%global appLoc; %let compiled_apploc=/Public/app/dcplaceholder; %let appLoc=%sysfunc(coalescec(&appLoc,&compiled_apploc)); %let sasjs_clickmeservice=clickme; %let syscc=0; options ps=max nonotes nosgen nomprint nomlogic nosource2 nosource noquotelenmax; /* user supplied build vars */ /* user supplied build vars end */ /* system macro dependencies for build process */ %macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1) , errds=work.mp_abort_errds , mode=REGULAR )/*/STORE SOURCE*/; %global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode; %local fref fid i; %if not(%eval(%unquote(&iftrue))) %then %return; %put NOTE: /// mp_abort macro executing //; %if %length(&mac)>0 %then %put NOTE- called by &mac; %put NOTE - &msg; %if %symexist(_SYSINCLUDEFILEDEVICE) /* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */ and %superq(SYSPROCESSNAME) ne %str(Compute Server) %then %do; %if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do; data &errds; iftrue='1=1'; length mac $100 msg $5000; mac=symget('mac'); msg=symget('msg'); run; data _null_; abort cancel FILE; run; %return; %end; %end; /* Web App Context */ %if %symexist(_PROGRAM) or %superq(SYSPROCESSNAME) = %str(Compute Server) or &mode=INCLUDE %then %do; options obs=max replace mprint; %if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do; options nosyntaxcheck; %end; %if &mode=INCLUDE %then %do; %if %sysfunc(exist(&errds))=1 %then %do; data _null_; set &errds; call symputx('iftrue',iftrue,'l'); call symputx('mac',mac,'l'); call symputx('msg',msg,'l'); putlog (_all_)(=); run; %if (&iftrue)=0 %then %return; %end; %else %do; %put &sysmacroname: No include errors found; %return; %end; %end; /* extract log errs / warns, if exist */ %local logloc logline; %global logmsg; /* capture global messages */ %if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG; %else %let logloc=%qsysfunc(getoption(LOG)); proc printto log=log;run; %let logline=0; %if %length(&logloc)>0 %then %do; data _null_; infile &logloc lrecl=5000; input; putlog _infile_; i=1; retain logonce 0; if ( _infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR" ) and logonce=0 then do; call symputx('logline',_n_); logonce+1; end; run; /* capture log including lines BEFORE the err */ %if &logline>0 %then %do; data _null_; infile &logloc lrecl=5000; input; i=1; stoploop=0; if _n_ ge &logline-15 and stoploop=0 then do until (i>22); call symputx('logmsg',catx('\n',symget('logmsg'),_infile_)); input; i+1; stoploop=1; end; if stoploop=1 then stop; run; %end; %end; %if %symexist(SYS_JES_JOB_URI) %then %do; /* setup webout for Viya */ options nobomfile; %if "X&SYS_JES_JOB_URI.X"="XX" %then %do; filename _webout temp lrecl=999999 mod; %end; %else %do; filename _webout filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json" lrecl=999999 mod; %end; %end; %else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do; options nobomfile; /* set up http header for SASjs Server */ %let fid=%sysfunc(fopen(&fref,A)); %if &fid=0 %then %do; %put %str(ERR)OR: %sysfunc(sysmsg()); %return; %end; %let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json))); %let rc=%sysfunc(fwrite(&fid)); %let rc=%sysfunc(fclose(&fid)); %let rc=%sysfunc(filename(&fref)); %end; /* send response in SASjs JSON format */ data _null_; file _webout mod lrecl=32000 encoding='utf-8'; length msg syswarningtext syserrortext $32767 mode $10 ; sasdatetime=datetime(); msg=symget('msg'); %if &logline>0 %then %do; msg=cats(msg,'\n\nLog Extract:\n',symget('logmsg')); %end; /* escape the escapes */ msg=tranwrd(msg,'\','\\'); /* escape the quotes */ msg=tranwrd(msg,'"','\"'); /* ditch the CRLFs as chrome complains */ msg=compress(msg,,'kw'); /* quote without quoting the quotes (which are escaped instead) */ msg=cats('"',msg,'"'); if symexist('_debug') then debug=quote(trim(symget('_debug'))); else debug='""'; if symget('sasjsprocessmode')='Stored Program' then mode='SASJS'; if mode ne 'SASJS' then put '>>weboutBEGIN<<'; put '{"SYSDATE" : "' "&SYSDATE" '"'; put ',"SYSTIME" : "' "&SYSTIME" '"'; put ',"sasjsAbort" : [{'; put ' "MSG":' msg ; put ' ,"MAC": "' "&mac" '"}]'; put ",""SYSUSERID"" : ""&sysuserid"" "; put ',"_DEBUG":' debug ; if symexist('_metauser') then do; _METAUSER=quote(trim(symget('_METAUSER'))); put ",""_METAUSER"": " _METAUSER; _METAPERSON=quote(trim(symget('_METAPERSON'))); put ',"_METAPERSON": ' _METAPERSON; end; if symexist('SYS_JES_JOB_URI') then do; SYS_JES_JOB_URI=quote(trim(symget('SYS_JES_JOB_URI'))); put ',"SYS_JES_JOB_URI": ' SYS_JES_JOB_URI; end; _PROGRAM=quote(trim(resolve(symget('_PROGRAM')))); put ',"_PROGRAM" : ' _PROGRAM ; put ",""SYSCC"" : ""&syscc"" "; syserrortext=cats(symget('syserrortext')); if findc(syserrortext,'"\'!!'0A0D09000E0F010210111A'x) then do; syserrortext='"'!!trim( prxchange('s/"/\\"/',-1, /* double quote */ prxchange('s/\x0A/\n/',-1, /* new line */ prxchange('s/\x0D/\r/',-1, /* carriage return */ prxchange('s/\x09/\\t/',-1, /* tab */ prxchange('s/\x00/\\u0000/',-1, /* NUL */ prxchange('s/\x0E/\\u000E/',-1, /* SS */ prxchange('s/\x0F/\\u000F/',-1, /* SF */ prxchange('s/\x01/\\u0001/',-1, /* SOH */ prxchange('s/\x02/\\u0002/',-1, /* STX */ prxchange('s/\x10/\\u0010/',-1, /* DLE */ prxchange('s/\x11/\\u0011/',-1, /* DC1 */ prxchange('s/\x1A/\\u001A/',-1, /* SUB */ prxchange('s/\\/\\\\/',-1,syserrortext) )))))))))))))!!'"'; end; else syserrortext=cats('"',syserrortext,'"'); put ',"SYSERRORTEXT" : ' syserrortext; put ",""SYSHOSTNAME"" : ""&syshostname"" "; put ",""SYSJOBID"" : ""&sysjobid"" "; put ",""SYSSCPL"" : ""&sysscpl"" "; put ",""SYSSITE"" : ""&syssite"" "; sysvlong=quote(trim(symget('sysvlong'))); put ',"SYSVLONG" : ' sysvlong; syswarningtext=cats(symget('syswarningtext')); if findc(syswarningtext,'"\'!!'0A0D09000E0F010210111A'x) then do; syswarningtext='"'!!trim( prxchange('s/"/\\"/',-1, /* double quote */ prxchange('s/\x0A/\n/',-1, /* new line */ prxchange('s/\x0D/\r/',-1, /* carriage return */ prxchange('s/\x09/\\t/',-1, /* tab */ prxchange('s/\x00/\\u0000/',-1, /* NUL */ prxchange('s/\x0E/\\u000E/',-1, /* SS */ prxchange('s/\x0F/\\u000F/',-1, /* SF */ prxchange('s/\x01/\\u0001/',-1, /* SOH */ prxchange('s/\x02/\\u0002/',-1, /* STX */ prxchange('s/\x10/\\u0010/',-1, /* DLE */ prxchange('s/\x11/\\u0011/',-1, /* DC1 */ prxchange('s/\x1A/\\u001A/',-1, /* SUB */ prxchange('s/\\/\\\\/',-1,syswarningtext) )))))))))))))!!'"'; end; else syswarningtext=cats('"',syswarningtext,'"'); put ",""SYSWARNINGTEXT"" : " syswarningtext; put ',"END_DTTM" : "' "%sysfunc(datetime(),E8601DT26.6)" '" '; put "}" ; if mode ne 'SASJS' then put '>>weboutEND<<'; run; %put _all_; %if "&sysprocessmode " = "SAS Stored Process Server " %then %do; data _null_; putlog 'stpsrvset program err and syscc'; rc=stpsrvset('program error', 0); call symputx("syscc",0,"g"); run; %if &sysscp=WIN and 1=0 /* deprecating this logic until we figure out a consistent abort */ and "%substr(%str(&sysvlong ),1,8)"="9.04.01M" and "%substr(%str(&sysvlong ),9,1)">"5" %then %do; /* skip approach (below) does not work in windows m6+ envs */ endsas; %end; %else %do; /** * endsas kills 9.4m3 deployments by orphaning multibridges. * Abort variants are ungraceful (non zero return code) * This approach lets SAS run silently until the end :-) * Caution - fails when called within a %include within a macro * Use mp_include() to handle this. */ filename skip temp; data _null_; file skip; put '%macro skip();'; comment '%mend skip; -> fix lint '; put '%macro skippy();'; comment '%mend skippy; -> fix lint '; run; %inc skip; %end; %end; %else %if "&sysprocessmode " = "SAS Compute Server " %then %do; /* endsas kills the session making it harder to fetch results */ data _null_; syswarningtext=symget('syswarningtext'); syserrortext=symget('syserrortext'); abort_msg=symget('msg'); syscc=symget('syscc'); sysuserid=symget('sysuserid'); iftrue=symget('iftrue'); put (_all_)(/=); call symputx('syscc',0); abort cancel nolist; run; %end; %else %do; %abort cancel; %end; %end; %else %do; %put _all_; %abort cancel; %end; %mend mp_abort; /** @endcond */ %macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767); %local rc fname; %if &prefix=0 %then %do; %let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl)); %if &rc %then %put %sysfunc(sysmsg()); &fname %end; %else %do; %local x len; %let len=%eval(8-%length(&prefix)); %let x=0; %do x=0 %to &maxtries; %let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len); %if %sysfunc(fileref(&fname)) > 0 %then %do; %let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl)); %if &rc %then %put %sysfunc(sysmsg()); &fname %return; %end; %end; %put unable to find available fileref after &maxtries attempts; %end; %mend mf_getuniquefileref; %macro mf_getuniquelibref(prefix=mc,maxtries=1000); %local x; %if ( %length(&prefix) gt 7 ) %then %do; %put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.; 0 %return; %end; %else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do; %put %str(ERR)OR: Invalid prefix (&prefix); 0 %return; %end; /* Set maxtries equal to '10 to the power of [# unused characters] - 1' */ %let maxtries=%eval(10**(8-%length(&prefix))-1); %do x = 0 %to &maxtries; %if %sysfunc(libref(&prefix&x)) ne 0 %then %do; &prefix&x %return; %end; %let x = %eval(&x + 1); %end; %put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries; %put %str(ERR)OR- Try reducing the prefix or deleting some libraries!; 0 %mend mf_getuniquelibref; %macro mf_isblank(param )/*/STORE SOURCE*/; %sysevalf(%superq(param)=,boolean) %mend mf_isblank; %macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1) )/des='ungraceful abort' /*STORE SOURCE*/; %if not(%eval(%unquote(&iftrue))) %then %return; %put NOTE: /// mf_abort macro executing //; %if %length(&mac)>0 %then %put NOTE- called by &mac; %put NOTE - &msg; %abort; %mend mf_abort; /** @endcond */ %macro mfv_getpathuri(filepath )/*/STORE SOURCE*/; %mf_abort( iftrue=(&syscc ne 0), msg=Cannot enter &sysmacroname with syscc=&syscc ) %local fref rc path name var /* var is used to avoid delete timing issue */; %let fref=%mf_getuniquefileref(); %let name=%scan(&filepath,-1,/); %let path=%substr(&filepath,1,%length(&filepath)-%length(&name)-1); %if %sysfunc(filename(fref,,filesrvc,folderPath="&path" filename="&name"))=0 %then %do; %let var=_FILESRVC_&fref._URI; %str(&&&var) %let rc=%sysfunc(filename(fref)); %symdel &var; %end; %else %do; %put &sysmacroname: did not find &filepath; %let syscc=0; %end; %mf_abort( iftrue=(&syscc ne 0), msg=Cannot leave &sysmacroname with syscc=&syscc ) %mend mfv_getpathuri; %macro mf_mval(var); %if %symexist(&var) %then %do; %superq(&var) %end; %mend mf_mval; %macro mf_trimstr(basestr,trimstr); %local baselen trimlen trimval; /* return if basestr is shorter than trimstr (or 0) */ %let baselen=%length(%superq(basestr)); %let trimlen=%length(%superq(trimstr)); %if &baselen < &trimlen or &baselen=0 %then %return; /* obtain the characters from the end of basestr */ %let trimval=%qsubstr(%superq(basestr) ,%length(%superq(basestr))-&trimlen+1 ,&trimlen); /* compare and if matching, chop it off! */ %if %superq(basestr)=%superq(trimstr) %then %do; %return; %end; %else %if %superq(trimval)=%superq(trimstr) %then %do; %qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen) %end; %else %do; &basestr %end; %mend mf_trimstr; %macro mf_getplatform(switch )/*/STORE SOURCE*/; %local a b c; %if &switch.NONE=NONE %then %do; %if %symexist(sasjsprocessmode) %then %do; %if &sasjsprocessmode=Stored Program %then %do; SASJS %return; %end; %end; %if %symexist(sysprocessmode) %then %do; %if "&sysprocessmode"="SAS Object Server" or "&sysprocessmode"= "SAS Compute Server" %then %do; SASVIYA %end; %else %if "&sysprocessmode"="SAS Stored Process Server" or "&sysprocessmode"="SAS Workspace Server" %then %do; SASMETA %return; %end; %else %do; BASESAS %return; %end; %end; %else %if %symexist(_metaport) or %symexist(_metauser) %then %do; SASMETA %return; %end; %else %do; BASESAS %return; %end; %end; %else %if &switch=SASSTUDIO %then %do; /* return the version of SAS Studio else 0 */ %if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do; %let a=%mf_mval(_CLIENTVERSION); %let b=%scan(&a,1,.); %if %eval(&b >2) %then %do; &b %end; %else 0; %end; %else 0; %end; %else %if &switch=VIYARESTAPI %then %do; %mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/) %end; %mend mf_getplatform; %macro mfv_existfolder(path )/*/STORE SOURCE*/; %mf_abort( iftrue=(&syscc ne 0), msg=Cannot enter mfv_existfolder.sas with syscc=&syscc ) %local fref rc var; %let fref=%mf_getuniquefileref(); %if %sysfunc(filename(fref,,filesrvc,folderPath="&path"))=0 %then %do; 1 %let var=_FILESRVC_&fref._URI; %let rc=%sysfunc(filename(fref)); %symdel &var; %end; %else %do; 0 %let syscc=0; %end; %mf_abort( iftrue=(&syscc ne 0), msg=Cannot leave mfv_existfolder.sas with syscc=&syscc ) %mend mfv_existfolder; %macro mv_createfolder(path= ,access_token_var=ACCESS_TOKEN ,grant_type=sas_services ,mdebug=0 ,outds=_null_ ); %local dbg; %if &mdebug=1 %then %do; %put &sysmacroname entry vars:; %put _local_; %end; %else %let dbg=*; %mp_abort( iftrue=(&syscc ne 0), msg=Cannot enter &sysmacroname with syscc=&syscc ) %if %mfv_existfolder(&path)=1 %then %do; %&dbg.put &sysmacroname: &path already exists; data &outds; self_uri="%mfv_getpathuri(&path)"; output; stop; run; %return; %end; %mp_abort(iftrue=(&syscc ne 0),msg=syscc=&syscc when folder checking) %local oauth_bearer; %if &grant_type=detect %then %do; %if %symexist(&access_token_var) %then %let grant_type=authorization_code; %else %let grant_type=sas_services; %end; %if &grant_type=sas_services %then %do; %let oauth_bearer=oauth_bearer=sas_services; %let &access_token_var=; %end; %mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password and &grant_type ne sas_services ) ,mac=&sysmacroname ,msg=%str(Invalid value for grant_type: &grant_type) ) %mp_abort(iftrue=(%mf_isblank(&path)=1) ,mac=&sysmacroname ,msg=%str(path value must be provided) ) %mp_abort(iftrue=(%length(&path)=1) ,mac=&sysmacroname ,msg=%str(path value must be provided) ) options noquotelenmax; %local subfolder_cnt; /* determine the number of subfolders */ %let subfolder_cnt=%sysfunc(countw(&path,/)); %local base_uri; /* location of rest apis */ %let base_uri=%mf_getplatform(VIYARESTAPI); %local href; /* resource address (none for root) */ %let href="&base_uri/folders/folders?parentFolderUri=/folders/folders/none"; %local x newpath subfolder; %do x=1 %to &subfolder_cnt; %let subfolder=%scan(&path,&x,%str(/)); %let newpath=&newpath/&subfolder; %local fname1; %let fname1=%mf_getuniquefileref(); %put &sysmacroname checking to see if &newpath exists; proc http method='GET' out=&fname1 &oauth_bearer url="&base_uri/folders/folders/@item?path=&newpath"; %if &grant_type=authorization_code %then %do; headers "Authorization"="Bearer &&&access_token_var"; %end; run; %if &SYS_PROCHTTP_STATUS_CODE=401 %then %do; /* relates to: https://github.com/sasjs/core/issues/400 */ %put 401 thrown in &sysmacroname; %put sleeping: %sysfunc(sleep(12,1)) secs - will try again; proc http method='GET' out=&fname1 &oauth_bearer url="&base_uri/folders/folders/@item?path=&newpath"; %if &grant_type=authorization_code %then %do; headers "Authorization"="Bearer &&&access_token_var"; %end; run; %end; %local libref1; %let libref1=%mf_getuniquelibref(); libname &libref1 JSON fileref=&fname1; %mp_abort( iftrue=( &SYS_PROCHTTP_STATUS_CODE ne 200 and &SYS_PROCHTTP_STATUS_CODE ne 404 ) ,mac=mv_createfolder124 ,msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE) ) %if &mdebug=1 %then %do; %put &sysmacroname following check to see if &newpath exists:; %put _local_; data _null_; infile &fname1; input; putlog _infile_; run; %end; %if &SYS_PROCHTTP_STATUS_CODE=200 %then %do; %*put &sysmacroname &newpath exists so grab the follow on link ; data _null_; set &libref1..links; if rel='createChild' then call symputx('href',quote(cats("&base_uri",href)),'l'); run; %end; %else %if &SYS_PROCHTTP_STATUS_CODE=404 %then %do; %put &sysmacroname &newpath not found - creating it now; %local fname2; %let fname2=%mf_getuniquefileref(); data _null_; length json $1000; json=cats("'" ,'{"name":' ,quote(trim(symget('subfolder'))) ,',"description":' ,quote("&subfolder, created by &sysmacroname") ,',"type":"folder"}' ,"'" ); call symputx('json',json,'l'); run; proc http method='POST' in=&json out=&fname2 &oauth_bearer url=%unquote(%superq(href)); headers %if &grant_type=authorization_code %then %do; "Authorization"="Bearer &&&access_token_var" %end; 'Content-Type'='application/vnd.sas.content.folder+json' 'Accept'='application/vnd.sas.content.folder+json'; run; %if &SYS_PROCHTTP_STATUS_CODE ne 201 %then %do; %put &=SYS_PROCHTTP_STATUS_CODE &=SYS_PROCHTTP_STATUS_PHRASE; %end; %mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 201) ,mac=&sysmacroname ,msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE) ) %local libref2; %let libref2=%mf_getuniquelibref(); libname &libref2 JSON fileref=&fname2; %put &sysmacroname &newpath now created. Grabbing the follow on link ; data &outds; set &libref2..links; if rel='createChild' then do; call symputx('href',quote(cats("&base_uri",href)),'l'); &dbg put (_all_)(=); end; if method='GET' and rel='self' then do; self_uri=uri; output; end; keep self_uri ; run; libname &libref2 clear; filename &fname2 clear; %end; filename &fname1 clear; libname &libref1 clear; %end; %mp_abort( iftrue=(&syscc ne 0), msg=Cannot leave &sysmacroname with syscc=&syscc ) %mend mv_createfolder; %macro mv_deletejes(path= ,name= ,access_token_var=ACCESS_TOKEN ,grant_type=sas_services ); %local oauth_bearer; %if &grant_type=detect %then %do; %if %symexist(&access_token_var) %then %let grant_type=authorization_code; %else %let grant_type=sas_services; %end; %if &grant_type=sas_services %then %do; %let oauth_bearer=oauth_bearer=sas_services; %let &access_token_var=; %end; %mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password and &grant_type ne sas_services ) ,mac=&sysmacroname ,msg=%str(Invalid value for grant_type: &grant_type) ) %mp_abort(iftrue=(%mf_isblank(&path)=1) ,mac=&sysmacroname ,msg=%str(path value must be provided) ) %mp_abort(iftrue=(%mf_isblank(&name)=1) ,mac=&sysmacroname ,msg=%str(name value must be provided) ) %mp_abort(iftrue=(%length(&path)=1) ,mac=&sysmacroname ,msg=%str(path value must be provided) ) options noquotelenmax; %local base_uri; /* location of rest apis */ %let base_uri=%mf_getplatform(VIYARESTAPI); /* fetch the members of the folder to get the uri */ %local fname1; %let fname1=%mf_getuniquefileref(); proc http method='GET' out=&fname1 &oauth_bearer url="&base_uri/folders/folders/@item?path=&path"; %if &grant_type=authorization_code %then %do; headers "Authorization"="Bearer &&&access_token_var"; %end; run; %if &SYS_PROCHTTP_STATUS_CODE=404 %then %do; %put &sysmacroname: Folder &path NOT FOUND - nothing to delete!; %return; %end; %else %if &SYS_PROCHTTP_STATUS_CODE ne 200 %then %do; /*data _null_;infile &fname1;input;putlog _infile_;run;*/ %mp_abort(mac=&sysmacroname ,msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE) ) %end; /* grab the follow on link */ %local libref1; %let libref1=%mf_getuniquelibref(); libname &libref1 JSON fileref=&fname1; data _null_; set &libref1..links; if rel='members' then call symputx('mref',quote("&base_uri"!!trim(href)),'l'); run; /* get the children */ %local fname1a; %let fname1a=%mf_getuniquefileref(); proc http method='GET' out=&fname1a &oauth_bearer url=%unquote(%superq(mref)); %if &grant_type=authorization_code %then %do; headers "Authorization"="Bearer &&&access_token_var"; %end; run; %if &SYS_PROCHTTP_STATUS_CODE ne 200 %then %do; %put &=sysmacroname &=SYS_PROCHTTP_STATUS_CODE &=SYS_PROCHTTP_STATUS_PHRASE; %end; %local libref1a; %let libref1a=%mf_getuniquelibref(); libname &libref1a JSON fileref=&fname1a; %local uri found; %let found=0; /* %put Getting object uri from &libref1a..items; */ data _null_; length contenttype name $1000; set &libref1a..items; if contenttype='jobDefinition' and upcase(name)="%upcase(&name)" then do; call symputx('uri',cats("&base_uri",uri),'l'); call symputx('found',1,'l'); end; run; %if &found=0 %then %do; %put NOTE:;%put NOTE- &sysmacroname: &path/&name NOT FOUND;%put NOTE- ; %return; %end; proc http method="DELETE" url="&uri" &oauth_bearer; headers %if &grant_type=authorization_code %then %do; "Authorization"="Bearer &&&access_token_var" %end; "Accept"="*/*";/**/ run; %if &SYS_PROCHTTP_STATUS_CODE ne 204 %then %do; data _null_; infile &fname2; input; putlog _infile_;run; %mp_abort(mac=&sysmacroname ,msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE) ) %end; %else %put &sysmacroname: &path/&name deleted; /* clear refs */ filename &fname1 clear; libname &libref1 clear; filename &fname1a clear; libname &libref1a clear; %mend mv_deletejes; %macro mf_getuniquename(prefix=MC); &prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix)) %mend mf_getuniquename; %macro mf_mimetype( ext )/*/STORE SOURCE*/ /minoperator mindelimiter=' '; %let ext=%lowcase(&ext); %if &ext in (sas txt text conf def list log) %then %do;%str(text/plain)%end; %else %if &ext=xlsx %then %do; %str(application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)%end; %else %if &ext in (xls xlm xla xlc xlt xlw) %then %do;%str(application/vnd.ms-excel)%end; %else %if &ext=xlsm %then %do;%str(application/vnd.ms-excel.sheet.macroenabled.12)%end; %else %if &ext=xlsb %then %do;%str(application/vnd.ms-excel.sheet.binary.macroenabled.12)%end; %else %if &ext in (css csv html n3 sgml vcard) %then %do;%str(text/&ext)%end; %else %if &ext in (avif bmp cgm gif ief jxl ktx png sgi tiff webp) %then %do;%str(image/&ext)%end; %else %if &ext in (exi gxf ipfix json mbox mp21 mxf oda oxps pdf rtf sdp wasm xml yang zip) %then %do;%str(application/&ext)%end; %else %if &ext in (jpeg jpg jpe) %then %do;%str(image/jpeg)%end; %else %if &ext in (mp4 mp4v mpg4) %then %do;%str(video/mp4)%end; %else %if &ext in (otf ttf woff woff2) %then %do;%str(font/&ext)%end; %else %if &ext in (mpeg mpg mpe m1v m2v) %then %do;%str(video/mpeg)%end; %else %if &ext in (h261 h263 h264 jpm mj2 webm) %then %do;%str(video/&ext)%end; %else %if &ext in (f4v fli flv m4v mng smv) %then %do;%str(video/x-&ext)%end; %else %if &ext in (3ds cmx pcx rgb tga) %then %do;%str(image/x-&ext)%end; %else %if &ext in (asm nfo opml sfv) %then %do;%str(text/x-&ext)%end; %else %if &ext in (aac caf flac wav) %then %do;%str(audio/x-&ext)%end; %else %if &ext in (ts m2t m2ts mts) %then %do;%str(video/mp2t)%end; %else %if &ext in (pfa pfb pfm afm) %then %do;%str(application/x-font-type1)%end; %else %if &ext in (oga ogg spx opus) %then %do;%str(audio/ogg)%end; %else %if &ext in (mid midi kar rmi) %then %do;%str(audio/midi)%end; %else %if &ext in (onetoc onetoc2 onetmp onepkg) %then %do;%str(application/onenote)%end; %else %if &ext in (mxml xhvml xvml xvm) %then %do;%str(application/xv+xml)%end; %else %if &ext in (f for f77 f90) %then %do;%str(text/x-fortran)%end; %else %if &ext in (wmf wmz emf emz) %then %do;%str(application/x-msmetafile)%end; %else %if &ext in (exe dll com bat msi) %then %do;%str(application/x-msdownload)%end; %else %if &ext in (bin dms lrf mar so dist distz pkg bpk dump elc deploy) %then %do;%str(application/octet-stream)%end; %else %if &ext in (atom atomcat atomsvc ccxml davmount emma gml gpx inkml mads mathml metalink mets mods omdoc pls rdf rsd rss sbml shf smil sru ssdl ssml tei wsdl wspolicy xaml xenc xhtml xop xslt xspf yin) %then %do;%str(application/&ext+xml)%end; %else %if &ext in (dir dcr dxr cst cct cxt w3d fgd swa) %then %do;%str(application/x-director)%end; %else %if &ext in (z1 z2 z3 z4 z5 z6 z7 z8) %then %do;%str(application/x-zmachine)%end; %else %if &ext in (c cc cxx cpp h hh dic) %then %do;%str(text/x-c)%end; %else %if &ext in (mpga mp2 mp2a mp3 m2a m3a) %then %do;%str(audio/mpeg)%end; %else %if &ext in (t tr roff man me ms) %then %do;%str(text/troff)%end; %else %if &ext in (cbr cba cbt cbz cb7) %then %do;%str(application/x-cbr)%end; %else %if &ext in (fh fhc fh4 fh5 fh7) %then %do;%str(image/x-freehand)%end; %else %if &ext in (aab x32 u32 vox) %then %do;%str(application/x-authorware-bin)%end; %else %if &ext in (uvi uvvi uvg uvvg) %then %do;%str(image/vnd.dece.graphic)%end; %else %if &ext in (cdx cif cmdf cml csml xyz) %then %do;%str(chemical/x-&ext)%end; %else %if &ext in (aif aiff aifc) %then %do;%str(audio/x-aiff)%end; %else %if &ext in (ma nb mb) %then %do;%str(application/mathematica)%end; %else %if &ext in (mvb m13 m14) %then %do;%str(application/x-msmediaview)%end; %else %if &ext in (msh mesh silo) %then %do;%str(model/mesh)%end; %else %if &ext in (uri uris urls) %then %do;%str(text/uri-list)%end; %else %if &ext in (mkv mk3d mks) %then %do;%str(video/x-matroska)%end; %else %if &ext=ez %then %do;%str(application/andrew-inset)%end; %else %if &ext=aw %then %do;%str(application/applixware)%end; %else %if &ext=cdmia %then %do;%str(application/cdmi-capability)%end; %else %if &ext=cdmic %then %do;%str(application/cdmi-container)%end; %else %if &ext=cdmid %then %do;%str(application/cdmi-domain)%end; %else %if &ext=cdmio %then %do;%str(application/cdmi-object)%end; %else %if &ext=cdmiq %then %do;%str(application/cdmi-queue)%end; %else %if &ext=cu %then %do;%str(application/cu-seeme)%end; %else %if &ext=dssc %then %do;%str(application/dssc+der)%end; %else %if &ext=xdssc %then %do;%str(application/dssc+xml)%end; %else %if &ext=ecma %then %do;%str(application/ecmascript)%end; %else %if &ext=epub %then %do;%str(application/epub+zip)%end; %else %if &ext=pfr %then %do;%str(application/font-tdpfr)%end; %else %if &ext=stk %then %do;%str(application/hyperstudio)%end; %else %if &ext=ink %then %do;%str(application/inkml+xml)%end; %else %if &ext=jar %then %do;%str(application/java-archive)%end; %else %if &ext=ser %then %do;%str(application/java-serialized-object)%end; %else %if &ext=class %then %do;%str(application/java-vm)%end; %else %if &ext=jsonml %then %do;%str(application/jsonml+json)%end; %else %if &ext=lostxml %then %do;%str(application/lost+xml)%end; %else %if &ext=hqx %then %do;%str(application/mac-binhex40)%end; %else %if &ext=cpt %then %do;%str(application/mac-compactpro)%end; %else %if &ext=mrc %then %do;%str(application/marc)%end; %else %if &ext=mrcx %then %do;%str(application/marcxml+xml)%end; %else %if &ext=mscml %then %do;%str(application/mediaservercontrol+xml)%end; %else %if &ext=meta4 %then %do;%str(application/metalink4+xml)%end; %else %if &ext=m21 %then %do;%str(application/mp21)%end; %else %if &ext=mp4s %then %do;%str(application/mp4)%end; %else %if &ext=doc %then %do;%str(application/msword)%end; %else %if &ext=dot %then %do;%str(application/msword)%end; %else %if &ext=opf %then %do;%str(application/oebps-package+xml)%end; %else %if &ext=ogx %then %do;%str(application/ogg)%end; %else %if &ext=xer %then %do;%str(application/patch-ops-error+xml)%end; %else %if &ext=pgp %then %do;%str(application/pgp-encrypted)%end; %else %if &ext=asc %then %do;%str(application/pgp-signature)%end; %else %if &ext=sig %then %do;%str(application/pgp-signature)%end; %else %if &ext=prf %then %do;%str(application/pics-rules)%end; %else %if &ext=p10 %then %do;%str(application/pkcs10)%end; %else %if &ext=p7m %then %do;%str(application/pkcs7-mime)%end; %else %if &ext=p7c %then %do;%str(application/pkcs7-mime)%end; %else %if &ext=p7s %then %do;%str(application/pkcs7-signature)%end; %else %if &ext=p8 %then %do;%str(application/pkcs8)%end; %else %if &ext=ac %then %do;%str(application/pkix-attr-cert)%end; %else %if &ext=cer %then %do;%str(application/pkix-cert)%end; %else %if &ext=crl %then %do;%str(application/pkix-crl)%end; %else %if &ext=pkipath %then %do;%str(application/pkix-pkipath)%end; %else %if &ext=pki %then %do;%str(application/pkixcmp)%end; %else %if &ext=cww %then %do;%str(application/prs.cww)%end; %else %if &ext=pskcxml %then %do;%str(application/pskc+xml)%end; %else %if &ext=rif %then %do;%str(application/reginfo+xml)%end; %else %if &ext=rnc %then %do;%str(application/relax-ng-compact-syntax)%end; %else %if &ext=rld %then %do;%str(application/resource-lists-diff+xml)%end; %else %if &ext=rl %then %do;%str(application/resource-lists+xml)%end; %else %if &ext=gbr %then %do;%str(application/rpki-ghostbusters)%end; %else %if &ext=mft %then %do;%str(application/rpki-manifest)%end; %else %if &ext=roa %then %do;%str(application/rpki-roa)%end; %else %if &ext=scq %then %do;%str(application/scvp-cv-request)%end; %else %if &ext=scs %then %do;%str(application/scvp-cv-response)%end; %else %if &ext=spq %then %do;%str(application/scvp-vp-request)%end; %else %if &ext=spp %then %do;%str(application/scvp-vp-response)%end; %else %if &ext=setpay %then %do;%str(application/set-payment-initiation)%end; %else %if &ext=setreg %then %do;%str(application/set-registration-initiation)%end; %else %if &ext=smi %then %do;%str(application/smil+xml)%end; %else %if &ext=rq %then %do;%str(application/sparql-query)%end; %else %if &ext=srx %then %do;%str(application/sparql-results+xml)%end; %else %if &ext=gram %then %do;%str(application/srgs)%end; %else %if &ext=grxml %then %do;%str(application/srgs+xml)%end; %else %if &ext=teicorpus %then %do;%str(application/tei+xml)%end; %else %if &ext=tfi %then %do;%str(application/thraud+xml)%end; %else %if &ext=tsd %then %do;%str(application/timestamped-data)%end; %else %if &ext=vxml %then %do;%str(application/voicexml+xml)%end; %else %if &ext=wgt %then %do;%str(application/widget)%end; %else %if &ext=hlp %then %do;%str(application/winhlp)%end; %else %if &ext=7z %then %do;%str(application/x-7z-compressed)%end; %else %if &ext=abw %then %do;%str(application/x-abiword)%end; %else %if &ext=ace %then %do;%str(application/x-ace-compressed)%end; %else %if &ext=dmg %then %do;%str(application/x-apple-diskimage)%end; %else %if &ext=aam %then %do;%str(application/x-authorware-map)%end; %else %if &ext=aas %then %do;%str(application/x-authorware-seg)%end; %else %if &ext=bcpio %then %do;%str(application/x-bcpio)%end; %else %if &ext=torrent %then %do;%str(application/x-bittorrent)%end; %else %if &ext=blb %then %do;%str(application/x-blorb)%end; %else %if &ext=blorb %then %do;%str(application/x-blorb)%end; %else %if &ext=bz %then %do;%str(application/x-bzip)%end; %else %if &ext=bz2 %then %do;%str(application/x-bzip2)%end; %else %if &ext=boz %then %do;%str(application/x-bzip2)%end; %else %if &ext=vcd %then %do;%str(application/x-cdlink)%end; %else %if &ext=cfs %then %do;%str(application/x-cfs-compressed)%end; %else %if &ext=chat %then %do;%str(application/x-chat)%end; %else %if &ext=pgn %then %do;%str(application/x-chess-pgn)%end; %else %if &ext=nsc %then %do;%str(application/x-conference)%end; %else %if &ext=cpio %then %do;%str(application/x-cpio)%end; %else %if &ext=csh %then %do;%str(application/x-csh)%end; %else %if &ext=deb %then %do;%str(application/x-debian-package)%end; %else %if &ext=udeb %then %do;%str(application/x-debian-package)%end; %else %if &ext=dgc %then %do;%str(application/x-dgc-compressed)%end; %else %if &ext=wad %then %do;%str(application/x-doom)%end; %else %if &ext=ncx %then %do;%str(application/x-dtbncx+xml)%end; %else %if &ext=dtb %then %do;%str(application/x-dtbook+xml)%end; %else %if &ext=res %then %do;%str(application/x-dtbresource+xml)%end; %else %if &ext=dvi %then %do;%str(application/x-dvi)%end; %else %if &ext=evy %then %do;%str(application/x-envoy)%end; %else %if &ext=eva %then %do;%str(application/x-eva)%end; %else %if &ext=bdf %then %do;%str(application/x-font-bdf)%end; %else %if &ext=gsf %then %do;%str(application/x-font-ghostscript)%end; %else %if &ext=psf %then %do;%str(application/x-font-linux-psf)%end; %else %if &ext=pcf %then %do;%str(application/x-font-pcf)%end; %else %if &ext=snf %then %do;%str(application/x-font-snf)%end; %else %if &ext=arc %then %do;%str(application/x-freearc)%end; %else %if &ext=spl %then %do;%str(application/x-futuresplash)%end; %else %if &ext=gca %then %do;%str(application/x-gca-compressed)%end; %else %if &ext=ulx %then %do;%str(application/x-glulx)%end; %else %if &ext=gnumeric %then %do;%str(application/x-gnumeric)%end; %else %if &ext=gramps %then %do;%str(application/x-gramps-xml)%end; %else %if &ext=gtar %then %do;%str(application/x-gtar)%end; %else %if &ext=hdf %then %do;%str(application/x-hdf)%end; %else %if &ext=install %then %do;%str(application/x-install-instructions)%end; %else %if &ext=iso %then %do;%str(application/x-iso9660-image)%end; %else %if &ext=jnlp %then %do;%str(application/x-java-jnlp-file)%end; %else %if &ext=latex %then %do;%str(application/x-latex)%end; %else %if &ext=lzh %then %do;%str(application/x-lzh-compressed)%end; %else %if &ext=lha %then %do;%str(application/x-lzh-compressed)%end; %else %if &ext=mie %then %do;%str(application/x-mie)%end; %else %if &ext=prc %then %do;%str(application/x-mobipocket-ebook)%end; %else %if &ext=mobi %then %do;%str(application/x-mobipocket-ebook)%end; %else %if &ext=application %then %do;%str(application/x-ms-application)%end; %else %if &ext=lnk %then %do;%str(application/x-ms-shortcut)%end; %else %if &ext=wmd %then %do;%str(application/x-ms-wmd)%end; %else %if &ext=wmz %then %do;%str(application/x-ms-wmz)%end; %else %if &ext=xbap %then %do;%str(application/x-ms-xbap)%end; %else %if &ext=mdb %then %do;%str(application/x-msaccess)%end; %else %if &ext=obd %then %do;%str(application/x-msbinder)%end; %else %if &ext=crd %then %do;%str(application/x-mscardfile)%end; %else %if &ext=clp %then %do;%str(application/x-msclip)%end; %else %if &ext=mny %then %do;%str(application/x-msmoney)%end; %else %if &ext=pub %then %do;%str(application/x-mspublisher)%end; %else %if &ext=scd %then %do;%str(application/x-msschedule)%end; %else %if &ext=trm %then %do;%str(application/x-msterminal)%end; %else %if &ext=wri %then %do;%str(application/x-mswrite)%end; %else %if &ext=nc %then %do;%str(application/x-netcdf)%end; %else %if &ext=cdf %then %do;%str(application/x-netcdf)%end; %else %if &ext=nzb %then %do;%str(application/x-nzb)%end; %else %if &ext=p12 %then %do;%str(application/x-pkcs12)%end; %else %if &ext=pfx %then %do;%str(application/x-pkcs12)%end; %else %if &ext=p7b %then %do;%str(application/x-pkcs7-certificates)%end; %else %if &ext=spc %then %do;%str(application/x-pkcs7-certificates)%end; %else %if &ext=p7r %then %do;%str(application/x-pkcs7-certreqresp)%end; %else %if &ext=rar %then %do;%str(application/x-rar-compressed)%end; %else %if &ext=ris %then %do;%str(application/x-research-info-systems)%end; %else %if &ext=sh %then %do;%str(application/x-sh)%end; %else %if &ext=shar %then %do;%str(application/x-shar)%end; %else %if &ext=swf %then %do;%str(application/x-shockwave-flash)%end; %else %if &ext=xap %then %do;%str(application/x-silverlight-app)%end; %else %if &ext=sql %then %do;%str(application/x-sql)%end; %else %if &ext=sit %then %do;%str(application/x-stuffit)%end; %else %if &ext=sitx %then %do;%str(application/x-stuffitx)%end; %else %if &ext=srt %then %do;%str(application/x-subrip)%end; %else %if &ext=sv4cpio %then %do;%str(application/x-sv4cpio)%end; %else %if &ext=sv4crc %then %do;%str(application/x-sv4crc)%end; %else %if &ext=t3 %then %do;%str(application/x-t3vm-image)%end; %else %if &ext=gam %then %do;%str(application/x-tads)%end; %else %if &ext=tar %then %do;%str(application/x-tar)%end; %else %if &ext=tcl %then %do;%str(application/x-tcl)%end; %else %if &ext=tex %then %do;%str(application/x-tex)%end; %else %if &ext=tfm %then %do;%str(application/x-tex-tfm)%end; %else %if &ext=texinfo %then %do;%str(application/x-texinfo)%end; %else %if &ext=texi %then %do;%str(application/x-texinfo)%end; %else %if &ext=obj %then %do;%str(application/x-tgif)%end; %else %if &ext=ustar %then %do;%str(application/x-ustar)%end; %else %if &ext=src %then %do;%str(application/x-wais-source)%end; %else %if &ext=der %then %do;%str(application/x-x509-ca-cert)%end; %else %if &ext=crt %then %do;%str(application/x-x509-ca-cert)%end; %else %if &ext=fig %then %do;%str(application/x-xfig)%end; %else %if &ext=xlf %then %do;%str(application/x-xliff+xml)%end; %else %if &ext=xpi %then %do;%str(application/x-xpinstall)%end; %else %if &ext=xz %then %do;%str(application/x-xz)%end; %else %if &ext=xdf %then %do;%str(application/xcap-diff+xml)%end; %else %if &ext=xht %then %do;%str(application/xhtml+xml)%end; %else %if &ext=xsl %then %do;%str(application/xml)%end; %else %if &ext=dtd %then %do;%str(application/xml-dtd)%end; %else %if &ext=xpl %then %do;%str(application/xproc+xml)%end; %else %if &ext=adp %then %do;%str(audio/adpcm)%end; %else %if &ext=au %then %do;%str(audio/basic)%end; %else %if &ext=snd %then %do;%str(audio/basic)%end; %else %if &ext=m4a %then %do;%str(audio/mp4)%end; %else %if &ext=mp4a %then %do;%str(audio/mp4)%end; %else %if &ext=s3m %then %do;%str(audio/s3m)%end; %else %if &ext=sil %then %do;%str(audio/silk)%end; %else %if &ext=uva %then %do;%str(audio/vnd.dece.audio)%end; %else %if &ext=uvva %then %do;%str(audio/vnd.dece.audio)%end; %else %if &ext=eol %then %do;%str(audio/vnd.digital-winds)%end; %else %if &ext=dra %then %do;%str(audio/vnd.dra)%end; %else %if &ext=dts %then %do;%str(audio/vnd.dts)%end; %else %if &ext=dtshd %then %do;%str(audio/vnd.dts.hd)%end; %else %if &ext=lvp %then %do;%str(audio/vnd.lucent.voice)%end; %else %if &ext=pya %then %do;%str(audio/vnd.ms-playready.media.pya)%end; %else %if &ext=ecelp4800 %then %do;%str(audio/vnd.nuera.ecelp4800)%end; %else %if &ext=ecelp7470 %then %do;%str(audio/vnd.nuera.ecelp7470)%end; %else %if &ext=ecelp9600 %then %do;%str(audio/vnd.nuera.ecelp9600)%end; %else %if &ext=rip %then %do;%str(audio/vnd.rip)%end; %else %if &ext=weba %then %do;%str(audio/webm)%end; %else %if &ext=mka %then %do;%str(audio/x-matroska)%end; %else %if &ext=m3u %then %do;%str(audio/x-mpegurl)%end; %else %if &ext=wax %then %do;%str(audio/x-ms-wax)%end; %else %if &ext=wma %then %do;%str(audio/x-ms-wma)%end; %else %if &ext=ra %then %do;%str(audio/x-pn-realaudio)%end; %else %if &ext=ram %then %do;%str(audio/x-pn-realaudio)%end; %else %if &ext=rmp %then %do;%str(audio/x-pn-realaudio-plugin)%end; %else %if &ext=xm %then %do;%str(audio/xm)%end; %else %if &ext=ttc %then %do;%str(font/collection)%end; %else %if &ext=g3 %then %do;%str(image/g3fax)%end; %else %if &ext=btif %then %do;%str(image/prs.btif)%end; %else %if &ext=svg %then %do;%str(image/svg+xml)%end; %else %if &ext=svgz %then %do;%str(image/svg+xml)%end; %else %if &ext=tif %then %do;%str(image/tiff)%end; %else %if &ext=psd %then %do;%str(image/vnd.adobe.photoshop)%end; %else %if &ext=djv %then %do;%str(image/vnd.djvu)%end; %else %if &ext=djvu %then %do;%str(image/vnd.djvu)%end; %else %if &ext=sub %then %do;%str(image/vnd.dvb.subtitle)%end; %else %if &ext=dwg %then %do;%str(image/vnd.dwg)%end; %else %if &ext=dxf %then %do;%str(image/vnd.dxf)%end; %else %if &ext=fbs %then %do;%str(image/vnd.fastbidsheet)%end; %else %if &ext=fpx %then %do;%str(image/vnd.fpx)%end; %else %if &ext=fst %then %do;%str(image/vnd.fst)%end; %else %if &ext=mmr %then %do;%str(image/vnd.fujixerox.edmics-mmr)%end; %else %if &ext=rlc %then %do;%str(image/vnd.fujixerox.edmics-rlc)%end; %else %if &ext=mdi %then %do;%str(image/vnd.ms-modi)%end; %else %if &ext=wdp %then %do;%str(image/vnd.ms-photo)%end; %else %if &ext=npx %then %do;%str(image/vnd.net-fpx)%end; %else %if &ext=wbmp %then %do;%str(image/vnd.wap.wbmp)%end; %else %if &ext=xif %then %do;%str(image/vnd.xiff)%end; %else %if &ext=ras %then %do;%str(image/x-cmu-raster)%end; %else %if &ext=ico %then %do;%str(image/x-icon)%end; %else %if &ext=sid %then %do;%str(image/x-mrsid-image)%end; %else %if &ext=pct %then %do;%str(image/x-pict)%end; %else %if &ext=pic %then %do;%str(image/x-pict)%end; %else %if &ext=pnm %then %do;%str(image/x-portable-anymap)%end; %else %if &ext=pbm %then %do;%str(image/x-portable-bitmap)%end; %else %if &ext=pgm %then %do;%str(image/x-portable-graymap)%end; %else %if &ext=ppm %then %do;%str(image/x-portable-pixmap)%end; %else %if &ext=xbm %then %do;%str(image/x-xbitmap)%end; %else %if &ext=xpm %then %do;%str(image/x-xpixmap)%end; %else %if &ext=xwd %then %do;%str(image/x-xwindowdump)%end; %else %if &ext=eml %then %do;%str(message/rfc822)%end; %else %if &ext=mime %then %do;%str(message/rfc822)%end; %else %if &ext=iges %then %do;%str(model/iges)%end; %else %if &ext=igs %then %do;%str(model/iges)%end; %else %if &ext=dae %then %do;%str(model/vnd.collada+xml)%end; %else %if &ext=dwf %then %do;%str(model/vnd.dwf)%end; %else %if &ext=gdl %then %do;%str(model/vnd.gdl)%end; %else %if &ext=gtw %then %do;%str(model/vnd.gtw)%end; %else %if &ext=vtu %then %do;%str(model/vnd.vtu)%end; %else %if &ext=vrml %then %do;%str(model/vrml)%end; %else %if &ext=wrl %then %do;%str(model/vrml)%end; %else %if &ext=x3db %then %do;%str(model/x3d+binary)%end; %else %if &ext=x3dbz %then %do;%str(model/x3d+binary)%end; %else %if &ext=x3dv %then %do;%str(model/x3d+vrml)%end; %else %if &ext=x3dvz %then %do;%str(model/x3d+vrml)%end; %else %if &ext=x3d %then %do;%str(model/x3d+xml)%end; %else %if &ext=x3dz %then %do;%str(model/x3d+xml)%end; %else %if &ext=appcache %then %do;%str(text/cache-manifest)%end; %else %if &ext=ics %then %do;%str(text/calendar)%end; %else %if &ext=ifb %then %do;%str(text/calendar)%end; %else %if &ext=htm %then %do;%str(text/html)%end; %else %if &ext=js %then %do;%str(text/javascript)%end; %else %if &ext=mjs %then %do;%str(text/javascript)%end; %else %if &ext=dsc %then %do;%str(text/prs.lines.tag)%end; %else %if &ext=rtx %then %do;%str(text/richtext)%end; %else %if &ext=sgm %then %do;%str(text/sgml)%end; %else %if &ext=tsv %then %do;%str(text/tab-separated-values)%end; %else %if &ext=ttl %then %do;%str(text/turtle)%end; %else %if &ext=curl %then %do;%str(text/vnd.curl)%end; %else %if &ext=dcurl %then %do;%str(text/vnd.curl.dcurl)%end; %else %if &ext=mcurl %then %do;%str(text/vnd.curl.mcurl)%end; %else %if &ext=scurl %then %do;%str(text/vnd.curl.scurl)%end; %else %if &ext=sub %then %do;%str(text/vnd.dvb.subtitle)%end; %else %if &ext=fly %then %do;%str(text/vnd.fly)%end; %else %if &ext=flx %then %do;%str(text/vnd.fmi.flexstor)%end; %else %if &ext=gv %then %do;%str(text/vnd.graphviz)%end; %else %if &ext=3dml %then %do;%str(text/vnd.in3d.3dml)%end; %else %if &ext=spot %then %do;%str(text/vnd.in3d.spot)%end; %else %if &ext=jad %then %do;%str(text/vnd.sun.j2me.app-descriptor)%end; %else %if &ext=wml %then %do;%str(text/vnd.wap.wml)%end; %else %if &ext=wmls %then %do;%str(text/vnd.wap.wmlscript)%end; %else %if &ext=s %then %do;%str(text/x-asm)%end; %else %if &ext=java %then %do;%str(text/x-java-source)%end; %else %if &ext=p %then %do;%str(text/x-pascal)%end; %else %if &ext=pas %then %do;%str(text/x-pascal)%end; %else %if &ext=etx %then %do;%str(text/x-setext)%end; %else %if &ext=uu %then %do;%str(text/x-uuencode)%end; %else %if &ext=vcs %then %do;%str(text/x-vcalendar)%end; %else %if &ext=vcf %then %do;%str(text/x-vcard)%end; %else %if &ext=3gp %then %do;%str(video/3gpp)%end; %else %if &ext=3g2 %then %do;%str(video/3gpp2)%end; %else %if &ext=jpgv %then %do;%str(video/jpeg)%end; %else %if &ext=jpgm %then %do;%str(video/jpm)%end; %else %if &ext=mjp2 %then %do;%str(video/mj2)%end; %else %if &ext=ogv %then %do;%str(video/ogg)%end; %else %if &ext=mov %then %do;%str(video/quicktime)%end; %else %if &ext=qt %then %do;%str(video/quicktime)%end; %else %if &ext=uvh %then %do;%str(video/vnd.dece.hd)%end; %else %if &ext=uvvh %then %do;%str(video/vnd.dece.hd)%end; %else %if &ext=uvm %then %do;%str(video/vnd.dece.mobile)%end; %else %if &ext=uvvm %then %do;%str(video/vnd.dece.mobile)%end; %else %if &ext=uvp %then %do;%str(video/vnd.dece.pd)%end; %else %if &ext=uvvp %then %do;%str(video/vnd.dece.pd)%end; %else %if &ext=uvs %then %do;%str(video/vnd.dece.sd)%end; %else %if &ext=uvvs %then %do;%str(video/vnd.dece.sd)%end; %else %if &ext=uvv %then %do;%str(video/vnd.dece.video)%end; %else %if &ext=uvvv %then %do;%str(video/vnd.dece.video)%end; %else %if &ext=dvb %then %do;%str(video/vnd.dvb.file)%end; %else %if &ext=fvt %then %do;%str(video/vnd.fvt)%end; %else %if &ext=m4u %then %do;%str(video/vnd.mpegurl)%end; %else %if &ext=mxu %then %do;%str(video/vnd.mpegurl)%end; %else %if &ext=pyv %then %do;%str(video/vnd.ms-playready.media.pyv)%end; %else %if &ext=uvu %then %do;%str(video/vnd.uvvu.mp4)%end; %else %if &ext=uvvu %then %do;%str(video/vnd.uvvu.mp4)%end; %else %if &ext=viv %then %do;%str(video/vnd.vivo)%end; %else %if &ext=asf %then %do;%str(video/x-ms-asf)%end; %else %if &ext=asx %then %do;%str(video/x-ms-asf)%end; %else %if &ext=vob %then %do;%str(video/x-ms-vob)%end; %else %if &ext=wm %then %do;%str(video/x-ms-wm)%end; %else %if &ext=wmv %then %do;%str(video/x-ms-wmv)%end; %else %if &ext=wmx %then %do;%str(video/x-ms-wmx)%end; %else %if &ext=wvx %then %do;%str(video/x-ms-wvx)%end; %else %if &ext=avi %then %do;%str(video/x-msvideo)%end; %else %if &ext=movie %then %do;%str(video/x-sgi-movie)%end; %else %if &ext=ice %then %do;%str(x-conference/x-cooltalk)%end; %else %if "&ext"="in" %then %do;%str(text/plain)%end; %else %do;%str(application/octet-stream)%end; %mend mf_mimetype; %macro mp_base64copy( inref=0, outref=0, action=ENCODE )/*/STORE SOURCE*/; %let inref=%upcase(&inref); %let outref=%upcase(&outref); %let action=%upcase(&action); %local infound outfound; %let infound=0; %let outfound=0; data _null_; set sashelp.vextfl(where=(fileref="&inref" or fileref="&outref")); if fileref="&inref" then call symputx('infound',1,'l'); if fileref="&outref" then call symputx('outfound',1,'l'); run; %mp_abort(iftrue= (&infound=0) ,mac=&sysmacroname ,msg=%str(INREF &inref NOT FOUND!) ) %mp_abort(iftrue= (&outref=0) ,mac=&sysmacroname ,msg=%str(OUTREF NOT PROVIDED!) ) %mp_abort(iftrue= (&action ne ENCODE and &action ne DECODE) ,mac=&sysmacroname ,msg=%str(Invalid action! Should be ENCODE OR DECODE) ) %if &outfound=0 %then %do; filename &outref temp lrecl=2097088; %end; %if &action=ENCODE %then %do; data _null_; length b64 $ 76 line $ 57; retain line ""; infile &inref recfm=F lrecl= 1 end=eof; input @1 stream $char1.; file &outref recfm=N; substr(line,(_N_-(CEIL(_N_/57)-1)*57),1) = byte(rank(stream)); if mod(_N_,57)=0 or EOF then do; if eof then b64=put(trim(line),$base64X76.); else b64=put(line, $base64X76.); put b64 + (-1) @; line=""; end; run; %end; %else %if &action=DECODE %then %do; data _null_; length filein 8 fileout 8; filein = fopen("&inref",'I',4,'B'); fileout = fopen("&outref",'O',3,'B'); char= '20'x; do while(fread(filein)=0); length raw $4; do i=1 to 4; rc=fget(filein,char,1); substr(raw,i,1)=char; end; rc = fput(fileout,input(raw,$base64X4.)); rc = fwrite(fileout); end; rc = fclose(filein); rc = fclose(fileout); run; %end; %mend mp_base64copy; %macro mp_replace(infile, findvar=, replacevar=, outfile=0 )/*/STORE SOURCE*/; %local inref dttm ds1; %let inref=%mf_getuniquefileref(); %let outref=%mf_getuniquefileref(); %if &outfile=0 %then %let outfile=&infile; %let ds1=%mf_getuniquename(prefix=allchars); %let ds2=%mf_getuniquename(prefix=startmark); /* START */ %let dttm=%sysfunc(datetime()); filename &inref &infile lrecl=1 recfm=n; data &ds1; infile &inref; input sourcechar $char1. @@; format sourcechar hex2.; run; data &ds2; /* set find string to length in bytes to cover trailing spaces */ length string $ %length(%superq(&findvar)); string =symget("&findvar"); drop string; firstchar=char(string,1); findlen=lengthm(string); /* <- for trailing bytes */ do _N_=1 to nobs; set &ds1 nobs=nobs point=_N_; if sourcechar=firstchar then do; pos=1; s=0; do point=_N_ to min(_N_ + findlen -1,nobs); set &ds1 point=point; if sourcechar=char(string, pos) then s + 1; else goto _leave_; pos+1; end; _leave_: if s=findlen then do; START =_N_; _N_ =_N_+ s - 1; STOP =_N_; output; end; end; end; stop; keep START STOP; run; data &ds1; declare hash HS(dataset:"&ds2(keep=start)"); HS.defineKey("start"); HS.defineDone(); declare hash HE(dataset:"&ds2(keep=stop)"); HE.defineKey("stop"); HE.defineDone(); do until(eof); set &ds1 end=eof curobs =n; start = ^HS.check(key:n); stop = ^HE.check(key:n); length strt $ 1; strt =put(start,best. -L); retain out 1; if out then output; if start then out=0; if stop then out=1; end; stop; keep sourcechar strt; run; filename &outref &outfile recfm=n; data _null_; length replace $ %length(%superq(&replacevar)); replace=symget("&replacevar"); file &outref; do until(eof); set &ds1 end=eof; if strt ="1" then put replace char.; else put sourcechar char1.; end; stop; run; /* END */ /* %put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) secs to run; */ %mend mp_replace; /* system macro dependencies for build process end*/ /* system macros for build process */ %macro mv_createwebservice(path= ,name= ,desc=Created by the mv_createwebservice.sas macro ,precode= ,code=ft15f001 ,access_token_var=ACCESS_TOKEN ,grant_type=sas_services ,replace=YES ,adapter=sasjs ,mdebug=0 ,contextname= ,debug=0 /* @TODO - Deprecate */ ); %local dbg; %if &mdebug=1 %then %do; %put &sysmacroname entry vars:; %put _local_; %end; %else %let dbg=*; %local oauth_bearer; %if &grant_type=detect %then %do; %if %symexist(&access_token_var) %then %let grant_type=authorization_code; %else %let grant_type=sas_services; %end; %if &grant_type=sas_services %then %do; %let oauth_bearer=oauth_bearer=sas_services; %let &access_token_var=; %end; /* initial validation checking */ %mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password and &grant_type ne sas_services ) ,mac=&sysmacroname ,msg=%str(Invalid value for grant_type: &grant_type) ) %mp_abort(iftrue=(%mf_isblank(&path)=1) ,mac=&sysmacroname ,msg=%str(path value must be provided) ) %mp_abort(iftrue=(%length(&path)=1) ,mac=&sysmacroname ,msg=%str(path value must be provided) ) %mp_abort(iftrue=(%mf_isblank(&name)=1) ,mac=&sysmacroname ,msg=%str(name value must be provided) ) options noquotelenmax; * remove any trailing slash ; %if "%substr(&path,%length(&path),1)" = "/" %then %let path=%substr(&path,1,%length(&path)-1); /* ensure folder exists */ %&dbg.put &sysmacroname: Path &path being checked / created; %mv_createfolder(path=&path) %local base_uri; /* location of rest apis */ %let base_uri=%mf_getplatform(VIYARESTAPI); /* fetching folder details for provided path */ %local fname1; %let fname1=%mf_getuniquefileref(); proc http method='GET' out=&fname1 &oauth_bearer url="&base_uri/folders/folders/@item?path=&path"; %if &grant_type=authorization_code %then %do; headers "Authorization"="Bearer &&&access_token_var"; %end; run; %if &mdebug=1 %then %do; data _null_; infile &fname1; input; putlog _infile_; run; %end; %mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200) ,mac=&sysmacroname ,msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE) ) /* path exists. Grab follow on link to check members */ %local libref1; %let libref1=%mf_getuniquelibref(); libname &libref1 JSON fileref=&fname1; data _null_; set &libref1..links; if rel='members' then call symputx('membercheck',quote("&base_uri"!!trim(href)),'l'); else if rel='self' then call symputx('parentFolderUri',href,'l'); run; data _null_; set &libref1..root; call symputx('folderid',id,'l'); run; %local fname2; %let fname2=%mf_getuniquefileref(); proc http method='GET' out=&fname2 &oauth_bearer url=%unquote(%superq(membercheck)); headers %if &grant_type=authorization_code %then %do; "Authorization"="Bearer &&&access_token_var" %end; 'Accept'='application/vnd.sas.collection+json' 'Accept-Language'='string'; %if &mdebug=1 %then %do; debug level = 3; %end; run; /*data _null_;infile &fname2;input;putlog _infile_;run;*/ %mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200) ,mac=&sysmacroname ,msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE) ) %if %upcase(&replace)=YES %then %do; %mv_deletejes(path=&path, name=&name) %end; %else %do; /* check that job does not already exist in that folder */ %local libref2; %let libref2=%mf_getuniquelibref(); libname &libref2 JSON fileref=&fname2; %local exists; %let exists=0; data _null_; set &libref2..items; if contenttype='jobDefinition' and upcase(name)="%upcase(&name)" then call symputx('exists',1,'l'); run; %mp_abort(iftrue=(&exists=1) ,mac=&sysmacroname ,msg=%str(Job &name already exists in &path) ) libname &libref2 clear; %end; /* set up the body of the request to create the service */ %local fname3; %let fname3=%mf_getuniquefileref(); data _null_; file &fname3 TERMSTR=' '; length string $32767; string=cats('{"version": 0,"name":"' ,"&name" ,'","type":"Compute","parameters":[{"name":"_addjesbeginendmacros"' ,',"type":"CHARACTER","defaultValue":"false"}'); context=quote(cats(symget('contextname'))); if context ne '""' then do; string=cats(string,',{"version": 1,"name": "_contextName","defaultValue":' ,context,',"type":"CHARACTER","label":"Context Name","required": false}'); end; string=cats(string,'],"code":"'); put string; run; /** * Add webout macro * These put statements are auto generated - to change the macro, change the * source (mv_webout) and run `build.py` */ filename &adapter temp lrecl=3000; data _null_; file &adapter; put "/* Created on %sysfunc(datetime(),datetime19.) by &sysuserid */"; /* WEBOUT BEGIN */ put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y '; put ' ,engine=DATASTEP '; put ' ,missing=NULL '; put ' ,showmeta=N '; put ' ,maxobs=MAX '; put ')/*/STORE SOURCE*/; '; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval '; put ' tmpds1 tmpds2 tmpds3 tmpds4; '; put '%let numcols=0; '; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;); '; put ' '; put '%if &action=OPEN %then %do; '; put ' options nobomfile; '; put ' data _null_;file &jref encoding=''utf-8'' lrecl=200; '; put ' put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"''; '; put ' run; '; put '%end; '; put '%else %if (&action=ARR or &action=OBJ) %then %do; '; put ' /* force variable names to always be uppercase in the JSON */ '; put ' options validvarname=upcase; '; put ' /* To avoid issues with _webout on EBI - such as encoding diffs and truncation '; put ' (https://support.sas.com/kb/49/325.html) we use temporary files */ '; put ' filename _sjs1 temp lrecl=200 ; '; put ' data _null_; file _sjs1 encoding=''utf-8''; '; put ' put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":"; '; put ' run; '; put ' /* now write to _webout 1 char at a time */ '; put ' data _null_; '; put ' infile _sjs1 lrecl=1 recfm=n; '; put ' file &jref mod lrecl=1 recfm=n; '; put ' input sourcechar $char1. @@; '; put ' format sourcechar hex2.; '; put ' put sourcechar char1. @@; '; put ' run; '; put ' filename _sjs1 clear; '; put ' '; put ' /* grab col defs */ '; put ' proc contents noprint data=&ds '; put ' out=_data_(keep=name type length format formatl formatd varnum label); '; put ' run; '; put ' %let colinfo=%scan(&syslast,2,.); '; put ' proc sort data=&colinfo; '; put ' by varnum; '; put ' run; '; put ' /* move meta to mac vars */ '; put ' data &colinfo; '; put ' if _n_=1 then call symputx(''numcols'',nobs,''l''); '; put ' set &colinfo end=last nobs=nobs; '; put ' name=upcase(name); '; put ' /* fix formats */ '; put ' if type=2 or type=6 then do; '; put ' typelong=''char''; '; put ' length fmt $49.; '; put ' if format='''' then fmt=cats(''$'',length,''.''); '; put ' else if formatl=0 then fmt=cats(format,''.''); '; put ' else fmt=cats(format,formatl,''.''); '; put ' end; '; put ' else do; '; put ' typelong=''num''; '; put ' if format='''' then fmt=''best.''; '; put ' else if formatl=0 then fmt=cats(format,''.''); '; put ' else if formatd=0 then fmt=cats(format,formatl,''.''); '; put ' else fmt=cats(format,formatl,''.'',formatd); '; put ' end; '; put ' /* 32 char unique name */ '; put ' newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27); '; put ' '; put ' call symputx(cats(''name'',_n_),name,''l''); '; put ' call symputx(cats(''newname'',_n_),newname,''l''); '; put ' call symputx(cats(''length'',_n_),length,''l''); '; put ' call symputx(cats(''fmt'',_n_),fmt,''l''); '; put ' call symputx(cats(''type'',_n_),type,''l''); '; put ' call symputx(cats(''typelong'',_n_),typelong,''l''); '; put ' call symputx(cats(''label'',_n_),coalescec(label,name),''l''); '; put ' /* overwritten when fmt=Y and a custom format exists in catalog */ '; put ' if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l''); '; put ' else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l''); '; put ' run; '; put ' '; put ' %let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32); '; put ' proc sql; '; put ' select count(*) into: lastobs from &ds; '; put ' %if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs)); '; put ' '; put ' %if &engine=PROCJSON %then %do; '; put ' %if &missing=STRING %then %do; '; put ' %put &sysmacroname: Special Missings not supported in proc json.; '; put ' %put &sysmacroname: Switching to DATASTEP engine; '; put ' %goto datastep; '; put ' %end; '; put ' data &tempds; '; put ' set &ds; '; put ' &stmt_obs; '; put ' %if &fmt=N %then format _numeric_ best32.;; '; put ' /* PRETTY is necessary to avoid line truncation in large files */ '; put ' filename _sjs2 temp lrecl=131068 encoding=''utf-8''; '; put ' proc json out=_sjs2 pretty '; put ' %if &action=ARR %then nokeys ; '; put ' ;export &tempds / nosastags fmtnumeric; '; put ' run; '; put ' /* send back to webout */ '; put ' data _null_; '; put ' infile _sjs2 lrecl=1 recfm=n; '; put ' file &jref mod lrecl=1 recfm=n; '; put ' input sourcechar $char1. @@; '; put ' format sourcechar hex2.; '; put ' put sourcechar char1. @@; '; put ' run; '; put ' filename _sjs2 clear; '; put ' %end; '; put ' %else %if &engine=DATASTEP %then %do; '; put ' %datastep: '; put ' %if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1 '; put ' %then %do; '; put ' %put &sysmacroname: &ds NOT FOUND!!!; '; put ' %return; '; put ' %end; '; put ' '; put ' %if &fmt=Y %then %do; '; put ' /** '; put ' * Extract format definitions '; put ' * First, by getting library locations from dictionary.formats '; put ' * Then, by exporting the width using proc format '; put ' * Cannot use maxw from sashelp.vformat as not always populated '; put ' * Cannot use fmtinfo() as not supported in all flavours '; put ' */ '; put ' %let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32); '; put ' %let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32); '; put ' %let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32); '; put ' %let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32); '; put ' proc sql noprint; '; put ' create table &tmpds1 as '; put ' select cats(libname,''.'',memname) as FMTCAT, '; put ' FMTNAME '; put ' from dictionary.formats '; put ' where fmttype=''F'' and libname is not null '; put ' and fmtname in (select format from &colinfo where format is not null) '; put ' order by 1; '; put ' create table &tmpds2( '; put ' FMTNAME char(32), '; put ' LENGTH num '; put ' ); '; put ' %local catlist cat fmtlist i; '; put ' select distinct fmtcat into: catlist separated by '' '' from &tmpds1; '; put ' %do i=1 %to %sysfunc(countw(&catlist,%str( ))); '; put ' %let cat=%scan(&catlist,&i,%str( )); '; put ' proc sql; '; put ' select distinct fmtname into: fmtlist separated by '' '' '; put ' from &tmpds1 where fmtcat="&cat"; '; put ' proc format lib=&cat cntlout=&tmpds3(keep=fmtname length); '; put ' select &fmtlist; '; put ' run; '; put ' proc sql; '; put ' insert into &tmpds2 select distinct fmtname,length from &tmpds3; '; put ' %end; '; put ' '; put ' proc sql; '; put ' create table &tmpds4 as '; put ' select a.*, b.length as MAXW '; put ' from &colinfo a '; put ' left join &tmpds2 b '; put ' on cats(a.format)=cats(upcase(b.fmtname)) '; put ' order by a.varnum; '; put ' data _null_; '; put ' set &tmpds4; '; put ' if not missing(maxw); '; put ' call symputx( '; put ' cats(''fmtlen'',_n_), '; put ' /* vars need extra padding due to JSON escaping of special chars */ '; put ' min(32767,ceil((max(length,maxw)+10)*1.5)) '; put ' ,''l'' '; put ' ); '; put ' run; '; put ' '; put ' /* configure varlenchk - as we are explicitly shortening the variables */ '; put ' %let optval=%sysfunc(getoption(varlenchk)); '; put ' options varlenchk=NOWARN; '; put ' data _data_(compress=char); '; put ' /* shorten the new vars */ '; put ' length '; put ' %do i=1 %to &numcols; '; put ' &&name&i $&&fmtlen&i '; put ' %end; '; put ' ; '; put ' /* rename on entry */ '; put ' set &ds(rename=( '; put ' %do i=1 %to &numcols; '; put ' &&name&i=&&newname&i '; put ' %end; '; put ' )); '; put ' &stmt_obs; '; put ' '; put ' drop '; put ' %do i=1 %to &numcols; '; put ' &&newname&i '; put ' %end; '; put ' ; '; put ' %do i=1 %to &numcols; '; put ' %if &&typelong&i=num %then %do; '; put ' &&name&i=cats(put(&&newname&i,&&fmt&i)); '; put ' %end; '; put ' %else %do; '; put ' &&name&i=put(&&newname&i,&&fmt&i); '; put ' %end; '; put ' %end; '; put ' if _error_ then do; '; put ' call symputx(''syscc'',1012); '; put ' stop; '; put ' end; '; put ' run; '; put ' %let fmtds=&syslast; '; put ' options varlenchk=&optval; '; put ' %end; '; put ' '; put ' proc format; /* credit yabwon for special null removal */ '; put ' value bart (default=40) '; put ' %if &missing=NULL %then %do; '; put ' ._ - .z = null '; put ' %end; '; put ' %else %do; '; put ' ._ = [quote()] '; put ' . = null '; put ' .a - .z = [quote()] '; put ' %end; '; put ' other = [best.]; '; put ' '; put ' data &tempds; '; put ' attrib _all_ label=''''; '; put ' %do i=1 %to &numcols; '; put ' %if &&typelong&i=char or &fmt=Y %then %do; '; put ' length &&name&i $&&fmtlen&i...; '; put ' format &&name&i $&&fmtlen&i...; '; put ' %end; '; put ' %end; '; put ' %if &fmt=Y %then %do; '; put ' set &fmtds; '; put ' %end; '; put ' %else %do; '; put ' set &ds; '; put ' %end; '; put ' &stmt_obs; '; put ' format _numeric_ bart.; '; put ' %do i=1 %to &numcols; '; put ' %if &&typelong&i=char or &fmt=Y %then %do; '; put ' if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do; '; put ' &&name&i=''"''!!trim( '; put ' prxchange(''s/"/\\"/'',-1, /* double quote */ '; put ' prxchange(''s/\x0A/\n/'',-1, /* new line */ '; put ' prxchange(''s/\x0D/\r/'',-1, /* carriage return */ '; put ' prxchange(''s/\x09/\\t/'',-1, /* tab */ '; put ' prxchange(''s/\x00/\\u0000/'',-1, /* NUL */ '; put ' prxchange(''s/\x0E/\\u000E/'',-1, /* SS */ '; put ' prxchange(''s/\x0F/\\u000F/'',-1, /* SF */ '; put ' prxchange(''s/\x01/\\u0001/'',-1, /* SOH */ '; put ' prxchange(''s/\x02/\\u0002/'',-1, /* STX */ '; put ' prxchange(''s/\x10/\\u0010/'',-1, /* DLE */ '; put ' prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */ '; put ' prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */ '; put ' prxchange(''s/\\/\\\\/'',-1,&&name&i) '; put ' )))))))))))))!!''"''; '; put ' end; '; put ' else &&name&i=quote(cats(&&name&i)); '; put ' %end; '; put ' %end; '; put ' run; '; put ' '; put ' filename _sjs3 temp lrecl=131068 ; '; put ' data _null_; '; put ' file _sjs3 encoding=''utf-8''; '; put ' if _n_=1 then put "["; '; put ' set &tempds; '; put ' if _n_>1 then put "," @; put '; put ' %if &action=ARR %then "[" ; %else "{" ; '; put ' %do i=1 %to &numcols; '; put ' %if &i>1 %then "," ; '; put ' %if &action=OBJ %then """&&name&i"":" ; '; put ' "&&name&i"n /* name literal for reserved variable names */ '; put ' %end; '; put ' %if &action=ARR %then "]" ; %else "}" ; ; '; put ' '; put ' /* close out the table */ '; put ' data _null_; '; put ' file _sjs3 mod encoding=''utf-8''; '; put ' put '']''; '; put ' run; '; put ' data _null_; '; put ' infile _sjs3 lrecl=1 recfm=n; '; put ' file &jref mod lrecl=1 recfm=n; '; put ' input sourcechar $char1. @@; '; put ' format sourcechar hex2.; '; put ' put sourcechar char1. @@; '; put ' run; '; put ' filename _sjs3 clear; '; put ' %end; '; put ' '; put ' proc sql; '; put ' drop table &colinfo, &tempds; '; put ' '; put ' %if %substr(&showmeta,1,1)=Y %then %do; '; put ' filename _sjs4 temp lrecl=131068 encoding=''utf-8''; '; put ' data _null_; '; put ' file _sjs4; '; put ' length label $350; '; put ' put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{"; '; put ' do i=1 to &numcols; '; put ' name=quote(trim(symget(cats(''name'',i)))); '; put ' format=quote(trim(symget(cats(''fmt'',i)))); '; put ' label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i))))); '; put ' length=quote(trim(symget(cats(''length'',i)))); '; put ' type=quote(trim(symget(cats(''typelong'',i)))); '; put ' if i>1 then put "," @@; '; put ' put name '':{"format":'' format '',"label":'' label '; put ' '',"length":'' length '',"type":'' type ''}''; '; put ' end; '; put ' put ''}}''; '; put ' run; '; put ' /* send back to webout */ '; put ' data _null_; '; put ' infile _sjs4 lrecl=1 recfm=n; '; put ' file &jref mod lrecl=1 recfm=n; '; put ' input sourcechar $char1. @@; '; put ' format sourcechar hex2.; '; put ' put sourcechar char1. @@; '; put ' run; '; put ' filename _sjs4 clear; '; put ' %end; '; put '%end; '; put ' '; put '%else %if &action=CLOSE %then %do; '; put ' data _null_; file &jref encoding=''utf-8'' mod ; '; put ' put "}"; '; put ' run; '; put '%end; '; put '%mend mp_jsonout; '; put ' '; put '%macro mf_getuser( '; put ')/*/STORE SOURCE*/; '; put ' %local user; '; put ' '; put ' %if %symexist(_sasjs_username) %then %let user=&_sasjs_username; '; put ' %else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do; '; put ' %let user=&SYS_COMPUTE_SESSION_OWNER; '; put ' %end; '; put ' %else %if %symexist(_metaperson) %then %do; '; put ' %if %length(&_metaperson)=0 %then %let user=&sysuserid; '; put ' /* sometimes SAS will add @domain extension - remove for consistency */ '; put ' /* but be sure to quote in case of usernames with commas */ '; put ' %else %let user=%unquote(%scan(%quote(&_metaperson),1,@)); '; put ' %end; '; put ' %else %let user=&sysuserid; '; put ' '; put ' %quote(&user) '; put ' '; put '%mend mf_getuser; '; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL '; put ' ,showmeta=N,maxobs=MAX,workobs=0 '; put '); '; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name '; put ' sasjs_tables SYS_JES_JOB_URI; '; put '%if %index("&_debug",log) %then %let _debug=131; '; put ' '; put '%local i tempds table; '; put '%let action=%upcase(&action); '; put ' '; put '%if &action=FETCH %then %do; '; put ' %if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do; '; put ' options mprint notes mprintnest; '; put ' %end; '; put ' '; put ' %if not %symexist(_webin_fileuri1) %then %do; '; put ' %let _webin_file_count=%eval(&_webin_file_count+0); '; put ' %let _webin_fileuri1=&_webin_fileuri; '; put ' %let _webin_name1=&_webin_name; '; put ' %end; '; put ' '; put ' /* if the sasjs_tables param is passed, we expect param based upload */ '; put ' %if %length(&sasjs_tables.X)>1 %then %do; '; put ' '; put ' /* convert data from macro variables to datasets */ '; put ' %do i=1 %to %sysfunc(countw(&sasjs_tables)); '; put ' %let table=%scan(&sasjs_tables,&i,%str( )); '; put ' %if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1; '; put ' data _null_; '; put ' file "%sysfunc(pathname(work))/&table..csv" recfm=n; '; put ' retain nrflg 0; '; put ' length line $32767; '; put ' do i=1 to &&sasjs&i.data0; '; put ' if &&sasjs&i.data0=1 then line=symget("sasjs&i.data"); '; put ' else line=symget(cats("sasjs&i.data",i)); '; put ' if i=1 and substr(line,1,7)=''%nrstr('' then do; '; put ' nrflg=1; '; put ' line=substr(line,8); '; put ' end; '; put ' if i=&&sasjs&i.data0 and nrflg=1 then do; '; put ' line=substr(line,1,length(line)-1); '; put ' end; '; put ' put line +(-1) @; '; put ' end; '; put ' run; '; put ' data _null_; '; put ' infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ; '; put ' input; '; put ' if _n_=1 then call symputx(''input_statement'',_infile_); '; put ' list; '; put ' data work.&table; '; put ' infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd '; put ' termstr=crlf; '; put ' input &input_statement; '; put ' run; '; put ' %end; '; put ' %end; '; put ' %else %do i=1 %to &_webin_file_count; '; put ' /* read in any files that are sent */ '; put ' /* this part needs refactoring for wide files */ '; put ' filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999; '; put ' data _null_; '; put ' infile indata termstr=crlf lrecl=32767; '; put ' input; '; put ' if _n_=1 then call symputx(''input_statement'',_infile_); '; put ' %if %str(&_debug) ge 131 %then %do; '; put ' if _n_<20 then putlog _infile_; '; put ' else stop; '; put ' %end; '; put ' %else %do; '; put ' stop; '; put ' %end; '; put ' run; '; put ' data &&_webin_name&i; '; put ' infile indata firstobs=2 dsd termstr=crlf ; '; put ' input &input_statement; '; put ' run; '; put ' %let sasjs_tables=&sasjs_tables &&_webin_name&i; '; put ' %end; '; put '%end; '; put '%else %if &action=OPEN %then %do; '; put ' /* setup webout */ '; put ' OPTIONS NOBOMFILE; '; put ' %if "X&SYS_JES_JOB_URI.X"="XX" %then %do; '; put ' filename _webout temp lrecl=999999 mod; '; put ' %end; '; put ' %else %do; '; put ' filename _webout filesrvc parenturi="&SYS_JES_JOB_URI" '; put ' name="_webout.json" lrecl=999999 mod; '; put ' %end; '; put ' '; put ' /* setup temp ref */ '; put ' %if %upcase(&fref) ne _WEBOUT %then %do; '; put ' filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---''; '; put ' %end; '; put ' '; put ' /* setup json */ '; put ' data _null_;file &fref; '; put ' put ''{"SYSDATE" : "'' "&SYSDATE" ''"''; '; put ' put '',"SYSTIME" : "'' "&SYSTIME" ''"''; '; put ' run; '; put '%end; '; put '%else %if &action=ARR or &action=OBJ %then %do; '; put ' %mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref '; put ' ,engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs '; put ' ) '; put '%end; '; put '%else %if &action=CLOSE %then %do; '; put ' %if %str(&workobs) > 0 %then %do; '; put ' /* send back first XX records of each work table for debugging */ '; put ' data;run;%let tempds=%scan(&syslast,2,.); '; put ' ods output Members=&tempds; '; put ' proc datasets library=WORK memtype=data; '; put ' %local wtcnt;%let wtcnt=0; '; put ' data _null_; '; put ' set &tempds; '; put ' if not (upcase(name) =:"DATA"); /* ignore temp datasets */ '; put ' i+1; '; put ' call symputx(cats(''wt'',i),name,''l''); '; put ' call symputx(''wtcnt'',i,''l''); '; put ' data _null_; file &fref mod; put ",""WORK"":{"; '; put ' %do i=1 %to &wtcnt; '; put ' %let wt=&&wt&i; '; put ' data _null_; file &fref mod; '; put ' dsid=open("WORK.&wt",''is''); '; put ' nlobs=attrn(dsid,''NLOBS''); '; put ' nvars=attrn(dsid,''NVARS''); '; put ' rc=close(dsid); '; put ' if &i>1 then put '',''@; '; put ' put " ""&wt"" : {"; '; put ' put ''"nlobs":'' nlobs; '; put ' put '',"nvars":'' nvars; '; put ' %mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y '; put ' ,maxobs=&workobs '; put ' ) '; put ' data _null_; file &fref mod;put "}"; '; put ' %end; '; put ' data _null_; file &fref mod;put "}";run; '; put ' %end; '; put ' '; put ' /* close off json */ '; put ' data _null_;file &fref mod; '; put ' length SYSPROCESSNAME syserrortext syswarningtext autoexec $512; '; put ' put ",""_DEBUG"" : ""&_debug"" "; '; put ' _PROGRAM=quote(trim(resolve(symget(''_PROGRAM'')))); '; put ' put '',"_PROGRAM" : '' _PROGRAM ; '; put ' autoexec=quote(urlencode(trim(getoption(''autoexec'')))); '; put ' put '',"AUTOEXEC" : '' autoexec; '; put ' put ",""MF_GETUSER"" : ""%mf_getuser()"" "; '; put ' SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI'')))); '; put ' put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ; '; put ' put ",""SYSJOBID"" : ""&sysjobid"" "; '; put ' put ",""SYSCC"" : ""&syscc"" "; '; put ' syserrortext=cats(symget(''syserrortext'')); '; put ' if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do; '; put ' syserrortext=''"''!!trim( '; put ' prxchange(''s/"/\\"/'',-1, /* double quote */ '; put ' prxchange(''s/\x0A/\n/'',-1, /* new line */ '; put ' prxchange(''s/\x0D/\r/'',-1, /* carriage return */ '; put ' prxchange(''s/\x09/\\t/'',-1, /* tab */ '; put ' prxchange(''s/\x00/\\u0000/'',-1, /* NUL */ '; put ' prxchange(''s/\x0E/\\u000E/'',-1, /* SS */ '; put ' prxchange(''s/\x0F/\\u000F/'',-1, /* SF */ '; put ' prxchange(''s/\x01/\\u0001/'',-1, /* SOH */ '; put ' prxchange(''s/\x02/\\u0002/'',-1, /* STX */ '; put ' prxchange(''s/\x10/\\u0010/'',-1, /* DLE */ '; put ' prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */ '; put ' prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */ '; put ' prxchange(''s/\\/\\\\/'',-1,syserrortext) '; put ' )))))))))))))!!''"''; '; put ' end; '; put ' else syserrortext=cats(''"'',syserrortext,''"''); '; put ' put '',"SYSERRORTEXT" : '' syserrortext; '; put ' put ",""SYSHOSTNAME"" : ""&syshostname"" "; '; put ' put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" "; '; put ' put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" "; '; put ' SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME))); '; put ' put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME; '; put ' put ",""SYSJOBID"" : ""&sysjobid"" "; '; put ' put ",""SYSSCPL"" : ""&sysscpl"" "; '; put ' put ",""SYSSITE"" : ""&syssite"" "; '; put ' put ",""SYSUSERID"" : ""&sysuserid"" "; '; put ' sysvlong=quote(trim(symget(''sysvlong''))); '; put ' put '',"SYSVLONG" : '' sysvlong; '; put ' syswarningtext=cats(symget(''syswarningtext'')); '; put ' if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do; '; put ' syswarningtext=''"''!!trim( '; put ' prxchange(''s/"/\\"/'',-1, /* double quote */ '; put ' prxchange(''s/\x0A/\n/'',-1, /* new line */ '; put ' prxchange(''s/\x0D/\r/'',-1, /* carriage return */ '; put ' prxchange(''s/\x09/\\t/'',-1, /* tab */ '; put ' prxchange(''s/\x00/\\u0000/'',-1, /* NUL */ '; put ' prxchange(''s/\x0E/\\u000E/'',-1, /* SS */ '; put ' prxchange(''s/\x0F/\\u000F/'',-1, /* SF */ '; put ' prxchange(''s/\x01/\\u0001/'',-1, /* SOH */ '; put ' prxchange(''s/\x02/\\u0002/'',-1, /* STX */ '; put ' prxchange(''s/\x10/\\u0010/'',-1, /* DLE */ '; put ' prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */ '; put ' prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */ '; put ' prxchange(''s/\\/\\\\/'',-1,syswarningtext) '; put ' )))))))))))))!!''"''; '; put ' end; '; put ' else syswarningtext=cats(''"'',syswarningtext,''"''); '; put ' put '',"SYSWARNINGTEXT" : '' syswarningtext; '; put ' put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" ''; '; put ' length memsize $32; '; put ' memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)"; '; put ' memsize=quote(cats(memsize)); '; put ' put '',"MEMSIZE" : '' memsize; '; put ' put "}"; '; put ' '; put ' %if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do; '; put ' data _null_; rc=fcopy("&fref","_webout");run; '; put ' %end; '; put ' '; put '%end; '; put ' '; put '%mend mv_webout; '; /* WEBOUT END */ put '/* if calling viya service with _job param, _program will conflict */'; put '/* so it is provided by SASjs instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put ' '; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO'; put ' ,maxobs=MAX'; put ');'; put ' %mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt,missing=&missing'; put ' ,showmeta=&showmeta,maxobs=&maxobs'; put ' )'; put '%mend;'; run; /* insert the code, escaping double quotes and carriage returns */ %&dbg.put &sysmacroname: Creating final input file; %local x fref freflist; %let freflist= &adapter &precode &code ; %do x=1 %to %sysfunc(countw(&freflist)); %let fref=%scan(&freflist,&x); %&dbg.put &sysmacroname: adding &fref fileref; data _null_; length filein 8 fileid 8; filein = fopen("&fref","I",1,"B"); fileid = fopen("&fname3","A",1,"B"); rec = "20"x; do while(fread(filein)=0); rc = fget(filein,rec,1); if rec='"' then do; /* DOUBLE QUOTE */ rc =fput(fileid,'\');rc =fwrite(fileid); rc =fput(fileid,'"');rc =fwrite(fileid); end; else if rec='0A'x then do; /* LF */ rc =fput(fileid,'\');rc =fwrite(fileid); rc =fput(fileid,'n');rc =fwrite(fileid); end; else if rec='0D'x then do; /* CR */ rc =fput(fileid,'\');rc =fwrite(fileid); rc =fput(fileid,'r');rc =fwrite(fileid); end; else if rec='09'x then do; /* TAB */ rc =fput(fileid,'\');rc =fwrite(fileid); rc =fput(fileid,'t');rc =fwrite(fileid); end; else if rec='5C'x then do; /* BACKSLASH */ rc =fput(fileid,'\');rc =fwrite(fileid); rc =fput(fileid,'\');rc =fwrite(fileid); end; else if rec='01'x then do; /* Unprintable */ rc =fput(fileid,'\');rc =fwrite(fileid); rc =fput(fileid,'u');rc =fwrite(fileid); rc =fput(fileid,'0');rc =fwrite(fileid); rc =fput(fileid,'0');rc =fwrite(fileid); rc =fput(fileid,'0');rc =fwrite(fileid); rc =fput(fileid,'1');rc =fwrite(fileid); end; else if rec='07'x then do; /* Bell Char */ rc =fput(fileid,'\');rc =fwrite(fileid); rc =fput(fileid,'u');rc =fwrite(fileid); rc =fput(fileid,'0');rc =fwrite(fileid); rc =fput(fileid,'0');rc =fwrite(fileid); rc =fput(fileid,'0');rc =fwrite(fileid); rc =fput(fileid,'7');rc =fwrite(fileid); end; else if rec='1B'x then do; /* escape char */ rc =fput(fileid,'\');rc =fwrite(fileid); rc =fput(fileid,'u');rc =fwrite(fileid); rc =fput(fileid,'0');rc =fwrite(fileid); rc =fput(fileid,'0');rc =fwrite(fileid); rc =fput(fileid,'1');rc =fwrite(fileid); rc =fput(fileid,'B');rc =fwrite(fileid); end; else do; rc =fput(fileid,rec); rc =fwrite(fileid); end; end; rc=fclose(filein); rc=fclose(fileid); run; %end; /* finish off the body of the code file loaded to JES */ data _null_; file &fname3 mod TERMSTR=' '; put '"}'; run; %if &mdebug=1 and &SYS_PROCHTTP_STATUS_CODE ne 201 %then %do; %put &sysmacroname: input about to be POSTed; data _null_;infile &fname3;input;putlog _infile_;run; %end; %&dbg.put &sysmacroname: Creating the actual service!; %local fname4; %let fname4=%mf_getuniquefileref(); proc http method='POST' in=&fname3 out=&fname4 &oauth_bearer url="&base_uri/jobDefinitions/definitions?parentFolderUri=&parentFolderUri"; headers 'Content-Type'='application/vnd.sas.job.definition+json' %if &grant_type=authorization_code %then %do; "Authorization"="Bearer &&&access_token_var" %end; "Accept"="application/vnd.sas.job.definition+json"; %if &mdebug=1 %then %do; debug level = 3; %end; run; %if &mdebug=1 and &SYS_PROCHTTP_STATUS_CODE ne 201 %then %do; %put &sysmacroname: output from POSTing job definition; data _null_;infile &fname4;input;putlog _infile_;run; %end; %mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 201) ,mac=&sysmacroname ,msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE) ) /* get the url so we can give a helpful log message */ %local url; data _null_; if symexist('_baseurl') then do; url=symget('_baseurl'); if subpad(url,length(url)-9,9)='SASStudio' then url=substr(url,1,length(url)-11); else url="&systcpiphostname"; end; else url="&systcpiphostname"; call symputx('url',url); run; %if &mdebug=1 %then %do; %put &sysmacroname exit vars:; %put _local_; %end; %else %do; /* clear refs */ filename &fname1 clear; filename &fname2 clear; filename &fname3 clear; filename &fname4 clear; filename &adapter clear; libname &libref1 clear; %end; %put &sysmacroname: Job &name created! Check it out:; %put &url/SASJobExecution?_PROGRAM=&path/&name; %mend mv_createwebservice; /** @file @brief Creates a file in SAS Drive using the API method @details Creates a file in SAS Drive using the API interface. If the parent folder does not exist, it is created. The API approach is more flexible than using the filesrvc engine of the filename statement, as it provides more options. SAS docs: https://developer.sas.com/rest-apis/files/createNewFile Usage: filename myfile temp; data _null_; file myfile; put 'something'; run; %mv_createfile(path=/Public/temp,name=newfile.txt,inref=myfile) The macro also supports find & replace (used by the SASjs Streaming App build program). This allows one string to be replaced by another at the point at which the file is created. This is done by passing in the NAMES of the macro variables containing the values to be swapped, eg: filename fref temp; data _null_; file fref; put 'whenever life gets you down, Mrs Brown..'; run; %let f=Mrs Brown; %let r=just remember that you're standing on a planet that's evolving; %mv_createfile(path=/Public,name=life.md,inref=fref,fin,swap=f r) @param [in] path= The parent (SAS Drive) folder in which to create the file @param [in] name= The name of the file to be created @param [in] inref= The fileref pointing to the file to be uploaded @param [in] intype= (BINARY) The type of the input data. Valid values: @li BINARY File is copied byte for byte using the mp_binarycopy.sas macro. @li BASE64 File will be first decoded using the mp_base64.sas macro, then loaded byte by byte to SAS Drive. @param [in] contentdisp= (attchment) Content Disposition. Example values: @li inline @li attachment @param [in] ctype= (0) The actual MIME type of the file (if blank will be determined based on file extension)) @param [in] access_token_var= The global macro variable to contain the access token, if using authorization_code grant type. @param [in] grant_type= (sas_services) Valid values are: @li password @li authorization_code @li sas_services @param [in] force= (YES) Will overwrite (delete / recreate) files by default. Set to NO to abort if a file already exists in that location. @param pin] swap= (0) Provide two macro variable NAMES that contain the values to be swapped, eg swap=find replace (see also the example above) @param [out] outds= (_null_) Output dataset with the uri of the new file @param [in] mdebug= (0) Set to 1 to enable DEBUG messages

SAS Macros

@li mf_getplatform.sas @li mf_getuniquefileref.sas @li mf_getuniquename.sas @li mf_isblank.sas @li mf_mimetype.sas @li mfv_getpathuri.sas @li mp_abort.sas @li mp_base64copy.sas @li mp_replace.sas @li mv_createfolder.sas

Related Macros

@li mv_createfile.sas **/ %macro mv_createfile(path= ,name= ,inref= ,intype=BINARY ,contentdisp=attachment ,ctype=0 ,access_token_var=ACCESS_TOKEN ,grant_type=sas_services ,mdebug=0 ,outds=_null_ ,force=YES ,swap=0 ); %local dbg; %if &mdebug=1 %then %do; %put &sysmacroname entry vars:; %put _local_; %end; %else %let dbg=*; %mp_abort( iftrue=(&syscc ne 0), msg=Cannot enter &sysmacroname with syscc=&syscc ) %local oauth_bearer; %if &grant_type=detect %then %do; %if %symexist(&access_token_var) %then %let grant_type=authorization_code; %else %let grant_type=sas_services; %end; %if &grant_type=sas_services %then %do; %let oauth_bearer=oauth_bearer=sas_services; %let &access_token_var=; %end; %mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password and &grant_type ne sas_services ) ,mac=MV_CREATEFILE ,msg=%str(Invalid value for grant_type: &grant_type) ) %mp_abort(iftrue=(%mf_isblank(&path)=1 or %length(&path)=1) ,mac=MV_CREATEFILE ,msg=%str(path value must be provided) ) %mp_abort(iftrue=(%mf_isblank(&name)=1 or %length(&name)=1) ,mac=MV_CREATEFILE ,msg=%str(name value with length >1 must be provided) ) /* prep the source file */ %local fref; %let fref=%mf_getuniquefileref(); %if %upcase(&intype)=BINARY %then %let fref=&inref; %else %if %upcase(&intype)=BASE64 %then %do; %mp_base64copy(inref=&inref, outref=&fref, action=DECODE) %end; %else %put %str(ERR)OR: invalid value for intype: &intype; %if "&swap" ne "0" %then %do; %mp_replace("%sysfunc(pathname(&fref))" ,findvar=%scan(&swap,1,%str( )) ,replacevar=%scan(&swap,2,%str( )) ) %end; %if &mdebug=1 %then %do; data _null_; infile &fref lrecl=32767; input; put _infile_; run; %end; options noquotelenmax; %local base_uri; /* location of rest apis */ %let base_uri=%mf_getplatform(VIYARESTAPI); /* create folder if it does not already exist */ %local folderds self_uri; %let folderds=%mf_getuniquename(prefix=folderds); %mv_createfolder(path=&path ,access_token_var=&access_token_var ,grant_type=&grant_type ,mdebug=&mdebug ,outds=&folderds ) data _null_; set &folderds; call symputx('self_uri',self_uri,'l'); run; /* abort or delete if file already exists */ %let force=%upcase(&force); %local fileuri ; %let fileuri=%mfv_getpathuri(&path/&name); %mp_abort(iftrue=(%mf_isblank(&fileuri)=0 and &force ne YES) ,mac=MV_CREATEFILE ,msg=%str(File &path/&name already exists and force=&force) ) %mp_abort( iftrue=(&syscc ne 0), mac=MV_CREATEFILE182 msg=syscc=&syscc after mfv_getpathuri ) %if %mf_isblank(&fileuri)=0 and &force=YES %then %do; proc http method="DELETE" url="&base_uri&fileuri" &oauth_bearer; headers %if &grant_type=authorization_code %then %do; "Authorization"="Bearer &&&access_token_var" %end; "Accept"="*/*"; run; %put &sysmacroname DELETE &base_uri&fileuri; %if &SYS_PROCHTTP_STATUS_CODE ne 204 %then %do; %put &=SYS_PROCHTTP_STATUS_CODE &=SYS_PROCHTTP_STATUS_PHRASE; %end; %end; %local url mimetype ext; %let url=&base_uri/files/files?parentFolderUri=&self_uri; %let ext=%upcase(%scan(&name,-1,.)); /* fetch job info */ %local fname1; %let fname1=%mf_getuniquefileref(); proc http method='POST' out=&fname1 &oauth_bearer in=&fref %if "&ctype" = "0" %then %do; %let mimetype=%mf_mimetype(&ext); ct="&mimetype" %end; %else %do; ct="&ctype" %end; %if "&ext"="HTML" or "&ext"="CSS" or "&ext"="JS" or "&ext"="PNG" or "&ext"="SVG" %then %do; url="&url%str(&)typeDefName=file"; %end; %else %do; url="&url"; %end; headers "Accept"="application/json" %if &grant_type=authorization_code %then %do; "Authorization"="Bearer &&&access_token_var" %end; "Content-Disposition"= %if "&ext"="SVG" or "&ext"="HTML" %then %do; "filename=""&name"";" %end; %else %do; "&contentdisp filename=""&name""; name=""&name"";" %end; ; run; %if &mdebug=1 %then %put &sysmacroname POST &=url &=SYS_PROCHTTP_STATUS_CODE &=SYS_PROCHTTP_STATUS_PHRASE; %mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 201) ,mac=MV_CREATEFILE ,msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE) ) %local libref2; %let libref2=%mf_getuniquelibref(); libname &libref2 JSON fileref=&fname1; /* Grab the follow on link */ data &outds; set &libref2..links end=last; if rel='createChild' then do; call symputx('href',quote(cats("&base_uri",href)),'l'); &dbg put (_all_)(=); end; run; %put &sysmacroname: %trim(&base_uri)%mfv_getpathuri(&path/&name); %put /SASJobExecution?_file=&path/&name;%put; %if &mdebug=0 %then %do; /* clear refs */ filename &fname1 clear; filename &fref clear; libname &libref2 clear; %end; %mp_abort( iftrue=(&syscc ne 0), msg=Cannot leave &sysmacroname with syscc=&syscc ) %mend mv_createfile; /* system macros for build process end */ %macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767); %local rc fname; %if &prefix=0 %then %do; %let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl)); %if &rc %then %put %sysfunc(sysmsg()); &fname %end; %else %do; %local x len; %let len=%eval(8-%length(&prefix)); %let x=0; %do x=0 %to &maxtries; %let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len); %if %sysfunc(fileref(&fname)) > 0 %then %do; %let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl)); %if &rc %then %put %sysfunc(sysmsg()); &fname %return; %end; %end; %put unable to find available fileref after &maxtries attempts; %end; %mend mf_getuniquefileref; %macro mfv_getfolderpath(uri )/*/STORE SOURCE*/; %local fref rc path msg var /* var used to avoid delete timing issue */; %let fref=%mf_getuniquefileref(); %if %quote(%substr(%str(&uri),1,17)) ne %quote(/folders/folders/) %then %do; %put &sysmacroname: Invalid URI: &uri; %end; %else %if %sysfunc(filename(fref,,filesrvc,folderuri="&uri" ))=0 %then %do; %let var=_FILESRVC_&fref._URI; %local fid ; %let fid= %sysfunc(fopen(&fref,I)); %let msg=%quote(%sysfunc(sysmsg())); %unquote(%scan(&msg,2,%str(,.))) %let rc=%sysfunc(fclose(&fid)); %let rc=%sysfunc(filename(fref)); %symdel &var; %end; %else %do; %put &sysmacroname: Not Found: &uri; %let syscc=0; %end; %mend mfv_getfolderpath ; %macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1) )/des='ungraceful abort' /*STORE SOURCE*/; %if not(%eval(%unquote(&iftrue))) %then %return; %put NOTE: /// mf_abort macro executing //; %if %length(&mac)>0 %then %put NOTE- called by &mac; %put NOTE - &msg; %abort; %mend mf_abort; /** @endcond */ %macro mfv_getpathuri(filepath )/*/STORE SOURCE*/; %mf_abort( iftrue=(&syscc ne 0), msg=Cannot enter &sysmacroname with syscc=&syscc ) %local fref rc path name var /* var is used to avoid delete timing issue */; %let fref=%mf_getuniquefileref(); %let name=%scan(&filepath,-1,/); %let path=%substr(&filepath,1,%length(&filepath)-%length(&name)-1); %if %sysfunc(filename(fref,,filesrvc,folderPath="&path" filename="&name"))=0 %then %do; %let var=_FILESRVC_&fref._URI; %str(&&&var) %let rc=%sysfunc(filename(fref)); %symdel &var; %end; %else %do; %put &sysmacroname: did not find &filepath; %let syscc=0; %end; %mf_abort( iftrue=(&syscc ne 0), msg=Cannot leave &sysmacroname with syscc=&syscc ) %mend mfv_getpathuri; %macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1) , errds=work.mp_abort_errds , mode=REGULAR )/*/STORE SOURCE*/; %global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode; %local fref fid i; %if not(%eval(%unquote(&iftrue))) %then %return; %put NOTE: /// mp_abort macro executing //; %if %length(&mac)>0 %then %put NOTE- called by &mac; %put NOTE - &msg; %if %symexist(_SYSINCLUDEFILEDEVICE) /* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */ and %superq(SYSPROCESSNAME) ne %str(Compute Server) %then %do; %if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do; data &errds; iftrue='1=1'; length mac $100 msg $5000; mac=symget('mac'); msg=symget('msg'); run; data _null_; abort cancel FILE; run; %return; %end; %end; /* Web App Context */ %if %symexist(_PROGRAM) or %superq(SYSPROCESSNAME) = %str(Compute Server) or &mode=INCLUDE %then %do; options obs=max replace mprint; %if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do; options nosyntaxcheck; %end; %if &mode=INCLUDE %then %do; %if %sysfunc(exist(&errds))=1 %then %do; data _null_; set &errds; call symputx('iftrue',iftrue,'l'); call symputx('mac',mac,'l'); call symputx('msg',msg,'l'); putlog (_all_)(=); run; %if (&iftrue)=0 %then %return; %end; %else %do; %put &sysmacroname: No include errors found; %return; %end; %end; /* extract log errs / warns, if exist */ %local logloc logline; %global logmsg; /* capture global messages */ %if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG; %else %let logloc=%qsysfunc(getoption(LOG)); proc printto log=log;run; %let logline=0; %if %length(&logloc)>0 %then %do; data _null_; infile &logloc lrecl=5000; input; putlog _infile_; i=1; retain logonce 0; if ( _infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR" ) and logonce=0 then do; call symputx('logline',_n_); logonce+1; end; run; /* capture log including lines BEFORE the err */ %if &logline>0 %then %do; data _null_; infile &logloc lrecl=5000; input; i=1; stoploop=0; if _n_ ge &logline-15 and stoploop=0 then do until (i>22); call symputx('logmsg',catx('\n',symget('logmsg'),_infile_)); input; i+1; stoploop=1; end; if stoploop=1 then stop; run; %end; %end; %if %symexist(SYS_JES_JOB_URI) %then %do; /* setup webout for Viya */ options nobomfile; %if "X&SYS_JES_JOB_URI.X"="XX" %then %do; filename _webout temp lrecl=999999 mod; %end; %else %do; filename _webout filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json" lrecl=999999 mod; %end; %end; %else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do; options nobomfile; /* set up http header for SASjs Server */ %let fid=%sysfunc(fopen(&fref,A)); %if &fid=0 %then %do; %put %str(ERR)OR: %sysfunc(sysmsg()); %return; %end; %let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json))); %let rc=%sysfunc(fwrite(&fid)); %let rc=%sysfunc(fclose(&fid)); %let rc=%sysfunc(filename(&fref)); %end; /* send response in SASjs JSON format */ data _null_; file _webout mod lrecl=32000 encoding='utf-8'; length msg syswarningtext syserrortext $32767 mode $10 ; sasdatetime=datetime(); msg=symget('msg'); %if &logline>0 %then %do; msg=cats(msg,'\n\nLog Extract:\n',symget('logmsg')); %end; /* escape the escapes */ msg=tranwrd(msg,'\','\\'); /* escape the quotes */ msg=tranwrd(msg,'"','\"'); /* ditch the CRLFs as chrome complains */ msg=compress(msg,,'kw'); /* quote without quoting the quotes (which are escaped instead) */ msg=cats('"',msg,'"'); if symexist('_debug') then debug=quote(trim(symget('_debug'))); else debug='""'; if symget('sasjsprocessmode')='Stored Program' then mode='SASJS'; if mode ne 'SASJS' then put '>>weboutBEGIN<<'; put '{"SYSDATE" : "' "&SYSDATE" '"'; put ',"SYSTIME" : "' "&SYSTIME" '"'; put ',"sasjsAbort" : [{'; put ' "MSG":' msg ; put ' ,"MAC": "' "&mac" '"}]'; put ",""SYSUSERID"" : ""&sysuserid"" "; put ',"_DEBUG":' debug ; if symexist('_metauser') then do; _METAUSER=quote(trim(symget('_METAUSER'))); put ",""_METAUSER"": " _METAUSER; _METAPERSON=quote(trim(symget('_METAPERSON'))); put ',"_METAPERSON": ' _METAPERSON; end; if symexist('SYS_JES_JOB_URI') then do; SYS_JES_JOB_URI=quote(trim(symget('SYS_JES_JOB_URI'))); put ',"SYS_JES_JOB_URI": ' SYS_JES_JOB_URI; end; _PROGRAM=quote(trim(resolve(symget('_PROGRAM')))); put ',"_PROGRAM" : ' _PROGRAM ; put ",""SYSCC"" : ""&syscc"" "; syserrortext=cats(symget('syserrortext')); if findc(syserrortext,'"\'!!'0A0D09000E0F010210111A'x) then do; syserrortext='"'!!trim( prxchange('s/"/\\"/',-1, /* double quote */ prxchange('s/\x0A/\n/',-1, /* new line */ prxchange('s/\x0D/\r/',-1, /* carriage return */ prxchange('s/\x09/\\t/',-1, /* tab */ prxchange('s/\x00/\\u0000/',-1, /* NUL */ prxchange('s/\x0E/\\u000E/',-1, /* SS */ prxchange('s/\x0F/\\u000F/',-1, /* SF */ prxchange('s/\x01/\\u0001/',-1, /* SOH */ prxchange('s/\x02/\\u0002/',-1, /* STX */ prxchange('s/\x10/\\u0010/',-1, /* DLE */ prxchange('s/\x11/\\u0011/',-1, /* DC1 */ prxchange('s/\x1A/\\u001A/',-1, /* SUB */ prxchange('s/\\/\\\\/',-1,syserrortext) )))))))))))))!!'"'; end; else syserrortext=cats('"',syserrortext,'"'); put ',"SYSERRORTEXT" : ' syserrortext; put ",""SYSHOSTNAME"" : ""&syshostname"" "; put ",""SYSJOBID"" : ""&sysjobid"" "; put ",""SYSSCPL"" : ""&sysscpl"" "; put ",""SYSSITE"" : ""&syssite"" "; sysvlong=quote(trim(symget('sysvlong'))); put ',"SYSVLONG" : ' sysvlong; syswarningtext=cats(symget('syswarningtext')); if findc(syswarningtext,'"\'!!'0A0D09000E0F010210111A'x) then do; syswarningtext='"'!!trim( prxchange('s/"/\\"/',-1, /* double quote */ prxchange('s/\x0A/\n/',-1, /* new line */ prxchange('s/\x0D/\r/',-1, /* carriage return */ prxchange('s/\x09/\\t/',-1, /* tab */ prxchange('s/\x00/\\u0000/',-1, /* NUL */ prxchange('s/\x0E/\\u000E/',-1, /* SS */ prxchange('s/\x0F/\\u000F/',-1, /* SF */ prxchange('s/\x01/\\u0001/',-1, /* SOH */ prxchange('s/\x02/\\u0002/',-1, /* STX */ prxchange('s/\x10/\\u0010/',-1, /* DLE */ prxchange('s/\x11/\\u0011/',-1, /* DC1 */ prxchange('s/\x1A/\\u001A/',-1, /* SUB */ prxchange('s/\\/\\\\/',-1,syswarningtext) )))))))))))))!!'"'; end; else syswarningtext=cats('"',syswarningtext,'"'); put ",""SYSWARNINGTEXT"" : " syswarningtext; put ',"END_DTTM" : "' "%sysfunc(datetime(),E8601DT26.6)" '" '; put "}" ; if mode ne 'SASJS' then put '>>weboutEND<<'; run; %put _all_; %if "&sysprocessmode " = "SAS Stored Process Server " %then %do; data _null_; putlog 'stpsrvset program err and syscc'; rc=stpsrvset('program error', 0); call symputx("syscc",0,"g"); run; %if &sysscp=WIN and 1=0 /* deprecating this logic until we figure out a consistent abort */ and "%substr(%str(&sysvlong ),1,8)"="9.04.01M" and "%substr(%str(&sysvlong ),9,1)">"5" %then %do; /* skip approach (below) does not work in windows m6+ envs */ endsas; %end; %else %do; /** * endsas kills 9.4m3 deployments by orphaning multibridges. * Abort variants are ungraceful (non zero return code) * This approach lets SAS run silently until the end :-) * Caution - fails when called within a %include within a macro * Use mp_include() to handle this. */ filename skip temp; data _null_; file skip; put '%macro skip();'; comment '%mend skip; -> fix lint '; put '%macro skippy();'; comment '%mend skippy; -> fix lint '; run; %inc skip; %end; %end; %else %if "&sysprocessmode " = "SAS Compute Server " %then %do; /* endsas kills the session making it harder to fetch results */ data _null_; syswarningtext=symget('syswarningtext'); syserrortext=symget('syserrortext'); abort_msg=symget('msg'); syscc=symget('syscc'); sysuserid=symget('sysuserid'); iftrue=symget('iftrue'); put (_all_)(/=); call symputx('syscc',0); abort cancel nolist; run; %end; %else %do; %abort cancel; %end; %end; %else %do; %put _all_; %abort cancel; %end; %mend mp_abort; /** @endcond */ %macro mf_getuniquelibref(prefix=mc,maxtries=1000); %local x; %if ( %length(&prefix) gt 7 ) %then %do; %put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.; 0 %return; %end; %else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do; %put %str(ERR)OR: Invalid prefix (&prefix); 0 %return; %end; /* Set maxtries equal to '10 to the power of [# unused characters] - 1' */ %let maxtries=%eval(10**(8-%length(&prefix))-1); %do x = 0 %to &maxtries; %if %sysfunc(libref(&prefix&x)) ne 0 %then %do; &prefix&x %return; %end; %let x = %eval(&x + 1); %end; %put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries; %put %str(ERR)OR- Try reducing the prefix or deleting some libraries!; 0 %mend mf_getuniquelibref; %macro mf_isblank(param )/*/STORE SOURCE*/; %sysevalf(%superq(param)=,boolean) %mend mf_isblank; %macro mf_mval(var); %if %symexist(&var) %then %do; %superq(&var) %end; %mend mf_mval; %macro mf_trimstr(basestr,trimstr); %local baselen trimlen trimval; /* return if basestr is shorter than trimstr (or 0) */ %let baselen=%length(%superq(basestr)); %let trimlen=%length(%superq(trimstr)); %if &baselen < &trimlen or &baselen=0 %then %return; /* obtain the characters from the end of basestr */ %let trimval=%qsubstr(%superq(basestr) ,%length(%superq(basestr))-&trimlen+1 ,&trimlen); /* compare and if matching, chop it off! */ %if %superq(basestr)=%superq(trimstr) %then %do; %return; %end; %else %if %superq(trimval)=%superq(trimstr) %then %do; %qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen) %end; %else %do; &basestr %end; %mend mf_trimstr; %macro mf_getplatform(switch )/*/STORE SOURCE*/; %local a b c; %if &switch.NONE=NONE %then %do; %if %symexist(sasjsprocessmode) %then %do; %if &sasjsprocessmode=Stored Program %then %do; SASJS %return; %end; %end; %if %symexist(sysprocessmode) %then %do; %if "&sysprocessmode"="SAS Object Server" or "&sysprocessmode"= "SAS Compute Server" %then %do; SASVIYA %end; %else %if "&sysprocessmode"="SAS Stored Process Server" or "&sysprocessmode"="SAS Workspace Server" %then %do; SASMETA %return; %end; %else %do; BASESAS %return; %end; %end; %else %if %symexist(_metaport) or %symexist(_metauser) %then %do; SASMETA %return; %end; %else %do; BASESAS %return; %end; %end; %else %if &switch=SASSTUDIO %then %do; /* return the version of SAS Studio else 0 */ %if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do; %let a=%mf_mval(_CLIENTVERSION); %let b=%scan(&a,1,.); %if %eval(&b >2) %then %do; &b %end; %else 0; %end; %else 0; %end; %else %if &switch=VIYARESTAPI %then %do; %mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/) %end; %mend mf_getplatform; %macro mfv_existfolder(path )/*/STORE SOURCE*/; %mf_abort( iftrue=(&syscc ne 0), msg=Cannot enter mfv_existfolder.sas with syscc=&syscc ) %local fref rc var; %let fref=%mf_getuniquefileref(); %if %sysfunc(filename(fref,,filesrvc,folderPath="&path"))=0 %then %do; 1 %let var=_FILESRVC_&fref._URI; %let rc=%sysfunc(filename(fref)); %symdel &var; %end; %else %do; 0 %let syscc=0; %end; %mf_abort( iftrue=(&syscc ne 0), msg=Cannot leave mfv_existfolder.sas with syscc=&syscc ) %mend mfv_existfolder; %macro mv_createfolder(path= ,access_token_var=ACCESS_TOKEN ,grant_type=sas_services ,mdebug=0 ,outds=_null_ ); %local dbg; %if &mdebug=1 %then %do; %put &sysmacroname entry vars:; %put _local_; %end; %else %let dbg=*; %mp_abort( iftrue=(&syscc ne 0), msg=Cannot enter &sysmacroname with syscc=&syscc ) %if %mfv_existfolder(&path)=1 %then %do; %&dbg.put &sysmacroname: &path already exists; data &outds; self_uri="%mfv_getpathuri(&path)"; output; stop; run; %return; %end; %mp_abort(iftrue=(&syscc ne 0),msg=syscc=&syscc when folder checking) %local oauth_bearer; %if &grant_type=detect %then %do; %if %symexist(&access_token_var) %then %let grant_type=authorization_code; %else %let grant_type=sas_services; %end; %if &grant_type=sas_services %then %do; %let oauth_bearer=oauth_bearer=sas_services; %let &access_token_var=; %end; %mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password and &grant_type ne sas_services ) ,mac=&sysmacroname ,msg=%str(Invalid value for grant_type: &grant_type) ) %mp_abort(iftrue=(%mf_isblank(&path)=1) ,mac=&sysmacroname ,msg=%str(path value must be provided) ) %mp_abort(iftrue=(%length(&path)=1) ,mac=&sysmacroname ,msg=%str(path value must be provided) ) options noquotelenmax; %local subfolder_cnt; /* determine the number of subfolders */ %let subfolder_cnt=%sysfunc(countw(&path,/)); %local base_uri; /* location of rest apis */ %let base_uri=%mf_getplatform(VIYARESTAPI); %local href; /* resource address (none for root) */ %let href="&base_uri/folders/folders?parentFolderUri=/folders/folders/none"; %local x newpath subfolder; %do x=1 %to &subfolder_cnt; %let subfolder=%scan(&path,&x,%str(/)); %let newpath=&newpath/&subfolder; %local fname1; %let fname1=%mf_getuniquefileref(); %put &sysmacroname checking to see if &newpath exists; proc http method='GET' out=&fname1 &oauth_bearer url="&base_uri/folders/folders/@item?path=&newpath"; %if &grant_type=authorization_code %then %do; headers "Authorization"="Bearer &&&access_token_var"; %end; run; %if &SYS_PROCHTTP_STATUS_CODE=401 %then %do; /* relates to: https://github.com/sasjs/core/issues/400 */ %put 401 thrown in &sysmacroname; %put sleeping: %sysfunc(sleep(12,1)) secs - will try again; proc http method='GET' out=&fname1 &oauth_bearer url="&base_uri/folders/folders/@item?path=&newpath"; %if &grant_type=authorization_code %then %do; headers "Authorization"="Bearer &&&access_token_var"; %end; run; %end; %local libref1; %let libref1=%mf_getuniquelibref(); libname &libref1 JSON fileref=&fname1; %mp_abort( iftrue=( &SYS_PROCHTTP_STATUS_CODE ne 200 and &SYS_PROCHTTP_STATUS_CODE ne 404 ) ,mac=mv_createfolder124 ,msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE) ) %if &mdebug=1 %then %do; %put &sysmacroname following check to see if &newpath exists:; %put _local_; data _null_; infile &fname1; input; putlog _infile_; run; %end; %if &SYS_PROCHTTP_STATUS_CODE=200 %then %do; %*put &sysmacroname &newpath exists so grab the follow on link ; data _null_; set &libref1..links; if rel='createChild' then call symputx('href',quote(cats("&base_uri",href)),'l'); run; %end; %else %if &SYS_PROCHTTP_STATUS_CODE=404 %then %do; %put &sysmacroname &newpath not found - creating it now; %local fname2; %let fname2=%mf_getuniquefileref(); data _null_; length json $1000; json=cats("'" ,'{"name":' ,quote(trim(symget('subfolder'))) ,',"description":' ,quote("&subfolder, created by &sysmacroname") ,',"type":"folder"}' ,"'" ); call symputx('json',json,'l'); run; proc http method='POST' in=&json out=&fname2 &oauth_bearer url=%unquote(%superq(href)); headers %if &grant_type=authorization_code %then %do; "Authorization"="Bearer &&&access_token_var" %end; 'Content-Type'='application/vnd.sas.content.folder+json' 'Accept'='application/vnd.sas.content.folder+json'; run; %if &SYS_PROCHTTP_STATUS_CODE ne 201 %then %do; %put &=SYS_PROCHTTP_STATUS_CODE &=SYS_PROCHTTP_STATUS_PHRASE; %end; %mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 201) ,mac=&sysmacroname ,msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE) ) %local libref2; %let libref2=%mf_getuniquelibref(); libname &libref2 JSON fileref=&fname2; %put &sysmacroname &newpath now created. Grabbing the follow on link ; data &outds; set &libref2..links; if rel='createChild' then do; call symputx('href',quote(cats("&base_uri",href)),'l'); &dbg put (_all_)(=); end; if method='GET' and rel='self' then do; self_uri=uri; output; end; keep self_uri ; run; libname &libref2 clear; filename &fname2 clear; %end; filename &fname1 clear; libname &libref1 clear; %end; %mp_abort( iftrue=(&syscc ne 0), msg=Cannot leave &sysmacroname with syscc=&syscc ) %mend mv_createfolder; * BuildInit start; /** @file buildinitviya.sas @brief initialisation for viya build program

SAS Macros

@li mfv_getfolderpath.sas @li mfv_getpathuri.sas @li mv_createfolder.sas **/ options nonotes nomprint; /* update apploc to default to user home area if not set */ %let apploc=%sysfunc(ifc("&apploc"="/Public/app/dcplaceholder" ,/Users/&sysuserid/My Folder/Data Controller ,&apploc)); /* ensure the correct casing of appLoc */ %mv_createfolder(path=&apploc) %let apploc=%mfv_getfolderpath(%mfv_getpathuri(&apploc)); * BuildInit end; %let path=services; %let filename=DC.html; filename filecode temp lrecl=32767; data _null_; file filecode; put 'PCFET0NUWVBFIGh0bWw+PGh0bWwgbGFuZz0iZW4iPjxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgPHRpdGxlPkRhdGEgQ29udHJvbGxlcjwvdGl0bGU+CiAgICA8IS0tIDxiYXNlIGhyZWY9Ii8iPiAtLT4KCiAgICA8IS0tIG1ldGEgdGFncyAtLT4KICAgIDxtZXRhIG5h'@; put 'bWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJDYXB0dXJlLCBSZXZpZXcsIGFuZCBBcHByb3ZlIj4KICAgIDxtZXRhIGl0ZW1wcm9wPSJuYW1lIiBjb250ZW50PSJEYXRhIENvbnRyb2xsZXIgZm9yIFNBU8KuIj4KICAgIDxtZXRhIGl0ZW1wcm9wPSJkZXNjcmlwdGlvbiIgY29udGVudD0iQ2Fw'@; put 'dHVyZSwgUmV2aWV3LCBhbmQgQXBwcm92ZSI+CiAgICA8bWV0YSBpdGVtcHJvcD0iaW1hZ2UiIGNvbnRlbnQ9Imh0dHBzOi8vZG9jcy5kYXRhY29udHJvbGxlci5pby9pbWcvZGNfYmdfQXNzZXQtNUAyeC5wbmciPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnVybCIgY29udGVudD0iaHR0cDov'@; put 'L2RlbW8uZGF0YWNvbnRyb2xsZXIuaW8iPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnR5cGUiIGNvbnRlbnQ9IndlYnNpdGUiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnRpdGxlIiBjb250ZW50PSJEYXRhIENvbnRyb2xsZXIgZm9yIFNBU8KuIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzpk'@; put 'ZXNjcmlwdGlvbiIgY29udGVudD0iQ2FwdHVyZSwgUmV2aWV3LCBhbmQgQXBwcm92ZSI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2UiIGNvbnRlbnQ9Imh0dHBzOi8vZG9jcy5kYXRhY29udHJvbGxlci5pby9pbWcvZGNfYmdfQXNzZXQtNUAyeC5wbmciPgoKICAgIDxtZXRhIG5hbWU9'@; put 'InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPWVkZ2UiPgogICAgPGxpbmsgcmVsPSJpY29uIiB0eXBlPSJpbWFnZS94LWljb24iIGhyZWY9Ii9T'@; put 'QVNKb2JFeGVjdXRpb24/X0ZJTEU9L1B1YmxpYy9hcHAvZGNwbGFjZWhvbGRlci9zZXJ2aWNlcy93ZWIvaW1hZ2VzL2Zhdmljb24uaWNvIj4KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9TQVNKb2JFeGVjdXRpb24/X0ZJTEU9L1B1YmxpYy9hcHAvZGNwbGFjZWhvbGRlci9zZXJ2'@; put 'aWNlcy93ZWIvc3R5bGVzLmJmMWE2ZjQ2NTc1YTQ1NGEuY3NzIj48L2hlYWQ+CgogIDwhLS0KICAgICMjIFNBU0pTIEFkYXB0ZXIgY29uZmlnIGRldGFpbHMgIyMKCiAgICAqIGFwcExvYzogVGhlIGxvY2F0aW9uIGluIG1ldGFkYXRhIG9yIFNBUyBkcml2ZSB3aGVyZSBEQyB3aWxsIGJlIGRl'@; put 'cGxveWVkCiAgICAqIHNlcnZlclR5cGU6IGVpdGhlciBTQVM5LCBTQVNWSVlBIG9yIFNBU0pTCiAgICAqIGxvZ2luTWVjaGFuaXNtOiBVc2UgJ0RlZmF1bHQnIGZvciByZWd1bGFyICh1c2VyL3Bhc3MpIGxvZ2lucywgb3IgJ1JlZGlyZWN0ZWQnIGZvciAyRkEvU1NPCiAgICAqIGRlYnVnOiBX'@; put 'aGV0aGVyIHRvIGVuYWJsZSBkZWJ1ZyBvbiBzdGFydHVwCgogICAgIyMgVml5YSBvbmx5IHNldHRpbmdzICMjCiAgICAqIGFkbWluR3JvdXA6IFRoaXMgZ3JvdXAgd2lsbCBoYXZlIHVucmVzdHJpY3RlZCBhY2Nlc3MgKFZpeWEgT25seSkKICAgICogZGNQYXRoOiBUaGUgcGh5c2ljYWwgbG9j'@; put 'YXRpb24gaW4gd2hpY2ggdG8gZGVwbG95IHRoZSBzdGFnaW5nIGFyZWEgKFZpeWEgb25seSkKICAgICogdXNlQ29tcHV0ZUFwaTogQ29ubmVjdGlvbiBtZXRob2QgKFZpeWEgb25seSkKICAgICogY29udGV4dE5hbWU6IENvbXB1dGUgQ29udGV4dCAoVml5YSBvbmx5KQoKICAtLT4KCiAgPGJv'@; put 'ZHkgY2RzLXRoZW1lPSJsaWdodCIgY2xhc3M9Im0tMCI+PHNhc2pzIHNlcnZlcnVybD0iIiBhcHBsb2M9Ii9QdWJsaWMvYXBwL2RjcGxhY2Vob2xkZXIiIHNlcnZlcnR5cGU9IlNBU1ZJWUEiIGxvZ2lubWVjaGFuaXNtPSJSZWRpcmVjdGVkIiBkZWJ1Zz0iZmFsc2UiIHVzZWNvbXB1dGVhcGk9'@; put 'InRydWUiIGNvbnRleHRuYW1lPSJTQVMgSm9iIEV4ZWN1dGlvbiBjb21wdXRlIGNvbnRleHQiIGFkbWluZ3JvdXA9IlNBU0FkbWluaXN0cmF0b3JzIiBkY3BhdGg9Ii90bXAvZGMiIGhvdGxpY2VuY2VrZXk9Im5vbi1jb21tZXJjaWFsLWFuZC1ldmFsdWF0aW9uIj4KICA8L3Nhc2pzPgoKICAK'@; put 'ICAgIDxteS1hcHA+PC9teS1hcHA+CiAgPHNjcmlwdCBzcmM9Ii9TQVNKb2JFeGVjdXRpb24/X0ZJTEU9L1B1YmxpYy9hcHAvZGNwbGFjZWhvbGRlci9zZXJ2aWNlcy93ZWIvcnVudGltZS40MDJmYzNjZmJjN2UxYmQ0LmpzIiB0eXBlPSJtb2R1bGUiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIv'@; put 'U0FTSm9iRXhlY3V0aW9uP19GSUxFPS9QdWJsaWMvYXBwL2RjcGxhY2Vob2xkZXIvc2VydmljZXMvd2ViL3BvbHlmaWxscy4wNmU3ZjA1ZGQ3ZDkxMWFlLmpzIiB0eXBlPSJtb2R1bGUiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvU0FTSm9iRXhlY3V0aW9uP19GSUxFPS9QdWJsaWMvYXBwL2Rj'@; put 'cGxhY2Vob2xkZXIvc2VydmljZXMvd2ViL3NjcmlwdHMuZjQxOGQ3ZTcxZGJmZDMwOS5qcyIgZGVmZXI9IiI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii9TQVNKb2JFeGVjdXRpb24/X0ZJTEU9L1B1YmxpYy9hcHAvZGNwbGFjZWhvbGRlci9zZXJ2aWNlcy93ZWIvbWFpbi42YWYwY2FiNzQ5OWYz'@; put 'Mzg4LmpzIiB0eXBlPSJtb2R1bGUiPjwvc2NyaXB0PgoKPC9ib2R5PjwvaHRtbD4='; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64,swap=compiled_apploc apploc) filename filecode clear; %let path=services/admin; %let service=dirlist; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_wordsInStr1ButNotStr2('; put 'Str1= /* string containing words to extract */'; put ',Str2= /* used to compare with the extract string */'; put ')/*/STORE SOURCE*/;'; put '%local count_base count_extr i i2 extr_word base_word match outvar;'; put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; put '%put base string (str1)= &str1;'; put '%put compare string (str2) = &str2;'; put '%return;'; put '%end;'; put '%let count_base=%sysfunc(countw(&Str2));'; put '%let count_extr=%sysfunc(countw(&Str1));'; put '%do i=1 %to &count_extr;'; put '%let extr_word=%scan(&Str1,&i,%str( ));'; put '%let match=0;'; put '%do i2=1 %to &count_base;'; put '%let base_word=%scan(&Str2,&i2,%str( ));'; put '%if &extr_word=&base_word %then %let match=1;'; put '%end;'; put '%if &match=0 %then %let outvar=&outvar &extr_word;'; put '%end;'; put '&outvar'; put '%mend mf_wordsInStr1ButNotStr2;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro mp_dirlist(path=%sysfunc(pathname(work))'; put ', fref=0'; put ', outds=work.mp_dirlist'; put ', getattrs=NO'; put ', showparent=NO'; put ', maxdepth=0'; put ', level=0 /* The level of recursion to perform. For internal use only. */'; put ')/*/STORE SOURCE*/;'; put '%let getattrs=%upcase(&getattrs)XX;'; put '/* temp table */'; put '%local out_ds;'; put 'data;run;'; put '%let out_ds=%str(&syslast);'; put '/* drop main (top) table if it exists */'; put '%if &level=0 %then %do;'; put '%mp_dropmembers(%scan(&outds,-1,.), libref=WORK)'; put '%end;'; put 'data &out_ds(compress=no'; put 'keep=file_or_folder filepath filename ext msg directory level'; put ');'; put 'length directory filepath $2000 fref fref2 $8 file_or_folder $6 filename $255'; put 'ext $20 msg $200 foption $16;'; put 'if _n_=1 then call missing(of _all_);'; put 'retain level &level;'; put '%if &fref=0 %then %do;'; put 'rc = filename(fref, "&path");'; put '%end;'; put '%else %do;'; put 'fref="&fref";'; put 'rc=0;'; put '%end;'; put 'if rc = 0 then do;'; put 'did = dopen(fref);'; put 'if did=0 then do;'; put 'putlog "NOTE: This directory is empty, or does not exist - &path";'; put 'msg=sysmsg();'; put 'put (_all_)(=);'; put 'stop;'; put 'end;'; put '/* attribute is OS-dependent - could be "Directory" or "Directory Name" */'; put 'numopts=doptnum(did);'; put 'do i=1 to numopts;'; put 'foption=doptname(did,i);'; put 'if foption=:''Directory'' then i=numopts;'; put 'end;'; put 'directory=dinfo(did,foption);'; put 'rc = filename(fref);'; put 'end;'; put 'else do;'; put 'msg=sysmsg();'; put 'put _all_;'; put 'stop;'; put 'end;'; put 'dnum = dnum(did);'; put 'do i = 1 to dnum;'; put 'filename = dread(did, i);'; put 'filepath=cats(directory,''/'',filename);'; put 'rc = filename(fref2,filepath);'; put 'midd=dopen(fref2);'; put 'dmsg=sysmsg();'; put 'if did > 0 then file_or_folder=''folder'';'; put 'rc=dclose(midd);'; put 'midf=fopen(fref2);'; put 'fmsg=sysmsg();'; put 'if midf > 0 then file_or_folder=''file'';'; put 'rc=fclose(midf);'; put 'if index(fmsg,''File is in use'') or index(dmsg,''is not a directory'')'; put 'then file_or_folder=''file'';'; put 'else if index(fmsg,''Insufficient authorization'') then file_or_folder=''file'';'; put 'else if file_or_folder='''' then file_or_folder=''locked'';'; put 'if file_or_folder=''file'' then do;'; put 'ext = prxchange(''s/.*\.{1,1}(.*)/$1/'', 1, filename);'; put 'if filename = ext then ext = '' '';'; put 'end;'; put 'else do;'; put 'ext='''';'; put 'file_or_folder=''folder'';'; put 'end;'; put 'output;'; put 'end;'; put 'rc = dclose(did);'; put '%if &showparent=YES and &level=0 %then %do;'; put 'filepath=directory;'; put 'file_or_folder=''folder'';'; put 'ext='''';'; put 'filename=scan(directory,-1,''/\'');'; put 'msg='''';'; put 'level=&level;'; put 'output;'; put '%end;'; put 'stop;'; put 'run;'; put '%if %substr(&getattrs,1,1)=Y %then %do;'; put 'data &out_ds;'; put 'set &out_ds;'; put 'length infoname infoval $60 fref $8;'; put 'if _n_=1 then call missing(fref);'; put 'rc=filename(fref,filepath);'; put 'drop rc infoname fid i close fref;'; put 'if file_or_folder=''file'' then do;'; put 'fid=fopen(fref);'; put 'if fid le 0 then do;'; put 'msg=sysmsg();'; put 'putlog "Could not open file:" filepath fid= ;'; put 'sasname=''_MCNOTVALID_'';'; put 'output;'; put 'end;'; put 'else do i=1 to foptnum(fid);'; put 'infoname=foptname(fid,i);'; put 'infoval=finfo(fid,infoname);'; put 'sasname=compress(infoname, ''_'', ''adik'');'; put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; put 'if upcase(sasname) ne ''FILENAME'' then output;'; put 'end;'; put 'close=fclose(fid);'; put 'end;'; put 'else do;'; put 'fid=dopen(fref);'; put 'if fid le 0 then do;'; put 'msg=sysmsg();'; put 'putlog "Could not open folder:" filepath fid= ;'; put 'sasname=''_MCNOTVALID_'';'; put 'output;'; put 'end;'; put 'else do i=1 to doptnum(fid);'; put 'infoname=doptname(fid,i);'; put 'infoval=dinfo(fid,infoname);'; put 'sasname=compress(infoname, ''_'', ''adik'');'; put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; put 'if upcase(sasname) ne ''FILENAME'' then output;'; put 'end;'; put 'close=dclose(fid);'; put 'end;'; put 'run;'; put 'proc sort;'; put 'by filepath sasname;'; put 'proc transpose data=&out_ds out=&out_ds(drop=_:);'; put 'id sasname;'; put 'var infoval;'; put 'by filepath file_or_folder filename ext ;'; put 'run;'; put '%end;'; put 'data &out_ds;'; put 'set &out_ds(where=(filepath ne ''''));'; put 'run;'; put '/**'; put '* The above transpose can mean that some updates create additional columns.'; put '* This necessitates the occasional use of datastep over proc append.'; put '*/'; put '%if %mf_existds(&outds) %then %do;'; put '%local basevars appvars newvars;'; put '%let basevars=%mf_getvarlist(&outds);'; put '%let appvars=%mf_getvarlist(&out_ds);'; put '%let newvars=%length(%mf_wordsinstr1butnotstr2(Str1=&appvars,Str2=&basevars));'; put '%if &newvars>0 %then %do;'; put 'data &outds;'; put 'set &outds &out_ds;'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc append base=&outds data=&out_ds force nowarn;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do;'; put 'proc append base=&outds data=&out_ds;'; put 'run;'; put '%end;'; put '/* recursive call */'; put '%if &maxdepth>&level or &maxdepth=MAX %then %do;'; put 'data _null_;'; put 'set &out_ds;'; put 'where file_or_folder=''folder'';'; put '%if &showparent=YES and &level=0 %then %do;'; put 'if filepath ne directory;'; put '%end;'; put 'length code $10000;'; put 'code=cats(''%nrstr(%mp_dirlist(path='',filepath,",outds=&outds"'; put ',",getattrs=&getattrs,level=%eval(&level+1),maxdepth=&maxdepth))");'; put 'put code=;'; put 'call execute(code);'; put 'run;'; put '%end;'; put '/* tidy up */'; put 'proc sql;'; put 'drop table &out_ds;'; put '%mend mp_dirlist;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Fetches directories to facilitate configuration'; put '@details The service can also be invoked using the following URL param:'; put '@li &parent= (parent path)'; put '

SAS Macros

'; put '@li mp_dirlist.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%global parent;'; put '/* if no flavour is specified, default to root */'; put '%let parent=%sysfunc(coalescec(&parent,/));'; put '%mp_dirlist(path=&parent,outds=dirlist, maxdepth=2)'; put '%webout(OPEN)'; put '%webout(OBJ,dirlist)'; put '%webout(CLOSE)'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=exportconfig; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '%macro mp_ds2cards(base_ds, tgt_ds='; put ',cards_file="%sysfunc(pathname(work))/cardgen.sas"'; put ',maxobs=max'; put ',random_sample=NO'; put ',showlog=YES'; put ',outencoding='; put ',append=NO'; put ')/*/STORE SOURCE*/;'; put '%local i setds nvars;'; put '%if not %sysfunc(exist(&base_ds)) %then %do;'; put '%put %str(WARN)ING: &base_ds does not exist;'; put '%return;'; put '%end;'; put '%if %index(&base_ds,.)=0 %then %let base_ds=WORK.&base_ds;'; put '%if (&tgt_ds = ) %then %let tgt_ds=&base_ds;'; put '%if %index(&tgt_ds,.)=0 %then %let tgt_ds=WORK.%scan(&base_ds,2,.);'; put '%if ("&outencoding" ne "") %then %let outencoding=encoding="&outencoding";'; put '%if ("&append" = "" or "&append" = "NO") %then %let append=;'; put '%else %let append=mod;'; put '/* get varcount */'; put '%let nvars=0;'; put 'proc sql noprint;'; put 'select count(*) into: nvars from dictionary.columns'; put 'where upcase(libname)="%scan(%upcase(&base_ds),1)"'; put 'and upcase(memname)="%scan(%upcase(&base_ds),2)";'; put '%if &nvars=0 %then %do;'; put '%put %str(WARN)ING: Dataset &base_ds has no variables, will not be converted.;'; put '%return;'; put '%end;'; put '/* get indexes */'; put 'proc sort'; put 'data=sashelp.vindex('; put 'where=(upcase(libname)="%scan(%upcase(&base_ds),1)"'; put 'and upcase(memname)="%scan(%upcase(&base_ds),2)")'; put ')'; put 'out=_data_;'; put 'by indxname indxpos;'; put 'run;'; put '%local indexes;'; put 'data _null_;'; put 'set &syslast end=last;'; put 'if _n_=1 then call symputx(''indexes'',''(index=('',''l'');'; put 'by indxname indxpos;'; put 'length vars $32767 nom uni $8;'; put 'retain vars;'; put 'if first.indxname then do;'; put 'idxcnt+1;'; put 'nom='''';'; put 'uni='''';'; put 'vars=name;'; put 'end;'; put 'else vars=catx('' '',vars,name);'; put 'if last.indxname then do;'; put 'if nomiss=''yes'' then nom=''/nomiss'';'; put 'if unique=''yes'' then uni=''/unique'';'; put 'call symputx(''indexes'''; put ',catx('' '',symget(''indexes''),indxname,''=('',vars,'')'',nom,uni)'; put ',''l'');'; put 'end;'; put 'if last then call symputx(''indexes'',cats(symget(''indexes''),''))''),''l'');'; put 'run;'; put 'data;run;'; put '%let setds=&syslast;'; put 'proc sql'; put '%if %datatyp(&maxobs)=NUMERIC %then %do;'; put 'outobs=&maxobs;'; put '%end;'; put ';'; put 'create table &setds as select * from &base_ds'; put '%if &random_sample=YES %then %do;'; put 'order by ranuni(42)'; put '%end;'; put ';'; put 'reset outobs=max;'; put 'create table datalines1 as'; put 'select name,type,length,varnum,format,label from dictionary.columns'; put 'where upcase(libname)="%upcase(%scan(&base_ds,1))"'; put 'and upcase(memname)="%upcase(%scan(&base_ds,2))";'; put '/**'; put 'Due to long decimals cannot use best. format'; put 'So - use bestd. format and then use character functions to strip trailing'; put 'zeros, if NOT an integer or missing!! Cannot use int() as it upsets'; put 'note2err when there are missings.'; put 'resolved code = ifc( mod(coalesce(VARIABLE,0),1)=0'; put ',put(VARIABLE,best32.)'; put ',substrn(put(VARIABLE,bestd32.),1'; put ',findc(put(VARIABLE,bestd32.),''0'',''TBK'')));'; put '**/'; put 'data datalines_2;'; put 'format dataline $32000.;'; put 'set datalines1 (where=(upcase(name) not in'; put '(''PROCESSED_DTTM'',''VALID_FROM_DTTM'',''VALID_TO_DTTM'')));'; put 'if type=''num'' then dataline='; put 'cats(''ifc(mod(coalesce('',name,'',0),1)=0'; put ',put('',name,'',best32.-l)'; put ',substrn(put('',name,'',bestd32.-l),1'; put ',findc(put('',name,'',bestd32.-l),"0","TBK")))'');'; put '/**'; put '* binary data must be converted, to store in text format. It is identified'; put '* by the presence of the $HEX keyword in the format.'; put '*/'; put 'else if upcase(format)=:''$HEX'' then'; put 'dataline=cats(''put(trim('',name,''),'',format,'')'');'; put '/**'; put '* There is no easy way to store line breaks in a cards file.'; put '* To discuss this, use: https://github.com/sasjs/core/issues/80'; put '* Removing all nonprintables with kw (keep writeable)'; put '*/'; put 'else dataline=cats(''compress('',name,'', ,"kw")'');'; put 'run;'; put 'proc sql noprint;'; put 'select dataline into: datalines separated by '','' from datalines_2;'; put '%local'; put 'process_dttm_flg'; put 'valid_from_dttm_flg'; put 'valid_to_dttm_flg'; put ';'; put '%let process_dttm_flg = N;'; put '%let valid_from_dttm_flg = N;'; put '%let valid_to_dttm_flg = N;'; put 'data _null_;'; put 'set datalines1 ;'; put '/* build attrib statement */'; put 'if type=''char'' then type2=''$'';'; put 'if strip(format) ne '''' then format2=cats(''format='',format);'; put 'if strip(label) ne '''' then label2=cats(''label='',quote(trim(label)));'; put 'str1=catx('' '',(put(name,$33.)||''length='')'; put ',put(cats(type2,length),$7.)||format2,label2);'; put '/* Build input statement */'; put 'if upcase(format)=:''$HEX'' then type3='':''!!format;'; put 'else if type=''char'' then type3='':$char.'';'; put 'str2=put(name,$33.)||type3;'; put 'if(upcase(name) = "PROCESSED_DTTM") then'; put 'call symputx("process_dttm_flg", "Y", "L");'; put 'if(upcase(name) = "VALID_FROM_DTTM") then'; put 'call symputx("valid_from_dttm_flg", "Y", "L");'; put 'if(upcase(name) = "VALID_TO_DTTM") then'; put 'call symputx("valid_to_dttm_flg", "Y", "L");'; put 'call symputx(cats("attrib_stmt_", put(_N_, 8.)), str1, "L");'; put 'call symputx(cats("input_stmt_", put(_N_, 8.))'; put ', ifc(upcase(name) not in'; put '(''PROCESSED_DTTM'',''VALID_FROM_DTTM'',''VALID_TO_DTTM''), str2, ""), "L");'; put 'run;'; put 'data _null_;'; put 'file &cards_file. &outencoding lrecl=32767 termstr=nl &append;'; put 'length __attrib $32767;'; put 'if _n_=1 then do;'; put 'put ''/**'';'; put 'put '' @file'';'; put 'put " @brief Datalines for %upcase(%scan(&base_ds,2)) dataset";'; put 'put " @details Generated by %nrstr(%%)mp_ds2cards()";'; put 'put " Source: https://github.com/sasjs/core";'; put 'put '' @cond '';'; put 'put ''**/'';'; put 'put "data &tgt_ds &indexes;";'; put 'put "attrib ";'; put '%do i = 1 %to &nvars;'; put '__attrib=symget("attrib_stmt_&i");'; put 'put __attrib;'; put '%end;'; put 'put ";";'; put '%if &process_dttm_flg. eq Y %then %do;'; put 'put ''retain PROCESSED_DTTM %sysfunc(datetime());'';'; put '%end;'; put '%if &valid_from_dttm_flg. eq Y %then %do;'; put 'put ''retain VALID_FROM_DTTM &low_date;'';'; put '%end;'; put '%if &valid_to_dttm_flg. eq Y %then %do;'; put 'put ''retain VALID_TO_DTTM &high_date;'';'; put '%end;'; put 'if __nobs=0 then do;'; put 'put ''call missing(of _all_);/* avoid uninitialised notes */'';'; put 'put ''stop;'';'; put 'put ''run;'';'; put 'end;'; put 'else do;'; put 'put "infile cards dsd;";'; put 'put "input ";'; put '%do i = 1 %to &nvars.;'; put '%if(%length(&&input_stmt_&i..)) %then'; put 'put " &&input_stmt_&i..";'; put ';'; put '%end;'; put 'put ";";'; put 'put ''missing a b c d e f g h i j k l m n o p q r s t u v w x y z _;'';'; put 'put "datalines4;";'; put 'end;'; put 'end;'; put 'set &setds end=__lastobs nobs=__nobs;'; put '/* remove all formats for write purposes - some have long underlying decimals */'; put 'format _numeric_ best30.29;'; put 'length __dataline $32767;'; put '__dataline=catq(''cqtmb'',&datalines);'; put 'put __dataline;'; put 'if __lastobs then do;'; put 'put '';;;;'';'; put 'put ''run;'';'; put 'put ''/** @endcond **/'';'; put 'stop;'; put 'end;'; put 'run;'; put 'proc sql;'; put 'drop table &setds;'; put 'quit;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &cards_file lrecl=32767;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '%end;'; put '%put NOTE: CARDS FILE SAVED IN:;'; put '%put NOTE-;%put NOTE-;'; put '%put NOTE- %sysfunc(dequote(&cards_file.));'; put '%put NOTE-;%put NOTE-;'; put '%mend mp_ds2cards;'; put '/** @endcond **/'; put '%macro mp_binarycopy('; put 'inloc= /* full path and filename of the object to be copied */'; put ',outloc= /* full path and filename of object to be created */'; put ',inref=____in /* override default to use own filerefs */'; put ',outref=____out /* override default to use own filerefs */'; put ',mode=CREATE'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%local mod;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if &mode=APPEND %then %let mod=mod;'; put '/* these IN and OUT filerefs can point to anything */'; put '%if &inref = ____in %then %do;'; put 'filename &inref &inloc lrecl=1048576 ;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref &outloc lrecl=1048576 &mod;'; put '%end;'; put '/* copy the file byte-for-byte */'; put 'data _null_;'; put 'infile &inref lrecl=1 recfm=n;'; put 'file &outref &mod recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%if &inref = ____in %then %do;'; put 'filename &inref clear;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref clear;'; put '%end;'; put '%mend mp_binarycopy;'; put '%macro mfs_httpheader(header_name'; put ',header_value'; put ')/*/STORE SOURCE*/;'; put '%global sasjs_stpsrv_header_loc;'; put '%local fref fid i;'; put '%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;'; put '%put &=fref &=sasjs_stpsrv_header_loc;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%mend mfs_httpheader;'; put '%macro mp_streamfile('; put 'contenttype=TEXT'; put ',inloc='; put ',inref=0'; put ',iftrue=%str(1=1)'; put ',outname='; put ',outref=_webout'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let contentype=%upcase(&contenttype);'; put '%let outref=%upcase(&outref);'; put '%local platform; %let platform=%mf_getplatform();'; put '/**'; put '* check engine type to avoid the below err message:'; put '* > Function is only valid for filerefs using the CACHE access method.'; put '*/'; put '%local streamweb;'; put '%let streamweb=0;'; put 'data _null_;'; put 'set sashelp.vextfl(where=(upcase(fileref)="&outref"));'; put 'if xengine=''STREAM'' then call symputx(''streamweb'',1,''l'');'; put 'run;'; put '%if &contentype=CSV %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/csv'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; put 'contenttype=''application/csv'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/csv)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=EXCEL %then %do;'; put '/* suitable for XLS format */'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/vnd.ms-excel'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; put 'contenttype=''application/vnd.ms-excel'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/vnd.ms-excel)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=GIF or &contentype=JPEG or &contentype=PNG %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"image/%lowcase(&contenttype)");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'contenttype="image/%lowcase(&contenttype)";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,image/%lowcase(&contenttype))'; put '%end;'; put '%end;'; put '%else %if &contentype=HTML or &contenttype=MARKDOWN %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"text/%lowcase(&contenttype)");'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json"'; put 'contenttype="text/%lowcase(&contenttype)"'; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,text/%lowcase(&contenttype))'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=TEXT %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/text'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; put 'contenttype=''application/text'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/text)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=WOFF or &contentype=WOFF2 or &contentype=TTF %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"font/%lowcase(&contenttype)");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'contenttype="font/%lowcase(&contenttype)";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,font/%lowcase(&contenttype))'; put '%end;'; put '%end;'; put '%else %if &contentype=XLSX %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'','; put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; put 'contenttype='; put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type'; put ',application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; put ')'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=ZIP %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/zip'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.zip'''; put 'contenttype=''application/zip'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/zip)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %do;'; put '%put %str(ERR)OR: Content Type &contenttype NOT SUPPORTED by &sysmacroname!;'; put '%end;'; put '%if &inref ne 0 %then %do;'; put '%mp_binarycopy(inref=&inref,outref=&outref)'; put '%end;'; put '%else %do;'; put '%mp_binarycopy(inloc="&inloc",outref=&outref)'; put '%end;'; put '%mend mp_streamfile;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Downloads zip file of DC customer configurations'; put '@details Zip contains several excel files, containing the customer specific'; put '(non-DC) configurations. Useful when migrating to a new instance of'; put 'Data Controller.'; put '

SAS Macros

'; put '@li mf_getuser.sas'; put '@li mf_nobs.sas'; put '@li mp_ds2cards.sas'; put '@li mp_abort.sas'; put '@li mp_binarycopy.sas'; put '@li mp_streamfile.sas'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%let work=%sysfunc(pathname(work));'; put '/* excel does not work in all envs */'; put '%let mime=application/vnd.ms-excel;'; put '%let dbms=EXCEL;'; put '%let mime=application/csv;'; put '%let dbms=CSV;'; put '%let ext=csv;'; put '%macro conditional_export(ds);'; put '%if %mf_nobs(&ds)>0 %then %do;'; put 'PROC EXPORT DATA= &ds OUTFILE= "&work/&ds..&ext"'; put 'DBMS=&dbms REPLACE;'; put 'RUN;'; put 'ods package(ProdOutput) add file="&work/&ds..&ext" mimetype="&mime";'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%nrstr(syscc=&syscc after &ds prep)'; put ')'; put '%mend conditional_export;'; put 'ods package(ProdOutput) open nopf;'; put 'data MPE_ALERTS;'; put 'set &mpelib..MPE_ALERTS;'; put 'where &dc_dttmtfmt. le tx_to;'; put 'drop tx_: ;'; put 'run;'; put '%conditional_export(MPE_ALERTS)'; put 'data MPE_COLUMN_LEVEL_SECURITY;'; put 'set &mpelib..MPE_COLUMN_LEVEL_SECURITY;'; put 'where &dc_dttmtfmt. le tx_to;'; put 'where also CLS_LIBREF ne "&mpelib";'; put 'drop tx_: ;'; put 'run;'; put '%conditional_export(MPE_COLUMN_LEVEL_SECURITY)'; put 'data MPE_CONFIG;'; put 'set &mpelib..MPE_CONFIG;'; put 'where &dc_dttmtfmt. le tx_to;'; put 'drop tx_: ;'; put 'run;'; put '%conditional_export(MPE_CONFIG)'; put 'data MPE_DATADICTIONARY;'; put 'set &mpelib..MPE_DATADICTIONARY;'; put 'where &dc_dttmtfmt. le tx_to;'; put 'drop tx_: ;'; put 'if DD_SOURCE=:"&mpelib" then do;'; put '/* nothing */'; put 'end;'; put 'else output;'; put 'run;'; put '%conditional_export(MPE_DATADICTIONARY)'; put 'data MPE_EMAILS;'; put 'set &mpelib..MPE_EMAILS;'; put 'where &dc_dttmtfmt. le tx_to;'; put 'drop tx_: ;'; put 'run;'; put '%conditional_export(MPE_EMAILS)'; put 'data MPE_EXCEL_CONFIG;'; put 'set &mpelib..MPE_EXCEL_CONFIG;'; put 'where &dc_dttmtfmt. le tx_to;'; put 'drop tx_: ;'; put 'run;'; put '%conditional_export(MPE_EXCEL_CONFIG)'; put 'data MPE_GROUPS;'; put 'set &mpelib..MPE_GROUPS;'; put 'where &dc_dttmtfmt. le tx_to;'; put 'drop tx_: ;'; put 'run;'; put '%conditional_export(MPE_GROUPS)'; put 'data MPE_ROW_LEVEL_SECURITY;'; put 'set &mpelib..MPE_ROW_LEVEL_SECURITY;'; put 'where &dc_dttmtfmt. le tx_to;'; put 'drop tx_: ;'; put 'run;'; put '%conditional_export(MPE_ROW_LEVEL_SECURITY)'; put 'data MPE_SECURITY;'; put 'set &mpelib..MPE_SECURITY;'; put 'where &dc_dttmtfmt. le TX_TO;'; put 'drop tx_: ;'; put 'run;'; put '%conditional_export(MPE_SECURITY)'; put 'data MPE_SELECTBOX;'; put 'set &mpelib..MPE_SELECTBOX;'; put 'where &dc_dttmtfmt. le ver_to_dttm;'; put 'where also select_lib ne "&mpelib";'; put 'drop ver_: selectbox_rk;'; put 'run;'; put '%conditional_export(MPE_SELECTBOX)'; put 'data MPE_TABLES;'; put 'set &mpelib..MPE_TABLES;'; put 'where &dc_dttmtfmt. le TX_TO;'; put 'where also LIBREF ne "&mpelib";'; put 'drop tx_: ;'; put 'run;'; put '%conditional_export(MPE_TABLES)'; put 'data MPE_VALIDATIONS;'; put 'set &mpelib..MPE_VALIDATIONS;'; put 'where &dc_dttmtfmt. le TX_TO;'; put 'where also BASE_LIB ne "&mpelib";'; put 'drop tx_: ;'; put 'run;'; put '%conditional_export(MPE_VALIDATIONS)'; put '/* finish up zip file */'; put 'ods package(ProdOutput) publish archive properties'; put '(archive_name="DCBACKUP.zip" archive_path="&work");'; put 'ods package(ProdOutput) close;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%nrstr(syscc=&syscc after zip prep)'; put ')'; put '/* now serve zip file to client */'; put '%mp_streamfile(contenttype=ZIP'; put ',inloc=%str(&work/DCBACKUP.zip)'; put ',outname=DCBACKUP.zip'; put ')'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=exportdb; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mc,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '%macro mf_existfileref(fref'; put ')/*/STORE SOURCE*/;'; put '%local rc;'; put '%let rc=%sysfunc(fileref(&fref));'; put '%if &rc=0 %then %do;'; put '1'; put '%end;'; put '%else %if &rc<0 %then %do;'; put '%put &sysmacroname: Fileref &fref exists but the underlying file does not;'; put '1'; put '%end;'; put '%else %do;'; put '0'; put '%end;'; put '%mend mf_existfileref;'; put '%macro mf_getvarcount(libds,typefilter=A'; put ')/*/STORE SOURCE*/;'; put '%local dsid nvars rc outcnt x;'; put '%let dsid=%sysfunc(open(&libds));'; put '%let nvars=.;'; put '%let outcnt=0;'; put '%let typefilter=%upcase(&typefilter);'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &typefilter=A %then %let outcnt=&nvars;'; put '%else %if &nvars>0 %then %do x=1 %to &nvars;'; put '/* increment based on variable type */'; put '%if %sysfunc(vartype(&dsid,&x))=&typefilter %then %do;'; put '%let outcnt=%eval(&outcnt+1);'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put unable to open &libds (rc=&dsid);'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '&outcnt'; put '%mend mf_getvarcount;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro mp_getconstraints(lib=WORK'; put ',ds='; put ',outds=mp_getconstraints'; put ',mdebug=0'; put ')/*/STORE SOURCE*/;'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '/**'; put '* Cater for environments where sashelp.vcncolu is not available'; put '*/'; put '%if %sysfunc(exist(sashelp.vcncolu,view))=0 %then %do;'; put 'proc sql;'; put 'create table &outds('; put 'libref char(8)'; put ',TABLE_NAME char(32)'; put ',constraint_type char(8) label=''Constraint Type'''; put ',constraint_name char(32) label=''Constraint Name'''; put ',column_name char(32) label=''Column'''; put ',constraint_order num'; put ');'; put '%return;'; put '%end;'; put '/**'; put '* Neither dictionary tables nor sashelp provides a constraint order column,'; put '* however they DO arrive in the correct order. So, create the col.'; put '**/'; put '%local vw;'; put '%let vw=%mf_getuniquename(prefix=mp_getconstraints_vw_);'; put 'data &vw /view=&vw;'; put 'set sashelp.vcncolu;'; put 'where table_catalog="&lib";'; put '/* use retain approach to reset the constraint order with each constraint */'; put 'length tmp $1000;'; put 'retain tmp;'; put 'drop tmp;'; put 'if tmp ne catx(''|'',table_catalog,table_name,constraint_name) then do;'; put 'constraint_order=1;'; put 'end;'; put 'else constraint_order+1;'; put 'tmp=catx(''|'',table_catalog, table_name,constraint_name);'; put 'run;'; put '/* must use SQL as proc datasets does not support length changes */'; put 'proc sql noprint;'; put 'create table &outds as'; put 'select upcase(a.TABLE_CATALOG) as libref'; put ',upcase(a.TABLE_NAME) as TABLE_NAME'; put ',a.constraint_type'; put ',a.constraint_name'; put ',b.column_name'; put ',b.constraint_order'; put 'from dictionary.TABLE_CONSTRAINTS a'; put 'left join &vw b'; put 'on upcase(a.TABLE_CATALOG)=upcase(b.TABLE_CATALOG)'; put 'and upcase(a.TABLE_NAME)=upcase(b.TABLE_NAME)'; put 'and a.constraint_name=b.constraint_name'; put '/**'; put '* We cannot apply this clause to the underlying dictionary table. See:'; put '* https://communities.sas.com/t5/SAS-Programming/Unexpected-Where-Clause-behaviour-in-dictionary-TABLE/m-p/771554#M244867'; put '* cannot use`where calculated libref="&lib"` either as it will STILL execute'; put '* all the underlying constraint queries, causing exception errors in some'; put '* cases: https://github.com/sasjs/core/issues/283'; put '*/'; put 'where a.TABLE_CATALOG="&lib"'; put '%if "&ds" ne "" %then %do;'; put 'and upcase(a.TABLE_NAME)="&ds"'; put 'and upcase(b.TABLE_NAME)="&ds"'; put '%end;'; put 'order by libref, table_name, constraint_name, constraint_order'; put ';'; put '/* tidy up */'; put '%mp_dropmembers('; put '&vw,'; put 'iftrue=(&mdebug=0)'; put ')'; put '%mend mp_getconstraints;'; put '%macro mp_getddl(libref,ds,fref=getddl,flavour=SAS,showlog=NO,schema='; put ',applydttm=NO'; put ')/*/STORE SOURCE*/;'; put '/* check fileref is assigned */'; put '%if %mf_existfileref(&fref)=0 %then %do;'; put 'filename &fref temp ;'; put '%end;'; put '%if %length(&libref)=0 %then %let libref=WORK;'; put '%let flavour=%upcase(&flavour);'; put 'proc sql noprint;'; put 'create table _data_ as'; put 'select * from dictionary.tables'; put 'where upcase(libname)="%upcase(&libref)"'; put 'and memtype=''DATA'' /* views not currently supported */'; put '%if %length(&ds)>0 %then %do;'; put 'and upcase(memname)="%upcase(&ds)"'; put '%end;'; put ';'; put '%local tabinfo; %let tabinfo=&syslast;'; put 'create table _data_ as'; put 'select * from dictionary.columns'; put 'where upcase(libname)="%upcase(&libref)"'; put '%if %length(&ds)>0 %then %do;'; put 'and upcase(memname)="%upcase(&ds)"'; put '%end;'; put ';'; put '%local colinfo; %let colinfo=&syslast;'; put '%local dsnlist;'; put 'select distinct upcase(memname) into: dsnlist'; put 'separated by '' '''; put 'from &syslast'; put ';'; put 'create table _data_ as'; put 'select * from dictionary.indexes'; put 'where upcase(libname)="%upcase(&libref)"'; put '%if %length(&ds)>0 %then %do;'; put 'and upcase(memname)="%upcase(&ds)"'; put '%end;'; put 'order by idxusage, indxname, indxpos'; put ';'; put '%local idxinfo; %let idxinfo=&syslast;'; put '/* Extract all Primary Key and Unique data constraints */'; put '%mp_getconstraints(lib=%upcase(&libref),ds=%upcase(&ds),outds=_data_)'; put '%local colconst; %let colconst=&syslast;'; put '%macro addConst();'; put '%global constraints_used;'; put 'data _null_;'; put 'length ctype $11 constraint_name_orig $256 constraints_used $5000;'; put 'set &colconst('; put 'where=(table_name="&curds" and constraint_type in (''PRIMARY'',''UNIQUE''))'; put ') end=last;'; put 'file &fref mod;'; put 'by constraint_type constraint_name;'; put 'retain constraints_used;'; put 'constraint_name_orig=constraint_name;'; put 'if upcase(strip(constraint_type)) = ''PRIMARY'' then ctype=''PRIMARY KEY'';'; put 'else ctype=strip(constraint_type);'; put '%if &flavour=TSQL %then %do;'; put 'column_name=catt(''['',column_name,'']'');'; put 'constraint_name=catt(''['',constraint_name,'']'');'; put '%end;'; put '%else %if &flavour=PGSQL %then %do;'; put 'column_name=catt(''"'',column_name,''"'');'; put 'constraint_name=catt(''"'',constraint_name,''"'');'; put '%end;'; put 'if first.constraint_name then do;'; put 'constraints_used = catx('' '', constraints_used, constraint_name_orig);'; put 'put " ,CONSTRAINT " constraint_name ctype "(" ;'; put 'put '' '' column_name;'; put 'end;'; put 'else put '' ,'' column_name;'; put 'if last.constraint_name then do;'; put 'put " )";'; put 'call symput(''constraints_used'',strip(constraints_used));'; put 'end;'; put 'run;'; put '%put &=constraints_used;'; put '%mend addConst;'; put 'data _null_;'; put 'file &fref mod;'; put 'put "/* DDL generated by &sysuserid on %sysfunc(datetime(),datetime19.) */";'; put 'run;'; put '%local x curds;'; put '%if &flavour=SAS %then %do;'; put '%do x=1 %to %sysfunc(countw(&dsnlist));'; put '%let curds=%scan(&dsnlist,&x);'; put 'data _null_;'; put 'file &fref mod;'; put 'put "/* SAS Flavour DDL for %upcase(&libref).&curds */";'; put 'put "proc sql;";'; put 'run;'; put 'data _null_;'; put 'file &fref mod;'; put 'length lab $1024 typ $20;'; put 'set &colinfo (where=(upcase(memname)="&curds")) end=last;'; put 'if _n_=1 then do;'; put 'if memtype=''DATA'' then do;'; put 'put "create table &libref..&curds(";'; put 'end;'; put 'else do;'; put '/* just a placeholder - we filter out views at the top */'; put 'put "create view &libref..&curds(";'; put 'end;'; put 'put " "@@;'; put 'end;'; put 'else put " ,"@@;'; put 'if length(format)>1 then fmt=" format="!!cats(format);'; put 'if length(label)>1 then'; put 'lab=" label="!!cats("''",tranwrd(label,"''","''''"),"''");'; put 'if notnull=''yes'' then notnul='' not null'';'; put 'if type=''char'' then typ=cats(''char('',length,'')'');'; put 'else if length ne 8 then typ=''num length=''!!cats(length);'; put 'else typ=''num'';'; put 'put name typ fmt notnul lab;'; put 'run;'; put '/* Extra step for data constraints */'; put '%addConst()'; put 'data _null_;'; put 'file &fref mod;'; put 'put '');'';'; put 'run;'; put '/* Create Unique Indexes, but only if they were not already defined within'; put 'the Constraints section. */'; put 'data _null_;'; put '*length ds $128;'; put 'set &idxinfo('; put 'where=('; put 'memname="&curds"'; put 'and unique=''yes'''; put 'and indxname not in ('; put '%sysfunc(tranwrd("&constraints_used",%str( ),%str(",")))'; put ')'; put ')'; put ');'; put 'file &fref mod;'; put 'by idxusage indxname;'; put '/* ds=cats(libname,''.'',memname); */'; put 'if first.indxname then do;'; put 'put ''CREATE UNIQUE INDEX '' indxname "ON &libref..&curds (" ;'; put 'put '' '' name ;'; put 'end;'; put 'else put '' ,'' name ;'; put '*else put '' ,'' name ;'; put 'if last.indxname then do;'; put 'put '');'';'; put 'end;'; put 'run;'; put '/*'; put 'ods output IntegrityConstraints=ic;'; put 'proc contents data=testali out2=info;'; put 'run;'; put '*/'; put '%end;'; put '%end;'; put '%else %if &flavour=TSQL %then %do;'; put '/* if schema does not exist, set to be same as libref */'; put '%local schemaactual;'; put 'proc sql noprint;'; put 'select sysvalue into: schemaactual'; put 'from dictionary.libnames'; put 'where upcase(libname)="&libref" and engine=''SQLSVR'';'; put '%let schema=%sysfunc(coalescec(&schemaactual,&schema,&libref));'; put '%do x=1 %to %sysfunc(countw(&dsnlist));'; put '%let curds=%scan(&dsnlist,&x);'; put 'data _null_;'; put 'file &fref mod;'; put 'put "/* TSQL Flavour DDL for &schema..&curds */";'; put 'data _null_;'; put 'file &fref mod;'; put 'set &colinfo (where=(upcase(memname)="&curds")) end=last;'; put 'if _n_=1 then do;'; put 'if memtype=''DATA'' then do;'; put 'put "create table [&schema].[&curds](";'; put 'end;'; put 'else do;'; put '/* just a placeholder - we filter out views at the top */'; put 'put "create view [&schema].[&curds](";'; put 'end;'; put 'put " "@@;'; put 'end;'; put 'else put " ,"@@;'; put 'format=upcase(format);'; put 'if 1=0 then; /* dummy if */'; put '%if &applydttm=YES %then %do;'; put 'else if format=:''DATETIME'' then fmt=''[datetime2](7) '';'; put '%end;'; put 'else if type=''num'' then fmt=''[decimal](18,2)'';'; put 'else if length le 8000 then fmt=''[varchar](''!!cats(length)!!'')'';'; put 'else fmt=cats(''[varchar](max)'');'; put 'if notnull=''yes'' then notnul='' NOT NULL'';'; put 'put "[" name +(-1) "]" fmt notnul;'; put 'run;'; put '/* Extra step for data constraints */'; put '%addConst()'; put '/* Create Unique Indexes, but only if they were not already defined within'; put 'the Constraints section. */'; put 'data _null_;'; put '*length ds $128;'; put 'set &idxinfo('; put 'where=('; put 'memname="&curds"'; put 'and unique=''yes'''; put 'and indxname not in ('; put '%sysfunc(tranwrd("&constraints_used",%str( ),%str(",")))'; put ')'; put ')'; put ');'; put 'file &fref mod;'; put 'by idxusage indxname;'; put '*ds=cats(libname,''.'',memname);'; put 'if first.indxname then do;'; put '/* add nonclustered in case of multiple unique indexes */'; put 'put '' ,index ['' indxname +(-1) ''] UNIQUE NONCLUSTERED ('';'; put 'put '' ['' name +(-1) '']'';'; put 'end;'; put 'else put '' ,['' name +(-1) '']'';'; put 'if last.indxname then do;'; put 'put '' )'';'; put 'end;'; put 'run;'; put 'data _null_;'; put 'file &fref mod;'; put 'put '')'';'; put 'put ''GO'';'; put 'run;'; put '/* add extended properties for labels */'; put 'data _null_;'; put 'file &fref mod;'; put 'length nm $64 lab $1024;'; put 'set &colinfo (where=(upcase(memname)="&curds" and label ne '''')) end=last;'; put 'nm=cats("N''",tranwrd(name,"''","''''"),"''");'; put 'lab=cats("N''",tranwrd(label,"''","''''"),"''");'; put 'put '' '';'; put 'put "EXEC sys.sp_addextendedproperty ";'; put 'put " @name=N''MS_Description'',@value=" lab ;'; put 'put " ,@level0type=N''SCHEMA'',@level0name=N''&schema'' ";'; put 'put " ,@level1type=N''TABLE'',@level1name=N''&curds''";'; put 'put " ,@level2type=N''COLUMN'',@level2name=" nm ;'; put 'if last then put ''GO'';'; put 'run;'; put '%end;'; put '%end;'; put '%else %if &flavour=PGSQL %then %do;'; put '/* if schema does not exist, set to be same as libref */'; put '%local schemaactual;'; put 'proc sql noprint;'; put 'select sysvalue into: schemaactual'; put 'from dictionary.libnames'; put 'where upcase(libname)="&libref" and engine=''POSTGRES'';'; put '%let schema=%sysfunc(coalescec(&schemaactual,&schema,&libref));'; put 'data _null_;'; put 'file &fref mod;'; put 'put "CREATE SCHEMA &schema;";'; put '%do x=1 %to %sysfunc(countw(&dsnlist));'; put '%let curds=%scan(&dsnlist,&x);'; put '%local curdsvarcount;'; put '%let curdsvarcount=%mf_getvarcount(&libref..&curds);'; put '%if &curdsvarcount>1600 %then %do;'; put 'data _null_;'; put 'file &fref mod;'; put 'put "/* &libref..&curds contains &curdsvarcount vars */";'; put 'put "/* Postgres cannot create tables with over 1600 vars */";'; put 'put "/* No DDL will be generated for this table";'; put 'run;'; put '%end;'; put '%else %do;'; put 'data _null_;'; put 'file &fref mod;'; put 'put "/* Postgres Flavour DDL for &schema..&curds */";'; put 'data _null_;'; put 'file &fref mod;'; put 'set &colinfo (where=(upcase(memname)="&curds")) end=last;'; put 'length fmt $32;'; put 'if _n_=1 then do;'; put 'if memtype=''DATA'' then do;'; put 'put "CREATE TABLE &schema..&curds (";'; put 'end;'; put 'else do;'; put '/* just a placeholder - we filter out views at the top */'; put 'put "CREATE VIEW &schema..&curds (";'; put 'end;'; put 'put " "@@;'; put 'end;'; put 'else put " ,"@@;'; put 'format=upcase(format);'; put 'if 1=0 then; /* dummy if */'; put '%if &applydttm=YES %then %do;'; put 'else if format=:''DATETIME'' then fmt='' TIMESTAMP '';'; put '%end;'; put 'else if type=''num'' then fmt='' DOUBLE PRECISION'';'; put 'else fmt=''VARCHAR(''!!cats(length)!!'')'';'; put 'if notnull=''yes'' then notnul='' NOT NULL'';'; put '/* quote column names in case they represent reserved words */'; put 'name2=quote(trim(name));'; put 'put name2 fmt notnul;'; put 'run;'; put '/* Extra step for data constraints */'; put '%addConst()'; put 'data _null_;'; put 'file &fref mod;'; put 'put '');'';'; put 'run;'; put '/* Create Unique Indexes, but only if they were not already defined within'; put 'the Constraints section. */'; put 'data _null_;'; put '*length ds $128;'; put 'set &idxinfo('; put 'where=('; put 'memname="&curds"'; put 'and unique=''yes'''; put 'and indxname not in ('; put '%sysfunc(tranwrd("&constraints_used",%str( ),%str(",")))'; put ')'; put ')'; put ');'; put 'file &fref mod;'; put 'by idxusage indxname;'; put 'if first.indxname then do;'; put 'put ''CREATE UNIQUE INDEX "'' indxname +(-1) ''" '' "ON &schema..&curds(";'; put 'put '' "'' name +(-1) ''"'' ;'; put 'end;'; put 'else put '' ,"'' name +(-1) ''"'';'; put 'if last.indxname then do;'; put 'put '');'';'; put 'end;'; put 'run;'; put '%end;'; put '%end;'; put '%end;'; put '%if %upcase(&showlog)=YES %then %do;'; put 'options ps=max;'; put 'data _null_;'; put 'infile &fref;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%end;'; put '%mend mp_getddl;'; put '%macro mf_getVarFormat(libds /* two level ds name */'; put ', var /* variable name from which to return the format */'; put ', force=0'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vformat rc vlen vtype;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable format */'; put '%if(&vnum > 0) %then %let vformat=%sysfunc(varfmt(&dsid, &vnum));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let rc = %sysfunc(close(&dsid));'; put '%return;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* supply a default if no format available */'; put '%if %length(&vformat)<2 & &force=1 %then %do;'; put '%let vlen = %sysfunc(varlen(&dsid, &vnum));'; put '%let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%if &vtype=C %then %let vformat=$&vlen..;'; put '%else %let vformat=best.;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable format */'; put '&vformat'; put '%mend mf_getVarFormat;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_getvartype(libds /* two level name */'; put ', var /* variable name from which to return the type */'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vtype rc;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid. > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable type (C/N) */'; put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let vtype = %str( );'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable type */'; put '&vtype'; put '%mend mf_getvartype;'; put '%macro mp_ds2inserts(ds, outref=0,schema=0,outds=0,flavour=SAS,maxobs=max'; put ',applydttm=YES'; put ')/*/STORE SOURCE*/;'; put '%if not %sysfunc(exist(&ds)) %then %do;'; put '%put %str(WAR)NING: &ds does not exist;'; put '%return;'; put '%end;'; put '%if not %sysfunc(exist(&ds)) %then %do;'; put '%put %str(WAR)NING: &ds does not exist;'; put '%return;'; put '%end;'; put '%if %index(&ds,.)=0 %then %let ds=WORK.&ds;'; put '%let flavour=%upcase(&flavour);'; put '%if &flavour ne SAS and &flavour ne PGSQL %then %do;'; put '%put %str(WAR)NING: &flavour is not supported;'; put '%return;'; put '%end;'; put '%if &outref=0 %then %do;'; put '%put %str(WAR)NING: Please provide a fileref;'; put '%return;'; put '%end;'; put '%if %mf_existfileref(&outref)=0 %then %do;'; put 'filename &outref temp lrecl=66000;'; put '%end;'; put '%if &schema=0 %then %let schema=;'; put '%else %let schema=&schema..;'; put '%if &outds=0 %then %let outds=%scan(&ds,2,.);'; put '%local nobs;'; put 'proc sql noprint;'; put 'select count(*) into: nobs TRIMMED from &ds;'; put '%if &nobs=0 %then %do;'; put 'data _null_;'; put 'file &outref mod;'; put 'put "/* No rows found in &ds */";'; put 'run;'; put '%end;'; put '%local vars;'; put '%let vars=%mf_getvarcount(&ds);'; put '%if &vars=0 %then %do;'; put 'data _null_;'; put 'file &outref mod;'; put 'put "/* No columns found in &schema.&ds */";'; put 'run;'; put '%return;'; put '%end;'; put '%else %if &vars>1600 and &flavour=PGSQL %then %do;'; put 'data _null_;'; put 'file &fref mod;'; put 'put "/* &schema.&ds contains &vars vars */";'; put 'put "/* Postgres cannot handle tables with over 1600 vars */";'; put 'put "/* No inserts will be generated for this table */";'; put 'run;'; put '%return;'; put '%end;'; put '%local varlist varlistcomma;'; put '%let varlist=%mf_getvarlist(&ds);'; put '%let varlistcomma=%mf_getvarlist(&ds,dlm=%str(,),quote=double);'; put '/* next, export data */'; put 'data _null_;'; put 'file &outref mod ;'; put 'if _n_=1 then put "/* &schema.&outds (&nobs rows, &vars columns) */";'; put 'set &ds;'; put '%if &maxobs ne max %then %do;'; put 'if _n_>&maxobs then stop;'; put '%end;'; put 'length _____str $32767;'; put 'call missing(_____str);'; put 'format _numeric_ best.;'; put 'format _character_ ;'; put '%local i comma var vtype vfmt;'; put '%do i=1 %to %sysfunc(countw(&varlist));'; put '%let var=%scan(&varlist,&i);'; put '%let vtype=%mf_getvartype(&ds,&var);'; put '%let vfmt=%upcase(%mf_getvarformat(&ds,&var,force=1));'; put '%if &i=1 %then %do;'; put '%if &flavour=SAS %then %do;'; put 'put "insert into &schema.&outds set ";'; put 'put " &var="@;'; put '%end;'; put '%else %if &flavour=PGSQL %then %do;'; put '_____str=cats('; put '"INSERT INTO &schema.&outds ("'; put ',symget(''varlistcomma'')'; put ',") VALUES ("'; put ');'; put 'put _____str;'; put 'put " "@;'; put '%end;'; put '%end;'; put '%else %do;'; put '%if &flavour=SAS %then %do;'; put 'put " ,&var="@;'; put '%end;'; put '%else %if &flavour=PGSQL %then %do;'; put 'put " ,"@;'; put '%end;'; put '%end;'; put '%if &vtype=N %then %do;'; put '%if &flavour=SAS %then %do;'; put 'put &var;'; put '%end;'; put '%else %if &flavour=PGSQL %then %do;'; put 'if missing(&var) then put ''NULL'';'; put '%if &applydttm=YES and "%substr(&vfmt.xxxxxxxx,1,8)"="DATETIME"'; put '%then %do;'; put 'else put "TIMESTAMP ''" &var E8601DT25.6 "''";'; put '%end;'; put '%else %do;'; put 'else put &var;'; put '%end;'; put '%end;'; put '%end;'; put '%else %do;'; put '_____str="''"!!trim(tranwrd(&var,"''","''''"))!!"''";'; put 'put _____str;'; put '%end;'; put '%end;'; put '%if &flavour=SAS %then %do;'; put 'put '';'';'; put '%end;'; put '%else %if &flavour=PGSQL %then %do;'; put 'put '');'';'; put '%end;'; put 'if _n_=&nobs then put /;'; put 'run;'; put '%mend mp_ds2inserts;'; put '%macro mp_lib2inserts(lib'; put ',flavour=SAS'; put ',outref=0'; put ',schema=0'; put ',maxobs=max'; put ',applydttm=YES'; put ')/*/STORE SOURCE*/;'; put '/* Find the tables */'; put '%local x ds memlist;'; put 'proc sql noprint;'; put 'select distinct lowcase(memname)'; put 'into: memlist'; put 'separated by '' '''; put 'from dictionary.tables'; put 'where upcase(libname)="%upcase(&lib)"'; put 'and memtype=''DATA''; /* exclude views */'; put '%let flavour=%upcase(&flavour);'; put '%if &flavour ne SAS and &flavour ne PGSQL %then %do;'; put '%put %str(WAR)NING: &flavour is not supported;'; put '%return;'; put '%end;'; put '/* create the inserts */'; put '%do x=1 %to %sysfunc(countw(&memlist));'; put '%let ds=%scan(&memlist,&x);'; put '%mp_ds2inserts(&lib..&ds'; put ',outref=&outref'; put ',schema=&schema'; put ',outds=&ds'; put ',flavour=&flavour'; put ',maxobs=&maxobs'; put ',applydttm=&applydttm'; put ')'; put '%end;'; put '%mend mp_lib2inserts;'; put '%macro mfs_httpheader(header_name'; put ',header_value'; put ')/*/STORE SOURCE*/;'; put '%global sasjs_stpsrv_header_loc;'; put '%local fref fid i;'; put '%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;'; put '%put &=fref &=sasjs_stpsrv_header_loc;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%mend mfs_httpheader;'; put '%macro mp_binarycopy('; put 'inloc= /* full path and filename of the object to be copied */'; put ',outloc= /* full path and filename of object to be created */'; put ',inref=____in /* override default to use own filerefs */'; put ',outref=____out /* override default to use own filerefs */'; put ',mode=CREATE'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%local mod;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if &mode=APPEND %then %let mod=mod;'; put '/* these IN and OUT filerefs can point to anything */'; put '%if &inref = ____in %then %do;'; put 'filename &inref &inloc lrecl=1048576 ;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref &outloc lrecl=1048576 &mod;'; put '%end;'; put '/* copy the file byte-for-byte */'; put 'data _null_;'; put 'infile &inref lrecl=1 recfm=n;'; put 'file &outref &mod recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%if &inref = ____in %then %do;'; put 'filename &inref clear;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref clear;'; put '%end;'; put '%mend mp_binarycopy;'; put '%macro mp_streamfile('; put 'contenttype=TEXT'; put ',inloc='; put ',inref=0'; put ',iftrue=%str(1=1)'; put ',outname='; put ',outref=_webout'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let contentype=%upcase(&contenttype);'; put '%let outref=%upcase(&outref);'; put '%local platform; %let platform=%mf_getplatform();'; put '/**'; put '* check engine type to avoid the below err message:'; put '* > Function is only valid for filerefs using the CACHE access method.'; put '*/'; put '%local streamweb;'; put '%let streamweb=0;'; put 'data _null_;'; put 'set sashelp.vextfl(where=(upcase(fileref)="&outref"));'; put 'if xengine=''STREAM'' then call symputx(''streamweb'',1,''l'');'; put 'run;'; put '%if &contentype=CSV %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/csv'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; put 'contenttype=''application/csv'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/csv)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=EXCEL %then %do;'; put '/* suitable for XLS format */'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/vnd.ms-excel'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; put 'contenttype=''application/vnd.ms-excel'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/vnd.ms-excel)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=GIF or &contentype=JPEG or &contentype=PNG %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"image/%lowcase(&contenttype)");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'contenttype="image/%lowcase(&contenttype)";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,image/%lowcase(&contenttype))'; put '%end;'; put '%end;'; put '%else %if &contentype=HTML or &contenttype=MARKDOWN %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"text/%lowcase(&contenttype)");'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json"'; put 'contenttype="text/%lowcase(&contenttype)"'; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,text/%lowcase(&contenttype))'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=TEXT %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/text'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; put 'contenttype=''application/text'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/text)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=WOFF or &contentype=WOFF2 or &contentype=TTF %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"font/%lowcase(&contenttype)");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'contenttype="font/%lowcase(&contenttype)";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,font/%lowcase(&contenttype))'; put '%end;'; put '%end;'; put '%else %if &contentype=XLSX %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'','; put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; put 'contenttype='; put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type'; put ',application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; put ')'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=ZIP %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/zip'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.zip'''; put 'contenttype=''application/zip'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/zip)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %do;'; put '%put %str(ERR)OR: Content Type &contenttype NOT SUPPORTED by &sysmacroname!;'; put '%end;'; put '%if &inref ne 0 %then %do;'; put '%mp_binarycopy(inref=&inref,outref=&outref)'; put '%end;'; put '%else %do;'; put '%mp_binarycopy(inloc="&inloc",outref=&outref)'; put '%end;'; put '%mend mp_streamfile;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Exports the data controller library in DB specific DDL'; put '@details If user is in the administrator group, they can call this'; put 'service directly adding the following URL params:'; put '@li &flavour= (only PGSQL supported at this time)'; put '@li &schema= (optional, if target schema is needed)'; put '

SAS Macros

'; put '@li mf_getuser.sas'; put '@li mp_abort.sas'; put '@li mp_getddl.sas'; put '@li mp_lib2inserts.sas'; put '@li mp_streamfile.sas'; put '@li mpe_getgroups.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%global flavour schema;'; put '/* if no flavour is specified, default to SAS */'; put '%let flavour=%sysfunc(coalescec(&flavour,SAS));'; put '/* if no schema var provided, DC Libref is used */'; put '%let schema=%sysfunc(coalescec(&schema,&dc_libref));'; put '/* check user is in admin group */'; put '%mpe_getgroups(user=%mf_getuser(),outds=work.usergroups)'; put 'data work.admins;'; put 'set work.usergroups;'; put 'put (_all_)(=);'; put 'run;'; put '%let cnt=0;'; put 'proc sql noprint;'; put 'select count(*) into:cnt'; put 'from usergroups'; put 'where groupname="&mpeadmins";'; put '%put &=cnt;'; put '%mp_abort(iftrue= (&cnt=0)'; put ',mac=&_program'; put ',msg=%str(The &DC_LIBREF library can only be exported by &mpeadmins members)'; put ')'; put '%mp_getddl(&DC_LIBREF'; put ',flavour=&flavour'; put ',schema=&schema'; put ',applydttm=YES'; put ',fref=tmpref'; put ')'; put '%mp_lib2inserts(&DC_LIBREF,flavour=&flavour,schema=&schema, outref=tmpref)'; put '%mp_streamfile(contenttype=TEXT'; put ',inref=tmpref'; put ',outname=&dc_libref..ddl'; put ')'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=makedata; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mpe_getvars(injs,outds);'; put '/* load parameters */'; put 'data _null_;'; put '__dummychar='''';__dummynum=0;'; put 'set &outds;'; put 'array __charvals _character_;'; put 'do over __charvals;'; put 'call symputx(vname(__charvals),__charvals,''g'');'; put 'end;'; put 'array __numvals _numeric_;'; put 'do over __numvals;'; put 'call symputx(vname(__numvals),__numvals,''g'');'; put 'end;'; put 'run;'; put '%mend mpe_getvars;'; put '%macro mf_increment(macro_name,incr=1);'; put '/* iterate the value */'; put '%let ¯o_name=%eval(&&¯o_name+&incr);'; put '/* return the value */'; put '&&¯o_name'; put '%mend mf_increment;'; put '%macro mpe_makedata(lib=,mpeadmins=,path=);'; put '%if &syscc ne 0 %then %do;'; put '%put syscc=&syscc exiting &sysmacroname;'; put '%return;'; put '%end;'; put 'proc sql;'; put 'insert into &lib..mpe_column_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',CLS_SCOPE=''EDIT'''; put ',CLS_GROUP=''AllUsers'''; put ',CLS_LIBREF="&lib"'; put ',CLS_TABLE=''MPE_LOCKANYTABLE'''; put ',CLS_VARIABLE_NM=''LOCK_STATUS_CD'''; put ',CLS_ACTIVE=1'; put ',CLS_HIDE=0;'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DC"'; put ',var_name="DC_EMAIL_ALERTS"'; put ',var_value=''NO'''; put ',var_active=1'; put ',var_desc=''YES or NO to enable email alerts. Note - this requires email '''; put '!!''options to be preconfigured! They can be configured in the '''; put '!!''settings stp if needed.'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DC"'; put ',var_name="DC_VIEWLIB_CHECK"'; put ',var_value=''NO'''; put ',var_active=1'; put ',var_desc='; put '''Set to YES to enable library validity checking in viewLibs service.'''; put '!!'' Note: this can make the service very slow if there are lots of '''; put '!!''external libraries. If enabled, this removes empty libraries from '''; put '!!''the viewer library dropdown. To switch off, set to NO.'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DC"'; put ',var_name="DC_MACROS"'; put ',var_value=cats(symget(''path''),"/dc_macros")'; put ',var_active=1'; put ',var_desc=''Location of underlying macros - EUC feature.'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DC"'; put ',var_name="DC_MAXOBS_WEBEDIT"'; put ',var_value="100"'; put ',var_active=1'; put ',var_desc=''This sets the maximum number of observations that can be loaded'''; put '!!'' into the browser for editing in the EDIT screen. A higher number'''; put '!!'' will require a decent browser (ie, not IE) and more memory on the'''; put '!!'' client side.'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DC"'; put ',var_name="DC_REQUEST_LOGS"'; put ',var_value="YES"'; put ',var_active=1'; put ',var_desc=''Setting to NO will prevent each request being logged to the'''; put '!!'' MPE_REQUESTS table Default=YES.'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DC"'; put ',var_name="DC_RESTRICT_VIEWER"'; put ',var_value="NO"'; put ',var_active=1'; put ',var_desc=''YES will restrict the list of libraries and tables in VIEWER to'''; put '!!'' those explicitly set to VIEW in the MPE_SECURITY table. Default=NO.'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DC"'; put ',var_name="DC_RESTRICT_EDITRECORD"'; put ',var_value="NO"'; put ',var_active=1'; put ',var_desc=''Setting YES will prevent the EDIT RECORD dialog appearing in the'''; put '!!'' EDIT screen by removing the "Edit Row" option in the right click menu'''; put '!!'', and the "ADD RECORD" button in the bottom left. Default=NO.'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DC_CATALOG"'; put ',var_name="DC_IGNORELIBS"'; put ',var_value="|MAPSSAS|MAPS|"'; put ',var_active=1'; put ',var_desc=''Pipe seperated list of librefs (uppercase) to be ignored when'''; put '!!'' running the Data Catalog refresh process. This can enable a clean'''; put '!!'' run when invalid librefs are returned by the mpe_refreshlibs macro.'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DC"'; put ',var_name="DC_LOCALE"'; put ',var_value="SYSTEM"'; put ',var_active=1'; put ',var_desc=''Set to a locale (such as en_gb or en_be) to override the system'''; put '!!'' value (which can be driven from the browser settings). This is '''; put '!!''useful when importing ambiguous dates from CSV or Excel (eg 1/2/20 vs '''; put '!!''2/1/20) as DC uses the anydtdtm informats for import. Default=SYSTEM.'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DCBL_REDSH"'; put ',var_name="BULKLOAD"'; put ',var_value="YES"'; put ',var_active=0'; put ',var_desc=''Set to YES to enable BULKLOAD=YES in redshift'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DCBL_REDSH"'; put ',var_name="BL_BUCKET"'; put ',var_value="''your-aws-bucket/Exchange''"'; put ',var_active=0'; put ',var_desc=''Set to the (quoted) value of the AWS bucket to'''; put '!!'' use for s3 uploads in redshift'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DCBL_REDSH"'; put ',var_name="BL_AWS_CREDENTIALS_FILE"'; put ',var_value="''/path/to/your/aws/s3/.credentials''"'; put ',var_active=0'; put ',var_desc=''Set to the (quoted) value of the AWS creds file'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DCBL_REDSH"'; put ',var_name="BL_REGION"'; put ',var_value="''eu-west-1''"'; put ',var_active=0'; put ',var_desc=''Set to the (quoted) AWS region in use'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DCBL_REDSH"'; put ',var_name="BL_COMPRESS"'; put ',var_value="YES"'; put ',var_active=0'; put ',var_desc=''Set to YES to perform compression ahead of the COPY command'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DCBL_REDSH"'; put ',var_name="BL_USE_SSL"'; put ',var_value="YES"'; put ',var_active=0'; put ',var_desc=''Set to YES to use SSL encryption'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DC_REVIEW"'; put ',var_name="HISTORY_ROWS"'; put ',var_value=''100'''; put ',var_active=1'; put ',var_desc=''Number of rows (or additional rows) to return in the HISTORY '''; put '!!''page'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DC"'; put ',var_name="DC_LICENCE_KEY"'; put ',var_value='' '''; put ',var_active=1'; put ',var_desc=''Licence Key'';'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_scope="DC"'; put ',var_name="DC_ACTIVATION_KEY"'; put ',var_value='' '''; put ',var_active=1'; put ',var_desc=''Activation Key'';'; put 'insert into &lib..mpe_datadictionary set'; put 'tx_from=0'; put ',DD_TYPE=''LIBRARY'''; put ',DD_SOURCE="&lib"'; put ',DD_SHORTDESC="Data Controller Control Tables"'; put ',DD_LONGDESC="# The Data Controller Library"'; put ',DD_OWNER="&sysuserid"'; put ',DD_RESPONSIBLE="&sysuserid"'; put ',DD_SENSITIVITY="Low"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_datadictionary set'; put 'tx_from=0'; put ',DD_TYPE=''TABLE'''; put ',DD_SOURCE="&lib..MPE_TABLES"'; put ',DD_SHORTDESC="Configuration of new tables for Data Controller"'; put ',DD_LONGDESC="# MPE_TABLES - adding new tabels to Data Controller"'; put ',DD_OWNER="&sysuserid"'; put ',DD_RESPONSIBLE="&sysuserid"'; put ',DD_SENSITIVITY="Low"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_datadictionary set'; put 'tx_from=0'; put ',DD_TYPE=''COLUMN'''; put ',DD_SOURCE="&lib..MPE_TABLES.DSN"'; put ',DD_SHORTDESC="Dataset Name to be edited"'; put ',DD_LONGDESC="_DSN_ - must be UPCASE"'; put ',DD_OWNER="&sysuserid"'; put ',DD_RESPONSIBLE="&sysuserid"'; put ',DD_SENSITIVITY="Low"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_datadictionary set'; put 'tx_from=0'; put ',DD_TYPE=''DIRECTORY'''; put ',DD_SOURCE="/some/directory"'; put ',DD_SHORTDESC="Directory for some purpose"'; put ',DD_LONGDESC="This directory is great. It''s great directory.'; put 'It trumps all other directories."'; put ',DD_OWNER="&sysuserid"'; put ',DD_RESPONSIBLE="&sysuserid"'; put ',DD_SENSITIVITY="Low"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_datadictionary set'; put 'tx_from=0'; put ',DD_TYPE=''TABLE'''; put ',DD_SOURCE="&lib"'; put ',DD_SHORTDESC="Transaction table for capturing Data Controller users"'; put ',DD_LONGDESC="After a user accepts the Data Controller EULA they are "'; put '!!"registered as a user in this table."'; put ',DD_OWNER="&sysuserid"'; put ',DD_RESPONSIBLE="&sysuserid"'; put ',DD_SENSITIVITY="Low"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_datadictionary set'; put 'tx_from=0'; put ',DD_TYPE=''COLUMN'''; put ',DD_SOURCE="&lib..MPE_CONFIG.VAR_ACTIVE"'; put ',DD_SHORTDESC="Set to 1 to make an option active"'; put ',DD_LONGDESC="This value is used as a filter by data controller whenever "'; put '!!"querying for option settings."'; put ',DD_OWNER="&sysuserid"'; put ',DD_RESPONSIBLE="&sysuserid"'; put ',DD_SENSITIVITY="Low"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put '/**'; put '* mpe_xlmap_info'; put '*/'; put 'insert into &lib..mpe_xlmap_info set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_description=''Basel 3 Key Metrics report'''; put ',XLMAP_TARGETLIBDS="&lib..MPE_XLMAP_DATA";'; put '/**'; put '* mpe_xlmap_rules'; put '*/'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:a'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''MATCH 4 R[2]C[0]:a'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:b'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''MATCH 4 R[2]C[0]:b'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:c'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''MATCH 4 R[2]C[0]:c'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:d'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''MATCH 4 R[2]C[0]:d'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:e'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''MATCH 4 R[2]C[0]:e'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:f'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''MATCH 4 R[2]C[0]:f'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:1/a'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''MATCH C R[0]C[1]:Common Equity Tier 1 (CET1)'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:1/b'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''MATCH C R[0]C[2]:Common Equity Tier 1 (CET1)'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:1/c'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''MATCH C R[0]C[3]:Common Equity Tier 1 (CET1)'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:1/d'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''MATCH C R[0]C[4]:Common Equity Tier 1 (CET1)'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:1/e'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''MATCH C R[0]C[5]:Common Equity Tier 1 (CET1)'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:1/f'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''MATCH C R[0]C[6]:Common Equity Tier 1 (CET1)'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:1a/e'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''MATCH C R[1]C[5]:Common Equity Tier 1 (CET1)'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:1a/f'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''MATCH C R[1]C[6]:Common Equity Tier 1 (CET1)'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:2/a'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''ABSOLUTE D10'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:2/b'''; put ',xlmap_sheet=''/3'''; put ',xlmap_start=''ABSOLUTE E10'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:2/c'''; put ',xlmap_sheet=''/3'''; put ',xlmap_start=''RELATIVE R[10]C[6]'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:2/d'''; put ',xlmap_sheet=''/3'''; put ',xlmap_start=''RELATIVE R[10]C[8]'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:2/e'''; put ',xlmap_sheet=''/3'''; put ',xlmap_start=''RELATIVE R[10]C[9]'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:2/f'''; put ',xlmap_sheet=''/3'''; put ',xlmap_start=''RELATIVE R[10]C[10]'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:2a'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''ABSOLUTE H11'''; put ',xlmap_finish=''RELATIVE R[0]C[1]'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-KM1'''; put ',xlmap_range_id=''KM1:3'''; put ',xlmap_sheet=''KM1'''; put ',xlmap_start=''RELATIVE R[12]C[4]'''; put ',xlmap_finish=''ABSOLUTE I13'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-CR2'''; put ',xlmap_range_id=''CR2-sec1'''; put ',xlmap_sheet=''CR2'''; put ',xlmap_start=''ABSOLUTE D8'''; put ',xlmap_finish=''BLANKROW'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''BASEL-CR2'''; put ',xlmap_range_id=''CR2-sec2'''; put ',xlmap_sheet=''CR2'''; put ',xlmap_start=''ABSOLUTE D18'''; put ',xlmap_finish=''LASTDOWN'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''SAMPLE'''; put ',xlmap_range_id=''header'''; put ',xlmap_sheet=''/1'''; put ',xlmap_start=''ABSOLUTE B3'''; put ',xlmap_finish=''ABSOLUTE B8'';'; put 'insert into &lib..mpe_xlmap_rules set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',xlmap_id=''SAMPLE'''; put ',xlmap_range_id=''data'''; put ',xlmap_sheet=''/1'''; put ',xlmap_start=''ABSOLUTE B13'''; put ',xlmap_finish=''ABSOLUTE E16'';'; put '/**'; put '* MPE_GROUPS'; put '*/'; put 'insert into &lib..mpe_groups set'; put 'tx_from=0'; put ',group_name="dc-admin"'; put ',group_desc="Custom Group for Data Controller Purposes"'; put ',user_name="allbow"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_groups set'; put 'tx_from=0'; put ',group_name="dc-admin"'; put ',group_desc="Custom Group for Data Controller Purposes"'; put ',user_name="dctestuser1"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_groups set'; put 'tx_from=0'; put ',group_name="dc-admin"'; put ',group_desc="Custom Group for Data Controller Purposes"'; put ',user_name="mihmed"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_groups set'; put 'tx_from=0'; put ',group_name="sec-sas9-prd-ext-sasplatform-300115datacontroller"'; put ',group_desc="Custom Group for Data Controller Purposes"'; put ',user_name="DCTest"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put '/**'; put '* MPE_ROW_LEVEL_SECURITY'; put '*/'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=1'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-int-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_GROUPS"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=0'; put ',RLS_VARIABLE_NM=''GROUP_NAME'''; put ',RLS_OPERATOR_NM=''NE'''; put ',RLS_RAW_VALUE="''-1''"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=2'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-int-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib"'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=0'; put ',RLS_VARIABLE_NM=''RLS_RK'''; put ',RLS_OPERATOR_NM=''>'''; put ',RLS_RAW_VALUE=''0'''; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=3'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''DC Demo Group'''; put ',RLS_LIBREF="&lib"'; put ',RLS_TABLE="MPE_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=0'; put ',RLS_VARIABLE_NM=''ACCESS_LEVEL'''; put ',RLS_OPERATOR_NM=''NE'''; put ',RLS_RAW_VALUE="''N/A''"'; put ',RLS_ACTIVE=1;'; put '/**'; put '* MPE_SECURITY'; put '*/'; put 'insert into &lib..mpe_security set'; put 'tx_from=0'; put ',libref="*ALL*"'; put ',dsn="*ALL*"'; put ',access_level="APPROVE"'; put ',sas_group="sec-sas9-prd-int-sasplatform-300114sasjs"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_security set'; put 'tx_from=0'; put ',libref="*ALL*"'; put ',dsn="*ALL*"'; put ',access_level="EDIT"'; put ',sas_group="sec-sas9-prd-int-sasplatform-300114sasjs"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_security set'; put 'tx_from=0'; put ',libref="*ALL*"'; put ',dsn="*ALL*"'; put ',access_level="APPROVE"'; put ',sas_group="sec-sas9-prd-ext-sasplatform-300114sasjs"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_security set'; put 'tx_from=0'; put ',libref="*ALL*"'; put ',dsn="*ALL*"'; put ',access_level="EDIT"'; put ',sas_group="sec-sas9-prd-ext-sasplatform-300114sasjs"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_security set'; put 'tx_from=0'; put ',libref="*ALL*"'; put ',dsn="*ALL*"'; put ',access_level="EDIT"'; put ',sas_group="dc-admin"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_security set'; put 'tx_from=0'; put ',libref="*ALL*"'; put ',dsn="*ALL*"'; put ',access_level="APPROVE"'; put ',sas_group="dc-admin"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put '/* mpe_selectbox */'; put '%let rk=1;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=&rk'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_LOCKANYTABLE"'; put ',base_column="LOCK_STATUS_CD"'; put ',selectbox_value=''LOCKED'''; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_LOCKANYTABLE"'; put ',base_column="LOCK_STATUS_CD"'; put ',selectbox_value=''UNLOCKED'''; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_SECURITY"'; put ',base_column="ACCESS_LEVEL"'; put ',selectbox_value=''EDIT'''; put ',selectbox_order=0'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_SECURITY"'; put ',base_column="ACCESS_LEVEL"'; put ',selectbox_value=''APPROVE'''; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_SECURITY"'; put ',base_column="ACCESS_LEVEL"'; put ',selectbox_value=''VIEW'''; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_SECURITY"'; put ',base_column="ACCESS_LEVEL"'; put ',selectbox_value=''SIGNOFF'''; put ',selectbox_order=3'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_TABLES"'; put ',base_column="LOADTYPE"'; put ',selectbox_value=''UPDATE'''; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_TABLES"'; put ',base_column="LOADTYPE"'; put ',selectbox_value=''REPLACE'''; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_TABLES"'; put ',base_column="LOADTYPE"'; put ',selectbox_value=''TXTEMPORAL'''; put ',selectbox_order=3'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_TABLES"'; put ',base_column="LOADTYPE"'; put ',selectbox_value=''BITEMPORAL'''; put ',selectbox_order=4'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_TABLES"'; put ',base_column="LOADTYPE"'; put ',selectbox_value=''FORMAT_CAT'''; put ',selectbox_order=5'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ALERTS"'; put ',base_column="ALERT_EVENT"'; put ',selectbox_value=''*ALL*'''; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ALERTS"'; put ',base_column="ALERT_EVENT"'; put ',selectbox_value=''SUBMITTED'''; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ALERTS"'; put ',base_column="ALERT_EVENT"'; put ',selectbox_value=''APPROVED'''; put ',selectbox_order=3'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ALERTS"'; put ',base_column="ALERT_EVENT"'; put ',selectbox_value=''REJECTED'''; put ',selectbox_order=4'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_X_TEST"'; put ',base_column="SOME_DROPDOWN"'; put ',selectbox_value=''Option 1'''; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_X_TEST"'; put ',base_column="SOME_DROPDOWN"'; put ',selectbox_value=''Option 2'''; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_X_TEST"'; put ',base_column="SOME_DROPDOWN"'; put ',selectbox_value=''Option 3'''; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_X_TEST"'; put ',base_column="SOME_DROPDOWN"'; put ',selectbox_value="This is a long option. This option is very long. "'; put '!!"It is optional, though."'; put ',selectbox_order=3'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_VALIDATIONS"'; put ',base_column="RULE_TYPE"'; put ',selectbox_value="CASE"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_VALIDATIONS"'; put ',base_column="RULE_TYPE"'; put ',selectbox_value="MINVAL"'; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_VALIDATIONS"'; put ',base_column="RULE_TYPE"'; put ',selectbox_value="MAXVAL"'; put ',selectbox_order=3'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_VALIDATIONS"'; put ',base_column="RULE_TYPE"'; put ',selectbox_value="HARDSELECT"'; put ',selectbox_order=4'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_VALIDATIONS"'; put ',base_column="RULE_TYPE"'; put ',selectbox_value="SOFTSELECT"'; put ',selectbox_order=5'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_VALIDATIONS"'; put ',base_column="RULE_TYPE"'; put ',selectbox_value="NOTNULL"'; put ',selectbox_order=6'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_SECURITY"'; put ',base_column="DSN"'; put ',selectbox_value="SOME_DATASET"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_SECURITY"'; put ',base_column="DSN"'; put ',selectbox_value="EXAMPLE"'; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_DATADICTIONARY"'; put ',base_column="DD_TYPE"'; put ',selectbox_value="COLUMN"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_DATADICTIONARY"'; put ',base_column="DD_TYPE"'; put ',selectbox_value="TABLE"'; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_DATADICTIONARY"'; put ',base_column="DD_TYPE"'; put ',selectbox_value="LIBRARY"'; put ',selectbox_order=3'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_DATADICTIONARY"'; put ',base_column="DD_TYPE"'; put ',selectbox_value="CATALOG"'; put ',selectbox_order=3'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_DATADICTIONARY"'; put ',base_column="DD_TYPE"'; put ',selectbox_value="FORMAT"'; put ',selectbox_order=3'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_SECURITY"'; put ',base_column="LIBREF"'; put ',selectbox_value=''*ALL*'''; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_SECURITY"'; put ',base_column="ACCESS_LEVEL"'; put ',selectbox_value=''AUDIT'''; put ',selectbox_order=4'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_VALIDATIONS"'; put ',base_column="RULE_TYPE"'; put ',selectbox_value="HARDSELECT_HOOK"'; put ',selectbox_order=7'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_VALIDATIONS"'; put ',base_column="RULE_TYPE"'; put ',selectbox_value="SOFTSELECT_HOOK"'; put ',selectbox_order=7'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_SCOPE"'; put ',selectbox_value="ALL"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_SCOPE"'; put ',selectbox_value="EDIT"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_SCOPE"'; put ',selectbox_value="VIEW"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_GROUP_LOGIC"'; put ',selectbox_value="AND"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_GROUP_LOGIC"'; put ',selectbox_value="OR"'; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_SUBGROUP_LOGIC"'; put ',selectbox_value="AND"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_SUBGROUP_LOGIC"'; put ',selectbox_value="OR"'; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_OPERATOR_NM"'; put ',selectbox_value="="'; put ',selectbox_order=0'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_OPERATOR_NM"'; put ',selectbox_value=">"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_OPERATOR_NM"'; put ',selectbox_value="<"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_OPERATOR_NM"'; put ',selectbox_value="<="'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_OPERATOR_NM"'; put ',selectbox_value=">="'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_OPERATOR_NM"'; put ',selectbox_value="BETWEEN"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_OPERATOR_NM"'; put ',selectbox_value="IN"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_OPERATOR_NM"'; put ',selectbox_value="NOT IN"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_OPERATOR_NM"'; put ',selectbox_value="NE"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_OPERATOR_NM"'; put ',selectbox_value="CONTAINS"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_EXCEL_CONFIG"'; put ',base_column="XL_RULE"'; put ',selectbox_value="FORMULA"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_ACTIVE"'; put ',selectbox_value="1"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_column="RLS_ACTIVE"'; put ',selectbox_value="0"'; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_column="CLS_ACTIVE"'; put ',selectbox_value="1"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_column="CLS_ACTIVE"'; put ',selectbox_value="0"'; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_column="CLS_SCOPE"'; put ',selectbox_value="EDIT"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_column="CLS_SCOPE"'; put ',selectbox_value="VIEW"'; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_column="CLS_SCOPE"'; put ',selectbox_value="ALL"'; put ',selectbox_order=3'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_column="CLS_HIDE"'; put ',selectbox_value="0"'; put ',selectbox_order=1'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_selectbox set'; put 'selectbox_rk=%mf_increment(rk)'; put ',ver_from_dttm=0'; put ',select_lib="&lib"'; put ',select_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_column="CLS_HIDE"'; put ',selectbox_value="1"'; put ',selectbox_order=2'; put ',ver_to_dttm=''31DEC5999:23:59:59''dt;'; put '/**'; put '* MPE_TABLES'; put '*/'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_COLUMN_LEVEL_SECURITY'''; put ',num_of_approvals_required=1'; put ',loadtype=''TXTEMPORAL'''; put ',var_txfrom=''TX_FROM'''; put ',var_txto=''TX_TO'''; put ',buskey=''CLS_SCOPE CLS_GROUP CLS_LIBREF CLS_TABLE CLS_VARIABLE_NM'''; put ',notes=''Docs: https://docs.datacontroller.io/column-level-security'''; put ',post_edit_hook=''services/hooks/mpe_column_level_security_postedit'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_XLMAP_INFO'''; put ',num_of_approvals_required=1'; put ',loadtype=''TXTEMPORAL'''; put ',var_txfrom=''TX_FROM'''; put ',var_txto=''TX_TO'''; put ',buskey=''XLMAP_ID'''; put ',notes=''Docs: https://docs.datacontroller.io/complex-excel-uploads'''; put ',post_edit_hook=''services/hooks/mpe_xlmap_info_postedit'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_XLMAP_RULES'''; put ',num_of_approvals_required=1'; put ',loadtype=''TXTEMPORAL'''; put ',var_txfrom=''TX_FROM'''; put ',var_txto=''TX_TO'''; put ',buskey=''XLMAP_ID XLMAP_RANGE_ID'''; put ',notes=''Docs: https://docs.datacontroller.io/complex-excel-uploads'''; put ',post_edit_hook=''services/hooks/mpe_xlmap_rules_postedit'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_XLMAP_DATA'''; put ',num_of_approvals_required=1'; put ',loadtype=''UPDATE'''; put ',buskey=''LOAD_REF XLMAP_ID XLMAP_RANGE_ID ROW_NO COL_NO'''; put ',notes=''Docs: https://docs.datacontroller.io/complex-excel-uploads'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_LOCKANYTABLE'''; put ',num_of_approvals_required=1'; put ',loadtype=''UPDATE'''; put ',buskey=''LOCK_LIB LOCK_DS'''; put ',notes=''This table may be edited when a process failed and left a lock'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_TABLES'''; put ',num_of_approvals_required=1'; put ',loadtype=''TXTEMPORAL'''; put ',buskey=''LIBREF DSN'''; put ',var_txfrom=''TX_FROM'''; put ',var_txto=''TX_TO'''; put ',notes=''This entry allows the MP Editor to edit itself!'''; put ',post_edit_hook=''services/hooks/mpe_tables_postedit'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_SECURITY'''; put ',num_of_approvals_required=1'; put ',loadtype=''TXTEMPORAL'''; put ',buskey=''LIBREF DSN ACCESS_LEVEL SAS_GROUP'''; put ',var_txfrom=''TX_FROM'''; put ',var_txto=''TX_TO'''; put ',notes=''Determines which groups can view/edit/approve which tables'''; put ',post_edit_hook=''services/hooks/mpe_security_postedit'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_SELECTBOX'''; put ',num_of_approvals_required=1'; put ',loadtype=''TXTEMPORAL'''; put ',buskey=''SELECTBOX_RK'''; put ',var_txfrom=''VER_FROM_DTTM'''; put ',var_txto=''VER_TO_DTTM'''; put ',notes=''Can configure dropdowns for the front end'''; put ',rk_underlying=''SELECT_LIB SELECT_DS BASE_COLUMN SELECTBOX_VALUE'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_X_TEST'''; put ',num_of_approvals_required=1'; put ',loadtype=''UPDATE'''; put ',buskey=''PRIMARY_KEY_FIELD'''; put ',notes=''Test table for controller'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_EMAILS'''; put ',num_of_approvals_required=1'; put ',loadtype=''TXTEMPORAL'''; put ',buskey=''USER_NAME'''; put ',notes=''Primary Emails Table (backup is metadata)'''; put ',var_txfrom=''TX_FROM'''; put ',var_txto=''TX_TO'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_CONFIG'''; put ',num_of_approvals_required=1'; put ',loadtype=''TXTEMPORAL'''; put ',buskey=''VAR_SCOPE VAR_NAME'''; put ',notes=''Configuration variables for Data Controller'''; put ',var_txfrom=''TX_FROM'''; put ',var_txto=''TX_TO'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_ALERTS'''; put ',num_of_approvals_required=1'; put ',loadtype=''TXTEMPORAL'''; put ',buskey=''ALERT_EVENT ALERT_LIB ALERT_DS ALERT_USER'''; put ',notes=''Configuration for alert email events'''; put ',var_txfrom=''TX_FROM'''; put ',var_txto=''TX_TO'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_GROUPS'''; put ',num_of_approvals_required=1'; put ',loadtype=''TXTEMPORAL'''; put ',buskey=''GROUP_NAME USER_NAME'''; put ',notes=''Configuration for additional groups within Data Controller'''; put ',var_txfrom=''TX_FROM'''; put ',var_txto=''TX_TO'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_VALIDATIONS'''; put ',num_of_approvals_required=1'; put ',loadtype=''TXTEMPORAL'''; put ',buskey=''BASE_LIB BASE_DS BASE_COL RULE_TYPE'''; put ',notes=''Configuration of data quality rules in Editor component'''; put ',var_txfrom=''TX_FROM'''; put ',var_txto=''TX_TO'''; put ',post_edit_hook=''services/hooks/mpe_validations_postedit'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_DATADICTIONARY'''; put ',num_of_approvals_required=1'; put ',loadtype=''TXTEMPORAL'''; put ',buskey=''DD_TYPE DD_SOURCE'''; put ',notes=''Configuration of data dictionary'''; put ',var_txfrom=''TX_FROM'''; put ',var_txto=''TX_TO'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_EXCEL_CONFIG'''; put ',num_of_approvals_required=1'; put ',loadtype=''TXTEMPORAL'''; put ',buskey=''XL_LIBREF XL_TABLE XL_COLUMN'''; put ',notes=''Configuration of the excel import rules'''; put ',var_txfrom=''TX_FROM'''; put ',var_txto=''TX_TO'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_ROW_LEVEL_SECURITY'''; put ',num_of_approvals_required=1'; put ',loadtype=''TXTEMPORAL'''; put ',buskey=''RLS_RK'''; put ',notes=''Configuration of Row Level Security'''; put ',var_txfrom=''TX_FROM'''; put ',var_txto=''TX_TO'''; put ',rk_underlying=''RLS_SCOPE RLS_GROUP RLS_LIBREF RLS_TABLE RLS_GROUP_LOGIC '''; put '!!''RLS_SUBGROUP_LOGIC RLS_SUBGROUP_ID RLS_VARIABLE_NM RLS_OPERATOR_NM '''; put '!!''RLS_RAW_VALUE '''; put ',post_edit_hook=''services/hooks/mpe_row_level_security_postedit'''; put ';'; put 'insert into &lib..mpe_tables'; put 'set tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',libref="&lib"'; put ',dsn=''MPE_X_CATALOG-FC'''; put ',num_of_approvals_required=1'; put ',loadtype=''FORMAT_CAT'''; put ',buskey=''TYPE FMTNAME FMTROW'''; put ',notes=''Sample Format Catalog'''; put ';'; put '/* mpe_validations */'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_col="CLS_SCOPE"'; put ',rule_type=''CASE'''; put ',rule_value=''UPCASE'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_col="CLS_LIBREF"'; put ',rule_type=''CASE'''; put ',rule_value=''UPCASE'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_col="CLS_LIBREF"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/libraries_all"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_col="CLS_TABLE"'; put ',rule_type=''CASE'''; put ',rule_value=''UPCASE'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_col="CLS_TABLE"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/tables_all"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_col="CLS_VARIABLE_NM"'; put ',rule_type=''CASE'''; put ',rule_value=''UPCASE'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_col="CLS_VARIABLE_NM"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/columns_in_libds"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_col="CLS_ACTIVE"'; put ',rule_type=''MAXVAL'''; put ',rule_value=''1'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_col="CLS_HIDE"'; put ',rule_type=''MAXVAL'''; put ',rule_value=''1'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_COLUMN_LEVEL_SECURITY"'; put ',base_col="CLS_GROUP"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/sas_groups"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_ALERTS"'; put ',base_col="ALERT_LIB"'; put ',rule_type=''HARDSELECT_HOOK'''; put ',rule_value="services/validations/mpe_alerts.alert_lib"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_XLMAP_INFO"'; put ',base_col="XLMAP_ID"'; put ',rule_type=''CASE'''; put ',rule_value=''UPCASE'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_XLMAP_RULES"'; put ',base_col="XLMAP_ID"'; put ',rule_type=''CASE'''; put ',rule_value=''UPCASE'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="LIBREF"'; put ',rule_type=''CASE'''; put ',rule_value=''UPCASE'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="DSN"'; put ',rule_type=''CASE'''; put ',rule_value=''UPCASE'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="LIBREF"'; put ',rule_type=''NOTNULL'''; put ',rule_value='' '''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="DSN"'; put ',rule_type=''NOTNULL'''; put ',rule_value='' '''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="NUM_OF_APPROVALS_REQUIRED"'; put ',rule_type=''MINVAL'''; put ',rule_value=''1'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="BUSKEY"'; put ',rule_type=''CASE'''; put ',rule_value=''UPCASE'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="BUSKEY"'; put ',rule_type=''NOTNULL'''; put ',rule_value=" "'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="VAR_TXFROM"'; put ',rule_type=''CASE'''; put ',rule_value=''UPCASE'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="VAR_TXTO"'; put ',rule_type=''CASE'''; put ',rule_value=''UPCASE'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="VAR_BUSFROM"'; put ',rule_type=''CASE'''; put ',rule_value=''UPCASE'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="VAR_BUSTO"'; put ',rule_type=''CASE'''; put ',rule_value=''UPCASE'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_SECURITY"'; put ',base_col="LIBREF"'; put ',rule_type=''CASE'''; put ',rule_value="UPCASE"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="VAR_PROCESSED"'; put ',rule_type=''CASE'''; put ',rule_value=''UPCASE'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_SECURITY"'; put ',base_col="LIBREF"'; put ',rule_type=''HARDSELECT'''; put ',rule_value="&lib..MPE_TABLES.LIBREF"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_SECURITY"'; put ',base_col="DSN"'; put ',rule_type=''CASE'''; put ',rule_value="UPCASE"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_SECURITY"'; put ',base_col="DSN"'; put ',rule_type=''SOFTSELECT'''; put ',rule_value="&lib..MPE_TABLES.DSN"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_SECURITY"'; put ',base_col="SAS_GROUP"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/sas_groups"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_VALIDATIONS"'; put ',base_col="BASE_LIB"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/libraries_editable"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_VALIDATIONS"'; put ',base_col="BASE_DS"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/tables_editable"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_VALIDATIONS"'; put ',base_col="BASE_COL"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/columns_in_libds"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_VALIDATIONS"'; put ',base_col="RULE_ACTIVE"'; put ',rule_type=''MINVAL'''; put ',rule_value="0"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_VALIDATIONS"'; put ',base_col="RULE_ACTIVE"'; put ',rule_type=''MAXVAL'''; put ',rule_value="1"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_EXCEL_CONFIG"'; put ',base_col="XL_LIBREF"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/libraries_editable"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_EXCEL_CONFIG"'; put ',base_col="XL_TABLE"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/tables_editable"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_EXCEL_CONFIG"'; put ',base_col="XL_COLUMN"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/columns_in_libds"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="LIBREF"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/libraries_all"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="DSN"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/mpe_tables.dsn"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="VAR_TXFROM"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/columns_in_libds"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="VAR_TXTO"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/columns_in_libds"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="VAR_BUSFROM"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/columns_in_libds"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="VAR_BUSTO"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/columns_in_libds"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_TABLES"'; put ',base_col="VAR_PROCESSED"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/columns_in_libds"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_SELECTBOX"'; put ',base_col="SELECT_LIB"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/libraries_editable"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_SELECTBOX"'; put ',base_col="SELECT_DS"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/tables_editable"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_SELECTBOX"'; put ',base_col="BASE_COLUMN"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/columns_in_libds"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_col="RLS_GROUP"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/sas_groups"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_col="RLS_LIBREF"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/libraries_all"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_col="RLS_TABLE"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/tables_all"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_col="RLS_SUBGROUP_ID"'; put ',rule_type=''MINVAL'''; put ',rule_value=''0'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_ROW_LEVEL_SECURITY"'; put ',base_col="RLS_VARIABLE_NM"'; put ',rule_type=''SOFTSELECT_HOOK'''; put ',rule_value="services/validations/columns_in_libds"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put '/* test softselect on numeric var (should be ordered numerically) */'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_X_TEST"'; put ',base_col="SOME_BESTNUM"'; put ',rule_type=''SOFTSELECT'''; put ',rule_value="&lib..MPE_X_TEST.SOME_BESTNUM"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_X_TEST"'; put ',base_col="SOME_NUM"'; put ',rule_type=''HARDSELECT_HOOK'''; put ',rule_value="services/validations/mpe_x_test.some_num"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_EXCEL_CONFIG"'; put ',base_col="XL_ACTIVE"'; put ',rule_type=''MINVAL'''; put ',rule_value=''0'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_EXCEL_CONFIG"'; put ',base_col="XL_ACTIVE"'; put ',rule_type=''MAXVAL'''; put ',rule_value=''1'''; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..MPE_VALIDATIONS set'; put 'tx_from=0'; put ',base_lib="&lib"'; put ',base_ds="MPE_XLMAP_INFO"'; put ',base_col="XLMAP_ID"'; put ',rule_type=''SOFTSELECT'''; put ',rule_value="&lib..MPE_XLMAP_RULES.XLMAP_ID"'; put ',rule_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put '/**'; put '* MPE_X_TEST'; put '*/'; put 'insert into &lib..mpe_x_test'; put 'set primary_key_field=0'; put ',some_char=''this is dummy data'''; put ',some_dropdown=''Option 1'''; put ',some_num=42'; put ',some_date=42'; put ',some_datetime=42'; put ',some_time=42'; put ',some_shortnum=3'; put ',some_bestnum=44;'; put 'insert into &lib..mpe_x_test'; put 'set primary_key_field=1'; put ',some_char=''more dummy data'''; put ',some_dropdown=''Option 2'''; put ',some_num=42'; put ',some_date=42'; put ',some_datetime=42'; put ',some_time=422'; put ',some_shortnum=3'; put ',some_bestnum=44;'; put 'insert into &lib..mpe_x_test'; put 'set primary_key_field=2'; put ',some_char=''even more dummy data'''; put ',some_dropdown=''Option 3'''; put ',some_num=42'; put ',some_date=42'; put ',some_datetime=42'; put ',some_time=142'; put ',some_shortnum=3'; put ',some_bestnum=44;'; put 'insert into &lib..mpe_x_test'; put 'set primary_key_field=3'; put ',some_char=repeat(''It was a dark and stormy night. The wind was blowing'''; put '!!'' a gale! The captain said to his mate - mate, tell us a tale. And'''; put '!!'' this, is the tale he told: '',3)'; put ',some_dropdown=''Option 2'''; put ',some_num=1613.001'; put ',some_date=423'; put ',some_datetime=423'; put ',some_time=44'; put ',some_shortnum=3'; put ',some_bestnum=44;'; put 'insert into &lib..mpe_x_test'; put 'set primary_key_field=4'; put ',some_char=''if you can fill the unforgiving minute'''; put ',some_dropdown=''Option 1'''; put ',some_num=1613.001123456'; put ',some_date=4231'; put ',some_datetime=423123123'; put ',some_time=412'; put ',some_shortnum=3'; put ',some_bestnum=44;'; put '%do x=10 %to 500;'; put 'insert into &lib..mpe_x_test'; put 'set primary_key_field=10&x'; put ',some_char="&x bottles of beer on the wall"'; put ',some_dropdown=''Option 1'''; put ',some_num=ranuni(0)'; put ',some_date=round(ranuni(0)*1000,1)'; put ',some_datetime=round(ranuni(0)*50000,1)'; put ',some_time=round(ranuni(0)*100,1)'; put ',some_shortnum=round(ranuni(0)*100,1)'; put ',some_bestnum=round(ranuni(0)*100,1);'; put '%end;'; put '/* https://support.sas.com/resources/papers/proceedings/proceedings/sugi27/p056-27.pdf */'; put 'proc format library=&lib..mpe_x_catalog;'; put 'value otdate'; put '.Z = ''Some Zs'''; put '.N = ''Some 9s'''; put 'other = [date9.]'; put ';'; put 'invalue disc'; put '''ABC'' = 0.20'; put '''DEF'' = 0.25'; put '''XYZ'' = 0.00'; put 'other = 0.00'; put ';'; put 'invalue indate'; put '''00000000'' = .Z'; put '''99999999'' = .N'; put 'other = [yymmdd8.]'; put ';'; put 'value age(multilabel)'; put '20 - 29 = ''20 - 29'''; put '30 - 39 = ''30 - 39'''; put '40 - 49 = ''40 - 49'''; put '50 - 59 = ''50 - 59'''; put '60 - high = ''60 +++'''; put '20 - 35 = ''20 - 35'''; put '36 - 55 = ''36 - 55'''; put '55 - high = ''55 +++'''; put ';'; put '/* https://libguides.library.kent.edu/SAS/UserDefinedFormats */'; put 'VALUE $GENDERLABEL'; put '"M" = "Male"'; put '"F" = "Female"'; put ';'; put 'VALUE LIKERT_SEVEN'; put '1 = "Strongly Disagree"'; put '2 = "Disagree"'; put '3 = "Slightly Disagree"'; put '4 = "Neither Agree nor Disagree"'; put '5 = "Slightly Agree"'; put '6 = "Agree"'; put '7 = "Strongly Agree"'; put ';'; put 'VALUE LIKERT7_ELEVEN'; put '1,2,3 = "Disagree"'; put '4 = "Neither Agree nor Disagree"'; put '5,6,7 = "Agree"'; put ';'; put 'VALUE LIKERT7_SISTERS'; put '1-3 = "Disagree"'; put '4 = "Neither Agree nor Disagree"'; put '5-7 = "Agree"'; put ';'; put 'VALUE INCOME'; put 'LOW -< 20000 = "Low"'; put '20000 -< 60000 = "Middle"'; put '60000 - HIGH = "High"'; put ';'; put 'VALUE RACE'; put '1 = "White"'; put '2 = "Black"'; put 'OTHER = "Other"'; put ';'; put 'VALUE GENDERCODE'; put '0 = ''Male'''; put '1 = ''Female'';'; put 'VALUE ATHLETECODE'; put '0 = ''Non-athlete'''; put '1 = ''Athlete'';'; put 'VALUE SMOKINGCODE'; put '0 = ''Nonsmoker'''; put '1 = ''Past smoker'''; put '2 = ''Current smoker'';'; put '/* https://documentation.sas.com/doc/en/pgmsascdc/v_017/proc/p1upn25lbfo6mkn1wncu4dyh9q91.htm */'; put 'value $state'; put '''Delaware''=''DE'''; put '''Florida''=''FL'''; put '''Ohio''=''OH'';'; put 'value MYfmt'; put '/* Format dates prior to 31DEC2011 using only a year. */'; put 'low-''31DEC2011''d=[year4.]'; put '/* Format 2012 dates using the month and year. */'; put '''01jan2012''d-''31DEC12''d=[monyy7.]'; put '/* Format dates 01JAN2013 and beyond using the day, month, and year. */'; put '''01JAN2013''d-high=[date9.]'; put '/* Catch missing values. */'; put 'other=''n/a'';'; put 'value newfmt .=''N/A'' other=[12.1];'; put '/* https://www.lexjansen.com/nesug/nesug08/cc/cc14.pdf */'; put 'value $genderml (multilabel)'; put '''1''=''Male'''; put '''2''=''Female'''; put '''1'',''2'','' ''=''Total people'';'; put 'value agemla (multilabel)'; put '1-4=''Preschool'''; put '1-18=''Children'''; put '19-120=''Adults'';'; put 'value agemlb (multilabel)'; put '19-120=''Adults'''; put '1-18=''Children'''; put '1-4=''Preschool'';'; put 'value agemlc (multilabel notsorted)'; put '19-120=''Adults'''; put '1-18=''Children'''; put '1-4=''Preschool'';'; put '%mend mpe_makedata;'; put '/** @cond */'; put '%macro mf_existfeature(feature'; put ')/*/STORE SOURCE*/;'; put '%let feature=%upcase(&feature);'; put '%local platform;'; put '%let platform=%mf_getplatform();'; put '%if &feature= %then %do;'; put '%put No feature was requested for detection;'; put '%end;'; put '%else %if &feature=COLCONSTRAINTS %then %do;'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=PROCLUA %then %do;'; put '/* https://blogs.sas.com/content/sasdummy/2015/08/03/using-lua-within-your-sas-programs */'; put '%if &platform=SASVIYA %then 1;'; put '%else %if "&sysver"="9.2" or "&sysver"="9.3" %then 0;'; put '%else %if "&SYSVLONG" < "9.04.01M3" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=DBMS_MEMTYPE %then %do;'; put '/* does dbms_memtype exist in dictionary.tables? */'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=EXPORTXLS %then %do;'; put '/* is it possible to PROC EXPORT an excel file? */'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 1;'; put '%else %if %sysfunc(sysprod(SAS/ACCESS Interface to PC Files)) = 1 %then 1;'; put '%else 0;'; put '%end;'; put '%else %do;'; put '-1'; put '%put &sysmacroname: &feature not found;'; put '%end;'; put '%mend mf_existfeature;'; put '/** @endcond */'; put '%macro mpe_makedatamodel(lib=);'; put '%if &syscc ne 0 %then %do;'; put '%put syscc=&syscc exiting &sysmacroname;'; put '%return;'; put '%end;'; put '%local notnull;'; put '%if %mf_existfeature(COLCONSTRAINTS)=1 %then %let notnull=not null;'; put '%put &=notnull;'; put 'proc sql;'; put 'create table &lib..mpe_alerts('; put 'tx_from num format=datetime19.3,'; put 'alert_event char(20),'; put 'alert_lib char(8),'; put 'alert_ds char(32),'; put 'alert_user char(100) ,'; put 'tx_to num ¬null format=datetime19.3'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_alerts;'; put 'index create'; put 'pk_mpealerts=(tx_from alert_event alert_lib alert_ds alert_user)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_audit('; put 'load_ref char(36) label=''unique load reference'','; put 'libref char(8) label=''Library Reference (8 chars)'','; put 'dsn char(32) label=''Dataset Name (32 chars)'','; put 'key_hash char(32) label='; put '''MD5 Hash of primary key values (pipe seperated)'','; put 'tgtvar_nm char(32) label=''Target variable name (32 chars)'','; put 'move_type char(1) label=''Either (A)ppended, (D)eleted or (M)odified'','; put 'processed_dttm num format=E8601DT26.6 label=''Processed at timestamp'','; put 'is_pk num label=''Is Primary Key Field? (1/0)'','; put 'is_diff num label='; put '''Did value change? (1/0/-1). Always -1 for appends and deletes.'','; put 'tgtvar_type char(1) label=''Either (C)haracter or (N)umeric'','; put 'oldval_num num format=best32. label=''Old (numeric) value'','; put 'newval_num num format=best32. label=''New (numeric) value'','; put 'oldval_char char(32765) label=''Old (character) value'','; put 'newval_char char(32765) label=''New (character) value'''; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_audit;'; put 'index create'; put 'pk_mpe_audit=(load_ref libref dsn key_hash tgtvar_nm)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_column_level_security('; put 'tx_from num ¬null format=datetime19.3,'; put 'tx_to num ¬null format=datetime19.3,'; put 'CLS_SCOPE char(4) ¬null,'; put 'CLS_GROUP char(64) ¬null,'; put 'CLS_LIBREF char(8) ¬null,'; put 'CLS_TABLE char(32) ¬null,'; put 'CLS_VARIABLE_NM char(32) ¬null,'; put 'CLS_ACTIVE num ¬null,'; put 'CLS_HIDE num'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_column_level_security;'; put 'index create'; put 'pk_mpe_column_level_security='; put '(tx_to CLS_SCOPE CLS_GROUP CLS_LIBREF CLS_TABLE CLS_VARIABLE_NM)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_config('; put 'tx_from num ¬null format=datetime19.3'; put ',tx_to num ¬null format=datetime19.3'; put ',var_scope varchar(10) ¬null'; put ',var_name varchar(32) ¬null'; put ',var_value varchar(5000)'; put ',var_active num'; put ',var_desc varchar(300)'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_config;'; put 'index create'; put 'pk_mpe_config=(tx_to var_scope var_name)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_datacatalog_CATS('; put 'TX_FROM float ¬null format=datetime19.,'; put 'TX_TO float format=datetime19.,'; put 'libref char(8) label=''Library Name'','; put 'memname char(64) label=''Member Name'''; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_datacatalog_CATS;'; put 'index create'; put 'pk_mpe_datacatalog_CATS=(tx_to libref memname)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_datacatalog_libs('; put 'TX_FROM num ¬null format=datetime19.3,'; put 'TX_TO num ¬null format=datetime19.3,'; put 'libref char(8) label=''Library Ref'','; put 'engine char(32) label=''Library Engine'','; put 'libname char(256) format=$256. label=''Library Name'','; put 'paths char(8192) label=''Library Paths'','; put 'perms char(500) label=''Library Permissions (if BASE)'','; put 'owners char(500) label=''Library Owners (if BASE)'','; put 'schemas char(500) label=''Library Schemas (if DB)'','; put 'libid char(17) label=''LibraryId'''; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_datacatalog_libs;'; put 'index create'; put 'pk_mpe_datacatalog_libs=(libref tx_to)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_datacatalog_OBJS('; put 'TX_FROM num ¬null format=datetime19.,'; put 'TX_TO num ¬null format=datetime19.,'; put 'libref char(8) ¬null label=''Library Name'','; put 'memname char(64) ¬null label=''Member Name'','; put 'objname char(32) ¬null label=''Object Name'','; put 'objtype char(8) ¬null label=''Object Type'','; put 'objdesc char(256) label=''Object Description'','; put 'alias char(32) label=''Object Alias'''; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_datacatalog_OBJS;'; put 'index create'; put 'pk_mpe_datacatalog_OBJS=(libref memname objname objtype tx_to)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_datacatalog_TABS('; put 'TX_FROM num ¬null format=datetime19.3,'; put 'TX_TO num ¬null format=datetime19.3,'; put 'libref char(8) label=''Library Name'','; put 'dsn char(64) label=''Member Name'','; put 'memtype char(8) label=''Member Type'','; put 'dbms_memtype char(32) label=''DBMS Member Type'','; put 'memlabel char(512) label=''Data Set Label'','; put 'typemem char(8) label=''Data Set Type'','; put 'nvar num label=''Number of Variables'','; put 'compress char(8) label=''Compression Routine'','; put 'pk_fields char(512)'; put 'label=''Primary Key Fields - in a constraint being both Unique and Not Null'''; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_datacatalog_TABS;'; put 'index create'; put 'pk_mpe_datacatalog_TABS=(libref dsn tx_to)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_datacatalog_vars('; put 'TX_FROM num ¬null format=datetime19.3,'; put 'TX_TO num ¬null format=datetime19.3,'; put 'libref char(8) label=''Library Name'','; put 'dsn char(64) label=''Table Name'','; put 'name char(64) label=''Column Name'','; put 'memtype char(8) label=''Member Type'','; put 'type char(16) label=''Column Type'','; put 'length num label=''Column Length'','; put 'varnum num label=''Column Number in Table'','; put 'label char(512) label=''Column Label'','; put 'format char(49) label=''Column Format'','; put 'idxusage char(9) label=''Column Index Type'','; put 'notnull char(3) label=''Not NULL?'','; put 'pk_ind num label=''Primary Key Indicator (1=Primary Key field)'''; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_datacatalog_vars;'; put 'index create'; put 'pk_mpe_datacatalog_vars=(libref dsn name tx_to)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_datastatus_CATS('; put 'TX_FROM float format=datetime19.,'; put 'TX_TO float format=datetime19.,'; put 'libref char(8) label=''Library Name'','; put 'memname char(64) label=''Member Name'','; put 'nobjs num ¬null label=''Number of objects'','; put 'created num ¬null format=DATETIME. label=''Date Created'','; put 'modified num format=DATETIME. label=''Date Modified'''; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_datastatus_CATS;'; put 'index create'; put 'pk_mpe_datastatus_cats=(libref memname tx_to)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_datastatus_libs('; put 'TX_FROM num ¬null format=datetime19.3,'; put 'TX_TO num ¬null format=datetime19.3,'; put 'libref char(8) label=''Library Name'','; put 'libsize num format=SIZEKMG. label=''Size of library'','; put 'table_cnt num label=''Number of Tables'','; put 'catalog_cnt num label=''Number of Catalogs'''; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_datastatus_libs;'; put 'index create'; put 'pk_mpe_datastatus_libs=(libref tx_to)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_datastatus_OBJS('; put 'TX_FROM float ¬null format=datetime19.,'; put 'TX_TO float ¬null format=datetime19.,'; put 'libref char(8) label=''Library Name'','; put 'memname char(64) label=''Member Name'','; put 'objname char(32) label=''Object Name'','; put 'objtype char(8) label=''Object Type'','; put 'created num ¬null format=DATETIME. label=''Date Created'','; put 'modified num format=DATETIME. label=''Date Modified'','; put 'level num label=''Library Concatenation Level'''; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_datastatus_OBJS;'; put 'index create'; put 'pk_mpe_datastatus_OBJS=(libref memname objname objtype tx_to)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_datastatus_tabs('; put 'TX_FROM num ¬null format=datetime19.3,'; put 'TX_TO num ¬null format=datetime19.3,'; put 'libref char(8) label=''Library Name'','; put 'dsn char(64) label=''Member Name'','; put 'filesize num format=SIZEKMG. label=''Size of file'','; put 'crdate num format=DATETIME. label=''Date Created'','; put 'modate num format=DATETIME. label=''Date Modified'','; put 'nobs num label=''Number of Physical (Actual, inc. deleted) Observations'''; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_datastatus_tabs;'; put 'index create'; put 'pk_mpe_datastatus_tabs=(libref dsn tx_to)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_datadictionary'; put '('; put 'TX_FROM num ¬null format=datetime19.3,'; put 'TX_TO num ¬null format=datetime19.3,'; put 'DD_TYPE char(16),'; put 'DD_SOURCE char(1024),'; put 'DD_SHORTDESC char(256),'; put 'DD_LONGDESC char(32767),'; put 'DD_OWNER char(128),'; put 'DD_RESPONSIBLE char(128),'; put 'DD_SENSITIVITY char(64)'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_datadictionary;'; put 'index create'; put 'pk_mpe_datadictionary=(tx_to dd_type dd_source)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_dataloads('; put 'libref varchar(8) ¬null,'; put 'dsn varchar(32) ¬null,'; put 'etlsource varchar(100) ¬null,'; put 'loadtype varchar(20) ¬null,'; put 'changed_records int,'; put 'new_records int,'; put 'deleted_records int,'; put 'duration num,'; put 'user_nm varchar(50) ¬null,'; put 'processed_dttm num format=datetime19.3,'; put 'mac_ver varchar(5)'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_dataloads;'; put 'index create'; put 'pk_mpe_dataloads=(processed_dttm libref dsn etlsource)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_emails('; put 'tx_from num ¬null format=datetime19.3,'; put 'tx_to num ¬null format=datetime19.3,'; put 'user_name char(50) ¬null,'; put 'user_displayname char(100),'; put 'user_email char(100) ¬null'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_emails;'; put 'index create'; put 'pk_mpe_emails=(tx_to user_name)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_excel_config('; put 'tx_from num ¬null format=datetime19.3,'; put 'tx_to num ¬null format=datetime19.3,'; put 'xl_libref char(8),'; put 'xl_table char(32),'; put 'xl_column char(32),'; put 'xl_rule char(32),'; put 'xl_active num'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_excel_config;'; put 'index create'; put 'pk_mpe_excel_config=(tx_to xl_libref xl_table xl_column)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..MPE_XLMAP_DATA('; put 'LOAD_REF char(32) ¬null,'; put 'XLMAP_ID char(32) ¬null,'; put 'XLMAP_RANGE_ID char(32) ¬null,'; put 'ROW_NO num ¬null,'; put 'COL_NO num ¬null,'; put 'VALUE_TXT char(4000)'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify MPE_XLMAP_DATA;'; put 'index create'; put 'pk_MPE_XLMAP_DATA=(load_ref xlmap_id xlmap_range_id row_no col_no)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_xlmap_info('; put 'tx_from num ¬null,'; put 'tx_to num ¬null,'; put 'XLMAP_ID char(32) ¬null,'; put 'XLMAP_DESCRIPTION char(1000) ¬null,'; put 'XLMAP_TARGETLIBDS char(41) ¬null'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_xlmap_info;'; put 'index create'; put 'pk_mpe_xlmap_info=(tx_to xlmap_id)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_xlmap_rules('; put 'tx_from num ¬null,'; put 'tx_to num ¬null,'; put 'XLMAP_ID char(32) ¬null,'; put 'XLMAP_RANGE_ID char(32) ¬null,'; put 'XLMAP_SHEET char(32) ¬null,'; put 'XLMAP_START char(1000) ¬null,'; put 'XLMAP_FINISH char(1000)'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_xlmap_rules;'; put 'index create'; put 'pk_mpe_xlmap_rules=(tx_to xlmap_id xlmap_range_id)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_filteranytable('; put 'filter_rk num ¬null,'; put 'filter_hash char(32) ¬null,'; put 'filter_table char(41) ¬null,'; put 'processed_dttm num ¬null format=datetime19.'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_filteranytable;'; put 'index create filter_rk /nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_filtersource('; put 'filter_hash char(32) ¬null,'; put 'filter_line num ¬null,'; put 'group_logic char(3) ¬null,'; put 'subgroup_logic char(3) ¬null,'; put 'subgroup_id num ¬null,'; put 'variable_nm varchar(32) ¬null,'; put 'operator_nm varchar(12) ¬null,'; put 'raw_value varchar(4000) ¬null,'; put 'processed_dttm num ¬null format=datetime19.'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_filtersource;'; put 'index create'; put 'pk_mpe_filtersource=(filter_hash filter_line)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_groups('; put 'tx_from num ¬null format=datetime19.3,'; put 'tx_to num ¬null format=datetime19.3,'; put 'group_name char(100) ¬null,'; put 'user_name char(50) ¬null,'; put 'group_desc char(256)'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_groups;'; put 'index create'; put 'pk_mpe_groups=(tx_to group_name user_name)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_lineage_cols'; put '('; put 'col_id char(32),'; put 'direction char(1),'; put 'sourcecoluri char(256),'; put 'map_type char(256),'; put 'map_transform char(256),'; put 'jobname char(256),'; put 'sourcetablename char(256),'; put 'sourcecolname char(256),'; put 'targettablename char(256),'; put 'targetcolname char(256),'; put 'targetcoluri char(256),'; put 'Derived_Rule char(500),'; put 'level int,'; put 'modified_dttm num format=datetime19.3,'; put 'modified_by char(64)'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_lineage_cols;'; put 'index create'; put 'pk_mpe_lineage_cols=(col_id direction sourcecoluri targetcoluri map_type map_transform)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..MPE_LINEAGE_TABS'; put '('; put 'tx_from num ¬null format=datetime19.3,'; put 'jobid char(17),'; put 'srctableid char(17),'; put 'tgttableid char(17),'; put 'jobname char(128),'; put 'srctabletype char(16),'; put 'srctablename char(64),'; put 'srclibref char(8),'; put 'tgttabletype char(16),'; put 'tgttablename char(64),'; put 'tgtlibref char(8),'; put 'tx_to num ¬null format=datetime19.3'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_lineage_tabs;'; put 'index create'; put 'pk_mpe_lineage_tabs=(tx_to jobid srctableid tgttableid)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_loads('; put 'csv_dir char(255),'; put 'user_nm char(50) ,'; put 'status char(15) ,'; put 'duration num ,'; put 'processed_dttm num format=datetime19.3,'; put 'reason_txt char(2048) ,'; put 'approvals char(64)'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_loads;'; put 'index create csv_dir /nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_lockanytable('; put 'lock_lib varchar(8) ¬null ,'; put 'lock_ds varchar(32) ¬null,'; put 'lock_status_cd varchar(10) ¬null,'; put 'lock_user_nm varchar(100) ¬null ,'; put 'lock_ref varchar(200),'; put 'lock_pid varchar(10),'; put 'lock_start_dttm num format=E8601DT26.6,'; put 'lock_end_dttm num format=E8601DT26.6'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_lockanytable;'; put 'index create'; put 'pk_mpe_lockanytable=(lock_lib lock_ds)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_maxkeyvalues('; put 'keytable varchar(41) label=''Base table in libref.dataset format'','; put 'keycolumn char(32) format=$32.'; put 'label=''The Surrogate / Retained key field containing the key values.'','; put 'max_key num label='; put '''Integer value representing current max RK or SK value in the KEYTABLE'','; put 'processed_dttm num format=E8601DT26.6'; put 'label=''Datetime this value was last updated'''; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_maxkeyvalues;'; put 'index create keytable /nomiss unique;'; put 'quit;'; put '/* no PK defined as it is a transaction table */'; put 'proc sql;'; put 'create table &lib..mpe_requests('; put 'request_dttm num ¬null format=datetime19.,'; put 'request_user char(64) ¬null,'; put 'request_service char(64) ¬null,'; put 'request_params char(128)'; put ');'; put 'proc sql;'; put 'create table &lib..mpe_review('; put 'table_id varchar(32) ¬null,'; put 'reviewed_by_nm varchar(100) ¬null,'; put 'base_table varchar(41) ¬null,'; put 'review_status_id varchar(10) ¬null,'; put 'reviewed_on_dttm num ¬null format=datetime19.3,'; put 'review_reason_txt varchar(400)'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_review;'; put 'index create'; put 'pk_mpe_review=(table_id reviewed_by_nm)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_row_level_security('; put 'tx_from num ¬null format=datetime19.3,'; put 'tx_to num ¬null format=datetime19.3,'; put 'RLS_RK num ¬null,'; put 'RLS_SCOPE char(8) ¬null,'; put 'RLS_GROUP char(128) ¬null,'; put 'RLS_LIBREF char(8) ¬null,'; put 'RLS_TABLE char(32) ¬null,'; put 'RLS_GROUP_LOGIC char(3) ¬null,'; put 'RLS_SUBGROUP_LOGIC char(3) ¬null,'; put 'RLS_SUBGROUP_ID num ¬null,'; put 'RLS_VARIABLE_NM varchar(32) ¬null,'; put 'RLS_OPERATOR_NM varchar(12) ¬null,'; put 'RLS_RAW_VALUE varchar(4000) ¬null,'; put 'RLS_ACTIVE num ¬null'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_row_level_security;'; put 'index create'; put 'pk_mpe_row_level_security=(tx_to RLS_RK)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_security('; put 'tx_from num ¬null format=datetime19.3,'; put 'tx_to num ¬null format=datetime19.3,'; put 'libref char(8) ¬null,'; put 'dsn char(32) ¬null,'; put 'access_level char(10) ¬null,'; put 'sas_group char(100) ¬null'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_security;'; put 'index create'; put 'pk_mpe_security=(tx_to libref dsn access_level sas_group)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_selectbox('; put 'ver_from_dttm num ¬null format=datetime19.3,/* timestamp for versioning*/'; put 'ver_to_dttm num ¬null format=datetime19.3, /* timestamp for versioning */'; put 'selectbox_rk num ¬null, /* surrogate key */'; put 'select_lib varchar(17) ¬null, /* libref (big enough for uri)*/'; put 'select_ds varchar(32) ¬null,'; put 'base_column varchar(36) ¬null, /* variable name against which to apply selectbox */'; put 'selectbox_value varchar(500) ¬null, /* selectbox value */'; put 'selectbox_order num , /* optional ordering (1 comes before 2) */'; put 'selectbox_type varchar(32) /* column type (blank for default, else'; put 'sas or js to indicate relevant system functions)*/'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_selectbox;'; put 'index create'; put 'pk_mpe_selectbox=(ver_to_dttm selectbox_rk)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_signoffs('; put 'tech_from_dttm num ¬null format=datetime19.3,'; put 'tech_to_dttm num ¬null format=datetime19.3,'; put 'signoff_table varchar(50) ¬null,'; put 'signoff_section_rk num ¬null,'; put 'signoff_version_rk num ¬null,'; put 'signoff_name varchar(100) ¬null'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_signoffs;'; put 'index create'; put 'pk_mpe_signoffs=(tech_to_dttm signoff_table signoff_section_rk)'; put '/nomiss unique;'; put 'quit;'; put '/* mpe_submit */'; put 'proc sql;'; put 'create table &lib..mpe_submit('; put 'table_id varchar(32) ¬null,'; put 'submit_status_cd varchar(10) ¬null,'; put 'base_lib char(8) ¬null,'; put 'base_ds char(32) ¬null,'; put 'submitted_by_nm varchar(100) ¬null,'; put 'submitted_on_dttm num ¬null format=datetime19.3,'; put 'submitted_reason_txt varchar(400),'; put 'input_obs num,'; put 'input_vars num,'; put 'num_of_approvals_required num ¬null ,'; put 'num_of_approvals_remaining num ¬null ,'; put 'reviewed_by_nm char(100),'; put 'reviewed_on_dttm num'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_submit;'; put 'index create table_id /nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_tables('; put 'tx_from num ¬null format=datetime19.3,'; put 'tx_to num ¬null format=datetime19.3,'; put 'libref char(8) ¬null,'; put 'dsn char(32) ¬null,'; put 'num_of_approvals_required int,'; put 'loadtype char(12) ,'; put 'buskey char(1000) ,'; put 'var_txfrom char(32) ,'; put 'var_txto char(32) ,'; put 'var_busfrom char(32) ,'; put 'var_busto char(32) ,'; put 'var_processed char(32) ,'; put 'close_vars varchar(500),'; put 'pre_edit_hook char(200),'; put 'post_edit_hook char(200),'; put 'pre_approve_hook char(200) ,'; put 'post_approve_hook char(200) ,'; put 'signoff_cols varchar(500),'; put 'signoff_hook varchar(200),'; put 'notes char(1000) ,'; put 'rk_underlying char(1000) ,'; put 'audit_libds char(41)'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_tables;'; put 'index create'; put 'pk_mpe_tables=(tx_to libref dsn)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_users('; put 'user_id char(50) ¬null,'; put 'last_seen_dt num ¬null format=date9.,'; put 'registered_dt num ¬null format=date9.'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_users;'; put 'index create user_id /nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..MPE_VALIDATIONS'; put '('; put 'TX_FROM num ¬null format=datetime19.3,'; put 'BASE_LIB varchar(8),'; put 'BASE_DS varchar(32),'; put 'BASE_COL varchar(32),'; put 'RULE_TYPE varchar(32),'; put 'RULE_VALUE varchar(128),'; put 'RULE_ACTIVE num ,'; put 'TX_TO num ¬null format=datetime19.3'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_validations;'; put 'index create'; put 'pk_mpe_validations=(tx_from base_lib base_ds base_col rule_type)'; put '/nomiss unique;'; put 'quit;'; put 'proc sql;'; put 'create table &lib..mpe_x_test('; put 'primary_key_field num ¬null,'; put 'some_char char(32767) ,'; put 'some_dropdown char(128),'; put 'some_num num ,'; put 'some_date num format=date9.,'; put 'some_datetime num format=datetime19. informat=ANYDTDTM19.,'; put 'some_time num format=time8.,'; put 'some_shortnum num length=4,'; put 'some_bestnum num format=best.'; put ');quit;'; put 'proc datasets lib=&lib noprint;'; put 'modify mpe_x_test;'; put 'index create primary_key_field /nomiss unique;'; put 'quit;'; put '%mend mpe_makedatamodel;'; put '%macro mpe_makesampledata(outlib=);'; put '%if &syscc ne 0 %then %do;'; put '%put syscc=&syscc exiting &sysmacroname;'; put '%return;'; put '%end;'; put '%if &syssite ne 70221618 and &syssite ne 70253615 %then %do;'; put '%put syssite=&syssite, exiting &sysmacroname;'; put '%return;'; put '%end;'; put 'data &outlib..class(index=(name /unique));'; put 'set sashelp.class;'; put 'run;'; put 'data &outlib..cars(index=(carspk=(make model drivetrain) /unique));'; put 'set sashelp.cars;'; put 'run;'; put 'data &outlib..springs(index=(springspk=(name area latitude) /unique));'; put 'set sashelp.springs;'; put 'run;'; put 'data &outlib..fmt_checks;;'; put 'pk=1; E8601DA=date();'; put 'format E8601DA E8601DA10.;'; put 'run;'; put 'data append;'; put 'if 0 then set &dc_libref..mpe_tables;'; put 'TX_FROM=0;'; put 'TX_TO=''31DEC9999:23:59:59''dt;'; put 'LIBREF=%upcase("&outlib");'; put 'LOADTYPE=''UPDATE'';'; put 'NUM_OF_APPROVALS_REQUIRED=1;'; put 'DSN=''SPRINGS''; BUSKEY=''NAME AREA LATITUDE''; output;'; put 'DSN=''CARS''; BUSKEY=''MAKE MODEL DRIVETRAIN''; output;'; put 'DSN=''CLASS''; BUSKEY=''NAME''; output;'; put 'DSN=''FMT_CHECKS''; BUSKEY=''PK''; output;'; put 'run;'; put 'proc append base=&dc_libref..MPE_TABLES data=&syslast;'; put 'run;'; put '/**'; put '* DC data extra'; put '*/'; put '%local lib;'; put '%let lib=&dc_libref;'; put 'proc sql;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=4'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-int-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_TABLES"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=0'; put ',RLS_VARIABLE_NM=''NUM_OF_APPROVALS_REQUIRED'''; put ',RLS_OPERATOR_NM=''>'''; put ',RLS_RAW_VALUE=''0'''; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=5'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-int-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=1'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=6'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-int-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=1'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'',''N/A3'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=7'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-int-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=2'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=8'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-int-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=3'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=9'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-int-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=4'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=10'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-int-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=5'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'',''N/A3'',''N/A4'',''N/A5'',''N/A6'',''N/A7'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=11'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-int-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=6'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'',''N/A3'',''N/A4'',''N/A5'',''N/A6'',''N/A7'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=12'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-int-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=7'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'',''N/A3'',''N/A4'',''N/A5'',''N/A6'',''N/A7'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=13'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=5'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-ext-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=1'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=14'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=6'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-ext-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=1'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'',''N/A3'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=15'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=7'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-ext-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=2'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=16'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=8'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-ext-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=3'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=17'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=9'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-ext-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=4'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=18'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=10'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-ext-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=5'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'',''N/A3'',''N/A4'',''N/A5'',''N/A6'',''N/A7'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=19'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-ext-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=6'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'',''N/A3'',''N/A4'',''N/A5'',''N/A6'',''N/A7'')"'; put ',RLS_ACTIVE=1;'; put 'insert into &lib..mpe_row_level_security set'; put 'tx_from=0'; put ',tx_to=''31DEC5999:23:59:59''dt'; put ',RLS_RK=20'; put ',RLS_SCOPE=''ALL'''; put ',RLS_GROUP=''sec-sas9-prd-ext-sasplatform-300114sasjs'''; put ',RLS_LIBREF="&lib."'; put ',RLS_TABLE="MPE_ROW_LEVEL_SECURITY"'; put ',RLS_GROUP_LOGIC=''AND'''; put ',RLS_SUBGROUP_LOGIC=''OR'''; put ',RLS_SUBGROUP_ID=7'; put ',RLS_VARIABLE_NM=''RLS_GROUP_LOGIC'''; put ',RLS_OPERATOR_NM=''NOT IN'''; put ',RLS_RAW_VALUE="(''N/A1'',''N/A2'',''N/A3'',''N/A4'',''N/A5'',''N/A6'',''N/A7'')"'; put ',RLS_ACTIVE=1;'; put '/** create excel config */'; put 'insert into &lib..MPE_EXCEL_CONFIG set'; put 'tx_from=0'; put ',xl_libref="&lib"'; put ',xl_table="MPE_DATADICTIONARY"'; put ',xl_column="DD_LONGDESC"'; put ',xl_rule="FORMULA"'; put ',xl_active=1'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put '/** mpe_security table */'; put 'insert into &lib..mpe_security set'; put 'tx_from=0'; put ',libref="*ALL*"'; put ',dsn="*ALL*"'; put ',access_level="APPROVE"'; put ',sas_group="303001.DataController"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'insert into &lib..mpe_security set'; put 'tx_from=0'; put ',libref="*ALL*"'; put ',dsn="*ALL*"'; put ',access_level="EDIT"'; put ',sas_group="303001.DataController"'; put ',tx_to=''31DEC5999:23:59:59''dt;'; put 'data append;'; put 'if 0 then set &dc_libref..mpe_tables;'; put 'TX_FROM=0;'; put 'TX_TO=''31DEC9999:23:59:59''dt;'; put 'LIBREF=%upcase("&dc_libref");'; put 'LOADTYPE=''UPDATE'';'; put 'NUM_OF_APPROVALS_REQUIRED=1;'; put 'DSN=''MPE_USERS''; BUSKEY=''USER_ID''; output;'; put 'run;'; put 'proc append base=&dc_libref..MPE_TABLES data=&syslast;'; put 'run;'; put '%mend mpe_makesampledata;'; put '%macro mf_mkdir(dir'; put ')/*/STORE SOURCE*/;'; put '%local lastchar child parent;'; put '%let lastchar = %substr(&dir, %length(&dir));'; put '%if (%bquote(&lastchar) eq %str(:)) %then %do;'; put '/* Cannot create drive mappings */'; put '%return;'; put '%end;'; put '%if (%bquote(&lastchar)=%str(/)) or (%bquote(&lastchar)=%str(\)) %then %do;'; put '/* last char is a slash */'; put '%if (%length(&dir) eq 1) %then %do;'; put '/* one single slash - root location is assumed to exist */'; put '%return;'; put '%end;'; put '%else %do;'; put '/* strip last slash */'; put '%let dir = %substr(&dir, 1, %length(&dir)-1);'; put '%end;'; put '%end;'; put '%if (%sysfunc(fileexist(%bquote(&dir))) = 0) %then %do;'; put '/* directory does not exist so prepare to create */'; put '/* first get the childmost directory */'; put '%let child = %scan(&dir, -1, %str(/\:));'; put '/*'; put 'If child name = path name then there are no parents to create. Else'; put 'they must be recursively scanned.'; put '*/'; put '%if (%length(&dir) gt %length(&child)) %then %do;'; put '%let parent = %substr(&dir, 1, %length(&dir)-%length(&child));'; put '%mf_mkdir(&parent)'; put '%end;'; put '/*'; put 'Now create the directory. Complain loudly of any errs.'; put '*/'; put '%let dname = %sysfunc(dcreate(&child, &parent));'; put '%if (%bquote(&dname) eq ) %then %do;'; put '%put %str(ERR)OR: could not create &parent + &child;'; put '%abort cancel;'; put '%end;'; put '%else %do;'; put '%put Directory created: &dir;'; put '%end;'; put '%end;'; put '/* exit quietly if directory did exist.*/'; put '%mend mf_mkdir;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mc,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mv_deletejes(path='; put ',name='; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put '%mp_abort(iftrue=(%mf_isblank(&path)=1)'; put ',mac=&sysmacroname'; put ',msg=%str(path value must be provided)'; put ')'; put '%mp_abort(iftrue=(%mf_isblank(&name)=1)'; put ',mac=&sysmacroname'; put ',msg=%str(name value must be provided)'; put ')'; put '%mp_abort(iftrue=(%length(&path)=1)'; put ',mac=&sysmacroname'; put ',msg=%str(path value must be provided)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetch the members of the folder to get the uri */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/folders/folders/@item?path=&path";'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put &sysmacroname: Folder &path NOT FOUND - nothing to delete!;'; put '%return;'; put '%end;'; put '%else %if &SYS_PROCHTTP_STATUS_CODE ne 200 %then %do;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%mp_abort(mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put '/* grab the follow on link */'; put '%local libref1;'; put '%let libref1=%mf_getuniquelibref();'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data _null_;'; put 'set &libref1..links;'; put 'if rel=''members'' then call symputx(''mref'',quote("&base_uri"!!trim(href)),''l'');'; put 'run;'; put '/* get the children */'; put '%local fname1a;'; put '%let fname1a=%mf_getuniquefileref();'; put 'proc http method=''GET'' out=&fname1a &oauth_bearer'; put 'url=%unquote(%superq(mref));'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put '%if &SYS_PROCHTTP_STATUS_CODE ne 200 %then %do;'; put '%put &=sysmacroname &=SYS_PROCHTTP_STATUS_CODE &=SYS_PROCHTTP_STATUS_PHRASE;'; put '%end;'; put '%local libref1a;'; put '%let libref1a=%mf_getuniquelibref();'; put 'libname &libref1a JSON fileref=&fname1a;'; put '%local uri found;'; put '%let found=0;'; put '/* %put Getting object uri from &libref1a..items; */'; put 'data _null_;'; put 'length contenttype name $1000;'; put 'set &libref1a..items;'; put 'if contenttype=''jobDefinition'' and upcase(name)="%upcase(&name)" then do;'; put 'call symputx(''uri'',cats("&base_uri",uri),''l'');'; put 'call symputx(''found'',1,''l'');'; put 'end;'; put 'run;'; put '%if &found=0 %then %do;'; put '%put NOTE:;%put NOTE- &sysmacroname: &path/&name NOT FOUND;%put NOTE- ;'; put '%return;'; put '%end;'; put 'proc http method="DELETE" url="&uri" &oauth_bearer;'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="*/*";/**/'; put 'run;'; put '%if &SYS_PROCHTTP_STATUS_CODE ne 204 %then %do;'; put 'data _null_; infile &fname2; input; putlog _infile_;run;'; put '%mp_abort(mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put '%else %put &sysmacroname: &path/&name deleted;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put 'filename &fname1a clear;'; put 'libname &libref1a clear;'; put '%mend mv_deletejes;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief self destructing setup service'; put '@details Will create the database and perform config activities'; put '

SAS Macros

'; put '@li mf_getapploc.sas'; put '@li mf_mkdir.sas'; put '@li mf_trimstr.sas'; put '@li mp_abort.sas'; put '@li mpe_getvars.sas'; put '@li mpe_makedata.sas'; put '@li mpe_makedatamodel.sas'; put '@li mpe_makesampledata.sas'; put '@li mv_deletejes.sas'; put '@version 3.5'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%global dcpath ADMIN ;'; put '%webout(FETCH)'; put '/* enable vars to be passed as url params */'; put '%let exist=%sysfunc(exist(work.fromjs));'; put '%let inds=%sysfunc(ifc(&exist=1,fromjs,_null_));'; put 'data _null_;'; put 'set &inds;'; put 'call symputx(''dcpath'',dcpath);'; put 'call symputx(''ADMIN'',ADMIN);'; put 'run;'; put 'options noquotelenmax;'; put '%let dclib=%upcase(VIYA%substr(%sysevalf(%sysfunc(datetime())/60),3,4));'; put '%let dclibname=Data Controller (&dclib);'; put '%let DC_LIBREF=&dclib;'; put '%let work=%sysfunc(pathname(work));'; put '%let dcpath=%mf_trimstr(&dcpath,/)/&dclib;'; put '%put &=sysuserid;'; put '%put &=dcpath;'; put '%put &=admin;'; put '%mf_mkdir(&dcpath)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Unable to create &dcpath using &sysuserid)'; put ')'; put '%mf_mkdir(&dcpath/secret)'; put '%mf_mkdir(&dcpath/dc_staging)'; put '/* check we have physical permissions to the DCLIB folder */'; put 'data _null_;'; put 'putlog "dcpath=&dcpath/permTest.txt";'; put 'putlog "sysuserid=&sysuserid";'; put 'data _null_;'; put 'file "&dcpath/permTest.txt";'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(User &sysuserid does not have WRITE permissions to: &dcpath )'; put ')'; put 'filename delfile "&dcpath/permTest.txt";'; put 'data _null_;'; put 'rc=fdelete(''delfile'');'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(User &sysuserid could create (but not delete) &dcpath/permTest.txt )'; put ')'; put 'libname &dclib "&dcpath";'; put '%global admin;'; put '%let admin=%sysfunc(coalescec(&admin,All Users));'; put '%mpe_makedatamodel(lib=&dclib)'; put '%mpe_makedata(lib=&dclib,mpeadmins=&admin,path=%str(&dcpath))'; put '%mp_abort(iftrue=(&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Err during &dclib build)'; put ')'; put '/* sample data library */'; put '%mf_mkdir(&dcpath/dc_demo)'; put 'libname dcdemo "&dcpath/dc_demo";'; put '%mpe_makesampledata(outlib=DCDEMO)'; put '%mp_abort(iftrue=(&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Err during demo data build)'; put ')'; put '/* the DC precode is stored in the root of the project */'; put '%let root=%mf_getapploc(&_program)/services;'; put '%put &=root;'; put 'filename jobout filesrvc folderpath="&root";'; put 'data _null_;'; put 'file jobout(''settings.sas'');'; put 'put ''/* these values are ignored if DC_LIBREF was declared in autoexec */'';'; put 'put '' '';'; put 'put ''%global DC_LIBREF dc_admin_group dc_staging_area ;'';'; put 'put ''/* This library (libref) contains the control datasets for DC */'';'; put 'put ''/* If a different libref must be used, configure it below */'';'; put 'put ''%let DC_LIBREF='' "&dclib;";'; put 'put '' '';'; put 'put "libname &dclib ''&dcpath'' ;";'; put 'put '' '';'; put 'put ''/* This group has unrestricted access to Data Controller */'';'; put 'put ''%let dc_admin_group='' "&admin;";'; put 'put '' '';'; put 'put ''/* This physical location is used for staging data and audit history */'';'; put 'put ''%let dc_staging_area='' "&dcpath/dc_staging;";'; put 'put '' '';'; put 'if &syssite in (70221618,70253615) then do;'; put 'put "libname dcdemo ''&dcpath/dc_demo'';";'; put 'end;'; put 'run;'; put '/* create demo data'; put 'cas dcsession;'; put 'caslib _all_ assign;'; put 'caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic GLOBAL;'; put 'proc casutil;'; put 'LOAD DATA=dcdemo.cars'; put 'CASOUT="cars"'; put 'OUTCASLIB="casmusic" PROMOTE ;'; put 'run;'; put '*/'; put '/*'; put 'cas mysess;'; put 'caslib _all_ assign;'; put 'data casmusic.artists(promote=yes);'; put 'length name varchar(30);'; put 'do tracks=1 to 100;'; put 'name=''Phil Collins''!!cats(tracks);'; put 'output;'; put 'end;'; put 'run;'; put '*/'; put '/*'; put '%let url=http://millionsongdataset.com/sites/default/files/AdditionalFiles%trim('; put ')/unique_tracks.txt;'; put 'filename test url "&url" lrecl=3000 ;'; put 'proc sql;'; put 'drop table casmusic.tunes;'; put 'data tracks;'; put 'infile test dlmstr='''' dsd end=lastobs;'; put 'input track_id:$32. song_id:$32. artist_nm:$128. title:$256.;'; put 'output;'; put 'if lastobs then do;'; put 'track_id=''dummyrecords'';'; put 'title=''none'';'; put 'artist_nm=''none'';'; put 'do x=1 to 4000000;'; put 'drop x;'; put 'song_id=cats(x);'; put 'output;'; put 'end;'; put 'stop;'; put 'end;'; put 'run;'; put 'proc casutil;'; put 'LOAD DATA=tracks'; put 'CASOUT="tunes"'; put 'OUTCASLIB="casmusic" PROMOTE ;'; put 'run;'; put '/*'; put 'data append;'; put 'if 0 then set &dclib..MPE_TABLES;'; put 'libref="CASMUSIC";'; put 'dsn=''TUNES'';'; put 'num_of_approvals_required=1;'; put 'loadtype=''UPDATE'';'; put 'buskey=''TRACK_ID SONG_ID'';'; put 'tx_from=0;'; put 'tx_to=''31DEC9999:23:59:59''dt;'; put 'output;'; put 'dsn=''ARTISTS'';'; put 'buskey=''NAME'';'; put 'output;'; put 'run;'; put 'proc append base=&dclib..MPE_tABLES data=append;'; put 'run;'; put '*/'; put '%mp_abort(iftrue=(&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Err during settings job creation)'; put ')'; put '%webout(OPEN)'; put 'data result;'; put 'dclib="&dclib";'; put 'admingroup="&admin";'; put 'dcpath="&dcpath";'; put 'run;'; put '%webout(OBJ,result)'; put '%webout(CLOSE)'; put '%mv_deletejes(path=&root/admin, name=makedata)'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=refreshcatalog; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '/** @cond */'; put '%macro mf_existvar(libds /* 2 part dataset name */'; put ', var /* variable name */'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid=0 %then %do;'; put '%put %sysfunc(sysmsg());'; put '0'; put '%end;'; put '%else %if %length(&var)=0 %then %do;'; put '0'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%sysfunc(varnum(&dsid,&var))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_existvar;'; put '/** @endcond */'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_getvartype(libds /* two level name */'; put ', var /* variable name from which to return the type */'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vtype rc;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid. > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable type (C/N) */'; put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let vtype = %str( );'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable type */'; put '&vtype'; put '%mend mf_getvartype;'; put '%macro mf_getattrc('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrc(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrc;'; put '%macro mp_lockfilecheck('; put 'libds'; put ')/*/STORE SOURCE*/;'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=checklock.sas'; put ',msg=Aborting with syscc=&syscc on entry.'; put ')'; put '%mp_abort(iftrue= ("&libds"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(libds not provided)'; put ')'; put '%local msg lib ds;'; put '%let lib=%upcase(%scan(&libds,1,.));'; put '%let ds=%upcase(%scan(&libds,2,.));'; put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; put '%if %scan(&libds,2,-)=FC %then %do;'; put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=checklock.sas'; put ',msg=%superq(msg)'; put ')'; put 'data _null_;'; put 'putlog "Checking engine & member type";'; put 'run;'; put '%local engine memtype;'; put '%let memtype=%mf_getattrc(&libds,MTYPE);'; put '%let engine=%mf_getattrc(&libds,ENGINE);'; put '%if &engine ne V9 and &engine ne BASE %then %do;'; put 'data _null_;'; put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; put 'putlog "SAS lock check will not be performed";'; put 'run;'; put '%return;'; put '%end;'; put '%else %if &memtype ne DATA %then %do;'; put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; put '%return;'; put '%end;'; put 'data _null_;'; put 'putlog "Engine = &engine, memtype=&memtype";'; put 'putlog "Attempting lock statement";'; put 'run;'; put 'lock &libds;'; put '%local abortme;'; put '%let abortme=0;'; put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; put '%put %str(ERR)OR: &sysmacroname: &msg;'; put '%let abortme=1;'; put '%end;'; put 'lock &libds clear;'; put '%mp_abort(iftrue= (&abortme=1)'; put ',mac=&sysmacroname'; put ',msg=%superq(msg)'; put ')'; put '%mend mp_lockfilecheck;'; put '%macro mp_lockanytable('; put 'action'; put ',lib= WORK'; put ',ds=0'; put ',ref='; put ',ctl_ds=0'; put ',loops=25'; put ',loop_secs=1'; put ');'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(dataset was not provided)'; put ')'; put '%mp_abort(iftrue= (&ctl_ds=0)'; put ',mac=&sysmacroname'; put ',msg=%str(Control dataset was not provided)'; put ')'; put '/* set up lib & mac vars */'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '%let action=%upcase(&action);'; put '%local user x trans msg abortme;'; put '%let user=%mf_getuser();'; put '%let abortme=0;'; put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid action (&action) provided)'; put ')'; put '/* if an err condition exists, exit before we even begin */'; put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; put ',mac=&sysmacroname'; put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; put ')'; put '/* do not bother locking work tables (else may affect all WORK libraries) */'; put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; put '%put NOTE: WORK libraries will not be registered in the locking system.;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=&sysmacroname'; put ',msg=%str(cannot continue when options obs = 0)'; put ')'; put '%if &ACTION=LOCK %then %do;'; put '/* abort if a SAS lock is already in place, or cannot be applied */'; put '%mp_lockfilecheck(&lib..&ds)'; put '/* next, check there is a record for this table */'; put '%local record_exists_check;'; put 'proc sql noprint;'; put 'select count(*) into: record_exists_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &record_exists_check=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: adding record to lock table..";'; put 'run;'; put 'data ;'; put 'if 0 then set &ctl_ds;'; put 'LOCK_LIB ="&lib";'; put 'LOCK_DS="&ds";'; put 'LOCK_STATUS_CD=''LOCKED'';'; put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'LOCK_USER_NM="&user";'; put 'LOCK_PID="&sysjobid";'; put 'LOCK_REF="&ref";'; put 'output;stop;'; put 'run;'; put '%let trans=&syslast;'; put 'proc append base=&ctl_ds data=&trans;'; put 'run;'; put '%end;'; put '/* if record does exist, perform lock attempts */'; put '%else %do x=1 %to &loops;'; put 'data _null_;'; put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''LOCKED'''; put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '/**'; put '* NOTE - occasionally SQL server will return an err code (deadlocked'; put '* transaction). If so, ignore it, keep calm, and carry on..'; put '*/'; put '%if &syscc>0 %then %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; put 'putlog "Resetting err conditions and re-attempting.";'; put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%let syscc=0;'; put '%let sqlrc=0;'; put '%end;'; put '/* now check if the record was successfully updated */'; put '%local success_check;'; put 'proc sql noprint;'; put 'select count(*) into: success_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; put 'quit;'; put '%if &success_check=0 %then %do;'; put '%if &x < &loops %then %do;'; put '/* pause before next check */'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; put 'putlog "%sysfunc(sleep(&loop_secs)) seconds.. ";'; put 'putlog "NOTE- (iteration &x of &loops)";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%end;'; put '%else %do;'; put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; put 'Please ask your administrator to investigate!;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%else %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%if &syscc>0 %then %do;'; put '%put setting syscc(&syscc) back to 0;'; put '%let syscc=0;'; put '%end;'; put '%let x=&loops; /* no more iterations needed */'; put '%end;'; put '%end;'; put '%end;'; put '%else %if &ACTION=UNLOCK %then %do;'; put '%local status cnt;'; put '%let cnt=0;'; put 'proc sql noprint;'; put 'select count(*) into: cnt from &ctl_ds where LOCK_LIB ="&lib" & LOCK_DS="&ds";'; put '%if &cnt=0 %then %do;'; put '%put %str(WAR)NING: &lib..&ds was not previously locked in &ctl_ds!;'; put '%end;'; put '%else %do;'; put 'select LOCK_STATUS_CD into: status from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &status=LOCKED %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''UNLOCKED'''; put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%end;'; put '%else %if &status=UNLOCKED %then %do;'; put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; put '%end;'; put '%else %do;'; put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%end;'; put '%else %do;'; put '%let msg=lock_anytable given unsupported action (&action);'; put '%let abortme=1;'; put '%end;'; put '/* catch errs - mp_abort must be called outside of a logic block */'; put '%mp_abort(iftrue=(&abortme=1),'; put 'msg=%superq(msg),'; put 'mac=&sysmacroname'; put ')'; put '%exit_macro:'; put 'data _null_;'; put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; put 'run;'; put '%mend mp_lockanytable;'; put '%macro bitemporal_closeouts('; put 'tech_from=tx_from_dttm'; put ',tech_to = tx_to_dttm /* Technical TO datetime variable.'; put 'Req''d on BASE table only. */'; put ',base_lib=WORK /* Libref of the BASE table. */'; put ',base_dsn=BASETABLE /* Name of BASE table. */'; put ',append_lib=WORK /* Libref of the STAGING table. */'; put ',append_dsn=APPENDTABLE /* Name of STAGING table. */'; put ',PK= name sex /* Business key, space separated. */'; put '/* Should INCLUDE BUS_FROM field if relevant. */'; put ',NOW=DEFINE'; put ',FILTER= /* supply a filter to limit the update */'; put ',outdest= /* supply an unquoted filepath/filename.ext to get'; put 'a text file containing the update statements */'; put ',loadtype='; put ',loadtarget=YES /* if <> YES will return without changing anything */'; put ');'; put '%put ENTERING &sysmacroname;'; put '%local x var start;'; put '%let start=%sysfunc(datetime());'; put '%dc_assignlib(WRITE,&base_lib)'; put '%dc_assignlib(WRITE,&append_lib)'; put '%if &now=DEFINE %then %let now=&dc_dttmtfmt.;'; put '%put &=now;'; put '/**'; put '* perform basic checks'; put '*/'; put '/* do tables exist? */'; put '%if not %sysfunc(exist(&base_lib..&base_dsn)) %then %do;'; put '%mp_abort(msg=&base_lib..&base_dsn does not exist)'; put '%end;'; put '%else %if %sysfunc(exist(&append_lib..&append_dsn))=0'; put 'and %sysfunc(exist(&append_lib..&append_dsn,VIEW))=0 %then %do;'; put '%mp_abort(msg=&append_lib..&append_dsn does not exist)'; put '%end;'; put '/* do TX columns exist? */'; put '%if &loadtype ne UPDATE %then %do;'; put '%if not %mf_existvar(&base_lib..&base_dsn,&tech_from) %then %do;'; put '%mp_abort(msg=&tech_from does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%else %if not %mf_existvar(&base_lib..&base_dsn,&tech_to) %then %do;'; put '%mp_abort(msg=&tech_to does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%end;'; put '/* do PK columns exist? */'; put '%do x=1 %to %sysfunc(countw(&PK));'; put '%let var=%scan(&pk,&x,%str( ));'; put '%if not %mf_existvar(&base_lib..&base_dsn,&var) %then %do;'; put '%mp_abort(msg=&var does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%else %if not %mf_existvar(&append_lib..&append_dsn,&var) %then %do;'; put '%mp_abort(msg=&var does not exist on &append_lib..&append_dsn)'; put '%end;'; put '%end;'; put '/* check uniqueness */'; put 'proc sort data=&append_lib..&append_dsn'; put 'out=___closeout1 noduprecs dupout=___closeout1a;'; put 'by &pk;'; put 'run;'; put '%if %mf_getattrn(___closeout1a,NLOBS)>0 %then'; put '%put NOTE: dups on (&PK) in (&append_lib..&append_dsn);'; put '/* is &NOW value within a tolerance? Should not allow renegade closeouts.. */'; put '%local gap;'; put '%let gap=0;'; put 'data _null_;'; put 'now=&now;'; put 'gap=intck(''HOURS'',now,datetime());'; put 'call symputx(''gap'',gap,''l'');'; put 'run;'; put '%mf_abort('; put 'iftrue=(&gap > 24),'; put 'msg=NOW variable (&now) is not within a 24hr tolerance'; put ')'; put '/* have any warnings / errs occurred thus far? If so, abort */'; put '%mf_abort('; put 'iftrue=(&syscc>0),'; put 'msg=Aborted due to SYSCC=&SYSCC status'; put ')'; put '/**'; put '* Create closeout statements. These are sent as individual SQL statements'; put '* to ensure pass-through utilisation. The update_cnt variable monitors'; put '* how many records were actually updated on the target table.'; put '*/'; put '%local update_cnt;'; put '%let update_cnt=0;'; put 'filename tmp temp;'; put 'data _null_;'; put 'set ___closeout1;'; put 'file tmp;'; put 'if _n_=1 then put ''proc sql noprint;'' ;'; put 'length string $32767.;'; put '%if &loadtype=UPDATE %then %do;'; put 'put "delete from &base_lib..&base_dsn where 1";'; put '%end;'; put '%else %do;'; put 'now=symget(''now'');'; put 'put "update &base_lib..&base_dsn set &tech_to= " now @;'; put '%if %mf_existvar(&base_lib..&base_dsn,PROCESSED_DTTM) %then %do;'; put 'put " ,PROCESSED_DTTM=" now @;'; put '%end;'; put 'put " where " now " lt &tech_to ";'; put '%end;'; put '%do x=1 %to %sysfunc(countw(&PK));'; put '%let var=%scan(&pk,&x,%str( ));'; put '%if %mf_getvartype(&base_lib..&base_dsn,&var)=C %then %do;'; put '/* use single quotes to avoid ampersand resolution in data */'; put 'string=" & &var=''"!!trim(prxchange("s/''/''''/",-1,&var))!!"''";'; put '%end;'; put '%else %do;'; put 'string=cats(" & &var=",&var);'; put '%end;'; put 'put string;'; put '%end;'; put 'put "&filter ;";'; put 'put ''%let update_cnt=%eval(&update_cnt+&sqlobs);%put update_cnt=&update_cnt;'';'; put 'run;'; put 'data _null_;'; put 'infile tmp;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%if &loadtarget ne YES %then %return;'; put '/* ensure we have a lock */'; put '%mp_lockanytable(LOCK,'; put 'lib=&base_lib,ds=&base_dsn'; put ',ref=bitemporal_closeouts'; put ',ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'options source2;'; put '%inc tmp;'; put 'filename tmp clear;'; put '/**'; put '* Update audit tracker'; put '*/'; put '%local newobs; %let newobs=%mf_getattrn(work.___closeout1,NLOBS);'; put '%local user; %let user=%mf_getuser();'; put 'proc sql;'; put 'insert into &mpelib..mpe_dataloads'; put 'set libref=%upcase("&base_lib")'; put ',DSN=%upcase("&base_dsn")'; put ',ETLSOURCE="&append_lib..&append_dsn contained &newobs records"'; put ',LOADTYPE="CLOSEOUT"'; put ',DELETED_RECORDS=&update_cnt'; put ',NEW_RECORDS=0'; put ',DURATION=%sysfunc(datetime())-&start'; put ',USER_NM="&user"'; put ',PROCESSED_DTTM=&now;'; put 'quit;'; put '%mend bitemporal_closeouts;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '/** @cond */'; put '%macro mf_getengine(libref'; put ')/*/STORE SOURCE*/;'; put '%local dsid engnum rc engine;'; put '/* in case the parameter is a libref.tablename, pull off just the libref */'; put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; put '%let dsid=%sysfunc('; put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; put ');'; put '%if (&dsid ^= 0) %then %do;'; put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; put '%let rc=%sysfunc(fetch(&dsid));'; put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; put '%put &libref. ENGINE is &engine.;'; put '%let rc= %sysfunc(close(&dsid));'; put '%end;'; put '%upcase(&engine)'; put '%mend mf_getengine;'; put '/** @endcond */'; put '%macro mf_getschema(libref'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum rc schema;'; put '/* in case the parameter is a libref.tablename, pull off just the libref */'; put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; put '%let dsid=%sysfunc(open(sashelp.vlibnam(where=('; put 'libname="%upcase(&libref)" and sysname=''Schema/Owner'''; put ')),i));'; put '%if (&dsid ^= 0) %then %do;'; put '%let vnum=%sysfunc(varnum(&dsid,SYSVALUE));'; put '%let rc=%sysfunc(fetch(&dsid));'; put '%let schema=%sysfunc(getvarc(&dsid,&vnum));'; put '%put &libref. schema is &schema.;'; put '%let rc= %sysfunc(close(&dsid));'; put '%end;'; put '&schema'; put '%mend mf_getschema;'; put '/** @endcond */'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mf_wordsInStr1ButNotStr2('; put 'Str1= /* string containing words to extract */'; put ',Str2= /* used to compare with the extract string */'; put ')/*/STORE SOURCE*/;'; put '%local count_base count_extr i i2 extr_word base_word match outvar;'; put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; put '%put base string (str1)= &str1;'; put '%put compare string (str2) = &str2;'; put '%return;'; put '%end;'; put '%let count_base=%sysfunc(countw(&Str2));'; put '%let count_extr=%sysfunc(countw(&Str1));'; put '%do i=1 %to &count_extr;'; put '%let extr_word=%scan(&Str1,&i,%str( ));'; put '%let match=0;'; put '%do i2=1 %to &count_base;'; put '%let base_word=%scan(&Str2,&i2,%str( ));'; put '%if &extr_word=&base_word %then %let match=1;'; put '%end;'; put '%if &match=0 %then %let outvar=&outvar &extr_word;'; put '%end;'; put '&outvar'; put '%mend mf_wordsInStr1ButNotStr2;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro mf_getquotedstr(IN_STR'; put ',DLM=%str(,)'; put ',QUOTE=S'; put ',indlm=%str( )'; put ')/*/STORE SOURCE*/;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; put '%else %if "e=N %then %let quote=;'; put '%local i item buffer;'; put '%let i=1;'; put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; put '%else %let item=%qtrim(&item);'; put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; put '%else %let buffer =&buffer&DLM%qtrim(&item);'; put '%let i = %eval(&i+1);'; put '%end;'; put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; put '&buffer'; put '%mend mf_getquotedstr;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '%macro mp_retainedkey('; put 'base_lib=WORK'; put ',base_dsn=BASETABLE'; put ',append_lib=WORK'; put ',append_dsn=APPENDTABLE'; put ',retained_key=DEFAULT_RK'; put ',business_key= PK1 PK2'; put ',check_uniqueness=NO'; put ',maxkeytable=0'; put ',locktable=0'; put ',outds=WORK.APPEND'; put ',filter_str='; put ');'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%local base_libds app_libds key_field check maxkey idx_pk newkey_cnt iserr'; put 'msg x tempds1 tempds2 comma_pk appnobs checknobs dropvar tempvar idx_val;'; put '%let base_libds=%upcase(&base_lib..&base_dsn);'; put '%let app_libds=%upcase(&append_lib..&append_dsn);'; put '%let tempds1=%mf_getuniquename();'; put '%let tempds2=%mf_getuniquename();'; put '%let comma_pk=%mf_getquotedstr(in_str=%str(&business_key),dlm=%str(,),quote=);'; put '%let outds=%sysfunc(ifc(%index(&outds,.)=0,work.&outds,&outds));'; put '/* validation checks */'; put '%let iserr=0;'; put '%if &syscc>0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(SYSCC=&syscc on macro entry);'; put '%end;'; put '%else %if %sysfunc(exist(&base_libds))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Base LIBDS (&base_libds) expected but NOT FOUND);'; put '%end;'; put '%else %if %sysfunc(exist(&app_libds))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Append LIBDS (&app_libds) expected but NOT FOUND);'; put '%end;'; put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&maxkeytable))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Maxkeytable (&maxkeytable) expected but NOT FOUND);'; put '%end;'; put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&locktable))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Locktable (&locktable) expected but NOT FOUND);'; put '%end;'; put '%else %if %length(&business_key)=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Business key (&business_key) expected but NOT FOUND);'; put '%end;'; put '%do x=1 %to %sysfunc(countw(&business_key));'; put '/* check business key values exist */'; put '%let key_field=%scan(&business_key,&x,%str( ));'; put '%if not %mf_existvar(&app_libds,&key_field) %then %do;'; put '%let iserr=1;'; put '%let msg=Business key (&key_field) not found on &app_libds!;'; put '%goto err;'; put '%end;'; put '%else %if not %mf_existvar(&base_libds,&key_field) %then %do;'; put '%let iserr=1;'; put '%let msg=Business key (&key_field) not found on &base_libds!;'; put '%goto err;'; put '%end;'; put '%end;'; put '%err:'; put '%if &iserr=1 %then %do;'; put '/* err case so first perform an unlock of the base table before exiting */'; put '%mp_lockanytable('; put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; put ')'; put '%end;'; put '%mp_abort(iftrue=(&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; put 'proc sql noprint;'; put 'select sum(max(&retained_key),0) into: maxkey from &base_libds;'; put '/**'; put '* get base table RK and bus field values for lookup'; put '*/'; put 'proc sql noprint;'; put 'create table &tempds1 as'; put 'select distinct &comma_pk,&retained_key'; put 'from &base_libds &filter_str'; put 'order by &comma_pk,&retained_key;'; put '%if &check_uniqueness=YES %then %do;'; put 'select count(*) into:checknobs'; put 'from (select distinct &comma_pk from &app_libds);'; put 'select count(*) into: appnobs from &app_libds; /* might be view */'; put '%if &checknobs ne &appnobs %then %do;'; put '%let msg=Source table &app_libds is not unique on (&business_key);'; put '%let iserr=1;'; put '%end;'; put '%end;'; put '%if &iserr=1 %then %do;'; put '/* err case so first perform an unlock of the base table before exiting */'; put '%mp_lockanytable('; put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; put ')'; put '%end;'; put '%mp_abort(iftrue= (&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; put '%if %mf_existvar(&app_libds,&retained_key)'; put '%then %let dropvar=(drop=&retained_key);'; put '/* prepare interim table with retained key populated for matching keys */'; put 'proc sql noprint;'; put 'create table &tempds2 as'; put 'select b.&retained_key, a.*'; put 'from &app_libds &dropvar a'; put 'left join &tempds1 b'; put 'on 1'; put '%do idx_pk=1 %to %sysfunc(countw(&business_key));'; put '%let idx_val=%scan(&business_key,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'order by &retained_key;'; put '/* identify the number of entries without retained keys (new records) */'; put 'select count(*) into: newkey_cnt'; put 'from &tempds2'; put 'where missing(&retained_key);'; put 'quit;'; put '/**'; put '* Update maxkey table if link provided'; put '*/'; put '%if &maxkeytable ne 0 %then %do;'; put 'proc sql noprint;'; put 'select count(*) into: check from &maxkeytable'; put 'where upcase(keytable)="&base_libds";'; put '%mp_lockanytable(LOCK'; put ',lib=%scan(&maxkeytable,1,.)'; put ',ds=%scan(&maxkeytable,2,.)'; put ',ref=Updating maxkeyvalues with mp_retainedkey'; put ',ctl_ds=&locktable'; put ')'; put 'proc sql;'; put '%if &check=0 %then %do;'; put 'insert into &maxkeytable'; put 'set keytable="&base_libds"'; put ',keycolumn="&retained_key"'; put ',max_key=%eval(&maxkey+&newkey_cnt)'; put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put '%end;'; put '%else %do;'; put 'update &maxkeytable'; put 'set max_key=%eval(&maxkey+&newkey_cnt)'; put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put 'where keytable="&base_libds";'; put '%end;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&maxkeytable,1,.)'; put ',ds=%scan(&maxkeytable,2,.)'; put ',ref=Updating maxkeyvalues with maxkey=%eval(&maxkey+&newkey_cnt)'; put ',ctl_ds=&locktable'; put ')'; put '%end;'; put '/* fill in the missing retained key values */'; put '%let tempvar=%mf_getuniquename();'; put 'data &outds(drop=&tempvar);'; put 'retain &tempvar %eval(&maxkey+1);'; put 'set &tempds2;'; put 'if &retained_key =. then &retained_key=&tempvar;'; put '&tempvar=&tempvar+1;'; put 'run;'; put '%mend mp_retainedkey;'; put '/** @cond */'; put '%macro mp_storediffs(libds'; put ',origds'; put ',key'; put ',delds=0'; put ',appds=0'; put ',modds=0'; put ',outds=work.mp_storediffs'; put ',loadref=0'; put ',processed_dttm=0'; put ',mdebug=0'; put ')/*/STORE SOURCE*/;'; put '%local dbg;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%end;'; put '%else %let dbg=*;'; put '/* set up unique and temporary vars */'; put '%local ds1 ds2 ds3 ds4 hashkey inds_auto inds_keep dslist vlist;'; put '%let ds1=%upcase(work.%mf_getuniquename(prefix=mpsd_ds1));'; put '%let ds2=%upcase(work.%mf_getuniquename(prefix=mpsd_ds2));'; put '%let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_ds3));'; put '%let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_ds4));'; put '%let hashkey=%upcase(%mf_getuniquename(prefix=mpsd_hashkey));'; put '%let inds_auto=%upcase(%mf_getuniquename(prefix=mpsd_inds_auto));'; put '%let inds_keep=%upcase(%mf_getuniquename(prefix=mpsd_inds_keep));'; put '%let dslist=&origds;'; put '%if &delds ne 0 %then %do;'; put '%let delds=%upcase(&delds);'; put '%if %scan(&delds,-1,.)=&delds %then %let delds=WORK.&delds;'; put '%let dslist=&dslist &delds;'; put '%end;'; put '%if &appds ne 0 %then %do;'; put '%let appds=%upcase(&appds);'; put '%if %scan(&appds,-1,.)=&appds %then %let appds=WORK.&appds;'; put '%let dslist=&dslist &appds;'; put '%end;'; put '%if &modds ne 0 %then %do;'; put '%let modds=%upcase(&modds);'; put '%if %scan(&modds,-1,.)=&modds %then %let modds=WORK.&modds;'; put '%let dslist=&dslist &modds;'; put '%end;'; put '%let origds=%upcase(&origds);'; put '%if %scan(&origds,-1,.)=&origds %then %let origds=WORK.&origds;'; put '%let key=%upcase(&key);'; put '/* hash the key and append all the tables (marking the source) */'; put 'data &ds1;'; put 'set &dslist indsname=&inds_auto;'; put '&hashkey=put(md5(catx(''|'',%mf_getquotedstr(&key,quote=N))),$hex32.);'; put '&inds_keep=upcase(&inds_auto);'; put 'proc sort;'; put 'by &inds_keep &hashkey;'; put 'run;'; put '/* transpose numeric & char vars */'; put 'proc transpose data=&ds1'; put 'out=&ds2(rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_num));'; put 'by &inds_keep &hashkey;'; put 'var _numeric_;'; put 'run;'; put 'proc transpose data=&ds1'; put 'out=&ds3('; put 'rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_char)'; put 'where=(tgtvar_nm not in ("&hashkey","&inds_keep"))'; put ');'; put 'by &inds_keep &hashkey;'; put 'var _character_;'; put 'run;'; put '%if %index(&libds,-)>0 and %scan(&libds,2,-)=FC %then %do;'; put '/* this is a format catalog - cannot query cols directly */'; put '%let vlist="TYPE","FMTNAME","FMTROW","START","END","LABEL","MIN","MAX"'; put ',"DEFAULT","LENGTH","FUZZ","PREFIX","MULT","FILL","NOEDIT","SEXCL"'; put ',"EEXCL","HLO","DECSEP","DIG3SEP","DATATYPE","LANGUAGE";'; put '%end;'; put '%else %let vlist=%mf_getvarlist(&libds,dlm=%str(,),quote=DOUBLE);'; put 'data &ds4;'; put 'length &inds_keep $41 tgtvar_nm $32 _label_ $256;'; put 'if _n_=1 then call missing(_label_);'; put 'drop _label_;'; put 'set &ds2 &ds3 indsname=&inds_auto;'; put 'tgtvar_nm=upcase(tgtvar_nm);'; put 'if tgtvar_nm in (%upcase(&vlist));'; put 'if upcase(&inds_auto)="&ds2" then tgtvar_type=''N'';'; put 'else if upcase(&inds_auto)="&ds3" then tgtvar_type=''C'';'; put 'else do;'; put 'putlog ''ERR'' +(-1) "OR: unidentified vartype input!" &inds_auto;'; put 'call symputx(''syscc'',98);'; put 'end;'; put 'if &inds_keep="&appds" then move_type=''A'';'; put 'else if &inds_keep="&delds" then move_type=''D'';'; put 'else if &inds_keep="&modds" then move_type=''M'';'; put 'else if &inds_keep="&origds" then move_type=''O'';'; put 'else do;'; put 'putlog ''ERR'' +(-1) "OR: unidentified movetype input!" &inds_keep;'; put 'call symputx(''syscc'',99);'; put 'end;'; put 'tgtvar_nm=upcase(tgtvar_nm);'; put 'if tgtvar_nm in (%mf_getquotedstr(&key)) then is_pk=1;'; put 'else is_pk=0;'; put 'drop &inds_keep;'; put 'run;'; put '%if "&loadref"="0" %then %let loadref=%sysfunc(uuidgen());'; put '%if &processed_dttm=0 %then %let processed_dttm=%sysfunc(datetime(),8.6);'; put '%let libds=%upcase(&libds);'; put '/* join orig vals for modified & deleted */'; put 'proc sql;'; put 'create table &outds as'; put 'select "&loadref" as load_ref length=36'; put ',&processed_dttm as processed_dttm format=E8601DT26.6'; put ',"%scan(&libds,1,.)" as libref length=8'; put ',"%scan(&libds,2,.)" as dsn length=32'; put ',b.key_hash length=32'; put ',b.move_type length=1'; put ',b.tgtvar_nm length=32'; put ',b.is_pk'; put ',case when b.move_type ne ''M'' then -1'; put 'when a.newval_num=b.newval_num and a.newval_char=b.newval_char then 0'; put 'else 1'; put 'end as is_diff'; put ',b.tgtvar_type length=1'; put ',case when b.move_type=''D'' then b.newval_num'; put 'else a.newval_num'; put 'end as oldval_num format=best32.'; put ',case when b.move_type=''D'' then .'; put 'else b.newval_num'; put 'end as newval_num format=best32.'; put ',case when b.move_type=''D'' then b.newval_char'; put 'else a.newval_char'; put 'end as oldval_char length=32765'; put ',case when b.move_type=''D'' then '''''; put 'else b.newval_char'; put 'end as newval_char length=32765'; put 'from &ds4(where=(move_type=''O'')) as a'; put 'right join &ds4(where=(move_type ne ''O'')) as b'; put 'on a.tgtvar_nm=b.tgtvar_nm'; put 'and a.key_hash=b.key_hash'; put 'order by move_type, key_hash,is_pk desc, tgtvar_nm;'; put '%if &mdebug=0 %then %do;'; put 'proc sql;'; put 'drop table &ds1, &ds2, &ds3, &ds4;'; put '%end;'; put '%mend mp_storediffs;'; put '/** @endcond */'; put '%macro bitemporal_dataloader('; put 'bus_from= /* Business FROM datetime variable. Req''d on'; put 'STAGING & BASE tables.*/'; put ',bus_to = /* Business TO datetime variable. Req''d on'; put 'STAGING & BASE tables. */'; put ',bus_from_override= /* Provide a hard coded BUS_FROM datetime value.*/'; put ',bus_to_override= /* provide a hard coded BUS_TO datetime value */'; put ',tech_from= /* Technical FROM datetime variable. Req''d on'; put 'BASE table only. */'; put ',tech_to = /* Technical TO datetime variable. Req''d on BASE'; put 'table only. */'; put ',processed= 0'; put ',base_lib=WORK /* Libref of the BASE table. */'; put ',base_dsn=BASETABLE /* Name of BASE table. */'; put ',append_lib=WORK /* Libref of the STAGING table. */'; put ',append_dsn=APPENDTABLE'; put ',high_date=''01JAN5999:00:00:00''dt /* High date to close out records */'; put ',PK= name sex'; put ',RK_UNDERLYING='; put ',KEEPVARS= /* Provides option for removing unwanted vars from append table */'; put ',RK_UPDATE_MAXKEYTABLE=NO /* If switching (or mix matching) with regular'; put 'SCD2 loader then set this switch to YES to'; put 'ensure the MAXKEYTABLE is updated with the'; put 'current maximum RK value for the target table'; put '*/'; put ',CHECK_UNIQUENESS=YES /* Perform a check of the APPEND table to ensure it is'; put 'unique on its business key */'; put ',ETLSOURCE=demo /* supply a value ($50.) to show as ETLSOURCE in'; put '&dclib..DATALOADS */'; put ',LOADTYPE=BITEMPORAL'; put ',RK_MAXKEYTABLE= mpe_maxkeyvalues'; put ',LOG=1 /* Switch to 0 to prevent records being added to'; put '&mpelib..mpe_DATALOADS (ie when testing)*/'; put ',DELETE_COL= _____DELETE__THIS__RECORD_____'; put '/* If this variable is found in the append dataset'; put 'then records are closed out (or deleted) in the'; put 'append table where that variable= "Yes" */'; put ',LOADTARGET=YES /* set to anything but uppercase YES to switch off'; put 'target table load and generate temp tables only */'; put ',CLOSE_VARS='; put '/*a problem with regular SCD2 or TXTEMPORAL loads is that there is'; put 'no facility to close out removed records (all records are'; put 'assumed new or changed). But how does one determine which'; put 'records are removed? Short of loading the entire table'; put 'each time? This parameter allows a set of variables'; put '(this should be a subset of the PK) to be declared, and'; put 'the macro will determine which records in the base table'; put 'need to be closed out ahead of the load.'; put 'For instance, given the following:'; put 'Base Table Staging Table'; put 'DATE ENTITY AMOUNT DATE ENTITY AMOUNT'; put 'JAN ACME4 66 JAN ACME4 66'; put 'FEB ACME4 99 FEB ACME4 99'; put 'FEB ACME1 22'; put 'By supplying DATE in CLOSE_VARS and DATE ENTITY as the PK,'; put 'the "FEB PAG 22" record would get closed out.'; put '*/'; put ',config_table=&dclib..MPE_CONFIG'; put ',dclib=&dc_libref'; put ',outds_del=work.outds_del'; put ',outds_add=work.outds_add'; put ',outds_mod=work.outds_mod'; put ',outds_audit=0'; put ');'; put '/* when changing this macro, update the version num here */'; put '%local ver;'; put '%let ver=32;'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%dc_assignlib(WRITE,&base_lib) /* may not already be assigned */'; put '/* return straight away if nothing to load */'; put '%let nobs= %mf_getattrn(&append_lib..&append_dsn,NLOBS);'; put '%if &nobs=-1 %then %do;'; put 'proc sql noprint; select count(*) into: nobs from &append_lib..&append_dsn;'; put '%end;'; put '%if &nobs=0 %then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- Base dataset &append_lib..&append_dsn is empty. Nothing to upload!;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%return;'; put '%end;'; put '/* hard exit if err condition exists */'; put '%mp_abort(iftrue= (&syscc > 0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status;)'; put ')'; put '%local engine_type;'; put '%let engine_type=%mf_getengine(&base_lib);'; put '%if (&engine_type=REDSHIFT or &engine_type=POSTGRES) and %length(&CLOSE_VARS)>0'; put '%then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- CLOSE_VARS functionality not yet supported in &engine_type;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%return;'; put '%end;'; put '/**'; put '* The metadata functions (eg mf_existvar) will fail if the base table has a'; put '* SAS lock. So, make a snapshot of the base table for further use.'; put '* Also, make output tables (regardless).'; put '*/'; put '%local basecopy;'; put '%let basecopy=%mf_getuniquename(prefix=basecopy);'; put 'data &basecopy &outds_mod &outds_add &outds_del;'; put 'set &base_lib..&base_dsn;'; put 'stop;'; put 'run;'; put '%mp_abort(iftrue= (&syscc > 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after base table copy - aborting due to table lock)'; put ')'; put '%local cols idx_pk md5_col ;'; put '%let md5_col=___TMP___md5;'; put '%let check_uniqueness=%upcase(&check_uniqueness);'; put '%let RK_UPDATE_MAXKEYTABLE=%upcase(&RK_UPDATE_MAXKEYTABLE);'; put '%let high_date=%unquote(&high_date);'; put '%let loadtype=%upcase(&loadtype);'; put '/* ensure irrelevant variables are cleared */'; put '%if &loadtype=BUSTEMPORAL %then %do;'; put '%let tech_from=;'; put '%let tech_to=;'; put '%end;'; put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; put '%let bus_from=;'; put '%let bus_to=;'; put '%end;'; put '/* ensure relevant variables are supplied */'; put '%mp_abort(iftrue=(&loadtype=BITEMPORAL & %mf_verifymacvars(bus_from bus_to)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing BUS_FROM / BUS_TO)'; put ')'; put '%mp_abort(iftrue=(&loadtype=TXTEMPORAL & %mf_verifymacvars(tech_from tech_to)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing TECH_FROM / TECH_TO)'; put ')'; put '/**'; put '* drop any tables (may be defined as views or vice versa preventing overwrite)'; put '*/'; put '%mp_dropmembers(append bitemp0_append bitemp_cols)'; put '/* SQL Server requires its own time values */'; put '/* 9.2 will only give picture format down to seconds. 9.3 allows'; put 'milliseconds by using lower S and defining the decimal in the format name..*/'; put 'PROC FORMAT;'; put 'picture MyMSdt other=''%0Y-%0m-%0dT%0H:%0M:%0S'' (datatype=datetime);'; put 'RUN;'; put '%local dbnow;'; put '%let dbnow="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'data _null_;'; put '/* convert space separated macvar to comma separated for SQL processing */'; put 'call symputx(''PK_COMMA'',tranwrd(compbl("&pk"),'' '','',''),''L'');'; put 'call symputx(''PK_CNT'',countw("&pk",'' ''),''L'');'; put 'now=&dbnow;'; put 'call symputx(''NOW'',now,''L'');'; put 'call symputx(''SQLNOW'',cats("''",put(now,MyMSdt.),"''"),''L'');'; put 'length etlsource $100;'; put 'etlsource=subpad(symget(''etlsource''),1,100);'; put 'call symputx(''etlsource'',etlsource,''l'');'; put 'run;'; put '/**'; put '* Even if no PROCESSED var provided, assume that any variable named'; put '* PROCESSED_DTTM should be updated'; put '*/'; put '%if &processed=0 %then %do;'; put '%if %mf_existvar(&basecopy,PROCESSED_DTTM)'; put '%then %let processed=PROCESSED_DTTM;'; put '%else %let processed=;'; put '%end;'; put '/* extract colnames for md5 creation / change tracking */'; put 'proc contents noprint data=&base_lib..&base_dsn'; put 'out=work.bitemp_cols (keep=name type length varnum format:);'; put 'run;'; put 'proc sql noprint;'; put 'select name into: cols separated by '','''; put 'from work.bitemp_cols'; put 'where upcase(name) not in'; put '(%upcase("&bus_from","&bus_to"'; put ',"&tech_from","&tech_to"'; put ',"&processed","&delete_col")) ;'; put 'select case when type in (2,6) then cats(''put(md5(trim('',name,'')),$hex32.)'')'; put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; put '/* but ONLY if not missing, else will lose any special missing values */'; put 'else cats(''put(md5(trim(put(ifn(missing('''; put ',name,''),'',name,'','',name,''*1),binary64.))),$hex32.)'') end'; put 'into: stripcols separated by ''||'''; put 'from work.bitemp_cols'; put 'where upcase(name) not in'; put '(%upcase("&bus_from","&bus_to"'; put ',"&tech_from","&tech_to"'; put ',"&processed","&delete_col")) ;'; put '/* set default formats*/'; put '%let bus_from_fmt = datetime19.;'; put '%let bus_to_fmt = datetime19.;'; put '%let processed_fmt = datetime19.;'; put '%let tech_from_fmt = format=datetime19.;'; put '%let tech_to_fmt = format=datetime19.;'; put '%put &=stripcols;'; put '%put &=pk;'; put 'data _null_;'; put 'set work.bitemp_cols;'; put 'if type=2 or type=6 then do;'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'if format='''' then fmt=cats(length,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put 'if upcase(name)="%upcase(&bus_from)" then'; put 'call symputx(''bus_from_fmt'',fmt,''L'');'; put 'else if upcase(name)="%upcase(&bus_to)" then'; put 'call symputx(''bus_to_fmt'',fmt,''L'');'; put 'else if upcase(name)="%upcase(&tech_from)" then'; put 'call symputx(''tech_from_fmt'',"format="!!fmt,''L'');'; put 'else if upcase(name)="%upcase(&tech_to)" then'; put 'call symputx(''tech_to_fmt'',"format="!!fmt,''L'');'; put 'else if upcase(name)="%upcase(&processed)" then'; put 'call symputx(''processed_fmt'',fmt,''L'');'; put 'run;'; put '%if %index(%quote(&cols),___TMP___) %then %do;'; put '%let msg=%str(Table contains a variable name containing "___TMP___".%trim('; put ') This may conflict with temp variable generation!!);'; put '%mp_abort(msg=&msg,mac=bitemporal_dataloader);'; put '%let syscc=5;'; put '%return;'; put '%end;'; put '/* if transaction dates appear on the APPEND table, need to remove them */'; put '%local drop_tx_dates /* used in append table */'; put 'drop_tx_dates_noobs /* used to take the base table structure */;'; put '%if %mf_existvar(&append_lib..&append_dsn, &tech_from)'; put '%then %let drop_tx_dates=&tech_from;'; put '%if %mf_existvar(&append_lib..&append_dsn, &tech_to)'; put '%then %let drop_tx_dates=&drop_tx_dates &tech_to;'; put '%if %length(%trim(&drop_tx_dates))>0'; put '%then %let drop_tx_dates=(drop=&drop_tx_dates);'; put '%if %mf_existvar(&basecopy, &tech_from)'; put '%then %let drop_tx_dates_noobs=&tech_from;'; put '%if %mf_existvar(&basecopy, &tech_to)'; put '%then %let drop_tx_dates_noobs=&drop_tx_dates_noobs &tech_to;'; put '%if %length(%trim(&drop_tx_dates_noobs))>0'; put '%then %let drop_tx_dates_noobs=(drop=&drop_tx_dates_noobs obs=0);'; put '%else %let drop_tx_dates_noobs=(obs=0);'; put '/**'; put '* Lock the table. This is necessary as we are doing a two part update (first'; put '* closing records then appending new records). It is theoretically possible'; put '* that an upload may occur whilst preparing the staging tables. And the'; put '* staging tables are about to be prepared..'; put '*/'; put '%if &LOADTARGET = YES %then %do;'; put '%put locking &base_lib..&base_dsn;'; put '%mp_lockanytable(LOCK,'; put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%if "&outds_audit" ne "0" %then %do;'; put '%put locking &outds_audit;'; put '%mp_lockanytable(LOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%else %do;'; put '/* not an actual load, so avoid updating the max key table in next step. */'; put '%let rk_update_maxkeytable=NO;'; put '%end;'; put '%if %length(&RK_UNDERLYING)>0 %then %do;'; put '%mp_retainedkey('; put 'base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=&append_lib'; put ',append_dsn=&append_dsn'; put ',retained_key=&pk'; put ',business_key=&rk_underlying'; put ',check_uniqueness=&CHECK_UNIQUENESS'; put ',outds=work.append'; put '%if &rk_update_maxkeytable=NO %then %do;'; put ',maxkeytable=0'; put '%end;'; put '%else %do;'; put ',maxkeytable=&dclib..&RK_MAXKEYTABLE'; put '%end;'; put ',locktable=&dclib..mpe_lockanytable'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put ',filter_str=%str( (where=( &now < &tech_to)) )'; put '%end;'; put ')'; put '%end;'; put '%else %do;'; put 'proc sql;'; put 'create view work.append as select * from &append_lib..&append_dsn;'; put '%end;'; put '/**'; put '* generate md5 for append table'; put '*/'; put '/* it is possible the source dataset has additional (unwanted) columns.'; put 'Drop if specified; */'; put '%if %length(&keepvars)>0 %then %do;'; put '/* remove tech dates from keepvars as they are generated later */'; put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_from ),%str( )));'; put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_to ),%str( )));'; put '%let keepvars=(keep=&keepvars &bus_from &bus_to &processed &md5_col);'; put '%end;'; put '/* CAS varchar types cause append issues here, so perform autoconvert'; put 'by creating empty local table first */'; put 'data;'; put 'set &base_lib..&base_dsn &drop_tx_dates_noobs;'; put 'run;'; put '%local emptybasetable; %let emptybasetable=&syslast;'; put 'data work.bitemp0_append &keepvars &outds_del(drop=&md5_col )'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put '/nonote2err'; put '%end;'; put ';'; put '/* apply formats for bitemporal vars but not tx dates which are added later */'; put '%if %length(&keepvars)>0 and &loadtype=BITEMPORAL %then %do;'; put 'format &bus_from &bus_from_fmt;'; put 'format &bus_to &bus_to_fmt;'; put '%end;'; put 'set &emptybasetable /* base table reqd in case append has fewer cols */'; put 'work.append &drop_tx_dates;'; put '%if %length(%str(&bus_from_override))>0 %then %do;'; put '&bus_from= %unquote(&bus_from_override) ;'; put '%end;'; put '%if %length(%str(&bus_to_override))>0 %then %do;'; put '&bus_to= %unquote(&bus_to_override) ;'; put '%end;'; put 'length &md5_col $32;'; put '&md5_col=put(md5(&stripcols),hex32.);'; put '%if %length(&processed)>0 %then %do;'; put 'format &processed &processed_fmt;'; put '&processed=&now;'; put '%end;'; put '/**'; put '* If a delete column exists then create the delete dataset'; put '*/'; put '%if %mf_existvar(&append_lib..&append_dsn, &delete_col) %then %do;'; put 'drop &delete_col;'; put 'if upcase(&delete_col) = "YES" then output &outds_del ;'; put 'else output work.bitemp0_append ;'; put 'run;'; put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; put '%bitemporal_closeouts('; put 'tech_from=&tech_from'; put ',tech_to = &tech_to'; put ',base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=work'; put ',append_dsn=%scan(&outds_del,-1,.)'; put ',PK=&bus_from &pk'; put ',NOW=&dbnow'; put ',loadtarget=&loadtarget'; put ',loadtype=&loadtype'; put ')'; put '%end;'; put '%end;'; put '%else %do;'; put 'output work.bitemp0_append;'; put 'run;'; put '%end;'; put '%mp_abort(iftrue= (&syscc gt 0 at line 494)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%if %length(&close_vars)>0 %then %do;'; put '/**'; put '* need to close out records that are not provided'; put '*/'; put 'proc sql;'; put 'create table bitemp1_closevars1 as'; put 'select distinct a.%mf_getquotedstr(in_str=&pk,dlm=%str(,a.),quote=)'; put 'from &base_lib..&base_dsn a'; put 'inner join work.bitemp0_append b'; put 'on 1=1'; put '/* join on closevars key */'; put '%do idx_pk=1 %to %sysfunc(countw(&close_vars));'; put '%let idx_val=%scan(&close_vars,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '/* filter base on tech dates if necessary */'; put '%if &loadtype=TXTEMPORAL %then %do;'; put 'where a.&tech_from <=&now and &now < a.&tech_to'; put '%end;'; put ';'; put 'create table bitemp1_closevars2 as'; put 'select distinct a.*'; put 'from bitemp1_closevars1 a'; put 'left join work.bitemp0_append b'; put 'on 1=1'; put '/* join on primary key */'; put '%do idx_pk=1 %to %sysfunc(countw(&pk));'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '/* identify removed records by null value in a field in PK but not close_vars'; put '*/'; put 'where b.%scan('; put '%mf_wordsInStr1ButNotStr2(Str1=&pk,Str2=&close_vars),1,%str( )'; put ') IS NULL'; put ';'; put '%if %mf_getattrn(bitemp1_closevars2,NLOBS)>0 %then %do;'; put '%bitemporal_closeouts('; put 'tech_from=&tech_from'; put ',tech_to = &tech_to'; put ',base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=work'; put ',append_dsn=bitemp1_closevars2'; put ',PK=&bus_from &pk'; put ',NOW=&dbnow'; put ',loadtarget=&loadtarget'; put ',loadtype=&loadtype'; put ')'; put '%end;'; put '%end;'; put '/* return if nothing to load (was just deletes) */'; put '%if %mf_getattrn(work.bitemp0_append,NLOBS)=0 %then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- No updates - just deletes!;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%end;'; put '/**'; put '* If applying manual overrides to business dates, then the input table MUST'; put '* be unique on the PK. Check, and if not - abort.'; put '*/'; put '%local msg;'; put '%if %length(&bus_from_override.&bus_to_override)>0 or &CHECK_UNIQUENESS=YES'; put '%then %do;'; put 'proc sort data=work.bitemp0_append out=work.bitemp0_check nodupkey;'; put 'by &pk;'; put 'run;'; put '%if %mf_getattrn(work.bitemp0_check,NLOBS)'; put 'ne %mf_getattrn(work.bitemp0_append,NLOBS)'; put '%then %do;'; put '%let msg=INPUT table &append_lib..&append_dsn is not unique on PK (&pk);'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_abort(msg=&msg,mac=bitemporal_dataloader.sas);'; put '%end;'; put '%end;'; put '/**'; put '* extract from BASE table. Only want matching records, as could be very BIG.'; put '* New records are subsequently identified via left join and test for nulls.'; put '*/'; put '%local temp_table temp_table2 base_table baselib_schema;'; put '%put DCNOTE: Extracting matching observations from &base_lib..&base_dsn;'; put '%if &engine_type=OLEDB %then %do;'; put '%let temp_table=##%mf_getuniquefileref(prefix=BTMP);'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=(select * from [dbo].&base_dsn'; put 'where convert(datetime,&SQLNOW) < &tech_to );'; put '%else %let base_table=[dbo].&base_dsn;'; put 'proc sql;'; put 'create table &base_lib.."&temp_table"n as'; put 'select * from work.bitemp0_append;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'create table work.bitemp0_base as select * from connection to myAlias('; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put '/* grab schema */'; put '%let baselib_schema=%mf_getschema(&base_lib);'; put '%if &baselib_schema.X ne X %then %let baselib_schema=&baselib_schema..;'; put '/* grab redshift config */'; put '%local redcnt; %let redcnt=0;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'data _null_;'; put 'set &config_table(where=(var_scope=''DCBL_REDSH'' and var_active=1));'; put 'x+1;'; put 'call symputx(cats(''rednm'',x),var_value,''l'');'; put 'call symputx(cats(''redval'',x),var_value,''l'');'; put 'call symputx(''redcnt'',x,''l'');'; put 'run;'; put '%end;'; put '/* cannot persist temp tables so must create a temporary permanent table */'; put '%let temp_table=%mf_getuniquename(prefix=XDCTEMP);'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=(select * from &baselib_schema.&base_dsn'; put 'where timestamp &sqlnow < &tech_to );'; put '%else %let base_table=&baselib_schema.&base_dsn;'; put '/* make empty table first - must clone & drop extra cols as autoload is bad */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'exec (create table &temp_table (like &baselib_schema.&base_dsn)) by myAlias;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'exec (alter table &temp_table alter sortkey none) by myAlias;'; put '%end;'; put '%local dropcols;'; put '%let dropcols=%mf_wordsinstr1butnotstr2('; put 'str1=%upcase(%mf_getvarlist(&basecopy))'; put ',str2=%upcase(&pk)'; put ');'; put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; put '%put &=dropcols;'; put '%let idx_val=%scan(&dropcols,&idx_pk);'; put 'exec(alter table &temp_table drop column &idx_val;) by myAlias;'; put '%end;'; put 'exec (alter table &temp_table add column &md5_col varchar(32);) by myAlias;'; put '/* create view to strip formats and avoid warns in log */'; put 'data work.vw_bitemp0/view=work.vw_bitemp0;'; put 'set work.bitemp0_append(keep=&pk &md5_col);'; put 'format _all_;'; put 'run;'; put 'proc append base=&base_lib..&temp_table'; put '%if &engine_type=REDSHIFT %then %do;'; put '('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put '%end;'; put 'data=work.vw_bitemp0 force nowarn;'; put 'run;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'create table work.bitemp0_base as select * from connection to myAlias('; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=&base_lib..&base_dsn'; put '(where=(&tech_from <=&now and &now < &tech_to));'; put '%else %let base_table=&base_lib..&base_dsn;'; put '%let temp_table=CASUSER.%mf_getuniquename(prefix=DC);'; put 'data &temp_table;'; put 'set work.bitemp0_append;'; put 'run;'; put '%let bitemp0base=CASUSER.%mf_getuniquename(prefix=DC);'; put 'proc fedsql sessref=dcsession;'; put 'create table &bitemp0base{options replace=true} as'; put '%end;'; put '%else %do;'; put '%let temp_table=work.bitemp0_append;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=&base_lib..&base_dsn'; put '(where=(&tech_from <=&now and &now < &tech_to));'; put '%else %let base_table=&base_lib..&base_dsn;'; put 'proc sql;'; put 'create table work.bitemp0_base as'; put '%end;'; put 'select a.&md5_col /* this identifies NEW records */'; put ', b.*'; put '/* assume first PK field cannot be null (if defined in a PK constraint then'; put 'it definitely cannot be null) */'; put ', case when b.%scan(&pk,1) IS NULL then 1 else 0 end as ___TMP___NEW_FLG'; put 'from &baselib_schema.&temp_table a'; put 'left join &base_table b'; put 'on 1=1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; put '%then %do;'; put '); proc sql; drop table &base_lib.."&temp_table"n;'; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put ';'; put 'quit;'; put 'data work.bitemp0_base;'; put 'set &bitemp0base;'; put 'run;'; put 'proc sql;'; put 'drop table &temp_table;'; put 'drop table &bitemp0base;'; put '%end;'; put '%else %do;'; put ';'; put '%end;'; put '/**'; put '* matching & changed records are those without NULL key values'; put '* &idx_val resolves to rightmost PK value (loop above)'; put '*/'; put '%put syscc (line525)=&syscc, sqlrc=&sqlrc;'; put '%mp_abort(iftrue= (&syscc gt 0 or &sqlrc>0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc sqlrc=&sqlrc)'; put ')'; put '%put hashcols2=&stripcols;'; put 'proc sql;'; put 'create table work.bitemp1_current(drop=___TMP___NEW_FLG) as'; put 'select *'; put ', put(md5(&stripcols),$hex32.) as &md5_col'; put 'from work.bitemp0_base (drop=&md5_col)'; put 'where ___TMP___NEW_FLG=0;'; put '/**'; put '* NEW records were identified in ___TMP___NEW_FLG in bitemp0_base'; put '*/'; put 'proc sql;'; put 'create table &outds_add'; put '(drop=&md5_col'; put '%if %mf_existvar(work.bitemp0_base, &delete_col) %then %do;'; put '&delete_col'; put '%end;'; put ')'; put 'as select a.*'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put ',&now as &tech_from &tech_from_fmt'; put ',&high_date as &tech_to &tech_to_fmt'; put '%end;'; put 'from work.bitemp0_append a /* STAGING records (mix of existing & new) */'; put ', work.bitemp0_base b /* BASE records (contains null values for new) */'; put 'where a.&md5_col=b.&md5_col /* took staging md5 across in left join */'; put 'and b.___TMP___NEW_FLG=1; /* NEW records also identified in bitemp0_base */'; put '/**'; put '* identify INSERTS. These are records with the same business key but'; put '* the bus_from and bus_to value are higher / lower (respectively)'; put '* such that the existing record needs to be SPLIT to surround the new'; put '* record.'; put '* eg: OLD RECORD from=1 to=10'; put '* NEW RECORD from=5 to=7'; put '*'; put '* APPENDED RECORDS:'; put '* - from=1 to=5'; put '* - from=5 to=7'; put '* - from=7 to=10'; put '*/'; put '/* inserts cannot happen with TXTEMPORAL */'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* IDENTIFY */'; put 'create table work.bitemp3_inserts as'; put 'select b.*'; put ',a.&bus_from as ___TMP___from'; put ',a.&bus_to as ___TMP___to'; put 'from work.bitemp0_append a'; put ',work.bitemp1_current b'; put 'where a.&bus_from > b.&bus_from'; put 'and a.&bus_to < b.&bus_to'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'order by'; put '/* compress blanks and then insert commas (as the datetime fields may'; put 'not be in use) */'; put '%sysfunc(tranwrd(%sysfunc(compbl('; put '&pk &bus_from &bus_to &processed'; put ')),%str( ), %str(,)))'; put ';'; put '/* SPLIT */'; put 'data work.bitemp3a_inserts (drop=___TMP___from ___TMP___retain ___TMP___to) ;'; put 'set work.bitemp3_inserts;'; put 'by &pk &bus_from &bus_to &processed;'; put 'if first.&idx_val then do;'; put '___TMP___retain=&bus_to;'; put '&bus_to=___TMP___from;'; put 'output;'; put '&bus_to=___TMP___retain;'; put 'end;'; put 'if last.&idx_val then do;'; put '&bus_from=___TMP___to;'; put 'output;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* TX temporal load */'; put 'data work.bitemp3a_inserts;'; put 'set work.bitemp1_current;'; put 'stop;'; put 'run;'; put '%end;'; put '/* APPEND */'; put 'proc sql;'; put 'create view work.bitemp3a_view as'; put 'select * from work.bitemp1_current'; put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; put 'data bitemp3b_newbase;'; put 'set work.bitemp3a_inserts work.bitemp3a_view;'; put 'run;'; put '/** do not use! this converts short numerics into 8 bytes'; put 'proc sql;'; put 'create table work.bitemp3b_newbase as'; put 'select * from work.bitemp3a_inserts'; put 'union corr'; put 'select * from work.bitemp1_current'; put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; put '*/'; put '/**'; put '* identify CHANGED records from staging.'; put '* Same business key with different temporal dates or md5 value'; put '* This table must be overlayed onto / into existing business history'; put '*/'; put 'proc sql;'; put 'create table work.bitemp4_updated as select distinct a.*'; put 'from work.bitemp0_append a'; put ',work.bitemp3b_newbase b'; put 'where 1=1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'and ( a.&md5_col ne b.&md5_col'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put 'OR (a.&bus_from ne b.&bus_from or a.&bus_to ne b.&bus_to)'; put '%end;'; put ')'; put ';'; put '/**'; put '* This section would have been one simple step with union all'; put '* but that converts short numerics into 8 bytes!'; put '* so, convoluted alternative to retain the same functionality.'; put '*/'; put '/* base records */'; put 'create view work.bitemp4_prep1 as'; put 'select ''BASE'' as ___TMP___'; put ',b.*'; put 'from work.bitemp4_updated a'; put ',work.bitemp3b_newbase b'; put 'where 1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put ';'; put '/* updated records */'; put 'create view work.bitemp4_prep2 as'; put 'select ''STAG'' as ___TMP___ ,*'; put 'from work.bitemp4_updated;'; put '/* ensure we only keep columns that appear in both */'; put '%local bp1 bp2 bp3 bp4;'; put '%let bp1=%mf_getvarlist(bitemp4_prep1);'; put '%let bp2=%mf_getvarlist(bitemp4_prep2);'; put '%let bp3=%mf_wordsInStr1ButNotStr2(Str1=&bp1,Str2=&bp2);'; put '%let bp4=%mf_wordsInStr1ButNotStr2(Str1=&bp2,Str2=&bp1);'; put 'data work.bitemp4_prep3/view=bitemp4_prep3;'; put 'set bitemp4_prep1 bitemp4_prep2;'; put '%if %length(XX&bp3&bp4)>2 %then %do;'; put 'drop &bp3 &bp4 ;'; put '%end;'; put 'run;'; put '/* remove duplicates */'; put 'proc sql;'; put 'create table work.bitemp4a_allrecs as'; put 'select distinct *'; put 'from work.bitemp4_prep3'; put 'order by'; put '/* compress blanks and then insert commas (as the datetime fields'; put 'may not be in use) */'; put '%sysfunc(tranwrd(%sysfunc(compbl('; put '&pk &bus_from &bus_to &processed'; put ')),%str( ), %str(,)))'; put ';'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* this section aligns the business dates'; put '(eg for inserts or overlaps in the range) */'; put 'data work.bitemp4b_firstpass (drop=___TMP___cond ___TMP___from ___TMP___to );'; put 'set work.bitemp4a_allrecs;'; put 'by &pk &bus_from &bus_to &processed;'; put 'retain ___TMP___cond ''Name of Condition'';'; put 'retain ___TMP___from ___TMP___to 0;'; put '___TMP___md5lag=lag(&md5_col);'; put '/* reset retained variables */'; put 'if first.&idx_val then do;'; put 'call missing (___TMP___cond, ___TMP___from, ___TMP___to,___TMP___md5lag);'; put 'end;'; put 'else do;'; put '/* if record is identical, carry forward bus_from (and bus_to if higher)*/'; put 'if &md5_col=___TMP___md5lag then do;'; put '&bus_from=___TMP___from;'; put 'if &bus_to<___TMP___to then &bus_to=___TMP___to;'; put 'end;'; put 'end;'; put 'if ___TMP___=''STAG'' then do;'; put '/* need to carry forward the closing record */'; put '___TMP___cond=''Condition 1'';'; put 'end;'; put 'else if ___TMP___cond=''Condition 1'' then do;'; put '/* else ensure bus_from starts from prior record bus_to */'; put 'if &md5_col ne ___TMP___md5lag and &bus_from <= ___TMP___to'; put 'then &bus_from= ___TMP___to;'; put '/* new record may replace old record entirely */'; put 'if &bus_to <= &bus_from then delete;'; put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; put 'end;'; put '___TMP___from=&bus_from;'; put '___TMP___to=&bus_to;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* keep staged records only */'; put 'data work.bitemp4b_firstpass;'; put 'set work.bitemp4a_allrecs;'; put 'if ___TMP___=''STAG'';'; put 'run;'; put '%end;'; put '/* next phase is to pass through in reverse - so set up the sort statement */'; put '%local byvar;'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let byvar=&byvar descending %scan(&pk,&idx_pk);'; put '%end;'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL'; put '%then %let byvar=&byvar descending &bus_from descending &bus_to;'; put '/* if matching bus dates supplied, need to ensure we also have a sort'; put 'between BASE and STAGING tables */'; put '%let byvar=&byvar descending ___TMP___;'; put 'proc sort data=work.bitemp4b_firstpass out=work.bitemp4c_sort ;'; put 'by &byvar;'; put 'run;'; put '/**'; put '* Now (in reverse) pass back business start dates'; put '*/'; put 'data work.bitemp4d_secondpass;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put '&tech_from=&now;'; put '&tech_to=&high_date;'; put '%end;'; put 'set work.bitemp4c_sort ;'; put 'by &byvar;'; put 'retain ___TMP___cond ''Name of Condition'';'; put 'retain ___TMP___from ___TMP___to 0;'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* put / _all_ /;*/'; put '___TMP___md5lag=lag(&md5_col);'; put 'if first.&idx_val then do;'; put '/* reset retained variables */'; put 'call missing (___TMP___cond,___TMP___from,___TMP___to,___TMP___md5lag);'; put 'end;'; put 'else do;'; put '/* if record is identical, carry back bus_to */'; put 'if &md5_col=___TMP___md5lag then &bus_to=___TMP___to;'; put 'end;'; put 'if ___TMP___=''STAG'' then do;'; put '/* need to carry forward the closing record */'; put '___TMP___cond=''Condition 2'';'; put 'end;'; put 'else if ___TMP___cond=''Condition 2'' then do;'; put '/* else ensure bus_to stops at subsequent record bus_from */'; put 'if &md5_col ne ___TMP___md5lag and &bus_to >= ___TMP___from'; put 'then &bus_to= ___TMP___from;'; put '/* new record may replace old record entirely */'; put 'if &bus_from >= &bus_to then delete;'; put 'if &bus_from=___TMP___from and &bus_to=___TMP___to then delete;'; put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; put 'end;'; put '___TMP___from=&bus_from;'; put '___TMP___to=&bus_to;'; put '%end;'; put 'run;'; put '%put syscc (line600)=&syscc;'; put '/**'; put 'There may still be some records (eg old business history) which have not'; put 'changed.'; put 'Need to identify these and remove from the append so they are not updated'; put 'unnecessarily. This is done by generating a new md5 (which INCLUDES the'; put 'business key) and any matching / identical records are split out (from those'; put 'that need to be updated).'; put '*/'; put '%if &loadtype=BITEMPORAL %then %do;'; put '%let cat_string=catx(''|'' ,&bus_from,&bus_to);'; put 'data work.bitemp5a_lkp (keep=&md5_col)'; put '%if "%substr(&sysver,1,1)" ne "4" & "%substr(&sysver,1,1)" ne "5" %then %do;'; put '/nonote2err'; put '%end;'; put ';'; put 'set work.bitemp0_base;'; put '/* for BITEMPORAL we need to compare business dates also */'; put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.);'; put 'run;'; put 'data bitemp5b_updates;'; put 'set bitemp4d_secondpass;'; put 'if _n_=1 then do;'; put 'dcl hash md5_lkp(dataset:''bitemp5a_lkp'');'; put 'md5_lkp.definekey("&md5_col");'; put 'md5_lkp.definedone();'; put 'end;'; put '/* drop old md5 col as will rebuild with new business dates */'; put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.) ;'; put 'if md5_lkp.check()=0 then delete;'; put 'run;'; put 'proc sql;'; put '/* get min bus from as will update (close out) all records from this point'; put '(for that PK)*/'; put 'create table work.bitemp5d_subquery as'; put 'select &pk_comma, min(&bus_from)as &bus_from, max(&bus_to) as &bus_to'; put 'from work.bitemp5b_updates'; put 'group by &pk_comma;'; put '/* index has a huge efficiency impact on upcoming nested subquery */'; put 'create index index1 on work.bitemp5d_subquery(&pk_comma,&bus_from, &bus_to);'; put '%let lastds=work.bitemp5b_updates;'; put '%end;'; put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; put 'proc sql;'; put 'create table work.bitemp5d_subquery as'; put 'select distinct &pk_comma'; put 'from bitemp4d_secondpass;'; put '%let lastds=work.bitemp4d_secondpass;'; put '%end;'; put '%else %let lastds=work.bitemp4d_secondpass;'; put '/* create single append table (an overlapped pre-sert may be classed as'; put 'both an update AND a new record). Also create temp views that may be'; put 'used for pre-load analysis. */'; put 'data &outds_mod;'; put 'set &lastds(drop=___TMP___: &md5_col);'; put 'run;'; put 'data bitemp6_allrecs / view=bitemp6_allrecs;'; put 'set &outds_mod /* UPDATED records */'; put '&outds_add /* NEW records */;'; put 'run;'; put 'proc sort data=work.bitemp6_allrecs'; put 'out=work.bitemp6_unique'; put 'noduprec'; put 'dupout=work.xx_BADBADBAD;'; put 'by _all_;'; put 'run;'; put '/* we have all our temp tables now so exit if this is all that is needed */'; put '%if &LOADTARGET ne YES %then %return;'; put '/* also exit if an err condition exists */'; put '%if &syscc>0 %then %do;'; put '%put syscc=&syscc;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%if "&outds_audit" ne "0" %then %do;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=&sysmacroname in &_program'; put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status)'; put ')'; put '/* final check - abort if a lock has appeared on the target or audit table */'; put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; put '%if %mf_existds(&outds_audit) %then %do;'; put '%mp_lockfilecheck(libds=&outds_audit)'; put '%end;'; put '/**'; put '* STAGING TABLES PREPARED, ERR CONDITION TESTED FOR.. NOW TO LOAD!!'; put '*/'; put '/**'; put '* First, CLOSE OUT changed records (if not a REPLACE)'; put '* Note that SAS does not support ANSI standard for UPDATE with a join condition.'; put '* However - this can be worked around using a nested subquery..'; put '*/'; put 'data _null_;'; put 'putlog "&sysmacroname: CLOSEOUTS commencing";'; put 'run;'; put '%if %mf_getattrn(&lastds,NLOBS)=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: No closeouts needed";'; put 'run;'; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put '%mp_abort(iftrue= (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL)'; put ',mac=&sysmacroname in &_program'; put ',msg=%str(&loadtype not yet supported in CAS engine)'; put ')'; put '/* create temp table for deletions */'; put '%local delds;%let delds=%mf_getuniquename(prefix=DC);'; put 'data casuser.&delds;'; put 'set work.bitemp5d_subquery;'; put 'run;'; put '/* delete the records */'; put 'proc cas ;'; put 'table.deleteRows / table={'; put 'caslib="&base_lib",'; put 'name="&base_dsn",'; put 'where="1=1",'; put 'whereTable={caslib=''CASUSER'',name="&delds"}'; put '};'; put 'quit;'; put '/* drop temp table */'; put 'proc sql;'; put 'drop table CASUSER.&delds;'; put '%end;'; put '%else %if (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL or &loadtype=UPDATE)'; put '%then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: &loadtype operation using &engine_type engine";'; put 'run;'; put '%local flexinow;'; put 'proc sql;'; put '/* if OLEDB then create a temp table for efficiency */'; put '%local innertable;'; put '%if &engine_type=OLEDB %then %do;'; put '%let innertable=[&temp_table];'; put '%let top_table=[dbo].&base_dsn;'; put '%let flexinow=&SQLNOW;'; put 'create table &base_lib.."&temp_table"n as'; put 'select * from work.bitemp5d_subquery;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'execute('; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put '%let innertable=%mf_getuniquename(prefix=XDCTEMP);'; put '%let top_table=&baselib_schema.&base_dsn;'; put '%let flexinow=timestamp &SQLNOW;'; put '/* make empty table first - must clone & drop extra cols'; put 'as autoload is bad */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'exec (create table &innertable (like &baselib_schema.&base_dsn)) by myAlias;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'exec (alter table &innertable alter sortkey none) by myAlias;'; put '%end;'; put '%let dropcols=%mf_wordsinstr1butnotstr2('; put 'str1=%upcase(%mf_getvarlist(&basecopy))'; put ',str2=%upcase(%mf_getvarlist(work.bitemp5d_subquery))'; put ');'; put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; put '%put &=dropcols;'; put '%let idx_val=%scan(&dropcols,&idx_pk);'; put 'exec(alter table &innertable drop column &idx_val;) by myAlias;;'; put '%end;'; put '/* create view to strip formats and avoid warns in log */'; put 'data work.vw_bitemp5d/view=work.vw_bitemp5d;'; put 'set work.bitemp5d_subquery;'; put 'format _all_;'; put 'run;'; put 'proc append base=&base_lib..&innertable ('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put 'data=work.vw_bitemp5d force nowarn;'; put 'run;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'execute('; put '%end;'; put '%else %do;'; put '%let innertable=bitemp5d_subquery;'; put '%let top_table=&base_lib..&base_dsn;'; put '%let flexinow=&now;'; put '%end;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put 'update &top_table set &tech_to=&flexinow'; put '%if %length(&processed)>0 %then %do;'; put ',&processed=&flexinow'; put '%end;'; put 'where &tech_from <= &flexinow and &flexinow < &tech_to and'; put '%end;'; put '%else %if &loadtype=UPDATE %then %do;'; put '/* changed records are deleted then re-appended when doing UPDATEs */'; put 'delete from &top_table where'; put '%end;'; put '%else %do;'; put '%put %str(ERR)OR: BUSTEMPORAL NOT YET SUPPORTED;'; put '%let syscc=5;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%goto end_of_macro;'; put '%end;'; put '/* perform join inside query as per'; put 'http://stackoverflow.com/questions/24629793/update-with-a-proc-sql */'; put 'exists( select 1 from &baselib_schema.&innertable where'; put '/* loop PK join */'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put '&base_dsn..&idx_val=&innertable..&idx_val and'; put '%end;'; put '%if &loadtype=BITEMPORAL %then %do;'; put '&base_dsn..&bus_from >= &innertable..&bus_from'; put 'and &base_dsn..&bus_to <= &innertable..&bus_to and'; put '%end;'; put '/* close the statement */'; put '1=1);'; put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; put '%then %do;'; put ') by myAlias;'; put 'execute (drop table &baselib_schema.&innertable) by myAlias;'; put '%end;'; put '%end;'; put 'quit;'; put 'data _null_;'; put 'putlog "&sysmacroname: Closeout complete";'; put 'run;'; put '/**'; put '* Append the new / updated records'; put '*/'; put '%if &engine_type=CAS %then %do;'; put '/* get varchar variables ready for casting */'; put '%local vcfmt vcrename vcassign vcdrop;'; put 'data _null_;'; put 'set work.bitemp_cols(where=(type=6)) end=last;'; put 'length vcrename vcassign vcdrop vcfmt $32767 rancol $32;'; put 'retain vcrename vcassign vcdrop vcfmt;'; put 'if _n_=1 then vcrename=''(rename=('';'; put 'rancol=resolve(''%mf_getuniquename()'');'; put 'vcfmt=trim(vcfmt)!!''length ''!!cats(name)!!'' varchar(*);'';'; put 'vcrename=trim(vcrename)!!'' ''!!cats(name,''='',rancol);'; put 'vcassign=cats(vcassign,name,''='',rancol,'';'');'; put 'vcdrop=cats(vcdrop,''drop ''!!rancol,'';'');'; put 'if last then do;'; put 'vcrename=cats(vcrename,''))'');'; put 'call symputx(''vcfmt'',vcfmt);'; put 'call symputx(''vcrename'',vcrename);'; put 'call symputx(''vcassign'',vcassign);'; put 'call symputx(''vcdrop'',vcdrop);'; put 'end;'; put 'run;'; put '/* prepare a temp cas table with varchars casted */'; put '%let tmp=%mf_getuniquename();'; put 'data casuser.&tmp ;'; put '&vcfmt'; put 'set work.bitemp6_unique &vcrename;'; put '&vcassign'; put '&vcdrop'; put 'run;'; put '/* load the table with varchars applied*/'; put 'data &base_lib..&base_dsn (append=yes )/sessref=dcsession ;'; put 'set casuser.&tmp;'; put 'run;'; put '/* drop temp table */'; put 'proc sql;'; put 'drop table CASUSER.&tmp;'; put '/* this code will not work as regular tables do not have varchars */'; put '/*'; put 'proc casutil;'; put 'load data=work.bitemp6_unique'; put 'outcaslib="&base_lib" casout="&base_dsn" append ;'; put 'quit;'; put '*/'; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put 'proc append base=&base_lib..&base_dsn'; put '%if &engine_type=REDSHIFT %then %do;'; put '('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put '%end;'; put 'data=bitemp6_unique force nowarn;'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc append base=&base_lib..&base_dsn data=bitemp6_unique force nowarn; run;'; put '%end;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '/* final check on syscc */'; put '%mp_abort(iftrue= (&syscc >4)'; put ',mac=&_program'; put ',msg=%str(!!Upload NOT successful!! Failed on actual update / append stage..)'; put ')'; put '%if &outds_audit ne 0 and &LOADTARGET=YES %then %do;'; put 'data work.vw_outds_orig /view=work.vw_outds_orig;'; put 'set work.bitemp0_base (drop=&md5_col);'; put 'where ___TMP___NEW_FLG=0;'; put 'drop ___TMP___NEW_FLG;'; put 'run;'; put '/* update the AUDIT table */'; put '%if %mf_existds(&outds_audit) %then %do;'; put 'options mprint;'; put '%mp_storediffs(&base_lib..&base_dsn'; put ',work.vw_outds_orig'; put ',&pk &bus_from'; put ',delds=&outds_del'; put ',modds=&outds_mod'; put ',appds=&outds_add'; put ',outds=work.mp_storediffs'; put ',processed_dttm=&now'; put ',loadref=%superq(etlsource)'; put ')'; put '/* exclude unchanged values in modified rows */'; put 'data work.mp_storediffs;'; put 'set work.mp_storediffs;'; put 'if MOVE_TYPE="M" and IS_PK=0 and IS_DIFF=0 then delete;'; put '* putlog load_ref= libref= dsn= key_hash= tgtvar_nm=;'; put 'run;'; put 'proc append base=&outds_audit data=work.mp_storediffs;'; put 'run;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%mp_abort(iftrue= (&syscc >4)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Problem in audit stage (&outds_audit))'; put ')'; put '%let user=%mf_getUser();'; put '/**'; put 'Notify as appropriate EMAILS DISABLED'; put '%sumo_alerts(ALERT_EVENT=UPDATE'; put ', ALERT_TARGET=&base_lib..&base_dsn'; put ', from_user= &user);'; put '*/'; put '/* monitor BiTemporal usage */'; put '%if &log=1 %then %do;'; put '%put syscc=&syscc;'; put '/* do not perform duration calc in pass through */'; put '%local dur;'; put 'data _null_;'; put 'now=symget(''now'');'; put 'dur=%sysfunc(datetime())-&now;'; put 'call symputx(''dur'',dur,''l'');'; put 'run;'; put 'proc sql;'; put 'insert into &dclib..mpe_dataloads'; put 'set libref=%upcase("&base_lib")'; put ',DSN=%upcase("&base_dsn")'; put ',ETLSOURCE="&ETLSOURCE"'; put ',LOADTYPE="&loadtype"'; put ',CHANGED_RECORDS=%mf_getattrn(&lastds,NLOBS)'; put ',NEW_RECORDS=%mf_getattrn(&outds_add,NLOBS)'; put ',DELETED_RECORDS=%mf_getattrn(&outds_del,NLOBS)'; put ',DURATION=&dur'; put ',MAC_VER="v&ver"'; put ',user_nm="&user"'; put ',PROCESSED_DTTM=&now;'; put 'quit;'; put '%put syscc=&syscc;'; put '%end;'; put '%end_of_macro:'; put '%mend bitemporal_dataloader;'; put '%macro dc_getlibs(outds=mm_getlibs);'; put 'proc sql;'; put 'create table &outds as'; put 'select distinct libname as LibraryRef'; put ',libname as LibraryName length=256'; put ',engine'; put ','''' as libraryid length=17'; put 'from dictionary.libnames'; put 'where libname not in (''WORK'',''SASUSER'');'; put 'insert into &syslast values ("&DC_LIBREF", "&DC_LIBNAME",'''',''V9'');'; put '%mend dc_getlibs;'; put '%macro mpe_refreshlibs(lib=0);'; put '%dc_getlibs(outds=work.mm_getLibs)'; put 'proc sort data=mm_getlibs;'; put 'by libraryref libraryname;'; put 'run;'; put 'data libs0;'; put 'set mm_getlibs;'; put 'by libraryref;'; put '%if &lib ne 0 %then %do;'; put 'where upcase(libraryref)="%upcase(&lib)";'; put '%end;'; put 'if "%mf_getplatform()"="SASMETA" then do;'; put '/* note - invalid libraries can result in exception errors. If this happens,'; put 'configure the dc_viewlib_check variable to NO in Data Controller Settings */'; put 'rc=libname(libraryref,,''meta'',cats(''library="'',libraryname,''";''));'; put 'drop rc;'; put 'if rc ne 0 then do;'; put 'putlog "NOTE: Library " libraryname " does not exist!!";'; put 'putlog (_all_) (=);'; put 'delete;'; put 'end;'; put 'end;'; put 'if not first.libraryref then delete;'; put 'run;'; put 'proc sql;'; put 'create table libs1 as'; put 'select distinct libname'; put ',engine'; put ',path'; put ',level'; put ',sysname'; put ',sysvalue'; put 'from dictionary.libnames'; put 'order by libname, level,engine,path;'; put 'data libs2;'; put 'set libs1;'; put 'length tran $1024;'; put 'if missing(sysname) then sysname=''Missing'';'; put 'select(sysname);'; put 'when(''Access Permission'') tran=''Permissions'';'; put 'when(''Owner Name'') tran=''Owner'';'; put 'when(''Schema/Owner'') tran=''schema'';'; put 'otherwise tran=sysname;'; put 'end;'; put 'run;'; put 'proc transpose data=libs2 out=libs3;'; put 'by libname level engine path;'; put 'var sysvalue;'; put 'id tran;'; put 'run;'; put 'data libs4(rename=(libname=libref));'; put 'length paths $8192 perms owners schemas $500 permissions owner schema $1024;'; put 'if _n_=1 then call missing (of _all_);'; put 'set libs3;'; put 'by libname;'; put 'if engine=''V9'' then engine=''BASE'';'; put 'if first.libname then do;'; put 'retain paths perms owners schemas;'; put 'paths=''(''!!quote(trim(path));'; put 'perms=permissions;'; put 'owners=owner;'; put 'schemas=schema;'; put 'end;'; put 'else do;'; put 'paths=trim(paths)!!'' ''!!quote(trim(path));'; put 'perms=trim(perms)!!'',''!!trim(permissions);'; put 'owners=trim(owners)!!'',''!!trim(owner);'; put 'schemas=trim(schemas)!!'' ''!!trim(schema);'; put 'end;'; put 'if last.libname then do;'; put 'paths=trim(paths)!!'')'';'; put 'schemas=cats(schemas);'; put 'output;'; put 'end;'; put 'keep libname engine paths perms owners schemas;'; put 'run;'; put 'proc sql;'; put 'create table libs5 as'; put 'select a.libref'; put ',coalescec(b.engine,a.engine) as engine length=32'; put ',b.libraryname as libname'; put ',a.paths'; put ',a.perms'; put ',a.owners'; put ',a.schemas'; put ',b.libraryid as libid'; put 'from libs4 a'; put 'left join libs0 b'; put 'on upcase(a.libref)=upcase(b.libraryref)'; put 'where libref not in (''SASWORK'',''WORK'',''SASUSER'',''CASUSER'',''TEMP'',''STPSAMP'''; put ',''MAPSGFK'');'; put '%bitemporal_dataloader(base_lib=&dc_libref'; put ',base_dsn=MPE_DATACATALOG_LIBS'; put ',append_dsn=libs5'; put ',PK=LIBREF'; put ',etlsource=&_program'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put ',dclib=&dc_libref'; put ')'; put '%mend mpe_refreshlibs;'; put '/** @cond */'; put '%macro mf_existfeature(feature'; put ')/*/STORE SOURCE*/;'; put '%let feature=%upcase(&feature);'; put '%local platform;'; put '%let platform=%mf_getplatform();'; put '%if &feature= %then %do;'; put '%put No feature was requested for detection;'; put '%end;'; put '%else %if &feature=COLCONSTRAINTS %then %do;'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=PROCLUA %then %do;'; put '/* https://blogs.sas.com/content/sasdummy/2015/08/03/using-lua-within-your-sas-programs */'; put '%if &platform=SASVIYA %then 1;'; put '%else %if "&sysver"="9.2" or "&sysver"="9.3" %then 0;'; put '%else %if "&SYSVLONG" < "9.04.01M3" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=DBMS_MEMTYPE %then %do;'; put '/* does dbms_memtype exist in dictionary.tables? */'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=EXPORTXLS %then %do;'; put '/* is it possible to PROC EXPORT an excel file? */'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 1;'; put '%else %if %sysfunc(sysprod(SAS/ACCESS Interface to PC Files)) = 1 %then 1;'; put '%else 0;'; put '%end;'; put '%else %do;'; put '-1'; put '%put &sysmacroname: &feature not found;'; put '%end;'; put '%mend mf_existfeature;'; put '/** @endcond */'; put '%macro mp_getconstraints(lib=WORK'; put ',ds='; put ',outds=mp_getconstraints'; put ',mdebug=0'; put ')/*/STORE SOURCE*/;'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '/**'; put '* Cater for environments where sashelp.vcncolu is not available'; put '*/'; put '%if %sysfunc(exist(sashelp.vcncolu,view))=0 %then %do;'; put 'proc sql;'; put 'create table &outds('; put 'libref char(8)'; put ',TABLE_NAME char(32)'; put ',constraint_type char(8) label=''Constraint Type'''; put ',constraint_name char(32) label=''Constraint Name'''; put ',column_name char(32) label=''Column'''; put ',constraint_order num'; put ');'; put '%return;'; put '%end;'; put '/**'; put '* Neither dictionary tables nor sashelp provides a constraint order column,'; put '* however they DO arrive in the correct order. So, create the col.'; put '**/'; put '%local vw;'; put '%let vw=%mf_getuniquename(prefix=mp_getconstraints_vw_);'; put 'data &vw /view=&vw;'; put 'set sashelp.vcncolu;'; put 'where table_catalog="&lib";'; put '/* use retain approach to reset the constraint order with each constraint */'; put 'length tmp $1000;'; put 'retain tmp;'; put 'drop tmp;'; put 'if tmp ne catx(''|'',table_catalog,table_name,constraint_name) then do;'; put 'constraint_order=1;'; put 'end;'; put 'else constraint_order+1;'; put 'tmp=catx(''|'',table_catalog, table_name,constraint_name);'; put 'run;'; put '/* must use SQL as proc datasets does not support length changes */'; put 'proc sql noprint;'; put 'create table &outds as'; put 'select upcase(a.TABLE_CATALOG) as libref'; put ',upcase(a.TABLE_NAME) as TABLE_NAME'; put ',a.constraint_type'; put ',a.constraint_name'; put ',b.column_name'; put ',b.constraint_order'; put 'from dictionary.TABLE_CONSTRAINTS a'; put 'left join &vw b'; put 'on upcase(a.TABLE_CATALOG)=upcase(b.TABLE_CATALOG)'; put 'and upcase(a.TABLE_NAME)=upcase(b.TABLE_NAME)'; put 'and a.constraint_name=b.constraint_name'; put '/**'; put '* We cannot apply this clause to the underlying dictionary table. See:'; put '* https://communities.sas.com/t5/SAS-Programming/Unexpected-Where-Clause-behaviour-in-dictionary-TABLE/m-p/771554#M244867'; put '* cannot use`where calculated libref="&lib"` either as it will STILL execute'; put '* all the underlying constraint queries, causing exception errors in some'; put '* cases: https://github.com/sasjs/core/issues/283'; put '*/'; put 'where a.TABLE_CATALOG="&lib"'; put '%if "&ds" ne "" %then %do;'; put 'and upcase(a.TABLE_NAME)="&ds"'; put 'and upcase(b.TABLE_NAME)="&ds"'; put '%end;'; put 'order by libref, table_name, constraint_name, constraint_order'; put ';'; put '/* tidy up */'; put '%mp_dropmembers('; put '&vw,'; put 'iftrue=(&mdebug=0)'; put ')'; put '%mend mp_getconstraints;'; put '%macro mpe_refreshtables(lib,ds=#all);'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '%local engine; %let engine=%mf_getengine(&lib);'; put '%local schema; %let schema=%mf_getschema(&lib);'; put '%put running &sysmacroname &lib(&engine &schema) for &ds;'; put 'proc sql;'; put 'create table cols as'; put 'select libname as libref'; put ',upcase(memname) as dsn'; put ',memtype'; put ',upcase(name) as name'; put ',type'; put ',length'; put ',varnum'; put ',label'; put ',format'; put ',idxusage'; put ',notnull'; put 'from dictionary.columns'; put 'where upcase(libname)="&lib"'; put '%if &ds ne #ALL %then %do;'; put 'and upcase(memname)="&ds"'; put '%end;'; put ';'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc afer &lib cols extraction)'; put ')'; put '%if &engine=SQLSVR %then %do;'; put 'proc sql;'; put 'connect using &lib;'; put 'create table work.indexes as'; put 'select * from connection to &lib('; put 'select'; put 's.name as SchemaName,'; put 't.name as memname,'; put 'tc.name as name,'; put 'ic.key_ordinal as KeyOrderNr'; put 'from'; put 'sys.schemas s'; put 'inner join sys.tables t on s.schema_id=t.schema_id'; put 'inner join sys.indexes i on t.object_id=i.object_id'; put 'inner join sys.index_columns ic on i.object_id=ic.object_id'; put 'and i.index_id=ic.index_id'; put 'inner join sys.columns tc on ic.object_id=tc.object_id'; put 'and ic.column_id=tc.column_id'; put 'where i.is_primary_key=1'; put 'and s.name=%str(%'')&schema%str(%'')'; put 'order by t.name, ic.key_ordinal ;'; put ');disconnect from &lib;'; put 'create table finalcols as'; put 'select a.*'; put ',case when b.name is not null then 1 else 0 end as pk_ind'; put 'from work.cols a'; put 'left join work.indexes b'; put 'on a.dsn=b.memname'; put 'and upcase(a.name)=upcase(b.name)'; put 'order by libref,dsn;'; put '%end;'; put '%else %do;'; put '%local dsn;'; put '%if &ds = #ALL %then %let dsn=;'; put '%mp_getconstraints(lib=&lib.,ds=&dsn,outds=work.constraints)'; put '/* extract cols that are clearly primary keys */'; put 'proc sql;'; put 'create table work.pk4sure as'; put 'select libref'; put ',table_name'; put ',constraint_name'; put ',constraint_order'; put ',column_name as name'; put 'from work.constraints'; put 'where constraint_type=''PRIMARY'''; put 'order by 1,2,3,4;'; put '/* extract unique constraints where every col is also NOT NULL */'; put 'proc sql;'; put 'create table work.sum as'; put 'select a.libref'; put ',a.table_name'; put ',a.constraint_name'; put ',count(a.column_name) as unq_cnt'; put ',count(b.column_name) as nul_cnt'; put 'from work.constraints(where=(constraint_type =''UNIQUE'')) a'; put 'left join work.constraints(where=(constraint_type =''NOT NULL'')) b'; put 'on a.libref=b.libref'; put 'and a.table_name=b.table_name'; put 'and a.column_name=b.column_name'; put 'group by 1,2,3'; put 'having unq_cnt=nul_cnt;'; put '/* extract cols from the relevant unique constraints */'; put 'create table work.pkdefault as'; put 'select a.libref'; put ',a.table_name'; put ',a.constraint_name'; put ',b.constraint_order'; put ',b.column_name as name'; put 'from work.sum a'; put 'left join work.constraints(where=(constraint_type =''UNIQUE'')) b'; put 'on a.libref=b.libref'; put 'and a.table_name=b.table_name'; put 'and a.constraint_name=b.constraint_name'; put 'order by 1,2,3,4;'; put '/* extract cols from the relevant unique INDEXES */'; put 'create table work.pkfromindex as'; put 'select libname as libref'; put ',memname as table_name'; put ',indxname as constraint_name'; put ',indxpos as constraint_order'; put ',name'; put 'from dictionary.indexes'; put 'where nomiss=''yes'' and unique=''yes'' and upcase(libname)="&lib"'; put '%if &ds ne #ALL %then %do;'; put 'and upcase(memname)="&ds"'; put '%end;'; put 'order by 1,2,3,4;'; put '/* create one table */'; put 'data work.finalpks;'; put 'set pkdefault pk4sure pkfromindex;'; put 'pk_ind=1;'; put '/* if there are multiple unique constraints, take the first */'; put 'by libref table_name constraint_name;'; put 'retain keepme;'; put 'if first.table_name then keepme=1;'; put 'if first.constraint_name and not first.table_name then keepme=0;'; put 'if keepme=1;'; put 'run;'; put '/* join back to starting table */'; put 'proc sql;'; put 'create table finalcols as'; put 'select a.*'; put ',b.constraint_order'; put ',case when b.pk_ind=1 then 1 else 0 end as pk_ind'; put 'from work.cols a'; put 'left join work.finalpks b'; put 'on a.libref=b.libref'; put 'and a.dsn=b.table_name'; put 'and upcase(a.name)=upcase(b.name)'; put 'order by libref,dsn,constraint_order;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc afer &lib indexes extraction)'; put ')'; put '/* load columns */'; put '%bitemporal_dataloader(base_lib=&mpelib'; put ',base_dsn=mpe_datacatalog_vars'; put ',append_dsn=finalcols'; put ',PK=LIBREF DSN NAME'; put ',etlsource=&sysmacroname'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put '%if &ds ne #ALL %then %do;'; put ',close_vars=LIBREF DSN'; put '%end;'; put ',dclib=&mpelib'; put ')'; put '/* prepare tables */'; put 'proc sql;'; put 'create table work.tabs as select'; put 'libname as libref'; put ',upcase(memname) as dsn'; put ',memtype'; put '%if %mf_existfeature(DBMS_MEMTYPE)=1 %then %do;'; put ',dbms_memtype'; put '%end;'; put '%else %do;'; put ',''n/a'' as dbms_memtype format=$32.'; put '%end;'; put ',typemem'; put ',memlabel'; put ',nvar'; put ',compress'; put 'from dictionary.tables'; put 'where upcase(libname)="&lib"'; put '%if &ds ne #ALL %then %do;'; put 'and upcase(memname)="&ds"'; put '%end;'; put ';'; put 'data tabs2;'; put 'set finalcols;'; put 'length pk_fields $512;'; put 'retain pk_fields;'; put 'by libref dsn;'; put 'if first.dsn then pk_fields='''';'; put 'if pk_ind=1 then pk_fields=catx('' '',pk_fields,name);'; put 'if last.dsn then output;'; put 'run;'; put 'proc sql;'; put 'create table work.finaltabs as'; put 'select a.libref'; put ',a.dsn'; put ',a.memtype'; put ',a.dbms_memtype'; put ',a.typemem'; put ',a.memlabel'; put ',a.nvar'; put ',a.compress'; put ',b.pk_fields'; put 'from work.tabs a'; put 'left join work.tabs2 b'; put 'on a.libref=b.libref'; put 'and a.dsn=b.dsn;'; put '%bitemporal_dataloader(base_lib=&mpelib'; put ',base_dsn=mpe_datacatalog_tabs'; put ',append_dsn=finaltabs'; put ',PK=LIBREF DSN'; put ',etlsource=&sysmacroname'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put ',dclib=&mpelib'; put '%if &ds ne #ALL %then %do;'; put ',close_vars=LIBREF'; put '%end;'; put ')'; put '/* prepare table frequently changing attributes */'; put 'proc sql;'; put '%if &engine=SQLSVR %then %do;'; put 'connect using &lib;'; put 'create table work.attrs as select * from connection to &lib('; put 'SELECT SCHEMA_NAME(schema_id) as ''schema'', name, create_date, modify_date'; put 'FROM sys.tables ;'; put ');'; put 'create table work.nobs as select * from connection to &lib('; put 'SELECT SCHEMA_NAME(A.schema_id) AS ''schema'''; put ',A.Name, AVG(B.rows) AS ''RowCount'''; put 'FROM sys.objects A'; put 'INNER JOIN sys.partitions B ON A.object_id = B.object_id'; put 'WHERE A.type = ''U'''; put 'GROUP BY A.schema_id, A.Name'; put ');'; put 'disconnect from &lib;'; put 'create table statustabs as select'; put 'a.libref'; put ',a.dsn'; put ',b.create_date as crdate'; put ',b.modify_date as modate'; put ',. as filesize'; put ',c.RowCount as nobs'; put 'from work.tabs a'; put 'left join work.attrs(where=(schema="&schema")) b'; put 'on upcase(a.dsn)=upcase(b.name)'; put 'left join work.nobs(where=(schema="&schema")) c'; put 'on upcase(a.dsn)=upcase(c.name);'; put '%end;'; put '%else %do;'; put 'create table statustabs as select'; put 'libname as libref'; put ',upcase(memname) as dsn'; put ',crdate'; put ',modate'; put ',filesize'; put ',nobs'; put 'from dictionary.tables'; put 'where upcase(libname)="&lib"'; put '%if &ds ne #ALL %then %do;'; put 'and upcase(memname)="&ds"'; put '%end;'; put ';'; put '%end;'; put '%bitemporal_dataloader(base_lib=&mpelib'; put ',base_dsn=mpe_datastatus_tabs'; put ',append_dsn=statustabs'; put ',PK=LIBREF DSN'; put ',etlsource=&sysmacroname'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put ',dclib=&mpelib'; put '%if &ds ne #ALL %then %do;'; put ',close_vars=LIBREF'; put '%end;'; put ')'; put '%if &ds = #ALL %then %do;'; put 'proc sql;'; put 'create table work.sumcat as'; put 'select libname as libref,'; put 'count(distinct memname) as catalog_cnt'; put 'from dictionary.catalogs'; put 'where upcase(libname)="&lib"'; put 'group by 1;'; put 'create table work.sumdsn as select'; put 'libref'; put ',sum(filesize) as libsize'; put ',count(*) as table_cnt'; put 'from statustabs'; put 'group by 1;'; put 'create table work.libs as'; put 'select libref from work.sumcat'; put 'union'; put 'select libref from work.sumdsn;'; put 'create table work.statuslibs as'; put 'select a.libref,'; put 'b.libsize,'; put 'b.table_cnt,'; put 'c.catalog_cnt'; put 'from work.libs a'; put 'left join work.sumdsn b'; put 'on a.libref=b.libref'; put 'left join work.sumcat c'; put 'on a.libref=c.libref;'; put '%bitemporal_dataloader(base_lib=&mpelib'; put ',base_dsn=mpe_datastatus_libs'; put ',append_dsn=statuslibs'; put ',PK=LIBREF'; put ',etlsource=&sysmacroname'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put ',dclib=&mpelib'; put ')'; put '%end;'; put '%mend mpe_refreshtables;'; put '%macro mpe_refreshcatalogs(lib,cat=#all);'; put '%let lib=%upcase(&lib);'; put '%let cat=%upcase(&cat);'; put '%put running &sysmacroname &lib for &cat;'; put 'proc sql;'; put 'create table work.catdata as'; put 'select libname as libref,'; put 'memname,'; put 'objname,'; put 'objtype,'; put 'objdesc,'; put 'created,'; put 'modified,'; put 'alias,'; put 'level'; put 'from dictionary.catalogs'; put 'where upcase(libname)="&lib"'; put '%if &cat ne #ALL %then %do;'; put 'and upcase(memname)="&cat"'; put '%end;'; put ';'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc afer &lib objects extraction)'; put ')'; put '/* load mpe_datacatalog_CATS */'; put 'proc sql;'; put 'create table datacats as select distinct libref,memname from catdata;'; put '%bitemporal_dataloader(base_lib=&mpelib'; put ',base_dsn=mpe_datacatalog_CATS'; put ',append_dsn=datacats'; put ',PK=LIBREF MEMNAME'; put ',etlsource=&sysmacroname'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put '%if &cat = #ALL %then %do;'; put ',close_vars=LIBREF'; put '%end;'; put ',dclib=&mpelib'; put ')'; put '/* load mpe_datacatalog_objsS */'; put 'proc sql;'; put 'create table dataobjs as'; put 'select distinct libref,'; put 'memname,'; put 'objname,'; put 'objtype,'; put 'objdesc,'; put 'alias'; put 'from catdata;'; put 'quit;'; put '%bitemporal_dataloader(base_lib=&mpelib'; put ',base_dsn=mpe_datacatalog_OBJS'; put ',append_dsn=dataobjs'; put ',PK=LIBREF MEMNAME OBJNAME OBJTYPE'; put ',etlsource=&sysmacroname'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put '%if &cat = #ALL %then %do;'; put ',close_vars=LIBREF MEMNAME'; put '%end;'; put ',dclib=&mpelib'; put ')'; put '%put load mpe_datastatus_OBJS;'; put 'proc sql;'; put 'create table statusobjs as'; put 'select distinct libref,'; put 'memname,'; put 'objname,'; put 'objtype,'; put 'created,'; put 'modified,'; put 'level'; put 'from catdata;'; put '%bitemporal_dataloader(base_lib=&mpelib'; put ',base_dsn=mpe_datastatus_OBJS'; put ',append_dsn=statusobjs'; put ',PK=LIBREF MEMNAME OBJNAME OBJTYPE'; put ',etlsource=&sysmacroname'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put '%if &cat = #ALL %then %do;'; put ',close_vars=LIBREF MEMNAME'; put '%end;'; put ',dclib=&mpelib'; put ')'; put '%put load mpe_datastatus_cats;'; put 'proc sql;'; put 'create table statuscats as'; put 'select libref,'; put 'memname,'; put 'count(*) as nobjs,'; put 'min(created) as created,'; put 'max(modified) as modified'; put 'from catdata'; put 'group by 1,2;'; put '%bitemporal_dataloader(base_lib=&mpelib'; put ',base_dsn=mpe_datastatus_cats'; put ',append_dsn=statuscats'; put ',PK=LIBREF MEMNAME'; put ',etlsource=&sysmacroname'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put '%if &cat = #ALL %then %do;'; put ',close_vars=LIBREF'; put '%end;'; put ',dclib=&mpelib'; put ')'; put '%mend mpe_refreshcatalogs;'; put '%macro dc_refreshcatalog(libref);'; put '%if #&libref# ne ## %then %do;'; put '%put &sysmacroname: assigning specific libref, &libref;'; put '%dc_assignlib(WRITE,&libref) /* write just in order to assign direct lib */'; put '%mpe_refreshlibs(lib=&libref)'; put '%mpe_refreshtables(&libref)'; put '%mpe_refreshcatalogs(&libref)'; put '%end;'; put '%else %do;'; put '%mpe_refreshlibs()'; put 'filename executor catalog ''work.code.code.source'';'; put 'data libraries;'; put 'set &mpelib..mpe_datacatalog_libs;'; put 'where &dc_dttmtfmt. le TX_TO;'; put 'file executor;'; put 'str=cats(''%mpe_refreshtables('',libref,'')'');'; put 'put str;'; put 'str=cats(''%mpe_refreshcatalogs('',libref,'')'');'; put 'put str;'; put 'putlog str;'; put 'run;'; put '%inc executor;'; put '%end;'; put '%mend dc_refreshcatalog;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file refreshcatalog.sas'; put '@brief Refreshes the library data catalog'; put '@details A library may be passed in a LIBREF url param.'; put '

SAS Macros

'; put '@li mpeinit.sas'; put '@li dc_refreshcatalog.sas'; put '@version 9.3'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%global libref;'; put '%mpeinit()'; put '%dc_refreshcatalog(&libref)'; put 'data _null_;'; put 'file _webout;'; put 'put ''

Catalog Refresh Complete

'';'; put 'run;'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=refreshlibs; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '/** @cond */'; put '%macro mf_existvar(libds /* 2 part dataset name */'; put ', var /* variable name */'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid=0 %then %do;'; put '%put %sysfunc(sysmsg());'; put '0'; put '%end;'; put '%else %if %length(&var)=0 %then %do;'; put '0'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%sysfunc(varnum(&dsid,&var))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_existvar;'; put '/** @endcond */'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_getvartype(libds /* two level name */'; put ', var /* variable name from which to return the type */'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vtype rc;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid. > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable type (C/N) */'; put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let vtype = %str( );'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable type */'; put '&vtype'; put '%mend mf_getvartype;'; put '%macro mf_getattrc('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrc(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrc;'; put '%macro mp_lockfilecheck('; put 'libds'; put ')/*/STORE SOURCE*/;'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=checklock.sas'; put ',msg=Aborting with syscc=&syscc on entry.'; put ')'; put '%mp_abort(iftrue= ("&libds"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(libds not provided)'; put ')'; put '%local msg lib ds;'; put '%let lib=%upcase(%scan(&libds,1,.));'; put '%let ds=%upcase(%scan(&libds,2,.));'; put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; put '%if %scan(&libds,2,-)=FC %then %do;'; put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=checklock.sas'; put ',msg=%superq(msg)'; put ')'; put 'data _null_;'; put 'putlog "Checking engine & member type";'; put 'run;'; put '%local engine memtype;'; put '%let memtype=%mf_getattrc(&libds,MTYPE);'; put '%let engine=%mf_getattrc(&libds,ENGINE);'; put '%if &engine ne V9 and &engine ne BASE %then %do;'; put 'data _null_;'; put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; put 'putlog "SAS lock check will not be performed";'; put 'run;'; put '%return;'; put '%end;'; put '%else %if &memtype ne DATA %then %do;'; put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; put '%return;'; put '%end;'; put 'data _null_;'; put 'putlog "Engine = &engine, memtype=&memtype";'; put 'putlog "Attempting lock statement";'; put 'run;'; put 'lock &libds;'; put '%local abortme;'; put '%let abortme=0;'; put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; put '%put %str(ERR)OR: &sysmacroname: &msg;'; put '%let abortme=1;'; put '%end;'; put 'lock &libds clear;'; put '%mp_abort(iftrue= (&abortme=1)'; put ',mac=&sysmacroname'; put ',msg=%superq(msg)'; put ')'; put '%mend mp_lockfilecheck;'; put '%macro mp_lockanytable('; put 'action'; put ',lib= WORK'; put ',ds=0'; put ',ref='; put ',ctl_ds=0'; put ',loops=25'; put ',loop_secs=1'; put ');'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(dataset was not provided)'; put ')'; put '%mp_abort(iftrue= (&ctl_ds=0)'; put ',mac=&sysmacroname'; put ',msg=%str(Control dataset was not provided)'; put ')'; put '/* set up lib & mac vars */'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '%let action=%upcase(&action);'; put '%local user x trans msg abortme;'; put '%let user=%mf_getuser();'; put '%let abortme=0;'; put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid action (&action) provided)'; put ')'; put '/* if an err condition exists, exit before we even begin */'; put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; put ',mac=&sysmacroname'; put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; put ')'; put '/* do not bother locking work tables (else may affect all WORK libraries) */'; put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; put '%put NOTE: WORK libraries will not be registered in the locking system.;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=&sysmacroname'; put ',msg=%str(cannot continue when options obs = 0)'; put ')'; put '%if &ACTION=LOCK %then %do;'; put '/* abort if a SAS lock is already in place, or cannot be applied */'; put '%mp_lockfilecheck(&lib..&ds)'; put '/* next, check there is a record for this table */'; put '%local record_exists_check;'; put 'proc sql noprint;'; put 'select count(*) into: record_exists_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &record_exists_check=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: adding record to lock table..";'; put 'run;'; put 'data ;'; put 'if 0 then set &ctl_ds;'; put 'LOCK_LIB ="&lib";'; put 'LOCK_DS="&ds";'; put 'LOCK_STATUS_CD=''LOCKED'';'; put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'LOCK_USER_NM="&user";'; put 'LOCK_PID="&sysjobid";'; put 'LOCK_REF="&ref";'; put 'output;stop;'; put 'run;'; put '%let trans=&syslast;'; put 'proc append base=&ctl_ds data=&trans;'; put 'run;'; put '%end;'; put '/* if record does exist, perform lock attempts */'; put '%else %do x=1 %to &loops;'; put 'data _null_;'; put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''LOCKED'''; put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '/**'; put '* NOTE - occasionally SQL server will return an err code (deadlocked'; put '* transaction). If so, ignore it, keep calm, and carry on..'; put '*/'; put '%if &syscc>0 %then %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; put 'putlog "Resetting err conditions and re-attempting.";'; put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%let syscc=0;'; put '%let sqlrc=0;'; put '%end;'; put '/* now check if the record was successfully updated */'; put '%local success_check;'; put 'proc sql noprint;'; put 'select count(*) into: success_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; put 'quit;'; put '%if &success_check=0 %then %do;'; put '%if &x < &loops %then %do;'; put '/* pause before next check */'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; put 'putlog "%sysfunc(sleep(&loop_secs)) seconds.. ";'; put 'putlog "NOTE- (iteration &x of &loops)";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%end;'; put '%else %do;'; put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; put 'Please ask your administrator to investigate!;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%else %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%if &syscc>0 %then %do;'; put '%put setting syscc(&syscc) back to 0;'; put '%let syscc=0;'; put '%end;'; put '%let x=&loops; /* no more iterations needed */'; put '%end;'; put '%end;'; put '%end;'; put '%else %if &ACTION=UNLOCK %then %do;'; put '%local status cnt;'; put '%let cnt=0;'; put 'proc sql noprint;'; put 'select count(*) into: cnt from &ctl_ds where LOCK_LIB ="&lib" & LOCK_DS="&ds";'; put '%if &cnt=0 %then %do;'; put '%put %str(WAR)NING: &lib..&ds was not previously locked in &ctl_ds!;'; put '%end;'; put '%else %do;'; put 'select LOCK_STATUS_CD into: status from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &status=LOCKED %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''UNLOCKED'''; put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%end;'; put '%else %if &status=UNLOCKED %then %do;'; put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; put '%end;'; put '%else %do;'; put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%end;'; put '%else %do;'; put '%let msg=lock_anytable given unsupported action (&action);'; put '%let abortme=1;'; put '%end;'; put '/* catch errs - mp_abort must be called outside of a logic block */'; put '%mp_abort(iftrue=(&abortme=1),'; put 'msg=%superq(msg),'; put 'mac=&sysmacroname'; put ')'; put '%exit_macro:'; put 'data _null_;'; put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; put 'run;'; put '%mend mp_lockanytable;'; put '%macro bitemporal_closeouts('; put 'tech_from=tx_from_dttm'; put ',tech_to = tx_to_dttm /* Technical TO datetime variable.'; put 'Req''d on BASE table only. */'; put ',base_lib=WORK /* Libref of the BASE table. */'; put ',base_dsn=BASETABLE /* Name of BASE table. */'; put ',append_lib=WORK /* Libref of the STAGING table. */'; put ',append_dsn=APPENDTABLE /* Name of STAGING table. */'; put ',PK= name sex /* Business key, space separated. */'; put '/* Should INCLUDE BUS_FROM field if relevant. */'; put ',NOW=DEFINE'; put ',FILTER= /* supply a filter to limit the update */'; put ',outdest= /* supply an unquoted filepath/filename.ext to get'; put 'a text file containing the update statements */'; put ',loadtype='; put ',loadtarget=YES /* if <> YES will return without changing anything */'; put ');'; put '%put ENTERING &sysmacroname;'; put '%local x var start;'; put '%let start=%sysfunc(datetime());'; put '%dc_assignlib(WRITE,&base_lib)'; put '%dc_assignlib(WRITE,&append_lib)'; put '%if &now=DEFINE %then %let now=&dc_dttmtfmt.;'; put '%put &=now;'; put '/**'; put '* perform basic checks'; put '*/'; put '/* do tables exist? */'; put '%if not %sysfunc(exist(&base_lib..&base_dsn)) %then %do;'; put '%mp_abort(msg=&base_lib..&base_dsn does not exist)'; put '%end;'; put '%else %if %sysfunc(exist(&append_lib..&append_dsn))=0'; put 'and %sysfunc(exist(&append_lib..&append_dsn,VIEW))=0 %then %do;'; put '%mp_abort(msg=&append_lib..&append_dsn does not exist)'; put '%end;'; put '/* do TX columns exist? */'; put '%if &loadtype ne UPDATE %then %do;'; put '%if not %mf_existvar(&base_lib..&base_dsn,&tech_from) %then %do;'; put '%mp_abort(msg=&tech_from does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%else %if not %mf_existvar(&base_lib..&base_dsn,&tech_to) %then %do;'; put '%mp_abort(msg=&tech_to does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%end;'; put '/* do PK columns exist? */'; put '%do x=1 %to %sysfunc(countw(&PK));'; put '%let var=%scan(&pk,&x,%str( ));'; put '%if not %mf_existvar(&base_lib..&base_dsn,&var) %then %do;'; put '%mp_abort(msg=&var does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%else %if not %mf_existvar(&append_lib..&append_dsn,&var) %then %do;'; put '%mp_abort(msg=&var does not exist on &append_lib..&append_dsn)'; put '%end;'; put '%end;'; put '/* check uniqueness */'; put 'proc sort data=&append_lib..&append_dsn'; put 'out=___closeout1 noduprecs dupout=___closeout1a;'; put 'by &pk;'; put 'run;'; put '%if %mf_getattrn(___closeout1a,NLOBS)>0 %then'; put '%put NOTE: dups on (&PK) in (&append_lib..&append_dsn);'; put '/* is &NOW value within a tolerance? Should not allow renegade closeouts.. */'; put '%local gap;'; put '%let gap=0;'; put 'data _null_;'; put 'now=&now;'; put 'gap=intck(''HOURS'',now,datetime());'; put 'call symputx(''gap'',gap,''l'');'; put 'run;'; put '%mf_abort('; put 'iftrue=(&gap > 24),'; put 'msg=NOW variable (&now) is not within a 24hr tolerance'; put ')'; put '/* have any warnings / errs occurred thus far? If so, abort */'; put '%mf_abort('; put 'iftrue=(&syscc>0),'; put 'msg=Aborted due to SYSCC=&SYSCC status'; put ')'; put '/**'; put '* Create closeout statements. These are sent as individual SQL statements'; put '* to ensure pass-through utilisation. The update_cnt variable monitors'; put '* how many records were actually updated on the target table.'; put '*/'; put '%local update_cnt;'; put '%let update_cnt=0;'; put 'filename tmp temp;'; put 'data _null_;'; put 'set ___closeout1;'; put 'file tmp;'; put 'if _n_=1 then put ''proc sql noprint;'' ;'; put 'length string $32767.;'; put '%if &loadtype=UPDATE %then %do;'; put 'put "delete from &base_lib..&base_dsn where 1";'; put '%end;'; put '%else %do;'; put 'now=symget(''now'');'; put 'put "update &base_lib..&base_dsn set &tech_to= " now @;'; put '%if %mf_existvar(&base_lib..&base_dsn,PROCESSED_DTTM) %then %do;'; put 'put " ,PROCESSED_DTTM=" now @;'; put '%end;'; put 'put " where " now " lt &tech_to ";'; put '%end;'; put '%do x=1 %to %sysfunc(countw(&PK));'; put '%let var=%scan(&pk,&x,%str( ));'; put '%if %mf_getvartype(&base_lib..&base_dsn,&var)=C %then %do;'; put '/* use single quotes to avoid ampersand resolution in data */'; put 'string=" & &var=''"!!trim(prxchange("s/''/''''/",-1,&var))!!"''";'; put '%end;'; put '%else %do;'; put 'string=cats(" & &var=",&var);'; put '%end;'; put 'put string;'; put '%end;'; put 'put "&filter ;";'; put 'put ''%let update_cnt=%eval(&update_cnt+&sqlobs);%put update_cnt=&update_cnt;'';'; put 'run;'; put 'data _null_;'; put 'infile tmp;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%if &loadtarget ne YES %then %return;'; put '/* ensure we have a lock */'; put '%mp_lockanytable(LOCK,'; put 'lib=&base_lib,ds=&base_dsn'; put ',ref=bitemporal_closeouts'; put ',ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'options source2;'; put '%inc tmp;'; put 'filename tmp clear;'; put '/**'; put '* Update audit tracker'; put '*/'; put '%local newobs; %let newobs=%mf_getattrn(work.___closeout1,NLOBS);'; put '%local user; %let user=%mf_getuser();'; put 'proc sql;'; put 'insert into &mpelib..mpe_dataloads'; put 'set libref=%upcase("&base_lib")'; put ',DSN=%upcase("&base_dsn")'; put ',ETLSOURCE="&append_lib..&append_dsn contained &newobs records"'; put ',LOADTYPE="CLOSEOUT"'; put ',DELETED_RECORDS=&update_cnt'; put ',NEW_RECORDS=0'; put ',DURATION=%sysfunc(datetime())-&start'; put ',USER_NM="&user"'; put ',PROCESSED_DTTM=&now;'; put 'quit;'; put '%mend bitemporal_closeouts;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '/** @cond */'; put '%macro mf_getengine(libref'; put ')/*/STORE SOURCE*/;'; put '%local dsid engnum rc engine;'; put '/* in case the parameter is a libref.tablename, pull off just the libref */'; put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; put '%let dsid=%sysfunc('; put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; put ');'; put '%if (&dsid ^= 0) %then %do;'; put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; put '%let rc=%sysfunc(fetch(&dsid));'; put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; put '%put &libref. ENGINE is &engine.;'; put '%let rc= %sysfunc(close(&dsid));'; put '%end;'; put '%upcase(&engine)'; put '%mend mf_getengine;'; put '/** @endcond */'; put '%macro mf_getschema(libref'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum rc schema;'; put '/* in case the parameter is a libref.tablename, pull off just the libref */'; put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; put '%let dsid=%sysfunc(open(sashelp.vlibnam(where=('; put 'libname="%upcase(&libref)" and sysname=''Schema/Owner'''; put ')),i));'; put '%if (&dsid ^= 0) %then %do;'; put '%let vnum=%sysfunc(varnum(&dsid,SYSVALUE));'; put '%let rc=%sysfunc(fetch(&dsid));'; put '%let schema=%sysfunc(getvarc(&dsid,&vnum));'; put '%put &libref. schema is &schema.;'; put '%let rc= %sysfunc(close(&dsid));'; put '%end;'; put '&schema'; put '%mend mf_getschema;'; put '/** @endcond */'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mf_wordsInStr1ButNotStr2('; put 'Str1= /* string containing words to extract */'; put ',Str2= /* used to compare with the extract string */'; put ')/*/STORE SOURCE*/;'; put '%local count_base count_extr i i2 extr_word base_word match outvar;'; put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; put '%put base string (str1)= &str1;'; put '%put compare string (str2) = &str2;'; put '%return;'; put '%end;'; put '%let count_base=%sysfunc(countw(&Str2));'; put '%let count_extr=%sysfunc(countw(&Str1));'; put '%do i=1 %to &count_extr;'; put '%let extr_word=%scan(&Str1,&i,%str( ));'; put '%let match=0;'; put '%do i2=1 %to &count_base;'; put '%let base_word=%scan(&Str2,&i2,%str( ));'; put '%if &extr_word=&base_word %then %let match=1;'; put '%end;'; put '%if &match=0 %then %let outvar=&outvar &extr_word;'; put '%end;'; put '&outvar'; put '%mend mf_wordsInStr1ButNotStr2;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro mf_getquotedstr(IN_STR'; put ',DLM=%str(,)'; put ',QUOTE=S'; put ',indlm=%str( )'; put ')/*/STORE SOURCE*/;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; put '%else %if "e=N %then %let quote=;'; put '%local i item buffer;'; put '%let i=1;'; put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; put '%else %let item=%qtrim(&item);'; put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; put '%else %let buffer =&buffer&DLM%qtrim(&item);'; put '%let i = %eval(&i+1);'; put '%end;'; put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; put '&buffer'; put '%mend mf_getquotedstr;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '%macro mp_retainedkey('; put 'base_lib=WORK'; put ',base_dsn=BASETABLE'; put ',append_lib=WORK'; put ',append_dsn=APPENDTABLE'; put ',retained_key=DEFAULT_RK'; put ',business_key= PK1 PK2'; put ',check_uniqueness=NO'; put ',maxkeytable=0'; put ',locktable=0'; put ',outds=WORK.APPEND'; put ',filter_str='; put ');'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%local base_libds app_libds key_field check maxkey idx_pk newkey_cnt iserr'; put 'msg x tempds1 tempds2 comma_pk appnobs checknobs dropvar tempvar idx_val;'; put '%let base_libds=%upcase(&base_lib..&base_dsn);'; put '%let app_libds=%upcase(&append_lib..&append_dsn);'; put '%let tempds1=%mf_getuniquename();'; put '%let tempds2=%mf_getuniquename();'; put '%let comma_pk=%mf_getquotedstr(in_str=%str(&business_key),dlm=%str(,),quote=);'; put '%let outds=%sysfunc(ifc(%index(&outds,.)=0,work.&outds,&outds));'; put '/* validation checks */'; put '%let iserr=0;'; put '%if &syscc>0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(SYSCC=&syscc on macro entry);'; put '%end;'; put '%else %if %sysfunc(exist(&base_libds))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Base LIBDS (&base_libds) expected but NOT FOUND);'; put '%end;'; put '%else %if %sysfunc(exist(&app_libds))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Append LIBDS (&app_libds) expected but NOT FOUND);'; put '%end;'; put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&maxkeytable))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Maxkeytable (&maxkeytable) expected but NOT FOUND);'; put '%end;'; put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&locktable))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Locktable (&locktable) expected but NOT FOUND);'; put '%end;'; put '%else %if %length(&business_key)=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Business key (&business_key) expected but NOT FOUND);'; put '%end;'; put '%do x=1 %to %sysfunc(countw(&business_key));'; put '/* check business key values exist */'; put '%let key_field=%scan(&business_key,&x,%str( ));'; put '%if not %mf_existvar(&app_libds,&key_field) %then %do;'; put '%let iserr=1;'; put '%let msg=Business key (&key_field) not found on &app_libds!;'; put '%goto err;'; put '%end;'; put '%else %if not %mf_existvar(&base_libds,&key_field) %then %do;'; put '%let iserr=1;'; put '%let msg=Business key (&key_field) not found on &base_libds!;'; put '%goto err;'; put '%end;'; put '%end;'; put '%err:'; put '%if &iserr=1 %then %do;'; put '/* err case so first perform an unlock of the base table before exiting */'; put '%mp_lockanytable('; put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; put ')'; put '%end;'; put '%mp_abort(iftrue=(&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; put 'proc sql noprint;'; put 'select sum(max(&retained_key),0) into: maxkey from &base_libds;'; put '/**'; put '* get base table RK and bus field values for lookup'; put '*/'; put 'proc sql noprint;'; put 'create table &tempds1 as'; put 'select distinct &comma_pk,&retained_key'; put 'from &base_libds &filter_str'; put 'order by &comma_pk,&retained_key;'; put '%if &check_uniqueness=YES %then %do;'; put 'select count(*) into:checknobs'; put 'from (select distinct &comma_pk from &app_libds);'; put 'select count(*) into: appnobs from &app_libds; /* might be view */'; put '%if &checknobs ne &appnobs %then %do;'; put '%let msg=Source table &app_libds is not unique on (&business_key);'; put '%let iserr=1;'; put '%end;'; put '%end;'; put '%if &iserr=1 %then %do;'; put '/* err case so first perform an unlock of the base table before exiting */'; put '%mp_lockanytable('; put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; put ')'; put '%end;'; put '%mp_abort(iftrue= (&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; put '%if %mf_existvar(&app_libds,&retained_key)'; put '%then %let dropvar=(drop=&retained_key);'; put '/* prepare interim table with retained key populated for matching keys */'; put 'proc sql noprint;'; put 'create table &tempds2 as'; put 'select b.&retained_key, a.*'; put 'from &app_libds &dropvar a'; put 'left join &tempds1 b'; put 'on 1'; put '%do idx_pk=1 %to %sysfunc(countw(&business_key));'; put '%let idx_val=%scan(&business_key,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'order by &retained_key;'; put '/* identify the number of entries without retained keys (new records) */'; put 'select count(*) into: newkey_cnt'; put 'from &tempds2'; put 'where missing(&retained_key);'; put 'quit;'; put '/**'; put '* Update maxkey table if link provided'; put '*/'; put '%if &maxkeytable ne 0 %then %do;'; put 'proc sql noprint;'; put 'select count(*) into: check from &maxkeytable'; put 'where upcase(keytable)="&base_libds";'; put '%mp_lockanytable(LOCK'; put ',lib=%scan(&maxkeytable,1,.)'; put ',ds=%scan(&maxkeytable,2,.)'; put ',ref=Updating maxkeyvalues with mp_retainedkey'; put ',ctl_ds=&locktable'; put ')'; put 'proc sql;'; put '%if &check=0 %then %do;'; put 'insert into &maxkeytable'; put 'set keytable="&base_libds"'; put ',keycolumn="&retained_key"'; put ',max_key=%eval(&maxkey+&newkey_cnt)'; put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put '%end;'; put '%else %do;'; put 'update &maxkeytable'; put 'set max_key=%eval(&maxkey+&newkey_cnt)'; put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put 'where keytable="&base_libds";'; put '%end;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&maxkeytable,1,.)'; put ',ds=%scan(&maxkeytable,2,.)'; put ',ref=Updating maxkeyvalues with maxkey=%eval(&maxkey+&newkey_cnt)'; put ',ctl_ds=&locktable'; put ')'; put '%end;'; put '/* fill in the missing retained key values */'; put '%let tempvar=%mf_getuniquename();'; put 'data &outds(drop=&tempvar);'; put 'retain &tempvar %eval(&maxkey+1);'; put 'set &tempds2;'; put 'if &retained_key =. then &retained_key=&tempvar;'; put '&tempvar=&tempvar+1;'; put 'run;'; put '%mend mp_retainedkey;'; put '/** @cond */'; put '%macro mp_storediffs(libds'; put ',origds'; put ',key'; put ',delds=0'; put ',appds=0'; put ',modds=0'; put ',outds=work.mp_storediffs'; put ',loadref=0'; put ',processed_dttm=0'; put ',mdebug=0'; put ')/*/STORE SOURCE*/;'; put '%local dbg;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%end;'; put '%else %let dbg=*;'; put '/* set up unique and temporary vars */'; put '%local ds1 ds2 ds3 ds4 hashkey inds_auto inds_keep dslist vlist;'; put '%let ds1=%upcase(work.%mf_getuniquename(prefix=mpsd_ds1));'; put '%let ds2=%upcase(work.%mf_getuniquename(prefix=mpsd_ds2));'; put '%let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_ds3));'; put '%let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_ds4));'; put '%let hashkey=%upcase(%mf_getuniquename(prefix=mpsd_hashkey));'; put '%let inds_auto=%upcase(%mf_getuniquename(prefix=mpsd_inds_auto));'; put '%let inds_keep=%upcase(%mf_getuniquename(prefix=mpsd_inds_keep));'; put '%let dslist=&origds;'; put '%if &delds ne 0 %then %do;'; put '%let delds=%upcase(&delds);'; put '%if %scan(&delds,-1,.)=&delds %then %let delds=WORK.&delds;'; put '%let dslist=&dslist &delds;'; put '%end;'; put '%if &appds ne 0 %then %do;'; put '%let appds=%upcase(&appds);'; put '%if %scan(&appds,-1,.)=&appds %then %let appds=WORK.&appds;'; put '%let dslist=&dslist &appds;'; put '%end;'; put '%if &modds ne 0 %then %do;'; put '%let modds=%upcase(&modds);'; put '%if %scan(&modds,-1,.)=&modds %then %let modds=WORK.&modds;'; put '%let dslist=&dslist &modds;'; put '%end;'; put '%let origds=%upcase(&origds);'; put '%if %scan(&origds,-1,.)=&origds %then %let origds=WORK.&origds;'; put '%let key=%upcase(&key);'; put '/* hash the key and append all the tables (marking the source) */'; put 'data &ds1;'; put 'set &dslist indsname=&inds_auto;'; put '&hashkey=put(md5(catx(''|'',%mf_getquotedstr(&key,quote=N))),$hex32.);'; put '&inds_keep=upcase(&inds_auto);'; put 'proc sort;'; put 'by &inds_keep &hashkey;'; put 'run;'; put '/* transpose numeric & char vars */'; put 'proc transpose data=&ds1'; put 'out=&ds2(rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_num));'; put 'by &inds_keep &hashkey;'; put 'var _numeric_;'; put 'run;'; put 'proc transpose data=&ds1'; put 'out=&ds3('; put 'rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_char)'; put 'where=(tgtvar_nm not in ("&hashkey","&inds_keep"))'; put ');'; put 'by &inds_keep &hashkey;'; put 'var _character_;'; put 'run;'; put '%if %index(&libds,-)>0 and %scan(&libds,2,-)=FC %then %do;'; put '/* this is a format catalog - cannot query cols directly */'; put '%let vlist="TYPE","FMTNAME","FMTROW","START","END","LABEL","MIN","MAX"'; put ',"DEFAULT","LENGTH","FUZZ","PREFIX","MULT","FILL","NOEDIT","SEXCL"'; put ',"EEXCL","HLO","DECSEP","DIG3SEP","DATATYPE","LANGUAGE";'; put '%end;'; put '%else %let vlist=%mf_getvarlist(&libds,dlm=%str(,),quote=DOUBLE);'; put 'data &ds4;'; put 'length &inds_keep $41 tgtvar_nm $32 _label_ $256;'; put 'if _n_=1 then call missing(_label_);'; put 'drop _label_;'; put 'set &ds2 &ds3 indsname=&inds_auto;'; put 'tgtvar_nm=upcase(tgtvar_nm);'; put 'if tgtvar_nm in (%upcase(&vlist));'; put 'if upcase(&inds_auto)="&ds2" then tgtvar_type=''N'';'; put 'else if upcase(&inds_auto)="&ds3" then tgtvar_type=''C'';'; put 'else do;'; put 'putlog ''ERR'' +(-1) "OR: unidentified vartype input!" &inds_auto;'; put 'call symputx(''syscc'',98);'; put 'end;'; put 'if &inds_keep="&appds" then move_type=''A'';'; put 'else if &inds_keep="&delds" then move_type=''D'';'; put 'else if &inds_keep="&modds" then move_type=''M'';'; put 'else if &inds_keep="&origds" then move_type=''O'';'; put 'else do;'; put 'putlog ''ERR'' +(-1) "OR: unidentified movetype input!" &inds_keep;'; put 'call symputx(''syscc'',99);'; put 'end;'; put 'tgtvar_nm=upcase(tgtvar_nm);'; put 'if tgtvar_nm in (%mf_getquotedstr(&key)) then is_pk=1;'; put 'else is_pk=0;'; put 'drop &inds_keep;'; put 'run;'; put '%if "&loadref"="0" %then %let loadref=%sysfunc(uuidgen());'; put '%if &processed_dttm=0 %then %let processed_dttm=%sysfunc(datetime(),8.6);'; put '%let libds=%upcase(&libds);'; put '/* join orig vals for modified & deleted */'; put 'proc sql;'; put 'create table &outds as'; put 'select "&loadref" as load_ref length=36'; put ',&processed_dttm as processed_dttm format=E8601DT26.6'; put ',"%scan(&libds,1,.)" as libref length=8'; put ',"%scan(&libds,2,.)" as dsn length=32'; put ',b.key_hash length=32'; put ',b.move_type length=1'; put ',b.tgtvar_nm length=32'; put ',b.is_pk'; put ',case when b.move_type ne ''M'' then -1'; put 'when a.newval_num=b.newval_num and a.newval_char=b.newval_char then 0'; put 'else 1'; put 'end as is_diff'; put ',b.tgtvar_type length=1'; put ',case when b.move_type=''D'' then b.newval_num'; put 'else a.newval_num'; put 'end as oldval_num format=best32.'; put ',case when b.move_type=''D'' then .'; put 'else b.newval_num'; put 'end as newval_num format=best32.'; put ',case when b.move_type=''D'' then b.newval_char'; put 'else a.newval_char'; put 'end as oldval_char length=32765'; put ',case when b.move_type=''D'' then '''''; put 'else b.newval_char'; put 'end as newval_char length=32765'; put 'from &ds4(where=(move_type=''O'')) as a'; put 'right join &ds4(where=(move_type ne ''O'')) as b'; put 'on a.tgtvar_nm=b.tgtvar_nm'; put 'and a.key_hash=b.key_hash'; put 'order by move_type, key_hash,is_pk desc, tgtvar_nm;'; put '%if &mdebug=0 %then %do;'; put 'proc sql;'; put 'drop table &ds1, &ds2, &ds3, &ds4;'; put '%end;'; put '%mend mp_storediffs;'; put '/** @endcond */'; put '%macro bitemporal_dataloader('; put 'bus_from= /* Business FROM datetime variable. Req''d on'; put 'STAGING & BASE tables.*/'; put ',bus_to = /* Business TO datetime variable. Req''d on'; put 'STAGING & BASE tables. */'; put ',bus_from_override= /* Provide a hard coded BUS_FROM datetime value.*/'; put ',bus_to_override= /* provide a hard coded BUS_TO datetime value */'; put ',tech_from= /* Technical FROM datetime variable. Req''d on'; put 'BASE table only. */'; put ',tech_to = /* Technical TO datetime variable. Req''d on BASE'; put 'table only. */'; put ',processed= 0'; put ',base_lib=WORK /* Libref of the BASE table. */'; put ',base_dsn=BASETABLE /* Name of BASE table. */'; put ',append_lib=WORK /* Libref of the STAGING table. */'; put ',append_dsn=APPENDTABLE'; put ',high_date=''01JAN5999:00:00:00''dt /* High date to close out records */'; put ',PK= name sex'; put ',RK_UNDERLYING='; put ',KEEPVARS= /* Provides option for removing unwanted vars from append table */'; put ',RK_UPDATE_MAXKEYTABLE=NO /* If switching (or mix matching) with regular'; put 'SCD2 loader then set this switch to YES to'; put 'ensure the MAXKEYTABLE is updated with the'; put 'current maximum RK value for the target table'; put '*/'; put ',CHECK_UNIQUENESS=YES /* Perform a check of the APPEND table to ensure it is'; put 'unique on its business key */'; put ',ETLSOURCE=demo /* supply a value ($50.) to show as ETLSOURCE in'; put '&dclib..DATALOADS */'; put ',LOADTYPE=BITEMPORAL'; put ',RK_MAXKEYTABLE= mpe_maxkeyvalues'; put ',LOG=1 /* Switch to 0 to prevent records being added to'; put '&mpelib..mpe_DATALOADS (ie when testing)*/'; put ',DELETE_COL= _____DELETE__THIS__RECORD_____'; put '/* If this variable is found in the append dataset'; put 'then records are closed out (or deleted) in the'; put 'append table where that variable= "Yes" */'; put ',LOADTARGET=YES /* set to anything but uppercase YES to switch off'; put 'target table load and generate temp tables only */'; put ',CLOSE_VARS='; put '/*a problem with regular SCD2 or TXTEMPORAL loads is that there is'; put 'no facility to close out removed records (all records are'; put 'assumed new or changed). But how does one determine which'; put 'records are removed? Short of loading the entire table'; put 'each time? This parameter allows a set of variables'; put '(this should be a subset of the PK) to be declared, and'; put 'the macro will determine which records in the base table'; put 'need to be closed out ahead of the load.'; put 'For instance, given the following:'; put 'Base Table Staging Table'; put 'DATE ENTITY AMOUNT DATE ENTITY AMOUNT'; put 'JAN ACME4 66 JAN ACME4 66'; put 'FEB ACME4 99 FEB ACME4 99'; put 'FEB ACME1 22'; put 'By supplying DATE in CLOSE_VARS and DATE ENTITY as the PK,'; put 'the "FEB PAG 22" record would get closed out.'; put '*/'; put ',config_table=&dclib..MPE_CONFIG'; put ',dclib=&dc_libref'; put ',outds_del=work.outds_del'; put ',outds_add=work.outds_add'; put ',outds_mod=work.outds_mod'; put ',outds_audit=0'; put ');'; put '/* when changing this macro, update the version num here */'; put '%local ver;'; put '%let ver=32;'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%dc_assignlib(WRITE,&base_lib) /* may not already be assigned */'; put '/* return straight away if nothing to load */'; put '%let nobs= %mf_getattrn(&append_lib..&append_dsn,NLOBS);'; put '%if &nobs=-1 %then %do;'; put 'proc sql noprint; select count(*) into: nobs from &append_lib..&append_dsn;'; put '%end;'; put '%if &nobs=0 %then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- Base dataset &append_lib..&append_dsn is empty. Nothing to upload!;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%return;'; put '%end;'; put '/* hard exit if err condition exists */'; put '%mp_abort(iftrue= (&syscc > 0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status;)'; put ')'; put '%local engine_type;'; put '%let engine_type=%mf_getengine(&base_lib);'; put '%if (&engine_type=REDSHIFT or &engine_type=POSTGRES) and %length(&CLOSE_VARS)>0'; put '%then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- CLOSE_VARS functionality not yet supported in &engine_type;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%return;'; put '%end;'; put '/**'; put '* The metadata functions (eg mf_existvar) will fail if the base table has a'; put '* SAS lock. So, make a snapshot of the base table for further use.'; put '* Also, make output tables (regardless).'; put '*/'; put '%local basecopy;'; put '%let basecopy=%mf_getuniquename(prefix=basecopy);'; put 'data &basecopy &outds_mod &outds_add &outds_del;'; put 'set &base_lib..&base_dsn;'; put 'stop;'; put 'run;'; put '%mp_abort(iftrue= (&syscc > 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after base table copy - aborting due to table lock)'; put ')'; put '%local cols idx_pk md5_col ;'; put '%let md5_col=___TMP___md5;'; put '%let check_uniqueness=%upcase(&check_uniqueness);'; put '%let RK_UPDATE_MAXKEYTABLE=%upcase(&RK_UPDATE_MAXKEYTABLE);'; put '%let high_date=%unquote(&high_date);'; put '%let loadtype=%upcase(&loadtype);'; put '/* ensure irrelevant variables are cleared */'; put '%if &loadtype=BUSTEMPORAL %then %do;'; put '%let tech_from=;'; put '%let tech_to=;'; put '%end;'; put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; put '%let bus_from=;'; put '%let bus_to=;'; put '%end;'; put '/* ensure relevant variables are supplied */'; put '%mp_abort(iftrue=(&loadtype=BITEMPORAL & %mf_verifymacvars(bus_from bus_to)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing BUS_FROM / BUS_TO)'; put ')'; put '%mp_abort(iftrue=(&loadtype=TXTEMPORAL & %mf_verifymacvars(tech_from tech_to)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing TECH_FROM / TECH_TO)'; put ')'; put '/**'; put '* drop any tables (may be defined as views or vice versa preventing overwrite)'; put '*/'; put '%mp_dropmembers(append bitemp0_append bitemp_cols)'; put '/* SQL Server requires its own time values */'; put '/* 9.2 will only give picture format down to seconds. 9.3 allows'; put 'milliseconds by using lower S and defining the decimal in the format name..*/'; put 'PROC FORMAT;'; put 'picture MyMSdt other=''%0Y-%0m-%0dT%0H:%0M:%0S'' (datatype=datetime);'; put 'RUN;'; put '%local dbnow;'; put '%let dbnow="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'data _null_;'; put '/* convert space separated macvar to comma separated for SQL processing */'; put 'call symputx(''PK_COMMA'',tranwrd(compbl("&pk"),'' '','',''),''L'');'; put 'call symputx(''PK_CNT'',countw("&pk",'' ''),''L'');'; put 'now=&dbnow;'; put 'call symputx(''NOW'',now,''L'');'; put 'call symputx(''SQLNOW'',cats("''",put(now,MyMSdt.),"''"),''L'');'; put 'length etlsource $100;'; put 'etlsource=subpad(symget(''etlsource''),1,100);'; put 'call symputx(''etlsource'',etlsource,''l'');'; put 'run;'; put '/**'; put '* Even if no PROCESSED var provided, assume that any variable named'; put '* PROCESSED_DTTM should be updated'; put '*/'; put '%if &processed=0 %then %do;'; put '%if %mf_existvar(&basecopy,PROCESSED_DTTM)'; put '%then %let processed=PROCESSED_DTTM;'; put '%else %let processed=;'; put '%end;'; put '/* extract colnames for md5 creation / change tracking */'; put 'proc contents noprint data=&base_lib..&base_dsn'; put 'out=work.bitemp_cols (keep=name type length varnum format:);'; put 'run;'; put 'proc sql noprint;'; put 'select name into: cols separated by '','''; put 'from work.bitemp_cols'; put 'where upcase(name) not in'; put '(%upcase("&bus_from","&bus_to"'; put ',"&tech_from","&tech_to"'; put ',"&processed","&delete_col")) ;'; put 'select case when type in (2,6) then cats(''put(md5(trim('',name,'')),$hex32.)'')'; put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; put '/* but ONLY if not missing, else will lose any special missing values */'; put 'else cats(''put(md5(trim(put(ifn(missing('''; put ',name,''),'',name,'','',name,''*1),binary64.))),$hex32.)'') end'; put 'into: stripcols separated by ''||'''; put 'from work.bitemp_cols'; put 'where upcase(name) not in'; put '(%upcase("&bus_from","&bus_to"'; put ',"&tech_from","&tech_to"'; put ',"&processed","&delete_col")) ;'; put '/* set default formats*/'; put '%let bus_from_fmt = datetime19.;'; put '%let bus_to_fmt = datetime19.;'; put '%let processed_fmt = datetime19.;'; put '%let tech_from_fmt = format=datetime19.;'; put '%let tech_to_fmt = format=datetime19.;'; put '%put &=stripcols;'; put '%put &=pk;'; put 'data _null_;'; put 'set work.bitemp_cols;'; put 'if type=2 or type=6 then do;'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'if format='''' then fmt=cats(length,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put 'if upcase(name)="%upcase(&bus_from)" then'; put 'call symputx(''bus_from_fmt'',fmt,''L'');'; put 'else if upcase(name)="%upcase(&bus_to)" then'; put 'call symputx(''bus_to_fmt'',fmt,''L'');'; put 'else if upcase(name)="%upcase(&tech_from)" then'; put 'call symputx(''tech_from_fmt'',"format="!!fmt,''L'');'; put 'else if upcase(name)="%upcase(&tech_to)" then'; put 'call symputx(''tech_to_fmt'',"format="!!fmt,''L'');'; put 'else if upcase(name)="%upcase(&processed)" then'; put 'call symputx(''processed_fmt'',fmt,''L'');'; put 'run;'; put '%if %index(%quote(&cols),___TMP___) %then %do;'; put '%let msg=%str(Table contains a variable name containing "___TMP___".%trim('; put ') This may conflict with temp variable generation!!);'; put '%mp_abort(msg=&msg,mac=bitemporal_dataloader);'; put '%let syscc=5;'; put '%return;'; put '%end;'; put '/* if transaction dates appear on the APPEND table, need to remove them */'; put '%local drop_tx_dates /* used in append table */'; put 'drop_tx_dates_noobs /* used to take the base table structure */;'; put '%if %mf_existvar(&append_lib..&append_dsn, &tech_from)'; put '%then %let drop_tx_dates=&tech_from;'; put '%if %mf_existvar(&append_lib..&append_dsn, &tech_to)'; put '%then %let drop_tx_dates=&drop_tx_dates &tech_to;'; put '%if %length(%trim(&drop_tx_dates))>0'; put '%then %let drop_tx_dates=(drop=&drop_tx_dates);'; put '%if %mf_existvar(&basecopy, &tech_from)'; put '%then %let drop_tx_dates_noobs=&tech_from;'; put '%if %mf_existvar(&basecopy, &tech_to)'; put '%then %let drop_tx_dates_noobs=&drop_tx_dates_noobs &tech_to;'; put '%if %length(%trim(&drop_tx_dates_noobs))>0'; put '%then %let drop_tx_dates_noobs=(drop=&drop_tx_dates_noobs obs=0);'; put '%else %let drop_tx_dates_noobs=(obs=0);'; put '/**'; put '* Lock the table. This is necessary as we are doing a two part update (first'; put '* closing records then appending new records). It is theoretically possible'; put '* that an upload may occur whilst preparing the staging tables. And the'; put '* staging tables are about to be prepared..'; put '*/'; put '%if &LOADTARGET = YES %then %do;'; put '%put locking &base_lib..&base_dsn;'; put '%mp_lockanytable(LOCK,'; put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%if "&outds_audit" ne "0" %then %do;'; put '%put locking &outds_audit;'; put '%mp_lockanytable(LOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%else %do;'; put '/* not an actual load, so avoid updating the max key table in next step. */'; put '%let rk_update_maxkeytable=NO;'; put '%end;'; put '%if %length(&RK_UNDERLYING)>0 %then %do;'; put '%mp_retainedkey('; put 'base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=&append_lib'; put ',append_dsn=&append_dsn'; put ',retained_key=&pk'; put ',business_key=&rk_underlying'; put ',check_uniqueness=&CHECK_UNIQUENESS'; put ',outds=work.append'; put '%if &rk_update_maxkeytable=NO %then %do;'; put ',maxkeytable=0'; put '%end;'; put '%else %do;'; put ',maxkeytable=&dclib..&RK_MAXKEYTABLE'; put '%end;'; put ',locktable=&dclib..mpe_lockanytable'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put ',filter_str=%str( (where=( &now < &tech_to)) )'; put '%end;'; put ')'; put '%end;'; put '%else %do;'; put 'proc sql;'; put 'create view work.append as select * from &append_lib..&append_dsn;'; put '%end;'; put '/**'; put '* generate md5 for append table'; put '*/'; put '/* it is possible the source dataset has additional (unwanted) columns.'; put 'Drop if specified; */'; put '%if %length(&keepvars)>0 %then %do;'; put '/* remove tech dates from keepvars as they are generated later */'; put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_from ),%str( )));'; put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_to ),%str( )));'; put '%let keepvars=(keep=&keepvars &bus_from &bus_to &processed &md5_col);'; put '%end;'; put '/* CAS varchar types cause append issues here, so perform autoconvert'; put 'by creating empty local table first */'; put 'data;'; put 'set &base_lib..&base_dsn &drop_tx_dates_noobs;'; put 'run;'; put '%local emptybasetable; %let emptybasetable=&syslast;'; put 'data work.bitemp0_append &keepvars &outds_del(drop=&md5_col )'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put '/nonote2err'; put '%end;'; put ';'; put '/* apply formats for bitemporal vars but not tx dates which are added later */'; put '%if %length(&keepvars)>0 and &loadtype=BITEMPORAL %then %do;'; put 'format &bus_from &bus_from_fmt;'; put 'format &bus_to &bus_to_fmt;'; put '%end;'; put 'set &emptybasetable /* base table reqd in case append has fewer cols */'; put 'work.append &drop_tx_dates;'; put '%if %length(%str(&bus_from_override))>0 %then %do;'; put '&bus_from= %unquote(&bus_from_override) ;'; put '%end;'; put '%if %length(%str(&bus_to_override))>0 %then %do;'; put '&bus_to= %unquote(&bus_to_override) ;'; put '%end;'; put 'length &md5_col $32;'; put '&md5_col=put(md5(&stripcols),hex32.);'; put '%if %length(&processed)>0 %then %do;'; put 'format &processed &processed_fmt;'; put '&processed=&now;'; put '%end;'; put '/**'; put '* If a delete column exists then create the delete dataset'; put '*/'; put '%if %mf_existvar(&append_lib..&append_dsn, &delete_col) %then %do;'; put 'drop &delete_col;'; put 'if upcase(&delete_col) = "YES" then output &outds_del ;'; put 'else output work.bitemp0_append ;'; put 'run;'; put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; put '%bitemporal_closeouts('; put 'tech_from=&tech_from'; put ',tech_to = &tech_to'; put ',base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=work'; put ',append_dsn=%scan(&outds_del,-1,.)'; put ',PK=&bus_from &pk'; put ',NOW=&dbnow'; put ',loadtarget=&loadtarget'; put ',loadtype=&loadtype'; put ')'; put '%end;'; put '%end;'; put '%else %do;'; put 'output work.bitemp0_append;'; put 'run;'; put '%end;'; put '%mp_abort(iftrue= (&syscc gt 0 at line 494)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%if %length(&close_vars)>0 %then %do;'; put '/**'; put '* need to close out records that are not provided'; put '*/'; put 'proc sql;'; put 'create table bitemp1_closevars1 as'; put 'select distinct a.%mf_getquotedstr(in_str=&pk,dlm=%str(,a.),quote=)'; put 'from &base_lib..&base_dsn a'; put 'inner join work.bitemp0_append b'; put 'on 1=1'; put '/* join on closevars key */'; put '%do idx_pk=1 %to %sysfunc(countw(&close_vars));'; put '%let idx_val=%scan(&close_vars,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '/* filter base on tech dates if necessary */'; put '%if &loadtype=TXTEMPORAL %then %do;'; put 'where a.&tech_from <=&now and &now < a.&tech_to'; put '%end;'; put ';'; put 'create table bitemp1_closevars2 as'; put 'select distinct a.*'; put 'from bitemp1_closevars1 a'; put 'left join work.bitemp0_append b'; put 'on 1=1'; put '/* join on primary key */'; put '%do idx_pk=1 %to %sysfunc(countw(&pk));'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '/* identify removed records by null value in a field in PK but not close_vars'; put '*/'; put 'where b.%scan('; put '%mf_wordsInStr1ButNotStr2(Str1=&pk,Str2=&close_vars),1,%str( )'; put ') IS NULL'; put ';'; put '%if %mf_getattrn(bitemp1_closevars2,NLOBS)>0 %then %do;'; put '%bitemporal_closeouts('; put 'tech_from=&tech_from'; put ',tech_to = &tech_to'; put ',base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=work'; put ',append_dsn=bitemp1_closevars2'; put ',PK=&bus_from &pk'; put ',NOW=&dbnow'; put ',loadtarget=&loadtarget'; put ',loadtype=&loadtype'; put ')'; put '%end;'; put '%end;'; put '/* return if nothing to load (was just deletes) */'; put '%if %mf_getattrn(work.bitemp0_append,NLOBS)=0 %then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- No updates - just deletes!;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%end;'; put '/**'; put '* If applying manual overrides to business dates, then the input table MUST'; put '* be unique on the PK. Check, and if not - abort.'; put '*/'; put '%local msg;'; put '%if %length(&bus_from_override.&bus_to_override)>0 or &CHECK_UNIQUENESS=YES'; put '%then %do;'; put 'proc sort data=work.bitemp0_append out=work.bitemp0_check nodupkey;'; put 'by &pk;'; put 'run;'; put '%if %mf_getattrn(work.bitemp0_check,NLOBS)'; put 'ne %mf_getattrn(work.bitemp0_append,NLOBS)'; put '%then %do;'; put '%let msg=INPUT table &append_lib..&append_dsn is not unique on PK (&pk);'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_abort(msg=&msg,mac=bitemporal_dataloader.sas);'; put '%end;'; put '%end;'; put '/**'; put '* extract from BASE table. Only want matching records, as could be very BIG.'; put '* New records are subsequently identified via left join and test for nulls.'; put '*/'; put '%local temp_table temp_table2 base_table baselib_schema;'; put '%put DCNOTE: Extracting matching observations from &base_lib..&base_dsn;'; put '%if &engine_type=OLEDB %then %do;'; put '%let temp_table=##%mf_getuniquefileref(prefix=BTMP);'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=(select * from [dbo].&base_dsn'; put 'where convert(datetime,&SQLNOW) < &tech_to );'; put '%else %let base_table=[dbo].&base_dsn;'; put 'proc sql;'; put 'create table &base_lib.."&temp_table"n as'; put 'select * from work.bitemp0_append;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'create table work.bitemp0_base as select * from connection to myAlias('; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put '/* grab schema */'; put '%let baselib_schema=%mf_getschema(&base_lib);'; put '%if &baselib_schema.X ne X %then %let baselib_schema=&baselib_schema..;'; put '/* grab redshift config */'; put '%local redcnt; %let redcnt=0;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'data _null_;'; put 'set &config_table(where=(var_scope=''DCBL_REDSH'' and var_active=1));'; put 'x+1;'; put 'call symputx(cats(''rednm'',x),var_value,''l'');'; put 'call symputx(cats(''redval'',x),var_value,''l'');'; put 'call symputx(''redcnt'',x,''l'');'; put 'run;'; put '%end;'; put '/* cannot persist temp tables so must create a temporary permanent table */'; put '%let temp_table=%mf_getuniquename(prefix=XDCTEMP);'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=(select * from &baselib_schema.&base_dsn'; put 'where timestamp &sqlnow < &tech_to );'; put '%else %let base_table=&baselib_schema.&base_dsn;'; put '/* make empty table first - must clone & drop extra cols as autoload is bad */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'exec (create table &temp_table (like &baselib_schema.&base_dsn)) by myAlias;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'exec (alter table &temp_table alter sortkey none) by myAlias;'; put '%end;'; put '%local dropcols;'; put '%let dropcols=%mf_wordsinstr1butnotstr2('; put 'str1=%upcase(%mf_getvarlist(&basecopy))'; put ',str2=%upcase(&pk)'; put ');'; put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; put '%put &=dropcols;'; put '%let idx_val=%scan(&dropcols,&idx_pk);'; put 'exec(alter table &temp_table drop column &idx_val;) by myAlias;'; put '%end;'; put 'exec (alter table &temp_table add column &md5_col varchar(32);) by myAlias;'; put '/* create view to strip formats and avoid warns in log */'; put 'data work.vw_bitemp0/view=work.vw_bitemp0;'; put 'set work.bitemp0_append(keep=&pk &md5_col);'; put 'format _all_;'; put 'run;'; put 'proc append base=&base_lib..&temp_table'; put '%if &engine_type=REDSHIFT %then %do;'; put '('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put '%end;'; put 'data=work.vw_bitemp0 force nowarn;'; put 'run;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'create table work.bitemp0_base as select * from connection to myAlias('; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=&base_lib..&base_dsn'; put '(where=(&tech_from <=&now and &now < &tech_to));'; put '%else %let base_table=&base_lib..&base_dsn;'; put '%let temp_table=CASUSER.%mf_getuniquename(prefix=DC);'; put 'data &temp_table;'; put 'set work.bitemp0_append;'; put 'run;'; put '%let bitemp0base=CASUSER.%mf_getuniquename(prefix=DC);'; put 'proc fedsql sessref=dcsession;'; put 'create table &bitemp0base{options replace=true} as'; put '%end;'; put '%else %do;'; put '%let temp_table=work.bitemp0_append;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=&base_lib..&base_dsn'; put '(where=(&tech_from <=&now and &now < &tech_to));'; put '%else %let base_table=&base_lib..&base_dsn;'; put 'proc sql;'; put 'create table work.bitemp0_base as'; put '%end;'; put 'select a.&md5_col /* this identifies NEW records */'; put ', b.*'; put '/* assume first PK field cannot be null (if defined in a PK constraint then'; put 'it definitely cannot be null) */'; put ', case when b.%scan(&pk,1) IS NULL then 1 else 0 end as ___TMP___NEW_FLG'; put 'from &baselib_schema.&temp_table a'; put 'left join &base_table b'; put 'on 1=1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; put '%then %do;'; put '); proc sql; drop table &base_lib.."&temp_table"n;'; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put ';'; put 'quit;'; put 'data work.bitemp0_base;'; put 'set &bitemp0base;'; put 'run;'; put 'proc sql;'; put 'drop table &temp_table;'; put 'drop table &bitemp0base;'; put '%end;'; put '%else %do;'; put ';'; put '%end;'; put '/**'; put '* matching & changed records are those without NULL key values'; put '* &idx_val resolves to rightmost PK value (loop above)'; put '*/'; put '%put syscc (line525)=&syscc, sqlrc=&sqlrc;'; put '%mp_abort(iftrue= (&syscc gt 0 or &sqlrc>0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc sqlrc=&sqlrc)'; put ')'; put '%put hashcols2=&stripcols;'; put 'proc sql;'; put 'create table work.bitemp1_current(drop=___TMP___NEW_FLG) as'; put 'select *'; put ', put(md5(&stripcols),$hex32.) as &md5_col'; put 'from work.bitemp0_base (drop=&md5_col)'; put 'where ___TMP___NEW_FLG=0;'; put '/**'; put '* NEW records were identified in ___TMP___NEW_FLG in bitemp0_base'; put '*/'; put 'proc sql;'; put 'create table &outds_add'; put '(drop=&md5_col'; put '%if %mf_existvar(work.bitemp0_base, &delete_col) %then %do;'; put '&delete_col'; put '%end;'; put ')'; put 'as select a.*'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put ',&now as &tech_from &tech_from_fmt'; put ',&high_date as &tech_to &tech_to_fmt'; put '%end;'; put 'from work.bitemp0_append a /* STAGING records (mix of existing & new) */'; put ', work.bitemp0_base b /* BASE records (contains null values for new) */'; put 'where a.&md5_col=b.&md5_col /* took staging md5 across in left join */'; put 'and b.___TMP___NEW_FLG=1; /* NEW records also identified in bitemp0_base */'; put '/**'; put '* identify INSERTS. These are records with the same business key but'; put '* the bus_from and bus_to value are higher / lower (respectively)'; put '* such that the existing record needs to be SPLIT to surround the new'; put '* record.'; put '* eg: OLD RECORD from=1 to=10'; put '* NEW RECORD from=5 to=7'; put '*'; put '* APPENDED RECORDS:'; put '* - from=1 to=5'; put '* - from=5 to=7'; put '* - from=7 to=10'; put '*/'; put '/* inserts cannot happen with TXTEMPORAL */'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* IDENTIFY */'; put 'create table work.bitemp3_inserts as'; put 'select b.*'; put ',a.&bus_from as ___TMP___from'; put ',a.&bus_to as ___TMP___to'; put 'from work.bitemp0_append a'; put ',work.bitemp1_current b'; put 'where a.&bus_from > b.&bus_from'; put 'and a.&bus_to < b.&bus_to'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'order by'; put '/* compress blanks and then insert commas (as the datetime fields may'; put 'not be in use) */'; put '%sysfunc(tranwrd(%sysfunc(compbl('; put '&pk &bus_from &bus_to &processed'; put ')),%str( ), %str(,)))'; put ';'; put '/* SPLIT */'; put 'data work.bitemp3a_inserts (drop=___TMP___from ___TMP___retain ___TMP___to) ;'; put 'set work.bitemp3_inserts;'; put 'by &pk &bus_from &bus_to &processed;'; put 'if first.&idx_val then do;'; put '___TMP___retain=&bus_to;'; put '&bus_to=___TMP___from;'; put 'output;'; put '&bus_to=___TMP___retain;'; put 'end;'; put 'if last.&idx_val then do;'; put '&bus_from=___TMP___to;'; put 'output;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* TX temporal load */'; put 'data work.bitemp3a_inserts;'; put 'set work.bitemp1_current;'; put 'stop;'; put 'run;'; put '%end;'; put '/* APPEND */'; put 'proc sql;'; put 'create view work.bitemp3a_view as'; put 'select * from work.bitemp1_current'; put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; put 'data bitemp3b_newbase;'; put 'set work.bitemp3a_inserts work.bitemp3a_view;'; put 'run;'; put '/** do not use! this converts short numerics into 8 bytes'; put 'proc sql;'; put 'create table work.bitemp3b_newbase as'; put 'select * from work.bitemp3a_inserts'; put 'union corr'; put 'select * from work.bitemp1_current'; put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; put '*/'; put '/**'; put '* identify CHANGED records from staging.'; put '* Same business key with different temporal dates or md5 value'; put '* This table must be overlayed onto / into existing business history'; put '*/'; put 'proc sql;'; put 'create table work.bitemp4_updated as select distinct a.*'; put 'from work.bitemp0_append a'; put ',work.bitemp3b_newbase b'; put 'where 1=1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'and ( a.&md5_col ne b.&md5_col'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put 'OR (a.&bus_from ne b.&bus_from or a.&bus_to ne b.&bus_to)'; put '%end;'; put ')'; put ';'; put '/**'; put '* This section would have been one simple step with union all'; put '* but that converts short numerics into 8 bytes!'; put '* so, convoluted alternative to retain the same functionality.'; put '*/'; put '/* base records */'; put 'create view work.bitemp4_prep1 as'; put 'select ''BASE'' as ___TMP___'; put ',b.*'; put 'from work.bitemp4_updated a'; put ',work.bitemp3b_newbase b'; put 'where 1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put ';'; put '/* updated records */'; put 'create view work.bitemp4_prep2 as'; put 'select ''STAG'' as ___TMP___ ,*'; put 'from work.bitemp4_updated;'; put '/* ensure we only keep columns that appear in both */'; put '%local bp1 bp2 bp3 bp4;'; put '%let bp1=%mf_getvarlist(bitemp4_prep1);'; put '%let bp2=%mf_getvarlist(bitemp4_prep2);'; put '%let bp3=%mf_wordsInStr1ButNotStr2(Str1=&bp1,Str2=&bp2);'; put '%let bp4=%mf_wordsInStr1ButNotStr2(Str1=&bp2,Str2=&bp1);'; put 'data work.bitemp4_prep3/view=bitemp4_prep3;'; put 'set bitemp4_prep1 bitemp4_prep2;'; put '%if %length(XX&bp3&bp4)>2 %then %do;'; put 'drop &bp3 &bp4 ;'; put '%end;'; put 'run;'; put '/* remove duplicates */'; put 'proc sql;'; put 'create table work.bitemp4a_allrecs as'; put 'select distinct *'; put 'from work.bitemp4_prep3'; put 'order by'; put '/* compress blanks and then insert commas (as the datetime fields'; put 'may not be in use) */'; put '%sysfunc(tranwrd(%sysfunc(compbl('; put '&pk &bus_from &bus_to &processed'; put ')),%str( ), %str(,)))'; put ';'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* this section aligns the business dates'; put '(eg for inserts or overlaps in the range) */'; put 'data work.bitemp4b_firstpass (drop=___TMP___cond ___TMP___from ___TMP___to );'; put 'set work.bitemp4a_allrecs;'; put 'by &pk &bus_from &bus_to &processed;'; put 'retain ___TMP___cond ''Name of Condition'';'; put 'retain ___TMP___from ___TMP___to 0;'; put '___TMP___md5lag=lag(&md5_col);'; put '/* reset retained variables */'; put 'if first.&idx_val then do;'; put 'call missing (___TMP___cond, ___TMP___from, ___TMP___to,___TMP___md5lag);'; put 'end;'; put 'else do;'; put '/* if record is identical, carry forward bus_from (and bus_to if higher)*/'; put 'if &md5_col=___TMP___md5lag then do;'; put '&bus_from=___TMP___from;'; put 'if &bus_to<___TMP___to then &bus_to=___TMP___to;'; put 'end;'; put 'end;'; put 'if ___TMP___=''STAG'' then do;'; put '/* need to carry forward the closing record */'; put '___TMP___cond=''Condition 1'';'; put 'end;'; put 'else if ___TMP___cond=''Condition 1'' then do;'; put '/* else ensure bus_from starts from prior record bus_to */'; put 'if &md5_col ne ___TMP___md5lag and &bus_from <= ___TMP___to'; put 'then &bus_from= ___TMP___to;'; put '/* new record may replace old record entirely */'; put 'if &bus_to <= &bus_from then delete;'; put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; put 'end;'; put '___TMP___from=&bus_from;'; put '___TMP___to=&bus_to;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* keep staged records only */'; put 'data work.bitemp4b_firstpass;'; put 'set work.bitemp4a_allrecs;'; put 'if ___TMP___=''STAG'';'; put 'run;'; put '%end;'; put '/* next phase is to pass through in reverse - so set up the sort statement */'; put '%local byvar;'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let byvar=&byvar descending %scan(&pk,&idx_pk);'; put '%end;'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL'; put '%then %let byvar=&byvar descending &bus_from descending &bus_to;'; put '/* if matching bus dates supplied, need to ensure we also have a sort'; put 'between BASE and STAGING tables */'; put '%let byvar=&byvar descending ___TMP___;'; put 'proc sort data=work.bitemp4b_firstpass out=work.bitemp4c_sort ;'; put 'by &byvar;'; put 'run;'; put '/**'; put '* Now (in reverse) pass back business start dates'; put '*/'; put 'data work.bitemp4d_secondpass;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put '&tech_from=&now;'; put '&tech_to=&high_date;'; put '%end;'; put 'set work.bitemp4c_sort ;'; put 'by &byvar;'; put 'retain ___TMP___cond ''Name of Condition'';'; put 'retain ___TMP___from ___TMP___to 0;'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* put / _all_ /;*/'; put '___TMP___md5lag=lag(&md5_col);'; put 'if first.&idx_val then do;'; put '/* reset retained variables */'; put 'call missing (___TMP___cond,___TMP___from,___TMP___to,___TMP___md5lag);'; put 'end;'; put 'else do;'; put '/* if record is identical, carry back bus_to */'; put 'if &md5_col=___TMP___md5lag then &bus_to=___TMP___to;'; put 'end;'; put 'if ___TMP___=''STAG'' then do;'; put '/* need to carry forward the closing record */'; put '___TMP___cond=''Condition 2'';'; put 'end;'; put 'else if ___TMP___cond=''Condition 2'' then do;'; put '/* else ensure bus_to stops at subsequent record bus_from */'; put 'if &md5_col ne ___TMP___md5lag and &bus_to >= ___TMP___from'; put 'then &bus_to= ___TMP___from;'; put '/* new record may replace old record entirely */'; put 'if &bus_from >= &bus_to then delete;'; put 'if &bus_from=___TMP___from and &bus_to=___TMP___to then delete;'; put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; put 'end;'; put '___TMP___from=&bus_from;'; put '___TMP___to=&bus_to;'; put '%end;'; put 'run;'; put '%put syscc (line600)=&syscc;'; put '/**'; put 'There may still be some records (eg old business history) which have not'; put 'changed.'; put 'Need to identify these and remove from the append so they are not updated'; put 'unnecessarily. This is done by generating a new md5 (which INCLUDES the'; put 'business key) and any matching / identical records are split out (from those'; put 'that need to be updated).'; put '*/'; put '%if &loadtype=BITEMPORAL %then %do;'; put '%let cat_string=catx(''|'' ,&bus_from,&bus_to);'; put 'data work.bitemp5a_lkp (keep=&md5_col)'; put '%if "%substr(&sysver,1,1)" ne "4" & "%substr(&sysver,1,1)" ne "5" %then %do;'; put '/nonote2err'; put '%end;'; put ';'; put 'set work.bitemp0_base;'; put '/* for BITEMPORAL we need to compare business dates also */'; put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.);'; put 'run;'; put 'data bitemp5b_updates;'; put 'set bitemp4d_secondpass;'; put 'if _n_=1 then do;'; put 'dcl hash md5_lkp(dataset:''bitemp5a_lkp'');'; put 'md5_lkp.definekey("&md5_col");'; put 'md5_lkp.definedone();'; put 'end;'; put '/* drop old md5 col as will rebuild with new business dates */'; put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.) ;'; put 'if md5_lkp.check()=0 then delete;'; put 'run;'; put 'proc sql;'; put '/* get min bus from as will update (close out) all records from this point'; put '(for that PK)*/'; put 'create table work.bitemp5d_subquery as'; put 'select &pk_comma, min(&bus_from)as &bus_from, max(&bus_to) as &bus_to'; put 'from work.bitemp5b_updates'; put 'group by &pk_comma;'; put '/* index has a huge efficiency impact on upcoming nested subquery */'; put 'create index index1 on work.bitemp5d_subquery(&pk_comma,&bus_from, &bus_to);'; put '%let lastds=work.bitemp5b_updates;'; put '%end;'; put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; put 'proc sql;'; put 'create table work.bitemp5d_subquery as'; put 'select distinct &pk_comma'; put 'from bitemp4d_secondpass;'; put '%let lastds=work.bitemp4d_secondpass;'; put '%end;'; put '%else %let lastds=work.bitemp4d_secondpass;'; put '/* create single append table (an overlapped pre-sert may be classed as'; put 'both an update AND a new record). Also create temp views that may be'; put 'used for pre-load analysis. */'; put 'data &outds_mod;'; put 'set &lastds(drop=___TMP___: &md5_col);'; put 'run;'; put 'data bitemp6_allrecs / view=bitemp6_allrecs;'; put 'set &outds_mod /* UPDATED records */'; put '&outds_add /* NEW records */;'; put 'run;'; put 'proc sort data=work.bitemp6_allrecs'; put 'out=work.bitemp6_unique'; put 'noduprec'; put 'dupout=work.xx_BADBADBAD;'; put 'by _all_;'; put 'run;'; put '/* we have all our temp tables now so exit if this is all that is needed */'; put '%if &LOADTARGET ne YES %then %return;'; put '/* also exit if an err condition exists */'; put '%if &syscc>0 %then %do;'; put '%put syscc=&syscc;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%if "&outds_audit" ne "0" %then %do;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=&sysmacroname in &_program'; put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status)'; put ')'; put '/* final check - abort if a lock has appeared on the target or audit table */'; put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; put '%if %mf_existds(&outds_audit) %then %do;'; put '%mp_lockfilecheck(libds=&outds_audit)'; put '%end;'; put '/**'; put '* STAGING TABLES PREPARED, ERR CONDITION TESTED FOR.. NOW TO LOAD!!'; put '*/'; put '/**'; put '* First, CLOSE OUT changed records (if not a REPLACE)'; put '* Note that SAS does not support ANSI standard for UPDATE with a join condition.'; put '* However - this can be worked around using a nested subquery..'; put '*/'; put 'data _null_;'; put 'putlog "&sysmacroname: CLOSEOUTS commencing";'; put 'run;'; put '%if %mf_getattrn(&lastds,NLOBS)=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: No closeouts needed";'; put 'run;'; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put '%mp_abort(iftrue= (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL)'; put ',mac=&sysmacroname in &_program'; put ',msg=%str(&loadtype not yet supported in CAS engine)'; put ')'; put '/* create temp table for deletions */'; put '%local delds;%let delds=%mf_getuniquename(prefix=DC);'; put 'data casuser.&delds;'; put 'set work.bitemp5d_subquery;'; put 'run;'; put '/* delete the records */'; put 'proc cas ;'; put 'table.deleteRows / table={'; put 'caslib="&base_lib",'; put 'name="&base_dsn",'; put 'where="1=1",'; put 'whereTable={caslib=''CASUSER'',name="&delds"}'; put '};'; put 'quit;'; put '/* drop temp table */'; put 'proc sql;'; put 'drop table CASUSER.&delds;'; put '%end;'; put '%else %if (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL or &loadtype=UPDATE)'; put '%then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: &loadtype operation using &engine_type engine";'; put 'run;'; put '%local flexinow;'; put 'proc sql;'; put '/* if OLEDB then create a temp table for efficiency */'; put '%local innertable;'; put '%if &engine_type=OLEDB %then %do;'; put '%let innertable=[&temp_table];'; put '%let top_table=[dbo].&base_dsn;'; put '%let flexinow=&SQLNOW;'; put 'create table &base_lib.."&temp_table"n as'; put 'select * from work.bitemp5d_subquery;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'execute('; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put '%let innertable=%mf_getuniquename(prefix=XDCTEMP);'; put '%let top_table=&baselib_schema.&base_dsn;'; put '%let flexinow=timestamp &SQLNOW;'; put '/* make empty table first - must clone & drop extra cols'; put 'as autoload is bad */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'exec (create table &innertable (like &baselib_schema.&base_dsn)) by myAlias;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'exec (alter table &innertable alter sortkey none) by myAlias;'; put '%end;'; put '%let dropcols=%mf_wordsinstr1butnotstr2('; put 'str1=%upcase(%mf_getvarlist(&basecopy))'; put ',str2=%upcase(%mf_getvarlist(work.bitemp5d_subquery))'; put ');'; put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; put '%put &=dropcols;'; put '%let idx_val=%scan(&dropcols,&idx_pk);'; put 'exec(alter table &innertable drop column &idx_val;) by myAlias;;'; put '%end;'; put '/* create view to strip formats and avoid warns in log */'; put 'data work.vw_bitemp5d/view=work.vw_bitemp5d;'; put 'set work.bitemp5d_subquery;'; put 'format _all_;'; put 'run;'; put 'proc append base=&base_lib..&innertable ('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put 'data=work.vw_bitemp5d force nowarn;'; put 'run;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'execute('; put '%end;'; put '%else %do;'; put '%let innertable=bitemp5d_subquery;'; put '%let top_table=&base_lib..&base_dsn;'; put '%let flexinow=&now;'; put '%end;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put 'update &top_table set &tech_to=&flexinow'; put '%if %length(&processed)>0 %then %do;'; put ',&processed=&flexinow'; put '%end;'; put 'where &tech_from <= &flexinow and &flexinow < &tech_to and'; put '%end;'; put '%else %if &loadtype=UPDATE %then %do;'; put '/* changed records are deleted then re-appended when doing UPDATEs */'; put 'delete from &top_table where'; put '%end;'; put '%else %do;'; put '%put %str(ERR)OR: BUSTEMPORAL NOT YET SUPPORTED;'; put '%let syscc=5;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%goto end_of_macro;'; put '%end;'; put '/* perform join inside query as per'; put 'http://stackoverflow.com/questions/24629793/update-with-a-proc-sql */'; put 'exists( select 1 from &baselib_schema.&innertable where'; put '/* loop PK join */'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put '&base_dsn..&idx_val=&innertable..&idx_val and'; put '%end;'; put '%if &loadtype=BITEMPORAL %then %do;'; put '&base_dsn..&bus_from >= &innertable..&bus_from'; put 'and &base_dsn..&bus_to <= &innertable..&bus_to and'; put '%end;'; put '/* close the statement */'; put '1=1);'; put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; put '%then %do;'; put ') by myAlias;'; put 'execute (drop table &baselib_schema.&innertable) by myAlias;'; put '%end;'; put '%end;'; put 'quit;'; put 'data _null_;'; put 'putlog "&sysmacroname: Closeout complete";'; put 'run;'; put '/**'; put '* Append the new / updated records'; put '*/'; put '%if &engine_type=CAS %then %do;'; put '/* get varchar variables ready for casting */'; put '%local vcfmt vcrename vcassign vcdrop;'; put 'data _null_;'; put 'set work.bitemp_cols(where=(type=6)) end=last;'; put 'length vcrename vcassign vcdrop vcfmt $32767 rancol $32;'; put 'retain vcrename vcassign vcdrop vcfmt;'; put 'if _n_=1 then vcrename=''(rename=('';'; put 'rancol=resolve(''%mf_getuniquename()'');'; put 'vcfmt=trim(vcfmt)!!''length ''!!cats(name)!!'' varchar(*);'';'; put 'vcrename=trim(vcrename)!!'' ''!!cats(name,''='',rancol);'; put 'vcassign=cats(vcassign,name,''='',rancol,'';'');'; put 'vcdrop=cats(vcdrop,''drop ''!!rancol,'';'');'; put 'if last then do;'; put 'vcrename=cats(vcrename,''))'');'; put 'call symputx(''vcfmt'',vcfmt);'; put 'call symputx(''vcrename'',vcrename);'; put 'call symputx(''vcassign'',vcassign);'; put 'call symputx(''vcdrop'',vcdrop);'; put 'end;'; put 'run;'; put '/* prepare a temp cas table with varchars casted */'; put '%let tmp=%mf_getuniquename();'; put 'data casuser.&tmp ;'; put '&vcfmt'; put 'set work.bitemp6_unique &vcrename;'; put '&vcassign'; put '&vcdrop'; put 'run;'; put '/* load the table with varchars applied*/'; put 'data &base_lib..&base_dsn (append=yes )/sessref=dcsession ;'; put 'set casuser.&tmp;'; put 'run;'; put '/* drop temp table */'; put 'proc sql;'; put 'drop table CASUSER.&tmp;'; put '/* this code will not work as regular tables do not have varchars */'; put '/*'; put 'proc casutil;'; put 'load data=work.bitemp6_unique'; put 'outcaslib="&base_lib" casout="&base_dsn" append ;'; put 'quit;'; put '*/'; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put 'proc append base=&base_lib..&base_dsn'; put '%if &engine_type=REDSHIFT %then %do;'; put '('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put '%end;'; put 'data=bitemp6_unique force nowarn;'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc append base=&base_lib..&base_dsn data=bitemp6_unique force nowarn; run;'; put '%end;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '/* final check on syscc */'; put '%mp_abort(iftrue= (&syscc >4)'; put ',mac=&_program'; put ',msg=%str(!!Upload NOT successful!! Failed on actual update / append stage..)'; put ')'; put '%if &outds_audit ne 0 and &LOADTARGET=YES %then %do;'; put 'data work.vw_outds_orig /view=work.vw_outds_orig;'; put 'set work.bitemp0_base (drop=&md5_col);'; put 'where ___TMP___NEW_FLG=0;'; put 'drop ___TMP___NEW_FLG;'; put 'run;'; put '/* update the AUDIT table */'; put '%if %mf_existds(&outds_audit) %then %do;'; put 'options mprint;'; put '%mp_storediffs(&base_lib..&base_dsn'; put ',work.vw_outds_orig'; put ',&pk &bus_from'; put ',delds=&outds_del'; put ',modds=&outds_mod'; put ',appds=&outds_add'; put ',outds=work.mp_storediffs'; put ',processed_dttm=&now'; put ',loadref=%superq(etlsource)'; put ')'; put '/* exclude unchanged values in modified rows */'; put 'data work.mp_storediffs;'; put 'set work.mp_storediffs;'; put 'if MOVE_TYPE="M" and IS_PK=0 and IS_DIFF=0 then delete;'; put '* putlog load_ref= libref= dsn= key_hash= tgtvar_nm=;'; put 'run;'; put 'proc append base=&outds_audit data=work.mp_storediffs;'; put 'run;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%mp_abort(iftrue= (&syscc >4)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Problem in audit stage (&outds_audit))'; put ')'; put '%let user=%mf_getUser();'; put '/**'; put 'Notify as appropriate EMAILS DISABLED'; put '%sumo_alerts(ALERT_EVENT=UPDATE'; put ', ALERT_TARGET=&base_lib..&base_dsn'; put ', from_user= &user);'; put '*/'; put '/* monitor BiTemporal usage */'; put '%if &log=1 %then %do;'; put '%put syscc=&syscc;'; put '/* do not perform duration calc in pass through */'; put '%local dur;'; put 'data _null_;'; put 'now=symget(''now'');'; put 'dur=%sysfunc(datetime())-&now;'; put 'call symputx(''dur'',dur,''l'');'; put 'run;'; put 'proc sql;'; put 'insert into &dclib..mpe_dataloads'; put 'set libref=%upcase("&base_lib")'; put ',DSN=%upcase("&base_dsn")'; put ',ETLSOURCE="&ETLSOURCE"'; put ',LOADTYPE="&loadtype"'; put ',CHANGED_RECORDS=%mf_getattrn(&lastds,NLOBS)'; put ',NEW_RECORDS=%mf_getattrn(&outds_add,NLOBS)'; put ',DELETED_RECORDS=%mf_getattrn(&outds_del,NLOBS)'; put ',DURATION=&dur'; put ',MAC_VER="v&ver"'; put ',user_nm="&user"'; put ',PROCESSED_DTTM=&now;'; put 'quit;'; put '%put syscc=&syscc;'; put '%end;'; put '%end_of_macro:'; put '%mend bitemporal_dataloader;'; put '%macro dc_getlibs(outds=mm_getlibs);'; put 'proc sql;'; put 'create table &outds as'; put 'select distinct libname as LibraryRef'; put ',libname as LibraryName length=256'; put ',engine'; put ','''' as libraryid length=17'; put 'from dictionary.libnames'; put 'where libname not in (''WORK'',''SASUSER'');'; put 'insert into &syslast values ("&DC_LIBREF", "&DC_LIBNAME",'''',''V9'');'; put '%mend dc_getlibs;'; put '%macro mpe_refreshlibs(lib=0);'; put '%dc_getlibs(outds=work.mm_getLibs)'; put 'proc sort data=mm_getlibs;'; put 'by libraryref libraryname;'; put 'run;'; put 'data libs0;'; put 'set mm_getlibs;'; put 'by libraryref;'; put '%if &lib ne 0 %then %do;'; put 'where upcase(libraryref)="%upcase(&lib)";'; put '%end;'; put 'if "%mf_getplatform()"="SASMETA" then do;'; put '/* note - invalid libraries can result in exception errors. If this happens,'; put 'configure the dc_viewlib_check variable to NO in Data Controller Settings */'; put 'rc=libname(libraryref,,''meta'',cats(''library="'',libraryname,''";''));'; put 'drop rc;'; put 'if rc ne 0 then do;'; put 'putlog "NOTE: Library " libraryname " does not exist!!";'; put 'putlog (_all_) (=);'; put 'delete;'; put 'end;'; put 'end;'; put 'if not first.libraryref then delete;'; put 'run;'; put 'proc sql;'; put 'create table libs1 as'; put 'select distinct libname'; put ',engine'; put ',path'; put ',level'; put ',sysname'; put ',sysvalue'; put 'from dictionary.libnames'; put 'order by libname, level,engine,path;'; put 'data libs2;'; put 'set libs1;'; put 'length tran $1024;'; put 'if missing(sysname) then sysname=''Missing'';'; put 'select(sysname);'; put 'when(''Access Permission'') tran=''Permissions'';'; put 'when(''Owner Name'') tran=''Owner'';'; put 'when(''Schema/Owner'') tran=''schema'';'; put 'otherwise tran=sysname;'; put 'end;'; put 'run;'; put 'proc transpose data=libs2 out=libs3;'; put 'by libname level engine path;'; put 'var sysvalue;'; put 'id tran;'; put 'run;'; put 'data libs4(rename=(libname=libref));'; put 'length paths $8192 perms owners schemas $500 permissions owner schema $1024;'; put 'if _n_=1 then call missing (of _all_);'; put 'set libs3;'; put 'by libname;'; put 'if engine=''V9'' then engine=''BASE'';'; put 'if first.libname then do;'; put 'retain paths perms owners schemas;'; put 'paths=''(''!!quote(trim(path));'; put 'perms=permissions;'; put 'owners=owner;'; put 'schemas=schema;'; put 'end;'; put 'else do;'; put 'paths=trim(paths)!!'' ''!!quote(trim(path));'; put 'perms=trim(perms)!!'',''!!trim(permissions);'; put 'owners=trim(owners)!!'',''!!trim(owner);'; put 'schemas=trim(schemas)!!'' ''!!trim(schema);'; put 'end;'; put 'if last.libname then do;'; put 'paths=trim(paths)!!'')'';'; put 'schemas=cats(schemas);'; put 'output;'; put 'end;'; put 'keep libname engine paths perms owners schemas;'; put 'run;'; put 'proc sql;'; put 'create table libs5 as'; put 'select a.libref'; put ',coalescec(b.engine,a.engine) as engine length=32'; put ',b.libraryname as libname'; put ',a.paths'; put ',a.perms'; put ',a.owners'; put ',a.schemas'; put ',b.libraryid as libid'; put 'from libs4 a'; put 'left join libs0 b'; put 'on upcase(a.libref)=upcase(b.libraryref)'; put 'where libref not in (''SASWORK'',''WORK'',''SASUSER'',''CASUSER'',''TEMP'',''STPSAMP'''; put ',''MAPSGFK'');'; put '%bitemporal_dataloader(base_lib=&dc_libref'; put ',base_dsn=MPE_DATACATALOG_LIBS'; put ',append_dsn=libs5'; put ',PK=LIBREF'; put ',etlsource=&_program'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put ',dclib=&dc_libref'; put ')'; put '%mend mpe_refreshlibs;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file refreshlibs.sas'; put '@brief Refreshes the library data catalog'; put '@details'; put '

SAS Macros

'; put '@li mpeinit.sas'; put '@li mpe_refreshlibs.sas'; put '@version 9.3'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%mpe_refreshlibs()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=registerkey; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '/** @cond */'; put '%macro mf_existvar(libds /* 2 part dataset name */'; put ', var /* variable name */'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid=0 %then %do;'; put '%put %sysfunc(sysmsg());'; put '0'; put '%end;'; put '%else %if %length(&var)=0 %then %do;'; put '0'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%sysfunc(varnum(&dsid,&var))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_existvar;'; put '/** @endcond */'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_getvartype(libds /* two level name */'; put ', var /* variable name from which to return the type */'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vtype rc;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid. > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable type (C/N) */'; put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let vtype = %str( );'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable type */'; put '&vtype'; put '%mend mf_getvartype;'; put '%macro mf_getattrc('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrc(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrc;'; put '%macro mp_lockfilecheck('; put 'libds'; put ')/*/STORE SOURCE*/;'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=checklock.sas'; put ',msg=Aborting with syscc=&syscc on entry.'; put ')'; put '%mp_abort(iftrue= ("&libds"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(libds not provided)'; put ')'; put '%local msg lib ds;'; put '%let lib=%upcase(%scan(&libds,1,.));'; put '%let ds=%upcase(%scan(&libds,2,.));'; put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; put '%if %scan(&libds,2,-)=FC %then %do;'; put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=checklock.sas'; put ',msg=%superq(msg)'; put ')'; put 'data _null_;'; put 'putlog "Checking engine & member type";'; put 'run;'; put '%local engine memtype;'; put '%let memtype=%mf_getattrc(&libds,MTYPE);'; put '%let engine=%mf_getattrc(&libds,ENGINE);'; put '%if &engine ne V9 and &engine ne BASE %then %do;'; put 'data _null_;'; put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; put 'putlog "SAS lock check will not be performed";'; put 'run;'; put '%return;'; put '%end;'; put '%else %if &memtype ne DATA %then %do;'; put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; put '%return;'; put '%end;'; put 'data _null_;'; put 'putlog "Engine = &engine, memtype=&memtype";'; put 'putlog "Attempting lock statement";'; put 'run;'; put 'lock &libds;'; put '%local abortme;'; put '%let abortme=0;'; put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; put '%put %str(ERR)OR: &sysmacroname: &msg;'; put '%let abortme=1;'; put '%end;'; put 'lock &libds clear;'; put '%mp_abort(iftrue= (&abortme=1)'; put ',mac=&sysmacroname'; put ',msg=%superq(msg)'; put ')'; put '%mend mp_lockfilecheck;'; put '%macro mp_lockanytable('; put 'action'; put ',lib= WORK'; put ',ds=0'; put ',ref='; put ',ctl_ds=0'; put ',loops=25'; put ',loop_secs=1'; put ');'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(dataset was not provided)'; put ')'; put '%mp_abort(iftrue= (&ctl_ds=0)'; put ',mac=&sysmacroname'; put ',msg=%str(Control dataset was not provided)'; put ')'; put '/* set up lib & mac vars */'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '%let action=%upcase(&action);'; put '%local user x trans msg abortme;'; put '%let user=%mf_getuser();'; put '%let abortme=0;'; put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid action (&action) provided)'; put ')'; put '/* if an err condition exists, exit before we even begin */'; put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; put ',mac=&sysmacroname'; put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; put ')'; put '/* do not bother locking work tables (else may affect all WORK libraries) */'; put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; put '%put NOTE: WORK libraries will not be registered in the locking system.;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=&sysmacroname'; put ',msg=%str(cannot continue when options obs = 0)'; put ')'; put '%if &ACTION=LOCK %then %do;'; put '/* abort if a SAS lock is already in place, or cannot be applied */'; put '%mp_lockfilecheck(&lib..&ds)'; put '/* next, check there is a record for this table */'; put '%local record_exists_check;'; put 'proc sql noprint;'; put 'select count(*) into: record_exists_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &record_exists_check=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: adding record to lock table..";'; put 'run;'; put 'data ;'; put 'if 0 then set &ctl_ds;'; put 'LOCK_LIB ="&lib";'; put 'LOCK_DS="&ds";'; put 'LOCK_STATUS_CD=''LOCKED'';'; put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'LOCK_USER_NM="&user";'; put 'LOCK_PID="&sysjobid";'; put 'LOCK_REF="&ref";'; put 'output;stop;'; put 'run;'; put '%let trans=&syslast;'; put 'proc append base=&ctl_ds data=&trans;'; put 'run;'; put '%end;'; put '/* if record does exist, perform lock attempts */'; put '%else %do x=1 %to &loops;'; put 'data _null_;'; put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''LOCKED'''; put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '/**'; put '* NOTE - occasionally SQL server will return an err code (deadlocked'; put '* transaction). If so, ignore it, keep calm, and carry on..'; put '*/'; put '%if &syscc>0 %then %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; put 'putlog "Resetting err conditions and re-attempting.";'; put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%let syscc=0;'; put '%let sqlrc=0;'; put '%end;'; put '/* now check if the record was successfully updated */'; put '%local success_check;'; put 'proc sql noprint;'; put 'select count(*) into: success_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; put 'quit;'; put '%if &success_check=0 %then %do;'; put '%if &x < &loops %then %do;'; put '/* pause before next check */'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; put 'putlog "%sysfunc(sleep(&loop_secs)) seconds.. ";'; put 'putlog "NOTE- (iteration &x of &loops)";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%end;'; put '%else %do;'; put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; put 'Please ask your administrator to investigate!;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%else %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%if &syscc>0 %then %do;'; put '%put setting syscc(&syscc) back to 0;'; put '%let syscc=0;'; put '%end;'; put '%let x=&loops; /* no more iterations needed */'; put '%end;'; put '%end;'; put '%end;'; put '%else %if &ACTION=UNLOCK %then %do;'; put '%local status cnt;'; put '%let cnt=0;'; put 'proc sql noprint;'; put 'select count(*) into: cnt from &ctl_ds where LOCK_LIB ="&lib" & LOCK_DS="&ds";'; put '%if &cnt=0 %then %do;'; put '%put %str(WAR)NING: &lib..&ds was not previously locked in &ctl_ds!;'; put '%end;'; put '%else %do;'; put 'select LOCK_STATUS_CD into: status from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &status=LOCKED %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''UNLOCKED'''; put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%end;'; put '%else %if &status=UNLOCKED %then %do;'; put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; put '%end;'; put '%else %do;'; put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%end;'; put '%else %do;'; put '%let msg=lock_anytable given unsupported action (&action);'; put '%let abortme=1;'; put '%end;'; put '/* catch errs - mp_abort must be called outside of a logic block */'; put '%mp_abort(iftrue=(&abortme=1),'; put 'msg=%superq(msg),'; put 'mac=&sysmacroname'; put ')'; put '%exit_macro:'; put 'data _null_;'; put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; put 'run;'; put '%mend mp_lockanytable;'; put '%macro bitemporal_closeouts('; put 'tech_from=tx_from_dttm'; put ',tech_to = tx_to_dttm /* Technical TO datetime variable.'; put 'Req''d on BASE table only. */'; put ',base_lib=WORK /* Libref of the BASE table. */'; put ',base_dsn=BASETABLE /* Name of BASE table. */'; put ',append_lib=WORK /* Libref of the STAGING table. */'; put ',append_dsn=APPENDTABLE /* Name of STAGING table. */'; put ',PK= name sex /* Business key, space separated. */'; put '/* Should INCLUDE BUS_FROM field if relevant. */'; put ',NOW=DEFINE'; put ',FILTER= /* supply a filter to limit the update */'; put ',outdest= /* supply an unquoted filepath/filename.ext to get'; put 'a text file containing the update statements */'; put ',loadtype='; put ',loadtarget=YES /* if <> YES will return without changing anything */'; put ');'; put '%put ENTERING &sysmacroname;'; put '%local x var start;'; put '%let start=%sysfunc(datetime());'; put '%dc_assignlib(WRITE,&base_lib)'; put '%dc_assignlib(WRITE,&append_lib)'; put '%if &now=DEFINE %then %let now=&dc_dttmtfmt.;'; put '%put &=now;'; put '/**'; put '* perform basic checks'; put '*/'; put '/* do tables exist? */'; put '%if not %sysfunc(exist(&base_lib..&base_dsn)) %then %do;'; put '%mp_abort(msg=&base_lib..&base_dsn does not exist)'; put '%end;'; put '%else %if %sysfunc(exist(&append_lib..&append_dsn))=0'; put 'and %sysfunc(exist(&append_lib..&append_dsn,VIEW))=0 %then %do;'; put '%mp_abort(msg=&append_lib..&append_dsn does not exist)'; put '%end;'; put '/* do TX columns exist? */'; put '%if &loadtype ne UPDATE %then %do;'; put '%if not %mf_existvar(&base_lib..&base_dsn,&tech_from) %then %do;'; put '%mp_abort(msg=&tech_from does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%else %if not %mf_existvar(&base_lib..&base_dsn,&tech_to) %then %do;'; put '%mp_abort(msg=&tech_to does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%end;'; put '/* do PK columns exist? */'; put '%do x=1 %to %sysfunc(countw(&PK));'; put '%let var=%scan(&pk,&x,%str( ));'; put '%if not %mf_existvar(&base_lib..&base_dsn,&var) %then %do;'; put '%mp_abort(msg=&var does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%else %if not %mf_existvar(&append_lib..&append_dsn,&var) %then %do;'; put '%mp_abort(msg=&var does not exist on &append_lib..&append_dsn)'; put '%end;'; put '%end;'; put '/* check uniqueness */'; put 'proc sort data=&append_lib..&append_dsn'; put 'out=___closeout1 noduprecs dupout=___closeout1a;'; put 'by &pk;'; put 'run;'; put '%if %mf_getattrn(___closeout1a,NLOBS)>0 %then'; put '%put NOTE: dups on (&PK) in (&append_lib..&append_dsn);'; put '/* is &NOW value within a tolerance? Should not allow renegade closeouts.. */'; put '%local gap;'; put '%let gap=0;'; put 'data _null_;'; put 'now=&now;'; put 'gap=intck(''HOURS'',now,datetime());'; put 'call symputx(''gap'',gap,''l'');'; put 'run;'; put '%mf_abort('; put 'iftrue=(&gap > 24),'; put 'msg=NOW variable (&now) is not within a 24hr tolerance'; put ')'; put '/* have any warnings / errs occurred thus far? If so, abort */'; put '%mf_abort('; put 'iftrue=(&syscc>0),'; put 'msg=Aborted due to SYSCC=&SYSCC status'; put ')'; put '/**'; put '* Create closeout statements. These are sent as individual SQL statements'; put '* to ensure pass-through utilisation. The update_cnt variable monitors'; put '* how many records were actually updated on the target table.'; put '*/'; put '%local update_cnt;'; put '%let update_cnt=0;'; put 'filename tmp temp;'; put 'data _null_;'; put 'set ___closeout1;'; put 'file tmp;'; put 'if _n_=1 then put ''proc sql noprint;'' ;'; put 'length string $32767.;'; put '%if &loadtype=UPDATE %then %do;'; put 'put "delete from &base_lib..&base_dsn where 1";'; put '%end;'; put '%else %do;'; put 'now=symget(''now'');'; put 'put "update &base_lib..&base_dsn set &tech_to= " now @;'; put '%if %mf_existvar(&base_lib..&base_dsn,PROCESSED_DTTM) %then %do;'; put 'put " ,PROCESSED_DTTM=" now @;'; put '%end;'; put 'put " where " now " lt &tech_to ";'; put '%end;'; put '%do x=1 %to %sysfunc(countw(&PK));'; put '%let var=%scan(&pk,&x,%str( ));'; put '%if %mf_getvartype(&base_lib..&base_dsn,&var)=C %then %do;'; put '/* use single quotes to avoid ampersand resolution in data */'; put 'string=" & &var=''"!!trim(prxchange("s/''/''''/",-1,&var))!!"''";'; put '%end;'; put '%else %do;'; put 'string=cats(" & &var=",&var);'; put '%end;'; put 'put string;'; put '%end;'; put 'put "&filter ;";'; put 'put ''%let update_cnt=%eval(&update_cnt+&sqlobs);%put update_cnt=&update_cnt;'';'; put 'run;'; put 'data _null_;'; put 'infile tmp;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%if &loadtarget ne YES %then %return;'; put '/* ensure we have a lock */'; put '%mp_lockanytable(LOCK,'; put 'lib=&base_lib,ds=&base_dsn'; put ',ref=bitemporal_closeouts'; put ',ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'options source2;'; put '%inc tmp;'; put 'filename tmp clear;'; put '/**'; put '* Update audit tracker'; put '*/'; put '%local newobs; %let newobs=%mf_getattrn(work.___closeout1,NLOBS);'; put '%local user; %let user=%mf_getuser();'; put 'proc sql;'; put 'insert into &mpelib..mpe_dataloads'; put 'set libref=%upcase("&base_lib")'; put ',DSN=%upcase("&base_dsn")'; put ',ETLSOURCE="&append_lib..&append_dsn contained &newobs records"'; put ',LOADTYPE="CLOSEOUT"'; put ',DELETED_RECORDS=&update_cnt'; put ',NEW_RECORDS=0'; put ',DURATION=%sysfunc(datetime())-&start'; put ',USER_NM="&user"'; put ',PROCESSED_DTTM=&now;'; put 'quit;'; put '%mend bitemporal_closeouts;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '/** @cond */'; put '%macro mf_getengine(libref'; put ')/*/STORE SOURCE*/;'; put '%local dsid engnum rc engine;'; put '/* in case the parameter is a libref.tablename, pull off just the libref */'; put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; put '%let dsid=%sysfunc('; put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; put ');'; put '%if (&dsid ^= 0) %then %do;'; put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; put '%let rc=%sysfunc(fetch(&dsid));'; put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; put '%put &libref. ENGINE is &engine.;'; put '%let rc= %sysfunc(close(&dsid));'; put '%end;'; put '%upcase(&engine)'; put '%mend mf_getengine;'; put '/** @endcond */'; put '%macro mf_getschema(libref'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum rc schema;'; put '/* in case the parameter is a libref.tablename, pull off just the libref */'; put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; put '%let dsid=%sysfunc(open(sashelp.vlibnam(where=('; put 'libname="%upcase(&libref)" and sysname=''Schema/Owner'''; put ')),i));'; put '%if (&dsid ^= 0) %then %do;'; put '%let vnum=%sysfunc(varnum(&dsid,SYSVALUE));'; put '%let rc=%sysfunc(fetch(&dsid));'; put '%let schema=%sysfunc(getvarc(&dsid,&vnum));'; put '%put &libref. schema is &schema.;'; put '%let rc= %sysfunc(close(&dsid));'; put '%end;'; put '&schema'; put '%mend mf_getschema;'; put '/** @endcond */'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mf_wordsInStr1ButNotStr2('; put 'Str1= /* string containing words to extract */'; put ',Str2= /* used to compare with the extract string */'; put ')/*/STORE SOURCE*/;'; put '%local count_base count_extr i i2 extr_word base_word match outvar;'; put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; put '%put base string (str1)= &str1;'; put '%put compare string (str2) = &str2;'; put '%return;'; put '%end;'; put '%let count_base=%sysfunc(countw(&Str2));'; put '%let count_extr=%sysfunc(countw(&Str1));'; put '%do i=1 %to &count_extr;'; put '%let extr_word=%scan(&Str1,&i,%str( ));'; put '%let match=0;'; put '%do i2=1 %to &count_base;'; put '%let base_word=%scan(&Str2,&i2,%str( ));'; put '%if &extr_word=&base_word %then %let match=1;'; put '%end;'; put '%if &match=0 %then %let outvar=&outvar &extr_word;'; put '%end;'; put '&outvar'; put '%mend mf_wordsInStr1ButNotStr2;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro mf_getquotedstr(IN_STR'; put ',DLM=%str(,)'; put ',QUOTE=S'; put ',indlm=%str( )'; put ')/*/STORE SOURCE*/;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; put '%else %if "e=N %then %let quote=;'; put '%local i item buffer;'; put '%let i=1;'; put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; put '%else %let item=%qtrim(&item);'; put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; put '%else %let buffer =&buffer&DLM%qtrim(&item);'; put '%let i = %eval(&i+1);'; put '%end;'; put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; put '&buffer'; put '%mend mf_getquotedstr;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '%macro mp_retainedkey('; put 'base_lib=WORK'; put ',base_dsn=BASETABLE'; put ',append_lib=WORK'; put ',append_dsn=APPENDTABLE'; put ',retained_key=DEFAULT_RK'; put ',business_key= PK1 PK2'; put ',check_uniqueness=NO'; put ',maxkeytable=0'; put ',locktable=0'; put ',outds=WORK.APPEND'; put ',filter_str='; put ');'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%local base_libds app_libds key_field check maxkey idx_pk newkey_cnt iserr'; put 'msg x tempds1 tempds2 comma_pk appnobs checknobs dropvar tempvar idx_val;'; put '%let base_libds=%upcase(&base_lib..&base_dsn);'; put '%let app_libds=%upcase(&append_lib..&append_dsn);'; put '%let tempds1=%mf_getuniquename();'; put '%let tempds2=%mf_getuniquename();'; put '%let comma_pk=%mf_getquotedstr(in_str=%str(&business_key),dlm=%str(,),quote=);'; put '%let outds=%sysfunc(ifc(%index(&outds,.)=0,work.&outds,&outds));'; put '/* validation checks */'; put '%let iserr=0;'; put '%if &syscc>0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(SYSCC=&syscc on macro entry);'; put '%end;'; put '%else %if %sysfunc(exist(&base_libds))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Base LIBDS (&base_libds) expected but NOT FOUND);'; put '%end;'; put '%else %if %sysfunc(exist(&app_libds))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Append LIBDS (&app_libds) expected but NOT FOUND);'; put '%end;'; put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&maxkeytable))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Maxkeytable (&maxkeytable) expected but NOT FOUND);'; put '%end;'; put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&locktable))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Locktable (&locktable) expected but NOT FOUND);'; put '%end;'; put '%else %if %length(&business_key)=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Business key (&business_key) expected but NOT FOUND);'; put '%end;'; put '%do x=1 %to %sysfunc(countw(&business_key));'; put '/* check business key values exist */'; put '%let key_field=%scan(&business_key,&x,%str( ));'; put '%if not %mf_existvar(&app_libds,&key_field) %then %do;'; put '%let iserr=1;'; put '%let msg=Business key (&key_field) not found on &app_libds!;'; put '%goto err;'; put '%end;'; put '%else %if not %mf_existvar(&base_libds,&key_field) %then %do;'; put '%let iserr=1;'; put '%let msg=Business key (&key_field) not found on &base_libds!;'; put '%goto err;'; put '%end;'; put '%end;'; put '%err:'; put '%if &iserr=1 %then %do;'; put '/* err case so first perform an unlock of the base table before exiting */'; put '%mp_lockanytable('; put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; put ')'; put '%end;'; put '%mp_abort(iftrue=(&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; put 'proc sql noprint;'; put 'select sum(max(&retained_key),0) into: maxkey from &base_libds;'; put '/**'; put '* get base table RK and bus field values for lookup'; put '*/'; put 'proc sql noprint;'; put 'create table &tempds1 as'; put 'select distinct &comma_pk,&retained_key'; put 'from &base_libds &filter_str'; put 'order by &comma_pk,&retained_key;'; put '%if &check_uniqueness=YES %then %do;'; put 'select count(*) into:checknobs'; put 'from (select distinct &comma_pk from &app_libds);'; put 'select count(*) into: appnobs from &app_libds; /* might be view */'; put '%if &checknobs ne &appnobs %then %do;'; put '%let msg=Source table &app_libds is not unique on (&business_key);'; put '%let iserr=1;'; put '%end;'; put '%end;'; put '%if &iserr=1 %then %do;'; put '/* err case so first perform an unlock of the base table before exiting */'; put '%mp_lockanytable('; put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; put ')'; put '%end;'; put '%mp_abort(iftrue= (&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; put '%if %mf_existvar(&app_libds,&retained_key)'; put '%then %let dropvar=(drop=&retained_key);'; put '/* prepare interim table with retained key populated for matching keys */'; put 'proc sql noprint;'; put 'create table &tempds2 as'; put 'select b.&retained_key, a.*'; put 'from &app_libds &dropvar a'; put 'left join &tempds1 b'; put 'on 1'; put '%do idx_pk=1 %to %sysfunc(countw(&business_key));'; put '%let idx_val=%scan(&business_key,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'order by &retained_key;'; put '/* identify the number of entries without retained keys (new records) */'; put 'select count(*) into: newkey_cnt'; put 'from &tempds2'; put 'where missing(&retained_key);'; put 'quit;'; put '/**'; put '* Update maxkey table if link provided'; put '*/'; put '%if &maxkeytable ne 0 %then %do;'; put 'proc sql noprint;'; put 'select count(*) into: check from &maxkeytable'; put 'where upcase(keytable)="&base_libds";'; put '%mp_lockanytable(LOCK'; put ',lib=%scan(&maxkeytable,1,.)'; put ',ds=%scan(&maxkeytable,2,.)'; put ',ref=Updating maxkeyvalues with mp_retainedkey'; put ',ctl_ds=&locktable'; put ')'; put 'proc sql;'; put '%if &check=0 %then %do;'; put 'insert into &maxkeytable'; put 'set keytable="&base_libds"'; put ',keycolumn="&retained_key"'; put ',max_key=%eval(&maxkey+&newkey_cnt)'; put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put '%end;'; put '%else %do;'; put 'update &maxkeytable'; put 'set max_key=%eval(&maxkey+&newkey_cnt)'; put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put 'where keytable="&base_libds";'; put '%end;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&maxkeytable,1,.)'; put ',ds=%scan(&maxkeytable,2,.)'; put ',ref=Updating maxkeyvalues with maxkey=%eval(&maxkey+&newkey_cnt)'; put ',ctl_ds=&locktable'; put ')'; put '%end;'; put '/* fill in the missing retained key values */'; put '%let tempvar=%mf_getuniquename();'; put 'data &outds(drop=&tempvar);'; put 'retain &tempvar %eval(&maxkey+1);'; put 'set &tempds2;'; put 'if &retained_key =. then &retained_key=&tempvar;'; put '&tempvar=&tempvar+1;'; put 'run;'; put '%mend mp_retainedkey;'; put '/** @cond */'; put '%macro mp_storediffs(libds'; put ',origds'; put ',key'; put ',delds=0'; put ',appds=0'; put ',modds=0'; put ',outds=work.mp_storediffs'; put ',loadref=0'; put ',processed_dttm=0'; put ',mdebug=0'; put ')/*/STORE SOURCE*/;'; put '%local dbg;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%end;'; put '%else %let dbg=*;'; put '/* set up unique and temporary vars */'; put '%local ds1 ds2 ds3 ds4 hashkey inds_auto inds_keep dslist vlist;'; put '%let ds1=%upcase(work.%mf_getuniquename(prefix=mpsd_ds1));'; put '%let ds2=%upcase(work.%mf_getuniquename(prefix=mpsd_ds2));'; put '%let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_ds3));'; put '%let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_ds4));'; put '%let hashkey=%upcase(%mf_getuniquename(prefix=mpsd_hashkey));'; put '%let inds_auto=%upcase(%mf_getuniquename(prefix=mpsd_inds_auto));'; put '%let inds_keep=%upcase(%mf_getuniquename(prefix=mpsd_inds_keep));'; put '%let dslist=&origds;'; put '%if &delds ne 0 %then %do;'; put '%let delds=%upcase(&delds);'; put '%if %scan(&delds,-1,.)=&delds %then %let delds=WORK.&delds;'; put '%let dslist=&dslist &delds;'; put '%end;'; put '%if &appds ne 0 %then %do;'; put '%let appds=%upcase(&appds);'; put '%if %scan(&appds,-1,.)=&appds %then %let appds=WORK.&appds;'; put '%let dslist=&dslist &appds;'; put '%end;'; put '%if &modds ne 0 %then %do;'; put '%let modds=%upcase(&modds);'; put '%if %scan(&modds,-1,.)=&modds %then %let modds=WORK.&modds;'; put '%let dslist=&dslist &modds;'; put '%end;'; put '%let origds=%upcase(&origds);'; put '%if %scan(&origds,-1,.)=&origds %then %let origds=WORK.&origds;'; put '%let key=%upcase(&key);'; put '/* hash the key and append all the tables (marking the source) */'; put 'data &ds1;'; put 'set &dslist indsname=&inds_auto;'; put '&hashkey=put(md5(catx(''|'',%mf_getquotedstr(&key,quote=N))),$hex32.);'; put '&inds_keep=upcase(&inds_auto);'; put 'proc sort;'; put 'by &inds_keep &hashkey;'; put 'run;'; put '/* transpose numeric & char vars */'; put 'proc transpose data=&ds1'; put 'out=&ds2(rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_num));'; put 'by &inds_keep &hashkey;'; put 'var _numeric_;'; put 'run;'; put 'proc transpose data=&ds1'; put 'out=&ds3('; put 'rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_char)'; put 'where=(tgtvar_nm not in ("&hashkey","&inds_keep"))'; put ');'; put 'by &inds_keep &hashkey;'; put 'var _character_;'; put 'run;'; put '%if %index(&libds,-)>0 and %scan(&libds,2,-)=FC %then %do;'; put '/* this is a format catalog - cannot query cols directly */'; put '%let vlist="TYPE","FMTNAME","FMTROW","START","END","LABEL","MIN","MAX"'; put ',"DEFAULT","LENGTH","FUZZ","PREFIX","MULT","FILL","NOEDIT","SEXCL"'; put ',"EEXCL","HLO","DECSEP","DIG3SEP","DATATYPE","LANGUAGE";'; put '%end;'; put '%else %let vlist=%mf_getvarlist(&libds,dlm=%str(,),quote=DOUBLE);'; put 'data &ds4;'; put 'length &inds_keep $41 tgtvar_nm $32 _label_ $256;'; put 'if _n_=1 then call missing(_label_);'; put 'drop _label_;'; put 'set &ds2 &ds3 indsname=&inds_auto;'; put 'tgtvar_nm=upcase(tgtvar_nm);'; put 'if tgtvar_nm in (%upcase(&vlist));'; put 'if upcase(&inds_auto)="&ds2" then tgtvar_type=''N'';'; put 'else if upcase(&inds_auto)="&ds3" then tgtvar_type=''C'';'; put 'else do;'; put 'putlog ''ERR'' +(-1) "OR: unidentified vartype input!" &inds_auto;'; put 'call symputx(''syscc'',98);'; put 'end;'; put 'if &inds_keep="&appds" then move_type=''A'';'; put 'else if &inds_keep="&delds" then move_type=''D'';'; put 'else if &inds_keep="&modds" then move_type=''M'';'; put 'else if &inds_keep="&origds" then move_type=''O'';'; put 'else do;'; put 'putlog ''ERR'' +(-1) "OR: unidentified movetype input!" &inds_keep;'; put 'call symputx(''syscc'',99);'; put 'end;'; put 'tgtvar_nm=upcase(tgtvar_nm);'; put 'if tgtvar_nm in (%mf_getquotedstr(&key)) then is_pk=1;'; put 'else is_pk=0;'; put 'drop &inds_keep;'; put 'run;'; put '%if "&loadref"="0" %then %let loadref=%sysfunc(uuidgen());'; put '%if &processed_dttm=0 %then %let processed_dttm=%sysfunc(datetime(),8.6);'; put '%let libds=%upcase(&libds);'; put '/* join orig vals for modified & deleted */'; put 'proc sql;'; put 'create table &outds as'; put 'select "&loadref" as load_ref length=36'; put ',&processed_dttm as processed_dttm format=E8601DT26.6'; put ',"%scan(&libds,1,.)" as libref length=8'; put ',"%scan(&libds,2,.)" as dsn length=32'; put ',b.key_hash length=32'; put ',b.move_type length=1'; put ',b.tgtvar_nm length=32'; put ',b.is_pk'; put ',case when b.move_type ne ''M'' then -1'; put 'when a.newval_num=b.newval_num and a.newval_char=b.newval_char then 0'; put 'else 1'; put 'end as is_diff'; put ',b.tgtvar_type length=1'; put ',case when b.move_type=''D'' then b.newval_num'; put 'else a.newval_num'; put 'end as oldval_num format=best32.'; put ',case when b.move_type=''D'' then .'; put 'else b.newval_num'; put 'end as newval_num format=best32.'; put ',case when b.move_type=''D'' then b.newval_char'; put 'else a.newval_char'; put 'end as oldval_char length=32765'; put ',case when b.move_type=''D'' then '''''; put 'else b.newval_char'; put 'end as newval_char length=32765'; put 'from &ds4(where=(move_type=''O'')) as a'; put 'right join &ds4(where=(move_type ne ''O'')) as b'; put 'on a.tgtvar_nm=b.tgtvar_nm'; put 'and a.key_hash=b.key_hash'; put 'order by move_type, key_hash,is_pk desc, tgtvar_nm;'; put '%if &mdebug=0 %then %do;'; put 'proc sql;'; put 'drop table &ds1, &ds2, &ds3, &ds4;'; put '%end;'; put '%mend mp_storediffs;'; put '/** @endcond */'; put '%macro bitemporal_dataloader('; put 'bus_from= /* Business FROM datetime variable. Req''d on'; put 'STAGING & BASE tables.*/'; put ',bus_to = /* Business TO datetime variable. Req''d on'; put 'STAGING & BASE tables. */'; put ',bus_from_override= /* Provide a hard coded BUS_FROM datetime value.*/'; put ',bus_to_override= /* provide a hard coded BUS_TO datetime value */'; put ',tech_from= /* Technical FROM datetime variable. Req''d on'; put 'BASE table only. */'; put ',tech_to = /* Technical TO datetime variable. Req''d on BASE'; put 'table only. */'; put ',processed= 0'; put ',base_lib=WORK /* Libref of the BASE table. */'; put ',base_dsn=BASETABLE /* Name of BASE table. */'; put ',append_lib=WORK /* Libref of the STAGING table. */'; put ',append_dsn=APPENDTABLE'; put ',high_date=''01JAN5999:00:00:00''dt /* High date to close out records */'; put ',PK= name sex'; put ',RK_UNDERLYING='; put ',KEEPVARS= /* Provides option for removing unwanted vars from append table */'; put ',RK_UPDATE_MAXKEYTABLE=NO /* If switching (or mix matching) with regular'; put 'SCD2 loader then set this switch to YES to'; put 'ensure the MAXKEYTABLE is updated with the'; put 'current maximum RK value for the target table'; put '*/'; put ',CHECK_UNIQUENESS=YES /* Perform a check of the APPEND table to ensure it is'; put 'unique on its business key */'; put ',ETLSOURCE=demo /* supply a value ($50.) to show as ETLSOURCE in'; put '&dclib..DATALOADS */'; put ',LOADTYPE=BITEMPORAL'; put ',RK_MAXKEYTABLE= mpe_maxkeyvalues'; put ',LOG=1 /* Switch to 0 to prevent records being added to'; put '&mpelib..mpe_DATALOADS (ie when testing)*/'; put ',DELETE_COL= _____DELETE__THIS__RECORD_____'; put '/* If this variable is found in the append dataset'; put 'then records are closed out (or deleted) in the'; put 'append table where that variable= "Yes" */'; put ',LOADTARGET=YES /* set to anything but uppercase YES to switch off'; put 'target table load and generate temp tables only */'; put ',CLOSE_VARS='; put '/*a problem with regular SCD2 or TXTEMPORAL loads is that there is'; put 'no facility to close out removed records (all records are'; put 'assumed new or changed). But how does one determine which'; put 'records are removed? Short of loading the entire table'; put 'each time? This parameter allows a set of variables'; put '(this should be a subset of the PK) to be declared, and'; put 'the macro will determine which records in the base table'; put 'need to be closed out ahead of the load.'; put 'For instance, given the following:'; put 'Base Table Staging Table'; put 'DATE ENTITY AMOUNT DATE ENTITY AMOUNT'; put 'JAN ACME4 66 JAN ACME4 66'; put 'FEB ACME4 99 FEB ACME4 99'; put 'FEB ACME1 22'; put 'By supplying DATE in CLOSE_VARS and DATE ENTITY as the PK,'; put 'the "FEB PAG 22" record would get closed out.'; put '*/'; put ',config_table=&dclib..MPE_CONFIG'; put ',dclib=&dc_libref'; put ',outds_del=work.outds_del'; put ',outds_add=work.outds_add'; put ',outds_mod=work.outds_mod'; put ',outds_audit=0'; put ');'; put '/* when changing this macro, update the version num here */'; put '%local ver;'; put '%let ver=32;'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%dc_assignlib(WRITE,&base_lib) /* may not already be assigned */'; put '/* return straight away if nothing to load */'; put '%let nobs= %mf_getattrn(&append_lib..&append_dsn,NLOBS);'; put '%if &nobs=-1 %then %do;'; put 'proc sql noprint; select count(*) into: nobs from &append_lib..&append_dsn;'; put '%end;'; put '%if &nobs=0 %then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- Base dataset &append_lib..&append_dsn is empty. Nothing to upload!;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%return;'; put '%end;'; put '/* hard exit if err condition exists */'; put '%mp_abort(iftrue= (&syscc > 0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status;)'; put ')'; put '%local engine_type;'; put '%let engine_type=%mf_getengine(&base_lib);'; put '%if (&engine_type=REDSHIFT or &engine_type=POSTGRES) and %length(&CLOSE_VARS)>0'; put '%then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- CLOSE_VARS functionality not yet supported in &engine_type;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%return;'; put '%end;'; put '/**'; put '* The metadata functions (eg mf_existvar) will fail if the base table has a'; put '* SAS lock. So, make a snapshot of the base table for further use.'; put '* Also, make output tables (regardless).'; put '*/'; put '%local basecopy;'; put '%let basecopy=%mf_getuniquename(prefix=basecopy);'; put 'data &basecopy &outds_mod &outds_add &outds_del;'; put 'set &base_lib..&base_dsn;'; put 'stop;'; put 'run;'; put '%mp_abort(iftrue= (&syscc > 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after base table copy - aborting due to table lock)'; put ')'; put '%local cols idx_pk md5_col ;'; put '%let md5_col=___TMP___md5;'; put '%let check_uniqueness=%upcase(&check_uniqueness);'; put '%let RK_UPDATE_MAXKEYTABLE=%upcase(&RK_UPDATE_MAXKEYTABLE);'; put '%let high_date=%unquote(&high_date);'; put '%let loadtype=%upcase(&loadtype);'; put '/* ensure irrelevant variables are cleared */'; put '%if &loadtype=BUSTEMPORAL %then %do;'; put '%let tech_from=;'; put '%let tech_to=;'; put '%end;'; put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; put '%let bus_from=;'; put '%let bus_to=;'; put '%end;'; put '/* ensure relevant variables are supplied */'; put '%mp_abort(iftrue=(&loadtype=BITEMPORAL & %mf_verifymacvars(bus_from bus_to)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing BUS_FROM / BUS_TO)'; put ')'; put '%mp_abort(iftrue=(&loadtype=TXTEMPORAL & %mf_verifymacvars(tech_from tech_to)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing TECH_FROM / TECH_TO)'; put ')'; put '/**'; put '* drop any tables (may be defined as views or vice versa preventing overwrite)'; put '*/'; put '%mp_dropmembers(append bitemp0_append bitemp_cols)'; put '/* SQL Server requires its own time values */'; put '/* 9.2 will only give picture format down to seconds. 9.3 allows'; put 'milliseconds by using lower S and defining the decimal in the format name..*/'; put 'PROC FORMAT;'; put 'picture MyMSdt other=''%0Y-%0m-%0dT%0H:%0M:%0S'' (datatype=datetime);'; put 'RUN;'; put '%local dbnow;'; put '%let dbnow="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'data _null_;'; put '/* convert space separated macvar to comma separated for SQL processing */'; put 'call symputx(''PK_COMMA'',tranwrd(compbl("&pk"),'' '','',''),''L'');'; put 'call symputx(''PK_CNT'',countw("&pk",'' ''),''L'');'; put 'now=&dbnow;'; put 'call symputx(''NOW'',now,''L'');'; put 'call symputx(''SQLNOW'',cats("''",put(now,MyMSdt.),"''"),''L'');'; put 'length etlsource $100;'; put 'etlsource=subpad(symget(''etlsource''),1,100);'; put 'call symputx(''etlsource'',etlsource,''l'');'; put 'run;'; put '/**'; put '* Even if no PROCESSED var provided, assume that any variable named'; put '* PROCESSED_DTTM should be updated'; put '*/'; put '%if &processed=0 %then %do;'; put '%if %mf_existvar(&basecopy,PROCESSED_DTTM)'; put '%then %let processed=PROCESSED_DTTM;'; put '%else %let processed=;'; put '%end;'; put '/* extract colnames for md5 creation / change tracking */'; put 'proc contents noprint data=&base_lib..&base_dsn'; put 'out=work.bitemp_cols (keep=name type length varnum format:);'; put 'run;'; put 'proc sql noprint;'; put 'select name into: cols separated by '','''; put 'from work.bitemp_cols'; put 'where upcase(name) not in'; put '(%upcase("&bus_from","&bus_to"'; put ',"&tech_from","&tech_to"'; put ',"&processed","&delete_col")) ;'; put 'select case when type in (2,6) then cats(''put(md5(trim('',name,'')),$hex32.)'')'; put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; put '/* but ONLY if not missing, else will lose any special missing values */'; put 'else cats(''put(md5(trim(put(ifn(missing('''; put ',name,''),'',name,'','',name,''*1),binary64.))),$hex32.)'') end'; put 'into: stripcols separated by ''||'''; put 'from work.bitemp_cols'; put 'where upcase(name) not in'; put '(%upcase("&bus_from","&bus_to"'; put ',"&tech_from","&tech_to"'; put ',"&processed","&delete_col")) ;'; put '/* set default formats*/'; put '%let bus_from_fmt = datetime19.;'; put '%let bus_to_fmt = datetime19.;'; put '%let processed_fmt = datetime19.;'; put '%let tech_from_fmt = format=datetime19.;'; put '%let tech_to_fmt = format=datetime19.;'; put '%put &=stripcols;'; put '%put &=pk;'; put 'data _null_;'; put 'set work.bitemp_cols;'; put 'if type=2 or type=6 then do;'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'if format='''' then fmt=cats(length,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put 'if upcase(name)="%upcase(&bus_from)" then'; put 'call symputx(''bus_from_fmt'',fmt,''L'');'; put 'else if upcase(name)="%upcase(&bus_to)" then'; put 'call symputx(''bus_to_fmt'',fmt,''L'');'; put 'else if upcase(name)="%upcase(&tech_from)" then'; put 'call symputx(''tech_from_fmt'',"format="!!fmt,''L'');'; put 'else if upcase(name)="%upcase(&tech_to)" then'; put 'call symputx(''tech_to_fmt'',"format="!!fmt,''L'');'; put 'else if upcase(name)="%upcase(&processed)" then'; put 'call symputx(''processed_fmt'',fmt,''L'');'; put 'run;'; put '%if %index(%quote(&cols),___TMP___) %then %do;'; put '%let msg=%str(Table contains a variable name containing "___TMP___".%trim('; put ') This may conflict with temp variable generation!!);'; put '%mp_abort(msg=&msg,mac=bitemporal_dataloader);'; put '%let syscc=5;'; put '%return;'; put '%end;'; put '/* if transaction dates appear on the APPEND table, need to remove them */'; put '%local drop_tx_dates /* used in append table */'; put 'drop_tx_dates_noobs /* used to take the base table structure */;'; put '%if %mf_existvar(&append_lib..&append_dsn, &tech_from)'; put '%then %let drop_tx_dates=&tech_from;'; put '%if %mf_existvar(&append_lib..&append_dsn, &tech_to)'; put '%then %let drop_tx_dates=&drop_tx_dates &tech_to;'; put '%if %length(%trim(&drop_tx_dates))>0'; put '%then %let drop_tx_dates=(drop=&drop_tx_dates);'; put '%if %mf_existvar(&basecopy, &tech_from)'; put '%then %let drop_tx_dates_noobs=&tech_from;'; put '%if %mf_existvar(&basecopy, &tech_to)'; put '%then %let drop_tx_dates_noobs=&drop_tx_dates_noobs &tech_to;'; put '%if %length(%trim(&drop_tx_dates_noobs))>0'; put '%then %let drop_tx_dates_noobs=(drop=&drop_tx_dates_noobs obs=0);'; put '%else %let drop_tx_dates_noobs=(obs=0);'; put '/**'; put '* Lock the table. This is necessary as we are doing a two part update (first'; put '* closing records then appending new records). It is theoretically possible'; put '* that an upload may occur whilst preparing the staging tables. And the'; put '* staging tables are about to be prepared..'; put '*/'; put '%if &LOADTARGET = YES %then %do;'; put '%put locking &base_lib..&base_dsn;'; put '%mp_lockanytable(LOCK,'; put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%if "&outds_audit" ne "0" %then %do;'; put '%put locking &outds_audit;'; put '%mp_lockanytable(LOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%else %do;'; put '/* not an actual load, so avoid updating the max key table in next step. */'; put '%let rk_update_maxkeytable=NO;'; put '%end;'; put '%if %length(&RK_UNDERLYING)>0 %then %do;'; put '%mp_retainedkey('; put 'base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=&append_lib'; put ',append_dsn=&append_dsn'; put ',retained_key=&pk'; put ',business_key=&rk_underlying'; put ',check_uniqueness=&CHECK_UNIQUENESS'; put ',outds=work.append'; put '%if &rk_update_maxkeytable=NO %then %do;'; put ',maxkeytable=0'; put '%end;'; put '%else %do;'; put ',maxkeytable=&dclib..&RK_MAXKEYTABLE'; put '%end;'; put ',locktable=&dclib..mpe_lockanytable'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put ',filter_str=%str( (where=( &now < &tech_to)) )'; put '%end;'; put ')'; put '%end;'; put '%else %do;'; put 'proc sql;'; put 'create view work.append as select * from &append_lib..&append_dsn;'; put '%end;'; put '/**'; put '* generate md5 for append table'; put '*/'; put '/* it is possible the source dataset has additional (unwanted) columns.'; put 'Drop if specified; */'; put '%if %length(&keepvars)>0 %then %do;'; put '/* remove tech dates from keepvars as they are generated later */'; put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_from ),%str( )));'; put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_to ),%str( )));'; put '%let keepvars=(keep=&keepvars &bus_from &bus_to &processed &md5_col);'; put '%end;'; put '/* CAS varchar types cause append issues here, so perform autoconvert'; put 'by creating empty local table first */'; put 'data;'; put 'set &base_lib..&base_dsn &drop_tx_dates_noobs;'; put 'run;'; put '%local emptybasetable; %let emptybasetable=&syslast;'; put 'data work.bitemp0_append &keepvars &outds_del(drop=&md5_col )'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put '/nonote2err'; put '%end;'; put ';'; put '/* apply formats for bitemporal vars but not tx dates which are added later */'; put '%if %length(&keepvars)>0 and &loadtype=BITEMPORAL %then %do;'; put 'format &bus_from &bus_from_fmt;'; put 'format &bus_to &bus_to_fmt;'; put '%end;'; put 'set &emptybasetable /* base table reqd in case append has fewer cols */'; put 'work.append &drop_tx_dates;'; put '%if %length(%str(&bus_from_override))>0 %then %do;'; put '&bus_from= %unquote(&bus_from_override) ;'; put '%end;'; put '%if %length(%str(&bus_to_override))>0 %then %do;'; put '&bus_to= %unquote(&bus_to_override) ;'; put '%end;'; put 'length &md5_col $32;'; put '&md5_col=put(md5(&stripcols),hex32.);'; put '%if %length(&processed)>0 %then %do;'; put 'format &processed &processed_fmt;'; put '&processed=&now;'; put '%end;'; put '/**'; put '* If a delete column exists then create the delete dataset'; put '*/'; put '%if %mf_existvar(&append_lib..&append_dsn, &delete_col) %then %do;'; put 'drop &delete_col;'; put 'if upcase(&delete_col) = "YES" then output &outds_del ;'; put 'else output work.bitemp0_append ;'; put 'run;'; put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; put '%bitemporal_closeouts('; put 'tech_from=&tech_from'; put ',tech_to = &tech_to'; put ',base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=work'; put ',append_dsn=%scan(&outds_del,-1,.)'; put ',PK=&bus_from &pk'; put ',NOW=&dbnow'; put ',loadtarget=&loadtarget'; put ',loadtype=&loadtype'; put ')'; put '%end;'; put '%end;'; put '%else %do;'; put 'output work.bitemp0_append;'; put 'run;'; put '%end;'; put '%mp_abort(iftrue= (&syscc gt 0 at line 494)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%if %length(&close_vars)>0 %then %do;'; put '/**'; put '* need to close out records that are not provided'; put '*/'; put 'proc sql;'; put 'create table bitemp1_closevars1 as'; put 'select distinct a.%mf_getquotedstr(in_str=&pk,dlm=%str(,a.),quote=)'; put 'from &base_lib..&base_dsn a'; put 'inner join work.bitemp0_append b'; put 'on 1=1'; put '/* join on closevars key */'; put '%do idx_pk=1 %to %sysfunc(countw(&close_vars));'; put '%let idx_val=%scan(&close_vars,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '/* filter base on tech dates if necessary */'; put '%if &loadtype=TXTEMPORAL %then %do;'; put 'where a.&tech_from <=&now and &now < a.&tech_to'; put '%end;'; put ';'; put 'create table bitemp1_closevars2 as'; put 'select distinct a.*'; put 'from bitemp1_closevars1 a'; put 'left join work.bitemp0_append b'; put 'on 1=1'; put '/* join on primary key */'; put '%do idx_pk=1 %to %sysfunc(countw(&pk));'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '/* identify removed records by null value in a field in PK but not close_vars'; put '*/'; put 'where b.%scan('; put '%mf_wordsInStr1ButNotStr2(Str1=&pk,Str2=&close_vars),1,%str( )'; put ') IS NULL'; put ';'; put '%if %mf_getattrn(bitemp1_closevars2,NLOBS)>0 %then %do;'; put '%bitemporal_closeouts('; put 'tech_from=&tech_from'; put ',tech_to = &tech_to'; put ',base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=work'; put ',append_dsn=bitemp1_closevars2'; put ',PK=&bus_from &pk'; put ',NOW=&dbnow'; put ',loadtarget=&loadtarget'; put ',loadtype=&loadtype'; put ')'; put '%end;'; put '%end;'; put '/* return if nothing to load (was just deletes) */'; put '%if %mf_getattrn(work.bitemp0_append,NLOBS)=0 %then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- No updates - just deletes!;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%end;'; put '/**'; put '* If applying manual overrides to business dates, then the input table MUST'; put '* be unique on the PK. Check, and if not - abort.'; put '*/'; put '%local msg;'; put '%if %length(&bus_from_override.&bus_to_override)>0 or &CHECK_UNIQUENESS=YES'; put '%then %do;'; put 'proc sort data=work.bitemp0_append out=work.bitemp0_check nodupkey;'; put 'by &pk;'; put 'run;'; put '%if %mf_getattrn(work.bitemp0_check,NLOBS)'; put 'ne %mf_getattrn(work.bitemp0_append,NLOBS)'; put '%then %do;'; put '%let msg=INPUT table &append_lib..&append_dsn is not unique on PK (&pk);'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_abort(msg=&msg,mac=bitemporal_dataloader.sas);'; put '%end;'; put '%end;'; put '/**'; put '* extract from BASE table. Only want matching records, as could be very BIG.'; put '* New records are subsequently identified via left join and test for nulls.'; put '*/'; put '%local temp_table temp_table2 base_table baselib_schema;'; put '%put DCNOTE: Extracting matching observations from &base_lib..&base_dsn;'; put '%if &engine_type=OLEDB %then %do;'; put '%let temp_table=##%mf_getuniquefileref(prefix=BTMP);'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=(select * from [dbo].&base_dsn'; put 'where convert(datetime,&SQLNOW) < &tech_to );'; put '%else %let base_table=[dbo].&base_dsn;'; put 'proc sql;'; put 'create table &base_lib.."&temp_table"n as'; put 'select * from work.bitemp0_append;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'create table work.bitemp0_base as select * from connection to myAlias('; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put '/* grab schema */'; put '%let baselib_schema=%mf_getschema(&base_lib);'; put '%if &baselib_schema.X ne X %then %let baselib_schema=&baselib_schema..;'; put '/* grab redshift config */'; put '%local redcnt; %let redcnt=0;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'data _null_;'; put 'set &config_table(where=(var_scope=''DCBL_REDSH'' and var_active=1));'; put 'x+1;'; put 'call symputx(cats(''rednm'',x),var_value,''l'');'; put 'call symputx(cats(''redval'',x),var_value,''l'');'; put 'call symputx(''redcnt'',x,''l'');'; put 'run;'; put '%end;'; put '/* cannot persist temp tables so must create a temporary permanent table */'; put '%let temp_table=%mf_getuniquename(prefix=XDCTEMP);'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=(select * from &baselib_schema.&base_dsn'; put 'where timestamp &sqlnow < &tech_to );'; put '%else %let base_table=&baselib_schema.&base_dsn;'; put '/* make empty table first - must clone & drop extra cols as autoload is bad */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'exec (create table &temp_table (like &baselib_schema.&base_dsn)) by myAlias;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'exec (alter table &temp_table alter sortkey none) by myAlias;'; put '%end;'; put '%local dropcols;'; put '%let dropcols=%mf_wordsinstr1butnotstr2('; put 'str1=%upcase(%mf_getvarlist(&basecopy))'; put ',str2=%upcase(&pk)'; put ');'; put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; put '%put &=dropcols;'; put '%let idx_val=%scan(&dropcols,&idx_pk);'; put 'exec(alter table &temp_table drop column &idx_val;) by myAlias;'; put '%end;'; put 'exec (alter table &temp_table add column &md5_col varchar(32);) by myAlias;'; put '/* create view to strip formats and avoid warns in log */'; put 'data work.vw_bitemp0/view=work.vw_bitemp0;'; put 'set work.bitemp0_append(keep=&pk &md5_col);'; put 'format _all_;'; put 'run;'; put 'proc append base=&base_lib..&temp_table'; put '%if &engine_type=REDSHIFT %then %do;'; put '('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put '%end;'; put 'data=work.vw_bitemp0 force nowarn;'; put 'run;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'create table work.bitemp0_base as select * from connection to myAlias('; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=&base_lib..&base_dsn'; put '(where=(&tech_from <=&now and &now < &tech_to));'; put '%else %let base_table=&base_lib..&base_dsn;'; put '%let temp_table=CASUSER.%mf_getuniquename(prefix=DC);'; put 'data &temp_table;'; put 'set work.bitemp0_append;'; put 'run;'; put '%let bitemp0base=CASUSER.%mf_getuniquename(prefix=DC);'; put 'proc fedsql sessref=dcsession;'; put 'create table &bitemp0base{options replace=true} as'; put '%end;'; put '%else %do;'; put '%let temp_table=work.bitemp0_append;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=&base_lib..&base_dsn'; put '(where=(&tech_from <=&now and &now < &tech_to));'; put '%else %let base_table=&base_lib..&base_dsn;'; put 'proc sql;'; put 'create table work.bitemp0_base as'; put '%end;'; put 'select a.&md5_col /* this identifies NEW records */'; put ', b.*'; put '/* assume first PK field cannot be null (if defined in a PK constraint then'; put 'it definitely cannot be null) */'; put ', case when b.%scan(&pk,1) IS NULL then 1 else 0 end as ___TMP___NEW_FLG'; put 'from &baselib_schema.&temp_table a'; put 'left join &base_table b'; put 'on 1=1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; put '%then %do;'; put '); proc sql; drop table &base_lib.."&temp_table"n;'; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put ';'; put 'quit;'; put 'data work.bitemp0_base;'; put 'set &bitemp0base;'; put 'run;'; put 'proc sql;'; put 'drop table &temp_table;'; put 'drop table &bitemp0base;'; put '%end;'; put '%else %do;'; put ';'; put '%end;'; put '/**'; put '* matching & changed records are those without NULL key values'; put '* &idx_val resolves to rightmost PK value (loop above)'; put '*/'; put '%put syscc (line525)=&syscc, sqlrc=&sqlrc;'; put '%mp_abort(iftrue= (&syscc gt 0 or &sqlrc>0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc sqlrc=&sqlrc)'; put ')'; put '%put hashcols2=&stripcols;'; put 'proc sql;'; put 'create table work.bitemp1_current(drop=___TMP___NEW_FLG) as'; put 'select *'; put ', put(md5(&stripcols),$hex32.) as &md5_col'; put 'from work.bitemp0_base (drop=&md5_col)'; put 'where ___TMP___NEW_FLG=0;'; put '/**'; put '* NEW records were identified in ___TMP___NEW_FLG in bitemp0_base'; put '*/'; put 'proc sql;'; put 'create table &outds_add'; put '(drop=&md5_col'; put '%if %mf_existvar(work.bitemp0_base, &delete_col) %then %do;'; put '&delete_col'; put '%end;'; put ')'; put 'as select a.*'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put ',&now as &tech_from &tech_from_fmt'; put ',&high_date as &tech_to &tech_to_fmt'; put '%end;'; put 'from work.bitemp0_append a /* STAGING records (mix of existing & new) */'; put ', work.bitemp0_base b /* BASE records (contains null values for new) */'; put 'where a.&md5_col=b.&md5_col /* took staging md5 across in left join */'; put 'and b.___TMP___NEW_FLG=1; /* NEW records also identified in bitemp0_base */'; put '/**'; put '* identify INSERTS. These are records with the same business key but'; put '* the bus_from and bus_to value are higher / lower (respectively)'; put '* such that the existing record needs to be SPLIT to surround the new'; put '* record.'; put '* eg: OLD RECORD from=1 to=10'; put '* NEW RECORD from=5 to=7'; put '*'; put '* APPENDED RECORDS:'; put '* - from=1 to=5'; put '* - from=5 to=7'; put '* - from=7 to=10'; put '*/'; put '/* inserts cannot happen with TXTEMPORAL */'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* IDENTIFY */'; put 'create table work.bitemp3_inserts as'; put 'select b.*'; put ',a.&bus_from as ___TMP___from'; put ',a.&bus_to as ___TMP___to'; put 'from work.bitemp0_append a'; put ',work.bitemp1_current b'; put 'where a.&bus_from > b.&bus_from'; put 'and a.&bus_to < b.&bus_to'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'order by'; put '/* compress blanks and then insert commas (as the datetime fields may'; put 'not be in use) */'; put '%sysfunc(tranwrd(%sysfunc(compbl('; put '&pk &bus_from &bus_to &processed'; put ')),%str( ), %str(,)))'; put ';'; put '/* SPLIT */'; put 'data work.bitemp3a_inserts (drop=___TMP___from ___TMP___retain ___TMP___to) ;'; put 'set work.bitemp3_inserts;'; put 'by &pk &bus_from &bus_to &processed;'; put 'if first.&idx_val then do;'; put '___TMP___retain=&bus_to;'; put '&bus_to=___TMP___from;'; put 'output;'; put '&bus_to=___TMP___retain;'; put 'end;'; put 'if last.&idx_val then do;'; put '&bus_from=___TMP___to;'; put 'output;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* TX temporal load */'; put 'data work.bitemp3a_inserts;'; put 'set work.bitemp1_current;'; put 'stop;'; put 'run;'; put '%end;'; put '/* APPEND */'; put 'proc sql;'; put 'create view work.bitemp3a_view as'; put 'select * from work.bitemp1_current'; put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; put 'data bitemp3b_newbase;'; put 'set work.bitemp3a_inserts work.bitemp3a_view;'; put 'run;'; put '/** do not use! this converts short numerics into 8 bytes'; put 'proc sql;'; put 'create table work.bitemp3b_newbase as'; put 'select * from work.bitemp3a_inserts'; put 'union corr'; put 'select * from work.bitemp1_current'; put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; put '*/'; put '/**'; put '* identify CHANGED records from staging.'; put '* Same business key with different temporal dates or md5 value'; put '* This table must be overlayed onto / into existing business history'; put '*/'; put 'proc sql;'; put 'create table work.bitemp4_updated as select distinct a.*'; put 'from work.bitemp0_append a'; put ',work.bitemp3b_newbase b'; put 'where 1=1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'and ( a.&md5_col ne b.&md5_col'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put 'OR (a.&bus_from ne b.&bus_from or a.&bus_to ne b.&bus_to)'; put '%end;'; put ')'; put ';'; put '/**'; put '* This section would have been one simple step with union all'; put '* but that converts short numerics into 8 bytes!'; put '* so, convoluted alternative to retain the same functionality.'; put '*/'; put '/* base records */'; put 'create view work.bitemp4_prep1 as'; put 'select ''BASE'' as ___TMP___'; put ',b.*'; put 'from work.bitemp4_updated a'; put ',work.bitemp3b_newbase b'; put 'where 1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put ';'; put '/* updated records */'; put 'create view work.bitemp4_prep2 as'; put 'select ''STAG'' as ___TMP___ ,*'; put 'from work.bitemp4_updated;'; put '/* ensure we only keep columns that appear in both */'; put '%local bp1 bp2 bp3 bp4;'; put '%let bp1=%mf_getvarlist(bitemp4_prep1);'; put '%let bp2=%mf_getvarlist(bitemp4_prep2);'; put '%let bp3=%mf_wordsInStr1ButNotStr2(Str1=&bp1,Str2=&bp2);'; put '%let bp4=%mf_wordsInStr1ButNotStr2(Str1=&bp2,Str2=&bp1);'; put 'data work.bitemp4_prep3/view=bitemp4_prep3;'; put 'set bitemp4_prep1 bitemp4_prep2;'; put '%if %length(XX&bp3&bp4)>2 %then %do;'; put 'drop &bp3 &bp4 ;'; put '%end;'; put 'run;'; put '/* remove duplicates */'; put 'proc sql;'; put 'create table work.bitemp4a_allrecs as'; put 'select distinct *'; put 'from work.bitemp4_prep3'; put 'order by'; put '/* compress blanks and then insert commas (as the datetime fields'; put 'may not be in use) */'; put '%sysfunc(tranwrd(%sysfunc(compbl('; put '&pk &bus_from &bus_to &processed'; put ')),%str( ), %str(,)))'; put ';'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* this section aligns the business dates'; put '(eg for inserts or overlaps in the range) */'; put 'data work.bitemp4b_firstpass (drop=___TMP___cond ___TMP___from ___TMP___to );'; put 'set work.bitemp4a_allrecs;'; put 'by &pk &bus_from &bus_to &processed;'; put 'retain ___TMP___cond ''Name of Condition'';'; put 'retain ___TMP___from ___TMP___to 0;'; put '___TMP___md5lag=lag(&md5_col);'; put '/* reset retained variables */'; put 'if first.&idx_val then do;'; put 'call missing (___TMP___cond, ___TMP___from, ___TMP___to,___TMP___md5lag);'; put 'end;'; put 'else do;'; put '/* if record is identical, carry forward bus_from (and bus_to if higher)*/'; put 'if &md5_col=___TMP___md5lag then do;'; put '&bus_from=___TMP___from;'; put 'if &bus_to<___TMP___to then &bus_to=___TMP___to;'; put 'end;'; put 'end;'; put 'if ___TMP___=''STAG'' then do;'; put '/* need to carry forward the closing record */'; put '___TMP___cond=''Condition 1'';'; put 'end;'; put 'else if ___TMP___cond=''Condition 1'' then do;'; put '/* else ensure bus_from starts from prior record bus_to */'; put 'if &md5_col ne ___TMP___md5lag and &bus_from <= ___TMP___to'; put 'then &bus_from= ___TMP___to;'; put '/* new record may replace old record entirely */'; put 'if &bus_to <= &bus_from then delete;'; put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; put 'end;'; put '___TMP___from=&bus_from;'; put '___TMP___to=&bus_to;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* keep staged records only */'; put 'data work.bitemp4b_firstpass;'; put 'set work.bitemp4a_allrecs;'; put 'if ___TMP___=''STAG'';'; put 'run;'; put '%end;'; put '/* next phase is to pass through in reverse - so set up the sort statement */'; put '%local byvar;'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let byvar=&byvar descending %scan(&pk,&idx_pk);'; put '%end;'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL'; put '%then %let byvar=&byvar descending &bus_from descending &bus_to;'; put '/* if matching bus dates supplied, need to ensure we also have a sort'; put 'between BASE and STAGING tables */'; put '%let byvar=&byvar descending ___TMP___;'; put 'proc sort data=work.bitemp4b_firstpass out=work.bitemp4c_sort ;'; put 'by &byvar;'; put 'run;'; put '/**'; put '* Now (in reverse) pass back business start dates'; put '*/'; put 'data work.bitemp4d_secondpass;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put '&tech_from=&now;'; put '&tech_to=&high_date;'; put '%end;'; put 'set work.bitemp4c_sort ;'; put 'by &byvar;'; put 'retain ___TMP___cond ''Name of Condition'';'; put 'retain ___TMP___from ___TMP___to 0;'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* put / _all_ /;*/'; put '___TMP___md5lag=lag(&md5_col);'; put 'if first.&idx_val then do;'; put '/* reset retained variables */'; put 'call missing (___TMP___cond,___TMP___from,___TMP___to,___TMP___md5lag);'; put 'end;'; put 'else do;'; put '/* if record is identical, carry back bus_to */'; put 'if &md5_col=___TMP___md5lag then &bus_to=___TMP___to;'; put 'end;'; put 'if ___TMP___=''STAG'' then do;'; put '/* need to carry forward the closing record */'; put '___TMP___cond=''Condition 2'';'; put 'end;'; put 'else if ___TMP___cond=''Condition 2'' then do;'; put '/* else ensure bus_to stops at subsequent record bus_from */'; put 'if &md5_col ne ___TMP___md5lag and &bus_to >= ___TMP___from'; put 'then &bus_to= ___TMP___from;'; put '/* new record may replace old record entirely */'; put 'if &bus_from >= &bus_to then delete;'; put 'if &bus_from=___TMP___from and &bus_to=___TMP___to then delete;'; put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; put 'end;'; put '___TMP___from=&bus_from;'; put '___TMP___to=&bus_to;'; put '%end;'; put 'run;'; put '%put syscc (line600)=&syscc;'; put '/**'; put 'There may still be some records (eg old business history) which have not'; put 'changed.'; put 'Need to identify these and remove from the append so they are not updated'; put 'unnecessarily. This is done by generating a new md5 (which INCLUDES the'; put 'business key) and any matching / identical records are split out (from those'; put 'that need to be updated).'; put '*/'; put '%if &loadtype=BITEMPORAL %then %do;'; put '%let cat_string=catx(''|'' ,&bus_from,&bus_to);'; put 'data work.bitemp5a_lkp (keep=&md5_col)'; put '%if "%substr(&sysver,1,1)" ne "4" & "%substr(&sysver,1,1)" ne "5" %then %do;'; put '/nonote2err'; put '%end;'; put ';'; put 'set work.bitemp0_base;'; put '/* for BITEMPORAL we need to compare business dates also */'; put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.);'; put 'run;'; put 'data bitemp5b_updates;'; put 'set bitemp4d_secondpass;'; put 'if _n_=1 then do;'; put 'dcl hash md5_lkp(dataset:''bitemp5a_lkp'');'; put 'md5_lkp.definekey("&md5_col");'; put 'md5_lkp.definedone();'; put 'end;'; put '/* drop old md5 col as will rebuild with new business dates */'; put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.) ;'; put 'if md5_lkp.check()=0 then delete;'; put 'run;'; put 'proc sql;'; put '/* get min bus from as will update (close out) all records from this point'; put '(for that PK)*/'; put 'create table work.bitemp5d_subquery as'; put 'select &pk_comma, min(&bus_from)as &bus_from, max(&bus_to) as &bus_to'; put 'from work.bitemp5b_updates'; put 'group by &pk_comma;'; put '/* index has a huge efficiency impact on upcoming nested subquery */'; put 'create index index1 on work.bitemp5d_subquery(&pk_comma,&bus_from, &bus_to);'; put '%let lastds=work.bitemp5b_updates;'; put '%end;'; put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; put 'proc sql;'; put 'create table work.bitemp5d_subquery as'; put 'select distinct &pk_comma'; put 'from bitemp4d_secondpass;'; put '%let lastds=work.bitemp4d_secondpass;'; put '%end;'; put '%else %let lastds=work.bitemp4d_secondpass;'; put '/* create single append table (an overlapped pre-sert may be classed as'; put 'both an update AND a new record). Also create temp views that may be'; put 'used for pre-load analysis. */'; put 'data &outds_mod;'; put 'set &lastds(drop=___TMP___: &md5_col);'; put 'run;'; put 'data bitemp6_allrecs / view=bitemp6_allrecs;'; put 'set &outds_mod /* UPDATED records */'; put '&outds_add /* NEW records */;'; put 'run;'; put 'proc sort data=work.bitemp6_allrecs'; put 'out=work.bitemp6_unique'; put 'noduprec'; put 'dupout=work.xx_BADBADBAD;'; put 'by _all_;'; put 'run;'; put '/* we have all our temp tables now so exit if this is all that is needed */'; put '%if &LOADTARGET ne YES %then %return;'; put '/* also exit if an err condition exists */'; put '%if &syscc>0 %then %do;'; put '%put syscc=&syscc;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%if "&outds_audit" ne "0" %then %do;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=&sysmacroname in &_program'; put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status)'; put ')'; put '/* final check - abort if a lock has appeared on the target or audit table */'; put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; put '%if %mf_existds(&outds_audit) %then %do;'; put '%mp_lockfilecheck(libds=&outds_audit)'; put '%end;'; put '/**'; put '* STAGING TABLES PREPARED, ERR CONDITION TESTED FOR.. NOW TO LOAD!!'; put '*/'; put '/**'; put '* First, CLOSE OUT changed records (if not a REPLACE)'; put '* Note that SAS does not support ANSI standard for UPDATE with a join condition.'; put '* However - this can be worked around using a nested subquery..'; put '*/'; put 'data _null_;'; put 'putlog "&sysmacroname: CLOSEOUTS commencing";'; put 'run;'; put '%if %mf_getattrn(&lastds,NLOBS)=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: No closeouts needed";'; put 'run;'; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put '%mp_abort(iftrue= (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL)'; put ',mac=&sysmacroname in &_program'; put ',msg=%str(&loadtype not yet supported in CAS engine)'; put ')'; put '/* create temp table for deletions */'; put '%local delds;%let delds=%mf_getuniquename(prefix=DC);'; put 'data casuser.&delds;'; put 'set work.bitemp5d_subquery;'; put 'run;'; put '/* delete the records */'; put 'proc cas ;'; put 'table.deleteRows / table={'; put 'caslib="&base_lib",'; put 'name="&base_dsn",'; put 'where="1=1",'; put 'whereTable={caslib=''CASUSER'',name="&delds"}'; put '};'; put 'quit;'; put '/* drop temp table */'; put 'proc sql;'; put 'drop table CASUSER.&delds;'; put '%end;'; put '%else %if (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL or &loadtype=UPDATE)'; put '%then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: &loadtype operation using &engine_type engine";'; put 'run;'; put '%local flexinow;'; put 'proc sql;'; put '/* if OLEDB then create a temp table for efficiency */'; put '%local innertable;'; put '%if &engine_type=OLEDB %then %do;'; put '%let innertable=[&temp_table];'; put '%let top_table=[dbo].&base_dsn;'; put '%let flexinow=&SQLNOW;'; put 'create table &base_lib.."&temp_table"n as'; put 'select * from work.bitemp5d_subquery;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'execute('; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put '%let innertable=%mf_getuniquename(prefix=XDCTEMP);'; put '%let top_table=&baselib_schema.&base_dsn;'; put '%let flexinow=timestamp &SQLNOW;'; put '/* make empty table first - must clone & drop extra cols'; put 'as autoload is bad */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'exec (create table &innertable (like &baselib_schema.&base_dsn)) by myAlias;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'exec (alter table &innertable alter sortkey none) by myAlias;'; put '%end;'; put '%let dropcols=%mf_wordsinstr1butnotstr2('; put 'str1=%upcase(%mf_getvarlist(&basecopy))'; put ',str2=%upcase(%mf_getvarlist(work.bitemp5d_subquery))'; put ');'; put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; put '%put &=dropcols;'; put '%let idx_val=%scan(&dropcols,&idx_pk);'; put 'exec(alter table &innertable drop column &idx_val;) by myAlias;;'; put '%end;'; put '/* create view to strip formats and avoid warns in log */'; put 'data work.vw_bitemp5d/view=work.vw_bitemp5d;'; put 'set work.bitemp5d_subquery;'; put 'format _all_;'; put 'run;'; put 'proc append base=&base_lib..&innertable ('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put 'data=work.vw_bitemp5d force nowarn;'; put 'run;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'execute('; put '%end;'; put '%else %do;'; put '%let innertable=bitemp5d_subquery;'; put '%let top_table=&base_lib..&base_dsn;'; put '%let flexinow=&now;'; put '%end;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put 'update &top_table set &tech_to=&flexinow'; put '%if %length(&processed)>0 %then %do;'; put ',&processed=&flexinow'; put '%end;'; put 'where &tech_from <= &flexinow and &flexinow < &tech_to and'; put '%end;'; put '%else %if &loadtype=UPDATE %then %do;'; put '/* changed records are deleted then re-appended when doing UPDATEs */'; put 'delete from &top_table where'; put '%end;'; put '%else %do;'; put '%put %str(ERR)OR: BUSTEMPORAL NOT YET SUPPORTED;'; put '%let syscc=5;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%goto end_of_macro;'; put '%end;'; put '/* perform join inside query as per'; put 'http://stackoverflow.com/questions/24629793/update-with-a-proc-sql */'; put 'exists( select 1 from &baselib_schema.&innertable where'; put '/* loop PK join */'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put '&base_dsn..&idx_val=&innertable..&idx_val and'; put '%end;'; put '%if &loadtype=BITEMPORAL %then %do;'; put '&base_dsn..&bus_from >= &innertable..&bus_from'; put 'and &base_dsn..&bus_to <= &innertable..&bus_to and'; put '%end;'; put '/* close the statement */'; put '1=1);'; put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; put '%then %do;'; put ') by myAlias;'; put 'execute (drop table &baselib_schema.&innertable) by myAlias;'; put '%end;'; put '%end;'; put 'quit;'; put 'data _null_;'; put 'putlog "&sysmacroname: Closeout complete";'; put 'run;'; put '/**'; put '* Append the new / updated records'; put '*/'; put '%if &engine_type=CAS %then %do;'; put '/* get varchar variables ready for casting */'; put '%local vcfmt vcrename vcassign vcdrop;'; put 'data _null_;'; put 'set work.bitemp_cols(where=(type=6)) end=last;'; put 'length vcrename vcassign vcdrop vcfmt $32767 rancol $32;'; put 'retain vcrename vcassign vcdrop vcfmt;'; put 'if _n_=1 then vcrename=''(rename=('';'; put 'rancol=resolve(''%mf_getuniquename()'');'; put 'vcfmt=trim(vcfmt)!!''length ''!!cats(name)!!'' varchar(*);'';'; put 'vcrename=trim(vcrename)!!'' ''!!cats(name,''='',rancol);'; put 'vcassign=cats(vcassign,name,''='',rancol,'';'');'; put 'vcdrop=cats(vcdrop,''drop ''!!rancol,'';'');'; put 'if last then do;'; put 'vcrename=cats(vcrename,''))'');'; put 'call symputx(''vcfmt'',vcfmt);'; put 'call symputx(''vcrename'',vcrename);'; put 'call symputx(''vcassign'',vcassign);'; put 'call symputx(''vcdrop'',vcdrop);'; put 'end;'; put 'run;'; put '/* prepare a temp cas table with varchars casted */'; put '%let tmp=%mf_getuniquename();'; put 'data casuser.&tmp ;'; put '&vcfmt'; put 'set work.bitemp6_unique &vcrename;'; put '&vcassign'; put '&vcdrop'; put 'run;'; put '/* load the table with varchars applied*/'; put 'data &base_lib..&base_dsn (append=yes )/sessref=dcsession ;'; put 'set casuser.&tmp;'; put 'run;'; put '/* drop temp table */'; put 'proc sql;'; put 'drop table CASUSER.&tmp;'; put '/* this code will not work as regular tables do not have varchars */'; put '/*'; put 'proc casutil;'; put 'load data=work.bitemp6_unique'; put 'outcaslib="&base_lib" casout="&base_dsn" append ;'; put 'quit;'; put '*/'; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put 'proc append base=&base_lib..&base_dsn'; put '%if &engine_type=REDSHIFT %then %do;'; put '('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put '%end;'; put 'data=bitemp6_unique force nowarn;'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc append base=&base_lib..&base_dsn data=bitemp6_unique force nowarn; run;'; put '%end;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '/* final check on syscc */'; put '%mp_abort(iftrue= (&syscc >4)'; put ',mac=&_program'; put ',msg=%str(!!Upload NOT successful!! Failed on actual update / append stage..)'; put ')'; put '%if &outds_audit ne 0 and &LOADTARGET=YES %then %do;'; put 'data work.vw_outds_orig /view=work.vw_outds_orig;'; put 'set work.bitemp0_base (drop=&md5_col);'; put 'where ___TMP___NEW_FLG=0;'; put 'drop ___TMP___NEW_FLG;'; put 'run;'; put '/* update the AUDIT table */'; put '%if %mf_existds(&outds_audit) %then %do;'; put 'options mprint;'; put '%mp_storediffs(&base_lib..&base_dsn'; put ',work.vw_outds_orig'; put ',&pk &bus_from'; put ',delds=&outds_del'; put ',modds=&outds_mod'; put ',appds=&outds_add'; put ',outds=work.mp_storediffs'; put ',processed_dttm=&now'; put ',loadref=%superq(etlsource)'; put ')'; put '/* exclude unchanged values in modified rows */'; put 'data work.mp_storediffs;'; put 'set work.mp_storediffs;'; put 'if MOVE_TYPE="M" and IS_PK=0 and IS_DIFF=0 then delete;'; put '* putlog load_ref= libref= dsn= key_hash= tgtvar_nm=;'; put 'run;'; put 'proc append base=&outds_audit data=work.mp_storediffs;'; put 'run;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%mp_abort(iftrue= (&syscc >4)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Problem in audit stage (&outds_audit))'; put ')'; put '%let user=%mf_getUser();'; put '/**'; put 'Notify as appropriate EMAILS DISABLED'; put '%sumo_alerts(ALERT_EVENT=UPDATE'; put ', ALERT_TARGET=&base_lib..&base_dsn'; put ', from_user= &user);'; put '*/'; put '/* monitor BiTemporal usage */'; put '%if &log=1 %then %do;'; put '%put syscc=&syscc;'; put '/* do not perform duration calc in pass through */'; put '%local dur;'; put 'data _null_;'; put 'now=symget(''now'');'; put 'dur=%sysfunc(datetime())-&now;'; put 'call symputx(''dur'',dur,''l'');'; put 'run;'; put 'proc sql;'; put 'insert into &dclib..mpe_dataloads'; put 'set libref=%upcase("&base_lib")'; put ',DSN=%upcase("&base_dsn")'; put ',ETLSOURCE="&ETLSOURCE"'; put ',LOADTYPE="&loadtype"'; put ',CHANGED_RECORDS=%mf_getattrn(&lastds,NLOBS)'; put ',NEW_RECORDS=%mf_getattrn(&outds_add,NLOBS)'; put ',DELETED_RECORDS=%mf_getattrn(&outds_del,NLOBS)'; put ',DURATION=&dur'; put ',MAC_VER="v&ver"'; put ',user_nm="&user"'; put ',PROCESSED_DTTM=&now;'; put 'quit;'; put '%put syscc=&syscc;'; put '%end;'; put '%end_of_macro:'; put '%mend bitemporal_dataloader;'; put '%macro mf_getuniquelibref(prefix=mc,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Register a new licence key'; put '@details'; put '

SAS Macros

'; put '@li mpeinit.sas'; put '@li bitemporal_dataloader.sas'; put '@li mp_abort.sas'; put '@li mf_getuser.sas'; put '@li mpe_getgroups.sas'; put '@version 9.3'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '@test'; put 'echo ''{"keyupload":[{"activation_key":"slfdjasfda;dslf","licence_key":"asdfasdlfkajsfdas"}]}''>in.json'; put 'sasjs request admin/registerkey -d in.json'; put '**/'; put '%mpeinit()'; put '/* determine users group membership */'; put '%mpe_getgroups(user=%mf_getuser(),outds=work.groups)'; put '%global admin_check;'; put 'proc sql;'; put 'select count(*) into: admin_check'; put 'from groups where groupname="&mpeadmins";'; put '%mp_abort(iftrue= (&admin_check = 0)'; put ',mac=%str(&_program)'; put ',msg=%str(Only members of &mpeadmins may register a key)'; put ')'; put '%global licencekey activation_key;'; put 'data _null_;'; put 'set work.keyupload;'; put 'call symputx(''activation_key'',activation_key);'; put 'call symputx(''licencekey'',licence_key);'; put 'call symputx(''activlen'',length(activation_key));'; put 'call symputx(''liclen'',length(licence_key));'; put 'run;'; put '%mp_abort(iftrue= (&activlen< 10)'; put ',mac=%str(&_program)'; put ',msg=%str(Invalid activation_key)'; put ')'; put '%mp_abort(iftrue= (&liclen < 10)'; put ',mac=%str(&_program)'; put ',msg=%str(Invalid licencekey)'; put ')'; put 'data work.loadme;'; put 'if 0 then set &mpelib..mpe_config;'; put 'VAR_SCOPE=''DC'';'; put 'VAR_NAME=''DC_ACTIVATION_KEY'';'; put 'VAR_VALUE=symget(''activation_key'');'; put 'VAR_ACTIVE=1;'; put 'output;'; put 'VAR_NAME=''DC_LICENCE_KEY'';'; put 'VAR_VALUE=symget(''licencekey'');'; put 'VAR_ACTIVE=1;'; put 'output;'; put 'keep VAR_: ;'; put 'run;'; put '%bitemporal_dataloader('; put 'tech_from=tx_from'; put ',tech_to = tx_to'; put ',base_lib=&mpelib'; put ',base_dsn=mpe_config'; put ',append_lib=WORK'; put ',append_dsn=loadme'; put ',PK= VAR_SCOPE VAR_NAME'; put ',ETLSOURCE=%str(&_program STP)'; put ',LOADTYPE=TXTEMPORAL'; put ',dclib=&mpelib'; put ')'; put 'data work.return;'; put 'msg=''SUCCESS'';'; put 'run;'; put '%webout(OPEN)'; put '%webout(OBJ,return)'; put '%webout(CLOSE)'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let path=services/approvers; %let service=getapprovals; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mc,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file getapprovals.sas'; put '@brief Returns a list of staged data items that need to be approved'; put '@details'; put '

SAS Macros

'; put '@li mpe_getgroups.sas'; put '@li mp_abort.sas'; put '@li mf_getuser.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '/* determine users group membership */'; put '%let user=%mf_getuser();'; put '%mpe_getgroups(user=&user,outds=work.groups)'; put 'PROC FORMAT;'; put 'picture yymmddhhmmss other=''%0Y-%0m-%0d %0H:%0M:%0S'' (datatype=datetime);'; put 'RUN;'; put 'proc sql noprint;'; put 'create table out1 (rename=(SUBMITTED_ON_DTTM1=SUBMITTED_ON_DTTM)) as'; put 'select table_id'; put ',submit_status_cd as REVIEW_STATUS_ID'; put ',SUBMITTED_BY_NM'; put ',cats(base_lib,''.'',base_ds) as base_table'; put ',put(submitted_on_dttm,yymmddhhmmss.) as SUBMITTED_ON_DTTM1'; put ',submitted_on_dttm as SUBMITTED_ON_DTTM2'; put ',submitted_reason_txt'; put ',num_of_approvals_required'; put ',num_of_approvals_remaining'; put ',base_lib as libref'; put ',base_ds as dsn'; put 'from &mpelib..mpe_submit (where=(submit_status_cd=''SUBMITTED''))'; put '/* filter out any submits for which approval is already made */'; put 'where table_id not in ('; put 'select table_id from &mpelib..mpe_review where submitted_by_nm="&user"'; put ');'; put '%macro getapprovals();'; put '%local admin_check;'; put 'select count(*) into: admin_check'; put 'from groups'; put 'where groupname="&mpeadmins"'; put 'or groupname in ('; put 'select sas_group from &mpelib..mpe_security'; put 'where libref=''*ALL*'''; put 'and &dc_dttmtfmt. lt tx_to'; put 'and access_level in (''APPROVE'')'; put ');'; put '%if &admin_check >0 %then %do;'; put 'create table fromSAS as'; put 'select distinct * from out1'; put 'order by SUBMITTED_ON_DTTM2 desc;'; put '%end;'; put '%else %do;'; put 'create table fromSAS as'; put 'select distinct a.*'; put 'from out1 a'; put 'inner join &mpelib..mpe_security b'; put 'on a.libref=b.libref'; put 'and (a.dsn=b.dsn or b.dsn=''*ALL*'')'; put 'and &dc_dttmtfmt. lt b.tx_to'; put 'and b.ACCESS_LEVEL =''APPROVE'''; put 'and b.SAS_GROUP in (select groupname from work.groups)'; put 'order by SUBMITTED_ON_DTTM2 desc;'; put '%end;'; put '%mend getapprovals;'; put '%getapprovals()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%webout(OPEN)'; put '%webout(OBJ,fromSAS,missing=STRING)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=gethistory; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mpe_getvars(injs,outds);'; put '/* load parameters */'; put 'data _null_;'; put '__dummychar='''';__dummynum=0;'; put 'set &outds;'; put 'array __charvals _character_;'; put 'do over __charvals;'; put 'call symputx(vname(__charvals),__charvals,''g'');'; put 'end;'; put 'array __numvals _numeric_;'; put 'do over __numvals;'; put 'call symputx(vname(__numvals),__numvals,''g'');'; put 'end;'; put 'run;'; put '%mend mpe_getvars;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mc,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Returns the list of previously approved / rejected items.'; put '@details History is taken from MPE_SUBMIT (where status_cd ne ''SUBMITTED'') and'; put 'filtered according to the groups in MPE_SECURITY (unless the user is in the'; put 'DC admin group).'; put '

SAS Macros

'; put '@li mpe_getvars.sas'; put '@li mpe_getgroups.sas'; put '@li mp_abort.sas'; put '@li mf_getuser.sas'; put '

Service Inputs

'; put '
BROWSERPARAMS
'; put 'The following variables MAY be provided from frontend (HIST can also be set'; put 'in MPE_CONFIG):'; put '@li HIST - number of records to return'; put '@li STARTROW - the starting row (default is 1)'; put '

Service Outputs

'; put '
FROMSAS
'; put 'This table is returned, starting from &STARTROW for &HIST rows (ordered'; put 'descending on SUBMITTED datetime)'; put '@li TABLE_ID'; put '@li BASE_TABLE'; put '@li SUBMITTED'; put '@li SUBMITTED_REASON_TXT'; put '@li SUBMITTER'; put '@li REVIEWED'; put '@li STATUS'; put '@li REVIEWED_ON_DTTM'; put '@li APPROVER'; put '
HISTPARAMS
'; put '@li HIST - rows returned'; put '@li STARTROW - starting row used'; put '@li NOBS - Number of observations (rows) available'; put '@version 9.3'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '/* hard coded HIST value */'; put '%let hist=40;'; put '%let startrow=1;'; put '/* load parameters from frontend (HIST and STARTROW) */'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC_REVIEW"'; put 'and var_name=''HISTORY_ROWS'''; put 'and &dc_dttmtfmt. lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(''hist'',var_value,''G'');'; put 'putlog ''mpe_config: '' var_name "=" var_value;'; put 'run;'; put '/* load parameters (override HIST again if provided) */'; put '%mpe_getvars(BrowserParams, BrowserParams)'; put '/* determine users group membership */'; put '%mpe_getgroups(user=%mf_getuser(),outds=work.usergroups)'; put 'PROC FORMAT;'; put 'picture yymmddhhmmss other=''%0Y-%0m-%0d %0H:%0M:%0S'' (datatype=datetime);'; put 'RUN;'; put '/* check to see if the user is an admin, or has *ALL* access rights */'; put '%let authcheck=0;'; put 'proc sql noprint;'; put 'create table work.authcheck'; put 'as select *'; put 'from usergroups'; put 'where upcase(groupname)="%upcase(&mpeadmins)"'; put 'or upcase(groupname) in ('; put 'select upcase(sas_group) from &mpelib..mpe_security'; put 'where libref=''*ALL*'' and &dc_dttmtfmt. lt tx_to'; put ');'; put 'select count(*) into: authcheck from &syslast;'; put '%mp_abort(iftrue= (&syscc > 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after auth check)'; put ')'; put '/* now get the previous &hist records from mpe_submit */'; put 'proc sql;'; put 'create view work.submits as'; put 'select distinct a.TABLE_ID'; put ',cats(a.base_lib,''.'',a.base_ds) as base_table'; put ',put(a.SUBMITTED_ON_DTTM,yymmddhhmmss.) as submitted'; put ',a.submitted_reason_txt'; put ',a.submitted_by_nm as submitter'; put ',put(a.REVIEWED_ON_DTTM,yymmddhhmmss.) as REVIEWED'; put ',a.submit_status_cd as status'; put 'from &mpelib..mpe_submit(where=(submit_status_cd ne ''SUBMITTED'')) a'; put '%macro gethistory();'; put '%if &authcheck=0 %then %do;'; put '/* filter for allowed items */'; put 'left join &mpelib..mpe_security(where=(&dc_dttmtfmt. lt tx_to)) b'; put 'on a.base_lib=b.libref'; put 'and (a.base_ds=b.dsn or b.dsn=''*ALL*'')'; put 'where upcase(b.SAS_GROUP) in (select upcase(groupname) from work.usergroups)'; put 'and b.access_level in (''VIEW'',''AUDIT'',''EDIT'',''APPROVE'')'; put '%end;'; put '%mend gethistory;'; put '%gethistory()'; put ';'; put '/* get latest reason text */'; put 'create table work.reviews as'; put 'select a.*'; put ',b.reviewed_on_dttm'; put ',b.reviewed_by_nm as approver'; put ',b.review_reason_txt'; put 'from work.submits a'; put 'left join &mpelib..mpe_review b'; put 'on a.table_id=b.table_id'; put 'order by a.table_id desc, b.reviewed_on_dttm desc;'; put '%mp_abort(iftrue= (&syscc > 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after fetching submits)'; put ')'; put 'data work.fromsas;'; put 'set work.reviews;'; put 'by descending table_id descending reviewed_on_dttm;'; put 'if first.table_id;'; put 'if _n_ ge &startrow;'; put 'n+1;'; put 'if n>&hist then stop;'; put 'drop n;'; put 'run;'; put 'proc sql noprint;'; put 'select count(*) into: nobs from work.submits;'; put 'data work.histparams;'; put 'hist=&hist;'; put 'startrow=&startrow;'; put 'nobs=&nobs;'; put 'run;'; put '%mp_abort(iftrue= (&syscc > 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%webout(OPEN)'; put '%webout(OBJ,fromSAS,missing=STRING)'; put '%webout(OBJ,histparams)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=rejection; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mc,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mpe_accesscheck('; put 'base_table'; put ',outds=med_accesscheck /* WORK table to contain access details */'; put ',user= /* metadata user to check for */'; put ',access_level=APPROVE'; put ',cntl_lib_var=MPELIB'; put ');'; put '%if &user= %then %let user=%mf_getuser();'; put '%mp_abort('; put 'iftrue=(%index(&outds,.)>0 and %upcase(%scan(&outds,1,.)) ne WORK)'; put ',mac=mpe_accesscheck'; put ',msg=%str(outds should be a WORK table)'; put ')'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; put ',mac=mpe_accesscheck'; put ',msg=%str(Missing base_table/user access_level variables)'; put ')'; put '/* make unique temp table vars */'; put '%local tempds1 tempds2;'; put '%let tempds1=%mf_getuniquename(prefix=usergroups);'; put '%let tempds2=%mf_getuniquename(prefix=tablegroups);'; put '/* get list of user groups */'; put '%mpe_getgroups(user=&user,outds=&tempds1)'; put '/* get list of groups with access for that table */'; put 'proc sql;'; put 'create table &tempds2 as'; put 'select distinct sas_group'; put 'from &&&cntl_lib_var...mpe_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and access_level="&access_level"'; put 'and ('; put '(libref="%scan(&base_table,1,.)" and upcase(dsn)="%scan(&base_table,2,.)")'; put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; put 'or (libref="*ALL*")'; put ');'; put '%if &_debug ge 131 %then %do;'; put 'data _null_;'; put 'set &tempds1;'; put 'putlog (_all_)(=);'; put 'run;'; put 'data _null_;'; put 'set &tempds2;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put 'proc sql;'; put 'create table &outds as'; put 'select * from &tempds1'; put 'where groupname="&mpeadmins"'; put 'or groupname in (select * from &tempds2);'; put '%put &sysmacroname: base_table=&base_table;'; put '%put &sysmacroname: access_level=&access_level;'; put '%mend mpe_accesscheck;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '%macro mpe_alerts(alert_event='; put ', alert_lib='; put ', alert_ds='; put ', dsid='; put ');'; put '/* exit if not configured */'; put '%global DC_EMAIL_ALERTS;'; put '%if &DC_EMAIL_ALERTS ne YES %then %do;'; put '%put DCNOTE: Email alerts are not configured;'; put '%put DCNOTE: (dc_email_alerts=&dc_email_alerts in &mpelib..mpe_config);'; put '%return;'; put '%end;'; put '%let alert_event=%upcase(&alert_event);'; put '%let alert_lib=%upcase(&alert_lib);'; put '%let alert_ds=%upcase(&alert_ds);'; put '%let from_user=%mf_getuser();'; put '/* get users TO which the email should be sent */'; put 'proc sql noprint;'; put 'create table work.users as select distinct a.alert_user,'; put 'b.user_displayname,'; put 'b.user_email'; put 'from &mpelib..mpe_alerts'; put '(where=(&dc_dttmtfmt. lt tx_to)) a'; put 'left join &mpelib..mpe_emails'; put '(where=(&dc_dttmtfmt. lt tx_to)) b'; put 'on upcase(trim(a.alert_user))=upcase(trim(b.user_name))'; put 'where a.alert_event in ("&alert_event","*ALL*")'; put 'and a.alert_lib in ("&alert_lib","*ALL*")'; put 'and a.alert_ds in ("&alert_ds","*ALL*");'; put '/* ensure the submitter is included on the email */'; put '%local isThere userdisp user_eml;'; put '%let isThere=0;'; put 'select count(*) into: isThere from &syslast where alert_user="&from_user";'; put '%if &isThere=0 %then %do;'; put 'select user_displayname, user_email'; put 'into: userdisp trimmed, :user_eml trimmed'; put 'from &mpelib..mpe_emails'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and user_name="&from_user";'; put 'insert into work.users'; put 'set alert_user="&from_user"'; put ',user_displayname="&userdisp"'; put ',user_email="&user_eml";'; put '%end;'; put '/* if no email / displayname is provided, then extract from metadata */'; put 'data work.emails;'; put 'set work.users;'; put 'length emailuri uri text $256; call missing(emailuri,uri); drop emailuri uri;'; put '/* get displayname */'; put 'text=cats("omsobj:Person?@Name=''",alert_user,"''");'; put 'if metadata_getnobj(text,1,uri)<=0 then do;'; put 'putlog "DCWARN: &from_user not found";'; put 'return;'; put 'end;'; put 'else if user_displayname = '''' then do;'; put 'if metadata_getattr(uri,''DisplayName'',user_displayname)<0 then do;'; put 'putlog ''DCWARN: strange err, no displayname attribute of user URI'';'; put 'end;'; put 'end;'; put 'if index(user_email,''@'') then return;'; put '/* get email from metadata if not in input table */'; put 'if metadata_getnasn(uri,"EmailAddresses",1,emailuri)<=0 then do;'; put 'putlog "DCWARN: " alert_user " has no emails in MPE_EMAILS or metadata!";'; put 'end;'; put 'else do;'; put 'if metadata_getattr(emailuri,"Address",user_email)<0 then do;'; put 'putlog ''DCWARN: Unexpected error! Valid emailURI but no email. Weird.'';'; put 'end;'; put 'end;'; put '/* only keep valid emails */'; put 'if index(user_email,''@'') ;'; put '/* dump contents for debugging */'; put 'if _n_<21 then putlog (_all_)(=);'; put 'run;'; put '%local emails;'; put 'proc sql noprint;'; put 'select quote(trim(user_email)) into: emails separated by '' '' from work.emails;'; put '/* exit if nobody to email */'; put '%if %mf_getattrn(emails,NLOBS)=0 %then %do;'; put '%put NOTE: No alerts configured (mpe_alerts.sas);'; put '%return;'; put '%end;'; put '/* display email options */'; put 'data _null_;'; put 'set sashelp.voption(where=(group=''EMAIL''));'; put 'put optname ''='' setting;'; put 'run;'; put 'filename __out email (&emails)'; put 'subject="Table &alert_lib..&alert_ds has been &alert_event";'; put '%local SUBMITTED_TXT;'; put '%if &alert_event=SUBMITTED %then %do;'; put 'data _null_;'; put 'set &mpelib..mpe_submit;'; put 'where table_id="&dsid" and submit_status_cd=''SUBMITTED'';'; put 'call symputx(''SUBMITTED_TXT'',submitted_reason_txt,''l'');'; put 'run;'; put 'data _null_;'; put 'File __out lrecl=32000;'; put 'put ''Dear user,'';'; put 'put '' '';'; put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; put '"been proposed by &from_user on the ''&syshostname'' SAS server.";'; put 'put " ";'; put 'length txt $2048;'; put 'txt=symget(''SUBMITTED_TXT'');'; put 'put "Reason provided: " txt;'; put 'put " ";'; put 'put "This is an automated email by Data Controller for SAS. For "'; put '"documentation, please visit https://docs.datacontroller.io";'; put 'run;'; put '%end;'; put '%else %if &alert_event=APPROVED %then %do;'; put '/* there is no approval message */'; put 'data _null_;'; put 'File __out lrecl=32000;'; put 'put ''Dear user,'';'; put 'put '' '';'; put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; put '"been approved by &from_user on the ''&syshostname'' SAS server.";'; put 'put " ";'; put 'put "This is an automated email by Data Controller for SAS. For "'; put '"documentation, please visit https://docs.datacontroller.io";'; put 'run;'; put '%end;'; put '%else %if &alert_event=REJECTED %then %do;'; put 'data _null_;'; put 'set &mpelib..mpe_review;'; put 'where table_id="&dsid" and review_status_id=''REJECTED'';'; put 'call symputx(''REVIEW_REASON_TXT'',REVIEW_REASON_TXT,''l'');'; put 'run;'; put 'data _null_;'; put 'File __out lrecl=32000;'; put 'put ''Dear user,'';'; put 'put '' '';'; put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; put '"been rejected by &from_user on the ''&syshostname'' SAS server.";'; put 'put " ";'; put 'length txt $2048;'; put 'txt=symget(''REVIEW_REASON_TXT'');'; put 'put "Reason provided: " txt;'; put 'put " ";'; put 'put "This is an automated email by Data Controller for SAS. For "'; put '"documentation, please visit https://docs.datacontroller.io";'; put 'run;'; put '%end;'; put 'filename __out clear;'; put '%mend mpe_alerts ;'; put '%macro mpe_getvars(injs,outds);'; put '/* load parameters */'; put 'data _null_;'; put '__dummychar='''';__dummynum=0;'; put 'set &outds;'; put 'array __charvals _character_;'; put 'do over __charvals;'; put 'call symputx(vname(__charvals),__charvals,''g'');'; put 'end;'; put 'array __numvals _numeric_;'; put 'do over __numvals;'; put 'call symputx(vname(__numvals),__numvals,''g'');'; put 'end;'; put 'run;'; put '%mend mpe_getvars;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro removecolsfromwork(col);'; put '/* only an issue if debug mode enabled */'; put '%global _debug;'; put '%if &_debug ge 131 %then %do;'; put '%let col=%upcase(&col);'; put '%local memlist;'; put 'proc sql noprint;'; put 'select distinct memname into: memlist'; put 'separated by '' '''; put 'from dictionary.columns'; put 'where libname=''WORK'' and upcase(name)="&col";'; put '%if %mf_isblank(&memlist) %then %return;'; put '%mp_dropmembers(list=&memlist)'; put '%end;'; put '%mend removecolsfromwork;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_getattrc('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrc(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrc;'; put '%macro mp_lockfilecheck('; put 'libds'; put ')/*/STORE SOURCE*/;'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=checklock.sas'; put ',msg=Aborting with syscc=&syscc on entry.'; put ')'; put '%mp_abort(iftrue= ("&libds"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(libds not provided)'; put ')'; put '%local msg lib ds;'; put '%let lib=%upcase(%scan(&libds,1,.));'; put '%let ds=%upcase(%scan(&libds,2,.));'; put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; put '%if %scan(&libds,2,-)=FC %then %do;'; put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=checklock.sas'; put ',msg=%superq(msg)'; put ')'; put 'data _null_;'; put 'putlog "Checking engine & member type";'; put 'run;'; put '%local engine memtype;'; put '%let memtype=%mf_getattrc(&libds,MTYPE);'; put '%let engine=%mf_getattrc(&libds,ENGINE);'; put '%if &engine ne V9 and &engine ne BASE %then %do;'; put 'data _null_;'; put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; put 'putlog "SAS lock check will not be performed";'; put 'run;'; put '%return;'; put '%end;'; put '%else %if &memtype ne DATA %then %do;'; put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; put '%return;'; put '%end;'; put 'data _null_;'; put 'putlog "Engine = &engine, memtype=&memtype";'; put 'putlog "Attempting lock statement";'; put 'run;'; put 'lock &libds;'; put '%local abortme;'; put '%let abortme=0;'; put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; put '%put %str(ERR)OR: &sysmacroname: &msg;'; put '%let abortme=1;'; put '%end;'; put 'lock &libds clear;'; put '%mp_abort(iftrue= (&abortme=1)'; put ',mac=&sysmacroname'; put ',msg=%superq(msg)'; put ')'; put '%mend mp_lockfilecheck;'; put '%macro mp_lockanytable('; put 'action'; put ',lib= WORK'; put ',ds=0'; put ',ref='; put ',ctl_ds=0'; put ',loops=25'; put ',loop_secs=1'; put ');'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(dataset was not provided)'; put ')'; put '%mp_abort(iftrue= (&ctl_ds=0)'; put ',mac=&sysmacroname'; put ',msg=%str(Control dataset was not provided)'; put ')'; put '/* set up lib & mac vars */'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '%let action=%upcase(&action);'; put '%local user x trans msg abortme;'; put '%let user=%mf_getuser();'; put '%let abortme=0;'; put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid action (&action) provided)'; put ')'; put '/* if an err condition exists, exit before we even begin */'; put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; put ',mac=&sysmacroname'; put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; put ')'; put '/* do not bother locking work tables (else may affect all WORK libraries) */'; put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; put '%put NOTE: WORK libraries will not be registered in the locking system.;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=&sysmacroname'; put ',msg=%str(cannot continue when options obs = 0)'; put ')'; put '%if &ACTION=LOCK %then %do;'; put '/* abort if a SAS lock is already in place, or cannot be applied */'; put '%mp_lockfilecheck(&lib..&ds)'; put '/* next, check there is a record for this table */'; put '%local record_exists_check;'; put 'proc sql noprint;'; put 'select count(*) into: record_exists_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &record_exists_check=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: adding record to lock table..";'; put 'run;'; put 'data ;'; put 'if 0 then set &ctl_ds;'; put 'LOCK_LIB ="&lib";'; put 'LOCK_DS="&ds";'; put 'LOCK_STATUS_CD=''LOCKED'';'; put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'LOCK_USER_NM="&user";'; put 'LOCK_PID="&sysjobid";'; put 'LOCK_REF="&ref";'; put 'output;stop;'; put 'run;'; put '%let trans=&syslast;'; put 'proc append base=&ctl_ds data=&trans;'; put 'run;'; put '%end;'; put '/* if record does exist, perform lock attempts */'; put '%else %do x=1 %to &loops;'; put 'data _null_;'; put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''LOCKED'''; put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '/**'; put '* NOTE - occasionally SQL server will return an err code (deadlocked'; put '* transaction). If so, ignore it, keep calm, and carry on..'; put '*/'; put '%if &syscc>0 %then %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; put 'putlog "Resetting err conditions and re-attempting.";'; put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%let syscc=0;'; put '%let sqlrc=0;'; put '%end;'; put '/* now check if the record was successfully updated */'; put '%local success_check;'; put 'proc sql noprint;'; put 'select count(*) into: success_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; put 'quit;'; put '%if &success_check=0 %then %do;'; put '%if &x < &loops %then %do;'; put '/* pause before next check */'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; put 'putlog "%sysfunc(sleep(&loop_secs)) seconds.. ";'; put 'putlog "NOTE- (iteration &x of &loops)";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%end;'; put '%else %do;'; put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; put 'Please ask your administrator to investigate!;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%else %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%if &syscc>0 %then %do;'; put '%put setting syscc(&syscc) back to 0;'; put '%let syscc=0;'; put '%end;'; put '%let x=&loops; /* no more iterations needed */'; put '%end;'; put '%end;'; put '%end;'; put '%else %if &ACTION=UNLOCK %then %do;'; put '%local status cnt;'; put '%let cnt=0;'; put 'proc sql noprint;'; put 'select count(*) into: cnt from &ctl_ds where LOCK_LIB ="&lib" & LOCK_DS="&ds";'; put '%if &cnt=0 %then %do;'; put '%put %str(WAR)NING: &lib..&ds was not previously locked in &ctl_ds!;'; put '%end;'; put '%else %do;'; put 'select LOCK_STATUS_CD into: status from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &status=LOCKED %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''UNLOCKED'''; put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%end;'; put '%else %if &status=UNLOCKED %then %do;'; put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; put '%end;'; put '%else %do;'; put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%end;'; put '%else %do;'; put '%let msg=lock_anytable given unsupported action (&action);'; put '%let abortme=1;'; put '%end;'; put '/* catch errs - mp_abort must be called outside of a logic block */'; put '%mp_abort(iftrue=(&abortme=1),'; put 'msg=%superq(msg),'; put 'mac=&sysmacroname'; put ')'; put '%exit_macro:'; put 'data _null_;'; put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; put 'run;'; put '%mend mp_lockanytable;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Removes a staged data package from approval screen'; put '@details'; put '

SAS Macros

'; put '@li mf_getuser.sas'; put '@li mf_getvarlist.sas'; put '@li mf_verifymacvars.sas'; put '@li mp_abort.sas'; put '@li mp_lockanytable.sas'; put '@li mpe_accesscheck.sas'; put '@li mpe_alerts.sas'; put '@li mpe_getvars.sas'; put '@li removecolsfromwork.sas'; put '

Service Outputs

'; put '
fromsas
'; put '@li TABLE_ID'; put '@li SUBMITTED_REASON_TXT'; put '@li RESPONSE'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%global STP_ACTION TABLE STP_REASON;'; put '%mpeinit()'; put '%mpe_getvars(BrowserParams, BrowserParams)'; put 'PROC FORMAT;'; put 'picture yymmddhhmmss other=''%0Y-%0m-%0d %0H:%0M:%0S'' (datatype=datetime);'; put 'RUN;'; put '/* get current status and base table */'; put 'data _null_;'; put 'set &mpelib..mpe_submit(where=(TABLE_ID="&TABLE"));'; put 'call symputx(''BASE_TABLE'',cats(base_lib,''.'',base_ds));'; put 'call symputx(''submit_status_cd'',submit_status_cd);'; put 'run;'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(base_table)=0)'; put ',mac=&_program'; put ',msg=%str(Missing: base_table)'; put ')'; put '%mp_abort('; put 'iftrue=(%quote(&submit_status_cd)=%quote(REJECTED))'; put ',mac=&_program'; put ',msg=%str(&table is already rejected!)'; put ')'; put '%mp_abort(iftrue= (&syscc ge 4)'; put ',mac=&_program'; put ',msg=%str(Issue on setup)'; put ')'; put '/**'; put '* determine if user is authorised to reject table'; put '*/'; put '%let user=%mf_getuser();'; put '%global authcheck; %let authcheck=0;'; put '%mpe_accesscheck(&base_table,outds=authAPP,user=&user,access_level=APPROVE)'; put '%let authcheck=%mf_getattrn(work.authAPP,NLOBS);'; put '%mp_abort(iftrue= (&authcheck=0)'; put ',mac=&_program..sas'; put ',msg=%str(User &user does not have APPROVE rights on &base_table and is not'; put 'in the &mpeadmins group)'; put ')'; put '/* update the control table to show table as rejected (and why) */'; put '%let now=%sysfunc(datetime());'; put 'data work.reject;'; put 'if 0 then set &mpelib..mpe_review;'; put 'TABLE_ID="&table";'; put 'BASE_TABLE="&base_table";'; put 'REVIEW_STATUS_ID="REJECTED";'; put 'REVIEWED_BY_NM="&user";'; put 'REVIEWED_ON_DTTM=&now;'; put 'REVIEW_REASON_TXT=symget(''STP_REASON'');'; put 'run;'; put '%mp_lockanytable(LOCK,'; put 'lib=&mpelib,ds=mpe_review,ref=%str(&table rejection),'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'proc append base=&mpelib..mpe_review data=work.reject;'; put 'run;'; put '%mp_lockanytable(UNLOCK,'; put 'lib=&mpelib,ds=mpe_review,'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put '%mp_lockanytable(LOCK,'; put 'lib=&mpelib,ds=mpe_submit,ref=%str(&table rejection),'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'proc sql;'; put 'update &mpelib..mpe_submit'; put 'set submit_status_cd=''REJECTED'','; put 'num_of_approvals_remaining=0,'; put 'reviewed_by_nm="&user",'; put 'reviewed_on_dttm=&now'; put 'where table_id="&table";'; put '%mp_lockanytable(UNLOCK,'; put 'lib=&mpelib,ds=mpe_submit,'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc AFTER update...)'; put ')'; put '%mpe_alerts(alert_event=REJECTED'; put ', alert_lib=%scan(&BASE_TABLE,1,.)'; put ', alert_ds=%scan(&BASE_TABLE,2,.)'; put ', dsid=&TABLE'; put ')'; put 'data fromSAS;'; put 'RESPONSE=''SUCCESS!'';'; put 'set REJECT;'; put 'run;'; put '%removecolsfromwork(___TMP___MD5)'; put '%webout(OPEN)'; put '%webout(OBJ,fromSAS)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let path=services/auditors; %let service=getauditfile; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mc,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mpe_accesscheck('; put 'base_table'; put ',outds=med_accesscheck /* WORK table to contain access details */'; put ',user= /* metadata user to check for */'; put ',access_level=APPROVE'; put ',cntl_lib_var=MPELIB'; put ');'; put '%if &user= %then %let user=%mf_getuser();'; put '%mp_abort('; put 'iftrue=(%index(&outds,.)>0 and %upcase(%scan(&outds,1,.)) ne WORK)'; put ',mac=mpe_accesscheck'; put ',msg=%str(outds should be a WORK table)'; put ')'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; put ',mac=mpe_accesscheck'; put ',msg=%str(Missing base_table/user access_level variables)'; put ')'; put '/* make unique temp table vars */'; put '%local tempds1 tempds2;'; put '%let tempds1=%mf_getuniquename(prefix=usergroups);'; put '%let tempds2=%mf_getuniquename(prefix=tablegroups);'; put '/* get list of user groups */'; put '%mpe_getgroups(user=&user,outds=&tempds1)'; put '/* get list of groups with access for that table */'; put 'proc sql;'; put 'create table &tempds2 as'; put 'select distinct sas_group'; put 'from &&&cntl_lib_var...mpe_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and access_level="&access_level"'; put 'and ('; put '(libref="%scan(&base_table,1,.)" and upcase(dsn)="%scan(&base_table,2,.)")'; put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; put 'or (libref="*ALL*")'; put ');'; put '%if &_debug ge 131 %then %do;'; put 'data _null_;'; put 'set &tempds1;'; put 'putlog (_all_)(=);'; put 'run;'; put 'data _null_;'; put 'set &tempds2;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put 'proc sql;'; put 'create table &outds as'; put 'select * from &tempds1'; put 'where groupname="&mpeadmins"'; put 'or groupname in (select * from &tempds2);'; put '%put &sysmacroname: base_table=&base_table;'; put '%put &sysmacroname: access_level=&access_level;'; put '%mend mpe_accesscheck;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_wordsInStr1ButNotStr2('; put 'Str1= /* string containing words to extract */'; put ',Str2= /* used to compare with the extract string */'; put ')/*/STORE SOURCE*/;'; put '%local count_base count_extr i i2 extr_word base_word match outvar;'; put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; put '%put base string (str1)= &str1;'; put '%put compare string (str2) = &str2;'; put '%return;'; put '%end;'; put '%let count_base=%sysfunc(countw(&Str2));'; put '%let count_extr=%sysfunc(countw(&Str1));'; put '%do i=1 %to &count_extr;'; put '%let extr_word=%scan(&Str1,&i,%str( ));'; put '%let match=0;'; put '%do i2=1 %to &count_base;'; put '%let base_word=%scan(&Str2,&i2,%str( ));'; put '%if &extr_word=&base_word %then %let match=1;'; put '%end;'; put '%if &match=0 %then %let outvar=&outvar &extr_word;'; put '%end;'; put '&outvar'; put '%mend mf_wordsInStr1ButNotStr2;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro mp_dirlist(path=%sysfunc(pathname(work))'; put ', fref=0'; put ', outds=work.mp_dirlist'; put ', getattrs=NO'; put ', showparent=NO'; put ', maxdepth=0'; put ', level=0 /* The level of recursion to perform. For internal use only. */'; put ')/*/STORE SOURCE*/;'; put '%let getattrs=%upcase(&getattrs)XX;'; put '/* temp table */'; put '%local out_ds;'; put 'data;run;'; put '%let out_ds=%str(&syslast);'; put '/* drop main (top) table if it exists */'; put '%if &level=0 %then %do;'; put '%mp_dropmembers(%scan(&outds,-1,.), libref=WORK)'; put '%end;'; put 'data &out_ds(compress=no'; put 'keep=file_or_folder filepath filename ext msg directory level'; put ');'; put 'length directory filepath $2000 fref fref2 $8 file_or_folder $6 filename $255'; put 'ext $20 msg $200 foption $16;'; put 'if _n_=1 then call missing(of _all_);'; put 'retain level &level;'; put '%if &fref=0 %then %do;'; put 'rc = filename(fref, "&path");'; put '%end;'; put '%else %do;'; put 'fref="&fref";'; put 'rc=0;'; put '%end;'; put 'if rc = 0 then do;'; put 'did = dopen(fref);'; put 'if did=0 then do;'; put 'putlog "NOTE: This directory is empty, or does not exist - &path";'; put 'msg=sysmsg();'; put 'put (_all_)(=);'; put 'stop;'; put 'end;'; put '/* attribute is OS-dependent - could be "Directory" or "Directory Name" */'; put 'numopts=doptnum(did);'; put 'do i=1 to numopts;'; put 'foption=doptname(did,i);'; put 'if foption=:''Directory'' then i=numopts;'; put 'end;'; put 'directory=dinfo(did,foption);'; put 'rc = filename(fref);'; put 'end;'; put 'else do;'; put 'msg=sysmsg();'; put 'put _all_;'; put 'stop;'; put 'end;'; put 'dnum = dnum(did);'; put 'do i = 1 to dnum;'; put 'filename = dread(did, i);'; put 'filepath=cats(directory,''/'',filename);'; put 'rc = filename(fref2,filepath);'; put 'midd=dopen(fref2);'; put 'dmsg=sysmsg();'; put 'if did > 0 then file_or_folder=''folder'';'; put 'rc=dclose(midd);'; put 'midf=fopen(fref2);'; put 'fmsg=sysmsg();'; put 'if midf > 0 then file_or_folder=''file'';'; put 'rc=fclose(midf);'; put 'if index(fmsg,''File is in use'') or index(dmsg,''is not a directory'')'; put 'then file_or_folder=''file'';'; put 'else if index(fmsg,''Insufficient authorization'') then file_or_folder=''file'';'; put 'else if file_or_folder='''' then file_or_folder=''locked'';'; put 'if file_or_folder=''file'' then do;'; put 'ext = prxchange(''s/.*\.{1,1}(.*)/$1/'', 1, filename);'; put 'if filename = ext then ext = '' '';'; put 'end;'; put 'else do;'; put 'ext='''';'; put 'file_or_folder=''folder'';'; put 'end;'; put 'output;'; put 'end;'; put 'rc = dclose(did);'; put '%if &showparent=YES and &level=0 %then %do;'; put 'filepath=directory;'; put 'file_or_folder=''folder'';'; put 'ext='''';'; put 'filename=scan(directory,-1,''/\'');'; put 'msg='''';'; put 'level=&level;'; put 'output;'; put '%end;'; put 'stop;'; put 'run;'; put '%if %substr(&getattrs,1,1)=Y %then %do;'; put 'data &out_ds;'; put 'set &out_ds;'; put 'length infoname infoval $60 fref $8;'; put 'if _n_=1 then call missing(fref);'; put 'rc=filename(fref,filepath);'; put 'drop rc infoname fid i close fref;'; put 'if file_or_folder=''file'' then do;'; put 'fid=fopen(fref);'; put 'if fid le 0 then do;'; put 'msg=sysmsg();'; put 'putlog "Could not open file:" filepath fid= ;'; put 'sasname=''_MCNOTVALID_'';'; put 'output;'; put 'end;'; put 'else do i=1 to foptnum(fid);'; put 'infoname=foptname(fid,i);'; put 'infoval=finfo(fid,infoname);'; put 'sasname=compress(infoname, ''_'', ''adik'');'; put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; put 'if upcase(sasname) ne ''FILENAME'' then output;'; put 'end;'; put 'close=fclose(fid);'; put 'end;'; put 'else do;'; put 'fid=dopen(fref);'; put 'if fid le 0 then do;'; put 'msg=sysmsg();'; put 'putlog "Could not open folder:" filepath fid= ;'; put 'sasname=''_MCNOTVALID_'';'; put 'output;'; put 'end;'; put 'else do i=1 to doptnum(fid);'; put 'infoname=doptname(fid,i);'; put 'infoval=dinfo(fid,infoname);'; put 'sasname=compress(infoname, ''_'', ''adik'');'; put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; put 'if upcase(sasname) ne ''FILENAME'' then output;'; put 'end;'; put 'close=dclose(fid);'; put 'end;'; put 'run;'; put 'proc sort;'; put 'by filepath sasname;'; put 'proc transpose data=&out_ds out=&out_ds(drop=_:);'; put 'id sasname;'; put 'var infoval;'; put 'by filepath file_or_folder filename ext ;'; put 'run;'; put '%end;'; put 'data &out_ds;'; put 'set &out_ds(where=(filepath ne ''''));'; put 'run;'; put '/**'; put '* The above transpose can mean that some updates create additional columns.'; put '* This necessitates the occasional use of datastep over proc append.'; put '*/'; put '%if %mf_existds(&outds) %then %do;'; put '%local basevars appvars newvars;'; put '%let basevars=%mf_getvarlist(&outds);'; put '%let appvars=%mf_getvarlist(&out_ds);'; put '%let newvars=%length(%mf_wordsinstr1butnotstr2(Str1=&appvars,Str2=&basevars));'; put '%if &newvars>0 %then %do;'; put 'data &outds;'; put 'set &outds &out_ds;'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc append base=&outds data=&out_ds force nowarn;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do;'; put 'proc append base=&outds data=&out_ds;'; put 'run;'; put '%end;'; put '/* recursive call */'; put '%if &maxdepth>&level or &maxdepth=MAX %then %do;'; put 'data _null_;'; put 'set &out_ds;'; put 'where file_or_folder=''folder'';'; put '%if &showparent=YES and &level=0 %then %do;'; put 'if filepath ne directory;'; put '%end;'; put 'length code $10000;'; put 'code=cats(''%nrstr(%mp_dirlist(path='',filepath,",outds=&outds"'; put ',",getattrs=&getattrs,level=%eval(&level+1),maxdepth=&maxdepth))");'; put 'put code=;'; put 'call execute(code);'; put 'run;'; put '%end;'; put '/* tidy up */'; put 'proc sql;'; put 'drop table &out_ds;'; put '%mend mp_dirlist;'; put '%macro mp_binarycopy('; put 'inloc= /* full path and filename of the object to be copied */'; put ',outloc= /* full path and filename of object to be created */'; put ',inref=____in /* override default to use own filerefs */'; put ',outref=____out /* override default to use own filerefs */'; put ',mode=CREATE'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%local mod;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if &mode=APPEND %then %let mod=mod;'; put '/* these IN and OUT filerefs can point to anything */'; put '%if &inref = ____in %then %do;'; put 'filename &inref &inloc lrecl=1048576 ;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref &outloc lrecl=1048576 &mod;'; put '%end;'; put '/* copy the file byte-for-byte */'; put 'data _null_;'; put 'infile &inref lrecl=1 recfm=n;'; put 'file &outref &mod recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%if &inref = ____in %then %do;'; put 'filename &inref clear;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref clear;'; put '%end;'; put '%mend mp_binarycopy;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mfs_httpheader(header_name'; put ',header_value'; put ')/*/STORE SOURCE*/;'; put '%global sasjs_stpsrv_header_loc;'; put '%local fref fid i;'; put '%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;'; put '%put &=fref &=sasjs_stpsrv_header_loc;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%mend mfs_httpheader;'; put '%macro mp_streamfile('; put 'contenttype=TEXT'; put ',inloc='; put ',inref=0'; put ',iftrue=%str(1=1)'; put ',outname='; put ',outref=_webout'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let contentype=%upcase(&contenttype);'; put '%let outref=%upcase(&outref);'; put '%local platform; %let platform=%mf_getplatform();'; put '/**'; put '* check engine type to avoid the below err message:'; put '* > Function is only valid for filerefs using the CACHE access method.'; put '*/'; put '%local streamweb;'; put '%let streamweb=0;'; put 'data _null_;'; put 'set sashelp.vextfl(where=(upcase(fileref)="&outref"));'; put 'if xengine=''STREAM'' then call symputx(''streamweb'',1,''l'');'; put 'run;'; put '%if &contentype=CSV %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/csv'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; put 'contenttype=''application/csv'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/csv)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=EXCEL %then %do;'; put '/* suitable for XLS format */'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/vnd.ms-excel'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; put 'contenttype=''application/vnd.ms-excel'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/vnd.ms-excel)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=GIF or &contentype=JPEG or &contentype=PNG %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"image/%lowcase(&contenttype)");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'contenttype="image/%lowcase(&contenttype)";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,image/%lowcase(&contenttype))'; put '%end;'; put '%end;'; put '%else %if &contentype=HTML or &contenttype=MARKDOWN %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"text/%lowcase(&contenttype)");'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json"'; put 'contenttype="text/%lowcase(&contenttype)"'; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,text/%lowcase(&contenttype))'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=TEXT %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/text'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; put 'contenttype=''application/text'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/text)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=WOFF or &contentype=WOFF2 or &contentype=TTF %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"font/%lowcase(&contenttype)");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'contenttype="font/%lowcase(&contenttype)";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,font/%lowcase(&contenttype))'; put '%end;'; put '%end;'; put '%else %if &contentype=XLSX %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'','; put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; put 'contenttype='; put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type'; put ',application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; put ')'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=ZIP %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/zip'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.zip'''; put 'contenttype=''application/zip'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/zip)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %do;'; put '%put %str(ERR)OR: Content Type &contenttype NOT SUPPORTED by &sysmacroname!;'; put '%end;'; put '%if &inref ne 0 %then %do;'; put '%mp_binarycopy(inref=&inref,outref=&outref)'; put '%end;'; put '%else %do;'; put '%mp_binarycopy(inloc="&inloc",outref=&outref)'; put '%end;'; put '%mend mp_streamfile;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file getauditfile.sas'; put '@brief Downloads a zip file containing audit info.'; put '@details The staging location from the &mpelocapprovals location'; put 'is zipped and returned as a file download. A user can only request the'; put 'audit pack if they have EDIT or APPROVE rights on the target table.'; put '

SAS Macros

'; put '@li mf_getuser.sas'; put '@li mf_verifymacvars.sas'; put '@li mpe_accesscheck.sas'; put '@li mp_abort.sas'; put '@li mp_dirlist.sas'; put '@li mp_binarycopy.sas'; put '@li mf_getattrn.sas'; put '@li mp_streamfile.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put 'options mprint;'; put '/* security checks */'; put '%let user=%mf_getuser();'; put 'proc sql noprint;'; put 'select cats(base_lib,''.'',base_ds) into: libds'; put 'from &mpelib..mpe_submit'; put 'where table_id="&table";'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(libds table)=0)'; put ',mac=&_program'; put ',msg=%str(Missing: libds table)'; put ')'; put '%mpe_accesscheck(&libds,outds=authEDIT,user=&user,access_level=EDIT);'; put '%mpe_accesscheck(&libds,outds=authAPP,user=&user,access_level=APPROVE);'; put '%mp_abort('; put 'iftrue=('; put '%mf_getattrn(work.authEDIT,NLOBS)=0 & %mf_getattrn(work.authAPP,NLOBS)=0'; put ')'; put ',mac=mpestp_audit'; put ',msg=%str(&user not authorised to download audit data for &table)'; put ')'; put 'ods package(ProdOutput) open nopf;'; put 'options notes source2 mprint;'; put '%let table=%unquote(&table);'; put '%mp_dirlist(outds=dirs, path=&mpelocapprovals/&TABLE);'; put 'data _null_;'; put 'set dirs;'; put 'retain str1'; put '"ods package(ProdOutput) add file=''&mpelocapprovals/&TABLE/";'; put 'retain str2 "'' mimetype=''text/plain'' path=''contents/'';";'; put 'call execute(cats(str1,filename,str2));'; put 'run;'; put '%let archive_path=%sysfunc(pathname(work));'; put 'ods package(ProdOutput) publish archive properties'; put '(archive_name= "&table..zip" archive_path="&archive_path");'; put 'ods package(ProdOutput) close;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%nrstr(syscc=&syscc)'; put ')'; put '/* now serve zip file to client */'; put '%mp_streamfile(contenttype=ZIP'; put ',inloc=%str(&archive_path/&table..zip)'; put ',outname=&table..zip'; put ')'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=getdiffs; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mpe_getvars(injs,outds);'; put '/* load parameters */'; put 'data _null_;'; put '__dummychar='''';__dummynum=0;'; put 'set &outds;'; put 'array __charvals _character_;'; put 'do over __charvals;'; put 'call symputx(vname(__charvals),__charvals,''g'');'; put 'end;'; put 'array __numvals _numeric_;'; put 'do over __numvals;'; put 'call symputx(vname(__numvals),__numvals,''g'');'; put 'end;'; put 'run;'; put '%mend mpe_getvars;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mc,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mpe_accesscheck('; put 'base_table'; put ',outds=med_accesscheck /* WORK table to contain access details */'; put ',user= /* metadata user to check for */'; put ',access_level=APPROVE'; put ',cntl_lib_var=MPELIB'; put ');'; put '%if &user= %then %let user=%mf_getuser();'; put '%mp_abort('; put 'iftrue=(%index(&outds,.)>0 and %upcase(%scan(&outds,1,.)) ne WORK)'; put ',mac=mpe_accesscheck'; put ',msg=%str(outds should be a WORK table)'; put ')'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; put ',mac=mpe_accesscheck'; put ',msg=%str(Missing base_table/user access_level variables)'; put ')'; put '/* make unique temp table vars */'; put '%local tempds1 tempds2;'; put '%let tempds1=%mf_getuniquename(prefix=usergroups);'; put '%let tempds2=%mf_getuniquename(prefix=tablegroups);'; put '/* get list of user groups */'; put '%mpe_getgroups(user=&user,outds=&tempds1)'; put '/* get list of groups with access for that table */'; put 'proc sql;'; put 'create table &tempds2 as'; put 'select distinct sas_group'; put 'from &&&cntl_lib_var...mpe_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and access_level="&access_level"'; put 'and ('; put '(libref="%scan(&base_table,1,.)" and upcase(dsn)="%scan(&base_table,2,.)")'; put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; put 'or (libref="*ALL*")'; put ');'; put '%if &_debug ge 131 %then %do;'; put 'data _null_;'; put 'set &tempds1;'; put 'putlog (_all_)(=);'; put 'run;'; put 'data _null_;'; put 'set &tempds2;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put 'proc sql;'; put 'create table &outds as'; put 'select * from &tempds1'; put 'where groupname="&mpeadmins"'; put 'or groupname in (select * from &tempds2);'; put '%put &sysmacroname: base_table=&base_table;'; put '%put &sysmacroname: access_level=&access_level;'; put '%mend mpe_accesscheck;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mp_binarycopy('; put 'inloc= /* full path and filename of the object to be copied */'; put ',outloc= /* full path and filename of object to be created */'; put ',inref=____in /* override default to use own filerefs */'; put ',outref=____out /* override default to use own filerefs */'; put ',mode=CREATE'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%local mod;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if &mode=APPEND %then %let mod=mod;'; put '/* these IN and OUT filerefs can point to anything */'; put '%if &inref = ____in %then %do;'; put 'filename &inref &inloc lrecl=1048576 ;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref &outloc lrecl=1048576 &mod;'; put '%end;'; put '/* copy the file byte-for-byte */'; put 'data _null_;'; put 'infile &inref lrecl=1 recfm=n;'; put 'file &outref &mod recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%if &inref = ____in %then %do;'; put 'filename &inref clear;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref clear;'; put '%end;'; put '%mend mp_binarycopy;'; put '%macro mfs_httpheader(header_name'; put ',header_value'; put ')/*/STORE SOURCE*/;'; put '%global sasjs_stpsrv_header_loc;'; put '%local fref fid i;'; put '%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;'; put '%put &=fref &=sasjs_stpsrv_header_loc;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%mend mfs_httpheader;'; put '%macro mp_streamfile('; put 'contenttype=TEXT'; put ',inloc='; put ',inref=0'; put ',iftrue=%str(1=1)'; put ',outname='; put ',outref=_webout'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let contentype=%upcase(&contenttype);'; put '%let outref=%upcase(&outref);'; put '%local platform; %let platform=%mf_getplatform();'; put '/**'; put '* check engine type to avoid the below err message:'; put '* > Function is only valid for filerefs using the CACHE access method.'; put '*/'; put '%local streamweb;'; put '%let streamweb=0;'; put 'data _null_;'; put 'set sashelp.vextfl(where=(upcase(fileref)="&outref"));'; put 'if xengine=''STREAM'' then call symputx(''streamweb'',1,''l'');'; put 'run;'; put '%if &contentype=CSV %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/csv'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; put 'contenttype=''application/csv'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/csv)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=EXCEL %then %do;'; put '/* suitable for XLS format */'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/vnd.ms-excel'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; put 'contenttype=''application/vnd.ms-excel'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/vnd.ms-excel)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=GIF or &contentype=JPEG or &contentype=PNG %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"image/%lowcase(&contenttype)");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'contenttype="image/%lowcase(&contenttype)";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,image/%lowcase(&contenttype))'; put '%end;'; put '%end;'; put '%else %if &contentype=HTML or &contenttype=MARKDOWN %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"text/%lowcase(&contenttype)");'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json"'; put 'contenttype="text/%lowcase(&contenttype)"'; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,text/%lowcase(&contenttype))'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=TEXT %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/text'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; put 'contenttype=''application/text'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/text)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=WOFF or &contentype=WOFF2 or &contentype=TTF %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"font/%lowcase(&contenttype)");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'contenttype="font/%lowcase(&contenttype)";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,font/%lowcase(&contenttype))'; put '%end;'; put '%end;'; put '%else %if &contentype=XLSX %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'','; put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; put 'contenttype='; put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type'; put ',application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; put ')'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=ZIP %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/zip'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.zip'''; put 'contenttype=''application/zip'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/zip)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %do;'; put '%put %str(ERR)OR: Content Type &contenttype NOT SUPPORTED by &sysmacroname!;'; put '%end;'; put '%if &inref ne 0 %then %do;'; put '%mp_binarycopy(inref=&inref,outref=&outref)'; put '%end;'; put '%else %do;'; put '%mp_binarycopy(inloc="&inloc",outref=&outref)'; put '%end;'; put '%mend mp_streamfile;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file getdiffs.sas'; put '@brief Retrieves the diff file for viewing'; put '@details'; put '

SAS Macros

'; put '@li mpe_getvars.sas'; put '@li mpe_accesscheck.sas'; put '@li mf_getattrn.sas'; put '@li mp_abort.sas'; put '@li mp_binarycopy.sas'; put '@li mp_streamfile.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%mpe_getvars(BrowserParams, BrowserParams);'; put '/* security checks */'; put '%let user=%mf_getuser();'; put '%mpe_accesscheck(&libds,outds=authEDIT,user=&user,access_level=EDIT)'; put '%mpe_accesscheck(&libds,outds=authAPP,user=&user,access_level=APPROVE)'; put '%macro mpestp_diffs();'; put '%if %mf_getattrn(work.authEDIT,NLOBS)=0 & %mf_getattrn(work.authAPP,NLOBS)=0'; put '%then %do;'; put '%mp_abort(msg=%str('; put '&user not authorised to download diffs data for &stp_table)'; put ',mac=mpestp_diffs.sas);'; put '%return;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '/* stream diffs csv to client */'; put '%mp_streamfile(contenttype=EXCEL'; put ',inloc=%str(&mpelocapprovals/&TABLE/&STP_DIFFS_CSV)'; put ',outname=&STP_DIFFS_CSV'; put ')'; put '%mend mpestp_diffs;'; put '%mpestp_diffs()'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=getstagetable; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_getvalue(libds,variable,filter=1'; put ')/*/STORE SOURCE*/;'; put '%if %mf_getattrn(&libds,NLOBS)>0 %then %do;'; put '%local dsid rc &variable;'; put '%let dsid=%sysfunc(open(&libds(where=(&filter))));'; put '%syscall set(dsid);'; put '%let rc = %sysfunc(fetch(&dsid));'; put '%let rc = %sysfunc(close(&dsid));'; put '%trim(&&&variable)'; put '%end;'; put '%mend mf_getvalue;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file getstagetable.sas'; put '@brief Retrieves the actual table that is being sent for update'; put '@details'; put '

SAS Macros

'; put '@li mf_getvalue.sas'; put '@li mp_abort.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%let table_id=%mf_getvalue(work.iwant,table_id);'; put 'libname loc "&mpelocapprovals/&table_id";'; put 'data stagetable;'; put 'set loc.&table_id;'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%webout(OPEN)'; put '%webout(OBJ,stagetable,missing=STRING)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=postdata; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '/** @cond */'; put '%macro mf_existvar(libds /* 2 part dataset name */'; put ', var /* variable name */'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid=0 %then %do;'; put '%put %sysfunc(sysmsg());'; put '0'; put '%end;'; put '%else %if %length(&var)=0 %then %do;'; put '0'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%sysfunc(varnum(&dsid,&var))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_existvar;'; put '/** @endcond */'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_getvartype(libds /* two level name */'; put ', var /* variable name from which to return the type */'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vtype rc;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid. > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable type (C/N) */'; put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let vtype = %str( );'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable type */'; put '&vtype'; put '%mend mf_getvartype;'; put '%macro mf_getattrc('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrc(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrc;'; put '%macro mp_lockfilecheck('; put 'libds'; put ')/*/STORE SOURCE*/;'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=checklock.sas'; put ',msg=Aborting with syscc=&syscc on entry.'; put ')'; put '%mp_abort(iftrue= ("&libds"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(libds not provided)'; put ')'; put '%local msg lib ds;'; put '%let lib=%upcase(%scan(&libds,1,.));'; put '%let ds=%upcase(%scan(&libds,2,.));'; put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; put '%if %scan(&libds,2,-)=FC %then %do;'; put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=checklock.sas'; put ',msg=%superq(msg)'; put ')'; put 'data _null_;'; put 'putlog "Checking engine & member type";'; put 'run;'; put '%local engine memtype;'; put '%let memtype=%mf_getattrc(&libds,MTYPE);'; put '%let engine=%mf_getattrc(&libds,ENGINE);'; put '%if &engine ne V9 and &engine ne BASE %then %do;'; put 'data _null_;'; put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; put 'putlog "SAS lock check will not be performed";'; put 'run;'; put '%return;'; put '%end;'; put '%else %if &memtype ne DATA %then %do;'; put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; put '%return;'; put '%end;'; put 'data _null_;'; put 'putlog "Engine = &engine, memtype=&memtype";'; put 'putlog "Attempting lock statement";'; put 'run;'; put 'lock &libds;'; put '%local abortme;'; put '%let abortme=0;'; put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; put '%put %str(ERR)OR: &sysmacroname: &msg;'; put '%let abortme=1;'; put '%end;'; put 'lock &libds clear;'; put '%mp_abort(iftrue= (&abortme=1)'; put ',mac=&sysmacroname'; put ',msg=%superq(msg)'; put ')'; put '%mend mp_lockfilecheck;'; put '%macro mp_lockanytable('; put 'action'; put ',lib= WORK'; put ',ds=0'; put ',ref='; put ',ctl_ds=0'; put ',loops=25'; put ',loop_secs=1'; put ');'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(dataset was not provided)'; put ')'; put '%mp_abort(iftrue= (&ctl_ds=0)'; put ',mac=&sysmacroname'; put ',msg=%str(Control dataset was not provided)'; put ')'; put '/* set up lib & mac vars */'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '%let action=%upcase(&action);'; put '%local user x trans msg abortme;'; put '%let user=%mf_getuser();'; put '%let abortme=0;'; put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid action (&action) provided)'; put ')'; put '/* if an err condition exists, exit before we even begin */'; put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; put ',mac=&sysmacroname'; put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; put ')'; put '/* do not bother locking work tables (else may affect all WORK libraries) */'; put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; put '%put NOTE: WORK libraries will not be registered in the locking system.;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=&sysmacroname'; put ',msg=%str(cannot continue when options obs = 0)'; put ')'; put '%if &ACTION=LOCK %then %do;'; put '/* abort if a SAS lock is already in place, or cannot be applied */'; put '%mp_lockfilecheck(&lib..&ds)'; put '/* next, check there is a record for this table */'; put '%local record_exists_check;'; put 'proc sql noprint;'; put 'select count(*) into: record_exists_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &record_exists_check=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: adding record to lock table..";'; put 'run;'; put 'data ;'; put 'if 0 then set &ctl_ds;'; put 'LOCK_LIB ="&lib";'; put 'LOCK_DS="&ds";'; put 'LOCK_STATUS_CD=''LOCKED'';'; put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'LOCK_USER_NM="&user";'; put 'LOCK_PID="&sysjobid";'; put 'LOCK_REF="&ref";'; put 'output;stop;'; put 'run;'; put '%let trans=&syslast;'; put 'proc append base=&ctl_ds data=&trans;'; put 'run;'; put '%end;'; put '/* if record does exist, perform lock attempts */'; put '%else %do x=1 %to &loops;'; put 'data _null_;'; put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''LOCKED'''; put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '/**'; put '* NOTE - occasionally SQL server will return an err code (deadlocked'; put '* transaction). If so, ignore it, keep calm, and carry on..'; put '*/'; put '%if &syscc>0 %then %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; put 'putlog "Resetting err conditions and re-attempting.";'; put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%let syscc=0;'; put '%let sqlrc=0;'; put '%end;'; put '/* now check if the record was successfully updated */'; put '%local success_check;'; put 'proc sql noprint;'; put 'select count(*) into: success_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; put 'quit;'; put '%if &success_check=0 %then %do;'; put '%if &x < &loops %then %do;'; put '/* pause before next check */'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; put 'putlog "%sysfunc(sleep(&loop_secs)) seconds.. ";'; put 'putlog "NOTE- (iteration &x of &loops)";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%end;'; put '%else %do;'; put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; put 'Please ask your administrator to investigate!;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%else %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%if &syscc>0 %then %do;'; put '%put setting syscc(&syscc) back to 0;'; put '%let syscc=0;'; put '%end;'; put '%let x=&loops; /* no more iterations needed */'; put '%end;'; put '%end;'; put '%end;'; put '%else %if &ACTION=UNLOCK %then %do;'; put '%local status cnt;'; put '%let cnt=0;'; put 'proc sql noprint;'; put 'select count(*) into: cnt from &ctl_ds where LOCK_LIB ="&lib" & LOCK_DS="&ds";'; put '%if &cnt=0 %then %do;'; put '%put %str(WAR)NING: &lib..&ds was not previously locked in &ctl_ds!;'; put '%end;'; put '%else %do;'; put 'select LOCK_STATUS_CD into: status from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &status=LOCKED %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''UNLOCKED'''; put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%end;'; put '%else %if &status=UNLOCKED %then %do;'; put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; put '%end;'; put '%else %do;'; put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%end;'; put '%else %do;'; put '%let msg=lock_anytable given unsupported action (&action);'; put '%let abortme=1;'; put '%end;'; put '/* catch errs - mp_abort must be called outside of a logic block */'; put '%mp_abort(iftrue=(&abortme=1),'; put 'msg=%superq(msg),'; put 'mac=&sysmacroname'; put ')'; put '%exit_macro:'; put 'data _null_;'; put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; put 'run;'; put '%mend mp_lockanytable;'; put '%macro bitemporal_closeouts('; put 'tech_from=tx_from_dttm'; put ',tech_to = tx_to_dttm /* Technical TO datetime variable.'; put 'Req''d on BASE table only. */'; put ',base_lib=WORK /* Libref of the BASE table. */'; put ',base_dsn=BASETABLE /* Name of BASE table. */'; put ',append_lib=WORK /* Libref of the STAGING table. */'; put ',append_dsn=APPENDTABLE /* Name of STAGING table. */'; put ',PK= name sex /* Business key, space separated. */'; put '/* Should INCLUDE BUS_FROM field if relevant. */'; put ',NOW=DEFINE'; put ',FILTER= /* supply a filter to limit the update */'; put ',outdest= /* supply an unquoted filepath/filename.ext to get'; put 'a text file containing the update statements */'; put ',loadtype='; put ',loadtarget=YES /* if <> YES will return without changing anything */'; put ');'; put '%put ENTERING &sysmacroname;'; put '%local x var start;'; put '%let start=%sysfunc(datetime());'; put '%dc_assignlib(WRITE,&base_lib)'; put '%dc_assignlib(WRITE,&append_lib)'; put '%if &now=DEFINE %then %let now=&dc_dttmtfmt.;'; put '%put &=now;'; put '/**'; put '* perform basic checks'; put '*/'; put '/* do tables exist? */'; put '%if not %sysfunc(exist(&base_lib..&base_dsn)) %then %do;'; put '%mp_abort(msg=&base_lib..&base_dsn does not exist)'; put '%end;'; put '%else %if %sysfunc(exist(&append_lib..&append_dsn))=0'; put 'and %sysfunc(exist(&append_lib..&append_dsn,VIEW))=0 %then %do;'; put '%mp_abort(msg=&append_lib..&append_dsn does not exist)'; put '%end;'; put '/* do TX columns exist? */'; put '%if &loadtype ne UPDATE %then %do;'; put '%if not %mf_existvar(&base_lib..&base_dsn,&tech_from) %then %do;'; put '%mp_abort(msg=&tech_from does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%else %if not %mf_existvar(&base_lib..&base_dsn,&tech_to) %then %do;'; put '%mp_abort(msg=&tech_to does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%end;'; put '/* do PK columns exist? */'; put '%do x=1 %to %sysfunc(countw(&PK));'; put '%let var=%scan(&pk,&x,%str( ));'; put '%if not %mf_existvar(&base_lib..&base_dsn,&var) %then %do;'; put '%mp_abort(msg=&var does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%else %if not %mf_existvar(&append_lib..&append_dsn,&var) %then %do;'; put '%mp_abort(msg=&var does not exist on &append_lib..&append_dsn)'; put '%end;'; put '%end;'; put '/* check uniqueness */'; put 'proc sort data=&append_lib..&append_dsn'; put 'out=___closeout1 noduprecs dupout=___closeout1a;'; put 'by &pk;'; put 'run;'; put '%if %mf_getattrn(___closeout1a,NLOBS)>0 %then'; put '%put NOTE: dups on (&PK) in (&append_lib..&append_dsn);'; put '/* is &NOW value within a tolerance? Should not allow renegade closeouts.. */'; put '%local gap;'; put '%let gap=0;'; put 'data _null_;'; put 'now=&now;'; put 'gap=intck(''HOURS'',now,datetime());'; put 'call symputx(''gap'',gap,''l'');'; put 'run;'; put '%mf_abort('; put 'iftrue=(&gap > 24),'; put 'msg=NOW variable (&now) is not within a 24hr tolerance'; put ')'; put '/* have any warnings / errs occurred thus far? If so, abort */'; put '%mf_abort('; put 'iftrue=(&syscc>0),'; put 'msg=Aborted due to SYSCC=&SYSCC status'; put ')'; put '/**'; put '* Create closeout statements. These are sent as individual SQL statements'; put '* to ensure pass-through utilisation. The update_cnt variable monitors'; put '* how many records were actually updated on the target table.'; put '*/'; put '%local update_cnt;'; put '%let update_cnt=0;'; put 'filename tmp temp;'; put 'data _null_;'; put 'set ___closeout1;'; put 'file tmp;'; put 'if _n_=1 then put ''proc sql noprint;'' ;'; put 'length string $32767.;'; put '%if &loadtype=UPDATE %then %do;'; put 'put "delete from &base_lib..&base_dsn where 1";'; put '%end;'; put '%else %do;'; put 'now=symget(''now'');'; put 'put "update &base_lib..&base_dsn set &tech_to= " now @;'; put '%if %mf_existvar(&base_lib..&base_dsn,PROCESSED_DTTM) %then %do;'; put 'put " ,PROCESSED_DTTM=" now @;'; put '%end;'; put 'put " where " now " lt &tech_to ";'; put '%end;'; put '%do x=1 %to %sysfunc(countw(&PK));'; put '%let var=%scan(&pk,&x,%str( ));'; put '%if %mf_getvartype(&base_lib..&base_dsn,&var)=C %then %do;'; put '/* use single quotes to avoid ampersand resolution in data */'; put 'string=" & &var=''"!!trim(prxchange("s/''/''''/",-1,&var))!!"''";'; put '%end;'; put '%else %do;'; put 'string=cats(" & &var=",&var);'; put '%end;'; put 'put string;'; put '%end;'; put 'put "&filter ;";'; put 'put ''%let update_cnt=%eval(&update_cnt+&sqlobs);%put update_cnt=&update_cnt;'';'; put 'run;'; put 'data _null_;'; put 'infile tmp;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%if &loadtarget ne YES %then %return;'; put '/* ensure we have a lock */'; put '%mp_lockanytable(LOCK,'; put 'lib=&base_lib,ds=&base_dsn'; put ',ref=bitemporal_closeouts'; put ',ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'options source2;'; put '%inc tmp;'; put 'filename tmp clear;'; put '/**'; put '* Update audit tracker'; put '*/'; put '%local newobs; %let newobs=%mf_getattrn(work.___closeout1,NLOBS);'; put '%local user; %let user=%mf_getuser();'; put 'proc sql;'; put 'insert into &mpelib..mpe_dataloads'; put 'set libref=%upcase("&base_lib")'; put ',DSN=%upcase("&base_dsn")'; put ',ETLSOURCE="&append_lib..&append_dsn contained &newobs records"'; put ',LOADTYPE="CLOSEOUT"'; put ',DELETED_RECORDS=&update_cnt'; put ',NEW_RECORDS=0'; put ',DURATION=%sysfunc(datetime())-&start'; put ',USER_NM="&user"'; put ',PROCESSED_DTTM=&now;'; put 'quit;'; put '%mend bitemporal_closeouts;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '/** @cond */'; put '%macro mf_getengine(libref'; put ')/*/STORE SOURCE*/;'; put '%local dsid engnum rc engine;'; put '/* in case the parameter is a libref.tablename, pull off just the libref */'; put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; put '%let dsid=%sysfunc('; put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; put ');'; put '%if (&dsid ^= 0) %then %do;'; put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; put '%let rc=%sysfunc(fetch(&dsid));'; put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; put '%put &libref. ENGINE is &engine.;'; put '%let rc= %sysfunc(close(&dsid));'; put '%end;'; put '%upcase(&engine)'; put '%mend mf_getengine;'; put '/** @endcond */'; put '%macro mf_getschema(libref'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum rc schema;'; put '/* in case the parameter is a libref.tablename, pull off just the libref */'; put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; put '%let dsid=%sysfunc(open(sashelp.vlibnam(where=('; put 'libname="%upcase(&libref)" and sysname=''Schema/Owner'''; put ')),i));'; put '%if (&dsid ^= 0) %then %do;'; put '%let vnum=%sysfunc(varnum(&dsid,SYSVALUE));'; put '%let rc=%sysfunc(fetch(&dsid));'; put '%let schema=%sysfunc(getvarc(&dsid,&vnum));'; put '%put &libref. schema is &schema.;'; put '%let rc= %sysfunc(close(&dsid));'; put '%end;'; put '&schema'; put '%mend mf_getschema;'; put '/** @endcond */'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mf_wordsInStr1ButNotStr2('; put 'Str1= /* string containing words to extract */'; put ',Str2= /* used to compare with the extract string */'; put ')/*/STORE SOURCE*/;'; put '%local count_base count_extr i i2 extr_word base_word match outvar;'; put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; put '%put base string (str1)= &str1;'; put '%put compare string (str2) = &str2;'; put '%return;'; put '%end;'; put '%let count_base=%sysfunc(countw(&Str2));'; put '%let count_extr=%sysfunc(countw(&Str1));'; put '%do i=1 %to &count_extr;'; put '%let extr_word=%scan(&Str1,&i,%str( ));'; put '%let match=0;'; put '%do i2=1 %to &count_base;'; put '%let base_word=%scan(&Str2,&i2,%str( ));'; put '%if &extr_word=&base_word %then %let match=1;'; put '%end;'; put '%if &match=0 %then %let outvar=&outvar &extr_word;'; put '%end;'; put '&outvar'; put '%mend mf_wordsInStr1ButNotStr2;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro mf_getquotedstr(IN_STR'; put ',DLM=%str(,)'; put ',QUOTE=S'; put ',indlm=%str( )'; put ')/*/STORE SOURCE*/;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; put '%else %if "e=N %then %let quote=;'; put '%local i item buffer;'; put '%let i=1;'; put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; put '%else %let item=%qtrim(&item);'; put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; put '%else %let buffer =&buffer&DLM%qtrim(&item);'; put '%let i = %eval(&i+1);'; put '%end;'; put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; put '&buffer'; put '%mend mf_getquotedstr;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '%macro mp_retainedkey('; put 'base_lib=WORK'; put ',base_dsn=BASETABLE'; put ',append_lib=WORK'; put ',append_dsn=APPENDTABLE'; put ',retained_key=DEFAULT_RK'; put ',business_key= PK1 PK2'; put ',check_uniqueness=NO'; put ',maxkeytable=0'; put ',locktable=0'; put ',outds=WORK.APPEND'; put ',filter_str='; put ');'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%local base_libds app_libds key_field check maxkey idx_pk newkey_cnt iserr'; put 'msg x tempds1 tempds2 comma_pk appnobs checknobs dropvar tempvar idx_val;'; put '%let base_libds=%upcase(&base_lib..&base_dsn);'; put '%let app_libds=%upcase(&append_lib..&append_dsn);'; put '%let tempds1=%mf_getuniquename();'; put '%let tempds2=%mf_getuniquename();'; put '%let comma_pk=%mf_getquotedstr(in_str=%str(&business_key),dlm=%str(,),quote=);'; put '%let outds=%sysfunc(ifc(%index(&outds,.)=0,work.&outds,&outds));'; put '/* validation checks */'; put '%let iserr=0;'; put '%if &syscc>0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(SYSCC=&syscc on macro entry);'; put '%end;'; put '%else %if %sysfunc(exist(&base_libds))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Base LIBDS (&base_libds) expected but NOT FOUND);'; put '%end;'; put '%else %if %sysfunc(exist(&app_libds))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Append LIBDS (&app_libds) expected but NOT FOUND);'; put '%end;'; put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&maxkeytable))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Maxkeytable (&maxkeytable) expected but NOT FOUND);'; put '%end;'; put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&locktable))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Locktable (&locktable) expected but NOT FOUND);'; put '%end;'; put '%else %if %length(&business_key)=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Business key (&business_key) expected but NOT FOUND);'; put '%end;'; put '%do x=1 %to %sysfunc(countw(&business_key));'; put '/* check business key values exist */'; put '%let key_field=%scan(&business_key,&x,%str( ));'; put '%if not %mf_existvar(&app_libds,&key_field) %then %do;'; put '%let iserr=1;'; put '%let msg=Business key (&key_field) not found on &app_libds!;'; put '%goto err;'; put '%end;'; put '%else %if not %mf_existvar(&base_libds,&key_field) %then %do;'; put '%let iserr=1;'; put '%let msg=Business key (&key_field) not found on &base_libds!;'; put '%goto err;'; put '%end;'; put '%end;'; put '%err:'; put '%if &iserr=1 %then %do;'; put '/* err case so first perform an unlock of the base table before exiting */'; put '%mp_lockanytable('; put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; put ')'; put '%end;'; put '%mp_abort(iftrue=(&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; put 'proc sql noprint;'; put 'select sum(max(&retained_key),0) into: maxkey from &base_libds;'; put '/**'; put '* get base table RK and bus field values for lookup'; put '*/'; put 'proc sql noprint;'; put 'create table &tempds1 as'; put 'select distinct &comma_pk,&retained_key'; put 'from &base_libds &filter_str'; put 'order by &comma_pk,&retained_key;'; put '%if &check_uniqueness=YES %then %do;'; put 'select count(*) into:checknobs'; put 'from (select distinct &comma_pk from &app_libds);'; put 'select count(*) into: appnobs from &app_libds; /* might be view */'; put '%if &checknobs ne &appnobs %then %do;'; put '%let msg=Source table &app_libds is not unique on (&business_key);'; put '%let iserr=1;'; put '%end;'; put '%end;'; put '%if &iserr=1 %then %do;'; put '/* err case so first perform an unlock of the base table before exiting */'; put '%mp_lockanytable('; put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; put ')'; put '%end;'; put '%mp_abort(iftrue= (&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; put '%if %mf_existvar(&app_libds,&retained_key)'; put '%then %let dropvar=(drop=&retained_key);'; put '/* prepare interim table with retained key populated for matching keys */'; put 'proc sql noprint;'; put 'create table &tempds2 as'; put 'select b.&retained_key, a.*'; put 'from &app_libds &dropvar a'; put 'left join &tempds1 b'; put 'on 1'; put '%do idx_pk=1 %to %sysfunc(countw(&business_key));'; put '%let idx_val=%scan(&business_key,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'order by &retained_key;'; put '/* identify the number of entries without retained keys (new records) */'; put 'select count(*) into: newkey_cnt'; put 'from &tempds2'; put 'where missing(&retained_key);'; put 'quit;'; put '/**'; put '* Update maxkey table if link provided'; put '*/'; put '%if &maxkeytable ne 0 %then %do;'; put 'proc sql noprint;'; put 'select count(*) into: check from &maxkeytable'; put 'where upcase(keytable)="&base_libds";'; put '%mp_lockanytable(LOCK'; put ',lib=%scan(&maxkeytable,1,.)'; put ',ds=%scan(&maxkeytable,2,.)'; put ',ref=Updating maxkeyvalues with mp_retainedkey'; put ',ctl_ds=&locktable'; put ')'; put 'proc sql;'; put '%if &check=0 %then %do;'; put 'insert into &maxkeytable'; put 'set keytable="&base_libds"'; put ',keycolumn="&retained_key"'; put ',max_key=%eval(&maxkey+&newkey_cnt)'; put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put '%end;'; put '%else %do;'; put 'update &maxkeytable'; put 'set max_key=%eval(&maxkey+&newkey_cnt)'; put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put 'where keytable="&base_libds";'; put '%end;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&maxkeytable,1,.)'; put ',ds=%scan(&maxkeytable,2,.)'; put ',ref=Updating maxkeyvalues with maxkey=%eval(&maxkey+&newkey_cnt)'; put ',ctl_ds=&locktable'; put ')'; put '%end;'; put '/* fill in the missing retained key values */'; put '%let tempvar=%mf_getuniquename();'; put 'data &outds(drop=&tempvar);'; put 'retain &tempvar %eval(&maxkey+1);'; put 'set &tempds2;'; put 'if &retained_key =. then &retained_key=&tempvar;'; put '&tempvar=&tempvar+1;'; put 'run;'; put '%mend mp_retainedkey;'; put '/** @cond */'; put '%macro mp_storediffs(libds'; put ',origds'; put ',key'; put ',delds=0'; put ',appds=0'; put ',modds=0'; put ',outds=work.mp_storediffs'; put ',loadref=0'; put ',processed_dttm=0'; put ',mdebug=0'; put ')/*/STORE SOURCE*/;'; put '%local dbg;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%end;'; put '%else %let dbg=*;'; put '/* set up unique and temporary vars */'; put '%local ds1 ds2 ds3 ds4 hashkey inds_auto inds_keep dslist vlist;'; put '%let ds1=%upcase(work.%mf_getuniquename(prefix=mpsd_ds1));'; put '%let ds2=%upcase(work.%mf_getuniquename(prefix=mpsd_ds2));'; put '%let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_ds3));'; put '%let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_ds4));'; put '%let hashkey=%upcase(%mf_getuniquename(prefix=mpsd_hashkey));'; put '%let inds_auto=%upcase(%mf_getuniquename(prefix=mpsd_inds_auto));'; put '%let inds_keep=%upcase(%mf_getuniquename(prefix=mpsd_inds_keep));'; put '%let dslist=&origds;'; put '%if &delds ne 0 %then %do;'; put '%let delds=%upcase(&delds);'; put '%if %scan(&delds,-1,.)=&delds %then %let delds=WORK.&delds;'; put '%let dslist=&dslist &delds;'; put '%end;'; put '%if &appds ne 0 %then %do;'; put '%let appds=%upcase(&appds);'; put '%if %scan(&appds,-1,.)=&appds %then %let appds=WORK.&appds;'; put '%let dslist=&dslist &appds;'; put '%end;'; put '%if &modds ne 0 %then %do;'; put '%let modds=%upcase(&modds);'; put '%if %scan(&modds,-1,.)=&modds %then %let modds=WORK.&modds;'; put '%let dslist=&dslist &modds;'; put '%end;'; put '%let origds=%upcase(&origds);'; put '%if %scan(&origds,-1,.)=&origds %then %let origds=WORK.&origds;'; put '%let key=%upcase(&key);'; put '/* hash the key and append all the tables (marking the source) */'; put 'data &ds1;'; put 'set &dslist indsname=&inds_auto;'; put '&hashkey=put(md5(catx(''|'',%mf_getquotedstr(&key,quote=N))),$hex32.);'; put '&inds_keep=upcase(&inds_auto);'; put 'proc sort;'; put 'by &inds_keep &hashkey;'; put 'run;'; put '/* transpose numeric & char vars */'; put 'proc transpose data=&ds1'; put 'out=&ds2(rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_num));'; put 'by &inds_keep &hashkey;'; put 'var _numeric_;'; put 'run;'; put 'proc transpose data=&ds1'; put 'out=&ds3('; put 'rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_char)'; put 'where=(tgtvar_nm not in ("&hashkey","&inds_keep"))'; put ');'; put 'by &inds_keep &hashkey;'; put 'var _character_;'; put 'run;'; put '%if %index(&libds,-)>0 and %scan(&libds,2,-)=FC %then %do;'; put '/* this is a format catalog - cannot query cols directly */'; put '%let vlist="TYPE","FMTNAME","FMTROW","START","END","LABEL","MIN","MAX"'; put ',"DEFAULT","LENGTH","FUZZ","PREFIX","MULT","FILL","NOEDIT","SEXCL"'; put ',"EEXCL","HLO","DECSEP","DIG3SEP","DATATYPE","LANGUAGE";'; put '%end;'; put '%else %let vlist=%mf_getvarlist(&libds,dlm=%str(,),quote=DOUBLE);'; put 'data &ds4;'; put 'length &inds_keep $41 tgtvar_nm $32 _label_ $256;'; put 'if _n_=1 then call missing(_label_);'; put 'drop _label_;'; put 'set &ds2 &ds3 indsname=&inds_auto;'; put 'tgtvar_nm=upcase(tgtvar_nm);'; put 'if tgtvar_nm in (%upcase(&vlist));'; put 'if upcase(&inds_auto)="&ds2" then tgtvar_type=''N'';'; put 'else if upcase(&inds_auto)="&ds3" then tgtvar_type=''C'';'; put 'else do;'; put 'putlog ''ERR'' +(-1) "OR: unidentified vartype input!" &inds_auto;'; put 'call symputx(''syscc'',98);'; put 'end;'; put 'if &inds_keep="&appds" then move_type=''A'';'; put 'else if &inds_keep="&delds" then move_type=''D'';'; put 'else if &inds_keep="&modds" then move_type=''M'';'; put 'else if &inds_keep="&origds" then move_type=''O'';'; put 'else do;'; put 'putlog ''ERR'' +(-1) "OR: unidentified movetype input!" &inds_keep;'; put 'call symputx(''syscc'',99);'; put 'end;'; put 'tgtvar_nm=upcase(tgtvar_nm);'; put 'if tgtvar_nm in (%mf_getquotedstr(&key)) then is_pk=1;'; put 'else is_pk=0;'; put 'drop &inds_keep;'; put 'run;'; put '%if "&loadref"="0" %then %let loadref=%sysfunc(uuidgen());'; put '%if &processed_dttm=0 %then %let processed_dttm=%sysfunc(datetime(),8.6);'; put '%let libds=%upcase(&libds);'; put '/* join orig vals for modified & deleted */'; put 'proc sql;'; put 'create table &outds as'; put 'select "&loadref" as load_ref length=36'; put ',&processed_dttm as processed_dttm format=E8601DT26.6'; put ',"%scan(&libds,1,.)" as libref length=8'; put ',"%scan(&libds,2,.)" as dsn length=32'; put ',b.key_hash length=32'; put ',b.move_type length=1'; put ',b.tgtvar_nm length=32'; put ',b.is_pk'; put ',case when b.move_type ne ''M'' then -1'; put 'when a.newval_num=b.newval_num and a.newval_char=b.newval_char then 0'; put 'else 1'; put 'end as is_diff'; put ',b.tgtvar_type length=1'; put ',case when b.move_type=''D'' then b.newval_num'; put 'else a.newval_num'; put 'end as oldval_num format=best32.'; put ',case when b.move_type=''D'' then .'; put 'else b.newval_num'; put 'end as newval_num format=best32.'; put ',case when b.move_type=''D'' then b.newval_char'; put 'else a.newval_char'; put 'end as oldval_char length=32765'; put ',case when b.move_type=''D'' then '''''; put 'else b.newval_char'; put 'end as newval_char length=32765'; put 'from &ds4(where=(move_type=''O'')) as a'; put 'right join &ds4(where=(move_type ne ''O'')) as b'; put 'on a.tgtvar_nm=b.tgtvar_nm'; put 'and a.key_hash=b.key_hash'; put 'order by move_type, key_hash,is_pk desc, tgtvar_nm;'; put '%if &mdebug=0 %then %do;'; put 'proc sql;'; put 'drop table &ds1, &ds2, &ds3, &ds4;'; put '%end;'; put '%mend mp_storediffs;'; put '/** @endcond */'; put '%macro bitemporal_dataloader('; put 'bus_from= /* Business FROM datetime variable. Req''d on'; put 'STAGING & BASE tables.*/'; put ',bus_to = /* Business TO datetime variable. Req''d on'; put 'STAGING & BASE tables. */'; put ',bus_from_override= /* Provide a hard coded BUS_FROM datetime value.*/'; put ',bus_to_override= /* provide a hard coded BUS_TO datetime value */'; put ',tech_from= /* Technical FROM datetime variable. Req''d on'; put 'BASE table only. */'; put ',tech_to = /* Technical TO datetime variable. Req''d on BASE'; put 'table only. */'; put ',processed= 0'; put ',base_lib=WORK /* Libref of the BASE table. */'; put ',base_dsn=BASETABLE /* Name of BASE table. */'; put ',append_lib=WORK /* Libref of the STAGING table. */'; put ',append_dsn=APPENDTABLE'; put ',high_date=''01JAN5999:00:00:00''dt /* High date to close out records */'; put ',PK= name sex'; put ',RK_UNDERLYING='; put ',KEEPVARS= /* Provides option for removing unwanted vars from append table */'; put ',RK_UPDATE_MAXKEYTABLE=NO /* If switching (or mix matching) with regular'; put 'SCD2 loader then set this switch to YES to'; put 'ensure the MAXKEYTABLE is updated with the'; put 'current maximum RK value for the target table'; put '*/'; put ',CHECK_UNIQUENESS=YES /* Perform a check of the APPEND table to ensure it is'; put 'unique on its business key */'; put ',ETLSOURCE=demo /* supply a value ($50.) to show as ETLSOURCE in'; put '&dclib..DATALOADS */'; put ',LOADTYPE=BITEMPORAL'; put ',RK_MAXKEYTABLE= mpe_maxkeyvalues'; put ',LOG=1 /* Switch to 0 to prevent records being added to'; put '&mpelib..mpe_DATALOADS (ie when testing)*/'; put ',DELETE_COL= _____DELETE__THIS__RECORD_____'; put '/* If this variable is found in the append dataset'; put 'then records are closed out (or deleted) in the'; put 'append table where that variable= "Yes" */'; put ',LOADTARGET=YES /* set to anything but uppercase YES to switch off'; put 'target table load and generate temp tables only */'; put ',CLOSE_VARS='; put '/*a problem with regular SCD2 or TXTEMPORAL loads is that there is'; put 'no facility to close out removed records (all records are'; put 'assumed new or changed). But how does one determine which'; put 'records are removed? Short of loading the entire table'; put 'each time? This parameter allows a set of variables'; put '(this should be a subset of the PK) to be declared, and'; put 'the macro will determine which records in the base table'; put 'need to be closed out ahead of the load.'; put 'For instance, given the following:'; put 'Base Table Staging Table'; put 'DATE ENTITY AMOUNT DATE ENTITY AMOUNT'; put 'JAN ACME4 66 JAN ACME4 66'; put 'FEB ACME4 99 FEB ACME4 99'; put 'FEB ACME1 22'; put 'By supplying DATE in CLOSE_VARS and DATE ENTITY as the PK,'; put 'the "FEB PAG 22" record would get closed out.'; put '*/'; put ',config_table=&dclib..MPE_CONFIG'; put ',dclib=&dc_libref'; put ',outds_del=work.outds_del'; put ',outds_add=work.outds_add'; put ',outds_mod=work.outds_mod'; put ',outds_audit=0'; put ');'; put '/* when changing this macro, update the version num here */'; put '%local ver;'; put '%let ver=32;'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%dc_assignlib(WRITE,&base_lib) /* may not already be assigned */'; put '/* return straight away if nothing to load */'; put '%let nobs= %mf_getattrn(&append_lib..&append_dsn,NLOBS);'; put '%if &nobs=-1 %then %do;'; put 'proc sql noprint; select count(*) into: nobs from &append_lib..&append_dsn;'; put '%end;'; put '%if &nobs=0 %then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- Base dataset &append_lib..&append_dsn is empty. Nothing to upload!;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%return;'; put '%end;'; put '/* hard exit if err condition exists */'; put '%mp_abort(iftrue= (&syscc > 0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status;)'; put ')'; put '%local engine_type;'; put '%let engine_type=%mf_getengine(&base_lib);'; put '%if (&engine_type=REDSHIFT or &engine_type=POSTGRES) and %length(&CLOSE_VARS)>0'; put '%then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- CLOSE_VARS functionality not yet supported in &engine_type;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%return;'; put '%end;'; put '/**'; put '* The metadata functions (eg mf_existvar) will fail if the base table has a'; put '* SAS lock. So, make a snapshot of the base table for further use.'; put '* Also, make output tables (regardless).'; put '*/'; put '%local basecopy;'; put '%let basecopy=%mf_getuniquename(prefix=basecopy);'; put 'data &basecopy &outds_mod &outds_add &outds_del;'; put 'set &base_lib..&base_dsn;'; put 'stop;'; put 'run;'; put '%mp_abort(iftrue= (&syscc > 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after base table copy - aborting due to table lock)'; put ')'; put '%local cols idx_pk md5_col ;'; put '%let md5_col=___TMP___md5;'; put '%let check_uniqueness=%upcase(&check_uniqueness);'; put '%let RK_UPDATE_MAXKEYTABLE=%upcase(&RK_UPDATE_MAXKEYTABLE);'; put '%let high_date=%unquote(&high_date);'; put '%let loadtype=%upcase(&loadtype);'; put '/* ensure irrelevant variables are cleared */'; put '%if &loadtype=BUSTEMPORAL %then %do;'; put '%let tech_from=;'; put '%let tech_to=;'; put '%end;'; put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; put '%let bus_from=;'; put '%let bus_to=;'; put '%end;'; put '/* ensure relevant variables are supplied */'; put '%mp_abort(iftrue=(&loadtype=BITEMPORAL & %mf_verifymacvars(bus_from bus_to)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing BUS_FROM / BUS_TO)'; put ')'; put '%mp_abort(iftrue=(&loadtype=TXTEMPORAL & %mf_verifymacvars(tech_from tech_to)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing TECH_FROM / TECH_TO)'; put ')'; put '/**'; put '* drop any tables (may be defined as views or vice versa preventing overwrite)'; put '*/'; put '%mp_dropmembers(append bitemp0_append bitemp_cols)'; put '/* SQL Server requires its own time values */'; put '/* 9.2 will only give picture format down to seconds. 9.3 allows'; put 'milliseconds by using lower S and defining the decimal in the format name..*/'; put 'PROC FORMAT;'; put 'picture MyMSdt other=''%0Y-%0m-%0dT%0H:%0M:%0S'' (datatype=datetime);'; put 'RUN;'; put '%local dbnow;'; put '%let dbnow="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'data _null_;'; put '/* convert space separated macvar to comma separated for SQL processing */'; put 'call symputx(''PK_COMMA'',tranwrd(compbl("&pk"),'' '','',''),''L'');'; put 'call symputx(''PK_CNT'',countw("&pk",'' ''),''L'');'; put 'now=&dbnow;'; put 'call symputx(''NOW'',now,''L'');'; put 'call symputx(''SQLNOW'',cats("''",put(now,MyMSdt.),"''"),''L'');'; put 'length etlsource $100;'; put 'etlsource=subpad(symget(''etlsource''),1,100);'; put 'call symputx(''etlsource'',etlsource,''l'');'; put 'run;'; put '/**'; put '* Even if no PROCESSED var provided, assume that any variable named'; put '* PROCESSED_DTTM should be updated'; put '*/'; put '%if &processed=0 %then %do;'; put '%if %mf_existvar(&basecopy,PROCESSED_DTTM)'; put '%then %let processed=PROCESSED_DTTM;'; put '%else %let processed=;'; put '%end;'; put '/* extract colnames for md5 creation / change tracking */'; put 'proc contents noprint data=&base_lib..&base_dsn'; put 'out=work.bitemp_cols (keep=name type length varnum format:);'; put 'run;'; put 'proc sql noprint;'; put 'select name into: cols separated by '','''; put 'from work.bitemp_cols'; put 'where upcase(name) not in'; put '(%upcase("&bus_from","&bus_to"'; put ',"&tech_from","&tech_to"'; put ',"&processed","&delete_col")) ;'; put 'select case when type in (2,6) then cats(''put(md5(trim('',name,'')),$hex32.)'')'; put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; put '/* but ONLY if not missing, else will lose any special missing values */'; put 'else cats(''put(md5(trim(put(ifn(missing('''; put ',name,''),'',name,'','',name,''*1),binary64.))),$hex32.)'') end'; put 'into: stripcols separated by ''||'''; put 'from work.bitemp_cols'; put 'where upcase(name) not in'; put '(%upcase("&bus_from","&bus_to"'; put ',"&tech_from","&tech_to"'; put ',"&processed","&delete_col")) ;'; put '/* set default formats*/'; put '%let bus_from_fmt = datetime19.;'; put '%let bus_to_fmt = datetime19.;'; put '%let processed_fmt = datetime19.;'; put '%let tech_from_fmt = format=datetime19.;'; put '%let tech_to_fmt = format=datetime19.;'; put '%put &=stripcols;'; put '%put &=pk;'; put 'data _null_;'; put 'set work.bitemp_cols;'; put 'if type=2 or type=6 then do;'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'if format='''' then fmt=cats(length,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put 'if upcase(name)="%upcase(&bus_from)" then'; put 'call symputx(''bus_from_fmt'',fmt,''L'');'; put 'else if upcase(name)="%upcase(&bus_to)" then'; put 'call symputx(''bus_to_fmt'',fmt,''L'');'; put 'else if upcase(name)="%upcase(&tech_from)" then'; put 'call symputx(''tech_from_fmt'',"format="!!fmt,''L'');'; put 'else if upcase(name)="%upcase(&tech_to)" then'; put 'call symputx(''tech_to_fmt'',"format="!!fmt,''L'');'; put 'else if upcase(name)="%upcase(&processed)" then'; put 'call symputx(''processed_fmt'',fmt,''L'');'; put 'run;'; put '%if %index(%quote(&cols),___TMP___) %then %do;'; put '%let msg=%str(Table contains a variable name containing "___TMP___".%trim('; put ') This may conflict with temp variable generation!!);'; put '%mp_abort(msg=&msg,mac=bitemporal_dataloader);'; put '%let syscc=5;'; put '%return;'; put '%end;'; put '/* if transaction dates appear on the APPEND table, need to remove them */'; put '%local drop_tx_dates /* used in append table */'; put 'drop_tx_dates_noobs /* used to take the base table structure */;'; put '%if %mf_existvar(&append_lib..&append_dsn, &tech_from)'; put '%then %let drop_tx_dates=&tech_from;'; put '%if %mf_existvar(&append_lib..&append_dsn, &tech_to)'; put '%then %let drop_tx_dates=&drop_tx_dates &tech_to;'; put '%if %length(%trim(&drop_tx_dates))>0'; put '%then %let drop_tx_dates=(drop=&drop_tx_dates);'; put '%if %mf_existvar(&basecopy, &tech_from)'; put '%then %let drop_tx_dates_noobs=&tech_from;'; put '%if %mf_existvar(&basecopy, &tech_to)'; put '%then %let drop_tx_dates_noobs=&drop_tx_dates_noobs &tech_to;'; put '%if %length(%trim(&drop_tx_dates_noobs))>0'; put '%then %let drop_tx_dates_noobs=(drop=&drop_tx_dates_noobs obs=0);'; put '%else %let drop_tx_dates_noobs=(obs=0);'; put '/**'; put '* Lock the table. This is necessary as we are doing a two part update (first'; put '* closing records then appending new records). It is theoretically possible'; put '* that an upload may occur whilst preparing the staging tables. And the'; put '* staging tables are about to be prepared..'; put '*/'; put '%if &LOADTARGET = YES %then %do;'; put '%put locking &base_lib..&base_dsn;'; put '%mp_lockanytable(LOCK,'; put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%if "&outds_audit" ne "0" %then %do;'; put '%put locking &outds_audit;'; put '%mp_lockanytable(LOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%else %do;'; put '/* not an actual load, so avoid updating the max key table in next step. */'; put '%let rk_update_maxkeytable=NO;'; put '%end;'; put '%if %length(&RK_UNDERLYING)>0 %then %do;'; put '%mp_retainedkey('; put 'base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=&append_lib'; put ',append_dsn=&append_dsn'; put ',retained_key=&pk'; put ',business_key=&rk_underlying'; put ',check_uniqueness=&CHECK_UNIQUENESS'; put ',outds=work.append'; put '%if &rk_update_maxkeytable=NO %then %do;'; put ',maxkeytable=0'; put '%end;'; put '%else %do;'; put ',maxkeytable=&dclib..&RK_MAXKEYTABLE'; put '%end;'; put ',locktable=&dclib..mpe_lockanytable'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put ',filter_str=%str( (where=( &now < &tech_to)) )'; put '%end;'; put ')'; put '%end;'; put '%else %do;'; put 'proc sql;'; put 'create view work.append as select * from &append_lib..&append_dsn;'; put '%end;'; put '/**'; put '* generate md5 for append table'; put '*/'; put '/* it is possible the source dataset has additional (unwanted) columns.'; put 'Drop if specified; */'; put '%if %length(&keepvars)>0 %then %do;'; put '/* remove tech dates from keepvars as they are generated later */'; put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_from ),%str( )));'; put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_to ),%str( )));'; put '%let keepvars=(keep=&keepvars &bus_from &bus_to &processed &md5_col);'; put '%end;'; put '/* CAS varchar types cause append issues here, so perform autoconvert'; put 'by creating empty local table first */'; put 'data;'; put 'set &base_lib..&base_dsn &drop_tx_dates_noobs;'; put 'run;'; put '%local emptybasetable; %let emptybasetable=&syslast;'; put 'data work.bitemp0_append &keepvars &outds_del(drop=&md5_col )'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put '/nonote2err'; put '%end;'; put ';'; put '/* apply formats for bitemporal vars but not tx dates which are added later */'; put '%if %length(&keepvars)>0 and &loadtype=BITEMPORAL %then %do;'; put 'format &bus_from &bus_from_fmt;'; put 'format &bus_to &bus_to_fmt;'; put '%end;'; put 'set &emptybasetable /* base table reqd in case append has fewer cols */'; put 'work.append &drop_tx_dates;'; put '%if %length(%str(&bus_from_override))>0 %then %do;'; put '&bus_from= %unquote(&bus_from_override) ;'; put '%end;'; put '%if %length(%str(&bus_to_override))>0 %then %do;'; put '&bus_to= %unquote(&bus_to_override) ;'; put '%end;'; put 'length &md5_col $32;'; put '&md5_col=put(md5(&stripcols),hex32.);'; put '%if %length(&processed)>0 %then %do;'; put 'format &processed &processed_fmt;'; put '&processed=&now;'; put '%end;'; put '/**'; put '* If a delete column exists then create the delete dataset'; put '*/'; put '%if %mf_existvar(&append_lib..&append_dsn, &delete_col) %then %do;'; put 'drop &delete_col;'; put 'if upcase(&delete_col) = "YES" then output &outds_del ;'; put 'else output work.bitemp0_append ;'; put 'run;'; put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; put '%bitemporal_closeouts('; put 'tech_from=&tech_from'; put ',tech_to = &tech_to'; put ',base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=work'; put ',append_dsn=%scan(&outds_del,-1,.)'; put ',PK=&bus_from &pk'; put ',NOW=&dbnow'; put ',loadtarget=&loadtarget'; put ',loadtype=&loadtype'; put ')'; put '%end;'; put '%end;'; put '%else %do;'; put 'output work.bitemp0_append;'; put 'run;'; put '%end;'; put '%mp_abort(iftrue= (&syscc gt 0 at line 494)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%if %length(&close_vars)>0 %then %do;'; put '/**'; put '* need to close out records that are not provided'; put '*/'; put 'proc sql;'; put 'create table bitemp1_closevars1 as'; put 'select distinct a.%mf_getquotedstr(in_str=&pk,dlm=%str(,a.),quote=)'; put 'from &base_lib..&base_dsn a'; put 'inner join work.bitemp0_append b'; put 'on 1=1'; put '/* join on closevars key */'; put '%do idx_pk=1 %to %sysfunc(countw(&close_vars));'; put '%let idx_val=%scan(&close_vars,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '/* filter base on tech dates if necessary */'; put '%if &loadtype=TXTEMPORAL %then %do;'; put 'where a.&tech_from <=&now and &now < a.&tech_to'; put '%end;'; put ';'; put 'create table bitemp1_closevars2 as'; put 'select distinct a.*'; put 'from bitemp1_closevars1 a'; put 'left join work.bitemp0_append b'; put 'on 1=1'; put '/* join on primary key */'; put '%do idx_pk=1 %to %sysfunc(countw(&pk));'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '/* identify removed records by null value in a field in PK but not close_vars'; put '*/'; put 'where b.%scan('; put '%mf_wordsInStr1ButNotStr2(Str1=&pk,Str2=&close_vars),1,%str( )'; put ') IS NULL'; put ';'; put '%if %mf_getattrn(bitemp1_closevars2,NLOBS)>0 %then %do;'; put '%bitemporal_closeouts('; put 'tech_from=&tech_from'; put ',tech_to = &tech_to'; put ',base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=work'; put ',append_dsn=bitemp1_closevars2'; put ',PK=&bus_from &pk'; put ',NOW=&dbnow'; put ',loadtarget=&loadtarget'; put ',loadtype=&loadtype'; put ')'; put '%end;'; put '%end;'; put '/* return if nothing to load (was just deletes) */'; put '%if %mf_getattrn(work.bitemp0_append,NLOBS)=0 %then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- No updates - just deletes!;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%end;'; put '/**'; put '* If applying manual overrides to business dates, then the input table MUST'; put '* be unique on the PK. Check, and if not - abort.'; put '*/'; put '%local msg;'; put '%if %length(&bus_from_override.&bus_to_override)>0 or &CHECK_UNIQUENESS=YES'; put '%then %do;'; put 'proc sort data=work.bitemp0_append out=work.bitemp0_check nodupkey;'; put 'by &pk;'; put 'run;'; put '%if %mf_getattrn(work.bitemp0_check,NLOBS)'; put 'ne %mf_getattrn(work.bitemp0_append,NLOBS)'; put '%then %do;'; put '%let msg=INPUT table &append_lib..&append_dsn is not unique on PK (&pk);'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_abort(msg=&msg,mac=bitemporal_dataloader.sas);'; put '%end;'; put '%end;'; put '/**'; put '* extract from BASE table. Only want matching records, as could be very BIG.'; put '* New records are subsequently identified via left join and test for nulls.'; put '*/'; put '%local temp_table temp_table2 base_table baselib_schema;'; put '%put DCNOTE: Extracting matching observations from &base_lib..&base_dsn;'; put '%if &engine_type=OLEDB %then %do;'; put '%let temp_table=##%mf_getuniquefileref(prefix=BTMP);'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=(select * from [dbo].&base_dsn'; put 'where convert(datetime,&SQLNOW) < &tech_to );'; put '%else %let base_table=[dbo].&base_dsn;'; put 'proc sql;'; put 'create table &base_lib.."&temp_table"n as'; put 'select * from work.bitemp0_append;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'create table work.bitemp0_base as select * from connection to myAlias('; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put '/* grab schema */'; put '%let baselib_schema=%mf_getschema(&base_lib);'; put '%if &baselib_schema.X ne X %then %let baselib_schema=&baselib_schema..;'; put '/* grab redshift config */'; put '%local redcnt; %let redcnt=0;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'data _null_;'; put 'set &config_table(where=(var_scope=''DCBL_REDSH'' and var_active=1));'; put 'x+1;'; put 'call symputx(cats(''rednm'',x),var_value,''l'');'; put 'call symputx(cats(''redval'',x),var_value,''l'');'; put 'call symputx(''redcnt'',x,''l'');'; put 'run;'; put '%end;'; put '/* cannot persist temp tables so must create a temporary permanent table */'; put '%let temp_table=%mf_getuniquename(prefix=XDCTEMP);'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=(select * from &baselib_schema.&base_dsn'; put 'where timestamp &sqlnow < &tech_to );'; put '%else %let base_table=&baselib_schema.&base_dsn;'; put '/* make empty table first - must clone & drop extra cols as autoload is bad */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'exec (create table &temp_table (like &baselib_schema.&base_dsn)) by myAlias;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'exec (alter table &temp_table alter sortkey none) by myAlias;'; put '%end;'; put '%local dropcols;'; put '%let dropcols=%mf_wordsinstr1butnotstr2('; put 'str1=%upcase(%mf_getvarlist(&basecopy))'; put ',str2=%upcase(&pk)'; put ');'; put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; put '%put &=dropcols;'; put '%let idx_val=%scan(&dropcols,&idx_pk);'; put 'exec(alter table &temp_table drop column &idx_val;) by myAlias;'; put '%end;'; put 'exec (alter table &temp_table add column &md5_col varchar(32);) by myAlias;'; put '/* create view to strip formats and avoid warns in log */'; put 'data work.vw_bitemp0/view=work.vw_bitemp0;'; put 'set work.bitemp0_append(keep=&pk &md5_col);'; put 'format _all_;'; put 'run;'; put 'proc append base=&base_lib..&temp_table'; put '%if &engine_type=REDSHIFT %then %do;'; put '('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put '%end;'; put 'data=work.vw_bitemp0 force nowarn;'; put 'run;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'create table work.bitemp0_base as select * from connection to myAlias('; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=&base_lib..&base_dsn'; put '(where=(&tech_from <=&now and &now < &tech_to));'; put '%else %let base_table=&base_lib..&base_dsn;'; put '%let temp_table=CASUSER.%mf_getuniquename(prefix=DC);'; put 'data &temp_table;'; put 'set work.bitemp0_append;'; put 'run;'; put '%let bitemp0base=CASUSER.%mf_getuniquename(prefix=DC);'; put 'proc fedsql sessref=dcsession;'; put 'create table &bitemp0base{options replace=true} as'; put '%end;'; put '%else %do;'; put '%let temp_table=work.bitemp0_append;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=&base_lib..&base_dsn'; put '(where=(&tech_from <=&now and &now < &tech_to));'; put '%else %let base_table=&base_lib..&base_dsn;'; put 'proc sql;'; put 'create table work.bitemp0_base as'; put '%end;'; put 'select a.&md5_col /* this identifies NEW records */'; put ', b.*'; put '/* assume first PK field cannot be null (if defined in a PK constraint then'; put 'it definitely cannot be null) */'; put ', case when b.%scan(&pk,1) IS NULL then 1 else 0 end as ___TMP___NEW_FLG'; put 'from &baselib_schema.&temp_table a'; put 'left join &base_table b'; put 'on 1=1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; put '%then %do;'; put '); proc sql; drop table &base_lib.."&temp_table"n;'; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put ';'; put 'quit;'; put 'data work.bitemp0_base;'; put 'set &bitemp0base;'; put 'run;'; put 'proc sql;'; put 'drop table &temp_table;'; put 'drop table &bitemp0base;'; put '%end;'; put '%else %do;'; put ';'; put '%end;'; put '/**'; put '* matching & changed records are those without NULL key values'; put '* &idx_val resolves to rightmost PK value (loop above)'; put '*/'; put '%put syscc (line525)=&syscc, sqlrc=&sqlrc;'; put '%mp_abort(iftrue= (&syscc gt 0 or &sqlrc>0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc sqlrc=&sqlrc)'; put ')'; put '%put hashcols2=&stripcols;'; put 'proc sql;'; put 'create table work.bitemp1_current(drop=___TMP___NEW_FLG) as'; put 'select *'; put ', put(md5(&stripcols),$hex32.) as &md5_col'; put 'from work.bitemp0_base (drop=&md5_col)'; put 'where ___TMP___NEW_FLG=0;'; put '/**'; put '* NEW records were identified in ___TMP___NEW_FLG in bitemp0_base'; put '*/'; put 'proc sql;'; put 'create table &outds_add'; put '(drop=&md5_col'; put '%if %mf_existvar(work.bitemp0_base, &delete_col) %then %do;'; put '&delete_col'; put '%end;'; put ')'; put 'as select a.*'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put ',&now as &tech_from &tech_from_fmt'; put ',&high_date as &tech_to &tech_to_fmt'; put '%end;'; put 'from work.bitemp0_append a /* STAGING records (mix of existing & new) */'; put ', work.bitemp0_base b /* BASE records (contains null values for new) */'; put 'where a.&md5_col=b.&md5_col /* took staging md5 across in left join */'; put 'and b.___TMP___NEW_FLG=1; /* NEW records also identified in bitemp0_base */'; put '/**'; put '* identify INSERTS. These are records with the same business key but'; put '* the bus_from and bus_to value are higher / lower (respectively)'; put '* such that the existing record needs to be SPLIT to surround the new'; put '* record.'; put '* eg: OLD RECORD from=1 to=10'; put '* NEW RECORD from=5 to=7'; put '*'; put '* APPENDED RECORDS:'; put '* - from=1 to=5'; put '* - from=5 to=7'; put '* - from=7 to=10'; put '*/'; put '/* inserts cannot happen with TXTEMPORAL */'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* IDENTIFY */'; put 'create table work.bitemp3_inserts as'; put 'select b.*'; put ',a.&bus_from as ___TMP___from'; put ',a.&bus_to as ___TMP___to'; put 'from work.bitemp0_append a'; put ',work.bitemp1_current b'; put 'where a.&bus_from > b.&bus_from'; put 'and a.&bus_to < b.&bus_to'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'order by'; put '/* compress blanks and then insert commas (as the datetime fields may'; put 'not be in use) */'; put '%sysfunc(tranwrd(%sysfunc(compbl('; put '&pk &bus_from &bus_to &processed'; put ')),%str( ), %str(,)))'; put ';'; put '/* SPLIT */'; put 'data work.bitemp3a_inserts (drop=___TMP___from ___TMP___retain ___TMP___to) ;'; put 'set work.bitemp3_inserts;'; put 'by &pk &bus_from &bus_to &processed;'; put 'if first.&idx_val then do;'; put '___TMP___retain=&bus_to;'; put '&bus_to=___TMP___from;'; put 'output;'; put '&bus_to=___TMP___retain;'; put 'end;'; put 'if last.&idx_val then do;'; put '&bus_from=___TMP___to;'; put 'output;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* TX temporal load */'; put 'data work.bitemp3a_inserts;'; put 'set work.bitemp1_current;'; put 'stop;'; put 'run;'; put '%end;'; put '/* APPEND */'; put 'proc sql;'; put 'create view work.bitemp3a_view as'; put 'select * from work.bitemp1_current'; put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; put 'data bitemp3b_newbase;'; put 'set work.bitemp3a_inserts work.bitemp3a_view;'; put 'run;'; put '/** do not use! this converts short numerics into 8 bytes'; put 'proc sql;'; put 'create table work.bitemp3b_newbase as'; put 'select * from work.bitemp3a_inserts'; put 'union corr'; put 'select * from work.bitemp1_current'; put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; put '*/'; put '/**'; put '* identify CHANGED records from staging.'; put '* Same business key with different temporal dates or md5 value'; put '* This table must be overlayed onto / into existing business history'; put '*/'; put 'proc sql;'; put 'create table work.bitemp4_updated as select distinct a.*'; put 'from work.bitemp0_append a'; put ',work.bitemp3b_newbase b'; put 'where 1=1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'and ( a.&md5_col ne b.&md5_col'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put 'OR (a.&bus_from ne b.&bus_from or a.&bus_to ne b.&bus_to)'; put '%end;'; put ')'; put ';'; put '/**'; put '* This section would have been one simple step with union all'; put '* but that converts short numerics into 8 bytes!'; put '* so, convoluted alternative to retain the same functionality.'; put '*/'; put '/* base records */'; put 'create view work.bitemp4_prep1 as'; put 'select ''BASE'' as ___TMP___'; put ',b.*'; put 'from work.bitemp4_updated a'; put ',work.bitemp3b_newbase b'; put 'where 1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put ';'; put '/* updated records */'; put 'create view work.bitemp4_prep2 as'; put 'select ''STAG'' as ___TMP___ ,*'; put 'from work.bitemp4_updated;'; put '/* ensure we only keep columns that appear in both */'; put '%local bp1 bp2 bp3 bp4;'; put '%let bp1=%mf_getvarlist(bitemp4_prep1);'; put '%let bp2=%mf_getvarlist(bitemp4_prep2);'; put '%let bp3=%mf_wordsInStr1ButNotStr2(Str1=&bp1,Str2=&bp2);'; put '%let bp4=%mf_wordsInStr1ButNotStr2(Str1=&bp2,Str2=&bp1);'; put 'data work.bitemp4_prep3/view=bitemp4_prep3;'; put 'set bitemp4_prep1 bitemp4_prep2;'; put '%if %length(XX&bp3&bp4)>2 %then %do;'; put 'drop &bp3 &bp4 ;'; put '%end;'; put 'run;'; put '/* remove duplicates */'; put 'proc sql;'; put 'create table work.bitemp4a_allrecs as'; put 'select distinct *'; put 'from work.bitemp4_prep3'; put 'order by'; put '/* compress blanks and then insert commas (as the datetime fields'; put 'may not be in use) */'; put '%sysfunc(tranwrd(%sysfunc(compbl('; put '&pk &bus_from &bus_to &processed'; put ')),%str( ), %str(,)))'; put ';'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* this section aligns the business dates'; put '(eg for inserts or overlaps in the range) */'; put 'data work.bitemp4b_firstpass (drop=___TMP___cond ___TMP___from ___TMP___to );'; put 'set work.bitemp4a_allrecs;'; put 'by &pk &bus_from &bus_to &processed;'; put 'retain ___TMP___cond ''Name of Condition'';'; put 'retain ___TMP___from ___TMP___to 0;'; put '___TMP___md5lag=lag(&md5_col);'; put '/* reset retained variables */'; put 'if first.&idx_val then do;'; put 'call missing (___TMP___cond, ___TMP___from, ___TMP___to,___TMP___md5lag);'; put 'end;'; put 'else do;'; put '/* if record is identical, carry forward bus_from (and bus_to if higher)*/'; put 'if &md5_col=___TMP___md5lag then do;'; put '&bus_from=___TMP___from;'; put 'if &bus_to<___TMP___to then &bus_to=___TMP___to;'; put 'end;'; put 'end;'; put 'if ___TMP___=''STAG'' then do;'; put '/* need to carry forward the closing record */'; put '___TMP___cond=''Condition 1'';'; put 'end;'; put 'else if ___TMP___cond=''Condition 1'' then do;'; put '/* else ensure bus_from starts from prior record bus_to */'; put 'if &md5_col ne ___TMP___md5lag and &bus_from <= ___TMP___to'; put 'then &bus_from= ___TMP___to;'; put '/* new record may replace old record entirely */'; put 'if &bus_to <= &bus_from then delete;'; put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; put 'end;'; put '___TMP___from=&bus_from;'; put '___TMP___to=&bus_to;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* keep staged records only */'; put 'data work.bitemp4b_firstpass;'; put 'set work.bitemp4a_allrecs;'; put 'if ___TMP___=''STAG'';'; put 'run;'; put '%end;'; put '/* next phase is to pass through in reverse - so set up the sort statement */'; put '%local byvar;'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let byvar=&byvar descending %scan(&pk,&idx_pk);'; put '%end;'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL'; put '%then %let byvar=&byvar descending &bus_from descending &bus_to;'; put '/* if matching bus dates supplied, need to ensure we also have a sort'; put 'between BASE and STAGING tables */'; put '%let byvar=&byvar descending ___TMP___;'; put 'proc sort data=work.bitemp4b_firstpass out=work.bitemp4c_sort ;'; put 'by &byvar;'; put 'run;'; put '/**'; put '* Now (in reverse) pass back business start dates'; put '*/'; put 'data work.bitemp4d_secondpass;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put '&tech_from=&now;'; put '&tech_to=&high_date;'; put '%end;'; put 'set work.bitemp4c_sort ;'; put 'by &byvar;'; put 'retain ___TMP___cond ''Name of Condition'';'; put 'retain ___TMP___from ___TMP___to 0;'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* put / _all_ /;*/'; put '___TMP___md5lag=lag(&md5_col);'; put 'if first.&idx_val then do;'; put '/* reset retained variables */'; put 'call missing (___TMP___cond,___TMP___from,___TMP___to,___TMP___md5lag);'; put 'end;'; put 'else do;'; put '/* if record is identical, carry back bus_to */'; put 'if &md5_col=___TMP___md5lag then &bus_to=___TMP___to;'; put 'end;'; put 'if ___TMP___=''STAG'' then do;'; put '/* need to carry forward the closing record */'; put '___TMP___cond=''Condition 2'';'; put 'end;'; put 'else if ___TMP___cond=''Condition 2'' then do;'; put '/* else ensure bus_to stops at subsequent record bus_from */'; put 'if &md5_col ne ___TMP___md5lag and &bus_to >= ___TMP___from'; put 'then &bus_to= ___TMP___from;'; put '/* new record may replace old record entirely */'; put 'if &bus_from >= &bus_to then delete;'; put 'if &bus_from=___TMP___from and &bus_to=___TMP___to then delete;'; put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; put 'end;'; put '___TMP___from=&bus_from;'; put '___TMP___to=&bus_to;'; put '%end;'; put 'run;'; put '%put syscc (line600)=&syscc;'; put '/**'; put 'There may still be some records (eg old business history) which have not'; put 'changed.'; put 'Need to identify these and remove from the append so they are not updated'; put 'unnecessarily. This is done by generating a new md5 (which INCLUDES the'; put 'business key) and any matching / identical records are split out (from those'; put 'that need to be updated).'; put '*/'; put '%if &loadtype=BITEMPORAL %then %do;'; put '%let cat_string=catx(''|'' ,&bus_from,&bus_to);'; put 'data work.bitemp5a_lkp (keep=&md5_col)'; put '%if "%substr(&sysver,1,1)" ne "4" & "%substr(&sysver,1,1)" ne "5" %then %do;'; put '/nonote2err'; put '%end;'; put ';'; put 'set work.bitemp0_base;'; put '/* for BITEMPORAL we need to compare business dates also */'; put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.);'; put 'run;'; put 'data bitemp5b_updates;'; put 'set bitemp4d_secondpass;'; put 'if _n_=1 then do;'; put 'dcl hash md5_lkp(dataset:''bitemp5a_lkp'');'; put 'md5_lkp.definekey("&md5_col");'; put 'md5_lkp.definedone();'; put 'end;'; put '/* drop old md5 col as will rebuild with new business dates */'; put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.) ;'; put 'if md5_lkp.check()=0 then delete;'; put 'run;'; put 'proc sql;'; put '/* get min bus from as will update (close out) all records from this point'; put '(for that PK)*/'; put 'create table work.bitemp5d_subquery as'; put 'select &pk_comma, min(&bus_from)as &bus_from, max(&bus_to) as &bus_to'; put 'from work.bitemp5b_updates'; put 'group by &pk_comma;'; put '/* index has a huge efficiency impact on upcoming nested subquery */'; put 'create index index1 on work.bitemp5d_subquery(&pk_comma,&bus_from, &bus_to);'; put '%let lastds=work.bitemp5b_updates;'; put '%end;'; put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; put 'proc sql;'; put 'create table work.bitemp5d_subquery as'; put 'select distinct &pk_comma'; put 'from bitemp4d_secondpass;'; put '%let lastds=work.bitemp4d_secondpass;'; put '%end;'; put '%else %let lastds=work.bitemp4d_secondpass;'; put '/* create single append table (an overlapped pre-sert may be classed as'; put 'both an update AND a new record). Also create temp views that may be'; put 'used for pre-load analysis. */'; put 'data &outds_mod;'; put 'set &lastds(drop=___TMP___: &md5_col);'; put 'run;'; put 'data bitemp6_allrecs / view=bitemp6_allrecs;'; put 'set &outds_mod /* UPDATED records */'; put '&outds_add /* NEW records */;'; put 'run;'; put 'proc sort data=work.bitemp6_allrecs'; put 'out=work.bitemp6_unique'; put 'noduprec'; put 'dupout=work.xx_BADBADBAD;'; put 'by _all_;'; put 'run;'; put '/* we have all our temp tables now so exit if this is all that is needed */'; put '%if &LOADTARGET ne YES %then %return;'; put '/* also exit if an err condition exists */'; put '%if &syscc>0 %then %do;'; put '%put syscc=&syscc;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%if "&outds_audit" ne "0" %then %do;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=&sysmacroname in &_program'; put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status)'; put ')'; put '/* final check - abort if a lock has appeared on the target or audit table */'; put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; put '%if %mf_existds(&outds_audit) %then %do;'; put '%mp_lockfilecheck(libds=&outds_audit)'; put '%end;'; put '/**'; put '* STAGING TABLES PREPARED, ERR CONDITION TESTED FOR.. NOW TO LOAD!!'; put '*/'; put '/**'; put '* First, CLOSE OUT changed records (if not a REPLACE)'; put '* Note that SAS does not support ANSI standard for UPDATE with a join condition.'; put '* However - this can be worked around using a nested subquery..'; put '*/'; put 'data _null_;'; put 'putlog "&sysmacroname: CLOSEOUTS commencing";'; put 'run;'; put '%if %mf_getattrn(&lastds,NLOBS)=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: No closeouts needed";'; put 'run;'; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put '%mp_abort(iftrue= (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL)'; put ',mac=&sysmacroname in &_program'; put ',msg=%str(&loadtype not yet supported in CAS engine)'; put ')'; put '/* create temp table for deletions */'; put '%local delds;%let delds=%mf_getuniquename(prefix=DC);'; put 'data casuser.&delds;'; put 'set work.bitemp5d_subquery;'; put 'run;'; put '/* delete the records */'; put 'proc cas ;'; put 'table.deleteRows / table={'; put 'caslib="&base_lib",'; put 'name="&base_dsn",'; put 'where="1=1",'; put 'whereTable={caslib=''CASUSER'',name="&delds"}'; put '};'; put 'quit;'; put '/* drop temp table */'; put 'proc sql;'; put 'drop table CASUSER.&delds;'; put '%end;'; put '%else %if (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL or &loadtype=UPDATE)'; put '%then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: &loadtype operation using &engine_type engine";'; put 'run;'; put '%local flexinow;'; put 'proc sql;'; put '/* if OLEDB then create a temp table for efficiency */'; put '%local innertable;'; put '%if &engine_type=OLEDB %then %do;'; put '%let innertable=[&temp_table];'; put '%let top_table=[dbo].&base_dsn;'; put '%let flexinow=&SQLNOW;'; put 'create table &base_lib.."&temp_table"n as'; put 'select * from work.bitemp5d_subquery;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'execute('; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put '%let innertable=%mf_getuniquename(prefix=XDCTEMP);'; put '%let top_table=&baselib_schema.&base_dsn;'; put '%let flexinow=timestamp &SQLNOW;'; put '/* make empty table first - must clone & drop extra cols'; put 'as autoload is bad */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'exec (create table &innertable (like &baselib_schema.&base_dsn)) by myAlias;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'exec (alter table &innertable alter sortkey none) by myAlias;'; put '%end;'; put '%let dropcols=%mf_wordsinstr1butnotstr2('; put 'str1=%upcase(%mf_getvarlist(&basecopy))'; put ',str2=%upcase(%mf_getvarlist(work.bitemp5d_subquery))'; put ');'; put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; put '%put &=dropcols;'; put '%let idx_val=%scan(&dropcols,&idx_pk);'; put 'exec(alter table &innertable drop column &idx_val;) by myAlias;;'; put '%end;'; put '/* create view to strip formats and avoid warns in log */'; put 'data work.vw_bitemp5d/view=work.vw_bitemp5d;'; put 'set work.bitemp5d_subquery;'; put 'format _all_;'; put 'run;'; put 'proc append base=&base_lib..&innertable ('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put 'data=work.vw_bitemp5d force nowarn;'; put 'run;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'execute('; put '%end;'; put '%else %do;'; put '%let innertable=bitemp5d_subquery;'; put '%let top_table=&base_lib..&base_dsn;'; put '%let flexinow=&now;'; put '%end;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put 'update &top_table set &tech_to=&flexinow'; put '%if %length(&processed)>0 %then %do;'; put ',&processed=&flexinow'; put '%end;'; put 'where &tech_from <= &flexinow and &flexinow < &tech_to and'; put '%end;'; put '%else %if &loadtype=UPDATE %then %do;'; put '/* changed records are deleted then re-appended when doing UPDATEs */'; put 'delete from &top_table where'; put '%end;'; put '%else %do;'; put '%put %str(ERR)OR: BUSTEMPORAL NOT YET SUPPORTED;'; put '%let syscc=5;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%goto end_of_macro;'; put '%end;'; put '/* perform join inside query as per'; put 'http://stackoverflow.com/questions/24629793/update-with-a-proc-sql */'; put 'exists( select 1 from &baselib_schema.&innertable where'; put '/* loop PK join */'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put '&base_dsn..&idx_val=&innertable..&idx_val and'; put '%end;'; put '%if &loadtype=BITEMPORAL %then %do;'; put '&base_dsn..&bus_from >= &innertable..&bus_from'; put 'and &base_dsn..&bus_to <= &innertable..&bus_to and'; put '%end;'; put '/* close the statement */'; put '1=1);'; put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; put '%then %do;'; put ') by myAlias;'; put 'execute (drop table &baselib_schema.&innertable) by myAlias;'; put '%end;'; put '%end;'; put 'quit;'; put 'data _null_;'; put 'putlog "&sysmacroname: Closeout complete";'; put 'run;'; put '/**'; put '* Append the new / updated records'; put '*/'; put '%if &engine_type=CAS %then %do;'; put '/* get varchar variables ready for casting */'; put '%local vcfmt vcrename vcassign vcdrop;'; put 'data _null_;'; put 'set work.bitemp_cols(where=(type=6)) end=last;'; put 'length vcrename vcassign vcdrop vcfmt $32767 rancol $32;'; put 'retain vcrename vcassign vcdrop vcfmt;'; put 'if _n_=1 then vcrename=''(rename=('';'; put 'rancol=resolve(''%mf_getuniquename()'');'; put 'vcfmt=trim(vcfmt)!!''length ''!!cats(name)!!'' varchar(*);'';'; put 'vcrename=trim(vcrename)!!'' ''!!cats(name,''='',rancol);'; put 'vcassign=cats(vcassign,name,''='',rancol,'';'');'; put 'vcdrop=cats(vcdrop,''drop ''!!rancol,'';'');'; put 'if last then do;'; put 'vcrename=cats(vcrename,''))'');'; put 'call symputx(''vcfmt'',vcfmt);'; put 'call symputx(''vcrename'',vcrename);'; put 'call symputx(''vcassign'',vcassign);'; put 'call symputx(''vcdrop'',vcdrop);'; put 'end;'; put 'run;'; put '/* prepare a temp cas table with varchars casted */'; put '%let tmp=%mf_getuniquename();'; put 'data casuser.&tmp ;'; put '&vcfmt'; put 'set work.bitemp6_unique &vcrename;'; put '&vcassign'; put '&vcdrop'; put 'run;'; put '/* load the table with varchars applied*/'; put 'data &base_lib..&base_dsn (append=yes )/sessref=dcsession ;'; put 'set casuser.&tmp;'; put 'run;'; put '/* drop temp table */'; put 'proc sql;'; put 'drop table CASUSER.&tmp;'; put '/* this code will not work as regular tables do not have varchars */'; put '/*'; put 'proc casutil;'; put 'load data=work.bitemp6_unique'; put 'outcaslib="&base_lib" casout="&base_dsn" append ;'; put 'quit;'; put '*/'; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put 'proc append base=&base_lib..&base_dsn'; put '%if &engine_type=REDSHIFT %then %do;'; put '('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put '%end;'; put 'data=bitemp6_unique force nowarn;'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc append base=&base_lib..&base_dsn data=bitemp6_unique force nowarn; run;'; put '%end;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '/* final check on syscc */'; put '%mp_abort(iftrue= (&syscc >4)'; put ',mac=&_program'; put ',msg=%str(!!Upload NOT successful!! Failed on actual update / append stage..)'; put ')'; put '%if &outds_audit ne 0 and &LOADTARGET=YES %then %do;'; put 'data work.vw_outds_orig /view=work.vw_outds_orig;'; put 'set work.bitemp0_base (drop=&md5_col);'; put 'where ___TMP___NEW_FLG=0;'; put 'drop ___TMP___NEW_FLG;'; put 'run;'; put '/* update the AUDIT table */'; put '%if %mf_existds(&outds_audit) %then %do;'; put 'options mprint;'; put '%mp_storediffs(&base_lib..&base_dsn'; put ',work.vw_outds_orig'; put ',&pk &bus_from'; put ',delds=&outds_del'; put ',modds=&outds_mod'; put ',appds=&outds_add'; put ',outds=work.mp_storediffs'; put ',processed_dttm=&now'; put ',loadref=%superq(etlsource)'; put ')'; put '/* exclude unchanged values in modified rows */'; put 'data work.mp_storediffs;'; put 'set work.mp_storediffs;'; put 'if MOVE_TYPE="M" and IS_PK=0 and IS_DIFF=0 then delete;'; put '* putlog load_ref= libref= dsn= key_hash= tgtvar_nm=;'; put 'run;'; put 'proc append base=&outds_audit data=work.mp_storediffs;'; put 'run;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%mp_abort(iftrue= (&syscc >4)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Problem in audit stage (&outds_audit))'; put ')'; put '%let user=%mf_getUser();'; put '/**'; put 'Notify as appropriate EMAILS DISABLED'; put '%sumo_alerts(ALERT_EVENT=UPDATE'; put ', ALERT_TARGET=&base_lib..&base_dsn'; put ', from_user= &user);'; put '*/'; put '/* monitor BiTemporal usage */'; put '%if &log=1 %then %do;'; put '%put syscc=&syscc;'; put '/* do not perform duration calc in pass through */'; put '%local dur;'; put 'data _null_;'; put 'now=symget(''now'');'; put 'dur=%sysfunc(datetime())-&now;'; put 'call symputx(''dur'',dur,''l'');'; put 'run;'; put 'proc sql;'; put 'insert into &dclib..mpe_dataloads'; put 'set libref=%upcase("&base_lib")'; put ',DSN=%upcase("&base_dsn")'; put ',ETLSOURCE="&ETLSOURCE"'; put ',LOADTYPE="&loadtype"'; put ',CHANGED_RECORDS=%mf_getattrn(&lastds,NLOBS)'; put ',NEW_RECORDS=%mf_getattrn(&outds_add,NLOBS)'; put ',DELETED_RECORDS=%mf_getattrn(&outds_del,NLOBS)'; put ',DURATION=&dur'; put ',MAC_VER="v&ver"'; put ',user_nm="&user"'; put ',PROCESSED_DTTM=&now;'; put 'quit;'; put '%put syscc=&syscc;'; put '%end;'; put '%end_of_macro:'; put '%mend bitemporal_dataloader;'; put '%macro mf_getuniquelibref(prefix=mc,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '%macro mpe_accesscheck('; put 'base_table'; put ',outds=med_accesscheck /* WORK table to contain access details */'; put ',user= /* metadata user to check for */'; put ',access_level=APPROVE'; put ',cntl_lib_var=MPELIB'; put ');'; put '%if &user= %then %let user=%mf_getuser();'; put '%mp_abort('; put 'iftrue=(%index(&outds,.)>0 and %upcase(%scan(&outds,1,.)) ne WORK)'; put ',mac=mpe_accesscheck'; put ',msg=%str(outds should be a WORK table)'; put ')'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; put ',mac=mpe_accesscheck'; put ',msg=%str(Missing base_table/user access_level variables)'; put ')'; put '/* make unique temp table vars */'; put '%local tempds1 tempds2;'; put '%let tempds1=%mf_getuniquename(prefix=usergroups);'; put '%let tempds2=%mf_getuniquename(prefix=tablegroups);'; put '/* get list of user groups */'; put '%mpe_getgroups(user=&user,outds=&tempds1)'; put '/* get list of groups with access for that table */'; put 'proc sql;'; put 'create table &tempds2 as'; put 'select distinct sas_group'; put 'from &&&cntl_lib_var...mpe_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and access_level="&access_level"'; put 'and ('; put '(libref="%scan(&base_table,1,.)" and upcase(dsn)="%scan(&base_table,2,.)")'; put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; put 'or (libref="*ALL*")'; put ');'; put '%if &_debug ge 131 %then %do;'; put 'data _null_;'; put 'set &tempds1;'; put 'putlog (_all_)(=);'; put 'run;'; put 'data _null_;'; put 'set &tempds2;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put 'proc sql;'; put 'create table &outds as'; put 'select * from &tempds1'; put 'where groupname="&mpeadmins"'; put 'or groupname in (select * from &tempds2);'; put '%put &sysmacroname: base_table=&base_table;'; put '%put &sysmacroname: access_level=&access_level;'; put '%mend mpe_accesscheck;'; put '%macro mpe_alerts(alert_event='; put ', alert_lib='; put ', alert_ds='; put ', dsid='; put ');'; put '/* exit if not configured */'; put '%global DC_EMAIL_ALERTS;'; put '%if &DC_EMAIL_ALERTS ne YES %then %do;'; put '%put DCNOTE: Email alerts are not configured;'; put '%put DCNOTE: (dc_email_alerts=&dc_email_alerts in &mpelib..mpe_config);'; put '%return;'; put '%end;'; put '%let alert_event=%upcase(&alert_event);'; put '%let alert_lib=%upcase(&alert_lib);'; put '%let alert_ds=%upcase(&alert_ds);'; put '%let from_user=%mf_getuser();'; put '/* get users TO which the email should be sent */'; put 'proc sql noprint;'; put 'create table work.users as select distinct a.alert_user,'; put 'b.user_displayname,'; put 'b.user_email'; put 'from &mpelib..mpe_alerts'; put '(where=(&dc_dttmtfmt. lt tx_to)) a'; put 'left join &mpelib..mpe_emails'; put '(where=(&dc_dttmtfmt. lt tx_to)) b'; put 'on upcase(trim(a.alert_user))=upcase(trim(b.user_name))'; put 'where a.alert_event in ("&alert_event","*ALL*")'; put 'and a.alert_lib in ("&alert_lib","*ALL*")'; put 'and a.alert_ds in ("&alert_ds","*ALL*");'; put '/* ensure the submitter is included on the email */'; put '%local isThere userdisp user_eml;'; put '%let isThere=0;'; put 'select count(*) into: isThere from &syslast where alert_user="&from_user";'; put '%if &isThere=0 %then %do;'; put 'select user_displayname, user_email'; put 'into: userdisp trimmed, :user_eml trimmed'; put 'from &mpelib..mpe_emails'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and user_name="&from_user";'; put 'insert into work.users'; put 'set alert_user="&from_user"'; put ',user_displayname="&userdisp"'; put ',user_email="&user_eml";'; put '%end;'; put '/* if no email / displayname is provided, then extract from metadata */'; put 'data work.emails;'; put 'set work.users;'; put 'length emailuri uri text $256; call missing(emailuri,uri); drop emailuri uri;'; put '/* get displayname */'; put 'text=cats("omsobj:Person?@Name=''",alert_user,"''");'; put 'if metadata_getnobj(text,1,uri)<=0 then do;'; put 'putlog "DCWARN: &from_user not found";'; put 'return;'; put 'end;'; put 'else if user_displayname = '''' then do;'; put 'if metadata_getattr(uri,''DisplayName'',user_displayname)<0 then do;'; put 'putlog ''DCWARN: strange err, no displayname attribute of user URI'';'; put 'end;'; put 'end;'; put 'if index(user_email,''@'') then return;'; put '/* get email from metadata if not in input table */'; put 'if metadata_getnasn(uri,"EmailAddresses",1,emailuri)<=0 then do;'; put 'putlog "DCWARN: " alert_user " has no emails in MPE_EMAILS or metadata!";'; put 'end;'; put 'else do;'; put 'if metadata_getattr(emailuri,"Address",user_email)<0 then do;'; put 'putlog ''DCWARN: Unexpected error! Valid emailURI but no email. Weird.'';'; put 'end;'; put 'end;'; put '/* only keep valid emails */'; put 'if index(user_email,''@'') ;'; put '/* dump contents for debugging */'; put 'if _n_<21 then putlog (_all_)(=);'; put 'run;'; put '%local emails;'; put 'proc sql noprint;'; put 'select quote(trim(user_email)) into: emails separated by '' '' from work.emails;'; put '/* exit if nobody to email */'; put '%if %mf_getattrn(emails,NLOBS)=0 %then %do;'; put '%put NOTE: No alerts configured (mpe_alerts.sas);'; put '%return;'; put '%end;'; put '/* display email options */'; put 'data _null_;'; put 'set sashelp.voption(where=(group=''EMAIL''));'; put 'put optname ''='' setting;'; put 'run;'; put 'filename __out email (&emails)'; put 'subject="Table &alert_lib..&alert_ds has been &alert_event";'; put '%local SUBMITTED_TXT;'; put '%if &alert_event=SUBMITTED %then %do;'; put 'data _null_;'; put 'set &mpelib..mpe_submit;'; put 'where table_id="&dsid" and submit_status_cd=''SUBMITTED'';'; put 'call symputx(''SUBMITTED_TXT'',submitted_reason_txt,''l'');'; put 'run;'; put 'data _null_;'; put 'File __out lrecl=32000;'; put 'put ''Dear user,'';'; put 'put '' '';'; put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; put '"been proposed by &from_user on the ''&syshostname'' SAS server.";'; put 'put " ";'; put 'length txt $2048;'; put 'txt=symget(''SUBMITTED_TXT'');'; put 'put "Reason provided: " txt;'; put 'put " ";'; put 'put "This is an automated email by Data Controller for SAS. For "'; put '"documentation, please visit https://docs.datacontroller.io";'; put 'run;'; put '%end;'; put '%else %if &alert_event=APPROVED %then %do;'; put '/* there is no approval message */'; put 'data _null_;'; put 'File __out lrecl=32000;'; put 'put ''Dear user,'';'; put 'put '' '';'; put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; put '"been approved by &from_user on the ''&syshostname'' SAS server.";'; put 'put " ";'; put 'put "This is an automated email by Data Controller for SAS. For "'; put '"documentation, please visit https://docs.datacontroller.io";'; put 'run;'; put '%end;'; put '%else %if &alert_event=REJECTED %then %do;'; put 'data _null_;'; put 'set &mpelib..mpe_review;'; put 'where table_id="&dsid" and review_status_id=''REJECTED'';'; put 'call symputx(''REVIEW_REASON_TXT'',REVIEW_REASON_TXT,''l'');'; put 'run;'; put 'data _null_;'; put 'File __out lrecl=32000;'; put 'put ''Dear user,'';'; put 'put '' '';'; put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; put '"been rejected by &from_user on the ''&syshostname'' SAS server.";'; put 'put " ";'; put 'length txt $2048;'; put 'txt=symget(''REVIEW_REASON_TXT'');'; put 'put "Reason provided: " txt;'; put 'put " ";'; put 'put "This is an automated email by Data Controller for SAS. For "'; put '"documentation, please visit https://docs.datacontroller.io";'; put 'run;'; put '%end;'; put 'filename __out clear;'; put '%mend mpe_alerts ;'; put '%macro mv_getfoldermembers(root=/'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',outds=mv_getfolders'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put '%if %mf_isblank(&root)=1 %then %let root=/;'; put 'options noquotelenmax;'; put '/* request the client details */'; put '%local fname1 libref1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '%if "&root"="/" %then %do;'; put '/* if root just list root folders */'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/folders/rootFolders?limit=1000";'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* first get parent folder id */'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/folders/folders/@item?path=&root";'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put 'libname &libref1 JSON fileref=&fname1;'; put '/* now get the followon link to list members */'; put '%local href cnt;'; put '%let cnt=0;'; put 'data _null_;'; put 'length rel href $512;'; put 'call missing(rel,href);'; put 'set &libref1..links;'; put 'if rel=''members'' then do;'; put 'url=cats("''","&base_uri",href,"?limit=10000''");'; put 'call symputx(''href'',url,''l'');'; put 'call symputx(''cnt'',1,''l'');'; put 'end;'; put 'run;'; put '%if &cnt=0 %then %do;'; put '%put NOTE:;%put NOTE- No members found in &root!!;%put NOTE-;'; put '%return;'; put '%end;'; put '%local fname2 libref2;'; put '%let fname2=%mf_getuniquefileref();'; put '%let libref2=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname2 &oauth_bearer'; put 'url=%unquote(%superq(href));'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put 'libname &libref2 JSON fileref=&fname2;'; put 'data &outds;'; put 'length id $36 name $128 uri $64 type $32 description $256;'; put 'if _n_=1 then call missing (of _all_);'; put 'set &libref2..items;'; put 'run;'; put 'filename &fname2 clear;'; put 'libname &libref2 clear;'; put '%end;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getfoldermembers;'; put '%macro mv_getjobcode(outref=0,outfile=0'; put ',name=0,path=0'; put ',contextName=SAS Job Execution compute context'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',mdebug=0'; put ');'; put '%local dbg bufsize varcnt fname1 fname2 errmsg;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname local entry vars:;'; put '%put _local_;'; put '%end;'; put '%else %let dbg=*;'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put '%mp_abort(iftrue=("&path"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job Path not provided)'; put ')'; put '%mp_abort(iftrue=("&name"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job Name not provided)'; put ')'; put '%mp_abort(iftrue=("&outfile"="0" and "&outref"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Output destination (file or fileref) must be provided)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put 'data;run;'; put '%local foldermembers;'; put '%let foldermembers=&syslast;'; put '%mv_getfoldermembers(root=&path'; put ',access_token_var=&access_token_var'; put ',grant_type=&grant_type'; put ',outds=&foldermembers'; put ')'; put '%local joburi;'; put '%let joburi=0;'; put 'data _null_;'; put 'length name uri $512;'; put 'call missing(name,uri);'; put 'set &foldermembers;'; put 'if name="&name" and uri=:''/jobDefinitions/definitions'''; put 'then call symputx(''joburi'',uri);'; put 'run;'; put '%mp_abort(iftrue=("&joburi"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job &path/&name not found)'; put ')'; put '/* prepare request*/'; put '%let fname1=%mf_getuniquefileref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri&joburi";'; put 'headers "Accept"="application/vnd.sas.job.definition+json"'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put ';'; put 'run;'; put '%if &mdebug=1 %then %do;'; put 'data _null_;'; put 'infile &fname1;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%end;'; put '%mp_abort('; put 'iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200 and &SYS_PROCHTTP_STATUS_CODE ne 201)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%let fname2=%mf_getuniquefileref();'; put 'filename &fname2 temp ;'; put '/* cannot use lua IO package as not available in Viya 4 */'; put '/* so use data step to read the JSON until the string `"code":"` is found */'; put 'data _null_;'; put 'file &fname2 recfm=n;'; put 'infile &fname1 lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'retain startwrite 0;'; put 'if startwrite=0 and sourcechar=''"'' then do;'; put 'reentry:'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''c'' then do;'; put 'reentry2:'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''o'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''d'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''e'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''"'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar='':'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''"'' then do;'; put 'putlog ''code found'';'; put 'startwrite=1;'; put 'input sourcechar $ 1. @@;'; put 'end;'; put 'end;'; put 'else if sourcechar=''c'' then goto reentry2;'; put 'end;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put '/* once the `"code":"` string is found, write until unescaped `"` is found */'; put 'if startwrite=1 then do;'; put 'if sourcechar=''\'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar in (''"'',''\'') then put sourcechar char1.;'; put 'else if sourcechar=''n'' then put ''0A''x;'; put 'else if sourcechar=''r'' then put ''0D''x;'; put 'else if sourcechar=''t'' then put ''09''x;'; put 'else if sourcechar=''u'' then do;'; put 'length uni $4;'; put 'input uni $ 4. @@;'; put 'sourcechar=unicode(''\u''!!uni);'; put 'put sourcechar char1.;'; put 'end;'; put 'else do;'; put 'call symputx(''errmsg'',"Uncaught escape char: "!!sourcechar,''l'');'; put 'call symputx(''syscc'',99);'; put 'stop;'; put 'end;'; put 'end;'; put 'else if sourcechar=''"'' then stop;'; put 'else put sourcechar char1.;'; put 'end;'; put 'run;'; put '%mp_abort(iftrue=("&syscc"="99")'; put ',mac=mv_getjobcode'; put ',msg=%str(&errmsg)'; put ')'; put '/* export to desired destination */'; put '%if "&outref"="0" %then %do;'; put 'data _null_;'; put 'file "&outfile" lrecl=32767;'; put '%end;'; put '%else %do;'; put 'filename &outref temp;'; put 'data _null_;'; put 'file &outref;'; put '%end;'; put 'infile &fname2;'; put 'input;'; put 'put _infile_;'; put '&dbg. putlog _infile_;'; put 'run;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname exit vars:;'; put '%put _local_;'; put '%end;'; put '%else %do;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'filename &fname2 clear;'; put '%end;'; put '%mend mv_getjobcode;'; put '%macro dc_getservicecode(loc=,outref=);'; put '%local name;'; put '%let name=%scan(&loc,-1,/);'; put '%mv_getjobcode(path=%substr(&loc,1,%length(&loc)-%length(&name)-1)'; put ',name=&name'; put ',outref=&outref'; put ')'; put '%mend dc_getservicecode;'; put '%macro mp_include(fileref'; put ',prefix=_'; put ',opts=SOURCE2'; put ',errds=work.mp_abort_errds'; put ')/*/STORE SOURCE*/;'; put '/* prepare precode */'; put '%local tempref;'; put '%let tempref=%mf_getuniquefileref();'; put 'data _null_;'; put 'file &tempref;'; put 'set sashelp.vextfl(where=(fileref="%upcase(&fileref)"));'; put 'put ''%let _SYSINCLUDEFILEDEVICE='' xengine '';'';'; put 'name=scan(xpath,-1,''/\'');'; put 'put ''%let _SYSINCLUDEFILENAME='' name '';'';'; put 'path=subpad(xpath,1,length(xpath)-length(name)-1);'; put 'put ''%let _SYSINCLUDEFILEDIR='' path '';'';'; put 'put ''%let _SYSINCLUDEFILEFILEREF='' "&fileref;";'; put 'run;'; put '/* prepare the errds */'; put 'data &errds;'; put 'length msg mac $1000;'; put 'call missing(msg,mac);'; put 'iftrue=''1=0'';'; put 'run;'; put '/* include the include */'; put '%inc &tempref &fileref/&opts;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=%str(&_SYSINCLUDEFILEDIR/&_SYSINCLUDEFILENAME)'; put ',msg=%str(syscc=&syscc after executing &_SYSINCLUDEFILENAME)'; put ')'; put 'filename &tempref clear;'; put '%mend mp_include;'; put '%macro mpe_runhook(hookvar);'; put '%local pgmloc pgmtype;'; put '%let pgmtype=0;'; put '%put &sysmacroname: &=hookvar;'; put '%if %length(&&&hookvar)>0 %then %do;'; put '%put &sysmacroname: Executing &&&hookvar;'; put 'data _null_;'; put 'rule_value=symget("&hookvar");'; put 'if scan(upcase(rule_value),-1,''.'')=''SAS'' then do;'; put 'call symputx(''pgmtype'',''PGM'');'; put 'call symputx(''pgmloc'',rule_value);'; put 'end;'; put 'else do;'; put 'apploc="%mf_getapploc()";'; put 'if substr(rule_value,1,1) ne ''/'''; put 'then rule_value=cats(apploc,''/'',rule_value);'; put 'call symputx(''pgmloc'',rule_value);'; put 'call symputx(''pgmtype'',''JOB'');'; put 'end;'; put 'run;'; put '%if &pgmtype=PGM %then %do;'; put 'filename sascode "&pgmloc";'; put '%end;'; put '%else %do;'; put '%dc_getservicecode(loc=&pgmloc'; put ',outref=sascode'; put ')'; put '%end;'; put '/* the below script will need to modify work.STAGING_DS */'; put '%local x; %let x=; /* legacy feature */'; put '%mp_include(sascode)'; put '%end;'; put '%mend mpe_runhook;'; put '%macro mp_aligndecimal(var,width=8);'; put '%local tmpvar;'; put '%let tmpvar=%mf_getuniquename(prefix=aligndp);'; put 'length &tmpvar $&width;'; put 'if index(&var,''.'') then do;'; put '&tmpvar=cats(scan(&var,1,''.''));'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar!!''.''!!cats(scan(&var,2,''.''));'; put 'end;'; put 'else do;'; put '&tmpvar=cats(&var);'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar;'; put 'end;'; put 'drop &tmpvar;'; put '%mend mp_aligndecimal;'; put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; put 'proc sql;'; put 'create table &libds('; put 'TYPE char(1) label='; put '''Format Type: either N (num fmt), C (char fmt), I (num infmt) or J (char infmt)'''; put ',FMTNAME char(32) label=''Format name'''; put ',FMTROW num label='; put '''CALCULATED Position of record by FMTNAME (reqd for multilabel formats)'''; put ',START char(32767) label=''Starting value for format'''; put '/*'; put 'Keep lengths of START and END the same to avoid this err:'; put '"Start is greater than end: -<."'; put 'Similar usage note: https://support.sas.com/kb/69/330.html'; put '*/'; put ',END char(32767) label=''Ending value for format'''; put ',LABEL char(32767) label=''Format value label'''; put ',MIN num length=3 label=''Minimum length'''; put ',MAX num length=3 label=''Maximum length'''; put ',DEFAULT num length=3 label=''Default length'''; put ',LENGTH num length=3 label=''Format length'''; put ',FUZZ num label=''Fuzz value'''; put ',PREFIX char(2) label=''Prefix characters'''; put ',MULT num label=''Multiplier'''; put ',FILL char(1) label=''Fill character'''; put ',NOEDIT num length=3 label=''Is picture string noedit?'''; put ',SEXCL char(1) label=''Start exclusion'''; put ',EEXCL char(1) label=''End exclusion'''; put ',HLO char(13) label='; put '''More info: https://core.sasjs.io/mddl__sas__cntlout_8sas_source.html'''; put ',DECSEP char(1) label=''Decimal separator'''; put ',DIG3SEP char(1) label=''Three-digit separator'''; put ',DATATYPE char(8) label=''Date/time/datetime?'''; put ',LANGUAGE char(8) label=''Language for date strings'''; put ');'; put '%local lib;'; put '%let libds=%upcase(&libds);'; put '%if %index(&libds,.)=0 %then %let lib=WORK;'; put '%else %let lib=%scan(&libds,1,.);'; put 'proc datasets lib=&lib noprint;'; put 'modify %scan(&libds,-1,.);'; put 'index create'; put 'pk_cntlout=(type fmtname fmtrow)'; put '/nomiss unique;'; put 'quit;'; put '%mend mddl_sas_cntlout;'; put '%macro mp_cntlout('; put 'iftrue=(1=1)'; put ',libcat='; put ',cntlout=work.fmtextract'; put ',fmtlist=0'; put ')/*/STORE SOURCE*/;'; put '%local ddlds cntlds i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let ddlds=%mf_getuniquename();'; put '%let cntlds=%mf_getuniquename();'; put '%mddl_sas_cntlout(libds=&ddlds)'; put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; put '%let libcat=%scan(&libcat,1,-);'; put '%end;'; put 'proc format lib=&libcat cntlout=&cntlds;'; put '%if "&fmtlist" ne "0" and "&fmtlist" ne "" %then %do;'; put 'select'; put '%do i=1 %to %sysfunc(countw(&fmtlist,%str( )));'; put '%scan(&fmtlist,&i,%str( ))'; put '%end;'; put ';'; put '%end;'; put 'run;'; put 'data &cntlout/nonote2err;'; put 'if 0 then set &ddlds;'; put 'set &cntlds;'; put 'by type fmtname notsorted;'; put '/* align the numeric values to avoid overlapping ranges */'; put 'if type in ("I","N") then do;'; put '%mp_aligndecimal(start,width=16)'; put '%mp_aligndecimal(end,width=16)'; put 'end;'; put '/* create row marker. Data cannot be sorted without it! */'; put 'if first.fmtname then fmtrow=1;'; put 'else fmtrow+1;'; put 'run;'; put 'proc sort;'; put 'by type fmtname fmtrow;'; put 'run;'; put 'proc sql;'; put 'drop table &ddlds,&cntlds;'; put '%mend mp_cntlout;'; put '/** @endcond */'; put '%macro mp_md5(cvars=,nvars=);'; put '%local i var sep;'; put 'put(md5('; put '%do i=1 %to %sysfunc(countw(&cvars));'; put '%let var=%scan(&cvars,&i,%str( ));'; put '&sep put(md5(trim(&var)),$hex32.)'; put '%let sep=!!;'; put '%end;'; put '%do i=1 %to %sysfunc(countw(&nvars));'; put '%let var=%scan(&nvars,&i,%str( ));'; put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; put '/* but ONLY if not missing, else will lose any special missing values */'; put '&sep put(md5(trim(put(ifn(missing(&var),&var,&var*1),binary64.))),$hex32.)'; put '%let sep=!!;'; put '%end;'; put '),$hex32.)'; put '%mend mp_md5;'; put '%macro mp_loadformat(libcat,libds'; put ',loadtarget=NO'; put ',auditlibds=0'; put ',locklibds=0'; put ',delete_col=_____DELETE__THIS__RECORD_____'; put ',outds_add=0'; put ',outds_del=0'; put ',outds_mod=0'; put ',mdebug=0'; put ');'; put '/* set up local macro variables and temporary tables (with a prefix) */'; put '%local err msg prefix dslist i var fmtlist ibufsize;'; put '%let dslist=base_fmts template inlibds ds1 stagedata storediffs del1 del2;'; put '%if &outds_add=0 %then %let dslist=&dslist outds_add;'; put '%if &outds_del=0 %then %let dslist=&dslist outds_del;'; put '%if &outds_mod=0 %then %let dslist=&dslist outds_mod;'; put '%let prefix=%substr(%mf_getuniquename(),1,21);'; put '%do i=1 %to %sysfunc(countw(&dslist));'; put '%let var=%scan(&dslist,&i);'; put '%local &var;'; put '%let &var=%upcase(&prefix._&var);'; put '%end;'; put '/* in DC, format catalogs maybe specified in the libds with a -FC extension */'; put '%let libcat=%scan(&libcat,1,-);'; put '/* perform input validations */'; put '%mp_abort('; put 'iftrue=(%mf_existds(&libds)=0)'; put ',mac=&sysmacroname'; put ',msg=%str(&libds could not be found)'; put ')'; put '%mp_abort('; put 'iftrue=(%mf_existvar(&libds,FMTROW)=0)'; put ',mac=&sysmacroname'; put ',msg=%str(FMTROW not found in &libds)'; put ')'; put '%let err=0;'; put '%let msg=0;'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'value=upcase(value);'; put 'if &mdebug=0 then put name ''='' value;'; put 'if name=:''LOAD'' and value not in (''YES'',''NO'') then do;'; put 'call symputx(''msg'',"invalid value for "!!name!!":"!!value);'; put 'call symputx(''err'',1);'; put 'stop;'; put 'end;'; put 'else if name=''LIBCAT'' then do;'; put 'if exist(value,''CATALOG'') le 0 then do;'; put 'call symputx(''msg'',"Unable to open catalog: "!!value);'; put 'call symputx(''err'',1);'; put 'stop;'; put 'end;'; put 'end;'; put 'else if (name=:''OUTDS'' or name in (''DELETE_COL'',''LOCKLIBDS'',''AUDITLIBDS''))'; put 'and missing(value) then do;'; put 'call symputx(''msg'',"missing value in var: "!!name);'; put 'call symputx(''err'',1);'; put 'stop;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'set &libds;'; put 'if missing(fmtrow) then do;'; put 'call symputx(''msg'',"missing fmtrow in format: "!!FMTNAME);'; put 'call symputx(''err'',1);'; put 'stop;'; put 'end;'; put 'run;'; put '%mp_abort('; put 'iftrue=(&err ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(&msg)'; put ')'; put '%local cnt;'; put 'proc sql noprint;'; put 'select count(distinct catx(''|'',type,fmtname,fmtrow)) into: cnt from &libds;'; put '%mp_abort('; put 'iftrue=(&cnt ne %mf_nobs(&libds))'; put ',mac=&sysmacroname'; put ',msg=%str(Non-unique primary key on &libds)'; put ')'; put '/**'; put '* First, extract only relevant formats from the catalog'; put '*/'; put 'proc sql noprint;'; put 'select distinct'; put 'case'; put 'when type=''N'' then upcase(fmtname)'; put 'when type=''C'' then cats(''$'',upcase(fmtname))'; put 'when type=''I'' then cats(''@'',upcase(fmtname))'; put 'when type=''J'' then cats(''@$'',upcase(fmtname))'; put 'else "&sysmacroname:UNHANDLED"'; put 'end'; put 'into: fmtlist separated by '' '''; put 'from &libds;'; put '%mp_cntlout(libcat=&libcat,fmtlist=&fmtlist,cntlout=&base_fmts)'; put '/* get a hash of the row */'; put '%local cvars nvars;'; put '%let cvars=TYPE FMTNAME START END LABEL PREFIX FILL SEXCL EEXCL HLO DECSEP'; put 'DIG3SEP DATATYPE LANGUAGE;'; put '%let nvars=FMTROW MIN MAX DEFAULT LENGTH FUZZ MULT NOEDIT;'; put 'data &base_fmts/note2err;'; put 'set &base_fmts;'; put 'fmthash=%mp_md5(cvars=&cvars, nvars=&nvars);'; put 'run;'; put '/**'; put '* Ensure input table and base_formats have consistent lengths and types'; put '*/'; put 'data &inlibds/nonote2err;'; put 'length &delete_col $3 FMTROW 8 start end label $32767;'; put 'if 0 then set &base_fmts;'; put 'set &libds;'; put 'by type fmtname notsorted;'; put 'if &delete_col='''' then &delete_col=''No'';'; put 'fmtname=upcase(fmtname);'; put 'type=upcase(type);'; put 'if missing(type) then do;'; put 'if substr(fmtname,1,1)=''@'' then do;'; put 'if substr(fmtname,2,1)=''$'' then type=''J'';'; put 'else type=''I'';'; put 'end;'; put 'else do;'; put 'if substr(fmtname,1,1)=''$'' then type=''C'';'; put 'else type=''N'';'; put 'end;'; put 'end;'; put 'if type in (''N'',''I'') then do;'; put '%mp_aligndecimal(start,width=16)'; put '%mp_aligndecimal(end,width=16)'; put 'end;'; put 'fmthash=%mp_md5(cvars=&cvars, nvars=&nvars);'; put 'run;'; put '/**'; put '* Identify new records'; put '*/'; put 'proc sql;'; put 'create table &outds_add(drop=&delete_col) as'; put 'select a.*'; put 'from &inlibds a'; put 'left join &base_fmts b'; put 'on a.type=b.type and a.fmtname=b.fmtname and a.fmtrow=b.fmtrow'; put 'where b.fmtname is null'; put 'and upcase(a.&delete_col) ne "YES"'; put 'order by type, fmtname, fmtrow;'; put '/**'; put '* Identify modified records'; put '*/'; put 'create table &outds_mod (drop=&delete_col) as'; put 'select a.*'; put 'from &inlibds a'; put 'inner join &base_fmts b'; put 'on a.type=b.type and a.fmtname=b.fmtname and a.fmtrow=b.fmtrow'; put 'where upcase(a.&delete_col) ne "YES"'; put 'and a.fmthash ne b.fmthash'; put 'order by type, fmtname, fmtrow;'; put '/**'; put '* Identify deleted records'; put '*/'; put 'create table &outds_del(drop=&delete_col) as'; put 'select a.*'; put 'from &inlibds a'; put 'inner join &base_fmts b'; put 'on a.type=b.type and a.fmtname=b.fmtname and a.fmtrow=b.fmtrow'; put 'where upcase(a.&delete_col)="YES"'; put 'order by type, fmtname, fmtrow;'; put '/**'; put '* Identify fully deleted formats (where every record is removed)'; put '* These require to be explicitly deleted in proc format'; put '* del1 - identify _partial_ deletes'; put '* del2 - exclude these, and also formats that come with _additions_'; put '*/'; put 'create table &del1 as'; put 'select a.*'; put 'from &base_fmts a'; put 'left join &outds_del b'; put 'on a.type=b.type and a.fmtname=b.fmtname and a.fmtrow=b.fmtrow'; put 'where b.fmtrow is null;'; put 'create table &del2 as'; put 'select * from &outds_del'; put 'where cats(type,fmtname) not in (select cats(type,fmtname) from &outds_add)'; put 'and cats(type,fmtname) not in (select cats(type,fmtname) from &del1);'; put '%mp_abort('; put 'iftrue=(&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(SYSCC=&syscc prior to load prep)'; put ')'; put '%if &loadtarget=YES %then %do;'; put '/* new records plus base records that are not deleted or modified */'; put 'data &ds1;'; put 'merge &base_fmts(in=base)'; put '&outds_mod(in=mod)'; put '&outds_add(in=add)'; put '&outds_del(in=del);'; put 'if not del and not mod;'; put 'by type fmtname fmtrow;'; put 'run;'; put '/* add back the modified records */'; put 'data &stagedata;'; put 'set &ds1 &outds_mod;'; put 'run;'; put 'proc sort;'; put 'by type fmtname fmtrow;'; put 'run;'; put '%end;'; put '/* mp abort needs to run outside of conditional blocks */'; put '%mp_abort('; put 'iftrue=(&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(SYSCC=&syscc prior to actual load)'; put ')'; put '%if &loadtarget=YES %then %do;'; put '%if %mf_nobs(&stagedata)=0 and %mf_nobs(&del2)=0 %then %do;'; put '%put There are no changes to load in &libcat!;'; put '%return;'; put '%end;'; put '%if &locklibds ne 0 %then %do;'; put '/* prevent parallel updates */'; put '%mp_lockanytable(LOCK'; put ',lib=%scan(&libcat,1,.)'; put ',ds=%scan(&libcat,2,.)-FC'; put ',ref=MP_LOADFORMAT commencing format load'; put ',ctl_ds=&locklibds'; put ')'; put '%end;'; put '/* do the actual load */'; put 'proc format lib=&libcat cntlin=&stagedata;'; put 'run;'; put '/* apply any full deletes */'; put '%if %mf_nobs(&del2)>0 %then %do;'; put '%local delfmtlist;'; put 'proc sql noprint;'; put 'select distinct case when type=''N'' then cats(fmtname,''.FORMAT'')'; put 'when type=''C'' then cats(fmtname,''.FORMATC'')'; put 'when type=''J'' then cats(fmtname,''.INFMTC'')'; put 'when type=''I'' then cats(fmtname,''.INFMT'')'; put 'else cats(fmtname,''.BADENTRY!!!'') end'; put 'into: delfmtlist'; put 'separated by '' '''; put 'from &del2;'; put 'proc catalog catalog=&libcat;'; put 'delete &delfmtlist;'; put 'quit;'; put '%end;'; put '%if &locklibds ne 0 %then %do;'; put '/* unlock the table */'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&libcat,1,.)'; put ',ds=%scan(&libcat,2,.)-FC'; put ',ref=MP_LOADFORMAT completed format load'; put ',ctl_ds=&locklibds'; put ')'; put '%end;'; put '/* track the changes */'; put '%if &auditlibds ne 0 %then %do;'; put '%if &locklibds ne 0 %then %do;'; put '%mp_lockanytable(LOCK'; put ',lib=%scan(&auditlibds,1,.)'; put ',ds=%scan(&auditlibds,2,.)'; put ',ref=MP_LOADFORMAT commencing audit table load'; put ',ctl_ds=&locklibds'; put ')'; put '%end;'; put '%mp_storediffs(&libcat-FC'; put ',&base_fmts'; put ',TYPE FMTNAME FMTROW'; put ',delds=&outds_del'; put ',modds=&outds_mod'; put ',appds=&outds_add'; put ',outds=&storediffs'; put ',mdebug=&mdebug'; put ')'; put 'proc append base=&auditlibds data=&storediffs;'; put 'run;'; put '%if &locklibds ne 0 %then %do;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&auditlibds,1,.)'; put ',ds=%scan(&auditlibds,2,.)'; put ',ref=MP_LOADFORMAT commencing audit table load'; put ',ctl_ds=&locklibds'; put ')'; put '%end;'; put '%end;'; put '%end;'; put '%mp_abort('; put 'iftrue=(&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(SYSCC=&syscc after load)'; put ')'; put '%if &mdebug=0 %then %do;'; put 'proc datasets lib=work;'; put 'delete &prefix:;'; put 'run;'; put '%put &sysmacroname exit vars:;'; put '%put _local_;'; put '%end;'; put '%mend mp_loadformat;'; put '%macro mpe_targetloader(libds= /* library.dataset to LOAD (target) */'; put ',now= %sysfunc(datetime()) /* static processed timestamp */'; put ',etlsource= /* process from whence the data came */'; put ',STAGING_DS= STAGING_DS /* name of staging (work) dataset which should'; put 'be appended into the target. */'; put ',LOADTARGET=NO /* set to yes to actually load the target */'; put ',CLOSE_VARS= /* provide close vars to override defaults */'; put ',dclib=NOTPROVIDED'; put ',mdebug=0'; put ',dc_dttmtfmt=%sysfunc(datetime())'; put ');'; put '%local lib ds nobs;'; put '/**'; put '* if a format catalog (suffix "-FC") we assume the catalog has already been'; put '* created by the calling program with a libds of work.fmtextract'; put '*/'; put '%let orig_lib=%upcase(%scan(&libds,1,.));'; put '%let orig_ds=%upcase(%scan(&libds,2,.));'; put '%let orig_libds=&libds;'; put '%if %scan(&libds,2,-)=FC %then %do;'; put '%let lib=WORK;'; put '%let ds=FMTEXTRACT;'; put '%let libds=&lib..&ds;'; put '%end;'; put '%else %do;'; put '%let lib=&orig_lib;'; put '%let ds=&orig_ds;'; put '%end;'; put '%mp_abort(iftrue= (&dclib=NOTPROVIDED)'; put ',mac=&sysmacroname'; put ',msg=%str(dclib=NOTPROVIDED)'; put ')'; put '/* get table attributes */'; put '%let nobs=0;'; put 'data work.sumo_config;'; put 'set &mpelib..mpe_tables;'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and libref="&orig_lib"'; put 'and dsn="&orig_ds";'; put 'call symputx(''LOADTYPE'',loadtype,''l'');'; put 'call symputx(''BUSKEY'',buskey,''l'');'; put 'call symputx(''VAR_TXFROM'',var_txfrom,''l'');'; put 'call symputx(''VAR_TXTO'',var_txto,''l'');'; put 'call symputx(''VAR_BUSFROM'',var_busfrom,''l'');'; put 'call symputx(''VAR_BUSTO'',var_busto,''l'');'; put 'call symputx(''VAR_PROCESSED'',VAR_PROCESSED,''l'');'; put 'call symputx(''RK_UNDERLYING'',RK_UNDERLYING,''l'');'; put '%if %length(&CLOSE_VARS)=0 %then %do;'; put 'call symputx(''CLOSE_VARS'',CLOSE_VARS,''l'');'; put '%end;'; put 'call symputx(''nobs'',_n_,''l'');'; put 'if missing(AUDIT_LIBDS) then AUDIT_LIBDS="&dclib..MPE_AUDIT";'; put 'call symputx(''AUDIT_LIBDS'',AUDIT_LIBDS,''l'');'; put 'put (_all_)(=);'; put 'run;'; put '/* check if table is actually configured to load */'; put '%if &nobs ne 1 %then %do;'; put 'proc sql;'; put 'insert into &mpelib..mpe_loads'; put 'set USER_NM="%mf_getuser()"'; put ',STATUS=''FAILED (BAD DS)'''; put ',CSV_DIR=symget(''ETLSOURCE'')'; put ',PROCESSED_DTTM=&now;'; put '%end;'; put '%mp_abort(iftrue= (&nobs=0)'; put ',mac=&sysmacroname'; put ',msg=%str(Table not registered in &mpelib..mpe_tables)'; put ')'; put '%mp_abort(iftrue= (&nobs>1)'; put ',mac=&sysmacroname'; put ',msg=%str(Something is very wrong with the PK in &mpelib..mpe_tables)'; put ')'; put '%if &LOADTYPE=TXTEMPORAL %then %do;'; put '%bitemporal_dataloader(bus_from=,bus_to= /* explicitly empty*/'; put ',tech_from=&VAR_TXFROM'; put ',tech_to = &VAR_TXTO'; put ',base_lib=&lib'; put ',base_dsn=&ds'; put ',append_lib=WORK'; put ',append_dsn=&STAGING_DS'; put ',high_date=''31DEC9999:23:59:59''dt'; put ',PK= &buskey'; put ',ETLSOURCE=&ETLSOURCE'; put ',LOADTYPE=&loadtype'; put ',RK_UNDERLYING=&RK_UNDERLYING'; put ',LOADTARGET=&LOADTARGET'; put ',RK_UPDATE_MAXKEYTABLE=&LOADTARGET'; put ',CLOSE_VARS=&CLOSE_VARS'; put ',processed=&VAR_PROCESSED'; put ',dclib=&dclib'; put ',outds_audit=&AUDIT_LIBDS'; put ')'; put '%end;'; put '%else %if &loadtype=REPLACE %then %do;'; put '%if &LOADTARGET=YES %then %do;'; put '%mp_lockanytable(LOCK,lib=&lib,ds=&ds,ref=%str(&etlsource),'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put 'data WORK.&STAGING_DS;'; put 'set WORK.&STAGING_DS;'; put '%if %mf_existvar(&libds,&VAR_PROCESSED) %then %do;'; put '&VAR_PROCESSED = &now;'; put '%end;'; put 'drop _____DELETE__THIS__RECORD_____;'; put 'run;'; put 'proc sql; delete * from &libds;'; put 'proc append base=&libds data=WORK.&STAGING_DS force nowarn;run;'; put '%mp_lockanytable(UNLOCK,lib=&lib,ds=&ds,ctl_ds=&dclib..mpe_lockanytable)'; put '%end;'; put '%else %do;'; put '/* is full replace so treat all staged records as new in diff screen */'; put 'data work.outds_mod work.outds_add ;'; put 'set work.&staging_ds;'; put 'output work.outds_add;'; put 'run;'; put '/* previous table will be considered fully deleted */'; put 'data work.outds_del;'; put 'set &lib..&ds;'; put 'run;'; put '%end;'; put '%end;'; put '%else %if &loadtype=UPDATE %then %do;'; put '%bitemporal_dataloader(bus_from=,bus_to='; put ',tech_from= ,tech_to = /* explicitly empty*/'; put ',base_lib=&lib'; put ',base_dsn=&ds'; put ',append_lib=WORK'; put ',append_dsn=&STAGING_DS'; put ',high_date=''31DEC9999:23:59:59''dt'; put ',PK= &buskey'; put ',ETLSOURCE=%superq(etlsource)'; put ',LOADTYPE=UPDATE'; put ',RK_UNDERLYING=&RK_UNDERLYING'; put ',LOADTARGET=&LOADTARGET'; put ',RK_UPDATE_MAXKEYTABLE=&LOADTARGET'; put ',processed=&VAR_PROCESSED'; put ',dclib=&dclib'; put ',outds_audit=&AUDIT_LIBDS'; put ')'; put '%end;'; put '%else %if &loadtype=FORMAT_CAT %then %do;'; put '/**'; put '* run mp_formatload'; put '* inputs:'; put '* - LOADTARGET'; put '* - CATALOG'; put '* - STAGEDATA'; put '* - LOADAUDIT'; put '* outputs:'; put '* work.outds_add'; put '* work.outds_del'; put '* work.outds_mod'; put '*/'; put '%mp_loadformat(&orig_libds'; put ',&staging_ds'; put ',loadtarget=&LOADTARGET'; put ',auditlibds=&AUDIT_LIBDS'; put ',locklibds=&dclib..mpe_lockanytable'; put ',delete_col=_____DELETE__THIS__RECORD_____'; put ',outds_add=outds_add'; put ',outds_del=outds_del'; put ',outds_mod=outds_mod'; put ',mdebug=&mdebug'; put ')'; put '%end;'; put '%else %if &loadtype=BITEMPORAL %then %do;'; put '%bitemporal_dataloader(bus_from=&VAR_BUSFROM,bus_to=&VAR_BUSTO'; put ',tech_from=&VAR_TXFROM'; put ',tech_to = &VAR_TXTO'; put ',base_lib=&lib'; put ',base_dsn=&ds'; put ',append_lib=WORK'; put ',append_dsn=&STAGING_DS'; put ',high_date=''31DEC9999:23:59:59''dt'; put ',PK= &buskey'; put ',ETLSOURCE=%superq(etlsource)'; put ',LOADTYPE=BITEMPORAL'; put ',RK_UNDERLYING=&RK_UNDERLYING'; put ',LOADTARGET=&LOADTARGET'; put ',RK_UPDATE_MAXKEYTABLE=&LOADTARGET'; put ',CLOSE_VARS=&CLOSE_VARS'; put ',processed=&VAR_PROCESSED'; put ',dclib=&dclib'; put ',outds_audit=&AUDIT_LIBDS'; put ')'; put '%end;'; put '%else %do;'; put '%put %str(WARN)ING: LOADTYPE &LOADTYPE not supported;'; put '%let syscc=4;'; put '%mp_abort(msg=LOADTYPE &LOADTYPE not supported,mac=mpe_targetloader.sas)'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc exiting MPE_TARGETLOADER macro)'; put ')'; put '%mend mpe_targetloader;'; put '%macro removecolsfromwork(col);'; put '/* only an issue if debug mode enabled */'; put '%global _debug;'; put '%if &_debug ge 131 %then %do;'; put '%let col=%upcase(&col);'; put '%local memlist;'; put 'proc sql noprint;'; put 'select distinct memname into: memlist'; put 'separated by '' '''; put 'from dictionary.columns'; put 'where libname=''WORK'' and upcase(name)="&col";'; put '%if %mf_isblank(&memlist) %then %return;'; put '%mp_dropmembers(list=&memlist)'; put '%end;'; put '%mend removecolsfromwork;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file postdata.sas'; put '@brief Either returns the file diffs or actually loads the data to target'; put '@details Before loading the target, a check is made against the time the'; put 'target was last updated (backend) and the time the DIFF was generated'; put '(frontend). If the target was updated whilst the DIFF was on the screen,'; put 'then the provided diff may have been incorrect and so a new DIFF should be'; put 'generated and approved before load.'; put 'Only 100 rows (of each DIFF type) are displayed on the DIFF screen.'; put '

Service Inputs

'; put '
SASCONTROLTABLE
'; put '|ACTION:$char10.|TABLE:$char32.|DIFFTIME:$char29.|'; put '|---|---|---|'; put '|SHOW_DIFFS|DC20220208T142124517_124703_1184|"Tue, 08 Feb 2022 14:23:05 GMT"|'; put '

SAS Macros

'; put '@li bitemporal_dataloader.sas'; put '@li dc_assignlib.sas'; put '@li mf_existds.sas'; put '@li mf_existvar.sas'; put '@li mf_getattrn.sas'; put '@li mf_getengine.sas'; put '@li mf_getquotedstr.sas'; put '@li mf_getuniquelibref.sas'; put '@li mf_getuser.sas'; put '@li mf_getvarlist.sas'; put '@li mf_nobs.sas'; put '@li mf_verifymacvars.sas'; put '@li mp_abort.sas'; put '@li mp_cntlout.sas'; put '@li mp_lockanytable.sas'; put '@li mpe_accesscheck.sas'; put '@li mpe_alerts.sas'; put '@li mpe_runhook.sas'; put '@li mpe_targetloader.sas'; put '@li removecolsfromwork.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '/* this could be a config setting if required */'; put '%let maxdiff=100;'; put '%mpeinit()'; put '/* load parameters */'; put 'data _null_;'; put 'set work.sascontroltable;'; put 'call symputx(''ACTION'',ACTION);'; put 'call symputx(''LOAD_REF'',TABLE);'; put '/* DIFFTIME is when the DIFF was generated on the frontend */'; put 'call symputx(''DIFFTIME'',DIFFTIME);'; put 'putlog (_all_)(=);'; put 'run;'; put '%global action is_err err_msg msg;'; put '%let is_err=0;'; put '%let user=%mf_getuser();'; put '%let sastime=%sysfunc(datetime());'; put 'data sastime;'; put 'dt_sastime=&sastime;'; put 'run;'; put 'PROC FORMAT;'; put 'picture yymmddhhmmss other=''%0Y-%0m-%0d %0H:%0M:%0S'' (datatype=datetime);'; put 'picture flatdate other=''%0Y%0m%0d_%0H%0M%0S'' (datatype=datetime);'; put 'RUN;'; put '/* SHOW_DIFFS works by getting the temp tables from the bitemporal loader */'; put '/* so we share much of the logic from the actual load process */'; put '%let isfmtcat=0;'; put 'data APPROVE1;'; put 'set &mpelib..mpe_submit;'; put 'where TABLE_ID="&LOAD_REF";'; put '/* fetch mpe_submit data */'; put 'libds=cats(base_lib,''.'',base_ds);'; put 'REVIEWED_ON=put(reviewed_on_dttm,datetime19.);'; put 'call symputx(''REVIEW_STATUS_ID'',submit_status_cd,''l'');'; put 'call symputx(''NUM_OF_APPROVALS_REQUIRED'',NUM_OF_APPROVALS_REQUIRED);'; put 'call symputx(''num_of_approvals_remaining'',num_of_approvals_remaining);'; put '/* other stuff that''s useful to do in data step */'; put 'call symputx(''orig_libds'',libds);'; put 'call symputx(''libds'',libds);'; put 'if substr(cats(reverse(libds)),1,3)=:''CF-'' then do;'; put 'libds=scan(libds,1,''-'');'; put 'putlog "Format Catalog Captured";'; put 'call symputx(''isfmtcat'',1);'; put 'libds=''work.fmtextract'';'; put 'call symputx(''libds'',libds);'; put 'end;'; put 'putlog (_all_)(=);'; put '/* convert provided string DIFFTIME back to a numeric SAS datetime */'; put 'if "&action" ne "SHOW_DIFFS" then do;'; put 'call symputx(''DIFFTIME'',input(symget(''DIFFTIME''),anydtdtm18.));'; put 'end;'; put 'length difftime $32;'; put 'DIFFTIME=put(&sastime,datetime19.2);'; put 'run;'; put '%mp_cntlout('; put 'iftrue=(&isfmtcat=1)'; put ',libcat=&orig_libds'; put ',fmtlist=0'; put ',cntlout=work.fmtextract'; put ')'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(difftime orig_libds libds load_ref)=0)'; put ',mac=&_program'; put ',msg=%str(Missing: difftime orig_libds libds load_ref)'; put ')'; put '/* security checks */'; put '%mpe_accesscheck(&orig_libds,outds=authEDIT,user=&user,access_level=EDIT)'; put '%mpe_accesscheck(&orig_libds,outds=authAPP,user=&user,access_level=APPROVE)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc Before entering postdata macro)'; put ')'; put '%mp_abort('; put 'iftrue=('; put '%mf_getattrn(work.authEDIT,NLOBS)=0 & %mf_getattrn(work.authAPP,NLOBS)=0'; put ')'; put ',mac=&_program'; put ',msg=%str(&user not authorised to view approval screen for &orig_libds)'; put ')'; put '%macro quickmacro(inds,outds);'; put 'data &outds ;'; put '%if %length(&VAR_BUSFROM)>0 %then %do;'; put 'format &VAR_BUSFROM &VAR_BUSTO yymmddhhmmss.;'; put '%end;'; put 'if 0 then set &emptybasetable;'; put 'set &inds;'; put '%if %mf_existvar(&libds,&var_txfrom) %then %do;'; put 'drop &var_txfrom &var_txto;'; put '%end;'; put '%if %mf_existvar(&inds,_____DELETE__THIS__RECORD_____) %then %do;'; put 'drop _____DELETE__THIS__RECORD_____;'; put '%end;'; put '%if %mf_existvar(&inds,&VAR_PROCESSED) %then %do;'; put 'drop &VAR_PROCESSED;'; put '%end;'; put 'run;'; put '%mend quickmacro;'; put '%macro postdata();'; put '%if %quote(&REVIEW_STATUS_ID)=%quote(REJECTED)'; put 'or %quote(&REVIEW_STATUS_ID)=%quote(APPROVED) %then'; put '%do;'; put 'data params; set approve1; run;'; put '%webout(OPEN)'; put '%webout(OBJ,PARAMS)'; put '%webout(CLOSE)'; put '%return;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%if &action=APPROVE_TABLE %then %do;'; put '/* check user is authorised to approve table */'; put '/* user could be an editor but not an approver */'; put '%mp_abort(iftrue= (%mf_getattrn(work.authAPP,NLOBS)=0)'; put ',mac=&_program'; put ',msg=%str(&user may not APPROVE changes)'; put ')'; put '/* see if this user has already submitted an approval */'; put '%let prev_upload_check=1;'; put 'proc sql;'; put 'select count(*) into: prev_upload_check from &mpelib..mpe_review'; put 'where TABLE_ID="&LOAD_REF" and REVIEWED_BY_NM="&user"'; put 'and REVIEW_STATUS_ID ne "SUBMITTED";'; put '%let authcheck=%mf_getattrn(work.authAPP,NLOBS);'; put '%if &authcheck=0 or &prev_upload_check=1 %then %do;'; put '%put %str(WARN)ING: &=authcheck &=prev_upload_check;'; put 'data apPARAMS;'; put 'AUTHORISED=&authcheck;'; put 'PREV_UPLOAD_CHECK=&prev_upload_check;'; put 'run;'; put '%webout(OPEN)'; put '%webout(OBJ,apPARAMS);'; put '%webout(CLOSE)'; put '%return;'; put '%end;'; put '/* now check if table has been updated since DIFF screen shown */'; put '%local fmt_tm usernm last_load etlsource;'; put '%let last_load=0;'; put 'proc sql noprint;'; put 'select max(processed_dttm) format=16.2 into: last_load'; put 'from &mpelib..mpe_dataloads'; put 'where libref="%scan(&orig_libds,1,.)" and dsn="%scan(&orig_libds,2,.)";'; put 'select processed_dttm format=datetime19., user_nm, etlsource'; put 'into: fmt_tm, :usernm, :etlsource'; put 'from &mpelib..mpe_dataloads'; put 'where libref="%scan(&orig_libds,1,.)" and dsn="%scan(&orig_libds,2,.)"'; put 'and processed_dttm=&last_load;'; put '%put TIMECHECK: &last_load>&difftime;'; put '%if %sysevalf(&last_load>&difftime,boolean)=1 %then %do;'; put '%let is_err=1;'; put '%let err_msg=&orig_libds was updated in batch %trim(&etlsource'; put ') by %trim(&usernm) on &fmt_tm - please refresh the page!!;'; put '%return;'; put '%end;'; put '%if &syscc ne 0 %then %do;'; put '%let is_err=1;'; put '%let err_msg=syscc=&syscc before logchange;'; put '%return;'; put '%end;'; put '/* upload about to commence so ensure logs */'; put 'options notes mprint source2;'; put '%local oldloc;'; put '%if %symexist(SYSPRINTTOLOG) %then %let oldloc=&SYSPRINTTOLOG;'; put '%else %let oldloc=%qsysfunc(getoption(LOG));'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto'; put 'log="&mpelocapprovals/&LOAD_REF/approval.log";'; put 'run;'; put 'data _null_;'; put 'if _n_=1 then do;'; put 'length oldloc $1000;'; put 'oldloc=symget(''oldloc'');'; put 'putlog "****** redirected:" oldloc " *****";'; put 'end;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc printto'; put 'log="&mpelocapprovals/&LOAD_REF/approval.log";'; put 'run;'; put '%end;'; put '%if &syscc ne 0 %then %do;'; put '%let is_err=1;'; put '%let err_msg=syscc=&syscc after logchange;'; put '%return;'; put '%end;'; put '%end;'; put '/**'; put '* upload the actual table'; put '*/'; put '%local libref ds;'; put '%let libref=%scan(&orig_libds,1,.);'; put '%let ds=%scan(&orig_libds,2,.);'; put 'proc sql noprint;'; put 'select PRE_APPROVE_HOOK, POST_APPROVE_HOOK, LOADTYPE, var_txfrom, var_txto'; put ',BUSKEY, VAR_BUSFROM, VAR_BUSTO'; put ',AUDIT_LIBDS, NOTES, coalesce(NUM_OF_APPROVALS_REQUIRED,1)'; put ',VAR_PROCESSED'; put 'into: PRE_APPROVE_HOOK, :POST_APPROVE_HOOK, :LOADTYPE,:var_txfrom,:var_txto'; put ',:BUSKEY,:VAR_BUSFROM,:VAR_BUSTO'; put ',:AUDIT_LIBDS, :TABLE_DESC, :NUM_OF_APPROVALS_REQUIRED_TOT'; put ',:VAR_PROCESSED'; put 'from &mpelib..mpe_tables'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and libref="&libref"'; put 'and dsn="&ds";'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(mpelocapprovals orig_libds)=0)'; put ',mac=&_program'; put ',msg=%str(Missing: mpelocapprovals orig_libds)'; put ')'; put '/* get dataset from approvals location (has same name as load_ref) */'; put '%let tmplib=%mf_getuniquelibref();'; put 'libname &tmplib "&mpelocapprovals/&LOAD_REF";'; put 'data STAGING_DS;'; put 'set &tmplib..&LOAD_REF;'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc before preapprove)'; put ')'; put '%dc_assignlib(WRITE,&libref)'; put '/* run pre-approve hook - occurs both BEFORE _and_ AFTER the diff */'; put '%mpe_runhook(PRE_APPROVE_HOOK)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc after preapprove)'; put ')'; put '%if &num_of_approvals_remaining>1 and &action=APPROVE_TABLE %then %do;'; put '/* append to mpe_review table */'; put '%let apprno=%eval(&num_of_approvals_required-&num_of_approvals_remaining+1);'; put 'data work.append_review;'; put 'if 0 then set &mpelib..mpe_review;'; put 'TABLE_ID="&LOAD_REF";'; put 'BASE_TABLE="&orig_libds";'; put 'REVIEW_STATUS_ID="APPROVED";'; put 'REVIEWED_BY_NM="&user";'; put 'REVIEWED_ON_DTTM=&sastime;'; put 'REVIEW_REASON_TXT="APPROVAL &apprno of &num_of_approvals_required";'; put 'output;'; put 'stop;'; put 'run;'; put '%mp_lockanytable(LOCK,'; put 'lib=&mpelib,ds=mpe_review,ref=%str(&LOAD_REF Approval),'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'proc append base=&mpelib..mpe_review data=work.append_review;'; put 'run;'; put '%mp_lockanytable(UNLOCK,'; put 'lib=&mpelib,ds=mpe_review,'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put '/* update mpe_submit table */'; put '%mp_lockanytable(LOCK,'; put 'lib=&mpelib,ds=mpe_submit,ref=%str(&LOAD_REF Approval),'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'proc sql;'; put 'update &mpelib..mpe_submit'; put 'set num_of_approvals_remaining=&num_of_approvals_remaining-1,'; put 'reviewed_by_nm="&user",'; put 'reviewed_on_dttm=&sastime'; put 'where table_id="&LOAD_REF";'; put '%mp_lockanytable(UNLOCK,'; put 'lib=&mpelib,ds=mpe_submit,'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'data apReqd;'; put 'AUTHORISED=1;'; put 'ALREADY_UPDATED=0;'; put 'ALREADY_UPDATED_DTTM=.;'; put 'set approve1; /* js will test for NUM_OF_APPROVALS_REQUIRED */'; put 'run;'; put '%removecolsfromwork(___TMP___MD5)'; put '%webout(OPEN)'; put '%webout(OBJ,apReqd);'; put '%webout(CLOSE)'; put '%return;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc entering TARGETLOADER)'; put ')'; put '%mpe_targetloader(libds=&orig_libds'; put ',now= &sastime'; put ',etlsource=&LOAD_REF'; put ',STAGING_DS=STAGING_DS'; put ',dclib=&mpelib'; put '%if &action=APPROVE_TABLE %then %do;'; put ',LOADTARGET=YES'; put '%end;'; put '%else %do;'; put ',LOADTARGET=NO'; put '%end;'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%if %mf_getattrn(STAGING_DS,NLOBS)=0 %then %do;'; put '/* empty dataset! */'; put 'data out;'; put 'set STAGING_DS;'; put 'run;'; put '%return;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc entering SHOWDIFFS)'; put ')'; put '%if &action=SHOW_DIFFS %then %do;'; put '/**'; put '* Now prepare the SHOW DIFFS (approve) screen'; put '*/'; put '/*To create the CURRENT diffs, we compare with the ACTUAL data. But first'; put 'need to find out what version TIME to query it for.. */'; put 'proc sql noprint;'; put 'select max(processed_dttm)-1 format=datetime19. into: tstamp'; put 'from &mpelib..mpe_dataloads'; put 'where libref="&libref" and dsn="&ds" and ETLSOURCE="&LOAD_REF";'; put 'quit;'; put '%if &tstamp=. %then %let tstamp=%sysfunc(datetime(),datetime19.);'; put '/**'; put '* now create the DIFFS dataset'; put '* If using a database, then utilise pass through!'; put '* Create a temporary table inside the database for joins..'; put '*/'; put 'options mprint;'; put '%let engine_type=%mf_getEngine(%scan(&libds,1,.));'; put '%put &libds engine type = &engine_type;'; put '%local inner_table ;'; put '%if &engine_type=OLEDB %then %do;'; put '/* generate a unique ID for the temporary table */'; put 'data _null_;'; put 'call symputx(''UNIQUE_REF'''; put ',cats(round(datetime(),1)'; put ',''_'''; put ',round(ranuni(0)*100000,1)'; put ')'; put ',''l'''; put ');'; put 'run;'; put '%let inner_table=&libref.."##DIFF_&UNIQUE_REF"n;'; put 'proc sql;'; put 'create table &inner_table as'; put 'select * from work.outds_mod;'; put '%end;'; put '%else %let inner_table=work.outds_mod;'; put 'proc sql;'; put 'create view work.originals2 as'; put 'select b.*'; put 'from &inner_table a'; put 'inner join &libds'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put '(where=("&tstamp"dt < &VAR_TXTO))'; put '%end;'; put 'b'; put 'on 1'; put '%do idx_pk=1 %to %sysfunc(countw(&buskey));'; put '%let idx_val=%scan(&buskey,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'order by %mf_getquotedstr(in_str=&buskey,dlm=%str(,),quote=)'; put ';'; put 'create view bitemp5c_updates2 as'; put 'select * from work.outds_mod'; put 'order by %mf_getquotedstr(in_str=&buskey,dlm=%str(,),quote=)'; put ';'; put 'data; set &libds;stop;run;'; put '%let emptybasetable=&syslast;'; put 'options varlenchk=nowarn; /* for small numerics (<8) */'; put '%quickmacro(work.outds_del,deleted)'; put '%quickmacro(work.outds_add,new)'; put '%quickmacro(bitemp5c_updates2,updates)'; put '%quickmacro(originals2,originals)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc in quickmacro)'; put ')'; put '/* extract colnames for md5 creation / change tracking */'; put 'proc contents noprint data=work.updates'; put 'out=cols (keep=name type length varnum format);'; put 'run;'; put 'proc sort data=cols out=cols(drop=varnum); by varnum;run;'; put 'data cols; set cols; name=upcase(name);run;'; put '%let tempDIFFS_CSV=tempDiffs_%trim('; put '%sysfunc(datetime(),flatdate.)).csv;'; put '/**'; put '* Store temp tables so we have a record of diffs'; put '* do not change this libname or table name as it is used in some'; put '* post approve hooks'; put '*/'; put 'data TEMPDIFFS (compress=no) /* for realistic file size */;'; put 'length _____status $10;'; put 'set work.deleted (in=_____del)'; put 'work.new(in=_____new)'; put 'work.updates (in=_____upd)'; put 'work.originals2 (in=_____orig);'; put 'if _____del then _____status=''DELETED '';'; put 'else if _____new then _____status=''NEW'';'; put 'else if _____upd then _____status=''UPDATED'';'; put 'else if _____orig then _____status=''ORIGINAL'';'; put 'run;'; put 'proc export data=TEMPDIFFS dbms=csv replace'; put 'outfile="&mpelocapprovals/&LOAD_REF/&tempDIFFS_CSV" ;'; put 'run;'; put 'proc sql noprint;'; put 'select filesize format=sizekmg10.1, filesize as filesize_raw'; put 'into: filesize,:filesize_raw'; put 'from dictionary.tables'; put 'where libname=''WORK'' and memtype=''DATA'' and memname=''TEMPDIFFS'';'; put 'data params;'; put 'set approve1;'; put 'DIFFS_CSV="&tempDIFFS_CSV";'; put 'FILESIZE="&filesize";'; put 'FILESIZE_RAW=&filesize_raw;'; put 'if %mf_nobs(work.originals)>&maxdiff'; put 'or %mf_nobs(work.new)>&maxdiff'; put 'or %mf_nobs(work.deleted)>&maxdiff'; put 'or %mf_nobs(work.updates)>&maxdiff'; put 'then TRUNCATED="YES";'; put 'else TRUNCATED="NO";'; put 'NUM_ADDED=%mf_getattrn(work.new,NLOBS);'; put 'NUM_DELETED=%mf_getattrn(work.deleted,NLOBS);'; put 'NUM_UPDATED=%mf_getattrn(work.updates,NLOBS);'; put 'SUBMITTED_ON=put(submitted_on_dttm,datetime19.);'; put '%if %mf_getattrn(work.authAPP,NLOBS)>0 %then %do;'; put 'ISAPPROVER=''YES'';'; put '%end;'; put '%else %do;'; put 'ISAPPROVER=''NO'';'; put '%end;'; put 'run;'; put '/*'; put '* The PRE_APPROVE_HOOK may have applied custom formats to the staged table.'; put '* To ensure consistency in the DIFF screen, we should apply the same formats'; put '* to the base table. Limit rows at the same time.'; put '*/'; put 'data work.originals;'; put 'if 0 then set deleted new updates;'; put 'set work.originals;'; put 'if _n_>&maxdiff then stop;'; put 'run;'; put '/* get additional submits against the same base table */'; put 'proc sort data=&mpelib..mpe_submit(where=('; put 'submit_status_cd=''SUBMITTED'''; put 'and cats(base_lib,''.'',base_ds)="&orig_libds"'; put 'and table_id ne "&LOAD_REF"'; put ')) out=submits;'; put 'by descending submitted_on_dttm;'; put 'run;'; put '/* filter last 10 */'; put 'data submits;'; put 'set submits;'; put 'if _n_>10 then stop;'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc SHOWDIFFS prior to streamout)'; put ')'; put '%removecolsfromwork(___TMP___MD5)'; put '%webout(OPEN)'; put '%webout(OBJ,params)'; put '%webout(OBJ,cols)'; put '%webout(OBJ,submits)'; put '%webout(OBJ,deleted,fmt=N,missing=STRING,maxobs=&maxdiff)'; put '%webout(OBJ,new,fmt=N,missing=STRING,maxobs=&maxdiff)'; put '%webout(OBJ,updates,fmt=N,missing=STRING,maxobs=&maxdiff)'; put '%webout(OBJ,ORIGINALS,fmt=N,missing=STRING)'; put '/* need same for formatted view */'; put '%webout(OBJ,deleted,dslabel=fmt_deleted,fmt=Y,missing=STRING,maxobs=&maxdiff)'; put '%webout(OBJ,new,dslabel=fmt_new,fmt=Y,missing=STRING,maxobs=&maxdiff)'; put '%webout(OBJ,updates,dslabel=fmt_updates,fmt=Y,missing=STRING,maxobs=&maxdiff)'; put '%webout(OBJ,originals,dslabel=fmt_ORIGINALS,fmt=Y,missing=STRING)'; put '%webout(CLOSE)'; put '%if &engine_type=OLEDB %then %do;'; put 'proc sql; /* needs to be dropped AFTER view execution */'; put 'drop table &inner_table;'; put '%end;'; put '%return;'; put '%end;'; put '%if &action=APPROVE_TABLE %then %do;'; put '%approve:'; put '/**'; put '* store temp tables so we have a record of diffs'; put '* do not change this libname or table name as it is used in some'; put '* post approve hooks'; put '* for REPLACE loads, temp tables not made, so make them'; put '*/'; put '%if &LOADTYPE=REPLACE %then %do;'; put 'data work.outds_add; run;'; put 'data work.outds_mod; run;'; put 'data work.outds_del; run;'; put '%end;'; put 'libname approve "&mpelocapprovals/&LOAD_REF";'; put 'data; set &libds;stop;run;'; put '%let emptybasetable=&syslast;'; put 'data approve.ActualDiffs;'; put 'length _____STATUS_____ $10;'; put 'if 0 then set &emptybasetable;'; put 'set work.outds_del (in=_____del)'; put 'work.outds_add (in=_____new)'; put 'work.outds_mod (in=_____upd);'; put 'if _____del then _____STATUS_____=''DELETED'';'; put 'else if _____new then _____STATUS_____=''NEW'';'; put 'else if _____upd then _____STATUS_____=''UPDATED'';'; put '%if %mf_existvar(&libds,&var_txfrom) %then %do;'; put 'drop &var_txfrom &var_txto;'; put '%end;'; put '%if %mf_existvar(&libds,&VAR_PROCESSED) %then %do;'; put 'drop &VAR_PROCESSED;'; put '%end;'; put 'run;'; put 'proc export data=approve.ActualDiffs'; put 'outfile="&mpelocapprovals/&LOAD_REF/ActualDiffs.csv"'; put 'dbms=csv'; put 'replace;'; put 'run;'; put '/* update the control table to show table as approved */'; put '/* append to mpe_review table */'; put '%let apprno=%eval(&num_of_approvals_required-&num_of_approvals_remaining+1);'; put 'data work.append_review;'; put 'if 0 then set &mpelib..mpe_review;'; put 'TABLE_ID="&LOAD_REF";'; put 'BASE_TABLE="&orig_libds";'; put 'REVIEW_STATUS_ID="APPROVED";'; put 'REVIEWED_BY_NM="&user";'; put 'REVIEWED_ON_DTTM=&sastime;'; put 'REVIEW_REASON_TXT="APPROVAL &apprno of &num_of_approvals_required";'; put 'output;'; put 'stop;'; put 'run;'; put '%mp_lockanytable(LOCK,'; put 'lib=&mpelib,ds=mpe_review,ref=%str(&LOAD_REF Approval),'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'proc append base=&mpelib..mpe_review data=work.append_review;'; put 'run;'; put '%mp_lockanytable(UNLOCK,'; put 'lib=&mpelib,ds=mpe_review,'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put '/* update mpe_submit table */'; put '%mp_lockanytable(LOCK,'; put 'lib=&mpelib,ds=mpe_submit,ref=%str(&LOAD_REF Approval in auditors/postdata),'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'proc sql;'; put 'update &mpelib..mpe_submit'; put 'set submit_status_cd=''APPROVED'','; put 'num_of_approvals_remaining=&num_of_approvals_remaining-1,'; put 'reviewed_by_nm="&user",'; put 'reviewed_on_dttm=&sastime'; put 'where table_id="&LOAD_REF";'; put '%mp_lockanytable(UNLOCK,'; put 'lib=&mpelib,ds=mpe_submit,'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put '/* run post-approve hook */'; put '%mpe_runhook(POST_APPROVE_HOOK)'; put 'data apPARAMS;'; put 'AUTHORISED=1;'; put 'ALREADY_UPDATED=0;'; put 'ALREADY_UPDATED_DTTM=.;'; put 'DIFFTIME="&difftime";'; put 'if &syscc=0 then RESPONSE=''SUCCESS!'';'; put 'else response="SYSCC=&syscc.";'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program 582'; put ',msg=%superq(msg)'; put ')'; put '%mpe_alerts(alert_event=APPROVED'; put ', alert_lib=&libref'; put ', alert_ds=&ds'; put ', dsid=&LOAD_REF'; put ')'; put '%removecolsfromwork(___TMP___MD5)'; put '%webout(OPEN)'; put '%webout(OBJ,apPARAMS)'; put '%webout(CLOSE)'; put '%return;'; put '%end;'; put '%mend postdata;'; put '%postdata()'; put '%mp_abort(mode=INCLUDE)'; put '%mp_abort(iftrue= (&is_err=1)'; put ',mac=&_program'; put ',msg=%superq(err_msg)'; put ')'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let path=services/editors; %let service=getdata; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mc,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mpe_accesscheck('; put 'base_table'; put ',outds=med_accesscheck /* WORK table to contain access details */'; put ',user= /* metadata user to check for */'; put ',access_level=APPROVE'; put ',cntl_lib_var=MPELIB'; put ');'; put '%if &user= %then %let user=%mf_getuser();'; put '%mp_abort('; put 'iftrue=(%index(&outds,.)>0 and %upcase(%scan(&outds,1,.)) ne WORK)'; put ',mac=mpe_accesscheck'; put ',msg=%str(outds should be a WORK table)'; put ')'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; put ',mac=mpe_accesscheck'; put ',msg=%str(Missing base_table/user access_level variables)'; put ')'; put '/* make unique temp table vars */'; put '%local tempds1 tempds2;'; put '%let tempds1=%mf_getuniquename(prefix=usergroups);'; put '%let tempds2=%mf_getuniquename(prefix=tablegroups);'; put '/* get list of user groups */'; put '%mpe_getgroups(user=&user,outds=&tempds1)'; put '/* get list of groups with access for that table */'; put 'proc sql;'; put 'create table &tempds2 as'; put 'select distinct sas_group'; put 'from &&&cntl_lib_var...mpe_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and access_level="&access_level"'; put 'and ('; put '(libref="%scan(&base_table,1,.)" and upcase(dsn)="%scan(&base_table,2,.)")'; put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; put 'or (libref="*ALL*")'; put ');'; put '%if &_debug ge 131 %then %do;'; put 'data _null_;'; put 'set &tempds1;'; put 'putlog (_all_)(=);'; put 'run;'; put 'data _null_;'; put 'set &tempds2;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put 'proc sql;'; put 'create table &outds as'; put 'select * from &tempds1'; put 'where groupname="&mpeadmins"'; put 'or groupname in (select * from &tempds2);'; put '%put &sysmacroname: base_table=&base_table;'; put '%put &sysmacroname: access_level=&access_level;'; put '%mend mpe_accesscheck;'; put '%macro mpe_columnlevelsecurity(tgtlib,tgtds,inds'; put ',mode=VIEW'; put ',groupds=work.groups'; put ',clsds=work.clsview'; put ',outds=CLSVIEW'; put ',outmeta=work.cls_rules'; put ');'; put '%local col_list is_admin;'; put '/* filter for the appropriate rules */'; put 'proc sql;'; put 'create table &outmeta as'; put 'select CLS_VARIABLE_NM,'; put 'min(case when CLS_HIDE=1 then 1 else 0 end) as CLS_HIDE'; put 'from &clsds'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and CLS_SCOPE in ("&mode",''ALL'')'; put 'and CLS_ACTIVE=1'; put '%if &mode=VIEW %then %do;'; put 'and CLS_HIDE ne 1'; put '%end;'; put 'and upcase(CLS_GROUP) in (select upcase(groupname) from &groupds)'; put 'and CLS_LIBREF="%upcase(&tgtlib)"'; put 'and CLS_TABLE="%upcase(&tgtds)"'; put 'group by CLS_VARIABLE_NM;'; put '%let is_admin=0;'; put 'proc sql;'; put 'select count(*) into: is_admin from &groupds where groupname="&MPEADMINS";'; put '%put &sysmacroname: &=is_admin;'; put '%if %mf_nobs(work.cls_rules) = 0 or &is_admin>0 %then %do;'; put '%put &sysmacroname: no CLS rules to apply;'; put '%put &=is_admin;'; put '/* copy using append for speed */'; put 'data &outds;'; put 'set &inds;'; put 'stop;'; put 'run;'; put 'proc append base=&outds data=&inds;'; put 'run;'; put '/* ensure CLS_RULES is empty in case of admin */'; put 'data &outmeta;'; put 'set &outmeta;'; put 'stop;'; put 'run;'; put '%return;'; put '%end;'; put '%else %if &mode=VIEW %then %do;'; put '/* just send back the relevant columns */'; put '%let col_list=0;'; put 'proc sql noprint;'; put 'select CLS_VARIABLE_NM into: col_list separated by '' '' from &outmeta'; put 'where CLS_HIDE=0;'; put '%if &col_list=0 %then %do;'; put '/*'; put 'We have columns that are set to CLS_HIDE=1 but we do not have any to'; put 'explicitly show. Therefore we assume all columns are to be shown except'; put 'those that are explicitly hidden.'; put '*/'; put 'proc sql noprint;'; put 'select CLS_VARIABLE_NM into: col_list separated by '' '' from &outmeta'; put 'where CLS_HIDE=1;'; put 'data &outds;'; put 'set &inds;'; put 'drop &col_list;'; put 'run;'; put '%end;'; put '%else %do;'; put 'data &outds;'; put 'set &inds;'; put 'keep &col_list;'; put 'run;'; put '%end;'; put '%end;'; put '%else %if &mode=EDIT %then %do;'; put '/*'; put 'In this case we pass all columns and the frontend will filter out the'; put 'ones that are not allowed to be edited.'; put '*/'; put 'data &outds;'; put 'set &inds;'; put 'stop;'; put 'run;'; put 'proc append base=&outds data=&inds;'; put 'run;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: invalid mode - &mode!;'; put '%abort;'; put '%end;'; put '%mend mpe_columnlevelsecurity;'; put '%macro mp_dsmeta(libds,outds=work.dsmeta);'; put '%local ds1 ds2;'; put 'data;run; %let ds1=&syslast;'; put 'data;run; %let ds2=&syslast;'; put '/* setup the ODS capture */'; put 'ods output attributes=&ds1 enginehost=&ds2;'; put '/* export the metadata */'; put 'proc contents data=&libds;'; put 'run;'; put '/* load it into a single table */'; put 'data &outds (keep=ods_table name value);'; put 'length ods_table $10 name label2 label1 label $100'; put 'value cvalue cvalue1 cvalue2 $1000'; put 'nvalue nvalue1 nvalue2 8;'; put 'if _n_=1 then call missing (of _all_);'; put '* putlog (_all_)(=);'; put 'set &ds1 (in=atrs) &ds2 (in=eng);'; put 'if atrs then do;'; put 'ods_table=''ATTRIBUTES'';'; put 'name=coalescec(label1,label);'; put 'value=coalescec(cvalue1,cvalue,put(coalesce(nvalue1,nvalue),best.));'; put 'output;'; put 'if label2 ne '''' then do;'; put 'name=label2;'; put 'value=coalescec(cvalue2,put(nvalue2,best.));'; put 'output;'; put 'end;'; put 'end;'; put 'else if eng then do;'; put 'ods_table=''ENGINEHOST'';'; put 'name=coalescec(label1,label);'; put 'value=coalescec(cvalue1,cvalue,put(coalesce(nvalue1,nvalue),best.));'; put 'output;'; put 'end;'; put 'run;'; put 'proc sql;'; put 'drop table &ds1, &ds2;'; put '%mend mp_dsmeta;'; put '%macro mpe_dsmeta(libds, outds=dsmeta);'; put '%local ddsd ddld notes lenstmt memname;'; put '%let lenstmt=length ods_table $18 name $100 value $1000;'; put '%let libds=%upcase(&libds);'; put '%if "%scan(&libds,2,-)" ne "FC" %then %do;'; put '%let memname=%scan(&libds,2,.);'; put '%mp_dsmeta(&libds, outds=&outds)'; put '%end;'; put '%else %do;'; put '%let memname=%scan(&libds,2,.-);'; put 'data &outds;'; put '&lenstmt;'; put 'set sashelp.vcatalg;'; put 'ods_table=cats(objtype);'; put 'name=cats(objname);'; put 'value=catx('' '',objdesc,''(modified:'',put(modified,datetime19.),'')'');'; put 'where libname="%scan(&libds,1,.)" and memname="&memname";'; put 'keep ods_table name value;'; put 'run;'; put 'proc sort; by ods_table name;run;'; put '%end;'; put 'data _null_;'; put 'set &mpelib..mpe_datadictionary;'; put 'where &dc_dttmtfmt < tx_to & dd_source="&memname" & dd_type=''TABLE'';'; put 'call symputx(''ddsd'',dd_shortdesc,''l'');'; put 'call symputx(''ddld'',dd_longdesc,''l'');'; put 'run;'; put 'data &outds;'; put '&lenstmt;'; put 'if last then do;'; put 'ODS_TABLE=''MPE_DATADICTIONARY'';'; put 'NAME=''DD_SHORTDESC'';'; put 'VALUE="&ddsd";'; put 'output;'; put 'NAME=''DD_LONGDESC'';'; put 'VALUE="&ddld";'; put 'output;'; put 'end;'; put 'set &outds end=last;'; put 'output;'; put 'run;'; put 'data _data_;'; put 'set &mpelib..mpe_tables;'; put 'where libref="%scan(&libds,1,.)"'; put '& dsn="%scan(&libds,2,.)"'; put '& &dc_dttmtfmt 0 then put ''AND '' filter_text;'; put 'else put filter_text;'; put 'run;'; put '%end;'; put '%end;'; put '/**'; put '* Now do Row Level Security based on the MPE_ROW_LEVEL_SECURITY table'; put '*/'; put '/* first determine users group membership */'; put '%mpe_getgroups(user=%mf_getuser(),outds=work.groups)'; put '%local admin_check;'; put 'proc sql;'; put 'select count(*) into: admin_check'; put 'from work.groups'; put 'where groupname="&mpeadmins";'; put '%put &sysmacroname: &=admin_check &=mpeadmins;'; put '%if &admin_check=0 %then %do;'; put '%local scopeval;'; put '%if &mode=DLOAD %then %let scopeval=VIEW;'; put '%if &mode=ULOAD %then %let scopeval=EDIT;'; put '%else %let scopeval=&mode;'; put '/* extract relevant rows */'; put '%local rlsds;'; put '%let rlsds=%mf_getuniquename();'; put 'proc sql;'; put 'create table work.&rlsds as'; put 'select rls_group,'; put 'rls_group_logic as group_logic,'; put 'rls_subgroup_logic as subgroup_logic,'; put 'rls_subgroup_id as subgroup_id,'; put 'rls_variable_nm as variable_nm,'; put 'rls_operator_nm as operator_nm,'; put 'rls_raw_value as raw_value'; put 'from &mpelib..mpe_row_level_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and rls_scope in ("&scopeval",''ALL'')'; put 'and upcase(rls_group) in (select upcase(groupname) from work.groups)'; put 'and rls_libref="%scan(&libds,1,.)"'; put 'and rls_table="%scan(&libds,2,.)"'; put 'and rls_active=1'; put 'order by rls_group,rls_subgroup_id;'; put '%if &sqlobs>0 %then %do;'; put '/* check if we currently have filter or not */'; put 'data ;'; put 'infile &outref end=eof;'; put 'input;'; put 'if _n_=1 and eof and cats(_infile_)='''' then newfilter=1;'; put 'output;'; put 'stop;'; put 'run;'; put 'data _null_;'; put 'set &syslast;'; put 'file &outref mod;'; put 'if newfilter=1 then put ''('';'; put 'else put ''AND ('';'; put 'run;'; put '/* loop through and apply filters for each group membership */'; put '%local fref ds;'; put '%let fref=%mf_getuniquefileref();'; put '%let ds=%mf_getuniquename();'; put 'proc sql noprint;'; put 'select distinct rls_group into : group1 -'; put 'from work.&rlsds;'; put '%do i=1 %to &sqlobs;'; put 'data work.&ds;'; put 'set work.&rlsds;'; put 'where rls_group="&&group&i";'; put 'drop rls_group;'; put 'run;'; put '%mp_filtergenerate(&ds,outref=&fref)'; put 'data _null_;'; put 'infile &fref;'; put 'file &outref mod;'; put 'input;'; put 'if &i>1 and _n_=1 then put '' OR '';'; put 'put _infile_;'; put 'run;'; put '%end;'; put 'data _null_;'; put 'file &outref mod;'; put 'put '')'';'; put 'run;'; put '%end; /* &sqlobs>0 */'; put '%else %do;'; put '%put &sysmacroname: no matching groups;'; put 'data _null_;'; put 'set work.groups;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=&sysmacroname'; put ',msg=%str(Row Level Security Generation Error)'; put ')'; put '%end; /* &admin_check=0 */'; put '%put leaving &sysmacroname with the following query:;'; put '%local empty;'; put '%let empty=0;'; put 'data _null_;'; put 'infile &outref end=eof;'; put 'input;'; put 'putlog _infile_;'; put 'if _n_=1 and eof and cats(_infile_)='''' then do;'; put 'put ''1=1'';'; put 'call symputx(''empty'',1,''l'');'; put 'end;'; put 'run;'; put '%if &empty=1 %then %do;'; put 'data _null_;'; put 'file &outref;'; put 'put ''1=1'';'; put 'run;'; put '%end;'; put '%mend mpe_filtermaster;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mv_getfoldermembers(root=/'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',outds=mv_getfolders'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put '%if %mf_isblank(&root)=1 %then %let root=/;'; put 'options noquotelenmax;'; put '/* request the client details */'; put '%local fname1 libref1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '%if "&root"="/" %then %do;'; put '/* if root just list root folders */'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/folders/rootFolders?limit=1000";'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* first get parent folder id */'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/folders/folders/@item?path=&root";'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put 'libname &libref1 JSON fileref=&fname1;'; put '/* now get the followon link to list members */'; put '%local href cnt;'; put '%let cnt=0;'; put 'data _null_;'; put 'length rel href $512;'; put 'call missing(rel,href);'; put 'set &libref1..links;'; put 'if rel=''members'' then do;'; put 'url=cats("''","&base_uri",href,"?limit=10000''");'; put 'call symputx(''href'',url,''l'');'; put 'call symputx(''cnt'',1,''l'');'; put 'end;'; put 'run;'; put '%if &cnt=0 %then %do;'; put '%put NOTE:;%put NOTE- No members found in &root!!;%put NOTE-;'; put '%return;'; put '%end;'; put '%local fname2 libref2;'; put '%let fname2=%mf_getuniquefileref();'; put '%let libref2=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname2 &oauth_bearer'; put 'url=%unquote(%superq(href));'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put 'libname &libref2 JSON fileref=&fname2;'; put 'data &outds;'; put 'length id $36 name $128 uri $64 type $32 description $256;'; put 'if _n_=1 then call missing (of _all_);'; put 'set &libref2..items;'; put 'run;'; put 'filename &fname2 clear;'; put 'libname &libref2 clear;'; put '%end;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getfoldermembers;'; put '%macro mv_getjobcode(outref=0,outfile=0'; put ',name=0,path=0'; put ',contextName=SAS Job Execution compute context'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',mdebug=0'; put ');'; put '%local dbg bufsize varcnt fname1 fname2 errmsg;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname local entry vars:;'; put '%put _local_;'; put '%end;'; put '%else %let dbg=*;'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put '%mp_abort(iftrue=("&path"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job Path not provided)'; put ')'; put '%mp_abort(iftrue=("&name"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job Name not provided)'; put ')'; put '%mp_abort(iftrue=("&outfile"="0" and "&outref"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Output destination (file or fileref) must be provided)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put 'data;run;'; put '%local foldermembers;'; put '%let foldermembers=&syslast;'; put '%mv_getfoldermembers(root=&path'; put ',access_token_var=&access_token_var'; put ',grant_type=&grant_type'; put ',outds=&foldermembers'; put ')'; put '%local joburi;'; put '%let joburi=0;'; put 'data _null_;'; put 'length name uri $512;'; put 'call missing(name,uri);'; put 'set &foldermembers;'; put 'if name="&name" and uri=:''/jobDefinitions/definitions'''; put 'then call symputx(''joburi'',uri);'; put 'run;'; put '%mp_abort(iftrue=("&joburi"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job &path/&name not found)'; put ')'; put '/* prepare request*/'; put '%let fname1=%mf_getuniquefileref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri&joburi";'; put 'headers "Accept"="application/vnd.sas.job.definition+json"'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put ';'; put 'run;'; put '%if &mdebug=1 %then %do;'; put 'data _null_;'; put 'infile &fname1;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%end;'; put '%mp_abort('; put 'iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200 and &SYS_PROCHTTP_STATUS_CODE ne 201)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%let fname2=%mf_getuniquefileref();'; put 'filename &fname2 temp ;'; put '/* cannot use lua IO package as not available in Viya 4 */'; put '/* so use data step to read the JSON until the string `"code":"` is found */'; put 'data _null_;'; put 'file &fname2 recfm=n;'; put 'infile &fname1 lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'retain startwrite 0;'; put 'if startwrite=0 and sourcechar=''"'' then do;'; put 'reentry:'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''c'' then do;'; put 'reentry2:'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''o'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''d'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''e'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''"'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar='':'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''"'' then do;'; put 'putlog ''code found'';'; put 'startwrite=1;'; put 'input sourcechar $ 1. @@;'; put 'end;'; put 'end;'; put 'else if sourcechar=''c'' then goto reentry2;'; put 'end;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put '/* once the `"code":"` string is found, write until unescaped `"` is found */'; put 'if startwrite=1 then do;'; put 'if sourcechar=''\'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar in (''"'',''\'') then put sourcechar char1.;'; put 'else if sourcechar=''n'' then put ''0A''x;'; put 'else if sourcechar=''r'' then put ''0D''x;'; put 'else if sourcechar=''t'' then put ''09''x;'; put 'else if sourcechar=''u'' then do;'; put 'length uni $4;'; put 'input uni $ 4. @@;'; put 'sourcechar=unicode(''\u''!!uni);'; put 'put sourcechar char1.;'; put 'end;'; put 'else do;'; put 'call symputx(''errmsg'',"Uncaught escape char: "!!sourcechar,''l'');'; put 'call symputx(''syscc'',99);'; put 'stop;'; put 'end;'; put 'end;'; put 'else if sourcechar=''"'' then stop;'; put 'else put sourcechar char1.;'; put 'end;'; put 'run;'; put '%mp_abort(iftrue=("&syscc"="99")'; put ',mac=mv_getjobcode'; put ',msg=%str(&errmsg)'; put ')'; put '/* export to desired destination */'; put '%if "&outref"="0" %then %do;'; put 'data _null_;'; put 'file "&outfile" lrecl=32767;'; put '%end;'; put '%else %do;'; put 'filename &outref temp;'; put 'data _null_;'; put 'file &outref;'; put '%end;'; put 'infile &fname2;'; put 'input;'; put 'put _infile_;'; put '&dbg. putlog _infile_;'; put 'run;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname exit vars:;'; put '%put _local_;'; put '%end;'; put '%else %do;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'filename &fname2 clear;'; put '%end;'; put '%mend mv_getjobcode;'; put '%macro dc_getservicecode(loc=,outref=);'; put '%local name;'; put '%let name=%scan(&loc,-1,/);'; put '%mv_getjobcode(path=%substr(&loc,1,%length(&loc)-%length(&name)-1)'; put ',name=&name'; put ',outref=&outref'; put ')'; put '%mend dc_getservicecode;'; put '%macro mp_include(fileref'; put ',prefix=_'; put ',opts=SOURCE2'; put ',errds=work.mp_abort_errds'; put ')/*/STORE SOURCE*/;'; put '/* prepare precode */'; put '%local tempref;'; put '%let tempref=%mf_getuniquefileref();'; put 'data _null_;'; put 'file &tempref;'; put 'set sashelp.vextfl(where=(fileref="%upcase(&fileref)"));'; put 'put ''%let _SYSINCLUDEFILEDEVICE='' xengine '';'';'; put 'name=scan(xpath,-1,''/\'');'; put 'put ''%let _SYSINCLUDEFILENAME='' name '';'';'; put 'path=subpad(xpath,1,length(xpath)-length(name)-1);'; put 'put ''%let _SYSINCLUDEFILEDIR='' path '';'';'; put 'put ''%let _SYSINCLUDEFILEFILEREF='' "&fileref;";'; put 'run;'; put '/* prepare the errds */'; put 'data &errds;'; put 'length msg mac $1000;'; put 'call missing(msg,mac);'; put 'iftrue=''1=0'';'; put 'run;'; put '/* include the include */'; put '%inc &tempref &fileref/&opts;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=%str(&_SYSINCLUDEFILEDIR/&_SYSINCLUDEFILENAME)'; put ',msg=%str(syscc=&syscc after executing &_SYSINCLUDEFILENAME)'; put ')'; put 'filename &tempref clear;'; put '%mend mp_include;'; put '%macro mpe_runhook(hookvar);'; put '%local pgmloc pgmtype;'; put '%let pgmtype=0;'; put '%put &sysmacroname: &=hookvar;'; put '%if %length(&&&hookvar)>0 %then %do;'; put '%put &sysmacroname: Executing &&&hookvar;'; put 'data _null_;'; put 'rule_value=symget("&hookvar");'; put 'if scan(upcase(rule_value),-1,''.'')=''SAS'' then do;'; put 'call symputx(''pgmtype'',''PGM'');'; put 'call symputx(''pgmloc'',rule_value);'; put 'end;'; put 'else do;'; put 'apploc="%mf_getapploc()";'; put 'if substr(rule_value,1,1) ne ''/'''; put 'then rule_value=cats(apploc,''/'',rule_value);'; put 'call symputx(''pgmloc'',rule_value);'; put 'call symputx(''pgmtype'',''JOB'');'; put 'end;'; put 'run;'; put '%if &pgmtype=PGM %then %do;'; put 'filename sascode "&pgmloc";'; put '%end;'; put '%else %do;'; put '%dc_getservicecode(loc=&pgmloc'; put ',outref=sascode'; put ')'; put '%end;'; put '/* the below script will need to modify work.STAGING_DS */'; put '%local x; %let x=; /* legacy feature */'; put '%mp_include(sascode)'; put '%end;'; put '%mend mpe_runhook;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '%macro mv_getgroupmembers(group'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',outds=work.viyagroupmembers'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/groups/&group/members?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: Group &group not found!!;'; put 'data &outds;'; put 'length id name $43;'; put 'call missing(of _all_);'; put 'run;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%let libref1=%mf_getuniquelibref();'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'length id name $43;'; put 'set &libref1..items;'; put 'run;'; put 'libname &libref1 clear;'; put '%end;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put '%mend mv_getgroupmembers;'; put '%macro dc_getgroupmembers(group,outds=dc_getgroupmembers);'; put '%mv_getgroupmembers(%str(&group),outds=&outds)'; put 'data &outds ;'; put 'length membername $64;'; put 'set &outds(rename=(name=MemberName));'; put 'run;'; put '%mend dc_getgroupmembers;'; put '/** @cond */'; put '%macro mf_existvar(libds /* 2 part dataset name */'; put ', var /* variable name */'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid=0 %then %do;'; put '%put %sysfunc(sysmsg());'; put '0'; put '%end;'; put '%else %if %length(&var)=0 %then %do;'; put '0'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%sysfunc(varnum(&dsid,&var))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_existvar;'; put '/** @endcond */'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '%macro mf_getquotedstr(IN_STR'; put ',DLM=%str(,)'; put ',QUOTE=S'; put ',indlm=%str( )'; put ')/*/STORE SOURCE*/;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; put '%else %if "e=N %then %let quote=;'; put '%local i item buffer;'; put '%let i=1;'; put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; put '%else %let item=%qtrim(&item);'; put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; put '%else %let buffer =&buffer&DLM%qtrim(&item);'; put '%let i = %eval(&i+1);'; put '%end;'; put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; put '&buffer'; put '%mend mf_getquotedstr;'; put '%macro mf_wordsInStr1ButNotStr2('; put 'Str1= /* string containing words to extract */'; put ',Str2= /* used to compare with the extract string */'; put ')/*/STORE SOURCE*/;'; put '%local count_base count_extr i i2 extr_word base_word match outvar;'; put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; put '%put base string (str1)= &str1;'; put '%put compare string (str2) = &str2;'; put '%return;'; put '%end;'; put '%let count_base=%sysfunc(countw(&Str2));'; put '%let count_extr=%sysfunc(countw(&Str1));'; put '%do i=1 %to &count_extr;'; put '%let extr_word=%scan(&Str1,&i,%str( ));'; put '%let match=0;'; put '%do i2=1 %to &count_base;'; put '%let base_word=%scan(&Str2,&i2,%str( ));'; put '%if &extr_word=&base_word %then %let match=1;'; put '%end;'; put '%if &match=0 %then %let outvar=&outvar &extr_word;'; put '%end;'; put '&outvar'; put '%mend mf_wordsInStr1ButNotStr2;'; put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; put 'proc sql;'; put 'create table &libds('; put 'TYPE char(1) label='; put '''Format Type: either N (num fmt), C (char fmt), I (num infmt) or J (char infmt)'''; put ',FMTNAME char(32) label=''Format name'''; put ',FMTROW num label='; put '''CALCULATED Position of record by FMTNAME (reqd for multilabel formats)'''; put ',START char(32767) label=''Starting value for format'''; put '/*'; put 'Keep lengths of START and END the same to avoid this err:'; put '"Start is greater than end: -<."'; put 'Similar usage note: https://support.sas.com/kb/69/330.html'; put '*/'; put ',END char(32767) label=''Ending value for format'''; put ',LABEL char(32767) label=''Format value label'''; put ',MIN num length=3 label=''Minimum length'''; put ',MAX num length=3 label=''Maximum length'''; put ',DEFAULT num length=3 label=''Default length'''; put ',LENGTH num length=3 label=''Format length'''; put ',FUZZ num label=''Fuzz value'''; put ',PREFIX char(2) label=''Prefix characters'''; put ',MULT num label=''Multiplier'''; put ',FILL char(1) label=''Fill character'''; put ',NOEDIT num length=3 label=''Is picture string noedit?'''; put ',SEXCL char(1) label=''Start exclusion'''; put ',EEXCL char(1) label=''End exclusion'''; put ',HLO char(13) label='; put '''More info: https://core.sasjs.io/mddl__sas__cntlout_8sas_source.html'''; put ',DECSEP char(1) label=''Decimal separator'''; put ',DIG3SEP char(1) label=''Three-digit separator'''; put ',DATATYPE char(8) label=''Date/time/datetime?'''; put ',LANGUAGE char(8) label=''Language for date strings'''; put ');'; put '%local lib;'; put '%let libds=%upcase(&libds);'; put '%if %index(&libds,.)=0 %then %let lib=WORK;'; put '%else %let lib=%scan(&libds,1,.);'; put 'proc datasets lib=&lib noprint;'; put 'modify %scan(&libds,-1,.);'; put 'index create'; put 'pk_cntlout=(type fmtname fmtrow)'; put '/nomiss unique;'; put 'quit;'; put '%mend mddl_sas_cntlout;'; put '%macro mp_aligndecimal(var,width=8);'; put '%local tmpvar;'; put '%let tmpvar=%mf_getuniquename(prefix=aligndp);'; put 'length &tmpvar $&width;'; put 'if index(&var,''.'') then do;'; put '&tmpvar=cats(scan(&var,1,''.''));'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar!!''.''!!cats(scan(&var,2,''.''));'; put 'end;'; put 'else do;'; put '&tmpvar=cats(&var);'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar;'; put 'end;'; put 'drop &tmpvar;'; put '%mend mp_aligndecimal;'; put '%macro mp_cntlout('; put 'iftrue=(1=1)'; put ',libcat='; put ',cntlout=work.fmtextract'; put ',fmtlist=0'; put ')/*/STORE SOURCE*/;'; put '%local ddlds cntlds i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let ddlds=%mf_getuniquename();'; put '%let cntlds=%mf_getuniquename();'; put '%mddl_sas_cntlout(libds=&ddlds)'; put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; put '%let libcat=%scan(&libcat,1,-);'; put '%end;'; put 'proc format lib=&libcat cntlout=&cntlds;'; put '%if "&fmtlist" ne "0" and "&fmtlist" ne "" %then %do;'; put 'select'; put '%do i=1 %to %sysfunc(countw(&fmtlist,%str( )));'; put '%scan(&fmtlist,&i,%str( ))'; put '%end;'; put ';'; put '%end;'; put 'run;'; put 'data &cntlout/nonote2err;'; put 'if 0 then set &ddlds;'; put 'set &cntlds;'; put 'by type fmtname notsorted;'; put '/* align the numeric values to avoid overlapping ranges */'; put 'if type in ("I","N") then do;'; put '%mp_aligndecimal(start,width=16)'; put '%mp_aligndecimal(end,width=16)'; put 'end;'; put '/* create row marker. Data cannot be sorted without it! */'; put 'if first.fmtname then fmtrow=1;'; put 'else fmtrow+1;'; put 'run;'; put 'proc sort;'; put 'by type fmtname fmtrow;'; put 'run;'; put 'proc sql;'; put 'drop table &ddlds,&cntlds;'; put '%mend mp_cntlout;'; put '/** @endcond */'; put '%macro mp_getcols(ds, outds=work.cols);'; put '%local dropds;'; put 'proc contents noprint data=&ds'; put 'out=_data_ (keep=name type length label varnum format:);'; put 'run;'; put '%let dropds=&syslast;'; put 'data &outds(keep=name type length varnum format label ddtype fmtname);'; put 'set &dropds(rename=(format=fmtname type=type2));'; put 'name=upcase(name);'; put 'if type2=2 then do;'; put 'length format $49.;'; put 'if fmtname='''' then format=cats(''$'',length,''.'');'; put 'else if formatl=0 then format=cats(fmtname,''.'');'; put 'else format=cats(fmtname,formatl,''.'');'; put 'type=''C'';'; put 'ddtype=''CHARACTER'';'; put 'end;'; put 'else do;'; put 'if fmtname='''' then format=cats(length,''.'');'; put 'else if formatl=0 then format=cats(fmtname,''.'');'; put 'else if formatd=0 then format=cats(fmtname,formatl,''.'');'; put 'else format=cats(fmtname,formatl,''.'',formatd);'; put 'type=''N'';'; put 'if format=:''DATETIME'' or format=:''E8601DT'' or format=:''NLDATM'''; put 'then ddtype=''DATETIME'';'; put 'else if format=:''DATE'' or format=:''DDMMYY'' or format=:''MMDDYY'''; put 'or format=:''YYMMDD'' or format=:''E8601DA'' or format=:''B8601DA'''; put 'or format=:''MONYY'' or format=:''NLDATE'''; put 'then ddtype=''DATE'';'; put 'else if format=:''TIME'' then ddtype=''TIME'';'; put 'else ddtype=''NUMERIC'';'; put 'end;'; put 'if label='''' then label=name;'; put 'run;'; put 'proc sql;'; put 'drop table &dropds;'; put '%mend mp_getcols;'; put '%macro mcf_init(func'; put ')/*/STORE SOURCE*/;'; put '%if not (%symexist(SASJS_PREFIX)) %then %do;'; put '%global SASJS_PREFIX;'; put '%let SASJS_PREFIX=SASJS;'; put '%end;'; put '%let func=%upcase(&func);'; put '/* the / character is just a seperator */'; put '%global &sasjs_prefix._FUNCTIONS;'; put '%if %index(&&&sasjs_prefix._FUNCTIONS,&func/)>0 %then %do;'; put '1'; put '%return;'; put '%end;'; put '%else %do;'; put '%let &sasjs_prefix._FUNCTIONS=&&&sasjs_prefix._FUNCTIONS &func/;'; put '0'; put '%end;'; put '%mend mcf_init;'; put '%macro mcf_length(wrap=NO'; put ',insert_cmplib=DEPRECATED'; put ',lib=WORK'; put ',cat=SASJS'; put ',pkg=UTILS'; put ')/*/STORE SOURCE*/;'; put '%local i var cmpval found;'; put '%if %mcf_init(mcf_length)=1 %then %return;'; put '%if &wrap=YES %then %do;'; put 'proc fcmp outlib=&lib..&cat..&pkg;'; put '%end;'; put 'function mcf_length(var);'; put 'if var=. then len=0;'; put 'else if missing(var) or trunc(var,3)=var then len=3;'; put 'else if trunc(var,4)=var then len=4;'; put 'else if trunc(var,5)=var then len=5;'; put 'else if trunc(var,6)=var then len=6;'; put 'else if trunc(var,7)=var then len=7;'; put 'else len=8;'; put 'return(len);'; put 'endsub;'; put '%if &wrap=YES %then %do;'; put 'quit;'; put '%end;'; put '/* insert the CMPLIB if not already there */'; put '%let cmpval=%sysfunc(getoption(cmplib));'; put '%let found=0;'; put '%do i=1 %to %sysfunc(countw(&cmpval,%str( %(%))));'; put '%let var=%scan(&cmpval,&i,%str( %(%)));'; put '%if &var=&lib..&cat %then %let found=1;'; put '%end;'; put '%if &found=0 %then %do;'; put 'options insert=(CMPLIB=(&lib..&cat));'; put '%end;'; put '%mend mcf_length;'; put '%macro mf_getvarcount(libds,typefilter=A'; put ')/*/STORE SOURCE*/;'; put '%local dsid nvars rc outcnt x;'; put '%let dsid=%sysfunc(open(&libds));'; put '%let nvars=.;'; put '%let outcnt=0;'; put '%let typefilter=%upcase(&typefilter);'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &typefilter=A %then %let outcnt=&nvars;'; put '%else %if &nvars>0 %then %do x=1 %to &nvars;'; put '/* increment based on variable type */'; put '%if %sysfunc(vartype(&dsid,&x))=&typefilter %then %do;'; put '%let outcnt=%eval(&outcnt+1);'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put unable to open &libds (rc=&dsid);'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '&outcnt'; put '%mend mf_getvarcount;'; put '%macro mf_getvartype(libds /* two level name */'; put ', var /* variable name from which to return the type */'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vtype rc;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid. > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable type (C/N) */'; put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let vtype = %str( );'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable type */'; put '&vtype'; put '%mend mf_getvartype;'; put '%macro mf_getVarFormat(libds /* two level ds name */'; put ', var /* variable name from which to return the format */'; put ', force=0'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vformat rc vlen vtype;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable format */'; put '%if(&vnum > 0) %then %let vformat=%sysfunc(varfmt(&dsid, &vnum));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let rc = %sysfunc(close(&dsid));'; put '%return;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* supply a default if no format available */'; put '%if %length(&vformat)<2 & &force=1 %then %do;'; put '%let vlen = %sysfunc(varlen(&dsid, &vnum));'; put '%let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%if &vtype=C %then %let vformat=$&vlen..;'; put '%else %let vformat=best.;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable format */'; put '&vformat'; put '%mend mf_getVarFormat;'; put '%macro mp_getmaxvarlengths('; put 'libds'; put ',num2char=NO'; put ',outds=work.mp_getmaxvarlengths'; put ')/*/STORE SOURCE*/;'; put '%local vars prefix x var fmt srcds;'; put '%let vars=%mf_getvarlist(libds=&libds);'; put '%let prefix=%substr(%mf_getuniquename(),1,25);'; put '%let num2char=%upcase(&num2char);'; put '%if &num2char=NO %then %do;'; put '/* compile length function for numeric fields */'; put '%mcf_length(wrap=YES, insert_cmplib=YES)'; put '%end;'; put '%if &num2char=NO'; put 'and ("%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5")'; put 'and %mf_getvarcount(&libds,typefilter=N) gt 0'; put '%then %do;'; put '/* custom functions not supported in summary operations */'; put '%let srcds=%mf_getuniquename();'; put 'data &srcds/view=&srcds;'; put 'set &libds;'; put '%do x=1 %to %sysfunc(countw(&vars,%str( )));'; put '%let var=%scan(&vars,&x);'; put '%if %mf_getvartype(&libds,&var)=N %then %do;'; put '&prefix.&x=mcf_length(&var);'; put '%end;'; put '%end;'; put 'run;'; put '%end;'; put '%else %let srcds=&libds;'; put 'proc sql;'; put 'create table &outds (rename=('; put '%do x=1 %to %sysfunc(countw(&vars,%str( )));'; put '&prefix.&x=%scan(&vars,&x)'; put '%end;'; put '))'; put 'as select'; put '%do x=1 %to %sysfunc(countw(&vars,%str( )));'; put '%let var=%scan(&vars,&x);'; put '%if &x>1 %then ,;'; put '%if %mf_getvartype(&libds,&var)=C %then %do;'; put 'max(lengthn(&var)) as &prefix.&x'; put '%end;'; put '%else %if &num2char=YES %then %do;'; put '%let fmt=%mf_getvarformat(&libds,&var);'; put '%put fmt=&fmt;'; put '%if %str(&fmt)=%str() %then %do;'; put 'max(lengthn(cats(&var))) as &prefix.&x'; put '%end;'; put '%else %do;'; put 'max(lengthn(put(&var,&fmt))) as &prefix.&x'; put '%end;'; put '%end;'; put '%else %do;'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then %do;'; put 'max(&prefix.&x) as &prefix.&x'; put '%end;'; put '%else %do;'; put 'max(mcf_length(&var)) as &prefix.&x'; put '%end;'; put '%end;'; put '%end;'; put 'from &srcds;'; put 'proc transpose data=&outds'; put 'out=&outds(rename=(_name_=NAME COL1=MAXLEN));'; put 'run;'; put '%mend mp_getmaxvarlengths;'; put '%macro mp_validatecol(incol,rule,outcol);'; put '/* tempcol is given a unique name with every invocation */'; put '%local tempcol;'; put '%let tempcol=%mf_getuniquename();'; put '%if &rule=ISINT %then %do;'; put '&outcol=0;'; put 'if not missing(&incol) then do;'; put '&tempcol=input(&incol,?? best32.);'; put 'if not missing(&tempcol) then if mod(&tempcol,1)=0 then &outcol=1;'; put 'end;'; put 'drop &tempcol;'; put '%end;'; put '%else %if &rule=ISNUM %then %do;'; put '/*'; put 'credit SOREN LASSEN'; put 'https://sasmacro.blogspot.com/2009/06/welcome-isnum-macro.html'; put '*/'; put '&tempcol=input(&incol,?? best32.);'; put 'if missing(&tempcol) then &outcol=0;'; put 'else &outcol=1;'; put 'drop &tempcol;'; put '%end;'; put '%else %if &rule=LIBDS %then %do;'; put '/* match libref.dataset */'; put 'if _n_=1 then do;'; put 'retain &tempcol;'; put '&tempcol=prxparse(''/^[_a-z]\w{0,7}\.[_a-z]\w{0,31}$/i'');'; put 'if missing(&tempcol) then do;'; put 'putlog ''ERR'' +(-1) "OR: Invalid expression for LIBDS";'; put 'stop;'; put 'end;'; put 'drop &tempcol;'; put 'end;'; put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; put 'else &outcol=0;'; put '%end;'; put '%else %if &rule=FORMAT %then %do;'; put '/* match valid format - regex could probably be improved */'; put 'if _n_=1 then do;'; put 'retain &tempcol;'; put '&tempcol=prxparse(''/^[_a-z\$]\w{0,31}\.[0-9]*$/i'');'; put 'if missing(&tempcol) then do;'; put 'putlog ''ERR'' +(-1) "OR: Invalid expression for FORMAT";'; put 'stop;'; put 'end;'; put 'drop &tempcol;'; put 'end;'; put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; put 'else &outcol=0;'; put '%end;'; put '%mend mp_validatecol;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file getdata.sas'; put '@brief Returns a dataset to the editor front end'; put '@details'; put '

Service Inputs

'; put '
SASCONTROLTABLE
'; put '|LIBDS:$41.|FILTER_RK:$5.|'; put '|---|---|'; put '|DC258467.MPE_X_TEST|-1|'; put '

Service Outputs

'; put '
sasdata
'; put '
sasparams
'; put 'Contains info on the request. One row is returned.'; put '@li CLS_FLG - set to 0 if there are no CLS rules (everything editable)'; put 'else set to 1 (CLS rules exist)'; put '@li ISMAP - set to 1 if the target DS is an excel map target, else 0'; put '
approvers
'; put '
dqrules
'; put '
dqdata
'; put '
cols
'; put 'Contains column level attributes.'; put '@li NAME - column name'; put '@li VARNUM - variable position. Source: https://core.sasjs.io/mp__getcols_8sas.html'; put '@li LABEL - variable label. Source: https://core.sasjs.io/mp__getcols_8sas.html'; put '@li FMTNAME - derived format name. Source: https://core.sasjs.io/mp__getcols_8sas.html'; put '@li DDTYPE - derived dropdown type. Source: https://core.sasjs.io/mp__getcols_8sas.html'; put '@li CLS_RULE - values include:'; put '- EDIT - the column is editable'; put '- READ - the column should be readonly'; put '- HIDE - the column should be hidden'; put '@li memlabel'; put '@li desc- augmented with MPE_DATADICTIONARY if exists, else label'; put '@li longdesc - from MPE_DATADICTIONARY'; put '
maxvarlengths
'; put '
xl_rules
'; put '
query
'; put '
versions
'; put 'history of DC versions for this particular table'; put '

SAS Macros

'; put '@li dc_assignlib.sas'; put '@li dc_getgroupmembers.sas'; put '@li mf_existvar.sas'; put '@li mf_getattrn.sas'; put '@li mf_getvarlist.sas'; put '@li mf_existds.sas'; put '@li mf_getquotedstr.sas'; put '@li mf_getuser.sas'; put '@li mf_nobs.sas'; put '@li mf_verifymacvars.sas'; put '@li mf_wordsinstr1butnotstr2.sas'; put '@li mp_abort.sas'; put '@li mp_cntlout.sas'; put '@li mp_getcols.sas'; put '@li mp_getmaxvarlengths.sas'; put '@li mp_validatecol.sas'; put '@li mpe_accesscheck.sas'; put '@li mpe_columnlevelsecurity.sas'; put '@li mpe_dsmeta.sas'; put '@li mpe_getlabels.sas'; put '@li mpe_getversions.sas'; put '@li mpe_filtermaster.sas'; put '@li mpe_runhook.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '/**'; put '* Validate inputs'; put '*/'; put 'data work.intest;'; put 'length filter_rk 8;'; put 'set work.SASCONTROLTABLE;'; put '/* validate filter_rk */'; put 'if filter_rk le 0 then filter_rk=-1;'; put 'call symputx(''orig_libds'',upcase(libds));'; put 'is_fmt=0;'; put 'if substr(cats(reverse(libds)),1,3)=:''CF-'' then do;'; put 'libds=scan(libds,1,''-'');'; put 'putlog "Format Catalog Captured";'; put 'is_fmt=1;'; put 'libds=''work.fmtextract'';'; put 'call symputx(''libds'',libds);'; put 'end;'; put 'call symputx(''is_fmt'',is_fmt);'; put 'putlog (_all_)(=);'; put '/* validate libds */'; put '%mp_validatecol(LIBDS,LIBDS,is_libds)'; put 'if is_libds=0 then do;'; put 'putlog ''ERR'' ''OR: Invalid libds:'' libds;'; put 'stop;'; put 'end;'; put 'else do;'; put 'call symputx(''filter_rk'',filter_rk);'; put 'call symputx(''libds'',libds);'; put 'end;'; put 'output;'; put 'stop;'; put 'run;'; put '%mp_abort(iftrue= (%mf_nobs(work.intest)=0)'; put ',mac=&_program'; put ',msg=%str(Some err with service inputs)'; put ')'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(libds filter_rk)=0)'; put ',mac=&_program'; put ',msg=%str(Missing: libds filter_rk)'; put ')'; put '/* export format catalog */'; put '%mp_cntlout('; put 'iftrue=(&is_fmt=1)'; put ',libcat=&orig_libds'; put ',fmtlist=0'; put ',cntlout=work.fmtextract'; put ')'; put '/* stream back meta info, further calls will return col metadata and actual data'; put '*/'; put '%let libref=%upcase(%scan(&libds,1,.));'; put '%let dsn=%upcase(%scan(&libds,2,.));'; put '%dc_assignlib(WRITE,&libref)'; put '/**'; put '* First check user has access permission to edit the table'; put '*/'; put '%put checking access;'; put '%let user=%mf_getuser();'; put '%mpe_accesscheck(&orig_libds,outds=mw_auth,user=&user,access_level=EDIT)'; put '%mp_abort(iftrue= (%mf_getattrn(work.mw_auth,NLOBS)=0)'; put ',mac=mpestp_getdata.sas'; put ',msg=&user is not authorised to edit &orig_libds %trim('; put ')in the &mpelib..MPE_SECURITY table'; put ')'; put '%mp_abort(iftrue= ( %mf_existds(libds=&libds) ne 1)'; put ',mac=mpestp_getdata.sas'; put ',msg=dataset &libds does not exist!!'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc at line 60 )'; put ')'; put '%global loadtype var_txfrom var_txto var_processed filter_text pk coltype'; put 'sortpk;'; put '%put getting table attributes;'; put 'proc sql noprint;'; put 'select upcase(loadtype)'; put ',var_txfrom,var_txto'; put ',var_busfrom,var_busto'; put ',var_processed,rk_underlying,buskey'; put ',coalesce(rk_underlying,buskey)'; put ',pre_edit_hook'; put ',case when missing(rk_underlying) then buskey else rk_underlying end'; put 'into: loadtype,:var_txfrom,:var_txto'; put ',:var_busfrom ,:var_busto'; put ',:var_processed,:rk_underlying,:buskey, :sortPK, :pre_edit_hook,:pk'; put 'from &mpelib..mpe_tables'; put 'where &dc_dttmtfmt. lt TX_TO'; put 'and upcase(dsn)="%scan(&orig_libds,2,.)"'; put 'and upcase(libref)="%scan(&orig_libds,1,.)";'; put '%put preparing filter query:;'; put '%mpe_filtermaster(EDIT,&orig_libds,'; put 'dclib=&mpelib,'; put 'filter_rk=&filter_rk,'; put 'outref=filtref,'; put 'outds=work.query'; put ')'; put '%macro mpestp_getdata();'; put '%if not %symexist(DC_MAXOBS_WEBEDIT) %then %do;'; put '%put NOTE:;%put NOTE- DC_MAXOBS_WEBEDIT not found!;'; put '%put NOTE- Please add to &mpelib..MPE_CONFIG table;'; put '%put NOTE-;%put NOTE-;'; put '%global DC_MAXOBS_WEBEDIT;'; put '%let DC_MAXOBS_WEBEDIT=500;'; put '%end;'; put '/* for tables which use RKs/SKs then we just expose the business key to'; put 'users - this lets uploads be sent to multiple environments (with'; put 'potentially different RK/SK values for the same business key).'; put 'Note that the config table has the RK column in the buskey field in'; put 'this scenario. */'; put '%if %length(&rk_underlying)>0 %then %let drop_rk=&buskey;'; put '%else %let drop_rk=;'; put '/* always remove the PROCESSED_DTTM column, if it exists */'; put '%if %length(&var_processed)=0 %then %do;'; put '%if %mf_existvar(&libds,PROCESSED_DTTM)>0 %then'; put '%let var_processed=PROCESSED_DTTM;'; put '%end;'; put '/**'; put '* Now get the slice of the actual table'; put '*/'; put 'options obs=10000;'; put '%if &loadtype=BITEMPORAL %then %do;'; put 'data out (drop=&var_txfrom &var_txto &var_processed &drop_rk );'; put '_____DELETE__THIS__RECORD_____="No";'; put 'set &libds;'; put 'where %inc filtref;;'; put 'run;'; put 'proc sort data=out;'; put 'by &pk &var_busfrom;'; put 'run;'; put 'data out;'; put 'set out;'; put 'by &pk &var_busfrom;'; put 'if last.%scan(&pk,-1);'; put 'run;'; put '%end;'; put '%else %do;'; put 'data out (drop=&var_txfrom &var_txto &var_processed &drop_rk);'; put '_____DELETE__THIS__RECORD_____="No";'; put 'set &libds;'; put 'where %inc filtref;;'; put 'run;'; put '%end;'; put 'options obs=max;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Issue with filtering (line 165) )'; put ')'; put 'options obs=&DC_MAXOBS_WEBEDIT;'; put '%let sortpk=%sysfunc(coalescec(&sortpk &var_busfrom,_ALL_));'; put 'proc sort data=work.out; by &sortPK; run;'; put 'options obs=max;'; put '%mpe_runhook(PRE_EDIT_HOOK)'; put '%let obscnt=%mf_getattrn(work.out,NLOBS);'; put '%mp_abort(iftrue=(&obscnt>&DC_MAXOBS_WEBEDIT)'; put ',mac=&_program'; put ',msg=Table is too big (&obscnt rows) - please filter and try again!'; put ')'; put '/* order delete var and pk fields at start of table */'; put '%let sourcevars=%mf_wordsInStr1ButNotStr2('; put 'Str1=%mf_getvarlist(work.out)'; put ',Str2= _____DELETE__THIS__RECORD_____ &pk'; put ');'; put '%put sourcevars=&sourcevars;'; put 'data outdata;'; put '/* delete & pk fields come first */'; put 'attrib _____DELETE__THIS__RECORD_____ &pk label='''';'; put '/* keep remaining variable order */'; put '%if %length(&sourcevars)>0 %then %do;'; put 'attrib &sourcevars label='''';'; put '%end;'; put '_____DELETE__THIS__RECORD_____="No ";'; put '%if %mf_nobs(work.out)=0 %then %do;'; put '/* send empty row if empty table to help with hot rendering */'; put 'output;'; put '%end;'; put 'set work.out ;'; put 'run;'; put '/* get list of variables and their formats */'; put 'proc contents noprint data=outdata'; put 'out=vars(keep=name type length varnum format: label);'; put 'run;'; put 'proc sort;'; put 'by varnum;'; put 'run;'; put 'data vars3(keep=name type length format label pk varnum ctrloptions formatd);'; put 'set vars(rename=(format=format2 type=type2));'; put 'name=upcase(name);'; put '/* not interested in transaction or processing dates'; put '(append table must be supplied without them) */'; put 'if name not in ("&VAR_TXFROM","&VAR_TXTO","&VAR_PROCESSED");'; put 'if type2=2 or type2=6 then do;'; put 'length format $49.;'; put 'if format2='''' then format=cats(''$'',length,''.'');'; put 'else format=cats(format2,formatl,''.'');'; put 'type=''char'';'; put 'end;'; put 'else do;'; put 'if format2='''' then format=cats(length,''.'');'; put 'else if upcase(format2)=''DATETIME'' and formatl=0 then format=''DATETIME.'';'; put 'else format=cats(format2,formatl,''.'',formatd);'; put 'type=''num'';'; put 'end;'; put 'if name in ('''',%upcase(%mf_getQuotedStr(&pk,dlm=%str(,),quote=S)))'; put 'then PK=''YES'';'; put 'length ctrlOptions $500;'; put 'if name="_____DELETE__THIS__RECORD_____" then ctrlOptions=''["No","Yes"]'';'; put 'else ctrlOptions='''';'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc at 242 (vars3 step) in &_program \n'; put '%superq(syserrortext)'; put ')'; put ')'; put '%global jsdttmvars jsdtvars jstmvars;'; put 'data _null_;'; put 'set vars3 end=last;'; put 'if _n_>1 then comma='','';'; put 'length coltype $500.;'; put 'format=upcase(format);'; put 'coltype=cats(comma,''{"data":"'',name,''"'');'; put 'if ctrlOptions ne '''' then'; put 'colType=cats(coltype,'',"type":"dropdown","source":'',ctrlOptions,"}");'; put 'else if type=''num'' then do;'; put 'if format=:''DATETIME'' or format=:''E8601DT'' or format=:''NLDATM'''; put 'then do;'; put 'colType=cats(coltype'; put ','',"type":"date","dateFormat":"YYYY-MM-DD HH:mm:ss"'''; put ','',"correctFormat":"true"}'');'; put '/* build var list to reformat datetimes in javascript format */'; put 'call symput(''jsdttmvars'',symget(''jsdttmvars'')!!'' ''!!name);'; put 'end;'; put 'else if format=:''DATE'' or format=:''DDMMYY'' or format=:''MMDDYY'''; put 'or format=:''YYMMDD'' or format=:''E8601DA'' or format=:''B8601DA'''; put 'or format=:''MONYY'' or format=:''NLDATE'''; put 'then do;'; put '/* see bottom of file for more date formats!! */'; put '/* also when updating, update stagedata.sas and mp_getcols.sas'; put 'and mpe_loader.sas */'; put 'colType=cats(coltype,'',"type":"date","dateFormat":"YYYY-MM-DD"'''; put '/*colType=cats(coltype,'',"type":"date","dateFormat":"MM/DD/YYYY"''*/'; put ','',"correctFormat":"true"}'');'; put '/* build var list to reformat as javascript dates */'; put 'call symput(''jsdtvars'',symget(''jsdtvars'')!!'' ''!!name);'; put 'end;'; put 'else if format=:''TIME'' or format=:''HHMM'' then do;'; put 'colType=cats(coltype,'',"type":"time","timeFormat":"HH:mm:ss"'''; put ','',"correctFormat":"true"}'');'; put '/* build var list to reformat as javascript times */'; put 'call symput(''jstmvars'',symget(''jstmvars'')!!'' ''!!name);'; put 'end;'; put 'else do;'; put '/* is standard numeric but need to ascertain precision */'; put 'retain base ''000000000000000000'';'; put 'if formatd>0 then numFormat=cats(''.'',substr(base,1,formatd));'; put 'colType=cats(coltype,'',"type":"numeric","format":"0'',numFormat,''"}'');'; put 'end;'; put 'end;'; put 'else colType=cats(coltype,''}'');'; put 'length concatcoltype $32767;'; put 'retain concatcoltype;'; put 'concatcoltype=cats(concatcoltype,coltype);'; put 'if last then call symputx(''colType'',strip(concatcoltype),''g'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc at 283 (null step) in &_program)'; put ')'; put 'PROC FORMAT;'; put 'picture yymmddThhmmss (default=28) other=''%0Y-%0m-%0d %0H:%0M:%0s'''; put '(datatype=datetime);'; put 'picture JSyymmdd other=''%0Y-%0m-%0d'' (datatype=date);'; put 'picture JShhmmss (default=16) other=''%0H:%0M:%0s'' (datatype=time);'; put 'RUN;'; put '/* before we send the data, need to rebuild all date & datetime vars as char*/'; put '%let finalvars=%mf_getvarlist(work.outdata);'; put 'data sasdata;'; put '/* set formats & col order ahead of rename+import */'; put 'informat &finalvars ;'; put '/* read dataset and rename date / datetime vars as necessary */'; put 'set outdata'; put '%if %length(&jsdttmvars&jsdtvars&jstmvars)>0 %then %do;'; put '(rename=('; put '%local dtvarnum dtvar tmvar;'; put '/* temp datetime vars end in _____ */'; put '%do dtvarnum=1 %to %sysfunc(countw(&jsdttmvars,%str( )));'; put '%let dtvar=%scan(&jsdttmvars ,&dtvarnum);'; put '&dtvar=_____&dtvarnum._____'; put '%end;'; put '/* temp date vars do not end in _____ */'; put '%do dtvarnum=1 %to %sysfunc(countw(&jsdtvars,%str( )));'; put '%let dtvar=%scan( &jsdtvars,&dtvarnum);'; put '&dtvar=_____&dtvarnum'; put '%end;'; put '/* temp time vars end in ___tm */'; put '%do tmvarnum=1 %to %sysfunc(countw(&jstmvars,%str( )));'; put '%let tmvar=%scan( &jstmvars,&tmvarnum);'; put '&tmvar=_____&tmvarnum.___tm'; put '%end;'; put '))'; put '%end;'; put ';'; put '%if %length(&jsdttmvars)>0 %then %do ;'; put '%do dtvarnum=1 %to %sysfunc(countw(&jsdttmvars,%str( )));'; put '%let dtvar=%scan(&jsdttmvars,&dtvarnum);'; put '&dtvar=cats(put(_____&dtvarnum._____,yymmddThhmmss28.));'; put 'if &dtvar="ERROR" then call missing(&dtvar);'; put 'drop _____&dtvarnum._____;'; put '%end;'; put '%end;'; put '%if %length(&jsdtvars)>0 %then %do;'; put '%do dtvarnum=1 %to %sysfunc(countw(&jsdtvars,%str( )));'; put '%let dtvar=%scan(&jsdtvars,&dtvarnum);'; put '&dtvar=cats(put(_____&dtvarnum,JSyymmdd.));'; put 'if &dtvar="ERROR" then call missing(&dtvar);'; put 'drop _____&dtvarnum;'; put '%end;'; put '%end;'; put '%if %length(&jstmvars)>0 %then %do;'; put '%do tmvarnum=1 %to %sysfunc(countw(&jstmvars,%str( )));'; put '%let tmvar=%scan(&jstmvars,&tmvarnum);'; put '&tmvar=cats(put(_____&tmvarnum.___tm,JShhmmss14.));'; put 'if &tmvar="ERROR" then call missing(&tmvar);'; put 'drop _____&tmvarnum.___tm;'; put '%end;'; put '%end;'; put 'output;'; put 'run;'; put '/* get the relevant approvers for the drop down */'; put '%put getting approvers;'; put '%local sas_groups sas_i sas_group;'; put 'proc sql noprint;'; put 'select distinct sas_Group into: sas_groups separated by "|"'; put 'from &mpelib..mpe_security'; put 'where libref="%scan(&orig_libds,1,.)"'; put 'and dsn="%scan(&orig_libds,2,.)"'; put 'and access_level=''APPROVE'''; put 'and &dc_dttmtfmt. lt TX_TO;'; put '%if %length(&sas_groups)=0 %then %do;'; put '%dc_getgroupmembers(&dc_admin_group,outds=work.access1)'; put '%end;'; put '%else %do sas_i=1 %to %sysfunc(countw(&sas_groups,%str(|)));'; put '%let sas_group=%scan(&sas_Groups,&sas_i,%str(|));'; put '%dc_getgroupmembers(&sas_group,outds=work.temp&sas_i)'; put 'proc append base=work.access1 data=work.temp&sas_i;run;'; put '%end;'; put '%mend mpestp_getdata;'; put '%mpestp_getdata()'; put '%mp_abort(mode=INCLUDE)'; put '/* extract column level security rules */'; put '%mpe_columnlevelsecurity(%scan(&libds,1,.),%scan(&libds,2,.),work.sasdata'; put ',mode=EDIT'; put ',clsds=&mpelib..mpe_column_level_security'; put ',groupds=work.groups /* was created in mpe_filtermaster */'; put ',outds=work.sasdata1'; put ',outmeta=work.cls_rules'; put ')'; put '/* get labels */'; put '%mpe_getlabels(COLUMNS,sasdata1,outds=spec)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc extracting spec info)'; put ')'; put '/* extract col info */'; put '%mp_getcols(&libds, outds=cols1)'; put '/* join with cls rules */'; put 'proc sql;'; put 'create table work.cols as'; put 'select a.NAME'; put ',a.VARNUM'; put ',a.LABEL'; put ',a.FMTNAME'; put ',a.DDTYPE'; put ',case b.cls_hide'; put 'when 1 then ''HIDE'''; put 'when 0 then ''EDIT'''; put 'else ''READ'' end as CLS_RULE'; put ',c.memlabel'; put ',c.desc'; put ',c.longdesc'; put 'from work.cols1 a'; put 'left join work.cls_rules b'; put 'on a.NAME=b.CLS_VARIABLE_NM'; put 'left join work.spec c'; put 'on a.NAME=c.NAME;'; put 'proc sql;'; put 'create table approvers as select distinct membername as personname'; put ',membername as email, membername as userid'; put 'from work.access1;'; put '/*'; put 'create table access3 as select b.userid,b.email'; put 'from access2 a'; put ',support.users b'; put 'where a.personname=b.userid'; put 'and a.personname ne "%mf_getuser()"'; put 'and %sysfunc(datetime()) lt b.tx_to_dttm'; put 'order by 1;'; put '*/'; put 'data _null_;'; put 'infile filtref end=eof;'; put 'input;'; put 'length filter_text $32767;'; put 'retain filter_text;'; put 'filter_text=catx('' '',filter_text,_infile_);'; put 'if eof then do;'; put 'if cats(filter_text)=''1=1'' then filter_text='''';'; put 'call symputx(''filter_text'',filter_text);'; put 'end;'; put 'run;'; put '%put params;'; put '%let ismap=0;'; put 'proc sql noprint;'; put 'select count(*) into: ismap from &mpelib..mpe_xlmap_info'; put 'where XLMAP_TARGETLIBDS="&orig_libds" and &dc_dttmtfmt. le TX_TO;'; put 'data sasparams;'; put 'length colHeaders $20000 filter_text $32767;'; put 'colHeaders=cats(upcase("%mf_getvarlist(sasdata1,dlm=%str(,))"));'; put 'pkCnt=countw("&pk");'; put 'pk="&pk";'; put 'dtvars=compbl("&jsdtvars");'; put 'dttmvars=compbl("&jsdttmvars");'; put 'tmvars=compbl("&jstmvars");'; put 'length coltype $32000;'; put 'coltype=symget(''coltype'');'; put 'loadtype=symget(''loadtype'');'; put 'if trim(symget(''rk_underlying'')) ne '''' then rk_flag=1;'; put 'else rk_flag=0;'; put 'filter_text=symget(''filter_text'');'; put 'if %mf_nobs(work.cls_rules)=0 then cls_flag=0;'; put 'else cls_flag=1;'; put 'put (_all_)(=);'; put 'if "&orig_libds"="&mpelib..MPE_XLMAP_DATA" or &ismap ne 0 then ismap=1;'; put 'else ismap=0;'; put 'run;'; put '/* Extract validation DQ Rules */'; put 'proc sort data=&mpelib..mpe_validations'; put '(where=(&dc_dttmtfmt. le TX_TO'; put 'and BASE_LIB="%scan(&orig_libds,1,.)" and BASE_DS="%scan(&orig_libds,2,.)"'; put 'and rule_active=1))'; put 'out=dqrules (keep=base_col rule_type rule_value);'; put 'by base_col rule_type rule_value;'; put 'run;'; put '/* merge with NOTNULL constraints in the physical table */'; put 'proc sql;'; put 'create table _data_ as'; put 'select * from dqrules'; put 'union'; put 'select upcase(name) as base_col'; put ',''NOTNULL'' as rule_type'; put ','''' as rule_value'; put 'from dictionary.columns'; put 'where upcase(libname)="%scan(&orig_libds,1,.)"'; put 'and upcase(memname)="%scan(&orig_libds,2,.)"'; put 'and upcase(name) in (select name from vars3)'; put 'and notnull=''yes'''; put 'order by 1,2,3;'; put 'data dqrules;'; put 'set &syslast;'; put 'by base_col rule_type rule_value;'; put 'if last.rule_type;'; put 'if rule_type in (''HARDSELECT'',''SOFTSELECT'') and countw(rule_value)=3 then'; put 'do;'; put 'retain x 0; x+1;'; put 'call symputx(cats(''source'',x),rule_value);'; put '%let sourcecnt=0;'; put 'call symputx(''sourcecnt'',x);'; put 'call symputx(cats(''base_col'',x),base_col);'; put 'end;'; put 'run;'; put 'proc sql;'; put 'create table dqdata as'; put 'select distinct base_column as base_col length=32'; put ',upcase(base_column) as rule_value length=74 /* deprecated */'; put ',selectbox_value as rule_data length=1000'; put ',selectbox_order'; put 'from &mpelib..mpe_selectbox'; put 'where &dc_dttmtfmt. lt ver_to_dttm'; put 'and select_lib="%scan(&orig_libds,1,.)"'; put 'and select_ds="%scan(&orig_libds,2,.)";'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc during DQ rule validation)'; put ')'; put '/* extract selectbox data */'; put '%macro dq_selects();'; put '%local x source lib ds col;'; put '%do x=1 %to &sourcecnt;'; put '%let source=&&source&x;'; put '%let lib=%scan(&source,1,.);'; put '%let ds=%scan(&source,2,.);'; put '%let col=%scan(&source,3,.);'; put '%put &=source;'; put '%put &=lib;'; put '%dc_assignlib(READ,&lib)'; put 'proc sql;'; put 'create table dqdata&x as'; put 'select distinct "&&base_col&x" as base_col length=32'; put ',"&source" as rule_value length=74'; put ',cats(&col) as rule_data length=1000'; put ',&col as tmp_order'; put 'from &lib..&ds'; put 'order by tmp_order;'; put '/* ensure both numerics and char vals are ordered correctly */'; put 'data work.dqdata&x (drop=tmp_order);'; put 'set work.dqdata&x;'; put 'selectbox_order=_n_;'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc when selecting &&base_col&x from &orig_libds)'; put ')'; put 'proc append base=dqdata data=dqdata&x;run;'; put 'proc sql; drop table dqdata&x;'; put '%end;'; put '%mend dq_selects;'; put '%dq_selects()'; put 'proc sort data=dqdata;'; put '/* order by selectbox_order then the value */'; put 'by base_col selectbox_order rule_data;'; put 'run;'; put '%mp_getmaxvarlengths(work.sasdata1,outds=maxvarlengths)'; put 'data maxvarlengths;'; put 'set maxvarlengths;'; put 'if name=''_____DELETE__THIS__RECORD_____'' then mAXLEN=3;'; put 'run;'; put 'data xl_rules;'; put 'set &mpelib..mpe_excel_config;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(xl_libref)="%scan(&orig_libds,1,.)";'; put 'where also upcase(xl_table)="%scan(&orig_libds,2,.)";'; put 'where also xl_active=1;'; put 'keep xl_column xl_rule;'; put 'run;'; put '%mpe_dsmeta(&orig_libds, outds=dsmeta)'; put '%mpe_getversions(&mpelib,'; put '%scan(&orig_libds,1,.),'; put '%scan(&orig_libds,2,.),'; put 'outds=versions'; put ')'; put '/* send to the client */'; put '%webout(OPEN)'; put '%webout(OBJ,approvers)'; put '%webout(OBJ,cols)'; put '%webout(OBJ,dqdata,missing=STRING)'; put '%webout(OBJ,dqrules)'; put '%webout(OBJ,dsmeta)'; put '%webout(OBJ,maxvarlengths)'; put '%webout(OBJ,query)'; put '%webout(OBJ,sasdata1,fmt=N,missing=STRING,showmeta=YES,dslabel=sasdata)'; put '%webout(OBJ,sasparams)'; put '%webout(OBJ,versions)'; put '%webout(OBJ,xl_rules)'; put '%webout(CLOSE)'; put '/*'; put '$N8601Bw'; put '$N8601BAw'; put '$N8601Ew'; put '$N8601EAw'; put '$N8601EHw'; put '$N8601EXw'; put '$N8601Hw'; put '$N8601Xw'; put 'B8601DAw'; put 'B8601DNw'; put 'B8601DTw'; put 'B8601DZw'; put 'B8601LZw'; put 'B8601TMw'; put 'B8601TZw'; put 'DATEw'; put 'DATEAMPMw'; put 'DATETIMEw'; put 'DAYw'; put 'DDMMYYw'; put 'DDMMYYxw'; put 'DOWNAMEw'; put 'DTDATEw'; put 'DTMONYYw'; put 'DTWKDATXw'; put 'DTYEARw'; put 'DTYYQCw'; put 'E8601DAw'; put 'E8601DNw'; put 'E8601DTw'; put 'E8601DZw'; put 'E8601LZw'; put 'E8601TMw'; put 'E8601TZw'; put 'HHMMw'; put 'HOURw'; put 'JULDAYw'; put 'JULIANw'; put 'MMDDYYw'; put 'MMDDYYxw'; put 'MMSSw'; put 'MMYYw'; put 'MMYYxw'; put 'MONNAMEw'; put 'MONTHw'; put 'MONYYw'; put 'PDJULGw'; put 'PDJULIw'; put 'QTRw'; put 'QTRRw'; put 'TIMEw'; put 'TIMEAMPMw'; put 'TODw'; put 'WEEKDATEw'; put 'WEEKDATXw'; put 'WEEKDAYw'; put 'WEEKUw'; put 'WEEKVw'; put 'WEEKWw'; put 'WORDDATEw'; put 'WORDDATXw'; put 'YEARw'; put 'YYMMw'; put 'YYMMxw'; put 'YYMMDDw'; put 'YYMMDDxw'; put 'YYMONw'; put 'YYQw'; put 'YYQxw'; put 'YYQRw'; put 'YYQRxw'; put '$N8601BAw'; put '$N8601Ew'; put '$N8601EAw'; put '$N8601EHw'; put '$N8601EXw'; put '$N8601Hw'; put '$N8601Xw'; put 'B8601DAw'; put 'B8601DNw'; put 'B8601DTw'; put 'B8601DZw'; put 'B8601LZw'; put 'B8601TMw'; put 'B8601TZw'; put 'E8601DAw'; put 'E8601DNw'; put 'E8601DTw'; put 'E8601DZw'; put 'E8601LZw'; put 'E8601TMw'; put 'E8601TZw'; put '*/'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=getdynamiccolvals; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mc,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mv_getfoldermembers(root=/'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',outds=mv_getfolders'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put '%if %mf_isblank(&root)=1 %then %let root=/;'; put 'options noquotelenmax;'; put '/* request the client details */'; put '%local fname1 libref1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '%if "&root"="/" %then %do;'; put '/* if root just list root folders */'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/folders/rootFolders?limit=1000";'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* first get parent folder id */'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/folders/folders/@item?path=&root";'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put 'libname &libref1 JSON fileref=&fname1;'; put '/* now get the followon link to list members */'; put '%local href cnt;'; put '%let cnt=0;'; put 'data _null_;'; put 'length rel href $512;'; put 'call missing(rel,href);'; put 'set &libref1..links;'; put 'if rel=''members'' then do;'; put 'url=cats("''","&base_uri",href,"?limit=10000''");'; put 'call symputx(''href'',url,''l'');'; put 'call symputx(''cnt'',1,''l'');'; put 'end;'; put 'run;'; put '%if &cnt=0 %then %do;'; put '%put NOTE:;%put NOTE- No members found in &root!!;%put NOTE-;'; put '%return;'; put '%end;'; put '%local fname2 libref2;'; put '%let fname2=%mf_getuniquefileref();'; put '%let libref2=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname2 &oauth_bearer'; put 'url=%unquote(%superq(href));'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put 'libname &libref2 JSON fileref=&fname2;'; put 'data &outds;'; put 'length id $36 name $128 uri $64 type $32 description $256;'; put 'if _n_=1 then call missing (of _all_);'; put 'set &libref2..items;'; put 'run;'; put 'filename &fname2 clear;'; put 'libname &libref2 clear;'; put '%end;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getfoldermembers;'; put '%macro mv_getjobcode(outref=0,outfile=0'; put ',name=0,path=0'; put ',contextName=SAS Job Execution compute context'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',mdebug=0'; put ');'; put '%local dbg bufsize varcnt fname1 fname2 errmsg;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname local entry vars:;'; put '%put _local_;'; put '%end;'; put '%else %let dbg=*;'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put '%mp_abort(iftrue=("&path"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job Path not provided)'; put ')'; put '%mp_abort(iftrue=("&name"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job Name not provided)'; put ')'; put '%mp_abort(iftrue=("&outfile"="0" and "&outref"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Output destination (file or fileref) must be provided)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put 'data;run;'; put '%local foldermembers;'; put '%let foldermembers=&syslast;'; put '%mv_getfoldermembers(root=&path'; put ',access_token_var=&access_token_var'; put ',grant_type=&grant_type'; put ',outds=&foldermembers'; put ')'; put '%local joburi;'; put '%let joburi=0;'; put 'data _null_;'; put 'length name uri $512;'; put 'call missing(name,uri);'; put 'set &foldermembers;'; put 'if name="&name" and uri=:''/jobDefinitions/definitions'''; put 'then call symputx(''joburi'',uri);'; put 'run;'; put '%mp_abort(iftrue=("&joburi"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job &path/&name not found)'; put ')'; put '/* prepare request*/'; put '%let fname1=%mf_getuniquefileref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri&joburi";'; put 'headers "Accept"="application/vnd.sas.job.definition+json"'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put ';'; put 'run;'; put '%if &mdebug=1 %then %do;'; put 'data _null_;'; put 'infile &fname1;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%end;'; put '%mp_abort('; put 'iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200 and &SYS_PROCHTTP_STATUS_CODE ne 201)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%let fname2=%mf_getuniquefileref();'; put 'filename &fname2 temp ;'; put '/* cannot use lua IO package as not available in Viya 4 */'; put '/* so use data step to read the JSON until the string `"code":"` is found */'; put 'data _null_;'; put 'file &fname2 recfm=n;'; put 'infile &fname1 lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'retain startwrite 0;'; put 'if startwrite=0 and sourcechar=''"'' then do;'; put 'reentry:'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''c'' then do;'; put 'reentry2:'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''o'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''d'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''e'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''"'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar='':'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''"'' then do;'; put 'putlog ''code found'';'; put 'startwrite=1;'; put 'input sourcechar $ 1. @@;'; put 'end;'; put 'end;'; put 'else if sourcechar=''c'' then goto reentry2;'; put 'end;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put '/* once the `"code":"` string is found, write until unescaped `"` is found */'; put 'if startwrite=1 then do;'; put 'if sourcechar=''\'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar in (''"'',''\'') then put sourcechar char1.;'; put 'else if sourcechar=''n'' then put ''0A''x;'; put 'else if sourcechar=''r'' then put ''0D''x;'; put 'else if sourcechar=''t'' then put ''09''x;'; put 'else if sourcechar=''u'' then do;'; put 'length uni $4;'; put 'input uni $ 4. @@;'; put 'sourcechar=unicode(''\u''!!uni);'; put 'put sourcechar char1.;'; put 'end;'; put 'else do;'; put 'call symputx(''errmsg'',"Uncaught escape char: "!!sourcechar,''l'');'; put 'call symputx(''syscc'',99);'; put 'stop;'; put 'end;'; put 'end;'; put 'else if sourcechar=''"'' then stop;'; put 'else put sourcechar char1.;'; put 'end;'; put 'run;'; put '%mp_abort(iftrue=("&syscc"="99")'; put ',mac=mv_getjobcode'; put ',msg=%str(&errmsg)'; put ')'; put '/* export to desired destination */'; put '%if "&outref"="0" %then %do;'; put 'data _null_;'; put 'file "&outfile" lrecl=32767;'; put '%end;'; put '%else %do;'; put 'filename &outref temp;'; put 'data _null_;'; put 'file &outref;'; put '%end;'; put 'infile &fname2;'; put 'input;'; put 'put _infile_;'; put '&dbg. putlog _infile_;'; put 'run;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname exit vars:;'; put '%put _local_;'; put '%end;'; put '%else %do;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'filename &fname2 clear;'; put '%end;'; put '%mend mv_getjobcode;'; put '%macro dc_getservicecode(loc=,outref=);'; put '%local name;'; put '%let name=%scan(&loc,-1,/);'; put '%mv_getjobcode(path=%substr(&loc,1,%length(&loc)-%length(&name)-1)'; put ',name=&name'; put ',outref=&outref'; put ')'; put '%mend dc_getservicecode;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '%macro mp_include(fileref'; put ',prefix=_'; put ',opts=SOURCE2'; put ',errds=work.mp_abort_errds'; put ')/*/STORE SOURCE*/;'; put '/* prepare precode */'; put '%local tempref;'; put '%let tempref=%mf_getuniquefileref();'; put 'data _null_;'; put 'file &tempref;'; put 'set sashelp.vextfl(where=(fileref="%upcase(&fileref)"));'; put 'put ''%let _SYSINCLUDEFILEDEVICE='' xengine '';'';'; put 'name=scan(xpath,-1,''/\'');'; put 'put ''%let _SYSINCLUDEFILENAME='' name '';'';'; put 'path=subpad(xpath,1,length(xpath)-length(name)-1);'; put 'put ''%let _SYSINCLUDEFILEDIR='' path '';'';'; put 'put ''%let _SYSINCLUDEFILEFILEREF='' "&fileref;";'; put 'run;'; put '/* prepare the errds */'; put 'data &errds;'; put 'length msg mac $1000;'; put 'call missing(msg,mac);'; put 'iftrue=''1=0'';'; put 'run;'; put '/* include the include */'; put '%inc &tempref &fileref/&opts;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=%str(&_SYSINCLUDEFILEDIR/&_SYSINCLUDEFILENAME)'; put ',msg=%str(syscc=&syscc after executing &_SYSINCLUDEFILENAME)'; put ')'; put 'filename &tempref clear;'; put '%mend mp_include;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mp_validatecol(incol,rule,outcol);'; put '/* tempcol is given a unique name with every invocation */'; put '%local tempcol;'; put '%let tempcol=%mf_getuniquename();'; put '%if &rule=ISINT %then %do;'; put '&outcol=0;'; put 'if not missing(&incol) then do;'; put '&tempcol=input(&incol,?? best32.);'; put 'if not missing(&tempcol) then if mod(&tempcol,1)=0 then &outcol=1;'; put 'end;'; put 'drop &tempcol;'; put '%end;'; put '%else %if &rule=ISNUM %then %do;'; put '/*'; put 'credit SOREN LASSEN'; put 'https://sasmacro.blogspot.com/2009/06/welcome-isnum-macro.html'; put '*/'; put '&tempcol=input(&incol,?? best32.);'; put 'if missing(&tempcol) then &outcol=0;'; put 'else &outcol=1;'; put 'drop &tempcol;'; put '%end;'; put '%else %if &rule=LIBDS %then %do;'; put '/* match libref.dataset */'; put 'if _n_=1 then do;'; put 'retain &tempcol;'; put '&tempcol=prxparse(''/^[_a-z]\w{0,7}\.[_a-z]\w{0,31}$/i'');'; put 'if missing(&tempcol) then do;'; put 'putlog ''ERR'' +(-1) "OR: Invalid expression for LIBDS";'; put 'stop;'; put 'end;'; put 'drop &tempcol;'; put 'end;'; put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; put 'else &outcol=0;'; put '%end;'; put '%else %if &rule=FORMAT %then %do;'; put '/* match valid format - regex could probably be improved */'; put 'if _n_=1 then do;'; put 'retain &tempcol;'; put '&tempcol=prxparse(''/^[_a-z\$]\w{0,31}\.[0-9]*$/i'');'; put 'if missing(&tempcol) then do;'; put 'putlog ''ERR'' +(-1) "OR: Invalid expression for FORMAT";'; put 'stop;'; put 'end;'; put 'drop &tempcol;'; put 'end;'; put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; put 'else &outcol=0;'; put '%end;'; put '%mend mp_validatecol;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file getdynamiccolvals.sas'; put '@brief Provide dynamic list of values according to a SAS program or service'; put '@details Configuration is made in the MPE_VALIDATIONS table, the dropdown'; put 'can be either a SOFTSELECT_HOOK or HARDSELECT_HOOK.'; put 'Results are sent in ARRAY format for efficiency.'; put '

Service Inputs

'; put '
SASCONTROLTABLE
'; put '|LIBDS:$41.|VARIABLE_NM:$32.|'; put '|---|---|'; put '|DC258467.MPE_SECURITY|SAS_GROUP|'; put '
SOURCE_ROW
'; put 'This contains the raw values from the source table.'; put '

Service Outputs

'; put '
DYNAMIC_VALUES
'; put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; put 'provided, it is added automatically.'; put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; put '|---|---|---|'; put '|1|$77.43|77.43|'; put '|2|$88.43|88.43|'; put '
DYNAMIC_EXTENDED_VALUES
'; put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; put 'populate dropdowns for _other_ cells in the _same_ row.'; put 'Should be used sparingly! The use of large tables here can slow down the'; put 'browser.'; put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|'; put '|---|---|---|'; put '|1|DISCOUNT_RT|"50%"|N|0.5||'; put '|1|DISCOUNT_RT|"40%"|N|0.4||'; put '|1|DISCOUNT_RT|"30%"|N|0.3||'; put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|'; put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|'; put '|2|DISCOUNT_RT|"50%"|N|0.5||'; put '|2|DISCOUNT_RT|"40%"|N|0.4||'; put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|'; put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|'; put '

SAS Macros

'; put '@li dc_assignlib.sas'; put '@li dc_getservicecode.sas'; put '@li mf_nobs.sas'; put '@li mp_abort.sas'; put '@li mp_include.sas'; put '@li mp_validatecol.sas'; put '@li mf_getapploc.sas'; put '@version 9.3'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '/**'; put '* Validate inputs'; put '*/'; put '%let err_msg=;'; put 'data work.intest;'; put 'set work.SASCONTROLTABLE;'; put '/* validate libds */'; put '%mp_validatecol(LIBDS,LIBDS,is_libds)'; put '/* validate varname */'; put 'is_name=nvalid(variable_nm,''v7'');'; put 'putlog (_all_)(=);'; put 'if is_libds ne 1 then do;'; put 'msg=''ERR''!!''OR: Invalid libds:''!!libds;'; put 'call symputx(''err_msg'',msg);'; put 'stop;'; put 'end;'; put 'else if is_name ne 1 then do;'; put 'msg=''ERR''!!''OR: Invalid name:''!!variable_nm;'; put 'call symputx(''err_msg'',msg);'; put 'stop;'; put 'end;'; put 'else do;'; put 'call symputx(''variable_nm'',variable_nm);'; put 'call symputx(''libds'',libds);'; put 'end;'; put 'output;'; put 'stop;'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc after reading work.sascontroltable)'; put ')'; put '%mp_abort(iftrue= (%mf_nobs(work.intest)=0)'; put ',mac=&_program'; put ',msg=%str(&err_msg)'; put ')'; put '%dc_assignlib(READ,%scan(&libds,1,.))'; put '/* ensure that work.dynamic_extended_values exists */'; put 'data work.dynamic_extended_values;'; put 'run;'; put '/**'; put '* Get the code to execute'; put '*/'; put 'data work.codetest;'; put 'set &mpelib..MPE_VALIDATIONS;'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and base_lib="%scan(&libds,1,.)"'; put 'and base_ds="%scan(&libds,2,.)"'; put 'and base_col="&variable_nm"'; put 'and RULE_TYPE in (''HARDSELECT_HOOK'',''SOFTSELECT_HOOK'')'; put 'and RULE_ACTIVE=1;'; put 'putlog (_all_)(=);'; put 'if length(rule_value)>1 then do;'; put 'call symputx(''pgmloc'',rule_value);'; put 'if scan(upcase(rule_value),-1,''.'')=''SAS'' then do;'; put 'call symputx(''pgmtype'',''PGM'');'; put 'call symputx(''pgmloc'',rule_value);'; put 'end;'; put 'else do;'; put 'apploc="%mf_getapploc()";'; put 'if substr(rule_value,1,1) ne ''/'''; put 'then rule_value=cats(apploc,''/'',rule_value);'; put 'call symputx(''pgmloc'',rule_value);'; put 'call symputx(''pgmtype'',''JOB'');'; put 'end;'; put 'output;'; put 'stop;'; put 'end;'; put 'else stop;'; put 'run;'; put '%mp_abort(iftrue= (%mf_nobs(work.codetest)=0)'; put ',mac=&_program'; put ',msg=%str(Hook not found in &mpelib..mpe_validations for &libds..&variable_nm)'; put ')'; put '%macro getdynamiccolvals();'; put '%if &pgmtype=PGM %then %do;'; put 'filename sascode "&pgmloc";'; put '%end;'; put '%else %do;'; put '%dc_getservicecode(loc=&pgmloc'; put ',outref=sascode'; put ')'; put '%end;'; put '%mend getdynamiccolvals;'; put '%getdynamiccolvals()'; put '/* execute the dynamic code */'; put '%mp_include(sascode)'; put '%mp_abort(mode=INCLUDE)'; put '/* ensure that the DISPLAY_INDEX variable exists */'; put 'data work.dynamic_values;'; put 'length DISPLAY_INDEX 8 DISPLAY_VALUE $32767;'; put 'if _n_=1 then call missing(of _all_);'; put 'set work.dynamic_values;'; put 'display_index=coalesce(display_index,_n_);'; put 'keep DISPLAY_INDEX DISPLAY_VALUE RAW_VALUE;'; put 'run;'; put '/* ensure that work.dynamic_extended_values exists with correct types */'; put 'data work.dynamic_extended_values;'; put 'length DISPLAY_INDEX 8 EXTRA_COL_NAME $32 DISPLAY_VALUE $5000 DISPLAY_TYPE $1'; put 'RAW_VALUE_NUM 8 RAW_VALUE_CHAR $5000 FORCED_VALUE 8;'; put 'if _n_=1 then call missing(of _all_);'; put 'set work.dynamic_extended_values;'; put 'run;'; put '%webout(OPEN)'; put '%webout(ARR,dynamic_values,fmt=N)'; put '%webout(ARR,dynamic_extended_values,fmt=N)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=getlog; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_wordsInStr1ButNotStr2('; put 'Str1= /* string containing words to extract */'; put ',Str2= /* used to compare with the extract string */'; put ')/*/STORE SOURCE*/;'; put '%local count_base count_extr i i2 extr_word base_word match outvar;'; put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; put '%put base string (str1)= &str1;'; put '%put compare string (str2) = &str2;'; put '%return;'; put '%end;'; put '%let count_base=%sysfunc(countw(&Str2));'; put '%let count_extr=%sysfunc(countw(&Str1));'; put '%do i=1 %to &count_extr;'; put '%let extr_word=%scan(&Str1,&i,%str( ));'; put '%let match=0;'; put '%do i2=1 %to &count_base;'; put '%let base_word=%scan(&Str2,&i2,%str( ));'; put '%if &extr_word=&base_word %then %let match=1;'; put '%end;'; put '%if &match=0 %then %let outvar=&outvar &extr_word;'; put '%end;'; put '&outvar'; put '%mend mf_wordsInStr1ButNotStr2;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro mp_dirlist(path=%sysfunc(pathname(work))'; put ', fref=0'; put ', outds=work.mp_dirlist'; put ', getattrs=NO'; put ', showparent=NO'; put ', maxdepth=0'; put ', level=0 /* The level of recursion to perform. For internal use only. */'; put ')/*/STORE SOURCE*/;'; put '%let getattrs=%upcase(&getattrs)XX;'; put '/* temp table */'; put '%local out_ds;'; put 'data;run;'; put '%let out_ds=%str(&syslast);'; put '/* drop main (top) table if it exists */'; put '%if &level=0 %then %do;'; put '%mp_dropmembers(%scan(&outds,-1,.), libref=WORK)'; put '%end;'; put 'data &out_ds(compress=no'; put 'keep=file_or_folder filepath filename ext msg directory level'; put ');'; put 'length directory filepath $2000 fref fref2 $8 file_or_folder $6 filename $255'; put 'ext $20 msg $200 foption $16;'; put 'if _n_=1 then call missing(of _all_);'; put 'retain level &level;'; put '%if &fref=0 %then %do;'; put 'rc = filename(fref, "&path");'; put '%end;'; put '%else %do;'; put 'fref="&fref";'; put 'rc=0;'; put '%end;'; put 'if rc = 0 then do;'; put 'did = dopen(fref);'; put 'if did=0 then do;'; put 'putlog "NOTE: This directory is empty, or does not exist - &path";'; put 'msg=sysmsg();'; put 'put (_all_)(=);'; put 'stop;'; put 'end;'; put '/* attribute is OS-dependent - could be "Directory" or "Directory Name" */'; put 'numopts=doptnum(did);'; put 'do i=1 to numopts;'; put 'foption=doptname(did,i);'; put 'if foption=:''Directory'' then i=numopts;'; put 'end;'; put 'directory=dinfo(did,foption);'; put 'rc = filename(fref);'; put 'end;'; put 'else do;'; put 'msg=sysmsg();'; put 'put _all_;'; put 'stop;'; put 'end;'; put 'dnum = dnum(did);'; put 'do i = 1 to dnum;'; put 'filename = dread(did, i);'; put 'filepath=cats(directory,''/'',filename);'; put 'rc = filename(fref2,filepath);'; put 'midd=dopen(fref2);'; put 'dmsg=sysmsg();'; put 'if did > 0 then file_or_folder=''folder'';'; put 'rc=dclose(midd);'; put 'midf=fopen(fref2);'; put 'fmsg=sysmsg();'; put 'if midf > 0 then file_or_folder=''file'';'; put 'rc=fclose(midf);'; put 'if index(fmsg,''File is in use'') or index(dmsg,''is not a directory'')'; put 'then file_or_folder=''file'';'; put 'else if index(fmsg,''Insufficient authorization'') then file_or_folder=''file'';'; put 'else if file_or_folder='''' then file_or_folder=''locked'';'; put 'if file_or_folder=''file'' then do;'; put 'ext = prxchange(''s/.*\.{1,1}(.*)/$1/'', 1, filename);'; put 'if filename = ext then ext = '' '';'; put 'end;'; put 'else do;'; put 'ext='''';'; put 'file_or_folder=''folder'';'; put 'end;'; put 'output;'; put 'end;'; put 'rc = dclose(did);'; put '%if &showparent=YES and &level=0 %then %do;'; put 'filepath=directory;'; put 'file_or_folder=''folder'';'; put 'ext='''';'; put 'filename=scan(directory,-1,''/\'');'; put 'msg='''';'; put 'level=&level;'; put 'output;'; put '%end;'; put 'stop;'; put 'run;'; put '%if %substr(&getattrs,1,1)=Y %then %do;'; put 'data &out_ds;'; put 'set &out_ds;'; put 'length infoname infoval $60 fref $8;'; put 'if _n_=1 then call missing(fref);'; put 'rc=filename(fref,filepath);'; put 'drop rc infoname fid i close fref;'; put 'if file_or_folder=''file'' then do;'; put 'fid=fopen(fref);'; put 'if fid le 0 then do;'; put 'msg=sysmsg();'; put 'putlog "Could not open file:" filepath fid= ;'; put 'sasname=''_MCNOTVALID_'';'; put 'output;'; put 'end;'; put 'else do i=1 to foptnum(fid);'; put 'infoname=foptname(fid,i);'; put 'infoval=finfo(fid,infoname);'; put 'sasname=compress(infoname, ''_'', ''adik'');'; put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; put 'if upcase(sasname) ne ''FILENAME'' then output;'; put 'end;'; put 'close=fclose(fid);'; put 'end;'; put 'else do;'; put 'fid=dopen(fref);'; put 'if fid le 0 then do;'; put 'msg=sysmsg();'; put 'putlog "Could not open folder:" filepath fid= ;'; put 'sasname=''_MCNOTVALID_'';'; put 'output;'; put 'end;'; put 'else do i=1 to doptnum(fid);'; put 'infoname=doptname(fid,i);'; put 'infoval=dinfo(fid,infoname);'; put 'sasname=compress(infoname, ''_'', ''adik'');'; put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; put 'if upcase(sasname) ne ''FILENAME'' then output;'; put 'end;'; put 'close=dclose(fid);'; put 'end;'; put 'run;'; put 'proc sort;'; put 'by filepath sasname;'; put 'proc transpose data=&out_ds out=&out_ds(drop=_:);'; put 'id sasname;'; put 'var infoval;'; put 'by filepath file_or_folder filename ext ;'; put 'run;'; put '%end;'; put 'data &out_ds;'; put 'set &out_ds(where=(filepath ne ''''));'; put 'run;'; put '/**'; put '* The above transpose can mean that some updates create additional columns.'; put '* This necessitates the occasional use of datastep over proc append.'; put '*/'; put '%if %mf_existds(&outds) %then %do;'; put '%local basevars appvars newvars;'; put '%let basevars=%mf_getvarlist(&outds);'; put '%let appvars=%mf_getvarlist(&out_ds);'; put '%let newvars=%length(%mf_wordsinstr1butnotstr2(Str1=&appvars,Str2=&basevars));'; put '%if &newvars>0 %then %do;'; put 'data &outds;'; put 'set &outds &out_ds;'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc append base=&outds data=&out_ds force nowarn;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do;'; put 'proc append base=&outds data=&out_ds;'; put 'run;'; put '%end;'; put '/* recursive call */'; put '%if &maxdepth>&level or &maxdepth=MAX %then %do;'; put 'data _null_;'; put 'set &out_ds;'; put 'where file_or_folder=''folder'';'; put '%if &showparent=YES and &level=0 %then %do;'; put 'if filepath ne directory;'; put '%end;'; put 'length code $10000;'; put 'code=cats(''%nrstr(%mp_dirlist(path='',filepath,",outds=&outds"'; put ',",getattrs=&getattrs,level=%eval(&level+1),maxdepth=&maxdepth))");'; put 'put code=;'; put 'call execute(code);'; put 'run;'; put '%end;'; put '/* tidy up */'; put 'proc sql;'; put 'drop table &out_ds;'; put '%mend mp_dirlist;'; put '%macro mp_binarycopy('; put 'inloc= /* full path and filename of the object to be copied */'; put ',outloc= /* full path and filename of object to be created */'; put ',inref=____in /* override default to use own filerefs */'; put ',outref=____out /* override default to use own filerefs */'; put ',mode=CREATE'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%local mod;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if &mode=APPEND %then %let mod=mod;'; put '/* these IN and OUT filerefs can point to anything */'; put '%if &inref = ____in %then %do;'; put 'filename &inref &inloc lrecl=1048576 ;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref &outloc lrecl=1048576 &mod;'; put '%end;'; put '/* copy the file byte-for-byte */'; put 'data _null_;'; put 'infile &inref lrecl=1 recfm=n;'; put 'file &outref &mod recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%if &inref = ____in %then %do;'; put 'filename &inref clear;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref clear;'; put '%end;'; put '%mend mp_binarycopy;'; put '%macro mfs_httpheader(header_name'; put ',header_value'; put ')/*/STORE SOURCE*/;'; put '%global sasjs_stpsrv_header_loc;'; put '%local fref fid i;'; put '%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;'; put '%put &=fref &=sasjs_stpsrv_header_loc;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%mend mfs_httpheader;'; put '%macro mp_streamfile('; put 'contenttype=TEXT'; put ',inloc='; put ',inref=0'; put ',iftrue=%str(1=1)'; put ',outname='; put ',outref=_webout'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let contentype=%upcase(&contenttype);'; put '%let outref=%upcase(&outref);'; put '%local platform; %let platform=%mf_getplatform();'; put '/**'; put '* check engine type to avoid the below err message:'; put '* > Function is only valid for filerefs using the CACHE access method.'; put '*/'; put '%local streamweb;'; put '%let streamweb=0;'; put 'data _null_;'; put 'set sashelp.vextfl(where=(upcase(fileref)="&outref"));'; put 'if xengine=''STREAM'' then call symputx(''streamweb'',1,''l'');'; put 'run;'; put '%if &contentype=CSV %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/csv'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; put 'contenttype=''application/csv'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/csv)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=EXCEL %then %do;'; put '/* suitable for XLS format */'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/vnd.ms-excel'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; put 'contenttype=''application/vnd.ms-excel'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/vnd.ms-excel)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=GIF or &contentype=JPEG or &contentype=PNG %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"image/%lowcase(&contenttype)");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'contenttype="image/%lowcase(&contenttype)";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,image/%lowcase(&contenttype))'; put '%end;'; put '%end;'; put '%else %if &contentype=HTML or &contenttype=MARKDOWN %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"text/%lowcase(&contenttype)");'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json"'; put 'contenttype="text/%lowcase(&contenttype)"'; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,text/%lowcase(&contenttype))'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=TEXT %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/text'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; put 'contenttype=''application/text'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/text)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=WOFF or &contentype=WOFF2 or &contentype=TTF %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"font/%lowcase(&contenttype)");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'contenttype="font/%lowcase(&contenttype)";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,font/%lowcase(&contenttype))'; put '%end;'; put '%end;'; put '%else %if &contentype=XLSX %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'','; put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; put 'contenttype='; put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type'; put ',application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; put ')'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=ZIP %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/zip'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.zip'''; put 'contenttype=''application/zip'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/zip)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %do;'; put '%put %str(ERR)OR: Content Type &contenttype NOT SUPPORTED by &sysmacroname!;'; put '%end;'; put '%if &inref ne 0 %then %do;'; put '%mp_binarycopy(inref=&inref,outref=&outref)'; put '%end;'; put '%else %do;'; put '%mp_binarycopy(inloc="&inloc",outref=&outref)'; put '%end;'; put '%mend mp_streamfile;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file getlog.sas'; put '@brief Downloads the submission, useful if there is an error'; put '@details'; put '

SAS Macros

'; put '@li mf_verifymacvars.sas'; put '@li mf_getuser.sas'; put '@li mp_abort.sas'; put '@li mp_dirlist.sas'; put '@li mp_binarycopy.sas'; put '@li mp_streamfile.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(table)=0)'; put ',mac=&_program'; put ',msg=%str(Missing: table)'; put ')'; put '/* security checks */'; put '%let user=%mf_getuser();'; put '%let check_access=0;'; put 'proc sql noprint;'; put 'select count(*) into: check_access from &mpelib..mpe_loads'; put 'where csv_dir="&table" and user_nm="&user";'; put '%mp_abort(iftrue= (&check_access=0 )'; put ',msg=%str(&user not authorised to download audit data for &table)'; put ',mac=mpestp_getlog.sas'; put ')'; put 'ods package(ProdOutput) open nopf;'; put 'options notes source2 mprint;'; put '%mp_dirlist(outds=dirs, path=&mpelocapprovals/&TABLE)'; put 'data _null_;'; put 'set dirs;'; put 'if scan(filename,-1,''.'') not in (''sas7bdat'',''wpd'');'; put 'retain str1'; put '"ods package(ProdOutput) add file=''&mpelocapprovals/&TABLE/";'; put 'retain str2 "'' mimetype=''text/plain'' path=''contents/'';";'; put 'call execute(cats(str1,filename,str2));'; put 'run;'; put '%let archive_path=%sysfunc(pathname(work));'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put 'ods package(ProdOutput) publish archive properties'; put '(archive_name= "&table..zip" archive_path="&archive_path");'; put 'ods package(ProdOutput) close;'; put '/* now serve zip file to client */'; put '%mp_streamfile(contenttype=ZIP'; put ',inloc=%str(&archive_path/&table..zip)'; put ',outname=&table..zip'; put ')'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=getsubmits; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file getsubmits.sas'; put '@brief Returns a list of staged data items that need to be approved'; put '@details'; put '

SAS Macros

'; put '@li mp_abort.sas'; put '@li mf_getuser.sas'; put '@li mpeinit.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put 'PROC FORMAT;'; put 'picture yymmddhhmmss other=''%0Y-%0m-%0d %0H:%0M:%0S'' (datatype=datetime);'; put 'RUN;'; put 'proc sql noprint;'; put 'create table work.fromsas (rename=(SUBMITTED_ON=SUBMITTED_ON_DTTM)) as'; put 'select table_id'; put ',cats(base_lib,''.'',base_ds) as base_table'; put ',input_vars'; put ',input_obs'; put ',submitted_by_nm'; put ',submitted_reason_txt'; put ',''DEPRECATED'' as approve_group'; put ',submit_status_cd as review_status_id'; put ',reviewed_by_nm'; put ',reviewed_on_dttm'; put ',cats(put(SUBMITTED_ON_DTTM,yymmddhhmmss.)) as SUBMITTED_ON'; put 'from &mpelib..mpe_submit'; put 'where submitted_by_nm="%mf_getuser()" and submit_status_cd=''SUBMITTED'''; put 'order by submitted_on_dttm desc;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%webout(OPEN)'; put '%webout(OBJ,fromSAS,missing=STRING)'; put '%webout(CLOSE)'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=getxlmaps; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file getxlmaps.sas'; put '@brief Returns a list of rules and other info for a specific xlmap_id'; put '

Service Inputs

'; put '
getxlmaps_in
'; put '|XLMAP_ID|'; put '|---|'; put '|Sample|'; put '

Service Outputs

'; put '
xlmaprules
'; put 'Filtered output of the dc.MPE_XLMAP_RULES table'; put '|XLMAP_ID|XLMAP_RANGE_ID|XLMAP_SHEET|XLMAP_START|XLMAP_FINISH|'; put '|---|---|---|---|---|'; put '|Sample|Range1|Sheet1|ABSOLUTE A1| |'; put '|Sample|Range2|Sheet1|RELATIVE R[2]C[2]|ABSOLUTE H11|'; put '
xlmapinfo
'; put 'Extra info for a map id'; put '|TARGET_DS|'; put '|---|'; put '|DCXXX.MPE_XLMAP_DATA|'; put '

SAS Macros

'; put '@li mp_abort.sas'; put '@li mpeinit.sas'; put '@version 9.3'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put 'data _null_;'; put 'set work.getxlmaps_in;'; put 'putlog (_all_)(=);'; put 'call symputx(''xlmap_id'',xlmap_id);'; put 'run;'; put 'proc sql noprint;'; put 'create table work.xlmaprules as'; put 'select xlmap_id'; put ',XLMAP_RANGE_ID'; put ',XLMAP_SHEET'; put ',XLMAP_START'; put ',XLMAP_FINISH'; put 'from &mpelib..MPE_XLMAP_RULES'; put 'where &dc_dttmtfmt. lt tx_to and xlmap_id="&xlmap_id"'; put 'order by xlmap_sheet, xlmap_range_id;'; put '%global target_ds;'; put 'select XLMAP_TARGETLIBDS into: target_ds'; put 'from &mpelib..MPE_XLMAP_INFO'; put 'where &dc_dttmtfmt. lt tx_to and xlmap_id="&xlmap_id";'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put 'data work.xlmapinfo;'; put 'target_ds=coalescec("&target_ds","&mpelib..MPE_XLMAP_DATA");'; put 'output;'; put 'stop;'; put 'run;'; put '%webout(OPEN)'; put '%webout(OBJ,xlmaprules)'; put '%webout(OBJ,xlmapinfo)'; put '%webout(CLOSE)'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=loadfile; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mc,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mpe_accesscheck('; put 'base_table'; put ',outds=med_accesscheck /* WORK table to contain access details */'; put ',user= /* metadata user to check for */'; put ',access_level=APPROVE'; put ',cntl_lib_var=MPELIB'; put ');'; put '%if &user= %then %let user=%mf_getuser();'; put '%mp_abort('; put 'iftrue=(%index(&outds,.)>0 and %upcase(%scan(&outds,1,.)) ne WORK)'; put ',mac=mpe_accesscheck'; put ',msg=%str(outds should be a WORK table)'; put ')'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; put ',mac=mpe_accesscheck'; put ',msg=%str(Missing base_table/user access_level variables)'; put ')'; put '/* make unique temp table vars */'; put '%local tempds1 tempds2;'; put '%let tempds1=%mf_getuniquename(prefix=usergroups);'; put '%let tempds2=%mf_getuniquename(prefix=tablegroups);'; put '/* get list of user groups */'; put '%mpe_getgroups(user=&user,outds=&tempds1)'; put '/* get list of groups with access for that table */'; put 'proc sql;'; put 'create table &tempds2 as'; put 'select distinct sas_group'; put 'from &&&cntl_lib_var...mpe_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and access_level="&access_level"'; put 'and ('; put '(libref="%scan(&base_table,1,.)" and upcase(dsn)="%scan(&base_table,2,.)")'; put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; put 'or (libref="*ALL*")'; put ');'; put '%if &_debug ge 131 %then %do;'; put 'data _null_;'; put 'set &tempds1;'; put 'putlog (_all_)(=);'; put 'run;'; put 'data _null_;'; put 'set &tempds2;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put 'proc sql;'; put 'create table &outds as'; put 'select * from &tempds1'; put 'where groupname="&mpeadmins"'; put 'or groupname in (select * from &tempds2);'; put '%put &sysmacroname: base_table=&base_table;'; put '%put &sysmacroname: access_level=&access_level;'; put '%mend mpe_accesscheck;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '%macro mpe_alerts(alert_event='; put ', alert_lib='; put ', alert_ds='; put ', dsid='; put ');'; put '/* exit if not configured */'; put '%global DC_EMAIL_ALERTS;'; put '%if &DC_EMAIL_ALERTS ne YES %then %do;'; put '%put DCNOTE: Email alerts are not configured;'; put '%put DCNOTE: (dc_email_alerts=&dc_email_alerts in &mpelib..mpe_config);'; put '%return;'; put '%end;'; put '%let alert_event=%upcase(&alert_event);'; put '%let alert_lib=%upcase(&alert_lib);'; put '%let alert_ds=%upcase(&alert_ds);'; put '%let from_user=%mf_getuser();'; put '/* get users TO which the email should be sent */'; put 'proc sql noprint;'; put 'create table work.users as select distinct a.alert_user,'; put 'b.user_displayname,'; put 'b.user_email'; put 'from &mpelib..mpe_alerts'; put '(where=(&dc_dttmtfmt. lt tx_to)) a'; put 'left join &mpelib..mpe_emails'; put '(where=(&dc_dttmtfmt. lt tx_to)) b'; put 'on upcase(trim(a.alert_user))=upcase(trim(b.user_name))'; put 'where a.alert_event in ("&alert_event","*ALL*")'; put 'and a.alert_lib in ("&alert_lib","*ALL*")'; put 'and a.alert_ds in ("&alert_ds","*ALL*");'; put '/* ensure the submitter is included on the email */'; put '%local isThere userdisp user_eml;'; put '%let isThere=0;'; put 'select count(*) into: isThere from &syslast where alert_user="&from_user";'; put '%if &isThere=0 %then %do;'; put 'select user_displayname, user_email'; put 'into: userdisp trimmed, :user_eml trimmed'; put 'from &mpelib..mpe_emails'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and user_name="&from_user";'; put 'insert into work.users'; put 'set alert_user="&from_user"'; put ',user_displayname="&userdisp"'; put ',user_email="&user_eml";'; put '%end;'; put '/* if no email / displayname is provided, then extract from metadata */'; put 'data work.emails;'; put 'set work.users;'; put 'length emailuri uri text $256; call missing(emailuri,uri); drop emailuri uri;'; put '/* get displayname */'; put 'text=cats("omsobj:Person?@Name=''",alert_user,"''");'; put 'if metadata_getnobj(text,1,uri)<=0 then do;'; put 'putlog "DCWARN: &from_user not found";'; put 'return;'; put 'end;'; put 'else if user_displayname = '''' then do;'; put 'if metadata_getattr(uri,''DisplayName'',user_displayname)<0 then do;'; put 'putlog ''DCWARN: strange err, no displayname attribute of user URI'';'; put 'end;'; put 'end;'; put 'if index(user_email,''@'') then return;'; put '/* get email from metadata if not in input table */'; put 'if metadata_getnasn(uri,"EmailAddresses",1,emailuri)<=0 then do;'; put 'putlog "DCWARN: " alert_user " has no emails in MPE_EMAILS or metadata!";'; put 'end;'; put 'else do;'; put 'if metadata_getattr(emailuri,"Address",user_email)<0 then do;'; put 'putlog ''DCWARN: Unexpected error! Valid emailURI but no email. Weird.'';'; put 'end;'; put 'end;'; put '/* only keep valid emails */'; put 'if index(user_email,''@'') ;'; put '/* dump contents for debugging */'; put 'if _n_<21 then putlog (_all_)(=);'; put 'run;'; put '%local emails;'; put 'proc sql noprint;'; put 'select quote(trim(user_email)) into: emails separated by '' '' from work.emails;'; put '/* exit if nobody to email */'; put '%if %mf_getattrn(emails,NLOBS)=0 %then %do;'; put '%put NOTE: No alerts configured (mpe_alerts.sas);'; put '%return;'; put '%end;'; put '/* display email options */'; put 'data _null_;'; put 'set sashelp.voption(where=(group=''EMAIL''));'; put 'put optname ''='' setting;'; put 'run;'; put 'filename __out email (&emails)'; put 'subject="Table &alert_lib..&alert_ds has been &alert_event";'; put '%local SUBMITTED_TXT;'; put '%if &alert_event=SUBMITTED %then %do;'; put 'data _null_;'; put 'set &mpelib..mpe_submit;'; put 'where table_id="&dsid" and submit_status_cd=''SUBMITTED'';'; put 'call symputx(''SUBMITTED_TXT'',submitted_reason_txt,''l'');'; put 'run;'; put 'data _null_;'; put 'File __out lrecl=32000;'; put 'put ''Dear user,'';'; put 'put '' '';'; put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; put '"been proposed by &from_user on the ''&syshostname'' SAS server.";'; put 'put " ";'; put 'length txt $2048;'; put 'txt=symget(''SUBMITTED_TXT'');'; put 'put "Reason provided: " txt;'; put 'put " ";'; put 'put "This is an automated email by Data Controller for SAS. For "'; put '"documentation, please visit https://docs.datacontroller.io";'; put 'run;'; put '%end;'; put '%else %if &alert_event=APPROVED %then %do;'; put '/* there is no approval message */'; put 'data _null_;'; put 'File __out lrecl=32000;'; put 'put ''Dear user,'';'; put 'put '' '';'; put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; put '"been approved by &from_user on the ''&syshostname'' SAS server.";'; put 'put " ";'; put 'put "This is an automated email by Data Controller for SAS. For "'; put '"documentation, please visit https://docs.datacontroller.io";'; put 'run;'; put '%end;'; put '%else %if &alert_event=REJECTED %then %do;'; put 'data _null_;'; put 'set &mpelib..mpe_review;'; put 'where table_id="&dsid" and review_status_id=''REJECTED'';'; put 'call symputx(''REVIEW_REASON_TXT'',REVIEW_REASON_TXT,''l'');'; put 'run;'; put 'data _null_;'; put 'File __out lrecl=32000;'; put 'put ''Dear user,'';'; put 'put '' '';'; put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; put '"been rejected by &from_user on the ''&syshostname'' SAS server.";'; put 'put " ";'; put 'length txt $2048;'; put 'txt=symget(''REVIEW_REASON_TXT'');'; put 'put "Reason provided: " txt;'; put 'put " ";'; put 'put "This is an automated email by Data Controller for SAS. For "'; put '"documentation, please visit https://docs.datacontroller.io";'; put 'run;'; put '%end;'; put 'filename __out clear;'; put '%mend mpe_alerts ;'; put '%macro mpe_xlmapvalidate(mperef,inds,dclib,tgtds);'; put '%local ismap;'; put 'proc sql noprint;'; put 'select count(*) into: ismap'; put 'from &dclib..mpe_xlmap_info'; put 'where XLMAP_TARGETLIBDS="&tgtds" and &dc_dttmtfmt. le TX_TO ;'; put '%if "&tgtds"="&dclib..MPE_XLMAP_DATA" or &ismap>0 %then %do;'; put 'data &inds;'; put 'set &inds;'; put 'LOAD_REF="&mperef";'; put 'run;'; put '%end;'; put '%mend mpe_xlmapvalidate;'; put '%macro mpe_loadfail('; put 'status=FAILED - &syscc'; put ',now=%sysfunc(datetime())'; put ',approvals='; put ',mperef='; put ',reason_txt='; put ',mac=mpe_loadfail.sas'; put ',dc_dttmtfmt=E8601DT26.6'; put ');'; put '/* do not perform duration calc in pass through */'; put '%local dur;'; put 'data _null_;'; put 'now=symget(''now'');'; put 'dur=%sysfunc(datetime())-&now;'; put 'call symputx(''dur'',dur,''l'');'; put 'run;'; put 'proc sql;'; put 'update &mpelib..mpe_loads'; put 'set STATUS=symget(''status'')'; put ', duration=&dur'; put ', processed_dttm=&dc_dttmtfmt.'; put ', approvals = symget(''approvals'')'; put ', reason_txt= symget(''reason_txt'')'; put 'where CSV_DIR="&mperef";'; put '%let syscc=666;'; put '%mp_abort(msg=%superq(status)\n%superq(reason_txt),mac=&mac)'; put '%mend mpe_loadfail;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mv_getfoldermembers(root=/'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',outds=mv_getfolders'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put '%if %mf_isblank(&root)=1 %then %let root=/;'; put 'options noquotelenmax;'; put '/* request the client details */'; put '%local fname1 libref1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '%if "&root"="/" %then %do;'; put '/* if root just list root folders */'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/folders/rootFolders?limit=1000";'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* first get parent folder id */'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/folders/folders/@item?path=&root";'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put 'libname &libref1 JSON fileref=&fname1;'; put '/* now get the followon link to list members */'; put '%local href cnt;'; put '%let cnt=0;'; put 'data _null_;'; put 'length rel href $512;'; put 'call missing(rel,href);'; put 'set &libref1..links;'; put 'if rel=''members'' then do;'; put 'url=cats("''","&base_uri",href,"?limit=10000''");'; put 'call symputx(''href'',url,''l'');'; put 'call symputx(''cnt'',1,''l'');'; put 'end;'; put 'run;'; put '%if &cnt=0 %then %do;'; put '%put NOTE:;%put NOTE- No members found in &root!!;%put NOTE-;'; put '%return;'; put '%end;'; put '%local fname2 libref2;'; put '%let fname2=%mf_getuniquefileref();'; put '%let libref2=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname2 &oauth_bearer'; put 'url=%unquote(%superq(href));'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put 'libname &libref2 JSON fileref=&fname2;'; put 'data &outds;'; put 'length id $36 name $128 uri $64 type $32 description $256;'; put 'if _n_=1 then call missing (of _all_);'; put 'set &libref2..items;'; put 'run;'; put 'filename &fname2 clear;'; put 'libname &libref2 clear;'; put '%end;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getfoldermembers;'; put '%macro mv_getjobcode(outref=0,outfile=0'; put ',name=0,path=0'; put ',contextName=SAS Job Execution compute context'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',mdebug=0'; put ');'; put '%local dbg bufsize varcnt fname1 fname2 errmsg;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname local entry vars:;'; put '%put _local_;'; put '%end;'; put '%else %let dbg=*;'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put '%mp_abort(iftrue=("&path"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job Path not provided)'; put ')'; put '%mp_abort(iftrue=("&name"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job Name not provided)'; put ')'; put '%mp_abort(iftrue=("&outfile"="0" and "&outref"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Output destination (file or fileref) must be provided)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put 'data;run;'; put '%local foldermembers;'; put '%let foldermembers=&syslast;'; put '%mv_getfoldermembers(root=&path'; put ',access_token_var=&access_token_var'; put ',grant_type=&grant_type'; put ',outds=&foldermembers'; put ')'; put '%local joburi;'; put '%let joburi=0;'; put 'data _null_;'; put 'length name uri $512;'; put 'call missing(name,uri);'; put 'set &foldermembers;'; put 'if name="&name" and uri=:''/jobDefinitions/definitions'''; put 'then call symputx(''joburi'',uri);'; put 'run;'; put '%mp_abort(iftrue=("&joburi"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job &path/&name not found)'; put ')'; put '/* prepare request*/'; put '%let fname1=%mf_getuniquefileref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri&joburi";'; put 'headers "Accept"="application/vnd.sas.job.definition+json"'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put ';'; put 'run;'; put '%if &mdebug=1 %then %do;'; put 'data _null_;'; put 'infile &fname1;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%end;'; put '%mp_abort('; put 'iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200 and &SYS_PROCHTTP_STATUS_CODE ne 201)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%let fname2=%mf_getuniquefileref();'; put 'filename &fname2 temp ;'; put '/* cannot use lua IO package as not available in Viya 4 */'; put '/* so use data step to read the JSON until the string `"code":"` is found */'; put 'data _null_;'; put 'file &fname2 recfm=n;'; put 'infile &fname1 lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'retain startwrite 0;'; put 'if startwrite=0 and sourcechar=''"'' then do;'; put 'reentry:'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''c'' then do;'; put 'reentry2:'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''o'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''d'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''e'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''"'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar='':'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''"'' then do;'; put 'putlog ''code found'';'; put 'startwrite=1;'; put 'input sourcechar $ 1. @@;'; put 'end;'; put 'end;'; put 'else if sourcechar=''c'' then goto reentry2;'; put 'end;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put '/* once the `"code":"` string is found, write until unescaped `"` is found */'; put 'if startwrite=1 then do;'; put 'if sourcechar=''\'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar in (''"'',''\'') then put sourcechar char1.;'; put 'else if sourcechar=''n'' then put ''0A''x;'; put 'else if sourcechar=''r'' then put ''0D''x;'; put 'else if sourcechar=''t'' then put ''09''x;'; put 'else if sourcechar=''u'' then do;'; put 'length uni $4;'; put 'input uni $ 4. @@;'; put 'sourcechar=unicode(''\u''!!uni);'; put 'put sourcechar char1.;'; put 'end;'; put 'else do;'; put 'call symputx(''errmsg'',"Uncaught escape char: "!!sourcechar,''l'');'; put 'call symputx(''syscc'',99);'; put 'stop;'; put 'end;'; put 'end;'; put 'else if sourcechar=''"'' then stop;'; put 'else put sourcechar char1.;'; put 'end;'; put 'run;'; put '%mp_abort(iftrue=("&syscc"="99")'; put ',mac=mv_getjobcode'; put ',msg=%str(&errmsg)'; put ')'; put '/* export to desired destination */'; put '%if "&outref"="0" %then %do;'; put 'data _null_;'; put 'file "&outfile" lrecl=32767;'; put '%end;'; put '%else %do;'; put 'filename &outref temp;'; put 'data _null_;'; put 'file &outref;'; put '%end;'; put 'infile &fname2;'; put 'input;'; put 'put _infile_;'; put '&dbg. putlog _infile_;'; put 'run;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname exit vars:;'; put '%put _local_;'; put '%end;'; put '%else %do;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'filename &fname2 clear;'; put '%end;'; put '%mend mv_getjobcode;'; put '%macro dc_getservicecode(loc=,outref=);'; put '%local name;'; put '%let name=%scan(&loc,-1,/);'; put '%mv_getjobcode(path=%substr(&loc,1,%length(&loc)-%length(&name)-1)'; put ',name=&name'; put ',outref=&outref'; put ')'; put '%mend dc_getservicecode;'; put '%macro mp_include(fileref'; put ',prefix=_'; put ',opts=SOURCE2'; put ',errds=work.mp_abort_errds'; put ')/*/STORE SOURCE*/;'; put '/* prepare precode */'; put '%local tempref;'; put '%let tempref=%mf_getuniquefileref();'; put 'data _null_;'; put 'file &tempref;'; put 'set sashelp.vextfl(where=(fileref="%upcase(&fileref)"));'; put 'put ''%let _SYSINCLUDEFILEDEVICE='' xengine '';'';'; put 'name=scan(xpath,-1,''/\'');'; put 'put ''%let _SYSINCLUDEFILENAME='' name '';'';'; put 'path=subpad(xpath,1,length(xpath)-length(name)-1);'; put 'put ''%let _SYSINCLUDEFILEDIR='' path '';'';'; put 'put ''%let _SYSINCLUDEFILEFILEREF='' "&fileref;";'; put 'run;'; put '/* prepare the errds */'; put 'data &errds;'; put 'length msg mac $1000;'; put 'call missing(msg,mac);'; put 'iftrue=''1=0'';'; put 'run;'; put '/* include the include */'; put '%inc &tempref &fileref/&opts;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=%str(&_SYSINCLUDEFILEDIR/&_SYSINCLUDEFILENAME)'; put ',msg=%str(syscc=&syscc after executing &_SYSINCLUDEFILENAME)'; put ')'; put 'filename &tempref clear;'; put '%mend mp_include;'; put '%macro mpe_runhook(hookvar);'; put '%local pgmloc pgmtype;'; put '%let pgmtype=0;'; put '%put &sysmacroname: &=hookvar;'; put '%if %length(&&&hookvar)>0 %then %do;'; put '%put &sysmacroname: Executing &&&hookvar;'; put 'data _null_;'; put 'rule_value=symget("&hookvar");'; put 'if scan(upcase(rule_value),-1,''.'')=''SAS'' then do;'; put 'call symputx(''pgmtype'',''PGM'');'; put 'call symputx(''pgmloc'',rule_value);'; put 'end;'; put 'else do;'; put 'apploc="%mf_getapploc()";'; put 'if substr(rule_value,1,1) ne ''/'''; put 'then rule_value=cats(apploc,''/'',rule_value);'; put 'call symputx(''pgmloc'',rule_value);'; put 'call symputx(''pgmtype'',''JOB'');'; put 'end;'; put 'run;'; put '%if &pgmtype=PGM %then %do;'; put 'filename sascode "&pgmloc";'; put '%end;'; put '%else %do;'; put '%dc_getservicecode(loc=&pgmloc'; put ',outref=sascode'; put ')'; put '%end;'; put '/* the below script will need to modify work.STAGING_DS */'; put '%local x; %let x=; /* legacy feature */'; put '%mp_include(sascode)'; put '%end;'; put '%mend mpe_runhook;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '%macro mf_mkdir(dir'; put ')/*/STORE SOURCE*/;'; put '%local lastchar child parent;'; put '%let lastchar = %substr(&dir, %length(&dir));'; put '%if (%bquote(&lastchar) eq %str(:)) %then %do;'; put '/* Cannot create drive mappings */'; put '%return;'; put '%end;'; put '%if (%bquote(&lastchar)=%str(/)) or (%bquote(&lastchar)=%str(\)) %then %do;'; put '/* last char is a slash */'; put '%if (%length(&dir) eq 1) %then %do;'; put '/* one single slash - root location is assumed to exist */'; put '%return;'; put '%end;'; put '%else %do;'; put '/* strip last slash */'; put '%let dir = %substr(&dir, 1, %length(&dir)-1);'; put '%end;'; put '%end;'; put '%if (%sysfunc(fileexist(%bquote(&dir))) = 0) %then %do;'; put '/* directory does not exist so prepare to create */'; put '/* first get the childmost directory */'; put '%let child = %scan(&dir, -1, %str(/\:));'; put '/*'; put 'If child name = path name then there are no parents to create. Else'; put 'they must be recursively scanned.'; put '*/'; put '%if (%length(&dir) gt %length(&child)) %then %do;'; put '%let parent = %substr(&dir, 1, %length(&dir)-%length(&child));'; put '%mf_mkdir(&parent)'; put '%end;'; put '/*'; put 'Now create the directory. Complain loudly of any errs.'; put '*/'; put '%let dname = %sysfunc(dcreate(&child, &parent));'; put '%if (%bquote(&dname) eq ) %then %do;'; put '%put %str(ERR)OR: could not create &parent + &child;'; put '%abort cancel;'; put '%end;'; put '%else %do;'; put '%put Directory created: &dir;'; put '%end;'; put '%end;'; put '/* exit quietly if directory did exist.*/'; put '%mend mf_mkdir;'; put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; put 'proc sql;'; put 'create table &libds('; put 'TYPE char(1) label='; put '''Format Type: either N (num fmt), C (char fmt), I (num infmt) or J (char infmt)'''; put ',FMTNAME char(32) label=''Format name'''; put ',FMTROW num label='; put '''CALCULATED Position of record by FMTNAME (reqd for multilabel formats)'''; put ',START char(32767) label=''Starting value for format'''; put '/*'; put 'Keep lengths of START and END the same to avoid this err:'; put '"Start is greater than end: -<."'; put 'Similar usage note: https://support.sas.com/kb/69/330.html'; put '*/'; put ',END char(32767) label=''Ending value for format'''; put ',LABEL char(32767) label=''Format value label'''; put ',MIN num length=3 label=''Minimum length'''; put ',MAX num length=3 label=''Maximum length'''; put ',DEFAULT num length=3 label=''Default length'''; put ',LENGTH num length=3 label=''Format length'''; put ',FUZZ num label=''Fuzz value'''; put ',PREFIX char(2) label=''Prefix characters'''; put ',MULT num label=''Multiplier'''; put ',FILL char(1) label=''Fill character'''; put ',NOEDIT num length=3 label=''Is picture string noedit?'''; put ',SEXCL char(1) label=''Start exclusion'''; put ',EEXCL char(1) label=''End exclusion'''; put ',HLO char(13) label='; put '''More info: https://core.sasjs.io/mddl__sas__cntlout_8sas_source.html'''; put ',DECSEP char(1) label=''Decimal separator'''; put ',DIG3SEP char(1) label=''Three-digit separator'''; put ',DATATYPE char(8) label=''Date/time/datetime?'''; put ',LANGUAGE char(8) label=''Language for date strings'''; put ');'; put '%local lib;'; put '%let libds=%upcase(&libds);'; put '%if %index(&libds,.)=0 %then %let lib=WORK;'; put '%else %let lib=%scan(&libds,1,.);'; put 'proc datasets lib=&lib noprint;'; put 'modify %scan(&libds,-1,.);'; put 'index create'; put 'pk_cntlout=(type fmtname fmtrow)'; put '/nomiss unique;'; put 'quit;'; put '%mend mddl_sas_cntlout;'; put '%macro mp_aligndecimal(var,width=8);'; put '%local tmpvar;'; put '%let tmpvar=%mf_getuniquename(prefix=aligndp);'; put 'length &tmpvar $&width;'; put 'if index(&var,''.'') then do;'; put '&tmpvar=cats(scan(&var,1,''.''));'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar!!''.''!!cats(scan(&var,2,''.''));'; put 'end;'; put 'else do;'; put '&tmpvar=cats(&var);'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar;'; put 'end;'; put 'drop &tmpvar;'; put '%mend mp_aligndecimal;'; put '%macro mp_cntlout('; put 'iftrue=(1=1)'; put ',libcat='; put ',cntlout=work.fmtextract'; put ',fmtlist=0'; put ')/*/STORE SOURCE*/;'; put '%local ddlds cntlds i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let ddlds=%mf_getuniquename();'; put '%let cntlds=%mf_getuniquename();'; put '%mddl_sas_cntlout(libds=&ddlds)'; put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; put '%let libcat=%scan(&libcat,1,-);'; put '%end;'; put 'proc format lib=&libcat cntlout=&cntlds;'; put '%if "&fmtlist" ne "0" and "&fmtlist" ne "" %then %do;'; put 'select'; put '%do i=1 %to %sysfunc(countw(&fmtlist,%str( )));'; put '%scan(&fmtlist,&i,%str( ))'; put '%end;'; put ';'; put '%end;'; put 'run;'; put 'data &cntlout/nonote2err;'; put 'if 0 then set &ddlds;'; put 'set &cntlds;'; put 'by type fmtname notsorted;'; put '/* align the numeric values to avoid overlapping ranges */'; put 'if type in ("I","N") then do;'; put '%mp_aligndecimal(start,width=16)'; put '%mp_aligndecimal(end,width=16)'; put 'end;'; put '/* create row marker. Data cannot be sorted without it! */'; put 'if first.fmtname then fmtrow=1;'; put 'else fmtrow+1;'; put 'run;'; put 'proc sort;'; put 'by type fmtname fmtrow;'; put 'run;'; put 'proc sql;'; put 'drop table &ddlds,&cntlds;'; put '%mend mp_cntlout;'; put '/** @endcond */'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_wordsInStr1ButNotStr2('; put 'Str1= /* string containing words to extract */'; put ',Str2= /* used to compare with the extract string */'; put ')/*/STORE SOURCE*/;'; put '%local count_base count_extr i i2 extr_word base_word match outvar;'; put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; put '%put base string (str1)= &str1;'; put '%put compare string (str2) = &str2;'; put '%return;'; put '%end;'; put '%let count_base=%sysfunc(countw(&Str2));'; put '%let count_extr=%sysfunc(countw(&Str1));'; put '%do i=1 %to &count_extr;'; put '%let extr_word=%scan(&Str1,&i,%str( ));'; put '%let match=0;'; put '%do i2=1 %to &count_base;'; put '%let base_word=%scan(&Str2,&i2,%str( ));'; put '%if &extr_word=&base_word %then %let match=1;'; put '%end;'; put '%if &match=0 %then %let outvar=&outvar &extr_word;'; put '%end;'; put '&outvar'; put '%mend mf_wordsInStr1ButNotStr2;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro mp_dirlist(path=%sysfunc(pathname(work))'; put ', fref=0'; put ', outds=work.mp_dirlist'; put ', getattrs=NO'; put ', showparent=NO'; put ', maxdepth=0'; put ', level=0 /* The level of recursion to perform. For internal use only. */'; put ')/*/STORE SOURCE*/;'; put '%let getattrs=%upcase(&getattrs)XX;'; put '/* temp table */'; put '%local out_ds;'; put 'data;run;'; put '%let out_ds=%str(&syslast);'; put '/* drop main (top) table if it exists */'; put '%if &level=0 %then %do;'; put '%mp_dropmembers(%scan(&outds,-1,.), libref=WORK)'; put '%end;'; put 'data &out_ds(compress=no'; put 'keep=file_or_folder filepath filename ext msg directory level'; put ');'; put 'length directory filepath $2000 fref fref2 $8 file_or_folder $6 filename $255'; put 'ext $20 msg $200 foption $16;'; put 'if _n_=1 then call missing(of _all_);'; put 'retain level &level;'; put '%if &fref=0 %then %do;'; put 'rc = filename(fref, "&path");'; put '%end;'; put '%else %do;'; put 'fref="&fref";'; put 'rc=0;'; put '%end;'; put 'if rc = 0 then do;'; put 'did = dopen(fref);'; put 'if did=0 then do;'; put 'putlog "NOTE: This directory is empty, or does not exist - &path";'; put 'msg=sysmsg();'; put 'put (_all_)(=);'; put 'stop;'; put 'end;'; put '/* attribute is OS-dependent - could be "Directory" or "Directory Name" */'; put 'numopts=doptnum(did);'; put 'do i=1 to numopts;'; put 'foption=doptname(did,i);'; put 'if foption=:''Directory'' then i=numopts;'; put 'end;'; put 'directory=dinfo(did,foption);'; put 'rc = filename(fref);'; put 'end;'; put 'else do;'; put 'msg=sysmsg();'; put 'put _all_;'; put 'stop;'; put 'end;'; put 'dnum = dnum(did);'; put 'do i = 1 to dnum;'; put 'filename = dread(did, i);'; put 'filepath=cats(directory,''/'',filename);'; put 'rc = filename(fref2,filepath);'; put 'midd=dopen(fref2);'; put 'dmsg=sysmsg();'; put 'if did > 0 then file_or_folder=''folder'';'; put 'rc=dclose(midd);'; put 'midf=fopen(fref2);'; put 'fmsg=sysmsg();'; put 'if midf > 0 then file_or_folder=''file'';'; put 'rc=fclose(midf);'; put 'if index(fmsg,''File is in use'') or index(dmsg,''is not a directory'')'; put 'then file_or_folder=''file'';'; put 'else if index(fmsg,''Insufficient authorization'') then file_or_folder=''file'';'; put 'else if file_or_folder='''' then file_or_folder=''locked'';'; put 'if file_or_folder=''file'' then do;'; put 'ext = prxchange(''s/.*\.{1,1}(.*)/$1/'', 1, filename);'; put 'if filename = ext then ext = '' '';'; put 'end;'; put 'else do;'; put 'ext='''';'; put 'file_or_folder=''folder'';'; put 'end;'; put 'output;'; put 'end;'; put 'rc = dclose(did);'; put '%if &showparent=YES and &level=0 %then %do;'; put 'filepath=directory;'; put 'file_or_folder=''folder'';'; put 'ext='''';'; put 'filename=scan(directory,-1,''/\'');'; put 'msg='''';'; put 'level=&level;'; put 'output;'; put '%end;'; put 'stop;'; put 'run;'; put '%if %substr(&getattrs,1,1)=Y %then %do;'; put 'data &out_ds;'; put 'set &out_ds;'; put 'length infoname infoval $60 fref $8;'; put 'if _n_=1 then call missing(fref);'; put 'rc=filename(fref,filepath);'; put 'drop rc infoname fid i close fref;'; put 'if file_or_folder=''file'' then do;'; put 'fid=fopen(fref);'; put 'if fid le 0 then do;'; put 'msg=sysmsg();'; put 'putlog "Could not open file:" filepath fid= ;'; put 'sasname=''_MCNOTVALID_'';'; put 'output;'; put 'end;'; put 'else do i=1 to foptnum(fid);'; put 'infoname=foptname(fid,i);'; put 'infoval=finfo(fid,infoname);'; put 'sasname=compress(infoname, ''_'', ''adik'');'; put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; put 'if upcase(sasname) ne ''FILENAME'' then output;'; put 'end;'; put 'close=fclose(fid);'; put 'end;'; put 'else do;'; put 'fid=dopen(fref);'; put 'if fid le 0 then do;'; put 'msg=sysmsg();'; put 'putlog "Could not open folder:" filepath fid= ;'; put 'sasname=''_MCNOTVALID_'';'; put 'output;'; put 'end;'; put 'else do i=1 to doptnum(fid);'; put 'infoname=doptname(fid,i);'; put 'infoval=dinfo(fid,infoname);'; put 'sasname=compress(infoname, ''_'', ''adik'');'; put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; put 'if upcase(sasname) ne ''FILENAME'' then output;'; put 'end;'; put 'close=dclose(fid);'; put 'end;'; put 'run;'; put 'proc sort;'; put 'by filepath sasname;'; put 'proc transpose data=&out_ds out=&out_ds(drop=_:);'; put 'id sasname;'; put 'var infoval;'; put 'by filepath file_or_folder filename ext ;'; put 'run;'; put '%end;'; put 'data &out_ds;'; put 'set &out_ds(where=(filepath ne ''''));'; put 'run;'; put '/**'; put '* The above transpose can mean that some updates create additional columns.'; put '* This necessitates the occasional use of datastep over proc append.'; put '*/'; put '%if %mf_existds(&outds) %then %do;'; put '%local basevars appvars newvars;'; put '%let basevars=%mf_getvarlist(&outds);'; put '%let appvars=%mf_getvarlist(&out_ds);'; put '%let newvars=%length(%mf_wordsinstr1butnotstr2(Str1=&appvars,Str2=&basevars));'; put '%if &newvars>0 %then %do;'; put 'data &outds;'; put 'set &outds &out_ds;'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc append base=&outds data=&out_ds force nowarn;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do;'; put 'proc append base=&outds data=&out_ds;'; put 'run;'; put '%end;'; put '/* recursive call */'; put '%if &maxdepth>&level or &maxdepth=MAX %then %do;'; put 'data _null_;'; put 'set &out_ds;'; put 'where file_or_folder=''folder'';'; put '%if &showparent=YES and &level=0 %then %do;'; put 'if filepath ne directory;'; put '%end;'; put 'length code $10000;'; put 'code=cats(''%nrstr(%mp_dirlist(path='',filepath,",outds=&outds"'; put ',",getattrs=&getattrs,level=%eval(&level+1),maxdepth=&maxdepth))");'; put 'put code=;'; put 'call execute(code);'; put 'run;'; put '%end;'; put '/* tidy up */'; put 'proc sql;'; put 'drop table &out_ds;'; put '%mend mp_dirlist;'; put '%macro mf_getattrc('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrc(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrc;'; put '%macro mp_lockfilecheck('; put 'libds'; put ')/*/STORE SOURCE*/;'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=checklock.sas'; put ',msg=Aborting with syscc=&syscc on entry.'; put ')'; put '%mp_abort(iftrue= ("&libds"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(libds not provided)'; put ')'; put '%local msg lib ds;'; put '%let lib=%upcase(%scan(&libds,1,.));'; put '%let ds=%upcase(%scan(&libds,2,.));'; put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; put '%if %scan(&libds,2,-)=FC %then %do;'; put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=checklock.sas'; put ',msg=%superq(msg)'; put ')'; put 'data _null_;'; put 'putlog "Checking engine & member type";'; put 'run;'; put '%local engine memtype;'; put '%let memtype=%mf_getattrc(&libds,MTYPE);'; put '%let engine=%mf_getattrc(&libds,ENGINE);'; put '%if &engine ne V9 and &engine ne BASE %then %do;'; put 'data _null_;'; put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; put 'putlog "SAS lock check will not be performed";'; put 'run;'; put '%return;'; put '%end;'; put '%else %if &memtype ne DATA %then %do;'; put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; put '%return;'; put '%end;'; put 'data _null_;'; put 'putlog "Engine = &engine, memtype=&memtype";'; put 'putlog "Attempting lock statement";'; put 'run;'; put 'lock &libds;'; put '%local abortme;'; put '%let abortme=0;'; put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; put '%put %str(ERR)OR: &sysmacroname: &msg;'; put '%let abortme=1;'; put '%end;'; put 'lock &libds clear;'; put '%mp_abort(iftrue= (&abortme=1)'; put ',mac=&sysmacroname'; put ',msg=%superq(msg)'; put ')'; put '%mend mp_lockfilecheck;'; put '%macro mp_lockanytable('; put 'action'; put ',lib= WORK'; put ',ds=0'; put ',ref='; put ',ctl_ds=0'; put ',loops=25'; put ',loop_secs=1'; put ');'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(dataset was not provided)'; put ')'; put '%mp_abort(iftrue= (&ctl_ds=0)'; put ',mac=&sysmacroname'; put ',msg=%str(Control dataset was not provided)'; put ')'; put '/* set up lib & mac vars */'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '%let action=%upcase(&action);'; put '%local user x trans msg abortme;'; put '%let user=%mf_getuser();'; put '%let abortme=0;'; put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid action (&action) provided)'; put ')'; put '/* if an err condition exists, exit before we even begin */'; put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; put ',mac=&sysmacroname'; put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; put ')'; put '/* do not bother locking work tables (else may affect all WORK libraries) */'; put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; put '%put NOTE: WORK libraries will not be registered in the locking system.;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=&sysmacroname'; put ',msg=%str(cannot continue when options obs = 0)'; put ')'; put '%if &ACTION=LOCK %then %do;'; put '/* abort if a SAS lock is already in place, or cannot be applied */'; put '%mp_lockfilecheck(&lib..&ds)'; put '/* next, check there is a record for this table */'; put '%local record_exists_check;'; put 'proc sql noprint;'; put 'select count(*) into: record_exists_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &record_exists_check=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: adding record to lock table..";'; put 'run;'; put 'data ;'; put 'if 0 then set &ctl_ds;'; put 'LOCK_LIB ="&lib";'; put 'LOCK_DS="&ds";'; put 'LOCK_STATUS_CD=''LOCKED'';'; put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'LOCK_USER_NM="&user";'; put 'LOCK_PID="&sysjobid";'; put 'LOCK_REF="&ref";'; put 'output;stop;'; put 'run;'; put '%let trans=&syslast;'; put 'proc append base=&ctl_ds data=&trans;'; put 'run;'; put '%end;'; put '/* if record does exist, perform lock attempts */'; put '%else %do x=1 %to &loops;'; put 'data _null_;'; put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''LOCKED'''; put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '/**'; put '* NOTE - occasionally SQL server will return an err code (deadlocked'; put '* transaction). If so, ignore it, keep calm, and carry on..'; put '*/'; put '%if &syscc>0 %then %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; put 'putlog "Resetting err conditions and re-attempting.";'; put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%let syscc=0;'; put '%let sqlrc=0;'; put '%end;'; put '/* now check if the record was successfully updated */'; put '%local success_check;'; put 'proc sql noprint;'; put 'select count(*) into: success_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; put 'quit;'; put '%if &success_check=0 %then %do;'; put '%if &x < &loops %then %do;'; put '/* pause before next check */'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; put 'putlog "%sysfunc(sleep(&loop_secs)) seconds.. ";'; put 'putlog "NOTE- (iteration &x of &loops)";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%end;'; put '%else %do;'; put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; put 'Please ask your administrator to investigate!;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%else %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%if &syscc>0 %then %do;'; put '%put setting syscc(&syscc) back to 0;'; put '%let syscc=0;'; put '%end;'; put '%let x=&loops; /* no more iterations needed */'; put '%end;'; put '%end;'; put '%end;'; put '%else %if &ACTION=UNLOCK %then %do;'; put '%local status cnt;'; put '%let cnt=0;'; put 'proc sql noprint;'; put 'select count(*) into: cnt from &ctl_ds where LOCK_LIB ="&lib" & LOCK_DS="&ds";'; put '%if &cnt=0 %then %do;'; put '%put %str(WAR)NING: &lib..&ds was not previously locked in &ctl_ds!;'; put '%end;'; put '%else %do;'; put 'select LOCK_STATUS_CD into: status from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &status=LOCKED %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''UNLOCKED'''; put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%end;'; put '%else %if &status=UNLOCKED %then %do;'; put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; put '%end;'; put '%else %do;'; put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%end;'; put '%else %do;'; put '%let msg=lock_anytable given unsupported action (&action);'; put '%let abortme=1;'; put '%end;'; put '/* catch errs - mp_abort must be called outside of a logic block */'; put '%mp_abort(iftrue=(&abortme=1),'; put 'msg=%superq(msg),'; put 'mac=&sysmacroname'; put ')'; put '%exit_macro:'; put 'data _null_;'; put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; put 'run;'; put '%mend mp_lockanytable;'; put '%macro mpe_loader('; put 'mperef= /* name of subfolder containing the staged data */'; put ',mDebug=0 /* set to 1 for development or debugging */'; put ',submitted_reason_txt= /* populates column of same name in sumo_approvals*/'; put ',approver= /* allows a userid to be provided for direct approval email */'; put ',url= /* optional - url for debugging */'; put ',dlm=%str(,)'; put ',termstr=crlf'; put ',dc_dttmtfmt=E8601DT26.6'; put ');'; put '%put entered mpe_loader from &=_program;'; put '%put &=url;'; put '%put &=termstr;'; put '%put &=dlm;'; put '/* determine full path to CSV directory */'; put '%local now;'; put '%let now=&dc_dttmtfmt;'; put '%put &=now;'; put '/**'; put '* get full path to package (only subdirectory passed through)'; put '*/'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(mperef mpelocapprovals)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing: mperef mpelocapprovals)'; put ')'; put '%let csv_dir=%trim(&mpelocapprovals/&mperef);'; put '/* exit if package has already been uploaded */'; put '%local check;'; put 'proc sql noprint;'; put 'select count(*) into: check'; put 'from &mpelib..mpe_loads'; put 'where csv_dir="&mperef";'; put '%if &check %then %do;'; put '%mp_abort(msg=Folder &mperef already has an entry in &mpelib..mpe_loads'; put ',mac=mpe_loader.sas);'; put '%return;'; put '%end;'; put '/* get CSV directory contents */'; put '%mp_dirlist(path=&csv_dir,outds=WORK.getfiles)'; put 'data WORK.csvs;'; put 'set WORK.getfiles;'; put 'if upcase(scan(filename,3,''.''))=''CSV'' then do;'; put 'lib=upcase(scan(filename,1,''.''));'; put 'ds=upcase(scan(filename,2,''.''));'; put 'output;'; put 'end;'; put 'run;'; put '/* get table attributes */'; put 'proc sql noprint;'; put 'create table WORK.sumo_tables as'; put 'select a.filename, b.*'; put 'from WORK.csvs a'; put 'left join &mpelib..mpe_tables b'; put 'on a.lib=b.libref'; put 'and a.ds=b.dsn'; put 'where b.tx_from le &now'; put 'and &now lt b.tx_to;'; put '/* define user as meta user if available */'; put '%local user;'; put '%let user=%mf_getuser();'; put '/* check if there is actually a table to load */'; put '%if %mf_getattrn(WORK.sumo_tables,NLOBS)=0 %then %do;'; put '%let msg=Table not registered in &mpelib..mpe_tables;'; put '%mpe_loadfail('; put 'status=&msg'; put ',now=&now'; put ',mperef=&mperef'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%mp_abort(msg=&msg,mac=mpe_loader.sas);'; put '%return;'; put '%end;'; put 'proc sql;'; put 'insert into &mpelib..mpe_loads'; put 'set USER_NM="&user"'; put ',STATUS=''IN PROGRESS'''; put ',CSV_dir="&mperef"'; put ',PROCESSED_DTTM=&now'; put ',reason_txt = symget(''submitted_reason_txt'');'; put '/* import CSV */'; put '%let droplist=;'; put '%let attrib=;'; put '%let droplist=;'; put '%let libref=;'; put '%let DS=;'; put '/* get table info */'; put 'data _null_;'; put 'set sumo_tables;'; put 'libds=upcase(cats(libref,''.'',dsn));'; put 'call symputx(''orig_libds'',libds);'; put 'is_fmt=0;'; put 'if substr(cats(reverse(dsn)),1,3)=:''CF-'' then do;'; put 'libds=scan(libds,1,''-'');'; put 'putlog "Format Catalog Captured";'; put 'libds=''work.fmtextract'';'; put 'is_fmt=1;'; put 'end;'; put 'call symputx(''is_fmt'',is_fmt);'; put 'call symputx(''libds'',libds);'; put 'call symputx(''FNAME'',filename);'; put 'call symputx(''LIBREF'',libref);'; put 'call symputx(''DS'',dsn);'; put 'call symputx(''LOADTYPE'',loadtype);'; put 'call symputx(''BUSKEY'',buskey);'; put 'call symputx(''VAR_TXFROM'',var_txfrom);'; put 'call symputx(''VAR_TXTO'',var_txto);'; put 'call symputx(''VAR_BUSFROM'',var_busfrom);'; put 'call symputx(''VAR_BUSTO'',var_busto);'; put 'call symputx(''VAR_PROCESSED'',var_processed);'; put 'call symputx(''RK_UNDERLYING'',RK_UNDERLYING);'; put 'call symputx(''POST_EDIT_HOOK'',POST_EDIT_HOOK);'; put 'call symputx(''NOTES'',NOTES);'; put 'call symputx(''PK'',coalescec(RK_UNDERLYING,buskey));'; put 'call symputx(''NUM_OF_APPROVALS_REQUIRED'',NUM_OF_APPROVALS_REQUIRED,''l'');'; put 'put (_all_)(=);'; put 'stop;'; put 'run;'; put '%if %length(&ds)=0 %then %do;'; put '%let msg=%str(ERR)OR: Unable to extract record from &mpelib..mpe_tables;'; put '%mpe_loadfail('; put 'status=FAILED'; put ',now=&now'; put ',mperef=&mperef'; put ',reason_txt=%quote(&msg)'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%mp_abort(msg=&msg,mac=mpe_loader.sas);'; put '%return;'; put '%end;'; put '/* export format catalog */'; put '%mp_cntlout('; put 'iftrue=(&is_fmt=1)'; put ',libcat=&orig_libds'; put ',fmtlist=0'; put ',cntlout=work.fmtextract'; put ')'; put '/* user must have EDIT access to load a table */'; put '%mpe_accesscheck(&orig_libds'; put ',outds=work.sumo_access'; put ',user=&user'; put ',access_level=EDIT )'; put '%put exiting accesscheck;'; put '%if %mf_getattrn(work.sumo_access,NLOBS)=0 %then %do;'; put '%let msg=%str(ERR)OR: User is not authorised to edit &orig_libds!;'; put '%mpe_loadfail('; put 'status=UNAUTHORISED'; put ',now=&now'; put ',mperef=&mperef'; put ',reason_txt=%quote(&msg)'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%mp_abort(msg=&msg,mac=mpe_loader.sas);'; put '%return;'; put '%end;'; put '%put now importing: "&csv_dir/&fname" termstr=&termstr;'; put '/* get the variables from the CSV */'; put 'data vars_csv1(index=(idxname=(varnum name)) drop=infile);'; put 'infile "&csv_dir/&fname" lrecl=32767 dsd termstr=&termstr encoding=''utf-8'';'; put 'input;'; put 'length infile $32767;'; put 'infile=compress(_infile_,''"'',);'; put 'infile=compress(infile,"''",);'; put 'format name $32.;'; put 'putlog ''received vars: '' infile;'; put 'call symputx(''received_vars'',infile,''l'');'; put 'do varnum=1 to countw(infile,"&dlm");'; put '/* keep writeable chars */'; put 'name=compress(upcase(scan(infile,varnum)),,''kw'');'; put 'if name ne "_____DELETE__THIS__RECORD_____" then output;'; put 'end;'; put 'stop;'; put 'run;'; put '%put received_vars = &received_vars;'; put '%dc_assignlib(WRITE,&libref)'; put '/* get list of variables and their formats */'; put 'proc contents noprint data=&libds'; put 'out=vars(keep=name type length varnum format:);'; put 'run;'; put 'data vars(keep=name type length varnum format);'; put 'set vars(rename=(format=format2 type=type2));'; put 'name=upcase(name);'; put 'format2=upcase(format2);'; put '/* not interested in transaction or processing dates'; put '(append table must be supplied without them) */'; put 'if name not in ("&VAR_TXFROM","&VAR_TXTO","&VAR_PROCESSED"'; put ',"_____DELETE__THIS__RECORD_____");'; put 'if type2 in (2,6) then do;'; put 'length format $49.;'; put 'if format2='''' then format=cats(''$'',length,''.'');'; put 'else format=cats(format2,max(formatl,length),''.'');'; put 'type=''char'';'; put 'end;'; put 'else do;'; put 'if format2='''' then format=cats(length,''.'');'; put 'else if format2=:''DATETIME'' or format2=:''E8601DT'' or format2=:''NLDATM'''; put 'then do;'; put 'format=''DATETIME19.'';'; put 'end;'; put 'else if format2=:''DATE'' or format2=:''DDMMYY'''; put 'or format2=:''MMDDYY'' or format2=:''YYMMDD'''; put 'or format2=:''E8601DA'' or format2=:''B8601DA'''; put 'or format2=:''NLDATE'''; put 'then do;'; put 'format=''DATE9.'';'; put 'end;'; put 'else if format2=''BEST'' & formatl=0 then format=cats(''BEST'',length,''.'');'; put 'else do;'; put 'if formatl=0 then formatl=length;'; put 'format=cats(format2,formatl,''.'',formatd);'; put 'end;'; put 'type=''num'';'; put 'end;'; put 'put (_all_)(=);'; put 'run;'; put '/* build attrib statement */'; put 'data vars_attrib;'; put 'length attrib_statement $32767 type2 $20;'; put 'set vars end=lastobs;'; put 'retain attrib_statement;'; put 'if type=''char'' then type2=''$'';'; put 'str1=catx('' '',name,''length='',cats(type2,length));'; put 'attrib_statement=trim(attrib_statement)!!'' ''!!trim(str1);'; put 'if lastobs then call symputx(''ATTRIB'',attrib_statement,''L'');'; put 'run;'; put '/* build input statement - first get vars in right order'; put 'and join with target formats*/'; put 'proc sql noprint;'; put 'create table vars_csv2 as'; put 'select b.*'; put 'from vars_csv1 a'; put 'left join vars_attrib b'; put 'on a.name=b.name'; put 'order by a.varnum;'; put '/* now build input statement */'; put 'data final_check;'; put 'set vars_csv2 end=lastobs;'; put 'length input_statement $32767 type2 $20 droplist $32767;'; put 'retain input_statement droplist;'; put '/* Build input statement - CATCH EXCEPTIONS HERE!*/'; put 'if name in (''QUOTE_DTTM'') then do;'; put 'name=cats(name,''2'');'; put 'droplist=catx('' '',trim(droplist),name);'; put 'type2=''$20.'';/* converted below */'; put 'end;'; put 'else if type=''char'' then type2=cats(''$CHAR'', length,''.'');'; put 'else if format=''DATE9.'' then type2=''ANYDTDTE.'';'; put 'else if format=''DATETIME19.'' then type2=''ANYDTDTM.'';'; put 'else if format=:''TIME'' then type2=''ANYDTTME.'';'; put 'else if name='''' then do;/* additional vars in input data */'; put 'name=''_____DELETE__THIS__VARIABLE_____'';'; put 'droplist=catx('' '',trim(droplist),''_____DELETE__THIS__VARIABLE_____'');'; put 'type2=''$1.'';'; put 'end;'; put 'else type2=''best32.'';'; put '* else type2=cats(length,''.'');'; put 'input_statement=catx('' '',input_statement,name,'':'',type2);'; put 'if lastobs then do;'; put 'call symputx(''INPUT'', input_statement,''L'');'; put 'if trim(droplist) ne '''' then'; put 'call symputx(''droplist'',"drop "!!droplist!!'';'',''l'');'; put 'end;'; put 'run;'; put '%let mpeloadstop=0;'; put 'data work.STAGING_DS;'; put '&droplist;'; put 'infile "&csv_dir/&fname" dsd dlm="&dlm" lrecl=32767'; put 'firstobs=2 missover termstr=&termstr encoding=''utf-8'';'; put 'attrib _____DELETE__THIS__RECORD_____ length=$3 &attrib ;'; put 'if _n_=1 then call missing (of _all_);'; put 'missing a b c d e f g h i j k l m n o p q r s t u v w x y z _;'; put 'input'; put '%if %scan(%quote(&received_vars),1)=_____DELETE__THIS__RECORD_____ %then %do;'; put '_____DELETE__THIS__RECORD_____: $3.'; put '%end;'; put '&input;'; put '%if %index(%quote(&attrib.),UNLIKELY_VAR ) %then %do;'; put '/*UNLIKELY_VAR=input(UNLIKELY_VAR2,ANYDTDTM21.);*/'; put '/* SPECIAL LOGIC FOR SPECIAL VARS */'; put '%end;'; put 'if _error_ ne 0 then do;'; put 'putlog _infile_;'; put 'call symputx(''mpeloadstop'',_n_);'; put 'stop;'; put 'end;'; put '/* remove all blank rows */'; put 'if compress(cats(of _all_),''.'')='' '' then delete;'; put 'run;'; put '%if &mpeloadstop>0 %then %do;'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put '%put redirecting log output to capture return message;'; put '%put currentloc=&logloc;'; put 'filename tmp temp;'; put 'proc printto log=tmp;run;'; put 'data _null_;'; put '&droplist;'; put 'infile "&csv_dir/&fname" dsd dlm="&dlm" lrecl=32767 firstobs=2'; put 'missover termstr=&termstr;'; put 'attrib &attrib ;'; put 'input'; put '%if %scan(%quote(&received_vars),1)=_____DELETE__THIS__RECORD_____'; put '%then %do;'; put '_____DELETE__THIS__RECORD_____: $3.'; put '%end;'; put '&input;'; put 'if _error_ then stop;'; put 'run;'; put '/* get log back */'; put 'proc printto log=&logloc;run;'; put 'data _null_; infile tmp; input; putlog _infile_;run;'; put '/* scan log for invalid data warnings */'; put 'data _null_;'; put 'infile tmp;'; put 'input;'; put 'length msg1 msg2 msg3 msg4 msg5 msg url $32767;'; put 'if index(_infile_,''NOTE: Invalid data for'') then do;'; put 'msg1=_infile_;'; put 'input;'; put 'msg2=_infile_;'; put 'input;'; put 'msg3=_infile_;'; put 'input;'; put 'msg4=_infile_;'; put 'input;'; put 'msg5=_infile_;'; put 'url=symget(''url'');'; put 'msg=catx(''\n'',msg1,msg2,msg3,msg4,msg5,''\n'',url);'; put 'call symputx(''msg'',msg);'; put 'stop;'; put 'end;'; put 'run;'; put '%mpe_loadfail('; put 'status=FAILED'; put ',now=&now'; put ',mperef=&mperef'; put ',reason_txt=%superq(msg)'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%return;'; put '%end;'; put '/* check that the table is unique on PK */'; put 'proc sort data=work.STAGING_DS dupout=work.MPE_DUPS (keep=&pk) nodupkey;'; put 'by &pk;'; put 'run;'; put '%if %mf_getattrn(work.MPE_DUPS,NLOBS)>0 %then %do;'; put '%local duplist;'; put 'data _null_;'; put 'set work.mpe_dups;'; put '%do i=1 %to %sysfunc(countw(&pk));'; put '%let iWord=%scan(&pk,&i);'; put 'call symputx(''duplist'',symget(''duplist'')!!'; put '" &iWord="!!cats(&iWord));'; put '%end;'; put 'run;'; put '%let msg=This upload contains duplicates on the Primary Key columns %trim('; put ')(&pk) \n Please remove the duplicates and try again. %trim('; put ')\n &duplist \n ;'; put '%mp_abort(msg=%superq(msg),mac=mpe_loader.sas);'; put '%return;'; put '%end;'; put '%if &syscc gt 4 %then %do;'; put '%let msg=SYSCC=&syscc prior to post edit hook (%superq(syserrortext));'; put '%mpe_loadfail('; put 'status=FAILED - &syscc'; put ',now=&now'; put ',mperef=&mperef'; put ',reason_txt=%superq(msg)'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%return;'; put '%end;'; put '/* If a Complex Excel Upload, needs to have the load ref added to the table */'; put '%mpe_xlmapvalidate(&mperef,work.staging_ds,&mpelib,&orig_libds)'; put '/* Run the Post Edit Hook prior to creation of staging folder */'; put '%mpe_runhook(POST_EDIT_HOOK)'; put '/* stop if err */'; put '%if &syscc gt 4 %then %do;'; put '%let msg=ERR in post edit hook (&post_edit_hook);'; put '%mpe_loadfail('; put 'status=FAILED - &syscc'; put ',now=&now'; put ',mperef=&mperef'; put ',reason_txt=%quote(&msg)'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%return;'; put '%end;'; put '/**'; put '* send to approve process'; put '*/'; put '/* create a dataset key (datetime plus 3 digit random number plus PID) */'; put '/* send dataset to approvals subfolder with same name as subfolder */'; put 'libname approval "&mpelocapprovals/&mperef";'; put 'data approval.&mperef;'; put 'set work.staging_ds;'; put 'run;'; put 'proc export data=approval.&mperef'; put 'outfile="&mpelocapprovals/&mperef/&mperef..csv"'; put 'dbms=csv'; put 'replace;'; put 'run;'; put '/* update the control dataset with relevant info */'; put 'data append_app;'; put 'if 0 then set &mpelib..mpe_submit;/* get formats */'; put 'call missing (of _all_);'; put 'TABLE_ID="&mperef";'; put 'submit_status_cd=''SUBMITTED'';'; put 'submitted_by_nm="%mf_getuser()";'; put 'base_lib="&libref";'; put 'base_ds="&ds";'; put 'submitted_on_dttm=&now;'; put 'submitted_reason_txt=symget(''submitted_reason_txt'');'; put 'input_vars=%mf_getattrn(approval.&mperef,NVARS);'; put 'input_obs=%mf_getattrn(approval.&mperef,NLOBS);'; put 'num_of_approvals_required=&NUM_OF_APPROVALS_REQUIRED;'; put 'num_of_approvals_remaining=&NUM_OF_APPROVALS_REQUIRED;'; put 'reviewed_by_nm='''';'; put 'reviewed_on_dttm=.;'; put 'run;'; put '%mp_lockanytable(LOCK,lib=&mpelib,ds=mpe_submit,'; put 'ref=%str(&mperef update in &_program),'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'proc append base= &mpelib..mpe_submit data=append_app;'; put 'run;'; put '%mp_lockanytable(UNLOCK,'; put 'lib=&mpelib,ds=mpe_submit,'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put '/* send email to REVIEW members */'; put '%put sending mpe_alerts;'; put '%mpe_alerts(alert_event=SUBMITTED'; put ', alert_lib=&libref'; put ', alert_ds=&ds'; put ', dsid=&mperef'; put ')'; put '/* DISABLE EMAIL FOR NOW'; put '%let b2=REASON: %quote(&submitted_reason_txt);'; put '%local URLNOTES;'; put '%if %length(¬es)>0 %then %let URLNOTES=%quote(%sysfunc(urlencode(¬es)));'; put '%let b3=%str(Click to review / approve: )%trim('; put ')%str(http://&_srvname:&_srvport&_url?_PROGRAM=/Web/approvals&)%trim('; put ')TABLEID=&dsid%str(&)BASETABLE=&libref..&ds%str(&)NOTES=&URLNOTES;'; put '%let b4=%str(Reference ID: &mperef);'; put '*/'; put '%put mpe_loader finishing up with syscc=&syscc;'; put '%if &syscc le 4 %then %do;'; put '%local dur;'; put 'data _null_;'; put 'now=symget(''now'');'; put 'dur=%sysfunc(datetime())-&now;'; put 'call symputx(''dur'',dur,''l'');'; put 'putlog ''Updating mpe_loads with the following query:'';'; put 'putlog "update &mpelib..mpe_loads set STATUS=''SUCCESS''";'; put 'putlog " , duration=" dur;'; put 'putlog " , processed_dttm=" now;'; put 'putlog " , approvals = ''&libref..&ds''";'; put 'putlog " where CSV_DIR=''&mperef'';";'; put 'run;'; put 'proc sql;'; put 'update &mpelib..mpe_loads set STATUS=''SUCCESS'''; put ', duration=&dur'; put ', processed_dttm=&now'; put ', approvals = "&libref..&ds"'; put 'where CSV_DIR="&mperef";'; put '%end;'; put '%else %do;'; put '%mpe_loadfail('; put 'status="FAILED - &syscc"'; put ',now=&now'; put ',approvals=&libref..&ds'; put ',mperef=&mperef'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%return;'; put '%end;'; put '%mend mpe_loader;'; put '%macro mp_cleancsv(in=NOTPROVIDED,out=NOTPROVIDED,qchar=''22''x);'; put '%if "&in"="NOTPROVIDED" or "&out"="NOTPROVIDED" %then %do;'; put '%put %str(ERR)OR: Please provide valid input (&in) & output (&out) locations;'; put '%return;'; put '%end;'; put '/* presence of a period(.) indicates a physical location */'; put '%if %index(&in,.) %then %let in="&in";'; put '%if %index(&out,.) %then %let out="&out";'; put '/**'; put '* convert all cr and crlf within quotes to lf'; put '* convert all other cr or lf to crlf'; put '*/'; put 'data _null_;'; put 'infile &in recfm=n ;'; put 'file &out recfm=n;'; put 'retain isq iscrlf 0 qchar &qchar;'; put 'input inchar $char1. ;'; put 'if inchar=qchar then isq = mod(isq+1,2);'; put 'if isq then do;'; put '/* inside a quote change cr and crlf to lf */'; put 'if inchar=''0D''x then do;'; put 'put ''0A''x;'; put 'input inchar $char1.;'; put 'if inchar ne ''0A''x then do;'; put 'put inchar $char1.;'; put 'if inchar=qchar then isq = mod(isq+1,2);'; put 'end;'; put 'end;'; put 'else put inchar $char1.;'; put 'end;'; put 'else do;'; put '/* outside a quote, change cr and lf to crlf */'; put 'if inchar=''0D''x then do;'; put 'crblank:'; put 'put ''0D0A''x;'; put 'input inchar $char1.;'; put 'if inchar=''0D''x then do;'; put '/* multiple CR indicates CR formatted file with blank lines */'; put 'goto crblank;'; put 'end;'; put 'else if inchar ne ''0A''x then do;'; put 'put inchar $char1.;'; put 'if inchar=qchar then isq = mod(isq+1,2);'; put 'end;'; put 'end;'; put 'else if inchar=''0A''x then put ''0D0A''x;'; put 'else put inchar $char1.;'; put 'end;'; put 'run;'; put '%mend mp_cleancsv;'; put '/** @endcond */'; put '%macro mp_binarycopy('; put 'inloc= /* full path and filename of the object to be copied */'; put ',outloc= /* full path and filename of object to be created */'; put ',inref=____in /* override default to use own filerefs */'; put ',outref=____out /* override default to use own filerefs */'; put ',mode=CREATE'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%local mod;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if &mode=APPEND %then %let mod=mod;'; put '/* these IN and OUT filerefs can point to anything */'; put '%if &inref = ____in %then %do;'; put 'filename &inref &inloc lrecl=1048576 ;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref &outloc lrecl=1048576 &mod;'; put '%end;'; put '/* copy the file byte-for-byte */'; put 'data _null_;'; put 'infile &inref lrecl=1 recfm=n;'; put 'file &outref &mod recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%if &inref = ____in %then %do;'; put 'filename &inref clear;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref clear;'; put '%end;'; put '%mend mp_binarycopy;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file loadfile.sas'; put '@brief Loads a file'; put '@details'; put '

SAS Macros

'; put '@li mddl_sas_cntlout.sas'; put '@li mp_abort.sas'; put '@li mf_getplatform.sas'; put '@li mf_getuser.sas'; put '@li mf_getvarlist.sas'; put '@li mf_mkdir.sas'; put '@li mf_verifymacvars.sas'; put '@li mf_wordsinstr1butnotstr2.sas'; put '@li dc_assignlib.sas'; put '@li mpe_getgroups.sas'; put '@li mp_lockfilecheck.sas'; put '@li mpe_loader.sas'; put '@li mp_cleancsv.sas'; put '@li mp_binarycopy.sas'; put '@li mpeinit.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%global table dlm;'; put '%mpeinit(fetch=NO)'; put '%global _WEBIN_FILENAME1 _WEBIN_FILENAME2'; put '_WEBIN_FILEREF _WEBIN_FILEREF1 _WEBIN_FILEREF2;'; put '%macro load();'; put '%if %mf_getplatform()=SASVIYA %then %do;'; put '%global _webin_fileuri _webin_fileuri1 _webin_fileuri2;'; put '%let _webin_fileuri1=%sysfunc(coalescec(&_webin_fileuri1,&_webin_fileuri));'; put '%if "&_webin_fileuri1" ne "" %then %do;'; put '%put &=_webin_fileuri1;'; put 'filename sjfref1 filesrvc "&_webin_fileuri1";'; put '%let _WEBIN_FILEREF1=sjfref1;'; put '%end;'; put '%if "&_webin_fileuri2" ne "" %then %do;'; put '%put &=_webin_fileuri2;'; put 'filename sjfref2 filesrvc "&_webin_fileuri2";'; put '%let _WEBIN_FILEREF2=sjfref2;'; put '%end;'; put '%end;'; put '%mend load;'; put '%load()'; put '%let _WEBIN_FILENAME1=%sysfunc(coalescec(&_WEBIN_FILENAME1,&_WEBIN_FILENAME));'; put '%let _WEBIN_FILEREF1=%sysfunc(coalescec(&_WEBIN_FILEREF1,&_WEBIN_FILEREF));'; put '%let abort=0;'; put '/* we do not know if the excel file will be first or second fileref */'; put 'data _null_;'; put 'ext1=upcase(scan(symget(''_WEBIN_FILENAME1''),-1,''.''));'; put 'ext2=upcase(scan(symget(''_WEBIN_FILENAME2''),-1,''.''));'; put 'if ext1=''CSV'' then do;'; put 'csvname=symget(''_WEBIN_FILENAME1'');'; put 'csvref=symget(''_WEBIN_FILEREF1'');'; put 'xlsname=symget(''_WEBIN_FILENAME2'');'; put 'xlsref=symget(''_WEBIN_FILEREF2'');'; put 'end;'; put 'else if ext2=''CSV'' then do;'; put 'csvname=symget(''_WEBIN_FILENAME2'');'; put 'csvref=symget(''_WEBIN_FILEREF2'');'; put 'xlsname=symget(''_WEBIN_FILENAME1'');'; put 'xlsref=symget(''_WEBIN_FILEREF1'');'; put 'end;'; put 'else call symputx(''abort'',1);'; put 'call symputx(''csvname'',csvname);'; put 'call symputx(''csvref'',csvref);'; put 'call symputx(''xlsname'',xlsname);'; put 'call symputx(''xlsref'',coalescec(xlsref,''0''));'; put 'run;'; put '%mp_abort(iftrue= (&abort=1)'; put ',mac=&_program'; put ',msg=%str(File "&csvname" or "&xlsname" must be a CSV!'; put '(Comma separated with .csv extension))'; put ')'; put '%let user=%mf_getuser();'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(table)=0)'; put ',mac=&_program'; put ',msg=%str(Missing: table)'; put ')'; put '%let table=%upcase(%trim(&table));'; put '/* load parameters */'; put 'data _null_;'; put 'libds=upcase(symget(''table''));'; put 'call symputx(''orig_libds'',libds);'; put 'call symputx(''orig_lib'',scan(libds,1,''.''));'; put 'call symputx(''orig_ds'',scan(libds,2,''.''));'; put 'is_fmt=0;'; put 'if substr(cats(reverse(libds)),1,3)=:''CF-'' then do;'; put 'libds=scan(libds,1,''-'');'; put 'putlog "Format Catalog Captured";'; put 'libds=''work.fmtextract'';'; put 'call symputx(''libds'',libds);'; put 'call execute(''%mddl_sas_cntlout(libds=work.fmtextract)'');'; put 'is_fmt=1;'; put 'end;'; put 'else call symputx(''libds'',libds);'; put 'call symputx(''is_fmt'',is_fmt);'; put 'putlog (_all_)(=);'; put 'run;'; put '/* check that the user has the requisite access */'; put '%mpe_getgroups(user=&user,outds=groups)'; put 'proc sql;'; put 'create table accesscheck as'; put 'select * from groups'; put 'where groupname="&mpeadmins"'; put 'or groupname in (select sas_group from &mpelib..mpe_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and access_level="EDIT"'; put 'and ('; put '(libref="&orig_lib" and dsn="&orig_ds")'; put 'or (libref="&orig_lib" and dsn="*ALL*")'; put 'or (libref="*ALL*" and dsn="*ALL*")'; put 'or (libref="*ALL*" and dsn="&orig_ds")'; put '));'; put '%let nobs=;'; put 'select count(*) into: nobs from &syslast;'; put '%mp_abort(iftrue= (&nobs=0)'; put ',mac=&sysmacroname'; put ',msg=%str(&user not authorised to load &orig_libds per &mpelib..mpe_security)'; put ')'; put '%dc_assignlib(WRITE,&orig_lib)'; put '%mp_abort(iftrue= (&syscc ge 4)'; put ',mac=loadfile'; put ',msg=%str(Issue assigning library &orig_lib)'; put ')'; put '%global txfrom txto processed rk;'; put 'data _null_;'; put 'set &mpelib..MPE_TABLES;'; put 'where libref="&orig_lib" and dsn="&orig_ds";'; put 'call symputx(''txfrom'',var_txfrom);'; put 'call symputx(''txto'',var_txto);'; put 'call symputx(''processed'',var_processed);'; put 'if not missing(RK_UNDERLYING) then call symputx(''rk'',buskey);'; put 'run;'; put '%mp_lockfilecheck(libds=&orig_libds)'; put 'data compare;'; put 'set &libds(drop=&txfrom &txto &processed &rk);'; put 'stop;'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc line 80)'; put ')'; put '/* get line terminator, assume it''s the first cr, lf, or crlf */'; put 'data _null_;'; put 'length text $32767 term $4;'; put 'call missing (of _all_);'; put 'fid=fopen("&csvref",''I'',32767,''b'');'; put 'rc=fread(fid);'; put 'rc2=fget(fid,text,32767);'; put 'cr=find(text,''0D''x );'; put 'lf=find(text,''0A''x );'; put 'crlf=find(text,''0D0A''x);'; put 'rc=fclose(fid);'; put 'if crlf>0 & cr0 & crlf0 & cr>0 & lf0 then term=''LF'';'; put 'else term=''CR'';'; put 'call symputx(''termstr'',term);'; put 'run;'; put 'data _null_;'; put 'infile &csvref lrecl=32000 dsd termstr=&termstr;'; put 'input;'; put 'length incols_unsorted $32000 dlm $1;'; put 'incols_unsorted=compress(upcase(_infile_),"''"!!''"'');'; put '/* dlm has length 1 so will be the first non alpha / digit char */'; put '/* expectation is that there will not be any crazy characters in first col! */'; put 'dlm=compress(incols_unsorted,''_ '',''ad'');'; put 'incols_unsorted=compress(incols_unsorted,dlm!!''_'',''kado'');'; put 'incols_unsorted=tranwrd(incols_unsorted,dlm,'' '');'; put 'call symputx(''incols_unsorted'',incols_unsorted);'; put 'call symputx(''dlm'',dlm);'; put 'putlog incols_unsorted=;'; put 'putlog dlm=;'; put 'stop;'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc line 99)'; put ')'; put '%let basecols=%upcase(%mf_getvarlist(work.compare,dlm=%str( )));'; put '%let missing_cols=%trim('; put '%mf_wordsInStr1ButNotStr2('; put 'Str1=&basecols'; put ',Str2=&incols_unsorted'; put '));'; put '%let msg='; put 'Expected cols: &basecols'; put '
Received cols: &incols_unsorted'; put '
Missing cols: &missing_cols'; put ';'; put '%mp_abort(iftrue= (%length(%trim(&missing_cols)) > 1 or &syscc ne 0)'; put ',mac=mpestp_loadfile.sas'; put ',msg=%superq(msg)'; put ')'; put '%let msg=0;'; put 'PROC FORMAT;'; put 'picture yymmddhhmmss other=''%0Y%0m%0d_%0H%0M%0S'' (datatype=datetime);'; put 'RUN;'; put '/* create a dataset key (datetime plus 6 digit random number plus PID) */'; put '%let mperef=DC%left(%sysfunc(datetime(),B8601DT19.3))_%substr('; put '%sysfunc(ranuni(0)),3,6)_%substr(%str(&sysjobid ),1,4);'; put '/* Create package folder and redirect the log */'; put '%let dir=&mpelocapprovals/&mperef;'; put '%mf_mkdir(&dir)'; put '/* clean embedded line breaks and force CRLF line endings */'; put '%mp_cleancsv(in=&csvref, out=&dir/&orig_libds..csv)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(issue in mp_cleancsv)'; put ')'; put '%put; %put; %put log is being redirected;'; put '%let url=_program=%substr(&_program'; put ',1,%length(&_program)-8)getlog%nrstr(&)table=&mperef;'; put '%put to retrieve, visit this url:; %put;%put;'; put '%put &url;'; put '%put;'; put '/* proc printto log="&dir/weblog.txt";run; */'; put 'libname approve "&dir";'; put 'options mprint;'; put '%put &=mperef;'; put '%put &=termstr;'; put '%put &=dlm;'; put '%mpe_loader(mperef=&mperef'; put ',submitted_reason_txt=%quote(File upload: %superq(csvname))'; put ',dlm=%superq(dlm)'; put ',url=%superq(url)'; put ',termstr=CRLF'; put ',dc_dttmtfmt=&dc_dttmtfmt'; put ')'; put '%mp_abort(mode=INCLUDE)'; put '%mp_abort('; put 'iftrue= (%sysfunc(fileexist(%sysfunc(pathname(work))/mf_abort.error)) ne 0)'; put ',mac=&_program'; put ',msg=%nrstr(Problem occurred in &sysmacroname (mf_abort.error file found))'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=mpestp_loadfile.sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put 'filename outref "&dir/BKP_&xlsname";'; put '%mp_binarycopy(iftrue=("&xlsref" ne "0"),inref=&xlsref,outref=outref)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc when backing up source file &xlsname)'; put ')'; put 'data sasparams;'; put 'STATUS=''SUCCESS'';'; put 'DSID="&mperef";'; put 'run;'; put '%webout(OPEN)'; put '%webout(OBJ,sasparams)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=restore; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mc,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mpe_accesscheck('; put 'base_table'; put ',outds=med_accesscheck /* WORK table to contain access details */'; put ',user= /* metadata user to check for */'; put ',access_level=APPROVE'; put ',cntl_lib_var=MPELIB'; put ');'; put '%if &user= %then %let user=%mf_getuser();'; put '%mp_abort('; put 'iftrue=(%index(&outds,.)>0 and %upcase(%scan(&outds,1,.)) ne WORK)'; put ',mac=mpe_accesscheck'; put ',msg=%str(outds should be a WORK table)'; put ')'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; put ',mac=mpe_accesscheck'; put ',msg=%str(Missing base_table/user access_level variables)'; put ')'; put '/* make unique temp table vars */'; put '%local tempds1 tempds2;'; put '%let tempds1=%mf_getuniquename(prefix=usergroups);'; put '%let tempds2=%mf_getuniquename(prefix=tablegroups);'; put '/* get list of user groups */'; put '%mpe_getgroups(user=&user,outds=&tempds1)'; put '/* get list of groups with access for that table */'; put 'proc sql;'; put 'create table &tempds2 as'; put 'select distinct sas_group'; put 'from &&&cntl_lib_var...mpe_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and access_level="&access_level"'; put 'and ('; put '(libref="%scan(&base_table,1,.)" and upcase(dsn)="%scan(&base_table,2,.)")'; put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; put 'or (libref="*ALL*")'; put ');'; put '%if &_debug ge 131 %then %do;'; put 'data _null_;'; put 'set &tempds1;'; put 'putlog (_all_)(=);'; put 'run;'; put 'data _null_;'; put 'set &tempds2;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put 'proc sql;'; put 'create table &outds as'; put 'select * from &tempds1'; put 'where groupname="&mpeadmins"'; put 'or groupname in (select * from &tempds2);'; put '%put &sysmacroname: base_table=&base_table;'; put '%put &sysmacroname: access_level=&access_level;'; put '%mend mpe_accesscheck;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '%macro mpe_checkrestore(load_ref,'; put 'outresult=ALLOW_RESTORE,'; put 'outreason=REASON'; put ');'; put '%global &outresult &outreason;'; put '%let &outresult=NO;'; put '%let &outreason=NOTFOUND;'; put '/* check if there is actually a version to restore */'; put '%local chk;'; put '%let chk=0;'; put 'proc sql noprint;'; put 'select count(*) into: chk from &dc_libref..mpe_audit'; put 'where load_ref="&load_ref";'; put '%if &chk=0 %then %do;'; put '%let allow_restore=NO;'; put '%let reason=No entry for &load_ref in MPE_AUDIT;'; put '%return;'; put '%end;'; put '/* grab user groups */'; put '%local user;'; put '%let user=%mf_getuser();'; put '%mpe_getgroups(user=&user,outds=work.groups)'; put '/* check if user is admin */'; put '%local is_admin;'; put '%let is_admin=0;'; put 'proc sql;'; put 'select count(*) into: is_admin from work.groups'; put 'where groupname="&dc_admin_group";'; put '%if &is_admin>0 %then %do;'; put '%let allow_restore=YES;'; put '%let reason=IS ADMIN;'; put '%return;'; put '%end;'; put '/* check if user has basic access */'; put '%local libds;'; put 'proc sql noprint;'; put 'select cats(base_lib,''.'',base_ds) into: libds'; put 'from &mpelib..mpe_submit'; put 'where TABLE_ID="&load_ref";'; put '%mpe_accesscheck(&libds,outds=work.access_check'; put ',user=&user'; put ',access_level=EDIT'; put ')'; put '%if %mf_nobs(access_check)=0 %then %do;'; put '%let allow_restore=NO;'; put '%let reason=No access in MPE_TABLES;'; put '%return;'; put '%end;'; put '/* check if user has column level security rules */'; put 'proc sql;'; put 'create table work.cls_rules as'; put 'select *'; put 'from &mpelib..mpe_column_level_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and CLS_SCOPE in ("EDIT",''ALL'')'; put 'and CLS_ACTIVE=1'; put 'and upcase(CLS_GROUP) in (select upcase(groupname) from work.groups)'; put 'and CLS_LIBREF="%upcase(&base_lib)"'; put 'and CLS_TABLE="%upcase(&base_ds)";'; put '%if %mf_nobs(work.cls_rules)>0 %then %do;'; put '%let allow_restore=NO;'; put '%let reason=User has restrictions in MPE_COLUMN_LEVEL_SECURITY;'; put 'data _null_;'; put 'set work.cls_rules;'; put 'putlog (_all_)(=);'; put 'if _n_>5 then stop;'; put 'run;'; put '%return;'; put '%end;'; put '/* check if user has row level security rules */'; put 'proc sql;'; put 'create table work.rls_rules as'; put 'select *'; put 'from &mpelib..mpe_row_level_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and rls_scope in ("EDIT",''ALL'')'; put 'and upcase(rls_group) in (select upcase(groupname) from work.groups)'; put 'and rls_libref="&base_lib"'; put 'and rls_table="&base_ds"'; put 'and rls_active=1;'; put '%if %mf_nobs(work.rls_rules)>0 %then %do;'; put '%let allow_restore=NO;'; put '%let reason=User has restrictions in MPE_ROW_LEVEL_SECURITY;'; put 'data _null_;'; put 'set work.rls_rules;'; put 'putlog (_all_)(=);'; put 'if _n_>5 then stop;'; put 'run;'; put '%return;'; put '%end;'; put '%else %do;'; put '%let allow_restore=YES;'; put '%let reason=CHECKS PASSED;'; put '%end;'; put '%mend mpe_checkrestore;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '%macro mpe_alerts(alert_event='; put ', alert_lib='; put ', alert_ds='; put ', dsid='; put ');'; put '/* exit if not configured */'; put '%global DC_EMAIL_ALERTS;'; put '%if &DC_EMAIL_ALERTS ne YES %then %do;'; put '%put DCNOTE: Email alerts are not configured;'; put '%put DCNOTE: (dc_email_alerts=&dc_email_alerts in &mpelib..mpe_config);'; put '%return;'; put '%end;'; put '%let alert_event=%upcase(&alert_event);'; put '%let alert_lib=%upcase(&alert_lib);'; put '%let alert_ds=%upcase(&alert_ds);'; put '%let from_user=%mf_getuser();'; put '/* get users TO which the email should be sent */'; put 'proc sql noprint;'; put 'create table work.users as select distinct a.alert_user,'; put 'b.user_displayname,'; put 'b.user_email'; put 'from &mpelib..mpe_alerts'; put '(where=(&dc_dttmtfmt. lt tx_to)) a'; put 'left join &mpelib..mpe_emails'; put '(where=(&dc_dttmtfmt. lt tx_to)) b'; put 'on upcase(trim(a.alert_user))=upcase(trim(b.user_name))'; put 'where a.alert_event in ("&alert_event","*ALL*")'; put 'and a.alert_lib in ("&alert_lib","*ALL*")'; put 'and a.alert_ds in ("&alert_ds","*ALL*");'; put '/* ensure the submitter is included on the email */'; put '%local isThere userdisp user_eml;'; put '%let isThere=0;'; put 'select count(*) into: isThere from &syslast where alert_user="&from_user";'; put '%if &isThere=0 %then %do;'; put 'select user_displayname, user_email'; put 'into: userdisp trimmed, :user_eml trimmed'; put 'from &mpelib..mpe_emails'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and user_name="&from_user";'; put 'insert into work.users'; put 'set alert_user="&from_user"'; put ',user_displayname="&userdisp"'; put ',user_email="&user_eml";'; put '%end;'; put '/* if no email / displayname is provided, then extract from metadata */'; put 'data work.emails;'; put 'set work.users;'; put 'length emailuri uri text $256; call missing(emailuri,uri); drop emailuri uri;'; put '/* get displayname */'; put 'text=cats("omsobj:Person?@Name=''",alert_user,"''");'; put 'if metadata_getnobj(text,1,uri)<=0 then do;'; put 'putlog "DCWARN: &from_user not found";'; put 'return;'; put 'end;'; put 'else if user_displayname = '''' then do;'; put 'if metadata_getattr(uri,''DisplayName'',user_displayname)<0 then do;'; put 'putlog ''DCWARN: strange err, no displayname attribute of user URI'';'; put 'end;'; put 'end;'; put 'if index(user_email,''@'') then return;'; put '/* get email from metadata if not in input table */'; put 'if metadata_getnasn(uri,"EmailAddresses",1,emailuri)<=0 then do;'; put 'putlog "DCWARN: " alert_user " has no emails in MPE_EMAILS or metadata!";'; put 'end;'; put 'else do;'; put 'if metadata_getattr(emailuri,"Address",user_email)<0 then do;'; put 'putlog ''DCWARN: Unexpected error! Valid emailURI but no email. Weird.'';'; put 'end;'; put 'end;'; put '/* only keep valid emails */'; put 'if index(user_email,''@'') ;'; put '/* dump contents for debugging */'; put 'if _n_<21 then putlog (_all_)(=);'; put 'run;'; put '%local emails;'; put 'proc sql noprint;'; put 'select quote(trim(user_email)) into: emails separated by '' '' from work.emails;'; put '/* exit if nobody to email */'; put '%if %mf_getattrn(emails,NLOBS)=0 %then %do;'; put '%put NOTE: No alerts configured (mpe_alerts.sas);'; put '%return;'; put '%end;'; put '/* display email options */'; put 'data _null_;'; put 'set sashelp.voption(where=(group=''EMAIL''));'; put 'put optname ''='' setting;'; put 'run;'; put 'filename __out email (&emails)'; put 'subject="Table &alert_lib..&alert_ds has been &alert_event";'; put '%local SUBMITTED_TXT;'; put '%if &alert_event=SUBMITTED %then %do;'; put 'data _null_;'; put 'set &mpelib..mpe_submit;'; put 'where table_id="&dsid" and submit_status_cd=''SUBMITTED'';'; put 'call symputx(''SUBMITTED_TXT'',submitted_reason_txt,''l'');'; put 'run;'; put 'data _null_;'; put 'File __out lrecl=32000;'; put 'put ''Dear user,'';'; put 'put '' '';'; put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; put '"been proposed by &from_user on the ''&syshostname'' SAS server.";'; put 'put " ";'; put 'length txt $2048;'; put 'txt=symget(''SUBMITTED_TXT'');'; put 'put "Reason provided: " txt;'; put 'put " ";'; put 'put "This is an automated email by Data Controller for SAS. For "'; put '"documentation, please visit https://docs.datacontroller.io";'; put 'run;'; put '%end;'; put '%else %if &alert_event=APPROVED %then %do;'; put '/* there is no approval message */'; put 'data _null_;'; put 'File __out lrecl=32000;'; put 'put ''Dear user,'';'; put 'put '' '';'; put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; put '"been approved by &from_user on the ''&syshostname'' SAS server.";'; put 'put " ";'; put 'put "This is an automated email by Data Controller for SAS. For "'; put '"documentation, please visit https://docs.datacontroller.io";'; put 'run;'; put '%end;'; put '%else %if &alert_event=REJECTED %then %do;'; put 'data _null_;'; put 'set &mpelib..mpe_review;'; put 'where table_id="&dsid" and review_status_id=''REJECTED'';'; put 'call symputx(''REVIEW_REASON_TXT'',REVIEW_REASON_TXT,''l'');'; put 'run;'; put 'data _null_;'; put 'File __out lrecl=32000;'; put 'put ''Dear user,'';'; put 'put '' '';'; put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; put '"been rejected by &from_user on the ''&syshostname'' SAS server.";'; put 'put " ";'; put 'length txt $2048;'; put 'txt=symget(''REVIEW_REASON_TXT'');'; put 'put "Reason provided: " txt;'; put 'put " ";'; put 'put "This is an automated email by Data Controller for SAS. For "'; put '"documentation, please visit https://docs.datacontroller.io";'; put 'run;'; put '%end;'; put 'filename __out clear;'; put '%mend mpe_alerts ;'; put '%macro mpe_xlmapvalidate(mperef,inds,dclib,tgtds);'; put '%local ismap;'; put 'proc sql noprint;'; put 'select count(*) into: ismap'; put 'from &dclib..mpe_xlmap_info'; put 'where XLMAP_TARGETLIBDS="&tgtds" and &dc_dttmtfmt. le TX_TO ;'; put '%if "&tgtds"="&dclib..MPE_XLMAP_DATA" or &ismap>0 %then %do;'; put 'data &inds;'; put 'set &inds;'; put 'LOAD_REF="&mperef";'; put 'run;'; put '%end;'; put '%mend mpe_xlmapvalidate;'; put '%macro mpe_loadfail('; put 'status=FAILED - &syscc'; put ',now=%sysfunc(datetime())'; put ',approvals='; put ',mperef='; put ',reason_txt='; put ',mac=mpe_loadfail.sas'; put ',dc_dttmtfmt=E8601DT26.6'; put ');'; put '/* do not perform duration calc in pass through */'; put '%local dur;'; put 'data _null_;'; put 'now=symget(''now'');'; put 'dur=%sysfunc(datetime())-&now;'; put 'call symputx(''dur'',dur,''l'');'; put 'run;'; put 'proc sql;'; put 'update &mpelib..mpe_loads'; put 'set STATUS=symget(''status'')'; put ', duration=&dur'; put ', processed_dttm=&dc_dttmtfmt.'; put ', approvals = symget(''approvals'')'; put ', reason_txt= symget(''reason_txt'')'; put 'where CSV_DIR="&mperef";'; put '%let syscc=666;'; put '%mp_abort(msg=%superq(status)\n%superq(reason_txt),mac=&mac)'; put '%mend mpe_loadfail;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mv_getfoldermembers(root=/'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',outds=mv_getfolders'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put '%if %mf_isblank(&root)=1 %then %let root=/;'; put 'options noquotelenmax;'; put '/* request the client details */'; put '%local fname1 libref1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '%if "&root"="/" %then %do;'; put '/* if root just list root folders */'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/folders/rootFolders?limit=1000";'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* first get parent folder id */'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/folders/folders/@item?path=&root";'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put 'libname &libref1 JSON fileref=&fname1;'; put '/* now get the followon link to list members */'; put '%local href cnt;'; put '%let cnt=0;'; put 'data _null_;'; put 'length rel href $512;'; put 'call missing(rel,href);'; put 'set &libref1..links;'; put 'if rel=''members'' then do;'; put 'url=cats("''","&base_uri",href,"?limit=10000''");'; put 'call symputx(''href'',url,''l'');'; put 'call symputx(''cnt'',1,''l'');'; put 'end;'; put 'run;'; put '%if &cnt=0 %then %do;'; put '%put NOTE:;%put NOTE- No members found in &root!!;%put NOTE-;'; put '%return;'; put '%end;'; put '%local fname2 libref2;'; put '%let fname2=%mf_getuniquefileref();'; put '%let libref2=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname2 &oauth_bearer'; put 'url=%unquote(%superq(href));'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put 'libname &libref2 JSON fileref=&fname2;'; put 'data &outds;'; put 'length id $36 name $128 uri $64 type $32 description $256;'; put 'if _n_=1 then call missing (of _all_);'; put 'set &libref2..items;'; put 'run;'; put 'filename &fname2 clear;'; put 'libname &libref2 clear;'; put '%end;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getfoldermembers;'; put '%macro mv_getjobcode(outref=0,outfile=0'; put ',name=0,path=0'; put ',contextName=SAS Job Execution compute context'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',mdebug=0'; put ');'; put '%local dbg bufsize varcnt fname1 fname2 errmsg;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname local entry vars:;'; put '%put _local_;'; put '%end;'; put '%else %let dbg=*;'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put '%mp_abort(iftrue=("&path"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job Path not provided)'; put ')'; put '%mp_abort(iftrue=("&name"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job Name not provided)'; put ')'; put '%mp_abort(iftrue=("&outfile"="0" and "&outref"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Output destination (file or fileref) must be provided)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put 'data;run;'; put '%local foldermembers;'; put '%let foldermembers=&syslast;'; put '%mv_getfoldermembers(root=&path'; put ',access_token_var=&access_token_var'; put ',grant_type=&grant_type'; put ',outds=&foldermembers'; put ')'; put '%local joburi;'; put '%let joburi=0;'; put 'data _null_;'; put 'length name uri $512;'; put 'call missing(name,uri);'; put 'set &foldermembers;'; put 'if name="&name" and uri=:''/jobDefinitions/definitions'''; put 'then call symputx(''joburi'',uri);'; put 'run;'; put '%mp_abort(iftrue=("&joburi"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job &path/&name not found)'; put ')'; put '/* prepare request*/'; put '%let fname1=%mf_getuniquefileref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri&joburi";'; put 'headers "Accept"="application/vnd.sas.job.definition+json"'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put ';'; put 'run;'; put '%if &mdebug=1 %then %do;'; put 'data _null_;'; put 'infile &fname1;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%end;'; put '%mp_abort('; put 'iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200 and &SYS_PROCHTTP_STATUS_CODE ne 201)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%let fname2=%mf_getuniquefileref();'; put 'filename &fname2 temp ;'; put '/* cannot use lua IO package as not available in Viya 4 */'; put '/* so use data step to read the JSON until the string `"code":"` is found */'; put 'data _null_;'; put 'file &fname2 recfm=n;'; put 'infile &fname1 lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'retain startwrite 0;'; put 'if startwrite=0 and sourcechar=''"'' then do;'; put 'reentry:'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''c'' then do;'; put 'reentry2:'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''o'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''d'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''e'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''"'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar='':'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''"'' then do;'; put 'putlog ''code found'';'; put 'startwrite=1;'; put 'input sourcechar $ 1. @@;'; put 'end;'; put 'end;'; put 'else if sourcechar=''c'' then goto reentry2;'; put 'end;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put '/* once the `"code":"` string is found, write until unescaped `"` is found */'; put 'if startwrite=1 then do;'; put 'if sourcechar=''\'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar in (''"'',''\'') then put sourcechar char1.;'; put 'else if sourcechar=''n'' then put ''0A''x;'; put 'else if sourcechar=''r'' then put ''0D''x;'; put 'else if sourcechar=''t'' then put ''09''x;'; put 'else if sourcechar=''u'' then do;'; put 'length uni $4;'; put 'input uni $ 4. @@;'; put 'sourcechar=unicode(''\u''!!uni);'; put 'put sourcechar char1.;'; put 'end;'; put 'else do;'; put 'call symputx(''errmsg'',"Uncaught escape char: "!!sourcechar,''l'');'; put 'call symputx(''syscc'',99);'; put 'stop;'; put 'end;'; put 'end;'; put 'else if sourcechar=''"'' then stop;'; put 'else put sourcechar char1.;'; put 'end;'; put 'run;'; put '%mp_abort(iftrue=("&syscc"="99")'; put ',mac=mv_getjobcode'; put ',msg=%str(&errmsg)'; put ')'; put '/* export to desired destination */'; put '%if "&outref"="0" %then %do;'; put 'data _null_;'; put 'file "&outfile" lrecl=32767;'; put '%end;'; put '%else %do;'; put 'filename &outref temp;'; put 'data _null_;'; put 'file &outref;'; put '%end;'; put 'infile &fname2;'; put 'input;'; put 'put _infile_;'; put '&dbg. putlog _infile_;'; put 'run;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname exit vars:;'; put '%put _local_;'; put '%end;'; put '%else %do;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'filename &fname2 clear;'; put '%end;'; put '%mend mv_getjobcode;'; put '%macro dc_getservicecode(loc=,outref=);'; put '%local name;'; put '%let name=%scan(&loc,-1,/);'; put '%mv_getjobcode(path=%substr(&loc,1,%length(&loc)-%length(&name)-1)'; put ',name=&name'; put ',outref=&outref'; put ')'; put '%mend dc_getservicecode;'; put '%macro mp_include(fileref'; put ',prefix=_'; put ',opts=SOURCE2'; put ',errds=work.mp_abort_errds'; put ')/*/STORE SOURCE*/;'; put '/* prepare precode */'; put '%local tempref;'; put '%let tempref=%mf_getuniquefileref();'; put 'data _null_;'; put 'file &tempref;'; put 'set sashelp.vextfl(where=(fileref="%upcase(&fileref)"));'; put 'put ''%let _SYSINCLUDEFILEDEVICE='' xengine '';'';'; put 'name=scan(xpath,-1,''/\'');'; put 'put ''%let _SYSINCLUDEFILENAME='' name '';'';'; put 'path=subpad(xpath,1,length(xpath)-length(name)-1);'; put 'put ''%let _SYSINCLUDEFILEDIR='' path '';'';'; put 'put ''%let _SYSINCLUDEFILEFILEREF='' "&fileref;";'; put 'run;'; put '/* prepare the errds */'; put 'data &errds;'; put 'length msg mac $1000;'; put 'call missing(msg,mac);'; put 'iftrue=''1=0'';'; put 'run;'; put '/* include the include */'; put '%inc &tempref &fileref/&opts;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=%str(&_SYSINCLUDEFILEDIR/&_SYSINCLUDEFILENAME)'; put ',msg=%str(syscc=&syscc after executing &_SYSINCLUDEFILENAME)'; put ')'; put 'filename &tempref clear;'; put '%mend mp_include;'; put '%macro mpe_runhook(hookvar);'; put '%local pgmloc pgmtype;'; put '%let pgmtype=0;'; put '%put &sysmacroname: &=hookvar;'; put '%if %length(&&&hookvar)>0 %then %do;'; put '%put &sysmacroname: Executing &&&hookvar;'; put 'data _null_;'; put 'rule_value=symget("&hookvar");'; put 'if scan(upcase(rule_value),-1,''.'')=''SAS'' then do;'; put 'call symputx(''pgmtype'',''PGM'');'; put 'call symputx(''pgmloc'',rule_value);'; put 'end;'; put 'else do;'; put 'apploc="%mf_getapploc()";'; put 'if substr(rule_value,1,1) ne ''/'''; put 'then rule_value=cats(apploc,''/'',rule_value);'; put 'call symputx(''pgmloc'',rule_value);'; put 'call symputx(''pgmtype'',''JOB'');'; put 'end;'; put 'run;'; put '%if &pgmtype=PGM %then %do;'; put 'filename sascode "&pgmloc";'; put '%end;'; put '%else %do;'; put '%dc_getservicecode(loc=&pgmloc'; put ',outref=sascode'; put ')'; put '%end;'; put '/* the below script will need to modify work.STAGING_DS */'; put '%local x; %let x=; /* legacy feature */'; put '%mp_include(sascode)'; put '%end;'; put '%mend mpe_runhook;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '%macro mf_mkdir(dir'; put ')/*/STORE SOURCE*/;'; put '%local lastchar child parent;'; put '%let lastchar = %substr(&dir, %length(&dir));'; put '%if (%bquote(&lastchar) eq %str(:)) %then %do;'; put '/* Cannot create drive mappings */'; put '%return;'; put '%end;'; put '%if (%bquote(&lastchar)=%str(/)) or (%bquote(&lastchar)=%str(\)) %then %do;'; put '/* last char is a slash */'; put '%if (%length(&dir) eq 1) %then %do;'; put '/* one single slash - root location is assumed to exist */'; put '%return;'; put '%end;'; put '%else %do;'; put '/* strip last slash */'; put '%let dir = %substr(&dir, 1, %length(&dir)-1);'; put '%end;'; put '%end;'; put '%if (%sysfunc(fileexist(%bquote(&dir))) = 0) %then %do;'; put '/* directory does not exist so prepare to create */'; put '/* first get the childmost directory */'; put '%let child = %scan(&dir, -1, %str(/\:));'; put '/*'; put 'If child name = path name then there are no parents to create. Else'; put 'they must be recursively scanned.'; put '*/'; put '%if (%length(&dir) gt %length(&child)) %then %do;'; put '%let parent = %substr(&dir, 1, %length(&dir)-%length(&child));'; put '%mf_mkdir(&parent)'; put '%end;'; put '/*'; put 'Now create the directory. Complain loudly of any errs.'; put '*/'; put '%let dname = %sysfunc(dcreate(&child, &parent));'; put '%if (%bquote(&dname) eq ) %then %do;'; put '%put %str(ERR)OR: could not create &parent + &child;'; put '%abort cancel;'; put '%end;'; put '%else %do;'; put '%put Directory created: &dir;'; put '%end;'; put '%end;'; put '/* exit quietly if directory did exist.*/'; put '%mend mf_mkdir;'; put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; put 'proc sql;'; put 'create table &libds('; put 'TYPE char(1) label='; put '''Format Type: either N (num fmt), C (char fmt), I (num infmt) or J (char infmt)'''; put ',FMTNAME char(32) label=''Format name'''; put ',FMTROW num label='; put '''CALCULATED Position of record by FMTNAME (reqd for multilabel formats)'''; put ',START char(32767) label=''Starting value for format'''; put '/*'; put 'Keep lengths of START and END the same to avoid this err:'; put '"Start is greater than end: -<."'; put 'Similar usage note: https://support.sas.com/kb/69/330.html'; put '*/'; put ',END char(32767) label=''Ending value for format'''; put ',LABEL char(32767) label=''Format value label'''; put ',MIN num length=3 label=''Minimum length'''; put ',MAX num length=3 label=''Maximum length'''; put ',DEFAULT num length=3 label=''Default length'''; put ',LENGTH num length=3 label=''Format length'''; put ',FUZZ num label=''Fuzz value'''; put ',PREFIX char(2) label=''Prefix characters'''; put ',MULT num label=''Multiplier'''; put ',FILL char(1) label=''Fill character'''; put ',NOEDIT num length=3 label=''Is picture string noedit?'''; put ',SEXCL char(1) label=''Start exclusion'''; put ',EEXCL char(1) label=''End exclusion'''; put ',HLO char(13) label='; put '''More info: https://core.sasjs.io/mddl__sas__cntlout_8sas_source.html'''; put ',DECSEP char(1) label=''Decimal separator'''; put ',DIG3SEP char(1) label=''Three-digit separator'''; put ',DATATYPE char(8) label=''Date/time/datetime?'''; put ',LANGUAGE char(8) label=''Language for date strings'''; put ');'; put '%local lib;'; put '%let libds=%upcase(&libds);'; put '%if %index(&libds,.)=0 %then %let lib=WORK;'; put '%else %let lib=%scan(&libds,1,.);'; put 'proc datasets lib=&lib noprint;'; put 'modify %scan(&libds,-1,.);'; put 'index create'; put 'pk_cntlout=(type fmtname fmtrow)'; put '/nomiss unique;'; put 'quit;'; put '%mend mddl_sas_cntlout;'; put '%macro mp_aligndecimal(var,width=8);'; put '%local tmpvar;'; put '%let tmpvar=%mf_getuniquename(prefix=aligndp);'; put 'length &tmpvar $&width;'; put 'if index(&var,''.'') then do;'; put '&tmpvar=cats(scan(&var,1,''.''));'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar!!''.''!!cats(scan(&var,2,''.''));'; put 'end;'; put 'else do;'; put '&tmpvar=cats(&var);'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar;'; put 'end;'; put 'drop &tmpvar;'; put '%mend mp_aligndecimal;'; put '%macro mp_cntlout('; put 'iftrue=(1=1)'; put ',libcat='; put ',cntlout=work.fmtextract'; put ',fmtlist=0'; put ')/*/STORE SOURCE*/;'; put '%local ddlds cntlds i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let ddlds=%mf_getuniquename();'; put '%let cntlds=%mf_getuniquename();'; put '%mddl_sas_cntlout(libds=&ddlds)'; put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; put '%let libcat=%scan(&libcat,1,-);'; put '%end;'; put 'proc format lib=&libcat cntlout=&cntlds;'; put '%if "&fmtlist" ne "0" and "&fmtlist" ne "" %then %do;'; put 'select'; put '%do i=1 %to %sysfunc(countw(&fmtlist,%str( )));'; put '%scan(&fmtlist,&i,%str( ))'; put '%end;'; put ';'; put '%end;'; put 'run;'; put 'data &cntlout/nonote2err;'; put 'if 0 then set &ddlds;'; put 'set &cntlds;'; put 'by type fmtname notsorted;'; put '/* align the numeric values to avoid overlapping ranges */'; put 'if type in ("I","N") then do;'; put '%mp_aligndecimal(start,width=16)'; put '%mp_aligndecimal(end,width=16)'; put 'end;'; put '/* create row marker. Data cannot be sorted without it! */'; put 'if first.fmtname then fmtrow=1;'; put 'else fmtrow+1;'; put 'run;'; put 'proc sort;'; put 'by type fmtname fmtrow;'; put 'run;'; put 'proc sql;'; put 'drop table &ddlds,&cntlds;'; put '%mend mp_cntlout;'; put '/** @endcond */'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_wordsInStr1ButNotStr2('; put 'Str1= /* string containing words to extract */'; put ',Str2= /* used to compare with the extract string */'; put ')/*/STORE SOURCE*/;'; put '%local count_base count_extr i i2 extr_word base_word match outvar;'; put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; put '%put base string (str1)= &str1;'; put '%put compare string (str2) = &str2;'; put '%return;'; put '%end;'; put '%let count_base=%sysfunc(countw(&Str2));'; put '%let count_extr=%sysfunc(countw(&Str1));'; put '%do i=1 %to &count_extr;'; put '%let extr_word=%scan(&Str1,&i,%str( ));'; put '%let match=0;'; put '%do i2=1 %to &count_base;'; put '%let base_word=%scan(&Str2,&i2,%str( ));'; put '%if &extr_word=&base_word %then %let match=1;'; put '%end;'; put '%if &match=0 %then %let outvar=&outvar &extr_word;'; put '%end;'; put '&outvar'; put '%mend mf_wordsInStr1ButNotStr2;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro mp_dirlist(path=%sysfunc(pathname(work))'; put ', fref=0'; put ', outds=work.mp_dirlist'; put ', getattrs=NO'; put ', showparent=NO'; put ', maxdepth=0'; put ', level=0 /* The level of recursion to perform. For internal use only. */'; put ')/*/STORE SOURCE*/;'; put '%let getattrs=%upcase(&getattrs)XX;'; put '/* temp table */'; put '%local out_ds;'; put 'data;run;'; put '%let out_ds=%str(&syslast);'; put '/* drop main (top) table if it exists */'; put '%if &level=0 %then %do;'; put '%mp_dropmembers(%scan(&outds,-1,.), libref=WORK)'; put '%end;'; put 'data &out_ds(compress=no'; put 'keep=file_or_folder filepath filename ext msg directory level'; put ');'; put 'length directory filepath $2000 fref fref2 $8 file_or_folder $6 filename $255'; put 'ext $20 msg $200 foption $16;'; put 'if _n_=1 then call missing(of _all_);'; put 'retain level &level;'; put '%if &fref=0 %then %do;'; put 'rc = filename(fref, "&path");'; put '%end;'; put '%else %do;'; put 'fref="&fref";'; put 'rc=0;'; put '%end;'; put 'if rc = 0 then do;'; put 'did = dopen(fref);'; put 'if did=0 then do;'; put 'putlog "NOTE: This directory is empty, or does not exist - &path";'; put 'msg=sysmsg();'; put 'put (_all_)(=);'; put 'stop;'; put 'end;'; put '/* attribute is OS-dependent - could be "Directory" or "Directory Name" */'; put 'numopts=doptnum(did);'; put 'do i=1 to numopts;'; put 'foption=doptname(did,i);'; put 'if foption=:''Directory'' then i=numopts;'; put 'end;'; put 'directory=dinfo(did,foption);'; put 'rc = filename(fref);'; put 'end;'; put 'else do;'; put 'msg=sysmsg();'; put 'put _all_;'; put 'stop;'; put 'end;'; put 'dnum = dnum(did);'; put 'do i = 1 to dnum;'; put 'filename = dread(did, i);'; put 'filepath=cats(directory,''/'',filename);'; put 'rc = filename(fref2,filepath);'; put 'midd=dopen(fref2);'; put 'dmsg=sysmsg();'; put 'if did > 0 then file_or_folder=''folder'';'; put 'rc=dclose(midd);'; put 'midf=fopen(fref2);'; put 'fmsg=sysmsg();'; put 'if midf > 0 then file_or_folder=''file'';'; put 'rc=fclose(midf);'; put 'if index(fmsg,''File is in use'') or index(dmsg,''is not a directory'')'; put 'then file_or_folder=''file'';'; put 'else if index(fmsg,''Insufficient authorization'') then file_or_folder=''file'';'; put 'else if file_or_folder='''' then file_or_folder=''locked'';'; put 'if file_or_folder=''file'' then do;'; put 'ext = prxchange(''s/.*\.{1,1}(.*)/$1/'', 1, filename);'; put 'if filename = ext then ext = '' '';'; put 'end;'; put 'else do;'; put 'ext='''';'; put 'file_or_folder=''folder'';'; put 'end;'; put 'output;'; put 'end;'; put 'rc = dclose(did);'; put '%if &showparent=YES and &level=0 %then %do;'; put 'filepath=directory;'; put 'file_or_folder=''folder'';'; put 'ext='''';'; put 'filename=scan(directory,-1,''/\'');'; put 'msg='''';'; put 'level=&level;'; put 'output;'; put '%end;'; put 'stop;'; put 'run;'; put '%if %substr(&getattrs,1,1)=Y %then %do;'; put 'data &out_ds;'; put 'set &out_ds;'; put 'length infoname infoval $60 fref $8;'; put 'if _n_=1 then call missing(fref);'; put 'rc=filename(fref,filepath);'; put 'drop rc infoname fid i close fref;'; put 'if file_or_folder=''file'' then do;'; put 'fid=fopen(fref);'; put 'if fid le 0 then do;'; put 'msg=sysmsg();'; put 'putlog "Could not open file:" filepath fid= ;'; put 'sasname=''_MCNOTVALID_'';'; put 'output;'; put 'end;'; put 'else do i=1 to foptnum(fid);'; put 'infoname=foptname(fid,i);'; put 'infoval=finfo(fid,infoname);'; put 'sasname=compress(infoname, ''_'', ''adik'');'; put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; put 'if upcase(sasname) ne ''FILENAME'' then output;'; put 'end;'; put 'close=fclose(fid);'; put 'end;'; put 'else do;'; put 'fid=dopen(fref);'; put 'if fid le 0 then do;'; put 'msg=sysmsg();'; put 'putlog "Could not open folder:" filepath fid= ;'; put 'sasname=''_MCNOTVALID_'';'; put 'output;'; put 'end;'; put 'else do i=1 to doptnum(fid);'; put 'infoname=doptname(fid,i);'; put 'infoval=dinfo(fid,infoname);'; put 'sasname=compress(infoname, ''_'', ''adik'');'; put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; put 'if upcase(sasname) ne ''FILENAME'' then output;'; put 'end;'; put 'close=dclose(fid);'; put 'end;'; put 'run;'; put 'proc sort;'; put 'by filepath sasname;'; put 'proc transpose data=&out_ds out=&out_ds(drop=_:);'; put 'id sasname;'; put 'var infoval;'; put 'by filepath file_or_folder filename ext ;'; put 'run;'; put '%end;'; put 'data &out_ds;'; put 'set &out_ds(where=(filepath ne ''''));'; put 'run;'; put '/**'; put '* The above transpose can mean that some updates create additional columns.'; put '* This necessitates the occasional use of datastep over proc append.'; put '*/'; put '%if %mf_existds(&outds) %then %do;'; put '%local basevars appvars newvars;'; put '%let basevars=%mf_getvarlist(&outds);'; put '%let appvars=%mf_getvarlist(&out_ds);'; put '%let newvars=%length(%mf_wordsinstr1butnotstr2(Str1=&appvars,Str2=&basevars));'; put '%if &newvars>0 %then %do;'; put 'data &outds;'; put 'set &outds &out_ds;'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc append base=&outds data=&out_ds force nowarn;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do;'; put 'proc append base=&outds data=&out_ds;'; put 'run;'; put '%end;'; put '/* recursive call */'; put '%if &maxdepth>&level or &maxdepth=MAX %then %do;'; put 'data _null_;'; put 'set &out_ds;'; put 'where file_or_folder=''folder'';'; put '%if &showparent=YES and &level=0 %then %do;'; put 'if filepath ne directory;'; put '%end;'; put 'length code $10000;'; put 'code=cats(''%nrstr(%mp_dirlist(path='',filepath,",outds=&outds"'; put ',",getattrs=&getattrs,level=%eval(&level+1),maxdepth=&maxdepth))");'; put 'put code=;'; put 'call execute(code);'; put 'run;'; put '%end;'; put '/* tidy up */'; put 'proc sql;'; put 'drop table &out_ds;'; put '%mend mp_dirlist;'; put '%macro mf_getattrc('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrc(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrc;'; put '%macro mp_lockfilecheck('; put 'libds'; put ')/*/STORE SOURCE*/;'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=checklock.sas'; put ',msg=Aborting with syscc=&syscc on entry.'; put ')'; put '%mp_abort(iftrue= ("&libds"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(libds not provided)'; put ')'; put '%local msg lib ds;'; put '%let lib=%upcase(%scan(&libds,1,.));'; put '%let ds=%upcase(%scan(&libds,2,.));'; put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; put '%if %scan(&libds,2,-)=FC %then %do;'; put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=checklock.sas'; put ',msg=%superq(msg)'; put ')'; put 'data _null_;'; put 'putlog "Checking engine & member type";'; put 'run;'; put '%local engine memtype;'; put '%let memtype=%mf_getattrc(&libds,MTYPE);'; put '%let engine=%mf_getattrc(&libds,ENGINE);'; put '%if &engine ne V9 and &engine ne BASE %then %do;'; put 'data _null_;'; put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; put 'putlog "SAS lock check will not be performed";'; put 'run;'; put '%return;'; put '%end;'; put '%else %if &memtype ne DATA %then %do;'; put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; put '%return;'; put '%end;'; put 'data _null_;'; put 'putlog "Engine = &engine, memtype=&memtype";'; put 'putlog "Attempting lock statement";'; put 'run;'; put 'lock &libds;'; put '%local abortme;'; put '%let abortme=0;'; put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; put '%put %str(ERR)OR: &sysmacroname: &msg;'; put '%let abortme=1;'; put '%end;'; put 'lock &libds clear;'; put '%mp_abort(iftrue= (&abortme=1)'; put ',mac=&sysmacroname'; put ',msg=%superq(msg)'; put ')'; put '%mend mp_lockfilecheck;'; put '%macro mp_lockanytable('; put 'action'; put ',lib= WORK'; put ',ds=0'; put ',ref='; put ',ctl_ds=0'; put ',loops=25'; put ',loop_secs=1'; put ');'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(dataset was not provided)'; put ')'; put '%mp_abort(iftrue= (&ctl_ds=0)'; put ',mac=&sysmacroname'; put ',msg=%str(Control dataset was not provided)'; put ')'; put '/* set up lib & mac vars */'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '%let action=%upcase(&action);'; put '%local user x trans msg abortme;'; put '%let user=%mf_getuser();'; put '%let abortme=0;'; put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid action (&action) provided)'; put ')'; put '/* if an err condition exists, exit before we even begin */'; put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; put ',mac=&sysmacroname'; put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; put ')'; put '/* do not bother locking work tables (else may affect all WORK libraries) */'; put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; put '%put NOTE: WORK libraries will not be registered in the locking system.;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=&sysmacroname'; put ',msg=%str(cannot continue when options obs = 0)'; put ')'; put '%if &ACTION=LOCK %then %do;'; put '/* abort if a SAS lock is already in place, or cannot be applied */'; put '%mp_lockfilecheck(&lib..&ds)'; put '/* next, check there is a record for this table */'; put '%local record_exists_check;'; put 'proc sql noprint;'; put 'select count(*) into: record_exists_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &record_exists_check=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: adding record to lock table..";'; put 'run;'; put 'data ;'; put 'if 0 then set &ctl_ds;'; put 'LOCK_LIB ="&lib";'; put 'LOCK_DS="&ds";'; put 'LOCK_STATUS_CD=''LOCKED'';'; put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'LOCK_USER_NM="&user";'; put 'LOCK_PID="&sysjobid";'; put 'LOCK_REF="&ref";'; put 'output;stop;'; put 'run;'; put '%let trans=&syslast;'; put 'proc append base=&ctl_ds data=&trans;'; put 'run;'; put '%end;'; put '/* if record does exist, perform lock attempts */'; put '%else %do x=1 %to &loops;'; put 'data _null_;'; put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''LOCKED'''; put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '/**'; put '* NOTE - occasionally SQL server will return an err code (deadlocked'; put '* transaction). If so, ignore it, keep calm, and carry on..'; put '*/'; put '%if &syscc>0 %then %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; put 'putlog "Resetting err conditions and re-attempting.";'; put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%let syscc=0;'; put '%let sqlrc=0;'; put '%end;'; put '/* now check if the record was successfully updated */'; put '%local success_check;'; put 'proc sql noprint;'; put 'select count(*) into: success_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; put 'quit;'; put '%if &success_check=0 %then %do;'; put '%if &x < &loops %then %do;'; put '/* pause before next check */'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; put 'putlog "%sysfunc(sleep(&loop_secs)) seconds.. ";'; put 'putlog "NOTE- (iteration &x of &loops)";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%end;'; put '%else %do;'; put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; put 'Please ask your administrator to investigate!;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%else %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%if &syscc>0 %then %do;'; put '%put setting syscc(&syscc) back to 0;'; put '%let syscc=0;'; put '%end;'; put '%let x=&loops; /* no more iterations needed */'; put '%end;'; put '%end;'; put '%end;'; put '%else %if &ACTION=UNLOCK %then %do;'; put '%local status cnt;'; put '%let cnt=0;'; put 'proc sql noprint;'; put 'select count(*) into: cnt from &ctl_ds where LOCK_LIB ="&lib" & LOCK_DS="&ds";'; put '%if &cnt=0 %then %do;'; put '%put %str(WAR)NING: &lib..&ds was not previously locked in &ctl_ds!;'; put '%end;'; put '%else %do;'; put 'select LOCK_STATUS_CD into: status from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &status=LOCKED %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''UNLOCKED'''; put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%end;'; put '%else %if &status=UNLOCKED %then %do;'; put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; put '%end;'; put '%else %do;'; put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%end;'; put '%else %do;'; put '%let msg=lock_anytable given unsupported action (&action);'; put '%let abortme=1;'; put '%end;'; put '/* catch errs - mp_abort must be called outside of a logic block */'; put '%mp_abort(iftrue=(&abortme=1),'; put 'msg=%superq(msg),'; put 'mac=&sysmacroname'; put ')'; put '%exit_macro:'; put 'data _null_;'; put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; put 'run;'; put '%mend mp_lockanytable;'; put '%macro mpe_loader('; put 'mperef= /* name of subfolder containing the staged data */'; put ',mDebug=0 /* set to 1 for development or debugging */'; put ',submitted_reason_txt= /* populates column of same name in sumo_approvals*/'; put ',approver= /* allows a userid to be provided for direct approval email */'; put ',url= /* optional - url for debugging */'; put ',dlm=%str(,)'; put ',termstr=crlf'; put ',dc_dttmtfmt=E8601DT26.6'; put ');'; put '%put entered mpe_loader from &=_program;'; put '%put &=url;'; put '%put &=termstr;'; put '%put &=dlm;'; put '/* determine full path to CSV directory */'; put '%local now;'; put '%let now=&dc_dttmtfmt;'; put '%put &=now;'; put '/**'; put '* get full path to package (only subdirectory passed through)'; put '*/'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(mperef mpelocapprovals)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing: mperef mpelocapprovals)'; put ')'; put '%let csv_dir=%trim(&mpelocapprovals/&mperef);'; put '/* exit if package has already been uploaded */'; put '%local check;'; put 'proc sql noprint;'; put 'select count(*) into: check'; put 'from &mpelib..mpe_loads'; put 'where csv_dir="&mperef";'; put '%if &check %then %do;'; put '%mp_abort(msg=Folder &mperef already has an entry in &mpelib..mpe_loads'; put ',mac=mpe_loader.sas);'; put '%return;'; put '%end;'; put '/* get CSV directory contents */'; put '%mp_dirlist(path=&csv_dir,outds=WORK.getfiles)'; put 'data WORK.csvs;'; put 'set WORK.getfiles;'; put 'if upcase(scan(filename,3,''.''))=''CSV'' then do;'; put 'lib=upcase(scan(filename,1,''.''));'; put 'ds=upcase(scan(filename,2,''.''));'; put 'output;'; put 'end;'; put 'run;'; put '/* get table attributes */'; put 'proc sql noprint;'; put 'create table WORK.sumo_tables as'; put 'select a.filename, b.*'; put 'from WORK.csvs a'; put 'left join &mpelib..mpe_tables b'; put 'on a.lib=b.libref'; put 'and a.ds=b.dsn'; put 'where b.tx_from le &now'; put 'and &now lt b.tx_to;'; put '/* define user as meta user if available */'; put '%local user;'; put '%let user=%mf_getuser();'; put '/* check if there is actually a table to load */'; put '%if %mf_getattrn(WORK.sumo_tables,NLOBS)=0 %then %do;'; put '%let msg=Table not registered in &mpelib..mpe_tables;'; put '%mpe_loadfail('; put 'status=&msg'; put ',now=&now'; put ',mperef=&mperef'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%mp_abort(msg=&msg,mac=mpe_loader.sas);'; put '%return;'; put '%end;'; put 'proc sql;'; put 'insert into &mpelib..mpe_loads'; put 'set USER_NM="&user"'; put ',STATUS=''IN PROGRESS'''; put ',CSV_dir="&mperef"'; put ',PROCESSED_DTTM=&now'; put ',reason_txt = symget(''submitted_reason_txt'');'; put '/* import CSV */'; put '%let droplist=;'; put '%let attrib=;'; put '%let droplist=;'; put '%let libref=;'; put '%let DS=;'; put '/* get table info */'; put 'data _null_;'; put 'set sumo_tables;'; put 'libds=upcase(cats(libref,''.'',dsn));'; put 'call symputx(''orig_libds'',libds);'; put 'is_fmt=0;'; put 'if substr(cats(reverse(dsn)),1,3)=:''CF-'' then do;'; put 'libds=scan(libds,1,''-'');'; put 'putlog "Format Catalog Captured";'; put 'libds=''work.fmtextract'';'; put 'is_fmt=1;'; put 'end;'; put 'call symputx(''is_fmt'',is_fmt);'; put 'call symputx(''libds'',libds);'; put 'call symputx(''FNAME'',filename);'; put 'call symputx(''LIBREF'',libref);'; put 'call symputx(''DS'',dsn);'; put 'call symputx(''LOADTYPE'',loadtype);'; put 'call symputx(''BUSKEY'',buskey);'; put 'call symputx(''VAR_TXFROM'',var_txfrom);'; put 'call symputx(''VAR_TXTO'',var_txto);'; put 'call symputx(''VAR_BUSFROM'',var_busfrom);'; put 'call symputx(''VAR_BUSTO'',var_busto);'; put 'call symputx(''VAR_PROCESSED'',var_processed);'; put 'call symputx(''RK_UNDERLYING'',RK_UNDERLYING);'; put 'call symputx(''POST_EDIT_HOOK'',POST_EDIT_HOOK);'; put 'call symputx(''NOTES'',NOTES);'; put 'call symputx(''PK'',coalescec(RK_UNDERLYING,buskey));'; put 'call symputx(''NUM_OF_APPROVALS_REQUIRED'',NUM_OF_APPROVALS_REQUIRED,''l'');'; put 'put (_all_)(=);'; put 'stop;'; put 'run;'; put '%if %length(&ds)=0 %then %do;'; put '%let msg=%str(ERR)OR: Unable to extract record from &mpelib..mpe_tables;'; put '%mpe_loadfail('; put 'status=FAILED'; put ',now=&now'; put ',mperef=&mperef'; put ',reason_txt=%quote(&msg)'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%mp_abort(msg=&msg,mac=mpe_loader.sas);'; put '%return;'; put '%end;'; put '/* export format catalog */'; put '%mp_cntlout('; put 'iftrue=(&is_fmt=1)'; put ',libcat=&orig_libds'; put ',fmtlist=0'; put ',cntlout=work.fmtextract'; put ')'; put '/* user must have EDIT access to load a table */'; put '%mpe_accesscheck(&orig_libds'; put ',outds=work.sumo_access'; put ',user=&user'; put ',access_level=EDIT )'; put '%put exiting accesscheck;'; put '%if %mf_getattrn(work.sumo_access,NLOBS)=0 %then %do;'; put '%let msg=%str(ERR)OR: User is not authorised to edit &orig_libds!;'; put '%mpe_loadfail('; put 'status=UNAUTHORISED'; put ',now=&now'; put ',mperef=&mperef'; put ',reason_txt=%quote(&msg)'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%mp_abort(msg=&msg,mac=mpe_loader.sas);'; put '%return;'; put '%end;'; put '%put now importing: "&csv_dir/&fname" termstr=&termstr;'; put '/* get the variables from the CSV */'; put 'data vars_csv1(index=(idxname=(varnum name)) drop=infile);'; put 'infile "&csv_dir/&fname" lrecl=32767 dsd termstr=&termstr encoding=''utf-8'';'; put 'input;'; put 'length infile $32767;'; put 'infile=compress(_infile_,''"'',);'; put 'infile=compress(infile,"''",);'; put 'format name $32.;'; put 'putlog ''received vars: '' infile;'; put 'call symputx(''received_vars'',infile,''l'');'; put 'do varnum=1 to countw(infile,"&dlm");'; put '/* keep writeable chars */'; put 'name=compress(upcase(scan(infile,varnum)),,''kw'');'; put 'if name ne "_____DELETE__THIS__RECORD_____" then output;'; put 'end;'; put 'stop;'; put 'run;'; put '%put received_vars = &received_vars;'; put '%dc_assignlib(WRITE,&libref)'; put '/* get list of variables and their formats */'; put 'proc contents noprint data=&libds'; put 'out=vars(keep=name type length varnum format:);'; put 'run;'; put 'data vars(keep=name type length varnum format);'; put 'set vars(rename=(format=format2 type=type2));'; put 'name=upcase(name);'; put 'format2=upcase(format2);'; put '/* not interested in transaction or processing dates'; put '(append table must be supplied without them) */'; put 'if name not in ("&VAR_TXFROM","&VAR_TXTO","&VAR_PROCESSED"'; put ',"_____DELETE__THIS__RECORD_____");'; put 'if type2 in (2,6) then do;'; put 'length format $49.;'; put 'if format2='''' then format=cats(''$'',length,''.'');'; put 'else format=cats(format2,max(formatl,length),''.'');'; put 'type=''char'';'; put 'end;'; put 'else do;'; put 'if format2='''' then format=cats(length,''.'');'; put 'else if format2=:''DATETIME'' or format2=:''E8601DT'' or format2=:''NLDATM'''; put 'then do;'; put 'format=''DATETIME19.'';'; put 'end;'; put 'else if format2=:''DATE'' or format2=:''DDMMYY'''; put 'or format2=:''MMDDYY'' or format2=:''YYMMDD'''; put 'or format2=:''E8601DA'' or format2=:''B8601DA'''; put 'or format2=:''NLDATE'''; put 'then do;'; put 'format=''DATE9.'';'; put 'end;'; put 'else if format2=''BEST'' & formatl=0 then format=cats(''BEST'',length,''.'');'; put 'else do;'; put 'if formatl=0 then formatl=length;'; put 'format=cats(format2,formatl,''.'',formatd);'; put 'end;'; put 'type=''num'';'; put 'end;'; put 'put (_all_)(=);'; put 'run;'; put '/* build attrib statement */'; put 'data vars_attrib;'; put 'length attrib_statement $32767 type2 $20;'; put 'set vars end=lastobs;'; put 'retain attrib_statement;'; put 'if type=''char'' then type2=''$'';'; put 'str1=catx('' '',name,''length='',cats(type2,length));'; put 'attrib_statement=trim(attrib_statement)!!'' ''!!trim(str1);'; put 'if lastobs then call symputx(''ATTRIB'',attrib_statement,''L'');'; put 'run;'; put '/* build input statement - first get vars in right order'; put 'and join with target formats*/'; put 'proc sql noprint;'; put 'create table vars_csv2 as'; put 'select b.*'; put 'from vars_csv1 a'; put 'left join vars_attrib b'; put 'on a.name=b.name'; put 'order by a.varnum;'; put '/* now build input statement */'; put 'data final_check;'; put 'set vars_csv2 end=lastobs;'; put 'length input_statement $32767 type2 $20 droplist $32767;'; put 'retain input_statement droplist;'; put '/* Build input statement - CATCH EXCEPTIONS HERE!*/'; put 'if name in (''QUOTE_DTTM'') then do;'; put 'name=cats(name,''2'');'; put 'droplist=catx('' '',trim(droplist),name);'; put 'type2=''$20.'';/* converted below */'; put 'end;'; put 'else if type=''char'' then type2=cats(''$CHAR'', length,''.'');'; put 'else if format=''DATE9.'' then type2=''ANYDTDTE.'';'; put 'else if format=''DATETIME19.'' then type2=''ANYDTDTM.'';'; put 'else if format=:''TIME'' then type2=''ANYDTTME.'';'; put 'else if name='''' then do;/* additional vars in input data */'; put 'name=''_____DELETE__THIS__VARIABLE_____'';'; put 'droplist=catx('' '',trim(droplist),''_____DELETE__THIS__VARIABLE_____'');'; put 'type2=''$1.'';'; put 'end;'; put 'else type2=''best32.'';'; put '* else type2=cats(length,''.'');'; put 'input_statement=catx('' '',input_statement,name,'':'',type2);'; put 'if lastobs then do;'; put 'call symputx(''INPUT'', input_statement,''L'');'; put 'if trim(droplist) ne '''' then'; put 'call symputx(''droplist'',"drop "!!droplist!!'';'',''l'');'; put 'end;'; put 'run;'; put '%let mpeloadstop=0;'; put 'data work.STAGING_DS;'; put '&droplist;'; put 'infile "&csv_dir/&fname" dsd dlm="&dlm" lrecl=32767'; put 'firstobs=2 missover termstr=&termstr encoding=''utf-8'';'; put 'attrib _____DELETE__THIS__RECORD_____ length=$3 &attrib ;'; put 'if _n_=1 then call missing (of _all_);'; put 'missing a b c d e f g h i j k l m n o p q r s t u v w x y z _;'; put 'input'; put '%if %scan(%quote(&received_vars),1)=_____DELETE__THIS__RECORD_____ %then %do;'; put '_____DELETE__THIS__RECORD_____: $3.'; put '%end;'; put '&input;'; put '%if %index(%quote(&attrib.),UNLIKELY_VAR ) %then %do;'; put '/*UNLIKELY_VAR=input(UNLIKELY_VAR2,ANYDTDTM21.);*/'; put '/* SPECIAL LOGIC FOR SPECIAL VARS */'; put '%end;'; put 'if _error_ ne 0 then do;'; put 'putlog _infile_;'; put 'call symputx(''mpeloadstop'',_n_);'; put 'stop;'; put 'end;'; put '/* remove all blank rows */'; put 'if compress(cats(of _all_),''.'')='' '' then delete;'; put 'run;'; put '%if &mpeloadstop>0 %then %do;'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put '%put redirecting log output to capture return message;'; put '%put currentloc=&logloc;'; put 'filename tmp temp;'; put 'proc printto log=tmp;run;'; put 'data _null_;'; put '&droplist;'; put 'infile "&csv_dir/&fname" dsd dlm="&dlm" lrecl=32767 firstobs=2'; put 'missover termstr=&termstr;'; put 'attrib &attrib ;'; put 'input'; put '%if %scan(%quote(&received_vars),1)=_____DELETE__THIS__RECORD_____'; put '%then %do;'; put '_____DELETE__THIS__RECORD_____: $3.'; put '%end;'; put '&input;'; put 'if _error_ then stop;'; put 'run;'; put '/* get log back */'; put 'proc printto log=&logloc;run;'; put 'data _null_; infile tmp; input; putlog _infile_;run;'; put '/* scan log for invalid data warnings */'; put 'data _null_;'; put 'infile tmp;'; put 'input;'; put 'length msg1 msg2 msg3 msg4 msg5 msg url $32767;'; put 'if index(_infile_,''NOTE: Invalid data for'') then do;'; put 'msg1=_infile_;'; put 'input;'; put 'msg2=_infile_;'; put 'input;'; put 'msg3=_infile_;'; put 'input;'; put 'msg4=_infile_;'; put 'input;'; put 'msg5=_infile_;'; put 'url=symget(''url'');'; put 'msg=catx(''\n'',msg1,msg2,msg3,msg4,msg5,''\n'',url);'; put 'call symputx(''msg'',msg);'; put 'stop;'; put 'end;'; put 'run;'; put '%mpe_loadfail('; put 'status=FAILED'; put ',now=&now'; put ',mperef=&mperef'; put ',reason_txt=%superq(msg)'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%return;'; put '%end;'; put '/* check that the table is unique on PK */'; put 'proc sort data=work.STAGING_DS dupout=work.MPE_DUPS (keep=&pk) nodupkey;'; put 'by &pk;'; put 'run;'; put '%if %mf_getattrn(work.MPE_DUPS,NLOBS)>0 %then %do;'; put '%local duplist;'; put 'data _null_;'; put 'set work.mpe_dups;'; put '%do i=1 %to %sysfunc(countw(&pk));'; put '%let iWord=%scan(&pk,&i);'; put 'call symputx(''duplist'',symget(''duplist'')!!'; put '" &iWord="!!cats(&iWord));'; put '%end;'; put 'run;'; put '%let msg=This upload contains duplicates on the Primary Key columns %trim('; put ')(&pk) \n Please remove the duplicates and try again. %trim('; put ')\n &duplist \n ;'; put '%mp_abort(msg=%superq(msg),mac=mpe_loader.sas);'; put '%return;'; put '%end;'; put '%if &syscc gt 4 %then %do;'; put '%let msg=SYSCC=&syscc prior to post edit hook (%superq(syserrortext));'; put '%mpe_loadfail('; put 'status=FAILED - &syscc'; put ',now=&now'; put ',mperef=&mperef'; put ',reason_txt=%superq(msg)'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%return;'; put '%end;'; put '/* If a Complex Excel Upload, needs to have the load ref added to the table */'; put '%mpe_xlmapvalidate(&mperef,work.staging_ds,&mpelib,&orig_libds)'; put '/* Run the Post Edit Hook prior to creation of staging folder */'; put '%mpe_runhook(POST_EDIT_HOOK)'; put '/* stop if err */'; put '%if &syscc gt 4 %then %do;'; put '%let msg=ERR in post edit hook (&post_edit_hook);'; put '%mpe_loadfail('; put 'status=FAILED - &syscc'; put ',now=&now'; put ',mperef=&mperef'; put ',reason_txt=%quote(&msg)'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%return;'; put '%end;'; put '/**'; put '* send to approve process'; put '*/'; put '/* create a dataset key (datetime plus 3 digit random number plus PID) */'; put '/* send dataset to approvals subfolder with same name as subfolder */'; put 'libname approval "&mpelocapprovals/&mperef";'; put 'data approval.&mperef;'; put 'set work.staging_ds;'; put 'run;'; put 'proc export data=approval.&mperef'; put 'outfile="&mpelocapprovals/&mperef/&mperef..csv"'; put 'dbms=csv'; put 'replace;'; put 'run;'; put '/* update the control dataset with relevant info */'; put 'data append_app;'; put 'if 0 then set &mpelib..mpe_submit;/* get formats */'; put 'call missing (of _all_);'; put 'TABLE_ID="&mperef";'; put 'submit_status_cd=''SUBMITTED'';'; put 'submitted_by_nm="%mf_getuser()";'; put 'base_lib="&libref";'; put 'base_ds="&ds";'; put 'submitted_on_dttm=&now;'; put 'submitted_reason_txt=symget(''submitted_reason_txt'');'; put 'input_vars=%mf_getattrn(approval.&mperef,NVARS);'; put 'input_obs=%mf_getattrn(approval.&mperef,NLOBS);'; put 'num_of_approvals_required=&NUM_OF_APPROVALS_REQUIRED;'; put 'num_of_approvals_remaining=&NUM_OF_APPROVALS_REQUIRED;'; put 'reviewed_by_nm='''';'; put 'reviewed_on_dttm=.;'; put 'run;'; put '%mp_lockanytable(LOCK,lib=&mpelib,ds=mpe_submit,'; put 'ref=%str(&mperef update in &_program),'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'proc append base= &mpelib..mpe_submit data=append_app;'; put 'run;'; put '%mp_lockanytable(UNLOCK,'; put 'lib=&mpelib,ds=mpe_submit,'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put '/* send email to REVIEW members */'; put '%put sending mpe_alerts;'; put '%mpe_alerts(alert_event=SUBMITTED'; put ', alert_lib=&libref'; put ', alert_ds=&ds'; put ', dsid=&mperef'; put ')'; put '/* DISABLE EMAIL FOR NOW'; put '%let b2=REASON: %quote(&submitted_reason_txt);'; put '%local URLNOTES;'; put '%if %length(¬es)>0 %then %let URLNOTES=%quote(%sysfunc(urlencode(¬es)));'; put '%let b3=%str(Click to review / approve: )%trim('; put ')%str(http://&_srvname:&_srvport&_url?_PROGRAM=/Web/approvals&)%trim('; put ')TABLEID=&dsid%str(&)BASETABLE=&libref..&ds%str(&)NOTES=&URLNOTES;'; put '%let b4=%str(Reference ID: &mperef);'; put '*/'; put '%put mpe_loader finishing up with syscc=&syscc;'; put '%if &syscc le 4 %then %do;'; put '%local dur;'; put 'data _null_;'; put 'now=symget(''now'');'; put 'dur=%sysfunc(datetime())-&now;'; put 'call symputx(''dur'',dur,''l'');'; put 'putlog ''Updating mpe_loads with the following query:'';'; put 'putlog "update &mpelib..mpe_loads set STATUS=''SUCCESS''";'; put 'putlog " , duration=" dur;'; put 'putlog " , processed_dttm=" now;'; put 'putlog " , approvals = ''&libref..&ds''";'; put 'putlog " where CSV_DIR=''&mperef'';";'; put 'run;'; put 'proc sql;'; put 'update &mpelib..mpe_loads set STATUS=''SUCCESS'''; put ', duration=&dur'; put ', processed_dttm=&now'; put ', approvals = "&libref..&ds"'; put 'where CSV_DIR="&mperef";'; put '%end;'; put '%else %do;'; put '%mpe_loadfail('; put 'status="FAILED - &syscc"'; put ',now=&now'; put ',approvals=&libref..&ds'; put ',mperef=&mperef'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%return;'; put '%end;'; put '%mend mpe_loader;'; put '%macro mcf_init(func'; put ')/*/STORE SOURCE*/;'; put '%if not (%symexist(SASJS_PREFIX)) %then %do;'; put '%global SASJS_PREFIX;'; put '%let SASJS_PREFIX=SASJS;'; put '%end;'; put '%let func=%upcase(&func);'; put '/* the / character is just a seperator */'; put '%global &sasjs_prefix._FUNCTIONS;'; put '%if %index(&&&sasjs_prefix._FUNCTIONS,&func/)>0 %then %do;'; put '1'; put '%return;'; put '%end;'; put '%else %do;'; put '%let &sasjs_prefix._FUNCTIONS=&&&sasjs_prefix._FUNCTIONS &func/;'; put '0'; put '%end;'; put '%mend mcf_init;'; put '%macro mcf_getfmttype(wrap=NO'; put ',insert_cmplib=DEPRECATED'; put ',lib=WORK'; put ',cat=SASJS'; put ',pkg=UTILS'; put ')/*/STORE SOURCE*/;'; put '%local i var cmpval found;'; put '%if %mcf_init(mcf_getfmttype)=1 %then %return;'; put '%if &wrap=YES %then %do;'; put 'proc fcmp outlib=&lib..&cat..&pkg;'; put '%end;'; put 'function mcf_getfmttype(fmtnm $) $8;'; put 'if substr(fmtnm,1,1)=''$'' then return(''CHAR'');'; put 'else do;'; put '/* extract NAME */'; put 'length fmt $32;'; put 'fmt=scan(fmtnm,1,''.'');'; put 'do while ('; put 'substr(fmt,length(fmt),1) in (''1'',''2'',''3'',''4'',''5'',''6'',''7'',''8'',''9'',''0'')'; put ');'; put 'if length(fmt)=1 then fmt=''W'';'; put 'else fmt=substr(fmt,1,length(fmt)-1);'; put 'end;'; put '/* apply lookups */'; put 'if cats(fmt) in (''DATETIME'',''B8601DN'',''B8601DN'',''B8601DT'',''B8601DT'''; put ',''B8601DZ'',''B8601DZ'',''DATEAMPM'',''DTDATE'',''DTMONYY'',''DTWKDATX'',''DTYEAR'''; put ',''DTYYQC'',''E8601DN'',''E8601DN'',''E8601DT'',''E8601DT'',''E8601DZ'',''E8601DZ'''; put ',''NLDATM'') then return(''DATETIME'');'; put 'else if fmt in (''DATE'',''YYMMDD'',''B8601DA'',''B8601DA'',''DAY'',''DDMMYY'''; put ',''DDMMYYB'',''DDMMYYC'',''DDMMYYD'',''DDMMYYN'',''DDMMYYP'',''DDMMYYS'',''DDMMYYx'''; put ',''DOWNAME'',''E8601DA'',''E8601DA'',''JULDAY'',''JULIAN'',''MMDDYY'',''MMDDYYB'''; put ',''MMDDYYC'',''MMDDYYD'',''MMDDYYN'',''MMDDYYP'',''MMDDYYS'',''MMDDYYx'',''MMYY'''; put ',''MMYYC'',''MMYYD'',''MMYYN'',''MMYYP'',''MMYYS'',''MMYYx'',''MONNAME'',''MONTH'''; put ',''MONYY'',''PDJULG'',''PDJULI'',''QTR'',''QTRR'',''WEEKDATE'',''WEEKDATX'',''WEEKDAY'''; put ',''WEEKU'',''WEEKV'',''WEEKW'',''WORDDATE'',''WORDDATX'',''YEAR'',''YYMM'',''YYMMC'''; put ',''YYMMD'',''YYMMDDB'',''YYMMDDC'',''YYMMDDD'',''YYMMDDN'',''YYMMDDP'',''YYMMDDS'''; put ',''YYMMDDx'',''YYMMN'',''YYMMP'',''YYMMS'',''YYMMx'',''YYMON'',''YYQ'',''YYQC'',''YYQD'''; put ',''YYQN'',''YYQP'',''YYQR'',''YYQRC'',''YYQRD'',''YYQRN'',''YYQRP'',''YYQRS'',''YYQRx'''; put ',''YYQS'',''YYQx'',''YYQZ'',''NLDATE'') then return(''DATE'');'; put 'else if fmt in (''TIME'',''B8601LZ'',''B8601LZ'',''B8601TM'',''B8601TM'',''B8601TZ'''; put ',''B8601TZ'',''E8601LZ'',''E8601LZ'',''E8601TM'',''E8601TM'',''E8601TZ'',''E8601TZ'''; put ',''HHMM'',''HOUR'',''MMSS'',''TIMEAMPM'',''TOD'') then return(''TIME'');'; put 'else return(''NUM'');'; put 'end;'; put 'endsub;'; put '%if &wrap=YES %then %do;'; put 'quit;'; put '%end;'; put '/* insert the CMPLIB if not already there */'; put '%let cmpval=%sysfunc(getoption(cmplib));'; put '%let found=0;'; put '%do i=1 %to %sysfunc(countw(&cmpval,%str( %(%))));'; put '%let var=%scan(&cmpval,&i,%str( %(%)));'; put '%if &var=&lib..&cat %then %let found=1;'; put '%end;'; put '%if &found=0 %then %do;'; put 'options insert=(CMPLIB=(&lib..&cat));'; put '%end;'; put '%mend mcf_getfmttype;'; put '%macro mf_getVarFormat(libds /* two level ds name */'; put ', var /* variable name from which to return the format */'; put ', force=0'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vformat rc vlen vtype;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable format */'; put '%if(&vnum > 0) %then %let vformat=%sysfunc(varfmt(&dsid, &vnum));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let rc = %sysfunc(close(&dsid));'; put '%return;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* supply a default if no format available */'; put '%if %length(&vformat)<2 & &force=1 %then %do;'; put '%let vlen = %sysfunc(varlen(&dsid, &vnum));'; put '%let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%if &vtype=C %then %let vformat=$&vlen..;'; put '%else %let vformat=best.;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable format */'; put '&vformat'; put '%mend mf_getVarFormat;'; put '%macro mf_getvartype(libds /* two level name */'; put ', var /* variable name from which to return the type */'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vtype rc;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid. > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable type (C/N) */'; put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let vtype = %str( );'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable type */'; put '&vtype'; put '%mend mf_getvartype;'; put '%macro mp_ds2csv(ds'; put ',dlm=COMMA'; put ',outref=0'; put ',outfile='; put ',outencoding=0'; put ',headerformat=LABEL'; put ',termstr=CRLF'; put ')/*/STORE SOURCE*/;'; put '%local outloc delim i varlist var vcnt vat dsv vcom vmiss fmttype vfmt;'; put '%if not %sysfunc(exist(&ds)) %then %do;'; put '%put %str(WARN)ING: &ds does not exist;'; put '%return;'; put '%end;'; put '%if %index(&ds,.)=0 %then %let ds=WORK.&ds;'; put '%if &outencoding=0 %then %let outencoding=;'; put '%else %let outencoding=encoding=&outencoding;'; put '%if &outref=0 %then %let outloc=&outfile;'; put '%else %let outloc=&outref;'; put '%if &headerformat=SASJS %then %do;'; put '%let delim=",";'; put '%let termstr=CRLF;'; put '%mcf_getfmttype(wrap=YES)'; put '%end;'; put '%else %if &dlm=COMMA %then %let delim=",";'; put '%else %let delim=";";'; put '/* credit to mjsq - https://stackoverflow.com/a/55642267 */'; put '/* first get headers */'; put 'data _null_;'; put 'file &outloc &outencoding lrecl=32767 termstr=&termstr;'; put 'length header $ 2000 varnm vfmt $32 dlm $1 fmttype $8;'; put 'call missing(of _all_);'; put 'dsid=open("&ds.","i");'; put 'num=attrn(dsid,"nvars");'; put 'dlm=&delim;'; put 'do i=1 to num;'; put 'varnm=upcase(varname(dsid,i));'; put 'if i=num then dlm='''';'; put '%if &headerformat=NAME %then %do;'; put 'header=cats(varnm,dlm);'; put '%end;'; put '%else %if &headerformat=LABEL %then %do;'; put 'header = cats(coalescec(varlabel(dsid,i),varnm),dlm);'; put '%end;'; put '%else %if &headerformat=SASJS %then %do;'; put 'vlen=varlen(dsid,i);'; put 'if vartype(dsid,i)=''C'' then header=cats(varnm,'':$char'',vlen,''.'');'; put 'else do;'; put 'vfmt=coalescec(varfmt(dsid,i),''0'');'; put 'fmttype=mcf_getfmttype(vfmt);'; put 'if fmttype=''DATE'' then header=cats(varnm,'':date9.'');'; put 'else if fmttype=''DATETIME'' then header=cats(varnm,'':E8601DT26.6'');'; put 'else if fmttype=''TIME'' then header=cats(varnm,'':TIME12.'');'; put '/**'; put '* there is not much point importing a short length numeric like this,'; put '* eg with best4., as the resulting variable will still be stored as'; put '* length 8. We need a length or format statement to ensure variable'; put '* is creatd with the smaller length...'; put '**/'; put 'else if vlen<8 then header=cats(varnm,'':best'',vlen,''.'');'; put 'else header=cats(varnm,'':best.'');'; put 'end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Invalid headerformat value (&headerformat);'; put '%return;'; put '%end;'; put 'put header @;'; put 'end;'; put 'rc=close(dsid);'; put 'run;'; put '%let varlist=%mf_getvarlist(&ds);'; put '%let vcnt=%sysfunc(countw(&varlist));'; put '/**'; put '* The $quote modifier (without a width) will take the length from the variable'; put '* and increase by two. However this will lead to truncation where the value'; put '* contains double quotes (which are doubled up). To get around this, scan the'; put '* data to see the max number of double quotes, so that the appropriate width'; put '* can be applied in the subsequent step.'; put '*/'; put 'data _null_;'; put 'set &ds end=last;'; put '%do i=1 %to &vcnt;'; put '%let var=%scan(&varlist,&i);'; put '%local vlen&i;'; put '%if %mf_getvartype(&ds,&var)=C %then %do;'; put '%let dsv1=%mf_getuniquename(prefix=csvcol1_);'; put '%let dsv2=%mf_getuniquename(prefix=csvcol2_);'; put 'retain &dsv1 0;'; put '&dsv2=length(&var)+countc(&var,''"'');'; put 'if &dsv2>&dsv1 then &dsv1=&dsv2;'; put 'if last then call symputx('; put '"vlen&i"'; put '/* should be no shorter than varlen, and no longer than 32767 */'; put ',cats(''$quote'',min(&dsv1+2,32767),''.'')'; put ',''l'''; put ');'; put '%end;'; put '%end;'; put '%let vat=@;'; put '%let vcom=&delim;'; put '%let vmiss=%mf_getuniquename(prefix=csvcol3_);'; put '/* next, export data */'; put 'data _null_;'; put 'set &ds.;'; put 'file &outloc mod dlm=&delim dsd &outencoding lrecl=32767 termstr=&termstr;'; put 'if _n_=1 then &vmiss='' '';'; put '%do i=1 %to &vcnt;'; put '%let var=%scan(&varlist,&i);'; put '%if &i=&vcnt %then %do;'; put '%let vat=;'; put '%let vcom=;'; put '%end;'; put '%if %mf_getvartype(&ds,&var)=N %then %do;'; put '%if &headerformat = SASJS %then %do;'; put '%let vcom=&delim;'; put '%let fmttype=%sysfunc(mcf_getfmttype(%mf_getvarformat(&ds,&var)0));'; put '%if &fmttype=DATE %then %let vfmt=DATE9.;'; put '%else %if &fmttype=DATETIME %then %let vfmt=E8601DT26.6;'; put '%else %if &fmttype=TIME %then %let vfmt=TIME12.;'; put '%else %do;'; put '%let vfmt=;'; put '%let vcom=;'; put '%end;'; put '%end;'; put '%else %let vcom=;'; put '/* must use period - in order to work in both 9.4 and Viya 3.5 */'; put 'if missing(&var) and &var ne %sysfunc(getoption(MISSING)) then do;'; put '&vmiss=cats(''.'',&var);'; put 'put &vmiss &vat;'; put 'end;'; put 'else put &var &vfmt &vcom &vat;'; put '%end;'; put '%else %do;'; put '%if &i ne &vcnt %then %let vcom=&delim;'; put 'put &var &&vlen&i &vcom &vat;'; put '%end;'; put '%end;'; put 'run;'; put '%mend mp_ds2csv;'; put '%macro mf_islibds(libds'; put ')/*/STORE SOURCE*/;'; put '%local regex;'; put '%let regex=%sysfunc(prxparse(%str(/^[_a-z]\w{0,7}\.[_a-z]\w{0,31}$/i)));'; put '%sysfunc(prxmatch(®ex,&libds))'; put '%mend mf_islibds;'; put '/** @cond */'; put '%macro mp_stripdiffs(libds'; put ',loadref'; put ',difftable'; put ',filtervar=0'; put ',outds=work.mp_stripdiffs'; put ',mdebug=0'; put ')/*/STORE SOURCE*/;'; put '%local dbg;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%end;'; put '%else %let dbg=*;'; put '%let libds=%upcase(&libds);'; put '/* safety checks */'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(SYSCC=&syscc on entry. Clean session required!)'; put ')'; put '%let libds=%upcase(&libds);'; put '%mp_abort(iftrue= (%mf_islibds(&libds)=0)'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid library.dataset reference - %superq(libds))'; put ')'; put '/* set up unique and temporary vars */'; put '%local ds1 ds2 ds3 ds4 ds5 fref1 filterstr;'; put '%let fref1=%mf_getuniquefileref();'; put '%if &filtervar ne 0 %then %let filterstr=%superq(&filtervar);'; put '%else %let filterstr=%str(1=1);'; put '/* get timestamp of the diff to be reverted */'; put '%local ts;'; put 'proc sql noprint;'; put 'select put(processed_dttm,datetime19.6) into: ts'; put 'from &difftable where load_ref="&loadref";'; put '%mp_abort(iftrue= (&sqlobs=0)'; put ',mac=&sysmacroname'; put ',msg=%str(Load ref %superq(loadref) not found!)'; put ')'; put '/* extract diffs for this base table from this timestamp onwards */'; put '%let ds1=%upcase(work.%mf_getuniquename(prefix=mpsd_diffs));'; put 'create table &ds1 (drop=libref dsn) as'; put 'select * from &difftable'; put 'where upcase(cats(libref))="%scan(&libds,1,.)"'; put 'and upcase(cats(dsn))="%scan(&libds,2,.)"'; put 'and processed_dttm ge "&ts"dt'; put 'order by processed_dttm desc, key_hash, is_pk;'; put '/* extract key values only */'; put '%let ds2=%upcase(work.%mf_getuniquename(prefix=mpsd_pks));'; put '%local keyhash processed;'; put '%let keyhash=%upcase(%mf_getuniquename(prefix=mpsdvar_keyhash));'; put '%let processed=%upcase(%mf_getuniquename(prefix=mpsdvar_processed));'; put 'create table &ds2 as'; put 'select key_hash as &keyhash,'; put 'tgtvar_nm,'; put 'tgtvar_type,'; put 'coalescec(oldval_char,newval_char) as charval,'; put 'coalesce(oldval_num, newval_num) as numval,'; put 'processed_dttm as &processed'; put 'from &ds1'; put 'where is_pk=1'; put 'order by &keyhash, &processed;'; put '/* grab pk values */'; put '%local pk;'; put 'select distinct upcase(tgtvar_nm) into: pk separated by '' '' from &ds2;'; put '%let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_keychar));'; put 'proc transpose data=&ds2(where=(tgtvar_type=''C''))'; put 'out=&ds3(drop=_name_);'; put 'by &keyhash &processed;'; put 'id TGTVAR_NM;'; put 'var charval;'; put 'run;'; put '%let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_keynum));'; put 'proc transpose data=&ds2(where=(tgtvar_type=''N''))'; put 'out=&ds4(drop=_name_);'; put 'by &keyhash &processed;'; put 'id TGTVAR_NM;'; put 'var numval;'; put 'run;'; put '/* shorten the lengths */'; put '%mp_ds2squeeze(&ds3,outds=&ds3)'; put '%mp_ds2squeeze(&ds4,outds=&ds4)'; put '/* now merge to get all key values and de-dup */'; put '%let ds5=%upcase(work.%mf_getuniquename(prefix=mpsd_merged));'; put 'data &ds5;'; put 'length &keyhash $32 &processed 8;'; put 'merge &ds3 &ds4;'; put 'by &keyhash &processed;'; put 'if not missing(&keyhash);'; put 'run;'; put 'proc sort data=&ds5 nodupkey;'; put 'by &pk;'; put 'run;'; put '/* join to base table for preliminary stage DS */'; put 'proc sql;'; put 'create table &outds as select "No " as _____DELETE__THIS__RECORD_____'; put '%do x=1 %to %sysfunc(countw(&pk,%str( )));'; put ',a.%scan(&pk,&x,%str( ))'; put '%end;'; put '%local notpkcols;'; put '%let notpkcols=%upcase(%mf_getvarlist(&libds));'; put '%let notpkcols=%mf_wordsinstr1butnotstr2(str1=¬pkcols,str2=&pk);'; put '%do x=1 %to %sysfunc(countw(¬pkcols,%str( )));'; put ',b.%scan(¬pkcols,&x,%str( ))'; put '%end;'; put 'from &ds5 a'; put 'left join &libds (where=(&filterstr)) b'; put 'on 1=1'; put '%do x=1 %to %sysfunc(countw(&pk,%str( )));'; put 'and a.%scan(&pk,&x,%str( ))=b.%scan(&pk,&x,%str( ))'; put '%end;'; put ';'; put '/* create SAS code to apply to stage_ds */'; put 'data _null_;'; put 'set &ds1;'; put 'file &fref1 lrecl=33000;'; put 'length charval $32767;'; put 'if _n_=1 then put ''proc sql noprint;'';'; put 'by descending processed_dttm key_hash is_pk;'; put 'if move_type=''M'' then do;'; put 'if first.key_hash then do;'; put 'put "update &outds set " @@;'; put 'end;'; put 'if IS_PK=0 then do;'; put 'put " " tgtvar_nm ''='' @@;'; put 'cnt=count(oldval_char,''"'');'; put 'charval=quote(trim(substr(oldval_char,1,32765-cnt)));'; put 'if tgtvar_type=''C'' then put charval @@;'; put 'else put oldval_num @@;'; put 'if not last.is_pk then put '','';'; put 'end;'; put 'else do;'; put 'if first.is_pk then put " where 1=1 " @@;'; put 'put " and " tgtvar_nm ''='' @@;'; put 'cnt=count(oldval_char,''"'');'; put 'charval=quote(trim(substr(oldval_char,1,32765-cnt)));'; put 'if tgtvar_type=''C'' then put charval @@;'; put 'else put oldval_num @@;'; put 'end;'; put 'end;'; put 'else if move_type=''A'' then do;'; put 'if first.key_hash then do;'; put 'put "update &outds set _____DELETE__THIS__RECORD_____=''Yes'' where 1=1 "@@;'; put 'end;'; put '/* gating if - as only need PK now */'; put 'if is_pk=1;'; put 'put '' AND '' tgtvar_nm ''='' @@;'; put 'cnt=count(newval_char,''"'');'; put 'charval=quote(trim(substr(newval_char,1,32765-cnt)));'; put 'if tgtvar_type=''C'' then put charval @@;'; put 'else put newval_num @@;'; put 'end;'; put 'else if move_type=''D'' then do;'; put 'if first.key_hash then do;'; put 'put "update &outds set _____DELETE__THIS__RECORD_____=''No'' " @@;'; put 'end;'; put 'if IS_PK=0 then do;'; put 'put " ," tgtvar_nm ''='' @@;'; put 'cnt=count(oldval_char,''"'');'; put 'charval=quote(trim(substr(oldval_char,1,32765-cnt)));'; put 'if tgtvar_type=''C'' then put charval @@;'; put 'else put oldval_num @@;'; put 'end;'; put 'else do;'; put 'if first.is_pk then put " where 1=1 " @@;'; put 'put " and " tgtvar_nm ''='' @@;'; put 'cnt=count(oldval_char,''"'');'; put 'charval=quote(trim(substr(oldval_char,1,32765-cnt)));'; put 'if tgtvar_type=''C'' then put charval @@;'; put 'else put oldval_num @@;'; put 'end;'; put 'end;'; put 'if last.key_hash then put '';'';'; put 'run;'; put '/* apply the modification statements */'; put '%inc &fref1/source2 lrecl=33000;'; put '%if &mdebug=0 %then %do;'; put 'proc sql;'; put 'drop table &ds1, &ds2, &ds3, &ds4, &ds5;'; put 'file &fref1 clear;'; put '%end;'; put '%else %do;'; put 'data _null_;'; put 'infile &fref1;'; put 'input;'; put 'if _n_=1 then putlog "Contents of SQL adjustments";'; put 'putlog _infile_;'; put 'run;'; put '%end;'; put '%mend mp_stripdiffs;'; put '/** @endcond */'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file restore.sas'; put '@brief Restores a data version'; put '@details Only applies if the history is stored in the audit table'; put '

SAS Macros

'; put '@li dc_assignlib.sas'; put '@li mf_nobs.sas'; put '@li mp_abort.sas'; put '@li mp_ds2csv.sas'; put '@li mp_stripdiffs.sas'; put '@li mpeinit.sas'; put '@li mpe_checkrestore.sas'; put '@li mpe_loader.sas'; put '

Service Inputs

'; put '
restore_in
'; put '|LOAD_REF:$32|'; put '|---|'; put '|DCXXXXXX|'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%let loadref=;'; put 'data _null_;'; put 'set work.restore_in;'; put 'call symputx(''loadref'',load_ref);'; put 'run;'; put '/**'; put '* Check if user has basic access permission to RESTORE the table'; put '*/'; put '%put checking access;'; put '%global allow_restore reason;'; put '%mpe_checkrestore(&loadref,outresult=ALLOW_RESTORE,outreason=REASON)'; put '%mp_abort(iftrue= (&ALLOW_RESTORE ne YES)'; put ',mac=&_program..sas'; put ',msg=%str(Cannot restore because: &reason)'; put ')'; put '/* grab the base DS */'; put 'proc sql noprint;'; put 'select cats(base_lib,''.'',base_ds) into: tgtds'; put 'from &mpelib..mpe_submit'; put 'where TABLE_ID="&loadref";'; put '/* find the audit table */'; put 'select coalescec(audit_libds,"&mpelib..MPE_AUDIT"), loadtype, var_txto'; put 'into: difftable, :loadtype, :txto'; put 'from &mpelib..MPE_TABLES'; put 'where libref="%scan(&tgtds,1,.)"'; put '& dsn="%scan(&tgtds,2,.)"'; put '& &dc_dttmtfmt0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc after stripdiffs)'; put ')'; put '%mp_abort(iftrue= (%mf_nobs(work.mp_stripdiffs)=0)'; put ',mac=&_program..sas'; put ',msg=%str(THERE ARE NO DIFFERENCES TO APPLY)'; put ')'; put '/* create a new load ref */'; put '%let mperef=DC%left(%sysfunc(datetime(),B8601DT19.3))_%substr('; put '%sysfunc(ranuni(0)),3,6)_%substr(%str(&sysjobid ),1,4);'; put '/* Create package folder */'; put '%let dir=&mpelocapprovals/&mperef;'; put '%mf_mkdir(&dir)'; put 'options notes mprint;'; put 'libname approve "&dir";'; put '/* take copy of macvars */'; put 'data _null_;'; put 'file "&dir/macvars.sas";'; put 'set sashelp.vmacro;'; put 'where scope=''GLOBAL'';'; put 'put ''%let '' name ''='' value '';'';'; put 'run;'; put '/* copy the diffs dataset */'; put 'data approve.jsdset;'; put 'length _____DELETE__THIS__RECORD_____ $3;'; put 'if 0 then call missing(_____DELETE__THIS__RECORD_____);'; put 'set work.mp_stripdiffs;'; put 'run;'; put '/* export to csv */'; put '%mp_ds2csv(approve.jsdset'; put ',dlm=COMMA'; put ',outfile="&dir/%trim(&tgtds).csv"'; put ',outencoding="UTF-8"'; put ',headerformat=NAME'; put ',termstr=CRLF'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc when writing the CSV)'; put ')'; put '%mpe_loader(mperef=&mperef'; put ',submitted_reason_txt=Restoring &loadref'; put ',dc_dttmtfmt=&dc_dttmtfmt'; put ')'; put '%mp_abort(mode=INCLUDE)'; put '%mp_abort('; put 'iftrue=(%sysfunc(fileexist(%sysfunc(pathname(work))/mf_abort.error))=1)'; put ',mac=&_program..sas'; put ',msg=%str(mf_abort.error=1)'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '/* send relevant SUCCESS values */'; put 'data work.restore_out;'; put 'loadref="&mperef";'; put 'run;'; put '%webout(OPEN)'; put '%webout(OBJ,restore_out)'; put '%webout(CLOSE)'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=stagedata; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mc,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mpe_accesscheck('; put 'base_table'; put ',outds=med_accesscheck /* WORK table to contain access details */'; put ',user= /* metadata user to check for */'; put ',access_level=APPROVE'; put ',cntl_lib_var=MPELIB'; put ');'; put '%if &user= %then %let user=%mf_getuser();'; put '%mp_abort('; put 'iftrue=(%index(&outds,.)>0 and %upcase(%scan(&outds,1,.)) ne WORK)'; put ',mac=mpe_accesscheck'; put ',msg=%str(outds should be a WORK table)'; put ')'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; put ',mac=mpe_accesscheck'; put ',msg=%str(Missing base_table/user access_level variables)'; put ')'; put '/* make unique temp table vars */'; put '%local tempds1 tempds2;'; put '%let tempds1=%mf_getuniquename(prefix=usergroups);'; put '%let tempds2=%mf_getuniquename(prefix=tablegroups);'; put '/* get list of user groups */'; put '%mpe_getgroups(user=&user,outds=&tempds1)'; put '/* get list of groups with access for that table */'; put 'proc sql;'; put 'create table &tempds2 as'; put 'select distinct sas_group'; put 'from &&&cntl_lib_var...mpe_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and access_level="&access_level"'; put 'and ('; put '(libref="%scan(&base_table,1,.)" and upcase(dsn)="%scan(&base_table,2,.)")'; put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; put 'or (libref="*ALL*")'; put ');'; put '%if &_debug ge 131 %then %do;'; put 'data _null_;'; put 'set &tempds1;'; put 'putlog (_all_)(=);'; put 'run;'; put 'data _null_;'; put 'set &tempds2;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put 'proc sql;'; put 'create table &outds as'; put 'select * from &tempds1'; put 'where groupname="&mpeadmins"'; put 'or groupname in (select * from &tempds2);'; put '%put &sysmacroname: base_table=&base_table;'; put '%put &sysmacroname: access_level=&access_level;'; put '%mend mpe_accesscheck;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '%macro mpe_alerts(alert_event='; put ', alert_lib='; put ', alert_ds='; put ', dsid='; put ');'; put '/* exit if not configured */'; put '%global DC_EMAIL_ALERTS;'; put '%if &DC_EMAIL_ALERTS ne YES %then %do;'; put '%put DCNOTE: Email alerts are not configured;'; put '%put DCNOTE: (dc_email_alerts=&dc_email_alerts in &mpelib..mpe_config);'; put '%return;'; put '%end;'; put '%let alert_event=%upcase(&alert_event);'; put '%let alert_lib=%upcase(&alert_lib);'; put '%let alert_ds=%upcase(&alert_ds);'; put '%let from_user=%mf_getuser();'; put '/* get users TO which the email should be sent */'; put 'proc sql noprint;'; put 'create table work.users as select distinct a.alert_user,'; put 'b.user_displayname,'; put 'b.user_email'; put 'from &mpelib..mpe_alerts'; put '(where=(&dc_dttmtfmt. lt tx_to)) a'; put 'left join &mpelib..mpe_emails'; put '(where=(&dc_dttmtfmt. lt tx_to)) b'; put 'on upcase(trim(a.alert_user))=upcase(trim(b.user_name))'; put 'where a.alert_event in ("&alert_event","*ALL*")'; put 'and a.alert_lib in ("&alert_lib","*ALL*")'; put 'and a.alert_ds in ("&alert_ds","*ALL*");'; put '/* ensure the submitter is included on the email */'; put '%local isThere userdisp user_eml;'; put '%let isThere=0;'; put 'select count(*) into: isThere from &syslast where alert_user="&from_user";'; put '%if &isThere=0 %then %do;'; put 'select user_displayname, user_email'; put 'into: userdisp trimmed, :user_eml trimmed'; put 'from &mpelib..mpe_emails'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and user_name="&from_user";'; put 'insert into work.users'; put 'set alert_user="&from_user"'; put ',user_displayname="&userdisp"'; put ',user_email="&user_eml";'; put '%end;'; put '/* if no email / displayname is provided, then extract from metadata */'; put 'data work.emails;'; put 'set work.users;'; put 'length emailuri uri text $256; call missing(emailuri,uri); drop emailuri uri;'; put '/* get displayname */'; put 'text=cats("omsobj:Person?@Name=''",alert_user,"''");'; put 'if metadata_getnobj(text,1,uri)<=0 then do;'; put 'putlog "DCWARN: &from_user not found";'; put 'return;'; put 'end;'; put 'else if user_displayname = '''' then do;'; put 'if metadata_getattr(uri,''DisplayName'',user_displayname)<0 then do;'; put 'putlog ''DCWARN: strange err, no displayname attribute of user URI'';'; put 'end;'; put 'end;'; put 'if index(user_email,''@'') then return;'; put '/* get email from metadata if not in input table */'; put 'if metadata_getnasn(uri,"EmailAddresses",1,emailuri)<=0 then do;'; put 'putlog "DCWARN: " alert_user " has no emails in MPE_EMAILS or metadata!";'; put 'end;'; put 'else do;'; put 'if metadata_getattr(emailuri,"Address",user_email)<0 then do;'; put 'putlog ''DCWARN: Unexpected error! Valid emailURI but no email. Weird.'';'; put 'end;'; put 'end;'; put '/* only keep valid emails */'; put 'if index(user_email,''@'') ;'; put '/* dump contents for debugging */'; put 'if _n_<21 then putlog (_all_)(=);'; put 'run;'; put '%local emails;'; put 'proc sql noprint;'; put 'select quote(trim(user_email)) into: emails separated by '' '' from work.emails;'; put '/* exit if nobody to email */'; put '%if %mf_getattrn(emails,NLOBS)=0 %then %do;'; put '%put NOTE: No alerts configured (mpe_alerts.sas);'; put '%return;'; put '%end;'; put '/* display email options */'; put 'data _null_;'; put 'set sashelp.voption(where=(group=''EMAIL''));'; put 'put optname ''='' setting;'; put 'run;'; put 'filename __out email (&emails)'; put 'subject="Table &alert_lib..&alert_ds has been &alert_event";'; put '%local SUBMITTED_TXT;'; put '%if &alert_event=SUBMITTED %then %do;'; put 'data _null_;'; put 'set &mpelib..mpe_submit;'; put 'where table_id="&dsid" and submit_status_cd=''SUBMITTED'';'; put 'call symputx(''SUBMITTED_TXT'',submitted_reason_txt,''l'');'; put 'run;'; put 'data _null_;'; put 'File __out lrecl=32000;'; put 'put ''Dear user,'';'; put 'put '' '';'; put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; put '"been proposed by &from_user on the ''&syshostname'' SAS server.";'; put 'put " ";'; put 'length txt $2048;'; put 'txt=symget(''SUBMITTED_TXT'');'; put 'put "Reason provided: " txt;'; put 'put " ";'; put 'put "This is an automated email by Data Controller for SAS. For "'; put '"documentation, please visit https://docs.datacontroller.io";'; put 'run;'; put '%end;'; put '%else %if &alert_event=APPROVED %then %do;'; put '/* there is no approval message */'; put 'data _null_;'; put 'File __out lrecl=32000;'; put 'put ''Dear user,'';'; put 'put '' '';'; put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; put '"been approved by &from_user on the ''&syshostname'' SAS server.";'; put 'put " ";'; put 'put "This is an automated email by Data Controller for SAS. For "'; put '"documentation, please visit https://docs.datacontroller.io";'; put 'run;'; put '%end;'; put '%else %if &alert_event=REJECTED %then %do;'; put 'data _null_;'; put 'set &mpelib..mpe_review;'; put 'where table_id="&dsid" and review_status_id=''REJECTED'';'; put 'call symputx(''REVIEW_REASON_TXT'',REVIEW_REASON_TXT,''l'');'; put 'run;'; put 'data _null_;'; put 'File __out lrecl=32000;'; put 'put ''Dear user,'';'; put 'put '' '';'; put 'put "Please be advised that a change to table &alert_lib..&alert_ds has "'; put '"been rejected by &from_user on the ''&syshostname'' SAS server.";'; put 'put " ";'; put 'length txt $2048;'; put 'txt=symget(''REVIEW_REASON_TXT'');'; put 'put "Reason provided: " txt;'; put 'put " ";'; put 'put "This is an automated email by Data Controller for SAS. For "'; put '"documentation, please visit https://docs.datacontroller.io";'; put 'run;'; put '%end;'; put 'filename __out clear;'; put '%mend mpe_alerts ;'; put '%macro mpe_xlmapvalidate(mperef,inds,dclib,tgtds);'; put '%local ismap;'; put 'proc sql noprint;'; put 'select count(*) into: ismap'; put 'from &dclib..mpe_xlmap_info'; put 'where XLMAP_TARGETLIBDS="&tgtds" and &dc_dttmtfmt. le TX_TO ;'; put '%if "&tgtds"="&dclib..MPE_XLMAP_DATA" or &ismap>0 %then %do;'; put 'data &inds;'; put 'set &inds;'; put 'LOAD_REF="&mperef";'; put 'run;'; put '%end;'; put '%mend mpe_xlmapvalidate;'; put '%macro mpe_loadfail('; put 'status=FAILED - &syscc'; put ',now=%sysfunc(datetime())'; put ',approvals='; put ',mperef='; put ',reason_txt='; put ',mac=mpe_loadfail.sas'; put ',dc_dttmtfmt=E8601DT26.6'; put ');'; put '/* do not perform duration calc in pass through */'; put '%local dur;'; put 'data _null_;'; put 'now=symget(''now'');'; put 'dur=%sysfunc(datetime())-&now;'; put 'call symputx(''dur'',dur,''l'');'; put 'run;'; put 'proc sql;'; put 'update &mpelib..mpe_loads'; put 'set STATUS=symget(''status'')'; put ', duration=&dur'; put ', processed_dttm=&dc_dttmtfmt.'; put ', approvals = symget(''approvals'')'; put ', reason_txt= symget(''reason_txt'')'; put 'where CSV_DIR="&mperef";'; put '%let syscc=666;'; put '%mp_abort(msg=%superq(status)\n%superq(reason_txt),mac=&mac)'; put '%mend mpe_loadfail;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mv_getfoldermembers(root=/'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',outds=mv_getfolders'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put '%if %mf_isblank(&root)=1 %then %let root=/;'; put 'options noquotelenmax;'; put '/* request the client details */'; put '%local fname1 libref1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '%if "&root"="/" %then %do;'; put '/* if root just list root folders */'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/folders/rootFolders?limit=1000";'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* first get parent folder id */'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/folders/folders/@item?path=&root";'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put 'libname &libref1 JSON fileref=&fname1;'; put '/* now get the followon link to list members */'; put '%local href cnt;'; put '%let cnt=0;'; put 'data _null_;'; put 'length rel href $512;'; put 'call missing(rel,href);'; put 'set &libref1..links;'; put 'if rel=''members'' then do;'; put 'url=cats("''","&base_uri",href,"?limit=10000''");'; put 'call symputx(''href'',url,''l'');'; put 'call symputx(''cnt'',1,''l'');'; put 'end;'; put 'run;'; put '%if &cnt=0 %then %do;'; put '%put NOTE:;%put NOTE- No members found in &root!!;%put NOTE-;'; put '%return;'; put '%end;'; put '%local fname2 libref2;'; put '%let fname2=%mf_getuniquefileref();'; put '%let libref2=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname2 &oauth_bearer'; put 'url=%unquote(%superq(href));'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var";'; put '%end;'; put 'run;'; put 'libname &libref2 JSON fileref=&fname2;'; put 'data &outds;'; put 'length id $36 name $128 uri $64 type $32 description $256;'; put 'if _n_=1 then call missing (of _all_);'; put 'set &libref2..items;'; put 'run;'; put 'filename &fname2 clear;'; put 'libname &libref2 clear;'; put '%end;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getfoldermembers;'; put '%macro mv_getjobcode(outref=0,outfile=0'; put ',name=0,path=0'; put ',contextName=SAS Job Execution compute context'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',mdebug=0'; put ');'; put '%local dbg bufsize varcnt fname1 fname2 errmsg;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname local entry vars:;'; put '%put _local_;'; put '%end;'; put '%else %let dbg=*;'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put '%mp_abort(iftrue=("&path"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job Path not provided)'; put ')'; put '%mp_abort(iftrue=("&name"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job Name not provided)'; put ')'; put '%mp_abort(iftrue=("&outfile"="0" and "&outref"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Output destination (file or fileref) must be provided)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put 'data;run;'; put '%local foldermembers;'; put '%let foldermembers=&syslast;'; put '%mv_getfoldermembers(root=&path'; put ',access_token_var=&access_token_var'; put ',grant_type=&grant_type'; put ',outds=&foldermembers'; put ')'; put '%local joburi;'; put '%let joburi=0;'; put 'data _null_;'; put 'length name uri $512;'; put 'call missing(name,uri);'; put 'set &foldermembers;'; put 'if name="&name" and uri=:''/jobDefinitions/definitions'''; put 'then call symputx(''joburi'',uri);'; put 'run;'; put '%mp_abort(iftrue=("&joburi"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(Job &path/&name not found)'; put ')'; put '/* prepare request*/'; put '%let fname1=%mf_getuniquefileref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri&joburi";'; put 'headers "Accept"="application/vnd.sas.job.definition+json"'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put ';'; put 'run;'; put '%if &mdebug=1 %then %do;'; put 'data _null_;'; put 'infile &fname1;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%end;'; put '%mp_abort('; put 'iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200 and &SYS_PROCHTTP_STATUS_CODE ne 201)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%let fname2=%mf_getuniquefileref();'; put 'filename &fname2 temp ;'; put '/* cannot use lua IO package as not available in Viya 4 */'; put '/* so use data step to read the JSON until the string `"code":"` is found */'; put 'data _null_;'; put 'file &fname2 recfm=n;'; put 'infile &fname1 lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'retain startwrite 0;'; put 'if startwrite=0 and sourcechar=''"'' then do;'; put 'reentry:'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''c'' then do;'; put 'reentry2:'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''o'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''d'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''e'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''"'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar='':'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar=''"'' then do;'; put 'putlog ''code found'';'; put 'startwrite=1;'; put 'input sourcechar $ 1. @@;'; put 'end;'; put 'end;'; put 'else if sourcechar=''c'' then goto reentry2;'; put 'end;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put 'else if sourcechar=''"'' then goto reentry;'; put 'end;'; put '/* once the `"code":"` string is found, write until unescaped `"` is found */'; put 'if startwrite=1 then do;'; put 'if sourcechar=''\'' then do;'; put 'input sourcechar $ 1. @@;'; put 'if sourcechar in (''"'',''\'') then put sourcechar char1.;'; put 'else if sourcechar=''n'' then put ''0A''x;'; put 'else if sourcechar=''r'' then put ''0D''x;'; put 'else if sourcechar=''t'' then put ''09''x;'; put 'else if sourcechar=''u'' then do;'; put 'length uni $4;'; put 'input uni $ 4. @@;'; put 'sourcechar=unicode(''\u''!!uni);'; put 'put sourcechar char1.;'; put 'end;'; put 'else do;'; put 'call symputx(''errmsg'',"Uncaught escape char: "!!sourcechar,''l'');'; put 'call symputx(''syscc'',99);'; put 'stop;'; put 'end;'; put 'end;'; put 'else if sourcechar=''"'' then stop;'; put 'else put sourcechar char1.;'; put 'end;'; put 'run;'; put '%mp_abort(iftrue=("&syscc"="99")'; put ',mac=mv_getjobcode'; put ',msg=%str(&errmsg)'; put ')'; put '/* export to desired destination */'; put '%if "&outref"="0" %then %do;'; put 'data _null_;'; put 'file "&outfile" lrecl=32767;'; put '%end;'; put '%else %do;'; put 'filename &outref temp;'; put 'data _null_;'; put 'file &outref;'; put '%end;'; put 'infile &fname2;'; put 'input;'; put 'put _infile_;'; put '&dbg. putlog _infile_;'; put 'run;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname exit vars:;'; put '%put _local_;'; put '%end;'; put '%else %do;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'filename &fname2 clear;'; put '%end;'; put '%mend mv_getjobcode;'; put '%macro dc_getservicecode(loc=,outref=);'; put '%local name;'; put '%let name=%scan(&loc,-1,/);'; put '%mv_getjobcode(path=%substr(&loc,1,%length(&loc)-%length(&name)-1)'; put ',name=&name'; put ',outref=&outref'; put ')'; put '%mend dc_getservicecode;'; put '%macro mp_include(fileref'; put ',prefix=_'; put ',opts=SOURCE2'; put ',errds=work.mp_abort_errds'; put ')/*/STORE SOURCE*/;'; put '/* prepare precode */'; put '%local tempref;'; put '%let tempref=%mf_getuniquefileref();'; put 'data _null_;'; put 'file &tempref;'; put 'set sashelp.vextfl(where=(fileref="%upcase(&fileref)"));'; put 'put ''%let _SYSINCLUDEFILEDEVICE='' xengine '';'';'; put 'name=scan(xpath,-1,''/\'');'; put 'put ''%let _SYSINCLUDEFILENAME='' name '';'';'; put 'path=subpad(xpath,1,length(xpath)-length(name)-1);'; put 'put ''%let _SYSINCLUDEFILEDIR='' path '';'';'; put 'put ''%let _SYSINCLUDEFILEFILEREF='' "&fileref;";'; put 'run;'; put '/* prepare the errds */'; put 'data &errds;'; put 'length msg mac $1000;'; put 'call missing(msg,mac);'; put 'iftrue=''1=0'';'; put 'run;'; put '/* include the include */'; put '%inc &tempref &fileref/&opts;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=%str(&_SYSINCLUDEFILEDIR/&_SYSINCLUDEFILENAME)'; put ',msg=%str(syscc=&syscc after executing &_SYSINCLUDEFILENAME)'; put ')'; put 'filename &tempref clear;'; put '%mend mp_include;'; put '%macro mpe_runhook(hookvar);'; put '%local pgmloc pgmtype;'; put '%let pgmtype=0;'; put '%put &sysmacroname: &=hookvar;'; put '%if %length(&&&hookvar)>0 %then %do;'; put '%put &sysmacroname: Executing &&&hookvar;'; put 'data _null_;'; put 'rule_value=symget("&hookvar");'; put 'if scan(upcase(rule_value),-1,''.'')=''SAS'' then do;'; put 'call symputx(''pgmtype'',''PGM'');'; put 'call symputx(''pgmloc'',rule_value);'; put 'end;'; put 'else do;'; put 'apploc="%mf_getapploc()";'; put 'if substr(rule_value,1,1) ne ''/'''; put 'then rule_value=cats(apploc,''/'',rule_value);'; put 'call symputx(''pgmloc'',rule_value);'; put 'call symputx(''pgmtype'',''JOB'');'; put 'end;'; put 'run;'; put '%if &pgmtype=PGM %then %do;'; put 'filename sascode "&pgmloc";'; put '%end;'; put '%else %do;'; put '%dc_getservicecode(loc=&pgmloc'; put ',outref=sascode'; put ')'; put '%end;'; put '/* the below script will need to modify work.STAGING_DS */'; put '%local x; %let x=; /* legacy feature */'; put '%mp_include(sascode)'; put '%end;'; put '%mend mpe_runhook;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '%macro mf_mkdir(dir'; put ')/*/STORE SOURCE*/;'; put '%local lastchar child parent;'; put '%let lastchar = %substr(&dir, %length(&dir));'; put '%if (%bquote(&lastchar) eq %str(:)) %then %do;'; put '/* Cannot create drive mappings */'; put '%return;'; put '%end;'; put '%if (%bquote(&lastchar)=%str(/)) or (%bquote(&lastchar)=%str(\)) %then %do;'; put '/* last char is a slash */'; put '%if (%length(&dir) eq 1) %then %do;'; put '/* one single slash - root location is assumed to exist */'; put '%return;'; put '%end;'; put '%else %do;'; put '/* strip last slash */'; put '%let dir = %substr(&dir, 1, %length(&dir)-1);'; put '%end;'; put '%end;'; put '%if (%sysfunc(fileexist(%bquote(&dir))) = 0) %then %do;'; put '/* directory does not exist so prepare to create */'; put '/* first get the childmost directory */'; put '%let child = %scan(&dir, -1, %str(/\:));'; put '/*'; put 'If child name = path name then there are no parents to create. Else'; put 'they must be recursively scanned.'; put '*/'; put '%if (%length(&dir) gt %length(&child)) %then %do;'; put '%let parent = %substr(&dir, 1, %length(&dir)-%length(&child));'; put '%mf_mkdir(&parent)'; put '%end;'; put '/*'; put 'Now create the directory. Complain loudly of any errs.'; put '*/'; put '%let dname = %sysfunc(dcreate(&child, &parent));'; put '%if (%bquote(&dname) eq ) %then %do;'; put '%put %str(ERR)OR: could not create &parent + &child;'; put '%abort cancel;'; put '%end;'; put '%else %do;'; put '%put Directory created: &dir;'; put '%end;'; put '%end;'; put '/* exit quietly if directory did exist.*/'; put '%mend mf_mkdir;'; put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; put 'proc sql;'; put 'create table &libds('; put 'TYPE char(1) label='; put '''Format Type: either N (num fmt), C (char fmt), I (num infmt) or J (char infmt)'''; put ',FMTNAME char(32) label=''Format name'''; put ',FMTROW num label='; put '''CALCULATED Position of record by FMTNAME (reqd for multilabel formats)'''; put ',START char(32767) label=''Starting value for format'''; put '/*'; put 'Keep lengths of START and END the same to avoid this err:'; put '"Start is greater than end: -<."'; put 'Similar usage note: https://support.sas.com/kb/69/330.html'; put '*/'; put ',END char(32767) label=''Ending value for format'''; put ',LABEL char(32767) label=''Format value label'''; put ',MIN num length=3 label=''Minimum length'''; put ',MAX num length=3 label=''Maximum length'''; put ',DEFAULT num length=3 label=''Default length'''; put ',LENGTH num length=3 label=''Format length'''; put ',FUZZ num label=''Fuzz value'''; put ',PREFIX char(2) label=''Prefix characters'''; put ',MULT num label=''Multiplier'''; put ',FILL char(1) label=''Fill character'''; put ',NOEDIT num length=3 label=''Is picture string noedit?'''; put ',SEXCL char(1) label=''Start exclusion'''; put ',EEXCL char(1) label=''End exclusion'''; put ',HLO char(13) label='; put '''More info: https://core.sasjs.io/mddl__sas__cntlout_8sas_source.html'''; put ',DECSEP char(1) label=''Decimal separator'''; put ',DIG3SEP char(1) label=''Three-digit separator'''; put ',DATATYPE char(8) label=''Date/time/datetime?'''; put ',LANGUAGE char(8) label=''Language for date strings'''; put ');'; put '%local lib;'; put '%let libds=%upcase(&libds);'; put '%if %index(&libds,.)=0 %then %let lib=WORK;'; put '%else %let lib=%scan(&libds,1,.);'; put 'proc datasets lib=&lib noprint;'; put 'modify %scan(&libds,-1,.);'; put 'index create'; put 'pk_cntlout=(type fmtname fmtrow)'; put '/nomiss unique;'; put 'quit;'; put '%mend mddl_sas_cntlout;'; put '%macro mp_aligndecimal(var,width=8);'; put '%local tmpvar;'; put '%let tmpvar=%mf_getuniquename(prefix=aligndp);'; put 'length &tmpvar $&width;'; put 'if index(&var,''.'') then do;'; put '&tmpvar=cats(scan(&var,1,''.''));'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar!!''.''!!cats(scan(&var,2,''.''));'; put 'end;'; put 'else do;'; put '&tmpvar=cats(&var);'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar;'; put 'end;'; put 'drop &tmpvar;'; put '%mend mp_aligndecimal;'; put '%macro mp_cntlout('; put 'iftrue=(1=1)'; put ',libcat='; put ',cntlout=work.fmtextract'; put ',fmtlist=0'; put ')/*/STORE SOURCE*/;'; put '%local ddlds cntlds i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let ddlds=%mf_getuniquename();'; put '%let cntlds=%mf_getuniquename();'; put '%mddl_sas_cntlout(libds=&ddlds)'; put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; put '%let libcat=%scan(&libcat,1,-);'; put '%end;'; put 'proc format lib=&libcat cntlout=&cntlds;'; put '%if "&fmtlist" ne "0" and "&fmtlist" ne "" %then %do;'; put 'select'; put '%do i=1 %to %sysfunc(countw(&fmtlist,%str( )));'; put '%scan(&fmtlist,&i,%str( ))'; put '%end;'; put ';'; put '%end;'; put 'run;'; put 'data &cntlout/nonote2err;'; put 'if 0 then set &ddlds;'; put 'set &cntlds;'; put 'by type fmtname notsorted;'; put '/* align the numeric values to avoid overlapping ranges */'; put 'if type in ("I","N") then do;'; put '%mp_aligndecimal(start,width=16)'; put '%mp_aligndecimal(end,width=16)'; put 'end;'; put '/* create row marker. Data cannot be sorted without it! */'; put 'if first.fmtname then fmtrow=1;'; put 'else fmtrow+1;'; put 'run;'; put 'proc sort;'; put 'by type fmtname fmtrow;'; put 'run;'; put 'proc sql;'; put 'drop table &ddlds,&cntlds;'; put '%mend mp_cntlout;'; put '/** @endcond */'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_wordsInStr1ButNotStr2('; put 'Str1= /* string containing words to extract */'; put ',Str2= /* used to compare with the extract string */'; put ')/*/STORE SOURCE*/;'; put '%local count_base count_extr i i2 extr_word base_word match outvar;'; put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; put '%put base string (str1)= &str1;'; put '%put compare string (str2) = &str2;'; put '%return;'; put '%end;'; put '%let count_base=%sysfunc(countw(&Str2));'; put '%let count_extr=%sysfunc(countw(&Str1));'; put '%do i=1 %to &count_extr;'; put '%let extr_word=%scan(&Str1,&i,%str( ));'; put '%let match=0;'; put '%do i2=1 %to &count_base;'; put '%let base_word=%scan(&Str2,&i2,%str( ));'; put '%if &extr_word=&base_word %then %let match=1;'; put '%end;'; put '%if &match=0 %then %let outvar=&outvar &extr_word;'; put '%end;'; put '&outvar'; put '%mend mf_wordsInStr1ButNotStr2;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro mp_dirlist(path=%sysfunc(pathname(work))'; put ', fref=0'; put ', outds=work.mp_dirlist'; put ', getattrs=NO'; put ', showparent=NO'; put ', maxdepth=0'; put ', level=0 /* The level of recursion to perform. For internal use only. */'; put ')/*/STORE SOURCE*/;'; put '%let getattrs=%upcase(&getattrs)XX;'; put '/* temp table */'; put '%local out_ds;'; put 'data;run;'; put '%let out_ds=%str(&syslast);'; put '/* drop main (top) table if it exists */'; put '%if &level=0 %then %do;'; put '%mp_dropmembers(%scan(&outds,-1,.), libref=WORK)'; put '%end;'; put 'data &out_ds(compress=no'; put 'keep=file_or_folder filepath filename ext msg directory level'; put ');'; put 'length directory filepath $2000 fref fref2 $8 file_or_folder $6 filename $255'; put 'ext $20 msg $200 foption $16;'; put 'if _n_=1 then call missing(of _all_);'; put 'retain level &level;'; put '%if &fref=0 %then %do;'; put 'rc = filename(fref, "&path");'; put '%end;'; put '%else %do;'; put 'fref="&fref";'; put 'rc=0;'; put '%end;'; put 'if rc = 0 then do;'; put 'did = dopen(fref);'; put 'if did=0 then do;'; put 'putlog "NOTE: This directory is empty, or does not exist - &path";'; put 'msg=sysmsg();'; put 'put (_all_)(=);'; put 'stop;'; put 'end;'; put '/* attribute is OS-dependent - could be "Directory" or "Directory Name" */'; put 'numopts=doptnum(did);'; put 'do i=1 to numopts;'; put 'foption=doptname(did,i);'; put 'if foption=:''Directory'' then i=numopts;'; put 'end;'; put 'directory=dinfo(did,foption);'; put 'rc = filename(fref);'; put 'end;'; put 'else do;'; put 'msg=sysmsg();'; put 'put _all_;'; put 'stop;'; put 'end;'; put 'dnum = dnum(did);'; put 'do i = 1 to dnum;'; put 'filename = dread(did, i);'; put 'filepath=cats(directory,''/'',filename);'; put 'rc = filename(fref2,filepath);'; put 'midd=dopen(fref2);'; put 'dmsg=sysmsg();'; put 'if did > 0 then file_or_folder=''folder'';'; put 'rc=dclose(midd);'; put 'midf=fopen(fref2);'; put 'fmsg=sysmsg();'; put 'if midf > 0 then file_or_folder=''file'';'; put 'rc=fclose(midf);'; put 'if index(fmsg,''File is in use'') or index(dmsg,''is not a directory'')'; put 'then file_or_folder=''file'';'; put 'else if index(fmsg,''Insufficient authorization'') then file_or_folder=''file'';'; put 'else if file_or_folder='''' then file_or_folder=''locked'';'; put 'if file_or_folder=''file'' then do;'; put 'ext = prxchange(''s/.*\.{1,1}(.*)/$1/'', 1, filename);'; put 'if filename = ext then ext = '' '';'; put 'end;'; put 'else do;'; put 'ext='''';'; put 'file_or_folder=''folder'';'; put 'end;'; put 'output;'; put 'end;'; put 'rc = dclose(did);'; put '%if &showparent=YES and &level=0 %then %do;'; put 'filepath=directory;'; put 'file_or_folder=''folder'';'; put 'ext='''';'; put 'filename=scan(directory,-1,''/\'');'; put 'msg='''';'; put 'level=&level;'; put 'output;'; put '%end;'; put 'stop;'; put 'run;'; put '%if %substr(&getattrs,1,1)=Y %then %do;'; put 'data &out_ds;'; put 'set &out_ds;'; put 'length infoname infoval $60 fref $8;'; put 'if _n_=1 then call missing(fref);'; put 'rc=filename(fref,filepath);'; put 'drop rc infoname fid i close fref;'; put 'if file_or_folder=''file'' then do;'; put 'fid=fopen(fref);'; put 'if fid le 0 then do;'; put 'msg=sysmsg();'; put 'putlog "Could not open file:" filepath fid= ;'; put 'sasname=''_MCNOTVALID_'';'; put 'output;'; put 'end;'; put 'else do i=1 to foptnum(fid);'; put 'infoname=foptname(fid,i);'; put 'infoval=finfo(fid,infoname);'; put 'sasname=compress(infoname, ''_'', ''adik'');'; put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; put 'if upcase(sasname) ne ''FILENAME'' then output;'; put 'end;'; put 'close=fclose(fid);'; put 'end;'; put 'else do;'; put 'fid=dopen(fref);'; put 'if fid le 0 then do;'; put 'msg=sysmsg();'; put 'putlog "Could not open folder:" filepath fid= ;'; put 'sasname=''_MCNOTVALID_'';'; put 'output;'; put 'end;'; put 'else do i=1 to doptnum(fid);'; put 'infoname=doptname(fid,i);'; put 'infoval=dinfo(fid,infoname);'; put 'sasname=compress(infoname, ''_'', ''adik'');'; put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));'; put 'if upcase(sasname) ne ''FILENAME'' then output;'; put 'end;'; put 'close=dclose(fid);'; put 'end;'; put 'run;'; put 'proc sort;'; put 'by filepath sasname;'; put 'proc transpose data=&out_ds out=&out_ds(drop=_:);'; put 'id sasname;'; put 'var infoval;'; put 'by filepath file_or_folder filename ext ;'; put 'run;'; put '%end;'; put 'data &out_ds;'; put 'set &out_ds(where=(filepath ne ''''));'; put 'run;'; put '/**'; put '* The above transpose can mean that some updates create additional columns.'; put '* This necessitates the occasional use of datastep over proc append.'; put '*/'; put '%if %mf_existds(&outds) %then %do;'; put '%local basevars appvars newvars;'; put '%let basevars=%mf_getvarlist(&outds);'; put '%let appvars=%mf_getvarlist(&out_ds);'; put '%let newvars=%length(%mf_wordsinstr1butnotstr2(Str1=&appvars,Str2=&basevars));'; put '%if &newvars>0 %then %do;'; put 'data &outds;'; put 'set &outds &out_ds;'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc append base=&outds data=&out_ds force nowarn;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do;'; put 'proc append base=&outds data=&out_ds;'; put 'run;'; put '%end;'; put '/* recursive call */'; put '%if &maxdepth>&level or &maxdepth=MAX %then %do;'; put 'data _null_;'; put 'set &out_ds;'; put 'where file_or_folder=''folder'';'; put '%if &showparent=YES and &level=0 %then %do;'; put 'if filepath ne directory;'; put '%end;'; put 'length code $10000;'; put 'code=cats(''%nrstr(%mp_dirlist(path='',filepath,",outds=&outds"'; put ',",getattrs=&getattrs,level=%eval(&level+1),maxdepth=&maxdepth))");'; put 'put code=;'; put 'call execute(code);'; put 'run;'; put '%end;'; put '/* tidy up */'; put 'proc sql;'; put 'drop table &out_ds;'; put '%mend mp_dirlist;'; put '%macro mf_getattrc('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrc(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrc;'; put '%macro mp_lockfilecheck('; put 'libds'; put ')/*/STORE SOURCE*/;'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=checklock.sas'; put ',msg=Aborting with syscc=&syscc on entry.'; put ')'; put '%mp_abort(iftrue= ("&libds"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(libds not provided)'; put ')'; put '%local msg lib ds;'; put '%let lib=%upcase(%scan(&libds,1,.));'; put '%let ds=%upcase(%scan(&libds,2,.));'; put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; put '%if %scan(&libds,2,-)=FC %then %do;'; put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=checklock.sas'; put ',msg=%superq(msg)'; put ')'; put 'data _null_;'; put 'putlog "Checking engine & member type";'; put 'run;'; put '%local engine memtype;'; put '%let memtype=%mf_getattrc(&libds,MTYPE);'; put '%let engine=%mf_getattrc(&libds,ENGINE);'; put '%if &engine ne V9 and &engine ne BASE %then %do;'; put 'data _null_;'; put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; put 'putlog "SAS lock check will not be performed";'; put 'run;'; put '%return;'; put '%end;'; put '%else %if &memtype ne DATA %then %do;'; put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; put '%return;'; put '%end;'; put 'data _null_;'; put 'putlog "Engine = &engine, memtype=&memtype";'; put 'putlog "Attempting lock statement";'; put 'run;'; put 'lock &libds;'; put '%local abortme;'; put '%let abortme=0;'; put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; put '%put %str(ERR)OR: &sysmacroname: &msg;'; put '%let abortme=1;'; put '%end;'; put 'lock &libds clear;'; put '%mp_abort(iftrue= (&abortme=1)'; put ',mac=&sysmacroname'; put ',msg=%superq(msg)'; put ')'; put '%mend mp_lockfilecheck;'; put '%macro mp_lockanytable('; put 'action'; put ',lib= WORK'; put ',ds=0'; put ',ref='; put ',ctl_ds=0'; put ',loops=25'; put ',loop_secs=1'; put ');'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(dataset was not provided)'; put ')'; put '%mp_abort(iftrue= (&ctl_ds=0)'; put ',mac=&sysmacroname'; put ',msg=%str(Control dataset was not provided)'; put ')'; put '/* set up lib & mac vars */'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '%let action=%upcase(&action);'; put '%local user x trans msg abortme;'; put '%let user=%mf_getuser();'; put '%let abortme=0;'; put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid action (&action) provided)'; put ')'; put '/* if an err condition exists, exit before we even begin */'; put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; put ',mac=&sysmacroname'; put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; put ')'; put '/* do not bother locking work tables (else may affect all WORK libraries) */'; put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; put '%put NOTE: WORK libraries will not be registered in the locking system.;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=&sysmacroname'; put ',msg=%str(cannot continue when options obs = 0)'; put ')'; put '%if &ACTION=LOCK %then %do;'; put '/* abort if a SAS lock is already in place, or cannot be applied */'; put '%mp_lockfilecheck(&lib..&ds)'; put '/* next, check there is a record for this table */'; put '%local record_exists_check;'; put 'proc sql noprint;'; put 'select count(*) into: record_exists_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &record_exists_check=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: adding record to lock table..";'; put 'run;'; put 'data ;'; put 'if 0 then set &ctl_ds;'; put 'LOCK_LIB ="&lib";'; put 'LOCK_DS="&ds";'; put 'LOCK_STATUS_CD=''LOCKED'';'; put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'LOCK_USER_NM="&user";'; put 'LOCK_PID="&sysjobid";'; put 'LOCK_REF="&ref";'; put 'output;stop;'; put 'run;'; put '%let trans=&syslast;'; put 'proc append base=&ctl_ds data=&trans;'; put 'run;'; put '%end;'; put '/* if record does exist, perform lock attempts */'; put '%else %do x=1 %to &loops;'; put 'data _null_;'; put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''LOCKED'''; put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '/**'; put '* NOTE - occasionally SQL server will return an err code (deadlocked'; put '* transaction). If so, ignore it, keep calm, and carry on..'; put '*/'; put '%if &syscc>0 %then %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; put 'putlog "Resetting err conditions and re-attempting.";'; put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%let syscc=0;'; put '%let sqlrc=0;'; put '%end;'; put '/* now check if the record was successfully updated */'; put '%local success_check;'; put 'proc sql noprint;'; put 'select count(*) into: success_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; put 'quit;'; put '%if &success_check=0 %then %do;'; put '%if &x < &loops %then %do;'; put '/* pause before next check */'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; put 'putlog "%sysfunc(sleep(&loop_secs)) seconds.. ";'; put 'putlog "NOTE- (iteration &x of &loops)";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%end;'; put '%else %do;'; put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; put 'Please ask your administrator to investigate!;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%else %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%if &syscc>0 %then %do;'; put '%put setting syscc(&syscc) back to 0;'; put '%let syscc=0;'; put '%end;'; put '%let x=&loops; /* no more iterations needed */'; put '%end;'; put '%end;'; put '%end;'; put '%else %if &ACTION=UNLOCK %then %do;'; put '%local status cnt;'; put '%let cnt=0;'; put 'proc sql noprint;'; put 'select count(*) into: cnt from &ctl_ds where LOCK_LIB ="&lib" & LOCK_DS="&ds";'; put '%if &cnt=0 %then %do;'; put '%put %str(WAR)NING: &lib..&ds was not previously locked in &ctl_ds!;'; put '%end;'; put '%else %do;'; put 'select LOCK_STATUS_CD into: status from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &status=LOCKED %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''UNLOCKED'''; put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%end;'; put '%else %if &status=UNLOCKED %then %do;'; put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; put '%end;'; put '%else %do;'; put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%end;'; put '%else %do;'; put '%let msg=lock_anytable given unsupported action (&action);'; put '%let abortme=1;'; put '%end;'; put '/* catch errs - mp_abort must be called outside of a logic block */'; put '%mp_abort(iftrue=(&abortme=1),'; put 'msg=%superq(msg),'; put 'mac=&sysmacroname'; put ')'; put '%exit_macro:'; put 'data _null_;'; put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; put 'run;'; put '%mend mp_lockanytable;'; put '%macro mpe_loader('; put 'mperef= /* name of subfolder containing the staged data */'; put ',mDebug=0 /* set to 1 for development or debugging */'; put ',submitted_reason_txt= /* populates column of same name in sumo_approvals*/'; put ',approver= /* allows a userid to be provided for direct approval email */'; put ',url= /* optional - url for debugging */'; put ',dlm=%str(,)'; put ',termstr=crlf'; put ',dc_dttmtfmt=E8601DT26.6'; put ');'; put '%put entered mpe_loader from &=_program;'; put '%put &=url;'; put '%put &=termstr;'; put '%put &=dlm;'; put '/* determine full path to CSV directory */'; put '%local now;'; put '%let now=&dc_dttmtfmt;'; put '%put &=now;'; put '/**'; put '* get full path to package (only subdirectory passed through)'; put '*/'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(mperef mpelocapprovals)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing: mperef mpelocapprovals)'; put ')'; put '%let csv_dir=%trim(&mpelocapprovals/&mperef);'; put '/* exit if package has already been uploaded */'; put '%local check;'; put 'proc sql noprint;'; put 'select count(*) into: check'; put 'from &mpelib..mpe_loads'; put 'where csv_dir="&mperef";'; put '%if &check %then %do;'; put '%mp_abort(msg=Folder &mperef already has an entry in &mpelib..mpe_loads'; put ',mac=mpe_loader.sas);'; put '%return;'; put '%end;'; put '/* get CSV directory contents */'; put '%mp_dirlist(path=&csv_dir,outds=WORK.getfiles)'; put 'data WORK.csvs;'; put 'set WORK.getfiles;'; put 'if upcase(scan(filename,3,''.''))=''CSV'' then do;'; put 'lib=upcase(scan(filename,1,''.''));'; put 'ds=upcase(scan(filename,2,''.''));'; put 'output;'; put 'end;'; put 'run;'; put '/* get table attributes */'; put 'proc sql noprint;'; put 'create table WORK.sumo_tables as'; put 'select a.filename, b.*'; put 'from WORK.csvs a'; put 'left join &mpelib..mpe_tables b'; put 'on a.lib=b.libref'; put 'and a.ds=b.dsn'; put 'where b.tx_from le &now'; put 'and &now lt b.tx_to;'; put '/* define user as meta user if available */'; put '%local user;'; put '%let user=%mf_getuser();'; put '/* check if there is actually a table to load */'; put '%if %mf_getattrn(WORK.sumo_tables,NLOBS)=0 %then %do;'; put '%let msg=Table not registered in &mpelib..mpe_tables;'; put '%mpe_loadfail('; put 'status=&msg'; put ',now=&now'; put ',mperef=&mperef'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%mp_abort(msg=&msg,mac=mpe_loader.sas);'; put '%return;'; put '%end;'; put 'proc sql;'; put 'insert into &mpelib..mpe_loads'; put 'set USER_NM="&user"'; put ',STATUS=''IN PROGRESS'''; put ',CSV_dir="&mperef"'; put ',PROCESSED_DTTM=&now'; put ',reason_txt = symget(''submitted_reason_txt'');'; put '/* import CSV */'; put '%let droplist=;'; put '%let attrib=;'; put '%let droplist=;'; put '%let libref=;'; put '%let DS=;'; put '/* get table info */'; put 'data _null_;'; put 'set sumo_tables;'; put 'libds=upcase(cats(libref,''.'',dsn));'; put 'call symputx(''orig_libds'',libds);'; put 'is_fmt=0;'; put 'if substr(cats(reverse(dsn)),1,3)=:''CF-'' then do;'; put 'libds=scan(libds,1,''-'');'; put 'putlog "Format Catalog Captured";'; put 'libds=''work.fmtextract'';'; put 'is_fmt=1;'; put 'end;'; put 'call symputx(''is_fmt'',is_fmt);'; put 'call symputx(''libds'',libds);'; put 'call symputx(''FNAME'',filename);'; put 'call symputx(''LIBREF'',libref);'; put 'call symputx(''DS'',dsn);'; put 'call symputx(''LOADTYPE'',loadtype);'; put 'call symputx(''BUSKEY'',buskey);'; put 'call symputx(''VAR_TXFROM'',var_txfrom);'; put 'call symputx(''VAR_TXTO'',var_txto);'; put 'call symputx(''VAR_BUSFROM'',var_busfrom);'; put 'call symputx(''VAR_BUSTO'',var_busto);'; put 'call symputx(''VAR_PROCESSED'',var_processed);'; put 'call symputx(''RK_UNDERLYING'',RK_UNDERLYING);'; put 'call symputx(''POST_EDIT_HOOK'',POST_EDIT_HOOK);'; put 'call symputx(''NOTES'',NOTES);'; put 'call symputx(''PK'',coalescec(RK_UNDERLYING,buskey));'; put 'call symputx(''NUM_OF_APPROVALS_REQUIRED'',NUM_OF_APPROVALS_REQUIRED,''l'');'; put 'put (_all_)(=);'; put 'stop;'; put 'run;'; put '%if %length(&ds)=0 %then %do;'; put '%let msg=%str(ERR)OR: Unable to extract record from &mpelib..mpe_tables;'; put '%mpe_loadfail('; put 'status=FAILED'; put ',now=&now'; put ',mperef=&mperef'; put ',reason_txt=%quote(&msg)'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%mp_abort(msg=&msg,mac=mpe_loader.sas);'; put '%return;'; put '%end;'; put '/* export format catalog */'; put '%mp_cntlout('; put 'iftrue=(&is_fmt=1)'; put ',libcat=&orig_libds'; put ',fmtlist=0'; put ',cntlout=work.fmtextract'; put ')'; put '/* user must have EDIT access to load a table */'; put '%mpe_accesscheck(&orig_libds'; put ',outds=work.sumo_access'; put ',user=&user'; put ',access_level=EDIT )'; put '%put exiting accesscheck;'; put '%if %mf_getattrn(work.sumo_access,NLOBS)=0 %then %do;'; put '%let msg=%str(ERR)OR: User is not authorised to edit &orig_libds!;'; put '%mpe_loadfail('; put 'status=UNAUTHORISED'; put ',now=&now'; put ',mperef=&mperef'; put ',reason_txt=%quote(&msg)'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%mp_abort(msg=&msg,mac=mpe_loader.sas);'; put '%return;'; put '%end;'; put '%put now importing: "&csv_dir/&fname" termstr=&termstr;'; put '/* get the variables from the CSV */'; put 'data vars_csv1(index=(idxname=(varnum name)) drop=infile);'; put 'infile "&csv_dir/&fname" lrecl=32767 dsd termstr=&termstr encoding=''utf-8'';'; put 'input;'; put 'length infile $32767;'; put 'infile=compress(_infile_,''"'',);'; put 'infile=compress(infile,"''",);'; put 'format name $32.;'; put 'putlog ''received vars: '' infile;'; put 'call symputx(''received_vars'',infile,''l'');'; put 'do varnum=1 to countw(infile,"&dlm");'; put '/* keep writeable chars */'; put 'name=compress(upcase(scan(infile,varnum)),,''kw'');'; put 'if name ne "_____DELETE__THIS__RECORD_____" then output;'; put 'end;'; put 'stop;'; put 'run;'; put '%put received_vars = &received_vars;'; put '%dc_assignlib(WRITE,&libref)'; put '/* get list of variables and their formats */'; put 'proc contents noprint data=&libds'; put 'out=vars(keep=name type length varnum format:);'; put 'run;'; put 'data vars(keep=name type length varnum format);'; put 'set vars(rename=(format=format2 type=type2));'; put 'name=upcase(name);'; put 'format2=upcase(format2);'; put '/* not interested in transaction or processing dates'; put '(append table must be supplied without them) */'; put 'if name not in ("&VAR_TXFROM","&VAR_TXTO","&VAR_PROCESSED"'; put ',"_____DELETE__THIS__RECORD_____");'; put 'if type2 in (2,6) then do;'; put 'length format $49.;'; put 'if format2='''' then format=cats(''$'',length,''.'');'; put 'else format=cats(format2,max(formatl,length),''.'');'; put 'type=''char'';'; put 'end;'; put 'else do;'; put 'if format2='''' then format=cats(length,''.'');'; put 'else if format2=:''DATETIME'' or format2=:''E8601DT'' or format2=:''NLDATM'''; put 'then do;'; put 'format=''DATETIME19.'';'; put 'end;'; put 'else if format2=:''DATE'' or format2=:''DDMMYY'''; put 'or format2=:''MMDDYY'' or format2=:''YYMMDD'''; put 'or format2=:''E8601DA'' or format2=:''B8601DA'''; put 'or format2=:''NLDATE'''; put 'then do;'; put 'format=''DATE9.'';'; put 'end;'; put 'else if format2=''BEST'' & formatl=0 then format=cats(''BEST'',length,''.'');'; put 'else do;'; put 'if formatl=0 then formatl=length;'; put 'format=cats(format2,formatl,''.'',formatd);'; put 'end;'; put 'type=''num'';'; put 'end;'; put 'put (_all_)(=);'; put 'run;'; put '/* build attrib statement */'; put 'data vars_attrib;'; put 'length attrib_statement $32767 type2 $20;'; put 'set vars end=lastobs;'; put 'retain attrib_statement;'; put 'if type=''char'' then type2=''$'';'; put 'str1=catx('' '',name,''length='',cats(type2,length));'; put 'attrib_statement=trim(attrib_statement)!!'' ''!!trim(str1);'; put 'if lastobs then call symputx(''ATTRIB'',attrib_statement,''L'');'; put 'run;'; put '/* build input statement - first get vars in right order'; put 'and join with target formats*/'; put 'proc sql noprint;'; put 'create table vars_csv2 as'; put 'select b.*'; put 'from vars_csv1 a'; put 'left join vars_attrib b'; put 'on a.name=b.name'; put 'order by a.varnum;'; put '/* now build input statement */'; put 'data final_check;'; put 'set vars_csv2 end=lastobs;'; put 'length input_statement $32767 type2 $20 droplist $32767;'; put 'retain input_statement droplist;'; put '/* Build input statement - CATCH EXCEPTIONS HERE!*/'; put 'if name in (''QUOTE_DTTM'') then do;'; put 'name=cats(name,''2'');'; put 'droplist=catx('' '',trim(droplist),name);'; put 'type2=''$20.'';/* converted below */'; put 'end;'; put 'else if type=''char'' then type2=cats(''$CHAR'', length,''.'');'; put 'else if format=''DATE9.'' then type2=''ANYDTDTE.'';'; put 'else if format=''DATETIME19.'' then type2=''ANYDTDTM.'';'; put 'else if format=:''TIME'' then type2=''ANYDTTME.'';'; put 'else if name='''' then do;/* additional vars in input data */'; put 'name=''_____DELETE__THIS__VARIABLE_____'';'; put 'droplist=catx('' '',trim(droplist),''_____DELETE__THIS__VARIABLE_____'');'; put 'type2=''$1.'';'; put 'end;'; put 'else type2=''best32.'';'; put '* else type2=cats(length,''.'');'; put 'input_statement=catx('' '',input_statement,name,'':'',type2);'; put 'if lastobs then do;'; put 'call symputx(''INPUT'', input_statement,''L'');'; put 'if trim(droplist) ne '''' then'; put 'call symputx(''droplist'',"drop "!!droplist!!'';'',''l'');'; put 'end;'; put 'run;'; put '%let mpeloadstop=0;'; put 'data work.STAGING_DS;'; put '&droplist;'; put 'infile "&csv_dir/&fname" dsd dlm="&dlm" lrecl=32767'; put 'firstobs=2 missover termstr=&termstr encoding=''utf-8'';'; put 'attrib _____DELETE__THIS__RECORD_____ length=$3 &attrib ;'; put 'if _n_=1 then call missing (of _all_);'; put 'missing a b c d e f g h i j k l m n o p q r s t u v w x y z _;'; put 'input'; put '%if %scan(%quote(&received_vars),1)=_____DELETE__THIS__RECORD_____ %then %do;'; put '_____DELETE__THIS__RECORD_____: $3.'; put '%end;'; put '&input;'; put '%if %index(%quote(&attrib.),UNLIKELY_VAR ) %then %do;'; put '/*UNLIKELY_VAR=input(UNLIKELY_VAR2,ANYDTDTM21.);*/'; put '/* SPECIAL LOGIC FOR SPECIAL VARS */'; put '%end;'; put 'if _error_ ne 0 then do;'; put 'putlog _infile_;'; put 'call symputx(''mpeloadstop'',_n_);'; put 'stop;'; put 'end;'; put '/* remove all blank rows */'; put 'if compress(cats(of _all_),''.'')='' '' then delete;'; put 'run;'; put '%if &mpeloadstop>0 %then %do;'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put '%put redirecting log output to capture return message;'; put '%put currentloc=&logloc;'; put 'filename tmp temp;'; put 'proc printto log=tmp;run;'; put 'data _null_;'; put '&droplist;'; put 'infile "&csv_dir/&fname" dsd dlm="&dlm" lrecl=32767 firstobs=2'; put 'missover termstr=&termstr;'; put 'attrib &attrib ;'; put 'input'; put '%if %scan(%quote(&received_vars),1)=_____DELETE__THIS__RECORD_____'; put '%then %do;'; put '_____DELETE__THIS__RECORD_____: $3.'; put '%end;'; put '&input;'; put 'if _error_ then stop;'; put 'run;'; put '/* get log back */'; put 'proc printto log=&logloc;run;'; put 'data _null_; infile tmp; input; putlog _infile_;run;'; put '/* scan log for invalid data warnings */'; put 'data _null_;'; put 'infile tmp;'; put 'input;'; put 'length msg1 msg2 msg3 msg4 msg5 msg url $32767;'; put 'if index(_infile_,''NOTE: Invalid data for'') then do;'; put 'msg1=_infile_;'; put 'input;'; put 'msg2=_infile_;'; put 'input;'; put 'msg3=_infile_;'; put 'input;'; put 'msg4=_infile_;'; put 'input;'; put 'msg5=_infile_;'; put 'url=symget(''url'');'; put 'msg=catx(''\n'',msg1,msg2,msg3,msg4,msg5,''\n'',url);'; put 'call symputx(''msg'',msg);'; put 'stop;'; put 'end;'; put 'run;'; put '%mpe_loadfail('; put 'status=FAILED'; put ',now=&now'; put ',mperef=&mperef'; put ',reason_txt=%superq(msg)'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%return;'; put '%end;'; put '/* check that the table is unique on PK */'; put 'proc sort data=work.STAGING_DS dupout=work.MPE_DUPS (keep=&pk) nodupkey;'; put 'by &pk;'; put 'run;'; put '%if %mf_getattrn(work.MPE_DUPS,NLOBS)>0 %then %do;'; put '%local duplist;'; put 'data _null_;'; put 'set work.mpe_dups;'; put '%do i=1 %to %sysfunc(countw(&pk));'; put '%let iWord=%scan(&pk,&i);'; put 'call symputx(''duplist'',symget(''duplist'')!!'; put '" &iWord="!!cats(&iWord));'; put '%end;'; put 'run;'; put '%let msg=This upload contains duplicates on the Primary Key columns %trim('; put ')(&pk) \n Please remove the duplicates and try again. %trim('; put ')\n &duplist \n ;'; put '%mp_abort(msg=%superq(msg),mac=mpe_loader.sas);'; put '%return;'; put '%end;'; put '%if &syscc gt 4 %then %do;'; put '%let msg=SYSCC=&syscc prior to post edit hook (%superq(syserrortext));'; put '%mpe_loadfail('; put 'status=FAILED - &syscc'; put ',now=&now'; put ',mperef=&mperef'; put ',reason_txt=%superq(msg)'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%return;'; put '%end;'; put '/* If a Complex Excel Upload, needs to have the load ref added to the table */'; put '%mpe_xlmapvalidate(&mperef,work.staging_ds,&mpelib,&orig_libds)'; put '/* Run the Post Edit Hook prior to creation of staging folder */'; put '%mpe_runhook(POST_EDIT_HOOK)'; put '/* stop if err */'; put '%if &syscc gt 4 %then %do;'; put '%let msg=ERR in post edit hook (&post_edit_hook);'; put '%mpe_loadfail('; put 'status=FAILED - &syscc'; put ',now=&now'; put ',mperef=&mperef'; put ',reason_txt=%quote(&msg)'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%return;'; put '%end;'; put '/**'; put '* send to approve process'; put '*/'; put '/* create a dataset key (datetime plus 3 digit random number plus PID) */'; put '/* send dataset to approvals subfolder with same name as subfolder */'; put 'libname approval "&mpelocapprovals/&mperef";'; put 'data approval.&mperef;'; put 'set work.staging_ds;'; put 'run;'; put 'proc export data=approval.&mperef'; put 'outfile="&mpelocapprovals/&mperef/&mperef..csv"'; put 'dbms=csv'; put 'replace;'; put 'run;'; put '/* update the control dataset with relevant info */'; put 'data append_app;'; put 'if 0 then set &mpelib..mpe_submit;/* get formats */'; put 'call missing (of _all_);'; put 'TABLE_ID="&mperef";'; put 'submit_status_cd=''SUBMITTED'';'; put 'submitted_by_nm="%mf_getuser()";'; put 'base_lib="&libref";'; put 'base_ds="&ds";'; put 'submitted_on_dttm=&now;'; put 'submitted_reason_txt=symget(''submitted_reason_txt'');'; put 'input_vars=%mf_getattrn(approval.&mperef,NVARS);'; put 'input_obs=%mf_getattrn(approval.&mperef,NLOBS);'; put 'num_of_approvals_required=&NUM_OF_APPROVALS_REQUIRED;'; put 'num_of_approvals_remaining=&NUM_OF_APPROVALS_REQUIRED;'; put 'reviewed_by_nm='''';'; put 'reviewed_on_dttm=.;'; put 'run;'; put '%mp_lockanytable(LOCK,lib=&mpelib,ds=mpe_submit,'; put 'ref=%str(&mperef update in &_program),'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'proc append base= &mpelib..mpe_submit data=append_app;'; put 'run;'; put '%mp_lockanytable(UNLOCK,'; put 'lib=&mpelib,ds=mpe_submit,'; put 'ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put '/* send email to REVIEW members */'; put '%put sending mpe_alerts;'; put '%mpe_alerts(alert_event=SUBMITTED'; put ', alert_lib=&libref'; put ', alert_ds=&ds'; put ', dsid=&mperef'; put ')'; put '/* DISABLE EMAIL FOR NOW'; put '%let b2=REASON: %quote(&submitted_reason_txt);'; put '%local URLNOTES;'; put '%if %length(¬es)>0 %then %let URLNOTES=%quote(%sysfunc(urlencode(¬es)));'; put '%let b3=%str(Click to review / approve: )%trim('; put ')%str(http://&_srvname:&_srvport&_url?_PROGRAM=/Web/approvals&)%trim('; put ')TABLEID=&dsid%str(&)BASETABLE=&libref..&ds%str(&)NOTES=&URLNOTES;'; put '%let b4=%str(Reference ID: &mperef);'; put '*/'; put '%put mpe_loader finishing up with syscc=&syscc;'; put '%if &syscc le 4 %then %do;'; put '%local dur;'; put 'data _null_;'; put 'now=symget(''now'');'; put 'dur=%sysfunc(datetime())-&now;'; put 'call symputx(''dur'',dur,''l'');'; put 'putlog ''Updating mpe_loads with the following query:'';'; put 'putlog "update &mpelib..mpe_loads set STATUS=''SUCCESS''";'; put 'putlog " , duration=" dur;'; put 'putlog " , processed_dttm=" now;'; put 'putlog " , approvals = ''&libref..&ds''";'; put 'putlog " where CSV_DIR=''&mperef'';";'; put 'run;'; put 'proc sql;'; put 'update &mpelib..mpe_loads set STATUS=''SUCCESS'''; put ', duration=&dur'; put ', processed_dttm=&now'; put ', approvals = "&libref..&ds"'; put 'where CSV_DIR="&mperef";'; put '%end;'; put '%else %do;'; put '%mpe_loadfail('; put 'status="FAILED - &syscc"'; put ',now=&now'; put ',approvals=&libref..&ds'; put ',mperef=&mperef'; put ',dc_dttmtfmt=&dc_dttmtfmt.'; put ')'; put '%return;'; put '%end;'; put '%mend mpe_loader;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '%macro mp_filtergenerate(inds,outref=filter);'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc - on macro entry)'; put ')'; put 'filename &outref temp;'; put '%if %mf_nobs(&inds)=0 %then %do;'; put '/* ensure we have a default filter */'; put 'data _null_;'; put 'file &outref;'; put 'put ''1=1'';'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc sort data=&inds;'; put 'by SUBGROUP_ID;'; put 'run;'; put 'data _null_;'; put 'file &outref lrecl=32800;'; put 'set &inds end=last;'; put 'by SUBGROUP_ID;'; put 'if _n_=1 then put ''(('';'; put 'else if first.SUBGROUP_ID then put +1 GROUP_LOGIC ''('';'; put 'else put +2 SUBGROUP_LOGIC;'; put 'put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;'; put 'if last.SUBGROUP_ID then put '')''@;'; put 'if last then put '')'';'; put 'run;'; put '%end;'; put '%mend mp_filtergenerate;'; put '%macro mpe_filtermaster(mode,libds,'; put 'dclib=,'; put 'filter_rk=-1,'; put 'outref=0,'; put 'outds=work.query'; put ');'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%let mode=%upcase(&mode);'; put '%let libds=%upcase(&libds);'; put '%mp_abort(iftrue= ('; put '&mode ne EDIT and &mode ne VIEW and &mode ne DLOAD and &mode ne ULOAD'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid MODE: &mode)'; put ')'; put '%mp_abort(iftrue= (&outref = 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Please provide a fileref!)'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc)'; put ')'; put 'filename &outref temp;'; put '/* ensure outputs exist */'; put 'data _null_;'; put 'file &outref;'; put 'put '' '';'; put 'run;'; put 'data &outds;'; put 'set &dclib..mpe_filtersource;'; put 'stop;'; put 'run;'; put '/**'; put '* Deal with FILTER_RK first'; put '*/'; put '%if &filter_rk gt 0 %then %do;'; put 'data _null_;'; put 'file &outref;'; put 'put ''( ''@@;'; put 'set &dclib..mpe_filteranytable(where=(filter_rk=&filter_rk));'; put 'call symputx(''filter_hash'',filter_hash,''l'');'; put 'run;'; put 'proc sort data=&dclib..mpe_filtersource(where=(filter_hash="&filter_hash"))'; put 'out=&outds(drop=filter_hash filter_line processed_dttm);'; put 'by filter_line;'; put 'run;'; put '%mp_filtergenerate(&outds,outref=&outref)'; put '%end;'; put '/* Now filter for current records if the MODE is EDIT or DLOAD */'; put '%local varfrom varto;'; put '%let varfrom=0;'; put 'proc sql;'; put 'select coalescec(var_txfrom,''0''), var_txto into: varfrom,:varto'; put 'from &dclib..MPE_TABLES'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and libref="%scan(&libds,1,.)" and dsn="%scan(&libds,2,.)";'; put '%put &=varfrom;'; put '%put &=varto;'; put '/**'; put '* Check if the date variables were mentioned in the query'; put '* This is a trigger for serving a historical view instead of current'; put '* we skip this part when checking an ULOAD as there are no date vars'; put '*/'; put '%if &varfrom ne 0 and (&mode=EDIT or &mode=DLOAD) %then %do;'; put '%local validityvars;'; put 'proc sql;'; put 'select count(*) into: validityvars'; put 'from &outds'; put 'where variable_nm in ("&varfrom","&varto");'; put '%if &validityvars=0 %then %do;'; put 'data _null_;'; put 'file &outref mod;'; put 'length filter_text $32767;'; put 'varfrom=symget(''varfrom'');'; put 'varto=symget(''varto'');'; put 'filter_text=catx('' '','; put '''("%sysfunc(datetime(),'',"%mf_fmtdttm()",'')"dt <'',varto,'')'''; put ');'; put 'if &filter_rk > 0 then put ''AND '' filter_text;'; put 'else put filter_text;'; put 'run;'; put '%end;'; put '%end;'; put '/**'; put '* Now do Row Level Security based on the MPE_ROW_LEVEL_SECURITY table'; put '*/'; put '/* first determine users group membership */'; put '%mpe_getgroups(user=%mf_getuser(),outds=work.groups)'; put '%local admin_check;'; put 'proc sql;'; put 'select count(*) into: admin_check'; put 'from work.groups'; put 'where groupname="&mpeadmins";'; put '%put &sysmacroname: &=admin_check &=mpeadmins;'; put '%if &admin_check=0 %then %do;'; put '%local scopeval;'; put '%if &mode=DLOAD %then %let scopeval=VIEW;'; put '%if &mode=ULOAD %then %let scopeval=EDIT;'; put '%else %let scopeval=&mode;'; put '/* extract relevant rows */'; put '%local rlsds;'; put '%let rlsds=%mf_getuniquename();'; put 'proc sql;'; put 'create table work.&rlsds as'; put 'select rls_group,'; put 'rls_group_logic as group_logic,'; put 'rls_subgroup_logic as subgroup_logic,'; put 'rls_subgroup_id as subgroup_id,'; put 'rls_variable_nm as variable_nm,'; put 'rls_operator_nm as operator_nm,'; put 'rls_raw_value as raw_value'; put 'from &mpelib..mpe_row_level_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and rls_scope in ("&scopeval",''ALL'')'; put 'and upcase(rls_group) in (select upcase(groupname) from work.groups)'; put 'and rls_libref="%scan(&libds,1,.)"'; put 'and rls_table="%scan(&libds,2,.)"'; put 'and rls_active=1'; put 'order by rls_group,rls_subgroup_id;'; put '%if &sqlobs>0 %then %do;'; put '/* check if we currently have filter or not */'; put 'data ;'; put 'infile &outref end=eof;'; put 'input;'; put 'if _n_=1 and eof and cats(_infile_)='''' then newfilter=1;'; put 'output;'; put 'stop;'; put 'run;'; put 'data _null_;'; put 'set &syslast;'; put 'file &outref mod;'; put 'if newfilter=1 then put ''('';'; put 'else put ''AND ('';'; put 'run;'; put '/* loop through and apply filters for each group membership */'; put '%local fref ds;'; put '%let fref=%mf_getuniquefileref();'; put '%let ds=%mf_getuniquename();'; put 'proc sql noprint;'; put 'select distinct rls_group into : group1 -'; put 'from work.&rlsds;'; put '%do i=1 %to &sqlobs;'; put 'data work.&ds;'; put 'set work.&rlsds;'; put 'where rls_group="&&group&i";'; put 'drop rls_group;'; put 'run;'; put '%mp_filtergenerate(&ds,outref=&fref)'; put 'data _null_;'; put 'infile &fref;'; put 'file &outref mod;'; put 'input;'; put 'if &i>1 and _n_=1 then put '' OR '';'; put 'put _infile_;'; put 'run;'; put '%end;'; put 'data _null_;'; put 'file &outref mod;'; put 'put '')'';'; put 'run;'; put '%end; /* &sqlobs>0 */'; put '%else %do;'; put '%put &sysmacroname: no matching groups;'; put 'data _null_;'; put 'set work.groups;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=&sysmacroname'; put ',msg=%str(Row Level Security Generation Error)'; put ')'; put '%end; /* &admin_check=0 */'; put '%put leaving &sysmacroname with the following query:;'; put '%local empty;'; put '%let empty=0;'; put 'data _null_;'; put 'infile &outref end=eof;'; put 'input;'; put 'putlog _infile_;'; put 'if _n_=1 and eof and cats(_infile_)='''' then do;'; put 'put ''1=1'';'; put 'call symputx(''empty'',1,''l'');'; put 'end;'; put 'run;'; put '%if &empty=1 %then %do;'; put 'data _null_;'; put 'file &outref;'; put 'put ''1=1'';'; put 'run;'; put '%end;'; put '%mend mpe_filtermaster;'; put '%macro removecolsfromwork(col);'; put '/* only an issue if debug mode enabled */'; put '%global _debug;'; put '%if &_debug ge 131 %then %do;'; put '%let col=%upcase(&col);'; put '%local memlist;'; put 'proc sql noprint;'; put 'select distinct memname into: memlist'; put 'separated by '' '''; put 'from dictionary.columns'; put 'where libname=''WORK'' and upcase(name)="&col";'; put '%if %mf_isblank(&memlist) %then %return;'; put '%mp_dropmembers(list=&memlist)'; put '%end;'; put '%mend removecolsfromwork;'; put '%macro mp_binarycopy('; put 'inloc= /* full path and filename of the object to be copied */'; put ',outloc= /* full path and filename of object to be created */'; put ',inref=____in /* override default to use own filerefs */'; put ',outref=____out /* override default to use own filerefs */'; put ',mode=CREATE'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%local mod;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if &mode=APPEND %then %let mod=mod;'; put '/* these IN and OUT filerefs can point to anything */'; put '%if &inref = ____in %then %do;'; put 'filename &inref &inloc lrecl=1048576 ;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref &outloc lrecl=1048576 &mod;'; put '%end;'; put '/* copy the file byte-for-byte */'; put 'data _null_;'; put 'infile &inref lrecl=1 recfm=n;'; put 'file &outref &mod recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%if &inref = ____in %then %do;'; put 'filename &inref clear;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref clear;'; put '%end;'; put '%mend mp_binarycopy;'; put '%macro mcf_init(func'; put ')/*/STORE SOURCE*/;'; put '%if not (%symexist(SASJS_PREFIX)) %then %do;'; put '%global SASJS_PREFIX;'; put '%let SASJS_PREFIX=SASJS;'; put '%end;'; put '%let func=%upcase(&func);'; put '/* the / character is just a seperator */'; put '%global &sasjs_prefix._FUNCTIONS;'; put '%if %index(&&&sasjs_prefix._FUNCTIONS,&func/)>0 %then %do;'; put '1'; put '%return;'; put '%end;'; put '%else %do;'; put '%let &sasjs_prefix._FUNCTIONS=&&&sasjs_prefix._FUNCTIONS &func/;'; put '0'; put '%end;'; put '%mend mcf_init;'; put '%macro mcf_getfmttype(wrap=NO'; put ',insert_cmplib=DEPRECATED'; put ',lib=WORK'; put ',cat=SASJS'; put ',pkg=UTILS'; put ')/*/STORE SOURCE*/;'; put '%local i var cmpval found;'; put '%if %mcf_init(mcf_getfmttype)=1 %then %return;'; put '%if &wrap=YES %then %do;'; put 'proc fcmp outlib=&lib..&cat..&pkg;'; put '%end;'; put 'function mcf_getfmttype(fmtnm $) $8;'; put 'if substr(fmtnm,1,1)=''$'' then return(''CHAR'');'; put 'else do;'; put '/* extract NAME */'; put 'length fmt $32;'; put 'fmt=scan(fmtnm,1,''.'');'; put 'do while ('; put 'substr(fmt,length(fmt),1) in (''1'',''2'',''3'',''4'',''5'',''6'',''7'',''8'',''9'',''0'')'; put ');'; put 'if length(fmt)=1 then fmt=''W'';'; put 'else fmt=substr(fmt,1,length(fmt)-1);'; put 'end;'; put '/* apply lookups */'; put 'if cats(fmt) in (''DATETIME'',''B8601DN'',''B8601DN'',''B8601DT'',''B8601DT'''; put ',''B8601DZ'',''B8601DZ'',''DATEAMPM'',''DTDATE'',''DTMONYY'',''DTWKDATX'',''DTYEAR'''; put ',''DTYYQC'',''E8601DN'',''E8601DN'',''E8601DT'',''E8601DT'',''E8601DZ'',''E8601DZ'''; put ',''NLDATM'') then return(''DATETIME'');'; put 'else if fmt in (''DATE'',''YYMMDD'',''B8601DA'',''B8601DA'',''DAY'',''DDMMYY'''; put ',''DDMMYYB'',''DDMMYYC'',''DDMMYYD'',''DDMMYYN'',''DDMMYYP'',''DDMMYYS'',''DDMMYYx'''; put ',''DOWNAME'',''E8601DA'',''E8601DA'',''JULDAY'',''JULIAN'',''MMDDYY'',''MMDDYYB'''; put ',''MMDDYYC'',''MMDDYYD'',''MMDDYYN'',''MMDDYYP'',''MMDDYYS'',''MMDDYYx'',''MMYY'''; put ',''MMYYC'',''MMYYD'',''MMYYN'',''MMYYP'',''MMYYS'',''MMYYx'',''MONNAME'',''MONTH'''; put ',''MONYY'',''PDJULG'',''PDJULI'',''QTR'',''QTRR'',''WEEKDATE'',''WEEKDATX'',''WEEKDAY'''; put ',''WEEKU'',''WEEKV'',''WEEKW'',''WORDDATE'',''WORDDATX'',''YEAR'',''YYMM'',''YYMMC'''; put ',''YYMMD'',''YYMMDDB'',''YYMMDDC'',''YYMMDDD'',''YYMMDDN'',''YYMMDDP'',''YYMMDDS'''; put ',''YYMMDDx'',''YYMMN'',''YYMMP'',''YYMMS'',''YYMMx'',''YYMON'',''YYQ'',''YYQC'',''YYQD'''; put ',''YYQN'',''YYQP'',''YYQR'',''YYQRC'',''YYQRD'',''YYQRN'',''YYQRP'',''YYQRS'',''YYQRx'''; put ',''YYQS'',''YYQx'',''YYQZ'',''NLDATE'') then return(''DATE'');'; put 'else if fmt in (''TIME'',''B8601LZ'',''B8601LZ'',''B8601TM'',''B8601TM'',''B8601TZ'''; put ',''B8601TZ'',''E8601LZ'',''E8601LZ'',''E8601TM'',''E8601TM'',''E8601TZ'',''E8601TZ'''; put ',''HHMM'',''HOUR'',''MMSS'',''TIMEAMPM'',''TOD'') then return(''TIME'');'; put 'else return(''NUM'');'; put 'end;'; put 'endsub;'; put '%if &wrap=YES %then %do;'; put 'quit;'; put '%end;'; put '/* insert the CMPLIB if not already there */'; put '%let cmpval=%sysfunc(getoption(cmplib));'; put '%let found=0;'; put '%do i=1 %to %sysfunc(countw(&cmpval,%str( %(%))));'; put '%let var=%scan(&cmpval,&i,%str( %(%)));'; put '%if &var=&lib..&cat %then %let found=1;'; put '%end;'; put '%if &found=0 %then %do;'; put 'options insert=(CMPLIB=(&lib..&cat));'; put '%end;'; put '%mend mcf_getfmttype;'; put '%macro mf_getVarFormat(libds /* two level ds name */'; put ', var /* variable name from which to return the format */'; put ', force=0'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vformat rc vlen vtype;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable format */'; put '%if(&vnum > 0) %then %let vformat=%sysfunc(varfmt(&dsid, &vnum));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let rc = %sysfunc(close(&dsid));'; put '%return;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* supply a default if no format available */'; put '%if %length(&vformat)<2 & &force=1 %then %do;'; put '%let vlen = %sysfunc(varlen(&dsid, &vnum));'; put '%let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%if &vtype=C %then %let vformat=$&vlen..;'; put '%else %let vformat=best.;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable format */'; put '&vformat'; put '%mend mf_getVarFormat;'; put '%macro mf_getvartype(libds /* two level name */'; put ', var /* variable name from which to return the type */'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vtype rc;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid. > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable type (C/N) */'; put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let vtype = %str( );'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable type */'; put '&vtype'; put '%mend mf_getvartype;'; put '%macro mp_ds2csv(ds'; put ',dlm=COMMA'; put ',outref=0'; put ',outfile='; put ',outencoding=0'; put ',headerformat=LABEL'; put ',termstr=CRLF'; put ')/*/STORE SOURCE*/;'; put '%local outloc delim i varlist var vcnt vat dsv vcom vmiss fmttype vfmt;'; put '%if not %sysfunc(exist(&ds)) %then %do;'; put '%put %str(WARN)ING: &ds does not exist;'; put '%return;'; put '%end;'; put '%if %index(&ds,.)=0 %then %let ds=WORK.&ds;'; put '%if &outencoding=0 %then %let outencoding=;'; put '%else %let outencoding=encoding=&outencoding;'; put '%if &outref=0 %then %let outloc=&outfile;'; put '%else %let outloc=&outref;'; put '%if &headerformat=SASJS %then %do;'; put '%let delim=",";'; put '%let termstr=CRLF;'; put '%mcf_getfmttype(wrap=YES)'; put '%end;'; put '%else %if &dlm=COMMA %then %let delim=",";'; put '%else %let delim=";";'; put '/* credit to mjsq - https://stackoverflow.com/a/55642267 */'; put '/* first get headers */'; put 'data _null_;'; put 'file &outloc &outencoding lrecl=32767 termstr=&termstr;'; put 'length header $ 2000 varnm vfmt $32 dlm $1 fmttype $8;'; put 'call missing(of _all_);'; put 'dsid=open("&ds.","i");'; put 'num=attrn(dsid,"nvars");'; put 'dlm=&delim;'; put 'do i=1 to num;'; put 'varnm=upcase(varname(dsid,i));'; put 'if i=num then dlm='''';'; put '%if &headerformat=NAME %then %do;'; put 'header=cats(varnm,dlm);'; put '%end;'; put '%else %if &headerformat=LABEL %then %do;'; put 'header = cats(coalescec(varlabel(dsid,i),varnm),dlm);'; put '%end;'; put '%else %if &headerformat=SASJS %then %do;'; put 'vlen=varlen(dsid,i);'; put 'if vartype(dsid,i)=''C'' then header=cats(varnm,'':$char'',vlen,''.'');'; put 'else do;'; put 'vfmt=coalescec(varfmt(dsid,i),''0'');'; put 'fmttype=mcf_getfmttype(vfmt);'; put 'if fmttype=''DATE'' then header=cats(varnm,'':date9.'');'; put 'else if fmttype=''DATETIME'' then header=cats(varnm,'':E8601DT26.6'');'; put 'else if fmttype=''TIME'' then header=cats(varnm,'':TIME12.'');'; put '/**'; put '* there is not much point importing a short length numeric like this,'; put '* eg with best4., as the resulting variable will still be stored as'; put '* length 8. We need a length or format statement to ensure variable'; put '* is creatd with the smaller length...'; put '**/'; put 'else if vlen<8 then header=cats(varnm,'':best'',vlen,''.'');'; put 'else header=cats(varnm,'':best.'');'; put 'end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Invalid headerformat value (&headerformat);'; put '%return;'; put '%end;'; put 'put header @;'; put 'end;'; put 'rc=close(dsid);'; put 'run;'; put '%let varlist=%mf_getvarlist(&ds);'; put '%let vcnt=%sysfunc(countw(&varlist));'; put '/**'; put '* The $quote modifier (without a width) will take the length from the variable'; put '* and increase by two. However this will lead to truncation where the value'; put '* contains double quotes (which are doubled up). To get around this, scan the'; put '* data to see the max number of double quotes, so that the appropriate width'; put '* can be applied in the subsequent step.'; put '*/'; put 'data _null_;'; put 'set &ds end=last;'; put '%do i=1 %to &vcnt;'; put '%let var=%scan(&varlist,&i);'; put '%local vlen&i;'; put '%if %mf_getvartype(&ds,&var)=C %then %do;'; put '%let dsv1=%mf_getuniquename(prefix=csvcol1_);'; put '%let dsv2=%mf_getuniquename(prefix=csvcol2_);'; put 'retain &dsv1 0;'; put '&dsv2=length(&var)+countc(&var,''"'');'; put 'if &dsv2>&dsv1 then &dsv1=&dsv2;'; put 'if last then call symputx('; put '"vlen&i"'; put '/* should be no shorter than varlen, and no longer than 32767 */'; put ',cats(''$quote'',min(&dsv1+2,32767),''.'')'; put ',''l'''; put ');'; put '%end;'; put '%end;'; put '%let vat=@;'; put '%let vcom=&delim;'; put '%let vmiss=%mf_getuniquename(prefix=csvcol3_);'; put '/* next, export data */'; put 'data _null_;'; put 'set &ds.;'; put 'file &outloc mod dlm=&delim dsd &outencoding lrecl=32767 termstr=&termstr;'; put 'if _n_=1 then &vmiss='' '';'; put '%do i=1 %to &vcnt;'; put '%let var=%scan(&varlist,&i);'; put '%if &i=&vcnt %then %do;'; put '%let vat=;'; put '%let vcom=;'; put '%end;'; put '%if %mf_getvartype(&ds,&var)=N %then %do;'; put '%if &headerformat = SASJS %then %do;'; put '%let vcom=&delim;'; put '%let fmttype=%sysfunc(mcf_getfmttype(%mf_getvarformat(&ds,&var)0));'; put '%if &fmttype=DATE %then %let vfmt=DATE9.;'; put '%else %if &fmttype=DATETIME %then %let vfmt=E8601DT26.6;'; put '%else %if &fmttype=TIME %then %let vfmt=TIME12.;'; put '%else %do;'; put '%let vfmt=;'; put '%let vcom=;'; put '%end;'; put '%end;'; put '%else %let vcom=;'; put '/* must use period - in order to work in both 9.4 and Viya 3.5 */'; put 'if missing(&var) and &var ne %sysfunc(getoption(MISSING)) then do;'; put '&vmiss=cats(''.'',&var);'; put 'put &vmiss &vat;'; put 'end;'; put 'else put &var &vfmt &vcom &vat;'; put '%end;'; put '%else %do;'; put '%if &i ne &vcnt %then %let vcom=&delim;'; put 'put &var &&vlen&i &vcom &vat;'; put '%end;'; put '%end;'; put 'run;'; put '%mend mp_ds2csv;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Sends a changeset to staging area'; put '@details This is the service that is called when submitting a new edit.'; put '

Service Inputs

'; put '
jsdata
'; put 'This is the staged data table, plus an _____DELETE__THIS__RECORD_____ column'; put '
SASControlTable
'; put '|ACTION:$char4.|MESSAGE:$char1.|LIBDS:$char19.|'; put '|---|---|---|'; put '|LOAD|User-Provided message|LIBREF.DATASET_NAME|'; put '

SAS Macros

'; put '@li mf_getuser.sas'; put '@li mf_nobs.sas'; put '@li dc_assignlib.sas'; put '@li mf_verifymacvars.sas'; put '@li mf_mkdir.sas'; put '@li mf_getuniquefileref.sas'; put '@li mpe_loader.sas'; put '@li mpe_filtermaster.sas'; put '@li mp_abort.sas'; put '@li mp_binarycopy.sas'; put '@li mp_cntlout.sas'; put '@li mp_ds2csv.sas'; put '@li mf_getplatform.sas'; put '@li removecolsfromwork.sas'; put '@li mpeinit.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%global approver; %let approver=;'; put '%global libref; %let libref=;'; put '%global dsn; %let dsn=;'; put '%global user; %let user=;'; put '%let user=%mf_getuser();'; put '/* load parameters */'; put 'data _null_;'; put 'set work.sascontroltable;'; put 'call symputx(''action'',action);'; put 'call symputx(''message'',message);'; put 'libds=upcase(libds);'; put 'call symputx(''orig_libds'',libds);'; put 'is_fmt=0;'; put 'if substr(cats(reverse(libds)),1,3)=:''CF-'' then do;'; put 'libds=scan(libds,1,''-'');'; put 'putlog "Format Catalog Captured";'; put 'libds=''work.fmtextract'';'; put 'call symputx(''libds'',libds);'; put 'is_fmt=1;'; put 'end;'; put 'else call symputx(''libds'',libds);'; put 'call symputx(''is_fmt'',is_fmt);'; put 'putlog (_all_)(=);'; put 'run;'; put '%mp_cntlout('; put 'iftrue=(&is_fmt=1)'; put ',libcat=&orig_libds'; put ',fmtlist=0'; put ',cntlout=work.fmtextract'; put ')'; put '/* stream back meta info, further jquery calls will return col metadata and'; put 'actual data */'; put '%let libref=%upcase(%scan(&libds,1,.));'; put '%let dsn=%upcase(%scan(&libds,2,.));'; put '%dc_assignlib(WRITE,&libref)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc - unable to assign library &libref)'; put ')'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(mpelocapprovals libds)=0)'; put ',mac=&_program'; put ',msg=%str(Missing: mpelocapprovals libds)'; put ')'; put '%put Verify that the upload does not violate Row Level Security checks:;'; put '%mpe_filtermaster(ULOAD,&libds,'; put 'dclib=&mpelib,'; put 'outref=filtref,'; put 'outds=work.query'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc during filtering process)'; put ')'; put '/* prepare inverse query */'; put '%let tempref=%mf_getuniquefileref();'; put 'data _null_;'; put 'infile filtref end=eof;'; put 'file &tempref;'; put 'if _n_=1 then put ''where not('';'; put 'input;'; put 'put _infile_;'; put 'if eof then put '')'';'; put 'run;'; put '/* apply the query */'; put 'data work.badrecords;'; put 'set work.jsdata;'; put '%inc &tempref/source2;;'; put 'putlog (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (%mf_nobs(work.badrecords)>0)'; put ',mac=&_program'; put ',msg=%str('; put 'Security Problem - %mf_nobs(work.badrecords) unauthorised records submitted'; put ')'; put ')'; put 'PROC FORMAT;'; put 'picture yymmddhhmmss other=''%0Y%0m%0d_%0H%0M%0S'' (datatype=datetime);'; put 'RUN;'; put '/**'; put '* Create package folder and redirect the log'; put '*/'; put '/* create a dataset key (datetime plus 6 digit random number plus PID) */'; put '%let mperef=DC%left(%sysfunc(datetime(),B8601DT19.3))_%substr('; put '%sysfunc(ranuni(0)),3,6)_%substr(%str(&sysjobid ),1,4);'; put '/* get web url */'; put '%global url;'; put '%let url=localhost/SASStoredProcess;'; put '%let platform=%mf_getplatform();'; put '%put &=platform;'; put 'data _null_;'; put 'length url $128;'; put '%macro stagedata();'; put '%if &platform=SASVIYA %then %do;'; put 'if symexist(''_baseurl'') then do;'; put 'url=symget(''_baseurl'');'; put 'if subpad(url,length(url)-9,9)=''SASStudio'''; put 'then url=substr(url,1,length(url)-11);'; put 'else url="&systcpiphostname/SASJobExecution";'; put 'end;'; put 'else url="&systcpiphostname/SASJobExecution";'; put '%end;'; put '%else %if &platform=SASMETA %then %do;'; put 'rc=METADATA_GETURI("Stored Process Web App",url);'; put '%end;'; put '%mend stagedata;'; put '%stagedata()'; put 'call symputx(''url'',url);'; put 'putlog url=;'; put 'run;'; put '/* Create package folder */'; put '%let dir=&mpelocapprovals/&mperef;'; put '%mf_mkdir(&dir)'; put '/* redirect the log */'; put '%put; %put; %put log is being redirected;'; put '%put to retrieve, visit this url:; %put;%put;'; put '%let url=&url?_program=%substr(&_program'; put ',1,%length(&_program)-9)getlog%str(&)table=&mperef;'; put '%put &url;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to log redirection)'; put ')'; put 'proc printto log="&dir/weblog.txt";run;'; put 'options notes mprint;'; put 'libname approve "&dir";'; put '/* take copy of webin file */'; put 'data _null_;'; put 'if symexist(''_WEBIN_FILEREF1'') then ref=symget(''_WEBIN_FILEREF1'');'; put 'else if symexist(''sasjs_tables'') then ref=''0ref''; /* no fileref created */'; put 'else ref=''indata1'';'; put 'call symputx(''ref'',ref);'; put 'putlog ref=;'; put 'run;'; put '%mp_binarycopy(inref=&ref,outloc="&dir/_WEBIN_FILEREF1.txt",iftrue=&ref ne 0ref)'; put '/* take copy of macvars */'; put 'data _null_;'; put 'file "&dir/macvars.sas";'; put 'set sashelp.vmacro;'; put 'where scope=''GLOBAL'';'; put 'put ''%let '' name ''='' value '';'';'; put 'run;'; put 'data approve.jsdset;'; put 'length _____DELETE__THIS__RECORD_____ $3;'; put 'set jsdata;'; put 'run;'; put '/**'; put '* mf_getvarXXX functions will fail if the target is locked - so take a copy'; put '* and reference that (this will also explicitly throw the lock situation)'; put '*/'; put '%let dscopy=work.dscopy;'; put 'data &dscopy;'; put 'set &libds;'; put 'stop;'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Issue getting lock on &libds)'; put ')'; put '%mp_ds2csv(approve.jsdset'; put ',dlm=COMMA'; put ',outfile="&dir/&orig_libds..csv"'; put ',outencoding="UTF-8"'; put ',headerformat=NAME'; put ',termstr=CRLF'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc when writing the CSV)'; put ')'; put '%mpe_loader(mperef=&mperef'; put ',submitted_reason_txt=%superq(message)'; put ',approver=%quote(%trim(&approver))'; put ',url=%superq(url)'; put ',dc_dttmtfmt=&dc_dttmtfmt'; put ')'; put '%mp_abort(mode=INCLUDE)'; put '%mp_abort('; put 'iftrue=(%sysfunc(fileexist(%sysfunc(pathname(work))/mf_abort.error))=1)'; put ',mac=&_program..sas'; put ',msg=%str(mf_abort.error=1)'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '/* send relevant SUCCESS values */'; put 'data sasparams;'; put 'STATUS=''SUCCESS'';'; put 'DSID="&mperef";'; put 'url="&url";'; put 'run;'; put '%removecolsfromwork(___TMP___MD5)'; put '%webout(OPEN)'; put '%webout(OBJ,sasparams)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let path=services/hooks; %let service=mpe_column_level_security_postedit; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Post Edit Hook script for the MPE_COLUMN_LEVEL_SECURITY table'; put '@details Post edit hooks provide additional backend validation for user'; put 'provided data. The incoming dataset is named `work.staging_ds` and is'; put 'provided in mpe_loader.sas.'; put 'Available macro variables:'; put '@li DC_LIBREF - The DC control library'; put '@li LIBREF - The library of the dataset being edited (is assigned)'; put '@li DS - The dataset being edited'; put 'This validation checks the incoming column_level_security settings to ensure'; put 'each individual filter is valid'; put '**/'; put '/* check scope values and ensure uppercasing */'; put '%let errflag=0;'; put '%let errmsg=;'; put 'data work.staging_ds;'; put 'set work.staging_ds;'; put 'cls_scope=upcase(cls_scope);'; put 'CLS_LIBREF=upcase(CLS_LIBREF);'; put 'cls_table=upcase(CLS_TABLE);'; put 'CLS_VARIABLE_NM=upcase(CLS_VARIABLE_NM);'; put 'if cls_scope not in (''ALL'',''VIEW'',''EDIT'') then do;'; put 'call symputx(''errflag'',1);'; put 'call symputx(''errmsg'',"Invalid scope: "!!cls_scope);'; put 'stop;'; put 'end;'; put 'if cls_hide<1 then cls_hide=0;'; put 'else cls_hide=1;'; put 'if CLS_ACTIVE<1 then CLS_ACTIVE=0;'; put 'else CLS_ACTIVE=1;'; put 'run;'; put '%mp_abort(iftrue=(&errflag=1)'; put ',mac=mpe_column_level_security_postedit'; put ',msg=%superq(errmsg)'; put ')'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=mpe_row_level_security_postedit; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_getvartype(libds /* two level name */'; put ', var /* variable name from which to return the type */'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vtype rc;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid. > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable type (C/N) */'; put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let vtype = %str( );'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable type */'; put '&vtype'; put '%mend mf_getvartype;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '%macro mp_filtergenerate(inds,outref=filter);'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc - on macro entry)'; put ')'; put 'filename &outref temp;'; put '%if %mf_nobs(&inds)=0 %then %do;'; put '/* ensure we have a default filter */'; put 'data _null_;'; put 'file &outref;'; put 'put ''1=1'';'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc sort data=&inds;'; put 'by SUBGROUP_ID;'; put 'run;'; put 'data _null_;'; put 'file &outref lrecl=32800;'; put 'set &inds end=last;'; put 'by SUBGROUP_ID;'; put 'if _n_=1 then put ''(('';'; put 'else if first.SUBGROUP_ID then put +1 GROUP_LOGIC ''('';'; put 'else put +2 SUBGROUP_LOGIC;'; put 'put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;'; put 'if last.SUBGROUP_ID then put '')''@;'; put 'if last then put '')'';'; put 'run;'; put '%end;'; put '%mend mp_filtergenerate;'; put '%macro mp_filtervalidate(inref,targetds,abort=YES,outds=work.mp_filtervalidate);'; put '%mp_abort(iftrue= (&syscc ne 0 or &syserr ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc / syserr=&syserr - on macro entry)'; put ')'; put '%local fref1;'; put '%let fref1=%mf_getuniquefileref();'; put 'data _null_;'; put 'file &fref1;'; put 'infile &inref end=eof;'; put 'if _n_=1 then do;'; put 'put "proc sql;";'; put 'put "validate select * from &targetds";'; put 'put "where " ;'; put 'end;'; put 'input;'; put 'put _infile_;'; put 'putlog _infile_;'; put 'if eof then put ";quit;";'; put 'run;'; put '%inc &fref1;'; put 'data &outds;'; put 'if &sqlrc or &syscc or &syserr then do;'; put 'REASON_CD=''VALIDATION_ERR''!!''OR: ''!!'; put 'coalescec(symget(''SYSERRORTEXT''),symget(''SYSWARNINGTEXT''));'; put 'output;'; put 'end;'; put 'else stop;'; put 'run;'; put 'filename &fref1 clear;'; put '%if %mf_nobs(&outds)>0 %then %do;'; put '%if &abort=YES %then %do;'; put 'data _null_;'; put 'set &outds;'; put 'call symputx(''REASON_CD'',reason_cd,''l'');'; put 'stop;'; put 'run;'; put '%mp_abort('; put 'mac=&sysmacroname,'; put 'msg=%str(Filter validation issues.)'; put ')'; put '%end;'; put '%let syscc=1008;'; put '%end;'; put '%mend mp_filtervalidate;'; put '%macro mp_filtercheck(inds,targetds=,outds=work.badrecords,abort=YES);'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc - on macro entry)'; put ')'; put '/* Validate input column */'; put '%local vtype;'; put '%let vtype=%mf_getvartype(&inds,RAW_VALUE);'; put '%mp_abort(iftrue=(&abort=YES and &vtype ne C),'; put 'mac=&sysmacroname,'; put 'msg=%str(%str(ERR)OR: RAW_VALUE must be character)'; put ')'; put '%if &vtype ne C %then %do;'; put '%put &sysmacroname: RAW_VALUE must be character;'; put '%let syscc=42;'; put '%return;'; put '%end;'; put '/**'; put '* Sanitise the values based on valid value lists, then strip out'; put '* quotes, commas, periods and spaces.'; put '*/'; put '%local reason_cd nobs;'; put '%let nobs=0;'; put 'data &outds;'; put '/*length GROUP_LOGIC SUBGROUP_LOGIC $3 SUBGROUP_ID 8 VARIABLE_NM $32'; put 'OPERATOR_NM $10 RAW_VALUE $4000;*/'; put 'set &inds end=last;'; put 'length reason_cd $4032 vtype vtype2 $1 vnum dsid 8 tmp $4000;'; put 'drop tmp;'; put '/* quick check to ensure column exists */'; put 'if upcase(VARIABLE_NM) not in'; put '(%upcase(%mf_getvarlist(&targetds,dlm=%str(,),quote=SINGLE)))'; put 'then do;'; put 'REASON_CD="Variable "!!cats(variable_nm)!!" not in &targetds";'; put 'putlog REASON_CD= VARIABLE_NM=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'return;'; put 'end;'; put '/* need to open the dataset to get the column type */'; put 'retain dsid;'; put 'if _n_=1 then dsid=open("&targetds","i");'; put 'if dsid>0 then do;'; put 'vnum=varnum(dsid,VARIABLE_NM);'; put 'if vnum<1 then do;'; put '/* should not happen as was also tested for above */'; put 'REASON_CD=cats("Variable (",VARIABLE_NM,") not found in &targetds");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'goto endstep;'; put 'end;'; put '/* now we can get the type */'; put 'else vtype=vartype(dsid,vnum);'; put 'end;'; put 'else do;'; put 'REASON_CD=cats("Could not open &targetds");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'stop;'; put 'end;'; put '/* closed list checks */'; put 'if GROUP_LOGIC not in (''AND'',''OR'') then do;'; put 'REASON_CD=''GROUP_LOGIC should be AND/OR, not:''!!cats(GROUP_LOGIC);'; put 'putlog REASON_CD= GROUP_LOGIC=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'if SUBGROUP_LOGIC not in (''AND'',''OR'') then do;'; put 'REASON_CD=''SUBGROUP_LOGIC should be AND/OR, not:''!!cats(SUBGROUP_LOGIC);'; put 'putlog REASON_CD= SUBGROUP_LOGIC=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'if mod(SUBGROUP_ID,1) ne 0 then do;'; put 'REASON_CD=''SUBGROUP_ID should be integer, not ''!!cats(subgroup_id);'; put 'putlog REASON_CD= SUBGROUP_ID=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'if OPERATOR_NM not in'; put '(''='',''>'',''<'',''<='',''>='',''NE'',''GE'',''LE'',''BETWEEN'',''IN'',''NOT IN'',''CONTAINS'')'; put 'then do;'; put 'REASON_CD=''Invalid OPERATOR_NM: ''!!cats(OPERATOR_NM);'; put 'putlog REASON_CD= OPERATOR_NM=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put '/* special missing logic */'; put 'if vtype=''N'' & OPERATOR_NM in (''='',''>'',''<'',''<='',''>='',''NE'',''GE'',''LE'') then do;'; put 'if cats(upcase(raw_value)) in ('; put '''.'',''.A'',''.B'',''.C'',''.D'',''.E'',''.F'',''.G'',''.H'',''.I'',''.J'',''.K'',''.L'',''.M'',''.N'''; put '''.N'',''.O'',''.P'',''.Q'',''.R'',''.S'',''.T'',''.U'',''.V'',''.W'',''.X'',''.Y'',''.Z'',''._'''; put ')'; put 'then do;'; put '/* valid numeric - exit data step loop */'; put 'return;'; put 'end;'; put 'else if subpad(upcase(raw_value),1,1) in ('; put '''A'',''B'',''C'',''D'',''E'',''F'',''G'',''H'',''I'',''J'',''K'',''L'',''M'',''N'''; put '''N'',''O'',''P'',''Q'',''R'',''S'',''T'',''U'',''V'',''W'',''X'',''Y'',''Z'',''_'''; put ')'; put 'then do;'; put '/* check if the raw_value contains a valid variable NAME */'; put 'vnum=varnum(dsid,subpad(raw_value,1,32));'; put 'if vnum>0 then do;'; put '/* now we can get the type */'; put 'vtype2=vartype(dsid,vnum);'; put '/* check type matches */'; put 'if vtype2=vtype then do;'; put '/* valid target var - exit loop */'; put 'return;'; put 'end;'; put 'else do;'; put 'REASON_CD=cats("Compared Type (",vtype2,") is not (",vtype,")");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'goto endstep;'; put 'end;'; put 'end;'; put 'end;'; put 'end;'; put '/* special logic */'; put 'if OPERATOR_NM in (''IN'',''NOT IN'',''BETWEEN'') then do;'; put 'if OPERATOR_NM=''BETWEEN'' then raw_value1=tranwrd(raw_value,'' AND '','','');'; put 'else do;'; put 'if substr(raw_value,1,1) ne ''('''; put 'or substr(cats(reverse(raw_value)),1,1) ne '')'''; put 'then do;'; put 'REASON_CD=''Missing start/end bracket in RAW_VALUE'';'; put 'putlog REASON_CD= OPERATOR_NM= raw_value= raw_value1= ;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'else raw_value1=substr(raw_value,2,max(length(raw_value)-2,0));'; put 'end;'; put '/* we now have a comma seperated list of values */'; put 'if vtype=''N'' then do i=1 to countc(raw_value1, '','')+1;'; put 'tmp=scan(raw_value1,i,'','');'; put 'if cats(tmp) ne ''.'' and input(tmp, ?? 8.) eq . then do;'; put 'if OPERATOR_NM =''BETWEEN'' and subpad(upcase(tmp),1,1) in ('; put '''A'',''B'',''C'',''D'',''E'',''F'',''G'',''H'',''I'',''J'',''K'',''L'',''M'',''N'''; put '''N'',''O'',''P'',''Q'',''R'',''S'',''T'',''U'',''V'',''W'',''X'',''Y'',''Z'',''_'''; put ')'; put 'then do;'; put '/* check if the raw_value contains a valid variable NAME */'; put '/* is not valid syntax for IN or NOT IN */'; put 'vnum=varnum(dsid,subpad(tmp,1,32));'; put 'if vnum>0 then do;'; put '/* now we can get the type */'; put 'vtype2=vartype(dsid,vnum);'; put '/* check type matches */'; put 'if vtype2=vtype then do;'; put '/* valid target var - exit loop */'; put 'return;'; put 'end;'; put 'else do;'; put 'REASON_CD=cats("Compared Type (",vtype2,") is not (",vtype,")");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'goto endstep;'; put 'end;'; put 'end;'; put 'end;'; put 'REASON_CD=''Non Numeric value provided'';'; put 'putlog REASON_CD= OPERATOR_NM= raw_value= raw_value1= ;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'return;'; put 'end;'; put 'end;'; put 'else raw_value1=raw_value;'; put '/* remove nested literals eg '''' */'; put 'raw_value1=tranwrd(raw_value1,"''''",'''');'; put '/* now match string literals (always single quotes) */'; put 'raw_value2=raw_value1;'; put 'regex = prxparse("s/(\'').*?(\'')//");'; put 'call prxchange(regex,-1,raw_value2);'; put '/* remove commas and periods*/'; put 'raw_value3=compress(raw_value2,'',.'');'; put '/* output records that contain values other than digits and spaces */'; put 'if notdigit(compress(raw_value3,'' ''))>0 then do;'; put 'if vtype=''C'' and subpad(upcase(raw_value),1,1) in ('; put '''A'',''B'',''C'',''D'',''E'',''F'',''G'',''H'',''I'',''J'',''K'',''L'',''M'',''N'''; put '''N'',''O'',''P'',''Q'',''R'',''S'',''T'',''U'',''V'',''W'',''X'',''Y'',''Z'',''_'''; put ')'; put 'then do;'; put '/* check if the raw_value contains a valid variable NAME */'; put 'vnum=varnum(dsid,subpad(raw_value,1,32));'; put 'if vnum>0 then do;'; put '/* now we can get the type */'; put 'vtype2=vartype(dsid,vnum);'; put '/* check type matches */'; put 'if vtype2=vtype then do;'; put '/* valid target var - exit loop */'; put 'return;'; put 'end;'; put 'else do;'; put 'REASON_CD=cats("Compared Char Type (",vtype2,") is not (",vtype,")");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'goto endstep;'; put 'end;'; put 'end;'; put 'end;'; put 'putlog raw_value3= $hex32.;'; put 'REASON_CD=cats(''Invalid RAW_VALUE:'',raw_value);'; put 'putlog (_all_)(=);'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'endstep:'; put 'if last then rc=close(dsid);'; put 'run;'; put 'data _null_;'; put 'set &outds end=last;'; put 'putlog (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue=(&abort=YES and &nobs>0),'; put 'mac=&sysmacroname,'; put 'msg=%str(Data issue: %superq(reason_cd))'; put ')'; put '%if &nobs>0 %then %do;'; put '%let syscc=1008;'; put '%return;'; put '%end;'; put '/**'; put '* syntax checking passed but it does not mean the filter is valid'; put '* for that we can run a proc sql validate query'; put '*/'; put '%local fref1;'; put '%let fref1=%mf_getuniquefileref();'; put '%mp_filtergenerate(&inds,outref=&fref1)'; put '/* this macro will also set syscc to 1008 if any issues found */'; put '%mp_filtervalidate(&fref1,&targetds,outds=&outds,abort=&abort)'; put '%mend mp_filtercheck;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Post Edit Hook script for the MPE_ROW_LEVEL_SECURITY table'; put '@details Post edit hooks provide additional backend validation for user'; put 'provided data. The incoming dataset is named `work.staging_ds` and is'; put 'provided in mpe_loader.sas.'; put 'Available macro variables:'; put '@li DC_LIBREF - The DC control library'; put '@li LIBREF - The library of the dataset being edited (is assigned)'; put '@li DS - The dataset being edited'; put 'This validation checks the incoming row_level_security settings to ensure'; put 'each individual filter is'; put '

SAS Macros

'; put '@li dc_assignlib.sas'; put '@li mp_filtercheck.sas'; put '

Related Macros

'; put '@li mpe_loader.sas'; put '**/'; put '/* ignore scope and group for validation */'; put 'proc sql;'; put 'create table work.batches as'; put 'select distinct upcase(rls_libref) as rls_libref,'; put 'upcase(rls_table) as rls_table,'; put 'rls_group_logic as group_logic,'; put 'rls_subgroup_logic as subgroup_logic,'; put 'rls_subgroup_id as subgroup_id,'; put 'rls_variable_nm as variable_nm,'; put 'rls_operator_nm as operator_nm,'; put 'rls_raw_value as raw_value'; put 'from work.staging_ds'; put 'where rls_active=1'; put 'order by rls_libref, rls_table;'; put '%let cnt=0;'; put 'data _null_;'; put 'set work.batches;'; put 'by rls_libref rls_table;'; put 'putlog (_all_)(=);'; put 'if last.rls_table then do;'; put 'x+1;'; put 'call symputx(cats(''libds'',x),cats(rls_libref,''.'',rls_table));'; put 'call symputx(''cnt'',x);'; put 'end;'; put 'run;'; put '%macro quickloop();'; put '%do i=1 %to &cnt;'; put 'data work.inds&i;'; put 'set work.batches;'; put 'if cats(rls_libref,''.'',rls_table)="&&libds&i";'; put 'keep group_logic subgroup_logic subgroup_id variable_nm operator_nm'; put 'raw_value;'; put 'run;'; put '%dc_assignlib(READ,%scan(&&libds&i,1,.))'; put '%mp_filtercheck(work.inds&i'; put ',targetds=&&libds&i'; put ',outds=work.badrecords'; put ',abort=YES'; put ')'; put '%end;'; put '%mend quickloop;'; put '%quickloop()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=mpe_security_postedit; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Post Edit Hook script for the MPE_SECURITY table'; put '@details Post edit hooks provide additional backend validation against'; put 'user-sourced data. The incoming dataset is always `work.staging_ds` and this'; put 'file is included from the mpe_loader.sas macro.'; put 'Available (at runtime) macro variables:'; put '@li DC_LIBREF - The DC control library for your site'; put '@li LIBREF - The library of the dataset being edited (is assigned)'; put '@li DS - The dataset being edited'; put '**/'; put '/* ensure upcase and check access level values*/'; put '%let errval=0;'; put '%let errmsg=;'; put 'data work.staging_ds;'; put 'set work.staging_ds;'; put 'LIBREF=upcase(LIBREF);'; put 'DSN=upcase(DSN);'; put 'ACCESS_LEVEL=upcase(ACCESS_LEVEL);'; put 'if ACCESS_LEVEL not in (''EDIT'',''APPROVE'',''VIEW'',''SIGNOFF'',''AUDIT'') then do;'; put 'putlog "ERR" +(-1) "OR: invalid ACCESS_LEVEL - " access_level;'; put 'call symputx(''errval'',1);'; put 'call symputx(''errmsg'',"Invalid ACCESS_LEVEL: "!!access_level);'; put 'end;'; put 'run;'; put '%mp_abort(iftrue=(&errval=1)'; put ',mac=mpe_security_postedit.sas'; put ',msg=%str(&errmsg)'; put ')'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=mpe_tables_postedit; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Post Edit Hook script for the MPE_TABLES table'; put '@details Post edit hooks provide additional backend validation for user'; put 'provided data. The incoming dataset is named `work.staging_ds` and is'; put 'provided in mpe_loader.sas.'; put 'Available macro variables:'; put '@li DC_LIBREF - The DC control library'; put '@li LIBREF - The library of the dataset being edited (is assigned)'; put '@li DS - The dataset being edited'; put 'This validation checks MPE_TABLES to ensure modified / added records are'; put 'valid. If a non-default AUDIT_LIBDS is being used, there is also a check'; put 'to ensure that this table already exists.'; put '**/'; put '%let errmsg=;'; put '%let errflag=0;'; put '/* ensure uppercasing */'; put 'data work.staging_ds;'; put 'set work.staging_ds;'; put '/* PK fields should not be upcased if we are trying to delete records */'; put 'if upcase(_____DELETE__THIS__RECORD_____) ne "YES" then do;'; put 'LIBREF=upcase(LIBREF);'; put 'DSN=upcase(DSN);'; put 'end;'; put 'loadtype=upcase(loadtype);'; put 'buskey=upcase(buskey);'; put 'var_txfrom=upcase(var_txfrom);'; put 'var_txto=upcase(var_txto);'; put 'var_busfrom=upcase(var_busfrom);'; put 'var_busto=upcase(var_busto);'; put 'var_processed=upcase(var_processed);'; put 'close_vars=upcase(close_vars);'; put 'audit_libds=upcase(audit_libds);'; put 'rk_underlying=upcase(rk_underlying);'; put '/* check for valid loadtype */'; put 'if LOADTYPE not in (''UPDATE'',''TXTEMPORAL'',''FORMAT_CAT'',''BITEMPORAL'',''REPLACE'')'; put 'then do;'; put 'call symputx(''errmsg'',"Invalid LOADTYPE: "!!LOADTYPE);'; put 'call symputx(''errflag'',1);'; put 'end;'; put '/* force correct BUSKEY and DSN when loading format catalogs */'; put 'if LOADTYPE=''FORMAT_CAT'' then do;'; put 'BUSKEY=''TYPE FMTNAME FMTROW'';'; put 'DSN=scan(dsn,1,''-'')!!''-FC'';'; put 'end;'; put '/* convert tabs into spaces */'; put 'buskey=translate(buskey," ","09"x);'; put 'rk_underlying=translate(rk_underlying," ","09"x);'; put 'run;'; put '%mp_abort(iftrue=(&errflag=1)'; put ',mac=mpe_tables_postedit'; put ',msg=%superq(errmsg)'; put ')'; put '/* get distinct list of audit libs */'; put 'proc sql;'; put 'create table work.liblist as'; put 'select distinct audit_libds'; put 'from work.staging_ds'; put 'where audit_libds not in ('''',''0'', "&dc_libref..MPE_AUDIT")'; put 'and upcase(_____DELETE__THIS__RECORD_____) ne "YES";'; put '/* assign the libs */'; put 'data _null_;'; put 'set work.liblist;'; put 'call symputx(cats(''lib'',_n_),audit_libds);'; put 'libref=scan(audit_libds,1,''.'');'; put 'call execute(''%dc_assignlib(WRITE,''!!libref!!'')'');'; put 'run;'; put '/* check the audit tables exist */'; put 'data _null_;'; put 'set work.liblist;'; put 'if exist(audit_libds,"DATA")=0 then do;'; put 'call symputx(''errmsg'','; put '"Audit Table "!!audit_libds!!" does not exist, or could not be assigned."'; put ');'; put 'call symputx(''errflag'',1);'; put 'end;'; put 'run;'; put '%mp_abort(iftrue=(&errflag=1)'; put ',mac=mpe_tables_postedit'; put ',msg=%superq(errmsg)'; put ')'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=mpe_validations_postedit; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Post Edit Hook script for the MPE_VALIDATIONS table'; put '@details Post edit hooks provide additional backend validation for user'; put 'provided data. The incoming dataset is named `work.staging_ds` and is'; put 'provided in mpe_loader.sas.'; put 'Available macro variables:'; put '@li DC_LIBREF - The DC control library'; put '@li LIBREF - The library of the dataset being edited (is assigned)'; put '@li DS - The dataset being edited'; put 'This validation checks the incoming mpe_validations settings to ensure'; put 'there are no columns that have both HARDSELECT_HOOK and SOFTSELECT_HOOK.'; put '

SAS Macros

'; put '@li mf_nobs.sas'; put '

Related Macros

'; put '@li mpe_loader.sas'; put '**/'; put '/** check to avoid a colum having both HARDSELECT_HOOK and SOFTSELECT_HOOK */'; put '/* need to merge with base table in the case of a single row being added */'; put '%global src_list1 src_list2;'; put '%let src_list1='''';'; put 'proc sql noprint;'; put 'create table work.check1 as'; put 'select quote(catx(''.'',base_lib,base_ds,base_col)) as source'; put ',rule_type'; put 'from work.staging_ds'; put 'where rule_type in (''SOFTSELECT_HOOK'',''HARDSELECT_HOOK'')'; put 'and upcase(_____DELETE__THIS__RECORD_____) ne "YES";'; put 'select distinct cats(source) into: src_list1 separated by '','''; put 'from work.check1;'; put 'create table work.check2 as'; put 'select quote(catx(''.'',base_lib,base_ds,base_col)) as source'; put ',rule_type'; put 'from &DC_LIBREF..MPE_VALIDATIONS'; put 'where rule_type in (''SOFTSELECT_HOOK'',''HARDSELECT_HOOK'')'; put 'and &dc_dttmtfmt. lt tx_to'; put 'and catx(''.'',base_lib,base_ds,base_col) in (&src_list1);'; put 'create table work.check3 as'; put 'select * from work.check1'; put 'union'; put 'select * from work.check2;'; put 'create table work.validation_checker as'; put 'select source'; put ',count(*) as cnt'; put 'from work.check3'; put 'group by 1'; put 'having cnt>1;'; put 'select distinct source into: src_list2 from work.validation_checker;'; put 'data _null_;'; put 'set work.validation_checker;'; put 'putlog (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (%mf_nobs(work.validation_checker)>0)'; put ',mac=mpe_validations_postedit'; put ',msg=%str(The following vars have duplicate HOOKS: &src_list2)'; put ')'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=mpe_xlmap_info_postedit; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_wordsInStr1ButNotStr2('; put 'Str1= /* string containing words to extract */'; put ',Str2= /* used to compare with the extract string */'; put ')/*/STORE SOURCE*/;'; put '%local count_base count_extr i i2 extr_word base_word match outvar;'; put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; put '%put base string (str1)= &str1;'; put '%put compare string (str2) = &str2;'; put '%return;'; put '%end;'; put '%let count_base=%sysfunc(countw(&Str2));'; put '%let count_extr=%sysfunc(countw(&Str1));'; put '%do i=1 %to &count_extr;'; put '%let extr_word=%scan(&Str1,&i,%str( ));'; put '%let match=0;'; put '%do i2=1 %to &count_base;'; put '%let base_word=%scan(&Str2,&i2,%str( ));'; put '%if &extr_word=&base_word %then %let match=1;'; put '%end;'; put '%if &match=0 %then %let outvar=&outvar &extr_word;'; put '%end;'; put '&outvar'; put '%mend mf_wordsInStr1ButNotStr2;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mp_validatecol(incol,rule,outcol);'; put '/* tempcol is given a unique name with every invocation */'; put '%local tempcol;'; put '%let tempcol=%mf_getuniquename();'; put '%if &rule=ISINT %then %do;'; put '&outcol=0;'; put 'if not missing(&incol) then do;'; put '&tempcol=input(&incol,?? best32.);'; put 'if not missing(&tempcol) then if mod(&tempcol,1)=0 then &outcol=1;'; put 'end;'; put 'drop &tempcol;'; put '%end;'; put '%else %if &rule=ISNUM %then %do;'; put '/*'; put 'credit SOREN LASSEN'; put 'https://sasmacro.blogspot.com/2009/06/welcome-isnum-macro.html'; put '*/'; put '&tempcol=input(&incol,?? best32.);'; put 'if missing(&tempcol) then &outcol=0;'; put 'else &outcol=1;'; put 'drop &tempcol;'; put '%end;'; put '%else %if &rule=LIBDS %then %do;'; put '/* match libref.dataset */'; put 'if _n_=1 then do;'; put 'retain &tempcol;'; put '&tempcol=prxparse(''/^[_a-z]\w{0,7}\.[_a-z]\w{0,31}$/i'');'; put 'if missing(&tempcol) then do;'; put 'putlog ''ERR'' +(-1) "OR: Invalid expression for LIBDS";'; put 'stop;'; put 'end;'; put 'drop &tempcol;'; put 'end;'; put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; put 'else &outcol=0;'; put '%end;'; put '%else %if &rule=FORMAT %then %do;'; put '/* match valid format - regex could probably be improved */'; put 'if _n_=1 then do;'; put 'retain &tempcol;'; put '&tempcol=prxparse(''/^[_a-z\$]\w{0,31}\.[0-9]*$/i'');'; put 'if missing(&tempcol) then do;'; put 'putlog ''ERR'' +(-1) "OR: Invalid expression for FORMAT";'; put 'stop;'; put 'end;'; put 'drop &tempcol;'; put 'end;'; put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; put 'else &outcol=0;'; put '%end;'; put '%mend mp_validatecol;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Post Edit Hook script for the MPE_XLMAP_INFO table'; put '@details Post edit hooks provide additional backend validation for user'; put 'provided data. The incoming dataset is named `work.staging_ds` and is'; put 'provided in mpe_loader.sas.'; put 'Available macro variables:'; put '@li DC_LIBREF - The DC control library'; put '@li LIBREF - The library of the dataset being edited (is assigned)'; put '@li DS - The dataset being edited'; put '

SAS Macros

'; put '@li mf_existds.sas'; put '@li mf_getvarlist.sas'; put '@li mf_wordsinstr1butnotstr2.sas'; put '@li dc_assignlib.sas'; put '@li mp_validatecol.sas'; put '**/'; put 'data work.staging_ds;'; put 'set work.staging_ds;'; put '/* apply the first excel map to all cells */'; put 'length tgtds $41;'; put 'retain tgtds;'; put 'drop tgtds is_libds;'; put 'if _n_=1 then do;'; put 'if missing(XLMAP_TARGETLIBDS) then tgtds="&dc_libref..MPE_XLMAP_DATA";'; put 'else tgtds=upcase(XLMAP_TARGETLIBDS);'; put '%mp_validatecol(XLMAP_TARGETLIBDS,LIBDS,is_libds)'; put 'call symputx(''tgtds'',tgtds);'; put 'call symputx(''is_libds'',is_libds);'; put 'end;'; put 'XLMAP_TARGETLIBDS=tgtds;'; put 'run;'; put '%mp_abort(iftrue=(&is_libds ne 1)'; put ',mac=mpe_xlmap_info_postedit'; put ',msg=Invalid target dataset (&tgtds)'; put ')'; put '/**'; put '* make sure that the supplied target dataset exists and'; put '* has the necessary columns'; put '*/'; put '%dc_assignlib(READ,%scan(&tgtds,1,.))'; put '%mp_abort(iftrue=(%mf_existds(libds=&tgtds) ne 1)'; put ',mac=mpe_xlmap_info_postedit'; put ',msg=Target dataset (&tgtds) could not be opened'; put ')'; put '%let tgtvars=%upcase(%mf_getvarlist(&tgtds));'; put '%let srcvars=%upcase(%mf_getvarlist(&dc_libref..MPE_XLMAP_DATA));'; put '%let badvars1=%mf_wordsInStr1ButNotStr2(Str1=&srcvars,Str2=&tgtvars);'; put '%let badvars2=%mf_wordsInStr1ButNotStr2(Str1=&tgtvars,Str2=&srcvars);'; put '%mp_abort(iftrue=(%length(&badvars1.X)>1)'; put ',mac=mpe_xlmap_info_postedit'; put ',msg=%str(Target dataset (&tgtds) has missing vars: &badvars1)'; put ')'; put '%mp_abort(iftrue=(%length(&badvars2.X)>1)'; put ',mac=mpe_xlmap_info_postedit'; put ',msg=%str(Target dataset (&tgtds) has unrecognised vars: &badvars2)'; put ')'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=mpe_xlmap_rules_postedit; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Post Edit Hook script for the MPE_XLMAP_RULES table'; put '@details Post edit hooks provide additional backend validation for user'; put 'provided data. The incoming dataset is named `work.staging_ds` and is'; put 'provided in mpe_loader.sas.'; put 'Available macro variables:'; put '@li DC_LIBREF - The DC control library'; put '@li LIBREF - The library of the dataset being edited (is assigned)'; put '@li DS - The dataset being edited'; put '**/'; put 'data work.staging_ds;'; put 'set work.staging_ds;'; put '/* ensure uppercasing */'; put 'XLMAP_ID=upcase(XLMAP_ID);'; put 'run;'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=sample_xlmap_data_postapprove; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Sample XLMAP Data hook program (sample_xlmap_data_postapprove)'; put '@details This hook script should NOT be modified in place, as the changes'; put 'would be lost in your next Data Controller deployment.'; put 'Instead, create a copy of this hook script and place it OUTSIDE the'; put 'Data Controller metadata folder.'; put 'Available macro variables:'; put '@li LOAD_REF - The Load Reference (unique upload id)'; put '@li ORIG_LIBDS - The target library.dataset that was just loaded'; put '**/'; put 'data _null_;'; put 'set work.staging_ds;'; put 'putlog ''load ref is in the staged data: '' load_ref;'; put 'stop;'; put 'run;'; put '%put the unique identifier (LOAD_REF) is also a macro variable: &LOAD_REF;'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=sample_xlmap_data_postedit; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Sample XLMAP Data hook program'; put '@details This hook script should NOT be modified in place, as the changes'; put 'would be lost in your next Data Controller deployment.'; put 'Instead, create a copy of this hook script and place it OUTSIDE the'; put 'Data Controller metadata folder.'; put 'Available macro variables:'; put '@li DC_LIBREF - The DC control library'; put '@li LIBREF - The library of the dataset being edited (is assigned)'; put '@li DS - The target dataset being loaded'; put '**/'; put '%let abort=0;'; put '%let errmsg=;'; put 'data work.staging_ds;'; put 'set work.staging_ds;'; put 'length errmsg $1000;'; put 'drop err:;'; put '/* KM1 validations */'; put 'if XLMAP_ID=''BASEL-KM1'' then do;'; put 'if XLMAP_RANGE_ID=''KM1:a'' & input(value_txt,8.)<100 then do;'; put 'errmsg=''Should be greater than 100'';'; put 'err=1;'; put 'end;'; put 'end;'; put '/* CR2 Validations */'; put 'if XLMAP_ID=''BASEL-CR2'' then do;'; put 'if XLMAP_RANGE_ID=''CR2-sec1'' & row_no=3 & input(value_txt,8.)>0 then do;'; put 'errmsg=''Should be negative'';'; put 'err=1;'; put 'end;'; put 'end;'; put '/* publish error message */'; put 'if err=1 then do;'; put 'errmsg=catx('' '',xlmap_range_id,'':'',value_txt,''->'',errmsg);'; put 'call symputx(''errmsg'',errmsg);'; put 'call symputx(''abort'',1);'; put 'end;'; put 'run;'; put '%mp_abort(iftrue=(&abort ne 0)'; put ',mac=xlmap_data_postedit'; put ',msg=%superq(errmsg)'; put ')'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let path=services/public; %let service=getchangeinfo; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mc,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mpe_accesscheck('; put 'base_table'; put ',outds=med_accesscheck /* WORK table to contain access details */'; put ',user= /* metadata user to check for */'; put ',access_level=APPROVE'; put ',cntl_lib_var=MPELIB'; put ');'; put '%if &user= %then %let user=%mf_getuser();'; put '%mp_abort('; put 'iftrue=(%index(&outds,.)>0 and %upcase(%scan(&outds,1,.)) ne WORK)'; put ',mac=mpe_accesscheck'; put ',msg=%str(outds should be a WORK table)'; put ')'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; put ',mac=mpe_accesscheck'; put ',msg=%str(Missing base_table/user access_level variables)'; put ')'; put '/* make unique temp table vars */'; put '%local tempds1 tempds2;'; put '%let tempds1=%mf_getuniquename(prefix=usergroups);'; put '%let tempds2=%mf_getuniquename(prefix=tablegroups);'; put '/* get list of user groups */'; put '%mpe_getgroups(user=&user,outds=&tempds1)'; put '/* get list of groups with access for that table */'; put 'proc sql;'; put 'create table &tempds2 as'; put 'select distinct sas_group'; put 'from &&&cntl_lib_var...mpe_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and access_level="&access_level"'; put 'and ('; put '(libref="%scan(&base_table,1,.)" and upcase(dsn)="%scan(&base_table,2,.)")'; put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; put 'or (libref="*ALL*")'; put ');'; put '%if &_debug ge 131 %then %do;'; put 'data _null_;'; put 'set &tempds1;'; put 'putlog (_all_)(=);'; put 'run;'; put 'data _null_;'; put 'set &tempds2;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put 'proc sql;'; put 'create table &outds as'; put 'select * from &tempds1'; put 'where groupname="&mpeadmins"'; put 'or groupname in (select * from &tempds2);'; put '%put &sysmacroname: base_table=&base_table;'; put '%put &sysmacroname: access_level=&access_level;'; put '%mend mpe_accesscheck;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '%macro mpe_checkrestore(load_ref,'; put 'outresult=ALLOW_RESTORE,'; put 'outreason=REASON'; put ');'; put '%global &outresult &outreason;'; put '%let &outresult=NO;'; put '%let &outreason=NOTFOUND;'; put '/* check if there is actually a version to restore */'; put '%local chk;'; put '%let chk=0;'; put 'proc sql noprint;'; put 'select count(*) into: chk from &dc_libref..mpe_audit'; put 'where load_ref="&load_ref";'; put '%if &chk=0 %then %do;'; put '%let allow_restore=NO;'; put '%let reason=No entry for &load_ref in MPE_AUDIT;'; put '%return;'; put '%end;'; put '/* grab user groups */'; put '%local user;'; put '%let user=%mf_getuser();'; put '%mpe_getgroups(user=&user,outds=work.groups)'; put '/* check if user is admin */'; put '%local is_admin;'; put '%let is_admin=0;'; put 'proc sql;'; put 'select count(*) into: is_admin from work.groups'; put 'where groupname="&dc_admin_group";'; put '%if &is_admin>0 %then %do;'; put '%let allow_restore=YES;'; put '%let reason=IS ADMIN;'; put '%return;'; put '%end;'; put '/* check if user has basic access */'; put '%local libds;'; put 'proc sql noprint;'; put 'select cats(base_lib,''.'',base_ds) into: libds'; put 'from &mpelib..mpe_submit'; put 'where TABLE_ID="&load_ref";'; put '%mpe_accesscheck(&libds,outds=work.access_check'; put ',user=&user'; put ',access_level=EDIT'; put ')'; put '%if %mf_nobs(access_check)=0 %then %do;'; put '%let allow_restore=NO;'; put '%let reason=No access in MPE_TABLES;'; put '%return;'; put '%end;'; put '/* check if user has column level security rules */'; put 'proc sql;'; put 'create table work.cls_rules as'; put 'select *'; put 'from &mpelib..mpe_column_level_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and CLS_SCOPE in ("EDIT",''ALL'')'; put 'and CLS_ACTIVE=1'; put 'and upcase(CLS_GROUP) in (select upcase(groupname) from work.groups)'; put 'and CLS_LIBREF="%upcase(&base_lib)"'; put 'and CLS_TABLE="%upcase(&base_ds)";'; put '%if %mf_nobs(work.cls_rules)>0 %then %do;'; put '%let allow_restore=NO;'; put '%let reason=User has restrictions in MPE_COLUMN_LEVEL_SECURITY;'; put 'data _null_;'; put 'set work.cls_rules;'; put 'putlog (_all_)(=);'; put 'if _n_>5 then stop;'; put 'run;'; put '%return;'; put '%end;'; put '/* check if user has row level security rules */'; put 'proc sql;'; put 'create table work.rls_rules as'; put 'select *'; put 'from &mpelib..mpe_row_level_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and rls_scope in ("EDIT",''ALL'')'; put 'and upcase(rls_group) in (select upcase(groupname) from work.groups)'; put 'and rls_libref="&base_lib"'; put 'and rls_table="&base_ds"'; put 'and rls_active=1;'; put '%if %mf_nobs(work.rls_rules)>0 %then %do;'; put '%let allow_restore=NO;'; put '%let reason=User has restrictions in MPE_ROW_LEVEL_SECURITY;'; put 'data _null_;'; put 'set work.rls_rules;'; put 'putlog (_all_)(=);'; put 'if _n_>5 then stop;'; put 'run;'; put '%return;'; put '%end;'; put '%else %do;'; put '%let allow_restore=YES;'; put '%let reason=CHECKS PASSED;'; put '%end;'; put '%mend mpe_checkrestore;'; put '/** @cond */'; put '%macro mf_getengine(libref'; put ')/*/STORE SOURCE*/;'; put '%local dsid engnum rc engine;'; put '/* in case the parameter is a libref.tablename, pull off just the libref */'; put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; put '%let dsid=%sysfunc('; put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; put ');'; put '%if (&dsid ^= 0) %then %do;'; put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; put '%let rc=%sysfunc(fetch(&dsid));'; put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; put '%put &libref. ENGINE is &engine.;'; put '%let rc= %sysfunc(close(&dsid));'; put '%end;'; put '%upcase(&engine)'; put '%mend mf_getengine;'; put '/** @endcond */'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file getchangeinfo.sas'; put '@brief Returns the details for an approval diff'; put '@details'; put '

SAS Macros

'; put '@li mf_getengine.sas'; put '@li mp_abort.sas'; put '@li mpe_checkrestore.sas'; put '

Service Inputs

'; put '
sascontroltable
'; put '@li table table ID or LOAD_REF used to uniquely identify a staged change'; put '

Service Outputs

'; put '
work.jsparams
'; put 'Mainly sourced from MPE_SUBMIT plus some extra cols:'; put '@li LIB_ENGINE Library engine'; put '@li allow_restore YES if a user can restore, else NO'; put '@li REASON reason why a restore is / is no possible'; put '

Data Inputs

'; put '@li MPE_AUDIT'; put '@li MPE_COLUMN_LEVEL_SECURITY'; put '@li MPE_ROW_LEVEL_SECURITY'; put '@li MPE_SUBMIT'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%let table=;'; put 'data _null_;'; put 'set SASControlTable;'; put 'call symputx(''table'',table);'; put 'run;'; put 'data APPROVE1;'; put 'set &mpelib..mpe_submit'; put '(rename=(SUBMITTED_ON_DTTM=submitted_on REVIEWED_ON_DTTM=REVIEWED_ON));'; put 'where TABLE_ID="&TABLE";'; put 'TABLE_NM=cats(base_lib,''.'',base_ds);'; put 'BASE_TABLE=table_nm;'; put 'call symputx(''base_lib'',base_lib);'; put 'REVIEWED_ON_DTTM=put(reviewed_on,datetime19.);'; put 'SUBMITTED_ON_DTTM=put(submitted_on,datetime19.);'; put 'run;'; put '/**'; put '* Check if user has basic access permission to RESTORE the table'; put '*/'; put '%put checking access;'; put '%global allow_restore reason;'; put '%mpe_checkrestore(&table,outresult=ALLOW_RESTORE,outreason=REASON)'; put 'data work.jsParams;'; put 'set approve1;'; put 'LIB_ENGINE="%mf_getEngine(&base_lib)";'; put 'allow_restore="&allow_restore";'; put 'REASON="&reason";'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%webout(OPEN)'; put '%webout(OBJ,jsParams,missing=STRING)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=getcols; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_getvalue(libds,variable,filter=1'; put ')/*/STORE SOURCE*/;'; put '%if %mf_getattrn(&libds,NLOBS)>0 %then %do;'; put '%local dsid rc &variable;'; put '%let dsid=%sysfunc(open(&libds(where=(&filter))));'; put '%syscall set(dsid);'; put '%let rc = %sysfunc(fetch(&dsid));'; put '%let rc = %sysfunc(close(&dsid));'; put '%trim(&&&variable)'; put '%end;'; put '%mend mf_getvalue;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file getcols.sas'; put '@brief Retrieves column info to enable population of dropdowns'; put '@details'; put '

SAS Macros

'; put '@li dc_assignlib.sas'; put '@li mf_getvalue.sas'; put '@li mp_abort.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%let ds=%mf_getvalue(work.iwant,libds);'; put '%dc_assignlib(READ,%scan(&ds,1,.))'; put 'proc contents noprint data=&ds'; put 'out=droplist1 (keep=name type length label varnum format:);'; put 'run;'; put 'data cols(keep=name type length varnum format label);'; put 'set droplist1(rename=(format=format2 type=type2));'; put 'name=upcase(name);'; put 'if type2=2 then do;'; put 'length format $49.;'; put 'if format2='''' then format=cats(''$'',length,''.'');'; put 'else if formatl=0 then format=cats(format2,''.'');'; put 'else format=cats(format2,formatl,''.'');'; put 'type=''C'';'; put 'ddtype=''CHARACTER'';'; put 'end;'; put 'else do;'; put 'if format2='''' then format=cats(length,''.'');'; put 'else if formatl=0 then format=cats(format2,''.'');'; put 'else if formatd=0 then format=cats(format2,formatl,''.'');'; put 'else format=cats(format2,formatl,''.'',formatd);'; put 'type=''N'';'; put 'if format=:''DATETIME'' then ddtype=''DATETIME'';'; put 'else if format=:''DATE'' then ddtype=''DATE'';'; put 'else if format=:''TIME'' then ddtype=''TIME'';'; put 'else ddtype=''NUMERIC'';'; put 'end;'; put 'if label='''' then label=name;'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%webout(OPEN)'; put '%webout(OBJ,cols)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=getcolvals; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_getvalue(libds,variable,filter=1'; put ')/*/STORE SOURCE*/;'; put '%if %mf_getattrn(&libds,NLOBS)>0 %then %do;'; put '%local dsid rc &variable;'; put '%let dsid=%sysfunc(open(&libds(where=(&filter))));'; put '%syscall set(dsid);'; put '%let rc = %sysfunc(fetch(&dsid));'; put '%let rc = %sysfunc(close(&dsid));'; put '%trim(&&&variable)'; put '%end;'; put '%mend mf_getvalue;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mf_getVarFormat(libds /* two level ds name */'; put ', var /* variable name from which to return the format */'; put ', force=0'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vformat rc vlen vtype;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable format */'; put '%if(&vnum > 0) %then %let vformat=%sysfunc(varfmt(&dsid, &vnum));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let rc = %sysfunc(close(&dsid));'; put '%return;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* supply a default if no format available */'; put '%if %length(&vformat)<2 & &force=1 %then %do;'; put '%let vlen = %sysfunc(varlen(&dsid, &vnum));'; put '%let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%if &vtype=C %then %let vformat=$&vlen..;'; put '%else %let vformat=best.;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable format */'; put '&vformat'; put '%mend mf_getVarFormat;'; put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; put 'proc sql;'; put 'create table &libds('; put 'TYPE char(1) label='; put '''Format Type: either N (num fmt), C (char fmt), I (num infmt) or J (char infmt)'''; put ',FMTNAME char(32) label=''Format name'''; put ',FMTROW num label='; put '''CALCULATED Position of record by FMTNAME (reqd for multilabel formats)'''; put ',START char(32767) label=''Starting value for format'''; put '/*'; put 'Keep lengths of START and END the same to avoid this err:'; put '"Start is greater than end: -<."'; put 'Similar usage note: https://support.sas.com/kb/69/330.html'; put '*/'; put ',END char(32767) label=''Ending value for format'''; put ',LABEL char(32767) label=''Format value label'''; put ',MIN num length=3 label=''Minimum length'''; put ',MAX num length=3 label=''Maximum length'''; put ',DEFAULT num length=3 label=''Default length'''; put ',LENGTH num length=3 label=''Format length'''; put ',FUZZ num label=''Fuzz value'''; put ',PREFIX char(2) label=''Prefix characters'''; put ',MULT num label=''Multiplier'''; put ',FILL char(1) label=''Fill character'''; put ',NOEDIT num length=3 label=''Is picture string noedit?'''; put ',SEXCL char(1) label=''Start exclusion'''; put ',EEXCL char(1) label=''End exclusion'''; put ',HLO char(13) label='; put '''More info: https://core.sasjs.io/mddl__sas__cntlout_8sas_source.html'''; put ',DECSEP char(1) label=''Decimal separator'''; put ',DIG3SEP char(1) label=''Three-digit separator'''; put ',DATATYPE char(8) label=''Date/time/datetime?'''; put ',LANGUAGE char(8) label=''Language for date strings'''; put ');'; put '%local lib;'; put '%let libds=%upcase(&libds);'; put '%if %index(&libds,.)=0 %then %let lib=WORK;'; put '%else %let lib=%scan(&libds,1,.);'; put 'proc datasets lib=&lib noprint;'; put 'modify %scan(&libds,-1,.);'; put 'index create'; put 'pk_cntlout=(type fmtname fmtrow)'; put '/nomiss unique;'; put 'quit;'; put '%mend mddl_sas_cntlout;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mp_aligndecimal(var,width=8);'; put '%local tmpvar;'; put '%let tmpvar=%mf_getuniquename(prefix=aligndp);'; put 'length &tmpvar $&width;'; put 'if index(&var,''.'') then do;'; put '&tmpvar=cats(scan(&var,1,''.''));'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar!!''.''!!cats(scan(&var,2,''.''));'; put 'end;'; put 'else do;'; put '&tmpvar=cats(&var);'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar;'; put 'end;'; put 'drop &tmpvar;'; put '%mend mp_aligndecimal;'; put '%macro mp_cntlout('; put 'iftrue=(1=1)'; put ',libcat='; put ',cntlout=work.fmtextract'; put ',fmtlist=0'; put ')/*/STORE SOURCE*/;'; put '%local ddlds cntlds i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let ddlds=%mf_getuniquename();'; put '%let cntlds=%mf_getuniquename();'; put '%mddl_sas_cntlout(libds=&ddlds)'; put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; put '%let libcat=%scan(&libcat,1,-);'; put '%end;'; put 'proc format lib=&libcat cntlout=&cntlds;'; put '%if "&fmtlist" ne "0" and "&fmtlist" ne "" %then %do;'; put 'select'; put '%do i=1 %to %sysfunc(countw(&fmtlist,%str( )));'; put '%scan(&fmtlist,&i,%str( ))'; put '%end;'; put ';'; put '%end;'; put 'run;'; put 'data &cntlout/nonote2err;'; put 'if 0 then set &ddlds;'; put 'set &cntlds;'; put 'by type fmtname notsorted;'; put '/* align the numeric values to avoid overlapping ranges */'; put 'if type in ("I","N") then do;'; put '%mp_aligndecimal(start,width=16)'; put '%mp_aligndecimal(end,width=16)'; put 'end;'; put '/* create row marker. Data cannot be sorted without it! */'; put 'if first.fmtname then fmtrow=1;'; put 'else fmtrow+1;'; put 'run;'; put 'proc sort;'; put 'by type fmtname fmtrow;'; put 'run;'; put 'proc sql;'; put 'drop table &ddlds,&cntlds;'; put '%mend mp_cntlout;'; put '/** @endcond */'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_getvartype(libds /* two level name */'; put ', var /* variable name from which to return the type */'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vtype rc;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid. > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable type (C/N) */'; put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let vtype = %str( );'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable type */'; put '&vtype'; put '%mend mf_getvartype;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '%macro mp_filtergenerate(inds,outref=filter);'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc - on macro entry)'; put ')'; put 'filename &outref temp;'; put '%if %mf_nobs(&inds)=0 %then %do;'; put '/* ensure we have a default filter */'; put 'data _null_;'; put 'file &outref;'; put 'put ''1=1'';'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc sort data=&inds;'; put 'by SUBGROUP_ID;'; put 'run;'; put 'data _null_;'; put 'file &outref lrecl=32800;'; put 'set &inds end=last;'; put 'by SUBGROUP_ID;'; put 'if _n_=1 then put ''(('';'; put 'else if first.SUBGROUP_ID then put +1 GROUP_LOGIC ''('';'; put 'else put +2 SUBGROUP_LOGIC;'; put 'put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;'; put 'if last.SUBGROUP_ID then put '')''@;'; put 'if last then put '')'';'; put 'run;'; put '%end;'; put '%mend mp_filtergenerate;'; put '%macro mp_filtervalidate(inref,targetds,abort=YES,outds=work.mp_filtervalidate);'; put '%mp_abort(iftrue= (&syscc ne 0 or &syserr ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc / syserr=&syserr - on macro entry)'; put ')'; put '%local fref1;'; put '%let fref1=%mf_getuniquefileref();'; put 'data _null_;'; put 'file &fref1;'; put 'infile &inref end=eof;'; put 'if _n_=1 then do;'; put 'put "proc sql;";'; put 'put "validate select * from &targetds";'; put 'put "where " ;'; put 'end;'; put 'input;'; put 'put _infile_;'; put 'putlog _infile_;'; put 'if eof then put ";quit;";'; put 'run;'; put '%inc &fref1;'; put 'data &outds;'; put 'if &sqlrc or &syscc or &syserr then do;'; put 'REASON_CD=''VALIDATION_ERR''!!''OR: ''!!'; put 'coalescec(symget(''SYSERRORTEXT''),symget(''SYSWARNINGTEXT''));'; put 'output;'; put 'end;'; put 'else stop;'; put 'run;'; put 'filename &fref1 clear;'; put '%if %mf_nobs(&outds)>0 %then %do;'; put '%if &abort=YES %then %do;'; put 'data _null_;'; put 'set &outds;'; put 'call symputx(''REASON_CD'',reason_cd,''l'');'; put 'stop;'; put 'run;'; put '%mp_abort('; put 'mac=&sysmacroname,'; put 'msg=%str(Filter validation issues.)'; put ')'; put '%end;'; put '%let syscc=1008;'; put '%end;'; put '%mend mp_filtervalidate;'; put '%macro mp_filtercheck(inds,targetds=,outds=work.badrecords,abort=YES);'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc - on macro entry)'; put ')'; put '/* Validate input column */'; put '%local vtype;'; put '%let vtype=%mf_getvartype(&inds,RAW_VALUE);'; put '%mp_abort(iftrue=(&abort=YES and &vtype ne C),'; put 'mac=&sysmacroname,'; put 'msg=%str(%str(ERR)OR: RAW_VALUE must be character)'; put ')'; put '%if &vtype ne C %then %do;'; put '%put &sysmacroname: RAW_VALUE must be character;'; put '%let syscc=42;'; put '%return;'; put '%end;'; put '/**'; put '* Sanitise the values based on valid value lists, then strip out'; put '* quotes, commas, periods and spaces.'; put '*/'; put '%local reason_cd nobs;'; put '%let nobs=0;'; put 'data &outds;'; put '/*length GROUP_LOGIC SUBGROUP_LOGIC $3 SUBGROUP_ID 8 VARIABLE_NM $32'; put 'OPERATOR_NM $10 RAW_VALUE $4000;*/'; put 'set &inds end=last;'; put 'length reason_cd $4032 vtype vtype2 $1 vnum dsid 8 tmp $4000;'; put 'drop tmp;'; put '/* quick check to ensure column exists */'; put 'if upcase(VARIABLE_NM) not in'; put '(%upcase(%mf_getvarlist(&targetds,dlm=%str(,),quote=SINGLE)))'; put 'then do;'; put 'REASON_CD="Variable "!!cats(variable_nm)!!" not in &targetds";'; put 'putlog REASON_CD= VARIABLE_NM=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'return;'; put 'end;'; put '/* need to open the dataset to get the column type */'; put 'retain dsid;'; put 'if _n_=1 then dsid=open("&targetds","i");'; put 'if dsid>0 then do;'; put 'vnum=varnum(dsid,VARIABLE_NM);'; put 'if vnum<1 then do;'; put '/* should not happen as was also tested for above */'; put 'REASON_CD=cats("Variable (",VARIABLE_NM,") not found in &targetds");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'goto endstep;'; put 'end;'; put '/* now we can get the type */'; put 'else vtype=vartype(dsid,vnum);'; put 'end;'; put 'else do;'; put 'REASON_CD=cats("Could not open &targetds");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'stop;'; put 'end;'; put '/* closed list checks */'; put 'if GROUP_LOGIC not in (''AND'',''OR'') then do;'; put 'REASON_CD=''GROUP_LOGIC should be AND/OR, not:''!!cats(GROUP_LOGIC);'; put 'putlog REASON_CD= GROUP_LOGIC=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'if SUBGROUP_LOGIC not in (''AND'',''OR'') then do;'; put 'REASON_CD=''SUBGROUP_LOGIC should be AND/OR, not:''!!cats(SUBGROUP_LOGIC);'; put 'putlog REASON_CD= SUBGROUP_LOGIC=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'if mod(SUBGROUP_ID,1) ne 0 then do;'; put 'REASON_CD=''SUBGROUP_ID should be integer, not ''!!cats(subgroup_id);'; put 'putlog REASON_CD= SUBGROUP_ID=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'if OPERATOR_NM not in'; put '(''='',''>'',''<'',''<='',''>='',''NE'',''GE'',''LE'',''BETWEEN'',''IN'',''NOT IN'',''CONTAINS'')'; put 'then do;'; put 'REASON_CD=''Invalid OPERATOR_NM: ''!!cats(OPERATOR_NM);'; put 'putlog REASON_CD= OPERATOR_NM=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put '/* special missing logic */'; put 'if vtype=''N'' & OPERATOR_NM in (''='',''>'',''<'',''<='',''>='',''NE'',''GE'',''LE'') then do;'; put 'if cats(upcase(raw_value)) in ('; put '''.'',''.A'',''.B'',''.C'',''.D'',''.E'',''.F'',''.G'',''.H'',''.I'',''.J'',''.K'',''.L'',''.M'',''.N'''; put '''.N'',''.O'',''.P'',''.Q'',''.R'',''.S'',''.T'',''.U'',''.V'',''.W'',''.X'',''.Y'',''.Z'',''._'''; put ')'; put 'then do;'; put '/* valid numeric - exit data step loop */'; put 'return;'; put 'end;'; put 'else if subpad(upcase(raw_value),1,1) in ('; put '''A'',''B'',''C'',''D'',''E'',''F'',''G'',''H'',''I'',''J'',''K'',''L'',''M'',''N'''; put '''N'',''O'',''P'',''Q'',''R'',''S'',''T'',''U'',''V'',''W'',''X'',''Y'',''Z'',''_'''; put ')'; put 'then do;'; put '/* check if the raw_value contains a valid variable NAME */'; put 'vnum=varnum(dsid,subpad(raw_value,1,32));'; put 'if vnum>0 then do;'; put '/* now we can get the type */'; put 'vtype2=vartype(dsid,vnum);'; put '/* check type matches */'; put 'if vtype2=vtype then do;'; put '/* valid target var - exit loop */'; put 'return;'; put 'end;'; put 'else do;'; put 'REASON_CD=cats("Compared Type (",vtype2,") is not (",vtype,")");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'goto endstep;'; put 'end;'; put 'end;'; put 'end;'; put 'end;'; put '/* special logic */'; put 'if OPERATOR_NM in (''IN'',''NOT IN'',''BETWEEN'') then do;'; put 'if OPERATOR_NM=''BETWEEN'' then raw_value1=tranwrd(raw_value,'' AND '','','');'; put 'else do;'; put 'if substr(raw_value,1,1) ne ''('''; put 'or substr(cats(reverse(raw_value)),1,1) ne '')'''; put 'then do;'; put 'REASON_CD=''Missing start/end bracket in RAW_VALUE'';'; put 'putlog REASON_CD= OPERATOR_NM= raw_value= raw_value1= ;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'else raw_value1=substr(raw_value,2,max(length(raw_value)-2,0));'; put 'end;'; put '/* we now have a comma seperated list of values */'; put 'if vtype=''N'' then do i=1 to countc(raw_value1, '','')+1;'; put 'tmp=scan(raw_value1,i,'','');'; put 'if cats(tmp) ne ''.'' and input(tmp, ?? 8.) eq . then do;'; put 'if OPERATOR_NM =''BETWEEN'' and subpad(upcase(tmp),1,1) in ('; put '''A'',''B'',''C'',''D'',''E'',''F'',''G'',''H'',''I'',''J'',''K'',''L'',''M'',''N'''; put '''N'',''O'',''P'',''Q'',''R'',''S'',''T'',''U'',''V'',''W'',''X'',''Y'',''Z'',''_'''; put ')'; put 'then do;'; put '/* check if the raw_value contains a valid variable NAME */'; put '/* is not valid syntax for IN or NOT IN */'; put 'vnum=varnum(dsid,subpad(tmp,1,32));'; put 'if vnum>0 then do;'; put '/* now we can get the type */'; put 'vtype2=vartype(dsid,vnum);'; put '/* check type matches */'; put 'if vtype2=vtype then do;'; put '/* valid target var - exit loop */'; put 'return;'; put 'end;'; put 'else do;'; put 'REASON_CD=cats("Compared Type (",vtype2,") is not (",vtype,")");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'goto endstep;'; put 'end;'; put 'end;'; put 'end;'; put 'REASON_CD=''Non Numeric value provided'';'; put 'putlog REASON_CD= OPERATOR_NM= raw_value= raw_value1= ;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'return;'; put 'end;'; put 'end;'; put 'else raw_value1=raw_value;'; put '/* remove nested literals eg '''' */'; put 'raw_value1=tranwrd(raw_value1,"''''",'''');'; put '/* now match string literals (always single quotes) */'; put 'raw_value2=raw_value1;'; put 'regex = prxparse("s/(\'').*?(\'')//");'; put 'call prxchange(regex,-1,raw_value2);'; put '/* remove commas and periods*/'; put 'raw_value3=compress(raw_value2,'',.'');'; put '/* output records that contain values other than digits and spaces */'; put 'if notdigit(compress(raw_value3,'' ''))>0 then do;'; put 'if vtype=''C'' and subpad(upcase(raw_value),1,1) in ('; put '''A'',''B'',''C'',''D'',''E'',''F'',''G'',''H'',''I'',''J'',''K'',''L'',''M'',''N'''; put '''N'',''O'',''P'',''Q'',''R'',''S'',''T'',''U'',''V'',''W'',''X'',''Y'',''Z'',''_'''; put ')'; put 'then do;'; put '/* check if the raw_value contains a valid variable NAME */'; put 'vnum=varnum(dsid,subpad(raw_value,1,32));'; put 'if vnum>0 then do;'; put '/* now we can get the type */'; put 'vtype2=vartype(dsid,vnum);'; put '/* check type matches */'; put 'if vtype2=vtype then do;'; put '/* valid target var - exit loop */'; put 'return;'; put 'end;'; put 'else do;'; put 'REASON_CD=cats("Compared Char Type (",vtype2,") is not (",vtype,")");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'goto endstep;'; put 'end;'; put 'end;'; put 'end;'; put 'putlog raw_value3= $hex32.;'; put 'REASON_CD=cats(''Invalid RAW_VALUE:'',raw_value);'; put 'putlog (_all_)(=);'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'endstep:'; put 'if last then rc=close(dsid);'; put 'run;'; put 'data _null_;'; put 'set &outds end=last;'; put 'putlog (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue=(&abort=YES and &nobs>0),'; put 'mac=&sysmacroname,'; put 'msg=%str(Data issue: %superq(reason_cd))'; put ')'; put '%if &nobs>0 %then %do;'; put '%let syscc=1008;'; put '%return;'; put '%end;'; put '/**'; put '* syntax checking passed but it does not mean the filter is valid'; put '* for that we can run a proc sql validate query'; put '*/'; put '%local fref1;'; put '%let fref1=%mf_getuniquefileref();'; put '%mp_filtergenerate(&inds,outref=&fref1)'; put '/* this macro will also set syscc to 1008 if any issues found */'; put '%mp_filtervalidate(&fref1,&targetds,outds=&outds,abort=&abort)'; put '%mend mp_filtercheck;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Retrieves column info to enable population of dropdowns'; put '@details An optional filterquery may be provided, if so then it is validated'; put 'and then used to filter the subsequent results.'; put '

Service Inputs

'; put '
IWANT
'; put 'The STARTROW and ROWS variables are used to fetch additional values beyond'; put 'the initial default (4000).'; put '|libds:$19.|col:$9.|STARTROW:8.|ROWS:8.|'; put '|---|---|---|---|'; put '|DC258467.MPE_X_TEST|SOME_TIME|4001|1000'; put '
FILTERQUERY
'; put '|GROUP_LOGIC:$3|SUBGROUP_LOGIC:$3|SUBGROUP_ID:8.|VARIABLE_NM:$32|OPERATOR_NM:$10|RAW_VALUE:$32767|'; put '|---|---|---|---|---|---|'; put '|AND|AND|1|SOME_BESTNUM|>|1|'; put '|AND|AND|1|SOME_TIME|=|77333|'; put '

Service Outputs

'; put '
VALS
'; put 'The type of this column actually depends on the underlying column type, so it can change'; put '|FORMATTED|UNFORMATTED|'; put '|---|---|'; put '|$44.00|44|'; put '
META
'; put '|COLUMN:$32.|SASFORMAT:$32.|STARTROW:8.|ROWS:8.|'; put '|---|---|---|---|'; put '|COL_NAME|DOLLAR8.2|4001|1000'; put '

SAS Macros

'; put '@li mf_existds.sas'; put '@li mf_getvalue.sas'; put '@li mf_verifymacvars.sas'; put '@li dc_assignlib.sas'; put '@li mf_getvarformat.sas'; put '@li mp_abort.sas'; put '@li mp_cntlout.sas'; put '@li mp_filtercheck.sas'; put '@li mp_filtergenerate.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd.'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '/* input table may or may not exist */'; put 'data work.initvars;'; put 'length GROUP_LOGIC $3 SUBGROUP_LOGIC $3 SUBGROUP_ID 8 VARIABLE_NM $32'; put 'OPERATOR_NM $10 RAW_VALUE $32767;'; put 'call missing(of _all_);'; put 'stop;'; put 'data work.filterquery;'; put 'set %sysfunc(ifc('; put '%mf_existds(work.filterquery)=1'; put ',work.filterquery'; put ',work.initvars'; put '));'; put 'run;'; put '/* print data for debugging */'; put 'data _null_;'; put 'set work.iwant;'; put 'put (_all_)(=);'; put 'run;'; put 'data _null_;'; put 'set work.filterquery;'; put 'put (_all_)(=);'; put 'run;'; put '%let libds=%mf_getvalue(work.iwant,libds);'; put '%let col2=%mf_getvalue(work.iwant,col);'; put '%let is_fmt=0;'; put '%let startrow=1;'; put '%let rows=4000;'; put '%put &=libds;'; put '%put &=col2;'; put '%mp_abort(iftrue= (%mf_verifymacvars(libds col2)=0)'; put ',mac=&_program..sas'; put ',msg=%str(Missing inputs from iwant. Libds=&libds col=&col2 )'; put ')'; put '%dc_assignlib(WRITE,%scan(&libds,1,.))'; put 'data _null_;'; put 'call missing(startrow,rows);'; put 'set work.iwant;'; put '/* check if the request is for a format catalog */'; put 'call symputx(''orig_libds'',libds);'; put 'is_fmt=0;'; put 'if substr(cats(reverse(libds)),1,3)=:''CF-'' then do;'; put 'libds=scan(libds,1,''-'');'; put 'putlog "Format Catalog Captured";'; put 'call symputx(''libds'',''work.fmtextract'');'; put 'is_fmt=1;'; put 'end;'; put 'call symputx(''is_fmt'',is_fmt);'; put 'call symputx(''startrow'',coalesce(startrow,&startrow));'; put 'call symputx(''rows'',coalesce(rows,&rows));'; put 'putlog (_all_)(=);'; put 'run;'; put '%mp_cntlout('; put 'iftrue=(&is_fmt=1)'; put ',libcat=&orig_libds'; put ',fmtlist=0'; put ',cntlout=work.fmtextract'; put ')'; put '/**'; put '* Validate the filter query'; put '*/'; put '%mp_filtercheck(work.filterquery,targetds=&libds,abort=YES)'; put '/**'; put '* Prepare the query'; put '*/'; put '%mp_filtergenerate(work.filterquery,outref=myfilter)'; put '/* cannot %inc in a sql where clause, only data step, so - use a view */'; put 'data work.vw_vals/view=work.vw_vals;'; put 'set &libds;'; put 'where %inc myfilter;;'; put 'run;'; put 'proc sql;'; put 'create view work.vw_vals_sorted as'; put 'select distinct'; put 'put(&col2,%mf_getVarFormat(&libds,&col2,force=1)) as formatted,'; put '&col2 as unformatted'; put 'from work.vw_vals;'; put '/* restrict num of output values */'; put 'data work.vals;'; put 'set work.vw_vals_sorted;'; put 'if _n_ ge &startrow;'; put 'x+1;'; put 'if x>&rows then stop;'; put 'drop x;'; put 'run;'; put 'data vals;'; put '/* ensure empty value if table is empty, for dropdowns */'; put 'if nobs=0 then output;'; put 'set vals nobs=nobs;'; put 'format unformatted ;'; put 'output;'; put 'run;'; put 'proc sql noprint;'; put 'select count(*) into: nobs from work.vw_vals_sorted;'; put 'data meta;'; put 'column="&col2";'; put 'sasformat="%mf_getVarFormat(&libds,&col2)";'; put 'startrow=&startrow;'; put 'rows=&rows;'; put 'nobs=&nobs;'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%webout(OPEN)'; put '%webout(OBJ,vals,missing=STRING,showmeta=YES)'; put '%webout(OBJ,meta)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=getddl; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; put 'proc sql;'; put 'create table &libds('; put 'TYPE char(1) label='; put '''Format Type: either N (num fmt), C (char fmt), I (num infmt) or J (char infmt)'''; put ',FMTNAME char(32) label=''Format name'''; put ',FMTROW num label='; put '''CALCULATED Position of record by FMTNAME (reqd for multilabel formats)'''; put ',START char(32767) label=''Starting value for format'''; put '/*'; put 'Keep lengths of START and END the same to avoid this err:'; put '"Start is greater than end: -<."'; put 'Similar usage note: https://support.sas.com/kb/69/330.html'; put '*/'; put ',END char(32767) label=''Ending value for format'''; put ',LABEL char(32767) label=''Format value label'''; put ',MIN num length=3 label=''Minimum length'''; put ',MAX num length=3 label=''Maximum length'''; put ',DEFAULT num length=3 label=''Default length'''; put ',LENGTH num length=3 label=''Format length'''; put ',FUZZ num label=''Fuzz value'''; put ',PREFIX char(2) label=''Prefix characters'''; put ',MULT num label=''Multiplier'''; put ',FILL char(1) label=''Fill character'''; put ',NOEDIT num length=3 label=''Is picture string noedit?'''; put ',SEXCL char(1) label=''Start exclusion'''; put ',EEXCL char(1) label=''End exclusion'''; put ',HLO char(13) label='; put '''More info: https://core.sasjs.io/mddl__sas__cntlout_8sas_source.html'''; put ',DECSEP char(1) label=''Decimal separator'''; put ',DIG3SEP char(1) label=''Three-digit separator'''; put ',DATATYPE char(8) label=''Date/time/datetime?'''; put ',LANGUAGE char(8) label=''Language for date strings'''; put ');'; put '%local lib;'; put '%let libds=%upcase(&libds);'; put '%if %index(&libds,.)=0 %then %let lib=WORK;'; put '%else %let lib=%scan(&libds,1,.);'; put 'proc datasets lib=&lib noprint;'; put 'modify %scan(&libds,-1,.);'; put 'index create'; put 'pk_cntlout=(type fmtname fmtrow)'; put '/nomiss unique;'; put 'quit;'; put '%mend mddl_sas_cntlout;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '%macro mf_existfileref(fref'; put ')/*/STORE SOURCE*/;'; put '%local rc;'; put '%let rc=%sysfunc(fileref(&fref));'; put '%if &rc=0 %then %do;'; put '1'; put '%end;'; put '%else %if &rc<0 %then %do;'; put '%put &sysmacroname: Fileref &fref exists but the underlying file does not;'; put '1'; put '%end;'; put '%else %do;'; put '0'; put '%end;'; put '%mend mf_existfileref;'; put '%macro mf_getvarcount(libds,typefilter=A'; put ')/*/STORE SOURCE*/;'; put '%local dsid nvars rc outcnt x;'; put '%let dsid=%sysfunc(open(&libds));'; put '%let nvars=.;'; put '%let outcnt=0;'; put '%let typefilter=%upcase(&typefilter);'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &typefilter=A %then %let outcnt=&nvars;'; put '%else %if &nvars>0 %then %do x=1 %to &nvars;'; put '/* increment based on variable type */'; put '%if %sysfunc(vartype(&dsid,&x))=&typefilter %then %do;'; put '%let outcnt=%eval(&outcnt+1);'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put unable to open &libds (rc=&dsid);'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '&outcnt'; put '%mend mf_getvarcount;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro mp_getconstraints(lib=WORK'; put ',ds='; put ',outds=mp_getconstraints'; put ',mdebug=0'; put ')/*/STORE SOURCE*/;'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '/**'; put '* Cater for environments where sashelp.vcncolu is not available'; put '*/'; put '%if %sysfunc(exist(sashelp.vcncolu,view))=0 %then %do;'; put 'proc sql;'; put 'create table &outds('; put 'libref char(8)'; put ',TABLE_NAME char(32)'; put ',constraint_type char(8) label=''Constraint Type'''; put ',constraint_name char(32) label=''Constraint Name'''; put ',column_name char(32) label=''Column'''; put ',constraint_order num'; put ');'; put '%return;'; put '%end;'; put '/**'; put '* Neither dictionary tables nor sashelp provides a constraint order column,'; put '* however they DO arrive in the correct order. So, create the col.'; put '**/'; put '%local vw;'; put '%let vw=%mf_getuniquename(prefix=mp_getconstraints_vw_);'; put 'data &vw /view=&vw;'; put 'set sashelp.vcncolu;'; put 'where table_catalog="&lib";'; put '/* use retain approach to reset the constraint order with each constraint */'; put 'length tmp $1000;'; put 'retain tmp;'; put 'drop tmp;'; put 'if tmp ne catx(''|'',table_catalog,table_name,constraint_name) then do;'; put 'constraint_order=1;'; put 'end;'; put 'else constraint_order+1;'; put 'tmp=catx(''|'',table_catalog, table_name,constraint_name);'; put 'run;'; put '/* must use SQL as proc datasets does not support length changes */'; put 'proc sql noprint;'; put 'create table &outds as'; put 'select upcase(a.TABLE_CATALOG) as libref'; put ',upcase(a.TABLE_NAME) as TABLE_NAME'; put ',a.constraint_type'; put ',a.constraint_name'; put ',b.column_name'; put ',b.constraint_order'; put 'from dictionary.TABLE_CONSTRAINTS a'; put 'left join &vw b'; put 'on upcase(a.TABLE_CATALOG)=upcase(b.TABLE_CATALOG)'; put 'and upcase(a.TABLE_NAME)=upcase(b.TABLE_NAME)'; put 'and a.constraint_name=b.constraint_name'; put '/**'; put '* We cannot apply this clause to the underlying dictionary table. See:'; put '* https://communities.sas.com/t5/SAS-Programming/Unexpected-Where-Clause-behaviour-in-dictionary-TABLE/m-p/771554#M244867'; put '* cannot use`where calculated libref="&lib"` either as it will STILL execute'; put '* all the underlying constraint queries, causing exception errors in some'; put '* cases: https://github.com/sasjs/core/issues/283'; put '*/'; put 'where a.TABLE_CATALOG="&lib"'; put '%if "&ds" ne "" %then %do;'; put 'and upcase(a.TABLE_NAME)="&ds"'; put 'and upcase(b.TABLE_NAME)="&ds"'; put '%end;'; put 'order by libref, table_name, constraint_name, constraint_order'; put ';'; put '/* tidy up */'; put '%mp_dropmembers('; put '&vw,'; put 'iftrue=(&mdebug=0)'; put ')'; put '%mend mp_getconstraints;'; put '%macro mp_getddl(libref,ds,fref=getddl,flavour=SAS,showlog=NO,schema='; put ',applydttm=NO'; put ')/*/STORE SOURCE*/;'; put '/* check fileref is assigned */'; put '%if %mf_existfileref(&fref)=0 %then %do;'; put 'filename &fref temp ;'; put '%end;'; put '%if %length(&libref)=0 %then %let libref=WORK;'; put '%let flavour=%upcase(&flavour);'; put 'proc sql noprint;'; put 'create table _data_ as'; put 'select * from dictionary.tables'; put 'where upcase(libname)="%upcase(&libref)"'; put 'and memtype=''DATA'' /* views not currently supported */'; put '%if %length(&ds)>0 %then %do;'; put 'and upcase(memname)="%upcase(&ds)"'; put '%end;'; put ';'; put '%local tabinfo; %let tabinfo=&syslast;'; put 'create table _data_ as'; put 'select * from dictionary.columns'; put 'where upcase(libname)="%upcase(&libref)"'; put '%if %length(&ds)>0 %then %do;'; put 'and upcase(memname)="%upcase(&ds)"'; put '%end;'; put ';'; put '%local colinfo; %let colinfo=&syslast;'; put '%local dsnlist;'; put 'select distinct upcase(memname) into: dsnlist'; put 'separated by '' '''; put 'from &syslast'; put ';'; put 'create table _data_ as'; put 'select * from dictionary.indexes'; put 'where upcase(libname)="%upcase(&libref)"'; put '%if %length(&ds)>0 %then %do;'; put 'and upcase(memname)="%upcase(&ds)"'; put '%end;'; put 'order by idxusage, indxname, indxpos'; put ';'; put '%local idxinfo; %let idxinfo=&syslast;'; put '/* Extract all Primary Key and Unique data constraints */'; put '%mp_getconstraints(lib=%upcase(&libref),ds=%upcase(&ds),outds=_data_)'; put '%local colconst; %let colconst=&syslast;'; put '%macro addConst();'; put '%global constraints_used;'; put 'data _null_;'; put 'length ctype $11 constraint_name_orig $256 constraints_used $5000;'; put 'set &colconst('; put 'where=(table_name="&curds" and constraint_type in (''PRIMARY'',''UNIQUE''))'; put ') end=last;'; put 'file &fref mod;'; put 'by constraint_type constraint_name;'; put 'retain constraints_used;'; put 'constraint_name_orig=constraint_name;'; put 'if upcase(strip(constraint_type)) = ''PRIMARY'' then ctype=''PRIMARY KEY'';'; put 'else ctype=strip(constraint_type);'; put '%if &flavour=TSQL %then %do;'; put 'column_name=catt(''['',column_name,'']'');'; put 'constraint_name=catt(''['',constraint_name,'']'');'; put '%end;'; put '%else %if &flavour=PGSQL %then %do;'; put 'column_name=catt(''"'',column_name,''"'');'; put 'constraint_name=catt(''"'',constraint_name,''"'');'; put '%end;'; put 'if first.constraint_name then do;'; put 'constraints_used = catx('' '', constraints_used, constraint_name_orig);'; put 'put " ,CONSTRAINT " constraint_name ctype "(" ;'; put 'put '' '' column_name;'; put 'end;'; put 'else put '' ,'' column_name;'; put 'if last.constraint_name then do;'; put 'put " )";'; put 'call symput(''constraints_used'',strip(constraints_used));'; put 'end;'; put 'run;'; put '%put &=constraints_used;'; put '%mend addConst;'; put 'data _null_;'; put 'file &fref mod;'; put 'put "/* DDL generated by &sysuserid on %sysfunc(datetime(),datetime19.) */";'; put 'run;'; put '%local x curds;'; put '%if &flavour=SAS %then %do;'; put '%do x=1 %to %sysfunc(countw(&dsnlist));'; put '%let curds=%scan(&dsnlist,&x);'; put 'data _null_;'; put 'file &fref mod;'; put 'put "/* SAS Flavour DDL for %upcase(&libref).&curds */";'; put 'put "proc sql;";'; put 'run;'; put 'data _null_;'; put 'file &fref mod;'; put 'length lab $1024 typ $20;'; put 'set &colinfo (where=(upcase(memname)="&curds")) end=last;'; put 'if _n_=1 then do;'; put 'if memtype=''DATA'' then do;'; put 'put "create table &libref..&curds(";'; put 'end;'; put 'else do;'; put '/* just a placeholder - we filter out views at the top */'; put 'put "create view &libref..&curds(";'; put 'end;'; put 'put " "@@;'; put 'end;'; put 'else put " ,"@@;'; put 'if length(format)>1 then fmt=" format="!!cats(format);'; put 'if length(label)>1 then'; put 'lab=" label="!!cats("''",tranwrd(label,"''","''''"),"''");'; put 'if notnull=''yes'' then notnul='' not null'';'; put 'if type=''char'' then typ=cats(''char('',length,'')'');'; put 'else if length ne 8 then typ=''num length=''!!cats(length);'; put 'else typ=''num'';'; put 'put name typ fmt notnul lab;'; put 'run;'; put '/* Extra step for data constraints */'; put '%addConst()'; put 'data _null_;'; put 'file &fref mod;'; put 'put '');'';'; put 'run;'; put '/* Create Unique Indexes, but only if they were not already defined within'; put 'the Constraints section. */'; put 'data _null_;'; put '*length ds $128;'; put 'set &idxinfo('; put 'where=('; put 'memname="&curds"'; put 'and unique=''yes'''; put 'and indxname not in ('; put '%sysfunc(tranwrd("&constraints_used",%str( ),%str(",")))'; put ')'; put ')'; put ');'; put 'file &fref mod;'; put 'by idxusage indxname;'; put '/* ds=cats(libname,''.'',memname); */'; put 'if first.indxname then do;'; put 'put ''CREATE UNIQUE INDEX '' indxname "ON &libref..&curds (" ;'; put 'put '' '' name ;'; put 'end;'; put 'else put '' ,'' name ;'; put '*else put '' ,'' name ;'; put 'if last.indxname then do;'; put 'put '');'';'; put 'end;'; put 'run;'; put '/*'; put 'ods output IntegrityConstraints=ic;'; put 'proc contents data=testali out2=info;'; put 'run;'; put '*/'; put '%end;'; put '%end;'; put '%else %if &flavour=TSQL %then %do;'; put '/* if schema does not exist, set to be same as libref */'; put '%local schemaactual;'; put 'proc sql noprint;'; put 'select sysvalue into: schemaactual'; put 'from dictionary.libnames'; put 'where upcase(libname)="&libref" and engine=''SQLSVR'';'; put '%let schema=%sysfunc(coalescec(&schemaactual,&schema,&libref));'; put '%do x=1 %to %sysfunc(countw(&dsnlist));'; put '%let curds=%scan(&dsnlist,&x);'; put 'data _null_;'; put 'file &fref mod;'; put 'put "/* TSQL Flavour DDL for &schema..&curds */";'; put 'data _null_;'; put 'file &fref mod;'; put 'set &colinfo (where=(upcase(memname)="&curds")) end=last;'; put 'if _n_=1 then do;'; put 'if memtype=''DATA'' then do;'; put 'put "create table [&schema].[&curds](";'; put 'end;'; put 'else do;'; put '/* just a placeholder - we filter out views at the top */'; put 'put "create view [&schema].[&curds](";'; put 'end;'; put 'put " "@@;'; put 'end;'; put 'else put " ,"@@;'; put 'format=upcase(format);'; put 'if 1=0 then; /* dummy if */'; put '%if &applydttm=YES %then %do;'; put 'else if format=:''DATETIME'' then fmt=''[datetime2](7) '';'; put '%end;'; put 'else if type=''num'' then fmt=''[decimal](18,2)'';'; put 'else if length le 8000 then fmt=''[varchar](''!!cats(length)!!'')'';'; put 'else fmt=cats(''[varchar](max)'');'; put 'if notnull=''yes'' then notnul='' NOT NULL'';'; put 'put "[" name +(-1) "]" fmt notnul;'; put 'run;'; put '/* Extra step for data constraints */'; put '%addConst()'; put '/* Create Unique Indexes, but only if they were not already defined within'; put 'the Constraints section. */'; put 'data _null_;'; put '*length ds $128;'; put 'set &idxinfo('; put 'where=('; put 'memname="&curds"'; put 'and unique=''yes'''; put 'and indxname not in ('; put '%sysfunc(tranwrd("&constraints_used",%str( ),%str(",")))'; put ')'; put ')'; put ');'; put 'file &fref mod;'; put 'by idxusage indxname;'; put '*ds=cats(libname,''.'',memname);'; put 'if first.indxname then do;'; put '/* add nonclustered in case of multiple unique indexes */'; put 'put '' ,index ['' indxname +(-1) ''] UNIQUE NONCLUSTERED ('';'; put 'put '' ['' name +(-1) '']'';'; put 'end;'; put 'else put '' ,['' name +(-1) '']'';'; put 'if last.indxname then do;'; put 'put '' )'';'; put 'end;'; put 'run;'; put 'data _null_;'; put 'file &fref mod;'; put 'put '')'';'; put 'put ''GO'';'; put 'run;'; put '/* add extended properties for labels */'; put 'data _null_;'; put 'file &fref mod;'; put 'length nm $64 lab $1024;'; put 'set &colinfo (where=(upcase(memname)="&curds" and label ne '''')) end=last;'; put 'nm=cats("N''",tranwrd(name,"''","''''"),"''");'; put 'lab=cats("N''",tranwrd(label,"''","''''"),"''");'; put 'put '' '';'; put 'put "EXEC sys.sp_addextendedproperty ";'; put 'put " @name=N''MS_Description'',@value=" lab ;'; put 'put " ,@level0type=N''SCHEMA'',@level0name=N''&schema'' ";'; put 'put " ,@level1type=N''TABLE'',@level1name=N''&curds''";'; put 'put " ,@level2type=N''COLUMN'',@level2name=" nm ;'; put 'if last then put ''GO'';'; put 'run;'; put '%end;'; put '%end;'; put '%else %if &flavour=PGSQL %then %do;'; put '/* if schema does not exist, set to be same as libref */'; put '%local schemaactual;'; put 'proc sql noprint;'; put 'select sysvalue into: schemaactual'; put 'from dictionary.libnames'; put 'where upcase(libname)="&libref" and engine=''POSTGRES'';'; put '%let schema=%sysfunc(coalescec(&schemaactual,&schema,&libref));'; put 'data _null_;'; put 'file &fref mod;'; put 'put "CREATE SCHEMA &schema;";'; put '%do x=1 %to %sysfunc(countw(&dsnlist));'; put '%let curds=%scan(&dsnlist,&x);'; put '%local curdsvarcount;'; put '%let curdsvarcount=%mf_getvarcount(&libref..&curds);'; put '%if &curdsvarcount>1600 %then %do;'; put 'data _null_;'; put 'file &fref mod;'; put 'put "/* &libref..&curds contains &curdsvarcount vars */";'; put 'put "/* Postgres cannot create tables with over 1600 vars */";'; put 'put "/* No DDL will be generated for this table";'; put 'run;'; put '%end;'; put '%else %do;'; put 'data _null_;'; put 'file &fref mod;'; put 'put "/* Postgres Flavour DDL for &schema..&curds */";'; put 'data _null_;'; put 'file &fref mod;'; put 'set &colinfo (where=(upcase(memname)="&curds")) end=last;'; put 'length fmt $32;'; put 'if _n_=1 then do;'; put 'if memtype=''DATA'' then do;'; put 'put "CREATE TABLE &schema..&curds (";'; put 'end;'; put 'else do;'; put '/* just a placeholder - we filter out views at the top */'; put 'put "CREATE VIEW &schema..&curds (";'; put 'end;'; put 'put " "@@;'; put 'end;'; put 'else put " ,"@@;'; put 'format=upcase(format);'; put 'if 1=0 then; /* dummy if */'; put '%if &applydttm=YES %then %do;'; put 'else if format=:''DATETIME'' then fmt='' TIMESTAMP '';'; put '%end;'; put 'else if type=''num'' then fmt='' DOUBLE PRECISION'';'; put 'else fmt=''VARCHAR(''!!cats(length)!!'')'';'; put 'if notnull=''yes'' then notnul='' NOT NULL'';'; put '/* quote column names in case they represent reserved words */'; put 'name2=quote(trim(name));'; put 'put name2 fmt notnul;'; put 'run;'; put '/* Extra step for data constraints */'; put '%addConst()'; put 'data _null_;'; put 'file &fref mod;'; put 'put '');'';'; put 'run;'; put '/* Create Unique Indexes, but only if they were not already defined within'; put 'the Constraints section. */'; put 'data _null_;'; put '*length ds $128;'; put 'set &idxinfo('; put 'where=('; put 'memname="&curds"'; put 'and unique=''yes'''; put 'and indxname not in ('; put '%sysfunc(tranwrd("&constraints_used",%str( ),%str(",")))'; put ')'; put ')'; put ');'; put 'file &fref mod;'; put 'by idxusage indxname;'; put 'if first.indxname then do;'; put 'put ''CREATE UNIQUE INDEX "'' indxname +(-1) ''" '' "ON &schema..&curds(";'; put 'put '' "'' name +(-1) ''"'' ;'; put 'end;'; put 'else put '' ,"'' name +(-1) ''"'';'; put 'if last.indxname then do;'; put 'put '');'';'; put 'end;'; put 'run;'; put '%end;'; put '%end;'; put '%end;'; put '%if %upcase(&showlog)=YES %then %do;'; put 'options ps=max;'; put 'data _null_;'; put 'infile &fref;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%end;'; put '%mend mp_getddl;'; put '%macro mfs_httpheader(header_name'; put ',header_value'; put ')/*/STORE SOURCE*/;'; put '%global sasjs_stpsrv_header_loc;'; put '%local fref fid i;'; put '%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;'; put '%put &=fref &=sasjs_stpsrv_header_loc;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%mend mfs_httpheader;'; put '%macro mp_binarycopy('; put 'inloc= /* full path and filename of the object to be copied */'; put ',outloc= /* full path and filename of object to be created */'; put ',inref=____in /* override default to use own filerefs */'; put ',outref=____out /* override default to use own filerefs */'; put ',mode=CREATE'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%local mod;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if &mode=APPEND %then %let mod=mod;'; put '/* these IN and OUT filerefs can point to anything */'; put '%if &inref = ____in %then %do;'; put 'filename &inref &inloc lrecl=1048576 ;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref &outloc lrecl=1048576 &mod;'; put '%end;'; put '/* copy the file byte-for-byte */'; put 'data _null_;'; put 'infile &inref lrecl=1 recfm=n;'; put 'file &outref &mod recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%if &inref = ____in %then %do;'; put 'filename &inref clear;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref clear;'; put '%end;'; put '%mend mp_binarycopy;'; put '%macro mp_streamfile('; put 'contenttype=TEXT'; put ',inloc='; put ',inref=0'; put ',iftrue=%str(1=1)'; put ',outname='; put ',outref=_webout'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let contentype=%upcase(&contenttype);'; put '%let outref=%upcase(&outref);'; put '%local platform; %let platform=%mf_getplatform();'; put '/**'; put '* check engine type to avoid the below err message:'; put '* > Function is only valid for filerefs using the CACHE access method.'; put '*/'; put '%local streamweb;'; put '%let streamweb=0;'; put 'data _null_;'; put 'set sashelp.vextfl(where=(upcase(fileref)="&outref"));'; put 'if xengine=''STREAM'' then call symputx(''streamweb'',1,''l'');'; put 'run;'; put '%if &contentype=CSV %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/csv'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; put 'contenttype=''application/csv'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/csv)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=EXCEL %then %do;'; put '/* suitable for XLS format */'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/vnd.ms-excel'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; put 'contenttype=''application/vnd.ms-excel'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/vnd.ms-excel)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=GIF or &contentype=JPEG or &contentype=PNG %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"image/%lowcase(&contenttype)");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'contenttype="image/%lowcase(&contenttype)";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,image/%lowcase(&contenttype))'; put '%end;'; put '%end;'; put '%else %if &contentype=HTML or &contenttype=MARKDOWN %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"text/%lowcase(&contenttype)");'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json"'; put 'contenttype="text/%lowcase(&contenttype)"'; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,text/%lowcase(&contenttype))'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=TEXT %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/text'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; put 'contenttype=''application/text'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/text)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=WOFF or &contentype=WOFF2 or &contentype=TTF %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"font/%lowcase(&contenttype)");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'contenttype="font/%lowcase(&contenttype)";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,font/%lowcase(&contenttype))'; put '%end;'; put '%end;'; put '%else %if &contentype=XLSX %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'','; put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; put 'contenttype='; put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type'; put ',application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; put ')'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=ZIP %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/zip'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.zip'''; put 'contenttype=''application/zip'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/zip)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %do;'; put '%put %str(ERR)OR: Content Type &contenttype NOT SUPPORTED by &sysmacroname!;'; put '%end;'; put '%if &inref ne 0 %then %do;'; put '%mp_binarycopy(inref=&inref,outref=&outref)'; put '%end;'; put '%else %do;'; put '%mp_binarycopy(inloc="&inloc",outref=&outref)'; put '%end;'; put '%mend mp_streamfile;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Download DDL for a table or entire library in a particular flavour.'; put '@details'; put '

SAS Macros

'; put '@li mddl_sas_cntlout.sas'; put '@li dc_assignlib.sas'; put '@li mf_existds.sas'; put '@li mp_abort.sas'; put '@li mp_getddl.sas'; put '@li mp_streamfile.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%global libref ds flavour;'; put '%let flavour=%sysfunc(coalescec(&flavour,SAS));'; put '%mpeinit()'; put '%dc_assignlib(READ,&libref)'; put 'data _null_;'; put '/* check if the request is for a format catalog */'; put 'ds=symget(''ds'');'; put 'if subpad(cats(reverse(ds)),1,3)=:''CF-'' then do;'; put 'ds=scan(ds,1,''-'');'; put 'libds=cats(symget(''libref''),''.'',ds);'; put 'putlog "Format Catalog Captured";'; put 'call execute(''%mddl_sas_cntlout(libds=work.fmtextract)'');'; put 'call symputx(''libref'',''work'');'; put 'call symputx(''ds'',''fmtextract'');'; put 'end;'; put 'putlog (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue=("exist&ds" ne "exist" and %mf_existds(libds=&libref..&ds)<1)'; put ',mac=&_program'; put ',msg=%str(Dataset &libref..&ds was not found)'; put ')'; put '%let tmploc=%sysfunc(pathname(work))/temp.txt;'; put 'filename tmp "&tmploc";'; put '%mp_getddl(&libref,&ds,flavour=&flavour, fref=tmp, applydttm=YES)'; put '%mp_streamfile(contenttype=TEXT'; put ',inloc=%str(&tmploc)'; put ',outname=&libref._&ds..ddl'; put ')'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=getgroups; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mc,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getgroups(access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',outds=work.viyagroups'; put ');'; put '%local oauth_bearer base_uri fname1 libref1;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '/* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/groups?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getgroups;'; put '%macro dc_getgroups(outds=mm_getgroups);'; put '%mv_getgroups(outds=&outds)'; put 'proc sort'; put 'data=&outds(rename=(id=groupuri name=groupname description=groupdesc))'; put 'out=&outds (keep=groupuri groupname groupdesc);'; put 'by groupname;'; put 'run;'; put '%mend dc_getgroups;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file getgroups.sas'; put '@brief List all SAS Groups'; put '@details Gets a list of all SAS Groups. Runs without mpeinit() so that it'; put 'can be available to the sasjs/server configurator'; put '

SAS Macros

'; put '@li dc_getgroups.sas'; put '

Data Outputs

'; put '
groups
'; put '|NAME:$32.|DESCRIPTION:$64.|GROUPID:best.|'; put '|---|---|---|'; put '|`SomeGroup `|`A group `|`1`|'; put '|`Another Group`|`this is a different group`|`2`|'; put '|`admin`|`Administrators `|`3`|'; put '@version 9.3'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%dc_getgroups(outds=groups)'; put '%webout(OPEN)'; put '%webout(OBJ,groups)'; put '%webout(CLOSE)'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=getrawdata; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mc,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '%macro mp_filtergenerate(inds,outref=filter);'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc - on macro entry)'; put ')'; put 'filename &outref temp;'; put '%if %mf_nobs(&inds)=0 %then %do;'; put '/* ensure we have a default filter */'; put 'data _null_;'; put 'file &outref;'; put 'put ''1=1'';'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc sort data=&inds;'; put 'by SUBGROUP_ID;'; put 'run;'; put 'data _null_;'; put 'file &outref lrecl=32800;'; put 'set &inds end=last;'; put 'by SUBGROUP_ID;'; put 'if _n_=1 then put ''(('';'; put 'else if first.SUBGROUP_ID then put +1 GROUP_LOGIC ''('';'; put 'else put +2 SUBGROUP_LOGIC;'; put 'put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;'; put 'if last.SUBGROUP_ID then put '')''@;'; put 'if last then put '')'';'; put 'run;'; put '%end;'; put '%mend mp_filtergenerate;'; put '%macro mpe_filtermaster(mode,libds,'; put 'dclib=,'; put 'filter_rk=-1,'; put 'outref=0,'; put 'outds=work.query'; put ');'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%let mode=%upcase(&mode);'; put '%let libds=%upcase(&libds);'; put '%mp_abort(iftrue= ('; put '&mode ne EDIT and &mode ne VIEW and &mode ne DLOAD and &mode ne ULOAD'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid MODE: &mode)'; put ')'; put '%mp_abort(iftrue= (&outref = 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Please provide a fileref!)'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc)'; put ')'; put 'filename &outref temp;'; put '/* ensure outputs exist */'; put 'data _null_;'; put 'file &outref;'; put 'put '' '';'; put 'run;'; put 'data &outds;'; put 'set &dclib..mpe_filtersource;'; put 'stop;'; put 'run;'; put '/**'; put '* Deal with FILTER_RK first'; put '*/'; put '%if &filter_rk gt 0 %then %do;'; put 'data _null_;'; put 'file &outref;'; put 'put ''( ''@@;'; put 'set &dclib..mpe_filteranytable(where=(filter_rk=&filter_rk));'; put 'call symputx(''filter_hash'',filter_hash,''l'');'; put 'run;'; put 'proc sort data=&dclib..mpe_filtersource(where=(filter_hash="&filter_hash"))'; put 'out=&outds(drop=filter_hash filter_line processed_dttm);'; put 'by filter_line;'; put 'run;'; put '%mp_filtergenerate(&outds,outref=&outref)'; put '%end;'; put '/* Now filter for current records if the MODE is EDIT or DLOAD */'; put '%local varfrom varto;'; put '%let varfrom=0;'; put 'proc sql;'; put 'select coalescec(var_txfrom,''0''), var_txto into: varfrom,:varto'; put 'from &dclib..MPE_TABLES'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and libref="%scan(&libds,1,.)" and dsn="%scan(&libds,2,.)";'; put '%put &=varfrom;'; put '%put &=varto;'; put '/**'; put '* Check if the date variables were mentioned in the query'; put '* This is a trigger for serving a historical view instead of current'; put '* we skip this part when checking an ULOAD as there are no date vars'; put '*/'; put '%if &varfrom ne 0 and (&mode=EDIT or &mode=DLOAD) %then %do;'; put '%local validityvars;'; put 'proc sql;'; put 'select count(*) into: validityvars'; put 'from &outds'; put 'where variable_nm in ("&varfrom","&varto");'; put '%if &validityvars=0 %then %do;'; put 'data _null_;'; put 'file &outref mod;'; put 'length filter_text $32767;'; put 'varfrom=symget(''varfrom'');'; put 'varto=symget(''varto'');'; put 'filter_text=catx('' '','; put '''("%sysfunc(datetime(),'',"%mf_fmtdttm()",'')"dt <'',varto,'')'''; put ');'; put 'if &filter_rk > 0 then put ''AND '' filter_text;'; put 'else put filter_text;'; put 'run;'; put '%end;'; put '%end;'; put '/**'; put '* Now do Row Level Security based on the MPE_ROW_LEVEL_SECURITY table'; put '*/'; put '/* first determine users group membership */'; put '%mpe_getgroups(user=%mf_getuser(),outds=work.groups)'; put '%local admin_check;'; put 'proc sql;'; put 'select count(*) into: admin_check'; put 'from work.groups'; put 'where groupname="&mpeadmins";'; put '%put &sysmacroname: &=admin_check &=mpeadmins;'; put '%if &admin_check=0 %then %do;'; put '%local scopeval;'; put '%if &mode=DLOAD %then %let scopeval=VIEW;'; put '%if &mode=ULOAD %then %let scopeval=EDIT;'; put '%else %let scopeval=&mode;'; put '/* extract relevant rows */'; put '%local rlsds;'; put '%let rlsds=%mf_getuniquename();'; put 'proc sql;'; put 'create table work.&rlsds as'; put 'select rls_group,'; put 'rls_group_logic as group_logic,'; put 'rls_subgroup_logic as subgroup_logic,'; put 'rls_subgroup_id as subgroup_id,'; put 'rls_variable_nm as variable_nm,'; put 'rls_operator_nm as operator_nm,'; put 'rls_raw_value as raw_value'; put 'from &mpelib..mpe_row_level_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and rls_scope in ("&scopeval",''ALL'')'; put 'and upcase(rls_group) in (select upcase(groupname) from work.groups)'; put 'and rls_libref="%scan(&libds,1,.)"'; put 'and rls_table="%scan(&libds,2,.)"'; put 'and rls_active=1'; put 'order by rls_group,rls_subgroup_id;'; put '%if &sqlobs>0 %then %do;'; put '/* check if we currently have filter or not */'; put 'data ;'; put 'infile &outref end=eof;'; put 'input;'; put 'if _n_=1 and eof and cats(_infile_)='''' then newfilter=1;'; put 'output;'; put 'stop;'; put 'run;'; put 'data _null_;'; put 'set &syslast;'; put 'file &outref mod;'; put 'if newfilter=1 then put ''('';'; put 'else put ''AND ('';'; put 'run;'; put '/* loop through and apply filters for each group membership */'; put '%local fref ds;'; put '%let fref=%mf_getuniquefileref();'; put '%let ds=%mf_getuniquename();'; put 'proc sql noprint;'; put 'select distinct rls_group into : group1 -'; put 'from work.&rlsds;'; put '%do i=1 %to &sqlobs;'; put 'data work.&ds;'; put 'set work.&rlsds;'; put 'where rls_group="&&group&i";'; put 'drop rls_group;'; put 'run;'; put '%mp_filtergenerate(&ds,outref=&fref)'; put 'data _null_;'; put 'infile &fref;'; put 'file &outref mod;'; put 'input;'; put 'if &i>1 and _n_=1 then put '' OR '';'; put 'put _infile_;'; put 'run;'; put '%end;'; put 'data _null_;'; put 'file &outref mod;'; put 'put '')'';'; put 'run;'; put '%end; /* &sqlobs>0 */'; put '%else %do;'; put '%put &sysmacroname: no matching groups;'; put 'data _null_;'; put 'set work.groups;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=&sysmacroname'; put ',msg=%str(Row Level Security Generation Error)'; put ')'; put '%end; /* &admin_check=0 */'; put '%put leaving &sysmacroname with the following query:;'; put '%local empty;'; put '%let empty=0;'; put 'data _null_;'; put 'infile &outref end=eof;'; put 'input;'; put 'putlog _infile_;'; put 'if _n_=1 and eof and cats(_infile_)='''' then do;'; put 'put ''1=1'';'; put 'call symputx(''empty'',1,''l'');'; put 'end;'; put 'run;'; put '%if &empty=1 %then %do;'; put 'data _null_;'; put 'file &outref;'; put 'put ''1=1'';'; put 'run;'; put '%end;'; put '%mend mpe_filtermaster;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '/** @cond */'; put '%macro mf_existfeature(feature'; put ')/*/STORE SOURCE*/;'; put '%let feature=%upcase(&feature);'; put '%local platform;'; put '%let platform=%mf_getplatform();'; put '%if &feature= %then %do;'; put '%put No feature was requested for detection;'; put '%end;'; put '%else %if &feature=COLCONSTRAINTS %then %do;'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=PROCLUA %then %do;'; put '/* https://blogs.sas.com/content/sasdummy/2015/08/03/using-lua-within-your-sas-programs */'; put '%if &platform=SASVIYA %then 1;'; put '%else %if "&sysver"="9.2" or "&sysver"="9.3" %then 0;'; put '%else %if "&SYSVLONG" < "9.04.01M3" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=DBMS_MEMTYPE %then %do;'; put '/* does dbms_memtype exist in dictionary.tables? */'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=EXPORTXLS %then %do;'; put '/* is it possible to PROC EXPORT an excel file? */'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 1;'; put '%else %if %sysfunc(sysprod(SAS/ACCESS Interface to PC Files)) = 1 %then 1;'; put '%else 0;'; put '%end;'; put '%else %do;'; put '-1'; put '%put &sysmacroname: &feature not found;'; put '%end;'; put '%mend mf_existfeature;'; put '/** @endcond */'; put '%macro mp_ds2cards(base_ds, tgt_ds='; put ',cards_file="%sysfunc(pathname(work))/cardgen.sas"'; put ',maxobs=max'; put ',random_sample=NO'; put ',showlog=YES'; put ',outencoding='; put ',append=NO'; put ')/*/STORE SOURCE*/;'; put '%local i setds nvars;'; put '%if not %sysfunc(exist(&base_ds)) %then %do;'; put '%put %str(WARN)ING: &base_ds does not exist;'; put '%return;'; put '%end;'; put '%if %index(&base_ds,.)=0 %then %let base_ds=WORK.&base_ds;'; put '%if (&tgt_ds = ) %then %let tgt_ds=&base_ds;'; put '%if %index(&tgt_ds,.)=0 %then %let tgt_ds=WORK.%scan(&base_ds,2,.);'; put '%if ("&outencoding" ne "") %then %let outencoding=encoding="&outencoding";'; put '%if ("&append" = "" or "&append" = "NO") %then %let append=;'; put '%else %let append=mod;'; put '/* get varcount */'; put '%let nvars=0;'; put 'proc sql noprint;'; put 'select count(*) into: nvars from dictionary.columns'; put 'where upcase(libname)="%scan(%upcase(&base_ds),1)"'; put 'and upcase(memname)="%scan(%upcase(&base_ds),2)";'; put '%if &nvars=0 %then %do;'; put '%put %str(WARN)ING: Dataset &base_ds has no variables, will not be converted.;'; put '%return;'; put '%end;'; put '/* get indexes */'; put 'proc sort'; put 'data=sashelp.vindex('; put 'where=(upcase(libname)="%scan(%upcase(&base_ds),1)"'; put 'and upcase(memname)="%scan(%upcase(&base_ds),2)")'; put ')'; put 'out=_data_;'; put 'by indxname indxpos;'; put 'run;'; put '%local indexes;'; put 'data _null_;'; put 'set &syslast end=last;'; put 'if _n_=1 then call symputx(''indexes'',''(index=('',''l'');'; put 'by indxname indxpos;'; put 'length vars $32767 nom uni $8;'; put 'retain vars;'; put 'if first.indxname then do;'; put 'idxcnt+1;'; put 'nom='''';'; put 'uni='''';'; put 'vars=name;'; put 'end;'; put 'else vars=catx('' '',vars,name);'; put 'if last.indxname then do;'; put 'if nomiss=''yes'' then nom=''/nomiss'';'; put 'if unique=''yes'' then uni=''/unique'';'; put 'call symputx(''indexes'''; put ',catx('' '',symget(''indexes''),indxname,''=('',vars,'')'',nom,uni)'; put ',''l'');'; put 'end;'; put 'if last then call symputx(''indexes'',cats(symget(''indexes''),''))''),''l'');'; put 'run;'; put 'data;run;'; put '%let setds=&syslast;'; put 'proc sql'; put '%if %datatyp(&maxobs)=NUMERIC %then %do;'; put 'outobs=&maxobs;'; put '%end;'; put ';'; put 'create table &setds as select * from &base_ds'; put '%if &random_sample=YES %then %do;'; put 'order by ranuni(42)'; put '%end;'; put ';'; put 'reset outobs=max;'; put 'create table datalines1 as'; put 'select name,type,length,varnum,format,label from dictionary.columns'; put 'where upcase(libname)="%upcase(%scan(&base_ds,1))"'; put 'and upcase(memname)="%upcase(%scan(&base_ds,2))";'; put '/**'; put 'Due to long decimals cannot use best. format'; put 'So - use bestd. format and then use character functions to strip trailing'; put 'zeros, if NOT an integer or missing!! Cannot use int() as it upsets'; put 'note2err when there are missings.'; put 'resolved code = ifc( mod(coalesce(VARIABLE,0),1)=0'; put ',put(VARIABLE,best32.)'; put ',substrn(put(VARIABLE,bestd32.),1'; put ',findc(put(VARIABLE,bestd32.),''0'',''TBK'')));'; put '**/'; put 'data datalines_2;'; put 'format dataline $32000.;'; put 'set datalines1 (where=(upcase(name) not in'; put '(''PROCESSED_DTTM'',''VALID_FROM_DTTM'',''VALID_TO_DTTM'')));'; put 'if type=''num'' then dataline='; put 'cats(''ifc(mod(coalesce('',name,'',0),1)=0'; put ',put('',name,'',best32.-l)'; put ',substrn(put('',name,'',bestd32.-l),1'; put ',findc(put('',name,'',bestd32.-l),"0","TBK")))'');'; put '/**'; put '* binary data must be converted, to store in text format. It is identified'; put '* by the presence of the $HEX keyword in the format.'; put '*/'; put 'else if upcase(format)=:''$HEX'' then'; put 'dataline=cats(''put(trim('',name,''),'',format,'')'');'; put '/**'; put '* There is no easy way to store line breaks in a cards file.'; put '* To discuss this, use: https://github.com/sasjs/core/issues/80'; put '* Removing all nonprintables with kw (keep writeable)'; put '*/'; put 'else dataline=cats(''compress('',name,'', ,"kw")'');'; put 'run;'; put 'proc sql noprint;'; put 'select dataline into: datalines separated by '','' from datalines_2;'; put '%local'; put 'process_dttm_flg'; put 'valid_from_dttm_flg'; put 'valid_to_dttm_flg'; put ';'; put '%let process_dttm_flg = N;'; put '%let valid_from_dttm_flg = N;'; put '%let valid_to_dttm_flg = N;'; put 'data _null_;'; put 'set datalines1 ;'; put '/* build attrib statement */'; put 'if type=''char'' then type2=''$'';'; put 'if strip(format) ne '''' then format2=cats(''format='',format);'; put 'if strip(label) ne '''' then label2=cats(''label='',quote(trim(label)));'; put 'str1=catx('' '',(put(name,$33.)||''length='')'; put ',put(cats(type2,length),$7.)||format2,label2);'; put '/* Build input statement */'; put 'if upcase(format)=:''$HEX'' then type3='':''!!format;'; put 'else if type=''char'' then type3='':$char.'';'; put 'str2=put(name,$33.)||type3;'; put 'if(upcase(name) = "PROCESSED_DTTM") then'; put 'call symputx("process_dttm_flg", "Y", "L");'; put 'if(upcase(name) = "VALID_FROM_DTTM") then'; put 'call symputx("valid_from_dttm_flg", "Y", "L");'; put 'if(upcase(name) = "VALID_TO_DTTM") then'; put 'call symputx("valid_to_dttm_flg", "Y", "L");'; put 'call symputx(cats("attrib_stmt_", put(_N_, 8.)), str1, "L");'; put 'call symputx(cats("input_stmt_", put(_N_, 8.))'; put ', ifc(upcase(name) not in'; put '(''PROCESSED_DTTM'',''VALID_FROM_DTTM'',''VALID_TO_DTTM''), str2, ""), "L");'; put 'run;'; put 'data _null_;'; put 'file &cards_file. &outencoding lrecl=32767 termstr=nl &append;'; put 'length __attrib $32767;'; put 'if _n_=1 then do;'; put 'put ''/**'';'; put 'put '' @file'';'; put 'put " @brief Datalines for %upcase(%scan(&base_ds,2)) dataset";'; put 'put " @details Generated by %nrstr(%%)mp_ds2cards()";'; put 'put " Source: https://github.com/sasjs/core";'; put 'put '' @cond '';'; put 'put ''**/'';'; put 'put "data &tgt_ds &indexes;";'; put 'put "attrib ";'; put '%do i = 1 %to &nvars;'; put '__attrib=symget("attrib_stmt_&i");'; put 'put __attrib;'; put '%end;'; put 'put ";";'; put '%if &process_dttm_flg. eq Y %then %do;'; put 'put ''retain PROCESSED_DTTM %sysfunc(datetime());'';'; put '%end;'; put '%if &valid_from_dttm_flg. eq Y %then %do;'; put 'put ''retain VALID_FROM_DTTM &low_date;'';'; put '%end;'; put '%if &valid_to_dttm_flg. eq Y %then %do;'; put 'put ''retain VALID_TO_DTTM &high_date;'';'; put '%end;'; put 'if __nobs=0 then do;'; put 'put ''call missing(of _all_);/* avoid uninitialised notes */'';'; put 'put ''stop;'';'; put 'put ''run;'';'; put 'end;'; put 'else do;'; put 'put "infile cards dsd;";'; put 'put "input ";'; put '%do i = 1 %to &nvars.;'; put '%if(%length(&&input_stmt_&i..)) %then'; put 'put " &&input_stmt_&i..";'; put ';'; put '%end;'; put 'put ";";'; put 'put ''missing a b c d e f g h i j k l m n o p q r s t u v w x y z _;'';'; put 'put "datalines4;";'; put 'end;'; put 'end;'; put 'set &setds end=__lastobs nobs=__nobs;'; put '/* remove all formats for write purposes - some have long underlying decimals */'; put 'format _numeric_ best30.29;'; put 'length __dataline $32767;'; put '__dataline=catq(''cqtmb'',&datalines);'; put 'put __dataline;'; put 'if __lastobs then do;'; put 'put '';;;;'';'; put 'put ''run;'';'; put 'put ''/** @endcond **/'';'; put 'stop;'; put 'end;'; put 'run;'; put 'proc sql;'; put 'drop table &setds;'; put 'quit;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &cards_file lrecl=32767;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '%end;'; put '%put NOTE: CARDS FILE SAVED IN:;'; put '%put NOTE-;%put NOTE-;'; put '%put NOTE- %sysfunc(dequote(&cards_file.));'; put '%put NOTE-;%put NOTE-;'; put '%mend mp_ds2cards;'; put '/** @endcond **/'; put '%macro mp_binarycopy('; put 'inloc= /* full path and filename of the object to be copied */'; put ',outloc= /* full path and filename of object to be created */'; put ',inref=____in /* override default to use own filerefs */'; put ',outref=____out /* override default to use own filerefs */'; put ',mode=CREATE'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%local mod;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if &mode=APPEND %then %let mod=mod;'; put '/* these IN and OUT filerefs can point to anything */'; put '%if &inref = ____in %then %do;'; put 'filename &inref &inloc lrecl=1048576 ;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref &outloc lrecl=1048576 &mod;'; put '%end;'; put '/* copy the file byte-for-byte */'; put 'data _null_;'; put 'infile &inref lrecl=1 recfm=n;'; put 'file &outref &mod recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%if &inref = ____in %then %do;'; put 'filename &inref clear;'; put '%end;'; put '%if &outref=____out %then %do;'; put 'filename &outref clear;'; put '%end;'; put '%mend mp_binarycopy;'; put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; put 'proc sql;'; put 'create table &libds('; put 'TYPE char(1) label='; put '''Format Type: either N (num fmt), C (char fmt), I (num infmt) or J (char infmt)'''; put ',FMTNAME char(32) label=''Format name'''; put ',FMTROW num label='; put '''CALCULATED Position of record by FMTNAME (reqd for multilabel formats)'''; put ',START char(32767) label=''Starting value for format'''; put '/*'; put 'Keep lengths of START and END the same to avoid this err:'; put '"Start is greater than end: -<."'; put 'Similar usage note: https://support.sas.com/kb/69/330.html'; put '*/'; put ',END char(32767) label=''Ending value for format'''; put ',LABEL char(32767) label=''Format value label'''; put ',MIN num length=3 label=''Minimum length'''; put ',MAX num length=3 label=''Maximum length'''; put ',DEFAULT num length=3 label=''Default length'''; put ',LENGTH num length=3 label=''Format length'''; put ',FUZZ num label=''Fuzz value'''; put ',PREFIX char(2) label=''Prefix characters'''; put ',MULT num label=''Multiplier'''; put ',FILL char(1) label=''Fill character'''; put ',NOEDIT num length=3 label=''Is picture string noedit?'''; put ',SEXCL char(1) label=''Start exclusion'''; put ',EEXCL char(1) label=''End exclusion'''; put ',HLO char(13) label='; put '''More info: https://core.sasjs.io/mddl__sas__cntlout_8sas_source.html'''; put ',DECSEP char(1) label=''Decimal separator'''; put ',DIG3SEP char(1) label=''Three-digit separator'''; put ',DATATYPE char(8) label=''Date/time/datetime?'''; put ',LANGUAGE char(8) label=''Language for date strings'''; put ');'; put '%local lib;'; put '%let libds=%upcase(&libds);'; put '%if %index(&libds,.)=0 %then %let lib=WORK;'; put '%else %let lib=%scan(&libds,1,.);'; put 'proc datasets lib=&lib noprint;'; put 'modify %scan(&libds,-1,.);'; put 'index create'; put 'pk_cntlout=(type fmtname fmtrow)'; put '/nomiss unique;'; put 'quit;'; put '%mend mddl_sas_cntlout;'; put '%macro mp_aligndecimal(var,width=8);'; put '%local tmpvar;'; put '%let tmpvar=%mf_getuniquename(prefix=aligndp);'; put 'length &tmpvar $&width;'; put 'if index(&var,''.'') then do;'; put '&tmpvar=cats(scan(&var,1,''.''));'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar!!''.''!!cats(scan(&var,2,''.''));'; put 'end;'; put 'else do;'; put '&tmpvar=cats(&var);'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar;'; put 'end;'; put 'drop &tmpvar;'; put '%mend mp_aligndecimal;'; put '%macro mp_cntlout('; put 'iftrue=(1=1)'; put ',libcat='; put ',cntlout=work.fmtextract'; put ',fmtlist=0'; put ')/*/STORE SOURCE*/;'; put '%local ddlds cntlds i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let ddlds=%mf_getuniquename();'; put '%let cntlds=%mf_getuniquename();'; put '%mddl_sas_cntlout(libds=&ddlds)'; put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; put '%let libcat=%scan(&libcat,1,-);'; put '%end;'; put 'proc format lib=&libcat cntlout=&cntlds;'; put '%if "&fmtlist" ne "0" and "&fmtlist" ne "" %then %do;'; put 'select'; put '%do i=1 %to %sysfunc(countw(&fmtlist,%str( )));'; put '%scan(&fmtlist,&i,%str( ))'; put '%end;'; put ';'; put '%end;'; put 'run;'; put 'data &cntlout/nonote2err;'; put 'if 0 then set &ddlds;'; put 'set &cntlds;'; put 'by type fmtname notsorted;'; put '/* align the numeric values to avoid overlapping ranges */'; put 'if type in ("I","N") then do;'; put '%mp_aligndecimal(start,width=16)'; put '%mp_aligndecimal(end,width=16)'; put 'end;'; put '/* create row marker. Data cannot be sorted without it! */'; put 'if first.fmtname then fmtrow=1;'; put 'else fmtrow+1;'; put 'run;'; put 'proc sort;'; put 'by type fmtname fmtrow;'; put 'run;'; put 'proc sql;'; put 'drop table &ddlds,&cntlds;'; put '%mend mp_cntlout;'; put '/** @endcond */'; put '%macro mfs_httpheader(header_name'; put ',header_value'; put ')/*/STORE SOURCE*/;'; put '%global sasjs_stpsrv_header_loc;'; put '%local fref fid i;'; put '%if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc)) ne 0 %then %do;'; put '%put &=fref &=sasjs_stpsrv_header_loc;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(&header_name): %str(&header_value)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%mend mfs_httpheader;'; put '%macro mp_streamfile('; put 'contenttype=TEXT'; put ',inloc='; put ',inref=0'; put ',iftrue=%str(1=1)'; put ',outname='; put ',outref=_webout'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let contentype=%upcase(&contenttype);'; put '%let outref=%upcase(&outref);'; put '%local platform; %let platform=%mf_getplatform();'; put '/**'; put '* check engine type to avoid the below err message:'; put '* > Function is only valid for filerefs using the CACHE access method.'; put '*/'; put '%local streamweb;'; put '%let streamweb=0;'; put 'data _null_;'; put 'set sashelp.vextfl(where=(upcase(fileref)="&outref"));'; put 'if xengine=''STREAM'' then call symputx(''streamweb'',1,''l'');'; put 'run;'; put '%if &contentype=CSV %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/csv'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; put 'contenttype=''application/csv'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/csv)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=EXCEL %then %do;'; put '/* suitable for XLS format */'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/vnd.ms-excel'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; put 'contenttype=''application/vnd.ms-excel'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/vnd.ms-excel)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=GIF or &contentype=JPEG or &contentype=PNG %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"image/%lowcase(&contenttype)");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'contenttype="image/%lowcase(&contenttype)";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,image/%lowcase(&contenttype))'; put '%end;'; put '%end;'; put '%else %if &contentype=HTML or &contenttype=MARKDOWN %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"text/%lowcase(&contenttype)");'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name="_webout.json"'; put 'contenttype="text/%lowcase(&contenttype)"'; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,text/%lowcase(&contenttype))'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=TEXT %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/text'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.txt'''; put 'contenttype=''application/text'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/text)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=WOFF or &contentype=WOFF2 or &contentype=TTF %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',"font/%lowcase(&contenttype)");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'contenttype="font/%lowcase(&contenttype)";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,font/%lowcase(&contenttype))'; put '%end;'; put '%end;'; put '%else %if &contentype=XLSX %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'','; put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.xls'''; put 'contenttype='; put '''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type'; put ',application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; put ')'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %if &contentype=ZIP %then %do;'; put '%if (&platform=SASMETA and &streamweb=1) %then %do;'; put 'data _null_;'; put 'rc=stpsrv_header(''Content-Type'',''application/zip'');'; put 'rc=stpsrv_header(''Content-disposition'',"attachment; filename=&outname");'; put 'run;'; put '%end;'; put '%else %if &platform=SASVIYA %then %do;'; put 'filename &outref filesrvc parenturi="&SYS_JES_JOB_URI" name=''_webout.zip'''; put 'contenttype=''application/zip'''; put 'contentdisp="attachment; filename=&outname";'; put '%end;'; put '%else %if &platform=SASJS %then %do;'; put '%mfs_httpheader(Content-Type,application/zip)'; put '%mfs_httpheader(Content-disposition,%str(attachment; filename=&outname))'; put '%end;'; put '%end;'; put '%else %do;'; put '%put %str(ERR)OR: Content Type &contenttype NOT SUPPORTED by &sysmacroname!;'; put '%end;'; put '%if &inref ne 0 %then %do;'; put '%mp_binarycopy(inref=&inref,outref=&outref)'; put '%end;'; put '%else %do;'; put '%mp_binarycopy(inloc="&inloc",outref=&outref)'; put '%end;'; put '%mend mp_streamfile;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Downloads data in a variety of formats'; put '@details To enable direct download, this service runs in a dedicated stream'; put 'as a GET request using URL parameters as inputs.'; put 'The inputs are:'; put '@li table - the libds of the table to be downloaded'; put '@li type - either SAS, CSV, EXCEL, MARKDOWN, WEBCSV or WEBTAB'; put '@li filter - the filter RK if used'; put '

SAS Macros

'; put '@li mf_verifymacvars.sas'; put '@li mf_getuser.sas'; put '@li mf_existfeature.sas'; put '@li dc_assignlib.sas'; put '@li mp_ds2cards.sas'; put '@li mp_abort.sas'; put '@li mp_binarycopy.sas'; put '@li mp_cntlout.sas'; put '@li mp_streamfile.sas'; put '@li mpe_filtermaster.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%global table type filter ds format is_fmt txfrom txto;'; put '%mpeinit()'; put '%let user=%mf_getuser();'; put '%let is_fmt=0;'; put '%mp_abort(iftrue= (%mf_verifymacvars(type table)=0)'; put ',mac=&_program..sas'; put ',msg=%str(Invalid inputs: type table)'; put ')'; put '%let libds=%upcase(&table); /* actual source */'; put '%let table=%upcase(&table); /* used as label for fmt catalogs */'; put '%let lib=%scan(&table,1,.);'; put '%let ds=%scan(&table,2,.);'; put '%dc_assignlib(READ,&lib)'; put 'data _null_;'; put 'set &mpelib..MPE_TABLES;'; put 'where upcase(libref)="&lib" and upcase(dsn)="&ds";'; put '/* if a TXTEMPORAL table then filter as such */'; put 'call symputx(''txfrom'',var_txfrom);'; put 'call symputx(''txto'',var_txto);'; put 'run;'; put '/* if a format, extract relevant info */'; put 'data _null_;'; put 'ds=symget(''ds'');'; put 'is_fmt=0;'; put 'if subpad(cats(reverse(ds)),1,3)=:''CF-'' then do;'; put 'ds=scan(ds,1,''-'');'; put 'table=cats("&lib..",ds);'; put 'putlog "Format Catalog Captured";'; put 'is_fmt=1;'; put 'call symputx(''libds'',''work.fmtextract'');'; put 'call symputx(''table'',table);'; put 'end;'; put 'call symputx(''is_fmt'',is_fmt);'; put 'putlog (_all_)(=);'; put 'run;'; put '%mp_cntlout('; put 'iftrue=(&is_fmt=1)'; put ',libcat=&table'; put ',fmtlist=0'; put ',cntlout=work.fmtextract'; put ')'; put '%put preparing query;'; put '%mpe_filtermaster(DLOAD,&libds,'; put 'dclib=&mpelib,'; put 'filter_rk=&filter,'; put 'outref=filtref,'; put 'outds=work.query'; put ')'; put '%put printing generated filterquery:;'; put 'data _null_;'; put 'infile filtref;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put 'options obs=200000;/* stop limit */'; put 'data staged(drop=&txfrom &txto);'; put 'set &libds;'; put 'where %inc filtref;;'; put 'run;'; put 'options obs=max;'; put 'options validvarname=upcase;'; put '%macro mpestp_getrawdata();'; put '%local outfile;'; put '%if &type=SAS %then %do;'; put '%let outfile=%sysfunc(pathname(work))/&table..sas;'; put '%mp_ds2cards(base_ds=staged'; put ', tgt_ds=&table'; put ', cards_file= "&outfile"'; put ', maxobs=100000)'; put '%let ext=sas;'; put '%let mimetype=text;'; put '%end;'; put '%else %if &type=CSV or (&type=EXCEL and %mf_existfeature(EXPORTXLS) ne 1)'; put '/* cannot proc export excel if PC Files is not licensed */'; put '%then %do;'; put '%let outfile=%sysfunc(pathname(work))/&table..csv;'; put 'PROC EXPORT DATA= staged'; put 'OUTFILE= "&outfile"'; put 'DBMS=csv REPLACE;'; put 'RUN;'; put '%let ext=csv;'; put '%let mimetype=csv;'; put '%end;'; put '%else %if &type=EXCEL %then %do;'; put '%let ext=xlsx;'; put '%let outfile=%sysfunc(pathname(work))/&table..&ext;'; put 'PROC EXPORT DATA= staged'; put 'OUTFILE= "&outfile"'; put 'DBMS=xlsx ;'; put 'RUN;'; put '%let mimetype=XLSX;'; put '%end;'; put '%else %if &type=MARKDOWN %then %do;'; put '%let ext=md;'; put '%let outfile=%sysfunc(pathname(work))/&table..&ext;'; put 'filename mdref "&outfile" lrecl=32767;'; put '%mp_ds2md(staged,outref=mdref,showlog=NO)'; put '%let mimetype=MARKDOWN;'; put '%end;'; put '%else %if &type=WEBCSV %then %do;'; put 'PROC EXPORT DATA= staged'; put 'OUTFILE= _webout'; put 'DBMS=csv REPLACE;'; put 'RUN;'; put '/* don''t set headers */'; put '%return;'; put '%end;'; put '%else %if &type=WEBTAB %then %do;'; put 'PROC EXPORT DATA= staged'; put 'OUTFILE= _webout'; put 'DBMS=tab REPLACE;'; put 'RUN;'; put '/* don''t set headers */'; put '%return;'; put '%end;'; put '%else %do;'; put '%mp_abort(msg=type &type not supported,mac=mpestp_getrawdata.sas);'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%mp_streamfile(contenttype=&mimetype'; put ',inloc=%str(&outfile)'; put ',outname=&table..&ext'; put ')'; put '%mend mpestp_getrawdata;'; put '%mpestp_getrawdata()'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=getversion; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mpe_getvars(injs,outds);'; put '/* load parameters */'; put 'data _null_;'; put '__dummychar='''';__dummynum=0;'; put 'set &outds;'; put 'array __charvals _character_;'; put 'do over __charvals;'; put 'call symputx(vname(__charvals),__charvals,''g'');'; put 'end;'; put 'array __numvals _numeric_;'; put 'do over __numvals;'; put 'call symputx(vname(__numvals),__numvals,''g'');'; put 'end;'; put 'run;'; put '%mend mpe_getvars;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file getversion.sas'; put '@brief get a specific (previous) version of a particular table'; put '@details Used to fetch a version of a table as at a previous point in time'; put 'Delivered as part of this issue: https://git.datacontroller.io/dc/dc/issues/84'; put '

Service Inputs

'; put '
getversion_input
'; put '|LIBREF:$char8.|DS:$char32.|TS: 8.|'; put '|---|---|---|'; put '|SOMELIB|SOMEDS|1341344.804|'; put '

Service Outputs

'; put '
work.getversion_output
'; put 'The data for a particular version'; put '

SAS Macros

'; put '@li mf_getuser.sas'; put '@li mpeinit.sas'; put '@li mpe_getvars.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '**/'; put '%mpeinit()'; put '%global LIBREF DS;'; put '/* load parameters */'; put '%mpe_getvars(getversion_input, getversion_input)'; put '%mp_abort(iftrue= (&syscc ne 0 )'; put ',mac=&_program'; put ',msg=%str(Issue on startup)'; put ')'; put '/* todo */'; put '%webout(OPEN)'; put '%webout(OBJ,getversion_output)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=refreshlibinfo; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '/** @cond */'; put '%macro mf_existvar(libds /* 2 part dataset name */'; put ', var /* variable name */'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid=0 %then %do;'; put '%put %sysfunc(sysmsg());'; put '0'; put '%end;'; put '%else %if %length(&var)=0 %then %do;'; put '0'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%sysfunc(varnum(&dsid,&var))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_existvar;'; put '/** @endcond */'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_getvartype(libds /* two level name */'; put ', var /* variable name from which to return the type */'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vtype rc;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid. > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable type (C/N) */'; put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let vtype = %str( );'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable type */'; put '&vtype'; put '%mend mf_getvartype;'; put '%macro mf_getattrc('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrc(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrc;'; put '%macro mp_lockfilecheck('; put 'libds'; put ')/*/STORE SOURCE*/;'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=checklock.sas'; put ',msg=Aborting with syscc=&syscc on entry.'; put ')'; put '%mp_abort(iftrue= ("&libds"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(libds not provided)'; put ')'; put '%local msg lib ds;'; put '%let lib=%upcase(%scan(&libds,1,.));'; put '%let ds=%upcase(%scan(&libds,2,.));'; put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; put '%if %scan(&libds,2,-)=FC %then %do;'; put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=checklock.sas'; put ',msg=%superq(msg)'; put ')'; put 'data _null_;'; put 'putlog "Checking engine & member type";'; put 'run;'; put '%local engine memtype;'; put '%let memtype=%mf_getattrc(&libds,MTYPE);'; put '%let engine=%mf_getattrc(&libds,ENGINE);'; put '%if &engine ne V9 and &engine ne BASE %then %do;'; put 'data _null_;'; put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; put 'putlog "SAS lock check will not be performed";'; put 'run;'; put '%return;'; put '%end;'; put '%else %if &memtype ne DATA %then %do;'; put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; put '%return;'; put '%end;'; put 'data _null_;'; put 'putlog "Engine = &engine, memtype=&memtype";'; put 'putlog "Attempting lock statement";'; put 'run;'; put 'lock &libds;'; put '%local abortme;'; put '%let abortme=0;'; put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; put '%put %str(ERR)OR: &sysmacroname: &msg;'; put '%let abortme=1;'; put '%end;'; put 'lock &libds clear;'; put '%mp_abort(iftrue= (&abortme=1)'; put ',mac=&sysmacroname'; put ',msg=%superq(msg)'; put ')'; put '%mend mp_lockfilecheck;'; put '%macro mp_lockanytable('; put 'action'; put ',lib= WORK'; put ',ds=0'; put ',ref='; put ',ctl_ds=0'; put ',loops=25'; put ',loop_secs=1'; put ');'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(dataset was not provided)'; put ')'; put '%mp_abort(iftrue= (&ctl_ds=0)'; put ',mac=&sysmacroname'; put ',msg=%str(Control dataset was not provided)'; put ')'; put '/* set up lib & mac vars */'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '%let action=%upcase(&action);'; put '%local user x trans msg abortme;'; put '%let user=%mf_getuser();'; put '%let abortme=0;'; put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid action (&action) provided)'; put ')'; put '/* if an err condition exists, exit before we even begin */'; put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; put ',mac=&sysmacroname'; put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; put ')'; put '/* do not bother locking work tables (else may affect all WORK libraries) */'; put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; put '%put NOTE: WORK libraries will not be registered in the locking system.;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=&sysmacroname'; put ',msg=%str(cannot continue when options obs = 0)'; put ')'; put '%if &ACTION=LOCK %then %do;'; put '/* abort if a SAS lock is already in place, or cannot be applied */'; put '%mp_lockfilecheck(&lib..&ds)'; put '/* next, check there is a record for this table */'; put '%local record_exists_check;'; put 'proc sql noprint;'; put 'select count(*) into: record_exists_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &record_exists_check=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: adding record to lock table..";'; put 'run;'; put 'data ;'; put 'if 0 then set &ctl_ds;'; put 'LOCK_LIB ="&lib";'; put 'LOCK_DS="&ds";'; put 'LOCK_STATUS_CD=''LOCKED'';'; put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'LOCK_USER_NM="&user";'; put 'LOCK_PID="&sysjobid";'; put 'LOCK_REF="&ref";'; put 'output;stop;'; put 'run;'; put '%let trans=&syslast;'; put 'proc append base=&ctl_ds data=&trans;'; put 'run;'; put '%end;'; put '/* if record does exist, perform lock attempts */'; put '%else %do x=1 %to &loops;'; put 'data _null_;'; put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''LOCKED'''; put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '/**'; put '* NOTE - occasionally SQL server will return an err code (deadlocked'; put '* transaction). If so, ignore it, keep calm, and carry on..'; put '*/'; put '%if &syscc>0 %then %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; put 'putlog "Resetting err conditions and re-attempting.";'; put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%let syscc=0;'; put '%let sqlrc=0;'; put '%end;'; put '/* now check if the record was successfully updated */'; put '%local success_check;'; put 'proc sql noprint;'; put 'select count(*) into: success_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; put 'quit;'; put '%if &success_check=0 %then %do;'; put '%if &x < &loops %then %do;'; put '/* pause before next check */'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; put 'putlog "%sysfunc(sleep(&loop_secs)) seconds.. ";'; put 'putlog "NOTE- (iteration &x of &loops)";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%end;'; put '%else %do;'; put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; put 'Please ask your administrator to investigate!;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%else %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%if &syscc>0 %then %do;'; put '%put setting syscc(&syscc) back to 0;'; put '%let syscc=0;'; put '%end;'; put '%let x=&loops; /* no more iterations needed */'; put '%end;'; put '%end;'; put '%end;'; put '%else %if &ACTION=UNLOCK %then %do;'; put '%local status cnt;'; put '%let cnt=0;'; put 'proc sql noprint;'; put 'select count(*) into: cnt from &ctl_ds where LOCK_LIB ="&lib" & LOCK_DS="&ds";'; put '%if &cnt=0 %then %do;'; put '%put %str(WAR)NING: &lib..&ds was not previously locked in &ctl_ds!;'; put '%end;'; put '%else %do;'; put 'select LOCK_STATUS_CD into: status from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &status=LOCKED %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''UNLOCKED'''; put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%end;'; put '%else %if &status=UNLOCKED %then %do;'; put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; put '%end;'; put '%else %do;'; put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%end;'; put '%else %do;'; put '%let msg=lock_anytable given unsupported action (&action);'; put '%let abortme=1;'; put '%end;'; put '/* catch errs - mp_abort must be called outside of a logic block */'; put '%mp_abort(iftrue=(&abortme=1),'; put 'msg=%superq(msg),'; put 'mac=&sysmacroname'; put ')'; put '%exit_macro:'; put 'data _null_;'; put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; put 'run;'; put '%mend mp_lockanytable;'; put '%macro bitemporal_closeouts('; put 'tech_from=tx_from_dttm'; put ',tech_to = tx_to_dttm /* Technical TO datetime variable.'; put 'Req''d on BASE table only. */'; put ',base_lib=WORK /* Libref of the BASE table. */'; put ',base_dsn=BASETABLE /* Name of BASE table. */'; put ',append_lib=WORK /* Libref of the STAGING table. */'; put ',append_dsn=APPENDTABLE /* Name of STAGING table. */'; put ',PK= name sex /* Business key, space separated. */'; put '/* Should INCLUDE BUS_FROM field if relevant. */'; put ',NOW=DEFINE'; put ',FILTER= /* supply a filter to limit the update */'; put ',outdest= /* supply an unquoted filepath/filename.ext to get'; put 'a text file containing the update statements */'; put ',loadtype='; put ',loadtarget=YES /* if <> YES will return without changing anything */'; put ');'; put '%put ENTERING &sysmacroname;'; put '%local x var start;'; put '%let start=%sysfunc(datetime());'; put '%dc_assignlib(WRITE,&base_lib)'; put '%dc_assignlib(WRITE,&append_lib)'; put '%if &now=DEFINE %then %let now=&dc_dttmtfmt.;'; put '%put &=now;'; put '/**'; put '* perform basic checks'; put '*/'; put '/* do tables exist? */'; put '%if not %sysfunc(exist(&base_lib..&base_dsn)) %then %do;'; put '%mp_abort(msg=&base_lib..&base_dsn does not exist)'; put '%end;'; put '%else %if %sysfunc(exist(&append_lib..&append_dsn))=0'; put 'and %sysfunc(exist(&append_lib..&append_dsn,VIEW))=0 %then %do;'; put '%mp_abort(msg=&append_lib..&append_dsn does not exist)'; put '%end;'; put '/* do TX columns exist? */'; put '%if &loadtype ne UPDATE %then %do;'; put '%if not %mf_existvar(&base_lib..&base_dsn,&tech_from) %then %do;'; put '%mp_abort(msg=&tech_from does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%else %if not %mf_existvar(&base_lib..&base_dsn,&tech_to) %then %do;'; put '%mp_abort(msg=&tech_to does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%end;'; put '/* do PK columns exist? */'; put '%do x=1 %to %sysfunc(countw(&PK));'; put '%let var=%scan(&pk,&x,%str( ));'; put '%if not %mf_existvar(&base_lib..&base_dsn,&var) %then %do;'; put '%mp_abort(msg=&var does not exist on &base_lib..&base_dsn)'; put '%end;'; put '%else %if not %mf_existvar(&append_lib..&append_dsn,&var) %then %do;'; put '%mp_abort(msg=&var does not exist on &append_lib..&append_dsn)'; put '%end;'; put '%end;'; put '/* check uniqueness */'; put 'proc sort data=&append_lib..&append_dsn'; put 'out=___closeout1 noduprecs dupout=___closeout1a;'; put 'by &pk;'; put 'run;'; put '%if %mf_getattrn(___closeout1a,NLOBS)>0 %then'; put '%put NOTE: dups on (&PK) in (&append_lib..&append_dsn);'; put '/* is &NOW value within a tolerance? Should not allow renegade closeouts.. */'; put '%local gap;'; put '%let gap=0;'; put 'data _null_;'; put 'now=&now;'; put 'gap=intck(''HOURS'',now,datetime());'; put 'call symputx(''gap'',gap,''l'');'; put 'run;'; put '%mf_abort('; put 'iftrue=(&gap > 24),'; put 'msg=NOW variable (&now) is not within a 24hr tolerance'; put ')'; put '/* have any warnings / errs occurred thus far? If so, abort */'; put '%mf_abort('; put 'iftrue=(&syscc>0),'; put 'msg=Aborted due to SYSCC=&SYSCC status'; put ')'; put '/**'; put '* Create closeout statements. These are sent as individual SQL statements'; put '* to ensure pass-through utilisation. The update_cnt variable monitors'; put '* how many records were actually updated on the target table.'; put '*/'; put '%local update_cnt;'; put '%let update_cnt=0;'; put 'filename tmp temp;'; put 'data _null_;'; put 'set ___closeout1;'; put 'file tmp;'; put 'if _n_=1 then put ''proc sql noprint;'' ;'; put 'length string $32767.;'; put '%if &loadtype=UPDATE %then %do;'; put 'put "delete from &base_lib..&base_dsn where 1";'; put '%end;'; put '%else %do;'; put 'now=symget(''now'');'; put 'put "update &base_lib..&base_dsn set &tech_to= " now @;'; put '%if %mf_existvar(&base_lib..&base_dsn,PROCESSED_DTTM) %then %do;'; put 'put " ,PROCESSED_DTTM=" now @;'; put '%end;'; put 'put " where " now " lt &tech_to ";'; put '%end;'; put '%do x=1 %to %sysfunc(countw(&PK));'; put '%let var=%scan(&pk,&x,%str( ));'; put '%if %mf_getvartype(&base_lib..&base_dsn,&var)=C %then %do;'; put '/* use single quotes to avoid ampersand resolution in data */'; put 'string=" & &var=''"!!trim(prxchange("s/''/''''/",-1,&var))!!"''";'; put '%end;'; put '%else %do;'; put 'string=cats(" & &var=",&var);'; put '%end;'; put 'put string;'; put '%end;'; put 'put "&filter ;";'; put 'put ''%let update_cnt=%eval(&update_cnt+&sqlobs);%put update_cnt=&update_cnt;'';'; put 'run;'; put 'data _null_;'; put 'infile tmp;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%if &loadtarget ne YES %then %return;'; put '/* ensure we have a lock */'; put '%mp_lockanytable(LOCK,'; put 'lib=&base_lib,ds=&base_dsn'; put ',ref=bitemporal_closeouts'; put ',ctl_ds=&mpelib..mpe_lockanytable'; put ')'; put 'options source2;'; put '%inc tmp;'; put 'filename tmp clear;'; put '/**'; put '* Update audit tracker'; put '*/'; put '%local newobs; %let newobs=%mf_getattrn(work.___closeout1,NLOBS);'; put '%local user; %let user=%mf_getuser();'; put 'proc sql;'; put 'insert into &mpelib..mpe_dataloads'; put 'set libref=%upcase("&base_lib")'; put ',DSN=%upcase("&base_dsn")'; put ',ETLSOURCE="&append_lib..&append_dsn contained &newobs records"'; put ',LOADTYPE="CLOSEOUT"'; put ',DELETED_RECORDS=&update_cnt'; put ',NEW_RECORDS=0'; put ',DURATION=%sysfunc(datetime())-&start'; put ',USER_NM="&user"'; put ',PROCESSED_DTTM=&now;'; put 'quit;'; put '%mend bitemporal_closeouts;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '/** @cond */'; put '%macro mf_getengine(libref'; put ')/*/STORE SOURCE*/;'; put '%local dsid engnum rc engine;'; put '/* in case the parameter is a libref.tablename, pull off just the libref */'; put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; put '%let dsid=%sysfunc('; put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; put ');'; put '%if (&dsid ^= 0) %then %do;'; put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; put '%let rc=%sysfunc(fetch(&dsid));'; put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; put '%put &libref. ENGINE is &engine.;'; put '%let rc= %sysfunc(close(&dsid));'; put '%end;'; put '%upcase(&engine)'; put '%mend mf_getengine;'; put '/** @endcond */'; put '%macro mf_getschema(libref'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum rc schema;'; put '/* in case the parameter is a libref.tablename, pull off just the libref */'; put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; put '%let dsid=%sysfunc(open(sashelp.vlibnam(where=('; put 'libname="%upcase(&libref)" and sysname=''Schema/Owner'''; put ')),i));'; put '%if (&dsid ^= 0) %then %do;'; put '%let vnum=%sysfunc(varnum(&dsid,SYSVALUE));'; put '%let rc=%sysfunc(fetch(&dsid));'; put '%let schema=%sysfunc(getvarc(&dsid,&vnum));'; put '%put &libref. schema is &schema.;'; put '%let rc= %sysfunc(close(&dsid));'; put '%end;'; put '&schema'; put '%mend mf_getschema;'; put '/** @endcond */'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mf_wordsInStr1ButNotStr2('; put 'Str1= /* string containing words to extract */'; put ',Str2= /* used to compare with the extract string */'; put ')/*/STORE SOURCE*/;'; put '%local count_base count_extr i i2 extr_word base_word match outvar;'; put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;'; put '%put base string (str1)= &str1;'; put '%put compare string (str2) = &str2;'; put '%return;'; put '%end;'; put '%let count_base=%sysfunc(countw(&Str2));'; put '%let count_extr=%sysfunc(countw(&Str1));'; put '%do i=1 %to &count_extr;'; put '%let extr_word=%scan(&Str1,&i,%str( ));'; put '%let match=0;'; put '%do i2=1 %to &count_base;'; put '%let base_word=%scan(&Str2,&i2,%str( ));'; put '%if &extr_word=&base_word %then %let match=1;'; put '%end;'; put '%if &match=0 %then %let outvar=&outvar &extr_word;'; put '%end;'; put '&outvar'; put '%mend mf_wordsInStr1ButNotStr2;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro mf_getquotedstr(IN_STR'; put ',DLM=%str(,)'; put ',QUOTE=S'; put ',indlm=%str( )'; put ')/*/STORE SOURCE*/;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; put '%else %if "e=N %then %let quote=;'; put '%local i item buffer;'; put '%let i=1;'; put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; put '%else %let item=%qtrim(&item);'; put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; put '%else %let buffer =&buffer&DLM%qtrim(&item);'; put '%let i = %eval(&i+1);'; put '%end;'; put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; put '&buffer'; put '%mend mf_getquotedstr;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '%macro mp_retainedkey('; put 'base_lib=WORK'; put ',base_dsn=BASETABLE'; put ',append_lib=WORK'; put ',append_dsn=APPENDTABLE'; put ',retained_key=DEFAULT_RK'; put ',business_key= PK1 PK2'; put ',check_uniqueness=NO'; put ',maxkeytable=0'; put ',locktable=0'; put ',outds=WORK.APPEND'; put ',filter_str='; put ');'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%local base_libds app_libds key_field check maxkey idx_pk newkey_cnt iserr'; put 'msg x tempds1 tempds2 comma_pk appnobs checknobs dropvar tempvar idx_val;'; put '%let base_libds=%upcase(&base_lib..&base_dsn);'; put '%let app_libds=%upcase(&append_lib..&append_dsn);'; put '%let tempds1=%mf_getuniquename();'; put '%let tempds2=%mf_getuniquename();'; put '%let comma_pk=%mf_getquotedstr(in_str=%str(&business_key),dlm=%str(,),quote=);'; put '%let outds=%sysfunc(ifc(%index(&outds,.)=0,work.&outds,&outds));'; put '/* validation checks */'; put '%let iserr=0;'; put '%if &syscc>0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(SYSCC=&syscc on macro entry);'; put '%end;'; put '%else %if %sysfunc(exist(&base_libds))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Base LIBDS (&base_libds) expected but NOT FOUND);'; put '%end;'; put '%else %if %sysfunc(exist(&app_libds))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Append LIBDS (&app_libds) expected but NOT FOUND);'; put '%end;'; put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&maxkeytable))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Maxkeytable (&maxkeytable) expected but NOT FOUND);'; put '%end;'; put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&locktable))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Locktable (&locktable) expected but NOT FOUND);'; put '%end;'; put '%else %if %length(&business_key)=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Business key (&business_key) expected but NOT FOUND);'; put '%end;'; put '%do x=1 %to %sysfunc(countw(&business_key));'; put '/* check business key values exist */'; put '%let key_field=%scan(&business_key,&x,%str( ));'; put '%if not %mf_existvar(&app_libds,&key_field) %then %do;'; put '%let iserr=1;'; put '%let msg=Business key (&key_field) not found on &app_libds!;'; put '%goto err;'; put '%end;'; put '%else %if not %mf_existvar(&base_libds,&key_field) %then %do;'; put '%let iserr=1;'; put '%let msg=Business key (&key_field) not found on &base_libds!;'; put '%goto err;'; put '%end;'; put '%end;'; put '%err:'; put '%if &iserr=1 %then %do;'; put '/* err case so first perform an unlock of the base table before exiting */'; put '%mp_lockanytable('; put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; put ')'; put '%end;'; put '%mp_abort(iftrue=(&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; put 'proc sql noprint;'; put 'select sum(max(&retained_key),0) into: maxkey from &base_libds;'; put '/**'; put '* get base table RK and bus field values for lookup'; put '*/'; put 'proc sql noprint;'; put 'create table &tempds1 as'; put 'select distinct &comma_pk,&retained_key'; put 'from &base_libds &filter_str'; put 'order by &comma_pk,&retained_key;'; put '%if &check_uniqueness=YES %then %do;'; put 'select count(*) into:checknobs'; put 'from (select distinct &comma_pk from &app_libds);'; put 'select count(*) into: appnobs from &app_libds; /* might be view */'; put '%if &checknobs ne &appnobs %then %do;'; put '%let msg=Source table &app_libds is not unique on (&business_key);'; put '%let iserr=1;'; put '%end;'; put '%end;'; put '%if &iserr=1 %then %do;'; put '/* err case so first perform an unlock of the base table before exiting */'; put '%mp_lockanytable('; put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; put ')'; put '%end;'; put '%mp_abort(iftrue= (&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; put '%if %mf_existvar(&app_libds,&retained_key)'; put '%then %let dropvar=(drop=&retained_key);'; put '/* prepare interim table with retained key populated for matching keys */'; put 'proc sql noprint;'; put 'create table &tempds2 as'; put 'select b.&retained_key, a.*'; put 'from &app_libds &dropvar a'; put 'left join &tempds1 b'; put 'on 1'; put '%do idx_pk=1 %to %sysfunc(countw(&business_key));'; put '%let idx_val=%scan(&business_key,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'order by &retained_key;'; put '/* identify the number of entries without retained keys (new records) */'; put 'select count(*) into: newkey_cnt'; put 'from &tempds2'; put 'where missing(&retained_key);'; put 'quit;'; put '/**'; put '* Update maxkey table if link provided'; put '*/'; put '%if &maxkeytable ne 0 %then %do;'; put 'proc sql noprint;'; put 'select count(*) into: check from &maxkeytable'; put 'where upcase(keytable)="&base_libds";'; put '%mp_lockanytable(LOCK'; put ',lib=%scan(&maxkeytable,1,.)'; put ',ds=%scan(&maxkeytable,2,.)'; put ',ref=Updating maxkeyvalues with mp_retainedkey'; put ',ctl_ds=&locktable'; put ')'; put 'proc sql;'; put '%if &check=0 %then %do;'; put 'insert into &maxkeytable'; put 'set keytable="&base_libds"'; put ',keycolumn="&retained_key"'; put ',max_key=%eval(&maxkey+&newkey_cnt)'; put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put '%end;'; put '%else %do;'; put 'update &maxkeytable'; put 'set max_key=%eval(&maxkey+&newkey_cnt)'; put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put 'where keytable="&base_libds";'; put '%end;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&maxkeytable,1,.)'; put ',ds=%scan(&maxkeytable,2,.)'; put ',ref=Updating maxkeyvalues with maxkey=%eval(&maxkey+&newkey_cnt)'; put ',ctl_ds=&locktable'; put ')'; put '%end;'; put '/* fill in the missing retained key values */'; put '%let tempvar=%mf_getuniquename();'; put 'data &outds(drop=&tempvar);'; put 'retain &tempvar %eval(&maxkey+1);'; put 'set &tempds2;'; put 'if &retained_key =. then &retained_key=&tempvar;'; put '&tempvar=&tempvar+1;'; put 'run;'; put '%mend mp_retainedkey;'; put '/** @cond */'; put '%macro mp_storediffs(libds'; put ',origds'; put ',key'; put ',delds=0'; put ',appds=0'; put ',modds=0'; put ',outds=work.mp_storediffs'; put ',loadref=0'; put ',processed_dttm=0'; put ',mdebug=0'; put ')/*/STORE SOURCE*/;'; put '%local dbg;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%end;'; put '%else %let dbg=*;'; put '/* set up unique and temporary vars */'; put '%local ds1 ds2 ds3 ds4 hashkey inds_auto inds_keep dslist vlist;'; put '%let ds1=%upcase(work.%mf_getuniquename(prefix=mpsd_ds1));'; put '%let ds2=%upcase(work.%mf_getuniquename(prefix=mpsd_ds2));'; put '%let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_ds3));'; put '%let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_ds4));'; put '%let hashkey=%upcase(%mf_getuniquename(prefix=mpsd_hashkey));'; put '%let inds_auto=%upcase(%mf_getuniquename(prefix=mpsd_inds_auto));'; put '%let inds_keep=%upcase(%mf_getuniquename(prefix=mpsd_inds_keep));'; put '%let dslist=&origds;'; put '%if &delds ne 0 %then %do;'; put '%let delds=%upcase(&delds);'; put '%if %scan(&delds,-1,.)=&delds %then %let delds=WORK.&delds;'; put '%let dslist=&dslist &delds;'; put '%end;'; put '%if &appds ne 0 %then %do;'; put '%let appds=%upcase(&appds);'; put '%if %scan(&appds,-1,.)=&appds %then %let appds=WORK.&appds;'; put '%let dslist=&dslist &appds;'; put '%end;'; put '%if &modds ne 0 %then %do;'; put '%let modds=%upcase(&modds);'; put '%if %scan(&modds,-1,.)=&modds %then %let modds=WORK.&modds;'; put '%let dslist=&dslist &modds;'; put '%end;'; put '%let origds=%upcase(&origds);'; put '%if %scan(&origds,-1,.)=&origds %then %let origds=WORK.&origds;'; put '%let key=%upcase(&key);'; put '/* hash the key and append all the tables (marking the source) */'; put 'data &ds1;'; put 'set &dslist indsname=&inds_auto;'; put '&hashkey=put(md5(catx(''|'',%mf_getquotedstr(&key,quote=N))),$hex32.);'; put '&inds_keep=upcase(&inds_auto);'; put 'proc sort;'; put 'by &inds_keep &hashkey;'; put 'run;'; put '/* transpose numeric & char vars */'; put 'proc transpose data=&ds1'; put 'out=&ds2(rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_num));'; put 'by &inds_keep &hashkey;'; put 'var _numeric_;'; put 'run;'; put 'proc transpose data=&ds1'; put 'out=&ds3('; put 'rename=(&hashkey=key_hash _name_=tgtvar_nm col1=newval_char)'; put 'where=(tgtvar_nm not in ("&hashkey","&inds_keep"))'; put ');'; put 'by &inds_keep &hashkey;'; put 'var _character_;'; put 'run;'; put '%if %index(&libds,-)>0 and %scan(&libds,2,-)=FC %then %do;'; put '/* this is a format catalog - cannot query cols directly */'; put '%let vlist="TYPE","FMTNAME","FMTROW","START","END","LABEL","MIN","MAX"'; put ',"DEFAULT","LENGTH","FUZZ","PREFIX","MULT","FILL","NOEDIT","SEXCL"'; put ',"EEXCL","HLO","DECSEP","DIG3SEP","DATATYPE","LANGUAGE";'; put '%end;'; put '%else %let vlist=%mf_getvarlist(&libds,dlm=%str(,),quote=DOUBLE);'; put 'data &ds4;'; put 'length &inds_keep $41 tgtvar_nm $32 _label_ $256;'; put 'if _n_=1 then call missing(_label_);'; put 'drop _label_;'; put 'set &ds2 &ds3 indsname=&inds_auto;'; put 'tgtvar_nm=upcase(tgtvar_nm);'; put 'if tgtvar_nm in (%upcase(&vlist));'; put 'if upcase(&inds_auto)="&ds2" then tgtvar_type=''N'';'; put 'else if upcase(&inds_auto)="&ds3" then tgtvar_type=''C'';'; put 'else do;'; put 'putlog ''ERR'' +(-1) "OR: unidentified vartype input!" &inds_auto;'; put 'call symputx(''syscc'',98);'; put 'end;'; put 'if &inds_keep="&appds" then move_type=''A'';'; put 'else if &inds_keep="&delds" then move_type=''D'';'; put 'else if &inds_keep="&modds" then move_type=''M'';'; put 'else if &inds_keep="&origds" then move_type=''O'';'; put 'else do;'; put 'putlog ''ERR'' +(-1) "OR: unidentified movetype input!" &inds_keep;'; put 'call symputx(''syscc'',99);'; put 'end;'; put 'tgtvar_nm=upcase(tgtvar_nm);'; put 'if tgtvar_nm in (%mf_getquotedstr(&key)) then is_pk=1;'; put 'else is_pk=0;'; put 'drop &inds_keep;'; put 'run;'; put '%if "&loadref"="0" %then %let loadref=%sysfunc(uuidgen());'; put '%if &processed_dttm=0 %then %let processed_dttm=%sysfunc(datetime(),8.6);'; put '%let libds=%upcase(&libds);'; put '/* join orig vals for modified & deleted */'; put 'proc sql;'; put 'create table &outds as'; put 'select "&loadref" as load_ref length=36'; put ',&processed_dttm as processed_dttm format=E8601DT26.6'; put ',"%scan(&libds,1,.)" as libref length=8'; put ',"%scan(&libds,2,.)" as dsn length=32'; put ',b.key_hash length=32'; put ',b.move_type length=1'; put ',b.tgtvar_nm length=32'; put ',b.is_pk'; put ',case when b.move_type ne ''M'' then -1'; put 'when a.newval_num=b.newval_num and a.newval_char=b.newval_char then 0'; put 'else 1'; put 'end as is_diff'; put ',b.tgtvar_type length=1'; put ',case when b.move_type=''D'' then b.newval_num'; put 'else a.newval_num'; put 'end as oldval_num format=best32.'; put ',case when b.move_type=''D'' then .'; put 'else b.newval_num'; put 'end as newval_num format=best32.'; put ',case when b.move_type=''D'' then b.newval_char'; put 'else a.newval_char'; put 'end as oldval_char length=32765'; put ',case when b.move_type=''D'' then '''''; put 'else b.newval_char'; put 'end as newval_char length=32765'; put 'from &ds4(where=(move_type=''O'')) as a'; put 'right join &ds4(where=(move_type ne ''O'')) as b'; put 'on a.tgtvar_nm=b.tgtvar_nm'; put 'and a.key_hash=b.key_hash'; put 'order by move_type, key_hash,is_pk desc, tgtvar_nm;'; put '%if &mdebug=0 %then %do;'; put 'proc sql;'; put 'drop table &ds1, &ds2, &ds3, &ds4;'; put '%end;'; put '%mend mp_storediffs;'; put '/** @endcond */'; put '%macro bitemporal_dataloader('; put 'bus_from= /* Business FROM datetime variable. Req''d on'; put 'STAGING & BASE tables.*/'; put ',bus_to = /* Business TO datetime variable. Req''d on'; put 'STAGING & BASE tables. */'; put ',bus_from_override= /* Provide a hard coded BUS_FROM datetime value.*/'; put ',bus_to_override= /* provide a hard coded BUS_TO datetime value */'; put ',tech_from= /* Technical FROM datetime variable. Req''d on'; put 'BASE table only. */'; put ',tech_to = /* Technical TO datetime variable. Req''d on BASE'; put 'table only. */'; put ',processed= 0'; put ',base_lib=WORK /* Libref of the BASE table. */'; put ',base_dsn=BASETABLE /* Name of BASE table. */'; put ',append_lib=WORK /* Libref of the STAGING table. */'; put ',append_dsn=APPENDTABLE'; put ',high_date=''01JAN5999:00:00:00''dt /* High date to close out records */'; put ',PK= name sex'; put ',RK_UNDERLYING='; put ',KEEPVARS= /* Provides option for removing unwanted vars from append table */'; put ',RK_UPDATE_MAXKEYTABLE=NO /* If switching (or mix matching) with regular'; put 'SCD2 loader then set this switch to YES to'; put 'ensure the MAXKEYTABLE is updated with the'; put 'current maximum RK value for the target table'; put '*/'; put ',CHECK_UNIQUENESS=YES /* Perform a check of the APPEND table to ensure it is'; put 'unique on its business key */'; put ',ETLSOURCE=demo /* supply a value ($50.) to show as ETLSOURCE in'; put '&dclib..DATALOADS */'; put ',LOADTYPE=BITEMPORAL'; put ',RK_MAXKEYTABLE= mpe_maxkeyvalues'; put ',LOG=1 /* Switch to 0 to prevent records being added to'; put '&mpelib..mpe_DATALOADS (ie when testing)*/'; put ',DELETE_COL= _____DELETE__THIS__RECORD_____'; put '/* If this variable is found in the append dataset'; put 'then records are closed out (or deleted) in the'; put 'append table where that variable= "Yes" */'; put ',LOADTARGET=YES /* set to anything but uppercase YES to switch off'; put 'target table load and generate temp tables only */'; put ',CLOSE_VARS='; put '/*a problem with regular SCD2 or TXTEMPORAL loads is that there is'; put 'no facility to close out removed records (all records are'; put 'assumed new or changed). But how does one determine which'; put 'records are removed? Short of loading the entire table'; put 'each time? This parameter allows a set of variables'; put '(this should be a subset of the PK) to be declared, and'; put 'the macro will determine which records in the base table'; put 'need to be closed out ahead of the load.'; put 'For instance, given the following:'; put 'Base Table Staging Table'; put 'DATE ENTITY AMOUNT DATE ENTITY AMOUNT'; put 'JAN ACME4 66 JAN ACME4 66'; put 'FEB ACME4 99 FEB ACME4 99'; put 'FEB ACME1 22'; put 'By supplying DATE in CLOSE_VARS and DATE ENTITY as the PK,'; put 'the "FEB PAG 22" record would get closed out.'; put '*/'; put ',config_table=&dclib..MPE_CONFIG'; put ',dclib=&dc_libref'; put ',outds_del=work.outds_del'; put ',outds_add=work.outds_add'; put ',outds_mod=work.outds_mod'; put ',outds_audit=0'; put ');'; put '/* when changing this macro, update the version num here */'; put '%local ver;'; put '%let ver=32;'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%dc_assignlib(WRITE,&base_lib) /* may not already be assigned */'; put '/* return straight away if nothing to load */'; put '%let nobs= %mf_getattrn(&append_lib..&append_dsn,NLOBS);'; put '%if &nobs=-1 %then %do;'; put 'proc sql noprint; select count(*) into: nobs from &append_lib..&append_dsn;'; put '%end;'; put '%if &nobs=0 %then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- Base dataset &append_lib..&append_dsn is empty. Nothing to upload!;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%return;'; put '%end;'; put '/* hard exit if err condition exists */'; put '%mp_abort(iftrue= (&syscc > 0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status;)'; put ')'; put '%local engine_type;'; put '%let engine_type=%mf_getengine(&base_lib);'; put '%if (&engine_type=REDSHIFT or &engine_type=POSTGRES) and %length(&CLOSE_VARS)>0'; put '%then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- CLOSE_VARS functionality not yet supported in &engine_type;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%return;'; put '%end;'; put '/**'; put '* The metadata functions (eg mf_existvar) will fail if the base table has a'; put '* SAS lock. So, make a snapshot of the base table for further use.'; put '* Also, make output tables (regardless).'; put '*/'; put '%local basecopy;'; put '%let basecopy=%mf_getuniquename(prefix=basecopy);'; put 'data &basecopy &outds_mod &outds_add &outds_del;'; put 'set &base_lib..&base_dsn;'; put 'stop;'; put 'run;'; put '%mp_abort(iftrue= (&syscc > 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after base table copy - aborting due to table lock)'; put ')'; put '%local cols idx_pk md5_col ;'; put '%let md5_col=___TMP___md5;'; put '%let check_uniqueness=%upcase(&check_uniqueness);'; put '%let RK_UPDATE_MAXKEYTABLE=%upcase(&RK_UPDATE_MAXKEYTABLE);'; put '%let high_date=%unquote(&high_date);'; put '%let loadtype=%upcase(&loadtype);'; put '/* ensure irrelevant variables are cleared */'; put '%if &loadtype=BUSTEMPORAL %then %do;'; put '%let tech_from=;'; put '%let tech_to=;'; put '%end;'; put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; put '%let bus_from=;'; put '%let bus_to=;'; put '%end;'; put '/* ensure relevant variables are supplied */'; put '%mp_abort(iftrue=(&loadtype=BITEMPORAL & %mf_verifymacvars(bus_from bus_to)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing BUS_FROM / BUS_TO)'; put ')'; put '%mp_abort(iftrue=(&loadtype=TXTEMPORAL & %mf_verifymacvars(tech_from tech_to)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing TECH_FROM / TECH_TO)'; put ')'; put '/**'; put '* drop any tables (may be defined as views or vice versa preventing overwrite)'; put '*/'; put '%mp_dropmembers(append bitemp0_append bitemp_cols)'; put '/* SQL Server requires its own time values */'; put '/* 9.2 will only give picture format down to seconds. 9.3 allows'; put 'milliseconds by using lower S and defining the decimal in the format name..*/'; put 'PROC FORMAT;'; put 'picture MyMSdt other=''%0Y-%0m-%0dT%0H:%0M:%0S'' (datatype=datetime);'; put 'RUN;'; put '%local dbnow;'; put '%let dbnow="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'data _null_;'; put '/* convert space separated macvar to comma separated for SQL processing */'; put 'call symputx(''PK_COMMA'',tranwrd(compbl("&pk"),'' '','',''),''L'');'; put 'call symputx(''PK_CNT'',countw("&pk",'' ''),''L'');'; put 'now=&dbnow;'; put 'call symputx(''NOW'',now,''L'');'; put 'call symputx(''SQLNOW'',cats("''",put(now,MyMSdt.),"''"),''L'');'; put 'length etlsource $100;'; put 'etlsource=subpad(symget(''etlsource''),1,100);'; put 'call symputx(''etlsource'',etlsource,''l'');'; put 'run;'; put '/**'; put '* Even if no PROCESSED var provided, assume that any variable named'; put '* PROCESSED_DTTM should be updated'; put '*/'; put '%if &processed=0 %then %do;'; put '%if %mf_existvar(&basecopy,PROCESSED_DTTM)'; put '%then %let processed=PROCESSED_DTTM;'; put '%else %let processed=;'; put '%end;'; put '/* extract colnames for md5 creation / change tracking */'; put 'proc contents noprint data=&base_lib..&base_dsn'; put 'out=work.bitemp_cols (keep=name type length varnum format:);'; put 'run;'; put 'proc sql noprint;'; put 'select name into: cols separated by '','''; put 'from work.bitemp_cols'; put 'where upcase(name) not in'; put '(%upcase("&bus_from","&bus_to"'; put ',"&tech_from","&tech_to"'; put ',"&processed","&delete_col")) ;'; put 'select case when type in (2,6) then cats(''put(md5(trim('',name,'')),$hex32.)'')'; put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; put '/* but ONLY if not missing, else will lose any special missing values */'; put 'else cats(''put(md5(trim(put(ifn(missing('''; put ',name,''),'',name,'','',name,''*1),binary64.))),$hex32.)'') end'; put 'into: stripcols separated by ''||'''; put 'from work.bitemp_cols'; put 'where upcase(name) not in'; put '(%upcase("&bus_from","&bus_to"'; put ',"&tech_from","&tech_to"'; put ',"&processed","&delete_col")) ;'; put '/* set default formats*/'; put '%let bus_from_fmt = datetime19.;'; put '%let bus_to_fmt = datetime19.;'; put '%let processed_fmt = datetime19.;'; put '%let tech_from_fmt = format=datetime19.;'; put '%let tech_to_fmt = format=datetime19.;'; put '%put &=stripcols;'; put '%put &=pk;'; put 'data _null_;'; put 'set work.bitemp_cols;'; put 'if type=2 or type=6 then do;'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'if format='''' then fmt=cats(length,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put 'if upcase(name)="%upcase(&bus_from)" then'; put 'call symputx(''bus_from_fmt'',fmt,''L'');'; put 'else if upcase(name)="%upcase(&bus_to)" then'; put 'call symputx(''bus_to_fmt'',fmt,''L'');'; put 'else if upcase(name)="%upcase(&tech_from)" then'; put 'call symputx(''tech_from_fmt'',"format="!!fmt,''L'');'; put 'else if upcase(name)="%upcase(&tech_to)" then'; put 'call symputx(''tech_to_fmt'',"format="!!fmt,''L'');'; put 'else if upcase(name)="%upcase(&processed)" then'; put 'call symputx(''processed_fmt'',fmt,''L'');'; put 'run;'; put '%if %index(%quote(&cols),___TMP___) %then %do;'; put '%let msg=%str(Table contains a variable name containing "___TMP___".%trim('; put ') This may conflict with temp variable generation!!);'; put '%mp_abort(msg=&msg,mac=bitemporal_dataloader);'; put '%let syscc=5;'; put '%return;'; put '%end;'; put '/* if transaction dates appear on the APPEND table, need to remove them */'; put '%local drop_tx_dates /* used in append table */'; put 'drop_tx_dates_noobs /* used to take the base table structure */;'; put '%if %mf_existvar(&append_lib..&append_dsn, &tech_from)'; put '%then %let drop_tx_dates=&tech_from;'; put '%if %mf_existvar(&append_lib..&append_dsn, &tech_to)'; put '%then %let drop_tx_dates=&drop_tx_dates &tech_to;'; put '%if %length(%trim(&drop_tx_dates))>0'; put '%then %let drop_tx_dates=(drop=&drop_tx_dates);'; put '%if %mf_existvar(&basecopy, &tech_from)'; put '%then %let drop_tx_dates_noobs=&tech_from;'; put '%if %mf_existvar(&basecopy, &tech_to)'; put '%then %let drop_tx_dates_noobs=&drop_tx_dates_noobs &tech_to;'; put '%if %length(%trim(&drop_tx_dates_noobs))>0'; put '%then %let drop_tx_dates_noobs=(drop=&drop_tx_dates_noobs obs=0);'; put '%else %let drop_tx_dates_noobs=(obs=0);'; put '/**'; put '* Lock the table. This is necessary as we are doing a two part update (first'; put '* closing records then appending new records). It is theoretically possible'; put '* that an upload may occur whilst preparing the staging tables. And the'; put '* staging tables are about to be prepared..'; put '*/'; put '%if &LOADTARGET = YES %then %do;'; put '%put locking &base_lib..&base_dsn;'; put '%mp_lockanytable(LOCK,'; put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%if "&outds_audit" ne "0" %then %do;'; put '%put locking &outds_audit;'; put '%mp_lockanytable(LOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%else %do;'; put '/* not an actual load, so avoid updating the max key table in next step. */'; put '%let rk_update_maxkeytable=NO;'; put '%end;'; put '%if %length(&RK_UNDERLYING)>0 %then %do;'; put '%mp_retainedkey('; put 'base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=&append_lib'; put ',append_dsn=&append_dsn'; put ',retained_key=&pk'; put ',business_key=&rk_underlying'; put ',check_uniqueness=&CHECK_UNIQUENESS'; put ',outds=work.append'; put '%if &rk_update_maxkeytable=NO %then %do;'; put ',maxkeytable=0'; put '%end;'; put '%else %do;'; put ',maxkeytable=&dclib..&RK_MAXKEYTABLE'; put '%end;'; put ',locktable=&dclib..mpe_lockanytable'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put ',filter_str=%str( (where=( &now < &tech_to)) )'; put '%end;'; put ')'; put '%end;'; put '%else %do;'; put 'proc sql;'; put 'create view work.append as select * from &append_lib..&append_dsn;'; put '%end;'; put '/**'; put '* generate md5 for append table'; put '*/'; put '/* it is possible the source dataset has additional (unwanted) columns.'; put 'Drop if specified; */'; put '%if %length(&keepvars)>0 %then %do;'; put '/* remove tech dates from keepvars as they are generated later */'; put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_from ),%str( )));'; put '%let keepvars=%sysfunc(tranwrd(%str( &keepvars ),%str( &tech_to ),%str( )));'; put '%let keepvars=(keep=&keepvars &bus_from &bus_to &processed &md5_col);'; put '%end;'; put '/* CAS varchar types cause append issues here, so perform autoconvert'; put 'by creating empty local table first */'; put 'data;'; put 'set &base_lib..&base_dsn &drop_tx_dates_noobs;'; put 'run;'; put '%local emptybasetable; %let emptybasetable=&syslast;'; put 'data work.bitemp0_append &keepvars &outds_del(drop=&md5_col )'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put '/nonote2err'; put '%end;'; put ';'; put '/* apply formats for bitemporal vars but not tx dates which are added later */'; put '%if %length(&keepvars)>0 and &loadtype=BITEMPORAL %then %do;'; put 'format &bus_from &bus_from_fmt;'; put 'format &bus_to &bus_to_fmt;'; put '%end;'; put 'set &emptybasetable /* base table reqd in case append has fewer cols */'; put 'work.append &drop_tx_dates;'; put '%if %length(%str(&bus_from_override))>0 %then %do;'; put '&bus_from= %unquote(&bus_from_override) ;'; put '%end;'; put '%if %length(%str(&bus_to_override))>0 %then %do;'; put '&bus_to= %unquote(&bus_to_override) ;'; put '%end;'; put 'length &md5_col $32;'; put '&md5_col=put(md5(&stripcols),hex32.);'; put '%if %length(&processed)>0 %then %do;'; put 'format &processed &processed_fmt;'; put '&processed=&now;'; put '%end;'; put '/**'; put '* If a delete column exists then create the delete dataset'; put '*/'; put '%if %mf_existvar(&append_lib..&append_dsn, &delete_col) %then %do;'; put 'drop &delete_col;'; put 'if upcase(&delete_col) = "YES" then output &outds_del ;'; put 'else output work.bitemp0_append ;'; put 'run;'; put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; put '%bitemporal_closeouts('; put 'tech_from=&tech_from'; put ',tech_to = &tech_to'; put ',base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=work'; put ',append_dsn=%scan(&outds_del,-1,.)'; put ',PK=&bus_from &pk'; put ',NOW=&dbnow'; put ',loadtarget=&loadtarget'; put ',loadtype=&loadtype'; put ')'; put '%end;'; put '%end;'; put '%else %do;'; put 'output work.bitemp0_append;'; put 'run;'; put '%end;'; put '%mp_abort(iftrue= (&syscc gt 0 at line 494)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%if %length(&close_vars)>0 %then %do;'; put '/**'; put '* need to close out records that are not provided'; put '*/'; put 'proc sql;'; put 'create table bitemp1_closevars1 as'; put 'select distinct a.%mf_getquotedstr(in_str=&pk,dlm=%str(,a.),quote=)'; put 'from &base_lib..&base_dsn a'; put 'inner join work.bitemp0_append b'; put 'on 1=1'; put '/* join on closevars key */'; put '%do idx_pk=1 %to %sysfunc(countw(&close_vars));'; put '%let idx_val=%scan(&close_vars,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '/* filter base on tech dates if necessary */'; put '%if &loadtype=TXTEMPORAL %then %do;'; put 'where a.&tech_from <=&now and &now < a.&tech_to'; put '%end;'; put ';'; put 'create table bitemp1_closevars2 as'; put 'select distinct a.*'; put 'from bitemp1_closevars1 a'; put 'left join work.bitemp0_append b'; put 'on 1=1'; put '/* join on primary key */'; put '%do idx_pk=1 %to %sysfunc(countw(&pk));'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '/* identify removed records by null value in a field in PK but not close_vars'; put '*/'; put 'where b.%scan('; put '%mf_wordsInStr1ButNotStr2(Str1=&pk,Str2=&close_vars),1,%str( )'; put ') IS NULL'; put ';'; put '%if %mf_getattrn(bitemp1_closevars2,NLOBS)>0 %then %do;'; put '%bitemporal_closeouts('; put 'tech_from=&tech_from'; put ',tech_to = &tech_to'; put ',base_lib=&base_lib'; put ',base_dsn=&base_dsn'; put ',append_lib=work'; put ',append_dsn=bitemp1_closevars2'; put ',PK=&bus_from &pk'; put ',NOW=&dbnow'; put ',loadtarget=&loadtarget'; put ',loadtype=&loadtype'; put ')'; put '%end;'; put '%end;'; put '/* return if nothing to load (was just deletes) */'; put '%if %mf_getattrn(work.bitemp0_append,NLOBS)=0 %then %do;'; put '%put NOTE:; %put NOTE-;%put NOTE-;%put NOTE-;'; put '%put NOTE- No updates - just deletes!;'; put '%put NOTE-;%put NOTE-;%put NOTE-;'; put '%end;'; put '/**'; put '* If applying manual overrides to business dates, then the input table MUST'; put '* be unique on the PK. Check, and if not - abort.'; put '*/'; put '%local msg;'; put '%if %length(&bus_from_override.&bus_to_override)>0 or &CHECK_UNIQUENESS=YES'; put '%then %do;'; put 'proc sort data=work.bitemp0_append out=work.bitemp0_check nodupkey;'; put 'by &pk;'; put 'run;'; put '%if %mf_getattrn(work.bitemp0_check,NLOBS)'; put 'ne %mf_getattrn(work.bitemp0_append,NLOBS)'; put '%then %do;'; put '%let msg=INPUT table &append_lib..&append_dsn is not unique on PK (&pk);'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_abort(msg=&msg,mac=bitemporal_dataloader.sas);'; put '%end;'; put '%end;'; put '/**'; put '* extract from BASE table. Only want matching records, as could be very BIG.'; put '* New records are subsequently identified via left join and test for nulls.'; put '*/'; put '%local temp_table temp_table2 base_table baselib_schema;'; put '%put DCNOTE: Extracting matching observations from &base_lib..&base_dsn;'; put '%if &engine_type=OLEDB %then %do;'; put '%let temp_table=##%mf_getuniquefileref(prefix=BTMP);'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=(select * from [dbo].&base_dsn'; put 'where convert(datetime,&SQLNOW) < &tech_to );'; put '%else %let base_table=[dbo].&base_dsn;'; put 'proc sql;'; put 'create table &base_lib.."&temp_table"n as'; put 'select * from work.bitemp0_append;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'create table work.bitemp0_base as select * from connection to myAlias('; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put '/* grab schema */'; put '%let baselib_schema=%mf_getschema(&base_lib);'; put '%if &baselib_schema.X ne X %then %let baselib_schema=&baselib_schema..;'; put '/* grab redshift config */'; put '%local redcnt; %let redcnt=0;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'data _null_;'; put 'set &config_table(where=(var_scope=''DCBL_REDSH'' and var_active=1));'; put 'x+1;'; put 'call symputx(cats(''rednm'',x),var_value,''l'');'; put 'call symputx(cats(''redval'',x),var_value,''l'');'; put 'call symputx(''redcnt'',x,''l'');'; put 'run;'; put '%end;'; put '/* cannot persist temp tables so must create a temporary permanent table */'; put '%let temp_table=%mf_getuniquename(prefix=XDCTEMP);'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=(select * from &baselib_schema.&base_dsn'; put 'where timestamp &sqlnow < &tech_to );'; put '%else %let base_table=&baselib_schema.&base_dsn;'; put '/* make empty table first - must clone & drop extra cols as autoload is bad */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'exec (create table &temp_table (like &baselib_schema.&base_dsn)) by myAlias;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'exec (alter table &temp_table alter sortkey none) by myAlias;'; put '%end;'; put '%local dropcols;'; put '%let dropcols=%mf_wordsinstr1butnotstr2('; put 'str1=%upcase(%mf_getvarlist(&basecopy))'; put ',str2=%upcase(&pk)'; put ');'; put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; put '%put &=dropcols;'; put '%let idx_val=%scan(&dropcols,&idx_pk);'; put 'exec(alter table &temp_table drop column &idx_val;) by myAlias;'; put '%end;'; put 'exec (alter table &temp_table add column &md5_col varchar(32);) by myAlias;'; put '/* create view to strip formats and avoid warns in log */'; put 'data work.vw_bitemp0/view=work.vw_bitemp0;'; put 'set work.bitemp0_append(keep=&pk &md5_col);'; put 'format _all_;'; put 'run;'; put 'proc append base=&base_lib..&temp_table'; put '%if &engine_type=REDSHIFT %then %do;'; put '('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put '%end;'; put 'data=work.vw_bitemp0 force nowarn;'; put 'run;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'create table work.bitemp0_base as select * from connection to myAlias('; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=&base_lib..&base_dsn'; put '(where=(&tech_from <=&now and &now < &tech_to));'; put '%else %let base_table=&base_lib..&base_dsn;'; put '%let temp_table=CASUSER.%mf_getuniquename(prefix=DC);'; put 'data &temp_table;'; put 'set work.bitemp0_append;'; put 'run;'; put '%let bitemp0base=CASUSER.%mf_getuniquename(prefix=DC);'; put 'proc fedsql sessref=dcsession;'; put 'create table &bitemp0base{options replace=true} as'; put '%end;'; put '%else %do;'; put '%let temp_table=work.bitemp0_append;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then'; put '%let base_table=&base_lib..&base_dsn'; put '(where=(&tech_from <=&now and &now < &tech_to));'; put '%else %let base_table=&base_lib..&base_dsn;'; put 'proc sql;'; put 'create table work.bitemp0_base as'; put '%end;'; put 'select a.&md5_col /* this identifies NEW records */'; put ', b.*'; put '/* assume first PK field cannot be null (if defined in a PK constraint then'; put 'it definitely cannot be null) */'; put ', case when b.%scan(&pk,1) IS NULL then 1 else 0 end as ___TMP___NEW_FLG'; put 'from &baselib_schema.&temp_table a'; put 'left join &base_table b'; put 'on 1=1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; put '%then %do;'; put '); proc sql; drop table &base_lib.."&temp_table"n;'; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put ';'; put 'quit;'; put 'data work.bitemp0_base;'; put 'set &bitemp0base;'; put 'run;'; put 'proc sql;'; put 'drop table &temp_table;'; put 'drop table &bitemp0base;'; put '%end;'; put '%else %do;'; put ';'; put '%end;'; put '/**'; put '* matching & changed records are those without NULL key values'; put '* &idx_val resolves to rightmost PK value (loop above)'; put '*/'; put '%put syscc (line525)=&syscc, sqlrc=&sqlrc;'; put '%mp_abort(iftrue= (&syscc gt 0 or &sqlrc>0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc sqlrc=&sqlrc)'; put ')'; put '%put hashcols2=&stripcols;'; put 'proc sql;'; put 'create table work.bitemp1_current(drop=___TMP___NEW_FLG) as'; put 'select *'; put ', put(md5(&stripcols),$hex32.) as &md5_col'; put 'from work.bitemp0_base (drop=&md5_col)'; put 'where ___TMP___NEW_FLG=0;'; put '/**'; put '* NEW records were identified in ___TMP___NEW_FLG in bitemp0_base'; put '*/'; put 'proc sql;'; put 'create table &outds_add'; put '(drop=&md5_col'; put '%if %mf_existvar(work.bitemp0_base, &delete_col) %then %do;'; put '&delete_col'; put '%end;'; put ')'; put 'as select a.*'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put ',&now as &tech_from &tech_from_fmt'; put ',&high_date as &tech_to &tech_to_fmt'; put '%end;'; put 'from work.bitemp0_append a /* STAGING records (mix of existing & new) */'; put ', work.bitemp0_base b /* BASE records (contains null values for new) */'; put 'where a.&md5_col=b.&md5_col /* took staging md5 across in left join */'; put 'and b.___TMP___NEW_FLG=1; /* NEW records also identified in bitemp0_base */'; put '/**'; put '* identify INSERTS. These are records with the same business key but'; put '* the bus_from and bus_to value are higher / lower (respectively)'; put '* such that the existing record needs to be SPLIT to surround the new'; put '* record.'; put '* eg: OLD RECORD from=1 to=10'; put '* NEW RECORD from=5 to=7'; put '*'; put '* APPENDED RECORDS:'; put '* - from=1 to=5'; put '* - from=5 to=7'; put '* - from=7 to=10'; put '*/'; put '/* inserts cannot happen with TXTEMPORAL */'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* IDENTIFY */'; put 'create table work.bitemp3_inserts as'; put 'select b.*'; put ',a.&bus_from as ___TMP___from'; put ',a.&bus_to as ___TMP___to'; put 'from work.bitemp0_append a'; put ',work.bitemp1_current b'; put 'where a.&bus_from > b.&bus_from'; put 'and a.&bus_to < b.&bus_to'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'order by'; put '/* compress blanks and then insert commas (as the datetime fields may'; put 'not be in use) */'; put '%sysfunc(tranwrd(%sysfunc(compbl('; put '&pk &bus_from &bus_to &processed'; put ')),%str( ), %str(,)))'; put ';'; put '/* SPLIT */'; put 'data work.bitemp3a_inserts (drop=___TMP___from ___TMP___retain ___TMP___to) ;'; put 'set work.bitemp3_inserts;'; put 'by &pk &bus_from &bus_to &processed;'; put 'if first.&idx_val then do;'; put '___TMP___retain=&bus_to;'; put '&bus_to=___TMP___from;'; put 'output;'; put '&bus_to=___TMP___retain;'; put 'end;'; put 'if last.&idx_val then do;'; put '&bus_from=___TMP___to;'; put 'output;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* TX temporal load */'; put 'data work.bitemp3a_inserts;'; put 'set work.bitemp1_current;'; put 'stop;'; put 'run;'; put '%end;'; put '/* APPEND */'; put 'proc sql;'; put 'create view work.bitemp3a_view as'; put 'select * from work.bitemp1_current'; put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; put 'data bitemp3b_newbase;'; put 'set work.bitemp3a_inserts work.bitemp3a_view;'; put 'run;'; put '/** do not use! this converts short numerics into 8 bytes'; put 'proc sql;'; put 'create table work.bitemp3b_newbase as'; put 'select * from work.bitemp3a_inserts'; put 'union corr'; put 'select * from work.bitemp1_current'; put 'where &md5_col not in (select &md5_col from work.bitemp3a_inserts);'; put '*/'; put '/**'; put '* identify CHANGED records from staging.'; put '* Same business key with different temporal dates or md5 value'; put '* This table must be overlayed onto / into existing business history'; put '*/'; put 'proc sql;'; put 'create table work.bitemp4_updated as select distinct a.*'; put 'from work.bitemp0_append a'; put ',work.bitemp3b_newbase b'; put 'where 1=1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'and ( a.&md5_col ne b.&md5_col'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put 'OR (a.&bus_from ne b.&bus_from or a.&bus_to ne b.&bus_to)'; put '%end;'; put ')'; put ';'; put '/**'; put '* This section would have been one simple step with union all'; put '* but that converts short numerics into 8 bytes!'; put '* so, convoluted alternative to retain the same functionality.'; put '*/'; put '/* base records */'; put 'create view work.bitemp4_prep1 as'; put 'select ''BASE'' as ___TMP___'; put ',b.*'; put 'from work.bitemp4_updated a'; put ',work.bitemp3b_newbase b'; put 'where 1'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put ';'; put '/* updated records */'; put 'create view work.bitemp4_prep2 as'; put 'select ''STAG'' as ___TMP___ ,*'; put 'from work.bitemp4_updated;'; put '/* ensure we only keep columns that appear in both */'; put '%local bp1 bp2 bp3 bp4;'; put '%let bp1=%mf_getvarlist(bitemp4_prep1);'; put '%let bp2=%mf_getvarlist(bitemp4_prep2);'; put '%let bp3=%mf_wordsInStr1ButNotStr2(Str1=&bp1,Str2=&bp2);'; put '%let bp4=%mf_wordsInStr1ButNotStr2(Str1=&bp2,Str2=&bp1);'; put 'data work.bitemp4_prep3/view=bitemp4_prep3;'; put 'set bitemp4_prep1 bitemp4_prep2;'; put '%if %length(XX&bp3&bp4)>2 %then %do;'; put 'drop &bp3 &bp4 ;'; put '%end;'; put 'run;'; put '/* remove duplicates */'; put 'proc sql;'; put 'create table work.bitemp4a_allrecs as'; put 'select distinct *'; put 'from work.bitemp4_prep3'; put 'order by'; put '/* compress blanks and then insert commas (as the datetime fields'; put 'may not be in use) */'; put '%sysfunc(tranwrd(%sysfunc(compbl('; put '&pk &bus_from &bus_to &processed'; put ')),%str( ), %str(,)))'; put ';'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* this section aligns the business dates'; put '(eg for inserts or overlaps in the range) */'; put 'data work.bitemp4b_firstpass (drop=___TMP___cond ___TMP___from ___TMP___to );'; put 'set work.bitemp4a_allrecs;'; put 'by &pk &bus_from &bus_to &processed;'; put 'retain ___TMP___cond ''Name of Condition'';'; put 'retain ___TMP___from ___TMP___to 0;'; put '___TMP___md5lag=lag(&md5_col);'; put '/* reset retained variables */'; put 'if first.&idx_val then do;'; put 'call missing (___TMP___cond, ___TMP___from, ___TMP___to,___TMP___md5lag);'; put 'end;'; put 'else do;'; put '/* if record is identical, carry forward bus_from (and bus_to if higher)*/'; put 'if &md5_col=___TMP___md5lag then do;'; put '&bus_from=___TMP___from;'; put 'if &bus_to<___TMP___to then &bus_to=___TMP___to;'; put 'end;'; put 'end;'; put 'if ___TMP___=''STAG'' then do;'; put '/* need to carry forward the closing record */'; put '___TMP___cond=''Condition 1'';'; put 'end;'; put 'else if ___TMP___cond=''Condition 1'' then do;'; put '/* else ensure bus_from starts from prior record bus_to */'; put 'if &md5_col ne ___TMP___md5lag and &bus_from <= ___TMP___to'; put 'then &bus_from= ___TMP___to;'; put '/* new record may replace old record entirely */'; put 'if &bus_to <= &bus_from then delete;'; put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; put 'end;'; put '___TMP___from=&bus_from;'; put '___TMP___to=&bus_to;'; put 'run;'; put '%end;'; put '%else %do;'; put '/* keep staged records only */'; put 'data work.bitemp4b_firstpass;'; put 'set work.bitemp4a_allrecs;'; put 'if ___TMP___=''STAG'';'; put 'run;'; put '%end;'; put '/* next phase is to pass through in reverse - so set up the sort statement */'; put '%local byvar;'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let byvar=&byvar descending %scan(&pk,&idx_pk);'; put '%end;'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL'; put '%then %let byvar=&byvar descending &bus_from descending &bus_to;'; put '/* if matching bus dates supplied, need to ensure we also have a sort'; put 'between BASE and STAGING tables */'; put '%let byvar=&byvar descending ___TMP___;'; put 'proc sort data=work.bitemp4b_firstpass out=work.bitemp4c_sort ;'; put 'by &byvar;'; put 'run;'; put '/**'; put '* Now (in reverse) pass back business start dates'; put '*/'; put 'data work.bitemp4d_secondpass;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put '&tech_from=&now;'; put '&tech_to=&high_date;'; put '%end;'; put 'set work.bitemp4c_sort ;'; put 'by &byvar;'; put 'retain ___TMP___cond ''Name of Condition'';'; put 'retain ___TMP___from ___TMP___to 0;'; put '%if &loadtype=BITEMPORAL or &loadtype=BUSTEMPORAL %then %do;'; put '/* put / _all_ /;*/'; put '___TMP___md5lag=lag(&md5_col);'; put 'if first.&idx_val then do;'; put '/* reset retained variables */'; put 'call missing (___TMP___cond,___TMP___from,___TMP___to,___TMP___md5lag);'; put 'end;'; put 'else do;'; put '/* if record is identical, carry back bus_to */'; put 'if &md5_col=___TMP___md5lag then &bus_to=___TMP___to;'; put 'end;'; put 'if ___TMP___=''STAG'' then do;'; put '/* need to carry forward the closing record */'; put '___TMP___cond=''Condition 2'';'; put 'end;'; put 'else if ___TMP___cond=''Condition 2'' then do;'; put '/* else ensure bus_to stops at subsequent record bus_from */'; put 'if &md5_col ne ___TMP___md5lag and &bus_to >= ___TMP___from'; put 'then &bus_to= ___TMP___from;'; put '/* new record may replace old record entirely */'; put 'if &bus_from >= &bus_to then delete;'; put 'if &bus_from=___TMP___from and &bus_to=___TMP___to then delete;'; put 'else call missing (___TMP___cond, ___TMP___from, ___TMP___to);'; put 'end;'; put '___TMP___from=&bus_from;'; put '___TMP___to=&bus_to;'; put '%end;'; put 'run;'; put '%put syscc (line600)=&syscc;'; put '/**'; put 'There may still be some records (eg old business history) which have not'; put 'changed.'; put 'Need to identify these and remove from the append so they are not updated'; put 'unnecessarily. This is done by generating a new md5 (which INCLUDES the'; put 'business key) and any matching / identical records are split out (from those'; put 'that need to be updated).'; put '*/'; put '%if &loadtype=BITEMPORAL %then %do;'; put '%let cat_string=catx(''|'' ,&bus_from,&bus_to);'; put 'data work.bitemp5a_lkp (keep=&md5_col)'; put '%if "%substr(&sysver,1,1)" ne "4" & "%substr(&sysver,1,1)" ne "5" %then %do;'; put '/nonote2err'; put '%end;'; put ';'; put 'set work.bitemp0_base;'; put '/* for BITEMPORAL we need to compare business dates also */'; put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.);'; put 'run;'; put 'data bitemp5b_updates;'; put 'set bitemp4d_secondpass;'; put 'if _n_=1 then do;'; put 'dcl hash md5_lkp(dataset:''bitemp5a_lkp'');'; put 'md5_lkp.definekey("&md5_col");'; put 'md5_lkp.definedone();'; put 'end;'; put '/* drop old md5 col as will rebuild with new business dates */'; put '&md5_col=put(md5(&cat_string!!''|''!!&stripcols),$hex32.) ;'; put 'if md5_lkp.check()=0 then delete;'; put 'run;'; put 'proc sql;'; put '/* get min bus from as will update (close out) all records from this point'; put '(for that PK)*/'; put 'create table work.bitemp5d_subquery as'; put 'select &pk_comma, min(&bus_from)as &bus_from, max(&bus_to) as &bus_to'; put 'from work.bitemp5b_updates'; put 'group by &pk_comma;'; put '/* index has a huge efficiency impact on upcoming nested subquery */'; put 'create index index1 on work.bitemp5d_subquery(&pk_comma,&bus_from, &bus_to);'; put '%let lastds=work.bitemp5b_updates;'; put '%end;'; put '%else %if &loadtype=TXTEMPORAL or &loadtype=UPDATE %then %do;'; put 'proc sql;'; put 'create table work.bitemp5d_subquery as'; put 'select distinct &pk_comma'; put 'from bitemp4d_secondpass;'; put '%let lastds=work.bitemp4d_secondpass;'; put '%end;'; put '%else %let lastds=work.bitemp4d_secondpass;'; put '/* create single append table (an overlapped pre-sert may be classed as'; put 'both an update AND a new record). Also create temp views that may be'; put 'used for pre-load analysis. */'; put 'data &outds_mod;'; put 'set &lastds(drop=___TMP___: &md5_col);'; put 'run;'; put 'data bitemp6_allrecs / view=bitemp6_allrecs;'; put 'set &outds_mod /* UPDATED records */'; put '&outds_add /* NEW records */;'; put 'run;'; put 'proc sort data=work.bitemp6_allrecs'; put 'out=work.bitemp6_unique'; put 'noduprec'; put 'dupout=work.xx_BADBADBAD;'; put 'by _all_;'; put 'run;'; put '/* we have all our temp tables now so exit if this is all that is needed */'; put '%if &LOADTARGET ne YES %then %return;'; put '/* also exit if an err condition exists */'; put '%if &syscc>0 %then %do;'; put '%put syscc=&syscc;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%if "&outds_audit" ne "0" %then %do;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=&sysmacroname in &_program'; put ',msg=%str(Bitemporal transform / job aborted due to SYSCC=&SYSCC status)'; put ')'; put '/* final check - abort if a lock has appeared on the target or audit table */'; put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; put '%if %mf_existds(&outds_audit) %then %do;'; put '%mp_lockfilecheck(libds=&outds_audit)'; put '%end;'; put '/**'; put '* STAGING TABLES PREPARED, ERR CONDITION TESTED FOR.. NOW TO LOAD!!'; put '*/'; put '/**'; put '* First, CLOSE OUT changed records (if not a REPLACE)'; put '* Note that SAS does not support ANSI standard for UPDATE with a join condition.'; put '* However - this can be worked around using a nested subquery..'; put '*/'; put 'data _null_;'; put 'putlog "&sysmacroname: CLOSEOUTS commencing";'; put 'run;'; put '%if %mf_getattrn(&lastds,NLOBS)=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: No closeouts needed";'; put 'run;'; put '%end;'; put '%else %if &engine_type=CAS %then %do;'; put '%mp_abort(iftrue= (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL)'; put ',mac=&sysmacroname in &_program'; put ',msg=%str(&loadtype not yet supported in CAS engine)'; put ')'; put '/* create temp table for deletions */'; put '%local delds;%let delds=%mf_getuniquename(prefix=DC);'; put 'data casuser.&delds;'; put 'set work.bitemp5d_subquery;'; put 'run;'; put '/* delete the records */'; put 'proc cas ;'; put 'table.deleteRows / table={'; put 'caslib="&base_lib",'; put 'name="&base_dsn",'; put 'where="1=1",'; put 'whereTable={caslib=''CASUSER'',name="&delds"}'; put '};'; put 'quit;'; put '/* drop temp table */'; put 'proc sql;'; put 'drop table CASUSER.&delds;'; put '%end;'; put '%else %if (&loadtype=BITEMPORAL or &loadtype=TXTEMPORAL or &loadtype=UPDATE)'; put '%then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: &loadtype operation using &engine_type engine";'; put 'run;'; put '%local flexinow;'; put 'proc sql;'; put '/* if OLEDB then create a temp table for efficiency */'; put '%local innertable;'; put '%if &engine_type=OLEDB %then %do;'; put '%let innertable=[&temp_table];'; put '%let top_table=[dbo].&base_dsn;'; put '%let flexinow=&SQLNOW;'; put 'create table &base_lib.."&temp_table"n as'; put 'select * from work.bitemp5d_subquery;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'execute('; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put '%let innertable=%mf_getuniquename(prefix=XDCTEMP);'; put '%let top_table=&baselib_schema.&base_dsn;'; put '%let flexinow=timestamp &SQLNOW;'; put '/* make empty table first - must clone & drop extra cols'; put 'as autoload is bad */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'exec (create table &innertable (like &baselib_schema.&base_dsn)) by myAlias;'; put '%if &engine_type=REDSHIFT %then %do;'; put 'exec (alter table &innertable alter sortkey none) by myAlias;'; put '%end;'; put '%let dropcols=%mf_wordsinstr1butnotstr2('; put 'str1=%upcase(%mf_getvarlist(&basecopy))'; put ',str2=%upcase(%mf_getvarlist(work.bitemp5d_subquery))'; put ');'; put '%if %length(&dropcols>0) %then %do idx_pk=1 %to %sysfunc(countw(&dropcols));'; put '%put &=dropcols;'; put '%let idx_val=%scan(&dropcols,&idx_pk);'; put 'exec(alter table &innertable drop column &idx_val;) by myAlias;;'; put '%end;'; put '/* create view to strip formats and avoid warns in log */'; put 'data work.vw_bitemp5d/view=work.vw_bitemp5d;'; put 'set work.bitemp5d_subquery;'; put 'format _all_;'; put 'run;'; put 'proc append base=&base_lib..&innertable ('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put 'data=work.vw_bitemp5d force nowarn;'; put 'run;'; put '/* open up a connection for pass through SQL */'; put '%dc_assignlib(WRITE,&base_lib,passthru=myAlias)'; put 'execute('; put '%end;'; put '%else %do;'; put '%let innertable=bitemp5d_subquery;'; put '%let top_table=&base_lib..&base_dsn;'; put '%let flexinow=&now;'; put '%end;'; put '%if &loadtype=BITEMPORAL or &loadtype=TXTEMPORAL %then %do;'; put 'update &top_table set &tech_to=&flexinow'; put '%if %length(&processed)>0 %then %do;'; put ',&processed=&flexinow'; put '%end;'; put 'where &tech_from <= &flexinow and &flexinow < &tech_to and'; put '%end;'; put '%else %if &loadtype=UPDATE %then %do;'; put '/* changed records are deleted then re-appended when doing UPDATEs */'; put 'delete from &top_table where'; put '%end;'; put '%else %do;'; put '%put %str(ERR)OR: BUSTEMPORAL NOT YET SUPPORTED;'; put '%let syscc=5;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%goto end_of_macro;'; put '%end;'; put '/* perform join inside query as per'; put 'http://stackoverflow.com/questions/24629793/update-with-a-proc-sql */'; put 'exists( select 1 from &baselib_schema.&innertable where'; put '/* loop PK join */'; put '%do idx_pk=1 %to &pk_cnt;'; put '%let idx_val=%scan(&pk,&idx_pk);'; put '&base_dsn..&idx_val=&innertable..&idx_val and'; put '%end;'; put '%if &loadtype=BITEMPORAL %then %do;'; put '&base_dsn..&bus_from >= &innertable..&bus_from'; put 'and &base_dsn..&bus_to <= &innertable..&bus_to and'; put '%end;'; put '/* close the statement */'; put '1=1);'; put '%if &engine_type=OLEDB or &engine_type=REDSHIFT or &engine_type=POSTGRES'; put '%then %do;'; put ') by myAlias;'; put 'execute (drop table &baselib_schema.&innertable) by myAlias;'; put '%end;'; put '%end;'; put 'quit;'; put 'data _null_;'; put 'putlog "&sysmacroname: Closeout complete";'; put 'run;'; put '/**'; put '* Append the new / updated records'; put '*/'; put '%if &engine_type=CAS %then %do;'; put '/* get varchar variables ready for casting */'; put '%local vcfmt vcrename vcassign vcdrop;'; put 'data _null_;'; put 'set work.bitemp_cols(where=(type=6)) end=last;'; put 'length vcrename vcassign vcdrop vcfmt $32767 rancol $32;'; put 'retain vcrename vcassign vcdrop vcfmt;'; put 'if _n_=1 then vcrename=''(rename=('';'; put 'rancol=resolve(''%mf_getuniquename()'');'; put 'vcfmt=trim(vcfmt)!!''length ''!!cats(name)!!'' varchar(*);'';'; put 'vcrename=trim(vcrename)!!'' ''!!cats(name,''='',rancol);'; put 'vcassign=cats(vcassign,name,''='',rancol,'';'');'; put 'vcdrop=cats(vcdrop,''drop ''!!rancol,'';'');'; put 'if last then do;'; put 'vcrename=cats(vcrename,''))'');'; put 'call symputx(''vcfmt'',vcfmt);'; put 'call symputx(''vcrename'',vcrename);'; put 'call symputx(''vcassign'',vcassign);'; put 'call symputx(''vcdrop'',vcdrop);'; put 'end;'; put 'run;'; put '/* prepare a temp cas table with varchars casted */'; put '%let tmp=%mf_getuniquename();'; put 'data casuser.&tmp ;'; put '&vcfmt'; put 'set work.bitemp6_unique &vcrename;'; put '&vcassign'; put '&vcdrop'; put 'run;'; put '/* load the table with varchars applied*/'; put 'data &base_lib..&base_dsn (append=yes )/sessref=dcsession ;'; put 'set casuser.&tmp;'; put 'run;'; put '/* drop temp table */'; put 'proc sql;'; put 'drop table CASUSER.&tmp;'; put '/* this code will not work as regular tables do not have varchars */'; put '/*'; put 'proc casutil;'; put 'load data=work.bitemp6_unique'; put 'outcaslib="&base_lib" casout="&base_dsn" append ;'; put 'quit;'; put '*/'; put '%end;'; put '%else %if &engine_type=REDSHIFT or &engine_type=POSTGRES %then %do;'; put 'proc append base=&base_lib..&base_dsn'; put '%if &engine_type=REDSHIFT %then %do;'; put '('; put '%do idx_pk=1 %to &redcnt;'; put '&&rednm&idx_pk = &&redval&idxpk'; put '%end;'; put ')'; put '%end;'; put 'data=bitemp6_unique force nowarn;'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc append base=&base_lib..&base_dsn data=bitemp6_unique force nowarn; run;'; put '%end;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '/* final check on syscc */'; put '%mp_abort(iftrue= (&syscc >4)'; put ',mac=&_program'; put ',msg=%str(!!Upload NOT successful!! Failed on actual update / append stage..)'; put ')'; put '%if &outds_audit ne 0 and &LOADTARGET=YES %then %do;'; put 'data work.vw_outds_orig /view=work.vw_outds_orig;'; put 'set work.bitemp0_base (drop=&md5_col);'; put 'where ___TMP___NEW_FLG=0;'; put 'drop ___TMP___NEW_FLG;'; put 'run;'; put '/* update the AUDIT table */'; put '%if %mf_existds(&outds_audit) %then %do;'; put 'options mprint;'; put '%mp_storediffs(&base_lib..&base_dsn'; put ',work.vw_outds_orig'; put ',&pk &bus_from'; put ',delds=&outds_del'; put ',modds=&outds_mod'; put ',appds=&outds_add'; put ',outds=work.mp_storediffs'; put ',processed_dttm=&now'; put ',loadref=%superq(etlsource)'; put ')'; put '/* exclude unchanged values in modified rows */'; put 'data work.mp_storediffs;'; put 'set work.mp_storediffs;'; put 'if MOVE_TYPE="M" and IS_PK=0 and IS_DIFF=0 then delete;'; put '* putlog load_ref= libref= dsn= key_hash= tgtvar_nm=;'; put 'run;'; put 'proc append base=&outds_audit data=work.mp_storediffs;'; put 'run;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&outds_audit,1,.)'; put ',ds=%scan(&outds_audit,2,.)'; put ',ref=&ETLSOURCE'; put ',ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%end;'; put '%end;'; put '%mp_abort(iftrue= (&syscc >4)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Problem in audit stage (&outds_audit))'; put ')'; put '%let user=%mf_getUser();'; put '/**'; put 'Notify as appropriate EMAILS DISABLED'; put '%sumo_alerts(ALERT_EVENT=UPDATE'; put ', ALERT_TARGET=&base_lib..&base_dsn'; put ', from_user= &user);'; put '*/'; put '/* monitor BiTemporal usage */'; put '%if &log=1 %then %do;'; put '%put syscc=&syscc;'; put '/* do not perform duration calc in pass through */'; put '%local dur;'; put 'data _null_;'; put 'now=symget(''now'');'; put 'dur=%sysfunc(datetime())-&now;'; put 'call symputx(''dur'',dur,''l'');'; put 'run;'; put 'proc sql;'; put 'insert into &dclib..mpe_dataloads'; put 'set libref=%upcase("&base_lib")'; put ',DSN=%upcase("&base_dsn")'; put ',ETLSOURCE="&ETLSOURCE"'; put ',LOADTYPE="&loadtype"'; put ',CHANGED_RECORDS=%mf_getattrn(&lastds,NLOBS)'; put ',NEW_RECORDS=%mf_getattrn(&outds_add,NLOBS)'; put ',DELETED_RECORDS=%mf_getattrn(&outds_del,NLOBS)'; put ',DURATION=&dur'; put ',MAC_VER="v&ver"'; put ',user_nm="&user"'; put ',PROCESSED_DTTM=&now;'; put 'quit;'; put '%put syscc=&syscc;'; put '%end;'; put '%end_of_macro:'; put '%mend bitemporal_dataloader;'; put '%macro dc_getlibs(outds=mm_getlibs);'; put 'proc sql;'; put 'create table &outds as'; put 'select distinct libname as LibraryRef'; put ',libname as LibraryName length=256'; put ',engine'; put ','''' as libraryid length=17'; put 'from dictionary.libnames'; put 'where libname not in (''WORK'',''SASUSER'');'; put 'insert into &syslast values ("&DC_LIBREF", "&DC_LIBNAME",'''',''V9'');'; put '%mend dc_getlibs;'; put '%macro mpe_refreshlibs(lib=0);'; put '%dc_getlibs(outds=work.mm_getLibs)'; put 'proc sort data=mm_getlibs;'; put 'by libraryref libraryname;'; put 'run;'; put 'data libs0;'; put 'set mm_getlibs;'; put 'by libraryref;'; put '%if &lib ne 0 %then %do;'; put 'where upcase(libraryref)="%upcase(&lib)";'; put '%end;'; put 'if "%mf_getplatform()"="SASMETA" then do;'; put '/* note - invalid libraries can result in exception errors. If this happens,'; put 'configure the dc_viewlib_check variable to NO in Data Controller Settings */'; put 'rc=libname(libraryref,,''meta'',cats(''library="'',libraryname,''";''));'; put 'drop rc;'; put 'if rc ne 0 then do;'; put 'putlog "NOTE: Library " libraryname " does not exist!!";'; put 'putlog (_all_) (=);'; put 'delete;'; put 'end;'; put 'end;'; put 'if not first.libraryref then delete;'; put 'run;'; put 'proc sql;'; put 'create table libs1 as'; put 'select distinct libname'; put ',engine'; put ',path'; put ',level'; put ',sysname'; put ',sysvalue'; put 'from dictionary.libnames'; put 'order by libname, level,engine,path;'; put 'data libs2;'; put 'set libs1;'; put 'length tran $1024;'; put 'if missing(sysname) then sysname=''Missing'';'; put 'select(sysname);'; put 'when(''Access Permission'') tran=''Permissions'';'; put 'when(''Owner Name'') tran=''Owner'';'; put 'when(''Schema/Owner'') tran=''schema'';'; put 'otherwise tran=sysname;'; put 'end;'; put 'run;'; put 'proc transpose data=libs2 out=libs3;'; put 'by libname level engine path;'; put 'var sysvalue;'; put 'id tran;'; put 'run;'; put 'data libs4(rename=(libname=libref));'; put 'length paths $8192 perms owners schemas $500 permissions owner schema $1024;'; put 'if _n_=1 then call missing (of _all_);'; put 'set libs3;'; put 'by libname;'; put 'if engine=''V9'' then engine=''BASE'';'; put 'if first.libname then do;'; put 'retain paths perms owners schemas;'; put 'paths=''(''!!quote(trim(path));'; put 'perms=permissions;'; put 'owners=owner;'; put 'schemas=schema;'; put 'end;'; put 'else do;'; put 'paths=trim(paths)!!'' ''!!quote(trim(path));'; put 'perms=trim(perms)!!'',''!!trim(permissions);'; put 'owners=trim(owners)!!'',''!!trim(owner);'; put 'schemas=trim(schemas)!!'' ''!!trim(schema);'; put 'end;'; put 'if last.libname then do;'; put 'paths=trim(paths)!!'')'';'; put 'schemas=cats(schemas);'; put 'output;'; put 'end;'; put 'keep libname engine paths perms owners schemas;'; put 'run;'; put 'proc sql;'; put 'create table libs5 as'; put 'select a.libref'; put ',coalescec(b.engine,a.engine) as engine length=32'; put ',b.libraryname as libname'; put ',a.paths'; put ',a.perms'; put ',a.owners'; put ',a.schemas'; put ',b.libraryid as libid'; put 'from libs4 a'; put 'left join libs0 b'; put 'on upcase(a.libref)=upcase(b.libraryref)'; put 'where libref not in (''SASWORK'',''WORK'',''SASUSER'',''CASUSER'',''TEMP'',''STPSAMP'''; put ',''MAPSGFK'');'; put '%bitemporal_dataloader(base_lib=&dc_libref'; put ',base_dsn=MPE_DATACATALOG_LIBS'; put ',append_dsn=libs5'; put ',PK=LIBREF'; put ',etlsource=&_program'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put ',dclib=&dc_libref'; put ')'; put '%mend mpe_refreshlibs;'; put '/** @cond */'; put '%macro mf_existfeature(feature'; put ')/*/STORE SOURCE*/;'; put '%let feature=%upcase(&feature);'; put '%local platform;'; put '%let platform=%mf_getplatform();'; put '%if &feature= %then %do;'; put '%put No feature was requested for detection;'; put '%end;'; put '%else %if &feature=COLCONSTRAINTS %then %do;'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=PROCLUA %then %do;'; put '/* https://blogs.sas.com/content/sasdummy/2015/08/03/using-lua-within-your-sas-programs */'; put '%if &platform=SASVIYA %then 1;'; put '%else %if "&sysver"="9.2" or "&sysver"="9.3" %then 0;'; put '%else %if "&SYSVLONG" < "9.04.01M3" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=DBMS_MEMTYPE %then %do;'; put '/* does dbms_memtype exist in dictionary.tables? */'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=EXPORTXLS %then %do;'; put '/* is it possible to PROC EXPORT an excel file? */'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 1;'; put '%else %if %sysfunc(sysprod(SAS/ACCESS Interface to PC Files)) = 1 %then 1;'; put '%else 0;'; put '%end;'; put '%else %do;'; put '-1'; put '%put &sysmacroname: &feature not found;'; put '%end;'; put '%mend mf_existfeature;'; put '/** @endcond */'; put '%macro mp_getconstraints(lib=WORK'; put ',ds='; put ',outds=mp_getconstraints'; put ',mdebug=0'; put ')/*/STORE SOURCE*/;'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '/**'; put '* Cater for environments where sashelp.vcncolu is not available'; put '*/'; put '%if %sysfunc(exist(sashelp.vcncolu,view))=0 %then %do;'; put 'proc sql;'; put 'create table &outds('; put 'libref char(8)'; put ',TABLE_NAME char(32)'; put ',constraint_type char(8) label=''Constraint Type'''; put ',constraint_name char(32) label=''Constraint Name'''; put ',column_name char(32) label=''Column'''; put ',constraint_order num'; put ');'; put '%return;'; put '%end;'; put '/**'; put '* Neither dictionary tables nor sashelp provides a constraint order column,'; put '* however they DO arrive in the correct order. So, create the col.'; put '**/'; put '%local vw;'; put '%let vw=%mf_getuniquename(prefix=mp_getconstraints_vw_);'; put 'data &vw /view=&vw;'; put 'set sashelp.vcncolu;'; put 'where table_catalog="&lib";'; put '/* use retain approach to reset the constraint order with each constraint */'; put 'length tmp $1000;'; put 'retain tmp;'; put 'drop tmp;'; put 'if tmp ne catx(''|'',table_catalog,table_name,constraint_name) then do;'; put 'constraint_order=1;'; put 'end;'; put 'else constraint_order+1;'; put 'tmp=catx(''|'',table_catalog, table_name,constraint_name);'; put 'run;'; put '/* must use SQL as proc datasets does not support length changes */'; put 'proc sql noprint;'; put 'create table &outds as'; put 'select upcase(a.TABLE_CATALOG) as libref'; put ',upcase(a.TABLE_NAME) as TABLE_NAME'; put ',a.constraint_type'; put ',a.constraint_name'; put ',b.column_name'; put ',b.constraint_order'; put 'from dictionary.TABLE_CONSTRAINTS a'; put 'left join &vw b'; put 'on upcase(a.TABLE_CATALOG)=upcase(b.TABLE_CATALOG)'; put 'and upcase(a.TABLE_NAME)=upcase(b.TABLE_NAME)'; put 'and a.constraint_name=b.constraint_name'; put '/**'; put '* We cannot apply this clause to the underlying dictionary table. See:'; put '* https://communities.sas.com/t5/SAS-Programming/Unexpected-Where-Clause-behaviour-in-dictionary-TABLE/m-p/771554#M244867'; put '* cannot use`where calculated libref="&lib"` either as it will STILL execute'; put '* all the underlying constraint queries, causing exception errors in some'; put '* cases: https://github.com/sasjs/core/issues/283'; put '*/'; put 'where a.TABLE_CATALOG="&lib"'; put '%if "&ds" ne "" %then %do;'; put 'and upcase(a.TABLE_NAME)="&ds"'; put 'and upcase(b.TABLE_NAME)="&ds"'; put '%end;'; put 'order by libref, table_name, constraint_name, constraint_order'; put ';'; put '/* tidy up */'; put '%mp_dropmembers('; put '&vw,'; put 'iftrue=(&mdebug=0)'; put ')'; put '%mend mp_getconstraints;'; put '%macro mpe_refreshtables(lib,ds=#all);'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '%local engine; %let engine=%mf_getengine(&lib);'; put '%local schema; %let schema=%mf_getschema(&lib);'; put '%put running &sysmacroname &lib(&engine &schema) for &ds;'; put 'proc sql;'; put 'create table cols as'; put 'select libname as libref'; put ',upcase(memname) as dsn'; put ',memtype'; put ',upcase(name) as name'; put ',type'; put ',length'; put ',varnum'; put ',label'; put ',format'; put ',idxusage'; put ',notnull'; put 'from dictionary.columns'; put 'where upcase(libname)="&lib"'; put '%if &ds ne #ALL %then %do;'; put 'and upcase(memname)="&ds"'; put '%end;'; put ';'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc afer &lib cols extraction)'; put ')'; put '%if &engine=SQLSVR %then %do;'; put 'proc sql;'; put 'connect using &lib;'; put 'create table work.indexes as'; put 'select * from connection to &lib('; put 'select'; put 's.name as SchemaName,'; put 't.name as memname,'; put 'tc.name as name,'; put 'ic.key_ordinal as KeyOrderNr'; put 'from'; put 'sys.schemas s'; put 'inner join sys.tables t on s.schema_id=t.schema_id'; put 'inner join sys.indexes i on t.object_id=i.object_id'; put 'inner join sys.index_columns ic on i.object_id=ic.object_id'; put 'and i.index_id=ic.index_id'; put 'inner join sys.columns tc on ic.object_id=tc.object_id'; put 'and ic.column_id=tc.column_id'; put 'where i.is_primary_key=1'; put 'and s.name=%str(%'')&schema%str(%'')'; put 'order by t.name, ic.key_ordinal ;'; put ');disconnect from &lib;'; put 'create table finalcols as'; put 'select a.*'; put ',case when b.name is not null then 1 else 0 end as pk_ind'; put 'from work.cols a'; put 'left join work.indexes b'; put 'on a.dsn=b.memname'; put 'and upcase(a.name)=upcase(b.name)'; put 'order by libref,dsn;'; put '%end;'; put '%else %do;'; put '%local dsn;'; put '%if &ds = #ALL %then %let dsn=;'; put '%mp_getconstraints(lib=&lib.,ds=&dsn,outds=work.constraints)'; put '/* extract cols that are clearly primary keys */'; put 'proc sql;'; put 'create table work.pk4sure as'; put 'select libref'; put ',table_name'; put ',constraint_name'; put ',constraint_order'; put ',column_name as name'; put 'from work.constraints'; put 'where constraint_type=''PRIMARY'''; put 'order by 1,2,3,4;'; put '/* extract unique constraints where every col is also NOT NULL */'; put 'proc sql;'; put 'create table work.sum as'; put 'select a.libref'; put ',a.table_name'; put ',a.constraint_name'; put ',count(a.column_name) as unq_cnt'; put ',count(b.column_name) as nul_cnt'; put 'from work.constraints(where=(constraint_type =''UNIQUE'')) a'; put 'left join work.constraints(where=(constraint_type =''NOT NULL'')) b'; put 'on a.libref=b.libref'; put 'and a.table_name=b.table_name'; put 'and a.column_name=b.column_name'; put 'group by 1,2,3'; put 'having unq_cnt=nul_cnt;'; put '/* extract cols from the relevant unique constraints */'; put 'create table work.pkdefault as'; put 'select a.libref'; put ',a.table_name'; put ',a.constraint_name'; put ',b.constraint_order'; put ',b.column_name as name'; put 'from work.sum a'; put 'left join work.constraints(where=(constraint_type =''UNIQUE'')) b'; put 'on a.libref=b.libref'; put 'and a.table_name=b.table_name'; put 'and a.constraint_name=b.constraint_name'; put 'order by 1,2,3,4;'; put '/* extract cols from the relevant unique INDEXES */'; put 'create table work.pkfromindex as'; put 'select libname as libref'; put ',memname as table_name'; put ',indxname as constraint_name'; put ',indxpos as constraint_order'; put ',name'; put 'from dictionary.indexes'; put 'where nomiss=''yes'' and unique=''yes'' and upcase(libname)="&lib"'; put '%if &ds ne #ALL %then %do;'; put 'and upcase(memname)="&ds"'; put '%end;'; put 'order by 1,2,3,4;'; put '/* create one table */'; put 'data work.finalpks;'; put 'set pkdefault pk4sure pkfromindex;'; put 'pk_ind=1;'; put '/* if there are multiple unique constraints, take the first */'; put 'by libref table_name constraint_name;'; put 'retain keepme;'; put 'if first.table_name then keepme=1;'; put 'if first.constraint_name and not first.table_name then keepme=0;'; put 'if keepme=1;'; put 'run;'; put '/* join back to starting table */'; put 'proc sql;'; put 'create table finalcols as'; put 'select a.*'; put ',b.constraint_order'; put ',case when b.pk_ind=1 then 1 else 0 end as pk_ind'; put 'from work.cols a'; put 'left join work.finalpks b'; put 'on a.libref=b.libref'; put 'and a.dsn=b.table_name'; put 'and upcase(a.name)=upcase(b.name)'; put 'order by libref,dsn,constraint_order;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc afer &lib indexes extraction)'; put ')'; put '/* load columns */'; put '%bitemporal_dataloader(base_lib=&mpelib'; put ',base_dsn=mpe_datacatalog_vars'; put ',append_dsn=finalcols'; put ',PK=LIBREF DSN NAME'; put ',etlsource=&sysmacroname'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put '%if &ds ne #ALL %then %do;'; put ',close_vars=LIBREF DSN'; put '%end;'; put ',dclib=&mpelib'; put ')'; put '/* prepare tables */'; put 'proc sql;'; put 'create table work.tabs as select'; put 'libname as libref'; put ',upcase(memname) as dsn'; put ',memtype'; put '%if %mf_existfeature(DBMS_MEMTYPE)=1 %then %do;'; put ',dbms_memtype'; put '%end;'; put '%else %do;'; put ',''n/a'' as dbms_memtype format=$32.'; put '%end;'; put ',typemem'; put ',memlabel'; put ',nvar'; put ',compress'; put 'from dictionary.tables'; put 'where upcase(libname)="&lib"'; put '%if &ds ne #ALL %then %do;'; put 'and upcase(memname)="&ds"'; put '%end;'; put ';'; put 'data tabs2;'; put 'set finalcols;'; put 'length pk_fields $512;'; put 'retain pk_fields;'; put 'by libref dsn;'; put 'if first.dsn then pk_fields='''';'; put 'if pk_ind=1 then pk_fields=catx('' '',pk_fields,name);'; put 'if last.dsn then output;'; put 'run;'; put 'proc sql;'; put 'create table work.finaltabs as'; put 'select a.libref'; put ',a.dsn'; put ',a.memtype'; put ',a.dbms_memtype'; put ',a.typemem'; put ',a.memlabel'; put ',a.nvar'; put ',a.compress'; put ',b.pk_fields'; put 'from work.tabs a'; put 'left join work.tabs2 b'; put 'on a.libref=b.libref'; put 'and a.dsn=b.dsn;'; put '%bitemporal_dataloader(base_lib=&mpelib'; put ',base_dsn=mpe_datacatalog_tabs'; put ',append_dsn=finaltabs'; put ',PK=LIBREF DSN'; put ',etlsource=&sysmacroname'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put ',dclib=&mpelib'; put '%if &ds ne #ALL %then %do;'; put ',close_vars=LIBREF'; put '%end;'; put ')'; put '/* prepare table frequently changing attributes */'; put 'proc sql;'; put '%if &engine=SQLSVR %then %do;'; put 'connect using &lib;'; put 'create table work.attrs as select * from connection to &lib('; put 'SELECT SCHEMA_NAME(schema_id) as ''schema'', name, create_date, modify_date'; put 'FROM sys.tables ;'; put ');'; put 'create table work.nobs as select * from connection to &lib('; put 'SELECT SCHEMA_NAME(A.schema_id) AS ''schema'''; put ',A.Name, AVG(B.rows) AS ''RowCount'''; put 'FROM sys.objects A'; put 'INNER JOIN sys.partitions B ON A.object_id = B.object_id'; put 'WHERE A.type = ''U'''; put 'GROUP BY A.schema_id, A.Name'; put ');'; put 'disconnect from &lib;'; put 'create table statustabs as select'; put 'a.libref'; put ',a.dsn'; put ',b.create_date as crdate'; put ',b.modify_date as modate'; put ',. as filesize'; put ',c.RowCount as nobs'; put 'from work.tabs a'; put 'left join work.attrs(where=(schema="&schema")) b'; put 'on upcase(a.dsn)=upcase(b.name)'; put 'left join work.nobs(where=(schema="&schema")) c'; put 'on upcase(a.dsn)=upcase(c.name);'; put '%end;'; put '%else %do;'; put 'create table statustabs as select'; put 'libname as libref'; put ',upcase(memname) as dsn'; put ',crdate'; put ',modate'; put ',filesize'; put ',nobs'; put 'from dictionary.tables'; put 'where upcase(libname)="&lib"'; put '%if &ds ne #ALL %then %do;'; put 'and upcase(memname)="&ds"'; put '%end;'; put ';'; put '%end;'; put '%bitemporal_dataloader(base_lib=&mpelib'; put ',base_dsn=mpe_datastatus_tabs'; put ',append_dsn=statustabs'; put ',PK=LIBREF DSN'; put ',etlsource=&sysmacroname'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put ',dclib=&mpelib'; put '%if &ds ne #ALL %then %do;'; put ',close_vars=LIBREF'; put '%end;'; put ')'; put '%if &ds = #ALL %then %do;'; put 'proc sql;'; put 'create table work.sumcat as'; put 'select libname as libref,'; put 'count(distinct memname) as catalog_cnt'; put 'from dictionary.catalogs'; put 'where upcase(libname)="&lib"'; put 'group by 1;'; put 'create table work.sumdsn as select'; put 'libref'; put ',sum(filesize) as libsize'; put ',count(*) as table_cnt'; put 'from statustabs'; put 'group by 1;'; put 'create table work.libs as'; put 'select libref from work.sumcat'; put 'union'; put 'select libref from work.sumdsn;'; put 'create table work.statuslibs as'; put 'select a.libref,'; put 'b.libsize,'; put 'b.table_cnt,'; put 'c.catalog_cnt'; put 'from work.libs a'; put 'left join work.sumdsn b'; put 'on a.libref=b.libref'; put 'left join work.sumcat c'; put 'on a.libref=c.libref;'; put '%bitemporal_dataloader(base_lib=&mpelib'; put ',base_dsn=mpe_datastatus_libs'; put ',append_dsn=statuslibs'; put ',PK=LIBREF'; put ',etlsource=&sysmacroname'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put ',dclib=&mpelib'; put ')'; put '%end;'; put '%mend mpe_refreshtables;'; put '%macro mpe_refreshcatalogs(lib,cat=#all);'; put '%let lib=%upcase(&lib);'; put '%let cat=%upcase(&cat);'; put '%put running &sysmacroname &lib for &cat;'; put 'proc sql;'; put 'create table work.catdata as'; put 'select libname as libref,'; put 'memname,'; put 'objname,'; put 'objtype,'; put 'objdesc,'; put 'created,'; put 'modified,'; put 'alias,'; put 'level'; put 'from dictionary.catalogs'; put 'where upcase(libname)="&lib"'; put '%if &cat ne #ALL %then %do;'; put 'and upcase(memname)="&cat"'; put '%end;'; put ';'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc afer &lib objects extraction)'; put ')'; put '/* load mpe_datacatalog_CATS */'; put 'proc sql;'; put 'create table datacats as select distinct libref,memname from catdata;'; put '%bitemporal_dataloader(base_lib=&mpelib'; put ',base_dsn=mpe_datacatalog_CATS'; put ',append_dsn=datacats'; put ',PK=LIBREF MEMNAME'; put ',etlsource=&sysmacroname'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put '%if &cat = #ALL %then %do;'; put ',close_vars=LIBREF'; put '%end;'; put ',dclib=&mpelib'; put ')'; put '/* load mpe_datacatalog_objsS */'; put 'proc sql;'; put 'create table dataobjs as'; put 'select distinct libref,'; put 'memname,'; put 'objname,'; put 'objtype,'; put 'objdesc,'; put 'alias'; put 'from catdata;'; put 'quit;'; put '%bitemporal_dataloader(base_lib=&mpelib'; put ',base_dsn=mpe_datacatalog_OBJS'; put ',append_dsn=dataobjs'; put ',PK=LIBREF MEMNAME OBJNAME OBJTYPE'; put ',etlsource=&sysmacroname'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put '%if &cat = #ALL %then %do;'; put ',close_vars=LIBREF MEMNAME'; put '%end;'; put ',dclib=&mpelib'; put ')'; put '%put load mpe_datastatus_OBJS;'; put 'proc sql;'; put 'create table statusobjs as'; put 'select distinct libref,'; put 'memname,'; put 'objname,'; put 'objtype,'; put 'created,'; put 'modified,'; put 'level'; put 'from catdata;'; put '%bitemporal_dataloader(base_lib=&mpelib'; put ',base_dsn=mpe_datastatus_OBJS'; put ',append_dsn=statusobjs'; put ',PK=LIBREF MEMNAME OBJNAME OBJTYPE'; put ',etlsource=&sysmacroname'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put '%if &cat = #ALL %then %do;'; put ',close_vars=LIBREF MEMNAME'; put '%end;'; put ',dclib=&mpelib'; put ')'; put '%put load mpe_datastatus_cats;'; put 'proc sql;'; put 'create table statuscats as'; put 'select libref,'; put 'memname,'; put 'count(*) as nobjs,'; put 'min(created) as created,'; put 'max(modified) as modified'; put 'from catdata'; put 'group by 1,2;'; put '%bitemporal_dataloader(base_lib=&mpelib'; put ',base_dsn=mpe_datastatus_cats'; put ',append_dsn=statuscats'; put ',PK=LIBREF MEMNAME'; put ',etlsource=&sysmacroname'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put '%if &cat = #ALL %then %do;'; put ',close_vars=LIBREF'; put '%end;'; put ',dclib=&mpelib'; put ')'; put '%mend mpe_refreshcatalogs;'; put '%macro dc_refreshcatalog(libref);'; put '%if #&libref# ne ## %then %do;'; put '%put &sysmacroname: assigning specific libref, &libref;'; put '%dc_assignlib(WRITE,&libref) /* write just in order to assign direct lib */'; put '%mpe_refreshlibs(lib=&libref)'; put '%mpe_refreshtables(&libref)'; put '%mpe_refreshcatalogs(&libref)'; put '%end;'; put '%else %do;'; put '%mpe_refreshlibs()'; put 'filename executor catalog ''work.code.code.source'';'; put 'data libraries;'; put 'set &mpelib..mpe_datacatalog_libs;'; put 'where &dc_dttmtfmt. le TX_TO;'; put 'file executor;'; put 'str=cats(''%mpe_refreshtables('',libref,'')'');'; put 'put str;'; put 'str=cats(''%mpe_refreshcatalogs('',libref,'')'');'; put 'put str;'; put 'putlog str;'; put 'run;'; put '%inc executor;'; put '%end;'; put '%mend dc_refreshcatalog;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file refreshlibinfo.sas'; put '@brief Refresh the Data Catalog for a particular library'; put '@details When showing library info in the VIEW menu, the data is taken from'; put 'the Data Catalog tables. These may be empty or outdated, and so this service'; put 'allows end users to run a refresh of the data.'; put '

Service Inputs

'; put '
lib2refresh
'; put 'Should contain the libref to be refreshed.'; put '|libref:$8.|'; put '|---|'; put '|SOMELIB|'; put '

Service Outputs

'; put '
libinfo
'; put '|engine $|libname $|paths $|perms $|owners $|schemas $ |libid $|libsize $|table_cnt |'; put '|---|---|---|---|---|---|---|---|---|'; put '|V9|SOMELIB|"some/path"|rwxrwxr-x|sassrv|` `|` `|636MB|33|'; put '

SAS Macros

'; put '@li dc_assignlib.sas'; put '@li dc_refreshcatalog.sas'; put '@li mp_abort.sas'; put '@version 9.3'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%webout(FETCH)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',msg=%str(syscc=&syscc Problem on startup)'; put ')'; put '%let libref=;'; put 'data _null_;'; put 'set work.lib2refresh;'; put 'call symputx(''libref'',libref);'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',msg=%str(syscc=&syscc Problem with inputs - was lib2refresh object sent?)'; put ')'; put '%dc_assignlib(WRITE,&libref)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',msg=%str(syscc=&syscc after lib assignment)'; put ')'; put '%dc_refreshcatalog(&libref)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',msg=%str(syscc=&syscc Problem when running the catalog refresh)'; put ')'; put '/* get libinfo */'; put 'proc sql;'; put 'create table work.libinfo as'; put 'select a.engine,'; put 'a.libname,'; put 'a.paths,'; put 'a.perms,'; put 'a.owners,'; put 'a.schemas,'; put 'a.libid,'; put 'b.libsize,'; put 'b.table_cnt,'; put 'b.catalog_cnt'; put 'from &mpelib..mpe_datacatalog_libs(where=(&dc_dttmtfmt. lt tx_to)) a'; put 'inner join &mpelib..mpe_datastatus_libs(where=(&dc_dttmtfmt. lt tx_to)) b'; put 'on a.libref=b.libref'; put 'where a.libref="&libref";'; put '%webout(OPEN)'; put '%webout(OBJ,libinfo)'; put '%webout(CLOSE)'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=registeruser; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file registeruser.sas'; put '@brief Registers a new user in Data Controller'; put '@details New users are logged after accepting EULA terms.'; put '

SAS Macros

'; put '@li mf_getuser.sas'; put '@li mp_abort.sas'; put '@li mpeinit.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%let userid=%mf_getuser();'; put '/* confirm the user is not registered */'; put '%let isRegistered=0;'; put 'proc sql noprint;'; put 'select count(*) into: isregistered'; put 'from &mpelib..mpe_users'; put 'where user_id="&userid";'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem accessing &mpelib..mpe_users table)'; put ')'; put '%mp_abort(iftrue= (&isregistered > 0)'; put ',mac=&_program..sas'; put ',msg=%str(User &userid is already registered on &mpelib..mpe_users!)'; put ')'; put 'data work.append;'; put 'if 0 then set &mpelib..mpe_users;'; put 'user_id=symget(''userid'');'; put 'registered_dt=today();'; put 'last_seen_dt=today();'; put 'run;'; put 'proc append base=&mpelib..mpe_users data=work.append;'; put '%let isRegistered=0;'; put 'proc sql noprint;'; put 'select count(*) into: isregistered'; put 'from &mpelib..mpe_users'; put 'where user_id="&userid";'; put '%mp_abort(iftrue= (&syscc ne 0 or &isregistered ne 1)'; put ',mac=&_program..sas'; put ',msg=%str(Problem appending to &mpelib..mpe_users table)'; put ')'; put 'data work.return;'; put 'msg=''SUCCESS'';'; put 'run;'; put '%webout(OPEN)'; put '%webout(OBJ,return)'; put '%webout(CLOSE)'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=startupservice; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mc,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file startupservice.sas'; put '@brief List the libraries and tables the mp-editor user can access'; put '@details If user is in a control group (&mpeadmins, configured in mpeinit.sas)'; put 'then they have access to all libraries / tables. Otherwise a join is made'; put 'to the &mpelib..mpe_security table.'; put '

SAS Macros

'; put '@li mf_getuser.sas'; put '@li mpe_getgroups.sas'; put '@li mp_abort.sas'; put '@li mpeinit.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Issue on startup in startupService)'; put ')'; put '%let userid=%mf_getuser();'; put '%put userid is &userid;'; put '%mpe_getgroups(user=&userid,outds=groups)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Issue with Groups syscc=&syscc for user &userid)'; put ')'; put '/* check if user is an admin */'; put '%let admin_check=0;'; put 'proc sql noprint;'; put 'select count(*) into: admin_check'; put 'from groups'; put 'where groupname="&mpeadmins";'; put '/* check if user is registered or not */'; put '%let isRegistered=0;'; put 'select count(*) into: isregistered'; put 'from &mpelib..mpe_users'; put 'where user_id="&userid";'; put '/* get number of registered users */'; put '%let registerCount=0;'; put 'select count(*) into: registercount'; put 'from &mpelib..mpe_users'; put 'where last_seen_dt>%sysfunc(today())-365;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem accessing &mpelib..mpe_users table)'; put ')'; put '%global dc_restrict_editrecord;'; put 'data work.globvars;'; put 'dclib="&mpelib";'; put 'sas9lineage_enabled=1;'; put 'isadmin=&admin_check;'; put 'isregistered=&isregistered;'; put 'registercount=®isterCount;'; put 'dc_admin_group="&mpeadmins";'; put '/* fetched from mpe_config in dc_getsettings */'; put 'licence_key="&dc_licence_key";'; put 'activation_key="&dc_activation_key";'; put 'dc_restrict_editrecord="&dc_restrict_editrecord";'; put 'run;'; put '%macro mstp_mpeditorstartup();'; put 'data _null_;'; put 'putlog "entering &sysmacroname";'; put 'run;'; put 'proc sql noprint;'; put '/* update last seen, if seen */'; put '%if &isregistered>0 %then %do;'; put 'update &mpelib..mpe_users'; put 'set last_seen_dt=%sysfunc(today())'; put 'where user_id="&userid";'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem updating &mpelib..mpe_users table)'; put ')'; put '%local all_cnt;'; put 'select count(*) into: all_cnt'; put 'from &mpelib..mpe_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and ACCESS_LEVEL in (''EDIT'')'; put 'and libref=''*ALL*'''; put 'and SAS_GROUP in (select groupname from groups);'; put '%if &admin_check >0 or &all_cnt>0 %then %do;'; put 'create table sasDatasets as'; put 'select distinct libref, dsn'; put 'from &mpelib..mpe_tables'; put 'where &dc_dttmtfmt. lt tx_to'; put 'order by 1;'; put '%end;'; put '%else %do;'; put 'create table sasDatasets as'; put 'select distinct a.libref,a.dsn'; put 'from &mpelib..mpe_tables a'; put 'left join &mpelib..mpe_security b'; put 'on a.libref=b.libref'; put 'and a.dsn=b.dsn'; put 'where &dc_dttmtfmt. lt a.tx_to'; put 'and &dc_dttmtfmt. lt b.tx_to'; put 'and b.ACCESS_LEVEL in (''EDIT'')'; put 'and b.SAS_GROUP in (select groupname from groups)'; put 'order by 1;'; put '%end;'; put '%mend mstp_mpeditorstartup;'; put '%mstp_mpeditorstartup()'; put 'create table saslibs as'; put 'select distinct libref'; put 'from &syslast;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(issue with security validation)'; put ')'; put 'proc sql;'; put 'create table work.xlmaps as'; put 'select distinct a.XLMAP_ID'; put ',b.XLMAP_DESCRIPTION'; put ',coalescec(b.XLMAP_TARGETLIBDS,"&mpelib..MPE_XLMAP_DATA")'; put 'as XLMAP_TARGETLIBDS'; put 'from &mpelib..MPE_XLMAP_RULES a'; put 'left join &mpelib..MPE_XLMAP_INFO(where=(&dc_dttmtfmt. lt tx_to)) b'; put 'on a.XLMAP_ID=b.XLMAP_ID'; put 'where &dc_dttmtfmt. lt a.tx_to;'; put '/* we don''t want the XLMAP target datasets to be directly editable */'; put 'delete from sasdatasets'; put 'where cats(libref,''.'',dsn) in (select XLMAP_TARGETLIBDS from xlmaps);'; put '%webout(OPEN)'; put '%webout(OBJ,sasDatasets)'; put '%webout(OBJ,saslibs)'; put '%webout(OBJ,globvars)'; put '%webout(ARR,xlmaps)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=tokenauth; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mc,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '%macro mv_tokenauth(inds=mv_registerclient'; put ',outds=mv_tokenauth'; put ',client_id=someclient'; put ',client_secret=somesecret'; put ',grant_type=authorization_code'; put ',code='; put ',user='; put ',pass='; put ',access_token_var=ACCESS_TOKEN'; put ',refresh_token_var=REFRESH_TOKEN'; put ',base_uri=#NOTSET#'; put ');'; put '%global &access_token_var &refresh_token_var;'; put '%local fref1 fref2 libref;'; put '/* test the validity of inputs */'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password)'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put '%if %mf_existds(&inds) %then %do;'; put 'data _null_;'; put 'set &inds;'; put 'call symputx(''client_id'',client_id,''l'');'; put 'call symputx(''client_secret'',client_secret,''l'');'; put 'if not missing(auth_code) then call symputx(''code'',auth_code,''l'');'; put 'run;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type=authorization_code and %str(&code)=%str())'; put ',mac=&sysmacroname'; put ',msg=%str(Authorization code required)'; put ')'; put '%mp_abort(iftrue=('; put '&grant_type=password and (%str(&user)=%str() or %str(&pass)=%str()))'; put ',mac=&sysmacroname'; put ',msg=%str(username / password required)'; put ')'; put '/* prepare appropriate grant type */'; put '%let fref1=%mf_getuniquefileref();'; put 'data _null_;'; put 'file &fref1;'; put 'if "&grant_type"=''authorization_code'' then string=cats('; put '''grant_type=authorization_code&code='',symget(''code''));'; put 'else string=cats(''grant_type=password&username='',symget(''user'')'; put ',''&password='',symget(pass));'; put 'call symputx(''grantstring'',cats("''",string,"''"));'; put 'run;'; put '/*data _null_;infile &fref1;input;put _infile_;run;*/'; put '/**'; put '* Request access token'; put '*/'; put '%if &base_uri=#NOTSET# %then %let base_uri=%mf_getplatform(VIYARESTAPI);'; put '%let fref2=%mf_getuniquefileref();'; put 'proc http method=''POST'' in=&grantstring out=&fref2'; put 'url="&base_uri/SASLogon/oauth/token"'; put 'WEBUSERNAME="&client_id"'; put 'WEBPASSWORD="&client_secret"'; put 'AUTH_BASIC;'; put 'headers "Accept"="application/json"'; put '"Content-Type"="application/x-www-form-urlencoded";'; put 'run;'; put '/*data _null_;infile &fref2;input;put _infile_;run;*/'; put '/**'; put '* Extract access / refresh tokens'; put '*/'; put '%let libref=%mf_getuniquelibref();'; put 'libname &libref JSON fileref=&fref2;'; put '/* extract the tokens */'; put 'data &outds;'; put 'set &libref..root;'; put 'call symputx("&access_token_var",access_token);'; put 'call symputx("&refresh_token_var",refresh_token);'; put 'run;'; put 'libname &libref clear;'; put 'filename &fref1 clear;'; put 'filename &fref2 clear;'; put '%mend mv_tokenauth;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file tokenauth.sas'; put '@brief Get initial tokens using an auth code - DEPRECATED'; put '

SAS Macros

'; put '@li mv_tokenauth.sas'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%webout(FETCH)'; put 'data _null_;'; put 'set work.fromjs;'; put 'call symputx(''viyasettings'',viyasettings);'; put 'call symputx(''client_id'',client_id);'; put 'call symputx(''auth_code'',auth_code);'; put 'run;'; put 'data authme;'; put '/* get client info from special location */'; put 'infile "&viyasettings" dsd;'; put 'input client_secret:$100.;'; put 'client_id="&client_id";'; put 'auth_code="&auth_code";'; put 'run;'; put '/* get tokens */'; put '%mv_tokenauth(inds=authme, outds=fromSAS(keep=access_token refresh_token))'; put '/* send back to frontend */'; put '%webout(OPEN)'; put '%webout(OBJ,fromSAS)'; put '%webout(CLOSE)'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=tokenrefresh; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mc,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '%macro mv_tokenrefresh(inds=mv_registerclient'; put ',outds=mv_tokenrefresh'; put ',client_id=someclient'; put ',client_secret=somesecret'; put ',grant_type=authorization_code'; put ',user='; put ',pass='; put ',access_token_var=ACCESS_TOKEN'; put ',refresh_token_var=REFRESH_TOKEN'; put ');'; put '%global &access_token_var &refresh_token_var;'; put 'options noquotelenmax;'; put '%local fref1 libref;'; put '/* test the validity of inputs */'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password)'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put '%mp_abort('; put 'iftrue=(&grant_type=password and (%str(&user)=%str() or %str(&pass)=%str()))'; put ',mac=&sysmacroname'; put ',msg=%str(username / password required)'; put ')'; put '%if %mf_existds(&inds) %then %do;'; put 'data _null_;'; put 'set &inds;'; put 'call symputx(''client_id'',client_id,''l'');'; put 'call symputx(''client_secret'',client_secret,''l'');'; put 'call symputx("&refresh_token_var",&refresh_token_var,''l'');'; put 'run;'; put '%end;'; put '%mp_abort(iftrue=(%str(&client_id)=%str() or %str(&client_secret)=%str())'; put ',mac=&sysmacroname'; put ',msg=%str(client / secret must both be provided)'; put ')'; put '/**'; put '* Request access token'; put '*/'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '%let fref1=%mf_getuniquefileref();'; put 'proc http method=''POST'''; put 'in="grant_type=refresh_token%nrstr(&)refresh_token=&&&refresh_token_var"'; put 'out=&fref1'; put 'url="&base_uri/SASLogon/oauth/token"'; put 'WEBUSERNAME="&client_id"'; put 'WEBPASSWORD="&client_secret"'; put 'AUTH_BASIC;'; put 'headers "Accept"="application/json"'; put '"Content-Type"="application/x-www-form-urlencoded";'; put 'run;'; put '/*data _null_;infile &fref1;input;put _infile_;run;*/'; put '/**'; put '* Extract access / refresh tokens'; put '*/'; put '%let libref=%mf_getuniquelibref();'; put 'libname &libref JSON fileref=&fref1;'; put '/* extract the token */'; put 'data &outds;'; put 'set &libref..root;'; put 'call symputx("&access_token_var",access_token);'; put 'call symputx("&refresh_token_var",refresh_token);'; put 'run;'; put 'libname &libref clear;'; put 'filename &fref1 clear;'; put '%mend mv_tokenrefresh;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file tokenauth.sas'; put '@brief Get initial tokens using an auth code - DEPRECATED'; put '

SAS Macros

'; put '@li mpeinit.sas'; put '@li mv_tokenrefresh.sas'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%webout(FETCH)'; put 'data _null_;'; put 'set work.fromjs;'; put 'call symputx(''viyasettings'',viyasettings);'; put 'call symputx(''client_id'',client_id);'; put 'call symputx(''refresh_token'',refresh_token);'; put 'run;'; put 'data authme;'; put '/* get client info from special location */'; put 'infile "&viyasettings" dsd;'; put 'input client_secret:$100.;'; put 'client_id="&client_id";'; put 'refresh_token="&refresh_token";'; put 'run;'; put '/* get tokens */'; put '%mv_tokenrefresh(inds=authme, outds=fromSAS(keep=refresh_token access_token))'; put '/* send back to frontend */'; put '%webout(OPEN)'; put '%webout(OBJ,fromSAS)'; put '%webout(CLOSE)'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=validatefilter; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro removecolsfromwork(col);'; put '/* only an issue if debug mode enabled */'; put '%global _debug;'; put '%if &_debug ge 131 %then %do;'; put '%let col=%upcase(&col);'; put '%local memlist;'; put 'proc sql noprint;'; put 'select distinct memname into: memlist'; put 'separated by '' '''; put 'from dictionary.columns'; put 'where libname=''WORK'' and upcase(name)="&col";'; put '%if %mf_isblank(&memlist) %then %return;'; put '%mp_dropmembers(list=&memlist)'; put '%end;'; put '%mend removecolsfromwork;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_getvalue(libds,variable,filter=1'; put ')/*/STORE SOURCE*/;'; put '%if %mf_getattrn(&libds,NLOBS)>0 %then %do;'; put '%local dsid rc &variable;'; put '%let dsid=%sysfunc(open(&libds(where=(&filter))));'; put '%syscall set(dsid);'; put '%let rc = %sysfunc(fetch(&dsid));'; put '%let rc = %sysfunc(close(&dsid));'; put '%trim(&&&variable)'; put '%end;'; put '%mend mf_getvalue;'; put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; put 'proc sql;'; put 'create table &libds('; put 'TYPE char(1) label='; put '''Format Type: either N (num fmt), C (char fmt), I (num infmt) or J (char infmt)'''; put ',FMTNAME char(32) label=''Format name'''; put ',FMTROW num label='; put '''CALCULATED Position of record by FMTNAME (reqd for multilabel formats)'''; put ',START char(32767) label=''Starting value for format'''; put '/*'; put 'Keep lengths of START and END the same to avoid this err:'; put '"Start is greater than end: -<."'; put 'Similar usage note: https://support.sas.com/kb/69/330.html'; put '*/'; put ',END char(32767) label=''Ending value for format'''; put ',LABEL char(32767) label=''Format value label'''; put ',MIN num length=3 label=''Minimum length'''; put ',MAX num length=3 label=''Maximum length'''; put ',DEFAULT num length=3 label=''Default length'''; put ',LENGTH num length=3 label=''Format length'''; put ',FUZZ num label=''Fuzz value'''; put ',PREFIX char(2) label=''Prefix characters'''; put ',MULT num label=''Multiplier'''; put ',FILL char(1) label=''Fill character'''; put ',NOEDIT num length=3 label=''Is picture string noedit?'''; put ',SEXCL char(1) label=''Start exclusion'''; put ',EEXCL char(1) label=''End exclusion'''; put ',HLO char(13) label='; put '''More info: https://core.sasjs.io/mddl__sas__cntlout_8sas_source.html'''; put ',DECSEP char(1) label=''Decimal separator'''; put ',DIG3SEP char(1) label=''Three-digit separator'''; put ',DATATYPE char(8) label=''Date/time/datetime?'''; put ',LANGUAGE char(8) label=''Language for date strings'''; put ');'; put '%local lib;'; put '%let libds=%upcase(&libds);'; put '%if %index(&libds,.)=0 %then %let lib=WORK;'; put '%else %let lib=%scan(&libds,1,.);'; put 'proc datasets lib=&lib noprint;'; put 'modify %scan(&libds,-1,.);'; put 'index create'; put 'pk_cntlout=(type fmtname fmtrow)'; put '/nomiss unique;'; put 'quit;'; put '%mend mddl_sas_cntlout;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_islibds(libds'; put ')/*/STORE SOURCE*/;'; put '%local regex;'; put '%let regex=%sysfunc(prxparse(%str(/^[_a-z]\w{0,7}\.[_a-z]\w{0,31}$/i)));'; put '%sysfunc(prxmatch(®ex,&libds))'; put '%mend mf_islibds;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_getvartype(libds /* two level name */'; put ', var /* variable name from which to return the type */'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vtype rc;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid. > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable type (C/N) */'; put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let vtype = %str( );'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable type */'; put '&vtype'; put '%mend mf_getvartype;'; put '%macro mp_filtergenerate(inds,outref=filter);'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc - on macro entry)'; put ')'; put 'filename &outref temp;'; put '%if %mf_nobs(&inds)=0 %then %do;'; put '/* ensure we have a default filter */'; put 'data _null_;'; put 'file &outref;'; put 'put ''1=1'';'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc sort data=&inds;'; put 'by SUBGROUP_ID;'; put 'run;'; put 'data _null_;'; put 'file &outref lrecl=32800;'; put 'set &inds end=last;'; put 'by SUBGROUP_ID;'; put 'if _n_=1 then put ''(('';'; put 'else if first.SUBGROUP_ID then put +1 GROUP_LOGIC ''('';'; put 'else put +2 SUBGROUP_LOGIC;'; put 'put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;'; put 'if last.SUBGROUP_ID then put '')''@;'; put 'if last then put '')'';'; put 'run;'; put '%end;'; put '%mend mp_filtergenerate;'; put '%macro mp_filtervalidate(inref,targetds,abort=YES,outds=work.mp_filtervalidate);'; put '%mp_abort(iftrue= (&syscc ne 0 or &syserr ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc / syserr=&syserr - on macro entry)'; put ')'; put '%local fref1;'; put '%let fref1=%mf_getuniquefileref();'; put 'data _null_;'; put 'file &fref1;'; put 'infile &inref end=eof;'; put 'if _n_=1 then do;'; put 'put "proc sql;";'; put 'put "validate select * from &targetds";'; put 'put "where " ;'; put 'end;'; put 'input;'; put 'put _infile_;'; put 'putlog _infile_;'; put 'if eof then put ";quit;";'; put 'run;'; put '%inc &fref1;'; put 'data &outds;'; put 'if &sqlrc or &syscc or &syserr then do;'; put 'REASON_CD=''VALIDATION_ERR''!!''OR: ''!!'; put 'coalescec(symget(''SYSERRORTEXT''),symget(''SYSWARNINGTEXT''));'; put 'output;'; put 'end;'; put 'else stop;'; put 'run;'; put 'filename &fref1 clear;'; put '%if %mf_nobs(&outds)>0 %then %do;'; put '%if &abort=YES %then %do;'; put 'data _null_;'; put 'set &outds;'; put 'call symputx(''REASON_CD'',reason_cd,''l'');'; put 'stop;'; put 'run;'; put '%mp_abort('; put 'mac=&sysmacroname,'; put 'msg=%str(Filter validation issues.)'; put ')'; put '%end;'; put '%let syscc=1008;'; put '%end;'; put '%mend mp_filtervalidate;'; put '%macro mp_filtercheck(inds,targetds=,outds=work.badrecords,abort=YES);'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc - on macro entry)'; put ')'; put '/* Validate input column */'; put '%local vtype;'; put '%let vtype=%mf_getvartype(&inds,RAW_VALUE);'; put '%mp_abort(iftrue=(&abort=YES and &vtype ne C),'; put 'mac=&sysmacroname,'; put 'msg=%str(%str(ERR)OR: RAW_VALUE must be character)'; put ')'; put '%if &vtype ne C %then %do;'; put '%put &sysmacroname: RAW_VALUE must be character;'; put '%let syscc=42;'; put '%return;'; put '%end;'; put '/**'; put '* Sanitise the values based on valid value lists, then strip out'; put '* quotes, commas, periods and spaces.'; put '*/'; put '%local reason_cd nobs;'; put '%let nobs=0;'; put 'data &outds;'; put '/*length GROUP_LOGIC SUBGROUP_LOGIC $3 SUBGROUP_ID 8 VARIABLE_NM $32'; put 'OPERATOR_NM $10 RAW_VALUE $4000;*/'; put 'set &inds end=last;'; put 'length reason_cd $4032 vtype vtype2 $1 vnum dsid 8 tmp $4000;'; put 'drop tmp;'; put '/* quick check to ensure column exists */'; put 'if upcase(VARIABLE_NM) not in'; put '(%upcase(%mf_getvarlist(&targetds,dlm=%str(,),quote=SINGLE)))'; put 'then do;'; put 'REASON_CD="Variable "!!cats(variable_nm)!!" not in &targetds";'; put 'putlog REASON_CD= VARIABLE_NM=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'return;'; put 'end;'; put '/* need to open the dataset to get the column type */'; put 'retain dsid;'; put 'if _n_=1 then dsid=open("&targetds","i");'; put 'if dsid>0 then do;'; put 'vnum=varnum(dsid,VARIABLE_NM);'; put 'if vnum<1 then do;'; put '/* should not happen as was also tested for above */'; put 'REASON_CD=cats("Variable (",VARIABLE_NM,") not found in &targetds");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'goto endstep;'; put 'end;'; put '/* now we can get the type */'; put 'else vtype=vartype(dsid,vnum);'; put 'end;'; put 'else do;'; put 'REASON_CD=cats("Could not open &targetds");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'stop;'; put 'end;'; put '/* closed list checks */'; put 'if GROUP_LOGIC not in (''AND'',''OR'') then do;'; put 'REASON_CD=''GROUP_LOGIC should be AND/OR, not:''!!cats(GROUP_LOGIC);'; put 'putlog REASON_CD= GROUP_LOGIC=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'if SUBGROUP_LOGIC not in (''AND'',''OR'') then do;'; put 'REASON_CD=''SUBGROUP_LOGIC should be AND/OR, not:''!!cats(SUBGROUP_LOGIC);'; put 'putlog REASON_CD= SUBGROUP_LOGIC=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'if mod(SUBGROUP_ID,1) ne 0 then do;'; put 'REASON_CD=''SUBGROUP_ID should be integer, not ''!!cats(subgroup_id);'; put 'putlog REASON_CD= SUBGROUP_ID=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'if OPERATOR_NM not in'; put '(''='',''>'',''<'',''<='',''>='',''NE'',''GE'',''LE'',''BETWEEN'',''IN'',''NOT IN'',''CONTAINS'')'; put 'then do;'; put 'REASON_CD=''Invalid OPERATOR_NM: ''!!cats(OPERATOR_NM);'; put 'putlog REASON_CD= OPERATOR_NM=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put '/* special missing logic */'; put 'if vtype=''N'' & OPERATOR_NM in (''='',''>'',''<'',''<='',''>='',''NE'',''GE'',''LE'') then do;'; put 'if cats(upcase(raw_value)) in ('; put '''.'',''.A'',''.B'',''.C'',''.D'',''.E'',''.F'',''.G'',''.H'',''.I'',''.J'',''.K'',''.L'',''.M'',''.N'''; put '''.N'',''.O'',''.P'',''.Q'',''.R'',''.S'',''.T'',''.U'',''.V'',''.W'',''.X'',''.Y'',''.Z'',''._'''; put ')'; put 'then do;'; put '/* valid numeric - exit data step loop */'; put 'return;'; put 'end;'; put 'else if subpad(upcase(raw_value),1,1) in ('; put '''A'',''B'',''C'',''D'',''E'',''F'',''G'',''H'',''I'',''J'',''K'',''L'',''M'',''N'''; put '''N'',''O'',''P'',''Q'',''R'',''S'',''T'',''U'',''V'',''W'',''X'',''Y'',''Z'',''_'''; put ')'; put 'then do;'; put '/* check if the raw_value contains a valid variable NAME */'; put 'vnum=varnum(dsid,subpad(raw_value,1,32));'; put 'if vnum>0 then do;'; put '/* now we can get the type */'; put 'vtype2=vartype(dsid,vnum);'; put '/* check type matches */'; put 'if vtype2=vtype then do;'; put '/* valid target var - exit loop */'; put 'return;'; put 'end;'; put 'else do;'; put 'REASON_CD=cats("Compared Type (",vtype2,") is not (",vtype,")");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'goto endstep;'; put 'end;'; put 'end;'; put 'end;'; put 'end;'; put '/* special logic */'; put 'if OPERATOR_NM in (''IN'',''NOT IN'',''BETWEEN'') then do;'; put 'if OPERATOR_NM=''BETWEEN'' then raw_value1=tranwrd(raw_value,'' AND '','','');'; put 'else do;'; put 'if substr(raw_value,1,1) ne ''('''; put 'or substr(cats(reverse(raw_value)),1,1) ne '')'''; put 'then do;'; put 'REASON_CD=''Missing start/end bracket in RAW_VALUE'';'; put 'putlog REASON_CD= OPERATOR_NM= raw_value= raw_value1= ;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'else raw_value1=substr(raw_value,2,max(length(raw_value)-2,0));'; put 'end;'; put '/* we now have a comma seperated list of values */'; put 'if vtype=''N'' then do i=1 to countc(raw_value1, '','')+1;'; put 'tmp=scan(raw_value1,i,'','');'; put 'if cats(tmp) ne ''.'' and input(tmp, ?? 8.) eq . then do;'; put 'if OPERATOR_NM =''BETWEEN'' and subpad(upcase(tmp),1,1) in ('; put '''A'',''B'',''C'',''D'',''E'',''F'',''G'',''H'',''I'',''J'',''K'',''L'',''M'',''N'''; put '''N'',''O'',''P'',''Q'',''R'',''S'',''T'',''U'',''V'',''W'',''X'',''Y'',''Z'',''_'''; put ')'; put 'then do;'; put '/* check if the raw_value contains a valid variable NAME */'; put '/* is not valid syntax for IN or NOT IN */'; put 'vnum=varnum(dsid,subpad(tmp,1,32));'; put 'if vnum>0 then do;'; put '/* now we can get the type */'; put 'vtype2=vartype(dsid,vnum);'; put '/* check type matches */'; put 'if vtype2=vtype then do;'; put '/* valid target var - exit loop */'; put 'return;'; put 'end;'; put 'else do;'; put 'REASON_CD=cats("Compared Type (",vtype2,") is not (",vtype,")");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'goto endstep;'; put 'end;'; put 'end;'; put 'end;'; put 'REASON_CD=''Non Numeric value provided'';'; put 'putlog REASON_CD= OPERATOR_NM= raw_value= raw_value1= ;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'return;'; put 'end;'; put 'end;'; put 'else raw_value1=raw_value;'; put '/* remove nested literals eg '''' */'; put 'raw_value1=tranwrd(raw_value1,"''''",'''');'; put '/* now match string literals (always single quotes) */'; put 'raw_value2=raw_value1;'; put 'regex = prxparse("s/(\'').*?(\'')//");'; put 'call prxchange(regex,-1,raw_value2);'; put '/* remove commas and periods*/'; put 'raw_value3=compress(raw_value2,'',.'');'; put '/* output records that contain values other than digits and spaces */'; put 'if notdigit(compress(raw_value3,'' ''))>0 then do;'; put 'if vtype=''C'' and subpad(upcase(raw_value),1,1) in ('; put '''A'',''B'',''C'',''D'',''E'',''F'',''G'',''H'',''I'',''J'',''K'',''L'',''M'',''N'''; put '''N'',''O'',''P'',''Q'',''R'',''S'',''T'',''U'',''V'',''W'',''X'',''Y'',''Z'',''_'''; put ')'; put 'then do;'; put '/* check if the raw_value contains a valid variable NAME */'; put 'vnum=varnum(dsid,subpad(raw_value,1,32));'; put 'if vnum>0 then do;'; put '/* now we can get the type */'; put 'vtype2=vartype(dsid,vnum);'; put '/* check type matches */'; put 'if vtype2=vtype then do;'; put '/* valid target var - exit loop */'; put 'return;'; put 'end;'; put 'else do;'; put 'REASON_CD=cats("Compared Char Type (",vtype2,") is not (",vtype,")");'; put 'putlog REASON_CD= dsid=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'goto endstep;'; put 'end;'; put 'end;'; put 'end;'; put 'putlog raw_value3= $hex32.;'; put 'REASON_CD=cats(''Invalid RAW_VALUE:'',raw_value);'; put 'putlog (_all_)(=);'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; put 'endstep:'; put 'if last then rc=close(dsid);'; put 'run;'; put 'data _null_;'; put 'set &outds end=last;'; put 'putlog (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue=(&abort=YES and &nobs>0),'; put 'mac=&sysmacroname,'; put 'msg=%str(Data issue: %superq(reason_cd))'; put ')'; put '%if &nobs>0 %then %do;'; put '%let syscc=1008;'; put '%return;'; put '%end;'; put '/**'; put '* syntax checking passed but it does not mean the filter is valid'; put '* for that we can run a proc sql validate query'; put '*/'; put '%local fref1;'; put '%let fref1=%mf_getuniquefileref();'; put '%mp_filtergenerate(&inds,outref=&fref1)'; put '/* this macro will also set syscc to 1008 if any issues found */'; put '%mp_filtervalidate(&fref1,&targetds,outds=&outds,abort=&abort)'; put '%mend mp_filtercheck;'; put '%macro mp_md5(cvars=,nvars=);'; put '%local i var sep;'; put 'put(md5('; put '%do i=1 %to %sysfunc(countw(&cvars));'; put '%let var=%scan(&cvars,&i,%str( ));'; put '&sep put(md5(trim(&var)),$hex32.)'; put '%let sep=!!;'; put '%end;'; put '%do i=1 %to %sysfunc(countw(&nvars));'; put '%let var=%scan(&nvars,&i,%str( ));'; put '/* multiply by 1 to strip precision errors (eg 0 != 0) */'; put '/* but ONLY if not missing, else will lose any special missing values */'; put '&sep put(md5(trim(put(ifn(missing(&var),&var,&var*1),binary64.))),$hex32.)'; put '%let sep=!!;'; put '%end;'; put '),$hex32.)'; put '%mend mp_md5;'; put '%macro mp_hashdataset('; put 'libds,'; put 'outds=work._data_,'; put 'salt=,'; put 'iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%local keyvar /* roll up the md5 */'; put 'prevkeyvar /* retain prev record md5 */'; put 'lastvar /* last var in input ds */'; put 'cvars nvars;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '/* avoid naming conflict for hash key vars */'; put '%let keyvar=%mf_getuniquename();'; put '%let prevkeyvar=%mf_getuniquename();'; put '%let lastvar=%mf_getuniquename();'; put '%if %mf_getattrn(&libds,NLOBS)=0 %then %do;'; put 'data &outds;'; put 'length hashkey $32;'; put 'hashkey=put(md5("&salt"),$hex32.);'; put 'output;'; put 'stop;'; put 'run;'; put '%put &sysmacroname: Dataset &libds is empty, or is not a dataset;'; put '%put &sysmacroname: hashkey of &outds is based on salt (&salt) only;'; put '%end;'; put '%else %if %mf_getattrn(&libds,NLOBS)<0 %then %do;'; put '%put %str(ERR)OR: Dataset &libds is not a dataset;'; put '%end;'; put '%else %do;'; put 'data &outds(rename=(&keyvar=hashkey) keep=&keyvar)'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put '/nonote2err'; put '%end;'; put ';'; put 'length &prevkeyvar &keyvar $32;'; put 'retain &prevkeyvar;'; put 'if _n_=1 then &prevkeyvar=put(md5("&salt"),$hex32.);'; put 'set &libds end=&lastvar;'; put '/* hash should include previous row */'; put '&keyvar=%mp_md5('; put 'cvars=%mf_getvarlist(&libds,typefilter=C) &prevkeyvar,'; put 'nvars=%mf_getvarlist(&libds,typefilter=N)'; put ');'; put '&prevkeyvar=&keyvar;'; put 'if &lastvar then output;'; put 'run;'; put '%end;'; put '%mend mp_hashdataset;'; put '/** @cond */'; put '%macro mf_existvar(libds /* 2 part dataset name */'; put ', var /* variable name */'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid=0 %then %do;'; put '%put %sysfunc(sysmsg());'; put '0'; put '%end;'; put '%else %if %length(&var)=0 %then %do;'; put '0'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%sysfunc(varnum(&dsid,&var))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_existvar;'; put '/** @endcond */'; put '%macro mf_getquotedstr(IN_STR'; put ',DLM=%str(,)'; put ',QUOTE=S'; put ',indlm=%str( )'; put ')/*/STORE SOURCE*/;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if "e=S %then %let quote=%qsysfunc(byte(39));'; put '%else %if "e=D %then %let quote=%qsysfunc(byte(34));'; put '%else %if "e=N %then %let quote=;'; put '%local i item buffer;'; put '%let i=1;'; put '%do %while (%qscan(&IN_STR,&i,%str(&indlm)) ne %str() ) ;'; put '%let item=%qscan(&IN_STR,&i,%str(&indlm));'; put '%if %bquote("E) ne %then %let item="E%qtrim(&item)"E;'; put '%else %let item=%qtrim(&item);'; put '%if (&i = 1) %then %let buffer =%qtrim(&item);'; put '%else %let buffer =&buffer&DLM%qtrim(&item);'; put '%let i = %eval(&i+1);'; put '%end;'; put '%let buffer=%sysfunc(coalescec(%qtrim(&buffer),"E"E));'; put '&buffer'; put '%mend mf_getquotedstr;'; put '%macro mf_getattrc('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrc(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrc;'; put '%macro mp_lockfilecheck('; put 'libds'; put ')/*/STORE SOURCE*/;'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=checklock.sas'; put ',msg=Aborting with syscc=&syscc on entry.'; put ')'; put '%mp_abort(iftrue= ("&libds"="0")'; put ',mac=&sysmacroname'; put ',msg=%str(libds not provided)'; put ')'; put '%local msg lib ds;'; put '%let lib=%upcase(%scan(&libds,1,.));'; put '%let ds=%upcase(%scan(&libds,2,.));'; put '/* in DC, format catalogs are passed with a -FC suffix. No saslock here! */'; put '%if %scan(&libds,2,-)=FC %then %do;'; put '%put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%let msg=options obs = 0. syserrortext=%superq(syserrortext);'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=checklock.sas'; put ',msg=%superq(msg)'; put ')'; put 'data _null_;'; put 'putlog "Checking engine & member type";'; put 'run;'; put '%local engine memtype;'; put '%let memtype=%mf_getattrc(&libds,MTYPE);'; put '%let engine=%mf_getattrc(&libds,ENGINE);'; put '%if &engine ne V9 and &engine ne BASE %then %do;'; put 'data _null_;'; put 'putlog "Lib &lib is not assigned using BASE engine - uses &engine instead";'; put 'putlog "SAS lock check will not be performed";'; put 'run;'; put '%return;'; put '%end;'; put '%else %if &memtype ne DATA %then %do;'; put '%put NOTE: Cannot lock a VIEW!! Memtype=&memtype;'; put '%return;'; put '%end;'; put 'data _null_;'; put 'putlog "Engine = &engine, memtype=&memtype";'; put 'putlog "Attempting lock statement";'; put 'run;'; put 'lock &libds;'; put '%local abortme;'; put '%let abortme=0;'; put '%if &syscc>0 or &SYSLCKRC ne 0 %then %do;'; put '%let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);'; put '%put %str(ERR)OR: &sysmacroname: &msg;'; put '%let abortme=1;'; put '%end;'; put 'lock &libds clear;'; put '%mp_abort(iftrue= (&abortme=1)'; put ',mac=&sysmacroname'; put ',msg=%superq(msg)'; put ')'; put '%mend mp_lockfilecheck;'; put '%macro mp_lockanytable('; put 'action'; put ',lib= WORK'; put ',ds=0'; put ',ref='; put ',ctl_ds=0'; put ',loops=25'; put ',loop_secs=1'; put ');'; put 'data _null_;'; put 'if _n_=1 then putlog "&sysmacroname entry vars:";'; put 'set sashelp.vmacro;'; put 'where scope="&sysmacroname";'; put 'put name ''='' value;'; put 'run;'; put '%mp_abort(iftrue= ("&ds"="0" and &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(dataset was not provided)'; put ')'; put '%mp_abort(iftrue= (&ctl_ds=0)'; put ',mac=&sysmacroname'; put ',msg=%str(Control dataset was not provided)'; put ')'; put '/* set up lib & mac vars */'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '%let action=%upcase(&action);'; put '%local user x trans msg abortme;'; put '%let user=%mf_getuser();'; put '%let abortme=0;'; put '%mp_abort(iftrue= (&action ne LOCK & &action ne UNLOCK & &action ne MAKETABLE)'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid action (&action) provided)'; put ')'; put '/* if an err condition exists, exit before we even begin */'; put '%mp_abort(iftrue= (&syscc>0 and &action=LOCK)'; put ',mac=&sysmacroname'; put ',msg=%str(aborting due to syscc=&syscc on LOCK entry)'; put ')'; put '/* do not bother locking work tables (else may affect all WORK libraries) */'; put '%if (%upcase(&lib)=WORK or %str(&lib)=%str()) & &action ne MAKETABLE %then %do;'; put '%put NOTE: WORK libraries will not be registered in the locking system.;'; put '%return;'; put '%end;'; put '/* do not proceed if no observations can be processed */'; put '%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)'; put ',mac=&sysmacroname'; put ',msg=%str(cannot continue when options obs = 0)'; put ')'; put '%if &ACTION=LOCK %then %do;'; put '/* abort if a SAS lock is already in place, or cannot be applied */'; put '%mp_lockfilecheck(&lib..&ds)'; put '/* next, check there is a record for this table */'; put '%local record_exists_check;'; put 'proc sql noprint;'; put 'select count(*) into: record_exists_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &record_exists_check=0 %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: adding record to lock table..";'; put 'run;'; put 'data ;'; put 'if 0 then set &ctl_ds;'; put 'LOCK_LIB ="&lib";'; put 'LOCK_DS="&ds";'; put 'LOCK_STATUS_CD=''LOCKED'';'; put 'LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put 'LOCK_USER_NM="&user";'; put 'LOCK_PID="&sysjobid";'; put 'LOCK_REF="&ref";'; put 'output;stop;'; put 'run;'; put '%let trans=&syslast;'; put 'proc append base=&ctl_ds data=&trans;'; put 'run;'; put '%end;'; put '/* if record does exist, perform lock attempts */'; put '%else %do x=1 %to &loops;'; put 'data _null_;'; put 'putlog "&sysmacroname: attempting lock (iteration &x) "@;'; put 'putlog "at %sysfunc(datetime(),datetime19.) ..";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''LOCKED'''; put ', LOCK_START_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '/**'; put '* NOTE - occasionally SQL server will return an err code (deadlocked'; put '* transaction). If so, ignore it, keep calm, and carry on..'; put '*/'; put '%if &syscc>0 %then %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Update failed. "@;'; put 'putlog "Resetting err conditions and re-attempting.";'; put 'putlog "NOTE- syscc=&syscc syserr=&syserr sqlrc=&sqlrc";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%let syscc=0;'; put '%let sqlrc=0;'; put '%end;'; put '/* now check if the record was successfully updated */'; put '%local success_check;'; put 'proc sql noprint;'; put 'select count(*) into: success_check from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds"'; put 'and LOCK_PID="&sysjobid" and LOCK_STATUS_CD=''LOCKED'';'; put 'quit;'; put '%if &success_check=0 %then %do;'; put '%if &x < &loops %then %do;'; put '/* pause before next check */'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: table locked, waiting "@;'; put 'putlog "%sysfunc(sleep(&loop_secs)) seconds.. ";'; put 'putlog "NOTE- (iteration &x of &loops)";'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%end;'; put '%else %do;'; put '%let msg=Unable to lock &lib..&ds via &ctl_ds after &loops attempts.\n'; put 'Please ask your administrator to investigate!;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%else %do;'; put 'data _null_;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'putlog "NOTE- &sysmacroname: Table &lib..&ds locked at "@;'; put 'putlog " %sysfunc(datetime(),datetime19.) (iteration &x)"@;'; put 'putlog ''NOTE-'' / ''NOTE-'';'; put 'run;'; put '%if &syscc>0 %then %do;'; put '%put setting syscc(&syscc) back to 0;'; put '%let syscc=0;'; put '%end;'; put '%let x=&loops; /* no more iterations needed */'; put '%end;'; put '%end;'; put '%end;'; put '%else %if &ACTION=UNLOCK %then %do;'; put '%local status cnt;'; put '%let cnt=0;'; put 'proc sql noprint;'; put 'select count(*) into: cnt from &ctl_ds where LOCK_LIB ="&lib" & LOCK_DS="&ds";'; put '%if &cnt=0 %then %do;'; put '%put %str(WAR)NING: &lib..&ds was not previously locked in &ctl_ds!;'; put '%end;'; put '%else %do;'; put 'select LOCK_STATUS_CD into: status from &ctl_ds'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%if &syscc>0 %then %put syscc=&syscc sqlrc=&sqlrc;'; put '%if &status=LOCKED %then %do;'; put 'data _null_;'; put 'putlog "&sysmacroname: unlocking &lib..&ds:";'; put 'run;'; put 'proc sql;'; put 'update &ctl_ds'; put 'set LOCK_STATUS_CD=''UNLOCKED'''; put ', LOCK_END_DTTM="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put ', LOCK_USER_NM="&user"'; put ', LOCK_PID="&sysjobid"'; put ', LOCK_REF="&ref"'; put 'where LOCK_LIB ="&lib" and LOCK_DS="&ds";'; put 'quit;'; put '%end;'; put '%else %if &status=UNLOCKED %then %do;'; put '%put %str(WAR)NING: &lib..&ds is already unlocked!;'; put '%end;'; put '%else %do;'; put '%put NOTE: Unrecognised STATUS_CD (&status) in &ctl_ds;'; put '%let abortme=1;'; put '%end;'; put '%end;'; put '%end;'; put '%else %do;'; put '%let msg=lock_anytable given unsupported action (&action);'; put '%let abortme=1;'; put '%end;'; put '/* catch errs - mp_abort must be called outside of a logic block */'; put '%mp_abort(iftrue=(&abortme=1),'; put 'msg=%superq(msg),'; put 'mac=&sysmacroname'; put ')'; put '%exit_macro:'; put 'data _null_;'; put 'put "&sysmacroname: Exit vars: action=&action lib=&lib ds=&ds";'; put 'put " syscc=&syscc sqlrc=&sqlrc syserr=&syserr";'; put 'run;'; put '%mend mp_lockanytable;'; put '%macro mp_retainedkey('; put 'base_lib=WORK'; put ',base_dsn=BASETABLE'; put ',append_lib=WORK'; put ',append_dsn=APPENDTABLE'; put ',retained_key=DEFAULT_RK'; put ',business_key= PK1 PK2'; put ',check_uniqueness=NO'; put ',maxkeytable=0'; put ',locktable=0'; put ',outds=WORK.APPEND'; put ',filter_str='; put ');'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%local base_libds app_libds key_field check maxkey idx_pk newkey_cnt iserr'; put 'msg x tempds1 tempds2 comma_pk appnobs checknobs dropvar tempvar idx_val;'; put '%let base_libds=%upcase(&base_lib..&base_dsn);'; put '%let app_libds=%upcase(&append_lib..&append_dsn);'; put '%let tempds1=%mf_getuniquename();'; put '%let tempds2=%mf_getuniquename();'; put '%let comma_pk=%mf_getquotedstr(in_str=%str(&business_key),dlm=%str(,),quote=);'; put '%let outds=%sysfunc(ifc(%index(&outds,.)=0,work.&outds,&outds));'; put '/* validation checks */'; put '%let iserr=0;'; put '%if &syscc>0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(SYSCC=&syscc on macro entry);'; put '%end;'; put '%else %if %sysfunc(exist(&base_libds))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Base LIBDS (&base_libds) expected but NOT FOUND);'; put '%end;'; put '%else %if %sysfunc(exist(&app_libds))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Append LIBDS (&app_libds) expected but NOT FOUND);'; put '%end;'; put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&maxkeytable))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Maxkeytable (&maxkeytable) expected but NOT FOUND);'; put '%end;'; put '%else %if &maxkeytable ne 0 and %sysfunc(exist(&locktable))=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Locktable (&locktable) expected but NOT FOUND);'; put '%end;'; put '%else %if %length(&business_key)=0 %then %do;'; put '%let iserr=1;'; put '%let msg=%str(Business key (&business_key) expected but NOT FOUND);'; put '%end;'; put '%do x=1 %to %sysfunc(countw(&business_key));'; put '/* check business key values exist */'; put '%let key_field=%scan(&business_key,&x,%str( ));'; put '%if not %mf_existvar(&app_libds,&key_field) %then %do;'; put '%let iserr=1;'; put '%let msg=Business key (&key_field) not found on &app_libds!;'; put '%goto err;'; put '%end;'; put '%else %if not %mf_existvar(&base_libds,&key_field) %then %do;'; put '%let iserr=1;'; put '%let msg=Business key (&key_field) not found on &base_libds!;'; put '%goto err;'; put '%end;'; put '%end;'; put '%err:'; put '%if &iserr=1 %then %do;'; put '/* err case so first perform an unlock of the base table before exiting */'; put '%mp_lockanytable('; put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; put ')'; put '%end;'; put '%mp_abort(iftrue=(&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; put 'proc sql noprint;'; put 'select sum(max(&retained_key),0) into: maxkey from &base_libds;'; put '/**'; put '* get base table RK and bus field values for lookup'; put '*/'; put 'proc sql noprint;'; put 'create table &tempds1 as'; put 'select distinct &comma_pk,&retained_key'; put 'from &base_libds &filter_str'; put 'order by &comma_pk,&retained_key;'; put '%if &check_uniqueness=YES %then %do;'; put 'select count(*) into:checknobs'; put 'from (select distinct &comma_pk from &app_libds);'; put 'select count(*) into: appnobs from &app_libds; /* might be view */'; put '%if &checknobs ne &appnobs %then %do;'; put '%let msg=Source table &app_libds is not unique on (&business_key);'; put '%let iserr=1;'; put '%end;'; put '%end;'; put '%if &iserr=1 %then %do;'; put '/* err case so first perform an unlock of the base table before exiting */'; put '%mp_lockanytable('; put 'UNLOCK,lib=&base_lib,ds=&base_dsn,ref=%superq(msg),ctl_ds=&locktable'; put ')'; put '%end;'; put '%mp_abort(iftrue= (&iserr=1),mac=mp_retainedkey,msg=%superq(msg))'; put '%if %mf_existvar(&app_libds,&retained_key)'; put '%then %let dropvar=(drop=&retained_key);'; put '/* prepare interim table with retained key populated for matching keys */'; put 'proc sql noprint;'; put 'create table &tempds2 as'; put 'select b.&retained_key, a.*'; put 'from &app_libds &dropvar a'; put 'left join &tempds1 b'; put 'on 1'; put '%do idx_pk=1 %to %sysfunc(countw(&business_key));'; put '%let idx_val=%scan(&business_key,&idx_pk);'; put 'and a.&idx_val=b.&idx_val'; put '%end;'; put 'order by &retained_key;'; put '/* identify the number of entries without retained keys (new records) */'; put 'select count(*) into: newkey_cnt'; put 'from &tempds2'; put 'where missing(&retained_key);'; put 'quit;'; put '/**'; put '* Update maxkey table if link provided'; put '*/'; put '%if &maxkeytable ne 0 %then %do;'; put 'proc sql noprint;'; put 'select count(*) into: check from &maxkeytable'; put 'where upcase(keytable)="&base_libds";'; put '%mp_lockanytable(LOCK'; put ',lib=%scan(&maxkeytable,1,.)'; put ',ds=%scan(&maxkeytable,2,.)'; put ',ref=Updating maxkeyvalues with mp_retainedkey'; put ',ctl_ds=&locktable'; put ')'; put 'proc sql;'; put '%if &check=0 %then %do;'; put 'insert into &maxkeytable'; put 'set keytable="&base_libds"'; put ',keycolumn="&retained_key"'; put ',max_key=%eval(&maxkey+&newkey_cnt)'; put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt;'; put '%end;'; put '%else %do;'; put 'update &maxkeytable'; put 'set max_key=%eval(&maxkey+&newkey_cnt)'; put ',processed_dttm="%sysfunc(datetime(),%mf_fmtdttm())"dt'; put 'where keytable="&base_libds";'; put '%end;'; put '%mp_lockanytable(UNLOCK'; put ',lib=%scan(&maxkeytable,1,.)'; put ',ds=%scan(&maxkeytable,2,.)'; put ',ref=Updating maxkeyvalues with maxkey=%eval(&maxkey+&newkey_cnt)'; put ',ctl_ds=&locktable'; put ')'; put '%end;'; put '/* fill in the missing retained key values */'; put '%let tempvar=%mf_getuniquename();'; put 'data &outds(drop=&tempvar);'; put 'retain &tempvar %eval(&maxkey+1);'; put 'set &tempds2;'; put 'if &retained_key =. then &retained_key=&tempvar;'; put '&tempvar=&tempvar+1;'; put 'run;'; put '%mend mp_retainedkey;'; put '%macro mp_filterstore(libds=,'; put 'queryds=work.filterquery,'; put 'filter_summary=PERM.FILTER_SUMMARY,'; put 'filter_detail=PERM.FILTER_DETAIL,'; put 'lock_table=PERM.LOCK_TABLE,'; put 'maxkeytable=PERM.MAXKEYTABLE,'; put 'outresult=work.result,'; put 'outquery=work.query,'; put 'mdebug=1'; put ');'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%local ds0 ds1 ds2 ds3 ds4 filter_hash orig_libds;'; put '%let libds=%upcase(&libds);'; put '%let orig_libds=&libds;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=mp_filterstore'; put ',msg=%str(syscc=&syscc on macro entry)'; put ')'; put '%mp_abort(iftrue= (%mf_islibds(&filter_summary)=0)'; put ',mac=mp_filterstore'; put ',msg=%str(Invalid filter_summary value: &filter_summary)'; put ')'; put '%mp_abort(iftrue= (%mf_islibds(&filter_detail)=0)'; put ',mac=mp_filterstore'; put ',msg=%str(Invalid filter_detail value: &filter_detail)'; put ')'; put '%mp_abort(iftrue= (%mf_islibds(&lock_table)=0)'; put ',mac=mp_filterstore'; put ',msg=%str(Invalid lock_table value: &lock_table)'; put ')'; put '/**'; put '* validate query'; put '* use format catalog export, if a format'; put '*/'; put '%if "%substr(&libds,%length(&libds)-2,3)"="-FC" %then %do;'; put '%let libds=%scan(&libds,1,-); /* chop off -FC extension */'; put '%let ds0=%mf_getuniquename(prefix=fmtds_);'; put '%let libds=&ds0;'; put '/*'; put 'There is no need to export the entire format catalog here - the validations'; put 'are done against the data model, not the data values. So we can simply'; put 'hardcode the structure based on the cntlout dataset.'; put '*/'; put '%mddl_sas_cntlout(libds=&ds0)'; put '%end;'; put '%mp_filtercheck(&queryds,targetds=&libds,abort=YES)'; put '/* hash the result */'; put '%let ds1=%mf_getuniquename(prefix=hashds);'; put '%mp_hashdataset(&queryds,outds=&ds1,salt=&orig_libds)'; put '%let filter_hash=%upcase(%mf_getvalue(&ds1,hashkey));'; put '%if &mdebug=1 %then %do;'; put 'data _null_;'; put 'putlog "filter_hash=&filter_hash";'; put 'set &ds1;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put '/* check if data already exists for this hash */'; put 'data &outresult;'; put 'set &filter_summary;'; put 'where filter_hash="&filter_hash";'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=mp_filterstore'; put ',msg=%str(syscc=&syscc after hash check)'; put ')'; put '%mp_abort(iftrue= ("&filter_hash "=" ")'; put ',mac=mp_filterstore'; put ',msg=%str(problem with filter_hash generation)'; put ')'; put '%if %mf_nobs(&outresult)=0 %then %do;'; put '/* first update summary table */'; put '%let ds3=%mf_getuniquename(prefix=filtersum);'; put 'data work.&ds3;'; put 'if 0 then set &filter_summary;'; put 'filter_table="&orig_libds";'; put 'filter_hash="&filter_hash";'; put 'PROCESSED_DTTM=%sysfunc(datetime());'; put 'output;'; put 'stop;'; put 'run;'; put '%mp_lockanytable(LOCK,'; put 'lib=%scan(&filter_summary,1,.)'; put ',ds=%scan(&filter_summary,2,.)'; put ',ref=MP_FILTERSTORE summary update - &filter_hash'; put ',ctl_ds=&lock_table'; put ')'; put '%let ds4=%mf_getuniquename(prefix=filtersumappend);'; put '%mp_retainedkey('; put 'base_lib=%scan(&filter_summary,1,.)'; put ',base_dsn=%scan(&filter_summary,2,.)'; put ',append_lib=work'; put ',append_dsn=&ds3'; put ',retained_key=filter_rk'; put ',business_key=filter_hash'; put ',maxkeytable=&maxkeytable'; put ',locktable=&lock_table'; put ',outds=work.&ds4'; put ')'; put 'proc append base=&filter_summary data=&ds4;'; put 'run;'; put '%mp_lockanytable(UNLOCK,'; put 'lib=%scan(&filter_summary,1,.)'; put ',ds=%scan(&filter_summary,2,.)'; put ',ref=MP_FILTERSTORE summary update - &filter_hash'; put ',ctl_ds=&lock_table'; put ')'; put '%if &syscc ne 0 %then %do;'; put 'data _null_;'; put 'set &ds4;'; put 'putlog (_all_)(=);'; put 'run;'; put '%goto err;'; put '%end;'; put 'data &outresult;'; put 'set &filter_summary;'; put 'where filter_hash="&filter_hash";'; put 'run;'; put '/* Next, update detail table */'; put '%let ds2=%mf_getuniquename(prefix=filterdetail);'; put 'data &ds2;'; put 'if 0 then set &filter_detail;'; put 'set &queryds;'; put 'format filter_hash $hex32. filter_line 8.;'; put 'filter_hash="&filter_hash";'; put 'filter_line=_n_;'; put 'PROCESSED_DTTM=%sysfunc(datetime());'; put 'run;'; put '%mp_lockanytable(LOCK,'; put 'lib=%scan(&filter_detail,1,.)'; put ',ds=%scan(&filter_detail,2,.)'; put ',ref=MP_FILTERSTORE update - &filter_hash'; put ',ctl_ds=&lock_table'; put ')'; put 'proc append base=&filter_detail data=&ds2;'; put 'run;'; put '%mp_lockanytable(UNLOCK,'; put 'lib=%scan(&filter_detail,1,.)'; put ',ds=%scan(&filter_detail,2,.)'; put ',ref=MP_FILTERSTORE detail update &filter_hash'; put ',ctl_ds=&lock_table'; put ')'; put '%if &syscc ne 0 %then %do;'; put 'data _null_;'; put 'set &ds2;'; put 'putlog (_all_)(=);'; put 'run;'; put '%goto err;'; put '%end;'; put '%end;'; put 'proc sort data=&filter_detail(where=(filter_hash="&filter_hash")) out=&outquery;'; put 'by filter_line;'; put 'run;'; put '%err:'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=mp_filterstore'; put ',msg=%str(syscc=&syscc on macro exit)'; put ')'; put '%mend mp_filterstore;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Validates a filter clause before it gets hashified, returns the RK'; put '@details Used to generate a FILTER_RK from an input query dataset.'; put 'Raw values are stored in dc.mpe_filtersource and the meta values are stored'; put 'in dc.mpe_filteranytable'; put '

Service Inputs

'; put '
IWANT
'; put '|FILTER_TABLE:$41.|'; put '|---|'; put '|DC258467.MPE_X_TEST|'; put '
FILTERQUERY
'; put '|GROUP_LOGIC:$3|SUBGROUP_LOGIC:$3|SUBGROUP_ID:8.|VARIABLE_NM:$32|OPERATOR_NM:$10|RAW_VALUE:$32767|'; put '|---|---|---|---|---|---|'; put '|AND|AND|1|SOME_BESTNUM|>|1|'; put '|AND|AND|1|SOME_TIME|=|77333|'; put '

Service Outputs

'; put '
result
'; put '@li FILTER_HASH'; put '@li FILTER_RK'; put '@li FILTER_TABLE'; put '

SAS Macros

'; put '@li dc_assignlib.sas'; put '@li mf_getvalue.sas'; put '@li mp_filterstore.sas'; put '@li removecolsfromwork.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%let ds=%upcase(%mf_getvalue(work.iwant,filter_table));'; put '%dc_assignlib(WRITE,%scan(&ds,1,.))'; put '%mp_filterstore('; put 'libds=&ds,'; put 'queryds=work.filterquery,'; put 'filter_summary=&dc_libref..mpe_filteranytable,'; put 'filter_detail=&dc_libref..mpe_filtersource,'; put 'lock_table=&dc_libref..mpe_lockanytable,'; put 'maxkeytable=&dc_libref..mpe_maxkeyvalues,'; put 'outresult=work.result,'; put 'outquery=work.query, /* not used */'; put 'mdebug=1'; put ')'; put '%removecolsfromwork(___TMP___MD5)'; put 'proc sql;'; put 'alter table work.result drop PROCESSED_DTTM;'; put '%webout(OPEN)'; put '%webout(OBJ,result)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=viewdata; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mpe_columnlevelsecurity(tgtlib,tgtds,inds'; put ',mode=VIEW'; put ',groupds=work.groups'; put ',clsds=work.clsview'; put ',outds=CLSVIEW'; put ',outmeta=work.cls_rules'; put ');'; put '%local col_list is_admin;'; put '/* filter for the appropriate rules */'; put 'proc sql;'; put 'create table &outmeta as'; put 'select CLS_VARIABLE_NM,'; put 'min(case when CLS_HIDE=1 then 1 else 0 end) as CLS_HIDE'; put 'from &clsds'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and CLS_SCOPE in ("&mode",''ALL'')'; put 'and CLS_ACTIVE=1'; put '%if &mode=VIEW %then %do;'; put 'and CLS_HIDE ne 1'; put '%end;'; put 'and upcase(CLS_GROUP) in (select upcase(groupname) from &groupds)'; put 'and CLS_LIBREF="%upcase(&tgtlib)"'; put 'and CLS_TABLE="%upcase(&tgtds)"'; put 'group by CLS_VARIABLE_NM;'; put '%let is_admin=0;'; put 'proc sql;'; put 'select count(*) into: is_admin from &groupds where groupname="&MPEADMINS";'; put '%put &sysmacroname: &=is_admin;'; put '%if %mf_nobs(work.cls_rules) = 0 or &is_admin>0 %then %do;'; put '%put &sysmacroname: no CLS rules to apply;'; put '%put &=is_admin;'; put '/* copy using append for speed */'; put 'data &outds;'; put 'set &inds;'; put 'stop;'; put 'run;'; put 'proc append base=&outds data=&inds;'; put 'run;'; put '/* ensure CLS_RULES is empty in case of admin */'; put 'data &outmeta;'; put 'set &outmeta;'; put 'stop;'; put 'run;'; put '%return;'; put '%end;'; put '%else %if &mode=VIEW %then %do;'; put '/* just send back the relevant columns */'; put '%let col_list=0;'; put 'proc sql noprint;'; put 'select CLS_VARIABLE_NM into: col_list separated by '' '' from &outmeta'; put 'where CLS_HIDE=0;'; put '%if &col_list=0 %then %do;'; put '/*'; put 'We have columns that are set to CLS_HIDE=1 but we do not have any to'; put 'explicitly show. Therefore we assume all columns are to be shown except'; put 'those that are explicitly hidden.'; put '*/'; put 'proc sql noprint;'; put 'select CLS_VARIABLE_NM into: col_list separated by '' '' from &outmeta'; put 'where CLS_HIDE=1;'; put 'data &outds;'; put 'set &inds;'; put 'drop &col_list;'; put 'run;'; put '%end;'; put '%else %do;'; put 'data &outds;'; put 'set &inds;'; put 'keep &col_list;'; put 'run;'; put '%end;'; put '%end;'; put '%else %if &mode=EDIT %then %do;'; put '/*'; put 'In this case we pass all columns and the frontend will filter out the'; put 'ones that are not allowed to be edited.'; put '*/'; put 'data &outds;'; put 'set &inds;'; put 'stop;'; put 'run;'; put 'proc append base=&outds data=&inds;'; put 'run;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: invalid mode - &mode!;'; put '%abort;'; put '%end;'; put '%mend mpe_columnlevelsecurity;'; put '%macro mp_dsmeta(libds,outds=work.dsmeta);'; put '%local ds1 ds2;'; put 'data;run; %let ds1=&syslast;'; put 'data;run; %let ds2=&syslast;'; put '/* setup the ODS capture */'; put 'ods output attributes=&ds1 enginehost=&ds2;'; put '/* export the metadata */'; put 'proc contents data=&libds;'; put 'run;'; put '/* load it into a single table */'; put 'data &outds (keep=ods_table name value);'; put 'length ods_table $10 name label2 label1 label $100'; put 'value cvalue cvalue1 cvalue2 $1000'; put 'nvalue nvalue1 nvalue2 8;'; put 'if _n_=1 then call missing (of _all_);'; put '* putlog (_all_)(=);'; put 'set &ds1 (in=atrs) &ds2 (in=eng);'; put 'if atrs then do;'; put 'ods_table=''ATTRIBUTES'';'; put 'name=coalescec(label1,label);'; put 'value=coalescec(cvalue1,cvalue,put(coalesce(nvalue1,nvalue),best.));'; put 'output;'; put 'if label2 ne '''' then do;'; put 'name=label2;'; put 'value=coalescec(cvalue2,put(nvalue2,best.));'; put 'output;'; put 'end;'; put 'end;'; put 'else if eng then do;'; put 'ods_table=''ENGINEHOST'';'; put 'name=coalescec(label1,label);'; put 'value=coalescec(cvalue1,cvalue,put(coalesce(nvalue1,nvalue),best.));'; put 'output;'; put 'end;'; put 'run;'; put 'proc sql;'; put 'drop table &ds1, &ds2;'; put '%mend mp_dsmeta;'; put '%macro mpe_dsmeta(libds, outds=dsmeta);'; put '%local ddsd ddld notes lenstmt memname;'; put '%let lenstmt=length ods_table $18 name $100 value $1000;'; put '%let libds=%upcase(&libds);'; put '%if "%scan(&libds,2,-)" ne "FC" %then %do;'; put '%let memname=%scan(&libds,2,.);'; put '%mp_dsmeta(&libds, outds=&outds)'; put '%end;'; put '%else %do;'; put '%let memname=%scan(&libds,2,.-);'; put 'data &outds;'; put '&lenstmt;'; put 'set sashelp.vcatalg;'; put 'ods_table=cats(objtype);'; put 'name=cats(objname);'; put 'value=catx('' '',objdesc,''(modified:'',put(modified,datetime19.),'')'');'; put 'where libname="%scan(&libds,1,.)" and memname="&memname";'; put 'keep ods_table name value;'; put 'run;'; put 'proc sort; by ods_table name;run;'; put '%end;'; put 'data _null_;'; put 'set &mpelib..mpe_datadictionary;'; put 'where &dc_dttmtfmt < tx_to & dd_source="&memname" & dd_type=''TABLE'';'; put 'call symputx(''ddsd'',dd_shortdesc,''l'');'; put 'call symputx(''ddld'',dd_longdesc,''l'');'; put 'run;'; put 'data &outds;'; put '&lenstmt;'; put 'if last then do;'; put 'ODS_TABLE=''MPE_DATADICTIONARY'';'; put 'NAME=''DD_SHORTDESC'';'; put 'VALUE="&ddsd";'; put 'output;'; put 'NAME=''DD_LONGDESC'';'; put 'VALUE="&ddld";'; put 'output;'; put 'end;'; put 'set &outds end=last;'; put 'output;'; put 'run;'; put 'data _data_;'; put 'set &mpelib..mpe_tables;'; put 'where libref="%scan(&libds,1,.)"'; put '& dsn="%scan(&libds,2,.)"'; put '& &dc_dttmtfmt 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mc,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mf_getattrn('; put 'libds'; put ',attr'; put ')/*/STORE SOURCE*/;'; put '%local dsid rc;'; put '%let dsid=%sysfunc(open(&libds,is));'; put '%if &dsid = 0 %then %do;'; put '%put %str(WARN)ING: Cannot open %trim(&libds), system message below;'; put '%put %sysfunc(sysmsg());'; put '-1'; put '%end;'; put '%else %do;'; put '%sysfunc(attrn(&dsid,&attr))'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%mend mf_getattrn;'; put '%macro mf_nobs(libds'; put ')/*/STORE SOURCE*/;'; put '%mf_getattrn(&libds,NLOBS)'; put '%mend mf_nobs;'; put '%macro mp_filtergenerate(inds,outref=filter);'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc - on macro entry)'; put ')'; put 'filename &outref temp;'; put '%if %mf_nobs(&inds)=0 %then %do;'; put '/* ensure we have a default filter */'; put 'data _null_;'; put 'file &outref;'; put 'put ''1=1'';'; put 'run;'; put '%end;'; put '%else %do;'; put 'proc sort data=&inds;'; put 'by SUBGROUP_ID;'; put 'run;'; put 'data _null_;'; put 'file &outref lrecl=32800;'; put 'set &inds end=last;'; put 'by SUBGROUP_ID;'; put 'if _n_=1 then put ''(('';'; put 'else if first.SUBGROUP_ID then put +1 GROUP_LOGIC ''('';'; put 'else put +2 SUBGROUP_LOGIC;'; put 'put +4 VARIABLE_NM OPERATOR_NM RAW_VALUE;'; put 'if last.SUBGROUP_ID then put '')''@;'; put 'if last then put '')'';'; put 'run;'; put '%end;'; put '%mend mp_filtergenerate;'; put '%macro mpe_filtermaster(mode,libds,'; put 'dclib=,'; put 'filter_rk=-1,'; put 'outref=0,'; put 'outds=work.query'; put ');'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%let mode=%upcase(&mode);'; put '%let libds=%upcase(&libds);'; put '%mp_abort(iftrue= ('; put '&mode ne EDIT and &mode ne VIEW and &mode ne DLOAD and &mode ne ULOAD'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid MODE: &mode)'; put ')'; put '%mp_abort(iftrue= (&outref = 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Please provide a fileref!)'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc)'; put ')'; put 'filename &outref temp;'; put '/* ensure outputs exist */'; put 'data _null_;'; put 'file &outref;'; put 'put '' '';'; put 'run;'; put 'data &outds;'; put 'set &dclib..mpe_filtersource;'; put 'stop;'; put 'run;'; put '/**'; put '* Deal with FILTER_RK first'; put '*/'; put '%if &filter_rk gt 0 %then %do;'; put 'data _null_;'; put 'file &outref;'; put 'put ''( ''@@;'; put 'set &dclib..mpe_filteranytable(where=(filter_rk=&filter_rk));'; put 'call symputx(''filter_hash'',filter_hash,''l'');'; put 'run;'; put 'proc sort data=&dclib..mpe_filtersource(where=(filter_hash="&filter_hash"))'; put 'out=&outds(drop=filter_hash filter_line processed_dttm);'; put 'by filter_line;'; put 'run;'; put '%mp_filtergenerate(&outds,outref=&outref)'; put '%end;'; put '/* Now filter for current records if the MODE is EDIT or DLOAD */'; put '%local varfrom varto;'; put '%let varfrom=0;'; put 'proc sql;'; put 'select coalescec(var_txfrom,''0''), var_txto into: varfrom,:varto'; put 'from &dclib..MPE_TABLES'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and libref="%scan(&libds,1,.)" and dsn="%scan(&libds,2,.)";'; put '%put &=varfrom;'; put '%put &=varto;'; put '/**'; put '* Check if the date variables were mentioned in the query'; put '* This is a trigger for serving a historical view instead of current'; put '* we skip this part when checking an ULOAD as there are no date vars'; put '*/'; put '%if &varfrom ne 0 and (&mode=EDIT or &mode=DLOAD) %then %do;'; put '%local validityvars;'; put 'proc sql;'; put 'select count(*) into: validityvars'; put 'from &outds'; put 'where variable_nm in ("&varfrom","&varto");'; put '%if &validityvars=0 %then %do;'; put 'data _null_;'; put 'file &outref mod;'; put 'length filter_text $32767;'; put 'varfrom=symget(''varfrom'');'; put 'varto=symget(''varto'');'; put 'filter_text=catx('' '','; put '''("%sysfunc(datetime(),'',"%mf_fmtdttm()",'')"dt <'',varto,'')'''; put ');'; put 'if &filter_rk > 0 then put ''AND '' filter_text;'; put 'else put filter_text;'; put 'run;'; put '%end;'; put '%end;'; put '/**'; put '* Now do Row Level Security based on the MPE_ROW_LEVEL_SECURITY table'; put '*/'; put '/* first determine users group membership */'; put '%mpe_getgroups(user=%mf_getuser(),outds=work.groups)'; put '%local admin_check;'; put 'proc sql;'; put 'select count(*) into: admin_check'; put 'from work.groups'; put 'where groupname="&mpeadmins";'; put '%put &sysmacroname: &=admin_check &=mpeadmins;'; put '%if &admin_check=0 %then %do;'; put '%local scopeval;'; put '%if &mode=DLOAD %then %let scopeval=VIEW;'; put '%if &mode=ULOAD %then %let scopeval=EDIT;'; put '%else %let scopeval=&mode;'; put '/* extract relevant rows */'; put '%local rlsds;'; put '%let rlsds=%mf_getuniquename();'; put 'proc sql;'; put 'create table work.&rlsds as'; put 'select rls_group,'; put 'rls_group_logic as group_logic,'; put 'rls_subgroup_logic as subgroup_logic,'; put 'rls_subgroup_id as subgroup_id,'; put 'rls_variable_nm as variable_nm,'; put 'rls_operator_nm as operator_nm,'; put 'rls_raw_value as raw_value'; put 'from &mpelib..mpe_row_level_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and rls_scope in ("&scopeval",''ALL'')'; put 'and upcase(rls_group) in (select upcase(groupname) from work.groups)'; put 'and rls_libref="%scan(&libds,1,.)"'; put 'and rls_table="%scan(&libds,2,.)"'; put 'and rls_active=1'; put 'order by rls_group,rls_subgroup_id;'; put '%if &sqlobs>0 %then %do;'; put '/* check if we currently have filter or not */'; put 'data ;'; put 'infile &outref end=eof;'; put 'input;'; put 'if _n_=1 and eof and cats(_infile_)='''' then newfilter=1;'; put 'output;'; put 'stop;'; put 'run;'; put 'data _null_;'; put 'set &syslast;'; put 'file &outref mod;'; put 'if newfilter=1 then put ''('';'; put 'else put ''AND ('';'; put 'run;'; put '/* loop through and apply filters for each group membership */'; put '%local fref ds;'; put '%let fref=%mf_getuniquefileref();'; put '%let ds=%mf_getuniquename();'; put 'proc sql noprint;'; put 'select distinct rls_group into : group1 -'; put 'from work.&rlsds;'; put '%do i=1 %to &sqlobs;'; put 'data work.&ds;'; put 'set work.&rlsds;'; put 'where rls_group="&&group&i";'; put 'drop rls_group;'; put 'run;'; put '%mp_filtergenerate(&ds,outref=&fref)'; put 'data _null_;'; put 'infile &fref;'; put 'file &outref mod;'; put 'input;'; put 'if &i>1 and _n_=1 then put '' OR '';'; put 'put _infile_;'; put 'run;'; put '%end;'; put 'data _null_;'; put 'file &outref mod;'; put 'put '')'';'; put 'run;'; put '%end; /* &sqlobs>0 */'; put '%else %do;'; put '%put &sysmacroname: no matching groups;'; put 'data _null_;'; put 'set work.groups;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put '%mp_abort(iftrue= (&syscc>0)'; put ',mac=&sysmacroname'; put ',msg=%str(Row Level Security Generation Error)'; put ')'; put '%end; /* &admin_check=0 */'; put '%put leaving &sysmacroname with the following query:;'; put '%local empty;'; put '%let empty=0;'; put 'data _null_;'; put 'infile &outref end=eof;'; put 'input;'; put 'putlog _infile_;'; put 'if _n_=1 and eof and cats(_infile_)='''' then do;'; put 'put ''1=1'';'; put 'call symputx(''empty'',1,''l'');'; put 'end;'; put 'run;'; put '%if &empty=1 %then %do;'; put 'data _null_;'; put 'file &outref;'; put 'put ''1=1'';'; put 'run;'; put '%end;'; put '%mend mpe_filtermaster;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '%macro dc_createdataset(libds=mm_getlibs);'; put 'data viewdata;'; put 'var1=''Table'';'; put 'var2="&libds";'; put 'var3="does not exist!";'; put 'run;'; put '%mend dc_createdataset;'; put '%macro dc_gettableid(libref='; put ',ds='; put ',outds=);'; put 'data &outds;'; put 'tableuri='''';'; put 'tablename="&ds";'; put 'run;'; put '%mend dc_gettableid;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '%macro mf_getvarcount(libds,typefilter=A'; put ')/*/STORE SOURCE*/;'; put '%local dsid nvars rc outcnt x;'; put '%let dsid=%sysfunc(open(&libds));'; put '%let nvars=.;'; put '%let outcnt=0;'; put '%let typefilter=%upcase(&typefilter);'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &typefilter=A %then %let outcnt=&nvars;'; put '%else %if &nvars>0 %then %do x=1 %to &nvars;'; put '/* increment based on variable type */'; put '%if %sysfunc(vartype(&dsid,&x))=&typefilter %then %do;'; put '%let outcnt=%eval(&outcnt+1);'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put unable to open &libds (rc=&dsid);'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '&outcnt'; put '%mend mf_getvarcount;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/des=''ungraceful abort'' /*STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mf_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%abort;'; put '%mend mf_abort;'; put '/** @endcond */'; put '%macro mf_verifymacvars('; put 'verifyVars /* list of macro variable NAMES */'; put ',makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */'; put ',mAbort=SOFT'; put ')/*/STORE SOURCE*/;'; put '%local verifyIterator verifyVar abortmsg;'; put '%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));'; put '%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));'; put '%if not %symexist(&verifyvar) %then %do;'; put '%let abortmsg= Variable &verifyVar is MISSING;'; put '%goto exit_err;'; put '%end;'; put '%if %length(%trim(&&&verifyVar))=0 %then %do;'; put '%let abortmsg= Variable &verifyVar is EMPTY;'; put '%goto exit_err;'; put '%end;'; put '%if &makeupcase=YES %then %do;'; put '%let &verifyVar=%upcase(&&&verifyvar);'; put '%end;'; put '%end;'; put '%goto exit_success;'; put '%exit_err:'; put '%put &abortmsg;'; put '%mf_abort(iftrue=(&mabort ne SOFT),'; put 'mac=mf_verifymacvars,'; put 'msg=%str(&abortmsg)'; put ')'; put '0'; put '%return;'; put '%exit_success:'; put '1'; put '%mend mf_verifymacvars;'; put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; put 'proc sql;'; put 'create table &libds('; put 'TYPE char(1) label='; put '''Format Type: either N (num fmt), C (char fmt), I (num infmt) or J (char infmt)'''; put ',FMTNAME char(32) label=''Format name'''; put ',FMTROW num label='; put '''CALCULATED Position of record by FMTNAME (reqd for multilabel formats)'''; put ',START char(32767) label=''Starting value for format'''; put '/*'; put 'Keep lengths of START and END the same to avoid this err:'; put '"Start is greater than end: -<."'; put 'Similar usage note: https://support.sas.com/kb/69/330.html'; put '*/'; put ',END char(32767) label=''Ending value for format'''; put ',LABEL char(32767) label=''Format value label'''; put ',MIN num length=3 label=''Minimum length'''; put ',MAX num length=3 label=''Maximum length'''; put ',DEFAULT num length=3 label=''Default length'''; put ',LENGTH num length=3 label=''Format length'''; put ',FUZZ num label=''Fuzz value'''; put ',PREFIX char(2) label=''Prefix characters'''; put ',MULT num label=''Multiplier'''; put ',FILL char(1) label=''Fill character'''; put ',NOEDIT num length=3 label=''Is picture string noedit?'''; put ',SEXCL char(1) label=''Start exclusion'''; put ',EEXCL char(1) label=''End exclusion'''; put ',HLO char(13) label='; put '''More info: https://core.sasjs.io/mddl__sas__cntlout_8sas_source.html'''; put ',DECSEP char(1) label=''Decimal separator'''; put ',DIG3SEP char(1) label=''Three-digit separator'''; put ',DATATYPE char(8) label=''Date/time/datetime?'''; put ',LANGUAGE char(8) label=''Language for date strings'''; put ');'; put '%local lib;'; put '%let libds=%upcase(&libds);'; put '%if %index(&libds,.)=0 %then %let lib=WORK;'; put '%else %let lib=%scan(&libds,1,.);'; put 'proc datasets lib=&lib noprint;'; put 'modify %scan(&libds,-1,.);'; put 'index create'; put 'pk_cntlout=(type fmtname fmtrow)'; put '/nomiss unique;'; put 'quit;'; put '%mend mddl_sas_cntlout;'; put '%macro mp_aligndecimal(var,width=8);'; put '%local tmpvar;'; put '%let tmpvar=%mf_getuniquename(prefix=aligndp);'; put 'length &tmpvar $&width;'; put 'if index(&var,''.'') then do;'; put '&tmpvar=cats(scan(&var,1,''.''));'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar!!''.''!!cats(scan(&var,2,''.''));'; put 'end;'; put 'else do;'; put '&tmpvar=cats(&var);'; put '&tmpvar=right(&tmpvar);'; put '&var=&tmpvar;'; put 'end;'; put 'drop &tmpvar;'; put '%mend mp_aligndecimal;'; put '%macro mp_cntlout('; put 'iftrue=(1=1)'; put ',libcat='; put ',cntlout=work.fmtextract'; put ',fmtlist=0'; put ')/*/STORE SOURCE*/;'; put '%local ddlds cntlds i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%let ddlds=%mf_getuniquename();'; put '%let cntlds=%mf_getuniquename();'; put '%mddl_sas_cntlout(libds=&ddlds)'; put '%if %index(&libcat,-)>0 and %scan(&libcat,2,-)=FC %then %do;'; put '%let libcat=%scan(&libcat,1,-);'; put '%end;'; put 'proc format lib=&libcat cntlout=&cntlds;'; put '%if "&fmtlist" ne "0" and "&fmtlist" ne "" %then %do;'; put 'select'; put '%do i=1 %to %sysfunc(countw(&fmtlist,%str( )));'; put '%scan(&fmtlist,&i,%str( ))'; put '%end;'; put ';'; put '%end;'; put 'run;'; put 'data &cntlout/nonote2err;'; put 'if 0 then set &ddlds;'; put 'set &cntlds;'; put 'by type fmtname notsorted;'; put '/* align the numeric values to avoid overlapping ranges */'; put 'if type in ("I","N") then do;'; put '%mp_aligndecimal(start,width=16)'; put '%mp_aligndecimal(end,width=16)'; put 'end;'; put '/* create row marker. Data cannot be sorted without it! */'; put 'if first.fmtname then fmtrow=1;'; put 'else fmtrow+1;'; put 'run;'; put 'proc sort;'; put 'by type fmtname fmtrow;'; put 'run;'; put 'proc sql;'; put 'drop table &ddlds,&cntlds;'; put '%mend mp_cntlout;'; put '/** @endcond */'; put '%macro mp_getcols(ds, outds=work.cols);'; put '%local dropds;'; put 'proc contents noprint data=&ds'; put 'out=_data_ (keep=name type length label varnum format:);'; put 'run;'; put '%let dropds=&syslast;'; put 'data &outds(keep=name type length varnum format label ddtype fmtname);'; put 'set &dropds(rename=(format=fmtname type=type2));'; put 'name=upcase(name);'; put 'if type2=2 then do;'; put 'length format $49.;'; put 'if fmtname='''' then format=cats(''$'',length,''.'');'; put 'else if formatl=0 then format=cats(fmtname,''.'');'; put 'else format=cats(fmtname,formatl,''.'');'; put 'type=''C'';'; put 'ddtype=''CHARACTER'';'; put 'end;'; put 'else do;'; put 'if fmtname='''' then format=cats(length,''.'');'; put 'else if formatl=0 then format=cats(fmtname,''.'');'; put 'else if formatd=0 then format=cats(fmtname,formatl,''.'');'; put 'else format=cats(fmtname,formatl,''.'',formatd);'; put 'type=''N'';'; put 'if format=:''DATETIME'' or format=:''E8601DT'' or format=:''NLDATM'''; put 'then ddtype=''DATETIME'';'; put 'else if format=:''DATE'' or format=:''DDMMYY'' or format=:''MMDDYY'''; put 'or format=:''YYMMDD'' or format=:''E8601DA'' or format=:''B8601DA'''; put 'or format=:''MONYY'' or format=:''NLDATE'''; put 'then ddtype=''DATE'';'; put 'else if format=:''TIME'' then ddtype=''TIME'';'; put 'else ddtype=''NUMERIC'';'; put 'end;'; put 'if label='''' then label=name;'; put 'run;'; put 'proc sql;'; put 'drop table &dropds;'; put '%mend mp_getcols;'; put '/** @cond */'; put '%macro mf_existfeature(feature'; put ')/*/STORE SOURCE*/;'; put '%let feature=%upcase(&feature);'; put '%local platform;'; put '%let platform=%mf_getplatform();'; put '%if &feature= %then %do;'; put '%put No feature was requested for detection;'; put '%end;'; put '%else %if &feature=COLCONSTRAINTS %then %do;'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=PROCLUA %then %do;'; put '/* https://blogs.sas.com/content/sasdummy/2015/08/03/using-lua-within-your-sas-programs */'; put '%if &platform=SASVIYA %then 1;'; put '%else %if "&sysver"="9.2" or "&sysver"="9.3" %then 0;'; put '%else %if "&SYSVLONG" < "9.04.01M3" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=DBMS_MEMTYPE %then %do;'; put '/* does dbms_memtype exist in dictionary.tables? */'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 0;'; put '%else 1;'; put '%end;'; put '%else %if &feature=EXPORTXLS %then %do;'; put '/* is it possible to PROC EXPORT an excel file? */'; put '%if "%substr(&sysver,1,1)"="4" or "%substr(&sysver,1,1)"="5" %then 1;'; put '%else %if %sysfunc(sysprod(SAS/ACCESS Interface to PC Files)) = 1 %then 1;'; put '%else 0;'; put '%end;'; put '%else %do;'; put '-1'; put '%put &sysmacroname: &feature not found;'; put '%end;'; put '%mend mf_existfeature;'; put '/** @endcond */'; put '/** @cond */'; put '%macro mf_getengine(libref'; put ')/*/STORE SOURCE*/;'; put '%local dsid engnum rc engine;'; put '/* in case the parameter is a libref.tablename, pull off just the libref */'; put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; put '%let dsid=%sysfunc('; put 'open(sashelp.vlibnam(where=(libname="%upcase(&libref)")),i)'; put ');'; put '%if (&dsid ^= 0) %then %do;'; put '%let engnum=%sysfunc(varnum(&dsid,ENGINE));'; put '%let rc=%sysfunc(fetch(&dsid));'; put '%let engine=%sysfunc(getvarc(&dsid,&engnum));'; put '%put &libref. ENGINE is &engine.;'; put '%let rc= %sysfunc(close(&dsid));'; put '%end;'; put '%upcase(&engine)'; put '%mend mf_getengine;'; put '/** @endcond */'; put '%macro mf_getschema(libref'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum rc schema;'; put '/* in case the parameter is a libref.tablename, pull off just the libref */'; put '%let libref = %upcase(%scan(&libref, 1, %str(.)));'; put '%let dsid=%sysfunc(open(sashelp.vlibnam(where=('; put 'libname="%upcase(&libref)" and sysname=''Schema/Owner'''; put ')),i));'; put '%if (&dsid ^= 0) %then %do;'; put '%let vnum=%sysfunc(varnum(&dsid,SYSVALUE));'; put '%let rc=%sysfunc(fetch(&dsid));'; put '%let schema=%sysfunc(getvarc(&dsid,&vnum));'; put '%put &libref. schema is &schema.;'; put '%let rc= %sysfunc(close(&dsid));'; put '%end;'; put '&schema'; put '%mend mf_getschema;'; put '/** @endcond */'; put '%macro mf_isblank(param'; put ')/*/STORE SOURCE*/;'; put '%sysevalf(%superq(param)=,boolean)'; put '%mend mf_isblank;'; put '%macro mp_dropmembers('; put 'list /* space separated list of datasets / views */'; put ',libref=WORK /* can only drop from a single library at a time */'; put ',iftrue=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%if %mf_isblank(&list) %then %do;'; put '%put NOTE: nothing to drop!;'; put '%return;'; put '%end;'; put 'proc datasets lib=&libref nolist;'; put 'delete &list;'; put 'delete &list /mtype=view;'; put 'run;'; put '%mend mp_dropmembers;'; put '%macro mp_getconstraints(lib=WORK'; put ',ds='; put ',outds=mp_getconstraints'; put ',mdebug=0'; put ')/*/STORE SOURCE*/;'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '/**'; put '* Cater for environments where sashelp.vcncolu is not available'; put '*/'; put '%if %sysfunc(exist(sashelp.vcncolu,view))=0 %then %do;'; put 'proc sql;'; put 'create table &outds('; put 'libref char(8)'; put ',TABLE_NAME char(32)'; put ',constraint_type char(8) label=''Constraint Type'''; put ',constraint_name char(32) label=''Constraint Name'''; put ',column_name char(32) label=''Column'''; put ',constraint_order num'; put ');'; put '%return;'; put '%end;'; put '/**'; put '* Neither dictionary tables nor sashelp provides a constraint order column,'; put '* however they DO arrive in the correct order. So, create the col.'; put '**/'; put '%local vw;'; put '%let vw=%mf_getuniquename(prefix=mp_getconstraints_vw_);'; put 'data &vw /view=&vw;'; put 'set sashelp.vcncolu;'; put 'where table_catalog="&lib";'; put '/* use retain approach to reset the constraint order with each constraint */'; put 'length tmp $1000;'; put 'retain tmp;'; put 'drop tmp;'; put 'if tmp ne catx(''|'',table_catalog,table_name,constraint_name) then do;'; put 'constraint_order=1;'; put 'end;'; put 'else constraint_order+1;'; put 'tmp=catx(''|'',table_catalog, table_name,constraint_name);'; put 'run;'; put '/* must use SQL as proc datasets does not support length changes */'; put 'proc sql noprint;'; put 'create table &outds as'; put 'select upcase(a.TABLE_CATALOG) as libref'; put ',upcase(a.TABLE_NAME) as TABLE_NAME'; put ',a.constraint_type'; put ',a.constraint_name'; put ',b.column_name'; put ',b.constraint_order'; put 'from dictionary.TABLE_CONSTRAINTS a'; put 'left join &vw b'; put 'on upcase(a.TABLE_CATALOG)=upcase(b.TABLE_CATALOG)'; put 'and upcase(a.TABLE_NAME)=upcase(b.TABLE_NAME)'; put 'and a.constraint_name=b.constraint_name'; put '/**'; put '* We cannot apply this clause to the underlying dictionary table. See:'; put '* https://communities.sas.com/t5/SAS-Programming/Unexpected-Where-Clause-behaviour-in-dictionary-TABLE/m-p/771554#M244867'; put '* cannot use`where calculated libref="&lib"` either as it will STILL execute'; put '* all the underlying constraint queries, causing exception errors in some'; put '* cases: https://github.com/sasjs/core/issues/283'; put '*/'; put 'where a.TABLE_CATALOG="&lib"'; put '%if "&ds" ne "" %then %do;'; put 'and upcase(a.TABLE_NAME)="&ds"'; put 'and upcase(b.TABLE_NAME)="&ds"'; put '%end;'; put 'order by libref, table_name, constraint_name, constraint_order'; put ';'; put '/* tidy up */'; put '%mp_dropmembers('; put '&vw,'; put 'iftrue=(&mdebug=0)'; put ')'; put '%mend mp_getconstraints;'; put '%macro mp_getpk('; put 'lib,'; put 'ds=0,'; put 'outds=work.mp_getpk,'; put 'mdebug=0'; put ')/*/STORE SOURCE*/;'; put '%local engine schema ds1 ds2 ds3 dsn tabs1 tabs2 sum pk4sure pkdefault finalpks'; put 'pkfromindex;'; put '%let lib=%upcase(&lib);'; put '%let ds=%upcase(&ds);'; put '%let engine=%mf_getengine(&lib);'; put '%let schema=%mf_getschema(&lib);'; put '%let ds1=%mf_getuniquename(prefix=getpk_ds1);'; put '%let ds2=%mf_getuniquename(prefix=getpk_ds2);'; put '%let ds3=%mf_getuniquename(prefix=getpk_ds3);'; put '%let tabs1=%mf_getuniquename(prefix=getpk_tabs1);'; put '%let tabs2=%mf_getuniquename(prefix=getpk_tabs2);'; put '%let sum=%mf_getuniquename(prefix=getpk_sum);'; put '%let pk4sure=%mf_getuniquename(prefix=getpk_pk4sure);'; put '%let pkdefault=%mf_getuniquename(prefix=getpk_pkdefault);'; put '%let pkfromindex=%mf_getuniquename(prefix=getpk_pkfromindex);'; put '%let finalpks=%mf_getuniquename(prefix=getpk_finalpks);'; put '%local dbg;'; put '%if &mdebug=1 %then %do;'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%end;'; put '%else %let dbg=*;'; put 'proc sql;'; put 'create table &ds1 as'; put 'select libname as libref'; put ',upcase(memname) as dsn'; put ',memtype'; put ',upcase(name) as name'; put ',type'; put ',length'; put ',varnum'; put ',label'; put ',format'; put ',idxusage'; put ',notnull'; put 'from dictionary.columns'; put 'where upcase(libname)="&lib"'; put '%if &ds ne 0 %then %do;'; put 'and upcase(memname)="&ds"'; put '%end;'; put ';'; put '%if &engine=SQLSVR %then %do;'; put 'proc sql;'; put 'connect using &lib;'; put 'create table work.&ds2 as'; put 'select * from connection to &lib('; put 'select'; put 's.name as SchemaName,'; put 't.name as memname,'; put 'tc.name as name,'; put 'ic.key_ordinal as KeyOrderNr'; put 'from'; put 'sys.schemas s'; put 'inner join sys.tables t on s.schema_id=t.schema_id'; put 'inner join sys.indexes i on t.object_id=i.object_id'; put 'inner join sys.index_columns ic on i.object_id=ic.object_id'; put 'and i.index_id=ic.index_id'; put 'inner join sys.columns tc on ic.object_id=tc.object_id'; put 'and ic.column_id=tc.column_id'; put 'where i.is_primary_key=1'; put 'and s.name=%str(%'')&schema%str(%'')'; put 'order by t.name, ic.key_ordinal ;'; put ');disconnect from &lib;'; put 'create table &ds3 as'; put 'select a.*'; put ',case when b.name is not null then 1 else 0 end as pk_ind'; put 'from work.&ds1 a'; put 'left join work.&ds2 b'; put 'on a.dsn=b.memname'; put 'and upcase(a.name)=upcase(b.name)'; put 'order by libref,dsn;'; put '%end;'; put '%else %do;'; put '%if &ds = 0 %then %let dsn=;'; put '/* get all constraints, in constraint order*/'; put '%mp_getconstraints(lib=&lib,ds=&dsn,outds=work.&ds2)'; put '/* extract cols that are clearly primary keys */'; put 'proc sql;'; put 'create table &pk4sure as'; put 'select libref'; put ',table_name'; put ',constraint_name'; put ',constraint_order'; put ',column_name as name'; put 'from work.&ds2'; put 'where constraint_type=''PRIMARY'''; put 'order by 1,2,3,4;'; put '/* extract unique constraints where every col is also NOT NULL */'; put 'proc sql;'; put 'create table &sum as'; put 'select a.libref'; put ',a.table_name'; put ',a.constraint_name'; put ',count(a.column_name) as unq_cnt'; put ',count(b.column_name) as nul_cnt'; put 'from work.&ds2(where=(constraint_type =''UNIQUE'')) a'; put 'left join work.&ds2(where=(constraint_type =''NOT NULL'')) b'; put 'on a.libref=b.libref'; put 'and a.table_name=b.table_name'; put 'and a.column_name=b.column_name'; put 'group by 1,2,3'; put 'having unq_cnt=nul_cnt;'; put '/* extract cols from the relevant unique constraints */'; put 'create table &pkdefault as'; put 'select a.libref'; put ',a.table_name'; put ',a.constraint_name'; put ',b.constraint_order'; put ',b.column_name as name'; put 'from &sum a'; put 'left join &ds2(where=(constraint_type =''UNIQUE'')) b'; put 'on a.libref=b.libref'; put 'and a.table_name=b.table_name'; put 'and a.constraint_name=b.constraint_name'; put 'order by 1,2,3,4;'; put '/* extract cols from the relevant unique INDEXES */'; put 'create table &pkfromindex as'; put 'select libname as libref'; put ',memname as table_name'; put ',indxname as constraint_name'; put ',indxpos as constraint_order'; put ',name'; put 'from dictionary.indexes'; put 'where nomiss=''yes'' and unique=''yes'' and upcase(libname)="&lib"'; put '%if &ds ne 0 %then %do;'; put 'and upcase(memname)="&ds"'; put '%end;'; put 'order by 1,2,3,4;'; put '/* create one table */'; put 'data &finalpks;'; put 'set &pkdefault &pk4sure &pkfromindex;'; put 'pk_ind=1;'; put '/* if there are multiple unique constraints, take the first */'; put 'by libref table_name constraint_name;'; put 'retain keepme;'; put 'if first.table_name then keepme=1;'; put 'if first.constraint_name and not first.table_name then keepme=0;'; put 'if keepme=1;'; put 'run;'; put '/* join back to starting table */'; put 'proc sql;'; put 'create table &ds3 as'; put 'select a.*'; put ',b.constraint_order'; put ',case when b.pk_ind=1 then 1 else 0 end as pk_ind'; put 'from work.&ds1 a'; put 'left join work.&finalpks b'; put 'on a.libref=b.libref'; put 'and a.dsn=b.table_name'; put 'and upcase(a.name)=upcase(b.name)'; put 'order by libref,dsn,constraint_order;'; put '%end;'; put '/* prepare tables */'; put 'proc sql;'; put 'create table work.&tabs1 as select'; put 'libname as libref'; put ',upcase(memname) as dsn'; put ',memtype'; put '%if %mf_existfeature(DBMS_MEMTYPE)=1 %then %do;'; put ',dbms_memtype'; put '%end;'; put '%else %do;'; put ',''n/a'' as dbms_memtype format=$32.'; put '%end;'; put ',typemem'; put ',memlabel'; put ',nvar'; put ',compress'; put 'from dictionary.tables'; put 'where upcase(libname)="&lib"'; put '%if &ds ne 0 %then %do;'; put 'and upcase(memname)="&ds"'; put '%end;'; put ';'; put 'data &tabs2;'; put 'set &ds3;'; put 'length pk_fields $512;'; put 'retain pk_fields;'; put 'by libref dsn constraint_order;'; put 'if first.dsn then pk_fields='''';'; put 'if pk_ind=1 then pk_fields=catx('' '',pk_fields,name);'; put 'if last.dsn then output;'; put 'run;'; put 'proc sql;'; put 'create table &outds as'; put 'select a.libref'; put ',a.dsn'; put ',a.memtype'; put ',a.dbms_memtype'; put ',a.typemem'; put ',a.memlabel'; put ',a.nvar'; put ',a.compress'; put ',b.pk_fields'; put 'from work.&tabs1 a'; put 'left join work.&tabs2 b'; put 'on a.libref=b.libref'; put 'and a.dsn=b.dsn;'; put '/* tidy up */'; put '%mp_dropmembers('; put '&ds1 &ds2 &ds3 &dsn &tabs1 &tabs2 &sum &pk4sure &pkdefault &finalpks,'; put 'iftrue=(&mdebug=0)'; put ')'; put '%mend mp_getpk;'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '%macro mf_getvarlist(libds'; put ',dlm=%str( )'; put ',quote=no'; put ',typefilter=A'; put ')/*/STORE SOURCE*/;'; put '/* declare local vars */'; put '%local outvar dsid nvars x rc dlm q var vtype;'; put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */'; put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));'; put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));'; put '/* open dataset in macro */'; put '%let dsid=%sysfunc(open(&libds));'; put '%if &dsid %then %do;'; put '%let nvars=%sysfunc(attrn(&dsid,NVARS));'; put '%if &nvars>0 %then %do;'; put '/* add variables with supplied delimeter */'; put '%do x=1 %to &nvars;'; put '/* get variable type */'; put '%let vtype=%sysfunc(vartype(&dsid,&x));'; put '%if &vtype=&typefilter or &typefilter=A %then %do;'; put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;'; put '%if &var=&q&q %then %do;'; put '%put &sysmacroname: Empty column found in &libds!;'; put '%let var=&q. &q.;'; put '%end;'; put '%if %quote(&outvar)=%quote() %then %let outvar=&var;'; put '%else %let outvar=&outvar.&dlm.&var.;'; put '%end;'; put '%end;'; put '%end;'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: Unable to open &libds (rc=&dsid);'; put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());'; put '%let rc=%sysfunc(close(&dsid));'; put '%end;'; put '%do;%unquote(&outvar)%end;'; put '%mend mf_getvarlist;'; put '%macro mf_getvartype(libds /* two level name */'; put ', var /* variable name from which to return the type */'; put ')/*/STORE SOURCE*/;'; put '%local dsid vnum vtype rc;'; put '/* Open dataset */'; put '%let dsid = %sysfunc(open(&libds));'; put '%if &dsid. > 0 %then %do;'; put '/* Get variable number */'; put '%let vnum = %sysfunc(varnum(&dsid, &var));'; put '/* Get variable type (C/N) */'; put '%if(&vnum. > 0) %then %let vtype = %sysfunc(vartype(&dsid, &vnum.));'; put '%else %do;'; put '%put NOTE: Variable &var does not exist in &libds;'; put '%let vtype = %str( );'; put '%end;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: dataset &libds not opened! (rc=&dsid);'; put '%put &sysmacroname: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '/* Close dataset */'; put '%let rc = %sysfunc(close(&dsid));'; put '/* Return variable type */'; put '&vtype'; put '%mend mf_getvartype;'; put '%macro mf_mkdir(dir'; put ')/*/STORE SOURCE*/;'; put '%local lastchar child parent;'; put '%let lastchar = %substr(&dir, %length(&dir));'; put '%if (%bquote(&lastchar) eq %str(:)) %then %do;'; put '/* Cannot create drive mappings */'; put '%return;'; put '%end;'; put '%if (%bquote(&lastchar)=%str(/)) or (%bquote(&lastchar)=%str(\)) %then %do;'; put '/* last char is a slash */'; put '%if (%length(&dir) eq 1) %then %do;'; put '/* one single slash - root location is assumed to exist */'; put '%return;'; put '%end;'; put '%else %do;'; put '/* strip last slash */'; put '%let dir = %substr(&dir, 1, %length(&dir)-1);'; put '%end;'; put '%end;'; put '%if (%sysfunc(fileexist(%bquote(&dir))) = 0) %then %do;'; put '/* directory does not exist so prepare to create */'; put '/* first get the childmost directory */'; put '%let child = %scan(&dir, -1, %str(/\:));'; put '/*'; put 'If child name = path name then there are no parents to create. Else'; put 'they must be recursively scanned.'; put '*/'; put '%if (%length(&dir) gt %length(&child)) %then %do;'; put '%let parent = %substr(&dir, 1, %length(&dir)-%length(&child));'; put '%mf_mkdir(&parent)'; put '%end;'; put '/*'; put 'Now create the directory. Complain loudly of any errs.'; put '*/'; put '%let dname = %sysfunc(dcreate(&child, &parent));'; put '%if (%bquote(&dname) eq ) %then %do;'; put '%put %str(ERR)OR: could not create &parent + &child;'; put '%abort cancel;'; put '%end;'; put '%else %do;'; put '%put Directory created: &dir;'; put '%end;'; put '%end;'; put '/* exit quietly if directory did exist.*/'; put '%mend mf_mkdir;'; put '%macro mp_searchdata(lib='; put ',ds='; put ',string= /* the query will use a contains (?) operator */'; put ',numval= /* numeric must match exactly */'; put ',outloc=0'; put ',outlib=MPSEARCH'; put ',outobs=-1'; put ',filter_text=%str(1=1)'; put ')/*/STORE SOURCE*/;'; put '%local table_list table table_num table colnum col start_tm check_tm vars type'; put 'coltype;'; put '%put process began at %sysfunc(datetime(),datetime19.);'; put '%if &syscc ge 4 %then %do;'; put '%put %str(WAR)NING: SYSCC=&syscc on macro entry;'; put '%return;'; put '%end;'; put '%if &string = %then %let type=N;'; put '%else %let type=C;'; put '%if "&outloc"="0" %then %do;'; put '%let outloc=%sysfunc(pathname(work))/%mf_getuniquename();'; put '%end;'; put '%mf_mkdir(&outloc)'; put 'libname &outlib "&outloc";'; put '/* get the list of tables in the library */'; put 'proc sql noprint;'; put 'select distinct memname into: table_list separated by '' '''; put 'from dictionary.tables'; put 'where upcase(libname)="%upcase(&lib)"'; put '%if &ds ne %then %do;'; put 'and upcase(memname)=%upcase("&ds")'; put '%end;'; put ';'; put '/* check that we have something to check */'; put '%if %length(&table_list)=0 %then %put library &lib contains no tables!;'; put '/* loop through each table */'; put '%else %do table_num=1 %to %sysfunc(countw(&table_list,%str( )));'; put '%let table=%scan(&table_list,&table_num,%str( ));'; put '%let vars=%mf_getvarlist(&lib..&table);'; put '%if %length(&vars)=0 %then %do;'; put '%put NO COLUMNS IN &lib..&table! This will be skipped.;'; put '%end;'; put '%else %do;'; put '%let check_tm=%sysfunc(datetime());'; put '/* prep input */'; put 'data &outlib..&table;'; put 'set &lib..&table;'; put 'where %unquote(&filter_text) and ( 0'; put '/* loop through columns */'; put '%do colnum=1 %to %sysfunc(countw(&vars,%str( )));'; put '%let col=%scan(&vars,&colnum,%str( ));'; put '%let coltype=%mf_getvartype(&lib..&table,&col);'; put '%if &type=C and &coltype=C %then %do;'; put '/* if a char column, see if it contains the string */'; put 'or ("&col"n ? "&string")'; put '%end;'; put '%else %if &type=N and &coltype=N %then %do;'; put '/* if numeric match exactly */'; put 'or ("&col"n = &numval)'; put '%end;'; put '%end;'; put ');'; put '%if &outobs>-1 %then %do;'; put 'if _n_ > &outobs then stop;'; put '%end;'; put 'run;'; put '%put Search query for &table took'; put '%sysevalf(%sysfunc(datetime())-&check_tm) seconds;'; put '%if &syscc ne 0 %then %do;'; put '%put %str(ERR)ROR: SYSCC=&syscc when processing &lib..&table;'; put '%return;'; put '%end;'; put '%if %mf_nobs(&outlib..&table)=0 %then %do;'; put 'proc sql;'; put 'drop table &outlib..&table;'; put '%end;'; put '%end;'; put '%end;'; put '%put process finished at %sysfunc(datetime(),datetime19.);'; put '%mend mp_searchdata;'; put '%macro mp_validatecol(incol,rule,outcol);'; put '/* tempcol is given a unique name with every invocation */'; put '%local tempcol;'; put '%let tempcol=%mf_getuniquename();'; put '%if &rule=ISINT %then %do;'; put '&outcol=0;'; put 'if not missing(&incol) then do;'; put '&tempcol=input(&incol,?? best32.);'; put 'if not missing(&tempcol) then if mod(&tempcol,1)=0 then &outcol=1;'; put 'end;'; put 'drop &tempcol;'; put '%end;'; put '%else %if &rule=ISNUM %then %do;'; put '/*'; put 'credit SOREN LASSEN'; put 'https://sasmacro.blogspot.com/2009/06/welcome-isnum-macro.html'; put '*/'; put '&tempcol=input(&incol,?? best32.);'; put 'if missing(&tempcol) then &outcol=0;'; put 'else &outcol=1;'; put 'drop &tempcol;'; put '%end;'; put '%else %if &rule=LIBDS %then %do;'; put '/* match libref.dataset */'; put 'if _n_=1 then do;'; put 'retain &tempcol;'; put '&tempcol=prxparse(''/^[_a-z]\w{0,7}\.[_a-z]\w{0,31}$/i'');'; put 'if missing(&tempcol) then do;'; put 'putlog ''ERR'' +(-1) "OR: Invalid expression for LIBDS";'; put 'stop;'; put 'end;'; put 'drop &tempcol;'; put 'end;'; put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; put 'else &outcol=0;'; put '%end;'; put '%else %if &rule=FORMAT %then %do;'; put '/* match valid format - regex could probably be improved */'; put 'if _n_=1 then do;'; put 'retain &tempcol;'; put '&tempcol=prxparse(''/^[_a-z\$]\w{0,31}\.[0-9]*$/i'');'; put 'if missing(&tempcol) then do;'; put 'putlog ''ERR'' +(-1) "OR: Invalid expression for FORMAT";'; put 'stop;'; put 'end;'; put 'drop &tempcol;'; put 'end;'; put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; put 'else &outcol=0;'; put '%end;'; put '%mend mp_validatecol;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file viewdata.sas'; put '@brief Provide the raw view of the data'; put '@details Pass a LIBDS and FILTER_RK to return a dataset for viewing.'; put 'VIEW datasets include all columns / rows (unlike EDIT, which are filtered'; put 'for current records and don''t include the SCD2 etc cols).'; put '

Service Inputs

'; put '
SASCONTROLTABLE
'; put '|LIBDS:$41.|FILTER_RK:$5.|SEARCHTYPE:$4|SEARCHVAL:$1000'; put '|---|---|---|---'; put '|DC258467.MPE_X_TEST|-1|CHAR|Some String|'; put '

Service Outputs

'; put '
cols
'; put '@li DDTYPE'; put '@li FORMAT'; put '@li LABEL'; put '@li LENGTH'; put '@li NAME'; put '@li TYPE'; put '@li VARNUM'; put '
sasparams
'; put '@li FILTER_TEXT'; put '@li NOBS'; put '@li PK_FIELDS - string seperated list of primary key fields, if they exist'; put '@li TABLENAME'; put '@li TABLEURI'; put '@li VARS'; put '
versions
'; put 'history of DC versions for this particular table'; put '
viewdata
'; put 'The raw data from the target table.'; put '

SAS Macros

'; put '@li dc_assignlib.sas'; put '@li dc_createdataset.sas'; put '@li dc_gettableid.sas'; put '@li mf_existds.sas'; put '@li mf_getvarcount.sas'; put '@li mf_nobs.sas'; put '@li mf_verifymacvars.sas'; put '@li mp_abort.sas'; put '@li mp_cntlout.sas'; put '@li mp_getcols.sas'; put '@li mp_getpk.sas'; put '@li mp_jsonout.sas'; put '@li mp_searchdata.sas'; put '@li mp_validatecol.sas'; put '@li mpe_columnlevelsecurity.sas'; put '@li mpe_dsmeta.sas'; put '@li mpe_getversions.sas'; put '@li mpe_filtermaster.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '/* configure macvars */'; put '%global LIBDS FILTER_RK SEARCHVAL SEARCHTYPE FMT_IND;'; put '%let maxrows=250;'; put '/* avoid code injection */'; put '%let FMT_IND=0;'; put '%let SEARCHTYPE=;'; put '%let SEARCHVAL=;'; put '%let FILTER_RK=;'; put '%let LIBDS=;'; put '/**'; put '* Validate inputs'; put '*/'; put 'data work.intest;'; put 'length libds $41 filter_rk 8. searchval $100 searchtype $4;'; put 'set work.SASCONTROLTABLE;'; put 'call symputx(''orig_libds'',libds);'; put '/* validate filter_rk */'; put 'if filter_rk le 0 then filter_rk=-1;'; put '/* check if the request is for a format catalog */'; put 'if substr(cats(reverse(libds)),1,3)=:''CF-'' then do;'; put 'libds=scan(libds,1,''-'');'; put 'putlog "Format Catalog Captured";'; put 'call symputx(''fmt_ind'',1);'; put 'end;'; put 'putlog (_all_)(=);'; put '/* validate libds */'; put '%mp_validatecol(LIBDS,LIBDS,is_libds)'; put 'if searchtype in (''CHAR'',''NUM'') then do;'; put 'searchval=tranwrd(searchval,''%'','''');'; put 'searchval=tranwrd(searchval,''&'','''');'; put 'searchval=tranwrd(searchval,'';'','''');'; put 'searchval=tranwrd(searchval,''"'','''');'; put 'call symputx(''searchtype'',searchtype);'; put 'call symputx(''searchval'',searchval);'; put 'end;'; put 'else if searchtype not in ('''',''NONE'') then do;'; put 'putlog ''ERR'' ''OR: Invalid searchtype:'' searchtype;'; put 'stop;'; put 'end;'; put 'if is_libds=0 then do;'; put 'putlog ''ERR'' ''OR: Invalid libds:'' libds;'; put 'stop;'; put 'end;'; put 'else do;'; put 'call symputx(''filter_rk'',filter_rk);'; put 'call symputx(''libds'',libds);'; put 'end;'; put 'output;'; put 'stop;'; put 'run;'; put '%mp_abort(iftrue= (%mf_verifymacvars(libds filter_rk fmt_ind)=0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem with macro inputs)'; put ')'; put '%mp_abort(iftrue= (%mf_nobs(work.intest)=0)'; put ',mac=&_program'; put ',msg=%str(Some err with service inputs)'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '/**'; put '* assign the Library'; put '*/'; put '%dc_assignlib(READ,%scan(&LIBDS,1,.))'; put '/* abort if looking for a format and the catalog doesn''t exist */'; put '%mp_abort(iftrue= (&fmt_ind=1 and %sysfunc(exist(&libds,CATALOG))=0)'; put ',mac=&_program..sas'; put ',msg=%str(Catalog &libds does not exist!)'; put ')'; put '/**'; put 'check if dataset can actually be opened - as library may exist but it may not'; put 'be possible to assign, and even if it can, the physical table may not exist'; put '**/'; put 'data _null_;'; put 'if &fmt_ind=0 then do;'; put 'dsid=open("&libds");'; put 'rc=close(dsid);'; put 'end;'; put 'else dsid=42;'; put 'call symputx(''existds'',dsid,''l'');'; put 'putlog ''dataset exists check:'' dsid;'; put 'run;'; put '/**'; put '* get the data'; put '*/'; put '%global dsobs;'; put '%let dsobs=0;'; put '%macro x();'; put '%if &existds>0 %then %do;'; put '%if &fmt_ind=1 %then %do;'; put '/* export format and point the libds to the output table from here on */'; put '%mp_cntlout('; put 'libcat=&libds'; put ',fmtlist=0'; put ',cntlout=work.fmtextract'; put ')'; put '%let libds=WORK.FMTEXTRACT;'; put 'proc datasets lib=work noprint;'; put 'modify FMTEXTRACT;'; put 'index create'; put 'pk_cntlout=(type fmtname fmtrow)'; put '/nomiss unique;'; put 'quit;'; put '%end;'; put 'proc sql noprint;'; put 'select count(*) into: dsobs from &libds;'; put '%put preparing query;'; put '%mpe_filtermaster(VIEW,&libds,'; put 'dclib=&mpelib,'; put 'filter_rk=&filter_rk,'; put 'outref=filtref,'; put 'outds=work.query'; put ')'; put '%put printing generated filterquery:;'; put 'data _null_;'; put 'infile filtref;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%if &searchtype=NONE or "%trim(&searchtype) " = " " %then %do;'; put '/* get row count */'; put 'filename rows temp;'; put 'data _null_;'; put 'file rows;'; put 'infile filtref end=eof;'; put 'input;'; put 'if _n_=1 then do;'; put 'put ''proc sql;'';'; put 'put "select count(*) into: dsobs from &libds where";'; put 'end;'; put 'put _infile_;'; put 'if eof then put '';'';'; put 'run;'; put 'data _null_;'; put 'infile rows;'; put 'input;'; put 'putlog _infile_;'; put 'run;'; put '%inc rows;'; put '/* send actual data, filtered and row-capped */'; put 'data work.viewdata;'; put 'set &libds;'; put 'where %inc filtref;;'; put 'if _n_>&maxrows then stop;'; put 'run;'; put '%if %mf_nobs(work.viewdata)=0 %then %do;'; put 'data work.viewdata;'; put '/* send empty row if empty table to help with hot rendering */'; put 'output;'; put 'set work.viewdata;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do;'; put 'data work.vwsearch/view=work.vwsearch;'; put 'set &libds;'; put 'where %inc filtref;;'; put 'run;'; put '%if %upcase(&searchtype)=CHAR %then %do;'; put '%mp_searchdata(lib=work'; put ',ds=vwsearch'; put ',string=%superq(searchval)'; put ',outobs=&maxrows'; put ')'; put '%end;'; put '%else %if %upcase(&searchtype)=NUM %then %do;'; put '%mp_searchdata(lib=work'; put ',ds=vwsearch'; put ',numval=%superq(searchval)'; put ',outobs=&maxrows'; put ')'; put '%end;'; put '%if %mf_existds(libds=MPSEARCH.vwsearch) %then %do;'; put '%let dsobs=%mf_nobs(MPSEARCH.vwsearch);'; put 'data viewdata;'; put 'set MPSEARCH.vwsearch;'; put 'if _n_<&maxrows;'; put 'run;'; put '%end;'; put '%else %do;'; put '%let dsobs=0;'; put 'data viewdata;'; put 'set &libds;'; put 'stop;'; put 'run;'; put '%end;'; put '%end;'; put '%end;'; put '%else %do;'; put '/* physical table is not accessible so create from metatadata definition */'; put '%dc_createdataset(libds=&libds,outds=viewdata)'; put 'data viewData;'; put 'output;'; put 'set viewdata;'; put 'run;'; put '/* make filtref / work.query / work.groups to avoid downstream issues */'; put 'filename filtref temp;'; put 'data work.query;'; put 'file filtref;'; put 'x=0;'; put 'put x;'; put 'run;'; put 'data work.groups;'; put 'length groupuri groupname $32 groupdesc $128 ;'; put 'call missing (of _all_);'; put 'output;'; put 'stop;'; put 'run;'; put '%end;'; put '%mend x; %x()'; put '/* apply column level security */'; put '%mpe_columnlevelsecurity(%scan(&libds,1,.),%scan(&libds,2,.),work.viewdata'; put ',mode=VIEW'; put ',clsds=&mpelib..mpe_column_level_security'; put ',groupds=work.groups /* was created in mpe_filtermaster */'; put ',outds=work.viewdata2'; put ',outmeta=work.cls_rules'; put ')'; put '/* get table uri (if sas 9) to enable linking direct to lineage */'; put '%dc_gettableid(libref=%scan(&libds,1,.)'; put ',ds=%scan(&libds,2,.)'; put ',outds=work.parambase'; put ')'; put 'data _null_;'; put 'infile filtref end=eof;'; put 'input;'; put 'length filter_text $32767;'; put 'retain filter_text;'; put 'filter_text=catx('' '',filter_text,_infile_);'; put 'if eof then do;'; put 'if cats(filter_text)=''1=1'' then filter_text='''';'; put 'call symputx(''filter_text'',filter_text);'; put 'end;'; put 'run;'; put '%mp_getpk(%scan(&libds,1,.), ds=%scan(&libds,2,.), outds=work.pk_fields)'; put '%let pk_fields=;'; put 'data _null_;'; put 'set work.pk_fields;'; put 'call symputx(''pk_fields'',pk_fields);'; put 'run;'; put 'data work.sasparams;'; put 'set work.parambase;'; put 'format FILTER_TEXT $32767.;'; put 'FILTER_TEXT=symget(''FILTER_TEXT'');'; put 'length PK_FIELDS $512;'; put 'PK_FIELDS=symget(''PK_FIELDS'');'; put 'nobs=&dsobs;'; put 'vars=%mf_getvarcount(viewdata);'; put 'maxrows=&maxrows;'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%mp_getcols(&libds, outds=cols)'; put '%mpe_dsmeta(&orig_libds, outds=dsmeta)'; put '%mpe_getversions(&mpelib,'; put '%scan(&orig_libds,1,.),'; put '%scan(&orig_libds,2,.),'; put 'outds=versions'; put ')'; put '%webout(OPEN)'; put '%webout(OBJ,cls_rules)'; put '%webout(OBJ,cols)'; put '%webout(OBJ,dsmeta)'; put '%webout(OBJ,query)'; put '%webout(OBJ,sasparams)'; put '%webout(OBJ,versions)'; put '%webout(OBJ,viewData2,fmt=Y,missing=STRING,showmeta=YES,dslabel=viewdata)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=viewlibarray; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mc,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '%macro dc_getlibs(outds=mm_getlibs);'; put 'proc sql;'; put 'create table &outds as'; put 'select distinct libname as LibraryRef'; put ',libname as LibraryName length=256'; put ',engine'; put ','''' as libraryid length=17'; put 'from dictionary.libnames'; put 'where libname not in (''WORK'',''SASUSER'');'; put 'insert into &syslast values ("&DC_LIBREF", "&DC_LIBNAME",'''',''V9'');'; put '%mend dc_getlibs;'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=N,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug'; put 'sasjs_tables;'; put '%local i tempds jsonengine;'; put '/* see https://github.com/sasjs/core/issues/41 */'; put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;'; put '%else %let jsonengine=DATASTEP;'; put '%if &action=FETCH %then %do;'; put '%if %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '/* now read in the data */'; put '%do i=1 %to &_webin_file_count;'; put '%if &_webin_file_count=1 %then %do;'; put '%let _webin_fileref1=&_webin_fileref;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put 'data _null_;'; put 'infile &&_webin_fileref&i termstr=crlf;'; put 'input;'; put 'call symputx(''input_statement'',_infile_);'; put 'putlog "&&_webin_name&i input statement: " _infile_;'; put 'stop;'; put 'data &&_webin_name&i;'; put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';'; put 'input &input_statement;'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put '%end;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* fix encoding */'; put 'OPTIONS NOBOMFILE;'; put '/**'; put '* check xengine type to avoid the below err message:'; put '* > Function is only valid for filerefs using the CACHE access method.'; put '*/'; put 'data _null_;'; put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));'; put 'if xengine=''STREAM'' then do;'; put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");'; put 'end;'; put 'run;'; put '/* setup json */'; put 'data _null_;file &fref encoding=''utf-8'';'; put '%if %str(&_debug) ge 131 %then %do;'; put 'put ''>>weboutBEGIN<<'';'; put '%end;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '/* To avoid issues with _webout on EBI we use a temporary file */'; put 'filename _sjsref temp lrecl=131068;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* if debug mode, send back first XX records of each work table also */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file _sjsref mod encoding=''utf-8'';'; put 'put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file _sjsref mod encoding=''utf-8'';'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file _sjsref mod encoding=''utf-8'';'; put 'put "}";'; put '%end;'; put 'data _null_; file _sjsref mod encoding=''utf-8'';'; put 'put "}";'; put 'run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file _sjsref mod encoding=''utf-8'';'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'put ",""SYSENCODING"" : ""&sysencoding"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}" @;'; put '%if %str(&_debug) ge 131 %then %do;'; put 'put ''>>weboutEND<<'';'; put '%end;'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjsref lrecl=1 recfm=n;'; put 'file &fref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjsref clear;'; put '%end;'; put '%mend mm_webout;'; put '%macro mf_existds(libds'; put ')/*/STORE SOURCE*/;'; put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;'; put '%else 1;'; put '%mend mf_existds;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file viewlibarray.sas'; put '@brief List the libraries for view access'; put '@details'; put '

SAS Macros

'; put '@li dc_getlibs.sas'; put '@li mp_abort.sas'; put '@li mf_getuser.sas'; put '@li mpe_getgroups.sas'; put '@li mm_webout.sas'; put '@li mf_existds.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%let keepvars=libraryref libraryname;'; put 'data _null_;'; put 'length keepvars $32;'; put 'set %sysfunc(ifc(%mf_existds(iwant),iwant,_null_));'; put 'call symputx(''keepvars'',keepvars);'; put 'run;'; put '/**'; put '* get full list of libraries'; put '*/'; put '%dc_getlibs(outds=work.mm_getLibs)'; put '/* get security groups */'; put '%mpe_getgroups(user=%mf_getuser(),outds=groups)'; put '/* get security settings */'; put 'data sec;'; put 'set &mpelib..mpe_security;'; put 'where &dc_dttmtfmt. lt tx_to and ACCESS_LEVEL=''VIEW'';'; put 'run;'; put '/* check for any matching groups */'; put 'proc sql noprint;'; put 'create table matches as'; put 'select * from sec'; put 'where upcase(sas_group) in (select upcase(groupname) from groups);'; put 'select count(*) into: securitygroupscount from matches;'; put 'select count(*) into: ALL_CNT from matches where libref=''*ALL*'';'; put '%put securitygroupscount=&securitygroupscount;'; put '%put ALL_CNT=&ALL_CNT;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%macro mpestp_viewlibs();'; put '%if not %symexist(DC_RESTRICT_VIEWER) %then %let DC_RESTRICT_VIEWER=NO;'; put '/* scenario 1 - user is in admin group, hence can view all libraries */'; put 'proc sql noprint;'; put 'select count(*) into: scenario1 from groups where groupname="&mpeadmins";'; put '%if &scenario1>0 %then %do;'; put '%put user in admin group (scenario1=&scenario1);'; put '%return;'; put '%end;'; put '/* scenario 2 - viewer unrestricted and no groups listed */'; put '%if &DC_RESTRICT_VIEWER=NO and &securitygroupscount=0 %then %do;'; put '%put DC_RESTRICT_VIEWER=&DC_RESTRICT_VIEWER;'; put '%put securitygroupscount=&securitygroupscount;'; put '%return;'; put '%end;'; put '/* scenario 3 - an *ALL* libref is listed */'; put '%if &all_cnt>0 %then %do;'; put '%put all_cnt=&all_cnt;'; put '%return;'; put '%end;'; put '/* scenario 4 - specific librefs listed */'; put '%if &securitygroupscount>0 %then %do;'; put '%put scenario 4;'; put '%put securitygroupscount=&securitygroupscount;'; put 'proc sql;'; put 'delete from mm_getLibs'; put 'where upcase(libraryref) not in (select upcase(libref) from matches);'; put '%return;'; put '%end;'; put '/* viewer restricted and no groups listed */'; put '%if &DC_RESTRICT_VIEWER=YES and &securitygroupscount=0 %then %do;'; put '%put DC_RESTRICT_VIEWER=&DC_RESTRICT_VIEWER;'; put '%put securitygroupscount=&securitygroupscount;'; put 'data mm_getlibs;'; put 'set mm_getlibs;'; put 'stop;'; put 'run;'; put '%return;'; put '%end;'; put '%mp_abort(iftrue= (1=1)'; put ',mac=&_program..sas'; put ',msg=%str(unhandled security logic error!)'; put ')'; put '%mend mpestp_viewlibs;'; put '%mpestp_viewlibs()'; put '%global dc_viewlib_check;'; put '/**'; put '* deal with invalid and duplicate library definitions'; put '*/'; put 'proc sort data=mm_getlibs;'; put 'by libraryref libraryname;'; put 'run;'; put 'data mm_getlibs;'; put 'set mm_getlibs;'; put 'by libraryref;'; put 'if symget(''dc_viewlib_check'')=''YES'' then do;'; put '/* note - invalid libraries can result in exception errors. If this happens,'; put 'configure the dc_viewlib_check variable to NO in Data Controller Settings'; put '*/'; put 'rc=libname(libraryref,,''meta'',cats(''library="'',libraryname,''";''));'; put 'drop rc;'; put 'if rc ne 0 then do;'; put 'putlog "NOTE: Library " libraryname " does not exist!!";'; put 'putlog (_all_) (=);'; put 'delete;'; put 'end;'; put 'end;'; put 'if not first.libraryref then delete;'; put 'run;'; put 'proc sort data=mm_getlibs (keep=&keepvars);'; put 'by libraryname;'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%mm_webout(OPEN)'; put '%mm_webout(ARR, mm_getLibs)'; put '%mm_webout(CLOSE)'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=viewlibs; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mc,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '%macro dc_getlibs(outds=mm_getlibs);'; put 'proc sql;'; put 'create table &outds as'; put 'select distinct libname as LibraryRef'; put ',libname as LibraryName length=256'; put ',engine'; put ','''' as libraryid length=17'; put 'from dictionary.libnames'; put 'where libname not in (''WORK'',''SASUSER'');'; put 'insert into &syslast values ("&DC_LIBREF", "&DC_LIBNAME",'''',''V9'');'; put '%mend dc_getlibs;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file viewlibs.sas'; put '@brief List the libraries for view access'; put '@details'; put '

SAS Macros

'; put '@li dc_getlibs.sas'; put '@li mp_abort.sas'; put '@li mf_getuser.sas'; put '@li mpe_getgroups.sas'; put '@li mpeinit.sas'; put '@version 9.3'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '/**'; put '* get full list of libraries'; put '*/'; put '%dc_getlibs(outds=work.mm_getLibs)'; put '/* get security groups */'; put '%mpe_getgroups(user=%mf_getuser(),outds=groups)'; put '/* get security settings */'; put 'data sec;'; put 'set &mpelib..mpe_security;'; put 'where &dc_dttmtfmt.lt tx_to and ACCESS_LEVEL=''VIEW'';'; put 'run;'; put '/* check for any matching groups */'; put 'proc sql noprint;'; put 'create table matches as'; put 'select * from sec'; put 'where upcase(sas_group) in (select upcase(groupname) from groups);'; put 'select count(*) into: securitygroupscount from matches;'; put 'select count(*) into: ALL_CNT from matches where libref=''*ALL*'';'; put '%put securitygroupscount=&securitygroupscount;'; put '%put ALL_CNT=&ALL_CNT;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%macro mpestp_viewlibs();'; put '%if not %symexist(DC_RESTRICT_VIEWER) %then %let DC_RESTRICT_VIEWER=NO;'; put '/* scenario 1 - user is in admin group, hence can view all libraries */'; put 'proc sql noprint;'; put 'select count(*) into: scenario1 from groups where groupname="&mpeadmins";'; put '%if &scenario1>0 %then %do;'; put '%put user in admin group (scenario1=&scenario1);'; put '%return;'; put '%end;'; put '/* scenario 2 - viewer unrestricted and no groups listed */'; put '%if &DC_RESTRICT_VIEWER=NO and &securitygroupscount=0 %then %do;'; put '%put DC_RESTRICT_VIEWER=&DC_RESTRICT_VIEWER;'; put '%put securitygroupscount=&securitygroupscount;'; put '%return;'; put '%end;'; put '/* scenario 3 - an *ALL* libref is listed */'; put '%if &all_cnt>0 %then %do;'; put '%put all_cnt=&all_cnt;'; put '%return;'; put '%end;'; put '/* scenario 4 - specific librefs listed */'; put '%if &securitygroupscount>0 %then %do;'; put '%put scenario 4;'; put '%put securitygroupscount=&securitygroupscount;'; put 'proc sql;'; put 'delete from mm_getLibs'; put 'where upcase(libraryref) not in (select upcase(libref) from matches);'; put '%return;'; put '%end;'; put '/* viewer restricted and no groups listed */'; put '%if &DC_RESTRICT_VIEWER=YES and &securitygroupscount=0 %then %do;'; put '%put DC_RESTRICT_VIEWER=&DC_RESTRICT_VIEWER;'; put '%put securitygroupscount=&securitygroupscount;'; put 'data mm_getlibs;'; put 'set mm_getlibs;'; put 'stop;'; put 'run;'; put '%return;'; put '%end;'; put '%mp_abort(iftrue= (1=1)'; put ',mac=&_program..sas'; put ',msg=%str(unhandled security logic err!)'; put ')'; put '%mend mpestp_viewlibs;'; put '%mpestp_viewlibs()'; put '%global dc_viewlib_check;'; put '/**'; put '* deal with invalid and duplicate library definitions'; put '*/'; put 'proc sort data=mm_getlibs;'; put 'by libraryref libraryname;'; put 'run;'; put 'data mm_getlibs;'; put 'set mm_getlibs;'; put 'by libraryref;'; put 'if symget(''dc_viewlib_check'')=''YES'' then do;'; put '/* note - invalid libraries can result in exception errors. If this happens,'; put 'configure the dc_viewlib_check variable to NO in Data Controller Settings'; put '*/'; put 'rc=libname(libraryref,,''meta'',cats(''library="'',libraryname,''";''));'; put 'drop rc;'; put 'if rc ne 0 then do;'; put 'putlog "NOTE: Library " libraryname " does not exist!!";'; put 'putlog (_all_) (=);'; put 'delete;'; put 'end;'; put 'end;'; put 'if not first.libraryref then delete;'; put 'run;'; put 'proc sort data=mm_getlibs out=saslibs;'; put 'by libraryname;'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%webout(OPEN)'; put '%webout(OBJ,saslibs,missing=STRING)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=viewtables; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mc,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%mv_getusergroups(&user,outds=&outds)'; put 'data &outds;'; put 'length groupname groupdesc $256;'; put 'set &outds(rename=(id=groupname name=groupdesc));'; put 'run;'; put '%mend dc_getusergroups;'; put '%macro mpe_getgroups(user=,outds=);'; put '%if not %symexist(dc_repo_users) %then %let dc_repo_users=foundation;'; put '%dc_getusergroups(user=&user,outds=&outds)'; put 'data;'; put 'length groupname groupdesc $256;'; put 'set &dc_libref..mpe_groups;'; put 'where &dc_dttmtfmt. lt tx_to;'; put 'where also upcase(user_name)="%upcase(&user)";'; put 'groupname=group_name;'; put 'groupdesc=group_desc;'; put 'keep groupname groupdesc;'; put 'run;'; put 'data &outds;'; put 'set &syslast &outds(keep=groupname groupdesc);'; put 'run;'; put '%mend mpe_getgroups;'; put '%macro mpe_getvars(injs,outds);'; put '/* load parameters */'; put 'data _null_;'; put '__dummychar='''';__dummynum=0;'; put 'set &outds;'; put 'array __charvals _character_;'; put 'do over __charvals;'; put 'call symputx(vname(__charvals),__charvals,''g'');'; put 'end;'; put 'array __numvals _numeric_;'; put 'do over __numvals;'; put 'call symputx(vname(__numvals),__numvals,''g'');'; put 'end;'; put 'run;'; put '%mend mpe_getvars;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file viewtables.sas'; put '@brief List the tables and format catalogs the user can view'; put '@details Provide a library and get list of tables and catalogs. Also return'; put 'the libinfo details.'; put '

Service Inputs

'; put '
SASControlTable
'; put 'Just one input - MPLIB (the libref to get tables and info for)'; put '|MPLIB:$char8.|'; put '|---|'; put '|SOMELIB|'; put '

Service Outputs

'; put '
work.mptables
'; put '|MEMNAME:$char32.|'; put '|---|'; put '|DS1|'; put '|DS2|'; put '|DS3|'; put 'etc'; put '
work.libinfo
'; put 'If attributes are empty, they don''t need to be shown on screen.'; put '|engine $|libname $|paths $|perms $|owners $|schemas $ |libid $|libsize $|table_cnt |'; put '|---|---|---|---|---|---|---|---|---|'; put '|V9|SOMELIB|"some/path"|rwxrwxr-x|sassrv|` `|` `|636MB|33|'; put '

SAS Macros

'; put '@li dc_assignlib.sas'; put '@li mf_getuser.sas'; put '@li mpe_getgroups.sas'; put '@li mpe_getvars.sas'; put '@li mpeinit.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%global MPLIB;'; put '/* load parameters */'; put '%mpe_getvars(SASControlTable, SASControlTable)'; put '/**'; put '* assign the Library'; put '*/'; put '%put &=MPLIB;'; put '%dc_assignlib(READ,&MPLIB)'; put '%mp_abort(iftrue= (&syscc ne 0 )'; put ',mac=&_program..sas'; put ',msg=%str(Unable to assign &mplib library)'; put ')'; put '/**'; put '* get the tables'; put '*/'; put 'data members; /* empty table */'; put 'name='''';'; put 'memtype='''';'; put 'run;'; put 'ods output Members=Members;'; put 'proc datasets library=&mplib ;'; put 'quit;'; put '/* cannot avoid the proc datasets warn!ng for an empty lib */'; put '/* nolist means no output and nowarn has no effect */'; put '%put &=syscc;'; put 'data _null_;'; put 'if "&syscc" ne "0" then do;'; put 'putlog "Library &mplib is empty, setting syscc to zero";'; put 'call symputx(''syscc'',0);'; put 'end;'; put 'run;'; put '%put &=syscc;'; put 'proc sql;'; put 'create table work.mptables as'; put 'select distinct case when memtype=''CATALOG'' then cats(name,''-FC'')'; put 'else name end as memname'; put 'from members;'; put '/* get security groups */'; put '%mpe_getgroups(user=%mf_getuser(),outds=groups)'; put '/* get security settings */'; put 'data sec;'; put 'set &mpelib..mpe_security;'; put 'where &dc_dttmtfmt. lt tx_to and ACCESS_LEVEL=''VIEW'';'; put 'where also libref in (''*ALL*'',"%upcase(&mplib)");'; put 'run;'; put '/* check for any matching groups */'; put 'proc sql noprint;'; put 'create table matches as'; put 'select * from sec'; put 'where upcase(sas_group) in (select upcase(groupname) from groups);'; put 'select count(*) into: securitygroupscount from matches;'; put 'select count(*) into: ALL_CNT from matches'; put 'where libref=''*ALL*'''; put 'or (libref="&mplib" and dsn=''*ALL*'');'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%macro mpestp_viewtables();'; put '%if not %symexist(DC_RESTRICT_VIEWER) %then %let DC_RESTRICT_VIEWER=NO;'; put '/* scenario 1 - user is in admin group, hence can view all libraries */'; put 'proc sql noprint;'; put 'select count(*) into: scenario1 from groups where groupname="&mpeadmins";'; put '%if &scenario1>0 %then %return;'; put '/* scenario 2 - viewer unrestricted and no groups listed */'; put '%if &DC_RESTRICT_VIEWER=NO and &securitygroupscount=0 %then %return;'; put '/* scenario 3 - an *ALL* libref or DSN is listed */'; put '%if &all_cnt>0 %then %return;'; put '/* scenario 4 - specific tables listed */'; put '%if &securitygroupscount>0 %then %do;'; put 'proc sql;'; put 'delete from mptables'; put 'where upcase(memname) not in (select upcase(dsn) from sec);'; put '%return;'; put '%end;'; put '/* viewer restricted and no groups listed */'; put '%if &DC_RESTRICT_VIEWER=YES and &securitygroupscount=0 %then %do;'; put 'data mptables;'; put 'set mptables;'; put 'stop;'; put 'run;'; put '%return;'; put '%end;'; put '%mp_abort(iftrue= (1=1)'; put ',mac=&_program..sas'; put ',msg=%str(unhandled security logic error!)'; put ')'; put '%mend mpestp_viewtables;'; put '%mpestp_viewtables()'; put '/* get libinfo */'; put 'proc sql;'; put 'create table work.libinfo as'; put 'select a.engine,'; put 'a.libname,'; put 'a.paths,'; put 'a.perms,'; put 'a.owners,'; put 'a.schemas,'; put 'a.libid,'; put 'coalesce(b.libsize,0) as libsize,'; put 'coalesce(b.table_cnt,0) as table_cnt,'; put 'coalesce(b.catalog_cnt,0) as catalog_cnt'; put 'from &mpelib..mpe_datacatalog_libs(where=(&dc_dttmtfmt. lt tx_to)) a'; put 'left join &mpelib..mpe_datastatus_libs(where=(&dc_dttmtfmt. lt tx_to)) b'; put 'on a.libref=b.libref'; put 'where a.libref="&MPLIB";'; put '%webout(OPEN)'; put '%webout(OBJ,mptables)'; put '%webout(OBJ,libinfo)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let path=services/validations; %let service=columns_in_libds; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '%macro mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mp_validatecol(incol,rule,outcol);'; put '/* tempcol is given a unique name with every invocation */'; put '%local tempcol;'; put '%let tempcol=%mf_getuniquename();'; put '%if &rule=ISINT %then %do;'; put '&outcol=0;'; put 'if not missing(&incol) then do;'; put '&tempcol=input(&incol,?? best32.);'; put 'if not missing(&tempcol) then if mod(&tempcol,1)=0 then &outcol=1;'; put 'end;'; put 'drop &tempcol;'; put '%end;'; put '%else %if &rule=ISNUM %then %do;'; put '/*'; put 'credit SOREN LASSEN'; put 'https://sasmacro.blogspot.com/2009/06/welcome-isnum-macro.html'; put '*/'; put '&tempcol=input(&incol,?? best32.);'; put 'if missing(&tempcol) then &outcol=0;'; put 'else &outcol=1;'; put 'drop &tempcol;'; put '%end;'; put '%else %if &rule=LIBDS %then %do;'; put '/* match libref.dataset */'; put 'if _n_=1 then do;'; put 'retain &tempcol;'; put '&tempcol=prxparse(''/^[_a-z]\w{0,7}\.[_a-z]\w{0,31}$/i'');'; put 'if missing(&tempcol) then do;'; put 'putlog ''ERR'' +(-1) "OR: Invalid expression for LIBDS";'; put 'stop;'; put 'end;'; put 'drop &tempcol;'; put 'end;'; put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; put 'else &outcol=0;'; put '%end;'; put '%else %if &rule=FORMAT %then %do;'; put '/* match valid format - regex could probably be improved */'; put 'if _n_=1 then do;'; put 'retain &tempcol;'; put '&tempcol=prxparse(''/^[_a-z\$]\w{0,31}\.[0-9]*$/i'');'; put 'if missing(&tempcol) then do;'; put 'putlog ''ERR'' +(-1) "OR: Invalid expression for FORMAT";'; put 'stop;'; put 'end;'; put 'drop &tempcol;'; put 'end;'; put 'if prxmatch(&tempcol, trim(&incol)) then &outcol=1;'; put 'else &outcol=0;'; put '%end;'; put '%mend mp_validatecol;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Generic validator for table columns'; put '@details The input table is simply one row from the target table in table'; put 'called "work.source_row".'; put 'Available macro variables:'; put '@li MPELIB - The DC control library'; put '@li LIBDS - The library.dataset being filtered'; put '@li VARIABLE_NM - The column being filtered'; put '

Service Inputs

'; put '
work.sourcerow
'; put 'Has source table structure.'; put '

Service Outputs

'; put 'The values provided below are generic samples - we encourage you to replace'; put 'these with realistic values in your own deployments.'; put '
DYNAMIC_VALUES
'; put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; put 'provided, it is added automatically.'; put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; put '|---|---|---|'; put '|1|$77.43|77.43|'; put '|2|$88.43|88.43|'; put '
DYNAMIC_EXTENDED_VALUES
'; put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; put 'populate dropdowns for _other_ cells in the _same_ row.'; put 'Should be used sparingly! The use of large tables here can slow down the'; put 'browser.'; put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|'; put '|---|---|---|'; put '|1|DISCOUNT_RT|"50%"|N|0.5||'; put '|1|DISCOUNT_RT|"40%"|N|0.4||'; put '|1|DISCOUNT_RT|"30%"|N|0.3||'; put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|'; put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|'; put '|2|DISCOUNT_RT|"50%"|N|0.5||'; put '|2|DISCOUNT_RT|"40%"|N|0.4||'; put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|'; put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|'; put '

SAS Macros

'; put '@li dc_assignlib.sas'; put '@li mf_getuniquename.sas'; put '@li mp_abort.sas'; put '@li mp_validatecol.sas'; put '**/'; put '/* send back the raw and formatted values */'; put '%let tgtlibds=0;'; put '%let varlibds=%mf_getuniquename();'; put '%let vartgtlibds=%mf_getuniquename();'; put '%let var_is_libds=%mf_getuniquename();'; put 'data _null_;'; put 'length xl_libref base_lib select_lib rls_libref cls_libref libref $8'; put 'xl_table base_ds select_ds rls_table cls_table dsn $32;'; put 'if _n_=1 then call missing(of _all_);'; put 'set work.source_row;'; put '&varlibds=symget(''libds'');'; put 'if &varlibds="&mpelib..MPE_EXCEL_CONFIG"'; put 'then &vartgtlibds=cats(xl_libref,''.'',xl_table);'; put 'else if &varlibds="&mpelib..MPE_VALIDATIONS"'; put 'then &vartgtlibds=cats(BASE_LIB,''.'',BASE_DS);'; put 'else if &varlibds="&mpelib..MPE_SELECTBOX"'; put 'then &vartgtlibds=cats(select_lib,''.'',select_ds);'; put 'else if &varlibds="&mpelib..MPE_ROW_LEVEL_SECURITY"'; put 'then &vartgtlibds=cats(RLS_LIBREF,''.'',RLS_TABLE);'; put 'else if &varlibds="&mpelib..MPE_COLUMN_LEVEL_SECURITY"'; put 'then &vartgtlibds=cats(CLS_LIBREF,''.'',CLS_TABLE);'; put 'else if &varlibds="&mpelib..MPE_TABLES"'; put 'then &vartgtlibds=cats(LIBREF,''.'',DSN);'; put '/* validate libds */'; put '%mp_validatecol(&vartgtlibds,LIBDS,&var_is_libds)'; put 'if &var_is_libds=1 then call symputx(''tgtlibds'',&vartgtlibds);'; put 'putlog (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= ("&tgtlibds" ="0" )'; put ',mac=&_program..sas'; put ',msg=%str(Unable to extract libds vars from &libds inputs for &variable_nm)'; put ')'; put '%dc_assignlib(READ,%scan(&tgtlibds,1,.))'; put 'proc contents noprint data=&tgtlibds'; put 'out=work.DYNAMIC_VALUES (keep=name rename=(name=display_value) );'; put 'run;'; put 'data work.DYNAMIC_VALUES;'; put 'set work.DYNAMIC_VALUES;'; put 'raw_value=upcase(display_value);'; put 'format raw_value;'; put 'run;'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=libraries_all; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_getlibs(outds=mm_getlibs);'; put 'proc sql;'; put 'create table &outds as'; put 'select distinct libname as LibraryRef'; put ',libname as LibraryName length=256'; put ',engine'; put ','''' as libraryid length=17'; put 'from dictionary.libnames'; put 'where libname not in (''WORK'',''SASUSER'');'; put 'insert into &syslast values ("&DC_LIBREF", "&DC_LIBNAME",'''',''V9'');'; put '%mend dc_getlibs;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Generic validator for libraries'; put '@details The input table is simply one row from the target table in table'; put 'called "work.source_row".'; put 'Available macro variables:'; put '@li MPELIB - The DC control library'; put '@li LIBDS - The library.dataset being filtered'; put '@li VARIABLE_NM - The column being filtered'; put '

Service Outputs

'; put 'The values provided below are generic samples - we encourage you to replace'; put 'these with realistic values in your own deployments.'; put '
DYNAMIC_VALUES
'; put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; put 'provided, it is added automatically.'; put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; put '|---|---|---|'; put '|1|$77.43|77.43|'; put '|2|$88.43|88.43|'; put '
DYNAMIC_EXTENDED_VALUES
'; put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; put 'populate dropdowns for _other_ cells in the _same_ row.'; put 'Should be used sparingly! The use of large tables here can slow down the'; put 'browser.'; put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|'; put '|---|---|---|'; put '|1|DISCOUNT_RT|"50%"|N|0.5||'; put '|1|DISCOUNT_RT|"40%"|N|0.4||'; put '|1|DISCOUNT_RT|"30%"|N|0.3||'; put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|'; put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|'; put '|2|DISCOUNT_RT|"50%"|N|0.5||'; put '|2|DISCOUNT_RT|"40%"|N|0.4||'; put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|'; put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|'; put '

SAS Macros

'; put '@li dc_getlibs.sas'; put '**/'; put '/**'; put '* get full list of libraries'; put '*/'; put '%dc_getlibs(outds=work.mm_getLibs)'; put 'proc sql;'; put 'create table work.DYNAMIC_VALUES as'; put 'select distinct libraryname as display_value,'; put 'upcase(libraryref) as raw_value'; put 'from work.mm_getLibs'; put 'order by 1;'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=libraries_editable; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Generic validator for editable libraries'; put '@details The input table is simply one row from the target table in table'; put 'called "work.source_row".'; put 'Available macro variables:'; put '@li MPELIB - The DC control library'; put '@li LIBDS - The library.dataset being filtered'; put '@li VARIABLE_NM - The column being filtered'; put '

Service Outputs

'; put 'The values provided below are generic samples - we encourage you to replace'; put 'these with realistic values in your own deployments.'; put '
DYNAMIC_VALUES
'; put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; put 'provided, it is added automatically.'; put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; put '|---|---|---|'; put '|1|$77.43|77.43|'; put '|2|$88.43|88.43|'; put '
DYNAMIC_EXTENDED_VALUES
'; put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; put 'populate dropdowns for _other_ cells in the _same_ row.'; put 'Should be used sparingly! The use of large tables here can slow down the'; put 'browser.'; put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|'; put '|---|---|---|'; put '|1|DISCOUNT_RT|"50%"|N|0.5||'; put '|1|DISCOUNT_RT|"40%"|N|0.4||'; put '|1|DISCOUNT_RT|"30%"|N|0.3||'; put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|'; put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|'; put '|2|DISCOUNT_RT|"50%"|N|0.5||'; put '|2|DISCOUNT_RT|"40%"|N|0.4||'; put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|'; put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|'; put '**/'; put '/* send back the raw and formatted values */'; put 'proc sql;'; put 'create table work.DYNAMIC_VALUES as'; put 'select distinct libref as display_value,'; put 'upcase(libref) as raw_value'; put 'from &mpelib..mpe_tables'; put 'where &dc_dttmtfmt. < tx_to'; put 'order by 1;'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=mpe_alerts.alert_lib; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_getlibs(outds=mm_getlibs);'; put 'proc sql;'; put 'create table &outds as'; put 'select distinct libname as LibraryRef'; put ',libname as LibraryName length=256'; put ',engine'; put ','''' as libraryid length=17'; put 'from dictionary.libnames'; put 'where libname not in (''WORK'',''SASUSER'');'; put 'insert into &syslast values ("&DC_LIBREF", "&DC_LIBNAME",'''',''V9'');'; put '%mend dc_getlibs;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief fetch extended values for alert_lib'; put '@details Fetches libraries from mpe_tables, creates extended values for'; put 'alert_ds, and marks "*ALL*" as the forced (default) value.'; put 'Available macro variables:'; put '@li DC_LIBREF - The DC control library'; put '@li LIBDS - The library.dataset being filtered'; put '@li VARIABLE_NM - The column being filtered'; put '

Service Outputs

'; put 'Output should be a single table called "work.dynamic_values" in the format'; put 'below. display_value should always be character, raw_value is unformatted'; put 'character/numeric.'; put '
DYNAMIC_VALUES
'; put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; put 'provided, it is added automatically.'; put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; put '|---|---|---|'; put '|1|$77.43|77.43|'; put '|2|$88.43|88.43|'; put '
DYNAMIC_EXTENDED_VALUES
'; put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; put 'populate dropdowns for _other_ cells in the _same_ row.'; put 'Should be used sparingly! The use of large tables here can slow down the'; put 'browser.'; put 'The FORCED_VALUE column can be used to force an extended value to be selected'; put 'by default when a particular value is chosen.'; put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|FORCED_VALUE|'; put '|---|---|---|---|'; put '|1|DISCOUNT_RT|"50%"|N|0.5||.|'; put '|1|DISCOUNT_RT|"40%"|N|0.4||0|'; put '|1|DISCOUNT_RT|"30%"|N|0.3||1|'; put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|.|'; put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|.|'; put '|2|DISCOUNT_RT|"50%"|N|0.5||.|'; put '|2|DISCOUNT_RT|"40%"|N|0.4||1|'; put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|.|'; put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|1|'; put '

SAS Macros

'; put '@li dc_getlibs.sas'; put '**/'; put '%mp_abort(iftrue= ("%upcase(&libds)" ne "&DC_LIBREF..MPE_ALERTS" )'; put ',mac=&_program'; put ',msg=%str('; put 'Invalid validation, expected MPE_ALERTS.ALERT_LIB, got %superq(libds)'; put ')'; put ')'; put 'proc sql;'; put 'create table work.source as'; put 'select libref,dsn'; put 'from &DC_LIBREF..MPE_TABLES'; put 'where tx_to > &dc_dttmtfmt.'; put 'order by 1,2;'; put 'data work.DYNAMIC_VALUES (keep=display_index raw_value display_value);'; put 'set work.source end=last;'; put 'by libref;'; put 'if last.libref then do;'; put 'display_index+1;'; put 'raw_value=libref;'; put 'display_value=libref;'; put 'output;'; put 'end;'; put 'if last then do;'; put 'display_index+1;'; put 'raw_value=''*ALL*'';'; put 'display_value=''*ALL*'';'; put 'output;'; put 'end;'; put 'run;'; put 'data work.dynamic_extended_values(keep=display_index extra_col_name display_type'; put 'display_value RAW_VALUE_CHAR raw_value_num forced_value);'; put 'set work.source end=last;'; put 'by libref dsn;'; put 'retain extra_col_name ''ALERT_DS'';'; put 'retain display_type ''C'';'; put 'retain raw_value_num .;'; put 'raw_value_char=dsn;'; put 'display_value=dsn;'; put 'forced_value=0;'; put 'if first.libref then display_index+1;'; put 'if last.libref then do;'; put 'display_value=''*ALL*'';'; put 'raw_value_char=''*ALL*'';'; put 'forced_value=1;'; put 'output;'; put 'end;'; put 'else output;'; put 'run;'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=mpe_tables.dsn; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_getlibs(outds=mm_getlibs);'; put 'proc sql;'; put 'create table &outds as'; put 'select distinct libname as LibraryRef'; put ',libname as LibraryName length=256'; put ',engine'; put ','''' as libraryid length=17'; put 'from dictionary.libnames'; put 'where libname not in (''WORK'',''SASUSER'');'; put 'insert into &syslast values ("&DC_LIBREF", "&DC_LIBNAME",'''',''V9'');'; put '%mend dc_getlibs;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief fetch extended values for DSN'; put '@details Fetches datasets in a library, and ALSO fetches a list of numeric'; put 'vars for each dataset for use in adjacent columns (such as VAR_PROCESSED,'; put 'TX_TO etc).'; put 'Available macro variables:'; put '@li MPELIB - The DC control library'; put '@li LIBDS - The library.dataset being filtered'; put '@li VARIABLE_NM - The column being filtered'; put '

Service Outputs

'; put 'Output should be a single table called "work.dynamic_values" in the format'; put 'below. display_value should always be character, raw_value is unformatted'; put 'character/numeric.'; put '
DYNAMIC_VALUES
'; put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; put 'provided, it is added automatically.'; put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; put '|---|---|---|'; put '|1|$77.43|77.43|'; put '|2|$88.43|88.43|'; put '
DYNAMIC_EXTENDED_VALUES
'; put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; put 'populate dropdowns for _other_ cells in the _same_ row.'; put 'Should be used sparingly! The use of large tables here can slow down the'; put 'browser.'; put 'The FORCED_VALUE column can be used to force an extended value to be selected'; put 'by default when a particular value is chosen.'; put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|FORCED_VALUE|'; put '|---|---|---|---|'; put '|1|DISCOUNT_RT|"50%"|N|0.5||.|'; put '|1|DISCOUNT_RT|"40%"|N|0.4||0|'; put '|1|DISCOUNT_RT|"30%"|N|0.3||1|'; put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|.|'; put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|.|'; put '|2|DISCOUNT_RT|"50%"|N|0.5||.|'; put '|2|DISCOUNT_RT|"40%"|N|0.4||1|'; put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|.|'; put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|1|'; put '

SAS Macros

'; put '@li dc_getlibs.sas'; put '**/'; put '/* send back the raw and formatted values */'; put '%let tgtlib=0;'; put '%let varlibds=%mf_getuniquename();'; put '%let vartgtlib=%mf_getuniquename();'; put '%let var_is_lib=%mf_getuniquename();'; put 'data _null_;'; put 'length &varlibds $41 &vartgtlib $8;'; put 'set work.source_row;'; put '&varlibds=upcase(symget(''libds''));'; put 'if &varlibds="&mpelib..MPE_TABLES" then &vartgtlib=LIBREF;'; put 'else putlog "something unexpected happened";'; put '/* validate name */'; put 'if nvalid(&vartgtlib,''v7'') then call symputx(''tgtlib'',&vartgtlib);'; put 'call symputx(''vartgtlib'',&vartgtlib);'; put 'putlog (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= ("&tgtlib" ="0" )'; put ',mac=&_program..sas'; put ',msg=%str(Invalid library - %superq(vartgtlib))'; put ',errds=work.dc_error_response'; put ')'; put '%dc_assignlib(READ,&tgtlib)'; put 'proc sql;'; put 'create table work.source as'; put 'select upcase(memname) as memname'; put ',upcase(name) as name'; put ',type'; put 'from dictionary.columns'; put 'where libname="&TGTLIB"'; put 'and memtype=''DATA'';'; put 'create table work.members as'; put 'select distinct memname as display_value'; put 'from work.source;'; put 'data work.DYNAMIC_VALUES;'; put 'set work.members;'; put 'raw_value=display_value;'; put 'display_index=_n_;'; put 'run;'; put 'proc sql;'; put 'create table work.dynamic_extended_values as'; put 'select a.display_index'; put ',b.name as display_value'; put ',"C" as display_type'; put ',b.name as RAW_VALUE_CHAR'; put ',. as RAW_VALUE_NUM'; put 'from work.dynamic_values a'; put 'left join work.source b'; put 'on a.display_value=b.memname'; put 'where b.type=''num'';'; put 'data work.dynamic_extended_values;'; put 'set work.DYNAMIC_EXTENDED_VALUES;'; put 'extra_col_name=''VAR_PROCESSED'';output;'; put 'extra_col_name=''VAR_TXFROM'';output;'; put 'extra_col_name=''VAR_TXTO'';output;'; put 'extra_col_name=''VAR_BUSFROM'';output;'; put 'extra_col_name=''VAR_BUSTO'';output;'; put 'run;'; put '/* set some force flags */'; put 'data work.dynamic_extended_values;'; put 'set work.DYNAMIC_EXTENDED_VALUES;'; put 'forced_value=0;'; put 'if extra_col_name=''VAR_TXFROM'' & raw_value_char=''TX_FROM'' then forced_value=1;'; put 'if extra_col_name=''VAR_TXTO'' & raw_value_char=''TX_TO'' then forced_value=1;'; put 'run;'; put 'proc sort;'; put 'by extra_col_name display_index;'; put 'run;'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=mpe_x_test.some_num; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_getlibs(outds=mm_getlibs);'; put 'proc sql;'; put 'create table &outds as'; put 'select distinct libname as LibraryRef'; put ',libname as LibraryName length=256'; put ',engine'; put ','''' as libraryid length=17'; put 'from dictionary.libnames'; put 'where libname not in (''WORK'',''SASUSER'');'; put 'insert into &syslast values ("&DC_LIBREF", "&DC_LIBNAME",'''',''V9'');'; put '%mend dc_getlibs;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Generic validator for libraries'; put '@details The input table is simply one row from the target table in table'; put 'called "work.source_row".'; put 'Available macro variables:'; put '@li DC_LIBREF - The DC control library'; put '@li LIBDS - The library.dataset being filtered'; put '@li VARIABLE_NM - The column being filtered'; put '

Service Outputs

'; put 'Output should be a single table called "work.dynamic_values" in the format'; put 'below. display_value should always be character, raw_value is unformatted'; put 'character/numeric.'; put '|DISPLAY_VALUE:$|RAW_VALUE:??|'; put '|---|---|'; put '|$44.00|44|'; put '

SAS Macros

'; put '@li dc_getlibs.sas'; put '**/'; put 'proc sql;'; put 'create table work.DYNAMIC_VALUES as'; put 'select distinct cats(some_num) as display_value,'; put 'some_num as raw_value'; put 'from &libds'; put 'order by 1;'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=sas_groups; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mc,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getgroups(access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',outds=work.viyagroups'; put ');'; put '%local oauth_bearer base_uri fname1 libref1;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '/* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/groups?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getgroups;'; put '%macro dc_getgroups(outds=mm_getgroups);'; put '%mv_getgroups(outds=&outds)'; put 'proc sort'; put 'data=&outds(rename=(id=groupuri name=groupname description=groupdesc))'; put 'out=&outds (keep=groupuri groupname groupdesc);'; put 'by groupname;'; put 'run;'; put '%mend dc_getgroups;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief validating the mpe_security.sas_group column'; put '@details The input table is simply one row from the target table in table'; put 'called "work.source_row".'; put 'Available macro variables:'; put '@li LIBDS - The library.dataset being filtered'; put '@li VARIABLE_NM - The column being filtered'; put '

Service Outputs

'; put 'The values provided below are generic samples - we encourage you to replace'; put 'these with realistic values in your own deployments.'; put '
DYNAMIC_VALUES
'; put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; put 'provided, it is added automatically.'; put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; put '|---|---|---|'; put '|1|$77.43|77.43|'; put '|2|$88.43|88.43|'; put '
DYNAMIC_EXTENDED_VALUES
'; put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; put 'populate dropdowns for _other_ cells in the _same_ row.'; put 'Should be used sparingly! The use of large tables here can slow down the'; put 'browser.'; put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|'; put '|---|---|---|'; put '|1|DISCOUNT_RT|"50%"|N|0.5||'; put '|1|DISCOUNT_RT|"40%"|N|0.4||'; put '|1|DISCOUNT_RT|"30%"|N|0.3||'; put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|'; put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|'; put '|2|DISCOUNT_RT|"50%"|N|0.5||'; put '|2|DISCOUNT_RT|"40%"|N|0.4||'; put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|'; put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|'; put '

SAS Macros

'; put '@li dc_getgroups.sas'; put '**/'; put '%dc_getgroups(outds=groups)'; put 'proc sql;'; put 'create table work.DYNAMIC_VALUES as'; put 'select distinct groupname as display_value,'; put 'groupname as raw_value'; put 'from work.groups'; put 'order by 1;'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=tables_all; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%if %length(&passthru)>0 %then %do;'; put 'proc sql;'; put 'connect using &libref as &passthru;'; put '%end;'; put '%mend dc_assignlib;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Generic validator for tables in a library'; put '@details The input table is simply one row from the target table in table'; put 'called "work.source_row".'; put 'Available macro variables:'; put '@li MPELIB - The DC control library'; put '@li LIBDS - The library.dataset being filtered'; put '@li VARIABLE_NM - The column being filtered'; put '

Service Outputs

'; put 'The values provided below are generic samples - we encourage you to replace'; put 'these with realistic values in your own deployments.'; put '
DYNAMIC_VALUES
'; put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; put 'provided, it is added automatically.'; put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; put '|---|---|---|'; put '|1|$77.43|77.43|'; put '|2|$88.43|88.43|'; put '
DYNAMIC_EXTENDED_VALUES
'; put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; put 'populate dropdowns for _other_ cells in the _same_ row.'; put 'Should be used sparingly! The use of large tables here can slow down the'; put 'browser.'; put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|'; put '|---|---|---|'; put '|1|DISCOUNT_RT|"50%"|N|0.5||'; put '|1|DISCOUNT_RT|"40%"|N|0.4||'; put '|1|DISCOUNT_RT|"30%"|N|0.3||'; put '|1|CURRENCY_SYMBOL|"GBP"|C||"GBP"|'; put '|1|CURRENCY_SYMBOL|"RSD"|C||"RSD"|'; put '|2|DISCOUNT_RT|"50%"|N|0.5||'; put '|2|DISCOUNT_RT|"40%"|N|0.4||'; put '|2|CURRENCY_SYMBOL|"EUR"|C||"EUR"|'; put '|2|CURRENCY_SYMBOL|"HKD"|C||"HKD"|'; put '

SAS Macros

'; put '@li dc_assignlib.sas'; put '**/'; put '/* send back the raw and formatted values */'; put '%let tgtlib=0;'; put '%let varlibds=%mf_getuniquename();'; put '%let vartgtlib=%mf_getuniquename();'; put '%let var_is_lib=%mf_getuniquename();'; put 'data _null_;'; put 'length &varlibds $41 &vartgtlib $8 libref $8 rls_libref $8;'; put 'if _n_=1 then call missing(of _all_);'; put 'set work.source_row;'; put '&varlibds=upcase(symget(''libds''));'; put 'if &varlibds="&mpelib..MPE_TABLES" then &vartgtlib=LIBREF;'; put 'else if &varlibds="&mpelib..MPE_ROW_LEVEL_SECURITY"'; put 'then &vartgtlib=RLS_LIBREF;'; put 'else if &varlibds="&mpelib..MPE_COLUMN_LEVEL_SECURITY"'; put 'then &vartgtlib=CLS_LIBREF;'; put '/* validate name */'; put 'if nvalid(&vartgtlib,''v7'') then call symputx(''tgtlib'',&vartgtlib);'; put 'call symputx(''vartgtlib'',&vartgtlib);'; put 'putlog (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= ("&tgtlib" ="0" )'; put ',mac=&_program..sas'; put ',msg=%str(Invalid library - %superq(vartgtlib))'; put ',errds=work.dc_error_response'; put ')'; put '%dc_assignlib(READ,&tgtlib)'; put 'data members; /* empty table */'; put 'name='' '';'; put 'run;'; put 'ods output Members=Members;'; put 'proc datasets library=&tgtlib ;'; put 'run;'; put '/* send back the raw and formatted values */'; put 'proc sql;'; put 'create table work.DYNAMIC_VALUES as'; put 'select distinct name as display_value,'; put 'upcase(name) as raw_value'; put 'from work.members'; put 'where MemType=''DATA'''; put 'order by 1;'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=tables_editable; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Generic validator for editable libraries'; put '@details The input table is simply one row from the target table in table'; put 'called "work.source_row".'; put 'Available macro variables:'; put '@li MPELIB - The DC control library'; put '@li LIBDS - The library.dataset being filtered'; put '@li VARIABLE_NM - The column being filtered'; put '

Service Inputs

'; put '
work.source_row
'; put '|libref:$8|'; put '|somelib|'; put '

Service Outputs

'; put 'The values provided below are generic samples - we encourage you to replace'; put 'these with realistic values in your own deployments.'; put '
DYNAMIC_VALUES
'; put 'The RAW_VALUE column may be charactor or numeric. If DISPLAY_INDEX is not'; put 'provided, it is added automatically.'; put '|DISPLAY_INDEX:best.|DISPLAY_VALUE:$|RAW_VALUE|'; put '|---|---|---|'; put '|1|$77.43|77.43|'; put '|2|$88.43|88.43|'; put '
DYNAMIC_EXTENDED_VALUES
'; put 'This table is optional. If provided, it will map the DISPLAY_INDEX from the'; put 'DYNAMIC_VALUES table to additional column/value pairs, that will be used to'; put 'populate dropdowns for _other_ cells in the _same_ row.'; put 'Should be used sparingly! The use of large tables here can slow down the'; put 'browser.'; put '|DISPLAY_INDEX:best.|EXTRA_COL_NAME:$32.|DISPLAY_VALUE:$|DISPLAY_TYPE:$1.|RAW_VALUE_NUM|RAW_VALUE_CHAR:$5000|'; put '|---|---|---|---|---|---|'; put '|1|DISCOUNT_RT|"50%"|N|0.5|` `|'; put '|1|DISCOUNT_RT|"40%"|N|0.4|` `|'; put '|1|DISCOUNT_RT|"30%"|N|0.3|` `|'; put '|1|CURRENCY_SYMBOL|"GBP"|C|` `|"GBP"|'; put '|1|CURRENCY_SYMBOL|"RSD"|C|` `|"RSD"|'; put '|2|DISCOUNT_RT|"50%"|N|0.5|` `|'; put '|2|DISCOUNT_RT|"40%"|N|0.4|` `|'; put '|2|CURRENCY_SYMBOL|"EUR"|C|` `|"EUR"|'; put '|2|CURRENCY_SYMBOL|"HKD"|C|` `|"HKD"|'; put '**/'; put '/* send back the raw and formatted values */'; put 'data _null_;'; put 'var=symget(''variable_nm'');'; put 'libds=symget(''libds'');'; put 'if libds="&mpelib..MPE_EXCEL_CONFIG" and var=''XL_TABLE'' then do;'; put 'call symputx(''srccol'',''XL_LIBREF'');'; put 'end;'; put 'else call symputx(''srccol'',''libref'');'; put 'run;'; put 'proc sql;'; put 'create table work.DYNAMIC_VALUES as'; put 'select distinct dsn as display_value,'; put 'upcase(dsn) as raw_value'; put 'from &mpelib..mpe_tables'; put '(where=(&dc_dttmtfmt. < tx_to))'; put 'where libref in (select &srccol from work.source_row)'; put 'order by 1;'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let path=services/viya_users; %let service=usergroupsbymember; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mc,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusergroups(user'; put ',outds=work.mv_getusergroups'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users/&user/memberships?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: User &user not found!!;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%end;'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusergroups;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file usergroupsbymember.sas'; put '@brief List the groups a member is in'; put '@details Runs without \%mpeinit() - this enables the dropdown to be populated'; put 'during configuration, when the settings service does not yet exist.'; put '

SAS Macros

'; put '@li mv_getusergroups.sas'; put '@li mf_getuser.sas'; put '@version 3.4'; put '@author 4GL Apps Ltd'; put '**/'; put '%mv_getusergroups(%mf_getuser(),outds=groups)'; put 'proc sort data=groups(rename=(id=uri name=groupname providerid=groupdesc))'; put 'out=groups;'; put 'by groupname;'; put 'run;'; put '%webout(OPEN)'; put '%webout(OBJ,groups)'; put '%webout(CLOSE)'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=usermembers; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mc,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getusers(outds=work.mv_getusers'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%put &sysmacroname: grant_type=&grant_type;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put '%let libref1=%mf_getuniquelibref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/users?limit=10000";'; put '%if &grant_type=authorization_code %then %do;'; put 'headers "Authorization"="Bearer &&&access_token_var"'; put '"Accept"="application/json";'; put '%end;'; put '%else %do;'; put 'headers "Accept"="application/json";'; put '%end;'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'set &libref1..items;'; put 'run;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put 'libname &libref1 clear;'; put '%mend mv_getusers;'; put '%macro dc_getusers(outds=mm_getlibs);'; put '%mv_getusers(outds=&outds)'; put 'proc sort data=&outds(rename=(id=uri)) out=&outds(keep=uri name);'; put 'by name;'; put 'run;'; put '%mend dc_getusers;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file usermembers.sas'; put '@brief List all SAS users'; put '@details Gets a list of all SAS users'; put '

SAS Macros

'; put '@li dc_getusers.sas'; put '@li mpeinit.sas'; put '@version 9.3'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put '%dc_getusers(outds=users)'; put '%webout(OPEN)'; put '%webout(OBJ,users)'; put '%webout(CLOSE)'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let service=usermembersbygroup; filename sascode temp lrecl=32767; data _null_; file sascode; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '/**'; put '@file mp_jsonout.sas'; put '@brief Writes JSON in SASjs format to a fileref'; put '@details This macro can be used to OPEN a JSON stream and send one or more'; put 'tables as arrays of rows, where each row can be an object or a nested array.'; put 'There are two engines available - DATASTEP or PROCJSON.'; put 'PROC JSON is fast but will produce errs like the ones below if'; put 'special chars are encountered.'; put '> (ERR)OR: Some code points did not transcode.'; put '> An object or array close is not valid at this point in the JSON text.'; put '> Date value out of range'; put 'If this happens, try running with ENGINE=DATASTEP.'; put 'The DATASTEP engine is used to handle special SAS missing numerics, and'; put 'can also convert entire datasets to formatted values. Output JSON is always'; put 'in UTF-8.'; put 'Usage:'; put 'filename tmp temp;'; put 'data class; set sashelp.class;run;'; put '%mp_jsonout(OPEN,jref=tmp)'; put '%mp_jsonout(OBJ,class,jref=tmp)'; put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)'; put '%mp_jsonout(CLOSE,jref=tmp)'; put 'data _null_;'; put 'infile tmp;'; put 'input;putlog _infile_;'; put 'run;'; put 'If you are building web apps with SAS then you are strongly encouraged to use'; put 'the mX_createwebservice macros in combination with the'; put '[sasjs adapter](https://github.com/sasjs/adapter).'; put 'For more information see https://sasjs.io'; put '@param [in] action Valid values:'; put '@li OPEN - opens the JSON'; put '@li OBJ - sends a table with each row as an object'; put '@li ARR - sends a table with each row in an array'; put '@li CLOSE - closes the JSON'; put '@param [in] ds The dataset to send. Must be a work table.'; put '@param [out] jref= (_webout) The fileref to which to send the JSON'; put '@param [out] dslabel= The name to give the table in the exported JSON'; put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table'; put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:'; put '@li PROCJSON (default)'; put '@li DATASTEP (more reliable when data has non standard characters)'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to JSON'; put '

Related Files

'; put '@li mp_ds2fmtds.sas'; put '@version 9.2'; put '@author Allan Bowe'; put '@source https://github.com/sasjs/core'; put '**/'; put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y'; put ',engine=DATASTEP'; put ',missing=NULL'; put ',showmeta=N'; put ',maxobs=MAX'; put ')/*/STORE SOURCE*/;'; put '%local tempds colinfo fmtds i numcols numobs stmt_obs lastobs optval'; put 'tmpds1 tmpds2 tmpds3 tmpds4;'; put '%let numcols=0;'; put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);'; put '%if &action=OPEN %then %do;'; put 'options nobomfile;'; put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;'; put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';'; put 'run;'; put '%end;'; put '%else %if (&action=ARR or &action=OBJ) %then %do;'; put '/* force variable names to always be uppercase in the JSON */'; put 'options validvarname=upcase;'; put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation'; put '(https://support.sas.com/kb/49/325.html) we use temporary files */'; put 'filename _sjs1 temp lrecl=200 ;'; put 'data _null_; file _sjs1 encoding=''utf-8'';'; put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";'; put 'run;'; put '/* now write to _webout 1 char at a time */'; put 'data _null_;'; put 'infile _sjs1 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs1 clear;'; put '/* grab col defs */'; put 'proc contents noprint data=&ds'; put 'out=_data_(keep=name type length format formatl formatd varnum label);'; put 'run;'; put '%let colinfo=%scan(&syslast,2,.);'; put 'proc sort data=&colinfo;'; put 'by varnum;'; put 'run;'; put '/* move meta to mac vars */'; put 'data &colinfo;'; put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');'; put 'set &colinfo end=last nobs=nobs;'; put 'name=upcase(name);'; put '/* fix formats */'; put 'if type=2 or type=6 then do;'; put 'typelong=''char'';'; put 'length fmt $49.;'; put 'if format='''' then fmt=cats(''$'',length,''.'');'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else fmt=cats(format,formatl,''.'');'; put 'end;'; put 'else do;'; put 'typelong=''num'';'; put 'if format='''' then fmt=''best.'';'; put 'else if formatl=0 then fmt=cats(format,''.'');'; put 'else if formatd=0 then fmt=cats(format,formatl,''.'');'; put 'else fmt=cats(format,formatl,''.'',formatd);'; put 'end;'; put '/* 32 char unique name */'; put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);'; put 'call symputx(cats(''name'',_n_),name,''l'');'; put 'call symputx(cats(''newname'',_n_),newname,''l'');'; put 'call symputx(cats(''length'',_n_),length,''l'');'; put 'call symputx(cats(''fmt'',_n_),fmt,''l'');'; put 'call symputx(cats(''type'',_n_),type,''l'');'; put 'call symputx(cats(''typelong'',_n_),typelong,''l'');'; put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');'; put '/* overwritten when fmt=Y and a custom format exists in catalog */'; put 'if typelong=''num'' then call symputx(cats(''fmtlen'',_n_),200,''l'');'; put 'else call symputx(cats(''fmtlen'',_n_),min(32767,ceil((length+10)*1.5)),''l'');'; put 'run;'; put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql;'; put 'select count(*) into: lastobs from &ds;'; put '%if &maxobs ne MAX %then %let lastobs=%sysfunc(min(&lastobs,&maxobs));'; put '%if &engine=PROCJSON %then %do;'; put '%if &missing=STRING %then %do;'; put '%put &sysmacroname: Special Missings not supported in proc json.;'; put '%put &sysmacroname: Switching to DATASTEP engine;'; put '%goto datastep;'; put '%end;'; put 'data &tempds;'; put 'set &ds;'; put '&stmt_obs;'; put '%if &fmt=N %then format _numeric_ best32.;;'; put '/* PRETTY is necessary to avoid line truncation in large files */'; put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';'; put 'proc json out=_sjs2 pretty'; put '%if &action=ARR %then nokeys ;'; put ';export &tempds / nosastags fmtnumeric;'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs2 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs2 clear;'; put '%end;'; put '%else %if &engine=DATASTEP %then %do;'; put '%datastep:'; put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1'; put '%then %do;'; put '%put &sysmacroname: &ds NOT FOUND!!!;'; put '%return;'; put '%end;'; put '%if &fmt=Y %then %do;'; put '/**'; put '* Extract format definitions'; put '* First, by getting library locations from dictionary.formats'; put '* Then, by exporting the width using proc format'; put '* Cannot use maxw from sashelp.vformat as not always populated'; put '* Cannot use fmtinfo() as not supported in all flavours'; put '*/'; put '%let tmpds1=%substr(fmtsum%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds2=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds3=%substr(cntl%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put '%let tmpds4=%substr(col%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);'; put 'proc sql noprint;'; put 'create table &tmpds1 as'; put 'select cats(libname,''.'',memname) as FMTCAT,'; put 'FMTNAME'; put 'from dictionary.formats'; put 'where fmttype=''F'' and libname is not null'; put 'and fmtname in (select format from &colinfo where format is not null)'; put 'order by 1;'; put 'create table &tmpds2('; put 'FMTNAME char(32),'; put 'LENGTH num'; put ');'; put '%local catlist cat fmtlist i;'; put 'select distinct fmtcat into: catlist separated by '' '' from &tmpds1;'; put '%do i=1 %to %sysfunc(countw(&catlist,%str( )));'; put '%let cat=%scan(&catlist,&i,%str( ));'; put 'proc sql;'; put 'select distinct fmtname into: fmtlist separated by '' '''; put 'from &tmpds1 where fmtcat="&cat";'; put 'proc format lib=&cat cntlout=&tmpds3(keep=fmtname length);'; put 'select &fmtlist;'; put 'run;'; put 'proc sql;'; put 'insert into &tmpds2 select distinct fmtname,length from &tmpds3;'; put '%end;'; put 'proc sql;'; put 'create table &tmpds4 as'; put 'select a.*, b.length as MAXW'; put 'from &colinfo a'; put 'left join &tmpds2 b'; put 'on cats(a.format)=cats(upcase(b.fmtname))'; put 'order by a.varnum;'; put 'data _null_;'; put 'set &tmpds4;'; put 'if not missing(maxw);'; put 'call symputx('; put 'cats(''fmtlen'',_n_),'; put '/* vars need extra padding due to JSON escaping of special chars */'; put 'min(32767,ceil((max(length,maxw)+10)*1.5))'; put ',''l'''; put ');'; put 'run;'; put '/* configure varlenchk - as we are explicitly shortening the variables */'; put '%let optval=%sysfunc(getoption(varlenchk));'; put 'options varlenchk=NOWARN;'; put 'data _data_(compress=char);'; put '/* shorten the new vars */'; put 'length'; put '%do i=1 %to &numcols;'; put '&&name&i $&&fmtlen&i'; put '%end;'; put ';'; put '/* rename on entry */'; put 'set &ds(rename=('; put '%do i=1 %to &numcols;'; put '&&name&i=&&newname&i'; put '%end;'; put '));'; put '&stmt_obs;'; put 'drop'; put '%do i=1 %to &numcols;'; put '&&newname&i'; put '%end;'; put ';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=num %then %do;'; put '&&name&i=cats(put(&&newname&i,&&fmt&i));'; put '%end;'; put '%else %do;'; put '&&name&i=put(&&newname&i,&&fmt&i);'; put '%end;'; put '%end;'; put 'if _error_ then do;'; put 'call symputx(''syscc'',1012);'; put 'stop;'; put 'end;'; put 'run;'; put '%let fmtds=&syslast;'; put 'options varlenchk=&optval;'; put '%end;'; put 'proc format; /* credit yabwon for special null removal */'; put 'value bart (default=40)'; put '%if &missing=NULL %then %do;'; put '._ - .z = null'; put '%end;'; put '%else %do;'; put '._ = [quote()]'; put '. = null'; put '.a - .z = [quote()]'; put '%end;'; put 'other = [best.];'; put 'data &tempds;'; put 'attrib _all_ label='''';'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'length &&name&i $&&fmtlen&i...;'; put 'format &&name&i $&&fmtlen&i...;'; put '%end;'; put '%end;'; put '%if &fmt=Y %then %do;'; put 'set &fmtds;'; put '%end;'; put '%else %do;'; put 'set &ds;'; put '%end;'; put '&stmt_obs;'; put 'format _numeric_ bart.;'; put '%do i=1 %to &numcols;'; put '%if &&typelong&i=char or &fmt=Y %then %do;'; put 'if findc(&&name&i,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put '&&name&i=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else &&name&i=quote(cats(&&name&i));'; put '%end;'; put '%end;'; put 'run;'; put 'filename _sjs3 temp lrecl=131068 ;'; put 'data _null_;'; put 'file _sjs3 encoding=''utf-8'';'; put 'if _n_=1 then put "[";'; put 'set &tempds;'; put 'if _n_>1 then put "," @; put'; put '%if &action=ARR %then "[" ; %else "{" ;'; put '%do i=1 %to &numcols;'; put '%if &i>1 %then "," ;'; put '%if &action=OBJ %then """&&name&i"":" ;'; put '"&&name&i"n /* name literal for reserved variable names */'; put '%end;'; put '%if &action=ARR %then "]" ; %else "}" ; ;'; put '/* close out the table */'; put 'data _null_;'; put 'file _sjs3 mod encoding=''utf-8'';'; put 'put '']'';'; put 'run;'; put 'data _null_;'; put 'infile _sjs3 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs3 clear;'; put '%end;'; put 'proc sql;'; put 'drop table &colinfo, &tempds;'; put '%if %substr(&showmeta,1,1)=Y %then %do;'; put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';'; put 'data _null_;'; put 'file _sjs4;'; put 'length label $350;'; put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";'; put 'do i=1 to &numcols;'; put 'name=quote(trim(symget(cats(''name'',i))));'; put 'format=quote(trim(symget(cats(''fmt'',i))));'; put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));'; put 'length=quote(trim(symget(cats(''length'',i))));'; put 'type=quote(trim(symget(cats(''typelong'',i))));'; put 'if i>1 then put "," @@;'; put 'put name '':{"format":'' format '',"label":'' label'; put ''',"length":'' length '',"type":'' type ''}'';'; put 'end;'; put 'put ''}}'';'; put 'run;'; put '/* send back to webout */'; put 'data _null_;'; put 'infile _sjs4 lrecl=1 recfm=n;'; put 'file &jref mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put 'filename _sjs4 clear;'; put '%end;'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put 'data _null_; file &jref encoding=''utf-8'' mod ;'; put 'put "}";'; put 'run;'; put '%end;'; put '%mend mp_jsonout;'; put '/**'; put '@file'; put '@brief Send data to/from the SAS Viya Job Execution Service'; put '@details This macro should be added to the start of each Job Execution'; put 'Service, **immediately** followed by a call to:'; put '%mv_webout(FETCH)'; put 'This will read all the input data and create same-named SAS datasets in the'; put 'WORK library. You can then insert your code, and send data back using the'; put 'following syntax:'; put 'data some datasets; * make some data ;'; put 'retain some columns;'; put 'run;'; put '%mv_webout(OPEN)'; put '%mv_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mv_webout(OBJ,datasets) * Object format, easier to work with ;'; put '%mv_webout(CLOSE)'; put '@param [in] action Either OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; put '@param [in] _webout= fileref for returning the json'; put '@param [out] fref=(_mvwtemp) Temp fileref to which to write the output'; put '@param [out] dslabel= value to use instead of table name for sending to JSON'; put '@param [in] fmt= (N) Setting Y converts all vars to their formatted values'; put '@param [in] stream=(Y) Change to N if not streaming to _webout'; put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL'; put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)'; put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,'; put 'such as the column formats and types. The metadata is contained inside an'; put 'object with the same name as the table but prefixed with a dollar sign - ie,'; put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`'; put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '@param [in] workobs= (0) When set to a positive integer, will create a new'; put 'output object (WORK) which contains this number of observations from all'; put 'tables in the WORK library.'; put '

SAS Macros

'; put '@li mp_jsonout.sas'; put '@li mf_getuser.sas'; put '

Related Macros

'; put '@li ms_webout.sas'; put '@li mm_webout.sas'; put '@version Viya 3.3'; put '@author Allan Bowe, source: https://github.com/sasjs/core'; put '**/'; put '%macro mv_webout(action,ds,fref=_mvwtemp,dslabel=,fmt=N,stream=Y,missing=NULL'; put ',showmeta=N,maxobs=MAX,workobs=0'; put ');'; put '%global _webin_file_count _webin_fileuri _debug _omittextlog _webin_name'; put 'sasjs_tables SYS_JES_JOB_URI;'; put '%if %index("&_debug",log) %then %let _debug=131;'; put '%local i tempds table;'; put '%let action=%upcase(&action);'; put '%if &action=FETCH %then %do;'; put '%if %upcase(&_omittextlog)=FALSE or %str(&_debug) ge 131 %then %do;'; put 'options mprint notes mprintnest;'; put '%end;'; put '%if not %symexist(_webin_fileuri1) %then %do;'; put '%let _webin_file_count=%eval(&_webin_file_count+0);'; put '%let _webin_fileuri1=&_webin_fileuri;'; put '%let _webin_name1=&_webin_name;'; put '%end;'; put '/* if the sasjs_tables param is passed, we expect param based upload */'; put '%if %length(&sasjs_tables.X)>1 %then %do;'; put '/* convert data from macro variables to datasets */'; put '%do i=1 %to %sysfunc(countw(&sasjs_tables));'; put '%let table=%scan(&sasjs_tables,&i,%str( ));'; put '%if %symexist(sasjs&i.data0)=0 %then %let sasjs&i.data0=1;'; put 'data _null_;'; put 'file "%sysfunc(pathname(work))/&table..csv" recfm=n;'; put 'retain nrflg 0;'; put 'length line $32767;'; put 'do i=1 to &&sasjs&i.data0;'; put 'if &&sasjs&i.data0=1 then line=symget("sasjs&i.data");'; put 'else line=symget(cats("sasjs&i.data",i));'; put 'if i=1 and substr(line,1,7)=''%nrstr('' then do;'; put 'nrflg=1;'; put 'line=substr(line,8);'; put 'end;'; put 'if i=&&sasjs&i.data0 and nrflg=1 then do;'; put 'line=substr(line,1,length(line)-1);'; put 'end;'; put 'put line +(-1) @;'; put 'end;'; put 'run;'; put 'data _null_;'; put 'infile "%sysfunc(pathname(work))/&table..csv" termstr=crlf ;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put 'list;'; put 'data work.&table;'; put 'infile "%sysfunc(pathname(work))/&table..csv" firstobs=2 dsd'; put 'termstr=crlf;'; put 'input &input_statement;'; put 'run;'; put '%end;'; put '%end;'; put '%else %do i=1 %to &_webin_file_count;'; put '/* read in any files that are sent */'; put '/* this part needs refactoring for wide files */'; put 'filename indata filesrvc "&&_webin_fileuri&i" lrecl=999999;'; put 'data _null_;'; put 'infile indata termstr=crlf lrecl=32767;'; put 'input;'; put 'if _n_=1 then call symputx(''input_statement'',_infile_);'; put '%if %str(&_debug) ge 131 %then %do;'; put 'if _n_<20 then putlog _infile_;'; put 'else stop;'; put '%end;'; put '%else %do;'; put 'stop;'; put '%end;'; put 'run;'; put 'data &&_webin_name&i;'; put 'infile indata firstobs=2 dsd termstr=crlf ;'; put 'input &input_statement;'; put 'run;'; put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;'; put '%end;'; put '%end;'; put '%else %if &action=OPEN %then %do;'; put '/* setup webout */'; put 'OPTIONS NOBOMFILE;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '/* setup temp ref */'; put '%if %upcase(&fref) ne _WEBOUT %then %do;'; put 'filename &fref temp lrecl=999999 permission=''A::u::rwx,A::g::rw-,A::o::---'';'; put '%end;'; put '/* setup json */'; put 'data _null_;file &fref;'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'run;'; put '%end;'; put '%else %if &action=ARR or &action=OBJ %then %do;'; put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref'; put ',engine=DATASTEP,missing=&missing,showmeta=&showmeta,maxobs=&maxobs'; put ')'; put '%end;'; put '%else %if &action=CLOSE %then %do;'; put '%if %str(&workobs) > 0 %then %do;'; put '/* send back first XX records of each work table for debugging */'; put 'data;run;%let tempds=%scan(&syslast,2,.);'; put 'ods output Members=&tempds;'; put 'proc datasets library=WORK memtype=data;'; put '%local wtcnt;%let wtcnt=0;'; put 'data _null_;'; put 'set &tempds;'; put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */'; put 'i+1;'; put 'call symputx(cats(''wt'',i),name,''l'');'; put 'call symputx(''wtcnt'',i,''l'');'; put 'data _null_; file &fref mod; put ",""WORK"":{";'; put '%do i=1 %to &wtcnt;'; put '%let wt=&&wt&i;'; put 'data _null_; file &fref mod;'; put 'dsid=open("WORK.&wt",''is'');'; put 'nlobs=attrn(dsid,''NLOBS'');'; put 'nvars=attrn(dsid,''NVARS'');'; put 'rc=close(dsid);'; put 'if &i>1 then put '',''@;'; put 'put " ""&wt"" : {";'; put 'put ''"nlobs":'' nlobs;'; put 'put '',"nvars":'' nvars;'; put '%mp_jsonout(OBJ,&wt,jref=&fref,dslabel=first10rows,showmeta=Y'; put ',maxobs=&workobs'; put ')'; put 'data _null_; file &fref mod;put "}";'; put '%end;'; put 'data _null_; file &fref mod;put "}";run;'; put '%end;'; put '/* close off json */'; put 'data _null_;file &fref mod;'; put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;'; put 'put ",""_DEBUG"" : ""&_debug"" ";'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));'; put 'put '',"AUTOEXEC" : '' autoexec;'; put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";'; put 'SYS_JES_JOB_URI=quote(trim(resolve(symget(''SYS_JES_JOB_URI''))));'; put 'put '',"SYS_JES_JOB_URI" : '' SYS_JES_JOB_URI ;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";'; put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";'; put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));'; put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'length memsize $32;'; put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";'; put 'memsize=quote(cats(memsize));'; put 'put '',"MEMSIZE" : '' memsize;'; put 'put "}";'; put '%if %upcase(&fref) ne _WEBOUT and &stream=Y %then %do;'; put 'data _null_; rc=fcopy("&fref","_webout");run;'; put '%end;'; put '%end;'; put '%mend mv_webout;'; put '/* if calling viya service with _job param, _program will conflict */'; put '/* so we provide instead as __program */'; put '%global __program _program;'; put '%let _program=%sysfunc(coalescec(&__program,&_program));'; put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mv_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt'; put ',missing=&missing'; put ',showmeta=&showmeta'; put ',maxobs=&maxobs'; put ') %mend;'; put '/* provide additional debug info */'; put '%global _program;'; put '%put &=syscc;'; put '%put user=%mf_getuser();'; put '%put pgm=&_program;'; put '%put timestamp=%sysfunc(datetime(),datetime19.);'; put '* Service Variables start;'; put '* Service Variables end;'; put '* SAS Macros start;'; put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)'; put ', errds=work.mp_abort_errds'; put ', mode=REGULAR'; put ')/*/STORE SOURCE*/;'; put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;'; put '%local fref fid i;'; put '%if not(%eval(%unquote(&iftrue))) %then %return;'; put '%put NOTE: /// mp_abort macro executing //;'; put '%if %length(&mac)>0 %then %put NOTE- called by &mac;'; put '%put NOTE - &msg;'; put '%if %symexist(_SYSINCLUDEFILEDEVICE)'; put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */'; put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)'; put '%then %do;'; put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;'; put 'data &errds;'; put 'iftrue=''1=1'';'; put 'length mac $100 msg $5000;'; put 'mac=symget(''mac'');'; put 'msg=symget(''msg'');'; put 'run;'; put 'data _null_;'; put 'abort cancel FILE;'; put 'run;'; put '%return;'; put '%end;'; put '%end;'; put '/* Web App Context */'; put '%if %symexist(_PROGRAM)'; put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)'; put 'or &mode=INCLUDE'; put '%then %do;'; put 'options obs=max replace mprint;'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"'; put '%then %do;'; put 'options nosyntaxcheck;'; put '%end;'; put '%if &mode=INCLUDE %then %do;'; put '%if %sysfunc(exist(&errds))=1 %then %do;'; put 'data _null_;'; put 'set &errds;'; put 'call symputx(''iftrue'',iftrue,''l'');'; put 'call symputx(''mac'',mac,''l'');'; put 'call symputx(''msg'',msg,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if (&iftrue)=0 %then %return;'; put '%end;'; put '%else %do;'; put '%put &sysmacroname: No include errors found;'; put '%return;'; put '%end;'; put '%end;'; put '/* extract log errs / warns, if exist */'; put '%local logloc logline;'; put '%global logmsg; /* capture global messages */'; put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;'; put '%else %let logloc=%qsysfunc(getoption(LOG));'; put 'proc printto log=log;run;'; put '%let logline=0;'; put '%if %length(&logloc)>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input; putlog _infile_;'; put 'i=1;'; put 'retain logonce 0;'; put 'if ('; put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"'; put ') and logonce=0 then'; put 'do;'; put 'call symputx(''logline'',_n_);'; put 'logonce+1;'; put 'end;'; put 'run;'; put '/* capture log including lines BEFORE the err */'; put '%if &logline>0 %then %do;'; put 'data _null_;'; put 'infile &logloc lrecl=5000;'; put 'input;'; put 'i=1;'; put 'stoploop=0;'; put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);'; put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));'; put 'input;'; put 'i+1;'; put 'stoploop=1;'; put 'end;'; put 'if stoploop=1 then stop;'; put 'run;'; put '%end;'; put '%end;'; put '%if %symexist(SYS_JES_JOB_URI) %then %do;'; put '/* setup webout for Viya */'; put 'options nobomfile;'; put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;'; put 'filename _webout temp lrecl=999999 mod;'; put '%end;'; put '%else %do;'; put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"'; put 'name="_webout.json" lrecl=999999 mod;'; put '%end;'; put '%end;'; put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;'; put 'options nobomfile;'; put '/* set up http header for SASjs Server */'; put '%let fid=%sysfunc(fopen(&fref,A));'; put '%if &fid=0 %then %do;'; put '%put %str(ERR)OR: %sysfunc(sysmsg());'; put '%return;'; put '%end;'; put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));'; put '%let rc=%sysfunc(fwrite(&fid));'; put '%let rc=%sysfunc(fclose(&fid));'; put '%let rc=%sysfunc(filename(&fref));'; put '%end;'; put '/* send response in SASjs JSON format */'; put 'data _null_;'; put 'file _webout mod lrecl=32000 encoding=''utf-8'';'; put 'length msg syswarningtext syserrortext $32767 mode $10 ;'; put 'sasdatetime=datetime();'; put 'msg=symget(''msg'');'; put '%if &logline>0 %then %do;'; put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));'; put '%end;'; put '/* escape the escapes */'; put 'msg=tranwrd(msg,''\'',''\\'');'; put '/* escape the quotes */'; put 'msg=tranwrd(msg,''"'',''\"'');'; put '/* ditch the CRLFs as chrome complains */'; put 'msg=compress(msg,,''kw'');'; put '/* quote without quoting the quotes (which are escaped instead) */'; put 'msg=cats(''"'',msg,''"'');'; put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));'; put 'else debug=''""'';'; put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';'; put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';'; put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';'; put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';'; put 'put '',"sasjsAbort" : [{'';'; put 'put '' "MSG":'' msg ;'; put 'put '' ,"MAC": "'' "&mac" ''"}]'';'; put 'put ",""SYSUSERID"" : ""&sysuserid"" ";'; put 'put '',"_DEBUG":'' debug ;'; put 'if symexist(''_metauser'') then do;'; put '_METAUSER=quote(trim(symget(''_METAUSER'')));'; put 'put ",""_METAUSER"": " _METAUSER;'; put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));'; put 'put '',"_METAPERSON": '' _METAPERSON;'; put 'end;'; put 'if symexist(''SYS_JES_JOB_URI'') then do;'; put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));'; put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;'; put 'end;'; put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));'; put 'put '',"_PROGRAM" : '' _PROGRAM ;'; put 'put ",""SYSCC"" : ""&syscc"" ";'; put 'syserrortext=cats(symget(''syserrortext''));'; put 'if findc(syserrortext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syserrortext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syserrortext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syserrortext=cats(''"'',syserrortext,''"'');'; put 'put '',"SYSERRORTEXT" : '' syserrortext;'; put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";'; put 'put ",""SYSJOBID"" : ""&sysjobid"" ";'; put 'put ",""SYSSCPL"" : ""&sysscpl"" ";'; put 'put ",""SYSSITE"" : ""&syssite"" ";'; put 'sysvlong=quote(trim(symget(''sysvlong'')));'; put 'put '',"SYSVLONG" : '' sysvlong;'; put 'syswarningtext=cats(symget(''syswarningtext''));'; put 'if findc(syswarningtext,''"\''!!''0A0D09000E0F010210111A''x) then do;'; put 'syswarningtext=''"''!!trim('; put 'prxchange(''s/"/\\"/'',-1, /* double quote */'; put 'prxchange(''s/\x0A/\n/'',-1, /* new line */'; put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */'; put 'prxchange(''s/\x09/\\t/'',-1, /* tab */'; put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */'; put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */'; put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */'; put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */'; put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */'; put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */'; put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */'; put 'prxchange(''s/\x1A/\\u001A/'',-1, /* SUB */'; put 'prxchange(''s/\\/\\\\/'',-1,syswarningtext)'; put ')))))))))))))!!''"'';'; put 'end;'; put 'else syswarningtext=cats(''"'',syswarningtext,''"'');'; put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;'; put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';'; put 'put "}" ;'; put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';'; put 'run;'; put '%put _all_;'; put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;'; put 'data _null_;'; put 'putlog ''stpsrvset program err and syscc'';'; put 'rc=stpsrvset(''program error'', 0);'; put 'call symputx("syscc",0,"g");'; put 'run;'; put '%if &sysscp=WIN'; put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */'; put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"'; put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;'; put '/* skip approach (below) does not work in windows m6+ envs */'; put 'endsas;'; put '%end;'; put '%else %do;'; put '/**'; put '* endsas kills 9.4m3 deployments by orphaning multibridges.'; put '* Abort variants are ungraceful (non zero return code)'; put '* This approach lets SAS run silently until the end :-)'; put '* Caution - fails when called within a %include within a macro'; put '* Use mp_include() to handle this.'; put '*/'; put 'filename skip temp;'; put 'data _null_;'; put 'file skip;'; put 'put ''%macro skip();'';'; put 'comment ''%mend skip; -> fix lint '';'; put 'put ''%macro skippy();'';'; put 'comment ''%mend skippy; -> fix lint '';'; put 'run;'; put '%inc skip;'; put '%end;'; put '%end;'; put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;'; put '/* endsas kills the session making it harder to fetch results */'; put 'data _null_;'; put 'syswarningtext=symget(''syswarningtext'');'; put 'syserrortext=symget(''syserrortext'');'; put 'abort_msg=symget(''msg'');'; put 'syscc=symget(''syscc'');'; put 'sysuserid=symget(''sysuserid'');'; put 'iftrue=symget(''iftrue'');'; put 'put (_all_)(/=);'; put 'call symputx(''syscc'',0);'; put 'abort cancel nolist;'; put 'run;'; put '%end;'; put '%else %do;'; put '%abort cancel;'; put '%end;'; put '%end;'; put '%else %do;'; put '%put _all_;'; put '%abort cancel;'; put '%end;'; put '%mend mp_abort;'; put '/** @endcond */'; put '%macro mf_getapploc(pgm);'; put '%if "&pgm"="" %then %do;'; put '%if %symexist(_program) %then %let pgm=&_program;'; put '%else %do;'; put '%put &sysmacroname: No value provided and no _program variable available;'; put '%return;'; put '%end;'; put '%end;'; put '%local root;'; put '/**'; put '* First check we are not in the tests/macros folder (which has no subfolders)'; put '* or specifically in the testsetup or testteardown services'; put '*/'; put '%if %index(&pgm,/tests/macros/)'; put 'or %index(&pgm,/tests/testsetup)'; put 'or %index(&pgm,/tests/testteardown)'; put '%then %do;'; put '%let root=%substr(&pgm,1,%index(&pgm,/tests)-1);'; put '&root'; put '%return;'; put '%end;'; put '/**'; put '* Next, move up two levels to avoid matches on subfolder or service name'; put '*/'; put '%let root=%substr(&pgm,1,%length(&pgm)-%length(%scan(&pgm,-1,/))-1);'; put '%let root=%substr(&root,1,%length(&root)-%length(%scan(&root,-1,/))-1);'; put '%if %index(&root,/tests/) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/tests/)-1);'; put '%end;'; put '%else %if %index(&root,/services) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/services)-1);'; put '%end;'; put '%else %if %index(&root,/jobs) %then %do;'; put '%let root=%substr(&root,1,%index(&root,/jobs)-1);'; put '%end;'; put '%else %put &sysmacroname: Could not find an app location from &pgm;'; put '&root'; put '%mend mf_getapploc ;'; put '%macro dc_getsettings();'; put '%global DC_LIBNAME DC_LIBREF;'; put '%if %symexist(_PROGRAM) %then %let root=&_program;'; put '%else %do;'; put '%global _metauser;'; put '%let _metauser=&sysuserid;'; put '/* to mimic a "real" _program we need to give a dummy role and stp name */'; put '%let root=/dummyRole/dummyName;'; put '%end;'; put '/* the DC precode is stored in the Admin folder in the root of'; put 'the project. Lets find that root. */'; put '%put &=root;'; put '%let root=%mf_getapploc();'; put '%put &=root;'; put '/* Now we know the root location we can retrieve the params */'; put '/* only do this if the lib is not assigned - this is an expensive Viya call */'; put '%if x&dc_libref.x=xx %then %do;'; put '%put fetching settings from API - this is an expensive call;'; put '%put it is recommended to put these values in the autoexec;'; put 'filename __dc filesrvc folderpath="&root/services";'; put '%inc __dc(settings)/source2;'; put '%end;'; put '%let DC_LIBNAME=&dc_libref;'; put '%let mpelib=&DC_LIBREF;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem running &sysmacroname (&syswarningtext &syserrortext))'; put ')'; put '%mend dc_getsettings;'; put '%macro mf_fmtdttm('; put ')/*/STORE SOURCE*/;'; put '%if "&sysver"="9.2" or "&sysver"="9.3"'; put 'or ("&sysver"="9.4" and "%substr(&SYSVLONG,9,1)" le "3")'; put 'or "%substr(&sysver,1,1)"="4"'; put 'or "%substr(&sysver,1,1)"="5"'; put '%then %do;DATETIME19.3%end;'; put '%else %do;E8601DT26.6%end;'; put '%mend mf_fmtdttm;'; put '%macro mf_getuser('; put ')/*/STORE SOURCE*/;'; put '%local user;'; put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;'; put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;'; put '%let user=&SYS_COMPUTE_SESSION_OWNER;'; put '%end;'; put '%else %if %symexist(_metaperson) %then %do;'; put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;'; put '/* sometimes SAS will add @domain extension - remove for consistency */'; put '/* but be sure to quote in case of usernames with commas */'; put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));'; put '%end;'; put '%else %let user=&sysuserid;'; put '%quote(&user)'; put '%mend mf_getuser;'; put '%macro mp_init(prefix=SASJS'; put ')/*/STORE SOURCE*/;'; put '%if %symexist(SASJS_PREFIX) %then %return; /* only run once */'; put '%global'; put 'SASJS_PREFIX /* the ONLY hard-coded global macro variable in SASjs */'; put '&prefix._FUNCTIONS /* used in mcf_init() to track core function compilation */'; put '&prefix._INIT_NUM /* initialisation time as numeric */'; put '&prefix._INIT_DTTM /* initialisation time in E8601DT26.6 format */'; put '&prefix.WORK /* avoid typing %sysfunc(pathname(work)) every time */'; put ';'; put '%let sasjs_prefix=&prefix;'; put 'data _null_;'; put 'dttm=datetime();'; put 'call symputx("&sasjs_prefix._init_num",dttm,''g'');'; put 'call symputx("&sasjs_prefix._init_dttm",put(dttm,E8601DT26.6),''g'');'; put 'call symputx("&sasjs_prefix.work",pathname(''WORK''),''g'');'; put 'run;'; put 'options'; put 'compress=CHAR /* default is none so ensure we have something! */'; put 'datastmtchk=ALLKEYWORDS /* protection from overwriting input datasets */'; put 'errorcheck=STRICT /* catch errs in libname/filename statements */'; put 'fmterr /* ensure err when a format cannot be found */'; put 'mergenoby=%str(ERR)OR /* throw err when a merge has no BY variables */'; put 'missing=. /* changing this can cause hard to detect errs */'; put 'noquotelenmax /* avoid warnings for long strings */'; put 'noreplace /* avoid overwriting permanent datasets */'; put 'ps=max /* reduce log size slightly */'; put 'ls=max /* reduce log even more and avoid word truncation */'; put 'validmemname=COMPATIBLE /* avoid special characters etc in table names */'; put 'validvarname=V7 /* avoid special characters etc in variable names */'; put 'varinitchk=%str(ERR)OR /* avoid data mistakes from variable name typos */'; put 'varlenchk=%str(ERR)OR /* fail hard if truncation (data loss) can result */'; put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5" %then %do;'; put 'noautocorrect /* disallow misspelled procedure names */'; put 'dsoptions=note2err /* undocumented - convert bad NOTEs to ERRs */'; put '/* turn off with dsoptions=nonote2err */'; put '%end;'; put ';'; put '%mend mp_init;'; put '%macro mpeinit(fetch=YES);'; put '%global mpeinit'; put 'mpeadmins /* group with unrestricted Meditor access */'; put 'mpelocapprovals /* location for landing and staging files */'; put 'mpelib /* location of configuration tables for DC */'; put 'dc_repo_users /* location of user / group metadata */'; put '/* extracted in dc_getsettings */'; put 'dc_activation_key'; put 'dc_licence_key'; put 'dc_locale'; put 'dc_request_logs'; put 'dc_restrict_viewer'; put 'dc_dttmtfmt /* can be overridden in dc_getsettings */'; put '_debug /* automatic variable when provided in URL */'; put 'sasjs_mdebug /* used to show extra info when _debug is enabled */'; put 'sqlrc /* avoid errors when using DI jobs in HOOK scripts */'; put ';'; put '%if &mpeinit=1 %then %return;'; put '%else %let mpeinit=1;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Problem on service startup (&syswarningtext &syserrortext))'; put ')'; put '%mp_init()'; put '%if &fetch=YES %then %do;'; put '%webout(FETCH)'; put '%end;'; put '%global _CLIENTNAME;'; put '%mp_abort(iftrue= (&_CLIENTNAME=SAS Enterprise Guide)'; put ',mac=&_program..sas'; put ',msg=%str(Data Controller is a web app and should not be executed from EG)'; put ')'; put 'options urlencoding=utf8 nobomfile lrecl=32767;'; put '%let perf=%sysfunc(datetime());'; put '%put perfdiff: 0;'; put '%let dc_locale=SYSTEM; /* default if not set */'; put '/**'; put '* E8601DT26.6 has widest database support - but not all SAS flavours can'; put '* handle it. Override in the settings STP if needed.'; put '*/'; put 'data _null_;'; put 'dc_dttmtfmt=''"%sysfunc(datetime(),''!!"%mf_fmtdttm()"!!'')"dt'';'; put 'call symputx(''dc_dttmtfmt'',dc_dttmtfmt);'; put 'put dc_dttmtfmt=;'; put 'run;'; put '%put &=dc_dttmtfmt;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc prior to dc_getsettings)'; put ')'; put '%dc_getsettings()'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=&syscc after dc_getsettings)'; put ')'; put 'data _null_;'; put 'set &DC_LIBREF..mpe_config(where=('; put 'var_scope="DC"'; put 'and &dc_dttmtfmt lt tx_to'; put 'and var_active=1'; put '));'; put 'call symputx(var_name,var_value,''G'');'; put 'putlog var_name "=" var_value;'; put 'run;'; put '%let mpelib=&dc_libref;'; put '%let mpeadmins=&dc_admin_group;'; put '%let mpelocapprovals=&dc_staging_area;'; put '%let dc_repo_users=&dc_repo_users;'; put '%if &dc_locale ne SYSTEM %then %do;'; put 'options locale=&dc_locale;'; put '%end;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem during compilation or with STP precode (&syswarningtext))'; put ')'; put '%if "&_debug"="2477" or "&_debug"="fields,log,trace" or "&_debug"="131"'; put '%then %do;'; put '%let sasjs_mdebug=1;'; put '%end;'; put '%mend mpeinit;'; put '%macro mf_mval(var);'; put '%if %symexist(&var) %then %do;'; put '%superq(&var)'; put '%end;'; put '%mend mf_mval;'; put '%macro mf_trimstr(basestr,trimstr);'; put '%local baselen trimlen trimval;'; put '/* return if basestr is shorter than trimstr (or 0) */'; put '%let baselen=%length(%superq(basestr));'; put '%let trimlen=%length(%superq(trimstr));'; put '%if &baselen < &trimlen or &baselen=0 %then %return;'; put '/* obtain the characters from the end of basestr */'; put '%let trimval=%qsubstr(%superq(basestr)'; put ',%length(%superq(basestr))-&trimlen+1'; put ',&trimlen);'; put '/* compare and if matching, chop it off! */'; put '%if %superq(basestr)=%superq(trimstr) %then %do;'; put '%return;'; put '%end;'; put '%else %if %superq(trimval)=%superq(trimstr) %then %do;'; put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)'; put '%end;'; put '%else %do;'; put '&basestr'; put '%end;'; put '%mend mf_trimstr;'; put '%macro mf_getplatform(switch'; put ')/*/STORE SOURCE*/;'; put '%local a b c;'; put '%if &switch.NONE=NONE %then %do;'; put '%if %symexist(sasjsprocessmode) %then %do;'; put '%if &sasjsprocessmode=Stored Program %then %do;'; put 'SASJS'; put '%return;'; put '%end;'; put '%end;'; put '%if %symexist(sysprocessmode) %then %do;'; put '%if "&sysprocessmode"="SAS Object Server"'; put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;'; put 'SASVIYA'; put '%end;'; put '%else %if "&sysprocessmode"="SAS Stored Process Server"'; put 'or "&sysprocessmode"="SAS Workspace Server"'; put '%then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;'; put 'SASMETA'; put '%return;'; put '%end;'; put '%else %do;'; put 'BASESAS'; put '%return;'; put '%end;'; put '%end;'; put '%else %if &switch=SASSTUDIO %then %do;'; put '/* return the version of SAS Studio else 0 */'; put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;'; put '%let a=%mf_mval(_CLIENTVERSION);'; put '%let b=%scan(&a,1,.);'; put '%if %eval(&b >2) %then %do;'; put '&b'; put '%end;'; put '%else 0;'; put '%end;'; put '%else 0;'; put '%end;'; put '%else %if &switch=VIYARESTAPI %then %do;'; put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)'; put '%end;'; put '%mend mf_getplatform;'; put '%macro mpeterm();'; put '%local oldloc;'; put 'data _null_;'; put 'if symexist(''SYSPRINTTOLOG'') then oldloc=symget(''SYSPRINTTOLOG'');'; put 'else oldloc=getoption(''LOG'');'; put 'if subpad(oldloc,1,1) not in (''"'',"''",'' '') then oldloc=quote(cats(oldloc));'; put 'call symputx(''oldloc'',oldloc,''l'');'; put 'run;'; put '%if %length(&oldloc)>0 %then %do;'; put 'proc printto log=log;'; put 'run;'; put 'data _null_;'; put 'infile &oldloc;'; put 'input; putlog _infile_;'; put 'run;'; put '%end;'; put '%if %sysfunc(exist(&dc_libref..mpe_requests)) and %mf_getplatform() ne SASVIYA'; put 'and &DC_REQUEST_LOGS ne NO'; put '%then %do;'; put 'data ;'; put 'if 0 then set &dc_libref..mpe_requests;'; put 'request_dttm=%sysfunc(datetime());'; put 'request_user="%mf_getuser()";'; put 'request_service="%scan(&_program,-2,/)/%scan(&_program,-1,/)";'; put 'request_params='''';'; put '/* sleep random amount to avoid parallel update attempts */'; put 'call sleep(ranuni(0)*0.1,1);'; put 'output;stop;'; put 'proc append base=&dc_libref..mpe_requests data=&syslast force nowarn;'; put 'run;'; put '%end;'; put '%mend mpeterm;'; put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);'; put '%local rc fname;'; put '%if &prefix=0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%end;'; put '%else %do;'; put '%local x len;'; put '%let len=%eval(8-%length(&prefix));'; put '%let x=0;'; put '%do x=0 %to &maxtries;'; put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);'; put '%if %sysfunc(fileref(&fname)) > 0 %then %do;'; put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));'; put '%if &rc %then %put %sysfunc(sysmsg());'; put '&fname'; put '%return;'; put '%end;'; put '%end;'; put '%put unable to find available fileref after &maxtries attempts;'; put '%end;'; put '%mend mf_getuniquefileref;'; put '%macro mf_getuniquelibref(prefix=mc,maxtries=1000);'; put '%local x;'; put '%if ( %length(&prefix) gt 7 ) %then %do;'; put '%put %str(ERR)OR: The prefix parameter cannot exceed 7 characters.;'; put '0'; put '%return;'; put '%end;'; put '%else %if (%sysfunc(NVALID(&prefix,v7))=0) %then %do;'; put '%put %str(ERR)OR: Invalid prefix (&prefix);'; put '0'; put '%return;'; put '%end;'; put '/* Set maxtries equal to ''10 to the power of [# unused characters] - 1'' */'; put '%let maxtries=%eval(10**(8-%length(&prefix))-1);'; put '%do x = 0 %to &maxtries;'; put '%if %sysfunc(libref(&prefix&x)) ne 0 %then %do;'; put '&prefix&x'; put '%return;'; put '%end;'; put '%let x = %eval(&x + 1);'; put '%end;'; put '%put %str(ERR)OR: No usable libref in range &prefix.0-&maxtries;'; put '%put %str(ERR)OR- Try reducing the prefix or deleting some libraries!;'; put '0'; put '%mend mf_getuniquelibref;'; put '%macro mv_getgroupmembers(group'; put ',access_token_var=ACCESS_TOKEN'; put ',grant_type=sas_services'; put ',outds=work.viyagroupmembers'; put ');'; put '%local oauth_bearer;'; put '%if &grant_type=detect %then %do;'; put '%if %symexist(&access_token_var) %then %let grant_type=authorization_code;'; put '%else %let grant_type=sas_services;'; put '%end;'; put '%if &grant_type=sas_services %then %do;'; put '%let oauth_bearer=oauth_bearer=sas_services;'; put '%let &access_token_var=;'; put '%end;'; put '%mp_abort(iftrue=(&grant_type ne authorization_code and &grant_type ne password'; put 'and &grant_type ne sas_services'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Invalid value for grant_type: &grant_type)'; put ')'; put 'options noquotelenmax;'; put '%local base_uri; /* location of rest apis */'; put '%let base_uri=%mf_getplatform(VIYARESTAPI);'; put '/* fetching folder details for provided path */'; put '%local fname1;'; put '%let fname1=%mf_getuniquefileref();'; put 'proc http method=''GET'' out=&fname1 &oauth_bearer'; put 'url="&base_uri/identities/groups/&group/members?limit=10000";'; put 'headers'; put '%if &grant_type=authorization_code %then %do;'; put '"Authorization"="Bearer &&&access_token_var"'; put '%end;'; put '"Accept"="application/json";'; put 'run;'; put '/*data _null_;infile &fname1;input;putlog _infile_;run;*/'; put '%if &SYS_PROCHTTP_STATUS_CODE=404 %then %do;'; put '%put NOTE: Group &group not found!!;'; put 'data &outds;'; put 'length id name $43;'; put 'call missing(of _all_);'; put 'run;'; put '%end;'; put '%else %do;'; put '%mp_abort(iftrue=(&SYS_PROCHTTP_STATUS_CODE ne 200)'; put ',mac=&sysmacroname'; put ',msg=%str(&SYS_PROCHTTP_STATUS_CODE &SYS_PROCHTTP_STATUS_PHRASE)'; put ')'; put '%let libref1=%mf_getuniquelibref();'; put 'libname &libref1 JSON fileref=&fname1;'; put 'data &outds;'; put 'length id name $43;'; put 'set &libref1..items;'; put 'run;'; put 'libname &libref1 clear;'; put '%end;'; put '/* clear refs */'; put 'filename &fname1 clear;'; put '%mend mv_getgroupmembers;'; put '%macro dc_getgroupmembers(group,outds=dc_getgroupmembers);'; put '%mv_getgroupmembers(%str(&group),outds=&outds)'; put 'data &outds ;'; put 'length membername $64;'; put 'set &outds(rename=(name=MemberName));'; put 'run;'; put '%mend dc_getgroupmembers;'; put '* SAS Macros end;'; put '* SAS Includes start;'; put '* SAS Includes end;'; put '* Binary Files start;'; put '* Binary Files end;'; put '* ServiceInit start;'; put 'options noquotelenmax ps=max;'; put 'cas dcsession sessopts=(caslib=casuser);'; put 'caslib _all_ assign;'; put 'libname casuser cas caslib=casuser;'; put '/*caslib casmusic path=''/opt/sas/viya/cascache/tracks'' libref=casmusic ;*/'; put '%let syscc=0;'; put '%put _global_;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file usermembersbygroup.sas'; put '@brief List the members of a group'; put '

SAS Macros

'; put '@li mp_abort.sas'; put '@li mpeinit.sas'; put '@li dc_getgroupmembers.sas'; put '@version 9.3'; put '@author 4GL Apps Ltd'; put '@copyright 4GL Apps Ltd. This code may only be used within Data Controller'; put 'and may not be re-distributed or re-sold without the express permission of'; put '4GL Apps Ltd.'; put '**/'; put '%mpeinit()'; put 'data _null_;'; put 'set iwant;'; put 'call symputx(''groupid'',groupid);'; put 'run;'; put '%dc_getgroupmembers(%str(&groupid),outds=sasMembers)'; put 'proc sort data=sasMembers;'; put 'by membername;'; put 'run;'; put '%webout(OPEN)'; put '%webout(OBJ,sasMembers)'; put '%webout(CLOSE)'; put '* Service end;'; run; %mv_createwebservice(path=&appLoc/&path, name=&service, code=sascode,replace=yes) filename sascode clear; %let path=services/web; %let filename=411.26896d93e056dcb9.js; filename filecode temp lrecl=427440; data _null_; file filecode; put 'KCgpPT57InVzZSBzdHJpY3QiO3ZhciBEcj0xMjAwLFJ0PTEyNTIsRGM9Wzg3NCw5MzIsOTM2LDk0OSw5NTAsMTI1MCwxMjUxLDEyNTIsMTI1MywxMjU0LDEyNTUsMTI1NiwxMjU3LDEyNTgsMWU0XSxMMD17MDoxMjUyLDE6NjUwMDEsMjo2NTAwMSw3NzoxZTQsMTI4OjkzMiwxMjk6OTQ5LDEz'@; put 'MDoxMzYxLDEzNDo5MzYsMTM2Ojk1MCwxNjE6MTI1MywxNjI6MTI1NCwxNjM6MTI1OCwxNzc6MTI1NSwxNzg6MTI1NiwxODY6MTI1NywyMDQ6MTI1MSwyMjI6ODc0LDIzODoxMjUwLDI1NToxMjUyLDY5OjY5Njl9LGUwPWZ1bmN0aW9uKGUpey0xIT1EYy5pbmRleE9mKGUpJiYoUnQ9TDBbMF09'@; put 'ZSl9LE1yPWZ1bmN0aW9uKGUpe0RyPWUsZTAoZSl9O2Z1bmN0aW9uIHIwKCl7TXIoMTIwMCksZnVuY3Rpb24gT2MoKXtlMCgxMjUyKX0oKX1mdW5jdGlvbiB0MChlKXtmb3IodmFyIHQ9W10scj0wLGE9ZS5sZW5ndGg7cjxhOysrcil0W3JdPWUuY2hhckNvZGVBdChyKTtyZXR1cm4gdH1mdW5j'@; put 'dGlvbiBhaShlKXtmb3IodmFyIHQ9W10scj0wO3I8ZS5sZW5ndGg+PjE7KytyKXRbcl09U3RyaW5nLmZyb21DaGFyQ29kZShlLmNoYXJDb2RlQXQoMipyKzEpKyhlLmNoYXJDb2RlQXQoMipyKTw8OCkpO3JldHVybiB0LmpvaW4oIiIpfXZhciBPZSxRdD1mdW5jdGlvbihlKXt2YXIgdD1lLmNo'@; put 'YXJDb2RlQXQoMCkscj1lLmNoYXJDb2RlQXQoMSk7cmV0dXJuIDI1NT09dCYmMjU0PT1yP2Z1bmN0aW9uIEljKGUpe2Zvcih2YXIgdD1bXSxyPTA7cjxlLmxlbmd0aD4+MTsrK3IpdFtyXT1TdHJpbmcuZnJvbUNoYXJDb2RlKGUuY2hhckNvZGVBdCgyKnIpKyhlLmNoYXJDb2RlQXQoMipyKzEp'@; put 'PDw4KSk7cmV0dXJuIHQuam9pbigiIil9KGUuc2xpY2UoMikpOjI1ND09dCYmMjU1PT1yP2FpKGUuc2xpY2UoMikpOjY1Mjc5PT10P2Uuc2xpY2UoMSk6ZX0scGE9ZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUodCl9LEIwPWZ1bmN0aW9uKHQpe3JldHVybiBTdHJpbmcu'@; put 'ZnJvbUNoYXJDb2RlKHQpfSx6ZT1udWxsLGd0PSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSI7ZnVuY3Rpb24gZ2EoZSl7Zm9yKHZhciB0PSIiLHI9MCxhPTAsbj0wLGk9MCxzPTAsZj0wLGM9MCxvPTA7bzxlLmxlbmd0'@; put 'aDspaT0ocj1lLmNoYXJDb2RlQXQobysrKSk+PjIscz0oMyZyKTw8NHwoYT1lLmNoYXJDb2RlQXQobysrKSk+PjQsZj0oMTUmYSk8PDJ8KG49ZS5jaGFyQ29kZUF0KG8rKykpPj42LGM9NjMmbixpc05hTihhKT9mPWM9NjQ6aXNOYU4obikmJihjPTY0KSx0Kz1ndC5jaGFyQXQoaSkrZ3QuY2hh'@; put 'ckF0KHMpK2d0LmNoYXJBdChmKStndC5jaGFyQXQoYyk7cmV0dXJuIHR9ZnVuY3Rpb24gT3IoZSl7dmFyIHQ9IiIsaT0wLHM9MCxmPTAsYz0wO2U9ZS5yZXBsYWNlKC9bXlx3XCtcL1w9XS9nLCIiKTtmb3IodmFyIG89MDtvPGUubGVuZ3RoOylpPWd0LmluZGV4T2YoZS5jaGFyQXQobysrKSks'@; put 'cz1ndC5pbmRleE9mKGUuY2hhckF0KG8rKykpLHQrPVN0cmluZy5mcm9tQ2hhckNvZGUoaTw8MnxzPj40KSw2NCE9PShmPWd0LmluZGV4T2YoZS5jaGFyQXQobysrKSkpJiYodCs9U3RyaW5nLmZyb21DaGFyQ29kZSgoMTUmcyk8PDR8Zj4+MikpLDY0IT09KGM9Z3QuaW5kZXhPZihlLmNoYXJB'@; put 'dChvKyspKSkmJih0Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKCgzJmYpPDw2fGMpKTtyZXR1cm4gdH12YXIgU2U9ZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIEJ1ZmZlcjwidSImJnR5cGVvZiBwcm9jZXNzPCJ1IiYmdHlwZW9mIHByb2Nlc3MudmVyc2lvbnM8InUiJiYhIXByb2Nlc3MudmVyc2lv'@; put 'bnMubm9kZX0oKSxvdD1mdW5jdGlvbigpe2lmKHR5cGVvZiBCdWZmZXI8InUiKXt2YXIgZT0hQnVmZmVyLmZyb207aWYoIWUpdHJ5e0J1ZmZlci5mcm9tKCJmb28iLCJ1dGY4Iil9Y2F0Y2h7ZT0hMH1yZXR1cm4gZT9mdW5jdGlvbih0LHIpe3JldHVybiByP25ldyBCdWZmZXIodCxyKTpuZXcg'@; put 'QnVmZmVyKHQpfTpCdWZmZXIuZnJvbS5iaW5kKEJ1ZmZlcil9cmV0dXJuIGZ1bmN0aW9uKCl7fX0oKTtmdW5jdGlvbiBfdChlKXtyZXR1cm4gU2U/QnVmZmVyLmFsbG9jP0J1ZmZlci5hbGxvYyhlKTpuZXcgQnVmZmVyKGUpOnR5cGVvZiBVaW50OEFycmF5PCJ1Ij9uZXcgVWludDhBcnJheShl'@; put 'KTpuZXcgQXJyYXkoZSl9ZnVuY3Rpb24gbmkoZSl7cmV0dXJuIFNlP0J1ZmZlci5hbGxvY1Vuc2FmZT9CdWZmZXIuYWxsb2NVbnNhZmUoZSk6bmV3IEJ1ZmZlcihlKTp0eXBlb2YgVWludDhBcnJheTwidSI/bmV3IFVpbnQ4QXJyYXkoZSk6bmV3IEFycmF5KGUpfXZhciBJcj1mdW5jdGlvbih0'@; put 'KXtyZXR1cm4gU2U/b3QodCwiYmluYXJ5Iik6dC5zcGxpdCgiIikubWFwKGZ1bmN0aW9uKHIpe3JldHVybiAyNTUmci5jaGFyQ29kZUF0KDApfSl9O2Z1bmN0aW9uIHd0KGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGUubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBTdHJpbmcuZnJvbUNo'@; put 'YXJDb2RlKGEpfSkuam9pbigiIik7Zm9yKHZhciB0PVtdLHI9MDtyPGUubGVuZ3RoOysrcil0W3JdPVN0cmluZy5mcm9tQ2hhckNvZGUoZVtyXSk7cmV0dXJuIHQuam9pbigiIil9ZnVuY3Rpb24gTTAoZSl7aWYodHlwZW9mIEFycmF5QnVmZmVyPiJ1Iil0aHJvdyBuZXcgRXJyb3IoIlVuc3Vw'@; put 'cG9ydGVkIik7aWYoZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKXJldHVybiBNMChuZXcgVWludDhBcnJheShlKSk7Zm9yKHZhciB0PW5ldyBBcnJheShlLmxlbmd0aCkscj0wO3I8ZS5sZW5ndGg7KytyKXRbcl09ZVtyXTtyZXR1cm4gdH12YXIgZnI9U2U/ZnVuY3Rpb24oZSl7cmV0dXJuIEJ1'@; put 'ZmZlci5jb25jYXQoZS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIEJ1ZmZlci5pc0J1ZmZlcih0KT90Om90KHQpfSkpfTpmdW5jdGlvbihlKXtpZih0eXBlb2YgVWludDhBcnJheTwidSIpe3ZhciB0PTAscj0wO2Zvcih0PTA7dDxlLmxlbmd0aDsrK3Qpcis9ZVt0XS5sZW5ndGg7dmFyIGE9bmV3'@; put 'IFVpbnQ4QXJyYXkociksbj0wO2Zvcih0PTAscj0wO3Q8ZS5sZW5ndGg7cis9biwrK3QpaWYobj1lW3RdLmxlbmd0aCxlW3RdaW5zdGFuY2VvZiBVaW50OEFycmF5KWEuc2V0KGVbdF0scik7ZWxzZXtpZigic3RyaW5nIj09dHlwZW9mIGVbdF0pdGhyb3cid3RmIjthLnNldChuZXcgVWludDhB'@; put 'cnJheShlW3RdKSxyKX1yZXR1cm4gYX1yZXR1cm5bXS5jb25jYXQuYXBwbHkoW10sZS5tYXAoZnVuY3Rpb24oaSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoaSk/aTpbXS5zbGljZS5jYWxsKGkpfSkpfSxkcj0vXHUwMDAwL2csd2E9L1tcdTAwMDEtXHUwMDA2XS9nO2Z1bmN0aW9uIGVhKGUpe2Zv'@; put 'cih2YXIgdD0iIixyPWUubGVuZ3RoLTE7cj49MDspdCs9ZS5jaGFyQXQoci0tKTtyZXR1cm4gdH1mdW5jdGlvbiBZcihlLHQpe3ZhciByPSIiK2U7cmV0dXJuIHIubGVuZ3RoPj10P3I6amUoIjAiLHQtci5sZW5ndGgpK3J9ZnVuY3Rpb24gVTAoZSx0KXt2YXIgcj0iIitlO3JldHVybiByLmxl'@; put 'bmd0aD49dD9yOmplKCIgIix0LXIubGVuZ3RoKStyfWZ1bmN0aW9uIGEwKGUsdCl7dmFyIHI9IiIrZTtyZXR1cm4gci5sZW5ndGg+PXQ/cjpyK2plKCIgIix0LXIubGVuZ3RoKX12YXIgaWk9TWF0aC5wb3coMiwzMik7ZnVuY3Rpb24gcmEoZSx0KXtyZXR1cm4gZT5paXx8ZTwtaWk/ZnVuY3Rp'@; put 'b24gYmMoZSx0KXt2YXIgcj0iIitNYXRoLnJvdW5kKGUpO3JldHVybiByLmxlbmd0aD49dD9yOmplKCIwIix0LXIubGVuZ3RoKStyfShlLHQpOmZ1bmN0aW9uIFBjKGUsdCl7dmFyIHI9IiIrZTtyZXR1cm4gci5sZW5ndGg+PXQ/cjpqZSgiMCIsdC1yLmxlbmd0aCkrcn0oTWF0aC5yb3VuZChl'@; put 'KSx0KX1mdW5jdGlvbiBuMChlLHQpe3JldHVybiBlLmxlbmd0aD49NysodD10fHwwKSYmMTAzPT0oMzJ8ZS5jaGFyQ29kZUF0KHQpKSYmMTAxPT0oMzJ8ZS5jaGFyQ29kZUF0KHQrMSkpJiYxMTA9PSgzMnxlLmNoYXJDb2RlQXQodCsyKSkmJjEwMT09KDMyfGUuY2hhckNvZGVBdCh0KzMpKSYm'@; put 'MTE0PT0oMzJ8ZS5jaGFyQ29kZUF0KHQrNCkpJiY5Nz09KDMyfGUuY2hhckNvZGVBdCh0KzUpKSYmMTA4PT0oMzJ8ZS5jaGFyQ29kZUF0KHQrNikpfXZhciBzaT1bWyJTdW4iLCJTdW5kYXkiXSxbIk1vbiIsIk1vbmRheSJdLFsiVHVlIiwiVHVlc2RheSJdLFsiV2VkIiwiV2VkbmVzZGF5Il0s'@; put 'WyJUaHUiLCJUaHVyc2RheSJdLFsiRnJpIiwiRnJpZGF5Il0sWyJTYXQiLCJTYXR1cmRheSJdXSxXMD1bWyJKIiwiSmFuIiwiSmFudWFyeSJdLFsiRiIsIkZlYiIsIkZlYnJ1YXJ5Il0sWyJNIiwiTWFyIiwiTWFyY2giXSxbIkEiLCJBcHIiLCJBcHJpbCJdLFsiTSIsIk1heSIsIk1heSJdLFsi'@; put 'SiIsIkp1biIsIkp1bmUiXSxbIkoiLCJKdWwiLCJKdWx5Il0sWyJBIiwiQXVnIiwiQXVndXN0Il0sWyJTIiwiU2VwIiwiU2VwdGVtYmVyIl0sWyJPIiwiT2N0IiwiT2N0b2JlciJdLFsiTiIsIk5vdiIsIk5vdmVtYmVyIl0sWyJEIiwiRGVjIiwiRGVjZW1iZXIiXV0scGU9ezA6IkdlbmVyYWwi'@; put 'LDE6IjAiLDI6IjAuMDAiLDM6IiMsIyMwIiw0OiIjLCMjMC4wMCIsOToiMCUiLDEwOiIwLjAwJSIsMTE6IjAuMDBFKzAwIiwxMjoiIyA/Lz8iLDEzOiIjID8/Lz8/IiwxNDoibS9kL3l5IiwxNToiZC1tbW0teXkiLDE2OiJkLW1tbSIsMTc6Im1tbS15eSIsMTg6Img6bW0gQU0vUE0iLDE5OiJo'@; put 'Om1tOnNzIEFNL1BNIiwyMDoiaDptbSIsMjE6Img6bW06c3MiLDIyOiJtL2QveXkgaDptbSIsMzc6IiMsIyMwIDsoIywjIzApIiwzODoiIywjIzAgO1tSZWRdKCMsIyMwKSIsMzk6IiMsIyMwLjAwOygjLCMjMC4wMCkiLDQwOiIjLCMjMC4wMDtbUmVkXSgjLCMjMC4wMCkiLDQ1OiJtbTpzcyIs'@; put 'NDY6IltoXTptbTpzcyIsNDc6Im1tc3MuMCIsNDg6IiMjMC4wRSswIiw0OToiQCIsNTY6JyJcdTRlMGFcdTUzNDgvXHU0ZTBiXHU1MzQ4ICJoaCJcdTY2NDIibW0iXHU1MjA2InNzIlx1NzlkMiAiJ30sZmk9ezU6MzcsNjozOCw3OjM5LDg6NDAsMjM6MCwyNDowLDI1OjAsMjY6MCwyNzoxNCwy'@; put 'ODoxNCwyOToxNCwzMDoxNCwzMToxNCw1MDoxNCw1MToxNCw1MjoxNCw1MzoxNCw1NDoxNCw1NToxNCw1NjoxNCw1NzoxNCw1ODoxNCw1OToxLDYwOjIsNjE6Myw2Mjo0LDY3OjksNjg6MTAsNjk6MTIsNzA6MTMsNzE6MTQsNzI6MTQsNzM6MTUsNzQ6MTYsNzU6MTcsNzY6MjAsNzc6MjEsNzg6'@; put 'MjIsNzk6NDUsODA6NDYsODE6NDcsODI6MH0sQmM9ezU6JyIkIiMsIyMwXyk7XFwoIiQiIywjIzBcXCknLDYzOiciJCIjLCMjMF8pO1xcKCIkIiMsIyMwXFwpJyw2OiciJCIjLCMjMF8pO1tSZWRdXFwoIiQiIywjIzBcXCknLDY0OiciJCIjLCMjMF8pO1tSZWRdXFwoIiQiIywjIzBcXCknLDc6'@; put 'JyIkIiMsIyMwLjAwXyk7XFwoIiQiIywjIzAuMDBcXCknLDY1OiciJCIjLCMjMC4wMF8pO1xcKCIkIiMsIyMwLjAwXFwpJyw4OiciJCIjLCMjMC4wMF8pO1tSZWRdXFwoIiQiIywjIzAuMDBcXCknLDY2OiciJCIjLCMjMC4wMF8pO1tSZWRdXFwoIiQiIywjIzAuMDBcXCknLDQxOidfKCogIywj'@; put 'IzBfKTtfKCogXFwoIywjIzBcXCk7XygqICItIl8pO18oQF8pJyw0MjonXygiJCIqICMsIyMwXyk7XygiJCIqIFxcKCMsIyMwXFwpO18oIiQiKiAiLSJfKTtfKEBfKScsNDM6J18oKiAjLCMjMC4wMF8pO18oKiBcXCgjLCMjMC4wMFxcKTtfKCogIi0iPz9fKTtfKEBfKScsNDQ6J18oIiQiKiAj'@; put 'LCMjMC4wMF8pO18oIiQiKiBcXCgjLCMjMC4wMFxcKTtfKCIkIiogIi0iPz9fKTtfKEBfKSd9O2Z1bmN0aW9uIGkwKGUsdCxyKXtmb3IodmFyIGE9ZTwwPy0xOjEsbj1lKmEsaT0wLHM9MSxmPTAsYz0xLG89MCxsPTAsaD1NYXRoLmZsb29yKG4pO288dCYmKGY9KGg9TWF0aC5mbG9vcihuKSkq'@; put 'cytpLGw9aCpvK2MsIShuLWg8NWUtOCkpOyluPTEvKG4taCksaT1zLHM9ZixjPW8sbz1sO2lmKGw+dCYmKG8+dD8obD1jLGY9aSk6KGw9byxmPXMpKSwhcilyZXR1cm5bMCxhKmYsbF07dmFyIHg9TWF0aC5mbG9vcihhKmYvbCk7cmV0dXJuW3gsYSpmLXgqbCxsXX1mdW5jdGlvbiBrdChlLHQs'@; put 'cil7aWYoZT4yOTU4NDY1fHxlPDApcmV0dXJuIG51bGw7dmFyIGE9MHxlLG49TWF0aC5mbG9vcig4NjQwMCooZS1hKSksaT0wLHM9W10sZj17RDphLFQ6bix1Ojg2NDAwKihlLWEpLW4seTowLG06MCxkOjAsSDowLE06MCxTOjAscTowfTtpZihNYXRoLmFicyhmLnUpPDFlLTYmJihmLnU9MCks'@; put 'dCYmdC5kYXRlMTkwNCYmKGErPTE0NjIpLGYudT4uOTk5OSYmKGYudT0wLDg2NDAwPT0rK24mJihmLlQ9bj0wLCsrYSwrK2YuRCkpLDYwPT09YSlzPXI/WzEzMTcsMTAsMjldOlsxOTAwLDIsMjldLGk9MztlbHNlIGlmKDA9PT1hKXM9cj9bMTMxNyw4LDI5XTpbMTkwMCwxLDBdLGk9NjtlbHNl'@; put 'e2E+NjAmJi0tYTt2YXIgYz1uZXcgRGF0ZSgxOTAwLDAsMSk7Yy5zZXREYXRlKGMuZ2V0RGF0ZSgpK2EtMSkscz1bYy5nZXRGdWxsWWVhcigpLGMuZ2V0TW9udGgoKSsxLGMuZ2V0RGF0ZSgpXSxpPWMuZ2V0RGF5KCksYTw2MCYmKGk9KGkrNiklNyksciYmKGk9ZnVuY3Rpb24gWGMoZSx0KXt0'@; put 'WzBdLT01ODE7dmFyIHI9ZS5nZXREYXkoKTtyZXR1cm4gZTw2MCYmKHI9KHIrNiklNykscn0oYyxzKSl9cmV0dXJuIGYueT1zWzBdLGYubT1zWzFdLGYuZD1zWzJdLGYuUz1uJTYwLG49TWF0aC5mbG9vcihuLzYwKSxmLk09biU2MCxuPU1hdGguZmxvb3Iobi82MCksZi5IPW4sZi5xPWksZn12'@; put 'YXIgY2k9bmV3IERhdGUoMTg5OSwxMSwzMSwwLDAsMCksTWM9Y2kuZ2V0VGltZSgpLFVjPW5ldyBEYXRlKDE5MDAsMiwxLDAsMCwwKTtmdW5jdGlvbiBvaShlLHQpe3ZhciByPWUuZ2V0VGltZSgpO3JldHVybiB0P3ItPTEyNjIzMDRlNTplPj1VYyYmKHIrPTg2NGU1KSwoci0oTWMrNmU0Kihl'@; put 'LmdldFRpbWV6b25lT2Zmc2V0KCktY2kuZ2V0VGltZXpvbmVPZmZzZXQoKSkpKS84NjRlNX1mdW5jdGlvbiBIMChlKXtyZXR1cm4tMT09ZS5pbmRleE9mKCIuIik/ZTplLnJlcGxhY2UoLyg/OlwuMCp8KFwuXGQqWzEtOV0pMCspJC8sIiQxIil9ZnVuY3Rpb24ga2EoZSl7dmFyIHIsdD1NYXRo'@; put 'LmZsb29yKE1hdGgubG9nKE1hdGguYWJzKGUpKSpNYXRoLkxPRzEwRSk7cmV0dXJuIHI9dD49LTQmJnQ8PS0xP2UudG9QcmVjaXNpb24oMTArdCk6TWF0aC5hYnModCk8PTk/ZnVuY3Rpb24gSGMoZSl7dmFyIHQ9ZTwwPzEyOjExLHI9SDAoZS50b0ZpeGVkKDEyKSk7cmV0dXJuIHIubGVuZ3Ro'@; put 'PD10fHwocj1lLnRvUHJlY2lzaW9uKDEwKSkubGVuZ3RoPD10P3I6ZS50b0V4cG9uZW50aWFsKDUpfShlKToxMD09PXQ/ZS50b0ZpeGVkKDEwKS5zdWJzdHIoMCwxMik6ZnVuY3Rpb24gVmMoZSl7dmFyIHQ9SDAoZS50b0ZpeGVkKDExKSk7cmV0dXJuIHQubGVuZ3RoPihlPDA/MTI6MTEpfHwi'@; put 'MCI9PT10fHwiLTAiPT09dD9lLnRvUHJlY2lzaW9uKDYpOnR9KGUpLEgwKGZ1bmN0aW9uIFdjKGUpe3JldHVybi0xPT1lLmluZGV4T2YoIkUiKT9lOmUucmVwbGFjZSgvKD86XC4wKnwoXC5cZCpbMS05XSkwKylbRWVdLywiJDFFIikucmVwbGFjZSgvKEVbKy1dKShcZCkkLywiJDEwJDIiKX0o'@; put 'ci50b1VwcGVyQ2FzZSgpKSl9ZnVuY3Rpb24gTnQoZSx0KXtzd2l0Y2godHlwZW9mIGUpe2Nhc2Uic3RyaW5nIjpyZXR1cm4gZTtjYXNlImJvb2xlYW4iOnJldHVybiBlPyJUUlVFIjoiRkFMU0UiO2Nhc2UibnVtYmVyIjpyZXR1cm4oMHxlKT09PWU/ZS50b1N0cmluZygxMCk6a2EoZSk7Y2Fz'@; put 'ZSJ1bmRlZmluZWQiOnJldHVybiIiO2Nhc2Uib2JqZWN0IjppZihudWxsPT1lKXJldHVybiIiO2lmKGUgaW5zdGFuY2VvZiBEYXRlKXJldHVybiBScigxNCxvaShlLHQmJnQuZGF0ZTE5MDQpLHQpfXRocm93IG5ldyBFcnJvcigidW5zdXBwb3J0ZWQgdmFsdWUgaW4gR2VuZXJhbCBmb3JtYXQ6'@; put 'ICIrZSl9ZnVuY3Rpb24gR2MoZSx0LHIsYSl7dmFyIGMsbj0iIixpPTAscz0wLGY9ci55LG89MDtzd2l0Y2goZSl7Y2FzZSA5ODpmPXIueSs1NDM7Y2FzZSAxMjE6c3dpdGNoKHQubGVuZ3RoKXtjYXNlIDE6Y2FzZSAyOmM9ZiUxMDAsbz0yO2JyZWFrO2RlZmF1bHQ6Yz1mJTFlNCxvPTR9YnJl'@; put 'YWs7Y2FzZSAxMDk6c3dpdGNoKHQubGVuZ3RoKXtjYXNlIDE6Y2FzZSAyOmM9ci5tLG89dC5sZW5ndGg7YnJlYWs7Y2FzZSAzOnJldHVybiBXMFtyLm0tMV1bMV07Y2FzZSA1OnJldHVybiBXMFtyLm0tMV1bMF07ZGVmYXVsdDpyZXR1cm4gVzBbci5tLTFdWzJdfWJyZWFrO2Nhc2UgMTAwOnN3'@; put 'aXRjaCh0Lmxlbmd0aCl7Y2FzZSAxOmNhc2UgMjpjPXIuZCxvPXQubGVuZ3RoO2JyZWFrO2Nhc2UgMzpyZXR1cm4gc2lbci5xXVswXTtkZWZhdWx0OnJldHVybiBzaVtyLnFdWzFdfWJyZWFrO2Nhc2UgMTA0OnN3aXRjaCh0Lmxlbmd0aCl7Y2FzZSAxOmNhc2UgMjpjPTErKHIuSCsxMSklMTIs'@; put 'bz10Lmxlbmd0aDticmVhaztkZWZhdWx0OnRocm93ImJhZCBob3VyIGZvcm1hdDogIit0fWJyZWFrO2Nhc2UgNzI6c3dpdGNoKHQubGVuZ3RoKXtjYXNlIDE6Y2FzZSAyOmM9ci5ILG89dC5sZW5ndGg7YnJlYWs7ZGVmYXVsdDp0aHJvdyJiYWQgaG91ciBmb3JtYXQ6ICIrdH1icmVhaztjYXNl'@; put 'IDc3OnN3aXRjaCh0Lmxlbmd0aCl7Y2FzZSAxOmNhc2UgMjpjPXIuTSxvPXQubGVuZ3RoO2JyZWFrO2RlZmF1bHQ6dGhyb3ciYmFkIG1pbnV0ZSBmb3JtYXQ6ICIrdH1icmVhaztjYXNlIDExNTppZigicyIhPXQmJiJzcyIhPXQmJiIuMCIhPXQmJiIuMDAiIT10JiYiLjAwMCIhPXQpdGhyb3ci'@; put 'YmFkIHNlY29uZCBmb3JtYXQ6ICIrdDtyZXR1cm4gMCE9PXIudXx8InMiIT10JiYic3MiIT10PyhzPWE+PTI/Mz09PWE/MWUzOjEwMDoxPT09YT8xMDoxLChpPU1hdGgucm91bmQocyooci5TK3IudSkpKT49NjAqcyYmKGk9MCksInMiPT09dD8wPT09aT8iMCI6IiIraS9zOihuPVlyKGksMith'@; put 'KSwic3MiPT09dD9uLnN1YnN0cigwLDIpOiIuIituLnN1YnN0cigyLHQubGVuZ3RoLTEpKSk6WXIoci5TLHQubGVuZ3RoKTtjYXNlIDkwOnN3aXRjaCh0KXtjYXNlIltoXSI6Y2FzZSJbaGhdIjpjPTI0KnIuRCtyLkg7YnJlYWs7Y2FzZSJbbV0iOmNhc2UiW21tXSI6Yz02MCooMjQqci5EK3Iu'@; put 'SCkrci5NO2JyZWFrO2Nhc2UiW3NdIjpjYXNlIltzc10iOmM9NjAqKDYwKigyNCpyLkQrci5IKStyLk0pK01hdGgucm91bmQoci5TK3IudSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyJiYWQgYWJzdGltZSBmb3JtYXQ6ICIrdH1vPTM9PT10Lmxlbmd0aD8xOjI7YnJlYWs7Y2FzZSAxMDE6Yz1mLG89'@; put 'MX1yZXR1cm4gbz4wP1lyKGMsbyk6IiJ9ZnVuY3Rpb24gRXQoZSl7aWYoZS5sZW5ndGg8PTMpcmV0dXJuIGU7Zm9yKHZhciByPWUubGVuZ3RoJTMsYT1lLnN1YnN0cigwLHIpO3IhPWUubGVuZ3RoO3IrPTMpYSs9KGEubGVuZ3RoPjA/IiwiOiIiKStlLnN1YnN0cihyLDMpO3JldHVybiBhfXZh'@; put 'ciBsaT0vJS9nO2Z1bmN0aW9uIHVpKGUsdCl7dmFyIHIsYT1lLmluZGV4T2YoIkUiKS1lLmluZGV4T2YoIi4iKS0xO2lmKGUubWF0Y2goL14jKzAuMEVcKzAkLykpe2lmKDA9PXQpcmV0dXJuIjAuMEUrMCI7aWYodDwwKXJldHVybiItIit1aShlLC10KTt2YXIgbj1lLmluZGV4T2YoIi4iKTst'@; put 'MT09PW4mJihuPWUuaW5kZXhPZigiRSIpKTt2YXIgaT1NYXRoLmZsb29yKE1hdGgubG9nKHQpKk1hdGguTE9HMTBFKSVuO2lmKGk8MCYmKGkrPW4pLC0xPT09KHI9KHQvTWF0aC5wb3coMTAsaSkpLnRvUHJlY2lzaW9uKGErMSsobitpKSVuKSkuaW5kZXhPZigiZSIpKXt2YXIgcz1NYXRoLmZs'@; put 'b29yKE1hdGgubG9nKHQpKk1hdGguTE9HMTBFKTtmb3IoLTE9PT1yLmluZGV4T2YoIi4iKT9yPXIuY2hhckF0KDApKyIuIityLnN1YnN0cigxKSsiRSsiKyhzLXIubGVuZ3RoK2kpOnIrPSJFKyIrKHMtaSk7IjAuIj09PXIuc3Vic3RyKDAsMik7KXI9KHI9ci5jaGFyQXQoMCkrci5zdWJzdHIo'@; put 'MixuKSsiLiIrci5zdWJzdHIoMituKSkucmVwbGFjZSgvXjArKFsxLTldKS8sIiQxIikucmVwbGFjZSgvXjArXC4vLCIwLiIpO3I9ci5yZXBsYWNlKC9cKy0vLCItIil9cj1yLnJlcGxhY2UoL14oWystXT8pKFxkKilcLihcZCopW0VlXS8sZnVuY3Rpb24oZixjLG8sbCl7cmV0dXJuIGMrbyts'@; put 'LnN1YnN0cigwLChuK2kpJW4pKyIuIitsLnN1YnN0cihpKSsiRSJ9KX1lbHNlIHI9dC50b0V4cG9uZW50aWFsKGEpO3JldHVybiBlLm1hdGNoKC9FXCswMCQvKSYmci5tYXRjaCgvZVsrLV1cZCQvKSYmKHI9ci5zdWJzdHIoMCxyLmxlbmd0aC0xKSsiMCIrci5jaGFyQXQoci5sZW5ndGgtMSkp'@; put 'LGUubWF0Y2goL0VcLS8pJiZyLm1hdGNoKC9lXCsvKSYmKHI9ci5yZXBsYWNlKC9lXCsvLCJlIikpLHIucmVwbGFjZSgiZSIsIkUiKX12YXIgaGk9LyMgKFw/KykoID8pXC8oID8pKFxkKykvLHhpPS9eIyowKlwuKFswI10rKS8sZGk9L1wpLipbMCNdLyx2aT0vXCgjIyNcKSAjIyNcXD8tIyMj'@; put 'Iy87ZnVuY3Rpb24gVHIoZSl7Zm9yKHZhciByLHQ9IiIsYT0wO2EhPWUubGVuZ3RoOysrYSlzd2l0Y2gocj1lLmNoYXJDb2RlQXQoYSkpe2Nhc2UgMzU6YnJlYWs7Y2FzZSA2Mzp0Kz0iICI7YnJlYWs7Y2FzZSA0ODp0Kz0iMCI7YnJlYWs7ZGVmYXVsdDp0Kz1TdHJpbmcuZnJvbUNoYXJDb2Rl'@; put 'KHIpfXJldHVybiB0fWZ1bmN0aW9uIHBpKGUsdCl7dmFyIHI9TWF0aC5wb3coMTAsdCk7cmV0dXJuIiIrTWF0aC5yb3VuZChlKnIpL3J9ZnVuY3Rpb24gbWkoZSx0KXt2YXIgcj1lLU1hdGguZmxvb3IoZSksYT1NYXRoLnBvdygxMCx0KTtyZXR1cm4gdDwoIiIrTWF0aC5yb3VuZChyKmEpKS5s'@; put 'ZW5ndGg/MDpNYXRoLnJvdW5kKHIqYSl9ZnVuY3Rpb24gVXIoZSx0LHIpe2lmKDQwPT09ZS5jaGFyQ29kZUF0KDApJiYhdC5tYXRjaChkaSkpe3ZhciBhPXQucmVwbGFjZSgvXCggKi8sIiIpLnJlcGxhY2UoLyBcKS8sIiIpLnJlcGxhY2UoL1wpLywiIik7cmV0dXJuIHI+PTA/VXIoIm4iLGEs'@; put 'cik6IigiK1VyKCJuIixhLC1yKSsiKSJ9aWYoNDQ9PT10LmNoYXJDb2RlQXQodC5sZW5ndGgtMSkpcmV0dXJuIGZ1bmN0aW9uICRjKGUsdCxyKXtmb3IodmFyIGE9dC5sZW5ndGgtMTs0ND09PXQuY2hhckNvZGVBdChhLTEpOyktLWE7cmV0dXJuIGx0KGUsdC5zdWJzdHIoMCxhKSxyL01hdGgu'@; put 'cG93KDEwLDMqKHQubGVuZ3RoLWEpKSl9KGUsdCxyKTtpZigtMSE9PXQuaW5kZXhPZigiJSIpKXJldHVybiBmdW5jdGlvbiB6YyhlLHQscil7dmFyIGE9dC5yZXBsYWNlKGxpLCIiKSxuPXQubGVuZ3RoLWEubGVuZ3RoO3JldHVybiBsdChlLGEscipNYXRoLnBvdygxMCwyKm4pKStqZSgiJSIs'@; put 'bil9KGUsdCxyKTtpZigtMSE9PXQuaW5kZXhPZigiRSIpKXJldHVybiB1aSh0LHIpO2lmKDM2PT09dC5jaGFyQ29kZUF0KDApKXJldHVybiIkIitVcihlLHQuc3Vic3RyKCIgIj09dC5jaGFyQXQoMSk/MjoxKSxyKTt2YXIgbixpLHMsZixjPU1hdGguYWJzKHIpLG89cjwwPyItIjoiIjtpZih0'@; put 'Lm1hdGNoKC9eMDArJC8pKXJldHVybiBvK3JhKGMsdC5sZW5ndGgpO2lmKHQubWF0Y2goL15bIz9dKyQvKSlyZXR1cm4iMCI9PT0obj1yYShyLDApKSYmKG49IiIpLG4ubGVuZ3RoPnQubGVuZ3RoP246VHIodC5zdWJzdHIoMCx0Lmxlbmd0aC1uLmxlbmd0aCkpK247aWYoaT10Lm1hdGNoKGhp'@; put 'KSlyZXR1cm4gZnVuY3Rpb24gamMoZSx0LHIpe3ZhciBhPXBhcnNlSW50KGVbNF0sMTApLG49TWF0aC5yb3VuZCh0KmEpLGk9TWF0aC5mbG9vcihuL2EpLHM9bi1pKmEsZj1hO3JldHVybiByKygwPT09aT8iIjoiIitpKSsiICIrKDA9PT1zP2plKCIgIixlWzFdLmxlbmd0aCsxK2VbNF0ubGVu'@; put 'Z3RoKTpVMChzLGVbMV0ubGVuZ3RoKStlWzJdKyIvIitlWzNdK1lyKGYsZVs0XS5sZW5ndGgpKX0oaSxjLG8pO2lmKHQubWF0Y2goL14jKzArJC8pKXJldHVybiBvK3JhKGMsdC5sZW5ndGgtdC5pbmRleE9mKCIwIikpO2lmKGk9dC5tYXRjaCh4aSkpcmV0dXJuIG49cGkocixpWzFdLmxlbmd0'@; put 'aCkucmVwbGFjZSgvXihbXlwuXSspJC8sIiQxLiIrVHIoaVsxXSkpLnJlcGxhY2UoL1wuJC8sIi4iK1RyKGlbMV0pKS5yZXBsYWNlKC9cLihcZCopJC8sZnVuY3Rpb24odix1KXtyZXR1cm4iLiIrdStqZSgiMCIsVHIoaVsxXSkubGVuZ3RoLXUubGVuZ3RoKX0pLC0xIT09dC5pbmRleE9mKCIw'@; put 'LiIpP246bi5yZXBsYWNlKC9eMFwuLywiLiIpO2lmKHQ9dC5yZXBsYWNlKC9eIysoWzAuXSkvLCIkMSIpLGk9dC5tYXRjaCgvXigwKilcLigjKikkLykpcmV0dXJuIG8rcGkoYyxpWzJdLmxlbmd0aCkucmVwbGFjZSgvXC4oXGQqWzEtOV0pMCokLywiLiQxIikucmVwbGFjZSgvXigtP1xkKikk'@; put 'LywiJDEuIikucmVwbGFjZSgvXjBcLi8saVsxXS5sZW5ndGg/IjAuIjoiLiIpO2lmKGk9dC5tYXRjaCgvXiN7MSwzfSwjIzAoXC4/KSQvKSlyZXR1cm4gbytFdChyYShjLDApKTtpZihpPXQubWF0Y2goL14jLCMjMFwuKFsjMF0qMCkkLykpcmV0dXJuIHI8MD8iLSIrVXIoZSx0LC1yKTpFdCgi'@; put 'IisoTWF0aC5mbG9vcihyKStmdW5jdGlvbiBZYyhlLHQpe3JldHVybiB0PCgiIitNYXRoLnJvdW5kKChlLU1hdGguZmxvb3IoZSkpKk1hdGgucG93KDEwLHQpKSkubGVuZ3RoPzE6MH0ocixpWzFdLmxlbmd0aCkpKSsiLiIrWXIobWkocixpWzFdLmxlbmd0aCksaVsxXS5sZW5ndGgpO2lmKGk9'@; put 'dC5tYXRjaCgvXiMsIyosIzAvKSlyZXR1cm4gVXIoZSx0LnJlcGxhY2UoL14jLCMqLC8sIiIpLHIpO2lmKGk9dC5tYXRjaCgvXihbMCNdKykoXFw/LShbMCNdKykpKyQvKSlyZXR1cm4gbj1lYShVcihlLHQucmVwbGFjZSgvW1xcLV0vZywiIikscikpLHM9MCxlYShlYSh0LnJlcGxhY2UoL1xc'@; put 'L2csIiIpKS5yZXBsYWNlKC9bMCNdL2csZnVuY3Rpb24odil7cmV0dXJuIHM8bi5sZW5ndGg/bi5jaGFyQXQocysrKToiMCI9PT12PyIwIjoiIn0pKTtpZih0Lm1hdGNoKHZpKSlyZXR1cm4iKCIrKG49VXIoZSwiIyMjIyMjIyMjIyIscikpLnN1YnN0cigwLDMpKyIpICIrbi5zdWJzdHIoMywz'@; put 'KSsiLSIrbi5zdWJzdHIoNik7dmFyIGw9IiI7aWYoaT10Lm1hdGNoKC9eKFsjMD9dKykoID8pXC8oID8pKFsjMD9dKykvKSlyZXR1cm4gcz1NYXRoLm1pbihpWzRdLmxlbmd0aCw3KSxmPWkwKGMsTWF0aC5wb3coMTAscyktMSwhMSksbj0iIitvLCIgIj09KGw9bHQoIm4iLGlbMV0sZlsxXSkp'@; put 'LmNoYXJBdChsLmxlbmd0aC0xKSYmKGw9bC5zdWJzdHIoMCxsLmxlbmd0aC0xKSsiMCIpLG4rPWwraVsyXSsiLyIraVszXSwobD1hMChmWzJdLHMpKS5sZW5ndGg8aVs0XS5sZW5ndGgmJihsPVRyKGlbNF0uc3Vic3RyKGlbNF0ubGVuZ3RoLWwubGVuZ3RoKSkrbCksbis9bDtpZihpPXQubWF0'@; put 'Y2goL14jIChbIzA/XSspKCA/KVwvKCA/KShbIzA/XSspLykpcmV0dXJuIHM9TWF0aC5taW4oTWF0aC5tYXgoaVsxXS5sZW5ndGgsaVs0XS5sZW5ndGgpLDcpLG8rKChmPWkwKGMsTWF0aC5wb3coMTAscyktMSwhMCkpWzBdfHwoZlsxXT8iIjoiMCIpKSsiICIrKGZbMV0/VTAoZlsxXSxzKStp'@; put 'WzJdKyIvIitpWzNdK2EwKGZbMl0scyk6amUoIiAiLDIqcysxK2lbMl0ubGVuZ3RoK2lbM10ubGVuZ3RoKSk7aWYoaT10Lm1hdGNoKC9eWyMwP10rJC8pKXJldHVybiBuPXJhKHIsMCksdC5sZW5ndGg8PW4ubGVuZ3RoP246VHIodC5zdWJzdHIoMCx0Lmxlbmd0aC1uLmxlbmd0aCkpK247aWYo'@; put 'aT10Lm1hdGNoKC9eKFsjMD9dKylcLihbIzBdKykkLykpe249IiIrci50b0ZpeGVkKE1hdGgubWluKGlbMl0ubGVuZ3RoLDEwKSkucmVwbGFjZSgvKFteMF0pMCskLywiJDEiKSxzPW4uaW5kZXhPZigiLiIpO3ZhciBoPXQuaW5kZXhPZigiLiIpLXMseD10Lmxlbmd0aC1uLmxlbmd0aC1oO3Jl'@; put 'dHVybiBUcih0LnN1YnN0cigwLGgpK24rdC5zdWJzdHIodC5sZW5ndGgteCkpfWlmKGk9dC5tYXRjaCgvXjAwLDAwMFwuKFsjMF0qMCkkLykpcmV0dXJuIHM9bWkocixpWzFdLmxlbmd0aCkscjwwPyItIitVcihlLHQsLXIpOkV0KGZ1bmN0aW9uIEpjKGUpe3JldHVybiBlPDIxNDc0ODM2NDcm'@; put 'JmU+LTIxNDc0ODM2NDg/IiIrKGU+PTA/MHxlOmUtMXwwKToiIitNYXRoLmZsb29yKGUpfShyKSkucmVwbGFjZSgvXlxkLFxkezN9JC8sIjAkJiIpLnJlcGxhY2UoL15cZCokLyxmdW5jdGlvbih2KXtyZXR1cm4iMDAsIisodi5sZW5ndGg8Mz9ZcigwLDMtdi5sZW5ndGgpOiIiKSt2fSkrIi4i'@; put 'K1lyKHMsaVsxXS5sZW5ndGgpO3N3aXRjaCh0KXtjYXNlIiMjIywjIzAuMDAiOnJldHVybiBVcihlLCIjLCMjMC4wMCIscik7Y2FzZSIjIyMsIyMjIjpjYXNlIiMjLCMjIyI6Y2FzZSIjLCMjIyI6dmFyIGQ9RXQocmEoYywwKSk7cmV0dXJuIjAiIT09ZD9vK2Q6IiI7Y2FzZSIjIyMsIyMjLjAw'@; put 'IjpyZXR1cm4gVXIoZSwiIyMjLCMjMC4wMCIscikucmVwbGFjZSgvXjBcLi8sIi4iKTtjYXNlIiMsIyMjLjAwIjpyZXR1cm4gVXIoZSwiIywjIzAuMDAiLHIpLnJlcGxhY2UoL14wXC4vLCIuIil9dGhyb3cgbmV3IEVycm9yKCJ1bnN1cHBvcnRlZCBmb3JtYXQgfCIrdCsifCIpfWZ1bmN0aW9u'@; put 'IGdpKGUsdCl7dmFyIHIsYT1lLmluZGV4T2YoIkUiKS1lLmluZGV4T2YoIi4iKS0xO2lmKGUubWF0Y2goL14jKzAuMEVcKzAkLykpe2lmKDA9PXQpcmV0dXJuIjAuMEUrMCI7aWYodDwwKXJldHVybiItIitnaShlLC10KTt2YXIgbj1lLmluZGV4T2YoIi4iKTstMT09PW4mJihuPWUuaW5kZXhP'@; put 'ZigiRSIpKTt2YXIgaT1NYXRoLmZsb29yKE1hdGgubG9nKHQpKk1hdGguTE9HMTBFKSVuO2lmKGk8MCYmKGkrPW4pLCEocj0odC9NYXRoLnBvdygxMCxpKSkudG9QcmVjaXNpb24oYSsxKyhuK2kpJW4pKS5tYXRjaCgvW0VlXS8pKXt2YXIgcz1NYXRoLmZsb29yKE1hdGgubG9nKHQpKk1hdGgu'@; put 'TE9HMTBFKTstMT09PXIuaW5kZXhPZigiLiIpP3I9ci5jaGFyQXQoMCkrIi4iK3Iuc3Vic3RyKDEpKyJFKyIrKHMtci5sZW5ndGgraSk6cis9IkUrIisocy1pKSxyPXIucmVwbGFjZSgvXCstLywiLSIpfXI9ci5yZXBsYWNlKC9eKFsrLV0/KShcZCopXC4oXGQqKVtFZV0vLGZ1bmN0aW9uKGYs'@; put 'YyxvLGwpe3JldHVybiBjK28rbC5zdWJzdHIoMCwobitpKSVuKSsiLiIrbC5zdWJzdHIoaSkrIkUifSl9ZWxzZSByPXQudG9FeHBvbmVudGlhbChhKTtyZXR1cm4gZS5tYXRjaCgvRVwrMDAkLykmJnIubWF0Y2goL2VbKy1dXGQkLykmJihyPXIuc3Vic3RyKDAsci5sZW5ndGgtMSkrIjAiK3Iu'@; put 'Y2hhckF0KHIubGVuZ3RoLTEpKSxlLm1hdGNoKC9FXC0vKSYmci5tYXRjaCgvZVwrLykmJihyPXIucmVwbGFjZSgvZVwrLywiZSIpKSxyLnJlcGxhY2UoImUiLCJFIil9ZnVuY3Rpb24gUXIoZSx0LHIpe2lmKDQwPT09ZS5jaGFyQ29kZUF0KDApJiYhdC5tYXRjaChkaSkpe3ZhciBhPXQucmVw'@; put 'bGFjZSgvXCggKi8sIiIpLnJlcGxhY2UoLyBcKS8sIiIpLnJlcGxhY2UoL1wpLywiIik7cmV0dXJuIHI+PTA/UXIoIm4iLGEscik6IigiK1FyKCJuIixhLC1yKSsiKSJ9aWYoNDQ9PT10LmNoYXJDb2RlQXQodC5sZW5ndGgtMSkpcmV0dXJuIGZ1bmN0aW9uIHFjKGUsdCxyKXtmb3IodmFyIGE9'@; put 'dC5sZW5ndGgtMTs0ND09PXQuY2hhckNvZGVBdChhLTEpOyktLWE7cmV0dXJuIGx0KGUsdC5zdWJzdHIoMCxhKSxyL01hdGgucG93KDEwLDMqKHQubGVuZ3RoLWEpKSl9KGUsdCxyKTtpZigtMSE9PXQuaW5kZXhPZigiJSIpKXJldHVybiBmdW5jdGlvbiBaYyhlLHQscil7dmFyIGE9dC5yZXBs'@; put 'YWNlKGxpLCIiKSxuPXQubGVuZ3RoLWEubGVuZ3RoO3JldHVybiBsdChlLGEscipNYXRoLnBvdygxMCwyKm4pKStqZSgiJSIsbil9KGUsdCxyKTtpZigtMSE9PXQuaW5kZXhPZigiRSIpKXJldHVybiBnaSh0LHIpO2lmKDM2PT09dC5jaGFyQ29kZUF0KDApKXJldHVybiIkIitRcihlLHQuc3Vi'@; put 'c3RyKCIgIj09dC5jaGFyQXQoMSk/MjoxKSxyKTt2YXIgbixpLHMsZixjPU1hdGguYWJzKHIpLG89cjwwPyItIjoiIjtpZih0Lm1hdGNoKC9eMDArJC8pKXJldHVybiBvK1lyKGMsdC5sZW5ndGgpO2lmKHQubWF0Y2goL15bIz9dKyQvKSlyZXR1cm4gbj0iIityLDA9PT1yJiYobj0iIiksbi5s'@; put 'ZW5ndGg+dC5sZW5ndGg/bjpUcih0LnN1YnN0cigwLHQubGVuZ3RoLW4ubGVuZ3RoKSkrbjtpZihpPXQubWF0Y2goaGkpKXJldHVybiBmdW5jdGlvbiBLYyhlLHQscil7cmV0dXJuIHIrKDA9PT10PyIiOiIiK3QpK2plKCIgIixlWzFdLmxlbmd0aCsyK2VbNF0ubGVuZ3RoKX0oaSxjLG8pO2lm'@; put 'KHQubWF0Y2goL14jKzArJC8pKXJldHVybiBvK1lyKGMsdC5sZW5ndGgtdC5pbmRleE9mKCIwIikpO2lmKGk9dC5tYXRjaCh4aSkpcmV0dXJuIG49KG49KCIiK3IpLnJlcGxhY2UoL14oW15cLl0rKSQvLCIkMS4iK1RyKGlbMV0pKS5yZXBsYWNlKC9cLiQvLCIuIitUcihpWzFdKSkpLnJlcGxh'@; put 'Y2UoL1wuKFxkKikkLyxmdW5jdGlvbih2LHUpe3JldHVybiIuIit1K2plKCIwIixUcihpWzFdKS5sZW5ndGgtdS5sZW5ndGgpfSksLTEhPT10LmluZGV4T2YoIjAuIik/bjpuLnJlcGxhY2UoL14wXC4vLCIuIik7aWYodD10LnJlcGxhY2UoL14jKyhbMC5dKS8sIiQxIiksaT10Lm1hdGNoKC9e'@; put 'KDAqKVwuKCMqKSQvKSlyZXR1cm4gbysoIiIrYykucmVwbGFjZSgvXC4oXGQqWzEtOV0pMCokLywiLiQxIikucmVwbGFjZSgvXigtP1xkKikkLywiJDEuIikucmVwbGFjZSgvXjBcLi8saVsxXS5sZW5ndGg/IjAuIjoiLiIpO2lmKGk9dC5tYXRjaCgvXiN7MSwzfSwjIzAoXC4/KSQvKSlyZXR1'@; put 'cm4gbytFdCgiIitjKTtpZihpPXQubWF0Y2goL14jLCMjMFwuKFsjMF0qMCkkLykpcmV0dXJuIHI8MD8iLSIrUXIoZSx0LC1yKTpFdCgiIityKSsiLiIramUoIjAiLGlbMV0ubGVuZ3RoKTtpZihpPXQubWF0Y2goL14jLCMqLCMwLykpcmV0dXJuIFFyKGUsdC5yZXBsYWNlKC9eIywjKiwvLCIi'@; put 'KSxyKTtpZihpPXQubWF0Y2goL14oWzAjXSspKFxcPy0oWzAjXSspKSskLykpcmV0dXJuIG49ZWEoUXIoZSx0LnJlcGxhY2UoL1tcXC1dL2csIiIpLHIpKSxzPTAsZWEoZWEodC5yZXBsYWNlKC9cXC9nLCIiKSkucmVwbGFjZSgvWzAjXS9nLGZ1bmN0aW9uKHYpe3JldHVybiBzPG4ubGVuZ3Ro'@; put 'P24uY2hhckF0KHMrKyk6IjAiPT09dj8iMCI6IiJ9KSk7aWYodC5tYXRjaCh2aSkpcmV0dXJuIigiKyhuPVFyKGUsIiMjIyMjIyMjIyMiLHIpKS5zdWJzdHIoMCwzKSsiKSAiK24uc3Vic3RyKDMsMykrIi0iK24uc3Vic3RyKDYpO3ZhciBsPSIiO2lmKGk9dC5tYXRjaCgvXihbIzA/XSspKCA/'@; put 'KVwvKCA/KShbIzA/XSspLykpcmV0dXJuIHM9TWF0aC5taW4oaVs0XS5sZW5ndGgsNyksZj1pMChjLE1hdGgucG93KDEwLHMpLTEsITEpLG49IiIrbywiICI9PShsPWx0KCJuIixpWzFdLGZbMV0pKS5jaGFyQXQobC5sZW5ndGgtMSkmJihsPWwuc3Vic3RyKDAsbC5sZW5ndGgtMSkrIjAiKSxu'@; put 'Kz1sK2lbMl0rIi8iK2lbM10sKGw9YTAoZlsyXSxzKSkubGVuZ3RoPGlbNF0ubGVuZ3RoJiYobD1UcihpWzRdLnN1YnN0cihpWzRdLmxlbmd0aC1sLmxlbmd0aCkpK2wpLG4rPWw7aWYoaT10Lm1hdGNoKC9eIyAoWyMwP10rKSggPylcLyggPykoWyMwP10rKS8pKXJldHVybiBzPU1hdGgubWlu'@; put 'KE1hdGgubWF4KGlbMV0ubGVuZ3RoLGlbNF0ubGVuZ3RoKSw3KSxvKygoZj1pMChjLE1hdGgucG93KDEwLHMpLTEsITApKVswXXx8KGZbMV0/IiI6IjAiKSkrIiAiKyhmWzFdP1UwKGZbMV0scykraVsyXSsiLyIraVszXSthMChmWzJdLHMpOmplKCIgIiwyKnMrMStpWzJdLmxlbmd0aCtpWzNd'@; put 'Lmxlbmd0aCkpO2lmKGk9dC5tYXRjaCgvXlsjMD9dKyQvKSlyZXR1cm4gdC5sZW5ndGg8PShuPSIiK3IpLmxlbmd0aD9uOlRyKHQuc3Vic3RyKDAsdC5sZW5ndGgtbi5sZW5ndGgpKStuO2lmKGk9dC5tYXRjaCgvXihbIzBdKylcLihbIzBdKykkLykpe249IiIrci50b0ZpeGVkKE1hdGgubWlu'@; put 'KGlbMl0ubGVuZ3RoLDEwKSkucmVwbGFjZSgvKFteMF0pMCskLywiJDEiKSxzPW4uaW5kZXhPZigiLiIpO3ZhciBoPXQuaW5kZXhPZigiLiIpLXMseD10Lmxlbmd0aC1uLmxlbmd0aC1oO3JldHVybiBUcih0LnN1YnN0cigwLGgpK24rdC5zdWJzdHIodC5sZW5ndGgteCkpfWlmKGk9dC5tYXRj'@; put 'aCgvXjAwLDAwMFwuKFsjMF0qMCkkLykpcmV0dXJuIHI8MD8iLSIrUXIoZSx0LC1yKTpFdCgiIityKS5yZXBsYWNlKC9eXGQsXGR7M30kLywiMCQmIikucmVwbGFjZSgvXlxkKiQvLGZ1bmN0aW9uKHYpe3JldHVybiIwMCwiKyh2Lmxlbmd0aDwzP1lyKDAsMy12Lmxlbmd0aCk6IiIpK3Z9KSsi'@; put 'LiIrWXIoMCxpWzFdLmxlbmd0aCk7c3dpdGNoKHQpe2Nhc2UiIyMjLCMjIyI6Y2FzZSIjIywjIyMiOmNhc2UiIywjIyMiOnZhciBkPUV0KCIiK2MpO3JldHVybiIwIiE9PWQ/bytkOiIiO2RlZmF1bHQ6aWYodC5tYXRjaCgvXC5bMCM/XSokLykpcmV0dXJuIFFyKGUsdC5zbGljZSgwLHQubGFz'@; put 'dEluZGV4T2YoIi4iKSkscikrVHIodC5zbGljZSh0Lmxhc3RJbmRleE9mKCIuIikpKX10aHJvdyBuZXcgRXJyb3IoInVuc3VwcG9ydGVkIGZvcm1hdCB8Iit0KyJ8Iil9ZnVuY3Rpb24gbHQoZSx0LHIpe3JldHVybigwfHIpPT09cj9RcihlLHQscik6VXIoZSx0LHIpfXZhciBfaT0vXFtbSGhN'@; put 'bVNzXHUwRTBBXHUwRTE5XHUwRTE3XSpcXS87ZnVuY3Rpb24gYnQoZSl7Zm9yKHZhciB0PTAscj0iIixhPSIiO3Q8ZS5sZW5ndGg7KXN3aXRjaChyPWUuY2hhckF0KHQpKXtjYXNlIkciOm4wKGUsdCkmJih0Kz02KSx0Kys7YnJlYWs7Y2FzZSciJzpmb3IoOzM0IT09ZS5jaGFyQ29kZUF0KCsr'@; put 'dCkmJnQ8ZS5sZW5ndGg7KTsrK3Q7YnJlYWs7Y2FzZSJcXCI6Y2FzZSJfIjp0Kz0yO2JyZWFrO2Nhc2UiQCI6Kyt0O2JyZWFrO2Nhc2UiQiI6Y2FzZSJiIjppZigiMSI9PT1lLmNoYXJBdCh0KzEpfHwiMiI9PT1lLmNoYXJBdCh0KzEpKXJldHVybiEwO2Nhc2UiTSI6Y2FzZSJEIjpjYXNlIlki'@; put 'OmNhc2UiSCI6Y2FzZSJTIjpjYXNlIkUiOmNhc2UibSI6Y2FzZSJkIjpjYXNlInkiOmNhc2UiaCI6Y2FzZSJzIjpjYXNlImUiOmNhc2UiZyI6cmV0dXJuITA7Y2FzZSJBIjpjYXNlImEiOmNhc2UiXHU0ZTBhIjppZigiQS9QIj09PWUuc3Vic3RyKHQsMykudG9VcHBlckNhc2UoKXx8IkFNL1BN'@; put 'Ij09PWUuc3Vic3RyKHQsNSkudG9VcHBlckNhc2UoKXx8Ilx1NGUwYVx1NTM0OC9cdTRlMGJcdTUzNDgiPT09ZS5zdWJzdHIodCw1KS50b1VwcGVyQ2FzZSgpKXJldHVybiEwOysrdDticmVhaztjYXNlIlsiOmZvcihhPXI7Il0iIT09ZS5jaGFyQXQodCsrKSYmdDxlLmxlbmd0aDspYSs9ZS5j'@; put 'aGFyQXQodCk7aWYoYS5tYXRjaChfaSkpcmV0dXJuITA7YnJlYWs7Y2FzZSIuIjpjYXNlIjAiOmNhc2UiIyI6Zm9yKDt0PGUubGVuZ3RoJiYoIjAjPy4sRSstJSIuaW5kZXhPZihyPWUuY2hhckF0KCsrdCkpPi0xfHwiXFwiPT1yJiYiLSI9PWUuY2hhckF0KHQrMSkmJiIwIyIuaW5kZXhPZihl'@; put 'LmNoYXJBdCh0KzIpKT4tMSk7KTticmVhaztjYXNlIj8iOmZvcig7ZS5jaGFyQXQoKyt0KT09PXI7KTticmVhaztjYXNlIioiOisrdCwoIiAiPT1lLmNoYXJBdCh0KXx8IioiPT1lLmNoYXJBdCh0KSkmJisrdDticmVhaztjYXNlIigiOmNhc2UiKSI6Kyt0O2JyZWFrO2Nhc2UiMSI6Y2FzZSIy'@; put 'IjpjYXNlIjMiOmNhc2UiNCI6Y2FzZSI1IjpjYXNlIjYiOmNhc2UiNyI6Y2FzZSI4IjpjYXNlIjkiOmZvcig7dDxlLmxlbmd0aCYmIjAxMjM0NTY3ODkiLmluZGV4T2YoZS5jaGFyQXQoKyt0KSk+LTE7KTticmVhaztkZWZhdWx0OisrdH1yZXR1cm4hMX12YXIgd2k9L1xbKD18Pls9XT98PFs+'@; put 'PV0/KSgtP1xkKyg/OlwuXGQqKT8pXF0vO2Z1bmN0aW9uIGtpKGUsdCl7aWYobnVsbD09dClyZXR1cm4hMTt2YXIgcj1wYXJzZUZsb2F0KHRbMl0pO3N3aXRjaCh0WzFdKXtjYXNlIj0iOmlmKGU9PXIpcmV0dXJuITA7YnJlYWs7Y2FzZSI+IjppZihlPnIpcmV0dXJuITA7YnJlYWs7Y2FzZSI8'@; put 'IjppZihlPHIpcmV0dXJuITA7YnJlYWs7Y2FzZSI8PiI6aWYoZSE9cilyZXR1cm4hMDticmVhaztjYXNlIj49IjppZihlPj1yKXJldHVybiEwO2JyZWFrO2Nhc2UiPD0iOmlmKGU8PXIpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gUnIoZSx0LHIpe251bGw9PXImJihyPXt9KTt2YXIgYT0i'@; put 'Ijtzd2l0Y2godHlwZW9mIGUpe2Nhc2Uic3RyaW5nIjphPSJtL2QveXkiPT1lJiZyLmRhdGVORj9yLmRhdGVORjplO2JyZWFrO2Nhc2UibnVtYmVyIjpudWxsPT0oYT0xND09ZSYmci5kYXRlTkY/ci5kYXRlTkY6KG51bGwhPXIudGFibGU/ci50YWJsZTpwZSlbZV0pJiYoYT1yLnRhYmxlJiZy'@; put 'LnRhYmxlW2ZpW2VdXXx8cGVbZmlbZV1dKSxudWxsPT1hJiYoYT1CY1tlXXx8IkdlbmVyYWwiKX1pZihuMChhLDApKXJldHVybiBOdCh0LHIpO3QgaW5zdGFuY2VvZiBEYXRlJiYodD1vaSh0LHIuZGF0ZTE5MDQpKTt2YXIgbj1mdW5jdGlvbiBybyhlLHQpe3ZhciByPWZ1bmN0aW9uIFFjKGUp'@; put 'e2Zvcih2YXIgdD1bXSxyPSExLGE9MCxuPTA7YTxlLmxlbmd0aDsrK2Epc3dpdGNoKGUuY2hhckNvZGVBdChhKSl7Y2FzZSAzNDpyPSFyO2JyZWFrO2Nhc2UgOTU6Y2FzZSA0MjpjYXNlIDkyOisrYTticmVhaztjYXNlIDU5OnRbdC5sZW5ndGhdPWUuc3Vic3RyKG4sYS1uKSxuPWErMX1pZih0'@; put 'W3QubGVuZ3RoXT1lLnN1YnN0cihuKSwhMD09PXIpdGhyb3cgbmV3IEVycm9yKCJGb3JtYXQgfCIrZSsifCB1bnRlcm1pbmF0ZWQgc3RyaW5nICIpO3JldHVybiB0fShlKSxhPXIubGVuZ3RoLG49clthLTFdLmluZGV4T2YoIkAiKTtpZihhPDQmJm4+LTEmJi0tYSxyLmxlbmd0aD40KXRocm93'@; put 'IG5ldyBFcnJvcigiY2Fubm90IGZpbmQgcmlnaHQgZm9ybWF0IGZvciB8IityLmpvaW4oInwiKSsifCIpO2lmKCJudW1iZXIiIT10eXBlb2YgdClyZXR1cm5bNCw0PT09ci5sZW5ndGh8fG4+LTE/cltyLmxlbmd0aC0xXToiQCJdO3N3aXRjaChyLmxlbmd0aCl7Y2FzZSAxOnI9bj4tMT9bIkdl'@; put 'bmVyYWwiLCJHZW5lcmFsIiwiR2VuZXJhbCIsclswXV06W3JbMF0sclswXSxyWzBdLCJAIl07YnJlYWs7Y2FzZSAyOnI9bj4tMT9bclswXSxyWzBdLHJbMF0sclsxXV06W3JbMF0sclsxXSxyWzBdLCJAIl07YnJlYWs7Y2FzZSAzOnI9bj4tMT9bclswXSxyWzFdLHJbMF0sclsyXV06W3JbMF0s'@; put 'clsxXSxyWzJdLCJAIl19dmFyIGk9dD4wP3JbMF06dDwwP3JbMV06clsyXTtpZigtMT09PXJbMF0uaW5kZXhPZigiWyIpJiYtMT09PXJbMV0uaW5kZXhPZigiWyIpKXJldHVyblthLGldO2lmKG51bGwhPXJbMF0ubWF0Y2goL1xbWz08Pl0vKXx8bnVsbCE9clsxXS5tYXRjaCgvXFtbPTw+XS8p'@; put 'KXt2YXIgcz1yWzBdLm1hdGNoKHdpKSxmPXJbMV0ubWF0Y2god2kpO3JldHVybiBraSh0LHMpP1thLHJbMF1dOmtpKHQsZik/W2EsclsxXV06W2EscltudWxsIT1zJiZudWxsIT1mPzI6MV1dfXJldHVyblthLGldfShhLHQpO2lmKG4wKG5bMV0pKXJldHVybiBOdCh0LHIpO2lmKCEwPT09dCl0'@; put 'PSJUUlVFIjtlbHNlIGlmKCExPT09dCl0PSJGQUxTRSI7ZWxzZSBpZigiIj09PXR8fG51bGw9PXQpcmV0dXJuIiI7cmV0dXJuIGZ1bmN0aW9uIGVvKGUsdCxyLGEpe2Zvcih2YXIgbyxsLGgsbj1bXSxpPSIiLHM9MCxmPSIiLGM9InQiLHg9IkgiO3M8ZS5sZW5ndGg7KXN3aXRjaChmPWUuY2hh'@; put 'ckF0KHMpKXtjYXNlIkciOmlmKCFuMChlLHMpKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkIGNoYXJhY3RlciAiK2YrIiBpbiAiK2UpO25bbi5sZW5ndGhdPXt0OiJHIix2OiJHZW5lcmFsIn0scys9NzticmVhaztjYXNlJyInOmZvcihpPSIiOzM0IT09KGg9ZS5jaGFyQ29kZUF0KCsr'@; put 'cykpJiZzPGUubGVuZ3RoOylpKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGgpO25bbi5sZW5ndGhdPXt0OiJ0Iix2Oml9LCsrczticmVhaztjYXNlIlxcIjp2YXIgZD1lLmNoYXJBdCgrK3MpO25bbi5sZW5ndGhdPXt0OiIoIj09PWR8fCIpIj09PWQ/ZDoidCIsdjpkfSwrK3M7YnJlYWs7Y2FzZSJf'@; put 'IjpuW24ubGVuZ3RoXT17dDoidCIsdjoiICJ9LHMrPTI7YnJlYWs7Y2FzZSJAIjpuW24ubGVuZ3RoXT17dDoiVCIsdjp0fSwrK3M7YnJlYWs7Y2FzZSJCIjpjYXNlImIiOmlmKCIxIj09PWUuY2hhckF0KHMrMSl8fCIyIj09PWUuY2hhckF0KHMrMSkpe2lmKG51bGw9PW8mJm51bGw9PShvPWt0'@; put 'KHQsciwiMiI9PT1lLmNoYXJBdChzKzEpKSkpcmV0dXJuIiI7bltuLmxlbmd0aF09e3Q6IlgiLHY6ZS5zdWJzdHIocywyKX0sYz1mLHMrPTI7YnJlYWt9Y2FzZSJNIjpjYXNlIkQiOmNhc2UiWSI6Y2FzZSJIIjpjYXNlIlMiOmNhc2UiRSI6Zj1mLnRvTG93ZXJDYXNlKCk7Y2FzZSJtIjpjYXNl'@; put 'ImQiOmNhc2UieSI6Y2FzZSJoIjpjYXNlInMiOmNhc2UiZSI6Y2FzZSJnIjppZih0PDB8fG51bGw9PW8mJm51bGw9PShvPWt0KHQscikpKXJldHVybiIiO2ZvcihpPWY7KytzPGUubGVuZ3RoJiZlLmNoYXJBdChzKS50b0xvd2VyQ2FzZSgpPT09ZjspaSs9ZjsibSI9PT1mJiYiaCI9PT1jLnRv'@; put 'TG93ZXJDYXNlKCkmJihmPSJNIiksImgiPT09ZiYmKGY9eCksbltuLmxlbmd0aF09e3Q6Zix2Oml9LGM9ZjticmVhaztjYXNlIkEiOmNhc2UiYSI6Y2FzZSJcdTRlMGEiOnZhciB1PXt0OmYsdjpmfTtpZihudWxsPT1vJiYobz1rdCh0LHIpKSwiQS9QIj09PWUuc3Vic3RyKHMsMykudG9VcHBl'@; put 'ckNhc2UoKT8obnVsbCE9byYmKHUudj1vLkg+PTEyPyJQIjoiQSIpLHUudD0iVCIseD0iaCIscys9Myk6IkFNL1BNIj09PWUuc3Vic3RyKHMsNSkudG9VcHBlckNhc2UoKT8obnVsbCE9byYmKHUudj1vLkg+PTEyPyJQTSI6IkFNIiksdS50PSJUIixzKz01LHg9ImgiKToiXHU0ZTBhXHU1MzQ4'@; put 'L1x1NGUwYlx1NTM0OCI9PT1lLnN1YnN0cihzLDUpLnRvVXBwZXJDYXNlKCk/KG51bGwhPW8mJih1LnY9by5IPj0xMj8iXHU0ZTBiXHU1MzQ4IjoiXHU0ZTBhXHU1MzQ4IiksdS50PSJUIixzKz01LHg9ImgiKToodS50PSJ0IiwrK3MpLG51bGw9PW8mJiJUIj09PXUudClyZXR1cm4iIjtuW24u'@; put 'bGVuZ3RoXT11LGM9ZjticmVhaztjYXNlIlsiOmZvcihpPWY7Il0iIT09ZS5jaGFyQXQocysrKSYmczxlLmxlbmd0aDspaSs9ZS5jaGFyQXQocyk7aWYoIl0iIT09aS5zbGljZSgtMSkpdGhyb3cndW50ZXJtaW5hdGVkICJbIiBibG9jazogfCcraSsifCI7aWYoaS5tYXRjaChfaSkpe2lmKG51'@; put 'bGw9PW8mJm51bGw9PShvPWt0KHQscikpKXJldHVybiIiO25bbi5sZW5ndGhdPXt0OiJaIix2OmkudG9Mb3dlckNhc2UoKX0sYz1pLmNoYXJBdCgxKX1lbHNlIGkuaW5kZXhPZigiJCIpPi0xJiYoaT0oaS5tYXRjaCgvXCQoW14tXFtcXV0qKS8pfHxbXSlbMV18fCIkIixidChlKXx8KG5bbi5s'@; put 'ZW5ndGhdPXt0OiJ0Iix2Oml9KSk7YnJlYWs7Y2FzZSIuIjppZihudWxsIT1vKXtmb3IoaT1mOysrczxlLmxlbmd0aCYmIjAiPT09KGY9ZS5jaGFyQXQocykpOylpKz1mO25bbi5sZW5ndGhdPXt0OiJzIix2Oml9O2JyZWFrfWNhc2UiMCI6Y2FzZSIjIjpmb3IoaT1mOysrczxlLmxlbmd0aCYm'@; put 'IjAjPy4sRSstJSIuaW5kZXhPZihmPWUuY2hhckF0KHMpKT4tMTspaSs9ZjtuW24ubGVuZ3RoXT17dDoibiIsdjppfTticmVhaztjYXNlIj8iOmZvcihpPWY7ZS5jaGFyQXQoKytzKT09PWY7KWkrPWY7bltuLmxlbmd0aF09e3Q6Zix2Oml9LGM9ZjticmVhaztjYXNlIioiOisrcywoIiAiPT1l'@; put 'LmNoYXJBdChzKXx8IioiPT1lLmNoYXJBdChzKSkmJisrczticmVhaztjYXNlIigiOmNhc2UiKSI6bltuLmxlbmd0aF09e3Q6MT09PWE/InQiOmYsdjpmfSwrK3M7YnJlYWs7Y2FzZSIxIjpjYXNlIjIiOmNhc2UiMyI6Y2FzZSI0IjpjYXNlIjUiOmNhc2UiNiI6Y2FzZSI3IjpjYXNlIjgiOmNh'@; put 'c2UiOSI6Zm9yKGk9ZjtzPGUubGVuZ3RoJiYiMDEyMzQ1Njc4OSIuaW5kZXhPZihlLmNoYXJBdCgrK3MpKT4tMTspaSs9ZS5jaGFyQXQocyk7bltuLmxlbmd0aF09e3Q6IkQiLHY6aX07YnJlYWs7Y2FzZSIgIjpuW24ubGVuZ3RoXT17dDpmLHY6Zn0sKytzO2JyZWFrO2Nhc2UiJCI6bltuLmxl'@; put 'bmd0aF09e3Q6InQiLHY6IiQifSwrK3M7YnJlYWs7ZGVmYXVsdDppZigtMT09PSIsJC0rLygpOiFeJid+e308Pj1cdTIwYWNhY2Zpamtsb3BxcnR1dnd4elAiLmluZGV4T2YoZikpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgY2hhcmFjdGVyICIrZisiIGluICIrZSk7bltuLmxlbmd0'@; put 'aF09e3Q6InQiLHY6Zn0sKytzfXZhciBULHA9MCxrPTA7Zm9yKHM9bi5sZW5ndGgtMSxjPSJ0IjtzPj0wOy0tcylzd2l0Y2gobltzXS50KXtjYXNlImgiOmNhc2UiSCI6bltzXS50PXgsYz0iaCIscDwxJiYocD0xKTticmVhaztjYXNlInMiOihUPW5bc10udi5tYXRjaCgvXC4wKyQvKSkmJihr'@; put 'PU1hdGgubWF4KGssVFswXS5sZW5ndGgtMSkpLHA8MyYmKHA9Myk7Y2FzZSJkIjpjYXNlInkiOmNhc2UiTSI6Y2FzZSJlIjpjPW5bc10udDticmVhaztjYXNlIm0iOiJzIj09PWMmJihuW3NdLnQ9Ik0iLHA8MiYmKHA9MikpO2JyZWFrO2Nhc2UiWCI6YnJlYWs7Y2FzZSJaIjpwPDEmJm5bc10u'@; put 'di5tYXRjaCgvW0hoXS8pJiYocD0xKSxwPDImJm5bc10udi5tYXRjaCgvW01tXS8pJiYocD0yKSxwPDMmJm5bc10udi5tYXRjaCgvW1NzXS8pJiYocD0zKX1zd2l0Y2gocCl7Y2FzZSAwOmJyZWFrO2Nhc2UgMTpvLnU+PS41JiYoby51PTAsKytvLlMpLG8uUz49NjAmJihvLlM9MCwrK28uTSks'@; put 'by5NPj02MCYmKG8uTT0wLCsrby5IKTticmVhaztjYXNlIDI6by51Pj0uNSYmKG8udT0wLCsrby5TKSxvLlM+PTYwJiYoby5TPTAsKytvLk0pfXZhciBOLGc9IiI7Zm9yKHM9MDtzPG4ubGVuZ3RoOysrcylzd2l0Y2gobltzXS50KXtjYXNlInQiOmNhc2UiVCI6Y2FzZSIgIjpjYXNlIkQiOmJy'@; put 'ZWFrO2Nhc2UiWCI6bltzXS52PSIiLG5bc10udD0iOyI7YnJlYWs7Y2FzZSJkIjpjYXNlIm0iOmNhc2UieSI6Y2FzZSJoIjpjYXNlIkgiOmNhc2UiTSI6Y2FzZSJzIjpjYXNlImUiOmNhc2UiYiI6Y2FzZSJaIjpuW3NdLnY9R2MobltzXS50LmNoYXJDb2RlQXQoMCksbltzXS52LG8sayksbltz'@; put 'XS50PSJ0IjticmVhaztjYXNlIm4iOmNhc2UiPyI6Zm9yKE49cysxO251bGwhPW5bTl0mJigiPyI9PT0oZj1uW05dLnQpfHwiRCI9PT1mfHwoIiAiPT09Znx8InQiPT09ZikmJm51bGwhPW5bTisxXSYmKCI/Ij09PW5bTisxXS50fHwidCI9PT1uW04rMV0udCYmIi8iPT09bltOKzFdLnYpfHwi'@; put 'KCI9PT1uW3NdLnQmJigiICI9PT1mfHwibiI9PT1mfHwiKSI9PT1mKXx8InQiPT09ZiYmKCIvIj09PW5bTl0udnx8IiAiPT09bltOXS52JiZudWxsIT1uW04rMV0mJiI/Ij09bltOKzFdLnQpKTspbltzXS52Kz1uW05dLnYsbltOXT17djoiIix0OiI7In0sKytOO2crPW5bc10udixzPU4tMTti'@; put 'cmVhaztjYXNlIkciOm5bc10udD0idCIsbltzXS52PU50KHQscil9dmFyIEkseSxNPSIiO2lmKGcubGVuZ3RoPjApezQwPT1nLmNoYXJDb2RlQXQoMCk/KEk9dDwwJiY0NT09PWcuY2hhckNvZGVBdCgwKT8tdDp0LHk9bHQoIm4iLGcsSSkpOih5PWx0KCJuIixnLEk9dDwwJiZhPjE/LXQ6dCks'@; put 'STwwJiZuWzBdJiYidCI9PW5bMF0udCYmKHk9eS5zdWJzdHIoMSksblswXS52PSItIituWzBdLnYpKSxOPXkubGVuZ3RoLTE7dmFyIFA9bi5sZW5ndGg7Zm9yKHM9MDtzPG4ubGVuZ3RoOysrcylpZihudWxsIT1uW3NdJiYidCIhPW5bc10udCYmbltzXS52LmluZGV4T2YoIi4iKT4tMSl7UD1z'@; put 'O2JyZWFrfXZhciBSPW4ubGVuZ3RoO2lmKFA9PT1uLmxlbmd0aCYmLTE9PT15LmluZGV4T2YoIkUiKSl7Zm9yKHM9bi5sZW5ndGgtMTtzPj0wOy0tcyludWxsPT1uW3NdfHwtMT09PSJuPyIuaW5kZXhPZihuW3NdLnQpfHwoTj49bltzXS52Lmxlbmd0aC0xP25bc10udj15LnN1YnN0cigxKyhO'@; put 'LT1uW3NdLnYubGVuZ3RoKSxuW3NdLnYubGVuZ3RoKTpOPDA/bltzXS52PSIiOihuW3NdLnY9eS5zdWJzdHIoMCxOKzEpLE49LTEpLG5bc10udD0idCIsUj1zKTtOPj0wJiZSPG4ubGVuZ3RoJiYobltSXS52PXkuc3Vic3RyKDAsTisxKStuW1JdLnYpfWVsc2UgaWYoUCE9PW4ubGVuZ3RoJiYt'@; put 'MT09PXkuaW5kZXhPZigiRSIpKXtmb3IoTj15LmluZGV4T2YoIi4iKS0xLHM9UDtzPj0wOy0tcylpZihudWxsIT1uW3NdJiYtMSE9PSJuPyIuaW5kZXhPZihuW3NdLnQpKXtmb3IobD1uW3NdLnYuaW5kZXhPZigiLiIpPi0xJiZzPT09UD9uW3NdLnYuaW5kZXhPZigiLiIpLTE6bltzXS52Lmxl'@; put 'bmd0aC0xLE09bltzXS52LnN1YnN0cihsKzEpO2w+PTA7LS1sKU4+PTAmJigiMCI9PT1uW3NdLnYuY2hhckF0KGwpfHwiIyI9PT1uW3NdLnYuY2hhckF0KGwpKSYmKE09eS5jaGFyQXQoTi0tKStNKTtuW3NdLnY9TSxuW3NdLnQ9InQiLFI9c31mb3IoTj49MCYmUjxuLmxlbmd0aCYmKG5bUl0u'@; put 'dj15LnN1YnN0cigwLE4rMSkrbltSXS52KSxOPXkuaW5kZXhPZigiLiIpKzEscz1QO3M8bi5sZW5ndGg7KytzKWlmKG51bGwhPW5bc10mJigtMSE9PSJuPygiLmluZGV4T2YobltzXS50KXx8cz09PVApKXtmb3IobD1uW3NdLnYuaW5kZXhPZigiLiIpPi0xJiZzPT09UD9uW3NdLnYuaW5kZXhP'@; put 'ZigiLiIpKzE6MCxNPW5bc10udi5zdWJzdHIoMCxsKTtsPG5bc10udi5sZW5ndGg7KytsKU48eS5sZW5ndGgmJihNKz15LmNoYXJBdChOKyspKTtuW3NdLnY9TSxuW3NdLnQ9InQiLFI9c319fWZvcihzPTA7czxuLmxlbmd0aDsrK3MpbnVsbCE9bltzXSYmIm4/Ii5pbmRleE9mKG5bc10udCk+'@; put 'LTEmJihuW3NdLnY9bHQobltzXS50LG5bc10udixJPWE+MSYmdDwwJiZzPjAmJiItIj09PW5bcy0xXS52Py10OnQpLG5bc10udD0idCIpO3ZhciBWPSIiO2ZvcihzPTA7cyE9PW4ubGVuZ3RoOysrcyludWxsIT1uW3NdJiYoVis9bltzXS52KTtyZXR1cm4gVn0oblsxXSx0LHIsblswXSl9ZnVu'@; put 'Y3Rpb24gZXQoZSx0KXtpZigibnVtYmVyIiE9dHlwZW9mIHQpe3Q9K3R8fC0xO2Zvcih2YXIgcj0wO3I8MzkyOysrcilpZihudWxsIT1wZVtyXSl7aWYocGVbcl09PWUpe3Q9cjticmVha319ZWxzZSB0PDAmJih0PXIpO3Q8MCYmKHQ9MzkxKX1yZXR1cm4gcGVbdF09ZSx0fWZ1bmN0aW9uIHRh'@; put 'KCl7cGU9ZnVuY3Rpb24gTGMoZSl7cmV0dXJuIGV8fChlPXt9KSxlWzBdPSJHZW5lcmFsIixlWzFdPSIwIixlWzJdPSIwLjAwIixlWzNdPSIjLCMjMCIsZVs0XT0iIywjIzAuMDAiLGVbOV09IjAlIixlWzEwXT0iMC4wMCUiLGVbMTFdPSIwLjAwRSswMCIsZVsxMl09IiMgPy8/IixlWzEzXT0i'@; put 'IyA/Py8/PyIsZVsxNF09Im0vZC95eSIsZVsxNV09ImQtbW1tLXl5IixlWzE2XT0iZC1tbW0iLGVbMTddPSJtbW0teXkiLGVbMThdPSJoOm1tIEFNL1BNIixlWzE5XT0iaDptbTpzcyBBTS9QTSIsZVsyMF09Img6bW0iLGVbMjFdPSJoOm1tOnNzIixlWzIyXT0ibS9kL3l5IGg6bW0iLGVbMzdd'@; put 'PSIjLCMjMCA7KCMsIyMwKSIsZVszOF09IiMsIyMwIDtbUmVkXSgjLCMjMCkiLGVbMzldPSIjLCMjMC4wMDsoIywjIzAuMDApIixlWzQwXT0iIywjIzAuMDA7W1JlZF0oIywjIzAuMDApIixlWzQ1XT0ibW06c3MiLGVbNDZdPSJbaF06bW06c3MiLGVbNDddPSJtbXNzLjAiLGVbNDhdPSIjIzAu'@; put 'MEUrMCIsZVs0OV09IkAiLGVbNTZdPSciXHU0ZTBhXHU1MzQ4L1x1NGUwYlx1NTM0OCAiaGgiXHU2NjQyIm1tIlx1NTIwNiJzcyJcdTc5ZDIgIicsZX0oKX12YXIgYW89ezU6JyIkIiMsIyMwXyk7XFwoIiQiIywjIzBcXCknLDY6JyIkIiMsIyMwXyk7W1JlZF1cXCgiJCIjLCMjMFxcKScsNzon'@; put 'IiQiIywjIzAuMDBfKTtcXCgiJCIjLCMjMC4wMFxcKScsODonIiQiIywjIzAuMDBfKTtbUmVkXVxcKCIkIiMsIyMwLjAwXFwpJywyMzoiR2VuZXJhbCIsMjQ6IkdlbmVyYWwiLDI1OiJHZW5lcmFsIiwyNjoiR2VuZXJhbCIsMjc6Im0vZC95eSIsMjg6Im0vZC95eSIsMjk6Im0vZC95eSIsMzA6'@; put 'Im0vZC95eSIsMzE6Im0vZC95eSIsMzI6Img6bW06c3MiLDMzOiJoOm1tOnNzIiwzNDoiaDptbTpzcyIsMzU6Img6bW06c3MiLDM2OiJtL2QveXkiLDQxOidfKCogIywjIzBfKTtfKCogKCMsIyMwKTtfKCogIi0iXyk7XyhAXyknLDQyOidfKCIkIiogIywjIzBfKTtfKCIkIiogKCMsIyMwKTtf'@; put 'KCIkIiogIi0iXyk7XyhAXyknLDQzOidfKCogIywjIzAuMDBfKTtfKCogKCMsIyMwLjAwKTtfKCogIi0iPz9fKTtfKEBfKScsNDQ6J18oIiQiKiAjLCMjMC4wMF8pO18oIiQiKiAoIywjIzAuMDApO18oIiQiKiAiLSI/P18pO18oQF8pJyw1MDoibS9kL3l5Iiw1MToibS9kL3l5Iiw1MjoibS9k'@; put 'L3l5Iiw1MzoibS9kL3l5Iiw1NDoibS9kL3l5Iiw1NToibS9kL3l5Iiw1NjoibS9kL3l5Iiw1NzoibS9kL3l5Iiw1ODoibS9kL3l5Iiw1OToiMCIsNjA6IjAuMDAiLDYxOiIjLCMjMCIsNjI6IiMsIyMwLjAwIiw2MzonIiQiIywjIzBfKTtcXCgiJCIjLCMjMFxcKScsNjQ6JyIkIiMsIyMwXyk7'@; put 'W1JlZF1cXCgiJCIjLCMjMFxcKScsNjU6JyIkIiMsIyMwLjAwXyk7XFwoIiQiIywjIzAuMDBcXCknLDY2OiciJCIjLCMjMC4wMF8pO1tSZWRdXFwoIiQiIywjIzAuMDBcXCknLDY3OiIwJSIsNjg6IjAuMDAlIiw2OToiIyA/Lz8iLDcwOiIjID8/Lz8/Iiw3MToibS9kL3l5Iiw3MjoibS9kL3l5'@; put 'Iiw3MzoiZC1tbW0teXkiLDc0OiJkLW1tbSIsNzU6Im1tbS15eSIsNzY6Img6bW0iLDc3OiJoOm1tOnNzIiw3ODoibS9kL3l5IGg6bW0iLDc5OiJtbTpzcyIsODA6IltoXTptbTpzcyIsODE6Im1tc3MuMCJ9LEVpPS9bZERdK3xbbU1dK3xbeVllRV0rfFtIaF0rfFtTc10rL2csc289ZnVuY3Rp'@; put 'b24oKXt2YXIgZT17dmVyc2lvbjoiMS4yLjAifSxyPWZ1bmN0aW9uIHQoKXtmb3IodmFyIHk9MCxQPW5ldyBBcnJheSgyNTYpLFI9MDsyNTYhPVI7KytSKVBbUl09eT0xJih5PTEmKHk9MSYoeT0xJih5PTEmKHk9MSYoeT0xJih5PTEmKHk9Uik/LTMwNjY3NDkxMl55Pj4+MTp5Pj4+MSk/LTMw'@; put 'NjY3NDkxMl55Pj4+MTp5Pj4+MSk/LTMwNjY3NDkxMl55Pj4+MTp5Pj4+MSk/LTMwNjY3NDkxMl55Pj4+MTp5Pj4+MSk/LTMwNjY3NDkxMl55Pj4+MTp5Pj4+MSk/LTMwNjY3NDkxMl55Pj4+MTp5Pj4+MSk/LTMwNjY3NDkxMl55Pj4+MTp5Pj4+MSk/LTMwNjY3NDkxMl55Pj4+MTp5Pj4+MTty'@; put 'ZXR1cm4gdHlwZW9mIEludDMyQXJyYXk8InUiP25ldyBJbnQzMkFycmF5KFApOlB9KCksbj1mdW5jdGlvbiBhKHkpe3ZhciBQPTAsUj0wLFY9MCxYPXR5cGVvZiBJbnQzMkFycmF5PCJ1Ij9uZXcgSW50MzJBcnJheSg0MDk2KTpuZXcgQXJyYXkoNDA5Nik7Zm9yKFY9MDsyNTYhPVY7KytWKVhb'@; put 'Vl09eVtWXTtmb3IoVj0wOzI1NiE9VjsrK1YpZm9yKFI9eVtWXSxQPTI1NitWO1A8NDA5NjtQKz0yNTYpUj1YW1BdPVI+Pj44XnlbMjU1JlJdO3ZhciBiPVtdO2ZvcihWPTE7MTYhPVY7KytWKWJbVi0xXT10eXBlb2YgSW50MzJBcnJheTwidSI/WC5zdWJhcnJheSgyNTYqViwyNTYqVisyNTYp'@; put 'Olguc2xpY2UoMjU2KlYsMjU2KlYrMjU2KTtyZXR1cm4gYn0ociksaT1uWzBdLHM9blsxXSxmPW5bMl0sYz1uWzNdLG89bls0XSxsPW5bNV0saD1uWzZdLHg9bls3XSxkPW5bOF0sdj1uWzldLHU9blsxMF0scD1uWzExXSxrPW5bMTJdLFQ9blsxM10sZz1uWzE0XTtyZXR1cm4gZS50YWJsZT1y'@; put 'LGUuYnN0cj1mdW5jdGlvbiBOKHksUCl7Zm9yKHZhciBSPX5QLFY9MCxYPXkubGVuZ3RoO1Y8WDspUj1SPj4+OF5yWzI1NSYoUl55LmNoYXJDb2RlQXQoVisrKSldO3JldHVybn5SfSxlLmJ1Zj1mdW5jdGlvbiBNKHksUCl7Zm9yKHZhciBSPX5QLFY9eS5sZW5ndGgtMTUsWD0wO1g8VjspUj1n'@; put 'W3lbWCsrXV4yNTUmUl1eVFt5W1grK11eUj4+OCYyNTVdXmtbeVtYKytdXlI+PjE2JjI1NV1ecFt5W1grK11eUj4+PjI0XV51W3lbWCsrXV1edlt5W1grK11dXmRbeVtYKytdXV54W3lbWCsrXV1eaFt5W1grK11dXmxbeVtYKytdXV5vW3lbWCsrXV1eY1t5W1grK11dXmZbeVtYKytdXV5zW3lb'@; put 'WCsrXV1eaVt5W1grK11dXnJbeVtYKytdXTtmb3IoVis9MTU7WDxWOylSPVI+Pj44XnJbMjU1JihSXnlbWCsrXSldO3JldHVybn5SfSxlLnN0cj1mdW5jdGlvbiBJKHksUCl7Zm9yKHZhciBSPX5QLFY9MCxYPXkubGVuZ3RoLGI9MCxlZT0wO1Y8WDspKGI9eS5jaGFyQ29kZUF0KFYrKykpPDEy'@; put 'OD9SPVI+Pj44XnJbMjU1JihSXmIpXTpiPDIwNDg/Uj0oUj1SPj4+OF5yWzI1NSYoUl4oMTkyfGI+PjYmMzEpKV0pPj4+OF5yWzI1NSYoUl4oMTI4fDYzJmIpKV06Yj49NTUyOTYmJmI8NTczNDQ/KGI9NjQrKDEwMjMmYiksZWU9MTAyMyZ5LmNoYXJDb2RlQXQoVisrKSxSPShSPShSPShSPVI+'@; put 'Pj44XnJbMjU1JihSXigyNDB8Yj4+OCY3KSldKT4+PjheclsyNTUmKFJeKDEyOHxiPj4yJjYzKSldKT4+PjheclsyNTUmKFJeKDEyOHxlZT4+NiYxNXwoMyZiKTw8NCkpXSk+Pj44XnJbMjU1JihSXigxMjh8NjMmZWUpKV0pOlI9KFI9KFI9Uj4+PjheclsyNTUmKFJeKDIyNHxiPj4xMiYxNSkp'@; put 'XSk+Pj44XnJbMjU1JihSXigxMjh8Yj4+NiY2MykpXSk+Pj44XnJbMjU1JihSXigxMjh8NjMmYikpXTtyZXR1cm5+Un0sZX0oKSx2ZT1mdW5jdGlvbigpe3ZhciBjLHQ9e307ZnVuY3Rpb24gYShtKXtpZigiLyI9PW0uY2hhckF0KG0ubGVuZ3RoLTEpKXJldHVybi0xPT09bS5zbGljZSgwLC0x'@; put 'KS5pbmRleE9mKCIvIik/bTphKG0uc2xpY2UoMCwtMSkpO3ZhciBFPW0ubGFzdEluZGV4T2YoIi8iKTtyZXR1cm4tMT09PUU/bTptLnNsaWNlKDAsRSsxKX1mdW5jdGlvbiBuKG0pe2lmKCIvIj09bS5jaGFyQXQobS5sZW5ndGgtMSkpcmV0dXJuIG4obS5zbGljZSgwLC0xKSk7dmFyIEU9bS5s'@; put 'YXN0SW5kZXhPZigiLyIpO3JldHVybi0xPT09RT9tOm0uc2xpY2UoRSsxKX1mdW5jdGlvbiBpKG0sRSl7InN0cmluZyI9PXR5cGVvZiBFJiYoRT1uZXcgRGF0ZShFKSk7dmFyIF89RS5nZXRIb3VycygpO189KF89Xzw8NnxFLmdldE1pbnV0ZXMoKSk8PDV8RS5nZXRTZWNvbmRzKCk+Pj4xLG0u'@; put 'd3JpdGVfc2hpZnQoMixfKTt2YXIgdz1FLmdldEZ1bGxZZWFyKCktMTk4MDt3PSh3PXc8PDR8RS5nZXRNb250aCgpKzEpPDw1fEUuZ2V0RGF0ZSgpLG0ud3JpdGVfc2hpZnQoMix3KX1mdW5jdGlvbiBmKG0pe2hyKG0sMCk7Zm9yKHZhciBFPXt9LF89MDttLmw8PW0ubGVuZ3RoLTQ7KXt2YXIg'@; put 'dz1tLnJlYWRfc2hpZnQoMiksUz1tLnJlYWRfc2hpZnQoMiksRj1tLmwrUyxMPXt9OzIxNTg5PT09dyYmKDEmKF89bS5yZWFkX3NoaWZ0KDEpKSYmKEwubXRpbWU9bS5yZWFkX3NoaWZ0KDQpKSxTPjUmJigyJl8mJihMLmF0aW1lPW0ucmVhZF9zaGlmdCg0KSksNCZfJiYoTC5jdGltZT1tLnJl'@; put 'YWRfc2hpZnQoNCkpKSxMLm10aW1lJiYoTC5tdD1uZXcgRGF0ZSgxZTMqTC5tdGltZSkpKSxtLmw9RixFW3ddPUx9cmV0dXJuIEV9ZnVuY3Rpb24gbygpe3JldHVybiBjfHwoYz17fSl9ZnVuY3Rpb24gbChtLEUpe2lmKDgwPT1tWzBdJiY3NT09bVsxXSlyZXR1cm4gQ2MobSxFKTtpZigxMDk9'@; put 'PSgzMnxtWzBdKSYmMTA1PT0oMzJ8bVsxXSkpcmV0dXJuIGZ1bmN0aW9uIE5nKG0sRSl7aWYoIm1pbWUtdmVyc2lvbjoiIT1jZShtLnNsaWNlKDAsMTMpKS50b0xvd2VyQ2FzZSgpKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgTUFEIGhlYWRlciIpO3ZhciBfPUUmJkUucm9vdHx8IiIs'@; put 'dz0oU2UmJkJ1ZmZlci5pc0J1ZmZlcihtKT9tLnRvU3RyaW5nKCJiaW5hcnkiKTpjZShtKSkuc3BsaXQoIlxyXG4iKSxTPTAsRj0iIjtmb3IoUz0wO1M8dy5sZW5ndGg7KytTKWlmKC9eQ29udGVudC1Mb2NhdGlvbjovaS50ZXN0KEY9d1tTXSkmJihGPUYuc2xpY2UoRi5pbmRleE9mKCJmaWxl'@; put 'IikpLF98fChfPUYuc2xpY2UoMCxGLmxhc3RJbmRleE9mKCIvIikrMSkpLEYuc2xpY2UoMCxfLmxlbmd0aCkhPV8pKWZvcig7Xy5sZW5ndGg+MCYmKF89KF89Xy5zbGljZSgwLF8ubGVuZ3RoLTEpKS5zbGljZSgwLF8ubGFzdEluZGV4T2YoIi8iKSsxKSxGLnNsaWNlKDAsXy5sZW5ndGgpIT1f'@; put 'KTspO3ZhciBMPSh3WzFdfHwiIikubWF0Y2goL2JvdW5kYXJ5PSIoLio/KSIvKTtpZighTCl0aHJvdyBuZXcgRXJyb3IoIk1BRCBjYW5ub3QgZmluZCBib3VuZGFyeSIpO3ZhciB6PSItLSIrKExbMV18fCIiKSxIPXtGaWxlSW5kZXg6W10sRnVsbFBhdGhzOltdfTt5KEgpO3ZhciBxLG5lPTA7'@; put 'Zm9yKFM9MDtTPHcubGVuZ3RoOysrUyl7dmFyIGhlPXdbU107aGUhPT16JiZoZSE9PXorIi0tInx8KG5lKysmJlJnKEgsdy5zbGljZShxLFMpLF8pLHE9Uyl9cmV0dXJuIEh9KG0sRSk7aWYobS5sZW5ndGg8NTEyKXRocm93IG5ldyBFcnJvcigiQ0ZCIGZpbGUgc2l6ZSAiK20ubGVuZ3RoKyIg'@; put 'PCA1MTIiKTt2YXIgXyxTLEYsTCx6LFcsdz01MTIsQj1bXSxIPW0uc2xpY2UoMCw1MTIpO2hyKEgsMCk7dmFyIHE9ZnVuY3Rpb24gaChtKXtpZig4MD09bVttLmxdJiY3NT09bVttLmwrMV0pcmV0dXJuWzAsMF07bS5jaGsobGUsIkhlYWRlciBTaWduYXR1cmU6ICIpLG0ubCs9MTY7dmFyIEU9'@; put 'bS5yZWFkX3NoaWZ0KDIsInUiKTtyZXR1cm5bbS5yZWFkX3NoaWZ0KDIsInUiKSxFXX0oSCk7c3dpdGNoKF89cVswXSl7Y2FzZSAzOnc9NTEyO2JyZWFrO2Nhc2UgNDp3PTQwOTY7YnJlYWs7Y2FzZSAwOmlmKDA9PXFbMV0pcmV0dXJuIENjKG0sRSk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3Io'@; put 'Ik1ham9yIFZlcnNpb246IEV4cGVjdGVkIDMgb3IgNCBzYXcgIitfKX01MTIhPT13JiZocihIPW0uc2xpY2UoMCx3KSwyOCk7dmFyIG5lPW0uc2xpY2UoMCx3KTshZnVuY3Rpb24geChtLEUpe3ZhciBfO3N3aXRjaChtLmwrPTIsXz1tLnJlYWRfc2hpZnQoMikpe2Nhc2UgOTppZigzIT1FKXRo'@; put 'cm93IG5ldyBFcnJvcigiU2VjdG9yIFNoaWZ0OiBFeHBlY3RlZCA5IHNhdyAiK18pO2JyZWFrO2Nhc2UgMTI6aWYoNCE9RSl0aHJvdyBuZXcgRXJyb3IoIlNlY3RvciBTaGlmdDogRXhwZWN0ZWQgMTIgc2F3ICIrXyk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlNlY3RvciBTaGlm'@; put 'dDogRXhwZWN0ZWQgOSBvciAxMiBzYXcgIitfKX1tLmNoaygiMDYwMCIsIk1pbmkgU2VjdG9yIFNoaWZ0OiAiKSxtLmNoaygiMDAwMDAwMDAwMDAwIiwiUmVzZXJ2ZWQ6ICIpfShILF8pO3ZhciBoZT1ILnJlYWRfc2hpZnQoNCwiaSIpO2lmKDM9PT1fJiYwIT09aGUpdGhyb3cgbmV3IEVycm9y'@; put 'KCIjIERpcmVjdG9yeSBTZWN0b3JzOiBFeHBlY3RlZCAwIHNhdyAiK2hlKTtILmwrPTQsTD1ILnJlYWRfc2hpZnQoNCwiaSIpLEgubCs9NCxILmNoaygiMDAxMDAwMDAiLCJNaW5pIFN0cmVhbSBDdXRvZmYgU2l6ZTogIiksej1ILnJlYWRfc2hpZnQoNCwiaSIpLFM9SC5yZWFkX3NoaWZ0KDQs'@; put 'ImkiKSxXPUgucmVhZF9zaGlmdCg0LCJpIiksRj1ILnJlYWRfc2hpZnQoNCwiaSIpO2Zvcih2YXIgaWU9LTEsZmU9MDtmZTwxMDkmJiEoKGllPUgucmVhZF9zaGlmdCg0LCJpIikpPDApOysrZmUpQltmZV09aWU7dmFyIF9lPWZ1bmN0aW9uIGQobSxFKXtmb3IodmFyIF89TWF0aC5jZWlsKG0u'@; put 'bGVuZ3RoL0UpLTEsdz1bXSxTPTE7UzxfOysrUyl3W1MtMV09bS5zbGljZShTKkUsKFMrMSkqRSk7cmV0dXJuIHdbXy0xXT1tLnNsaWNlKF8qRSksd30obSx3KTtwKFcsRixfZSx3LEIpO3ZhciBWZT1mdW5jdGlvbiBUKG0sRSxfLHcpe3ZhciBTPW0ubGVuZ3RoLEY9W10sTD1bXSx6PVtdLFc9'@; put 'W10sQj13LTEsSD0wLHE9MCxuZT0wLGhlPTA7Zm9yKEg9MDtIPFM7KytIKWlmKHo9W10sKG5lPUgrRSk+PVMmJihuZS09UyksIUxbbmVdKXtXPVtdO3ZhciBpZT1bXTtmb3IocT1uZTtxPj0wOyl7aWVbcV09ITAsTFtxXT0hMCx6W3oubGVuZ3RoXT1xLFcucHVzaChtW3FdKTt2YXIgZmU9X1tN'@; put 'YXRoLmZsb29yKDQqcS93KV07aWYodzw0KyhoZT00KnEmQikpdGhyb3cgbmV3IEVycm9yKCJGQVQgYm91bmRhcnkgY3Jvc3NlZDogIitxKyIgNCAiK3cpO2lmKCFtW2ZlXXx8aWVbcT1MdChtW2ZlXSxoZSldKWJyZWFrfUZbbmVdPXtub2Rlczp6LGRhdGE6emkoW1ddKX19cmV0dXJuIEZ9KF9l'@; put 'LEwsQix3KTtWZVtMXS5uYW1lPSIhRGlyZWN0b3J5IixTPjAmJnohPT1lZSYmKFZlW3pdLm5hbWU9IiFNaW5pRkFUIiksVmVbQlswXV0ubmFtZT0iIUZBVCIsVmUuZmF0X2FkZHJzPUIsVmUuc3N6PXc7dmFyIG5yPVtdLEJyPVtdLFphPVtdOyhmdW5jdGlvbiBnKG0sRSxfLHcsUyxGLEwseil7'@; put 'Zm9yKHZhciBoZSxXPTAsQj13Lmxlbmd0aD8yOjAsSD1FW21dLmRhdGEscT0wLG5lPTA7cTxILmxlbmd0aDtxKz0xMjgpe3ZhciBpZT1ILnNsaWNlKHEscSsxMjgpO2hyKGllLDY0KSxuZT1pZS5yZWFkX3NoaWZ0KDIpLGhlPXUwKGllLDAsbmUtQiksdy5wdXNoKGhlKTt2YXIgZmU9e25hbWU6'@; put 'aGUsdHlwZTppZS5yZWFkX3NoaWZ0KDEpLGNvbG9yOmllLnJlYWRfc2hpZnQoMSksTDppZS5yZWFkX3NoaWZ0KDQsImkiKSxSOmllLnJlYWRfc2hpZnQoNCwiaSIpLEM6aWUucmVhZF9zaGlmdCg0LCJpIiksY2xzaWQ6aWUucmVhZF9zaGlmdCgxNiksc3RhdGU6aWUucmVhZF9zaGlmdCg0LCJp'@; put 'Iiksc3RhcnQ6MCxzaXplOjB9OzAhPT1pZS5yZWFkX3NoaWZ0KDIpK2llLnJlYWRfc2hpZnQoMikraWUucmVhZF9zaGlmdCgyKStpZS5yZWFkX3NoaWZ0KDIpJiYoZmUuY3Q9TihpZSxpZS5sLTgpKSwwIT09aWUucmVhZF9zaGlmdCgyKStpZS5yZWFkX3NoaWZ0KDIpK2llLnJlYWRfc2hpZnQo'@; put 'MikraWUucmVhZF9zaGlmdCgyKSYmKGZlLm10PU4oaWUsaWUubC04KSksZmUuc3RhcnQ9aWUucmVhZF9zaGlmdCg0LCJpIiksZmUuc2l6ZT1pZS5yZWFkX3NoaWZ0KDQsImkiKSxmZS5zaXplPDAmJmZlLnN0YXJ0PDAmJihmZS5zaXplPWZlLnR5cGU9MCxmZS5zdGFydD1lZSxmZS5uYW1lPSIi'@; put 'KSw1PT09ZmUudHlwZT8oVz1mZS5zdGFydCxTPjAmJlchPT1lZSYmKEVbV10ubmFtZT0iIVN0cmVhbURhdGEiKSk6ZmUuc2l6ZT49NDA5Nj8oZmUuc3RvcmFnZT0iZmF0Iix2b2lkIDA9PT1FW2ZlLnN0YXJ0XSYmKEVbZmUuc3RhcnRdPWsoXyxmZS5zdGFydCxFLmZhdF9hZGRycyxFLnNzeikp'@; put 'LEVbZmUuc3RhcnRdLm5hbWU9ZmUubmFtZSxmZS5jb250ZW50PUVbZmUuc3RhcnRdLmRhdGEuc2xpY2UoMCxmZS5zaXplKSk6KGZlLnN0b3JhZ2U9Im1pbmlmYXQiLGZlLnNpemU8MD9mZS5zaXplPTA6VyE9PWVlJiZmZS5zdGFydCE9PWVlJiZFW1ddJiYoZmUuY29udGVudD11KGZlLEVbV10u'@; put 'ZGF0YSwoRVt6XXx8e30pLmRhdGEpKSksZmUuY29udGVudCYmaHIoZmUuY29udGVudCwwKSxGW2hlXT1mZSxMLnB1c2goZmUpfX0pKEwsVmUsX2UsbnIsUyx7fSxCcix6KSxmdW5jdGlvbiB2KG0sRSxfKXtmb3IodmFyIHc9MCxTPTAsRj0wLEw9MCx6PTAsVz1fLmxlbmd0aCxCPVtdLEg9W107'@; put 'dzxXOysrdylCW3ddPUhbd109dyxFW3ddPV9bd107Zm9yKDt6PEgubGVuZ3RoOysreilTPW1bdz1IW3pdXS5MLEY9bVt3XS5SLEw9bVt3XS5DLEJbd109PT13JiYoLTEhPT1TJiZCW1NdIT09UyYmKEJbd109QltTXSksLTEhPT1GJiZCW0ZdIT09RiYmKEJbd109QltGXSkpLC0xIT09TCYmKEJb'@; put 'TF09dyksLTEhPT1TJiZ3IT1CW3ddJiYoQltTXT1CW3ddLEgubGFzdEluZGV4T2YoUyk8eiYmSC5wdXNoKFMpKSwtMSE9PUYmJnchPUJbd10mJihCW0ZdPUJbd10sSC5sYXN0SW5kZXhPZihGKTx6JiZILnB1c2goRikpO2Zvcih3PTE7dzxXOysrdylCW3ddPT09dyYmKC0xIT09RiYmQltGXSE9'@; put 'PUY/Qlt3XT1CW0ZdOi0xIT09UyYmQltTXSE9PVMmJihCW3ddPUJbU10pKTtmb3Iodz0xO3c8VzsrK3cpaWYoMCE9PW1bd10udHlwZSl7aWYoKHo9dykhPUJbel0pZG97RVt3XT1FW3o9Qlt6XV0rIi8iK0Vbd119d2hpbGUoMCE9PXomJi0xIT09Qlt6XSYmeiE9Qlt6XSk7Qlt3XT0tMX1mb3Io'@; put 'RVswXSs9Ii8iLHc9MTt3PFc7Kyt3KTIhPT1tW3ddLnR5cGUmJihFW3ddKz0iLyIpfShCcixaYSxuciksbnIuc2hpZnQoKTt2YXIgUWE9e0ZpbGVJbmRleDpCcixGdWxsUGF0aHM6WmF9O3JldHVybiBFJiZFLnJhdyYmKFFhLnJhdz17aGVhZGVyOm5lLHNlY3RvcnM6X2V9KSxRYX1mdW5jdGlv'@; put 'biB1KG0sRSxfKXtmb3IodmFyIFM9bS5zaXplLEY9W10sTD1tLnN0YXJ0O18mJlM+MCYmTD49MDspRi5wdXNoKEUuc2xpY2UoTCpiLEwqYitiKSksUy09YixMPUx0KF8sNCpMKTtyZXR1cm4gMD09PUYubGVuZ3RoP0coMCk6ZnIoRikuc2xpY2UoMCxtLnNpemUpfWZ1bmN0aW9uIHAobSxFLF8s'@; put 'dyxTKXt2YXIgRj1lZTtpZihtPT09ZWUpe2lmKDAhPT1FKXRocm93IG5ldyBFcnJvcigiRElGQVQgY2hhaW4gc2hvcnRlciB0aGFuIGV4cGVjdGVkIil9ZWxzZSBpZigtMSE9PW0pe3ZhciBMPV9bbV0sej0odz4+PjIpLTE7aWYoIUwpcmV0dXJuO2Zvcih2YXIgVz0wO1c8eiYmKEY9THQoTCw0'@; put 'KlcpKSE9PWVlOysrVylTLnB1c2goRik7cChMdChMLHctNCksRS0xLF8sdyxTKX19ZnVuY3Rpb24gayhtLEUsXyx3LFMpe3ZhciBGPVtdLEw9W107U3x8KFM9W10pO3ZhciB6PXctMSxXPTAsQj0wO2ZvcihXPUU7Vz49MDspe1NbV109ITAsRltGLmxlbmd0aF09VyxMLnB1c2gobVtXXSk7dmFy'@; put 'IEg9X1tNYXRoLmZsb29yKDQqVy93KV07aWYodzw0KyhCPTQqVyZ6KSl0aHJvdyBuZXcgRXJyb3IoIkZBVCBib3VuZGFyeSBjcm9zc2VkOiAiK1crIiA0ICIrdyk7aWYoIW1bSF0pYnJlYWs7Vz1MdChtW0hdLEIpfXJldHVybntub2RlczpGLGRhdGE6emkoW0xdKX19ZnVuY3Rpb24gTihtLEUp'@; put 'e3JldHVybiBuZXcgRGF0ZSgxZTMqKGNyKG0sRSs0KS8xZTcqTWF0aC5wb3coMiwzMikrY3IobSxFKS8xZTctMTE2NDQ0NzM2MDApKX1mdW5jdGlvbiB5KG0sRSl7dmFyIF89RXx8e30sdz1fLnJvb3R8fCJSb290IEVudHJ5IjtpZihtLkZ1bGxQYXRoc3x8KG0uRnVsbFBhdGhzPVtdKSxtLkZp'@; put 'bGVJbmRleHx8KG0uRmlsZUluZGV4PVtdKSxtLkZ1bGxQYXRocy5sZW5ndGghPT1tLkZpbGVJbmRleC5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJpbmNvbnNpc3RlbnQgQ0ZCIHN0cnVjdHVyZSIpOzA9PT1tLkZ1bGxQYXRocy5sZW5ndGgmJihtLkZ1bGxQYXRoc1swXT13KyIvIixtLkZpbGVJ'@; put 'bmRleFswXT17bmFtZTp3LHR5cGU6NX0pLF8uQ0xTSUQmJihtLkZpbGVJbmRleFswXS5jbHNpZD1fLkNMU0lEKSxmdW5jdGlvbiBQKG0pe3ZhciBFPSJceDAxU2gzM3RKNSI7aWYoIXZlLmZpbmQobSwiLyIrRSkpe3ZhciBfPUcoNCk7X1swXT01NSxfWzFdPV9bM109NTAsX1syXT01NCxtLkZp'@; put 'bGVJbmRleC5wdXNoKHtuYW1lOkUsdHlwZToyLGNvbnRlbnQ6XyxzaXplOjQsTDo2OSxSOjY5LEM6Njl9KSxtLkZ1bGxQYXRocy5wdXNoKG0uRnVsbFBhdGhzWzBdK0UpLFIobSl9fShtKX1mdW5jdGlvbiBSKG0sRSl7eShtKTtmb3IodmFyIF89ITEsdz0hMSxTPW0uRnVsbFBhdGhzLmxlbmd0'@; put 'aC0xO1M+PTA7LS1TKXt2YXIgRj1tLkZpbGVJbmRleFtTXTtzd2l0Y2goRi50eXBlKXtjYXNlIDA6dz9fPSEwOihtLkZpbGVJbmRleC5wb3AoKSxtLkZ1bGxQYXRocy5wb3AoKSk7YnJlYWs7Y2FzZSAxOmNhc2UgMjpjYXNlIDU6dz0hMCxpc05hTihGLlIqRi5MKkYuQykmJihfPSEwKSxGLlI+'@; put 'LTEmJkYuTD4tMSYmRi5SPT1GLkwmJihfPSEwKTticmVhaztkZWZhdWx0Ol89ITB9fWlmKF98fEUpe3ZhciBMPW5ldyBEYXRlKDE5ODcsMSwxOSksej0wLFc9T2JqZWN0LmNyZWF0ZT9PYmplY3QuY3JlYXRlKG51bGwpOnt9LEI9W107Zm9yKFM9MDtTPG0uRnVsbFBhdGhzLmxlbmd0aDsrK1Mp'@; put 'V1ttLkZ1bGxQYXRoc1tTXV09ITAsMCE9PW0uRmlsZUluZGV4W1NdLnR5cGUmJkIucHVzaChbbS5GdWxsUGF0aHNbU10sbS5GaWxlSW5kZXhbU11dKTtmb3IoUz0wO1M8Qi5sZW5ndGg7KytTKXt2YXIgSD1hKEJbU11bMF0pOyh3PVdbSF0pfHwoQi5wdXNoKFtILHtuYW1lOm4oSCkucmVwbGFj'@; put 'ZSgiLyIsIiIpLHR5cGU6MSxjbHNpZDpkZSxjdDpMLG10OkwsY29udGVudDpudWxsfV0pLFdbSF09ITApfWZvcihCLnNvcnQoZnVuY3Rpb24oaGUsaWUpe3JldHVybiBmdW5jdGlvbiByKG0sRSl7Zm9yKHZhciBfPW0uc3BsaXQoIi8iKSx3PUUuc3BsaXQoIi8iKSxTPTAsRj0wLEw9TWF0aC5t'@; put 'aW4oXy5sZW5ndGgsdy5sZW5ndGgpO1M8TDsrK1Mpe2lmKEY9X1tTXS5sZW5ndGgtd1tTXS5sZW5ndGgpcmV0dXJuIEY7aWYoX1tTXSE9d1tTXSlyZXR1cm4gX1tTXTx3W1NdPy0xOjF9cmV0dXJuIF8ubGVuZ3RoLXcubGVuZ3RofShoZVswXSxpZVswXSl9KSxtLkZ1bGxQYXRocz1bXSxtLkZp'@; put 'bGVJbmRleD1bXSxTPTA7UzxCLmxlbmd0aDsrK1MpbS5GdWxsUGF0aHNbU109QltTXVswXSxtLkZpbGVJbmRleFtTXT1CW1NdWzFdO2ZvcihTPTA7UzxCLmxlbmd0aDsrK1Mpe3ZhciBxPW0uRmlsZUluZGV4W1NdLG5lPW0uRnVsbFBhdGhzW1NdO2lmKHEubmFtZT1uKG5lKS5yZXBsYWNlKCIv'@; put 'IiwiIikscS5MPXEuUj1xLkM9LShxLmNvbG9yPTEpLHEuc2l6ZT1xLmNvbnRlbnQ/cS5jb250ZW50Lmxlbmd0aDowLHEuc3RhcnQ9MCxxLmNsc2lkPXEuY2xzaWR8fGRlLDA9PT1TKXEuQz1CLmxlbmd0aD4xPzE6LTEscS5zaXplPTAscS50eXBlPTU7ZWxzZSBpZigiLyI9PW5lLnNsaWNlKC0x'@; put 'KSl7Zm9yKHo9UysxO3o8Qi5sZW5ndGgmJmEobS5GdWxsUGF0aHNbel0pIT1uZTsrK3opO2ZvcihxLkM9ej49Qi5sZW5ndGg/LTE6eix6PVMrMTt6PEIubGVuZ3RoJiZhKG0uRnVsbFBhdGhzW3pdKSE9YShuZSk7Kyt6KTtxLlI9ej49Qi5sZW5ndGg/LTE6eixxLnR5cGU9MX1lbHNlIGEobS5G'@; put 'dWxsUGF0aHNbUysxXXx8IiIpPT1hKG5lKSYmKHEuUj1TKzEpLHEudHlwZT0yfX19ZnVuY3Rpb24gVihtLEUpe3ZhciBfPUV8fHt9O2lmKCJtYWQiPT1fLmZpbGVUeXBlKXJldHVybiBmdW5jdGlvbiBiZyhtLEUpe2Zvcih2YXIgXz1FfHx7fSx3PV8uYm91bmRhcnl8fCJTaGVldEpTIixTPVsi'@; put 'TUlNRS1WZXJzaW9uOiAxLjAiLCdDb250ZW50LVR5cGU6IG11bHRpcGFydC9yZWxhdGVkOyBib3VuZGFyeT0iJysodz0iLS0tLS0tPSIrdykuc2xpY2UoMikrJyInLCIiLCIiLCIiXSxGPW0uRnVsbFBhdGhzWzBdLEw9Rix6PW0uRmlsZUluZGV4WzBdLFc9MTtXPG0uRnVsbFBhdGhzLmxlbmd0'@; put 'aDsrK1cpaWYoTD1tLkZ1bGxQYXRoc1tXXS5zbGljZShGLmxlbmd0aCksKHo9bS5GaWxlSW5kZXhbV10pLnNpemUmJnouY29udGVudCYmIlx4MDFTaDMzdEo1IiE9TCl7TD1MLnJlcGxhY2UoL1tceDAwLVx4MDhceDBCXHgwQ1x4MEUtXHgxRlx4N0UtXHhGRl0vZyxmdW5jdGlvbihfZSl7cmV0'@; put 'dXJuIl94IitfZS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KSsiXyJ9KS5yZXBsYWNlKC9bXHUwMDgwLVx1RkZGRl0vZyxmdW5jdGlvbihfZSl7cmV0dXJuIl91IitfZS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KSsiXyJ9KTtmb3IodmFyIEI9ei5jb250ZW50LEg9U2UmJkJ1ZmZlci5p'@; put 'c0J1ZmZlcihCKT9CLnRvU3RyaW5nKCJiaW5hcnkiKTpjZShCKSxxPTAsbmU9TWF0aC5taW4oMTAyNCxILmxlbmd0aCksaGU9MCxpZT0wO2llPD1uZTsrK2llKShoZT1ILmNoYXJDb2RlQXQoaWUpKT49MzImJmhlPDEyOCYmKytxO3ZhciBmZT1xPj00Km5lLzU7Uy5wdXNoKHcpLFMucHVzaCgi'@; put 'Q29udGVudC1Mb2NhdGlvbjogIisoXy5yb290fHwiZmlsZTovLy9DOi9TaGVldEpTLyIpK0wpLFMucHVzaCgiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogIisoZmU/InF1b3RlZC1wcmludGFibGUiOiJiYXNlNjQiKSksUy5wdXNoKCJDb250ZW50LVR5cGU6ICIrQ2coeixMKSksUy5wdXNo'@; put 'KCIiKSxTLnB1c2goZmU/T2coSCk6RGcoSCkpfXJldHVybiBTLnB1c2godysiLS1cclxuIiksUy5qb2luKCJcclxuIil9KG0sXyk7aWYoInppcCI9PT0oUihtKSxfLmZpbGVUeXBlKSlyZXR1cm4gZnVuY3Rpb24gQWcobSxFKXt2YXIgXz1FfHx7fSx3PVtdLFM9W10sRj1HKDEpLEw9Xy5jb21w'@; put 'cmVzc2lvbj84OjAsej0wLEI9MCxIPTAscT0wLG5lPTAsaGU9bS5GdWxsUGF0aHNbMF0saWU9aGUsZmU9bS5GaWxlSW5kZXhbMF0sX2U9W10sVmU9MDtmb3IoQj0xO0I8bS5GdWxsUGF0aHMubGVuZ3RoOysrQilpZihpZT1tLkZ1bGxQYXRoc1tCXS5zbGljZShoZS5sZW5ndGgpLChmZT1tLkZp'@; put 'bGVJbmRleFtCXSkuc2l6ZSYmZmUuY29udGVudCYmIlx4MDFTaDMzdEo1IiE9aWUpe3ZhciBDcj1xLG5yPUcoaWUubGVuZ3RoKTtmb3IoSD0wO0g8aWUubGVuZ3RoOysrSCluci53cml0ZV9zaGlmdCgxLDEyNyZpZS5jaGFyQ29kZUF0KEgpKTtucj1uci5zbGljZSgwLG5yLmwpLF9lW25lXT1z'@; put 'by5idWYoZmUuY29udGVudCwwKTt2YXIgQnI9ZmUuY29udGVudDs4PT1MJiYoQnI9TyhCcikpLChGPUcoMzApKS53cml0ZV9zaGlmdCg0LDY3MzI0NzUyKSxGLndyaXRlX3NoaWZ0KDIsMjApLEYud3JpdGVfc2hpZnQoMix6KSxGLndyaXRlX3NoaWZ0KDIsTCksZmUubXQ/aShGLGZlLm10KTpG'@; put 'LndyaXRlX3NoaWZ0KDQsMCksRi53cml0ZV9zaGlmdCgtNCw4Jno/MDpfZVtuZV0pLEYud3JpdGVfc2hpZnQoNCw4Jno/MDpCci5sZW5ndGgpLEYud3JpdGVfc2hpZnQoNCw4Jno/MDpmZS5jb250ZW50Lmxlbmd0aCksRi53cml0ZV9zaGlmdCgyLG5yLmxlbmd0aCksRi53cml0ZV9zaGlmdCgy'@; put 'LDApLHErPUYubGVuZ3RoLHcucHVzaChGKSxxKz1uci5sZW5ndGgsdy5wdXNoKG5yKSxxKz1Cci5sZW5ndGgsdy5wdXNoKEJyKSw4JnomJigoRj1HKDEyKSkud3JpdGVfc2hpZnQoLTQsX2VbbmVdKSxGLndyaXRlX3NoaWZ0KDQsQnIubGVuZ3RoKSxGLndyaXRlX3NoaWZ0KDQsZmUuY29udGVu'@; put 'dC5sZW5ndGgpLHErPUYubCx3LnB1c2goRikpLChGPUcoNDYpKS53cml0ZV9zaGlmdCg0LDMzNjM5MjQ4KSxGLndyaXRlX3NoaWZ0KDIsMCksRi53cml0ZV9zaGlmdCgyLDIwKSxGLndyaXRlX3NoaWZ0KDIseiksRi53cml0ZV9zaGlmdCgyLEwpLEYud3JpdGVfc2hpZnQoNCwwKSxGLndyaXRl'@; put 'X3NoaWZ0KC00LF9lW25lXSksRi53cml0ZV9zaGlmdCg0LEJyLmxlbmd0aCksRi53cml0ZV9zaGlmdCg0LGZlLmNvbnRlbnQubGVuZ3RoKSxGLndyaXRlX3NoaWZ0KDIsbnIubGVuZ3RoKSxGLndyaXRlX3NoaWZ0KDIsMCksRi53cml0ZV9zaGlmdCgyLDApLEYud3JpdGVfc2hpZnQoMiwwKSxG'@; put 'LndyaXRlX3NoaWZ0KDIsMCksRi53cml0ZV9zaGlmdCg0LDApLEYud3JpdGVfc2hpZnQoNCxDciksVmUrPUYubCxTLnB1c2goRiksVmUrPW5yLmxlbmd0aCxTLnB1c2gobnIpLCsrbmV9cmV0dXJuKEY9RygyMikpLndyaXRlX3NoaWZ0KDQsMTAxMDEwMjU2KSxGLndyaXRlX3NoaWZ0KDIsMCks'@; put 'Ri53cml0ZV9zaGlmdCgyLDApLEYud3JpdGVfc2hpZnQoMixuZSksRi53cml0ZV9zaGlmdCgyLG5lKSxGLndyaXRlX3NoaWZ0KDQsVmUpLEYud3JpdGVfc2hpZnQoNCxxKSxGLndyaXRlX3NoaWZ0KDIsMCksZnIoW2ZyKHcpLGZyKFMpLEZdKX0obSxfKTt2YXIgdz1mdW5jdGlvbihoZSl7Zm9y'@; put 'KHZhciBpZT0wLGZlPTAsX2U9MDtfZTxoZS5GaWxlSW5kZXgubGVuZ3RoOysrX2Upe3ZhciBWZT1oZS5GaWxlSW5kZXhbX2VdO2lmKFZlLmNvbnRlbnQpe3ZhciBDcj1WZS5jb250ZW50Lmxlbmd0aDtDcj4wJiYoQ3I8NDA5Nj9pZSs9Q3IrNjM+PjY6ZmUrPUNyKzUxMT4+OSl9fWZvcih2YXIg'@; put 'bnI9aGUuRnVsbFBhdGhzLmxlbmd0aCszPj4yLFphPWllKzEyNz4+NyxRYT0oaWUrNz4+MykrZmUrbnIrWmEsWnQ9UWErMTI3Pj43LHRpPVp0PD0xMDk/MDpNYXRoLmNlaWwoKFp0LTEwOSkvMTI3KTtRYStadCt0aSsxMjc+Pjc+WnQ7KXRpPSsrWnQ8PTEwOT8wOk1hdGguY2VpbCgoWnQtMTA5'@; put 'KS8xMjcpO3ZhciBtdD1bMSx0aSxadCxaYSxucixmZSxpZSwwXTtyZXR1cm4gaGUuRmlsZUluZGV4WzBdLnNpemU9aWU8PDYsbXRbN109KGhlLkZpbGVJbmRleFswXS5zdGFydD1tdFswXSttdFsxXSttdFsyXSttdFszXSttdFs0XSttdFs1XSkrKG10WzZdKzc+PjMpLG10fShtKSxTPUcod1s3'@; put 'XTw8OSksRj0wLEw9MDtmb3IoRj0wO0Y8ODsrK0YpUy53cml0ZV9zaGlmdCgxLHJlW0ZdKTtmb3IoRj0wO0Y8ODsrK0YpUy53cml0ZV9zaGlmdCgyLDApO2ZvcihTLndyaXRlX3NoaWZ0KDIsNjIpLFMud3JpdGVfc2hpZnQoMiwzKSxTLndyaXRlX3NoaWZ0KDIsNjU1MzQpLFMud3JpdGVfc2hp'@; put 'ZnQoMiw5KSxTLndyaXRlX3NoaWZ0KDIsNiksRj0wO0Y8MzsrK0YpUy53cml0ZV9zaGlmdCgyLDApO2ZvcihTLndyaXRlX3NoaWZ0KDQsMCksUy53cml0ZV9zaGlmdCg0LHdbMl0pLFMud3JpdGVfc2hpZnQoNCx3WzBdK3dbMV0rd1syXSt3WzNdLTEpLFMud3JpdGVfc2hpZnQoNCwwKSxTLndy'@; put 'aXRlX3NoaWZ0KDQsNDA5NiksUy53cml0ZV9zaGlmdCg0LHdbM10/d1swXSt3WzFdK3dbMl0tMTplZSksUy53cml0ZV9zaGlmdCg0LHdbM10pLFMud3JpdGVfc2hpZnQoLTQsd1sxXT93WzBdLTE6ZWUpLFMud3JpdGVfc2hpZnQoNCx3WzFdKSxGPTA7RjwxMDk7KytGKVMud3JpdGVfc2hpZnQo'@; put 'LTQsRjx3WzJdP3dbMV0rRjotMSk7aWYod1sxXSlmb3IoTD0wO0w8d1sxXTsrK0wpe2Zvcig7RjwyMzYrMTI3Kkw7KytGKVMud3JpdGVfc2hpZnQoLTQsRjx3WzJdP3dbMV0rRjotMSk7Uy53cml0ZV9zaGlmdCgtNCxMPT09d1sxXS0xP2VlOkwrMSl9dmFyIHo9ZnVuY3Rpb24oaGUpe2ZvcihM'@; put 'Kz1oZTtGPEwtMTsrK0YpUy53cml0ZV9zaGlmdCgtNCxGKzEpO2hlJiYoKytGLFMud3JpdGVfc2hpZnQoLTQsZWUpKX07Zm9yKEw9Rj0wLEwrPXdbMV07RjxMOysrRilTLndyaXRlX3NoaWZ0KC00LHVlLkRJRlNFQ1QpO2ZvcihMKz13WzJdO0Y8TDsrK0YpUy53cml0ZV9zaGlmdCgtNCx1ZS5G'@; put 'QVRTRUNUKTt6KHdbM10pLHood1s0XSk7Zm9yKHZhciBXPTAsQj0wLEg9bS5GaWxlSW5kZXhbMF07VzxtLkZpbGVJbmRleC5sZW5ndGg7KytXKShIPW0uRmlsZUluZGV4W1ddKS5jb250ZW50JiYhKChCPUguY29udGVudC5sZW5ndGgpPDQwOTYpJiYoSC5zdGFydD1MLHooQis1MTE+PjkpKTtm'@; put 'b3Ioeih3WzZdKzc+PjMpOzUxMSZTLmw7KVMud3JpdGVfc2hpZnQoLTQsdWUuRU5ET0ZDSEFJTik7Zm9yKEw9Rj0wLFc9MDtXPG0uRmlsZUluZGV4Lmxlbmd0aDsrK1cpKEg9bS5GaWxlSW5kZXhbV10pLmNvbnRlbnQmJihCPUguY29udGVudC5sZW5ndGgpJiYhKEI+PTQwOTYpJiYoSC5zdGFy'@; put 'dD1MLHooQis2Mz4+NikpO2Zvcig7NTExJlMubDspUy53cml0ZV9zaGlmdCgtNCx1ZS5FTkRPRkNIQUlOKTtmb3IoRj0wO0Y8d1s0XTw8MjsrK0Ype3ZhciBxPW0uRnVsbFBhdGhzW0ZdO2lmKHEmJjAhPT1xLmxlbmd0aCl7SD1tLkZpbGVJbmRleFtGXSwwPT09RiYmKEguc3RhcnQ9SC5zaXpl'@; put 'P0guc3RhcnQtMTplZSk7dmFyIG5lPTA9PT1GJiZfLnJvb3R8fEgubmFtZTtpZihCPTIqKG5lLmxlbmd0aCsxKSxTLndyaXRlX3NoaWZ0KDY0LG5lLCJ1dGYxNmxlIiksUy53cml0ZV9zaGlmdCgyLEIpLFMud3JpdGVfc2hpZnQoMSxILnR5cGUpLFMud3JpdGVfc2hpZnQoMSxILmNvbG9yKSxT'@; put 'LndyaXRlX3NoaWZ0KC00LEguTCksUy53cml0ZV9zaGlmdCgtNCxILlIpLFMud3JpdGVfc2hpZnQoLTQsSC5DKSxILmNsc2lkKVMud3JpdGVfc2hpZnQoMTYsSC5jbHNpZCwiaGV4Iik7ZWxzZSBmb3IoVz0wO1c8NDsrK1cpUy53cml0ZV9zaGlmdCg0LDApO1Mud3JpdGVfc2hpZnQoNCxILnN0'@; put 'YXRlfHwwKSxTLndyaXRlX3NoaWZ0KDQsMCksUy53cml0ZV9zaGlmdCg0LDApLFMud3JpdGVfc2hpZnQoNCwwKSxTLndyaXRlX3NoaWZ0KDQsMCksUy53cml0ZV9zaGlmdCg0LEguc3RhcnQpLFMud3JpdGVfc2hpZnQoNCxILnNpemUpLFMud3JpdGVfc2hpZnQoNCwwKX1lbHNle2ZvcihXPTA7'@; put 'VzwxNzsrK1cpUy53cml0ZV9zaGlmdCg0LDApO2ZvcihXPTA7VzwzOysrVylTLndyaXRlX3NoaWZ0KDQsLTEpO2ZvcihXPTA7VzwxMjsrK1cpUy53cml0ZV9zaGlmdCg0LDApfX1mb3IoRj0xO0Y8bS5GaWxlSW5kZXgubGVuZ3RoOysrRilpZigoSD1tLkZpbGVJbmRleFtGXSkuc2l6ZT49NDA5'@; put 'NilpZihTLmw9SC5zdGFydCsxPDw5LFNlJiZCdWZmZXIuaXNCdWZmZXIoSC5jb250ZW50KSlILmNvbnRlbnQuY29weShTLFMubCwwLEguc2l6ZSksUy5sKz1ILnNpemUrNTExJi01MTI7ZWxzZXtmb3IoVz0wO1c8SC5zaXplOysrVylTLndyaXRlX3NoaWZ0KDEsSC5jb250ZW50W1ddKTtmb3Io'@; put 'OzUxMSZXOysrVylTLndyaXRlX3NoaWZ0KDEsMCl9Zm9yKEY9MTtGPG0uRmlsZUluZGV4Lmxlbmd0aDsrK0YpaWYoKEg9bS5GaWxlSW5kZXhbRl0pLnNpemU+MCYmSC5zaXplPDQwOTYpaWYoU2UmJkJ1ZmZlci5pc0J1ZmZlcihILmNvbnRlbnQpKUguY29udGVudC5jb3B5KFMsUy5sLDAsSC5z'@; put 'aXplKSxTLmwrPUguc2l6ZSs2MyYtNjQ7ZWxzZXtmb3IoVz0wO1c8SC5zaXplOysrVylTLndyaXRlX3NoaWZ0KDEsSC5jb250ZW50W1ddKTtmb3IoOzYzJlc7KytXKVMud3JpdGVfc2hpZnQoMSwwKX1pZihTZSlTLmw9Uy5sZW5ndGg7ZWxzZSBmb3IoO1MubDxTLmxlbmd0aDspUy53cml0ZV9z'@; put 'aGlmdCgxLDApO3JldHVybiBTfXQudmVyc2lvbj0iMS4yLjEiO3ZhciBLLGI9NjQsZWU9LTIsbGU9ImQwY2YxMWUwYTFiMTFhZTEiLHJlPVsyMDgsMjA3LDE3LDIyNCwxNjEsMTc3LDI2LDIyNV0sZGU9IjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIix1ZT17TUFYUkVHU0VDVDot'@; put 'NixESUZTRUNUOi00LEZBVFNFQ1Q6LTMsRU5ET0ZDSEFJTjplZSxGUkVFU0VDVDotMSxIRUFERVJfU0lHTkFUVVJFOmxlLEhFQURFUl9NSU5PUl9WRVJTSU9OOiIzZTAwIixNQVhSRUdTSUQ6LTYsTk9TVFJFQU06LTEsSEVBREVSX0NMU0lEOmRlLEVudHJ5VHlwZXM6WyJ1bmtub3duIiwic3Rv'@; put 'cmFnZSIsInN0cmVhbSIsImxvY2tieXRlcyIsInByb3BlcnR5Iiwicm9vdCJdfTtmdW5jdGlvbiBjZShtKXtmb3IodmFyIEU9bmV3IEFycmF5KG0ubGVuZ3RoKSxfPTA7XzxtLmxlbmd0aDsrK18pRVtfXT1TdHJpbmcuZnJvbUNoYXJDb2RlKG1bX10pO3JldHVybiBFLmpvaW4oIiIpfWZ1bmN0'@; put 'aW9uIE8obSl7cmV0dXJuIEs/Sy5kZWZsYXRlUmF3U3luYyhtKTp5ZShtKX1mb3IodmFyIG0sRSxEPVsxNiwxNywxOCwwLDgsNyw5LDYsMTAsNSwxMSw0LDEyLDMsMTMsMiwxNCwxLDE1XSxqPVszLDQsNSw2LDcsOCw5LDEwLDExLDEzLDE1LDE3LDE5LDIzLDI3LDMxLDM1LDQzLDUxLDU5LDY3'@; put 'LDgzLDk5LDExNSwxMzEsMTYzLDE5NSwyMjcsMjU4XSxzZT1bMSwyLDMsNCw1LDcsOSwxMywxNywyNSwzMyw0OSw2NSw5NywxMjksMTkzLDI1NywzODUsNTEzLDc2OSwxMDI1LDE1MzcsMjA0OSwzMDczLDQwOTcsNjE0NSw4MTkzLDEyMjg5LDE2Mzg1LDI0NTc3XSxRPXR5cGVvZiBVaW50OEFy'@; put 'cmF5PCJ1IixZPVE/bmV3IFVpbnQ4QXJyYXkoMjU2KTpbXSxFZT0wO0VlPDI1NjsrK0VlKVlbRWVdPSh2b2lkIDAsMjU1JigoRT0xMzk1MzYmKChtPUVlKTw8MXxtPDwxMSl8NTU4MTQ0JihtPDw1fG08PDE1KSk+PjE2fEU+Pjh8RSkpO2Z1bmN0aW9uIEEobSxFKXt2YXIgXz1ZWzI1NSZtXTty'@; put 'ZXR1cm4gRTw9OD9fPj4+OC1FOihfPV88PDh8WVttPj44JjI1NV0sRTw9MTY/Xz4+PjE2LUU6KF89Xzw8OHxZW20+PjE2JjI1NV0pPj4+MjQtRSl9ZnVuY3Rpb24gUGUobSxFKXt2YXIgXz03JkUsdz1FPj4+MztyZXR1cm4obVt3XXwoXzw9Nj8wOm1bdysxXTw8OCkpPj4+XyYzfWZ1bmN0aW9u'@; put 'IEFlKG0sRSl7dmFyIF89NyZFLHc9RT4+PjM7cmV0dXJuKG1bd118KF88PTU/MDptW3crMV08PDgpKT4+Pl8mN31mdW5jdGlvbiBDZShtLEUpe3ZhciBfPTcmRSx3PUU+Pj4zO3JldHVybihtW3ddfChfPD0zPzA6bVt3KzFdPDw4KSk+Pj5fJjMxfWZ1bmN0aW9uIG9lKG0sRSl7dmFyIF89NyZF'@; put 'LHc9RT4+PjM7cmV0dXJuKG1bd118KF88PTE/MDptW3crMV08PDgpKT4+Pl8mMTI3fWZ1bmN0aW9uIHFlKG0sRSxfKXt2YXIgdz03JkUsUz1FPj4+MyxMPW1bU10+Pj53O3JldHVybiBfPDgtd3x8KEx8PW1bUysxXTw8OC13LF88MTYtdyl8fChMfD1tW1MrMl08PDE2LXcsXzwyNC13KXx8KEx8'@; put 'PW1bUyszXTw8MjQtdyksTCYoMTw8XyktMX1mdW5jdGlvbiBqcihtLEUsXyl7dmFyIHc9NyZFLFM9RT4+PjM7cmV0dXJuIHc8PTU/bVtTXXw9KDcmXyk8PHc6KG1bU118PV88PHcmMjU1LG1bUysxXT0oNyZfKT4+OC13KSxFKzN9ZnVuY3Rpb24gZnQobSxFLF8pe3JldHVybiBtW0U+Pj4zXXw9'@; put 'Xz0oMSZfKTw8KDcmRSksRSsxfWZ1bmN0aW9uIHZ0KG0sRSxfKXt2YXIgUz1FPj4+MztyZXR1cm4gbVtTXXw9MjU1JihfPDw9NyZFKSxtW1MrMV09Xz4+Pj04LEUrOH1mdW5jdGlvbiBKYShtLEUsXyl7dmFyIFM9RT4+PjM7cmV0dXJuIG1bU118PTI1NSYoXzw8PTcmRSksbVtTKzFdPTI1NSYo'@; put 'Xz4+Pj04KSxtW1MrMl09Xz4+PjgsRSsxNn1mdW5jdGlvbiBPdChtLEUpe3ZhciBfPW0ubGVuZ3RoLHc9MipfPkU/MipfOkUrNSxTPTA7aWYoXz49RSlyZXR1cm4gbTtpZihTZSl7dmFyIEY9bmkodyk7aWYobS5jb3B5KW0uY29weShGKTtlbHNlIGZvcig7UzxtLmxlbmd0aDsrK1MpRltTXT1t'@; put 'W1NdO3JldHVybiBGfWlmKFEpe3ZhciBMPW5ldyBVaW50OEFycmF5KHcpO2lmKEwuc2V0KUwuc2V0KG0pO2Vsc2UgZm9yKDtTPF87KytTKUxbU109bVtTXTtyZXR1cm4gTH1yZXR1cm4gbS5sZW5ndGg9dyxtfWZ1bmN0aW9uIExyKG0pe2Zvcih2YXIgRT1uZXcgQXJyYXkobSksXz0wO188bTsr'@; put 'K18pRVtfXT0wO3JldHVybiBFfWZ1bmN0aW9uIHB0KG0sRSxfKXt2YXIgdz0xLFM9MCxGPTAsTD0wLHo9MCxXPW0ubGVuZ3RoLEI9UT9uZXcgVWludDE2QXJyYXkoMzIpOkxyKDMyKTtmb3IoRj0wO0Y8MzI7KytGKUJbRl09MDtmb3IoRj1XO0Y8XzsrK0YpbVtGXT0wO1c9bS5sZW5ndGg7dmFy'@; put 'IEg9UT9uZXcgVWludDE2QXJyYXkoVyk6THIoVyk7Zm9yKEY9MDtGPFc7KytGKUJbUz1tW0ZdXSsrLHc8UyYmKHc9UyksSFtGXT0wO2ZvcihCWzBdPTAsRj0xO0Y8PXc7KytGKUJbRisxNl09ej16K0JbRi0xXTw8MTtmb3IoRj0wO0Y8VzsrK0YpMCE9KHo9bVtGXSkmJihIW0ZdPUJbeisxNl0r'@; put 'Kyk7dmFyIHE9MDtmb3IoRj0wO0Y8VzsrK0YpaWYoMCE9KHE9bVtGXSkpZm9yKHo9QShIW0ZdLHcpPj53LXEsTD0oMTw8dys0LXEpLTE7TD49MDstLUwpRVt6fEw8PHFdPTE1JnF8Rjw8NDtyZXR1cm4gd312YXIgSXQ9UT9uZXcgVWludDE2QXJyYXkoNTEyKTpMcig1MTIpLHFhPVE/bmV3IFVp'@; put 'bnQxNkFycmF5KDMyKTpMcigzMik7aWYoIVEpe2Zvcih2YXIgeXI9MDt5cjw1MTI7Kyt5cilJdFt5cl09MDtmb3IoeXI9MDt5cjwzMjsrK3lyKXFhW3lyXT0wfSFmdW5jdGlvbigpe2Zvcih2YXIgbT1bXSxFPTA7RTwzMjtFKyspbS5wdXNoKDUpO3B0KG0scWEsMzIpO3ZhciBfPVtdO2ZvcihF'@; put 'PTA7RTw9MTQzO0UrKylfLnB1c2goOCk7Zm9yKDtFPD0yNTU7RSsrKV8ucHVzaCg5KTtmb3IoO0U8PTI3OTtFKyspXy5wdXNoKDcpO2Zvcig7RTw9Mjg3O0UrKylfLnB1c2goOCk7cHQoXyxJdCwyODgpfSgpO3ZhciBjdD1mdW5jdGlvbigpe2Zvcih2YXIgRT1RP25ldyBVaW50OEFycmF5KDMy'@; put 'NzY4KTpbXSxfPTAsdz0wO188c2UubGVuZ3RoLTE7KytfKWZvcig7dzxzZVtfKzFdOysrdylFW3ddPV87Zm9yKDt3PDMyNzY4OysrdylFW3ddPTI5O3ZhciBTPVE/bmV3IFVpbnQ4QXJyYXkoMjU5KTpbXTtmb3IoXz0wLHc9MDtfPGoubGVuZ3RoLTE7KytfKWZvcig7dzxqW18rMV07Kyt3KVNb'@; put 'd109XztyZXR1cm4gZnVuY3Rpb24oVyxCKXtyZXR1cm4gVy5sZW5ndGg8OD9mdW5jdGlvbiBGKHosVyl7Zm9yKHZhciBCPTA7Qjx6Lmxlbmd0aDspe3ZhciBIPU1hdGgubWluKDY1NTM1LHoubGVuZ3RoLUIpO2ZvcihXLndyaXRlX3NoaWZ0KDEsKyhCK0g9PXoubGVuZ3RoKSksVy53cml0ZV9z'@; put 'aGlmdCgyLEgpLFcud3JpdGVfc2hpZnQoMiw2NTUzNSZ+SCk7SC0tID4wOylXW1cubCsrXT16W0IrK119cmV0dXJuIFcubH0oVyxCKTpmdW5jdGlvbiBMKHosVyl7Zm9yKHZhciBCPTAsSD0wLHE9UT9uZXcgVWludDE2QXJyYXkoMzI3NjgpOltdO0g8ei5sZW5ndGg7KXt2YXIgbmU9TWF0aC5t'@; put 'aW4oNjU1MzUsei5sZW5ndGgtSCk7aWYobmU8MTApe2Zvcig3JihCPWpyKFcsQiwrKEgrbmU9PXoubGVuZ3RoKSkpJiYoQis9OC0oNyZCKSksVy5sPUIvOHwwLFcud3JpdGVfc2hpZnQoMixuZSksVy53cml0ZV9zaGlmdCgyLDY1NTM1Jn5uZSk7bmUtLSA+MDspV1tXLmwrK109eltIKytdO0I9'@; put 'OCpXLmx9ZWxzZXtCPWpyKFcsQiwrKEgrbmU9PXoubGVuZ3RoKSsyKTtmb3IodmFyIGhlPTA7bmUtLSA+MDspe3ZhciBpZT16W0hdLGZlPS0xLF9lPTA7aWYoKGZlPXFbaGU9MzI3NjcmKGhlPDw1XmllKV0pJiYoKGZlfD0tMzI3NjgmSCk+SCYmKGZlLT0zMjc2OCksZmU8SCkpZm9yKDt6W2Zl'@; put 'K19lXT09eltIK19lXSYmX2U8MjUwOykrK19lO2lmKF9lPjIpeyhpZT1TW19lXSk8PTIyP0I9dnQoVyxCLFlbaWUrMV0+PjEpLTE6KHZ0KFcsQiwzKSx2dChXLEIrPTUsWVtpZS0yM10+PjUpLEIrPTMpO3ZhciBWZT1pZTw4PzA6aWUtND4+MjtWZT4wJiYoSmEoVyxCLF9lLWpbaWVdKSxCKz1W'@; put 'ZSksQj12dChXLEIsWVtpZT1FW0gtZmVdXT4+MyksQi09Mzt2YXIgQ3I9aWU8ND8wOmllLTI+PjE7Q3I+MCYmKEphKFcsQixILWZlLXNlW2llXSksQis9Q3IpO2Zvcih2YXIgbnI9MDtucjxfZTsrK25yKXFbaGVdPTMyNzY3JkgsaGU9MzI3NjcmKGhlPDw1XnpbSF0pLCsrSDtuZS09X2UtMX1l'@; put 'bHNlIGllPD0xNDM/aWUrPTQ4OkI9ZnQoVyxCLDEpLEI9dnQoVyxCLFlbaWVdKSxxW2hlXT0zMjc2NyZILCsrSH1CPXZ0KFcsQiwwKS0xfX1yZXR1cm4gVy5sPShCKzcpLzh8MCxXLmx9KFcsQil9fSgpO2Z1bmN0aW9uIHllKG0pe3ZhciBFPUcoNTArTWF0aC5mbG9vcigxLjEqbS5sZW5ndGgp'@; put 'KSxfPWN0KG0sRSk7cmV0dXJuIEUuc2xpY2UoMCxfKX12YXIgWmU9UT9uZXcgVWludDE2QXJyYXkoMzI3NjgpOkxyKDMyNzY4KSxLcj1RP25ldyBVaW50MTZBcnJheSgzMjc2OCk6THIoMzI3NjgpLHNyPVE/bmV3IFVpbnQxNkFycmF5KDEyOCk6THIoMTI4KSxxdD0xLEZjPTE7ZnVuY3Rpb24g'@; put 'U2cobSxFKXt2YXIgXz1DZShtLEUpKzI1Nyx3PUNlKG0sRSs9NSkrMSxTPWZ1bmN0aW9uIExlKG0sRSl7dmFyIF89NyZFLHc9RT4+PjM7cmV0dXJuKG1bd118KF88PTQ/MDptW3crMV08PDgpKT4+Pl8mMTV9KG0sRSs9NSkrNDtFKz00O2Zvcih2YXIgRj0wLEw9UT9uZXcgVWludDhBcnJheSgx'@; put 'OSk6THIoMTkpLHo9WzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDBdLFc9MSxCPVE/bmV3IFVpbnQ4QXJyYXkoOCk6THIoOCksSD1RP25ldyBVaW50OEFycmF5KDgpOkxyKDgpLHE9TC5sZW5ndGgsbmU9MDtuZTxTOysrbmUpTFtEW25lXV09Rj1BZShtLEUpLFc8RiYmKFc9'@; put 'RiksQltGXSsrLEUrPTM7dmFyIGhlPTA7Zm9yKEJbMF09MCxuZT0xO25lPD1XOysrbmUpSFtuZV09aGU9aGUrQltuZS0xXTw8MTtmb3IobmU9MDtuZTxxOysrbmUpMCE9KGhlPUxbbmVdKSYmKHpbbmVdPUhbaGVdKyspO3ZhciBpZT0wO2ZvcihuZT0wO25lPHE7KytuZSlpZigwIT0oaWU9TFtu'@; put 'ZV0pKXtoZT1ZW3pbbmVdXT4+OC1pZTtmb3IodmFyIGZlPSgxPDw3LWllKS0xO2ZlPj0wOy0tZmUpc3JbaGV8ZmU8PGllXT03JmllfG5lPDwzfXZhciBfZT1bXTtmb3IoVz0xO19lLmxlbmd0aDxfK3c7KXN3aXRjaChoZT1zcltvZShtLEUpXSxFKz03JmhlLGhlPj4+PTMpe2Nhc2UgMTY6Zm9y'@; put 'KEY9MytQZShtLEUpLEUrPTIsaGU9X2VbX2UubGVuZ3RoLTFdO0YtLSA+MDspX2UucHVzaChoZSk7YnJlYWs7Y2FzZSAxNzpmb3IoRj0zK0FlKG0sRSksRSs9MztGLS0gPjA7KV9lLnB1c2goMCk7YnJlYWs7Y2FzZSAxODpmb3IoRj0xMStvZShtLEUpLEUrPTc7Ri0tID4wOylfZS5wdXNoKDAp'@; put 'O2JyZWFrO2RlZmF1bHQ6X2UucHVzaChoZSksVzxoZSYmKFc9aGUpfXZhciBWZT1fZS5zbGljZSgwLF8pLENyPV9lLnNsaWNlKF8pO2ZvcihuZT1fO25lPDI4NjsrK25lKVZlW25lXT0wO2ZvcihuZT13O25lPDMwOysrbmUpQ3JbbmVdPTA7cmV0dXJuIHF0PXB0KFZlLFplLDI4NiksRmM9cHQo'@; put 'Q3IsS3IsMzApLEV9ZnVuY3Rpb24geWMobSxFKXt2YXIgdz1mdW5jdGlvbiBGZyhtLEUpe2lmKDM9PW1bMF0mJiEoMyZtWzFdKSlyZXR1cm5bX3QoRSksMl07Zm9yKHZhciBfPTAsdz0wLFM9bmkoRXx8MTw8MTgpLEY9MCxMPVMubGVuZ3RoPj4+MCx6PTAsVz0wOyEoMSZ3KTspaWYodz1BZSht'@; put 'LF8pLF8rPTMsdz4+PjEpZm9yKHc+PjE9PTE/KHo9OSxXPTUpOihfPVNnKG0sXyksej1xdCxXPUZjKTs7KXshRSYmTDxGKzMyNzY3JiYoTD0oUz1PdChTLEYrMzI3NjcpKS5sZW5ndGgpO3ZhciBIPXFlKG0sXyx6KSxxPXc+Pj4xPT0xP0l0W0hdOlplW0hdO2lmKF8rPTE1JnEsKHE+Pj49NCk+'@; put 'Pj44JjI1NSl7aWYoMjU2PT1xKWJyZWFrO3ZhciBuZT0ocS09MjU3KTw4PzA6cS00Pj4yO25lPjUmJihuZT0wKTt2YXIgaGU9RitqW3FdO25lPjAmJihoZSs9cWUobSxfLG5lKSxfKz1uZSksSD1xZShtLF8sVyksXys9MTUmKHE9dz4+PjE9PTE/cWFbSF06S3JbSF0pO3ZhciBpZT0ocT4+Pj00'@; put 'KTw0PzA6cS0yPj4xLGZlPXNlW3FdO2ZvcihpZT4wJiYoZmUrPXFlKG0sXyxpZSksXys9aWUpLCFFJiZMPGhlJiYoTD0oUz1PdChTLGhlKzEwMCkpLmxlbmd0aCk7RjxoZTspU1tGXT1TW0YtZmVdLCsrRn1lbHNlIFNbRisrXT1xfWVsc2V7NyZfJiYoXys9OC0oNyZfKSk7dmFyIEI9bVtfPj4+'@; put 'M118bVsxKyhfPj4+MyldPDw4O2lmKF8rPTMyLEI+MClmb3IoIUUmJkw8RitCJiYoTD0oUz1PdChTLEYrQikpLmxlbmd0aCk7Qi0tID4wOylTW0YrK109bVtfPj4+M10sXys9OH1yZXR1cm4gRT9bUyxfKzc+Pj4zXTpbUy5zbGljZSgwLEYpLF8rNz4+PjNdfShtLnNsaWNlKG0ubHx8MCksRSk7'@; put 'cmV0dXJuIG0ubCs9d1sxXSx3WzBdfWZ1bmN0aW9uIEFjKG0sRSl7aWYoIW0pdGhyb3cgbmV3IEVycm9yKEUpO3R5cGVvZiBjb25zb2xlPCJ1IiYmY29uc29sZS5lcnJvcihFKX1mdW5jdGlvbiBDYyhtLEUpe3ZhciBfPW07aHIoXywwKTt2YXIgRj17RmlsZUluZGV4OltdLEZ1bGxQYXRoczpb'@; put 'XX07eShGLHtyb290OkUucm9vdH0pO2Zvcih2YXIgTD1fLmxlbmd0aC00Oyg4MCE9X1tMXXx8NzUhPV9bTCsxXXx8NSE9X1tMKzJdfHw2IT1fW0wrM10pJiZMPj0wOyktLUw7Xy5sPUwrNCxfLmwrPTQ7dmFyIHo9Xy5yZWFkX3NoaWZ0KDIpO18ubCs9Njt2YXIgVz1fLnJlYWRfc2hpZnQoNCk7'@; put 'Zm9yKF8ubD1XLEw9MDtMPHo7KytMKXtfLmwrPTIwO3ZhciBCPV8ucmVhZF9zaGlmdCg0KSxIPV8ucmVhZF9zaGlmdCg0KSxxPV8ucmVhZF9zaGlmdCgyKSxuZT1fLnJlYWRfc2hpZnQoMiksaGU9Xy5yZWFkX3NoaWZ0KDIpO18ubCs9ODt2YXIgaWU9Xy5yZWFkX3NoaWZ0KDQpLGZlPWYoXy5z'@; put 'bGljZShfLmwrcSxfLmwrcStuZSkpO18ubCs9cStuZStoZTt2YXIgX2U9Xy5sO18ubD1pZSs0LHlnKF8sQixILEYsZmUpLF8ubD1fZX1yZXR1cm4gRn1mdW5jdGlvbiB5ZyhtLEUsXyx3LFMpe20ubCs9Mjt2YXIgRj1tLnJlYWRfc2hpZnQoMiksTD1tLnJlYWRfc2hpZnQoMiksej1mdW5jdGlv'@; put 'biBzKG0pe3ZhciBFPTY1NTM1Jm0ucmVhZF9zaGlmdCgyKSxfPTY1NTM1Jm0ucmVhZF9zaGlmdCgyKSx3PW5ldyBEYXRlLFM9MzEmXyxGPTE1JihfPj4+PTUpO18+Pj49NCx3LnNldE1pbGxpc2Vjb25kcygwKSx3LnNldEZ1bGxZZWFyKF8rMTk4MCksdy5zZXRNb250aChGLTEpLHcuc2V0RGF0'@; put 'ZShTKTt2YXIgTD0zMSZFLHo9NjMmKEU+Pj49NSk7cmV0dXJuIHcuc2V0SG91cnMoRT4+Pj02KSx3LnNldE1pbnV0ZXMoeiksdy5zZXRTZWNvbmRzKEw8PDEpLHd9KG0pO2lmKDgyNTcmRil0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIFpJUCBlbmNyeXB0aW9uIik7bS5yZWFkX3NoaWZ0'@; put 'KDQpO2Zvcih2YXIgQj1tLnJlYWRfc2hpZnQoNCksSD1tLnJlYWRfc2hpZnQoNCkscT1tLnJlYWRfc2hpZnQoMiksbmU9bS5yZWFkX3NoaWZ0KDIpLGhlPSIiLGllPTA7aWU8cTsrK2llKWhlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKG1bbS5sKytdKTtpZihuZSl7dmFyIGZlPWYobS5zbGljZSht'@; put 'LmwsbS5sK25lKSk7KGZlWzIxNTg5XXx8e30pLm10JiYoej1mZVsyMTU4OV0ubXQpLCgoU3x8e30pWzIxNTg5XXx8e30pLm10JiYoej1TWzIxNTg5XS5tdCl9bS5sKz1uZTt2YXIgX2U9bS5zbGljZShtLmwsbS5sK0IpO3N3aXRjaChMKXtjYXNlIDg6X2U9ZnVuY3Rpb24gVShtLEUpe2lmKCFL'@; put 'KXJldHVybiB5YyhtLEUpO3ZhciB3PW5ldygwLEsuSW5mbGF0ZVJhdyksUz13Ll9wcm9jZXNzQ2h1bmsobS5zbGljZShtLmwpLHcuX2ZpbmlzaEZsdXNoRmxhZyk7cmV0dXJuIG0ubCs9dy5ieXRlc1JlYWQsU30obSxIKTticmVhaztjYXNlIDA6YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJy'@; put 'b3IoIlVuc3VwcG9ydGVkIFpJUCBDb21wcmVzc2lvbiBtZXRob2QgIitMKX12YXIgVmU9ITE7OCZGJiYoMTM0Njk1NzYwPT1tLnJlYWRfc2hpZnQoNCkmJihtLnJlYWRfc2hpZnQoNCksVmU9ITApLEI9bS5yZWFkX3NoaWZ0KDQpLEg9bS5yZWFkX3NoaWZ0KDQpKSxCIT1FJiZBYyhWZSwiQmFk'@; put 'IGNvbXByZXNzZWQgc2l6ZTogIitFKyIgIT0gIitCKSxIIT1fJiZBYyhWZSwiQmFkIHVuY29tcHJlc3NlZCBzaXplOiAiK18rIiAhPSAiK0gpLHJpKHcsaGUsX2Use3Vuc2FmZTohMCxtdDp6fSl9dmFyIFAwPXtodG06InRleHQvaHRtbCIseG1sOiJ0ZXh0L3htbCIsZ2lmOiJpbWFnZS9naWYi'@; put 'LGpwZzoiaW1hZ2UvanBlZyIscG5nOiJpbWFnZS9wbmciLG1zbzoiYXBwbGljYXRpb24veC1tc28iLHRobXg6ImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2V0aGVtZSIsc2gzM3RqNToiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIn07ZnVuY3Rpb24gQ2cobSxFKXtpZihtLmN0eXBlKXJldHVy'@; put 'biBtLmN0eXBlO3ZhciBfPW0ubmFtZXx8IiIsdz1fLm1hdGNoKC9cLihbXlwuXSspJC8pO3JldHVybiB3JiZQMFt3WzFdXXx8RSYmKHc9KF89RSkubWF0Y2goL1tcLlxcXShbXlwuXFxdKSskLykpJiZQMFt3WzFdXT9QMFt3WzFdXToiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIn1mdW5jdGlv'@; put 'biBEZyhtKXtmb3IodmFyIEU9Z2EobSksXz1bXSx3PTA7dzxFLmxlbmd0aDt3Kz03NilfLnB1c2goRS5zbGljZSh3LHcrNzYpKTtyZXR1cm4gXy5qb2luKCJcclxuIikrIlxyXG4ifWZ1bmN0aW9uIE9nKG0pe3ZhciBFPW0ucmVwbGFjZSgvW1x4MDAtXHgwOFx4MEJceDBDXHgwRS1ceDFGXHg3'@; put 'RS1ceEZGPV0vZyxmdW5jdGlvbihCKXt2YXIgSD1CLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7cmV0dXJuIj0iKygxPT1ILmxlbmd0aD8iMCIrSDpIKX0pOyJcbiI9PShFPUUucmVwbGFjZSgvICQvZ20sIj0yMCIpLnJlcGxhY2UoL1x0JC9nbSwiPTA5IikpLmNo'@; put 'YXJBdCgwKSYmKEU9Ij0wRCIrRS5zbGljZSgxKSk7Zm9yKHZhciBfPVtdLHc9KEU9RS5yZXBsYWNlKC9ccig/IVxuKS9nbSwiPTBEIikucmVwbGFjZSgvXG5cbi9nbSwiXG49MEEiKS5yZXBsYWNlKC8oW15cclxuXSlcbi9nbSwiJDE9MEEiKSkuc3BsaXQoIlxyXG4iKSxTPTA7Uzx3Lmxlbmd0'@; put 'aDsrK1Mpe3ZhciBGPXdbU107aWYoMCE9Ri5sZW5ndGgpZm9yKHZhciBMPTA7TDxGLmxlbmd0aDspe3ZhciB6PTc2LFc9Ri5zbGljZShMLEwreik7Ij0iPT1XLmNoYXJBdCh6LTEpP3otLToiPSI9PVcuY2hhckF0KHotMik/ei09MjoiPSI9PVcuY2hhckF0KHotMykmJih6LT0zKSxXPUYuc2xp'@; put 'Y2UoTCxMK3opLChMKz16KTxGLmxlbmd0aCYmKFcrPSI9IiksXy5wdXNoKFcpfWVsc2UgXy5wdXNoKCIiKX1yZXR1cm4gXy5qb2luKCJcclxuIil9ZnVuY3Rpb24gUmcobSxFLF8pe2Zvcih2YXIgTCx3PSIiLFM9IiIsRj0iIix6PTA7ejwxMDsrK3ope3ZhciBXPUVbel07aWYoIVd8fFcubWF0'@; put 'Y2goL15ccyokLykpYnJlYWs7dmFyIEI9Vy5tYXRjaCgvXiguKj8pOlxzKihbXlxzXS4qKSQvKTtpZihCKXN3aXRjaChCWzFdLnRvTG93ZXJDYXNlKCkpe2Nhc2UiY29udGVudC1sb2NhdGlvbiI6dz1CWzJdLnRyaW0oKTticmVhaztjYXNlImNvbnRlbnQtdHlwZSI6Rj1CWzJdLnRyaW0oKTti'@; put 'cmVhaztjYXNlImNvbnRlbnQtdHJhbnNmZXItZW5jb2RpbmciOlM9QlsyXS50cmltKCl9fXN3aXRjaCgrK3osUy50b0xvd2VyQ2FzZSgpKXtjYXNlImJhc2U2NCI6TD1JcihPcihFLnNsaWNlKHopLmpvaW4oIiIpKSk7YnJlYWs7Y2FzZSJxdW90ZWQtcHJpbnRhYmxlIjpMPWZ1bmN0aW9uIEln'@; put 'KG0pe2Zvcih2YXIgRT1bXSxfPTA7XzxtLmxlbmd0aDsrK18pe2Zvcih2YXIgdz1tW19dO188PW0ubGVuZ3RoJiYiPSI9PXcuY2hhckF0KHcubGVuZ3RoLTEpOyl3PXcuc2xpY2UoMCx3Lmxlbmd0aC0xKSttWysrX107RS5wdXNoKHcpfWZvcih2YXIgUz0wO1M8RS5sZW5ndGg7KytTKUVbU109'@; put 'RVtTXS5yZXBsYWNlKC9bPV1bMC05QS1GYS1mXXsyfS9nLGZ1bmN0aW9uKEYpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KEYuc2xpY2UoMSksMTYpKX0pO3JldHVybiBJcihFLmpvaW4oIlxyXG4iKSl9KEUuc2xpY2UoeikpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVy'@; put 'cm9yKCJVbnN1cHBvcnRlZCBDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nICIrUyl9dmFyIEg9cmkobSx3LnNsaWNlKF8ubGVuZ3RoKSxMLHt1bnNhZmU6ITB9KTtGJiYoSC5jdHlwZT1GKX1mdW5jdGlvbiByaShtLEUsXyx3KXt2YXIgUz13JiZ3LnVuc2FmZTtTfHx5KG0pO3ZhciBGPSFTJiZ2'@; put 'ZS5maW5kKG0sRSk7aWYoIUYpe3ZhciBMPW0uRnVsbFBhdGhzWzBdO0Uuc2xpY2UoMCxMLmxlbmd0aCk9PUw/TD1FOigiLyIhPUwuc2xpY2UoLTEpJiYoTCs9Ii8iKSxMPShMK0UpLnJlcGxhY2UoIi8vIiwiLyIpKSxGPXtuYW1lOm4oRSksdHlwZToyfSxtLkZpbGVJbmRleC5wdXNoKEYpLG0u'@; put 'RnVsbFBhdGhzLnB1c2goTCksU3x8dmUudXRpbHMuY2ZiX2djKG0pfXJldHVybiBGLmNvbnRlbnQ9XyxGLnNpemU9Xz9fLmxlbmd0aDowLHcmJih3LkNMU0lEJiYoRi5jbHNpZD13LkNMU0lEKSx3Lm10JiYoRi5tdD13Lm10KSx3LmN0JiYoRi5jdD13LmN0KSksRn1yZXR1cm4gdC5maW5kPWZ1'@; put 'bmN0aW9uIFgobSxFKXt2YXIgXz1tLkZ1bGxQYXRocy5tYXAoZnVuY3Rpb24oVyl7cmV0dXJuIFcudG9VcHBlckNhc2UoKX0pLHc9Xy5tYXAoZnVuY3Rpb24oVyl7dmFyIEI9Vy5zcGxpdCgiLyIpO3JldHVybiBCW0IubGVuZ3RoLSgiLyI9PVcuc2xpY2UoLTEpPzI6MSldfSksUz0hMTs0Nz09'@; put 'PUUuY2hhckNvZGVBdCgwKT8oUz0hMCxFPV9bMF0uc2xpY2UoMCwtMSkrRSk6Uz0tMSE9PUUuaW5kZXhPZigiLyIpO3ZhciBGPUUudG9VcHBlckNhc2UoKSxMPSEwPT09Uz9fLmluZGV4T2YoRik6dy5pbmRleE9mKEYpO2lmKC0xIT09TClyZXR1cm4gbS5GaWxlSW5kZXhbTF07dmFyIHo9IUYu'@; put 'bWF0Y2god2EpO2ZvcihGPUYucmVwbGFjZShkciwiIikseiYmKEY9Ri5yZXBsYWNlKHdhLCIhIikpLEw9MDtMPF8ubGVuZ3RoOysrTClpZigoej9fW0xdLnJlcGxhY2Uod2EsIiEiKTpfW0xdKS5yZXBsYWNlKGRyLCIiKT09Rnx8KHo/d1tMXS5yZXBsYWNlKHdhLCIhIik6d1tMXSkucmVwbGFj'@; put 'ZShkciwiIik9PUYpcmV0dXJuIG0uRmlsZUluZGV4W0xdO3JldHVybiBudWxsfSx0LnJlYWQ9ZnVuY3Rpb24gSShtLEUpe3ZhciBfPUUmJkUudHlwZTtzd2l0Y2goX3x8U2UmJkJ1ZmZlci5pc0J1ZmZlcihtKSYmKF89ImJ1ZmZlciIpLF98fCJiYXNlNjQiKXtjYXNlImZpbGUiOnJldHVybiBm'@; put 'dW5jdGlvbiBNKG0sRSl7cmV0dXJuIG8oKSxsKGMucmVhZEZpbGVTeW5jKG0pLEUpfShtLEUpO2Nhc2UiYmFzZTY0IjpyZXR1cm4gbChJcihPcihtKSksRSk7Y2FzZSJiaW5hcnkiOnJldHVybiBsKElyKG0pLEUpfXJldHVybiBsKG0sRSl9LHQucGFyc2U9bCx0LndyaXRlPWZ1bmN0aW9uIHhl'@; put 'KG0sRSl7dmFyIF89VihtLEUpO3N3aXRjaChFJiZFLnR5cGV8fCJidWZmZXIiKXtjYXNlImZpbGUiOnJldHVybiBvKCksYy53cml0ZUZpbGVTeW5jKEUuZmlsZW5hbWUsXyksXztjYXNlImJpbmFyeSI6cmV0dXJuInN0cmluZyI9PXR5cGVvZiBfP186Y2UoXyk7Y2FzZSJiYXNlNjQiOnJldHVy'@; put 'biBnYSgic3RyaW5nIj09dHlwZW9mIF8/XzpjZShfKSk7Y2FzZSJidWZmZXIiOmlmKFNlKXJldHVybiBCdWZmZXIuaXNCdWZmZXIoXyk/XzpvdChfKTtjYXNlImFycmF5IjpyZXR1cm4ic3RyaW5nIj09dHlwZW9mIF8/SXIoXyk6X31yZXR1cm4gX30sdC53cml0ZUZpbGU9ZnVuY3Rpb24gRmUo'@; put 'bSxFLF8pe28oKTt2YXIgdz1WKG0sXyk7Yy53cml0ZUZpbGVTeW5jKEUsdyl9LHQudXRpbHM9e2NmYl9uZXc6ZnVuY3Rpb24gUGcobSl7dmFyIEU9e307cmV0dXJuIHkoRSxtKSxFfSxjZmJfYWRkOnJpLGNmYl9kZWw6ZnVuY3Rpb24gTGcobSxFKXt5KG0pO3ZhciBfPXZlLmZpbmQobSxFKTtp'@; put 'ZihfKWZvcih2YXIgdz0wO3c8bS5GaWxlSW5kZXgubGVuZ3RoOysrdylpZihtLkZpbGVJbmRleFt3XT09XylyZXR1cm4gbS5GaWxlSW5kZXguc3BsaWNlKHcsMSksbS5GdWxsUGF0aHMuc3BsaWNlKHcsMSksITA7cmV0dXJuITF9LGNmYl9tb3Y6ZnVuY3Rpb24gQmcobSxFLF8pe3kobSk7dmFy'@; put 'IHc9dmUuZmluZChtLEUpO2lmKHcpZm9yKHZhciBTPTA7UzxtLkZpbGVJbmRleC5sZW5ndGg7KytTKWlmKG0uRmlsZUluZGV4W1NdPT13KXJldHVybiBtLkZpbGVJbmRleFtTXS5uYW1lPW4oXyksbS5GdWxsUGF0aHNbU109XywhMDtyZXR1cm4hMX0sY2ZiX2djOmZ1bmN0aW9uIE1nKG0pe1Io'@; put 'bSwhMCl9LFJlYWRTaGlmdDpBYSxDaGVja0ZpZWxkOmFzLHByZXBfYmxvYjpocixiY29uY2F0OmZyLHVzZV96bGliOmZ1bmN0aW9uIEMobSl7dHJ5e3ZhciBfPW5ldygwLG0uSW5mbGF0ZVJhdyk7aWYoXy5fcHJvY2Vzc0NodW5rKG5ldyBVaW50OEFycmF5KFszLDBdKSxfLl9maW5pc2hGbHVz'@; put 'aEZsYWcpLCFfLmJ5dGVzUmVhZCl0aHJvdyBuZXcgRXJyb3IoInpsaWIgZG9lcyBub3QgZXhwb3NlIGJ5dGVzUmVhZCIpO0s9bX1jYXRjaCh3KXtjb25zb2xlLmVycm9yKCJjYW5ub3QgdXNlIG5hdGl2ZSB6bGliOiAiKyh3Lm1lc3NhZ2V8fHcpKX19LF9kZWZsYXRlUmF3OnllLF9pbmZsYXRl'@; put 'UmF3OnljLGNvbnN0czp1ZX0sdH0oKTtmdW5jdGlvbiAkZShlKXtmb3IodmFyIHQ9T2JqZWN0LmtleXMoZSkscj1bXSxhPTA7YTx0Lmxlbmd0aDsrK2EpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdFthXSkmJnIucHVzaCh0W2FdKTtyZXR1cm4gcn1mdW5jdGlvbiBz'@; put 'MChlKXtmb3IodmFyIHQ9W10scj0kZShlKSxhPTA7YSE9PXIubGVuZ3RoOysrYSl0W2VbclthXV1dPXJbYV07cmV0dXJuIHR9dmFyIGMwPW5ldyBEYXRlKDE4OTksMTEsMzAsMCwwLDApO2Z1bmN0aW9uIGlyKGUsdCl7dmFyIHI9ZS5nZXRUaW1lKCk7cmV0dXJuIHQmJihyLT0xMjYzMTY4ZTUp'@; put 'LChyLShjMC5nZXRUaW1lKCkrNmU0KihlLmdldFRpbWV6b25lT2Zmc2V0KCktYzAuZ2V0VGltZXpvbmVPZmZzZXQoKSkpKS84NjRlNX12YXIgU2k9bmV3IERhdGUsbG89YzAuZ2V0VGltZSgpKzZlNCooU2kuZ2V0VGltZXpvbmVPZmZzZXQoKS1jMC5nZXRUaW1lem9uZU9mZnNldCgpKSxGaT1T'@; put 'aS5nZXRUaW1lem9uZU9mZnNldCgpO2Z1bmN0aW9uIG8wKGUpe3ZhciB0PW5ldyBEYXRlO3JldHVybiB0LnNldFRpbWUoMjQqZSo2MCo2MCoxZTMrbG8pLHQuZ2V0VGltZXpvbmVPZmZzZXQoKSE9PUZpJiZ0LnNldFRpbWUodC5nZXRUaW1lKCkrNmU0Kih0LmdldFRpbWV6b25lT2Zmc2V0KCkt'@; put 'RmkpKSx0fWZ1bmN0aW9uIHVvKGUpe3ZhciB0PTAscj0wLGE9ITEsbj1lLm1hdGNoKC9QKFswLTlcLl0rWSk/KFswLTlcLl0rTSk/KFswLTlcLl0rRCk/VChbMC05XC5dK0gpPyhbMC05XC5dK00pPyhbMC05XC5dK1MpPy8pO2lmKCFuKXRocm93IG5ldyBFcnJvcigifCIrZSsifCBpcyBub3Qg'@; put 'YW4gSVNPODYwMSBEdXJhdGlvbiIpO2Zvcih2YXIgaT0xO2khPW4ubGVuZ3RoOysraSlpZihuW2ldKXtzd2l0Y2gocj0xLGk+MyYmKGE9ITApLG5baV0uc2xpY2UobltpXS5sZW5ndGgtMSkpe2Nhc2UiWSI6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBJU08gRHVyYXRpb24gRmllbGQ6'@; put 'ICIrbltpXS5zbGljZShuW2ldLmxlbmd0aC0xKSk7Y2FzZSJEIjpyKj0yNDtjYXNlIkgiOnIqPTYwO2Nhc2UiTSI6aWYoIWEpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBJU08gRHVyYXRpb24gRmllbGQ6IE0iKTtyKj02MH10Kz1yKnBhcnNlSW50KG5baV0sMTApfXJldHVybiB0fXZh'@; put 'ciB5aT1uZXcgRGF0ZSgiMjAxNy0wMi0xOVQxOTowNjowOS4wMDBaIiksQWk9aXNOYU4oeWkuZ2V0RnVsbFllYXIoKSk/bmV3IERhdGUoIjIvMTkvMTciKTp5aSxobz0yMDE3PT1BaS5nZXRGdWxsWWVhcigpO2Z1bmN0aW9uIFhlKGUsdCl7dmFyIHI9bmV3IERhdGUoZSk7aWYoaG8pcmV0dXJu'@; put 'IHQ+MD9yLnNldFRpbWUoci5nZXRUaW1lKCkrNjAqci5nZXRUaW1lem9uZU9mZnNldCgpKjFlMyk6dDwwJiZyLnNldFRpbWUoci5nZXRUaW1lKCktNjAqci5nZXRUaW1lem9uZU9mZnNldCgpKjFlMykscjtpZihlIGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4gZTtpZigxOTE3PT1BaS5nZXRGdWxs'@; put 'WWVhcigpJiYhaXNOYU4oci5nZXRGdWxsWWVhcigpKSl7dmFyIGE9ci5nZXRGdWxsWWVhcigpO3JldHVybiBlLmluZGV4T2YoIiIrYSk+LTF8fHIuc2V0RnVsbFllYXIoci5nZXRGdWxsWWVhcigpKzEwMCkscn12YXIgbj1lLm1hdGNoKC9cZCsvZyl8fFsiMjAxNyIsIjIiLCIxOSIsIjAiLCIw'@; put 'IiwiMCJdLGk9bmV3IERhdGUoK25bMF0sK25bMV0tMSwrblsyXSwrblszXXx8MCwrbls0XXx8MCwrbls1XXx8MCk7cmV0dXJuIGUuaW5kZXhPZigiWiIpPi0xJiYoaT1uZXcgRGF0ZShpLmdldFRpbWUoKS02MCppLmdldFRpbWV6b25lT2Zmc2V0KCkqMWUzKSksaX1mdW5jdGlvbiBQdChlLHQp'@; put 'e2lmKFNlJiZCdWZmZXIuaXNCdWZmZXIoZSkpe2lmKHQpe2lmKDI1NT09ZVswXSYmMjU0PT1lWzFdKXJldHVybiB0dChlLnNsaWNlKDIpLnRvU3RyaW5nKCJ1dGYxNmxlIikpO2lmKDI1ND09ZVsxXSYmMjU1PT1lWzJdKXJldHVybiB0dChhaShlLnNsaWNlKDIpLnRvU3RyaW5nKCJiaW5hcnki'@; put 'KSkpfXJldHVybiBlLnRvU3RyaW5nKCJiaW5hcnkiKX1pZih0eXBlb2YgVGV4dERlY29kZXI8InUiKXRyeXtpZih0KXtpZigyNTU9PWVbMF0mJjI1ND09ZVsxXSlyZXR1cm4gdHQobmV3IFRleHREZWNvZGVyKCJ1dGYtMTZsZSIpLmRlY29kZShlLnNsaWNlKDIpKSk7aWYoMjU0PT1lWzBdJiYy'@; put 'NTU9PWVbMV0pcmV0dXJuIHR0KG5ldyBUZXh0RGVjb2RlcigidXRmLTE2YmUiKS5kZWNvZGUoZS5zbGljZSgyKSkpfXZhciByPXsiXHUyMGFjIjoiXHg4MCIsIlx1MjAxYSI6Ilx4ODIiLFx1MDE5MjoiXHg4MyIsIlx1MjAxZSI6Ilx4ODQiLCJcdTIwMjYiOiJceDg1IiwiXHUyMDIwIjoiXHg4'@; put 'NiIsIlx1MjAyMSI6Ilx4ODciLFx1MDJjNjoiXHg4OCIsIlx1MjAzMCI6Ilx4ODkiLFx1MDE2MDoiXHg4YSIsIlx1MjAzOSI6Ilx4OGIiLFx1MDE1MjoiXHg4YyIsXHUwMTdkOiJceDhlIiwiXHUyMDE4IjoiXHg5MSIsIlx1MjAxOSI6Ilx4OTIiLCJcdTIwMWMiOiJceDkzIiwiXHUyMDFkIjoi'@; put 'XHg5NCIsIlx1MjAyMiI6Ilx4OTUiLCJcdTIwMTMiOiJceDk2IiwiXHUyMDE0IjoiXHg5NyIsIlx1MDJkYyI6Ilx4OTgiLCJcdTIxMjIiOiJceDk5IixcdTAxNjE6Ilx4OWEiLCJcdTIwM2EiOiJceDliIixcdTAxNTM6Ilx4OWMiLFx1MDE3ZToiXHg5ZSIsXHUwMTc4OiJceDlmIn07cmV0dXJu'@; put 'IEFycmF5LmlzQXJyYXkoZSkmJihlPW5ldyBVaW50OEFycmF5KGUpKSxuZXcgVGV4dERlY29kZXIoImxhdGluMSIpLmRlY29kZShlKS5yZXBsYWNlKC9bXHUyMGFjXHUyMDFhXHUwMTkyXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUwMmM2XHUyMDMwXHUwMTYwXHUyMDM5XHUwMTUyXHUwMTdk'@; put 'XHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHUwMmRjXHUyMTIyXHUwMTYxXHUyMDNhXHUwMTUzXHUwMTdlXHUwMTc4XS9nLGZ1bmN0aW9uKGkpe3JldHVybiByW2ldfHxpfSl9Y2F0Y2h7fWZvcih2YXIgYT1bXSxuPTA7biE9ZS5sZW5ndGg7KytuKWEucHVzaChT'@; put 'dHJpbmcuZnJvbUNoYXJDb2RlKGVbbl0pKTtyZXR1cm4gYS5qb2luKCIiKX1mdW5jdGlvbiBNZShlKXtpZih0eXBlb2YgSlNPTjwidSImJiFBcnJheS5pc0FycmF5KGUpKXJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGUpKTtpZigib2JqZWN0IiE9dHlwZW9mIGV8fG51bGw9PWUp'@; put 'cmV0dXJuIGU7aWYoZSBpbnN0YW5jZW9mIERhdGUpcmV0dXJuIG5ldyBEYXRlKGUuZ2V0VGltZSgpKTt2YXIgdD17fTtmb3IodmFyIHIgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmKHRbcl09TWUoZVtyXSkpO3JldHVybiB0fWZ1bmN0aW9uIGplKGUs'@; put 'dCl7Zm9yKHZhciByPSIiO3IubGVuZ3RoPHQ7KXIrPWU7cmV0dXJuIHJ9ZnVuY3Rpb24gSnIoZSl7dmFyIHQ9TnVtYmVyKGUpO2lmKCFpc05hTih0KSlyZXR1cm4gaXNGaW5pdGUodCk/dDpOYU47aWYoIS9cZC8udGVzdChlKSlyZXR1cm4gdDt2YXIgcj0xLGE9ZS5yZXBsYWNlKC8oW1xkXSks'@; put 'KFtcZF0pL2csIiQxJDIiKS5yZXBsYWNlKC9bJF0vZywiIikucmVwbGFjZSgvWyVdL2csZnVuY3Rpb24oKXtyZXR1cm4gcio9MTAwLCIifSk7cmV0dXJuIGlzTmFOKHQ9TnVtYmVyKGEpKSYmKGE9YS5yZXBsYWNlKC9bKF0oLiopWyldLyxmdW5jdGlvbihuLGkpe3JldHVybiByPS1yLGl9KSxp'@; put 'c05hTih0PU51bWJlcihhKSkpP3Q6dC9yfXZhciB4bz1bImphbnVhcnkiLCJmZWJydWFyeSIsIm1hcmNoIiwiYXByaWwiLCJtYXkiLCJqdW5lIiwianVseSIsImF1Z3VzdCIsInNlcHRlbWJlciIsIm9jdG9iZXIiLCJub3ZlbWJlciIsImRlY2VtYmVyIl07ZnVuY3Rpb24gYWEoZSl7dmFyIHQ9'@; put 'bmV3IERhdGUoZSkscj1uZXcgRGF0ZShOYU4pLGE9dC5nZXRZZWFyKCksbj10LmdldE1vbnRoKCksaT10LmdldERhdGUoKTtpZihpc05hTihpKSlyZXR1cm4gcjt2YXIgcz1lLnRvTG93ZXJDYXNlKCk7aWYocy5tYXRjaCgvamFufGZlYnxtYXJ8YXByfG1heXxqdW58anVsfGF1Z3xzZXB8b2N0'@; put 'fG5vdnxkZWMvKSl7aWYoKHM9cy5yZXBsYWNlKC9bXmEtel0vZywiIikucmVwbGFjZSgvKFteYS16XXxeKVthcF1tPyhbXmEtel18JCkvLCIiKSkubGVuZ3RoPjMmJi0xPT14by5pbmRleE9mKHMpKXJldHVybiByfWVsc2UgaWYocy5tYXRjaCgvW2Etel0vKSlyZXR1cm4gcjtyZXR1cm4gYTww'@; put 'fHxhPjgwOTk/cjoobj4wfHxpPjEpJiYxMDEhPWE/dDplLm1hdGNoKC9bXi0wLTk6LFwvXFxdLyk/cjp0fXZhciB2bz1mdW5jdGlvbigpe3ZhciBlPTU9PSJhYmFjYWJhIi5zcGxpdCgvKDo/YikvaSkubGVuZ3RoO3JldHVybiBmdW5jdGlvbihyLGEsbil7aWYoZXx8InN0cmluZyI9PXR5cGVv'@; put 'ZiBhKXJldHVybiByLnNwbGl0KGEpO2Zvcih2YXIgaT1yLnNwbGl0KGEpLHM9W2lbMF1dLGY9MTtmPGkubGVuZ3RoOysrZilzLnB1c2gobikscy5wdXNoKGlbZl0pO3JldHVybiBzfX0oKTtmdW5jdGlvbiBDaShlKXtyZXR1cm4gZT9lLmNvbnRlbnQmJmUudHlwZT9QdChlLmNvbnRlbnQsITAp'@; put 'OmUuZGF0YT9RdChlLmRhdGEpOmUuYXNOb2RlQnVmZmVyJiZTZT9RdChlLmFzTm9kZUJ1ZmZlcigpLnRvU3RyaW5nKCJiaW5hcnkiKSk6ZS5hc0JpbmFyeT9RdChlLmFzQmluYXJ5KCkpOmUuX2RhdGEmJmUuX2RhdGEuZ2V0Q29udGVudD9RdChQdChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2Fs'@; put 'bChlLl9kYXRhLmdldENvbnRlbnQoKSwwKSkpOm51bGw6bnVsbH1mdW5jdGlvbiBEaShlKXtpZighZSlyZXR1cm4gbnVsbDtpZihlLmRhdGEpcmV0dXJuIHQwKGUuZGF0YSk7aWYoZS5hc05vZGVCdWZmZXImJlNlKXJldHVybiBlLmFzTm9kZUJ1ZmZlcigpO2lmKGUuX2RhdGEmJmUuX2RhdGEu'@; put 'Z2V0Q29udGVudCl7dmFyIHQ9ZS5fZGF0YS5nZXRDb250ZW50KCk7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P3QwKHQpOkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQpfXJldHVybiBlLmNvbnRlbnQmJmUudHlwZT9lLmNvbnRlbnQ6bnVsbH1mdW5jdGlvbiBXcihlLHQpe2Zvcih2YXIg'@; put 'cj1lLkZ1bGxQYXRoc3x8JGUoZS5maWxlcyksYT10LnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvW1wvXS9nLCJcXCIpLG49YS5yZXBsYWNlKC9cXC9nLCIvIiksaT0wO2k8ci5sZW5ndGg7KytpKXt2YXIgcz1yW2ldLnJlcGxhY2UoL15Sb290IEVudHJ5W1wvXS8sIiIpLnRvTG93ZXJDYXNlKCk7'@; put 'aWYoYT09c3x8bj09cylyZXR1cm4gZS5maWxlcz9lLmZpbGVzW3JbaV1dOmUuRmlsZUluZGV4W2ldfXJldHVybiBudWxsfWZ1bmN0aW9uIFYwKGUsdCl7dmFyIHI9V3IoZSx0KTtpZihudWxsPT1yKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGZpbmQgZmlsZSAiK3QrIiBpbiB6aXAiKTtyZXR1'@; put 'cm4gcn1mdW5jdGlvbiBRZShlLHQscil7aWYoIXIpcmV0dXJuIGZ1bmN0aW9uIHBvKGUpe3JldHVybiBlJiYiLmJpbiI9PT1lLm5hbWUuc2xpY2UoLTQpP0RpKGUpOkNpKGUpfShWMChlLHQpKTtpZighdClyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIFFlKGUsdCl9Y2F0Y2h7cmV0dXJuIG51bGx9'@; put 'fWZ1bmN0aW9uIE5yKGUsdCxyKXtpZighcilyZXR1cm4gQ2koVjAoZSx0KSk7aWYoIXQpcmV0dXJuIG51bGw7dHJ5e3JldHVybiBOcihlLHQpfWNhdGNoe3JldHVybiBudWxsfX1mdW5jdGlvbiBPaShlLHQscil7aWYoIXIpcmV0dXJuIERpKFYwKGUsdCkpO2lmKCF0KXJldHVybiBudWxsO3Ry'@; put 'eXtyZXR1cm4gT2koZSx0KX1jYXRjaHtyZXR1cm4gbnVsbH19ZnVuY3Rpb24gSWkoZSl7Zm9yKHZhciB0PWUuRnVsbFBhdGhzfHwkZShlLmZpbGVzKSxyPVtdLGE9MDthPHQubGVuZ3RoOysrYSkiLyIhPXRbYV0uc2xpY2UoLTEpJiZyLnB1c2godFthXS5yZXBsYWNlKC9eUm9vdCBFbnRyeVtc'@; put 'L10vLCIiKSk7cmV0dXJuIHIuc29ydCgpfWZ1bmN0aW9uIFJpKGUsdCl7c3dpdGNoKHQudHlwZSl7Y2FzZSJiYXNlNjQiOnJldHVybiB2ZS5yZWFkKGUse3R5cGU6ImJhc2U2NCJ9KTtjYXNlImJpbmFyeSI6cmV0dXJuIHZlLnJlYWQoZSx7dHlwZToiYmluYXJ5In0pO2Nhc2UiYnVmZmVyIjpj'@; put 'YXNlImFycmF5IjpyZXR1cm4gdmUucmVhZChlLHt0eXBlOiJidWZmZXIifSl9dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgdHlwZSAiK3QudHlwZSl9ZnVuY3Rpb24gU2EoZSx0KXtpZigiLyI9PWUuY2hhckF0KDApKXJldHVybiBlLnNsaWNlKDEpO3ZhciByPXQuc3BsaXQoIi8iKTsi'@; put 'LyIhPXQuc2xpY2UoLTEpJiZyLnBvcCgpO2Zvcih2YXIgYT1lLnNwbGl0KCIvIik7MCE9PWEubGVuZ3RoOyl7dmFyIG49YS5zaGlmdCgpOyIuLiI9PT1uP3IucG9wKCk6Ii4iIT09biYmci5wdXNoKG4pfXJldHVybiByLmpvaW4oIi8iKX12YXIgZXI9Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5j'@; put 'b2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz5cclxuJyxtbz0vKFteIlxzPz5cL10rKVxzKj1ccyooKD86IikoW14iXSopKD86Iil8KD86JykoW14nXSopKD86Jyl8KFteJyI+XHNdKykpL2csTmk9LzxbXC9cP10/W2EtekEtWjAtOTpfLV0rKD86XHMrW14iXHM/PlwvXStccyo9XHMq'@; put 'KD86IlteIl0qInwnW14nXSonfFteJyI+XHM9XSspKSpccypbXC9cP10/Pi9nbSx2cj1lci5tYXRjaChOaSk/Tmk6LzxbXj5dKj4vZyxfbz0vPFx3KjovLHdvPS88KFwvPylcdys6LztmdW5jdGlvbiBtZShlLHQscil7Zm9yKHZhciBhPXt9LG49MCxpPTA7biE9PWUubGVuZ3RoJiYzMiE9PShp'@; put 'PWUuY2hhckNvZGVBdChuKSkmJjEwIT09aSYmMTMhPT1pOysrbik7aWYodHx8KGFbMF09ZS5zbGljZSgwLG4pKSxuPT09ZS5sZW5ndGgpcmV0dXJuIGE7dmFyIHM9ZS5tYXRjaChtbyksZj0wLGM9IiIsbz0wLGw9IiIsaD0iIix4PTE7aWYocylmb3Iobz0wO28hPXMubGVuZ3RoOysrbyl7Zm9y'@; put 'KGg9c1tvXSxpPTA7aSE9aC5sZW5ndGgmJjYxIT09aC5jaGFyQ29kZUF0KGkpOysraSk7Zm9yKGw9aC5zbGljZSgwLGkpLnRyaW0oKTszMj09aC5jaGFyQ29kZUF0KGkrMSk7KSsraTtmb3IoeD0zND09KG49aC5jaGFyQ29kZUF0KGkrMSkpfHwzOT09bj8xOjAsYz1oLnNsaWNlKGkrMSt4LGgu'@; put 'bGVuZ3RoLXgpLGY9MDtmIT1sLmxlbmd0aCYmNTghPT1sLmNoYXJDb2RlQXQoZik7KytmKTtpZihmPT09bC5sZW5ndGgpbC5pbmRleE9mKCJfIik+MCYmKGw9bC5zbGljZSgwLGwuaW5kZXhPZigiXyIpKSksYVtsXT1jLHJ8fChhW2wudG9Mb3dlckNhc2UoKV09Yyk7ZWxzZXt2YXIgZD0oNT09'@; put 'PWYmJiJ4bWxucyI9PT1sLnNsaWNlKDAsNSk/InhtbG5zIjoiIikrbC5zbGljZShmKzEpO2lmKGFbZF0mJiJleHQiPT1sLnNsaWNlKGYtMyxmKSljb250aW51ZTthW2RdPWMscnx8KGFbZC50b0xvd2VyQ2FzZSgpXT1jKX19cmV0dXJuIGF9ZnVuY3Rpb24gcnQoZSl7cmV0dXJuIGUucmVwbGFj'@; put 'ZSh3bywiPCQxIil9dmFyIGJpPXsiJnF1b3Q7IjonIicsIiZhcG9zOyI6IiciLCImZ3Q7IjoiPiIsIiZsdDsiOiI8IiwiJmFtcDsiOiImIn0sRzA9czAoYmkpLEllPWZ1bmN0aW9uKCl7dmFyIGU9LyYoPzpxdW90fGFwb3N8Z3R8bHR8YW1wfCN4PyhbXGRhLWZBLUZdKykpOy9naSx0PS9feChb'@; put 'XGRhLWZBLUZdezR9KV8vZ2k7cmV0dXJuIGZ1bmN0aW9uIHIoYSl7dmFyIG49YSsiIixpPW4uaW5kZXhPZigiPCFbQ0RBVEFbIik7aWYoLTE9PWkpcmV0dXJuIG4ucmVwbGFjZShlLGZ1bmN0aW9uKGYsYyl7cmV0dXJuIGJpW2ZdfHxTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGMsZi5p'@; put 'bmRleE9mKCJ4Iik+LTE/MTY6MTApKXx8Zn0pLnJlcGxhY2UodCxmdW5jdGlvbihmLGMpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGMsMTYpKX0pO3ZhciBzPW4uaW5kZXhPZigiXV0+Iik7cmV0dXJuIHIobi5zbGljZSgwLGkpKStuLnNsaWNlKGkrOSxzKStyKG4uc2xp'@; put 'Y2UocyszKSl9fSgpLHowPS9bJjw+JyJdL2csTGk9L1tcdTAwMDAtXHUwMDFmXS9nO2Z1bmN0aW9uICQwKGUpe3JldHVybihlKyIiKS5yZXBsYWNlKHowLGZ1bmN0aW9uKHIpe3JldHVybiBHMFtyXX0pLnJlcGxhY2UoL1xuL2csIjxici8+IikucmVwbGFjZShMaSxmdW5jdGlvbihyKXtyZXR1'@; put 'cm4iJiN4IisoIjAwMCIrci5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTQpKyI7In0pfXZhciBCaT1mdW5jdGlvbigpe3ZhciBlPS8mIyhcZCspOy9nO2Z1bmN0aW9uIHQocixhKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChhLDEwKSl9cmV0dXJuIGZ1'@; put 'bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UoZSx0KX19KCk7ZnVuY3Rpb24gV2UoZSl7c3dpdGNoKGUpe2Nhc2UgMTpjYXNlITA6Y2FzZSIxIjpjYXNlInRydWUiOmNhc2UiVFJVRSI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gajAoZSl7Zm9yKHZhciB0PSIiLHI9MCxh'@; put 'PTAsbj0wLGk9MCxzPTAsZj0wO3I8ZS5sZW5ndGg7KShhPWUuY2hhckNvZGVBdChyKyspKTwxMjg/dCs9U3RyaW5nLmZyb21DaGFyQ29kZShhKToobj1lLmNoYXJDb2RlQXQocisrKSxhPjE5MSYmYTwyMjQ/KHM9KDMxJmEpPDw2LHN8PTYzJm4sdCs9U3RyaW5nLmZyb21DaGFyQ29kZShzKSk6'@; put 'KGk9ZS5jaGFyQ29kZUF0KHIrKyksYTwyNDA/dCs9U3RyaW5nLmZyb21DaGFyQ29kZSgoMTUmYSk8PDEyfCg2MyZuKTw8Nnw2MyZpKTooZj0oKDcmYSk8PDE4fCg2MyZuKTw8MTJ8KDYzJmkpPDw2fDYzJihzPWUuY2hhckNvZGVBdChyKyspKSktNjU1MzYsdCs9U3RyaW5nLmZyb21DaGFyQ29k'@; put 'ZSg1NTI5NisoZj4+PjEwJjEwMjMpKSx0Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKDU2MzIwKygxMDIzJmYpKSkpKTtyZXR1cm4gdH1mdW5jdGlvbiBNaShlKXt2YXIgcixhLGYsdD1fdCgyKmUubGVuZ3RoKSxuPTEsaT0wLHM9MDtmb3IoYT0wO2E8ZS5sZW5ndGg7YSs9biluPTEsKGY9ZS5jaGFy'@; put 'Q29kZUF0KGEpKTwxMjg/cj1mOmY8MjI0PyhyPTY0KigzMSZmKSsoNjMmZS5jaGFyQ29kZUF0KGErMSkpLG49Mik6ZjwyNDA/KHI9NDA5NiooMTUmZikrNjQqKDYzJmUuY2hhckNvZGVBdChhKzEpKSsoNjMmZS5jaGFyQ29kZUF0KGErMikpLG49Myk6KG49NCxyPTI2MjE0NCooNyZmKSs0MDk2'@; put 'Kig2MyZlLmNoYXJDb2RlQXQoYSsxKSkrNjQqKDYzJmUuY2hhckNvZGVBdChhKzIpKSsoNjMmZS5jaGFyQ29kZUF0KGErMykpLHM9NTUyOTYrKChyLT02NTUzNik+Pj4xMCYxMDIzKSxyPTU2MzIwKygxMDIzJnIpKSwwIT09cyYmKHRbaSsrXT0yNTUmcyx0W2krK109cz4+Pjgscz0wKSx0W2kr'@; put 'K109ciUyNTYsdFtpKytdPXI+Pj44O3JldHVybiB0LnNsaWNlKDAsaSkudG9TdHJpbmcoInVjczIiKX1mdW5jdGlvbiBVaShlKXtyZXR1cm4gb3QoZSwiYmluYXJ5IikudG9TdHJpbmcoInV0ZjgiKX12YXIgbDA9ImZvbyBiYXIgYmF6XHhlMlx4OThceDgzXHhmMFx4OWZceDhkXHhhMyIsQmU9'@; put 'U2UmJihVaShsMCk9PWowKGwwKSYmVWl8fE1pKGwwKT09ajAobDApJiZNaSl8fGowLHR0PVNlP2Z1bmN0aW9uKGUpe3JldHVybiBvdChlLCJ1dGY4IikudG9TdHJpbmcoImJpbmFyeSIpfTpmdW5jdGlvbihlKXtmb3IodmFyIHQ9W10scj0wLGE9MCxuPTA7cjxlLmxlbmd0aDspc3dpdGNoKGE9'@; put 'ZS5jaGFyQ29kZUF0KHIrKyksITApe2Nhc2UgYTwxMjg6dC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoYSkpO2JyZWFrO2Nhc2UgYTwyMDQ4OnQucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKDE5MisoYT4+NikpKSx0LnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZSgxMjgrKDYzJmEpKSk7YnJl'@; put 'YWs7Y2FzZSBhPj01NTI5NiYmYTw1NzM0NDphLT01NTI5NixuPWUuY2hhckNvZGVBdChyKyspLTU2MzIwKyhhPDwxMCksdC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMjQwKyhuPj4xOCY3KSkpLHQucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKDE0NCsobj4+MTImNjMpKSksdC5wdXNoKFN0'@; put 'cmluZy5mcm9tQ2hhckNvZGUoMTI4KyhuPj42JjYzKSkpLHQucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKDEyOCsoNjMmbikpKTticmVhaztkZWZhdWx0OnQucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKDIyNCsoYT4+MTIpKSksdC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMTI4KyhhPj42'@; put 'JjYzKSkpLHQucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKDEyOCsoNjMmYSkpKX1yZXR1cm4gdC5qb2luKCIiKX0sRmE9ZnVuY3Rpb24oKXt2YXIgZT17fTtyZXR1cm4gZnVuY3Rpb24ocixhKXt2YXIgbj1yKyJ8IisoYXx8IiIpO3JldHVybiBlW25dP2Vbbl06ZVtuXT1uZXcgUmVnRXhwKCI8'@; put 'KD86XFx3KzopPyIrcisnKD86IHhtbDpzcGFjZT0icHJlc2VydmUiKT8oPzpbXj5dKik+KFtcXHNcXFNdKj8pPC8oPzpcXHcrOik/JytyKyI+IixhfHwiIil9fSgpLFdpPWZ1bmN0aW9uKCl7dmFyIGU9W1sibmJzcCIsIiAiXSxbIm1pZGRvdCIsIlx4YjciXSxbInF1b3QiLCciJ10sWyJhcG9z'@; put 'IiwiJyJdLFsiZ3QiLCI+Il0sWyJsdCIsIjwiXSxbImFtcCIsIiYiXV0ubWFwKGZ1bmN0aW9uKHQpe3JldHVybltuZXcgUmVnRXhwKCImIit0WzBdKyI7IiwiaWciKSx0WzFdXX0pO3JldHVybiBmdW5jdGlvbihyKXtmb3IodmFyIGE9ci5yZXBsYWNlKC9eW1x0XG5cciBdKy8sIiIpLnJlcGxh'@; put 'Y2UoL1tcdFxuXHIgXSskLywiIikucmVwbGFjZSgvPlxzKy9nLCI+IikucmVwbGFjZSgvXHMrPC9nLCI8IikucmVwbGFjZSgvW1x0XG5cciBdKy9nLCIgIikucmVwbGFjZSgvPFxzKltiQl1bclJdXHMqXC8/Pi9nLCJcbiIpLnJlcGxhY2UoLzxbXj5dKj4vZywiIiksbj0wO248ZS5sZW5ndGg7'@; put 'KytuKWE9YS5yZXBsYWNlKGVbbl1bMF0sZVtuXVsxXSk7cmV0dXJuIGF9fSgpLFNvPWZ1bmN0aW9uKCl7dmFyIGU9e307cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiB2b2lkIDAhPT1lW3JdP2Vbcl06ZVtyXT1uZXcgUmVnRXhwKCI8KD86dnQ6KT8iK3IrIj4oW1xcc1xcU10qPyk8Lyg/OnZ0'@; put 'Oik/IityKyI+IiwiZyIpfX0oKSxGbz0vPFwvPyg/OnZ0Oik/dmFyaWFudD4vZyx5bz0vPCg/OnZ0OikoW14+XSopPihbXHNcU10qKTwvO2Z1bmN0aW9uIEhpKGUsdCl7dmFyIHI9bWUoZSksYT1lLm1hdGNoKFNvKHIuYmFzZVR5cGUpKXx8W10sbj1bXTtpZihhLmxlbmd0aCE9ci5zaXplKXtp'@; put 'Zih0LldURil0aHJvdyBuZXcgRXJyb3IoInVuZXhwZWN0ZWQgdmVjdG9yIGxlbmd0aCAiK2EubGVuZ3RoKyIgIT0gIityLnNpemUpO3JldHVybiBufXJldHVybiBhLmZvckVhY2goZnVuY3Rpb24oaSl7dmFyIHM9aS5yZXBsYWNlKEZvLCIiKS5tYXRjaCh5byk7cyYmbi5wdXNoKHt2OkJlKHNb'@; put 'Ml0pLHQ6c1sxXX0pfSksbn1mdW5jdGlvbiBZMChlKXtpZihTZSYmQnVmZmVyLmlzQnVmZmVyKGUpKXJldHVybiBlLnRvU3RyaW5nKCJ1dGY4Iik7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiBlO2lmKHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkp'@; put 'cmV0dXJuIEJlKHd0KE0wKGUpKSk7dGhyb3cgbmV3IEVycm9yKCJCYWQgaW5wdXQgZm9ybWF0OiBleHBlY3RlZCBCdWZmZXIgb3Igc3RyaW5nIil9dmFyIHlhPS88KFwvPykoW15ccz8+PCFcLzpdKjp8KShbXlxzPzw+OlwvXSspKD86W1xzPzpcL11bXj5dKik/Pi9nbSxycj17Q09SRV9QUk9Q'@; put 'UzoiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9tZXRhZGF0YS9jb3JlLXByb3BlcnRpZXMiLENVU1RfUFJPUFM6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L2N1c3RvbS1wcm9wZXJ0aWVzIixFWFRf'@; put 'UFJPUFM6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L2V4dGVuZGVkLXByb3BlcnRpZXMiLENUOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L2NvbnRlbnQtdHlwZXMiLFJFTFM6Imh0dHA6Ly9zY2hl'@; put 'bWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvcmVsYXRpb25zaGlwcyIsVENNTlQ6Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3NwcmVhZHNoZWV0bWwvMjAxOC90aHJlYWRlZGNvbW1lbnRzIixkYzoiaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEu'@; put 'MS8iLGRjdGVybXM6Imh0dHA6Ly9wdXJsLm9yZy9kYy90ZXJtcy8iLGRjbWl0eXBlOiJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvIixteDoiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvbWFjL2V4Y2VsLzIwMDgvbWFpbiIscjoiaHR0cDovL3NjaGVtYXMub3Blbnht'@; put 'bGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcyIsc2pzOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L3NoZWV0anMvY29yZS1wcm9wZXJ0aWVzIix2dDoiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29m'@; put 'ZmljZURvY3VtZW50LzIwMDYvZG9jUHJvcHNWVHlwZXMiLHhzaToiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiLHhzZDoiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEifSxTdD1bImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9zcHJl'@; put 'YWRzaGVldG1sLzIwMDYvbWFpbiIsImh0dHA6Ly9wdXJsLm9jbGMub3JnL29veG1sL3NwcmVhZHNoZWV0bWwvbWFpbiIsImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL2V4Y2VsLzIwMDYvbWFpbiIsImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL2V4Y2Vs'@; put 'LzIwMDYvMiJdLEdpPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1bXSxhPTA7YTxlWzBdLmxlbmd0aDsrK2EpaWYoZVswXVthXSlmb3IodmFyIG49MCxpPWVbMF1bYV0ubGVuZ3RoO248aTtuKz0xMDI0MCl0LnB1c2guYXBwbHkodCxlWzBdW2FdLnNsaWNlKG4sbisxMDI0MCkpO3JldHVybiB0fSx6'@; put 'aT1TZT9mdW5jdGlvbihlKXtyZXR1cm4gZVswXS5sZW5ndGg+MCYmQnVmZmVyLmlzQnVmZmVyKGVbMF1bMF0pP0J1ZmZlci5jb25jYXQoZVswXS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIEJ1ZmZlci5pc0J1ZmZlcih0KT90Om90KHQpfSkpOkdpKGUpfTpHaSwkaT1mdW5jdGlvbihlLHQscil7'@; put 'Zm9yKHZhciBhPVtdLG49dDtuPHI7bis9MilhLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZSh1dChlLG4pKSk7cmV0dXJuIGEuam9pbigiIikucmVwbGFjZShkciwiIil9LHUwPVNlP2Z1bmN0aW9uKGUsdCxyKXtyZXR1cm4gQnVmZmVyLmlzQnVmZmVyKGUpP2UudG9TdHJpbmcoInV0ZjE2bGUi'@; put 'LHQscikucmVwbGFjZShkciwiIik6JGkoZSx0LHIpfTokaSxqaT1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBhPVtdLG49dDtuPHQrcjsrK24pYS5wdXNoKCgiMCIrZVtuXS50b1N0cmluZygxNikpLnNsaWNlKC0yKSk7cmV0dXJuIGEuam9pbigiIil9LEtpPVNlP2Z1bmN0aW9uKGUsdCxyKXty'@; put 'ZXR1cm4gQnVmZmVyLmlzQnVmZmVyKGUpP2UudG9TdHJpbmcoImhleCIsdCx0K3IpOmppKGUsdCxyKX06amksWWk9ZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgYT1bXSxuPXQ7bjxyO24rKylhLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShpYShlLG4pKSk7cmV0dXJuIGEuam9pbigiIil9LG5h'@; put 'PVNlP2Z1bmN0aW9uKHQscixhKXtyZXR1cm4gQnVmZmVyLmlzQnVmZmVyKHQpP3QudG9TdHJpbmcoInV0ZjgiLHIsYSk6WWkodCxyLGEpfTpZaSxKaT1mdW5jdGlvbihlLHQpe3ZhciByPWNyKGUsdCk7cmV0dXJuIHI+MD9uYShlLHQrNCx0KzQrci0xKToiIn0sSjA9SmkscWk9ZnVuY3Rpb24o'@; put 'ZSx0KXt2YXIgcj1jcihlLHQpO3JldHVybiByPjA/bmEoZSx0KzQsdCs0K3ItMSk6IiJ9LHEwPXFpLFppPWZ1bmN0aW9uKGUsdCl7dmFyIHI9MipjcihlLHQpO3JldHVybiByPjA/bmEoZSx0KzQsdCs0K3ItMSk6IiJ9LFowPVppLFFpPWZ1bmN0aW9uKHQscil7dmFyIGE9Y3IodCxyKTtyZXR1'@; put 'cm4gYT4wP3UwKHQscis0LHIrNCthKToiIn0sUTA9UWksZXM9ZnVuY3Rpb24oZSx0KXt2YXIgcj1jcihlLHQpO3JldHVybiByPjA/bmEoZSx0KzQsdCs0K3IpOiIifSxlbj1lcyxycz1mdW5jdGlvbihlLHQpe3JldHVybiBmdW5jdGlvbiBDbyhlLHQpe2Zvcih2YXIgcj0xLTIqKGVbdCs3XT4+'@; put 'PjcpLGE9KCgxMjcmZVt0KzddKTw8NCkrKGVbdCs2XT4+PjQmMTUpLG49MTUmZVt0KzZdLGk9NTtpPj0wOy0taSluPTI1NipuK2VbdCtpXTtyZXR1cm4gMjA0Nz09YT8wPT1uP3IqKDEvMCk6TmFOOigwPT1hP2E9LTEwMjI6KGEtPTEwMjMsbis9TWF0aC5wb3coMiw1MikpLHIqTWF0aC5wb3co'@; put 'MixhLTUyKSpuKX0oZSx0KX0saDA9cnMscm49ZnVuY3Rpb24odCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCl8fHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmdCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl9O1NlJiYoSjA9ZnVuY3Rpb24odCxyKXtpZighQnVmZmVyLmlzQnVmZmVyKHQpKXJldHVybiBK'@; put 'aSh0LHIpO3ZhciBhPXQucmVhZFVJbnQzMkxFKHIpO3JldHVybiBhPjA/dC50b1N0cmluZygidXRmOCIscis0LHIrNCthLTEpOiIifSxxMD1mdW5jdGlvbih0LHIpe2lmKCFCdWZmZXIuaXNCdWZmZXIodCkpcmV0dXJuIHFpKHQscik7dmFyIGE9dC5yZWFkVUludDMyTEUocik7cmV0dXJuIGE+'@; put 'MD90LnRvU3RyaW5nKCJ1dGY4IixyKzQscis0K2EtMSk6IiJ9LFowPWZ1bmN0aW9uKHQscil7aWYoIUJ1ZmZlci5pc0J1ZmZlcih0KSlyZXR1cm4gWmkodCxyKTt2YXIgYT0yKnQucmVhZFVJbnQzMkxFKHIpO3JldHVybiB0LnRvU3RyaW5nKCJ1dGYxNmxlIixyKzQscis0K2EtMSl9LFEwPWZ1'@; put 'bmN0aW9uKHQscil7aWYoIUJ1ZmZlci5pc0J1ZmZlcih0KSlyZXR1cm4gUWkodCxyKTt2YXIgYT10LnJlYWRVSW50MzJMRShyKTtyZXR1cm4gdC50b1N0cmluZygidXRmMTZsZSIscis0LHIrNCthKX0sZW49ZnVuY3Rpb24odCxyKXtpZighQnVmZmVyLmlzQnVmZmVyKHQpKXJldHVybiBlcyh0'@; put 'LHIpO3ZhciBhPXQucmVhZFVJbnQzMkxFKHIpO3JldHVybiB0LnRvU3RyaW5nKCJ1dGY4IixyKzQscis0K2EpfSxoMD1mdW5jdGlvbih0LHIpe3JldHVybiBCdWZmZXIuaXNCdWZmZXIodCk/dC5yZWFkRG91YmxlTEUocik6cnModCxyKX0scm49ZnVuY3Rpb24odCl7cmV0dXJuIEJ1ZmZlci5p'@; put 'c0J1ZmZlcih0KXx8QXJyYXkuaXNBcnJheSh0KXx8dHlwZW9mIFVpbnQ4QXJyYXk8InUiJiZ0IGluc3RhbmNlb2YgVWludDhBcnJheX0pLHR5cGVvZiBPZTwidSImJmZ1bmN0aW9uIHRzKCl7dTA9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBPZS51dGlscy5kZWNvZGUoMTIwMCxlLnNsaWNlKHQs'@; put 'cikpLnJlcGxhY2UoZHIsIiIpfSxuYT1mdW5jdGlvbihlLHQscil7cmV0dXJuIE9lLnV0aWxzLmRlY29kZSg2NTAwMSxlLnNsaWNlKHQscikpfSxKMD1mdW5jdGlvbihlLHQpe3ZhciByPWNyKGUsdCk7cmV0dXJuIHI+MD9PZS51dGlscy5kZWNvZGUoUnQsZS5zbGljZSh0KzQsdCs0K3ItMSkp'@; put 'OiIifSxxMD1mdW5jdGlvbihlLHQpe3ZhciByPWNyKGUsdCk7cmV0dXJuIHI+MD9PZS51dGlscy5kZWNvZGUoRHIsZS5zbGljZSh0KzQsdCs0K3ItMSkpOiIifSxaMD1mdW5jdGlvbihlLHQpe3ZhciByPTIqY3IoZSx0KTtyZXR1cm4gcj4wP09lLnV0aWxzLmRlY29kZSgxMjAwLGUuc2xpY2Uo'@; put 'dCs0LHQrNCtyLTEpKToiIn0sUTA9ZnVuY3Rpb24oZSx0KXt2YXIgcj1jcihlLHQpO3JldHVybiByPjA/T2UudXRpbHMuZGVjb2RlKDEyMDAsZS5zbGljZSh0KzQsdCs0K3IpKToiIn0sZW49ZnVuY3Rpb24oZSx0KXt2YXIgcj1jcihlLHQpO3JldHVybiByPjA/T2UudXRpbHMuZGVjb2RlKDY1'@; put 'MDAxLGUuc2xpY2UodCs0LHQrNCtyKSk6IiJ9fSgpO3ZhciBpYT1mdW5jdGlvbihlLHQpe3JldHVybiBlW3RdfSx1dD1mdW5jdGlvbihlLHQpe3JldHVybiAyNTYqZVt0KzFdK2VbdF19LE9vPWZ1bmN0aW9uKGUsdCl7dmFyIHI9MjU2KmVbdCsxXStlW3RdO3JldHVybiByPDMyNzY4P3I6LTEq'@; put 'KDY1NTM1LXIrMSl9LGNyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGVbdCszXSooMTw8MjQpKyhlW3QrMl08PDE2KSsoZVt0KzFdPDw4KStlW3RdfSxMdD1mdW5jdGlvbihlLHQpe3JldHVybiBlW3QrM108PDI0fGVbdCsyXTw8MTZ8ZVt0KzFdPDw4fGVbdF19LElvPWZ1bmN0aW9uKGUsdCl7cmV0'@; put 'dXJuIGVbdF08PDI0fGVbdCsxXTw8MTZ8ZVt0KzJdPDw4fGVbdCszXX07ZnVuY3Rpb24gQWEoZSx0KXt2YXIgYSxuLHMsZixjLG8scj0iIixpPVtdO3N3aXRjaCh0KXtjYXNlImRiY3MiOmlmKG89dGhpcy5sLFNlJiZCdWZmZXIuaXNCdWZmZXIodGhpcykpcj10aGlzLnNsaWNlKHRoaXMubCx0'@; put 'aGlzLmwrMiplKS50b1N0cmluZygidXRmMTZsZSIpO2Vsc2UgZm9yKGM9MDtjPGU7KytjKXIrPVN0cmluZy5mcm9tQ2hhckNvZGUodXQodGhpcyxvKSksbys9MjtlKj0yO2JyZWFrO2Nhc2UidXRmOCI6cj1uYSh0aGlzLHRoaXMubCx0aGlzLmwrZSk7YnJlYWs7Y2FzZSJ1dGYxNmxlIjpyPXUw'@; put 'KHRoaXMsdGhpcy5sLHRoaXMubCsoZSo9MikpO2JyZWFrO2Nhc2Uid3N0ciI6aWYoISh0eXBlb2YgT2U8InUiKSlyZXR1cm4gQWEuY2FsbCh0aGlzLGUsImRiY3MiKTtyPU9lLnV0aWxzLmRlY29kZShEcix0aGlzLnNsaWNlKHRoaXMubCx0aGlzLmwrMiplKSksZSo9MjticmVhaztjYXNlImxw'@; put 'c3RyLWFuc2kiOnI9SjAodGhpcyx0aGlzLmwpLGU9NCtjcih0aGlzLHRoaXMubCk7YnJlYWs7Y2FzZSJscHN0ci1jcCI6cj1xMCh0aGlzLHRoaXMubCksZT00K2NyKHRoaXMsdGhpcy5sKTticmVhaztjYXNlImxwd3N0ciI6cj1aMCh0aGlzLHRoaXMubCksZT00KzIqY3IodGhpcyx0aGlzLmwp'@; put 'O2JyZWFrO2Nhc2UibHBwNCI6ZT00K2NyKHRoaXMsdGhpcy5sKSxyPVEwKHRoaXMsdGhpcy5sKSwyJmUmJihlKz0yKTticmVhaztjYXNlIjhscHA0IjplPTQrY3IodGhpcyx0aGlzLmwpLHI9ZW4odGhpcyx0aGlzLmwpLDMmZSYmKGUrPTQtKDMmZSkpO2JyZWFrO2Nhc2UiY3N0ciI6Zm9yKGU9'@; put 'MCxyPSIiOzAhPT0ocz1pYSh0aGlzLHRoaXMubCtlKyspKTspaS5wdXNoKHBhKHMpKTtyPWkuam9pbigiIik7YnJlYWs7Y2FzZSJfd3N0ciI6Zm9yKGU9MCxyPSIiOzAhPT0ocz11dCh0aGlzLHRoaXMubCtlKSk7KWkucHVzaChwYShzKSksZSs9MjtlKz0yLHI9aS5qb2luKCIiKTticmVhaztj'@; put 'YXNlImRiY3MtY29udCI6Zm9yKHI9IiIsbz10aGlzLmwsYz0wO2M8ZTsrK2Mpe2lmKHRoaXMubGVucyYmLTEhPT10aGlzLmxlbnMuaW5kZXhPZihvKSlyZXR1cm4gcz1pYSh0aGlzLG8pLHRoaXMubD1vKzEsZj1BYS5jYWxsKHRoaXMsZS1jLHM/ImRiY3MtY29udCI6InNiY3MtY29udCIpLGku'@; put 'am9pbigiIikrZjtpLnB1c2gocGEodXQodGhpcyxvKSkpLG8rPTJ9cj1pLmpvaW4oIiIpLGUqPTI7YnJlYWs7Y2FzZSJjcHN0ciI6aWYodHlwZW9mIE9lPCJ1Iil7cj1PZS51dGlscy5kZWNvZGUoRHIsdGhpcy5zbGljZSh0aGlzLmwsdGhpcy5sK2UpKTticmVha31jYXNlInNiY3MtY29udCI6'@; put 'Zm9yKHI9IiIsbz10aGlzLmwsYz0wO2MhPWU7KytjKXtpZih0aGlzLmxlbnMmJi0xIT09dGhpcy5sZW5zLmluZGV4T2YobykpcmV0dXJuIHM9aWEodGhpcyxvKSx0aGlzLmw9bysxLGY9QWEuY2FsbCh0aGlzLGUtYyxzPyJkYmNzLWNvbnQiOiJzYmNzLWNvbnQiKSxpLmpvaW4oIiIpK2Y7aS5w'@; put 'dXNoKHBhKGlhKHRoaXMsbykpKSxvKz0xfXI9aS5qb2luKCIiKTticmVhaztkZWZhdWx0OnN3aXRjaChlKXtjYXNlIDE6cmV0dXJuIGE9aWEodGhpcyx0aGlzLmwpLHRoaXMubCsrLGE7Y2FzZSAyOnJldHVybiBhPSgiaSI9PT10P09vOnV0KSh0aGlzLHRoaXMubCksdGhpcy5sKz0yLGE7Y2Fz'@; put 'ZSA0OmNhc2UtNDpyZXR1cm4iaSIhPT10JiYxMjgmdGhpc1t0aGlzLmwrM10/KG49Y3IodGhpcyx0aGlzLmwpLHRoaXMubCs9NCxuKTooYT0oZT4wP0x0OklvKSh0aGlzLHRoaXMubCksdGhpcy5sKz00LGEpO2Nhc2UgODpjYXNlLTg6aWYoImYiPT09dClyZXR1cm4gbj04PT1lP2gwKHRoaXMs'@; put 'dGhpcy5sKTpoMChbdGhpc1t0aGlzLmwrN10sdGhpc1t0aGlzLmwrNl0sdGhpc1t0aGlzLmwrNV0sdGhpc1t0aGlzLmwrNF0sdGhpc1t0aGlzLmwrM10sdGhpc1t0aGlzLmwrMl0sdGhpc1t0aGlzLmwrMV0sdGhpc1t0aGlzLmwrMF1dLDApLHRoaXMubCs9OCxuO2U9ODtjYXNlIDE2OnI9S2ko'@; put 'dGhpcyx0aGlzLmwsZSl9fXJldHVybiB0aGlzLmwrPWUscn12YXIgUm89ZnVuY3Rpb24oZSx0LHIpe2Vbcl09MjU1JnQsZVtyKzFdPXQ+Pj44JjI1NSxlW3IrMl09dD4+PjE2JjI1NSxlW3IrM109dD4+PjI0JjI1NX0sTm89ZnVuY3Rpb24oZSx0LHIpe2Vbcl09MjU1JnQsZVtyKzFdPXQ+Pjgm'@; put 'MjU1LGVbcisyXT10Pj4xNiYyNTUsZVtyKzNdPXQ+PjI0JjI1NX0sYm89ZnVuY3Rpb24oZSx0LHIpe2Vbcl09MjU1JnQsZVtyKzFdPXQ+Pj44JjI1NX07ZnVuY3Rpb24gUG8oZSx0LHIpe3ZhciBhPTAsbj0wO2lmKCJkYmNzIj09PXIpe2ZvcihuPTA7biE9dC5sZW5ndGg7KytuKWJvKHRoaXMs'@; put 'dC5jaGFyQ29kZUF0KG4pLHRoaXMubCsyKm4pO2E9Mip0Lmxlbmd0aH1lbHNlIGlmKCJzYmNzIj09PXIpe2lmKHR5cGVvZiBPZTwidSImJjg3ND09UnQpZm9yKG49MDtuIT10Lmxlbmd0aDsrK24pe3ZhciBpPU9lLnV0aWxzLmVuY29kZShSdCx0LmNoYXJBdChuKSk7dGhpc1t0aGlzLmwrbl09'@; put 'aVswXX1lbHNlIGZvcih0PXQucmVwbGFjZSgvW15ceDAwLVx4N0ZdL2csIl8iKSxuPTA7biE9dC5sZW5ndGg7KytuKXRoaXNbdGhpcy5sK25dPTI1NSZ0LmNoYXJDb2RlQXQobik7YT10Lmxlbmd0aH1lbHNle2lmKCJoZXgiPT09cil7Zm9yKDtuPGU7KytuKXRoaXNbdGhpcy5sKytdPXBhcnNl'@; put 'SW50KHQuc2xpY2UoMipuLDIqbisyKSwxNil8fDA7cmV0dXJuIHRoaXN9aWYoInV0ZjE2bGUiPT09cil7dmFyIHM9TWF0aC5taW4odGhpcy5sK2UsdGhpcy5sZW5ndGgpO2ZvcihuPTA7bjxNYXRoLm1pbih0Lmxlbmd0aCxlKTsrK24pe3ZhciBmPXQuY2hhckNvZGVBdChuKTt0aGlzW3RoaXMu'@; put 'bCsrXT0yNTUmZix0aGlzW3RoaXMubCsrXT1mPj44fWZvcig7dGhpcy5sPHM7KXRoaXNbdGhpcy5sKytdPTA7cmV0dXJuIHRoaXN9c3dpdGNoKGUpe2Nhc2UgMTphPTEsdGhpc1t0aGlzLmxdPTI1NSZ0O2JyZWFrO2Nhc2UgMjphPTIsdGhpc1t0aGlzLmxdPTI1NSZ0LHRoaXNbdGhpcy5sKzFd'@; put 'PTI1NSYodD4+Pj04KTticmVhaztjYXNlIDM6YT0zLHRoaXNbdGhpcy5sXT0yNTUmdCx0aGlzW3RoaXMubCsxXT0yNTUmKHQ+Pj49OCksdGhpc1t0aGlzLmwrMl09MjU1Jih0Pj4+PTgpO2JyZWFrO2Nhc2UgNDphPTQsUm8odGhpcyx0LHRoaXMubCk7YnJlYWs7Y2FzZSA4OmlmKGE9OCwiZiI9'@; put 'PT1yKXshZnVuY3Rpb24gRG8oZSx0LHIpe3ZhciBhPSh0PDB8fDEvdD09LTEvMD8xOjApPDw3LG49MCxpPTAscz1hPy10OnQ7aXNGaW5pdGUocyk/MD09cz9uPWk9MDoobj1NYXRoLmZsb29yKE1hdGgubG9nKHMpL01hdGguTE4yKSxpPXMqTWF0aC5wb3coMiw1Mi1uKSxuPD0tMTAyMyYmKCFp'@; put 'c0Zpbml0ZShpKXx8aTxNYXRoLnBvdygyLDUyKSk/bj0tMTAyMjooaS09TWF0aC5wb3coMiw1Miksbis9MTAyMykpOihuPTIwNDcsaT1pc05hTih0KT8yNjk4NTowKTtmb3IodmFyIGY9MDtmPD01OysrZixpLz0yNTYpZVtyK2ZdPTI1NSZpO2Vbcis2XT0oMTUmbik8PDR8MTUmaSxlW3IrN109'@; put 'bj4+NHxhfSh0aGlzLHQsdGhpcy5sKTticmVha31jYXNlIDE2OmJyZWFrO2Nhc2UtNDphPTQsTm8odGhpcyx0LHRoaXMubCl9fXJldHVybiB0aGlzLmwrPWEsdGhpc31mdW5jdGlvbiBhcyhlLHQpe3ZhciByPUtpKHRoaXMsdGhpcy5sLGUubGVuZ3RoPj4xKTtpZihyIT09ZSl0aHJvdyBuZXcg'@; put 'RXJyb3IodCsiRXhwZWN0ZWQgIitlKyIgc2F3ICIrcik7dGhpcy5sKz1lLmxlbmd0aD4+MX1mdW5jdGlvbiBocihlLHQpe2UubD10LGUucmVhZF9zaGlmdD1BYSxlLmNoaz1hcyxlLndyaXRlX3NoaWZ0PVBvfWZ1bmN0aW9uIHByKGUsdCl7ZS5sKz10fWZ1bmN0aW9uIEcoZSl7dmFyIHQ9X3Qo'@; put 'ZSk7cmV0dXJuIGhyKHQsMCksdH1mdW5jdGlvbiBodChlLHQscil7aWYoZSl7dmFyIGEsbixpO2hyKGUsZS5sfHwwKTtmb3IodmFyIHM9ZS5sZW5ndGgsZj0wLGM9MDtlLmw8czspezEyOCYoZj1lLnJlYWRfc2hpZnQoMSkpJiYoZj0oMTI3JmYpKygoMTI3JmUucmVhZF9zaGlmdCgxKSk8PDcp'@; put 'KTt2YXIgbz0kYVtmXXx8JGFbNjU1MzVdO2ZvcihpPTEyNyYoYT1lLnJlYWRfc2hpZnQoMSkpLG49MTtuPDQmJjEyOCZhOysrbilpKz0oMTI3JihhPWUucmVhZF9zaGlmdCgxKSkpPDw3Km47Yz1lLmwraTt2YXIgbD1vLmYmJm8uZihlLGkscik7aWYoZS5sPWMsdChsLG8sZikpcmV0dXJufX19'@; put 'ZnVuY3Rpb24gU3IoKXt2YXIgZT1bXSx0PVNlPzI1NjoyMDQ4LHI9ZnVuY3Rpb24obyl7dmFyIGw9RyhvKTtyZXR1cm4gaHIobCwwKSxsfSxhPXIodCksbj1mdW5jdGlvbigpe2EmJihhLmxlbmd0aD5hLmwmJigoYT1hLnNsaWNlKDAsYS5sKSkubD1hLmxlbmd0aCksYS5sZW5ndGg+MCYmZS5w'@; put 'dXNoKGEpLGE9bnVsbCl9LGk9ZnVuY3Rpb24obyl7cmV0dXJuIGEmJm88YS5sZW5ndGgtYS5sP2E6KG4oKSxhPXIoTWF0aC5tYXgobysxLHQpKSl9O3JldHVybntuZXh0OmkscHVzaDpmdW5jdGlvbihvKXtuKCksbnVsbD09KGE9bykubCYmKGEubD1hLmxlbmd0aCksaSh0KX0sZW5kOmZ1bmN0'@; put 'aW9uKCl7cmV0dXJuIG4oKSxmcihlKX0sX2J1ZnM6ZX19ZnVuY3Rpb24gQ2EoZSx0LHIpe3ZhciBhPU1lKGUpO2lmKHQucz8oYS5jUmVsJiYoYS5jKz10LnMuYyksYS5yUmVsJiYoYS5yKz10LnMucikpOihhLmNSZWwmJihhLmMrPXQuYyksYS5yUmVsJiYoYS5yKz10LnIpKSwhcnx8ci5iaWZm'@; put 'PDEyKXtmb3IoO2EuYz49MjU2OylhLmMtPTI1Njtmb3IoO2Eucj49NjU1MzY7KWEuci09NjU1MzZ9cmV0dXJuIGF9ZnVuY3Rpb24gbnMoZSx0LHIpe3ZhciBhPU1lKGUpO3JldHVybiBhLnM9Q2EoYS5zLHQucyxyKSxhLmU9Q2EoYS5lLHQucyxyKSxhfWZ1bmN0aW9uIERhKGUsdCl7aWYoZS5j'@; put 'UmVsJiZlLmM8MClmb3IoZT1NZShlKTtlLmM8MDspZS5jKz10Pjg/MTYzODQ6MjU2O2lmKGUuclJlbCYmZS5yPDApZm9yKGU9TWUoZSk7ZS5yPDA7KWUucis9dD44PzEwNDg1NzY6dD41PzY1NTM2OjE2Mzg0O3ZhciByPWdlKGUpO3JldHVybiFlLmNSZWwmJm51bGwhPWUuY1JlbCYmKHI9ZnVu'@; put 'Y3Rpb24gTW8oZSl7cmV0dXJuIGUucmVwbGFjZSgvXihbQS1aXSkvLCIkJCQxIil9KHIpKSwhZS5yUmVsJiZudWxsIT1lLnJSZWwmJihyPWZ1bmN0aW9uIExvKGUpe3JldHVybiBlLnJlcGxhY2UoLyhbQS1aXXxeKShcZCspJC8sIiQxJCQkMiIpfShyKSkscn1mdW5jdGlvbiB0bihlLHQpe3Jl'@; put 'dHVybiAwIT1lLnMucnx8ZS5zLnJSZWx8fGUuZS5yIT0odC5iaWZmPj0xMj8xMDQ4NTc1OnQuYmlmZj49OD82NTUzNjoxNjM4NCl8fGUuZS5yUmVsPzAhPWUucy5jfHxlLnMuY1JlbHx8ZS5lLmMhPSh0LmJpZmY+PTEyPzE2MzgzOjI1NSl8fGUuZS5jUmVsP0RhKGUucyx0LmJpZmYpKyI6IitE'@; put 'YShlLmUsdC5iaWZmKTooZS5zLnJSZWw/IiI6IiQiKStLZShlLnMucikrIjoiKyhlLmUuclJlbD8iIjoiJCIpK0tlKGUuZS5yKTooZS5zLmNSZWw/IiI6IiQiKStIZShlLnMuYykrIjoiKyhlLmUuY1JlbD8iIjoiJCIpK0hlKGUuZS5jKX1mdW5jdGlvbiBhbihlKXtyZXR1cm4gcGFyc2VJbnQo'@; put 'ZnVuY3Rpb24gQm8oZSl7cmV0dXJuIGUucmVwbGFjZSgvXCQoXGQrKSQvLCIkMSIpfShlKSwxMCktMX1mdW5jdGlvbiBLZShlKXtyZXR1cm4iIisoZSsxKX1mdW5jdGlvbiBubihlKXtmb3IodmFyIHQ9ZnVuY3Rpb24gVW8oZSl7cmV0dXJuIGUucmVwbGFjZSgvXlwkKFtBLVpdKS8sIiQxIil9'@; put 'KGUpLHI9MCxhPTA7YSE9PXQubGVuZ3RoOysrYSlyPTI2KnIrdC5jaGFyQ29kZUF0KGEpLTY0O3JldHVybiByLTF9ZnVuY3Rpb24gSGUoZSl7aWYoZTwwKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBjb2x1bW4gIitlKTt2YXIgdD0iIjtmb3IoKytlO2U7ZT1NYXRoLmZsb29yKChlLTEpLzI2'@; put 'KSl0PVN0cmluZy5mcm9tQ2hhckNvZGUoKGUtMSklMjYrNjUpK3Q7cmV0dXJuIHR9ZnVuY3Rpb24gR2UoZSl7Zm9yKHZhciB0PTAscj0wLGE9MDthPGUubGVuZ3RoOysrYSl7dmFyIG49ZS5jaGFyQ29kZUF0KGEpO24+PTQ4JiZuPD01Nz90PTEwKnQrKG4tNDgpOm4+PTY1JiZuPD05MCYmKHI9'@; put 'MjYqcisobi02NCkpfXJldHVybntjOnItMSxyOnQtMX19ZnVuY3Rpb24gZ2UoZSl7Zm9yKHZhciB0PWUuYysxLHI9IiI7dDt0PSh0LTEpLzI2fDApcj1TdHJpbmcuZnJvbUNoYXJDb2RlKCh0LTEpJTI2KzY1KStyO3JldHVybiByKyhlLnIrMSl9ZnVuY3Rpb24gUHIoZSl7dmFyIHQ9ZS5pbmRl'@; put 'eE9mKCI6Iik7cmV0dXJuLTE9PXQ/e3M6R2UoZSksZTpHZShlKX06e3M6R2UoZS5zbGljZSgwLHQpKSxlOkdlKGUuc2xpY2UodCsxKSl9fWZ1bmN0aW9uIHdlKGUsdCl7cmV0dXJuIHR5cGVvZiB0PiJ1Inx8Im51bWJlciI9PXR5cGVvZiB0P3dlKGUucyxlLmUpOigic3RyaW5nIiE9dHlwZW9m'@; put 'IGUmJihlPWdlKGUpKSwic3RyaW5nIiE9dHlwZW9mIHQmJih0PWdlKHQpKSxlPT10P2U6ZSsiOiIrdCl9ZnVuY3Rpb24gRGUoZSl7dmFyIHQ9e3M6e2M6MCxyOjB9LGU6e2M6MCxyOjB9fSxyPTAsYT0wLG49MCxpPWUubGVuZ3RoO2ZvcihyPTA7YTxpJiYhKChuPWUuY2hhckNvZGVBdChhKS02'@; put 'NCk8MXx8bj4yNik7KythKXI9MjYqcituO2Zvcih0LnMuYz0tLXIscj0wO2E8aSYmISgobj1lLmNoYXJDb2RlQXQoYSktNDgpPDB8fG4+OSk7KythKXI9MTAqcituO2lmKHQucy5yPS0tcixhPT09aXx8MTAhPW4pcmV0dXJuIHQuZS5jPXQucy5jLHQuZS5yPXQucy5yLHQ7Zm9yKCsrYSxyPTA7'@; put 'YSE9aSYmISgobj1lLmNoYXJDb2RlQXQoYSktNjQpPDF8fG4+MjYpOysrYSlyPTI2KnIrbjtmb3IodC5lLmM9LS1yLHI9MDthIT1pJiYhKChuPWUuY2hhckNvZGVBdChhKS00OCk8MHx8bj45KTsrK2Epcj0xMCpyK247cmV0dXJuIHQuZS5yPS0tcix0fWZ1bmN0aW9uIGF0KGUsdCxyKXtyZXR1'@; put 'cm4gbnVsbD09ZXx8bnVsbD09ZS50fHwieiI9PWUudD8iIjp2b2lkIDAhPT1lLnc/ZS53OigiZCI9PWUudCYmIWUueiYmciYmci5kYXRlTkYmJihlLno9ci5kYXRlTkYpLCJlIj09ZS50P3h0W2Uudl18fGUudjpmdW5jdGlvbiBpcyhlLHQpe3ZhciByPSJkIj09ZS50JiZ0IGluc3RhbmNlb2Yg'@; put 'RGF0ZTtpZihudWxsIT1lLnopdHJ5e3JldHVybiBlLnc9UnIoZS56LHI/aXIodCk6dCl9Y2F0Y2h7fXRyeXtyZXR1cm4gZS53PVJyKChlLlhGfHx7fSkubnVtRm10SWR8fChyPzE0OjApLHI/aXIodCk6dCl9Y2F0Y2h7cmV0dXJuIiIrdH19KGUsbnVsbD09dD9lLnY6dCkpfWZ1bmN0aW9uIEZ0'@; put 'KGUsdCl7dmFyIHI9dCYmdC5zaGVldD90LnNoZWV0OiJTaGVldDEiLGE9e307cmV0dXJuIGFbcl09ZSx7U2hlZXROYW1lczpbcl0sU2hlZXRzOmF9fWZ1bmN0aW9uIHNhKGUsdCl7cmV0dXJuIGZ1bmN0aW9uIHNzKGUsdCxyKXt2YXIgYT1yfHx7fSxuPWU/QXJyYXkuaXNBcnJheShlKTphLmRl'@; put 'bnNlO251bGwhPXplJiZudWxsPT1uJiYobj16ZSk7dmFyIGk9ZXx8KG4/W106e30pLHM9MCxmPTA7aWYoaSYmbnVsbCE9YS5vcmlnaW4pe2lmKCJudW1iZXIiPT10eXBlb2YgYS5vcmlnaW4pcz1hLm9yaWdpbjtlbHNle3ZhciBjPSJzdHJpbmciPT10eXBlb2YgYS5vcmlnaW4/R2UoYS5vcmln'@; put 'aW4pOmEub3JpZ2luO3M9Yy5yLGY9Yy5jfWlbIiFyZWYiXXx8KGlbIiFyZWYiXT0iQTE6QTEiKX12YXIgbz17czp7YzoxZTcscjoxZTd9LGU6e2M6MCxyOjB9fTtpZihpWyIhcmVmIl0pe3ZhciBsPURlKGlbIiFyZWYiXSk7by5zLmM9bC5zLmMsby5zLnI9bC5zLnIsby5lLmM9TWF0aC5tYXgo'@; put 'by5lLmMsbC5lLmMpLG8uZS5yPU1hdGgubWF4KG8uZS5yLGwuZS5yKSwtMT09cyYmKG8uZS5yPXM9bC5lLnIrMSl9Zm9yKHZhciBoPTA7aCE9dC5sZW5ndGg7KytoKWlmKHRbaF0pe2lmKCFBcnJheS5pc0FycmF5KHRbaF0pKXRocm93IG5ldyBFcnJvcigiYW9hX3RvX3NoZWV0IGV4cGVjdHMg'@; put 'YW4gYXJyYXkgb2YgYXJyYXlzIik7Zm9yKHZhciB4PTA7eCE9dFtoXS5sZW5ndGg7Kyt4KWlmKCEodHlwZW9mIHRbaF1beF0+InUiKSl7dmFyIGQ9e3Y6dFtoXVt4XX0sdj1zK2gsdT1mK3g7aWYoby5zLnI+diYmKG8ucy5yPXYpLG8ucy5jPnUmJihvLnMuYz11KSxvLmUucjx2JiYoby5lLnI9'@; put 'diksby5lLmM8dSYmKG8uZS5jPXUpLCF0W2hdW3hdfHwib2JqZWN0IiE9dHlwZW9mIHRbaF1beF18fEFycmF5LmlzQXJyYXkodFtoXVt4XSl8fHRbaF1beF1pbnN0YW5jZW9mIERhdGUpaWYoQXJyYXkuaXNBcnJheShkLnYpJiYoZC5mPXRbaF1beF1bMV0sZC52PWQudlswXSksbnVsbD09PWQu'@; put 'dilpZihkLmYpZC50PSJuIjtlbHNlIGlmKGEubnVsbEVycm9yKWQudD0iZSIsZC52PTA7ZWxzZXtpZighYS5zaGVldFN0dWJzKWNvbnRpbnVlO2QudD0ieiJ9ZWxzZSJudW1iZXIiPT10eXBlb2YgZC52P2QudD0ibiI6ImJvb2xlYW4iPT10eXBlb2YgZC52P2QudD0iYiI6ZC52IGluc3RhbmNl'@; put 'b2YgRGF0ZT8oZC56PWEuZGF0ZU5GfHxwZVsxNF0sYS5jZWxsRGF0ZXM/KGQudD0iZCIsZC53PVJyKGQueixpcihkLnYpKSk6KGQudD0ibiIsZC52PWlyKGQudiksZC53PVJyKGQueixkLnYpKSk6ZC50PSJzIjtlbHNlIGQ9dFtoXVt4XTtpZihuKWlbdl18fChpW3ZdPVtdKSxpW3ZdW3VdJiZp'@; put 'W3ZdW3VdLnomJihkLno9aVt2XVt1XS56KSxpW3ZdW3VdPWQ7ZWxzZXt2YXIgcD1nZSh7Yzp1LHI6dn0pO2lbcF0mJmlbcF0ueiYmKGQuej1pW3BdLnopLGlbcF09ZH19fXJldHVybiBvLnMuYzwxZTcmJihpWyIhcmVmIl09d2UobykpLGl9KG51bGwsZSx0KX1mdW5jdGlvbiBtcihlKXt2YXIg'@; put 'dD1lLnJlYWRfc2hpZnQoNCk7cmV0dXJuIDA9PT10PyIiOmUucmVhZF9zaGlmdCh0LCJkYmNzIil9ZnVuY3Rpb24gVm8oZSl7cmV0dXJue2ljaDplLnJlYWRfc2hpZnQoMiksaWZudDplLnJlYWRfc2hpZnQoMil9fWZ1bmN0aW9uIHNuKGUsdCl7dmFyIHI9ZS5sLGE9ZS5yZWFkX3NoaWZ0KDEp'@; put 'LG49bXIoZSksaT1bXSxzPXt0Om4saDpufTtpZigxJmEpe2Zvcih2YXIgZj1lLnJlYWRfc2hpZnQoNCksYz0wO2MhPWY7KytjKWkucHVzaChWbyhlKSk7cy5yPWl9ZWxzZSBzLnI9W3tpY2g6MCxpZm50OjB9XTtyZXR1cm4gZS5sPXIrdCxzfXZhciBHbz1zbjtmdW5jdGlvbiBIcihlKXt2YXIg'@; put 'dD1lLnJlYWRfc2hpZnQoNCkscj1lLnJlYWRfc2hpZnQoMik7cmV0dXJuIHIrPWUucmVhZF9zaGlmdCgxKTw8MTYsZS5sKysse2M6dCxpU3R5bGVSZWY6cn19ZnVuY3Rpb24gTXQoZSl7dmFyIHQ9ZS5yZWFkX3NoaWZ0KDIpO3JldHVybiB0Kz1lLnJlYWRfc2hpZnQoMSk8PDE2LGUubCsrLHtj'@; put 'Oi0xLGlTdHlsZVJlZjp0fX12YXIgJG89bXI7ZnVuY3Rpb24gZm4oZSl7dmFyIHQ9ZS5yZWFkX3NoaWZ0KDQpO3JldHVybiAwPT09dHx8NDI5NDk2NzI5NT09PXQ/IiI6ZS5yZWFkX3NoaWZ0KHQsImRiY3MiKX12YXIgam89bXIsb249Zm47ZnVuY3Rpb24gdW4oZSl7dmFyIHQ9ZS5zbGljZShl'@; put 'LmwsZS5sKzQpLHI9MSZ0WzBdLGE9MiZ0WzBdO2UubCs9NDt2YXIgbj0wPT09YT9oMChbMCwwLDAsMCwyNTImdFswXSx0WzFdLHRbMl0sdFszXV0sMCk6THQodCwwKT4+MjtyZXR1cm4gcj9uLzEwMDpufWZ1bmN0aW9uIG9zKGUpe3ZhciB0PXtzOnt9LGU6e319O3JldHVybiB0LnMucj1lLnJl'@; put 'YWRfc2hpZnQoNCksdC5lLnI9ZS5yZWFkX3NoaWZ0KDQpLHQucy5jPWUucmVhZF9zaGlmdCg0KSx0LmUuYz1lLnJlYWRfc2hpZnQoNCksdH12YXIgV3Q9b3M7ZnVuY3Rpb24gZ3IoZSl7aWYoZS5sZW5ndGgtZS5sPDgpdGhyb3ciWExTIFhudW0gQnVmZmVyIHVuZGVyZmxvdyI7cmV0dXJuIGUu'@; put 'cmVhZF9zaGlmdCg4LCJmIil9ZnVuY3Rpb24gbHMoZSx0KXt2YXIgYT1lLnJlYWRfc2hpZnQoNCk7c3dpdGNoKGEpe2Nhc2UgMDpyZXR1cm4iIjtjYXNlIDQyOTQ5NjcyOTU6Y2FzZSA0Mjk0OTY3Mjk0OnJldHVybnsyOiJCSVRNQVAiLDM6Ik1FVEFGSUxFUElDVCIsODoiRElCIiwxNDoiRU5I'@; put 'TUVUQUZJTEUifVtlLnJlYWRfc2hpZnQoNCldfHwiIn1pZihhPjQwMCl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIENsaXBib2FyZDogIithLnRvU3RyaW5nKDE2KSk7cmV0dXJuIGUubC09NCxlLnJlYWRfc2hpZnQoMCwxPT10PyJscHN0ciI6Imxwd3N0ciIpfXZhciBobj0yLEFyPTMs'@; put 'dXM9MTIsaHM9ODEsYWw9WzgwLGhzXSx4bj17MTp7bjoiQ29kZVBhZ2UiLHQ6aG59LDI6e246IkNhdGVnb3J5Iix0OjgwfSwzOntuOiJQcmVzZW50YXRpb25Gb3JtYXQiLHQ6ODB9LDQ6e246IkJ5dGVDb3VudCIsdDpBcn0sNTp7bjoiTGluZUNvdW50Iix0OkFyfSw2OntuOiJQYXJhZ3JhcGhD'@; put 'b3VudCIsdDpBcn0sNzp7bjoiU2xpZGVDb3VudCIsdDpBcn0sODp7bjoiTm90ZUNvdW50Iix0OkFyfSw5OntuOiJIaWRkZW5Db3VudCIsdDpBcn0sMTA6e246Ik11bHRpbWVkaWFDbGlwQ291bnQiLHQ6QXJ9LDExOntuOiJTY2FsZUNyb3AiLHQ6MTF9LDEyOntuOiJIZWFkaW5nUGFpcnMiLHQ6'@; put 'NDEwOH0sMTM6e246IlRpdGxlc09mUGFydHMiLHQ6NDEyNn0sMTQ6e246Ik1hbmFnZXIiLHQ6ODB9LDE1OntuOiJDb21wYW55Iix0OjgwfSwxNjp7bjoiTGlua3NVcFRvRGF0ZSIsdDoxMX0sMTc6e246IkNoYXJhY3RlckNvdW50Iix0OkFyfSwxOTp7bjoiU2hhcmVkRG9jIix0OjExfSwyMjp7'@; put 'bjoiSHlwZXJsaW5rc0NoYW5nZWQiLHQ6MTF9LDIzOntuOiJBcHBWZXJzaW9uIix0OkFyLHA6InZlcnNpb24ifSwyNDp7bjoiRGlnU2lnIix0OjY1fSwyNjp7bjoiQ29udGVudFR5cGUiLHQ6ODB9LDI3OntuOiJDb250ZW50U3RhdHVzIix0OjgwfSwyODp7bjoiTGFuZ3VhZ2UiLHQ6ODB9LDI5'@; put 'OntuOiJWZXJzaW9uIix0OjgwfSwyNTU6e30sMjE0NzQ4MzY0ODp7bjoiTG9jYWxlIix0OjE5fSwyMTQ3NDgzNjUxOntuOiJCZWhhdmlvciIsdDoxOX0sMTkxOTA1NDQzNDp7fX0sZG49ezE6e246IkNvZGVQYWdlIix0OmhufSwyOntuOiJUaXRsZSIsdDo4MH0sMzp7bjoiU3ViamVjdCIsdDo4'@; put 'MH0sNDp7bjoiQXV0aG9yIix0OjgwfSw1OntuOiJLZXl3b3JkcyIsdDo4MH0sNjp7bjoiQ29tbWVudHMiLHQ6ODB9LDc6e246IlRlbXBsYXRlIix0OjgwfSw4OntuOiJMYXN0QXV0aG9yIix0OjgwfSw5OntuOiJSZXZOdW1iZXIiLHQ6ODB9LDEwOntuOiJFZGl0VGltZSIsdDo2NH0sMTE6e246'@; put 'Ikxhc3RQcmludGVkIix0OjY0fSwxMjp7bjoiQ3JlYXRlZERhdGUiLHQ6NjR9LDEzOntuOiJNb2RpZmllZERhdGUiLHQ6NjR9LDE0OntuOiJQYWdlQ291bnQiLHQ6QXJ9LDE1OntuOiJXb3JkQ291bnQiLHQ6QXJ9LDE2OntuOiJDaGFyQ291bnQiLHQ6QXJ9LDE3OntuOiJUaHVtYm5haWwiLHQ6'@; put 'NzF9LDE4OntuOiJBcHBsaWNhdGlvbiIsdDo4MH0sMTk6e246IkRvY1NlY3VyaXR5Iix0OkFyfSwyNTU6e30sMjE0NzQ4MzY0ODp7bjoiTG9jYWxlIix0OjE5fSwyMTQ3NDgzNjUxOntuOiJCZWhhdmlvciIsdDoxOX0sMTkxOTA1NDQzNDp7fX0seHM9ezE6IlVTIiwyOiJDQSIsMzoiIiw3OiJS'@; put 'VSIsMjA6IkVHIiwzMDoiR1IiLDMxOiJOTCIsMzI6IkJFIiwzMzoiRlIiLDM0OiJFUyIsMzY6IkhVIiwzOToiSVQiLDQxOiJDSCIsNDM6IkFUIiw0NDoiR0IiLDQ1OiJESyIsNDY6IlNFIiw0NzoiTk8iLDQ4OiJQTCIsNDk6IkRFIiw1MjoiTVgiLDU1OiJCUiIsNjE6IkFVIiw2NDoiTloiLDY2'@; put 'OiJUSCIsODE6IkpQIiw4MjoiS1IiLDg0OiJWTiIsODY6IkNOIiw5MDoiVFIiLDEwNToiSlMiLDIxMzoiRFoiLDIxNjoiTUEiLDIxODoiTFkiLDM1MToiUFQiLDM1NDoiSVMiLDM1ODoiRkkiLDQyMDoiQ1oiLDg4NjoiVFciLDk2MToiTEIiLDk2MjoiSk8iLDk2MzoiU1kiLDk2NDoiSVEiLDk2'@; put 'NToiS1ciLDk2NjoiU0EiLDk3MToiQUUiLDk3MjoiSUwiLDk3NDoiUUEiLDk4MToiSVIiLDY1NTM1OiJVUyJ9LG5sPVtudWxsLCJzb2xpZCIsIm1lZGl1bUdyYXkiLCJkYXJrR3JheSIsImxpZ2h0R3JheSIsImRhcmtIb3Jpem9udGFsIiwiZGFya1ZlcnRpY2FsIiwiZGFya0Rvd24iLCJkYXJr'@; put 'VXAiLCJkYXJrR3JpZCIsImRhcmtUcmVsbGlzIiwibGlnaHRIb3Jpem9udGFsIiwibGlnaHRWZXJ0aWNhbCIsImxpZ2h0RG93biIsImxpZ2h0VXAiLCJsaWdodEdyaWQiLCJsaWdodFRyZWxsaXMiLCJncmF5MTI1IiwiZ3JheTA2MjUiXTtmdW5jdGlvbiBpbChlKXtyZXR1cm4gZS5tYXAoZnVu'@; put 'Y3Rpb24odCl7cmV0dXJuW3Q+PjE2JjI1NSx0Pj44JjI1NSwyNTUmdF19KX12YXIgVnQ9TWUoaWwoWzAsMTY3NzcyMTUsMTY3MTE2ODAsNjUyODAsMjU1LDE2Nzc2OTYwLDE2NzExOTM1LDY1NTM1LDAsMTY3NzcyMTUsMTY3MTE2ODAsNjUyODAsMjU1LDE2Nzc2OTYwLDE2NzExOTM1LDY1NTM1'@; put 'LDgzODg2MDgsMzI3NjgsMTI4LDg0MjEzNzYsODM4ODczNiwzMjg5NiwxMjYzMjI1Niw4NDIxNTA0LDEwMDY2NDMxLDEwMDQwMTY2LDE2Nzc3MTY0LDEzNDM0ODc5LDY2ODQ3NzQsMTY3NDQ1NzYsMjYzMTYsMTM0MjE4MjMsMTI4LDE2NzExOTM1LDE2Nzc2OTYwLDY1NTM1LDgzODg3MzYsODM4'@; put 'ODYwOCwzMjg5NiwyNTUsNTI0NzksMTM0MzQ4NzksMTM0MzQ4MjgsMTY3NzcxMTMsMTAwNzk0ODcsMTY3NTEwNTIsMTM0MDg3NjcsMTY3NjQwNTcsMzM2ODcwMywzMzk0NzY0LDEwMDc5MjMyLDE2NzYzOTA0LDE2NzUwODQ4LDE2NzM3NzkyLDY3MTA5MzcsOTg2ODk1MCwxMzE1OCwzMzgxNjA2'@; put 'LDEzMDU2LDMzNTUzOTIsMTAwNDAwNjQsMTAwNDAxNjYsMzM1NTU0NSwzMzU1NDQzLDE2Nzc3MjE1LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF0pKSx4dD17MDoiI05VTEwhIiw3OiIjRElWLzAhIiwxNToiI1ZBTFVFISIsMjM6IiNSRUYhIiwyOToiI05BTUU/IiwzNjoiI05V'@; put 'TSEiLDQyOiIjTi9BIiw0MzoiI0dFVFRJTkdfREFUQSIsMjU1OiIjV1RGPyJ9LGRzPXsiI05VTEwhIjowLCIjRElWLzAhIjo3LCIjVkFMVUUhIjoxNSwiI1JFRiEiOjIzLCIjTkFNRT8iOjI5LCIjTlVNISI6MzYsIiNOL0EiOjQyLCIjR0VUVElOR19EQVRBIjo0MywiI1dURj8iOjI1NX0sdm49'@; put 'eyJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldC5tYWluK3htbCI6Indvcmtib29rcyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zaGVldC5tYWNyb0VuYWJsZWQubWFpbit4bWwiOiJ3b3JrYm9va3MiLCJhcHBsaWNh'@; put 'dGlvbi92bmQubXMtZXhjZWwuc2hlZXQuYmluYXJ5Lm1hY3JvRW5hYmxlZC5tYWluIjoid29ya2Jvb2tzIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmFkZGluLm1hY3JvRW5hYmxlZC5tYWluK3htbCI6Indvcmtib29rcyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZp'@; put 'Y2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnRlbXBsYXRlLm1haW4reG1sIjoid29ya2Jvb2tzIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwud29ya3NoZWV0K3htbCI6InNoZWV0cyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNl'@; put 'bC53b3Jrc2hlZXQiOiJzaGVldHMiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuYmluSW5kZXhXcyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jaGFydHNoZWV0K3htbCI6ImNoYXJ0cyIsImFwcGxpY2F0aW9u'@; put 'L3ZuZC5tcy1leGNlbC5jaGFydHNoZWV0IjoiY2hhcnRzIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLm1hY3Jvc2hlZXQreG1sIjoibWFjcm9zIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLm1hY3Jvc2hlZXQiOiJtYWNyb3MiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuaW50bG1h'@; put 'Y3Jvc2hlZXQiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmJpbkluZGV4TXMiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuZGlhbG9nc2hlZXQreG1sIjoiZGlhbG9ncyIsImFwcGxpY2F0aW9uL3Zu'@; put 'ZC5tcy1leGNlbC5kaWFsb2dzaGVldCI6ImRpYWxvZ3MiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGFyZWRTdHJpbmdzK3htbCI6InN0cnMiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc2hhcmVkU3RyaW5ncyI6InN0'@; put 'cnMiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zdHlsZXMreG1sIjoic3R5bGVzIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnN0eWxlcyI6InN0eWxlcyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1wYWNr'@; put 'YWdlLmNvcmUtcHJvcGVydGllcyt4bWwiOiJjb3JlcHJvcHMiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuY3VzdG9tLXByb3BlcnRpZXMreG1sIjoiY3VzdHByb3BzIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50'@; put 'LmV4dGVuZGVkLXByb3BlcnRpZXMreG1sIjoiZXh0cHJvcHMiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuY3VzdG9tWG1sUHJvcGVydGllcyt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNw'@; put 'cmVhZHNoZWV0bWwuY3VzdG9tUHJvcGVydHkiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY29tbWVudHMreG1sIjoiY29tbWVudHMiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuY29tbWVudHMiOiJjb21tZW50'@; put 'cyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC50aHJlYWRlZGNvbW1lbnRzK3htbCI6InRocmVhZGVkY29tbWVudHMiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwucGVyc29uK3htbCI6InBlb3BsZSIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5z'@; put 'cHJlYWRzaGVldG1sLnNoZWV0TWV0YWRhdGEreG1sIjoibWV0YWRhdGEiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc2hlZXRNZXRhZGF0YSI6Im1ldGFkYXRhIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnBpdm90VGFibGUiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxm'@; put 'b3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucGl2b3RUYWJsZSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5jaGFydCt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLW9mZmljZS5jaGFy'@; put 'dGNvbG9yc3R5bGUreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2UuY2hhcnRzdHlsZSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLW9mZmljZS5jaGFydGV4K3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuY2FsY0NoYWluIjoiY2FsY2No'@; put 'YWlucyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmNhbGNDaGFpbit4bWwiOiJjYWxjY2hhaW5zIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucHJpbnRlclNl'@; put 'dHRpbmdzIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2UuYWN0aXZlWCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNlLmFjdGl2ZVgreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5hdHRhY2hlZFRvb2xiYXJzIjoiVE9ETyIsImFwcGxpY2F0'@; put 'aW9uL3ZuZC5tcy1leGNlbC5jb25uZWN0aW9ucyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jb25uZWN0aW9ucyt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmV4dGVybmFsTGluayI6Imxp'@; put 'bmtzIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuZXh0ZXJuYWxMaW5rK3htbCI6ImxpbmtzIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnBpdm90Q2FjaGVEZWZpbml0aW9uIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5t'@; put 'cy1leGNlbC5waXZvdENhY2hlUmVjb3JkcyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5waXZvdENhY2hlRGVmaW5pdGlvbit4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmlj'@; put 'ZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucGl2b3RDYWNoZVJlY29yZHMreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5xdWVyeVRhYmxlIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnF1ZXJ5'@; put 'VGFibGUreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC51c2VyTmFtZXMiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnJldmlzaW9uSGVhZGVycyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwucmV2aXNpb25Mb2ciOiJUT0RPIiwiYXBwbGlj'@; put 'YXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucmV2aXNpb25IZWFkZXJzK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5yZXZpc2lvbkxvZyt4bWwiOiJUT0RP'@; put 'IiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudXNlck5hbWVzK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwudGFibGVTaW5nbGVDZWxscyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1h'@; put 'dHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC50YWJsZVNpbmdsZUNlbGxzK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc2xpY2VyIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zbGljZXJDYWNoZSI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQu'@; put 'bXMtZXhjZWwuc2xpY2VyK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc2xpY2VyQ2FjaGUreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC53c1NvcnRNYXAiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnRhYmxlIjoiVE9ETyIsImFw'@; put 'cGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnRhYmxlK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQudGhlbWUreG1sIjoidGhlbWVzIiwiYXBwbGljYXRpb24vdm5kLm9wZW54'@; put 'bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnRoZW1lT3ZlcnJpZGUreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5UaW1lbGluZSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLlRpbWVsaW5lQ2FjaGUreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3Zu'@; put 'ZC5tcy1vZmZpY2UudmJhUHJvamVjdCI6InZiYSIsImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2UudmJhUHJvamVjdFNpZ25hdHVyZSI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNlLnZvbGF0aWxlRGVwZW5kZW5jaWVzIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1s'@; put 'Zm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnZvbGF0aWxlRGVwZW5kZW5jaWVzK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuY29udHJvbHByb3BlcnRpZXMreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vk'@; put 'b2N1bWVudC5tb2RlbCtkYXRhIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5TdXJ2ZXkreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nK3htbCI6ImRyYXdpbmdzIiwiYXBwbGljYXRpb24vdm5kLm9wZW54'@; put 'bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5jaGFydHNoYXBlcyt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5kaWFncmFtQ29sb3JzK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3Blbnht'@; put 'bGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmRpYWdyYW1EYXRhK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmRpYWdyYW1MYXlvdXQreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1s'@; put 'Zm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuZGlhZ3JhbVN0eWxlK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQudm1sRHJhd2luZyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtcGFja2FnZS5y'@; put 'ZWxhdGlvbnNoaXBzK3htbCI6InJlbHMiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQub2xlT2JqZWN0IjoiVE9ETyIsImltYWdlL3BuZyI6IlRPRE8iLHNoZWV0OiJqcyJ9LGtlPXtXQjoiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29m'@; put 'ZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9vZmZpY2VEb2N1bWVudCIsU0hFRVQ6Imh0dHA6Ly9zaGVldGpzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvb2ZmaWNlRG9jdW1lbnQiLEhMSU5LOiJodHRwOi8vc2NoZW1hcy5vcGVu'@; put 'eG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL2h5cGVybGluayIsVk1MOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3ZtbERyYXdpbmciLFhQQVRIOiJodHRwOi8vc2NoZW1h'@; put 'cy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL2V4dGVybmFsTGlua1BhdGgiLFhNSVNTOiJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA2L3JlbGF0aW9uc2hpcHMveGxFeHRlcm5hbExpbmtQYXRoL3hsUGF0aE1pc3Np'@; put 'bmciLFhMSU5LOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL2V4dGVybmFsTGluayIsQ1hNTDoiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlw'@; put 'cy9jdXN0b21YbWwiLENYTUxQOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL2N1c3RvbVhtbFByb3BzIixDTU5UOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9y'@; put 'ZWxhdGlvbnNoaXBzL2NvbW1lbnRzIixDT1JFX1BST1BTOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L3JlbGF0aW9uc2hpcHMvbWV0YWRhdGEvY29yZS1wcm9wZXJ0aWVzIixFWFRfUFJPUFM6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9y'@; put 'Zy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvZXh0ZW5kZWQtcHJvcGVydGllcyIsQ1VTVF9QUk9QUzoiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9jdXN0b20tcHJvcGVydGllcyIsU1NUOiJodHRw'@; put 'Oi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3NoYXJlZFN0cmluZ3MiLFNUWToiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9zdHlsZXMiLFRIRU1F'@; put 'OiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3RoZW1lIixDSEFSVDoiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9jaGFydCIsQ0hBUlRF'@; put 'WDoiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvMjAxNC9yZWxhdGlvbnNoaXBzL2NoYXJ0RXgiLENTOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL2NoYXJ0c2hlZXQiLFdTOlsiaHR0cDovL3Nj'@; put 'aGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy93b3Jrc2hlZXQiLCJodHRwOi8vcHVybC5vY2xjLm9yZy9vb3htbC9vZmZpY2VEb2N1bWVudC9yZWxhdGlvbnNoaXBzL3dvcmtzaGVldCJdLERTOiJodHRwOi8vc2NoZW1hcy5vcGVueG1s'@; put 'Zm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL2RpYWxvZ3NoZWV0IixNUzoiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvMjAwNi9yZWxhdGlvbnNoaXBzL3hsTWFjcm9zaGVldCIsSU1HOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0'@; put 'cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL2ltYWdlIixEUkFXOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL2RyYXdpbmciLFhMTUVUQToiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1h'@; put 'dHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9zaGVldE1ldGFkYXRhIixUQ01OVDoiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvMjAxNy8xMC9yZWxhdGlvbnNoaXBzL3RocmVhZGVkQ29tbWVudCIsUEVPUExFOiJodHRwOi8vc2NoZW1hcy5taWNy'@; put 'b3NvZnQuY29tL29mZmljZS8yMDE3LzEwL3JlbGF0aW9uc2hpcHMvcGVyc29uIixWQkE6Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlLzIwMDYvcmVsYXRpb25zaGlwcy92YmFQcm9qZWN0In07ZnVuY3Rpb24gT2EoZSl7dmFyIHQ9ZS5sYXN0SW5kZXhPZigiLyIpO3JldHVy'@; put 'biBlLnNsaWNlKDAsdCsxKSsiX3JlbHMvIitlLnNsaWNlKHQrMSkrIi5yZWxzIn1mdW5jdGlvbiBJYShlLHQpe3ZhciByPXsiIWlkIjp7fX07aWYoIWUpcmV0dXJuIHI7Ii8iIT09dC5jaGFyQXQoMCkmJih0PSIvIit0KTt2YXIgYT17fTtyZXR1cm4oZS5tYXRjaCh2cil8fFtdKS5mb3JFYWNo'@; put 'KGZ1bmN0aW9uKG4pe3ZhciBpPW1lKG4pO2lmKCI8UmVsYXRpb25zaGlwIj09PWlbMF0pe3ZhciBzPXt9O3MuVHlwZT1pLlR5cGUscy5UYXJnZXQ9aS5UYXJnZXQscy5JZD1pLklkLGkuVGFyZ2V0TW9kZSYmKHMuVGFyZ2V0TW9kZT1pLlRhcmdldE1vZGUpO3ZhciBmPSJFeHRlcm5hbCI9PT1p'@; put 'LlRhcmdldE1vZGU/aS5UYXJnZXQ6U2EoaS5UYXJnZXQsdCk7cltmXT1zLGFbaS5JZF09c319KSxyWyIhaWQiXT1hLHJ9dmFyIGNsPSJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnNwcmVhZHNoZWV0IixWcj1bWyJjcDpjYXRlZ29yeSIsIkNhdGVnb3J5Il0sWyJjcDpjb250'@; put 'ZW50U3RhdHVzIiwiQ29udGVudFN0YXR1cyJdLFsiY3A6a2V5d29yZHMiLCJLZXl3b3JkcyJdLFsiY3A6bGFzdE1vZGlmaWVkQnkiLCJMYXN0QXV0aG9yIl0sWyJjcDpsYXN0UHJpbnRlZCIsIkxhc3RQcmludGVkIl0sWyJjcDpyZXZpc2lvbiIsIlJldk51bWJlciJdLFsiY3A6dmVyc2lvbiIs'@; put 'IlZlcnNpb24iXSxbImRjOmNyZWF0b3IiLCJBdXRob3IiXSxbImRjOmRlc2NyaXB0aW9uIiwiQ29tbWVudHMiXSxbImRjOmlkZW50aWZpZXIiLCJJZGVudGlmaWVyIl0sWyJkYzpsYW5ndWFnZSIsIkxhbmd1YWdlIl0sWyJkYzpzdWJqZWN0IiwiU3ViamVjdCJdLFsiZGM6dGl0bGUiLCJUaXRs'@; put 'ZSJdLFsiZGN0ZXJtczpjcmVhdGVkIiwiQ3JlYXRlZERhdGUiLCJkYXRlIl0sWyJkY3Rlcm1zOm1vZGlmaWVkIiwiTW9kaWZpZWREYXRlIiwiZGF0ZSJdXSxkbD1mdW5jdGlvbigpe2Zvcih2YXIgZT1uZXcgQXJyYXkoVnIubGVuZ3RoKSx0PTA7dDxWci5sZW5ndGg7Kyt0KXt2YXIgcj1Wclt0'@; put 'XSxhPSIoPzoiK3JbMF0uc2xpY2UoMCxyWzBdLmluZGV4T2YoIjoiKSkrIjopIityWzBdLnNsaWNlKHJbMF0uaW5kZXhPZigiOiIpKzEpO2VbdF09bmV3IFJlZ0V4cCgiPCIrYSsiW14+XSo+KFtcXHNcXFNdKj8pPC8iK2ErIj4iKX1yZXR1cm4gZX0oKTtmdW5jdGlvbiBtcyhlKXt2YXIgdD17'@; put 'fTtlPUJlKGUpO2Zvcih2YXIgcj0wO3I8VnIubGVuZ3RoOysrcil7dmFyIGE9VnJbcl0sbj1lLm1hdGNoKGRsW3JdKTtudWxsIT1uJiZuLmxlbmd0aD4wJiYodFthWzFdXT1JZShuWzFdKSksImRhdGUiPT09YVsyXSYmdFthWzFdXSYmKHRbYVsxXV09WGUodFthWzFdXSkpfXJldHVybiB0fXZh'@; put 'ciBYdD1bWyJBcHBsaWNhdGlvbiIsIkFwcGxpY2F0aW9uIiwic3RyaW5nIl0sWyJBcHBWZXJzaW9uIiwiQXBwVmVyc2lvbiIsInN0cmluZyJdLFsiQ29tcGFueSIsIkNvbXBhbnkiLCJzdHJpbmciXSxbIkRvY1NlY3VyaXR5IiwiRG9jU2VjdXJpdHkiLCJzdHJpbmciXSxbIk1hbmFnZXIiLCJN'@; put 'YW5hZ2VyIiwic3RyaW5nIl0sWyJIeXBlcmxpbmtzQ2hhbmdlZCIsIkh5cGVybGlua3NDaGFuZ2VkIiwiYm9vbCJdLFsiU2hhcmVkRG9jIiwiU2hhcmVkRG9jIiwiYm9vbCJdLFsiTGlua3NVcFRvRGF0ZSIsIkxpbmtzVXBUb0RhdGUiLCJib29sIl0sWyJTY2FsZUNyb3AiLCJTY2FsZUNyb3Ai'@; put 'LCJib29sIl0sWyJIZWFkaW5nUGFpcnMiLCJIZWFkaW5nUGFpcnMiLCJyYXciXSxbIlRpdGxlc09mUGFydHMiLCJUaXRsZXNPZlBhcnRzIiwicmF3Il1dO2Z1bmN0aW9uIHdzKGUsdCxyLGEpe3ZhciBuPVtdO2lmKCJzdHJpbmciPT10eXBlb2YgZSluPUhpKGUsYSk7ZWxzZSBmb3IodmFyIGk9'@; put 'MDtpPGUubGVuZ3RoOysraSluPW4uY29uY2F0KGVbaV0ubWFwKGZ1bmN0aW9uKGwpe3JldHVybnt2Omx9fSkpO3ZhciBzPSJzdHJpbmciPT10eXBlb2YgdD9IaSh0LGEpLm1hcChmdW5jdGlvbihsKXtyZXR1cm4gbC52fSk6dCxmPTAsYz0wO2lmKHMubGVuZ3RoPjApZm9yKHZhciBvPTA7byE9'@; put 'PW4ubGVuZ3RoO28rPTIpe3N3aXRjaChjPStuW28rMV0udixuW29dLnYpe2Nhc2UiV29ya3NoZWV0cyI6Y2FzZSJcdTVkZTVcdTRmNWNcdTg4NjgiOmNhc2UiXHUwNDFiXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDRiIjpjYXNlIlx1MDYyM1x1MDY0OFx1MDYzMVx1MDYyN1x1MDY0MiBcdTA2Mjdc'@; put 'dTA2NDRcdTA2MzlcdTA2NDVcdTA2NDQiOmNhc2UiXHUzMGVmXHUzMGZjXHUzMGFmXHUzMGI3XHUzMGZjXHUzMGM4IjpjYXNlIlx1MDVkMlx1MDVkY1x1MDVkOVx1MDVkNVx1MDVlMFx1MDVkNVx1MDVlYSBcdTA1ZTJcdTA1ZDFcdTA1ZDVcdTA1ZDNcdTA1ZDQiOmNhc2UiQXJiZWl0c2JsXHhl'@; put 'NHR0ZXIiOmNhc2UiXHhjN2FsXHUwMTMxXHUwMTVmbWEgU2F5ZmFsYXJcdTAxMzEiOmNhc2UiRmV1aWxsZXMgZGUgY2FsY3VsIjpjYXNlIkZvZ2xpIGRpIGxhdm9ybyI6Y2FzZSJGb2xoYXMgZGUgY1x4ZTFsY3VsbyI6Y2FzZSJQbGFuaWxoYXMiOmNhc2UiUmVnbmVhcmsiOmNhc2UiSG9qYXMg'@; put 'ZGUgY1x4ZTFsY3VsbyI6Y2FzZSJXZXJrYmxhZGVuIjpyLldvcmtzaGVldHM9YyxyLlNoZWV0TmFtZXM9cy5zbGljZShmLGYrYyk7YnJlYWs7Y2FzZSJOYW1lZCBSYW5nZXMiOmNhc2UiUmFuZ29zIGNvbiBub21icmUiOmNhc2UiXHU1NDBkXHU1MjRkXHU0ZWQ4XHUzMDRkXHU0ZTAwXHU4OWE3'@; put 'IjpjYXNlIkJlbmFubnRlIEJlcmVpY2hlIjpjYXNlIk5hdm5naXZuZSBvbXJceGU1ZGVyIjpyLk5hbWVkUmFuZ2VzPWMsci5EZWZpbmVkTmFtZXM9cy5zbGljZShmLGYrYyk7YnJlYWs7Y2FzZSJDaGFydHMiOmNhc2UiRGlhZ3JhbW1lIjpyLkNoYXJ0c2hlZXRzPWMsci5DaGFydE5hbWVzPXMu'@; put 'c2xpY2UoZixmK2MpfWYrPWN9fXZhciBfbixwbD0vPFtePl0rPltePF0qL2csZ249e1RpdGxlOiJUaXRsZSIsU3ViamVjdDoiU3ViamVjdCIsQXV0aG9yOiJBdXRob3IiLEtleXdvcmRzOiJLZXl3b3JkcyIsQ29tbWVudHM6IkRlc2NyaXB0aW9uIixMYXN0QXV0aG9yOiJMYXN0QXV0aG9yIixS'@; put 'ZXZOdW1iZXI6IlJldmlzaW9uIixBcHBsaWNhdGlvbjoiQXBwTmFtZSIsTGFzdFByaW50ZWQ6Ikxhc3RQcmludGVkIixDcmVhdGVkRGF0ZToiQ3JlYXRlZCIsTW9kaWZpZWREYXRlOiJMYXN0U2F2ZWQiLENhdGVnb3J5OiJDYXRlZ29yeSIsTWFuYWdlcjoiTWFuYWdlciIsQ29tcGFueToiQ29t'@; put 'cGFueSIsQXBwVmVyc2lvbjoiVmVyc2lvbiIsQ29udGVudFN0YXR1czoiQ29udGVudFN0YXR1cyIsSWRlbnRpZmllcjoiSWRlbnRpZmllciIsTGFuZ3VhZ2U6Ikxhbmd1YWdlIn07ZnVuY3Rpb24gZ2woZSx0LHIpe19ufHwoX249czAoZ24pKSxlW3Q9X25bdF18fHRdPXJ9ZnVuY3Rpb24gd24o'@; put 'ZSl7dmFyIHQ9ZS5yZWFkX3NoaWZ0KDQpLHI9ZS5yZWFkX3NoaWZ0KDQpO3JldHVybiBuZXcgRGF0ZSgxZTMqKHIvMWU3Kk1hdGgucG93KDIsMzIpK3QvMWU3LTExNjQ0NDczNjAwKSkudG9JU09TdHJpbmcoKS5yZXBsYWNlKC9cLjAwMC8sIiIpfWZ1bmN0aW9uIFRzKGUsdCxyKXt2YXIgYT1l'@; put 'Lmwsbj1lLnJlYWRfc2hpZnQoMCwibHBzdHItY3AiKTtpZihyKWZvcig7ZS5sLWEmMzspKytlLmw7cmV0dXJuIG59ZnVuY3Rpb24gU3MoZSx0LHIpe3ZhciBhPWUucmVhZF9zaGlmdCgwLCJscHdzdHIiKTtyZXR1cm4gciYmKGUubCs9NC0oYS5sZW5ndGgrMSYzKSYzKSxhfWZ1bmN0aW9uIEZz'@; put 'KGUsdCxyKXtyZXR1cm4gMzE9PT10P1NzKGUpOlRzKGUsMCxyKX1mdW5jdGlvbiBrbihlLHQscil7cmV0dXJuIEZzKGUsdCwhMT09PXI/MDo0KX1mdW5jdGlvbiBGbChlKXt2YXIgdD1lLmwscj1fMChlLGhzKTtyZXR1cm4gMD09ZVtlLmxdJiYwPT1lW2UubCsxXSYmZS5sLXQmMiYmKGUubCs9'@; put 'MiksW3IsXzAoZSxBcildfWZ1bmN0aW9uIHlzKGUsdCl7Zm9yKHZhciByPWUucmVhZF9zaGlmdCg0KSxhPXt9LG49MDtuIT1yOysrbil7dmFyIGk9ZS5yZWFkX3NoaWZ0KDQpLHM9ZS5yZWFkX3NoaWZ0KDQpO2FbaV09ZS5yZWFkX3NoaWZ0KHMsMTIwMD09PXQ/InV0ZjE2bGUiOiJ1dGY4Iiku'@; put 'cmVwbGFjZShkciwiIikucmVwbGFjZSh3YSwiISIpLDEyMDA9PT10JiZzJTImJihlLmwrPTIpfXJldHVybiAzJmUubCYmKGUubD1lLmw+PjM8PDIpLGF9ZnVuY3Rpb24gQXMoZSl7dmFyIHQ9ZS5yZWFkX3NoaWZ0KDQpLHI9ZS5zbGljZShlLmwsZS5sK3QpO3JldHVybiBlLmwrPXQsKDMmdCk+'@; put 'MCYmKGUubCs9NC0oMyZ0KSYzKSxyfWZ1bmN0aW9uIF8wKGUsdCxyKXt2YXIgbixhPWUucmVhZF9zaGlmdCgyKSxpPXJ8fHt9O2lmKGUubCs9Mix0IT09dXMmJmEhPT10JiYtMT09PWFsLmluZGV4T2YodCkmJig0MTI2IT0oNjU1MzQmdCl8fDQxMjYhPSg2NTUzNCZhKSkpdGhyb3cgbmV3IEVy'@; put 'cm9yKCJFeHBlY3RlZCB0eXBlICIrdCsiIHNhdyAiK2EpO3N3aXRjaCh0PT09dXM/YTp0KXtjYXNlIDI6cmV0dXJuIG49ZS5yZWFkX3NoaWZ0KDIsImkiKSxpLnJhd3x8KGUubCs9MiksbjtjYXNlIDM6cmV0dXJuIGUucmVhZF9zaGlmdCg0LCJpIik7Y2FzZSAxMTpyZXR1cm4gMCE9PWUucmVh'@; put 'ZF9zaGlmdCg0KTtjYXNlIDE5OnJldHVybiBlLnJlYWRfc2hpZnQoNCk7Y2FzZSAzMDpyZXR1cm4gVHMoZSwwLDQpLnJlcGxhY2UoZHIsIiIpO2Nhc2UgMzE6cmV0dXJuIFNzKGUpO2Nhc2UgNjQ6cmV0dXJuIHduKGUpO2Nhc2UgNjU6cmV0dXJuIEFzKGUpO2Nhc2UgNzE6cmV0dXJuIGZ1bmN0'@; put 'aW9uIEFsKGUpe3ZhciB0PXt9O3JldHVybiB0LlNpemU9ZS5yZWFkX3NoaWZ0KDQpLGUubCs9dC5TaXplKzMtKHQuU2l6ZS0xKSU0LHR9KGUpO2Nhc2UgODA6cmV0dXJuIGtuKGUsYSwhaS5yYXcpLnJlcGxhY2UoZHIsIiIpO2Nhc2UgODE6cmV0dXJuIGZ1bmN0aW9uIEVsKGUsdCl7aWYoIXQp'@; put 'dGhyb3cgbmV3IEVycm9yKCJWdFVuYWxpZ25lZFN0cmluZyBtdXN0IGhhdmUgcG9zaXRpdmUgbGVuZ3RoIik7cmV0dXJuIEZzKGUsdCwwKX0oZSxhKS5yZXBsYWNlKGRyLCIiKTtjYXNlIDQxMDg6cmV0dXJuIGZ1bmN0aW9uIHlsKGUpe2Zvcih2YXIgdD1lLnJlYWRfc2hpZnQoNCkscj1bXSxh'@; put 'PTA7YTx0LzI7KythKXIucHVzaChGbChlKSk7cmV0dXJuIHJ9KGUpO2Nhc2UgNDEyNjpjYXNlIDQxMjc6cmV0dXJuIDQxMjc9PWE/ZnVuY3Rpb24gVGwoZSl7Zm9yKHZhciB0PWUucmVhZF9zaGlmdCg0KSxyPVtdLGE9MDthIT10OysrYSl7dmFyIG49ZS5sO3JbYV09ZS5yZWFkX3NoaWZ0KDAs'@; put 'Imxwd3N0ciIpLnJlcGxhY2UoZHIsIiIpLGUubC1uJjImJihlLmwrPTIpfXJldHVybiByfShlKTpmdW5jdGlvbiBTbChlKXtmb3IodmFyIHQ9ZS5yZWFkX3NoaWZ0KDQpLHI9W10sYT0wO2EhPXQ7KythKXJbYV09ZS5yZWFkX3NoaWZ0KDAsImxwc3RyLWNwIikucmVwbGFjZShkciwiIik7cmV0'@; put 'dXJuIHJ9KGUpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlZFByb3BlcnR5VmFsdWUgdW5yZWNvZ25pemVkIHR5cGUgIit0KyIgIithKX19ZnVuY3Rpb24gRHMoZSx0KXt2YXIgcj1lLmwsYT1lLnJlYWRfc2hpZnQoNCksbj1lLnJlYWRfc2hpZnQoNCksaT1bXSxzPTAsZj0wLGM9LTEs'@; put 'bz17fTtmb3Iocz0wO3MhPW47KytzKXt2YXIgbD1lLnJlYWRfc2hpZnQoNCksaD1lLnJlYWRfc2hpZnQoNCk7aVtzXT1bbCxoK3JdfWkuc29ydChmdW5jdGlvbihULGcpe3JldHVybiBUWzFdLWdbMV19KTt2YXIgeD17fTtmb3Iocz0wO3MhPW47KytzKXtpZihlLmwhPT1pW3NdWzFdKXt2YXIg'@; put 'ZD0hMDtpZihzPjAmJnQpc3dpdGNoKHRbaVtzLTFdWzBdXS50KXtjYXNlIDI6ZS5sKzI9PT1pW3NdWzFdJiYoZS5sKz0yLGQ9ITEpO2JyZWFrO2Nhc2UgODA6Y2FzZSA0MTA4OmUubDw9aVtzXVsxXSYmKGUubD1pW3NdWzFdLGQ9ITEpfWlmKCghdHx8MD09cykmJmUubDw9aVtzXVsxXSYmKGQ9'@; put 'ITEsZS5sPWlbc11bMV0pLGQpdGhyb3cgbmV3IEVycm9yKCJSZWFkIEVycm9yOiBFeHBlY3RlZCBhZGRyZXNzICIraVtzXVsxXSsiIGF0ICIrZS5sKyIgOiIrcyl9aWYodCl7dmFyIHY9dFtpW3NdWzBdXTtpZih4W3Yubl09XzAoZSx2LnQse3JhdzohMH0pLCJ2ZXJzaW9uIj09PXYucCYmKHhb'@; put 'di5uXT1TdHJpbmcoeFt2Lm5dPj4xNikrIi4iKygiMDAwMCIrU3RyaW5nKDY1NTM1Jnhbdi5uXSkpLnNsaWNlKC00KSksIkNvZGVQYWdlIj09di5uKXN3aXRjaCh4W3Yubl0pe2Nhc2UgMDp4W3Yubl09MTI1MjtjYXNlIDg3NDpjYXNlIDkzMjpjYXNlIDkzNjpjYXNlIDk0OTpjYXNlIDk1MDpj'@; put 'YXNlIDEyNTA6Y2FzZSAxMjUxOmNhc2UgMTI1MzpjYXNlIDEyNTQ6Y2FzZSAxMjU1OmNhc2UgMTI1NjpjYXNlIDEyNTc6Y2FzZSAxMjU4OmNhc2UgMWU0OmNhc2UgMTIwMDpjYXNlIDEyMDE6Y2FzZSAxMjUyOmNhc2UgNjVlMzpjYXNlLTUzNjpjYXNlIDY1MDAxOmNhc2UtNTM1Ok1yKGY9eFt2'@; put 'Lm5dPj4+MCY2NTUzNSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIENvZGVQYWdlOiAiK3hbdi5uXSl9fWVsc2UgaWYoMT09PWlbc11bMF0pe2lmKGY9eC5Db2RlUGFnZT1fMChlLGhuKSxNcihmKSwtMSE9PWMpe3ZhciB1PWUubDtlLmw9aVtjXVsxXSxvPXlz'@; put 'KGUsZiksZS5sPXV9fWVsc2UgaWYoMD09PWlbc11bMF0pe2lmKDA9PT1mKXtjPXMsZS5sPWlbcysxXVsxXTtjb250aW51ZX1vPXlzKGUsZil9ZWxzZXt2YXIgayxwPW9baVtzXVswXV07c3dpdGNoKGVbZS5sXSl7Y2FzZSA2NTplLmwrPTQsaz1BcyhlKTticmVhaztjYXNlIDMwOmNhc2UgMzE6'@; put 'ZS5sKz00LGs9a24oZSxlW2UubC00XSkucmVwbGFjZSgvXHUwMDAwKyQvLCIiKTticmVhaztjYXNlIDM6ZS5sKz00LGs9ZS5yZWFkX3NoaWZ0KDQsImkiKTticmVhaztjYXNlIDE5OmUubCs9NCxrPWUucmVhZF9zaGlmdCg0KTticmVhaztjYXNlIDU6ZS5sKz00LGs9ZS5yZWFkX3NoaWZ0KDgs'@; put 'ImYiKTticmVhaztjYXNlIDExOmUubCs9NCxrPUplKGUsNCk7YnJlYWs7Y2FzZSA2NDplLmwrPTQsaz1YZSh3bihlKSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoInVucGFyc2VkIHZhbHVlOiAiK2VbZS5sXSl9eFtwXT1rfX1yZXR1cm4gZS5sPXIrYSx4fWZ1bmN0aW9uIFJzKGUs'@; put 'dCxyKXt2YXIgYT1lLmNvbnRlbnQ7aWYoIWEpcmV0dXJue307aHIoYSwwKTt2YXIgbixpLHMsZixjPTA7YS5jaGsoImZlZmYiLCJCeXRlIE9yZGVyOiAiKSxhLnJlYWRfc2hpZnQoMik7dmFyIG89YS5yZWFkX3NoaWZ0KDQpLGw9YS5yZWFkX3NoaWZ0KDE2KTtpZihsIT09dmUudXRpbHMuY29u'@; put 'c3RzLkhFQURFUl9DTFNJRCYmbCE9PXIpdGhyb3cgbmV3IEVycm9yKCJCYWQgUHJvcGVydHlTZXQgQ0xTSUQgIitsKTtpZigxIT09KG49YS5yZWFkX3NoaWZ0KDQpKSYmMiE9PW4pdGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgI1NldHM6ICIrbik7aWYoaT1hLnJlYWRfc2hpZnQoMTYp'@; put 'LGY9YS5yZWFkX3NoaWZ0KDQpLDE9PT1uJiZmIT09YS5sKXRocm93IG5ldyBFcnJvcigiTGVuZ3RoIG1pc21hdGNoOiAiK2YrIiAhPT0gIithLmwpOzI9PT1uJiYocz1hLnJlYWRfc2hpZnQoMTYpLGM9YS5yZWFkX3NoaWZ0KDQpKTt2YXIgdixoPURzKGEsdCkseD17U3lzdGVtSWRlbnRpZmll'@; put 'cjpvfTtmb3IodmFyIGQgaW4gaCl4W2RdPWhbZF07aWYoeC5GTVRJRD1pLDE9PT1uKXJldHVybiB4O2lmKGMtYS5sPT0yJiYoYS5sKz0yKSxhLmwhPT1jKXRocm93IG5ldyBFcnJvcigiTGVuZ3RoIG1pc21hdGNoIDI6ICIrYS5sKyIgIT09ICIrYyk7dHJ5e3Y9RHMoYSxudWxsKX1jYXRjaHt9'@; put 'Zm9yKGQgaW4gdil4W2RdPXZbZF07cmV0dXJuIHguRk1USUQ9W2ksc10seH1mdW5jdGlvbiB5dChlLHQpe3JldHVybiBlLnJlYWRfc2hpZnQodCksbnVsbH1mdW5jdGlvbiBKZShlLHQpe3JldHVybiAxPT09ZS5yZWFkX3NoaWZ0KHQpfWZ1bmN0aW9uIHRyKGUpe3JldHVybiBlLnJlYWRfc2hp'@; put 'ZnQoMiwidSIpfWZ1bmN0aW9uIGJzKGUsdCl7cmV0dXJuIGZ1bmN0aW9uIE9sKGUsdCxyKXtmb3IodmFyIGE9W10sbj1lLmwrdDtlLmw8bjspYS5wdXNoKHIoZSxuLWUubCkpO2lmKG4hPT1lLmwpdGhyb3cgbmV3IEVycm9yKCJTbHVycCBlcnJvciIpO3JldHVybiBhfShlLHQsdHIpfWZ1bmN0'@; put 'aW9uIFJhKGUsdCxyKXt2YXIgYT1lLnJlYWRfc2hpZnQociYmci5iaWZmPj0xMj8yOjEpLG49InNiY3MtY29udCIsaT1EcjtyJiZyLmJpZmY+PTgmJihEcj0xMjAwKSxyJiY4IT1yLmJpZmY/MTI9PXIuYmlmZiYmKG49IndzdHIiKTplLnJlYWRfc2hpZnQoMSkmJihuPSJkYmNzLWNvbnQiKSxy'@; put 'LmJpZmY+PTImJnIuYmlmZjw9NSYmKG49ImNwc3RyIik7dmFyIGY9YT9lLnJlYWRfc2hpZnQoYSxuKToiIjtyZXR1cm4gRHI9aSxmfWZ1bmN0aW9uIFJsKGUpe3ZhciB0PURyO0RyPTEyMDA7dmFyIGMscj1lLnJlYWRfc2hpZnQoMiksYT1lLnJlYWRfc2hpZnQoMSksbj00JmEsaT04JmEscz0x'@; put 'KygxJmEpLGY9MCxvPXt9O2kmJihmPWUucmVhZF9zaGlmdCgyKSksbiYmKGM9ZS5yZWFkX3NoaWZ0KDQpKTt2YXIgaD0wPT09cj8iIjplLnJlYWRfc2hpZnQociwyPT1zPyJkYmNzLWNvbnQiOiJzYmNzLWNvbnQiKTtyZXR1cm4gaSYmKGUubCs9NCpmKSxuJiYoZS5sKz1jKSxvLnQ9aCxpfHwo'@; put 'by5yYXc9Ijx0PiIrby50KyI8L3Q+IixvLnI9by50KSxEcj10LG99ZnVuY3Rpb24gR3QoZSx0LHIpe2lmKHIpe2lmKHIuYmlmZj49MiYmci5iaWZmPD01KXJldHVybiBlLnJlYWRfc2hpZnQodCwiY3BzdHIiKTtpZihyLmJpZmY+PTEyKXJldHVybiBlLnJlYWRfc2hpZnQodCwiZGJjcy1jb250'@; put 'Iil9dmFyIG49ZS5yZWFkX3NoaWZ0KDEpO3JldHVybiBlLnJlYWRfc2hpZnQodCwwPT09bj8ic2Jjcy1jb250IjoiZGJjcy1jb250Iil9ZnVuY3Rpb24gTmEoZSx0LHIpe3ZhciBhPWUucmVhZF9zaGlmdChyJiYyPT1yLmJpZmY/MToyKTtyZXR1cm4gMD09PWE/KGUubCsrLCIiKTpHdChlLGEs'@; put 'cil9ZnVuY3Rpb24genQoZSx0LHIpe2lmKHIuYmlmZj41KXJldHVybiBOYShlLDAscik7dmFyIGE9ZS5yZWFkX3NoaWZ0KDEpO3JldHVybiAwPT09YT8oZS5sKyssIiIpOmUucmVhZF9zaGlmdChhLHIuYmlmZjw9NHx8IWUubGVucz8iY3BzdHIiOiJzYmNzLWNvbnQiKX1mdW5jdGlvbiB3MChl'@; put 'KXt2YXIgdD1lLnJlYWRfc2hpZnQoNCk7cmV0dXJuIHQ+MD9lLnJlYWRfc2hpZnQodCwidXRmMTZsZSIpLnJlcGxhY2UoZHIsIiIpOiIifWZ1bmN0aW9uIE1zKGUpe3JldHVybltlLnJlYWRfc2hpZnQoMSksZS5yZWFkX3NoaWZ0KDEpLGUucmVhZF9zaGlmdCgxKSxlLnJlYWRfc2hpZnQoMSld'@; put 'fWZ1bmN0aW9uIFVzKGUsdCl7dmFyIHI9TXMoZSk7cmV0dXJuIHJbM109MCxyfWZ1bmN0aW9uIG50KGUpe3JldHVybntyOmUucmVhZF9zaGlmdCgyKSxjOmUucmVhZF9zaGlmdCgyKSxpeGZlOmUucmVhZF9zaGlmdCgyKX19ZnVuY3Rpb24gVmwoZSx0LHIpe3ZhciBhPXIuYmlmZj44PzQ6Mjty'@; put 'ZXR1cm5bZS5yZWFkX3NoaWZ0KGEpLGUucmVhZF9zaGlmdChhLCJpIiksZS5yZWFkX3NoaWZ0KGEsImkiKV19ZnVuY3Rpb24gV3MoZSl7cmV0dXJuW2UucmVhZF9zaGlmdCgyKSx1bihlKV19ZnVuY3Rpb24gazAoZSl7dmFyIHQ9ZS5yZWFkX3NoaWZ0KDIpLHI9ZS5yZWFkX3NoaWZ0KDIpO3Jl'@; put 'dHVybntzOntjOmUucmVhZF9zaGlmdCgyKSxyOnR9LGU6e2M6ZS5yZWFkX3NoaWZ0KDIpLHJ9fX1mdW5jdGlvbiBWcyhlKXt2YXIgdD1lLnJlYWRfc2hpZnQoMikscj1lLnJlYWRfc2hpZnQoMik7cmV0dXJue3M6e2M6ZS5yZWFkX3NoaWZ0KDEpLHI6dH0sZTp7YzplLnJlYWRfc2hpZnQoMSks'@; put 'cn19fXZhciBHbD1WcztmdW5jdGlvbiBYcyhlKXtlLmwrPTQ7dmFyIHQ9ZS5yZWFkX3NoaWZ0KDIpLHI9ZS5yZWFkX3NoaWZ0KDIpLGE9ZS5yZWFkX3NoaWZ0KDIpO3JldHVybiBlLmwrPTEyLFtyLHQsYV19ZnVuY3Rpb24gX3IoZSl7ZS5sKz0yLGUubCs9ZS5yZWFkX3NoaWZ0KDIpfXZhciBq'@; put 'bD17MDpfciw0Ol9yLDU6X3IsNjpfciw3OmZ1bmN0aW9uICRsKGUpe3JldHVybiBlLmwrPTQsZS5jZj1lLnJlYWRfc2hpZnQoMikse319LDg6X3IsOTpfciwxMDpfciwxMTpfciwxMjpfciwxMzpmdW5jdGlvbiB6bChlKXt2YXIgdD17fTtyZXR1cm4gZS5sKz00LGUubCs9MTYsdC5mU2hhcmVk'@; put 'Tm90ZT1lLnJlYWRfc2hpZnQoMiksZS5sKz00LHR9LDE0Ol9yLDE1Ol9yLDE2Ol9yLDE3Ol9yLDE4Ol9yLDE5Ol9yLDIwOl9yLDIxOlhzfTtmdW5jdGlvbiBFMChlLHQpe3ZhciByPXtCSUZGVmVyOjAsZHQ6MH07c3dpdGNoKHIuQklGRlZlcj1lLnJlYWRfc2hpZnQoMiksKHQtPTIpPj0yJiYo'@; put 'ci5kdD1lLnJlYWRfc2hpZnQoMiksZS5sLT0yKSxyLkJJRkZWZXIpe2Nhc2UgMTUzNjpjYXNlIDEyODA6Y2FzZSAxMDI0OmNhc2UgNzY4OmNhc2UgNTEyOmNhc2UgMjpjYXNlIDc6YnJlYWs7ZGVmYXVsdDppZih0PjYpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIEJJRkYgVmVyICIrci5C'@; put 'SUZGVmVyKX1yZXR1cm4gZS5yZWFkX3NoaWZ0KHQpLHJ9ZnVuY3Rpb24gR3MoZSx0LHIpe3ZhciBhPTA7ciYmMj09ci5iaWZmfHwoYT1lLnJlYWRfc2hpZnQoMikpO3ZhciBuPWUucmVhZF9zaGlmdCgyKTtyZXR1cm4gciYmMj09ci5iaWZmJiYoYT0xLShuPj4xNSksbiY9MzI3NjcpLFt7VW5z'@; put 'eW5jZWQ6MSZhLER5WmVybzooMiZhKT4+MSxFeEFzYzooNCZhKT4+MixFeERzYzooOCZhKT4+M30sbl19dmFyIHd1PXp0O2Z1bmN0aW9uIHpzKGUsdCxyKXt2YXIgYT1lLmwrdCxuPTghPXIuYmlmZiYmci5iaWZmPzI6NCxpPWUucmVhZF9zaGlmdChuKSxzPWUucmVhZF9zaGlmdChuKSxmPWUu'@; put 'cmVhZF9zaGlmdCgyKSxjPWUucmVhZF9zaGlmdCgyKTtyZXR1cm4gZS5sPWEse3M6e3I6aSxjOmZ9LGU6e3I6cyxjfX19ZnVuY3Rpb24ganMoZSx0LHIpe3ZhciBhPW50KGUpOygyPT1yLmJpZmZ8fDk9PXQpJiYrK2UubDt2YXIgbj1mdW5jdGlvbiBJbChlKXt2YXIgdD1lLnJlYWRfc2hpZnQo'@; put 'MSk7cmV0dXJuIDE9PT1lLnJlYWRfc2hpZnQoMSk/dDoxPT09dH0oZSk7cmV0dXJuIGEudmFsPW4sYS50PSEwPT09bnx8ITE9PT1uPyJiIjoiZSIsYX12YXIgS3M9ZnVuY3Rpb24gSGwoZSx0LHIpe3JldHVybiAwPT09dD8iIjp6dChlLDAscil9O2Z1bmN0aW9uIFlzKGUsdCxyKXt2YXIgbixh'@; put 'PWUucmVhZF9zaGlmdCgyKSxpPXtmQnVpbHRJbjoxJmEsZldhbnRBZHZpc2U6YT4+PjEmMSxmV2FudFBpY3Q6YT4+PjImMSxmT2xlOmE+Pj4zJjEsZk9sZUxpbms6YT4+PjQmMSxjZjphPj4+NSYxMDIzLGZJY29uOmE+Pj4xNSYxfTtyZXR1cm4gMTQ4NDk9PT1yLnNiY2NoJiYobj1mdW5jdGlv'@; put 'biBYbChlLHQscil7ZS5sKz00O3ZhciBhPWUubCsodC09NCksbj1SYShlLDAsciksaT1lLnJlYWRfc2hpZnQoMik7aWYoaSE9PShhLT1lLmwpKXRocm93IG5ldyBFcnJvcigiTWFsZm9ybWVkIEFkZGluVWRmOiBwYWRkaW5nID0gIithKyIgIT0gIitpKTtyZXR1cm4gZS5sKz1pLG59KGUsdC0y'@; put 'LHIpKSxpLmJvZHk9bnx8ZS5yZWFkX3NoaWZ0KHQtMiksInN0cmluZyI9PXR5cGVvZiBuJiYoaS5OYW1lPW4pLGl9dmFyIE51PVsiX3hsbm0uQ29uc29saWRhdGVfQXJlYSIsIl94bG5tLkF1dG9fT3BlbiIsIl94bG5tLkF1dG9fQ2xvc2UiLCJfeGxubS5FeHRyYWN0IiwiX3hsbm0uRGF0YWJh'@; put 'c2UiLCJfeGxubS5Dcml0ZXJpYSIsIl94bG5tLlByaW50X0FyZWEiLCJfeGxubS5QcmludF9UaXRsZXMiLCJfeGxubS5SZWNvcmRlciIsIl94bG5tLkRhdGFfRm9ybSIsIl94bG5tLkF1dG9fQWN0aXZhdGUiLCJfeGxubS5BdXRvX0RlYWN0aXZhdGUiLCJfeGxubS5TaGVldF9UaXRsZSIsIl94'@; put 'bG5tLl9GaWx0ZXJEYXRhYmFzZSJdO2Z1bmN0aW9uIEpzKGUsdCxyKXt2YXIgYT1lLmwrdCxuPWUucmVhZF9zaGlmdCgyKSxpPWUucmVhZF9zaGlmdCgxKSxzPWUucmVhZF9zaGlmdCgxKSxmPWUucmVhZF9zaGlmdChyJiYyPT1yLmJpZmY/MToyKSxjPTA7KCFyfHxyLmJpZmY+PTUpJiYoNSE9'@; put 'ci5iaWZmJiYoZS5sKz0yKSxjPWUucmVhZF9zaGlmdCgyKSw1PT1yLmJpZmYmJihlLmwrPTIpLGUubCs9NCk7dmFyIG89R3QoZSxzLHIpOzMyJm4mJihvPU51W28uY2hhckNvZGVBdCgwKV0pO3ZhciBsPWEtZS5sO3ImJjI9PXIuYmlmZiYmLS1sO3ZhciBoPWEhPWUubCYmMCE9PWYmJmw+MD9m'@; put 'dW5jdGlvbiBLZChlLHQscixhKXt2YXIgcyxuPWUubCt0LGk9SGEoZSxhLHIpO3JldHVybiBuIT09ZS5sJiYocz1XYShlLG4tZS5sLGkscikpLFtpLHNdfShlLGwscixmKTpbXTtyZXR1cm57Y2hLZXk6aSxOYW1lOm8saXRhYjpjLHJnY2U6aH19ZnVuY3Rpb24gcXMoZSx0LHIpe2lmKHIuYmlm'@; put 'Zjw4KXJldHVybiBmdW5jdGlvbiBidShlLHQscil7Mz09ZVtlLmwrMV0mJmVbZS5sXSsrO3ZhciBhPVJhKGUsMCxyKTtyZXR1cm4gMz09YS5jaGFyQ29kZUF0KDApP2Euc2xpY2UoMSk6YX0oZSwwLHIpO2Zvcih2YXIgYT1bXSxuPWUubCt0LGk9ZS5yZWFkX3NoaWZ0KHIuYmlmZj44PzQ6Mik7'@; put 'MCE9aS0tOylhLnB1c2goVmwoZSwwLHIpKTtpZihlLmwhPW4pdGhyb3cgbmV3IEVycm9yKCJCYWQgRXh0ZXJuU2hlZXQ6ICIrZS5sKyIgIT0gIituKTtyZXR1cm4gYX1mdW5jdGlvbiBacyhlLHQscil7dmFyIGE9R2woZSw2KTtzd2l0Y2goci5iaWZmKXtjYXNlIDI6ZS5sKyssdC09NzticmVh'@; put 'aztjYXNlIDM6Y2FzZSA0OmUubCs9Mix0LT04O2JyZWFrO2RlZmF1bHQ6ZS5sKz02LHQtPTEyfXJldHVyblthLCRkKGUsdCxyKV19dmFyIFh1PXs4OmZ1bmN0aW9uKGUsdCl7dmFyIHI9ZS5sK3Q7ZS5sKz0xMDt2YXIgYT1lLnJlYWRfc2hpZnQoMik7ZS5sKz00LGUubCs9MixlLmwrPTIsZS5s'@; put 'Kz0yLGUubCs9NDt2YXIgbj1lLnJlYWRfc2hpZnQoMSk7cmV0dXJuIGUubCs9bixlLmw9cix7Zm10OmF9fX07ZnVuY3Rpb24gUXMoZSx0LHIpe2lmKCFyLmNlbGxTdHlsZXMpcmV0dXJuIHByKGUsdCk7dmFyIGE9ciYmci5iaWZmPj0xMj80OjIsbj1lLnJlYWRfc2hpZnQoYSksaT1lLnJlYWRf'@; put 'c2hpZnQoYSkscz1lLnJlYWRfc2hpZnQoYSksZj1lLnJlYWRfc2hpZnQoYSksYz1lLnJlYWRfc2hpZnQoMik7Mj09YSYmKGUubCs9Mik7dmFyIG89e3M6bixlOmksdzpzLGl4ZmU6ZixmbGFnczpjfTtyZXR1cm4oci5iaWZmPj01fHwhci5iaWZmKSYmKG8ubGV2ZWw9Yz4+OCY3KSxvfXZhciBp'@; put 'aD1udCxzaD1icyxmaD1OYSxtaD1bMiwzLDQ4LDQ5LDEzMSwxMzksMTQwLDI0NV0sVG49ZnVuY3Rpb24oKXt2YXIgZT17MTo0MzcsMjo4NTAsMzoxMjUyLDQ6MWU0LDEwMDo4NTIsMTAxOjg2NiwxMDI6ODY1LDEwMzo4NjEsMTA0Ojg5NSwxMDU6NjIwLDEwNjo3MzcsMTA3Ojg1NywxMjA6OTUw'@; put 'LDEyMTo5NDksMTIyOjkzNiwxMjM6OTMyLDEyNDo4NzQsMTI1OjEyNTUsMTI2OjEyNTYsMTUwOjEwMDA3LDE1MToxMDAyOSwxNTI6MTAwMDYsMjAwOjEyNTAsMjAxOjEyNTEsMjAyOjEyNTQsMjAzOjEyNTMsMDoyMDEyNyw4Ojg2NSw5OjQzNywxMDo4NTAsMTE6NDM3LDEzOjQzNywxNDo4NTAs'@; put 'MTU6NDM3LDE2Ojg1MCwxNzo0MzcsMTg6ODUwLDE5OjkzMiwyMDo4NTAsMjE6NDM3LDIyOjg1MCwyMzo4NjUsMjQ6NDM3LDI1OjQzNywyNjo4NTAsMjc6NDM3LDI4Ojg2MywyOTo4NTAsMzE6ODUyLDM0Ojg1MiwzNTo4NTIsMzY6ODYwLDM3Ojg1MCwzODo4NjYsNTU6ODUwLDY0Ojg1Miw3Nzo5'@; put 'MzYsNzg6OTQ5LDc5Ojk1MCw4MDo4NzQsODc6MTI1Miw4ODoxMjUyLDg5OjEyNTIsMTA4Ojg2MywxMzQ6NzM3LDEzNTo4NTIsMTM2Ojg1NywyMDQ6MTI1NywyNTU6MTY5Njl9LHQ9czAoezE6NDM3LDI6ODUwLDM6MTI1Miw0OjFlNCwxMDA6ODUyLDEwMTo4NjYsMTAyOjg2NSwxMDM6ODYxLDEw'@; put 'NDo4OTUsMTA1OjYyMCwxMDY6NzM3LDEwNzo4NTcsMTIwOjk1MCwxMjE6OTQ5LDEyMjo5MzYsMTIzOjkzMiwxMjQ6ODc0LDEyNToxMjU1LDEyNjoxMjU2LDE1MDoxMDAwNywxNTE6MTAwMjksMTUyOjEwMDA2LDIwMDoxMjUwLDIwMToxMjUxLDIwMjoxMjU0LDIwMzoxMjUzLDA6MjAxMjd9KTtm'@; put 'dW5jdGlvbiBhKGYsYyl7dmFyIG89Y3x8e307by5kYXRlTkZ8fChvLmRhdGVORj0ieXl5eW1tZGQiKTt2YXIgbD1zYShmdW5jdGlvbiByKGYsYyl7dmFyIG89W10sbD1fdCgxKTtzd2l0Y2goYy50eXBlKXtjYXNlImJhc2U2NCI6bD1JcihPcihmKSk7YnJlYWs7Y2FzZSJiaW5hcnkiOmw9SXIo'@; put 'Zik7YnJlYWs7Y2FzZSJidWZmZXIiOmNhc2UiYXJyYXkiOmw9Zn1ocihsLDApO3ZhciBoPWwucmVhZF9zaGlmdCgxKSx4PSEhKDEzNiZoKSxkPSExLHY9ITE7c3dpdGNoKGgpe2Nhc2UgMjpjYXNlIDM6Y2FzZSAxMzE6Y2FzZSAxMzk6Y2FzZSAyNDU6YnJlYWs7Y2FzZSA0ODpjYXNlIDQ5OmQ9'@; put 'ITAseD0hMDticmVhaztjYXNlIDE0MDp2PSEwO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJEQkYgVW5zdXBwb3J0ZWQgVmVyc2lvbjogIitoLnRvU3RyaW5nKDE2KSl9dmFyIHU9MCxwPTUyMTsyPT1oJiYodT1sLnJlYWRfc2hpZnQoMikpLGwubCs9MywyIT1oJiYodT1sLnJlYWRf'@; put 'c2hpZnQoNCkpLHU+MTA0ODU3NiYmKHU9MWU2KSwyIT1oJiYocD1sLnJlYWRfc2hpZnQoMikpO3ZhciBrPWwucmVhZF9zaGlmdCgyKSxUPWMuY29kZXBhZ2V8fDEyNTI7MiE9aCYmKGwubCs9MTYsbC5yZWFkX3NoaWZ0KDEpLDAhPT1sW2wubF0mJihUPWVbbFtsLmxdXSksbC5sKz0xLGwubCs9'@; put 'MiksdiYmKGwubCs9MzYpO2Zvcih2YXIgZz1bXSxOPXt9LE09TWF0aC5taW4obC5sZW5ndGgsMj09aD81MjE6cC0xMC0oZD8yNjQ6MCkpLEk9dj8zMjoxMTtsLmw8TSYmMTMhPWxbbC5sXTspc3dpdGNoKE49e30sTi5uYW1lPU9lLnV0aWxzLmRlY29kZShULGwuc2xpY2UobC5sLGwubCtJKSku'@; put 'cmVwbGFjZSgvW1x1MDAwMFxyXG5dLiokL2csIiIpLGwubCs9SSxOLnR5cGU9U3RyaW5nLmZyb21DaGFyQ29kZShsLnJlYWRfc2hpZnQoMSkpLDIhPWgmJiF2JiYoTi5vZmZzZXQ9bC5yZWFkX3NoaWZ0KDQpKSxOLmxlbj1sLnJlYWRfc2hpZnQoMSksMj09aCYmKE4ub2Zmc2V0PWwucmVhZF9z'@; put 'aGlmdCgyKSksTi5kZWM9bC5yZWFkX3NoaWZ0KDEpLE4ubmFtZS5sZW5ndGgmJmcucHVzaChOKSwyIT1oJiYobC5sKz12PzEzOjE0KSxOLnR5cGUpe2Nhc2UiQiI6KCFkfHw4IT1OLmxlbikmJmMuV1RGJiZjb25zb2xlLmxvZygiU2tpcHBpbmcgIitOLm5hbWUrIjoiK04udHlwZSk7YnJlYWs7'@; put 'Y2FzZSJHIjpjYXNlIlAiOmMuV1RGJiZjb25zb2xlLmxvZygiU2tpcHBpbmcgIitOLm5hbWUrIjoiK04udHlwZSk7YnJlYWs7Y2FzZSIrIjpjYXNlIjAiOmNhc2UiQCI6Y2FzZSJDIjpjYXNlIkQiOmNhc2UiRiI6Y2FzZSJJIjpjYXNlIkwiOmNhc2UiTSI6Y2FzZSJOIjpjYXNlIk8iOmNhc2Ui'@; put 'VCI6Y2FzZSJZIjpicmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5rbm93biBGaWVsZCBUeXBlOiAiK04udHlwZSl9aWYoMTMhPT1sW2wubF0mJihsLmw9cC0xKSwxMyE9PWwucmVhZF9zaGlmdCgxKSl0aHJvdyBuZXcgRXJyb3IoIkRCRiBUZXJtaW5hdG9yIG5vdCBmb3VuZCAiK2wu'@; put 'bCsiICIrbFtsLmxdKTtsLmw9cDt2YXIgeT0wLFA9MDtmb3Iob1swXT1bXSxQPTA7UCE9Zy5sZW5ndGg7KytQKW9bMF1bUF09Z1tQXS5uYW1lO2Zvcig7dS0tID4wOylpZig0MiE9PWxbbC5sXSlmb3IoKytsLmwsb1srK3ldPVtdLFA9MCxQPTA7UCE9Zy5sZW5ndGg7KytQKXt2YXIgUj1sLnNs'@; put 'aWNlKGwubCxsLmwrZ1tQXS5sZW4pO2wubCs9Z1tQXS5sZW4saHIoUiwwKTt2YXIgVj1PZS51dGlscy5kZWNvZGUoVCxSKTtzd2l0Y2goZ1tQXS50eXBlKXtjYXNlIkMiOlYudHJpbSgpLmxlbmd0aCYmKG9beV1bUF09Vi5yZXBsYWNlKC9ccyskLywiIikpO2JyZWFrO2Nhc2UiRCI6b1t5XVtQ'@; put 'XT04PT09Vi5sZW5ndGg/bmV3IERhdGUoK1Yuc2xpY2UoMCw0KSwrVi5zbGljZSg0LDYpLTEsK1Yuc2xpY2UoNiw4KSk6VjticmVhaztjYXNlIkYiOm9beV1bUF09cGFyc2VGbG9hdChWLnRyaW0oKSk7YnJlYWs7Y2FzZSIrIjpjYXNlIkkiOm9beV1bUF09dj8yMTQ3NDgzNjQ4XlIucmVhZF9z'@; put 'aGlmdCgtNCwiaSIpOlIucmVhZF9zaGlmdCg0LCJpIik7YnJlYWs7Y2FzZSJMIjpzd2l0Y2goVi50cmltKCkudG9VcHBlckNhc2UoKSl7Y2FzZSJZIjpjYXNlIlQiOm9beV1bUF09ITA7YnJlYWs7Y2FzZSJOIjpjYXNlIkYiOm9beV1bUF09ITE7YnJlYWs7Y2FzZSIiOmNhc2UiPyI6YnJlYWs7'@; put 'ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkRCRiBVbnJlY29nbml6ZWQgTDp8IitWKyJ8Iil9YnJlYWs7Y2FzZSJNIjppZigheCl0aHJvdyBuZXcgRXJyb3IoIkRCRiBVbmV4cGVjdGVkIE1FTU8gZm9yIHR5cGUgIitoLnRvU3RyaW5nKDE2KSk7b1t5XVtQXT0iIyNNRU1PIyMiKyh2P3BhcnNl'@; put 'SW50KFYudHJpbSgpLDEwKTpSLnJlYWRfc2hpZnQoNCkpO2JyZWFrO2Nhc2UiTiI6KFY9Vi5yZXBsYWNlKC9cdTAwMDAvZywiIikudHJpbSgpKSYmIi4iIT1WJiYob1t5XVtQXT0rVnx8MCk7YnJlYWs7Y2FzZSJAIjpvW3ldW1BdPW5ldyBEYXRlKFIucmVhZF9zaGlmdCgtOCwiZiIpLTYyMTM1'@; put 'NjgzMmU1KTticmVhaztjYXNlIlQiOm9beV1bUF09bmV3IERhdGUoODY0ZTUqKFIucmVhZF9zaGlmdCg0KS0yNDQwNTg4KStSLnJlYWRfc2hpZnQoNCkpO2JyZWFrO2Nhc2UiWSI6b1t5XVtQXT1SLnJlYWRfc2hpZnQoNCwiaSIpLzFlNCtSLnJlYWRfc2hpZnQoNCwiaSIpLzFlNCpNYXRoLnBv'@; put 'dygyLDMyKTticmVhaztjYXNlIk8iOm9beV1bUF09LVIucmVhZF9zaGlmdCgtOCwiZiIpO2JyZWFrO2Nhc2UiQiI6aWYoZCYmOD09Z1tQXS5sZW4pe29beV1bUF09Ui5yZWFkX3NoaWZ0KDgsImYiKTticmVha31jYXNlIkciOmNhc2UiUCI6Ui5sKz1nW1BdLmxlbjticmVhaztjYXNlIjAiOmlm'@; put 'KCJfTnVsbEZsYWdzIj09PWdbUF0ubmFtZSlicmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiREJGIFVuc3VwcG9ydGVkIGRhdGEgdHlwZSAiK2dbUF0udHlwZSl9fWVsc2UgbC5sKz1rO2lmKDIhPWgmJmwubDxsLmxlbmd0aCYmMjYhPWxbbC5sKytdKXRocm93IG5ldyBFcnJvcigiREJG'@; put 'IEVPRiBNYXJrZXIgbWlzc2luZyAiKyhsLmwtMSkrIiBvZiAiK2wubGVuZ3RoKyIgIitsW2wubC0xXS50b1N0cmluZygxNikpO3JldHVybiBjJiZjLnNoZWV0Um93cyYmKG89by5zbGljZSgwLGMuc2hlZXRSb3dzKSksYy5EQkY9ZyxvfShmLG8pLG8pO3JldHVybiBsWyIhY29scyJdPW8uREJG'@; put 'Lm1hcChmdW5jdGlvbihoKXtyZXR1cm57d2NoOmgubGVuLERCRjpofX0pLGRlbGV0ZSBvLkRCRixsfXZhciBpPXtCOjgsQzoyNTAsTDoxLEQ6OCwiPyI6MCwiIjowfTtyZXR1cm57dG9fd29ya2Jvb2s6ZnVuY3Rpb24gbihmLGMpe3RyeXtyZXR1cm4gRnQoYShmLGMpLGMpfWNhdGNoKG8pe2lm'@; put 'KGMmJmMuV1RGKXRocm93IG99cmV0dXJue1NoZWV0TmFtZXM6W10sU2hlZXRzOnt9fX0sdG9fc2hlZXQ6YSxmcm9tX3NoZWV0OmZ1bmN0aW9uIHMoZixjKXt2YXIgbz1jfHx7fTtpZigrby5jb2RlcGFnZT49MCYmTXIoK28uY29kZXBhZ2UpLCJzdHJpbmciPT1vLnR5cGUpdGhyb3cgbmV3IEVy'@; put 'cm9yKCJDYW5ub3Qgd3JpdGUgREJGIHRvIEpTIHN0cmluZyIpO3ZhciBsPVNyKCksaD1mdW5jdGlvbiBOMChlLHQpe2lmKG51bGw9PWV8fG51bGw9PWVbIiFyZWYiXSlyZXR1cm5bXTt2YXIgcj17dDoibiIsdjowfSxhPTAsbj0xLGk9W10scz0wLGY9IiIsYz17czp7cjowLGM6MH0sZTp7cjow'@; put 'LGM6MH19LG89dHx8e30sbD1udWxsIT1vLnJhbmdlP28ucmFuZ2U6ZVsiIXJlZiJdO3N3aXRjaCgxPT09by5oZWFkZXI/YT0xOiJBIj09PW8uaGVhZGVyP2E9MjpBcnJheS5pc0FycmF5KG8uaGVhZGVyKT9hPTM6bnVsbD09by5oZWFkZXImJihhPTApLHR5cGVvZiBsKXtjYXNlInN0cmluZyI6'@; put 'Yz1EZShsKTticmVhaztjYXNlIm51bWJlciI6KGM9RGUoZVsiIXJlZiJdKSkucy5yPWw7YnJlYWs7ZGVmYXVsdDpjPWx9YT4wJiYobj0wKTt2YXIgaD1LZShjLnMucikseD1bXSxkPVtdLHY9MCx1PTAscD1BcnJheS5pc0FycmF5KGUpLGs9Yy5zLnIsVD0wLGc9e307cCYmIWVba10mJihlW2td'@; put 'PVtdKTt2YXIgTj1vLnNraXBIaWRkZW4mJmVbIiFjb2xzIl18fFtdLE09by5za2lwSGlkZGVuJiZlWyIhcm93cyJdfHxbXTtmb3IoVD1jLnMuYztUPD1jLmUuYzsrK1QpaWYoIShOW1RdfHx7fSkuaGlkZGVuKXN3aXRjaCh4W1RdPUhlKFQpLHI9cD9lW2tdW1RdOmVbeFtUXStoXSxhKXtjYXNl'@; put 'IDE6aVtUXT1ULWMucy5jO2JyZWFrO2Nhc2UgMjppW1RdPXhbVF07YnJlYWs7Y2FzZSAzOmlbVF09by5oZWFkZXJbVC1jLnMuY107YnJlYWs7ZGVmYXVsdDppZihudWxsPT1yJiYocj17dzoiX19FTVBUWSIsdDoicyJ9KSxmPXM9YXQocixudWxsLG8pLHU9Z1tzXXx8MCl7ZG97Zj1zKyJfIit1'@; put 'Kyt9d2hpbGUoZ1tmXSk7Z1tzXT11LGdbZl09MX1lbHNlIGdbc109MTtpW1RdPWZ9Zm9yKGs9Yy5zLnIrbjtrPD1jLmUucjsrK2spaWYoIShNW2tdfHx7fSkuaGlkZGVuKXt2YXIgST1fYyhlLGMsayx4LGEsaSxwLG8pOyghMT09PUkuaXNlbXB0eXx8KDE9PT1hPyExIT09by5ibGFua3Jvd3M6'@; put 'by5ibGFua3Jvd3MpKSYmKGRbdisrXT1JLnJvdyl9cmV0dXJuIGQubGVuZ3RoPXYsZH0oZix7aGVhZGVyOjEscmF3OiEwLGNlbGxEYXRlczohMH0pLHg9aFswXSxkPWguc2xpY2UoMSksdj1mWyIhY29scyJdfHxbXSx1PTAscD0wLGs9MCxUPTE7Zm9yKHU9MDt1PHgubGVuZ3RoOysrdSlpZigo'@; put 'KHZbdV18fHt9KS5EQkZ8fHt9KS5uYW1lKXhbdV09dlt1XS5EQkYubmFtZSwrK2s7ZWxzZSBpZihudWxsIT14W3VdKXtpZigrK2ssIm51bWJlciI9PXR5cGVvZiB4W3VdJiYoeFt1XT14W3VdLnRvU3RyaW5nKDEwKSksInN0cmluZyIhPXR5cGVvZiB4W3VdKXRocm93IG5ldyBFcnJvcigiREJG'@; put 'IEludmFsaWQgY29sdW1uIG5hbWUgIit4W3VdKyIgfCIrdHlwZW9mIHhbdV0rInwiKTtpZih4LmluZGV4T2YoeFt1XSkhPT11KWZvcihwPTA7cDwxMDI0OysrcClpZigtMT09eC5pbmRleE9mKHhbdV0rIl8iK3ApKXt4W3VdKz0iXyIrcDticmVha319dmFyIGc9RGUoZlsiIXJlZiJdKSxOPVtd'@; put 'LE09W10sST1bXTtmb3IodT0wO3U8PWcuZS5jLWcucy5jOysrdSl7dmFyIHk9IiIsUD0iIixSPTAsVj1bXTtmb3IocD0wO3A8ZC5sZW5ndGg7KytwKW51bGwhPWRbcF1bdV0mJlYucHVzaChkW3BdW3VdKTtpZigwIT1WLmxlbmd0aCYmbnVsbCE9eFt1XSl7Zm9yKHA9MDtwPFYubGVuZ3RoOysr'@; put 'cCl7c3dpdGNoKHR5cGVvZiBWW3BdKXtjYXNlIm51bWJlciI6UD0iQiI7YnJlYWs7Y2FzZSJzdHJpbmciOmRlZmF1bHQ6UD0iQyI7YnJlYWs7Y2FzZSJib29sZWFuIjpQPSJMIjticmVhaztjYXNlIm9iamVjdCI6UD1WW3BdaW5zdGFuY2VvZiBEYXRlPyJEIjoiQyJ9Uj1NYXRoLm1heChSLFN0'@; put 'cmluZyhWW3BdKS5sZW5ndGgpLHk9eSYmeSE9UD8iQyI6UH1SPjI1MCYmKFI9MjUwKSwiQyI9PShQPSgodlt1XXx8e30pLkRCRnx8e30pLnR5cGUpJiZ2W3VdLkRCRi5sZW4+UiYmKFI9dlt1XS5EQkYubGVuKSwiQiI9PXkmJiJOIj09UCYmKHk9Ik4iLElbdV09dlt1XS5EQkYuZGVjLFI9dlt1'@; put 'XS5EQkYubGVuKSxNW3VdPSJDIj09eXx8Ik4iPT1QP1I6aVt5XXx8MCxUKz1NW3VdLE5bdV09eX1lbHNlIE5bdV09Ij8ifXZhciBYPWwubmV4dCgzMik7Zm9yKFgud3JpdGVfc2hpZnQoNCwzMTg5MDI1NzYpLFgud3JpdGVfc2hpZnQoNCxkLmxlbmd0aCksWC53cml0ZV9zaGlmdCgyLDI5Nisz'@; put 'MiprKSxYLndyaXRlX3NoaWZ0KDIsVCksdT0wO3U8NDsrK3UpWC53cml0ZV9zaGlmdCg0LDApO2ZvcihYLndyaXRlX3NoaWZ0KDQsKCt0W1J0XXx8Myk8PDgpLHU9MCxwPTA7dTx4Lmxlbmd0aDsrK3UpaWYobnVsbCE9eFt1XSl7dmFyIGI9bC5uZXh0KDMyKSxlZT0oeFt1XS5zbGljZSgtMTAp'@; put 'KyJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIikuc2xpY2UoMCwxMSk7Yi53cml0ZV9zaGlmdCgxLGVlLCJzYmNzIiksYi53cml0ZV9zaGlmdCgxLCI/Ij09Tlt1XT8iQyI6Tlt1XSwic2JjcyIpLGIud3JpdGVfc2hpZnQoNCxwKSxiLndyaXRlX3NoaWZ0KDEsTVt1XXx8aVtOW3VdXXx8MCksYi53'@; put 'cml0ZV9zaGlmdCgxLElbdV18fDApLGIud3JpdGVfc2hpZnQoMSwyKSxiLndyaXRlX3NoaWZ0KDQsMCksYi53cml0ZV9zaGlmdCgxLDApLGIud3JpdGVfc2hpZnQoNCwwKSxiLndyaXRlX3NoaWZ0KDQsMCkscCs9TVt1XXx8aVtOW3VdXXx8MH12YXIgbGU9bC5uZXh0KDI2NCk7Zm9yKGxlLndy'@; put 'aXRlX3NoaWZ0KDQsMTMpLHU9MDt1PDY1OysrdSlsZS53cml0ZV9zaGlmdCg0LDApO2Zvcih1PTA7dTxkLmxlbmd0aDsrK3Upe3ZhciByZT1sLm5leHQoVCk7Zm9yKHJlLndyaXRlX3NoaWZ0KDEsMCkscD0wO3A8eC5sZW5ndGg7KytwKWlmKG51bGwhPXhbcF0pc3dpdGNoKE5bcF0pe2Nhc2Ui'@; put 'TCI6cmUud3JpdGVfc2hpZnQoMSxudWxsPT1kW3VdW3BdPzYzOmRbdV1bcF0/ODQ6NzApO2JyZWFrO2Nhc2UiQiI6cmUud3JpdGVfc2hpZnQoOCxkW3VdW3BdfHwwLCJmIik7YnJlYWs7Y2FzZSJOIjp2YXIgZGU9IjAiO2ZvcigibnVtYmVyIj09dHlwZW9mIGRbdV1bcF0mJihkZT1kW3VdW3Bd'@; put 'LnRvRml4ZWQoSVtwXXx8MCkpLGs9MDtrPE1bcF0tZGUubGVuZ3RoOysraylyZS53cml0ZV9zaGlmdCgxLDMyKTtyZS53cml0ZV9zaGlmdCgxLGRlLCJzYmNzIik7YnJlYWs7Y2FzZSJEIjpkW3VdW3BdPyhyZS53cml0ZV9zaGlmdCg0LCgiMDAwMCIrZFt1XVtwXS5nZXRGdWxsWWVhcigpKS5z'@; put 'bGljZSgtNCksInNiY3MiKSxyZS53cml0ZV9zaGlmdCgyLCgiMDAiKyhkW3VdW3BdLmdldE1vbnRoKCkrMSkpLnNsaWNlKC0yKSwic2JjcyIpLHJlLndyaXRlX3NoaWZ0KDIsKCIwMCIrZFt1XVtwXS5nZXREYXRlKCkpLnNsaWNlKC0yKSwic2JjcyIpKTpyZS53cml0ZV9zaGlmdCg4LCIwMDAw'@; put 'MDAwMCIsInNiY3MiKTticmVhaztjYXNlIkMiOnZhciB1ZT1TdHJpbmcobnVsbCE9ZFt1XVtwXT9kW3VdW3BdOiIiKS5zbGljZSgwLE1bcF0pO2ZvcihyZS53cml0ZV9zaGlmdCgxLHVlLCJzYmNzIiksaz0wO2s8TVtwXS11ZS5sZW5ndGg7KytrKXJlLndyaXRlX3NoaWZ0KDEsMzIpfX1yZXR1'@; put 'cm4gbC5uZXh0KDEpLndyaXRlX3NoaWZ0KDEsMjYpLGwuZW5kKCl9fX0oKSxlZj1mdW5jdGlvbigpe3ZhciBlPXtBQToiXHhjMCIsQkE6Ilx4YzEiLENBOiJceGMyIixEQToxOTUsSEE6Ilx4YzQiLEpBOjE5NyxBRToiXHhjOCIsQkU6Ilx4YzkiLENFOiJceGNhIixIRToiXHhjYiIsQUk6Ilx4'@; put 'Y2MiLEJJOiJceGNkIixDSToiXHhjZSIsSEk6Ilx4Y2YiLEFPOiJceGQyIixCTzoiXHhkMyIsQ086Ilx4ZDQiLERPOjIxMyxITzoiXHhkNiIsQVU6Ilx4ZDkiLEJVOiJceGRhIixDVToiXHhkYiIsSFU6Ilx4ZGMiLEFhOiJceGUwIixCYToiXHhlMSIsQ2E6Ilx4ZTIiLERhOjIyNyxIYToiXHhl'@; put 'NCIsSmE6MjI5LEFlOiJceGU4IixCZToiXHhlOSIsQ2U6Ilx4ZWEiLEhlOiJceGViIixBaToiXHhlYyIsQmk6Ilx4ZWQiLENpOiJceGVlIixIaToiXHhlZiIsQW86Ilx4ZjIiLEJvOiJceGYzIixDbzoiXHhmNCIsRG86MjQ1LEhvOiJceGY2IixBdToiXHhmOSIsQnU6Ilx4ZmEiLEN1OiJceGZi'@; put 'IixIdToiXHhmYyIsS0M6Ilx4YzciLEtjOiJceGU3IixxOiJceGU2Iix6OiJcdTAxNTMiLGE6Ilx4YzYiLGo6Ilx1MDE1MiIsRE46MjA5LERuOjI0MSxIeToyNTUsUzoxNjksYzoxNzAsUjoxNzQsIkIgIjoxODAsMDoxNzYsMToxNzcsMjoxNzgsMzoxNzksNToxODEsNjoxODIsNzoxODMsUTox'@; put 'ODUsazoxODYsYjoyMDgsaToyMTYsbDoyMjIsczoyNDAseToyNDgsIiEiOjE2MSwnIic6MTYyLCIjIjoxNjMsIigiOjE2NCwiJSI6MTY1LCInIjoxNjcsIkggIjoxNjgsIisiOjE3MSwiOyI6MTg3LCI8IjoxODgsIj0iOjE4OSwiPiI6MTkwLCI/IjoxOTEsInsiOjIyM30sdD1uZXcgUmVnRXhw'@; put 'KCJceDFiTigiKyRlKGUpLmpvaW4oInwiKS5yZXBsYWNlKC9cfFx8XHwvLCJ8XFx8fCIpLnJlcGxhY2UoLyhbPygpK10pL2csIlxcJDEiKSsifFxcfCkiLCJnbSIpLHI9ZnVuY3Rpb24oeCxkKXt2YXIgdj1lW2RdO3JldHVybiJudW1iZXIiPT10eXBlb2Ygdj9CMCh2KTp2fSxhPWZ1bmN0aW9u'@; put 'KHgsZCx2KXt2YXIgdT1kLmNoYXJDb2RlQXQoMCktMzI8PDR8di5jaGFyQ29kZUF0KDApLTQ4O3JldHVybiA1OT09dT94OkIwKHUpfTtmdW5jdGlvbiBpKHgsZCl7dmFyIFgsdj14LnNwbGl0KC9bXG5ccl0rLyksdT0tMSxwPS0xLGs9MCxUPTAsZz1bXSxOPVtdLE09bnVsbCxJPXt9LHk9W10s'@; put 'UD1bXSxSPVtdLFY9MDtmb3IoK2QuY29kZXBhZ2U+PTAmJk1yKCtkLmNvZGVwYWdlKTtrIT09di5sZW5ndGg7KytrKXtWPTA7dmFyIHJlLGI9dltrXS50cmltKCkucmVwbGFjZSgvXHgxQihbXHgyMC1ceDJGXSkoW1x4MzAtXHgzRl0pL2csYSkucmVwbGFjZSh0LHIpLGVlPWIucmVwbGFjZSgv'@; put 'OzsvZywiXDAiKS5zcGxpdCgiOyIpLm1hcChmdW5jdGlvbihEKXtyZXR1cm4gRC5yZXBsYWNlKC9cdTAwMDAvZywiOyIpfSk7aWYoYi5sZW5ndGg+MClzd2l0Y2goZWVbMF0pe2Nhc2UiSUQiOmNhc2UiRSI6Y2FzZSJCIjpjYXNlIk8iOmNhc2UiVyI6YnJlYWs7Y2FzZSJQIjoiUCI9PWVlWzFd'@; put 'LmNoYXJBdCgwKSYmTi5wdXNoKGIuc2xpY2UoMykucmVwbGFjZSgvOzsvZywiOyIpKTticmVhaztjYXNlIkMiOnZhciBkZT0hMSx1ZT0hMSxGZT0hMSxjZT0hMSx4ZT0tMSxLPS0xO2ZvcihUPTE7VDxlZS5sZW5ndGg7KytUKXN3aXRjaChlZVtUXS5jaGFyQXQoMCkpe2Nhc2UiQSI6Y2FzZSJH'@; put 'IjpicmVhaztjYXNlIlgiOnA9cGFyc2VJbnQoZWVbVF0uc2xpY2UoMSkpLTEsdWU9ITA7YnJlYWs7Y2FzZSJZIjpmb3IodT1wYXJzZUludChlZVtUXS5zbGljZSgxKSktMSx1ZXx8KHA9MCksWD1nLmxlbmd0aDtYPD11OysrWClnW1hdPVtdO2JyZWFrO2Nhc2UiSyI6JyInPT09KHJlPWVlW1Rd'@; put 'LnNsaWNlKDEpKS5jaGFyQXQoMCk/cmU9cmUuc2xpY2UoMSxyZS5sZW5ndGgtMSk6IlRSVUUiPT09cmU/cmU9ITA6IkZBTFNFIj09PXJlP3JlPSExOmlzTmFOKEpyKHJlKSk/aXNOYU4oYWEocmUpLmdldERhdGUoKSl8fChyZT1YZShyZSkpOihyZT1KcihyZSksbnVsbCE9PU0mJmJ0KE0pJiYo'@; put 'cmU9bzAocmUpKSksdHlwZW9mIE9lPCJ1IiYmInN0cmluZyI9PXR5cGVvZiByZSYmInN0cmluZyIhPShkfHx7fSkudHlwZSYmKGR8fHt9KS5jb2RlcGFnZSYmKHJlPU9lLnV0aWxzLmRlY29kZShkLmNvZGVwYWdlLHJlKSksZGU9ITA7YnJlYWs7Y2FzZSJFIjpjZT0hMDt2YXIgQz11YShlZVtU'@; put 'XS5zbGljZSgxKSx7cjp1LGM6cH0pO2dbdV1bcF09W2dbdV1bcF0sQ107YnJlYWs7Y2FzZSJTIjpGZT0hMCxnW3VdW3BdPVtnW3VdW3BdLCJTNVMiXTticmVhaztjYXNlIlIiOnhlPXBhcnNlSW50KGVlW1RdLnNsaWNlKDEpKS0xO2JyZWFrO2Nhc2UiQyI6Sz1wYXJzZUludChlZVtUXS5zbGlj'@; put 'ZSgxKSktMTticmVhaztkZWZhdWx0OmlmKGQmJmQuV1RGKXRocm93IG5ldyBFcnJvcigiU1lMSyBiYWQgcmVjb3JkICIrYil9aWYoZGUmJihnW3VdW3BdJiYyPT1nW3VdW3BdLmxlbmd0aD9nW3VdW3BdWzBdPXJlOmdbdV1bcF09cmUsTT1udWxsKSxGZSl7aWYoY2UpdGhyb3cgbmV3IEVycm9y'@; put 'KCJTWUxLIHNoYXJlZCBmb3JtdWxhIGNhbm5vdCBoYXZlIG93biBmb3JtdWxhIik7dmFyIFU9eGU+LTEmJmdbeGVdW0tdO2lmKCFVfHwhVVsxXSl0aHJvdyBuZXcgRXJyb3IoIlNZTEsgc2hhcmVkIGZvcm11bGEgY2Fubm90IGZpbmQgYmFzZSIpO2dbdV1bcF1bMV09a2YoVVsxXSx7cjp1LXhl'@; put 'LGM6cC1LfSl9YnJlYWs7Y2FzZSJGIjp2YXIgTz0wO2ZvcihUPTE7VDxlZS5sZW5ndGg7KytUKXN3aXRjaChlZVtUXS5jaGFyQXQoMCkpe2Nhc2UiWCI6cD1wYXJzZUludChlZVtUXS5zbGljZSgxKSktMSwrK087YnJlYWs7Y2FzZSJZIjpmb3IodT1wYXJzZUludChlZVtUXS5zbGljZSgxKSkt'@; put 'MSxYPWcubGVuZ3RoO1g8PXU7KytYKWdbWF09W107YnJlYWs7Y2FzZSJNIjpWPXBhcnNlSW50KGVlW1RdLnNsaWNlKDEpKS8yMDticmVhaztjYXNlIkYiOmNhc2UiRyI6Y2FzZSJTIjpjYXNlIkQiOmNhc2UiTiI6YnJlYWs7Y2FzZSJQIjpNPU5bcGFyc2VJbnQoZWVbVF0uc2xpY2UoMSkpXTti'@; put 'cmVhaztjYXNlIlciOmZvcihSPWVlW1RdLnNsaWNlKDEpLnNwbGl0KCIgIiksWD1wYXJzZUludChSWzBdLDEwKTtYPD1wYXJzZUludChSWzFdLDEwKTsrK1gpVj1wYXJzZUludChSWzJdLDEwKSxQW1gtMV09MD09PVY/e2hpZGRlbjohMH06e3djaDpWfSxLdChQW1gtMV0pO2JyZWFrO2Nhc2Ui'@; put 'QyI6UFtwPXBhcnNlSW50KGVlW1RdLnNsaWNlKDEpKS0xXXx8KFBbcF09e30pO2JyZWFrO2Nhc2UiUiI6eVt1PXBhcnNlSW50KGVlW1RdLnNsaWNlKDEpKS0xXXx8KHlbdV09e30pLFY+MD8oeVt1XS5ocHQ9Vix5W3VdLmhweD1vYShWKSk6MD09PVYmJih5W3VdLmhpZGRlbj0hMCk7YnJlYWs7'@; put 'ZGVmYXVsdDppZihkJiZkLldURil0aHJvdyBuZXcgRXJyb3IoIlNZTEsgYmFkIHJlY29yZCAiK2IpfU88MSYmKE09bnVsbCk7YnJlYWs7ZGVmYXVsdDppZihkJiZkLldURil0aHJvdyBuZXcgRXJyb3IoIlNZTEsgYmFkIHJlY29yZCAiK2IpfX1yZXR1cm4geS5sZW5ndGg+MCYmKElbIiFyb3dz'@; put 'Il09eSksUC5sZW5ndGg+MCYmKElbIiFjb2xzIl09UCksZCYmZC5zaGVldFJvd3MmJihnPWcuc2xpY2UoMCxkLnNoZWV0Um93cykpLFtnLEldfWZ1bmN0aW9uIHMoeCxkKXt2YXIgdj1mdW5jdGlvbiBuKHgsZCl7c3dpdGNoKGQudHlwZSl7Y2FzZSJiYXNlNjQiOnJldHVybiBpKE9yKHgpLGQp'@; put 'O2Nhc2UiYmluYXJ5IjpyZXR1cm4gaSh4LGQpO2Nhc2UiYnVmZmVyIjpyZXR1cm4gaShTZSYmQnVmZmVyLmlzQnVmZmVyKHgpP3gudG9TdHJpbmcoImJpbmFyeSIpOnd0KHgpLGQpO2Nhc2UiYXJyYXkiOnJldHVybiBpKFB0KHgpLGQpfXRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHR5'@; put 'cGUgIitkLnR5cGUpfSh4LGQpLHA9dlsxXSxrPXNhKHZbMF0sZCk7cmV0dXJuICRlKHApLmZvckVhY2goZnVuY3Rpb24oVCl7a1tUXT1wW1RdfSksa31mdW5jdGlvbiBjKHgsZCx2LHUpe3ZhciBwPSJDO1kiKyh2KzEpKyI7WCIrKHUrMSkrIjtLIjtzd2l0Y2goeC50KXtjYXNlIm4iOnArPXgu'@; put 'dnx8MCx4LmYmJiF4LkYmJihwKz0iO0UiK0luKHguZix7cjp2LGM6dX0pKTticmVhaztjYXNlImIiOnArPXgudj8iVFJVRSI6IkZBTFNFIjticmVhaztjYXNlImUiOnArPXgud3x8eC52O2JyZWFrO2Nhc2UiZCI6cCs9JyInKyh4Lnd8fHgudikrJyInO2JyZWFrO2Nhc2UicyI6cCs9JyInK3gu'@; put 'di5yZXBsYWNlKC8iL2csIiIpLnJlcGxhY2UoLzsvZywiOzsiKSsnIid9cmV0dXJuIHB9cmV0dXJuIGVbInwiXT0yNTQse3RvX3dvcmtib29rOmZ1bmN0aW9uIGYoeCxkKXtyZXR1cm4gRnQocyh4LGQpLGQpfSx0b19zaGVldDpzLGZyb21fc2hlZXQ6ZnVuY3Rpb24gaCh4LGQpe3ZhciBrLHY9'@; put 'WyJJRDtQV1hMO047RSJdLHU9W10scD1EZSh4WyIhcmVmIl0pLFQ9QXJyYXkuaXNBcnJheSh4KSxnPSJcclxuIjt2LnB1c2goIlA7UEdlbmVyYWwiKSx2LnB1c2goIkY7UDA7REcwRzg7TTI1NSIpLHhbIiFjb2xzIl0mJmZ1bmN0aW9uIG8oeCxkKXtkLmZvckVhY2goZnVuY3Rpb24odix1KXt2'@; put 'YXIgcD0iRjtXIisodSsxKSsiICIrKHUrMSkrIiAiO3YuaGlkZGVuP3ArPSIwIjooIm51bWJlciI9PXR5cGVvZiB2LndpZHRoJiYhdi53cHgmJih2LndweD1QYSh2LndpZHRoKSksIm51bWJlciI9PXR5cGVvZiB2LndweCYmIXYud2NoJiYodi53Y2g9TGEodi53cHgpKSwibnVtYmVyIj09dHlw'@; put 'ZW9mIHYud2NoJiYocCs9TWF0aC5yb3VuZCh2LndjaCkpKSwiICIhPXAuY2hhckF0KHAubGVuZ3RoLTEpJiZ4LnB1c2gocCl9KX0odix4WyIhY29scyJdKSx4WyIhcm93cyJdJiZmdW5jdGlvbiBsKHgsZCl7ZC5mb3JFYWNoKGZ1bmN0aW9uKHYsdSl7dmFyIHA9IkY7Ijt2LmhpZGRlbj9wKz0i'@; put 'TTA7Ijp2LmhwdD9wKz0iTSIrMjAqdi5ocHQrIjsiOnYuaHB4JiYocCs9Ik0iKzIwKkJhKHYuaHB4KSsiOyIpLHAubGVuZ3RoPjImJngucHVzaChwKyJSIisodSsxKSl9KX0odix4WyIhcm93cyJdKSx2LnB1c2goIkI7WSIrKHAuZS5yLXAucy5yKzEpKyI7WCIrKHAuZS5jLXAucy5jKzEpKyI7'@; put 'RCIrW3Aucy5jLHAucy5yLHAuZS5jLHAuZS5yXS5qb2luKCIgIikpO2Zvcih2YXIgTj1wLnMucjtOPD1wLmUucjsrK04pZm9yKHZhciBNPXAucy5jO008PXAuZS5jOysrTSl7dmFyIEk9Z2Uoe3I6TixjOk19KTsoaz1UPyh4W05dfHxbXSlbTV06eFtJXSkmJihudWxsIT1rLnZ8fGsuZiYmIWsu'@; put 'RikmJnUucHVzaChjKGssMCxOLE0pKX1yZXR1cm4gdi5qb2luKGcpK2crdS5qb2luKGcpK2crIkUiK2d9fX0oKSxyZj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoaSxzKXtmb3IodmFyIGY9aS5zcGxpdCgiXG4iKSxjPS0xLG89LTEsbD0wLGg9W107bCE9PWYubGVuZ3RoOysrbClpZigiQk9UIiE9'@; put 'PWZbbF0udHJpbSgpKXtpZighKGM8MCkpe2Zvcih2YXIgeD1mW2xdLnRyaW0oKS5zcGxpdCgiLCIpLGQ9eFswXSx2PXhbMV0sdT1mWysrbF18fCIiOzEmKHUubWF0Y2goL1siXS9nKXx8W10pLmxlbmd0aCYmbDxmLmxlbmd0aC0xOyl1Kz0iXG4iK2ZbKytsXTtzd2l0Y2godT11LnRyaW0oKSwr'@; put 'ZCl7Y2FzZS0xOmlmKCJCT1QiPT09dSl7aFsrK2NdPVtdLG89MDtjb250aW51ZX1pZigiRU9EIiE9PXUpdGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgRElGIHNwZWNpYWwgY29tbWFuZCAiK3UpO2JyZWFrO2Nhc2UgMDpoW2NdW29dPSJUUlVFIj09PXV8fCJGQUxTRSIhPT11JiYoaXNO'@; put 'YU4oSnIodikpP2lzTmFOKGFhKHYpLmdldERhdGUoKSk/djpYZSh2KTpKcih2KSksKytvO2JyZWFrO2Nhc2UgMToodT0odT11LnNsaWNlKDEsdS5sZW5ndGgtMSkpLnJlcGxhY2UoLyIiL2csJyInKSkmJnUubWF0Y2goL149Ii4qIiQvKSYmKHU9dS5zbGljZSgyLC0xKSksaFtjXVtvKytdPSIi'@; put 'IT09dT91Om51bGx9aWYoIkVPRCI9PT11KWJyZWFrfX1lbHNlIGhbKytjXT1bXSxvPTA7cmV0dXJuIHMmJnMuc2hlZXRSb3dzJiYoaD1oLnNsaWNlKDAscy5zaGVldFJvd3MpKSxofWZ1bmN0aW9uIHIoaSxzKXtyZXR1cm4gc2EoZnVuY3Rpb24gZShpLHMpe3N3aXRjaChzLnR5cGUpe2Nhc2Ui'@; put 'YmFzZTY0IjpyZXR1cm4gdChPcihpKSxzKTtjYXNlImJpbmFyeSI6cmV0dXJuIHQoaSxzKTtjYXNlImJ1ZmZlciI6cmV0dXJuIHQoU2UmJkJ1ZmZlci5pc0J1ZmZlcihpKT9pLnRvU3RyaW5nKCJiaW5hcnkiKTp3dChpKSxzKTtjYXNlImFycmF5IjpyZXR1cm4gdChQdChpKSxzKX10aHJvdyBu'@; put 'ZXcgRXJyb3IoIlVucmVjb2duaXplZCB0eXBlICIrcy50eXBlKX0oaSxzKSxzKX1yZXR1cm57dG9fd29ya2Jvb2s6ZnVuY3Rpb24gYShpLHMpe3JldHVybiBGdChyKGkscykscyl9LHRvX3NoZWV0OnIsZnJvbV9zaGVldDpmdW5jdGlvbigpe3ZhciBpPWZ1bmN0aW9uKGMsbyxsLGgseCl7Yy5w'@; put 'dXNoKG8pLGMucHVzaChsKyIsIitoKSxjLnB1c2goJyInK3gucmVwbGFjZSgvIi9nLCciIicpKyciJyl9LHM9ZnVuY3Rpb24oYyxvLGwsaCl7Yy5wdXNoKG8rIiwiK2wpLGMucHVzaCgxPT1vPyciJytoLnJlcGxhY2UoLyIvZywnIiInKSsnIic6aCl9O3JldHVybiBmdW5jdGlvbihjKXt2YXIg'@; put 'aCxvPVtdLGw9RGUoY1siIXJlZiJdKSx4PUFycmF5LmlzQXJyYXkoYyk7aShvLCJUQUJMRSIsMCwxLCJzaGVldGpzIiksaShvLCJWRUNUT1JTIiwwLGwuZS5yLWwucy5yKzEsIiIpLGkobywiVFVQTEVTIiwwLGwuZS5jLWwucy5jKzEsIiIpLGkobywiREFUQSIsMCwwLCIiKTtmb3IodmFyIGQ9'@; put 'bC5zLnI7ZDw9bC5lLnI7KytkKXtzKG8sLTEsMCwiQk9UIik7Zm9yKHZhciB2PWwucy5jO3Y8PWwuZS5jOysrdil7dmFyIHU9Z2Uoe3I6ZCxjOnZ9KTtpZihoPXg/KGNbZF18fFtdKVt2XTpjW3VdKXN3aXRjaChoLnQpe2Nhc2UibiI6dmFyIHA9aC53OyFwJiZudWxsIT1oLnYmJihwPWgudiks'@; put 'bnVsbD09cD9zKG8sMSwwLGguZiYmIWguRj8iPSIraC5mOiIiKTpzKG8sMCxwLCJWIik7YnJlYWs7Y2FzZSJiIjpzKG8sMCxoLnY/MTowLGgudj8iVFJVRSI6IkZBTFNFIik7YnJlYWs7Y2FzZSJzIjpzKG8sMSwwLGlzTmFOKGgudik/aC52Oic9IicraC52KyciJyk7YnJlYWs7Y2FzZSJkIjpo'@; put 'Lnd8fChoLnc9UnIoaC56fHxwZVsxNF0saXIoWGUoaC52KSkpKSxzKG8sMCxoLncsIlYiKTticmVhaztkZWZhdWx0OnMobywxLDAsIiIpfWVsc2UgcyhvLDEsMCwiIil9fXJldHVybiBzKG8sLTEsMCwiRU9EIiksby5qb2luKCJcclxuIil9fSgpfX0oKSx0Zj1mdW5jdGlvbigpe2Z1bmN0aW9u'@; put 'IGUoaCl7cmV0dXJuIGgucmVwbGFjZSgvXFxiL2csIlxcIikucmVwbGFjZSgvXFxjL2csIjoiKS5yZXBsYWNlKC9cXG4vZywiXG4iKX1mdW5jdGlvbiB0KGgpe3JldHVybiBoLnJlcGxhY2UoL1xcL2csIlxcYiIpLnJlcGxhY2UoLzovZywiXFxjIikucmVwbGFjZSgvXG4vZywiXFxuIil9ZnVu'@; put 'Y3Rpb24gYShoLHgpe3JldHVybiBzYShmdW5jdGlvbiByKGgseCl7Zm9yKHZhciBkPWguc3BsaXQoIlxuIiksdj0tMSx1PS0xLHA9MCxrPVtdO3AhPT1kLmxlbmd0aDsrK3Ape3ZhciBUPWRbcF0udHJpbSgpLnNwbGl0KCI6Iik7aWYoImNlbGwiPT09VFswXSl7dmFyIGc9R2UoVFsxXSk7aWYo'@; put 'ay5sZW5ndGg8PWcucilmb3Iodj1rLmxlbmd0aDt2PD1nLnI7Kyt2KWtbdl18fChrW3ZdPVtdKTtzd2l0Y2godj1nLnIsdT1nLmMsVFsyXSl7Y2FzZSJ0IjprW3ZdW3VdPWUoVFszXSk7YnJlYWs7Y2FzZSJ2IjprW3ZdW3VdPStUWzNdO2JyZWFrO2Nhc2UidnRmIjp2YXIgTj1UW1QubGVuZ3Ro'@; put 'LTFdO2Nhc2UidnRjIjprW3ZdW3VdPSJubCI9PT1UWzNdPyEhK1RbNF06K1RbNF0sInZ0ZiI9PVRbMl0mJihrW3ZdW3VdPVtrW3ZdW3VdLE5dKX19fXJldHVybiB4JiZ4LnNoZWV0Um93cyYmKGs9ay5zbGljZSgwLHguc2hlZXRSb3dzKSksa30oaCx4KSx4KX12YXIgaT1bInNvY2lhbGNhbGM6'@; put 'dmVyc2lvbjoxLjUiLCJNSU1FLVZlcnNpb246IDEuMCIsIkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L21peGVkOyBib3VuZGFyeT1Tb2NpYWxDYWxjU3ByZWFkc2hlZXRDb250cm9sU2F2ZSJdLmpvaW4oIlxuIikscz1bIi0tU29jaWFsQ2FsY1NwcmVhZHNoZWV0Q29udHJvbFNhdmUiLCJDb250'@; put 'ZW50LXR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgiXS5qb2luKCJcbiIpKyJcbiIsZj1bIiMgU29jaWFsQ2FsYyBTcHJlYWRzaGVldCBDb250cm9sIFNhdmUiLCJwYXJ0OnNoZWV0Il0uam9pbigiXG4iKSxjPSItLVNvY2lhbENhbGNTcHJlYWRzaGVldENvbnRyb2xTYXZlLS0iO2Z1'@; put 'bmN0aW9uIG8oaCl7aWYoIWh8fCFoWyIhcmVmIl0pcmV0dXJuIiI7Zm9yKHZhciB2LHg9W10sZD1bXSx1PSIiLHA9UHIoaFsiIXJlZiJdKSxrPUFycmF5LmlzQXJyYXkoaCksVD1wLnMucjtUPD1wLmUucjsrK1QpZm9yKHZhciBnPXAucy5jO2c8PXAuZS5jOysrZylpZih1PWdlKHtyOlQsYzpn'@; put 'fSksKHY9az8oaFtUXXx8W10pW2ddOmhbdV0pJiZudWxsIT12LnYmJiJ6IiE9PXYudCl7c3dpdGNoKGQ9WyJjZWxsIix1LCJ0Il0sdi50KXtjYXNlInMiOmNhc2Uic3RyIjpkLnB1c2godCh2LnYpKTticmVhaztjYXNlIm4iOnYuZj8oZFsyXT0idnRmIixkWzNdPSJuIixkWzRdPXYudixkWzVd'@; put 'PXQodi5mKSk6KGRbMl09InYiLGRbM109di52KTticmVhaztjYXNlImIiOmRbMl09InZ0Iisodi5mPyJmIjoiYyIpLGRbM109Im5sIixkWzRdPXYudj8iMSI6IjAiLGRbNV09dCh2LmZ8fCh2LnY/IlRSVUUiOiJGQUxTRSIpKTticmVhaztjYXNlImQiOnZhciBOPWlyKFhlKHYudikpO2RbMl09'@; put 'InZ0YyIsZFszXT0ibmQiLGRbNF09IiIrTixkWzVdPXYud3x8UnIodi56fHxwZVsxNF0sTik7YnJlYWs7Y2FzZSJlIjpjb250aW51ZX14LnB1c2goZC5qb2luKCI6IikpfXJldHVybiB4LnB1c2goInNoZWV0OmM6IisocC5lLmMtcC5zLmMrMSkrIjpyOiIrKHAuZS5yLXAucy5yKzEpKyI6dHZm'@; put 'OjEiKSx4LnB1c2goInZhbHVlZm9ybWF0OjE6dGV4dC13aWtpIikseC5qb2luKCJcbiIpfXJldHVybnt0b193b3JrYm9vazpmdW5jdGlvbiBuKGgseCl7cmV0dXJuIEZ0KGEoaCx4KSx4KX0sdG9fc2hlZXQ6YSxmcm9tX3NoZWV0OmZ1bmN0aW9uIGwoaCl7cmV0dXJuW2kscyxmLHMsbyhoKSxj'@; put 'XS5qb2luKCJcbiIpfX19KCksY2E9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGwsaCx4LGQsdil7di5yYXc/aFt4XVtkXT1sOiIiPT09bHx8KGhbeF1bZF09IlRSVUUiPT09bHx8IkZBTFNFIiE9PWwmJihpc05hTihKcihsKSk/aXNOYU4oYWEobCkuZ2V0RGF0ZSgpKT9sOlhlKGwpOkpyKGwpKSl9'@; put 'dmFyIHI9ezQ0OiIsIiw5OiJcdCIsNTk6IjsiLDEyNDoifCJ9LGE9ezQ0OjMsOToyLDU5OjEsMTI0OjB9O2Z1bmN0aW9uIG4obCl7Zm9yKHZhciBoPXt9LHg9ITEsZD0wLHY9MDtkPGwubGVuZ3RoOysrZCkzND09KHY9bC5jaGFyQ29kZUF0KGQpKT94PSF4OiF4JiZ2IGluIHImJihoW3ZdPSho'@; put 'W3ZdfHwwKSsxKTtmb3IoZCBpbiB2PVtdLGgpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGgsZCkmJnYucHVzaChbaFtkXSxkXSk7aWYoIXYubGVuZ3RoKWZvcihkIGluIGg9YSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaCxkKSYmdi5wdXNoKFto'@; put 'W2RdLGRdKTtyZXR1cm4gdi5zb3J0KGZ1bmN0aW9uKHUscCl7cmV0dXJuIHVbMF0tcFswXXx8YVt1WzFdXS1hW3BbMV1dfSksclt2LnBvcCgpWzFdXXx8NDR9ZnVuY3Rpb24gcyhsLGgpe3JldHVybiFofHwhaC5QUk58fGguRlN8fCJzZXA9Ij09bC5zbGljZSgwLDQpfHxsLmluZGV4T2YoIlx0'@; put 'Iik+PTB8fGwuaW5kZXhPZigiLCIpPj0wfHxsLmluZGV4T2YoIjsiKT49MD9mdW5jdGlvbiBpKGwsaCl7dmFyIHg9aHx8e30sZD0iIjtudWxsIT16ZSYmbnVsbD09eC5kZW5zZSYmKHguZGVuc2U9emUpO3ZhciB2PXguZGVuc2U/W106e30sdT17czp7YzowLHI6MH0sZTp7YzowLHI6MH19OyJz'@; put 'ZXA9Ij09bC5zbGljZSgwLDQpPzEzPT1sLmNoYXJDb2RlQXQoNSkmJjEwPT1sLmNoYXJDb2RlQXQoNik/KGQ9bC5jaGFyQXQoNCksbD1sLnNsaWNlKDcpKToxMz09bC5jaGFyQ29kZUF0KDUpfHwxMD09bC5jaGFyQ29kZUF0KDUpPyhkPWwuY2hhckF0KDQpLGw9bC5zbGljZSg2KSk6ZD1uKGwu'@; put 'c2xpY2UoMCwxMDI0KSk6ZD14JiZ4LkZTP3guRlM6bihsLnNsaWNlKDAsMTAyNCkpO3ZhciBwPTAsaz0wLFQ9MCxnPTAsTj0wLE09ZC5jaGFyQ29kZUF0KDApLEk9ITEseT0wLFA9bC5jaGFyQ29kZUF0KDApO2w9bC5yZXBsYWNlKC9cclxuL2dtLCJcbiIpO3ZhciBSPW51bGwhPXguZGF0ZU5G'@; put 'P2Z1bmN0aW9uIG5vKGUpe3ZhciB0PSJudW1iZXIiPT10eXBlb2YgZT9wZVtlXTplO3JldHVybiB0PXQucmVwbGFjZShFaSwiKFxcZCspIiksbmV3IFJlZ0V4cCgiXiIrdCsiJCIpfSh4LmRhdGVORik6bnVsbDtmdW5jdGlvbiBWKCl7dmFyIFg9bC5zbGljZShnLE4pLGI9e307aWYoJyInPT1Y'@; put 'LmNoYXJBdCgwKSYmJyInPT1YLmNoYXJBdChYLmxlbmd0aC0xKSYmKFg9WC5zbGljZSgxLC0xKS5yZXBsYWNlKC8iIi9nLCciJykpLDA9PT1YLmxlbmd0aCliLnQ9InoiO2Vsc2UgaWYoeC5yYXcpYi50PSJzIixiLnY9WDtlbHNlIGlmKDA9PT1YLnRyaW0oKS5sZW5ndGgpYi50PSJzIixiLnY9'@; put 'WDtlbHNlIGlmKDYxPT1YLmNoYXJDb2RlQXQoMCkpMzQ9PVguY2hhckNvZGVBdCgxKSYmMzQ9PVguY2hhckNvZGVBdChYLmxlbmd0aC0xKT8oYi50PSJzIixiLnY9WC5zbGljZSgyLC0xKS5yZXBsYWNlKC8iIi9nLCciJykpOmZ1bmN0aW9uIFJ4KGUpe3JldHVybiAxIT1lLmxlbmd0aH0oWCk/'@; put 'KGIudD0ibiIsYi5mPVguc2xpY2UoMSkpOihiLnQ9InMiLGIudj1YKTtlbHNlIGlmKCJUUlVFIj09WCliLnQ9ImIiLGIudj0hMDtlbHNlIGlmKCJGQUxTRSI9PVgpYi50PSJiIixiLnY9ITE7ZWxzZSBpZihpc05hTihUPUpyKFgpKSlpZighaXNOYU4oYWEoWCkuZ2V0RGF0ZSgpKXx8UiYmWC5t'@; put 'YXRjaChSKSl7Yi56PXguZGF0ZU5GfHxwZVsxNF07dmFyIGVlPTA7UiYmWC5tYXRjaChSKSYmKFg9ZnVuY3Rpb24gaW8oZSx0LHIpe3ZhciBhPS0xLG49LTEsaT0tMSxzPS0xLGY9LTEsYz0tMTsodC5tYXRjaChFaSl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGgseCl7dmFyIGQ9cGFyc2VJbnQo'@; put 'clt4KzFdLDEwKTtzd2l0Y2goaC50b0xvd2VyQ2FzZSgpLmNoYXJBdCgwKSl7Y2FzZSJ5IjphPWQ7YnJlYWs7Y2FzZSJkIjppPWQ7YnJlYWs7Y2FzZSJoIjpzPWQ7YnJlYWs7Y2FzZSJzIjpjPWQ7YnJlYWs7Y2FzZSJtIjpzPj0wP2Y9ZDpuPWR9fSksYz49MCYmLTE9PWYmJm4+PTAmJihmPW4s'@; put 'bj0tMSk7dmFyIG89KCIiKyhhPj0wP2E6KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpKSkuc2xpY2UoLTQpKyItIisoIjAwIisobj49MT9uOjEpKS5zbGljZSgtMikrIi0iKygiMDAiKyhpPj0xP2k6MSkpLnNsaWNlKC0yKTs3PT1vLmxlbmd0aCYmKG89IjAiK28pLDg9PW8ubGVuZ3RoJiYobz0i'@; put 'MjAiK28pO3ZhciBsPSgiMDAiKyhzPj0wP3M6MCkpLnNsaWNlKC0yKSsiOiIrKCIwMCIrKGY+PTA/ZjowKSkuc2xpY2UoLTIpKyI6IisoIjAwIisoYz49MD9jOjApKS5zbGljZSgtMik7cmV0dXJuLTE9PXMmJi0xPT1mJiYtMT09Yz9vOi0xPT1hJiYtMT09biYmLTE9PWk/bDpvKyJUIitsfSgw'@; put 'LHguZGF0ZU5GLFgubWF0Y2goUil8fFtdKSxlZT0xKSx4LmNlbGxEYXRlcz8oYi50PSJkIixiLnY9WGUoWCxlZSkpOihiLnQ9Im4iLGIudj1pcihYZShYLGVlKSkpLCExIT09eC5jZWxsVGV4dCYmKGIudz1ScihiLnosYi52IGluc3RhbmNlb2YgRGF0ZT9pcihiLnYpOmIudikpLHguY2VsbE5G'@; put 'fHxkZWxldGUgYi56fWVsc2UgYi50PSJzIixiLnY9WDtlbHNlIGIudD0ibiIsITEhPT14LmNlbGxUZXh0JiYoYi53PVgpLGIudj1UO2lmKCJ6Ij09Yi50fHwoeC5kZW5zZT8odltwXXx8KHZbcF09W10pLHZbcF1ba109Yik6dltnZSh7YzprLHI6cH0pXT1iKSxQPWwuY2hhckNvZGVBdChnPU4r'@; put 'MSksdS5lLmM8ayYmKHUuZS5jPWspLHUuZS5yPHAmJih1LmUucj1wKSx5PT1NKSsraztlbHNlIGlmKGs9MCwrK3AseC5zaGVldFJvd3MmJnguc2hlZXRSb3dzPD1wKXJldHVybiEwfWU6Zm9yKDtOPGwubGVuZ3RoOysrTilzd2l0Y2goeT1sLmNoYXJDb2RlQXQoTikpe2Nhc2UgMzQ6MzQ9PT1Q'@; put 'JiYoST0hSSk7YnJlYWs7Y2FzZSBNOmNhc2UgMTA6Y2FzZSAxMzppZighSSYmVigpKWJyZWFrIGV9cmV0dXJuIE4tZz4wJiZWKCksdlsiIXJlZiJdPXdlKHUpLHZ9KGwsaCk6c2EoZnVuY3Rpb24gdChsLGgpe3ZhciB4PWh8fHt9LGQ9W107aWYoIWx8fDA9PT1sLmxlbmd0aClyZXR1cm4gZDtm'@; put 'b3IodmFyIHY9bC5zcGxpdCgvW1xyXG5dLyksdT12Lmxlbmd0aC0xO3U+PTAmJjA9PT12W3VdLmxlbmd0aDspLS11O2Zvcih2YXIgcD0xMCxrPTAsVD0wO1Q8PXU7KytUKS0xPT0oaz12W1RdLmluZGV4T2YoIiAiKSk/az12W1RdLmxlbmd0aDprKysscD1NYXRoLm1heChwLGspO2ZvcihUPTA7'@; put 'VDw9dTsrK1Qpe2RbVF09W107dmFyIGc9MDtmb3IoZSh2W1RdLnNsaWNlKDAscCkudHJpbSgpLGQsVCxnLHgpLGc9MTtnPD0odltUXS5sZW5ndGgtcCkvMTArMTsrK2cpZSh2W1RdLnNsaWNlKHArMTAqKGctMSkscCsxMCpnKS50cmltKCksZCxULGcseCl9cmV0dXJuIHguc2hlZXRSb3dzJiYo'@; put 'ZD1kLnNsaWNlKDAseC5zaGVldFJvd3MpKSxkfShsLGgpLGgpfWZ1bmN0aW9uIGYobCxoKXt2YXIgeD0iIixkPSJzdHJpbmciPT1oLnR5cGU/WzAsMCwwLDBdOktuKGwsaCk7c3dpdGNoKGgudHlwZSl7Y2FzZSJiYXNlNjQiOng9T3IobCk7YnJlYWs7Y2FzZSJiaW5hcnkiOmNhc2Uic3RyaW5n'@; put 'Ijp4PWw7YnJlYWs7Y2FzZSJidWZmZXIiOng9NjUwMDE9PWguY29kZXBhZ2U/bC50b1N0cmluZygidXRmOCIpOmguY29kZXBhZ2UmJnR5cGVvZiBPZTwidSI/T2UudXRpbHMuZGVjb2RlKGguY29kZXBhZ2UsbCk6U2UmJkJ1ZmZlci5pc0J1ZmZlcihsKT9sLnRvU3RyaW5nKCJiaW5hcnkiKTp3'@; put 'dChsKTticmVhaztjYXNlImFycmF5Ijp4PVB0KGwpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgdHlwZSAiK2gudHlwZSl9cmV0dXJuIDIzOT09ZFswXSYmMTg3PT1kWzFdJiYxOTE9PWRbMl0/eD1CZSh4LnNsaWNlKDMpKToic3RyaW5nIiE9aC50eXBlJiYi'@; put 'YnVmZmVyIiE9aC50eXBlJiY2NTAwMT09aC5jb2RlcGFnZT94PUJlKHgpOiJiaW5hcnkiPT1oLnR5cGUmJnR5cGVvZiBPZTwidSImJmguY29kZXBhZ2UmJih4PU9lLnV0aWxzLmRlY29kZShoLmNvZGVwYWdlLE9lLnV0aWxzLmVuY29kZSgyODU5MSx4KSkpLCJzb2NpYWxjYWxjOnZlcnNpb246'@; put 'Ij09eC5zbGljZSgwLDE5KT90Zi50b19zaGVldCgic3RyaW5nIj09aC50eXBlP3g6QmUoeCksaCk6cyh4LGgpfXJldHVybnt0b193b3JrYm9vazpmdW5jdGlvbiBjKGwsaCl7cmV0dXJuIEZ0KGYobCxoKSxoKX0sdG9fc2hlZXQ6Zixmcm9tX3NoZWV0OmZ1bmN0aW9uIG8obCl7Zm9yKHZhciBk'@; put 'LGg9W10seD1EZShsWyIhcmVmIl0pLHY9QXJyYXkuaXNBcnJheShsKSx1PXgucy5yO3U8PXguZS5yOysrdSl7Zm9yKHZhciBwPVtdLGs9eC5zLmM7azw9eC5lLmM7KytrKXt2YXIgVD1nZSh7cjp1LGM6a30pO2lmKChkPXY/KGxbdV18fFtdKVtrXTpsW1RdKSYmbnVsbCE9ZC52KXtmb3IodmFy'@; put 'IGc9KGQud3x8KGF0KGQpLGQudyl8fCIiKS5zbGljZSgwLDEwKTtnLmxlbmd0aDwxMDspZys9IiAiO3AucHVzaChnKygwPT09az8iICI6IiIpKX1lbHNlIHAucHVzaCgiICAgICAgICAgICIpfWgucHVzaChwLmpvaW4oIiIpKX1yZXR1cm4gaC5qb2luKCJcbiIpfX19KCksanQ9ZnVuY3Rpb24o'@; put 'KXtmdW5jdGlvbiBlKEMsVSxPKXtpZihDKXtocihDLEMubHx8MCk7Zm9yKHZhciBEPU8uRW51bXx8eGU7Qy5sPEMubGVuZ3RoOyl7dmFyIGo9Qy5yZWFkX3NoaWZ0KDIpLHNlPURbal18fERbNjU1MzVdLFo9Qy5yZWFkX3NoaWZ0KDIpLFE9Qy5sK1osWT1zZS5mJiZzZS5mKEMsWixPKTtpZihD'@; put 'Lmw9USxVKFksc2UsaikpcmV0dXJufX19ZnVuY3Rpb24gcihDLFUpe2lmKCFDKXJldHVybiBDO3ZhciBPPVV8fHt9O251bGwhPXplJiZudWxsPT1PLmRlbnNlJiYoTy5kZW5zZT16ZSk7dmFyIEQ9Ty5kZW5zZT9bXTp7fSxqPSJTaGVldDEiLHNlPSIiLFo9MCxRPXt9LFk9W10sRWU9W10sQT17'@; put 'czp7cjowLGM6MH0sZTp7cjowLGM6MH19LFBlPU8uc2hlZXRSb3dzfHwwO2lmKDA9PUNbMl0mJig4PT1DWzNdfHw5PT1DWzNdKSYmQy5sZW5ndGg+PTE2JiY1PT1DWzE0XSYmMTA4PT09Q1sxNV0pdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBXb3JrcyAzIGZvciBNYWMgZmlsZSIpO2lm'@; put 'KDI9PUNbMl0pTy5FbnVtPXhlLGUoQyxmdW5jdGlvbihvZSxxZSxqcil7c3dpdGNoKGpyKXtjYXNlIDA6Ty52ZXJzPW9lLG9lPj00MDk2JiYoTy5xcHJvPSEwKTticmVhaztjYXNlIDY6QT1vZTticmVhaztjYXNlIDIwNDpvZSYmKHNlPW9lKTticmVhaztjYXNlIDIyMjpzZT1vZTticmVhaztj'@; put 'YXNlIDE1OmNhc2UgNTE6Ty5xcHJvfHwob2VbMV0udj1vZVsxXS52LnNsaWNlKDEpKTtjYXNlIDEzOmNhc2UgMTQ6Y2FzZSAxNjoxND09anImJiEoMTEyJn5vZVsyXSkmJigxNSZvZVsyXSk+MSYmKDE1Jm9lWzJdKTwxNSYmKG9lWzFdLno9Ty5kYXRlTkZ8fHBlWzE0XSxPLmNlbGxEYXRlcyYm'@; put 'KG9lWzFdLnQ9ImQiLG9lWzFdLnY9bzAob2VbMV0udikpKSxPLnFwcm8mJm9lWzNdPlomJihEWyIhcmVmIl09d2UoQSksUVtqXT1ELFkucHVzaChqKSxEPU8uZGVuc2U/W106e30sQT17czp7cjowLGM6MH0sZTp7cjowLGM6MH19LFo9b2VbM10saj1zZXx8IlNoZWV0IisoWisxKSxzZT0iIik7'@; put 'dmFyIGZ0PU8uZGVuc2U/KERbb2VbMF0ucl18fFtdKVtvZVswXS5jXTpEW2dlKG9lWzBdKV07aWYoZnQpe2Z0LnQ9b2VbMV0udCxmdC52PW9lWzFdLnYsbnVsbCE9b2VbMV0ueiYmKGZ0Lno9b2VbMV0ueiksbnVsbCE9b2VbMV0uZiYmKGZ0LmY9b2VbMV0uZik7YnJlYWt9Ty5kZW5zZT8oRFtv'@; put 'ZVswXS5yXXx8KERbb2VbMF0ucl09W10pLERbb2VbMF0ucl1bb2VbMF0uY109b2VbMV0pOkRbZ2Uob2VbMF0pXT1vZVsxXX19LE8pO2Vsc2V7aWYoMjYhPUNbMl0mJjE0IT1DWzJdKXRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIExPVFVTIEJPRiAiK0NbMl0pO08uRW51bT1LLDE0PT1D'@; put 'WzJdJiYoTy5xcHJvPSEwLEMubD0wKSxlKEMsZnVuY3Rpb24ob2UscWUsanIpe3N3aXRjaChqcil7Y2FzZSAyMDQ6aj1vZTticmVhaztjYXNlIDIyOm9lWzFdLnY9b2VbMV0udi5zbGljZSgxKTtjYXNlIDIzOmNhc2UgMjQ6Y2FzZSAyNTpjYXNlIDM3OmNhc2UgMzk6Y2FzZSA0MDppZihvZVsz'@; put 'XT5aJiYoRFsiIXJlZiJdPXdlKEEpLFFbal09RCxZLnB1c2goaiksRD1PLmRlbnNlP1tdOnt9LEE9e3M6e3I6MCxjOjB9LGU6e3I6MCxjOjB9fSxqPSJTaGVldCIrKChaPW9lWzNdKSsxKSksUGU+MCYmb2VbMF0ucj49UGUpYnJlYWs7Ty5kZW5zZT8oRFtvZVswXS5yXXx8KERbb2VbMF0ucl09'@; put 'W10pLERbb2VbMF0ucl1bb2VbMF0uY109b2VbMV0pOkRbZ2Uob2VbMF0pXT1vZVsxXSxBLmUuYzxvZVswXS5jJiYoQS5lLmM9b2VbMF0uYyksQS5lLnI8b2VbMF0uciYmKEEuZS5yPW9lWzBdLnIpO2JyZWFrO2Nhc2UgMjc6b2VbMTRlM10mJihFZVtvZVsxNGUzXVswXV09b2VbMTRlM11bMV0p'@; put 'O2JyZWFrO2Nhc2UgMTUzNzpFZVtvZVswXV09b2VbMV0sb2VbMF09PVomJihqPW9lWzFdKX19LE8pfWlmKERbIiFyZWYiXT13ZShBKSxRW3NlfHxqXT1ELFkucHVzaChzZXx8aiksIUVlLmxlbmd0aClyZXR1cm57U2hlZXROYW1lczpZLFNoZWV0czpRfTtmb3IodmFyIEFlPXt9LExlPVtdLENl'@; put 'PTA7Q2U8RWUubGVuZ3RoOysrQ2UpUVtZW0NlXV0/KExlLnB1c2goRWVbQ2VdfHxZW0NlXSksQWVbRWVbQ2VdXT1RW0VlW0NlXV18fFFbWVtDZV1dKTooTGUucHVzaChFZVtDZV0pLEFlW0VlW0NlXV09eyIhcmVmIjoiQTEifSk7cmV0dXJue1NoZWV0TmFtZXM6TGUsU2hlZXRzOkFlfX1mdW5j'@; put 'dGlvbiBvKEMsVSxPKXt2YXIgRD1be2M6MCxyOjB9LHt0OiJuIix2OjB9LDAsMF07cmV0dXJuIE8ucXBybyYmMjA3NjghPU8udmVycz8oRFswXS5jPUMucmVhZF9zaGlmdCgxKSxEWzNdPUMucmVhZF9zaGlmdCgxKSxEWzBdLnI9Qy5yZWFkX3NoaWZ0KDIpLEMubCs9Mik6KERbMl09Qy5yZWFk'@; put 'X3NoaWZ0KDEpLERbMF0uYz1DLnJlYWRfc2hpZnQoMiksRFswXS5yPUMucmVhZF9zaGlmdCgyKSksRH1mdW5jdGlvbiBsKEMsVSxPKXt2YXIgRD1DLmwrVSxqPW8oQywwLE8pO2lmKGpbMV0udD0icyIsMjA3Njg9PU8udmVycyl7Qy5sKys7dmFyIHNlPUMucmVhZF9zaGlmdCgxKTtyZXR1cm4g'@; put 'alsxXS52PUMucmVhZF9zaGlmdChzZSwidXRmOCIpLGp9cmV0dXJuIE8ucXBybyYmQy5sKyssalsxXS52PUMucmVhZF9zaGlmdChELUMubCwiY3N0ciIpLGp9ZnVuY3Rpb24gaChDLFUsTyl7dmFyIEQ9Ryg3K08ubGVuZ3RoKTtELndyaXRlX3NoaWZ0KDEsMjU1KSxELndyaXRlX3NoaWZ0KDIs'@; put 'VSksRC53cml0ZV9zaGlmdCgyLEMpLEQud3JpdGVfc2hpZnQoMSwzOSk7Zm9yKHZhciBqPTA7ajxELmxlbmd0aDsrK2ope3ZhciBzZT1PLmNoYXJDb2RlQXQoaik7RC53cml0ZV9zaGlmdCgxLHNlPj0xMjg/OTU6c2UpfXJldHVybiBELndyaXRlX3NoaWZ0KDEsMCksRH1mdW5jdGlvbiBkKEMs'@; put 'VSxPKXt2YXIgRD1HKDcpO3JldHVybiBELndyaXRlX3NoaWZ0KDEsMjU1KSxELndyaXRlX3NoaWZ0KDIsVSksRC53cml0ZV9zaGlmdCgyLEMpLEQud3JpdGVfc2hpZnQoMixPLCJpIiksRH1mdW5jdGlvbiB1KEMsVSxPKXt2YXIgRD1HKDEzKTtyZXR1cm4gRC53cml0ZV9zaGlmdCgxLDI1NSks'@; put 'RC53cml0ZV9zaGlmdCgyLFUpLEQud3JpdGVfc2hpZnQoMixDKSxELndyaXRlX3NoaWZ0KDgsTywiZiIpLER9ZnVuY3Rpb24gayhDLFUsTyl7dmFyIEQ9MzI3NjgmVTtyZXR1cm4gVT0oRD9DOjApKygoVSY9LTMyNzY5KT49ODE5Mj9VLTE2Mzg0OlUpLChEPyIiOiIkIikrKE8/SGUoVSk6S2Uo'@; put 'VSkpfXZhciBUPXs1MTpbIkZBTFNFIiwwXSw1MjpbIlRSVUUiLDBdLDcwOlsiTEVOIiwxXSw4MDpbIlNVTSIsNjldLDgxOlsiQVZFUkFHRUEiLDY5XSw4MjpbIkNPVU5UQSIsNjldLDgzOlsiTUlOQSIsNjldLDg0OlsiTUFYQSIsNjldLDExMTpbIlQiLDFdfSxnPVsiIiwiIiwiIiwiIiwiIiwi'@; put 'IiwiIiwiIiwiIiwiKyIsIi0iLCIqIiwiLyIsIl4iLCI9IiwiPD4iLCI8PSIsIj49IiwiPCIsIj4iLCIiLCIiLCIiLCIiLCImIiwiIiwiIiwiIiwiIiwiIiwiIiwiIl07ZnVuY3Rpb24gTShDKXt2YXIgVT1be2M6MCxyOjB9LHt0OiJuIix2OjB9LDBdO3JldHVybiBVWzBdLnI9Qy5yZWFkX3No'@; put 'aWZ0KDIpLFVbM109Q1tDLmwrK10sVVswXS5jPUNbQy5sKytdLFV9ZnVuY3Rpb24geShDLFUsTyxEKXt2YXIgaj1HKDYrRC5sZW5ndGgpO2oud3JpdGVfc2hpZnQoMixDKSxqLndyaXRlX3NoaWZ0KDEsTyksai53cml0ZV9zaGlmdCgxLFUpLGoud3JpdGVfc2hpZnQoMSwzOSk7Zm9yKHZhciBz'@; put 'ZT0wO3NlPEQubGVuZ3RoOysrc2Upe3ZhciBaPUQuY2hhckNvZGVBdChzZSk7ai53cml0ZV9zaGlmdCgxLFo+PTEyOD85NTpaKX1yZXR1cm4gai53cml0ZV9zaGlmdCgxLDApLGp9ZnVuY3Rpb24gUihDLFUpe3ZhciBPPU0oQyksRD1DLnJlYWRfc2hpZnQoNCksaj1DLnJlYWRfc2hpZnQoNCks'@; put 'c2U9Qy5yZWFkX3NoaWZ0KDIpO2lmKDY1NTM1PT1zZSlyZXR1cm4gMD09PUQmJjMyMjEyMjU0NzI9PT1qPyhPWzFdLnQ9ImUiLE9bMV0udj0xNSk6MD09PUQmJjM0ODk2NjA5Mjg9PT1qPyhPWzFdLnQ9ImUiLE9bMV0udj00Mik6T1sxXS52PTAsTzt2YXIgWj0zMjc2OCZzZTtyZXR1cm4gc2U9'@; put 'KDMyNzY3JnNlKS0xNjQ0NixPWzFdLnY9KDEtMipaKSooaipNYXRoLnBvdygyLHNlKzMyKStEKk1hdGgucG93KDIsc2UpKSxPfWZ1bmN0aW9uIFYoQyxVLE8sRCl7dmFyIGo9RygxNCk7aWYoai53cml0ZV9zaGlmdCgyLEMpLGoud3JpdGVfc2hpZnQoMSxPKSxqLndyaXRlX3NoaWZ0KDEsVSks'@; put 'MD09RClyZXR1cm4gai53cml0ZV9zaGlmdCg0LDApLGoud3JpdGVfc2hpZnQoNCwwKSxqLndyaXRlX3NoaWZ0KDIsNjU1MzUpLGo7dmFyIHNlPTAsWj0wLFk9MDtyZXR1cm4gRDwwJiYoc2U9MSxEPS1EKSxaPTB8TWF0aC5sb2cyKEQpLDIxNDc0ODM2NDgmKFk9KEQvPU1hdGgucG93KDIsWi0z'@; put 'MSkpPj4+MCl8fCgrK1osWT0oRC89Mik+Pj4wKSxELT1ZLFl8PTIxNDc0ODM2NDgsWT4+Pj0wLEQqPU1hdGgucG93KDIsMzIpLGoud3JpdGVfc2hpZnQoNCxEPj4+MCksai53cml0ZV9zaGlmdCg0LFkpLGoud3JpdGVfc2hpZnQoMixaKz0xNjM4Mysoc2U/MzI3Njg6MCkpLGp9ZnVuY3Rpb24g'@; put 'ZWUoQyxVKXt2YXIgTz1NKEMpLEQ9Qy5yZWFkX3NoaWZ0KDgsImYiKTtyZXR1cm4gT1sxXS52PUQsT31mdW5jdGlvbiByZShDLFUpe3JldHVybiAwPT1DW0MubCtVLTFdP0MucmVhZF9zaGlmdChVLCJjc3RyIik6IiJ9ZnVuY3Rpb24gY2UoQyxVKXt2YXIgTz1HKDUrQy5sZW5ndGgpO08ud3Jp'@; put 'dGVfc2hpZnQoMiwxNGUzKSxPLndyaXRlX3NoaWZ0KDIsVSk7Zm9yKHZhciBEPTA7RDxDLmxlbmd0aDsrK0Qpe3ZhciBqPUMuY2hhckNvZGVBdChEKTtPW08ubCsrXT1qPjEyNz85NTpqfXJldHVybiBPW08ubCsrXT0wLE99dmFyIHhlPXswOntuOiJCT0YiLGY6dHJ9LDE6e246IkVPRiJ9LDI6'@; put 'e246IkNBTENNT0RFIn0sMzp7bjoiQ0FMQ09SREVSIn0sNDp7bjoiU1BMSVQifSw1OntuOiJTWU5DIn0sNjp7bjoiUkFOR0UiLGY6ZnVuY3Rpb24gZihDLFUsTyl7dmFyIEQ9e3M6e2M6MCxyOjB9LGU6e2M6MCxyOjB9fTtyZXR1cm4gOD09VSYmTy5xcHJvPyhELnMuYz1DLnJlYWRfc2hpZnQo'@; put 'MSksQy5sKyssRC5zLnI9Qy5yZWFkX3NoaWZ0KDIpLEQuZS5jPUMucmVhZF9zaGlmdCgxKSxDLmwrKyxELmUucj1DLnJlYWRfc2hpZnQoMiksRCk6KEQucy5jPUMucmVhZF9zaGlmdCgyKSxELnMucj1DLnJlYWRfc2hpZnQoMiksMTI9PVUmJk8ucXBybyYmKEMubCs9MiksRC5lLmM9Qy5yZWFk'@; put 'X3NoaWZ0KDIpLEQuZS5yPUMucmVhZF9zaGlmdCgyKSwxMj09VSYmTy5xcHJvJiYoQy5sKz0yKSw2NTUzNT09RC5zLmMmJihELnMuYz1ELmUuYz1ELnMucj1ELmUucj0wKSxEKX19LDc6e246IldJTkRPVzEifSw4OntuOiJDT0xXMSJ9LDk6e246IldJTlRXTyJ9LDEwOntuOiJDT0xXMiJ9LDEx'@; put 'OntuOiJOQU1FIn0sMTI6e246IkJMQU5LIn0sMTM6e246IklOVEVHRVIiLGY6ZnVuY3Rpb24geChDLFUsTyl7dmFyIEQ9byhDLDAsTyk7cmV0dXJuIERbMV0udj1DLnJlYWRfc2hpZnQoMiwiaSIpLER9fSwxNDp7bjoiTlVNQkVSIixmOmZ1bmN0aW9uIHYoQyxVLE8pe3ZhciBEPW8oQywwLE8p'@; put 'O3JldHVybiBEWzFdLnY9Qy5yZWFkX3NoaWZ0KDgsImYiKSxEfX0sMTU6e246IkxBQkVMIixmOmx9LDE2OntuOiJGT1JNVUxBIixmOmZ1bmN0aW9uIHAoQyxVLE8pe3ZhciBEPUMubCtVLGo9byhDLDAsTyk7aWYoalsxXS52PUMucmVhZF9zaGlmdCg4LCJmIiksTy5xcHJvKUMubD1EO2Vsc2V7'@; put 'dmFyIHNlPUMucmVhZF9zaGlmdCgyKTsoZnVuY3Rpb24gTihDLFUpe2hyKEMsMCk7Zm9yKHZhciBPPVtdLEQ9MCxqPSIiLHNlPSIiLFo9IiIsUT0iIjtDLmw8Qy5sZW5ndGg7KXt2YXIgWT1DW0MubCsrXTtzd2l0Y2goWSl7Y2FzZSAwOk8ucHVzaChDLnJlYWRfc2hpZnQoOCwiZiIpKTticmVh'@; put 'aztjYXNlIDE6c2U9ayhVWzBdLmMsQy5yZWFkX3NoaWZ0KDIpLCEwKSxqPWsoVVswXS5yLEMucmVhZF9zaGlmdCgyKSwhMSksTy5wdXNoKHNlK2opO2JyZWFrO2Nhc2UgMjp2YXIgRWU9ayhVWzBdLmMsQy5yZWFkX3NoaWZ0KDIpLCEwKSxBPWsoVVswXS5yLEMucmVhZF9zaGlmdCgyKSwhMSk7'@; put 'c2U9ayhVWzBdLmMsQy5yZWFkX3NoaWZ0KDIpLCEwKSxqPWsoVVswXS5yLEMucmVhZF9zaGlmdCgyKSwhMSksTy5wdXNoKEVlK0ErIjoiK3NlK2opO2JyZWFrO2Nhc2UgMzppZihDLmw8Qy5sZW5ndGgpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiV0sxIHByZW1hdHVyZSBmb3JtdWxhIGVu'@; put 'ZCIpO2JyZWFrO2Nhc2UgNDpPLnB1c2goIigiK08ucG9wKCkrIikiKTticmVhaztjYXNlIDU6Ty5wdXNoKEMucmVhZF9zaGlmdCgyKSk7YnJlYWs7Y2FzZSA2OmZvcih2YXIgUGU9IiI7WT1DW0MubCsrXTspUGUrPVN0cmluZy5mcm9tQ2hhckNvZGUoWSk7Ty5wdXNoKCciJytQZS5yZXBsYWNl'@; put 'KC8iL2csJyIiJykrJyInKTticmVhaztjYXNlIDg6Ty5wdXNoKCItIitPLnBvcCgpKTticmVhaztjYXNlIDIzOk8ucHVzaCgiKyIrTy5wb3AoKSk7YnJlYWs7Y2FzZSAyMjpPLnB1c2goIk5PVCgiK08ucG9wKCkrIikiKTticmVhaztjYXNlIDIwOmNhc2UgMjE6UT1PLnBvcCgpLFo9Ty5wb3Ao'@; put 'KSxPLnB1c2goWyJBTkQiLCJPUiJdW1ktMjBdKyIoIitaKyIsIitRKyIpIik7YnJlYWs7ZGVmYXVsdDppZihZPDMyJiZnW1ldKVE9Ty5wb3AoKSxaPU8ucG9wKCksTy5wdXNoKForZ1tZXStRKTtlbHNle2lmKCFUW1ldKXJldHVybiBZPD03P2NvbnNvbGUuZXJyb3IoIldLMSBpbnZhbGlkIG9w'@; put 'Y29kZSAiK1kudG9TdHJpbmcoMTYpKTpZPD0yND9jb25zb2xlLmVycm9yKCJXSzEgdW5zdXBwb3J0ZWQgb3AgIitZLnRvU3RyaW5nKDE2KSk6WTw9MzA/Y29uc29sZS5lcnJvcigiV0sxIGludmFsaWQgb3Bjb2RlICIrWS50b1N0cmluZygxNikpOlk8PTExNT9jb25zb2xlLmVycm9yKCJXSzEg'@; put 'dW5zdXBwb3J0ZWQgZnVuY3Rpb24gb3Bjb2RlICIrWS50b1N0cmluZygxNikpOmNvbnNvbGUuZXJyb3IoIldLMSB1bnJlY29nbml6ZWQgb3Bjb2RlICIrWS50b1N0cmluZygxNikpO2lmKDY5PT0oRD1UW1ldWzFdKSYmKEQ9Q1tDLmwrK10pLEQ+Ty5sZW5ndGgpcmV0dXJuIHZvaWQgY29uc29s'@; put 'ZS5lcnJvcigiV0sxIGJhZCBmb3JtdWxhIHBhcnNlIDB4IitZLnRvU3RyaW5nKDE2KSsiOnwiK08uam9pbigifCIpKyJ8Iik7dmFyIEFlPU8uc2xpY2UoLUQpO08ubGVuZ3RoLT1ELE8ucHVzaChUW1ldWzBdKyIoIitBZS5qb2luKCIsIikrIikiKX19fTE9PU8ubGVuZ3RoP1VbMV0uZj0iIitP'@; put 'WzBdOmNvbnNvbGUuZXJyb3IoIldLMSBiYWQgZm9ybXVsYSBwYXJzZSB8IitPLmpvaW4oInwiKSsifCIpfSkoQy5zbGljZShDLmwsQy5sK3NlKSxqKSxDLmwrPXNlfXJldHVybiBqfX0sMjQ6e246IlRBQkxFIn0sMjU6e246Ik9SQU5HRSJ9LDI2OntuOiJQUkFOR0UifSwyNzp7bjoiU1JBTkdF'@; put 'In0sMjg6e246IkZSQU5HRSJ9LDI5OntuOiJLUkFOR0UxIn0sMzI6e246IkhSQU5HRSJ9LDM1OntuOiJLUkFOR0UyIn0sMzY6e246IlBST1RFQyJ9LDM3OntuOiJGT09URVIifSwzODp7bjoiSEVBREVSIn0sMzk6e246IlNFVFVQIn0sNDA6e246Ik1BUkdJTlMifSw0MTp7bjoiTEFCRUxGTVQi'@; put 'fSw0Mjp7bjoiVElUTEVTIn0sNDM6e246IlNIRUVUSlMifSw0NTp7bjoiR1JBUEgifSw0Njp7bjoiTkdSQVBIIn0sNDc6e246IkNBTENDT1VOVCJ9LDQ4OntuOiJVTkZPUk1BVFRFRCJ9LDQ5OntuOiJDVVJTT1JXMTIifSw1MDp7bjoiV0lORE9XIn0sNTE6e246IlNUUklORyIsZjpsfSw1NTp7'@; put 'bjoiUEFTU1dPUkQifSw1Njp7bjoiTE9DS0VEIn0sNjA6e246IlFVRVJZIn0sNjE6e246IlFVRVJZTkFNRSJ9LDYyOntuOiJQUklOVCJ9LDYzOntuOiJQUklOVE5BTUUifSw2NDp7bjoiR1JBUEgyIn0sNjU6e246IkdSQVBITkFNRSJ9LDY2OntuOiJaT09NIn0sNjc6e246IlNZTVNQTElUIn0s'@; put 'Njg6e246Ik5TUk9XUyJ9LDY5OntuOiJOU0NPTFMifSw3MDp7bjoiUlVMRVIifSw3MTp7bjoiTk5BTUUifSw3Mjp7bjoiQUNPTU0ifSw3Mzp7bjoiQU1BQ1JPIn0sNzQ6e246IlBBUlNFIn0sMTAyOntuOiJQUkFOR0VTPz8ifSwxMDM6e246IlJSQU5HRVM/PyJ9LDEwNDp7bjoiRk5BTUU/PyJ9'@; put 'LDEwNTp7bjoiTVJBTkdFUz8/In0sMjA0OntuOiJTSEVFVE5BTUVDUyIsZjpyZX0sMjIyOntuOiJTSEVFVE5BTUVMUCIsZjpmdW5jdGlvbiBkZShDLFUpe3ZhciBPPUNbQy5sKytdO08+VS0xJiYoTz1VLTEpO2Zvcih2YXIgRD0iIjtELmxlbmd0aDxPOylEKz1TdHJpbmcuZnJvbUNoYXJDb2Rl'@; put 'KENbQy5sKytdKTtyZXR1cm4gRH19LDY1NTM1OntuOiIifX0sSz17MDp7bjoiQk9GIn0sMTp7bjoiRU9GIn0sMjp7bjoiUEFTU1dPUkQifSwzOntuOiJDQUxDU0VUIn0sNDp7bjoiV0lORE9XU0VUIn0sNTp7bjoiU0hFRVRDRUxMUFRSIn0sNjp7bjoiU0hFRVRMQVlPVVQifSw3OntuOiJDT0xV'@; put 'TU5XSURUSCJ9LDg6e246IkhJRERFTkNPTFVNTiJ9LDk6e246IlVTRVJSQU5HRSJ9LDEwOntuOiJTWVNURU1SQU5HRSJ9LDExOntuOiJaRVJPRk9SQ0UifSwxMjp7bjoiU09SVEtFWURJUiJ9LDEzOntuOiJGSUxFU0VBTCJ9LDE0OntuOiJEQVRBRklMTE5VTVMifSwxNTp7bjoiUFJJTlRNQUlO'@; put 'In0sMTY6e246IlBSSU5UU1RSSU5HIn0sMTc6e246IkdSQVBITUFJTiJ9LDE4OntuOiJHUkFQSFNUUklORyJ9LDE5OntuOiI/PyJ9LDIwOntuOiJFUlJDRUxMIn0sMjE6e246Ik5BQ0VMTCJ9LDIyOntuOiJMQUJFTDE2IixmOmZ1bmN0aW9uIEkoQyxVKXt2YXIgTz1NKEMpO3JldHVybiBPWzFd'@; put 'LnQ9InMiLE9bMV0udj1DLnJlYWRfc2hpZnQoVS00LCJjc3RyIiksT319LDIzOntuOiJOVU1CRVIxNyIsZjpSfSwyNDp7bjoiTlVNQkVSMTgiLGY6ZnVuY3Rpb24gUChDLFUpe3ZhciBPPU0oQyk7T1sxXS52PUMucmVhZF9zaGlmdCgyKTt2YXIgRD1PWzFdLnY+PjE7aWYoMSZPWzFdLnYpc3dp'@; put 'dGNoKDcmRCl7Y2FzZSAwOkQ9NWUzKihEPj4zKTticmVhaztjYXNlIDE6RD01MDAqKEQ+PjMpO2JyZWFrO2Nhc2UgMjpEPShEPj4zKS8yMDticmVhaztjYXNlIDM6RD0oRD4+MykvMjAwO2JyZWFrO2Nhc2UgNDpEPShEPj4zKS8yZTM7YnJlYWs7Y2FzZSA1OkQ9KEQ+PjMpLzJlNDticmVhaztj'@; put 'YXNlIDY6RD0oRD4+MykvMTY7YnJlYWs7Y2FzZSA3OkQ9KEQ+PjMpLzY0fXJldHVybiBPWzFdLnY9RCxPfX0sMjU6e246IkZPUk1VTEExOSIsZjpmdW5jdGlvbiBYKEMsVSl7dmFyIE89UihDKTtyZXR1cm4gQy5sKz1VLTE0LE99fSwyNjp7bjoiRk9STVVMQTFBIn0sMjc6e246IlhGT1JNQVQi'@; put 'LGY6ZnVuY3Rpb24gRmUoQyxVKXtmb3IodmFyIE89e30sRD1DLmwrVTtDLmw8RDspe3ZhciBqPUMucmVhZF9zaGlmdCgyKTtpZigxNGUzPT1qKXtmb3IoT1tqXT1bMCwiIl0sT1tqXVswXT1DLnJlYWRfc2hpZnQoMik7Q1tDLmxdOylPW2pdWzFdKz1TdHJpbmcuZnJvbUNoYXJDb2RlKENbQy5s'@; put 'XSksQy5sKys7Qy5sKyt9fXJldHVybiBPfX0sMjg6e246IkRUTEFCRUxNSVNDIn0sMjk6e246IkRUTEFCRUxDRUxMIn0sMzA6e246IkdSQVBIV0lORE9XIn0sMzE6e246IkNQQSJ9LDMyOntuOiJMUExBVVRPIn0sMzM6e246IlFVRVJZIn0sMzQ6e246IkhJRERFTlNIRUVUIn0sMzU6e246Ij8/'@; put 'In0sMzc6e246Ik5VTUJFUjI1IixmOmZ1bmN0aW9uIGIoQyxVKXt2YXIgTz1NKEMpLEQ9Qy5yZWFkX3NoaWZ0KDQpO3JldHVybiBPWzFdLnY9RD4+NixPfX0sMzg6e246Ij8/In0sMzk6e246Ik5VTUJFUjI3IixmOmVlfSw0MDp7bjoiRk9STVVMQTI4IixmOmZ1bmN0aW9uIGxlKEMsVSl7dmFy'@; put 'IE89ZWUoQyk7cmV0dXJuIEMubCs9VS0xMCxPfX0sMTQyOntuOiI/PyJ9LDE0Nzp7bjoiPz8ifSwxNTA6e246Ij8/In0sMTUxOntuOiI/PyJ9LDE1Mjp7bjoiPz8ifSwxNTM6e246Ij8/In0sMTU0OntuOiI/PyJ9LDE1NTp7bjoiPz8ifSwxNTY6e246Ij8/In0sMTYzOntuOiI/PyJ9LDE3NDp7'@; put 'bjoiPz8ifSwxNzU6e246Ij8/In0sMTc2OntuOiI/PyJ9LDE3Nzp7bjoiPz8ifSwxODQ6e246Ij8/In0sMTg1OntuOiI/PyJ9LDE4Njp7bjoiPz8ifSwxODc6e246Ij8/In0sMTg4OntuOiI/PyJ9LDE5NTp7bjoiPz8ifSwyMDE6e246Ij8/In0sMjA0OntuOiJTSEVFVE5BTUVDUyIsZjpyZX0s'@; put 'MjA1OntuOiI/PyJ9LDIwNjp7bjoiPz8ifSwyMDc6e246Ij8/In0sMjA4OntuOiI/PyJ9LDI1Njp7bjoiPz8ifSwyNTk6e246Ij8/In0sMjYwOntuOiI/PyJ9LDI2MTp7bjoiPz8ifSwyNjI6e246Ij8/In0sMjYzOntuOiI/PyJ9LDI2NTp7bjoiPz8ifSwyNjY6e246Ij8/In0sMjY3OntuOiI/'@; put 'PyJ9LDI2ODp7bjoiPz8ifSwyNzA6e246Ij8/In0sMjcxOntuOiI/PyJ9LDM4NDp7bjoiPz8ifSwzODk6e246Ij8/In0sMzkwOntuOiI/PyJ9LDM5Mzp7bjoiPz8ifSwzOTY6e246Ij8/In0sNTEyOntuOiI/PyJ9LDUxNDp7bjoiPz8ifSw1MTM6e246Ij8/In0sNTE2OntuOiI/PyJ9LDUxNzp7'@; put 'bjoiPz8ifSw2NDA6e246Ij8/In0sNjQxOntuOiI/PyJ9LDY0Mjp7bjoiPz8ifSw2NDM6e246Ij8/In0sNjQ0OntuOiI/PyJ9LDY0NTp7bjoiPz8ifSw2NDY6e246Ij8/In0sNjQ3OntuOiI/PyJ9LDY0ODp7bjoiPz8ifSw2NTg6e246Ij8/In0sNjU5OntuOiI/PyJ9LDY2MDp7bjoiPz8ifSw2'@; put 'NjE6e246Ij8/In0sNjYyOntuOiI/PyJ9LDY2NTp7bjoiPz8ifSw2NjY6e246Ij8/In0sNzY4OntuOiI/PyJ9LDc3Mjp7bjoiPz8ifSwxNTM3OntuOiJTSEVFVElORk9RUCIsZjpmdW5jdGlvbiB1ZShDLFUsTyl7aWYoTy5xcHJvJiYhKFU8MjEpKXt2YXIgRD1DLnJlYWRfc2hpZnQoMSk7cmV0'@; put 'dXJuIEMubCs9MTcsQy5sKz0xLEMubCs9MixbRCxDLnJlYWRfc2hpZnQoVS0yMSwiY3N0ciIpXX19fSwxNjAwOntuOiI/PyJ9LDE2MDI6e246Ij8/In0sMTc5Mzp7bjoiPz8ifSwxNzk0OntuOiI/PyJ9LDE3OTU6e246Ij8/In0sMTc5Njp7bjoiPz8ifSwxOTIwOntuOiI/PyJ9LDIwNDg6e246'@; put 'Ij8/In0sMjA0OTp7bjoiPz8ifSwyMDUyOntuOiI/PyJ9LDI2ODg6e246Ij8/In0sMTA5OTg6e246Ij8/In0sMTI4NDk6e246Ij8/In0sMjgyMzM6e246Ij8/In0sMjg0ODQ6e246Ij8/In0sNjU1MzU6e246IiJ9fTtyZXR1cm57c2hlZXRfdG9fd2sxOmZ1bmN0aW9uIGEoQyxVKXt2YXIgTz1V'@; put 'fHx7fTtpZigrTy5jb2RlcGFnZT49MCYmTXIoK08uY29kZXBhZ2UpLCJzdHJpbmciPT1PLnR5cGUpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgd3JpdGUgV0sxIHRvIEpTIHN0cmluZyIpO3ZhciBEPVNyKCksaj1EZShDWyIhcmVmIl0pLHNlPUFycmF5LmlzQXJyYXkoQyksWj1bXTthZShELDAs'@; put 'ZnVuY3Rpb24gaShDKXt2YXIgVT1HKDIpO3JldHVybiBVLndyaXRlX3NoaWZ0KDIsQyksVX0oMTAzMCkpLGFlKEQsNixmdW5jdGlvbiBjKEMpe3ZhciBVPUcoOCk7cmV0dXJuIFUud3JpdGVfc2hpZnQoMixDLnMuYyksVS53cml0ZV9zaGlmdCgyLEMucy5yKSxVLndyaXRlX3NoaWZ0KDIsQy5l'@; put 'LmMpLFUud3JpdGVfc2hpZnQoMixDLmUuciksVX0oaikpO2Zvcih2YXIgUT1NYXRoLm1pbihqLmUuciw4MTkxKSxZPWoucy5yO1k8PVE7KytZKWZvcih2YXIgRWU9S2UoWSksQT1qLnMuYztBPD1qLmUuYzsrK0Epe1k9PT1qLnMuciYmKFpbQV09SGUoQSkpO3ZhciBBZT1zZT8oQ1tZXXx8W10p'@; put 'W0FdOkNbWltBXStFZV07QWUmJiJ6IiE9QWUudCYmKCJuIj09QWUudD8oMHxBZS52KT09QWUudiYmQWUudj49LTMyNzY4JiZBZS52PD0zMjc2Nz9hZShELDEzLGQoWSxBLEFlLnYpKTphZShELDE0LHUoWSxBLEFlLnYpKTphZShELDE1LGgoWSxBLGF0KEFlKS5zbGljZSgwLDIzOSkpKSl9cmV0'@; put 'dXJuIGFlKEQsMSksRC5lbmQoKX0sYm9va190b193azM6ZnVuY3Rpb24gbihDLFUpe3ZhciBPPVV8fHt9O2lmKCtPLmNvZGVwYWdlPj0wJiZNcigrTy5jb2RlcGFnZSksInN0cmluZyI9PU8udHlwZSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCB3cml0ZSBXSzMgdG8gSlMgc3RyaW5nIik7dmFy'@; put 'IEQ9U3IoKTthZShELDAsZnVuY3Rpb24gcyhDKXt2YXIgVT1HKDI2KTtVLndyaXRlX3NoaWZ0KDIsNDA5NiksVS53cml0ZV9zaGlmdCgyLDQpLFUud3JpdGVfc2hpZnQoNCwwKTtmb3IodmFyIE89MCxEPTAsaj0wLHNlPTA7c2U8Qy5TaGVldE5hbWVzLmxlbmd0aDsrK3NlKXt2YXIgUT1DLlNo'@; put 'ZWV0c1tDLlNoZWV0TmFtZXNbc2VdXTtpZihRJiZRWyIhcmVmIl0peysrajt2YXIgWT1QcihRWyIhcmVmIl0pO088WS5lLnImJihPPVkuZS5yKSxEPFkuZS5jJiYoRD1ZLmUuYyl9fXJldHVybiBPPjgxOTEmJihPPTgxOTEpLFUud3JpdGVfc2hpZnQoMixPKSxVLndyaXRlX3NoaWZ0KDEsaiks'@; put 'VS53cml0ZV9zaGlmdCgxLEQpLFUud3JpdGVfc2hpZnQoMiwwKSxVLndyaXRlX3NoaWZ0KDIsMCksVS53cml0ZV9zaGlmdCgxLDEpLFUud3JpdGVfc2hpZnQoMSwyKSxVLndyaXRlX3NoaWZ0KDQsMCksVS53cml0ZV9zaGlmdCg0LDApLFV9KEMpKTtmb3IodmFyIGo9MCxzZT0wO2o8Qy5TaGVl'@; put 'dE5hbWVzLmxlbmd0aDsrK2opKEMuU2hlZXRzW0MuU2hlZXROYW1lc1tqXV18fHt9KVsiIXJlZiJdJiZhZShELDI3LGNlKEMuU2hlZXROYW1lc1tqXSxzZSsrKSk7dmFyIFo9MDtmb3Ioaj0wO2o8Qy5TaGVldE5hbWVzLmxlbmd0aDsrK2ope3ZhciBRPUMuU2hlZXRzW0MuU2hlZXROYW1lc1tq'@; put 'XV07aWYoUSYmUVsiIXJlZiJdKXtmb3IodmFyIFk9RGUoUVsiIXJlZiJdKSxFZT1BcnJheS5pc0FycmF5KFEpLEE9W10sUGU9TWF0aC5taW4oWS5lLnIsODE5MSksQWU9WS5zLnI7QWU8PVBlOysrQWUpZm9yKHZhciBMZT1LZShBZSksQ2U9WS5zLmM7Q2U8PVkuZS5jOysrQ2Upe0FlPT09WS5z'@; put 'LnImJihBW0NlXT1IZShDZSkpO3ZhciBxZT1FZT8oUVtBZV18fFtdKVtDZV06UVtBW0NlXStMZV07cWUmJiJ6IiE9cWUudCYmKCJuIj09cWUudD9hZShELDIzLFYoQWUsQ2UsWixxZS52KSk6YWUoRCwyMix5KEFlLENlLFosYXQocWUpLnNsaWNlKDAsMjM5KSkpKX0rK1p9fXJldHVybiBhZShE'@; put 'LDEpLEQuZW5kKCl9LHRvX3dvcmtib29rOmZ1bmN0aW9uIHQoQyxVKXtzd2l0Y2goVS50eXBlKXtjYXNlImJhc2U2NCI6cmV0dXJuIHIoSXIoT3IoQykpLFUpO2Nhc2UiYmluYXJ5IjpyZXR1cm4gcihJcihDKSxVKTtjYXNlImJ1ZmZlciI6Y2FzZSJhcnJheSI6cmV0dXJuIHIoQyxVKX10aHJv'@; put 'dyJVbnN1cHBvcnRlZCB0eXBlICIrVS50eXBlfX19KCksd2g9ZnVuY3Rpb24oKXt2YXIgZT1GYSgidCIpLHQ9RmEoInJQciIpO2Z1bmN0aW9uIHIoaSl7dmFyIHM9aS5tYXRjaChlKTtpZighcylyZXR1cm57dDoicyIsdjoiIn07dmFyIGY9e3Q6InMiLHY6SWUoc1sxXSl9LGM9aS5tYXRjaCh0'@; put 'KTtyZXR1cm4gYyYmKGYucz1mdW5jdGlvbiBfaChlKXt2YXIgdD17fSxyPWUubWF0Y2godnIpLGE9MCxuPSExO2lmKHIpZm9yKDthIT1yLmxlbmd0aDsrK2Epe3ZhciBpPW1lKHJbYV0pO3N3aXRjaChpWzBdLnJlcGxhY2UoL1x3KjovZywiIikpe2Nhc2UiPGNvbmRlbnNlIjpjYXNlIjxleHRl'@; put 'bmQiOmJyZWFrO2Nhc2UiPHNoYWRvdyI6aWYoIWkudmFsKWJyZWFrO2Nhc2UiPHNoYWRvdz4iOmNhc2UiPHNoYWRvdy8+Ijp0LnNoYWRvdz0xO2JyZWFrO2Nhc2UiPC9zaGFkb3c+IjpicmVhaztjYXNlIjxjaGFyc2V0IjppZigiMSI9PWkudmFsKWJyZWFrO3QuY3A9TDBbcGFyc2VJbnQoaS52'@; put 'YWwsMTApXTticmVhaztjYXNlIjxvdXRsaW5lIjppZighaS52YWwpYnJlYWs7Y2FzZSI8b3V0bGluZT4iOmNhc2UiPG91dGxpbmUvPiI6dC5vdXRsaW5lPTE7YnJlYWs7Y2FzZSI8L291dGxpbmU+IjpicmVhaztjYXNlIjxyRm9udCI6dC5uYW1lPWkudmFsO2JyZWFrO2Nhc2UiPHN6Ijp0LnN6'@; put 'PWkudmFsO2JyZWFrO2Nhc2UiPHN0cmlrZSI6aWYoIWkudmFsKWJyZWFrO2Nhc2UiPHN0cmlrZT4iOmNhc2UiPHN0cmlrZS8+Ijp0LnN0cmlrZT0xO2JyZWFrO2Nhc2UiPC9zdHJpa2U+IjpicmVhaztjYXNlIjx1IjppZighaS52YWwpYnJlYWs7c3dpdGNoKGkudmFsKXtjYXNlImRvdWJsZSI6'@; put 'dC51dmFsPSJkb3VibGUiO2JyZWFrO2Nhc2Uic2luZ2xlQWNjb3VudGluZyI6dC51dmFsPSJzaW5nbGUtYWNjb3VudGluZyI7YnJlYWs7Y2FzZSJkb3VibGVBY2NvdW50aW5nIjp0LnV2YWw9ImRvdWJsZS1hY2NvdW50aW5nIn1jYXNlIjx1PiI6Y2FzZSI8dS8+Ijp0LnU9MTticmVhaztjYXNl'@; put 'IjwvdT4iOmJyZWFrO2Nhc2UiPGIiOmlmKCIwIj09aS52YWwpYnJlYWs7Y2FzZSI8Yj4iOmNhc2UiPGIvPiI6dC5iPTE7YnJlYWs7Y2FzZSI8L2I+IjpicmVhaztjYXNlIjxpIjppZigiMCI9PWkudmFsKWJyZWFrO2Nhc2UiPGk+IjpjYXNlIjxpLz4iOnQuaT0xO2JyZWFrO2Nhc2UiPC9pPiI6'@; put 'YnJlYWs7Y2FzZSI8Y29sb3IiOmkucmdiJiYodC5jb2xvcj1pLnJnYi5zbGljZSgyLDgpKTticmVhaztjYXNlIjxjb2xvcj4iOmNhc2UiPGNvbG9yLz4iOmNhc2UiPC9jb2xvcj4iOmJyZWFrO2Nhc2UiPGZhbWlseSI6dC5mYW1pbHk9aS52YWw7YnJlYWs7Y2FzZSI8ZmFtaWx5PiI6Y2FzZSI8'@; put 'ZmFtaWx5Lz4iOmNhc2UiPC9mYW1pbHk+IjpicmVhaztjYXNlIjx2ZXJ0QWxpZ24iOnQudmFsaWduPWkudmFsO2JyZWFrO2Nhc2UiPHZlcnRBbGlnbj4iOmNhc2UiPHZlcnRBbGlnbi8+IjpjYXNlIjwvdmVydEFsaWduPiI6Y2FzZSI8c2NoZW1lIjpjYXNlIjxzY2hlbWU+IjpjYXNlIjxzY2hl'@; put 'bWUvPiI6Y2FzZSI8L3NjaGVtZT4iOmNhc2UiPGV4dExzdCI6Y2FzZSI8ZXh0THN0PiI6Y2FzZSI8L2V4dExzdD4iOmJyZWFrO2Nhc2UiPGV4dCI6bj0hMDticmVhaztjYXNlIjwvZXh0PiI6bj0hMTticmVhaztkZWZhdWx0OmlmKDQ3IT09aVswXS5jaGFyQ29kZUF0KDEpJiYhbil0aHJvdyBu'@; put 'ZXcgRXJyb3IoIlVucmVjb2duaXplZCByaWNoIGZvcm1hdCAiK2lbMF0pfX1yZXR1cm4gdH0oY1sxXSkpLGZ9dmFyIGE9LzwoPzpcdys6KT9yPi9nLG49LzxcLyg/Olx3KzopP3I+LztyZXR1cm4gZnVuY3Rpb24ocyl7cmV0dXJuIHMucmVwbGFjZShhLCIiKS5zcGxpdChuKS5tYXAocikuZmls'@; put 'dGVyKGZ1bmN0aW9uKGYpe3JldHVybiBmLnZ9KX19KCksa2g9ZnVuY3Rpb24oKXt2YXIgdD0vKFxyXG58XG4pL2c7ZnVuY3Rpb24gYShuKXt2YXIgaT1bW10sbi52LFtdXTtyZXR1cm4gbi52PyhuLnMmJmZ1bmN0aW9uIHIobixpLHMpe3ZhciBmPVtdO24udSYmZi5wdXNoKCJ0ZXh0LWRlY29y'@; put 'YXRpb246IHVuZGVybGluZTsiKSxuLnV2YWwmJmYucHVzaCgidGV4dC11bmRlcmxpbmUtc3R5bGU6IituLnV2YWwrIjsiKSxuLnN6JiZmLnB1c2goImZvbnQtc2l6ZToiK24uc3orInB0OyIpLG4ub3V0bGluZSYmZi5wdXNoKCJ0ZXh0LWVmZmVjdDogb3V0bGluZTsiKSxuLnNoYWRvdyYmZi5w'@; put 'dXNoKCJ0ZXh0LXNoYWRvdzogYXV0bzsiKSxpLnB1c2goJzxzcGFuIHN0eWxlPSInK2Yuam9pbigiIikrJyI+Jyksbi5iJiYoaS5wdXNoKCI8Yj4iKSxzLnB1c2goIjwvYj4iKSksbi5pJiYoaS5wdXNoKCI8aT4iKSxzLnB1c2goIjwvaT4iKSksbi5zdHJpa2UmJihpLnB1c2goIjxzPiIpLHMu'@; put 'cHVzaCgiPC9zPiIpKTt2YXIgYz1uLnZhbGlnbnx8IiI7InN1cGVyc2NyaXB0Ij09Y3x8InN1cGVyIj09Yz9jPSJzdXAiOiJzdWJzY3JpcHQiPT1jJiYoYz0ic3ViIiksIiIhPWMmJihpLnB1c2goIjwiK2MrIj4iKSxzLnB1c2goIjwvIitjKyI+IikpLHMucHVzaCgiPC9zcGFuPiIpfShuLnMs'@; put 'aVswXSxpWzJdKSxpWzBdLmpvaW4oIiIpK2lbMV0ucmVwbGFjZSh0LCI8YnIvPiIpK2lbMl0uam9pbigiIikpOiIifXJldHVybiBmdW5jdGlvbihpKXtyZXR1cm4gaS5tYXAoYSkuam9pbigiIil9fSgpLEVoPS88KD86XHcrOik/dFtePl0qPihbXjxdKik8XC8oPzpcdys6KT90Pi9nLFRoPS88'@; put 'KD86XHcrOik/cj4vLFNoPS88KD86XHcrOik/clBoLio/PihbXHNcU10qPyk8XC8oPzpcdys6KT9yUGg+L2c7ZnVuY3Rpb24gU24oZSx0KXt2YXIgcj0hdHx8dC5jZWxsSFRNTCxhPXt9O3JldHVybiBlPyhlLm1hdGNoKC9eXHMqPCg/Olx3KzopP3RbXj5dKj4vKT8oYS50PUllKEJlKGUuc2xp'@; put 'Y2UoZS5pbmRleE9mKCI+IikrMSkuc3BsaXQoLzxcLyg/Olx3KzopP3Q+LylbMF18fCIiKSksYS5yPUJlKGUpLHImJihhLmg9JDAoYS50KSkpOmUubWF0Y2goVGgpJiYoYS5yPUJlKGUpLGEudD1JZShCZSgoZS5yZXBsYWNlKFNoLCIiKS5tYXRjaChFaCl8fFtdKS5qb2luKCIiKS5yZXBsYWNl'@; put 'KHZyLCIiKSkpLHImJihhLmg9a2god2goYS5yKSkpKSxhKTp7dDoiIn19dmFyIEZoPS88KD86XHcrOik/c3N0KFtePl0qKT4oW1xzXFNdKik8XC8oPzpcdys6KT9zc3Q+Lyx5aD0vPCg/Olx3KzopPyg/OnNpfHNzdEl0ZW0pPi9nLEFoPS88XC8oPzpcdys6KT8oPzpzaXxzc3RJdGVtKT4vO2Z1'@; put 'bmN0aW9uIG5mKGUpe2lmKHR5cGVvZiBPZTwidSIpcmV0dXJuIE9lLnV0aWxzLmVuY29kZShSdCxlKTtmb3IodmFyIHQ9W10scj1lLnNwbGl0KCIiKSxhPTA7YTxyLmxlbmd0aDsrK2EpdFthXT1yW2FdLmNoYXJDb2RlQXQoMCk7cmV0dXJuIHR9ZnVuY3Rpb24gZHQoZSx0KXt2YXIgcj17fTty'@; put 'ZXR1cm4gci5NYWpvcj1lLnJlYWRfc2hpZnQoMiksci5NaW5vcj1lLnJlYWRfc2hpZnQoMiksdD49NCYmKGUubCs9dC00KSxyfWZ1bmN0aW9uIExoKGUpe2Zvcih2YXIgdD1lLnJlYWRfc2hpZnQoNCkscj1lLmwrdC00LGE9e30sbj1lLnJlYWRfc2hpZnQoNCksaT1bXTtuLS0gPjA7KWkucHVz'@; put 'aCh7dDplLnJlYWRfc2hpZnQoNCksdjplLnJlYWRfc2hpZnQoMCwibHBwNCIpfSk7aWYoYS5uYW1lPWUucmVhZF9zaGlmdCgwLCJscHA0IiksYS5jb21wcz1pLGUubCE9cil0aHJvdyBuZXcgRXJyb3IoIkJhZCBEYXRhU3BhY2VNYXBFbnRyeTogIitlLmwrIiAhPSAiK3IpO3JldHVybiBhfWZ1'@; put 'bmN0aW9uIHNmKGUsdCl7dmFyIHI9ZS5sK3QsYT17fTthLkZsYWdzPTYzJmUucmVhZF9zaGlmdCg0KSxlLmwrPTQsYS5BbGdJRD1lLnJlYWRfc2hpZnQoNCk7dmFyIG49ITE7c3dpdGNoKGEuQWxnSUQpe2Nhc2UgMjYxMjY6Y2FzZSAyNjEyNzpjYXNlIDI2MTI4Om49MzY9PWEuRmxhZ3M7YnJl'@; put 'YWs7Y2FzZSAyNjYyNTpuPTQ9PWEuRmxhZ3M7YnJlYWs7Y2FzZSAwOm49MTY9PWEuRmxhZ3N8fDQ9PWEuRmxhZ3N8fDM2PT1hLkZsYWdzO2JyZWFrO2RlZmF1bHQ6dGhyb3ciVW5yZWNvZ25pemVkIGVuY3J5cHRpb24gYWxnb3JpdGhtOiAiK2EuQWxnSUR9aWYoIW4pdGhyb3cgbmV3IEVycm9y'@; put 'KCJFbmNyeXB0aW9uIEZsYWdzL0FsZ0lEIG1pc21hdGNoIik7cmV0dXJuIGEuQWxnSURIYXNoPWUucmVhZF9zaGlmdCg0KSxhLktleVNpemU9ZS5yZWFkX3NoaWZ0KDQpLGEuUHJvdmlkZXJUeXBlPWUucmVhZF9zaGlmdCg0KSxlLmwrPTgsYS5DU1BOYW1lPWUucmVhZF9zaGlmdChyLWUubD4+'@; put 'MSwidXRmMTZsZSIpLGUubD1yLGF9ZnVuY3Rpb24gZmYoZSx0KXt2YXIgcj17fSxhPWUubCt0O3JldHVybiBlLmwrPTQsci5TYWx0PWUuc2xpY2UoZS5sLGUubCsxNiksZS5sKz0xNixyLlZlcmlmaWVyPWUuc2xpY2UoZS5sLGUubCsxNiksZS5sKz0xNixlLnJlYWRfc2hpZnQoNCksci5WZXJp'@; put 'Zmllckhhc2g9ZS5zbGljZShlLmwsYSksZS5sPWEscn1mdW5jdGlvbiBWaChlKXtpZigzNiE9KDYzJmUucmVhZF9zaGlmdCg0KSkpdGhyb3cgbmV3IEVycm9yKCJFbmNyeXB0aW9uSW5mbyBtaXNtYXRjaCIpO3ZhciByPWUucmVhZF9zaGlmdCg0KTtyZXR1cm57dDoiU3RkIixoOnNmKGUsciks'@; put 'djpmZihlLGUubGVuZ3RoLWUubCl9fWZ1bmN0aW9uIFhoKCl7dGhyb3cgbmV3IEVycm9yKCJGaWxlIGlzIHBhc3N3b3JkLXByb3RlY3RlZDogRUNNQS0zNzYgRXh0ZW5zaWJsZSIpfWZ1bmN0aW9uIEdoKGUpe3ZhciB0PVsic2FsdFNpemUiLCJibG9ja1NpemUiLCJrZXlCaXRzIiwiaGFzaFNp'@; put 'emUiLCJjaXBoZXJBbGdvcml0aG0iLCJjaXBoZXJDaGFpbmluZyIsImhhc2hBbGdvcml0aG0iLCJzYWx0VmFsdWUiXTtlLmwrPTQ7dmFyIHI9ZS5yZWFkX3NoaWZ0KGUubGVuZ3RoLWUubCwidXRmOCIpLGE9e307cmV0dXJuIHIucmVwbGFjZSh2cixmdW5jdGlvbihpKXt2YXIgcz1tZShpKTtz'@; put 'd2l0Y2gocnQoc1swXSkpe2Nhc2UiPD94bWwiOmNhc2UiPGVuY3J5cHRpb24iOmNhc2UiPC9lbmNyeXB0aW9uPiI6Y2FzZSI8L2tleUVuY3J5cHRvcnM+IjpjYXNlIjwva2V5RW5jcnlwdG9yPiI6YnJlYWs7Y2FzZSI8a2V5RGF0YSI6dC5mb3JFYWNoKGZ1bmN0aW9uKGYpe2FbZl09c1tmXX0p'@; put 'O2JyZWFrO2Nhc2UiPGRhdGFJbnRlZ3JpdHkiOmEuZW5jcnlwdGVkSG1hY0tleT1zLmVuY3J5cHRlZEhtYWNLZXksYS5lbmNyeXB0ZWRIbWFjVmFsdWU9cy5lbmNyeXB0ZWRIbWFjVmFsdWU7YnJlYWs7Y2FzZSI8a2V5RW5jcnlwdG9ycz4iOmNhc2UiPGtleUVuY3J5cHRvcnMiOmEuZW5jcz1b'@; put 'XTticmVhaztjYXNlIjxrZXlFbmNyeXB0b3IiOmEudXJpPXMudXJpO2JyZWFrO2Nhc2UiPGVuY3J5cHRlZEtleSI6YS5lbmNzLnB1c2gocyk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBzWzBdfX0pLGF9dmFyIGNmPWZ1bmN0aW9uKCl7dmFyIGU9WzE4NywyNTUsMjU1LDE4NiwyNTUsMjU1LDE4NSwx'@; put 'MjgsMCwxOTAsMTUsMCwxOTEsMTUsMF0sdD1bNTc4NDAsNzQzOSw1MjM4MCwzMzk4NCw0MzY0LDM2MDAsNjE5MDIsMTI2MDYsNjI1OCw1NzY1Nyw1NDI4NywzNDA0MSwxMDI1Miw0MzM3MCwyMDE2M10scj1bNDQ3OTYsMTk5MjksMzk4NTgsMTAwNTMsMjAxMDYsNDAyMTIsMTA3NjEsMzE1ODUs'@; put 'NjMxNzAsNjQ5MzMsNjAyNjcsNTA5MzUsNDAzOTksMTExOTksMTc3NjMsMzU1MjYsMTQ1MywyOTA2LDU4MTIsMTE2MjQsMjMyNDgsODg1LDE3NzAsMzU0MCw3MDgwLDE0MTYwLDI4MzIwLDU2NjQwLDU1MzY5LDQxMTM5LDIwODA3LDQxNjE0LDIxODIxLDQzNjQyLDE3NjIxLDI4NDg1LDU2OTcw'@; put 'LDQ0MzQxLDE5MDE5LDM4MDM4LDE0NjA1LDI5MjEwLDYwMTk1LDUwNzkxLDQwMTc1LDEwNzUxLDIxNTAyLDQzMDA0LDI0NTM3LDE4Mzg3LDM2Nzc0LDM5NDksNzg5OCwxNTc5NiwzMTU5Miw2MzE4NCw0NzIwMSwyNDgwMyw0OTYwNiwzNzgwNSwxNDIwMywyODQwNiw1NjgxMiwxNzgyNCwzNTY0'@; put 'OCwxNjk3LDMzOTQsNjc4OCwxMzU3NiwyNzE1Miw0MzYwMSwxNzUzOSwzNTA3OCw1NTcsMTExNCwyMjI4LDQ0NTYsMzAzODgsNjA3NzYsNTE5NTMsMzQyNDMsNzA3OSwxNDE1OCwyODMxNiwxNDEyOCwyODI1Niw1NjUxMiw0MzQyNSwxNzI1MSwzNDUwMiw3NTk3LDEzMTA1LDI2MjEwLDUyNDIw'@; put 'LDM1MjQxLDg4MywxNzY2LDM1MzIsNDEyOSw4MjU4LDE2NTE2LDMzMDMyLDQ2NTcsOTMxNCwxODYyOF0sbj1mdW5jdGlvbihzLGYpe3JldHVybiBmdW5jdGlvbihzKXtyZXR1cm4gMjU1JihzLzJ8MTI4KnMpfShzXmYpfTtyZXR1cm4gZnVuY3Rpb24ocyl7Zm9yKHZhciBmPW5mKHMpLGM9ZnVu'@; put 'Y3Rpb24ocyl7Zm9yKHZhciBmPXRbcy5sZW5ndGgtMV0sYz0xMDQsbz1zLmxlbmd0aC0xO28+PTA7LS1vKWZvcih2YXIgbD1zW29dLGg9MDs3IT1oOysraCk2NCZsJiYoZl49cltjXSksbCo9MiwtLWM7cmV0dXJuIGZ9KGYpLG89Zi5sZW5ndGgsbD1fdCgxNiksaD0wOzE2IT1oOysraClsW2hd'@; put 'PTA7dmFyIHY7Zm9yKCEoMSZ+bykmJihsW29dPW4oZVswXSxjPj44KSxsWy0tb109bihmW2YubGVuZ3RoLTFdLDI1NSZjKSk7bz4wOylsWy0tb109bihmW29dLGM+PjgpLGxbLS1vXT1uKGZbb10sMjU1JmMpO2ZvcihvPTE1LHY9MTUtZi5sZW5ndGg7dj4wOylsW29dPW4oZVt2XSxjPj44KSwt'@; put 'LXYsbFstLW9dPW4oZltvXSwyNTUmYyksLS1vLC0tdjtyZXR1cm4gbH19KCk7dmFyIG9mPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShuLGkpe3N3aXRjaChpLnR5cGUpe2Nhc2UiYmFzZTY0IjpyZXR1cm4gdChPcihuKSxpKTtjYXNlImJpbmFyeSI6cmV0dXJuIHQobixpKTtjYXNlImJ1ZmZlciI6'@; put 'cmV0dXJuIHQoU2UmJkJ1ZmZlci5pc0J1ZmZlcihuKT9uLnRvU3RyaW5nKCJiaW5hcnkiKTp3dChuKSxpKTtjYXNlImFycmF5IjpyZXR1cm4gdChQdChuKSxpKX10aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCB0eXBlICIraS50eXBlKX1mdW5jdGlvbiB0KG4saSl7dmFyIGY9KGl8fHt9'@; put 'KS5kZW5zZT9bXTp7fSxjPW4ubWF0Y2goL1xcdHJvd2QuKj9cXHJvd1xiL2cpO2lmKCFjLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIlJURiBtaXNzaW5nIHRhYmxlIik7dmFyIG89e3M6e2M6MCxyOjB9LGU6e2M6MCxyOmMubGVuZ3RoLTF9fTtyZXR1cm4gYy5mb3JFYWNoKGZ1bmN0aW9uKGws'@; put 'aCl7QXJyYXkuaXNBcnJheShmKSYmKGZbaF09W10pO2Zvcih2YXIgdix4PS9cXFx3K1xiL2csZD0wLHU9LTE7dj14LmV4ZWMobCk7KXtpZigiXFxjZWxsIj09PXZbMF0pe3ZhciBwPWwuc2xpY2UoZCx4Lmxhc3RJbmRleC12WzBdLmxlbmd0aCk7aWYoIiAiPT1wWzBdJiYocD1wLnNsaWNlKDEp'@; put 'KSwrK3UscC5sZW5ndGgpe3ZhciBrPXt2OnAsdDoicyJ9O0FycmF5LmlzQXJyYXkoZik/ZltoXVt1XT1rOmZbZ2Uoe3I6aCxjOnV9KV09a319ZD14Lmxhc3RJbmRleH11Pm8uZS5jJiYoby5lLmM9dSl9KSxmWyIhcmVmIl09d2UobyksZn1yZXR1cm57dG9fd29ya2Jvb2s6ZnVuY3Rpb24gcihu'@; put 'LGkpe3JldHVybiBGdChlKG4saSksaSl9LHRvX3NoZWV0OmUsZnJvbV9zaGVldDpmdW5jdGlvbiBhKG4pe2Zvcih2YXIgZixpPVsie1xccnRmMVxcYW5zaSJdLHM9RGUoblsiIXJlZiJdKSxjPUFycmF5LmlzQXJyYXkobiksbz1zLnMucjtvPD1zLmUucjsrK28pe2kucHVzaCgiXFx0cm93ZFxc'@; put 'dHJhdXRvZml0MSIpO2Zvcih2YXIgbD1zLnMuYztsPD1zLmUuYzsrK2wpaS5wdXNoKCJcXGNlbGx4IisobCsxKSk7Zm9yKGkucHVzaCgiXFxwYXJkXFxpbnRibCIpLGw9cy5zLmM7bDw9cy5lLmM7KytsKXt2YXIgaD1nZSh7cjpvLGM6bH0pOyhmPWM/KG5bb118fFtdKVtsXTpuW2hdKSYmKG51'@; put 'bGwhPWYudnx8Zi5mJiYhZi5GKSYmKGkucHVzaCgiICIrKGYud3x8KGF0KGYpLGYudykpKSxpLnB1c2goIlxcY2VsbCIpKX1pLnB1c2goIlxccGFyZFxcaW50YmxcXHJvdyIpfXJldHVybiBpLmpvaW4oIiIpKyJ9In19fSgpO2Z1bmN0aW9uIGJhKGUpe2Zvcih2YXIgdD0wLHI9MTszIT10Oysr'@; put 'dClyPTI1NipyKyhlW3RdPjI1NT8yNTU6ZVt0XTwwPzA6ZVt0XSk7cmV0dXJuIHIudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkuc2xpY2UoMSl9ZnVuY3Rpb24gVDAoZSx0KXtpZigwPT09dClyZXR1cm4gZTt2YXIgcj1mdW5jdGlvbiBRaChlKXt2YXIgdD1lWzBdLzI1NSxyPWVbMV0vMjU1'@; put 'LGE9ZVsyXS8yNTUsbj1NYXRoLm1heCh0LHIsYSksaT1NYXRoLm1pbih0LHIsYSkscz1uLWk7aWYoMD09PXMpcmV0dXJuWzAsMCx0XTt2YXIgYyxmPTAsbz1uK2k7c3dpdGNoKGM9cy8obz4xPzItbzpvKSxuKXtjYXNlIHQ6Zj0oKHItYSkvcys2KSU2O2JyZWFrO2Nhc2UgcjpmPShhLXQpL3Mr'@; put 'MjticmVhaztjYXNlIGE6Zj0odC1yKS9zKzR9cmV0dXJuW2YvNixjLG8vMl19KGZ1bmN0aW9uIFpoKGUpe3ZhciB0PWUuc2xpY2UoIiMiPT09ZVswXT8xOjApLnNsaWNlKDAsNik7cmV0dXJuW3BhcnNlSW50KHQuc2xpY2UoMCwyKSwxNikscGFyc2VJbnQodC5zbGljZSgyLDQpLDE2KSxwYXJz'@; put 'ZUludCh0LnNsaWNlKDQsNiksMTYpXX0oZSkpO3JldHVybiByWzJdPXQ8MD9yWzJdKigxK3QpOjEtKDEtclsyXSkqKDEtdCksYmEoZnVuY3Rpb24gZTEoZSl7dmFyIGMscj1lWzFdLGE9ZVsyXSxuPTIqciooYTwuNT9hOjEtYSksaT1hLW4vMixzPVtpLGksaV0sZj02KmVbMF07aWYoMCE9PXIp'@; put 'c3dpdGNoKDB8Zil7Y2FzZSAwOmNhc2UgNjpjPW4qZixzWzBdKz1uLHNbMV0rPWM7YnJlYWs7Y2FzZSAxOnNbMF0rPWM9biooMi1mKSxzWzFdKz1uO2JyZWFrO2Nhc2UgMjpjPW4qKGYtMiksc1sxXSs9bixzWzJdKz1jO2JyZWFrO2Nhc2UgMzpzWzFdKz1jPW4qKDQtZiksc1syXSs9bjticmVh'@; put 'aztjYXNlIDQ6Yz1uKihmLTQpLHNbMl0rPW4sc1swXSs9YzticmVhaztjYXNlIDU6c1syXSs9Yz1uKig2LWYpLHNbMF0rPW59Zm9yKHZhciBvPTA7MyE9bzsrK28pc1tvXT1NYXRoLnJvdW5kKDI1NSpzW29dKTtyZXR1cm4gc30ocikpfXZhciBsZj02LHIxPTE1LHQxPTEsd3I9bGY7ZnVuY3Rp'@; put 'b24gUGEoZSl7cmV0dXJuIE1hdGguZmxvb3IoKGUrTWF0aC5yb3VuZCgxMjgvd3IpLzI1Nikqd3IpfWZ1bmN0aW9uIExhKGUpe3JldHVybiBNYXRoLmZsb29yKChlLTUpL3dyKjEwMCsuNSkvMTAwfWZ1bmN0aW9uIFMwKGUpe3JldHVybiBNYXRoLnJvdW5kKChlKndyKzUpL3dyKjI1NikvMjU2'@; put 'fWZ1bmN0aW9uIHluKGUpe3JldHVybiBTMChMYShQYShlKSkpfWZ1bmN0aW9uIEFuKGUpe3ZhciB0PU1hdGguYWJzKGUteW4oZSkpLHI9d3I7aWYodD4uMDA1KWZvcih3cj10MTt3cjxyMTsrK3dyKU1hdGguYWJzKGUteW4oZSkpPD10JiYodD1NYXRoLmFicyhlLXluKGUpKSxyPXdyKTt3cj1y'@; put 'fWZ1bmN0aW9uIEt0KGUpe2Uud2lkdGg/KGUud3B4PVBhKGUud2lkdGgpLGUud2NoPUxhKGUud3B4KSxlLk1EVz13cik6ZS53cHg/KGUud2NoPUxhKGUud3B4KSxlLndpZHRoPVMwKGUud2NoKSxlLk1EVz13cik6Im51bWJlciI9PXR5cGVvZiBlLndjaCYmKGUud2lkdGg9UzAoZS53Y2gpLGUu'@; put 'd3B4PVBhKGUud2lkdGgpLGUuTURXPXdyKSxlLmN1c3RvbVdpZHRoJiZkZWxldGUgZS5jdXN0b21XaWR0aH12YXIgdWY9OTY7ZnVuY3Rpb24gQmEoZSl7cmV0dXJuIDk2KmUvdWZ9ZnVuY3Rpb24gb2EoZSl7cmV0dXJuIGUqdWYvOTZ9dmFyIG4xPXtOb25lOiJub25lIixTb2xpZDoic29saWQi'@; put 'LEdyYXk1MDoibWVkaXVtR3JheSIsR3JheTc1OiJkYXJrR3JheSIsR3JheTI1OiJsaWdodEdyYXkiLEhvcnpTdHJpcGU6ImRhcmtIb3Jpem9udGFsIixWZXJ0U3RyaXBlOiJkYXJrVmVydGljYWwiLFJldmVyc2VEaWFnU3RyaXBlOiJkYXJrRG93biIsRGlhZ1N0cmlwZToiZGFya1VwIixEaWFn'@; put 'Q3Jvc3M6ImRhcmtHcmlkIixUaGlja0RpYWdDcm9zczoiZGFya1RyZWxsaXMiLFRoaW5Ib3J6U3RyaXBlOiJsaWdodEhvcml6b250YWwiLFRoaW5WZXJ0U3RyaXBlOiJsaWdodFZlcnRpY2FsIixUaGluUmV2ZXJzZURpYWdTdHJpcGU6ImxpZ2h0RG93biIsVGhpbkhvcnpDcm9zczoibGlnaHRH'@; put 'cmlkIn0sRjA9WyJudW1GbXRJZCIsImZpbGxJZCIsImZvbnRJZCIsImJvcmRlcklkIiwieGZJZCJdLHkwPVsiYXBwbHlBbGlnbm1lbnQiLCJhcHBseUJvcmRlciIsImFwcGx5RmlsbCIsImFwcGx5Rm9udCIsImFwcGx5TnVtYmVyRm9ybWF0IiwiYXBwbHlQcm90ZWN0aW9uIiwicGl2b3RCdXR0'@; put 'b24iLCJxdW90ZVByZWZpeCJdLGgxPWZ1bmN0aW9uKCl7dmFyIHQ9LzwoPzpcdys6KT9udW1GbXRzKFtePl0qKT5bXFNcc10qPzxcLyg/Olx3KzopP251bUZtdHM+LyxyPS88KD86XHcrOik/Y2VsbFhmcyhbXj5dKik+W1xTXHNdKj88XC8oPzpcdys6KT9jZWxsWGZzPi8sYT0vPCg/Olx3Kzop'@; put 'P2ZpbGxzKFtePl0qKT5bXFNcc10qPzxcLyg/Olx3KzopP2ZpbGxzPi8sbj0vPCg/Olx3KzopP2ZvbnRzKFtePl0qKT5bXFNcc10qPzxcLyg/Olx3KzopP2ZvbnRzPi8saT0vPCg/Olx3KzopP2JvcmRlcnMoW14+XSopPltcU1xzXSo/PFwvKD86XHcrOik/Ym9yZGVycz4vO3JldHVybiBmdW5j'@; put 'dGlvbihmLGMsbyl7dmFyIGgsbD17fTtyZXR1cm4gZj8oKGg9KGY9Zi5yZXBsYWNlKC88IS0tKFtcc1xTXSo/KS0tPi9nbSwiIikucmVwbGFjZSgvPCFET0NUWVBFW15cW10qXFtbXlxdXSpcXT4vZ20sIiIpKS5tYXRjaCh0KSkmJmZ1bmN0aW9uIGMxKGUsdCxyKXt0Lk51bWJlckZtdD1bXTtm'@; put 'b3IodmFyIGE9JGUocGUpLG49MDtuPGEubGVuZ3RoOysrbil0Lk51bWJlckZtdFthW25dXT1wZVthW25dXTt2YXIgaT1lWzBdLm1hdGNoKHZyKTtpZihpKWZvcihuPTA7bjxpLmxlbmd0aDsrK24pe3ZhciBzPW1lKGlbbl0pO3N3aXRjaChydChzWzBdKSl7Y2FzZSI8bnVtRm10cyI6Y2FzZSI8'@; put 'L251bUZtdHM+IjpjYXNlIjxudW1GbXRzLz4iOmNhc2UiPG51bUZtdHM+IjpjYXNlIjwvbnVtRm10PiI6YnJlYWs7Y2FzZSI8bnVtRm10Ijp2YXIgZj1JZShCZShzLmZvcm1hdENvZGUpKSxjPXBhcnNlSW50KHMubnVtRm10SWQsMTApO2lmKHQuTnVtYmVyRm10W2NdPWYsYz4wKXtpZihjPjM5'@; put 'Mil7Zm9yKGM9MzkyO2M+NjAmJm51bGwhPXQuTnVtYmVyRm10W2NdOy0tYyk7dC5OdW1iZXJGbXRbY109Zn1ldChmLGMpfWJyZWFrO2RlZmF1bHQ6aWYoci5XVEYpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitzWzBdKyIgaW4gbnVtRm10cyIpfX19KGgsbCxvKSwoaD1mLm1hdGNo'@; put 'KG4pKSYmZnVuY3Rpb24gZjEoZSx0LHIsYSl7dC5Gb250cz1bXTt2YXIgbj17fSxpPSExOyhlWzBdLm1hdGNoKHZyKXx8W10pLmZvckVhY2goZnVuY3Rpb24ocyl7dmFyIGY9bWUocyk7c3dpdGNoKHJ0KGZbMF0pKXtjYXNlIjxmb250cyI6Y2FzZSI8Zm9udHM+IjpjYXNlIjwvZm9udHM+Ijpj'@; put 'YXNlIjxmb250IjpjYXNlIjxmb250PiI6Y2FzZSI8bmFtZS8+IjpjYXNlIjwvbmFtZT4iOmNhc2UiPHN6Lz4iOmNhc2UiPC9zej4iOmNhc2UiPHZlcnRBbGlnbi8+IjpjYXNlIjwvdmVydEFsaWduPiI6Y2FzZSI8ZmFtaWx5Lz4iOmNhc2UiPC9mYW1pbHk+IjpjYXNlIjxzY2hlbWUvPiI6Y2Fz'@; put 'ZSI8L3NjaGVtZT4iOmNhc2UiPGNvbG9yLz4iOmNhc2UiPC9jb2xvcj4iOmNhc2UiPGV4dExzdCI6Y2FzZSI8ZXh0THN0PiI6Y2FzZSI8L2V4dExzdD4iOmJyZWFrO2Nhc2UiPC9mb250PiI6Y2FzZSI8Zm9udC8+Ijp0LkZvbnRzLnB1c2gobiksbj17fTticmVhaztjYXNlIjxuYW1lIjpmLnZh'@; put 'bCYmKG4ubmFtZT1CZShmLnZhbCkpO2JyZWFrO2Nhc2UiPGIiOm4uYm9sZD1mLnZhbD9XZShmLnZhbCk6MTticmVhaztjYXNlIjxiLz4iOm4uYm9sZD0xO2JyZWFrO2Nhc2UiPGkiOm4uaXRhbGljPWYudmFsP1dlKGYudmFsKToxO2JyZWFrO2Nhc2UiPGkvPiI6bi5pdGFsaWM9MTticmVhaztj'@; put 'YXNlIjx1Ijpzd2l0Y2goZi52YWwpe2Nhc2Uibm9uZSI6bi51bmRlcmxpbmU9MDticmVhaztjYXNlInNpbmdsZSI6bi51bmRlcmxpbmU9MTticmVhaztjYXNlImRvdWJsZSI6bi51bmRlcmxpbmU9MjticmVhaztjYXNlInNpbmdsZUFjY291bnRpbmciOm4udW5kZXJsaW5lPTMzO2JyZWFrO2Nh'@; put 'c2UiZG91YmxlQWNjb3VudGluZyI6bi51bmRlcmxpbmU9MzR9YnJlYWs7Y2FzZSI8dS8+IjpuLnVuZGVybGluZT0xO2JyZWFrO2Nhc2UiPHN0cmlrZSI6bi5zdHJpa2U9Zi52YWw/V2UoZi52YWwpOjE7YnJlYWs7Y2FzZSI8c3RyaWtlLz4iOm4uc3RyaWtlPTE7YnJlYWs7Y2FzZSI8b3V0bGlu'@; put 'ZSI6bi5vdXRsaW5lPWYudmFsP1dlKGYudmFsKToxO2JyZWFrO2Nhc2UiPG91dGxpbmUvPiI6bi5vdXRsaW5lPTE7YnJlYWs7Y2FzZSI8c2hhZG93IjpuLnNoYWRvdz1mLnZhbD9XZShmLnZhbCk6MTticmVhaztjYXNlIjxzaGFkb3cvPiI6bi5zaGFkb3c9MTticmVhaztjYXNlIjxjb25kZW5z'@; put 'ZSI6bi5jb25kZW5zZT1mLnZhbD9XZShmLnZhbCk6MTticmVhaztjYXNlIjxjb25kZW5zZS8+IjpuLmNvbmRlbnNlPTE7YnJlYWs7Y2FzZSI8ZXh0ZW5kIjpuLmV4dGVuZD1mLnZhbD9XZShmLnZhbCk6MTticmVhaztjYXNlIjxleHRlbmQvPiI6bi5leHRlbmQ9MTticmVhaztjYXNlIjxzeiI6'@; put 'Zi52YWwmJihuLnN6PStmLnZhbCk7YnJlYWs7Y2FzZSI8dmVydEFsaWduIjpmLnZhbCYmKG4udmVydEFsaWduPWYudmFsKTticmVhaztjYXNlIjxmYW1pbHkiOmYudmFsJiYobi5mYW1pbHk9cGFyc2VJbnQoZi52YWwsMTApKTticmVhaztjYXNlIjxzY2hlbWUiOmYudmFsJiYobi5zY2hlbWU9'@; put 'Zi52YWwpO2JyZWFrO2Nhc2UiPGNoYXJzZXQiOmlmKCIxIj09Zi52YWwpYnJlYWs7Zi5jb2RlcGFnZT1MMFtwYXJzZUludChmLnZhbCwxMCldO2JyZWFrO2Nhc2UiPGNvbG9yIjppZihuLmNvbG9yfHwobi5jb2xvcj17fSksZi5hdXRvJiYobi5jb2xvci5hdXRvPVdlKGYuYXV0bykpLGYucmdi'@; put 'KW4uY29sb3IucmdiPWYucmdiLnNsaWNlKC02KTtlbHNlIGlmKGYuaW5kZXhlZCl7bi5jb2xvci5pbmRleD1wYXJzZUludChmLmluZGV4ZWQsMTApO3ZhciBjPVZ0W24uY29sb3IuaW5kZXhdOzgxPT1uLmNvbG9yLmluZGV4JiYoYz1WdFsxXSksY3x8KGM9VnRbMV0pLG4uY29sb3IucmdiPWNb'@; put 'MF0udG9TdHJpbmcoMTYpK2NbMV0udG9TdHJpbmcoMTYpK2NbMl0udG9TdHJpbmcoMTYpfWVsc2UgZi50aGVtZSYmKG4uY29sb3IudGhlbWU9cGFyc2VJbnQoZi50aGVtZSwxMCksZi50aW50JiYobi5jb2xvci50aW50PXBhcnNlRmxvYXQoZi50aW50KSksZi50aGVtZSYmci50aGVtZUVsZW1l'@; put 'bnRzJiZyLnRoZW1lRWxlbWVudHMuY2xyU2NoZW1lJiYobi5jb2xvci5yZ2I9VDAoci50aGVtZUVsZW1lbnRzLmNsclNjaGVtZVtuLmNvbG9yLnRoZW1lXS5yZ2Isbi5jb2xvci50aW50fHwwKSkpO2JyZWFrO2Nhc2UiPEFsdGVybmF0ZUNvbnRlbnQiOmNhc2UiPGV4dCI6aT0hMDticmVhaztj'@; put 'YXNlIjwvQWx0ZXJuYXRlQ29udGVudD4iOmNhc2UiPC9leHQ+IjppPSExO2JyZWFrO2RlZmF1bHQ6aWYoYSYmYS5XVEYmJiFpKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkICIrZlswXSsiIGluIGZvbnRzIil9fSl9KGgsbCxjLG8pLChoPWYubWF0Y2goYSkpJiZmdW5jdGlvbiBzMShl'@; put 'LHQscixhKXt0LkZpbGxzPVtdO3ZhciBuPXt9LGk9ITE7KGVbMF0ubWF0Y2godnIpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihzKXt2YXIgZj1tZShzKTtzd2l0Y2gocnQoZlswXSkpe2Nhc2UiPGZpbGxzIjpjYXNlIjxmaWxscz4iOmNhc2UiPC9maWxscz4iOmNhc2UiPC9maWxsPiI6Y2FzZSI8'@; put 'Z3JhZGllbnRGaWxsPiI6Y2FzZSI8cGF0dGVybkZpbGwvPiI6Y2FzZSI8L3BhdHRlcm5GaWxsPiI6Y2FzZSI8YmdDb2xvci8+IjpjYXNlIjwvYmdDb2xvcj4iOmNhc2UiPGZnQ29sb3IvPiI6Y2FzZSI8L2ZnQ29sb3I+IjpjYXNlIjxzdG9wIjpjYXNlIjxzdG9wLz4iOmNhc2UiPC9zdG9wPiI6'@; put 'Y2FzZSI8Y29sb3IiOmNhc2UiPGNvbG9yLz4iOmNhc2UiPC9jb2xvcj4iOmNhc2UiPGV4dExzdCI6Y2FzZSI8ZXh0THN0PiI6Y2FzZSI8L2V4dExzdD4iOmJyZWFrO2Nhc2UiPGZpbGw+IjpjYXNlIjxmaWxsIjpjYXNlIjxmaWxsLz4iOnQuRmlsbHMucHVzaChuPXt9KTticmVhaztjYXNlIjxn'@; put 'cmFkaWVudEZpbGwiOmNhc2UiPC9ncmFkaWVudEZpbGw+Ijp0LkZpbGxzLnB1c2gobiksbj17fTticmVhaztjYXNlIjxwYXR0ZXJuRmlsbCI6Y2FzZSI8cGF0dGVybkZpbGw+IjpmLnBhdHRlcm5UeXBlJiYobi5wYXR0ZXJuVHlwZT1mLnBhdHRlcm5UeXBlKTticmVhaztjYXNlIjxiZ0NvbG9y'@; put 'IjpuLmJnQ29sb3J8fChuLmJnQ29sb3I9e30pLGYuaW5kZXhlZCYmKG4uYmdDb2xvci5pbmRleGVkPXBhcnNlSW50KGYuaW5kZXhlZCwxMCkpLGYudGhlbWUmJihuLmJnQ29sb3IudGhlbWU9cGFyc2VJbnQoZi50aGVtZSwxMCkpLGYudGludCYmKG4uYmdDb2xvci50aW50PXBhcnNlRmxvYXQo'@; put 'Zi50aW50KSksZi5yZ2ImJihuLmJnQ29sb3IucmdiPWYucmdiLnNsaWNlKC02KSk7YnJlYWs7Y2FzZSI8ZmdDb2xvciI6bi5mZ0NvbG9yfHwobi5mZ0NvbG9yPXt9KSxmLnRoZW1lJiYobi5mZ0NvbG9yLnRoZW1lPXBhcnNlSW50KGYudGhlbWUsMTApKSxmLnRpbnQmJihuLmZnQ29sb3IudGlu'@; put 'dD1wYXJzZUZsb2F0KGYudGludCkpLG51bGwhPWYucmdiJiYobi5mZ0NvbG9yLnJnYj1mLnJnYi5zbGljZSgtNikpO2JyZWFrO2Nhc2UiPGV4dCI6aT0hMDticmVhaztjYXNlIjwvZXh0PiI6aT0hMTticmVhaztkZWZhdWx0OmlmKGEmJmEuV1RGJiYhaSl0aHJvdyBuZXcgRXJyb3IoInVucmVj'@; put 'b2duaXplZCAiK2ZbMF0rIiBpbiBmaWxscyIpfX0pfShoLGwsMCxvKSwoaD1mLm1hdGNoKGkpKSYmZnVuY3Rpb24gaTEoZSx0LHIsYSl7dC5Cb3JkZXJzPVtdO3ZhciBuPXt9LGk9ITE7KGVbMF0ubWF0Y2godnIpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihzKXt2YXIgZj1tZShzKTtzd2l0Y2go'@; put 'cnQoZlswXSkpe2Nhc2UiPGJvcmRlcnMiOmNhc2UiPGJvcmRlcnM+IjpjYXNlIjwvYm9yZGVycz4iOmNhc2UiPC9ib3JkZXI+IjpjYXNlIjxsZWZ0Lz4iOmNhc2UiPGxlZnQiOmNhc2UiPGxlZnQ+IjpjYXNlIjwvbGVmdD4iOmNhc2UiPHJpZ2h0Lz4iOmNhc2UiPHJpZ2h0IjpjYXNlIjxyaWdo'@; put 'dD4iOmNhc2UiPC9yaWdodD4iOmNhc2UiPHRvcC8+IjpjYXNlIjx0b3AiOmNhc2UiPHRvcD4iOmNhc2UiPC90b3A+IjpjYXNlIjxib3R0b20vPiI6Y2FzZSI8Ym90dG9tIjpjYXNlIjxib3R0b20+IjpjYXNlIjwvYm90dG9tPiI6Y2FzZSI8ZGlhZ29uYWwiOmNhc2UiPGRpYWdvbmFsPiI6Y2Fz'@; put 'ZSI8ZGlhZ29uYWwvPiI6Y2FzZSI8L2RpYWdvbmFsPiI6Y2FzZSI8aG9yaXpvbnRhbCI6Y2FzZSI8aG9yaXpvbnRhbD4iOmNhc2UiPGhvcml6b250YWwvPiI6Y2FzZSI8L2hvcml6b250YWw+IjpjYXNlIjx2ZXJ0aWNhbCI6Y2FzZSI8dmVydGljYWw+IjpjYXNlIjx2ZXJ0aWNhbC8+IjpjYXNl'@; put 'IjwvdmVydGljYWw+IjpjYXNlIjxzdGFydCI6Y2FzZSI8c3RhcnQ+IjpjYXNlIjxzdGFydC8+IjpjYXNlIjwvc3RhcnQ+IjpjYXNlIjxlbmQiOmNhc2UiPGVuZD4iOmNhc2UiPGVuZC8+IjpjYXNlIjwvZW5kPiI6Y2FzZSI8Y29sb3IiOmNhc2UiPGNvbG9yPiI6Y2FzZSI8Y29sb3IvPiI6Y2Fz'@; put 'ZSI8L2NvbG9yPiI6Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6YnJlYWs7Y2FzZSI8Ym9yZGVyIjpjYXNlIjxib3JkZXI+IjpjYXNlIjxib3JkZXIvPiI6bj17fSxmLmRpYWdvbmFsVXAmJihuLmRpYWdvbmFsVXA9V2UoZi5kaWFnb25hbFVwKSksZi5kaWFn'@; put 'b25hbERvd24mJihuLmRpYWdvbmFsRG93bj1XZShmLmRpYWdvbmFsRG93bikpLHQuQm9yZGVycy5wdXNoKG4pO2JyZWFrO2Nhc2UiPGV4dCI6aT0hMDticmVhaztjYXNlIjwvZXh0PiI6aT0hMTticmVhaztkZWZhdWx0OmlmKGEmJmEuV1RGJiYhaSl0aHJvdyBuZXcgRXJyb3IoInVucmVjb2du'@; put 'aXplZCAiK2ZbMF0rIiBpbiBib3JkZXJzIil9fSl9KGgsbCwwLG8pLChoPWYubWF0Y2gocikpJiZmdW5jdGlvbiBsMShlLHQscil7dC5DZWxsWGY9W107dmFyIGEsbj0hMTsoZVswXS5tYXRjaCh2cil8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3ZhciBzPW1lKGkpLGY9MDtzd2l0Y2gocnQo'@; put 'c1swXSkpe2Nhc2UiPGNlbGxYZnMiOmNhc2UiPGNlbGxYZnM+IjpjYXNlIjxjZWxsWGZzLz4iOmNhc2UiPC9jZWxsWGZzPiI6Y2FzZSI8L3hmPiI6Y2FzZSI8L2FsaWdubWVudD4iOmNhc2UiPHByb3RlY3Rpb24iOmNhc2UiPC9wcm90ZWN0aW9uPiI6Y2FzZSI8cHJvdGVjdGlvbi8+IjpjYXNl'@; put 'IjxleHRMc3QiOmNhc2UiPGV4dExzdD4iOmNhc2UiPC9leHRMc3Q+IjpicmVhaztjYXNlIjx4ZiI6Y2FzZSI8eGYvPiI6Zm9yKGRlbGV0ZShhPXMpWzBdLGY9MDtmPEYwLmxlbmd0aDsrK2YpYVtGMFtmXV0mJihhW0YwW2ZdXT1wYXJzZUludChhW0YwW2ZdXSwxMCkpO2ZvcihmPTA7Zjx5MC5s'@; put 'ZW5ndGg7KytmKWFbeTBbZl1dJiYoYVt5MFtmXV09V2UoYVt5MFtmXV0pKTtpZih0Lk51bWJlckZtdCYmYS5udW1GbXRJZD4zOTIpZm9yKGY9MzkyO2Y+NjA7LS1mKWlmKHQuTnVtYmVyRm10W2EubnVtRm10SWRdPT10Lk51bWJlckZtdFtmXSl7YS5udW1GbXRJZD1mO2JyZWFrfXQuQ2VsbFhm'@; put 'LnB1c2goYSk7YnJlYWs7Y2FzZSI8YWxpZ25tZW50IjpjYXNlIjxhbGlnbm1lbnQvPiI6dmFyIGM9e307cy52ZXJ0aWNhbCYmKGMudmVydGljYWw9cy52ZXJ0aWNhbCkscy5ob3Jpem9udGFsJiYoYy5ob3Jpem9udGFsPXMuaG9yaXpvbnRhbCksbnVsbCE9cy50ZXh0Um90YXRpb24mJihjLnRl'@; put 'eHRSb3RhdGlvbj1zLnRleHRSb3RhdGlvbikscy5pbmRlbnQmJihjLmluZGVudD1zLmluZGVudCkscy53cmFwVGV4dCYmKGMud3JhcFRleHQ9V2Uocy53cmFwVGV4dCkpLGEuYWxpZ25tZW50PWM7YnJlYWs7Y2FzZSI8QWx0ZXJuYXRlQ29udGVudCI6Y2FzZSI8ZXh0IjpuPSEwO2JyZWFrO2Nh'@; put 'c2UiPC9BbHRlcm5hdGVDb250ZW50PiI6Y2FzZSI8L2V4dD4iOm49ITE7YnJlYWs7ZGVmYXVsdDppZihyJiZyLldURiYmIW4pdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitzWzBdKyIgaW4gY2VsbFhmcyIpfX0pfShoLGwsbyksbCk6bH19KCksZzE9cHIsdzE9cHIsUDE9WyI8L2E6'@; put 'bHQxPiIsIjwvYTpkazE+IiwiPC9hOmx0Mj4iLCI8L2E6ZGsyPiIsIjwvYTphY2NlbnQxPiIsIjwvYTphY2NlbnQyPiIsIjwvYTphY2NlbnQzPiIsIjwvYTphY2NlbnQ0PiIsIjwvYTphY2NlbnQ1PiIsIjwvYTphY2NlbnQ2PiIsIjwvYTpobGluaz4iLCI8L2E6Zm9sSGxpbms+Il07ZnVuY3Rp'@; put 'b24gTDEoZSx0LHIpe3QudGhlbWVFbGVtZW50cy5jbHJTY2hlbWU9W107dmFyIGE9e307KGVbMF0ubWF0Y2godnIpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgaT1tZShuKTtzd2l0Y2goaVswXSl7Y2FzZSI8YTpjbHJTY2hlbWUiOmNhc2UiPC9hOmNsclNjaGVtZT4iOmJyZWFrO2Nh'@; put 'c2UiPGE6c3JnYkNsciI6YS5yZ2I9aS52YWw7YnJlYWs7Y2FzZSI8YTpzeXNDbHIiOmEucmdiPWkubGFzdENscjticmVhaztjYXNlIjxhOmRrMT4iOmNhc2UiPC9hOmRrMT4iOmNhc2UiPGE6bHQxPiI6Y2FzZSI8L2E6bHQxPiI6Y2FzZSI8YTpkazI+IjpjYXNlIjwvYTpkazI+IjpjYXNlIjxh'@; put 'Omx0Mj4iOmNhc2UiPC9hOmx0Mj4iOmNhc2UiPGE6YWNjZW50MT4iOmNhc2UiPC9hOmFjY2VudDE+IjpjYXNlIjxhOmFjY2VudDI+IjpjYXNlIjwvYTphY2NlbnQyPiI6Y2FzZSI8YTphY2NlbnQzPiI6Y2FzZSI8L2E6YWNjZW50Mz4iOmNhc2UiPGE6YWNjZW50ND4iOmNhc2UiPC9hOmFjY2Vu'@; put 'dDQ+IjpjYXNlIjxhOmFjY2VudDU+IjpjYXNlIjwvYTphY2NlbnQ1PiI6Y2FzZSI8YTphY2NlbnQ2PiI6Y2FzZSI8L2E6YWNjZW50Nj4iOmNhc2UiPGE6aGxpbms+IjpjYXNlIjwvYTpobGluaz4iOmNhc2UiPGE6Zm9sSGxpbms+IjpjYXNlIjwvYTpmb2xIbGluaz4iOiIvIj09PWlbMF0uY2hh'@; put 'ckF0KDEpPyh0LnRoZW1lRWxlbWVudHMuY2xyU2NoZW1lW1AxLmluZGV4T2YoaVswXSldPWEsYT17fSk6YS5uYW1lPWlbMF0uc2xpY2UoMyxpWzBdLmxlbmd0aC0xKTticmVhaztkZWZhdWx0OmlmKHImJnIuV1RGKXRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkICIraVswXSsiIGluIGNs'@; put 'clNjaGVtZSIpfX0pfWZ1bmN0aW9uIEIxKCl7fWZ1bmN0aW9uIE0xKCl7fXZhciBVMT0vPGE6Y2xyU2NoZW1lKFtePl0qKT5bXHNcU10qPFwvYTpjbHJTY2hlbWU+LyxXMT0vPGE6Zm9udFNjaGVtZShbXj5dKik+W1xzXFNdKjxcL2E6Zm9udFNjaGVtZT4vLEgxPS88YTpmbXRTY2hlbWUoW14+'@; put 'XSopPltcc1xTXSo8XC9hOmZtdFNjaGVtZT4vLFgxPS88YTp0aGVtZUVsZW1lbnRzKFtePl0qKT5bXHNcU10qPFwvYTp0aGVtZUVsZW1lbnRzPi87ZnVuY3Rpb24gdmYoZSx0KXsoIWV8fDA9PT1lLmxlbmd0aCkmJihlPWZ1bmN0aW9uIERuKGUsdCl7aWYodCYmdC50aGVtZVhMU1gpcmV0dXJu'@; put 'IHQudGhlbWVYTFNYO2lmKGUmJiJzdHJpbmciPT10eXBlb2YgZS5yYXcpcmV0dXJuIGUucmF3O3ZhciByPVtlcl07cmV0dXJuIHJbci5sZW5ndGhdPSc8YTp0aGVtZSB4bWxuczphPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvZHJhd2luZ21sLzIwMDYvbWFpbiIgbmFtZT0i'@; put 'T2ZmaWNlIFRoZW1lIj4nLHJbci5sZW5ndGhdPSI8YTp0aGVtZUVsZW1lbnRzPiIscltyLmxlbmd0aF09JzxhOmNsclNjaGVtZSBuYW1lPSJPZmZpY2UiPicscltyLmxlbmd0aF09JzxhOmRrMT48YTpzeXNDbHIgdmFsPSJ3aW5kb3dUZXh0IiBsYXN0Q2xyPSIwMDAwMDAiLz48L2E6ZGsxPics'@; put 'cltyLmxlbmd0aF09JzxhOmx0MT48YTpzeXNDbHIgdmFsPSJ3aW5kb3ciIGxhc3RDbHI9IkZGRkZGRiIvPjwvYTpsdDE+JyxyW3IubGVuZ3RoXT0nPGE6ZGsyPjxhOnNyZ2JDbHIgdmFsPSIxRjQ5N0QiLz48L2E6ZGsyPicscltyLmxlbmd0aF09JzxhOmx0Mj48YTpzcmdiQ2xyIHZhbD0iRUVF'@; put 'Q0UxIi8+PC9hOmx0Mj4nLHJbci5sZW5ndGhdPSc8YTphY2NlbnQxPjxhOnNyZ2JDbHIgdmFsPSI0RjgxQkQiLz48L2E6YWNjZW50MT4nLHJbci5sZW5ndGhdPSc8YTphY2NlbnQyPjxhOnNyZ2JDbHIgdmFsPSJDMDUwNEQiLz48L2E6YWNjZW50Mj4nLHJbci5sZW5ndGhdPSc8YTphY2NlbnQz'@; put 'PjxhOnNyZ2JDbHIgdmFsPSI5QkJCNTkiLz48L2E6YWNjZW50Mz4nLHJbci5sZW5ndGhdPSc8YTphY2NlbnQ0PjxhOnNyZ2JDbHIgdmFsPSI4MDY0QTIiLz48L2E6YWNjZW50ND4nLHJbci5sZW5ndGhdPSc8YTphY2NlbnQ1PjxhOnNyZ2JDbHIgdmFsPSI0QkFDQzYiLz48L2E6YWNjZW50NT4n'@; put 'LHJbci5sZW5ndGhdPSc8YTphY2NlbnQ2PjxhOnNyZ2JDbHIgdmFsPSJGNzk2NDYiLz48L2E6YWNjZW50Nj4nLHJbci5sZW5ndGhdPSc8YTpobGluaz48YTpzcmdiQ2xyIHZhbD0iMDAwMEZGIi8+PC9hOmhsaW5rPicscltyLmxlbmd0aF09JzxhOmZvbEhsaW5rPjxhOnNyZ2JDbHIgdmFsPSI4'@; put 'MDAwODAiLz48L2E6Zm9sSGxpbms+JyxyW3IubGVuZ3RoXT0iPC9hOmNsclNjaGVtZT4iLHJbci5sZW5ndGhdPSc8YTpmb250U2NoZW1lIG5hbWU9Ik9mZmljZSI+JyxyW3IubGVuZ3RoXT0iPGE6bWFqb3JGb250PiIscltyLmxlbmd0aF09JzxhOmxhdGluIHR5cGVmYWNlPSJDYW1icmlhIi8+'@; put 'JyxyW3IubGVuZ3RoXT0nPGE6ZWEgdHlwZWZhY2U9IiIvPicscltyLmxlbmd0aF09JzxhOmNzIHR5cGVmYWNlPSIiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iSnBhbiIgdHlwZWZhY2U9Ilx1ZmYyZFx1ZmYzMyBcdWZmMzBcdTMwYjRcdTMwYjdcdTMwYzNcdTMwYWYiLz4nLHJb'@; put 'ci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iSGFuZyIgdHlwZWZhY2U9Ilx1YjlkMVx1Yzc0MCBcdWFjZTBcdWI1MTUiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iSGFucyIgdHlwZWZhY2U9Ilx1NWI4Ylx1NGY1MyIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJI'@; put 'YW50IiB0eXBlZmFjZT0iXHU2NWIwXHU3ZDMwXHU2NjBlXHU5YWQ0Ii8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkFyYWIiIHR5cGVmYWNlPSJUaW1lcyBOZXcgUm9tYW4iLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iSGViciIgdHlwZWZhY2U9IlRpbWVzIE5ldyBS'@; put 'b21hbiIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJUaGFpIiB0eXBlZmFjZT0iVGFob21hIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkV0aGkiIHR5cGVmYWNlPSJOeWFsYSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJCZW5nIiB0eXBlZmFjZT0i'@; put 'VnJpbmRhIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ikd1anIiIHR5cGVmYWNlPSJTaHJ1dGkiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iS2htciIgdHlwZWZhY2U9Ik1vb2xCb3JhbiIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJLbmRhIiB0eXBl'@; put 'ZmFjZT0iVHVuZ2EiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iR3VydSIgdHlwZWZhY2U9IlJhYXZpIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkNhbnMiIHR5cGVmYWNlPSJFdXBoZW1pYSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJDaGVyIiB0'@; put 'eXBlZmFjZT0iUGxhbnRhZ2VuZXQgQ2hlcm9rZWUiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iWWlpaSIgdHlwZWZhY2U9Ik1pY3Jvc29mdCBZaSBCYWl0aSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJUaWJ0IiB0eXBlZmFjZT0iTWljcm9zb2Z0IEhpbWFsYXlh'@; put 'Ii8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlRoYWEiIHR5cGVmYWNlPSJNViBCb2xpIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkRldmEiIHR5cGVmYWNlPSJNYW5nYWwiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVGVsdSIgdHlwZWZhY2U9Ikdh'@; put 'dXRhbWkiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVGFtbCIgdHlwZWZhY2U9IkxhdGhhIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlN5cmMiIHR5cGVmYWNlPSJFc3RyYW5nZWxvIEVkZXNzYSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJPcnlh'@; put 'IiB0eXBlZmFjZT0iS2FsaW5nYSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJNbHltIiB0eXBlZmFjZT0iS2FydGlrYSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJMYW9vIiB0eXBlZmFjZT0iRG9rQ2hhbXBhIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3Jp'@; put 'cHQ9IlNpbmgiIHR5cGVmYWNlPSJJc2tvb2xhIFBvdGEiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iTW9uZyIgdHlwZWZhY2U9Ik1vbmdvbGlhbiBCYWl0aSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJWaWV0IiB0eXBlZmFjZT0iVGltZXMgTmV3IFJvbWFuIi8+'@; put 'JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlVpZ2giIHR5cGVmYWNlPSJNaWNyb3NvZnQgVWlnaHVyIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ikdlb3IiIHR5cGVmYWNlPSJTeWxmYWVuIi8+JyxyW3IubGVuZ3RoXT0iPC9hOm1ham9yRm9udD4iLHJbci5sZW5ndGhd'@; put 'PSI8YTptaW5vckZvbnQ+IixyW3IubGVuZ3RoXT0nPGE6bGF0aW4gdHlwZWZhY2U9IkNhbGlicmkiLz4nLHJbci5sZW5ndGhdPSc8YTplYSB0eXBlZmFjZT0iIi8+JyxyW3IubGVuZ3RoXT0nPGE6Y3MgdHlwZWZhY2U9IiIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJKcGFuIiB0'@; put 'eXBlZmFjZT0iXHVmZjJkXHVmZjMzIFx1ZmYzMFx1MzBiNFx1MzBiN1x1MzBjM1x1MzBhZiIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJIYW5nIiB0eXBlZmFjZT0iXHViOWQxXHVjNzQwIFx1YWNlMFx1YjUxNSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJIYW5z'@; put 'IiB0eXBlZmFjZT0iXHU1YjhiXHU0ZjUzIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkhhbnQiIHR5cGVmYWNlPSJcdTY1YjBcdTdkMzBcdTY2MGVcdTlhZDQiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iQXJhYiIgdHlwZWZhY2U9IkFyaWFsIi8+JyxyW3IubGVu'@; put 'Z3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkhlYnIiIHR5cGVmYWNlPSJBcmlhbCIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJUaGFpIiB0eXBlZmFjZT0iVGFob21hIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkV0aGkiIHR5cGVmYWNlPSJOeWFsYSIvPicscltyLmxl'@; put 'bmd0aF09JzxhOmZvbnQgc2NyaXB0PSJCZW5nIiB0eXBlZmFjZT0iVnJpbmRhIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ikd1anIiIHR5cGVmYWNlPSJTaHJ1dGkiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iS2htciIgdHlwZWZhY2U9IkRhdW5QZW5oIi8+Jyxy'@; put 'W3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IktuZGEiIHR5cGVmYWNlPSJUdW5nYSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJHdXJ1IiB0eXBlZmFjZT0iUmFhdmkiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iQ2FucyIgdHlwZWZhY2U9IkV1cGhlbWlhIi8+'@; put 'JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkNoZXIiIHR5cGVmYWNlPSJQbGFudGFnZW5ldCBDaGVyb2tlZSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJZaWlpIiB0eXBlZmFjZT0iTWljcm9zb2Z0IFlpIEJhaXRpIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3Jp'@; put 'cHQ9IlRpYnQiIHR5cGVmYWNlPSJNaWNyb3NvZnQgSGltYWxheWEiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVGhhYSIgdHlwZWZhY2U9Ik1WIEJvbGkiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iRGV2YSIgdHlwZWZhY2U9Ik1hbmdhbCIvPicscltyLmxlbmd0'@; put 'aF09JzxhOmZvbnQgc2NyaXB0PSJUZWx1IiB0eXBlZmFjZT0iR2F1dGFtaSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJUYW1sIiB0eXBlZmFjZT0iTGF0aGEiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iU3lyYyIgdHlwZWZhY2U9IkVzdHJhbmdlbG8gRWRlc3Nh'@; put 'Ii8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ik9yeWEiIHR5cGVmYWNlPSJLYWxpbmdhIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ik1seW0iIHR5cGVmYWNlPSJLYXJ0aWthIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ikxhb28iIHR5cGVmYWNlPSJE'@; put 'b2tDaGFtcGEiLz4nLHJbci5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iU2luaCIgdHlwZWZhY2U9Iklza29vbGEgUG90YSIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJNb25nIiB0eXBlZmFjZT0iTW9uZ29saWFuIEJhaXRpIi8+JyxyW3IubGVuZ3RoXT0nPGE6Zm9udCBzY3Jp'@; put 'cHQ9IlZpZXQiIHR5cGVmYWNlPSJBcmlhbCIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJVaWdoIiB0eXBlZmFjZT0iTWljcm9zb2Z0IFVpZ2h1ciIvPicscltyLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJHZW9yIiB0eXBlZmFjZT0iU3lsZmFlbiIvPicscltyLmxlbmd0aF09'@; put 'IjwvYTptaW5vckZvbnQ+IixyW3IubGVuZ3RoXT0iPC9hOmZvbnRTY2hlbWU+IixyW3IubGVuZ3RoXT0nPGE6Zm10U2NoZW1lIG5hbWU9Ik9mZmljZSI+JyxyW3IubGVuZ3RoXT0iPGE6ZmlsbFN0eWxlTHN0PiIscltyLmxlbmd0aF09JzxhOnNvbGlkRmlsbD48YTpzY2hlbWVDbHIgdmFsPSJw'@; put 'aENsciIvPjwvYTpzb2xpZEZpbGw+JyxyW3IubGVuZ3RoXT0nPGE6Z3JhZEZpbGwgcm90V2l0aFNoYXBlPSIxIj4nLHJbci5sZW5ndGhdPSI8YTpnc0xzdD4iLHJbci5sZW5ndGhdPSc8YTpncyBwb3M9IjAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTp0aW50IHZhbD0iNTAwMDAiLz48'@; put 'YTpzYXRNb2QgdmFsPSIzMDAwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz4nLHJbci5sZW5ndGhdPSc8YTpncyBwb3M9IjM1MDAwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6dGludCB2YWw9IjM3MDAwIi8+PGE6c2F0TW9kIHZhbD0iMzAwMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6'@; put 'Z3M+JyxyW3IubGVuZ3RoXT0nPGE6Z3MgcG9zPSIxMDAwMDAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTp0aW50IHZhbD0iMTUwMDAiLz48YTpzYXRNb2QgdmFsPSIzNTAwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz4nLHJbci5sZW5ndGhdPSI8L2E6Z3NMc3Q+IixyW3IubGVuZ3Ro'@; put 'XT0nPGE6bGluIGFuZz0iMTYyMDAwMDAiIHNjYWxlZD0iMSIvPicscltyLmxlbmd0aF09IjwvYTpncmFkRmlsbD4iLHJbci5sZW5ndGhdPSc8YTpncmFkRmlsbCByb3RXaXRoU2hhcGU9IjEiPicscltyLmxlbmd0aF09IjxhOmdzTHN0PiIscltyLmxlbmd0aF09JzxhOmdzIHBvcz0iMCI+PGE6'@; put 'c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRpbnQgdmFsPSIxMDAwMDAiLz48YTpzaGFkZSB2YWw9IjEwMDAwMCIvPjxhOnNhdE1vZCB2YWw9IjEzMDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPicscltyLmxlbmd0aF09JzxhOmdzIHBvcz0iMTAwMDAwIj48YTpzY2hlbWVDbHIgdmFsPSJw'@; put 'aENsciI+PGE6dGludCB2YWw9IjUwMDAwIi8+PGE6c2hhZGUgdmFsPSIxMDAwMDAiLz48YTpzYXRNb2QgdmFsPSIzNTAwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz4nLHJbci5sZW5ndGhdPSI8L2E6Z3NMc3Q+IixyW3IubGVuZ3RoXT0nPGE6bGluIGFuZz0iMTYyMDAwMDAiIHNjYWxlZD0i'@; put 'MCIvPicscltyLmxlbmd0aF09IjwvYTpncmFkRmlsbD4iLHJbci5sZW5ndGhdPSI8L2E6ZmlsbFN0eWxlTHN0PiIscltyLmxlbmd0aF09IjxhOmxuU3R5bGVMc3Q+IixyW3IubGVuZ3RoXT0nPGE6bG4gdz0iOTUyNSIgY2FwPSJmbGF0IiBjbXBkPSJzbmciIGFsZ249ImN0ciI+PGE6c29saWRG'@; put 'aWxsPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTpzaGFkZSB2YWw9Ijk1MDAwIi8+PGE6c2F0TW9kIHZhbD0iMTA1MDAwIi8+PC9hOnNjaGVtZUNscj48L2E6c29saWRGaWxsPjxhOnByc3REYXNoIHZhbD0ic29saWQiLz48L2E6bG4+JyxyW3IubGVuZ3RoXT0nPGE6bG4gdz0iMjU0MDAi'@; put 'IGNhcD0iZmxhdCIgY21wZD0ic25nIiBhbGduPSJjdHIiPjxhOnNvbGlkRmlsbD48YTpzY2hlbWVDbHIgdmFsPSJwaENsciIvPjwvYTpzb2xpZEZpbGw+PGE6cHJzdERhc2ggdmFsPSJzb2xpZCIvPjwvYTpsbj4nLHJbci5sZW5ndGhdPSc8YTpsbiB3PSIzODEwMCIgY2FwPSJmbGF0IiBjbXBk'@; put 'PSJzbmciIGFsZ249ImN0ciI+PGE6c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIi8+PC9hOnNvbGlkRmlsbD48YTpwcnN0RGFzaCB2YWw9InNvbGlkIi8+PC9hOmxuPicscltyLmxlbmd0aF09IjwvYTpsblN0eWxlTHN0PiIscltyLmxlbmd0aF09IjxhOmVmZmVjdFN0eWxlTHN0'@; put 'PiIscltyLmxlbmd0aF09IjxhOmVmZmVjdFN0eWxlPiIscltyLmxlbmd0aF09IjxhOmVmZmVjdExzdD4iLHJbci5sZW5ndGhdPSc8YTpvdXRlclNoZHcgYmx1clJhZD0iNDAwMDAiIGRpc3Q9IjIwMDAwIiBkaXI9IjU0MDAwMDAiIHJvdFdpdGhTaGFwZT0iMCI+PGE6c3JnYkNsciB2YWw9IjAw'@; put 'MDAwMCI+PGE6YWxwaGEgdmFsPSIzODAwMCIvPjwvYTpzcmdiQ2xyPjwvYTpvdXRlclNoZHc+JyxyW3IubGVuZ3RoXT0iPC9hOmVmZmVjdExzdD4iLHJbci5sZW5ndGhdPSI8L2E6ZWZmZWN0U3R5bGU+IixyW3IubGVuZ3RoXT0iPGE6ZWZmZWN0U3R5bGU+IixyW3IubGVuZ3RoXT0iPGE6ZWZm'@; put 'ZWN0THN0PiIscltyLmxlbmd0aF09JzxhOm91dGVyU2hkdyBibHVyUmFkPSI0MDAwMCIgZGlzdD0iMjMwMDAiIGRpcj0iNTQwMDAwMCIgcm90V2l0aFNoYXBlPSIwIj48YTpzcmdiQ2xyIHZhbD0iMDAwMDAwIj48YTphbHBoYSB2YWw9IjM1MDAwIi8+PC9hOnNyZ2JDbHI+PC9hOm91dGVyU2hk'@; put 'dz4nLHJbci5sZW5ndGhdPSI8L2E6ZWZmZWN0THN0PiIscltyLmxlbmd0aF09IjwvYTplZmZlY3RTdHlsZT4iLHJbci5sZW5ndGhdPSI8YTplZmZlY3RTdHlsZT4iLHJbci5sZW5ndGhdPSI8YTplZmZlY3RMc3Q+IixyW3IubGVuZ3RoXT0nPGE6b3V0ZXJTaGR3IGJsdXJSYWQ9IjQwMDAwIiBk'@; put 'aXN0PSIyMzAwMCIgZGlyPSI1NDAwMDAwIiByb3RXaXRoU2hhcGU9IjAiPjxhOnNyZ2JDbHIgdmFsPSIwMDAwMDAiPjxhOmFscGhhIHZhbD0iMzUwMDAiLz48L2E6c3JnYkNscj48L2E6b3V0ZXJTaGR3PicscltyLmxlbmd0aF09IjwvYTplZmZlY3RMc3Q+IixyW3IubGVuZ3RoXT0nPGE6c2Nl'@; put 'bmUzZD48YTpjYW1lcmEgcHJzdD0ib3J0aG9ncmFwaGljRnJvbnQiPjxhOnJvdCBsYXQ9IjAiIGxvbj0iMCIgcmV2PSIwIi8+PC9hOmNhbWVyYT48YTpsaWdodFJpZyByaWc9InRocmVlUHQiIGRpcj0idCI+PGE6cm90IGxhdD0iMCIgbG9uPSIwIiByZXY9IjEyMDAwMDAiLz48L2E6bGlnaHRS'@; put 'aWc+PC9hOnNjZW5lM2Q+JyxyW3IubGVuZ3RoXT0nPGE6c3AzZD48YTpiZXZlbFQgdz0iNjM1MDAiIGg9IjI1NDAwIi8+PC9hOnNwM2Q+JyxyW3IubGVuZ3RoXT0iPC9hOmVmZmVjdFN0eWxlPiIscltyLmxlbmd0aF09IjwvYTplZmZlY3RTdHlsZUxzdD4iLHJbci5sZW5ndGhdPSI8YTpiZ0Zp'@; put 'bGxTdHlsZUxzdD4iLHJbci5sZW5ndGhdPSc8YTpzb2xpZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiLz48L2E6c29saWRGaWxsPicscltyLmxlbmd0aF09JzxhOmdyYWRGaWxsIHJvdFdpdGhTaGFwZT0iMSI+JyxyW3IubGVuZ3RoXT0iPGE6Z3NMc3Q+IixyW3IubGVuZ3RoXT0nPGE6'@; put 'Z3MgcG9zPSIwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6dGludCB2YWw9IjQwMDAwIi8+PGE6c2F0TW9kIHZhbD0iMzUwMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+JyxyW3IubGVuZ3RoXT0nPGE6Z3MgcG9zPSI0MDAwMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRp'@; put 'bnQgdmFsPSI0NTAwMCIvPjxhOnNoYWRlIHZhbD0iOTkwMDAiLz48YTpzYXRNb2QgdmFsPSIzNTAwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz4nLHJbci5sZW5ndGhdPSc8YTpncyBwb3M9IjEwMDAwMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnNoYWRlIHZhbD0iMjAwMDAiLz48'@; put 'YTpzYXRNb2QgdmFsPSIyNTUwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz4nLHJbci5sZW5ndGhdPSI8L2E6Z3NMc3Q+IixyW3IubGVuZ3RoXT0nPGE6cGF0aCBwYXRoPSJjaXJjbGUiPjxhOmZpbGxUb1JlY3QgbD0iNTAwMDAiIHQ9Ii04MDAwMCIgcj0iNTAwMDAiIGI9IjE4MDAwMCIvPjwv'@; put 'YTpwYXRoPicscltyLmxlbmd0aF09IjwvYTpncmFkRmlsbD4iLHJbci5sZW5ndGhdPSc8YTpncmFkRmlsbCByb3RXaXRoU2hhcGU9IjEiPicscltyLmxlbmd0aF09IjxhOmdzTHN0PiIscltyLmxlbmd0aF09JzxhOmdzIHBvcz0iMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRpbnQg'@; put 'dmFsPSI4MDAwMCIvPjxhOnNhdE1vZCB2YWw9IjMwMDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPicscltyLmxlbmd0aF09JzxhOmdzIHBvcz0iMTAwMDAwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6c2hhZGUgdmFsPSIzMDAwMCIvPjxhOnNhdE1vZCB2YWw9IjIwMDAwMCIvPjwv'@; put 'YTpzY2hlbWVDbHI+PC9hOmdzPicscltyLmxlbmd0aF09IjwvYTpnc0xzdD4iLHJbci5sZW5ndGhdPSc8YTpwYXRoIHBhdGg9ImNpcmNsZSI+PGE6ZmlsbFRvUmVjdCBsPSI1MDAwMCIgdD0iNTAwMDAiIHI9IjUwMDAwIiBiPSI1MDAwMCIvPjwvYTpwYXRoPicscltyLmxlbmd0aF09IjwvYTpn'@; put 'cmFkRmlsbD4iLHJbci5sZW5ndGhdPSI8L2E6YmdGaWxsU3R5bGVMc3Q+IixyW3IubGVuZ3RoXT0iPC9hOmZtdFNjaGVtZT4iLHJbci5sZW5ndGhdPSI8L2E6dGhlbWVFbGVtZW50cz4iLHJbci5sZW5ndGhdPSI8YTpvYmplY3REZWZhdWx0cz4iLHJbci5sZW5ndGhdPSI8YTpzcERlZj4iLHJb'@; put 'ci5sZW5ndGhdPSc8YTpzcFByLz48YTpib2R5UHIvPjxhOmxzdFN0eWxlLz48YTpzdHlsZT48YTpsblJlZiBpZHg9IjEiPjxhOnNjaGVtZUNsciB2YWw9ImFjY2VudDEiLz48L2E6bG5SZWY+PGE6ZmlsbFJlZiBpZHg9IjMiPjxhOnNjaGVtZUNsciB2YWw9ImFjY2VudDEiLz48L2E6ZmlsbFJl'@; put 'Zj48YTplZmZlY3RSZWYgaWR4PSIyIj48YTpzY2hlbWVDbHIgdmFsPSJhY2NlbnQxIi8+PC9hOmVmZmVjdFJlZj48YTpmb250UmVmIGlkeD0ibWlub3IiPjxhOnNjaGVtZUNsciB2YWw9Imx0MSIvPjwvYTpmb250UmVmPjwvYTpzdHlsZT4nLHJbci5sZW5ndGhdPSI8L2E6c3BEZWY+IixyW3Iu'@; put 'bGVuZ3RoXT0iPGE6bG5EZWY+IixyW3IubGVuZ3RoXT0nPGE6c3BQci8+PGE6Ym9keVByLz48YTpsc3RTdHlsZS8+PGE6c3R5bGU+PGE6bG5SZWYgaWR4PSIyIj48YTpzY2hlbWVDbHIgdmFsPSJhY2NlbnQxIi8+PC9hOmxuUmVmPjxhOmZpbGxSZWYgaWR4PSIwIj48YTpzY2hlbWVDbHIgdmFs'@; put 'PSJhY2NlbnQxIi8+PC9hOmZpbGxSZWY+PGE6ZWZmZWN0UmVmIGlkeD0iMSI+PGE6c2NoZW1lQ2xyIHZhbD0iYWNjZW50MSIvPjwvYTplZmZlY3RSZWY+PGE6Zm9udFJlZiBpZHg9Im1pbm9yIj48YTpzY2hlbWVDbHIgdmFsPSJ0eDEiLz48L2E6Zm9udFJlZj48L2E6c3R5bGU+JyxyW3IubGVu'@; put 'Z3RoXT0iPC9hOmxuRGVmPiIscltyLmxlbmd0aF09IjwvYTpvYmplY3REZWZhdWx0cz4iLHJbci5sZW5ndGhdPSI8YTpleHRyYUNsclNjaGVtZUxzdC8+IixyW3IubGVuZ3RoXT0iPC9hOnRoZW1lPiIsci5qb2luKCIiKX0oKSk7dmFyIHIsYT17fTtpZighKHI9ZS5tYXRjaChYMSkpKXRocm93'@; put 'IG5ldyBFcnJvcigidGhlbWVFbGVtZW50cyBub3QgZm91bmQgaW4gdGhlbWUiKTtyZXR1cm4gZnVuY3Rpb24gVjEoZSx0LHIpe3ZhciBhO3QudGhlbWVFbGVtZW50cz17fSxbWyJjbHJTY2hlbWUiLFUxLEwxXSxbImZvbnRTY2hlbWUiLFcxLEIxXSxbImZtdFNjaGVtZSIsSDEsTTFdXS5mb3JF'@; put 'YWNoKGZ1bmN0aW9uKG4pe2lmKCEoYT1lLm1hdGNoKG5bMV0pKSl0aHJvdyBuZXcgRXJyb3IoblswXSsiIG5vdCBmb3VuZCBpbiB0aGVtZUVsZW1lbnRzIik7blsyXShhLHQscil9KX0oclswXSxhLHQpLGEucmF3PWUsYX1mdW5jdGlvbiBZMShlKXt2YXIgdD1lLnJlYWRfc2hpZnQoMikscj1l'@; put 'LnJlYWRfc2hpZnQoMiktNCxhPVt0XTtzd2l0Y2godCl7Y2FzZSA0OmNhc2UgNTpjYXNlIDc6Y2FzZSA4OmNhc2UgOTpjYXNlIDEwOmNhc2UgMTE6Y2FzZSAxMzphWzFdPWZ1bmN0aW9uICQxKGUpe3ZhciB0PXt9O3N3aXRjaCh0LnhjbHJUeXBlPWUucmVhZF9zaGlmdCgyKSx0Lm5UaW50U2hh'@; put 'ZGU9ZS5yZWFkX3NoaWZ0KDIpLHQueGNsclR5cGUpe2Nhc2UgMDpjYXNlIDQ6ZS5sKz00O2JyZWFrO2Nhc2UgMTp0LnhjbHJWYWx1ZT1mdW5jdGlvbiBqMShlLHQpe3JldHVybiBwcihlLHQpfShlLDQpO2JyZWFrO2Nhc2UgMjp0LnhjbHJWYWx1ZT1NcyhlKTticmVhaztjYXNlIDM6dC54Y2xy'@; put 'VmFsdWU9ZnVuY3Rpb24gejEoZSl7cmV0dXJuIGUucmVhZF9zaGlmdCg0KX0oZSl9cmV0dXJuIGUubCs9OCx0fShlKTticmVhaztjYXNlIDY6YVsxXT1mdW5jdGlvbiBLMShlLHQpe3JldHVybiBwcihlLHQpfShlLHIpO2JyZWFrO2Nhc2UgMTQ6Y2FzZSAxNTphWzFdPWUucmVhZF9zaGlmdCgx'@; put 'PT09cj8xOjIpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgRXh0UHJvcCB0eXBlOiAiK3QrIiAiK3IpfXJldHVybiBhfWZ1bmN0aW9uIHExKGUsdCl7dC5mb3JFYWNoKGZ1bmN0aW9uKHIpe30pfWZ1bmN0aW9uIGdmKGUsdCxyLGEpe3ZhciBpLG49QXJyYXku'@; put 'aXNBcnJheShlKTt0LmZvckVhY2goZnVuY3Rpb24ocyl7dmFyIGY9R2Uocy5yZWYpO2lmKG4/KGVbZi5yXXx8KGVbZi5yXT1bXSksaT1lW2Yucl1bZi5jXSk6aT1lW3MucmVmXSwhaSl7aT17dDoieiJ9LG4/ZVtmLnJdW2YuY109aTplW3MucmVmXT1pO3ZhciBjPURlKGVbIiFyZWYiXXx8IkJE'@; put 'V0dPMTAwMDAwMTpBMSIpO2Mucy5yPmYuciYmKGMucy5yPWYuciksYy5lLnI8Zi5yJiYoYy5lLnI9Zi5yKSxjLnMuYz5mLmMmJihjLnMuYz1mLmMpLGMuZS5jPGYuYyYmKGMuZS5jPWYuYyk7dmFyIG89d2UoYyk7byE9PWVbIiFyZWYiXSYmKGVbIiFyZWYiXT1vKX1pLmN8fChpLmM9W10pO3Zh'@; put 'ciBsPXthOnMuYXV0aG9yLHQ6cy50LHI6cy5yLFQ6cn07cy5oJiYobC5oPXMuaCk7Zm9yKHZhciBoPWkuYy5sZW5ndGgtMTtoPj0wOy0taCl7aWYoIXImJmkuY1toXS5UKXJldHVybjtyJiYhaS5jW2hdLlQmJmkuYy5zcGxpY2UoaCwxKX1pZihyJiZhKWZvcihoPTA7aDxhLmxlbmd0aDsrK2gp'@; put 'aWYobC5hPT1hW2hdLmlkKXtsLmE9YVtoXS5uYW1lfHxsLmE7YnJlYWt9aS5jLnB1c2gobCl9KX12YXIgd3g9bXIsU3g9ImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2UudmJhUHJvamVjdCIsdWE9ZnVuY3Rpb24oKXt2YXIgZT0vKF58W15BLVphLXpfXSlSKFxbPy0/XGQrXF18WzEtOV1cZCp8'@; put 'KUMoXFs/LT9cZCtcXXxbMS05XVxkKnwpKD8hW0EtWmEtejAtOV9dKS9nLHQ9e3I6MCxjOjB9O2Z1bmN0aW9uIHIoYSxuLGkscyl7dmFyIGY9ITEsYz0hMTswPT1pLmxlbmd0aD9jPSEwOiJbIj09aS5jaGFyQXQoMCkmJihjPSEwLGk9aS5zbGljZSgxLC0xKSksMD09cy5sZW5ndGg/Zj0hMDoi'@; put 'WyI9PXMuY2hhckF0KDApJiYoZj0hMCxzPXMuc2xpY2UoMSwtMSkpO3ZhciBvPWkubGVuZ3RoPjA/MHxwYXJzZUludChpLDEwKTowLGw9cy5sZW5ndGg+MD8wfHBhcnNlSW50KHMsMTApOjA7cmV0dXJuIGY/bCs9dC5jOi0tbCxjP28rPXQucjotLW8sbisoZj8iIjoiJCIpK0hlKGwpKyhjPyIi'@; put 'OiIkIikrS2Uobyl9cmV0dXJuIGZ1bmN0aW9uKG4saSl7cmV0dXJuIHQ9aSxuLnJlcGxhY2UoZSxyKX19KCksT249LyhefFteLl9BLVowLTldKShbJF0/KShbQS1aXXsxLDJ9fFtBLVddW0EtWl17Mn18WFtBLUVdW0EtWl18WEZbQS1EXSkoWyRdPykoMTBbMC0zXVxkezR9fDEwNFswLTddXGR7'@; put 'M318MTA0OFswLTRdXGR7Mn18MTA0ODVbMC02XVxkfDEwNDg1N1swLTZdfFsxLTldXGR7MCw1fSkoPyFbXy5cKEEtWmEtejAtOV0pL2csSW49ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxyKXtyZXR1cm4gdC5yZXBsYWNlKE9uLGZ1bmN0aW9uKGEsbixpLHMsZixjKXt2YXIgbz1ubihz'@; put 'KS0oaT8wOnIuYyksbD1hbihjKS0oZj8wOnIucik7cmV0dXJuIG4rIlIiKygwPT1sPyIiOmY/bCsxOiJbIitsKyJdIikrIkMiKygwPT1vPyIiOmk/bysxOiJbIitvKyJdIil9KX19KCk7ZnVuY3Rpb24ga2YoZSx0KXtyZXR1cm4gZS5yZXBsYWNlKE9uLGZ1bmN0aW9uKHIsYSxuLGkscyxmKXty'@; put 'ZXR1cm4gYSsoIiQiPT1uP24raTpIZShubihpKSt0LmMpKSsoIiQiPT1zP3MrZjpLZShhbihmKSt0LnIpKX0pfWZ1bmN0aW9uIEl4KGUsdCxyKXt2YXIgbj1Qcih0KS5zLGk9R2Uocik7cmV0dXJuIGtmKGUse3I6aS5yLW4ucixjOmkuYy1uLmN9KX1mdW5jdGlvbiBFZihlKXtyZXR1cm4gZS5y'@; put 'ZXBsYWNlKC9feGxmblwuL2csIiIpfWZ1bmN0aW9uIGFyKGUpe2UubCs9MX1mdW5jdGlvbiBBdChlLHQpe3ZhciByPWUucmVhZF9zaGlmdCgxPT10PzE6Mik7cmV0dXJuWzE2MzgzJnIscj4+MTQmMSxyPj4xNSYxXX1mdW5jdGlvbiBUZihlLHQscil7dmFyIGE9MjtpZihyKXtpZihyLmJpZmY+'@; put 'PTImJnIuYmlmZjw9NSlyZXR1cm4gU2YoZSk7MTI9PXIuYmlmZiYmKGE9NCl9dmFyIG49ZS5yZWFkX3NoaWZ0KGEpLGk9ZS5yZWFkX3NoaWZ0KGEpLHM9QXQoZSwyKSxmPUF0KGUsMik7cmV0dXJue3M6e3I6bixjOnNbMF0sY1JlbDpzWzFdLHJSZWw6c1syXX0sZTp7cjppLGM6ZlswXSxjUmVs'@; put 'OmZbMV0sclJlbDpmWzJdfX19ZnVuY3Rpb24gU2YoZSl7dmFyIHQ9QXQoZSwyKSxyPUF0KGUsMiksYT1lLnJlYWRfc2hpZnQoMSksbj1lLnJlYWRfc2hpZnQoMSk7cmV0dXJue3M6e3I6dFswXSxjOmEsY1JlbDp0WzFdLHJSZWw6dFsyXX0sZTp7cjpyWzBdLGM6bixjUmVsOnJbMV0sclJlbDpy'@; put 'WzJdfX19ZnVuY3Rpb24gRmYoZSx0LHIpe2lmKHImJnIuYmlmZj49MiYmci5iaWZmPD01KXJldHVybiBmdW5jdGlvbiBieChlKXt2YXIgdD1BdChlLDIpLHI9ZS5yZWFkX3NoaWZ0KDEpO3JldHVybntyOnRbMF0sYzpyLGNSZWw6dFsxXSxyUmVsOnRbMl19fShlKTt2YXIgYT1lLnJlYWRfc2hp'@; put 'ZnQociYmMTI9PXIuYmlmZj80OjIpLG49QXQoZSwyKTtyZXR1cm57cjphLGM6blswXSxjUmVsOm5bMV0sclJlbDpuWzJdfX1mdW5jdGlvbiBQeChlKXt2YXIgdD1lLnJlYWRfc2hpZnQoMikscj1lLnJlYWRfc2hpZnQoMik7cmV0dXJue3I6dCxjOjI1NSZyLGZRdW90ZWQ6ISEoMTYzODQmciks'@; put 'Y1JlbDpyPj4xNSxyUmVsOnI+PjE1fX1mdW5jdGlvbiB5ZihlKXt2YXIgdD0xJmVbZS5sKzFdO3JldHVybiBlLmwrPTQsW3QsMV19ZnVuY3Rpb24gQWYoZSl7cmV0dXJuW2UucmVhZF9zaGlmdCgxKSxlLnJlYWRfc2hpZnQoMSldfWZ1bmN0aW9uIGxkKGUsdCl7dmFyIHI9W2UucmVhZF9zaGlm'@; put 'dCgxKV07aWYoMTI9PXQpc3dpdGNoKHJbMF0pe2Nhc2UgMjpyWzBdPTQ7YnJlYWs7Y2FzZSA0OnJbMF09MTY7YnJlYWs7Y2FzZSAwOnJbMF09MTticmVhaztjYXNlIDE6clswXT0yfXN3aXRjaChyWzBdKXtjYXNlIDQ6clsxXT1KZShlLDEpPyJUUlVFIjoiRkFMU0UiLDEyIT10JiYoZS5sKz03'@; put 'KTticmVhaztjYXNlIDM3OmNhc2UgMTY6clsxXT14dFtlW2UubF1dLGUubCs9MTI9PXQ/NDo4O2JyZWFrO2Nhc2UgMDplLmwrPTg7YnJlYWs7Y2FzZSAxOnJbMV09Z3IoZSk7YnJlYWs7Y2FzZSAyOnJbMV09enQoZSwwLHtiaWZmOnQ+MCYmdDw4PzI6dH0pO2JyZWFrO2RlZmF1bHQ6dGhyb3cg'@; put 'bmV3IEVycm9yKCJCYWQgU2VyQXI6ICIrclswXSl9cmV0dXJuIHJ9ZnVuY3Rpb24gdWQoZSx0LHIpe2Zvcih2YXIgYT1lLnJlYWRfc2hpZnQoMTI9PXIuYmlmZj80OjIpLG49W10saT0wO2khPWE7KytpKW4ucHVzaCgoMTI9PXIuYmlmZj9XdDprMCkoZSw4KSk7cmV0dXJuIG59ZnVuY3Rpb24g'@; put 'aGQoZSx0LHIpe3ZhciBhPTAsbj0wOzEyPT1yLmJpZmY/KGE9ZS5yZWFkX3NoaWZ0KDQpLG49ZS5yZWFkX3NoaWZ0KDQpKToobj0xK2UucmVhZF9zaGlmdCgxKSxhPTErZS5yZWFkX3NoaWZ0KDIpKSxyLmJpZmY+PTImJnIuYmlmZjw4JiYoLS1hLDA9PS0tbiYmKG49MjU2KSk7Zm9yKHZhciBp'@; put 'PTAscz1bXTtpIT1hJiYoc1tpXT1bXSk7KytpKWZvcih2YXIgZj0wO2YhPW47KytmKXNbaV1bZl09bGQoZSxyLmJpZmYpO3JldHVybiBzfWZ1bmN0aW9uIFVhKGUsdCxyKXtyZXR1cm4gZS5sKz0yLFtQeChlKV19ZnVuY3Rpb24gUm4oZSl7cmV0dXJuIGUubCs9NixbXX1mdW5jdGlvbiBDZihl'@; put 'KXtyZXR1cm4gZS5sKz0yLFt0cihlKSwxJmUucmVhZF9zaGlmdCgyKV19dmFyIFJkPVsiRGF0YSIsIkFsbCIsIkhlYWRlcnMiLCI/PyIsIj9EYXRhMiIsIj8/IiwiP0RhdGFIZWFkZXJzIiwiPz8iLCJUb3RhbHMiLCI/PyIsIj8/IiwiPz8iLCI/RGF0YVRvdGFscyIsIj8/IiwiPz8iLCI/PyIs'@; put 'Ij9DdXJyZW50Il0sRGY9ezE6e246IlB0Z0V4cCIsZjpmdW5jdGlvbiBuZChlLHQscil7cmV0dXJuIGUubCsrLHImJjEyPT1yLmJpZmY/W2UucmVhZF9zaGlmdCg0LCJpIiksMF06W2UucmVhZF9zaGlmdCgyKSxlLnJlYWRfc2hpZnQociYmMj09ci5iaWZmPzE6MildfX0sMjp7bjoiUHRnVGJs'@; put 'IixmOnByfSwzOntuOiJQdGdBZGQiLGY6YXJ9LDQ6e246IlB0Z1N1YiIsZjphcn0sNTp7bjoiUHRnTXVsIixmOmFyfSw2OntuOiJQdGdEaXYiLGY6YXJ9LDc6e246IlB0Z1Bvd2VyIixmOmFyfSw4OntuOiJQdGdDb25jYXQiLGY6YXJ9LDk6e246IlB0Z0x0IixmOmFyfSwxMDp7bjoiUHRnTGUi'@; put 'LGY6YXJ9LDExOntuOiJQdGdFcSIsZjphcn0sMTI6e246IlB0Z0dlIixmOmFyfSwxMzp7bjoiUHRnR3QiLGY6YXJ9LDE0OntuOiJQdGdOZSIsZjphcn0sMTU6e246IlB0Z0lzZWN0IixmOmFyfSwxNjp7bjoiUHRnVW5pb24iLGY6YXJ9LDE3OntuOiJQdGdSYW5nZSIsZjphcn0sMTg6e246IlB0'@; put 'Z1VwbHVzIixmOmFyfSwxOTp7bjoiUHRnVW1pbnVzIixmOmFyfSwyMDp7bjoiUHRnUGVyY2VudCIsZjphcn0sMjE6e246IlB0Z1BhcmVuIixmOmFyfSwyMjp7bjoiUHRnTWlzc0FyZyIsZjphcn0sMjM6e246IlB0Z1N0ciIsZjpmdW5jdGlvbiBvZChlLHQscil7cmV0dXJuIGUubCsrLFJhKGUs'@; put 'MCxyKX19LDI2OntuOiJQdGdTaGVldCIsZjpmdW5jdGlvbiBQZChlLHQscil7cmV0dXJuIGUubCs9NSxlLmwrPTIsZS5sKz0yPT1yLmJpZmY/MTo0LFsiUFRHU0hFRVQiXX19LDI3OntuOiJQdGdFbmRTaGVldCIsZjpmdW5jdGlvbiBMZChlLHQscil7cmV0dXJuIGUubCs9Mj09ci5iaWZmPzQ6'@; put 'NSxbIlBUR0VORFNIRUVUIl19fSwyODp7bjoiUHRnRXJyIixmOmZ1bmN0aW9uIGlkKGUpe3JldHVybiBlLmwrKyx4dFtlLnJlYWRfc2hpZnQoMSldfX0sMjk6e246IlB0Z0Jvb2wiLGY6ZnVuY3Rpb24gZmQoZSl7cmV0dXJuIGUubCsrLDAhPT1lLnJlYWRfc2hpZnQoMSl9fSwzMDp7bjoiUHRn'@; put 'SW50IixmOmZ1bmN0aW9uIHNkKGUpe3JldHVybiBlLmwrKyxlLnJlYWRfc2hpZnQoMil9fSwzMTp7bjoiUHRnTnVtIixmOmZ1bmN0aW9uIGNkKGUpe3JldHVybiBlLmwrKyxncihlKX19LDMyOntuOiJQdGdBcnJheSIsZjpmdW5jdGlvbiBYeChlLHQscil7dmFyIGE9KDk2JmVbZS5sKytdKT4+'@; put 'NTtyZXR1cm4gZS5sKz0yPT1yLmJpZmY/NjoxMj09ci5iaWZmPzE0OjcsW2FdfX0sMzM6e246IlB0Z0Z1bmMiLGY6ZnVuY3Rpb24gZWQoZSx0LHIpe3ZhciBhPSg5NiZlW2UubF0pPj41O2UubCs9MTt2YXIgbj1lLnJlYWRfc2hpZnQociYmci5iaWZmPD0zPzE6Mik7cmV0dXJuW2F2W25dLFJm'@; put 'W25dLGFdfX0sMzQ6e246IlB0Z0Z1bmNWYXIiLGY6ZnVuY3Rpb24gcmQoZSx0LHIpe3ZhciBhPWVbZS5sKytdLG49ZS5yZWFkX3NoaWZ0KDEpLGk9ciYmci5iaWZmPD0zP1s4OD09YT8tMTowLGUucmVhZF9zaGlmdCgxKV06ZnVuY3Rpb24gdGQoZSl7cmV0dXJuW2VbZS5sKzFdPj43LDMyNzY3'@; put 'JmUucmVhZF9zaGlmdCgyKV19KGUpO3JldHVybltuLCgwPT09aVswXT9SZjp0dilbaVsxXV1dfX0sMzU6e246IlB0Z05hbWUiLGY6ZnVuY3Rpb24geGQoZSx0LHIpe3ZhciBhPWUucmVhZF9zaGlmdCgxKT4+PjUmMyxpPWUucmVhZF9zaGlmdCghcnx8ci5iaWZmPj04PzQ6Mik7c3dpdGNoKHIu'@; put 'YmlmZil7Y2FzZSAyOmUubCs9NTticmVhaztjYXNlIDM6Y2FzZSA0OmUubCs9ODticmVhaztjYXNlIDU6ZS5sKz0xMn1yZXR1cm5bYSwwLGldfX0sMzY6e246IlB0Z1JlZiIsZjpmdW5jdGlvbiBxeChlLHQscil7dmFyIGE9KDk2JmVbZS5sXSk+PjU7cmV0dXJuIGUubCs9MSxbYSxGZihlLDAs'@; put 'cildfX0sMzc6e246IlB0Z0FyZWEiLGY6ZnVuY3Rpb24gTXgoZSx0LHIpe3JldHVyblsoOTYmZVtlLmwrK10pPj41LFRmKGUsMCxyKV19fSwzODp7bjoiUHRnTWVtQXJlYSIsZjpmdW5jdGlvbiBwZChlLHQscil7dmFyIGE9ZS5yZWFkX3NoaWZ0KDEpPj4+NSYzO3JldHVybiBlLmwrPXImJjI9'@; put 'PXIuYmlmZj8zOjQsW2EsZS5yZWFkX3NoaWZ0KHImJjI9PXIuYmlmZj8xOjIpXX19LDM5OntuOiJQdGdNZW1FcnIiLGY6cHJ9LDQwOntuOiJQdGdNZW1Ob01lbSIsZjpwcn0sNDE6e246IlB0Z01lbUZ1bmMiLGY6ZnVuY3Rpb24gbWQoZSx0LHIpe3JldHVybltlLnJlYWRfc2hpZnQoMSk+Pj41'@; put 'JjMsZS5yZWFkX3NoaWZ0KHImJjI9PXIuYmlmZj8xOjIpXX19LDQyOntuOiJQdGdSZWZFcnIiLGY6ZnVuY3Rpb24gZ2QoZSx0LHIpe3ZhciBhPWUucmVhZF9zaGlmdCgxKT4+PjUmMztyZXR1cm4gZS5sKz00LHIuYmlmZjw4JiZlLmwtLSwxMj09ci5iaWZmJiYoZS5sKz0yKSxbYV19fSw0Mzp7'@; put 'bjoiUHRnQXJlYUVyciIsZjpmdW5jdGlvbiBXeChlLHQscil7dmFyIGE9KDk2JmVbZS5sKytdKT4+NTtyZXR1cm4gZS5sKz1yJiZyLmJpZmY+OD8xMjpyLmJpZmY8OD82OjgsW2FdfX0sNDQ6e246IlB0Z1JlZk4iLGY6ZnVuY3Rpb24gWngoZSx0LHIpe3ZhciBhPSg5NiZlW2UubF0pPj41O2Uu'@; put 'bCs9MTt2YXIgbj1mdW5jdGlvbiBMeChlLHQscil7dmFyIGE9ciYmci5iaWZmP3IuYmlmZjo4O2lmKGE+PTImJmE8PTUpcmV0dXJuIGZ1bmN0aW9uIEJ4KGUpe3ZhciB0PWUucmVhZF9zaGlmdCgyKSxyPWUucmVhZF9zaGlmdCgxKSxhPSgzMjc2OCZ0KT4+MTUsbj0oMTYzODQmdCk+PjE0O3Jl'@; put 'dHVybiB0Jj0xNjM4MywxPT1hJiZ0Pj04MTkyJiYodC09MTYzODQpLDE9PW4mJnI+PTEyOCYmKHItPTI1Nikse3I6dCxjOnIsY1JlbDpuLHJSZWw6YX19KGUpO3ZhciBuPWUucmVhZF9zaGlmdChhPj0xMj80OjIpLGk9ZS5yZWFkX3NoaWZ0KDIpLHM9KDE2Mzg0JmkpPj4xNCxmPSgzMjc2OCZp'@; put 'KT4+MTU7aWYoaSY9MTYzODMsMT09Zilmb3IoO24+NTI0Mjg3OyluLT0xMDQ4NTc2O2lmKDE9PXMpZm9yKDtpPjgxOTE7KWktPTE2Mzg0O3JldHVybntyOm4sYzppLGNSZWw6cyxyUmVsOmZ9fShlLDAscik7cmV0dXJuW2Esbl19fSw0NTp7bjoiUHRnQXJlYU4iLGY6ZnVuY3Rpb24gVngoZSx0'@; put 'LHIpe3ZhciBhPSg5NiZlW2UubCsrXSk+PjUsbj1mdW5jdGlvbiBOeChlLHQscil7aWYoci5iaWZmPDgpcmV0dXJuIFNmKGUpO3ZhciBhPWUucmVhZF9zaGlmdCgxMj09ci5iaWZmPzQ6Miksbj1lLnJlYWRfc2hpZnQoMTI9PXIuYmlmZj80OjIpLGk9QXQoZSwyKSxzPUF0KGUsMik7cmV0dXJu'@; put 'e3M6e3I6YSxjOmlbMF0sY1JlbDppWzFdLHJSZWw6aVsyXX0sZTp7cjpuLGM6c1swXSxjUmVsOnNbMV0sclJlbDpzWzJdfX19KGUsMCxyKTtyZXR1cm5bYSxuXX19LDQ2OntuOiJQdGdNZW1BcmVhTiIsZjpmdW5jdGlvbiBCZChlKXtyZXR1cm5bZS5yZWFkX3NoaWZ0KDEpPj4+NSYzLGUucmVh'@; put 'ZF9zaGlmdCgyKV19fSw0Nzp7bjoiUHRnTWVtTm9NZW1OIixmOmZ1bmN0aW9uIE1kKGUpe3JldHVybltlLnJlYWRfc2hpZnQoMSk+Pj41JjMsZS5yZWFkX3NoaWZ0KDIpXX19LDU3OntuOiJQdGdOYW1lWCIsZjpmdW5jdGlvbiBkZChlLHQscil7cmV0dXJuIDU9PXIuYmlmZj9mdW5jdGlvbiB2'@; put 'ZChlKXt2YXIgdD1lLnJlYWRfc2hpZnQoMSk+Pj41JjMscj1lLnJlYWRfc2hpZnQoMiwiaSIpO2UubCs9ODt2YXIgYT1lLnJlYWRfc2hpZnQoMik7cmV0dXJuIGUubCs9MTIsW3QscixhXX0oZSk6W2UucmVhZF9zaGlmdCgxKT4+PjUmMyxlLnJlYWRfc2hpZnQoMiksZS5yZWFkX3NoaWZ0KDQp'@; put 'XX19LDU4OntuOiJQdGdSZWYzZCIsZjpmdW5jdGlvbiBReChlLHQscil7dmFyIGE9KDk2JmVbZS5sXSk+PjU7ZS5sKz0xO3ZhciBuPWUucmVhZF9zaGlmdCgyKTtyZXR1cm4gciYmNT09ci5iaWZmJiYoZS5sKz0xMiksW2EsbixGZihlLDAscildfX0sNTk6e246IlB0Z0FyZWEzZCIsZjpmdW5j'@; put 'dGlvbiBVeChlLHQscil7dmFyIGE9KDk2JmVbZS5sKytdKT4+NSxuPWUucmVhZF9zaGlmdCgyLCJpIik7aWYociYmNT09PXIuYmlmZillLmwrPTEyO3JldHVyblthLG4sVGYoZSwwLHIpXX19LDYwOntuOiJQdGdSZWZFcnIzZCIsZjpmdW5jdGlvbiBfZChlLHQscil7dmFyIGE9KDk2JmVbZS5s'@; put 'KytdKT4+NSxuPWUucmVhZF9zaGlmdCgyKSxpPTQ7aWYocilzd2l0Y2goci5iaWZmKXtjYXNlIDU6aT0xNTticmVhaztjYXNlIDEyOmk9Nn1yZXR1cm4gZS5sKz1pLFthLG5dfX0sNjE6e246IlB0Z0FyZWFFcnIzZCIsZjpmdW5jdGlvbiBIeChlLHQscil7dmFyIGE9KDk2JmVbZS5sKytdKT4+'@; put 'NSxuPWUucmVhZF9zaGlmdCgyKSxpPTg7aWYocilzd2l0Y2goci5iaWZmKXtjYXNlIDU6ZS5sKz0xMixpPTY7YnJlYWs7Y2FzZSAxMjppPTEyfXJldHVybiBlLmwrPWksW2Esbl19fSwyNTU6e319LFdkPXs2NDozMiw5NjozMiw2NTozMyw5NzozMyw2NjozNCw5ODozNCw2NzozNSw5OTozNSw2'@; put 'ODozNiwxMDA6MzYsNjk6MzcsMTAxOjM3LDcwOjM4LDEwMjozOCw3MTozOSwxMDM6MzksNzI6NDAsMTA0OjQwLDczOjQxLDEwNTo0MSw3NDo0MiwxMDY6NDIsNzU6NDMsMTA3OjQzLDc2OjQ0LDEwODo0NCw3Nzo0NSwxMDk6NDUsNzg6NDYsMTEwOjQ2LDc5OjQ3LDExMTo0Nyw4ODozNCwxMjA6'@; put 'MzQsODk6NTcsMTIxOjU3LDkwOjU4LDEyMjo1OCw5MTo1OSwxMjM6NTksOTI6NjAsMTI0OjYwLDkzOjYxLDEyNTo2MX0sSGQ9ezE6e246IlB0Z0VsZkxlbCIsZjpDZn0sMjp7bjoiUHRnRWxmUnciLGY6VWF9LDM6e246IlB0Z0VsZkNvbCIsZjpVYX0sNjp7bjoiUHRnRWxmUndWIixmOlVhfSw3'@; put 'OntuOiJQdGdFbGZDb2xWIixmOlVhfSwxMDp7bjoiUHRnRWxmUmFkaWNhbCIsZjpVYX0sMTE6e246IlB0Z0VsZlJhZGljYWxTIixmOlJufSwxMzp7bjoiUHRnRWxmQ29sUyIsZjpSbn0sMTU6e246IlB0Z0VsZkNvbFNWIixmOlJufSwxNjp7bjoiUHRnRWxmUmFkaWNhbExlbCIsZjpDZn0sMjU6'@; put 'e246IlB0Z0xpc3QiLGY6ZnVuY3Rpb24gTmQoZSl7ZS5sKz0yO3ZhciB0PWUucmVhZF9zaGlmdCgyKSxyPWUucmVhZF9zaGlmdCgyKSxhPWUucmVhZF9zaGlmdCg0KSxuPWUucmVhZF9zaGlmdCgyKSxpPWUucmVhZF9zaGlmdCgyKTtyZXR1cm57aXh0aTp0LGNvbHR5cGU6MyZyLHJ0OlJkW3I+'@; put 'PjImMzFdLGlkeDphLGM6bixDOml9fX0sMjk6e246IlB0Z1N4TmFtZSIsZjpmdW5jdGlvbiBiZChlKXtyZXR1cm4gZS5sKz0yLFtlLnJlYWRfc2hpZnQoNCldfX0sMjU1Ont9fSxWZD17MDp7bjoiUHRnQXR0ck5vb3AiLGY6ZnVuY3Rpb24gVWQoZSl7cmV0dXJuIGUubCs9NCxbMCwwXX19LDE6'@; put 'e246IlB0Z0F0dHJTZW1pIixmOmZ1bmN0aW9uIEt4KGUsdCxyKXt2YXIgYT0yNTUmZVtlLmwrMV0/MTowO3JldHVybiBlLmwrPXImJjI9PXIuYmlmZj8zOjQsW2FdfX0sMjp7bjoiUHRnQXR0cklmIixmOmZ1bmN0aW9uICR4KGUsdCxyKXt2YXIgYT0yNTUmZVtlLmwrMV0/MTowO3JldHVybiBl'@; put 'LmwrPTIsW2EsZS5yZWFkX3NoaWZ0KHImJjI9PXIuYmlmZj8xOjIpXX19LDQ6e246IlB0Z0F0dHJDaG9vc2UiLGY6ZnVuY3Rpb24gR3goZSx0LHIpe2UubCs9Mjtmb3IodmFyIGE9ZS5yZWFkX3NoaWZ0KHImJjI9PXIuYmlmZj8xOjIpLG49W10saT0wO2k8PWE7KytpKW4ucHVzaChlLnJlYWRf'@; put 'c2hpZnQociYmMj09ci5iaWZmPzE6MikpO3JldHVybiBufX0sODp7bjoiUHRnQXR0ckdvdG8iLGY6ZnVuY3Rpb24gengoZSx0LHIpe3ZhciBhPTI1NSZlW2UubCsxXT8xOjA7cmV0dXJuIGUubCs9MixbYSxlLnJlYWRfc2hpZnQociYmMj09ci5iaWZmPzE6MildfX0sMTY6e246IlB0Z0F0dHJT'@; put 'dW0iLGY6ZnVuY3Rpb24gYWQoZSx0LHIpe2UubCs9ciYmMj09ci5iaWZmPzM6NH19LDMyOntuOiJQdGdBdHRyQmF4Y2VsIixmOnlmfSwzMzp7bjoiUHRnQXR0ckJheGNlbCIsZjp5Zn0sNjQ6e246IlB0Z0F0dHJTcGFjZSIsZjpmdW5jdGlvbiBZeChlKXtyZXR1cm4gZS5yZWFkX3NoaWZ0KDIp'@; put 'LEFmKGUpfX0sNjU6e246IlB0Z0F0dHJTcGFjZVNlbWkiLGY6ZnVuY3Rpb24gSngoZSl7cmV0dXJuIGUucmVhZF9zaGlmdCgyKSxBZihlKX19LDEyODp7bjoiUHRnQXR0cklmRXJyb3IiLGY6ZnVuY3Rpb24gangoZSl7dmFyIHQ9MjU1JmVbZS5sKzFdPzE6MDtyZXR1cm4gZS5sKz0yLFt0LGUu'@; put 'cmVhZF9zaGlmdCgyKV19fSwyNTU6e319O2Z1bmN0aW9uIFdhKGUsdCxyLGEpe2lmKGEuYmlmZjw4KXJldHVybiBwcihlLHQpO2Zvcih2YXIgbj1lLmwrdCxpPVtdLHM9MDtzIT09ci5sZW5ndGg7KytzKXN3aXRjaChyW3NdWzBdKXtjYXNlIlB0Z0FycmF5IjpyW3NdWzFdPWhkKGUsMCxhKSxp'@; put 'LnB1c2gocltzXVsxXSk7YnJlYWs7Y2FzZSJQdGdNZW1BcmVhIjpyW3NdWzJdPXVkKGUsMCxhKSxpLnB1c2gocltzXVsyXSk7YnJlYWs7Y2FzZSJQdGdFeHAiOmEmJjEyPT1hLmJpZmYmJihyW3NdWzFdWzFdPWUucmVhZF9zaGlmdCg0KSxpLnB1c2gocltzXVsxXSkpO2JyZWFrO2Nhc2UiUHRn'@; put 'TGlzdCI6Y2FzZSJQdGdFbGZSYWRpY2FsUyI6Y2FzZSJQdGdFbGZDb2xTIjpjYXNlIlB0Z0VsZkNvbFNWIjp0aHJvdyJVbnN1cHBvcnRlZCAiK3Jbc11bMF19cmV0dXJuIDAhPSh0PW4tZS5sKSYmaS5wdXNoKHByKGUsdCkpLGl9ZnVuY3Rpb24gSGEoZSx0LHIpe2Zvcih2YXIgbixpLGE9ZS5s'@; put 'K3Qscz1bXTthIT1lLmw7KXQ9YS1lLmwsbj1EZltpPWVbZS5sXV18fERmW1dkW2ldXSwoMjQ9PT1pfHwyNT09PWkpJiYobj0oMjQ9PT1pP0hkOlZkKVtlW2UubCsxXV0pLG4mJm4uZj9zLnB1c2goW24ubixuLmYoZSx0LHIpXSk6cHIoZSx0KTtyZXR1cm4gc31mdW5jdGlvbiBYZChlKXtmb3Io'@; put 'dmFyIHQ9W10scj0wO3I8ZS5sZW5ndGg7KytyKXtmb3IodmFyIGE9ZVtyXSxuPVtdLGk9MDtpPGEubGVuZ3RoOysraSl7dmFyIHM9YVtpXTtuLnB1c2gocz8yPT09c1swXT8nIicrc1sxXS5yZXBsYWNlKC8iL2csJyIiJykrJyInOnNbMV06IiIpfXQucHVzaChuLmpvaW4oIiwiKSl9cmV0dXJu'@; put 'IHQuam9pbigiOyIpfXZhciBHZD17UHRnQWRkOiIrIixQdGdDb25jYXQ6IiYiLFB0Z0RpdjoiLyIsUHRnRXE6Ij0iLFB0Z0dlOiI+PSIsUHRnR3Q6Ij4iLFB0Z0xlOiI8PSIsUHRnTHQ6IjwiLFB0Z011bDoiKiIsUHRnTmU6Ijw+IixQdGdQb3dlcjoiXiIsUHRnU3ViOiItIn07ZnVuY3Rpb24g'@; put 'T2YoZSx0LHIpe2lmKCFlKXJldHVybiJTSDMzVEpTRVJSMCI7aWYoci5iaWZmPjgmJighZS5YVEl8fCFlLlhUSVt0XSkpcmV0dXJuIGUuU2hlZXROYW1lc1t0XTtpZighZS5YVEkpcmV0dXJuIlNIMzNUSlNFUlI2Ijt2YXIgYT1lLlhUSVt0XTtpZihyLmJpZmY8OClyZXR1cm4gdD4xZTQmJih0'@; put 'LT02NTUzNiksdDwwJiYodD0tdCksMD09dD8iIjplLlhUSVt0LTFdO2lmKCFhKXJldHVybiJTSDMzVEpTRVJSMSI7dmFyIG49IiI7aWYoci5iaWZmPjgpc3dpdGNoKGVbYVswXV1bMF0pe2Nhc2UgMzU3OnJldHVybiBuPS0xPT1hWzFdPyIjUkVGIjplLlNoZWV0TmFtZXNbYVsxXV0sYVsxXT09'@; put 'YVsyXT9uOm4rIjoiK2UuU2hlZXROYW1lc1thWzJdXTtjYXNlIDM1ODpyZXR1cm4gbnVsbCE9ci5TSUQ/ZS5TaGVldE5hbWVzW3IuU0lEXToiU0gzM1RKU1NBTUUiK2VbYVswXV1bMF07ZGVmYXVsdDpyZXR1cm4iU0gzM1RKU1NSQyIrZVthWzBdXVswXX1zd2l0Y2goZVthWzBdXVswXVswXSl7'@; put 'Y2FzZSAxMDI1OnJldHVybiBuPS0xPT1hWzFdPyIjUkVGIjplLlNoZWV0TmFtZXNbYVsxXV18fCJTSDMzVEpTRVJSMyIsYVsxXT09YVsyXT9uOm4rIjoiK2UuU2hlZXROYW1lc1thWzJdXTtjYXNlIDE0ODQ5OnJldHVybiBlW2FbMF1dLnNsaWNlKDEpLm1hcChmdW5jdGlvbihpKXtyZXR1cm4g'@; put 'aS5OYW1lfSkuam9pbigiOzsiKTtkZWZhdWx0OnJldHVybiBlW2FbMF1dWzBdWzNdPyhuPS0xPT1hWzFdPyIjUkVGIjplW2FbMF1dWzBdWzNdW2FbMV1dfHwiU0gzM1RKU0VSUjQiLGFbMV09PWFbMl0/bjpuKyI6IitlW2FbMF1dWzBdWzNdW2FbMl1dKToiU0gzM1RKU0VSUjIifX1mdW5jdGlv'@; put 'biBJZihlLHQscil7dmFyIGE9T2YoZSx0LHIpO3JldHVybiIjUkVGIj09YT9hOmZ1bmN0aW9uIHpkKGUsdCl7aWYoIShlfHx0JiZ0LmJpZmY8PTUmJnQuYmlmZj49MikpdGhyb3cgbmV3IEVycm9yKCJlbXB0eSBzaGVldCBuYW1lIik7cmV0dXJuL1teXHdcdTRFMDAtXHU5RkZGXHUzMDQwLVx1'@; put 'MzBGRl0vLnRlc3QoZSk/IiciK2UrIiciOmV9KGEscil9ZnVuY3Rpb24ga3IoZSx0LHIsYSxuKXt2YXIgYyxvLGwsZCxpPW4mJm4uYmlmZnx8OCxzPXtzOntjOjAscjowfSxlOntjOjAscjowfX0sZj1bXSxoPTAseD0wLHY9IiI7aWYoIWVbMF18fCFlWzBdWzBdKXJldHVybiIiO2Zvcih2YXIg'@; put 'dT0tMSxwPSIiLGs9MCxUPWVbMF0ubGVuZ3RoO2s8VDsrK2spe3ZhciBnPWVbMF1ba107c3dpdGNoKGdbMF0pe2Nhc2UiUHRnVW1pbnVzIjpmLnB1c2goIi0iK2YucG9wKCkpO2JyZWFrO2Nhc2UiUHRnVXBsdXMiOmYucHVzaCgiKyIrZi5wb3AoKSk7YnJlYWs7Y2FzZSJQdGdQZXJjZW50Ijpm'@; put 'LnB1c2goZi5wb3AoKSsiJSIpO2JyZWFrO2Nhc2UiUHRnQWRkIjpjYXNlIlB0Z0NvbmNhdCI6Y2FzZSJQdGdEaXYiOmNhc2UiUHRnRXEiOmNhc2UiUHRnR2UiOmNhc2UiUHRnR3QiOmNhc2UiUHRnTGUiOmNhc2UiUHRnTHQiOmNhc2UiUHRnTXVsIjpjYXNlIlB0Z05lIjpjYXNlIlB0Z1Bvd2Vy'@; put 'IjpjYXNlIlB0Z1N1YiI6aWYoYz1mLnBvcCgpLG89Zi5wb3AoKSx1Pj0wKXtzd2l0Y2goZVswXVt1XVsxXVswXSl7Y2FzZSAwOnA9amUoIiAiLGVbMF1bdV1bMV1bMV0pO2JyZWFrO2Nhc2UgMTpwPWplKCJcciIsZVswXVt1XVsxXVsxXSk7YnJlYWs7ZGVmYXVsdDppZihwPSIiLG4uV1RGKXRo'@; put 'cm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBQdGdBdHRyU3BhY2VUeXBlICIrZVswXVt1XVsxXVswXSl9bys9cCx1PS0xfWYucHVzaChvK0dkW2dbMF1dK2MpO2JyZWFrO2Nhc2UiUHRnSXNlY3QiOmM9Zi5wb3AoKSxvPWYucG9wKCksZi5wdXNoKG8rIiAiK2MpO2JyZWFrO2Nhc2UiUHRnVW5p'@; put 'b24iOmM9Zi5wb3AoKSxvPWYucG9wKCksZi5wdXNoKG8rIiwiK2MpO2JyZWFrO2Nhc2UiUHRnUmFuZ2UiOmM9Zi5wb3AoKSxvPWYucG9wKCksZi5wdXNoKG8rIjoiK2MpO2JyZWFrO2Nhc2UiUHRnQXR0ckNob29zZSI6Y2FzZSJQdGdBdHRyR290byI6Y2FzZSJQdGdBdHRySWYiOmNhc2UiUHRn'@; put 'QXR0cklmRXJyb3IiOmNhc2UiUHRnQXR0ckJheGNlbCI6Y2FzZSJQdGdBdHRyU2VtaSI6Y2FzZSJQdGdNZW1BcmVhIjpjYXNlIlB0Z1RibCI6Y2FzZSJQdGdNZW1FcnIiOmNhc2UiUHRnTWVtQXJlYU4iOmNhc2UiUHRnTWVtTm9NZW1OIjpjYXNlIlB0Z0F0dHJOb29wIjpjYXNlIlB0Z1NoZWV0'@; put 'IjpjYXNlIlB0Z0VuZFNoZWV0IjpjYXNlIlB0Z01lbUZ1bmMiOmNhc2UiUHRnTWVtTm9NZW0iOmJyZWFrO2Nhc2UiUHRnUmVmIjpsPUNhKGdbMV1bMV0scyxuKSxmLnB1c2goRGEobCxpKSk7YnJlYWs7Y2FzZSJQdGdSZWZOIjpsPXI/Q2EoZ1sxXVsxXSxyLG4pOmdbMV1bMV0sZi5wdXNoKERh'@; put 'KGwsaSkpO2JyZWFrO2Nhc2UiUHRnUmVmM2QiOmg9Z1sxXVsxXSxsPUNhKGdbMV1bMl0scyxuKSx2PUlmKGEsaCxuKSxmLnB1c2godisiISIrRGEobCxpKSk7YnJlYWs7Y2FzZSJQdGdGdW5jIjpjYXNlIlB0Z0Z1bmNWYXIiOnZhciBNPWdbMV1bMF0sST1nWzFdWzFdO018fChNPTApO3ZhciB5'@; put 'PTA9PShNJj0xMjcpP1tdOmYuc2xpY2UoLU0pO2YubGVuZ3RoLT1NLCJVc2VyIj09PUkmJihJPXkuc2hpZnQoKSksZi5wdXNoKEkrIigiK3kuam9pbigiLCIpKyIpIik7YnJlYWs7Y2FzZSJQdGdCb29sIjpmLnB1c2goZ1sxXT8iVFJVRSI6IkZBTFNFIik7YnJlYWs7Y2FzZSJQdGdJbnQiOmNh'@; put 'c2UiUHRnRXJyIjpmLnB1c2goZ1sxXSk7YnJlYWs7Y2FzZSJQdGdOdW0iOmYucHVzaChTdHJpbmcoZ1sxXSkpO2JyZWFrO2Nhc2UiUHRnU3RyIjpmLnB1c2goJyInK2dbMV0ucmVwbGFjZSgvIi9nLCciIicpKyciJyk7YnJlYWs7Y2FzZSJQdGdBcmVhTiI6ZD1ucyhnWzFdWzFdLHI/e3M6cn06'@; put 'cyxuKSxmLnB1c2godG4oZCxuKSk7YnJlYWs7Y2FzZSJQdGdBcmVhIjpkPW5zKGdbMV1bMV0scyxuKSxmLnB1c2godG4oZCxuKSk7YnJlYWs7Y2FzZSJQdGdBcmVhM2QiOmQ9Z1sxXVsyXSx2PUlmKGEsaD1nWzFdWzFdLG4pLGYucHVzaCh2KyIhIit0bihkLG4pKTticmVhaztjYXNlIlB0Z0F0'@; put 'dHJTdW0iOmYucHVzaCgiU1VNKCIrZi5wb3AoKSsiKSIpO2JyZWFrO2Nhc2UiUHRnTmFtZSI6dmFyIFA9KGEubmFtZXN8fFtdKVsoeD1nWzFdWzJdKS0xXXx8KGFbMF18fFtdKVt4XSxSPVA/UC5OYW1lOiJTSDMzVEpTTkFNRSIrU3RyaW5nKHgpO1ImJiJfeGxmbi4iPT1SLnNsaWNlKDAsNikm'@; put 'JiFuLnhsZm4mJihSPVIuc2xpY2UoNikpLGYucHVzaChSKTticmVhaztjYXNlIlB0Z05hbWVYIjp2YXIgWCxWPWdbMV1bMV07aWYoeD1nWzFdWzJdLCEobi5iaWZmPD01KSl7dmFyIGI9IiI7aWYoMTQ4NDk9PSgoYVtWXXx8W10pWzBdfHxbXSlbMF18fCgxMDI1PT0oKGFbVl18fFtdKVswXXx8'@; put 'W10pWzBdP2FbVl1beF0mJmFbVl1beF0uaXRhYj4wJiYoYj1hLlNoZWV0TmFtZXNbYVtWXVt4XS5pdGFiLTFdKyIhIik6Yj1hLlNoZWV0TmFtZXNbeC0xXSsiISIpLGFbVl0mJmFbVl1beF0pYis9YVtWXVt4XS5OYW1lO2Vsc2UgaWYoYVswXSYmYVswXVt4XSliKz1hWzBdW3hdLk5hbWU7ZWxz'@; put 'ZXt2YXIgZWU9KE9mKGEsVixuKXx8IiIpLnNwbGl0KCI7OyIpO2VlW3gtMV0/Yj1lZVt4LTFdOmIrPSJTSDMzVEpTRVJSWCJ9Zi5wdXNoKGIpO2JyZWFrfVY8MCYmKFY9LVYpLGFbVl0mJihYPWFbVl1beF0pLFh8fChYPXtOYW1lOiJTSDMzVEpTRVJSWSJ9KSxmLnB1c2goWC5OYW1lKTticmVh'@; put 'aztjYXNlIlB0Z1BhcmVuIjp2YXIgbGU9IigiLHJlPSIpIjtpZih1Pj0wKXtzd2l0Y2gocD0iIixlWzBdW3VdWzFdWzBdKXtjYXNlIDI6bGU9amUoIiAiLGVbMF1bdV1bMV1bMV0pK2xlO2JyZWFrO2Nhc2UgMzpsZT1qZSgiXHIiLGVbMF1bdV1bMV1bMV0pK2xlO2JyZWFrO2Nhc2UgNDpyZT1q'@; put 'ZSgiICIsZVswXVt1XVsxXVsxXSkrcmU7YnJlYWs7Y2FzZSA1OnJlPWplKCJcciIsZVswXVt1XVsxXVsxXSkrcmU7YnJlYWs7ZGVmYXVsdDppZihuLldURil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgUHRnQXR0clNwYWNlVHlwZSAiK2VbMF1bdV1bMV1bMF0pfXU9LTF9Zi5wdXNoKGxl'@; put 'K2YucG9wKCkrcmUpO2JyZWFrO2Nhc2UiUHRnUmVmRXJyIjpjYXNlIlB0Z1JlZkVycjNkIjpjYXNlIlB0Z0FyZWFFcnIiOmNhc2UiUHRnQXJlYUVycjNkIjpmLnB1c2goIiNSRUYhIik7YnJlYWs7Y2FzZSJQdGdFeHAiOnZhciBkZT17YzpyLmMscjpyLnJ9O2lmKGEuc2hhcmVkZltnZShsPXtj'@; put 'OmdbMV1bMV0scjpnWzFdWzBdfSldKXt2YXIgdWU9YS5zaGFyZWRmW2dlKGwpXTtmLnB1c2goa3IodWUsMCxkZSxhLG4pKX1lbHNle3ZhciBGZT0hMTtmb3IoYz0wO2MhPWEuYXJyYXlmLmxlbmd0aDsrK2MpaWYoIShsLmM8KG89YS5hcnJheWZbY10pWzBdLnMuY3x8bC5jPm9bMF0uZS5jfHxs'@; put 'LnI8b1swXS5zLnJ8fGwucj5vWzBdLmUucikpe2YucHVzaChrcihvWzFdLDAsZGUsYSxuKSksRmU9ITA7YnJlYWt9RmV8fGYucHVzaChnWzFdKX1icmVhaztjYXNlIlB0Z0FycmF5IjpmLnB1c2goInsiK1hkKGdbMV0pKyJ9Iik7YnJlYWs7Y2FzZSJQdGdBdHRyU3BhY2UiOmNhc2UiUHRnQXR0'@; put 'clNwYWNlU2VtaSI6dT1rO2JyZWFrO2Nhc2UiUHRnTWlzc0FyZyI6Zi5wdXNoKCIiKTticmVhaztjYXNlIlB0Z0xpc3QiOmYucHVzaCgiVGFibGUiK2dbMV0uaWR4KyJbIyIrZ1sxXS5ydCsiXSIpO2JyZWFrO2Nhc2UiUHRnRWxmQ29sIjpjYXNlIlB0Z0VsZkNvbFMiOmNhc2UiUHRnRWxmQ29s'@; put 'U1YiOmNhc2UiUHRnRWxmQ29sViI6Y2FzZSJQdGdFbGZMZWwiOmNhc2UiUHRnRWxmUmFkaWNhbCI6Y2FzZSJQdGdFbGZSYWRpY2FsTGVsIjpjYXNlIlB0Z0VsZlJhZGljYWxTIjpjYXNlIlB0Z0VsZlJ3IjpjYXNlIlB0Z0VsZlJ3ViI6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBFTEZz'@; put 'Iik7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBGb3JtdWxhIFRva2VuOiAiK1N0cmluZyhnKSl9aWYoMyE9bi5iaWZmJiZ1Pj0wJiYtMT09WyJQdGdBdHRyU3BhY2UiLCJQdGdBdHRyU3BhY2VTZW1pIiwiUHRnQXR0ckdvdG8iXS5pbmRleE9mKGVbMF1ba11bMF0pKXt2'@; put 'YXIgeGU9ITA7c3dpdGNoKChnPWVbMF1bdV0pWzFdWzBdKXtjYXNlIDQ6eGU9ITE7Y2FzZSAwOnA9amUoIiAiLGdbMV1bMV0pO2JyZWFrO2Nhc2UgNTp4ZT0hMTtjYXNlIDE6cD1qZSgiXHIiLGdbMV1bMV0pO2JyZWFrO2RlZmF1bHQ6aWYocD0iIixuLldURil0aHJvdyBuZXcgRXJyb3IoIlVu'@; put 'ZXhwZWN0ZWQgUHRnQXR0clNwYWNlVHlwZSAiK2dbMV1bMF0pfWYucHVzaCgoeGU/cDoiIikrZi5wb3AoKSsoeGU/IiI6cCkpLHU9LTF9fWlmKGYubGVuZ3RoPjEmJm4uV1RGKXRocm93IG5ldyBFcnJvcigiYmFkIGZvcm11bGEgc3RhY2siKTtyZXR1cm4gZlswXX1mdW5jdGlvbiAkZChlLHQs'@; put 'cil7dmFyIGksYT1lLmwrdCxuPTI9PXIuYmlmZj8xOjIscz1lLnJlYWRfc2hpZnQobik7aWYoNjU1MzU9PXMpcmV0dXJuW1tdLHByKGUsdC0yKV07dmFyIGY9SGEoZSxzLHIpO3JldHVybiB0IT09cytuJiYoaT1XYShlLHQtcy1uLGYscikpLGUubD1hLFtmLGldfWZ1bmN0aW9uIFlkKGUsdCxy'@; put 'KXt2YXIgbixhPWUubCt0LGk9ZS5yZWFkX3NoaWZ0KDIpLHM9SGEoZSxpLHIpO3JldHVybiA2NTUzNT09aT9bW10scHIoZSx0LTIpXToodCE9PWkrMiYmKG49V2EoZSxhLWktMixzLHIpKSxbcyxuXSl9ZnVuY3Rpb24gTm4oZSx0LHIpe3ZhciBhPWUubCt0LG49bnQoZSk7Mj09ci5iaWZmJiYr'@; put 'K2UubDt2YXIgaT1mdW5jdGlvbiBKZChlKXt2YXIgdDtpZig2NTUzNSE9PXV0KGUsZS5sKzYpKXJldHVybltncihlKSwibiJdO3N3aXRjaChlW2UubF0pe2Nhc2UgMDpyZXR1cm4gZS5sKz04LFsiU3RyaW5nIiwicyJdO2Nhc2UgMTpyZXR1cm4gdD0xPT09ZVtlLmwrMl0sZS5sKz04LFt0LCJi'@; put 'Il07Y2FzZSAyOnJldHVybiB0PWVbZS5sKzJdLGUubCs9OCxbdCwiZSJdO2Nhc2UgMzpyZXR1cm4gZS5sKz04LFsiIiwicyJdfXJldHVybltdfShlKSxzPWUucmVhZF9zaGlmdCgxKTsyIT1yLmJpZmYmJihlLnJlYWRfc2hpZnQoMSksci5iaWZmPj01JiZlLnJlYWRfc2hpZnQoNCkpO3ZhciBm'@; put 'PWZ1bmN0aW9uIGpkKGUsdCxyKXt2YXIgaSxhPWUubCt0LG49Mj09ci5iaWZmPzE6MixzPWUucmVhZF9zaGlmdChuKTtpZig2NTUzNT09cylyZXR1cm5bW10scHIoZSx0LTIpXTt2YXIgZj1IYShlLHMscik7cmV0dXJuIHQhPT1zK24mJihpPVdhKGUsdC1zLW4sZixyKSksZS5sPWEsW2YsaV19'@; put 'KGUsYS1lLmwscik7cmV0dXJue2NlbGw6bix2YWw6aVswXSxmb3JtdWxhOmYsc2hhcmVkOnM+PjMmMSx0dDppWzFdfX1mdW5jdGlvbiBBMChlLHQscil7dmFyIGE9ZS5yZWFkX3NoaWZ0KDQpLG49SGEoZSxhLHIpLGk9ZS5yZWFkX3NoaWZ0KDQpO3JldHVybltuLGk+MD9XYShlLGksbixyKTpu'@; put 'dWxsXX12YXIgUWQ9QTAsQzA9QTAsZXY9QTAscnY9QTAsdHY9ezA6IkJFRVAiLDE6Ik9QRU4iLDI6Ik9QRU4uTElOS1MiLDM6IkNMT1NFLkFMTCIsNDoiU0FWRSIsNToiU0FWRS5BUyIsNjoiRklMRS5ERUxFVEUiLDc6IlBBR0UuU0VUVVAiLDg6IlBSSU5UIiw5OiJQUklOVEVSLlNFVFVQIiwx'@; put 'MDoiUVVJVCIsMTE6Ik5FVy5XSU5ET1ciLDEyOiJBUlJBTkdFLkFMTCIsMTM6IldJTkRPVy5TSVpFIiwxNDoiV0lORE9XLk1PVkUiLDE1OiJGVUxMIiwxNjoiQ0xPU0UiLDE3OiJSVU4iLDIyOiJTRVQuUFJJTlQuQVJFQSIsMjM6IlNFVC5QUklOVC5USVRMRVMiLDI0OiJTRVQuUEFHRS5CUkVB'@; put 'SyIsMjU6IlJFTU9WRS5QQUdFLkJSRUFLIiwyNjoiRk9OVCIsMjc6IkRJU1BMQVkiLDI4OiJQUk9URUNULkRPQ1VNRU5UIiwyOToiUFJFQ0lTSU9OIiwzMDoiQTEuUjFDMSIsMzE6IkNBTENVTEFURS5OT1ciLDMyOiJDQUxDVUxBVElPTiIsMzQ6IkRBVEEuRklORCIsMzU6IkVYVFJBQ1QiLDM2'@; put 'OiJEQVRBLkRFTEVURSIsMzc6IlNFVC5EQVRBQkFTRSIsMzg6IlNFVC5DUklURVJJQSIsMzk6IlNPUlQiLDQwOiJEQVRBLlNFUklFUyIsNDE6IlRBQkxFIiw0MjoiRk9STUFULk5VTUJFUiIsNDM6IkFMSUdOTUVOVCIsNDQ6IlNUWUxFIiw0NToiQk9SREVSIiw0NjoiQ0VMTC5QUk9URUNUSU9O'@; put 'Iiw0NzoiQ09MVU1OLldJRFRIIiw0ODoiVU5ETyIsNDk6IkNVVCIsNTA6IkNPUFkiLDUxOiJQQVNURSIsNTI6IkNMRUFSIiw1MzoiUEFTVEUuU1BFQ0lBTCIsNTQ6IkVESVQuREVMRVRFIiw1NToiSU5TRVJUIiw1NjoiRklMTC5SSUdIVCIsNTc6IkZJTEwuRE9XTiIsNjE6IkRFRklORS5OQU1F'@; put 'Iiw2MjoiQ1JFQVRFLk5BTUVTIiw2MzoiRk9STVVMQS5HT1RPIiw2NDoiRk9STVVMQS5GSU5EIiw2NToiU0VMRUNULkxBU1QuQ0VMTCIsNjY6IlNIT1cuQUNUSVZFLkNFTEwiLDY3OiJHQUxMRVJZLkFSRUEiLDY4OiJHQUxMRVJZLkJBUiIsNjk6IkdBTExFUlkuQ09MVU1OIiw3MDoiR0FMTEVS'@; put 'WS5MSU5FIiw3MToiR0FMTEVSWS5QSUUiLDcyOiJHQUxMRVJZLlNDQVRURVIiLDczOiJDT01CSU5BVElPTiIsNzQ6IlBSRUZFUlJFRCIsNzU6IkFERC5PVkVSTEFZIiw3NjoiR1JJRExJTkVTIiw3NzoiU0VULlBSRUZFUlJFRCIsNzg6IkFYRVMiLDc5OiJMRUdFTkQiLDgwOiJBVFRBQ0guVEVY'@; put 'VCIsODE6IkFERC5BUlJPVyIsODI6IlNFTEVDVC5DSEFSVCIsODM6IlNFTEVDVC5QTE9ULkFSRUEiLDg0OiJQQVRURVJOUyIsODU6Ik1BSU4uQ0hBUlQiLDg2OiJPVkVSTEFZIiw4NzoiU0NBTEUiLDg4OiJGT1JNQVQuTEVHRU5EIiw4OToiRk9STUFULlRFWFQiLDkwOiJFRElULlJFUEVBVCIs'@; put 'OTE6IlBBUlNFIiw5MjoiSlVTVElGWSIsOTM6IkhJREUiLDk0OiJVTkhJREUiLDk1OiJXT1JLU1BBQ0UiLDk2OiJGT1JNVUxBIiw5NzoiRk9STVVMQS5GSUxMIiw5ODoiRk9STVVMQS5BUlJBWSIsOTk6IkRBVEEuRklORC5ORVhUIiwxMDA6IkRBVEEuRklORC5QUkVWIiwxMDE6IkZPUk1VTEEu'@; put 'RklORC5ORVhUIiwxMDI6IkZPUk1VTEEuRklORC5QUkVWIiwxMDM6IkFDVElWQVRFIiwxMDQ6IkFDVElWQVRFLk5FWFQiLDEwNToiQUNUSVZBVEUuUFJFViIsMTA2OiJVTkxPQ0tFRC5ORVhUIiwxMDc6IlVOTE9DS0VELlBSRVYiLDEwODoiQ09QWS5QSUNUVVJFIiwxMDk6IlNFTEVDVCIsMTEw'@; put 'OiJERUxFVEUuTkFNRSIsMTExOiJERUxFVEUuRk9STUFUIiwxMTI6IlZMSU5FIiwxMTM6IkhMSU5FIiwxMTQ6IlZQQUdFIiwxMTU6IkhQQUdFIiwxMTY6IlZTQ1JPTEwiLDExNzoiSFNDUk9MTCIsMTE4OiJBTEVSVCIsMTE5OiJORVciLDEyMDoiQ0FOQ0VMLkNPUFkiLDEyMToiU0hPVy5DTElQ'@; put 'Qk9BUkQiLDEyMjoiTUVTU0FHRSIsMTI0OiJQQVNURS5MSU5LIiwxMjU6IkFQUC5BQ1RJVkFURSIsMTI2OiJERUxFVEUuQVJST1ciLDEyNzoiUk9XLkhFSUdIVCIsMTI4OiJGT1JNQVQuTU9WRSIsMTI5OiJGT1JNQVQuU0laRSIsMTMwOiJGT1JNVUxBLlJFUExBQ0UiLDEzMToiU0VORC5LRVlT'@; put 'IiwxMzI6IlNFTEVDVC5TUEVDSUFMIiwxMzM6IkFQUExZLk5BTUVTIiwxMzQ6IlJFUExBQ0UuRk9OVCIsMTM1OiJGUkVFWkUuUEFORVMiLDEzNjoiU0hPVy5JTkZPIiwxMzc6IlNQTElUIiwxMzg6Ik9OLldJTkRPVyIsMTM5OiJPTi5EQVRBIiwxNDA6IkRJU0FCTEUuSU5QVVQiLDE0MjoiT1VU'@; put 'TElORSIsMTQzOiJMSVNULk5BTUVTIiwxNDQ6IkZJTEUuQ0xPU0UiLDE0NToiU0FWRS5XT1JLQk9PSyIsMTQ2OiJEQVRBLkZPUk0iLDE0NzoiQ09QWS5DSEFSVCIsMTQ4OiJPTi5USU1FIiwxNDk6IldBSVQiLDE1MDoiRk9STUFULkZPTlQiLDE1MToiRklMTC5VUCIsMTUyOiJGSUxMLkxFRlQi'@; put 'LDE1MzoiREVMRVRFLk9WRVJMQVkiLDE1NToiU0hPUlQuTUVOVVMiLDE1OToiU0VULlVQREFURS5TVEFUVVMiLDE2MToiQ09MT1IuUEFMRVRURSIsMTYyOiJERUxFVEUuU1RZTEUiLDE2MzoiV0lORE9XLlJFU1RPUkUiLDE2NDoiV0lORE9XLk1BWElNSVpFIiwxNjY6IkNIQU5HRS5MSU5LIiwx'@; put 'Njc6IkNBTENVTEFURS5ET0NVTUVOVCIsMTY4OiJPTi5LRVkiLDE2OToiQVBQLlJFU1RPUkUiLDE3MDoiQVBQLk1PVkUiLDE3MToiQVBQLlNJWkUiLDE3MjoiQVBQLk1JTklNSVpFIiwxNzM6IkFQUC5NQVhJTUlaRSIsMTc0OiJCUklORy5UTy5GUk9OVCIsMTc1OiJTRU5ELlRPLkJBQ0siLDE4'@; put 'NToiTUFJTi5DSEFSVC5UWVBFIiwxODY6Ik9WRVJMQVkuQ0hBUlQuVFlQRSIsMTg3OiJTRUxFQ1QuRU5EIiwxODg6Ik9QRU4uTUFJTCIsMTg5OiJTRU5ELk1BSUwiLDE5MDoiU1RBTkRBUkQuRk9OVCIsMTkxOiJDT05TT0xJREFURSIsMTkyOiJTT1JULlNQRUNJQUwiLDE5MzoiR0FMTEVSWS4z'@; put 'RC5BUkVBIiwxOTQ6IkdBTExFUlkuM0QuQ09MVU1OIiwxOTU6IkdBTExFUlkuM0QuTElORSIsMTk2OiJHQUxMRVJZLjNELlBJRSIsMTk3OiJWSUVXLjNEIiwxOTg6IkdPQUwuU0VFSyIsMTk5OiJXT1JLR1JPVVAiLDIwMDoiRklMTC5HUk9VUCIsMjAxOiJVUERBVEUuTElOSyIsMjAyOiJQUk9N'@; put 'T1RFIiwyMDM6IkRFTU9URSIsMjA0OiJTSE9XLkRFVEFJTCIsMjA2OiJVTkdST1VQIiwyMDc6Ik9CSkVDVC5QUk9QRVJUSUVTIiwyMDg6IlNBVkUuTkVXLk9CSkVDVCIsMjA5OiJTSEFSRSIsMjEwOiJTSEFSRS5OQU1FIiwyMTE6IkRVUExJQ0FURSIsMjEyOiJBUFBMWS5TVFlMRSIsMjEzOiJB'@; put 'U1NJR04uVE8uT0JKRUNUIiwyMTQ6Ik9CSkVDVC5QUk9URUNUSU9OIiwyMTU6IkhJREUuT0JKRUNUIiwyMTY6IlNFVC5FWFRSQUNUIiwyMTc6IkNSRUFURS5QVUJMSVNIRVIiLDIxODoiU1VCU0NSSUJFLlRPIiwyMTk6IkFUVFJJQlVURVMiLDIyMDoiU0hPVy5UT09MQkFSIiwyMjI6IlBSSU5U'@; put 'LlBSRVZJRVciLDIyMzoiRURJVC5DT0xPUiIsMjI0OiJTSE9XLkxFVkVMUyIsMjI1OiJGT1JNQVQuTUFJTiIsMjI2OiJGT1JNQVQuT1ZFUkxBWSIsMjI3OiJPTi5SRUNBTEMiLDIyODoiRURJVC5TRVJJRVMiLDIyOToiREVGSU5FLlNUWUxFIiwyNDA6IkxJTkUuUFJJTlQiLDI0MzoiRU5URVIu'@; put 'REFUQSIsMjQ5OiJHQUxMRVJZLlJBREFSIiwyNTA6Ik1FUkdFLlNUWUxFUyIsMjUxOiJFRElUSU9OLk9QVElPTlMiLDI1MjoiUEFTVEUuUElDVFVSRSIsMjUzOiJQQVNURS5QSUNUVVJFLkxJTksiLDI1NDoiU1BFTExJTkciLDI1NjoiWk9PTSIsMjU5OiJJTlNFUlQuT0JKRUNUIiwyNjA6IldJ'@; put 'TkRPVy5NSU5JTUlaRSIsMjY1OiJTT1VORC5OT1RFIiwyNjY6IlNPVU5ELlBMQVkiLDI2NzoiRk9STUFULlNIQVBFIiwyNjg6IkVYVEVORC5QT0xZR09OIiwyNjk6IkZPUk1BVC5BVVRPIiwyNzI6IkdBTExFUlkuM0QuQkFSIiwyNzM6IkdBTExFUlkuM0QuU1VSRkFDRSIsMjc0OiJGSUxMLkFV'@; put 'VE8iLDI3NjoiQ1VTVE9NSVpFLlRPT0xCQVIiLDI3NzoiQURELlRPT0wiLDI3ODoiRURJVC5PQkpFQ1QiLDI3OToiT04uRE9VQkxFQ0xJQ0siLDI4MDoiT04uRU5UUlkiLDI4MToiV09SS0JPT0suQUREIiwyODI6IldPUktCT09LLk1PVkUiLDI4MzoiV09SS0JPT0suQ09QWSIsMjg0OiJXT1JL'@; put 'Qk9PSy5PUFRJT05TIiwyODU6IlNBVkUuV09SS1NQQUNFIiwyODg6IkNIQVJULldJWkFSRCIsMjg5OiJERUxFVEUuVE9PTCIsMjkwOiJNT1ZFLlRPT0wiLDI5MToiV09SS0JPT0suU0VMRUNUIiwyOTI6IldPUktCT09LLkFDVElWQVRFIiwyOTM6IkFTU0lHTi5UTy5UT09MIiwyOTU6IkNPUFku'@; put 'VE9PTCIsMjk2OiJSRVNFVC5UT09MIiwyOTc6IkNPTlNUUkFJTi5OVU1FUklDIiwyOTg6IlBBU1RFLlRPT0wiLDMwMjoiV09SS0JPT0suTkVXIiwzMDU6IlNDRU5BUklPLkNFTExTIiwzMDY6IlNDRU5BUklPLkRFTEVURSIsMzA3OiJTQ0VOQVJJTy5BREQiLDMwODoiU0NFTkFSSU8uRURJVCIs'@; put 'MzA5OiJTQ0VOQVJJTy5TSE9XIiwzMTA6IlNDRU5BUklPLlNIT1cuTkVYVCIsMzExOiJTQ0VOQVJJTy5TVU1NQVJZIiwzMTI6IlBJVk9ULlRBQkxFLldJWkFSRCIsMzEzOiJQSVZPVC5GSUVMRC5QUk9QRVJUSUVTIiwzMTQ6IlBJVk9ULkZJRUxEIiwzMTU6IlBJVk9ULklURU0iLDMxNjoiUElW'@; put 'T1QuQURELkZJRUxEUyIsMzE4OiJPUFRJT05TLkNBTENVTEFUSU9OIiwzMTk6Ik9QVElPTlMuRURJVCIsMzIwOiJPUFRJT05TLlZJRVciLDMyMToiQURESU4uTUFOQUdFUiIsMzIyOiJNRU5VLkVESVRPUiIsMzIzOiJBVFRBQ0guVE9PTEJBUlMiLDMyNDoiVkJBQWN0aXZhdGUiLDMyNToiT1BU'@; put 'SU9OUy5DSEFSVCIsMzI4OiJWQkEuSU5TRVJULkZJTEUiLDMzMDoiVkJBLlBST0NFRFVSRS5ERUZJTklUSU9OIiwzMzY6IlJPVVRJTkcuU0xJUCIsMzM4OiJST1VURS5ET0NVTUVOVCIsMzM5OiJNQUlMLkxPR09OIiwzNDI6IklOU0VSVC5QSUNUVVJFIiwzNDM6IkVESVQuVE9PTCIsMzQ0OiJH'@; put 'QUxMRVJZLkRPVUdITlVUIiwzNTA6IkNIQVJULlRSRU5EIiwzNTI6IlBJVk9ULklURU0uUFJPUEVSVElFUyIsMzU0OiJXT1JLQk9PSy5JTlNFUlQiLDM1NToiT1BUSU9OUy5UUkFOU0lUSU9OIiwzNTY6Ik9QVElPTlMuR0VORVJBTCIsMzcwOiJGSUxURVIuQURWQU5DRUQiLDM3MzoiTUFJTC5B'@; put 'REQuTUFJTEVSIiwzNzQ6Ik1BSUwuREVMRVRFLk1BSUxFUiIsMzc1OiJNQUlMLlJFUExZIiwzNzY6Ik1BSUwuUkVQTFkuQUxMIiwzNzc6Ik1BSUwuRk9SV0FSRCIsMzc4OiJNQUlMLk5FWFQuTEVUVEVSIiwzNzk6IkRBVEEuTEFCRUwiLDM4MDoiSU5TRVJULlRJVExFIiwzODE6IkZPTlQuUFJP'@; put 'UEVSVElFUyIsMzgyOiJNQUNSTy5PUFRJT05TIiwzODM6IldPUktCT09LLkhJREUiLDM4NDoiV09SS0JPT0suVU5ISURFIiwzODU6IldPUktCT09LLkRFTEVURSIsMzg2OiJXT1JLQk9PSy5OQU1FIiwzODg6IkdBTExFUlkuQ1VTVE9NIiwzOTA6IkFERC5DSEFSVC5BVVRPRk9STUFUIiwzOTE6'@; put 'IkRFTEVURS5DSEFSVC5BVVRPRk9STUFUIiwzOTI6IkNIQVJULkFERC5EQVRBIiwzOTM6IkFVVE8uT1VUTElORSIsMzk0OiJUQUIuT1JERVIiLDM5NToiU0hPVy5ESUFMT0ciLDM5NjoiU0VMRUNULkFMTCIsMzk3OiJVTkdST1VQLlNIRUVUUyIsMzk4OiJTVUJUT1RBTC5DUkVBVEUiLDM5OToi'@; put 'U1VCVE9UQUwuUkVNT1ZFIiw0MDA6IlJFTkFNRS5PQkpFQ1QiLDQxMjoiV09SS0JPT0suU0NST0xMIiw0MTM6IldPUktCT09LLk5FWFQiLDQxNDoiV09SS0JPT0suUFJFViIsNDE1OiJXT1JLQk9PSy5UQUIuU1BMSVQiLDQxNjoiRlVMTC5TQ1JFRU4iLDQxNzoiV09SS0JPT0suUFJPVEVDVCIs'@; put 'NDIwOiJTQ1JPTExCQVIuUFJPUEVSVElFUyIsNDIxOiJQSVZPVC5TSE9XLlBBR0VTIiw0MjI6IlRFWFQuVE8uQ09MVU1OUyIsNDIzOiJGT1JNQVQuQ0hBUlRUWVBFIiw0MjQ6IkxJTksuRk9STUFUIiw0MjU6IlRSQUNFUi5ESVNQTEFZIiw0MzA6IlRSQUNFUi5OQVZJR0FURSIsNDMxOiJUUkFD'@; put 'RVIuQ0xFQVIiLDQzMjoiVFJBQ0VSLkVSUk9SIiw0MzM6IlBJVk9ULkZJRUxELkdST1VQIiw0MzQ6IlBJVk9ULkZJRUxELlVOR1JPVVAiLDQzNToiQ0hFQ0tCT1guUFJPUEVSVElFUyIsNDM2OiJMQUJFTC5QUk9QRVJUSUVTIiw0Mzc6IkxJU1RCT1guUFJPUEVSVElFUyIsNDM4OiJFRElUQk9Y'@; put 'LlBST1BFUlRJRVMiLDQzOToiUElWT1QuUkVGUkVTSCIsNDQwOiJMSU5LLkNPTUJPIiw0NDE6Ik9QRU4uVEVYVCIsNDQyOiJISURFLkRJQUxPRyIsNDQzOiJTRVQuRElBTE9HLkZPQ1VTIiw0NDQ6IkVOQUJMRS5PQkpFQ1QiLDQ0NToiUFVTSEJVVFRPTi5QUk9QRVJUSUVTIiw0NDY6IlNFVC5E'@; put 'SUFMT0cuREVGQVVMVCIsNDQ3OiJGSUxURVIiLDQ0ODoiRklMVEVSLlNIT1cuQUxMIiw0NDk6IkNMRUFSLk9VVExJTkUiLDQ1MDoiRlVOQ1RJT04uV0laQVJEIiw0NTE6IkFERC5MSVNULklURU0iLDQ1MjoiU0VULkxJU1QuSVRFTSIsNDUzOiJSRU1PVkUuTElTVC5JVEVNIiw0NTQ6IlNFTEVD'@; put 'VC5MSVNULklURU0iLDQ1NToiU0VULkNPTlRST0wuVkFMVUUiLDQ1NjoiU0FWRS5DT1BZLkFTIiw0NTg6Ik9QVElPTlMuTElTVFMuQUREIiw0NTk6Ik9QVElPTlMuTElTVFMuREVMRVRFIiw0NjA6IlNFUklFUy5BWEVTIiw0NjE6IlNFUklFUy5YIiw0NjI6IlNFUklFUy5ZIiw0NjM6IkVSUk9S'@; put 'QkFSLlgiLDQ2NDoiRVJST1JCQVIuWSIsNDY1OiJGT1JNQVQuQ0hBUlQiLDQ2NjoiU0VSSUVTLk9SREVSIiw0Njc6Ik1BSUwuTE9HT0ZGIiw0Njg6IkNMRUFSLlJPVVRJTkcuU0xJUCIsNDY5OiJBUFAuQUNUSVZBVEUuTUlDUk9TT0ZUIiw0NzA6Ik1BSUwuRURJVC5NQUlMRVIiLDQ3MToiT04u'@; put 'U0hFRVQiLDQ3MjoiU1RBTkRBUkQuV0lEVEgiLDQ3MzoiU0NFTkFSSU8uTUVSR0UiLDQ3NDoiU1VNTUFSWS5JTkZPIiw0NzU6IkZJTkQuRklMRSIsNDc2OiJBQ1RJVkUuQ0VMTC5GT05UIiw0Nzc6IkVOQUJMRS5USVBXSVpBUkQiLDQ3ODoiVkJBLk1BS0UuQURESU4iLDQ4MDoiSU5TRVJUREFU'@; put 'QVRBQkxFIiw0ODE6IldPUktHUk9VUC5PUFRJT05TIiw0ODI6Ik1BSUwuU0VORC5NQUlMRVIiLDQ4NToiQVVUT0NPUlJFQ1QiLDQ4OToiUE9TVC5ET0NVTUVOVCIsNDkxOiJQSUNLTElTVCIsNDkzOiJWSUVXLlNIT1ciLDQ5NDoiVklFVy5ERUZJTkUiLDQ5NToiVklFVy5ERUxFVEUiLDUwOToi'@; put 'U0hFRVQuQkFDS0dST1VORCIsNTEwOiJJTlNFUlQuTUFQLk9CSkVDVCIsNTExOiJPUFRJT05TLk1FTk9OTyIsNTE3OiJNU09DSEVDS1MiLDUxODoiTk9STUFMIiw1MTk6IkxBWU9VVCIsNTIwOiJSTS5QUklOVC5BUkVBIiw1MjE6IkNMRUFSLlBSSU5ULkFSRUEiLDUyMjoiQURELlBSSU5ULkFS'@; put 'RUEiLDUyMzoiTU9WRS5CUksiLDU0NToiSElERUNVUlIuTk9URSIsNTQ2OiJISURFQUxMLk5PVEVTIiw1NDc6IkRFTEVURS5OT1RFIiw1NDg6IlRSQVZFUlNFLk5PVEVTIiw1NDk6IkFDVElWQVRFLk5PVEVTIiw2MjA6IlBST1RFQ1QuUkVWSVNJT05TIiw2MjE6IlVOUFJPVEVDVC5SRVZJU0lP'@; put 'TlMiLDY0NzoiT1BUSU9OUy5NRSIsNjUzOiJXRUIuUFVCTElTSCIsNjY3OiJORVdXRUJRVUVSWSIsNjczOiJQSVZPVC5UQUJMRS5DSEFSVCIsNzUzOiJPUFRJT05TLlNBVkUiLDc1NToiT1BUSU9OUy5TUEVMTCIsODA4OiJISURFQUxMLklOS0FOTk9UUyJ9LFJmPXswOiJDT1VOVCIsMToiSUYi'@; put 'LDI6IklTTkEiLDM6IklTRVJST1IiLDQ6IlNVTSIsNToiQVZFUkFHRSIsNjoiTUlOIiw3OiJNQVgiLDg6IlJPVyIsOToiQ09MVU1OIiwxMDoiTkEiLDExOiJOUFYiLDEyOiJTVERFViIsMTM6IkRPTExBUiIsMTQ6IkZJWEVEIiwxNToiU0lOIiwxNjoiQ09TIiwxNzoiVEFOIiwxODoiQVRBTiIs'@; put 'MTk6IlBJIiwyMDoiU1FSVCIsMjE6IkVYUCIsMjI6IkxOIiwyMzoiTE9HMTAiLDI0OiJBQlMiLDI1OiJJTlQiLDI2OiJTSUdOIiwyNzoiUk9VTkQiLDI4OiJMT09LVVAiLDI5OiJJTkRFWCIsMzA6IlJFUFQiLDMxOiJNSUQiLDMyOiJMRU4iLDMzOiJWQUxVRSIsMzQ6IlRSVUUiLDM1OiJGQUxT'@; put 'RSIsMzY6IkFORCIsMzc6Ik9SIiwzODoiTk9UIiwzOToiTU9EIiw0MDoiRENPVU5UIiw0MToiRFNVTSIsNDI6IkRBVkVSQUdFIiw0MzoiRE1JTiIsNDQ6IkRNQVgiLDQ1OiJEU1RERVYiLDQ2OiJWQVIiLDQ3OiJEVkFSIiw0ODoiVEVYVCIsNDk6IkxJTkVTVCIsNTA6IlRSRU5EIiw1MToiTE9H'@; put 'RVNUIiw1MjoiR1JPV1RIIiw1MzoiR09UTyIsNTQ6IkhBTFQiLDU1OiJSRVRVUk4iLDU2OiJQViIsNTc6IkZWIiw1ODoiTlBFUiIsNTk6IlBNVCIsNjA6IlJBVEUiLDYxOiJNSVJSIiw2MjoiSVJSIiw2MzoiUkFORCIsNjQ6Ik1BVENIIiw2NToiREFURSIsNjY6IlRJTUUiLDY3OiJEQVkiLDY4'@; put 'OiJNT05USCIsNjk6IllFQVIiLDcwOiJXRUVLREFZIiw3MToiSE9VUiIsNzI6Ik1JTlVURSIsNzM6IlNFQ09ORCIsNzQ6Ik5PVyIsNzU6IkFSRUFTIiw3NjoiUk9XUyIsNzc6IkNPTFVNTlMiLDc4OiJPRkZTRVQiLDc5OiJBQlNSRUYiLDgwOiJSRUxSRUYiLDgxOiJBUkdVTUVOVCIsODI6IlNF'@; put 'QVJDSCIsODM6IlRSQU5TUE9TRSIsODQ6IkVSUk9SIiw4NToiU1RFUCIsODY6IlRZUEUiLDg3OiJFQ0hPIiw4ODoiU0VULk5BTUUiLDg5OiJDQUxMRVIiLDkwOiJERVJFRiIsOTE6IldJTkRPV1MiLDkyOiJTRVJJRVMiLDkzOiJET0NVTUVOVFMiLDk0OiJBQ1RJVkUuQ0VMTCIsOTU6IlNFTEVD'@; put 'VElPTiIsOTY6IlJFU1VMVCIsOTc6IkFUQU4yIiw5ODoiQVNJTiIsOTk6IkFDT1MiLDEwMDoiQ0hPT1NFIiwxMDE6IkhMT09LVVAiLDEwMjoiVkxPT0tVUCIsMTAzOiJMSU5LUyIsMTA0OiJJTlBVVCIsMTA1OiJJU1JFRiIsMTA2OiJHRVQuRk9STVVMQSIsMTA3OiJHRVQuTkFNRSIsMTA4OiJT'@; put 'RVQuVkFMVUUiLDEwOToiTE9HIiwxMTA6IkVYRUMiLDExMToiQ0hBUiIsMTEyOiJMT1dFUiIsMTEzOiJVUFBFUiIsMTE0OiJQUk9QRVIiLDExNToiTEVGVCIsMTE2OiJSSUdIVCIsMTE3OiJFWEFDVCIsMTE4OiJUUklNIiwxMTk6IlJFUExBQ0UiLDEyMDoiU1VCU1RJVFVURSIsMTIxOiJDT0RF'@; put 'IiwxMjI6Ik5BTUVTIiwxMjM6IkRJUkVDVE9SWSIsMTI0OiJGSU5EIiwxMjU6IkNFTEwiLDEyNjoiSVNFUlIiLDEyNzoiSVNURVhUIiwxMjg6IklTTlVNQkVSIiwxMjk6IklTQkxBTksiLDEzMDoiVCIsMTMxOiJOIiwxMzI6IkZPUEVOIiwxMzM6IkZDTE9TRSIsMTM0OiJGU0laRSIsMTM1OiJG'@; put 'UkVBRExOIiwxMzY6IkZSRUFEIiwxMzc6IkZXUklURUxOIiwxMzg6IkZXUklURSIsMTM5OiJGUE9TIiwxNDA6IkRBVEVWQUxVRSIsMTQxOiJUSU1FVkFMVUUiLDE0MjoiU0xOIiwxNDM6IlNZRCIsMTQ0OiJEREIiLDE0NToiR0VULkRFRiIsMTQ2OiJSRUZURVhUIiwxNDc6IlRFWFRSRUYiLDE0'@; put 'ODoiSU5ESVJFQ1QiLDE0OToiUkVHSVNURVIiLDE1MDoiQ0FMTCIsMTUxOiJBREQuQkFSIiwxNTI6IkFERC5NRU5VIiwxNTM6IkFERC5DT01NQU5EIiwxNTQ6IkVOQUJMRS5DT01NQU5EIiwxNTU6IkNIRUNLLkNPTU1BTkQiLDE1NjoiUkVOQU1FLkNPTU1BTkQiLDE1NzoiU0hPVy5CQVIiLDE1'@; put 'ODoiREVMRVRFLk1FTlUiLDE1OToiREVMRVRFLkNPTU1BTkQiLDE2MDoiR0VULkNIQVJULklURU0iLDE2MToiRElBTE9HLkJPWCIsMTYyOiJDTEVBTiIsMTYzOiJNREVURVJNIiwxNjQ6Ik1JTlZFUlNFIiwxNjU6Ik1NVUxUIiwxNjY6IkZJTEVTIiwxNjc6IklQTVQiLDE2ODoiUFBNVCIsMTY5'@; put 'OiJDT1VOVEEiLDE3MDoiQ0FOQ0VMLktFWSIsMTcxOiJGT1IiLDE3MjoiV0hJTEUiLDE3MzoiQlJFQUsiLDE3NDoiTkVYVCIsMTc1OiJJTklUSUFURSIsMTc2OiJSRVFVRVNUIiwxNzc6IlBPS0UiLDE3ODoiRVhFQ1VURSIsMTc5OiJURVJNSU5BVEUiLDE4MDoiUkVTVEFSVCIsMTgxOiJIRUxQ'@; put 'IiwxODI6IkdFVC5CQVIiLDE4MzoiUFJPRFVDVCIsMTg0OiJGQUNUIiwxODU6IkdFVC5DRUxMIiwxODY6IkdFVC5XT1JLU1BBQ0UiLDE4NzoiR0VULldJTkRPVyIsMTg4OiJHRVQuRE9DVU1FTlQiLDE4OToiRFBST0RVQ1QiLDE5MDoiSVNOT05URVhUIiwxOTE6IkdFVC5OT1RFIiwxOTI6Ik5P'@; put 'VEUiLDE5MzoiU1RERVZQIiwxOTQ6IlZBUlAiLDE5NToiRFNUREVWUCIsMTk2OiJEVkFSUCIsMTk3OiJUUlVOQyIsMTk4OiJJU0xPR0lDQUwiLDE5OToiRENPVU5UQSIsMjAwOiJERUxFVEUuQkFSIiwyMDE6IlVOUkVHSVNURVIiLDIwNDoiVVNET0xMQVIiLDIwNToiRklOREIiLDIwNjoiU0VB'@; put 'UkNIQiIsMjA3OiJSRVBMQUNFQiIsMjA4OiJMRUZUQiIsMjA5OiJSSUdIVEIiLDIxMDoiTUlEQiIsMjExOiJMRU5CIiwyMTI6IlJPVU5EVVAiLDIxMzoiUk9VTkRET1dOIiwyMTQ6IkFTQyIsMjE1OiJEQkNTIiwyMTY6IlJBTksiLDIxOToiQUREUkVTUyIsMjIwOiJEQVlTMzYwIiwyMjE6IlRP'@; put 'REFZIiwyMjI6IlZEQiIsMjIzOiJFTFNFIiwyMjQ6IkVMU0UuSUYiLDIyNToiRU5ELklGIiwyMjY6IkZPUi5DRUxMIiwyMjc6Ik1FRElBTiIsMjI4OiJTVU1QUk9EVUNUIiwyMjk6IlNJTkgiLDIzMDoiQ09TSCIsMjMxOiJUQU5IIiwyMzI6IkFTSU5IIiwyMzM6IkFDT1NIIiwyMzQ6IkFUQU5I'@; put 'IiwyMzU6IkRHRVQiLDIzNjoiQ1JFQVRFLk9CSkVDVCIsMjM3OiJWT0xBVElMRSIsMjM4OiJMQVNULkVSUk9SIiwyMzk6IkNVU1RPTS5VTkRPIiwyNDA6IkNVU1RPTS5SRVBFQVQiLDI0MToiRk9STVVMQS5DT05WRVJUIiwyNDI6IkdFVC5MSU5LLklORk8iLDI0MzoiVEVYVC5CT1giLDI0NDoi'@; put 'SU5GTyIsMjQ1OiJHUk9VUCIsMjQ2OiJHRVQuT0JKRUNUIiwyNDc6IkRCIiwyNDg6IlBBVVNFIiwyNTE6IlJFU1VNRSIsMjUyOiJGUkVRVUVOQ1kiLDI1MzoiQURELlRPT0xCQVIiLDI1NDoiREVMRVRFLlRPT0xCQVIiLDI1NToiVXNlciIsMjU2OiJSRVNFVC5UT09MQkFSIiwyNTc6IkVWQUxV'@; put 'QVRFIiwyNTg6IkdFVC5UT09MQkFSIiwyNTk6IkdFVC5UT09MIiwyNjA6IlNQRUxMSU5HLkNIRUNLIiwyNjE6IkVSUk9SLlRZUEUiLDI2MjoiQVBQLlRJVExFIiwyNjM6IldJTkRPVy5USVRMRSIsMjY0OiJTQVZFLlRPT0xCQVIiLDI2NToiRU5BQkxFLlRPT0wiLDI2NjoiUFJFU1MuVE9PTCIs'@; put 'MjY3OiJSRUdJU1RFUi5JRCIsMjY4OiJHRVQuV09SS0JPT0siLDI2OToiQVZFREVWIiwyNzA6IkJFVEFESVNUIiwyNzE6IkdBTU1BTE4iLDI3MjoiQkVUQUlOViIsMjczOiJCSU5PTURJU1QiLDI3NDoiQ0hJRElTVCIsMjc1OiJDSElJTlYiLDI3NjoiQ09NQklOIiwyNzc6IkNPTkZJREVOQ0Ui'@; put 'LDI3ODoiQ1JJVEJJTk9NIiwyNzk6IkVWRU4iLDI4MDoiRVhQT05ESVNUIiwyODE6IkZESVNUIiwyODI6IkZJTlYiLDI4MzoiRklTSEVSIiwyODQ6IkZJU0hFUklOViIsMjg1OiJGTE9PUiIsMjg2OiJHQU1NQURJU1QiLDI4NzoiR0FNTUFJTlYiLDI4ODoiQ0VJTElORyIsMjg5OiJIWVBHRU9N'@; put 'RElTVCIsMjkwOiJMT0dOT1JNRElTVCIsMjkxOiJMT0dJTlYiLDI5MjoiTkVHQklOT01ESVNUIiwyOTM6Ik5PUk1ESVNUIiwyOTQ6Ik5PUk1TRElTVCIsMjk1OiJOT1JNSU5WIiwyOTY6Ik5PUk1TSU5WIiwyOTc6IlNUQU5EQVJESVpFIiwyOTg6Ik9ERCIsMjk5OiJQRVJNVVQiLDMwMDoiUE9J'@; put 'U1NPTiIsMzAxOiJURElTVCIsMzAyOiJXRUlCVUxMIiwzMDM6IlNVTVhNWTIiLDMwNDoiU1VNWDJNWTIiLDMwNToiU1VNWDJQWTIiLDMwNjoiQ0hJVEVTVCIsMzA3OiJDT1JSRUwiLDMwODoiQ09WQVIiLDMwOToiRk9SRUNBU1QiLDMxMDoiRlRFU1QiLDMxMToiSU5URVJDRVBUIiwzMTI6IlBF'@; put 'QVJTT04iLDMxMzoiUlNRIiwzMTQ6IlNURVlYIiwzMTU6IlNMT1BFIiwzMTY6IlRURVNUIiwzMTc6IlBST0IiLDMxODoiREVWU1EiLDMxOToiR0VPTUVBTiIsMzIwOiJIQVJNRUFOIiwzMjE6IlNVTVNRIiwzMjI6IktVUlQiLDMyMzoiU0tFVyIsMzI0OiJaVEVTVCIsMzI1OiJMQVJHRSIsMzI2'@; put 'OiJTTUFMTCIsMzI3OiJRVUFSVElMRSIsMzI4OiJQRVJDRU5USUxFIiwzMjk6IlBFUkNFTlRSQU5LIiwzMzA6Ik1PREUiLDMzMToiVFJJTU1FQU4iLDMzMjoiVElOViIsMzM0OiJNT1ZJRS5DT01NQU5EIiwzMzU6IkdFVC5NT1ZJRSIsMzM2OiJDT05DQVRFTkFURSIsMzM3OiJQT1dFUiIsMzM4'@; put 'OiJQSVZPVC5BREQuREFUQSIsMzM5OiJHRVQuUElWT1QuVEFCTEUiLDM0MDoiR0VULlBJVk9ULkZJRUxEIiwzNDE6IkdFVC5QSVZPVC5JVEVNIiwzNDI6IlJBRElBTlMiLDM0MzoiREVHUkVFUyIsMzQ0OiJTVUJUT1RBTCIsMzQ1OiJTVU1JRiIsMzQ2OiJDT1VOVElGIiwzNDc6IkNPVU5UQkxB'@; put 'TksiLDM0ODoiU0NFTkFSSU8uR0VUIiwzNDk6Ik9QVElPTlMuTElTVFMuR0VUIiwzNTA6IklTUE1UIiwzNTE6IkRBVEVESUYiLDM1MjoiREFURVNUUklORyIsMzUzOiJOVU1CRVJTVFJJTkciLDM1NDoiUk9NQU4iLDM1NToiT1BFTi5ESUFMT0ciLDM1NjoiU0FWRS5ESUFMT0ciLDM1NzoiVklF'@; put 'Vy5HRVQiLDM1ODoiR0VUUElWT1REQVRBIiwzNTk6IkhZUEVSTElOSyIsMzYwOiJQSE9ORVRJQyIsMzYxOiJBVkVSQUdFQSIsMzYyOiJNQVhBIiwzNjM6Ik1JTkEiLDM2NDoiU1RERVZQQSIsMzY1OiJWQVJQQSIsMzY2OiJTVERFVkEiLDM2NzoiVkFSQSIsMzY4OiJCQUhUVEVYVCIsMzY5OiJU'@; put 'SEFJREFZT0ZXRUVLIiwzNzA6IlRIQUlESUdJVCIsMzcxOiJUSEFJTU9OVEhPRllFQVIiLDM3MjoiVEhBSU5VTVNPVU5EIiwzNzM6IlRIQUlOVU1TVFJJTkciLDM3NDoiVEhBSVNUUklOR0xFTkdUSCIsMzc1OiJJU1RIQUlESUdJVCIsMzc2OiJST1VOREJBSFRET1dOIiwzNzc6IlJPVU5EQkFI'@; put 'VFVQIiwzNzg6IlRIQUlZRUFSIiwzNzk6IlJURCIsMzgwOiJDVUJFVkFMVUUiLDM4MToiQ1VCRU1FTUJFUiIsMzgyOiJDVUJFTUVNQkVSUFJPUEVSVFkiLDM4MzoiQ1VCRVJBTktFRE1FTUJFUiIsMzg0OiJIRVgyQklOIiwzODU6IkhFWDJERUMiLDM4NjoiSEVYMk9DVCIsMzg3OiJERUMyQklO'@; put 'IiwzODg6IkRFQzJIRVgiLDM4OToiREVDMk9DVCIsMzkwOiJPQ1QyQklOIiwzOTE6Ik9DVDJIRVgiLDM5MjoiT0NUMkRFQyIsMzkzOiJCSU4yREVDIiwzOTQ6IkJJTjJPQ1QiLDM5NToiQklOMkhFWCIsMzk2OiJJTVNVQiIsMzk3OiJJTURJViIsMzk4OiJJTVBPV0VSIiwzOTk6IklNQUJTIiw0'@; put 'MDA6IklNU1FSVCIsNDAxOiJJTUxOIiw0MDI6IklNTE9HMiIsNDAzOiJJTUxPRzEwIiw0MDQ6IklNU0lOIiw0MDU6IklNQ09TIiw0MDY6IklNRVhQIiw0MDc6IklNQVJHVU1FTlQiLDQwODoiSU1DT05KVUdBVEUiLDQwOToiSU1BR0lOQVJZIiw0MTA6IklNUkVBTCIsNDExOiJDT01QTEVYIiw0'@; put 'MTI6IklNU1VNIiw0MTM6IklNUFJPRFVDVCIsNDE0OiJTRVJJRVNTVU0iLDQxNToiRkFDVERPVUJMRSIsNDE2OiJTUVJUUEkiLDQxNzoiUVVPVElFTlQiLDQxODoiREVMVEEiLDQxOToiR0VTVEVQIiw0MjA6IklTRVZFTiIsNDIxOiJJU09ERCIsNDIyOiJNUk9VTkQiLDQyMzoiRVJGIiw0MjQ6'@; put 'IkVSRkMiLDQyNToiQkVTU0VMSiIsNDI2OiJCRVNTRUxLIiw0Mjc6IkJFU1NFTFkiLDQyODoiQkVTU0VMSSIsNDI5OiJYSVJSIiw0MzA6IlhOUFYiLDQzMToiUFJJQ0VNQVQiLDQzMjoiWUlFTERNQVQiLDQzMzoiSU5UUkFURSIsNDM0OiJSRUNFSVZFRCIsNDM1OiJESVNDIiw0MzY6IlBSSUNF'@; put 'RElTQyIsNDM3OiJZSUVMRERJU0MiLDQzODoiVEJJTExFUSIsNDM5OiJUQklMTFBSSUNFIiw0NDA6IlRCSUxMWUlFTEQiLDQ0MToiUFJJQ0UiLDQ0MjoiWUlFTEQiLDQ0MzoiRE9MTEFSREUiLDQ0NDoiRE9MTEFSRlIiLDQ0NToiTk9NSU5BTCIsNDQ2OiJFRkZFQ1QiLDQ0NzoiQ1VNUFJJTkMi'@; put 'LDQ0ODoiQ1VNSVBNVCIsNDQ5OiJFREFURSIsNDUwOiJFT01PTlRIIiw0NTE6IllFQVJGUkFDIiw0NTI6IkNPVVBEQVlCUyIsNDUzOiJDT1VQREFZUyIsNDU0OiJDT1VQREFZU05DIiw0NTU6IkNPVVBOQ0QiLDQ1NjoiQ09VUE5VTSIsNDU3OiJDT1VQUENEIiw0NTg6IkRVUkFUSU9OIiw0NTk6'@; put 'Ik1EVVJBVElPTiIsNDYwOiJPRERMUFJJQ0UiLDQ2MToiT0RETFlJRUxEIiw0NjI6Ik9EREZQUklDRSIsNDYzOiJPRERGWUlFTEQiLDQ2NDoiUkFOREJFVFdFRU4iLDQ2NToiV0VFS05VTSIsNDY2OiJBTU9SREVHUkMiLDQ2NzoiQU1PUkxJTkMiLDQ2ODoiQ09OVkVSVCIsNzI0OiJTSEVFVEpT'@; put 'Iiw0Njk6IkFDQ1JJTlQiLDQ3MDoiQUNDUklOVE0iLDQ3MToiV09SS0RBWSIsNDcyOiJORVRXT1JLREFZUyIsNDczOiJHQ0QiLDQ3NDoiTVVMVElOT01JQUwiLDQ3NToiTENNIiw0NzY6IkZWU0NIRURVTEUiLDQ3NzoiQ1VCRUtQSU1FTUJFUiIsNDc4OiJDVUJFU0VUIiw0Nzk6IkNVQkVTRVRD'@; put 'T1VOVCIsNDgwOiJJRkVSUk9SIiw0ODE6IkNPVU5USUZTIiw0ODI6IlNVTUlGUyIsNDgzOiJBVkVSQUdFSUYiLDQ4NDoiQVZFUkFHRUlGUyJ9LGF2PXsyOjEsMzoxLDEwOjAsMTU6MSwxNjoxLDE3OjEsMTg6MSwxOTowLDIwOjEsMjE6MSwyMjoxLDIzOjEsMjQ6MSwyNToxLDI2OjEsMjc6Miwz'@; put 'MDoyLDMxOjMsMzI6MSwzMzoxLDM0OjAsMzU6MCwzODoxLDM5OjIsNDA6Myw0MTozLDQyOjMsNDM6Myw0NDozLDQ1OjMsNDc6Myw0ODoyLDUzOjEsNjE6Myw2MzowLDY1OjMsNjY6Myw2NzoxLDY4OjEsNjk6MSw3MDoxLDcxOjEsNzI6MSw3MzoxLDc0OjAsNzU6MSw3NjoxLDc3OjEsNzk6Miw4'@; put 'MDoyLDgzOjEsODU6MCw4NjoxLDg5OjAsOTA6MSw5NDowLDk1OjAsOTc6Miw5ODoxLDk5OjEsMTAxOjMsMTAyOjMsMTA1OjEsMTA2OjEsMTA4OjIsMTExOjEsMTEyOjEsMTEzOjEsMTE0OjEsMTE3OjIsMTE4OjEsMTE5OjQsMTIxOjEsMTI2OjEsMTI3OjEsMTI4OjEsMTI5OjEsMTMwOjEsMTMx'@; put 'OjEsMTMzOjEsMTM0OjEsMTM1OjEsMTM2OjIsMTM3OjIsMTM4OjIsMTQwOjEsMTQxOjEsMTQyOjMsMTQzOjQsMTQ0OjQsMTYxOjEsMTYyOjEsMTYzOjEsMTY0OjEsMTY1OjIsMTcyOjEsMTc1OjIsMTc2OjIsMTc3OjMsMTc4OjIsMTc5OjEsMTg0OjEsMTg2OjEsMTg5OjMsMTkwOjEsMTk1OjMs'@; put 'MTk2OjMsMTk3OjEsMTk4OjEsMTk5OjMsMjAxOjEsMjA3OjQsMjEwOjMsMjExOjEsMjEyOjIsMjEzOjIsMjE0OjEsMjE1OjEsMjI1OjAsMjI5OjEsMjMwOjEsMjMxOjEsMjMyOjEsMjMzOjEsMjM0OjEsMjM1OjMsMjQ0OjEsMjQ3OjQsMjUyOjIsMjU3OjEsMjYxOjEsMjcxOjEsMjczOjQsMjc0'@; put 'OjIsMjc1OjIsMjc2OjIsMjc3OjMsMjc4OjMsMjc5OjEsMjgwOjMsMjgxOjMsMjgyOjMsMjgzOjEsMjg0OjEsMjg1OjIsMjg2OjQsMjg3OjMsMjg4OjIsMjg5OjQsMjkwOjMsMjkxOjMsMjkyOjMsMjkzOjQsMjk0OjEsMjk1OjMsMjk2OjEsMjk3OjMsMjk4OjEsMjk5OjIsMzAwOjMsMzAxOjMs'@; put 'MzAyOjQsMzAzOjIsMzA0OjIsMzA1OjIsMzA2OjIsMzA3OjIsMzA4OjIsMzA5OjMsMzEwOjIsMzExOjIsMzEyOjIsMzEzOjIsMzE0OjIsMzE1OjIsMzE2OjQsMzI1OjIsMzI2OjIsMzI3OjIsMzI4OjIsMzMxOjIsMzMyOjIsMzM3OjIsMzQyOjEsMzQzOjEsMzQ2OjIsMzQ3OjEsMzUwOjQsMzUx'@; put 'OjMsMzUyOjEsMzUzOjIsMzYwOjEsMzY4OjEsMzY5OjEsMzcwOjEsMzcxOjEsMzcyOjEsMzczOjEsMzc0OjEsMzc1OjEsMzc2OjEsMzc3OjEsMzc4OjEsMzgyOjMsMzg1OjEsMzkyOjEsMzkzOjEsMzk2OjIsMzk3OjIsMzk4OjIsMzk5OjEsNDAwOjEsNDAxOjEsNDAyOjEsNDAzOjEsNDA0OjEs'@; put 'NDA1OjEsNDA2OjEsNDA3OjEsNDA4OjEsNDA5OjEsNDEwOjEsNDE0OjQsNDE1OjEsNDE2OjEsNDE3OjIsNDIwOjEsNDIxOjEsNDIyOjIsNDI0OjEsNDI1OjIsNDI2OjIsNDI3OjIsNDI4OjIsNDMwOjMsNDM4OjMsNDM5OjMsNDQwOjMsNDQzOjIsNDQ0OjIsNDQ1OjIsNDQ2OjIsNDQ3OjYsNDQ4'@; put 'OjYsNDQ5OjIsNDUwOjIsNDY0OjIsNDY4OjMsNDc2OjIsNDc5OjEsNDgwOjIsNjU1MzU6MH07ZnVuY3Rpb24gTmYoZSl7cmV0dXJuIm9mOiI9PWUuc2xpY2UoMCwzKSYmKGU9ZS5zbGljZSgzKSksNjE9PWUuY2hhckNvZGVBdCgwKSYmNjE9PShlPWUuc2xpY2UoMSkpLmNoYXJDb2RlQXQoMCkm'@; put 'JihlPWUuc2xpY2UoMSkpLChlPShlPShlPWUucmVwbGFjZSgvQ09NXC5NSUNST1NPRlRcLi9nLCIiKSkucmVwbGFjZSgvXFsoKD86XC5bQS1aXStbMC05XSspKD86OlwuW0EtWl0rWzAtOV0rKT8pXF0vZyxmdW5jdGlvbih0LHIpe3JldHVybiByLnJlcGxhY2UoL1wuL2csIiIpfSkpLnJlcGxh'@; put 'Y2UoL1xbLigjW0EtWl0qWz8hXSlcXS9nLCIkMSIpKS5yZXBsYWNlKC9bO35dL2csIiwiKS5yZXBsYWNlKC9cfC9nLCI7Iil9ZnVuY3Rpb24gYm4oZSl7dmFyIHQ9ZS5zcGxpdCgiOiIpO3JldHVyblt0WzBdLnNwbGl0KCIuIilbMF0sdFswXS5zcGxpdCgiLiIpWzFdKyh0Lmxlbmd0aD4xPyI6'@; put 'IisodFsxXS5zcGxpdCgiLiIpWzFdfHx0WzFdLnNwbGl0KCIuIilbMF0pOiIiKV19dmFyIFZhPXt9LGhhPXt9O2Z1bmN0aW9uIFl0KGUsdCl7aWYoZSl7dmFyIHI9Wy43LC43LC43NSwuNzUsLjMsLjNdOyJ4bG1sIj09dCYmKHI9WzEsMSwxLDEsLjUsLjVdKSxudWxsPT1lLmxlZnQmJihlLmxl'@; put 'ZnQ9clswXSksbnVsbD09ZS5yaWdodCYmKGUucmlnaHQ9clsxXSksbnVsbD09ZS50b3AmJihlLnRvcD1yWzJdKSxudWxsPT1lLmJvdHRvbSYmKGUuYm90dG9tPXJbM10pLG51bGw9PWUuaGVhZGVyJiYoZS5oZWFkZXI9cls0XSksbnVsbD09ZS5mb290ZXImJihlLmZvb3Rlcj1yWzVdKX19ZnVu'@; put 'Y3Rpb24gYmYoZSx0LHIsYSxuLGkpe3RyeXthLmNlbGxORiYmKGUuej1wZVt0XSl9Y2F0Y2goZil7aWYoYS5XVEYpdGhyb3cgZn1pZigieiIhPT1lLnR8fGEuY2VsbFN0eWxlcyl7aWYoImQiPT09ZS50JiYic3RyaW5nIj09dHlwZW9mIGUudiYmKGUudj1YZShlLnYpKSwoIWF8fCExIT09YS5j'@; put 'ZWxsVGV4dCkmJiJ6IiE9PWUudCl0cnl7aWYobnVsbD09cGVbdF0mJmV0KGFvW3RdfHwiR2VuZXJhbCIsdCksImUiPT09ZS50KWUudz1lLnd8fHh0W2Uudl07ZWxzZSBpZigwPT09dClpZigibiI9PT1lLnQpZS53PSgwfGUudik9PT1lLnY/ZS52LnRvU3RyaW5nKDEwKTprYShlLnYpO2Vsc2Ug'@; put 'aWYoImQiPT09ZS50KXt2YXIgcz1pcihlLnYpO2Uudz0oMHxzKT09PXM/cy50b1N0cmluZygxMCk6a2Eocyl9ZWxzZXtpZih2b2lkIDA9PT1lLnYpcmV0dXJuIiI7ZS53PU50KGUudixoYSl9ZWxzZSBlLnc9UnIodCwiZCI9PT1lLnQ/aXIoZS52KTplLnYsaGEpfWNhdGNoKGYpe2lmKGEuV1RG'@; put 'KXRocm93IGZ9aWYoYS5jZWxsU3R5bGVzJiZudWxsIT1yKXRyeXtlLnM9aS5GaWxsc1tyXSxlLnMuZmdDb2xvciYmZS5zLmZnQ29sb3IudGhlbWUmJiFlLnMuZmdDb2xvci5yZ2ImJihlLnMuZmdDb2xvci5yZ2I9VDAobi50aGVtZUVsZW1lbnRzLmNsclNjaGVtZVtlLnMuZmdDb2xvci50aGVt'@; put 'ZV0ucmdiLGUucy5mZ0NvbG9yLnRpbnR8fDApLGEuV1RGJiYoZS5zLmZnQ29sb3IucmF3X3JnYj1uLnRoZW1lRWxlbWVudHMuY2xyU2NoZW1lW2Uucy5mZ0NvbG9yLnRoZW1lXS5yZ2IpKSxlLnMuYmdDb2xvciYmZS5zLmJnQ29sb3IudGhlbWUmJihlLnMuYmdDb2xvci5yZ2I9VDAobi50aGVt'@; put 'ZUVsZW1lbnRzLmNsclNjaGVtZVtlLnMuYmdDb2xvci50aGVtZV0ucmdiLGUucy5iZ0NvbG9yLnRpbnR8fDApLGEuV1RGJiYoZS5zLmJnQ29sb3IucmF3X3JnYj1uLnRoZW1lRWxlbWVudHMuY2xyU2NoZW1lW2Uucy5iZ0NvbG9yLnRoZW1lXS5yZ2IpKX1jYXRjaChmKXtpZihhLldURiYmaS5G'@; put 'aWxscyl0aHJvdyBmfX19dmFyIHN2PS88KD86XHc6KT9tZXJnZUNlbGwgcmVmPSJbQS1aMC05Ol0rIlxzKltcL10/Pi9nLGZ2PS88KD86XHcrOik/c2hlZXREYXRhW14+XSo+KFtcc1xTXSopPFwvKD86XHcrOik/c2hlZXREYXRhPi8sY3Y9LzwoPzpcdzopP2h5cGVybGluayBbXj5dKj4vZ20s'@; put 'b3Y9LyIoXHcqOlx3KikiLyxsdj0vPCg/Olx3Oik/Y29sXGJbXj5dKltcL10/Pi9nLHV2PS88KD86XHc6KT9hdXRvRmlsdGVyW14+XSooW1wvXXw+KFtcc1xTXSopPFwvKD86XHc6KT9hdXRvRmlsdGVyKT4vZyxodj0vPCg/Olx3Oik/cGFnZU1hcmdpbnNbXj5dKlwvPi9nLFBmPS88KD86XHc6'@; put 'KT9zaGVldFByXGIoPzpbXj5hLXpdW14+XSopP1wvPi8seHY9LzwoPzpcdzopP3NoZWV0UHJbXj5dKig/OltcL118PihbXHNcU10qKTxcLyg/Olx3Oik/c2hlZXRQcik+Lyxkdj0vPCg/Olx3Oik/c2hlZXRWaWV3c1tePl0qKD86W1wvXXw+KFtcc1xTXSopPFwvKD86XHc6KT9zaGVldFZpZXdz'@; put 'KT4vO2Z1bmN0aW9uIExuKGUsdCxyLGEpe3ZhciBuPW1lKGUpO3IuU2hlZXRzW2FdfHwoci5TaGVldHNbYV09e30pLG4uY29kZU5hbWUmJihyLlNoZWV0c1thXS5Db2RlTmFtZT1JZShCZShuLmNvZGVOYW1lKSkpfXZhciBEdj0vPCg/Olx3Oik/c2hlZXRWaWV3KD86W14+YS16XVtePl0qKT9c'@; put 'Lz8+LyxOdj1mdW5jdGlvbigpe3ZhciBlPS88KD86XHcrOik/Y1sgXC8+XS8sdD0vPFwvKD86XHcrOik/cm93Pi8scj0vcj1bIiddKFteIiddKilbIiddLyxhPS88KD86XHcrOik/aXM+KFtcU1xzXSo/KTxcLyg/Olx3KzopP2lzPi8sbj0vcmVmPVsiJ10oW14iJ10qKVsiJ10vLGk9RmEoInYi'@; put 'KSxzPUZhKCJmIik7cmV0dXJuIGZ1bmN0aW9uKGMsbyxsLGgseCxkKXtmb3IodmFyIEkseSxWLFgscmUsdj0wLHU9IiIscD1bXSxrPVtdLFQ9MCxnPTAsTj0wLE09IiIsUD0wLFI9MCxiPTAsZWU9MCxsZT1BcnJheS5pc0FycmF5KGQuQ2VsbFhmKSxkZT1bXSx1ZT1bXSxGZT1BcnJheS5pc0Fy'@; put 'cmF5KG8pLGNlPVtdLHhlPXt9LEs9ITEsQz0hIWwuc2hlZXRTdHVicyxVPWMuc3BsaXQodCksTz0wLEQ9VS5sZW5ndGg7TyE9RDsrK08pe3ZhciBqPSh1PVVbT10udHJpbSgpKS5sZW5ndGg7aWYoMCE9PWope3ZhciBzZT0wO2U6Zm9yKHY9MDt2PGo7Kyt2KXN3aXRjaCh1W3ZdKXtjYXNlIj4i'@; put 'OmlmKCIvIiE9dVt2LTFdKXsrK3Y7YnJlYWsgZX1pZihsJiZsLmNlbGxTdHlsZXMpe2lmKFA9bnVsbCE9KHk9bWUodS5zbGljZShzZSx2KSwhMCkpLnI/cGFyc2VJbnQoeS5yLDEwKTpQKzEsUj0tMSxsLnNoZWV0Um93cyYmbC5zaGVldFJvd3M8UCljb250aW51ZTt4ZT17fSxLPSExLHkuaHQm'@; put 'JihLPSEwLHhlLmhwdD1wYXJzZUZsb2F0KHkuaHQpLHhlLmhweD1vYSh4ZS5ocHQpKSwiMSI9PXkuaGlkZGVuJiYoSz0hMCx4ZS5oaWRkZW49ITApLG51bGwhPXkub3V0bGluZUxldmVsJiYoSz0hMCx4ZS5sZXZlbD0reS5vdXRsaW5lTGV2ZWwpLEsmJihjZVtQLTFdPXhlKX1icmVhaztjYXNl'@; put 'IjwiOnNlPXZ9aWYoc2U+PXYpYnJlYWs7aWYoUD1udWxsIT0oeT1tZSh1LnNsaWNlKHNlLHYpLCEwKSkucj9wYXJzZUludCh5LnIsMTApOlArMSxSPS0xLCEobC5zaGVldFJvd3MmJmwuc2hlZXRSb3dzPFApKXtoLnMucj5QLTEmJihoLnMucj1QLTEpLGguZS5yPFAtMSYmKGguZS5yPVAtMSks'@; put 'bCYmbC5jZWxsU3R5bGVzJiYoeGU9e30sSz0hMSx5Lmh0JiYoSz0hMCx4ZS5ocHQ9cGFyc2VGbG9hdCh5Lmh0KSx4ZS5ocHg9b2EoeGUuaHB0KSksIjEiPT15LmhpZGRlbiYmKEs9ITAseGUuaGlkZGVuPSEwKSxudWxsIT15Lm91dGxpbmVMZXZlbCYmKEs9ITAseGUubGV2ZWw9K3kub3V0bGlu'@; put 'ZUxldmVsKSxLJiYoY2VbUC0xXT14ZSkpLHA9dS5zbGljZSh2KS5zcGxpdChlKTtmb3IodmFyIFo9MDtaIT1wLmxlbmd0aCYmIjwiPT1wW1pdLnRyaW0oKS5jaGFyQXQoMCk7KytaKTtmb3IocD1wLnNsaWNlKFopLHY9MDt2IT1wLmxlbmd0aDsrK3YpaWYoMCE9PSh1PXBbdl0udHJpbSgpKS5s'@; put 'ZW5ndGgpe2lmKGs9dS5tYXRjaChyKSxUPXYsZz0wLE49MCx1PSI8YyAiKygiPCI9PXUuc2xpY2UoMCwxKT8iPiI6IiIpK3UsbnVsbCE9ayYmMj09PWsubGVuZ3RoKXtmb3IoVD0wLE09a1sxXSxnPTA7ZyE9TS5sZW5ndGgmJiEoKE49TS5jaGFyQ29kZUF0KGcpLTY0KTwxfHxOPjI2KTsrK2cp'@; put 'VD0yNipUK047Uj0tLVR9ZWxzZSsrUjtmb3IoZz0wO2chPXUubGVuZ3RoJiY2MiE9PXUuY2hhckNvZGVBdChnKTsrK2cpO2lmKCsrZywoeT1tZSh1LnNsaWNlKDAsZyksITApKS5yfHwoeS5yPWdlKHtyOlAtMSxjOlJ9KSksST17dDoiIn0sbnVsbCE9KGs9KE09dS5zbGljZShnKSkubWF0Y2go'@; put 'aSkpJiYiIiE9PWtbMV0mJihJLnY9SWUoa1sxXSkpLGwuY2VsbEZvcm11bGEpe2lmKG51bGwhPShrPU0ubWF0Y2gocykpJiYiIiE9PWtbMV0pe2lmKEkuZj1JZShCZShrWzFdKSkucmVwbGFjZSgvXHJcbi9nLCJcbiIpLGwueGxmbnx8KEkuZj1FZihJLmYpKSxrWzBdLmluZGV4T2YoJ3Q9ImFy'@; put 'cmF5IicpPi0xKUkuRj0oTS5tYXRjaChuKXx8W10pWzFdLEkuRi5pbmRleE9mKCI6Iik+LTEmJmRlLnB1c2goW0RlKEkuRiksSS5GXSk7ZWxzZSBpZihrWzBdLmluZGV4T2YoJ3Q9InNoYXJlZCInKT4tMSl7WD1tZShrWzBdKTt2YXIgUT1JZShCZShrWzFdKSk7bC54bGZufHwoUT1FZihRKSks'@; put 'dWVbcGFyc2VJbnQoWC5zaSwxMCldPVtYLFEseS5yXX19ZWxzZShrPU0ubWF0Y2goLzxmW14+XSpcLz4vKSkmJnVlWyhYPW1lKGtbMF0pKS5zaV0mJihJLmY9SXgodWVbWC5zaV1bMV0sdWVbWC5zaV1bMl0seS5yKSk7dmFyIFk9R2UoeS5yKTtmb3IoZz0wO2c8ZGUubGVuZ3RoOysrZylZLnI+'@; put 'PWRlW2ddWzBdLnMuciYmWS5yPD1kZVtnXVswXS5lLnImJlkuYz49ZGVbZ11bMF0ucy5jJiZZLmM8PWRlW2ddWzBdLmUuYyYmKEkuRj1kZVtnXVsxXSl9aWYobnVsbD09eS50JiZ2b2lkIDA9PT1JLnYpaWYoSS5mfHxJLkYpSS52PTAsSS50PSJuIjtlbHNle2lmKCFDKWNvbnRpbnVlO0kudD0i'@; put 'eiJ9ZWxzZSBJLnQ9eS50fHwibiI7c3dpdGNoKGgucy5jPlImJihoLnMuYz1SKSxoLmUuYzxSJiYoaC5lLmM9UiksSS50KXtjYXNlIm4iOmlmKCIiPT1JLnZ8fG51bGw9PUkudil7aWYoIUMpY29udGludWU7SS50PSJ6In1lbHNlIEkudj1wYXJzZUZsb2F0KEkudik7YnJlYWs7Y2FzZSJzIjpp'@; put 'Zih0eXBlb2YgSS52PiJ1Iil7aWYoIUMpY29udGludWU7SS50PSJ6In1lbHNlIFY9VmFbcGFyc2VJbnQoSS52LDEwKV0sSS52PVYudCxJLnI9Vi5yLGwuY2VsbEhUTUwmJihJLmg9Vi5oKTticmVhaztjYXNlInN0ciI6SS50PSJzIixJLnY9bnVsbCE9SS52P0JlKEkudik6IiIsbC5jZWxsSFRN'@; put 'TCYmKEkuaD0kMChJLnYpKTticmVhaztjYXNlImlubGluZVN0ciI6az1NLm1hdGNoKGEpLEkudD0icyIsbnVsbCE9ayYmKFY9U24oa1sxXSkpPyhJLnY9Vi50LGwuY2VsbEhUTUwmJihJLmg9Vi5oKSk6SS52PSIiO2JyZWFrO2Nhc2UiYiI6SS52PVdlKEkudik7YnJlYWs7Y2FzZSJkIjpsLmNl'@; put 'bGxEYXRlcz9JLnY9WGUoSS52LDEpOihJLnY9aXIoWGUoSS52LDEpKSxJLnQ9Im4iKTticmVhaztjYXNlImUiOighbHx8ITEhPT1sLmNlbGxUZXh0KSYmKEkudz1JLnYpLEkudj1kc1tJLnZdfWlmKGI9ZWU9MCxyZT1udWxsLGxlJiZ2b2lkIDAhPT15LnMmJm51bGwhPShyZT1kLkNlbGxYZlt5'@; put 'LnNdKSYmKG51bGwhPXJlLm51bUZtdElkJiYoYj1yZS5udW1GbXRJZCksbC5jZWxsU3R5bGVzJiZudWxsIT1yZS5maWxsSWQmJihlZT1yZS5maWxsSWQpKSxiZihJLGIsZWUsbCx4LGQpLGwuY2VsbERhdGVzJiZsZSYmIm4iPT1JLnQmJmJ0KHBlW2JdKSYmKEkudD0iZCIsSS52PW8wKEkudikp'@; put 'LHkuY20mJmwueGxtZXRhKXt2YXIgRWU9KGwueGxtZXRhLkNlbGx8fFtdKVsreS5jbS0xXTtFZSYmIlhMREFQUiI9PUVlLnR5cGUmJihJLkQ9ITApfWlmKEZlKXt2YXIgQT1HZSh5LnIpO29bQS5yXXx8KG9bQS5yXT1bXSksb1tBLnJdW0EuY109SX1lbHNlIG9beS5yXT1JfX19fWNlLmxlbmd0'@; put 'aD4wJiYob1siIXJvd3MiXT1jZSl9fSgpLE12PVd0O2Z1bmN0aW9uIEJmKGUpe3JldHVybltNdChlKSxncihlKSwibiJdfXZhciBrMj1XdCxNZj1bImxlZnQiLCJyaWdodCIsInRvcCIsImJvdHRvbSIsImhlYWRlciIsImZvb3RlciJdO3ZhciBCbj1bWyJhbGxvd1JlZnJlc2hRdWVyeSIsITEs'@; put 'ImJvb2wiXSxbImF1dG9Db21wcmVzc1BpY3R1cmVzIiwhMCwiYm9vbCJdLFsiYmFja3VwRmlsZSIsITEsImJvb2wiXSxbImNoZWNrQ29tcGF0aWJpbGl0eSIsITEsImJvb2wiXSxbIkNvZGVOYW1lIiwiIl0sWyJkYXRlMTkwNCIsITEsImJvb2wiXSxbImRlZmF1bHRUaGVtZVZlcnNpb24iLDAs'@; put 'ImludCJdLFsiZmlsdGVyUHJpdmFjeSIsITEsImJvb2wiXSxbImhpZGVQaXZvdEZpZWxkTGlzdCIsITEsImJvb2wiXSxbInByb21wdGVkU29sdXRpb25zIiwhMSwiYm9vbCJdLFsicHVibGlzaEl0ZW1zIiwhMSwiYm9vbCJdLFsicmVmcmVzaEFsbENvbm5lY3Rpb25zIiwhMSwiYm9vbCJdLFsi'@; put 'c2F2ZUV4dGVybmFsTGlua1ZhbHVlcyIsITAsImJvb2wiXSxbInNob3dCb3JkZXJVbnNlbGVjdGVkVGFibGVzIiwhMCwiYm9vbCJdLFsic2hvd0lua0Fubm90YXRpb24iLCEwLCJib29sIl0sWyJzaG93T2JqZWN0cyIsImFsbCJdLFsic2hvd1Bpdm90Q2hhcnRGaWx0ZXIiLCExLCJib29sIl0s'@; put 'WyJ1cGRhdGVMaW5rcyIsInVzZXJTZXQiXV0sYXA9W1siYWN0aXZlVGFiIiwwLCJpbnQiXSxbImF1dG9GaWx0ZXJEYXRlR3JvdXBpbmciLCEwLCJib29sIl0sWyJmaXJzdFNoZWV0IiwwLCJpbnQiXSxbIm1pbmltaXplZCIsITEsImJvb2wiXSxbInNob3dIb3Jpem9udGFsU2Nyb2xsIiwhMCwi'@; put 'Ym9vbCJdLFsic2hvd1NoZWV0VGFicyIsITAsImJvb2wiXSxbInNob3dWZXJ0aWNhbFNjcm9sbCIsITAsImJvb2wiXSxbInRhYlJhdGlvIiw2MDAsImludCJdLFsidmlzaWJpbGl0eSIsInZpc2libGUiXV0sbnA9W10saXA9W1siY2FsY0NvbXBsZXRlZCIsInRydWUiXSxbImNhbGNNb2RlIiwi'@; put 'YXV0byJdLFsiY2FsY09uU2F2ZSIsInRydWUiXSxbImNvbmN1cnJlbnRDYWxjIiwidHJ1ZSJdLFsiZnVsbENhbGNPbkxvYWQiLCJmYWxzZSJdLFsiZnVsbFByZWNpc2lvbiIsInRydWUiXSxbIml0ZXJhdGUiLCJmYWxzZSJdLFsiaXRlcmF0ZUNvdW50IiwiMTAwIl0sWyJpdGVyYXRlRGVsdGEi'@; put 'LCIwLjAwMSJdLFsicmVmTW9kZSIsIkExIl1dO2Z1bmN0aW9uIFVmKGUsdCl7Zm9yKHZhciByPTA7ciE9ZS5sZW5ndGg7KytyKWZvcih2YXIgYT1lW3JdLG49MDtuIT10Lmxlbmd0aDsrK24pe3ZhciBpPXRbbl07aWYobnVsbD09YVtpWzBdXSlhW2lbMF1dPWlbMV07ZWxzZSBzd2l0Y2goaVsy'@; put 'XSl7Y2FzZSJib29sIjoic3RyaW5nIj09dHlwZW9mIGFbaVswXV0mJihhW2lbMF1dPVdlKGFbaVswXV0pKTticmVhaztjYXNlImludCI6InN0cmluZyI9PXR5cGVvZiBhW2lbMF1dJiYoYVtpWzBdXT1wYXJzZUludChhW2lbMF1dLDEwKSl9fX1mdW5jdGlvbiBXZihlLHQpe2Zvcih2YXIgcj0w'@; put 'O3IhPXQubGVuZ3RoOysrcil7dmFyIGE9dFtyXTtpZihudWxsPT1lW2FbMF1dKWVbYVswXV09YVsxXTtlbHNlIHN3aXRjaChhWzJdKXtjYXNlImJvb2wiOiJzdHJpbmciPT10eXBlb2YgZVthWzBdXSYmKGVbYVswXV09V2UoZVthWzBdXSkpO2JyZWFrO2Nhc2UiaW50Ijoic3RyaW5nIj09dHlw'@; put 'ZW9mIGVbYVswXV0mJihlW2FbMF1dPXBhcnNlSW50KGVbYVswXV0sMTApKX19fWZ1bmN0aW9uIEhmKGUpe1dmKGUuV0JQcm9wcyxCbiksV2YoZS5DYWxjUHIsaXApLFVmKGUuV0JWaWV3LGFwKSxVZihlLlNoZWV0cyxucCksaGEuZGF0ZTE5MDQ9V2UoZS5XQlByb3BzLmRhdGUxOTA0KX12YXIg'@; put 'ZnA9Il1bKj8vXFwiLnNwbGl0KCIiKTt2YXIgb3A9Lzxcdys6d29ya2Jvb2svO2Z1bmN0aW9uIHZwKGUsdCl7dmFyIHI9e307cmV0dXJuIGUucmVhZF9zaGlmdCg0KSxyLkFyY2hJRD1lLnJlYWRfc2hpZnQoNCksZS5sKz10LTgscn1mdW5jdGlvbiBTcChlLHQscixhLG4saSxzLGYpe3JldHVy'@; put 'biIuYmluIj09PXQuc2xpY2UoLTQpP2Z1bmN0aW9uIE0yKGUsdCxyLGEsbixpLHMpe2lmKCFlKXJldHVybiBlO3ZhciBmPXR8fHt9O2F8fChhPXsiIWlkIjp7fX0pLG51bGwhPXplJiZudWxsPT1mLmRlbnNlJiYoZi5kZW5zZT16ZSk7dmFyIG8sdix1LHAsayxULGcsTixNLEksYz1mLmRlbnNl'@; put 'P1tdOnt9LGw9e3M6e3I6MmU2LGM6MmU2fSxlOntyOjAsYzowfX0saD1bXSx4PSExLGQ9ITEseT1bXTtmLmJpZmY9MTIsZlsiIXJvdyJdPTA7dmFyIFA9MCxSPSExLFY9W10sWD17fSxiPWYuc3VwYm9va3N8fG4uc3VwYm9va3N8fFtbXV07aWYoYi5zaGFyZWRmPVgsYi5hcnJheWY9VixiLlNo'@; put 'ZWV0TmFtZXM9bi5TaGVldE5hbWVzfHxuLlNoZWV0cy5tYXAoZnVuY3Rpb24oeGUpe3JldHVybiB4ZS5uYW1lfSksIWYuc3VwYm9va3MmJihmLnN1cGJvb2tzPWIsbi5OYW1lcykpZm9yKHZhciBlZT0wO2VlPG4uTmFtZXMubGVuZ3RoOysrZWUpYlswXVtlZSsxXT1uLk5hbWVzW2VlXTt2YXIg'@; put 'dWUsRmUsbGU9W10scmU9W10sZGU9ITE7aWYoJGFbMTZdPXtuOiJCcnRTaG9ydFJlYWwiLGY6QmZ9LGh0KGUsZnVuY3Rpb24oSyxDLFUpe2lmKCFkKXN3aXRjaChVKXtjYXNlIDE0ODpvPUs7YnJlYWs7Y2FzZSAwOnY9SyxmLnNoZWV0Um93cyYmZi5zaGVldFJvd3M8PXYuciYmKGQ9ITApLE09'@; put 'S2Uoaz12LnIpLGZbIiFyb3ciXT12LnIsKEsuaGlkZGVufHxLLmhwdHx8bnVsbCE9Sy5sZXZlbCkmJihLLmhwdCYmKEsuaHB4PW9hKEsuaHB0KSkscmVbSy5yXT1LKTticmVhaztjYXNlIDI6Y2FzZSAzOmNhc2UgNDpjYXNlIDU6Y2FzZSA2OmNhc2UgNzpjYXNlIDg6Y2FzZSA5OmNhc2UgMTA6'@; put 'Y2FzZSAxMTpjYXNlIDEzOmNhc2UgMTQ6Y2FzZSAxNTpjYXNlIDE2OmNhc2UgMTc6Y2FzZSAxODpjYXNlIDYyOnN3aXRjaCh1PXt0OktbMl19LEtbMl0pe2Nhc2UibiI6dS52PUtbMV07YnJlYWs7Y2FzZSJzIjp1LnY9KE49VmFbS1sxXV0pLnQsdS5yPU4ucjticmVhaztjYXNlImIiOnUudj0h'@; put 'IUtbMV07YnJlYWs7Y2FzZSJlIjp1LnY9S1sxXSwhMSE9PWYuY2VsbFRleHQmJih1Lnc9eHRbdS52XSk7YnJlYWs7Y2FzZSJzdHIiOnUudD0icyIsdS52PUtbMV07YnJlYWs7Y2FzZSJpcyI6dS50PSJzIix1LnY9S1sxXS50fWlmKChwPXMuQ2VsbFhmW0tbMF0uaVN0eWxlUmVmXSkmJmJmKHUs'@; put 'cC5udW1GbXRJZCxudWxsLGYsaSxzKSxUPS0xPT1LWzBdLmM/VCsxOktbMF0uYyxmLmRlbnNlPyhjW2tdfHwoY1trXT1bXSksY1trXVtUXT11KTpjW0hlKFQpK01dPXUsZi5jZWxsRm9ybXVsYSl7Zm9yKFI9ITEsUD0wO1A8Vi5sZW5ndGg7KytQKXt2YXIgTz1WW1BdO3Yucj49T1swXS5zLnIm'@; put 'JnYucjw9T1swXS5lLnImJlQ+PU9bMF0ucy5jJiZUPD1PWzBdLmUuYyYmKHUuRj13ZShPWzBdKSxSPSEwKX0hUiYmSy5sZW5ndGg+MyYmKHUuZj1LWzNdKX1pZihsLnMucj52LnImJihsLnMucj12LnIpLGwucy5jPlQmJihsLnMuYz1UKSxsLmUucjx2LnImJihsLmUucj12LnIpLGwuZS5jPFQm'@; put 'JihsLmUuYz1UKSxmLmNlbGxEYXRlcyYmcCYmIm4iPT11LnQmJmJ0KHBlW3AubnVtRm10SWRdKSl7dmFyIEQ9a3QodS52KTtEJiYodS50PSJkIix1LnY9bmV3IERhdGUoRC55LEQubS0xLEQuZCxELkgsRC5NLEQuUyxELnUpKX11ZSYmKCJYTERBUFIiPT11ZS50eXBlJiYodS5EPSEwKSx1ZT12'@; put 'b2lkIDApLEZlJiYoRmU9dm9pZCAwKTticmVhaztjYXNlIDE6Y2FzZSAxMjppZighZi5zaGVldFN0dWJzfHx4KWJyZWFrO3U9e3Q6InoiLHY6dm9pZCAwfSxUPS0xPT1LWzBdLmM/VCsxOktbMF0uYyxmLmRlbnNlPyhjW2tdfHwoY1trXT1bXSksY1trXVtUXT11KTpjW0hlKFQpK01dPXUsbC5z'@; put 'LnI+di5yJiYobC5zLnI9di5yKSxsLnMuYz5UJiYobC5zLmM9VCksbC5lLnI8di5yJiYobC5lLnI9di5yKSxsLmUuYzxUJiYobC5lLmM9VCksdWUmJigiWExEQVBSIj09dWUudHlwZSYmKHUuRD0hMCksdWU9dm9pZCAwKSxGZSYmKEZlPXZvaWQgMCk7YnJlYWs7Y2FzZSAxNzY6eS5wdXNoKEsp'@; put 'O2JyZWFrO2Nhc2UgNDk6dWU9KChmLnhsbWV0YXx8e30pLkNlbGx8fFtdKVtLLTFdO2JyZWFrO2Nhc2UgNDk0OnZhciBqPWFbIiFpZCJdW0sucmVsSWRdO2ZvcihqPyhLLlRhcmdldD1qLlRhcmdldCxLLmxvYyYmKEsuVGFyZ2V0Kz0iIyIrSy5sb2MpLEsuUmVsPWopOiIiPT1LLnJlbElkJiYo'@; put 'Sy5UYXJnZXQ9IiMiK0subG9jKSxrPUsucmZ4LnMucjtrPD1LLnJmeC5lLnI7KytrKWZvcihUPUsucmZ4LnMuYztUPD1LLnJmeC5lLmM7KytUKWYuZGVuc2U/KGNba118fChjW2tdPVtdKSxjW2tdW1RdfHwoY1trXVtUXT17dDoieiIsdjp2b2lkIDB9KSxjW2tdW1RdLmw9Syk6KGc9Z2Uoe2M6'@; put 'VCxyOmt9KSxjW2ddfHwoY1tnXT17dDoieiIsdjp2b2lkIDB9KSxjW2ddLmw9Syk7YnJlYWs7Y2FzZSA0MjY6aWYoIWYuY2VsbEZvcm11bGEpYnJlYWs7Vi5wdXNoKEspLChJPWYuZGVuc2U/Y1trXVtUXTpjW0hlKFQpK01dKS5mPWtyKEtbMV0sMCx7cjp2LnIsYzpUfSxiLGYpLEkuRj13ZShL'@; put 'WzBdKTticmVhaztjYXNlIDQyNzppZighZi5jZWxsRm9ybXVsYSlicmVhaztYW2dlKEtbMF0ucyldPUtbMV0sKEk9Zi5kZW5zZT9jW2tdW1RdOmNbSGUoVCkrTV0pLmY9a3IoS1sxXSwwLHtyOnYucixjOlR9LGIsZik7YnJlYWs7Y2FzZSA2MDppZighZi5jZWxsU3R5bGVzKWJyZWFrO2Zvcig7'@; put 'Sy5lPj1LLnM7KWxlW0suZS0tXT17d2lkdGg6Sy53LzI1NixoaWRkZW46ISEoMSZLLmZsYWdzKSxsZXZlbDpLLmxldmVsfSxkZXx8KGRlPSEwLEFuKEsudy8yNTYpKSxLdChsZVtLLmUrMV0pO2JyZWFrO2Nhc2UgMTYxOmNbIiFhdXRvZmlsdGVyIl09e3JlZjp3ZShLKX07YnJlYWs7Y2FzZSA0'@; put 'NzY6Y1siIW1hcmdpbnMiXT1LO2JyZWFrO2Nhc2UgMTQ3Om4uU2hlZXRzW3JdfHwobi5TaGVldHNbcl09e30pLEsubmFtZSYmKG4uU2hlZXRzW3JdLkNvZGVOYW1lPUsubmFtZSksKEsuYWJvdmV8fEsubGVmdCkmJihjWyIhb3V0bGluZSJdPXthYm92ZTpLLmFib3ZlLGxlZnQ6Sy5sZWZ0fSk7'@; put 'YnJlYWs7Y2FzZSAxMzc6bi5WaWV3c3x8KG4uVmlld3M9W3t9XSksbi5WaWV3c1swXXx8KG4uVmlld3NbMF09e30pLEsuUlRMJiYobi5WaWV3c1swXS5SVEw9ITApO2JyZWFrO2Nhc2UgNDg1OmNhc2UgNjQ6Y2FzZSAxMDUzOmNhc2UgMTUxOmNhc2UgMTUyOmNhc2UgMTc1OmNhc2UgNjQ0OmNh'@; put 'c2UgNjI1OmNhc2UgNTYyOmNhc2UgMzk2OmNhc2UgMTExMjpjYXNlIDExNDY6Y2FzZSA0NzE6Y2FzZSAxMDUwOmNhc2UgNjQ5OmNhc2UgMTEwNTpjYXNlIDU4OTpjYXNlIDYwNzpjYXNlIDU2NDpjYXNlIDEwNTU6Y2FzZSAxNjg6Y2FzZSAxNzQ6Y2FzZSAxMTgwOmNhc2UgNDk5OmNhc2UgNTA3'@; put 'OmNhc2UgNTUwOmNhc2UgMTcxOmNhc2UgMTY3OmNhc2UgMTE3NzpjYXNlIDE2OTpjYXNlIDExODE6Y2FzZSA1NTE6Y2FzZSA1NTI6Y2FzZSA2NjE6Y2FzZSA2Mzk6Y2FzZSA0Nzg6Y2FzZSA1Mzc6Y2FzZSA0Nzc6Y2FzZSA1MzY6Y2FzZSAxMTAzOmNhc2UgNjgwOmNhc2UgMTEwNDpjYXNlIDEw'@; put 'MjQ6Y2FzZSA2NjM6Y2FzZSA1MzU6Y2FzZSA2Nzg6Y2FzZSA1MDQ6Y2FzZSAxMDQzOmNhc2UgNDI4OmNhc2UgMTcwOmNhc2UgMzA3MjpjYXNlIDUwOmNhc2UgMjA3MDpjYXNlIDEwNDU6YnJlYWs7Y2FzZSAzNTp4PSEwO2JyZWFrO2Nhc2UgMzY6eD0hMTticmVhaztjYXNlIDM3OmgucHVzaChV'@; put 'KSx4PSEwO2JyZWFrO2Nhc2UgMzg6aC5wb3AoKSx4PSExO2JyZWFrO2RlZmF1bHQ6aWYoIUMuVCYmKCF4fHxmLldURikpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIHJlY29yZCAweCIrVS50b1N0cmluZygxNikpfX0sZiksZGVsZXRlIGYuc3VwYm9va3MsZGVsZXRlIGZbIiFyb3ciXSwh'@; put 'Y1siIXJlZiJdJiYobC5zLnI8MmU2fHxvJiYoby5lLnI+MHx8by5lLmM+MHx8by5zLnI+MHx8by5zLmM+MCkpJiYoY1siIXJlZiJdPXdlKG98fGwpKSxmLnNoZWV0Um93cyYmY1siIXJlZiJdKXt2YXIgY2U9RGUoY1siIXJlZiJdKTtmLnNoZWV0Um93czw9K2NlLmUuciYmKGNlLmUucj1mLnNo'@; put 'ZWV0Um93cy0xLGNlLmUucj5sLmUuciYmKGNlLmUucj1sLmUuciksY2UuZS5yPGNlLnMuciYmKGNlLnMucj1jZS5lLnIpLGNlLmUuYz5sLmUuYyYmKGNlLmUuYz1sLmUuYyksY2UuZS5jPGNlLnMuYyYmKGNlLnMuYz1jZS5lLmMpLGNbIiFmdWxscmVmIl09Y1siIXJlZiJdLGNbIiFyZWYiXT13'@; put 'ZShjZSkpfXJldHVybiB5Lmxlbmd0aD4wJiYoY1siIW1lcmdlcyJdPXkpLGxlLmxlbmd0aD4wJiYoY1siIWNvbHMiXT1sZSkscmUubGVuZ3RoPjAmJihjWyIhcm93cyJdPXJlKSxjfShlLGEscixuLGkscyxmKTpmdW5jdGlvbiB2dihlLHQscixhLG4saSxzKXtpZighZSlyZXR1cm4gZTthfHwo'@; put 'YT17IiFpZCI6e319KSxudWxsIT16ZSYmbnVsbD09dC5kZW5zZSYmKHQuZGVuc2U9emUpO3ZhciBmPXQuZGVuc2U/W106e30sYz17czp7cjoyZTYsYzoyZTZ9LGU6e3I6MCxjOjB9fSxvPSIiLGw9IiIsaD1lLm1hdGNoKGZ2KTtoPyhvPWUuc2xpY2UoMCxoLmluZGV4KSxsPWUuc2xpY2UoaC5p'@; put 'bmRleCtoWzBdLmxlbmd0aCkpOm89bD1lO3ZhciB4PW8ubWF0Y2goUGYpO3g/TG4oeFswXSwwLG4scik6KHg9by5tYXRjaCh4dikpJiZmdW5jdGlvbiBtdihlLHQscixhLG4pe0xuKGUuc2xpY2UoMCxlLmluZGV4T2YoIj4iKSksMCxhLG4pfSh4WzBdLDAsMCxuLHIpO3ZhciBkPShvLm1hdGNo'@; put 'KC88KD86XHcqOik/ZGltZW5zaW9uLyl8fHtpbmRleDotMX0pLmluZGV4O2lmKGQ+MCl7dmFyIHY9by5zbGljZShkLGQrNTApLm1hdGNoKG92KTt2JiZmdW5jdGlvbiBpdihlLHQpe3ZhciByPURlKHQpO3Iucy5yPD1yLmUuciYmci5zLmM8PXIuZS5jJiZyLnMucj49MCYmci5zLmM+PTAmJihl'@; put 'WyIhcmVmIl09d2UocikpfShmLHZbMV0pfXZhciB1PW8ubWF0Y2goZHYpO3UmJnVbMV0mJmZ1bmN0aW9uIE92KGUsdCl7dC5WaWV3c3x8KHQuVmlld3M9W3t9XSksKGUubWF0Y2goRHYpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihyLGEpe3ZhciBuPW1lKHIpO3QuVmlld3NbYV18fCh0LlZpZXdz'@; put 'W2FdPXt9KSwrbi56b29tU2NhbGUmJih0LlZpZXdzW2FdLnpvb209K24uem9vbVNjYWxlKSxXZShuLnJpZ2h0VG9MZWZ0KSYmKHQuVmlld3NbYV0uUlRMPSEwKX0pfSh1WzFdLG4pO3ZhciBwPVtdO2lmKHQuY2VsbFN0eWxlcyl7dmFyIGs9by5tYXRjaChsdik7ayYmZnVuY3Rpb24gRnYoZSx0'@; put 'KXtmb3IodmFyIHI9ITEsYT0wO2EhPXQubGVuZ3RoOysrYSl7dmFyIG49bWUodFthXSwhMCk7bi5oaWRkZW4mJihuLmhpZGRlbj1XZShuLmhpZGRlbikpO3ZhciBpPXBhcnNlSW50KG4ubWluLDEwKS0xLHM9cGFyc2VJbnQobi5tYXgsMTApLTE7Zm9yKG4ub3V0bGluZUxldmVsJiYobi5sZXZl'@; put 'bD0rbi5vdXRsaW5lTGV2ZWx8fDApLGRlbGV0ZSBuLm1pbixkZWxldGUgbi5tYXgsbi53aWR0aD0rbi53aWR0aCwhciYmbi53aWR0aCYmKHI9ITAsQW4obi53aWR0aCkpLEt0KG4pO2k8PXM7KWVbaSsrXT1NZShuKX19KHAsayl9aCYmTnYoaFsxXSxmLHQsYyxpLHMpO3ZhciBUPWwubWF0Y2go'@; put 'dXYpO1QmJihmWyIhYXV0b2ZpbHRlciJdPWZ1bmN0aW9uIEF2KGUpe3JldHVybntyZWY6KGUubWF0Y2goL3JlZj0iKFteIl0qKSIvKXx8W10pWzFdfX0oVFswXSkpO3ZhciBnPVtdLE49bC5tYXRjaChzdik7aWYoTilmb3IoZD0wO2QhPU4ubGVuZ3RoOysrZClnW2RdPURlKE5bZF0uc2xpY2Uo'@; put 'TltkXS5pbmRleE9mKCciJykrMSkpO3ZhciBNPWwubWF0Y2goY3YpO00mJmZ1bmN0aW9uIEV2KGUsdCxyKXtmb3IodmFyIGE9QXJyYXkuaXNBcnJheShlKSxuPTA7biE9dC5sZW5ndGg7KytuKXt2YXIgaT1tZShCZSh0W25dKSwhMCk7aWYoIWkucmVmKXJldHVybjt2YXIgcz0oKHJ8fHt9KVsi'@; put 'IWlkIl18fFtdKVtpLmlkXTtzPyhpLlRhcmdldD1zLlRhcmdldCxpLmxvY2F0aW9uJiYoaS5UYXJnZXQrPSIjIitJZShpLmxvY2F0aW9uKSkpOihpLlRhcmdldD0iIyIrSWUoaS5sb2NhdGlvbikscz17VGFyZ2V0OmkuVGFyZ2V0LFRhcmdldE1vZGU6IkludGVybmFsIn0pLGkuUmVsPXMsaS50'@; put 'b29sdGlwJiYoaS5Ub29sdGlwPWkudG9vbHRpcCxkZWxldGUgaS50b29sdGlwKTtmb3IodmFyIGY9RGUoaS5yZWYpLGM9Zi5zLnI7Yzw9Zi5lLnI7KytjKWZvcih2YXIgbz1mLnMuYztvPD1mLmUuYzsrK28pe3ZhciBsPWdlKHtjOm8scjpjfSk7YT8oZVtjXXx8KGVbY109W10pLGVbY11bb118'@; put 'fChlW2NdW29dPXt0OiJ6Iix2OnZvaWQgMH0pLGVbY11bb10ubD1pKTooZVtsXXx8KGVbbF09e3Q6InoiLHY6dm9pZCAwfSksZVtsXS5sPWkpfX19KGYsTSxhKTt2YXIgST1sLm1hdGNoKGh2KTtpZihJJiYoZlsiIW1hcmdpbnMiXT1mdW5jdGlvbiBUdihlKXt2YXIgdD17fTtyZXR1cm5bImxl'@; put 'ZnQiLCJyaWdodCIsInRvcCIsImJvdHRvbSIsImhlYWRlciIsImZvb3RlciJdLmZvckVhY2goZnVuY3Rpb24ocil7ZVtyXSYmKHRbcl09cGFyc2VGbG9hdChlW3JdKSl9KSx0fShtZShJWzBdKSkpLCFmWyIhcmVmIl0mJmMuZS5jPj1jLnMuYyYmYy5lLnI+PWMucy5yJiYoZlsiIXJlZiJdPXdl'@; put 'KGMpKSx0LnNoZWV0Um93cz4wJiZmWyIhcmVmIl0pe3ZhciB5PURlKGZbIiFyZWYiXSk7dC5zaGVldFJvd3M8PSt5LmUuciYmKHkuZS5yPXQuc2hlZXRSb3dzLTEseS5lLnI+Yy5lLnImJih5LmUucj1jLmUucikseS5lLnI8eS5zLnImJih5LnMucj15LmUucikseS5lLmM+Yy5lLmMmJih5LmUu'@; put 'Yz1jLmUuYykseS5lLmM8eS5zLmMmJih5LnMuYz15LmUuYyksZlsiIWZ1bGxyZWYiXT1mWyIhcmVmIl0sZlsiIXJlZiJdPXdlKHkpKX1yZXR1cm4gcC5sZW5ndGg+MCYmKGZbIiFjb2xzIl09cCksZy5sZW5ndGg+MCYmKGZbIiFtZXJnZXMiXT1nKSxmfShlLGEscixuLGkscyxmKX12YXIgR2Es'@; put 'emY9LyhbXHc6XSspPSgoPzoiKShbXiJdKikoPzoiKXwoPzonKShbXiddKikoPzonKSkvZywkZj0vKFtcdzpdKyk9KCg/OiIpKD86W14iXSopKD86Iil8KD86JykoPzpbXiddKikoPzonKSkvO2Z1bmN0aW9uIFpyKGUsdCl7dmFyIHI9ZS5zcGxpdCgvXHMrLyksYT1bXTtpZih0fHwoYVswXT1y'@; put 'WzBdKSwxPT09ci5sZW5ndGgpcmV0dXJuIGE7dmFyIGkscyxjLG49ZS5tYXRjaCh6Zik7aWYobilmb3IoYz0wO2MhPW4ubGVuZ3RoOysrYyktMT09PShzPShpPW5bY10ubWF0Y2goJGYpKVsxXS5pbmRleE9mKCI6IikpP2FbaVsxXV09aVsyXS5zbGljZSgxLGlbMl0ubGVuZ3RoLTEpOmFbInht'@; put 'bG5zOiI9PT1pWzFdLnNsaWNlKDAsNik/InhtbG5zIitpWzFdLnNsaWNlKDYpOmlbMV0uc2xpY2UocysxKV09aVsyXS5zbGljZSgxLGlbMl0ubGVuZ3RoLTEpO3JldHVybiBhfWZ1bmN0aW9uIEhwKGUpe3ZhciByPXt9O2lmKDE9PT1lLnNwbGl0KC9ccysvKS5sZW5ndGgpcmV0dXJuIHI7dmFy'@; put 'IG4saSxmLGE9ZS5tYXRjaCh6Zik7aWYoYSlmb3IoZj0wO2YhPWEubGVuZ3RoOysrZiktMT09PShpPShuPWFbZl0ubWF0Y2goJGYpKVsxXS5pbmRleE9mKCI6IikpP3JbblsxXV09blsyXS5zbGljZSgxLG5bMl0ubGVuZ3RoLTEpOnJbInhtbG5zOiI9PT1uWzFdLnNsaWNlKDAsNik/InhtbG5z'@; put 'IituWzFdLnNsaWNlKDYpOm5bMV0uc2xpY2UoaSsxKV09blsyXS5zbGljZSgxLG5bMl0ubGVuZ3RoLTEpO3JldHVybiByfWZ1bmN0aW9uIFhwKGUsdCxyLGEpe3ZhciBuPWE7c3dpdGNoKChyWzBdLm1hdGNoKC9kdDpkdD0iKFtcdy5dKykiLyl8fFsiIiwiIl0pWzFdKXtjYXNlImJvb2xlYW4i'@; put 'Om49V2UoYSk7YnJlYWs7Y2FzZSJpMiI6Y2FzZSJpbnQiOm49cGFyc2VJbnQoYSwxMCk7YnJlYWs7Y2FzZSJyNCI6Y2FzZSJmbG9hdCI6bj1wYXJzZUZsb2F0KGEpO2JyZWFrO2Nhc2UiZGF0ZSI6Y2FzZSJkYXRlVGltZS50eiI6bj1YZShhKTticmVhaztjYXNlImk4IjpjYXNlInN0cmluZyI6'@; put 'Y2FzZSJmaXhlZCI6Y2FzZSJ1dWlkIjpjYXNlImJpbi5iYXNlNjQiOmJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJiYWQgY3VzdHByb3A6IityWzBdKX1lW0llKHQpXT1ufWZ1bmN0aW9uIHpwKGUsdCxyKXtpZihyLmNlbGxTdHlsZXMmJnQuSW50ZXJpb3Ipe3ZhciBhPXQuSW50ZXJp'@; put 'b3I7YS5QYXR0ZXJuJiYoYS5wYXR0ZXJuVHlwZT1uMVthLlBhdHRlcm5dfHxhLlBhdHRlcm4pfWVbdC5JRF09dH1mdW5jdGlvbiAkcChlLHQscixhLG4saSxzLGYsYyxvKXt2YXIgbD0iR2VuZXJhbCIsaD1hLlN0eWxlSUQseD17fTtvPW98fHt9O3ZhciBkPVtdLHY9MDtmb3Iodm9pZCAwPT09'@; put 'aCYmZiYmKGg9Zi5TdHlsZUlEKSx2b2lkIDA9PT1oJiZzJiYoaD1zLlN0eWxlSUQpO3ZvaWQgMCE9PWlbaF0mJihpW2hdLm5mJiYobD1pW2hdLm5mKSxpW2hdLkludGVyaW9yJiZkLnB1c2goaVtoXS5JbnRlcmlvciksaVtoXS5QYXJlbnQpOyloPWlbaF0uUGFyZW50O3N3aXRjaChyLlR5cGUp'@; put 'e2Nhc2UiQm9vbGVhbiI6YS50PSJiIixhLnY9V2UoZSk7YnJlYWs7Y2FzZSJTdHJpbmciOmEudD0icyIsYS5yPUJpKEllKGUpKSxhLnY9ZS5pbmRleE9mKCI8Iik+LTE/SWUodHx8ZSkucmVwbGFjZSgvPC4qPz4vZywiIik6YS5yO2JyZWFrO2Nhc2UiRGF0ZVRpbWUiOiJaIiE9ZS5zbGljZSgt'@; put 'MSkmJihlKz0iWiIpLGEudj0oWGUoZSktbmV3IERhdGUoRGF0ZS5VVEMoMTg5OSwxMSwzMCkpKS84NjRlNSxhLnYhPWEudj9hLnY9SWUoZSk6YS52PDYwJiYoYS52PWEudi0xKSwoIWx8fCJHZW5lcmFsIj09bCkmJihsPSJ5eXl5LW1tLWRkIik7Y2FzZSJOdW1iZXIiOnZvaWQgMD09PWEudiYm'@; put 'KGEudj0rZSksYS50fHwoYS50PSJuIik7YnJlYWs7Y2FzZSJFcnJvciI6YS50PSJlIixhLnY9ZHNbZV0sITEhPT1vLmNlbGxUZXh0JiYoYS53PWUpO2JyZWFrO2RlZmF1bHQ6IiI9PWUmJiIiPT10P2EudD0ieiI6KGEudD0icyIsYS52PUJpKHR8fGUpKX1pZihmdW5jdGlvbiBHcChlLHQscil7'@; put 'aWYoInoiIT09ZS50KXtpZighcnx8ITEhPT1yLmNlbGxUZXh0KXRyeXtlLnc9ImUiPT09ZS50P2Uud3x8eHRbZS52XToiR2VuZXJhbCI9PT10PyJuIj09PWUudD8oMHxlLnYpPT09ZS52P2Uudi50b1N0cmluZygxMCk6a2EoZS52KTpOdChlLnYpOmZ1bmN0aW9uIFZwKGUsdCl7dmFyIHI9R2Fb'@; put 'ZV18fEllKGUpO3JldHVybiJHZW5lcmFsIj09PXI/TnQodCk6UnIocix0KX0odHx8IkdlbmVyYWwiLGUudil9Y2F0Y2goaSl7aWYoci5XVEYpdGhyb3cgaX10cnl7dmFyIGE9R2FbdF18fHR8fCJHZW5lcmFsIjtpZihyLmNlbGxORiYmKGUuej1hKSxyLmNlbGxEYXRlcyYmIm4iPT1lLnQmJmJ0'@; put 'KGEpKXt2YXIgbj1rdChlLnYpO24mJihlLnQ9ImQiLGUudj1uZXcgRGF0ZShuLnksbi5tLTEsbi5kLG4uSCxuLk0sbi5TLG4udSkpfX1jYXRjaChpKXtpZihyLldURil0aHJvdyBpfX19KGEsbCxvKSwhMSE9PW8uY2VsbEZvcm11bGEpaWYoYS5Gb3JtdWxhKXt2YXIgdT1JZShhLkZvcm11bGEp'@; put 'OzYxPT11LmNoYXJDb2RlQXQoMCkmJih1PXUuc2xpY2UoMSkpLGEuZj11YSh1LG4pLGRlbGV0ZSBhLkZvcm11bGEsIlJDIj09YS5BcnJheVJhbmdlP2EuRj11YSgiUkM6UkMiLG4pOmEuQXJyYXlSYW5nZSYmKGEuRj11YShhLkFycmF5UmFuZ2UsbiksYy5wdXNoKFtEZShhLkYpLGEuRl0pKX1l'@; put 'bHNlIGZvcih2PTA7djxjLmxlbmd0aDsrK3Ypbi5yPj1jW3ZdWzBdLnMuciYmbi5yPD1jW3ZdWzBdLmUuciYmbi5jPj1jW3ZdWzBdLnMuYyYmbi5jPD1jW3ZdWzBdLmUuYyYmKGEuRj1jW3ZdWzFdKTtvLmNlbGxTdHlsZXMmJihkLmZvckVhY2goZnVuY3Rpb24ocCl7IXgucGF0dGVyblR5cGUm'@; put 'JnAucGF0dGVyblR5cGUmJih4LnBhdHRlcm5UeXBlPXAucGF0dGVyblR5cGUpfSksYS5zPXgpLHZvaWQgMCE9PWEuU3R5bGVJRCYmKGEuaXhmZT1hLlN0eWxlSUQpfWZ1bmN0aW9uIGpwKGUpe2UudD1lLnZ8fCIiLGUudD1lLnQucmVwbGFjZSgvXHJcbi9nLCJcbiIpLnJlcGxhY2UoL1xyL2cs'@; put 'IlxuIiksZS52PWUudz1lLml4ZmU9dm9pZCAwfWZ1bmN0aW9uIE1uKGUsdCl7dmFyIHI9dHx8e307dGEoKTt2YXIgYT1RdChZMChlKSk7KCJiaW5hcnkiPT1yLnR5cGV8fCJhcnJheSI9PXIudHlwZXx8ImJhc2U2NCI9PXIudHlwZSkmJihhPXR5cGVvZiBPZTwidSI/T2UudXRpbHMuZGVjb2Rl'@; put 'KDY1MDAxLHQwKGEpKTpCZShhKSk7dmFyIG49YS5zbGljZSgwLDEwMjQpLnRvTG93ZXJDYXNlKCksaT0hMTtpZigoMTAyMyYobj1uLnJlcGxhY2UoLyIuKj8iL2csIiIpKS5pbmRleE9mKCI+IikpPk1hdGgubWluKDEwMjMmbi5pbmRleE9mKCIsIiksMTAyMyZuLmluZGV4T2YoIjsiKSkpe3Zh'@; put 'ciBzPU1lKHIpO3JldHVybiBzLnR5cGU9InN0cmluZyIsY2EudG9fd29ya2Jvb2soYSxzKX1pZigtMT09bi5pbmRleE9mKCI8P3htbCIpJiZbImh0bWwiLCJ0YWJsZSIsImhlYWQiLCJtZXRhIiwic2NyaXB0Iiwic3R5bGUiLCJkaXYiXS5mb3JFYWNoKGZ1bmN0aW9uKHFlKXtuLmluZGV4T2Yo'@; put 'IjwiK3FlKT49MCYmKGk9ITApfSksaSlyZXR1cm4gZnVuY3Rpb24gRG0oZSx0KXt2YXIgcj1lLm1hdGNoKC88dGFibGVbXHNcU10qPz5bXHNcU10qPzxcL3RhYmxlPi9naSk7aWYoIXJ8fDA9PXIubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBIVE1MOiBjb3VsZCBub3QgZmluZCA8'@; put 'dGFibGU+Iik7aWYoMT09ci5sZW5ndGgpcmV0dXJuIEZ0KEpmKHJbMF0sdCksdCk7dmFyIGE9e1NoZWV0TmFtZXM6W10sU2hlZXRzOnt9fTtyZXR1cm4gci5mb3JFYWNoKGZ1bmN0aW9uKG4saSl7ZWkoYSxKZihuLHQpLCJTaGVldCIrKGkrMSkpfSksYX0oYSxyKTtHYT17IkdlbmVyYWwgTnVt'@; put 'YmVyIjoiR2VuZXJhbCIsIkdlbmVyYWwgRGF0ZSI6cGVbMjJdLCJMb25nIERhdGUiOiJkZGRkLCBtbW1tIGRkLCB5eXl5IiwiTWVkaXVtIERhdGUiOnBlWzE1XSwiU2hvcnQgRGF0ZSI6cGVbMTRdLCJMb25nIFRpbWUiOnBlWzE5XSwiTWVkaXVtIFRpbWUiOnBlWzE4XSwiU2hvcnQgVGltZSI6'@; put 'cGVbMjBdLEN1cnJlbmN5OiciJCIjLCMjMC4wMF8pO1tSZWRdXFwoIiQiIywjIzAuMDBcXCknLEZpeGVkOnBlWzJdLFN0YW5kYXJkOnBlWzRdLFBlcmNlbnQ6cGVbMTBdLFNjaWVudGlmaWM6cGVbMTFdLCJZZXMvTm8iOiciWWVzIjsiWWVzIjsiTm8iO0AnLCJUcnVlL0ZhbHNlIjonIlRydWUi'@; put 'OyJUcnVlIjsiRmFsc2UiO0AnLCJPbi9PZmYiOiciWWVzIjsiWWVzIjsiTm8iO0AnfTt2YXIgZixvLGM9W107bnVsbCE9emUmJm51bGw9PXIuZGVuc2UmJihyLmRlbnNlPXplKTt2YXIgdWUsbD17fSxoPVtdLHg9ci5kZW5zZT9bXTp7fSxkPSIiLHY9e30sdT17fSxwPVpyKCc8RGF0YSBzczpU'@; put 'eXBlPSJTdHJpbmciPicpLGs9MCxUPTAsZz0wLE49e3M6e3I6MmU2LGM6MmU2fSxlOntyOjAsYzowfX0sTT17fSxJPXt9LHk9IiIsUD0wLFI9W10sVj17fSxYPXt9LGI9MCxlZT1bXSxsZT1bXSxyZT17fSxkZT1bXSxGZT0hMSxjZT1bXSx4ZT1bXSxLPXt9LEM9MCxVPTAsTz17U2hlZXRzOltd'@; put 'LFdCUHJvcHM6e2RhdGUxOTA0OiExfX0sRD17fTt5YS5sYXN0SW5kZXg9MCxhPWEucmVwbGFjZSgvPCEtLShbXHNcU10qPyktLT4vZ20sIiIpO2Zvcih2YXIgaj0iIjtmPXlhLmV4ZWMoYSk7KXN3aXRjaChmWzNdPShqPWZbM10pLnRvTG93ZXJDYXNlKCkpe2Nhc2UiZGF0YSI6aWYoImRhdGEi'@; put 'PT1qKXtpZigiLyI9PT1mWzFdKXtpZigobz1jLnBvcCgpKVswXSE9PWZbM10pdGhyb3cgbmV3IEVycm9yKCJCYWQgc3RhdGU6ICIrby5qb2luKCJ8IikpfWVsc2UiLyIhPT1mWzBdLmNoYXJBdChmWzBdLmxlbmd0aC0yKSYmYy5wdXNoKFtmWzNdLCEwXSk7YnJlYWt9aWYoY1tjLmxlbmd0aC0x'@; put 'XVsxXSlicmVhazsiLyI9PT1mWzFdPyRwKGEuc2xpY2UoayxmLmluZGV4KSx5LHAsImNvbW1lbnQiPT1jW2MubGVuZ3RoLTFdWzBdP3JlOnYse2M6VCxyOmd9LE0sZGVbVF0sdSxjZSxyKTooeT0iIixwPVpyKGZbMF0pLGs9Zi5pbmRleCtmWzBdLmxlbmd0aCk7YnJlYWs7Y2FzZSJjZWxsIjpp'@; put 'ZigiLyI9PT1mWzFdKWlmKGxlLmxlbmd0aD4wJiYodi5jPWxlKSwoIXIuc2hlZXRSb3dzfHxyLnNoZWV0Um93cz5nKSYmdm9pZCAwIT09di52JiYoci5kZW5zZT8oeFtnXXx8KHhbZ109W10pLHhbZ11bVF09dik6eFtIZShUKStLZShnKV09diksdi5IUmVmJiYodi5sPXtUYXJnZXQ6SWUodi5I'@; put 'UmVmKX0sdi5IUmVmU2NyZWVuVGlwJiYodi5sLlRvb2x0aXA9di5IUmVmU2NyZWVuVGlwKSxkZWxldGUgdi5IUmVmLGRlbGV0ZSB2LkhSZWZTY3JlZW5UaXApLCh2Lk1lcmdlQWNyb3NzfHx2Lk1lcmdlRG93bikmJihDPVQrKDB8cGFyc2VJbnQodi5NZXJnZUFjcm9zcywxMCkpLFU9ZysoMHxw'@; put 'YXJzZUludCh2Lk1lcmdlRG93biwxMCkpLFIucHVzaCh7czp7YzpULHI6Z30sZTp7YzpDLHI6VX19KSksci5zaGVldFN0dWJzKWlmKHYuTWVyZ2VBY3Jvc3N8fHYuTWVyZ2VEb3duKXtmb3IodmFyIHNlPVQ7c2U8PUM7KytzZSlmb3IodmFyIFo9ZztaPD1VOysrWikoc2U+VHx8Wj5nKSYmKHIu'@; put 'ZGVuc2U/KHhbWl18fCh4W1pdPVtdKSx4W1pdW3NlXT17dDoieiJ9KTp4W0hlKHNlKStLZShaKV09e3Q6InoifSk7VD1DKzF9ZWxzZSsrVDtlbHNlIHYuTWVyZ2VBY3Jvc3M/VD1DKzE6KytUO2Vsc2Uodj1IcChmWzBdKSkuSW5kZXgmJihUPSt2LkluZGV4LTEpLFQ8Ti5zLmMmJihOLnMuYz1U'@; put 'KSxUPk4uZS5jJiYoTi5lLmM9VCksIi8+Ij09PWZbMF0uc2xpY2UoLTIpJiYrK1QsbGU9W107YnJlYWs7Y2FzZSJyb3ciOiIvIj09PWZbMV18fCIvPiI9PT1mWzBdLnNsaWNlKC0yKT8oZzxOLnMuciYmKE4ucy5yPWcpLGc+Ti5lLnImJihOLmUucj1nKSwiLz4iPT09ZlswXS5zbGljZSgtMikm'@; put 'Jih1PVpyKGZbMF0pKS5JbmRleCYmKGc9K3UuSW5kZXgtMSksVD0wLCsrZyk6KCh1PVpyKGZbMF0pKS5JbmRleCYmKGc9K3UuSW5kZXgtMSksSz17fSwoIjAiPT11LkF1dG9GaXRIZWlnaHR8fHUuSGVpZ2h0KSYmKEsuaHB4PXBhcnNlSW50KHUuSGVpZ2h0LDEwKSxLLmhwdD1CYShLLmhweCks'@; put 'eGVbZ109SyksIjEiPT11LkhpZGRlbiYmKEsuaGlkZGVuPSEwLHhlW2ddPUspKTticmVhaztjYXNlIndvcmtzaGVldCI6aWYoIi8iPT09ZlsxXSl7aWYoKG89Yy5wb3AoKSlbMF0hPT1mWzNdKXRocm93IG5ldyBFcnJvcigiQmFkIHN0YXRlOiAiK28uam9pbigifCIpKTtoLnB1c2goZCksTi5z'@; put 'LnI8PU4uZS5yJiZOLnMuYzw9Ti5lLmMmJih4WyIhcmVmIl09d2UoTiksci5zaGVldFJvd3MmJnIuc2hlZXRSb3dzPD1OLmUuciYmKHhbIiFmdWxscmVmIl09eFsiIXJlZiJdLE4uZS5yPXIuc2hlZXRSb3dzLTEseFsiIXJlZiJdPXdlKE4pKSksUi5sZW5ndGgmJih4WyIhbWVyZ2VzIl09Uiks'@; put 'ZGUubGVuZ3RoPjAmJih4WyIhY29scyJdPWRlKSx4ZS5sZW5ndGg+MCYmKHhbIiFyb3dzIl09eGUpLGxbZF09eH1lbHNlIE49e3M6e3I6MmU2LGM6MmU2fSxlOntyOjAsYzowfX0sZz1UPTAsYy5wdXNoKFtmWzNdLCExXSksbz1acihmWzBdKSxkPUllKG8uTmFtZSkseD1yLmRlbnNlP1tdOnt9'@; put 'LFI9W10sY2U9W10seGU9W10sTy5TaGVldHMucHVzaChEPXtuYW1lOmQsSGlkZGVuOjB9KTticmVhaztjYXNlInRhYmxlIjppZigiLyI9PT1mWzFdKXtpZigobz1jLnBvcCgpKVswXSE9PWZbM10pdGhyb3cgbmV3IEVycm9yKCJCYWQgc3RhdGU6ICIrby5qb2luKCJ8IikpfWVsc2V7aWYoIi8+'@; put 'Ij09ZlswXS5zbGljZSgtMikpYnJlYWs7Yy5wdXNoKFtmWzNdLCExXSksZGU9W10sRmU9ITF9YnJlYWs7Y2FzZSJzdHlsZSI6Ii8iPT09ZlsxXT96cChNLEkscik6ST1acihmWzBdKTticmVhaztjYXNlIm51bWJlcmZvcm1hdCI6SS5uZj1JZShacihmWzBdKS5Gb3JtYXR8fCJHZW5lcmFsIiks'@; put 'R2FbSS5uZl0mJihJLm5mPUdhW0kubmZdKTtmb3IodmFyIFE9MDszOTIhPVEmJnBlW1FdIT1JLm5mOysrUSk7aWYoMzkyPT1RKWZvcihRPTU3OzM5MiE9UTsrK1EpaWYobnVsbD09cGVbUV0pe2V0KEkubmYsUSk7YnJlYWt9YnJlYWs7Y2FzZSJjb2x1bW4iOmlmKCJ0YWJsZSIhPT1jW2MubGVu'@; put 'Z3RoLTFdWzBdKWJyZWFrO2lmKCh1ZT1acihmWzBdKSkuSGlkZGVuJiYodWUuaGlkZGVuPSEwLGRlbGV0ZSB1ZS5IaWRkZW4pLHVlLldpZHRoJiYodWUud3B4PXBhcnNlSW50KHVlLldpZHRoLDEwKSksIUZlJiZ1ZS53cHg+MTApe0ZlPSEwLHdyPWxmO2Zvcih2YXIgWT0wO1k8ZGUubGVuZ3Ro'@; put 'OysrWSlkZVtZXSYmS3QoZGVbWV0pfUZlJiZLdCh1ZSksZGVbdWUuSW5kZXgtMXx8ZGUubGVuZ3RoXT11ZTtmb3IodmFyIEVlPTA7RWU8K3VlLlNwYW47KytFZSlkZVtkZS5sZW5ndGhdPU1lKHVlKTticmVhaztjYXNlIm5hbWVkcmFuZ2UiOmlmKCIvIj09PWZbMV0pYnJlYWs7Ty5OYW1lc3x8'@; put 'KE8uTmFtZXM9W10pO3ZhciBBPW1lKGZbMF0pLFBlPXtOYW1lOkEuTmFtZSxSZWY6dWEoQS5SZWZlcnNUby5zbGljZSgxKSx7cjowLGM6MH0pfTtPLlNoZWV0cy5sZW5ndGg+MCYmKFBlLlNoZWV0PU8uU2hlZXRzLmxlbmd0aC0xKSxPLk5hbWVzLnB1c2goUGUpO2JyZWFrO2Nhc2UibmFtZWRj'@; put 'ZWxsIjpjYXNlImIiOmNhc2UiaSI6Y2FzZSJ1IjpjYXNlInMiOmNhc2UiZW0iOmNhc2UiaDIiOmNhc2UiaDMiOmNhc2Uic3ViIjpjYXNlInN1cCI6Y2FzZSJzcGFuIjpjYXNlImFsaWdubWVudCI6Y2FzZSJib3JkZXJzIjpjYXNlImJvcmRlciI6Y2FzZSJwcm90ZWN0aW9uIjpjYXNlInBhcmFn'@; put 'cmFwaHMiOmNhc2UibmFtZSI6Y2FzZSJwaXhlbHNwZXJpbmNoIjpjYXNlIm51bGwiOmJyZWFrO2Nhc2UiZm9udCI6aWYoIi8+Ij09PWZbMF0uc2xpY2UoLTIpKWJyZWFrOyIvIj09PWZbMV0/eSs9YS5zbGljZShQLGYuaW5kZXgpOlA9Zi5pbmRleCtmWzBdLmxlbmd0aDticmVhaztjYXNlImlu'@; put 'dGVyaW9yIjppZighci5jZWxsU3R5bGVzKWJyZWFrO0kuSW50ZXJpb3I9WnIoZlswXSk7YnJlYWs7Y2FzZSJhdXRob3IiOmNhc2UidGl0bGUiOmNhc2UiZGVzY3JpcHRpb24iOmNhc2UiY3JlYXRlZCI6Y2FzZSJrZXl3b3JkcyI6Y2FzZSJzdWJqZWN0IjpjYXNlImNhdGVnb3J5IjpjYXNlImNv'@; put 'bXBhbnkiOmNhc2UibGFzdGF1dGhvciI6Y2FzZSJsYXN0c2F2ZWQiOmNhc2UibGFzdHByaW50ZWQiOmNhc2UidmVyc2lvbiI6Y2FzZSJyZXZpc2lvbiI6Y2FzZSJ0b3RhbHRpbWUiOmNhc2UiaHlwZXJsaW5rYmFzZSI6Y2FzZSJtYW5hZ2VyIjpjYXNlImNvbnRlbnRzdGF0dXMiOmNhc2UiaWRl'@; put 'bnRpZmllciI6Y2FzZSJsYW5ndWFnZSI6Y2FzZSJhcHBuYW1lIjppZigiLz4iPT09ZlswXS5zbGljZSgtMikpYnJlYWs7Ii8iPT09ZlsxXT9nbChWLGosYS5zbGljZShiLGYuaW5kZXgpKTpiPWYuaW5kZXgrZlswXS5sZW5ndGg7YnJlYWs7Y2FzZSJzdHlsZXMiOmNhc2Uid29ya2Jvb2siOmlm'@; put 'KCIvIj09PWZbMV0pe2lmKChvPWMucG9wKCkpWzBdIT09ZlszXSl0aHJvdyBuZXcgRXJyb3IoIkJhZCBzdGF0ZTogIitvLmpvaW4oInwiKSl9ZWxzZSBjLnB1c2goW2ZbM10sITFdKTticmVhaztjYXNlImNvbW1lbnQiOmlmKCIvIj09PWZbMV0pe2lmKChvPWMucG9wKCkpWzBdIT09ZlszXSl0'@; put 'aHJvdyBuZXcgRXJyb3IoIkJhZCBzdGF0ZTogIitvLmpvaW4oInwiKSk7anAocmUpLGxlLnB1c2gocmUpfWVsc2UgYy5wdXNoKFtmWzNdLCExXSkscmU9e2E6KG89WnIoZlswXSkpLkF1dGhvcn07YnJlYWs7Y2FzZSJhdXRvZmlsdGVyIjppZigiLyI9PT1mWzFdKXtpZigobz1jLnBvcCgpKVsw'@; put 'XSE9PWZbM10pdGhyb3cgbmV3IEVycm9yKCJCYWQgc3RhdGU6ICIrby5qb2luKCJ8IikpfWVsc2UgaWYoIi8iIT09ZlswXS5jaGFyQXQoZlswXS5sZW5ndGgtMikpe3ZhciBBZT1acihmWzBdKTt4WyIhYXV0b2ZpbHRlciJdPXtyZWY6dWEoQWUuUmFuZ2UpLnJlcGxhY2UoL1wkL2csIiIpfSxj'@; put 'LnB1c2goW2ZbM10sITBdKX1icmVhaztjYXNlImRhdGF2YWxpZGF0aW9uIjppZigiLyI9PT1mWzFdKXtpZigobz1jLnBvcCgpKVswXSE9PWZbM10pdGhyb3cgbmV3IEVycm9yKCJCYWQgc3RhdGU6ICIrby5qb2luKCJ8IikpfWVsc2UiLyIhPT1mWzBdLmNoYXJBdChmWzBdLmxlbmd0aC0yKSYm'@; put 'Yy5wdXNoKFtmWzNdLCEwXSk7YnJlYWs7Y2FzZSJjb21wb25lbnRvcHRpb25zIjpjYXNlImRvY3VtZW50cHJvcGVydGllcyI6Y2FzZSJjdXN0b21kb2N1bWVudHByb3BlcnRpZXMiOmNhc2Uib2ZmaWNlZG9jdW1lbnRzZXR0aW5ncyI6Y2FzZSJwaXZvdHRhYmxlIjpjYXNlInBpdm90Y2FjaGUi'@; put 'OmNhc2UibmFtZXMiOmNhc2UibWFwaW5mbyI6Y2FzZSJwYWdlYnJlYWtzIjpjYXNlInF1ZXJ5dGFibGUiOmNhc2Uic29ydGluZyI6Y2FzZSJzY2hlbWEiOmNhc2UiY29uZGl0aW9uYWxmb3JtYXR0aW5nIjpjYXNlInNtYXJ0dGFndHlwZSI6Y2FzZSJzbWFydHRhZ3MiOmNhc2UiZXhjZWx3b3Jr'@; put 'Ym9vayI6Y2FzZSJ3b3JrYm9va29wdGlvbnMiOmNhc2Uid29ya3NoZWV0b3B0aW9ucyI6aWYoIi8iPT09ZlsxXSl7aWYoKG89Yy5wb3AoKSlbMF0hPT1mWzNdKXRocm93IG5ldyBFcnJvcigiQmFkIHN0YXRlOiAiK28uam9pbigifCIpKX1lbHNlIi8iIT09ZlswXS5jaGFyQXQoZlswXS5sZW5n'@; put 'dGgtMikmJmMucHVzaChbZlszXSwhMF0pO2JyZWFrO2RlZmF1bHQ6aWYoMD09Yy5sZW5ndGgmJiJkb2N1bWVudCI9PWZbM118fDA9PWMubGVuZ3RoJiYidW9mIj09ZlszXSlyZXR1cm4gY2MoYSxyKTt2YXIgTGU9ITA7c3dpdGNoKGNbYy5sZW5ndGgtMV1bMF0pe2Nhc2Uib2ZmaWNlZG9jdW1l'@; put 'bnRzZXR0aW5ncyI6c3dpdGNoKGZbM10pe2Nhc2UiYWxsb3dwbmciOmNhc2UicmVtb3ZlcGVyc29uYWxpbmZvcm1hdGlvbiI6Y2FzZSJkb3dubG9hZGNvbXBvbmVudHMiOmNhc2UibG9jYXRpb25vZmNvbXBvbmVudHMiOmNhc2UiY29sb3JzIjpjYXNlImNvbG9yIjpjYXNlImluZGV4IjpjYXNl'@; put 'InJnYiI6Y2FzZSJ0YXJnZXRzY3JlZW5zaXplIjpjYXNlInJlYWRvbmx5cmVjb21tZW5kZWQiOmJyZWFrO2RlZmF1bHQ6TGU9ITF9YnJlYWs7Y2FzZSJjb21wb25lbnRvcHRpb25zIjpzd2l0Y2goZlszXSl7Y2FzZSJ0b29sYmFyIjpjYXNlImhpZGVvZmZpY2Vsb2dvIjpjYXNlInNwcmVhZHNo'@; put 'ZWV0YXV0b2ZpdCI6Y2FzZSJsYWJlbCI6Y2FzZSJjYXB0aW9uIjpjYXNlIm1heGhlaWdodCI6Y2FzZSJtYXh3aWR0aCI6Y2FzZSJuZXh0c2hlZXRudW1iZXIiOmJyZWFrO2RlZmF1bHQ6TGU9ITF9YnJlYWs7Y2FzZSJleGNlbHdvcmtib29rIjpzd2l0Y2goZlszXSl7Y2FzZSJkYXRlMTkwNCI6'@; put 'Ty5XQlByb3BzLmRhdGUxOTA0PSEwO2JyZWFrO2Nhc2Uid2luZG93aGVpZ2h0IjpjYXNlIndpbmRvd3dpZHRoIjpjYXNlIndpbmRvd3RvcHgiOmNhc2Uid2luZG93dG9weSI6Y2FzZSJ0YWJyYXRpbyI6Y2FzZSJwcm90ZWN0c3RydWN0dXJlIjpjYXNlInByb3RlY3R3aW5kb3ciOmNhc2UicHJv'@; put 'dGVjdHdpbmRvd3MiOmNhc2UiYWN0aXZlc2hlZXQiOmNhc2UiZGlzcGxheWlua25vdGVzIjpjYXNlImZpcnN0dmlzaWJsZXNoZWV0IjpjYXNlInN1cGJvb2siOmNhc2Uic2hlZXRuYW1lIjpjYXNlInNoZWV0aW5kZXgiOmNhc2Uic2hlZXRpbmRleGZpcnN0IjpjYXNlInNoZWV0aW5kZXhsYXN0'@; put 'IjpjYXNlImRsbCI6Y2FzZSJhY2NlcHRsYWJlbHNpbmZvcm11bGFzIjpjYXNlImRvbm90c2F2ZWxpbmt2YWx1ZXMiOmNhc2UiaXRlcmF0aW9uIjpjYXNlIm1heGl0ZXJhdGlvbnMiOmNhc2UibWF4Y2hhbmdlIjpjYXNlInBhdGgiOmNhc2UieGN0IjpjYXNlImNvdW50IjpjYXNlInNlbGVjdGVk'@; put 'c2hlZXRzIjpjYXNlImNhbGN1bGF0aW9uIjpjYXNlInVuY2FsY2VkIjpjYXNlInN0YXJ0dXBwcm9tcHQiOmNhc2UiY3JuIjpjYXNlImV4dGVybm5hbWUiOmNhc2UiZm9ybXVsYSI6Y2FzZSJjb2xmaXJzdCI6Y2FzZSJjb2xsYXN0IjpjYXNlIndhbnRhZHZpc2UiOmNhc2UiYm9vbGVhbiI6Y2Fz'@; put 'ZSJlcnJvciI6Y2FzZSJ0ZXh0IjpjYXNlIm9sZSI6Y2FzZSJub2F1dG9yZWNvdmVyIjpjYXNlInB1Ymxpc2hvYmplY3RzIjpjYXNlImRvbm90Y2FsY3VsYXRlYmVmb3Jlc2F2ZSI6Y2FzZSJudW1iZXIiOmNhc2UicmVmbW9kZXIxYzEiOmNhc2UiZW1iZWRzYXZlc21hcnR0YWdzIjpicmVhaztk'@; put 'ZWZhdWx0OkxlPSExfWJyZWFrO2Nhc2Uid29ya2Jvb2tvcHRpb25zIjpzd2l0Y2goZlszXSl7Y2FzZSJvd2N2ZXJzaW9uIjpjYXNlImhlaWdodCI6Y2FzZSJ3aWR0aCI6YnJlYWs7ZGVmYXVsdDpMZT0hMX1icmVhaztjYXNlIndvcmtzaGVldG9wdGlvbnMiOnN3aXRjaChmWzNdKXtjYXNlInZp'@; put 'c2libGUiOmlmKCIvPiIhPT1mWzBdLnNsaWNlKC0yKSlpZigiLyI9PT1mWzFdKXN3aXRjaChhLnNsaWNlKGIsZi5pbmRleCkpe2Nhc2UiU2hlZXRIaWRkZW4iOkQuSGlkZGVuPTE7YnJlYWs7Y2FzZSJTaGVldFZlcnlIaWRkZW4iOkQuSGlkZGVuPTJ9ZWxzZSBiPWYuaW5kZXgrZlswXS5sZW5n'@; put 'dGg7YnJlYWs7Y2FzZSJoZWFkZXIiOnhbIiFtYXJnaW5zIl18fFl0KHhbIiFtYXJnaW5zIl09e30sInhsbWwiKSxpc05hTigrbWUoZlswXSkuTWFyZ2luKXx8KHhbIiFtYXJnaW5zIl0uaGVhZGVyPSttZShmWzBdKS5NYXJnaW4pO2JyZWFrO2Nhc2UiZm9vdGVyIjp4WyIhbWFyZ2lucyJdfHxZ'@; put 'dCh4WyIhbWFyZ2lucyJdPXt9LCJ4bG1sIiksaXNOYU4oK21lKGZbMF0pLk1hcmdpbil8fCh4WyIhbWFyZ2lucyJdLmZvb3Rlcj0rbWUoZlswXSkuTWFyZ2luKTticmVhaztjYXNlInBhZ2VtYXJnaW5zIjp2YXIgQ2U9bWUoZlswXSk7eFsiIW1hcmdpbnMiXXx8WXQoeFsiIW1hcmdpbnMiXT17'@; put 'fSwieGxtbCIpLGlzTmFOKCtDZS5Ub3ApfHwoeFsiIW1hcmdpbnMiXS50b3A9K0NlLlRvcCksaXNOYU4oK0NlLkxlZnQpfHwoeFsiIW1hcmdpbnMiXS5sZWZ0PStDZS5MZWZ0KSxpc05hTigrQ2UuUmlnaHQpfHwoeFsiIW1hcmdpbnMiXS5yaWdodD0rQ2UuUmlnaHQpLGlzTmFOKCtDZS5Cb3R0'@; put 'b20pfHwoeFsiIW1hcmdpbnMiXS5ib3R0b209K0NlLkJvdHRvbSk7YnJlYWs7Y2FzZSJkaXNwbGF5cmlnaHR0b2xlZnQiOk8uVmlld3N8fChPLlZpZXdzPVtdKSxPLlZpZXdzWzBdfHwoTy5WaWV3c1swXT17fSksTy5WaWV3c1swXS5SVEw9ITA7YnJlYWs7Y2FzZSJmcmVlemVwYW5lcyI6Y2Fz'@; put 'ZSJmcm96ZW5ub3NwbGl0IjpjYXNlInNwbGl0aG9yaXpvbnRhbCI6Y2FzZSJzcGxpdHZlcnRpY2FsIjpjYXNlImRvbm90ZGlzcGxheWdyaWRsaW5lcyI6Y2FzZSJhY3RpdmVyb3ciOmNhc2UiYWN0aXZlY29sIjpjYXNlInRvcHJvd2JvdHRvbXBhbmUiOmNhc2UibGVmdGNvbHVtbnJpZ2h0cGFu'@; put 'ZSI6Y2FzZSJ1bnN5bmNlZCI6Y2FzZSJwcmludCI6Y2FzZSJwcmludGVycm9ycyI6Y2FzZSJwYW5lcyI6Y2FzZSJzY2FsZSI6Y2FzZSJwYW5lIjpjYXNlIm51bWJlciI6Y2FzZSJsYXlvdXQiOmNhc2UicGFnZXNldHVwIjpjYXNlInNlbGVjdGVkIjpjYXNlInByb3RlY3RvYmplY3RzIjpjYXNl'@; put 'ImVuYWJsZXNlbGVjdGlvbiI6Y2FzZSJwcm90ZWN0c2NlbmFyaW9zIjpjYXNlInZhbGlkcHJpbnRlcmluZm8iOmNhc2UiaG9yaXpvbnRhbHJlc29sdXRpb24iOmNhc2UidmVydGljYWxyZXNvbHV0aW9uIjpjYXNlIm51bWJlcm9mY29waWVzIjpjYXNlImFjdGl2ZXBhbmUiOmNhc2UidG9wcm93'@; put 'dmlzaWJsZSI6Y2FzZSJsZWZ0Y29sdW1udmlzaWJsZSI6Y2FzZSJmaXR0b3BhZ2UiOmNhc2UicmFuZ2VzZWxlY3Rpb24iOmNhc2UicGFwZXJzaXplaW5kZXgiOmNhc2UicGFnZWxheW91dHpvb20iOmNhc2UicGFnZWJyZWFrem9vbSI6Y2FzZSJmaWx0ZXJvbiI6Y2FzZSJmaXR3aWR0aCI6Y2Fz'@; put 'ZSJmaXRoZWlnaHQiOmNhc2UiY29tbWVudHNsYXlvdXQiOmNhc2Uiem9vbSI6Y2FzZSJsZWZ0dG9yaWdodCI6Y2FzZSJncmlkbGluZXMiOmNhc2UiYWxsb3dzb3J0IjpjYXNlImFsbG93ZmlsdGVyIjpjYXNlImFsbG93aW5zZXJ0cm93cyI6Y2FzZSJhbGxvd2RlbGV0ZXJvd3MiOmNhc2UiYWxs'@; put 'b3dpbnNlcnRjb2xzIjpjYXNlImFsbG93ZGVsZXRlY29scyI6Y2FzZSJhbGxvd2luc2VydGh5cGVybGlua3MiOmNhc2UiYWxsb3dmb3JtYXRjZWxscyI6Y2FzZSJhbGxvd3NpemVjb2xzIjpjYXNlImFsbG93c2l6ZXJvd3MiOmNhc2UidGFiY29sb3JpbmRleCI6Y2FzZSJkb25vdGRpc3BsYXlo'@; put 'ZWFkaW5ncyI6Y2FzZSJzaG93cGFnZWxheW91dHpvb20iOmNhc2UiYmxhY2thbmR3aGl0ZSI6Y2FzZSJkb25vdGRpc3BsYXl6ZXJvcyI6Y2FzZSJkaXNwbGF5cGFnZWJyZWFrIjpjYXNlInJvd2NvbGhlYWRpbmdzIjpjYXNlImRvbm90ZGlzcGxheW91dGxpbmUiOmNhc2Uibm9vcmllbnRhdGlv'@; put 'biI6Y2FzZSJhbGxvd3VzZXBpdm90dGFibGVzIjpjYXNlInplcm9oZWlnaHQiOmNhc2Uidmlld2FibGVyYW5nZSI6Y2FzZSJzZWxlY3Rpb24iOmNhc2UicHJvdGVjdGNvbnRlbnRzIjpicmVhaztjYXNlIm5vc3VtbWFyeXJvd3NiZWxvd2RldGFpbCI6eFsiIW91dGxpbmUiXXx8KHhbIiFvdXRs'@; put 'aW5lIl09e30pLHhbIiFvdXRsaW5lIl0uYWJvdmU9ITA7YnJlYWs7Y2FzZSJub3N1bW1hcnljb2x1bW5zcmlnaHRkZXRhaWwiOnhbIiFvdXRsaW5lIl18fCh4WyIhb3V0bGluZSJdPXt9KSx4WyIhb3V0bGluZSJdLmxlZnQ9ITA7YnJlYWs7ZGVmYXVsdDpMZT0hMX1icmVhaztjYXNlInBpdm90'@; put 'dGFibGUiOmNhc2UicGl2b3RjYWNoZSI6c3dpdGNoKGZbM10pe2Nhc2UiaW1tZWRpYXRlaXRlbXNvbmRyb3AiOmNhc2Uic2hvd3BhZ2VtdWx0aXBsZWl0ZW1sYWJlbCI6Y2FzZSJjb21wYWN0cm93aW5kZW50IjpjYXNlImxvY2F0aW9uIjpjYXNlInBpdm90ZmllbGQiOmNhc2Uib3JpZW50YXRp'@; put 'b24iOmNhc2UibGF5b3V0Zm9ybSI6Y2FzZSJsYXlvdXRzdWJ0b3RhbGxvY2F0aW9uIjpjYXNlImxheW91dGNvbXBhY3Ryb3ciOmNhc2UicG9zaXRpb24iOmNhc2UicGl2b3RpdGVtIjpjYXNlImRhdGF0eXBlIjpjYXNlImRhdGFmaWVsZCI6Y2FzZSJzb3VyY2VuYW1lIjpjYXNlInBhcmVudGZp'@; put 'ZWxkIjpjYXNlInB0bGluZWl0ZW1zIjpjYXNlInB0bGluZWl0ZW0iOmNhc2UiY291bnRvZnNhbWVpdGVtcyI6Y2FzZSJpdGVtIjpjYXNlIml0ZW10eXBlIjpjYXNlInB0c291cmNlIjpjYXNlImNhY2hlaW5kZXgiOmNhc2UiY29uc29saWRhdGlvbnJlZmVyZW5jZSI6Y2FzZSJmaWxlbmFtZSI6'@; put 'Y2FzZSJyZWZlcmVuY2UiOmNhc2Uibm9jb2x1bW5ncmFuZCI6Y2FzZSJub3Jvd2dyYW5kIjpjYXNlImJsYW5rbGluZWFmdGVyaXRlbXMiOmNhc2UiaGlkZGVuIjpjYXNlInN1YnRvdGFsIjpjYXNlImJhc2VmaWVsZCI6Y2FzZSJtYXBjaGlsZGl0ZW1zIjpjYXNlImZ1bmN0aW9uIjpjYXNlInJl'@; put 'ZnJlc2hvbmZpbGVvcGVuIjpjYXNlInByaW50c2V0dGl0bGVzIjpjYXNlIm1lcmdlbGFiZWxzIjpjYXNlImRlZmF1bHR2ZXJzaW9uIjpjYXNlInJlZnJlc2huYW1lIjpjYXNlInJlZnJlc2hkYXRlIjpjYXNlInJlZnJlc2hkYXRlY29weSI6Y2FzZSJ2ZXJzaW9ubGFzdHJlZnJlc2giOmNhc2Ui'@; put 'dmVyc2lvbmxhc3R1cGRhdGUiOmNhc2UidmVyc2lvbnVwZGF0ZWFibGVtaW4iOmNhc2UidmVyc2lvbnJlZnJlc2hhYmxlbWluIjpjYXNlImNhbGN1bGF0aW9uIjpicmVhaztkZWZhdWx0OkxlPSExfWJyZWFrO2Nhc2UicGFnZWJyZWFrcyI6c3dpdGNoKGZbM10pe2Nhc2UiY29sYnJlYWtzIjpj'@; put 'YXNlImNvbGJyZWFrIjpjYXNlInJvd2JyZWFrcyI6Y2FzZSJyb3dicmVhayI6Y2FzZSJjb2xzdGFydCI6Y2FzZSJjb2xlbmQiOmNhc2Uicm93ZW5kIjpicmVhaztkZWZhdWx0OkxlPSExfWJyZWFrO2Nhc2UiYXV0b2ZpbHRlciI6c3dpdGNoKGZbM10pe2Nhc2UiYXV0b2ZpbHRlcmNvbHVtbiI6'@; put 'Y2FzZSJhdXRvZmlsdGVyY29uZGl0aW9uIjpjYXNlImF1dG9maWx0ZXJhbmQiOmNhc2UiYXV0b2ZpbHRlcm9yIjpicmVhaztkZWZhdWx0OkxlPSExfWJyZWFrO2Nhc2UicXVlcnl0YWJsZSI6c3dpdGNoKGZbM10pe2Nhc2UiaWQiOmNhc2UiYXV0b2Zvcm1hdGZvbnQiOmNhc2UiYXV0b2Zvcm1h'@; put 'dHBhdHRlcm4iOmNhc2UicXVlcnlzb3VyY2UiOmNhc2UicXVlcnl0eXBlIjpjYXNlImVuYWJsZXJlZGlyZWN0aW9ucyI6Y2FzZSJyZWZyZXNoZWRpbnhsOSI6Y2FzZSJ1cmxzdHJpbmciOmNhc2UiaHRtbHRhYmxlcyI6Y2FzZSJjb25uZWN0aW9uIjpjYXNlImNvbW1hbmR0ZXh0IjpjYXNlInJl'@; put 'ZnJlc2hpbmZvIjpjYXNlIm5vdGl0bGVzIjpjYXNlIm5leHRpZCI6Y2FzZSJjb2x1bW5pbmZvIjpjYXNlIm92ZXJ3cml0ZWNlbGxzIjpjYXNlImRvbm90cHJvbXB0Zm9yZmlsZSI6Y2FzZSJ0ZXh0d2l6YXJkc2V0dGluZ3MiOmNhc2Uic291cmNlIjpjYXNlIm51bWJlciI6Y2FzZSJkZWNpbWFs'@; put 'IjpjYXNlInRob3VzYW5kc2VwYXJhdG9yIjpjYXNlInRyYWlsaW5nbWludXNudW1iZXJzIjpjYXNlImZvcm1hdHNldHRpbmdzIjpjYXNlImZpZWxkdHlwZSI6Y2FzZSJkZWxpbWl0ZXJzIjpjYXNlInRhYiI6Y2FzZSJjb21tYSI6Y2FzZSJhdXRvZm9ybWF0bmFtZSI6Y2FzZSJ2ZXJzaW9ubGFz'@; put 'dGVkaXQiOmNhc2UidmVyc2lvbmxhc3RyZWZyZXNoIjpicmVhaztkZWZhdWx0OkxlPSExfWJyZWFrO2Nhc2UiZGF0YXZhbGlkYXRpb24iOnN3aXRjaChmWzNdKXtjYXNlInJhbmdlIjpjYXNlInR5cGUiOmNhc2UibWluIjpjYXNlIm1heCI6Y2FzZSJzb3J0IjpjYXNlImRlc2NlbmRpbmciOmNh'@; put 'c2Uib3JkZXIiOmNhc2UiY2FzZXNlbnNpdGl2ZSI6Y2FzZSJ2YWx1ZSI6Y2FzZSJlcnJvcnN0eWxlIjpjYXNlImVycm9ybWVzc2FnZSI6Y2FzZSJlcnJvcnRpdGxlIjpjYXNlImlucHV0bWVzc2FnZSI6Y2FzZSJpbnB1dHRpdGxlIjpjYXNlImNvbWJvaGlkZSI6Y2FzZSJpbnB1dGhpZGUiOmNh'@; put 'c2UiY29uZGl0aW9uIjpjYXNlInF1YWxpZmllciI6Y2FzZSJ1c2VibGFuayI6Y2FzZSJ2YWx1ZTEiOmNhc2UidmFsdWUyIjpjYXNlImZvcm1hdCI6Y2FzZSJjZWxscmFuZ2VsaXN0IjpicmVhaztkZWZhdWx0OkxlPSExfWJyZWFrO2Nhc2Uic29ydGluZyI6Y2FzZSJjb25kaXRpb25hbGZvcm1h'@; put 'dHRpbmciOnN3aXRjaChmWzNdKXtjYXNlInJhbmdlIjpjYXNlInR5cGUiOmNhc2UibWluIjpjYXNlIm1heCI6Y2FzZSJzb3J0IjpjYXNlImRlc2NlbmRpbmciOmNhc2Uib3JkZXIiOmNhc2UiY2FzZXNlbnNpdGl2ZSI6Y2FzZSJ2YWx1ZSI6Y2FzZSJlcnJvcnN0eWxlIjpjYXNlImVycm9ybWVz'@; put 'c2FnZSI6Y2FzZSJlcnJvcnRpdGxlIjpjYXNlImNlbGxyYW5nZWxpc3QiOmNhc2UiaW5wdXRtZXNzYWdlIjpjYXNlImlucHV0dGl0bGUiOmNhc2UiY29tYm9oaWRlIjpjYXNlImlucHV0aGlkZSI6Y2FzZSJjb25kaXRpb24iOmNhc2UicXVhbGlmaWVyIjpjYXNlInVzZWJsYW5rIjpjYXNlInZh'@; put 'bHVlMSI6Y2FzZSJ2YWx1ZTIiOmNhc2UiZm9ybWF0IjpicmVhaztkZWZhdWx0OkxlPSExfWJyZWFrO2Nhc2UibWFwaW5mbyI6Y2FzZSJzY2hlbWEiOmNhc2UiZGF0YSI6c3dpdGNoKGZbM10pe2Nhc2UibWFwIjpjYXNlImVudHJ5IjpjYXNlInJhbmdlIjpjYXNlInhwYXRoIjpjYXNlImZpZWxk'@; put 'IjpjYXNlInhzZHR5cGUiOmNhc2UiZmlsdGVyb24iOmNhc2UiYWdncmVnYXRlIjpjYXNlImVsZW1lbnR0eXBlIjpjYXNlImF0dHJpYnV0ZXR5cGUiOmNhc2Uic2NoZW1hIjpjYXNlImVsZW1lbnQiOmNhc2UiY29tcGxleHR5cGUiOmNhc2UiZGF0YXR5cGUiOmNhc2UiYWxsIjpjYXNlImF0dHJp'@; put 'YnV0ZSI6Y2FzZSJleHRlbmRzIjpjYXNlInJvdyI6YnJlYWs7ZGVmYXVsdDpMZT0hMX1icmVhaztjYXNlInNtYXJ0dGFncyI6YnJlYWs7ZGVmYXVsdDpMZT0hMX1pZihMZXx8ZlszXS5tYXRjaCgvIVxbQ0RBVEEvKSlicmVhaztpZighY1tjLmxlbmd0aC0xXVsxXSl0aHJvdyJVbnJlY29nbml6'@; put 'ZWQgdGFnOiAiK2ZbM10rInwiK2Muam9pbigifCIpO2lmKCJjdXN0b21kb2N1bWVudHByb3BlcnRpZXMiPT09Y1tjLmxlbmd0aC0xXVswXSl7aWYoIi8+Ij09PWZbMF0uc2xpY2UoLTIpKWJyZWFrOyIvIj09PWZbMV0/WHAoWCxqLGVlLGEuc2xpY2UoYixmLmluZGV4KSk6KGVlPWYsYj1mLmlu'@; put 'ZGV4K2ZbMF0ubGVuZ3RoKTticmVha31pZihyLldURil0aHJvdyJVbnJlY29nbml6ZWQgdGFnOiAiK2ZbM10rInwiK2Muam9pbigifCIpfXZhciBvZT17fTtyZXR1cm4hci5ib29rU2hlZXRzJiYhci5ib29rUHJvcHMmJihvZS5TaGVldHM9bCksb2UuU2hlZXROYW1lcz1oLG9lLldvcmtib29r'@; put 'PU8sb2UuU1NGPU1lKHBlKSxvZS5Qcm9wcz1WLG9lLkN1c3Rwcm9wcz1YLG9lfWZ1bmN0aW9uIFVuKGUsdCl7c3dpdGNoKCRuKHQ9dHx8e30pLHQudHlwZXx8ImJhc2U2NCIpe2Nhc2UiYmFzZTY0IjpyZXR1cm4gTW4oT3IoZSksdCk7Y2FzZSJiaW5hcnkiOmNhc2UiYnVmZmVyIjpjYXNlImZp'@; put 'bGUiOnJldHVybiBNbihlLHQpO2Nhc2UiYXJyYXkiOnJldHVybiBNbih3dChlKSx0KX19dmFyIGZtPVs2MCwxMDg0LDIwNjYsMjE2NSwyMTc1XTtmdW5jdGlvbiBjbShlLHQscixhLG4pe3ZhciBpPWEscz1bXSxmPXIuc2xpY2Uoci5sLHIubCtpKTtpZihuJiZuLmVuYyYmbi5lbmMuaW5zaXR1'@; put 'JiZmLmxlbmd0aD4wKXN3aXRjaChlKXtjYXNlIDk6Y2FzZSA1MjE6Y2FzZSAxMDMzOmNhc2UgMjA1NzpjYXNlIDQ3OmNhc2UgNDA1OmNhc2UgMjI1OmNhc2UgNDA2OmNhc2UgMzEyOmNhc2UgNDA0OmNhc2UgMTA6Y2FzZSAxMzM6YnJlYWs7ZGVmYXVsdDpuLmVuYy5pbnNpdHUoZil9cy5wdXNo'@; put 'KGYpLHIubCs9aTtmb3IodmFyIGM9dXQocixyLmwpLG89V25bY10sbD0wO251bGwhPW8mJmZtLmluZGV4T2YoYyk+LTE7KWk9dXQocixyLmwrMiksbD1yLmwrNCwyMDY2PT1jP2wrPTQ6KDIxNjU9PWN8fDIxNzU9PWMpJiYobCs9MTIpLGY9ci5zbGljZShsLHIubCs0K2kpLHMucHVzaChmKSxy'@; put 'LmwrPTQraSxvPVduW2M9dXQocixyLmwpXTt2YXIgaD1mcihzKTtocihoLDApO3ZhciB4PTA7aC5sZW5zPVtdO2Zvcih2YXIgZD0wO2Q8cy5sZW5ndGg7KytkKWgubGVucy5wdXNoKHgpLHgrPXNbZF0ubGVuZ3RoO2lmKGgubGVuZ3RoPGEpdGhyb3ciWExTIFJlY29yZCAweCIrZS50b1N0cmlu'@; put 'ZygxNikrIiBUcnVuY2F0ZWQ6ICIraC5sZW5ndGgrIiA8ICIrYTtyZXR1cm4gdC5mKGgsaC5sZW5ndGgsbil9ZnVuY3Rpb24gaXQoZSx0LHIpe2lmKCJ6IiE9PWUudCYmZS5YRil7dmFyIGE9MDt0cnl7YT1lLnp8fGUuWEYubnVtRm10SWR8fDAsdC5jZWxsTkYmJihlLno9cGVbYV0pfWNhdGNo'@; put 'KGkpe2lmKHQuV1RGKXRocm93IGl9aWYoIXR8fCExIT09dC5jZWxsVGV4dCl0cnl7ZS53PSJlIj09PWUudD9lLnd8fHh0W2Uudl06MD09PWF8fCJHZW5lcmFsIj09YT8ibiI9PT1lLnQ/KDB8ZS52KT09PWUudj9lLnYudG9TdHJpbmcoMTApOmthKGUudik6TnQoZS52KTpScihhLGUudix7ZGF0'@; put 'ZTE5MDQ6ISFyLGRhdGVORjp0JiZ0LmRhdGVORn0pfWNhdGNoKGkpe2lmKHQuV1RGKXRocm93IGl9aWYodC5jZWxsRGF0ZXMmJmEmJiJuIj09ZS50JiZidChwZVthXXx8U3RyaW5nKGEpKSl7dmFyIG49a3QoZS52KTtuJiYoZS50PSJkIixlLnY9bmV3IERhdGUobi55LG4ubS0xLG4uZCxuLkgs'@; put 'bi5NLG4uUyxuLnUpKX19fWZ1bmN0aW9uIE8wKGUsdCxyKXtyZXR1cm57djplLGl4ZmU6dCx0OnJ9fXZhciB6YT17U0k6ImUwODU5ZmYyZjk0ZjY4MTBhYjkxMDgwMDJiMjdiM2Q5IixEU0k6IjAyZDVjZGQ1OWMyZTFiMTA5Mzk3MDgwMDJiMmNmOWFlIixVREk6IjA1ZDVjZGQ1OWMyZTFiMTA5'@; put 'Mzk3MDgwMDJiMmNmOWFlIn07ZnVuY3Rpb24gS2YoZSx0KXt2YXIgcixhLG4saTtpZih0fHwodD17fSksJG4odCkscjAoKSx0LmNvZGVwYWdlJiZlMCh0LmNvZGVwYWdlKSxlLkZ1bGxQYXRocyl7aWYodmUuZmluZChlLCIvZW5jcnlwdGlvbiIpKXRocm93IG5ldyBFcnJvcigiRmlsZSBpcyBw'@; put 'YXNzd29yZC1wcm90ZWN0ZWQiKTtyPXZlLmZpbmQoZSwiIUNvbXBPYmoiKSxhPXZlLmZpbmQoZSwiL1dvcmtib29rIil8fHZlLmZpbmQoZSwiL0Jvb2siKX1lbHNle3N3aXRjaCh0LnR5cGUpe2Nhc2UiYmFzZTY0IjplPUlyKE9yKGUpKTticmVhaztjYXNlImJpbmFyeSI6ZT1JcihlKTticmVh'@; put 'aztjYXNlImJ1ZmZlciI6YnJlYWs7Y2FzZSJhcnJheSI6QXJyYXkuaXNBcnJheShlKXx8KGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSkpfWhyKGUsMCksYT17Y29udGVudDplfX1pZihyJiZmdW5jdGlvbiBzbShlKXt2YXIgdD17fSxyPWUuY29udGVudDtpZihyLmw9MjgsdC5BbnNp'@; put 'VXNlclR5cGU9ci5yZWFkX3NoaWZ0KDAsImxwc3RyLWFuc2kiKSx0LkFuc2lDbGlwYm9hcmRGb3JtYXQ9ZnVuY3Rpb24gcW8oZSl7cmV0dXJuIGxzKGUsMSl9KHIpLHIubGVuZ3RoLXIubDw9NClyZXR1cm4gdDt2YXIgYT1yLnJlYWRfc2hpZnQoNCk7aWYoMD09YXx8YT40MHx8KHIubC09NCx0'@; put 'LlJlc2VydmVkMT1yLnJlYWRfc2hpZnQoMCwibHBzdHItYW5zaSIpLHIubGVuZ3RoLXIubDw9NCl8fDE5MDc1MDU2NTIhPT0oYT1yLnJlYWRfc2hpZnQoNCkpfHwodC5Vbmljb2RlQ2xpcGJvYXJkRm9ybWF0PWZ1bmN0aW9uIFpvKGUpe3JldHVybiBscyhlLDIpfShyKSwwPT0oYT1yLnJlYWRf'@; put 'c2hpZnQoNCkpfHxhPjQwKSlyZXR1cm4gdDtyLmwtPTQsdC5SZXNlcnZlZDI9ci5yZWFkX3NoaWZ0KDAsImxwd3N0ciIpfShyKSx0LmJvb2tQcm9wcyYmIXQuYm9va1NoZWV0cyluPXt9O2Vsc2V7dmFyIHM9U2U/ImJ1ZmZlciI6ImFycmF5IjtpZihhJiZhLmNvbnRlbnQpbj1mdW5jdGlvbiBv'@; put 'bShlLHQpe3ZhciByPXtvcHRzOnt9fSxhPXt9O251bGwhPXplJiZudWxsPT10LmRlbnNlJiYodC5kZW5zZT16ZSk7dmFyIGgsZCx1LHAsZyxOLG49dC5kZW5zZT9bXTp7fSxpPXt9LHM9e30sZj1udWxsLGM9W10sbz0iIixsPXt9LHg9IiIsaz17fSxUPVtdLE09W10sST1bXSx5PXtTaGVldHM6'@; put 'W10sV0JQcm9wczp7ZGF0ZTE5MDQ6ITF9LFZpZXdzOlt7fV19LFA9e30sUj1mdW5jdGlvbih5ZSl7cmV0dXJuIHllPDg/VnRbeWVdOnllPDY0JiZJW3llLThdfHxWdFt5ZV19LFg9ZnVuY3Rpb24oeWUsWmUsS3Ipe2lmKCEoSz4xfHxLci5zaGVldFJvd3MmJnllLnI+PUtyLnNoZWV0Um93cykp'@; put 'e2lmKEtyLmNlbGxTdHlsZXMmJlplLlhGJiZaZS5YRi5kYXRhJiZmdW5jdGlvbih5ZSxaZSxLcil7dmFyIHF0LHNyPVplLlhGLmRhdGE7c3ImJnNyLnBhdHRlcm5UeXBlJiZLciYmS3IuY2VsbFN0eWxlcyYmKFplLnM9e30sWmUucy5wYXR0ZXJuVHlwZT1zci5wYXR0ZXJuVHlwZSwocXQ9YmEo'@; put 'Uihzci5pY3ZGb3JlKSkpJiYoWmUucy5mZ0NvbG9yPXtyZ2I6cXR9KSwocXQ9YmEoUihzci5pY3ZCYWNrKSkpJiYoWmUucy5iZ0NvbG9yPXtyZ2I6cXR9KSl9KDAsWmUsS3IpLGRlbGV0ZSBaZS5peGZlLGRlbGV0ZSBaZS5YRixoPXllLHg9Z2UoeWUpLCghc3x8IXMuc3x8IXMuZSkmJihzPXtz'@; put 'OntyOjAsYzowfSxlOntyOjAsYzowfX0pLHllLnI8cy5zLnImJihzLnMucj15ZS5yKSx5ZS5jPHMucy5jJiYocy5zLmM9eWUuYykseWUucisxPnMuZS5yJiYocy5lLnI9eWUucisxKSx5ZS5jKzE+cy5lLmMmJihzLmUuYz15ZS5jKzEpLEtyLmNlbGxGb3JtdWxhJiZaZS5mKWZvcih2YXIgc3I9'@; put 'MDtzcjxULmxlbmd0aDsrK3NyKWlmKCEoVFtzcl1bMF0ucy5jPnllLmN8fFRbc3JdWzBdLnMucj55ZS5yfHxUW3NyXVswXS5lLmM8eWUuY3x8VFtzcl1bMF0uZS5yPHllLnIpKXtaZS5GPXdlKFRbc3JdWzBdKSwoVFtzcl1bMF0ucy5jIT15ZS5jfHxUW3NyXVswXS5zLnIhPXllLnIpJiZkZWxl'@; put 'dGUgWmUuZixaZS5mJiYoWmUuZj0iIitrcihUW3NyXVsxXSwwLHllLGNlLGIpKTticmVha31Lci5kZW5zZT8oblt5ZS5yXXx8KG5beWUucl09W10pLG5beWUucl1beWUuY109WmUpOm5beF09WmV9fSxiPXtlbmM6ITEsc2JjY2g6MCxzbmFtZXM6W10sc2hhcmVkZjprLGFycmF5ZjpULHJydGFi'@; put 'aWQ6W10sbGFzdHVzZXI6IiIsYmlmZjo4LGNvZGVwYWdlOjAsd2lubG9ja2VkOjAsY2VsbFN0eWxlczohIXQmJiEhdC5jZWxsU3R5bGVzLFdURjohIXQmJiEhdC53dGZ9O3QucGFzc3dvcmQmJihiLnBhc3N3b3JkPXQucGFzc3dvcmQpO3ZhciBlZSxsZT1bXSxyZT1bXSxkZT1bXSx1ZT1bXSxG'@; put 'ZT0hMSxjZT1bXTtjZS5TaGVldE5hbWVzPWIuc25hbWVzLGNlLnNoYXJlZGY9Yi5zaGFyZWRmLGNlLmFycmF5Zj1iLmFycmF5ZixjZS5uYW1lcz1bXSxjZS5YVEk9W107dmFyIEQseGU9MCxLPTAsQz0wLFU9W10sTz1bXTtiLmNvZGVwYWdlPTEyMDAsTXIoMTIwMCk7Zm9yKHZhciBqPSExO2Uu'@; put 'bDxlLmxlbmd0aC0xOyl7dmFyIHNlPWUubCxaPWUucmVhZF9zaGlmdCgyKTtpZigwPT09WiYmMTA9PT14ZSlicmVhazt2YXIgUT1lLmw9PT1lLmxlbmd0aD8wOmUucmVhZF9zaGlmdCgyKSxZPVduW1pdO2lmKFkmJlkuZil7aWYodC5ib29rU2hlZXRzJiYxMzM9PT14ZSYmMTMzIT09WilicmVh'@; put 'aztpZih4ZT1aLDI9PT1ZLnJ8fDEyPT1ZLnIpe3ZhciBFZT1lLnJlYWRfc2hpZnQoMik7aWYoUS09MiwhYi5lbmMmJkVlIT09WiYmKCgyNTUmRWUpPDw4fEVlPj44KSE9PVopdGhyb3cgbmV3IEVycm9yKCJydCBtaXNtYXRjaDogIitFZSsiIT0iK1opOzEyPT1ZLnImJihlLmwrPTEwLFEtPTEw'@; put 'KX12YXIgQT17fTtpZihBPTEwPT09Wj9ZLmYoZSxRLGIpOmNtKFosWSxlLFEsYiksMD09SyYmLTE9PT1bOSw1MjEsMTAzMywyMDU3XS5pbmRleE9mKHhlKSljb250aW51ZTtzd2l0Y2goWil7Y2FzZSAzNDpyLm9wdHMuRGF0ZTE5MDQ9eS5XQlByb3BzLmRhdGUxOTA0PUE7YnJlYWs7Y2FzZSAx'@; put 'MzQ6ci5vcHRzLldyaXRlUHJvdGVjdD0hMDticmVhaztjYXNlIDQ3OmlmKGIuZW5jfHwoZS5sPTApLGIuZW5jPUEsIXQucGFzc3dvcmQpdGhyb3cgbmV3IEVycm9yKCJGaWxlIGlzIHBhc3N3b3JkLXByb3RlY3RlZCIpO2lmKG51bGw9PUEudmFsaWQpdGhyb3cgbmV3IEVycm9yKCJFbmNyeXB0'@; put 'aW9uIHNjaGVtZSB1bnN1cHBvcnRlZCIpO2lmKCFBLnZhbGlkKXRocm93IG5ldyBFcnJvcigiUGFzc3dvcmQgaXMgaW5jb3JyZWN0Iik7YnJlYWs7Y2FzZSA5MjpiLmxhc3R1c2VyPUE7YnJlYWs7Y2FzZSA2Njp2YXIgUGU9TnVtYmVyKEEpO3N3aXRjaChQZSl7Y2FzZSAyMTAxMDpQZT0xMjAw'@; put 'O2JyZWFrO2Nhc2UgMzI3Njg6UGU9MWU0O2JyZWFrO2Nhc2UgMzI3Njk6UGU9MTI1Mn1NcihiLmNvZGVwYWdlPVBlKSxqPSEwO2JyZWFrO2Nhc2UgMzE3OmIucnJ0YWJpZD1BO2JyZWFrO2Nhc2UgMjU6Yi53aW5sb2NrZWQ9QTticmVhaztjYXNlIDQzOTpyLm9wdHMuUmVmcmVzaEFsbD1BO2Jy'@; put 'ZWFrO2Nhc2UgMTI6ci5vcHRzLkNhbGNDb3VudD1BO2JyZWFrO2Nhc2UgMTY6ci5vcHRzLkNhbGNEZWx0YT1BO2JyZWFrO2Nhc2UgMTc6ci5vcHRzLkNhbGNJdGVyPUE7YnJlYWs7Y2FzZSAxMzpyLm9wdHMuQ2FsY01vZGU9QTticmVhaztjYXNlIDE0OnIub3B0cy5DYWxjUHJlY2lzaW9uPUE7'@; put 'YnJlYWs7Y2FzZSA5NTpyLm9wdHMuQ2FsY1NhdmVSZWNhbGM9QTticmVhaztjYXNlIDE1OmIuQ2FsY1JlZk1vZGU9QTticmVhaztjYXNlIDIyMTE6ci5vcHRzLkZ1bGxDYWxjPUE7YnJlYWs7Y2FzZSAxMjk6QS5mRGlhbG9nJiYoblsiIXR5cGUiXT0iZGlhbG9nIiksQS5mQmVsb3d8fCgoblsi'@; put 'IW91dGxpbmUiXXx8KG5bIiFvdXRsaW5lIl09e30pKS5hYm92ZT0hMCksQS5mUmlnaHR8fCgoblsiIW91dGxpbmUiXXx8KG5bIiFvdXRsaW5lIl09e30pKS5sZWZ0PSEwKTticmVhaztjYXNlIDIyNDpNLnB1c2goQSk7YnJlYWs7Y2FzZSA0MzA6Y2UucHVzaChbQV0pLGNlW2NlLmxlbmd0aC0x'@; put 'XS5YVEk9W107YnJlYWs7Y2FzZSAzNTpjYXNlIDU0NzpjZVtjZS5sZW5ndGgtMV0ucHVzaChBKTticmVhaztjYXNlIDI0OmNhc2UgNTM2OkQ9e05hbWU6QS5OYW1lLFJlZjprcihBLnJnY2UsMCxudWxsLGNlLGIpfSxBLml0YWI+MCYmKEQuU2hlZXQ9QS5pdGFiLTEpLGNlLm5hbWVzLnB1c2go'@; put 'RCksY2VbMF18fChjZVswXT1bXSxjZVswXS5YVEk9W10pLGNlW2NlLmxlbmd0aC0xXS5wdXNoKEEpLCJfeGxubS5fRmlsdGVyRGF0YWJhc2UiPT1BLk5hbWUmJkEuaXRhYj4wJiZBLnJnY2UmJkEucmdjZVswXSYmQS5yZ2NlWzBdWzBdJiYiUHRnQXJlYTNkIj09QS5yZ2NlWzBdWzBdWzBdJiYo'@; put 'T1tBLml0YWItMV09e3JlZjp3ZShBLnJnY2VbMF1bMF1bMV1bMl0pfSk7YnJlYWs7Y2FzZSAyMjpiLkV4dGVybkNvdW50PUE7YnJlYWs7Y2FzZSAyMzowPT1jZS5sZW5ndGgmJihjZVswXT1bXSxjZVswXS5YVEk9W10pLGNlW2NlLmxlbmd0aC0xXS5YVEk9Y2VbY2UubGVuZ3RoLTFdLlhUSS5j'@; put 'b25jYXQoQSksY2UuWFRJPWNlLlhUSS5jb25jYXQoQSk7YnJlYWs7Y2FzZSAyMTk2OmlmKGIuYmlmZjw4KWJyZWFrO251bGwhPUQmJihELkNvbW1lbnQ9QVsxXSk7YnJlYWs7Y2FzZSAxODpuWyIhcHJvdGVjdCJdPUE7YnJlYWs7Y2FzZSAxOTowIT09QSYmYi5XVEYmJmNvbnNvbGUuZXJyb3Io'@; put 'IlBhc3N3b3JkIHZlcmlmaWVyOiAiK0EpO2JyZWFrO2Nhc2UgMTMzOmlbQS5wb3NdPUEsYi5zbmFtZXMucHVzaChBLm5hbWUpO2JyZWFrO2Nhc2UgMTA6aWYoLS1LKWJyZWFrO2lmKHMuZSl7aWYocy5lLnI+MCYmcy5lLmM+MCl7aWYocy5lLnItLSxzLmUuYy0tLG5bIiFyZWYiXT13ZShzKSx0'@; put 'LnNoZWV0Um93cyYmdC5zaGVldFJvd3M8PXMuZS5yKXt2YXIgQWU9cy5lLnI7cy5lLnI9dC5zaGVldFJvd3MtMSxuWyIhZnVsbHJlZiJdPW5bIiFyZWYiXSxuWyIhcmVmIl09d2Uocykscy5lLnI9QWV9cy5lLnIrKyxzLmUuYysrfWxlLmxlbmd0aD4wJiYoblsiIW1lcmdlcyJdPWxlKSxyZS5s'@; put 'ZW5ndGg+MCYmKG5bIiFvYmplY3RzIl09cmUpLGRlLmxlbmd0aD4wJiYoblsiIWNvbHMiXT1kZSksdWUubGVuZ3RoPjAmJihuWyIhcm93cyJdPXVlKSx5LlNoZWV0cy5wdXNoKFApfSIiPT09bz9sPW46YVtvXT1uLG49dC5kZW5zZT9bXTp7fTticmVhaztjYXNlIDk6Y2FzZSA1MjE6Y2FzZSAx'@; put 'MDMzOmNhc2UgMjA1NzppZig4PT09Yi5iaWZmJiYoYi5iaWZmPXs5OjIsNTIxOjMsMTAzMzo0fVtaXXx8ezUxMjoyLDc2ODozLDEwMjQ6NCwxMjgwOjUsMTUzNjo4LDI6Miw3OjJ9W0EuQklGRlZlcl18fDgpLGIuYmlmZmd1ZXNzPTA9PUEuQklGRlZlciwwPT1BLkJJRkZWZXImJjQwOTY9PUEu'@; put 'ZHQmJihiLmJpZmY9NSxqPSEwLE1yKGIuY29kZXBhZ2U9Mjg1OTEpKSw4PT1iLmJpZmYmJjA9PUEuQklGRlZlciYmMTY9PUEuZHQmJihiLmJpZmY9MiksSysrKWJyZWFrO2lmKG49dC5kZW5zZT9bXTp7fSxiLmJpZmY8OCYmIWomJihqPSEwLE1yKGIuY29kZXBhZ2U9dC5jb2RlcGFnZXx8MTI1'@; put 'MikpLGIuYmlmZjw1fHwwPT1BLkJJRkZWZXImJjQwOTY9PUEuZHQpeyIiPT09byYmKG89IlNoZWV0MSIpLHM9e3M6e3I6MCxjOjB9LGU6e3I6MCxjOjB9fTt2YXIgTGU9e3BvczplLmwtUSxuYW1lOm99O2lbTGUucG9zXT1MZSxiLnNuYW1lcy5wdXNoKG8pfWVsc2Ugbz0oaVtzZV18fHtuYW1l'@; put 'OiIifSkubmFtZTszMj09QS5kdCYmKG5bIiF0eXBlIl09ImNoYXJ0IiksNjQ9PUEuZHQmJihuWyIhdHlwZSJdPSJtYWNybyIpLGxlPVtdLHJlPVtdLGIuYXJyYXlmPVQ9W10sZGU9W10sdWU9W10sRmU9ITEsUD17SGlkZGVuOihpW3NlXXx8e2hzOjB9KS5ocyxuYW1lOm99O2JyZWFrO2Nhc2Ug'@; put 'NTE1OmNhc2UgMzpjYXNlIDI6ImNoYXJ0Ij09blsiIXR5cGUiXSYmKHQuZGVuc2U/KG5bQS5yXXx8W10pW0EuY106bltnZSh7YzpBLmMscjpBLnJ9KV0pJiYrK0EuYyxnPXtpeGZlOkEuaXhmZSxYRjpNW0EuaXhmZV18fHt9LHY6QS52YWwsdDoibiJ9LEM+MCYmKGcuej1VW2cuaXhmZT4+OCY2'@; put 'M10pLGl0KGcsdCxyLm9wdHMuRGF0ZTE5MDQpLFgoe2M6QS5jLHI6QS5yfSxnLHQpO2JyZWFrO2Nhc2UgNTpjYXNlIDUxNzpnPXtpeGZlOkEuaXhmZSxYRjpNW0EuaXhmZV0sdjpBLnZhbCx0OkEudH0sQz4wJiYoZy56PVVbZy5peGZlPj44JjYzXSksaXQoZyx0LHIub3B0cy5EYXRlMTkwNCks'@; put 'WCh7YzpBLmMscjpBLnJ9LGcsdCk7YnJlYWs7Y2FzZSA2Mzg6Zz17aXhmZTpBLml4ZmUsWEY6TVtBLml4ZmVdLHY6QS5ya251bSx0OiJuIn0sQz4wJiYoZy56PVVbZy5peGZlPj44JjYzXSksaXQoZyx0LHIub3B0cy5EYXRlMTkwNCksWCh7YzpBLmMscjpBLnJ9LGcsdCk7YnJlYWs7Y2FzZSAx'@; put 'ODk6Zm9yKHZhciBDZT1BLmM7Q2U8PUEuQzsrK0NlKXt2YXIgb2U9QS5ya3JlY1tDZS1BLmNdWzBdO2c9e2l4ZmU6b2UsWEY6TVtvZV0sdjpBLnJrcmVjW0NlLUEuY11bMV0sdDoibiJ9LEM+MCYmKGcuej1VW2cuaXhmZT4+OCY2M10pLGl0KGcsdCxyLm9wdHMuRGF0ZTE5MDQpLFgoe2M6Q2Us'@; put 'cjpBLnJ9LGcsdCl9YnJlYWs7Y2FzZSA2OmNhc2UgNTE4OmNhc2UgMTAzMDppZigiU3RyaW5nIj09QS52YWwpe2Y9QTticmVha31pZigoZz1PMChBLnZhbCxBLmNlbGwuaXhmZSxBLnR0KSkuWEY9TVtnLml4ZmVdLHQuY2VsbEZvcm11bGEpe3ZhciBxZT1BLmZvcm11bGE7aWYocWUmJnFlWzBd'@; put 'JiZxZVswXVswXSYmIlB0Z0V4cCI9PXFlWzBdWzBdWzBdKXt2YXIganI9cWVbMF1bMF1bMV1bMF0sZnQ9cWVbMF1bMF1bMV1bMV0sdnQ9Z2Uoe3I6anIsYzpmdH0pO2tbdnRdP2cuZj0iIitrcihBLmZvcm11bGEsMCxBLmNlbGwsY2UsYik6Zy5GPSgodC5kZW5zZT8obltqcl18fFtdKVtmdF06'@; put 'blt2dF0pfHx7fSkuRn1lbHNlIGcuZj0iIitrcihBLmZvcm11bGEsMCxBLmNlbGwsY2UsYil9Qz4wJiYoZy56PVVbZy5peGZlPj44JjYzXSksaXQoZyx0LHIub3B0cy5EYXRlMTkwNCksWChBLmNlbGwsZyx0KSxmPUE7YnJlYWs7Y2FzZSA3OmNhc2UgNTE5OmlmKCFmKXRocm93IG5ldyBFcnJv'@; put 'cigiU3RyaW5nIHJlY29yZCBleHBlY3RzIEZvcm11bGEiKTtmLnZhbD1BLChnPU8wKEEsZi5jZWxsLml4ZmUsInMiKSkuWEY9TVtnLml4ZmVdLHQuY2VsbEZvcm11bGEmJihnLmY9IiIra3IoZi5mb3JtdWxhLDAsZi5jZWxsLGNlLGIpKSxDPjAmJihnLno9VVtnLml4ZmU+PjgmNjNdKSxpdChn'@; put 'LHQsci5vcHRzLkRhdGUxOTA0KSxYKGYuY2VsbCxnLHQpLGY9bnVsbDticmVhaztjYXNlIDMzOmNhc2UgNTQ1OlQucHVzaChBKTt2YXIgSmE9Z2UoQVswXS5zKTtpZihkPXQuZGVuc2U/KG5bQVswXS5zLnJdfHxbXSlbQVswXS5zLmNdOm5bSmFdLHQuY2VsbEZvcm11bGEmJmQpe2lmKCFmfHwh'@; put 'SmF8fCFkKWJyZWFrO2QuZj0iIitrcihBWzFdLDAsQVswXSxjZSxiKSxkLkY9d2UoQVswXSl9YnJlYWs7Y2FzZSAxMjEyOmlmKCF0LmNlbGxGb3JtdWxhKWJyZWFrO2lmKHgpe2lmKCFmKWJyZWFrO2tbZ2UoZi5jZWxsKV09QVswXSwoKGQ9dC5kZW5zZT8obltmLmNlbGwucl18fFtdKVtmLmNl'@; put 'bGwuY106bltnZShmLmNlbGwpXSl8fHt9KS5mPSIiK2tyKEFbMF0sMCxoLGNlLGIpfWJyZWFrO2Nhc2UgMjUzOmc9TzAoY1tBLmlzc3RdLnQsQS5peGZlLCJzIiksY1tBLmlzc3RdLmgmJihnLmg9Y1tBLmlzc3RdLmgpLGcuWEY9TVtnLml4ZmVdLEM+MCYmKGcuej1VW2cuaXhmZT4+OCY2M10p'@; put 'LGl0KGcsdCxyLm9wdHMuRGF0ZTE5MDQpLFgoe2M6QS5jLHI6QS5yfSxnLHQpO2JyZWFrO2Nhc2UgNTEzOnQuc2hlZXRTdHVicyYmKGc9e2l4ZmU6QS5peGZlLFhGOk1bQS5peGZlXSx0OiJ6In0sQz4wJiYoZy56PVVbZy5peGZlPj44JjYzXSksaXQoZyx0LHIub3B0cy5EYXRlMTkwNCksWCh7'@; put 'YzpBLmMscjpBLnJ9LGcsdCkpO2JyZWFrO2Nhc2UgMTkwOmlmKHQuc2hlZXRTdHVicylmb3IodmFyIE90PUEuYztPdDw9QS5DOysrT3Qpe3ZhciBMcj1BLml4ZmVbT3QtQS5jXTtnPXtpeGZlOkxyLFhGOk1bTHJdLHQ6InoifSxDPjAmJihnLno9VVtnLml4ZmU+PjgmNjNdKSxpdChnLHQsci5v'@; put 'cHRzLkRhdGUxOTA0KSxYKHtjOk90LHI6QS5yfSxnLHQpfWJyZWFrO2Nhc2UgMjE0OmNhc2UgNTE2OmNhc2UgNDooZz1PMChBLnZhbCxBLml4ZmUsInMiKSkuWEY9TVtnLml4ZmVdLEM+MCYmKGcuej1VW2cuaXhmZT4+OCY2M10pLGl0KGcsdCxyLm9wdHMuRGF0ZTE5MDQpLFgoe2M6QS5jLHI6'@; put 'QS5yfSxnLHQpO2JyZWFrO2Nhc2UgMDpjYXNlIDUxMjoxPT09SyYmKHM9QSk7YnJlYWs7Y2FzZSAyNTI6Yz1BO2JyZWFrO2Nhc2UgMTA1NDppZig0PT1iLmJpZmYpe1VbQysrXT1BWzFdO2Zvcih2YXIgcHQ9MDtwdDxDKzE2MyYmcGVbcHRdIT1BWzFdOysrcHQpO3B0Pj0xNjMmJmV0KEFbMV0s'@; put 'QysxNjMpfWVsc2UgZXQoQVsxXSxBWzBdKTticmVhaztjYXNlIDMwOlVbQysrXT1BO2Zvcih2YXIgSXQ9MDtJdDxDKzE2MyYmcGVbSXRdIT1BOysrSXQpO0l0Pj0xNjMmJmV0KEEsQysxNjMpO2JyZWFrO2Nhc2UgMjI5OmxlPWxlLmNvbmNhdChBKTticmVhaztjYXNlIDkzOnJlW0EuY21vWzBd'@; put 'XT1iLmxhc3RvYmo9QTticmVhaztjYXNlIDQzODpiLmxhc3RvYmouVHhPPUE7YnJlYWs7Y2FzZSAxMjc6Yi5sYXN0b2JqLkltRGF0YT1BO2JyZWFrO2Nhc2UgNDQwOmZvcihwPUFbMF0ucy5yO3A8PUFbMF0uZS5yOysrcClmb3IodT1BWzBdLnMuYzt1PD1BWzBdLmUuYzsrK3UpKGQ9dC5kZW5z'@; put 'ZT8obltwXXx8W10pW3VdOm5bZ2Uoe2M6dSxyOnB9KV0pJiYoZC5sPUFbMV0pO2JyZWFrO2Nhc2UgMjA0ODpmb3IocD1BWzBdLnMucjtwPD1BWzBdLmUucjsrK3ApZm9yKHU9QVswXS5zLmM7dTw9QVswXS5lLmM7Kyt1KShkPXQuZGVuc2U/KG5bcF18fFtdKVt1XTpuW2dlKHtjOnUscjpwfSld'@; put 'KSYmZC5sJiYoZC5sLlRvb2x0aXA9QVsxXSk7YnJlYWs7Y2FzZSAyODppZihiLmJpZmY8PTUmJmIuYmlmZj49MilicmVhaztkPXQuZGVuc2U/KG5bQVswXS5yXXx8W10pW0FbMF0uY106bltnZShBWzBdKV07dmFyIHFhPXJlW0FbMl1dO2R8fCh0LmRlbnNlPyhuW0FbMF0ucl18fChuW0FbMF0u'@; put 'cl09W10pLGQ9bltBWzBdLnJdW0FbMF0uY109e3Q6InoifSk6ZD1uW2dlKEFbMF0pXT17dDoieiJ9LHMuZS5yPU1hdGgubWF4KHMuZS5yLEFbMF0ucikscy5zLnI9TWF0aC5taW4ocy5zLnIsQVswXS5yKSxzLmUuYz1NYXRoLm1heChzLmUuYyxBWzBdLmMpLHMucy5jPU1hdGgubWluKHMucy5j'@; put 'LEFbMF0uYykpLGQuY3x8KGQuYz1bXSksZC5jLnB1c2goe2E6QVsxXSx0OnFhLlR4Ty50fSk7YnJlYWs7Y2FzZSAyMTczOnExKDAsQS5leHQpO2JyZWFrO2Nhc2UgMTI1OmlmKCFiLmNlbGxTdHlsZXMpYnJlYWs7Zm9yKDtBLmU+PUEuczspZGVbQS5lLS1dPXt3aWR0aDpBLncvMjU2LGxldmVs'@; put 'OkEubGV2ZWx8fDAsaGlkZGVuOiEhKDEmQS5mbGFncyl9LEZlfHwoRmU9ITAsQW4oQS53LzI1NikpLEt0KGRlW0EuZSsxXSk7YnJlYWs7Y2FzZSA1MjA6dmFyIHlyPXt9O251bGwhPUEubGV2ZWwmJih1ZVtBLnJdPXlyLHlyLmxldmVsPUEubGV2ZWwpLEEuaGlkZGVuJiYodWVbQS5yXT15cix5'@; put 'ci5oaWRkZW49ITApLEEuaHB0JiYodWVbQS5yXT15cix5ci5ocHQ9QS5ocHQseXIuaHB4PW9hKEEuaHB0KSk7YnJlYWs7Y2FzZSAzODpjYXNlIDM5OmNhc2UgNDA6Y2FzZSA0MTpuWyIhbWFyZ2lucyJdfHxZdChuWyIhbWFyZ2lucyJdPXt9KSxuWyIhbWFyZ2lucyJdW3szODoibGVmdCIsMzk6'@; put 'InJpZ2h0Iiw0MDoidG9wIiw0MToiYm90dG9tIn1bWl1dPUE7YnJlYWs7Y2FzZSAxNjE6blsiIW1hcmdpbnMiXXx8WXQoblsiIW1hcmdpbnMiXT17fSksblsiIW1hcmdpbnMiXS5oZWFkZXI9QS5oZWFkZXIsblsiIW1hcmdpbnMiXS5mb290ZXI9QS5mb290ZXI7YnJlYWs7Y2FzZSA1NzQ6QS5S'@; put 'VEwmJih5LlZpZXdzWzBdLlJUTD0hMCk7YnJlYWs7Y2FzZSAxNDY6ST1BO2JyZWFrO2Nhc2UgMjE5ODplZT1BO2JyZWFrO2Nhc2UgMTQwOk49QTticmVhaztjYXNlIDQ0MjpvP1AuQ29kZU5hbWU9QXx8UC5uYW1lOnkuV0JQcm9wcy5Db2RlTmFtZT1BfHwiVGhpc1dvcmtib29rIn19ZWxzZSBZ'@; put 'fHxjb25zb2xlLmVycm9yKCJNaXNzaW5nIEluZm8gZm9yIFhMUyBSZWNvcmQgMHgiK1oudG9TdHJpbmcoMTYpKSxlLmwrPVF9cmV0dXJuIHIuU2hlZXROYW1lcz0kZShpKS5zb3J0KGZ1bmN0aW9uKGN0LHllKXtyZXR1cm4gTnVtYmVyKGN0KS1OdW1iZXIoeWUpfSkubWFwKGZ1bmN0aW9uKGN0'@; put 'KXtyZXR1cm4gaVtjdF0ubmFtZX0pLHQuYm9va1NoZWV0c3x8KHIuU2hlZXRzPWEpLCFyLlNoZWV0TmFtZXMubGVuZ3RoJiZsWyIhcmVmIl0/KHIuU2hlZXROYW1lcy5wdXNoKCJTaGVldDEiKSxyLlNoZWV0cyYmKHIuU2hlZXRzLlNoZWV0MT1sKSk6ci5QcmVhbWJsZT1sLHIuU2hlZXRzJiZP'@; put 'LmZvckVhY2goZnVuY3Rpb24oY3QseWUpe3IuU2hlZXRzW3IuU2hlZXROYW1lc1t5ZV1dWyIhYXV0b2ZpbHRlciJdPWN0fSksci5TdHJpbmdzPWMsci5TU0Y9TWUocGUpLGIuZW5jJiYoci5FbmNyeXB0aW9uPWIuZW5jKSxlZSYmKHIuVGhlbWVzPWVlKSxyLk1ldGFkYXRhPXt9LHZvaWQgMCE9'@; put 'PU4mJihyLk1ldGFkYXRhLkNvdW50cnk9TiksY2UubmFtZXMubGVuZ3RoPjAmJih5Lk5hbWVzPWNlLm5hbWVzKSxyLldvcmtib29rPXkscn0oYS5jb250ZW50LHQpO2Vsc2UgaWYoKGk9dmUuZmluZChlLCJQZXJmZWN0T2ZmaWNlX01BSU4iKSkmJmkuY29udGVudCluPWp0LnRvX3dvcmtib29r'@; put 'KGkuY29udGVudCwodC50eXBlPXMsdCkpO2Vsc2V7aWYoIShpPXZlLmZpbmQoZSwiTmF0aXZlQ29udGVudF9NQUlOIikpfHwhaS5jb250ZW50KXRocm93KGk9dmUuZmluZChlLCJNTjAiKSkmJmkuY29udGVudD9uZXcgRXJyb3IoIlVuc3VwcG9ydGVkIFdvcmtzIDQgZm9yIE1hYyBmaWxlIik6'@; put 'bmV3IEVycm9yKCJDYW5ub3QgZmluZCBXb3JrYm9vayBzdHJlYW0iKTtuPWp0LnRvX3dvcmtib29rKGkuY29udGVudCwodC50eXBlPXMsdCkpfXQuYm9va1ZCQSYmZS5GdWxsUGF0aHMmJnZlLmZpbmQoZSwiL19WQkFfUFJPSkVDVF9DVVIvVkJBL2RpciIpJiYobi52YmFyYXc9ZnVuY3Rpb24g'@; put 'RngoZSl7dmFyIHQ9dmUudXRpbHMuY2ZiX25ldyh7cm9vdDoiUiJ9KTtyZXR1cm4gZS5GdWxsUGF0aHMuZm9yRWFjaChmdW5jdGlvbihyLGEpe2lmKCIvIiE9PXIuc2xpY2UoLTEpJiZyLm1hdGNoKC9fVkJBX1BST0pFQ1RfQ1VSLykpe3ZhciBuPXIucmVwbGFjZSgvXlteXC9dKi8sIlIiKS5y'@; put 'ZXBsYWNlKC9cL19WQkFfUFJPSkVDVF9DVVJcdTAwMDAqLywiIik7dmUudXRpbHMuY2ZiX2FkZCh0LG4sZS5GaWxlSW5kZXhbYV0uY29udGVudCl9fSksdmUud3JpdGUodCl9KGUpKX12YXIgZj17fTtyZXR1cm4gZS5GdWxsUGF0aHMmJmZ1bmN0aW9uIGxtKGUsdCxyKXt2YXIgYT12ZS5maW5k'@; put 'KGUsIi8hRG9jdW1lbnRTdW1tYXJ5SW5mb3JtYXRpb24iKTtpZihhJiZhLnNpemU+MCl0cnl7dmFyIG49UnMoYSx4bix6YS5EU0kpO2Zvcih2YXIgaSBpbiBuKXRbaV09bltpXX1jYXRjaChvKXtpZihyLldURil0aHJvdyBvfXZhciBzPXZlLmZpbmQoZSwiLyFTdW1tYXJ5SW5mb3JtYXRpb24i'@; put 'KTtpZihzJiZzLnNpemU+MCl0cnl7dmFyIGY9UnMocyxkbix6YS5TSSk7Zm9yKHZhciBjIGluIGYpbnVsbD09dFtjXSYmKHRbY109ZltjXSl9Y2F0Y2gobyl7aWYoci5XVEYpdGhyb3cgb310LkhlYWRpbmdQYWlycyYmdC5UaXRsZXNPZlBhcnRzJiYod3ModC5IZWFkaW5nUGFpcnMsdC5UaXRs'@; put 'ZXNPZlBhcnRzLHQsciksZGVsZXRlIHQuSGVhZGluZ1BhaXJzLGRlbGV0ZSB0LlRpdGxlc09mUGFydHMpfShlLGYsdCksbi5Qcm9wcz1uLkN1c3Rwcm9wcz1mLHQuYm9va0ZpbGVzJiYobi5jZmI9ZSksbn12YXIgJGE9ezA6e2Y6ZnVuY3Rpb24gUHYoZSx0KXt2YXIgcj17fSxhPWUubCt0O3Iu'@; put 'cj1lLnJlYWRfc2hpZnQoNCksZS5sKz00O3ZhciBuPWUucmVhZF9zaGlmdCgyKTtlLmwrPTE7dmFyIGk9ZS5yZWFkX3NoaWZ0KDEpO3JldHVybiBlLmw9YSw3JmkmJihyLmxldmVsPTcmaSksMTYmaSYmKHIuaGlkZGVuPSEwKSwzMiZpJiYoci5ocHQ9bi8yMCkscn19LDE6e2Y6ZnVuY3Rpb24g'@; put 'WHYoZSl7cmV0dXJuW0hyKGUpXX19LDI6e2Y6ZnVuY3Rpb24gYzIoZSl7cmV0dXJuW0hyKGUpLHVuKGUpLCJuIl19fSwzOntmOmZ1bmN0aW9uIHF2KGUpe3JldHVybltIcihlKSxlLnJlYWRfc2hpZnQoMSksImUiXX19LDQ6e2Y6ZnVuY3Rpb24ganYoZSl7cmV0dXJuW0hyKGUpLGUucmVhZF9z'@; put 'aGlmdCgxKSwiYiJdfX0sNTp7ZjpmdW5jdGlvbiBpMihlKXtyZXR1cm5bSHIoZSksZ3IoZSksIm4iXX19LDY6e2Y6ZnVuY3Rpb24geDIoZSl7cmV0dXJuW0hyKGUpLG1yKGUpLCJzdHIiXX19LDc6e2Y6ZnVuY3Rpb24gcjIoZSl7cmV0dXJuW0hyKGUpLGUucmVhZF9zaGlmdCg0KSwicyJdfX0s'@; put 'ODp7ZjpmdW5jdGlvbiB3MihlLHQscil7dmFyIGE9ZS5sK3Qsbj1IcihlKTtuLnI9clsiIXJvdyJdO3ZhciBzPVtuLG1yKGUpLCJzdHIiXTtpZihyLmNlbGxGb3JtdWxhKXtlLmwrPTI7dmFyIGY9QzAoZSxhLWUubCxyKTtzWzNdPWtyKGYsMCxuLHIuc3VwYm9va3Mscil9ZWxzZSBlLmw9YTty'@; put 'ZXR1cm4gc319LDk6e2Y6ZnVuY3Rpb24gXzIoZSx0LHIpe3ZhciBhPWUubCt0LG49SHIoZSk7bi5yPXJbIiFyb3ciXTt2YXIgcz1bbixncihlKSwibiJdO2lmKHIuY2VsbEZvcm11bGEpe2UubCs9Mjt2YXIgZj1DMChlLGEtZS5sLHIpO3NbM109a3IoZiwwLG4sci5zdXBib29rcyxyKX1lbHNl'@; put 'IGUubD1hO3JldHVybiBzfX0sMTA6e2Y6ZnVuY3Rpb24gbTIoZSx0LHIpe3ZhciBhPWUubCt0LG49SHIoZSk7bi5yPXJbIiFyb3ciXTt2YXIgcz1bbixlLnJlYWRfc2hpZnQoMSksImIiXTtpZihyLmNlbGxGb3JtdWxhKXtlLmwrPTI7dmFyIGY9QzAoZSxhLWUubCxyKTtzWzNdPWtyKGYsMCxu'@; put 'LHIuc3VwYm9va3Mscil9ZWxzZSBlLmw9YTtyZXR1cm4gc319LDExOntmOmZ1bmN0aW9uIGcyKGUsdCxyKXt2YXIgYT1lLmwrdCxuPUhyKGUpO24ucj1yWyIhcm93Il07dmFyIHM9W24sZS5yZWFkX3NoaWZ0KDEpLCJlIl07aWYoci5jZWxsRm9ybXVsYSl7ZS5sKz0yO3ZhciBmPUMwKGUsYS1l'@; put 'Lmwscik7c1szXT1rcihmLDAsbixyLnN1cGJvb2tzLHIpfWVsc2UgZS5sPWE7cmV0dXJuIHN9fSwxMjp7ZjpmdW5jdGlvbiB6dihlKXtyZXR1cm5bTXQoZSldfX0sMTM6e2Y6ZnVuY3Rpb24gbDIoZSl7cmV0dXJuW010KGUpLHVuKGUpLCJuIl19fSwxNDp7ZjpmdW5jdGlvbiBRdihlKXtyZXR1'@; put 'cm5bTXQoZSksZS5yZWFkX3NoaWZ0KDEpLCJlIl19fSwxNTp7ZjpmdW5jdGlvbiBZdihlKXtyZXR1cm5bTXQoZSksZS5yZWFkX3NoaWZ0KDEpLCJiIl19fSwxNjp7ZjpCZn0sMTc6e2Y6ZnVuY3Rpb24gdjIoZSl7cmV0dXJuW010KGUpLG1yKGUpLCJzdHIiXX19LDE4OntmOmZ1bmN0aW9uIGEy'@; put 'KGUpe3JldHVybltNdChlKSxlLnJlYWRfc2hpZnQoNCksInMiXX19LDE5OntmOnNufSwyMDp7fSwyMTp7fSwyMjp7fSwyMzp7fSwyNDp7fSwyNTp7fSwyNjp7fSwyNzp7fSwyODp7fSwyOTp7fSwzMDp7fSwzMTp7fSwzMjp7fSwzMzp7fSwzNDp7fSwzNTp7VDoxfSwzNjp7VDotMX0sMzc6e1Q6'@; put 'MX0sMzg6e1Q6LTF9LDM5OntmOmZ1bmN0aW9uIHBwKGUsdCxyKXt2YXIgYT1lLmwrdDtlLmwrPTQsZS5sKz0xO3ZhciBuPWUucmVhZF9zaGlmdCg0KSxpPWpvKGUpLHM9ZXYoZSwwLHIpLGY9Zm4oZSk7ZS5sPWE7dmFyIGM9e05hbWU6aSxQdGc6c307cmV0dXJuIG48MjY4NDM1NDU1JiYoYy5T'@; put 'aGVldD1uKSxmJiYoYy5Db21tZW50PWYpLGN9fSw0MDp7fSw0Mjp7fSw0Mzp7ZjpmdW5jdGlvbiB2MShlLHQscil7dmFyIGE9e307YS5zej1lLnJlYWRfc2hpZnQoMikvMjA7dmFyIG49ZnVuY3Rpb24gWW8oZSl7dmFyIHQ9ZS5yZWFkX3NoaWZ0KDEpO3JldHVybiBlLmwrKyx7ZkJvbGQ6MSZ0'@; put 'LGZJdGFsaWM6MiZ0LGZVbmRlcmxpbmU6NCZ0LGZTdHJpa2VvdXQ6OCZ0LGZPdXRsaW5lOjE2JnQsZlNoYWRvdzozMiZ0LGZDb25kZW5zZTo2NCZ0LGZFeHRlbmQ6MTI4JnR9fShlKTtzd2l0Y2gobi5mSXRhbGljJiYoYS5pdGFsaWM9MSksbi5mQ29uZGVuc2UmJihhLmNvbmRlbnNlPTEpLG4u'@; put 'ZkV4dGVuZCYmKGEuZXh0ZW5kPTEpLG4uZlNoYWRvdyYmKGEuc2hhZG93PTEpLG4uZk91dGxpbmUmJihhLm91dGxpbmU9MSksbi5mU3RyaWtlb3V0JiYoYS5zdHJpa2U9MSksNzAwPT09ZS5yZWFkX3NoaWZ0KDIpJiYoYS5ib2xkPTEpLGUucmVhZF9zaGlmdCgyKSl7Y2FzZSAxOmEudmVydEFs'@; put 'aWduPSJzdXBlcnNjcmlwdCI7YnJlYWs7Y2FzZSAyOmEudmVydEFsaWduPSJzdWJzY3JpcHQifXZhciBzPWUucmVhZF9zaGlmdCgxKTswIT1zJiYoYS51bmRlcmxpbmU9cyk7dmFyIGY9ZS5yZWFkX3NoaWZ0KDEpO2Y+MCYmKGEuZmFtaWx5PWYpO3ZhciBjPWUucmVhZF9zaGlmdCgxKTtzd2l0'@; put 'Y2goYz4wJiYoYS5jaGFyc2V0PWMpLGUubCsrLGEuY29sb3I9ZnVuY3Rpb24gS28oZSl7dmFyIHQ9e30sYT1lLnJlYWRfc2hpZnQoMSk+Pj4xLG49ZS5yZWFkX3NoaWZ0KDEpLGk9ZS5yZWFkX3NoaWZ0KDIsImkiKSxzPWUucmVhZF9zaGlmdCgxKSxmPWUucmVhZF9zaGlmdCgxKSxjPWUucmVh'@; put 'ZF9zaGlmdCgxKTtzd2l0Y2goZS5sKyssYSl7Y2FzZSAwOnQuYXV0bz0xO2JyZWFrO2Nhc2UgMTp0LmluZGV4PW47dmFyIG89VnRbbl07byYmKHQucmdiPWJhKG8pKTticmVhaztjYXNlIDI6dC5yZ2I9YmEoW3MsZixjXSk7YnJlYWs7Y2FzZSAzOnQudGhlbWU9bn1yZXR1cm4gMCE9aSYmKHQu'@; put 'dGludD1pPjA/aS8zMjc2NzppLzMyNzY4KSx0fShlKSxlLnJlYWRfc2hpZnQoMSkpe2Nhc2UgMTphLnNjaGVtZT0ibWFqb3IiO2JyZWFrO2Nhc2UgMjphLnNjaGVtZT0ibWlub3IifXJldHVybiBhLm5hbWU9bXIoZSksYX19LDQ0OntmOmZ1bmN0aW9uIHgxKGUsdCl7cmV0dXJuW2UucmVhZF9z'@; put 'aGlmdCgyKSxtcihlKV19fSw0NTp7ZjpnMX0sNDY6e2Y6dzF9LDQ3OntmOmZ1bmN0aW9uIF8xKGUsdCl7dmFyIHI9ZS5sK3QsYT1lLnJlYWRfc2hpZnQoMiksbj1lLnJlYWRfc2hpZnQoMik7cmV0dXJuIGUubD1yLHtpeGZlOmEsbnVtRm10SWQ6bn19fSw0ODp7fSw0OTp7ZjpmdW5jdGlvbiBI'@; put 'byhlKXtyZXR1cm4gZS5yZWFkX3NoaWZ0KDQsImkiKX19LDUwOnt9LDUxOntmOmZ1bmN0aW9uIGV4KGUpe2Zvcih2YXIgdD1bXSxyPWUucmVhZF9zaGlmdCg0KTtyLS0gPjA7KXQucHVzaChbZS5yZWFkX3NoaWZ0KDQpLGUucmVhZF9zaGlmdCg0KV0pO3JldHVybiB0fX0sNTI6e1Q6MX0sNTM6'@; put 'e1Q6LTF9LDU0OntUOjF9LDU1OntUOi0xfSw1Njp7VDoxfSw1Nzp7VDotMX0sNTg6e30sNTk6e30sNjA6e2Y6UXN9LDYyOntmOmZ1bmN0aW9uIGgyKGUpe3JldHVybltIcihlKSxzbihlKSwiaXMiXX19LDYzOntmOmZ1bmN0aW9uIG94KGUpe3ZhciB0PXt9O3QuaT1lLnJlYWRfc2hpZnQoNCk7'@; put 'dmFyIHI9e307ci5yPWUucmVhZF9zaGlmdCg0KSxyLmM9ZS5yZWFkX3NoaWZ0KDQpLHQucj1nZShyKTt2YXIgYT1lLnJlYWRfc2hpZnQoMSk7cmV0dXJuIDImYSYmKHQubD0iMSIpLDgmYSYmKHQuYT0iMSIpLHR9fSw2NDp7ZjpmdW5jdGlvbiBMMigpe319LDY1Ont9LDY2Ont9LDY3Ont9LDY4'@; put 'Ont9LDY5Ont9LDcwOnt9LDEyODp7fSwxMjk6e1Q6MX0sMTMwOntUOi0xfSwxMzE6e1Q6MSxmOnByLHA6MH0sMTMyOntUOi0xfSwxMzM6e1Q6MX0sMTM0OntUOi0xfSwxMzU6e1Q6MX0sMTM2OntUOi0xfSwxMzc6e1Q6MSxmOmZ1bmN0aW9uIFIyKGUpe3ZhciB0PWUucmVhZF9zaGlmdCgyKTty'@; put 'ZXR1cm4gZS5sKz0yOCx7UlRMOjMyJnR9fX0sMTM4OntUOi0xfSwxMzk6e1Q6MX0sMTQwOntUOi0xfSwxNDE6e1Q6MX0sMTQyOntUOi0xfSwxNDM6e1Q6MX0sMTQ0OntUOi0xfSwxNDU6e1Q6MX0sMTQ2OntUOi0xfSwxNDc6e2Y6ZnVuY3Rpb24gSHYoZSx0KXt2YXIgcj17fSxhPWVbZS5sXTty'@; put 'ZXR1cm4rK2UubCxyLmFib3ZlPSEoNjQmYSksci5sZWZ0PSEoMTI4JmEpLGUubCs9MTgsci5uYW1lPSRvKGUsdC0xOSkscn19LDE0ODp7ZjpNdixwOjE2fSwxNTE6e2Y6ZnVuY3Rpb24geTIoKXt9fSwxNTI6e30sMTUzOntmOmZ1bmN0aW9uIHhwKGUsdCl7dmFyIHI9e30sYT1lLnJlYWRfc2hp'@; put 'ZnQoNCk7ci5kZWZhdWx0VGhlbWVWZXJzaW9uPWUucmVhZF9zaGlmdCg0KTt2YXIgbj10Pjg/bXIoZSk6IiI7cmV0dXJuIG4ubGVuZ3RoPjAmJihyLkNvZGVOYW1lPW4pLHIuYXV0b0NvbXByZXNzUGljdHVyZXM9ISEoNjU1MzYmYSksci5iYWNrdXBGaWxlPSEhKDY0JmEpLHIuY2hlY2tDb21w'@; put 'YXRpYmlsaXR5PSEhKDQwOTYmYSksci5kYXRlMTkwND0hISgxJmEpLHIuZmlsdGVyUHJpdmFjeT0hISg4JmEpLHIuaGlkZVBpdm90RmllbGRMaXN0PSEhKDEwMjQmYSksci5wcm9tcHRlZFNvbHV0aW9ucz0hISgxNiZhKSxyLnB1Ymxpc2hJdGVtcz0hISgyMDQ4JmEpLHIucmVmcmVzaEFsbENv'@; put 'bm5lY3Rpb25zPSEhKDI2MjE0NCZhKSxyLnNhdmVFeHRlcm5hbExpbmtWYWx1ZXM9ISEoMTI4JmEpLHIuc2hvd0JvcmRlclVuc2VsZWN0ZWRUYWJsZXM9ISEoNCZhKSxyLnNob3dJbmtBbm5vdGF0aW9uPSEhKDMyJmEpLHIuc2hvd09iamVjdHM9WyJhbGwiLCJwbGFjZWhvbGRlcnMiLCJub25l'@; put 'Il1bYT4+MTMmM10sci5zaG93UGl2b3RDaGFydEZpbHRlcj0hISgzMjc2OCZhKSxyLnVwZGF0ZUxpbmtzPVsidXNlclNldCIsIm5ldmVyIiwiYWx3YXlzIl1bYT4+OCYzXSxyfX0sMTU0Ont9LDE1NTp7fSwxNTY6e2Y6ZnVuY3Rpb24gdXAoZSx0KXt2YXIgcj17fTtyZXR1cm4gci5IaWRkZW49'@; put 'ZS5yZWFkX3NoaWZ0KDQpLHIuaVRhYklEPWUucmVhZF9zaGlmdCg0KSxyLnN0clJlbElEPW9uKGUsdC04KSxyLm5hbWU9bXIoZSkscn19LDE1Nzp7fSwxNTg6e30sMTU5OntUOjEsZjpmdW5jdGlvbiBPaChlKXtyZXR1cm5bZS5yZWFkX3NoaWZ0KDQpLGUucmVhZF9zaGlmdCg0KV19fSwxNjA6'@; put 'e1Q6LTF9LDE2MTp7VDoxLGY6V3R9LDE2Mjp7VDotMX0sMTYzOntUOjF9LDE2NDp7VDotMX0sMTY1OntUOjF9LDE2Njp7VDotMX0sMTY3Ont9LDE2ODp7fSwxNjk6e30sMTcwOnt9LDE3MTp7fSwxNzI6e1Q6MX0sMTczOntUOi0xfSwxNzQ6e30sMTc1Ont9LDE3Njp7ZjprMn0sMTc3OntUOjF9'@; put 'LDE3ODp7VDotMX0sMTc5OntUOjF9LDE4MDp7VDotMX0sMTgxOntUOjF9LDE4Mjp7VDotMX0sMTgzOntUOjF9LDE4NDp7VDotMX0sMTg1OntUOjF9LDE4Njp7VDotMX0sMTg3OntUOjF9LDE4ODp7VDotMX0sMTg5OntUOjF9LDE5MDp7VDotMX0sMTkxOntUOjF9LDE5Mjp7VDotMX0sMTkzOntU'@; put 'OjF9LDE5NDp7VDotMX0sMTk1OntUOjF9LDE5Njp7VDotMX0sMTk3OntUOjF9LDE5ODp7VDotMX0sMTk5OntUOjF9LDIwMDp7VDotMX0sMjAxOntUOjF9LDIwMjp7VDotMX0sMjAzOntUOjF9LDIwNDp7VDotMX0sMjA1OntUOjF9LDIwNjp7VDotMX0sMjA3OntUOjF9LDIwODp7VDotMX0sMjA5'@; put 'OntUOjF9LDIxMDp7VDotMX0sMjExOntUOjF9LDIxMjp7VDotMX0sMjEzOntUOjF9LDIxNDp7VDotMX0sMjE1OntUOjF9LDIxNjp7VDotMX0sMjE3OntUOjF9LDIxODp7VDotMX0sMjE5OntUOjF9LDIyMDp7VDotMX0sMjIxOntUOjF9LDIyMjp7VDotMX0sMjIzOntUOjF9LDIyNDp7VDotMX0s'@; put 'MjI1OntUOjF9LDIyNjp7VDotMX0sMjI3OntUOjF9LDIyODp7VDotMX0sMjI5OntUOjF9LDIzMDp7VDotMX0sMjMxOntUOjF9LDIzMjp7VDotMX0sMjMzOntUOjF9LDIzNDp7VDotMX0sMjM1OntUOjF9LDIzNjp7VDotMX0sMjM3OntUOjF9LDIzODp7VDotMX0sMjM5OntUOjF9LDI0MDp7VDot'@; put 'MX0sMjQxOntUOjF9LDI0Mjp7VDotMX0sMjQzOntUOjF9LDI0NDp7VDotMX0sMjQ1OntUOjF9LDI0Njp7VDotMX0sMjQ3OntUOjF9LDI0ODp7VDotMX0sMjQ5OntUOjF9LDI1MDp7VDotMX0sMjUxOntUOjF9LDI1Mjp7VDotMX0sMjUzOntUOjF9LDI1NDp7VDotMX0sMjU1OntUOjF9LDI1Njp7'@; put 'VDotMX0sMjU3OntUOjF9LDI1ODp7VDotMX0sMjU5OntUOjF9LDI2MDp7VDotMX0sMjYxOntUOjF9LDI2Mjp7VDotMX0sMjYzOntUOjF9LDI2NDp7VDotMX0sMjY1OntUOjF9LDI2Njp7VDotMX0sMjY3OntUOjF9LDI2ODp7VDotMX0sMjY5OntUOjF9LDI3MDp7VDotMX0sMjcxOntUOjF9LDI3'@; put 'Mjp7VDotMX0sMjczOntUOjF9LDI3NDp7VDotMX0sMjc1OntUOjF9LDI3Njp7VDotMX0sMjc3Ont9LDI3ODp7VDoxfSwyNzk6e1Q6LTF9LDI4MDp7VDoxfSwyODE6e1Q6LTF9LDI4Mjp7VDoxfSwyODM6e1Q6MX0sMjg0OntUOi0xfSwyODU6e1Q6MX0sMjg2OntUOi0xfSwyODc6e1Q6MX0sMjg4'@; put 'OntUOi0xfSwyODk6e1Q6MX0sMjkwOntUOi0xfSwyOTE6e1Q6MX0sMjkyOntUOi0xfSwyOTM6e1Q6MX0sMjk0OntUOi0xfSwyOTU6e1Q6MX0sMjk2OntUOi0xfSwyOTc6e1Q6MX0sMjk4OntUOi0xfSwyOTk6e1Q6MX0sMzAwOntUOi0xfSwzMDE6e1Q6MX0sMzAyOntUOi0xfSwzMDM6e1Q6MX0s'@; put 'MzA0OntUOi0xfSwzMDU6e1Q6MX0sMzA2OntUOi0xfSwzMDc6e1Q6MX0sMzA4OntUOi0xfSwzMDk6e1Q6MX0sMzEwOntUOi0xfSwzMTE6e1Q6MX0sMzEyOntUOi0xfSwzMTM6e1Q6LTF9LDMxNDp7VDoxfSwzMTU6e1Q6LTF9LDMxNjp7VDoxfSwzMTc6e1Q6LTF9LDMxODp7VDoxfSwzMTk6e1Q6'@; put 'LTF9LDMyMDp7VDoxfSwzMjE6e1Q6LTF9LDMyMjp7VDoxfSwzMjM6e1Q6LTF9LDMyNDp7VDoxfSwzMjU6e1Q6LTF9LDMyNjp7VDoxfSwzMjc6e1Q6LTF9LDMyODp7VDoxfSwzMjk6e1Q6LTF9LDMzMDp7VDoxfSwzMzE6e1Q6LTF9LDMzMjp7VDoxfSwzMzM6e1Q6LTF9LDMzNDp7VDoxfSwzMzU6'@; put 'e2Y6ZnVuY3Rpb24gWjEoZSx0KXtyZXR1cm57ZmxhZ3M6ZS5yZWFkX3NoaWZ0KDQpLHZlcnNpb246ZS5yZWFkX3NoaWZ0KDQpLG5hbWU6bXIoZSl9fX0sMzM2OntUOi0xfSwzMzc6e2Y6ZnVuY3Rpb24gYXgoZSl7cmV0dXJuIGUubCs9NCwwIT1lLnJlYWRfc2hpZnQoNCl9LFQ6MX0sMzM4OntU'@; put 'Oi0xfSwzMzk6e1Q6MX0sMzQwOntUOi0xfSwzNDE6e1Q6MX0sMzQyOntUOi0xfSwzNDM6e1Q6MX0sMzQ0OntUOi0xfSwzNDU6e1Q6MX0sMzQ2OntUOi0xfSwzNDc6e1Q6MX0sMzQ4OntUOi0xfSwzNDk6e1Q6MX0sMzUwOntUOi0xfSwzNTE6e30sMzUyOnt9LDM1Mzp7VDoxfSwzNTQ6e1Q6LTF9'@; put 'LDM1NTp7Zjpvbn0sMzU3Ont9LDM1ODp7fSwzNTk6e30sMzYwOntUOjF9LDM2MTp7fSwzNjI6e2Y6cXN9LDM2Mzp7fSwzNjQ6e30sMzY2Ont9LDM2Nzp7fSwzNjg6e30sMzY5Ont9LDM3MDp7fSwzNzE6e30sMzcyOntUOjF9LDM3Mzp7VDotMX0sMzc0OntUOjF9LDM3NTp7VDotMX0sMzc2OntU'@; put 'OjF9LDM3Nzp7VDotMX0sMzc4OntUOjF9LDM3OTp7VDotMX0sMzgwOntUOjF9LDM4MTp7VDotMX0sMzgyOntUOjF9LDM4Mzp7VDotMX0sMzg0OntUOjF9LDM4NTp7VDotMX0sMzg2OntUOjF9LDM4Nzp7VDotMX0sMzg4OntUOjF9LDM4OTp7VDotMX0sMzkwOntUOjF9LDM5MTp7VDotMX0sMzky'@; put 'OntUOjF9LDM5Mzp7VDotMX0sMzk0OntUOjF9LDM5NTp7VDotMX0sMzk2Ont9LDM5Nzp7fSwzOTg6e30sMzk5Ont9LDQwMDp7fSw0MDE6e1Q6MX0sNDAzOnt9LDQwNDp7fSw0MDU6e30sNDA2Ont9LDQwNzp7fSw0MDg6e30sNDA5Ont9LDQxMDp7fSw0MTE6e30sNDEyOnt9LDQxMzp7fSw0MTQ6'@; put 'e30sNDE1Ont9LDQxNjp7fSw0MTc6e30sNDE4Ont9LDQxOTp7fSw0MjA6e30sNDIxOnt9LDQyMjp7VDoxfSw0MjM6e1Q6MX0sNDI0OntUOi0xfSw0MjU6e1Q6LTF9LDQyNjp7ZjpmdW5jdGlvbiBBMihlLHQscil7dmFyIGE9ZS5sK3Qsbj1vcyhlKSxpPWUucmVhZF9zaGlmdCgxKSxzPVtuXTtp'@; put 'ZihzWzJdPWksci5jZWxsRm9ybXVsYSl7dmFyIGY9UWQoZSxhLWUubCxyKTtzWzFdPWZ9ZWxzZSBlLmw9YTtyZXR1cm4gc319LDQyNzp7ZjpmdW5jdGlvbiBDMihlLHQscil7dmFyIGE9ZS5sK3QsaT1bV3QoZSwxNildO2lmKHIuY2VsbEZvcm11bGEpe3ZhciBzPXJ2KGUsYS1lLmwscik7aVsx'@; put 'XT1zLGUubD1hfWVsc2UgZS5sPWE7cmV0dXJuIGl9fSw0Mjg6e30sNDI5OntUOjF9LDQzMDp7VDotMX0sNDMxOntUOjF9LDQzMjp7VDotMX0sNDMzOntUOjF9LDQzNDp7VDotMX0sNDM1OntUOjF9LDQzNjp7VDotMX0sNDM3OntUOjF9LDQzODp7VDotMX0sNDM5OntUOjF9LDQ0MDp7VDotMX0s'@; put 'NDQxOntUOjF9LDQ0Mjp7VDotMX0sNDQzOntUOjF9LDQ0NDp7VDotMX0sNDQ1OntUOjF9LDQ0Njp7VDotMX0sNDQ3OntUOjF9LDQ0ODp7VDotMX0sNDQ5OntUOjF9LDQ1MDp7VDotMX0sNDUxOntUOjF9LDQ1Mjp7VDotMX0sNDUzOntUOjF9LDQ1NDp7VDotMX0sNDU1OntUOjF9LDQ1Njp7VDot'@; put 'MX0sNDU3OntUOjF9LDQ1ODp7VDotMX0sNDU5OntUOjF9LDQ2MDp7VDotMX0sNDYxOntUOjF9LDQ2Mjp7VDotMX0sNDYzOntUOjF9LDQ2NDp7VDotMX0sNDY1OntUOjF9LDQ2Njp7VDotMX0sNDY3OntUOjF9LDQ2ODp7VDotMX0sNDY5OntUOjF9LDQ3MDp7VDotMX0sNDcxOnt9LDQ3Mjp7fSw0'@; put 'NzM6e1Q6MX0sNDc0OntUOi0xfSw0NzU6e30sNDc2OntmOmZ1bmN0aW9uIE8yKGUpe3ZhciB0PXt9O3JldHVybiBNZi5mb3JFYWNoKGZ1bmN0aW9uKHIpe3Rbcl09Z3IoZSl9KSx0fX0sNDc3Ont9LDQ3ODp7fSw0Nzk6e1Q6MX0sNDgwOntUOi0xfSw0ODE6e1Q6MX0sNDgyOntUOi0xfSw0ODM6'@; put 'e1Q6MX0sNDg0OntUOi0xfSw0ODU6e2Y6ZnVuY3Rpb24gV3YoKXt9fSw0ODY6e1Q6MX0sNDg3OntUOi0xfSw0ODg6e1Q6MX0sNDg5OntUOi0xfSw0OTA6e1Q6MX0sNDkxOntUOi0xfSw0OTI6e1Q6MX0sNDkzOntUOi0xfSw0OTQ6e2Y6ZnVuY3Rpb24gUzIoZSx0KXt2YXIgcj1lLmwrdCxhPVd0'@; put 'KGUsMTYpLG49Zm4oZSksaT1tcihlKSxzPW1yKGUpLGY9bXIoZSk7ZS5sPXI7dmFyIGM9e3JmeDphLHJlbElkOm4sbG9jOmksZGlzcGxheTpmfTtyZXR1cm4gcyYmKGMuVG9vbHRpcD1zKSxjfX0sNDk1OntUOjF9LDQ5Njp7VDotMX0sNDk3OntUOjF9LDQ5ODp7VDotMX0sNDk5Ont9LDUwMDp7'@; put 'VDoxfSw1MDE6e1Q6LTF9LDUwMjp7VDoxfSw1MDM6e1Q6LTF9LDUwNDp7fSw1MDU6e1Q6MX0sNTA2OntUOi0xfSw1MDc6e30sNTA4OntUOjF9LDUwOTp7VDotMX0sNTEwOntUOjF9LDUxMTp7VDotMX0sNTEyOnt9LDUxMzp7fSw1MTQ6e1Q6MX0sNTE1OntUOi0xfSw1MTY6e1Q6MX0sNTE3OntU'@; put 'Oi0xfSw1MTg6e1Q6MX0sNTE5OntUOi0xfSw1MjA6e1Q6MX0sNTIxOntUOi0xfSw1MjI6e30sNTIzOnt9LDUyNDp7fSw1MjU6e30sNTI2Ont9LDUyNzp7fSw1Mjg6e1Q6MX0sNTI5OntUOi0xfSw1MzA6e1Q6MX0sNTMxOntUOi0xfSw1MzI6e1Q6MX0sNTMzOntUOi0xfSw1MzQ6e30sNTM1Ont9'@; put 'LDUzNjp7fSw1Mzc6e30sNTM4OntUOjF9LDUzOTp7VDotMX0sNTQwOntUOjF9LDU0MTp7VDotMX0sNTQyOntUOjF9LDU0ODp7fSw1NDk6e30sNTUwOntmOm9ufSw1NTE6e30sNTUyOnt9LDU1Mzp7fSw1NTQ6e1Q6MX0sNTU1OntUOi0xfSw1NTY6e1Q6MX0sNTU3OntUOi0xfSw1NTg6e1Q6MX0s'@; put 'NTU5OntUOi0xfSw1NjA6e1Q6MX0sNTYxOntUOi0xfSw1NjI6e30sNTY0Ont9LDU2NTp7VDoxfSw1NjY6e1Q6LTF9LDU2OTp7VDoxfSw1NzA6e1Q6LTF9LDU3Mjp7fSw1NzM6e1Q6MX0sNTc0OntUOi0xfSw1Nzc6e30sNTc4Ont9LDU3OTp7fSw1ODA6e30sNTgxOnt9LDU4Mjp7fSw1ODM6e30s'@; put 'NTg0Ont9LDU4NTp7fSw1ODY6e30sNTg3Ont9LDU4ODp7VDotMX0sNTg5Ont9LDU5MDp7VDoxfSw1OTE6e1Q6LTF9LDU5Mjp7VDoxfSw1OTM6e1Q6LTF9LDU5NDp7VDoxfSw1OTU6e1Q6LTF9LDU5Njp7fSw1OTc6e1Q6MX0sNTk4OntUOi0xfSw1OTk6e1Q6MX0sNjAwOntUOi0xfSw2MDE6e1Q6'@; put 'MX0sNjAyOntUOi0xfSw2MDM6e1Q6MX0sNjA0OntUOi0xfSw2MDU6e1Q6MX0sNjA2OntUOi0xfSw2MDc6e30sNjA4OntUOjF9LDYwOTp7VDotMX0sNjEwOnt9LDYxMTp7VDoxfSw2MTI6e1Q6LTF9LDYxMzp7VDoxfSw2MTQ6e1Q6LTF9LDYxNTp7VDoxfSw2MTY6e1Q6LTF9LDYxNzp7VDoxfSw2'@; put 'MTg6e1Q6LTF9LDYxOTp7VDoxfSw2MjA6e1Q6LTF9LDYyNTp7fSw2MjY6e1Q6MX0sNjI3OntUOi0xfSw2Mjg6e1Q6MX0sNjI5OntUOi0xfSw2MzA6e1Q6MX0sNjMxOntUOi0xfSw2MzI6e2Y6d3h9LDYzMzp7VDoxfSw2MzQ6e1Q6LTF9LDYzNTp7VDoxLGY6ZnVuY3Rpb24gZ3goZSl7dmFyIHQ9'@; put 'e307dC5pYXV0aG9yPWUucmVhZF9zaGlmdCg0KTt2YXIgcj1XdChlLDE2KTtyZXR1cm4gdC5yZng9ci5zLHQucmVmPWdlKHIucyksZS5sKz0xNix0fX0sNjM2OntUOi0xfSw2Mzc6e2Y6R299LDYzODp7VDoxfSw2Mzk6e30sNjQwOntUOi0xfSw2NDE6e1Q6MX0sNjQyOntUOi0xfSw2NDM6e1Q6'@; put 'MX0sNjQ0Ont9LDY0NTp7VDotMX0sNjQ2OntUOjF9LDY0ODp7VDoxfSw2NDk6e30sNjUwOntUOi0xfSw2NTE6e2Y6ZnVuY3Rpb24gZXAoZSx0KXtyZXR1cm4gZS5sKz0xMCx7bmFtZTptcihlKX19fSw2NTI6e30sNjUzOntUOjF9LDY1NDp7VDotMX0sNjU1OntUOjF9LDY1Njp7VDotMX0sNjU3'@; put 'OntUOjF9LDY1ODp7VDotMX0sNjU5Ont9LDY2MDp7VDoxfSw2NjE6e30sNjYyOntUOi0xfSw2NjM6e30sNjY0OntUOjF9LDY2NTp7fSw2NjY6e1Q6LTF9LDY2Nzp7fSw2Njg6e30sNjY5Ont9LDY3MTp7VDoxfSw2NzI6e1Q6LTF9LDY3Mzp7VDoxfSw2NzQ6e1Q6LTF9LDY3NTp7fSw2NzY6e30s'@; put 'Njc3Ont9LDY3ODp7fSw2Nzk6e30sNjgwOnt9LDY4MTp7fSwxMDI0Ont9LDEwMjU6e30sMTAyNjp7VDoxfSwxMDI3OntUOi0xfSwxMDI4OntUOjF9LDEwMjk6e1Q6LTF9LDEwMzA6e30sMTAzMTp7VDoxfSwxMDMyOntUOi0xfSwxMDMzOntUOjF9LDEwMzQ6e1Q6LTF9LDEwMzU6e30sMTAzNjp7'@; put 'fSwxMDM3Ont9LDEwMzg6e1Q6MX0sMTAzOTp7VDotMX0sMTA0MDp7fSwxMDQxOntUOjF9LDEwNDI6e1Q6LTF9LDEwNDM6e30sMTA0NDp7fSwxMDQ1Ont9LDEwNDY6e1Q6MX0sMTA0Nzp7VDotMX0sMTA0ODp7VDoxfSwxMDQ5OntUOi0xfSwxMDUwOnt9LDEwNTE6e1Q6MX0sMTA1Mjp7VDoxfSwx'@; put 'MDUzOntmOmZ1bmN0aW9uIEIyKCl7fX0sMTA1NDp7VDoxfSwxMDU1Ont9LDEwNTY6e1Q6MX0sMTA1Nzp7VDotMX0sMTA1ODp7VDoxfSwxMDU5OntUOi0xfSwxMDYxOnt9LDEwNjI6e1Q6MX0sMTA2Mzp7VDotMX0sMTA2NDp7VDoxfSwxMDY1OntUOi0xfSwxMDY2OntUOjF9LDEwNjc6e1Q6LTF9'@; put 'LDEwNjg6e1Q6MX0sMTA2OTp7VDotMX0sMTA3MDp7VDoxfSwxMDcxOntUOi0xfSwxMDcyOntUOjF9LDEwNzM6e1Q6LTF9LDEwNzU6e1Q6MX0sMTA3Njp7VDotMX0sMTA3Nzp7VDoxfSwxMDc4OntUOi0xfSwxMDc5OntUOjF9LDEwODA6e1Q6LTF9LDEwODE6e1Q6MX0sMTA4Mjp7VDotMX0sMTA4'@; put 'Mzp7VDoxfSwxMDg0OntUOi0xfSwxMDg1Ont9LDEwODY6e1Q6MX0sMTA4Nzp7VDotMX0sMTA4ODp7VDoxfSwxMDg5OntUOi0xfSwxMDkwOntUOjF9LDEwOTE6e1Q6LTF9LDEwOTI6e1Q6MX0sMTA5Mzp7VDotMX0sMTA5NDp7VDoxfSwxMDk1OntUOi0xfSwxMDk2Ont9LDEwOTc6e1Q6MX0sMTA5'@; put 'ODp7fSwxMDk5OntUOi0xfSwxMTAwOntUOjF9LDExMDE6e1Q6LTF9LDExMDI6e30sMTEwMzp7fSwxMTA0Ont9LDExMDU6e30sMTExMTp7fSwxMTEyOnt9LDExMTM6e1Q6MX0sMTExNDp7VDotMX0sMTExNTp7VDoxfSwxMTE2OntUOi0xfSwxMTE3Ont9LDExMTg6e1Q6MX0sMTExOTp7VDotMX0s'@; put 'MTEyMDp7VDoxfSwxMTIxOntUOi0xfSwxMTIyOntUOjF9LDExMjM6e1Q6LTF9LDExMjQ6e1Q6MX0sMTEyNTp7VDotMX0sMTEyNjp7fSwxMTI4OntUOjF9LDExMjk6e1Q6LTF9LDExMzA6e30sMTEzMTp7VDoxfSwxMTMyOntUOi0xfSwxMTMzOntUOjF9LDExMzQ6e1Q6LTF9LDExMzU6e1Q6MX0s'@; put 'MTEzNjp7VDotMX0sMTEzNzp7VDoxfSwxMTM4OntUOi0xfSwxMTM5OntUOjF9LDExNDA6e1Q6LTF9LDExNDE6e30sMTE0Mjp7VDoxfSwxMTQzOntUOi0xfSwxMTQ0OntUOjF9LDExNDU6e1Q6LTF9LDExNDY6e30sMTE0Nzp7VDoxfSwxMTQ4OntUOi0xfSwxMTQ5OntUOjF9LDExNTA6e1Q6LTF9'@; put 'LDExNTI6e1Q6MX0sMTE1Mzp7VDotMX0sMTE1NDp7VDotMX0sMTE1NTp7VDotMX0sMTE1Njp7VDotMX0sMTE1Nzp7VDoxfSwxMTU4OntUOi0xfSwxMTU5OntUOjF9LDExNjA6e1Q6LTF9LDExNjE6e1Q6MX0sMTE2Mjp7VDotMX0sMTE2Mzp7VDoxfSwxMTY0OntUOi0xfSwxMTY1OntUOjF9LDEx'@; put 'NjY6e1Q6LTF9LDExNjc6e1Q6MX0sMTE2ODp7VDotMX0sMTE2OTp7VDoxfSwxMTcwOntUOi0xfSwxMTcxOnt9LDExNzI6e1Q6MX0sMTE3Mzp7VDotMX0sMTE3Nzp7fSwxMTc4OntUOjF9LDExODA6e30sMTE4MTp7fSwxMTgyOnt9LDIwNDg6e1Q6MX0sMjA0OTp7VDotMX0sMjA1MDp7fSwyMDUx'@; put 'OntUOjF9LDIwNTI6e1Q6LTF9LDIwNTM6e30sMjA1NDp7fSwyMDU1OntUOjF9LDIwNTY6e1Q6LTF9LDIwNTc6e1Q6MX0sMjA1ODp7VDotMX0sMjA2MDp7fSwyMDY3Ont9LDIwNjg6e1Q6MX0sMjA2OTp7VDotMX0sMjA3MDp7fSwyMDcxOnt9LDIwNzI6e1Q6MX0sMjA3Mzp7VDotMX0sMjA3NTp7'@; put 'fSwyMDc2Ont9LDIwNzc6e1Q6MX0sMjA3ODp7VDotMX0sMjA3OTp7fSwyMDgwOntUOjF9LDIwODE6e1Q6LTF9LDIwODI6e30sMjA4Mzp7VDoxfSwyMDg0OntUOi0xfSwyMDg1OntUOjF9LDIwODY6e1Q6LTF9LDIwODc6e1Q6MX0sMjA4ODp7VDotMX0sMjA4OTp7VDoxfSwyMDkwOntUOi0xfSwy'@; put 'MDkxOnt9LDIwOTI6e30sMjA5Mzp7VDoxfSwyMDk0OntUOi0xfSwyMDk1Ont9LDIwOTY6e1Q6MX0sMjA5Nzp7VDotMX0sMjA5ODp7VDoxfSwyMDk5OntUOi0xfSwyMTAwOntUOjF9LDIxMDE6e1Q6LTF9LDIxMDI6e30sMjEwMzp7VDoxfSwyMTA0OntUOi0xfSwyMTA1Ont9LDIxMDY6e1Q6MX0s'@; put 'MjEwNzp7VDotMX0sMjEwODp7fSwyMTA5OntUOjF9LDIxMTA6e1Q6LTF9LDIxMTE6e1Q6MX0sMjExMjp7VDotMX0sMjExMzp7VDoxfSwyMTE0OntUOi0xfSwyMTE1Ont9LDIxMTY6e30sMjExNzp7fSwyMTE4OntUOjF9LDIxMTk6e1Q6LTF9LDIxMjA6e30sMjEyMTp7VDoxfSwyMTIyOntUOi0x'@; put 'fSwyMTIzOntUOjF9LDIxMjQ6e1Q6LTF9LDIxMjU6e30sMjEyNjp7VDoxfSwyMTI3OntUOi0xfSwyMTI4Ont9LDIxMjk6e1Q6MX0sMjEzMDp7VDotMX0sMjEzMTp7VDoxfSwyMTMyOntUOi0xfSwyMTMzOntUOjF9LDIxMzQ6e30sMjEzNTp7fSwyMTM2Ont9LDIxMzc6e1Q6MX0sMjEzODp7VDot'@; put 'MX0sMjEzOTp7VDoxfSwyMTQwOntUOi0xfSwyMTQxOnt9LDMwNzI6e30sMzA3Mzp7fSw0MDk2OntUOjF9LDQwOTc6e1Q6LTF9LDUwMDI6e1Q6MX0sNTAwMzp7VDotMX0sNTA4MTp7VDoxfSw1MDgyOntUOi0xfSw1MDgzOnt9LDUwODQ6e1Q6MX0sNTA4NTp7VDotMX0sNTA4Njp7VDoxfSw1MDg3'@; put 'OntUOi0xfSw1MDg4Ont9LDUwODk6e30sNTA5MDp7fSw1MDkyOntUOjF9LDUwOTM6e1Q6LTF9LDUwOTQ6e30sNTA5NTp7VDoxfSw1MDk2OntUOi0xfSw1MDk3Ont9LDUwOTk6e30sNjU1MzU6e246IiJ9fSxXbj17Njp7ZjpObn0sMTA6e2Y6eXR9LDEyOntmOnRyfSwxMzp7Zjp0cn0sMTQ6e2Y6'@; put 'SmV9LDE1OntmOkplfSwxNjp7Zjpncn0sMTc6e2Y6SmV9LDE4OntmOkplfSwxOTp7Zjp0cn0sMjA6e2Y6S3N9LDIxOntmOktzfSwyMzp7Zjpxc30sMjQ6e2Y6SnN9LDI1OntmOkplfSwyNjp7fSwyNzp7fSwyODp7ZjpmdW5jdGlvbiBVdShlLHQscil7cmV0dXJuIGZ1bmN0aW9uIE11KGUsdCxy'@; put 'KXtpZighKHIuYmlmZjw4KSl7dmFyIGE9ZS5yZWFkX3NoaWZ0KDIpLG49ZS5yZWFkX3NoaWZ0KDIpLGk9ZS5yZWFkX3NoaWZ0KDIpLHM9ZS5yZWFkX3NoaWZ0KDIpLGY9enQoZSwwLHIpO3JldHVybiByLmJpZmY8OCYmZS5yZWFkX3NoaWZ0KDEpLFt7cjphLGM6bn0sZixzLGldfX0oZSwwLHIp'@; put 'fX0sMjk6e30sMzQ6e2Y6SmV9LDM1OntmOllzfSwzODp7Zjpncn0sMzk6e2Y6Z3J9LDQwOntmOmdyfSw0MTp7Zjpncn0sNDI6e2Y6SmV9LDQzOntmOkplfSw0Nzp7ZjpmdW5jdGlvbiBxaChlLHQscil7dmFyIGE9e1R5cGU6ci5iaWZmPj04P2UucmVhZF9zaGlmdCgyKTowfTtyZXR1cm4gYS5U'@; put 'eXBlP2Z1bmN0aW9uIEpoKGUsdCxyKXt2YXIgYT1yfHx7fTtyZXR1cm4gYS5JbmZvPWUucmVhZF9zaGlmdCgyKSxlLmwtPTIsYS5EYXRhPTE9PT1hLkluZm8/ZnVuY3Rpb24gJGgoZSl7dmFyIHQ9e30scj10LkVuY3J5cHRpb25WZXJzaW9uSW5mbz1kdChlLDQpO2lmKDEhPXIuTWFqb3J8fDEh'@; put 'PXIuTWlub3IpdGhyb3cidW5yZWNvZ25pemVkIHZlcnNpb24gY29kZSAiK3IuTWFqb3IrIiA6ICIrci5NaW5vcjtyZXR1cm4gdC5TYWx0PWUucmVhZF9zaGlmdCgxNiksdC5FbmNyeXB0ZWRWZXJpZmllcj1lLnJlYWRfc2hpZnQoMTYpLHQuRW5jcnlwdGVkVmVyaWZpZXJIYXNoPWUucmVhZF9z'@; put 'aGlmdCgxNiksdH0oZSk6ZnVuY3Rpb24gemgoZSx0KXt2YXIgcj17fSxhPXIuRW5jcnlwdGlvblZlcnNpb25JbmZvPWR0KGUsNCk7aWYodC09NCwyIT1hLk1pbm9yKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkIG1pbm9yIHZlcnNpb24gY29kZTogIithLk1pbm9yKTtpZihhLk1ham9y'@; put 'PjR8fGEuTWFqb3I8Mil0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCBtYWpvciB2ZXJzaW9uIGNvZGU6ICIrYS5NYWpvcik7ci5GbGFncz1lLnJlYWRfc2hpZnQoNCksdC09NDt2YXIgbj1lLnJlYWRfc2hpZnQoNCk7cmV0dXJuIHQtPTQsci5FbmNyeXB0aW9uSGVhZGVyPXNmKGUsbiks'@; put 'ci5FbmNyeXB0aW9uVmVyaWZpZXI9ZmYoZSx0LT1uKSxyfShlLHQpLGF9KGUsdC0yLGEpOmZ1bmN0aW9uIFloKGUsdCxyLGEpe3ZhciBuPXtrZXk6dHIoZSksdmVyaWZpY2F0aW9uQnl0ZXM6dHIoZSl9O3IucGFzc3dvcmQmJihuLnZlcmlmaWVyPWZ1bmN0aW9uIEZuKGUpe3ZhciByLGksdD0w'@; put 'LGE9bmYoZSksbj1hLmxlbmd0aCsxO2Zvcigocj1fdChuKSlbMF09YS5sZW5ndGgsaT0xO2khPW47KytpKXJbaV09YVtpLTFdO2ZvcihpPW4tMTtpPj0wOy0taSl0PSgoMTYzODQmdD8xOjApfHQ8PDEmMzI3NjcpXnJbaV07cmV0dXJuIDUyODExXnR9KHIucGFzc3dvcmQpKSxhLnZhbGlkPW4u'@; put 'dmVyaWZpY2F0aW9uQnl0ZXM9PT1uLnZlcmlmaWVyLGEudmFsaWQmJihhLmluc2l0dT1mdW5jdGlvbihlKXt2YXIgdD0wLHI9Y2YoZSk7cmV0dXJuIGZ1bmN0aW9uKGEpe3ZhciBuPWZ1bmN0aW9uKGUsdCxyLGEsbil7dmFyIGkscztmb3Iobnx8KG49dCksYXx8KGE9Y2YoIiIpKSxpPTA7aSE9'@; put 'dC5sZW5ndGg7KytpKXM9dFtpXSxuW2ldPXM9MjU1Jigoc149YVtyXSk+PjV8czw8MyksKytyO3JldHVybltuLHIsYV19KDAsYSx0LHIpO3JldHVybiB0PW5bMV0sblswXX19KHIucGFzc3dvcmQpKX0oZSwwLHIsYSksYX19LDQ5OntmOmZ1bmN0aW9uIGh1KGUsdCxyKXt2YXIgYT17ZHlIZWln'@; put 'aHQ6ZS5yZWFkX3NoaWZ0KDIpLGZsOmUucmVhZF9zaGlmdCgyKX07c3dpdGNoKHImJnIuYmlmZnx8OCl7Y2FzZSAyOmJyZWFrO2Nhc2UgMzpjYXNlIDQ6ZS5sKz0yO2JyZWFrO2RlZmF1bHQ6ZS5sKz0xMH1yZXR1cm4gYS5uYW1lPVJhKGUsMCxyKSxhfX0sNTE6e2Y6dHJ9LDYwOnt9LDYxOntm'@; put 'OmZ1bmN0aW9uIGZ1KGUpe3JldHVybntQb3M6W2UucmVhZF9zaGlmdCgyKSxlLnJlYWRfc2hpZnQoMildLERpbTpbZS5yZWFkX3NoaWZ0KDIpLGUucmVhZF9zaGlmdCgyKV0sRmxhZ3M6ZS5yZWFkX3NoaWZ0KDIpLEN1clRhYjplLnJlYWRfc2hpZnQoMiksRmlyc3RUYWI6ZS5yZWFkX3NoaWZ0'@; put 'KDIpLFNlbGVjdGVkOmUucmVhZF9zaGlmdCgyKSxUYWJSYXRpbzplLnJlYWRfc2hpZnQoMil9fX0sNjQ6e2Y6SmV9LDY1OntmOmZ1bmN0aW9uIHV1KCl7fX0sNjY6e2Y6dHJ9LDc3Ont9LDgwOnt9LDgxOnt9LDgyOnt9LDg1OntmOnRyfSw4OTp7fSw5MDp7fSw5MTp7fSw5Mjp7ZjpmdW5jdGlv'@; put 'biBKbChlLHQscil7aWYoci5lbmMpcmV0dXJuIGUubCs9dCwiIjt2YXIgYT1lLmwsbj16dChlLDAscik7cmV0dXJuIGUucmVhZF9zaGlmdCh0K2EtZS5sKSxufX0sOTM6e2Y6ZnVuY3Rpb24gVnUoZSx0LHIpe2lmKHImJnIuYmlmZjw4KXJldHVybiBmdW5jdGlvbiBHdShlLHQscil7ZS5sKz00'@; put 'O3ZhciBhPWUucmVhZF9zaGlmdCgyKSxuPWUucmVhZF9zaGlmdCgyKSxpPWUucmVhZF9zaGlmdCgyKTtlLmwrPTIsZS5sKz0yLGUubCs9MixlLmwrPTIsZS5sKz0yLGUubCs9MixlLmwrPTIsZS5sKz0yLGUubCs9MixlLmwrPTY7dmFyIHM9W107cmV0dXJuIHMucHVzaCgoWHVbYV18fHByKShl'@; put 'LHQtPTM2LHIpKSx7Y21vOltuLGEsaV0sZnQ6c319KGUsdCxyKTt2YXIgYT1YcyhlKSxuPWZ1bmN0aW9uIEtsKGUsdCl7Zm9yKHZhciByPWUubCt0LGE9W107ZS5sPHI7KXt2YXIgbj1lLnJlYWRfc2hpZnQoMik7ZS5sLT0yO3RyeXthLnB1c2goamxbbl0oZSxyLWUubCkpfWNhdGNoe3JldHVy'@; put 'biBlLmw9cixhfX1yZXR1cm4gZS5sIT1yJiYoZS5sPXIpLGF9KGUsdC0yMik7cmV0dXJue2NtbzphLGZ0Om59fX0sOTQ6e30sOTU6e2Y6SmV9LDk2Ont9LDk3Ont9LDk5OntmOkplfSwxMjU6e2Y6UXN9LDEyODp7ZjpmdW5jdGlvbiBBdShlKXtlLmwrPTQ7dmFyIHQ9W2UucmVhZF9zaGlmdCgy'@; put 'KSxlLnJlYWRfc2hpZnQoMildO2lmKDAhPT10WzBdJiZ0WzBdLS0sMCE9PXRbMV0mJnRbMV0tLSx0WzBdPjd8fHRbMV0+Nyl0aHJvdyBuZXcgRXJyb3IoIkJhZCBHdXR0ZXJzOiAiK3Quam9pbigifCIpKTtyZXR1cm4gdH19LDEyOTp7ZjpmdW5jdGlvbiBabChlLHQscil7dmFyIGE9ciYmOD09'@; put 'ci5iaWZmfHwyPT10P2UucmVhZF9zaGlmdCgyKTooZS5sKz10LDApO3JldHVybntmRGlhbG9nOjE2JmEsZkJlbG93OjY0JmEsZlJpZ2h0OjEyOCZhfX19LDEzMDp7Zjp0cn0sMTMxOntmOkplfSwxMzI6e2Y6SmV9LDEzMzp7ZjpmdW5jdGlvbiBRbChlLHQscil7dmFyIGE9ZS5yZWFkX3NoaWZ0'@; put 'KDQpLG49MyZlLnJlYWRfc2hpZnQoMSksaT1lLnJlYWRfc2hpZnQoMSk7c3dpdGNoKGkpe2Nhc2UgMDppPSJXb3Jrc2hlZXQiO2JyZWFrO2Nhc2UgMTppPSJNYWNyb3NoZWV0IjticmVhaztjYXNlIDI6aT0iQ2hhcnRzaGVldCI7YnJlYWs7Y2FzZSA2Omk9IlZCQU1vZHVsZSJ9dmFyIHM9UmEo'@; put 'ZSwwLHIpO3JldHVybiAwPT09cy5sZW5ndGgmJihzPSJTaGVldDEiKSx7cG9zOmEsaHM6bixkdDppLG5hbWU6c319fSwxMzQ6e30sMTQwOntmOmZ1bmN0aW9uIEp1KGUpe3ZhciByLHQ9WzAsMF07cmV0dXJuIHI9ZS5yZWFkX3NoaWZ0KDIpLHRbMF09eHNbcl18fHIscj1lLnJlYWRfc2hpZnQo'@; put 'MiksdFsxXT14c1tyXXx8cix0fX0sMTQxOntmOnRyfSwxNDQ6e30sMTQ2OntmOmZ1bmN0aW9uIFF1KGUpe2Zvcih2YXIgdD1lLnJlYWRfc2hpZnQoMikscj1bXTt0LS0gPjA7KXIucHVzaChVcyhlKSk7cmV0dXJuIHJ9fSwxNTE6e30sMTUyOnt9LDE1Mzp7fSwxNTQ6e30sMTU1Ont9LDE1Njp7'@; put 'Zjp0cn0sMTU3Ont9LDE1ODp7fSwxNjA6e2Y6c2h9LDE2MTp7ZjpmdW5jdGlvbiB0aChlLHQpe3ZhciByPXt9O3JldHVybiB0PDMyfHwoZS5sKz0xNixyLmhlYWRlcj1ncihlKSxyLmZvb3Rlcj1ncihlKSxlLmwrPTIpLHJ9fSwxNzQ6e30sMTc1Ont9LDE3Njp7fSwxNzc6e30sMTc4Ont9LDE4'@; put 'MDp7fSwxODE6e30sMTgyOnt9LDE4NDp7fSwxODU6e30sMTg5OntmOmZ1bmN0aW9uIFR1KGUsdCl7Zm9yKHZhciByPWUubCt0LTIsYT1lLnJlYWRfc2hpZnQoMiksbj1lLnJlYWRfc2hpZnQoMiksaT1bXTtlLmw8cjspaS5wdXNoKFdzKGUpKTtpZihlLmwhPT1yKXRocm93IG5ldyBFcnJvcigi'@; put 'TXVsUksgcmVhZCBlcnJvciIpO3ZhciBzPWUucmVhZF9zaGlmdCgyKTtpZihpLmxlbmd0aCE9cy1uKzEpdGhyb3cgbmV3IEVycm9yKCJNdWxSSyBsZW5ndGggbWlzbWF0Y2giKTtyZXR1cm57cjphLGM6bixDOnMscmtyZWM6aX19fSwxOTA6e2Y6ZnVuY3Rpb24gU3UoZSx0KXtmb3IodmFyIHI9'@; put 'ZS5sK3QtMixhPWUucmVhZF9zaGlmdCgyKSxuPWUucmVhZF9zaGlmdCgyKSxpPVtdO2UubDxyOylpLnB1c2goZS5yZWFkX3NoaWZ0KDIpKTtpZihlLmwhPT1yKXRocm93IG5ldyBFcnJvcigiTXVsQmxhbmsgcmVhZCBlcnJvciIpO3ZhciBzPWUucmVhZF9zaGlmdCgyKTtpZihpLmxlbmd0aCE9'@; put 'cy1uKzEpdGhyb3cgbmV3IEVycm9yKCJNdWxCbGFuayBsZW5ndGggbWlzbWF0Y2giKTtyZXR1cm57cjphLGM6bixDOnMsaXhmZTppfX19LDE5Mzp7Zjp5dH0sMTk3Ont9LDE5ODp7fSwxOTk6e30sMjAwOnt9LDIwMTp7fSwyMDI6e2Y6SmV9LDIwMzp7fSwyMDQ6e30sMjA1Ont9LDIwNjp7fSwy'@; put 'MDc6e30sMjA4Ont9LDIwOTp7fSwyMTA6e30sMjExOnt9LDIxMzp7fSwyMTU6e30sMjE2Ont9LDIxNzp7fSwyMTg6e2Y6dHJ9LDIyMDp7fSwyMjE6e2Y6SmV9LDIyMjp7fSwyMjQ6e2Y6ZnVuY3Rpb24geXUoZSx0LHIpe3ZhciBhPXt9O3JldHVybiBhLmlmbnQ9ZS5yZWFkX3NoaWZ0KDIpLGEu'@; put 'bnVtRm10SWQ9ZS5yZWFkX3NoaWZ0KDIpLGEuZmxhZ3M9ZS5yZWFkX3NoaWZ0KDIpLGEuZlN0eWxlPWEuZmxhZ3M+PjImMSxhLmRhdGE9ZnVuY3Rpb24gRnUoZSx0LHIsYSl7dmFyIG49e30saT1lLnJlYWRfc2hpZnQoNCkscz1lLnJlYWRfc2hpZnQoNCksZj1lLnJlYWRfc2hpZnQoNCksYz1l'@; put 'LnJlYWRfc2hpZnQoMik7cmV0dXJuIG4ucGF0dGVyblR5cGU9bmxbZj4+MjZdLGEuY2VsbFN0eWxlcyYmKG4uYWxjPTcmaSxuLmZXcmFwPWk+PjMmMSxuLmFsY1Y9aT4+NCY3LG4uZkp1c3RMYXN0PWk+PjcmMSxuLnRyb3Q9aT4+OCYyNTUsbi5jSW5kZW50PWk+PjE2JjE1LG4uZlNocmlua1Rv'@; put 'Rml0PWk+PjIwJjEsbi5pUmVhZE9yZGVyPWk+PjIyJjIsbi5mQXRyTnVtPWk+PjI2JjEsbi5mQXRyRm50PWk+PjI3JjEsbi5mQXRyQWxjPWk+PjI4JjEsbi5mQXRyQmRyPWk+PjI5JjEsbi5mQXRyUGF0PWk+PjMwJjEsbi5mQXRyUHJvdD1pPj4zMSYxLG4uZGdMZWZ0PTE1JnMsbi5kZ1JpZ2h0'@; put 'PXM+PjQmMTUsbi5kZ1RvcD1zPj44JjE1LG4uZGdCb3R0b209cz4+MTImMTUsbi5pY3ZMZWZ0PXM+PjE2JjEyNyxuLmljdlJpZ2h0PXM+PjIzJjEyNyxuLmdyYml0RGlhZz1zPj4zMCYzLG4uaWN2VG9wPTEyNyZmLG4uaWN2Qm90dG9tPWY+PjcmMTI3LG4uaWN2RGlhZz1mPj4xNCYxMjcsbi5k'@; put 'Z0RpYWc9Zj4+MjEmMTUsbi5pY3ZGb3JlPTEyNyZjLG4uaWN2QmFjaz1jPj43JjEyNyxuLmZzeEJ1dHRvbj1jPj4xNCYxKSxufShlLDAsMCxyKSxhfX0sMjI1OntmOmZ1bmN0aW9uIFlsKGUsdCl7cmV0dXJuIDA9PT10fHxlLnJlYWRfc2hpZnQoMiksMTIwMH19LDIyNjp7Zjp5dH0sMjI3Ont9'@; put 'LDIyOTp7ZjpmdW5jdGlvbiBXdShlLHQpe2Zvcih2YXIgcj1bXSxhPWUucmVhZF9zaGlmdCgyKTthLS07KXIucHVzaChrMChlKSk7cmV0dXJuIHJ9fSwyMzM6e30sMjM1Ont9LDIzNjp7fSwyMzc6e30sMjM5Ont9LDI0MDp7fSwyNDE6e30sMjQyOnt9LDI0NDp7fSwyNDU6e30sMjQ2Ont9LDI0'@; put 'Nzp7fSwyNDg6e30sMjQ5Ont9LDI1MTp7fSwyNTI6e2Y6ZnVuY3Rpb24gcnUoZSx0KXtmb3IodmFyIHI9ZS5sK3QsYT1lLnJlYWRfc2hpZnQoNCksbj1lLnJlYWRfc2hpZnQoNCksaT1bXSxzPTA7cyE9biYmZS5sPHI7KytzKWkucHVzaChSbChlKSk7cmV0dXJuIGkuQ291bnQ9YSxpLlVuaXF1'@; put 'ZT1uLGl9fSwyNTM6e2Y6ZnVuY3Rpb24gZHUoZSl7dmFyIHQ9bnQoZSk7cmV0dXJuIHQuaXNzdD1lLnJlYWRfc2hpZnQoNCksdH19LDI1NTp7ZjpmdW5jdGlvbiBhdShlLHQpe3ZhciByPXt9O3JldHVybiByLmRzc3Q9ZS5yZWFkX3NoaWZ0KDIpLGUubCs9dC0yLHJ9fSwyNTY6e30sMjU5Ont9'@; put 'LDI5MDp7fSwzMTE6e30sMzEyOnt9LDMxNTp7fSwzMTc6e2Y6YnN9LDMxODp7fSwzMTk6e30sMzIwOnt9LDMzMDp7fSwzMzE6e30sMzMzOnt9LDMzNDp7fSwzMzU6e30sMzM2Ont9LDMzNzp7fSwzMzg6e30sMzM5Ont9LDM0MDp7fSwzNTE6e30sMzUyOntmOkplfSwzNTM6e2Y6eXR9LDQwMTp7'@; put 'fSw0MDI6e30sNDAzOnt9LDQwNDp7fSw0MDU6e30sNDA2Ont9LDQwNzp7fSw0MDg6e30sNDI1Ont9LDQyNjp7fSw0Mjc6e30sNDI4Ont9LDQyOTp7fSw0MzA6e2Y6ZnVuY3Rpb24gUnUoZSx0LHIpe3ZhciBhPWUubCt0LG49ZS5yZWFkX3NoaWZ0KDIpLGk9ZS5yZWFkX3NoaWZ0KDIpO2lmKHIu'@; put 'c2JjY2g9aSwxMDI1PT1pfHwxNDg0OT09aSlyZXR1cm5baSxuXTtpZihpPDF8fGk+MjU1KXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBTdXBCb29rIHR5cGU6ICIraSk7Zm9yKHZhciBzPUd0KGUsaSksZj1bXTthPmUubDspZi5wdXNoKE5hKGUpKTtyZXR1cm5baSxuLHMsZl19fSw0MzE6'@; put 'e2Y6SmV9LDQzMjp7fSw0MzM6e30sNDM0Ont9LDQzNzp7fSw0Mzg6e2Y6ZnVuY3Rpb24genUoZSx0LHIpe3ZhciBhPWUubCxuPSIiO3RyeXtlLmwrPTQsLTE9PVswLDUsNywxMSwxMiwxNF0uaW5kZXhPZigoci5sYXN0b2JqfHx7Y21vOlswLDBdfSkuY21vWzFdKT9lLmwrPTY6ZnVuY3Rpb24g'@; put 'YmwoZSl7dmFyIHQ9ZS5yZWFkX3NoaWZ0KDEpO2UubCsrO3ZhciByPWUucmVhZF9zaGlmdCgyKTtlLmwrPTJ9KGUpO3ZhciBmPWUucmVhZF9zaGlmdCgyKTtlLnJlYWRfc2hpZnQoMiksdHIoZSk7dmFyIGM9ZS5yZWFkX3NoaWZ0KDIpO2UubCs9Yztmb3IodmFyIG89MTtvPGUubGVucy5sZW5n'@; put 'dGgtMTsrK28pe2lmKGUubC1hIT1lLmxlbnNbb10pdGhyb3cgbmV3IEVycm9yKCJUeE86IGJhZCBjb250aW51ZSByZWNvcmQiKTt2YXIgbD1lW2UubF07aWYoKG4rPUd0KGUsZS5sZW5zW28rMV0tZS5sZW5zW29dLTEpKS5sZW5ndGg+PShsP2Y6MipmKSlicmVha31pZihuLmxlbmd0aCE9PWYm'@; put 'Jm4ubGVuZ3RoIT09MipmKXRocm93IG5ldyBFcnJvcigiY2NoVGV4dDogIitmKyIgIT0gIituLmxlbmd0aCk7cmV0dXJuIGUubD1hK3Qse3Q6bn19Y2F0Y2h7cmV0dXJuIGUubD1hK3Qse3Q6bn19fX0sNDM5OntmOkplfSw0NDA6e2Y6ZnVuY3Rpb24gJHUoZSx0KXt2YXIgcj1rMChlKTtlLmwr'@; put 'PTE2O3ZhciBhPWZ1bmN0aW9uIE1sKGUsdCl7dmFyIHI9ZS5sK3QsYT1lLnJlYWRfc2hpZnQoNCk7aWYoMiE9PWEpdGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgc3RyZWFtVmVyc2lvbjogIithKTt2YXIgbj1lLnJlYWRfc2hpZnQoMik7ZS5sKz0yO3ZhciBpLHMsZixjLGwsaCxvPSIi'@; put 'OzE2Jm4mJihpPXcwKGUpKSwxMjgmbiYmKHM9dzAoZSkpLCEoMjU3Jn5uKSYmKGY9dzAoZSkpLDE9PSgyNTcmbikmJihjPWZ1bmN0aW9uIEJsKGUsdCl7dmFyIHI9ZS5yZWFkX3NoaWZ0KDE2KTtzd2l0Y2gocil7Y2FzZSJlMGM5ZWE3OWY5YmFjZTExOGM4MjAwYWEwMDRiYTkwYiI6cmV0dXJu'@; put 'IGZ1bmN0aW9uIFBsKGUpe3ZhciB0PWUucmVhZF9zaGlmdCg0KSxyPWUubCxhPSExO3Q+MjQmJihlLmwrPXQtMjQsIjc5NTg4MWY0M2IxZDdmNDhhZjJjODI1ZGM0ODUyNzYzIj09PWUucmVhZF9zaGlmdCgxNikmJihhPSEwKSxlLmw9cik7dmFyIG49ZS5yZWFkX3NoaWZ0KChhP3QtMjQ6dCk+'@; put 'PjEsInV0ZjE2bGUiKS5yZXBsYWNlKGRyLCIiKTtyZXR1cm4gYSYmKGUubCs9MjQpLG59KGUpO2Nhc2UiMDMwMzAwMDAwMDAwMDAwMGMwMDAwMDAwMDAwMDAwNDYiOnJldHVybiBmdW5jdGlvbiBMbChlKXtmb3IodmFyIHQ9ZS5yZWFkX3NoaWZ0KDIpLHI9IiI7dC0tID4wOylyKz0iLi4vIjt2'@; put 'YXIgYT1lLnJlYWRfc2hpZnQoMCwibHBzdHItYW5zaSIpO2lmKGUubCs9Miw1NzAwNSE9ZS5yZWFkX3NoaWZ0KDIpKXRocm93IG5ldyBFcnJvcigiQmFkIEZpbGVNb25pa2VyIik7aWYoMD09PWUucmVhZF9zaGlmdCg0KSlyZXR1cm4gcithLnJlcGxhY2UoL1xcL2csIi8iKTt2YXIgaT1lLnJl'@; put 'YWRfc2hpZnQoNCk7aWYoMyE9ZS5yZWFkX3NoaWZ0KDIpKXRocm93IG5ldyBFcnJvcigiQmFkIEZpbGVNb25pa2VyIik7cmV0dXJuIHIrZS5yZWFkX3NoaWZ0KGk+PjEsInV0ZjE2bGUiKS5yZXBsYWNlKGRyLCIiKX0oZSk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIE1v'@; put 'bmlrZXIgIityKX19KGUpKSw4Jm4mJihvPXcwKGUpKSwzMiZuJiYobD1lLnJlYWRfc2hpZnQoMTYpKSw2NCZuJiYoaD13bihlKSksZS5sPXI7dmFyIHg9c3x8Znx8Y3x8IiI7eCYmbyYmKHgrPSIjIitvKSx4fHwoeD0iIyIrbyksMiZuJiYiLyI9PXguY2hhckF0KDApJiYiLyIhPXguY2hhckF0'@; put 'KDEpJiYoeD0iZmlsZTovLyIreCk7dmFyIGQ9e1RhcmdldDp4fTtyZXR1cm4gbCYmKGQuZ3VpZD1sKSxoJiYoZC50aW1lPWgpLGkmJihkLlRvb2x0aXA9aSksZH0oZSx0LTI0KTtyZXR1cm5bcixhXX19LDQ0MTp7fSw0NDI6e2Y6TmF9LDQ0Mzp7fSw0NDQ6e2Y6dHJ9LDQ0NTp7fSw0NDY6e30s'@; put 'NDQ4OntmOnl0fSw0NDk6e2Y6ZnVuY3Rpb24gc3UoZSl7cmV0dXJuIGUucmVhZF9zaGlmdCgyKSxlLnJlYWRfc2hpZnQoNCl9LHI6Mn0sNDUwOntmOnl0fSw1MTI6e2Y6enN9LDUxMzp7ZjppaH0sNTE1OntmOmZ1bmN0aW9uIE91KGUsdCxyKXtyLmJpZmZndWVzcyYmMj09ci5iaWZmJiYoci5i'@; put 'aWZmPTUpO3ZhciBhPW50KGUpLG49Z3IoZSk7cmV0dXJuIGEudmFsPW4sYX19LDUxNjp7ZjpmdW5jdGlvbiBwdShlLHQscil7ci5iaWZmZ3Vlc3MmJjI9PXIuYmlmZiYmKHIuYmlmZj01KTt2YXIgbj1udChlKTsyPT1yLmJpZmYmJmUubCsrO3ZhciBpPU5hKGUsMCxyKTtyZXR1cm4gbi52YWw9'@; put 'aSxufX0sNTE3OntmOmpzfSw1MTk6e2Y6Zmh9LDUyMDp7ZjpmdW5jdGlvbiBudShlKXt2YXIgdD17fTt0LnI9ZS5yZWFkX3NoaWZ0KDIpLHQuYz1lLnJlYWRfc2hpZnQoMiksdC5jbnQ9ZS5yZWFkX3NoaWZ0KDIpLXQuYzt2YXIgcj1lLnJlYWRfc2hpZnQoMik7ZS5sKz00O3ZhciBhPWUucmVh'@; put 'ZF9zaGlmdCgxKTtyZXR1cm4gZS5sKz0zLDcmYSYmKHQubGV2ZWw9NyZhKSwzMiZhJiYodC5oaWRkZW49ITApLDY0JmEmJih0LmhwdD1yLzIwKSx0fX0sNTIzOnt9LDU0NTp7Zjpac30sNTQ5OntmOkdzfSw1NjY6e30sNTc0OntmOmZ1bmN0aW9uIG91KGUsdCxyKXtyZXR1cm4gciYmci5iaWZm'@; put 'Pj0yJiZyLmJpZmY8NT97fTp7UlRMOjY0JmUucmVhZF9zaGlmdCgyKX19fSw2Mzg6e2Y6ZnVuY3Rpb24gRXUoZSl7dmFyIHQ9ZS5yZWFkX3NoaWZ0KDIpLHI9ZS5yZWFkX3NoaWZ0KDIpLGE9V3MoZSk7cmV0dXJue3I6dCxjOnIsaXhmZTphWzBdLHJrbnVtOmFbMV19fX0sNjU5Ont9LDEwNDg6'@; put 'e30sMTA1NDp7ZjpmdW5jdGlvbiBndShlLHQscil7cmV0dXJuW2UucmVhZF9zaGlmdCgyKSx6dChlLDAscildfX0sMTA4NDp7fSwxMjEyOntmOmZ1bmN0aW9uIEx1KGUsdCxyKXt2YXIgYT1WcyhlKTtlLmwrKzt2YXIgbj1lLnJlYWRfc2hpZnQoMSk7cmV0dXJuW1lkKGUsdC09OCxyKSxuLGFd'@; put 'fX0sMjA0ODp7ZjpmdW5jdGlvbiBLdShlLHQpe2UucmVhZF9zaGlmdCgyKTt2YXIgcj1rMChlKSxhPWUucmVhZF9zaGlmdCgodC0xMCkvMiwiZGJjcy1jb250Iik7cmV0dXJuW3IsYT1hLnJlcGxhY2UoZHIsIiIpXX19LDIwNDk6e30sMjA1MDp7fSwyMDUxOnt9LDIwNTI6e30sMjA1Mzp7fSwy'@; put 'MDU0Ont9LDIwNTU6e30sMjA1Njp7fSwyMDU3OntmOkUwfSwyMDU4Ont9LDIwNTk6e30sMjA2MDp7fSwyMDYxOnt9LDIwNjI6e30sMjA2Mzp7fSwyMDY0Ont9LDIwNjY6e30sMjA2Nzp7fSwyMTI4Ont9LDIxMjk6e30sMjEzMDp7fSwyMTMxOnt9LDIxMzI6e30sMjEzMzp7fSwyMTM0Ont9LDIx'@; put 'MzU6e30sMjEzNjp7fSwyMTM3Ont9LDIxMzg6e30sMjE0Njp7fSwyMTQ3OntyOjEyfSwyMTQ4Ont9LDIxNDk6e30sMjE1MDp7fSwyMTUxOntmOnl0fSwyMTUyOnt9LDIxNTQ6e30sMjE1NTp7fSwyMTU2Ont9LDIxNjE6e30sMjE2Mjp7fSwyMTY0Ont9LDIxNjU6e30sMjE2Njp7fSwyMTY3Ont9'@; put 'LDIxNjg6e30sMjE2OTp7fSwyMTcwOnt9LDIxNzE6e30sMjE3Mjp7ZjpmdW5jdGlvbiBlaChlKXtlLmwrPTI7dmFyIHQ9e2N4ZnM6MCxjcmM6MH07cmV0dXJuIHQuY3hmcz1lLnJlYWRfc2hpZnQoMiksdC5jcmM9ZS5yZWFkX3NoaWZ0KDQpLHR9LHI6MTJ9LDIxNzM6e2Y6ZnVuY3Rpb24gSjEo'@; put 'ZSx0KXtlLmwrPTI7dmFyIGE9ZS5yZWFkX3NoaWZ0KDIpO2UubCs9Mjtmb3IodmFyIG49ZS5yZWFkX3NoaWZ0KDIpLGk9W107bi0tID4wOylpLnB1c2goWTEoZSkpO3JldHVybntpeGZlOmEsZXh0Oml9fSxyOjEyfSwyMTc0Ont9LDIxNzU6e30sMjE4MDp7fSwyMTgxOnt9LDIxODI6e30sMjE4'@; put 'Mzp7fSwyMTg0Ont9LDIxODU6e30sMjE4Njp7fSwyMTg3Ont9LDIxODg6e2Y6SmUscjoxMn0sMjE4OTp7fSwyMTkwOntyOjEyfSwyMTkxOnt9LDIxOTI6e30sMjE5NDp7fSwyMTk1Ont9LDIxOTY6e2Y6ZnVuY3Rpb24gUHUoZSx0LHIpe2lmKCEoci5iaWZmPDgpKXt2YXIgYT1lLnJlYWRfc2hp'@; put 'ZnQoMiksbj1lLnJlYWRfc2hpZnQoMik7cmV0dXJuW0d0KGUsYSxyKSxHdChlLG4scildfWUubCs9dH0scjoxMn0sMjE5Nzp7fSwyMTk4OntmOmZ1bmN0aW9uIEcxKGUsdCxyKXt2YXIgYT1lLmwrdDtpZigxMjQyMjYhPT1lLnJlYWRfc2hpZnQoNCkpe2lmKCFyLmNlbGxTdHlsZXMpcmV0dXJu'@; put 'IHZvaWQoZS5sPWEpO3ZhciBzLGk9ZS5zbGljZShlLmwpO2UubD1hO3RyeXtzPVJpKGkse3R5cGU6ImFycmF5In0pfWNhdGNoe3JldHVybn12YXIgZj1OcihzLCJ0aGVtZS90aGVtZS90aGVtZTEueG1sIiwhMCk7aWYoZilyZXR1cm4gdmYoZixyKX19LHI6MTJ9LDIxOTk6e30sMjIwMDp7fSwy'@; put 'MjAxOnt9LDIyMDI6e2Y6ZnVuY3Rpb24gQnUoZSl7cmV0dXJuWzAhPT1lLnJlYWRfc2hpZnQoNCksMCE9PWUucmVhZF9zaGlmdCg0KSxlLnJlYWRfc2hpZnQoNCldfSxyOjEyfSwyMjAzOntmOnl0fSwyMjA0Ont9LDIyMDU6e30sMjIwNjp7fSwyMjA3Ont9LDIyMTE6e2Y6ZnVuY3Rpb24gaXUo'@; put 'ZSl7dmFyIHQ9ZnVuY3Rpb24gV2woZSl7dmFyIHQ9ZS5yZWFkX3NoaWZ0KDIpLHI9ZS5yZWFkX3NoaWZ0KDIpO3JldHVybiBlLmwrPTgse3R5cGU6dCxmbGFnczpyfX0oZSk7aWYoMjIxMSE9dC50eXBlKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBGdXR1cmUgUmVjb3JkICIrdC50eXBlKTty'@; put 'ZXR1cm4gMCE9PWUucmVhZF9zaGlmdCg0KX19LDIyMTI6e30sMjIxMzp7fSwyMjE0Ont9LDIyMTU6e30sNDA5Nzp7fSw0MDk4Ont9LDQwOTk6e30sNDEwMjp7fSw0MTAzOnt9LDQxMDU6e30sNDEwNjp7fSw0MTA3Ont9LDQxMDg6e30sNDEwOTp7fSw0MTE2Ont9LDQxMTc6e30sNDExODp7fSw0'@; put 'MTE5Ont9LDQxMjA6e30sNDEyMTp7fSw0MTIyOnt9LDQxMjM6e30sNDEyNDp7fSw0MTI1Ont9LDQxMjY6e30sNDEyNzp7fSw0MTI4Ont9LDQxMjk6e30sNDEzMDp7fSw0MTMyOnt9LDQxMzM6e30sNDEzNDp7Zjp0cn0sNDEzNTp7fSw0MTQ2Ont9LDQxNDc6e30sNDE0ODp7fSw0MTQ5Ont9LDQx'@; put 'NTQ6e30sNDE1Njp7fSw0MTU3Ont9LDQxNTg6e30sNDE1OTp7fSw0MTYwOnt9LDQxNjE6e30sNDE2Mzp7fSw0MTY0OntmOmZ1bmN0aW9uIGFoKGUsdCxyKXt2YXIgYT17YXJlYTohMX07aWYoNSE9ci5iaWZmKXJldHVybiBlLmwrPXQsYTt2YXIgbj1lLnJlYWRfc2hpZnQoMSk7cmV0dXJuIGUu'@; put 'bCs9MywxNiZuJiYoYS5hcmVhPSEwKSxhfX0sNDE2NTp7fSw0MTY2Ont9LDQxNjg6e30sNDE3MDp7fSw0MTcxOnt9LDQxNzQ6e30sNDE3NTp7fSw0MTc2Ont9LDQxNzc6e30sNDE4Nzp7fSw0MTg4OntmOmZ1bmN0aW9uIFp1KGUpe2Zvcih2YXIgdD1lLnJlYWRfc2hpZnQoMikscj1bXTt0LS0g'@; put 'PjA7KXIucHVzaChVcyhlKSk7cmV0dXJuIHJ9fSw0MTg5Ont9LDQxOTE6e30sNDE5Mjp7fSw0MTkzOnt9LDQxOTQ6e30sNDE5NTp7fSw0MTk2Ont9LDQxOTc6e30sNDE5ODp7fSw0MTk5Ont9LDQyMDA6e30sMDp7Zjp6c30sMTp7fSwyOntmOmZ1bmN0aW9uIGhoKGUpe3ZhciB0PW50KGUpOysr'@; put 'ZS5sO3ZhciByPWUucmVhZF9zaGlmdCgyKTtyZXR1cm4gdC50PSJuIix0LnZhbD1yLHR9fSwzOntmOmZ1bmN0aW9uIGxoKGUpe3ZhciB0PW50KGUpOysrZS5sO3ZhciByPWdyKGUpO3JldHVybiB0LnQ9Im4iLHQudmFsPXIsdH19LDQ6e2Y6ZnVuY3Rpb24gb2goZSx0LHIpe3IuYmlmZmd1ZXNz'@; put 'JiY1PT1yLmJpZmYmJihyLmJpZmY9Mik7dmFyIGE9bnQoZSk7KytlLmw7dmFyIG49enQoZSwwLHIpO3JldHVybiBhLnQ9InN0ciIsYS52YWw9bixhfX0sNTp7Zjpqc30sNzp7ZjpmdW5jdGlvbiBkaChlKXt2YXIgdD1lLnJlYWRfc2hpZnQoMSk7cmV0dXJuIDA9PT10PyhlLmwrKywiIik6ZS5y'@; put 'ZWFkX3NoaWZ0KHQsInNiY3MtY29udCIpfX0sODp7fSw5OntmOkUwfSwxMTp7fSwyMjp7Zjp0cn0sMzA6e2Y6d3V9LDMxOnt9LDMyOnt9LDMzOntmOlpzfSwzNjp7fSwzNzp7ZjpHc30sNTA6e2Y6ZnVuY3Rpb24gdmgoZSx0KXtlLmwrPTYsZS5sKz0yLGUubCs9MSxlLmwrPTMsZS5sKz0xLGUu'@; put 'bCs9dC0xM319LDYyOnt9LDUyOnt9LDY3Ont9LDY4OntmOnRyfSw2OTp7fSw4Njp7fSwxMjY6e30sMTI3OntmOmZ1bmN0aW9uIGNoKGUpe3ZhciB0PWUucmVhZF9zaGlmdCgyKSxyPWUucmVhZF9zaGlmdCgyKSxhPWUucmVhZF9zaGlmdCg0KSxuPXtmbXQ6dCxlbnY6cixsZW46YSxkYXRhOmUu'@; put 'c2xpY2UoZS5sLGUubCthKX07cmV0dXJuIGUubCs9YSxufX0sMTM1Ont9LDEzNjp7fSwxMzc6e30sMTQ1Ont9LDE0ODp7fSwxNDk6e30sMTUwOnt9LDE2OTp7fSwxNzE6e30sMTg4Ont9LDE5MTp7fSwxOTI6e30sMTk0Ont9LDE5NTp7fSwyMTQ6e2Y6ZnVuY3Rpb24gcGgoZSx0LHIpe3ZhciBh'@; put 'PWUubCt0LG49bnQoZSksaT1lLnJlYWRfc2hpZnQoMikscz1HdChlLGkscik7cmV0dXJuIGUubD1hLG4udD0ic3RyIixuLnZhbD1zLG59fSwyMjM6e30sMjM0Ont9LDM1NDp7fSw0MjE6e30sNTE4OntmOk5ufSw1MjE6e2Y6RTB9LDUzNjp7ZjpKc30sNTQ3OntmOllzfSw1NjE6e30sNTc5Ont9'@; put 'LDEwMzA6e2Y6Tm59LDEwMzM6e2Y6RTB9LDEwOTE6e30sMjE1Nzp7fSwyMTYzOnt9LDIxNzc6e30sMjI0MDp7fSwyMjQxOnt9LDIyNDI6e30sMjI0Mzp7fSwyMjQ0Ont9LDIyNDU6e30sMjI0Njp7fSwyMjQ3Ont9LDIyNDg6e30sMjI0OTp7fSwyMjUwOnt9LDIyNTE6e30sMjI2Mjp7cjoxMn0s'@; put 'MjkyODI6e319O2Z1bmN0aW9uIGFlKGUsdCxyLGEpe3ZhciBuPXQ7aWYoIWlzTmFOKG4pKXt2YXIgaT1hfHwocnx8W10pLmxlbmd0aHx8MCxzPWUubmV4dCg0KTtzLndyaXRlX3NoaWZ0KDIsbikscy53cml0ZV9zaGlmdCgyLGkpLGk+MCYmcm4ocikmJmUucHVzaChyKX19ZnVuY3Rpb24gSmYo'@; put 'ZSx0KXt2YXIgcj10fHx7fTtudWxsIT16ZSYmbnVsbD09ci5kZW5zZSYmKHIuZGVuc2U9emUpO3ZhciBhPXIuZGVuc2U/W106e30sbj0oZT1lLnJlcGxhY2UoLzwhLS0uKj8tLT4vZywiIikpLm1hdGNoKC88dGFibGUvaSk7aWYoIW4pdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIEhUTUw6IGNv'@; put 'dWxkIG5vdCBmaW5kIDx0YWJsZT4iKTt2YXIgaT1lLm1hdGNoKC88XC90YWJsZS9pKSxzPW4uaW5kZXgsZj1pJiZpLmluZGV4fHxlLmxlbmd0aCxjPXZvKGUuc2xpY2UocyxmKSwvKDo/PHRyW14+XSo+KS9pLCI8dHI+Iiksbz0tMSxsPTAsaD0wLHg9MCxkPXtzOntyOjFlNyxjOjFlN30sZTp7'@; put 'cjowLGM6MH19LHY9W107Zm9yKHM9MDtzPGMubGVuZ3RoOysrcyl7dmFyIHU9Y1tzXS50cmltKCkscD11LnNsaWNlKDAsMykudG9Mb3dlckNhc2UoKTtpZigiPHRyIiE9cCl7aWYoIjx0ZCI9PXB8fCI8dGgiPT1wKXt2YXIgaz11LnNwbGl0KC88XC90W2RoXT4vaSk7Zm9yKGY9MDtmPGsubGVu'@; put 'Z3RoOysrZil7dmFyIFQ9a1tmXS50cmltKCk7aWYoVC5tYXRjaCgvPHRbZGhdL2kpKXtmb3IodmFyIGc9VCxOPTA7IjwiPT1nLmNoYXJBdCgwKSYmKE49Zy5pbmRleE9mKCI+IikpPi0xOylnPWcuc2xpY2UoTisxKTtmb3IodmFyIE09MDtNPHYubGVuZ3RoOysrTSl7dmFyIEk9dltNXTtJLnMu'@; put 'Yz09bCYmSS5zLnI8byYmbzw9SS5lLnImJihsPUkuZS5jKzEsTT0tMSl9dmFyIHk9bWUoVC5zbGljZSgwLFQuaW5kZXhPZigiPiIpKSk7eD15LmNvbHNwYW4/K3kuY29sc3BhbjoxLCgoaD0reS5yb3dzcGFuKT4xfHx4PjEpJiZ2LnB1c2goe3M6e3I6byxjOmx9LGU6e3I6bysoaHx8MSktMSxj'@; put 'OmwreC0xfX0pO3ZhciBQPXkudHx8eVsiZGF0YS10Il18fCIiO2lmKCFnLmxlbmd0aCl7bCs9eDtjb250aW51ZX1pZihnPVdpKGcpLGQucy5yPm8mJihkLnMucj1vKSxkLmUucjxvJiYoZC5lLnI9byksZC5zLmM+bCYmKGQucy5jPWwpLGQuZS5jPGwmJihkLmUuYz1sKSwhZy5sZW5ndGgpe2wr'@; put 'PXg7Y29udGludWV9dmFyIFI9e3Q6InMiLHY6Z307ci5yYXd8fCFnLnRyaW0oKS5sZW5ndGh8fCJzIj09UHx8KCJUUlVFIj09PWc/Uj17dDoiYiIsdjohMH06IkZBTFNFIj09PWc/Uj17dDoiYiIsdjohMX06aXNOYU4oSnIoZykpP2lzTmFOKGFhKGcpLmdldERhdGUoKSl8fChSPXt0OiJkIix2'@; put 'OlhlKGcpfSxyLmNlbGxEYXRlc3x8KFI9e3Q6Im4iLHY6aXIoUi52KX0pLFIuej1yLmRhdGVORnx8cGVbMTRdKTpSPXt0OiJuIix2OkpyKGcpfSksci5kZW5zZT8oYVtvXXx8KGFbb109W10pLGFbb11bbF09Uik6YVtnZSh7cjpvLGM6bH0pXT1SLGwrPXh9fX19ZWxzZXtpZigrK28sci5zaGVl'@; put 'dFJvd3MmJnIuc2hlZXRSb3dzPD1vKXstLW87YnJlYWt9bD0wfX1yZXR1cm4gYVsiIXJlZiJdPXdlKGQpLHYubGVuZ3RoJiYoYVsiIW1lcmdlcyJdPXYpLGF9ZnVuY3Rpb24gUm0oZSl7dmFyIHQ9ZS5yZXBsYWNlKC9bXHRcclxuXS9nLCIgIikudHJpbSgpLnJlcGxhY2UoLyArL2csIiAiKS5y'@; put 'ZXBsYWNlKC88dGV4dDpzXC8+L2csIiAiKS5yZXBsYWNlKC88dGV4dDpzIHRleHQ6Yz0iKFxkKykiXC8+L2csZnVuY3Rpb24oYSxuKXtyZXR1cm4gQXJyYXkocGFyc2VJbnQobiwxMCkrMSkuam9pbigiICIpfSkucmVwbGFjZSgvPHRleHQ6dGFiW14+XSpcLz4vZywiXHQiKS5yZXBsYWNlKC88'@; put 'dGV4dDpsaW5lLWJyZWFrXC8+L2csIlxuIik7cmV0dXJuW0llKHQucmVwbGFjZSgvPFtePl0qPi9nLCIiKSldfXZhciBpYz17ZGF5OlsiZCIsImRkIl0sbW9udGg6WyJtIiwibW0iXSx5ZWFyOlsieSIsInl5Il0saG91cnM6WyJoIiwiaGgiXSxtaW51dGVzOlsibSIsIm1tIl0sc2Vjb25kczpb'@; put 'InMiLCJzcyJdLCJhbS1wbSI6WyJBL1AiLCJBTS9QTSJdLCJkYXktb2Ytd2VlayI6WyJkZGQiLCJkZGRkIl0sZXJhOlsiZSIsImVlIl0scXVhcnRlcjpbIlxcUW0iLCdtXFwidGggcXVhcnRlciInXX07ZnVuY3Rpb24gc2MoZSx0KXt2YXIgcj10fHx7fTtudWxsIT16ZSYmbnVsbD09ci5kZW5z'@; put 'ZSYmKHIuZGVuc2U9emUpO3ZhciBpLHMsbCxoLHUscCxhPVkwKGUpLG49W10sZj17bmFtZToiIn0sYz0iIixvPTAseD17fSxkPVtdLHY9ci5kZW5zZT9bXTp7fSxrPXt2YWx1ZToiIn0sVD0iIixnPTAsTT1bXSxJPS0xLHk9LTEsUD17czp7cjoxZTYsYzoxZTd9LGU6e3I6MCxjOjB9fSxSPTAs'@; put 'Vj17fSxYPVtdLGI9e30sZWU9MCxsZT0wLHJlPVtdLGRlPTEsdWU9MSxGZT1bXSxjZT17TmFtZXM6W119LHhlPXt9LEs9WyIiLCIiXSxDPVtdLFU9e30sTz0iIixEPTAsaj0hMSxzZT0hMSxaPTA7Zm9yKHlhLmxhc3RJbmRleD0wLGE9YS5yZXBsYWNlKC88IS0tKFtcc1xTXSo/KS0tPi9nbSwi'@; put 'IikucmVwbGFjZSgvPCFET0NUWVBFW15cW10qXFtbXlxdXSpcXT4vZ20sIiIpO3U9eWEuZXhlYyhhKTspc3dpdGNoKHVbM109dVszXS5yZXBsYWNlKC9fLiokLywiIikpe2Nhc2UidGFibGUiOmNhc2UiXHU1ZGU1XHU0ZjVjXHU4ODY4IjoiLyI9PT11WzFdPyh2WyIhcmVmIl09UC5lLmM+PVAu'@; put 'cy5jJiZQLmUucj49UC5zLnI/d2UoUCk6IkExOkExIixyLnNoZWV0Um93cz4wJiZyLnNoZWV0Um93czw9UC5lLnImJih2WyIhZnVsbHJlZiJdPXZbIiFyZWYiXSxQLmUucj1yLnNoZWV0Um93cy0xLHZbIiFyZWYiXT13ZShQKSksWC5sZW5ndGgmJih2WyIhbWVyZ2VzIl09WCkscmUubGVuZ3Ro'@; put 'JiYodlsiIXJvd3MiXT1yZSksbC5uYW1lPWwuXHU1NDBkXHU3OWYwfHxsLm5hbWUsdHlwZW9mIEpTT048InUiJiZKU09OLnN0cmluZ2lmeShsKSxkLnB1c2gobC5uYW1lKSx4W2wubmFtZV09dixzZT0hMSk6Ii8iIT09dVswXS5jaGFyQXQodVswXS5sZW5ndGgtMikmJihsPW1lKHVbMF0sITEp'@; put 'LEk9eT0tMSxQLnMucj1QLnMuYz0xZTcsUC5lLnI9UC5lLmM9MCx2PXIuZGVuc2U/W106e30sWD1bXSxyZT1bXSxzZT0hMCk7YnJlYWs7Y2FzZSJ0YWJsZS1yb3ctZ3JvdXAiOiIvIj09PXVbMV0/LS1SOisrUjticmVhaztjYXNlInRhYmxlLXJvdyI6Y2FzZSJcdTg4NGMiOmlmKCIvIj09PXVb'@; put 'MV0pe0krPWRlLGRlPTE7YnJlYWt9aWYoKGg9bWUodVswXSwhMSkpLlx1ODg0Y1x1NTNmNz9JPWguXHU4ODRjXHU1M2Y3LTE6LTE9PUkmJihJPTApLChkZT0raFsibnVtYmVyLXJvd3MtcmVwZWF0ZWQiXXx8MSk8MTApZm9yKFo9MDtaPGRlOysrWilSPjAmJihyZVtJK1pdPXtsZXZlbDpSfSk7'@; put 'eT0tMTticmVhaztjYXNlImNvdmVyZWQtdGFibGUtY2VsbCI6Ii8iIT09dVsxXSYmKyt5LHIuc2hlZXRTdHVicyYmKHIuZGVuc2U/KHZbSV18fCh2W0ldPVtdKSx2W0ldW3ldPXt0OiJ6In0pOnZbZ2Uoe3I6SSxjOnl9KV09e3Q6InoifSksVD0iIixNPVtdO2JyZWFrO2Nhc2UidGFibGUtY2Vs'@; put 'bCI6Y2FzZSJcdTY1NzBcdTYzNmUiOmlmKCIvIj09PXVbMF0uY2hhckF0KHVbMF0ubGVuZ3RoLTIpKSsreSxrPW1lKHVbMF0sITEpLHVlPXBhcnNlSW50KGtbIm51bWJlci1jb2x1bW5zLXJlcGVhdGVkIl18fCIxIiwxMCkscD17dDoieiIsdjpudWxsfSxrLmZvcm11bGEmJjAhPXIuY2VsbEZv'@; put 'cm11bGEmJihwLmY9TmYoSWUoay5mb3JtdWxhKSkpLCJzdHJpbmciPT0oay5cdTY1NzBcdTYzNmVcdTdjN2JcdTU3OGJ8fGtbInZhbHVlLXR5cGUiXSkmJihwLnQ9InMiLHAudj1JZShrWyJzdHJpbmctdmFsdWUiXXx8IiIpLHIuZGVuc2U/KHZbSV18fCh2W0ldPVtdKSx2W0ldW3ldPXApOnZb'@; put 'Z2Uoe3I6SSxjOnl9KV09cCkseSs9dWUtMTtlbHNlIGlmKCIvIiE9PXVbMV0pe1Q9IiIsZz0wLE09W10sdWU9MTt2YXIgUT1kZT9JK2RlLTE6STtpZigrK3k+UC5lLmMmJihQLmUuYz15KSx5PFAucy5jJiYoUC5zLmM9eSksSTxQLnMuciYmKFAucy5yPUkpLFE+UC5lLnImJihQLmUucj1RKSxD'@; put 'PVtdLFU9e30scD17dDooaz1tZSh1WzBdLCExKSkuXHU2NTcwXHU2MzZlXHU3YzdiXHU1NzhifHxrWyJ2YWx1ZS10eXBlIl0sdjpudWxsfSxyLmNlbGxGb3JtdWxhKWlmKGsuZm9ybXVsYSYmKGsuZm9ybXVsYT1JZShrLmZvcm11bGEpKSxrWyJudW1iZXItbWF0cml4LWNvbHVtbnMtc3Bhbm5l'@; put 'ZCJdJiZrWyJudW1iZXItbWF0cml4LXJvd3Mtc3Bhbm5lZCJdJiYoZWU9cGFyc2VJbnQoa1sibnVtYmVyLW1hdHJpeC1yb3dzLXNwYW5uZWQiXSwxMCl8fDAsbGU9cGFyc2VJbnQoa1sibnVtYmVyLW1hdHJpeC1jb2x1bW5zLXNwYW5uZWQiXSwxMCl8fDAscC5GPXdlKGI9e3M6e3I6SSxjOnl9'@; put 'LGU6e3I6SStlZS0xLGM6eStsZS0xfX0pLEZlLnB1c2goW2IscC5GXSkpLGsuZm9ybXVsYSlwLmY9TmYoay5mb3JtdWxhKTtlbHNlIGZvcihaPTA7WjxGZS5sZW5ndGg7KytaKUk+PUZlW1pdWzBdLnMuciYmSTw9RmVbWl1bMF0uZS5yJiZ5Pj1GZVtaXVswXS5zLmMmJnk8PUZlW1pdWzBdLmUu'@; put 'YyYmKHAuRj1GZVtaXVsxXSk7c3dpdGNoKChrWyJudW1iZXItY29sdW1ucy1zcGFubmVkIl18fGtbIm51bWJlci1yb3dzLXNwYW5uZWQiXSkmJihlZT1wYXJzZUludChrWyJudW1iZXItcm93cy1zcGFubmVkIl0sMTApfHwwLGxlPXBhcnNlSW50KGtbIm51bWJlci1jb2x1bW5zLXNwYW5uZWQi'@; put 'XSwxMCl8fDAsWC5wdXNoKGI9e3M6e3I6SSxjOnl9LGU6e3I6SStlZS0xLGM6eStsZS0xfX0pKSxrWyJudW1iZXItY29sdW1ucy1yZXBlYXRlZCJdJiYodWU9cGFyc2VJbnQoa1sibnVtYmVyLWNvbHVtbnMtcmVwZWF0ZWQiXSwxMCkpLHAudCl7Y2FzZSJib29sZWFuIjpwLnQ9ImIiLHAudj1X'@; put 'ZShrWyJib29sZWFuLXZhbHVlIl0pO2JyZWFrO2Nhc2UiZmxvYXQiOmNhc2UicGVyY2VudGFnZSI6Y2FzZSJjdXJyZW5jeSI6cC50PSJuIixwLnY9cGFyc2VGbG9hdChrLnZhbHVlKTticmVhaztjYXNlImRhdGUiOnAudD0iZCIscC52PVhlKGtbImRhdGUtdmFsdWUiXSksci5jZWxsRGF0ZXN8'@; put 'fChwLnQ9Im4iLHAudj1pcihwLnYpKSxwLno9Im0vZC95eSI7YnJlYWs7Y2FzZSJ0aW1lIjpwLnQ9Im4iLHAudj11byhrWyJ0aW1lLXZhbHVlIl0pLzg2NDAwLHIuY2VsbERhdGVzJiYocC50PSJkIixwLnY9bzAocC52KSkscC56PSJISDpNTTpTUyI7YnJlYWs7Y2FzZSJudW1iZXIiOnAudD0i'@; put 'biIscC52PXBhcnNlRmxvYXQoay5cdTY1NzBcdTYzNmVcdTY1NzBcdTUwM2MpO2JyZWFrO2RlZmF1bHQ6aWYoInN0cmluZyIhPT1wLnQmJiJ0ZXh0IiE9PXAudCYmcC50KXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgdmFsdWUgdHlwZSAiK3AudCk7cC50PSJzIixudWxsIT1rWyJzdHJp'@; put 'bmctdmFsdWUiXSYmKFQ9SWUoa1sic3RyaW5nLXZhbHVlIl0pLE09W10pfX1lbHNle2lmKGo9ITEsInMiPT09cC50JiYocC52PVR8fCIiLE0ubGVuZ3RoJiYocC5SPU0pLGo9MD09ZykseGUuVGFyZ2V0JiYocC5sPXhlKSxDLmxlbmd0aD4wJiYocC5jPUMsQz1bXSksVCYmITEhPT1yLmNlbGxU'@; put 'ZXh0JiYocC53PVQpLGomJihwLnQ9InoiLGRlbGV0ZSBwLnYpLCghanx8ci5zaGVldFN0dWJzKSYmIShyLnNoZWV0Um93cyYmci5zaGVldFJvd3M8PUkpKWZvcih2YXIgWT0wO1k8ZGU7KytZKXtpZih1ZT1wYXJzZUludChrWyJudW1iZXItY29sdW1ucy1yZXBlYXRlZCJdfHwiMSIsMTApLHIu'@; put 'ZGVuc2UpZm9yKHZbSStZXXx8KHZbSStZXT1bXSksdltJK1ldW3ldPTA9PVk/cDpNZShwKTstLXVlPjA7KXZbSStZXVt5K3VlXT1NZShwKTtlbHNlIGZvcih2W2dlKHtyOkkrWSxjOnl9KV09cDstLXVlPjA7KXZbZ2Uoe3I6SStZLGM6eSt1ZX0pXT1NZShwKTtQLmUuYzw9eSYmKFAuZS5jPXkp'@; put 'fXkrPSh1ZT1wYXJzZUludChrWyJudW1iZXItY29sdW1ucy1yZXBlYXRlZCJdfHwiMSIsMTApKS0xLHVlPTAscD17fSxUPSIiLE09W119eGU9e307YnJlYWs7Y2FzZSJkb2N1bWVudCI6Y2FzZSJkb2N1bWVudC1jb250ZW50IjpjYXNlIlx1NzUzNVx1NWI1MFx1ODg2OFx1NjgzY1x1NjU4N1x1'@; put 'Njg2MyI6Y2FzZSJzcHJlYWRzaGVldCI6Y2FzZSJcdTRlM2JcdTRmNTMiOmNhc2Uic2NyaXB0cyI6Y2FzZSJzdHlsZXMiOmNhc2UiZm9udC1mYWNlLWRlY2xzIjpjYXNlIm1hc3Rlci1zdHlsZXMiOmlmKCIvIj09PXVbMV0pe2lmKChpPW4ucG9wKCkpWzBdIT09dVszXSl0aHJvdyJCYWQgc3Rh'@; put 'dGU6ICIraX1lbHNlIi8iIT09dVswXS5jaGFyQXQodVswXS5sZW5ndGgtMikmJm4ucHVzaChbdVszXSwhMF0pO2JyZWFrO2Nhc2UiYW5ub3RhdGlvbiI6aWYoIi8iPT09dVsxXSl7aWYoKGk9bi5wb3AoKSlbMF0hPT11WzNdKXRocm93IkJhZCBzdGF0ZTogIitpO1UudD1ULE0ubGVuZ3RoJiYo'@; put 'VS5SPU0pLFUuYT1PLEMucHVzaChVKX1lbHNlIi8iIT09dVswXS5jaGFyQXQodVswXS5sZW5ndGgtMikmJm4ucHVzaChbdVszXSwhMV0pO089IiIsRD0wLFQ9IiIsZz0wLE09W107YnJlYWs7Y2FzZSJjcmVhdG9yIjoiLyI9PT11WzFdP089YS5zbGljZShELHUuaW5kZXgpOkQ9dS5pbmRleCt1'@; put 'WzBdLmxlbmd0aDticmVhaztjYXNlIm1ldGEiOmNhc2UiXHU1MTQzXHU2NTcwXHU2MzZlIjpjYXNlInNldHRpbmdzIjpjYXNlImNvbmZpZy1pdGVtLXNldCI6Y2FzZSJjb25maWctaXRlbS1tYXAtaW5kZXhlZCI6Y2FzZSJjb25maWctaXRlbS1tYXAtZW50cnkiOmNhc2UiY29uZmlnLWl0ZW0t'@; put 'bWFwLW5hbWVkIjpjYXNlInNoYXBlcyI6Y2FzZSJmcmFtZSI6Y2FzZSJ0ZXh0LWJveCI6Y2FzZSJpbWFnZSI6Y2FzZSJkYXRhLXBpbG90LXRhYmxlcyI6Y2FzZSJsaXN0LXN0eWxlIjpjYXNlImZvcm0iOmNhc2UiZGRlLWxpbmtzIjpjYXNlImV2ZW50LWxpc3RlbmVycyI6Y2FzZSJjaGFydCI6'@; put 'aWYoIi8iPT09dVsxXSl7aWYoKGk9bi5wb3AoKSlbMF0hPT11WzNdKXRocm93IkJhZCBzdGF0ZTogIitpfWVsc2UiLyIhPT11WzBdLmNoYXJBdCh1WzBdLmxlbmd0aC0yKSYmbi5wdXNoKFt1WzNdLCExXSk7VD0iIixnPTAsTT1bXTticmVhaztjYXNlInNjaWVudGlmaWMtbnVtYmVyIjpjYXNl'@; put 'ImN1cnJlbmN5LXN5bWJvbCI6Y2FzZSJjdXJyZW5jeS1zdHlsZSI6Y2FzZSJzY3JpcHQiOmNhc2UibGlicmFyaWVzIjpjYXNlImF1dG9tYXRpYy1zdHlsZXMiOmNhc2UiZGVmYXVsdC1zdHlsZSI6Y2FzZSJwYWdlLWxheW91dCI6Y2FzZSJzdHlsZSI6Y2FzZSJtYXAiOmNhc2UiZm9udC1mYWNl'@; put 'IjpjYXNlInBhcmFncmFwaC1wcm9wZXJ0aWVzIjpjYXNlInRhYmxlLXByb3BlcnRpZXMiOmNhc2UidGFibGUtY29sdW1uLXByb3BlcnRpZXMiOmNhc2UidGFibGUtcm93LXByb3BlcnRpZXMiOmNhc2UidGFibGUtY2VsbC1wcm9wZXJ0aWVzIjpjYXNlImZyYWN0aW9uIjpjYXNlImJvb2xlYW4t'@; put 'c3R5bGUiOmNhc2UiYm9vbGVhbiI6Y2FzZSJ0ZXh0LXN0eWxlIjpjYXNlInRleHQtY29udGVudCI6Y2FzZSJ0ZXh0LXByb3BlcnRpZXMiOmNhc2UiZW1iZWRkZWQtdGV4dCI6Y2FzZSJib2R5IjpjYXNlIlx1NzUzNVx1NWI1MFx1ODg2OFx1NjgzYyI6Y2FzZSJmb3JtcyI6Y2FzZSJ0YWJsZS1j'@; put 'b2x1bW4iOmNhc2UidGFibGUtaGVhZGVyLXJvd3MiOmNhc2UidGFibGUtcm93cyI6Y2FzZSJ0YWJsZS1jb2x1bW4tZ3JvdXAiOmNhc2UidGFibGUtaGVhZGVyLWNvbHVtbnMiOmNhc2UidGFibGUtY29sdW1ucyI6Y2FzZSJudWxsLWRhdGUiOmNhc2UiZ3JhcGhpYy1wcm9wZXJ0aWVzIjpjYXNl'@; put 'ImNhbGN1bGF0aW9uLXNldHRpbmdzIjpjYXNlIm5hbWVkLWV4cHJlc3Npb25zIjpjYXNlImxhYmVsLXJhbmdlIjpjYXNlImxhYmVsLXJhbmdlcyI6Y2FzZSJuYW1lZC1leHByZXNzaW9uIjpjYXNlInNvcnQiOmNhc2Uic29ydC1ieSI6Y2FzZSJzb3J0LWdyb3VwcyI6Y2FzZSJ0YWIiOmNhc2Ui'@; put 'bGluZS1icmVhayI6Y2FzZSJzcGFuIjpjYXNlInMiOmNhc2UiZGF0ZSI6Y2FzZSJvYmplY3QiOmNhc2UidGl0bGUiOmNhc2UiXHU2ODA3XHU5ODk4IjpjYXNlImRlc2MiOmNhc2UiYmluYXJ5LWRhdGEiOmNhc2UidGFibGUtc291cmNlIjpjYXNlInNjZW5hcmlvIjpjYXNlIml0ZXJhdGlvbiI6'@; put 'Y2FzZSJjb250ZW50LXZhbGlkYXRpb25zIjpjYXNlImNvbnRlbnQtdmFsaWRhdGlvbiI6Y2FzZSJoZWxwLW1lc3NhZ2UiOmNhc2UiZXJyb3ItbWVzc2FnZSI6Y2FzZSJkYXRhYmFzZS1yYW5nZXMiOmNhc2UiZmlsdGVyIjpjYXNlImZpbHRlci1hbmQiOmNhc2UiZmlsdGVyLW9yIjpjYXNlImZp'@; put 'bHRlci1jb25kaXRpb24iOmNhc2UibGlzdC1sZXZlbC1zdHlsZS1idWxsZXQiOmNhc2UibGlzdC1sZXZlbC1zdHlsZS1udW1iZXIiOmNhc2UibGlzdC1sZXZlbC1wcm9wZXJ0aWVzIjpjYXNlInNlbmRlci1maXJzdG5hbWUiOmNhc2Uic2VuZGVyLWxhc3RuYW1lIjpjYXNlInNlbmRlci1pbml0'@; put 'aWFscyI6Y2FzZSJzZW5kZXItdGl0bGUiOmNhc2Uic2VuZGVyLXBvc2l0aW9uIjpjYXNlInNlbmRlci1lbWFpbCI6Y2FzZSJzZW5kZXItcGhvbmUtcHJpdmF0ZSI6Y2FzZSJzZW5kZXItZmF4IjpjYXNlInNlbmRlci1jb21wYW55IjpjYXNlInNlbmRlci1waG9uZS13b3JrIjpjYXNlInNlbmRl'@; put 'ci1zdHJlZXQiOmNhc2Uic2VuZGVyLWNpdHkiOmNhc2Uic2VuZGVyLXBvc3RhbC1jb2RlIjpjYXNlInNlbmRlci1jb3VudHJ5IjpjYXNlInNlbmRlci1zdGF0ZS1vci1wcm92aW5jZSI6Y2FzZSJhdXRob3ItbmFtZSI6Y2FzZSJhdXRob3ItaW5pdGlhbHMiOmNhc2UiY2hhcHRlciI6Y2FzZSJm'@; put 'aWxlLW5hbWUiOmNhc2UidGVtcGxhdGUtbmFtZSI6Y2FzZSJzaGVldC1uYW1lIjpjYXNlImV2ZW50LWxpc3RlbmVyIjpjYXNlImluaXRpYWwtY3JlYXRvciI6Y2FzZSJjcmVhdGlvbi1kYXRlIjpjYXNlInByaW50LWRhdGUiOmNhc2UiZ2VuZXJhdG9yIjpjYXNlImRvY3VtZW50LXN0YXRpc3Rp'@; put 'YyI6Y2FzZSJ1c2VyLWRlZmluZWQiOmNhc2UiZWRpdGluZy1kdXJhdGlvbiI6Y2FzZSJlZGl0aW5nLWN5Y2xlcyI6Y2FzZSJjb25maWctaXRlbSI6Y2FzZSJwYWdlLW51bWJlciI6Y2FzZSJwYWdlLWNvdW50IjpjYXNlInRpbWUiOmNhc2UiY2VsbC1yYW5nZS1zb3VyY2UiOmNhc2UiZGV0ZWN0'@; put 'aXZlIjpjYXNlIm9wZXJhdGlvbiI6Y2FzZSJoaWdobGlnaHRlZC1yYW5nZSI6Y2FzZSJkYXRhLXBpbG90LXRhYmxlIjpjYXNlInNvdXJjZS1jZWxsLXJhbmdlIjpjYXNlInNvdXJjZS1zZXJ2aWNlIjpjYXNlImRhdGEtcGlsb3QtZmllbGQiOmNhc2UiZGF0YS1waWxvdC1sZXZlbCI6Y2FzZSJk'@; put 'YXRhLXBpbG90LXN1YnRvdGFscyI6Y2FzZSJkYXRhLXBpbG90LXN1YnRvdGFsIjpjYXNlImRhdGEtcGlsb3QtbWVtYmVycyI6Y2FzZSJkYXRhLXBpbG90LW1lbWJlciI6Y2FzZSJkYXRhLXBpbG90LWRpc3BsYXktaW5mbyI6Y2FzZSJkYXRhLXBpbG90LXNvcnQtaW5mbyI6Y2FzZSJkYXRhLXBp'@; put 'bG90LWxheW91dC1pbmZvIjpjYXNlImRhdGEtcGlsb3QtZmllbGQtcmVmZXJlbmNlIjpjYXNlImRhdGEtcGlsb3QtZ3JvdXBzIjpjYXNlImRhdGEtcGlsb3QtZ3JvdXAiOmNhc2UiZGF0YS1waWxvdC1ncm91cC1tZW1iZXIiOmNhc2UicmVjdCI6Y2FzZSJkZGUtY29ubmVjdGlvbi1kZWNscyI6'@; put 'Y2FzZSJkZGUtY29ubmVjdGlvbi1kZWNsIjpjYXNlImRkZS1saW5rIjpjYXNlImRkZS1zb3VyY2UiOmNhc2UicHJvcGVydGllcyI6Y2FzZSJwcm9wZXJ0eSI6Y2FzZSJ0YWJsZS1wcm90ZWN0aW9uIjpjYXNlImRhdGEtcGlsb3QtZ3JhbmQtdG90YWwiOmNhc2Uib2ZmaWNlLWRvY3VtZW50LWNv'@; put 'bW1vbi1hdHRycyI6YnJlYWs7Y2FzZSJudW1iZXItc3R5bGUiOmNhc2UicGVyY2VudGFnZS1zdHlsZSI6Y2FzZSJkYXRlLXN0eWxlIjpjYXNlInRpbWUtc3R5bGUiOmlmKCIvIj09PXVbMV0pe2lmKFZbZi5uYW1lXT1jLChpPW4ucG9wKCkpWzBdIT09dVszXSl0aHJvdyJCYWQgc3RhdGU6ICIr'@; put 'aX1lbHNlIi8iIT09dVswXS5jaGFyQXQodVswXS5sZW5ndGgtMikmJihjPSIiLGY9bWUodVswXSwhMSksbi5wdXNoKFt1WzNdLCEwXSkpO2JyZWFrO2Nhc2UibnVtYmVyIjpjYXNlImRheSI6Y2FzZSJtb250aCI6Y2FzZSJ5ZWFyIjpjYXNlImVyYSI6Y2FzZSJkYXktb2Ytd2VlayI6Y2FzZSJ3'@; put 'ZWVrLW9mLXllYXIiOmNhc2UicXVhcnRlciI6Y2FzZSJob3VycyI6Y2FzZSJtaW51dGVzIjpjYXNlInNlY29uZHMiOmNhc2UiYW0tcG0iOnN3aXRjaChuW24ubGVuZ3RoLTFdWzBdKXtjYXNlInRpbWUtc3R5bGUiOmNhc2UiZGF0ZS1zdHlsZSI6cz1tZSh1WzBdLCExKSxjKz1pY1t1WzNdXVsi'@; put 'bG9uZyI9PT1zLnN0eWxlPzE6MF19YnJlYWs7Y2FzZSJ0ZXh0IjppZigiLz4iPT09dVswXS5zbGljZSgtMikpYnJlYWs7aWYoIi8iPT09dVsxXSlzd2l0Y2gobltuLmxlbmd0aC0xXVswXSl7Y2FzZSJudW1iZXItc3R5bGUiOmNhc2UiZGF0ZS1zdHlsZSI6Y2FzZSJ0aW1lLXN0eWxlIjpjKz1h'@; put 'LnNsaWNlKG8sdS5pbmRleCl9ZWxzZSBvPXUuaW5kZXgrdVswXS5sZW5ndGg7YnJlYWs7Y2FzZSJuYW1lZC1yYW5nZSI6Sz1ibigocz1tZSh1WzBdLCExKSlbImNlbGwtcmFuZ2UtYWRkcmVzcyJdKTt2YXIgRWU9e05hbWU6cy5uYW1lLFJlZjpLWzBdKyIhIitLWzFdfTtzZSYmKEVlLlNoZWV0'@; put 'PWQubGVuZ3RoKSxjZS5OYW1lcy5wdXNoKEVlKTticmVhaztjYXNlInAiOmNhc2UiXHU2NTg3XHU2NzJjXHU0ZTMyIjppZihbIm1hc3Rlci1zdHlsZXMiXS5pbmRleE9mKG5bbi5sZW5ndGgtMV1bMF0pPi0xKWJyZWFrO2lmKCIvIiE9PXVbMV18fGsmJmtbInN0cmluZy12YWx1ZSJdKW1lKHVb'@; put 'MF0sITEpLGc9dS5pbmRleCt1WzBdLmxlbmd0aDtlbHNle3ZhciBBPVJtKGEuc2xpY2UoZyx1LmluZGV4KSk7VD0oVC5sZW5ndGg+MD9UKyJcbiI6IiIpK0FbMF19YnJlYWs7Y2FzZSJkYXRhYmFzZS1yYW5nZSI6aWYoIi8iPT09dVsxXSlicmVhazt0cnl7eFsoSz1ibihtZSh1WzBdKVsidGFy'@; put 'Z2V0LXJhbmdlLWFkZHJlc3MiXSkpWzBdXVsiIWF1dG9maWx0ZXIiXT17cmVmOktbMV19fWNhdGNoe31icmVhaztjYXNlImEiOmlmKCIvIiE9PXVbMV0pe2lmKCEoeGU9bWUodVswXSwhMSkpLmhyZWYpYnJlYWs7eGUuVGFyZ2V0PUllKHhlLmhyZWYpLGRlbGV0ZSB4ZS5ocmVmLCIjIj09eGUu'@; put 'VGFyZ2V0LmNoYXJBdCgwKSYmeGUuVGFyZ2V0LmluZGV4T2YoIi4iKT4tMT8oSz1ibih4ZS5UYXJnZXQuc2xpY2UoMSkpLHhlLlRhcmdldD0iIyIrS1swXSsiISIrS1sxXSk6eGUuVGFyZ2V0Lm1hdGNoKC9eXC5cLltcXFwvXS8pJiYoeGUuVGFyZ2V0PXhlLlRhcmdldC5zbGljZSgzKSl9YnJl'@; put 'YWs7ZGVmYXVsdDpzd2l0Y2godVsyXSl7Y2FzZSJkYzoiOmNhc2UiY2FsY2V4dDoiOmNhc2UibG9leHQ6IjpjYXNlIm9vbzoiOmNhc2UiY2hhcnRvb286IjpjYXNlImRyYXc6IjpjYXNlInN0eWxlOiI6Y2FzZSJjaGFydDoiOmNhc2UiZm9ybToiOmNhc2UidW9mOiI6Y2FzZSJcdTg4Njg6Ijpj'@; put 'YXNlIlx1NWI1NzoiOmJyZWFrO2RlZmF1bHQ6aWYoci5XVEYpdGhyb3cgbmV3IEVycm9yKHUpfX12YXIgUGU9e1NoZWV0czp4LFNoZWV0TmFtZXM6ZCxXb3JrYm9vazpjZX07cmV0dXJuIHIuYm9va1NoZWV0cyYmZGVsZXRlIFBlLlNoZWV0cyxQZX1mdW5jdGlvbiBjYyhlLHQpe3JldHVybiBz'@; put 'YyhlLHQpfWZ1bmN0aW9uIEp0KGUpe3JldHVybiBuZXcgRGF0YVZpZXcoZS5idWZmZXIsZS5ieXRlT2Zmc2V0LGUuYnl0ZUxlbmd0aCl9ZnVuY3Rpb24gSG4oZSl7cmV0dXJuIHR5cGVvZiBUZXh0RGVjb2RlcjwidSI/KG5ldyBUZXh0RGVjb2RlcikuZGVjb2RlKGUpOkJlKHd0KGUpKX1mdW5j'@; put 'dGlvbiBEdChlKXt2YXIgdD1lLnJlZHVjZShmdW5jdGlvbihuLGkpe3JldHVybiBuK2kubGVuZ3RofSwwKSxyPW5ldyBVaW50OEFycmF5KHQpLGE9MDtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKG4pe3Iuc2V0KG4sYSksYSs9bi5sZW5ndGh9KSxyfWZ1bmN0aW9uIHVjKGUpe3JldHVybiAx'@; put 'Njg0MzAwOSooKGU9KDg1ODk5MzQ1OSYoZS09ZT4+MSYxNDMxNjU1NzY1KSkrKGU+PjImODU4OTkzNDU5KSkrKGU+PjQpJjI1MjY0NTEzNSk+Pj4yNH1mdW5jdGlvbiBLYShlLHQpe3ZhciByPXQ/dFswXTowLGE9MTI3JmVbcl07ZTppZihlW3IrK10+PTEyOCYmKGF8PSgxMjcmZVtyXSk8PDcs'@; put 'ZVtyKytdPDEyOHx8KGF8PSgxMjcmZVtyXSk8PDE0LGVbcisrXTwxMjgpfHwoYXw9KDEyNyZlW3JdKTw8MjEsZVtyKytdPDEyOCl8fChhKz0oMTI3JmVbcl0pKk1hdGgucG93KDIsMjgpLCsrcixlW3IrK108MTI4KXx8KGErPSgxMjcmZVtyXSkqTWF0aC5wb3coMiwzNSksKytyLGVbcisrXTwx'@; put 'MjgpfHwoYSs9KDEyNyZlW3JdKSpNYXRoLnBvdygyLDQyKSwrK3IsZVtyKytdPDEyOCkpKWJyZWFrIGU7cmV0dXJuIHQmJih0WzBdPXIpLGF9ZnVuY3Rpb24gWWUoZSl7dmFyIHQ9MCxyPTEyNyZlW3RdO2U6aWYoZVt0KytdPj0xMjgpe2lmKHJ8PSgxMjcmZVt0XSk8PDcsZVt0KytdPDEyOHx8'@; put 'KHJ8PSgxMjcmZVt0XSk8PDE0LGVbdCsrXTwxMjgpfHwocnw9KDEyNyZlW3RdKTw8MjEsZVt0KytdPDEyOCkpYnJlYWsgZTtyfD0oMTI3JmVbdF0pPDwyOH1yZXR1cm4gcn1mdW5jdGlvbiBSZShlKXtmb3IodmFyIHQ9W10scj1bMF07clswXTxlLmxlbmd0aDspe3ZhciBmLGE9clswXSxuPUth'@; put 'KGUsciksaT03Jm4scz0wO2lmKDA9PShuPU1hdGguZmxvb3Iobi84KSkpYnJlYWs7c3dpdGNoKGkpe2Nhc2UgMDpmb3IodmFyIGM9clswXTtlW3JbMF0rK10+PTEyODspO2Y9ZS5zbGljZShjLHJbMF0pO2JyZWFrO2Nhc2UgNTpmPWUuc2xpY2UoclswXSxyWzBdKyhzPTQpKSxyWzBdKz1zO2Jy'@; put 'ZWFrO2Nhc2UgMTpmPWUuc2xpY2UoclswXSxyWzBdKyhzPTgpKSxyWzBdKz1zO2JyZWFrO2Nhc2UgMjpzPUthKGUsciksZj1lLnNsaWNlKHJbMF0sclswXStzKSxyWzBdKz1zO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJQQiBUeXBlICIuY29uY2F0KGksIiBmb3IgRmllbGQgIiku'@; put 'Y29uY2F0KG4sIiBhdCBvZmZzZXQgIikuY29uY2F0KGEpKX12YXIgbz17ZGF0YTpmLHR5cGU6aX07bnVsbD09dFtuXT90W25dPVtvXTp0W25dLnB1c2gobyl9cmV0dXJuIHR9ZnVuY3Rpb24gVm4oZSx0KXtyZXR1cm4gZT8ubWFwKGZ1bmN0aW9uKHIpe3JldHVybiB0KHIuZGF0YSl9KXx8W119'@; put 'ZnVuY3Rpb24gTW0oZSx0KXtpZigwIT1lKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBTbmFwcHkgY2h1bmsgdHlwZSAiLmNvbmNhdChlKSk7Zm9yKHZhciByPVswXSxhPUthKHQsciksbj1bXTtyWzBdPHQubGVuZ3RoOyl7dmFyIGk9MyZ0W3JbMF1dO2lmKDAhPWkpe3ZhciBjPTAsbz0w'@; put 'O2lmKDE9PWk/KG89NCsodFtyWzBdXT4+MiY3KSxjPSgyMjQmdFtyWzBdKytdKTw8MyxjfD10W3JbMF0rK10pOihvPTErKHRbclswXSsrXT4+MiksMj09aT8oYz10W3JbMF1dfHRbclswXSsxXTw8OCxyWzBdKz0yKTooYz0odFtyWzBdXXx0W3JbMF0rMV08PDh8dFtyWzBdKzJdPDwxNnx0W3Jb'@; put 'MF0rM108PDI0KT4+PjAsclswXSs9NCkpLG49W0R0KG4pXSwwPT1jKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBvZmZzZXQgMCIpO2lmKGM+blswXS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIG9mZnNldCBiZXlvbmQgbGVuZ3RoIik7aWYobz49Yylmb3Iobi5wdXNoKG5bMF0u'@; put 'c2xpY2UoLWMpKSxvLT1jO28+PW5bbi5sZW5ndGgtMV0ubGVuZ3RoOyluLnB1c2gobltuLmxlbmd0aC0xXSksby09bltuLmxlbmd0aC0xXS5sZW5ndGg7bi5wdXNoKG5bMF0uc2xpY2UoLWMsLWMrbykpfWVsc2V7dmFyIHM9dFtyWzBdKytdPj4yO2lmKHM8NjApKytzO2Vsc2V7dmFyIGY9cy01'@; put 'OTtzPXRbclswXV0sZj4xJiYoc3w9dFtyWzBdKzFdPDw4KSxmPjImJihzfD10W3JbMF0rMl08PDE2KSxmPjMmJihzfD10W3JbMF0rM108PDI0KSxzPj4+PTAscysrLHJbMF0rPWZ9bi5wdXNoKHQuc2xpY2UoclswXSxyWzBdK3MpKSxyWzBdKz1zfX12YXIgbD1EdChuKTtpZihsLmxlbmd0aCE9'@; put 'YSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgbGVuZ3RoOiAiLmNvbmNhdChsLmxlbmd0aCwiICE9ICIpLmNvbmNhdChhKSk7cmV0dXJuIGx9ZnVuY3Rpb24gSG0oZSx0LHIpe3N3aXRjaChlWzBdKXtjYXNlIDA6Y2FzZSAxOmNhc2UgMjpjYXNlIDM6cmV0dXJuIGZ1bmN0aW9uIFVtKGUs'@; put 'dCxyLGEpe3ZhciBoLG49SnQoZSksaT1uLmdldFVpbnQzMig0LCEwKSxzPShhPjE/MTI6OCkrNCp1YyhpJihhPjE/MzQ3MDozOTgpKSxmPS0xLGM9LTEsbz1OYU4sbD1uZXcgRGF0ZSgyMDAxLDAsMSk7c3dpdGNoKDUxMiZpJiYoZj1uLmdldFVpbnQzMihzLCEwKSxzKz00KSxzKz00KnVjKGkm'@; put 'KGE+MT8xMjI4ODo0MDk2KSksMTYmaSYmKGM9bi5nZXRVaW50MzIocywhMCkscys9NCksMzImaSYmKG89bi5nZXRGbG9hdDY0KHMsITApLHMrPTgpLDY0JmkmJihsLnNldFRpbWUobC5nZXRUaW1lKCkrMWUzKm4uZ2V0RmxvYXQ2NChzLCEwKSkscys9OCksZVsyXSl7Y2FzZSAwOmJyZWFrO2Nh'@; put 'c2UgMjpoPXt0OiJuIix2Om99O2JyZWFrO2Nhc2UgMzpoPXt0OiJzIix2OnRbY119O2JyZWFrO2Nhc2UgNTpoPXt0OiJkIix2Omx9O2JyZWFrO2Nhc2UgNjpoPXt0OiJiIix2Om8+MH07YnJlYWs7Y2FzZSA3Omg9e3Q6Im4iLHY6by84NjQwMH07YnJlYWs7Y2FzZSA4Omg9e3Q6ImUiLHY6MH07'@; put 'YnJlYWs7Y2FzZSA5OmlmKGY+LTEpaD17dDoicyIsdjpyW2ZdfTtlbHNlIGlmKGM+LTEpaD17dDoicyIsdjp0W2NdfTtlbHNle2lmKGlzTmFOKG8pKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgY2VsbCB0eXBlICIuY29uY2F0KGUuc2xpY2UoMCw0KSkpO2g9e3Q6Im4iLHY6b319YnJl'@; put 'YWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGNlbGwgdHlwZSAiLmNvbmNhdChlLnNsaWNlKDAsNCkpKX1yZXR1cm4gaH0oZSx0LHIsZVswXSk7Y2FzZSA1OnJldHVybiBmdW5jdGlvbiBXbShlLHQscil7dmFyIGgsYT1KdChlKSxuPWEuZ2V0VWludDMyKDgsITApLGk9'@; put 'MTIscz0tMSxmPS0xLGM9TmFOLG89TmFOLGw9bmV3IERhdGUoMjAwMSwwLDEpO3N3aXRjaCgxJm4mJihjPWZ1bmN0aW9uIExtKGUsdCl7Zm9yKHZhciByPSgxMjcmZVt0KzE1XSk8PDd8ZVt0KzE0XT4+MSxhPTEmZVt0KzE0XSxuPXQrMTM7bj49dDstLW4pYT0yNTYqYStlW25dO3JldHVybigx'@; put 'MjgmZVt0KzE1XT8tYTphKSpNYXRoLnBvdygxMCxyLTYxNzYpfShlLGkpLGkrPTE2KSwyJm4mJihvPWEuZ2V0RmxvYXQ2NChpLCEwKSxpKz04KSw0Jm4mJihsLnNldFRpbWUobC5nZXRUaW1lKCkrMWUzKmEuZ2V0RmxvYXQ2NChpLCEwKSksaSs9OCksOCZuJiYoZj1hLmdldFVpbnQzMihpLCEw'@; put 'KSxpKz00KSwxNiZuJiYocz1hLmdldFVpbnQzMihpLCEwKSxpKz00KSxlWzFdKXtjYXNlIDA6YnJlYWs7Y2FzZSAyOmNhc2UgMTA6aD17dDoibiIsdjpjfTticmVhaztjYXNlIDM6aD17dDoicyIsdjp0W2ZdfTticmVhaztjYXNlIDU6aD17dDoiZCIsdjpsfTticmVhaztjYXNlIDY6aD17dDoi'@; put 'YiIsdjpvPjB9O2JyZWFrO2Nhc2UgNzpoPXt0OiJuIix2Om8vODY0MDB9O2JyZWFrO2Nhc2UgODpoPXt0OiJlIix2OjB9O2JyZWFrO2Nhc2UgOTppZighKHM+LTEpKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgY2VsbCB0eXBlICIuY29uY2F0KGVbMV0sIiA6ICIpLmNvbmNhdCgzMSZu'@; put 'LCIgOiAiKS5jb25jYXQoZS5zbGljZSgwLDQpKSk7aD17dDoicyIsdjpyW3NdfTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgY2VsbCB0eXBlICIuY29uY2F0KGVbMV0sIiA6ICIpLmNvbmNhdCgzMSZuLCIgOiAiKS5jb25jYXQoZS5zbGljZSgwLDQpKSl9cmV0'@; put 'dXJuIGh9KGUsdCxyKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgcGF5bG9hZCB2ZXJzaW9uICIuY29uY2F0KGVbMF0pKX19ZnVuY3Rpb24gRXIoZSl7cmV0dXJuIEthKFJlKGUpWzFdWzBdLmRhdGEpfWZ1bmN0aW9uIGhjKGUsdCl7dmFyIHI9UmUodC5kYXRhKSxhPVll'@; put 'KHJbMV1bMF0uZGF0YSksaT1bXTtyZXR1cm4oclszXXx8W10pLmZvckVhY2goZnVuY3Rpb24ocyl7dmFyIGY9UmUocy5kYXRhKSxjPVllKGZbMV1bMF0uZGF0YSk+Pj4wO3N3aXRjaChhKXtjYXNlIDE6aVtjXT1IbihmWzNdWzBdLmRhdGEpO2JyZWFrO2Nhc2UgODp2YXIgbD1SZShlW0VyKGZb'@; put 'OV1bMF0uZGF0YSldWzBdLmRhdGEpLGg9ZVtFcihsWzFdWzBdLmRhdGEpXVswXSx4PVllKGgubWV0YVsxXVswXS5kYXRhKTtpZigyMDAxIT14KXRocm93IG5ldyBFcnJvcigiMjAwMCB1bmV4cGVjdGVkIHJlZmVyZW5jZSB0byAiLmNvbmNhdCh4KSk7dmFyIGQ9UmUoaC5kYXRhKTtpW2NdPWRb'@; put 'M10ubWFwKGZ1bmN0aW9uKHYpe3JldHVybiBIbih2LmRhdGEpfSkuam9pbigiIil9fSksaX1mdW5jdGlvbiB6bShlLHQpe3ZhciBhPXsiIXJlZiI6IkExIn0sbj1lW0VyKFJlKHQuZGF0YSlbMl1bMF0uZGF0YSldLGk9WWUoblswXS5tZXRhWzFdWzBdLmRhdGEpO2lmKDYwMDEhPWkpdGhyb3cg'@; put 'bmV3IEVycm9yKCI2MDAwIHVuZXhwZWN0ZWQgcmVmZXJlbmNlIHRvICIuY29uY2F0KGkpKTtyZXR1cm4gZnVuY3Rpb24gR20oZSx0LHIpe3ZhciBhLG49UmUodC5kYXRhKSxpPXtzOntyOjAsYzowfSxlOntyOjAsYzowfX07aWYoaS5lLnI9KFllKG5bNl1bMF0uZGF0YSk+Pj4wKS0xLGkuZS5y'@; put 'PDApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHJvdyB2YXJpbnQgIi5jb25jYXQobls2XVswXS5kYXRhKSk7aWYoaS5lLmM9KFllKG5bN11bMF0uZGF0YSk+Pj4wKS0xLGkuZS5jPDApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNvbCB2YXJpbnQgIi5jb25jYXQobls3XVswXS5kYXRhKSk7'@; put 'clsiIXJlZiJdPXdlKGkpO3ZhciBzPVJlKG5bNF1bMF0uZGF0YSksZj1oYyhlLGVbRXIoc1s0XVswXS5kYXRhKV1bMF0pLGM9bnVsbCE9KGE9c1sxN10pJiZhWzBdP2hjKGUsZVtFcihzWzE3XVswXS5kYXRhKV1bMF0pOltdLG89UmUoc1szXVswXS5kYXRhKSxsPTA7b1sxXS5mb3JFYWNoKGZ1'@; put 'bmN0aW9uKGgpe3ZhciB4PVJlKGguZGF0YSksZD1lW0VyKHhbMl1bMF0uZGF0YSldWzBdLHY9WWUoZC5tZXRhWzFdWzBdLmRhdGEpO2lmKDYwMDIhPXYpdGhyb3cgbmV3IEVycm9yKCI2MDAxIHVuZXhwZWN0ZWQgcmVmZXJlbmNlIHRvICIuY29uY2F0KHYpKTt2YXIgdT1mdW5jdGlvbiBYbShl'@; put 'LHQpe3ZhciByLGE9UmUodC5kYXRhKSxuPW51bGwhPShyPWE/Lls3XSkmJnJbMF0/WWUoYVs3XVswXS5kYXRhKT4+PjA+MD8xOjA6LTEsaT1WbihhWzVdLGZ1bmN0aW9uKHMpe3JldHVybiBmdW5jdGlvbiBWbShlLHQpe3ZhciByLGEsbixpLHMsZixjLG8sbCxoLHgsZCx2LHUsTixNLHA9UmUo'@; put 'ZSksaz1ZZShwWzFdWzBdLmRhdGEpPj4+MCxUPVllKHBbMl1bMF0uZGF0YSk+Pj4wLGc9KG51bGw9PShhPW51bGw9PShyPXBbOF0pP3ZvaWQgMDpyWzBdKT92b2lkIDA6YS5kYXRhKSYmWWUocFs4XVswXS5kYXRhKT4wfHwhMTtpZihudWxsIT0oaT1udWxsPT0obj1wWzddKT92b2lkIDA6blsw'@; put 'XSkmJmkuZGF0YSYmMCE9dClOPW51bGw9PShmPW51bGw9PShzPXBbN10pP3ZvaWQgMDpzWzBdKT92b2lkIDA6Zi5kYXRhLE09bnVsbD09KG89bnVsbD09KGM9cFs2XSk/dm9pZCAwOmNbMF0pP3ZvaWQgMDpvLmRhdGE7ZWxzZXtpZihudWxsPT0oaD1udWxsPT0obD1wWzRdKT92b2lkIDA6bFsw'@; put 'XSl8fCFoLmRhdGF8fDE9PXQpdGhyb3ciTlVNQkVSUyBUaWxlIG1pc3NpbmcgIi5jb25jYXQodCwiIGNlbGwgc3RvcmFnZSIpO049bnVsbD09KGQ9bnVsbD09KHg9cFs0XSk/dm9pZCAwOnhbMF0pP3ZvaWQgMDpkLmRhdGEsTT1udWxsPT0odT1udWxsPT0odj1wWzNdKT92b2lkIDA6dlswXSk/'@; put 'dm9pZCAwOnUuZGF0YX1mb3IodmFyIEk9Zz80OjEseT1KdChOKSxQPVtdLFI9MDtSPE4ubGVuZ3RoLzI7KytSKXt2YXIgVj15LmdldFVpbnQxNigyKlIsITApO1Y8NjU1MzUmJlAucHVzaChbUixWXSl9aWYoUC5sZW5ndGghPVQpdGhyb3ciRXhwZWN0ZWQgIi5jb25jYXQoVCwiIGNlbGxzLCBm'@; put 'b3VuZCAiKS5jb25jYXQoUC5sZW5ndGgpO3ZhciBYPVtdO2ZvcihSPTA7UjxQLmxlbmd0aC0xOysrUilYW1BbUl1bMF1dPU0uc3ViYXJyYXkoUFtSXVsxXSpJLFBbUisxXVsxXSpJKTtyZXR1cm4gUC5sZW5ndGg+PTEmJihYW1BbUC5sZW5ndGgtMV1bMF1dPU0uc3ViYXJyYXkoUFtQLmxlbmd0'@; put 'aC0xXVsxXSpJKSkse1I6ayxjZWxsczpYfX0ocyxuKX0pO3JldHVybntucm93czpZZShhWzRdWzBdLmRhdGEpPj4+MCxkYXRhOmkucmVkdWNlKGZ1bmN0aW9uKHMsZil7cmV0dXJuIHNbZi5SXXx8KHNbZi5SXT1bXSksZi5jZWxscy5mb3JFYWNoKGZ1bmN0aW9uKGMsbyl7aWYoc1tmLlJdW29d'@; put 'KXRocm93IG5ldyBFcnJvcigiRHVwbGljYXRlIGNlbGwgcj0iLmNvbmNhdChmLlIsIiBjPSIpLmNvbmNhdChvKSk7c1tmLlJdW29dPWN9KSxzfSxbXSl9fSgwLGQpO3UuZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKHAsayl7cC5mb3JFYWNoKGZ1bmN0aW9uKFQsZyl7dmFyIE49Z2Uoe3I6bCtrLGM6'@; put 'Z30pLE09SG0oVCxmLGMpO00mJihyW05dPU0pfSl9KSxsKz11Lm5yb3dzfSl9KGUsblswXSxhKSxhfWZ1bmN0aW9uIHpuKGUpe3ZhciB0LHIsYSxuLGk9e30scz1bXTtpZihlLkZ1bGxQYXRocy5mb3JFYWNoKGZ1bmN0aW9uKGMpe2lmKGMubWF0Y2goL1wuaXdwdjIvKSl0aHJvdyBuZXcgRXJy'@; put 'b3IoIlVuc3VwcG9ydGVkIHBhc3N3b3JkIHByb3RlY3Rpb24iKX0pLGUuRmlsZUluZGV4LmZvckVhY2goZnVuY3Rpb24oYyl7aWYoYy5uYW1lLm1hdGNoKC9cLml3YSQvKSl7dmFyIG8sbDt0cnl7bz1mdW5jdGlvbiB6cihlKXtmb3IodmFyIHQ9W10scj0wO3I8ZS5sZW5ndGg7KXt2YXIgYT1l'@; put 'W3IrK10sbj1lW3JdfGVbcisxXTw8OHxlW3IrMl08PDE2O3QucHVzaChNbShhLGUuc2xpY2Uocis9MyxyK24pKSkscis9bn1pZihyIT09ZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJkYXRhIGlzIG5vdCBhIHZhbGlkIGZyYW1lZCBzdHJlYW0hIik7cmV0dXJuIER0KHQpfShjLmNvbnRlbnQp'@; put 'fWNhdGNoKGgpe3JldHVybiBjb25zb2xlLmxvZygiPz8gIitjLmNvbnRlbnQubGVuZ3RoKyIgIisoaC5tZXNzYWdlfHxoKSl9dHJ5e2w9ZnVuY3Rpb24gR3IoZSl7Zm9yKHZhciB0LHI9W10sYT1bMF07YVswXTxlLmxlbmd0aDspe3ZhciBuPUthKGUsYSksaT1SZShlLnNsaWNlKGFbMF0sYVsw'@; put 'XStuKSk7YVswXSs9bjt2YXIgcz17aWQ6WWUoaVsxXVswXS5kYXRhKSxtZXNzYWdlczpbXX07aVsyXS5mb3JFYWNoKGZ1bmN0aW9uKGYpe3ZhciBjPVJlKGYuZGF0YSksbz1ZZShjWzNdWzBdLmRhdGEpO3MubWVzc2FnZXMucHVzaCh7bWV0YTpjLGRhdGE6ZS5zbGljZShhWzBdLGFbMF0rbyl9'@; put 'KSxhWzBdKz1vfSksbnVsbCE9KHQ9aVszXSkmJnRbMF0mJihzLm1lcmdlPVllKGlbM11bMF0uZGF0YSk+Pj4wPjApLHIucHVzaChzKX1yZXR1cm4gcn0obyl9Y2F0Y2goaCl7cmV0dXJuIGNvbnNvbGUubG9nKCIjIyAiKyhoLm1lc3NhZ2V8fGgpKX1sLmZvckVhY2goZnVuY3Rpb24oaCl7aVto'@; put 'LmlkXT1oLm1lc3NhZ2VzLHMucHVzaChoLmlkKX0pfX0pLCFzLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkZpbGUgaGFzIG5vIG1lc3NhZ2VzIik7dmFyIGY9KG51bGw9PShuPW51bGw9PShhPW51bGw9PShyPW51bGw9PSh0PWk/LlsxXSk/dm9pZCAwOnRbMF0pP3ZvaWQgMDpyLm1ldGEpP3Zv'@; put 'aWQgMDphWzFdKT92b2lkIDA6blswXS5kYXRhKSYmMT09WWUoaVsxXVswXS5tZXRhWzFdWzBdLmRhdGEpJiZpWzFdWzBdO2lmKGZ8fHMuZm9yRWFjaChmdW5jdGlvbihjKXtpW2NdLmZvckVhY2goZnVuY3Rpb24obyl7aWYoMT09WWUoby5tZXRhWzFdWzBdLmRhdGEpPj4+MCl7aWYoZil0aHJv'@; put 'dyBuZXcgRXJyb3IoIkRvY3VtZW50IGhhcyBtdWx0aXBsZSByb290cyIpO2Y9b319KX0pLCFmKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGZpbmQgRG9jdW1lbnQgcm9vdCIpO3JldHVybiBmdW5jdGlvbiBqbShlLHQpe3ZhciByPXtTaGVldE5hbWVzOltdLFNoZWV0czp7fX07aWYoVm4oUmUo'@; put 'dC5kYXRhKVsxXSxFcikuZm9yRWFjaChmdW5jdGlvbihpKXtlW2ldLmZvckVhY2goZnVuY3Rpb24ocyl7aWYoMj09WWUocy5tZXRhWzFdWzBdLmRhdGEpKXt2YXIgYz1mdW5jdGlvbiAkbShlLHQpe3ZhciByLGE9UmUodC5kYXRhKSxuPXtuYW1lOm51bGwhPShyPWFbMV0pJiZyWzBdP0huKGFb'@; put 'MV1bMF0uZGF0YSk6IiIsc2hlZXRzOltdfTtyZXR1cm4gVm4oYVsyXSxFcikuZm9yRWFjaChmdW5jdGlvbihzKXtlW3NdLmZvckVhY2goZnVuY3Rpb24oZil7NmUzPT1ZZShmLm1ldGFbMV1bMF0uZGF0YSkmJm4uc2hlZXRzLnB1c2goem0oZSxmKSl9KX0pLG59KGUscyk7Yy5zaGVldHMuZm9y'@; put 'RWFjaChmdW5jdGlvbihvLGwpe2VpKHIsbywwPT1sP2MubmFtZTpjLm5hbWUrIl8iK2wsITApfSl9fSl9KSwwPT1yLlNoZWV0TmFtZXMubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiRW1wdHkgTlVNQkVSUyBmaWxlIik7cmV0dXJuIHJ9KGksZil9ZnVuY3Rpb24gJG4oZSl7IWZ1bmN0aW9uIHhj'@; put 'KGUpe3JldHVybiBmdW5jdGlvbihyKXtmb3IodmFyIGE9MDthIT1lLmxlbmd0aDsrK2Epe3ZhciBuPWVbYV07dm9pZCAwPT09cltuWzBdXSYmKHJbblswXV09blsxXSksIm4iPT09blsyXSYmKHJbblswXV09TnVtYmVyKHJbblswXV0pKX19fShbWyJjZWxsTkYiLCExXSxbImNlbGxIVE1MIiwh'@; put 'MF0sWyJjZWxsRm9ybXVsYSIsITBdLFsiY2VsbFN0eWxlcyIsITFdLFsiY2VsbFRleHQiLCEwXSxbImNlbGxEYXRlcyIsITFdLFsic2hlZXRTdHVicyIsITFdLFsic2hlZXRSb3dzIiwwLCJuIl0sWyJib29rRGVwcyIsITFdLFsiYm9va1NoZWV0cyIsITFdLFsiYm9va1Byb3BzIiwhMV0sWyJi'@; put 'b29rRmlsZXMiLCExXSxbImJvb2tWQkEiLCExXSxbInBhc3N3b3JkIiwiIl0sWyJXVEYiLCExXV0pKGUpfWZ1bmN0aW9uIEptKGUpe3JldHVybiBrZS5XUy5pbmRleE9mKGUpPi0xPyJzaGVldCI6a2UuQ1MmJmU9PWtlLkNTPyJjaGFydCI6a2UuRFMmJmU9PWtlLkRTPyJkaWFsb2ciOmtlLk1T'@; put 'JiZlPT1rZS5NUz8ibWFjcm8iOmUmJmUubGVuZ3RoP2U6InNoZWV0In1mdW5jdGlvbiBabShlLHQscixhLG4saSxzLGYsYyxvLGwsaCl7dHJ5e2lbYV09SWEoTnIoZSxyLCEwKSx0KTt2YXIgZCx4PVFlKGUsdCk7c3dpdGNoKGYpe2Nhc2Uic2hlZXQiOmQ9U3AoeCx0LG4sYyxpW2FdLG8sbCxo'@; put 'KTticmVhaztjYXNlImNoYXJ0IjppZighKGQ9ZnVuY3Rpb24gRnAoZSx0LHIsYSxuLGkscyxmKXtyZXR1cm4iLmJpbiI9PT10LnNsaWNlKC00KT9mdW5jdGlvbiBycChlLHQscixhLG4pe2lmKCFlKXJldHVybiBlO2F8fChhPXsiIWlkIjp7fX0pO3ZhciBpPXsiIXR5cGUiOiJjaGFydCIsIiFk'@; put 'cmF3ZWwiOm51bGwsIiFyZWwiOiIifSxzPVtdLGY9ITE7cmV0dXJuIGh0KGUsZnVuY3Rpb24obyxsLGgpe3N3aXRjaChoKXtjYXNlIDU1MDppWyIhcmVsIl09bzticmVhaztjYXNlIDY1MTpuLlNoZWV0c1tyXXx8KG4uU2hlZXRzW3JdPXt9KSxvLm5hbWUmJihuLlNoZWV0c1tyXS5Db2RlTmFt'@; put 'ZT1vLm5hbWUpO2JyZWFrO2Nhc2UgNTYyOmNhc2UgNjUyOmNhc2UgNjY5OmNhc2UgNjc5OmNhc2UgNTUxOmNhc2UgNTUyOmNhc2UgNDc2OmNhc2UgMzA3MjpicmVhaztjYXNlIDM1OmY9ITA7YnJlYWs7Y2FzZSAzNjpmPSExO2JyZWFrO2Nhc2UgMzc6cy5wdXNoKGgpO2JyZWFrO2Nhc2UgMzg6'@; put 'cy5wb3AoKTticmVhaztkZWZhdWx0OmlmKGwuVD4wKXMucHVzaChoKTtlbHNlIGlmKGwuVDwwKXMucG9wKCk7ZWxzZSBpZighZnx8dC5XVEYpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIHJlY29yZCAweCIraC50b1N0cmluZygxNikpfX0sdCksYVsiIWlkIl1baVsiIXJlbCJdXSYmKGlb'@; put 'IiFkcmF3ZWwiXT1hWyIhaWQiXVtpWyIhcmVsIl1dKSxpfShlLGEscixuLGkpOmZ1bmN0aW9uIFoyKGUsdCxyLGEsbil7aWYoIWUpcmV0dXJuIGU7YXx8KGE9eyIhaWQiOnt9fSk7dmFyIHMsaT17IiF0eXBlIjoiY2hhcnQiLCIhZHJhd2VsIjpudWxsLCIhcmVsIjoiIn0sZj1lLm1hdGNoKFBm'@; put 'KTtyZXR1cm4gZiYmTG4oZlswXSwwLG4sciksKHM9ZS5tYXRjaCgvZHJhd2luZyByOmlkPSIoLio/KSIvKSkmJihpWyIhcmVsIl09c1sxXSksYVsiIWlkIl1baVsiIXJlbCJdXSYmKGlbIiFkcmF3ZWwiXT1hWyIhaWQiXVtpWyIhcmVsIl1dKSxpfShlLDAscixuLGkpfSh4LHQsbixjLGlbYV0s'@; put 'bykpfHwhZFsiIWRyYXdlbCJdKWJyZWFrO3ZhciB2PVNhKGRbIiFkcmF3ZWwiXS5UYXJnZXQsdCksdT1PYSh2KSxwPWZ1bmN0aW9uIGh4KGUsdCl7aWYoIWUpcmV0dXJuIj8/Ijt2YXIgcj0oZS5tYXRjaCgvPGM6Y2hhcnQgW14+XSpyOmlkPSIoW14iXSopIi8pfHxbIiIsIiJdKVsxXTtyZXR1'@; put 'cm4gdFsiIWlkIl1bcl0uVGFyZ2V0fShOcihlLHYsITApLElhKE5yKGUsdSwhMCksdikpLGs9U2EocCx2KSxUPU9hKGspO2Q9ZnVuY3Rpb24gcTIoZSx0LHIsYSxuLGkpe3ZhciBzPWl8fHsiIXR5cGUiOiJjaGFydCJ9O2lmKCFlKXJldHVybiBpO3ZhciBmPTAsYz0wLG89IkEiLGw9e3M6e3I6'@; put 'MmU2LGM6MmU2fSxlOntyOjAsYzowfX07cmV0dXJuKGUubWF0Y2goLzxjOm51bUNhY2hlPltcc1xTXSo/PFwvYzpudW1DYWNoZT4vZ20pfHxbXSkuZm9yRWFjaChmdW5jdGlvbihoKXt2YXIgeD1mdW5jdGlvbiBKMihlKXt2YXIgYSx0PVtdLHI9ZS5tYXRjaCgvXjxjOm51bUNhY2hlPi8pOyhl'@; put 'Lm1hdGNoKC88YzpwdCBpZHg9IihcZCopIj4oLio/KTxcL2M6cHQ+L2dtKXx8W10pLmZvckVhY2goZnVuY3Rpb24oaSl7dmFyIHM9aS5tYXRjaCgvPGM6cHQgaWR4PSIoXGQqPykiPjxjOnY+KC4qKTxcL2M6dj48XC9jOnB0Pi8pO3MmJih0WytzWzFdXT1yPytzWzJdOnNbMl0pfSk7dmFyIG49'@; put 'SWUoKGUubWF0Y2goLzxjOmZvcm1hdENvZGU+KFtcc1xTXSo/KTxcL2M6Zm9ybWF0Q29kZT4vKXx8WyIiLCJHZW5lcmFsIl0pWzFdKTtyZXR1cm4oZS5tYXRjaCgvPGM6Zj4oLio/KTxcL2M6Zj4vZ20pfHxbXSkuZm9yRWFjaChmdW5jdGlvbihpKXthPWkucmVwbGFjZSgvPC4qPz4vZywiIil9'@; put 'KSxbdCxuLGFdfShoKTtsLnMucj1sLnMuYz0wLGwuZS5jPWYsbz1IZShmKSx4WzBdLmZvckVhY2goZnVuY3Rpb24oZCx2KXtzW28rS2UodildPXt0OiJuIix2OmQsejp4WzFdfSxjPXZ9KSxsLmUucjxjJiYobC5lLnI9YyksKytmfSksZj4wJiYoc1siIXJlZiJdPXdlKGwpKSxzfShOcihlLGss'@; put 'ITApLDAsMCxJYShOcihlLFQsITApLGspLDAsZCk7YnJlYWs7Y2FzZSJtYWNybyI6ZD1mdW5jdGlvbiB5cChlLHQscixhLG4saSxzLGYpe3JldHVybiB0LnNsaWNlKC00KSx7IiF0eXBlIjoibWFjcm8ifX0oMCx0KTticmVhaztjYXNlImRpYWxvZyI6ZD1mdW5jdGlvbiBBcChlLHQscixhLG4s'@; put 'aSxzLGYpe3JldHVybiB0LnNsaWNlKC00KSx7IiF0eXBlIjoiZGlhbG9nIn19KDAsdCk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBzaGVldCB0eXBlICIrZil9c1thXT1kO3ZhciBnPVtdO2kmJmlbYV0mJiRlKGlbYV0pLmZvckVhY2goZnVuY3Rpb24oTil7'@; put 'dmFyIE09IiI7aWYoaVthXVtOXS5UeXBlPT1rZS5DTU5UKXtNPVNhKGlbYV1bTl0uVGFyZ2V0LHQpO3ZhciBJPWZ1bmN0aW9uIElwKGUsdCxyKXtyZXR1cm4iLmJpbiI9PT10LnNsaWNlKC00KT9mdW5jdGlvbiBFeChlLHQpe3ZhciByPVtdLGE9W10sbj17fSxpPSExO3JldHVybiBodChlLGZ1'@; put 'bmN0aW9uKGYsYyxvKXtzd2l0Y2gobyl7Y2FzZSA2MzI6YS5wdXNoKGYpO2JyZWFrO2Nhc2UgNjM1Om49ZjticmVhaztjYXNlIDYzNzpuLnQ9Zi50LG4uaD1mLmgsbi5yPWYucjticmVhaztjYXNlIDYzNjppZihuLmF1dGhvcj1hW24uaWF1dGhvcl0sZGVsZXRlIG4uaWF1dGhvcix0LnNoZWV0'@; put 'Um93cyYmbi5yZngmJnQuc2hlZXRSb3dzPD1uLnJmeC5yKWJyZWFrO24udHx8KG4udD0iIiksZGVsZXRlIG4ucmZ4LHIucHVzaChuKTticmVhaztjYXNlIDMwNzI6Y2FzZSAzNzpjYXNlIDM4OmJyZWFrO2Nhc2UgMzU6aT0hMDticmVhaztjYXNlIDM2Omk9ITE7YnJlYWs7ZGVmYXVsdDppZigh'@; put 'Yy5UJiYoIWl8fHQuV1RGKSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgcmVjb3JkIDB4IitvLnRvU3RyaW5nKDE2KSl9fSkscn0oZSxyKTpmdW5jdGlvbiB4eChlLHQpe2lmKGUubWF0Y2goLzwoPzpcdys6KT9jb21tZW50cyAqXC8+LykpcmV0dXJuW107dmFyIHI9W10sYT1bXSxuPWUu'@; put 'bWF0Y2goLzwoPzpcdys6KT9hdXRob3JzPihbXHNcU10qKTxcLyg/Olx3KzopP2F1dGhvcnM+Lyk7biYmblsxXSYmblsxXS5zcGxpdCgvPFwvXHcqOj9hdXRob3I+LykuZm9yRWFjaChmdW5jdGlvbihzKXtpZigiIiE9PXMmJiIiIT09cy50cmltKCkpe3ZhciBmPXMubWF0Y2goLzwoPzpcdys6'@; put 'KT9hdXRob3JbXj5dKj4oLiopLyk7ZiYmci5wdXNoKGZbMV0pfX0pO3ZhciBpPWUubWF0Y2goLzwoPzpcdys6KT9jb21tZW50TGlzdD4oW1xzXFNdKik8XC8oPzpcdys6KT9jb21tZW50TGlzdD4vKTtyZXR1cm4gaSYmaVsxXSYmaVsxXS5zcGxpdCgvPFwvXHcqOj9jb21tZW50Pi8pLmZvckVh'@; put 'Y2goZnVuY3Rpb24ocyl7aWYoIiIhPT1zJiYiIiE9PXMudHJpbSgpKXt2YXIgZj1zLm1hdGNoKC88KD86XHcrOik/Y29tbWVudFtePl0qPi8pO2lmKGYpe3ZhciBjPW1lKGZbMF0pLG89e2F1dGhvcjpjLmF1dGhvcklkJiZyW2MuYXV0aG9ySWRdfHwic2hlZXRqc2dob3N0IixyZWY6Yy5yZWYs'@; put 'Z3VpZDpjLmd1aWR9LGw9R2UoYy5yZWYpO2lmKCEodC5zaGVldFJvd3MmJnQuc2hlZXRSb3dzPD1sLnIpKXt2YXIgaD1zLm1hdGNoKC88KD86XHcrOik/dGV4dD4oW1xzXFNdKik8XC8oPzpcdys6KT90ZXh0Pi8pLHg9ISFoJiYhIWhbMV0mJlNuKGhbMV0pfHx7cjoiIix0OiIiLGg6IiJ9O28u'@; put 'cj14LnIsIjx0PjwvdD4iPT14LnImJih4LnQ9eC5oPSIiKSxvLnQ9KHgudHx8IiIpLnJlcGxhY2UoL1xyXG4vZywiXG4iKS5yZXBsYWNlKC9cci9nLCJcbiIpLHQuY2VsbEhUTUwmJihvLmg9eC5oKSxhLnB1c2gobyl9fX19KSxhfShlLHIpfShRZShlLE0sITApLE0sYyk7aWYoIUl8fCFJLmxl'@; put 'bmd0aClyZXR1cm47Z2YoZCxJLCExKX1pW2FdW05dLlR5cGU9PWtlLlRDTU5UJiYoTT1TYShpW2FdW05dLlRhcmdldCx0KSxnPWcuY29uY2F0KGZ1bmN0aW9uIGR4KGUsdCl7dmFyIHI9W10sYT0hMSxuPXt9LGk9MDtyZXR1cm4gZS5yZXBsYWNlKHZyLGZ1bmN0aW9uKGYsYyl7dmFyIG89bWUo'@; put 'Zik7c3dpdGNoKHJ0KG9bMF0pKXtjYXNlIjw/eG1sIjpjYXNlIjxUaHJlYWRlZENvbW1lbnRzIjpjYXNlIjwvVGhyZWFkZWRDb21tZW50cz4iOmNhc2UiPGV4dExzdCI6Y2FzZSI8ZXh0THN0PiI6Y2FzZSI8L2V4dExzdD4iOmNhc2UiPGV4dExzdC8+IjpicmVhaztjYXNlIjx0aHJlYWRlZENv'@; put 'bW1lbnQiOm49e2F1dGhvcjpvLnBlcnNvbklkLGd1aWQ6by5pZCxyZWY6by5yZWYsVDoxfTticmVhaztjYXNlIjwvdGhyZWFkZWRDb21tZW50PiI6bnVsbCE9bi50JiZyLnB1c2gobik7YnJlYWs7Y2FzZSI8dGV4dD4iOmNhc2UiPHRleHQiOmk9YytmLmxlbmd0aDticmVhaztjYXNlIjwvdGV4'@; put 'dD4iOm4udD1lLnNsaWNlKGksYykucmVwbGFjZSgvXHJcbi9nLCJcbiIpLnJlcGxhY2UoL1xyL2csIlxuIik7YnJlYWs7Y2FzZSI8bWVudGlvbnMiOmNhc2UiPG1lbnRpb25zPiI6Y2FzZSI8ZXh0IjphPSEwO2JyZWFrO2Nhc2UiPC9tZW50aW9ucz4iOmNhc2UiPC9leHQ+IjphPSExO2JyZWFr'@; put 'O2RlZmF1bHQ6aWYoIWEmJnQuV1RGKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkICIrb1swXSsiIGluIHRocmVhZGVkIGNvbW1lbnRzIil9cmV0dXJuIGZ9KSxyfShRZShlLE0sITApLGMpKSl9KSxnJiZnLmxlbmd0aCYmZ2YoZCxnLCEwLGMucGVvcGxlfHxbXSl9Y2F0Y2goTil7aWYo'@; put 'Yy5XVEYpdGhyb3cgTn19ZnVuY3Rpb24gJHIoZSl7cmV0dXJuIi8iPT1lLmNoYXJBdCgwKT9lLnNsaWNlKDEpOmV9ZnVuY3Rpb24gUW0oZSx0KXtpZih0YSgpLCRuKHQ9dHx8e30pLFdyKGUsIk1FVEEtSU5GL21hbmlmZXN0LnhtbCIpfHxXcihlLCJvYmplY3RkYXRhLnhtbCIpKXJldHVybiBm'@; put 'dW5jdGlvbiBmYyhlLHQpe3Q9dHx8e30sV3IoZSwiTUVUQS1JTkYvbWFuaWZlc3QueG1sIikmJmZ1bmN0aW9uIG9sKGUsdCl7Zm9yKHZhciBhLG4scj1ZMChlKTthPXlhLmV4ZWMocik7KXN3aXRjaChhWzNdKXtjYXNlIm1hbmlmZXN0IjpicmVhaztjYXNlImZpbGUtZW50cnkiOmlmKCIvIj09'@; put 'KG49bWUoYVswXSwhMSkpLnBhdGgmJm4udHlwZSE9PWNsKXRocm93IG5ldyBFcnJvcigiVGhpcyBPcGVuRG9jdW1lbnQgaXMgbm90IGEgc3ByZWFkc2hlZXQiKTticmVhaztjYXNlImVuY3J5cHRpb24tZGF0YSI6Y2FzZSJhbGdvcml0aG0iOmNhc2Uic3RhcnQta2V5LWdlbmVyYXRpb24iOmNh'@; put 'c2Uia2V5LWRlcml2YXRpb24iOnRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgT0RTIEVuY3J5cHRpb24iKTtkZWZhdWx0OmlmKHQmJnQuV1RGKXRocm93IGF9fShRZShlLCJNRVRBLUlORi9tYW5pZmVzdC54bWwiKSx0KTt2YXIgcj1OcihlLCJjb250ZW50LnhtbCIpO2lmKCFyKXRocm93'@; put 'IG5ldyBFcnJvcigiTWlzc2luZyBjb250ZW50LnhtbCBpbiBPRFMgLyBVT0YgZmlsZSIpO3ZhciBhPXNjKEJlKHIpLHQpO3JldHVybiBXcihlLCJtZXRhLnhtbCIpJiYoYS5Qcm9wcz1tcyhRZShlLCJtZXRhLnhtbCIpKSksYX0oZSx0KTtpZihXcihlLCJJbmRleC9Eb2N1bWVudC5pd2EiKSl7'@; put 'aWYodHlwZW9mIFVpbnQ4QXJyYXk+InUiKXRocm93IG5ldyBFcnJvcigiTlVNQkVSUyBmaWxlIHBhcnNpbmcgcmVxdWlyZXMgVWludDhBcnJheSBzdXBwb3J0Iik7aWYoZS5GaWxlSW5kZXgpcmV0dXJuIHpuKGUpO3ZhciByPXZlLnV0aWxzLmNmYl9uZXcoKTtyZXR1cm4gSWkoZSkuZm9yRWFj'@; put 'aChmdW5jdGlvbihsZSl7IWZ1bmN0aW9uIFRlKGUsdCxyKXtpZihlLkZ1bGxQYXRocyl7dmFyIGE7aWYoInN0cmluZyI9PXR5cGVvZiByKXJldHVybiBhPVNlP290KHIpOmZ1bmN0aW9uIE5jKGUpe2Zvcih2YXIgdD1bXSxyPTAsYT1lLmxlbmd0aCsyNTAsbj1fdChlLmxlbmd0aCsyNTUpLGk9'@; put 'MDtpPGUubGVuZ3RoOysraSl7dmFyIHM9ZS5jaGFyQ29kZUF0KGkpO2lmKHM8MTI4KW5bcisrXT1zO2Vsc2UgaWYoczwyMDQ4KW5bcisrXT0xOTJ8cz4+NiYzMSxuW3IrK109MTI4fDYzJnM7ZWxzZSBpZihzPj01NTI5NiYmczw1NzM0NCl7cz02NCsoMTAyMyZzKTt2YXIgZj0xMDIzJmUuY2hh'@; put 'ckNvZGVBdCgrK2kpO25bcisrXT0yNDB8cz4+OCY3LG5bcisrXT0xMjh8cz4+MiY2MyxuW3IrK109MTI4fGY+PjYmMTV8KDMmcyk8PDQsbltyKytdPTEyOHw2MyZmfWVsc2UgbltyKytdPTIyNHxzPj4xMiYxNSxuW3IrK109MTI4fHM+PjYmNjMsbltyKytdPTEyOHw2MyZzO3I+YSYmKHQucHVz'@; put 'aChuLnNsaWNlKDAscikpLHI9MCxuPV90KDY1NTM1KSxhPTY1NTMwKX1yZXR1cm4gdC5wdXNoKG4uc2xpY2UoMCxyKSksZnIodCl9KHIpLHZlLnV0aWxzLmNmYl9hZGQoZSx0LGEpO3ZlLnV0aWxzLmNmYl9hZGQoZSx0LHIpfWVsc2UgZS5maWxlKHQscil9KHIsbGUsT2koZSxsZSkpfSksem4o'@; put 'cil9aWYoIVdyKGUsIltDb250ZW50X1R5cGVzXS54bWwiKSl0aHJvdyBXcihlLCJpbmRleC54bWwuZ3oiKT9uZXcgRXJyb3IoIlVuc3VwcG9ydGVkIE5VTUJFUlMgMDggZmlsZSIpOldyKGUsImluZGV4LnhtbCIpP25ldyBFcnJvcigiVW5zdXBwb3J0ZWQgTlVNQkVSUyAwOSBmaWxlIik6bmV3'@; put 'IEVycm9yKCJVbnN1cHBvcnRlZCBaSVAgZmlsZSIpO3ZhciBzLGYsYT1JaShlKSxuPWZ1bmN0aW9uIGZsKGUpe3ZhciB0PXt3b3JrYm9va3M6W10sc2hlZXRzOltdLGNoYXJ0czpbXSxkaWFsb2dzOltdLG1hY3JvczpbXSxyZWxzOltdLHN0cnM6W10sY29tbWVudHM6W10sdGhyZWFkZWRjb21t'@; put 'ZW50czpbXSxsaW5rczpbXSxjb3JlcHJvcHM6W10sZXh0cHJvcHM6W10sY3VzdHByb3BzOltdLHRoZW1lczpbXSxzdHlsZXM6W10sY2FsY2NoYWluczpbXSx2YmE6W10sZHJhd2luZ3M6W10sbWV0YWRhdGE6W10scGVvcGxlOltdLFRPRE86W10seG1sbnM6IiJ9O2lmKCFlfHwhZS5tYXRjaCly'@; put 'ZXR1cm4gdDt2YXIgcj17fTtpZigoZS5tYXRjaCh2cil8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBuPW1lKGEpO3N3aXRjaChuWzBdLnJlcGxhY2UoX28sIjwiKSl7Y2FzZSI8P3htbCI6YnJlYWs7Y2FzZSI8VHlwZXMiOnQueG1sbnM9blsieG1sbnMiKyhuWzBdLm1hdGNoKC88KFx3'@; put 'Kyk6Lyl8fFsiIiwiIl0pWzFdXTticmVhaztjYXNlIjxEZWZhdWx0IjpyW24uRXh0ZW5zaW9uXT1uLkNvbnRlbnRUeXBlO2JyZWFrO2Nhc2UiPE92ZXJyaWRlIjp2b2lkIDAhPT10W3ZuW24uQ29udGVudFR5cGVdXSYmdFt2bltuLkNvbnRlbnRUeXBlXV0ucHVzaChuLlBhcnROYW1lKX19KSx0'@; put 'LnhtbG5zIT09cnIuQ1QpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIE5hbWVzcGFjZTogIit0LnhtbG5zKTtyZXR1cm4gdC5jYWxjY2hhaW49dC5jYWxjY2hhaW5zLmxlbmd0aD4wP3QuY2FsY2NoYWluc1swXToiIix0LnNzdD10LnN0cnMubGVuZ3RoPjA/dC5zdHJzWzBdOiIiLHQuc3R5bGU9'@; put 'dC5zdHlsZXMubGVuZ3RoPjA/dC5zdHlsZXNbMF06IiIsdC5kZWZhdWx0cz1yLGRlbGV0ZSB0LmNhbGNjaGFpbnMsdH0oTnIoZSwiW0NvbnRlbnRfVHlwZXNdLnhtbCIpKSxpPSExO2lmKDA9PT1uLndvcmtib29rcy5sZW5ndGgmJlFlKGUsZj0ieGwvd29ya2Jvb2sueG1sIiwhMCkmJm4ud29y'@; put 'a2Jvb2tzLnB1c2goZiksMD09PW4ud29ya2Jvb2tzLmxlbmd0aCl7aWYoIVFlKGUsZj0ieGwvd29ya2Jvb2suYmluIiwhMCkpdGhyb3cgbmV3IEVycm9yKCJDb3VsZCBub3QgZmluZCB3b3JrYm9vayIpO24ud29ya2Jvb2tzLnB1c2goZiksaT0hMH0iYmluIj09bi53b3JrYm9va3NbMF0uc2xp'@; put 'Y2UoLTMpJiYoaT0hMCk7dmFyIGM9e30sbz17fTtpZighdC5ib29rU2hlZXRzJiYhdC5ib29rUHJvcHMpe2lmKFZhPVtdLG4uc3N0KXRyeXtWYT1mdW5jdGlvbiBPcChlLHQscil7cmV0dXJuIi5iaW4iPT09dC5zbGljZSgtNCk/ZnVuY3Rpb24gSWgoZSx0KXt2YXIgcj1bXSxhPSExO3JldHVy'@; put 'biBodChlLGZ1bmN0aW9uKGkscyxmKXtzd2l0Y2goZil7Y2FzZSAxNTk6ci5Db3VudD1pWzBdLHIuVW5pcXVlPWlbMV07YnJlYWs7Y2FzZSAxOTpyLnB1c2goaSk7YnJlYWs7Y2FzZSAxNjA6cmV0dXJuITA7Y2FzZSAzNTphPSEwO2JyZWFrO2Nhc2UgMzY6YT0hMTticmVhaztkZWZhdWx0Omlm'@; put 'KCFhfHx0LldURil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgcmVjb3JkIDB4IitmLnRvU3RyaW5nKDE2KSl9fSkscn0oZSxyKTpmdW5jdGlvbiBDaChlLHQpe3ZhciByPVtdLGE9IiI7aWYoIWUpcmV0dXJuIHI7dmFyIG49ZS5tYXRjaChGaCk7aWYobil7YT1uWzJdLnJlcGxhY2UoeWgs'@; put 'IiIpLnNwbGl0KEFoKTtmb3IodmFyIGk9MDtpIT1hLmxlbmd0aDsrK2kpe3ZhciBzPVNuKGFbaV0udHJpbSgpLHQpO251bGwhPXMmJihyW3IubGVuZ3RoXT1zKX1uPW1lKG5bMV0pLHIuQ291bnQ9bi5jb3VudCxyLlVuaXF1ZT1uLnVuaXF1ZUNvdW50fXJldHVybiByfShlLHIpfShRZShlLCRy'@; put 'KG4uc3N0KSksbi5zc3QsdCl9Y2F0Y2gobGUpe2lmKHQuV1RGKXRocm93IGxlfXQuY2VsbFN0eWxlcyYmbi50aGVtZXMubGVuZ3RoJiYoYz1mdW5jdGlvbiBEcChlLHQscil7cmV0dXJuIHZmKGUscil9KE5yKGUsbi50aGVtZXNbMF0ucmVwbGFjZSgvXlwvLywiIiksITApfHwiIiwwLHQpKSxu'@; put 'LnN0eWxlJiYobz1mdW5jdGlvbiBDcChlLHQscixhKXtyZXR1cm4iLmJpbiI9PT10LnNsaWNlKC00KT9mdW5jdGlvbiBTMShlLHQscil7dmFyIGE9e051bWJlckZtdDpbXX07Zm9yKHZhciBuIGluIHBlKWEuTnVtYmVyRm10W25dPXBlW25dO2EuQ2VsbFhmPVtdLGEuRm9udHM9W107dmFyIGk9'@; put 'W10scz0hMTtyZXR1cm4gaHQoZSxmdW5jdGlvbihjLG8sbCl7c3dpdGNoKGwpe2Nhc2UgNDQ6YS5OdW1iZXJGbXRbY1swXV09Y1sxXSxldChjWzFdLGNbMF0pO2JyZWFrO2Nhc2UgNDM6YS5Gb250cy5wdXNoKGMpLG51bGwhPWMuY29sb3IudGhlbWUmJnQmJnQudGhlbWVFbGVtZW50cyYmdC50'@; put 'aGVtZUVsZW1lbnRzLmNsclNjaGVtZSYmKGMuY29sb3IucmdiPVQwKHQudGhlbWVFbGVtZW50cy5jbHJTY2hlbWVbYy5jb2xvci50aGVtZV0ucmdiLGMuY29sb3IudGludHx8MCkpO2JyZWFrO2Nhc2UgMTAyNTpjYXNlIDQ1OmNhc2UgNDY6Y2FzZSA0ODpjYXNlIDUwNzpjYXNlIDU3MjpjYXNl'@; put 'IDQ3NTpjYXNlIDExNzE6Y2FzZSAyMTAyOmNhc2UgMTEzMDpjYXNlIDUxMjpjYXNlIDIwOTU6Y2FzZSAzMDcyOmJyZWFrO2Nhc2UgNDc6NjE3PT1pW2kubGVuZ3RoLTFdJiZhLkNlbGxYZi5wdXNoKGMpO2JyZWFrO2Nhc2UgMzU6cz0hMDticmVhaztjYXNlIDM2OnM9ITE7YnJlYWs7Y2FzZSAz'@; put 'NzppLnB1c2gobCkscz0hMDticmVhaztjYXNlIDM4OmkucG9wKCkscz0hMTticmVhaztkZWZhdWx0OmlmKG8uVD4wKWkucHVzaChsKTtlbHNlIGlmKG8uVDwwKWkucG9wKCk7ZWxzZSBpZighc3x8ci5XVEYmJjM3IT1pW2kubGVuZ3RoLTFdKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBy'@; put 'ZWNvcmQgMHgiK2wudG9TdHJpbmcoMTYpKX19KSxhfShlLHIsYSk6aDEoZSxyLGEpfShRZShlLCRyKG4uc3R5bGUpKSxuLnN0eWxlLGMsdCkpfW4ubGlua3MubWFwKGZ1bmN0aW9uKGxlKXt0cnl7cmV0dXJuIElhKE5yKGUsT2EoJHIobGUpKSksbGUpLGZ1bmN0aW9uIE5wKGUsdCxyLGEpe3Jl'@; put 'dHVybiIuYmluIj09PXIuc2xpY2UoLTQpP2Z1bmN0aW9uIHV4KGUsdCxyLGEpe2lmKCFlKXJldHVybiBlO3ZhciBuPWF8fHt9LGk9ITE7aHQoZSxmdW5jdGlvbihjLG8sbCl7c3dpdGNoKGwpe2Nhc2UgMzU5OmNhc2UgMzYzOmNhc2UgMzY0OmNhc2UgMzY2OmNhc2UgMzY3OmNhc2UgMzY4OmNh'@; put 'c2UgMzY5OmNhc2UgMzcwOmNhc2UgMzcxOmNhc2UgNDcyOmNhc2UgNTc3OmNhc2UgNTc4OmNhc2UgNTc5OmNhc2UgNTgwOmNhc2UgNTgxOmNhc2UgNTgyOmNhc2UgNTgzOmNhc2UgNTg0OmNhc2UgNTg1OmNhc2UgNTg2OmNhc2UgNTg3OmJyZWFrO2Nhc2UgMzU6aT0hMDticmVhaztjYXNlIDM2'@; put 'Omk9ITE7YnJlYWs7ZGVmYXVsdDppZighby5UJiYoIWl8fG4uV1RGKSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgcmVjb3JkIDB4IitsLnRvU3RyaW5nKDE2KSl9fSxuKX0oZSwwLDAsYSk6dm9pZCAwfShRZShlLCRyKGxlKSksMCxsZSx0KX1jYXRjaHt9fSk7dmFyIGw9ZnVuY3Rpb24g'@; put 'VHAoZSx0LHIpe3JldHVybiIuYmluIj09PXQuc2xpY2UoLTQpP2Z1bmN0aW9uIG1wKGUsdCl7dmFyIHI9e0FwcFZlcnNpb246e30sV0JQcm9wczp7fSxXQlZpZXc6W10sU2hlZXRzOltdLENhbGNQcjp7fSx4bWxuczoiIn0sYT1bXSxuPSExO3R8fCh0PXt9KSx0LmJpZmY9MTI7dmFyIGk9W10s'@; put 'cz1bW11dO3JldHVybiBzLlNoZWV0TmFtZXM9W10scy5YVEk9W10sJGFbMTZdPXtuOiJCcnRGUlRBcmNoSUQkIixmOnZwfSxodChlLGZ1bmN0aW9uKGMsbyxsKXtzd2l0Y2gobCl7Y2FzZSAxNTY6cy5TaGVldE5hbWVzLnB1c2goYy5uYW1lKSxyLlNoZWV0cy5wdXNoKGMpO2JyZWFrO2Nhc2Ug'@; put 'MTUzOnIuV0JQcm9wcz1jO2JyZWFrO2Nhc2UgMzk6bnVsbCE9Yy5TaGVldCYmKHQuU0lEPWMuU2hlZXQpLGMuUmVmPWtyKGMuUHRnLDAsbnVsbCxzLHQpLGRlbGV0ZSB0LlNJRCxkZWxldGUgYy5QdGcsaS5wdXNoKGMpO2JyZWFrO2Nhc2UgMTAzNjpjYXNlIDM2MTpjYXNlIDIwNzE6Y2FzZSAx'@; put 'NTg6Y2FzZSAxNDM6Y2FzZSA2NjQ6Y2FzZSAzNTM6Y2FzZSAzMDcyOmNhc2UgMzA3MzpjYXNlIDUzNDpjYXNlIDY3NzpjYXNlIDE1NzpjYXNlIDYxMDpjYXNlIDIwNTA6Y2FzZSAxNTU6Y2FzZSA1NDg6Y2FzZSA2NzY6Y2FzZSAxMjg6Y2FzZSA2NjU6Y2FzZSAyMTI4OmNhc2UgMjEyNTpjYXNl'@; put 'IDU0OTpjYXNlIDIwNTM6Y2FzZSA1OTY6Y2FzZSAyMDc2OmNhc2UgMjA3NTpjYXNlIDIwODI6Y2FzZSAzOTc6Y2FzZSAxNTQ6Y2FzZSAxMTE3OmNhc2UgNTUzOmNhc2UgMjA5MTpjYXNlIDE2OmJyZWFrO2Nhc2UgMzU3OmNhc2UgMzU4OmNhc2UgMzU1OmNhc2UgNjY3OnNbMF0ubGVuZ3RoP3Mu'@; put 'cHVzaChbbCxjXSk6c1swXT1bbCxjXSxzW3MubGVuZ3RoLTFdLlhUST1bXTticmVhaztjYXNlIDM2MjowPT09cy5sZW5ndGgmJihzWzBdPVtdLHNbMF0uWFRJPVtdKSxzW3MubGVuZ3RoLTFdLlhUST1zW3MubGVuZ3RoLTFdLlhUSS5jb25jYXQoYykscy5YVEk9cy5YVEkuY29uY2F0KGMpO2Jy'@; put 'ZWFrO2Nhc2UgMzU6Y2FzZSAzNzphLnB1c2gobCksbj0hMDticmVhaztjYXNlIDM2OmNhc2UgMzg6YS5wb3AoKSxuPSExO2JyZWFrO2RlZmF1bHQ6aWYoIW8uVCYmKCFufHx0LldURiYmMzchPWFbYS5sZW5ndGgtMV0mJjM1IT1hW2EubGVuZ3RoLTFdKSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhw'@; put 'ZWN0ZWQgcmVjb3JkIDB4IitsLnRvU3RyaW5nKDE2KSl9fSx0KSxIZihyKSxyLk5hbWVzPWksci5zdXBib29rcz1zLHJ9KGUscik6ZnVuY3Rpb24gbHAoZSx0KXtpZighZSl0aHJvdyBuZXcgRXJyb3IoIkNvdWxkIG5vdCBmaW5kIGZpbGUiKTt2YXIgcj17QXBwVmVyc2lvbjp7fSxXQlByb3Bz'@; put 'Ont9LFdCVmlldzpbXSxTaGVldHM6W10sQ2FsY1ByOnt9LE5hbWVzOltdLHhtbG5zOiIifSxhPSExLG49InhtbG5zIixpPXt9LHM9MDtpZihlLnJlcGxhY2UodnIsZnVuY3Rpb24oYyxvKXt2YXIgbD1tZShjKTtzd2l0Y2gocnQobFswXSkpe2Nhc2UiPD94bWwiOmNhc2UiPC93b3JrYm9vaz4i'@; put 'OmNhc2UiPGZpbGVWZXJzaW9uLz4iOmNhc2UiPC9maWxlVmVyc2lvbj4iOmNhc2UiPGZpbGVTaGFyaW5nIjpjYXNlIjxmaWxlU2hhcmluZy8+IjpjYXNlIjwvd29ya2Jvb2tQcj4iOmNhc2UiPHdvcmtib29rUHJvdGVjdGlvbiI6Y2FzZSI8d29ya2Jvb2tQcm90ZWN0aW9uLz4iOmNhc2UiPGJv'@; put 'b2tWaWV3cyI6Y2FzZSI8Ym9va1ZpZXdzPiI6Y2FzZSI8L2Jvb2tWaWV3cz4iOmNhc2UiPC93b3JrYm9va1ZpZXc+IjpjYXNlIjxzaGVldHMiOmNhc2UiPHNoZWV0cz4iOmNhc2UiPC9zaGVldHM+IjpjYXNlIjwvc2hlZXQ+IjpjYXNlIjxmdW5jdGlvbkdyb3VwcyI6Y2FzZSI8ZnVuY3Rpb25H'@; put 'cm91cHMvPiI6Y2FzZSI8ZnVuY3Rpb25Hcm91cCI6Y2FzZSI8ZXh0ZXJuYWxSZWZlcmVuY2VzIjpjYXNlIjwvZXh0ZXJuYWxSZWZlcmVuY2VzPiI6Y2FzZSI8ZXh0ZXJuYWxSZWZlcmVuY2VzPiI6Y2FzZSI8ZXh0ZXJuYWxSZWZlcmVuY2UiOmNhc2UiPGRlZmluZWROYW1lcy8+IjpjYXNlIjxk'@; put 'ZWZpbmVkTmFtZS8+IjpjYXNlIjwvY2FsY1ByPiI6Y2FzZSI8b2xlU2l6ZSI6Y2FzZSI8Y3VzdG9tV29ya2Jvb2tWaWV3cz4iOmNhc2UiPC9jdXN0b21Xb3JrYm9va1ZpZXdzPiI6Y2FzZSI8Y3VzdG9tV29ya2Jvb2tWaWV3cyI6Y2FzZSI8Y3VzdG9tV29ya2Jvb2tWaWV3IjpjYXNlIjwvY3Vz'@; put 'dG9tV29ya2Jvb2tWaWV3PiI6Y2FzZSI8cGl2b3RDYWNoZXM+IjpjYXNlIjwvcGl2b3RDYWNoZXM+IjpjYXNlIjxwaXZvdENhY2hlcyI6Y2FzZSI8cGl2b3RDYWNoZSI6Y2FzZSI8c21hcnRUYWdQciI6Y2FzZSI8c21hcnRUYWdQci8+IjpjYXNlIjxzbWFydFRhZ1R5cGVzIjpjYXNlIjxzbWFy'@; put 'dFRhZ1R5cGVzPiI6Y2FzZSI8L3NtYXJ0VGFnVHlwZXM+IjpjYXNlIjxzbWFydFRhZ1R5cGUiOmNhc2UiPHdlYlB1Ymxpc2hpbmciOmNhc2UiPHdlYlB1Ymxpc2hpbmcvPiI6Y2FzZSI8ZmlsZVJlY292ZXJ5UHIiOmNhc2UiPGZpbGVSZWNvdmVyeVByLz4iOmNhc2UiPHdlYlB1Ymxpc2hPYmpl'@; put 'Y3RzPiI6Y2FzZSI8d2ViUHVibGlzaE9iamVjdHMiOmNhc2UiPC93ZWJQdWJsaXNoT2JqZWN0cz4iOmNhc2UiPHdlYlB1Ymxpc2hPYmplY3QiOmNhc2UiPGV4dExzdCI6Y2FzZSI8ZXh0THN0PiI6Y2FzZSI8L2V4dExzdD4iOmNhc2UiPGV4dExzdC8+IjpjYXNlIjxBcmNoSUQiOmNhc2UiPHJl'@; put 'dmlzaW9uUHRyIjpicmVhaztjYXNlIjx3b3JrYm9vayI6Yy5tYXRjaChvcCkmJihuPSJ4bWxucyIrYy5tYXRjaCgvPChcdyspOi8pWzFdKSxyLnhtbG5zPWxbbl07YnJlYWs7Y2FzZSI8ZmlsZVZlcnNpb24iOmRlbGV0ZSBsWzBdLHIuQXBwVmVyc2lvbj1sO2JyZWFrO2Nhc2UiPHdvcmtib29r'@; put 'UHIiOmNhc2UiPHdvcmtib29rUHIvPiI6Qm4uZm9yRWFjaChmdW5jdGlvbihoKXtpZihudWxsIT1sW2hbMF1dKXN3aXRjaChoWzJdKXtjYXNlImJvb2wiOnIuV0JQcm9wc1toWzBdXT1XZShsW2hbMF1dKTticmVhaztjYXNlImludCI6ci5XQlByb3BzW2hbMF1dPXBhcnNlSW50KGxbaFswXV0s'@; put 'MTApO2JyZWFrO2RlZmF1bHQ6ci5XQlByb3BzW2hbMF1dPWxbaFswXV19fSksbC5jb2RlTmFtZSYmKHIuV0JQcm9wcy5Db2RlTmFtZT1CZShsLmNvZGVOYW1lKSk7YnJlYWs7Y2FzZSI8d29ya2Jvb2tWaWV3IjpjYXNlIjx3b3JrYm9va1ZpZXcvPiI6ZGVsZXRlIGxbMF0sci5XQlZpZXcucHVz'@; put 'aChsKTticmVhaztjYXNlIjxzaGVldCI6c3dpdGNoKGwuc3RhdGUpe2Nhc2UiaGlkZGVuIjpsLkhpZGRlbj0xO2JyZWFrO2Nhc2UidmVyeUhpZGRlbiI6bC5IaWRkZW49MjticmVhaztkZWZhdWx0OmwuSGlkZGVuPTB9ZGVsZXRlIGwuc3RhdGUsbC5uYW1lPUllKEJlKGwubmFtZSkpLGRlbGV0'@; put 'ZSBsWzBdLHIuU2hlZXRzLnB1c2gobCk7YnJlYWs7Y2FzZSI8ZGVmaW5lZE5hbWVzPiI6Y2FzZSI8ZGVmaW5lZE5hbWVzIjpjYXNlIjxleHQiOmNhc2UiPEFsdGVybmF0ZUNvbnRlbnQiOmNhc2UiPEFsdGVybmF0ZUNvbnRlbnQ+IjphPSEwO2JyZWFrO2Nhc2UiPC9kZWZpbmVkTmFtZXM+Ijpj'@; put 'YXNlIjwvZXh0PiI6Y2FzZSI8L0FsdGVybmF0ZUNvbnRlbnQ+IjphPSExO2JyZWFrO2Nhc2UiPGRlZmluZWROYW1lIjooaT17fSkuTmFtZT1CZShsLm5hbWUpLGwuY29tbWVudCYmKGkuQ29tbWVudD1sLmNvbW1lbnQpLGwubG9jYWxTaGVldElkJiYoaS5TaGVldD0rbC5sb2NhbFNoZWV0SWQp'@; put 'LFdlKGwuaGlkZGVufHwiMCIpJiYoaS5IaWRkZW49ITApLHM9bytjLmxlbmd0aDticmVhaztjYXNlIjwvZGVmaW5lZE5hbWU+IjppLlJlZj1JZShCZShlLnNsaWNlKHMsbykpKSxyLk5hbWVzLnB1c2goaSk7YnJlYWs7Y2FzZSI8Y2FsY1ByIjpjYXNlIjxjYWxjUHIvPiI6ZGVsZXRlIGxbMF0s'@; put 'ci5DYWxjUHI9bDticmVhaztkZWZhdWx0OmlmKCFhJiZ0LldURil0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCAiK2xbMF0rIiBpbiB3b3JrYm9vayIpfXJldHVybiBjfSksLTE9PT1TdC5pbmRleE9mKHIueG1sbnMpKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBOYW1lc3BhY2U6ICIr'@; put 'ci54bWxucyk7cmV0dXJuIEhmKHIpLHJ9KGUscil9KFFlKGUsJHIobi53b3JrYm9va3NbMF0pKSxuLndvcmtib29rc1swXSx0KSxoPXt9LHg9IiI7bi5jb3JlcHJvcHMubGVuZ3RoJiYoKHg9UWUoZSwkcihuLmNvcmVwcm9wc1swXSksITApKSYmKGg9bXMoeCkpLDAhPT1uLmV4dHByb3BzLmxl'@; put 'bmd0aCYmKHg9UWUoZSwkcihuLmV4dHByb3BzWzBdKSwhMCkpJiZmdW5jdGlvbiB2bChlLHQscil7dmFyIGE9e307dHx8KHQ9e30pLGU9QmUoZSksWHQuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgaT0oZS5tYXRjaChGYShuWzBdKSl8fFtdKVsxXTtzd2l0Y2goblsyXSl7Y2FzZSJzdHJpbmci'@; put 'OmkmJih0W25bMV1dPUllKGkpKTticmVhaztjYXNlImJvb2wiOnRbblsxXV09InRydWUiPT09aTticmVhaztjYXNlInJhdyI6dmFyIHM9ZS5tYXRjaChuZXcgUmVnRXhwKCI8IituWzBdKyJbXj5dKj4oW1xcc1xcU10qPyk8LyIrblswXSsiPiIpKTtzJiZzLmxlbmd0aD4wJiYoYVtuWzFdXT1z'@; put 'WzFdKX19KSxhLkhlYWRpbmdQYWlycyYmYS5UaXRsZXNPZlBhcnRzJiZ3cyhhLkhlYWRpbmdQYWlycyxhLlRpdGxlc09mUGFydHMsdCxyKX0oeCxoLHQpKTt2YXIgZD17fTsoIXQuYm9va1NoZWV0c3x8dC5ib29rUHJvcHMpJiYwIT09bi5jdXN0cHJvcHMubGVuZ3RoJiYoeD1OcihlLCRyKG4u'@; put 'Y3VzdHByb3BzWzBdKSwhMCkpJiYoZD1mdW5jdGlvbiBtbChlLHQpe3ZhciByPXt9LGE9IiIsbj1lLm1hdGNoKHBsKTtpZihuKWZvcih2YXIgaT0wO2khPW4ubGVuZ3RoOysraSl7dmFyIHM9bltpXSxmPW1lKHMpO3N3aXRjaChmWzBdKXtjYXNlIjw/eG1sIjpjYXNlIjxQcm9wZXJ0aWVzIjpi'@; put 'cmVhaztjYXNlIjxwcm9wZXJ0eSI6YT1JZShmLm5hbWUpO2JyZWFrO2Nhc2UiPC9wcm9wZXJ0eT4iOmE9bnVsbDticmVhaztkZWZhdWx0OmlmKDA9PT1zLmluZGV4T2YoIjx2dDoiKSl7dmFyIGM9cy5zcGxpdCgiPiIpLG89Y1swXS5zbGljZSg0KSxsPWNbMV07c3dpdGNoKG8pe2Nhc2UibHBz'@; put 'dHIiOmNhc2UiYnN0ciI6Y2FzZSJscHdzdHIiOmNhc2UiY3kiOmNhc2UiZXJyb3IiOnJbYV09SWUobCk7YnJlYWs7Y2FzZSJib29sIjpyW2FdPVdlKGwpO2JyZWFrO2Nhc2UiaTEiOmNhc2UiaTIiOmNhc2UiaTQiOmNhc2UiaTgiOmNhc2UiaW50IjpjYXNlInVpbnQiOnJbYV09cGFyc2VJbnQo'@; put 'bCwxMCk7YnJlYWs7Y2FzZSJyNCI6Y2FzZSJyOCI6Y2FzZSJkZWNpbWFsIjpyW2FdPXBhcnNlRmxvYXQobCk7YnJlYWs7Y2FzZSJmaWxldGltZSI6Y2FzZSJkYXRlIjpyW2FdPVhlKGwpO2JyZWFrO2RlZmF1bHQ6aWYoIi8iPT1vLnNsaWNlKC0xKSlicmVhazt0LldURiYmdHlwZW9mIGNvbnNv'@; put 'bGU8InUiJiZjb25zb2xlLndhcm4oIlVuZXhwZWN0ZWQiLHMsbyxjKX19ZWxzZSBpZigiPC8iIT09cy5zbGljZSgwLDIpJiZ0LldURil0aHJvdyBuZXcgRXJyb3Iocyl9fXJldHVybiByfSh4LHQpKTt2YXIgdj17fTtpZigodC5ib29rU2hlZXRzfHx0LmJvb2tQcm9wcykmJihsLlNoZWV0cz9z'@; put 'PWwuU2hlZXRzLm1hcChmdW5jdGlvbihyZSl7cmV0dXJuIHJlLm5hbWV9KTpoLldvcmtzaGVldHMmJmguU2hlZXROYW1lcy5sZW5ndGg+MCYmKHM9aC5TaGVldE5hbWVzKSx0LmJvb2tQcm9wcyYmKHYuUHJvcHM9aCx2LkN1c3Rwcm9wcz1kKSx0LmJvb2tTaGVldHMmJnR5cGVvZiBzPCJ1IiYm'@; put 'KHYuU2hlZXROYW1lcz1zKSx0LmJvb2tTaGVldHM/di5TaGVldE5hbWVzOnQuYm9va1Byb3BzKSlyZXR1cm4gdjtzPXt9O3ZhciB1PXt9O3QuYm9va0RlcHMmJm4uY2FsY2NoYWluJiYodT1mdW5jdGlvbiBScChlLHQscil7cmV0dXJuIi5iaW4iPT09dC5zbGljZSgtNCk/ZnVuY3Rpb24gbHgo'@; put 'ZSx0LHIpe3ZhciBhPVtdO3JldHVybiBodChlLGZ1bmN0aW9uKHMsZixjKXtpZig2Mz09PWMpYS5wdXNoKHMpO2Vsc2UgaWYoIWYuVCl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgcmVjb3JkIDB4IitjLnRvU3RyaW5nKDE2KSl9KSxhfShlKTpmdW5jdGlvbiBjeChlKXt2YXIgdD1bXTtp'@; put 'ZighZSlyZXR1cm4gdDt2YXIgcj0xO3JldHVybihlLm1hdGNoKHZyKXx8W10pLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIG49bWUoYSk7c3dpdGNoKG5bMF0pe2Nhc2UiPD94bWwiOmNhc2UiPGNhbGNDaGFpbiI6Y2FzZSI8Y2FsY0NoYWluPiI6Y2FzZSI8L2NhbGNDaGFpbj4iOmJyZWFrO2Nh'@; put 'c2UiPGMiOmRlbGV0ZSBuWzBdLG4uaT9yPW4uaTpuLmk9cix0LnB1c2gobil9fSksdH0oZSl9KFFlKGUsJHIobi5jYWxjY2hhaW4pKSxuLmNhbGNjaGFpbikpO3ZhciBULGcscD0wLGs9e30sTj1sLlNoZWV0cztoLldvcmtzaGVldHM9Ti5sZW5ndGgsaC5TaGVldE5hbWVzPVtdO2Zvcih2YXIg'@; put 'TT0wO00hPU4ubGVuZ3RoOysrTSloLlNoZWV0TmFtZXNbTV09TltNXS5uYW1lO3ZhciBJPWk/ImJpbiI6InhtbCIseT1uLndvcmtib29rc1swXS5sYXN0SW5kZXhPZigiLyIpLFA9KG4ud29ya2Jvb2tzWzBdLnNsaWNlKDAseSsxKSsiX3JlbHMvIituLndvcmtib29rc1swXS5zbGljZSh5KzEp'@; put 'KyIucmVscyIpLnJlcGxhY2UoL15cLy8sIiIpO1dyKGUsUCl8fChQPSJ4bC9fcmVscy93b3JrYm9vay4iK0krIi5yZWxzIik7dmFyIFI9SWEoTnIoZSxQLCEwKSxQLnJlcGxhY2UoL19yZWxzLiovLCJzNXMiKSk7KG4ubWV0YWRhdGF8fFtdKS5sZW5ndGg+PTEmJih0LnhsbWV0YT1mdW5jdGlv'@; put 'biBicChlLHQscil7cmV0dXJuIi5iaW4iPT09dC5zbGljZSgtNCk/ZnVuY3Rpb24gaXgoZSx0LHIpe3ZhciBhPXtUeXBlczpbXSxDZWxsOltdLFZhbHVlOltdfSxuPXJ8fHt9LGk9W10scz0hMSxmPTI7cmV0dXJuIGh0KGUsZnVuY3Rpb24oYyxvLGwpe3N3aXRjaChsKXtjYXNlIDMzNTphLlR5'@; put 'cGVzLnB1c2goe25hbWU6Yy5uYW1lfSk7YnJlYWs7Y2FzZSA1MTpjLmZvckVhY2goZnVuY3Rpb24oaCl7MT09Zj9hLkNlbGwucHVzaCh7dHlwZTphLlR5cGVzW2hbMF0tMV0ubmFtZSxpbmRleDpoWzFdfSk6MD09ZiYmYS5WYWx1ZS5wdXNoKHt0eXBlOmEuVHlwZXNbaFswXS0xXS5uYW1lLGlu'@; put 'ZGV4OmhbMV19KX0pO2JyZWFrO2Nhc2UgMzM3OmY9Yz8xOjA7YnJlYWs7Y2FzZSAzMzg6Zj0yO2JyZWFrO2Nhc2UgMzU6aS5wdXNoKGwpLHM9ITA7YnJlYWs7Y2FzZSAzNjppLnBvcCgpLHM9ITE7YnJlYWs7ZGVmYXVsdDppZighby5UJiYoIXN8fG4uV1RGJiYzNSE9aVtpLmxlbmd0aC0xXSkp'@; put 'dGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIHJlY29yZCAweCIrbC50b1N0cmluZygxNikpfX0pLGF9KGUsMCxyKTpmdW5jdGlvbiBmeChlLHQscil7dmFyIGE9e1R5cGVzOltdLENlbGw6W10sVmFsdWU6W119O2lmKCFlKXJldHVybiBhO3ZhciBzLG49ITEsaT0yO3JldHVybiBlLnJlcGxh'@; put 'Y2UodnIsZnVuY3Rpb24oZil7dmFyIGM9bWUoZik7c3dpdGNoKHJ0KGNbMF0pKXtjYXNlIjw/eG1sIjpjYXNlIjxtZXRhZGF0YSI6Y2FzZSI8L21ldGFkYXRhPiI6Y2FzZSI8bWV0YWRhdGFUeXBlcyI6Y2FzZSI8L21ldGFkYXRhVHlwZXM+IjpjYXNlIjwvbWV0YWRhdGFUeXBlPiI6Y2FzZSI8'@; put 'L2Z1dHVyZU1ldGFkYXRhPiI6Y2FzZSI8Yms+IjpjYXNlIjwvYms+IjpjYXNlIjwvcmM+IjpjYXNlIjxleHRMc3QiOmNhc2UiPGV4dExzdD4iOmNhc2UiPC9leHRMc3Q+IjpjYXNlIjxleHRMc3QvPiI6YnJlYWs7Y2FzZSI8bWV0YWRhdGFUeXBlIjphLlR5cGVzLnB1c2goe25hbWU6Yy5uYW1l'@; put 'fSk7YnJlYWs7Y2FzZSI8ZnV0dXJlTWV0YWRhdGEiOmZvcih2YXIgbz0wO288YS5UeXBlcy5sZW5ndGg7KytvKWEuVHlwZXNbb10ubmFtZT09Yy5uYW1lJiYocz1hLlR5cGVzW29dKTticmVhaztjYXNlIjxyYyI6MT09aT9hLkNlbGwucHVzaCh7dHlwZTphLlR5cGVzW2MudC0xXS5uYW1lLGlu'@; put 'ZGV4OitjLnZ9KTowPT1pJiZhLlZhbHVlLnB1c2goe3R5cGU6YS5UeXBlc1tjLnQtMV0ubmFtZSxpbmRleDorYy52fSk7YnJlYWs7Y2FzZSI8Y2VsbE1ldGFkYXRhIjppPTE7YnJlYWs7Y2FzZSI8L2NlbGxNZXRhZGF0YT4iOmNhc2UiPC92YWx1ZU1ldGFkYXRhPiI6aT0yO2JyZWFrO2Nhc2Ui'@; put 'PHZhbHVlTWV0YWRhdGEiOmk9MDticmVhaztjYXNlIjxleHQiOm49ITA7YnJlYWs7Y2FzZSI8L2V4dD4iOm49ITE7YnJlYWs7Y2FzZSI8cnZiIjppZighcylicmVhaztzLm9mZnNldHN8fChzLm9mZnNldHM9W10pLHMub2Zmc2V0cy5wdXNoKCtjLmkpO2JyZWFrO2RlZmF1bHQ6aWYoIW4mJnIu'@; put 'V1RGKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkICIrY1swXSsiIGluIG1ldGFkYXRhIil9cmV0dXJuIGZ9KSxhfShlLDAscil9KFFlKGUsJHIobi5tZXRhZGF0YVswXSkpLG4ubWV0YWRhdGFbMF0sdCkpLChuLnBlb3BsZXx8W10pLmxlbmd0aD49MSYmKHQucGVvcGxlPWZ1bmN0aW9u'@; put 'IHB4KGUsdCl7dmFyIHI9W10sYT0hMTtyZXR1cm4gZS5yZXBsYWNlKHZyLGZ1bmN0aW9uKGkpe3ZhciBzPW1lKGkpO3N3aXRjaChydChzWzBdKSl7Y2FzZSI8P3htbCI6Y2FzZSI8cGVyc29uTGlzdCI6Y2FzZSI8L3BlcnNvbkxpc3Q+IjpjYXNlIjwvcGVyc29uPiI6Y2FzZSI8ZXh0THN0Ijpj'@; put 'YXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6Y2FzZSI8ZXh0THN0Lz4iOmJyZWFrO2Nhc2UiPHBlcnNvbiI6ci5wdXNoKHtuYW1lOnMuZGlzcGxheW5hbWUsaWQ6cy5pZH0pO2JyZWFrO2Nhc2UiPGV4dCI6YT0hMDticmVhaztjYXNlIjwvZXh0PiI6YT0hMTticmVhaztkZWZhdWx0Omlm'@; put 'KCFhJiZ0LldURil0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCAiK3NbMF0rIiBpbiB0aHJlYWRlZCBjb21tZW50cyIpfXJldHVybiBpfSkscn0oUWUoZSwkcihuLnBlb3BsZVswXSkpLHQpKSxSJiYoUj1mdW5jdGlvbiBxbShlLHQpe2lmKCFlKXJldHVybiAwO3RyeXtlPXQubWFwKGZ1'@; put 'bmN0aW9uKGEpe3JldHVybiBhLmlkfHwoYS5pZD1hLnN0clJlbElEKSxbYS5uYW1lLGVbIiFpZCJdW2EuaWRdLlRhcmdldCxKbShlWyIhaWQiXVthLmlkXS5UeXBlKV19KX1jYXRjaHtyZXR1cm4gbnVsbH1yZXR1cm4gZSYmMCE9PWUubGVuZ3RoP2U6bnVsbH0oUixsLlNoZWV0cykpO3ZhciBW'@; put 'PVFlKGUsInhsL3dvcmtzaGVldHMvc2hlZXQueG1sIiwhMCk/MTowO2U6Zm9yKHA9MDtwIT1oLldvcmtzaGVldHM7KytwKXt2YXIgWD0ic2hlZXQiO2lmKFImJlJbcF0/KFQ9InhsLyIrUltwXVsxXS5yZXBsYWNlKC9bXC9dP3hsXC8vLCIiKSxXcihlLFQpfHwoVD1SW3BdWzFdKSxXcihlLFQp'@; put 'fHwoVD1QLnJlcGxhY2UoL19yZWxzXC8uKiQvLCIiKStSW3BdWzFdKSxYPVJbcF1bMl0pOlQ9KFQ9InhsL3dvcmtzaGVldHMvc2hlZXQiKyhwKzEtVikrIi4iK0kpLnJlcGxhY2UoL3NoZWV0MFwuLywic2hlZXQuIiksZz1ULnJlcGxhY2UoL14oLiopKFwvKShbXlwvXSopJC8sIiQxL19yZWxz'@; put 'LyQzLnJlbHMiKSx0JiZudWxsIT10LnNoZWV0cylzd2l0Y2godHlwZW9mIHQuc2hlZXRzKXtjYXNlIm51bWJlciI6aWYocCE9dC5zaGVldHMpY29udGludWUgZTticmVhaztjYXNlInN0cmluZyI6aWYoaC5TaGVldE5hbWVzW3BdLnRvTG93ZXJDYXNlKCkhPXQuc2hlZXRzLnRvTG93ZXJDYXNl'@; put 'KCkpY29udGludWUgZTticmVhaztkZWZhdWx0OmlmKEFycmF5LmlzQXJyYXkmJkFycmF5LmlzQXJyYXkodC5zaGVldHMpKXtmb3IodmFyIGI9ITEsZWU9MDtlZSE9dC5zaGVldHMubGVuZ3RoOysrZWUpIm51bWJlciI9PXR5cGVvZiB0LnNoZWV0c1tlZV0mJnQuc2hlZXRzW2VlXT09cCYmKGI9'@; put 'MSksInN0cmluZyI9PXR5cGVvZiB0LnNoZWV0c1tlZV0mJnQuc2hlZXRzW2VlXS50b0xvd2VyQ2FzZSgpPT1oLlNoZWV0TmFtZXNbcF0udG9Mb3dlckNhc2UoKSYmKGI9MSk7aWYoIWIpY29udGludWUgZX19Wm0oZSxULGcsaC5TaGVldE5hbWVzW3BdLHAsayxzLFgsdCxsLGMsbyl9cmV0dXJu'@; put 'IHY9e0RpcmVjdG9yeTpuLFdvcmtib29rOmwsUHJvcHM6aCxDdXN0cHJvcHM6ZCxEZXBzOnUsU2hlZXRzOnMsU2hlZXROYW1lczpoLlNoZWV0TmFtZXMsU3RyaW5nczpWYSxTdHlsZXM6byxUaGVtZXM6YyxTU0Y6TWUocGUpfSx0JiZ0LmJvb2tGaWxlcyYmKGUuZmlsZXM/KHYua2V5cz1hLHYu'@; put 'ZmlsZXM9ZS5maWxlcyk6KHYua2V5cz1bXSx2LmZpbGVzPXt9LGUuRnVsbFBhdGhzLmZvckVhY2goZnVuY3Rpb24obGUscmUpe2xlPWxlLnJlcGxhY2UoL15Sb290IEVudHJ5W1wvXS8sIiIpLHYua2V5cy5wdXNoKGxlKSx2LmZpbGVzW2xlXT1lLkZpbGVJbmRleFtyZV19KSkpLHQmJnQuYm9v'@; put 'a1ZCQSYmKG4udmJhLmxlbmd0aD4wP3YudmJhcmF3PVFlKGUsJHIobi52YmFbMF0pLCEwKTpuLmRlZmF1bHRzJiZuLmRlZmF1bHRzLmJpbj09PVN4JiYodi52YmFyYXc9UWUoZSwieGwvdmJhUHJvamVjdC5iaW4iLCEwKSkpLHZ9ZnVuY3Rpb24gZWcoZSx0KXt2YXIgcj10fHx7fSxhPSJXb3Jr'@; put 'Ym9vayIsbj12ZS5maW5kKGUsYSk7dHJ5e2lmKCEobj12ZS5maW5kKGUsYT0iLyFEYXRhU3BhY2VzL1ZlcnNpb24iKSl8fCFuLmNvbnRlbnQpdGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBFbmNyeXB0ZWQgZmlsZSBtaXNzaW5nICIrYSk7aWYoZnVuY3Rpb24gUGgoZSl7dmFyIHQ9e307dC5p'@; put 'ZD1lLnJlYWRfc2hpZnQoMCwibHBwNCIpLHQuUj1kdChlLDQpLHQuVT1kdChlLDQpLHQuVz1kdChlLDQpfShuLmNvbnRlbnQpLCEobj12ZS5maW5kKGUsYT0iLyFEYXRhU3BhY2VzL0RhdGFTcGFjZU1hcCIpKXx8IW4uY29udGVudCl0aHJvdyBuZXcgRXJyb3IoIkVDTUEtMzc2IEVuY3J5cHRl'@; put 'ZCBmaWxlIG1pc3NpbmcgIithKTt2YXIgaT1mdW5jdGlvbiBCaChlKXt2YXIgdD1bXTtlLmwrPTQ7Zm9yKHZhciByPWUucmVhZF9zaGlmdCg0KTtyLS0gPjA7KXQucHVzaChMaChlKSk7cmV0dXJuIHR9KG4uY29udGVudCk7aWYoMSE9PWkubGVuZ3RofHwxIT09aVswXS5jb21wcy5sZW5ndGh8'@; put 'fDAhPT1pWzBdLmNvbXBzWzBdLnR8fCJTdHJvbmdFbmNyeXB0aW9uRGF0YVNwYWNlIiE9PWlbMF0ubmFtZXx8IkVuY3J5cHRlZFBhY2thZ2UiIT09aVswXS5jb21wc1swXS52KXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgRW5jcnlwdGVkIGZpbGUgYmFkICIrYSk7aWYoIShuPXZlLmZpbmQo'@; put 'ZSxhPSIvIURhdGFTcGFjZXMvRGF0YVNwYWNlSW5mby9TdHJvbmdFbmNyeXB0aW9uRGF0YVNwYWNlIikpfHwhbi5jb250ZW50KXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgRW5jcnlwdGVkIGZpbGUgbWlzc2luZyAiK2EpO3ZhciBzPWZ1bmN0aW9uIE1oKGUpe3ZhciB0PVtdO2UubCs9NDtm'@; put 'b3IodmFyIHI9ZS5yZWFkX3NoaWZ0KDQpO3ItLSA+MDspdC5wdXNoKGUucmVhZF9zaGlmdCgwLCJscHA0IikpO3JldHVybiB0fShuLmNvbnRlbnQpO2lmKDEhPXMubGVuZ3RofHwiU3Ryb25nRW5jcnlwdGlvblRyYW5zZm9ybSIhPXNbMF0pdGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBFbmNy'@; put 'eXB0ZWQgZmlsZSBiYWQgIithKTtpZighKG49dmUuZmluZChlLGE9Ii8hRGF0YVNwYWNlcy9UcmFuc2Zvcm1JbmZvL1N0cm9uZ0VuY3J5cHRpb25UcmFuc2Zvcm0vIVByaW1hcnkiKSl8fCFuLmNvbnRlbnQpdGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBFbmNyeXB0ZWQgZmlsZSBtaXNzaW5n'@; put 'ICIrYSk7IWZ1bmN0aW9uIFdoKGUpe3ZhciB0PWZ1bmN0aW9uIFVoKGUpe3ZhciB0PXt9O3JldHVybiBlLnJlYWRfc2hpZnQoNCksZS5sKz00LHQuaWQ9ZS5yZWFkX3NoaWZ0KDAsImxwcDQiKSx0Lm5hbWU9ZS5yZWFkX3NoaWZ0KDAsImxwcDQiKSx0LlI9ZHQoZSw0KSx0LlU9ZHQoZSw0KSx0'@; put 'Llc9ZHQoZSw0KSx0fShlKTtpZih0LmVuYW1lPWUucmVhZF9zaGlmdCgwLCI4bHBwNCIpLHQuYmxrc3o9ZS5yZWFkX3NoaWZ0KDQpLHQuY21vZGU9ZS5yZWFkX3NoaWZ0KDQpLDQhPWUucmVhZF9zaGlmdCg0KSl0aHJvdyBuZXcgRXJyb3IoIkJhZCAhUHJpbWFyeSByZWNvcmQiKTtyZXR1cm4g'@; put 'dH0obi5jb250ZW50KX1jYXRjaHt9aWYoIShuPXZlLmZpbmQoZSxhPSIvRW5jcnlwdGlvbkluZm8iKSl8fCFuLmNvbnRlbnQpdGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBFbmNyeXB0ZWQgZmlsZSBtaXNzaW5nICIrYSk7dmFyIGY9ZnVuY3Rpb24gSGgoZSl7dmFyIHQ9ZHQoZSk7c3dpdGNo'@; put 'KHQuTWlub3Ipe2Nhc2UgMjpyZXR1cm5bdC5NaW5vcixWaChlKV07Y2FzZSAzOnJldHVyblt0Lk1pbm9yLFhoKCldO2Nhc2UgNDpyZXR1cm5bdC5NaW5vcixHaChlKV19dGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBFbmNyeXB0ZWQgZmlsZSB1bnJlY29nbml6ZWQgVmVyc2lvbjogIit0Lk1p'@; put 'bm9yKX0obi5jb250ZW50KTtpZighKG49dmUuZmluZChlLGE9Ii9FbmNyeXB0ZWRQYWNrYWdlIikpfHwhbi5jb250ZW50KXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgRW5jcnlwdGVkIGZpbGUgbWlzc2luZyAiK2EpO2lmKDQ9PWZbMF0mJnR5cGVvZiBkZWNyeXB0X2FnaWxlPCJ1IilyZXR1'@; put 'cm4gZGVjcnlwdF9hZ2lsZShmWzFdLG4uY29udGVudCxyLnBhc3N3b3JkfHwiIixyKTtpZigyPT1mWzBdJiZ0eXBlb2YgZGVjcnlwdF9zdGQ3NjwidSIpcmV0dXJuIGRlY3J5cHRfc3RkNzYoZlsxXSxuLmNvbnRlbnQsci5wYXNzd29yZHx8IiIscik7dGhyb3cgbmV3IEVycm9yKCJGaWxlIGlz'@; put 'IHBhc3N3b3JkLXByb3RlY3RlZCIpfWZ1bmN0aW9uIEtuKGUsdCl7dmFyIHI9IiI7c3dpdGNoKCh0fHx7fSkudHlwZXx8ImJhc2U2NCIpe2Nhc2UiYnVmZmVyIjpjYXNlImFycmF5IjpyZXR1cm5bZVswXSxlWzFdLGVbMl0sZVszXSxlWzRdLGVbNV0sZVs2XSxlWzddXTtjYXNlImJhc2U2NCI6'@; put 'cj1PcihlLnNsaWNlKDAsMTIpKTticmVhaztjYXNlImJpbmFyeSI6cj1lO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgdHlwZSAiKyh0JiZ0LnR5cGV8fCJ1bmRlZmluZWQiKSl9cmV0dXJuW3IuY2hhckNvZGVBdCgwKSxyLmNoYXJDb2RlQXQoMSksci5jaGFy'@; put 'Q29kZUF0KDIpLHIuY2hhckNvZGVBdCgzKSxyLmNoYXJDb2RlQXQoNCksci5jaGFyQ29kZUF0KDUpLHIuY2hhckNvZGVBdCg2KSxyLmNoYXJDb2RlQXQoNyldfWZ1bmN0aW9uIHZjKGUsdCl7dmFyIHI9MDtlOmZvcig7cjxlLmxlbmd0aDspc3dpdGNoKGUuY2hhckNvZGVBdChyKSl7Y2FzZSAx'@; put 'MDpjYXNlIDEzOmNhc2UgMzI6KytyO2JyZWFrO2Nhc2UgNjA6cmV0dXJuIFVuKGUuc2xpY2UociksdCk7ZGVmYXVsdDpicmVhayBlfXJldHVybiBjYS50b193b3JrYm9vayhlLHQpfWZ1bmN0aW9uIFluKGUsdCxyLGEpe3JldHVybiBhPyhyLnR5cGU9InN0cmluZyIsY2EudG9fd29ya2Jvb2so'@; put 'ZSxyKSk6Y2EudG9fd29ya2Jvb2sodCxyKX1mdW5jdGlvbiBJMChlLHQpe3IwKCk7dmFyIHI9dHx8e307aWYodHlwZW9mIEFycmF5QnVmZmVyPCJ1IiYmZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKXJldHVybiBJMChuZXcgVWludDhBcnJheShlKSwoKHI9TWUocikpLnR5cGU9ImFycmF5Iixy'@; put 'KSk7dHlwZW9mIFVpbnQ4QXJyYXk8InUiJiZlIGluc3RhbmNlb2YgVWludDhBcnJheSYmIXIudHlwZSYmKHIudHlwZT10eXBlb2YgRGVubzwidSI/ImJ1ZmZlciI6ImFycmF5Iik7dmFyIG4sYT1lLGk9ITE7aWYoci5jZWxsU3R5bGVzJiYoci5jZWxsTkY9ITAsci5zaGVldFN0dWJzPSEwKSxo'@; put 'YT17fSxyLmRhdGVORiYmKGhhLmRhdGVORj1yLmRhdGVORiksci50eXBlfHwoci50eXBlPVNlJiZCdWZmZXIuaXNCdWZmZXIoZSk/ImJ1ZmZlciI6ImJhc2U2NCIpLCJmaWxlIj09ci50eXBlJiYoci50eXBlPVNlPyJidWZmZXIiOiJiaW5hcnkiLGE9ZnVuY3Rpb24gY28oZSl7aWYodHlwZW9m'@; put 'IERlbm88InUiKXJldHVybiBEZW5vLnJlYWRGaWxlU3luYyhlKTtpZih0eXBlb2YgJDwidSImJnR5cGVvZiBGaWxlPCJ1IiYmdHlwZW9mIEZvbGRlcjwidSIpdHJ5e3ZhciB0PUZpbGUoZSk7dC5vcGVuKCJyIiksdC5lbmNvZGluZz0iYmluYXJ5Ijt2YXIgcj10LnJlYWQoKTtyZXR1cm4gdC5j'@; put 'bG9zZSgpLHJ9Y2F0Y2goYSl7aWYoIWEubWVzc2FnZXx8IWEubWVzc2FnZS5tYXRjaCgvb25zdHJ1Y3QvKSl0aHJvdyBhfXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGFjY2VzcyBmaWxlICIrZSl9KGUpLHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmIVNlJiYoci50eXBlPSJhcnJheSIpKSwic3Ry'@; put 'aW5nIj09ci50eXBlJiYoaT0hMCxyLnR5cGU9ImJpbmFyeSIsci5jb2RlcGFnZT02NTAwMSxhPWZ1bmN0aW9uIGZnKGUpe3JldHVybiBlLm1hdGNoKC9bXlx4MDAtXHg3Rl0vKT90dChlKTplfShlKSksImFycmF5Ij09ci50eXBlJiZ0eXBlb2YgVWludDhBcnJheTwidSImJmUgaW5zdGFuY2Vv'@; put 'ZiBVaW50OEFycmF5JiZ0eXBlb2YgQXJyYXlCdWZmZXI8InUiKXt2YXIgcz1uZXcgQXJyYXlCdWZmZXIoMyksZj1uZXcgVWludDhBcnJheShzKTtpZihmLmZvbz0iYmFyIiwhZi5mb28pcmV0dXJuKHI9TWUocikpLnR5cGU9ImFycmF5IixJMChNMChhKSxyKX1zd2l0Y2goKG49S24oYSxyKSlb'@; put 'MF0pe2Nhc2UgMjA4OmlmKDIwNz09PW5bMV0mJjE3PT09blsyXSYmMjI0PT09blszXSYmMTYxPT09bls0XSYmMTc3PT09bls1XSYmMjY9PT1uWzZdJiYyMjU9PT1uWzddKXJldHVybiBmdW5jdGlvbiBhZyhlLHQpe3JldHVybiB2ZS5maW5kKGUsIkVuY3J5cHRlZFBhY2thZ2UiKT9lZyhlLHQp'@; put 'OktmKGUsdCl9KHZlLnJlYWQoYSxyKSxyKTticmVhaztjYXNlIDk6aWYoblsxXTw9OClyZXR1cm4gS2YoYSxyKTticmVhaztjYXNlIDYwOnJldHVybiBVbihhLHIpO2Nhc2UgNzM6aWYoNzM9PT1uWzFdJiY0Mj09PW5bMl0mJjA9PT1uWzNdKXRocm93IG5ldyBFcnJvcigiVElGRiBJbWFnZSBG'@; put 'aWxlIGlzIG5vdCBhIHNwcmVhZHNoZWV0Iik7aWYoNjg9PT1uWzFdKXJldHVybiBmdW5jdGlvbiBnaChlLHQpe3ZhciByPXR8fHt9LGE9ISFyLldURjtyLldURj0hMDt0cnl7dmFyIG49ZWYudG9fd29ya2Jvb2soZSxyKTtyZXR1cm4gci5XVEY9YSxufWNhdGNoKGkpe2lmKHIuV1RGPWEsIWku'@; put 'bWVzc2FnZS5tYXRjaCgvU1lMSyBiYWQgcmVjb3JkIElELykmJmEpdGhyb3cgaTtyZXR1cm4gY2EudG9fd29ya2Jvb2soZSx0KX19KGEscik7YnJlYWs7Y2FzZSA4NDppZig2NT09PW5bMV0mJjY2PT09blsyXSYmNzY9PT1uWzNdKXJldHVybiByZi50b193b3JrYm9vayhhLHIpO2JyZWFrO2Nh'@; put 'c2UgODA6cmV0dXJuIDc1PT09blsxXSYmblsyXTw5JiZuWzNdPDk/ZnVuY3Rpb24gbmcoZSx0KXt2YXIgYT1lLG49dHx8e307cmV0dXJuIG4udHlwZXx8KG4udHlwZT1TZSYmQnVmZmVyLmlzQnVmZmVyKGUpPyJidWZmZXIiOiJiYXNlNjQiKSxRbShSaShhLG4pLG4pfShhLHIpOlluKGUsYSxy'@; put 'LGkpO2Nhc2UgMjM5OnJldHVybiA2MD09PW5bM10/VW4oYSxyKTpZbihlLGEscixpKTtjYXNlIDI1NTppZigyNTQ9PT1uWzFdKXJldHVybiBmdW5jdGlvbiBzZyhlLHQpe3ZhciByPWU7cmV0dXJuImJhc2U2NCI9PXQudHlwZSYmKHI9T3IocikpLHI9T2UudXRpbHMuZGVjb2RlKDEyMDAsci5z'@; put 'bGljZSgyKSwic3RyIiksdC50eXBlPSJiaW5hcnkiLHZjKHIsdCl9KGEscik7aWYoMD09PW5bMV0mJjI9PT1uWzJdJiYwPT09blszXSlyZXR1cm4ganQudG9fd29ya2Jvb2soYSxyKTticmVhaztjYXNlIDA6aWYoMD09PW5bMV0mJihuWzJdPj0yJiYwPT09blszXXx8MD09PW5bMl0mJig4PT09'@; put 'blszXXx8OT09PW5bM10pKSlyZXR1cm4ganQudG9fd29ya2Jvb2soYSxyKTticmVhaztjYXNlIDM6Y2FzZSAxMzE6Y2FzZSAxMzk6Y2FzZSAxNDA6cmV0dXJuIFRuLnRvX3dvcmtib29rKGEscik7Y2FzZSAxMjM6aWYoOTI9PT1uWzFdJiYxMTQ9PT1uWzJdJiYxMTY9PT1uWzNdKXJldHVybiBv'@; put 'Zi50b193b3JrYm9vayhhLHIpO2JyZWFrO2Nhc2UgMTA6Y2FzZSAxMzpjYXNlIDMyOnJldHVybiBmdW5jdGlvbiBpZyhlLHQpe3ZhciByPSIiLGE9S24oZSx0KTtzd2l0Y2godC50eXBlKXtjYXNlImJhc2U2NCI6cj1PcihlKTticmVhaztjYXNlImJpbmFyeSI6cj1lO2JyZWFrO2Nhc2UiYnVm'@; put 'ZmVyIjpyPWUudG9TdHJpbmcoImJpbmFyeSIpO2JyZWFrO2Nhc2UiYXJyYXkiOnI9UHQoZSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCB0eXBlICIrdC50eXBlKX1yZXR1cm4gMjM5PT1hWzBdJiYxODc9PWFbMV0mJjE5MT09YVsyXSYmKHI9QmUocikpLHQu'@; put 'dHlwZT0iYmluYXJ5Iix2YyhyLHQpfShhLHIpO2Nhc2UgMTM3OmlmKDgwPT09blsxXSYmNzg9PT1uWzJdJiY3MT09PW5bM10pdGhyb3cgbmV3IEVycm9yKCJQTkcgSW1hZ2UgRmlsZSBpcyBub3QgYSBzcHJlYWRzaGVldCIpfXJldHVybiBtaC5pbmRleE9mKG5bMF0pPi0xJiZuWzJdPD0xMiYm'@; put 'blszXTw9MzE/VG4udG9fd29ya2Jvb2soYSxyKTpZbihlLGEscixpKX1mdW5jdGlvbiBfYyhlLHQscixhLG4saSxzLGYpe3ZhciBjPUtlKHIpLG89Zi5kZWZ2YWwsbD1mLnJhd3x8IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChmLCJyYXciKSxoPSEwLHg9MT09PW4/W106'@; put 'e307aWYoMSE9PW4paWYoT2JqZWN0LmRlZmluZVByb3BlcnR5KXRyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwiX19yb3dOdW1fXyIse3ZhbHVlOnIsZW51bWVyYWJsZTohMX0pfWNhdGNoe3guX19yb3dOdW1fXz1yfWVsc2UgeC5fX3Jvd051bV9fPXI7aWYoIXN8fGVbcl0pZm9yKHZhciBk'@; put 'PXQucy5jO2Q8PXQuZS5jOysrZCl7dmFyIHY9cz9lW3JdW2RdOmVbYVtkXStjXTtpZih2b2lkIDAhPT12JiZ2b2lkIDAhPT12LnQpe3ZhciB1PXYudjtzd2l0Y2godi50KXtjYXNlInoiOmlmKG51bGw9PXUpYnJlYWs7Y29udGludWU7Y2FzZSJlIjp1PTA9PXU/bnVsbDp2b2lkIDA7YnJlYWs7'@; put 'Y2FzZSJzIjpjYXNlImQiOmNhc2UiYiI6Y2FzZSJuIjpicmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkIHR5cGUgIit2LnQpfWlmKG51bGwhPWlbZF0pe2lmKG51bGw9PXUpaWYoImUiPT12LnQmJm51bGw9PT11KXhbaVtkXV09bnVsbDtlbHNlIGlmKHZvaWQgMCE9'@; put 'PW8peFtpW2RdXT1vO2Vsc2V7aWYoIWx8fG51bGwhPT11KWNvbnRpbnVlO3hbaVtkXV09bnVsbH1lbHNlIHhbaVtkXV09bCYmKCJuIiE9PXYudHx8Im4iPT09di50JiYhMSE9PWYucmF3TnVtYmVycyk/dTphdCh2LHUsZik7bnVsbCE9dSYmKGg9ITEpfX1lbHNle2lmKHZvaWQgMD09PW8pY29u'@; put 'dGludWU7bnVsbCE9aVtkXSYmKHhbaVtkXV09byl9fXJldHVybntyb3c6eCxpc2VtcHR5Omh9fWZ1bmN0aW9uIGVpKGUsdCxyLGEpe3ZhciBuPTE7aWYoIXIpZm9yKDtuPD02NTUzNSYmLTEhPWUuU2hlZXROYW1lcy5pbmRleE9mKHI9IlNoZWV0IituKTsrK24scj12b2lkIDApO2lmKCFyfHxl'@; put 'LlNoZWV0TmFtZXMubGVuZ3RoPj02NTUzNSl0aHJvdyBuZXcgRXJyb3IoIlRvbyBtYW55IHdvcmtzaGVldHMiKTtpZihhJiZlLlNoZWV0TmFtZXMuaW5kZXhPZihyKT49MCl7dmFyIGk9ci5tYXRjaCgvKF4uKj8pKFxkKykkLyk7bj1pJiYraVsyXXx8MDt2YXIgcz1pJiZpWzFdfHxyO2Zvcigr'@; put 'K247bjw9NjU1MzUmJi0xIT1lLlNoZWV0TmFtZXMuaW5kZXhPZihyPXMrbik7KytuKTt9aWYoZnVuY3Rpb24gVmYoZSx0KXtpZihlLmxlbmd0aD4zMSl7aWYodClyZXR1cm4hMTt0aHJvdyBuZXcgRXJyb3IoIlNoZWV0IG5hbWVzIGNhbm5vdCBleGNlZWQgMzEgY2hhcnMiKX12YXIgcj0hMDty'@; put 'ZXR1cm4gZnAuZm9yRWFjaChmdW5jdGlvbihhKXtpZigtMSE9ZS5pbmRleE9mKGEpKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoIlNoZWV0IG5hbWUgY2Fubm90IGNvbnRhaW4gOiBcXCAvID8gKiBbIF0iKTtyPSExfX0pLHJ9KHIpLGUuU2hlZXROYW1lcy5pbmRleE9mKHIpPj0wKXRocm93IG5l'@; put 'dyBFcnJvcigiV29ya3NoZWV0IHdpdGggbmFtZSB8IityKyJ8IGFscmVhZHkgZXhpc3RzISIpO3JldHVybiBlLlNoZWV0TmFtZXMucHVzaChyKSxlLlNoZWV0c1tyXT10LHJ9YWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKHtkYXRhOmV9KT0+e2NvbnN0e2RhdGE6dCxvcHRzOnJ9PWU7dHJ5'@; put 'e2NvbnN0IGE9STAodCxyKTtwb3N0TWVzc2FnZSh7ZXZlbnQ6InJlYWRpbmdfZW5kIix3b3JrYm9vazphfSl9Y2F0Y2goYSl7YS5tZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoInBhc3N3b3JkIikmJnBvc3RNZXNzYWdlKHtlcnJvcjphfSl9fSl9KSgpOw=='; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64,swap=compiled_apploc apploc) filename filecode clear; %let filename=favicon.ico; filename filecode temp lrecl=96132; data _null_; file filecode; put 'iVBORw0KGgoAAAANSUhEUgAAApgAAAJ6CAYAAACMvTJAAAAMFGlDQ1BJQ0MgUHJvZmlsZQAASImVVwdUk8kWnr+kEBJaIAJSQm+CFOnSe0c62AhJgFAiJAQVO7Ko4FpQEQFR0RUQRdcCyKIidmUR7P1hQWVlXSzYUHmTArq+dt49Z/75cufeO9+d3JkzA4CiNSsnJwtVAiCbnyeICvBmJiQmMUmP'@; put 'AAY0AB0YAiUWW5jjFRkZCqCM9X+XdzcAIu6vWopj/ev4fxVlDlfIBgCJhDiFI2RnQ3wYAFydnSPIA4DQBfUGc/NyxHgIYlUBJAgAERfjNClWF+MUKZ4ksYmJ8oHYEwAylcUSpAGgIObNzGenwTgKYo7WfA6PD3E1xO7sdBYH4nsQT8rOngOxIhli05Tv4qT9LWbKeEwWK20cS3ORCNmXJ8zJYs3/'@; put 'P5fjf0t2lmhsDn3YqOmCwChxznDd6jPnhIgxFeJ2fkp4BMQqEJ/ncST2YnwnXRQYK7MfZAt94JoBBgAo4LB8QyDWgpghyoz1kmFblkDiC+3RcF5eUIwMpwjmRMnio/n8rPBQWZyV6dygMVzDFfpFj9mk8vyDIIaVhh4uSI+Jl/JET+fz4sIhVoC4R5gZHSLzfVCQ7hM+ZiMQRYk5G0L8NlXgHyW1'@; put 'wdSzhWN5YVZslmQuWAuYZ156TKDUF0vgChNCxzhwuL5+Ug4Yh8uPlXHDYHV5R8l8i3OyImX2WA03KyBKus7YAWF+9JjvlTxYYNJ1wB5lsIIjZXO9y8mLjJFyw1EQCnyAL2ACEWwpYA7IALzuwZZB+Es64g9YQADSABdYyjRjHvGSET78RoMC8CdEXCAc9/OWjHJBPtR/GddKv5YgVTKaL/HIBE8h'@; put 'zsY1cXfcFQ+FX0/YbHEn3HnMj6k4NivRj+hLDCT6E83GebAh6yzYBID3b3QhsOfC7MRc+GM5fItHeEroJTwiXCf0EW6DOPBEEkVmNZtXKPiBOROEgT4YzV+WXcr32eHGkLU97o27Qf6QO87ANYElPgVm4oV7wNzsofZ7hqJxbt/W8sf5xKy/z0emVzBXsJexSBn/Z3zGrX6M4vPdGnFgH/KjJbYS'@; put 'O4Sdw05iF7B2rAUwsRNYK9aFHRPj8Up4IqmEsdmiJNwyYRzemI11o/WA9ecf5mbJ5hevlzCPOy9PvBl85uTMF/DS0vOYXvA05jKD+GyrSUxbaxsnAMRnu/ToeMOQnNkI4+I3XW4HAM4lUJn2TccyAODoUwDo777pDF7Dcl8HwLEetkiQL9WJj2NAABSgCHeFBtABBsAU5mMLHIAr8AR+IBhEgBiQ'@; put 'CGbBFU8H2ZDzXLAQLAPFoBSsA5tAJdgGdoJ6sA8cBC2gHZwEZ8El0AOug7uwLvrBCzAE3oERBEFICA2hIxqILmKEWCC2iBPijvghoUgUkogkI2kIHxEhC5HlSClShlQiO5AG5FfkKHISuYD0IreRh8gA8hr5hGIoFVVFtVFjdDLqhHqhIWgMOhNNQ3PRArQIXYNWoLXoXrQZPYleQq+jfegLdBgD'@; put 'mDzGwPQwS8wJ88EisCQsFRNgi7ESrByrxZqwNvg/X8X6sEHsI07E6TgTt4S1GYjH4mw8F1+Mr8Yr8Xq8GT+NX8Uf4kP4VwKNoEWwILgQgggJhDTCXEIxoZywm3CEcAbum37COyKRyCCaEB3hvkwkZhAXEFcTtxL3EzuIvcTHxGESiaRBsiC5kSJILFIeqZi0hbSXdIJ0hdRP+kCWJ+uSbcn+5CQy'@; put 'n1xILifvIR8nXyE/I4/IKckZybnIRchx5ObLrZXbJdcmd1muX26EokwxobhRYigZlGWUCkoT5QzlHuWNvLy8vryz/DR5nvxS+Qr5A/Ln5R/Kf6SqUM2pPtQZVBF1DbWO2kG9TX1Do9GMaZ60JFoebQ2tgXaK9oD2QYGuYKUQpMBRWKJQpdCscEXhpaKcopGil+IsxQLFcsVDipcVB5XklIyVfJRY'@; put 'SouVqpSOKt1UGlamK9soRyhnK69W3qN8Qfm5CknFWMVPhaNSpLJT5ZTKYzpGN6D70Nn05fRd9DP0flWiqolqkGqGaqnqPtVu1SE1FbUpanFq89Sq1I6p9TEwhjEjiJHFWMs4yLjB+DRBe4LXBO6EVROaJlyZ8F59orqnOle9RH2/+nX1TxpMDT+NTI31Gi0a9zVxTXPNaZpzNWs0z2gOTlSd6DqR'@; put 'PbFk4sGJd7RQLXOtKK0FWju1urSGtXW0A7RztLdon9Ie1GHoeOpk6GzUOa4zoEvXddfl6W7UPaH7B1ON6cXMYlYwTzOH9LT0AvVEejv0uvVG9E30Y/UL9ffr3zegGDgZpBpsNOg0GDLUNQwzXGjYaHjHSM7IySjdaLPROaP3xibG8cYrjFuMn5uomwSZFJg0mtwzpZl6mOaa1ppeMyOaOZllmm01'@; put '6zFHze3N082rzC9boBYOFjyLrRa9kwiTnCfxJ9VOumlJtfSyzLdstHxoxbAKtSq0arF6OdlwctLk9ZPPTf5qbW+dZb3L+q6Nik2wTaFNm81rW3Nbtm2V7TU7mp2/3RK7VrtXUyymcKfUTLllT7cPs19h32n/xcHRQeDQ5DDgaOiY7FjteNNJ1SnSabXTeWeCs7fzEud2548uDi55Lgdd/nK1dM10'@; put '3eP6fKrJVO7UXVMfu+m7sdx2uPW5M92T3be793noebA8aj0eeRp4cjx3ez7zMvPK8Nrr9dLb2lvgfcT7vY+LzyKfDl/MN8C3xLfbT8Uv1q/S74G/vn+af6P/UIB9wIKAjkBCYEjg+sCbQdpB7KCGoKFgx+BFwadDqCHRIZUhj0LNQwWhbWFoWHDYhrB74Ubh/PCWCBARFLEh4n6kSWRu5G/TiNMi'@; put 'p1VNexplE7Uw6lw0PXp29J7odzHeMWtj7saaxopiO+MU42bENcS9j/eNL4vvS5icsCjhUqJmIi+xNYmUFJe0O2l4ut/0TdP7Z9jPKJ5xY6bJzHkzL8zSnJU169hsxdms2YeSCcnxyXuSP7MiWLWs4ZSglOqUIbYPezP7BceTs5EzwHXjlnGfpbqllqU+T3NL25A2kO6RXp4+yPPhVfJeZQRmbMt4'@; put 'nxmRWZc5mhWftT+bnJ2cfZSvws/kn56jM2fenN4ci5zinL5cl9xNuUOCEMFuISKcKWzNU4XXnC6Rqegn0cN89/yq/A9z4+Yemqc8jz+va775/FXznxX4F/yyAF/AXtC5UG/hsoUPF3kt2rEYWZyyuHOJwZKiJf1LA5bWL6Msy1z2e6F1YVnh2+Xxy9uKtIuWFj3+KeCnxmKFYkHxzRWuK7atxFfy'@; put 'Vnavslu1ZdXXEk7JxVLr0vLSz6vZqy/+bPNzxc+ja1LXdK91WFuzjriOv+7Geo/19WXKZQVljzeEbWjeyNxYsvHtptmbLpRPKd+2mbJZtLmvIrSidYvhlnVbPlemV16v8q7aX61Vvar6/VbO1is1njVN27S3lW77tJ23/daOgB3Ntca15TuJO/N3Pt0Vt+vcL06/NOzW3F26+0sdv66vPqr+dINj'@; put 'Q8MerT1rG9FGUePA3hl7e/b57mttsmzasZ+xv/QAOCA68Mevyb/eOBhysPOQ06Gmw0aHq4/Qj5Q0I83zm4da0lv6WhNbe48GH+1sc2078pvVb3Xteu1Vx9SOrT1OOV50fPREwYnhjpyOwZNpJx93zu68eyrh1LXT0053nwk5c/6s/9lT57zOnTjvdr79gsuFoxedLrZccrjU3GXfdeR3+9+PdDt0'@; put 'N192vNza49zT1ju19/gVjysnr/pePXst6Nql6+HXe2/E3rh1c8bNvlucW89vZ91+dSf/zsjdpfcI90ruK90vf6D1oPYfZv/Y3+fQd+yh78OuR9GP7j5mP37xRPjkc3/RU9rT8me6zxqe2z5vH/Af6Plj+h/9L3JejAwW/6n8Z/VL05eH//L8q2soYaj/leDV6OvVbzTe1L2d8rZzOHL4wbvsdyPv'@; put 'Sz5ofKj/6PTx3Kf4T89G5n4mfa74Yval7WvI13uj2aOjOSwBS3IVwGBDU1MBeF0HAC0R3h16AKAoSN9eEkGk70UJAv8JS99nEnEAoM4TgNilAITCO0oNbEYQU2EvvnrHeALUzm68yUSYamcrjUWFLxjCh9HRN9oAkNoA+CIYHR3ZOjr6ZRckexuAjlzpm08sRHi/324mRt2XRobAD/JPCotuA2JA'@; put 'n4YAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAGdaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA1LjQuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8y'@; put 'Mi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjY2NDwvZXhpZjpQaXhlbFhEaW1lbnNp'@; put 'b24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj42MzQ8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KSHKtHgAAABxpRE9UAAAAAgAAAAAAAAE9AAAAKAAAAT0AAAE9AACKlRxL/UIAAEAASURB'@; put 'VHgB7L0HgNxmeqb5FVChIzuRTTZzzlESRUVSFCUqzIwmjyZnx71zWO96b89h7b31ede+27O9DjOe8eSo0USlURxpGESKYhBzzqFJdrNzqADg3g/FoppUk6zuQlWjUC+kZmXgx/OjUC++GFq25v2OcCEBEiABEiABEiABEiABjwiEKDA9IsnVkAAJkAAJkAAJkAAJuAQoMHkgkAAJkAAJkAAJkAAJ'@; put 'eEqAAtNTnFwZCZAACZAACZAACZAABSaPARIgARIgARIgARIgAU8JUGB6ipMrIwESIAESIAESIAESoMDkMUACJEACJEACJEACJOApAQpMT3FyZSRAAiRAAiRAAiRAAhSYPAZIgARIgARIgARIgAQ8JUCB6SlOrowESIAESIAESIAESIACk8cACZAACZAACZAACZCApwQoMD3FyZWRAAmQAAmQAAmQ'@; put 'AAlQYPIYIAESIAESIAESIAES8JQABaanOLkyEiABEiABEiABEiABCkweAyRAAiRAAiRAAiRAAp4SoMD0FCdXRgIkQAIkQAIkQAIkQIHJY4AESIAESIAESIAESMBTAhSYnuLkykiABEiABEiABEiABCgweQyQAAmQAAmQAAmQAAl4SoAC01OcXBkJkAAJkAAJkAAJkAAFJo8BEiABEiABEiABEiAB'@; put 'TwlQYHqKkysjARIgARIgARIgARKgwOQxQAIkQAIkQAIkQAIk4CkBCkxPcXJlJEACJEACJEACJEACFJg8BkiABAJBwHEcMc2QmGFbwtGQhCM27ockEnMkHBOJRHGL52OVtlRW2VJW5UhZpT7W53G/PCTRCkdC+O+GC162EiL9vY4k4yGJ9+OvRx+HpKcTt90hSeA5Ky6SSuI+3qvvTyUMsZL4DJ6z'@; put 'UrqFm2znhoPgiyRAAiTgbwIUmP6eH46OBEgAOiwCsRgpE4mVO64grKjCfQjDimo8rtDnRaJ4LVrmuILSjAhEo4hpiBhh/BkG/iDp8E9IHLHtNFbbdtw70KaiAhUvZbdgTFgdVog7+r/7l34yvQUR27Lxh1tszMF2kokQBCfEJv5SEKb9EKAJiNI4/vp7DOntdiBUcb/r8nN9+j5DUimIXt0AFxIg'@; put 'ARIoIgIUmEU0WRwqCQSVQCjkSLlaFGFBrKh1ZFSDI1U16fsV+jwEZQRWyDCskZGwIWYEMi6juSAKIeH0H1ckqk7URUXdFb145U76tYL9e3mMeuPeNdJPGHqL/43LAlXHo0N0LAeC0oYYtcVSyyj+etU62mVId4dIT7uBPzwHS2lPZ0iSeN1x0uvUdXAhARIgAb8QoMD0y0xwHCQQeAJqXRRYHW2p'@; put 'qheprrelpt6RStxW1YorLqNwU0diEJBwdeuiVkUHwtG1NEIwXjY8ptVYUHmltSesrek7KkYzQlRFqA2LZjKekr5uQ/p6HAhPU7pbRbouhaSzNS1A1U2fhBv+pu7+oDLkfpEACYw4AQrMEZ8CDoAEgkfAhFtahaRaIkc12lI7xpHqBkuqa+DOhkUyVhZ24yPThkeISFju1PLoCsmRsjYWyzRcNlhe'@; put 'EZ5m2hKq2Ky4Lf39DuJARbph6Wxvgei8gFv86WMVpY59eQXFsr8cJwmQQFESoMAsymnjoEnAHwTUwhhBvGNlLayREJH14yAqxzpSOxqJNDVIoIFFUt3Zqh4zlkiKyDzOnWpHuN3VABxCgpMbD4r7qbiFWE+Izg5HOi4Y0nbelLaLAvEJiydc7bZF0ZnHWeGqSaAkCVBgluS0c6dJYHgEDI2VRGJN'@; put 'TaMjDeNtaWiCoMT9asRLRitMJNVArMAsqRZJ5LjAJElz5PBIe/wpFZwqPDE/IVg89b4FV3tfry29bQ7EpiGtZwy51GxAgGrSEWM7PZ4Bro4ESo4ABWbJTTl3mASyJ2AY6tqGmISQHD0RgnICXN6Imyyv1jJABvQjxCSECvQkxWT2WP3zTgjO8GXRqZbPVMKCGx1WTrjW284ZcvEUROc5uNcvocQS'@; put 'Xev+mTeOhASKgAAFZhFMEodIAoUiYJrpDO6GCbY0TlFBaSMZR7O7w9AfaTe3pdnZapmkcbJQ01K47ailE4LTtXSmIxtgzbSksw1CExbOC8dD0noWVk4kFdmWW6ipcGPjlkiABIqKAAVmUU0XB0sC3hIIwUJZhfjJMRMdaZzqyGgIylGjYaGshB/VdXUjfk/FJF3d3oIvprUNtHIiL70PgrPrkrgu'@; put '9fPHDWk5bbgC1EHNTy4kQAIkkCFAgZkhwVsSKAkC6cLkGj85biqslPirHWMj49uE5QqSEiIhpVXIr9QDKgko3MmhEMBxEtaC9e41iNbptKTjvMgFuNObj4Wk5YyJgvHIVqeFeyhU+V4SCBwBCszATSl3iASuJqBWyuo6WCinODJ+puXGUlbVaXccLVmD0jZaIogWyquh8VH2BNTCibR1vUDRxCHN'@; put 'VG89G5LmI6ach0u9HQlEzFLPHiffSQJBIUCBGZSZ5H6QwAACZlhLBjkybrolTbNsqUctysoaFKeE21sLdWscJWMoBwDjXW8IZGI4VXAiaSgO6+YlZKU3Q2g2HzZh3Uz3aUekpzfb41pIgAR8S4AC07dTw4GRwNAIRNFGsX6CJRNm2tI0A7UoUT6orNx0M73VskQr5dB48t0eEBhg3Uyh/WUnug2p'@; put 'G/2Mis0T6l6H0GSrSw9AcxUk4D8CFJj+mxOOiASyIqBFzmNlIg0oHzRxliXjYamsGYNWi1HUMITrW3ta00qZFUq+qRAEoCU1O91AAXgLsb49bbacg8g8cwCudIhOt8sQxWYhZoLbIIGCEKDALAhmboQEvCNgRhwZo5bKOY4rLGsaL4tKTdDR6uZMrvAONteUNwIG3OgmxKbmlHWh2PuF4yKnDkJs'@; put 'InaztwebpdjMG3uumAQKQYACsxCUuQ0SyJGAgfqUdYipnDQbwnK2dtBBi8YyJOlQVOZIlh/3A4EQxKYmCmlocNclWDaPGXJ6ryHnjpuS6NMRMmbTD/PEMZDAUAhQYA6FFt9LAgUkoIXNq2odCEpLpsyH1XKSjXaMSNWl+7uAs8BNFZpAxrJpIcRDOwqdOWjIyX3oKoRC71aCQrPQ88HtkcBwCVBg'@; put 'DpccP0cCeSDgxlWWizRNs2TyAhtlhWypqjHh9XYQUwnzDssJ5YE6V+lLAtCSrtiEZTMZt6UFpY9O7Ydlc78p7RCejkWx6ct546BI4DIBCkweCiTgAwLqAteC51MX2jJhnpYVciQcNhBTCWnpNvr2wSA5BBIYKQLQkvp9EPzf3+Wg7JHI8V2mnD1sSH+vCk2KzZGaGm6XBK5HgALzemT4PAnkmYBa'@; put 'K8sqHNSpdGTGopQ0ThOpqEIcGuIqLSbr5Jk+V1+sBNxe6UgO0koJHS0O3OchObHHlEvokW7Rqlms08pxB5AABWYAJ5W75G8C2lmnZowjUxdZMnW+JbVjUboF5VtYq9Lf88bR+Y+Aljwy4UKP99pyHiWPju40ELMZln7NQqdV038TxhGVFAEKzJKabu7sSBIIwQ3eiESdOStSMnEmrJfV6SxwWitH'@; put 'cla47UAQ0ILul62a7RccOYEMdHWht51nT/RAzC93oigJUGAW5bRx0MVCwE3agRt84hxbZt1iSeNkR6IxxlYWy/xxnMVHIGPV7O9x5PiekBzZhtqap/RijnGaxTebHHExE6DALObZ49j9S0BLDNU4Mg1u8BnLbNSwRH5CyJBkEgGWLITu33njyAJDQGM1IxFD4nFLLsB9fnir6RZyj/fCeR6i2AzM'@; put 'RHNHfEuAAtO3U8OBFSMBrV1ZN9aWGbfYMm2hJdUNJmIrbbG1xBAXEiCBwhOAlowgA11LfV06J3L4LVOOvRWSng6kpDNOs/DzwS2WDAEKzJKZau5oPglo4s6YyYivvM2SSXNtZIObkoSwZImhfFLnuklgaARc9znEZmeL5cZoHt5uSPsFjdOkRXNoJPluErg5AQrMmzPiO0jgugS0fuW4GZbMXY4W'@; put 'jkjciZWjtV0S9VNYEP26zPgCCYw0AW1NqVbNnk5LTqJT0MHNprSgU5BjU2iO9Nxw+8EhQIEZnLnknhSQgAlhOXGOJXPusKVpqiXhSJjxlQXkz02RgCcEEKcZRZxmX68lZw+FZP8bYTl/3EAtWgpNT/hyJSVNgAKzpKefOz9UAmbYlsnoCz5vhSVjpkBYmhSWQ2XI95OA7whonGYUYS1ICDp7JCQH'@; put 'NoflDLoEUWj6bqY4oCIiQIFZRJPFoY4cgbSwtGXuClvGTnXcLFRN3mFG+MjNCbdMAp4TUKEZMSWVTKEdZVj2bwrJ6QNI1KNF03PUXGHwCVBgBn+OuYc5EDBNWyaiN/j8OwcIS42x5EICJBBcApeFpjZBaD4Wkn2vG3IKQpMWzeBOOffMewIUmN4z5RoDQECTdybOtGT+PbaMmwaLpbZypLAMwMxy'@; put 'F0hgCAQgNMOwaFpWSs4dMmXvJkPOHqbQHAJBvrWECVBglvDkc9ffSUDbOTZNsWXePSlkhdtu8k6KxdHfCYrPkEApEbgsNNV1fvqQIfs3huUckoHYHaiUDgLu61AJUGAOlRjfH0gCBupY1jfZsuDelEyeq+0cEfBPYRnIueZOkcCwCVx2nSeQDHTqQEj2rtfyRrBosrzRsJHyg8ElQIEZ3LnlnmVB'@; put 'QDvGVY+GsLwrJdOWoEB6BepYJtjOMQt0fAsJlC4BnDeiyDrv67FRsF1kz+th6WDB9tI9HrjngxKgwBwUC58MPgFHyqscmYNyQ3NQJL26lgXSgz/n3EMS8JjA5Tqa3SjYfuhNuM5RR7OnHeqTLSg9Bs3VFSMBCsxinDWOOScCkYgjU5elZCEywxuaDLZ0zIkmP0wCJJDpDNR20ZZ9KG10ZFtY+ntD'@; put 'bjkz0iGBUiVAgVmqM1+C+62Z4ePR1nHRKiTyTLPdbo52yilBEtxlEiCBfBAw0ILSRAvKCydt2bXOlFP7kIGeUosmFxIoPQIUmKU35yW3x6GQIzWNtixamZRpC1F2BLFTKY2z5EICJEACeSBgov2kbdtyen9Idr8Wlovoc85EoDyA5ip9TYAC09fTw8HlQsBxHKmoEpm9IiXz7rCkahQTeHLhyc+S'@; put 'AAkMgQAMl9oVqK/PkiNbDdm70ZSuNgMroEVzCBT51iImQIFZxJPHoV+fgBl2ZPI8SxbfZ8no8Yak0JHDsegOvz4xvkICJJAXApcTgdouWrJnvSFHtkckmaDIzAtrrtRXBCgwfTUdHEyuBNQdXj/OlsWrbZk83xIjZCAGiq0dc+XKz5MACeRGQOMz9e/sEZGdvzJZqD03nPx0ERCgwCyCSeIQb05A'@; put '3eFllSJz1R1+J93hNyfGd5AACYwEAY0B10Lth+E2370+LN1tas2kRXMk5oLbzC8BCsz88uXaC0DAzQ5HW8clq1Mybgrd4QVAzk2QAAnkQgChmFHEZ7Zd0GxzuM13hMVKUmTmgpSf9R8BCkz/zQlHlDUBR6rqHJQdSsmspbaYUbjDk3SHZ42PbyQBEhhRAuoy125iJw/Abf5KBG0nQ+I4FJojOinc'@; put 'uGcEKDA9Q8kVFZKAGbZl6mJYLZHEUz/WcF1OwhyeQk4Bt0UCJOARgXAM2eZdlux93ZR9aDuZ6KPI9AgtVzOCBCgwRxA+Nz10Anq1XzPGkqX3Q2AugrUSotJmdvjQQfITJEACviKg3YDCpoHkH1t2vBRmEpCvZoeDGQ4BCszhUONnRoSAiRaPs27RTjwpqalnTcsRmQRulARIIK8EwijSHo/bcvAN'@; put 'Q/agG1BPl8GWk3klzpXniwAFZr7Icr2eEXBLD421ZemDFmpbwmhpO7RaekaXKyIBEvAdgcu1M5vRcnL7iyhpdNTEOY9uc9/NEwd0QwIUmDfEwxe9IKACMYzC52ZYxIg6KMiRPlGqUEyhT6+N7Ekrpd7ud55ATbx/1rIUYi1TSOgJSxLlPbiQAAmQQCkQ0JaTyYQjBzZnrJmaFPTO82QpsOA+Fh8B'@; put 'CszimzMfj9iRylr0/R5tS22j9v9Glne1LVG0aywrg7iEiztk4A/Fz1VLhhBCaaHDTjIBl1CfSH9XSLo6DOlqEem4COGJ1xfcjVjL+bBYYq/ZicfHU8+hkQAJ5IfAZWvmeVgzt72I2Myj6GtOa2Z+WHOtnhKgwPQUZ+mtLFpmy+iJtjTNsGTsFJFRDSh4XoVg9bD23H3bne0meOMf93YAJvdaXPUm'@; put '7hiGxhrph0SSKQslh9DLN3a5E8+1HxywDt4lgaESuMoIdPmBeyzqiq7cuclaBx7PKPR/ZRn4/JUneYcEciOg1sxEwpYDGw3ZtT4i8d5sD9TctstPk8BwCVBgDpdcCX/OMEUap6RkynxbJs52pLpeRAPTNZs7pRndcH3nurg60/0n1zXx80En4P7MwsqjC65R8A9a8qlKTBvK3edV/zn6HyIsbJjG'@; put 'bbQPtS0cs3jBsWEtx3Fr41at5LbWIbzJIaxGeC3w795ie2qZN3S7JuqxYhAGLrBC+J5oOEh6fFilrlPH4W7THVD6q6KPb7I9dyf4DwngGIvgXHv2iCNbnzel5TSOYRy3XEjAjwQoMP04Kz4dU7TclikLLZl9K6yW421YFxETicLmdF37dMICMqy0QIN4U8GoVu6McIQosyAWk8i41RjeOGoHpuIh'@; put '3DrS3yuoJYjQix48j+cSsPYk+/FcHJ9BSEYqhYuhBGJ/ITjVUu4gBsO9LsI67SzCfF2LOwSkKkYznB6bhoBEEGdsRnDBFcNfFBb4Mlj08RetwB/CRGIVCBep1Pvpx5EY4pNjKhqwDl0PVuxqTR2PCmGNDdGteHDRll4T/w0CAW032d9tyVu/NhGfaeJYxpeCCwn4jAAFps8mxI/DiZZZKA9ky5wV'@; put 'ttShqLmNHzsLFqCbWXn8uC8ck38JuJ5qWGhMtQhqhxNXQDoQhRCREId9PRCOiNPt6dA/Q3o7Q9Lbhdjd7hAEZVpAppAwZkNspmMt/Luvhlo8kfgWU6FZrqJTpHwUYpjxV1GTvtX7KkzLIEo1VCQMAeooJFcEqwUWd9L/+3dHObK8EdDviH5XTuwTWDPD0n4RIhPHAxcS8AsBCky/zIQPx6Fuv2mL'@; put 'LVm80paG8WrtUdciz2A+nKqiGlLGZayu5BBEU0ZIxvtTEodY7IFw7LhgSMclke4WU7rbVVymrZBqqfS7ePRqMtRiG47ZUo4kuSokz2kC3Sgk0FXX6WMbVRVgES2DyID1U5lk3P9q7aTL3atZ8P96IugC1H7Rkm0vmHJyH3qaozIHFxLwAwEKTD/Mgu/G4Ej9OFtueTAlk7TuJMZnJyksfTdNRTCg'@; put 'a8WkKp8UEhXUha2WyI6WkLRdCEknqgZ0tqhVEglecYMC6SZzayL+s0ItnhCdtWNQsWEc/hosiE9YPKu1aoOJUAKITjgaUrgwFFg7+Q2+CdQiflljfh3EU+zdZMquX6HtJC7IWM6oiCc0IEOnwAzIRHq1GyHDlnl32LL4viR+wMKIacsiIM2rjXM9RU/AFZSXW95p/VONdezvtaX7kiFtEJGtZwxp'@; put 'P49yVK1wa+NH0GK5FQ/nPO1uV+tmLRoT1EN06m3NaJEKiM4o3OyaAOVgTjR2VWt/UXR6iH+kV4UvXxSxmWeQAPTmLw0kAJm4UKM1c6SnpZS3T4FZyrM/YN/VvlGF2K/lj6ZkxmK1euAZjfHiQgI3IKA/X24smFuWynETbrphheyAiGyBmLx0FsKyGS7ubtNNqLnBqvhSPgjAYhxDfGdVHcJcmhxp'@; put 'QEmxBngnqhs07lNj+C7HVKuVk4IzHzNQ8HVqAlBvpy1bXzLk2A4YCRCXzIUERoIABeZIUPfbNmFpapxky13vs6RhgiZL0Grptynyy3jcn6rLFkoNntQMbo2RbD0bkgsnDdwidhLxk5rRzcWfBExkv1fUWq6Fc8zkdEUIbYxQVmWIaaqrFRZOCk5/Tl6WozLwHdXv5wG4zHfAZd6L5Di6zLOEx7d5'@; put 'RoAC0zOUxbkidWNORj3LOx9LIYsVLkvEx3EhgYEEtCyQCg+9TSEWt6fTkfZzITl33ICoRBzlRRMlgSgoBzIrpvuamF4Jt7paOMdMsWTMZEfqxtjIXtc5h4XTrRnKGM5imlN3rJjXjMt8y7Ome/FHl3nRzWJRD5gCs6inL7fBa5b4zFtTcsejlphRLe9Cl3huRIPxaVcqagZzGDFc+K+/N+VaJZsh'@; put 'KM8fxw/VGS0PRItIMGb7nXuhFk51qY+BV6NpOiycuK2qD0GspJOG1LqpyUNcioOAusy72y2UMorI8d3aGY0Xg8Uxc8U/SgrM4p/DYe2BistZt1ly57tR90UD/xlvOSyOQfmQ/uRkYiltCAi1UraeCsmZo6Y0Hwu55YLQvZNLCRKIlaeThZpm2DJuakrqmxC/WYEsdZg+U3pQMHbT90eFusy1g9Tu'@; put '9cgyfzWM2rIUmb6ftAAMkAIzAJM41F3IWC7veg9+HLR+HmKuuJQegbSoRNwdalFqUldXqy0X4fI+fcB04ym722mlLL2j4sZ7rO0xR9U7Mg6WzfGzYN2cYKM4PDoQIYQilaTYvDG9EX4VhoQIkvGO77Vly7Nh6URlB1TuH+FBcfNBJkCBGeTZHWTfNOZyygJb7v1gUgwUaKblchBIAX7KFZUaUwn3'@; put 't4rKbojKc8cMOX3QkIsn0vXzArz73DVPCaTrcI6basnEOY6MRfxmZQ36sFNsekrZ65VpYfbWs7Zsetp0Q14c9jL3GjHXd5kABWYpHQoQl2MnOXL/J+MoXaLB+7RclsL0uzaKyzGV6v7uaHPkAuIpT+6FqDxJUVkKx0Ah9rGyxpax0yyZNEBsapKQRTd6IfAPaRtmxEAdWlveRPefI1vDaP9LS+aQ'@; put 'APLNWRGgwMwKU/G/SZM1RiFTdM2nU1LXxGzx4p/Rm++BZgebl+tTakzlRZQROr43JM2Iq+zthOLkQgJ5IqDF3sfPdCA2kzJ6CiydVZowph3BkCCUp21ytUMjoDHX2jJr16uGvPVahMk/Q8PHd2dBgAIzC0hBeEsk4sg9H0rI9KUG61wGYUKvsw9qhwjBRWmERRL9trSeFjm535BT6FHc2UpReR1s'@; put 'fDpPBDQkR/unT5pny+R5joxusiVcpt4TaBvNRs/TdrnaLAnghBFBlvnhbSJvPIMLz27GXWdJjm/LggAFZhaQiv0tIdOWBXdZcvu7UMeQrR+LfToHHX/GWmkjYauzzZYz+005tgexVqdZlmRQYHyy4ARMXOSOmaB1d5Myaa4j1Sh9pNnNllo1qTQLPh8DNxhB7/rmo7Zs+ElE2tHSFZepA1/mfRIY'@; put 'FgEKzGFhK6IPwYIwZoIlD34uhStVZowX0czddKjuzwAyQzVZK9HjyPlTgjp3ppsF3oc6lVxIwK8EyqscmTgrJVMWatwm2lmWw6qJJHRaNUduxsJI/ulssWT9T8Ny/miYon/kpiIwW6bADMxUDr4jkZgtqz+eRJYnyojQejk4pCJ7VqWjgSB9/QXoanfkNKyVR3cY0oI2jbZFYVlk01nSwzVwAVyH'@; put 'UkfTITQnzUvJqAaEd+CiyUL3IFo1C39o6MVqsldkMzr/HN1hMvmn8FMQqC1SYAZqOq/eGa13Oef2FHqMj6xr3LW0wRWmrQa1OPOVnrj4BdGOIDZu1bXLgKyr5+/aR2k3eLq8UOsZR47tNOUEMsF72hlbeS0rPi4+AuXVSAqabcm0pZY0TtbYwLTQZCH3ws6lm/yD8/FbSP7ZieQfXrQWln+QtkaB'@; put 'GaTZHLAvmjVejbIhj/xGQirqDHEKXJJIxZDGV2kP6wQsp71d6GHdJRLvgTu3HyIT/0XLbYlWog9ytYi6zGJlKJeB2owpWC8oNtOT6Ypz6EcD2eCJXlvOomblkW2mnD0CS0OcwnLAIc+7ASGgsZpjJ1syY5lmoltSUYMMdD0lqFUzIPvo+93AiScCL8nezSJvPhfmucb3E+bPAVJg+nNech6Vdty4'@; put 'ZU1SlqyBEOlHcFOBFrVShiEq4wjcbzkpcuYQivmi1WBHiymJPtWNKpkGLhCWldodxIbVAnFZs21pQK3OCrSiS+oPCgRnKS5pYQkZDpHe22nLqQMhOYx6dRdP4ce2NJGU4mFQ0vusrQ3rxzkybbElUxdaUtOAbwXc5yx1VKDDQkUm4jKP77Ll9V9EpKdjgPepQEPgZoqbAAVmcc/fdUbvSM0YRx7+'@; put 'Yhw9g2G9VPdznhcVRG7xXojZ0/sMObAFYghFvG1YHoayqFu/fpwtM5ba+FFBTFY9+uZCrMKPPpTVFO17XWEJayXSsdDKzcHJPR0L1XaB1sqinVQOPGcClTXIPl+QkpmwajaMS3tH3OzznNfMFdyMgJthfsyWdU9GkATknqFu9hG+TgIuAQrMAB4Iar1ctiYlS9dI3q2XerpRo6QmnTQfdWT7S2Fp'@; put 'PmbmThXB/zWwas5HeaXpt8KVHkW5HRWaAV2Uo7rBVUZ3XLDlyM6wHNsRkq42D1gGlBl3q/QIxMrh5UAy0Jxb0Ad9CrwlmhCk9TRL4/pzxCZcM8zbmm1Z/yQMB2dwscse5iM2F8W0YQrMYpqtLMaqbqVR9Y489IW4VNZCsOTRxeyKS7hwraQjezaasvs1uLUT3lraQtBX49F+btnaFOKyUCQ+obVM'@; put 'sgBRJG95W1g6cqlZ5Og2Q44ieae3y1uORYKDwySBrAhEoojPnO3I7FuTMm6agXhBB0ITkecBOjdkBaKAbzJxkd+DGrsbfhqRs4fx20KRWUD6xbkpCszinLfrjjoE6+U8ZI7ficzxfMZeqjBy4wO7bdn8VERO7EHrmDwtmrBUhQxTFZmzb0FGvPrdi9yY6fKDxVLFcutZWw4hcefErrD0IQmKCwmQ'@; put 'QHYEwrgAHTsrKfOWO9I0UxNThCWOskM3rHe5ZYz6HNn48wjCdygyhwWxhD5EgRmwydYr+wc/l5CxU/LnUk6LS0O6ECO4Di6TC4i1LMQSiTmy8J6ULL7Pgi7DKIowLvOKsASwtnMQltvVFW5SWBbiAOI2AkvAxClonCs0YdmcEZKwCk26zvMy36EwEq0SjmxGdvmhNzXDnxfFeQEdgJVSYAZgEq/s'@; put 'Ar7nTXAnP/iZZLrTVx7cRa5Aglu865LIaz8KSwuymgu5hCO2zLvDklvWQmSqi6ZIfGLuKRgGyzCslpfOQ1hu1eSdMFzh7iuFRMhtkUBgCajQbJqZkrk4RzRNh9AMo8YuXeeez7dbKxO/L9teNGT3BnT9YYMHzxkHYYUUmEGYxcv7oMk9t61NyKL7EKuYh9JEaZEUkjg6Pbz6A4+SeYbBXy2Zi1al'@; put 'ZMkqxF1pzUyfL1q6yYSw7O2y5ehbpuxFvGp3G2MsfT5tHF4REzAhLLXkmZ4nxkxCTQZciGot4DxccxcxpRyHjgQrFfQ7Xg7JW1qQPcWL5RyJBu7jFJgBmtJYmSUPfTEp9eO1Vpz3p1I9fdhwTb/+c1MOb8tfzGU2UxKrsGXFuyyZdStiTX3aAjPdeQc1QeO2nNwVkj2vh+XSucJafLNhyfeQQFAJ'@; put 'RMscmb4UFs3bbZQ/Q0KihtWoRTOoO1zo/cKPQhgVRHb9GtbMFyIIS6DILPQU+Hl7FJh+np2hjA1lfRon2bIW8ZfaQcfrM6ieNkKwwh14QwUmApxGfEG2fIMjqz8BQT32cku5ER9TegCZLkY2Et5PHxbZs27krL0+QcJhkMCIEiivsmX2cr0gtd2C7W63MDg/KDQ9mBb8OLhdf14X2fJcRFJJikwP'@; put 'qAZiFRSYgZhGzei2ZeGdltz+Hu+zx93TBdwhbRcceenrUent9od7V0MCJs+zZeWH8xdzOpTDw+UEcW+A1cWTtuzeGJaTu7XYPE+4Q+HI95JAvgiMakAMN86TM2DVjKFbmK3dwqgyc8eNU5x2/dm/yZE3nmVrydyBBmMNFJjBmEe4KRy590MJmbbEkJTHLmOVR45hyIYfm3IEGc9+WlxX+buTMusW'@; put 'xJ16vN9D2U+NszTQIrPrki374Qo/iHqWiT5/CPGh7AffSwKlQGDMJEsWrrRkEmppmoj2YSKQN7OuXX8ObxWUMUJN5DjPf95QLd61UGAW79xdNfIyxCQ+8hsJGdWIgHYEs3u1uLY3WOTOHxd58ZuIsUn566QRQmjA2Cm23A9XebgMoy1w6SI3zhLCsr/fkWNvhWT3+jBEpr8YeXUscD0kECQCBs4d'@; put 'k+dbsuDelDSiiYPN+ExPptcVmdsui8x+ngs9gVqkK6HALNKJu3rY6N893pFH0XvcQI0yLwOLXIEJAfX6Tw05uHVkE3uu3ue3H8XKbbnjMe1THCqYFVO5uKU6oDDPHbaRRRlFq0yeTN+eFd4jgeIgEMX5Y/ZtllvaaFQd6gfTbZ7zxKnIPLLNkQ0/o7s8Z5hFvAIKzCKevMzQ1Yo3ZYElqz9uuW0b'@; put 'M8/neqsiyoGA0oLqv/xKFMXA/SmgDJQkmTTHklWPIxazAO3LXHc4Ep60Z7iWHDoM4Z1iiY5cDzd+ngRGlEDNGJQ1WpmSqQttiURRiYP1M3OaD4rMnPAF4sMUmAGYRk12WXhPUpY/Cgueh/Uv01Y6Qw7vcGT9kzHfktIad1V1jqz9VEJqkFGuPwz5WDLZ4cm4yBG4wzU7vJPu8Hyg5jpJYMQITJqL'@; put 'bmGrbGmcorGZ6ba0+TmjjNguFmzDaXe5g8ojYUnQXV4w7n7ZEAWmX2Yih3FoUeHbH0nK/Hu8F5haSXfTz0NyYIs/3eMZbNFyR5aDwdzbvXeTu2ECMN5qEs/FkyHZ/kpIzhz0N48MF96SAAkMnYC6zefekZL5K2wpH4WLVi3STpU5dJD4BEXmsLAF4kMUmAGYxnxlkKuwSsL1++I3TLl4yt+CykQW'@; put '/exbLcRi2ggT8K67jxsmgKDWODLCD2wOyT5kiMd5JR6Abw13gQRuTqBhvCVL70vJxHmGhEIoacQi7TeHNsg7IuUmzp+2bPqF1sn0Z6jVIMPmUzkSoMDMEaAfPq7i6sFPJ9CDFwXHE96IK1dY4Z+eDkH8ZUx6OvUZ/y4hw5GmGYhD/VjKLTviVaKTusW15/mR7SjT9DM/FJj37xxwZCQQRAImQpBm'@; put 'LLPQgjclo+qRbc4koGFNcxiJP26dzKcgMhmzPiyGxfYhCsxim7FBxhuOWvIIWkQ2TEif/AZ5y5CfcuWkFldvRoLPV6OS8HtNMyQ61Y+F0P5sQmKVGL1H5YpcgYn2mEd3hGT9T6JD5sgPkAAJBINAzWhLFt+fkukLQ6ggwd7mQ55VnJbDUVP2rNeOPyhyb9GSOWSGRfYBCswim7DBhhstt+ThL6Bl'@; put 'YlM6Vmiw9wz1ubTAFGk5HYLA1B6zfj8ZaOtIS9Z+JiWV9agF6lGiT8aCeQy9xNc9SYE51OOI7yeBIBHAmUVm3AKhiSLtNag5TGvmEGf3ssjc+Qp6l78chsh0f2mGuBK+vVgIUGAWy0zdYJz5FJitZ0Py3Ff8V2D9nTjSAvOhz6akoo4C8518+AwJkIBXBKrrbVn6QDJtzUR4DmMzh0BWRWbEkG0v'@; put 'iux8LUKROQR0xfZWCsxim7FBxps/gRmSjouOPPuvcJH7PrGFFsxBDg0+RQIkkCcCV6yZqzU2M31Ry0zzLGFDZJpmCH3LDdm7KQyBTktmluSK6m0UmEU1XYMPNl8CU6ty9HVrDGZMutp87iJHDGbDOEce+EweYjA1yectkQ0/8W8t0MGPDD5LAiSQbwJaoP2WB5MyZb6BhECtmwmLZr43GoT1I8Zf'@; put 'az9pjcwj2xGTaVNkBmFaB+4DBeZAGkV6Pxyx5aEvJNx+ul6X6LFwZfnSt01pPubvMkVXssg/jixyExPp0Rk+HYOJ7MctjrzxNGMwi/QrwmGTQF4JaC3iObdrbGZKyqohNFGgndbMmyPXdrsWGrCt+7EpJ/eYbsWOm3+K7ygWAhSYxTJTNxinlim6/xMJmTjHuzJFujm9ngxBrb3xnCN7N/hbXLl1'@; put 'MG9LyZ2PiaQS1g1oDe2ltMA0ZNevUWD9ZZYpGho9vpsESotA42RLbllrSdN0GDJZziiryTfCaI7R68jL3w/LeRgyKMyzwlYUb6LALIppuvEgzbAtd70/JbNvy0MnH/TcPrHbkVe/72/3sHbeWPHuJIqtG5KMeyswbduQN5833CLrN54JvkoCJFDqBMoqHFl8XxIWTUdMXJM62gWo1KHcZP9NJP30'@; put 'tNnyyncj0nIO4VgIS+JS/AQoMIt/DtHC0JFb1iRlyQMQmH0eiiuw0RNjb6fIc/8WlZ52f8Zh6ul7VH06/rKmwdte5GrBTCZM2fjTkBzf4+8wgQAcytwFEggMgelLUrLsAQvnJu1pjrMUVeYN59aMGnLprCO/+m5YOi6hc5LrQ7vhR/iizwlQYPp8grIZnsYfzkKbxHs+6EjKQ+udbjvjJt/8TLpN'@; put 'YjbjKfR7NP5p6iLd/xRin7zduu5/b6/Iq9+NysXT/hTY3u4x10YCJOAVgbqxttz2CFpNzoLItBGX6U2jNa+G57v1hGOmnDtky69+GJH+bp5vfTdBQxwQBeYQgfnx7WplGzvNkgeRQe31VZ8KLMH3XAuuP/81f/aRjVU6svKDCZmEfsGexl9i121kp3deMOSFb0alr8ul4cdDgGMiARLwKYFIzJYl'@; put '91sy73Y77TJnP/MbzlQELSWPbLdlw0+jCHfiOfeGsHz+IgWmzycom+G5LuJaWx75rYSUVyGD0aM2iZlt61fcMQy4iQ05vM1fbmIND5g4x5b7HkcqojvQzKhzv1XhrijPHRZ5+btltD7kjpRrIIGSJTBjqSXLHkxIdQ1a+mopI7rMr3ssqMjc/ZojW55nIfbrQiqCFygwi2CSshmilip68DNJGTfD'@; put '20xy3bar26C22lF0/UXEYvb1+sd1UV5ly6rHUzJ+BrLHk976n1RgOo4m94Rkyy+ZQZ7Nccj3kAAJXJ9Aw3hL7niXJWOm4dzCLPPrg8K5N4wE0zeeDcme11mI/fqg/P0KBaa/5yfr0bmJPmhdtmSNt4k+mQGoyDTwhd+9AVeVz/ojozwctWXeHYhxethGLTVvxaXutwpMK2nKhp8bcmynFtfkQgIk'@; put 'QAK5ESivcuTWB1Poaa4mTC3Mnk6mzG2twft0CIXY1Rv36x+H5cQu1sgsxhmmwCzGWRtkzCHECk6cY8n9n7TcvriDvCXnp1RwpZBEs+7JMIrijqyr3EBi09jplqx+3JJIOU7QiGvyclFB7YBpT1tIXvhWVLpa/WO19XI/uS4SIIHCE9DEzPl3oTA7yhnFyrQwuwY6cbmWgNbI7O9B0s93Y3L+JM7K'@; put 'LF90LSJfP6bA9PX0ZD84BwE9laMcefS34lJZmz5hZf/p7N6poktwVdndgbqYyKpu1XplI7FA+NWORtzlR1NS16SdIPJjvdST2ckDIq99P4pYTHfvR2JvuU0SIIGAEpg8z5LbHk1KTR0MmWrJpMp8x0xr+aL2Zlte/nYU5Ys0jZXn4ndA8ukTFJg+nZjhDEvL9dz5GAr8rvC24PrAsehXOwRvcds5'@; put 'kVd+UHjLnpvQVOPI3R/WuMuQp1njV+0ndtS2UGD9BS3PxPjLgWx4nwRIwDsC9eNtxGUmpXEqXMJsMTkoWC1fdOZAunxRwkc5AIMOlk9eIUCBeQVF8d9RN/mkuSlZrW7yVP72xxWZcF20nhH59RMR6WgplCXTkaoanIzfl5IpKEnkZceed9BS9zgKy7/4rYh0Fmz/3jEKPkECJFACBCqqHVkOkTlt'@; put 'gVox2cd8sCnXzPK9G2wk/kTFStGKORgjvz1Hgem3GclxPLEKWx76XELqx6OjDVqU5WvRr7eB9l7t523Z+POInD+e5yQYCL66RojLxyzXcplPcZnOHg/Jsd0hWfcjf/dgz9f8cr0kQAKFJRCGB2oJkn8WrHDgJWLyzzvo40dHW0puedqQPZuQ9GNRZL6Dkc+eoMD02YTkOhzNJl9wT0pufxQtDvs9'@; put 'bmtzzeD06x0yQxJHp5vtr5hycLOZl1hF3afxsyxZjo4YdY1m3tzimd1TgZlE9vj6Hxlycn+ehXNmo7wlARIoeQIaS6/JP8vWpCQaS2dR589MUHy4NbNcDSevPmHK6f0oX8TYeF9PIgWmr6dn6IPTGMWaelse/iKKro/KT7LPwFG515D40odMQ07stuWtVyJyqdkbl7nuSwVKeiy4OyVz7rQliqtX'@; put 'C7Xj8rm41kts4PzxEILK/dm5KJ/7z3WTAAmMPIGpC1NoMWlJFRI3NfGHyT9vz4lmlne3O27ST1uza+Z4+0Xe8xUBCkxfTYc3g1GL37I1SVmqNTHzbMXMjFi/5uq+6Oly0OZLO/6Y0o4Wi8NZ9Cq+rMKRKYttmb/CkoYmxFuqsPS4Q9FgY1OBaVumbHo6JIe2jmwppsHGx+dIgARKg8DYqZabtFk7'@; put 'BpZMnBMpMt+ed7dn+REk/XwPPct7hvc78/baeC9fBCgw80V2BNebtmI6sGLGC2LFzOxq2poJoYmC7D2djpw7EoJV05ALJw3p6775SSActqWmEYlK82yZutCS+rFoqYazaj5jSTNj19u3rZfIkEcZpmT85mMe+HneJwESIAEvCdQi7vzO9yZk7FT1RjH5ZyBbTfrZ97otm59m0s9ALn66T4Hpp9nw'@; put 'cCxqxVy4MinLHy6cFTMz/IzQDEdM16Xd02FLx0VDLp0LSRcys/s6ULBdswDxv1oqK5EZXoOr9PpxKRk1Wp8Lu20fbY+Lp2fGd71bFZippCGvo3PP0Z20Xl6PE58nARIoHAGtb3zH+xIyeTbiD1Esk5bMy+xxvlZjxuanUEpuM+IxbTzBxVcEKDB9NR3eDqa8yhLtT94wAbGLeShGns1o3a88EoFM'@; put 'xGkauNWAdW3/lWlboaLObQmG522M0RrwWjbr9+o9Og5VvCf2oVPRE7giZoaiV2i5HhIggRwJxModuf3daC+5BP4piswrNPW3I5VAPOZ30pVMKL6voPHFHQpMX0xDfgahdTG1U8R9H0VdTFV0qu64vIOAaktNRuzvFjem5+JpZo6/AxKfIAESGFEC4YgttzyclHnLNXQH53Sez935cDv9nLNQsxiN'@; put 'P+AhY6efET1Mr9o4BeZVOIL3QLv7rHg3Tkp3Ft5VXiw03dhLx0SpJUd2vca6l8UybxwnCZQaAQM9zJfej1qZKx107WWtzMz8azzmke22rPsxvE9J1x2VeYm3I0iAAnME4Rdi05p9WFVrywOfTko9srFHylVeiH0dzjZccYl/zh5Cz3G0vkwmeHIaDkd+hgRIoHAEFt+XlCWrIDKRGCn4n8ZMEc0s'@; put '3/KsyO4NiMdkiFPhDsYbbIkC8wZwgvKSiqix0xCP+cmkGFHtd8vTkc6tKyXhbepsDcmr349I23lmjQflmOd+kEDQCWh94KWrUxBW2FOKTLSWAwa0SH75e2FpPqxF2IN+BPh//ygw/T9HnowwBNfK3Nu1rpqNDG6ejTLiMtlnyIZfaJF4Zo17cqBxJSRAAgUjMHdFSm590JJwGdQUGreVuqbSWszt'@; put 'zZfjMdsQj6nWFS4jRoACc8TQF37DWrrotoeSsmgV4zH1vGPbhux4OSS71kUKPxncIgmQAAl4QGDO7SoyUxIp05Oam87pwVqLdxUaj3l4q8j6n2iZPHqlRnImKTBHkv4IbDuCTMS7PpCSmbeUrshMX9Qasvf1kLz5HFwpaWf5CMwGN0kCJEACuROYudSSWx9NSlk5RabS1MzyTfBM7d9ssj5m7ofX'@; put 'sNdAgTlsdMX7wRiKm9/zwbhMXWRKsg9+lRJaXHEZMuTgmyJbnkGvcS34zoUESIAEipzADIjM2ygy3VkMoeZyot+Wl74ZlYunYcXUOnRcCk6AArPgyEd+g5pZXlntyL0fTMnEBbBklojIzIjLA2868uYzUYrLkT8UOQISIAEPCajIXA6RGaMlU8KwYjYftVGEPSpxxNpzKTwBCszCM/fNFssqtM9t'@; put 'SqYvhciMBzdC3L121fMLYi73bArJjhfRipKWS98chxwICZCAdwRmL08i1t6WSAwpPyWezxkpN2XnKyJbcc63WbrIu4MsyzVRYGYJKqhvi8RsWf4ICrHfYUhS20lqq8YALSouQ2G4S/pCsvNVCMz1iMlhzGWAZpi7QgIkcC2B2Uj8Wb4W2eWlLjLxA6C/Aa+gdNHpAzj301V+7aGS18cUmHnFWxwr'@; put '1+4QC1ehptp9Fgr3hlBLLBgiU13i2v+8sxVXsC+F5fhOtoAsjiOSoyQBEsiVwLw7U3LLAxCZ0dK2ZBooXdRxwZEXvhGWbpYuyvWwGtLnKTCHhCu4b9a+5VPmw5r5rqRUN5iS6i/e5B+9YtWiuyEDMTiHHXkDmeKXmikug3v0cs9IgAQGI7BoJTr+rEZWtVnavcu1dNH+zQ4yyyMoXeT+QgyGi895'@; put 'TIAC02Ogxb06R2pGO67LfMoCwy3IXmxdf9JWS0P6ey3Z97oJl3gY7R8Z4F3cxyVHTwIkMFwCy9YkZNFKXHCjd3nJdrdRTYmfgQ1PhuUoPFmOTZE53ONpKJ+jwBwKrRJ5rxlG158Vliy6NylVdWFJFEECkJ4uNNZS/zt7xJEdr4Tl/HFaLUvkkOVukgAJXIeAeqdueyQl8+/Q0KfSFZka/tVzyZbn'@; put 'vxaTjrb0b8V1kPFpjwhQYHoEMnirgTVzjCOL0et2+gJLzBgyrxP+yzR3hSXiLA0jJK3NNoqnm3JsO7PEg3c8co9IgASGSyAMo8GK9yTRYANrcEpXZKqr/BDK1G34aZhdfoZ7MA3hcxSYQ4BVim/Vq9+maZYsXGlJ0wyRMAKmkz4QmpkEHu01237RQmuwiBzaZkpfN10fpXiccp9JgARuTEArhtzz'@; put 'vqRMXghfsVOiMZn4eTDg2Fr3o4gc22mgXTB/L2581OT2KgVmbvxK5tMqNCfMsmT27ZaMn25LWRWshChrVMiMc/dUAGtlOJyOD209I3J0uylHdyPmsptxliVzMHJHSYAEhkWgrMqWVR+GsQDncG24UYoxma6rvB2u8q/SVT6sg2gIH6LAHAIsvhUEIDRHN9kybYktk+ZYSAoKiQmrppWyxbIQ4+Nx'@; put 'hSO1VGrbL9PUq01HutstaT4CNzhEZfNRCM0khSWPSxIgARLIlsCoBlvuezwpdeP0E6UpMtVVfnCLIxt/Rld5tsfNcN5HgTkcavyMSyBaZsvYqRYsm46MnWbLqDpHohVht7CtWjZtXB6rKMxGdLrWSRWTiKXUP42p1Of6+1LS0x5y+8meOWzKeYjK3i733ZwFEiABEiCBYRAYM9GSe2DJHFWvzTWy'@; put 'OkUPYys+/oj7WyPy6ydMOb4rzALseZoqCsw8gS211ZphW2qRFNQwERbOCZogZEtljQXBaUg0elkwuuLxajKIN0c4kCOWbUsi4UiyV2ClDElHiyGXzhnSciYkXbifiFNUXk2OjwYSMFDzNAwrNy5RUI5FZHRDndy+dKHMnzVDImHt3uSxaX3gxod5Xy+++uNxaWvvlIuX2uVSe4f719HZJV3dvdLb'@; put '1y/JVGqYa+fHSODGBCbMSSEmMyWxKnxncCz67xty4/Hn+mq6ALstL349Kl34zdF4fi7eEqDA9JYn13aFAKyZZSLlVY7EKhGzWRnCYwdJQmqlvPwmCMsEit4m+0TiPSE3QaevN4Qi76GSO9ldwcY7VwhEI2EpLyuTyspyqa6skKqKChlVXSU1+jeqSirdx5VSWV4uFeVlUlYWc+PK9ODR12trRiG0'@; put 'wt+lqvRHTf/S8XC4wEomXdHZB3HZ1dMrnV09V4Rna1uHtLa1u4K0HSK0o6tb+vrj8BLgKo0LCQyDwOzbknLHY9o8N23GLDWRqa7yXevQ6Q3NOCz2Kh/GEXTjj1Bg3pgPXyUBEsgDARVV5RCEVRCOdRCC9bU1Mrq+VhrqavBXi/t1MqqqQioqyt33RSMRicViCJ1IX53orYqyjLjK3Opzum7L0ixZ'@; put 'jS8rrp9MHbsuun96X28z9zP7k0gkICz7pfuyAG3r6JQWWEBbLrXJxdY2aYEIVSGqVlAK0DwcvAFb5a1rE7J4FTzliKMvrm+LBxOhXzdo6xe/G0bXN3WVe7BOruIKAQrMKyh4hwRIwEsCGRFZW1Mto+vqZFxjgzSNHSONcF+Paah3LZGjqiulDMIxIx71MyoWM38qqgaKRy/HV6zrGihC1UKrj/U2'@; put 'I0DjcLurAO3p7RMVn2r5PH+xVc5daHFvVYy2dXTABU/rZ7EeA16O2zRtuftDSZmxBImUSVyYebnyIliXGTXQlMOWl78VlXhfxr1WBAMvgiFSYBbBJHGIJOB3AmWxqGt5HNc4WiY2jXX/xo8bA2FZ67q1K2GJjMAKqWIoIxoHWhn1OS7eEFDGmb+MAM1YfJV5b1+fdHR2w9XeIc0trdJ8oVVOnjmH'@; put '2xbXEtoJ17sm6HEpHQLlFbas/lRSGicjJh4JmqU2+2G4yrc866C1cERsuso9O/ApMD1DyRWRQPAJqHDReMfG0fUyeUKTTJ3YJFMmjod1crTUw9VdVVWJOqXqakq7p1NIUsncp4j0x/Ghc6iCU8Vnxv2uVmIVnl0Qly2weJ5tviAnIDpVeJ7BfbWCJhJJf+wAR5EXAnWNttz/qbhU1cKKV2JJP1q5'@; put 'JN6L2phfj0lbs/rNmfDjxUFGgekFRa6DBAJKQOuPumJyfJPMnj5Fpk+ZKBOaGiEma9z4SBUoKk7UMpZxawcUReB3KyM8M+JTH+sFQndPj7S0tsups81y7NQZOXryNIRnsys6dd65BIfARGSWr/xQSsIxSCyYMUvJkqkJP4e3ObL+J0j4YX1lTw5qCkxPMHIlJBAMAhoPqa7tGRCSc2ZMdW/Hjhnt'@; put 'urnVMqkiUkWH3tIiGYw5v9leqODMiE691Uz3ru4eOXseVs7T52T/4WNy5Php93F/PHGz1fF1nxOYf1dSlj+KQWqinM/H6unw1GgJ4+2vfxCRE3s0iZBWzFz5UmDmSpCfJ4EiJhBBKaAmuLfnzJgmC+bMkOmTJ7iJOFWVle5eqYUqY50s4t3k0D0mkBGc6mbXRa2c5xHLqdbNvYeOysGjJ1yLZzLJ'@; put 'Op4eo8/76mC4lrseS8isFYiXLrGkH+1K13rGkRe/EZG+Hib85HqwUWDmSpCfJ4EiIqDCoHZUtcycOkkWz5sl82ZPlwnjGmGhrHYTQzLWSbVQciGBbAnocaV/auXWpau7G3GcF+UAhObOvQdcwdmK7HUmD2VLdGTfF9Okn4+lZNx0xFKXWNKPusrffF5k12vw2DDhJ6cDkQIzJ3z8MAn4n0AYVqYJ'@; put 'yOxWQblo7iyZOW2SWyZIxQAtlP6fv2Ic4UALpx5jrajRefj4KXkLYvOtvYeQOHQeoRaM3/Tz3NaNtWXNpxNSOQomzRJK+rmS8PNvSPi5oG5yusqHe5xSYA6XHD9HAj4moGWDpk+eKEsXznWF5dRJ49HdZpQbN6lWSv3R50IChSKgrvRM1rq2wjx64rRs27VPtu/e72aqsyVmoWZiaNuZujAl934w'@; put 'JYZGQpRQ0o9aMQ9uEdn4M1OsFF3lQztq3n43BebbLHiPBIqagCbozJo2WW5dPF+WQVhORLZ3BdopDkzMKeod5OADQSDjStcsdY3d1AShzdt3ytad+5AodJEXPz6b5VseTMqS+9DwoJQ6/cBoqVn0L34nLOeOoOwaI4aGdVRSYA4LGz9EAv4gEIGbW62Ty5culOVL5rs1KcvRm1stlGqpZKa3P+aJ'@; put 'oxicQEZs6u0ltLfUBKGNW3a41k3ttc5l5AmEI7bc9/GkTJoFT7lVOkXYw+jwc/awIy9/JyLJOK2YwzkSKTCHQ42fIYERJKCWH+3ZfRsslXctXyrzZk1HT+9KisoRnBNuOncC6kLPlMI6fe68vLF9l6x/Y7scO3lG6ELPnW8ua6hpQDzm5+JSXQOhVULxmNpGcsOThhzcmk5ey4VhKX6WArMUZ537'@; put 'XJQE1Fo5fcoEuXfFrXLHrYtRXmiMux+ZzO+i3CkOmgQGIaBCU/+0beXOvQflVxvfkB1aevCmAABAAElEQVR7DqDbUP8g7+ZThSAwBfGYKy/HY5ZKJ1EjHJL2CyLPfCkKKyaTfYZ6nFFgDpUY308CBSagsZWL5s6UB1beIUsXzHWLnmuxaybqFHgiuLmCE1DXufaw1+P9CLLQX9nwhmx88y25hD7q'@; put 'XApPYPkjSVl4T2nFY2rCz6anRfasixQeeJFvkQKzyCeQww8ugfKyGJJ15snDq+9yywvFIDT1h5Y1KoM759yzwQloWIgKTV1Oo2WlCs3XXn9TzrdcYpzx4Mjy8mwkBlf5JxOoj4ki7CVSHzNkhqS305an/6VM+rpoxRzKgUWBORRafC8JFIBALBqFpXKOvOuBlbJ4/mxR17gKSybsFAA+N+F7Auo6'@; put '13jNc8g4f3n9ZvkVxKYKTV54FWbqRk+w5IFPpSRaoZnWpZH0E4UVc8erIm8+RyvmUI4yCsyh0OJ7SSCPBMJh0+39/dja1XLnbUtEhSaFZR6Bc9VFTWCg0Hz+1Q2u2Gxto+u8EJM6D/3Kby+hfuUh5DYlEf77zJcj0tGSbo9aCM7Fvg0KzGKfQY6/6AmoZXJ0fa08ev+9cIffLXW1NXSFF/2scgcK'@; put 'RSAjNI8cPylPvfCabHhzh/T09hVq8yW5nZDhyH2PJ2XKotLpV65WzL2bHNn402hJzvlwdpoCczjU+BkS8IiAWimXLZwjH3r3Wpk/e4Zbu5LJOx7B5WpKikAU3yX97mzduVd+9PQLbv9ztqPM3yEwCqWLHkQryap6xCWWQOkihAHj+HLkuX+NSus5WjGzObIoMLOhxPeQQB4INNTVymNr75NH7r9H'@; put 'KivKJZFI5GErXCUJlA4BTQZSodmGLPNfvPCq/Oz5X0k8zu9Vvo6AGUstufsDqZKJxYzETDm83ZbXfhjLF9JArZcCM1DTyZ0pBgKaoDAbLR0//eHH3CQetbrQalkMM8cxFguBTN9zzTT/9pNPSfPF1mIZelGNEw5yuefDSZmxVLPKLW1XHuhFrZgw1srzX4vIhRO0Yt5ssikwb0aIr5OAhwQ0kWfV'@; put 'HbfJJz7wLhnXOBrWlbiHa+eqSIAEMgTUmqmlvbR+5pe+9YTsP3xMUriY4+Itgeo6uMo/m5Tqeqy3BFzlasU8tsuSV74DK6YqTi7XJUCBeV00fIEEvCUQi0Vlzd23y+c/9n7R4umaIc6FBEggvwRUZGqf8y9/50nZtHUn207mAfeMZXCVvw+uctgwS8GKCWUJK2ZYmo/Tinmjw4kC80Z0+BoJeERA'@; put 'i6Z/8NEH5MPvWYuL3hBd4h5x5WpIIBsCWqS9vz8uX/nuk/Iq3ObxBC/usuGW7XtUWN77kYRMX2KUhKs8gh7lJ/Y78vI3Y4EX1NkeA4O9jwJzMCp8jgQ8JFBRXiYff/+j8v5H1rhZ4iwI7SFcrooEsiSg5YwS8Bp8+Vs/ktc2UWRmiS3rt2lW+drPJaRyFNzGQS/Ajl1EF1N5/uthOXcknDWjUnsj'@; put 'BWapzTj3t6AEVFx+BFbLjzz2sJslzm48BcXPjZHAVQRUZKol8x++9j26y68i482DOSuScud7oC8R6xp0V3kmFvNlxGKqV4rLOwlQYL6TCZ8hAU8IaI3Lh+67S37jEx9029jRcukJVq6EBHIioO7yVsRk/o9//JocOHJcLNvOaX388NsETBRgX/2JhEyYg+dQMzLIIjOtKRGL+XVTmo/Rivn2UfD2'@; put 'PQrMt1nwHgl4RkDLpGgB9T/+3c+5CT0sQ+QZWq6IBHImoIk/ew8ekb/556/LBfQx5+IdgdETkVX+qYREyrVXOayZ3q3ad2tSK+bRncgo/y6tmINNDgXmYFT4HAnkSGDsmAb5T//uczJ35nSWIsqRJT9OAvkgUF5eLk+i48/3fvqs9Pah0TQXzwgsezApS1c5Ylt2oAUmksk13FR++dWIXDzFjPJr'@; put 'DyAKzGuJ8DEJ5EhAM8Y/gIzxT37w3Yj34g9Xjjj5cRLICwEDWRra5ee//f1XZM+Bw3SVe0g5Vo6En8/HpX4cFBgiEIJuxTy41ZZ1P2J3n2sPIQrMa4nwMQnkQECDvSdPaJK/+KPfltH1dW7WeA6r40dJgATySKCsrEx+jYzyf/za96WrpzePWyq9VU9ZmJKVH7bFgMIMssDUWEwb8abPfDkql5pp'@; put 'xRx4pFNgDqTB+ySQI4EyFFPX/uKf++j7ab3MkSU/TgL5JqAXhFoT8//6/74s+w4dpRXTQ+BaG3PVRxMydVHwa2NGy0zZvcGRTb+Iekiw+FdFgVn8c8g98BGBuppqxF5+Hj3G5zD20kfzwqGQwPUIaCzmD372nDzx1POMxbwepGE+39DkyJrPxKVME36wjqBaMkOoiRnvE3nmX6LS1YYHXFwCFJg8'@; put 'EEjAIwIa0zVz6kS4x39XKivK3dJEHq2aqyEBEsgTgSjKie3ef0j++n99Vdo7u/O0ldJd7S0PJGXJaiT8pILtKlcr5raXHNn2Iq2YmaOdAjNDgrckkCOBCIo43718qfzRb3+GsZc5suTHSaBQBLSkWHtnl/zZ3/yTnDxzDlnBQbWzFYro1dupqHTkQST81DZqsGJwa2MaZkh6Omx56p9i0t9LK6Ye'@; put 'BRSYV38X+IgEhk1AC6u/a8298kUUVo/H48NeDz9IAiRQOAIah5lMpeSvkE2+e/9hSaELDRdvCcy+LSV3vg/p5AEvW6RWzA0/Fdm3KeItwCJdGwVmkU4ch+0/Am6Cz0Or5XOPv48JPv6bHo6IBK5LQK2Y/x2dfd7YsQveBwrM64Ia5gtmxJEHUHy9aTriMAPc4ccMh6TlnC3PfqlMrJRGnZb2QoFZ'@; put '2vPPvfeQQBm6g7z7wZXyeWSQ04LpIViuigTySEAtmPr31//r3+TNnXsoMPPEeuJsC1nlKQmbwXWTK7pw1JCXv2PIiT1sH0mBmacvE1dbegSi6HG86s7b5A9+45OSSCRKDwD3mASKkIAm5/X3x+Wv/kELrh9hqaI8zaHa81Z9NB74skUqME/td+SFb0TdC5c84SyK1VJgFsU0cZDFQMDED9WCOTPk'@; put 'T3//NyUajTBZoBgmjWMseQLqHr/Y2iZ//rf/JGeaL5Q8j3wCGDPJQp9yWDHLkEgV1FwqKGkH4abPfSUqLWdKO9mHAjOf3yauu+QINI6ulz/7g9+UaZMnSjKZLLn95w6TQLERiCG05c0du+X/+fK3pLOLZYryPX93PpaQ2XdgK8ngli1i4fX0UUSBme9vE9dfUgQqysvkU+hB/n70Iu/rQ+VdLiRA'@; put 'Ar4moO0iv/KdJ+WZl9ehqw9DW/I9WTVjbHnoiwkB9sAWXw8ZIenrseVplCzq7SpdKyYFZr6/TVx/SRFQN/nCuTPlT2HF1LqYrKlXUtPPnS0yAmF8R1svtclf/M8vy4nTZ/l9LdD8LX8oKQtXBrv4uloxX/+5yJ6NpVuyiAKzQF8obqZ0CFRXVcjvfPojsvruFSxXVDrTzj0tQgLaJvJHaBH5fbSK'@; put '7O3rL8I9KM4hV9fBivmFuFSMMiSEwvZBDMc0IyG5eNqW576MkkVWaZYsosAszu8nR+1jAgZKnsydNc1N9qmqrMDJhXX1fDxdHFqJEtAWkafPNst/Q4H1U7jlUlgCyx5MytL7gm3F1LqYz3/DlLOHSrNkEQVmYb9T3FqJENCi6+9F0fXPfOS9rIlZInPO3SweApnal//wb9+TdZu3SYIJeQWfvMpa'@; put 'Wx6GFbOyJrhWzEjMlEPbbPn1E7GC8/XDBikw/TALHEMgCdSOqpbf+8LH5a7ly5jwE8gZ5k4VKwFN7PnZcy/Lt3/8NF3jIziJSx9IyLL70KI8oC0kQ8jviSPX8+l/jkh3uzmCpEdm0xSYI8OdWy0BAmolmTCuUf74dz8rM6dNoSWzBOacu+h/Ahp3ueGN7fKPX/++tHV0+n/AAR5hZQ2smF/shxXT'@; put 'DGwsppvs8zSSfdaVXrJPSQnMD73rAdmyY4+cOHMuwF9Z7pqfCGhW+ewZU+SPfuszMh5iky0k/TQ7HEupEVBxuX33Pvm7f/22nG+5VGq778v9dWMxVyEWM6BWTDfZ55TIs/8axT6WVrJPyQjM8WPHyD/+1X+Wvv6EfPvJp+T51zayJIUvTzfBG1QYnULmzZ4uv//FT8j4sRSZwZth7lExEFC3+Ft7'@; put '9ovGXZ670MLzv08mzc0o/3xCKmpQFzOgDX4MeMd/+bWINB8tLTd5yQhMtV5+8RMfcntEa+2z19/cIV//4c/k9Dm2BvPJeSbQw3AtmdOnyP+OmMypkybQkhno2ebO+YmAhqqouNy09S350reekOaLrX4aHscCAssfRl3Me4ObUa5u8r0bHdn482hJzXdJCEztNfs3f/IHKB0z3RWYOsN6wmlta5fv'@; put 'wJr53K82lHxT+pI66vO0sxH0152xJCnHdoYR2P3O7g36Qzd5wjhYMj8pc2dOc49FFmLP02RwtSQAAnru17/nX90Az9XTcqm9Y9BzvXaXKa+25eJJU6xUabkx/XCg1IL/WmSUl5WHAtndxzBD0ttpyy/+MSb9ve/8bfDDHORjDCUhMOfOnCr//f/8A5ffwB90PfGoNXPd5q3yjSd+LufOt+SDMddZ'@; put 'AgQM05GJsyy58wO2rH/ClDOHr+8Kmdg0Vj72vkdk5R23um461sksgQOEu1hwApFIBCFRcbeQ+lMvvubev94glqxOyrRFlrz6g6i0X1CBSZF5PVb5ev6u9yZk1gqsPaA9yrVk0Ws/FDm8vXSSfUpCYH7+8ffKR977yHVLxag1s6X1knznx8/IL3Glq5YmLiQwFAKxCkfu/WBCpi4wZd8blqz/cfSG'@; put 'x9Go6ip5cOUd8oFH1khdbQ2tmUOBzfeSwA0I6Pk7Fou5RdS/8t0fyzYk9aRS1292ECt35IHP9kvT1LDseMWRt16NSDLO34AbIM7LS6MnWbL2UykJwxMUxNY+4aghJ/fa8tK3UBOzRDRG4AWmFrz+u7/8Y5kAq1EqlbruF2OgNfPrP/gZ43SuS4ovXEsghMj0xsmWrPl0SiJRuEK6Q/Lq90y5eOr6'@; put 'VkxdRzhsytwZ0+Tx9z4kSxfMdVd7o2P02u3yMQmQwNUE1GqpHoFNW3fKE2gBefTkmZsm88y9PSnLH4U7PWJLd6sjL34rIh0t6sakyLyabn4fqXdx9ccSMmURuKfswGlM1ZSJhCPP/EtMOltLw00eeIF5y6J58pf/4XdvKC4Hfm20jEXzhYuuNfOldZsGvsT7JDAogUjMkYX3pOSWtTgvxtVSEpKj'@; put 'O0TW/ySKk+TNf6SqqyplzT0r5D1rV0lT4xj3WKXbfFDUfJIEBiWQMRBo68cfP/uSrEedy55eVLi+yVJWKXL/J/pl9ER8a2E4MyKGbPyZATcmYjGTN//u3mT1fHmIBCbOsWTVRy0JG8ETmIrCrYn5FGpiri8NN3ngBea/++zj+OFefV33+GDHv8ZlGqhfqLGZas1kvbTBKPG5DIGySlvu+2hKmmYI'@; put 'fpRs1/uRiBsQmIac2pddD1rtXz5pQpO8a829surO20RFZxLt62zbzmyGtyRAAtcQ0PO09hS/1NYhr76+RZ59ZZ2cbb54U6tlZjWL79N+2BCXhoXPwKuAOLkj20U2/cIcNFEv8zne5oeAiVj2Bz6TkHHTMRm4Vse/gVrCkZCcO+7IL/81lpXxodh3PtACs6qyHO7x/ySNo+tdt8lQJ0utmWebL8Ca'@; put '+bS8suGNoX6c7y8FAjB71DXa8iBOiuXVhjj2ZZsljB8Xz4TkV99DokFX9u6QCC5utDD7u9aslOVLF0hlRQWFZikcR9zHIRFQYanu8O6eXrf80DMvr5MjJ07dMNby2g2MnoALQ7hkK0bhO+uEXDGj2b7tLY689I0oWvtl/729dt18PHwCs29NyR3vx4V6EAuv43fBxm/Ecyi63nr2xiFUwyfon08G'@; put 'WmDeccsi+bM//O0rpYmGg12tmRo0/hqujr/xw1/IxUttw1kNPxNQAiE3e9yW1R9PYA9x9rh8yZ2O4Tbk4JtqDYkM+Wo1Go3Iwjkz5dH775FlCPMoRyIaLZoBPYi4W1kTyLjCu7p75I0du+S5V9bL4WOnJAFr/1AWDWu57/G4NM3UsjiOa710P2+EJNXryAvfjkjrGVwwQnhyKSyBWLm2j0xIbaOq'@; put 'McxNYTef962pm/zN5wUJZcF3kwdaYGrnlEfuv3dI7vHrHV1qzTxx+qzbBUjje7iQgBIwI47Mvg1X3O9xXPf4QCoqMq2UIVtfCsm+jcM7mcSQpDYf9VvXrrpLNJ5Ys89VaDJGcyBp3g8yAb3A1wt9FZda7WPz9l3y8vrNrrBM3iBx83pMVFAufzQpc+9QcZl2jV95r6snHSTpReXUIQjMEmvtd4XD'@; put 'CN9ZtgahC6uhL5GwFTSBaYZD8G7Z8uyXymDNdA+4Eaadv80HVmBWV1W42eNjGobnHh8MuZ7kUjjgX8HJ7Xs/fRaF2jsGexufKyECboLPyqTc8kBIkv1Xl0JxTx34p79fZPPTYTmOAuzDXdR1PnPaJFl91+1yx62LZXR9nRufqVnnA2u7Dnf9/BwJ+I1Axg2ucch6cb9u8zY3eefc+Yti5RCbvOje'@; put 'pCy5X4uwXyMuLwMwIADW/ciU47tZdH2kjgktvP4QCq/HKnARAIUZKJGJ3wS1y/7yKzFUGgl2GEZgBaYX7vHBvlx6Na1B5afOnHM7Q6zfQmvmYJxK5blImQ1xaSGLHPWB3Qzyq/fcFZk4h/ShdNHrPzfl1P7hi0xds7acHNc4Wu5evtT907aTGoumQpNWzavZ81HxERhorezs6pY9Bw7LrzdtRS3L'@; put '/aKPc13m3YlqD2uQpQwXuSB/bjDhYmom+c8NObLNlBQzyXNFPqzP60XzqscTMn0JrMioYTrYPA1rxT75kLrJt73oyLaXgt06MrAC8w/gHn/YI/f4YMdkxpr5MkoZfe+nz7ktyAZ7H58LNoEoijQvfwTuttthwRxEYOreuyIT8dx9+H3c8kxEju3yJri7sqJcFs+b5XYEWjh31lVWTWafB/u4C9re'@; put 'qftbL5QSiYScPnferWP5OnqHHz911vUa5bq/Wqt28aqULFrliBmGsryOuNTtqMDc9DTip7ewVFGu3HP5/CQtWfQxS8xQ8EoWqZu85QxqYn45hjAA9xciF1S+/WwgBab+8P79fx1+9ni2s5WxZh4/dcatm7nxTRQ/5FJSBKIISF/xrhTiMK8vMBWInkJCSCCI9zuy5dmwHNkRfjuxIEdiGavmbUvm'@; put 'y+1LF7lZ6FWVlVdc6BSbOQLmx/NCIJOwo8fnRcRW7oCV8nUUSN8Nq6XWsNTzqxeLdupZtjYps2+FuzWEMJYbiEvdHgWmF9RzX0cYhe8f+kJSGiYgy/8mc5b71gq8Bj20YaV9FuWKWpBMFtQlkALztsXz5S9QXF2TIQqxqDVTg83Vmvn9n/2S1sxCQPfJNrIVmDpc9+cS5xKtkXkAVa/2rotIf583'@; put 'P6IZHBqrOWVik9yK74AmBU2fPFGqUFNTf8TVhU43eoYUbwtNQAXjwLhKTdjZd/g4ROVbsnv/YWnr6HSPUy/HpaWIboWHYfy0ECxFsIRl4WulwPRyBnJb16KVCbl1LdKyApjs42aT/xLZ5L8aXgJobmQL8+lACszf+fRH5L0P3+9J9ni205CxZh5FLTbtab5p285sP8r3FTGBoQjMzG4asGTqD93p'@; put 'QyI70fc4X4HeGbG5ZMEcWTp/jkyfMtHte67HaiZmkwlCmVnhbT4I6LGmF+DuRTgu+NVSue/QMXlz5x5XVLZeakclmixU3xAHZ6B82PRFKVn2kC1V1TBaarmbLDdDgTlE2Hl8+6gGLVkUlzJN9sF2spzCPI7Iu1WbKLp+/pgtz32lDPvlraHBu1HmtqbACcwYEnD+7i//o0wcP879Ec0Nz9A/rXFE'@; put 'ccQRaZvJH8CaqVflXIJLYDgCU2ngd9d1mfd02LL39bAc3prfziFhxLiNbqiTeTOnydKFc2X29CkydkyDVKD8llo3VXDqLQVncI/VQuxZxkqp7m+1Vvb29sq5Cy2umNwOF/jBo8elvbM7r8dZ3ThbFt6bkinz1d0N3+oQO8JQYBbiSMluG3o+uu+jCZmq/ckDVnhdfwOslCNPfykq7Re8icvPjmrh'@; put '3hU4gTl/9nT56//8++4JbKR+LAdaM7/15FPyxvbdhZtRbqmgBIYrMHWQes0aQucQB7XQzp90ZPc6U84eNGHR0Vfyu1SUl8nUieNl7qxpbp1NzUYfXV8rZSjoPtCdPlLfofzuPdfuFYFrBaWGJV1qa5ejJ8+4sZR7Dx51Swz19ce92uR11xOrcGTWLRYS7lJS3aAu8eytlgNXSoE5kMbI35+yICUr'@; put 'P2KLgeDZIFkwlay6yTf+AuFSG4LpJg+cwPzEBx6VT33osYK6x6/3FXStmfGEvPDaRvnhL57HlXvX9d7K54uUQKTMkVsfTMmCuwcvU5TNbumVrLaoS8RD6F0usm+TKRdOGp4lOdxsDCoStID7ZFj9Z02fLLOnTZGpk8ZLQ10N4jer3I9r7KYKT1o5b0Yz2K9nBKW6vNVCqVnfbe0dyPy+ANf3UcRU'@; put 'HpWjJ85IB851+XB9D0YXxlKZNC8lc++0ZNxkvAPfJ0fF5WBvzuI5CswsIBXwLVGUglM3ee1YnBMD1tknHDXk5P50a1LXrVVAroXYVKAEptp9/vbP/73MnTm9YAk+N5ukjDXz8LETbt3MLW/tudlH+HoREUjXwYRL7h7numWKst0dFZpm2EA5IwdFnpEIhDIpl86NTIZheVlMxo8d48Ztzpw62b0d'@; put 'B5e6CtFYLOZ6CCg6s53Z4nxfRkxm3N26Fz09PUhi7HRLCR08clwOHjvpWijbO7pyKn4+HEIGSg81TrNlHoTlxFmOhBHTZqdyt3JRYA5nNvL7mdseTsqiex1P5je/Ix3a2kM4vff3iTzzTzHp7lAFE6wlUAJzEiww/++f/xEKoaP3c7YR3QWaz0yNt2fRO/eJp17wpGhwgYbOzdyAgJcCM7MZTQIK'@; put 'oU5ab7stpw5qPb6wtJ5GweHMG0bgVksh1cOiqaJTrZuanT5p/FjEcY6WqsoKt/mADku/d5nuQmrt5OJ/AiokrxWTOo+9fX2uJbL5QivqUZ6RIydOywk0mGhGTKWWERqpc6y2ehwz2YErPCkT54VEyxDZiGXz6pRPgem/Y7ZxkiUPfDYpEfSpGMnzYD7IRGDF/NX3DTmaQ6e3fIzLi3UGSmA+uuZe'@; put '+b0vfMIX7vHBJidjzTx09IR880e/kG274A/lUtQE8iEwFYhey2rdTG1b19dty2kIzcNbDblwIoxSQ/5ApolDtTXVEJ2NSKobK9MQx6kCtHF0HZ4fJeWI51RXqgqRgcIz89gfe1E6o8iISL3NWCV1LtTN3dvX77q6my+2yqmzzXLyjP6dkwstl6Srp9cNjRhpUobhyNgptsxCjOXEWSJllegknsyu'@; put '9NBQxk6BORRahXmvzv3azyVk7FTIy4DVxNQ4zP2bHVn/k+B19QmUwPyT3/ui3LPiVvR+RvNnHy9qzexH0Pvzl2MzvWiB5uPdDfTQ8iUwB0JzXefoLpLAYX3huCOHUKT9LARn3OMamgO3Odz7Kl40gaihrtYVm01oazmhqdFtbzkG/dNrRlVJGVzs6mbX92bEprrb9T5jPIdHXlnqonGRumQEZOZ5'@; put 'tSr3wSLpCkm4s1U4nm9pdV3dZ5svuI870IqxHzHjflsiMVvGz7JlJhJ4xk8NSaRMs2+9F5aZ/TZhUdryTEj2bcbFHFtFZrCM+O2ilUnUxNT42mC1jtT4+84WR57655gkE8FykwdGYNYgNuzv/usfuz9sxVBMWk/8+iOrcUxf/+HPZMeeAyP+BeYAhk6gEAIzMyrVEBqjaSHQvf2cI0d3m3Jyjykd'@; put 'LSMTp5kZVza3eryXxaJSO6ra/Y5qiaTG0fVuqSTNXq+HxVNd7eUQp2r5VIGUEUeZ5KKMyz1zq4I0yEtm/3UfM8JRb/VPX8u8nrFCqiVSs7XV4qgXrS2oMdlyqc0Vjxdb2+QiHmvyTWd3jy8skjebu+p6W6bMtWTKEktGNxk49vMrLDPjCcdMefM5ZPa+jl7kCf9/tzLjDvpt3Vh09vl8XKLlOBEG'@; put '7KuvrUyf+2oUyZ3BKlcUGIG5fMkC+S9/9Du+Se7J9svuWjPjcXnucmxmF07+XIqHQCEFZoaKXuMaEJp6UurucKT5aMhNCmo+HpaED62amXHf6DaGuOnKigokEVVKHcTmOMR2ahZ7fe0o192uF5DaAlato5qApK73KGreZsTWwHVnrKAZATpQkGaeG/j+wZ4b+PpQ7mdE37WfGSgIM2Ix81zm8cDP'@; put '6Jj1QlnL/miXsP7+hPQn4q4FsqurxxWJrSgHpHV222CRbEPiTXtnp3R190ovPDhxH1oiB+7f9e5HY46MnmzL9IUpWC0dqarViEsk76gr/Hof8vh5V2D+MiR7NxoUmB6zzWV1eiRoHOb4GfCRB9BNvgVdfd4KWFefwAjML3zs/fLh9zzk2/jLG32x9IdGfyw1NpPWzBuR8t9rIyEwMxRcZwoMLOEw'@; put 'LC1wGbZfQJmj/SGUvQhJ+9mwpHwSq5kZby63KsJUhKq4VAtnNdpfVsPiWVUFUYpSSlUQn3rfFaF4PSNEowhH0e9WBIxUlCorXZcmLelt5k+/g3o/I/oGik59buAy8DV9Xh8PFLV6P/Onr6UwESoSUyoY9RaP47ioVGujuqTVbd0HUaiJM92wPnbjtqcHf3Bp62N9Xl+PJ5KucLQCljylZYZqYZ2a'@; put 'NM+SSbNTUjcOc4VwNHWDj4SQoMAceLT76/78u5Ny+yPBc5NruaLThxx54d9w4F9zvvHXDAxtNIEQmJps8D/+5Pdljo/KEw1tGtLvVmumZm4+89Kv5cfPvoQfF9Qv4OJrAmmBaaFM0fDrYHqxg65VE3GayAtC2QtbWs+F5PQ+Q84eNqT9IkoUW1eLJC+26fd1qDDUdpkqKvU2ghRUFZb6PVOxqm54'@; put 'FaDu87hv4P1agSKzpD+f/mzmpG+hm4i6ogfWeFQxmYD40+fSVseUKyRVTCaT6fsqKlVgaiykPqf3rxWqme2Wwi2mREY1WjIB1qjxc2wZPR5JO2gHiOiPglorB2NNgTkYFX88VzvalrVfSCDBCzoMx0qhrNr53ntN6OzvseVpxGH2dAYnLCMQAnPCuEb5n//lPyCmMVr0J233Rw0/egcQm/nNJ34u'@; put 'b+09mO9jm+vPgUAELr0lq5KyZE1Ikv3+MBnqBbDGamoqerzHgtg05MzBkJw7Epa2i5p5W3piM4cp5kc9IqDflfomW5qmOzJ+puVaLcsrTJyzCxNbme1uUGBmS6rw70u7yRNwk2PbASy6/tK3EFe/LzhxmIEQmA+uvEP+/W99xvfZ40P5OqpbT62Z2gHoyadfHMpH+d4CEtAfzcWrUrJ0DSyYPhGY'@; put 'A3dfC/maprp+ITZh2VSBqTGb546giPtZXDX3BudqeeB+8/7IE4CxGDGUSNCZ5EBUWtKI2pVV9WiPF0NNV3i/1Rqst35bKDD9NiNXj2cB3OTLH4X1El6BoFgwdQ+1XNHO1xx549nglCsKhMD8w9/8pKxddXegBKYecGFYMl9EKaO//+p33dgwfY6Lvwj4XWAOpKV2SwNudBWdVkqk+5JaN9EH/Sha'@; put 'U54ypas13a5y4Gd4nwSyJaDHVeUoGzGUtluvcgySdWrHiJRXIeMdFzl2ErGqKiqzXeEIvY8Cc4TAZ7lZtYKv/SyyycuC5Ykx0YnqwklHnv0SOqW5lZCzBOLjtxW9wFS3+N/9xX9EoedxbnyTj1kPeWgaj/S3//w12bRt15A/yw8UhkAxCcyBRNxTM+qvhdWVDh9lf78tXZccaT1jysVTIbdzUOcl'@; put 'uP3jeJ0LCQxCIBKxpbJORMvHjJlkS8MEW0aNTgvKsApKnMDUSjkSiTqDDDfrpygws0Y1Im8Moej6Q59Lyli0CRVEJfn9giVbSOplSiYcNw6z81IwzrtFLzBnTp0kf/Onf+hmgAYpaF5jMc+jq8b/8X//vVuKJNuDlO8rLIFiFZjXUnKtmxCb2jlIY5v6+yzp7RBkpqvgNORSc0g6kKXe14NEjBJM'@; put 'GLqWV6k9Nk0HiRW21DSK1I+33VjKukZHKmsdtGpEghQuVhyrOAXltXNJgXktEf89Xnp/0g1LCpqbPIIarK98PyTH3kLR1wAsRS8w3/3ASvnfPv/xoixPdKPjx0TW67pNW+Vv/+UbN3obXxthAkERmNdi1KvpEESDxm+qjcCCe7OvB3U320XamtPCU0VnF660412oF+iP/KZrd4OPh0HAjDhSUenA'@; put 'GgkX91gISlgoa/Cn1spyFLlWV55mkLkxlBCVmqQTpIUC0/+zOXZKSh74TEq0GkGQDj+Nw9y93pZNT8X8PwlZjLDoBeYf/+5nZfXdKwIXf2mgbMo/ff378sJrr2cxjXzLSBEIqsC8lqdKCoHW1DI/IbVyQlWkIDrjKK3RC4HZAfd6J8ohdeBPYzl7ukIS70bXIQrPa1H65rEBq2SsDFbIOojJBgdi'@; put '0pEaiMpR9RCYNfoa6oWqmMTVhpPCRYbW38T/QfpBH2wyKDAHo+Kv5yJRRx7+YhzxvojvxbkoKMdkJg7zuf+fvesAkKo6u2fq9mVhadKLgKggCAFEaVKEqMRobFEsPxr9TTEaY/1jS6ImakSCYk9ETSxYwQIiUhRQmoICgvTey9Zpb/7zvWUImIXd2ZnZeffufbq8KW/uu/fcO/PO+8r5ns6gI8n+'@; put '1XUW8HH2RmmCKaLLj933ezRv2kS7+EvRwLzzobHYuIXmIrM5FoG6QjArmwD750/4x0FLp1g9o3Svh4KWrcVZVuShm53Ec7cbxXtJPPe6+Jxu9mLGGpW5qRXJUHb5kNlShoDA62WsZEZuFHkFTMKhS1tIZB5JZC6JZQWRpP4nM7tFi0+skTHLpFy1dblwxwOwIZjxoJW+Y08bGUKnXiSXCiSOVRcl'@; put '+b6yYBfjMP38vVQ/DlNpgqlr/KVUFFm6fBXueeTJCqtBdVenOa7WEajLBPNoYNuUkf8cQTxJVSxaM0XKKcj6AeXllEg6IJZOkHSSgPJx7HmAcZ6BUrpgwxWE52jnMa/bxkXGP1rIzAIyKD6dXc9Cdj7lgbjPpUs7u4DPs/leLv8yaYEWFQFexYRISka3JBJC3NwGzEMIGIJ5CApHP2jNcqIDLuJN'@; put 'alQvuSKp6jPtJephLlNfD1Npgnn24H749ejL9Iu/9HjxxqQpeOnNyY7+gpvOAYZgxrcKbIMl/7H1Oe1/SJLYhCTo8TrBKjcspxikXFIp7ISiAPfltHiW0Q1fStIpj4OyLwHCAR7HYyMhciT+CWkSd64OmwzD440yy59/JI9+ksPMbBJJEsUsWiOz+ZdLi2RmHl3ZfD2DsZHiNpQkATevSzaJFFxp'@; put 'JRZhIEnAERZpiGTVq8MQzKoxcsIRObx5GnFNObLzeNMka90JnUpCHyQOc/H0KBZOUV8PU2mCefN1ozC0f1/t4i/FRfXHMU+bKj5J+LKmugkhmKcMDOOUMyusc6k+n+7t2/SQ/0hWslw13EJC+X/sdYtEyWKN6jCJU9gmli6EKe0RJNkM0TIaLHfzMd30tJAG5LVyPqbUUohup3CQf6xiJMdLNSPL'@; put 'kox4WvKoCRqReCe2Lao60YNZ8rYqRXXjoFi3znb3sxmGT9N6K8/lsdQ4j3I8/GNiqNTY9rIapawbL//8GSSG3EsspJe6fhlZFnx8LNZGv7zG432Mg/SQPHp9UkedbUs9UG5CqKOMixQrpC1YLiRdl6tsGhe6IZhpBD/OUw+5IoDmHfghfgl0Wfpiwdy8ysJHz2dU/KbEiYmTDleWYEr9cYm/bNOy'@; put 'uXbxl9t27MKtfx6DomKaaczmaAQqapFbrEUuRMZktNTWZNkU6yDREtIlm9t+zndihFRelAMlN4XMS3JU5B8hZBYJakQIWUTqtHMvx9jvSz3sCqJm8T2JKY0eg2TKRY2foLWRpxViKScUQsm+CMEUUul2W/Zzed8jfeSf/X6MLB68Mh66QNp9kc4c7JP9gP2wXzH/pBoBQzBTjXDy2u/SP4Qew+Sm'@; put 'UB83ufw2lBywMOmJDOUrrSlLMFtSWP3Ru2+GlFTUSf9S5IlmzV2AR556MXnfQtNSyhAwBDNl0Ka04UOe9IMPSPsqyOhhZz10zGGvHevhD62HRzw/+OSI147VmHkvbQgYgpk26OM+cdM2EQweRbkihpJocwNm34O68OFzXmxfz7tShTdlCeaAPj1w269G0w1G35dGm8gTPfvyREyeNkujUek7FEMw'@; put '9Z1bM7K6iYAhmOrMu4SUDL8myJKkZGW8e9OFZEoc5udvA8vnMZ5G4U1ZgnntZefjgrOHaZXgIzFcpWXluPvhJ/D9uo0KL6u603VDMOvOXJuR1g0EDMFUa54HXBxA2y5URtBIrkiS9VYuiGL2RLUTfZQlmA/e8Rt0PbETs0gZua/JJgRz3cbNuOPBsSgr18syq8kU/dcw/FlR/GhECCf0krrdJgbz'@; put 'vwAyLxgEFEPA6/dg/ocuLJ/rsZPCFOt+netu59NC6H22XnGYHhaz2L05iklPZVYk8Ck6q0oSzHp5uXj8/ttQvyCfgfkVwfCK4n9EtyX+8pPZ8/D4c68c8bp54lwE/HTR9D47jI49DcF07iyZnhkEqo+AaIXOm+zGyvkeW22g+p80R6YDgYYtwxh2ZYRqC/q4yEUpIlAaweTxWSzPa0eIpwPahM+p'@; put 'JME8sWM7PHjHjXZyj04JPqY8ZMLrudYbEILZ55wwOvQwBLPWwTcnNAikAAFDMFMAagqbrIjDDDAOk7IMGsVhyjqc+k9KFq2kFIWim5IEU0eB9Vj85f/9dRzWrN+k6HKqe932Z0dxxnkhtGEMUDhoXOR1bwWYEeuGgCGY6s3ogEuCaHMy+61RHKYk+sybBHzzmbqJPkoSzBuvuQzDB52hlcC6ib9U'@; put '70dNemwIpprzZnptEDgaAoZgHg0Z577e5Ywwegyni1wjPUxJ9Fm1MIpZb6ib6KMcwfRQVfmvf7gJndq3ZVk5lvLQZBP3uOhfPvr0BE1GVDeGYRPMn8rds9tYMOvGlJtRao6AIZjqTfBx7cMYfFmElbP0icOURJ+ddGZ+8JSfxR/UjMNUjmAW1q9nJ/jk5eZol+Dz3CsT8d7Umep9u+twjyX+p+95'@; put 'EbTtKqUIjYu8Di8FM3RNEDAEU72JzM5jXfJrA8gpYF1yTeIwJdGnvJgVfcZnoPQA40sV3JQjmCd1bI8H77zRJpc6JfgEgyHc99hTWLZyjYLLqO522ZYpGh7GCb1Zi9zIFNXdhWBGrg0CQjDnvOPG94tNFrkqk0oVTAy5OohmbSm1XvG/Kl0/ej9ptJTQuY+eZ0WfdWpW9FGOYOqY4OOm23/rjp24'@; put '7U9jsL+o+OgLzrzjOAR8GVF0HRhGtzNJMMuNBdNxE2Q6ZBCIEwE3XZOzJ3qwbikJZlhN12ScQ9bicNEjPvmMKKywpVVFn5lvuLBqgZqZ5MoRzBuuvBgjzxqkVQUfIZiLli7D/Y89o1VddS1+taoYhMcfRaeeYfQ517jIq4DKvG0QUAMBcsqZr3qx8TsPrIghmGpMGnB89zBOv4C62Jplki+ZGcWX'@; put 'H6iZ6KMcwdSxgo+XAusTJ0/Fi29Qk8BsSiHgZlB5i44WBl7KilKKBmIrBbjprEEglQiQT4aZOzp9At2SGzy84TcEM5VwJ7PtwuYRnHVVCF41uVilUHj9bmxYbmHahMxK33f6i0oRzLycbIy5/1Y0KmyACOUItNlcbjz61D/x2ZeLtRlSnRmIK4rCJhaGXhWEP4eB2BYDgMxmEDAIKImAy+NCyd4o'@; put 'Ba79OLBbyKUhmKpMpCRcjvhFAPUK+TusSaKPm+tx306WjHwyQ8mqUkoRzLYtm+ORu2+mFIHcWepzIS8pLYMIrK/buEWV77Lp52EIZDGD8czLgmjc0s2YLX1Klx42RPPQIFAnEJAEn62rgRl0kZeXqJm5WycmqpJBCicYdgUTfTryTd7o68AQmOODQAB4/wk/ivaptx6VIpin9+yGu377CwJOxDXZ'@; put 'JEts/aYtuOPBsSgtK9dkVHVrGL5MCz2GRnDSGSbRp27NvBmtbgiIuPXS2cDiaR6qQqh3QddtPuIdT8/hQXTpR36pUaKPWDE/et6DbWvVS/RRimBe+pPhuPLi87RK8PEw/nLO/MV4aNwL8X6XzPEOQUDiMFt3ttDvYgZvGQOmQ2bFdMMgED8C4iKf9ZoH65eZBJ/40Uv/Jzr0CKPvT/VL9Jn5OjPJ'@; put 'FxqCmdIV9rvrRmFI/75alYj0eLx4/b2P8PJb76cUO9N46hAQ10y9BhYGM8C8XqGLmac6OGdSh5dp2SDgRASEXBbtAab904v9eyjYbeIvnThNx+xT41YRDL0yDK9XDxe5DFZqki+eHsXCKeplLyljwRQpn7/e9Vuc0KGdViUiwQSfvz39ImZ/seiYXxzzprMR8GVY1MKMoOsAI7ju7JkyvTMIVI6A'@; put 'jxfyZZ8DC6bSPV5u3OOVo+TsV7Pzo/gxE32y85mexft8HW71JWxj9WILM17LcDb4lfROGYKZn5eLscwgb1C/QKsMcom7/MNfn8CaDSw6ajZlEXDx16xxS1oxR1EmQxQljKtc2bk0Ha+DCDCZwmKEy7SXvdixnu5xy2SPq7gK3O4oho8OoFEr9p6/wToQTEk827HBYk3yTOXGowzBbN3iODx69+9o'@; put '+vZqk0EuCT5bd+zCrX/8G4pKSlX8Pps+H4aAP9tCn7ND6NDDbcpGHoaLeWgQcDoCYiVasySKOW97ESgz1kunz9ex+tf/oiDancLikeGIcoSssnFJkk8RpbMmM5M8oJhlXRmC2bt7F9x98/UIBilorckmcktffbsC9zwyXhvSrMnU1GgYYsVs0pqSRZeH4MvgD5zRxKwRjuZDBoFaRcDNuOkwxdVf'@; put '8WLrGje/t8Z6Wav4J/lk3QeHcMogWi+pla2DBVOkisIh0cIUbVa1apIrQzBHDhuIG666RKsMcjcJ5kfTP8P4Ca8n+StmmksXAiJZdOqQCE6mVIapTZ6uWTDnNQhUHwE79nIukyg+8iFYbshl9ZFz5pHtu1WUjHRZ+tQkFyvmlBc8vAFSK5NcGYJ5/agLcd6IwVoRTJEoeu6ViXhv6kxnflNNr2qA'@; put 'QBT5hYzFvCKEgoZGeL0GAJqPGARqDQG3102rkIXpL/uwb4e4xg3BrDXwU3Sixi0PZpL79Mok//RVMNnHlyLUUtOsMgTznpuvQ+9TT9FKZD1CF+pD457Dgq+XpWZ2TatpQcDWxTw5gv4XhCtcNDr4adKCpDmpQSCFCJBLCp2c/ZYX67/xsAqXIZcpRLvWms6tz0Sfa8qRnVshNKXDz69IFc2fEsXX'@; put '09WSKlKCYEpijyT4tG/TUiuJIikRKRV8Nm7ZVmtfPnOi2kHAli0aEkbXfi6T8FM7kJuzGATiQkASe5bMAr76xFTtiQs4hx/s9Vn48bVBFDQlwdSkJrkQzGVzLcx5Ry2pIiUIZv16+Xjsvt+jQUE9bSSKJIN809btuP2BMSguKXP4V9Z0ryYIZLNG+ek/C6JVJ7mARWrShPmMQcAgkAIEhFyu+9bC'@; put '3Ld9KC02WeMpgDh9TZJUDtWsJrnX78b65VF8MsEQzKQvrNbNKVF07y3wMilGqqbosIlw/JLlK3H3w09qMyYd5iWpY2BWeUFDCwMuCaGwmQfhoCGZScXXNGYQqAECQi63r4tg1kRm5e4St7hxjdcARkd/pO/IIDr0Zhc1qUnu8bqwa4tFqSLRwlRnvSphwTy1S2fcd8sNCIepJaHJJgk+02bNxdjn'@; put '/6XJiMwwKkNApIsatrDQ/8IQ8iXpJ2QU2CvDybxmEKgNBLx+D/ZstTDrDS/2bhODRW2c1ZyjthE4ZVAI3QfrI1UkWeTFey28R6miYJk6UkVKEMxhA07DzdddqVcGOWuQ/+vt9/Hqux/V9nfPnK+WEZDqEo1bR9DvggjyCt3GklnL+JvTGQQEgRi5/OwtD3ZvFnKpjiXIzGB8CBzfPYTTz+fdgyZS'@; put 'RS5qtQbKK8TWi/epE9KhBMH8+U9H4IoLf6IVwXTRRT72uVcw/fMv4/vmmKOVRMAuJdkqgr4kmQWNXIgEjSVTyYk0nVYSAdstznJ7c5gxvne7sVwqOYlxdLpZ+zDOvCwCj0cTqSK5F6LqzPvP+LF7i7FgxrEUqj70N6N/jh8P7q8VwQyFwvjT488wDnNV1QCYI7RAQEhmg+Oi6H9RGPWbMDzIkEwt'@; put '5tUMwsEI8MIs5HLjCgvzJnkZc2m0Lh08W0nrWoPGFoaOLkdGFudbkzAIDzVbP37Rg00rDcFM2kKRhu5lichep3bVSgOzqLgEdz40lpnkO5KKlWnM6QjQXU5LZo/hFpq1ZbUficnU5AfQ6cib/tUtBMSt6GHs2spFUSya4kPJAcrWSN09s2mPQBYVPEZcG0BugVsrqaJP/02x9a/UEVt3vIvcQ1fy'@; put 'o/f8Dse3ba2NBqb8yG3dvhO3PfA4DhQVa/9lNwP8IQKs9tMwiu7UyWzfBRDBfVO3/IcYmecGgZojINYeqd+8ZIYb384RBQd14tZqPmrzyRgCumphzpsUxTefqSO27niCmZuTjTHUwGzcsFArDczvVq+jBfPv2owp9sU2++ojIHfZJ54W5p8Fb4bJMK8+cuZIg8DRERDNwOK9UXw13Y3vF3thRYzV'@; put '8uho6fmOzPiQ/wmgWRu6hyr+V36gIrb+9Ywo5n9oCGbSJrNRYX2bYObm5DAhTI/ECJEomjv/Kzw47vmk4WQaSj8CYm1v0awJ2rZqjhlzFlSrQ76MKFqfFEG3MyOsYe6i1cW4zKsFnDnIIPADBFx0h4tLfOv3Liyc5sbOjW56Bqoml16vB5kZfpSUlhtN4h9gqvLTARcH0LaLC9GIpUUUkhDMFV9E'@; put '8dlbhmAmbV22a9UCD//hJv5w6COy7vX58MG0WRg/4fWk4WQaSj8CebS2//LqS9H1xI544PFn8c1331erU5L8U9jcQrfBEbTsJO5yJgxGTGBmtcAzBxkEiICHVstwuYXl8zx0ibtRVlS9RIiC/Dxcf8WFOOH4tviUih6vT5qKsvKAwVQDBHqfG0LnPvw91URs3cc1vvYbC9NfyVRmdhzvIu92Uif8'@; put '8dZf6SWyTg3MV96ajNfem6LMQjEdPTYCcgN0Conlnb++Bn6/D6vXbcBD417A9l17jv3Bw97NzLHQqVfEdpln5Rlr5mHQmIcGgUoRsBN5pMrJJuDrT1l+d5WXxQyqtlpKYxILf93lP8MIKpR4mBAk1dXGv/gapsycg2AwVOn5zIvqIKCb2LrX58bWtRY+eCZDmWQ1xxPMAX164HZetMvLy9VZ2VX0'@; put 'VFzk41jBZyor+ZhNDwTycrN5sboQg/v1sdeqXKwWLlmGR5+eQNdb9WvNu6nb1riVha5nhtGsHbGhIdNYM/VYI2YUyUVArJahsiizxF1Y9pkXxfuEWFaPXEpPenU7GTdeezmyMyvqO2dkZGD5ytWUj3sWe/cfSG5nTWu1jkCnPmGcdq5YMCNauMilXORuVqGaJOUiFSkS4HiCOXLYANxw1aVaaWBK'@; put '1vDDT/4DXyxeWutfOnPC5CMglpDj27TEPZTTys/LtRO35DVxcn8yex6efmkiQnGWOc3IjuL4U5kA1NdCfn0XPy9M07jNkz97pkXVEHDzQis0cttaF5bMcnPvqbbVMjZWuSEUb8MJHXgXd7BepHxng6EQ7vvbU1ixai3VHfSI+Y+Nua7t23Zl9bQLI3BpUs1HykUe2BXFJJaLDCmiiuB4gjnqgnNw'@; put 'Gf/KyqpvBXL6FykQDOLuh5/EyjXrnd5V079qIJDh97MQQD9ce9kFR2i1ygXL4sXrnQ8/wUtvvh93AoHEZtZrZOFkksy23SIUjBbpFZMEVI0pMYdoiIC4w70kl/sZdbJirgurFnkRKK2+xTIGiZcepNGXnIezBp0BNnnE99LP7/LY517GjLkLEDBu8hhkSu5bdIxgwCVheDWp5uPmYi0psjD5yQyU'@; put 'Fashu+V4gvnLqy7GucMGaUUwi0tKcceDjxuRdSV/tv6702K1vImutt6VFAMQkhlmFuMbk6bUOObW66sQZz/xDAvN20fh8Zn4zP+eBfOKtgjwwuojsSwttrBmCTNp57ntijw1cRN6GSt9+QVn85oykHGXzDI/aL2MYZeZmYm3PpjGGPn3UVqmT1hWbHx1ad+oZQRDrwzDx99PHXw/dj3yAOuRj/Mz'@; put 'HMQQzKSs5VtvuAqDTu+tTQymEI7tO3eTYI7Fnn37k4KRaSS9CDRv2hj33fK/aNKoYaXJaBKPKdaQf7/9Ad7+aHqNOyuSRs07RHBCHwtNGKfpYdC3sWjWGE7zQacjQOuij2s8QJ63aQWwfK4HOze7a6xrGSOXI88aRMslQ1h+QC4FDonDXPj1t3j4qRdNEQynr48q+lef5SKHjQ6wXKSYqas4WIG3'@; put 'uWS59hmDSQvmvp3VU0lI97Acb8G8/5Yb0JPB2IGAHtIRQjA3bN6G2x8YY+6Q0736k3B+uWh16dwBd914LV0xR5fSknkPMdj8dVoyJ07+uNKLW3W748uwKGdkoSMzzpu2isJtiGZ1oTPHqYDAQYtlIGhh80oXvvvCg+3r44+zPHyoonV5+fnnYCQtl+JqrIxcyvHiPhcDwL2PPmk8TIcDqODj3PoW'@; put 'hl8TQHZuRcyu8hyTBJMLFx8+68fOTYZgJrwk5aL88P/dhM4d21M2Iphwe05oQKxZK75fa6r4OGEyktAHv89LC3sv/Gb0ZVWuUZl7SfZ5mfGYk6bOSDiJQCyazWjR7HCqhaZto8jIFHc83UFGQzMJM2uaqG0ERCjdy78A9Sw3r3Tju/nuhImljCGLWeJXXTQSwwaeweQgfj8qsVzGxirXnHAkgj+N'@; put 'eQZLl69K+Dsaa9fsax+B7FxaMK8pR34Djzb1yOXm6KMXvHZiW+0jGv8ZHW3B9FOQXMpEtmrRTJs65EIyFi1dbmcqxj9d5hNOQ0AuXucNPxNXXDiyWmEcMv+lFHKe/PEMWjKn0XWe+I2Tx2ehUXOgffewbdnMLmB8DnOBwhQY1sE15LQ5N/1JLgKSFS4ZsqX7o9hIV/iqhR7s3kKLZVhMNolt9evl'@; put '4xfUuuzbsxuJJSu6HINcxs7k43XnEbrIP/9ycdzqD7E2zD79CPgzoxhOF3lBE1owOe/KWzAJqdfrxscT3Nj4nTf9AFejB44mmLE65EeLbavG+Bx3iGhgzp63AA+Pf9FxfTMdih+B7KxMJg2cg/N/PKTaiWhCMoOhMGbOnW8nE+zdXxT/iSv5hJtZ53mFFlqdGEGbkyw0aFbxg2SsmpWAZV5KLwK0'@; put 'xEhGuFSt2rvTwoZvPFi7xI19u6pX3rE6nZfY6F//z6U4sdPxjF2jFmI1yKW0K3GYT00QwfW5DM1K/AawOn01xyQfAY/HwohfhNDguCgJph732r4MDz55xYV1Sw3BTHjFyN3nY/f+Hg3q17O1BRNu0AENCMGc8unneOKfrzqgN6YLiSKQk52F0Zeeb8sUxSOlJSRTJIwWUYz9pTcnY93GLYl25YjP'@; put '+/xRNG1DsnlSGMd1iCJfrJo0CEWMC/0InMyTWkSA68/jcdNaCQTKLGynjuXapR5sWulBeYn0I3GLZWw0XTt3pFfhXHRq36bSxLvYcZXtJZP8H6+9g/emfIpyQzArg0iJ19zuKM66OojGbcguNXHmSD3yT19zYTUlulTYHG3BbNqoEI/ddyvESmRpInorQeQig/GP195VYX2YPlaBQG5OFq4fddGh'@; put 'Cj5VHH7E2xLvJURz3aYteHniZHz51TdHvJ+MJzwFsvMYo9neQuvOEVYJiiKnHpOR+J8hm8lA2LRRFQLi/pYqJKJ4sG8H6N7zYMO3buzZVvOM8KOdUxLthvY/DRecPQSNGzaokWEiKyuLcdKT8eb7/eqQVQAACklJREFUH5u65EcDWoHX5bdvyNUBNBOCqYkF08vqVQunulgW1afADPCWsfvgnxJ6'@; put 'Z24tmzWlBfMWO7Ovuu4NZ47kP73ysA75y29OYjbx1P+8aB4pi4AQTCkROYQXtZqWM5Wbjn0HiuzEn/c/mR1Xacl4gJM7+uwCSh21i6A5s9AbtSTZzHezri3jNY1lMx4ozbHHQoDrSZIRhFTSM40DuyPYtoakcrkbO9Z5bNkhublK9taEBokLzxmK/n16IjPDXyNyKX0SgvnqOx/aig9GCzPZs1S7'@; put '7Q0eFUCLjjwnq6A5lujEAYkQzK8/BUmmP45Ppe9QRxPMDm1b4S93/da28mhDMEkmnv/Xm3h3yoz0zbo5c9IQSAbBlM54aHkRQfZFS5fh37y4rV63MWl9rKwhqRKUW2DZ7qPmrHjRRMhmfTf7IVpr4krXxKdU2eDNa8lHgHzRS/e3i+tHLJVFrLazbb0bm1eIxJCLLnAhlMknlbGB/KjbSbjkJyNw'@; put 'PK8ZDLZMyOMlLvIXX3+Xv9GfGgtmDGBF9wMvDaL1yew8Ex51IJhy07ZmCTDztQwlZsTRBPNkBmf/+fZfJ/Rj4bRZcPMKPu6Ff+HjWfOc1jXTnxogkCyCKacWq44QzW07dtmC7J/M/iIpWeZVDotkMzsnioYUb2/GSkGN20RQ0BDwM6Bc4kSNK71KBOveAeSKHlopXbzgybotL4ngwE4Xtq0jqfze'@; put 'hV3U6Qva1X1TRyoF9IYNCmxtyyH9ToPUFw9TBizRzcRgJoqgcz7f/6IA2nVlMhlvmHUhmGtJMGcYgpn4Iut+8gm4//e/TMqPRuK9SVIL/DF+7JmXMGvewiQ1aJpJJwLJJJixcdjWTIqyL6Q1U0TZv1u9LvZWyvfiKfDz5rheEwvHtWGiEN3pDZqSgNZjcgbzhKK0bobpbhKXk9nqEALkieL2lnhK'@; put 'qYITCkVQvBfYs9Vtk8rt61gjfIe4xLlIamHz0RPUp0dXnD9iMNq1aZmw1fLwLksW+fP/fgvvT5vNJB89CnwcPr669LjfzwJo300fginfvx0bLXzwdJYS0+hoC2afU7vgDzddX6WAtRJIH+xkhBfmR8b/A/MWLVWp26avR0EgFQRTTiVWIYnN3L13H6ZSLmXKjM+xa8++o/QidS+LKz0730LDFrCz'@; put '0huyvm+9hlFk5njZR8Y1GcKZOvDT2TJ5oodrMGahDAdIKA+4sG8bbOukuL33bmcZx1LpZGqtlD+EoWO71rb27I9Y4U10aEOh0A8PSei5EMzxL76GqbOMTFFCQDrgw6f/JIjje3F98oZdh1tiqUe+b3sU747LdAC6VXfB0QSzX+9Tcedvrq1x8kTVw6/9IyS27YG/P2eLrdf+2c0Zk41AqghmrJ9i'@; put 'zSSTw9oNmyjOPhOfz/8qrSVG3R5qbTaIorA566G3tlDYzEJ+IQlnNqtliIWToZtyExUVC6cOv+ixidB5z+tvzN3NKEqGJEVRXkZCua/CKrlroxs7t7hwYAflhMTtHa1dQhmD/rgmDTGc1XjOPP1HqF9Qz/ZspSI23xDMGOLq7/UkmBYJprFgJrw6B/btidt/dU21BawTPmEtNBAMhvDnsc9iCcuQ'@; put 'mU19BEQH80pW8Rl51qCUrlOpLiJlJpetXE2iOctOBgpwLaV7k8x0qfnboFnUzkovpKhxfkOL9X9JWvwkx5JwIUlDQjjlz2zpReAwy6SQSU4Ps7ojKD0AFO12UTqI8ZMkk/tpnSzex9Km1BlPRcZ3PCA0KqxPUtkLQ/r1QdPGDW3B9Iikp6doMwQzRcCmoVkdCeaebRYmPWEIZsLL6dyhA3DDVZdo'@; put 'ZcGUyhD3/m0865GvSxgf00D6ERCCOepn59ouu3iE1mvS85jbXMSfly5fSbf5HCz6ZjlDSNJPNGPjEbd5JhOG6jVm0hDJZgNaOAv4OKcea6XnuCuqt5DViGtdEojEWmYsnTH0krinkdGOmZREHJJKWTuSrBUoJZlk4ajivR6SSdDl7aE2pcu2VgbL5fzpsU5WNnLRsTyjV3ebWIpknWzJSOKp7FyH'@; put 'v2YI5uFoqP1YO4LJ73HRnijeGmNc5AmvzCt44b7kvBEs16VPoLUEjd/76HgmbqxPGB/TQPoRqE2CGRutkAWxaArR/Pa7VbYigdS3Lym103Zjhzlm76FbPTu/wrJZ0ISkk0lD+SxpmZ3PsnzZJJ5ZjOdkb+08T0M8qz9vBE3WAjkk5YEq9hJOYZFIBmmVDLA6TvEBNy2TJJI7hUhWWClLi2iZtH9S'@; put 'BXXnbVLiUbxX/Xv3QDM+lq02iGUMCUMwY0iov9eNYNozwq/thLsNwUx4dV5+/tn4Of90IZhyMSgpLcVdf3mCpQE3J4yPaSD9CKSDYMZGHSOaYQawr1q7HjPmzMcXi5di526m9zp8q7B0WsirD+QyhrOAiUOSPJRNd3tWLvd5kuQkuoq0wNnedYnrFI97RXyn7Wy3/3H4QBPpnhBHfl4C+2WuxRIp'@; put 'Gdzyori2g4EwiSRd3NSYLGECTvFexknSzX1gF5/TvV28HwiVixtcWnH25vV60LFtawxifGUvJu80LGxgy9PVJrGMIWQIZgwJ9fdaEkxOy4R7DMFMeHVeP+pCnDtsoDZZ5IZgJrwkHNdAOgnm4WCIRVPI19YdO/ElFQpmfbEQq9dvpls0dbFqh58/WY/dZJMZWYzrbGAhpwB2QlEuqw/JX1ZexXte'@; put '/rb6M4SAMsbTdv/y7CSf4nIXd7vtdudLkmh0iIMeepCsntawnQp+KIZGEsWKJzZpFPIozJH/S1ejtEJGKA4dDFh2HKSQyDJaHktJJEuYfFMkfxQzL9vvRlkp3d+2/KM0qtZWkJ+HHl07YwCr73Tu0A45Odl2Vng6SwMbgqnWGjpWb3UkmPLdePm+7GMN2zHvOTqL/LZfXo1+dJMkW4YiXegbgpku'@; put '5FN3XqcQzNgIRdpI6puXlJRiBfUzP/tyERZ/s0IJq2ZsDEfbe9wWvJkuZqxbdpxnZh5Y6lIsnizvl2sxxlNc7i5kZFjw8zi3Nwo3S/b6xBIqBE6EPIWQygliXIxsTnhpbLMpaex5bB978/B97PPc07Z46B2bOMozeUnalsdCfvmogjQKcZQ/un2ZQBMKuEgiKVROklhezOxtksgyurbLikgoiyus'@; put 'k4EyN49hW9Z/ziPNqrpl+P2suNMSfXt2Q8+uJ+I4usE9nBv5nU9FVni8OBmCGS9izj1eN4JpyxTtoEzR340FM+FVd9sNJJh9DMFMGEjTQMoQcBrBjA005j6XC/b2nbuxdMUqzF3wFZYzuexAEZmLphsdwjap9Aqx9FnwMdnSz8fezCh8/E32ZXDPMr4iJu/xR1k5ifGs3FeQUVZSYla820twyAxt'@; put 'PkqSam+yO8jvLBI9SyyGfC4Z8lZIpH1IGENCHGlN5D4UdiMc4D7oIpEkiWR4bDggRNFCJFiRnS1xkHK8fPZQ4/JQw02sza2aH4ceXTrbLvC2rVsgmzW/xcKeDjf4sSA2BPNY6Kj1npYEc7s6MkX/DwAA///r8VITAABAAElEQVTsXQd8FNX2/rZl0xMSSkLovXcBBUSKgNg7dkXF8tRn74o+n/7V'@; put 'J4oFsIMdO4KCFEFA6b33HkpIAklI22z5nzNhNcQkpGyZuXvmR5jd2Zk7937nzsw3p5q6DrrUA50uj919C/r17o6ioiKd9rBq3TKZTMjNy8NTr4zDnv2pVTtY9tYlAlGREbjhigtxybCByM/P12UfLRYLbDYbHHQdHTpyFBu2bMfS1euxbdc+ZGXn6LLPeuqUx/P3LZKvYVkqh4DNakXD+kno2rEN'@; put 'undqh6YNUxAXGwO32w2n04mSuFauxcDsZbfbMX7SZMxeuASFhY7AnFTO4hcEzrrUgVY9TPA4Xfj7KvbLqQLSqMlswvEjbvz0TkRAzlfTk5iEYNYUwsofLwSz8lgZZU8jEMySWFrpoc9/TDaPpKVj07adWLl+M7Zs3430Y8d1+9AvOQb5rF8EIiPC0aRhfXTt0Aad27VGo5QkxMbEaPOKSSWTS70v'@; put 'YWFheOvDz/H74hUodKih3NA75v7q39lXFaJZJyKYLrc6BPMwEcxxQjBrPGdEg1ljCKUBPyNgNIJZEg6vZtPlciE94xh2k1Z93aZt2Eikc//Bw8gvKCy5u3wWBP6BgNlsRp3EWmjVtDE6t2+NNi2aoH69OoiIiADPK/4zAqksOTDW9o/94DMsWLJKexEr+Zt8NhYCqhFMs8WEQzs9mDkx3BCCEA1m'@; put 'AMUkGswAgh2gUxmZYJaEiIkCP1h5yc8vQOrhNGzfvZfM6TvIlL4XR9IzyKzpKnmIfA5RBGKjozTTd8e2LdG2RVM0bZSChFrx4BcWJpRGd2kqJpifE8FcKQTT4HN84PWFaNiaBuH2KKHBtFhN2L0O+P1ruyEko2uC+fg9I9G3ZzfD37C8M0EIphcJddaqEMzSEuGHLBMG1j5l5+QQ4TyKrTt3Y8uO'@; put 'Pdi5dz+Oph9DEZk8ZVEfAZ7jKUl10apZY7Rv3QLNGqeQ1jIBEeHhf/lTGk1LWZHUhGBWhI5xfmMf33NvdCClFfVZIYK5YzWw8DshmDWeiQ/dcQMG9OmlHMF8+tVx2L1PgnxqPEF00ICqBLMktKzdZLLp1VDlnMjFwSNp2LF7P5FOIpx79iMtI1NM6iVBM/Bn1lAmk5mbCWXblqyhbKCZwSPJ7M0v'@; put 'yayhZE2lqosQTDUkazYRwbzFgaSmFN5Drr8qBPlYw8xYPRdYPTvMEELStQbzRorOHXHJeRTJp44vWKHDgefGTNA0QYaYIdLJChEIBYJZGoCShJO1BCeIcGZQgNCeAweJbB7Ajj37cODgERyjCHWViUhpXIz4nSO9E2vFUTBOMmkmG6Bl00ZaYE5iQi1NQ8lj4uAc/guVRQimGpI2W9wYdqsTtRu4'@; put 'QVxTCYJps1uwdAawYX6xO5PeJaVrgnndZcNx3WUXqEUwKe3Fc68LwdT7hVHZ/oUiwSyNDWu1WLvJ0em8sIaL0x8dPpqB/amHsWvfAeyjNWs9s7JPiGm9NIAB+m61WlArNlbTTnKkd/MmDdGI0ghxkA6nD2L58QsDk8lQfjEQghmgCenn01htHgy/vRDxSSYimGr4YIaFWzB3sgm7Vhffa/0MYY2b'@; put '1zXBHHHxMNx45UVKEUwOlPjvm+9jLUXrymJ8BIRgli3DklpO3oOtEGxaT888rkWoc5T6vtRDREIzadsx5FFgkV7zIpY9Qv1uZRyjoyJRKy4WKcl10TC5Hho1SKZ1EmonxFPaoGhwKh5emEjyn0o+lDWVjBDMmiKoj+PDI9wYQgSzVh2zMj6YNjKRz/nCjL0bhGDWeJYN6tsTj9w9UrcJrKszQCfl'@; put '43pl3EdYsXZTdQ6XY3SGgBDMyguEtZys7WRNGa9ZU8YR68ezs8nEnqVFrh+k6PVDaRk4cOgwjmXlaMQzlLVpFaHLGsmoyEjEk/axXp0ELT0Qpwhi/8m6tRO07fw7486LkMmK0Pz7N56f/5swCYtXrBVt+9+wGO5TZCyZyG8rRHS8WRkNJkeRz/7EigPbiq9pvQtF1xrMc87qgcfvuU0pgumBCWPe'@; put 'nYQ/l6/R+9yQ/lUCASGYlQCpgl2YaHq1nbzmPyaeeVTxKic3D8eJZLJ/J6dJOkLazqOUrzPzeJZmgj+Rl48CcjlRlYCaCRu7PQycvDyOkpXXio9BnYQEjUzWq5NI60QkkJYymoJyOKLba+JmDaaXTIpWuILJV85PrMEc894n+HPZGklTVA5GRtgcm1hMMMMjyUROHVYhyMdMlXx+/ciKw3uEYNZ4'@; put 'Dp7ZvTOevn8UHBQYo8piogfo2A+oSsSi5aoMKaTHIQTTP+Jnoukln17iyWdi4sTm9gJKAp9P66ycE5pfJ6+PZ2VrWk/2/8wmczyb5HM1Ekr7ExFl4soWhGCag1mbGGazajlHw4k88vyJJi0jm7TjYqKIRMaRaTuGtI+x2nf2jeR9IohkhlMJQ68WmIkjj4fXPB4hkr6bh2Ii9x2WwWwpIcmNoSML'@; put 'YQsneqkCu2SWTOmWfnk/DBkHhWDWeG717NIBzz54pzJpihgQC5lf3vn4S8yav7jG+EgDwUdACGZwZFCagHrJqJdwMeniYCPO2lBU5NQIJn9mX08Hlf/LLyjQCCoTVS4HWEBklbfzvk4isbzmsAD2mebPbs8/SxxyBLaNyKJ2bpOZ/Bpt8G5j8sg1re20LSLcjgj+TNtY08i/8TZtX/rdTv6QrH3k'@; put 'MXmXkuPwEkghkV50/LsWgulffAPVer0mLgy+wUnXlhoBPmTQoPuRBz+PD0NWuhDMGs+jTu1a4b+P3qOUCYwJ5qTJU/DDjN9qjI80EHwEhGAGXwYV9cBL2pgEekko7+/dXvJzSQLn/exdl3cObpMX77rkZz7We7xXa1p6XXIfrSH5L+gICMEMugh80oGGrV045xonOB+mEgpMMo8X5rkwbUI4co//'@; put '/TLqE7D81IiufTA50e8rT92v3by9N2o/4RCwZi0WKyb/NB1f/kjJrGQxPAJMMDlf68XDBirlK2x4wcgABIFqIlBMMKUWeTXh081hLbq60OcyKgjALiS66VX1O8L+l7nZRDDHhaMgTwhm9ZE8eWRjSq3x+uiHNb8jVQgmm8J+mjkPH375Q43xkQaCjwD7zo0ccQnOG9iP/AILgt8h6YEgIAjUCAFO'@; put '4fQ2uTHN+3OZ5j5Ro8bk4KAh0LZPEXqdR+6X5PKiBMG0mJCV4cbP4+wocgjBrPHESq5XG2Ofe0TzZVKFYLKJfM6CxXjroy9rjI80EHwEoqMicOcNV2FQv95CMIMvDumBIFBjBNh3dsInX2MW3acLKThMFmMi0PXcInTpT0FwFNinAsHkFEUZB4Fp5IPp8RS75uhdMro2kXNSYNZgciSl13dJ74Ce'@; put 'rn9MMBctW42Xx318ul3ldwMgwATzjuuvxOCzzxSCaQB5SRcFgdMhwATzwy++xy+/LdSCxE63v/yuTwTOutiBlj05MkYNDabVZkbqTjd+/dB+is+3PtEv7pWuCSZXnHjjuYeplFmCMoE+HFywZsMWKhf57l8BAHqeINK3ihEQglkxPvKrIGA0BMIp0n/S11M0VyZObyWLMRE4Z0QhGndkgqmGBpPr'@; put 'kO9a78K8L8INIxBdE0zO+zb2+Ueo3Fk9LeebYVCtoKNMMLfv2ovHX3pTS4dSwa7ykwEQEBO5AYQkXRQEqoBAREQEvvjhZ3z/yxwtrVUVDpVddYKAiYziw251oG4TMo5ThjEVTORch3zTYg8WTSku86oTqCvshq4JJnsZjP3Po2jepBHloiuqcCBG+ZHTmaRSObzHXxpLiaDzjNJt6Wc5CMRSFZV7'@; put 'Rl6Dvj27aQnAy9lNNgsCgoBBEGCCOXnKdHwzbZYQTIPIrHQ3w+xEMG8vQHxddcpEMsFcTdkNV86ylR6ubr/rmmAyai89fi86t2+jTDUfJphHMzLx1CvvIC09U7cTQzpWOQRioiM1H0wJ8qkcXrKXIKB3BESDqXcJnb5/UXFEMKkOeVQc5b/lfLSnP0T3ezDBXDwV2PinEEyfCeup+25D317dlQqg'@; put '4GoiTDD37E/1GU7SUHAQ4DRFt15zKYYN6KvUHA0OmnJWQSD4CLAP5kTywZxK6eTEBzP48qhOD5QrE0kgMMGc+6UJu9ZaqwNJUI7RvQbz37ddp+UYzM/PDwpA/jgpl5574c33sX7zdn80L20GEIFIqhF93aXDcfkFQyTRegBxl1MJAv5CwJumaOb8RVr5UH+dR9r1HwIprVwYQFV8LGY1tJeMFKcp'@; put 'mjXJgtTtQjB9NnNuufpiXH3xeWo9vKlu8evvfYKFS1f5DCdpKDgIcF3pi4acg1tGXCoazOCIQM4qCPgUAYvFglfHT8SSleskENOnyAausZbdXDiLq/gokgMTHJDipjrk74ch86Ax6pCztHWvwbxs+CCMojyDKmkwORcm51mbOut3loEsBkbARrLs07MrHr7zJmUC0QwsDum6IFAjBDjLR0FhIZ4f'@; put '8y627txD/IRCkGUxHAJdBjjQZRDFkitSxcdEZSId+S5MHW+cOuQ8aXRPMAf26YlH/zVSKYLJ5SK/+3k2PvmWPHZlMTQCFnogtWnZFM8+cAfsVGJOlYpThhaKdF4QqCYCfG9OPXxEI5iH0tKr2YocFmwE+lxciBY9qZyiIknWzVQmMueYm+qQ2+EoMEaZSJ4DuieYZ3Ruj9EP3aWUdog1mPMXLceY'@; put '9z4N9nUo568hAkwo69VJxHM0RxulJCs1T2sIjRwuCBgOAfa/XLpqHd744HNk55wwXP+lw4QA3ZMH3+hASiv6TGZlFSLI2f/yaKobv5AG06PZy40had0TzJZNG+HVpx/QSiOpoh2Saj7GuDgq28sYiiT/1y3XoP+ZPcQPs7KgyX6CgA4R4Ajyz7//GT9Mn4P8gkId9lC6dDoEbGFunHebA/FJ6qQo'@; put 'soaZsW+TG3M+M04VH5aT7glmct3aeIOq+UTQha9KPXLOhbn3wEGtmo/cxE53u9D/72FhNgzpfxbuvulqSbauf3FJDwWBMhHg+zL7XL7wxntYv2WHMuWJyxyswhuj492UZL0QkdFEMGmcKmgwi6v4uKmKj91QktM9wVSxHrkkWzfUNXLazrI8mzSoj/88cjfiYmPkwXRaxGQHQUB/CISRD/XWnbvx'@; put '0lsfIj3zuP46KD2qFAJ1G7lw7o1OWG1qmMd50Ewwl88A1v5unCTr3G/dE0x2un599ENo1rihUv5tHKk4+rUJ2EZ1yWUxPgJsJueSkWf3FjO58aUpIwhFBMQ8robUm3Z2ot/lbqrg41ZCe8lSYYI5bzKwc7UQTJ/PUtYM9ejcQSnzI/keY8y7n2DRijU+x0saDDwCVsqd17t7Jzxy181aJLkq/sKB'@; put 'R1LOKAgEHgHOfclBPc+9/i527tkv2SACLwKfnVG1FEUMDEeRz/zYgkO7jJNknfutew0md/KBUddj6Dl9lUpVxJHkH335PX6a+TsPURYFEIgn8/hjlFKrc/vWSr0MKSAaGYIgUCECXH/859nztRKRuXnqVI2rcNCK/tj3CkpR1NUMjyIpisgDC04nJVkfH4asdOMkWefpZQiCeeMVF+Lay85XjmBO'@; put '/20B3v30W0Uv89AbFidd70tJ1x8YdYMWkCZazNCbAzJi4yHAWT2YVD5P2svt5LLkpjQ3shgTAbPJg3NHOpDUhGRIOfJVkKSZkqznZrsx9R07CvONkwOTZ5AhCOawAX1w/+03KEUw+aa2ct0m/IciFmVRBwEO8vn3rdfizB5dJGWROmKVkSiMAGsvv5n6Kyb/9Cvy8gsUHqn6Q4uMdmMopSiKSVAn'@; put 'RRHnwEw74MH0CXYizBwXb5zFEARTxWTrTDD37E+VVEXGuVYq1VNvZZ8n770NMdFRElFeKdRkJ0EgOAhw5Piefal46e0PqYJPWnA6IWf1GQKJ9V0YeksRrGE+azLoDdnsFuxc68bvXxkrRREDZwiC2bRRCl575kGwI7ZKZses7Bw88fLbOHTkaNAnsXTAdwiE28Nw0ZBzcPPVl4gvpu9glZYEAZ8i'@; put 'wC/5bA7nYMulq9ajyOn0afvSWOARaNqJIsivUC+CfM1cN1bMFILplxmVEB+Lsc8/ivi4WKU0Qi6XWzORr9u8zS+4SaPBQyAuJhr3UHWffr27K+XaETxE5cyCgG8R4LREP/wyG1/8OF1M476FNmitdR1UhM4DyPfS5VLC/5KB5BRFC74zYdtyY0WQc98NocG0Wi2UC/Nh5XJhmkkj++6n32DG3D9Y'@; put 'FrIohAAnX29Yvx4evfsWbd4WUt5TWQQBQUAfCLDf5bLV6zGWao5nHs/SR6ekFzVGoP8IB5p0oGZIeaNCgA8DYuEURZOsOLjDWBHk3HdDEEzu6OgH70Cvbp2VMjlyEvmfZs7Fh1/+yEOURTEE2B+zXavmeOjOG1EnMQEOh0OxEcpwBAHjIWC327F73wG8Om4i9h08rJTblfGk4bseW60erURkQjIR'@; put 'G2KXKhBMTlFU5OAURXZkZxorgpwlaxiCeecNV+KS8wYpZW5kH6BV6zdr6TF8d5lJS3pCgLXv3Tq0xX0UWc4uHkVFRXrqnvRFEAgpBJhcss/7axMmaVXUuPa4LGogEJdIAT63FSE8kogNDUkFgskJ1rPTPZhGBLPIYawIcp5VhiGYHDRx980jlCKYbEZNPXQEj744VsvDpsZlLqMojQDnx+zZtYPm'@; put 'k8mR5UIySyMk3wUB/yPA5DItPUMzi6/fskMpf37/o6f/MzRs7UL/a12wUAJMFcglI24NMyN1u5uq+ITrXwBl9NAwBJMf0KMfvEs5MyMn+H361XcoZdHBMsQjm1RBgEkml5K8+6arEU11y50SsaqKaGUcBkCAyeVBSkP01kdfYuO2nUIuDSCzqnax09lF6DZEvQCfjYs8WPyTMfMuGYZgNk5Jxmuj'@; put 'HwI/qFVKVQSTmdJkTMIfy1ZX9XqS/Q2GAJvLu3dsh/tuuw5cVlJ8Mg0mQOmuIRHgaPFde/fjzQ+/0OqMi1nckGI8bafPvqoQzTqZKIJcHQ0mR5D/SSEam5fYTjt+Pe5gGIIZEx2ppSriYAkXpSBQZeHcnt9Mm4nPv/9FlSHJOCpAgOV9Vo/OuIVyZNarkygkswKs5CdBoCYIsAsSay5Xk5/7BMrW'@; put 'cYDckZRSTtQEHMWOtdrcOI8q+NRSKMCHRcRVfGZOtFAEufFSFHH/DUMw+Wbx8pP/Roc2LZV6KHOqomWr1uHFtz5kecgSAgiwJrND6xa49ZpL0bxJI20+y4MvBAQvQwwYAvwix0GUs+Yvwmff/aylIuJniCxqIlCrrhtDbimEPYpkrIgDJk9Xx8kI8hwDRpDzTDMMweTO3k+mxaED+ipV45lvevxm'@; put '/ZgE+rCIQ2bhh1+TBvVx/eXnU/qtTppPplsiWkNG/jJQ/yFgs9lQSCnBfp49H19NmYGCQkkP5j+09dFyk44unH2li9ITqWMe5/yXmUc9+GWcnZ4Pxnw5MhTBvHz4YNx+/RVKRZLz5ZlfUIhnKNBn594D+rhapRcBQyAhPg6XDhuA88/tjzB6MEqEecCglxMpiAD7W3Iwz+SfZuDP5WukQo+CMi5r'@; put 'SN2HOdCpH+B2qkMwuQb57vUuzP3CmBHkLCdDEcwzOrfHcw/frZSJXBMCabPe+fhLzFm4tKxrR7YpjkBkRDj5ZXbBiIuHoX5SXTGZKy5vGZ7vEfCaxNnf8vMffsGOPfuV8tX3PWLqtMi6vcE3FyKlOVnH3R5VLORaichVczxYNduYEeQ8wwxFMBsk18WYZx/SHLdV8lnjij5sznnv8+/UuepDcSRU'@; put 'PiIyGrBHeHAsrWpVF7jqT7MmDXHVhUPQm0zmvEgqo1CcRDLmqiLAgTw5J3K1e+jPcxbgWFZ2VZtATIIbucdNcLuNaYqs8oAVOiAixo3htxciKt5MJnJ1CCZrMOd+YSItpjEDfHiKGYpghtvDMPY/jyIlqZ5SD1/2x9uwZTue/d94KqEqlSWMeu8LI2LZY0gREhsAcz+zIje7aiSTx82J2Af17YlL'@; put 'hg2kKPPaWmlUlV6mjCpb6bf+EGCtJf9t3LpTM4nzPdRR5KxyR9v3caLbQDc2Lzdh7TwrigqFZFYZxCAeUL+FCwOvddJcUIdccoCP00n+l+/acbyKyoogiuIfpzYUweTeP/fQXVQVpaNSNck50CfzeBae+L+3cORoxj+EJBv0j4DZ7EG9JnSju8EJm82CPRtclL+MyntV42FlpYdmk4b1cRn5HPfu'@; put '1lHT2EvOTP3PAelhYBDg+yVrLdMzMjF97h+YMXchjmefqNbJG7Zxos9lbkREe5B/woM5E8OQfpie7h4hmdUCNAgHdepPCdbPVSvB+t8lIsOoRGTVFRVBEEOZpzQcwbzl6otx9cXnKRfo4yLfkVfHf4xlqzeUKSjZqG8EwiLc6HVBEVp1N8Pp4DytFmxe5sGK6bZqm93YN5P9ji85byBaNWtC7biV'@; put '0tzrW6LSOz0iEBZGD1yqgrVk5VpM+XUe+Vruo2uienmR4+q4cc7VDsTVI1MeGY6sZJJcORvY8IcVzmq8GOoRL9X7xNadQdc50LAdjdSljgaTS0Tu2+TGnM+MG+DDc89wBLP/mT3w+D23KpWqiAXBpp5vplLCdXJQl8VgCJDvZWKyB+fe5IA9kipJ0MsCmzjcHnJ9WACsmmOj79XTiPANNCE+FoP7'@; put '9cYwStHFQUAcaa5SsQGDSVu6GwQEOPUQL9t27sGUmfOwYu3GGkWIs580V35JbmEq9tuj3IlmqxkZB9zk9xZWLfeWIMAS8qeMiPJg6KgCxNZSy/+SK/gYPcCHJ6fhCGbTRil47ZkHNUKmkm8a+2FyBOTzb7wn1SYMdtu02jxo09uFnsM9J7WXxQNgTulykVznmLDxz5qV+mKCmlS3Ns4lojmQfDTZ'@; put 'P1OIpsEminS3yghwACS/fO/Zn4qZvy/C74uWIyuneuZw78nZV6/XRQ607EYXKOdN9Cbm1r56MO/LMKTuNFPJweq9FHrPI2v/I5DczIVB16vlf8mo2UiDOecLM/ZuMG6AD4/DcAQzItyOt//7OOrWTlRKi8MEIi09A0++/DbSM4+zbGQxCAL2SA/6XlGExm1NpxJM7j+5z7C5bdVvZDJfXPObhZnm'@; put 'SXK9OhQI1EsjmnwdsOlc8mcaZLJINyuFAGss+aV7/8HD+G3hEsz7cznSjx2v8cs32RfQdYgLHfuQTZzs4n+Ry5O94sjdNfM8WPc75aQVM3mlZBXMnTqdTf6XQ9Tyv2TFRFGRGz9PsCM73RJMeGt8bsMRTB7x8w/fhTO6qBXow+MSP0xGwWiLh1KckJnmZgeiEujxRX5AJRdNB8Ik00Ekc45vSCa3'@; put 'z0SzLtUyH3DWGejfuzsaplARXlqYaKqk2dcGJf+FBAL8ks3EkufvvtRDRCqX4ffFK7QXbp/MaWq30wAnugwgbmly/YNcMsgWmxkHd3ow/ysbCvKMG1wRChOG58TgG4rQoDXdcxXKf8n1xzMPE8EcH05KNGNr0Q1JMG+68kJcc+n5ygX6sDno22mz8Ol300Lh/qDEGE0UPZ7cnMw0lCbDxC+bp/JL'@; put 'bYx/k0yQZsSKdQss1fbJLAu0WnGx6EWZFdg/uVWzRoiKitKStYufZlloyTa9IcCaSiaW/HK0ffc+zP1jKRZTEM+xrBzfdZXISEfSdnUeaILFSuSynGxwJirPl5flxsyJrD3iK9fYD3jfAai/liJjPTjvtgIl819uX+XBgm+Mm2DdO1sMSTDP6tEZT99/h1KpilggfKNdv3k7Rr8m+TC9E1Tva4vV'@; put 'jRZdPTjrUhdcZNYob/GSTDf7ZM4in8wlpKkpf/fymqlwu53yxLZp3gRnk0azW8e2mp8mv+Vzwnapc14hdPJjgBFgbaXXvzIrOwfrNm/TzOBrN22tUfBOWcMwUxBex/5OdDqH7rEWijin666M98DiQ+lCdVMqzTmfW5G2x1LtDBBl9UO2+RaBhq1d6H+ti/J1qFMekhHiAJ9FP5mwaVHNXap8i3jV'@; put 'WzMkwUyhSNoxox9COOVC84nppOq4+e2IbHJgf+Llt6ie7lG/nUMa9h0C1jA3OvR1o/sQD/lsnT5diuZfU2imFEaUDmU+JXX2Q44zflFJIK1m907t0Lt7J7Rp0RRxsTHatSJk03eyl5aqjgAH7Hi1lexfuWTlOixasQZ7ySRe3XRDFfXCaiWfy3OL0LY36SLNREQq8VLHOQgXfGulXLZmuA1uoqwI'@; put 'G6P/1p2KWnTq71Gq/jgrzPkZMeNDG9L2Gtv/kueXIQmm1WrB66MfRrPGDdULbqDZNfaDzzB/8UqjX/8h0X+b3Y0ug1zodDb5P1aCYDIoZrNJ863ZtdaDNXMpJUqWpt/0C16sJapfrzbl0+ygEc4WTRsimkzootn0C9zSaBkIMKnkechz7iglR2dt5eIVa7GeKu+cyM0v4wjfbLJTbtqe5zvRvAsH'@; put 'i/8zoKe8s7Af5uKpZmxfaSGrhP+uzfLOL9tPjwAXthhyi4OKW7D/ZQUa6dM3pas9+NnALho/jbejUAEfYEMSTJ4RD4y6HkP691EvHybdiGfO+wPjJn2tq4kvnSkbAVs4lYccWoR2Z5oqTTC5JQ7S8dDfIQooWDXbivRU/7+t2mxWNEiuh64d2qAHJXBv3rgBYmNiNPM5+2uKz2bZMpatVUOAzd9e'@; put 'v0p2zcik6O+tO/dqfpVMKtMzjlFMRrlG6qqdrJy942q7Nc1lk/acl7by5JKbY4K55Gczti0XglkOvEHfXKuuG0NHFiKM8g6TB0T5Lg9B72nVOqAlWN9CFaU+sVftQJ3ubViCef7gs3HvyGuVC/ThmzPnfHvqlXeQm+e/t3udzkfDdUur4HO+C616VF6D6R0kiVozhxyn6qBrfrNhz3qOWg2MxoSt'@; put 'AClJ9dClfSt069AWzZs0REKteC34iIMtmBio5n7ixV3WvkeACaVXU8llTdMzj2Hz9t1YRbl9N2zdoZFKF82pQCz1W7rQdZATtVPoWiqZ57KSJxeCWUmggrhb6zOc6H0xMUt6Mfbvq0pgB8n+lytm0vNgbs3yJge21+WfzbAEs2XTRnj16Qe0B6JqD0IHPeD/QwnXN27dWb7k5BddIFBMMJ1EMKum'@; put 'wfR2numkyWJGYQGwdRkF//xhJdNIYEimtw9c+7x2YjzatWxGwUHtNJ/NOom1wGX5mGiK36YXKVl7EeAXYS+h5G3ZFKiTejgNm7bv0kzg23fto/rgOQF9SbGRP3TrXi6yJrgRGUfc0lm90oFCML1S1u/6bCrx2awjydhFL8L67WaVe8YpimZNsiJ1u/8tWlXuXDUOMCzB5DrNY59/hKqb1FHOtGe1'@; put '2vDlDz/jq59+rYZI5ZBAIlBTguntK/vesH7n8A56e51HEaz7gnODYeIQExWJFvQC16ltK7Rv3RwN69fTTOn8G5NNNqWr9lLnlYOsy0agNKHMy8ujwhCZVAt8PzZs2YEtO3cj9VAanDQ3grEkJLvQ+RwXGrbhSHEK/CiVj7YqfRKCWRW0Ar+vVh7y9kLEUt5hE7laqEIwNf/LEx5MfYdysOYG5/7v'@; put 'a2kalmAyEE/eexv6UUqWggJS/yi0sGZg3aZtkq7IADL1FcHkoWomcyKaudkeqvpjIR8wKxwFgdVmloacTenJ9BLHkegdiGy2ataYqmglIDIyUttVzOmlEVPju9fkzfciXphQHqUKYzuJUG7ZsZt8KvfgwKEjPk8pVFX0wuweNOvGWksX4hIo3oMTbteQcQjBrKoUArt/wzYunHONi4qkqaW9ZP/L'@; put 'A9s9mPUR5b/kh4ECi6EJ5mXDB2HU9Vcq54fJ84r9L5+kdEX7Ug8rMM3UHYIvCSajVGwyJ20mqTMP7TRpSdmP7NbP2yxbDlij2apZE3Ro0wKNqYIQm9O9hNNrTpe8m8aZ86ydZELJkd78mWV3Ijf3Lw0lm7u37dqDg0eOBp1QlkQ1qYkL7fu6kNKyWGvJVbRqyC215oVglkRZf597nU9pp84iWTvV'@; put 'Ipia/+Vsyiwyx/gJ1r2zxtAEsy1pVV5+6n7NXKeayc5MmoP3P/8Ov8xZ4JWVrHWIgK8JpneI/AKrmUxygZ2rKG/mUgtyj+uvdF0x4UzSgoT4emzSsD7qJiYgOjpKIy18XXpJp2rXqFdWRlp7yaRXQ8l9ZwtQ5vEsHEpLx+59qUQm92prNoGzP7jelthE8rXs7USLTh6Ex3Bi9JprLUuOUQhmSTT0'@; put '9Zn9bIfdVoRaSR6loscZZfa//HWiBYd2GD/BunfWGJpgRoTb8eZ/HlXSD5NNU0tXrcOLb33olZWsdYiARjAvoCjy7lWPIq/McLR0RsQrjx/xYAuZzXett1A6JP0RTe9YwsJsqFc7USOazRo1IOLZgPJw1kV8XAyiTprVhXR60fLvmkkkE0rWTPJnxj0/Px9czCGNUgVxvW/2odx74KBW2CEnN0/T'@; put 'Xvq3V9VvPTLGg+bdnGjZ3YXYRHoD46I8NbWHl9EdIZhlgKKTTay1HnorJ74k4ZO62hcaaz0MjZUJuTluTHvHjgIF8l96MTU0weRBPH7PSKrBfIZyfpg8No7CfOKlN3H4KOWxkUWXCIRFUB7MYWSy6VW9KPLKDIrN5mYreRyRf9nh3cCmJfSWu81KmsHKHB3cfZjgcNBQvTqJaNygvkY8G6UkIalO'@; put 'bdSKj0VEePhfSbg5eIjNs/wn2s7KyY3x9f55Tdz8nbXGOSdywWUYj6RnYP/BIxqh5PVh0lTydn+Qs8r1ump7Rca40aQjlWQlX8uEJL4aSGPpI3N4WT0RglkWKvrYxgE+nSkFVQt6ybCRxk/TXuujazXqBftf7t/swexP1ch/6QXD8ATz/EH9cO+t1ynph2kircP4iZMxa8Fir7xkrTMEbOFUJnIw'@; put '+4L5R4NZcrjEGyg1jJmqVwEHd5JGc4mV/DSZePJD1zgLEyA2rdemvJv1k+qgQf0kNKDyr/Xr1aFcnHGIJfM6+3R6A0zKIp6hREC9BJLXjIlXM8kYFBYWIr+gEMezsin35HHNzM3BN4fSjpJWMo1M39na78aZHX/3NCrOgyYdqBJPNzcS6nHcAxMK//vdCcH8WwZ6/dSwjZPK8zqRkMzJ8DmrhV57'@; put 'Wrl+sf/lkp+pfPBCNfJfekdteILJ1Ug4HybfeFV76FjItPXnslV4ZdxEr7xkrTMEmGB2G8z1yCtXi9wX3WeiyfWSnQ4mmiZsW2GmtfGrjjBxioqMQEJ8HFUcqktazkQkE+nkqHXeVkw8I2Cn/Jxcz9q7lNR68j2Av3sXvd4TmCx5Fx43L7z2/nl/Y3LtJZEnKJL7GBHGjGNZWgAOm7bTqPRiJn1n'@; put 'a0dBIU0IBRau0tK0swuNO7gQz6bwABFLL3RCML1I6HsdGU3azMFFaNHVQ1aQk764+u5y2b3jKU5a+V8+CEP6fv0EdJbd2aptNTzBDKPyd2889ygaNUjWzEJVG76+9+aH0DHSTIiZXL9yCgbB9KLBHMVCpvMiCnJI28vBQFbs32pSooatd4zetY3SJcWQZjMuNgbx9JdIms7aCbU04plApva4mGiq'@; put 'sR6paUbt9jCNhPJLJ5uNy3r59JJQ75rPw2S0NCEt/d3bn5IEkbfxd++2kp+95LHkcUwavflEC6nqDRPD/PwCMIHMzsklbWSOdt0zkeTgG/7LIr/JE+QjydrK8vrkPYcR11abB3WbuNG8E0eFU6L0WNLMk1YqGJHCQjCNNYMatXORNpMCf+oZU5vJyoKsdPK/HGeHs0i//vXVmRWGJ5g86H/dfDUu'@; put 'HDJASTM5R5OPm/gVZs0XM3l1Jri/jwkmwfSOzUs02Ucz85AHezZasWeDGdnpat2svOMta82kjgOMIux2RETYERURoRFSJp2sFY0mk3tUZLj2OZyCA8PD7LDbbRoRDSNtKNdp54pGxSZoYu6kU7CSO4LJVBwcU/qcHipB6C196KJqIpxgnMkqE8aiIqdGGjkC2+Eo0ohhHkVq5xGJ5PRjubn5Gplk'@; put 'H8lcCrrJzy/U9udjVSSPpbHzfuexxtYGGrV2olEHN+o0AKw2E1xkBueqA8GyegrB9ErIOOsICgDrOqgIzbu66aXSWL6ZbB7fstSDP35QJz2Rd+YoQTD79eqGJyjpOpuSVFtYA7J8zQYtmjyUHj5GkaMeCKYXK6ZFHAxkMnm0ZO0HdwB7N9hweI856AnbvX3U41ozS5/UQHJiea8Gkgkn/8YE3ruw'@; put 'rxd/dxKpZELJf05nMbnk65MDZ+Q69aJV9poDNeo2pcCd9i4kkdYyKo4NhEQKivzvX1l2j07dKgTzVDyM9I3dKrqR2TwhyQJnoTHqlNvsFvw+2YSda9RJT+SdM0oQTA4WGEvpitiEVtLk5R2k0des6eCk6weoFJss+kJATwTTi4zGh0h5yWTJSdqgY4c9ZDrnKEULfSYzUnCq+Xm7J+sQRMBO2RZq'@; put 'N3ShUVsXkpt6EFObEruzHzGR82BqK8sShRDMslAxzrbIWNJmDihCs+7km0kujXqONOeXVUcBmcfH23HiuFr+lzxjlCCYPJD/PnoPunZsSyYpNRzdeUzehYN9Pv7yB0yZOc+7SdY6QUCPBLMkNEw2zTYKHqEPBfkeZBwksrnFgoM7zMhKM14EesmxyWd9I2CPcCMxxU31wd1IIlIZVxfkisAmcDJ/'@; put 'kwY4WCbw06EmBPN0CBnjd9aQdzuXk7LrV5tppXtz6g43Zn4cbgxQq9hLZQjm5cMH4XZFy0aymW795u0YPWYCaZ9E/VTFOe7X3fVOMEsOnt+WOSiI1/m5bvLXBFIp+vwwpTo6dpi0SYo5mJccu3wODAIRFNlbhzSV9VuRprIxaSrrkC8rkUoPkUq3jkllSXSEYJZEw9ifo0ib2UWLNGfXFv/mT60O'@; put 'Uux/uWw6sG7+31kxqtOOXo9RhmC2aNJQS1fEZExFHyiONH1uzHhs3blXr3MpJPtlJIJZUkAUu0IBLcVks7DAQ9pMN47s4zJlZqQftCA/m/ZmJiqLIFABAmZ6aEcnUIBOIw9SWri0dXQtrh5E2nHKbmAUUllyiEIwS6KhxuemlJ2g60AH4pOscOnFN5Nur8xVZnB6ogPqmcd55ihDMNkhf8zoh9GM'@; put '8mJyChDVFk638t3Ps/HJt1NVG5qhx2NUglkSdKaRHBzE6TI4gvdElgfHDgKHiXCm7aUUGkctcOQL2SyJWSh/DrNT4vPk4rRCyRSsUyuJ0grF0MsKvdyzzy/8WGUnELgLwQwEyoE/Byfu7zLIQXkzi9+d/VkNqjKj49rjmQfd+PldO1km1cz4oQzBZIHeft1luPz8IUqmK+LIVq7Q8diLY7VUJ5WZ'@; put 'wLKP/xFQgWCWREmjkScDhEDaqaJCIpzHgczDZqRRNPpRIp45aRby5xTCWRI3lT9brGTqTiBC2chNuSpJS9mAtJbxQFg4WYuYT5LpW2+BOjWRhxDMmqCn/2ObdXGSNpOS+NelF6IgajPZPL5uoQfLflYvPZF3FihFMLt2aIP/PPIvJTWYLDBO5THm3Un4c/kar/xkHWQEVCOYpeFkGmkizSb7bvIM'@; put '1Agnmc+z0kxITyXfTfrLPEI+nTkSnV4aO6N+t1DS8xgikAn1XahHhDKhvgfxtT2wRxancOJyjW6Daykrko0QzIrQUeO36HjOm+lAsy5cICE4vpmswZz1iQWp29RLT+SdJUoRTK5vPPb5R5BUt46SwTBSOtI7bfWzVp1glkZa01sS4SxOQu6hlzkPCvJIy5lJVaeOmJBxqDhgiJO8F+ZSbkOPaDpL'@; put 'Y6i372GUQiiW/CgTUzxIbOBCYhJpKBPdlLDeqr1c/OVLqdewbx8DKgTTx4DqtDn2f+TE7F0GOlErwNpMdkfKyXRReqJwSlOkpnmcxa4UweQB3XfrtRg+6GwlzeQ8vmzKifn0K+9g/8HD/FWWICMQagSzNNwafaT7o4UTktMbOXmta1rO/FwP+XJyKiQyrx+yaBrP7Ayg8ASlDJFECKVhDNh3WxgR'@; put 'R4qsja9DZDKZfCmJVMbVoWTnsVQJyU6CpHxWXkLJeYRChFOegr8QzFPgUP5LTLwbXSmdUdPOpM2kGR8I30xOrr51uRt/fG9XGl/lCGbvbp3wzAN3KJkPk2eixWLFVz/+gq9++lXpiWmUwYU6wSxLTsVaTpqrFKruJZ1OqtLCpDM/x4wcIprHj5roz4wT6SbkZpnIp7PYn6+s9mRb1RFgGYRFeqim'@; put 'txtxiUQoiUzWqgf67CKCaUJ4JLk9aBk3in0oA/FQrfoognOEEMzg4B7Ms7I2s0U3NzqfQ5HmdSnS3OHfKkC2MDN++9xCZX3VjB73ylI5ghkbE423qKpPAlX3UTFnJKdh2rX3AJ5+9R0J9vHO4iCuhWBWDnyNdNJ/mj/nyfRIXDvdUeBCYR75cJ4gjecxC9VPNyE7kzSeR4E88vUszJP8nBUhzJmk'@; put '7EQkwyn/ZEwtN9X2Jo0k/XFQTjRpZsKjiWhGUI112pG1kRyQw2QyVLWTFWHp/U0IpheJ0FvzNcR5M5uTNpMvEn+8eJnJSpCbQ9Hj4+z00q2ueZxnj3IEkwf14KgbcG7/s1BQUMBflVs42Oe18ROxaOVa5cZmtAEJwayZxDTiSf5IXGnIfJJ4sjahiKI7CylSvZh8msjcToTzGK/NRDxNyMuh30gj'@; put '6ijg1Eqc+7Zm/dDz0VarmyK2vRpJUO1uIo/0IGQzd2QcmbxjSCNJfpQ2ikq1EJDs9soPRibwHv5TGBt/yE0Ipj9QNU6bfP9p1d2FzuSbGZtIwYs+1mayeXz7ag8WfK1u9LhX2koSzL49u+LJ+25HYWGhd5xKrS2U83PZ6vV48a0PtUStSg3OYIMRgukfgWnEk8gSE08T/ceaT20b3fxdFFjkKKIA'@; put 'o0JaEwktIC1nYS4R0BO8JvJJnwv5cz7V+c2jYCN6z3QXAUVURZbJqJuy6gR7sVg84GhtK7lg2aiIhz2SNY2kcYwCIqI8RBpZKwnKL0mfo9ywhpOPZDiRSDKtWdnXlTWSRBw5kTlxSPogRNJXMhWC6Sskjd1OLAW6dSVtZpOOxb6ZnDnBFwtfw3O/NGP3enWjx704KUkwVTeTc07M/IJCPENm8h17'@; put '9ntlKesgICAEMwig0ynZNMz/kccIrTk2hQNUtI9ah1hz52QtHqXUcRK5dDrY1E5rqsHgJKLppHdPRyFpP3k7fS+i7S6NgNJvRRTo4mLNKFei0WgtkTn6TqTW42Zyx6cgOwKd30JKiGLjs4c0sNDIn4nyRtro2WGmtSXMQ8EznOaJCCSRSSsF2dh4bad9iFjy8RZaM2nkVFCsgSxun87ABJLZsLbm'@; put 'UwqJ1ITr5/+EYPoZYEM1z76ZLnQf4iKXE7NmWalJ90PJPM44KUkweWD333Ydhg7oq6yZnCv7TJ05Dx98+QMPV5YgISAEM0jAV/K0XiLKuzN385I3vtFrX0qQUt6n3OUkuWPS99dCTZj5BNzUaRbtMI0rMkktboSTlGufuNHif6dpRX4OBAJCMAOBsrHOEVvbhZ7nFaFRe28J1OJruKqj0Mzjq8g8'@; put '/o365nHGRlmC2bNLB4x+6C5lo8lZe3I0IxNP/N9bSM+kUiuyBAUBJpjdB7vQvi9pwchvUBZBQBAwNgJCMI0tP3/1ni0VrXq5tLyZ0XGWat3vrSfN43tCwDzOclCWYEaE2/EmRZOrmnSdhWcmm9ykb6bgxxlz+assQUCA/eJ60Jtt216mat1wgtBlOaUgIAhUgIAQzArAkZ8oUwNpM4cVoXEHCgA6'@; put 'WdWqMrBo5vFsF6a+E07+4ezbo/6iLMFk0Y26/nJcNvxcZZOuF6cs2o+nKPF6Xr6aEfN6vwQ5MKPXBS6KOhQNpt5lJf0TBCqDgBDMyqAU2vuwNrPNmS50HcB5ZSvnm8m1x7cspeTqP6idXL3kzFCaYHZo3QIvPn4v+cazc3z1fCZKgqXLz2Qqf/ujLzH3z2W67J7qndII5vlOtOohGkzVZS3jCw0E'@; put 'hGCGhpx9Mcr4ui6yYDnRuK2ZggApo8NJ/+qy2uZ5NfsTEw5spai+EFmUJphWSuczZvRDaN6kEYqKKIRUwYVTFq3btA3PjZlAUbPiAxhoEQvBDDTicj5BwL8ICMH0L76qte7VZnYZ6KK0YmVrM7n2+PEMN34ZF07p0ioRFagISEoTTJbR1RcNxS0jLlXWTM5jdNFb0yvvfITlazfyV1kCiIAQzACC'@; put 'LacSBAKAgBDMAICs4Clq1SvWZjZq809tJpvH1/7uxvIZoWMeZxErTzAb1k/StJhhlHROVTM5+2IuX7MBL739UXHePAUvXr0OSQimXiUj/RIEqoeAEMzq4SZHEaEyedD2TCdVAXIjMvqkNvOkwvLXD2xI26927fHSc0B5gskDfo7SFfXs2lHZyj48Rgdlin7xzQ+wbvM2/ipLgBAQghkgoOU0gkCA'@; put 'EBCCGSCgFT5NfD0neg53oSFpMznH7eE9Tkx/P7y4UIPC4y49tJAgmOec2QOP3XOrsknXWahW0tDOX7Qcr737SWkZy3c/IhBGNaB7Dneg9Rll+9748dTStCAgCPgBASGYfgA1BJs0m0mb2ceJHkM8WDXHhPXzQye4xyvukCCYMVGRGEs5MeskJsClaCAMJ14vKHRQsM94bNmxxytfWfsZAZud69W6'@; put '0LGfpCnyM9TSvCAQEASYYC6aYsbO1RatbGhATionURaBhCQXCnJNyMsJjdyXJQUZEgSTBzzqOsqJeb66OTF5jBYqH7lwyQr8b4JoMRmPQCxcW7rdWW70GEa1r6WSTyAgl3MIAn5FgCN+F3xnwd71lEj7ZC16v55QGhcEFEUgZAhm6+aN8fKT95MTLiUVUDQnJo8tv6AQz78+QbSYAbpgLVYPmnZy'@; put 'oe/lLridiuZaDRCWchpBIOgIcECGy4PfvrLh4A5LyPnMBR1/6YBSCIQMweT7xouP34fO7VsrW5+cZ6ZoMQN7fXLUYFITFwbd4ITZSucWjhlYAcjZBAFfImA2wZHrwZxPwpB+mJ4aHn5yyCIICALVQSBkCCaDc+7ZvfHgHTcpHewjWszqXAbVP4a14XGJHgy6yYHYRNKOk/ZDFkFAEDAmAmwezzxC'@; put 'GsxJYcgNQZ85Y0pNeq1XBEKKYMZER2Hs848oHezDE421mH8sXan5YqrqDqCnC8oe6cZZlzrRtIMJTodUU9KTbKQvgkBVELDZLdi+0oMlv1jhyAu9oIyqYCX7CgKnQyCkCCaDMfLqi3HVxecpXdmHx+mg0pj/pbyY6zdv56+y+BEBi82DNj1d6HWhBPr4EWZpWhDwOwKWMDMWUwT59lUU4FMk5nG/'@; put 'Ay4nUBqBkCOYjRsk47VnHoLNZlU22IdnLNcoX0GlIzn5usvtVnoSB3twFFuFhBQXhtzogC2CtB5UulMWQUAQMBgC5H9ZmOsm/0s7MsT/0mDCk+7qEYGQI5gshGfuH4Uze3RRurIPj5NrlL82YSKWrFrPX2XxIwL2SA/6XuZA4/ZmMZP7EWdpWhDwFwJWMo/vWushDaYVhfliHvcXztJu6CAQkgTz'@; put 'jC7tMfrBu1BEZmSVF9Zibtq2E6PHTCAy7VB5qEEfm8XiQeOObvS7oogCfYLeHemAICAIVBUBskTM/9qK/VstlHJMzONVhU/2FwRKIxCSBNNGQTD/e+YBtGjaWHmSSYk/MX7SZMxesKS07OW7jxGIjHVj4DUO1GlsJv8tcUvwMbzSnCDgNwSsYRak7nBj4WQb8nJFe+k3oKXhkEIgJAkmS/j8Qf1w'@; put '763XKR/sYzabsS/1MJ58+S3knMgNqckd6MFarG406+JGn0vccLuEYAYafzmfIFAtBEhZyfrKBd9YsXczaS+lek+1YJSDBIHSCIQswYyNicYbzz2sfMoiFrjVasNn303FN9NmlZa/fPcxAhFRbpx9VRFSWokvpo+hleYEAb8gwKmJdorvpV+wlUZDG4GQJZgs9puuvBDXXHq+8lpMTr6ecSwLz7z6'@; put 'Dg4eORraM97PozebqbJPMzcGjHDCaqdCIBJR7mfEpXlBoPoImCixegFV7vntUxsyDpops4j4XlYfTTlSEDgVgZAmmMn1auP10Q8jMiICbsVT+VhtNsya9yfenvjVqTNAvvkcAZvdg479i9B1oAlFhRLx43OApUFBwBcIEJdkF6Jl083YulzyXvoCUmlDECiJQEgTTAbivpHXYPjg/iGhxSygSPKX'@; put '3voQ6zZvKzkH5LMfEIiIJlP5lU40aC0k0w/wSpOCQI0RsIVbsHWZmwimDQ5JS1RjPKUBQaA0AiFPMFs0aYhXnn4AFnqTVb2sIqctWrtxK14Y+75W6af0ZJDvvkNAS76e7EL/EUVUq5yiyp0S9OM7dKUlQaBmCHDOy8O73FhAaYlysswU5COm8ZohKkcLAv9EIOQJJkPyxL234uzePVBQUPBPhBTb'@; put 'YiIizWmLZs1frNjI9Dcck8WNBi0oAfvlRbBHmig6VSr86E9K0qNQQ8BqM+NYugfzJ1tx7JCFFAuhhoCMVxAIDAJCMAnnTm1b4oVH79E0mKprMTng58jRDDxNAT9HM44FZpaF8FksVg+atHfiTEpdZLFR0I+QzBCeDTL0YCNgIXJ54hhpLr+x4eh+M/nei+Yy2DKR86uLgBBMki2Trucfugs9unRQ'@; put 'vnwkT2ULJZr/Zc4CvPfZt+rObB2NzGLzoHlnJ3qeLyRTR2KRroQYAkwuc7Pc+PMHGw7uJJcoIZchNgNkuIFGQAjmScTP6EzlI4lkql4+kofLhJoDfl586wOs37w90HMuJM/HJLMFkcwzLnBTXlKIuTwkZ4EMOlgIcKWe7AyXRi4P7xFyGSw5yHlDCwEhmCflzUE+/33sHnRu3yY0tJgn65Q///q7'@; put 'yC8oDK1ZH6TRcqWf5p3d6HkB5cgkbYpU+wmSIOS0IYUAJ1LPPOzBoh8sSCOzuOS6DCnxy2CDiIAQzBLg9+7WEc88cCccDkeJrep+tFismPTNFPww/Td1B6mzkZktHrTs7kS3QW6Ex5ikZrnO5CPdUQsBTkV0aJcHi6dYcDxNAnrUkq6MRu8ICMEsISGr1YIXH7sXHdq0DAmSyabyrJwTGP2/8dhz'@; put '4GAJJOSjPxFgc3mDVk50H+ZBfG3A6ZAURv7EW9oOQQTMXCLXjN0bgGU/W8n3koN5JKAnBGeCDDmICAjBLAV+nzO64Mn7bg8JgslDt5JD4OIVa/DK+ElwuaTqTKnp4LevXFIyMcWF7kPdSGkOFHGeTOGZfsNbGg4dBMxU/pErs21facWKmRYUFRDblEUQEAQCjoAQzFKQh5oWk4cvuTFLTYIAfo2O'@; put 'd1NZSSdadKfgH4skZA8g9HIqBRGwhJlReAJY+7sZO1bRZ6nQo6CUZUhGQUAIZhmSCqWIch4+1+NNS8/E6DHjcfDw0TIQkU3+RMAW7kbTjm50PseF2AQqLVlEqkxJ/uxPyKVt1RAwm8gaY0LaXmD1b1SlZze/rIlJXDUxy3iMhYAQzDLkxRHlLzz6L3Tp0DYkIsoZAqvNhoVLVmDMu5/CReYlWQKL'@; put 'AJvMayW50GWACw3aerRUUm6nsMzASkHOZkQEOL+lk17Ktq0wY9NCK7KPc+FHIZdGlKX0WS0EhGCWI89uHdviOcqLGUp+iZqpfCKVkVwgZSTLmRZ+32yPcKNZFxfa9/EgjgKAioqIZLqFaPodeDmB4RAwkdbSQlrLzEMerJ1nwf6tRDQd4m9pOEFKh5VFQAhmOaLlCOvRD9yBXt07h0SNcoaBTeVc'@; put 'PnL0a+ORejitHGRks78RMJkouryeG+37utCknRu2CDL3idnc37BL+0ZBgJSTNtJaFuR5yM8S2LTIhpxjrLEUraVRRCj9DA0EhGBWIOd2rZrhxcfv025bqtco98LApvIlWlT5RDidElXuxSUYa05nVL+5Cx36uFGvKZnNSWOjEc1gdEbOKQjoAAE2h7sp2wWXetz4hw1H9oB8LUVrqQPRSBcEgX8g'@; put 'IATzH5CcuuGRu27GzJmaHAAAQABJREFUwL69QkaLyaM3U5Wfj778HlNnzT8VDPkWFATCIjxo0tGFNj1dqF3fRJVI+KEqfrJBEYacNCgImMkUbqYXrIyDbmxabMXeDRY4CkRjGRRhyEkFgUoiIATzNEA1bpCM/z3zIOxhYVputdPsrsTP7B5wIjcPXEZy++59SozJ6INgDXpUjAdNO7nQsqcbCfWI'@; put 'aBLHFKJpdMlK/ytCgHNaMrnMJo+drStN2LnKgtxsCuGhe5QsgoAgoG8EhGBWQj533nAlLjlvEPLz8yuxtxq7WEiLuXHrTrww9j3k5ReoMSglRuFBRAzQrFNx7syEJB4Umc5ZoymxQEpIWAYBCt4xw2QBso+Sn+VqM3autiCHosPhEWIp80MQMAoCQjArIanaCfF447lHERcbHVJR5Vzl5/tfZlO9'@; put '8qmVQEl2CSQCHmKTkdFAo/YutOjGpnOP9lB2cmojiToPpCjkXL5CgLgjl3fk96TjR4hYrjFhzzoK4DlOG4RY+gplaUcQCBgCQjArCfWVF5yLW6+9PKS0mGyGKipy4vX3P8PilWsriZTsFmgErHY3GrR0o0VXCgZq5kF4uAlOF1FQ+pNFENA7Ahy8xknSucBAxgFg51rysdxoQT5V5JHIcL1LT/on'@; put 'CJSPgBDM8rE55ZeoyAi8Pvph1E+qS9HVzlN+U/kLpy46cjQDz1LqosNp6SoP1fBjs1jdVN/cg+aURzOltQextdikCJqvYj43vHBVGwBrK6k0KsgMXpDjQepOE3atMVMFHqodXihmcNXELeMJTQSEYFZB7sMG9MF9t14XMtV9vNCwqXzZ6vV4ZdxEOIqKvJtlrVMEOI9mVJwbjdpRUFAHJ5FOyhto'@; put '59J5HkrxIlpNnYotJLploqAdK/3xS8+xI8C+TRbs3WTG8aNkGncJsQyJSSCDDBkEhGBWQdSsxXzm/jvQqV2rkCOZFosVX02ZTn8zqoCY7BpsBDiXZr1GLjSmWucpLUirSbXOObErk02P+GoGWzwhcX4mlRb6Y2169nEPDpO2cs96M9UNp1RDoq0MiTkggwxNBIRgVkHubC7mEpJP/fv2kEq+zhCx'@; put 'P2aho4hqlX+CZWs2VAE12VUXCJBWMzIKSGnlQsN2LiQ14mh0Cz3zPaRNoie/kE1diEmVTvxFKulOmZvlwtH9ZuzbbMYhSpCel03aSlGkqyJqGYcgUC4CQjDLhabsH8JsVvzr5hEYOqBvSAX8MBqcuoj9MJ8bMwEHjxwtGyDZqnsETGb2z3Sjfis3GrYmv80GoIh0fuh7RLOpe+nptIOkoORE6Fwb'@; put 'nPOz5ma7SUNpxoHt5Fe5g/LqZvH8op1kEQQEgZBBQAhmNUTdKCUJLz52X8ilLWKo2B9z5bpN5I/5MfILCquBnhyiJwTMFjabE9lsSWUpW7hQpwFpOkmzCdJ4aj6brNkUbZOeRKafvnD0N5m+TRSrwyVMsylPZdpe4OAOC47sNp3UVAqp1I/ApCeCQGAREIJZDbytVgsuGz4YI0dcGnJaTIaLSeZP'@; put 'M+fhgy++l4oa1Zg/ej2ENZvRpNms19iDlJaUW5PIZkw8aaVsxVopTn0kpnS9Si8A/SKuaCFSyZV12JG3MNeJYxScc2SviUilGZmpFhTkcT+EVAZAGnIKQUD3CAjBrKaI4mNjMPrBO9GqeRM4HI5qtmLMw9gfk5VaEyZNxqwFS4w5COl1xQiQBjM8Akio70Jy8+JAobh6QEQUVVgh/uBxUfoj1m6K'@; put '72bFOBr5V5Izm721co3sg13gQm4O56okUrnHqhHLLCKYbon+NrKUpe+CgN8QEIJZTWjNdMPt1a0THvvXLVoL7L8WSguTzByqV/7yOx9pJSVDaeyhOFY2pcfU8mh5Nus1cSGxvhuxtSlQKNKqmdO1uuic3J2vg9C6FNSZDkQoWUNpIg0lX9/OQiKUWR5kHjHj6D6O+jbheJoZhfm0o2gp1ZG7jEQQ'@; put '8BMCQjBrACwH/Nw78lqc2/+skDSVc9DP/oOH8Z833tOSsdcASjnUYAhY2Jye6CENp5v8NilQiEpVxhHhDI8ivzwbabWIaHIlIRcFfIiWU4fC9WonmVCSDyWXYszPd5LfpAnHDpmQTlrK9FQzsohcFhQU/67DUYR8l2z0DLKH2RAVGYnwsDDY6LM3RJ/f85xUia2ALGx5efnII0G6tAsy5GETAAKE'@; put 'gBDMGgLdILkeBfzcg4Ra8SFV4ccLG/tjrli7Aa+OnyRBP15QQnBtJpN6RCyRzLpEOpPcSEj2IJ4+R9E2O5nVuRQgazfZtM7k0y3BQ4GbJV7NJAXkEJ8kBTOVZSTtZP4JD7IzyHfysBkZRCozD1JKoWNmFGkeP6yllEVPCERGhCO5Xh00bVgfjVOStapyibXiEBsTjXA7kUubjYKuLKf4xTtdLi1n'@; put 'M6eYyzmRi6MZx5B6OA17DxzCngMHkXoojdLPhZaLl55kqnpfhGDWUMKsxbtgcD/ceePV9KbPr/qht1jpxjZ9zgK8+9m3xSbS0INARlwGAnRpIDKWTOl1PKhFZDO+jovM6rQt3kWaTjPCqLoQ+/hpxJMt66zxZLWLmNnLQPM0m5gPklmb85lzDkr6qBENFwFamOdEfq4ZJ46xiZs0lEQos2idTd8d'@; put 'eZKT8jTIBvXnlKQ66NS2FTrSX/PGDVA7IR6RpK3U/ODpOuGyxcXXT7F7Cn/m30ou/J3/OI+z94/3O0GEMy0jE1t27Maq9ZuxadtOHMvKKXmofBYEaoSAEMwawVd8MFf4efLe29CVkrAXFoZm6h6z2YJJ30zBjzPm+gBRaUJVBLiMpT2CUiGRZpPJZkxtIqAUuR5di4hnHJnYIz2w2oGwMCs9FAkF'@; put 'IpyauZ3LqdNDkasPMQcNOT/Pk5yBrdmshmRizqZtjWjQJlehm4Jw3CjIp0TmWUBOOnCctJM5FISTfYzzUrJPJTdyKvng5mTRFwJ1EmuhZ5cO6Nm1I1o0aYha8XGanIuoTK/b7dauA1/0mOcOK0hY8+kiTWdaegY2bNmBhUtXYc2mrRS8KmWBfYFzKLchBNMH0ucLtW2Lpnj+4bvpwWjTbgI+aNZQ'@; put 'TTAGRU6XVulnyap1huq7dFYPCHioXjpgJ4IZGcPkk9ZUTz2GSGcEE0+qQsS/hdE+VkqbZAujaHZW19GiEVEioExENULqjWw/SUY1Qso7/vWBv+hgOcn1NNqnMcdi4sg9I2WTRiR5SNqYyHeuyEF/RBId+R7SSBKJzLTgxHHgRCYlMifTdl6OCQW5bP7mFoRIMgpGWfjlqW3LZhjS/0x07dAGdWsn'@; put 'aqSSM5Twb4FYmGyGkR8nE9mde/bhtz+WYQGRzeNZ2VpfAtEHOYdaCAjB9JE8beSLOOKSYbjusgtCMuCHYWTzy5GjGXiNyklu27XXR8hKM4IA0SUKKgqz0194MdEMjy4OKIqIdmvEMyKKfqO/cCagtI+VYh2sNjcsYTwvKfDISuZBzh+vqf0IUeJff1Ew/nCSyBWv6H/vM927Pp0QvI1p7RZ/0f7X'@; put 'iGNx+381xc0T+eWAC05m73KaKFE5iEB6UFRABJL+ColA5hFZzD9Bf2S1zM+hYBtaF1AEtyOfgze49eLznK5r8rt+EeAX887tWmH4oH4aseRgHTZ7s0YxmAsTTSace/enYubvizB74RLNhzOYfZJzGw8BIZg+lBnnxnz2wTvQunnTkMuN6YWRSebOPfvx2nuf4OBhKSfpxUXWgUKATOyUUslMWk6L'@; put '1Wtu98BC5NQWRppPIp62cLdmhrfa6Hfaj9dc4pD3N1PWJYvVreV+5Ie/2UwklROLk2n/L9JZciisPiUNk5MIosftLbdJJmviBy4igW4nkUH6c1EchYO0j07vmrSMHFtRVGAm0zURy0Iz7c8+deyTKsSxJMSqfm7VrDEuHjqA0t11RGREhPbMCJS2srKYchAnm9B37d2Pb6fNwvwlK0PSQldZvGS/'@; put 'UxEQgnkqHjX6xuSqS/vWeOb+UZpJQW83ixoNrgoHm+nNd82GLXjj/c9wPFucxqsAnewqCAgCiiOQQD6VlwwbgHPPPlOLAGeTtN6fFUwyeVm+ZgM++24adu8/qPs+Kz6NDDE8IZg+FhObym+66kJcccHQkDWVs+aHTZELl67EOxO/QkGhpMHw8TST5gQBQcCACPTs0h7XX34hmlFEOJvBOWjHSEsE'@; put 'aVozMo/h66kz8ctvCzQ3DyP1X/oaWASEYPoBb35Dff7hu+gm0jBkTeVMMjnWYua8P/DR5B/J9BdcnyI/iFmaFAQEAUGgUgjEREXi6ouHYSgV5QgnR2H2szTqwr6Z/Dd/8Qp8TPf29EyKNJNFECgDASGYZYBS001cRrJbp7Z46r7bQ9pUziTTRSzzh+mz8cUP02sKqxwvCAgCgoDhEGhCidFvu/Yy'@; put 'dGrXmvx03YbTWpYHOOfj3LZzN97++Cts371PTOblARXC24Vg+kn4xabyi8hUPiRkTeUMLfulchWJz7+fhqmz5vsJbWlWEBAEBAH9IdCzaweMvPoSpFDFNyNrLctD1m63I/PYcYz/5GssXbWeFArGMvmXNy7Z7hsEhGD6BscyW0mIj6WAH4oqb9E0ZBOwMzCsyWQ/zI+/+hGzFiwuEyvZKAgIAoKA'@; put 'SggMpZyWN1x5EeKolKOK5NIrK44053KT73/+nZY7M9gplrz9knXwERCC6UcZsPauU9uWeJqiylmjaTSHbl9Cw1icyM3TyklypQhZBAFBQBBQFYFLKP3QNZcO12qEh8J9n30yWXv5yTc/YdpsDv4Rn3tV53ZVxiUEsypoVWNfq9WCERcNw/VXXBjSpnKGjknm8ewTGEeR5cso3YUsgoAgIAiohsDl'@; put 'wwdT0Y3zEGYLLaUC39/ZWvXBF99j+tw/hGSqNrGrMR4hmNUAraqHRHOt8vu4Vnk7FBQUVPVwpfbnmxBHHY6bNBmr1m9WamwyGEFAEAhtBM6nijw3XXWxRi71ntvSH5Li+zuXbB1P9/d5fy6HUzSZ/oDZMG0KwQyAqPitrkWThnjuobsQEx0V8m92bE5JS8/E2A8+x4atOwIgATmFICAICAL+RaBf'@; put 'r26468arqCpPeEhHVPP93UGBnS+P+wir1m3WCKd/kZfW9YqAEMwASYYvuvMG9MFdN10NI1Ru8Dcs/KZ7mOqWv/3Rl0Iy/Q22tC8ICAJ+RaBdq2Z4cNSNqJNYK6R97b0gc+WfoxmZ+M/r72HPAan648Ul1NZCMAMocbs9DPfecg0GU4mw/Pz8AJ5Zn6cSkqlPuUivBAFBoPII1E1MwKP/uhktmzYW'@; put 'clkCtvDwcGzYvA0vvvWhlAwugUsofRSCGWBp162dgP88fDcapiSHbJWfkpALySyJhnwWBAQBIyHAQZysNDj7zB4wUcdD0e+yInlxMvYfZ8yhFHVT4KCa67KEFgJCMAMsbyZUXdq31oJ+Qj11kRd6L8l8hypCrN+y3btZ1oKAICAI6BqB4QP74pYRl1IaOouQyzIkxfEH/Pfau59g0fI1koi9DIxU'@; put '3iQEMwjS5bdeTmVxM1V4CPWoci/8TDKPUODP2x99QSRTAn+8uMhaEBAE9IlAY7JCPUHZQZLqJAq5rEBE7I+ZevgInnl1nBbcWcGu8pNiCAjBDJJAOdLw4TtvwllndBV/zJMy8EaXc9kxSWEUpIkppxUEBIHTImCloM37br1WM41zffFgLawd5Psm//HCL+q8eE31XEGIk557v2s/BuE/MZUHAXQd'@; put 'nFIIZhCFkJJUF6MfvBP1ac2R5bJAu1FmUG3bdz/9FktXrxdIBAFBQBDQHQK9u3XCv2+7nir12ALeNyaVYWFh2nlzc3ORcSxLyy3M981cDh71gPplR1xsNNjnPyEuFvHxcZqp2ks4A91p7jPnxHxuzARs3Loz6IQ30OMP1fMJwQyi5M100XXr1BZP3Hsb+I04FEqKVQZufhs/np2jVYSQspKVQUz2'@; put 'EQQEgUAhEBFux1P/vh0d2rREILWXrJ1kYpmbl4ct23dr1dA2Uh7hQ2npyMsvu4BHGJmnE2rFUYR7I3Tt0Aad27VGUt3aGsELtFKDo8qXrFyLl9/5WKtdHih5yXmCh4AQzOBhr52Z/TEvO2+Q5igu/ph/C4Nvply7/NNvp2Hm/EV//yCfBAFBQBAIIgID+5yBO2+8OqDVeuykkTxB2so/l63Gr78v'@; put 'ws49+6tVJacWaTP7nNGFUuX1RvMmjTSCHKi64azF5OW/b74vCdiDOH8DeWohmIFEu5xzhVN+TPbnGdi3t/hjlsCISWZ+QSG+mjIdP838vcQv8lEQEAQEgcAjwNrLp/89Cu1aN2dHR793wOtfuYzchb6dNgvbdu2tFrEs3dEoKl88qG9PXDx0IJLr1UFhYWHpXfzyXbSYfoFVt40KwdSJaGonxGul'@; put 'JJs1bhiwi10nQ6+wG0wyi5wuTPn1NyKav4Z8mc0KwZIfBQFBwK8IsPbvnluuRUR4mN/9CNkczlacyT/NwIy5f6LADySQ4wBGjrgEvbp3hpPiAPwdDMRaTK5V/ixFlG/cJr6Yfp2sOmhcCKYOhMBd4AuvXctmmm8P1ytnZ2xZihFgkukmZcHM3//AJ99M1bSago0gIAgIAoFEwEL3oYfvugm9u3Wm'@; put '0/pXe8km8dRDR/DuZ99g7aZt9Dxw+W2o7P9/1UVDtdR57LLl71iAiIgITJs1j3zsf5Dk636Tqj4aFoKpDzloveAb2MC+vXDvyGu0i9zfb5M6Gvppu8IE3ET4LFq+Gu999p2UHjstYrKDICAI+BKBZo0a4On7b0cCRWT7897M5HL3vgMY+8Hnmq8la/wCsZxLfpm3XnMZRaD7VzvLZv9Minh/7KU3'@; put 'ceRoRiCGJucIEgJCMIMEfHmn5eo+119+Pq6++DzxxywFEpNMM92c1m7coqUxSj2cVmoP+SoICAKCgH8QuPLCIRhB92WL2eQ3gllMLlPx+vufEslM9bs2sTRS/Xp1IxeAEVqaI39qMnmcbxKB/u2PpT7xKS09DvmuDwSEYOpDDqf0gh3JOQl7n57dhGSegkzxFyuR8J1792MCJWTfunNvGXvIJkFA'@; put 'EBAEfIcAp/th7WXHtq38FtzDFW/SqJrZa+9OwtYde4JWVvG8AX1w+/VXgNPo+UtTy8E+fyxdqZWQLHRIDmjfzVR9tSQEU1/y+Ks3nCD32QfugAT9/AXJKR+YZPLN+IMvvseSVetO+U2+CAKCgCDgSwSaNUohgnkHmcdj/UK6ioMZnZpZfOmq9RTYGFwf/Fsp8OcSSp/nr1gANpMfy8rGoy+8rpUI'@; put '9qWspC39ICAEUz+yOKUnbA5u3byJFvQTHxvjtwv9lJMa7AvfpHLz8im6fAamzZ7vlxu/wSCR7goCgoAfEBg+qB9uufoS2CgIxh9aPTYZfzN1Jr6ZNrPcpOl+GFa5TXIp46dPJpP3V55M1tj+39sfUvL1dUHT1pYLgPzgEwSEYPoERv80wkE/Z/borJnLmXD60yfGPyPwf6v85u9yufHLbwvw5Y/T'@; put 'JcLc/5DLGQSBkEPg/tuvR/8ze/jFPM7kchOl7HmFKtwczTymG2zbtmiKZ6mUMbts+YNUc33yb6b+qhXTCLbGVjegK9YRIZg6FyinjbhoyDm47drL4XA4/HKh6xyC03ZPizA3mbF8zQa89/m3OJqhn5v0aTsvOwgCgoCuEeCk5Oyu1KpZY5/3k+9dHCM+5t1PNFcff6Yjqk7n77zxSgwfdDZcfjDZ'@; put 'M7Feu3Ernn99AuX4dFSne3KMzhEQgqlzAXH32MH81msuxcXDBkrQTzny4hs1m8x37NmH9ymN0eYdu8vZUzYLAoKAIFB5BBqlJBHBvBOJVNPb1wuTrKXkQ/4GRVRn55zwdfM1bq9Bcl28+Ph9iIuJ9rlyg+/XGZSu6NEX3tCV5rbGoEkDfyEgBPMvKPT9gd+iH7rjRpx1RlchmRWIioN/+KbFCdnn'@; put 'LVpewZ7ykyAgCAgCp0egZ9cOuP/2GxDpY1NxseXFhP9NmEQkM/iBPeUh8a+br8bQAX19rsXk8bvcbjz18ltaNhB/mOHLG5NsDwwCQjADg7NPzlInoRaevO82tKGKPwUFBT5pU8VG+M24kNwJps76nXx8ZmmfVRynjEkQEAT8j8CF5/bHTVddDKvF7FMtHge57KJ0ay+88b6uNXidKDXTMw+MovFb'@; put 'fA42l8N8+Z2PqIDGGgn08Tm6wW9QCGbwZVDpHvAbX+MGyRTdNwrJ9epoPpmVPjjEduTgHyrAiaWr12Hi5Ck4lJYeYgjIcAUBQcAXCNxM5JJJpsXHBJNLJn7/y2x88cMvuogcLw8rDvJ5iczkzRo38HmgKWPwwRff4aeZ8/xaDrO8scl2/yIgBNO/+Pq8dSZOHdq0wBP33IroqEhJX1QBwl6/zL0H'@; put 'DuKjr37E6g1bKthbfhIEBAFB4J8I+COC3Gsef21CcXCP3qOo777pKgwb2M/nZnKOJP/u51mY9PVPQc/9+U/Jy5aaIiAEs6YIBuF4b/qiB0fdCI4y91eesiAMzS+nZL/ME7l5Wo45NptzWiNZBAFBQBA4HQJMBB/71y3o1bXj6Xat0u+sKOCgnudff5eqkh3wqem9Sh2p5M5D+5+Ju2+5Bm6Xq5JH'@; put 'VG431mDOnPcHxk2aDEdRcJPLV67HsldVEBCCWRW0dLQv+xlySa9RVNKL82OKg3TFwuEbOqcDWUjlyT79dpqkMqoYLvlVEBAECAF+gX/qvtvRuX1rcrjx3cL+l3v3H8Tzb7yrVSTzXcv+aalD6xZaqiabzerTE3DJyAWLV2i116VkpE+h1UVjQjB1IYbqdYJvflddOBTXX36B5MisBIQlTeYfk1/m'@; put 'qvWbK3GU7CIICAKhioA9jGuQjyK3pJY+TbLO6Yk2bNmOl976EMezc3QPb0pSXfzfE/chJjrKp31lHJavXo+XKNCnUHJh+hRbPTQmBFMPUqhBH2xk/h1JdWMvHT5Y0hdVEkc2meecyNWizH+cMVeizCuJm+wmCIQaAlwycTRVs/F1knUmVivXbaQURZ/oMv9laTnXrZ2AFx+7B3USE3xqLWMcVq3b'@; put 'hBfefF8IZmnQFfguBFMBIfJb9j0jr8G5Z58lJLOS8mSTOWs0V6zdiE/IZM6BQLIIAoKAIFASAbs9DKMpyXqblk19aiL3Eqv/UQWfLANoMGsnxGsaTH8QzOVrSIP5tmgwS847VT4LwVREkjEUUf7AqBskEXsV5cm+UEeOZuCrKTPw28Ilmp9mFZuQ3QUBQUBRBNhC9PT9t6Mj5YL0pQ8m53/cvH0X'@; put '/jv2fUOYyJPqJGoEs1Z8nE81mJoP5hLywXzvU7IkFSk6i0J3WEIwFZJ9QnwsHqRqPz06dxBNZhXkyiZzThOycMlKfE456aSWeRXAk10FAYURYEvHE/eMpHtqe5+Oku85Bw+n4bkxEwyRo7c55cB84dF7wDkxfblwFPnsBYvw9kdfShS5L4HVSVtCMHUiCF91oy75yDxKaTXaU9SfVPupPKolA4C+'@; put '/HEGFq1YU/mDZU9BQBBQFgEu0duvV3fS3PkuvRkT1/yCQox+bTy279oLt4dzXOh36d2tIx65eyTMvlTj0nA5D+aUGb/hwy9/kDyY+hV/tXsmBLPa0On3wOR6temt+za0bNZYSGYVxcSaBQeZamaTufzrn37FsazsKrYguwsCgoBKCIy67nKtFreF2JUv08GxmfzNDz/H74tWkPZO3+bhay4ehmsu'@; put 'PZ9yCPs2VyVrMCdO/hHfT58jlXxUumhOjkUIpoJC5SE1rJ9ECYJHonmThkIyqyhj1mYy0dxFCZC//PEXLFm1vootyO6CgCCgCgJXnD8YIy4Z7vNa5Ox/OGPuQnDKNC4EodeF74fPUi3ybh3b+bxUJGMwhgKd5v25TGqR63UC1KBfQjBrAJ6eD+WbQtOG9TWS2TAlmVJAFOq5u7rsG5NMdjyf9+dS'@; put 'qgI0S3wzdSkl6ZQg4F8EzjmzB+666Wpwtg5fajD5/nLoyFGMHjOe1un+HUQNWq9fr44W4BMbE12DVv55KD+jGM/nxryL9ZQTlAuGyKIWAkIw1ZLnKaPhC5idsx+5+xZNoykk8xR4KvWFfaX478DBI/h66q+YT1Un9O0tValhyU6CgCBQSQRaNG2Ep/99O+J8TLD49Gwmf4vN5HRf0WsU9aXnDcTN'@; put 'V1/i8zKRfF/lfMSPvTgWqRTwJIt6CAjBVE+mp4yISWbLpg3x+D23ol6d2lrFn1N2kC+VQoBLc7roDXvR8jVaTfO9Bw5V6jjZSRAQBIyLQDSlf7vsvEE4b2BfhFNOTF8vnA9z3aateGXcRF36e3Oi+f9S9Di7Wvlaw8gp4rbt2oOnXn5bC3jyNbbSXvAREIIZfBn4vQdMMts0b0KazJuFZNYQbb4p'@; put 'pqVnYurMeZg5f5HcGGuIpxwuCOgVgTMoNdHVFNzSiu6dbpfLp+bxkmPml9e3KE3PAkqTprdgn6HnnIW7bx7hc+0lj58DfGb9/ifemThZd+MuKR/5XH0EhGBWHztDHamRzBZEMu+6GUl164hPZg2kxw8EKgOETVt3kNl8JlZv2FKD1uRQQUAQ0BMCyeRzePnwQeh/5hla3sciP0d480vr7n2pePGt'@; put 'D3A4TT++mLXiYvDfx+5Fg+R6Ptdesrw5wOftj76gF/XFFJ3u0tMUkL74CAEhmD4C0gjNFJPMpnjozhtRv15dIZk1FBo/GPLyC8gvczl+/HUuJU4+WsMW5XBBQBAIFgJsAh/crzcuGnIO6ifV1UiPr83C5Y2NydZPZBX57LtpyM3LL2+3gG6/44Yrcf7gs+GiIhS+XvhZxOngnnz5LeykbB2+DJ7y'@; put 'dV+lveojIASz+tgZ8ki+sDm6/FFKYdRIostrLEN2VOdoUNY88APitz+W6uYBUePBSQOCQIgg0LVDG1x5wRB0aNtSKwnp9AOpqghKvi9z8OA4MhfrwVTet2dXPHD7DbBYzH4hf/xyvp38L59+dZzcLyuaGAb/TQimwQVYne4Xk8wUPEo+mY0bpkiezOqAWOoYNpubiGxuofrC3/08G8vWbPDLjbnU'@; put 'aeWrICAI1ACBFNJUXkbmcK7UExUZEdQgSH5Rzco5gf+Nn4gNW3cGzWzcjDKPcNR8Yq14v5jGWVzsfzl5ynR88cN0qeBTg/mr90OFYOpdQn7sH2swH77zJs2JPT9fH2YZPw43IE3zmzk76i9ZuQ5TyGy+jcrAySIICAL6QoBzOg45u7dmAq5D5XXZBzBQ5vCKkOC0RVyj/PX3PtXuHZy5IpBLUt3a'@; put 'ePLeW9G0UQOqrON70ziPxautfZa0lxvIj13M44GUcGDPJQQzsHjr7mwNkutqppD2bVpCSKbvxMMPimzSRsylChU/z1mgJVT2XevSkiAgCFQHgTCbVdNWXjz0HDRrXJx6R28BJpy6KPXQEYybNJkSkO8ImCYzqU4i+effhDYtmvqNXLLM+N64eftOqsM+Qczj1ZnEBjpGCKaBhOWvrtatnYB/33Yd'@; put 'undqLyTThyB7/TPT0jMwY96flJJjEY5n5/jwDNKUICAIVAYB1pp169hWy2nZoU0L8i20wN/R4ZXpV3n7MAk7npWtlZFcuHSV39P4cEGO+269Tst36W9c2Dz+3qffYBq9ePtLS1oerrI9sAgIwQws3ro8G5so2N/m3pHX4KwzuiIvT791cXUJ4Gk6xQ8zJpv7KDn7dKo9zFpNjj6XRRAQBPyPAGvk'@; put 'WGPZs2tHSpZuD6qfZVVGyz6ZTjLd/zr3D3z3yxxkHDtelcMrvW+fM7rgtmsvA7sK+Jtc8r2QX7Ife/ENXZfHrDR4smOFCAjBrBCe0PoxNjoKo66/AoPPPlML/BHfGN/Knx8YnD9z/aZtmtl85bpNVB7O4duTSGuCgCCgIcABPJefPxhMoGKiow2Zlo01r2wy37V3P76dNguLVqz1mTYzsVacptEd'@; put 'RlWKbHRvCoSrQGRkJH6cPgcfffWjBPeEwHUqBDMEhFyVIUaE23HzVRfjQsoF5yDyIySzKuhVbl8OBOK6wxu2bMMvcxZizcatPntoVK4HspcgoC4C7EvI+SwH9OlJRSVqa2ZYPQTw1ARxNpmzOZmDYmaQRnPV+s3VtoJwAvVzzjoDwwb0BZNwbjcQ93m24uQXFODJ/3sbu/enBuScNcFcjq05AkIw'@; put 'a46hci3w2+wIKpF21UVDtchKo9+c9Sgg1kywRrOw0IF1m7dppvO1G7cJ0dSjsKRPhkCAfckHEakcROSSiSXftwKhlQsUOHzP8BLNfamHsHzNRo1o7j1wENkncivsRgxZp5pRZPgZXdqhV7dOSKZqbkwqA+kDydrLKTNYezlF7nMVSkudH4VgqiNLn46EfWXOH9QPI0dcojnEB/JG5NOB6LyxkkRz'@; put '/Zbt+HXeH1R6cquYznUuN+mefhDg0o79e3fXtHKskeNF9fsVW0H4Hl1YWIj0zGOaP+Pho+nIPJ5N7k2FGgZ2qkwUHxuDFMoUUp8wYj97NrczNoHGh/vKWTWefPltMDmWJTQQEIIZGnKu1igtZNLoRzfuO6lkWHRUpN8dwKvVSUUOYqJZbDp3YPO2XZj5+59YSWYwvZSNUwRmGYZCCDCZPOesHhqx'@; put 'DIZGTg9Q8n3Dm63C+9lr7ubv/Jk1uUwog6nN5cjxT7+dim+mzaS+SN1xPcydQPRBCGYgUDbwOfjm1ZHSejww6gbUrZ1oSEd5I8HPDwU2nbtcbkq0vAe/LVyCxZS0nSt8yCIICAJAEyp1O6hvL3A5Q458DrSpV2RQNQTYrM9BSs/+bzyOUeolWUIHASGYoSPrao+USQ+XD7v/tuvRslljyZVZbST/'@; put 'v73zfI7qStP4u2NQzhEhDBJCEogcTDAGG9tg43EoxxnP7Hpqy7sftnb/jN2q/bjhw1ZN7Uxt7YTd8YzHM2MccMAYE2whkEgiCOWcc8Sw+z6HObjBwghJ3X3vPc+tajrQ995zfu9t9dPvecPMd7RC84Z6IBqaWgW18L746pR0dPfO/CB8JwkEhABWU0qKlpnkna0b1kqGZkDDIxdNr1xA0IZ1GsaL'@; put 'qmf453//mcaMnhf8PePmDgEKTHdsPeeZ5moQ/d//9eumntyEZgPapZg5H5gH+E4CWDrHhoLtKFNy+ESFegRaPNHa7jsHzv8kgTkSQFWLdatKNHFnm7lHi0fUamTi4RzBRmh3LI2jLNHP//cPLEsUIeZeOg0Fppes4YOxJCclyJs/fFH2PbaTf+gjbC8EyuM2qIWKkXn+2bGT2kquZtblSiI8fJ6O'@; put 'BGZMICMtVbZvXmeSd0qKCiRGf2RBWPJH7YwRRv2NSCiq1rJK//Rv/8ml8ahbIzoDoMCMDndfn3WBipwfaAmjV5/bxwzzKFgScbEmIUhLHNVqbBOWz788fVY6uXweBWvwlPNFANf1siV5snvbJtNRDJnPWGJFggqF5XxRjsxxEEeOH8L/+K8/lcu1jbRfZLB77iwUmJ4ziT8GhJioPTsf0hZjL2uX'@; put 'jETftF/zB92ZjzJ0+RzFl7/4qlIuXq1Te1yb+UH4ThKIIoHEhHiz/L17+yZzn67eS8RWRrqUThQRBOrU+KGASMt/+ekvzI/f65rFzs1NAhSYbtp9XmaNPyRlxcvlH7SH+bIli017yXk5MA9y3wSsVxOdMmrqGk2sZnnlOSYF3TdJ7hAJArhel2h9xh2b18vDWzYYzyWyjRlfGQn64TsHPM740ftf'@; put 'v/mDvPPhIZYkCh9qXxyZAtMXZvL2IFGP7u/eeE22bFjDHuZRNpXNPscwenr75Iz2PT92ssp4NYdHxqI8Op7edQKpmqSzrqxEdm3dJKtLiwTeSiTsQFhy8zcB/O3Bj4Tfaq3LX779HpN6/G3OeRk9Bea8YORBUIj9J68+L89o9x+WD/HG9QAvEf7gT2pP+aaWdm0rV21iNeubWk0vdG+MkqMIOoFY'@; put 'vQaLly+V7dqicMv61bJYf5AijpveyuBYHuISST1/PHhIfs5WkMEx7BxnQoE5R4Dc/RsCyHB+af/j2sP8aUF5EXolvmET7UdYtoJ9RkZHTYmjijMXpOJstbZt62AtwWgbJ4Dnx7W2dPEi7X29Wm9rTB3d+Lg4xlYG0NY2POft9z5Wz+UB/ngNoI1nOyUKzNmS437TElio2YPwUrz5oxclf1Eu4zKn'@; put 'pRS9F+0SOr4UhjTLs1braZZrAeTK85ektaOLYjN6pvH9mSEqES6zcc1K2bZxrRRpc4ZkXRK3rQqZCe57E39rAsgWh31//c778rbWu2QbyG8hcvoFCkynzR+eyUO8oNzI32qG+ca1q0x7SX65hIf1XI4KO+ELAqJzcGhI6nTpHJnolXprae+SKcbFzQWvE/suWABRmWtE5ZZ1ZVJUsERSU1JMWRpk'@; put 'gbMgenAvAyyJoxTRz/7nHa3JWy7MFg+urWc7MwrM2ZLjfvckkJaSLD984WnZ//gjAjHDsiP3RBa1N4SKTSyjN2rM5pnqy3K2ukaFZ4surTNBKGrG8diJEf6CqhEbVpeaskLLl+ZLin7W8SOSotJjxgrDcPCDFB16rtQ2yH/892/kYk0961yGgXMQDkmBGQQrengOsTELtV7mVvmrV56T9NQU4830'@; put '8HA5NCVgl9Gx5DkxOSntunR+8Wq9VOkyek19k3T39tNb4diVgs46JZqos76s1GR/L87NkURN7LMJffRUunFBIJYbtv74yAn51e/fk76BITcmzlnOigAF5qywcaf7IYCi7KXa7u1vfvyyrNK6mZMqWrhkfj8Eo/temyAEMdE/MGgSg85pq8pqFZ0NzW0yNDwS3QHy7PNOICE+TutU5srKFYXqpSw2'@; put 'STpZGemmxiGuAybwzTtyTx8QPzZRkaJOO4f9SksQoXMYl8Q9bTJPDI4C0xNmcGMQGWkp8uOXvi97d++41QLOjZkHZ5Z2KR33KH/Uo97MOk0UunClVi6p4Gxp75TRsfHgTNiRmcTGxkhuVoZ6KZfJ6pIiLSu0TPJyssxSKBBg6RvCkptbBPA5R6xlX/+AfHj4mLz70efqtRw0f7/dIsHZzoYABeZs'@; put 'qHGfWROI0SXzx3XJ/A1dMk/jkvmsOXplR3g2kCiEDV2E+voHpb65VfsPN5iOQk2t7TI4PEqPtVcM9udxwEOZl5NtknJWFhWqhzJf8rT3d3JSkhEP9FJ6zGARHo71WGLF4mj5aTnw8RFpauvg5zjCdvD76Sgw/W5BH44fS+YrCpfKm6+/KGtXlZg+5ozh8qEhpxmyFZyI40QoBL6g2rp65KrGbiJL'@; put 'vUFv3X39MjY+Mc3efCkcBFA6LC012Sx5o3QQPntL8/MkOyNN4ygTbwlKeCkZuhIOC/jjmPBWIhwGn93O7h45Vl6psZZfSqP+SOR14Q8bem2UFJhes4hD40HbuFef2yfPPrnb/GGb0iVXbsEiAMFpb/CKjY6NSa96OVvUG4JMdXg72zp7pKun14hOfpHNzf5IqkvRz9Vi9UYi03u5CkoUPM9SMYkV'@; put 'AwgIbHbJm7znxtvPe0NIhopK1MW9VFsvxyvOyFenz0n/IBN4/GxfL4ydAtMLVnB4DPCubN+8Tt7QNpMP6hfhhC6z8ksvuBcEvtSs4MSXG0TnmIrOAf1y69J4zpa2TmlW8Qnh2dM3IAODwybWM7hEZjczMExNTpTM9DRT3BwFzvH5yc/LEZQHS9UbkjLwWQJj3LhKMDvWft4LnzdsVkziusFj3PC3'@; put 'Fj/2EENddeGS3i7rj71u/v31s8E9NnYKTI8ZxMXh4I/d4twsLWX0vDyydaP5AwcPCzc3CIR++UF0YsPyOmpvDmqGeo8uqXd290q7LrV39fSZ5/0qPPH/ExOTckNFVBA3FDFP0HqDKUk3hWROVros0sSb3KxMyc3OlJzMdI2ZTDRJGBAOEJP43EBIUkwG8YqYfk74/MAzjR8ReGw3++Niauqaad84'@; put 'rPVtkaCDzxKqP9Q2NEurCkoUSw/dz+7PexKYKwEKzLkS5P7zRgCZrHt3bTfF2TPUMwORwc1dAhCbuEE8WeGJL1FcF4jhHFHP59DQiC7lDZsvzl7NdMVjLO2hdBIE6PjklHk/vmS9IkQhHGNUEMSqhzEx4aaATE1JUs9jinokU029WNwjbhLL3YkqMuM1KcfGx1nhYIUknnNzkwCuCfyo+Ojz43Li'@; put 'lJYOun7jz2IRnusbxvs/rj/CEJoyqp8ZfA64kUCkCFBgRoo0zzMjAkgAQtzYT157QTZpm0kbKzajnfkmZwhAcMLrYsUnnkNoWfEFETqpX6ao14iySRMqNEfHx81jPMeXLrLecQ8vKEouTU5eM+0xv1YRaz2B+JK+doc3HefAeRcuXCDf+4ub48DjGL3hCx/38XFxEqcdb+JURCYkxBmRiMxteCQT'@; put '9Tn+Hx1xIDLNvnqPY2Kz8wgVkPRIOnNpz2iiuPZRPqi1o9MUPD9WXsXWrjMixzdFkgAFZiRp81wzJgDPzvef2CUv7n/CxJPRmzljdHyjEsAXsF32s2IUz60n1ApSC8uKOjy3wi70Mf4/dMOxIAjtOUIf4zX7OvbBYysQ7zx26HlDj8/HJHA3AigLhmvq2MlKFZfvm5jlO6/Pu+3L10kgkgQoMCNJ'@; put 'm+e6LwK2A9BfvvKs9j1eSW/mfdHjm+eLQKhYDD0mv9RDafBxJAjEqee7V2OS33r3Izl4+LjxvEfivDwHCcyGAAXmbKhxn4gSSNKex888/oi89MyTJiaN3syI4ufJSIAEokwAHnJ4Lk9WnZNf/O6A1De1slVjlG3C09+bAAXmvRnxHR4gcMub+bJ6M9esNBmTiJPjRgIkQAJBJoBYSzQseOeDQ/Le'@; put 'p0dM3HCQ58u5BYcABWZwbOnETJAosV+9mS+rNzM9LdVkCHOp0gnTc5Ik4BQBeCzhuTx19oL88u0D2g2rmV5Lp64A/0+WAtP/NnRuBt/TAPdCzTR//YX9pkg7ACBbmBsJkAAJ+J0AYn7htUSs5e8/+FQ+OHSUXku/G9XR8VNgOmr4IEwbbfEe2/GQaTe5RLuYIDbTZusGYX6cAwmQgFsEUOYKW3nl'@; put 'OVN+CAXRr2vhfG4k4EcCFJh+tBrHfIsAfu0v0q4mLz3zhOx5eKvWHIw3QvPWG/iABEiABDxOwHotO7Rb1VvvHpRPj37FougetxmHd28CFJj3ZsR3+IAAuqOsLyuRHzz/tKxZWcwkIB/YjEMkARIQ0zN+SkN8Dh8/KW+/94kWT+8yxfbJhgT8ToAC0+8W5PhvI4CSRvse3SEvPLVHcrRnM5bNmQR0'@; put 'GyI+IQES8AABJPBgSbymrkF+/c4HmsxT/a2uUR4YJodAArMmQIE5a3Tc0asE0KUlf1GOvPLsXtm1daO27IvjsrlXjcVxkYBjBOxy+ODQsBz4+HN5V2+DwyOOUeB0XSBAgemClR2d481l81J57bl9Ztkcnkxmmzt6MXDaJOABAjHacx71e8urzstbfzoodY0tTOLxgF04hPAQoMAMD1ce1UME4uNi'@; put 'Zc/OrfLi048Lss0hMq9fv+6hEXIoJEACQSZgl8PrGpvlt9rm8XjFGUHcJTcSCDIBCswgW5dzu0UAy1JZGWny3N5HNUbzYUlNSWZ85i06fEACJBAOAnY5HJ14Dnzyuda0PCb9g0PhOBWPSQKeI0CB6TmTcEDhJICWkwVL8403c+dDG0xB46mpKSYChRM6j00CDhJAsXQkGR4trzQF0xu1puUNDdPh'@; put 'RgKuEKDAdMXSnOdtBBCfuVbLGaF+5vqyUtOSDUKTGwmQAAnMhYAtln7uUo387sBHcqb6isZdMiRnLky5rz8JUGD6024c9TwRiNEyIfBkPv/UY1JaVGg6ATERaJ7g8jAk4BAB2zsc3Xf++OEh+fzLCpmY5I9Why4BTvUOAhSYdwDhUzcJoH7mozu2yLNP7pZlSxazULublwFnTQL3TcAm8KALz4ef'@; put 'HZWDh4/LgJYg4kYCrhOgwHT9CuD8byOQnpoiTzyyTZ7es1Py83JNSRGUFeFGAiRAAqEEUG8XZYcGNGnnM+3CgySe9s4exnOHQuJjpwlQYDptfk5+OgI243yfdgTau3uH5GZnUWhOB4qvkYCDBGxm+MjomCbwnJZ3PzosjS3trGfp4LXAKX83AQrM7+bD/3WYAL5IcjLTZa8KTXg1F+VkU2g6fD1w'@; put '6m4TwN8DeCzHxyfkq8pzRljW1DfJ16yp6/aFwdnflQAF5l3R8D9I4CYBKzSf3L1dnty1nUKTFwYJOETACstJrTJx6swF+ZN6LC9cqWOzBoeuAU51dgQoMGfHjXs5SOAboQmP5lYjNNERiDGaDl4MnHLgCYQKy9NnqzXG8oig9BBLDgXe9JzgPBGgwJwnkDyMOwTwxZOVniZ7VGTCo7lEk4HQ55x1'@; put 'NN25BjjT4BLA5xtF0ie0SDo8lhCW5y9fpbAMrsk5szARoMAME1ge1g0CyDrftW2jaT9Z8GC+ILOUnYHcsD1nGSwCNit8VJN3KtRj+f6nX0h1TS2FZbDMzNlEkAAFZgRh81TBJADvJepoPrxlvXo0d8jKFQWCbh4o2H7jxo1gTpqzIoGAELB1LIeGRzR556wc/Oy4XKptYIxlQOzLaUSPAAVm9Njz'@; put 'zAEkgM5A68qKZf+eXeY+KTHRCE3EanIjARLwDgF03sGtp7dPjlWckU+OnJD6plaWG/KOiTgSnxOgwPS5ATl8bxJY8MADUlTwoInR3L5prWRlZhiPCNtQetNeHJUbBBBfidUF3Le0dcjhExV6OykdXb1cbXDjEuAsI0iAAjOCsHkq9wjgiyw3O1N2b98sj27fIgUPLjYQIDSxtM6NBEgg/AQQXwlh'@; put 'iZWEK3UNcuhouRyvqJL+QbZ0DD99nsFVAhSYrlqe8444gcSEeNm8dpU8pW0oVxYVSEJCApfPI24FntAlAnYZfHhkVM5drJFPvvhSKs9fMhniLnHgXEkgGgQoMKNBned0mkBsbIwKzEL1am6SzevKJCcr03gz6dV0+rLg5OeJAFYNICzhtezo6jaeyiNfnpbahmbGV84TYx6GBGZCgAJzJpT4HhII'@; put 'A4Hv6Rdhji6fb9u4VnY+tEGKC5dKXFwcvZphYM1DBp8AssEhLPFDrb6pRfuEV8mhY+W6DD7EcJTgm58z9CABCkwPGoVDco9AnBZ2XlVcaEodbVm/2ng1QQFdgljqyL3rgTOeGYHQpJ3+gSE5e/GyHD5+UjvuXJUx7RnOjQRIIHoEKDCjx55nJoFvEcCyXmZ6qmzSWM1Htm6UUo3VTE5KMskJEJtM'@; put 'DPoWMr7gIAFbuxL9wesbW8wy+IlTZ6W9q4f1Kx28HjhlbxKgwPSmXTgqEpCFutyHrHMsoW9ZXybLtFMQPJ0QmsiGpdjkReISAfz4whI4tq6eXjl97qIcO1kl1VdqNWlnyiUUnCsJ+IIABaYvzMRBuk4gThODykqKZOvGNbJpzSrJy82+FW/GIu6uXx3Bnb8VlVgKHxwalktX61VUVkrV+cvSp7GV'@; put 'DB8Jru05M/8ToMD0vw05A4cI4Is2JSnRiE0UcF+7qtjEa2LJEMkNFJsOXQwBnarNAsc1PTI6KnWNrVJedU4qqi5Ia2cXe4MH1O6cVvAIUGAGz6ackSME4N1JS0mSNSuLZeuGNbK6dIVkZ6aLFZvw7nAZ3ZGLwefTDBWV45qc09jSJhVnL0jFmQuaEd4mU/rjiRsJkIC/CFBg+steHC0JTEsAYjM9'@; put 'NUU9m8tNbc3VupyODkIxMTEmZpMJQtNi44tRJGCXv3E/Nj4uTS3tJq7y1NlqqW1slskpisoomoenJoE5E6DAnDNCHoAEvEXALqOXriiQDWWluoxeIvmLsiU+Pt7ErLH0kbfs5dJo4F3HDaJyeGREvZOtGk95SSovXDa1KykqXboaONegE6DADLqFOT/nCSTEx0nh0nxZp0JzfVmJLM3PkzT1dkKI'@; put 'MiPd+csjrABwjUFQIvsb8cEoen61vkmqLlySM9VXpLW9S65pVQRuJEACwSNAgRk8m3JGJHBXAviyz8vJMvU1N6wplZLCZZoklGG8mxAAuDF28674+B8zIGC9lLjH0nen1qa8VNtglr+v1DVKT28/WzbOgCPfQgJ+J0CB6XcLcvwkMAcCSYkJUrBksSYIFZlbgdbaRCwnPE4QmlZ0zuEU3DXgBEJj'@; put 'KXG99PYPmCSdcxdrtEZlndQ3t7KrTsCvAU6PBKYjQIE5HRW+RgIOEnhA4+Iy0lJl+bIlJlmoWL2bDy7OlXR9Dd4oKzjp4XTw4giZMq4FKyohKFGfsqW9Uy6rlxJFz6/WN0vfwCC9lCHM+JAEXCRAgemi1TlnEpgBAQjOLC17VKjdhFYVL5cVBUuN4ExNSZZY7SgUKjjxmFvwCCCG0opJ3CNmF4Ky'@; put 'raNLrmgsJQqfI+O7s7uPNViDZ37OiATmRIACc074uDMJuEMAghPicmn+IikuXGo8nVhSz8pIk8SEBJM0hLqbNkudNTj9dW1YMQkhCS8ltomJCeONhIfyakOz1NQ1mWzvnn71UKr3khsJkAAJ3I0ABebdyPB1EiCBexJAhnp2ZoYs1yx1LK0jnjMvN0sLwCdLgopOiBV4NyE6ITjp6bwn0oi84U4x'@; put 'ieeTk5MyNDyifb77pKm1QwVlk/FOtnV0y8jYOG0XEcvwJCQQHAIUmMGxJWdCAlEnAKGSlBhv2lcuW5JnBCc8nrlZmaY0UrK2uUQCEcSm9XZSeIbPbLCHFZM2dhK8xzW7e3h0zIjJ5rYOaWhuM4k5EJMoJfQ1vZPhMwqPTAKOEKDAdMTQnCYJRJNAfFysZKanaomkbI3jXCRL8nLU05ltWlumJCdJ'@; put 'ghaBh/DEFhrbCTGEzd6bJ/znNgJWROLeikg8BjN4JYdHRmVA4yY7u3tNMg4EZasKSTyHx/I642dv48knJEAC80OAAnN+OPIoJEAC90kAIigxId6URUJbS9wW6/I6vJ2LsrM03jNJ63PGSZwmFEE4WdEEAYobBJRdcg+qAMWc7YZwg9AbXrcicnxiUkbHxjRecsh4Jds6u6S9s0c6e3qlW+tODg6N'@; put 'sJ+3Bcl7EiCBiBCgwIwIZp6EBEjgfgjEag/1m+IzWT2faZKtxeCzNZkIZZTS01KMKE1U8QkBivei5zrEV6ggs0IU57VC1N7bsURSmIaODefHeO09/g83+xpex9gQu3rt2jX1RE7JmIpItFccGBzWWpOD0t7VLT19A0ZEwkMJEQmhGck5mQnwHxIgARKYhgAF5jRQ+BIJkIC3CSzU5XQkGOGGzPZU'@; put 'XWZPSU785rHGeiLeEyIV74EXFPvExcbIAwu0daF6RO1ysvUKWvEZej+dWMP/W0FoKVnxaAUi7u178H57g2DEkvS1qWvGo4je2xMqHkc1iQZdbxAXiWVrCEbcQzTi8Yi+Pqr/Pz4xZUSnPS/vSYAESMCrBCgwvWoZjosESGBeCCxcuMCIy9iYhcbTiXsIzjiNC41diNcW3hSqRqQmmQx4/D/EaXJS'@; put 'wm1jwGspKlzhKYQAvKFeRgjJGzf+T8Xh6E2hqGJxSOMecYNAnND3jmu5nyn1REJM4jY5NSVTt0TmlJb8YR3R20DzCQmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQ'@; put 'AAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfs'@; put 'wdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4i+ZHtw4AAADdSURBVAAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAF'@; put 'prfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8J/D97oVzdCcK8fgAAAABJRU5ErkJggg=='; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64) filename filecode clear; %let filename=index.html; filename filecode temp lrecl=32767; data _null_; file filecode; put 'PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KICA8aGVhZD4KICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ii8+CiAgICA8dGl0bGU+RGF0YSBDb250cm9sbGVyPC90aXRsZT4KICAgIDwhLS0gPGJhc2UgaHJlZj0iLyI+IC0tPgoKICAgIDwhLS0gbWV0YSB0YWdzIC0tPgogICAgPG1l'@; put 'dGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IkNhcHR1cmUsIFJldmlldywgYW5kIEFwcHJvdmUiLz4KICAgIDxtZXRhIGl0ZW1wcm9wPSJuYW1lIiBjb250ZW50PSJEYXRhIENvbnRyb2xsZXIgZm9yIFNBU8KuIi8+CiAgICA8bWV0YSBpdGVtcHJvcD0iZGVzY3JpcHRpb24iIGNvbnRl'@; put 'bnQ9IkNhcHR1cmUsIFJldmlldywgYW5kIEFwcHJvdmUiLz4KICAgIDxtZXRhIGl0ZW1wcm9wPSJpbWFnZSIgY29udGVudD0iaHR0cHM6Ly9kb2NzLmRhdGFjb250cm9sbGVyLmlvL2ltZy9kY19iZ19Bc3NldC01QDJ4LnBuZyIvPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnVybCIgY29udGVu'@; put 'dD0iaHR0cDovL2RlbW8uZGF0YWNvbnRyb2xsZXIuaW8iLz4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp0eXBlIiBjb250ZW50PSJ3ZWJzaXRlIi8+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dGl0bGUiIGNvbnRlbnQ9IkRhdGEgQ29udHJvbGxlciBmb3IgU0FTwq4iLz4KICAgIDxtZXRhIHBy'@; put 'b3BlcnR5PSJvZzpkZXNjcmlwdGlvbiIgY29udGVudD0iQ2FwdHVyZSwgUmV2aWV3LCBhbmQgQXBwcm92ZSIvPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOmltYWdlIiBjb250ZW50PSJodHRwczovL2RvY3MuZGF0YWNvbnRyb2xsZXIuaW8vaW1nL2RjX2JnX0Fzc2V0LTVAMngucG5nIi8+Cgog'@; put 'ICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIi8+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPWVkZ2UiLz4KICAgIDxsaW5rIHJlbD0iaWNvbiIgdHlwZT0iaW1hZ2Uv'@; put 'eC1pY29uIiBocmVmPSJpbWFnZXMvZmF2aWNvbi5pY28iLz4KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN0eWxlcy5iZjFhNmY0NjU3NWE0NTRhLmNzcyI+PC9oZWFkPgoKICA8IS0tCiAgICAjIyBTQVNKUyBBZGFwdGVyIGNvbmZpZyBkZXRhaWxzICMjCgogICAgKiBhcHBMb2M6'@; put 'IFRoZSBsb2NhdGlvbiBpbiBtZXRhZGF0YSBvciBTQVMgZHJpdmUgd2hlcmUgREMgd2lsbCBiZSBkZXBsb3llZAogICAgKiBzZXJ2ZXJUeXBlOiBlaXRoZXIgU0FTOSwgU0FTVklZQSBvciBTQVNKUwogICAgKiBsb2dpbk1lY2hhbmlzbTogVXNlICdEZWZhdWx0JyBmb3IgcmVndWxhciAodXNl'@; put 'ci9wYXNzKSBsb2dpbnMsIG9yICdSZWRpcmVjdGVkJyBmb3IgMkZBL1NTTwogICAgKiBkZWJ1ZzogV2hldGhlciB0byBlbmFibGUgZGVidWcgb24gc3RhcnR1cAoKICAgICMjIFZpeWEgb25seSBzZXR0aW5ncyAjIwogICAgKiBhZG1pbkdyb3VwOiBUaGlzIGdyb3VwIHdpbGwgaGF2ZSB1bnJl'@; put 'c3RyaWN0ZWQgYWNjZXNzIChWaXlhIE9ubHkpCiAgICAqIGRjUGF0aDogVGhlIHBoeXNpY2FsIGxvY2F0aW9uIGluIHdoaWNoIHRvIGRlcGxveSB0aGUgc3RhZ2luZyBhcmVhIChWaXlhIG9ubHkpCiAgICAqIHVzZUNvbXB1dGVBcGk6IENvbm5lY3Rpb24gbWV0aG9kIChWaXlhIG9ubHkpCiAg'@; put 'ICAqIGNvbnRleHROYW1lOiBDb21wdXRlIENvbnRleHQgKFZpeWEgb25seSkKCiAgLS0+CgogIDxzYXNqcyBzZXJ2ZXJ1cmw9IiIgYXBwbG9jPSIvUHVibGljL2FwcC9kZXZ0ZXN0IiBzZXJ2ZXJ0eXBlPSJTQVNKUyIgbG9naW5tZWNoYW5pc209IlJlZGlyZWN0ZWQiIGRlYnVnPSJmYWxzZSIg'@; put 'dXNlY29tcHV0ZWFwaT0idHJ1ZSIgY29udGV4dG5hbWU9IlNBUyBKb2IgRXhlY3V0aW9uIGNvbXB1dGUgY29udGV4dCIgYWRtaW5ncm91cD0iU0FTQWRtaW5pc3RyYXRvcnMiIGRjcGF0aD0iL3RtcC9kYyIgaG90bGljZW5jZWtleT0ibm9uLWNvbW1lcmNpYWwtYW5kLWV2YWx1YXRpb24iPgog'@; put 'IDwvc2FzanM+CgogIDxib2R5IGNkcy10aGVtZT0ibGlnaHQiIGNsYXNzPSJtLTAiPgogICAgPG15LWFwcD48L215LWFwcD4KICA8c2NyaXB0IHNyYz0icnVudGltZS40MDJmYzNjZmJjN2UxYmQ0LmpzIiB0eXBlPSJtb2R1bGUiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSJwb2x5ZmlsbHMuMDZl'@; put 'N2YwNWRkN2Q5MTFhZS5qcyIgdHlwZT0ibW9kdWxlIj48L3NjcmlwdD48c2NyaXB0IHNyYz0ic2NyaXB0cy5mNDE4ZDdlNzFkYmZkMzA5LmpzIiBkZWZlcj48L3NjcmlwdD48c2NyaXB0IHNyYz0ibWFpbi42YWYwY2FiNzQ5OWYzMzg4LmpzIiB0eXBlPSJtb2R1bGUiPjwvc2NyaXB0PjwvYm9k'@; put 'eT4KPC9odG1sPgo='; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64,swap=compiled_apploc apploc) filename filecode clear; %let filename=main.6af0cab7499f3388.js; filename filecode temp lrecl=12063672; data _null_; file filecode; put 'KHNlbGYud2VicGFja0NodW5rZGF0YWNvbnRyb2xsZXI9c2VsZi53ZWJwYWNrQ2h1bmtkYXRhY29udHJvbGxlcnx8W10pLnB1c2goW1s3OTJdLHszNzQ4MjpmdW5jdGlvbihjZSl7Y2UuZXhwb3J0cz1mdW5jdGlvbihKKXt2YXIgYj17fTtmdW5jdGlvbiBEKF8pe2lmKGJbX10pcmV0dXJuIGJb'@; put 'X10uZXhwb3J0czt2YXIgcD1iW19dPXtpOl8sbDohMSxleHBvcnRzOnt9fTtyZXR1cm4gSltfXS5jYWxsKHAuZXhwb3J0cyxwLHAuZXhwb3J0cyxEKSxwLmw9ITAscC5leHBvcnRzfXJldHVybiBELm09SixELmM9YixELmQ9ZnVuY3Rpb24oXyxwLE4pe0QubyhfLHApfHxPYmplY3QuZGVmaW5l'@; put 'UHJvcGVydHkoXyxwLHtlbnVtZXJhYmxlOiEwLGdldDpOfSl9LEQucj1mdW5jdGlvbihfKXt0eXBlb2YgU3ltYm9sPCJ1IiYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoXyxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOiJNb2R1bGUifSksT2JqZWN0LmRlZmlu'@; put 'ZVByb3BlcnR5KF8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSxELnQ9ZnVuY3Rpb24oXyxwKXtpZigxJnAmJihfPUQoXykpLDgmcHx8NCZwJiYib2JqZWN0Ij09dHlwZW9mIF8mJl8mJl8uX19lc01vZHVsZSlyZXR1cm4gXzt2YXIgTj1PYmplY3QuY3JlYXRlKG51bGwpO2lmKEQucihOKSxP'@; put 'YmplY3QuZGVmaW5lUHJvcGVydHkoTiwiZGVmYXVsdCIse2VudW1lcmFibGU6ITAsdmFsdWU6X30pLDImcCYmInN0cmluZyIhPXR5cGVvZiBfKWZvcih2YXIgdyBpbiBfKUQuZChOLHcsZnVuY3Rpb24oRil7cmV0dXJuIF9bRl19LmJpbmQobnVsbCx3KSk7cmV0dXJuIE59LEQubj1mdW5jdGlv'@; put 'bihfKXt2YXIgcD1fJiZfLl9fZXNNb2R1bGU/ZnVuY3Rpb24oKXtyZXR1cm4gXy5kZWZhdWx0fTpmdW5jdGlvbigpe3JldHVybiBffTtyZXR1cm4gRC5kKHAsImEiLHApLHB9LEQubz1mdW5jdGlvbihfLHApe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoXyxw'@; put 'KX0sRC5wPSIiLEQoRC5zPSIuL3Byb2plY3RzL2ljb25zL3NyYy9pbmRleC50cyIpfSh7Ii4vcHJvamVjdHMvaWNvbnMvc3JjL2Nsci1pY29ucy1hcGkudHMiOgovKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlwKICAgICAgICAgICAgICAgICAgISoq'@; put 'KiAuL3Byb2plY3RzL2ljb25zL3NyYy9jbHItaWNvbnMtYXBpLnRzICoqKiEKICAgICAgICAgICAgICAgICAgXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyohIG5vIHN0YXRpYyBleHBvcnRzIGZvdW5kICovZnVuY3Rpb24oSixiLEQpeyJ1c2Ugc3Ry'@; put 'aWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoYiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksYi5DbGFyaXR5SWNvbnNBcGk9dm9pZCAwO3ZhciBfPUQoCi8qISAuL3V0aWxzL3NoYXBlLXRlbXBsYXRlLW9ic2VydmVyICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zaGFwZS10ZW1w'@; put 'bGF0ZS1vYnNlcnZlci50cyIpLHA9e30sTj1mdW5jdGlvbigpe2Z1bmN0aW9uIHcoKXt9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LCJpbnN0YW5jZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB3LnNpbmdsZUluc3RhbmNlfHwody5zaW5nbGVJbnN0YW5jZT1uZXcgdyksdy5zaW5n'@; put 'bGVJbnN0YW5jZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSx3LnByb3RvdHlwZS52YWxpZGF0ZU5hbWU9ZnVuY3Rpb24oRil7aWYoMD09PUYubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiU2hhcGUgbmFtZSBvciBhbGlhcyBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZyEiKTtp'@; put 'ZigvXHMvLnRlc3QoRikpdGhyb3cgbmV3IEVycm9yKCJTaGFwZSBuYW1lIG9yIGFsaWFzIG11c3Qgbm90IGNvbnRhaW4gYW55IHdoaXRlc3BhY2UgY2hhcmFjdGVycyEiKTtyZXR1cm4hMH0sdy5wcm90b3R5cGUubm9ybWFsaXplU2hhcGVOYW1lPWZ1bmN0aW9uKEYpe3JldHVybiBGLnRvTG93'@; put 'ZXJDYXNlKCl9LHcucHJvdG90eXBlLnNldEljb25UZW1wbGF0ZT1mdW5jdGlvbihGLEgpe3ZhciBSPUgudHJpbSgpO3RoaXMudmFsaWRhdGVOYW1lKEYpJiYoRj10aGlzLm5vcm1hbGl6ZVNoYXBlTmFtZShGKSxwW0ZdJiZkZWxldGUgcFtGXSxwW0ZdPVIsXy5TaGFwZVRlbXBsYXRlT2JzZXJ2'@; put 'ZXIuaW5zdGFuY2UuZW1pdENoYW5nZXMoRixSKSl9LHcucHJvdG90eXBlLnNldEljb25BbGlhc2VzPWZ1bmN0aW9uKEYsSCxSKXtmb3IodmFyIGo9MCxQPVI7ajxQLmxlbmd0aDtqKyspe3ZhciBMPVBbal07dGhpcy52YWxpZGF0ZU5hbWUoTCkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShGLEws'@; put 'e2dldDpmdW5jdGlvbigpe3JldHVybiBGW0hdfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pfX0sdy5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKEYpe2lmKCJvYmplY3QiIT10eXBlb2YgRil0aHJvdyBuZXcgRXJyb3IoJ1RoZSBhcmd1bWVudCBtdXN0IGJlIGFuIG9iamVjdCBsaXRl'@; put 'cmFsIHBhc3NlZCBpbiB0aGUgZm9sbG93aW5nIHBhdHRlcm46XG4gICAgICAgICAgICAgICAgeyAic2hhcGUtbmFtZSI6ICJzaGFwZS10ZW1wbGF0ZSIgfScpO2Zvcih2YXIgSCBpbiBGKUYuaGFzT3duUHJvcGVydHkoSCkmJnRoaXMuc2V0SWNvblRlbXBsYXRlKEgsRltIXSl9LHcucHJvdG90'@; put 'eXBlLmhhcz1mdW5jdGlvbihGKXtyZXR1cm4hIXBbdGhpcy5ub3JtYWxpemVTaGFwZU5hbWUoRildfSx3LnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oRil7aWYoIUYpcmV0dXJuIHA7aWYoInN0cmluZyIhPXR5cGVvZiBGKXRocm93IG5ldyBUeXBlRXJyb3IoIk9ubHkgc3RyaW5nIGFyZ3VtZW50'@; put 'IGlzIGFsbG93ZWQgaW4gdGhpcyBtZXRob2QuIik7cmV0dXJuIHBbdGhpcy5ub3JtYWxpemVTaGFwZU5hbWUoRildfSx3LnByb3RvdHlwZS5hbGlhcz1mdW5jdGlvbihGKXtpZigib2JqZWN0IiE9dHlwZW9mIEYpdGhyb3cgbmV3IEVycm9yKCdUaGUgYXJndW1lbnQgbXVzdCBiZSBhbiBvYmpl'@; put 'Y3QgbGl0ZXJhbCBwYXNzZWQgaW4gdGhlIGZvbGxvd2luZyBwYXR0ZXJuOlxuICAgICAgICAgICAgICAgIHsgInNoYXBlLW5hbWUiOiBbImFsaWFzLW5hbWUiLCAuLi5dIH0nKTtmb3IodmFyIEggaW4gRilpZihGLmhhc093blByb3BlcnR5KEgpKXtpZighcC5oYXNPd25Qcm9wZXJ0eShIKSl0'@; put 'aHJvdyBuZXcgRXJyb3IoJ0FuIGljb24gIicrSCsiXCIgeW91IGFyZSB0cnlpbmcgdG8gc2V0IGFsaWFzZXMgdG8gZG9lc24ndCBleGlzdCBpbiB0aGUgQ2xhcml0eSBJY29ucyBzZXRzISIpO3RoaXMuc2V0SWNvbkFsaWFzZXMocCxILEZbSF0pfX0sd30oKTtiLkNsYXJpdHlJY29uc0FwaT1O'@; put 'fSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvY2xyLWljb25zLWVsZW1lbnQudHMiOgovKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcCiAgICAgICAgICAgICAgICAgICEqKiogLi9wcm9qZWN0cy9pY29ucy9zcmMvY2xyLWljb25zLWVsZW1lbnQu'@; put 'dHMgKioqIQogICAgICAgICAgICAgICAgICBcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyohIG5vIHN0YXRpYyBleHBvcnRzIGZvdW5kICovZnVuY3Rpb24oSixiLEQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoYiwiX19l'@; put 'c01vZHVsZSIse3ZhbHVlOiEwfSksYi5DbGFyaXR5SWNvbkVsZW1lbnQ9dm9pZCAwO3ZhciBfPUQoCi8qISAuL2Nsci1pY29ucy1hcGkgKi8KIi4vcHJvamVjdHMvaWNvbnMvc3JjL2Nsci1pY29ucy1hcGkudHMiKSxwPUQoCi8qISAuL3V0aWxzL3NoYXBlLXRlbXBsYXRlLW9ic2VydmVyICov'@; put 'CiIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zaGFwZS10ZW1wbGF0ZS1vYnNlcnZlci50cyIpLE49MCx3PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTt3LmNsYXNzTmFtZT0iaXMtb2ZmLXNjcmVlbiI7dmFyIEY9ZnVuY3Rpb24oKXtyZXR1cm4gSFRNTEVsZW1lbnQuYXBwbHko'@; put 'dGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiBIKCl7dmFyIFI9Ri5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIFIuY2xySWNvblVuaXFJZD0iX2Nscl9pY29uXyIrTixOKyssUn0ib2JqZWN0Ij09dHlwZW9mIFJlZmxlY3QmJihGPWZ1bmN0aW9uKCl7cmV0dXJuIFJlZmxlY3QuY29uc3Ry'@; put 'dWN0KEhUTUxFbGVtZW50LGFyZ3VtZW50cyx0aGlzLmNvbnN0cnVjdG9yKX0pLGIuQ2xhcml0eUljb25FbGVtZW50PUgsSC5vYnNlcnZlZEF0dHJpYnV0ZXM9WyJzaGFwZSIsInNpemUiLCJ0aXRsZSJdLChILnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEhUTUxFbGVtZW50LnByb3RvdHlwZSx7'@; put 'Y29uc3RydWN0b3I6e2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpIfX0pKS5jb25zdHJ1Y3Rvcj1ILEgucHJvdG90eXBlLl9hcHBlbmRDdXN0b21UaXRsZT1mdW5jdGlvbigpe3ZhciBSPXcuY2xvbmVOb2RlKCExKTtSLmlkPXRoaXMuY2xySWNvblVuaXFJZCxSLnRleHRDb250'@; put 'ZW50PXRoaXMuY3VycmVudFRpdGxlQXR0clZhbCx0aGlzLmFwcGVuZENoaWxkKFIpfSxILnByb3RvdHlwZS5fc2V0SWNvblNpemU9ZnVuY3Rpb24oUil7IU51bWJlcihSKXx8TnVtYmVyKFIpPDA/KHRoaXMuc3R5bGUud2lkdGg9bnVsbCx0aGlzLnN0eWxlLmhlaWdodD1udWxsKToodGhpcy5z'@; put 'dHlsZS53aWR0aD1SKyJweCIsdGhpcy5zdHlsZS5oZWlnaHQ9UisicHgiKX0sSC5wcm90b3R5cGUuX25vcm1hbGl6ZVNoYXBlPWZ1bmN0aW9uKFIpe3JldHVybiBSLnNwbGl0KC9ccy8pWzBdLnRvTG93ZXJDYXNlKCl9LEgucHJvdG90eXBlLmNvbm5lY3RlZENhbGxiYWNrPWZ1bmN0aW9uKCl7'@; put 'dmFyIFI9dGhpcztpZih0aGlzLmdldEF0dHJpYnV0ZSgicm9sZSIpfHx0aGlzLnNldEF0dHJpYnV0ZSgicm9sZSIsIm5vbmUiKSx0aGlzLmhhc0F0dHJpYnV0ZSgic2l6ZSIpKXt2YXIgaj10aGlzLmdldEF0dHJpYnV0ZSgic2l6ZSIpO3RoaXMuY3VycmVudFNpemVBdHRyVmFsIT09aiYmKHRo'@; put 'aXMuY3VycmVudFNpemVBdHRyVmFsPWosdGhpcy5fc2V0SWNvblNpemUoaikpfWlmKHRoaXMuaGFzQXR0cmlidXRlKCJzaGFwZSIpKXt2YXIgUD10aGlzLl9ub3JtYWxpemVTaGFwZSh0aGlzLmdldEF0dHJpYnV0ZSgic2hhcGUiKSk7aWYodGhpcy5fc2hhcGVUZW1wbGF0ZVN1YnNjcmlwdGlv'@; put 'bj1wLlNoYXBlVGVtcGxhdGVPYnNlcnZlci5pbnN0YW5jZS5zdWJzY3JpYmVUbyhQLGZ1bmN0aW9uKEIpe1IuX2luamVjdFRlbXBsYXRlKEIpfSksdGhpcy5jdXJyZW50U2hhcGVBdHRyVmFsPVAsIV8uQ2xhcml0eUljb25zQXBpLmluc3RhbmNlLmhhcyh0aGlzLmN1cnJlbnRTaGFwZUF0dHJW'@; put 'YWwpKXJldHVybiB2b2lkIHRoaXMuX2luamVjdEVycm9yVGVtcGxhdGUoKTt2YXIgTD1fLkNsYXJpdHlJY29uc0FwaS5pbnN0YW5jZS5nZXQodGhpcy5jdXJyZW50U2hhcGVBdHRyVmFsKTtpZihMPT09dGhpcy5jdXJyZW50U2hhcGVUZW1wbGF0ZSlyZXR1cm47dGhpcy5jdXJyZW50U2hhcGVU'@; put 'ZW1wbGF0ZT1MfWlmKHRoaXMuaGFzQXR0cmlidXRlKCJ0aXRsZSIpKXt2YXIgWT10aGlzLmdldEF0dHJpYnV0ZSgidGl0bGUiKTtpZih0aGlzLmN1cnJlbnRUaXRsZUF0dHJWYWwhPT1ZJiYodGhpcy5jdXJyZW50VGl0bGVBdHRyVmFsPVkpLCF0aGlzLmN1cnJlbnRTaGFwZUF0dHJWYWwpcmV0'@; put 'dXJufXRoaXMuX2luamVjdFRlbXBsYXRlKCl9LEgucHJvdG90eXBlLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjaz1mdW5jdGlvbihSLGosUCl7dmFyIEw9dGhpcztpZigic2l6ZSI9PT1SJiZ0aGlzLl9zZXRJY29uU2l6ZShQKSwic2hhcGUiPT09Uil7aWYodGhpcy5jdXJyZW50U2hhcGVBdHRy'@; put 'VmFsPXRoaXMuX25vcm1hbGl6ZVNoYXBlKFApLHRoaXMuX3NoYXBlVGVtcGxhdGVTdWJzY3JpcHRpb24mJih0aGlzLl9zaGFwZVRlbXBsYXRlU3Vic2NyaXB0aW9uKCksdGhpcy5fc2hhcGVUZW1wbGF0ZVN1YnNjcmlwdGlvbj1wLlNoYXBlVGVtcGxhdGVPYnNlcnZlci5pbnN0YW5jZS5zdWJz'@; put 'Y3JpYmVUbyh0aGlzLmN1cnJlbnRTaGFwZUF0dHJWYWwsZnVuY3Rpb24oWSl7TC5faW5qZWN0VGVtcGxhdGUoWSl9KSksIV8uQ2xhcml0eUljb25zQXBpLmluc3RhbmNlLmhhcyh0aGlzLmN1cnJlbnRTaGFwZUF0dHJWYWwpKXJldHVybiB2b2lkIHRoaXMuX2luamVjdEVycm9yVGVtcGxhdGUo'@; put 'KTt0aGlzLmN1cnJlbnRTaGFwZVRlbXBsYXRlPV8uQ2xhcml0eUljb25zQXBpLmluc3RhbmNlLmdldCh0aGlzLmN1cnJlbnRTaGFwZUF0dHJWYWwpfSJ0aXRsZSI9PT1SJiYodGhpcy5jdXJyZW50VGl0bGVBdHRyVmFsPVAsIXRoaXMuY3VycmVudFNoYXBlQXR0clZhbCl8fHRoaXMuX2luamVj'@; put 'dFRlbXBsYXRlKCl9LEgucHJvdG90eXBlLmRpc2Nvbm5lY3RlZENhbGxiYWNrPWZ1bmN0aW9uKCl7dGhpcy5fc2hhcGVUZW1wbGF0ZVN1YnNjcmlwdGlvbiYmdGhpcy5fc2hhcGVUZW1wbGF0ZVN1YnNjcmlwdGlvbigpfSxILnByb3RvdHlwZS5fc2V0QXJpYUxhYmVsbGVkQnk9ZnVuY3Rpb24o'@; put 'KXt2YXIgUj10aGlzLmdldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbGxlZGJ5IiksUD10aGlzLnF1ZXJ5U2VsZWN0b3IoInN2ZyIpfHx0aGlzO1I/UiYmUi5pbmRleE9mKHRoaXMuY2xySWNvblVuaXFJZCk8MCYmUC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWxsZWRieSIsUisiICIrdGhpcy5jbHJJ'@; put 'Y29uVW5pcUlkKTpQLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbGxlZGJ5Iix0aGlzLmNsckljb25VbmlxSWQpfSxILnByb3RvdHlwZS5faW5qZWN0VGVtcGxhdGU9ZnVuY3Rpb24oUil7UiYmUiE9PXRoaXMuY3VycmVudFNoYXBlVGVtcGxhdGUmJih0aGlzLmN1cnJlbnRTaGFwZVRlbXBsYXRl'@; put 'PVIpLHRoaXMuaW5uZXJIVE1MPXRoaXMuY3VycmVudFNoYXBlVGVtcGxhdGUsdGhpcy5jdXJyZW50VGl0bGVBdHRyVmFsJiYodGhpcy5fc2V0QXJpYUxhYmVsbGVkQnkoKSx0aGlzLl9hcHBlbmRDdXN0b21UaXRsZSgpKX0sSC5wcm90b3R5cGUuX2luamVjdEVycm9yVGVtcGxhdGU9ZnVuY3Rp'@; put 'b24oKXt0aGlzLmN1cnJlbnRTaGFwZVRlbXBsYXRlPV8uQ2xhcml0eUljb25zQXBpLmluc3RhbmNlLmdldCgiZXJyb3IiKSx0aGlzLl9pbmplY3RUZW1wbGF0ZSgpfX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL2luZGV4LnRzIjoKLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq'@; put 'KioqKiEqXAogICAgICAgICAgICAgICAgICAhKioqIC4vcHJvamVjdHMvaWNvbnMvc3JjL2luZGV4LnRzICoqKiEKICAgICAgICAgICAgICAgICAgXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qISBubyBzdGF0aWMgZXhwb3J0cyBmb3VuZCAqL2Z1bmN0aW9uKEos'@; put 'YixEKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGIuQ2xhcml0eUljb25zPXZvaWQgMDt2YXIgXz1EKAovKiEgLi9jbHItaWNvbnMtYXBpICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy9jbHItaWNvbnMtYXBpLnRzIikscD1E'@; put 'KAovKiEgLi9jbHItaWNvbnMtZWxlbWVudCAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvY2xyLWljb25zLWVsZW1lbnQudHMiKSxOPUQoCi8qISAuL3NoYXBlcy9jb3JlLXNoYXBlcyAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2NvcmUtc2hhcGVzLnRzIiksdz1fLkNsYXJpdHlJ'@; put 'Y29uc0FwaS5pbnN0YW5jZTtiLkNsYXJpdHlJY29ucz13LHcuYWRkKE4uQ29yZVNoYXBlcyksdHlwZW9mIHdpbmRvdzwidSImJih3aW5kb3cuaGFzT3duUHJvcGVydHkoIkNsYXJpdHlJY29ucyIpfHwod2luZG93LkNsYXJpdHlJY29ucz13KSxjdXN0b21FbGVtZW50cy5nZXQoImNsci1pY29u'@; put 'Iil8fGN1c3RvbUVsZW1lbnRzLmRlZmluZSgiY2xyLWljb24iLHAuQ2xhcml0eUljb25FbGVtZW50KSl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29yZS1zaGFwZXMudHMiOgovKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXAog'@; put 'ICAgICAgICAgICAgICAgICAhKioqIC4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9jb3JlLXNoYXBlcy50cyAqKiohCiAgICAgICAgICAgICAgICAgIFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyohIG5vIHN0YXRpYyBleHBvcnRzIGZv'@; put 'dW5kICovZnVuY3Rpb24oSixiLEQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoYiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksYi5Db3JlU2hhcGVzPWIuQ2xyU2hhcGVBcnJvdz1iLkNsclNoYXBlU3RlcEZvcndhcmQyPWIuQ2xyU2hhcGVFeWVIaWRlPWIuQ2xyU2hhcGVF'@; put 'eWU9Yi5DbHJTaGFwZUV2ZW50PWIuQ2xyU2hhcGVDYWxlbmRhcj1iLkNsclNoYXBlQW5nbGVEb3VibGU9Yi5DbHJTaGFwZVZpZXdDb2x1bW5zPWIuQ2xyU2hhcGVTZWFyY2g9Yi5DbHJTaGFwZVZtQnVnPWIuQ2xyU2hhcGVGaWx0ZXJHcmlkQ2lyY2xlPWIuQ2xyU2hhcGVGaWx0ZXJHcmlkPWIu'@; put 'Q2xyU2hhcGVFbGxpcHNpc1ZlcnRpY2FsPWIuQ2xyU2hhcGVFbGxpcHNpc0hvcml6b250YWw9Yi5DbHJTaGFwZUNsb3VkPWIuQ2xyU2hhcGVJbWFnZT1iLkNsclNoYXBlQmVsbD1iLkNsclNoYXBlRm9sZGVyT3Blbj1iLkNsclNoYXBlRm9sZGVyPWIuQ2xyU2hhcGVBbmdsZT1iLkNsclNoYXBl'@; put 'VXNlcj1iLkNsclNoYXBlQmFycz1iLkNsclNoYXBlSGVscEluZm89Yi5DbHJTaGFwZVdhcm5pbmdTdGFuZGFyZD1iLkNsclNoYXBlRXJyb3JTdGFuZGFyZD1iLkNsclNoYXBlU3VjY2Vzc1N0YW5kYXJkPWIuQ2xyU2hhcGVJbmZvU3RhbmRhcmQ9Yi5DbHJTaGFwZUluZm9DaXJjbGU9Yi5DbHJT'@; put 'aGFwZUNoZWNrQ2lyY2xlPWIuQ2xyU2hhcGVFeGNsYW1hdGlvbkNpcmNsZT1iLkNsclNoYXBlRXhjbGFtYXRpb25UcmlhbmdsZT1iLkNsclNoYXBlVGltZXM9Yi5DbHJTaGFwZUNoZWNrPWIuQ2xyU2hhcGVDb2c9Yi5DbHJTaGFwZUhvbWU9Yi5DbHJTaGFwZVVua25vd25TdGF0dXM9dm9pZCAw'@; put 'O3ZhciBfPUQoCi8qISAuLi91dGlscy9kZXNjcmlwdG9yLWNvbmZpZyAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvZGVzY3JpcHRvci1jb25maWcudHMiKSxwPUQoCi8qISAuLi91dGlscy9zdmctdGFnLWdlbmVyYXRvciAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3Zn'@; put 'LXRhZy1nZW5lcmF0b3IudHMiKTtiLkNsclNoYXBlVW5rbm93blN0YXR1cz0oMCxwLmNsckljb25TVkcpKCc8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBjeD0iMTcuNTgiIGN5PSIyNi4yMyIgcj0iMS40Ii8+XG4gICAgICAgICAgICAgICAgPHBh'@; put 'dGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yNC43LDEzYTUuMTgsNS4xOCwwLDAsMC0yLjE2LTMuNTYsNy4yNiw3LjI2LDAsMCwwLTUuNzEtMS4wOUExMS4zNCwxMS4zNCwwLDAsMCwxMiwxMC40NCwxLDEsMCwxLDAsMTMuMjYsMTJhOS4zMiw5LjMy'@; put 'LDAsMCwxLDMuOTQtMS43Miw1LjI5LDUuMjksMCwwLDEsNC4xNi43NCwzLjIxLDMuMjEsMCwwLDEsMS4zNSwyLjE5Yy4zMywyLjY5LTMuMTksMy43NS01LjMyLDQuMTRsLS44Mi4xNXY0LjM2YTEsMSwwLDAsMCwyLDBWMTkuMTdDMjQuNjEsMTcuNzksMjQuODgsMTQuNDEsMjQuNywxM1oiLz4n'@; put 'KSxiLkNsclNoYXBlSG9tZT0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMzLjcxLDE3LjI5bC0xNS0xNWExLDEsMCwwLDAtMS40MSwwbC0xNSwxNWExLDEsMCwwLDAsMS40MSwxLjQxTDE4LDQuNDEsMzIuMjks'@; put 'MTguNzFhMSwxLDAsMCwwLDEuNDEtMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI4LDMyaC01VjIySDEzVjMySDhWMThMNiwyMFYzMmEyLDIsMCwwLDAsMiwyaDdWMjRoNlYzNGg3YTIsMiwwLDAs'@; put 'MCwyLTJWMTkuNzZsLTItMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzMsMTlhMSwxLDAsMCwxLS43MS0uMjlMMTgsNC40MSwzLjcxLDE4LjcxYTEsMSwwLDAsMS0xLjQxLTEuNDFsMTUtMTVhMSwxLDAsMCwx'@; put 'LDEuNDEsMGwxNSwxNUExLDEsMCwwLDEsMzMsMTlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTE4LDcuNzksNiwxOS44M1YzMmEyLDIsMCwwLDAsMiwyaDdWMjRoNlYzNGg3YTIsMiwwLDAsMCwyLTJWMTkuNzZa'@; put 'Ii8+JyksYi5DbHJTaGFwZUNvZz0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LjEsMTFjLTMuOSwwLTcsMy4xLTcsN3MzLjEsNyw3LDdjMy45LDAsNy0zLjEsNy03UzIyLDExLDE4LjEsMTF6IE0xOC4xLDIz'@; put 'Yy0yLjgsMC01LTIuMi01LTVzMi4yLTUsNS01YzIuOCwwLDUsMi4yLDUsNVMyMC45LDIzLDE4LjEsMjN6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMi44LDE0LjdMMzAsMTMuOGwtMC42LTEuNWwxLjQt'@; put 'Mi42YzAuMy0wLjYsMC4yLTEuNC0wLjMtMS45bC0yLjQtMi40Yy0wLjUtMC41LTEuMy0wLjYtMS45LTAuM2wtMi42LDEuNGwtMS41LTAuNmwtMC45LTIuOEMyMSwyLjUsMjAuNCwyLDE5LjcsMmgtMy40Yy0wLjcsMC0xLjMsMC41LTEuNCwxLjJMMTQsNmMtMC42LDAuMS0xLjEsMC4zLTEuNiww'@; put 'LjZMOS44LDUuMkM5LjIsNC45LDguNCw1LDcuOSw1LjVMNS41LDcuOUM1LDguNCw0LjksOS4yLDUuMiw5LjhsMS4zLDIuNWMtMC4yLDAuNS0wLjQsMS4xLTAuNiwxLjZsLTIuOCwwLjlDMi41LDE1LDIsMTUuNiwyLDE2LjN2My40YzAsMC43LDAuNSwxLjMsMS4yLDEuNUw2LDIyLjFsMC42LDEu'@; put 'NWwtMS40LDIuNmMtMC4zLDAuNi0wLjIsMS40LDAuMywxLjlsMi40LDIuNGMwLjUsMC41LDEuMywwLjYsMS45LDAuM2wyLjYtMS40bDEuNSwwLjZsMC45LDIuOWMwLjIsMC42LDAuOCwxLjEsMS41LDEuMWgzLjRjMC43LDAsMS4zLTAuNSwxLjUtMS4xbDAuOS0yLjlsMS41LTAuNmwyLjYsMS40'@; put 'YzAuNiwwLjMsMS40LDAuMiwxLjktMC4zbDIuNC0yLjRjMC41LTAuNSwwLjYtMS4zLDAuMy0xLjlsLTEuNC0yLjZsMC42LTEuNWwyLjktMC45YzAuNi0wLjIsMS4xLTAuOCwxLjEtMS41di0zLjRDMzQsMTUuNiwzMy41LDE0LjksMzIuOCwxNC43eiBNMzIsMTkuNGwtMy42LDEuMUwyOC4zLDIx'@; put 'Yy0wLjMsMC43LTAuNiwxLjQtMC45LDIuMWwtMC4zLDAuNWwxLjgsMy4zbC0yLDJsLTMuMy0xLjhsLTAuNSwwLjNjLTAuNywwLjQtMS40LDAuNy0yLjEsMC45bC0wLjUsMC4xTDE5LjQsMzJoLTIuOGwtMS4xLTMuNkwxNSwyOC4zYy0wLjctMC4zLTEuNC0wLjYtMi4xLTAuOWwtMC41LTAuM2wt'@; put 'My4zLDEuOGwtMi0ybDEuOC0zLjNsLTAuMy0wLjVjLTAuNC0wLjctMC43LTEuNC0wLjktMi4xbC0wLjEtMC41TDQsMTkuNHYtMi44bDMuNC0xbDAuMi0wLjVjMC4yLTAuOCwwLjUtMS41LDAuOS0yLjJsMC4zLTAuNUw3LjEsOS4xbDItMmwzLjIsMS44bDAuNS0wLjNjMC43LTAuNCwxLjQtMC43'@; put 'LDIuMi0wLjlsMC41LTAuMkwxNi42LDRoMi44bDEuMSwzLjVMMjEsNy43YzAuNywwLjIsMS40LDAuNSwyLjEsMC45bDAuNSwwLjNsMy4zLTEuOGwyLDJsLTEuOCwzLjNsMC4zLDAuNWMwLjQsMC43LDAuNywxLjQsMC45LDIuMWwwLjEsMC41bDMuNiwxLjFWMTkuNHoiLz5cbiAgICAgICAgICAg'@; put 'ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMS4xLDE4YzAsMy45LDMuMSw3LDcsN2MzLjksMCw3LTMuMSw3LTdzLTMuMS03LTctN0MxNC4yLDExLDExLjEsMTQuMSwxMS4xLDE4eiBNMjMuMSwxOGMwLDIu'@; put 'OC0yLjIsNS01LDVjLTIuOCwwLTUtMi4yLTUtNXMyLjItNSw1LTVDMjAuOSwxMywyMy4xLDE1LjIsMjMuMSwxOHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMi44LDE0LjdM'@; put 'MzAsMTMuOGwtMC4xLTAuM2MtMC44LDAtMS42LTAuMi0yLjQtMC40YzAuMywwLjYsMC42LDEuMywwLjgsMS45bDAuMSwwLjVsMy42LDEuMXYyLjhsLTMuNiwxLjFMMjguMywyMWMtMC4zLDAuNy0wLjYsMS40LTAuOSwyLjFsLTAuMywwLjVsMS44LDMuM2wtMiwybC0zLjMtMS44bC0wLjUsMC4z'@; put 'Yy0wLjcsMC40LTEuNCwwLjctMi4xLDAuOWwtMC41LDAuMUwxOS40LDMyaC0yLjhsLTEuMS0zLjZMMTUsMjguM2MtMC43LTAuMy0xLjQtMC42LTIuMS0wLjlsLTAuNS0wLjNsLTMuMywxLjhsLTItMmwxLjgtMy4zbC0wLjMtMC41Yy0wLjQtMC43LTAuNy0xLjQtMC45LTIuMWwtMC4xLTAuNUw0'@; put 'LDE5LjR2LTIuOGwzLjQtMWwwLjItMC41YzAuMi0wLjgsMC41LTEuNSwwLjktMi4ybDAuMy0wLjVMNy4xLDkuMWwyLTJsMy4yLDEuOGwwLjUtMC4zYzAuNy0wLjQsMS40LTAuNywyLjItMC45bDAuNS0wLjJMMTYuNiw0aDIuOGwxLjEsMy41TDIxLDcuN2MwLjcsMC4yLDEuMywwLjUsMS45LDAu'@; put 'OGMtMC4zLTAuOC0wLjQtMS42LTAuNC0yLjVsLTAuNC0wLjJsLTAuOS0yLjhDMjEsMi41LDIwLjQsMiwxOS43LDJoLTMuNGMtMC43LDAtMS4zLDAuNS0xLjQsMS4yTDE0LDZjLTAuNiwwLjEtMS4xLDAuMy0xLjYsMC42TDkuOCw1LjJDOS4yLDQuOSw4LjQsNSw3LjksNS41TDUuNSw3LjlDNSw4'@; put 'LjQsNC45LDkuMiw1LjIsOS44bDEuMywyLjVjLTAuMiwwLjUtMC40LDEuMS0wLjYsMS42bC0yLjgsMC45QzIuNSwxNSwyLDE1LjYsMiwxNi4zdjMuNGMwLDAuNywwLjUsMS4zLDEuMiwxLjVMNiwyMi4xbDAuNiwxLjVsLTEuNCwyLjZjLTAuMywwLjYtMC4yLDEuNCwwLjMsMS45bDIuNCwyLjRj'@; put 'MC41LDAuNSwxLjMsMC42LDEuOSwwLjNsMi42LTEuNGwxLjUsMC42bDAuOSwyLjljMC4yLDAuNiwwLjgsMS4xLDEuNSwxLjFoMy40YzAuNywwLDEuMy0wLjUsMS41LTEuMWwwLjktMi45bDEuNS0wLjZsMi42LDEuNGMwLjYsMC4zLDEuNCwwLjIsMS45LTAuM2wyLjQtMi40YzAuNS0wLjUsMC42'@; put 'LTEuMywwLjMtMS45bC0xLjQtMi42bDAuNi0xLjVsMi45LTAuOWMwLjYtMC4yLDEuMS0wLjgsMS4xLTEuNXYtMy40QzM0LDE1LjYsMzMuNSwxNC45LDMyLjgsMTQuN3oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMuNywxNS40aC01LjN2MC4xbDMuNiwx'@; put 'LjF2Mi44bC0zLjYsMS4xTDI4LjMsMjFjLTAuMywwLjctMC42LDEuNC0wLjksMi4xbC0wLjMsMC41bDEuOCwzLjNsLTIsMmwtMy4zLTEuOGwtMC41LDAuM2MtMC43LDAuNC0xLjQsMC43LTIuMSwwLjlsLTAuNSwwLjFMMTkuNCwzMmgtMi44bC0xLjEtMy42TDE1LDI4LjNjLTAuNy0wLjMtMS40'@; put 'LTAuNi0yLjEtMC45bC0wLjUtMC4zbC0zLjMsMS44bC0yLTJsMS44LTMuM2wtMC4zLTAuNWMtMC40LTAuNy0wLjctMS40LTAuOS0yLjFsLTAuMS0wLjVMNCwxOS40di0yLjhsMy40LTFsMC4yLTAuNWMwLjItMC44LDAuNS0xLjUsMC45LTIuMmwwLjMtMC41TDcuMSw5LjFsMi0ybDMuMiwxLjhs'@; put 'MC41LTAuM2MwLjctMC40LDEuNC0wLjcsMi4yLTAuOWwwLjUtMC4yTDE2LjYsNGgyLjhsMS4xLDMuNGwxLjQtMi4zbC0wLjYtMkMyMSwyLjQsMjAuNCwyLDE5LjcsMmgtMy40Yy0wLjcsMC0xLjMsMC41LTEuNCwxLjJMMTQsNmMtMC42LDAuMS0xLjEsMC4zLTEuNiwwLjZMOS44LDUuMkM5LjIs'@; put 'NC45LDguNCw1LDcuOSw1LjVMNS41LDcuOUM1LDguNCw0LjksOS4yLDUuMiw5LjhsMS4zLDIuNWMtMC4yLDAuNS0wLjQsMS4xLTAuNiwxLjZsLTIuOCwwLjlDMi41LDE1LDIsMTUuNiwyLDE2LjN2My40YzAsMC43LDAuNSwxLjMsMS4yLDEuNUw2LDIyLjFsMC42LDEuNWwtMS40LDIuNmMtMC4z'@; put 'LDAuNi0wLjIsMS40LDAuMywxLjlsMi40LDIuNGMwLjUsMC41LDEuMywwLjYsMS45LDAuM2wyLjYtMS40bDEuNSwwLjZsMC45LDIuOWMwLjIsMC42LDAuOCwxLjEsMS41LDEuMWgzLjRjMC43LDAsMS4zLTAuNSwxLjUtMS4xbDAuOS0yLjlsMS41LTAuNmwyLjYsMS40YzAuNiwwLjMsMS40LDAu'@; put 'MiwxLjktMC4zbDIuNC0yLjRjMC41LTAuNSwwLjYtMS4zLDAuMy0xLjlsLTEuNC0yLjZsMC42LTEuNWwyLjktMC45YzAuNi0wLjIsMS4xLTAuOCwxLjEtMS41di0zLjRDMzQsMTYsMzMuOSwxNS43LDMzLjcsMTUuNHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTE4LjEsMjNjLTIuOCwwLTUtMi4yLTUtNXMyLjItNSw1LTVjMC4yLDAsMC41LDAsMC43LDAuMWMtMC4yLTAuNi0wLjMtMS4zLTAuMi0yaC0wLjVjLTMuOSwwLTcsMy4xLTcsN2MwLDMuOSwzLjEsNyw3LDdj'@; put 'My45LDAsNy0zLjEsNy03YzAtMC45LTAuMi0xLjgtMC41LTIuNmgtMi4yYzAuNSwwLjgsMC43LDEuNiwwLjcsMi41QzIzLjEsMjAuOCwyMC45LDIzLDE4LjEsMjN6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi45LDEuMUwyMS4xLDExYy0wLjQsMC42LTAuMiwxLjQsMC4zLDEuOGMwLjIsMC4yLDAuNSwwLjIsMC44LDAuMmgxMS41YzAuNywwLDEuMy0wLjUsMS4zLTEuMmMwLTAuMy0wLjEtMC41LTAuMi0wLjhsLTUuNy05LjljLTAuNC0wLjYt'@; put 'MS4xLTAuOC0xLjgtMC41QzI3LjEsMC44LDI3LDEsMjYuOSwxLjF6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLjU3LDE1LjcybC0zLjM1LTFhMTEuNjUsMTEuNjUsMCwwLDAtLjk1LTIuMzNsMS42NC0zLjA3'@; put 'YS42MS42MSwwLDAsMC0uMTEtLjcyTDI3LjQxLDYuMmEuNjEuNjEsMCwwLDAtLjcyLS4xMUwyMy42NCw3LjcyYTExLjYyLDExLjYyLDAsMCwwLTIuMzYtMWwtMS0zLjMxQS42MS42MSwwLDAsMCwxOS42OSwzSDE2LjMxYS42MS42MSwwLDAsMC0uNTguNDNsLTEsMy4zYTExLjYzLDExLjYzLDAs'@; put 'MCwwLTIuMzgsMWwtMy0xLjYyYS42MS42MSwwLDAsMC0uNzIuMTFMNi4yLDguNTlhLjYxLjYxLDAsMCwwLS4xMS43MmwxLjYyLDNhMTEuNjMsMTEuNjMsMCwwLDAtMSwyLjM3bC0zLjMxLDFhLjYxLjYxLDAsMCwwLS40My41OHYzLjM4YS42MS42MSwwLDAsMCwuNDMuNThsMy4zMywxYTExLjYy'@; put 'LDExLjYyLDAsMCwwLDEsMi4zM0w2LjA5LDI2LjY5YS42MS42MSwwLDAsMCwuMTEuNzJMOC41OSwyOS44YS42MS42MSwwLDAsMCwuNzIuMTFsMy4wOS0xLjY1YTExLjY1LDExLjY1LDAsMCwwLDIuMy45NGwxLDMuMzdhLjYxLjYxLDAsMCwwLC41OC40M2gzLjM4YS42MS42MSwwLDAsMCwuNTgt'@; put 'LjQzbDEtMy4zOGExMS42MywxMS42MywwLDAsMCwyLjI4LS45NGwzLjExLDEuNjZhLjYxLjYxLDAsMCwwLC43Mi0uMTFsMi4zOS0yLjM5YS42MS42MSwwLDAsMCwuMTEtLjcybC0xLjY2LTMuMWExMS42MywxMS42MywwLDAsMCwuOTUtMi4yOWwzLjM3LTFhLjYxLjYxLDAsMCwwLC40My0uNThW'@; put 'MTYuMzFBLjYxLjYxLDAsMCwwLDMyLjU3LDE1LjcyWk0xOCwyMy41QTUuNSw1LjUsMCwxLDEsMjMuNSwxOCw1LjUsNS41LDAsMCwxLDE4LDIzLjVaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQi'@; put 'IGQ9Ik0zMi41NywxNS43MmwtMy4zNS0xYTEyLjEyLDEyLjEyLDAsMCwwLS40Ny0xLjMyLDcuNDksNy40OSwwLDAsMS02LjE0LTYuMTYsMTEuODIsMTEuODIsMCwwLDAtMS4zMy0uNDhsLTEtMy4zMUEuNjEuNjEsMCwwLDAsMTkuNjksM0gxNi4zMWEuNjEuNjEsMCwwLDAtLjU4LjQzbC0xLDMu'@; put 'M2ExMS42MywxMS42MywwLDAsMC0yLjM4LDFsLTMtMS42MmEuNjEuNjEsMCwwLDAtLjcyLjExTDYuMiw4LjU5YS42MS42MSwwLDAsMC0uMTEuNzJsMS42MiwzYTExLjYzLDExLjYzLDAsMCwwLTEsMi4zN2wtMy4zMSwxYS42MS42MSwwLDAsMC0uNDMuNTh2My4zOGEuNjEuNjEsMCwwLDAsLjQz'@; put 'LjU4bDMuMzMsMWExMS42MiwxMS42MiwwLDAsMCwxLDIuMzNMNi4wOSwyNi42OWEuNjEuNjEsMCwwLDAsLjExLjcyTDguNTksMjkuOGEuNjEuNjEsMCwwLDAsLjcyLjExbDMuMDktMS42NWExMS42NSwxMS42NSwwLDAsMCwyLjMuOTRsMSwzLjM3YS42MS42MSwwLDAsMCwuNTguNDNoMy4zOGEu'@; put 'NjEuNjEsMCwwLDAsLjU4LS40M2wxLTMuMzhhMTEuNjMsMTEuNjMsMCwwLDAsMi4yOC0uOTRsMy4xMSwxLjY2YS42MS42MSwwLDAsMCwuNzItLjExbDIuMzktMi4zOWEuNjEuNjEsMCwwLDAsLjExLS43MmwtMS42Ni0zLjFhMTEuNjMsMTEuNjMsMCwwLDAsLjk1LTIuMjlsMy4zNy0xYS42MS42'@; put 'MSwwLDAsMCwuNDMtLjU4VjE2LjMxQS42MS42MSwwLDAsMCwzMi41NywxNS43MlpNMTgsMjMuNUE1LjUsNS41LDAsMSwxLDIzLjUsMTgsNS41LDUuNSwwLDAsMSwxOCwyMy41WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29s'@; put 'aWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzIuNTcsMTUuNzIsMzEuNSwxNS40SDIyLjg1'@; put 'QTUuNSw1LjUsMCwxLDEsMTgsMTIuNWE1LjUzLDUuNTMsMCwwLDEsLjY1LDBBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlsMi4wOS0zLjYyLS44Ni0yLjgzQS42MS42MSwwLDAsMCwxOS42OSwzSDE2LjMxYS42MS42MSwwLDAsMC0uNTguNDNsLTEsMy4zYTExLjYzLDExLjYzLDAsMCwwLTIuMzgs'@; put 'MWwtMy0xLjYyYS42MS42MSwwLDAsMC0uNzIuMTFMNi4yLDguNTlhLjYxLjYxLDAsMCwwLS4xMS43MmwxLjYyLDNhMTEuNjMsMTEuNjMsMCwwLDAtMSwyLjM3bC0zLjMxLDFhLjYxLjYxLDAsMCwwLS40My41OHYzLjM4YS42MS42MSwwLDAsMCwuNDMuNThsMy4zMywxYTExLjYyLDExLjYyLDAs'@; put 'MCwwLDEsMi4zM0w2LjA5LDI2LjY5YS42MS42MSwwLDAsMCwuMTEuNzJMOC41OSwyOS44YS42MS42MSwwLDAsMCwuNzIuMTFsMy4wOS0xLjY1YTExLjY1LDExLjY1LDAsMCwwLDIuMy45NGwxLDMuMzdhLjYxLjYxLDAsMCwwLC41OC40M2gzLjM4YS42MS42MSwwLDAsMCwuNTgtLjQzbDEtMy4z'@; put 'OGExMS42MywxMS42MywwLDAsMCwyLjI4LS45NGwzLjExLDEuNjZhLjYxLjYxLDAsMCwwLC43Mi0uMTFsMi4zOS0yLjM5YS42MS42MSwwLDAsMCwuMTEtLjcybC0xLjY2LTMuMWExMS42MywxMS42MywwLDAsMCwuOTUtMi4yOWwzLjM3LTFhLjYxLjYxLDAsMCwwLC40My0uNThWMTYuMzFBLjYx'@; put 'LjYxLDAsMCwwLDMyLjU3LDE1LjcyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywx'@; put 'M0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz4nKSxiLkNsclNoYXBlQ2hlY2s9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0x'@; put 'My43MiwyNy42OSwzLjI5LDE3LjI3YTEsMSwwLDAsMSwxLjQxLTEuNDFsOSw5TDMxLjI5LDcuMjlhMSwxLDAsMCwxLDEuNDEsMS40MVoiLz4nKSxiLkNsclNoYXBlVGltZXM9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi'@; put 'IGQ9Ik0xOS40MSwxOGw4LjI5LTguMjlhMSwxLDAsMCwwLTEuNDEtMS40MUwxOCwxNi41OSw5LjcxLDguMjlBMSwxLDAsMCwwLDguMjksOS43MUwxNi41OSwxOCw4LjI5LDI2LjI5YTEsMSwwLDEsMCwxLjQxLDEuNDFMMTgsMTkuNDFsOC4yOSw4LjI5YTEsMSwwLDAsMCwxLjQxLTEuNDFaIi8+'@; put 'JyksYi5DbHJTaGFwZUV4Y2xhbWF0aW9uVHJpYW5nbGU9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyMS4zMmExLjMsMS4zLDAsMCwwLDEuMy0xLjNWMTRhMS4zLDEuMywwLDEsMC0yLjYsMHY2QTEuMywx'@; put 'LjMsMCwwLDAsMTgsMjEuMzJaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgY3g9IjE3Ljk1IiBjeT0iMjQuMjciIHI9IjEuNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMzAuMzMsMjUuNTQsMjAuNTksNy42YTMsMywwLDAsMC01LjI3LDBMNS41NywyNS41NEEzLDMsMCwwLDAsOC4yMSwzMEgyNy42OWEzLDMsMCwwLDAsMi42NC00LjQzWm0tMS43OCwxLjk0YTEsMSwwLDAsMS0uODYuNDlIOC4yMWExLDEsMCwwLDEt'@; put 'Ljg4LTEuNDhMMTcuMDcsOC41NWExLDEsMCwwLDEsMS43NiwwbDkuNzQsMTcuOTRBMSwxLDAsMCwxLDI4LjU1LDI3LjQ4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMC4zMywyNS41NCwyMC41OSw3LjZhMywz'@; put 'LDAsMCwwLTUuMjcsMEw1LjU3LDI1LjU0QTMsMywwLDAsMCw4LjIxLDMwSDI3LjY5YTMsMywwLDAsMCwyLjY0LTQuNDNaTTE2LjQ2LDEyLjc0YTEuNDksMS40OSwwLDAsMSwzLDB2Ni44OWExLjQ5LDEuNDksMCwxLDEtMywwWk0xOCwyNi4yNWExLjcyLDEuNzIsMCwxLDEsMS43Mi0xLjcyQTEu'@; put 'NzIsMS43MiwwLDAsMSwxOCwyNi4yNVoiLz4nKSxiLkNsclNoYXBlRXhjbGFtYXRpb25DaXJjbGU9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4'@; put 'LDZabTAsMjJBMTAsMTAsMCwxLDEsMjgsMTgsMTAsMTAsMCwwLDEsMTgsMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyMC4wN2ExLjMsMS4zLDAsMCwxLTEuMy0xLjN2LTZhMS4zLDEuMywwLDEs'@; put 'MSwyLjYsMHY2QTEuMywxLjMsMCwwLDEsMTgsMjAuMDdaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgY3g9IjE3Ljk1IiBjeT0iMjMuMDIiIHI9IjEuNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNz'@; put 'PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabS0xLjQ5LDZhMS40OSwxLjQ5LDAsMCwxLDMsMHY2Ljg5YTEuNDksMS40OSwwLDEsMS0zLDBaTTE4LDI1LjVhMS43MiwxLjcyLDAsMSwxLDEuNzItMS43'@; put 'MkExLjcyLDEuNzIsMCwwLDEsMTgsMjUuNVoiLz4nKSxiLkNsclNoYXBlQ2hlY2tDaXJjbGU9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZa'@; put 'bTAsMjJBMTAsMTAsMCwxLDEsMjgsMTgsMTAsMTAsMCwwLDEsMTgsMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xNi4zNCwyMy43NGwtNS01YTEsMSwwLDAsMSwxLjQxLTEuNDFsMy41OSwzLjU5LDYu'@; put 'NzgtNi43OGExLDEsMCwwLDEsMS40MSwxLjQxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMCwxOEExMiwxMiwwLDEsMSwxOCw2LDEyLDEyLDAsMCwxLDMwLDE4Wm0tNC43Ny0yLjE2YTEuNCwxLjQsMCwwLDAt'@; put 'Mi0ybC02Ljc3LDYuNzdMMTMsMTcuMTZhMS40LDEuNCwwLDAsMC0yLDJsNS40NSw1LjQ1WiIvPicpLGIuQ2xyU2hhcGVJbmZvQ2lyY2xlPSgwLHAuY2xySWNvblNWRykoJzxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiICBjeD0iMTcuOTMiIGN5PSIx'@; put 'MS45IiByPSIxLjQiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgIGQ9Ik0yMSwyM0gxOVYxNUgxNmExLDEsMCwwLDAsMCwyaDF2NkgxNWExLDEsMCwxLDAsMCwyaDZhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAg'@; put 'ICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabTAsMjJBMTAsMTAsMCwxLDEsMjgsMTgsMTAsMTAsMCwwLDEsMTgsMjhaIi8+XG4gICAgICAgICAgICAgICAg'@; put 'PHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptLTIsNS4xNWEyLDIsMCwxLDEsMiwyQTIsMiwwLDAsMSwxNS45LDExLjE1Wk0yMywyNGExLDEsMCwwLDEtMSwxSDE1YTEsMSwwLDEs'@; put 'MSwwLTJoMlYxN0gxNmExLDEsMCwwLDEsMC0yaDR2OGgyQTEsMSwwLDAsMSwyMywyNFoiLz4nKSxiLkNsclNoYXBlSW5mb1N0YW5kYXJkPSgwLHAuY2xySWNvblNWRykoJzxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGN4PSIxNy45NyIgY3k9IjEw'@; put 'LjQ1IiByPSIxLjQiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTIxLDI1SDE5VjE0LjFIMTZhMSwxLDAsMCwwLDAsMmgxVjI1SDE1YTEsMSwwLDAsMCwwLDJoNmExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAg'@; put 'ICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgsMTYsMTYsMCwwLDEsMTgsMzRaTTE4LDRBMTQsMTQsMCwxLDAsMzIsMTgsMTQsMTQsMCwwLDAsMTgsNFoiLz5cbiAgICAgICAgICAgICAg'@; put 'ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMi4xYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDE4LDIuMVptLS4xLDUuMjhhMiwyLDAsMSwxLTIsMkEyLDIsMCwwLDEsMTcuOSw3LjM4Wm0zLjYsMjEuMjVoLTdhMS40LDEuNCwwLDEs'@; put 'MSwwLTIuOGgyLjF2LTkuMkgxNWExLjQsMS40LDAsMSwxLDAtMi44aDQuNHYxMmgyLjFhMS40LDEuNCwwLDEsMSwwLDIuOFoiLz4nKSxiLkNsclNoYXBlU3VjY2Vzc1N0YW5kYXJkPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJN'@; put 'MjgsMTIuMWExLDEsMCwwLDAtMS40MSwwTDE1LjQ5LDIzLjE1bC02LTZBMSwxLDAsMCwwLDgsMTguNTNMMTUuNDksMjYsMjgsMTMuNTJBMSwxLDAsMCwwLDI4LDEyLjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0i'@; put 'TTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlpNMjguNDUsMTIuNjMsMTUuMzEsMjUuNzYsNy41NSwxOGExLjQsMS40LDAsMCwxLDItMmw1Ljc4LDUuNzhMMjYuNDcsMTAuNjVhMS40LDEuNCwwLDEsMSwyLDJaIi8+JyksYi5DbHJTaGFwZUVycm9yU3RhbmRhcmQ9KDAs'@; put 'cC5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgY3g9IjE4IiBjeT0iMjYuMDYiIHI9IjEuMzMiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0i'@; put 'TTE4LDIyLjYxYTEsMSwwLDAsMS0xLTF2LTEyYTEsMSwwLDEsMSwyLDB2MTJBMSwxLDAsMCwxLDE4LDIyLjYxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgsMTYs'@; put 'MTYsMCwwLDEsMTgsMzRaTTE4LDRBMTQsMTQsMCwxLDAsMzIsMTgsMTQsMTQsMCwwLDAsMTgsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMi4xYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDE4'@; put 'LDIuMVpNMTYuNiw4LjhhMS40LDEuNCwwLDAsMSwyLjgsMHYxMmExLjQsMS40LDAsMCwxLTIuOCwwWk0xOCwyOC42YTEuOCwxLjgsMCwxLDEsMS44LTEuOEExLjgsMS44LDAsMCwxLDE4LDI4LjZaIi8+JyksYi5DbHJTaGFwZVdhcm5pbmdTdGFuZGFyZD0oMCxwLmNsckljb25TVkcpKCc8Y2ly'@; put 'Y2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBjeD0iMTgiIGN5PSIyNi4wNiIgcj0iMS4zMyIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMjIuNjFhMSwxLDAsMCwx'@; put 'LTEtMXYtMTJhMSwxLDAsMSwxLDIsMHYxMkExLDEsMCwwLDEsMTgsMjIuNjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xNS4wNjIwNzgyLDEuNjgxMTk2IEMxNS42Mjk4ODE5LDAuNjQ5MjY2MzU1IDE2'@; put 'LjcxMDkwOTEsMC4wMTAyMjE5Mzk2IDE3Ljg4NSwwLjAxMDIyMTkzOTYgQzE5LjA1OTA5MDksMC4wMTAyMjE5Mzk2IDIwLjE0MDExODEsMC42NDkyNjYzNTUgMjAuNzA4NjQzMywxLjY4MjUyMTI5IEwzNC41OTg2NDQsMjcuMjQyNTIyNSBDMzUuMTQwNzc0NiwyOC4yNDAxMzk3IDM1LjExNzQz'@; put 'NDUsMjkuNDQ5NTM3MyAzNC41MzcyMTYxLDMwLjQyNTQ5NDMgQzMzLjk1Njk5NzcsMzEuNDAxNDUxNCAzMi45MDU2NzEsMzEuOTk5Njk4NCAzMS43NywzMiBMNC4wMjIzOTMyMywzMS45OTk3NDkyIEMyLjg3NDA5MDA5LDMyLjAyNTQ2OTkgMS43OTkwMjg0MywzMS40Mzc1NzUzIDEuMjAxMDYz'@; put 'MzUsMzAuNDU2OTEyNiBDMC42MDMwOTgyNjUsMjkuNDc2MjQ5OSAwLjU3Mjc3Nzg5OSwyOC4yNTEzMTc5IDEuMTIyMDc4MTgsMjcuMjQxMTk2IEwxNS4wNjIwNzgyLDEuNjgxMTk2IFogTTIuODc4NTA3NjcsMjguMTk3NzI4MiBDMi42NzA2MDk2NiwyOC41ODAwMzc2IDIuNjgyMDk3NSwyOS4w'@; put 'NDQxNDIzIDIuOTA4NjU1NywyOS40MTU2OTc3IEMzLjEzNTIxMzksMjkuNzg3MjUzMiAzLjU0MjUzNTQsMzAuMDA5OTk1OSA0LDMwIEwzMS43Njk3MzQ0LDMwIEMzMi4xOTk5MTkxLDI5Ljk5OTg4NTggMzIuNTk4MjQ3OCwyOS43NzMyMjA4IDMyLjgxODA4MjEsMjkuNDAzNDQ4MiBDMzMuMDM3'@; put 'OTE2NCwyOS4wMzM2NzU3IDMzLjA0Njc1OTUsMjguNTc1NDU2NyAzMi44NDEzNTY3LDI4LjE5NzQ3ODcgTDE4Ljk1Mzg3MzksMi42NDIwODE5NSBDMTguNzM5NDIzNiwyLjI1MjM0NDM2IDE4LjMyOTg0MTksMi4wMTAyMjE5NCAxNy44ODUsMi4wMTAyMjE5NCBDMTcuNDQwNjg4OSwyLjAxMDIy'@; put 'MTk0IDE3LjAzMTU1MzgsMi4yNTE3NjY5MiAxNi44MTY4OTQ2LDIuNjQwNjg3NTMgTDIuODc4NTA3NjcsMjguMTk3NzI4MiBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTM0LjYsMjkuMjEsMjAuNzEsMy42NWEz'@; put 'LjIyLDMuMjIsMCwwLDAtNS42NiwwTDEuMTcsMjkuMjFBMy4yMiwzLjIyLDAsMCwwLDQsMzRIMzEuNzdhMy4yMiwzLjIyLDAsMCwwLDIuODMtNC43NVpNMTYuNiwxMGExLjQsMS40LDAsMCwxLDIuOCwwdjEyYTEuNCwxLjQsMCwwLDEtMi44LDBaTTE4LDI5Ljg1YTEuOCwxLjgsMCwxLDEsMS44'@; put 'LTEuOEExLjgsMS44LDAsMCwxLDE4LDI5Ljg1WiIvPicpLGIuQ2xyU2hhcGVIZWxwSW5mbz0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjUuMzksMjUuNDVhMSwxLDAsMCwwLTEuMzguMjljLTEuNDEsMi4xNi00LDQuODEtNi4zMSw1LjdzLTQuMTIuNTctNC44NCwwYy0uMzEtLjI3LTEu'@; put 'MTItMS0uNDMtMy40OS40Ni0xLjY2LDMuMzItOS40OCw0LTExLjM4bC0yLjE4LjI4Yy0uNjksMS44Ni0zLjI5LDguODQtMy43NiwxMC41OC0uNjgsMi40OS0uMzQsNC4zLDEuMDksNS41NkE1LjU5LDUuNTksMCwwLDAsMTUsMzRhOS41Myw5LjUzLDAsMCwwLDMuNDUtLjdjMi43OS0xLjA5LDUu'@; put 'NzItNC4xMiw3LjI2LTYuNDdBMSwxLDAsMCwwLDI1LjM5LDI1LjQ1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuMywxMWE0LjUsNC41LDAsMSwwLTQuNS00LjVBNC41LDQuNSwwLDAsMCwxOS4zLDExWm0w'@; put 'LTdhMi41LDIuNSwwLDEsMS0yLjUsMi41QTIuNSwyLjUsMCwwLDEsMTkuMyw0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuODEsMTVjLjA2LDAsNi4yNy0uODIsNy43My0xLC42NS0uMSwxLjE0LDAsMS4z'@; put 'LjE1cy4yMS44LS4wNywxLjY4Yy0uNjEsMS44Ni0zLjY5LDExLTQuNTksMTMuNzFhOCw4LDAsMCwwLDEuMjktLjM4LDcuMzIsNy4zMiwwLDAsMCwxLjE1LS42QzE5Ljg1LDI1LDIyLjE1LDE4LjEsMjIuNjcsMTYuNTJzLjM5LTIuNzgtLjMtMy42YTMuMTYsMy4xNiwwLDAsMC0zLjA4LS44M2Mt'@; put 'MS40My4xNS03LjQ3Ljk0LTcuNzMsMWExLDEsMCwwLDAsLjI2LDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjIwLjc1IiBjeT0iNiIgcj0iNCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBh'@; put 'dGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNC44NCwyNi4yM2ExLDEsMCwwLDAtMS40LjI5LDE2LjYsMTYuNiwwLDAsMS0zLjUxLDMuNzdjLS4zMy4yNS0xLjU2LDEuMi0yLjA4LDEtLjM2LS4xMS0uMTUtLjgyLS4wOC0xLjEybC41My0xLjU3Yy4yMi0uNjQsNC4wNS0xMiw0LjQ3'@; put 'LTEzLjMuNjItMS45LjM1LTMuNzctMi40OC0zLjMyLS43Ny4wOC04LjU4LDEuMDktOC43MiwxLjFhMSwxLDAsMCwwLC4xMywyczMtLjM5LDMuMzMtLjQyYS44OC44OCwwLDAsMSwuODUuNDQsMi40NywyLjQ3LDAsMCwxLS4wNywxLjcxYy0uMjYsMS00LjM3LDEyLjU4LTQuNSwxMy4yNWEyLjc4'@; put 'LDIuNzgsMCwwLDAsMS4xOCwzLDUsNSwwLDAsMCwzLjA4LjgzaDBhOC41Myw4LjUzLDAsMCwwLDMuMDktLjYyYzIuNDktMSw1LjA5LTMuNjYsNi40Ni01Ljc1QTEsMSwwLDAsMCwyNC44NCwyNi4yM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksYi5DbHJT'@; put 'aGFwZUJhcnM9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiwyOUg0YTEsMSwwLDAsMSwwLTJIMzJhMSwxLDAsMCwxLDAsMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMyLDE5SDRhMSwxLDAsMCwxLDAtMkgzMmExLDEsMCwwLDEsMCwyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMzIsOUg0QTEsMSwwLDAsMSw0LDdIMzJh'@; put 'MSwxLDAsMCwxLDAsMloiLz4nKSxiLkNsclNoYXBlVXNlcj0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMTdhNyw3LDAsMSwwLTctN0E3LDcsMCwwLDAsMTgsMTdaTTE4LDVhNSw1LDAsMSwxLTUsNUE1LDUsMCwwLDEsMTgsNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjQ3LDI0LjM3YTE3LjE2LDE3LjE2LDAsMCwwLTI0LjkzLDBBMiwyLDAsMCwwLDUsMjUuNzRWMzFhMiwyLDAsMCwwLDIsMkgyOWEyLDIsMCwwLDAsMi0yVjI1Ljc0QTIsMiwwLDAsMCwzMC40NywyNC4zN1pNMjksMzFI'@; put 'N1YyNS43M2ExNS4xNywxNS4xNywwLDAsMSwyMiwwaDBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC40NywyNC4zN2ExNy4xNiwxNy4xNiwwLDAsMC0yNC45MywwQTIsMiwwLDAsMCw1LDI1Ljc0VjMxYTIs'@; put 'MiwwLDAsMCwyLDJIMjlhMiwyLDAsMCwwLDItMlYyNS43NEEyLDIsMCwwLDAsMzAuNDcsMjQuMzdaTTI5LDMxSDdWMjUuNzNhMTUuMTcsMTUuMTcsMCwwLDEsMjIsMGgwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4g'@; put 'ICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTdhNyw3LDAsMCwwLDQuNDUtMS42aC0uMjJBMy42OCwzLjY4LDAsMCwxLDIwLDE0LjZhNSw1LDAsMSwxLDEuMjQtOC40MmwxLTEuNzZBNyw3LDAsMSwwLDE4LDE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNDcsMjQuMzdhMTcuMTYsMTcuMTYsMCwwLDAtMjQuOTMsMEEyLDIsMCwwLDAsNSwyNS43NFYzMWEyLDIsMCwwLDAsMiwy'@; put 'SDI5YTIsMiwwLDAsMCwyLTJWMjUuNzRBMiwyLDAsMCwwLDMwLjQ3LDI0LjM3Wk0yOSwzMUg3VjI1LjczYTE1LjE3LDE1LjE3LDAsMCwxLDIyLDBoMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxw'@; put 'YXRoIGQ9Ik0xOCwxN2E3LDcsMCwwLDAsNi44NS01LjU2LDcuNCw3LjQsMCwwLDEtMi4yNC02LjY5QTcsNywwLDEsMCwxOCwxN1pNMTgsNWE1LDUsMCwxLDEtNSw1QTUsNSwwLDAsMSwxOCw1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFk'@; put 'Z2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjYxLDI0LjUyYTE3LjE2'@; put 'LDE3LjE2LDAsMCwwLTI1LjIyLDAsMS41MSwxLjUxLDAsMCwwLS4zOSwxdjZBMS41LDEuNSwwLDAsMCw2LjUsMzNoMjNBMS41LDEuNSwwLDAsMCwzMSwzMS41di02QTEuNTEsMS41MSwwLDAsMCwzMC42MSwyNC41MloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+'@; put 'XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjEwIiByPSI3IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjYxLDI0LjUyYTE3LjE2LDE3LjE2LDAsMCwwLTI1LjIyLDAsMS41MSwxLjUxLDAsMCwwLS4z'@; put 'OSwxdjZBMS41LDEuNSwwLDAsMCw2LjUsMzNoMjNBMS41LDEuNSwwLDAsMCwzMSwzMS41di02QTEuNTEsMS41MSwwLDAsMCwzMC42MSwyNC41MloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBk'@; put 'PSJNMTgsMTdhNyw3LDAsMCwwLDQuNDUtMS42aC0uMjJBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlsMy4xNi01LjQ3QTcsNywwLDEsMCwxOCwxN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBk'@; put 'PSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgt'@; put 'My0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC42MSwyNC41MmExNy4xNiwxNy4xNiwwLDAsMC0yNS4yMiwwLDEuNTEsMS41MSwwLDAsMC0uMzksMXY2QTEuNSwxLjUsMCwwLDAsNi41LDMzaDIzQTEuNSwxLjUsMCwwLDAsMzEsMzEuNXYtNkExLjUx'@; put 'LDEuNTEsMCwwLDAsMzAuNjEsMjQuNTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxN2E3LDcsMCwwLDAsNi44NS01LjU2LDcuNCw3LjQsMCwwLDEtMi4yNC02LjY5QTcsNywwLDEs'@; put 'MCwxOCwxN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQg'@; put 'Y2xyLWktYmFkZ2UiIC8+JyksYi5DbHJTaGFwZUFuZ2xlPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjkuNTIsMjIuNTIsMTgsMTAuNiw2LjQ4LDIyLjUyYTEuNywxLjcsMCwwLDAsMi40NSwyLjM2TDE4LDE1'@; put 'LjQ5bDkuMDgsOS4zOWExLjcsMS43LDAsMCwwLDIuNDUtMi4zNloiLz4nKSxiLkNsclNoYXBlRm9sZGVyPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAsOUgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwx'@; put 'Mi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDMwLDlabTAsMjBINlYxM2g3LjMxYTIsMiwwLDAsMCwyLTJINlY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFIMzBaIi8+XG4gICAgICAgICAgICAgICAg'@; put 'PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzAsMTMuNVYyOUg2VjEzaDcuMzFhMiwyLDAsMCwwLDItMkg2VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWg4LjUxYTcuNSw3LjUsMCwwLDEtMS4yOS0y'@; put 'SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxMy4yMkE3LjQ5LDcuNDksMCwwLDEsMzAsMTMuNVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'LS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzAs'@; put 'MTUuNFYyOUg2VjEzaDcuMzFhMiwyLDAsMCwwLDItMkg2VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWgyLjczQTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAs'@; put 'MCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE1LjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCww'@; put 'LDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzAsOUgxNi40Mkwx'@; put 'NC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDMwLDlaTTYsMTFWN2g2LjQ5bDIuNzIsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFs'@; put 'ZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjIuMjMsMTUuNEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwxOS41Niw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDIt'@; put 'MlYxNS40Wk02LDExVjdoNi40OWwyLjcyLDRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIy'@; put 'LjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzAs'@; put 'MTMuNUE3LjUsNy41LDAsMCwxLDIzLjEzLDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41Wk02LDExVjdoNi40OWwyLjcyLDRaIi8+'@; put 'XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLGIuQ2xyU2hhcGVGb2xkZXJPcGVuPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzUuMzIsMTMuNzRBMS43MSwxLjcxLDAsMCwwLDMzLjg3LDEzSDExLjE3YTIuNTksMi41OSwwLDAsMC0yLjI1LDEuNTIsMSwxLDAsMCwwLDAsLjE0TDYsMjVWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgx'@; put 'LjQxSDMyYTIsMiwwLDAsMC0yLTJIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjkuNjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMUExLjY0LDEuNjQsMCwwLDAsMzUuMzIsMTMuNzRaTTI5'@; put 'LjU1LDI5SDYuOWwzLjg4LTEzLjgxYS42Ni42NiwwLDAsMSwuMzgtLjI0SDMzLjQ5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTM1LjMyLDEzLjc0QTEuNzEsMS43MSwwLDAs'@; put 'MCwzMy44NywxM0gxMS4xN2EyLjU5LDIuNTksMCwwLDAtMi4yNSwxLjUyLDEsMSwwLDAsMCwwLC4xNEw2LDI1VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWg4LjUyYTcuNDksNy40OSwwLDAsMS0xLjI5LTJIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIs'@; put 'MiwwLDAsMCw0LDdWMjkuNjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMUExLjY0LDEuNjQsMCwwLDAsMzUuMzIsMTMuNzRaTTI5LjU1LDI5SDYuOWwzLjg4LTEzLjgxYS42Ni42NiwwLDAsMSwuMzgtLjI0SDMzLjQ5WiIvPlxuICAgICAg'@; put 'ICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQg'@; put 'Y2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMy42OCwxNS40aC0uM0wyOS41NSwyOUg2LjlsMy44OC0xMy44MWEuNjYuNjYsMCwwLDEsLjM4LS4yNGg5LjQyQTMuNjcsMy42NywwLDAsMSwxOSwxMy41NmEzLjYzLDMuNjMsMCwwLDEtLjI2LS41NkgxMS4xN2EyLjU5LDIuNTks'@; put 'MCwwLDAtMi4yNSwxLjUyLDEsMSwwLDAsMCwwLC4xNEw2LDI1VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWgyLjczQTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjkuNjlB'@; put 'MS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMWExLjY4LDEuNjgsMCwwLDAsLjA3LS4zMkEzLjY3LDMuNjcsMCwwLDEsMzMuNjgsMTUuNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxu'@; put 'ICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNS4zMiwxMy43NEExLjcxLDEuNzEsMCwwLDAsMzMuODcsMTNIMTEuMTdhMi41OSwyLjU5LDAsMCwwLTIuMjUsMS41MiwxLDEsMCwwLDAsMCwuMTRMNiwyNVY3aDYuNDlsMi42'@; put 'MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFIMzJhMiwyLDAsMCwwLTItMkgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40MSwzMUgzMC4zNGExLDEsMCwwLDAsMS0uNzJsNC4xOS0xNS4xQTEuNjQsMS42NCww'@; put 'LDAsMCwzNS4zMiwxMy43NFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTksMTMuNTZhMy42MywzLjYzLDAsMCwxLS4y'@; put 'Ni0uNTZIMTEuMTdhMi41OSwyLjU5LDAsMCwwLTIuMjUsMS41MiwxLDEsMCwwLDAsMCwuMTRMNiwyNVY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFoMi43M0EzLjY2LDMuNjYsMCwwLDEsMTksOS44OUwxOS41Niw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVI'@; put 'NkEyLDIsMCwwLDAsNCw3VjI5LjY5QTEuMzcsMS4zNywwLDAsMCw1LjQxLDMxSDMwLjM0YTEsMSwwLDAsMCwxLS43Mmw0LjE5LTE1LjFhMS42OCwxLjY4LDAsMCwwLC4wNy0uMzJBMy42NywzLjY3LDAsMCwxLDMzLjY4LDE1LjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNs'@; put 'ci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAs'@; put 'MCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzUuMzIsMTMuNzRBMS43MSwxLjcxLDAsMCwwLDMzLjg3LDEzSDExLjE3YTIuNTksMi41OSwwLDAsMC0yLjI1LDEu'@; put 'NTIsMSwxLDAsMCwwLDAsLjE0TDYsMjVWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgxLjQxaDguNTJhNy40OSw3LjQ5LDAsMCwxLTEuMzEtMkgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40MSwz'@; put 'MUgzMC4zNGExLDEsMCwwLDAsMS0uNzJsNC4xOS0xNS4xQTEuNjQsMS42NCwwLDAsMCwzNS4zMiwxMy43NFoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAi'@; put 'IGN5PSI2IiByPSI1Ii8+JyksYi5DbHJTaGFwZUJlbGw9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMi41MSwyNy44M0ExNC40LDE0LjQsMCwwLDEsMzAsMjQuOWExMi42MywxMi42MywwLDAsMS0xLjM1LTQu'@; put 'ODFWMTUuMTVBMTAuODEsMTAuODEsMCwwLDAsMTkuMjEsNC40VjMuMTFhMS4zMywxLjMzLDAsMSwwLTIuNjcsMFY0LjQyQTEwLjgxLDEwLjgxLDAsMCwwLDcuMjEsMTUuMTV2NC45NEExMi42MywxMi42MywwLDAsMSw1Ljg2LDI0LjlhMTQuNCwxNC40LDAsMCwxLTIuNDcsMi45MywxLDEsMCww'@; put 'LDAtLjM0Ljc1djEuMzZhMSwxLDAsMCwwLDEsMWgyNy44YTEsMSwwLDAsMCwxLTFWMjguNThBMSwxLDAsMCwwLDMyLjUxLDI3LjgzWk01LjEzLDI4Ljk0YTE2LjE3LDE2LjE3LDAsMCwwLDIuNDQtMywxNC4yNCwxNC4yNCwwLDAsMCwxLjY1LTUuODVWMTUuMTVhOC43NCw4Ljc0LDAsMSwxLDE3'@; put 'LjQ3LDB2NC45NGExNC4yNCwxNC4yNCwwLDAsMCwxLjY1LDUuODUsMTYuMTcsMTYuMTcsMCwwLDAsMi40NCwzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMzQuMjhBMi42NywyLjY3LDAsMCwwLDIw'@; put 'LjU4LDMySDE1LjMyQTIuNjcsMi42NywwLDAsMCwxOCwzNC4yOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xOCwzNC4yOEEyLjY3LDIuNjcsMCwwLDAsMjAuNTgsMzJIMTUu'@; put 'MzJBMi42NywyLjY3LDAsMCwwLDE4LDM0LjI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMyLjUxLDI3LjgzQTE0LjQsMTQuNCwwLDAsMSwzMCwyNC45YTEyLjYzLDEyLjYz'@; put 'LDAsMCwxLTEuMzUtNC44MVYxNS4xNWExMC45MiwxMC45MiwwLDAsMC0uMTYtMS43OSw3LjQ0LDcuNDQsMCwwLDEtMi4yNC0uODQsOC44OSw4Ljg5LDAsMCwxLC40LDIuNjR2NC45NGExNC4yNCwxNC4yNCwwLDAsMCwxLjY1LDUuODUsMTYuMTcsMTYuMTcsMCwwLDAsMi40NCwzSDUuMTNhMTYu'@; put 'MTcsMTYuMTcsMCwwLDAsMi40NC0zLDE0LjI0LDE0LjI0LDAsMCwwLDEuNjUtNS44NVYxNS4xNUE4LjgsOC44LDAsMCwxLDE4LDYuMzFhOC42MSw4LjYxLDAsMCwxLDQuNzYsMS40NEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2YzAtLjIxLDAtLjQyLDAtLjYzYTEwLjU4LDEwLjU4LDAsMCwwLTMu'@; put 'MzItMVYzLjExYTEuMzMsMS4zMywwLDEsMC0yLjY3LDBWNC40MkExMC44MSwxMC44MSwwLDAsMCw3LjIxLDE1LjE1djQuOTRBMTIuNjMsMTIuNjMsMCwwLDEsNS44NiwyNC45YTE0LjQsMTQuNCwwLDAsMS0yLjQ3LDIuOTMsMSwxLDAsMCwwLS4zNC43NXYxLjM2YTEsMSwwLDAsMCwxLDFoMjcu'@; put 'OGExLDEsMCwwLDAsMS0xVjI4LjU4QTEsMSwwLDAsMCwzMi41MSwyNy44M1oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIv'@; put 'PlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi44NSwyOC4xM2wtLjM0LS4zQTE0LjM3LDE0LjM3LDAsMCwxLDMwLDI0LjlhMTIuNjMsMTIuNjMsMCwwLDEtMS4zNS00LjgxVjE1LjE1QTEwLjgxLDEwLjgxLDAsMCww'@; put 'LDE5LjIxLDQuNFYzLjExYTEuMzMsMS4zMywwLDEsMC0yLjY3LDBWNC40MkExMC44MSwxMC44MSwwLDAsMCw3LjIxLDE1LjE1djQuOTRBMTIuNjMsMTIuNjMsMCwwLDEsNS44NiwyNC45YTE0LjQsMTQuNCwwLDAsMS0yLjQ3LDIuOTNsLS4zNC4zdjIuODJIMzIuODVaIi8+XG4gICAgICAgICAg'@; put 'ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTE1LjMyLDMyYTIuNjUsMi42NSwwLDAsMCw1LjI1LDBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRn'@; put 'ZWQiIGQ9Ik0xOCwzNC4yOEEyLjY3LDIuNjcsMCwwLDAsMjAuNTgsMzJIMTUuMzJBMi42NywyLjY3LDAsMCwwLDE4LDM0LjI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzIuODUs'@; put 'MjguMTNsLS4zNC0uM0ExNC4zNywxNC4zNywwLDAsMSwzMCwyNC45YTEyLjYzLDEyLjYzLDAsMCwxLTEuMzUtNC44MVYxNS4xNWExMC45MiwxMC45MiwwLDAsMC0uMTYtMS43OUE3LjUsNy41LDAsMCwxLDIyLjUsNmMwLS4yMSwwLS40MiwwLS42M2ExMC41NywxMC41NywwLDAsMC0zLjMyLTFW'@; put 'My4xMWExLjMzLDEuMzMsMCwxLDAtMi42NywwVjQuNDJBMTAuODEsMTAuODEsMCwwLDAsNy4yMSwxNS4xNXY0Ljk0QTEyLjYzLDEyLjYzLDAsMCwxLDUuODYsMjQuOWExNC40LDE0LjQsMCwwLDEtMi40NywyLjkzbC0uMzQuM3YyLjgySDMyLjg1WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJj'@; put 'bGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxiLkNsclNoYXBlSW1hZ2U9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2VjMwYTIs'@; put 'MiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwzMiw0Wk00LDMwVjZIMzJWMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTguOTIsMTRhMywzLDAsMSwwLTMtM0EzLDMsMCwwLDAsOC45'@; put 'MiwxNFptMC00LjZBMS42LDEuNiwwLDEsMSw3LjMzLDExLDEuNiwxLjYsMCwwLDEsOC45Miw5LjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi43OCwxNS4zN2wtNS40LDUuNC00LTRhMSwxLDAsMCwwLTEu'@; put 'NDEsMEw1LjkyLDIyLjl2Mi44M2w2Ljc5LTYuNzlMMTYsMjIuMThsLTMuNzUsMy43NUgxNWw4LjQ1LTguNDVMMzAsMjRWMjEuMThsLTUuODEtNS44MUExLDEsMCwwLDAsMjIuNzgsMTUuMzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAg'@; put 'ICAgPHBhdGggZD0iTTExLjkzLDExYTMsMywwLDEsMC0zLDNBMywzLDAsMCwwLDExLjkzLDExWm0tNC42LDBhMS42LDEuNiwwLDEsMSwxLjYsMS42QTEuNiwxLjYsMCwwLDEsNy4zMywxMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdl'@; put 'ZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3LjM4LDIwLjc3bC00LTRhMSwxLDAsMCwwLTEuNDEsMEw1LjkyLDIyLjl2Mi44M2w2Ljc5LTYuNzlMMTYsMjIuMThsLTMuNzUsMy43NUgxNWw4LjQ1LTguNDVMMzAsMjRWMjEuMThsLTUuODEtNS44MWExLDEsMCwwLDAtMS40MSwwWiIgY2xh'@; put 'c3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJWMzBINFY2SDIyLjVhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiww'@; put 'LDAsMCwyLTJWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'LS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwzMiw0Wk04LjkyLDhhMywzLDAsMSwx'@; put 'LTMsM0EzLDMsMCwwLDEsOC45Miw4Wk02LDI3VjIyLjlsNi02LjA4YTEsMSwwLDAsMSwxLjQxLDBMMTYsMTkuMzUsOC4zMiwyN1ptMjQsMEgxMS4xNWw2LjIzLTYuMjMsNS40LTUuNGExLDEsMCwwLDEsMS40MSwwTDMwLDIxLjE4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBh'@; put 'dGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVBNy40OCw3LjQ4LDAsMCwxLDIyLjc4LDRINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4zNEE3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNVpNOC45Miw4YTMsMywwLDEsMS0zLDNB'@; put 'MywzLDAsMCwxLDguOTIsOFpNNiwyN1YyMi45bDYtNi4wOGExLDEsMCwwLDEsMS40MSwwTDE2LDE5LjM1LDguMzIsMjdabTI0LDBIMTEuMTVsNi4yMy02LjIzLDUuNC01LjRhMSwxLDAsMCwxLDEuNDEsMEwzMCwyMS4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlk'@; put 'LXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+JyksYi5DbHJTaGFwZUNsb3VkPSgwLHAuY2xySWNvblNWRyko'@; put 'JzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjcuMTQsMzNIMTAuNjJDNS42NywzMywxLDI4LjE5LDEsMjMuMWExMCwxMCwwLDAsMSw4LTkuNzUsMTAuMTksMTAuMTksMCwwLDEsMjAuMzMsMS4wNkExMC4wNywxMC4wNywwLDAsMSwyOSwxNi42'@; put 'NmE4LjI5LDguMjksMCwwLDEsNiw4QzM1LDI5LjEsMzEuMzMsMzMsMjcuMTQsMzNaTTE5LjA5LDYuMjNhOC4yNCw4LjI0LDAsMCwwLTguMTksOGwwLC44Ny0uODYuMUE3Ljk0LDcuOTQsMCwwLDAsMywyMy4xYzAsNCwzLjc3LDcuOSw3LjYyLDcuOUgyNy4xNEMzMC4yMSwzMSwzMywyOCwzMywy'@; put 'NC42NWE2LjMxLDYuMzEsMCwwLDAtNS4zNy02LjI2bC0xLjE4LS4xOC4zOS0xLjEzQTguMTgsOC4xOCwwLDAsMCwxOS4wOSw2LjIzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0i'@; put 'TTI5LDE2LjY2YTEwLjA3LDEwLjA3LDAsMCwwLC4yNS0yLjI0YzAtLjMzLDAtLjY1LDAtMWE3LjQ1LDcuNDUsMCwwLDEtMi4xLS41NCw4LDgsMCwwLDEtLjMsNC4xNmwtLjM5LDEuMTMsMS4xOC4xOGE2LjMxLDYuMzEsMCwwLDEsNS4zNyw2LjI2QzMyLjk1LDI4LDMwLjE2LDMxLDI3LjA5LDMx'@; put 'SDEwLjU3Yy0zLjg0LDAtNy42Mi0zLjkxLTcuNjItNy45YTcuOTQsNy45NCwwLDAsMSw3LTcuODlsLjg2LS4xLDAtLjg3YTguMjQsOC4yNCwwLDAsMSw4LjE5LThBOC4xMyw4LjEzLDAsMCwxLDIyLjU4LDdhNy41Myw3LjUzLDAsMCwxLS4wOC0xLDcuNTEsNy41MSwwLDAsMSwuMDktMS4xMkEx'@; put 'MC4xMywxMC4xMywwLDAsMCwxOSw0LjIzLDEwLjI2LDEwLjI2LDAsMCwwLDguOTEsMTMuMzZhMTAsMTAsMCwwLDAtOCw5Ljc1YzAsNS4wOSw0LjY3LDkuOSw5LjYyLDkuOUgyNy4wOWM0LjE5LDAsNy44Ni0zLjksNy44Ni04LjM1QTguMjksOC4yOSwwLDAsMCwyOSwxNi42NloiLz5cbiAgICAg'@; put 'ICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVk'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjksMTYuNjZhMTAuMTQsMTAuMTQsMCwwLDAsLjItMS4zaC0yYTguMjgsOC4yOCwwLDAsMS0uMzcsMS43MmwtLjM5LDEuMTMsMS4xOC4xOGE2LjMxLDYuMzEsMCwwLDEsNS4zNyw2LjI2QzMyLjk1LDI4LDMwLjE2LDMxLDI3LjA5'@; put 'LDMxSDEwLjU3Yy0zLjg0LDAtNy42Mi0zLjkxLTcuNjItNy45YTcuOTQsNy45NCwwLDAsMSw3LTcuODlsLjg2LS4xLDAtLjg3QTguMTYsOC4xNiwwLDAsMSwyMSw2LjQ3bDEtMS44QTEwLjE5LDEwLjE5LDAsMCwwLDguOTEsMTMuMzZhMTAsMTAsMCwwLDAtOCw5Ljc1YzAsNS4wOSw0LjY3LDku'@; put 'OSw5LjYyLDkuOUgyNy4wOWM0LjE5LDAsNy44Ni0zLjksNy44Ni04LjM1QTguMjksOC4yOSwwLDAsMCwyOSwxNi42NloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVy'@; put 'dCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xp'@; put 'ZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yOSwxNi42NmExMC4wNywxMC4wNywwLDAsMCwuMjUtMi4yNEExMC4xOSwxMC4xOSwwLDAsMCw4LjkxLDEzLjM2LDEwLDEwLDAsMCwwLDEsMjMuMUMxLDI4LjE5LDUuNjIsMzMsMTAuNTcsMzNIMjcuMDlDMzEuMjgsMzMsMzUsMjkuMSwzNSwyNC42'@; put 'NUE4LjI5LDguMjksMCwwLDAsMjksMTYuNjZaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yOSwxNi42NmExMC4wNywxMC4wNywwLDAsMCwuMjUtMi4yNGMwLS4zMywwLS42NSwwLTFh'@; put 'Ny40NCw3LjQ0LDAsMCwxLTYuNi04LjU4QTEwLjEzLDEwLjEzLDAsMCwwLDE5LDQuMjMsMTAuMjYsMTAuMjYsMCwwLDAsOC45MSwxMy4zNiwxMCwxMCwwLDAsMCwxLDIzLjFDMSwyOC4xOSw1LjYyLDMzLDEwLjU3LDMzSDI3LjA5QzMxLjI4LDMzLDM1LDI5LjEsMzUsMjQuNjVBOC4yOSw4LjI5'@; put 'LDAsMCwwLDI5LDE2LjY2WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0i'@; put 'Y2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjksMTYuNjZhMTAuMTUsMTAuMTUsMCwwLDAsLjItMS4yNmgtN0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OWwzLTUuMjFBMTAuMTksMTAuMTksMCwwLDAsOC45MSwxMy4zNiwxMCwxMCwwLDAsMCwx'@; put 'LDIzLjFDMSwyOC4xOSw1LjYyLDMzLDEwLjU3LDMzSDI3LjA5QzMxLjI4LDMzLDM1LDI5LjEsMzUsMjQuNjVBOC4yOSw4LjI5LDAsMCwwLDI5LDE2LjY2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFs'@; put 'ZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz4nKSxiLkNsclNoYXBlRWxsaXBzaXNIb3Jp'@; put 'em9udGFsPSgwLHAuY2xySWNvblNWRykoJzxjaXJjbGUgY3g9IjMxLjEiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSI0LjkiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMxLjEiIGN5PSIxOCIgcj0i'@; put 'Mi45IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJh'@; put 'ZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjQuOSIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxiLkNsclNoYXBlRWxsaXBzaXNWZXJ0aWNhbD0oMCxwLmNsckljb25TVkcpKCc8Y2lyY2xlIGN4PSIxOCIgY3k9IjQuOSIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjMxLjEiIHI9IjIu'@; put 'OSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjQuOSIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAg'@; put 'ICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMzEuMSIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksYi5D'@; put 'bHJTaGFwZUZpbHRlckdyaWQ9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNSwyNS44NmwyLDFWMjAuMjdhMSwxLDAsMCwwLS4yOS0uN0wxMC4yMywxM0gyNS43OWwtNi40Nyw2LjU3YTEsMSwwLDAsMC0uMjku'@; put 'N0wxOSwyOGwyLDFWMjAuNjhMMjcuNTgsMTRBMS40NiwxLjQ2LDAsMCwwLDI4LDEzVjEyYTEsMSwwLDAsMC0xLTFIOWExLDEsMCwwLDAtMSwxdjFhMS40NiwxLjQ2LDAsMCwwLC40MiwxTDE1LDIwLjY4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHIt'@; put 'aS1zb2xpZC1wYXRoLTEiIGQ9Ik04LDExdjEuMTJhLjUuNSwwLDAsMCwuMTUuMzVsNy4yOCw3LjM2YS41LjUsMCwwLDEsLjE1LjM1djYuODlhLjUuNSwwLDAsMCwuMjguNDVsMy45NSwxLjQxYS41LjUsMCwwLDAsLjcyLS40NWwwLTguMzlhLjU0LjU0LDAsMCwxLC4xOC0uMzVsNy4xMi03LjI1'@; put 'YS41LjUsMCwwLDAsLjE1LS4zNVYxMVoiLz4nKSxiLkNsclNoYXBlRmlsdGVyR3JpZENpcmNsZT0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE1LDI1Ljg2bDIsMVYyMC4yN2ExLDEsMCwwLDAtLjI5LS43TDEw'@; put 'LjIzLDEzSDI1Ljc5bC02LjQ3LDYuNTdhMSwxLDAsMCwwLS4yOS43TDE5LDI4bDIsMVYyMC42OEwyNy41OCwxNEExLjQ2LDEuNDYsMCwwLDAsMjgsMTNWMTJhMSwxLDAsMCwwLTEtMUg5YTEsMSwwLDAsMC0xLDF2MWExLjQ2LDEuNDYsMCwwLDAsLjQyLDFMMTUsMjAuNjhaIi8+XG4gICAgICAg'@; put 'ICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIi8+XG4gICAgICAgICAgICAgICAg'@; put 'PHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0i'@; put 'Y2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNOCwxMXYxLjEyYS41LjUsMCwwLDAsLjE1LjM1bDcuMjgsNy4zNmEuNS41LDAsMCwxLC4xNS4zNXY2Ljg5YS41LjUsMCwwLDAsLjI4LjQ1bDMuOTUsMS40MWEuNS41LDAsMCwwLC43Mi0uNDVsMC04LjM5YS41NC41NCwwLDAsMSwu'@; put 'MTgtLjM1bDcuMTItNy4yNWEuNS41LDAsMCwwLC4xNS0uMzVWMTFaIi8+JyksYi5DbHJTaGFwZVZtQnVnPSgwLHAuY2xySWNvblNWRykoJzxyZWN0IHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgcng9IjMiIGZpbGw9IiNmZmZmZmYiIG9wYWNpdHk9IjAuMTUiIHN0eWxlPSJpc29sYXRpb246aXNv'@; put 'bGF0ZSIvPjxwYXRoIGQ9Ik0zLjc5LDE0LjgzYTEuMDksMS4wOSwwLDAsMC0xLjQ3LS41NiwxLjA5LDEuMDksMCwwLDAtLjU0LDEuNDlsMi40Nyw1LjRjLjM5Ljg1LjgsMS4yOSwxLjU3LDEuMjlTNywyMiw3LjM5LDIxLjE2bDIuMTctNC43N2EuMzMuMzMsMCwwLDEsLjMxLS4yLjM1LjM1LDAs'@; put 'MCwxLC4zNS4zNXY0LjYxYTEuMTUsMS4xNSwwLDAsMCwxLjE0LDEuMywxLjE3LDEuMTcsMCwwLDAsMS4xNy0xLjNWMTcuMzhhMS4xNSwxLjE1LDAsMCwxLDEuMjItMS4yLDEuMTMsMS4xMywwLDAsMSwxLjE4LDEuMnYzLjc3YTEuMTcsMS4xNywwLDEsMCwyLjMyLDBWMTcuMzhhMS4xNSwxLjE1'@; put 'LDAsMCwxLDEuMjItMS4yLDEuMTMsMS4xMywwLDAsMSwxLjE4LDEuMnYzLjc3YTEuMTYsMS4xNiwwLDEsMCwyLjMxLDBWMTYuODZhMi42OSwyLjY5LDAsMCwwLTIuNzgtMi42OSwzLjU3LDMuNTcsMCwwLDAtMi40NywxLjA1LDIuNzUsMi43NSwwLDAsMC0yLjM4LTEuMDVBMy45MywzLjkzLDAs'@; put 'MCwwLDEyLDE1LjIyYTIuODIsMi44MiwwLDAsMC0yLjA4LTEuMDVBMi41NSwyLjU1LDAsMCwwLDcuNCwxNS44OUw1LjgyLDE5LjYzbC0yLTQuOCIgZmlsbD0iI2ZmZmZmZiIvPjxwYXRoIGQ9Ik0zMywxNC4xOEExLjE0LDEuMTQsMCwwLDAsMzEuOSwxNWwtMS4xOSwzLjczTDI5LjUsMTUuMDVh'@; put 'MS4xOCwxLjE4LDAsMCwwLTEuMTUtLjg3aC0uMWExLjIsMS4yLDAsMCwwLTEuMTUuODdsLTEuMTksMy43MS0xLjE4LTMuNzFhMS4xNSwxLjE1LDAsMCwwLTEuMTEtLjg3LDEuMDgsMS4wOCwwLDAsMC0xLjEyLDEuMDcsMS42OCwxLjY4LDAsMCwwLC4xLjU0bDIsNS43YTEuMjcsMS4yNywwLDAs'@; put 'MCwxLjI3LDEsMS4yNCwxLjI0LDAsMCwwLDEuMi0uOTNsMS4yLTMuNjQsMS4yLDMuNjRhMS4yNSwxLjI1LDAsMCwwLDEuMjYuOTNBMS4yNywxLjI3LDAsMCwwLDMyLDIxLjVMMzQsMTUuNzNhMS43NywxLjc3LDAsMCwwLC4wOC0uNDhBMS4wNywxLjA3LDAsMCwwLDMzLDE0LjE4WiIgZmlsbD0i'@; put 'I2ZmZmZmZiIvPicpLGIuQ2xyU2hhcGVTZWFyY2g9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNi4zMyw1LjA1QTEwLjk1LDEwLjk1LDAsMSwxLDUuMzksMTYsMTEsMTEsMCwwLDEsMTYuMzMsNS4wNW0wLTIu'@; put 'MDVhMTMsMTMsMCwxLDAsMTMsMTMsMTMsMTMsMCwwLDAtMTMtMTNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zNSwzMy4yOWwtNy4zNy03LjQyLTEuNDIsMS40MSw3LjM3LDcuNDJBMSwxLDAsMSwwLDM1'@; put 'LDMzLjI5WiIvPicpLGIuQ2xyU2hhcGVWaWV3Q29sdW1ucz0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMxLDVINUEyLDIsMCwwLDAsMyw3VjI5YTIsMiwwLDAsMCwyLDJIMzFhMiwyLDAsMCwwLDItMlY3QTIs'@; put 'MiwwLDAsMCwzMSw1Wk0xMywyOUg1VjdoOFptMTAsMEgxNVY3aDhaIi8+JyksYi5DbHJTaGFwZUFuZ2xlRG91YmxlPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjksMTkuNDFhMSwxLDAsMCwxLS43MS0uMjlM'@; put 'MTgsOC44Myw3LjcxLDE5LjEyYTEsMSwwLDAsMS0xLjQxLTEuNDFMMTgsNiwyOS43MSwxNy43MUExLDEsMCwwLDEsMjksMTkuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yOSwzMC40MWExLDEsMCww'@; put 'LDEtLjcxLS4yOUwxOCwxOS44Myw3LjcxLDMwLjEyYTEsMSwwLDAsMS0xLjQxLTEuNDFMMTgsMTcsMjkuNzEsMjguNzFBMSwxLDAsMCwxLDI5LDMwLjQxWiIvPicpLGIuQ2xyU2hhcGVDYWxlbmRhcj0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtMSIgZD0iTTMyLjI1LDZIMjlWOGgzVjMwSDRWOEg3VjZIMy43NUExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjcuODFBMS43OCwxLjc4LDAsMCwwLDMyLjI1LDZaIi8+'@; put 'XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIHg9IjgiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTMiIHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4PSIyMCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVj'@; put 'dCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgeD0iMjYiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIHg9IjgiIHk9IjE5IiB3aWR0'@; put 'aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHg9IjE0IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC04IiB4PSIyMCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgeD0iMjYiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4g'@; put 'ICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIiB4PSI4IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0x'@; put 'MSIgeD0iMTQiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEyIiB4PSIyMCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVj'@; put 'dCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTMiIHg9IjI2IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNCIgZD0iTTEwLDEwYTEsMSww'@; put 'LDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNSIgZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFWM2ExLDEsMCwwLDAtMiwwVjlBMSwxLDAsMCww'@; put 'LDI2LDEwWiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNiIgeD0iMTMiIHk9IjYiIHdpZHRoPSIxMCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl'@; put 'ZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzIsMTMuMjJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1LDAsMCwx'@; put 'LDMyLDEzLjIyWiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgeD0iOCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdl'@; put 'ZCIgeD0iMjAiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIiB4PSIyNiIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAg'@; put 'ICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIHg9IjgiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIiB4PSIxNCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1iYWRnZWQiIHg9IjIwIiB5PSIxOSIgd2lk'@; put 'dGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWJhZGdlZCIgeD0iMjYiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xh'@; put 'c3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTAtLWJhZGdlZCIgeD0iOCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0x'@; put 'MS0tYmFkZ2VkIiB4PSIxNCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMi0tYmFkZ2VkIiB4PSIyMCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIi'@; put 'Lz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMy0tYmFkZ2VkIiB4PSIyNiIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xNC0tYmFkZ2VkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMTUtLWJhZGdlZCIgZD0iTTIyLjUsNkgxM1Y4aDkuNzhBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE2LS1iYWRnZWQgY2xyLWktYmFkZ2Ui'@; put 'IGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRIMzJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFW'@; put 'MzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjgiIHk9IjE0'@; put 'IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxy'@; put 'ZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiB4PSI4IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC01LS1hbGVydGVkIiB4PSIxNCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIgeD0iMjAiIHk9IjE5IiB3aWR0aD0iMiIg'@; put 'aGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWFsZXJ0ZWQiIHg9IjI2IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC04LS1hbGVydGVkIiB4PSI4IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC05LS1h'@; put 'bGVydGVkIiB4PSIxNCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTAtLWFsZXJ0ZWQiIHg9IjIwIiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIv'@; put 'PlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYWxlcnRlZCIgeD0iMjYiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEyLS1hbGVydGVkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+PHBvbHlnb24gcG9pbnRzPSIyMS4yOSA2IDEzIDYgMTMgOCAyMC4xNCA4IDIxLjI5IDYiLz5cbiAgICAg'@; put 'ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQu'@; put 'NzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuMjUsNmgtNFY5YTIuMiwyLjIsMCwxLDEtNC40LDBWNkgxMi4yVjlBMi4yLDIuMiww'@; put 'LDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWNy44MUExLjc4LDEuNzgsMCwwLDAsMzIuMjUsNlpNMTAsMjZIOFYyNGgyWm0wLTVIOFYxOWgyWm0wLTVIOFYxNGgy'@; put 'Wm02LDEwSDE0VjI0aDJabTAtNUgxNFYxOWgyWm0wLTVIMTRWMTRoMlptNiwxMEgyMFYyNGgyWm0wLTVIMjBWMTloMlptMC01SDIwVjE0aDJabTYsMTBIMjZWMjRoMlptMC01SDI2VjE5aDJabTAtNUgyNlYxNGgyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xp'@; put 'ZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMjYsMTBhMSwxLDAsMCww'@; put 'LDEtMVYzYTEsMSwwLDAsMC0yLDBWOUExLDEsMCwwLDAsMjYsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEs'@; put 'MSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTMwLDEzLjVBNy41LDcuNSwwLDAsMSwyMi41LDZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4'@; put 'LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMCwxMy41Wk0xMCwyNkg4VjI0aDJabTAtNUg4VjE5aDJabTAtNUg4VjE0aDJabTYsMTBIMTRWMjRoMlptMC01'@; put 'SDE0VjE5aDJabTAtNUgxNFYxNGgyWm02LDEwSDIwVjI0aDJabTAtNUgyMFYxOWgyWm0wLTVIMjBWMTRoMlptNiwxMEgyNlYyNGgyWm0wLTVIMjZWMTloMlptMC01SDI2VjE0aDJaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1z'@; put 'b2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMy42OCwxNS40SDIyLjIzQTMuNjgsMy42'@; put 'OCwwLDAsMSwxOSw5Ljg5TDIxLjI5LDZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjE1LjM4Wk0xMCwyNkg4VjI0aDJabTAtNUg4'@; put 'VjE5aDJabTAtNUg4VjE0aDJabTYsMTBIMTRWMjRoMlptMC01SDE0VjE5aDJabTAtNUgxNFYxNGgyWm02LDEwSDIwVjI0aDJabTAtNUgyMFYxOWgyWm02LDVIMjZWMjRoMlptMC01SDI2VjE5aDJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVk'@; put 'IGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFs'@; put 'ZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz4nKSxiLkNsclNoYXBlRXZlbnQ9KDAscC5j'@; put 'bHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNi4xNywyNS44NiwxMC44MSwyMC41YTEsMSwwLDAsMSwxLjQxLTEuNDFMMTYuMTcsMjNsOC42NC04LjY0YTEsMSwwLDAsMSwxLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAg'@; put 'ICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMi4yNSw2SDI5VjhoM1YzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwz'@; put 'MC4xOVY3LjgxQTEuNzgsMS43OCwwLDAsMCwzMi4yNSw2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+'@; put 'XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0yNiwxMGExLDEsMCwwLDAsMS0xVjNhMSwxLDAsMCwwLTIsMFY5QTEsMSwwLDAsMCwyNiwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgeD0iMTMiIHk9IjYiIHdpZHRoPSIxMCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTAuODEsMjAuNWw1'@; put 'LjM2LDUuMzZMMjYuMjIsMTUuODFhMSwxLDAsMCwwLTEuNDEtMS40MUwxNi4xNywyM2wtMy45NC0zLjk0YTEsMSwwLDAsMC0xLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2Vk'@; put 'IiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzIsMTMuMjJWMzBINFY4'@; put 'SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgZD0iTTIyLjUsNkgxM1Y4aDkuNzhBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAs'@; put 'MCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0xMC44MSwyMC41bDUuMzYsNS4zNkwyNi4yMiwxNS44MWExLDEsMCwwLDAsLjIzLS40'@; put 'MUgyMy44TDE2LjE3LDIzbC0zLjk0LTMuOTRhMSwxLDAsMCwwLTEuNDEsMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgcG9pbnRzPSIyMS4yOSA2IDEzIDYgMTMgOCAy'@; put 'MC4xNCA4IDIxLjI5IDYiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRIMzJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlB'@; put 'MS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0y'@; put 'Ni44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWkt'@; put 'c29saWQtcGF0aC0xIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFWM2Ex'@; put 'LDEsMCwwLDAtMiwwVjlBMSwxLDAsMCwwLDI2LDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0zMi4yNSw2aC00VjlhMi4yLDIuMiwwLDAsMS00LjQsMFY2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5VjZo'@; put 'LTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVY3LjgxQTEuNzgsMS43OCwwLDAsMCwzMi4yNSw2Wk0yNS45NCwxNi41OGwtOS42Nyw5LjY3TDExLDIwLjk0QTEuMzYsMS4zNiwwLDAsMSwx'@; put 'Mi45LDE5bDMuMzgsMy4zOEwyNCwxNC42NmExLjM2LDEuMzYsMCwxLDEsMS45MywxLjkzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwx'@; put 'LDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNEgyNi4zYTEuMzQsMS4zNCwwLDAsMS0uMzYsMS4xOGwtOS42Nyw5'@; put 'LjY3TDExLDIwLjk0QTEuMzYsMS4zNiwwLDAsMSwxMi45LDE5bDMuMzgsMy4zOCw3LTdoLTFBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjEuMjksNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMu'@; put 'NzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4y'@; put 'OCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0t'@; put 'YmFkZ2VkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMCwxMy41QTcuNSw3'@; put 'LjUsMCwwLDEsMjIuNSw2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5VjZoLTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzAsMTMuNVptLTQu'@; put 'MDYsMy4wOC05LjY3LDkuNjdMMTEsMjAuOTRBMS4zNiwxLjM2LDAsMCwxLDEyLjksMTlsMy4zOCwzLjM4TDI0LDE0LjY2YTEuMzYsMS4zNiwwLDEsMSwxLjkzLDEuOTNaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1w'@; put 'YXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLGIuQ2xyU2hhcGVFeWU9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjYyLDE3LjUzYy0zLjM3LTYuMjMtOS4yOC0xMC0xNS44Mi0xMFM1LjM0LDExLjMsMiwxNy41M0wxLjcyLDE4bC4yNi40'@; put 'OGMzLjM3LDYuMjMsOS4yOCwxMCwxNS44MiwxMHMxMi40Ni0zLjcyLDE1LjgyLTEwbC4yNi0uNDhaTTE3LjgsMjYuNDNDMTIuMTcsMjYuNDMsNywyMy4yOSw0LDE4YzMtNS4yOSw4LjE3LTguNDMsMTMuOC04LjQzUzI4LjU0LDEyLjcyLDMxLjU5LDE4QzI4LjU0LDIzLjI5LDIzLjQyLDI2LjQz'@; put 'LDE3LjgsMjYuNDNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjA5LDExLjE3QTYuODYsNi44NiwwLDEsMCwyNSwxOCw2Ljg2LDYuODYsMCwwLDAsMTguMDksMTEuMTdabTAsMTEuNzJBNC44Niw0Ljg2LDAs'@; put 'MSwxLDIzLDE4LDQuODcsNC44NywwLDAsMSwxOC4wOSwyMi44OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjIsMTcuNTNjLTMuMzctNi4yMy05LjI4LTEwLTE1LjgyLTEwUzUuMzQsMTEuMywyLDE3LjUz'@; put 'TDEuNzIsMThsLjI2LjQ4YzMuMzcsNi4yMyw5LjI4LDEwLDE1LjgyLDEwczEyLjQ2LTMuNzIsMTUuODItMTBsLjI2LS40OFpNMTcuOCwyNi40M0MxMi4xNywyNi40Myw3LDIzLjI5LDQsMThjMy01LjI5LDguMTctOC40MywxMy44LTguNDNTMjguNTQsMTIuNzIsMzEuNTksMThDMjguNTQsMjMu'@; put 'MjksMjMuNDIsMjYuNDMsMTcuOCwyNi40M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4LjA5IiBjeT0iMTguMDMiIHI9IjYuODYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz4nKSxi'@; put 'LkNsclNoYXBlRXllSGlkZT0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjUuMTksMjAuNEE2Ljc4LDYuNzgsMCwwLDAsMjUuNjIsMThhNi44Niw2Ljg2LDAsMCwwLTYuODYtNi44Niw2Ljc5LDYuNzksMCwwLDAtMi4zNy40M0wxOCwxMy4yM2E0Ljc4LDQuNzgsMCwwLDEsLjc0LS4wNkE0'@; put 'Ljg3LDQuODcsMCwwLDEsMjMuNjIsMThhNC43OSw0Ljc5LDAsMCwxLS4wNi43NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQuMjksMTcuNTNjLTMuMzctNi4yMy05LjI4LTEwLTE1LjgyLTEwYTE2LjgyLDE2'@; put 'LjgyLDAsMCwwLTUuMjQuODVMMTQuODQsMTBhMTQuNzgsMTQuNzgsMCwwLDEsMy42My0uNDdjNS42MywwLDEwLjc1LDMuMTQsMTMuOCw4LjQzYTE3Ljc1LDE3Ljc1LDAsMCwxLTQuMzcsNS4xbDEuNDIsMS40MmExOS45MywxOS45MywwLDAsMCw1LTZsLjI2LS40OFoiIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNC44Nyw1Ljc4bDQuNDYsNC40NmExOS41MiwxOS41MiwwLDAsMC02LjY5LDcuMjlMMi4zOCwxOGwuMjYuNDhjMy4zNyw2LjIzLDkuMjgsMTAsMTUuODIsMTBhMTYuOTMsMTYuOTMsMCwwLDAsNy4z'@; put 'Ny0xLjY5bDUsNSwxLjc1LTEuNS0yNi0yNlptOS43NSw5Ljc1LDYuNjUsNi42NWE0LjgxLDQuODEsMCwwLDEtMi41LjcyQTQuODcsNC44NywwLDAsMSwxMy45LDE4LDQuODEsNC44MSwwLDAsMSwxNC42MiwxNS41M1ptLTEuNDUtMS40NWE2Ljg1LDYuODUsMCwwLDAsOS41NSw5LjU1bDEuNiwx'@; put 'LjZhMTQuOTEsMTQuOTEsMCwwLDEtNS44NiwxLjJjLTUuNjMsMC0xMC43NS0zLjE0LTEzLjgtOC40M2ExNy4yOSwxNy4yOSwwLDAsMSw2LjEyLTYuM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguMzcsMTEu'@; put 'MTdBNi43OSw2Ljc5LDAsMCwwLDE2LDExLjZsOC44LDguOEE2Ljc4LDYuNzgsMCwwLDAsMjUuMjMsMTgsNi44Niw2Ljg2LDAsMCwwLDE4LjM3LDExLjE3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTM0LjI5LDE3LjUz'@; put 'Yy0zLjM3LTYuMjMtOS4yOC0xMC0xNS44Mi0xMGExNi44MiwxNi44MiwwLDAsMC01LjI0Ljg1TDE0Ljg0LDEwYTE0Ljc4LDE0Ljc4LDAsMCwxLDMuNjMtLjQ3YzUuNjMsMCwxMC43NSwzLjE0LDEzLjgsOC40M2ExNy43NSwxNy43NSwwLDAsMS00LjM3LDUuMWwxLjQyLDEuNDJhMTkuOTMsMTku'@; put 'OTMsMCwwLDAsNS02bC4yNi0uNDhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNC44Nyw1Ljc4bDQuNDYsNC40NmExOS41MiwxOS41MiwwLDAsMC02LjY5LDcuMjlMMi4zOCwxOGwuMjYuNDhjMy4zNyw2LjIzLDkuMjgs'@; put 'MTAsMTUuODIsMTBhMTYuOTMsMTYuOTMsMCwwLDAsNy4zNy0xLjY5bDUsNSwxLjc1LTEuNS0yNi0yNlptOC4zLDguM2E2Ljg1LDYuODUsMCwwLDAsOS41NSw5LjU1bDEuNiwxLjZhMTQuOTEsMTQuOTEsMCwwLDEtNS44NiwxLjJjLTUuNjMsMC0xMC43NS0zLjE0LTEzLjgtOC40M2ExNy4yOSwx'@; put 'Ny4yOSwwLDAsMSw2LjEyLTYuM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz4nKSxiLkNsclNoYXBlU3RlcEZvcndhcmQyPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik03LjA4LDYuNTJhMS42OCwxLjY4LDAsMCwwLDAsMi40TDE2LjUxLDE4LDcuMTIsMjcu'@; put 'MDhhMS43LDEuNywwLDAsMCwyLjM2LDIuNDRoMEwyMS40LDE4LDkuNDgsNi40N0ExLjY5LDEuNjksMCwwLDAsNy4wOCw2LjUyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI2LjQ5LDVhMS43LDEuNywwLDAsMC0xLjcsMS43VjI5LjNh'@; put 'MS43LDEuNywwLDAsMCwzLjQsMFY2LjdBMS43LDEuNywwLDAsMCwyNi40OSw1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksYi5DbHJTaGFwZUFycm93PSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNy42NiwxNS42MSwxOCw2LDguMzQsMTUu'@; put 'NjFBMSwxLDAsMSwwLDkuNzUsMTdMMTcsOS44MVYyOC45NGExLDEsMCwxLDAsMiwwVjkuODFMMjYuMjUsMTdhMSwxLDAsMCwwLDEuNDEtMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+JyksYi5Db3JlU2hhcGVzPXsidW5rbm93bi1zdGF0dXMiOmIu'@; put 'Q2xyU2hhcGVVbmtub3duU3RhdHVzLGhvbWU6Yi5DbHJTaGFwZUhvbWUsY29nOmIuQ2xyU2hhcGVDb2csY2hlY2s6Yi5DbHJTaGFwZUNoZWNrLHRpbWVzOmIuQ2xyU2hhcGVUaW1lcywiZXhjbGFtYXRpb24tdHJpYW5nbGUiOmIuQ2xyU2hhcGVFeGNsYW1hdGlvblRyaWFuZ2xlLCJleGNsYW1h'@; put 'dGlvbi1jaXJjbGUiOmIuQ2xyU2hhcGVFeGNsYW1hdGlvbkNpcmNsZSwiY2hlY2stY2lyY2xlIjpiLkNsclNoYXBlQ2hlY2tDaXJjbGUsImluZm8tY2lyY2xlIjpiLkNsclNoYXBlSW5mb0NpcmNsZSwiaW5mby1zdGFuZGFyZCI6Yi5DbHJTaGFwZUluZm9TdGFuZGFyZCwic3VjY2Vzcy1zdGFu'@; put 'ZGFyZCI6Yi5DbHJTaGFwZVN1Y2Nlc3NTdGFuZGFyZCwiZXJyb3Itc3RhbmRhcmQiOmIuQ2xyU2hhcGVFcnJvclN0YW5kYXJkLCJ3YXJuaW5nLXN0YW5kYXJkIjpiLkNsclNoYXBlV2FybmluZ1N0YW5kYXJkLCJoZWxwLWluZm8iOmIuQ2xyU2hhcGVIZWxwSW5mbyxiYXJzOmIuQ2xyU2hhcGVC'@; put 'YXJzLHVzZXI6Yi5DbHJTaGFwZVVzZXIsYW5nbGU6Yi5DbHJTaGFwZUFuZ2xlLGZvbGRlcjpiLkNsclNoYXBlRm9sZGVyLCJmb2xkZXItb3BlbiI6Yi5DbHJTaGFwZUZvbGRlck9wZW4sYmVsbDpiLkNsclNoYXBlQmVsbCxpbWFnZTpiLkNsclNoYXBlSW1hZ2UsY2xvdWQ6Yi5DbHJTaGFwZUNs'@; put 'b3VkLCJlbGxpcHNpcy1ob3Jpem9udGFsIjpiLkNsclNoYXBlRWxsaXBzaXNIb3Jpem9udGFsLCJlbGxpcHNpcy12ZXJ0aWNhbCI6Yi5DbHJTaGFwZUVsbGlwc2lzVmVydGljYWwsImZpbHRlci1ncmlkIjpiLkNsclNoYXBlRmlsdGVyR3JpZCwiZmlsdGVyLWdyaWQtY2lyY2xlIjpiLkNsclNo'@; put 'YXBlRmlsdGVyR3JpZENpcmNsZSwidm0tYnVnIjpiLkNsclNoYXBlVm1CdWcsc2VhcmNoOmIuQ2xyU2hhcGVTZWFyY2gsInZpZXctY29sdW1ucyI6Yi5DbHJTaGFwZVZpZXdDb2x1bW5zLCJhbmdsZS1kb3VibGUiOmIuQ2xyU2hhcGVBbmdsZURvdWJsZSxjYWxlbmRhcjpiLkNsclNoYXBlQ2Fs'@; put 'ZW5kYXIsZXZlbnQ6Yi5DbHJTaGFwZUV2ZW50LGV5ZTpiLkNsclNoYXBlRXllLCJleWUtaGlkZSI6Yi5DbHJTaGFwZUV5ZUhpZGUsInN0ZXAtZm9yd2FyZC0yIjpiLkNsclNoYXBlU3RlcEZvcndhcmQyLGFycm93OmIuQ2xyU2hhcGVBcnJvd30sT2JqZWN0LmRlZmluZVByb3BlcnR5KGIuQ29y'@; put 'ZVNoYXBlcywiaG91c2UiLCgwLF8uZGVzY3JpcHRvckNvbmZpZykoYi5Db3JlU2hhcGVzLmhvbWUpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5Db3JlU2hhcGVzLCJzZXR0aW5ncyIsKDAsXy5kZXNjcmlwdG9yQ29uZmlnKShiLkNvcmVTaGFwZXMuY29nKSksT2JqZWN0LmRlZmluZVByb3Bl'@; put 'cnR5KGIuQ29yZVNoYXBlcywic3VjY2VzcyIsKDAsXy5kZXNjcmlwdG9yQ29uZmlnKShiLkNvcmVTaGFwZXMuY2hlY2spKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5Db3JlU2hhcGVzLCJjbG9zZSIsKDAsXy5kZXNjcmlwdG9yQ29uZmlnKShiLkNvcmVTaGFwZXMudGltZXMpKSxPYmplY3Qu'@; put 'ZGVmaW5lUHJvcGVydHkoYi5Db3JlU2hhcGVzLCJ3YXJuaW5nIiwoMCxfLmRlc2NyaXB0b3JDb25maWcpKGIuQ29yZVNoYXBlc1siZXhjbGFtYXRpb24tdHJpYW5nbGUiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShiLkNvcmVTaGFwZXMsImVycm9yIiwoMCxfLmRlc2NyaXB0b3JDb25maWcp'@; put 'KGIuQ29yZVNoYXBlc1siZXhjbGFtYXRpb24tY2lyY2xlIl0pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5Db3JlU2hhcGVzLCJpbmZvIiwoMCxfLmRlc2NyaXB0b3JDb25maWcpKGIuQ29yZVNoYXBlc1siaW5mby1jaXJjbGUiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShiLkNvcmVTaGFw'@; put 'ZXMsIm1lbnUiLCgwLF8uZGVzY3JpcHRvckNvbmZpZykoYi5Db3JlU2hhcGVzLmJhcnMpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5Db3JlU2hhcGVzLCJhdmF0YXIiLCgwLF8uZGVzY3JpcHRvckNvbmZpZykoYi5Db3JlU2hhcGVzLnVzZXIpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5D'@; put 'b3JlU2hhcGVzLCJjYXJldCIsKDAsXy5kZXNjcmlwdG9yQ29uZmlnKShiLkNvcmVTaGFwZXMuYW5nbGUpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5Db3JlU2hhcGVzLCJkaXJlY3RvcnkiLCgwLF8uZGVzY3JpcHRvckNvbmZpZykoYi5Db3JlU2hhcGVzLmZvbGRlcikpLE9iamVjdC5kZWZp'@; put 'bmVQcm9wZXJ0eShiLkNvcmVTaGFwZXMsIm5vdGlmaWNhdGlvbiIsKDAsXy5kZXNjcmlwdG9yQ29uZmlnKShiLkNvcmVTaGFwZXMuYmVsbCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShiLkNvcmVTaGFwZXMsImNvbGxhcHNlIiwoMCxfLmRlc2NyaXB0b3JDb25maWcpKGIuQ29yZVNoYXBlc1si'@; put 'YW5nbGUtZG91YmxlIl0pKX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnLnRzIjoKLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXAogICAgICAgICAgICAgICAgICAhKioqIC4vcHJvamVjdHMv'@; put 'aWNvbnMvc3JjL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnLnRzICoqKiEKICAgICAgICAgICAgICAgICAgXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qISBubyBzdGF0aWMgZXhwb3J0cyBmb3VuZCAqL2Z1bmN0aW9uKEosYixEKXsi'@; put 'dXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGIuZGVzY3JpcHRvckNvbmZpZz12b2lkIDAsYi5kZXNjcmlwdG9yQ29uZmlnPWZ1bmN0aW9uIF8ocCl7cmV0dXJue2VudW1lcmFibGU6ITAsd3JpdGFibGU6ITAsY29uZmlndXJhYmxl'@; put 'OiEwLHZhbHVlOnB9fX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3NoYXBlLXRlbXBsYXRlLW9ic2VydmVyLnRzIjoKLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXAogICAgICAgICAgICAgICAgICAhKioqIC4v'@; put 'cHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3NoYXBlLXRlbXBsYXRlLW9ic2VydmVyLnRzICoqKiEKICAgICAgICAgICAgICAgICAgXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qISBubyBzdGF0aWMgZXhwb3J0cyBmb3Vu'@; put 'ZCAqL2Z1bmN0aW9uKEosYixEKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGIuU2hhcGVUZW1wbGF0ZU9ic2VydmVyPWIuY2hhbmdlSGFuZGxlckNhbGxiYWNrcz12b2lkIDAsYi5jaGFuZ2VIYW5kbGVyQ2FsbGJhY2tzPXt9'@; put 'O3ZhciBfPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcCgpe3RoaXMuY2FsbGJhY2tzPWIuY2hhbmdlSGFuZGxlckNhbGxiYWNrc31yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHAsImluc3RhbmNlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHAuc2luZ2xlSW5zdGFuY2V8fChwLnNpbmdsZUlu'@; put 'c3RhbmNlPW5ldyBwKSxwLnNpbmdsZUluc3RhbmNlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHAucHJvdG90eXBlLnN1YnNjcmliZVRvPWZ1bmN0aW9uKE4sdyl7dmFyIEY9dGhpcztyZXR1cm4gdGhpcy5jYWxsYmFja3NbTl0/LTE9PT10aGlzLmNhbGxiYWNrc1tOXS5pbmRl'@; put 'eE9mKHcpJiZ0aGlzLmNhbGxiYWNrc1tOXS5wdXNoKHcpOnRoaXMuY2FsbGJhY2tzW05dPVt3XSxmdW5jdGlvbigpe3ZhciBIPUYuY2FsbGJhY2tzW05dLmluZGV4T2Yodyk7Ri5jYWxsYmFja3NbTl0uc3BsaWNlKEgsMSksMD09PUYuY2FsbGJhY2tzW05dLmxlbmd0aCYmZGVsZXRlIEYuY2Fs'@; put 'bGJhY2tzW05dfX0scC5wcm90b3R5cGUuZW1pdENoYW5nZXM9ZnVuY3Rpb24oTix3KXt0aGlzLmNhbGxiYWNrc1tOXSYmdGhpcy5jYWxsYmFja3NbTl0ubWFwKGZ1bmN0aW9uKEYpe0Yodyl9KX0scH0oKTtiLlNoYXBlVGVtcGxhdGVPYnNlcnZlcj1ffSwiLi9wcm9qZWN0cy9pY29ucy9zcmMv'@; put 'dXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiOgovKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcCiAgICAgICAgICAgICAgICAgICEqKiogLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMgKioq'@; put 'IQogICAgICAgICAgICAgICAgICBcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyohIG5vIHN0YXRpYyBleHBvcnRzIGZvdW5kICovZnVuY3Rpb24oSixiLEQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoYiwiX19l'@; put 'c01vZHVsZSIse3ZhbHVlOiEwfSksYi5jbHJJY29uU1ZHPXZvaWQgMDtiLmNsckljb25TVkc9ZnVuY3Rpb24gdyhGKXt2YXIgSD0iIjtyZXR1cm4gRi5pbmRleE9mKCItLWJhZGdlZCIpPi0xJiYoSCs9ImNhbi1iYWRnZSAiKSxGLmluZGV4T2YoIi0tYWxlcnRlZCIpPi0xJiYoSCs9ImNhbi1h'@; put 'bGVydCAiKSxGLmluZGV4T2YoImNsci1pLXNvbGlkIik+LTEmJihIKz0iaGFzLXNvbGlkICIpLChIPyc8c3ZnIHZlcnNpb249IjEuMSIgY2xhc3M9IicrSCsnIiB2aWV3Qm94PSIwIDAgMzYgMzYiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiXG4gICAgeG1sbnM9Imh0dHA6'@; put 'Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgZm9jdXNhYmxlPSJmYWxzZSIgcm9sZT0iaW1nIj4nOic8c3ZnIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDM2IDM2IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1p'@; put 'ZCBtZWV0IlxuICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIGZvY3VzYWJsZT0iZmFsc2UiIHJvbGU9ImltZyI+JykrRisiPC9zdmc+In19fSl9LDgwNjg1OmZ1bmN0aW9uKGNlKXtjZS5leHBv'@; put 'cnRzPWZ1bmN0aW9uKEope3ZhciBiPXt9O2Z1bmN0aW9uIEQoXyl7aWYoYltfXSlyZXR1cm4gYltfXS5leHBvcnRzO3ZhciBwPWJbX109e2k6XyxsOiExLGV4cG9ydHM6e319O3JldHVybiBKW19dLmNhbGwocC5leHBvcnRzLHAscC5leHBvcnRzLEQpLHAubD0hMCxwLmV4cG9ydHN9cmV0dXJu'@; put 'IEQubT1KLEQuYz1iLEQuZD1mdW5jdGlvbihfLHAsTil7RC5vKF8scCl8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfLHAse2VudW1lcmFibGU6ITAsZ2V0Ok59KX0sRC5yPWZ1bmN0aW9uKF8pe3R5cGVvZiBTeW1ib2w8InUiJiZTeW1ib2wudG9TdHJpbmdUYWcmJk9iamVjdC5kZWZpbmVQcm9w'@; put 'ZXJ0eShfLFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoXywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LEQudD1mdW5jdGlvbihfLHApe2lmKDEmcCYmKF89RChfKSksOCZwfHw0JnAmJiJvYmplY3QiPT10eXBlb2YgXyYmXyYmXy5f'@; put 'X2VzTW9kdWxlKXJldHVybiBfO3ZhciBOPU9iamVjdC5jcmVhdGUobnVsbCk7aWYoRC5yKE4pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShOLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTpffSksMiZwJiYic3RyaW5nIiE9dHlwZW9mIF8pZm9yKHZhciB3IGluIF8pRC5kKE4sdyxmdW5j'@; put 'dGlvbihGKXtyZXR1cm4gX1tGXX0uYmluZChudWxsLHcpKTtyZXR1cm4gTn0sRC5uPWZ1bmN0aW9uKF8pe3ZhciBwPV8mJl8uX19lc01vZHVsZT9mdW5jdGlvbigpe3JldHVybiBfLmRlZmF1bHR9OmZ1bmN0aW9uKCl7cmV0dXJuIF99O3JldHVybiBELmQocCwiYSIscCkscH0sRC5vPWZ1bmN0'@; put 'aW9uKF8scCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChfLHApfSxELnA9IiIsRChELnM9Ii4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9hbGwtc2hhcGVzLnRzIil9KHsiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2FsbC1zaGFwZXMudHMiOgov'@; put 'KiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcCiAgICAgICAgICAgICAgICAgICEqKiogLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2FsbC1zaGFwZXMudHMgKioqIQogICAgICAgICAgICAgICAgICBcKioqKioqKioqKioqKioqKioqKioq'@; put 'KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyohIG5vIHN0YXRpYyBleHBvcnRzIGZvdW5kICovZnVuY3Rpb24oSixiLEQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoYiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksYi5BbGxTaGFwZXM9dm9pZCAwO3ZhciBfPUQo'@; put 'Ci8qISAuL2NoYXJ0LXNoYXBlcyAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2NoYXJ0LXNoYXBlcy50cyIpLHA9RCgKLyohIC4vY29tbWVyY2Utc2hhcGVzICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29tbWVyY2Utc2hhcGVzLnRzIiksTj1EKAovKiEgLi9jb3Jl'@; put 'LXNoYXBlcyAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2NvcmUtc2hhcGVzLnRzIiksdz1EKAovKiEgLi9lc3NlbnRpYWwtc2hhcGVzICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvZXNzZW50aWFsLXNoYXBlcy50cyIpLEY9RCgKLyohIC4vbWVkaWEtc2hhcGVzICov'@; put 'CiIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvbWVkaWEtc2hhcGVzLnRzIiksSD1EKAovKiEgLi9zb2NpYWwtc2hhcGVzICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvc29jaWFsLXNoYXBlcy50cyIpLFI9RCgKLyohIC4vdGVjaG5vbG9neS1zaGFwZXMgKi8KIi4vcHJvamVj'@; put 'dHMvaWNvbnMvc3JjL3NoYXBlcy90ZWNobm9sb2d5LXNoYXBlcy50cyIpLGo9RCgKLyohIC4vdGV4dC1lZGl0LXNoYXBlcyAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL3RleHQtZWRpdC1zaGFwZXMudHMiKSxQPUQoCi8qISAuL3RyYXZlbC1zaGFwZXMgKi8KIi4vcHJvamVjdHMv'@; put 'aWNvbnMvc3JjL3NoYXBlcy90cmF2ZWwtc2hhcGVzLnRzIiksTD1bTi5Db3JlU2hhcGVzLHAuQ29tbWVyY2VTaGFwZXMsdy5Fc3NlbnRpYWxTaGFwZXMsRi5NZWRpYVNoYXBlcyxILlNvY2lhbFNoYXBlcyxSLlRlY2hub2xvZ3lTaGFwZXMsUC5UcmF2ZWxTaGFwZXMsXy5DaGFydFNoYXBlcyxq'@; put 'LlRleHRFZGl0U2hhcGVzXSxZPXt9O2IuQWxsU2hhcGVzPVk7Zm9yKHZhciBCPTAsVz1MO0I8Vy5sZW5ndGg7QisrKXt2YXIgWj1XW0JdO2Zvcih2YXIgWCBpbiBaKVouaGFzT3duUHJvcGVydHkoWCkmJihZW1hdPVpbWF0pfXR5cGVvZiB3aW5kb3c8InUiJiZ3aW5kb3cuaGFzT3duUHJvcGVy'@; put 'dHkoIkNsYXJpdHlJY29ucyIpJiZ3aW5kb3cuQ2xhcml0eUljb25zLmFkZChZKX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9jaGFydC1zaGFwZXMudHMiOgovKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlwKICAgICAgICAgICAg'@; put 'ICAgICAgISoqKiAuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY2hhcnQtc2hhcGVzLnRzICoqKiEKICAgICAgICAgICAgICAgICAgXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyohIG5vIHN0YXRpYyBleHBvcnRzIGZvdW5kICovZnVu'@; put 'Y3Rpb24oSixiLEQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoYiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksYi5DaGFydFNoYXBlcz1iLkNsclNoYXBlQmVsbEN1cnZlPWIuQ2xyU2hhcGVUaWNrQ2hhcnQ9Yi5DbHJTaGFwZVNjYXR0ZXJQbG90PWIuQ2xyU2hhcGVQaWVD'@; put 'aGFydD1iLkNsclNoYXBlTGluZUNoYXJ0PWIuQ2xyU2hhcGVIZWF0TWFwPWIuQ2xyU2hhcGVHcmlkQ2hhcnQ9Yi5DbHJTaGFwZUN1cnZlQ2hhcnQ9Yi5DbHJTaGFwZUNsb3VkQ2hhcnQ9Yi5DbHJTaGFwZUJ1YmJsZUNoYXJ0PWIuQ2xyU2hhcGVCb3hQbG90PWIuQ2xyU2hhcGVCYXJDaGFydD1i'@; put 'LkNsclNoYXBlQXhpc0NoYXJ0PXZvaWQgMDt2YXIgXz1EKAovKiEgLi4vdXRpbHMvZGVzY3JpcHRvci1jb25maWcgKi8KIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnLnRzIikscD1EKAovKiEgLi4vdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IgKi8KIi4vcHJv'@; put 'amVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yLnRzIik7Yi5DbHJTaGFwZUF4aXNDaGFydD0oMCxwLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0gMzIgNSBMIDQgNSBDIDIuODk1IDUgMiA1'@; put 'Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDUgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNSAzNCAyOSBMIDM0IDcgQyAzNCA1Ljg5NSAzMy4xMDUgNSAzMiA1IFogTSA0IDI5IEwgNCA3IEwgMzIgNyBMIDMyIDI5IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0gNi4wMDcgMjYuNzMxIEwgMjcuNzMgMjYuNzMgQyAyOC40OSAyNi42NyAyOC45MSAyNS44IDI4LjQ3IDI1LjE3IEMgMjguMyAyNC45MiAyOC4wMyAyNC43NiAyNy43MyAyNC43NCBMIDguMDAxIDI0LjczNiBMIDguMDEgMTEuMDEg'@; put 'QyA4LjAxIDEwLjIzIDcuMTcgOS43NSA2LjUgMTAuMTQgQyA2LjE5IDEwLjMxIDYgMTAuNjUgNiAxMS4wMSBMIDYuMDA3IDI2LjczMSBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEw'@; put 'NSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NiAzNCA3IFogTSA2LjAwNyAyNi43MzEgTCAyNy43MyAyNi43MyBDIDI4LjQ5IDI2LjY3IDI4LjkxIDI1LjggMjguNDcg'@; put 'MjUuMTcgQyAyOC4zIDI0LjkyIDI4LjAzIDI0Ljc2IDI3LjczIDI0Ljc0IEwgOC4wMDEgMjQuNzM2IEwgOC4wMSAxMS4wMSBDIDguMDEgMTAuMjMgNy4xNyA5Ljc1IDYuNSAxMC4xNCBDIDYuMTkgMTAuMzEgNiAxMC42NSA2IDExLjAxIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDMyIDEzLjIyIEwgMzIgMjkgTCA0IDI5IEwgNCA3IEwgMjIuNTcgNyBDIDIyLjUyNCA2LjY2OCAyMi41MDEgNi4zMzQgMjIuNSA2IEMgMjIuNTAxIDUuNjY1IDIyLjUyNCA1LjMzMSAyMi41NyA1IEwgNCA1IEMg'@; put 'Mi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNCAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDQgMzEgMzQgMzAuMTA0IDM0IDI5IEwgMzQgMTIuMzQgQyAzMy4zOCAxMi43MyAzMi43MDYgMTMuMDI2IDMyIDEzLjIyIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNIDYuMDA3IDI2LjczMSBMIDI3LjczIDI2LjczIEMgMjguNDkgMjYuNjcgMjguOTEgMjUuOCAyOC40NyAyNS4xNyBDIDI4LjMgMjQuOTIgMjguMDMgMjQuNzYgMjcuNzMgMjQuNzQgTCA4LjAwMSAyNC43MzYg'@; put 'TCA4LjAxIDExLjAxIEMgOC4wMSAxMC4yMyA3LjE3IDkuNzUgNi41IDEwLjE0IEMgNi4xOSAxMC4zMSA2IDEwLjY1IDYgMTEuMDEgTCA2LjAwNyAyNi43MzEgWiIvPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBj'@; put 'bHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAz'@; put 'MSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIyLjU3IDUgQyAyMS45NjkgOS4yMzMgMjUuMDUgMTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI2IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSA2LjAwNyAyNi43MzEgTCAy'@; put 'Ny43MyAyNi43MyBDIDI4LjQ5IDI2LjY3IDI4LjkxIDI1LjggMjguNDcgMjUuMTcgQyAyOC4zIDI0LjkyIDI4LjAzIDI0Ljc2IDI3LjczIDI0Ljc0IEwgOC4wMDEgMjQuNzM2IEwgOC4wMSAxMS4wMSBDIDguMDEgMTAuMjMgNy4xNyA5Ljc1IDYuNSAxMC4xNCBDIDYuMTkgMTAuMzEgNiAxMC42'@; put 'NSA2IDExLjAxIFoiLz5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwg'@; put 'MzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0gNi4wMDcgMjYuNzMxIEwgMjcuNzMgMjYuNzMgQyAyOC40OSAyNi42NyAyOC45MSAyNS44IDI4LjQ3IDI1LjE3'@; put 'IEMgMjguMyAyNC45MiAyOC4wMyAyNC43NiAyNy43MyAyNC43NCBMIDguMDAxIDI0LjczNiBMIDguMDEgMTEuMDEgQyA4LjAxIDEwLjIzIDcuMTcgOS43NSA2LjUgMTAuMTQgQyA2LjE5IDEwLjMxIDYgMTAuNjUgNiAxMS4wMSBMIDYuMDA3IDI2LjczMSBaIi8+XG4gIDxwYXRoIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4'@; put 'IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5'@; put 'OSAyNi44NTQgMS4xNDQgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMg'@; put 'MiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIxLjk1OCA1IEwgMTcuNjI1IDEyLjM5NSBDIDE2Ljc5NSAxMy42MDEgMTcuNTk0IDE1LjI0NSAxOS4wNjQgMTUuMzUxIEMgMTkuMTM0IDE1LjM1NyAxOS4yMDEgMTUuMzU5IDE5LjI3IDE1LjM1NyBMIDM0IDE1LjM1NyBaIE0gNi4wMDcgMjYuNzMxIEwg'@; put 'MjcuNzMgMjYuNzMgQyAyOC40OSAyNi42NyAyOC45MSAyNS44IDI4LjQ3IDI1LjE3IEMgMjguMyAyNC45MiAyOC4wMyAyNC43NiAyNy43MyAyNC43NCBMIDguMDAxIDI0LjczNiBMIDguMDEgMTEuMDEgQyA4LjAxIDEwLjIzIDcuMTcgOS43NSA2LjUgMTAuMTQgQyA2LjE5IDEwLjMxIDYgMTAu'@; put 'NjUgNiAxMS4wMSBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcg'@; put 'MTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEu'@; put 'MTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIi8+JyksYi5DbHJTaGFwZUJhckNoYXJ0PSgwLHAuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLDVINEEyLDIsMCwwLDAsMiw3'@; put 'VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY3QTIsMiwwLDAsMCwzMiw1Wk00LDI5VjdIMzJWMjlaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gNyAxMCBMIDEzIDEwIEwgMTMgMjYgTCAxMS40IDI2IEwgMTEuNCAxMS42IEwgOC42IDExLjYgTCA4LjYgMjYgTCA3IDI2IFoiIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTUgMTkgTCAyMSAxOSBMIDIxIDI2IEwgMTkuNCAyNiBMIDE5LjQgMjAuNiBMIDE2LjYgMjAuNiBMIDE2LjYgMjYgTCAxNSAyNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtMyI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDIzIDE2IEwgMjkgMTYgTCAyOSAyNiBMIDI3LjQgMjYgTCAyNy40IDE3LjYgTCAyNC42IDE3LjYgTCAyNC42IDI2IEwgMjMgMjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiPjwvcGF0'@; put 'aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTSAzNCA3IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMzIgNSBD'@; put 'IDMzLjEwNSA1IDM0IDUuODk1IDM0IDcgWiBNIDcgMjYgTCAxMyAyNiBMIDEzIDEwIEwgNyAxMCBaIE0gMTUgMjYgTCAyMSAyNiBMIDIxIDE5IEwgMTUgMTkgWiBNIDIzIDI2IEwgMjkgMjYgTCAyOSAxNiBMIDIzIDE2IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUt'@; put 'LWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDMyIDEzLjIyIEwgMzIgMjkgTCA0IDI5IEwgNCA3IEwgMjIuNTcgNyBDIDIyLjUyNCA2LjY2OCAyMi41MDEgNi4zMzQgMjIuNSA2IEMgMjIuNTAxIDUuNjY1IDIyLjUyNCA1LjMzMSAyMi41NyA1IEwgNCA1IEMgMi44'@; put 'OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNCAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA0IDM0IDI5IEwgMzQgMTIuMzQgQyAzMy4zOCAxMi43MyAzMi43MDYgMTMuMDI2IDMyIDEzLjIyIFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSA3IDEwIEwg'@; put 'MTMgMTAgTCAxMyAyNiBMIDExLjQgMjYgTCAxMS40IDExLjYgTCA4LjYgMTEuNiBMIDguNiAyNiBMIDcgMjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTUgMTkgTCAyMSAxOSBMIDIx'@; put 'IDI2IEwgMTkuNCAyNiBMIDE5LjQgMjAuNiBMIDE2LjYgMjAuNiBMIDE2LjYgMjYgTCAxNSAyNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyMyAxNiBMIDI5IDE2IEwgMjkgMjYgTCAy'@; put 'Ny40IDI2IEwgMjcuNCAxNy42IEwgMjQuNiAxNy42IEwgMjQuNiAyNiBMIDIzIDI2IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCI+PC9wYXRoPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDM0IDEyLjM0IEwgMzQgMjkgQyAzNCAzMC4xMDUg'@; put 'MzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjIuNTcgNSBDIDIxLjk2OSA5LjIzMyAyNS4wNSAxMy4xIDI5LjMxIDEzLjQ2IEwgMzAuMzIgMTMuNDggQyAzMS42MjUgMTMuNDI5IDMyLjg5NSAxMy4w'@; put 'MzYgMzQgMTIuMzQgWiBNIDcgMjYgTCAxMyAyNiBMIDEzIDEwIEwgNyAxMCBaIE0gMTUgMjYgTCAyMSAyNiBMIDIxIDE5IEwgMTUgMTkgWiBNIDIzIDI2IEwgMjkgMjYgTCAyOSAxNiBMIDIzIDE2IFoiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHIt'@; put 'aS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEw'@; put 'NSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1IEwgMjAuNzg2IDcgTCA0IDcgTCA0IDI5IEwgMzIgMjkgTCAzMiAxNS4zNTcgTCAzNCAxNS4zNTcgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDcg'@; put 'MTAgTCAxMyAxMCBMIDEzIDI2IEwgMTEuNCAyNiBMIDExLjQgMTEuNiBMIDguNiAxMS42IEwgOC42IDI2IEwgNyAyNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE1IDE5IEwgMjEg'@; put 'MTkgTCAyMSAyNiBMIDE5LjQgMjYgTCAxOS40IDIwLjYgTCAxNi42IDIwLjYgTCAxNi42IDI2IEwgMTUgMjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyMyAxNiBMIDI5IDE2IEwg'@; put 'MjkgMjYgTCAyNy40IDI2IEwgMjcuNCAxNy42IEwgMjQuNiAxNy42IEwgMjQuNiAyNiBMIDIzIDI2IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy'@; put 'dGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMu'@; put 'MDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+'@; put 'PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5'@; put 'NSA1IDQgNSBMIDIxLjk1OCA1IEwgMTcuNjI1IDEyLjM5NSBDIDE2Ljc5NSAxMy42MDEgMTcuNTk0IDE1LjI0NSAxOS4wNjQgMTUuMzUxIEMgMTkuMTM0IDE1LjM1NyAxOS4yMDEgMTUuMzU5IDE5LjI3IDE1LjM1NyBMIDM0IDE1LjM1NyBaIE0gNyAyNiBMIDEzIDI2IEwgMTMgMTAgTCA3IDEw'@; put 'IFogTSAxNSAyNiBMIDIxIDI2IEwgMjEgMTkgTCAxNSAxOSBaIE0gMjMgMjYgTCAyOSAyNiBMIDI5IDE2IEwgMjMgMTYgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2'@; put 'Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44'@; put 'NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPicpLGIuQ2xyU2hhcGVCb3hQbG90PSgwLHAuY2xySWNvblNWRykoJ1xuICA8cGF0'@; put 'aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLDVINEEyLDIsMCwwLDAsMiw3VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY3QTIsMiwwLDAsMCwzMiw1Wk00LDI5VjdIMzJWMjlaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gNyAxMiBM'@; put 'IDE3IDEyIEwgMTcgMjYgTCA3IDI2IEwgNyAxMiBaIE0gOC42IDI0LjQgTCAxNS40IDI0LjQgTCAxNS40IDE4LjggTCA4LjYgMTguOCBMIDguNiAyNC40IFogTSAxNS40IDEzLjYgTCA4LjYgMTMuNiBMIDguNiAxNy4yIEwgMTUuNCAxNy4yIEwgMTUuNCAxMy42IFoiIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTkgMjQgTCAyOSAyNCBMIDI5IDEwIEwgMTkgMTAgTCAxOSAyNCBaIE0gMjAuNiAxMS42IEwgMjcuNCAxMS42IEwgMjcuNCAxNy4yIEwgMjAuNiAxNy4yIEwgMjAuNiAxMS42IFogTSAyNy40IDIyLjQg'@; put 'TCAyMC42IDIyLjQgTCAyMC42IDE4LjggTCAyNy40IDE4LjggTCAyNy40IDIyLjQgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTSAzNCA3IEwgMzQg'@; put 'MjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMzIgNSBDIDMzLjEwNSA1IDM0IDUuODk1IDM0IDcgWiBNIDcgMjYgTCAxNyAyNiBMIDE3IDEyIEwgNyAxMiBaIE0gOSAxOSBM'@; put 'IDE1IDE5IEwgMTUgMjQgTCA5IDI0IFogTSAxNSAxNyBMIDkgMTcgTCA5IDE0IEwgMTUgMTQgWiBNIDE5IDI0IEwgMjkgMjQgTCAyOSAxMCBMIDE5IDEwIFogTSAyMSAxMiBMIDI3IDEyIEwgMjcgMTcgTCAyMSAxNyBaIE0gMjcgMjIgTCAyMSAyMiBMIDIxIDE5IEwgMjcgMTkgWiI+PC9wYXRo'@; put 'PlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUg'@; put 'MjIuNTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIg'@; put 'WiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDcgMTIgTCAxNyAxMiBMIDE3IDI2IEwgNyAyNiBMIDcgMTIgWiBNIDguNiAyNC40IEwgMTUuNCAyNC40IEwgMTUuNCAxOC44IEwgOC42IDE4LjggTCA4LjYgMjQuNCBaIE0gMTUuNCAxMy42IEwgOC42IDEzLjYgTCA4LjYgMTcuMiBMIDE1LjQgMTcu'@; put 'MiBMIDE1LjQgMTMuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxOSAxMCBMIDIzLjcyOCAxMCBDIDI0LjEwNSAxMC41OTYgMjQuNTY0IDExLjEzNSAyNS4wOSAxMS42IEwgMjAuNiAx'@; put 'MS42IEwgMjAuNiAxNy4yIEwgMjcuNCAxNy4yIEwgMjcuNCAxMi45ODcgQyAyNy45MDkgMTMuMTc3IDI4LjQ0NSAxMy4zMTMgMjkgMTMuMzg3IEwgMjkgMjQgTCAxOSAyNCBaIE0gMjcuNCAxOC44IEwgMjAuNiAxOC44IEwgMjAuNiAyMi40IEwgMjcuNCAyMi40IFoiIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCI+PC9wYXRoPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+'@; put 'XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDM0IDEyLjM0IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIu'@; put 'ODk1IDUgNCA1IEwgMjIuNTcgNSBDIDIyLjMxMiA2LjgxNyAyMi43MzIgOC41NjYgMjMuNjMzIDEwIEwgMTkgMTAgTCAxOSAyNCBMIDI5IDI0IEwgMjkgMTMuNDI3IEMgMjkuMTAzIDEzLjQ0IDI5LjIwNiAxMy40NTEgMjkuMzEgMTMuNDYgTCAzMC4zMiAxMy40OCBDIDMxLjYyNSAxMy40Mjkg'@; put 'MzIuODk1IDEzLjAzNiAzNCAxMi4zNCBaIE0gNyAyNiBMIDE3IDI2IEwgMTcgMTIgTCA3IDEyIFogTSA5IDE5IEwgMTUgMTkgTCAxNSAyNCBMIDkgMjQgWiBNIDE1IDE3IEwgOSAxNyBMIDkgMTQgTCAxNSAxNCBaIE0gMjEgMTIgTCAyNS40NzIgMTIgQyAyNS45NCAxMi4zNTIgMjYuNDUyIDEy'@; put 'LjY1IDI3IDEyLjg4NSBMIDI3IDE3IEwgMjEgMTcgWiBNIDI3IDIyIEwgMjEgMjIgTCAyMSAxOSBMIDI3IDE5IFoiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0i'@; put 'NiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3'@; put 'IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1IEwgMjAuNzg2IDcgTCA0IDcgTCA0IDI5IEwgMzIgMjkgTCAzMiAxNS4zNTcgTCAzNCAxNS4zNTcgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDcgMTIgTCAxNyAxMiBMIDE3IDI2IEwgNyAyNiBMIDcgMTIgWiBNIDguNiAyNC40IEwg'@; put 'MTUuNCAyNC40IEwgMTUuNCAxOC44IEwgOC42IDE4LjggTCA4LjYgMjQuNCBaIE0gMTUuNCAxMy42IEwgOC42IDEzLjYgTCA4LjYgMTcuMiBMIDE1LjQgMTcuMiBMIDE1LjQgMTMuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRl'@; put 'ZCI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDI5IDI0IEwgMTkgMjQgTCAxOSAxNS4zNDUgQyAxOS4wMjEgMTUuMzQ4IDIwLjYgMTUuMzYgMjAuNiAxNS4zNiBMIDIwLjYgMTcuMiBMIDI3LjQgMTcuMiBMIDI3LjQgMTUuMzYgTCAyOSAxNS4zNTcgTCAyOSAyNCBaIE0gMjcuNCAxOC44IEwgMjAu'@; put 'NiAxOC44IEwgMjAuNiAyMi40IEwgMjcuNCAyMi40IEwgMjcuNCAxOC44IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEz'@; put 'LjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPlxuICA8cGF0'@; put 'aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1'@; put 'OCA1IEwgMTkuMDI4IDEwIEwgMTkgMTAgTCAxOSAxMC4wNDggTCAxNy42MjUgMTIuMzk1IEMgMTYuODA3IDEzLjU4MyAxNy41NzEgMTUuMTk3IDE5IDE1LjM0NSBMIDE5IDI0IEwgMjkgMjQgTCAyOSAxNS4zNTcgTCAzNCAxNS4zNTcgWiBNIDcgMjYgTCAxNyAyNiBMIDE3IDEyIEwgNyAxMiBa'@; put 'IE0gOSAxOSBMIDE1IDE5IEwgMTUgMjQgTCA5IDI0IFogTSAxNSAxNyBMIDkgMTcgTCA5IDE0IEwgMTUgMTQgWiBNIDI3IDE3IEwgMjEgMTcgTCAyMSAxNS4zNTcgTCAyNyAxNS4zNTcgWiBNIDI3IDIyIEwgMjEgMjIgTCAyMSAxOSBMIDI3IDE5IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9'@; put 'ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAx'@; put 'My4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkg'@; put 'MjYuODU0IDEuMTQ0IFoiPjwvcGF0aD4nKSxiLkNsclNoYXBlQnViYmxlQ2hhcnQ9KDAscC5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNIDMyIDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBD'@; put 'IDIgMzAuMTA1IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDUgMzQgMjkgTCAzNCA3IEMgMzQgNS44OTUgMzMuMTA1IDUgMzIgNSBaIE0gNCAyOSBMIDQgNyBMIDMyIDcgTCAzMiAyOSBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjkgMTggQyAyOSAxOS42NTcg'@; put 'MjcuNjU3IDIxIDI2IDIxIEMgMjQuMzQzIDIxIDIzIDE5LjY1NyAyMyAxOCBDIDIzIDE2LjM0MyAyNC4zNDMgMTUgMjYgMTUgQyAyNy42NTcgMTUgMjkgMTYuMzQzIDI5IDE4IFogTSAyNiAxNi42IEMgMjUuMjI3IDE2LjYgMjQuNiAxNy4yMjcgMjQuNiAxOCBDIDI0LjYgMTguNzczIDI1LjIy'@; put 'NyAxOS40IDI2IDE5LjQgQyAyNi43NzMgMTkuNCAyNy40IDE4Ljc3MyAyNy40IDE4IEMgMjcuNCAxNy4yMjcgMjYuNzczIDE2LjYgMjYgMTYuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgcng9IjMiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxNSAxNCBD'@; put 'IDE1IDE2LjIwOSAxMy4yMDkgMTggMTEgMTggQyA4Ljc5MSAxOCA3IDE2LjIwOSA3IDE0IEMgNyAxMS43OTEgOC43OTEgMTAgMTEgMTAgQyAxMy4yMDkgMTAgMTUgMTEuNzkxIDE1IDE0IFogTSAxMSAxMS42IEMgOS42NzUgMTEuNiA4LjYgMTIuNjc1IDguNiAxNCBDIDguNiAxNS4zMjUgOS42'@; put 'NzUgMTYuNCAxMSAxNi40IEMgMTIuMzI1IDE2LjQgMTMuNCAxNS4zMjUgMTMuNCAxNCBDIDEzLjQgMTIuNjc1IDEyLjMyNSAxMS42IDExIDExLjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHJ4PSIzIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjEgMjMg'@; put 'QyAyMSAyNC42NTcgMTkuNjU3IDI2IDE4IDI2IEMgMTYuMzQzIDI2IDE1IDI0LjY1NyAxNSAyMyBDIDE1IDIxLjM0MyAxNi4zNDMgMjAgMTggMjAgQyAxOS42NTcgMjAgMjEgMjEuMzQzIDIxIDIzIFogTSAxOCAyMS42IEMgMTcuMjI3IDIxLjYgMTYuNiAyMi4yMjcgMTYuNiAyMyBDIDE2LjYg'@; put 'MjMuNzczIDE3LjIyNyAyNC40IDE4IDI0LjQgQyAxOC43NzMgMjQuNCAxOS40IDIzLjc3MyAxOS40IDIzIEMgMTkuNCAyMi4yMjcgMTguNzczIDIxLjYgMTggMjEuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgcng9IjMiPjwvcGF0aD5cbiAgPHBhdGgg'@; put 'Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTSAzNCA3IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMzIgNSBDIDMzLjEwNSA1IDM0'@; put 'IDUuODk2IDM0IDcgWiBNIDExIDEwIEMgOC43OTEgMTAgNyAxMS43OTEgNyAxNCBDIDcgMTYuMjA5IDguNzkxIDE4IDExIDE4IEMgMTMuMjA5IDE4IDE1IDE2LjIwOSAxNSAxNCBDIDE1IDExLjc5MSAxMy4yMDkgMTAgMTEgMTAgWiBNIDI2IDE1IEMgMjQuMzQzIDE1IDIzIDE2LjM0MyAyMyAx'@; put 'OCBDIDIzIDE5LjY1NyAyNC4zNDMgMjEgMjYgMjEgQyAyNy42NTcgMjEgMjkgMTkuNjU3IDI5IDE4IEMgMjkgMTYuMzQzIDI3LjY1NyAxNSAyNiAxNSBaIE0gMTggMjAgQyAxNi4zNDMgMjAgMTUgMjEuMzQzIDE1IDIzIEMgMTUgMjQuNjU3IDE2LjM0MyAyNiAxOCAyNiBDIDE5LjY1NyAyNiAy'@; put 'MSAyNC42NTcgMjEgMjMgQyAyMSAyMS4zNDMgMTkuNjU3IDIwIDE4IDIwIFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDMyIDEzLjIyIEwgMzIgMjkgTCA0IDI5IEwgNCA3IEwgMjIuNTcg'@; put 'NyBDIDIyLjUyNCA2LjY2OCAyMi41MDEgNi4zMzQgMjIuNSA2IEMgMjIuNTAxIDUuNjY1IDIyLjUyNCA1LjMzMSAyMi41NyA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNCAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDQgMzEgMzQgMzAuMTA0IDM0'@; put 'IDI5IEwgMzQgMTIuMzQgQyAzMy4zOCAxMi43MyAzMi43MDYgMTMuMDI2IDMyIDEzLjIyIFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyOSAxOCBDIDI5IDE5LjY1NyAyNy42NTcgMjEgMjYgMjEgQyAyNC4zNDMgMjEgMjMgMTkuNjU3IDIzIDE4IEMgMjMgMTYuMzQzIDI0LjM0MyAxNSAyNiAx'@; put 'NSBDIDI3LjY1NyAxNSAyOSAxNi4zNDMgMjkgMTggWiBNIDI2IDE2LjYgQyAyNS4yMjcgMTYuNiAyNC42IDE3LjIyNyAyNC42IDE4IEMgMjQuNiAxOC43NzMgMjUuMjI3IDE5LjQgMjYgMTkuNCBDIDI2Ljc3MyAxOS40IDI3LjQgMTguNzczIDI3LjQgMTggQyAyNy40IDE3LjIyNyAyNi43NzMg'@; put 'MTYuNiAyNiAxNi42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgcng9IjMiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxNSAxNCBDIDE1IDE2LjIwOSAxMy4yMDkgMTggMTEgMTggQyA4Ljc5MSAxOCA3IDE2LjIwOSA3IDE0IEMg'@; put 'NyAxMS43OTEgOC43OTEgMTAgMTEgMTAgQyAxMy4yMDkgMTAgMTUgMTEuNzkxIDE1IDE0IFogTSAxMSAxMS42IEMgOS42NzUgMTEuNiA4LjYgMTIuNjc1IDguNiAxNCBDIDguNiAxNS4zMjUgOS42NzUgMTYuNCAxMSAxNi40IEMgMTIuMzI1IDE2LjQgMTMuNCAxNS4zMjUgMTMuNCAxNCBDIDEz'@; put 'LjQgMTIuNjc1IDEyLjMyNSAxMS42IDExIDExLjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiByeD0iMyI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDIxIDIzIEMgMjEgMjQuNjU3IDE5LjY1NyAyNiAxOCAyNiBDIDE2LjM0MyAy'@; put 'NiAxNSAyNC42NTcgMTUgMjMgQyAxNSAyMS4zNDMgMTYuMzQzIDIwIDE4IDIwIEMgMTkuNjU3IDIwIDIxIDIxLjM0MyAyMSAyMyBaIE0gMTggMjEuNiBDIDE3LjIyNyAyMS42IDE2LjYgMjIuMjI3IDE2LjYgMjMgQyAxNi42IDIzLjc3MyAxNy4yMjcgMjQuNCAxOCAyNC40IEMgMTguNzczIDI0'@; put 'LjQgMTkuNCAyMy43NzMgMTkuNCAyMyBDIDE5LjQgMjIuMjI3IDE4Ljc3MyAyMS42IDE4IDIxLjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiByeD0iMyI+PC9wYXRoPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'LS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDM0IDEyLjM0IEwgMzQg'@; put 'MjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjIuNTcgNSBDIDIxLjk2OSA5LjIzMyAyNS4wNSAxMy4xIDI5LjMxIDEzLjQ2IEwgMzAuMzIgMTMuNDggQyAzMS42MjYgMTMu'@; put 'NDI5IDMyLjg5NSAxMy4wMzYgMzQgMTIuMzQgWiBNIDExIDEwIEMgOC43OTEgMTAgNyAxMS43OTEgNyAxNCBDIDcgMTYuMjA5IDguNzkxIDE4IDExIDE4IEMgMTMuMjA5IDE4IDE1IDE2LjIwOSAxNSAxNCBDIDE1IDExLjc5MSAxMy4yMDkgMTAgMTEgMTAgWiBNIDI2IDE1IEMgMjQuMzQzIDE1'@; put 'IDIzIDE2LjM0MyAyMyAxOCBDIDIzIDE5LjY1NyAyNC4zNDMgMjEgMjYgMjEgQyAyNy42NTcgMjEgMjkgMTkuNjU3IDI5IDE4IEMgMjkgMTYuMzQzIDI3LjY1NyAxNSAyNiAxNSBaIE0gMTggMjAgQyAxNi4zNDMgMjAgMTUgMjEuMzQzIDE1IDIzIEMgMTUgMjQuNjU3IDE2LjM0MyAyNiAxOCAy'@; put 'NiBDIDE5LjY1NyAyNiAyMSAyNC42NTcgMjEgMjMgQyAyMSAyMS4zNDMgMTkuNjU3IDIwIDE4IDIwIFoiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0i'@; put 'NSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1'@; put 'Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1IEwgMjAuNzg2IDcgTCA0IDcgTCA0IDI5IEwgMzIgMjkgTCAzMiAxNS4zNTcgTCAzNCAxNS4zNTcgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDI5IDE4IEMgMjkgMTkuNjU3IDI3LjY1NyAyMSAyNiAyMSBDIDI0LjM0MyAyMSAyMyAxOS42NTcg'@; put 'MjMgMTggQyAyMyAxNi4zNDMgMjQuMzQzIDE1IDI2IDE1IEMgMjcuNjU3IDE1IDI5IDE2LjM0MyAyOSAxOCBaIE0gMjYgMTYuNiBDIDI1LjIyNyAxNi42IDI0LjYgMTcuMjI3IDI0LjYgMTggQyAyNC42IDE4Ljc3MyAyNS4yMjcgMTkuNCAyNiAxOS40IEMgMjYuNzczIDE5LjQgMjcuNCAxOC43'@; put 'NzMgMjcuNCAxOCBDIDI3LjQgMTcuMjI3IDI2Ljc3MyAxNi42IDI2IDE2LjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHJ4PSIzIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTUgMTQgQyAxNSAxNi4yMDkgMTMuMjA5IDE4'@; put 'IDExIDE4IEMgOC43OTEgMTggNyAxNi4yMDkgNyAxNCBDIDcgMTEuNzkxIDguNzkxIDEwIDExIDEwIEMgMTMuMjA5IDEwIDE1IDExLjc5MSAxNSAxNCBaIE0gMTEgMTEuNiBDIDkuNjc1IDExLjYgOC42IDEyLjY3NSA4LjYgMTQgQyA4LjYgMTUuMzI1IDkuNjc1IDE2LjQgMTEgMTYuNCBDIDEy'@; put 'LjMyNSAxNi40IDEzLjQgMTUuMzI1IDEzLjQgMTQgQyAxMy40IDEyLjY3NSAxMi4zMjUgMTEuNiAxMSAxMS42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiByeD0iMyI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDIxIDIzIEMg'@; put 'MjEgMjQuNjU3IDE5LjY1NyAyNiAxOCAyNiBDIDE2LjM0MyAyNiAxNSAyNC42NTcgMTUgMjMgQyAxNSAyMS4zNDMgMTYuMzQzIDIwIDE4IDIwIEMgMTkuNjU3IDIwIDIxIDIxLjM0MyAyMSAyMyBaIE0gMTggMjEuNiBDIDE3LjIyNyAyMS42IDE2LjYgMjIuMjI3IDE2LjYgMjMgQyAxNi42IDIz'@; put 'Ljc3MyAxNy4yMjcgMjQuNCAxOCAyNC40IEMgMTguNzczIDI0LjQgMTkuNCAyMy43NzMgMTkuNCAyMyBDIDE5LjQgMjIuMjI3IDE4Ljc3MyAyMS42IDE4IDIxLjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIHJ4PSIzIj48'@; put 'L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAw'@; put 'MSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBD'@; put 'IDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAy'@; put 'Ljg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIxLjk1OCA1IEwgMTcuNjI1IDEyLjM5NSBDIDE2Ljc5NSAxMy42MDEgMTcuNTk0IDE1LjI0NSAxOS4wNjQgMTUuMzUxIEMgMTkuMTM0IDE1LjM1NyAxOS4yMDEgMTUuMzU5IDE5LjI3IDE1LjM1NyBM'@; put 'IDI0LjU3OSAxNS4zNTcgQyAyMy42MzkgMTUuODYzIDIzIDE2Ljg1NyAyMyAxOCBDIDIzIDE5LjY1NyAyNC4zNDMgMjEgMjYgMjEgQyAyNy42NTcgMjEgMjkgMTkuNjU3IDI5IDE4IEMgMjkgMTYuODU3IDI4LjM2MSAxNS44NjMgMjcuNDIxIDE1LjM1NyBMIDM0IDE1LjM1NyBaIE0gMTEgMTAg'@; put 'QyA4Ljc5MSAxMCA3IDExLjc5MSA3IDE0IEMgNyAxNi4yMDkgOC43OTEgMTggMTEgMTggQyAxMy4yMDkgMTggMTUgMTYuMjA5IDE1IDE0IEMgMTUgMTEuNzkxIDEzLjIwOSAxMCAxMSAxMCBaIE0gMTggMjAgQyAxNi4zNDMgMjAgMTUgMjEuMzQzIDE1IDIzIEMgMTUgMjQuNjU3IDE2LjM0MyAy'@; put 'NiAxOCAyNiBDIDE5LjY1NyAyNiAyMSAyNC42NTcgMjEgMjMgQyAyMSAyMS4zNDMgMTkuNjU3IDIwIDE4IDIwIFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQg'@; put 'MS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDEx'@; put 'LjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD4nKSxiLkNsclNoYXBlQ2xvdWRDaGFydD0oMCxwLmNsckljb25TVkcpKCdcbiAgPHBhdGgg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiw1SDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWN0EyLDIsMCwwLDAsMzIsNVpNNCwyOVY3SDMyVjI5WiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDIwLjk3MSAx'@; put 'MS4yNDMgQyAyMy4zMTQgMTMuNTg2IDIyLjM2NCAxOC4zMzUgMTguODQ5IDIxLjg0OSBDIDE1LjMzNCAyNS4zNjQgMTAuNTg2IDI2LjMxNCA4LjI0MyAyMy45NyBDIDUuODk5IDIxLjYyNyA2Ljg0OSAxNi44NzggMTAuMzY0IDEzLjM2NCBDIDEzLjg3OSA5Ljg0OSAxOC42MjggOC45IDIwLjk3'@; put 'MSAxMS4yNDMgWiBNIDExLjYzNiAxNC42MzcgQyA4LjgyNCAxNy40NDkgNy44NzUgMjEuMDU4IDkuNTE1IDIyLjY5OCBDIDExLjE1NSAyNC4zMzggMTQuNzY0IDIzLjM4OSAxNy41NzYgMjAuNTc3IEMgMjAuMzg4IDE3Ljc2NSAyMS4zMzggMTQuMTU2IDE5LjY5NyAxMi41MTYgQyAxOC4wNTcg'@; put 'MTAuODc2IDE0LjQ0OCAxMS44MjUgMTEuNjM2IDE0LjYzNyBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDI4IDIyIEMgMjggMjMuNjU3IDI2LjY1NyAyNSAyNSAyNSBDIDIzLjM0MyAyNSAyMiAyMy42NTcgMjIgMjIg'@; put 'QyAyMiAyMC4zNDMgMjMuMzQzIDE5IDI1IDE5IEMgMjYuNjU3IDE5IDI4IDIwLjM0MyAyOCAyMiBaIE0gMjUgMjAuNiBDIDI0LjIyNyAyMC42IDIzLjYgMjEuMjI3IDIzLjYgMjIgQyAyMy42IDIyLjc3MyAyNC4yMjcgMjMuNCAyNSAyMy40IEMgMjUuNzczIDIzLjQgMjYuNCAyMi43NzMgMjYu'@; put 'NCAyMiBDIDI2LjQgMjEuMjI3IDI1Ljc3MyAyMC42IDI1IDIwLjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjciPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTSAzNCA3IEwgMzQgMjkg'@; put 'QyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMzIgNSBDIDMzLjEwNSA1IDM0IDUuODk1IDM0IDcgWiBNIDEwLjM2NCAxMy4zNjQgQyA2Ljg0OSAxNi44NzggNS44OTkgMjEuNjI3'@; put 'IDguMjQzIDIzLjk3IEMgMTAuNTg2IDI2LjMxNCAxNS4zMzQgMjUuMzY0IDE4Ljg0OSAyMS44NDkgQyAyMi4zNjQgMTguMzM1IDIzLjMxNCAxMy41ODYgMjAuOTcxIDExLjI0MyBDIDE4LjYyOCA4LjkgMTMuODc5IDkuODQ5IDEwLjM2NCAxMy4zNjQgWiBNIDI1IDE5IEMgMjMuMzQzIDE5IDIy'@; put 'IDIwLjM0MyAyMiAyMiBDIDIyIDIzLjY1NyAyMy4zNDMgMjUgMjUgMjUgQyAyNi42NTcgMjUgMjggMjMuNjU3IDI4IDIyIEMgMjggMjAuMzQzIDI2LjY1NyAxOSAyNSAxOSBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMg'@; put 'MiAzMC4xMDQgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAzMiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjAuOTcxIDExLjI0MyBDIDIzLjMxNCAxMy41ODYgMjIu'@; put 'MzY0IDE4LjMzNSAxOC44NDkgMjEuODQ5IEMgMTUuMzM0IDI1LjM2NCAxMC41ODYgMjYuMzE0IDguMjQzIDIzLjk3IEMgNS44OTkgMjEuNjI3IDYuODQ5IDE2Ljg3OCAxMC4zNjQgMTMuMzY0IEMgMTMuODc5IDkuODQ5IDE4LjYyOCA4LjkgMjAuOTcxIDExLjI0MyBaIE0gMTEuNjM2IDE0LjYz'@; put 'NyBDIDguODI0IDE3LjQ0OSA3Ljg3NSAyMS4wNTggOS41MTUgMjIuNjk4IEMgMTEuMTU1IDI0LjMzOCAxNC43NjQgMjMuMzg5IDE3LjU3NiAyMC41NzcgQyAyMC4zODggMTcuNzY1IDIxLjMzOCAxNC4xNTYgMTkuNjk3IDEyLjUxNiBDIDE4LjA1NyAxMC44NzYgMTQuNDQ4IDExLjgyNSAxMS42'@; put 'MzYgMTQuNjM3IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDI4IDIyIEMgMjggMjMuNjU3IDI2LjY1NyAyNSAyNSAyNSBDIDIzLjM0MyAyNSAyMiAyMy42NTcgMjIgMjIgQyAyMiAyMC4z'@; put 'NDMgMjMuMzQzIDE5IDI1IDE5IEMgMjYuNjU3IDE5IDI4IDIwLjM0MyAyOCAyMiBaIE0gMjUgMjAuNiBDIDI0LjIyNiAyMC42IDIzLjYgMjEuMjI2IDIzLjYgMjIgQyAyMy42IDIyLjc3MyAyNC4yMjYgMjMuNCAyNSAyMy40IEMgMjUuNzczIDIzLjQgMjYuNCAyMi43NzMgMjYuNCAyMiBDIDI2'@; put 'LjQgMjEuMjI2IDI1Ljc3MyAyMC42IDI1IDIwLjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiB4PSI3Ij48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'NC0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzQgMTIuMzQgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIg'@; put 'MzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMi41NyA1IEMgMjEuOTY5IDkuMjMzIDI1LjA1IDEzLjEgMjkuMzEgMTMuNDYgTCAzMC4zMiAxMy40OCBDIDMxLjYyNSAxMy40MjkgMzIuODk1IDEzLjAzNiAzNCAxMi4zNCBa'@; put 'IE0gMTAuMzY0IDEzLjM2NCBDIDYuODQ5IDE2Ljg3OCA1Ljg5OSAyMS42MjcgOC4yNDMgMjMuOTcgQyAxMC41ODYgMjYuMzE0IDE1LjMzNCAyNS4zNjQgMTguODQ5IDIxLjg0OSBDIDIyLjM2NCAxOC4zMzUgMjMuMzE0IDEzLjU4NiAyMC45NzEgMTEuMjQzIEMgMTguNjI4IDguOSAxMy44Nzkg'@; put 'OS44NDkgMTAuMzY0IDEzLjM2NCBaIE0gMjUgMTkgQyAyMy4zNDMgMTkgMjIgMjAuMzQzIDIyIDIyIEMgMjIgMjMuNjU3IDIzLjM0MyAyNSAyNSAyNSBDIDI2LjY1NyAyNSAyOCAyMy42NTcgMjggMjIgQyAyOCAyMC4zNDMgMjYuNjU3IDE5IDI1IDE5IFoiPjwvcGF0aD5cbiAgPGNpcmNsZSBj'@; put 'bGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVk'@; put 'IiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1IEwgMjAuNzg2IDcgTCA0IDcgTCA0IDI5IEwgMzIgMjkgTCAzMiAxNS4zNTcgTCAzNCAxNS4z'@; put 'NTcgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE4Ljg0OSAyMS44NDkgQyAxNS4zMzQgMjUuMzY0IDEwLjU4NiAyNi4zMTQgOC4yNDMgMjMuOTcgQyA1Ljg5OSAyMS42MjcgNi44NDkgMTYuODc4IDEwLjM2NCAxMy4zNjQgQyAxMy4wNDkgMTAuNjc5IDE2LjQ1MyA5LjQ5MiAxOC45NTYgMTAu'@; put 'MTI0IEwgMTguMDA4IDExLjc0MSBDIDE2LjE4IDExLjUxOCAxMy42OTUgMTIuNTc4IDExLjYzNiAxNC42MzcgQyA4LjgyNCAxNy40NDkgNy44NzUgMjEuMDU4IDkuNTE1IDIyLjY5OCBDIDExLjE1NSAyNC4zMzggMTQuNzY0IDIzLjM4OSAxNy41NzYgMjAuNTc3IEMgMTkuMjI4IDE4LjkyNSAy'@; put 'MC4yMzcgMTYuOTk4IDIwLjQ1NiAxNS4zNTcgTCAyMi4yMiAxNS4zNTcgQyAyMi4wMDYgMTcuNDc3IDIwLjgzOCAxOS44NjEgMTguODQ5IDIxLjg0OSBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCI+PC9wYXRoPlxuICA8cGF0'@; put 'aCBkPSJNIDI4IDIyIEMgMjggMjMuNjU3IDI2LjY1NyAyNSAyNSAyNSBDIDIzLjM0MyAyNSAyMiAyMy42NTcgMjIgMjIgQyAyMiAyMC4zNDMgMjMuMzQzIDE5IDI1IDE5IEMgMjYuNjU3IDE5IDI4IDIwLjM0MyAyOCAyMiBaIE0gMjUgMjAuNiBDIDI0LjIyNiAyMC42IDIzLjYgMjEuMjI2IDIz'@; put 'LjYgMjIgQyAyMy42IDIyLjc3MyAyNC4yMjYgMjMuNCAyNSAyMy40IEMgMjUuNzczIDIzLjQgMjYuNCAyMi43NzMgMjYuNCAyMiBDIDI2LjQgMjEuMjI2IDI1Ljc3MyAyMC42IDI1IDIwLjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFs'@; put 'ZXJ0ZWQiIHg9IjciPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjky'@; put 'OCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwg'@; put 'MjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMy'@; put 'IDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAxOC45NTYgMTAuMTI0IEMgMTYuNDUzIDkuNDkyIDEzLjA0OSAxMC42NzkgMTAuMzY0IDEzLjM2NCBDIDYuODQ5IDE2Ljg3OCA1Ljg5OSAyMS42MjcgOC4y'@; put 'NDMgMjMuOTcgQyAxMC41ODYgMjYuMzE0IDE1LjMzNCAyNS4zNjQgMTguODQ5IDIxLjg0OSBDIDIwLjgzOCAxOS44NjEgMjIuMDA2IDE3LjQ3NyAyMi4yMiAxNS4zNTcgTCAzNCAxNS4zNTcgWiBNIDI1IDE5IEMgMjMuMzQzIDE5IDIyIDIwLjM0MyAyMiAyMiBDIDIyIDIzLjY1NyAyMy4zNDMg'@; put 'MjUgMjUgMjUgQyAyNi42NTcgMjUgMjggMjMuNjU3IDI4IDIyIEMgMjggMjAuMzQzIDI2LjY1NyAxOSAyNSAxOSBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0'@; put 'IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAx'@; put 'MS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+JyksYi5DbHJTaGFwZUN1cnZlQ2hhcnQ9KDAscC5jbHJJY29uU1ZHKSgnXG4gIDxwYXRo'@; put 'IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNIDMyIDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA1IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDUgMzQgMjkgTCAzNCA3IEMgMzQgNS44'@; put 'OTUgMzMuMTA1IDUgMzIgNSBaIE0gNCAyOSBMIDQgNyBMIDMyIDcgTCAzMiAyOSBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gNyAxMS44IEMgNi41NTggMTEuOCA2LjIgMTEuNDQyIDYuMiAxMSBDIDYuMiAxMC41NTggNi41NTggMTAuMiA3IDEwLjIgTCAxMyAxMC4yIEMgMTUuNDA0IDEwLjIg'@; put 'MTYuMzY4IDExLjkwNyAxNy42NTMgMTYuNDc4IEMgMTcuNjk1IDE2LjYyOCAxNy43NDQgMTYuODAzIDE3LjgzNSAxNy4xMjkgQyAxNy45MDkgMTcuMzkyIDE3Ljk2NCAxNy41ODggMTguMDE5IDE3Ljc4IEMgMTkuMzMyIDIyLjM3NSAyMC41NDkgMjQuMiAyMyAyNC4yIEwgMjkgMjQuMiBDIDI5'@; put 'LjQ0MiAyNC4yIDI5LjggMjQuNTU4IDI5LjggMjUgQyAyOS44IDI1LjQ0MiAyOS40NDIgMjUuOCAyOSAyNS44IEwgMjMgMjUuOCBDIDE5LjUzNSAyNS44IDE3Ljk4MSAyMy40NjkgMTYuNDgxIDE4LjIyIEMgMTYuNDI1IDE4LjAyNSAxNi4zNjkgMTcuODI2IDE2LjI5NSAxNy41NiBDIDE2LjIw'@; put 'MyAxNy4yMzQgMTYuMTU0IDE3LjA2IDE2LjExMyAxNi45MTEgQyAxNS4wNDMgMTMuMTA1IDE0LjMwNSAxMS44IDEzIDExLjggTCA3IDExLjggWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNs'@; put 'ci1pLXNvbGlkLXBhdGgtMSIgZD0iTSAzNCA3IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMzIgNSBDIDMzLjEwNSA1IDM0IDUuODk2IDM0IDcgWiBNIDEzIDEy'@; put 'IEMgMTQuODE3IDEyIDE1LjY3NCAxMy40OTkgMTcuMDM5IDE4LjI3NSBDIDE3LjgxMyAyMC45ODQgMTguMjAxIDIyLjExOCAxOC44ODIgMjMuMzA5IEMgMTkuODcgMjUuMDM4IDIxLjIwNSAyNiAyMyAyNiBMIDI5IDI2IEMgMjkuNTUyIDI2IDMwIDI1LjU1MiAzMCAyNSBDIDMwIDI0LjQ0OCAy'@; put 'OS41NTIgMjQgMjkgMjQgTCAyMyAyNCBDIDIxLjE4MyAyNCAyMC4zMjYgMjIuNTAxIDE4Ljk2MiAxNy43MjUgQyAxOC4xODggMTUuMDE2IDE3Ljc5OSAxMy44ODIgMTcuMTE4IDEyLjY5MSBDIDE2LjEzIDEwLjk2MiAxNC43OTUgMTAgMTMgMTAgTCA3IDEwIEMgNi40NDggMTAgNiAxMC40NDgg'@; put 'NiAxMSBDIDYgMTEuNTUyIDYuNDQ4IDEyIDcgMTIgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYu'@; put 'NjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNCAzMSAzNCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4z'@; put 'NCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDcgMTEuOCBDIDYuNTU4IDExLjggNi4yIDExLjQ0MiA2LjIgMTEgQyA2LjIgMTAuNTU4IDYuNTU4IDEwLjIgNyAxMC4yIEwgMTMgMTAuMiBDIDE1LjQwNCAxMC4yIDE2LjM2OCAx'@; put 'MS45MDcgMTcuNjUzIDE2LjQ3OCBDIDE3LjY5NSAxNi42MjggMTcuNzQ0IDE2LjgwMyAxNy44MzUgMTcuMTI5IEMgMTcuOTA5IDE3LjM5MiAxNy45NjQgMTcuNTg4IDE4LjAxOSAxNy43OCBDIDE5LjMzMiAyMi4zNzUgMjAuNTQ5IDI0LjIgMjMgMjQuMiBMIDI5IDI0LjIgQyAyOS40NDIgMjQu'@; put 'MiAyOS44IDI0LjU1OCAyOS44IDI1IEMgMjkuOCAyNS40NDIgMjkuNDQyIDI1LjggMjkgMjUuOCBMIDIzIDI1LjggQyAxOS41MzUgMjUuOCAxNy45ODEgMjMuNDY5IDE2LjQ4MSAxOC4yMiBDIDE2LjQyNSAxOC4wMjUgMTYuMzY5IDE3LjgyNiAxNi4yOTUgMTcuNTYgQyAxNi4yMDMgMTcuMjM0'@; put 'IDE2LjE1NCAxNy4wNiAxNi4xMTMgMTYuOTExIEMgMTUuMDQzIDEzLjEwNSAxNC4zMDUgMTEuOCAxMyAxMS44IEwgNyAxMS44IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCI+PC9wYXRoPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDM0IDEy'@; put 'LjM0IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjIuNTcgNSBDIDIxLjk2OSA5LjIzMyAyNS4wNSAxMy4xIDI5LjMxIDEzLjQ2IEwgMzAuMzIgMTMuNDggQyAz'@; put 'MS42MjYgMTMuNDI5IDMyLjg5NSAxMy4wMzYgMzQgMTIuMzQgWiBNIDEzIDEyIEMgMTQuODE3IDEyIDE1LjY3NCAxMy40OTkgMTcuMDM5IDE4LjI3NSBDIDE3LjgxMyAyMC45ODQgMTguMjAxIDIyLjExOCAxOC44ODIgMjMuMzA5IEMgMTkuODcgMjUuMDM4IDIxLjIwNSAyNiAyMyAyNiBMIDI5'@; put 'IDI2IEMgMjkuNTUyIDI2IDMwIDI1LjU1MiAzMCAyNSBDIDMwIDI0LjQ0OCAyOS41NTIgMjQgMjkgMjQgTCAyMyAyNCBDIDIxLjE4MyAyNCAyMC4zMjYgMjIuNTAxIDE4Ljk2MiAxNy43MjUgQyAxOC4xODggMTUuMDE2IDE3Ljc5OSAxMy44ODIgMTcuMTE4IDEyLjY5MSBDIDE2LjEzIDEwLjk2'@; put 'MiAxNC43OTUgMTAgMTMgMTAgTCA3IDEwIEMgNi40NDggMTAgNiAxMC40NDggNiAxMSBDIDYgMTEuNTUyIDYuNDQ4IDEyIDcgMTIgWiI+PC9wYXRoPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBj'@; put 'eD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1'@; put 'IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1LjM1NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gNyAxMS44IEMgNi41NTggMTEuOCA2LjIgMTEuNDQyIDYuMiAxMSBD'@; put 'IDYuMiAxMC41NTggNi41NTggMTAuMiA3IDEwLjIgTCAxMyAxMC4yIEMgMTUuNDA0IDEwLjIgMTYuMzY4IDExLjkwNyAxNy42NTMgMTYuNDc4IEMgMTcuNjk1IDE2LjYyOCAxNy43NDQgMTYuODAzIDE3LjgzNSAxNy4xMjkgQyAxNy45MDkgMTcuMzkyIDE3Ljk2NCAxNy41ODggMTguMDE5IDE3'@; put 'Ljc4IEMgMTkuMzMyIDIyLjM3NSAyMC41NDkgMjQuMiAyMyAyNC4yIEwgMjkgMjQuMiBDIDI5LjQ0MiAyNC4yIDI5LjggMjQuNTU4IDI5LjggMjUgQyAyOS44IDI1LjQ0MiAyOS40NDIgMjUuOCAyOSAyNS44IEwgMjMgMjUuOCBDIDE5LjUzNSAyNS44IDE3Ljk4MSAyMy40NjkgMTYuNDgxIDE4'@; put 'LjIyIEMgMTYuNDI1IDE4LjAyNSAxNi4zNjkgMTcuODI2IDE2LjI5NSAxNy41NiBDIDE2LjIwMyAxNy4yMzQgMTYuMTU0IDE3LjA2IDE2LjExMyAxNi45MTEgQyAxNS4wNDMgMTMuMTA1IDE0LjMwNSAxMS44IDEzIDExLjggTCA3IDExLjggWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0'@; put 'ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3'@; put 'OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDEx'@; put 'LjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAz'@; put 'NCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxNy42MjUgMTIuMzk1IEMgMTcuNDc2IDEyLjYxMiAxNy4zNzkgMTIuODQzIDE3LjMzIDEzLjA3NyBDIDE3LjI2MiAx'@; put 'Mi45NDggMTcuMTkyIDEyLjgyIDE3LjExOCAxMi42OTEgQyAxNi4xMyAxMC45NjIgMTQuNzk1IDEwIDEzIDEwIEwgNyAxMCBDIDYuNDQ4IDEwIDYgMTAuNDQ4IDYgMTEgQyA2IDExLjU1MiA2LjQ0OCAxMiA3IDEyIEwgMTMgMTIgQyAxNC44MTcgMTIgMTUuNjc0IDEzLjQ5OSAxNy4wMzkgMTgu'@; put 'Mjc1IEMgMTcuODEzIDIwLjk4NCAxOC4yMDEgMjIuMTE4IDE4Ljg4MiAyMy4zMDkgQyAxOS44NyAyNS4wMzggMjEuMjA1IDI2IDIzIDI2IEwgMjkgMjYgQyAyOS41NTIgMjYgMzAgMjUuNTUyIDMwIDI1IEMgMzAgMjQuNDQ4IDI5LjU1MiAyNCAyOSAyNCBMIDIzIDI0IEMgMjEuMTgzIDI0IDIw'@; put 'LjMyNiAyMi41MDEgMTguOTYyIDE3LjcyNSBDIDE4LjY0IDE2LjU5OCAxOC4zODUgMTUuNzQ0IDE4LjE0NyAxNS4wNDQgQyAxOC40MDcgMTUuMjE1IDE4LjcxNyAxNS4zMjYgMTkuMDY0IDE1LjM1MSBDIDE5LjEzNCAxNS4zNTcgMTkuMjAxIDE1LjM1OSAxOS4yNyAxNS4zNTcgTCAzNCAxNS4z'@; put 'NTcgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEz'@; put 'LjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0'@; put 'NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPicpLGIuQ2xyU2hhcGVHcmlkQ2hhcnQ9KDAscC5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTUsMTdINGEyLDIsMCww'@; put 'LDEtMi0yVjhBMiwyLDAsMCwxLDQsNkgxNWEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDE1LDE3Wk00LDh2N0gxNVY4WiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMyLDE3SDIxYTIsMiwwLDAsMS0yLTJWOGEyLDIsMCwwLDEs'@; put 'Mi0ySDMyYTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMzIsMTdaTTIxLDh2N0gzMlY4WiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE1LDMwSDRhMiwyLDAsMCwxLTItMlYyMWEyLDIsMCwwLDEsMi0ySDE1YTIsMiwwLDAsMSwy'@; put 'LDJ2N0EyLDIsMCwwLDEsMTUsMzBaTTQsMjF2N0gxNVYyMVoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0zMiwzMEgyMWEyLDIsMCwwLDEtMi0yVjIxYTIsMiwwLDAsMSwyLTJIMzJhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwz'@; put 'MiwzMFpNMjEsMjF2N0gzMlYyMVoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTSAxNSAxNyBMIDQgMTcgQyAyLjg5NSAxNyAyIDE2LjEwNSAyIDE1IEwgMiA4IEMgMiA2Ljg5NSAyLjg5NSA2IDQgNiBMIDE1IDYgQyAxNi4xMDUgNiAxNyA2'@; put 'Ljg5NSAxNyA4IEwgMTcgMTUgQyAxNyAxNi4xMDUgMTYuMTA1IDE3IDE1IDE3IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTSAzMiAxNyBMIDIxIDE3IEMgMTkuODk1IDE3IDE5IDE2LjEwNSAxOSAxNSBMIDE5IDggQyAxOSA2Ljg5NSAx'@; put 'OS44OTUgNiAyMSA2IEwgMzIgNiBDIDMzLjEwNSA2IDM0IDYuODk1IDM0IDggTCAzNCAxNSBDIDM0IDE2LjEwNSAzMy4xMDUgMTcgMzIgMTcgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNIDE1IDMwIEwgNCAzMCBDIDIuODk1IDMwIDIg'@; put 'MjkuMTA1IDIgMjggTCAyIDIxIEMgMiAxOS44OTUgMi44OTUgMTkgNCAxOSBMIDE1IDE5IEMgMTYuMTA1IDE5IDE3IDE5Ljg5NSAxNyAyMSBMIDE3IDI4IEMgMTcgMjkuMTA1IDE2LjEwNSAzMCAxNSAzMCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRo'@; put 'LTQiIGQ9Ik0gMzIgMzAgTCAyMSAzMCBDIDE5Ljg5NSAzMCAxOSAyOS4xMDUgMTkgMjggTCAxOSAyMSBDIDE5IDE5Ljg5NSAxOS44OTUgMTkgMjEgMTkgTCAzMiAxOSBDIDMzLjEwNSAxOSAzNCAxOS44OTUgMzQgMjEgTCAzNCAyOCBDIDM0IDI5LjEwNSAzMy4xMDUgMzAgMzIgMzAgWiIvPlxu'@; put 'ICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLWFsZXJ0ZWQiIGQ9Ik0xNSwxN0g0YTIsMiwwLDAsMS0yLTJWOEEyLDIsMCwwLDEsNCw2SDE1YTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMTUsMTdaTTQsOHY3SDE1VjhaIi8+XG4gIDxw'@; put 'YXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItYWxlcnRlZCIgZD0iTSAzMiAxNyBMIDIxIDE3IEMgMjAuMDE0IDE3IDE5LjE5NSAxNi4yODcgMTkuMDMgMTUuMzQ4IEMgMTkuMDQxIDE1LjM0OSAxOS4wNTMgMTUuMzUgMTkuMDY0IDE1LjM1MSBD'@; put 'IDE5LjEzNCAxNS4zNTcgMTkuMjAxIDE1LjM1OSAxOS4yNyAxNS4zNTcgTCAzMy45NjggMTUuMzU3IEMgMzMuOCAxNi4yOTIgMzIuOTgzIDE3IDMyIDE3IFogTSAxOSA4IEMgMTkgNi44OTUgMTkuODk1IDYgMjEgNiBMIDIxLjM3MiA2IEwgMTkgMTAuMDQ4IFoiLz5cbiAgPHBhdGggY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUtYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy1hbGVydGVkIiBkPSJNMTUsMzBINGEyLDIsMCwwLDEtMi0yVjIxYTIsMiwwLDAsMSwyLTJIMTVhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwxNSwzMFpNNCwyMXY3SDE1VjIxWiIvPlxuICA8cGF0aCBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LWFsZXJ0ZWQiIGQ9Ik0zMiwzMEgyMWEyLDIsMCwwLDEtMi0yVjIxYTIsMiwwLDAsMSwyLTJIMzJhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwzMiwzMFpNMjEsMjF2N0gzMlYyMVoiLz5cbiAgPHBhdGggY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4x'@; put 'ODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAu'@; put 'Mjk5IDI2Ljg1NCAxLjE0NCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMTUgMTcgTCA0IDE3IEMgMi44OTUgMTcgMiAxNi4xMDUgMiAxNSBMIDIgOCBDIDIgNi44OTUgMi44OTUgNiA0IDYgTCAxNSA2'@; put 'IEMgMTYuMTA1IDYgMTcgNi44OTUgMTcgOCBMIDE3IDE1IEMgMTcgMTYuMTA1IDE2LjEwNSAxNyAxNSAxNyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0gMzIgMTcgTCAyMSAxNyBDIDIwLjAxNCAxNyAx'@; put 'OS4xOTUgMTYuMjg3IDE5LjAzIDE1LjM0OCBDIDE5LjA0MSAxNS4zNDkgMTkuMDUzIDE1LjM1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMzMuOTY4IDE1LjM1NyBDIDMzLjggMTYuMjkyIDMyLjk4MyAxNyAzMiAxNyBaIE0gMTkg'@; put 'OCBDIDE5IDYuODk1IDE5Ljg5NSA2IDIxIDYgTCAyMS4zNzIgNiBMIDE5IDEwLjA0OCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0gMTUgMzAgTCA0IDMwIEMgMi44OTUgMzAgMiAyOS4xMDUgMiAyOCBM'@; put 'IDIgMjEgQyAyIDE5Ljg5NSAyLjg5NSAxOSA0IDE5IEwgMTUgMTkgQyAxNi4xMDUgMTkgMTcgMTkuODk1IDE3IDIxIEwgMTcgMjggQyAxNyAyOS4xMDUgMTYuMTA1IDMwIDE1IDMwIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0t'@; put 'YWxlcnRlZCIgZD0iTSAzMiAzMCBMIDIxIDMwIEMgMTkuODk1IDMwIDE5IDI5LjEwNSAxOSAyOCBMIDE5IDIxIEMgMTkgMTkuODk1IDE5Ljg5NSAxOSAyMSAxOSBMIDMyIDE5IEMgMzMuMTA1IDE5IDM0IDE5Ljg5NSAzNCAyMSBMIDM0IDI4IEMgMzQgMjkuMTA1IDMzLjEwNSAzMCAzMiAzMCBa'@; put 'Ii8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIu'@; put 'MTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcg'@; put 'MC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTE1LDE3SDRhMiwyLDAsMCwxLTItMlY4QTIsMiwwLDAsMSw0LDZIMTVhMiwyLDAsMCwxLDIsMnY3'@; put 'QTIsMiwwLDAsMSwxNSwxN1pNNCw4djdIMTVWOFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNIDMyIDE3IEwgMjEgMTcgQyAxOS44OTUgMTcgMTkgMTYuMTA1IDE5IDE1IEwgMTkgOCBDIDE5IDYuODk1'@; put 'IDE5Ljg5NSA2IDIxIDYgTCAyMi41OSA2IEMgMjIuNTkgNi4wMTkgMjIuNTkgNi4wMzcgMjIuNTkgNi4wNTYgQyAyMi41OSA2LjcyOSAyMi42OCA3LjM4MSAyMi44NDggOCBMIDIxIDggTCAyMSAxNSBMIDMyIDE1IEwgMzIgMTMuMTc1IEMgMzIuNzE3IDEyLjk3MiAzMy4zODkgMTIuNjY0IDM0'@; put 'IDEyLjI2OSBMIDM0IDE1IEMgMzQgMTYuMTA1IDMzLjEwNSAxNyAzMiAxNyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgZD0iTTE1LDMwSDRhMiwyLDAsMCwxLTItMlYyMWEyLDIsMCwwLDEsMi0ySDE1YTIs'@; put 'MiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMTUsMzBaTTQsMjF2N0gxNVYyMVoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiBkPSJNMzIsMzBIMjFhMiwyLDAsMCwxLTItMlYyMWEyLDIsMCwwLDEsMi0ySDMyYTIs'@; put 'MiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMzIsMzBaTTIxLDIxdjdIMzJWMjFaIi8+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gIDxwYXRoIGNs'@; put 'YXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDE1IDE3IEwgNCAxNyBDIDIuODk1IDE3IDIgMTYuMTA1IDIgMTUgTCAyIDggQyAyIDYuODk1IDIuODk1IDYgNCA2IEwgMTUgNiBDIDE2LjEwNSA2IDE3IDYuODk1IDE3IDggTCAxNyAxNSBD'@; put 'IDE3IDE2LjEwNSAxNi4xMDUgMTcgMTUgMTcgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTSAzMiAxNyBMIDIxIDE3IEMgMTkuODk1IDE3IDE5IDE2LjEwNSAxOSAxNSBMIDE5IDggQyAxOSA2Ljg5NSAxOS44'@; put 'OTUgNiAyMSA2IEwgMjIuNTkgNiBDIDIyLjU5IDYuMDE5IDIyLjU5IDYuMDM3IDIyLjU5IDYuMDU2IEMgMjIuNTkgMTAuMTQxIDI1LjkwMSAxMy40NTIgMjkuOTg2IDEzLjQ1MiBDIDMxLjQ2NiAxMy40NTIgMzIuODQ0IDEzLjAxOCAzNCAxMi4yNjkgTCAzNCAxNSBDIDM0IDE2LjEwNSAzMy4x'@; put 'MDUgMTcgMzIgMTcgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIgZD0iTSAxNSAzMCBMIDQgMzAgQyAyLjg5NSAzMCAyIDI5LjEwNSAyIDI4IEwgMiAyMSBDIDIgMTkuODk1IDIuODk1IDE5IDQgMTkgTCAxNSAxOSBD'@; put 'IDE2LjEwNSAxOSAxNyAxOS44OTUgMTcgMjEgTCAxNyAyOCBDIDE3IDI5LjEwNSAxNi4xMDUgMzAgMTUgMzAgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCIgZD0iTSAzMiAzMCBMIDIxIDMwIEMgMTkuODk1IDMwIDE5'@; put 'IDI5LjEwNSAxOSAyOCBMIDE5IDIxIEMgMTkgMTkuODk1IDE5Ljg5NSAxOSAyMSAxOSBMIDMyIDE5IEMgMzMuMTA1IDE5IDM0IDE5Ljg5NSAzNCAyMSBMIDM0IDI4IEMgMzQgMjkuMTA1IDMzLjEwNSAzMCAzMiAzMCBaIi8+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQg'@; put 'Y2xyLWktc29saWQtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxiLkNsclNoYXBlSGVhdE1hcD0oMCxwLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0gMzIgNSBM'@; put 'IDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDUgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNSAzNCAyOSBMIDM0IDcgQyAzNCA1Ljg5NSAzMy4xMDUgNSAzMiA1IFogTSA0IDI5IEwgNCA3IEwgMzIgNyBMIDMyIDI5IFoiPjwvcGF0'@; put 'aD5cbiAgPHBhdGggZD0iTSA4IDEwIEwgMjggMTAgTCAyOCAyNiBMIDggMjYgWiBNIDkuNiAyNCBMIDE0LjEgMjQgTCAxNC4xIDE4LjggTCA5LjYgMTguOCBaIE0gMTQuMSAxMS42IEwgOS42IDExLjYgTCA5LjYgMTcuMiBMIDE0LjEgMTcuMiBaIE0gMjYgMjQgTCAyNiAxOC44IEwgMjEuOSAx'@; put 'OC44IEwgMjEuOSAyNCBaIE0gMjYgMTEuNiBMIDIxLjkgMTEuNiBMIDIxLjkgMTcuMiBMIDI2IDE3LjIgWiBNIDE1LjcgMTEuNiBMIDE1LjcgMTcuMiBMIDIwLjMgMTcuMiBMIDIwLjMgMTEuNiBaIE0gMTUuNyAyNCBMIDIwLjMgMjQgTCAyMC4zIDE4LjggTCAxNS43IDE4LjggWiIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDMyIDEzLjIyIEwgMzIgMjkgTCA0IDI5IEwgNCA3IEwgMjIuNTcgNyBDIDIyLjUy'@; put 'NCA2LjY2OCAyMi41MDEgNi4zMzQgMjIuNSA2IEMgMjIuNTAxIDUuNjY1IDIyLjUyNCA1LjMzMSAyMi41NyA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNCAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDQgMzEgMzQgMzAuMTA0IDM0IDI5IEwgMzQg'@; put 'MTIuMzQgQyAzMy4zOCAxMi43MyAzMi43MDYgMTMuMDI2IDMyIDEzLjIyIFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSA4IDEwIEwgMjMuNzI4IDEwIEMgMjQuMTA1IDEwLjU5NiAyNC41NjQgMTEuMTM1IDI1LjA5IDExLjYgTCAyMS45IDExLjYgTCAyMS45IDE3LjIgTCAyNiAxNy4yIEwgMjYg'@; put 'MTIuMjg3IEMgMjYuNjExIDEyLjY3OSAyNy4yODQgMTIuOTgzIDI4IDEzLjE4MiBMIDI4IDI2IEwgOCAyNiBaIE0gOS42IDI0IEwgMTQuMSAyNCBMIDE0LjEgMTguOCBMIDkuNiAxOC44IFogTSAxNC4xIDExLjYgTCA5LjYgMTEuNiBMIDkuNiAxNy4yIEwgMTQuMSAxNy4yIFogTSAyNiAyNCBM'@; put 'IDI2IDE4LjggTCAyMS45IDE4LjggTCAyMS45IDI0IFogTSAxNS43IDExLjYgTCAxNS43IDE3LjIgTCAyMC4zIDE3LjIgTCAyMC4zIDExLjYgWiBNIDE1LjcgMjQgTCAyMC4zIDI0IEwgMjAuMyAxOC44IEwgMTUuNyAxOC44IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTItLWJhZGdlZCI+PC9wYXRoPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTIyLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIw'@; put 'Ljc4NiA3IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSA4IDEwIEwgMTkuMDI4IDEwIEwgMTguMDkxIDExLjYgTCAxNS43IDExLjYgTCAxNS43IDE3LjIgTCAyMC4zIDE3LjIgTCAyMC4zIDE1LjM1NyBMIDIxLjkg'@; put 'MTUuMzU3IEwgMjEuOSAxNy4yIEwgMjYgMTcuMiBMIDI2IDE1LjM1NyBMIDI4IDE1LjM1NyBMIDI4IDI2IEwgOCAyNiBaIE0gOS42IDI0IEwgMTQuMSAyNCBMIDE0LjEgMTguOCBMIDkuNiAxOC44IFogTSAxNC4xIDExLjYgTCA5LjYgMTEuNiBMIDkuNiAxNy4yIEwgMTQuMSAxNy4yIFogTSAy'@; put 'NiAyNCBMIDI2IDE4LjggTCAyMS45IDE4LjggTCAyMS45IDI0IFogTSAxNS43IDI0IEwgMjAuMyAyNCBMIDIwLjMgMTguOCBMIDE1LjcgMTguOCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCI+PC9wYXRoPlxuICA8cGF0aCBj'@; put 'bGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMjItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAw'@; put 'NSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcu'@; put 'MzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3'@; put 'IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NiAzNCA3IFogTSA4IDI2IEwgMjggMjYgTCAyOCAxMCBMIDggMTAgWiBNIDEwIDE5IEwgMTQgMTkgTCAxNCAyNCBMIDEwIDI0IFogTSAyMiAyNCBMIDIyIDE5IEwgMjYgMTkgTCAyNiAyNCBaIE0gMjAgMTkg'@; put 'TCAyMCAyNCBMIDE2IDI0IEwgMTYgMTkgWiBNIDI2IDE3IEwgMjIgMTcgTCAyMiAxMiBMIDI2IDEyIFogTSAyMCAxMiBMIDIwIDE3IEwgMTYgMTcgTCAxNiAxMiBaIE0gMTQgMTIgTCAxNCAxNyBMIDEwIDE3IEwgMTAgMTIgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQt'@; put 'LWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIyLjU3IDUgQyAyMi4zMTIg'@; put 'Ni44MTcgMjIuNzMyIDguNTY2IDIzLjYzMyAxMCBMIDggMTAgTCA4IDI2IEwgMjggMjYgTCAyOCAxMy4yMzIgQyAyOC40MjEgMTMuMzQ1IDI4Ljg1OSAxMy40MjIgMjkuMzEgMTMuNDYgTCAzMC4zMiAxMy40OCBDIDMxLjYyNiAxMy40MjkgMzIuODk1IDEzLjAzNiAzNCAxMi4zNCBaIE0gMTAg'@; put 'MTkgTCAxNCAxOSBMIDE0IDI0IEwgMTAgMjQgWiBNIDIyIDI0IEwgMjIgMTkgTCAyNiAxOSBMIDI2IDI0IFogTSAyMCAxOSBMIDIwIDI0IEwgMTYgMjQgTCAxNiAxOSBaIE0gMjYgMTcgTCAyMiAxNyBMIDIyIDEyIEwgMjUuNTg0IDEyIEMgMjUuNzE5IDEyLjEgMjUuODU4IDEyLjE5NiAyNiAx'@; put 'Mi4yODcgWiBNIDIwIDEyIEwgMjAgMTcgTCAxNiAxNyBMIDE2IDEyIFogTSAxNCAxMiBMIDE0IDE3IEwgMTAgMTcgTCAxMCAxMiBaIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBj'@; put 'eD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAy'@; put 'OSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMS45NTggNSBMIDE5LjAyOCAxMCBMIDggMTAgTCA4IDI2IEwgMjggMjYgTCAyOCAxNS4zNTcgTCAzNCAxNS4zNTcgWiBNIDEwIDE5IEwgMTQgMTkgTCAxNCAyNCBMIDEwIDI0IFogTSAyMiAyNCBMIDIyIDE5IEwgMjYgMTkgTCAyNiAy'@; put 'NCBaIE0gMjAgMTkgTCAyMCAyNCBMIDE2IDI0IEwgMTYgMTkgWiBNIDI2IDE3IEwgMjIgMTcgTCAyMiAxNS4zNTcgTCAyNiAxNS4zNTcgWiBNIDIwIDE3IEwgMTYgMTcgTCAxNiAxMiBMIDE3Ljg1NiAxMiBMIDE3LjYyNSAxMi4zOTUgQyAxNi43OTUgMTMuNjAxIDE3LjU5NCAxNS4yNDUgMTku'@; put 'MDY0IDE1LjM1MSBDIDE5LjEzNCAxNS4zNTcgMTkuMjAxIDE1LjM1OSAxOS4yNyAxNS4zNTcgTCAyMCAxNS4zNTcgWiBNIDE0IDEyIEwgMTQgMTcgTCAxMCAxNyBMIDEwIDEyIFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgt'@; put 'MjItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMg'@; put 'MzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+JyksYi5DbHJTaGFwZUxp'@; put 'bmVDaGFydD0oMCxwLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0gMzIgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDUgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1'@; put 'IDMxIDM0IDMwLjEwNSAzNCAyOSBMIDM0IDcgQyAzNCA1Ljg5NSAzMy4xMDUgNSAzMiA1IFogTSA0IDI5IEwgNCA3IEwgMzIgNyBMIDMyIDI5IFoiPjwvcGF0aD5cbiAgPHBvbHlnb24gcG9pbnRzPSIxNS42MiAxNS4yMjIgOS42MDIgMjMuOTY4IDUuNTUgMjAuMzg0IDYuNjEgMTkuMTg2IDku'@; put 'MzA4IDIxLjU3MiAxNS42MzQgMTIuMzggMjIuMzg0IDIyLjM5NSAyOS4xMzggMTMuNDcgMzAuNDE0IDE0LjQzNiAyMi4zMDggMjUuMTQ1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiI+PC9wb2x5Z29uPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xy'@; put 'LWktc29saWQtcGF0aC0xIiBkPSJNIDMyIDUgTCA0IDUgQyAyLjg5NiA1IDIgNS44OTYgMiA3IEwgMiAyOSBDIDIgMzAuMTA1IDIuODk2IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDUgMzQgMjkgTCAzNCA3IEMgMzQgNS44OTYgMzMuMTA1IDUgMzIgNSBaIE0gMjIuNTYg'@; put 'MjUuOTQgTCAxNS40NiAxNS4zNiBMIDkuMTIgMjQuNjQgTCA0LjYyIDIwLjY0IEwgNiAxOS4wNSBMIDguNyAyMS40NCBMIDE1LjQ2IDExLjU2IEwgMjIuNjUgMjIuMjcgTCAyOS42NSAxMyBMIDMxLjM1IDE0LjI4IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJh'@; put 'ZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDMyIDEzLjIyIEwgMzIgMjkgTCA0IDI5IEwgNCA3IEwgMjIuNTcgNyBDIDIyLjUyNCA2LjY2OCAyMi41MDEgNi4zMzQgMjIuNSA2IEMgMjIuNTAxIDUuNjY1IDIyLjUyNCA1LjMzMSAyMi41NyA1IEwgNCA1IEMgMi44OTUg'@; put 'NSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNCAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDQgMzEgMzQgMzAuMTA0IDM0IDI5IEwgMzQgMTIuMzQgQyAzMy4zOCAxMi43MyAzMi43MDYgMTMuMDI2IDMyIDEzLjIyIFoiPjwvcGF0aD5cbiAgPHBvbHlnb24gcG9pbnRzPSIxNS42'@; put 'MiAxNS4yMjIgOS42MDIgMjMuOTY4IDUuNTUgMjAuMzg0IDYuNjEgMTkuMTg2IDkuMzA4IDIxLjU3MiAxNS42MzQgMTIuMzggMjIuMzg0IDIyLjM5NSAyOS4xMzggMTMuNDcgMzAuNDE0IDE0LjQzNiAyMi4zMDggMjUuMTQ1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0yLS1iYWRnZWQiPjwvcG9seWdvbj5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xy'@; put 'LWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMC4zMiAxMy40OCBMIDMxLjM4IDE0LjI4IEwgMjIuNTYgMjUuOTQgTCAxNS40NiAxNS4zNiBMIDkuMTIgMjQuNjQgTCA0LjYyIDIwLjY0IEwgNiAxOS4wNSBMIDguNyAyMS40NCBMIDE1LjQ2IDExLjU2'@; put 'IEwgMjIuNjUgMjIuMjcgTCAyOS4zMSAxMy40NiBDIDI1LjA1IDEzLjEgMjEuOTY5IDkuMjMzIDIyLjU3IDUgTCA0IDUgQyAyLjg5NiA1IDIgNS44OTYgMiA3IEwgMiAyOSBDIDIgMzAuMTA1IDIuODk2IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDUgMzQgMjkgTCAzNCAx'@; put 'Mi4zNCBDIDMyLjg5NSAxMy4wMzYgMzEuNjI2IDEzLjQyOSAzMC4zMiAxMy40OCBaIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xl'@; put 'PlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUg'@; put 'NSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxNS42MiAxNS4yMjIgTCA5LjYwMiAyMy45NjggTCA1LjU1IDIwLjM4NCBMIDYuNjEgMTkuMTg2IEwgOS4zMDggMjEu'@; put 'NTcyIEwgMTUuNjM0IDEyLjM4IEwgMjIuMzg0IDIyLjM5NSBMIDI3LjcxNyAxNS4zNDggTCAyOS43MjQgMTUuMzQ4IEwgMjIuMzA4IDI1LjE0NSBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCI+PC9wYXRoPlxuICA8cGF0aCBj'@; put 'bGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1'@; put 'IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4z'@; put 'NDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUg'@; put 'MiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMS45NTggNSBMIDE3LjYyNSAxMi4zOTUgQyAxNi43OTUgMTMuNjAxIDE3LjU5NCAxNS4yNDUgMTkuMDY0IDE1LjM1MSBDIDE5LjEzNCAxNS4zNTcgMTkuMjAxIDE1LjM1OSAxOS4yNyAxNS4zNTcgTCAyNy40NTIgMTUuMzU3IEwg'@; put 'MjIuMzggMjIuMDYgTCAxNS42MyAxMiBMIDkuMjggMjEuMjggTCA2Ljc1IDE5LjA0IEwgNS40MiAyMC41MyBMIDkuNjUgMjQuMjggTCAxNS42MSAxNS41NiBMIDIyLjI4IDI1LjUgTCAyOS45NTkgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNv'@; put 'bGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIu'@; put 'MjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEu'@; put 'MTQ0IFoiPjwvcGF0aD4nKSxiLkNsclNoYXBlUGllQ2hhcnQ9KDAscC5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNIDMyIDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA1IDIu'@; put 'ODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDUgMzQgMjkgTCAzNCA3IEMgMzQgNS44OTUgMzMuMTA1IDUgMzIgNSBaIE0gNCAyOSBMIDQgNyBMIDMyIDcgTCAzMiAyOSBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTcgMjcgQyAxMi41ODIgMjcgOSAyMy40MTggOSAx'@; put 'OSBDIDkgMTQuNTgyIDEyLjU4MiAxMSAxNyAxMSBMIDE3IDE5IEwgMjUgMTkgQyAyNSAyMy40MTggMjEuNDE4IDI3IDE3IDI3IFogTSAyMy4yNDcgMjAuNCBMIDE1LjQgMjAuNCBMIDE1LjQgMTIuODAyIEMgMTIuNjQgMTMuNTEzIDEwLjYwMSAxNi4wMTggMTAuNiAxOSBDIDEwLjYgMjIuNTM1'@; put 'IDEzLjQ2NSAyNS40IDE3IDI1LjQgQyAyMC4wNTQgMjUuNDAxIDIyLjYwOCAyMy4yNjEgMjMuMjQ3IDIwLjQgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxOSA5IEMgMjMuNDE4IDkgMjcgMTIuNTgyIDI3IDE3IEwg'@; put 'MTkgMTcgWiBNIDI1LjE5OCAxNS40IEMgMjQuNjIgMTMuMTUgMjIuODQ5IDExLjM4IDIwLjYgMTAuODAxIEwgMjAuNiAxNS40IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp'@; put 'ZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBDIDMyIDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMzIgNSBDIDMzLjEwNSA1IDM0IDUuODk2IDM0IDcgWiBNIDI1IDE5IEwgMTcgMTkgTCAxNyAxMSBD'@; put 'IDEyLjU4MiAxMSA5IDE0LjU4MiA5IDE5IEMgOSAyMy40MTggMTIuNTgyIDI3IDE3IDI3IEMgMjEuNDE4IDI3IDI1IDIzLjQxOCAyNSAxOSBaIE0gMTkgMTcgTCAyNyAxNyBDIDI3IDEyLjU4MiAyMy40MTggOSAxOSA5IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUt'@; put 'LWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDMyIDEzLjIyIEwgMzIgMjkgTCA0IDI5IEwgNCA3IEwgMjIuNTcgNyBDIDIyLjUyNCA2LjY2OCAyMi41MDEgNi4zMzQgMjIuNSA2IEMgMjIuNTAxIDUuNjY1IDIyLjUyNCA1LjMzMSAyMi41NyA1IEwgNCA1IEMgMi44'@; put 'OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNCAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDQgMzEgMzQgMzAuMTA0IDM0IDI5IEwgMzQgMTIuMzQgQyAzMy4zOCAxMi43MyAzMi43MDYgMTMuMDI2IDMyIDEzLjIyIFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxNyAyNyBD'@; put 'IDEyLjU4MiAyNyA5IDIzLjQxOCA5IDE5IEMgOSAxNC41ODIgMTIuNTgyIDExIDE3IDExIEwgMTcgMTkgTCAyNSAxOSBDIDI1IDIzLjQxOCAyMS40MTggMjcgMTcgMjcgWiBNIDIzLjI0NyAyMC40IEwgMTUuNCAyMC40IEwgMTUuNCAxMi44MDIgQyAxMi42NCAxMy41MTMgMTAuNjAxIDE2LjAx'@; put 'OCAxMC42IDE5IEMgMTAuNiAyMi41MzUgMTMuNDY1IDI1LjQgMTcgMjUuNCBDIDIwLjA1NCAyNS40MDEgMjIuNjA4IDIzLjI2MSAyMy4yNDcgMjAuNCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiPjwvcGF0aD5cbiAgPHBhdGgg'@; put 'ZD0iTSAxOSA5IEMgMjMuNDE4IDkgMjcgMTIuNTgyIDI3IDE3IEwgMTkgMTcgWiBNIDI1LjE5OCAxNS40IEMgMjQuNjIgMTMuMTUgMjIuODQ5IDExLjM4IDIwLjYgMTAuODAxIEwgMjAuNiAxNS40IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMt'@; put 'LWJhZGdlZCI+PC9wYXRoPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2Vk'@; put 'IGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDM0IDEyLjM0IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjIuNTcgNSBDIDIxLjk2OSA5LjIzMyAy'@; put 'NS4wNSAxMy4xIDI5LjMxIDEzLjQ2IEwgMzAuMzIgMTMuNDggQyAzMS42MjYgMTMuNDI5IDMyLjg5NSAxMy4wMzYgMzQgMTIuMzQgWiBNIDI1IDE5IEwgMTcgMTkgTCAxNyAxMSBDIDEyLjU4MiAxMSA5IDE0LjU4MiA5IDE5IEMgOSAyMy40MTggMTIuNTgyIDI3IDE3IDI3IEMgMjEuNDE4IDI3'@; put 'IDI1IDIzLjQxOCAyNSAxOSBaIE0gMTkgMTcgTCAyNyAxNyBDIDI3IDEyLjU4MiAyMy40MTggOSAxOSA5IFoiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIg'@; put 'cj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMg'@; put 'MiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1IEwgMjAuNzg2IDcgTCA0IDcgTCA0IDI5IEwgMzIgMjkgTCAzMiAxNS4zNTcgTCAzNCAxNS4zNTcgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE3IDI3IEMgMTIuNTgyIDI3IDkgMjMuNDE4IDkgMTkgQyA5IDE0LjU4MiAxMi41ODIgMTEg'@; put 'MTcgMTEgTCAxNyAxOSBMIDI1IDE5IEMgMjUgMjMuNDE4IDIxLjQxOCAyNyAxNyAyNyBaIE0gMjMuMjQ3IDIwLjQgTCAxNS40IDIwLjQgTCAxNS40IDEyLjgwMiBDIDEyLjY0IDEzLjUxMyAxMC42MDEgMTYuMDE4IDEwLjYgMTkgQyAxMC42IDIyLjUzNSAxMy40NjUgMjUuNCAxNyAyNS40IEMg'@; put 'MjAuMDU0IDI1LjQwMSAyMi42MDggMjMuMjYxIDIzLjI0NyAyMC40IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjcgMTcgTCAxOSAxNyBMIDE5IDE1LjM0NSBDIDE5LjAyMSAxNS4z'@; put 'NDggMTkuMDQzIDE1LjM0OSAxOS4wNjQgMTUuMzUxIEMgMTkuMTM0IDE1LjM1NyAxOS4yMDEgMTUuMzU5IDE5LjI3IDE1LjM1NyBMIDI2LjgzMSAxNS4zNTcgQyAyNi45NDIgMTUuODg3IDI3IDE2LjQzNyAyNyAxNyBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMy0tYWxlcnRlZCI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4x'@; put 'MTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAx'@; put 'MS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4x'@; put 'MDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMS45NTggNSBMIDE3LjYyNSAxMi4zOTUgQyAxNi44MDcgMTMuNTgzIDE3LjU3MSAxNS4xOTcgMTkgMTUuMzQ1IEwgMTkgMTcgTCAyNyAxNyBDIDI3IDE2LjQz'@; put 'NyAyNi45NDIgMTUuODg3IDI2LjgzMSAxNS4zNTcgTCAzNCAxNS4zNTcgWiBNIDI1IDE5IEwgMTcgMTkgTCAxNyAxMSBDIDEyLjU4MiAxMSA5IDE0LjU4MiA5IDE5IEMgOSAyMy40MTggMTIuNTgyIDI3IDE3IDI3IEMgMjEuNDE4IDI3IDI1IDIzLjQxOCAyNSAxOSBaIj48L3BhdGg+XG4gIDxw'@; put 'YXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAw'@; put 'NSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcu'@; put 'MzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+JyksYi5DbHJTaGFwZVNjYXR0ZXJQbG90PSgwLHAuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIg'@; put 'NyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQgMjkgTCA0IDcgTCAzMiA3IEwgMzIgMjkgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTSA5LjEwMSAxNS44IEMgOS40MTMgMTYuMTExIDkuOTE5IDE2LjExMSAxMC4yMzEgMTUuOCBMIDExLjM5MSAxNC42NCBMIDEyLjU1MSAxNS44IEMgMTIuOTY0IDE2LjI1NiAxMy43MTcgMTYuMDk0IDEzLjkwNSAxNS41MDcgQyAxNC4wMDIgMTUu'@; put 'MjA4IDEzLjkxNCAxNC44ODEgMTMuNjgxIDE0LjY3IEwgMTIuNTMxIDEzLjU0IEwgMTMuNjkxIDEyLjM4IEMgMTQuMTQ3IDExLjk2NiAxMy45ODUgMTEuMjE0IDEzLjM5OSAxMS4wMjUgQyAxMy4xIDEwLjkyOSAxMi43NzIgMTEuMDE3IDEyLjU2MSAxMS4yNSBMIDExLjQwMSAxMi40MSBMIDEw'@; put 'LjIzMSAxMS4yMiBDIDkuODE3IDEwLjc2MyA5LjA2NSAxMC45MjYgOC44NzcgMTEuNTEyIEMgOC43OCAxMS44MTEgOC44NjggMTIuMTM5IDkuMTAxIDEyLjM1IEwgMTAuMjYxIDEzLjU0IEwgOS4xMDEgMTQuNjcgQyA4Ljc4OSAxNC45ODIgOC43ODkgMTUuNDg3IDkuMTAxIDE1LjggWiIvPlxu'@; put 'ICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTSAxNS4xNzYgMjUuNTM2IEMgMTUuNDg4IDI1Ljg0NyAxNS45OTQgMjUuODQ3IDE2LjMwNiAyNS41MzYgTCAxNy40NjYgMjQuMzc2IEwgMTguNjI2IDI1LjUzNiBDIDE5LjAzOSAyNS45OTIgMTku'@; put 'NzkyIDI1LjgzIDE5Ljk4IDI1LjI0MyBDIDIwLjA3NyAyNC45NDQgMTkuOTg5IDI0LjYxNyAxOS43NTYgMjQuNDA2IEwgMTguNjA2IDIzLjI3NiBMIDE5Ljc2NiAyMi4xMTYgQyAyMC4yMjIgMjEuNzAyIDIwLjA2IDIwLjk1IDE5LjQ3NCAyMC43NjEgQyAxOS4xNzUgMjAuNjY1IDE4Ljg0NyAy'@; put 'MC43NTMgMTguNjM2IDIwLjk4NiBMIDE3LjQ3NiAyMi4xNDYgTCAxNi4zMDYgMjAuOTU2IEMgMTUuODkyIDIwLjQ5OSAxNS4xNCAyMC42NjIgMTQuOTUyIDIxLjI0OCBDIDE0Ljg1NSAyMS41NDcgMTQuOTQzIDIxLjg3NSAxNS4xNzYgMjIuMDg2IEwgMTYuMzM2IDIzLjI3NiBMIDE1LjE3NiAy'@; put 'NC40MDYgQyAxNC44NjQgMjQuNzE4IDE0Ljg2NCAyNS4yMjMgMTUuMTc2IDI1LjUzNiBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNIDIyLjkxMiAyMC4zNDMgQyAyMy4yMjQgMjAuNjU0IDIzLjczIDIwLjY1NCAyNC4wNDIgMjAu'@; put 'MzQzIEwgMjUuMjAyIDE5LjE4MyBMIDI2LjM2MiAyMC4zNDMgQyAyNi43NzUgMjAuNzk5IDI3LjUyOCAyMC42MzcgMjcuNzE2IDIwLjA1IEMgMjcuODEzIDE5Ljc1MSAyNy43MjUgMTkuNDI0IDI3LjQ5MiAxOS4yMTMgTCAyNi4zNDIgMTguMDgzIEwgMjcuNTAyIDE2LjkyMyBDIDI3Ljk1OCAx'@; put 'Ni41MDkgMjcuNzk2IDE1Ljc1NyAyNy4yMSAxNS41NjggQyAyNi45MTEgMTUuNDcyIDI2LjU4MyAxNS41NiAyNi4zNzIgMTUuNzkzIEwgMjUuMjEyIDE2Ljk1MyBMIDI0LjA0MiAxNS43NjMgQyAyMy42MjggMTUuMzA2IDIyLjg3NiAxNS40NjkgMjIuNjg4IDE2LjA1NSBDIDIyLjU5MSAxNi4z'@; put 'NTQgMjIuNjc5IDE2LjY4MiAyMi45MTIgMTYuODkzIEwgMjQuMDcyIDE4LjA4MyBMIDIyLjkxMiAxOS4yMTMgQyAyMi42IDE5LjUyNSAyMi42IDIwLjAzIDIyLjkxMiAyMC4zNDMgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNIDM0IDcg'@; put 'TCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTYgMzQgNyBaIE0gOS4xMDEgMTUuOCBDIDkuNDEzIDE2LjExMSA5LjkxOSAx'@; put 'Ni4xMTEgMTAuMjMxIDE1LjggTCAxMS4zOTEgMTQuNjQgTCAxMi41NTEgMTUuOCBDIDEyLjk2NCAxNi4yNTYgMTMuNzE3IDE2LjA5NCAxMy45MDUgMTUuNTA3IEMgMTQuMDAyIDE1LjIwOCAxMy45MTQgMTQuODgxIDEzLjY4MSAxNC42NyBMIDEyLjUzMSAxMy41NCBMIDEzLjY5MSAxMi4zOCBD'@; put 'IDE0LjE0NyAxMS45NjYgMTMuOTg1IDExLjIxNCAxMy4zOTkgMTEuMDI1IEMgMTMuMSAxMC45MjkgMTIuNzcyIDExLjAxNyAxMi41NjEgMTEuMjUgTCAxMS40MDEgMTIuNDEgTCAxMC4yMzEgMTEuMjIgQyA5LjgxNyAxMC43NjMgOS4wNjUgMTAuOTI2IDguODc3IDExLjUxMiBDIDguNzggMTEu'@; put 'ODExIDguODY4IDEyLjEzOSA5LjEwMSAxMi4zNSBMIDEwLjI2MSAxMy41NCBMIDkuMTAxIDE0LjY3IEMgOC43ODkgMTQuOTgyIDguNzg5IDE1LjQ4NyA5LjEwMSAxNS44IFogTSAxNS4xNzYgMjUuNTM2IEMgMTUuNDg4IDI1Ljg0NyAxNS45OTQgMjUuODQ3IDE2LjMwNiAyNS41MzYgTCAxNy40'@; put 'NjYgMjQuMzc2IEwgMTguNjI2IDI1LjUzNiBDIDE5LjAzOSAyNS45OTIgMTkuNzkyIDI1LjgzIDE5Ljk4IDI1LjI0MyBDIDIwLjA3NyAyNC45NDQgMTkuOTg5IDI0LjYxNyAxOS43NTYgMjQuNDA2IEwgMTguNjA2IDIzLjI3NiBMIDE5Ljc2NiAyMi4xMTYgQyAyMC4yMjIgMjEuNzAyIDIwLjA2'@; put 'IDIwLjk1IDE5LjQ3NCAyMC43NjEgQyAxOS4xNzUgMjAuNjY1IDE4Ljg0NyAyMC43NTMgMTguNjM2IDIwLjk4NiBMIDE3LjQ3NiAyMi4xNDYgTCAxNi4zMDYgMjAuOTU2IEMgMTUuODkyIDIwLjQ5OSAxNS4xNCAyMC42NjIgMTQuOTUyIDIxLjI0OCBDIDE0Ljg1NSAyMS41NDcgMTQuOTQzIDIx'@; put 'Ljg3NSAxNS4xNzYgMjIuMDg2IEwgMTYuMzM2IDIzLjI3NiBMIDE1LjE3NiAyNC40MDYgQyAxNC44NjQgMjQuNzE4IDE0Ljg2NCAyNS4yMjMgMTUuMTc2IDI1LjUzNiBaIE0gMjIuOTEyIDIwLjM0MyBDIDIzLjIyNCAyMC42NTQgMjMuNzMgMjAuNjU0IDI0LjA0MiAyMC4zNDMgTCAyNS4yMDIg'@; put 'MTkuMTgzIEwgMjYuMzYyIDIwLjM0MyBDIDI2Ljc3NSAyMC43OTkgMjcuNTI4IDIwLjYzNyAyNy43MTYgMjAuMDUgQyAyNy44MTMgMTkuNzUxIDI3LjcyNSAxOS40MjQgMjcuNDkyIDE5LjIxMyBMIDI2LjM0MiAxOC4wODMgTCAyNy41MDIgMTYuOTIzIEMgMjcuOTU4IDE2LjUwOSAyNy43OTYg'@; put 'MTUuNzU3IDI3LjIxIDE1LjU2OCBDIDI2LjkxMSAxNS40NzIgMjYuNTgzIDE1LjU2IDI2LjM3MiAxNS43OTMgTCAyNS4yMTIgMTYuOTUzIEwgMjQuMDQyIDE1Ljc2MyBDIDIzLjYyOCAxNS4zMDYgMjIuODc2IDE1LjQ2OSAyMi42ODggMTYuMDU1IEMgMjIuNTkxIDE2LjM1NCAyMi42NzkgMTYu'@; put 'NjgyIDIyLjkxMiAxNi44OTMgTCAyNC4wNzIgMTguMDgzIEwgMjIuOTEyIDE5LjIxMyBDIDIyLjYgMTkuNTI1IDIyLjYgMjAuMDMgMjIuOTEyIDIwLjM0MyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0i'@; put 'TSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUg'@; put 'MzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAzMiAxMy4yMiBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIg'@; put 'ZD0iTSA5LjEwMSAxNS44IEMgOS40MTMgMTYuMTExIDkuOTE5IDE2LjExMSAxMC4yMzEgMTUuOCBMIDExLjM5MSAxNC42NCBMIDEyLjU1MSAxNS44IEMgMTIuOTY0IDE2LjI1NiAxMy43MTcgMTYuMDk0IDEzLjkwNSAxNS41MDcgQyAxNC4wMDIgMTUuMjA4IDEzLjkxNCAxNC44ODEgMTMuNjgx'@; put 'IDE0LjY3IEwgMTIuNTMxIDEzLjU0IEwgMTMuNjkxIDEyLjM4IEMgMTQuMTQ3IDExLjk2NiAxMy45ODUgMTEuMjE0IDEzLjM5OSAxMS4wMjUgQyAxMy4xIDEwLjkyOSAxMi43NzIgMTEuMDE3IDEyLjU2MSAxMS4yNSBMIDExLjQwMSAxMi40MSBMIDEwLjIzMSAxMS4yMiBDIDkuODE3IDEwLjc2'@; put 'MyA5LjA2NSAxMC45MjYgOC44NzcgMTEuNTEyIEMgOC43OCAxMS44MTEgOC44NjggMTIuMTM5IDkuMTAxIDEyLjM1IEwgMTAuMjYxIDEzLjU0IEwgOS4xMDEgMTQuNjcgQyA4Ljc4OSAxNC45ODIgOC43ODkgMTUuNDg3IDkuMTAxIDE1LjggWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0gMTUuMTc2IDI1LjUzNiBDIDE1LjQ4OCAyNS44NDcgMTUuOTk0IDI1Ljg0NyAxNi4zMDYgMjUuNTM2IEwgMTcuNDY2IDI0LjM3NiBMIDE4LjYyNiAyNS41MzYgQyAxOS4wMzkgMjUuOTkyIDE5Ljc5MiAyNS44'@; put 'MyAxOS45OCAyNS4yNDMgQyAyMC4wNzcgMjQuOTQ0IDE5Ljk4OSAyNC42MTcgMTkuNzU2IDI0LjQwNiBMIDE4LjYwNiAyMy4yNzYgTCAxOS43NjYgMjIuMTE2IEMgMjAuMjIyIDIxLjcwMiAyMC4wNiAyMC45NSAxOS40NzQgMjAuNzYxIEMgMTkuMTc1IDIwLjY2NSAxOC44NDcgMjAuNzUzIDE4'@; put 'LjYzNiAyMC45ODYgTCAxNy40NzYgMjIuMTQ2IEwgMTYuMzA2IDIwLjk1NiBDIDE1Ljg5MiAyMC40OTkgMTUuMTQgMjAuNjYyIDE0Ljk1MiAyMS4yNDggQyAxNC44NTUgMjEuNTQ3IDE0Ljk0MyAyMS44NzUgMTUuMTc2IDIyLjA4NiBMIDE2LjMzNiAyMy4yNzYgTCAxNS4xNzYgMjQuNDA2IEMg'@; put 'MTQuODY0IDI0LjcxOCAxNC44NjQgMjUuMjIzIDE1LjE3NiAyNS41MzYgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIGQ9Ik0gMjIuOTEyIDIwLjM0MyBDIDIzLjIyNCAyMC42NTQgMjMuNzMgMjAuNjU0IDI0'@; put 'LjA0MiAyMC4zNDMgTCAyNS4yMDIgMTkuMTgzIEwgMjYuMzYyIDIwLjM0MyBDIDI2Ljc3NSAyMC43OTkgMjcuNTI4IDIwLjYzNyAyNy43MTYgMjAuMDUgQyAyNy44MTMgMTkuNzUxIDI3LjcyNSAxOS40MjQgMjcuNDkyIDE5LjIxMyBMIDI2LjM0MiAxOC4wODMgTCAyNy41MDIgMTYuOTIzIEMg'@; put 'MjcuOTU4IDE2LjUwOSAyNy43OTYgMTUuNzU3IDI3LjIxIDE1LjU2OCBDIDI2LjkxMSAxNS40NzIgMjYuNTgzIDE1LjU2IDI2LjM3MiAxNS43OTMgTCAyNS4yMTIgMTYuOTUzIEwgMjQuMDQyIDE1Ljc2MyBDIDIzLjYyOCAxNS4zMDYgMjIuODc2IDE1LjQ2OSAyMi42ODggMTYuMDU1IEMgMjIu'@; put 'NTkxIDE2LjM1NCAyMi42NzkgMTYuNjgyIDIyLjkxMiAxNi44OTMgTCAyNC4wNzIgMTguMDgzIEwgMjIuOTEyIDE5LjIxMyBDIDIyLjYgMTkuNTI1IDIyLjYgMjAuMDMgMjIuOTEyIDIwLjM0MyBaIi8+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDM0IDEyLjM0IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMy'@; put 'IDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjIuNTcgNSBDIDIxLjk2OSA5LjIzMyAyNS4wNSAxMy4xIDI5LjMxIDEzLjQ2IEwgMzAuMzIgMTMuNDggQyAzMS42MjYgMTMuNDI5IDMyLjg5NSAxMy4wMzYgMzQgMTIuMzQg'@; put 'WiBNIDkuMTAxIDE1LjggQyA5LjQxMyAxNi4xMTEgOS45MTkgMTYuMTExIDEwLjIzMSAxNS44IEwgMTEuMzkxIDE0LjY0IEwgMTIuNTUxIDE1LjggQyAxMi45NjQgMTYuMjU2IDEzLjcxNyAxNi4wOTQgMTMuOTA1IDE1LjUwNyBDIDE0LjAwMiAxNS4yMDggMTMuOTE0IDE0Ljg4MSAxMy42ODEg'@; put 'MTQuNjcgTCAxMi41MzEgMTMuNTQgTCAxMy42OTEgMTIuMzggQyAxNC4xNDcgMTEuOTY2IDEzLjk4NSAxMS4yMTQgMTMuMzk5IDExLjAyNSBDIDEzLjEgMTAuOTI5IDEyLjc3MiAxMS4wMTcgMTIuNTYxIDExLjI1IEwgMTEuNDAxIDEyLjQxIEwgMTAuMjMxIDExLjIyIEMgOS44MTcgMTAuNzYz'@; put 'IDkuMDY1IDEwLjkyNiA4Ljg3NyAxMS41MTIgQyA4Ljc4IDExLjgxMSA4Ljg2OCAxMi4xMzkgOS4xMDEgMTIuMzUgTCAxMC4yNjEgMTMuNTQgTCA5LjEwMSAxNC42NyBDIDguNzg5IDE0Ljk4MiA4Ljc4OSAxNS40ODcgOS4xMDEgMTUuOCBaIE0gMTUuMTc2IDI1LjUzNiBDIDE1LjQ4OCAyNS44'@; put 'NDcgMTUuOTk0IDI1Ljg0NyAxNi4zMDYgMjUuNTM2IEwgMTcuNDY2IDI0LjM3NiBMIDE4LjYyNiAyNS41MzYgQyAxOS4wMzkgMjUuOTkyIDE5Ljc5MiAyNS44MyAxOS45OCAyNS4yNDMgQyAyMC4wNzcgMjQuOTQ0IDE5Ljk4OSAyNC42MTcgMTkuNzU2IDI0LjQwNiBMIDE4LjYwNiAyMy4yNzYg'@; put 'TCAxOS43NjYgMjIuMTE2IEMgMjAuMjIyIDIxLjcwMiAyMC4wNiAyMC45NSAxOS40NzQgMjAuNzYxIEMgMTkuMTc1IDIwLjY2NSAxOC44NDcgMjAuNzUzIDE4LjYzNiAyMC45ODYgTCAxNy40NzYgMjIuMTQ2IEwgMTYuMzA2IDIwLjk1NiBDIDE1Ljg5MiAyMC40OTkgMTUuMTQgMjAuNjYyIDE0'@; put 'Ljk1MiAyMS4yNDggQyAxNC44NTUgMjEuNTQ3IDE0Ljk0MyAyMS44NzUgMTUuMTc2IDIyLjA4NiBMIDE2LjMzNiAyMy4yNzYgTCAxNS4xNzYgMjQuNDA2IEMgMTQuODY0IDI0LjcxOCAxNC44NjQgMjUuMjIzIDE1LjE3NiAyNS41MzYgWiBNIDIyLjkxMiAyMC4zNDMgQyAyMy4yMjQgMjAuNjU0'@; put 'IDIzLjczIDIwLjY1NCAyNC4wNDIgMjAuMzQzIEwgMjUuMjAyIDE5LjE4MyBMIDI2LjM2MiAyMC4zNDMgQyAyNi43NzUgMjAuNzk5IDI3LjUyOCAyMC42MzcgMjcuNzE2IDIwLjA1IEMgMjcuODEzIDE5Ljc1MSAyNy43MjUgMTkuNDI0IDI3LjQ5MiAxOS4yMTMgTCAyNi4zNDIgMTguMDgzIEwg'@; put 'MjcuNTAyIDE2LjkyMyBDIDI3Ljk1OCAxNi41MDkgMjcuNzk2IDE1Ljc1NyAyNy4yMSAxNS41NjggQyAyNi45MTEgMTUuNDcyIDI2LjU4MyAxNS41NiAyNi4zNzIgMTUuNzkzIEwgMjUuMjEyIDE2Ljk1MyBMIDI0LjA0MiAxNS43NjMgQyAyMy42MjggMTUuMzA2IDIyLjg3NiAxNS40NjkgMjIu'@; put 'Njg4IDE2LjA1NSBDIDIyLjU5MSAxNi4zNTQgMjIuNjc5IDE2LjY4MiAyMi45MTIgMTYuODkzIEwgMjQuMDcyIDE4LjA4MyBMIDIyLjkxMiAxOS4yMTMgQyAyMi42IDE5LjUyNSAyMi42IDIwLjAzIDIyLjkxMiAyMC4zNDMgWiIvPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFk'@; put 'Z2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEw'@; put 'NSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1IEwgMjAuNzg2IDcgTCA0IDcgTCA0IDI5IEwgMzIgMjkgTCAzMiAxNS4zNTcgTCAzNCAxNS4zNTcgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTSA5LjEwMSAxNS44IEMgOS40MTMgMTYuMTExIDkuOTE5IDE2LjExMSAxMC4yMzEgMTUuOCBMIDExLjM5MSAxNC42NCBMIDEyLjU1MSAxNS44IEMgMTIuOTY0IDE2LjI1NiAxMy43MTcgMTYuMDk0IDEz'@; put 'LjkwNSAxNS41MDcgQyAxNC4wMDIgMTUuMjA4IDEzLjkxNCAxNC44ODEgMTMuNjgxIDE0LjY3IEwgMTIuNTMxIDEzLjU0IEwgMTMuNjkxIDEyLjM4IEMgMTQuMTQ3IDExLjk2NiAxMy45ODUgMTEuMjE0IDEzLjM5OSAxMS4wMjUgQyAxMy4xIDEwLjkyOSAxMi43NzIgMTEuMDE3IDEyLjU2MSAx'@; put 'MS4yNSBMIDExLjQwMSAxMi40MSBMIDEwLjIzMSAxMS4yMiBDIDkuODE3IDEwLjc2MyA5LjA2NSAxMC45MjYgOC44NzcgMTEuNTEyIEMgOC43OCAxMS44MTEgOC44NjggMTIuMTM5IDkuMTAxIDEyLjM1IEwgMTAuMjYxIDEzLjU0IEwgOS4xMDEgMTQuNjcgQyA4Ljc4OSAxNC45ODIgOC43ODkg'@; put 'MTUuNDg3IDkuMTAxIDE1LjggWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgZD0iTSAxNS4xNzYgMjUuNTM2IEMgMTUuNDg4IDI1Ljg0NyAxNS45OTQgMjUuODQ3IDE2LjMwNiAyNS41MzYgTCAxNy40NjYg'@; put 'MjQuMzc2IEwgMTguNjI2IDI1LjUzNiBDIDE5LjAzOSAyNS45OTIgMTkuNzkyIDI1LjgzIDE5Ljk4IDI1LjI0MyBDIDIwLjA3NyAyNC45NDQgMTkuOTg5IDI0LjYxNyAxOS43NTYgMjQuNDA2IEwgMTguNjA2IDIzLjI3NiBMIDE5Ljc2NiAyMi4xMTYgQyAyMC4yMjIgMjEuNzAyIDIwLjA2IDIw'@; put 'Ljk1IDE5LjQ3NCAyMC43NjEgQyAxOS4xNzUgMjAuNjY1IDE4Ljg0NyAyMC43NTMgMTguNjM2IDIwLjk4NiBMIDE3LjQ3NiAyMi4xNDYgTCAxNi4zMDYgMjAuOTU2IEMgMTUuODkyIDIwLjQ5OSAxNS4xNCAyMC42NjIgMTQuOTUyIDIxLjI0OCBDIDE0Ljg1NSAyMS41NDcgMTQuOTQzIDIxLjg3'@; put 'NSAxNS4xNzYgMjIuMDg2IEwgMTYuMzM2IDIzLjI3NiBMIDE1LjE3NiAyNC40MDYgQyAxNC44NjQgMjQuNzE4IDE0Ljg2NCAyNS4yMjMgMTUuMTc2IDI1LjUzNiBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVk'@; put 'IiBkPSJNIDIyLjkxMiAyMC4zNDMgQyAyMy4yMjQgMjAuNjU0IDIzLjczIDIwLjY1NCAyNC4wNDIgMjAuMzQzIEwgMjUuMjAyIDE5LjE4MyBMIDI2LjM2MiAyMC4zNDMgQyAyNi43NzUgMjAuNzk5IDI3LjUyOCAyMC42MzcgMjcuNzE2IDIwLjA1IEMgMjcuODEzIDE5Ljc1MSAyNy43MjUgMTku'@; put 'NDI0IDI3LjQ5MiAxOS4yMTMgTCAyNi4zNDIgMTguMDgzIEwgMjcuNTAyIDE2LjkyMyBDIDI3Ljk1OCAxNi41MDkgMjcuNzk2IDE1Ljc1NyAyNy4yMSAxNS41NjggQyAyNi45MTEgMTUuNDcyIDI2LjU4MyAxNS41NiAyNi4zNzIgMTUuNzkzIEwgMjUuMjEyIDE2Ljk1MyBMIDI0LjA0MiAxNS43'@; put 'NjMgQyAyMy42MjggMTUuMzA2IDIyLjg3NiAxNS40NjkgMjIuNjg4IDE2LjA1NSBDIDIyLjU5MSAxNi4zNTQgMjIuNjc5IDE2LjY4MiAyMi45MTIgMTYuODkzIEwgMjQuMDcyIDE4LjA4MyBMIDIyLjkxMiAxOS4yMTMgQyAyMi42IDE5LjUyNSAyMi42IDIwLjAzIDIyLjkxMiAyMC4zNDMgWiIv'@; put 'PlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAy'@; put 'Mi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41'@; put 'NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAz'@; put 'MC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMS45NTggNSBMIDE3LjYyNSAxMi4zOTUgQyAxNi43OTUgMTMuNjAxIDE3LjU5NCAxNS4yNDUgMTkuMDY0IDE1LjM1MSBDIDE5LjEzNCAxNS4zNTcgMTkuMjAxIDE1LjM1OSAxOS4yNyAxNS4zNTcgTCAzNCAxNS4zNTcg'@; put 'WiBNIDkuMTAxIDE1LjggQyA5LjQxMyAxNi4xMTEgOS45MTkgMTYuMTExIDEwLjIzMSAxNS44IEwgMTEuMzkxIDE0LjY0IEwgMTIuNTUxIDE1LjggQyAxMi45NjQgMTYuMjU2IDEzLjcxNyAxNi4wOTQgMTMuOTA1IDE1LjUwNyBDIDE0LjAwMiAxNS4yMDggMTMuOTE0IDE0Ljg4MSAxMy42ODEg'@; put 'MTQuNjcgTCAxMi41MzEgMTMuNTQgTCAxMy42OTEgMTIuMzggQyAxNC4xNDcgMTEuOTY2IDEzLjk4NSAxMS4yMTQgMTMuMzk5IDExLjAyNSBDIDEzLjEgMTAuOTI5IDEyLjc3MiAxMS4wMTcgMTIuNTYxIDExLjI1IEwgMTEuNDAxIDEyLjQxIEwgMTAuMjMxIDExLjIyIEMgOS44MTcgMTAuNzYz'@; put 'IDkuMDY1IDEwLjkyNiA4Ljg3NyAxMS41MTIgQyA4Ljc4IDExLjgxMSA4Ljg2OCAxMi4xMzkgOS4xMDEgMTIuMzUgTCAxMC4yNjEgMTMuNTQgTCA5LjEwMSAxNC42NyBDIDguNzg5IDE0Ljk4MiA4Ljc4OSAxNS40ODcgOS4xMDEgMTUuOCBaIE0gMTUuMTc2IDI1LjUzNiBDIDE1LjQ4OCAyNS44'@; put 'NDcgMTUuOTk0IDI1Ljg0NyAxNi4zMDYgMjUuNTM2IEwgMTcuNDY2IDI0LjM3NiBMIDE4LjYyNiAyNS41MzYgQyAxOS4wMzkgMjUuOTkyIDE5Ljc5MiAyNS44MyAxOS45OCAyNS4yNDMgQyAyMC4wNzcgMjQuOTQ0IDE5Ljk4OSAyNC42MTcgMTkuNzU2IDI0LjQwNiBMIDE4LjYwNiAyMy4yNzYg'@; put 'TCAxOS43NjYgMjIuMTE2IEMgMjAuMjIyIDIxLjcwMiAyMC4wNiAyMC45NSAxOS40NzQgMjAuNzYxIEMgMTkuMTc1IDIwLjY2NSAxOC44NDcgMjAuNzUzIDE4LjYzNiAyMC45ODYgTCAxNy40NzYgMjIuMTQ2IEwgMTYuMzA2IDIwLjk1NiBDIDE1Ljg5MiAyMC40OTkgMTUuMTQgMjAuNjYyIDE0'@; put 'Ljk1MiAyMS4yNDggQyAxNC44NTUgMjEuNTQ3IDE0Ljk0MyAyMS44NzUgMTUuMTc2IDIyLjA4NiBMIDE2LjMzNiAyMy4yNzYgTCAxNS4xNzYgMjQuNDA2IEMgMTQuODY0IDI0LjcxOCAxNC44NjQgMjUuMjIzIDE1LjE3NiAyNS41MzYgWiBNIDIyLjkxMiAyMC4zNDMgQyAyMy4yMjQgMjAuNjU0'@; put 'IDIzLjczIDIwLjY1NCAyNC4wNDIgMjAuMzQzIEwgMjUuMjAyIDE5LjE4MyBMIDI2LjM2MiAyMC4zNDMgQyAyNi43NzUgMjAuNzk5IDI3LjUyOCAyMC42MzcgMjcuNzE2IDIwLjA1IEMgMjcuODEzIDE5Ljc1MSAyNy43MjUgMTkuNDI0IDI3LjQ5MiAxOS4yMTMgTCAyNi4zNDIgMTguMDgzIEwg'@; put 'MjcuNTAyIDE2LjkyMyBDIDI3Ljk1OCAxNi41MDkgMjcuNzk2IDE1Ljc1NyAyNy4yMSAxNS41NjggQyAyNi45MTEgMTUuNDcyIDI2LjU4MyAxNS41NiAyNi4zNzIgMTUuNzkzIEwgMjUuMjEyIDE2Ljk1MyBMIDI0LjA0MiAxNS43NjMgQyAyMy42MjggMTUuMzA2IDIyLjg3NiAxNS40NjkgMjIu'@; put 'Njg4IDE2LjA1NSBDIDIyLjU5MSAxNi4zNTQgMjIuNjc5IDE2LjY4MiAyMi45MTIgMTYuODkzIEwgMjQuMDcyIDE4LjA4MyBMIDIyLjkxMiAxOS4yMTMgQyAyMi42IDE5LjUyNSAyMi42IDIwLjAzIDIyLjkxMiAyMC4zNDMgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0'@; put 'ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0'@; put 'IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiIvPlxu'@; put 'ICA8cmVjdCB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIGZpbGwtb3BhY2l0eT0iMCIvPicpLGIuQ2xyU2hhcGVUaWNrQ2hhcnQ9KDAscC5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNIDMyIDUgTCA0IDUgQyAyLjg5'@; put 'NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA1IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDUgMzQgMjkgTCAzNCA3IEMgMzQgNS44OTUgMzMuMTA1IDUgMzIgNSBaIE0gNCAyOSBMIDQgNyBMIDMyIDcgTCAzMiAyOSBaIi8+XG4gIDxwYXRoIGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNIDYgMjUgTCA4IDI1IEwgOCAyMiBMIDEwIDIyIEwgMTAgMjUgTCAxMyAyNSBMIDEzIDIyIEwgMTUgMjIgTCAxNSAyNSBMIDE4IDI1IEwgMTggMjIgTCAyMCAyMiBMIDIwIDI1IEwgMjMgMjUgTCAyMyAyMiBMIDI1IDIy'@; put 'IEwgMjUgMjUgTCAyNy43MjMgMjUgQyAyOC4wMjMgMjUuMDIgMjguMjkzIDI1LjE4IDI4LjQ2MyAyNS40MyBDIDI4LjkwMyAyNi4wNiAyOC40ODMgMjYuOTMgMjcuNzIzIDI2Ljk5IEwgNiAyNi45OTEgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0x'@; put 'IiBkPSJNIDM0IDcgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTYgMzQgNyBaIE0gNiAyNi45OTEgTCAyNy43MjMgMjYu'@; put 'OTkgQyAyOC40ODMgMjYuOTMgMjguOTAzIDI2LjA2IDI4LjQ2MyAyNS40MyBDIDI4LjI5MyAyNS4xOCAyOC4wMjMgMjUuMDIgMjcuNzIzIDI1IEwgMjUgMjUgTCAyNSAyMiBMIDIzIDIyIEwgMjMgMjUgTCAyMCAyNSBMIDIwIDIyIEwgMTggMjIgTCAxOCAyNSBMIDE1IDI1IEwgMTUgMjIgTCAx'@; put 'MyAyMiBMIDEzIDI1IEwgMTAgMjUgTCAxMCAyMiBMIDggMjIgTCA4IDI1IEwgNiAyNSBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3'@; put 'IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAz'@; put 'NCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAzMiAxMy4yMiBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTSA2IDI1IEwgOCAyNSBMIDggMjIgTCAxMCAyMiBMIDEwIDI1'@; put 'IEwgMTMgMjUgTCAxMyAyMiBMIDE1IDIyIEwgMTUgMjUgTCAxOCAyNSBMIDE4IDIyIEwgMjAgMjIgTCAyMCAyNSBMIDIzIDI1IEwgMjMgMjIgTCAyNSAyMiBMIDI1IDI1IEwgMjcuNzIzIDI1IEMgMjguMDIzIDI1LjAyIDI4LjI5MyAyNS4xOCAyOC40NjMgMjUuNDMgQyAyOC45MDMgMjYuMDYg'@; put 'MjguNDgzIDI2LjkzIDI3LjcyMyAyNi45OSBMIDYgMjYuOTkxIFoiLz5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgPHBhdGggY2xhc3M9ImNs'@; put 'ci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzQgMTIuMzQgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMi41NyA1'@; put 'IEMgMjEuOTY5IDkuMjMzIDI1LjA1IDEzLjEgMjkuMzEgMTMuNDYgTCAzMC4zMiAxMy40OCBDIDMxLjYyNiAxMy40MjkgMzIuODk1IDEzLjAzNiAzNCAxMi4zNCBaIE0gNiAyNi45OTEgTCAyNy43MjMgMjYuOTkgQyAyOC40ODMgMjYuOTMgMjguOTAzIDI2LjA2IDI4LjQ2MyAyNS40MyBDIDI4'@; put 'LjI5MyAyNS4xOCAyOC4wMjMgMjUuMDIgMjcuNzIzIDI1IEwgMjUgMjUgTCAyNSAyMiBMIDIzIDIyIEwgMjMgMjUgTCAyMCAyNSBMIDIwIDIyIEwgMTggMjIgTCAxOCAyNSBMIDE1IDI1IEwgMTUgMjIgTCAxMyAyMiBMIDEzIDI1IEwgMTAgMjUgTCAxMCAyMiBMIDggMjIgTCA4IDI1IEwgNiAy'@; put 'NSBaIi8+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1LjM1'@; put 'NyBMIDM0IDE1LjM1NyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNIDYgMjUgTCA4IDI1IEwgOCAyMiBMIDEwIDIyIEwgMTAgMjUgTCAxMyAyNSBMIDEzIDIyIEwgMTUgMjIgTCAxNSAyNSBMIDE4'@; put 'IDI1IEwgMTggMjIgTCAyMCAyMiBMIDIwIDI1IEwgMjMgMjUgTCAyMyAyMiBMIDI1IDIyIEwgMjUgMjUgTCAyNy43MjMgMjUgQyAyOC4wMjMgMjUuMDIgMjguMjkzIDI1LjE4IDI4LjQ2MyAyNS40MyBDIDI4LjkwMyAyNi4wNiAyOC40ODMgMjYuOTMgMjcuNzIzIDI2Ljk5IEwgNiAyNi45OTEg'@; put 'WiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEg'@; put 'QyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAy'@; put 'OC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEg'@; put 'MiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMS45NTggNSBMIDE3LjYyNSAxMi4zOTUgQyAxNi43OTUgMTMuNjAxIDE3LjU5NCAxNS4yNDUgMTkuMDY0IDE1LjM1MSBDIDE5LjEzNCAxNS4zNTcgMTkuMjAxIDE1LjM1OSAxOS4yNyAxNS4zNTcgTCAzNCAxNS4z'@; put 'NTcgWiBNIDYgMjYuOTkxIEwgMjcuNzIzIDI2Ljk5IEMgMjguNDgzIDI2LjkzIDI4LjkwMyAyNi4wNiAyOC40NjMgMjUuNDMgQyAyOC4yOTMgMjUuMTggMjguMDIzIDI1LjAyIDI3LjcyMyAyNSBMIDI1IDI1IEwgMjUgMjIgTCAyMyAyMiBMIDIzIDI1IEwgMjAgMjUgTCAyMCAyMiBMIDE4IDIy'@; put 'IEwgMTggMjUgTCAxNSAyNSBMIDE1IDIyIEwgMTMgMjIgTCAxMyAyNSBMIDEwIDI1IEwgMTAgMjIgTCA4IDIyIEwgOCAyNSBMIDYgMjUgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJN'@; put 'IDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAz'@; put 'NC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiIvPicpLGIuQ2xyU2hhcGVCZWxsQ3VydmU9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0i'@; put 'TTMzLDI5SDNBMSwxLDAsMSwxLDMsMjdIMzNBMSwxLDAsMSwxLDMzLDI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMzLDI1aC0uNjJhOC4xMSw4LjExLDAsMCwxLTgtNi42N0MyMy42MiwxNC40NCwyMS44OSw3Ljk0LDE4LDcuOTRz'@; put 'LTUuNjksNi41MS02LjM4LDEwLjM5YTguMTEsOC4xMSwwLDAsMS04LDYuNjVIM2ExLDEsMCwxLDEsMC0yaC42QTYuMTEsNi4xMSwwLDAsMCw5LjYsMThjMS40MS03Ljg4LDQuMy0xMiw4LjM1LTEyczYuOTMsNC4xNiw4LjMzLDEyYTYuMTEsNi4xMSwwLDAsMCw2LDVIMzNhMSwxLDAsMCwxLDAs'@; put 'MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLGIuQ2hhcnRTaGFwZXM9eyJheGlzLWNoYXJ0IjpiLkNsclNoYXBlQXhpc0NoYXJ0LCJiYXItY2hhcnQiOmIuQ2xyU2hhcGVCYXJDaGFydCwiYnViYmxlLWNoYXJ0IjpiLkNsclNoYXBlQnViYmxlQ2hh'@; put 'cnQsImNsb3VkLWNoYXJ0IjpiLkNsclNoYXBlQ2xvdWRDaGFydCwiY3VydmUtY2hhcnQiOmIuQ2xyU2hhcGVDdXJ2ZUNoYXJ0LCJncmlkLWNoYXJ0IjpiLkNsclNoYXBlR3JpZENoYXJ0LCJsaW5lLWNoYXJ0IjpiLkNsclNoYXBlTGluZUNoYXJ0LCJwaWUtY2hhcnQiOmIuQ2xyU2hhcGVQaWVD'@; put 'aGFydCwidGljay1jaGFydCI6Yi5DbHJTaGFwZVRpY2tDaGFydCwic2NhdHRlci1wbG90IjpiLkNsclNoYXBlU2NhdHRlclBsb3QsImJveC1wbG90IjpiLkNsclNoYXBlQm94UGxvdCwiaGVhdC1tYXAiOmIuQ2xyU2hhcGVIZWF0TWFwLCJiZWxsLWN1cnZlIjpiLkNsclNoYXBlQmVsbEN1cnZl'@; put 'fSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5DaGFydFNoYXBlcywiYW5hbHl0aWNzIiwoMCxfLmRlc2NyaXB0b3JDb25maWcpKGIuQ2hhcnRTaGFwZXNbImxpbmUtY2hhcnQiXSkpLHR5cGVvZiB3aW5kb3c8InUiJiZ3aW5kb3cuaGFzT3duUHJvcGVydHkoIkNsYXJpdHlJY29ucyIpJiZ3aW5k'@; put 'b3cuQ2xhcml0eUljb25zLmFkZChiLkNoYXJ0U2hhcGVzKX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9jb21tZXJjZS1zaGFwZXMudHMiOgovKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlwKICAgICAgICAgICAgICAgICAg'@; put 'ISoqKiAuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29tbWVyY2Utc2hhcGVzLnRzICoqKiEKICAgICAgICAgICAgICAgICAgXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyohIG5vIHN0YXRpYyBleHBvcnRzIGZvdW5kICovZnVu'@; put 'Y3Rpb24oSixiLEQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoYiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksYi5Db21tZXJjZVNoYXBlcz1iLkNsclNoYXBlRmFjdG9yeT1iLkNsclNoYXBlRW1wbG95ZWU9Yi5DbHJTaGFwZUVtcGxveWVlR3JvdXA9Yi5DbHJTaGFwZVJ1'@; put 'YmxlPWIuQ2xyU2hhcGVQZXNvPWIuQ2xyU2hhcGVDb2luQmFnPWIuQ2xyU2hhcGVCaXRjb2luPWIuQ2xyU2hhcGVZZW49Yi5DbHJTaGFwZVdvbj1iLkNsclNoYXBlUnVwZWU9Yi5DbHJTaGFwZVBvdW5kPWIuQ2xyU2hhcGVFQ2hlY2s9Yi5DbHJTaGFwZURvbGxhckJpbGw9Yi5DbHJTaGFwZUJh'@; put 'bms9Yi5DbHJTaGFwZUNyZWRpdENhcmQ9Yi5DbHJTaGFwZURvbGxhcj1iLkNsclNoYXBlRXVybz1iLkNsclNoYXBlU3RvcmU9Yi5DbHJTaGFwZVdhbGxldD1iLkNsclNoYXBlU2hvcHBpbmdDYXJ0PWIuQ2xyU2hhcGVQaWdneUJhbms9Yi5DbHJTaGFwZVNob3BwaW5nQmFnPWIuQ2xyU2hhcGVD'@; put 'YWxjdWxhdG9yPXZvaWQgMDt2YXIgXz1EKAovKiEgLi4vdXRpbHMvZGVzY3JpcHRvci1jb25maWcgKi8KIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnLnRzIikscD1EKAovKiEgLi4vdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IgKi8KIi4vcHJvamVjdHMvaWNv'@; put 'bnMvc3JjL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yLnRzIik7Yi5DbHJTaGFwZUNhbGN1bGF0b3I9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yOCwySDhBMiwyLDAsMCwwLDYsNFYzMmEyLDIsMCwwLDAsMiwy'@; put 'SDI4YTIsMiwwLDAsMCwyLTJWNEEyLDIsMCwwLDAsMjgsMlpNOCwzMlY0SDI4VjMyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xMiw4SDI1LjY3VjZIMTFhMSwxLDAsMCwwLTEsMXY0LjY3aDJaIi8+XG4gICAg'@; put 'ICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgcG9pbnRzPSIxMiAxNiAxMCAxNiAxMCAxOCAxNCAxOCAxNCAxNCAxMiAxNCAxMiAxNiIvPlxuICAgICAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTQiIHBvaW50cz0iMjQgMTYgMjIgMTYgMjIgMTggMjYgMTggMjYgMTQgMjQgMTQgMjQgMTYiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiBwb2ludHM9IjE4IDE2IDE2IDE2IDE2IDE4IDIwIDE4IDIw'@; put 'IDE0IDE4IDE0IDE4IDE2Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgcG9pbnRzPSIxMiAyMiAxMCAyMiAxMCAyNCAxNCAyNCAxNCAyMCAxMiAyMCAxMiAyMiIvPlxuICAgICAgICAgICAgPHBvbHlnb24gY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHBvaW50cz0iMjQgMjIgMjIgMjIgMjIgMjQgMjYgMjQgMjYgMjAgMjQgMjAgMjQgMjIiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiBwb2ludHM9IjE4'@; put 'IDIyIDE2IDIyIDE2IDI0IDIwIDI0IDIwIDIwIDE4IDIwIDE4IDIyIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgcG9pbnRzPSIxMiAyOCAxMCAyOCAxMCAzMCAxNCAzMCAxNCAyNiAxMiAyNiAxMiAyOCIvPlxuICAg'@; put 'ICAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIiBwb2ludHM9IjI0IDI4IDIyIDI4IDIyIDMwIDI2IDMwIDI2IDI2IDI0IDI2IDI0IDI4Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtMTEiIHBvaW50cz0iMTggMjggMTYgMjggMTYgMzAgMjAgMzAgMjAgMjYgMTggMjYgMTggMjgiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yOCwySDhBMiwyLDAsMCwwLDYsNFYzMmEyLDIsMCwwLDAs'@; put 'MiwySDI4YTIsMiwwLDAsMCwyLTJWNEEyLDIsMCwwLDAsMjgsMlpNMTIsMjhIMTBWMjZoMlptMC02SDEwVjIwaDJabTAtNkgxMFYxNGgyWm03LDEySDE3VjI2aDJabTAtNkgxN1YyMGgyWm0wLTZIMTdWMTRoMlptNywxMkgyNFYyNmgyWm0wLTZIMjRWMjBoMlptMC02SDI0VjE0aDJabTAtN0gx'@; put 'MFY1SDI2WiIvPicpLGIuQ2xyU2hhcGVTaG9wcGluZ0JhZz0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI1LDEyVjkuMDVhNyw3LDAsMSwwLTE0LDB2N2ExLDEsMCwwLDAsMiwwVjE0aDhWMTJIMTNWOS4wNWE1'@; put 'LDUsMCwxLDEsMTAsMFYxNmExLDEsMCwxLDAsMiwwVjE0aDVWMzJINlYxNEg5VjEySDRWMzIuMDlBMS45MSwxLjkxLDAsMCwwLDUuOTEsMzRIMzAuMDlBMS45MSwxLjkxLDAsMCwwLDMyLDMyLjA5VjEyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv'@; put 'bGlkLXBhdGgtMSIgZD0iTTEzLDkuMjJhNSw1LDAsMSwxLDEwLDBWMTJoMlY5LjIyYTcsNywwLDEsMC0xNCwwVjEyaDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjUsMTJ2My4xYTEsMSwwLDEsMS0yLDBWMTJIMTN2'@; put 'My4xYTEsMSwwLDAsMS0yLDBWMTJINFYzMmEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTJaIi8+JyksYi5DbHJTaGFwZVBpZ2d5QmFuaz0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE5LjcyLDEw'@; put 'LjQ3YTExLjY1LDExLjY1LDAsMCwwLTYuMzEuNTJBLjguOCwwLDEsMCwxNCwxMi40OCwxMC4xMSwxMC4xMSwwLDAsMSwxOS40NCwxMmEuOC44LDAsMSwwLC4yOC0xLjU3WiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIg'@; put 'Y3g9IjI1LjM4IiBjeT0iMTYuNzEiIHI9IjEuMzYiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMzUuNTEsMTguNjNhMSwxLDAsMCwwLS44NC0uNDQsMy40MiwzLjQyLDAsMCwxLTIuMDktMS4xMiwxNy4zNSwxNy4z'@; put 'NSwwLDAsMS0yLjYzLTMuNzhsMi44OC00LjVBMS44OSwxLjg5LDAsMCwwLDMzLDdhMS43NywxLjc3LDAsMCwwLTEuMzMtMSwxMC4xMiwxMC4xMiwwLDAsMC01LjM5Ljc1LDEyLjcyLDEyLjcyLDAsMCwwLTIuNzIsMS42MywxNi45NCwxNi45NCwwLDAsMC01LjE2LTEuMzlDMTEuMzEsNi4zLDQu'@; put 'ODMsMTAuOSw0LDE3SDRhMi41NiwyLjU2LDAsMCwxLTEuMzgtMS41MywxLjgxLDEuODEsMCwwLDEsLjE0LTEuNCwxLjE5LDEuMTksMCwwLDEsLjQzLS40MywxLjA4LDEuMDgsMCwwLDAtMS4xMi0xLjg1QTMuMzEsMy4zMSwwLDAsMCwuOTEsMTNhNCw0LDAsMCwwLS4zMywzLjA4QTQuNzYsNC43'@; put 'NiwwLDAsMCwzLDE4Ljk1bC45Mi40NmExNy41OCwxNy41OCwwLDAsMCwxLjgyLDdsLjE3LjM4QTIzLDIzLDAsMCwwLDkuMiwzMS44OGExLDEsMCwwLDAsLjc1LjM0aDQuNTJhMSwxLDAsMCwwLC45Mi0xLjM4TDE1LDI5Ljk0bDEuMTguMTNhMjAuMzMsMjAuMzMsMCwwLDAsNCwwYy4zNy42Ljc3'@; put 'LDEuMiwxLjIxLDEuNzlhMSwxLDAsMCwwLC44LjQxaDQuMzRhMSwxLDAsMCwwLC45Mi0xLjM5Yy0uMTctLjQtLjM0LS44My0uNDctMS4yLS4xOC0uNTMtLjMyLTEtLjQzLTEuNDVBMTMuMTgsMTMuMTgsMCwwLDAsMjkuNTYsMjZhMTIuNSwxMi41LDAsMCwwLDMsMCwxLDEsMCwwLDAsLjc4LS42'@; put 'MmwyLjI2LTUuODFBMSwxLDAsMCwwLDM1LjUxLDE4LjYzWm0tMy43OCw1LjQ0YTExLjM3LDExLjM3LDAsMCwxLTIuMzUtLjExaDBhOC4yLDguMiwwLDAsMS0yLjUzLS44NywxLDEsMCwwLDAtLjkzLDEuNzcsMTEuNzIsMTEuNzIsMCwwLDAsMS4yOS41OCw4LDgsMCwwLDEtMS44LDEuMTZsLTEu'@; put 'MDYuNDhzLjQ5LDIuMTkuODIsMy4xNkgyMi43OWMtLjI0LS4zNC0xLjQ1LTIuMzYtMS40NS0yLjM2bC0uNjcuMDlhMTguNTMsMTguNTMsMCwwLDEtNC4yNS4xMmMtLjY2LS4wNi0xLjc2LS4yLTIuNjItLjM1bC0xLjU1LS4yN3MuNjMsMi40My43NSwyLjc0djBIMTAuNDJBMjAuNTcsMjAuNTcs'@; put 'MCwwLDEsNy43NiwyNmwtLjE4LS4zOUExNC42MiwxNC42MiwwLDAsMSw2LDE3LjQ4Yy41NC01LjE5LDYuMTItOS4xMSwxMi4xOS04LjU0YTE1LjQ3LDE1LjQ3LDAsMCwxLDUuMDgsMS40OGwuNjIuMjkuNS0uNDdBMTAuMjksMTAuMjksMCwwLDEsMjcsOC41NGE4LjI1LDguMjUsMCwwLDEsNC0u'@; put 'NjVsLTMuMzgsNS4yOS4yNS41aDBhMjEuMTYsMjEuMTYsMCwwLDAsMy4zMSw0Ljg0LDYuNDksNi40OSwwLDAsMCwyLjE0LDEuMzlaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzUsMTguODdBNS44Myw1LjgzLDAsMCwx'@; put 'LDMzLDE3LjYxYTIxLjYzLDIxLjYzLDAsMCwxLTMuMjktNC44NGwzLjM5LTUuMjlhLjkuOSwwLDAsMC0uNTQtMS4zOCw5LjY3LDkuNjcsMCwwLDAtNS4xMy43MiwxMiwxMiwwLDAsMC0zLjEzLDJBMTcuMzcsMTcuMzcsMCwwLDAsMTguNiw3LjE1QzExLjgsNi41Miw1LjI3LDEwLjksNC41NCwx'@; put 'N2wtLjE0LS4wN0EyLjc2LDIuNzYsMCwwLDEsMi45LDE1LjI5YTIsMiwwLDAsMSwuMTUtMS41NSwxLjMyLDEuMzIsMCwwLDEsLjQ3LS40OCwxLjA4LDEuMDgsMCwxLDAtMS4xMi0xLjg1LDMuNDUsMy40NSwwLDAsMC0xLjIzLDEuMjVBNC4xNiw0LjE2LDAsMCwwLC44NCwxNS45YTUsNSwwLDAs'@; put 'MCwyLjU3LDNsMSwuNTRhMTguNjIsMTguNjIsMCwwLDAsMiw3LjMsMjMsMjMsMCwwLDAsMyw0Ljc5LDEsMSwwLDAsMCwuOC4zOGgzLjYxYS41Mi41MiwwLDAsMCwuNC0uNzVMMTQsMzAuMzhhMTEsMTEsMCwwLDEtLjMzLTEuMThjLjkxLjE2LDIuMDguMzEsMi44Ny4zOGEyMC4wNywyMC4wNyww'@; put 'LDAsMCwzLjEyLDBjLjM5LjcuNzksMS4zMywxLjE1LDEuODVhLjkzLjkzLDAsMCwwLC43Ny40MWgzLjExYS42NS42NSwwLDAsMCwuNjEtLjg1Yy0uMjMtLjc0LS41My0xLjc1LS43MS0yLjM3YTE1LjksMTUuOSwwLDAsMCwzLjc1LTEuNzZjLjE2LS4xMS4zMi0uMjYuNDgtLjM5YTEzLjc3LDEz'@; put 'Ljc3LDAsMCwxLTIuNDItMSwuOC44LDAsMCwxLC43NC0xLjQyLDExLjY0LDExLjY0LDAsMCwwLDMuMTgsMS4xLDEzLjMxLDEzLjMxLDAsMCwwLDIuNjguMTIsMSwxLDAsMCwwLC45LS42NmwxLjczLTQuNDRBMSwxLDAsMCwwLDM1LDE4Ljg3Wk0xMy43OSwxMS41OWEuODYuODYsMCwwLDEtLjMu'@; put 'MDUuODUuODUsMCwwLDEtLjMtMS42NCwxMi40MSwxMi40MSwwLDAsMSw2LjY5LS41NS44NS44NSwwLDEsMS0uMywxLjY3QTEwLjc1LDEwLjc1LDAsMCwwLDEzLjc5LDExLjU5Wm0xMi41Miw2LjEyYTEuNDQsMS40NCwwLDEsMSwxLjQ0LTEuNDRBMS40NCwxLjQ0LDAsMCwxLDI2LjMyLDE3Ljcy'@; put 'WiIvPicpLGIuQ2xyU2hhcGVTaG9wcGluZ0NhcnQ9KDAscC5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjeD0iMTMuMzMiIGN5PSIyOS43NSIgcj0iMi4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNyIgY3k9'@; put 'IjI5Ljc1IiByPSIyLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4wOCw1LjM3QTEsMSwwLDAsMCwzMi4zMSw1SDExLjQ5bC42NSwySDMxTDI4LjMzLDE5aC0xNUw4Ljc2LDQuNTNhMSwxLDAsMCwwLS42'@; put 'Ni0uNjVMNCwyLjYyYTEsMSwwLDEsMC0uNTksMS45Mkw3LDUuNjRsNC41OSwxNC41TDkuOTUsMjEuNDhsLS4xMy4xM0EyLjY2LDIuNjYsMCwwLDAsOS43NCwyNSwyLjc1LDIuNzUsMCwwLDAsMTIsMjZIMjguNjlhMSwxLDAsMCwwLDAtMkgxMS44NGEuNjcuNjcsMCwwLDEtLjU2LTFsMi40MS0y'@; put 'SDI5LjEzYTEsMSwwLDAsMCwxLS43OGwzLjE3LTE0QTEsMSwwLDAsMCwzMy4wOCw1LjM3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMy4zMyIgY3k9IjI5Ljc1IiByPSIyLjI1IiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI3IiBjeT0iMjkuNzUiIHI9IjIuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiAvPlxu'@; put 'ICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIyMC43MSA3IDIxLjg3IDUgMTEuNDkgNSAxMi4xNCA3IDIwLjcxIDciIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LjE1LDE1'@; put 'LjQsMjguMzMsMTloLTE1TDguNzYsNC41M2ExLDEsMCwwLDAtLjY2LS42NUw0LDIuNjJhMSwxLDAsMSwwLS41OSwxLjkyTDcsNS42NGw0LjU5LDE0LjVMOS45NSwyMS40OGwtLjEzLjEzQTIuNjYsMi42NiwwLDAsMCw5Ljc0LDI1LDIuNzUsMi43NSwwLDAsMCwxMiwyNkgyOC42OWExLDEsMCww'@; put 'LDAsMC0ySDExLjg0YS42Ny42NywwLDAsMS0uNTYtMWwyLjQxLTJIMjkuMTNhMSwxLDAsMCwwLDEtLjc4bDEuMDktNC44MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1'@; put 'LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1h'@; put 'bGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTMuMzMiIGN5PSIyOS43NSIgcj0iMi4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjci'@; put 'IGN5PSIyOS43NSIgcj0iMi4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjU3LDdhNy41Miw3LjUyLDAsMCwxLS4wNy0xLDcuNTIsNy41MiwwLDAsMSwuMDctMUgxMS40OWwu'@; put 'NjUsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41bC0uNDIsMEwyOC4zMywxOWgtMTVMOC43Niw0LjUzYTEsMSwwLDAsMC0uNjYtLjY1TDQsMi42MmExLDEsMCwxLDAt'@; put 'LjU5LDEuOTJMNyw1LjY0bDQuNTksMTQuNUw5Ljk1LDIxLjQ4bC0uMTMuMTNBMi42NiwyLjY2LDAsMCwwLDkuNzQsMjUsMi43NSwyLjc1LDAsMCwwLDEyLDI2SDI4LjY5YTEsMSwwLDAsMCwwLTJIMTEuODRhLjY3LjY3LDAsMCwxLS41Ni0xbDIuNDEtMkgyOS4xM2ExLDEsMCwwLDAsMS0uNzhs'@; put 'MS41Ny02LjkxQTcuNTEsNy41MSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJh'@; put 'ZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTMuNSIgY3k9IjI5LjUiIHI9IjIuNSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9'@; put 'IjI2LjUiIGN5PSIyOS41IiByPSIyLjUiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMSw2LjM5QTEsMSwwLDAsMCwzMi4zMSw2SDkuMjFMOC43Niw0LjU3YTEsMSwwLDAsMC0uNjYtLjY1TDQsMi42NmExLDEsMCwx'@; put 'LDAtLjU5LDEuOTJMNyw1LjY4bDQuNTgsMTQuNDdMOS45NSwyMS40OWwtLjEzLjEzQTIuNjYsMi42NiwwLDAsMCw5Ljc0LDI1LDIuNzUsMi43NSwwLDAsMCwxMiwyNkgyOC42OWExLDEsMCwwLDAsMC0ySDExLjg0YS42Ny42NywwLDAsMS0uNTYtMWwyLjQxLTJIMjkuMTJhMSwxLDAsMCwwLDEt'@; put 'Ljc2bDMuMi0xM0ExLDEsMCwwLDAsMzMuMSw2LjM5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEzLjUiIGN5PSIyOS41IiByPSIyLjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1w'@; put 'YXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNi41IiBjeT0iMjkuNSIgcj0iMi41IiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjIzLDE1LjRBMy42'@; put 'OCwzLjY4LDAsMCwxLDE5LDkuODlMMjEuMjksNkg5LjIxTDguNzYsNC41N2ExLDEsMCwwLDAtLjY2LS42NUw0LDIuNjZhMSwxLDAsMSwwLS41OSwxLjkyTDcsNS42OGw0LjU4LDE0LjQ3TDkuOTUsMjEuNDlsLS4xMy4xM0EyLjY2LDIuNjYsMCwwLDAsOS43NCwyNSwyLjc1LDIuNzUsMCwwLDAs'@; put 'MTIsMjZIMjguNjlhMSwxLDAsMCwwLDAtMkgxMS44NGEuNjcuNjcsMCwwLDEtLjU2LTFsMi40MS0ySDI5LjEyYTEsMSwwLDAsMCwxLS43NmwxLjE5LTQuODRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAg'@; put 'PHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xp'@; put 'ZC1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMy41IiBjeT0iMjkuNSIgcj0iMi41IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9'@; put 'IjI2LjUiIGN5PSIyOS41IiByPSIyLjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVBNy41LDcuNSwwLDAsMSwyMi41LDZIOS4yMUw4Ljc2LDQuNTdhMSwxLDAsMCwwLS42Ni0u'@; put 'NjVMNCwyLjY2YTEsMSwwLDEsMC0uNTksMS45Mkw3LDUuNjhsNC41OCwxNC40N0w5Ljk1LDIxLjQ5bC0uMTMuMTNBMi42NiwyLjY2LDAsMCwwLDkuNzQsMjUsMi43NSwyLjc1LDAsMCwwLDEyLDI2SDI4LjY5YTEsMSwwLDAsMCwwLTJIMTEuODRhLjY3LjY3LDAsMCwxLS41Ni0xbDIuNDEtMkgy'@; put 'OS4xMmExLDEsMCwwLDAsMS0uNzZsMS43MS03QTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xy'@; put 'LWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxiLkNsclNoYXBlV2FsbGV0PSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIsMTVIMzFWOWExLDEs'@; put 'MCwwLDAtMS0xSDZhMSwxLDAsMCwxLTEtLjgyVjYuODJBMSwxLDAsMCwxLDYsNkgyOS41OGExLDEsMCwwLDAsMC0ySDZBMywzLDAsMCwwLDMsN2EzLjA4LDMuMDgsMCwwLDAsMCwuMzZWMjcuOTNBNC4xLDQuMSwwLDAsMCw3LjEzLDMySDMwYTEsMSwwLDAsMCwxLTFWMjVoMWExLDEsMCwwLDAs'@; put 'MS0xVjE2QTEsMSwwLDAsMCwzMiwxNVpNMjksMzBINy4xM0EyLjExLDIuMTEsMCwwLDEsNSwyNy45M1Y5Ljg4QTMuMTEsMy4xMSwwLDAsMCw2LDEwSDI5djVIMjJhNSw1LDAsMCwwLDAsMTBoN1ptMi03SDIyYTMsMywwLDAsMSwwLTZIMzFaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBjeD0iMjMuMDEiIGN5PSIyMCIgcj0iMS41Ii8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuOTQsMTRIMzFWOWExLDEsMCwwLDAtMS0xSDZBMSwxLDAs'@; put 'MCwxLDUsN0g1VjdBMSwxLDAsMCwxLDYsNkgyOS42YTEsMSwwLDEsMCwwLTJINkEyLjk0LDIuOTQsMCwwLDAsMyw2Ljg4djIxQTQuMTMsNC4xMywwLDAsMCw3LjE1LDMySDMwYTEsMSwwLDAsMCwxLTFWMjZoMS45NGEuOTMuOTMsMCwwLDAsMS0uOTF2LTEwQTEuMDgsMS4wOCwwLDAsMCwzMi45'@; put 'NCwxNFpNMzIsMjRsLTguNTgsMGEzLjg3LDMuODcsMCwwLDEtMy43My00LDMuODcsMy44NywwLDAsMSwzLjczLTRMMzIsMTZaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGN4PSIyNC4wNCIgY3k9IjE5LjkyIiByPSIxLjUi'@; put 'Lz4nKSxiLkNsclNoYXBlU3RvcmU9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yOCwzMEgxNlYyMkgxNHY4SDhWMjJINnY4YTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlYyMkgyOFoiLz5cbiAgICAg'@; put 'ICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzMuNzksMTMuMjcsMjkuNzEsNS4xMUEyLDIsMCwwLDAsMjcuOTIsNEg4LjA4QTIsMiwwLDAsMCw2LjI5LDUuMTFMMi4yMSwxMy4yN2EyLDIsMCwwLDAtLjIxLjl2My4wOGEyLDIsMCww'@; put 'LDAsLjQ2LDEuMjhBNC42Nyw0LjY3LDAsMCwwLDYsMjAuMTNhNC43Miw0LjcyLDAsMCwwLDMtMS4wNyw0LjczLDQuNzMsMCwwLDAsNiwwLDQuNzMsNC43MywwLDAsMCw2LDAsNC43Myw0LjczLDAsMCwwLDYsMCw0LjcyLDQuNzIsMCwwLDAsNi41My0uNTJBMiwyLDAsMCwwLDM0LDE3LjI2VjE0'@; put 'LjE3QTIsMiwwLDAsMCwzMy43OSwxMy4yN1pNMzAsMTguMTNBMi42OCwyLjY4LDAsMCwxLDI3LjgyLDE3TDI3LDE1Ljg4LDI2LjE5LDE3YTIuNzEsMi43MSwwLDAsMS00LjM3LDBMMjEsMTUuODgsMjAuMTksMTdhMi43MSwyLjcxLDAsMCwxLTQuMzcsMEwxNSwxNS44OCwxNC4xOSwxN2EyLjcx'@; put 'LDIuNzEsMCwwLDEtNC4zNywwTDksMTUuODgsOC4xOCwxN0EyLjY4LDIuNjgsMCwwLDEsNiwxOC4xM2EyLjY0LDIuNjQsMCwwLDEtMi0uODhWMTQuMTdMOC4wOCw2SDI3LjkyTDMyLDE0LjE2di42N2wwLDIuMzlBMi42NywyLjY3LDAsMCwxLDMwLDE4LjEzWiIvPlxuICAgICAgICAgICAgPHBh'@; put 'dGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI4LDMwSDE2VjIySDE0djhIOFYyMkg2djhhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjIySDI4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBh'@; put 'dGgtMiIgZD0iTTMzLjc5LDEzLjI3LDI5LjcxLDUuMTFBMiwyLDAsMCwwLDI3LjkyLDRIOC4wOEEyLDIsMCwwLDAsNi4yOSw1LjExTDIuMjEsMTMuMjdhMiwyLDAsMCwwLS4yMS45djMuMDhhMiwyLDAsMCwwLC40NiwxLjI4QTQuNjcsNC42NywwLDAsMCw2LDIwLjEzYTQuNzIsNC43MiwwLDAs'@; put 'MCwzLTEuMDcsNC43Myw0LjczLDAsMCwwLDYsMCw0LjczLDQuNzMsMCwwLDAsNiwwLDQuNzMsNC43MywwLDAsMCw2LDAsNC43Miw0LjcyLDAsMCwwLDYuNTMtLjUyQTIsMiwwLDAsMCwzNCwxNy4yNlYxNC4xN0EyLDIsMCwwLDAsMzMuNzksMTMuMjdaTTE1LDE0LjR2MS41MkwxNC4xOCwxN2Ey'@; put 'LjcxLDIuNzEsMCwwLDEtNC4zNywwTDksMTUuODhWMTQuNEwxMS41OSw2SDE2Wm0xMiwxLjQ4TDI2LjE5LDE3YTIuNzEsMi43MSwwLDAsMS00LjM3LDBMMjEsMTUuODhsMCwwVjE0LjRMMjAsNmg0LjQ1TDI3LDE0LjRaIi8+JyksYi5DbHJTaGFwZUV1cm89KDAscC5jbHJJY29uU1ZHKSgnPHBh'@; put 'dGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMS40OCwyOC40OWExLDEsMCwwLDAtMS4zOC0uMzJBMTIsMTIsMCwwLDEsMTIuNDUsMjJIMjQuMTZhMSwxLDAsMCwwLDAtMkgxMS45M2ExMS4xNiwxMS4xNiwwLDAsMSwwLTRIMjQuMTZhMSwxLDAsMCww'@; put 'LDAtMkgxMi40NUExMiwxMiwwLDAsMSwzMC4wNiw3LjhhMSwxLDAsMCwwLDEuMDYtMS43QTE0LDE0LDAsMCwwLDEwLjM0LDE0SDMuNTRhMSwxLDAsMSwwLDAsMkg5LjkxYTE0LDE0LDAsMCwwLS4xNiwyLDE0LDE0LDAsMCwwLC4xNiwySDMuNTRhMSwxLDAsMSwwLDAsMmg2LjhhMTQsMTQsMCww'@; put 'LDAsMjAuODMsNy44N0ExLDEsMCwwLDAsMzEuNDgsMjguNDlaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm03LjQyLDI1LjE2QTEwLjg4LDEwLjg4'@; put 'LDAsMCwxLDkuMjMsMjFINS44NGExLDEsMCwwLDEsMC0yaDNjMC0uMzUtLjA1LS43MS0uMDUtMS4wN3MwLS42MywwLS45M2gtM2ExLDEsMCwwLDEsMC0ySDkuMTlBMTAuODYsMTAuODYsMCwwLDEsMjUuMzgsOC42OWExLjI1LDEuMjUsMCwwLDEtMS4zMiwyLjEyQTguMzYsOC4zNiwwLDAsMCwx'@; put 'MS44MiwxNWg5LjM2YTEsMSwwLDAsMSwwLDJIMTEuMzNhNy43Miw3LjcyLDAsMCwwLDAsMmg5LjgyYTEsMSwwLDAsMSwwLDJIMTEuODdhOC4zNiw4LjM2LDAsMCwwLDEyLjIyLDQsMS4yNSwxLjI1LDAsMSwxLDEuMzMsMi4xMloiLz4nKSxiLkNsclNoYXBlRG9sbGFyPSgwLHAuY2xySWNvblNW'@; put 'RykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjYsMjEuMTVhNi45MSw2LjkxLDAsMCwwLTQuMzgtMy4zMkEyNiwyNiwwLDAsMCwxOSwxNy4xOVY4LjEyQTEwLjA1LDEwLjA1LDAsMCwxLDIzLjg2LDEwYTEsMSwwLDAsMCwxLjMzLTEuNUEx'@; put 'MS43NSwxMS43NSwwLDAsMCwxOSw2LjFWM2ExLDEsMCwwLDAtMiwwVjZjLTQuNC4xLTYuODMsMi4yOS03LjU3LDQuMThBNS41Niw1LjU2LDAsMCwwLDExLjY2LDE3LDEzLjIsMTMuMiwwLDAsMCwxNywxOC44NFYyOGExMi4zLDEyLjMsMCwwLDEtNy4xNC0yLjc0QTEsMSwwLDEsMCw4LjQ5LDI2'@; put 'LjcsMTQuMDksMTQuMDksMCwwLDAsMTcsMzB2M2ExLDEsMCwwLDAsMiwwVjMwYzIuODItLjE5LDYuMDctMS4wOSw3LjMtNC43NkE1LjMzLDUuMzMsMCwwLDAsMjYsMjEuMTVaTTEyLjc5LDE1LjMyYTMuNTcsMy41NywwLDAsMS0xLjQ5LTQuMzlDMTEuNDEsMTAuNjMsMTIuNTMsOC4xMiwxNyw4'@; put 'djguOEExMC43LDEwLjcsMCwwLDEsMTIuNzksMTUuMzJaTTI0LjQsMjQuNTZjLS43MiwyLjE0LTIuMzIsMy4xNy01LjQsMy40VjE5LjIzYy42NC4xNCwxLjMuMywyLC41MWE1LDUsMCwwLDEsMy4xOSwyLjMyQTMuMzQsMy4zNCwwLDAsMSwyNC40LDI0LjU2WiIvPlxuICAgICAgICAgICAgPHBh'@; put 'dGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSJcbiAgICAgICAgICAgICAgICBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm03LjY1LDIxLjU5Yy0xLDMtMy42MSwzLjg0LTUuOSw0djJhMS4yNSwxLjI1LDAsMCwxLTIuNSwwVjI3LjU5'@; put 'QTExLjQ3LDExLjQ3LDAsMCwxLDExLDI1YTEuMjUsMS4yNSwwLDEsMSwxLjcxLTEuODMsOS4xMSw5LjExLDAsMCwwLDQuNTUsMS45NFYxOC44M2E5LjYzLDkuNjMsMCwwLDEtMy43My0xLjQxLDQuOCw0LjgsMCwwLDEtMS45MS01Ljg0Yy41OS0xLjUxLDIuNDItMy4yMyw1LjY0LTMuNTFWNi4y'@; put 'NWExLjI1LDEuMjUsMCwwLDEsMi41LDBWOC4xMWE5LjY3LDkuNjcsMCwwLDEsNC45LDJBMS4yNSwxLjI1LDAsMCwxLDIzLDExLjk1YTcuMTQsNy4xNCwwLDAsMC0zLjI0LTEuMzF2Ni4xM2MuNi4xMywxLjI0LjI3LDEuOTEuNDhhNS44NSw1Ljg1LDAsMCwxLDMuNjksMi44MkE0LjY0LDQuNjQs'@; put 'MCwwLDEsMjUuNjUsMjMuNTlaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjAuOTIsMTkuNjRjLS40LS4xMi0uNzktLjIyLTEuMTctLjN2NS43NmMyLS4yLDMuMDctLjksMy41My0yLjNhMi4xNSwyLjE1LDAsMCwwLS4x'@; put 'NS0xLjU4QTMuNDksMy40OSwwLDAsMCwyMC45MiwxOS42NFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0xMy45NCwxMi40OGEyLjMxLDIuMzEsMCwwLDAsMSwyLjg3LDYuNTMsNi41MywwLDAsMCwyLjMyLjkyVjEwLjU1'@; put 'QzE1LjE2LDEwLjgsMTQuMTksMTEuODQsMTMuOTQsMTIuNDhaIi8+JyksYi5DbHJTaGFwZUNyZWRpdENhcmQ9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wm0w'@; put 'LDIsMCwxMkg0TDQsOFpNNCwyOFYyNEgzMnY0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI3IiB5PSIzIiB3aWR0aD0iMjIiIGhlaWdodD0iMzAiIHJ4PSIwLjk2IiByeT0iMC45NiIgdHJhbnNmb3JtPSJ0cmFu'@; put 'c2xhdGUoMzYpIHJvdGF0ZSg5MCkiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDZINEEyLDIs'@; put 'MCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wm0wLDE4SDRWMjBIMzJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLGIuQ2xyU2hhcGVCYW5rPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0z'@; put 'LjUsMTMuNTYsMTgsNS4yM2wxNC41LDguMzNhMSwxLDAsMCwwLDEtMS43M0wxOCwyLjkyLDIuNSwxMS44M2ExLDEsMCwxLDAsMSwxLjczWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDI2YTEsMSwwLDAsMCwx'@; put 'LDFIMzFhMSwxLDAsMCwwLDAtMkgyOFYxNy42M0gyNlYyNUgxOVYxNy42M0gxN1YyNUgxMFYxNy42M0g4VjI1SDVBMSwxLDAsMCwwLDQsMjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNS4wMiIgeT0iMTQiIHdp'@; put 'ZHRoPSIyNiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLDI5SDNhMSwxLDAsMCwwLDAsMkgzM2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4xNSwxMS41OGgzLjIxTDE4LjY1LDcuNzJhLjguOCwwLDAsMC0uOCwwbC02LjcyLDMuODZoMy4yMWwzLjktMi4yNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gICAgICAgICAgICA8cGF0'@; put 'aCBkPSJNNCwyNmExLDEsMCwwLDAsMSwxSDMxYTEsMSwwLDAsMCwwLTJIMjhWMTcuNjNIMjZWMjVIMTlWMTcuNjNIMTdWMjVIMTBWMTcuNjNIOFYyNUg1QTEsMSwwLDAsMCw0LDI2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+'@; put 'XG4gICAgICAgICAgICA8cmVjdCB4PSI1LjAyIiB5PSIxNCIgd2lkdGg9IjI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLDI5SDNhMSwxLDAsMCwwLDAsMkgz'@; put 'M2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMTUsMTEuNThoMy4yMUwxOC42NSw3LjcyYS44LjgsMCwwLDAtLjgsMGwtNi43MiwzLjg2aDMuMjFsMy45'@; put 'LTIuMjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi41LDZjMC0uMTYsMC0uMzIsMC0uNDhMMTgsMi45MiwyLjUsMTEuODNhMSwxLDAsMSwwLDEsMS43M0wxOCw1LjIzLDIyLjc3'@; put 'LDhBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjk0LDEzLjI0bC41Ni4zMmExLDEsMCwwLDAsMS40NC0xLjE5QTcuNDUsNy40NSwwLDAs'@; put 'MSwzMS45NCwxMy4yNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC02LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDI2YTEsMSwwLDAsMCwxLDFIMzFhMSwxLDAsMCwwLDAtMkgyOFYxNy42M0gyNlYyNUgxOVYxNy42M0gxN1YyNUgxMFYxNy42M0g4VjI1SDVBMSwxLDAsMCwwLDQsMjZaIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLDI5SDNhMSwxLDAsMCwwLDAsMkgzM2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFs'@; put 'ZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi41LDE1QTMuNTEsMy41MSwwLDAsMSwyMCwxNEg1djJIMzFWMTVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LjQ2'@; put 'LDkuNzRsLjY4LTEuMTctMS40OS0uODVhLjguOCwwLDAsMC0uOCwwbC02LjcyLDMuODZoMy4yMWwzLjktMi4yNCwxLjEuNjNDMTkuMzksOS44OSwxOS40Miw5LjgxLDE5LjQ2LDkuNzRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRl'@; put 'ZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjA1LDUuMjUsMTgsMi45MiwyLjUsMTEuODNhMSwxLDAsMSwwLDEsMS43M0wxOCw1LjIzLDIxLjA1LDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIvPlxuICAgICAgICAg'@; put 'ICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTYtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zLjUsMTMuNTYsNSwxMi42OFYxNkgzMVYxMi43MWwxLjQ4Ljg1YTEsMSwwLDAsMCwxLTEuNzNMMTgsMi45MiwyLjUsMTEuODNhMSwxLDAsMSwwLDEsMS43M1pNMTcuODUsNy4xMWEu'@; put 'OC44LDAsMCwxLC44LDBMMjUuMzcsMTFIMjIuMTVsLTMuOS0yLjI0TDE0LjM1LDExSDExLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjg1LDI3SDMydi0uODVBMS4xNSwxLjE1LDAsMCwwLDMwLjg1LDI1SDI4'@; put 'VjE3LjYzSDI0VjI1SDIwVjE3LjYzSDE2VjI1SDEyVjE3LjYzSDhWMjVINS4xNUExLjE1LDEuMTUsMCwwLDAsNCwyNi4xNVYyN0gzLjE1QTEuMTUsMS4xNSwwLDAsMCwyLDI4LjE1VjMxSDM0VjI4LjE1QTEuMTUsMS4xNSwwLDAsMCwzMi44NSwyN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHIt'@; put 'aS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi44NSwyN0gzMnYtLjg1QTEuMTUsMS4xNSwwLDAsMCwzMC44NSwyNUgyOFYxNy42M0gyNFYyNUgyMFYxNy42M0gxNlYyNUgxMlYxNy42M0g4VjI1SDUuMTVBMS4xNSwxLjE1LDAsMCwwLDQsMjYuMTVWMjdIMy4xNUEx'@; put 'LjE1LDEuMTUsMCwwLDAsMiwyOC4xNVYzMUgzNFYyOC4xNUExLjE1LDEuMTUsMCwwLDAsMzIuODUsMjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVBNy40Nyw3LjQ3LDAsMCwx'@; put 'LDI0LjM5LDExSDIyLjE1bC0zLjktMi4yNEwxNC4zNSwxMUgxMS4xNGw2LjcyLTMuODZhLjguOCwwLDAsMSwuOCwwbDUsMi44N0E3LjQ1LDcuNDUsMCwwLDEsMjIuNSw2YzAtLjE2LDAtLjMyLDAtLjQ4TDE4LDIuOTIsMi41LDExLjgzYTEsMSwwLDEsMCwxLDEuNzNMNSwxMi42OFYxNkgzMVYx'@; put 'My40MkE3LjUzLDcuNTMsMCwwLDEsMzAsMTMuNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuOTQsMTMuMjRsLjU2LjMyYTEsMSwwLDAsMCwxLjQ0LTEuMTlBNy40NSw3LjQ1LDAsMCwx'@; put 'LDMxLjk0LDEzLjI0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFk'@; put 'Z2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuODUsMjdIMzJ2LS44NUExLjE1LDEuMTUsMCwwLDAsMzAuODUsMjVIMjhWMTcuNjNIMjRWMjVIMjBWMTcuNjNIMTZWMjVIMTJWMTcuNjNIOFYyNUg1LjE1QTEuMTUsMS4xNSwwLDAsMCw0LDI2LjE1VjI3SDMuMTVB'@; put 'MS4xNSwxLjE1LDAsMCwwLDIsMjguMTVWMzFIMzRWMjguMTVBMS4xNSwxLjE1LDAsMCwwLDMyLjg1LDI3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjUsMTVhMy41MSwzLjUxLDAs'@; put 'MCwxLTMtNS4yNmwuMTQtLjI0LTEuMzUtLjc4TDE0LjM1LDExSDExLjE0bDYuNzItMy44NmEuOC44LDAsMCwxLC44LDBsMS43NSwxLDEuNjUtMi44NkwxOCwyLjkyLDIuNSwxMS44M2ExLDEsMCwxLDAsMSwxLjczTDUsMTIuNjhWMTZIMzFWMTVaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0'@; put 'ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1'@; put 'LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+JyksYi5DbHJTaGFwZURvbGxhckJpbGw9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTEiIGQ9Ik0zMiw4SDRhMiwyLDAsMCwwLTIsMlYyNmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTBBMiwyLDAsMCwwLDMyLDhabTAsNmE0LjI1LDQuMjUsMCwwLDEtMy45LTRIMzJabTAsMS42MnY0LjgzQTUuODcsNS44NywwLDAsMCwyNi40OSwyNmgtMTdBNS44Nyw1Ljg3LDAs'@; put 'MCwwLDQsMjAuNDRWMTUuNkE1Ljg3LDUuODcsMCwwLDAsOS41MSwxMGgxN0E1Ljg3LDUuODcsMCwwLDAsMzIsMTUuNlpNNy45LDEwQTQuMjUsNC4yNSwwLDAsMSw0LDE0VjEwWk00LDIyLjA2QTQuMjUsNC4yNSwwLDAsMSw3LjksMjZINFpNMjguMSwyNkE0LjI1LDQuMjUsMCwwLDEsMzIsMjIu'@; put 'MDZWMjZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDEwLjg1Yy0zLjQ3LDAtNi4zLDMuMjEtNi4zLDcuMTVzMi44Myw3LjE1LDYuMyw3LjE1LDYuMy0zLjIxLDYuMy03LjE1UzIxLjQ3LDEwLjg1LDE4LDEw'@; put 'Ljg1Wm0wLDEyLjY5Yy0yLjU5LDAtNC43LTIuNDktNC43LTUuNTVzMi4xMS01LjU1LDQuNy01LjU1LDQuNywyLjQ5LDQuNyw1LjU1UzIwLjU5LDIzLjU1LDE4LDIzLjU1WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMy'@; put 'LDhINGEyLDIsMCwwLDAtMiwyVjI2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMEEyLDIsMCwwLDAsMzIsOFpNNCwyNlYyMS4xNUE1LjE4LDUuMTgsMCwwLDEsOC43OSwyNlpNNCwxNC44NVYxMEg4Ljc5QTUuMTgsNS4xOCwwLDAsMSw0LDE0Ljg1Wk0xOCwyNS4xNWMtMy40Nyww'@; put 'LTYuMy0zLjIxLTYuMy03LjE1czIuODMtNy4xNSw2LjMtNy4xNSw2LjMsMy4yMSw2LjMsNy4xNVMyMS40NywyNS4xNSwxOCwyNS4xNVpNMzIsMjZIMjcuMjVBNS4xOCw1LjE4LDAsMCwxLDMyLDIxLjE1Wm0wLTExLjE1QTUuMTgsNS4xOCwwLDAsMSwyNy4yNSwxMEgzMloiLz5cbiAgICAgICAg'@; put 'ICAgIDxlbGxpcHNlIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGN4PSIxOCIgY3k9IjE4IiByeD0iNCIgcnk9IjQuNzIiLz4nKSxiLkNsclNoYXBlRUNoZWNrPSgwLHAuY2xySWNvblNWRykoJzxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC0xIiB4PSIxNiIgeT0iMTYiIHdpZHRoPSIxNSIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgeD0iMjAiIHk9IjIxIiB3aWR0aD0iMTEiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGgg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0zNCw4SDEyLjkzYTguMzUsOC4zNSwwLDAsMSwuNzksMkgzM1YyNkgzVjE5LjlhNy44Myw3LjgzLDAsMCwxLTItMS4zNFYyN2ExLDEsMCwwLDAsMSwxSDM0YTEsMSwwLDAsMCwxLTFWOUExLDEsMCwwLDAsMzQs'@; put 'OFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNNi41NywxOC42OGE2LjE3LDYuMTcsMCwwLDAsNC4zMi0xLjU5LDEuMiwxLjIsMCwwLDAsLjM2LS44NCwxLjA4LDEuMDgsMCwwLDAtMS4wOS0xLjExLDEsMSwwLDAs'@; put 'MC0uNzEuMjUsNC4zMiw0LjMyLDAsMCwxLTIuODQsMSwzLjM1LDMuMzUsMCwwLDEtMy40Ni0zaDcuNTNBMS4yOSwxLjI5LDAsMCwwLDEyLDEyLjA2LDUuNjgsNS42OCwwLDAsMCw2LjI3LDYuMTQsNiw2LDAsMCwwLC40LDEyLjR2MEE2LDYsMCwwLDAsNi41NywxOC42OFpNNi4yNSw4LjM5YzEu'@; put 'ODIsMCwyLjg3LDEuMzksMywzLjE2SDMuMTNDMy4zOCw5LjY5LDQuNTYsOC4zOSw2LjI1LDguMzlaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzQsOEgxMi45MWE4LjYxLDguNjEsMCwwLDEsMS4yLDQuMzksOCw4LDAs'@; put 'MCwxLTcuNzgsOC4yN0E3LjUxLDcuNTEsMCwwLDEsMSwxOC40MVYyN2ExLDEsMCwwLDAsMSwxSDM0YTEsMSwwLDAsMCwxLTFWOUExLDEsMCwwLDAsMzQsOFpNMzEsMjNIMjBWMjFIMzFabTAtNUgxNlYxNkgzMVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHIt'@; put 'aS1zb2xpZC1wYXRoLTIiIGQ9Ik02LjU3LDE4LjY4QTYsNiwwLDAsMSwuNCwxMi40NHYwQTYsNiwwLDAsMSw2LjI3LDYuMTQsNS42OCw1LjY4LDAsMCwxLDEyLDEyLjA2YTEuMjksMS4yOSwwLDAsMS0xLjMsMS4zMkgzLjE1YTMuMzUsMy4zNSwwLDAsMCwzLjQ2LDMsNC4zMiw0LjMyLDAsMCww'@; put 'LDIuODQtMSwxLDEsMCwwLDEsLjcxLS4yNSwxLjA4LDEuMDgsMCwwLDEsMS4wOSwxLjExLDEuMiwxLjIsMCwwLDEtLjM2Ljg0QTYuMTcsNi4xNywwLDAsMSw2LjU3LDE4LjY4Wk05LjMsMTEuNTVjLS4xOC0xLjc3LTEuMjMtMy4xNi0zLTMuMTZzLTIuODcsMS4zLTMuMTIsMy4xNloiLz4nKSxi'@; put 'LkNsclNoYXBlUG91bmQ9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yNy45LDMwSDEzLjRBOC40NSw4LjQ1LDAsMCwwLDE1LDI0LjY1VjIxaDQuMzFhMSwxLDAsMCwwLDAtMkgxNVYxMS4zMUE1LjI0LDUuMjQs'@; put 'MCwwLDEsMjAuMjEsNiw1LjE5LDUuMTksMCwwLDEsMjQsNy43M2ExLDEsMCwwLDAsMS40OC0xLjM1QTcuMTksNy4xOSwwLDAsMCwxMywxMS4zMVYxOUg4LjcyYTEsMSwwLDEsMCwwLDJIMTN2My42NUMxMywyOS4zOCwxMC4xMiwzMCwxMCwzMGExLDEsMCwwLDAsLjE3LDJIMjcuOWExLDEsMCwx'@; put 'LDAsMC0yWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptNi41LDI1LjkySDExLjc0YTEuMjUsMS4yNSwwLDAsMS0uMjItMi40OGMuMTUsMCwxLjcy'@; put 'LS40OSwxLjcyLTMuNTRWMTloLTIuNWExLDEsMCwwLDEsMC0yaDIuNVYxMS44OGE1Ljg1LDUuODUsMCwwLDEsNS43Mi02LDUuNjMsNS42MywwLDAsMSw0LjIxLDEuOTRBMS4yNSwxLjI1LDAsMSwxLDIxLjMsOS41MSwzLjA4LDMuMDgsMCwwLDAsMTksOC40MmEzLjM1LDMuMzUsMCwwLDAtMy4y'@; put 'MiwzLjQ2VjE3aDNhMSwxLDAsMCwxLDAsMmgtM3YyLjlBNy42NSw3LjY1LDAsMCwxLDE1LDI1LjQySDI0LjVhMS4yNSwxLjI1LDAsMCwxLDAsMi41WiIvPicpLGIuQ2xyU2hhcGVSdXBlZT0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l'@; put 'LXBhdGgtMSIgZD0iTTI4LDhIMjQuMTRBNy41Miw3LjUyLDAsMCwwLDIyLjYsNkgyOGExLDEsMCwwLDAsMC0ySDEwYTEsMSwwLDAsMCwwLDJoNy41NWE1LjQyLDUuNDIsMCwwLDEsNC4yLDJIMTBhMSwxLDAsMCwwLDAsMkgyMi43OUE1LjU0LDUuNTQsMCwwLDEsMjMsMTEuNTEsNS40OCw1LjQ4'@; put 'LDAsMCwxLDE3LjU1LDE3SDExLjE0YTEsMSwwLDAsMC0uNzUsMS42NkwyMi4wNiwzMmExLDEsMCwxLDAsMS41LTEuMzJMMTMuMzUsMTloNC4yMWE3LjUxLDcuNTEsMCwwLDAsNy4zLTlIMjhhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBj'@; put 'bHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTUuODgsOUgyNmExLDEsMCwwLDEsMCwySDI0LjI2YzAsLjA2LDAsLjEyLDAsLjE5YTYuMDksNi4wOSwwLDAsMS02LDYuMmgtMmw2LjgyLDguMDZhMS4yNSwxLjI1LDAsMCwxLTEu'@; put 'OTEsMS42MkwxMi42MywxOC45NGExLjI1LDEuMjUsMCwwLDEsMS0yLjA2aDQuNzFhMy41OSwzLjU5LDAsMCwwLDMuNDgtMy42OWMwLS4wNywwLS4xMywwLS4yaC05YTEsMSwwLDAsMSwwLTJoOC4zMmEzLjQxLDMuNDEsMCwwLDAtMi43OC0xLjVIMTIuNzVhMS4yNSwxLjI1LDAsMCwxLDAtMi41'@; put 'SDI2YTEsMSwwLDAsMSwwLDJIMjIuNjhBNi4yMyw2LjIzLDAsMCwxLDIzLjg4LDExWiIvPicpLGIuQ2xyU2hhcGVXb249KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMywxOEgyOC43NWwuNS0ySDMzYTEsMSww'@; put 'LDAsMCwwLTJIMjkuNzRsMi4xNy04Ljc2QTEsMSwwLDAsMCwzMCw0Ljc2TDI3LjY4LDE0SDIxLjMxTDE5LDQuNzZhMSwxLDAsMCwwLTEuOTQsMEwxNC43OSwxNEg4LjQyTDYuMTMsNC43NmExLDEsMCwwLDAtMS45NC40OEw2LjM2LDE0SDNhMSwxLDAsMCwwLDAsMkg2Ljg1bC41LDJIM2ExLDEs'@; put 'MCwwLDAsMCwySDcuODRsMi43OSwxMS4yNGExLDEsMCwwLDAsMS45NCwwTDE1LjM2LDIwaDUuMzhsMi43OSwxMS4yNGExLDEsMCwwLDAsMS45NCwwTDI4LjI1LDIwSDMzYTEsMSwwLDAsMCwwLTJabS01LjgyLTItLjUsMkgyMi4zbC0uNS0yWk0xOCw5LjE2LDE5LjI1LDE0aC0yLjRaTTguOTEs'@; put 'MTZoNS4zOGwtLjUsMkg5LjQxWk0xMS42LDI2Ljg0LDkuOTEsMjBIMTMuM1pNMTUuODUsMThsLjUtMmgzLjM5bC41LDJabTguNjQsOC44NEwyMi44LDIwaDMuMzlaIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBwb2ludHM9'@; put 'IjE3Ljc0IDE2IDE3LjIyIDE4IDE4Ljg1IDE4IDE4LjMyIDE2IDE3Ljc0IDE2Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBwb2ludHM9IjExLjk0IDE4IDE0LjYzIDE4IDE1LjE2IDE2IDExLjQxIDE2IDExLjk0IDE4Ii8+'@; put 'XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBwb2ludHM9IjEzLjI5IDIzLjEgMTQuMSAyMCAxMi40NyAyMCAxMy4yOSAyMy4xIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQt'@; put 'cGF0aC00IiBwb2ludHM9IjIxLjQ0IDE4IDI0LjEzIDE4IDI0LjY2IDE2IDIwLjkxIDE2IDIxLjQ0IDE4Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC01IiBwb2ludHM9IjIyLjc4IDIzLjEgMjMuNiAyMCAyMS45NyAyMCAyMi43'@; put 'OCAyMy4xIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC02IiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWk0yOSwyMEgyNi4xOUwyNCwyOC4zMmExLjI1LDEuMjUsMCwwLDEtMi40MiwwTDE5LjM4LDIw'@; put 'SDE2LjY5bC0yLjE5LDguMzJhMS4yNSwxLjI1LDAsMCwxLTIuNDIsMEw5Ljg4LDIwSDdhMSwxLDAsMCwxLDAtMkg5LjM1bC0uNTMtMkg3YTEsMSwwLDAsMSwwLTJIOC4zbC0xLTMuNjhhMS4yNSwxLjI1LDAsMCwxLDIuNDItLjY0TDEwLjg4LDE0aDQuOGwxLjE0LTQuMzJhMS4yNSwxLjI1LDAs'@; put 'MCwxLDIuNDIsMEwyMC4zOCwxNGg0LjhsMS4xNC00LjMyYTEuMjUsMS4yNSwwLDAsMSwyLjQyLjY0bC0xLDMuNjhIMjlhMSwxLDAsMCwxLDAsMkgyNy4yNGwtLjUzLDJIMjlhMSwxLDAsMCwxLDAsMloiLz4nKSxiLkNsclNoYXBlWWVuPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjkuMzQsNC41NWExLDEsMCwxLDAtMS42Ny0xLjFMMTgsMTguMjMsOC4zMywzLjQ1YTEsMSwwLDAsMC0xLjY3LDEuMUwxNywyMC4zNVYyMi4ySDEyYS44LjgsMCwwLDAsMCwxLjZoNXYyLjRIMTJhLjguOCwwLDAsMCwwLDEu'@; put 'Nmg1VjMyYTEsMSwwLDAsMCwyLDBWMjcuOGg1YS44LjgsMCwwLDAsMC0xLjZIMTlWMjMuOGg1YS44LjgsMCwwLDAsMC0xLjZIMTlWMjAuMzVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwz'@; put 'NCwxOCwxNiwxNiwwLDAsMCwxOCwyWm04LjA3LDcuOTFMMTkuNzQsMjBIMjJhMSwxLDAsMCwxLDAsMkgxOS4yNXYySDIyYTEsMSwwLDAsMSwwLDJIMTkuMjV2Mi43NWExLjI1LDEuMjUsMCwwLDEtMi41LDBWMjZIMTRhMSwxLDAsMSwxLDAtMmgyLjc1VjIySDE0YTEsMSwwLDEsMSwwLTJoMi4y'@; put 'Nkw5LjkzLDkuOTFhMS4yNSwxLjI1LDAsMSwxLDIuMTItMS4zM0wxOCwxOC4wOGw1Ljk1LTkuNDlhMS4yNSwxLjI1LDAsMSwxLDIuMTIsMS4zM1oiLz4nKSxiLkNsclNoYXBlQml0Y29pbj0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjQuMTEsMTYuODhBNS40OSw1LjQ5LDAsMCwwLDIx'@; put 'LDdWNGExLDEsMCwwLDAtMiwwVjdIMTZWNGExLDEsMCwwLDAtMiwwVjdIMTFhMSwxLDAsMCwwLTEsMVYyOGExLDEsMCwwLDAsMSwxaDN2M2ExLDEsMCwwLDAsMiwwVjI5aDN2M2ExLDEsMCwwLDAsMiwwVjI5aC4wOEE2LjA3LDYuMDcsMCwwLDAsMjcsMjIuODF2LS42MkE2LjI1LDYuMjUsMCww'@; put 'LDAsMjQuMTEsMTYuODhaTTEyLDloOC42OWEzLjU5LDMuNTksMCwwLDEsMy40MywyLjM2QTMuNTEsMy41MSwwLDAsMSwyMC43OSwxNkgxMlpNMjUsMjIuODFBNC4wOCw0LjA4LDAsMCwxLDIxLjA2LDI3SDEyVjE4aDkuMDZBNC4wOCw0LjA4LDAsMCwxLDI1LDIyLjE5WiIgY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEuMTgsMTguNDdIMTQuNXY2aDYuNjhhMi43LDIuNywwLDAsMCwyLjYzLTIuNzd2LS40OEEyLjcxLDIuNzEsMCwwLDAsMjEuMTgsMTguNDdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWkt'@; put 'c29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLDEzLjc1YTIuMjQsMi4yNCwwLDAsMC0yLjIzLTIuMjVIMTQuNVYxNmg2LjNBMi4yMiwyLjIyLDAsMCwwLDIzLDEzLjc1WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAg'@; put 'ICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTguMzEsMTkuNzNBNS4yMiw1LjIyLDAsMCwxLDIxLjE4LDI3SDIxdjEuOWExLDEsMCwwLDEtMiwwVjI3SDE3djEuOWExLDEsMCwwLDEtMiwwVjI3SDEzLjI1QTEuMjUsMS4yNSwwLDAsMSwxMiwy'@; put 'NS43NVYxNy4yM2gwdi03QTEuMjUsMS4yNSwwLDAsMSwxMy4yNSw5SDE1VjcuMDdhMSwxLDAsMCwxLDIsMFY5aDJWNy4wN2ExLDEsMCwwLDEsMiwwVjlhNC43Miw0LjcyLDAsMCwxLDMuMiw4LDUuMzEsNS4zMSwwLDAsMSwyLjExLDQuMjRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s'@; put 'aWQtcGF0aC0zIiAvPicpLGIuQ2xyU2hhcGVDb2luQmFnPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMS42LDI5YTEsMSwwLDAsMC0xLTFoLTZhMSwxLDAsMCwwLDAsMmg2QTEsMSwwLDAsMCwyMS42LDI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi'@; put 'IC8+PHBhdGggZD0iTTIyLjU0LDI0aC02YTEsMSwwLDAsMCwwLDJoNmExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTIyLDMySDE2YTEsMSwwLDAsMCwwLDJoNmExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMyLjcsMzJoLTdhMSwxLDAsMCwwLDAsMmg3YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMzMuNywyOGgtN2ExLDEsMCwwLDAsMCwy'@; put 'aDdhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0zMy43NCwyNmEyOCwyOCwwLDAsMC0yLjgyLTEwLjEyQTIwLjI0LDIwLjI0LDAsMCwwLDI0LjYsOC43MUwyNywzLjQyYTEsMSwwLDAsMC0uMDctMUExLDEsMCww'@; put 'LDAsMjYuMTMsMkg5LjhhMSwxLDAsMCwwLS45MSwxLjQybDIuNDUsNS4zMWEyMC4zMywyMC4zMywwLDAsMC02LjI4LDcuMTVjLTIuMTUsNC0yLjgyLDguODktMywxMi4yOGEzLjYsMy42LDAsMCwwLDEsMi43MUEzLjc5LDMuNzksMCwwLDAsNS44LDMxLjk0SDEyVjMwSDUuNzJhMS42OCwxLjY4'@; put 'LDAsMCwxLTEuMjEtLjUyLDEuNjIsMS42MiwwLDAsMS0uNDUtMS4yM2MuMTQtMi42MS42OS03LjU4LDIuNzYtMTEuNDVBMTgsMTgsMCwwLDEsMTMuMDgsMTBoMWEzMC44MSwzMC44MSwwLDAsMC0xLjg3LDIuOTIsMjIuNzgsMjIuNzgsMCwwLDAtMS40NywzLjM0bDEuMzcuOTJhMjQsMjQsMCww'@; put 'LDEsMS40OS0zLjQ3QTI5LjEsMjkuMSwwLDAsMSwxNi4wNSwxMGgxYTIxLjQ1LDIxLjQ1LDAsMCwxLDEuNDEsNSwyMi41NCwyMi41NCwwLDAsMSwuMzIsMy44NmwxLjU4LTEuMTFhMjQuMTUsMjQuMTUsMCwwLDAtLjMyLTNBMjQuODIsMjQuODIsMCwwLDAsMTguNzYsMTBoLjc4bC45MS0ySDEz'@; put 'LjIxTDExLjM2LDRIMjQuNTdsLTIuNSw1LjQ3YTkuOTMsOS45MywwLDAsMSwxLjIzLjc4LDE4LjYzLDE4LjYzLDAsMCwxLDUuODYsNi41N0EyNi41OSwyNi41OSwwLDAsMSwzMS43MywyNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPlxuICAgIDxwYXRo'@; put 'IGQ9Ik0yNC44OSwyNmg3Ljg2Yy0uNjYtOC43MS00LjQxLTE0LjEyLTkuMjItMTcuMzJMMjUuNzIsMy45YTEsMSwwLDAsMC0uOTEtMS40SDExLjFhMSwxLDAsMCwwLS45MSwxLjRsMS4yLDIuNkgyMS41MWwtLjksMkgxOC43NkEyNC45LDI0LjksMCwwLDEsMjAsMTMuMTlhMjQuNDksMjQuNDks'@; put 'MCwwLDEsLjMyLDNsLTEuNTgsMS4xMWEyMi41NCwyMi41NCwwLDAsMC0uMzItMy44NkEyMS43NCwyMS43NCwwLDAsMCwxNyw4LjVoLTFhMjguMjIsMjguMjIsMCwwLDAtMi40OCwzLjcsMjMuOTEsMjMuOTEsMCwwLDAtMS40OSwzLjQ2bC0xLjM3LS45MWEyMi43OCwyMi43OCwwLDAsMSwxLjQ3'@; put 'LTMuMzRBMzAuODEsMzAuODEsMCwwLDEsMTQuMDUsOC41SDEyLjNsLjA4LjE3QzcuMDgsMTIuMiwzLjA1LDE4LjQsMy4wNSwyOC43NUExLjY1LDEuNjUsMCwwLDAsNC42MSwzMC41aDhBMi42NywyLjY3LDAsMCwxLDE0LjIxLDI2YTIuNjcsMi42NywwLDAsMS0uMzctMS4zNCwyLjcsMi43LDAs'@; put 'MCwxLDIuNy0yLjdoNmEyLjcsMi43LDAsMCwxLDIuNywyLjdBMi42MywyLjYzLDAsMCwxLDI0Ljg5LDI2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMjEuNiwyOC41YTEsMSwwLDAsMC0xLTFoLTZhMSwxLDAsMCwwLDAsMmg2QTEsMSwwLDAs'@; put 'MCwyMS42LDI4LjVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yMi41NCwyMy41aC02YTEsMSwwLDAsMCwwLDJoNmExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz48cGF0aCBkPSJNMjIs'@; put 'MzEuNUgxNmExLDEsMCwwLDAsMCwyaDZhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+PHBhdGggZD0iTTMyLjcsMzEuNWgtN2ExLDEsMCwwLDAsMCwyaDdhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp'@; put 'ZC1wYXRoLTUiIC8+PHBhdGggZD0iTTMzLjcsMjcuNWgtN2ExLDEsMCwwLDAsMCwyaDdhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTYiIC8+JyksYi5DbHJTaGFwZVBlc289KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLDEzLjJIMjcu'@; put 'ODlBNi44MSw2LjgxLDAsMCwwLDI4LDEyYTcuODUsNy44NSwwLDAsMC0uMS0xLjE5aDIuOTNhLjguOCwwLDAsMCwwLTEuNkgyNy40NkE4LjQ0LDguNDQsMCwwLDAsMTkuNTcsNEgxMWExLDEsMCwwLDAtMSwxVjkuMkg3YS44LjgsMCwwLDAsMCwxLjZoM3YyLjRIN2EuOC44LDAsMCwwLDAsMS42'@; put 'aDNWMzFhMSwxLDAsMCwwLDIsMFYyMGg3LjU3YTguNDUsOC40NSwwLDAsMCw3Ljg5LTUuMkgzMWEuOC44LDAsMCwwLDAtMS42Wk0xMiw2aDcuNTdhNi41MSw2LjUxLDAsMCwxLDUuNjgsMy4ySDEyWm0wLDQuOEgyNS44N2E1LjYsNS42LDAsMCwxLDAsMi40SDEyWk0xOS41NywxOEgxMlYxNC44'@; put 'SDI1LjI1QTYuNTEsNi41MSwwLDAsMSwxOS41NywxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xNC4xOCwxMy44VjE2aDkuNDVhNS4yNiw1LjI2LDAsMCwwLC4wOC0uODksNC43Miw0LjcyLDAsMCwwLS4yLTEuMzFaIiBjbGFzcz0i'@; put 'Y2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xNC4xOCwxOS43aDUuMTlhNC4yOCw0LjI4LDAsMCwwLDMuNS0xLjlIMTQuMThaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xOS4zNywxMC41MUgxNC4xOFYxMmg4'@; put 'LjM3QTQuMjEsNC4yMSwwLDAsMCwxOS4zNywxMC41MVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+PHBhdGggZD0iTTE3LjY3LDJhMTYsMTYsMCwxLDAsMTYsMTZBMTYsMTYsMCwwLDAsMTcuNjcsMlptMTAuNSwxNS44SDI1LjdhNi44Nyw2Ljg3LDAsMCwxLTYu'@; put 'MzMsNC40SDE0LjE4djYuNTRhMS4yNSwxLjI1LDAsMSwxLTIuNSwwVjE3LjhIOC43NmEuOS45LDAsMSwxLDAtMS44aDIuOTJWMTMuOEg4Ljc2YS45LjksMCwxLDEsMC0xLjhoMi45MlY5LjI2QTEuMjUsMS4yNSwwLDAsMSwxMi45Myw4aDYuNDRhNi44NCw2Ljg0LDAsMCwxLDYuMTUsNGgyLjY1'@; put 'YS45LjksMCwwLDEsMCwxLjhIMjYuMDlhNi45MSw2LjkxLDAsMCwxLC4xMiwxLjMsNi44LDYuOCwwLDAsMS0uMDYuOWgyYS45LjksMCwwLDEsMCwxLjhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPicpLGIuQ2xyU2hhcGVSdWJsZT0oMCxwLmNsckljb25TVkcp'@; put 'KCc8cGF0aCBkPSJNMjAuNTcsMjBBOC4yMyw4LjIzLDAsMCwwLDI5LDEyYTguMjMsOC4yMywwLDAsMC04LjQzLThIMTJhMSwxLDAsMCwwLTEsMVYxOEg5YTEsMSwwLDAsMCwwLDJoMnYySDlhMSwxLDAsMCwwLDAsMmgydjdhMSwxLDAsMCwwLDIsMFYyNGg5YTEsMSwwLDAsMCwwLTJIMTNWMjBa'@; put 'TTEzLDZoNy41N0E2LjI0LDYuMjQsMCwwLDEsMjcsMTJhNi4yMyw2LjIzLDAsMCwxLTYuNDMsNkgxM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMC43NSw5LjI1SDE1djguODFoNS43OWE0LjY2LDQuNjYsMCwwLDAsNC44Ni00LjRB'@; put 'NC42NSw0LjY1LDAsMCwwLDIwLjc1LDkuMjVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTIuNzUsMTguNTZIMTVWMjJoOC4yOWExLDEsMCwwLDEsMCwySDE1djVhMS4y'@; put 'NSwxLjI1LDAsMCwxLTIuNSwwVjI0SDExLjI1YTEsMSwwLDAsMSwwLTJoMS4yMVYyMC41NkgxMS4yNWExLjI1LDEuMjUsMCwwLDEsMC0yLjVoMS4yMVY4YTEuMjUsMS4yNSwwLDAsMSwxLjI1LTEuMjVoN2E3LjE0LDcuMTQsMCwwLDEsNy4zNiw2LjlBNy4xNSw3LjE1LDAsMCwxLDIwLjc1LDIw'@; put 'LjU2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxiLkNsclNoYXBlRW1wbG95ZWVHcm91cD0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTguNDIsMTYuMzFhNS43LDUuNywwLDEsMSw1Ljc2LTUuN0E1Ljc0LDUuNzQsMCwwLDEsMTguNDIsMTYuMzFa'@; put 'bTAtOS40YTMuNywzLjcsMCwxLDAsMy43NiwzLjdBMy43NCwzLjc0LDAsMCwwLDE4LjQyLDYuOTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMTguNDIsMTYuMzFhNS43LDUuNywwLDEsMSw1Ljc2LTUuN0E1Ljc0LDUuNzQsMCww'@; put 'LDEsMTguNDIsMTYuMzFabTAtOS40YTMuNywzLjcsMCwxLDAsMy43NiwzLjdBMy43NCwzLjc0LDAsMCwwLDE4LjQyLDYuOTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjEuOTEsMTcuNjVhMjAuNiwyMC42LDAsMCwwLTEzLDJB'@; put 'MS43NywxLjc3LDAsMCwwLDgsMjEuMjV2My41NmExLDEsMCwwLDAsMiwwVjIxLjM4YTE4LjkyLDE4LjkyLDAsMCwxLDEyLTEuNjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cGF0aCBkPSJNMzMsMjJIMjYuM1YyMC41MmExLDEsMCwwLDAtMiww'@; put 'VjIySDE3YTEsMSwwLDAsMC0xLDFWMzNhMSwxLDAsMCwwLDEsMUgzM2ExLDEsMCwwLDAsMS0xVjIzQTEsMSwwLDAsMCwzMywyMlpNMzIsMzJIMThWMjRoNi4zdi40MWExLDEsMCwwLDAsMiwwVjI0SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAg'@; put 'PHJlY3QgeD0iMjEuODEiIHk9IjI3LjQyIiB3aWR0aD0iNS45NiIgaGVpZ2h0PSIxLjQiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gIDxwYXRoIGQ9Ik0xMC44NCwxMi4yNGExOCwxOCwwLDAsMC03Ljk1LDJBMS42NywxLjY3LDAsMCwwLDIsMTUuNzF2'@; put 'My4xYTEsMSwwLDAsMCwyLDB2LTIuOWExNiwxNiwwLDAsMSw3LjU4LTEuNjdBNy4yOCw3LjI4LDAsMCwxLDEwLjg0LDEyLjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiLz5cbiAgPHBhdGggZD0iTTMzLjExLDE0LjIzYTE3LjgsMTcuOCwwLDAsMC03LjEy'@; put 'LTIsNy40Niw3LjQ2LDAsMCwxLS43MywyQTE1Ljg5LDE1Ljg5LDAsMCwxLDMyLDE1LjkxdjIuOWExLDEsMCwxLDAsMiwwdi0zLjFBMS42NywxLjY3LDAsMCwwLDMzLjExLDE0LjIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciLz5cbiAgPHBhdGggZD0iTTEw'@; put 'LjY2LDEwLjYxYzAtLjIzLDAtLjQ1LDAtLjY3YTMuMDcsMy4wNywwLDAsMSwuNTQtNi4xMSwzLjE1LDMuMTUsMCwwLDEsMi4yLjg5LDguMTYsOC4xNiwwLDAsMSwxLjctMS4wOCw1LjEzLDUuMTMsMCwwLDAtOSwzLjI3LDUuMSw1LjEsMCwwLDAsNC43LDVBNy40Miw3LjQyLDAsMCwxLDEwLjY2'@; put 'LDEwLjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiLz5cbiAgPHBhdGggZD0iTTI0Ljc3LDEuODNhNS4xNyw1LjE3LDAsMCwwLTMuNjksMS41NSw3Ljg3LDcuODcsMCwwLDEsMS45LDEsMy4xNCwzLjE0LDAsMCwxLDQuOTMsMi41MiwzLjA5LDMuMDksMCww'@; put 'LDEtMS43OSwyLjc3LDcuMTQsNy4xNCwwLDAsMSwuMDYuOTMsNy44OCw3Ljg4LDAsMCwxLS4xLDEuMiw1LjEsNS4xLDAsMCwwLDMuODMtNC45QTUuMTIsNS4xMiwwLDAsMCwyNC43NywxLjgzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTkiLz5cbiAgXG4gIDxl'@; put 'bGxpcHNlIGN4PSIxOCIgY3k9IjExLjI4IiByeD0iNC43NiIgcnk9IjQuNyIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMTAuNzgsMTEuNzVjLjE2LDAsLjMyLDAsLjQ4LDAsMC0uMTUsMC0uMjgsMC0uNDNhNi43LDYuNywwLDAsMSwzLjc1'@; put 'LTYsNC42Miw0LjYyLDAsMSwwLTQuMjEsNi40NloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTI0Ljc2LDExLjI4YzAsLjE1LDAsLjI4LDAsLjQzLjE2LDAsLjMyLDAsLjQ4LDBBNC41OCw0LjU4LDAsMSwwLDIxLDUuMjksNi43LDYuNyww'@; put 'LDAsMSwyNC43NiwxMS4yOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTIyLjI5LDE2LjQ1YTIxLjQ1LDIxLjQ1LDAsMCwxLDUuNzEsMiwyLjcxLDIuNzEsMCwwLDEsLjY4LjUzSDM0VjE1LjU2YS43Mi43MiwwLDAsMC0uMzgtLjY0LDE4'@; put 'LDE4LDAsMCwwLTguNC0yLjA1bC0uNjYsMEE2LjY2LDYuNjYsMCwwLDEsMjIuMjksMTYuNDVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik02LjUzLDIwLjkyQTIuNzYsMi43NiwwLDAsMSw4LDE4LjQ3YTIxLjQ1LDIxLjQ1LDAsMCwxLDUu'@; put 'NzEtMiw2LjY2LDYuNjYsMCwwLDEtMi4yNy0zLjU1bC0uNjYsMGExOCwxOCwwLDAsMC04LjQsMi4wNS43Mi43MiwwLDAsMC0uMzguNjRWMjJINi41M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiLz5cbiAgPHJlY3QgeD0iMjEuNDYiIHk9IjI2LjY5IiB3aWR0aD0i'@; put 'NS45NiIgaGVpZ2h0PSIxLjQiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTYiLz5cbiAgPHBhdGggZD0iTTMyLjgxLDIxLjI2SDI1Ljk0di0xYTEsMSwwLDAsMC0yLDB2MUgyMlYxOC40M0EyMC4xNywyMC4xNywwLDAsMCwxOCwxOGExOS4yNywxOS4yNywwLDAsMC05LjA2'@; put 'LDIuMjIuNzYuNzYsMCwwLDAtLjQxLjY4djUuNjFoNy4xMXY2LjA5YTEsMSwwLDAsMCwxLDFIMzIuODFhMSwxLDAsMCwwLDEtMVYyMi4yNkExLDEsMCwwLDAsMzIuODEsMjEuMjZabS0xLDEwLjM2SDE3LjY0VjIzLjI2aDYuM3YuOTFhMSwxLDAsMCwwLDIsMHYtLjkxaDUuODdaIiBjbGFzcz0i'@; put 'Y2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC03Ii8+JyksYi5DbHJTaGFwZUVtcGxveWVlPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNi40MywxNi42OWE3LDcsMCwxLDEsNy03QTcsNywwLDAsMSwxNi40MywxNi42OVptMC0xMS45MmE1LDUsMCwxLDAsNSw1QTUsNSwwLDAsMCwx'@; put 'Ni40Myw0Ljc3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTIyLDE3LjlBMjUuNDEsMjUuNDEsMCwwLDAsNS44OCwxOS41N2E0LjA2LDQuMDYsMCwwLDAtMi4zMSwzLjY4VjI5LjJhMSwxLDAsMSwwLDIsMFYyMy4yNWEyLDIsMCww'@; put 'LDEsMS4xNi0xLjg2LDIyLjkxLDIyLjkxLDAsMCwxLDkuNy0yLjExLDIzLjU4LDIzLjU4LDAsMCwxLDUuNTcuNjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cmVjdCB4PSIyMi4xNCIgeT0iMjcuNDEiIHdpZHRoPSI2LjE0IiBoZWlnaHQ9IjEu'@; put 'NCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTMzLjE3LDIxLjQ3SDI4djJoNC4xN3Y4LjM3SDE4VjIzLjQ3aDYuM3YuNDJhMSwxLDAsMCwwLDIsMFYyMGExLDEsMCwwLDAtMiwwdjEuNDdIMTdhMSwxLDAsMCwwLTEsMVYzMi44NGEx'@; put 'LDEsMCwwLDAsMSwxSDMzLjE3YTEsMSwwLDAsMCwxLTFWMjIuNDdBMSwxLDAsMCwwLDMzLjE3LDIxLjQ3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgXG4gIDxjaXJjbGUgY3g9IjE2Ljg2IiBjeT0iOS43MyIgcj0iNi40NiIgY2xhc3M9ImNsci1p'@; put 'LXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICA8cmVjdCB4PSIyMSIgeT0iMjgiIHdpZHRoPSI3IiBoZWlnaHQ9IjEuNCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMTUsMzB2M2ExLDEsMCwwLDAsMSwxSDMzYTEsMSwwLDAsMCwx'@; put 'LTFWMjNhMSwxLDAsMCwwLTEtMUgyNlYyMC41M2ExLDEsMCwwLDAtMiwwVjIySDIyVjE4LjQyQTMyLjEyLDMyLjEyLDAsMCwwLDE2Ljg2LDE4YTI2LDI2LDAsMCwwLTExLDIuMzksMy4yOCwzLjI4LDAsMCwwLTEuODgsM1YzMFptMTcsMkgxN1YyNGg3di40MmExLDEsMCwwLDAsMiwwVjI0aDZa'@; put 'IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+JyksYi5DbHJTaGFwZUZhY3Rvcnk9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjQ3LDcuMzdhMSwxLDAsMCwwLTEsLjA2TDIzLDEzLjc3VjguMjZhMSwxLDAsMCwwLTEuNjQtLjc3TDEzLjQ4LDE0SDEwVjQu'@; put 'NjJhMSwxLDAsMCwwLS43OC0xbC00LS45YTEsMSwwLDAsMC0uODUuMkExLDEsMCwwLDAsNCwzLjczVjE0SDNhMSwxLDAsMCwwLTEsMVYzMWExLDEsMCwwLDAsMSwxSDMzYTEsMSwwLDAsMCwxLTFWOC4yNkExLDEsMCwwLDAsMzMuNDcsNy4zN1pNNiw1bDIsLjQ0VjE0SDZaTTMyLDMwSDRWMTZo'@; put 'OS44M2ExLDEsMCwwLDAsLjY0LS4yM0wyMSwxMC4zN3Y1LjI4YTEsMSwwLDAsMCwxLjU2LjgzTDMyLDEwLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHJlY3QgeD0iNiIgeT0iMTcuOTkiIHdpZHRoPSI4IiBoZWlnaHQ9IjIiIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxyZWN0IHg9IjYiIHk9IjIxLjk5IiB3aWR0aD0iOCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cmVjdCB4PSI2IiB5PSIyNS45OSIgd2lkdGg9IjgiIGhl'@; put 'aWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgPHJlY3QgeD0iMTkiIHk9IjE4Ljk5IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPlxuICA8cmVjdCB4PSIxOSIgeT0i'@; put 'MjQuOTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02Ii8+XG4gIDxyZWN0IHg9IjIzIiB5PSIxOC45OSIgd2lkdGg9IjIiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciLz5c'@; put 'biAgPHJlY3QgeD0iMjMiIHk9IjI0Ljk5IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIvPlxuICA8cmVjdCB4PSIyNyIgeT0iMTguOTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC05Ii8+XG4gIDxyZWN0IHg9IjI3IiB5PSIyNC45OSIgd2lkdGg9IjIiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIi8+XG4gIFxuICA8cGF0aCBkPSJNMzIuNDUsOC40NCwyMiwxNS4zVjkuNTFhMSwxLDAsMCwwLTEu'@; put 'NjMtLjc4TDE0LjA3LDE0SDEwVjQuMDZMNCwyLjcxVjE0SDJWMzFhMSwxLDAsMCwwLDEsMUgzM2ExLDEsMCwwLDAsMS0xVjkuMjdBMSwxLDAsMCwwLDMyLjQ1LDguNDRaTTE0LDI5SDZWMjdoOFptMC00SDZWMjNoOFptMC00SDZWMTloOFptOCw4SDIwVjI2aDJabTAtNkgyMFYyMGgyWm00LDZI'@; put 'MjRWMjZoMlptMC02SDI0VjIwaDJabTQsNkgyOFYyNmgyWm0wLTZIMjhWMjBoMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxiLkNvbW1lcmNlU2hhcGVzPXtjYWxjdWxhdG9yOmIuQ2xyU2hhcGVDYWxjdWxhdG9yLCJwaWdneS1iYW5rIjpiLkNsclNoYXBl'@; put 'UGlnZ3lCYW5rLCJzaG9wcGluZy1iYWciOmIuQ2xyU2hhcGVTaG9wcGluZ0JhZywic2hvcHBpbmctY2FydCI6Yi5DbHJTaGFwZVNob3BwaW5nQ2FydCx3YWxsZXQ6Yi5DbHJTaGFwZVdhbGxldCxzdG9yZTpiLkNsclNoYXBlU3RvcmUsZXVybzpiLkNsclNoYXBlRXVybyxkb2xsYXI6Yi5DbHJT'@; put 'aGFwZURvbGxhcixwZXNvOmIuQ2xyU2hhcGVQZXNvLCJjcmVkaXQtY2FyZCI6Yi5DbHJTaGFwZUNyZWRpdENhcmQsYmFuazpiLkNsclNoYXBlQmFuaywiZG9sbGFyLWJpbGwiOmIuQ2xyU2hhcGVEb2xsYXJCaWxsLCJlLWNoZWNrIjpiLkNsclNoYXBlRUNoZWNrLHBvdW5kOmIuQ2xyU2hhcGVQ'@; put 'b3VuZCxydXBlZTpiLkNsclNoYXBlUnVwZWUsd29uOmIuQ2xyU2hhcGVXb24seWVuOmIuQ2xyU2hhcGVZZW4sYml0Y29pbjpiLkNsclNoYXBlQml0Y29pbixydWJsZTpiLkNsclNoYXBlUnVibGUsImNvaW4tYmFnIjpiLkNsclNoYXBlQ29pbkJhZywiZW1wbG95ZWUtZ3JvdXAiOmIuQ2xyU2hh'@; put 'cGVFbXBsb3llZUdyb3VwLGVtcGxveWVlOmIuQ2xyU2hhcGVFbXBsb3llZSxmYWN0b3J5OmIuQ2xyU2hhcGVGYWN0b3J5fSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5Db21tZXJjZVNoYXBlcywic2F2aW5ncyIsKDAsXy5kZXNjcmlwdG9yQ29uZmlnKShiLkNvbW1lcmNlU2hhcGVzWyJwaWdn'@; put 'eS1iYW5rIl0pKSx0eXBlb2Ygd2luZG93PCJ1IiYmd2luZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNsYXJpdHlJY29ucy5hZGQoYi5Db21tZXJjZVNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29yZS1zaGFwZXMudHMiOgovKiEqKioq'@; put 'KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXAogICAgICAgICAgICAgICAgICAhKioqIC4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9jb3JlLXNoYXBlcy50cyAqKiohCiAgICAgICAgICAgICAgICAgIFwqKioqKioqKioqKioqKioqKioqKioqKioq'@; put 'KioqKioqKioqKioqKioqKioqKioqKioqKi8KLyohIG5vIHN0YXRpYyBleHBvcnRzIGZvdW5kICovZnVuY3Rpb24oSixiLEQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoYiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksYi5Db3JlU2hhcGVzPWIuQ2xyU2hhcGVBcnJvdz1i'@; put 'LkNsclNoYXBlU3RlcEZvcndhcmQyPWIuQ2xyU2hhcGVFeWVIaWRlPWIuQ2xyU2hhcGVFeWU9Yi5DbHJTaGFwZUV2ZW50PWIuQ2xyU2hhcGVDYWxlbmRhcj1iLkNsclNoYXBlQW5nbGVEb3VibGU9Yi5DbHJTaGFwZVZpZXdDb2x1bW5zPWIuQ2xyU2hhcGVTZWFyY2g9Yi5DbHJTaGFwZVZtQnVn'@; put 'PWIuQ2xyU2hhcGVGaWx0ZXJHcmlkQ2lyY2xlPWIuQ2xyU2hhcGVGaWx0ZXJHcmlkPWIuQ2xyU2hhcGVFbGxpcHNpc1ZlcnRpY2FsPWIuQ2xyU2hhcGVFbGxpcHNpc0hvcml6b250YWw9Yi5DbHJTaGFwZUNsb3VkPWIuQ2xyU2hhcGVJbWFnZT1iLkNsclNoYXBlQmVsbD1iLkNsclNoYXBlRm9s'@; put 'ZGVyT3Blbj1iLkNsclNoYXBlRm9sZGVyPWIuQ2xyU2hhcGVBbmdsZT1iLkNsclNoYXBlVXNlcj1iLkNsclNoYXBlQmFycz1iLkNsclNoYXBlSGVscEluZm89Yi5DbHJTaGFwZVdhcm5pbmdTdGFuZGFyZD1iLkNsclNoYXBlRXJyb3JTdGFuZGFyZD1iLkNsclNoYXBlU3VjY2Vzc1N0YW5kYXJk'@; put 'PWIuQ2xyU2hhcGVJbmZvU3RhbmRhcmQ9Yi5DbHJTaGFwZUluZm9DaXJjbGU9Yi5DbHJTaGFwZUNoZWNrQ2lyY2xlPWIuQ2xyU2hhcGVFeGNsYW1hdGlvbkNpcmNsZT1iLkNsclNoYXBlRXhjbGFtYXRpb25UcmlhbmdsZT1iLkNsclNoYXBlVGltZXM9Yi5DbHJTaGFwZUNoZWNrPWIuQ2xyU2hh'@; put 'cGVDb2c9Yi5DbHJTaGFwZUhvbWU9Yi5DbHJTaGFwZVVua25vd25TdGF0dXM9dm9pZCAwO3ZhciBfPUQoCi8qISAuLi91dGlscy9kZXNjcmlwdG9yLWNvbmZpZyAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvZGVzY3JpcHRvci1jb25maWcudHMiKSxwPUQoCi8qISAuLi91dGlscy9z'@; put 'dmctdGFnLWdlbmVyYXRvciAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiKTtiLkNsclNoYXBlVW5rbm93blN0YXR1cz0oMCxwLmNsckljb25TVkcpKCc8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBj'@; put 'eD0iMTcuNTgiIGN5PSIyNi4yMyIgcj0iMS40Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yNC43LDEzYTUuMTgsNS4xOCwwLDAsMC0yLjE2LTMuNTYsNy4yNiw3LjI2LDAsMCwwLTUuNzEtMS4wOUExMS4z'@; put 'NCwxMS4zNCwwLDAsMCwxMiwxMC40NCwxLDEsMCwxLDAsMTMuMjYsMTJhOS4zMiw5LjMyLDAsMCwxLDMuOTQtMS43Miw1LjI5LDUuMjksMCwwLDEsNC4xNi43NCwzLjIxLDMuMjEsMCwwLDEsMS4zNSwyLjE5Yy4zMywyLjY5LTMuMTksMy43NS01LjMyLDQuMTRsLS44Mi4xNXY0LjM2YTEsMSww'@; put 'LDAsMCwyLDBWMTkuMTdDMjQuNjEsMTcuNzksMjQuODgsMTQuNDEsMjQuNywxM1oiLz4nKSxiLkNsclNoYXBlSG9tZT0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMzLjcxLDE3LjI5bC0xNS0xNWExLDEsMCww'@; put 'LDAtMS40MSwwbC0xNSwxNWExLDEsMCwwLDAsMS40MSwxLjQxTDE4LDQuNDEsMzIuMjksMTguNzFhMSwxLDAsMCwwLDEuNDEtMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI4LDMyaC01VjIySDEz'@; put 'VjMySDhWMThMNiwyMFYzMmEyLDIsMCwwLDAsMiwyaDdWMjRoNlYzNGg3YTIsMiwwLDAsMCwyLTJWMTkuNzZsLTItMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzMsMTlhMSwxLDAsMCwxLS43MS0uMjlMMTgs'@; put 'NC40MSwzLjcxLDE4LjcxYTEsMSwwLDAsMS0xLjQxLTEuNDFsMTUtMTVhMSwxLDAsMCwxLDEuNDEsMGwxNSwxNUExLDEsMCwwLDEsMzMsMTlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTE4LDcuNzksNiwxOS44'@; put 'M1YzMmEyLDIsMCwwLDAsMiwyaDdWMjRoNlYzNGg3YTIsMiwwLDAsMCwyLTJWMTkuNzZaIi8+JyksYi5DbHJTaGFwZUNvZz0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LjEsMTFjLTMuOSwwLTcsMy4xLTcs'@; put 'N3MzLjEsNyw3LDdjMy45LDAsNy0zLjEsNy03UzIyLDExLDE4LjEsMTF6IE0xOC4xLDIzYy0yLjgsMC01LTIuMi01LTVzMi4yLTUsNS01YzIuOCwwLDUsMi4yLDUsNVMyMC45LDIzLDE4LjEsMjN6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTIiIGQ9Ik0zMi44LDE0LjdMMzAsMTMuOGwtMC42LTEuNWwxLjQtMi42YzAuMy0wLjYsMC4yLTEuNC0wLjMtMS45bC0yLjQtMi40Yy0wLjUtMC41LTEuMy0wLjYtMS45LTAuM2wtMi42LDEuNGwtMS41LTAuNmwtMC45LTIuOEMyMSwyLjUsMjAuNCwyLDE5LjcsMmgtMy40'@; put 'Yy0wLjcsMC0xLjMsMC41LTEuNCwxLjJMMTQsNmMtMC42LDAuMS0xLjEsMC4zLTEuNiwwLjZMOS44LDUuMkM5LjIsNC45LDguNCw1LDcuOSw1LjVMNS41LDcuOUM1LDguNCw0LjksOS4yLDUuMiw5LjhsMS4zLDIuNWMtMC4yLDAuNS0wLjQsMS4xLTAuNiwxLjZsLTIuOCwwLjlDMi41LDE1LDIs'@; put 'MTUuNiwyLDE2LjN2My40YzAsMC43LDAuNSwxLjMsMS4yLDEuNUw2LDIyLjFsMC42LDEuNWwtMS40LDIuNmMtMC4zLDAuNi0wLjIsMS40LDAuMywxLjlsMi40LDIuNGMwLjUsMC41LDEuMywwLjYsMS45LDAuM2wyLjYtMS40bDEuNSwwLjZsMC45LDIuOWMwLjIsMC42LDAuOCwxLjEsMS41LDEu'@; put 'MWgzLjRjMC43LDAsMS4zLTAuNSwxLjUtMS4xbDAuOS0yLjlsMS41LTAuNmwyLjYsMS40YzAuNiwwLjMsMS40LDAuMiwxLjktMC4zbDIuNC0yLjRjMC41LTAuNSwwLjYtMS4zLDAuMy0xLjlsLTEuNC0yLjZsMC42LTEuNWwyLjktMC45YzAuNi0wLjIsMS4xLTAuOCwxLjEtMS41di0zLjRDMzQs'@; put 'MTUuNiwzMy41LDE0LjksMzIuOCwxNC43eiBNMzIsMTkuNGwtMy42LDEuMUwyOC4zLDIxYy0wLjMsMC43LTAuNiwxLjQtMC45LDIuMWwtMC4zLDAuNWwxLjgsMy4zbC0yLDJsLTMuMy0xLjhsLTAuNSwwLjNjLTAuNywwLjQtMS40LDAuNy0yLjEsMC45bC0wLjUsMC4xTDE5LjQsMzJoLTIuOGwt'@; put 'MS4xLTMuNkwxNSwyOC4zYy0wLjctMC4zLTEuNC0wLjYtMi4xLTAuOWwtMC41LTAuM2wtMy4zLDEuOGwtMi0ybDEuOC0zLjNsLTAuMy0wLjVjLTAuNC0wLjctMC43LTEuNC0wLjktMi4xbC0wLjEtMC41TDQsMTkuNHYtMi44bDMuNC0xbDAuMi0wLjVjMC4yLTAuOCwwLjUtMS41LDAuOS0yLjJs'@; put 'MC4zLTAuNUw3LjEsOS4xbDItMmwzLjIsMS44bDAuNS0wLjNjMC43LTAuNCwxLjQtMC43LDIuMi0wLjlsMC41LTAuMkwxNi42LDRoMi44bDEuMSwzLjVMMjEsNy43YzAuNywwLjIsMS40LDAuNSwyLjEsMC45bDAuNSwwLjNsMy4zLTEuOGwyLDJsLTEuOCwzLjNsMC4zLDAuNWMwLjQsMC43LDAu'@; put 'NywxLjQsMC45LDIuMWwwLjEsMC41bDMuNiwxLjFWMTkuNHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMS4xLDE4YzAsMy45LDMuMSw3LDcsN2MzLjksMCw3LTMuMSw3LTdz'@; put 'LTMuMS03LTctN0MxNC4yLDExLDExLjEsMTQuMSwxMS4xLDE4eiBNMjMuMSwxOGMwLDIuOC0yLjIsNS01LDVjLTIuOCwwLTUtMi4yLTUtNXMyLjItNSw1LTVDMjAuOSwxMywyMy4xLDE1LjIsMjMuMSwxOHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0t'@; put 'YmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMi44LDE0LjdMMzAsMTMuOGwtMC4xLTAuM2MtMC44LDAtMS42LTAuMi0yLjQtMC40YzAuMywwLjYsMC42LDEuMywwLjgsMS45bDAuMSwwLjVsMy42LDEuMXYyLjhsLTMuNiwxLjFMMjguMywyMWMtMC4zLDAuNy0wLjYs'@; put 'MS40LTAuOSwyLjFsLTAuMywwLjVsMS44LDMuM2wtMiwybC0zLjMtMS44bC0wLjUsMC4zYy0wLjcsMC40LTEuNCwwLjctMi4xLDAuOWwtMC41LDAuMUwxOS40LDMyaC0yLjhsLTEuMS0zLjZMMTUsMjguM2MtMC43LTAuMy0xLjQtMC42LTIuMS0wLjlsLTAuNS0wLjNsLTMuMywxLjhsLTItMmwx'@; put 'LjgtMy4zbC0wLjMtMC41Yy0wLjQtMC43LTAuNy0xLjQtMC45LTIuMWwtMC4xLTAuNUw0LDE5LjR2LTIuOGwzLjQtMWwwLjItMC41YzAuMi0wLjgsMC41LTEuNSwwLjktMi4ybDAuMy0wLjVMNy4xLDkuMWwyLTJsMy4yLDEuOGwwLjUtMC4zYzAuNy0wLjQsMS40LTAuNywyLjItMC45bDAuNS0w'@; put 'LjJMMTYuNiw0aDIuOGwxLjEsMy41TDIxLDcuN2MwLjcsMC4yLDEuMywwLjUsMS45LDAuOGMtMC4zLTAuOC0wLjQtMS42LTAuNC0yLjVsLTAuNC0wLjJsLTAuOS0yLjhDMjEsMi41LDIwLjQsMiwxOS43LDJoLTMuNGMtMC43LDAtMS4zLDAuNS0xLjQsMS4yTDE0LDZjLTAuNiwwLjEtMS4xLDAu'@; put 'My0xLjYsMC42TDkuOCw1LjJDOS4yLDQuOSw4LjQsNSw3LjksNS41TDUuNSw3LjlDNSw4LjQsNC45LDkuMiw1LjIsOS44bDEuMywyLjVjLTAuMiwwLjUtMC40LDEuMS0wLjYsMS42bC0yLjgsMC45QzIuNSwxNSwyLDE1LjYsMiwxNi4zdjMuNGMwLDAuNywwLjUsMS4zLDEuMiwxLjVMNiwyMi4x'@; put 'bDAuNiwxLjVsLTEuNCwyLjZjLTAuMywwLjYtMC4yLDEuNCwwLjMsMS45bDIuNCwyLjRjMC41LDAuNSwxLjMsMC42LDEuOSwwLjNsMi42LTEuNGwxLjUsMC42bDAuOSwyLjljMC4yLDAuNiwwLjgsMS4xLDEuNSwxLjFoMy40YzAuNywwLDEuMy0wLjUsMS41LTEuMWwwLjktMi45bDEuNS0wLjZs'@; put 'Mi42LDEuNGMwLjYsMC4zLDEuNCwwLjIsMS45LTAuM2wyLjQtMi40YzAuNS0wLjUsMC42LTEuMywwLjMtMS45bC0xLjQtMi42bDAuNi0xLjVsMi45LTAuOWMwLjYtMC4yLDEuMS0wLjgsMS4xLTEuNXYtMy40QzM0LDE1LjYsMzMuNSwxNC45LDMyLjgsMTQuN3oiLz5cbiAgICAgICAgICAgICAg'@; put 'ICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMuNywxNS40aC01LjN2MC4xbDMuNiwxLjF2Mi44bC0zLjYsMS4xTDI4LjMsMjFjLTAuMywwLjctMC42LDEuNC0wLjksMi4xbC0wLjMsMC41bDEuOCwzLjNsLTIsMmwtMy4zLTEuOGwtMC41LDAuM2MtMC43LDAuNC0xLjQsMC43LTIuMSwwLjls'@; put 'LTAuNSwwLjFMMTkuNCwzMmgtMi44bC0xLjEtMy42TDE1LDI4LjNjLTAuNy0wLjMtMS40LTAuNi0yLjEtMC45bC0wLjUtMC4zbC0zLjMsMS44bC0yLTJsMS44LTMuM2wtMC4zLTAuNWMtMC40LTAuNy0wLjctMS40LTAuOS0yLjFsLTAuMS0wLjVMNCwxOS40di0yLjhsMy40LTFsMC4yLTAuNWMw'@; put 'LjItMC44LDAuNS0xLjUsMC45LTIuMmwwLjMtMC41TDcuMSw5LjFsMi0ybDMuMiwxLjhsMC41LTAuM2MwLjctMC40LDEuNC0wLjcsMi4yLTAuOWwwLjUtMC4yTDE2LjYsNGgyLjhsMS4xLDMuNGwxLjQtMi4zbC0wLjYtMkMyMSwyLjQsMjAuNCwyLDE5LjcsMmgtMy40Yy0wLjcsMC0xLjMsMC41'@; put 'LTEuNCwxLjJMMTQsNmMtMC42LDAuMS0xLjEsMC4zLTEuNiwwLjZMOS44LDUuMkM5LjIsNC45LDguNCw1LDcuOSw1LjVMNS41LDcuOUM1LDguNCw0LjksOS4yLDUuMiw5LjhsMS4zLDIuNWMtMC4yLDAuNS0wLjQsMS4xLTAuNiwxLjZsLTIuOCwwLjlDMi41LDE1LDIsMTUuNiwyLDE2LjN2My40'@; put 'YzAsMC43LDAuNSwxLjMsMS4yLDEuNUw2LDIyLjFsMC42LDEuNWwtMS40LDIuNmMtMC4zLDAuNi0wLjIsMS40LDAuMywxLjlsMi40LDIuNGMwLjUsMC41LDEuMywwLjYsMS45LDAuM2wyLjYtMS40bDEuNSwwLjZsMC45LDIuOWMwLjIsMC42LDAuOCwxLjEsMS41LDEuMWgzLjRjMC43LDAsMS4z'@; put 'LTAuNSwxLjUtMS4xbDAuOS0yLjlsMS41LTAuNmwyLjYsMS40YzAuNiwwLjMsMS40LDAuMiwxLjktMC4zbDIuNC0yLjRjMC41LTAuNSwwLjYtMS4zLDAuMy0xLjlsLTEuNC0yLjZsMC42LTEuNWwyLjktMC45YzAuNi0wLjIsMS4xLTAuOCwxLjEtMS41di0zLjRDMzQsMTYsMzMuOSwxNS43LDMz'@; put 'LjcsMTUuNHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTE4LjEsMjNjLTIuOCwwLTUtMi4yLTUtNXMyLjItNSw1LTVjMC4yLDAsMC41LDAsMC43LDAuMWMtMC4yLTAuNi0w'@; put 'LjMtMS4zLTAuMi0yaC0wLjVjLTMuOSwwLTcsMy4xLTcsN2MwLDMuOSwzLjEsNyw3LDdjMy45LDAsNy0zLjEsNy03YzAtMC45LTAuMi0xLjgtMC41LTIuNmgtMi4yYzAuNSwwLjgsMC43LDEuNiwwLjcsMi41QzIzLjEsMjAuOCwyMC45LDIzLDE4LjEsMjN6Ii8+XG4gICAgICAgICAgICAgICAg'@; put 'PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi45LDEuMUwyMS4xLDExYy0wLjQsMC42LTAuMiwxLjQsMC4zLDEuOGMwLjIsMC4yLDAuNSwwLjIsMC44LDAuMmgxMS41YzAuNywwLDEuMy0w'@; put 'LjUsMS4zLTEuMmMwLTAuMy0wLjEtMC41LTAuMi0wLjhsLTUuNy05LjljLTAuNC0wLjYtMS4xLTAuOC0xLjgtMC41QzI3LjEsMC44LDI3LDEsMjYuOSwxLjF6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLjU3'@; put 'LDE1LjcybC0zLjM1LTFhMTEuNjUsMTEuNjUsMCwwLDAtLjk1LTIuMzNsMS42NC0zLjA3YS42MS42MSwwLDAsMC0uMTEtLjcyTDI3LjQxLDYuMmEuNjEuNjEsMCwwLDAtLjcyLS4xMUwyMy42NCw3LjcyYTExLjYyLDExLjYyLDAsMCwwLTIuMzYtMWwtMS0zLjMxQS42MS42MSwwLDAsMCwxOS42'@; put 'OSwzSDE2LjMxYS42MS42MSwwLDAsMC0uNTguNDNsLTEsMy4zYTExLjYzLDExLjYzLDAsMCwwLTIuMzgsMWwtMy0xLjYyYS42MS42MSwwLDAsMC0uNzIuMTFMNi4yLDguNTlhLjYxLjYxLDAsMCwwLS4xMS43MmwxLjYyLDNhMTEuNjMsMTEuNjMsMCwwLDAtMSwyLjM3bC0zLjMxLDFhLjYxLjYx'@; put 'LDAsMCwwLS40My41OHYzLjM4YS42MS42MSwwLDAsMCwuNDMuNThsMy4zMywxYTExLjYyLDExLjYyLDAsMCwwLDEsMi4zM0w2LjA5LDI2LjY5YS42MS42MSwwLDAsMCwuMTEuNzJMOC41OSwyOS44YS42MS42MSwwLDAsMCwuNzIuMTFsMy4wOS0xLjY1YTExLjY1LDExLjY1LDAsMCwwLDIuMy45'@; put 'NGwxLDMuMzdhLjYxLjYxLDAsMCwwLC41OC40M2gzLjM4YS42MS42MSwwLDAsMCwuNTgtLjQzbDEtMy4zOGExMS42MywxMS42MywwLDAsMCwyLjI4LS45NGwzLjExLDEuNjZhLjYxLjYxLDAsMCwwLC43Mi0uMTFsMi4zOS0yLjM5YS42MS42MSwwLDAsMCwuMTEtLjcybC0xLjY2LTMuMWExMS42'@; put 'MywxMS42MywwLDAsMCwuOTUtMi4yOWwzLjM3LTFhLjYxLjYxLDAsMCwwLC40My0uNThWMTYuMzFBLjYxLjYxLDAsMCwwLDMyLjU3LDE1LjcyWk0xOCwyMy41QTUuNSw1LjUsMCwxLDEsMjMuNSwxOCw1LjUsNS41LDAsMCwxLDE4LDIzLjVaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xh'@; put 'c3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMi41NywxNS43MmwtMy4zNS0xYTEyLjEyLDEyLjEyLDAsMCwwLS40Ny0xLjMyLDcuNDksNy40OSwwLDAsMS02LjE0LTYuMTYsMTEuODIsMTEuODIsMCwwLDAtMS4zMy0uNDhsLTEtMy4zMUEu'@; put 'NjEuNjEsMCwwLDAsMTkuNjksM0gxNi4zMWEuNjEuNjEsMCwwLDAtLjU4LjQzbC0xLDMuM2ExMS42MywxMS42MywwLDAsMC0yLjM4LDFsLTMtMS42MmEuNjEuNjEsMCwwLDAtLjcyLjExTDYuMiw4LjU5YS42MS42MSwwLDAsMC0uMTEuNzJsMS42MiwzYTExLjYzLDExLjYzLDAsMCwwLTEsMi4z'@; put 'N2wtMy4zMSwxYS42MS42MSwwLDAsMC0uNDMuNTh2My4zOGEuNjEuNjEsMCwwLDAsLjQzLjU4bDMuMzMsMWExMS42MiwxMS42MiwwLDAsMCwxLDIuMzNMNi4wOSwyNi42OWEuNjEuNjEsMCwwLDAsLjExLjcyTDguNTksMjkuOGEuNjEuNjEsMCwwLDAsLjcyLjExbDMuMDktMS42NWExMS42NSwx'@; put 'MS42NSwwLDAsMCwyLjMuOTRsMSwzLjM3YS42MS42MSwwLDAsMCwuNTguNDNoMy4zOGEuNjEuNjEsMCwwLDAsLjU4LS40M2wxLTMuMzhhMTEuNjMsMTEuNjMsMCwwLDAsMi4yOC0uOTRsMy4xMSwxLjY2YS42MS42MSwwLDAsMCwuNzItLjExbDIuMzktMi4zOWEuNjEuNjEsMCwwLDAsLjExLS43'@; put 'MmwtMS42Ni0zLjFhMTEuNjMsMTEuNjMsMCwwLDAsLjk1LTIuMjlsMy4zNy0xYS42MS42MSwwLDAsMCwuNDMtLjU4VjE2LjMxQS42MS42MSwwLDAsMCwzMi41NywxNS43MlpNMTgsMjMuNUE1LjUsNS41LDAsMSwxLDIzLjUsMTgsNS41LDUuNSwwLDAsMSwxOCwyMy41WiIvPlxuICAgICAgICAg'@; put 'ICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29s'@; put 'aWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzIuNTcsMTUuNzIsMzEuNSwxNS40SDIyLjg1QTUuNSw1LjUsMCwxLDEsMTgsMTIuNWE1LjUzLDUuNTMsMCwwLDEsLjY1LDBBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlsMi4wOS0zLjYyLS44Ni0yLjgzQS42MS42MSwwLDAsMCwxOS42OSwzSDE2LjMx'@; put 'YS42MS42MSwwLDAsMC0uNTguNDNsLTEsMy4zYTExLjYzLDExLjYzLDAsMCwwLTIuMzgsMWwtMy0xLjYyYS42MS42MSwwLDAsMC0uNzIuMTFMNi4yLDguNTlhLjYxLjYxLDAsMCwwLS4xMS43MmwxLjYyLDNhMTEuNjMsMTEuNjMsMCwwLDAtMSwyLjM3bC0zLjMxLDFhLjYxLjYxLDAsMCwwLS40'@; put 'My41OHYzLjM4YS42MS42MSwwLDAsMCwuNDMuNThsMy4zMywxYTExLjYyLDExLjYyLDAsMCwwLDEsMi4zM0w2LjA5LDI2LjY5YS42MS42MSwwLDAsMCwuMTEuNzJMOC41OSwyOS44YS42MS42MSwwLDAsMCwuNzIuMTFsMy4wOS0xLjY1YTExLjY1LDExLjY1LDAsMCwwLDIuMy45NGwxLDMuMzdh'@; put 'LjYxLjYxLDAsMCwwLC41OC40M2gzLjM4YS42MS42MSwwLDAsMCwuNTgtLjQzbDEtMy4zOGExMS42MywxMS42MywwLDAsMCwyLjI4LS45NGwzLjExLDEuNjZhLjYxLjYxLDAsMCwwLC43Mi0uMTFsMi4zOS0yLjM5YS42MS42MSwwLDAsMCwuMTEtLjcybC0xLjY2LTMuMWExMS42MywxMS42Myww'@; put 'LDAsMCwuOTUtMi4yOWwzLjM3LTFhLjYxLjYxLDAsMCwwLC40My0uNThWMTYuMzFBLjYxLjYxLDAsMCwwLDMyLjU3LDE1LjcyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxl'@; put 'cnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz4nKSxiLkNsclNoYXBlQ2hlY2s9KDAscC5jbHJJY29uU1ZHKSgnPHBh'@; put 'dGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xMy43MiwyNy42OSwzLjI5LDE3LjI3YTEsMSwwLDAsMSwxLjQxLTEuNDFsOSw5TDMxLjI5LDcuMjlhMSwxLDAsMCwxLDEuNDEsMS40MVoiLz4nKSxiLkNsclNoYXBlVGltZXM9KDAscC5jbHJJY29uU1ZH'@; put 'KSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOS40MSwxOGw4LjI5LTguMjlhMSwxLDAsMCwwLTEuNDEtMS40MUwxOCwxNi41OSw5LjcxLDguMjlBMSwxLDAsMCwwLDguMjksOS43MUwxNi41OSwxOCw4LjI5LDI2LjI5YTEsMSwwLDEsMCwx'@; put 'LjQxLDEuNDFMMTgsMTkuNDFsOC4yOSw4LjI5YTEsMSwwLDAsMCwxLjQxLTEuNDFaIi8+JyksYi5DbHJTaGFwZUV4Y2xhbWF0aW9uVHJpYW5nbGU9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyMS4zMmEx'@; put 'LjMsMS4zLDAsMCwwLDEuMy0xLjNWMTRhMS4zLDEuMywwLDEsMC0yLjYsMHY2QTEuMywxLjMsMCwwLDAsMTgsMjEuMzJaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgY3g9IjE3Ljk1IiBjeT0iMjQuMjciIHI9'@; put 'IjEuNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMzAuMzMsMjUuNTQsMjAuNTksNy42YTMsMywwLDAsMC01LjI3LDBMNS41NywyNS41NEEzLDMsMCwwLDAsOC4yMSwzMEgyNy42OWEzLDMsMCwwLDAsMi42'@; put 'NC00LjQzWm0tMS43OCwxLjk0YTEsMSwwLDAsMS0uODYuNDlIOC4yMWExLDEsMCwwLDEtLjg4LTEuNDhMMTcuMDcsOC41NWExLDEsMCwwLDEsMS43NiwwbDkuNzQsMTcuOTRBMSwxLDAsMCwxLDI4LjU1LDI3LjQ4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xp'@; put 'ZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMC4zMywyNS41NCwyMC41OSw3LjZhMywzLDAsMCwwLTUuMjcsMEw1LjU3LDI1LjU0QTMsMywwLDAsMCw4LjIxLDMwSDI3LjY5YTMsMywwLDAsMCwyLjY0LTQuNDNaTTE2LjQ2LDEyLjc0YTEuNDksMS40OSwwLDAsMSwzLDB2Ni44OWExLjQ5LDEu'@; put 'NDksMCwxLDEtMywwWk0xOCwyNi4yNWExLjcyLDEuNzIsMCwxLDEsMS43Mi0xLjcyQTEuNzIsMS43MiwwLDAsMSwxOCwyNi4yNVoiLz4nKSxiLkNsclNoYXBlRXhjbGFtYXRpb25DaXJjbGU9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTEiIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabTAsMjJBMTAsMTAsMCwxLDEsMjgsMTgsMTAsMTAsMCwwLDEsMTgsMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIi'@; put 'IGQ9Ik0xOCwyMC4wN2ExLjMsMS4zLDAsMCwxLTEuMy0xLjN2LTZhMS4zLDEuMywwLDEsMSwyLjYsMHY2QTEuMywxLjMsMCwwLDEsMTgsMjAuMDdaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgY3g9IjE3Ljk1'@; put 'IiBjeT0iMjMuMDIiIHI9IjEuNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabS0xLjQ5LDZhMS40OSwxLjQ5LDAsMCwxLDMsMHY2Ljg5YTEu'@; put 'NDksMS40OSwwLDEsMS0zLDBaTTE4LDI1LjVhMS43MiwxLjcyLDAsMSwxLDEuNzItMS43MkExLjcyLDEuNzIsMCwwLDEsMTgsMjUuNVoiLz4nKSxiLkNsclNoYXBlQ2hlY2tDaXJjbGU9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTEiIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabTAsMjJBMTAsMTAsMCwxLDEsMjgsMTgsMTAsMTAsMCwwLDEsMTgsMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9'@; put 'Ik0xNi4zNCwyMy43NGwtNS01YTEsMSwwLDAsMSwxLjQxLTEuNDFsMy41OSwzLjU5LDYuNzgtNi43OGExLDEsMCwwLDEsMS40MSwxLjQxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMCwxOEExMiwxMiwwLDEs'@; put 'MSwxOCw2LDEyLDEyLDAsMCwxLDMwLDE4Wm0tNC43Ny0yLjE2YTEuNCwxLjQsMCwwLDAtMi0ybC02Ljc3LDYuNzdMMTMsMTcuMTZhMS40LDEuNCwwLDAsMC0yLDJsNS40NSw1LjQ1WiIvPicpLGIuQ2xyU2hhcGVJbmZvQ2lyY2xlPSgwLHAuY2xySWNvblNWRykoJzxjaXJjbGUgY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiICBjeD0iMTcuOTMiIGN5PSIxMS45IiByPSIxLjQiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgIGQ9Ik0yMSwyM0gxOVYxNUgxNmExLDEsMCwwLDAsMCwy'@; put 'aDF2NkgxNWExLDEsMCwxLDAsMCwyaDZhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabTAsMjJBMTAsMTAs'@; put 'MCwxLDEsMjgsMTgsMTAsMTAsMCwwLDEsMTgsMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptLTIsNS4xNWEyLDIsMCwxLDEsMiwyQTIs'@; put 'MiwwLDAsMSwxNS45LDExLjE1Wk0yMywyNGExLDEsMCwwLDEtMSwxSDE1YTEsMSwwLDEsMSwwLTJoMlYxN0gxNmExLDEsMCwwLDEsMC0yaDR2OGgyQTEsMSwwLDAsMSwyMywyNFoiLz4nKSxiLkNsclNoYXBlSW5mb1N0YW5kYXJkPSgwLHAuY2xySWNvblNWRykoJzxjaXJjbGUgY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGN4PSIxNy45NyIgY3k9IjEwLjQ1IiByPSIxLjQiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTIxLDI1SDE5VjE0LjFIMTZhMSwxLDAsMCwwLDAs'@; put 'MmgxVjI1SDE1YTEsMSwwLDAsMCwwLDJoNmExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgsMTYsMTYsMCwwLDEsMTgsMzRaTTE4LDRBMTQs'@; put 'MTQsMCwxLDAsMzIsMTgsMTQsMTQsMCwwLDAsMTgsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMi4xYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDE4LDIuMVptLS4xLDUuMjhhMiwyLDAsMSwx'@; put 'LTIsMkEyLDIsMCwwLDEsMTcuOSw3LjM4Wm0zLjYsMjEuMjVoLTdhMS40LDEuNCwwLDEsMSwwLTIuOGgyLjF2LTkuMkgxNWExLjQsMS40LDAsMSwxLDAtMi44aDQuNHYxMmgyLjFhMS40LDEuNCwwLDEsMSwwLDIuOFoiLz4nKSxiLkNsclNoYXBlU3VjY2Vzc1N0YW5kYXJkPSgwLHAuY2xySWNv'@; put 'blNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIvPlxuICAgICAgICAgICAgICAgIDxw'@; put 'YXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjgsMTIuMWExLDEsMCwwLDAtMS40MSwwTDE1LjQ5LDIzLjE1bC02LTZBMSwxLDAsMCwwLDgsMTguNTNMMTUuNDksMjYsMjgsMTMuNTJBMSwxLDAsMCwwLDI4LDEyLjFaIi8+XG4gICAgICAgICAgICAg'@; put 'ICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlpNMjguNDUsMTIuNjMsMTUuMzEsMjUuNzYsNy41NSwxOGExLjQsMS40LDAsMCwxLDItMmw1Ljc4LDUuNzhMMjYuNDcsMTAuNjVh'@; put 'MS40LDEuNCwwLDEsMSwyLDJaIi8+JyksYi5DbHJTaGFwZUVycm9yU3RhbmRhcmQ9KDAscC5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgY3g9IjE4IiBjeT0iMjYuMDYiIHI9IjEuMzMiLz5cbiAgICAgICAgICAgICAgICA8'@; put 'cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDIyLjYxYTEsMSwwLDAsMS0xLTF2LTEyYTEsMSwwLDEsMSwyLDB2MTJBMSwxLDAsMCwxLDE4LDIyLjYxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgsMTYsMTYsMCwwLDEsMTgsMzRaTTE4LDRBMTQsMTQsMCwxLDAsMzIsMTgsMTQsMTQsMCwwLDAsMTgsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQt'@; put 'cGF0aC0xIiBkPSJNMTgsMi4xYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDE4LDIuMVpNMTYuNiw4LjhhMS40LDEuNCwwLDAsMSwyLjgsMHYxMmExLjQsMS40LDAsMCwxLTIuOCwwWk0xOCwyOC42YTEuOCwxLjgsMCwxLDEsMS44LTEuOEExLjgsMS44LDAsMCwxLDE4LDI4LjZaIi8+'@; put 'JyksYi5DbHJTaGFwZVdhcm5pbmdTdGFuZGFyZD0oMCxwLmNsckljb25TVkcpKCc8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBjeD0iMTgiIGN5PSIyNi4wNiIgcj0iMS4zMyIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMjIuNjFhMSwxLDAsMCwxLTEtMXYtMTJhMSwxLDAsMSwxLDIsMHYxMkExLDEsMCwwLDEsMTgsMjIuNjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMi'@; put 'IGQ9Ik0xNS4wNjIwNzgyLDEuNjgxMTk2IEMxNS42Mjk4ODE5LDAuNjQ5MjY2MzU1IDE2LjcxMDkwOTEsMC4wMTAyMjE5Mzk2IDE3Ljg4NSwwLjAxMDIyMTkzOTYgQzE5LjA1OTA5MDksMC4wMTAyMjE5Mzk2IDIwLjE0MDExODEsMC42NDkyNjYzNTUgMjAuNzA4NjQzMywxLjY4MjUyMTI5IEwz'@; put 'NC41OTg2NDQsMjcuMjQyNTIyNSBDMzUuMTQwNzc0NiwyOC4yNDAxMzk3IDM1LjExNzQzNDUsMjkuNDQ5NTM3MyAzNC41MzcyMTYxLDMwLjQyNTQ5NDMgQzMzLjk1Njk5NzcsMzEuNDAxNDUxNCAzMi45MDU2NzEsMzEuOTk5Njk4NCAzMS43NywzMiBMNC4wMjIzOTMyMywzMS45OTk3NDkyIEMy'@; put 'Ljg3NDA5MDA5LDMyLjAyNTQ2OTkgMS43OTkwMjg0MywzMS40Mzc1NzUzIDEuMjAxMDYzMzUsMzAuNDU2OTEyNiBDMC42MDMwOTgyNjUsMjkuNDc2MjQ5OSAwLjU3Mjc3Nzg5OSwyOC4yNTEzMTc5IDEuMTIyMDc4MTgsMjcuMjQxMTk2IEwxNS4wNjIwNzgyLDEuNjgxMTk2IFogTTIuODc4NTA3'@; put 'NjcsMjguMTk3NzI4MiBDMi42NzA2MDk2NiwyOC41ODAwMzc2IDIuNjgyMDk3NSwyOS4wNDQxNDIzIDIuOTA4NjU1NywyOS40MTU2OTc3IEMzLjEzNTIxMzksMjkuNzg3MjUzMiAzLjU0MjUzNTQsMzAuMDA5OTk1OSA0LDMwIEwzMS43Njk3MzQ0LDMwIEMzMi4xOTk5MTkxLDI5Ljk5OTg4NTgg'@; put 'MzIuNTk4MjQ3OCwyOS43NzMyMjA4IDMyLjgxODA4MjEsMjkuNDAzNDQ4MiBDMzMuMDM3OTE2NCwyOS4wMzM2NzU3IDMzLjA0Njc1OTUsMjguNTc1NDU2NyAzMi44NDEzNTY3LDI4LjE5NzQ3ODcgTDE4Ljk1Mzg3MzksMi42NDIwODE5NSBDMTguNzM5NDIzNiwyLjI1MjM0NDM2IDE4LjMyOTg0'@; put 'MTksMi4wMTAyMjE5NCAxNy44ODUsMi4wMTAyMjE5NCBDMTcuNDQwNjg4OSwyLjAxMDIyMTk0IDE3LjAzMTU1MzgsMi4yNTE3NjY5MiAxNi44MTY4OTQ2LDIuNjQwNjg3NTMgTDIuODc4NTA3NjcsMjguMTk3NzI4MiBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNv'@; put 'bGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTM0LjYsMjkuMjEsMjAuNzEsMy42NWEzLjIyLDMuMjIsMCwwLDAtNS42NiwwTDEuMTcsMjkuMjFBMy4yMiwzLjIyLDAsMCwwLDQsMzRIMzEuNzdhMy4yMiwzLjIyLDAsMCwwLDIuODMtNC43NVpNMTYuNiwxMGExLjQsMS40LDAsMCwxLDIuOCww'@; put 'djEyYTEuNCwxLjQsMCwwLDEtMi44LDBaTTE4LDI5Ljg1YTEuOCwxLjgsMCwxLDEsMS44LTEuOEExLjgsMS44LDAsMCwxLDE4LDI5Ljg1WiIvPicpLGIuQ2xyU2hhcGVIZWxwSW5mbz0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjUuMzksMjUuNDVhMSwxLDAsMCwwLTEuMzguMjljLTEu'@; put 'NDEsMi4xNi00LDQuODEtNi4zMSw1LjdzLTQuMTIuNTctNC44NCwwYy0uMzEtLjI3LTEuMTItMS0uNDMtMy40OS40Ni0xLjY2LDMuMzItOS40OCw0LTExLjM4bC0yLjE4LjI4Yy0uNjksMS44Ni0zLjI5LDguODQtMy43NiwxMC41OC0uNjgsMi40OS0uMzQsNC4zLDEuMDksNS41NkE1LjU5LDUu'@; put 'NTksMCwwLDAsMTUsMzRhOS41Myw5LjUzLDAsMCwwLDMuNDUtLjdjMi43OS0xLjA5LDUuNzItNC4xMiw3LjI2LTYuNDdBMSwxLDAsMCwwLDI1LjM5LDI1LjQ1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTku'@; put 'MywxMWE0LjUsNC41LDAsMSwwLTQuNS00LjVBNC41LDQuNSwwLDAsMCwxOS4zLDExWm0wLTdhMi41LDIuNSwwLDEsMS0yLjUsMi41QTIuNSwyLjUsMCwwLDEsMTkuMyw0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBk'@; put 'PSJNMTEuODEsMTVjLjA2LDAsNi4yNy0uODIsNy43My0xLC42NS0uMSwxLjE0LDAsMS4zLjE1cy4yMS44LS4wNywxLjY4Yy0uNjEsMS44Ni0zLjY5LDExLTQuNTksMTMuNzFhOCw4LDAsMCwwLDEuMjktLjM4LDcuMzIsNy4zMiwwLDAsMCwxLjE1LS42QzE5Ljg1LDI1LDIyLjE1LDE4LjEsMjIu'@; put 'NjcsMTYuNTJzLjM5LTIuNzgtLjMtMy42YTMuMTYsMy4xNiwwLDAsMC0zLjA4LS44M2MtMS40My4xNS03LjQ3Ljk0LTcuNzMsMWExLDEsMCwwLDAsLjI2LDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjIw'@; put 'Ljc1IiBjeT0iNiIgcj0iNCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNC44NCwyNi4yM2ExLDEsMCwwLDAtMS40LjI5LDE2LjYsMTYuNiwwLDAsMS0zLjUxLDMuNzdjLS4zMy4yNS0xLjU2LDEuMi0yLjA4LDEtLjM2'@; put 'LS4xMS0uMTUtLjgyLS4wOC0xLjEybC41My0xLjU3Yy4yMi0uNjQsNC4wNS0xMiw0LjQ3LTEzLjMuNjItMS45LjM1LTMuNzctMi40OC0zLjMyLS43Ny4wOC04LjU4LDEuMDktOC43MiwxLjFhMSwxLDAsMCwwLC4xMywyczMtLjM5LDMuMzMtLjQyYS44OC44OCwwLDAsMSwuODUuNDQsMi40Nywy'@; put 'LjQ3LDAsMCwxLS4wNywxLjcxYy0uMjYsMS00LjM3LDEyLjU4LTQuNSwxMy4yNWEyLjc4LDIuNzgsMCwwLDAsMS4xOCwzLDUsNSwwLDAsMCwzLjA4LjgzaDBhOC41Myw4LjUzLDAsMCwwLDMuMDktLjYyYzIuNDktMSw1LjA5LTMuNjYsNi40Ni01Ljc1QTEsMSwwLDAsMCwyNC44NCwyNi4yM1oi'@; put 'IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksYi5DbHJTaGFwZUJhcnM9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiwyOUg0YTEsMSwwLDAsMSwwLTJIMzJhMSwxLDAsMCwx'@; put 'LDAsMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMyLDE5SDRhMSwxLDAsMCwxLDAtMkgzMmExLDEsMCwwLDEsMCwyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMzIsOUg0QTEsMSwwLDAsMSw0LDdIMzJhMSwxLDAsMCwxLDAsMloiLz4nKSxiLkNsclNoYXBlVXNlcj0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMTdhNyw3LDAsMSwwLTctN0E3LDcsMCwwLDAsMTgsMTdaTTE4LDVhNSw1LDAsMSwx'@; put 'LTUsNUE1LDUsMCwwLDEsMTgsNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjQ3LDI0LjM3YTE3LjE2LDE3LjE2LDAsMCwwLTI0LjkzLDBBMiwyLDAsMCwwLDUsMjUuNzRWMzFhMiwyLDAsMCwwLDIsMkgy'@; put 'OWEyLDIsMCwwLDAsMi0yVjI1Ljc0QTIsMiwwLDAsMCwzMC40NywyNC4zN1pNMjksMzFIN1YyNS43M2ExNS4xNywxNS4xNywwLDAsMSwyMiwwaDBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC40NywyNC4z'@; put 'N2ExNy4xNiwxNy4xNiwwLDAsMC0yNC45MywwQTIsMiwwLDAsMCw1LDI1Ljc0VjMxYTIsMiwwLDAsMCwyLDJIMjlhMiwyLDAsMCwwLDItMlYyNS43NEEyLDIsMCwwLDAsMzAuNDcsMjQuMzdaTTI5LDMxSDdWMjUuNzNhMTUuMTcsMTUuMTcsMCwwLDEsMjIsMGgwWiIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTdhNyw3LDAsMCwwLDQuNDUtMS42aC0uMjJBMy42OCwzLjY4LDAsMCwxLDIwLDE0LjZhNSw1LDAsMSwxLDEuMjQtOC40MmwxLTEuNzZBNyw3LDAsMSwwLDE4'@; put 'LDE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4'@; put 'LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNDcsMjQuMzdhMTcuMTYsMTcu'@; put 'MTYsMCwwLDAtMjQuOTMsMEEyLDIsMCwwLDAsNSwyNS43NFYzMWEyLDIsMCwwLDAsMiwySDI5YTIsMiwwLDAsMCwyLTJWMjUuNzRBMiwyLDAsMCwwLDMwLjQ3LDI0LjM3Wk0yOSwzMUg3VjI1LjczYTE1LjE3LDE1LjE3LDAsMCwxLDIyLDBoMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRn'@; put 'ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxN2E3LDcsMCwwLDAsNi44NS01LjU2LDcuNCw3LjQsMCwwLDEtMi4yNC02LjY5QTcsNywwLDEsMCwxOCwxN1pNMTgsNWE1LDUsMCwxLDEtNSw1QTUsNSwwLDAsMSwxOCw1WiIgY2xh'@; put 'c3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1p'@; put 'LWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjYxLDI0LjUyYTE3LjE2LDE3LjE2LDAsMCwwLTI1LjIyLDAsMS41MSwxLjUxLDAsMCwwLS4zOSwxdjZBMS41LDEuNSwwLDAsMCw2LjUsMzNoMjNBMS41LDEuNSwwLDAsMCwzMSwzMS41di02QTEuNTEsMS41MSwwLDAsMCwzMC42'@; put 'MSwyNC41MloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjEwIiByPSI3IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjYx'@; put 'LDI0LjUyYTE3LjE2LDE3LjE2LDAsMCwwLTI1LjIyLDAsMS41MSwxLjUxLDAsMCwwLS4zOSwxdjZBMS41LDEuNSwwLDAsMCw2LjUsMzNoMjNBMS41LDEuNSwwLDAsMCwzMSwzMS41di02QTEuNTEsMS41MSwwLDAsMCwzMC42MSwyNC41MloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBj'@; put 'bHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTdhNyw3LDAsMCwwLDQuNDUtMS42aC0uMjJBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlsMy4xNi01LjQ3QTcsNywwLDEsMCwxOCwxN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBj'@; put 'bHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEu'@; put 'MTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC42MSwyNC41MmExNy4xNiwxNy4xNiwwLDAsMC0yNS4yMiwwLDEuNTEsMS41MSwwLDAsMC0uMzksMXY2QTEu'@; put 'NSwxLjUsMCwwLDAsNi41LDMzaDIzQTEuNSwxLjUsMCwwLDAsMzEsMzEuNXYtNkExLjUxLDEuNTEsMCwwLDAsMzAuNjEsMjQuNTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxN2E3'@; put 'LDcsMCwwLDAsNi44NS01LjU2LDcuNCw3LjQsMCwwLDEtMi4yNC02LjY5QTcsNywwLDEsMCwxOCwxN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xh'@; put 'c3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksYi5DbHJTaGFwZUFuZ2xlPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjkuNTIsMjIu'@; put 'NTIsMTgsMTAuNiw2LjQ4LDIyLjUyYTEuNywxLjcsMCwwLDAsMi40NSwyLjM2TDE4LDE1LjQ5bDkuMDgsOS4zOWExLjcsMS43LDAsMCwwLDIuNDUtMi4zNloiLz4nKSxiLkNsclNoYXBlRm9sZGVyPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0xIiBkPSJNMzAsOUgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDMwLDlabTAsMjBINlYxM2g3LjMxYTIsMiwwLDAsMCwyLTJINlY3aDYuNDls'@; put 'Mi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFIMzBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzAsMTMuNVYyOUg2VjEzaDcuMzFhMiwyLDAsMCwwLDItMkg2VjdoNi40OWwy'@; put 'LjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWg4LjUxYTcuNSw3LjUsMCwwLDEtMS4yOS0ySDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxMy4yMkE3LjQ5LDcuNDksMCwwLDEsMzAsMTMu'@; put 'NVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzAsMTUuNFYyOUg2VjEzaDcuMzFhMiwyLDAsMCwwLDItMkg2VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWgyLjczQTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTYuNDJMMTQu'@; put 'MTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE1LjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0'@; put 'ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFz'@; put 'cz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzAsOUgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDMwLDlaTTYsMTFWN2g2LjQ5bDIuNzIs'@; put 'NFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjIuMjMsMTUuNEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwxOS41Niw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5'@; put 'LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxNS40Wk02LDExVjdoNi40OWwyLjcyLDRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHIt'@; put 'aS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHIt'@; put 'aS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzAsMTMuNUE3LjUsNy41LDAsMCwxLDIzLjEzLDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEz'@; put 'LjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41Wk02LDExVjdoNi40OWwyLjcyLDRaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIv'@; put 'PicpLGIuQ2xyU2hhcGVGb2xkZXJPcGVuPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzUuMzIsMTMuNzRBMS43MSwxLjcxLDAsMCwwLDMzLjg3LDEzSDExLjE3YTIuNTksMi41OSwwLDAsMC0yLjI1LDEuNTIs'@; put 'MSwxLDAsMCwwLDAsLjE0TDYsMjVWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgxLjQxSDMyYTIsMiwwLDAsMC0yLTJIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjkuNjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAs'@; put 'MCwwLDEtLjcybDQuMTktMTUuMUExLjY0LDEuNjQsMCwwLDAsMzUuMzIsMTMuNzRaTTI5LjU1LDI5SDYuOWwzLjg4LTEzLjgxYS42Ni42NiwwLDAsMSwuMzgtLjI0SDMzLjQ5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTM1LjMyLDEzLjc0QTEuNzEsMS43MSwwLDAsMCwzMy44NywxM0gxMS4xN2EyLjU5LDIuNTksMCwwLDAtMi4yNSwxLjUyLDEsMSwwLDAsMCwwLC4xNEw2LDI1VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWg4LjUyYTcuNDksNy40OSww'@; put 'LDAsMS0xLjI5LTJIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjkuNjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMUExLjY0LDEuNjQsMCwwLDAsMzUuMzIsMTMuNzRaTTI5LjU1LDI5SDYu'@; put 'OWwzLjg4LTEzLjgxYS42Ni42NiwwLDAsMSwuMzgtLjI0SDMzLjQ5WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4g'@; put 'ICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMy42OCwxNS40aC0uM0wyOS41NSwyOUg2LjlsMy44OC0xMy44MWEuNjYuNjYsMCwwLDEsLjM4LS4yNGg5LjQyQTMuNjcsMy42NywwLDAs'@; put 'MSwxOSwxMy41NmEzLjYzLDMuNjMsMCwwLDEtLjI2LS41NkgxMS4xN2EyLjU5LDIuNTksMCwwLDAtMi4yNSwxLjUyLDEsMSwwLDAsMCwwLC4xNEw2LDI1VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWgyLjczQTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTYuNDJM'@; put 'MTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjkuNjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMWExLjY4LDEuNjgsMCwwLDAsLjA3LS4zMkEzLjY3LDMuNjcsMCwwLDEsMzMuNjgsMTUuNFoiLz5cbiAg'@; put 'ICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwz'@; put 'NC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNS4zMiwxMy43NEExLjcxLDEuNzEsMCwwLDAsMzMuODcsMTNIMTEuMTdhMi41OSwy'@; put 'LjU5LDAsMCwwLTIuMjUsMS41MiwxLDEsMCwwLDAsMCwuMTRMNiwyNVY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFIMzJhMiwyLDAsMCwwLTItMkgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAs'@; put 'NS40MSwzMUgzMC4zNGExLDEsMCwwLDAsMS0uNzJsNC4xOS0xNS4xQTEuNjQsMS42NCwwLDAsMCwzNS4zMiwxMy43NFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMuNjgsMTUu'@; put 'NEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTksMTMuNTZhMy42MywzLjYzLDAsMCwxLS4yNi0uNTZIMTEuMTdhMi41OSwyLjU5LDAsMCwwLTIuMjUsMS41MiwxLDEsMCwwLDAsMCwuMTRMNiwyNVY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFoMi43M0EzLjY2LDMuNjYsMCwwLDEs'@; put 'MTksOS44OUwxOS41Niw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5LjY5QTEuMzcsMS4zNywwLDAsMCw1LjQxLDMxSDMwLjM0YTEsMSwwLDAsMCwxLS43Mmw0LjE5LTE1LjFhMS42OCwxLjY4LDAsMCwwLC4wNy0uMzJBMy42NywzLjY3LDAs'@; put 'MCwxLDMzLjY4LDE1LjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4'@; put 'QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzUuMzIsMTMuNzRBMS43'@; put 'MSwxLjcxLDAsMCwwLDMzLjg3LDEzSDExLjE3YTIuNTksMi41OSwwLDAsMC0yLjI1LDEuNTIsMSwxLDAsMCwwLDAsLjE0TDYsMjVWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgxLjQxaDguNTJhNy40OSw3LjQ5LDAsMCwxLTEuMzEtMkgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwx'@; put 'Mi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40MSwzMUgzMC4zNGExLDEsMCwwLDAsMS0uNzJsNC4xOS0xNS4xQTEuNjQsMS42NCwwLDAsMCwzNS4zMiwxMy43NFoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFk'@; put 'Z2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+JyksYi5DbHJTaGFwZUJlbGw9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMi41MSwyNy44'@; put 'M0ExNC40LDE0LjQsMCwwLDEsMzAsMjQuOWExMi42MywxMi42MywwLDAsMS0xLjM1LTQuODFWMTUuMTVBMTAuODEsMTAuODEsMCwwLDAsMTkuMjEsNC40VjMuMTFhMS4zMywxLjMzLDAsMSwwLTIuNjcsMFY0LjQyQTEwLjgxLDEwLjgxLDAsMCwwLDcuMjEsMTUuMTV2NC45NEExMi42MywxMi42'@; put 'MywwLDAsMSw1Ljg2LDI0LjlhMTQuNCwxNC40LDAsMCwxLTIuNDcsMi45MywxLDEsMCwwLDAtLjM0Ljc1djEuMzZhMSwxLDAsMCwwLDEsMWgyNy44YTEsMSwwLDAsMCwxLTFWMjguNThBMSwxLDAsMCwwLDMyLjUxLDI3LjgzWk01LjEzLDI4Ljk0YTE2LjE3LDE2LjE3LDAsMCwwLDIuNDQtMywx'@; put 'NC4yNCwxNC4yNCwwLDAsMCwxLjY1LTUuODVWMTUuMTVhOC43NCw4Ljc0LDAsMSwxLDE3LjQ3LDB2NC45NGExNC4yNCwxNC4yNCwwLDAsMCwxLjY1LDUuODUsMTYuMTcsMTYuMTcsMCwwLDAsMi40NCwzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMzQuMjhBMi42NywyLjY3LDAsMCwwLDIwLjU4LDMySDE1LjMyQTIuNjcsMi42NywwLDAsMCwxOCwzNC4yOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0x'@; put 'LS1iYWRnZWQiIGQ9Ik0xOCwzNC4yOEEyLjY3LDIuNjcsMCwwLDAsMjAuNTgsMzJIMTUuMzJBMi42NywyLjY3LDAsMCwwLDE4LDM0LjI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIg'@; put 'ZD0iTTMyLjUxLDI3LjgzQTE0LjQsMTQuNCwwLDAsMSwzMCwyNC45YTEyLjYzLDEyLjYzLDAsMCwxLTEuMzUtNC44MVYxNS4xNWExMC45MiwxMC45MiwwLDAsMC0uMTYtMS43OSw3LjQ0LDcuNDQsMCwwLDEtMi4yNC0uODQsOC44OSw4Ljg5LDAsMCwxLC40LDIuNjR2NC45NGExNC4yNCwxNC4y'@; put 'NCwwLDAsMCwxLjY1LDUuODUsMTYuMTcsMTYuMTcsMCwwLDAsMi40NCwzSDUuMTNhMTYuMTcsMTYuMTcsMCwwLDAsMi40NC0zLDE0LjI0LDE0LjI0LDAsMCwwLDEuNjUtNS44NVYxNS4xNUE4LjgsOC44LDAsMCwxLDE4LDYuMzFhOC42MSw4LjYxLDAsMCwxLDQuNzYsMS40NEE3LjQ5LDcuNDks'@; put 'MCwwLDEsMjIuNSw2YzAtLjIxLDAtLjQyLDAtLjYzYTEwLjU4LDEwLjU4LDAsMCwwLTMuMzItMVYzLjExYTEuMzMsMS4zMywwLDEsMC0yLjY3LDBWNC40MkExMC44MSwxMC44MSwwLDAsMCw3LjIxLDE1LjE1djQuOTRBMTIuNjMsMTIuNjMsMCwwLDEsNS44NiwyNC45YTE0LjQsMTQuNCwwLDAs'@; put 'MS0yLjQ3LDIuOTMsMSwxLDAsMCwwLS4zNC43NXYxLjM2YTEsMSwwLDAsMCwxLDFoMjcuOGExLDEsMCwwLDAsMS0xVjI4LjU4QTEsMSwwLDAsMCwzMi41MSwyNy44M1oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTEtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi44NSwyOC4xM2wtLjM0LS4zQTE0LjM3LDE0LjM3LDAsMCwxLDMwLDI0Ljlh'@; put 'MTIuNjMsMTIuNjMsMCwwLDEtMS4zNS00LjgxVjE1LjE1QTEwLjgxLDEwLjgxLDAsMCwwLDE5LjIxLDQuNFYzLjExYTEuMzMsMS4zMywwLDEsMC0yLjY3LDBWNC40MkExMC44MSwxMC44MSwwLDAsMCw3LjIxLDE1LjE1djQuOTRBMTIuNjMsMTIuNjMsMCwwLDEsNS44NiwyNC45YTE0LjQsMTQu'@; put 'NCwwLDAsMS0yLjQ3LDIuOTNsLS4zNC4zdjIuODJIMzIuODVaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTE1LjMyLDMyYTIuNjUsMi42NSwwLDAsMCw1LjI1LDBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGgg'@; put 'Y2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xOCwzNC4yOEEyLjY3LDIuNjcsMCwwLDAsMjAuNTgsMzJIMTUuMzJBMi42NywyLjY3LDAsMCwwLDE4LDM0LjI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1z'@; put 'b2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzIuODUsMjguMTNsLS4zNC0uM0ExNC4zNywxNC4zNywwLDAsMSwzMCwyNC45YTEyLjYzLDEyLjYzLDAsMCwxLTEuMzUtNC44MVYxNS4xNWExMC45MiwxMC45MiwwLDAsMC0uMTYtMS43OUE3LjUsNy41LDAsMCwx'@; put 'LDIyLjUsNmMwLS4yMSwwLS40MiwwLS42M2ExMC41NywxMC41NywwLDAsMC0zLjMyLTFWMy4xMWExLjMzLDEuMzMsMCwxLDAtMi42NywwVjQuNDJBMTAuODEsMTAuODEsMCwwLDAsNy4yMSwxNS4xNXY0Ljk0QTEyLjYzLDEyLjYzLDAsMCwxLDUuODYsMjQuOWExNC40LDE0LjQsMCwwLDEtMi40'@; put 'NywyLjkzbC0uMzQuM3YyLjgySDMyLjg1WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxiLkNsclNoYXBlSW1hZ2U9KDAs'@; put 'cC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwzMiw0Wk00LDMwVjZIMzJWMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAg'@; put 'ICAgICAgPHBhdGggZD0iTTguOTIsMTRhMywzLDAsMSwwLTMtM0EzLDMsMCwwLDAsOC45MiwxNFptMC00LjZBMS42LDEuNiwwLDEsMSw3LjMzLDExLDEuNiwxLjYsMCwwLDEsOC45Miw5LjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAg'@; put 'ICAgIDxwYXRoIGQ9Ik0yMi43OCwxNS4zN2wtNS40LDUuNC00LTRhMSwxLDAsMCwwLTEuNDEsMEw1LjkyLDIyLjl2Mi44M2w2Ljc5LTYuNzlMMTYsMjIuMThsLTMuNzUsMy43NUgxNWw4LjQ1LTguNDVMMzAsMjRWMjEuMThsLTUuODEtNS44MUExLDEsMCwwLDAsMjIuNzgsMTUuMzdaIiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLjkzLDExYTMsMywwLDEsMC0zLDNBMywzLDAsMCwwLDExLjkzLDExWm0tNC42LDBhMS42LDEuNiwwLDEsMSwxLjYsMS42QTEuNiwxLjYsMCwwLDEsNy4zMywxMVoiIGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3LjM4LDIwLjc3bC00LTRhMSwxLDAsMCwwLTEuNDEsMEw1LjkyLDIyLjl2Mi44M2w2Ljc5LTYuNzlMMTYsMjIuMThsLTMuNzUsMy43NUgxNWw4LjQ1'@; put 'LTguNDVMMzAsMjRWMjEuMThsLTUuODEtNS44MWExLDEsMCwwLDAtMS40MSwwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJWMzBINFY2SDIyLjVhNy40OSw3LjQ5LDAs'@; put 'MCwxLC4yOC0ySDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAg'@; put 'ICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJI'@; put 'MzJhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwzMiw0Wk04LjkyLDhhMywzLDAsMSwxLTMsM0EzLDMsMCwwLDEsOC45Miw4Wk02LDI3VjIyLjlsNi02LjA4YTEsMSwwLDAsMSwxLjQxLDBMMTYsMTkuMzUsOC4zMiwyN1ptMjQsMEgxMS4xNWw2LjIzLTYuMjMsNS40LTUuNGExLDEsMCwwLDEs'@; put 'MS40MSwwTDMwLDIxLjE4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVBNy40OCw3LjQ4LDAsMCwxLDIyLjc4LDRINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYx'@; put 'Mi4zNEE3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNVpNOC45Miw4YTMsMywwLDEsMS0zLDNBMywzLDAsMCwxLDguOTIsOFpNNiwyN1YyMi45bDYtNi4wOGExLDEsMCwwLDEsMS40MSwwTDE2LDE5LjM1LDguMzIsMjdabTI0LDBIMTEuMTVsNi4yMy02LjIzLDUuNC01LjRhMSwxLDAsMCwxLDEuNDEs'@; put 'MEwzMCwyMS4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2Vk'@; put 'IGNsci1pLWJhZGdlIi8+JyksYi5DbHJTaGFwZUNsb3VkPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjcuMTQsMzNIMTAuNjJDNS42NywzMywxLDI4LjE5LDEsMjMuMWExMCwxMCwwLDAsMSw4LTkuNzUsMTAu'@; put 'MTksMTAuMTksMCwwLDEsMjAuMzMsMS4wNkExMC4wNywxMC4wNywwLDAsMSwyOSwxNi42NmE4LjI5LDguMjksMCwwLDEsNiw4QzM1LDI5LjEsMzEuMzMsMzMsMjcuMTQsMzNaTTE5LjA5LDYuMjNhOC4yNCw4LjI0LDAsMCwwLTguMTksOGwwLC44Ny0uODYuMUE3Ljk0LDcuOTQsMCwwLDAsMywy'@; put 'My4xYzAsNCwzLjc3LDcuOSw3LjYyLDcuOUgyNy4xNEMzMC4yMSwzMSwzMywyOCwzMywyNC42NWE2LjMxLDYuMzEsMCwwLDAtNS4zNy02LjI2bC0xLjE4LS4xOC4zOS0xLjEzQTguMTgsOC4xOCwwLDAsMCwxOS4wOSw2LjIzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTI5LDE2LjY2YTEwLjA3LDEwLjA3LDAsMCwwLC4yNS0yLjI0YzAtLjMzLDAtLjY1LDAtMWE3LjQ1LDcuNDUsMCwwLDEtMi4xLS41NCw4LDgsMCwwLDEtLjMsNC4xNmwtLjM5LDEuMTMsMS4xOC4xOGE2'@; put 'LjMxLDYuMzEsMCwwLDEsNS4zNyw2LjI2QzMyLjk1LDI4LDMwLjE2LDMxLDI3LjA5LDMxSDEwLjU3Yy0zLjg0LDAtNy42Mi0zLjkxLTcuNjItNy45YTcuOTQsNy45NCwwLDAsMSw3LTcuODlsLjg2LS4xLDAtLjg3YTguMjQsOC4yNCwwLDAsMSw4LjE5LThBOC4xMyw4LjEzLDAsMCwxLDIyLjU4'@; put 'LDdhNy41Myw3LjUzLDAsMCwxLS4wOC0xLDcuNTEsNy41MSwwLDAsMSwuMDktMS4xMkExMC4xMywxMC4xMywwLDAsMCwxOSw0LjIzLDEwLjI2LDEwLjI2LDAsMCwwLDguOTEsMTMuMzZhMTAsMTAsMCwwLDAtOCw5Ljc1YzAsNS4wOSw0LjY3LDkuOSw5LjYyLDkuOUgyNy4wOWM0LjE5LDAsNy44'@; put 'Ni0zLjksNy44Ni04LjM1QTguMjksOC4yOSwwLDAsMCwyOSwxNi42NloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxu'@; put 'ICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjksMTYuNjZhMTAuMTQsMTAuMTQsMCwwLDAsLjItMS4zaC0yYTguMjgsOC4yOCwwLDAsMS0uMzcsMS43MmwtLjM5LDEuMTMsMS4xOC4x'@; put 'OGE2LjMxLDYuMzEsMCwwLDEsNS4zNyw2LjI2QzMyLjk1LDI4LDMwLjE2LDMxLDI3LjA5LDMxSDEwLjU3Yy0zLjg0LDAtNy42Mi0zLjkxLTcuNjItNy45YTcuOTQsNy45NCwwLDAsMSw3LTcuODlsLjg2LS4xLDAtLjg3QTguMTYsOC4xNiwwLDAsMSwyMSw2LjQ3bDEtMS44QTEwLjE5LDEwLjE5'@; put 'LDAsMCwwLDguOTEsMTMuMzZhMTAsMTAsMCwwLDAtOCw5Ljc1YzAsNS4wOSw0LjY3LDkuOSw5LjYyLDkuOUgyNy4wOWM0LjE5LDAsNy44Ni0zLjksNy44Ni04LjM1QTguMjksOC4yOSwwLDAsMCwyOSwxNi42NloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44'@; put 'NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yOSwxNi42NmExMC4wNywxMC4wNywwLDAsMCwuMjUtMi4yNEExMC4xOSwxMC4xOSwwLDAsMCw4LjkxLDEzLjM2LDEwLDEwLDAsMCwwLDEsMjMuMUMxLDI4'@; put 'LjE5LDUuNjIsMzMsMTAuNTcsMzNIMjcuMDlDMzEuMjgsMzMsMzUsMjkuMSwzNSwyNC42NUE4LjI5LDguMjksMCwwLDAsMjksMTYuNjZaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0y'@; put 'OSwxNi42NmExMC4wNywxMC4wNywwLDAsMCwuMjUtMi4yNGMwLS4zMywwLS42NSwwLTFhNy40NCw3LjQ0LDAsMCwxLTYuNi04LjU4QTEwLjEzLDEwLjEzLDAsMCwwLDE5LDQuMjMsMTAuMjYsMTAuMjYsMCwwLDAsOC45MSwxMy4zNiwxMCwxMCwwLDAsMCwxLDIzLjFDMSwyOC4xOSw1LjYyLDMz'@; put 'LDEwLjU3LDMzSDI3LjA5QzMxLjI4LDMzLDM1LDI5LjEsMzUsMjQuNjVBOC4yOSw4LjI5LDAsMCwwLDI5LDE2LjY2WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4'@; put 'PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjksMTYuNjZhMTAuMTUsMTAuMTUsMCwwLDAsLjItMS4yNmgtN0EzLjY4LDMuNjgsMCwwLDEsMTksOS44'@; put 'OWwzLTUuMjFBMTAuMTksMTAuMTksMCwwLDAsOC45MSwxMy4zNiwxMCwxMCwwLDAsMCwxLDIzLjFDMSwyOC4xOSw1LjYyLDMzLDEwLjU3LDMzSDI3LjA5QzMxLjI4LDMzLDM1LDI5LjEsMzUsMjQuNjVBOC4yOSw4LjI5LDAsMCwwLDI5LDE2LjY2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRo'@; put 'IGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4'@; put 'LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz4nKSxiLkNsclNoYXBlRWxsaXBzaXNIb3Jpem9udGFsPSgwLHAuY2xySWNvblNWRykoJzxjaXJjbGUgY3g9IjMxLjEiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAg'@; put 'ICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSI0LjkiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMxLjEiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIyLjkiIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjQuOSIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIg'@; put 'Lz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxiLkNsclNoYXBlRWxsaXBzaXNWZXJ0aWNhbD0oMCxwLmNsckljb25TVkcp'@; put 'KCc8Y2lyY2xlIGN4PSIxOCIgY3k9IjQuOSIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTIiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjMxLjEiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjQuOSIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxj'@; put 'aXJjbGUgY3g9IjE4IiBjeT0iMzEuMSIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksYi5DbHJTaGFwZUZpbHRlckdyaWQ9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNSwyNS44NmwyLDFWMjAuMjdhMSwxLDAs'@; put 'MCwwLS4yOS0uN0wxMC4yMywxM0gyNS43OWwtNi40Nyw2LjU3YTEsMSwwLDAsMC0uMjkuN0wxOSwyOGwyLDFWMjAuNjhMMjcuNTgsMTRBMS40NiwxLjQ2LDAsMCwwLDI4LDEzVjEyYTEsMSwwLDAsMC0xLTFIOWExLDEsMCwwLDAtMSwxdjFhMS40NiwxLjQ2LDAsMCwwLC40MiwxTDE1LDIwLjY4'@; put 'WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik04LDExdjEuMTJhLjUuNSwwLDAsMCwuMTUuMzVsNy4yOCw3LjM2YS41LjUsMCwwLDEsLjE1LjM1djYuODlhLjUuNSwwLDAsMCwuMjguNDVsMy45NSwxLjQxYS41LjUs'@; put 'MCwwLDAsLjcyLS40NWwwLTguMzlhLjU0LjU0LDAsMCwxLC4xOC0uMzVsNy4xMi03LjI1YS41LjUsMCwwLDAsLjE1LS4zNVYxMVoiLz4nKSxiLkNsclNoYXBlRmlsdGVyR3JpZENpcmNsZT0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l'@; put 'LXBhdGgtMSIgZD0iTTE1LDI1Ljg2bDIsMVYyMC4yN2ExLDEsMCwwLDAtLjI5LS43TDEwLjIzLDEzSDI1Ljc5bC02LjQ3LDYuNTdhMSwxLDAsMCwwLS4yOS43TDE5LDI4bDIsMVYyMC42OEwyNy41OCwxNEExLjQ2LDEuNDYsMCwwLDAsMjgsMTNWMTJhMSwxLDAsMCwwLTEtMUg5YTEsMSwwLDAs'@; put 'MC0xLDF2MWExLjQ2LDEuNDYsMCwwLDAsLjQyLDFMMTUsMjAuNjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQs'@; put 'MCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwx'@; put 'NCwxNCwwLDAsMSwxOCwzMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNOCwxMXYxLjEyYS41LjUsMCwwLDAsLjE1LjM1bDcuMjgsNy4zNmEuNS41LDAsMCwxLC4xNS4zNXY2Ljg5YS41LjUsMCwwLDAsLjI4LjQ1'@; put 'bDMuOTUsMS40MWEuNS41LDAsMCwwLC43Mi0uNDVsMC04LjM5YS41NC41NCwwLDAsMSwuMTgtLjM1bDcuMTItNy4yNWEuNS41LDAsMCwwLC4xNS0uMzVWMTFaIi8+JyksYi5DbHJTaGFwZVZtQnVnPSgwLHAuY2xySWNvblNWRykoJzxyZWN0IHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgcng9IjMi'@; put 'IGZpbGw9IiNmZmZmZmYiIG9wYWNpdHk9IjAuMTUiIHN0eWxlPSJpc29sYXRpb246aXNvbGF0ZSIvPjxwYXRoIGQ9Ik0zLjc5LDE0LjgzYTEuMDksMS4wOSwwLDAsMC0xLjQ3LS41NiwxLjA5LDEuMDksMCwwLDAtLjU0LDEuNDlsMi40Nyw1LjRjLjM5Ljg1LjgsMS4yOSwxLjU3LDEuMjlTNywy'@; put 'Miw3LjM5LDIxLjE2bDIuMTctNC43N2EuMzMuMzMsMCwwLDEsLjMxLS4yLjM1LjM1LDAsMCwxLC4zNS4zNXY0LjYxYTEuMTUsMS4xNSwwLDAsMCwxLjE0LDEuMywxLjE3LDEuMTcsMCwwLDAsMS4xNy0xLjNWMTcuMzhhMS4xNSwxLjE1LDAsMCwxLDEuMjItMS4yLDEuMTMsMS4xMywwLDAsMSwx'@; put 'LjE4LDEuMnYzLjc3YTEuMTcsMS4xNywwLDEsMCwyLjMyLDBWMTcuMzhhMS4xNSwxLjE1LDAsMCwxLDEuMjItMS4yLDEuMTMsMS4xMywwLDAsMSwxLjE4LDEuMnYzLjc3YTEuMTYsMS4xNiwwLDEsMCwyLjMxLDBWMTYuODZhMi42OSwyLjY5LDAsMCwwLTIuNzgtMi42OSwzLjU3LDMuNTcsMCww'@; put 'LDAtMi40NywxLjA1LDIuNzUsMi43NSwwLDAsMC0yLjM4LTEuMDVBMy45MywzLjkzLDAsMCwwLDEyLDE1LjIyYTIuODIsMi44MiwwLDAsMC0yLjA4LTEuMDVBMi41NSwyLjU1LDAsMCwwLDcuNCwxNS44OUw1LjgyLDE5LjYzbC0yLTQuOCIgZmlsbD0iI2ZmZmZmZiIvPjxwYXRoIGQ9Ik0zMywx'@; put 'NC4xOEExLjE0LDEuMTQsMCwwLDAsMzEuOSwxNWwtMS4xOSwzLjczTDI5LjUsMTUuMDVhMS4xOCwxLjE4LDAsMCwwLTEuMTUtLjg3aC0uMWExLjIsMS4yLDAsMCwwLTEuMTUuODdsLTEuMTksMy43MS0xLjE4LTMuNzFhMS4xNSwxLjE1LDAsMCwwLTEuMTEtLjg3LDEuMDgsMS4wOCwwLDAsMC0x'@; put 'LjEyLDEuMDcsMS42OCwxLjY4LDAsMCwwLC4xLjU0bDIsNS43YTEuMjcsMS4yNywwLDAsMCwxLjI3LDEsMS4yNCwxLjI0LDAsMCwwLDEuMi0uOTNsMS4yLTMuNjQsMS4yLDMuNjRhMS4yNSwxLjI1LDAsMCwwLDEuMjYuOTNBMS4yNywxLjI3LDAsMCwwLDMyLDIxLjVMMzQsMTUuNzNhMS43Nywx'@; put 'Ljc3LDAsMCwwLC4wOC0uNDhBMS4wNywxLjA3LDAsMCwwLDMzLDE0LjE4WiIgZmlsbD0iI2ZmZmZmZiIvPicpLGIuQ2xyU2hhcGVTZWFyY2g9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNi4zMyw1LjA1QTEw'@; put 'Ljk1LDEwLjk1LDAsMSwxLDUuMzksMTYsMTEsMTEsMCwwLDEsMTYuMzMsNS4wNW0wLTIuMDVhMTMsMTMsMCwxLDAsMTMsMTMsMTMsMTMsMCwwLDAtMTMtMTNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0z'@; put 'NSwzMy4yOWwtNy4zNy03LjQyLTEuNDIsMS40MSw3LjM3LDcuNDJBMSwxLDAsMSwwLDM1LDMzLjI5WiIvPicpLGIuQ2xyU2hhcGVWaWV3Q29sdW1ucz0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMxLDVINUEy'@; put 'LDIsMCwwLDAsMyw3VjI5YTIsMiwwLDAsMCwyLDJIMzFhMiwyLDAsMCwwLDItMlY3QTIsMiwwLDAsMCwzMSw1Wk0xMywyOUg1VjdoOFptMTAsMEgxNVY3aDhaIi8+JyksYi5DbHJTaGFwZUFuZ2xlRG91YmxlPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjksMTkuNDFhMSwxLDAsMCwxLS43MS0uMjlMMTgsOC44Myw3LjcxLDE5LjEyYTEsMSwwLDAsMS0xLjQxLTEuNDFMMTgsNiwyOS43MSwxNy43MUExLDEsMCwwLDEsMjksMTkuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yOSwzMC40MWExLDEsMCwwLDEtLjcxLS4yOUwxOCwxOS44Myw3LjcxLDMwLjEyYTEsMSwwLDAsMS0xLjQxLTEuNDFMMTgsMTcsMjkuNzEsMjguNzFBMSwxLDAsMCwxLDI5LDMwLjQxWiIvPicpLGIuQ2xyU2hhcGVDYWxlbmRhcj0o'@; put 'MCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLjI1LDZIMjlWOGgzVjMwSDRWOEg3VjZIMy43NUExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwx'@; put 'Ljc4LDAsMCwwLDM0LDMwLjE5VjcuODFBMS43OCwxLjc4LDAsMCwwLDMyLjI1LDZaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIHg9IjgiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAg'@; put 'ICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4PSIyMCIg'@; put 'eT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgeD0iMjYiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIHg9IjgiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHg9IjE0IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdo'@; put 'dD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiB4PSIyMCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtOSIgeD0iMjYiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIiB4PSI4IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAg'@; put 'ICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMSIgeD0iMTQiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEyIiB4PSIyMCIg'@; put 'eT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTMiIHg9IjI2IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNCIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNSIg'@; put 'ZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFWM2ExLDEsMCwwLDAtMiwwVjlBMSwxLDAsMCwwLDI2LDEwWiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNiIgeD0iMTMiIHk9IjYiIHdpZHRoPSIxMCIgaGVpZ2h0PSIyIi8+'@; put 'XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzIsMTMuMjJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJo'@; put 'MjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgeD0iOCIgeT0iMTQiIHdpZHRo'@; put 'PSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgeD0iMjAiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0t'@; put 'YmFkZ2VkIiB4PSIyNiIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIHg9IjgiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4g'@; put 'ICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIiB4PSIxNCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk'@; put 'Z2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1iYWRnZWQiIHg9IjIwIiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWJhZGdlZCIgeD0iMjYiIHk9IjE5'@; put 'IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTAtLWJhZGdlZCIgeD0iOCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVj'@; put 'dCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYmFkZ2VkIiB4PSIxNCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC0xMi0tYmFkZ2VkIiB4PSIyMCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMy0tYmFkZ2VkIiB4PSIyNiIgeT0iMjQiIHdpZHRoPSIyIiBoZWln'@; put 'aHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xNC0tYmFkZ2VkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAg'@; put 'ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTUtLWJhZGdlZCIgZD0iTTIyLjUsNkgxM1Y4aDkuNzhBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'LS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE2LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMz'@; put 'LjY4LDE1LjRIMzJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUt'@; put 'LWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjgiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIHg9IjE0'@; put 'IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiB4PSI4IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAg'@; put 'ICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIiB4PSIxNCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIgeD0iMjAiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWFsZXJ0ZWQiIHg9IjI2IiB5PSIxOSIgd2lk'@; put 'dGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC04LS1hbGVydGVkIiB4PSI4IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC05LS1hbGVydGVkIiB4PSIxNCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtMTAtLWFsZXJ0ZWQiIHg9IjIwIiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYWxlcnRlZCIgeD0iMjYiIHk9IjI0IiB3aWR0aD0iMiIgaGVp'@; put 'Z2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEyLS1hbGVydGVkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+PHBvbHlnb24g'@; put 'cG9pbnRzPSIyMS4yOSA2IDEzIDYgMTMgOCAyMC4xNCA4IDIxLjI5IDYiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDEx'@; put 'QTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJN'@; put 'MzIuMjUsNmgtNFY5YTIuMiwyLjIsMCwxLDEtNC40LDBWNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWNy44MUExLjc4LDEuNzgs'@; put 'MCwwLDAsMzIuMjUsNlpNMTAsMjZIOFYyNGgyWm0wLTVIOFYxOWgyWm0wLTVIOFYxNGgyWm02LDEwSDE0VjI0aDJabTAtNUgxNFYxOWgyWm0wLTVIMTRWMTRoMlptNiwxMEgyMFYyNGgyWm0wLTVIMjBWMTloMlptMC01SDIwVjE0aDJabTYsMTBIMjZWMjRoMlptMC01SDI2VjE5aDJabTAtNUgy'@; put 'NlYxNGgyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0i'@; put 'Y2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMjYsMTBhMSwxLDAsMCwwLDEtMVYzYTEsMSwwLDAsMC0yLDBWOUExLDEsMCwwLDAsMjYsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1i'@; put 'YWRnZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTMwLDEzLjVBNy41LDcu'@; put 'NSwwLDAsMSwyMi41LDZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMCwxMy41Wk0xMCwy'@; put 'Nkg4VjI0aDJabTAtNUg4VjE5aDJabTAtNUg4VjE0aDJabTYsMTBIMTRWMjRoMlptMC01SDE0VjE5aDJabTAtNUgxNFYxNGgyWm02LDEwSDIwVjI0aDJabTAtNUgyMFYxOWgyWm0wLTVIMjBWMTRoMlptNiwxMEgyNlYyNGgyWm0wLTVIMjZWMTloMlptMC01SDI2VjE0aDJaIi8+XG4gICAgICAg'@; put 'ICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1z'@; put 'b2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMy42OCwxNS40SDIyLjIzQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDIxLjI5LDZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVB'@; put 'MS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjE1LjM4Wk0xMCwyNkg4VjI0aDJabTAtNUg4VjE5aDJabTAtNUg4VjE0aDJabTYsMTBIMTRWMjRoMlptMC01SDE0VjE5aDJabTAtNUgxNFYxNGgyWm02LDEwSDIwVjI0aDJabTAtNUgyMFYxOWgyWm02LDVIMjZWMjRoMlptMC01SDI2VjE5aDJaIi8+'@; put 'XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRo'@; put 'IGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4'@; put 'LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz4nKSxiLkNsclNoYXBlRXZlbnQ9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNi4xNywyNS44NiwxMC44MSwyMC41YTEsMSwwLDAsMSwxLjQxLTEuNDFMMTYuMTcs'@; put 'MjNsOC42NC04LjY0YTEsMSwwLDAsMSwxLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMi4yNSw2SDI5VjhoM1YzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4x'@; put 'OUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVY3LjgxQTEuNzgsMS43OCwwLDAsMCwzMi4yNSw2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTAsMTBh'@; put 'MSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0yNiwxMGExLDEsMCwwLDAsMS0xVjNhMSwxLDAsMCwwLTIsMFY5QTEsMSww'@; put 'LDAsMCwyNiwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgeD0iMTMiIHk9IjYiIHdpZHRoPSIxMCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJh'@; put 'ZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTAuODEsMjAuNWw1LjM2LDUuMzZMMjYuMjIsMTUuODFhMSwxLDAsMCwwLTEuNDEtMS40MUwxNi4xNywyM2wtMy45NC0zLjk0YTEsMSwwLDAsMC0xLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl'@; put 'ZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzIsMTMuMjJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1LDAsMCwx'@; put 'LDMyLDEzLjIyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgZD0iTTIyLjUsNkgxM1Y4aDkuNzhBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNloiLz5cbiAgICAgICAgICAgICAgICA8Y2ly'@; put 'Y2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC0xLS1hbGVydGVkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9'@; put 'Ik0xMC44MSwyMC41bDUuMzYsNS4zNkwyNi4yMiwxNS44MWExLDEsMCwwLDAsLjIzLS40MUgyMy44TDE2LjE3LDIzbC0zLjk0LTMuOTRhMSwxLDAsMCwwLTEuNDEsMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgcG9pbnRzPSIyMS4yOSA2IDEzIDYgMTMgOCAyMC4xNCA4IDIxLjI5IDYiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1'@; put 'LjRIMzJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0'@; put 'ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoi'@; put 'Lz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNv'@; put 'bGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFWM2ExLDEsMCwwLDAtMiwwVjlBMSwxLDAsMCwwLDI2LDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0zMi4yNSw2aC00Vjlh'@; put 'Mi4yLDIuMiwwLDAsMS00LjQsMFY2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5VjZoLTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVY3LjgxQTEuNzgsMS43OCwwLDAsMCwzMi4yNSw2'@; put 'Wk0yNS45NCwxNi41OGwtOS42Nyw5LjY3TDExLDIwLjk0QTEuMzYsMS4zNiwwLDAsMSwxMi45LDE5bDMuMzgsMy4zOEwyNCwxNC42NmExLjM2LDEuMzYsMCwxLDEsMS45MywxLjkzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1z'@; put 'b2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBk'@; put 'PSJNMzMuNjgsMTUuNEgyNi4zYTEuMzQsMS4zNCwwLDAsMS0uMzYsMS4xOGwtOS42Nyw5LjY3TDExLDIwLjk0QTEuMzYsMS4zNiwwLDAsMSwxMi45LDE5bDMuMzgsMy4zOCw3LTdoLTFBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjEuMjksNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2'@; put 'aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgt'@; put 'My0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxw'@; put 'YXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1i'@; put 'YWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMCwxMy41QTcuNSw3LjUsMCwwLDEsMjIuNSw2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5VjZoLTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43'@; put 'OCwwLDAsMCwzNCwzMC4xOVYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzAsMTMuNVptLTQuMDYsMy4wOC05LjY3LDkuNjdMMTEsMjAuOTRBMS4zNiwxLjM2LDAsMCwxLDEyLjksMTlsMy4zOCwzLjM4TDI0LDE0LjY2YTEuMzYsMS4zNiwwLDEsMSwxLjkzLDEuOTNaIi8+XG4gICAgICAgICAgICAg'@; put 'ICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLGIuQ2xyU2hhcGVFeWU9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjYyLDE3LjUzYy0zLjM3LTYu'@; put 'MjMtOS4yOC0xMC0xNS44Mi0xMFM1LjM0LDExLjMsMiwxNy41M0wxLjcyLDE4bC4yNi40OGMzLjM3LDYuMjMsOS4yOCwxMCwxNS44MiwxMHMxMi40Ni0zLjcyLDE1LjgyLTEwbC4yNi0uNDhaTTE3LjgsMjYuNDNDMTIuMTcsMjYuNDMsNywyMy4yOSw0LDE4YzMtNS4yOSw4LjE3LTguNDMsMTMu'@; put 'OC04LjQzUzI4LjU0LDEyLjcyLDMxLjU5LDE4QzI4LjU0LDIzLjI5LDIzLjQyLDI2LjQzLDE3LjgsMjYuNDNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjA5LDExLjE3QTYuODYsNi44NiwwLDEsMCwyNSwx'@; put 'OCw2Ljg2LDYuODYsMCwwLDAsMTguMDksMTEuMTdabTAsMTEuNzJBNC44Niw0Ljg2LDAsMSwxLDIzLDE4LDQuODcsNC44NywwLDAsMSwxOC4wOSwyMi44OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjIs'@; put 'MTcuNTNjLTMuMzctNi4yMy05LjI4LTEwLTE1LjgyLTEwUzUuMzQsMTEuMywyLDE3LjUzTDEuNzIsMThsLjI2LjQ4YzMuMzcsNi4yMyw5LjI4LDEwLDE1LjgyLDEwczEyLjQ2LTMuNzIsMTUuODItMTBsLjI2LS40OFpNMTcuOCwyNi40M0MxMi4xNywyNi40Myw3LDIzLjI5LDQsMThjMy01LjI5'@; put 'LDguMTctOC40MywxMy44LTguNDNTMjguNTQsMTIuNzIsMzEuNTksMThDMjguNTQsMjMuMjksMjMuNDIsMjYuNDMsMTcuOCwyNi40M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4LjA5IiBjeT0iMTguMDMiIHI9'@; put 'IjYuODYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz4nKSxiLkNsclNoYXBlRXllSGlkZT0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjUuMTksMjAuNEE2Ljc4LDYuNzgsMCwwLDAsMjUuNjIsMThhNi44Niw2Ljg2LDAsMCwwLTYuODYtNi44Niw2Ljc5LDYu'@; put 'NzksMCwwLDAtMi4zNy40M0wxOCwxMy4yM2E0Ljc4LDQuNzgsMCwwLDEsLjc0LS4wNkE0Ljg3LDQuODcsMCwwLDEsMjMuNjIsMThhNC43OSw0Ljc5LDAsMCwxLS4wNi43NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBk'@; put 'PSJNMzQuMjksMTcuNTNjLTMuMzctNi4yMy05LjI4LTEwLTE1LjgyLTEwYTE2LjgyLDE2LjgyLDAsMCwwLTUuMjQuODVMMTQuODQsMTBhMTQuNzgsMTQuNzgsMCwwLDEsMy42My0uNDdjNS42MywwLDEwLjc1LDMuMTQsMTMuOCw4LjQzYTE3Ljc1LDE3Ljc1LDAsMCwxLTQuMzcsNS4xbDEuNDIs'@; put 'MS40MmExOS45MywxOS45MywwLDAsMCw1LTZsLjI2LS40OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNC44Nyw1Ljc4bDQuNDYsNC40NmExOS41MiwxOS41MiwwLDAsMC02LjY5LDcuMjlMMi4zOCwxOGwuMjYu'@; put 'NDhjMy4zNyw2LjIzLDkuMjgsMTAsMTUuODIsMTBhMTYuOTMsMTYuOTMsMCwwLDAsNy4zNy0xLjY5bDUsNSwxLjc1LTEuNS0yNi0yNlptOS43NSw5Ljc1LDYuNjUsNi42NWE0LjgxLDQuODEsMCwwLDEtMi41LjcyQTQuODcsNC44NywwLDAsMSwxMy45LDE4LDQuODEsNC44MSwwLDAsMSwxNC42'@; put 'MiwxNS41M1ptLTEuNDUtMS40NWE2Ljg1LDYuODUsMCwwLDAsOS41NSw5LjU1bDEuNiwxLjZhMTQuOTEsMTQuOTEsMCwwLDEtNS44NiwxLjJjLTUuNjMsMC0xMC43NS0zLjE0LTEzLjgtOC40M2ExNy4yOSwxNy4yOSwwLDAsMSw2LjEyLTYuM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguMzcsMTEuMTdBNi43OSw2Ljc5LDAsMCwwLDE2LDExLjZsOC44LDguOEE2Ljc4LDYuNzgsMCwwLDAsMjUuMjMsMTgsNi44Niw2Ljg2LDAsMCwwLDE4LjM3LDExLjE3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p'@; put 'LXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTM0LjI5LDE3LjUzYy0zLjM3LTYuMjMtOS4yOC0xMC0xNS44Mi0xMGExNi44MiwxNi44MiwwLDAsMC01LjI0Ljg1TDE0Ljg0LDEwYTE0Ljc4LDE0Ljc4LDAsMCwxLDMuNjMtLjQ3YzUuNjMsMCwxMC43NSwzLjE0LDEzLjgs'@; put 'OC40M2ExNy43NSwxNy43NSwwLDAsMS00LjM3LDUuMWwxLjQyLDEuNDJhMTkuOTMsMTkuOTMsMCwwLDAsNS02bC4yNi0uNDhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNC44Nyw1Ljc4bDQuNDYsNC40NmExOS41Miwx'@; put 'OS41MiwwLDAsMC02LjY5LDcuMjlMMi4zOCwxOGwuMjYuNDhjMy4zNyw2LjIzLDkuMjgsMTAsMTUuODIsMTBhMTYuOTMsMTYuOTMsMCwwLDAsNy4zNy0xLjY5bDUsNSwxLjc1LTEuNS0yNi0yNlptOC4zLDguM2E2Ljg1LDYuODUsMCwwLDAsOS41NSw5LjU1bDEuNiwxLjZhMTQuOTEsMTQuOTEs'@; put 'MCwwLDEtNS44NiwxLjJjLTUuNjMsMC0xMC43NS0zLjE0LTEzLjgtOC40M2ExNy4yOSwxNy4yOSwwLDAsMSw2LjEyLTYuM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz4nKSxiLkNsclNoYXBlU3RlcEZvcndhcmQyPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9'@; put 'Ik03LjA4LDYuNTJhMS42OCwxLjY4LDAsMCwwLDAsMi40TDE2LjUxLDE4LDcuMTIsMjcuMDhhMS43LDEuNywwLDAsMCwyLjM2LDIuNDRoMEwyMS40LDE4LDkuNDgsNi40N0ExLjY5LDEuNjksMCwwLDAsNy4wOCw2LjUyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTEiIC8+PHBhdGggZD0iTTI2LjQ5LDVhMS43LDEuNywwLDAsMC0xLjcsMS43VjI5LjNhMS43LDEuNywwLDAsMCwzLjQsMFY2LjdBMS43LDEuNywwLDAsMCwyNi40OSw1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksYi5DbHJTaGFwZUFycm93PSgw'@; put 'LHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNy42NiwxNS42MSwxOCw2LDguMzQsMTUuNjFBMSwxLDAsMSwwLDkuNzUsMTdMMTcsOS44MVYyOC45NGExLDEsMCwxLDAsMiwwVjkuODFMMjYuMjUsMTdhMSwxLDAsMCwwLDEuNDEtMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0xIi8+JyksYi5Db3JlU2hhcGVzPXsidW5rbm93bi1zdGF0dXMiOmIuQ2xyU2hhcGVVbmtub3duU3RhdHVzLGhvbWU6Yi5DbHJTaGFwZUhvbWUsY29nOmIuQ2xyU2hhcGVDb2csY2hlY2s6Yi5DbHJTaGFwZUNoZWNrLHRpbWVzOmIuQ2xyU2hhcGVUaW1lcywiZXhjbGFtYXRp'@; put 'b24tdHJpYW5nbGUiOmIuQ2xyU2hhcGVFeGNsYW1hdGlvblRyaWFuZ2xlLCJleGNsYW1hdGlvbi1jaXJjbGUiOmIuQ2xyU2hhcGVFeGNsYW1hdGlvbkNpcmNsZSwiY2hlY2stY2lyY2xlIjpiLkNsclNoYXBlQ2hlY2tDaXJjbGUsImluZm8tY2lyY2xlIjpiLkNsclNoYXBlSW5mb0NpcmNsZSwi'@; put 'aW5mby1zdGFuZGFyZCI6Yi5DbHJTaGFwZUluZm9TdGFuZGFyZCwic3VjY2Vzcy1zdGFuZGFyZCI6Yi5DbHJTaGFwZVN1Y2Nlc3NTdGFuZGFyZCwiZXJyb3Itc3RhbmRhcmQiOmIuQ2xyU2hhcGVFcnJvclN0YW5kYXJkLCJ3YXJuaW5nLXN0YW5kYXJkIjpiLkNsclNoYXBlV2FybmluZ1N0YW5k'@; put 'YXJkLCJoZWxwLWluZm8iOmIuQ2xyU2hhcGVIZWxwSW5mbyxiYXJzOmIuQ2xyU2hhcGVCYXJzLHVzZXI6Yi5DbHJTaGFwZVVzZXIsYW5nbGU6Yi5DbHJTaGFwZUFuZ2xlLGZvbGRlcjpiLkNsclNoYXBlRm9sZGVyLCJmb2xkZXItb3BlbiI6Yi5DbHJTaGFwZUZvbGRlck9wZW4sYmVsbDpiLkNs'@; put 'clNoYXBlQmVsbCxpbWFnZTpiLkNsclNoYXBlSW1hZ2UsY2xvdWQ6Yi5DbHJTaGFwZUNsb3VkLCJlbGxpcHNpcy1ob3Jpem9udGFsIjpiLkNsclNoYXBlRWxsaXBzaXNIb3Jpem9udGFsLCJlbGxpcHNpcy12ZXJ0aWNhbCI6Yi5DbHJTaGFwZUVsbGlwc2lzVmVydGljYWwsImZpbHRlci1ncmlk'@; put 'IjpiLkNsclNoYXBlRmlsdGVyR3JpZCwiZmlsdGVyLWdyaWQtY2lyY2xlIjpiLkNsclNoYXBlRmlsdGVyR3JpZENpcmNsZSwidm0tYnVnIjpiLkNsclNoYXBlVm1CdWcsc2VhcmNoOmIuQ2xyU2hhcGVTZWFyY2gsInZpZXctY29sdW1ucyI6Yi5DbHJTaGFwZVZpZXdDb2x1bW5zLCJhbmdsZS1k'@; put 'b3VibGUiOmIuQ2xyU2hhcGVBbmdsZURvdWJsZSxjYWxlbmRhcjpiLkNsclNoYXBlQ2FsZW5kYXIsZXZlbnQ6Yi5DbHJTaGFwZUV2ZW50LGV5ZTpiLkNsclNoYXBlRXllLCJleWUtaGlkZSI6Yi5DbHJTaGFwZUV5ZUhpZGUsInN0ZXAtZm9yd2FyZC0yIjpiLkNsclNoYXBlU3RlcEZvcndhcmQy'@; put 'LGFycm93OmIuQ2xyU2hhcGVBcnJvd30sT2JqZWN0LmRlZmluZVByb3BlcnR5KGIuQ29yZVNoYXBlcywiaG91c2UiLCgwLF8uZGVzY3JpcHRvckNvbmZpZykoYi5Db3JlU2hhcGVzLmhvbWUpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5Db3JlU2hhcGVzLCJzZXR0aW5ncyIsKDAsXy5kZXNj'@; put 'cmlwdG9yQ29uZmlnKShiLkNvcmVTaGFwZXMuY29nKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGIuQ29yZVNoYXBlcywic3VjY2VzcyIsKDAsXy5kZXNjcmlwdG9yQ29uZmlnKShiLkNvcmVTaGFwZXMuY2hlY2spKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5Db3JlU2hhcGVzLCJjbG9zZSIs'@; put 'KDAsXy5kZXNjcmlwdG9yQ29uZmlnKShiLkNvcmVTaGFwZXMudGltZXMpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5Db3JlU2hhcGVzLCJ3YXJuaW5nIiwoMCxfLmRlc2NyaXB0b3JDb25maWcpKGIuQ29yZVNoYXBlc1siZXhjbGFtYXRpb24tdHJpYW5nbGUiXSkpLE9iamVjdC5kZWZpbmVQ'@; put 'cm9wZXJ0eShiLkNvcmVTaGFwZXMsImVycm9yIiwoMCxfLmRlc2NyaXB0b3JDb25maWcpKGIuQ29yZVNoYXBlc1siZXhjbGFtYXRpb24tY2lyY2xlIl0pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5Db3JlU2hhcGVzLCJpbmZvIiwoMCxfLmRlc2NyaXB0b3JDb25maWcpKGIuQ29yZVNoYXBl'@; put 'c1siaW5mby1jaXJjbGUiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShiLkNvcmVTaGFwZXMsIm1lbnUiLCgwLF8uZGVzY3JpcHRvckNvbmZpZykoYi5Db3JlU2hhcGVzLmJhcnMpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5Db3JlU2hhcGVzLCJhdmF0YXIiLCgwLF8uZGVzY3JpcHRvckNv'@; put 'bmZpZykoYi5Db3JlU2hhcGVzLnVzZXIpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5Db3JlU2hhcGVzLCJjYXJldCIsKDAsXy5kZXNjcmlwdG9yQ29uZmlnKShiLkNvcmVTaGFwZXMuYW5nbGUpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5Db3JlU2hhcGVzLCJkaXJlY3RvcnkiLCgwLF8u'@; put 'ZGVzY3JpcHRvckNvbmZpZykoYi5Db3JlU2hhcGVzLmZvbGRlcikpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShiLkNvcmVTaGFwZXMsIm5vdGlmaWNhdGlvbiIsKDAsXy5kZXNjcmlwdG9yQ29uZmlnKShiLkNvcmVTaGFwZXMuYmVsbCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShiLkNvcmVTaGFw'@; put 'ZXMsImNvbGxhcHNlIiwoMCxfLmRlc2NyaXB0b3JDb25maWcpKGIuQ29yZVNoYXBlc1siYW5nbGUtZG91YmxlIl0pKX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9lc3NlbnRpYWwtc2hhcGVzLnRzIjoKLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq'@; put 'KioqKioqKioqKioqKiEqXAogICAgICAgICAgICAgICAgICAhKioqIC4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9lc3NlbnRpYWwtc2hhcGVzLnRzICoqKiEKICAgICAgICAgICAgICAgICAgXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq'@; put 'KiovCi8qISBubyBzdGF0aWMgZXhwb3J0cyBmb3VuZCAqL2Z1bmN0aW9uKEosYixEKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGIuQ2xyU2hhcGVMb2dvdXQ9Yi5DbHJTaGFwZUxvZ2luPWIuQ2xyU2hhcGVIZWxwPWIuQ2xy'@; put 'U2hhcGVDb3B5PWIuQ2xyU2hhcGVDaGlsZEFycm93PWIuQ2xyU2hhcGVDaXJjbGVBcnJvdz1iLkNsclNoYXBlQWxhcm1DbG9jaz1iLkNsclNoYXBlQ2xvY2s9Yi5DbHJTaGFwZUhpc3Rvcnk9Yi5DbHJTaGFwZVRhZ3M9Yi5DbHJTaGFwZVRhZz1iLkNsclNoYXBlVHJhc2g9Yi5DbHJTaGFwZVRp'@; put 'bWVzQ2lyY2xlPWIuQ2xyU2hhcGVCYW49Yi5DbHJTaGFwZVBsdXNDaXJjbGU9Yi5DbHJTaGFwZU1pbnVzQ2lyY2xlPWIuQ2xyU2hhcGVNaW51cz1iLkNsclNoYXBlUGx1cz1iLkNsclNoYXBlRmlsZT1iLkNsclNoYXBlUGluPWIuQ2xyU2hhcGVGaWx0ZXI9Yi5DbHJTaGFwZVBvcE91dD1iLkNs'@; put 'clNoYXBlVXNlcnM9Yi5DbHJTaGFwZVVubG9jaz1iLkNsclNoYXBlTG9jaz1iLkNsclNoYXBlVXBsb2FkPWIuQ2xyU2hhcGVEb3dubG9hZD1iLkNsclNoYXBlTGlnaHRidWxiPWIuQ2xyU2hhcGVWaWV3Q2FyZHM9Yi5DbHJTaGFwZVZpZXdMaXN0PWIuQ2xyU2hhcGVTeW5jPWIuQ2xyU2hhcGVS'@; put 'ZWZyZXNoPWIuQ2xyU2hhcGVOb3RlPWIuQ2xyU2hhcGVQZW5jaWw9Yi5DbHJTaGFwZVRoZXJtb21ldGVyPWIuQ2xyU2hhcGVCdWc9Yi5DbHJTaGFwZVNjaXNzb3JzPWIuQ2xyU2hhcGVBc3Rlcmlzaz1iLkNsclNoYXBlQm9vaz1iLkNsclNoYXBlT2JqZWN0cz1iLkNsclNoYXBlUmVzaXplPWIu'@; put 'Q2xyU2hhcGVDdXJzb3JIYW5kQ2xpY2s9Yi5DbHJTaGFwZUN1cnNvckhhbmQ9Yi5DbHJTaGFwZUN1cnNvckFycm93PWIuQ2xyU2hhcGVHcmlkVmlldz1iLkNsclNoYXBlQnViYmxlRXhjbGFtYXRpb249Yi5DbHJTaGFwZU5ldz1iLkNsclNoYXBlQWxhcm1PZmY9Yi5DbHJTaGFwZVBpbmJvYXJk'@; put 'PWIuQ2xyU2hhcGVBZGRUZXh0PXZvaWQgMCxiLkNsclNoYXBlQ2xvbmU9Yi5DbHJTaGFwZUN1cnNvck1vdmU9Yi5DbHJTaGFwZVdhbmQ9Yi5DbHJTaGFwZVN1bj1iLkNsclNoYXBlTW9vbj1iLkNsclNoYXBlRmlsdGVyMj1iLkNsclNoYXBlRHJhZ0hhbmRsZT1iLkNsclNoYXBlQ29weVRvQ2xp'@; put 'cGJvYXJkPWIuQ2xyU2hhcGVDb2xvclBpY2tlcj1iLkNsclNoYXBlQnJpZWZjYXNlPWIuQ2xyU2hhcGVFeHBhbmRDYXJkPWIuQ2xyU2hhcGVDb2xsYXBzZUNhcmQ9Yi5DbHJTaGFwZVNvcnRCeT1iLkNsclNoYXBlQWNjZXNzaWJpbGl0eTI9Yi5DbHJTaGFwZUFjY2Vzc2liaWxpdHkxPWIuQ2xy'@; put 'U2hhcGVTaHJpbms9Yi5DbHJTaGFwZVBhcGVyY2xpcD1iLkNsclNoYXBlRmlsZUdyb3VwPWIuQ2xyU2hhcGVSZXBlYXQ9Yi5DbHJTaGFwZUlkQmFkZ2U9Yi5DbHJTaGFwZUJhbGFuY2U9Yi5DbHJTaGFwZU9yZ2FuaXphdGlvbj1iLkNsclNoYXBlTm9BY2Nlc3M9Yi5DbHJTaGFwZUhvdXJnbGFz'@; put 'cz1iLkNsclNoYXBlRmxhbWU9Yi5DbHJTaGFwZVRhcmdldD1iLkNsclNoYXBlQnVsbHNleWU9Yi5DbHJTaGFwZVdyZW5jaD1iLkNsclNoYXBlQm9sdD1iLkNsclNoYXBlTGlicmFyeT1iLkNsclNoYXBlS2V5PWIuQ2xyU2hhcGVab29tT3V0PWIuQ2xyU2hhcGVab29tSW49Yi5DbHJTaGFwZVdp'@; put 'bmRvd1Jlc3RvcmU9Yi5DbHJTaGFwZVdpbmRvd01pbj1iLkNsclNoYXBlV2luZG93TWF4PWIuQ2xyU2hhcGVXaW5kb3dDbG9zZT1iLkNsclNoYXBlVG9vbHM9Yi5DbHJTaGFwZVN3aXRjaD1iLkNsclNoYXBlVHdvV2F5QXJyb3dzPWIuQ2xyU2hhcGVGaWxlU2V0dGluZ3M9Yi5DbHJTaGFwZVNj'@; put 'cm9sbD1iLkNsclNoYXBlVW5kbz1iLkNsclNoYXBlUmVkbz1iLkNsclNoYXBlTGlzdD1iLkNsclNoYXBlRmlyZXdhbGw9Yi5DbHJTaGFwZUNsaXBib2FyZD1iLkNsclNoYXBlU2xpZGVyPWIuQ2xyU2hhcGVXb3JsZD1iLkNsclNoYXBlUHJpbnRlcj12b2lkIDAsYi5Fc3NlbnRpYWxTaGFwZXM9'@; put 'Yi5DbHJTaGFwZUNvbG9yUGFsZXR0ZT1iLkNsclNoYXBlRmlyc3RBaWQ9Yi5DbHJTaGFwZUJldGE9Yi5DbHJTaGFwZURvdENpcmNsZT1iLkNsclNoYXBlQ2lyY2xlPWIuQ2xyU2hhcGVDcm9zc2hhaXJzPWIuQ2xyU2hhcGVWb2x1bWU9Yi5DbHJTaGFwZVRhYmxlPWIuQ2xyU2hhcGVTbm93Zmxh'@; put 'a2U9Yi5DbHJTaGFwZUZ1ZWw9Yi5DbHJTaGFwZUZvcm09Yi5DbHJTaGFwZUZpc2g9Yi5DbHJTaGFwZVRyZWU9Yi5DbHJTaGFwZVJlY3ljbGU9Yi5DbHJTaGFwZUZpbHRlck9mZj1iLkNsclNoYXBlRmlsZVppcD1iLkNsclNoYXBlQ3Vyc29ySGFuZE9wZW49Yi5DbHJTaGFwZUN1cnNvckhhbmRH'@; put 'cmFiPWIuQ2xyU2hhcGVUcmVlVmlldz1iLkNsclNoYXBlUG9ydHJhaXQ9Yi5DbHJTaGFwZVBhc3RlPWIuQ2xyU2hhcGVMYW5kc2NhcGU9Yi5DbHJTaGFwZUVyYXNlcj1iLkNsclNoYXBlRHJhZ0hhbmRsZUNvcm5lcj1iLkNsclNoYXBlRGV0YWlscz12b2lkIDA7dmFyIF89RCgKLyohIC4uL3V0'@; put 'aWxzL2Rlc2NyaXB0b3ItY29uZmlnICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9kZXNjcmlwdG9yLWNvbmZpZy50cyIpLHA9RCgKLyohIC4uL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyIp'@; put 'LE49RCgKLyohIC4vY29yZS1zaGFwZXMgKi8KIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9jb3JlLXNoYXBlcy50cyIpO2IuQ2xyU2hhcGVBZGRUZXh0PSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzEs'@; put 'MjFIMTNhMSwxLDAsMCwwLDAsMkgzMWExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xMiwxNmExLDEsMCwwLDAsMSwxSDMxYTEsMSwwLDAsMCwwLTJIMTNBMSwxLDAsMCwwLDEyLDE2WiIv'@; put 'PlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0yNywyN0gxM2ExLDEsMCwwLDAsMCwySDI3YTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l'@; put 'LXBhdGgtNCIgZD0iTTE1Ljg5LDlhMSwxLDAsMCwwLTEtMUgxMFYzLjIxYTEsMSwwLDAsMC0yLDBWOEgyLjg5YTEsMSwwLDAsMCwwLDJIOHY1LjIxYTEsMSwwLDAsMCwyLDBWMTBoNC44OUExLDEsMCwwLDAsMTUuODksOVoiLz4nKSxiLkNsclNoYXBlUGluYm9hcmQ9KDAscC5jbHJJY29uU1ZH'@; put 'KSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMCwzMCw2LDMwLDYsNkgyMlY0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTRIMzBaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMzLjU3LDkuMzNsLTctN2ExLDEsMCwwLDAtMS40MSwxLjQxbDcsN2ExLDEsMCwxLDAsMS40MS0xLjQxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9'@; put 'Ik0yMi4xLDExLjE5bC43LjVMMjYuNDYsOCwyNSw2LjU2LDIyLjUxLDkuMTNjLTItLjg3LTQuMzUuMTQtNS45MiwxLjY4bC0uNzIuNzEsMy41NCwzLjU0LTMuNjcsMy42NywxLjQxLDEuNDEsMy42Ny0zLjY3TDI0LjM3LDIwbC43MS0uNzJjMS41NC0xLjU3LDIuNTUtMy45MiwxLjY4LTUuOTNs'@; put 'Mi41NC0yLjU3TDI3Ljg4LDkuMzgsMjQuMjEsMTMuMWwuNDkuNjljLjc2LDEsLjI1LDIuMzctLjQxLDMuMzNMMTguNzcsMTEuNkMxOS44NCwxMC44NiwyMS4xNSwxMC41LDIyLjEsMTEuMTlaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0'@; put 'aC0xIiBkPSJNMzAsMzAsNiwzMCw2LDZIMjJWNEg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE0SDMwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMzLjU3LDkuMzNsLTct'@; put 'N2ExLDEsMCwwLDAtMS40MSwxLjQxbDEuMzgsMS4zOC00LDRjLTItLjg3LTQuMzUuMTQtNS45MiwxLjY4bC0uNzIuNzEsMy41NCwzLjU0LTMuNjcsMy42NywxLjQxLDEuNDEsMy42Ny0zLjY3TDI0LjM3LDIwbC43MS0uNzJjMS41NC0xLjU3LDIuNTUtMy45MSwxLjY4LTUuOTJsNC00LDEuMzgs'@; put 'MS4zOGExLDEsMCwxLDAsMS40MS0xLjQxWiIvPicpLGIuQ2xyU2hhcGVBbGFybU9mZj0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMxLjQ3LDMuODRhNS43OCw1Ljc4LDAsMCwwLTcuMzctLjYzLDE2LjA4LDE2'@; put 'LjA4LDAsMCwxLDguMiw3LjY1QTUuNzMsNS43MywwLDAsMCwzMS40NywzLjg0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yNS4zMywyMS41NGEuOS45LDAsMCwwLS40MS0xLjJsLTMuMi0xLjU2TDI0Ljg5LDIy'@; put 'QS44OS44OSwwLDAsMCwyNS4zMywyMS41NFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTgsOC42YS45LjksMCwwLDAtLjkuOXY0LjZsMS44LDEuODFWOS41QS45LjksMCwwLDAsMTgsOC42WiIvPlxuICAgICAg'@; put 'ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0xMS40MiwzLjQzYTUuOCw1LjgsMCwwLDAtNS44MS0uODFMOC4zLDUuMzJBMTYsMTYsMCwwLDEsMTEuNDIsMy40M1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiBkPSJNMTgsNGExMy45MSwxMy45MSwwLDAsMC04LjMsMi43NWwxLjQyLDEuNDNBMTIsMTIsMCwwLDEsMjcuODIsMjQuOWwxLjQyLDEuNDNBMTQsMTQsMCwwLDAsMTgsNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC02IiBkPSJNMS41Niw0LjIxLDIuNzMsNS4zOGE1LjcsNS43LDAsMCwwLC42Nyw2LjFBMTUuNzgsMTUuNzgsMCwwLDEsNS40Niw4LjEyTDYuODgsOS41NUExMy45NCwxMy45NCwwLDAsMCw4LjExLDI3Ljg4TDUuNTYsMzAuNDNBMSwxLDAsMSwwLDcsMzEuODRs'@; put 'Mi42Ni0yLjY2YTEzLjg5LDEzLjg5LDAsMCwwLDE2LjgsMGw0LjE0LDQuMTVMMzIsMzEuOSwzLDIuOFpNMjUsMjcuNzJBMTEuODksMTEuODksMCwwLDEsMTgsMzAsMTIsMTIsMCwwLDEsNiwxOGExMS44OSwxMS44OSwwLDAsMSwyLjI5LTdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0i'@; put 'Y2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzEuNDcsMy44NGE1Ljc4LDUuNzgsMCwwLDAtNy4zNy0uNjMsMTYuMDgsMTYuMDgsMCwwLDEsOC4yLDcuNjVBNS43Myw1LjczLDAsMCwwLDMxLjQ3LDMuODRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29s'@; put 'aWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTEuNDIsMy40M2E1LjgsNS44LDAsMCwwLTUuNzctLjgyTDguMzMsNS4zQTE2LDE2LDAsMCwxLDExLjQyLDMuNDNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMjQuOTIs'@; put 'MjEuOTRsNC4zNCw0LjM2QTE0LDE0LDAsMCwwLDkuNzUsNi43M0wxNywxNFY5LjY5YTEsMSwwLDAsMSwyLDBWMTZsMi4zMywyLjM0TDI1LDIwLjFhMSwxLDAsMCwxLC40NywxLjMzQTEsMSwwLDAsMSwyNC45MiwyMS45NFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xp'@; put 'ZCBjbHItaS1zb2xpZC1wYXRoLTQiIGQ9Ik0xLjYxLDQuMjEsMi43Myw1LjM0YTUuNzMsNS43MywwLDAsMCwuNjcsNi4xNUExNS44OCwxNS44OCwwLDAsMSw1LjQ4LDguMUw2LjkxLDkuNTJBMTMuOTQsMTMuOTQsMCwwLDAsOC4xMSwyNy44OEw1LjU2LDMwLjQzQTEsMSwwLDEsMCw3LDMxLjg0'@; put 'bDIuNjYtMi42NmExMy44OSwxMy44OSwwLDAsMCwxNi44MywwbDQuMTYsNC4xN0wzMiwzMS45LDMsMi44WiIvPicpLGIuQ2xyU2hhcGVOZXc9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zNC41OSwyM2wtNC4w'@; put 'OC01LDQtNC45YTEuODIsMS44MiwwLDAsMCwuMjMtMS45NEExLjkzLDEuOTMsMCwwLDAsMzIuOTQsMTBoLTMxQTEuOTEsMS45MSwwLDAsMCwwLDExLjg4VjI0LjEzQTEuOTEsMS45MSwwLDAsMCwxLjk0LDI2SDMzLjA1YTEuOTMsMS45MywwLDAsMCwxLjc3LTEuMDlBMS44MiwxLjgyLDAsMCww'@; put 'LDM0LjU5LDIzWk0yLDI0VjEySDMyLjc4bC00Ljg0LDUuOTNMMzIuODUsMjRaIi8+XG4gICAgICAgICAgICA8cG9seWdvbiAgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIHBvaW50cz0iOS4zOSAxOS4zNSA2LjEzIDE1IDUgMTUgNSAyMS4xOCA2LjEzIDIxLjE4'@; put 'IDYuMTMgMTYuODQgOS4zOSAyMS4xOCAxMC41MSAyMS4xOCAxMC41MSAxNSA5LjM5IDE1IDkuMzkgMTkuMzUiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uICBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgcG9pbnRzPSIxMi4xOCAyMS4xOCAxNi44NCAyMS4xOCAx'@; put 'Ni44NCAyMC4xNiAxMy4zMSAyMC4xNiAxMy4zMSAxOC41NSAxNi41IDE4LjU1IDE2LjUgMTcuNTIgMTMuMzEgMTcuNTIgMTMuMzEgMTYuMDMgMTYuODQgMTYuMDMgMTYuODQgMTUgMTIuMTggMTUgMTIuMTggMjEuMTgiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uICBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgcG9pbnRzPSIyNC41MiAxOS40MyAyMy4wNiAxNSAyMS44NCAxNSAyMC4zNyAxOS40MyAxOS4wNSAxNSAxNy44MiAxNSAxOS43OCAyMS4xOCAyMC44OSAyMS4xOCAyMi40NSAxNi41OSAyNCAyMS4xOCAyNS4xMyAyMS4xOCAyNy4wOCAxNSAyNS44'@; put 'NSAxNSAyNC41MiAxOS40MyIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTM0LjExLDI0LjQ5bC0zLjkyLTYuNjIsMy44OC02LjM1QTEsMSwwLDAsMCwzMy4yMiwxMEgyYTIsMiwwLDAsMC0yLDJWMjRhMiwyLDAsMCwwLDIs'@; put 'MkgzMy4yNUExLDEsMCwwLDAsMzQuMTEsMjQuNDlabS0yMy42LTMuMzFIOS4zOUw2LjEzLDE2Ljg0djQuMzVINVYxNUg2LjEzbDMuMjcsNC4zNVYxNWgxLjEyWk0xNi44NCwxNkgxMy4zMXYxLjQ5aDMuMnYxaC0zLjJ2MS42MWgzLjUzdjFIMTIuMThWMTVoNC42NVptOC4yOSw1LjE2SDI0bC0x'@; put 'LjU1LTQuNTlMMjAuOSwyMS4xOEgxOS43OGwtMi02LjE4SDE5bDEuMzIsNC40M0wyMS44NCwxNWgxLjIybDEuNDYsNC40M0wyNS44NSwxNWgxLjIzWiIvPicpLGIuQ2xyU2hhcGVCdWJibGVFeGNsYW1hdGlvbj0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LDIuNWMtOC44MiwwLTE2LDYuMjgtMTYsMTRzNy4xOCwxNCwxNiwxNGExOCwxOCwwLDAsMCw0Ljg4LS42OGw1LjUzLDMuNTJhMSwxLDAsMCwwLDEuNTQtLjg0bDAtNi43M2ExMywxMywwLDAsMCw0LTkuMjdDMzQsOC43OCwyNi44MiwyLjUsMTgs'@; put 'Mi41Wk0yOC4yOSwyNC42MWExLDEsMCwwLDAtLjMyLjczbDAsNS4zNC00LjM4LTIuNzlhMSwxLDAsMCwwLS44My0uMTFBMTYsMTYsMCwwLDEsMTgsMjguNWMtNy43MiwwLTE0LTUuMzgtMTQtMTJzNi4yOC0xMiwxNC0xMiwxNCw1LjM4LDE0LDEyQTExLjA4LDExLjA4LDAsMCwxLDI4LjI5LDI0'@; put 'LjYxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyMC42M2ExLDEsMCwwLDAsMS0xVjguNDhhMSwxLDAsMSwwLTIsMFYxOS42MUExLDEsMCwwLDAsMTgsMjAuNjNaIi8+XG4gICAgICAgICAgICA8Y2lyY2xl'@; put 'IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBjeD0iMTgiIGN5PSIyNC4wNCIgcj0iMS4zMyIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDIuNWMtOC44MiwwLTE2LDYuMjgtMTYsMTRz'@; put 'Ny4xOCwxNCwxNiwxNGExOCwxOCwwLDAsMCw0Ljg4LS42OGw1LjUzLDMuNTJhMSwxLDAsMCwwLDEuNTQtLjg0bDAtNi43M2ExMywxMywwLDAsMCw0LTkuMjdDMzQsOC43OCwyNi44MiwyLjUsMTgsMi41Wk0xNi45Myw5LjEzYTEuNDEsMS40MSwwLDEsMSwyLjgxLDBWMTguOWExLjQxLDEuNDEs'@; put 'MCwxLDEtMi44MSwwWm0xLjQxLDE3LjM1YTEuODcsMS44NywwLDEsMSwxLjg3LTEuODdBMS44NywxLjg3LDAsMCwxLDE4LjM0LDI2LjQ3WiIvPicpLGIuQ2xyU2hhcGVHcmlkVmlldz0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtMSIgZD0iTTE0LDRINkEyLDIsMCwwLDAsNCw2djhhMiwyLDAsMCwwLDIsMmg4YTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMTQsNFpNNiwxNFY2aDh2OFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzAs'@; put 'NEgyMmEyLDIsMCwwLDAtMiwydjhhMiwyLDAsMCwwLDIsMmg4YTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMzAsNFpNMjIsMTRWNmg4djhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE0LDIwSDZhMiwyLDAs'@; put 'MCwwLTIsMnY4YTIsMiwwLDAsMCwyLDJoOGEyLDIsMCwwLDAsMi0yVjIyQTIsMiwwLDAsMCwxNCwyMFpNNiwzMFYyMmg4djhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTMwLDIwSDIyYTIsMiwwLDAsMC0yLDJ2'@; put 'OGEyLDIsMCwwLDAsMiwyaDhhMiwyLDAsMCwwLDItMlYyMkEyLDIsMCwwLDAsMzAsMjBaTTIyLDMwVjIyaDh2OFoiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIHg9IjQiIHk9IjQiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgcng9'@; put 'IjIiIHJ5PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiB4PSIyMCIgeT0iNCIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiByeD0iMiIgcnk9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1zb2xpZCBjbHIt'@; put 'aS1zb2xpZC1wYXRoLTMiIHg9IjQiIHk9IjIwIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIyIiByeT0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgeD0iMjAiIHk9IjIwIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4'@; put 'PSIyIiByeT0iMiIvPicpLGIuQ2xyU2hhcGVDdXJzb3JBcnJvdz0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE0LjU4LDMyLjMxYTEsMSwwLDAsMS0uOTQtLjY1TDQsNS42NUExLDEsMCwwLDEsNS4yNSw0LjM3'@; put 'bDI2LDkuNjhhMSwxLDAsMCwxLS4wNSwxLjg5bC04LjM2LDIuNTcsOC4zLDguM2ExLDEsMCwwLDEsMCwxLjQxbC0zLjI2LDMuMjZhMSwxLDAsMCwxLS43MS4yOWgwYTEsMSwwLDAsMS0uNzEtLjI5bC04LjMzLTguMzMtMi42LDguNDVhMSwxLDAsMCwxLS45My43MVptMy4wOS0xMmExLDEsMCww'@; put 'LDEsLjcxLjI5bDguNzksOC43OUwyOSwyNy41MWwtOC43Ni04Ljc2YTEsMSwwLDAsMSwuNDEtMS42Nmw3LjEzLTIuMkw2LjYsN2w3Ljg5LDIxLjJMMTYuNzEsMjFhMSwxLDAsMCwxLC43MS0uNjhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQt'@; put 'cGF0aC0xIiBkPSJNMjksMTIuMzYsMy44OCwzQTEsMSwwLDAsMCwyLjU5LDQuMjhMMTIsMjkuNDRhMSwxLDAsMCwwLDEuODktLjA1bDIuNjktOC43NSw5LjEyLDguOWExLDEsMCwwLDAsMS40MSwwbDIuMzUtMi4zNWExLDEsMCwwLDAsMC0xLjQxbC05LjA5LTguODZMMjksMTQuMjVBMSwxLDAs'@; put 'MCwwLDI5LDEyLjM2WiIvPicpLGIuQ2xyU2hhcGVDdXJzb3JIYW5kPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAuNzQsMTUuMTlhMTMuNjYsMTMuNjYsMCwwLDAtNi44Ny0zLjgzQTI2LDI2LDAsMCwwLDE4'@; put 'LDEwLjU4VjUuMjhBMy40LDMuNCwwLDAsMCwxNC41LDIsMy40LDMuNCwwLDAsMCwxMSw1LjI4djEwTDkuNCwxMy43YTMuNzcsMy43NywwLDAsMC01LjI4LDBBMy42NywzLjY3LDAsMCwwLDMsMTYuMzNhMy42LDMuNiwwLDAsMCwxLDIuNTZsNC42Niw1LjUyYTExLjUzLDExLjUzLDAsMCwwLDEu'@; put 'NDMsNCwxMC4xMiwxMC4xMiwwLDAsMCwyLDIuNTR2MS45MmExLjA3LDEuMDcsMCwwLDAsMSwxLjA4SDI3YTEuMDcsMS4wNywwLDAsMCwxLTEuMDh2LTIuN2ExMi44MSwxMi44MSwwLDAsMCwzLTguMzZ2LTZBMSwxLDAsMCwwLDMwLjc0LDE1LjE5Wk0yOSwyMS44NmExMC43MiwxMC43MiwwLDAs'@; put 'MS0yLjYsNy4yNiwxLjExLDEuMTEsMCwwLDAtLjQuNzJWMzJIMTQuMTRWMzAuNTJhMSwxLDAsMCwwLS40NC0uODMsNy4yNiw3LjI2LDAsMCwxLTEuODItMi4yMyw5LjE0LDkuMTQsMCwwLDEtMS4yLTMuNTIsMSwxLDAsMCwwLS4yMy0uNTlMNS41MywxNy41M2ExLjcsMS43LDAsMCwxLDAtMi40'@; put 'MiwxLjc2LDEuNzYsMCwwLDEsMi40NywwbDMsM3YzLjE0bDItMVY1LjI4QTEuNDIsMS40MiwwLDAsMSwxNC41LDQsMS40MiwxLjQyLDAsMCwxLDE2LDUuMjh2MTEuOGwyLC40M1YxMi41OWEyNC4yNywyNC4yNywwLDAsMSwyLjUxLjE4VjE4bDEuNi4zNVYxM2MuNDEuMDguODMuMTcsMS4yNi4y'@; put 'OGExNC44OCwxNC44OCwwLDAsMSwxLjUzLjQ5djUuMTVsMS42LjM1VjE0LjVBMTEuMDYsMTEuMDYsMCwwLDEsMjksMTYuMjNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjguNjksMTQuMzN2NC44M2wtMi0uNDNWMTMu'@; put 'MjRhMTYuMTksMTYuMTksMCwwLDAtMi4zMy0uODR2NS44MmwtMi0uNDNWMTJjLTEuMS0uMTgtMi4xOC0uMy0zLjA4LS4zNnY1LjUxbC0yLS40M1YxMS40OGgwVjQuMzRhMi41MywyLjUzLDAsMCwwLTIuNi0yLjQzLDIuNTMsMi41MywwLDAsMC0yLjYsMi40M1YxNy4yN2gwdjIuNTlsLTIsMVYx'@; put 'NS42TDcuNzUsMTMuMjFhMi44MywyLjgzLDAsMCwwLTQsMCwyLjkzLDIuOTMsMCwwLDAsMCw0LjA5bDYsNy4xYTEwLjgyLDEwLjgyLDAsMCwwLDEuMzksNC4yMiw4LjQyLDguNDIsMCwwLDAsMi4yMSwyLjczdjIuNTZIMjcuNzlWMzAuNjJhMTIuNTQsMTIuNTQsMCwwLDAsMy04LjV2LTZBMTAs'@; put 'MTAsMCwwLDAsMjguNjksMTQuMzNaIi8+JyksYi5DbHJTaGFwZUN1cnNvckhhbmRDbGljaz0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMwLjQsMTcuNmMtMS44LTEuOS00LjItMy4yLTYuNy0zLjdjLTEuMS0w'@; put 'LjMtMi4yLTAuNS0zLjMtMC42YzIuOC0zLjMsMi4zLTguMy0xLTExLjFzLTguMy0yLjMtMTEuMSwxcy0yLjMsOC4zLDEsMTEuMVxuICAgICAgICAgICAgICAgICAgICBjMC42LDAuNSwxLjIsMC45LDEuOCwxLjF2Mi4ybC0xLjYtMS41Yy0xLjQtMS40LTMuNy0xLjQtNS4yLDBjLTEuNCwxLjQt'@; put 'MS41LDMuNi0wLjEsNWw0LjYsNS40YzAuMiwxLjQsMC43LDIuNywxLjQsMy45XG4gICAgICAgICAgICAgICAgICAgIGMwLjUsMC45LDEuMiwxLjgsMS45LDIuNXYxLjljMCwwLjYsMC40LDEsMSwxaDEzLjZjMC41LDAsMS0wLjUsMS0xdi0yLjZjMS45LTIuMywyLjktNS4yLDIuOS04LjF2LTUu'@; put 'OFxuICAgICAgICAgICAgICAgICAgICBDMzAuNywxNy45LDMwLjYsMTcuNywzMC40LDE3LjZ6IE04LjQsOC4yYzAtMy4zLDIuNy01LjksNi01LjhjMy4zLDAsNS45LDIuNyw1LjgsNmMwLDEuOC0wLjgsMy40LTIuMiw0LjVWNy45XG4gICAgICAgICAgICAgICAgICAgIGMtMC4xLTEuOC0xLjYt'@; put 'My4yLTMuNC0zLjJjLTEuOC0wLjEtMy40LDEuNC0zLjQsMy4ydjUuMkM5LjUsMTIuMSw4LjUsMTAuMiw4LjQsOC4yTDguNCw4LjJ6IE0yOC43LDI0YzAuMSwyLjYtMC44LDUuMS0yLjUsNy4xXG4gICAgICAgICAgICAgICAgICAgIGMtMC4yLDAuMi0wLjQsMC40LTAuNCwwLjd2Mi4xSDE0LjJ2'@; put 'LTEuNGMwLTAuMy0wLjItMC42LTAuNC0wLjhjLTAuNy0wLjYtMS4zLTEuMy0xLjgtMi4yYy0wLjYtMS0xLTIuMi0xLjItMy40XG4gICAgICAgICAgICAgICAgICAgIGMwLTAuMi0wLjEtMC40LTAuMi0wLjZsLTQuOC01LjdjLTAuMy0wLjMtMC41LTAuNy0wLjUtMS4yYzAtMC40LDAuMi0wLjks'@; put 'MC41LTEuMmMwLjctMC42LDEuNy0wLjYsMi40LDBsMi45LDIuOXYzbDEuOS0xVjcuOVxuICAgICAgICAgICAgICAgICAgICBjMC4xLTAuNywwLjctMS4zLDEuNS0xLjJjMC43LDAsMS40LDAuNSwxLjQsMS4ydjExLjVsMiwwLjR2LTQuNmMwLjEtMC4xLDAuMi0wLjEsMC4zLTAuMmMwLjcsMCwx'@; put 'LjQsMC4xLDIuMSwwLjJ2NS4xbDEuNiwwLjN2LTUuMlxuICAgICAgICAgICAgICAgICAgICBsMS4yLDAuM2MwLjUsMC4xLDEsMC4zLDEuNSwwLjV2NWwxLjYsMC4zdi00LjZjMC45LDAuNCwxLjcsMSwyLjQsMS43TDI4LjcsMjR6Ii8+JyksYi5DbHJTaGFwZVJlc2l6ZT0oMCxwLmNsckljb25T'@; put 'VkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE5LDRhMSwxLDAsMCwwLDAsMmg5LjU5bC05LjI1LDkuMjVhMSwxLDAsMSwwLDEuNDEsMS40MUwzMCw3LjQxVjE3YTEsMSwwLDAsMCwyLDBWNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNNCwxOWExLDEsMCwwLDEsMiwwdjkuNTlsOS4yNS05LjI1YTEsMSwwLDEsMSwxLjQxLDEuNDFMNy40MSwzMEgxN2ExLDEsMCwwLDEsMCwySDRaIi8+JyksYi5DbHJTaGFwZU9iamVjdHM9KDAscC5jbHJJY29uU1ZH'@; put 'KSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNi4wOCwxNC45YTEwLjQxLDEwLjQxLDAsMCwxLDEuODctLjcxbC00LTEwLjc3YTIsMiwwLDAsMC0zLjc1LDBMMiwyNS4yNkEyLDIsMCwwLDAsMy45MiwyOGg2Ljk0YTEwLDEwLDAsMCwxLS41'@; put 'Mi0ySDMuOTJMMTIuMDYsNC4xMloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzIsOUgyMmEyLDIsMCwwLDAtMiwydjIuODVjLjIzLDAsLjQ2LDAsLjY5LDBBMTAuNTEsMTAuNTEsMCwwLDEsMjIsMTMuOVYxMUgz'@; put 'MlYyMUgzMC42NWExMC40MiwxMC40MiwwLDAsMSwuNDUsMkgzMmEyLDIsMCwwLDAsMi0yVjExQTIsMiwwLDAsMCwzMiw5WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0yMC42OSwxNS44MWE4LjUsOC41LDAsMSww'@; put 'LDguNSw4LjVBOC41MSw4LjUxLDAsMCwwLDIwLjY5LDE1LjgxWm0wLDE1YTYuNSw2LjUsMCwxLDEsNi41LTYuNUE2LjUxLDYuNTEsMCwwLDEsMjAuNjksMzAuODFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTAuNjUs'@; put 'MjQuNDRhOS41MSw5LjUxLDAsMCwxLDcuMDYtOS4xN0wxMywzYTEsMSwwLDAsMC0xLjg3LDBMMi4wNywyNi41NkExLDEsMCwwLDAsMywyNy45Mmg4LjMyQTkuNDQsOS40NCwwLDAsMSwxMC42NSwyNC40NFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1z'@; put 'b2xpZC1wYXRoLTIiIGQ9Ik0zMiwxMEgyMGExLDEsMCwwLDAtMSwxdjRhOS40Myw5LjQzLDAsMCwxLDEwLjYzLDlIMzJhMSwxLDAsMCwwLDEtMVYxMUExLDEsMCwwLDAsMzIsMTBaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMi'@; put 'IGN4PSIyMC4xNSIgY3k9IjI0LjQ0IiByPSI3LjUiLz4nKSxiLkNsclNoYXBlQm9vaz0oMCxwLmNsckljb25TVkcpKCc8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgeD0iMTAiIHk9IjUuMiIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEuNTUiLz5cbiAgICAg'@; put 'ICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjksOEg5Ljg2QTEuODksMS44OSwwLDAsMSw4LDYsMiwyLDAsMCwxLDkuODYsNEgyOWExLDEsMCwwLDAsMC0ySDkuODZBNCw0LDAsMCwwLDYsNmE0LjE0LDQuMTQsMCwwLDAsMCwuNDks'@; put 'MSwxLDAsMCwwLDAsLjI0VjMwYTQsNCwwLDAsMCwzLjg2LDRIMjlhMSwxLDAsMCwwLDEtMVY5LjI1czAtLjA2LDAtLjA5LDAtLjA2LDAtLjA5QTEuMDcsMS4wNywwLDAsMCwyOSw4Wk0yOCwzMkg5Ljg2QTIsMiwwLDAsMSw4LDMwVjkuNTVBMy42MywzLjYzLDAsMCwwLDkuODYsMTBIMjhaIi8+'@; put 'XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiB4PSIxMCIgeT0iNS4yIiB3aWR0aD0iMTgiIGhlaWdodD0iMS41NSIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTI5'@; put 'LDhIOS44NkExLjg5LDEuODksMCwwLDEsOCw2LDIsMiwwLDAsMSw5Ljg2LDRIMjlhMSwxLDAsMSwwLDAtMkg5Ljg2QTQsNCwwLDAsMCw2LDZhNC4xNCw0LjE0LDAsMCwwLDAsLjQ5LDEsMSwwLDAsMCwwLC4yNFYzMGE0LDQsMCwwLDAsMy44Niw0SDI5YTEsMSwwLDAsMCwxLTFWOS4yNXMwLS4w'@; put 'NiwwLS4wOSwwLS4wNiwwLS4wOUExLjA3LDEuMDcsMCwwLDAsMjksOFoiLz4nKSxiLkNsclNoYXBlQXN0ZXJpc2s9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yOC44OSwyMC45MWwtNS0yLjkxLDQuODctMi44'@; put 'NmEzLjExLDMuMTEsMCwwLDAsMS4xNC0xLjA4LDMsMywwLDAsMC00LjA5LTQuMTVMMjEsMTIuNzZWN2EzLDMsMCwwLDAtNiwwdjUuNzZMMTAuMTUsOS45MWEzLDMsMCwxLDAtMyw1LjE4bDUsMi45MUw3LjIsMjAuODZhMy4xMSwzLjExLDAsMCwwLTEuMTQsMS4wOCwzLDMsMCwwLDAsNC4wOSw0'@; put 'LjE0TDE1LDIzLjI0VjI4LjlhMywzLDAsMCwwLDIsMi45NEEzLDMsMCwwLDAsMjEsMjlWMjMuMjRsNC44NSwyLjg1YTMsMywwLDEsMCwzLTUuMThaTTI4LjI0LDI0YTEsMSwwLDAsMS0xLjM3LjM2TDE5LDE5Ljc1VjI5YTEsMSwwLDAsMS0yLDBWMTkuNzVMOS4xMywyNC4zNmExLDEsMCwwLDEt'@; put 'MS0xLjcyTDE2LDE4bC03LjktNC42NGExLDEsMCwxLDEsMS0xLjcyTDE3LDE2LjI1VjdhMSwxLDAsMCwxLDIsMHY5LjI1bDcuODctNC42MmExLDEsMCwwLDEsMSwxLjcyTDIwLDE4bDcuOSw0LjY0QTEsMSwwLDAsMSwyOC4yNCwyNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHIt'@; put 'aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yOC44OSwyMC45MWwtNS0yLjkxLDQuODctMi44NmEzLjExLDMuMTEsMCwwLDAsMS4xNC0xLjA4LDMsMywwLDAsMC00LjA5LTQuMTVMMjEsMTIuNzZWN2EzLDMsMCwwLDAtNiwwdjUuNzZMMTAuMTUsOS45MWEzLDMsMCwxLDAtMyw1LjE4'@; put 'bDUsMi45MUw3LjIsMjAuODZhMy4xMSwzLjExLDAsMCwwLTEuMTQsMS4wOCwzLDMsMCwwLDAsNC4wOSw0LjE0TDE1LDIzLjI0VjI4LjlhMywzLDAsMCwwLDIsMi45NEEzLDMsMCwwLDAsMjEsMjlWMjMuMjRsNC44NSwyLjg1YTMsMywwLDEsMCwzLTUuMThaIi8+JyksYi5DbHJTaGFwZVNjaXNz'@; put 'b3JzPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIlxuICAgICAgICAgICAgZD0iTTI0LjA2LDE4LjE4bDkuNjEtOC43N2ExLDEsMCwwLDAtLjA5LTEuNTVsLTIuMjQtMS42YTMuNTcsMy41NywwLDAsMC00LjI4LjEyTDE1'@; put 'Ljg4LDE1LjNsLTMuMjYtMi41MmE1LjQ1LDUuNDUsMCwxLDAtMSwxLjc3bDIuNjIsMkwxMCwyMGE1LjQ4LDUuNDgsMCwxLDAsMS41OSwxLjI5TDI4LjMsNy45NGExLjU3LDEuNTcsMCwwLDEsMS44OC0uMDVsMS4yMy44OEwyMS4xLDE4LjE5bDEwLjMxLDkuNC0xLjIzLjg4YTEuNTcsMS41Nyww'@; put 'LDAsMS0xLjg4LS4wNWwtOS44MS03Ljg1TDE3LDIxLjkzbDEwLjA2LDhhMy41NywzLjU3LDAsMCwwLDQuMjkuMTJsMi4yNC0xLjZhMSwxLDAsMCwwLC4wOS0xLjU1Wk03LjQ1LDE0LjU0YTMuNDYsMy40NiwwLDEsMSwzLjQ1LTMuNDZBMy40NiwzLjQ2LDAsMCwxLDcuNDUsMTQuNTRabTAsMTMu'@; put 'NzJBMy40NiwzLjQ2LDAsMSwxLDEwLjksMjQuOCwzLjQ2LDMuNDYsMCwwLDEsNy40NSwyOC4yNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMy44MSw4LjEzLDMxLjYzLDYuNDhhMS45MiwxLjkyLDAsMCwwLTIuMzYs'@; put 'MEwxMCwyMi4wNmE1LjQ2LDUuNDYsMCwxLDAsMiwxLjgxbDMuOS0zLjEyTDI5LjI3LDMxLjUyYTEuOTIsMS45MiwwLDAsMCwyLjM2LDBsMi4xOC0xLjY0TDIwLjk0LDE5Wk03LjQ1LDI5Ljc1YTIuODYsMi44NiwwLDEsMSwyLjg2LTIuODZBMi44NywyLjg3LDAsMCwxLDcuNDUsMjkuNzVaIi8+'@; put 'XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTQuMywxNS4yNCwxMiwxMy4zOGE1LjQ2LDUuNDYsMCwxLDAtMiwxLjgxTDEyLjE2LDE3Wm0tNi44NS0yYTIuODYsMi44NiwwLDEsMSwyLjg2LTIuODZBMi44NiwyLjg2LDAsMCwx'@; put 'LDcuNDUsMTMuMjNaIi8+JyksYi5DbHJTaGFwZUJ1Zz0oMCxwLmNsckljb25TVkcpKCc8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBjeD0iMjMuNTYiIGN5PSIxNy43NCIgcj0iMS45NSIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgY3g9IjIyLjQyIiBjeT0iMjUuODgiIHI9IjEuNTgiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGN4PSIxMi44NiIgY3k9IjE3Ljc0IiByPSIxLjk1Ii8+XG4g'@; put 'ICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBjeD0iMTMuOTkiIGN5PSIyNS44OCIgcj0iMS41OCIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIGQ9Ik0zMC44'@; put 'MywyMEgyOWExOS4yOSwxOS4yOSwwLDAsMC0xLjE4LTUuNzNsMS40Ni0uNzlhMSwxLDAsMCwwLS45NS0xLjc2bC0zLDEuNjRBMTcuNjUsMTcuNjUsMCwwLDEsMjcsMjAuNzJDMjcsMjcsMjMuOCwzMS4yMywxOC44LDMxLjYyVjE1SDE3LjJWMzEuNjJDMTIuMjIsMzEuMjEsOSwyNyw5LDIwLjcy'@; put 'YTE3Ljc0LDE3Ljc0LDAsMCwxLDEuNzMtNy4zNEw3LjcsMTEuNzJhMSwxLDAsMCwwLS45NSwxLjc2bDEuNS44QTE5LjM4LDE5LjM4LDAsMCwwLDcuMDcsMjBINS4xN2ExLDEsMCwwLDAsMCwySDcuMWExNC42MiwxNC42MiwwLDAsMCwxLjY2LDYuMTdMNi44NywyOS40OUExLDEsMCwxLDAsOCwz'@; put 'MS4xMmwxLjg0LTEuMjlBMTAuMzgsMTAuMzgsMCwwLDAsMTgsMzMuNjZhMTAuMzgsMTAuMzgsMCwwLDAsOC4xNC0zLjgxTDI4LDMxLjEyYTEsMSwwLDEsMCwxLjE1LTEuNjRsLTEuODYtMS4zQTE0LjYxLDE0LjYxLDAsMCwwLDI4Ljk0LDIyaDEuODlhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAg'@; put 'ICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiBkPSJNMTEuNTEsNS4zNmExLjY3LDEuNjcsMCwwLDAsMS4wNy0uNTFBMy4yMSwzLjIxLDAsMCwxLDEzLjc2LDZhMTYuMzgsMTYuMzgsMCwwLDAtMi42NSwyLjg5LDIsMiwwLDAsMCwxLjYxLDMu'@; put 'MTlIMjMuMzJBMiwyLDAsMCwwLDI1LjEsMTFhMiwyLDAsMCwwLS4xNy0yLjFBMTYuMzQsMTYuMzQsMCwwLDAsMjIuMjUsNmEzLjIxLDMuMjEsMCwwLDEsMS4xNy0xLjExQTEuNjgsMS42OCwwLDEsMCwyMywzLjI3LDQuNzcsNC43NywwLDAsMCwyMSw1YTUuODEsNS44MSwwLDAsMC0yLjkzLTEs'@; put 'NS44Myw1LjgzLDAsMCwwLTMsMUE0Ljc3LDQuNzcsMCwwLDAsMTMsMy4yN2ExLjY4LDEuNjgsMCwxLDAtMS40OSwyLjA5Wk0xOCw2LjA3YzEuNDUsMCwzLjUzLDEuNTcsNS4zMSw0aDBsLTEwLjYsMEMxNC40OSw3LjYzLDE2LjU2LDYuMDcsMTgsNi4wN1oiLz5cbiAgICAgICAgICAgIDxwYXRo'@; put 'IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMC44MywyMEgyOWExOS4yOSwxOS4yOSwwLDAsMC0xLjE4LTUuNzNsMS40Ni0uNzlhMSwxLDAsMCwwLS45NS0xLjc2bC0zLDEuMjhIMTAuNzhMNy43LDExLjcyYTEsMSwwLDAsMC0uOTUsMS43NmwxLjUuOEExOS4z'@; put 'OCwxOS4zOCwwLDAsMCw3LjA3LDIwSDUuMTdhMSwxLDAsMCwwLDAsMkg3LjFhMTQuNjIsMTQuNjIsMCwwLDAsMS42Niw2LjE3TDYuODcsMjkuNDlBMSwxLDAsMSwwLDgsMzEuMTJsMS44NC0xLjI5QTEwLjI5LDEwLjI5LDAsMCwwLDE3LDMzLjZWMTVoMlYzMy42YTEwLjI5LDEwLjI5LDAsMCww'@; put 'LDcuMTYtMy43NUwyOCwzMS4xMmExLDEsMCwxLDAsMS4xNS0xLjY0bC0xLjg2LTEuM0ExNC42MSwxNC42MSwwLDAsMCwyOC45NCwyMmgxLjg5YTEsMSwwLDAsMCwwLTJaTTEwLjkxLDE3Ljc0YTEuOTUsMS45NSwwLDEsMSwxLjk1LDEuOTVBMS45NSwxLjk1LDAsMCwxLDEwLjkxLDE3Ljc0Wk0x'@; put 'NCwyNy40NmExLjU4LDEuNTgsMCwxLDEsMS41OC0xLjU4QTEuNTgsMS41OCwwLDAsMSwxNCwyNy40NlptOC40MywwQTEuNTgsMS41OCwwLDEsMSwyNCwyNS44OCwxLjU4LDEuNTgsMCwwLDEsMjIuNDIsMjcuNDZabTEuMTMtNy43N2ExLjk1LDEuOTUsMCwxLDEsMS45NS0xLjk1QTEuOTUsMS45'@; put 'NSwwLDAsMSwyMy41NiwxOS42OVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0xMS4yMyw1LjI2YTEuNjcsMS42NywwLDAsMCwuNTQtLjMyLDUuOSw1LjksMCwwLDEsLjg5LjU4LDcuNDQsNy40NCwwLDAsMSwuOTUuOTRB'@; put 'MTguNDgsMTguNDgsMCwwLDAsMTAuNzksOS43Yy0uNC41Ny4wOSwxLjI4Ljg2LDEuMjhIMjQuNDRjLjc3LDAsMS4yNi0uNzEuODYtMS4yOGExOC4zOCwxOC4zOCwwLDAsMC0yLjg4LTMuMjgsNy4yOCw3LjI4LDAsMCwxLC45MS0uOSw1LjksNS45LDAsMCwxLC44OS0uNTgsMS42OSwxLjY5LDAs'@; put 'MSwwLS41Ni0xLjUxLDcuNDksNy40OSwwLDAsMC0xLjMyLjgzLDkuMDYsOS4wNiwwLDAsMC0xLjE5LDEuMThBNS44NSw1Ljg1LDAsMCwwLDE4LDQuM2E1LjkxLDUuOTEsMCwwLDAtMy4xNywxLjE5LDkuMiw5LjIsMCwwLDAtMS4yMi0xLjIxLDcuNDksNy40OSwwLDAsMC0xLjMyLS44MywxLjY4'@; put 'LDEuNjgsMCwxLDAtMS4xMSwxLjgzWiIvPicpLGIuQ2xyU2hhcGVUaGVybW9tZXRlcj0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE5LDIzLjE3VjExLjQ2SDE3VjIzLjJhMywzLDAsMSwwLDIsMFoiLz5cbiAg'@; put 'ICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjYsMTVhMSwxLDAsMCwwLDAtMkgyMy45MlYxMUgyNmExLDEsMCwwLDAsMC0ySDIzLjkyVjhhNiw2LDAsMCwwLTEyLDBWMjAuODFhOCw4LDAsMSwwLDEyLS4yVjE5SDI2YTEsMSww'@; put 'LDAsMCwwLTJIMjMuOTJWMTVaTTI0LDI2YTYsNiwwLDEsMS0xMC4zNi00LjEybC4yNy0uMjlWOGE0LDQsMCwwLDEsOCwwVjIxLjQ0bC4zLjI5QTYsNiwwLDAsMSwyNCwyNloiLz4nKSxiLkNsclNoYXBlUGVuY2lsPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzMuODcsOC4zMiwyOCwyLjQyYTIuMDcsMi4wNywwLDAsMC0yLjkyLDBMNC4yNywyMy4ybC0xLjksOC4yYTIuMDYsMi4wNiwwLDAsMCwyLDIuNSwyLjE0LDIuMTQsMCwwLDAsLjQzLDBMMTMuMDksMzIsMzMuODcsMTEuMjRBMi4wNywyLjA3LDAs'@; put 'MCwwLDMzLjg3LDguMzJaTTEyLjA5LDMwLjIsNC4zMiwzMS44M2wxLjc3LTcuNjJMMjEuNjYsOC43bDYsNlpNMjksMTMuMjVsLTYtNiwzLjQ4LTMuNDYsNS45LDZaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTQu'@; put 'MjIsMjMuMmwtMS45LDguMmEyLjA2LDIuMDYsMCwwLDAsMiwyLjUsMi4xNCwyLjE0LDAsMCwwLC40MywwTDEzLDMyLDI4Ljg0LDE2LjIyLDIwLDcuNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMzMuODIsOC4z'@; put 'MmwtNS45LTUuOWEyLjA3LDIuMDcsMCwwLDAtMi45MiwwTDIxLjcyLDUuN2w4LjgzLDguODMsMy4yOC0zLjI4QTIuMDcsMi4wNywwLDAsMCwzMy44Miw4LjMyWiIvPicpLGIuQ2xyU2hhcGVOb3RlPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOCwzMEg2VjhIMTkuMjJsMi0ySDZBMiwy'@; put 'LDAsMCwwLDQsOFYzMGEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTVsLTIsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjUzLDUuODQsMzAuMTYsMi40N2ExLjYxLDEuNjEsMCwwLDAtMi4y'@; put 'OCwwTDE0LjE3LDE2LjI2bC0xLjExLDQuODFBMS42MSwxLjYxLDAsMCwwLDE0LjYzLDIzLDEuNjksMS42OSwwLDAsMCwxNSwyM2w0Ljg1LTEuMDdMMzMuNTMsOC4xMkExLjYxLDEuNjEsMCwwLDAsMzMuNTMsNS44NFpNMTguODEsMjAuMDhsLTMuNjYuODFMMTYsMTcuMjYsMjYuMzIsNi44N2wy'@; put 'LjgyLDIuODJaTTMwLjI3LDguNTYsMjcuNDUsNS43NCwyOSw0LjE2LDMxLjg0LDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMyw2LjQsMjkuMywyLjdhMS43MSwxLjcxLDAsMCwwLTIuMzYsMEwyMy42NSw2'@; put 'SDZBMiwyLDAsMCwwLDQsOFYzMGEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTEuNzZsMy0zQTEuNjcsMS42NywwLDAsMCwzMyw2LjRaTTE4LjgzLDIwLjEzbC00LjE5LjkzLDEtNC4xNSw5LjU1LTkuNTcsMy4yMywzLjIzWk0yOS41LDkuNDMsMjYuMjcsNi4ybDEuODUtMS44NSwz'@; put 'LjIzLDMuMjNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGIuQ2xyU2hhcGVSZWZyZXNoPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjIuNCwxMS42NWExLjA5LDEuMDks'@; put 'MCwwLDAsMS4wOSwxLjA5SDM0LjQzVjEuODFhMS4wOSwxLjA5LDAsMSwwLTIuMTksMFY4Ljk1YTE2LjQxLDE2LjQxLDAsMSwwLDEuNDcsMTUuODYsMS4xMiwxLjEyLDAsMCwwLTIuMDUtLjksMTQuMTgsMTQuMTgsMCwxLDEtMS4wNS0xMy4zNkgyMy41QTEuMDksMS4wOSwwLDAsMCwyMi40LDEx'@; put 'LjY1WiIvPicpLGIuQ2xyU2hhcGVTeW5jPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIuODQsMTUuNzJhMSwxLDAsMSwwLTIsLjI5QTEzLjE1LDEzLjE1LDAsMCwxLDMxLDE3Ljk0LDEzLDEzLDAsMCwxLDgu'@; put 'NywyN2g1LjM2YTEsMSwwLDAsMCwwLTJoLTl2OWExLDEsMCwxLDAsMiwwVjI4LjJBMTUsMTUsMCwwLDAsMzIuODQsMTUuNzJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMC4wNiwxQTEuMDUsMS4wNSww'@; put 'LDAsMCwyOSwyVjcuODNBMTQuOTQsMTQuOTQsMCwwLDAsMywxNy45NGExNS4xNiwxNS4xNiwwLDAsMCwuMiwyLjQ4LDEsMSwwLDAsMCwxLC44NGguMTZhMSwxLDAsMCwwLC44Mi0xLjE1QTEzLjIzLDEzLjIzLDAsMCwxLDUsMTcuOTRhMTMsMTMsMCwwLDEsMTMtMTNBMTIuODcsMTIuODcsMCww'@; put 'LDEsMjcuNDQsOUgyMi4wNmExLDEsMCwwLDAsMCwySDMxVjJBMSwxLDAsMCwwLDMwLjA2LDFaIi8+JyksYi5DbHJTaGFwZVZpZXdMaXN0PSgwLHAuY2xySWNvblNWRykoJzxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiB4PSIyIiB5PSI4IiB3aWR0aD0i'@; put 'MiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik03LDEwSDMxYTEsMSwwLDAsMCwwLTJIN2ExLDEsMCwwLDAsMCwyWiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSIyIiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNMzEsMTRIN2ExLDEsMCwwLDAsMCwySDMxYTEsMSww'@; put 'LDAsMCwwLTJaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIHg9IjIiIHk9IjIwIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTYiIGQ9Ik0zMSwyMEg3YTEsMSwwLDAsMCwwLDJIMzFhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgeD0iMiIgeT0iMjYiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5c'@; put 'biAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIgZD0iTTMxLDI2SDdhMSwxLDAsMCwwLDAsMkgzMWExLDEsMCwwLDAsMC0yWiIvPicpLGIuQ2xyU2hhcGVWaWV3Q2FyZHM9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNSwxN0g0YTIsMiwwLDAsMS0yLTJWOEEyLDIsMCwwLDEsNCw2SDE1YTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMTUsMTdaTTQsOHY3SDE1VjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMiwxN0gyMWEyLDIsMCwwLDEtMi0yVjhhMiwyLDAsMCwxLDItMkgzMmEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDMyLDE3Wk0yMSw4djdIMzJWOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE1LDMwSDRhMiwyLDAsMCwxLTItMlYyMWEyLDIsMCwwLDEsMi0ySDE1YTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMTUsMzBaTTQsMjF2N0gxNVYyMVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTMyLDMwSDIxYTIsMiwwLDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgzMmEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDMyLDMwWk0yMSwyMXY3SDMyVjIxWiIvPicpLGIuQ2xyU2hhcGVMaWdodGJ1bGI9KDAscC5jbHJJY29uU1ZHKSgnPHBh'@; put 'dGggZD0iTTE4LDIuMjVhMTEsMTEsMCwwLDAtMTEsMTEsMTAuNjgsMTAuNjgsMCwwLDAsMSw0LjYzLDE2LjM2LDE2LjM2LDAsMCwwLDEuMTIsMS43OCwxNywxNywwLDAsMSwyLDMuNDcsMTYuMTksMTYuMTksMCwwLDEsLjU5LDRoMkExOC4xNywxOC4xNywwLDAsMCwxMywyMi40NGExOC40Niwx'@; put 'OC40NiwwLDAsMC0yLjIyLTMuOTIsMTUuNzksMTUuNzksMCwwLDEtMS0xLjU0QTguNjQsOC42NCwwLDAsMSw5LDEzLjIzYTksOSwwLDAsMSwxOC4wNywwQTguNjQsOC42NCwwLDAsMSwyNi4yMSwxN2ExNS43OSwxNS43OSwwLDAsMS0xLDEuNTRBMTguNDYsMTguNDYsMCwwLDAsMjMsMjIuNDRh'@; put 'MTguMTcsMTguMTcsMCwwLDAtLjcxLDQuNzFoMmExNi4xOSwxNi4xOSwwLDAsMSwuNTktNCwxNywxNywwLDAsMSwyLTMuNDdBMTYuMzEsMTYuMzEsMCwwLDAsMjgsMTcuODZhMTAuNjgsMTAuNjgsMCwwLDAsMS00LjYzQTExLDExLDAsMCwwLDE4LDIuMjVaIiBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjYzLDE1LjUxYS44LjgsMCwwLDAtMS4xMywwbC0zLDMsMi44NiwzLjEzdjUuNTRIMTlWMjFsLTIuMjQtMi40NSwxLjg5LTEuODlBLjguOCwwLDAsMCwxOC42MywxNS41MVoiIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuODYsMjkuMTVIMTIuMTFhLjguOCwwLDEsMCwwLDEuNkgyMy44NmEuOC44LDAsMCwwLDAtMS42WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAg'@; put 'ICAgICAgIDxwYXRoIGQ9Ik0yMiwzMi4xNUgxNGEuOC44LDAsMSwwLDAsMS42SDIyYS44LjgsMCwxLDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3LjMyLDEwLjg5bC0yLjczLDIuNzNhLjguOCww'@; put 'LDAsMCwxLjEzLDEuMTNMMTguNDUsMTJhLjguOCwwLDEsMC0xLjEzLTEuMTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDI3LjE1VjIxbC0yLjI0LTIuNDUsMS44OS0xLjg5YS44LjgsMCwwLDAtMS4xMy0x'@; put 'LjEzbC0zLDMsMi44NiwzLjEzdjUuNTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy44NiwyOS4xNUgxMi4xMWEuOC44LDAsMSwwLDAsMS42SDIzLjg2YS44LjgsMCwwLDAsMC0x'@; put 'LjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiwzMi4xNUgxNGEuOC44LDAsMSwwLDAsMS42SDIyYS44LjgsMCwxLDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk'@; put 'Z2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNS43MiwxNC43NSwxOC40NSwxMmEuOC44LDAsMSwwLTEuMTMtMS4xM2wtMi43MywyLjczYS44LjgsMCwwLDAsMS4xMywxLjEzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcsMTIuODhjMCwuMTIsMCwuMjMsMCwuMzVBOC42NCw4LjY0LDAsMCwxLDI2LjIxLDE3YTE1Ljc5LDE1Ljc5LDAsMCwxLTEsMS41NEExOC40NiwxOC40NiwwLDAsMCwyMywyMi40NGExOC4xNywx'@; put 'OC4xNywwLDAsMC0uNzEsNC43MWgyYTE2LjE5LDE2LjE5LDAsMCwxLC41OS00LDE3LDE3LDAsMCwxLDItMy40N0ExNi4zMSwxNi4zMSwwLDAsMCwyOCwxNy44NmExMC42MywxMC42MywwLDAsMCwxLTQuNDNBNy40NSw3LjQ1LDAsMCwxLDI3LDEyLjg4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUt'@; put 'LWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuNzEsMjcuMTVBMTguMTcsMTguMTcsMCwwLDAsMTMsMjIuNDRhMTguNDYsMTguNDYsMCwwLDAtMi4yMi0zLjkyLDE1Ljc5LDE1Ljc5LDAsMCwxLTEtMS41NEE4LjY0LDguNjQs'@; put 'MCwwLDEsOSwxMy4yMyw5LDksMCwwLDEsMjIuNTMsNS40N2E3LjQ1LDcuNDUsMCwwLDEsLjQzLTIsMTEsMTEsMCwwLDAtMTYsOS44LDEwLjY4LDEwLjY4LDAsMCwwLDEsNC42MywxNi4zNiwxNi4zNiwwLDAsMCwxLjEyLDEuNzgsMTcsMTcsMCwwLDEsMiwzLjQ3LDE2LjE5LDE2LjE5LDAsMCwx'@; put 'LC41OSw0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWJh'@; put 'ZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjg2LDI5LjE1SDEyLjExYS44LjgsMCwxLDAsMCwxLjZIMjMuODZhLjguOCwwLDAsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9'@; put 'Ik0yMiwzMi4xNUgxNGEuOC44LDAsMSwwLDAsMS42SDIyYS44LjgsMCwxLDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMi4yNWExMSwxMSwwLDAsMC0xMSwxMSwxMC42OCwxMC42OCwwLDAsMCwxLDQu'@; put 'NjMsMTYuMzYsMTYuMzYsMCwwLDAsMS4xMiwxLjc4LDE3LDE3LDAsMCwxLDIsMy40NywxNi4xOSwxNi4xOSwwLDAsMSwuNTksNGg1LjY5VjIxLjYxbC0yLjg2LTMuMTMsMy0zYS44LjgsMCwwLDEsMS4xMywxLjEzbC0xLjg5LDEuODlMMTksMjF2Ni4xN0gyNC4zYTE2LjE5LDE2LjE5LDAsMCwx'@; put 'LC41OS00LDE3LDE3LDAsMCwxLDItMy40N0ExNi4zMSwxNi4zMSwwLDAsMCwyOCwxNy44NmExMC42OCwxMC42OCwwLDAsMCwxLTQuNjNBMTEsMTEsMCwwLDAsMTgsMi4yNVpNMTguNDUsMTJsLTIuNzMsMi43M2EuOC44LDAsMSwxLTEuMTMtMS4xM2wyLjczLTIuNzNBLjguOCwwLDEsMSwxOC40'@; put 'NSwxMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy44NiwyOS4xNUgxMi4xMWEuOC44LDAsMSwwLDAsMS42SDIzLjg2YS44LjgsMCwwLDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1z'@; put 'b2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDMyLjE1SDE0YS44LjgsMCwxLDAsMCwxLjZIMjJhLjguOCwwLDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAg'@; put 'ICA8cGF0aCBkPSJNMjIuNSw2QTcuNDcsNy40NywwLDAsMSwyMywzLjQ0YTExLDExLDAsMCwwLTE2LDkuOCwxMC42OCwxMC42OCwwLDAsMCwxLDQuNjMsMTYuMzYsMTYuMzYsMCwwLDAsMS4xMiwxLjc4LDE3LDE3LDAsMCwxLDIsMy40NywxNi4xOSwxNi4xOSwwLDAsMSwuNTksNGg1LjY5VjIx'@; put 'LjYxbC0yLjg2LTMuMTMsMy0zYS44LjgsMCwwLDEsMS4xMywxLjEzbC0xLjg5LDEuODlMMTksMjF2Ni4xN0gyNC4zYTE2LjE5LDE2LjE5LDAsMCwxLC41OS00LDE3LDE3LDAsMCwxLDItMy40N0ExNi4zMSwxNi4zMSwwLDAsMCwyOCwxNy44NmExMC42MywxMC42MywwLDAsMCwxLTQuNDNBNy41'@; put 'LDcuNSwwLDAsMSwyMi41LDZabS00LDYtMi43MywyLjczYS44LjgsMCwxLDEtMS4xMy0xLjEzbDIuNzMtMi43M0EuOC44LDAsMSwxLDE4LjQ1LDEyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUg'@; put 'Y3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz4nKSxiLkNsclNoYXBlRG93bmxvYWQ9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTEiIGQ9Ik0zMSwzMUg1YTEsMSwwLDAsMCwwLDJIMzFhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDI5LjQ4LDI4LjYxLDE4Ljg3YTEsMSwwLDAsMC0xLjQx'@; put 'LTEuNDFMMTksMjUuNjVWNWExLDEsMCwwLDAtMiwwVjI1LjY1TDguODEsMTcuNDZhMSwxLDAsMSwwLTEuNDEsMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMSwzMUg1'@; put 'YTEsMSwwLDAsMCwwLDJIMzFhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0xOCwyOS40OCwyOC42MSwxOC44N2ExLDEsMCwwLDAtMS40MS0xLjQxTDE5'@; put 'LDI1LjY1VjVhMSwxLDAsMCwwLTIsMFYyNS42NUw4LjgxLDE3LjQ2YTEsMSwwLDEsMC0xLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIz'@; put 'MCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMxLDMxSDVhMSwxLDAsMCwwLDAsMkgzMWExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgICAg'@; put 'IDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMTgsMjkuNDgsMjguNjEsMTguODdhMSwxLDAsMCwwLTEuNDEtMS40MUwxOSwyNS42NVY1YTEsMSwwLDAsMC0yLDBWMjUuNjVMOC44MSwxNy40NmExLDEsMCwxLDAt'@; put 'MS40MSwxLjQxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhB'@; put 'MS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+JyksYi5DbHJTaGFwZVVwbG9hZD0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMxLDMxSDVh'@; put 'MSwxLDAsMCwwLDAsMkgzMWExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNOC44MSwxNSwxNyw2LjgzVjI3LjQ4YTEsMSwwLDAsMCwyLDBWNi44M0wyNy4xOSwxNWExLDEsMCwwLDAs'@; put 'MS40MS0xLjQxTDE4LDMsNy4zOSwxMy42MUExLDEsMCwxLDAsOC44MSwxNVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMxLDMxSDVjLTAuNiwwLTEsMC40LTEsMXMwLjQs'@; put 'MSwxLDFoMjZjMC42LDAsMS0wLjQsMS0xUzMxLjYsMzEsMzEsMzF6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik04LjgsMTVMMTcsNi44djIwLjZjMCwwLjYsMC40LDEsMSwx'@; put 'czEtMC40LDEtMVY2LjhMMjAuMSw4bDEtMS44TDE4LDNMNy40LDEzLjZDNywxNCw2LjksMTQuNiw3LjIsMTVzMSwwLjUsMS40LDAuMUM4LjcsMTUuMSw4LjgsMTUuMSw4LjgsMTV6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi45LDEuMUwyMS4xLDExYy0wLjQsMC42LTAuMiwxLjQsMC4zLDEuOGMwLjIsMC4yLDAuNSwwLjIsMC44LDAuMmgxMS41YzAuNywwLDEuMy0wLjUsMS4zLTEuMmMwLTAuMy0wLjEtMC41LTAuMi0wLjhsLTUuNy05Ljlj'@; put 'LTAuNC0wLjYtMS4xLTAuOC0xLjgtMC41QzI3LjEsMC44LDI3LDEsMjYuOSwxLjF6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzEsMzFINWExLDEsMCwwLDAsMCwySDMxYTEs'@; put 'MSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNOC44MSwxNSwxNyw2LjgzVjI3LjQ4YTEsMSwwLDAsMCwyLDBWNi44M0wyNy4xOSwxNWExLDEsMCwwLDAsMS40'@; put 'MS0xLjQxTDE4LDMsNy4zOSwxMy42MUExLDEsMCwxLDAsOC44MSwxNVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicp'@; put 'LGIuQ2xyU2hhcGVMb2NrPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTguMDksMjAuNTlBMi40MSwyLjQxLDAsMCwwLDE3LDI1LjE0VjI4aDJWMjUuMjNhMi40MSwyLjQxLDAsMCwwLS45MS00LjY0WiIvPlxu'@; put 'ICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjYsMTVWMTAuNzJhOC4yLDguMiwwLDAsMC04LTguMzYsOC4yLDguMiwwLDAsMC04LDguMzZWMTVIN1YzMmEyLDIsMCwwLDAsMiwySDI3YTIsMiwwLDAsMCwyLTJWMTVa'@; put 'TTEyLDEwLjcyYTYuMiw2LjIsMCwwLDEsNi02LjM2LDYuMiw2LjIsMCwwLDEsNiw2LjM2VjE1SDEyWk05LDMyVjE3SDI3VjMyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yNiwxNVYxMC43MmE4LjIsOC4yLDAs'@; put 'MCwwLTgtOC4zNiw4LjIsOC4yLDAsMCwwLTgsOC4zNlYxNUg3VjMyYTIsMiwwLDAsMCwyLDJIMjdhMiwyLDAsMCwwLDItMlYxNVpNMTksMjUuMjNWMjhIMTdWMjUuMTRhMi40LDIuNCwwLDEsMSwyLC4wOVpNMjQsMTVIMTJWMTAuNzJhNi4yLDYuMiwwLDAsMSw2LTYuMzYsNi4yLDYuMiwwLDAs'@; put 'MSw2LDYuMzZaIi8+JyksYi5DbHJTaGFwZVVubG9jaz0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTEyLDI1LjE0VjI4aDJWMjUuMjNhMi40MiwyLjQyLDAsMSwwLTItLjA5WiIvPlxuICAgICAgICAgICAgICAg'@; put 'IDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjYsMmE4LjIsOC4yLDAsMCwwLTgsOC4zNlYxNUgyVjMyYTIsMiwwLDAsMCwyLDJIMjJhMiwyLDAsMCwwLDItMlYxNUgyMFYxMC4zNkE2LjIsNi4yLDAsMCwxLDI2LDRhNi4yLDYuMiwwLDAsMSw2'@; put 'LDYuMzZ2Ni44M2ExLDEsMCwwLDAsMiwwVjEwLjM2QTguMiw4LjIsMCwwLDAsMjYsMlpNMjIsMTdWMzJINFYxN1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjYsMmE4LjIsOC4yLDAsMCwwLTgsOC4zNlYxNUgy'@; put 'VjMyYTIsMiwwLDAsMCwyLDJIMjJhMiwyLDAsMCwwLDItMlYxNUgyMFYxMC4zNkE2LjIsNi4yLDAsMCwxLDI2LDRhNi4yLDYuMiwwLDAsMSw2LDYuMzZ2Ni44M2ExLDEsMCwwLDAsMiwwVjEwLjM2QTguMiw4LjIsMCwwLDAsMjYsMlpNMTQsMjUuMjNWMjhIMTJWMjUuMTRhMi40LDIuNCwwLDEs'@; put 'MSwyLC4wOVoiLz4nKSxiLkNsclNoYXBlVXNlcnM9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNy45LDE3LjNjMi43LDAsNC44LTIuMiw0LjgtNC45YzAtMi43LTIuMi00LjgtNC45LTQuOGMtMi43LDAtNC44'@; put 'LDIuMi00LjgsNC44QzEzLDE1LjEsMTUuMiwxNy4zLDE3LjksMTcuM3ogTTE3LjgsOS42QzE3LjksOS42LDE3LjksOS42LDE3LjgsOS42YzEuNiwwLDIuOSwxLjMsMi45LDIuOXMtMS4zLDIuOC0yLjksMi44Yy0xLjYsMC0yLjgtMS4zLTIuOC0yLjhDMTUsMTAuOSwxNi4zLDkuNiwxNy44LDku'@; put 'NnoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMyLjcsMTYuN2MtMS45LTEuNy00LjQtMi42LTctMi41Yy0wLjMsMC0wLjUsMC0wLjgsMGMtMC4yLDAuOC0wLjUsMS41LTAuOSwyLjFjMC42LTAuMSwxLjEt'@; put 'MC4xLDEuNy0wLjFjMS45LTAuMSwzLjgsMC41LDUuMywxLjZWMjVoMnYtOEwzMi43LDE2Ljd6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0yMy40LDcuOGMwLjUtMS4yLDEuOS0xLjgsMy4yLTEuM2MxLjIs'@; put 'MC41LDEuOCwxLjksMS4zLDMuMmMtMC40LDAuOS0xLjMsMS41LTIuMiwxLjVjLTAuMiwwLTAuNSwwLTAuNy0wLjFjMC4xLDAuNSwwLjEsMSwwLjEsMS40YzAsMC4yLDAsMC40LDAsMC42YzAuMiwwLDAuNCwwLjEsMC42LDAuMWMyLjUsMCw0LjUtMiw0LjUtNC40YzAtMi41LTItNC41LTQuNC00'@; put 'LjVjLTEuNiwwLTMsMC44LTMuOCwyLjJDMjIuNSw2LjgsMjMsNy4yLDIzLjQsNy44eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNMTIsMTYuNGMtMC40LTAuNi0wLjctMS4zLTAuOS0yLjFjLTAuMywwLTAu'@; put 'NSwwLTAuOCwwYy0yLjYtMC4xLTUuMSwwLjgtNywyLjRMMywxN3Y4aDJ2LTcuMmMxLjYtMS4xLDMuNC0xLjcsNS4zLTEuNkMxMC45LDE2LjIsMTEuNSwxNi4zLDEyLDE2LjR6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTUiIGQ9Ik0xMC4zLDEzLjFjMC4yLDAsMC40LDAsMC42LTAuMWMwLTAuMiwwLTAuNCwwLTAuNmMwLTAuNSwwLTEsMC4xLTEuNGMtMC4yLDAuMS0wLjUsMC4xLTAuNywwLjFjLTEuMywwLTIuNC0xLjEtMi40LTIuNGMwLTEuMywxLjEtMi40LDIuNC0yLjRjMSwwLDEuOSwwLjYsMi4zLDEuNWMw'@; put 'LjQtMC41LDEtMSwxLjUtMS40Yy0xLjMtMi4xLTQtMi44LTYuMS0xLjVjLTIuMSwxLjMtMi44LDQtMS41LDYuMUM3LjMsMTIuMyw4LjcsMTMuMSwxMC4zLDEzLjF6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIGQ9'@; put 'Ik0yNi4xLDIyLjdsLTAuMi0wLjNjLTItMi4yLTQuOC0zLjUtNy44LTMuNGMtMy0wLjEtNS45LDEuMi03LjksMy40TDEwLDIyLjd2Ny42YzAsMC45LDAuNywxLjcsMS43LDEuN2MwLDAsMCwwLDAsMGgxMi44YzAuOSwwLDEuNy0wLjgsMS43LTEuN2MwLDAsMCwwLDAsMFYyMi43eiBNMjQuMSwz'@; put 'MEgxMnYtNi42YzEuNi0xLjYsMy44LTIuNCw2LjEtMi40YzIuMi0wLjEsNC40LDAuOCw2LDIuNFYzMHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTExLjA5LDE0LjU3Yy4x'@; put 'LDAsLjIsMCwuMzEsMGE2LjQzLDYuNDMsMCwwLDEsLjA5LTIsMi4wOSwyLjA5LDAsMSwxLDEuNDctMyw2LjU4LDYuNTgsMCwwLDEsMS41NS0xLjMxLDQuMDksNC4wOSwwLDEsMC0zLjQyLDYuMzNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0'@; put 'ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0xMywxOC4xNGE2LjUzLDYuNTMsMCwwLDEtMS4yOC0yLjJsLS42MywwYTguNjcsOC42NywwLDAsMC02LjQzLDIuNTJsLS4yNC4yOHY3aDJWMTkuNTFhNyw3LDAsMCwxLDQuNjctMS42QTguMDksOC4wOSwwLDAsMSwxMywxOC4x'@; put 'NFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgZD0iTTMxLjM1LDE4LjQyQTguNTksOC41OSwwLDAsMCwyNSwxNS45MWMtLjMyLDAtLjYsMC0uOS4wNmE2LjUzLDYuNTMsMCwwLDEt'@; put 'MS4zNSwyLjI1QTcuOSw3LjksMCwwLDEsMjUsMTcuOTFhNi45NCw2Ljk0LDAsMCwxLDQuNjQsMS41OHY2LjI3aDJWMTguN1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgZD0iTTE4'@; put 'LjEsMTkuNzNBOS42OSw5LjY5LDAsMCwwLDExLDIyLjQ3bC0uMjUuMjh2Ny4zM2ExLjU3LDEuNTcsMCwwLDAsMS42MSwxLjU0SDIzLjgzYTEuNTcsMS41NywwLDAsMCwxLjYxLTEuNTRWMjIuNzNsLS4yNS0uMjhBOS41OCw5LjU4LDAsMCwwLDE4LjEsMTkuNzNabTUuMzMsOS44OEgxMi43M1Yy'@; put 'My41NWE4LjA4LDguMDgsMCwwLDEsNS4zNy0xLjgyLDgsOCwwLDAsMSw1LjMzLDEuOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIgZD0iTTIwLjI4LDE0LjI3YTIuNDYsMi40Niww'@; put 'LDEsMS0yLjQyLTIuODksMi40NCwyLjQ0LDAsMCwxLDEsLjI0LDMuNjcsMy42NywwLDAsMSwuNDMtMiw0LjQxLDQuNDEsMCwwLDAtMS40OC0uMjdBNC40Nyw0LjQ3LDAsMSwwLDIyLjE0LDE1LDMuNjksMy42OSwwLDAsMSwyMC4yOCwxNC4yN1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBj'@; put 'bGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI3LjE4LjhsLTUuNzIsOS45MWExLjI4LDEuMjgsMCwwLDAsMS4xLDEuOTFIMzRhMS4yOCwxLjI4LDAsMCwwLDEuMS0xLjkxTDI5LjM5LjhBMS4yOCwxLjI4'@; put 'LDAsMCwwLDI3LjE4LjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTEuMDksMTQuNTdjLjEsMCwuMiwwLC4zMSwwYTYuNDMsNi40MywwLDAsMSwuMDktMiwyLjA5LDIuMDks'@; put 'MCwxLDEsMS40Ny0zLDYuNTgsNi41OCwwLDAsMSwxLjU1LTEuMzEsNC4wOSw0LjA5LDAsMSwwLTMuNDIsNi4zM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0xMywxOC4xNGE2'@; put 'LjUzLDYuNTMsMCwwLDEtMS4yOC0yLjJsLS42MywwYTguNjcsOC42NywwLDAsMC02LjQzLDIuNTJsLS4yNC4yOHY3aDJWMTkuNTFhNyw3LDAsMCwxLDQuNjctMS42QTguMDksOC4wOSwwLDAsMSwxMywxOC4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0zMS4zNSwxOC40MkE4LjU5LDguNTksMCwwLDAsMjUsMTUuOTFjLS4zMiwwLS42LDAtLjkuMDZhNi41Myw2LjUzLDAsMCwxLTEuMzUsMi4yNUE3LjksNy45LDAsMCwxLDI1LDE3LjkxYTYuOTQsNi45NCwwLDAsMSw0'@; put 'LjY0LDEuNTh2Ni4yN2gyVjE4LjdaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiBkPSJNMTcuODYsMTguM2E0LjQ3LDQuNDcsMCwxLDAtNC40Ny00LjQ3QTQuNDcsNC40NywwLDAsMCwx'@; put 'Ny44NiwxOC4zWm0wLTYuOTNhMi40NywyLjQ3LDAsMSwxLTIuNDcsMi40N0EyLjQ3LDIuNDcsMCwwLDEsMTcuODYsMTEuMzdaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIiBkPSJNMTgu'@; put 'MSwxOS43M0E5LjY5LDkuNjksMCwwLDAsMTEsMjIuNDdsLS4yNS4yOHY3LjMzYTEuNTcsMS41NywwLDAsMCwxLjYxLDEuNTRIMjMuODNhMS41NywxLjU3LDAsMCwwLDEuNjEtMS41NFYyMi43M2wtLjI1LS4yOEE5LjU4LDkuNTgsMCwwLDAsMTguMSwxOS43M1ptNS4zMyw5Ljg4SDEyLjczVjIz'@; put 'LjU1YTguMDgsOC4wOCwwLDAsMSw1LjM3LTEuODIsOCw4LDAsMCwxLDUuMzMsMS44WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIgZD0iTTI2LjM3LDEyYTIsMiwwLDAsMS0yLjA5LjQy'@; put 'LDYuNTMsNi41MywwLDAsMSwuMTUsMS4zOCw2LjU5LDYuNTksMCwwLDEsMCwuNjgsNCw0LDAsMCwwLC41Ny4wNiw0LjA4LDQuMDgsMCwwLDAsMy4zLTEuN0E3LjQ1LDcuNDUsMCwwLDEsMjYuMzcsMTJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJh'@; put 'ZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIiBkPSJNMjIuOTUsNi45M2E0LjE2LDQuMTYsMCwwLDAtMS40NywxLjQ0QTYuNTksNi41OSwwLDAsMSwyMyw5Ljc3YTIuMSwyLjEsMCwwLDEsLjU5LS44M0E3LjQ0LDcuNDQsMCwwLDEsMjIuOTUsNi45M1oiLz5cbiAgICAgICAgICAg'@; put 'ICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwLjMzIiBjeT0iNS42NyIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp'@; put 'ZC1wYXRoLTEiIGQ9Ik0xMiwxNi4xNHEtLjQzLDAtLjg3LDBhOC42Nyw4LjY3LDAsMCwwLTYuNDMsMi41MmwtLjI0LjI4djguMjhIOC41NHYtNC43bC41NS0uNjIuMjUtLjI5YTExLDExLDAsMCwxLDQuNzEtMi44NkE2LjU5LDYuNTksMCwwLDEsMTIsMTYuMTRaIi8+XG4gICAgICAgICAgICAg'@; put 'ICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMxLjM0LDE4LjYzYTguNjcsOC42NywwLDAsMC02LjQzLTIuNTIsMTAuNDcsMTAuNDcsMCwwLDAtMS4wOS4wNiw2LjU5LDYuNTksMCwwLDEtMiwyLjQ1LDEwLjkxLDEwLjkxLDAsMCwxLDUsM2wuMjUu'@; put 'MjguNTQuNjJ2NC43MWgzLjk0VjE4LjkxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0xMS4xLDE0LjE5Yy4xMSwwLC4yLDAsLjMxLDBhNi40NSw2LjQ1LDAsMCwxLDMuMTEtNi4yOSw0LjA5LDQuMDksMCwxLDAt'@; put 'My40Miw2LjMzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIGQ9Ik0yNC40MywxMy40NGE2LjU0LDYuNTQsMCwwLDEsMCwuNjksNC4wOSw0LjA5LDAsMCwwLC41OC4wNWguMTlBNC4wOSw0LjA5LDAsMSwwLDIxLjQ3LDgs'@; put 'Ni41Myw2LjUzLDAsMCwxLDI0LjQzLDEzLjQ0WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIgY3g9IjE3Ljg3IiBjeT0iMTMuNDUiIHI9IjQuNDciLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt'@; put 'c29saWQgY2xyLWktc29saWQtcGF0aC02IiBkPSJNMTguMTEsMjAuM0E5LjY5LDkuNjksMCwwLDAsMTEsMjNsLS4yNS4yOHY2LjMzYTEuNTcsMS41NywwLDAsMCwxLjYsMS41NEgyMy44NGExLjU3LDEuNTcsMCwwLDAsMS42LTEuNTRWMjMuM0wyNS4yLDIzQTkuNTgsOS41OCwwLDAsMCwxOC4x'@; put 'MSwyMC4zWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xMiwxNi4xNHEtLjQzLDAtLjg3LDBhOC42Nyw4LjY3LDAsMCwwLTYuNDMsMi41MmwtLjI0LjI4djguMjhIOC41NHYtNC43'@; put 'bC41NS0uNjIuMjUtLjI5YTExLDExLDAsMCwxLDQuNzEtMi44NkE2LjU5LDYuNTksMCwwLDEsMTIsMTYuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTMxLjM0LDE4LjYzYTgu'@; put 'NjcsOC42NywwLDAsMC02LjQzLTIuNTIsMTAuNDcsMTAuNDcsMCwwLDAtMS4wOS4wNiw2LjU5LDYuNTksMCwwLDEtMiwyLjQ1LDEwLjkxLDEwLjkxLDAsMCwxLDUsM2wuMjUuMjguNTQuNjJ2NC43MWgzLjk0VjE4LjkxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1z'@; put 'b2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0xMS4xLDE0LjE5Yy4xMSwwLC4yLDAsLjMxLDBhNi40NSw2LjQ1LDAsMCwxLDMuMTEtNi4yOSw0LjA5LDQuMDksMCwxLDAtMy40Miw2LjMzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHIt'@; put 'aS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQiIGQ9Ik0xOC4xMSwyMC4zQTkuNjksOS42OSwwLDAsMCwxMSwyM2wtLjI1LjI4djYuMzNhMS41NywxLjU3LDAsMCwwLDEuNiwxLjU0SDIzLjg0YTEuNTcsMS41NywwLDAsMCwxLjYtMS41NFYyMy4zTDI1LjIsMjNB'@; put 'OS41OCw5LjU4LDAsMCwwLDE4LjExLDIwLjNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNS0tYWxlcnRlZCIgZD0iTTE3Ljg3LDE3LjkyYTQuNDYsNC40NiwwLDAsMCw0LTIuNTRBMy42NywzLjY3LDAsMCwx'@; put 'LDE5LDkuODlsLjM1LS42MUE0LjQyLDQuNDIsMCwwLDAsMTcuODcsOWE0LjQ3LDQuNDcsMCwxLDAsMCw4LjkzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTYtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0y'@; put 'Ni44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdl'@; put 'ZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTEyLDE2LjE0cS0uNDMsMC0uODcsMGE4LjY3LDguNjcsMCwwLDAtNi40MywyLjUybC0uMjQuMjh2OC4yOEg4LjU0di00LjdsLjU1LS42Mi4yNS0uMjlhMTEsMTEsMCwwLDEsNC43MS0yLjg2QTYuNTgsNi41OCwwLDAsMSwxMiwxNi4x'@; put 'NFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTMxLjM0LDE4LjYzYTguNjcsOC42NywwLDAsMC02LjQzLTIuNTIsMTAuNDcsMTAuNDcsMCwwLDAtMS4wOS4wNiw2LjU5LDYuNTksMCww'@; put 'LDEtMiwyLjQ1LDEwLjkxLDEwLjkxLDAsMCwxLDUsM2wuMjUuMjguNTQuNjJ2NC43MWgzLjk0VjE4LjkxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMTEuMSwxNC4xOWMuMTEsMCwu'@; put 'MiwwLC4zMSwwYTYuNDUsNi40NSwwLDAsMSwzLjExLTYuMjksNC4wOSw0LjA5LDAsMSwwLTMuNDIsNi4zM1oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIiBjeD0iMTcuODciIGN5PSIxMy40'@; put 'NSIgcj0iNC40NyIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNS0tYmFkZ2VkIiBkPSJNMTguMTEsMjAuM0E5LjY5LDkuNjksMCwwLDAsMTEsMjNsLS4yNS4yOHY2LjMzYTEuNTcsMS41NywwLDAsMCwxLjYsMS41'@; put 'NEgyMy44NGExLjU3LDEuNTcsMCwwLDAsMS42LTEuNTRWMjMuM0wyNS4yLDIzQTkuNTgsOS41OCwwLDAsMCwxOC4xMSwyMC4zWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNi0tYmFkZ2VkIiBkPSJNMjQuNDMs'@; put 'MTMuNDRhNi41NCw2LjU0LDAsMCwxLDAsLjY5LDQuMDksNC4wOSwwLDAsMCwuNTguMDVoLjE5YTQuMDUsNC4wNSwwLDAsMCwyLjUyLTEsNy41LDcuNSwwLDAsMS01LjE0LTYuMzJBNC4xMyw0LjEzLDAsMCwwLDIxLjQ3LDgsNi41Myw2LjUzLDAsMCwxLDI0LjQzLDEzLjQ0WiIvPlxuICAgICAg'@; put 'ICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC03LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxiLkNsclNoYXBlUG9wT3V0PSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjcsMzNINWEyLDIsMCwwLDEtMi0yVjlBMiwyLDAsMCwxLDUsN0gxNVY5SDVWMzFIMjdWMjFoMlYzMUEyLDIsMCwwLDEsMjcsMzNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTIiIGQ9Ik0xOCwzYTEsMSwwLDAsMCwwLDJIMjkuNTlMMTUuNzQsMTguODVhMSwxLDAsMSwwLDEuNDEsMS40MUwzMSw2LjQxVjE4YTEsMSwwLDAsMCwyLDBWM1oiLz4nKSxiLkNsclNoYXBlRmlsdGVyPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzMsNEgzQTEsMSwwLDAsMCwyLDVWNi42N2ExLjc5LDEuNzksMCwwLDAsLjUzLDEuMjdMMTQsMTkuNTh2MTAuMmwyLC43NlYxOWExLDEsMCwwLDAtLjI5LS43MUw0LDYuNTlWNkgzMnYuNjFMMjAuMzMsMTguMjlBMSwxLDAsMCwwLDIwLDE5'@; put 'bDAsMTMuMjFMMjIsMzNWMTkuNUwzMy40Nyw4QTEuODEsMS44MSwwLDAsMCwzNCw2LjdWNUExLDEsMCwwLDAsMzMsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjIsMzNWMTkuNUwzMy40Nyw4QTEuODEsMS44'@; put 'MSwwLDAsMCwzNCw2LjdWNWExLDEsMCwwLDAtMS0xSDNBMSwxLDAsMCwwLDIsNVY2LjY3YTEuNzksMS43OSwwLDAsMCwuNTMsMS4yN0wxNCwxOS41OHYxMC4yWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy40OCw0aC0zMUEuNTIuNTIsMCwwLDAsMiw0LjUyVjYuMjRhMS4zMywx'@; put 'LjMzLDAsMCwwLC4zOS45NWwxMiwxMnYxMGw3LjI1LDMuNjFWMTkuMTdsMTItMTJBMS4zNSwxLjM1LDAsMCwwLDM0LDYuMjZWNC41MkEuNTIuNTIsMCwwLDAsMzMuNDgsNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksYi5DbHJTaGFwZVBpbj0oMCxwLmNs'@; put 'ckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMzLDE2LjU5YTEsMSwwLDAsMS0uNzEtLjI5TDE5LjcsMy43MWExLDEsMCwwLDEsMS40MS0xLjQxTDMzLjcxLDE0Ljg5QTEsMSwwLDAsMSwzMywxNi41OVoiLz5cbiAgICAgICAg'@; put 'ICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI4LjUyLDE1LjU2bC0xLjQxLTEuNDEtNy4yLDcuMmExLDEsMCwwLDAtLjI1LDEsOSw5LDAsMCwxLTEuNTMsOC4wOUw1LjU4LDE3Ljg3YTksOSwwLDAsMSw4LjA5LTEuNTMsMSwxLDAs'@; put 'MCwwLDEtLjI1bDcuMi03LjJMMjAuNDQsNy40OGwtNi43OSw2Ljc5QTEwLjk0LDEwLjk0LDAsMCwwLDMuNDEsMTcuMTFhMSwxLDAsMCwwLDAsMS40Mmw2LjMzLDYuMzNMMi4yOSwzMi4yOWExLDEsMCwxLDAsMS40MSwxLjQxbDcuNDQtNy40NCw2LjMzLDYuMzNhMSwxLDAsMCwwLC43MS4yOWgw'@; put 'YTEsMSwwLDAsMCwuNzEtLjMsMTEsMTEsMCwwLDAsMi44NC0xMC4yNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzMsMTYuNzFhMSwxLDAsMCwxLS43MS0uMjlMMTkuNywzLjgyYTEsMSwwLDAsMSwxLjQxLTEu'@; put 'NDFMMzMuNzEsMTVBMSwxLDAsMCwxLDMzLDE2LjcxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yMC40NCw3LjU5bC02Ljc5LDYuNzlBMTAuOTQsMTAuOTQsMCwwLDAsMy40MSwxNy4yMmExLDEsMCwwLDAsMCwx'@; put 'LjQyTDkuNzMsMjUsMi4yOSwzMi40MWExLDEsMCwxLDAsMS40MSwxLjQxbDcuNDQtNy40NCw2LjMzLDYuMzNhMSwxLDAsMCwwLC43MS4yOWgwYTEsMSwwLDAsMCwuNzEtLjMsMTEsMTEsMCwwLDAsMi44NC0xMC4yNGw2Ljc5LTYuNzlaIi8+JyksYi5DbHJTaGFwZUZpbGU9KDAscC5jbHJJY29u'@; put 'U1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yMS44OSw0SDcuODNBMS44OCwxLjg4LDAsMCwwLDYsNS45MVYzMC4wOUExLjg4LDEuODgsMCwwLDAsNy44MywzMkgyOC4xN0ExLjg4LDEuODgsMCwwLDAsMzAsMzAuMDlWMTEuOTJabS0u'@; put 'MywyLjQ5LDYsNS45aC02Wk04LDMwVjZIMjB2OGg4VjMwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTIxLjU5LDEyLjM5VjYuNDlsMS4wNywxYTcuMzEsNy4zMSwwLDAsMSww'@; put 'LTIuODJMMjEuODksNEg3LjgzQTEuODgsMS44OCwwLDAsMCw2LDUuOTFWMzAuMDlBMS44OCwxLjg4LDAsMCwwLDcuODMsMzJIMjguMTdBMS44OCwxLjg4LDAsMCwwLDMwLDMwLjA5VjEzLjVhNy40NSw3LjQ1LDAsMCwxLTMuOTEtMS4xMVpNMjgsMzBIOFY2SDIwdjhoOFoiLz5cbiAgICAgICAg'@; put 'ICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjgsMTUuNFYzMEg4VjZIMjBWOC4yNWwyLjI1LTMuOUwyMS44OSw0SDcuODNBMS44OCwxLjg4LDAsMCwwLDYsNS45MVYzMC4wOUExLjg4LDEuODgsMCwwLDAsNy44MywzMkgyOC4xN0ExLjg4LDEuODgsMCwwLDAsMzAsMzAuMDlWMTUu'@; put 'NFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4y'@; put 'OCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yMS44OSw0SDcuODNBMS44OCwxLjg4LDAsMCwwLDYsNS45MVYzMC4w'@; put 'OUExLjg4LDEuODgsMCwwLDAsNy44MywzMkgyOC4xN0ExLjg4LDEuODgsMCwwLDAsMzAsMzAuMDlWMTEuOTJaTTIxLDEzVjUuODRMMjguMywxM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIg'@; put 'ZD0iTTI3LjI1LDEzSDIxVjUuODRsMS42NCwxLjZhNy4yNSw3LjI1LDAsMCwxLDAtMi43NEwyMS44OSw0SDcuODNBMS44OCwxLjg4LDAsMCwwLDYsNS45MVYzMC4wOUExLjg4LDEuODgsMCwwLDAsNy44MywzMkgyOC4xN0ExLjg4LDEuODgsMCwwLDAsMzAsMzAuMDlWMTMuNUE3LjQ3LDcuNDcs'@; put 'MCwwLDEsMjcuMjUsMTNaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJj'@; put 'bHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yMi4yLDE1LjRjLTIsMC0zLjctMS42LTMuNy0zLjZjMC0wLjcsMC4yLTEuMywwLjUtMS45bDMuMi01LjVMMjEuOSw0SDcuOEM2LjgsNCw2LDQuOSw2LDUuOXYyNC4yYzAsMSwwLjgsMS45LDEuOCwx'@; put 'LjloMjAuM2MxLDAsMS44LTAuOSwxLjgtMS45VjE1LjRIMjIuMnoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuOSwxLjFMMjEuMSwxMWMtMC40LDAuNi0w'@; put 'LjIsMS40LDAuMywxLjhjMC4yLDAuMiwwLjUsMC4yLDAuOCwwLjJoMTEuNWMwLjcsMCwxLjMtMC41LDEuMy0xLjJjMC0wLjMtMC4xLTAuNS0wLjItMC44bC01LjctOS45Yy0wLjQtMC42LTEuMS0wLjgtMS44LTAuNUMyNy4xLDAuOCwyNywxLDI2LjksMS4xeiIvPicpLGIuQ2xyU2hhcGVQbHVz'@; put 'PSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAsMTdIMTlWNmExLDEsMCwxLDAtMiwwVjE3SDZhMSwxLDAsMCwwLTEsMSwuOTEuOTEsMCwwLDAsMSwuOTRIMTdWMzBhMSwxLDAsMSwwLDIsMFYxOUgzMGExLDEs'@; put 'MCwwLDAsMS0xQTEsMSwwLDAsMCwzMCwxN1oiLz4nKSxiLkNsclNoYXBlTWludXM9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI2LDE3SDEwYTEsMSwwLDAsMCwwLDJIMjZhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicp'@; put 'LGIuQ2xyU2hhcGVNaW51c0NpcmNsZT0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQsMTdIMTJhMSwxLDAsMCwwLDAsMkgyNGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEs'@; put 'MCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm02LDE3LjVIMTJhMS41LDEuNSwwLDAsMSwwLTNIMjRhMS41LDEuNSwwLDAsMSwwLDNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGIuQ2xyU2hhcGVQbHVzQ2lyY2xlPSgwLHAuY2xySWNvblNWRykoJzxwYXRo'@; put 'IGQ9Ik0yNi4xNywxN0gxOVY5LjgzYTEsMSwwLDAsMC0yLDBWMTdIOS44M2ExLDEsMCwwLDAsMCwySDE3djcuMTdhMSwxLDAsMCwwLDIsMFYxOWg3LjE3YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBh'@; put 'dGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQsMThB'@; put 'MTYsMTYsMCwxLDEsMTgsMiwxNiwxNiwwLDAsMSwzNCwxOFptLTguNDEtMS41SDE5LjVWMTAuNDFhMS41LDEuNSwwLDAsMC0zLDBWMTYuNUgxMC40MWExLjUsMS41LDAsMCwwLDAsM0gxNi41djYuMDlhMS41LDEuNSwwLDAsMCwzLDBWMTkuNWg2LjA5YTEuNSwxLjUsMCwwLDAsMC0zWiIgY2xh'@; put 'c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPicpLGIuQ2xyU2hhcGVCYW49KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJa'@; put 'TTQsMThBMTMuOTMsMTMuOTMsMCwwLDEsNy40Myw4Ljg1TDI3LjE1LDI4LjU3QTE0LDE0LDAsMCwxLDQsMThabTI0LjU3LDkuMTVMOC44NSw3LjQzQTE0LDE0LDAsMCwxLDI4LjU3LDI3LjE1WiIvPicpLGIuQ2xyU2hhcGVUaW1lc0NpcmNsZT0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE5LjYxLDE4bDQuODYtNC44NmExLDEsMCwwLDAtMS40MS0xLjQxTDE4LjIsMTYuNTRsLTQuODktNC44OWExLDEsMCwwLDAtMS40MSwxLjQxTDE2Ljc4LDE4LDEyLDIyLjcyYTEsMSwwLDEsMCwxLjQxLDEuNDFsNC43'@; put 'Ny00Ljc3LDQuNzQsNC43NGExLDEsMCwwLDAsMS40MS0xLjQxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgsMTYsMTYsMCwwLDEsMTgsMzRaTTE4LDRBMTQsMTQs'@; put 'MCwxLDAsMzIsMTgsMTQsMTQsMCwwLDAsMTgsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm04LDIyLjFhMS40LDEuNCwwLDAsMS0yLDJs'@; put 'LTYtNkwxMiwyNi4xMmExLjQsMS40LDAsMSwxLTItMkwxNiwxOC4wOCw5LjgzLDExLjg2YTEuNCwxLjQsMCwxLDEsMi0yTDE4LDE2LjFsNi4xNy02LjE3YTEuNCwxLjQsMCwxLDEsMiwyTDIwLDE4LjA4WiIvPicpLGIuQ2xyU2hhcGVUcmFzaD0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI3LjE0LDM0SDguODZBMi45MywyLjkzLDAsMCwxLDYsMzFWMTEuMjNIOFYzMWEuOTMuOTMsMCwwLDAsLjg2LDFIMjcuMTRBLjkzLjkzLDAsMCwwLDI4LDMxVjExLjIzaDJWMzFBMi45MywyLjkzLDAsMCwxLDI3LjE0'@; put 'LDM0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzAuNzgsOUg1QTEsMSwwLDAsMSw1LDdIMzAuNzhhMSwxLDAsMCwxLDAsMloiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgeD0iMjEiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIxNSIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4PSIxMyIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjE1'@; put 'Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIGQ9Ik0yMyw1Ljg2SDIxLjFWNEgxNC45VjUuODZIMTNWNGEyLDIsMCwwLDEsMS45LTJoNi4yQTIsMiwwLDAsMSwyMyw0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRo'@; put 'IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik02LDlWMzFhMi45MywyLjkzLDAsMCwwLDIuODYsM0gyNy4wOUEyLjkzLDIuOTMsMCwwLDAsMzAsMzFWOVptOSwyMEgxM1YxNGgyWm04LDBIMjFWMTRoMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0i'@; put 'Y2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMzAuNzMsNUgyM1Y0QTIsMiwwLDAsMCwyMSwyaC02LjJBMiwyLDAsMCwwLDEzLDRWNUg1QTEsMSwwLDEsMCw1LDdIMzAuNzNhMSwxLDAsMCwwLDAtMloiLz4nKSxiLkNsclNoYXBlVGFnPSgwLHAuY2xySWNvblNWRykoJzxjaXJj'@; put 'bGUgY3g9IjEwLjUyIiBjeT0iMTAuNTIiIHI9IjEuNDMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuOTMsMTkuMiwxNy4zMyw0LjZBMiwyLDAsMCwwLDE1LjkyLDRMNiw0QTIsMiwwLDAsMCw0LDZsMCw5Ljky'@; put 'YTIsMiwwLDAsMCwuNTksMS40MWwxNC42LDE0LjZhMiwyLDAsMCwwLDIuODMsMGw5LjktOS45QTIsMiwwLDAsMCwzMS45MywxOS4yWk0yMC42MiwzMC41Miw2LDE1LjkxVjZoOS45MmwxNC42LDE0LjYyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAg'@; put 'ICAgICAgICAgIDxjaXJjbGUgY3g9IjEwLjUyIiBjeT0iMTAuNTIiIHI9IjEuNDMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuOTMsMTkuMmwtMy44LTMuOEgyNS4zMWw1LjIy'@; put 'LDUuMjItOS45LDkuOUw2LDE1LjkxVjZoOS45MmwzLjQxLDMuNDEsMS0xLjc4LTMtM0EyLDIsMCwwLDAsMTUuOTIsNEw2LDRBMiwyLDAsMCwwLDQsNmwwLDkuOTJhMiwyLDAsMCwwLC41OSwxLjQxbDE0LjYsMTQuNmEyLDIsMCwwLDAsMi44MywwbDkuOS05LjlBMiwyLDAsMCwwLDMxLjkzLDE5'@; put 'LjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwx'@; put 'MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEwLjUyIiBjeT0iMTAuNTIiIHI9IjEu'@; put 'NDMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjkzLDE5LjIsMTcuMzMsNC42QTIsMiwwLDAsMCwxNS45Miw0TDYsNEEyLDIsMCwwLDAsNCw2bDAsOS45MmEyLDIsMCwwLDAsLjU5'@; put 'LDEuNDFsMTQuNiwxNC42YTIsMiwwLDAsMCwyLjgzLDBsOS45LTkuOUEyLDIsMCwwLDAsMzEuOTMsMTkuMlpNMjAuNjIsMzAuNTIsNiwxNS45MVY2aDkuOTJsMTQuNiwxNC42MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxu'@; put 'ICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS45MywxOS4yLDE3LjMzLDQuNkEyLDIsMCww'@; put 'LDAsMTUuOTIsNEw2LDRBMiwyLDAsMCwwLDQsNmwwLDkuOTJhMiwyLDAsMCwwLC41OSwxLjQxbDE0LjYsMTQuNmEyLDIsMCwwLDAsMi44MywwbDkuOS05LjlBMiwyLDAsMCwwLDMxLjkzLDE5LjJaTTkuNjUsMTEuMzFhMS42NiwxLjY2LDAsMSwxLDEuNjYtMS42NkExLjY2LDEuNjYsMCwwLDEs'@; put 'OS42NSwxMS4zMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC40NiwxNS43M0gyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTksMTAuMjJsMS40My0yLjQ3TDE3LjMzLDQuNkEyLDIsMCwwLDAsMTUuOTIsNEw2LDRBMiwy'@; put 'LDAsMCwwLDQsNmwwLDkuOTJhMiwyLDAsMCwwLC41OSwxLjQxbDE0LjYsMTQuNmEyLDIsMCwwLDAsMi44MywwbDkuOS05LjlhMiwyLDAsMCwwLDAtMi44M1pNOS42NSwxMS4zMWExLjY2LDEuNjYsMCwxLDEsMS42Ni0xLjY2QTEuNjYsMS42NiwwLDAsMSw5LjY1LDExLjMxWiIgY2xhc3M9ImNs'@; put 'ci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuNDdsLTUuNzIsOS45MWExLjI4LDEuMjgsMCwwLDAsMS4xLDEuOTFIMzMuNjhhMS4yOCwxLjI4LDAsMCwwLDEuMS0xLjkxTDI5LjA2LDEuNDdBMS4y'@; put 'OCwxLjI4LDAsMCwwLDI2Ljg1LDEuNDdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuOTMsMTkuMiwxNy4zMyw0LjZBMiwyLDAsMCwwLDE1LjkyLDRMNiw0QTIs'@; put 'MiwwLDAsMCw0LDZsMCw5LjkyYTIsMiwwLDAsMCwuNTksMS40MWwxNC42LDE0LjZhMiwyLDAsMCwwLDIuODMsMGw5LjktOS45QTIsMiwwLDAsMCwzMS45MywxOS4yWk05LjY1LDExLjMxYTEuNjYsMS42NiwwLDEsMSwxLjY2LTEuNjZBMS42NiwxLjY2LDAsMCwxLDkuNjUsMTEuMzFaIiBjbGFz'@; put 'cz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2LjMzIiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIv'@; put 'PicpLGIuQ2xyU2hhcGVUYWdzPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy4xNiwxOS4xMywxOS41OCw1LjU1QTEuOTIsMS45MiwwLDAsMCwxOC4yMSw1SDE2LjEyTDMxLjc1LDIwLjQ1LDIxLjIyLDMxLjA3YTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxYTEuOTMsMS45'@; put 'MywwLDAsMCwwLTIuNzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iNy44MSIgY3k9IjExLjE0IiByPSIxLjMzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAg'@; put 'ICAgICAgPHBhdGggZD0iTTI3Ljc4LDE5LjE3LDE0LjIsNS41OEExLjkyLDEuOTIsMCwwLDAsMTIuODMsNUgzLjYxQTEuOTMsMS45MywwLDAsMCwxLjY4LDYuOTN2OS4yMmExLjkyLDEuOTIsMCwwLDAsLjU3LDEuMzZMMTUuODQsMzEuMWExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4y'@; put 'MUExLjkzLDEuOTMsMCwwLDAsMjcuNzgsMTkuMTdaTTE3LjI2LDI5LjY5LDMuNjksMTYuMTVWN2g5LjFMMjYuMzcsMjAuNDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iNy44MSIgY3k9IjExLjE0IiByPSIx'@; put 'LjMzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy43OCwxOS4xNywxNC4yLDUuNThBMS45MiwxLjkyLDAsMCwwLDEyLjgzLDVIMy42MUExLjkzLDEuOTMsMCwwLDAsMS42OCw2Ljkz'@; put 'djkuMjJhMS45MiwxLjkyLDAsMCwwLC41NywxLjM2TDE1Ljg0LDMxLjFhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFBMS45MywxLjkzLDAsMCwwLDI3Ljc4LDE5LjE3Wk0xNy4yNiwyOS42OSwzLjY5LDE2LjE1VjdoOS4xTDI2LjM3LDIwLjQ4WiIgY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTYsMTkuMTMsMTkuNTgsNS41NUExLjkyLDEuOTIsMCwwLDAsMTguMjEsNUgxNi4xMkwzMS43NSwyMC40NSwyMS4yMiwzMS4wN2ExLjkzLDEuOTMsMCwwLDAsMi43Myww'@; put 'bDkuMjEtOS4yMWExLjkzLDEuOTMsMCwwLDAsMC0yLjczWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRn'@; put 'ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iNy44MSIgY3k9IjExLjE0IiByPSIxLjMzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAg'@; put 'ICAgICAgICAgPHBhdGggZD0iTTI3Ljc4LDE5LjE3LDI0LDE1LjRIMjIuMjNBMy42NSwzLjY1LDAsMCwxLDIxLDE1LjE5bDUuMzMsNS4yOS05LjExLDkuMjFMMy42OSwxNi4xNVY3aDkuMWw2LDUuOTRhMy42OCwzLjY4LDAsMCwxLC4xLTIuNjlMMTQuMiw1LjU4QTEuOTIsMS45MiwwLDAsMCwx'@; put 'Mi44Myw1SDMuNjFBMS45MywxLjkzLDAsMCwwLDEuNjgsNi45M3Y5LjIyYTEuOTIsMS45MiwwLDAsMCwuNTcsMS4zNkwxNS44NCwzMS4xYTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxQTEuOTMsMS45MywwLDAsMCwyNy43OCwxOS4xN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h'@; put 'bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjAuODMsNi44LDE5LjU4LDUuNTVBMS45MiwxLjkyLDAsMCwwLDE4LjIxLDVIMTYuMTJMMTkuNzksOC42WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4xNiwxOS4xMywyOS40MywxNS40SDI2LjY1bDUuMSw1TDIxLjIyLDMxLjA3YTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxYTEuOTMsMS45MywwLDAsMCwwLTIuNzNaIiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgs'@; put 'MS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4xNiwxOS4xMywxOS41OCw1LjU1QTEuOTIsMS45MiwwLDAsMCwxOC4y'@; put 'MSw1SDE2LjEyTDMxLjc1LDIwLjQ1LDIxLjIyLDMxLjA3YTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxYTEuOTMsMS45MywwLDAsMCwwLTIuNzNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcuNzgsMTku'@; put 'MTcsMTQuMiw1LjU4QTEuOTIsMS45MiwwLDAsMCwxMi44Myw1SDMuNjFBMS45MywxLjkzLDAsMCwwLDEuNjgsNi45M3Y5LjIyYTEuOTIsMS45MiwwLDAsMCwuNTcsMS4zNkwxNS44NCwzMS4xYTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxQTEuOTMsMS45MywwLDAsMCwyNy43OCwx'@; put 'OS4xN1pNNi42NywxMS43MkExLjczLDEuNzMsMCwxLDEsOC40LDEwLDEuNzMsMS43MywwLDAsMSw2LjY3LDExLjcyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3Ljc4LDE5LjE3LDE0LjIsNS41OEExLjkyLDEuOTIs'@; put 'MCwwLDAsMTIuODMsNUgzLjYxQTEuOTMsMS45MywwLDAsMCwxLjY4LDYuOTN2OS4yMmExLjkyLDEuOTIsMCwwLDAsLjU3LDEuMzZMMTUuODQsMzEuMWExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMUExLjkzLDEuOTMsMCwwLDAsMjcuNzgsMTkuMTdaTTYuNjcsMTEuNzJBMS43Mywx'@; put 'LjczLDAsMSwxLDguNCwxMCwxLjczLDEuNzMsMCwwLDEsNi42NywxMS43MloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTYsMTkuMTMsMTkuNTgsNS41NUExLjkyLDEuOTIsMCwwLDAs'@; put 'MTguMjEsNUgxNi4xMkwzMS43NSwyMC40NSwyMS4yMiwzMS4wN2ExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMWExLjkzLDEuOTMsMCwwLDAsMC0yLjczWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAg'@; put 'IDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMC44Myw2LjgsMTkuNTgsNS41NUExLjkyLDEuOTIsMCwwLDAsMTguMjEs'@; put 'NUgxNi4xMkwxOS43OSw4LjZaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTYsMTkuMTMsMjkuNDMsMTUuNEgyNi42NWw1LjEsNUwyMS4yMiwzMS4wN2ExLjkzLDEuOTMsMCwwLDAs'@; put 'Mi43MywwbDkuMjEtOS4yMWExLjkzLDEuOTMsMCwwLDAsMC0yLjczWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3Ljc4LDE5LjE3LDI0LDE1LjRIMjIuMjNhMy42NywzLjY3LDAsMCwx'@; put 'LTMuMzYtNS4xNUwxNC4yLDUuNThBMS45MiwxLjkyLDAsMCwwLDEyLjgzLDVIMy42MUExLjkzLDEuOTMsMCwwLDAsMS42OCw2LjkzdjkuMjJhMS45MiwxLjkyLDAsMCwwLC41NywxLjM2TDE1Ljg0LDMxLjFhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFBMS45MywxLjkzLDAsMCww'@; put 'LDI3Ljc4LDE5LjE3Wk02LjY3LDExLjcyQTEuNzMsMS43MywwLDEsMSw4LjQsMTAsMS43MywxLjczLDAsMCwxLDYuNjcsMTEuNzJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUs'@; put 'MS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC00LS1hbGVydGVk'@; put 'IGNsci1pLWFsZXJ0Ii8+JyksYi5DbHJTaGFwZUhpc3Rvcnk9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDkuODNhMSwxLDAsMCwwLTEsMXY4LjcybDUuOSw0QTEsMSwwLDAsMCwyNCwyMS44OGwtNS0zLjM5VjEwLjgzQTEsMSwwLDAsMCwxOCw5LjgzWiIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LjA5LDE2LjA5LDAsMCwwLDQsMTAuMjZWNS4yYTEsMSwwLDAsMC0yLDBWMTRoOC44YTEsMSwwLDAsMCwwLTJINS4zNUExNCwxNCwwLDEsMSw4LjU4LDI4LjM1YTEsMSwwLDAsMC0xLjM1'@; put 'LDEuNDhBMTYsMTYsMCwxLDAsMTgsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+JyksYi5DbHJTaGFwZUNsb2NrPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQs'@; put 'MTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjkyLDE4LjRWMTAuNzVhMSwxLDAsMCwwLTIsMHY4LjcybDUuOSw0YTEsMSwwLDEsMCwxLjExLTEuNjZa'@; put 'IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTgsMTcuOTRBOS45NCw5Ljk0LDAsMCwxLDIzLjQxLDkuNTlsLjg1LTEuMzZhMTEuNTUsMTEuNTUsMCwxLDAtOC41MywyMUwxNiwyNy43QTEwLDEwLDAsMCwxLDgsMTcu'@; put 'OTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjkyLDEwLjc1YTEsMSwwLDAsMC0yLDB2OC43Mmw1LjksNGExLDEsMCwxLDAsMS4xMS0xLjY2bC01LTMuMzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk'@; put 'Z2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4xMiwxMi44MWE3LjQ0LDcuNDQsMCwwLDEtMS45MS41OCwxNC4wNSwxNC4wNSwwLDEsMS04LjYtOC42LDcuNDQsNy40NCwwLDAsMSwuNTgtMS45MSwxNi4wNiwxNi4wNiwwLDEsMCw5'@; put 'LjkzLDkuOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCw2LjM4YTExLjU2LDExLjU2LDAsMCwwLTIuMjcsMjIuODlMMTYsMjcuN2ExMCwxMCwwLDEsMSw3LjM5LTE4LjFoMGE3'@; put 'LjQ1LDcuNDUsMCwwLDEtLjc4LTIuMjNBMTEuNDUsMTEuNDUsMCwwLDAsMTgsNi4zOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC45MiwxMC43NWExLDEsMCwwLDAtMiwwdjguNzJsNS45LDRhMSwxLDAsMSwwLDEuMTEtMS42NmwtNS0zLjM5WiIgY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy43NywxNS4zOWgtMkExNCwxNCwwLDEsMSwyMi4wOSw0LjYxbDEtMS43NkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwzMy43NywxNS4zOVoiIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsOGE5LjgxLDkuODEsMCwwLDEsMiwuMjNsLjg1LTEuNDZhMTEuNTUsMTEuNTUsMCwxLDAtNS4xMywyMi41MkwxNiwyNy43QTEwLDEwLDAs'@; put 'MCwxLDE4LDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwz'@; put 'NC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0'@; put 'LDE4LDE2LDE2LDAsMCwwLDE4LDJabTYuMiwyMS4xOGExLDEsMCwwLDEtMS4zOS4yOGwtNS45LTRWMTAuNzVhMSwxLDAsMCwxLDIsMFYxOC40bDUsMy4zOUExLDEsMCwwLDEsMjQuMiwyMy4xOFpNMjMuODUsOC4yM2ExMS4zOSwxMS4zOSwwLDEsMC04LjU0LDIwLjgzTDE1LDMwLjYzYTEzLDEz'@; put 'LDAsMSwxLDkuNy0yMy43N1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4xMiwxMi44MUE3LjQ4LDcuNDgsMCwwLDEsMjIuNjgsNy42MywxMS4yNCwxMS4yNCwwLDAsMCwxOCw2LjZhMTEuMzksMTEuMzksMCwwLDAt'@; put 'Mi42OSwyMi40N0wxNSwzMC42M0ExMywxMywwLDAsMSwxOCw1YTEyLjgxLDEyLjgxLDAsMCwxLDQuNTEuODIsNy40Niw3LjQ2LDAsMCwxLC42OC0yLjk0LDE2LjA2LDE2LjA2LDAsMSwwLDkuOTMsOS45M1pNMjQuMiwyMy4xOGExLDEsMCwwLDEtMS4zOS4yOGwtNS45LTRWMTAuNzVhMSwxLDAs'@; put 'MCwxLDIsMFYxOC40bDUsMy4zOUExLDEsMCwwLDEsMjQuMiwyMy4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFk'@; put 'Z2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNzcsMTUuMzlIMjIuMjNBMy42OSwzLjY5LDAsMCwxLDE5LDEzLjU2YzAtLjA5LS4wOS0uMTgtLjEzLS4yN1YxOC40bDUsMy4zOWExLDEsMCwwLDEtMS4xMSwxLjY2'@; put 'bC01LjktNFYxMC43NWExLDEsMCwwLDEsMS45MS0uNDFBMy42NSwzLjY1LDAsMCwxLDE5LDkuODlMMjAuNzQsN0ExMS4xOSwxMS4xOSwwLDAsMCwxOCw2LjZhMTEuMzksMTEuMzksMCwwLDAtMi42OSwyMi40N0wxNSwzMC42M0ExMywxMywwLDAsMSwxOCw1YTEyLjgsMTIuOCwwLDAsMSwzLjU3'@; put 'LjUxbDEuNTMtMi42NkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwzMy43NywxNS4zOVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgs'@; put 'MS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz4nKSxi'@; put 'LkNsclNoYXBlQWxhcm1DbG9jaz0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuNDcsMy44NGE1Ljc4LDUuNzgsMCwwLDAtNy4zNy0uNjMsMTYuMDgsMTYuMDgsMCwwLDEsOC4yLDcuNjVBNS43Myw1LjczLDAsMCwwLDMxLjQ3LDMuODRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLjQyLDMuNDNhNS43Nyw1Ljc3LDAsMCwwLTcuNjQuNDEsNS43Miw1LjcyLDAsMCwwLS4zOCw3LjY0QTE2LjA4LDE2LjA4LDAsMCwxLDExLjQyLDMuNDNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE2LjQsNC4wOUExNCwxNCwwLDAsMCw4LjExLDI3Ljg4TDUuNTYsMzAuNDNBMSwxLDAsMSwwLDcsMzEuODRsMi42Ni0yLjY2YTEzLjksMTMuOSwwLDAsMCwxNi44OC0uMDhsMi43NCwyLjc0YTEsMSwwLDAsMCwxLjQxLTEuNDFM'@; put 'MjgsMjcuNzhBMTQsMTQsMCwwLDAsMTYuNCw0LjA5Wk0xOS41OCwyOS45QTEyLDEyLDAsMSwxLDI5LjkyLDE5LjU2LDEyLDEyLDAsMCwxLDE5LjU4LDI5LjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0Ljky'@; put 'LDIwLjM0bC02LjA2LTNWOS41YS45LjksMCwwLDAtMS44LDB2OUwyNC4xMiwyMmEuOS45LDAsMSwwLC43OS0xLjYyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS40MiwzLjQzYTUuNzcsNS43NywwLDAsMC03'@; put 'LjY0LjQxLDUuNzIsNS43MiwwLDAsMC0uMzgsNy42NEExNi4wOCwxNi4wOCwwLDAsMSwxMS40MiwzLjQzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC44Niw5LjVhLjkuOSww'@; put 'LDAsMC0xLjgsMHY5TDI0LjEyLDIyYS45LjksMCwxLDAsLjc5LTEuNjJsLTYuMDYtM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMjcuNzhBMTMuODgsMTMuODgsMCwwLDAs'@; put 'MzEuNzcsMTUuNGgtMmExMi4wNywxMi4wNywwLDEsMS04LjY3LTlsMS0xLjhhMTQsMTQsMCwwLDAtMTQsMjMuMjdMNS41NiwzMC40M0ExLDEsMCwxLDAsNywzMS44NGwyLjY2LTIuNjZhMTMuOSwxMy45LDAsMCwwLDE2Ljg4LS4wOGwyLjc0LDIuNzRhMSwxLDAsMCwwLDEuNDEtMS40MVoiIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2'@; put 'LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLjQyLDMuNDNhNS43Nyw1Ljc3LDAsMCwwLTcuNjQu'@; put 'NDEsNS43Miw1LjcyLDAsMCwwLS4zOCw3LjY0QTE2LjA4LDE2LjA4LDAsMCwxLDExLjQyLDMuNDNaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMjcuNzhBMTMuODgsMTMuODgsMCww'@; put 'LDAsMzEuNzcsMTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTksMTMuNTZMMTksMTMuNHYzLjc4TDI1LDIwLjFhMSwxLDAsMSwxLS44NywxLjhMMTcsMTguNDRWOS42OWExLDEsMCwwLDEsMiwwVjEwTDE5LDkuODlsMy01LjI4YTE0LDE0LDAsMCwwLTE0LDIzLjI3TDUuNTYsMzAuNDNBMSwx'@; put 'LDAsMSwwLDcsMzEuODRsMi42Ni0yLjY2YTEzLjksMTMuOSwwLDAsMCwxNi44OC0uMDhsMi43NCwyLjc0YTEsMSwwLDAsMCwxLjQxLTEuNDFaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN'@; put 'MjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1h'@; put 'bGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuNDIsMy40M2E1Ljc3LDUuNzcsMCwwLDAtNy42NC40MSw1LjcyLDUuNzIsMCwwLDAtLjM4LDcuNjRBMTYuMDgsMTYuMDgsMCwwLDEsMTEuNDIsMy40M1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNs'@; put 'ci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMjcuNzhhMTMuODksMTMuODksMCwwLDAsMy4yMS0xNC4zOUE3LjQ2LDcuNDYsMCwwLDEsMjIuNSw2YTcuNTIsNy41MiwwLDAsMSwuMTEtMS4yMUExNCwxNCwwLDAsMCw4LjExLDI3Ljg4TDUuNTYs'@; put 'MzAuNDNBMSwxLDAsMSwwLDcsMzEuODRsMi42Ni0yLjY2YTEzLjksMTMuOSwwLDAsMCwxNi44OC0uMDhsMi43NCwyLjc0YTEsMSwwLDAsMCwxLjQxLTEuNDFabS0yLjUyLTYuMzVhMSwxLDAsMCwxLTEuMzMuNDdMMTcsMTguNDRWOS42OWExLDEsMCwwLDEsMiwwdjcuNUwyNSwyMC4xQTEsMSww'@; put 'LDAsMSwyNS40OSwyMS40M1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0t'@; put 'YmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuNDIsMy40M2E1Ljc3LDUuNzcsMCwwLDAtNy42NC40MSw1LjcyLDUuNzIsMCwwLDAtLjM4LDcuNjRBMTYuMDgsMTYuMDgsMCwwLDEsMTEuNDIsMy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg'@; put 'Y2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4Ljg2LDkuNWEuOS45LDAsMCwwLTEuOCwwdjlMMjQuMTIsMjJhLjkuOSwwLDEsMCwuNzktMS42MmwtNi4wNi0zWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5l'@; put 'LXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMjcuNzhhMTMuODksMTMuODksMCwwLDAsMy4yMS0xNC4zOSw3LDcsMCwwLDEtMi4xMS4wNUExMiwxMiwwLDEsMSwyMi41Niw2LjksNy41NCw3LjU0LDAsMCwxLDIyLjUsNmE3LjUyLDcuNTIsMCwwLDEsLjExLTEu'@; put 'MjFBMTQsMTQsMCwwLDAsOC4xMSwyNy44OEw1LjU2LDMwLjQzQTEsMSwwLDEsMCw3LDMxLjg0bDIuNjYtMi42NmExMy45LDEzLjksMCwwLDAsMTYuODgtLjA4bDIuNzQsMi43NGExLDEsMCwwLDAsMS40MS0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5l'@; put 'LXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjQ3LDMu'@; put 'ODRhNS43OCw1Ljc4LDAsMCwwLTcuMzctLjYzLDE2LjA4LDE2LjA4LDAsMCwxLDguMiw3LjY1QTUuNzMsNS43MywwLDAsMCwzMS40NywzLjg0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLjQyLDMuNDNhNS43Nyw1'@; put 'Ljc3LDAsMCwwLTcuNjQuNDEsNS43Miw1LjcyLDAsMCwwLS4zOCw3LjY0QTE2LjA4LDE2LjA4LDAsMCwxLDExLjQyLDMuNDNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsNEExNCwxNCwwLDAsMCw4LjExLDI3Ljg4'@; put 'TDUuNTYsMzAuNDNBMSwxLDAsMSwwLDcsMzEuODRsMi42Ni0yLjY2YTEzLjksMTMuOSwwLDAsMCwxNi44OC0uMDhsMi43NCwyLjc0YTEsMSwwLDAsMCwxLjQxLTEuNDFMMjgsMjcuNzhBMTQsMTQsMCwwLDAsMTgsNFptNy40NywxNy40M2ExLDEsMCwwLDEtMS4zMy40N0wxNywxOC40NFY5LjY5'@; put 'YTEsMSwwLDAsMSwyLDB2Ny41TDI1LDIwLjFBMSwxLDAsMCwxLDI1LjQ5LDIxLjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPicpLGIuQ2xyU2hhcGVDaXJjbGVBcnJvdz0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwx'@; put 'OCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC4wOCw4LjI2bC03LjYxLDcuNjFhMSwxLDAsMSwwLDEu'@; put 'NDEsMS40MUwxNywxMi4xOHYxNWExLDEsMCwwLDAsMiwwVjEybDUuMjgsNS4yOGExLDEsMCwxLDAsMS40MS0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2'@; put 'LDAsMCwwLDE4LDJabTgsMTUuNTdhMS40MywxLjQzLDAsMCwxLTIsMEwxOS40LDEzVjI3LjE0YTEuNCwxLjQsMCwwLDEtMi44LDB2LTE0bC00LjQzLDQuNDNhMS40LDEuNCwwLDAsMS0yLTJMMTguMDgsNy43LDI2LDE1LjU5QTEuNCwxLjQsMCwwLDEsMjYsMTcuNTdaIiBjbGFzcz0iY2xyLWkt'@; put 'c29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+JyksYi5DbHJTaGFwZUNoaWxkQXJyb3c9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI0LjgyLDE1LjhhMSwxLDAsMCwwLTEuNDEsMCwxLDEsMCwwLDAsMCwxLjQxTDI3LjIsMjFIOVYzLjc4YTEsMSwwLDEsMC0yLDBWMjFhMiwyLDAsMCww'@; put 'LDIsMkgyNy4xNWwtMy43NCwzLjc1YTEsMSwwLDAsMCwwLDEuNDEsMSwxLDAsMCwwLC43LjI5LDEsMSwwLDAsMCwuNzEtLjI5TDMxLDIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksYi5DbHJTaGFwZUNvcHk9KDAscC5jbHJJY29uU1ZHKSgnPHBh'@; put 'dGggZD0iTTI5LjUsN2gtMTlBMS41LDEuNSwwLDAsMCw5LDguNXYyNEExLjUsMS41LDAsMCwwLDEwLjUsMzRoMTlBMS41LDEuNSwwLDAsMCwzMSwzMi41VjguNUExLjUsMS41LDAsMCwwLDI5LjUsN1pNMjksMzJIMTFWOUgyOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMy41QTEuNSwxLjUsMCwwLDAsMjQuNSwySDUuNUExLjUsMS41LDAsMCwwLDQsMy41djI0QTEuNSwxLjUsMCwwLDAsNS41LDI5SDZWNEgyNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4g'@; put 'ICAgICAgICAgICA8cGF0aCBkPSJNMjcsMy41NkExLjU2LDEuNTYsMCwwLDAsMjUuNDMsMkg1LjU3QTEuNTYsMS41NiwwLDAsMCw0LDMuNTZWMjguNDRBMS41NiwxLjU2LDAsMCwwLDUuNTcsMzBoLjUyVjQuMDdIMjdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+'@; put 'XG4gICAgICAgICAgICA8cmVjdCB4PSI4IiB5PSI2IiB3aWR0aD0iMjMiIGhlaWdodD0iMjgiIHJ4PSIxLjUiIHJ5PSIxLjUiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz4nKSxiLkNsclNoYXBlSGVscD0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMkEx'@; put 'NiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC4yOSw4LjkyYTcuMzgsNy4z'@; put 'OCwwLDAsMC01LjcyLDIuNTcsMSwxLDAsMCwwLS4zMi43MS45Mi45MiwwLDAsMCwuOTUuOTIsMS4wOCwxLjA4LDAsMCwwLC43MS0uMjksNS43LDUuNywwLDAsMSw0LjMzLTJjMi4zNiwwLDMuODMsMS41MiwzLjgzLDMuNDF2LjA1YzAsMi4yMS0xLjc2LDMuNDQtNC41NCwzLjY1YS44LjgsMCww'@; put 'LDAtLjc2LjkyczAsMi4zMiwwLDIuNzVhMSwxLDAsMCwwLDEsLjloLjExYTEsMSwwLDAsMCwuOS0xVjE5LjQ1YzMtLjQyLDUuNDMtMiw1LjQzLTUuMjh2LS4wNUMyNC4xOCwxMS4xMiwyMS44NCw4LjkyLDE4LjI5LDguOTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtMiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTcuNzgiIGN5PSIyNi4yIiByPSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LjE4LDE0LjE3di0uMDVjMC0zLTIuMzQtNS4yLTUuODgtNS4y'@; put 'YTcuMzgsNy4zOCwwLDAsMC01LjcyLDIuNTcsMSwxLDAsMCwwLS4zMi43MS45Mi45MiwwLDAsMCwuOTUuOTIsMS4wOCwxLjA4LDAsMCwwLC43MS0uMjksNS43LDUuNywwLDAsMSw0LjMzLTJjMi4zNiwwLDMuODMsMS41MiwzLjgzLDMuNDF2LjA1YzAsMi4yMS0xLjc2LDMuNDQtNC41NCwzLjY1'@; put 'YS44LjgsMCwwLDAtLjc2LjkyczAsMi4zMiwwLDIuNzVhMSwxLDAsMCwwLDEsLjloLjExYTEsMSwwLDAsMCwuOS0xVjE5LjQ1QzIxLjc1LDE5LDI0LjE4LDE3LjQ1LDI0LjE4LDE0LjE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2Vk'@; put 'Ii8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxNy43OCIgY3k9IjI2LjIiIHI9IjEuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjEyLDEyLjgxYTcuNDMsNy40MywwLDAs'@; put 'MS0xLjkxLjU4LDE0LjA1LDE0LjA1LDAsMSwxLTguNi04LjYsNy40NCw3LjQ0LDAsMCwxLC41OC0xLjkxLDE2LjA2LDE2LjA2LDAsMSwwLDkuOTMsOS45M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAg'@; put 'PGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4xMiwxMi44MWE3LjQ5LDcuNDksMCwwLDEtOS45My05LjkzLDE2'@; put 'LjA2LDE2LjA2LDAsMSwwLDkuOTMsOS45M1ptLTE1LjM0LDE1YTEuNjUsMS42NSwwLDEsMSwxLjY1LTEuNjVBMS42NSwxLjY1LDAsMCwxLDE3Ljc4LDI3Ljg1Wm0xLjM3LTguMDZ2MS43MmExLjM3LDEuMzcsMCwwLDEtMS4zLDEuMzZoLS4xMWExLjM0LDEuMzQsMCwwLDEtMS4zOS0xLjNjMC0u'@; put 'NDQsMC0yLjc2LDAtMi43NmExLjE5LDEuMTksMCwwLDEsMS4xMi0xLjMxYzEuNTctLjEyLDQuMTgtLjcsNC4xOC0zLjI1LDAtMS44My0xLjQxLTMuMDctMy40My0zLjA3YTUuMzEsNS4zMSwwLDAsMC00LDEuOTIsMS4zNiwxLjM2LDAsMCwxLTIuMzUtLjksMS40MywxLjQzLDAsMCwxLC40My0x'@; put 'LDcuNzcsNy43NywwLDAsMSw2LTIuNjljMy43LDAsNi4yOCwyLjMsNi4yOCw1LjZDMjQuNTgsMTcuMTYsMjIuNjEsMTkuMiwxOS4xNSwxOS43OVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4'@; put 'PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0tLjIyLDI1Ljg1YTEu'@; put 'NjUsMS42NSwwLDEsMSwxLjY1LTEuNjVBMS42NSwxLjY1LDAsMCwxLDE3Ljc4LDI3Ljg1Wm0xLjM3LTguMDZ2MS43MmExLjM3LDEuMzcsMCwwLDEtMS4zLDEuMzZoLS4xMWExLjM0LDEuMzQsMCwwLDEtMS4zOS0xLjNjMC0uNDQsMC0yLjc2LDAtMi43NmExLjE5LDEuMTksMCwwLDEsMS4xMi0x'@; put 'LjMxYzEuNTctLjEyLDQuMTgtLjcsNC4xOC0zLjI1LDAtMS44My0xLjQxLTMuMDctMy40My0zLjA3YTUuMzEsNS4zMSwwLDAsMC00LDEuOTIsMS4zNiwxLjM2LDAsMCwxLTIuMzUtLjksMS40MywxLjQzLDAsMCwxLC40My0xLDcuNzcsNy43NywwLDAsMSw2LTIuNjljMy43LDAsNi4yOCwyLjMs'@; put 'Ni4yOCw1LjZDMjQuNTgsMTcuMTYsMjIuNjEsMTkuMiwxOS4xNSwxOS43OVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxiLkNsclNoYXBlTG9naW49KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI4LDRIMTJhMiwyLDAsMCwwLTIsMkgyOFYzMEgxMlYy'@; put 'MC4ySDEwVjMwYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwyOCw0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuMTIsMTguNDZhMSwxLDAsMSwwLDEuNDEsMS40MWw1Ljc5'@; put 'LTUuNzlMMTYuNTQsOC4yOWExLDEsMCwwLDAtMS40MSwxLjQxTDE4LjUsMTNINGExLDEsMCwwLDAtMSwxLDEsMSwwLDAsMCwxLDFIMTguNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDRIMTJhMiwyLDAs'@; put 'MCwwLTIsMnY3aDguNUwxNS4xMiw5LjcxYTEsMSwwLDAsMSwxLjQxLTEuNDFsNS43OSw1Ljc5LTUuNzksNS43OWExLDEsMCwwLDEtMS40MS0xLjQxTDE4LjUsMTVIMTBWMzBhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDI4LDRaIiBjbGFzcz0iY2xyLWktc29s'@; put 'aWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLDEzSDRhMSwxLDAsMCwwLTEsMSwxLDEsMCwwLDAsMSwxaDZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLGIuQ2xyU2hhcGVMb2dvdXQ9KDAscC5jbHJJY29uU1ZH'@; put 'KSgnPHBhdGggZD0iTTcsNkgyM3Y5LjhoMlY2YTIsMiwwLDAsMC0yLTJIN0EyLDIsMCwwLDAsNSw2VjMwYTIsMiwwLDAsMCwyLDJIMjNhMiwyLDAsMCwwLDItMkg3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0y'@; put 'OC4xNiwxNy4yOGExLDEsMCwwLDAtMS40MSwxLjQxTDMwLjEzLDIySDE1LjYzYTEsMSwwLDAsMC0xLDEsMSwxLDAsMCwwLDEsMWgxNC41bC0zLjM4LDMuNDZhMSwxLDAsMSwwLDEuNDEsMS40MUwzNCwyMy4wN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+'@; put 'XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMsNEg3QTIsMiwwLDAsMCw1LDZWMzBhMiwyLDAsMCwwLDIsMkgyM2EyLDIsMCwwLDAsMi0yVjI0SDE1LjYzYTEsMSwwLDAsMS0xLTEsMSwxLDAsMCwxLDEtMUgyNVY2QTIsMiwwLDAsMCwyMyw0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv'@; put 'bGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjE2LDE3LjI4YTEsMSwwLDAsMC0xLjQxLDEuNDFMMzAuMTMsMjJIMjV2Mmg1LjEzbC0zLjM4LDMuNDZhMSwxLDAsMSwwLDEuNDEsMS40MUwzNCwyMy4wN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRo'@; put 'LTIiLz4nKSxiLkNsclNoYXBlUHJpbnRlcj0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjksOUgyN1Y1SDlWOUg3YTQsNCwwLDAsMC00LDRWMjRINi45MlYyMi4wOUg1VjEzYTIsMiwwLDAsMSwyLTJIMjlhMiwyLDAsMCwxLDIsMnY5SDI5LjA4VjI0SDMzVjEzQTQsNCwwLDAsMCwyOSw5'@; put 'Wk0yNSw5SDExVjdIMjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDE4SDhhMSwxLDAsMCwwLDAsMkg5VjMySDI3VjIwaDFhMSwxLDAsMCwwLDAtMlpNMjUsMzBIMTFWMjBIMjVaIiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjciIHk9IjEzLjA0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDE4SDhh'@; put 'MSwxLDAsMCwwLDAsMkg5VjMySDI3VjIwaDFhMSwxLDAsMCwwLDAtMlpNMjUsMzBIMTFWMjBIMjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzMSAxNS40IDMxIDIy'@; put 'LjA5IDI5LjA4IDIyLjA5IDI5LjA4IDI0IDMzIDI0IDMzIDE1LjQgMzEgMTUuNCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01LDEzYTIsMiwwLDAsMSwyLTJIMTguNjRBMy42NSwz'@; put 'LjY1LDAsMCwxLDE5LDkuODlMMTkuNTQsOUgxMVY3aDkuNzFsMS4xMy0ySDlWOUg3YTQsNCwwLDAsMC00LDRWMjRINi45MlYyMi4wOUg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9'@; put 'Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMThIOGExLDEsMCwwLDAsMCwySDlWMzJIMjdWMjBoMWExLDEsMCwwLDAsMC0yWk0yNSwzMEgxMVYyMEgyNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjciIHk9IjEzLjA0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMywxMi44OGE3'@; put 'LjQ1LDcuNDUsMCwwLDEtMiwuNTV2OC42NkgyOS4wOFYyNEgzM1YxM0MzMywxMywzMywxMi45MywzMywxMi44OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTUsMTNhMiwyLDAsMCwx'@; put 'LDItMkgyNC40MmE3LjUsNy41LDAsMCwxLTEuMjctMkgxMVY3SDIyLjU3YTcuNTIsNy41MiwwLDAsMS0uMDctMSw3LjU0LDcuNTQsMCwwLDEsLjA3LTFIOVY5SDdhNCw0LDAsMCwwLTQsNFYyNEg2LjkyVjIyLjA5SDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjksOUgy'@; put 'N1Y1SDlWOUg3YTQsNCwwLDAsMC00LDRWMjRIOXY4SDI3VjI0aDZWMTNBNCw0LDAsMCwwLDI5LDlaTTI1LDI0djZIMTFWMTlIMjVaTTI1LDlIMTFWN0gyNVptNCw2SDI3VjEzaDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBk'@; put 'PSJNMjIuMjMsMTUuNEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwxOS41NCw5SDExVjdoOS43MWwxLjEzLTJIOVY5SDdhNCw0LDAsMCwwLTQsNFYyNEg5djhIMjdWMjRoNlYxNS40Wk0yNSwyNHY2SDExVjE5SDI1WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBh'@; put 'dGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNs'@; put 'ci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLDEyLjg4YTcuMyw3LjMsMCwwLDEtNCwuNTVWMTVIMjdWMTNoLjMyYTcuNTIsNy41MiwwLDAsMS00LjE4LTRIMTFWN0gyMi41N2E3LjUy'@; put 'LDcuNTIsMCwwLDEtLjA3LTEsNy41NCw3LjU0LDAsMCwxLC4wNy0xSDlWOUg3YTQsNCwwLDAsMC00LDRWMjRIOXY4SDI3VjI0aDZWMTNDMzMsMTMsMzMsMTIuOTMsMzMsMTIuODhaTTI1LDI0djZIMTFWMTlIMjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRo'@; put 'LTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPicpLGIuQ2xyU2hhcGVXb3JsZD0oMCxwLmNsckljb25TVkcpKCc8cGF0'@; put 'aCBkPSJNMjYuNTQsMThhMTkuMzgsMTkuMzgsMCwwLDAtLjQzLTRoMy42YTEyLjMsMTIuMywwLDAsMC0uNjctMS42SDI1LjY5QTE5LjcyLDE5LjcyLDAsMCwwLDIyLjgsNi41M2ExMi4zLDEyLjMsMCwwLDAtMi41NS0uNzYsMTcuODMsMTcuODMsMCwwLDEsMy44OSw2LjU5SDE4Ljc1VjUuNmMt'@; put 'LjI1LDAtLjUxLDAtLjc3LDBzLS40OSwwLS43MywwdjYuNzdIMTEuODZhMTcuODMsMTcuODMsMCwwLDEsMy45LTYuNiwxMi4yOCwxMi4yOCwwLDAsMC0yLjU0Ljc1LDE5LjcyLDE5LjcyLDAsMCwwLTIuOTEsNS44NUg2Ljk0QTEyLjMsMTIuMywwLDAsMCw2LjI2LDE0SDkuODlhMTkuMzgsMTku'@; put 'MzgsMCwwLDAtLjQzLDQsMTkuNjcsMTkuNjcsMCwwLDAsLjUsNC4zN0g2LjQyQTEyLjM0LDEyLjM0LDAsMCwwLDcuMTYsMjRoMy4yM2ExOS4zMiwxOS4zMiwwLDAsMCwyLjY5LDUuMzYsMTIuMjgsMTIuMjgsMCwwLDAsMi42MS43OUExNy45MSwxNy45MSwwLDAsMSwxMiwyNGg1LjI2djYuMzRj'@; put 'LjI0LDAsLjQ5LDAsLjczLDBzLjUxLDAsLjc3LDBWMjRIMjRhMTcuOSwxNy45LDAsMCwxLTMuNyw2LjE1LDEyLjI4LDEyLjI4LDAsMCwwLDIuNjItLjgxQTE5LjMyLDE5LjMyLDAsMCwwLDI1LjYxLDI0aDMuMmExMi4zNCwxMi4zNCwwLDAsMCwuNzQtMS42SDI2QTE5LjY3LDE5LjY3LDAsMCww'@; put 'LDI2LjU0LDE4Wm0tOS4yOSw0LjM3SDExLjUxYTE3LjY5LDE3LjY5LDAsMCwxLS4wOS04LjRoNS44M1ptNy4yNCwwSDE4Ljc1VjE0aDUuODNBMTguMjEsMTguMjEsMCwwLDEsMjUsMTgsMTguMTIsMTguMTIsMCwwLDEsMjQuNDksMjIuMzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0y'@; put 'Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTIsMTIuODFhNy40NCw3LjQ0LDAsMCwxLTEuOTEuNTgsMTQuMDUsMTQuMDUsMCwxLDEtOC42LTguNiw3LjQzLDcuNDMsMCwwLDEsLjU4LTEuOTEsMTYuMDYsMTYuMDYsMCwxLDAsOS45Myw5LjkzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUt'@; put 'LWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjAuMjUsNS43N2ExNy44MywxNy44MywwLDAsMSwzLjg5LDYuNTlIMTguNzVWNS42Yy0uMjUsMC0uNTEsMC0uNzcsMHMtLjQ5LDAtLjczLDB2Ni43N0gxMS44NmExNy44MywxNy44'@; put 'MywwLDAsMSwzLjktNi42LDEyLjI4LDEyLjI4LDAsMCwwLTIuNTQuNzUsMTkuNzIsMTkuNzIsMCwwLDAtMi45MSw1Ljg1SDYuOTRBMTIuMywxMi4zLDAsMCwwLDYuMjYsMTRIOS44OWExOS4zOCwxOS4zOCwwLDAsMC0uNDMsNCwxOS42NywxOS42NywwLDAsMCwuNSw0LjM3SDYuNDJBMTIuMzQs'@; put 'MTIuMzQsMCwwLDAsNy4xNiwyNGgzLjIzYTE5LjMyLDE5LjMyLDAsMCwwLDIuNjksNS4zNiwxMi4yOCwxMi4yOCwwLDAsMCwyLjYxLjc5QTE3LjkxLDE3LjkxLDAsMCwxLDEyLDI0aDUuMjZ2Ni4zNGMuMjQsMCwuNDksMCwuNzMsMHMuNTEsMCwuNzcsMFYyNEgyNGExNy45LDE3LjksMCwwLDEt'@; put 'My43LDYuMTUsMTIuMjgsMTIuMjgsMCwwLDAsMi42Mi0uODFBMTkuMzIsMTkuMzIsMCwwLDAsMjUuNjEsMjRoMy4yYTEyLjM0LDEyLjM0LDAsMCwwLC43NC0xLjZIMjZhMTkuNjcsMTkuNjcsMCwwLDAsLjUtNC4zNywxOS4zOCwxOS4zOCwwLDAsMC0uNDMtNGgzLjZjLS4wNi0uMTctLjEyLS4z'@; put 'My0uMTktLjQ5YTcuNDUsNy40NSwwLDAsMS0zLjQ3LTEuMTFoLS4zNmMwLS4xMS0uMDgtLjIxLS4xMS0uMzJhNy40OCw3LjQ4LDAsMCwxLTMuMDYtNS42MkExMi40MSwxMi40MSwwLDAsMCwyMC4yNSw1Ljc3Wm0tMywxNi41OUgxMS41MWExNy42OSwxNy42OSwwLDAsMS0uMDktOC40aDUuODNa'@; put 'TTI1LDE4YTE4LjEyLDE4LjEyLDAsMCwxLS41NSw0LjM3SDE4Ljc1VjE0aDUuODNBMTguMjEsMTguMjEsMCwwLDEsMjUsMThaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBj'@; put 'eT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuMDUsMThhMjAuNDYsMjAuNDYsMCwwLDAsLjYyLDQuOTNoNi40OFYxMy40NUgxMC41OEEyMC41'@; put 'NSwyMC41NSwwLDAsMCwxMC4wNSwxOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC44NSwxMy40NXY5LjQ4aDYuNDhBMjAuNDYsMjAuNDYsMCwwLDAsMjYsMThhMjAuNTUsMjAuNTUsMCwwLDAtLjUyLTQuNTVaIiBj'@; put 'bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWk0zMC4yMiwyNC43MUgyNi42YTIxLjgsMjEuOCwwLDAsMS0zLDYsMTMuODYsMTMuODYsMCwwLDEtMywuOTIs'@; put 'MjAuMjEsMjAuMjEsMCwwLDAsNC4xOC02Ljk0SDE4Ljg2djcuMTVjLS4yOSwwLS41NywwLS44Niwwcy0uNTUsMC0uODMsMFYyNC43MUgxMS4yMmEyMC4yMSwyMC4yMSwwLDAsMCw0LjE4LDYuOTUsMTMuODYsMTMuODYsMCwwLDEtMi45NC0uOSwyMS44LDIxLjgsMCwwLDEtMy02LjA1SDUuNzhh'@; put 'MTMuOTQsMTMuOTQsMCwwLDEtLjgzLTEuODFoNEEyMi4yLDIyLjIsMCwwLDEsOC4zNywxOGEyMS44OCwyMS44OCwwLDAsMSwuNDgtNC41NUg0Ljc2YTEzLjg4LDEzLjg4LDAsMCwxLC43Ni0xLjgxSDkuMzNBMjIuMjYsMjIuMjYsMCwwLDEsMTIuNjEsNWExMy44NiwxMy44NiwwLDAsMSwyLjg3'@; put 'LS44NCwyMC4xMywyMC4xMywwLDAsMC00LjQsNy40NWg2LjA5VjRjLjI4LDAsLjU1LDAsLjgzLDBzLjU4LDAsLjg2LDB2Ny42NGg2LjA5YTIwLjEzLDIwLjEzLDAsMCwwLTQuMzktNy40NEExMy44OSwxMy44OSwwLDAsMSwyMy40Myw1YTIyLjI2LDIyLjI2LDAsMCwxLDMuMjcsNi41OWgzLjc3'@; put 'YTEzLjg5LDEzLjg5LDAsMCwxLC43NiwxLjgxSDI3LjE3QTIxLjg4LDIxLjg4LDAsMCwxLDI3LjY2LDE4YTIyLjIsMjIuMiwwLDAsMS0uNTcsNC45M2g0QTEzLjk0LDEzLjk0LDAsMCwxLDMwLjIyLDI0LjcxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPlxuICAg'@; put 'ICAgICAgICAgPHBhdGggZD0iTTEwLjA1LDE4YTIwLjQ2LDIwLjQ2LDAsMCwwLC42Miw0LjkzaDYuNDhWMTMuNDVIMTAuNThBMjAuNTUsMjAuNTUsMCwwLDAsMTAuMDUsMThaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAg'@; put 'ICAgICAgPHBhdGggZD0iTTE4Ljg1LDIyLjk0aDYuNDhBMjAuNDYsMjAuNDYsMCwwLDAsMjYsMThhMjAuNTUsMjAuNTUsMCwwLDAtLjUyLTQuNTVIMTguODVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBh'@; put 'dGggZD0iTTMzLjEyLDEyLjgxYTcuNDQsNy40NCwwLDAsMS0xLjkuNTh2MEgzMWE2Ljc3LDYuNzcsMCwwLDEtMi4wNywwaC0xLjhBMjEuODgsMjEuODgsMCwwLDEsMjcuNjYsMThhMjIuMiwyMi4yLDAsMCwxLS41Nyw0LjkzaDRhMTMuOTQsMTMuOTQsMCwwLDEtLjgzLDEuODFIMjYuNmEyMS44'@; put 'LDIxLjgsMCwwLDEtMyw2LDEzLjg2LDEzLjg2LDAsMCwxLTMsLjkyLDIwLjIxLDIwLjIxLDAsMCwwLDQuMTgtNi45NEgxOC44NnY3LjE1Yy0uMjksMC0uNTcsMC0uODYsMHMtLjU1LDAtLjgzLDBWMjQuNzFIMTEuMjJhMjAuMjEsMjAuMjEsMCwwLDAsNC4xOCw2Ljk1LDEzLjg2LDEzLjg2LDAs'@; put 'MCwxLTIuOTQtLjksMjEuOCwyMS44LDAsMCwxLTMtNi4wNUg1Ljc4YTEzLjk0LDEzLjk0LDAsMCwxLS44My0xLjgxaDRBMjIuMiwyMi4yLDAsMCwxLDguMzcsMThhMjEuODgsMjEuODgsMCwwLDEsLjQ4LTQuNTVINC43NmExMy44OCwxMy44OCwwLDAsMSwuNzYtMS44MUg5LjMzQTIyLjI2LDIy'@; put 'LjI2LDAsMCwxLDEyLjYxLDVhMTMuODYsMTMuODYsMCwwLDEsMi44Ny0uODQsMjAuMTMsMjAuMTMsMCwwLDAtNC40LDcuNDVoNi4wOVY0Yy4yOCwwLC41NSwwLC44Mywwcy41OCwwLC44NiwwdjcuNjRoNi4wOWwwLS4xM2E3LjQ3LDcuNDcsMCwwLDEtMi4zNi00Ljc2LDIwLjM3LDIwLjM3LDAs'@; put 'MCwwLTItMi41NSwxNC4yMywxNC4yMywwLDAsMSwyLjA2LjU2LDcuNDQsNy40NCwwLDAsMSwuNTctMS44NiwxNi4wNiwxNi4wNiwwLDEsMCw5LjkzLDkuOTNaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNp'@; put 'cmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPicpLGIuQ2xyU2hhcGVTbGlkZXI9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEyLDEyLjM3QTQsNCwwLDAsMCw5LDgu'@; put 'NDhWNUExLDEsMCwxLDAsNyw1VjguNDhhNCw0LDAsMCwwLDAsNy43OFYzMWExLDEsMCwxLDAsMiwwVjE2LjI2QTQsNCwwLDAsMCwxMiwxMi4zN1ptLTQsMmEyLDIsMCwxLDEsMi0yQTIsMiwwLDAsMSw4LDE0LjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIv'@; put 'PlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDE1LjgzYTQsNCwwLDAsMC0zLTMuODlWNWExLDEsMCwxLDAtMiwwdjYuOTRhNCw0LDAsMCwwLDAsNy43OFYzMWExLDEsMCwxLDAsMiwwVjE5LjcyQTQsNCwwLDAsMCwzMiwxNS44M1ptLTQsMmEyLDIsMCwxLDEsMi0yQTIsMiwwLDAsMSwyOCwx'@; put 'Ny44N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsMjQuNWE0LDQsMCwwLDAtMy0zLjg5VjVhMSwxLDAsMSwwLTIsMFYyMC42MWE0LDQsMCwwLDAsMCw3Ljc4VjMxYTEsMSwwLDEsMCwyLDBWMjguMzlBNCw0'@; put 'LDAsMCwwLDIyLDI0LjVabS00LDJhMiwyLDAsMSwxLDItMkEyLDIsMCwwLDEsMTgsMjYuNTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTksOS4yOVY1QTEsMSwwLDEsMCw3LDVWOS4zYTMuMjIsMy4yMiwwLDAs'@; put 'MCwwLDYuMTFWMzFhMSwxLDAsMSwwLDIsMFYxNS40M0EzLjIyLDMuMjIsMCwwLDAsOSw5LjI5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDIxLjQ1VjVhMSwxLDAsMSwwLTIsMFYyMS40N2EzLjIyLDMuMjIsMCww'@; put 'LDAsMCw2LjExVjMxYTEsMSwwLDEsMCwyLDBWMjcuNmEzLjIyLDMuMjIsMCwwLDAsMC02LjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LDEyLjc1VjVhMSwxLDAsMSwwLTIsMHY3Ljc2YTMuMjIsMy4yMiwwLDAs'@; put 'MCwwLDYuMTFWMzFhMSwxLDAsMSwwLDIsMFYxOC44OWEzLjIyLDMuMjIsMCwwLDAsMC02LjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPicpLGIuQ2xyU2hhcGVDbGlwYm9hcmQ9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LjI5LDVIMjdWN2gyVjMy'@; put 'SDdWN0g5VjVIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY5VjMyLjMxQTEuNywxLjcsMCwwLDAsNi43MSwzNEgyOS4yOUExLjcsMS43LDAsMCwwLDMxLDMyLjMxVjYuNjlBMS43LDEuNywwLDAsMCwyOS4yOSw1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+'@; put 'XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsNy4zM0EyLjM0LDIuMzQsMCwwLDAsMjMuNjcsNUgyMS44N2E0LDQsMCwwLDAtNy43NSwwSDEyLjMzQTIuMzQsMi4zNCwwLDAsMCwxMCw3LjMzVjExSDI2Wk0yNCw5SDEyVjcuMzNBLjMzLjMzLDAsMCwxLDEyLjMzLDdIMTZWNmEyLDIsMCwwLDEs'@; put 'NCwwVjdoMy42N2EuMzMuMzMsMCwwLDEsLjMzLjMzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxOCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjIyIiB3aWR0aD0iMTQiIGhlaWdo'@; put 'dD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMjYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz5cbiAgICAgICAgICAg'@; put 'IDxyZWN0IHg9IjExIiB5PSIxNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxOCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjIiIGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIyMiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJh'@; put 'ZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIyNiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy4xMyw5SDEyVjcuMzNB'@; put 'LjMzLjMzLDAsMCwxLDEyLjMzLDdIMTZWNmEyLDIsMCwwLDEsNCwwVjdoMi41N2E3LjUyLDcuNTIsMCwwLDEtLjA3LTEsNy41Miw3LjUyLDAsMCwxLC4wNy0xaC0uN2E0LDQsMCwwLDAtNy43NSwwSDEyLjMzQTIuMzQsMi4zNCwwLDAsMCwxMCw3LjMzVjExSDI0LjQyQTcuNSw3LjUsMCwwLDEs'@; put 'MjMuMTMsOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNTIsNy41MiwwLDAsMS0xLS4wN1YzMkg3VjdIOVY1SDdBMS43NSwxLjc1LDAsMCwwLDUsNi42OVYzMi4z'@; put 'MUExLjcsMS43LDAsMCwwLDYuNzEsMzRIMjkuMjlBMS43LDEuNywwLDAsMCwzMSwzMi4zMVYxMy40M0E3LjUyLDcuNTIsMCwwLDEsMzAsMTMuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJj'@; put 'bGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS4yOSw1SDIyLjE3YTQuNDUsNC40NSwwLDAsMC00LjExLTNBNC40Niw0'@; put 'LjQ2LDAsMCwwLDE0LDVIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY5VjMyLjMxQTEuNywxLjcsMCwwLDAsNi43MSwzNEgyOS4yOUExLjcsMS43LDAsMCwwLDMxLDMyLjMxVjYuNjlBMS43LDEuNywwLDAsMCwyOS4yOSw1Wm0tMTgsM2ExLDEsMCwwLDEsMS0xaDMuNDRWNi4zMWEyLjMxLDIuMzEs'@; put 'MCwxLDEsNC42MywwVjdoMy40NGExLDEsMCwwLDEsMSwxdjJIMTEuMzFaTTI1LDI4SDExVjI2SDI1Wm0wLTRIMTFWMjJIMjVabTAtNEgxMVYxOEgyNVptMC00SDExVjE0SDI1WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9'@; put 'Ik0zMCwxMy41QTcuNDksNy40OSwwLDAsMSwyMy42NiwxMEgxMS4zMVY4YTEsMSwwLDAsMSwxLTFoMy40NFY2LjMxYTIuMzEsMi4zMSwwLDEsMSw0LjYzLDBWN2gyLjE5YTcuNTQsNy41NCwwLDAsMS0uMDctMSw3LjUyLDcuNTIsMCwwLDEsLjA3LTFoLS40YTQuNDUsNC40NSwwLDAsMC00LjEx'@; put 'LTNBNC40Niw0LjQ2LDAsMCwwLDE0LDVIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY5VjMyLjMxQTEuNywxLjcsMCwwLDAsNi43MSwzNEgyOS4yOUExLjcsMS43LDAsMCwwLDMxLDMyLjMxVjEzLjQzQTcuNTIsNy41MiwwLDAsMSwzMCwxMy41Wk0yNSwyOEgxMVYyNkgyNVptMC00SDExVjIySDI1'@; put 'Wm0wLTRIMTFWMThIMjVabTAtNEgxMVYxNEgyNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWkt'@; put 'c29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksYi5DbHJTaGFwZUZpcmV3YWxsPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMiw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlpNNCw4SDMy'@; put 'djUuMDhIMjMuOHYtNEgyMnY0SDE0di00SDEydjRINFptMCw3SDMydjYuMDhIMjguOTJWMTYuMjdIMjd2NC44MUgxOC45MlYxNi4yN0gxN3Y0LjgxSDguOVYxNi4yN0g3djQuODFINFpNMjMuOCwyOFYyNC4yN0gyMi4yVjI4SDE0VjI0LjI3aC0xLjZWMjhINFYyM0gzMnY1WiIgY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMnY1LjY4SDI4LjkyVjE2LjI3SDI3djQuODFIMTguOTJWMTYuMjdIMTd2NC44MUg4LjlWMTYuMjdIN3Y0LjgxSDRWMTVIMjAuNThhMy41OCwzLjU4LDAsMCwxLTEu'@; put 'NzYtMS45MkgxNHYtNEgxMnY0SDRWOEgyMC4xNGwxLjE1LTJINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxNS4zOFpNMjMuOCwyOFYyNC4yN0gyMi4yVjI4SDE0VjI0LjI3aC0xLjZWMjhINFYyM0gzMnY1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUt'@; put 'LWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAs'@; put 'MCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWE3LjQ3LDcuNDcsMCwwLDEtMi40NS0uNDJIMjMuOFYxMC4yMmE3LjUs'@; put 'Ny41LDAsMCwxLS42My0xLjE0SDIydjRIMTR2LTRIMTJ2NEg0VjhIMjIuNzhhNy40OSw3LjQ5LDAsMCwxLS4yOC0ySDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMwLDEzLjVaTTQsMTVIMzJ2Ni4wOEgyOC45'@; put 'MlYxNi4yN0gyN3Y0LjgxSDE4LjkyVjE2LjI3SDE3djQuODFIOC45VjE2LjI3SDd2NC44MUg0Wk0yMy44LDI4VjI0LjI3SDIyLjJWMjhIMTRWMjQuMjdoLTEuNlYyOEg0VjIzSDMydjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQi'@; put 'IC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhW'@; put 'MjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTE0LDI4SDEyVjI0aDJabTEwLDBIMjJWMjRoMlptOC02SDRWMjBIN1YxNkg5djRoOFYxNmgydjRoOFYxNmgydjRoM1ptMC04SDRWMTJoOFY4aDJ2NGg4VjhoMnY0aDhaIiBjbGFzcz0iY2xyLWktc29s'@; put 'aWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjY4LDE1LjRIMjIuMjNBMy42OSwzLjY5LDAsMCwxLDE5LjM1LDE0SDRWMTJoOFY4aDJ2NGg0LjU3QTMuNjcsMy42NywwLDAsMSwxOSw5Ljg5TDIxLjI5LDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiww'@; put 'LDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxNS4zOFpNMTQsMjhIMTJWMjRoMlptMTAsMEgyMlYyNGgyWm04LTZINFYyMEg3VjE2SDl2NGg4VjE2aDJ2NGg4VjE2aDJ2NGgzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAg'@; put 'ICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQg'@; put 'Y2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LDEwLjQ5VjEyaDEuNTFBNy41Myw3LjUzLDAsMCwxLDI0LDEwLjQ5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQi'@; put 'IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJWMTRINFYxMmg4VjhoMnY0aDhWOGguNzhhNy40OSw3LjQ5LDAsMCwxLS4yOC0ySDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWk0x'@; put 'NCwyOEgxMlYyNGgyWm0xMCwwSDIyVjI0aDJabTgtNkg0VjIwSDdWMTZIOXY0aDhWMTZoMnY0aDhWMTZoMnY0aDNaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0i'@; put 'NSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLGIuQ2xyU2hhcGVMaXN0PSgwLHAuY2xySWNvblNWRykoJzxyZWN0IHg9IjE1IiB5PSI4IiB3aWR0aD0iOSIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIxMiIgd2lkdGg9IjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMTYiIHdp'@; put 'ZHRoPSI5IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjIwIiB3aWR0aD0iOSIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5c'@; put 'biAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIyNCIgd2lkdGg9IjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTIiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjE2'@; put 'IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIyMCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTki'@; put 'IC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwySDhBMiwyLDAsMCwwLDYsNFYzMmEyLDIsMCwwLDAsMiwy'@; put 'SDI4YTIsMiwwLDAsMCwyLTJWNEEyLDIsMCwwLDAsMjgsMlptMCwzMEg4VjRIMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMTIiIHdpZHRoPSI5IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIxNiIgd2lkdGg9IjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxu'@; put 'ICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjIwIiB3aWR0aD0iOSIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMjQiIHdpZHRoPSI5IiBoZWlnaHQ9'@; put 'IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSI4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC01LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTIiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxNiIg'@; put 'd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjIwIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC04LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxw'@; put 'YXRoIGQ9Ik0xNSw4djJoOC42NmE3LjQ1LDcuNDUsMCwwLDEtLjg5LTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDEzLjIyVjMySDhWNEgyMi43OGE3LjQ1LDcuNDUsMCww'@; put 'LDEsLjg4LTJIOEEyLDIsMCwwLDAsNiw0VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlYxMy41QTcuNDksNy40OSwwLDAsMSwyOCwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTExLS1iYWRnZWQiIC8+XG4gICAgICAgICAg'@; put 'ICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDJIOEEyLDIsMCwwLDAsNiw0VjMyYTIsMiwwLDAsMCwy'@; put 'LDJIMjhhMiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwyOCwyWk0xMywyNkgxMVYyNGgyWm0wLTRIMTFWMjBoMlptMC00SDExVjE2aDJabTAtNEgxMVYxMmgyWm0wLTRIMTFWOGgyWk0yNSwyNkgxNVYyNEgyNVptMC00SDE1VjIwSDI1Wm0wLTRIMTVWMTZIMjVabTAtNEgxNVYxMkgyNVptMC00'@; put 'SDE1VjhIMjVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjY2LDEwSDE1VjhoNy43OGE3LjQyLDcuNDIsMCwwLDEsLjg5LTZIOEEyLDIsMCwwLDAsNiw0VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDIt'@; put 'MlYxMy41QTcuNDksNy40OSwwLDAsMSwyMy42NiwxMFpNMTMsMjZIMTFWMjRoMlptMC00SDExVjIwaDJabTAtNEgxMVYxNmgyWm0wLTRIMTFWMTJoMlptMC00SDExVjhoMlpNMjUsMjZIMTVWMjRIMjVabTAtNEgxNVYyMEgyNVptMC00SDE1VjE2SDI1Wm0wLTRIMTVWMTJIMjVaIiBjbGFzcz0i'@; put 'Y2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicp'@; put 'LGIuQ2xyU2hhcGVSZWRvPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNCw0LjIyYTEsMSwwLDAsMC0xLjQxLDEuNDJsNS41Niw1LjQ5aC0xM0ExMSwxMSwwLDAsMCwxMC4wNywzMiwxLDEsMCwwLDAsMTEsMzAuMThhOSw5LDAsMCwxLTUtOCw5LjA4LDkuMDgsMCwwLDEsOS4xMy05aDEz'@; put 'bC01LjU0LDUuNDhBMSwxLDAsMCwwLDI0LDIwbDgtNy45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLGIuQ2xyU2hhcGVVbmRvPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMC44NywxMS4xNGgtMTNsNS41Ni01LjQ5QTEsMSwwLDAsMCwx'@; put 'Miw0LjIyTDQsMTIuMTMsMTIsMjBhMSwxLDAsMCwwLDEuNDEtMS40Mkw3Ljg2LDEzLjE0aDEzYTkuMDgsOS4wOCwwLDAsMSw5LjEzLDksOSw5LDAsMCwxLTUsOEExLDEsMCwwLDAsMjUuOTMsMzJhMTEsMTEsMCwwLDAtNS4wNi0yMC44MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0xIiAvPicpLGIuQ2xyU2hhcGVTY3JvbGw9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM0LDExLjEyVjYuNThhNC41LDQuNSwwLDAsMC00LjUtNC41aC0xNkE0LjUsNC41LDAsMCwwLDksNi41OHYyM2EyLjUsMi41LDAsMSwxLTUsMFYyNkg3LjE5VjI0SDJ2NS41QTQu'@; put 'NSw0LjUsMCwwLDAsNi41LDM0SDI1LjU4YTQuNSw0LjUsMCwwLDAsNC41LTQuNVYxMy4xM2gtMlYyOS41NGEyLjUsMi41LDAsMCwxLTIuNSwyLjVIMTAuMjRhNC40Nyw0LjQ3LDAsMCwwLC43Ni0yLjV2LTIzYTIuNSwyLjUsMCwwLDEsNSwwdjQuNTRabS00LjUtN0EyLjUsMi41LDAsMCwxLDMy'@; put 'LDYuNThWOS4xMkgxOFY2LjU4YTQuNDgsNC40OCwwLDAsMC0uNzYtMi41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguMDgsMTUuNFYyOS41NGEyLjUsMi41LDAsMCwxLTIuNSwyLjVIMTAuMjRhNC40Nyw0'@; put 'LjQ3LDAsMCwwLC43Ni0yLjV2LTIzYTIuNSwyLjUsMCwwLDEsNSwwdjQuNTRoMi42MUEzLjY2LDMuNjYsMCwwLDEsMTksOS44OWwuNDQtLjc2SDE4VjYuNThhNC40OCw0LjQ4LDAsMCwwLS43Ni0yLjVIMjIuNGwxLjE1LTJIMTMuNUE0LjUsNC41LDAsMCwwLDksNi41OHYyM2EyLjUsMi41LDAs'@; put 'MSwxLTUsMFYyNkg3LjE5VjI0SDJ2NS41QTQuNSw0LjUsMCwwLDAsNi41LDM0SDI1LjU4YTQuNSw0LjUsMCwwLDAsNC41LTQuNVYxNS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBk'@; put 'PSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWE3LjQ5LDcuNDksMCwwLDEtMS45Mi0uMjZ2MTYuM2EyLjUsMi41LDAsMCwxLTIuNSwyLjVIMTAuMjRhNC40Nyw0LjQ3LDAsMCwwLC43Ni0yLjV2LTIzYTIuNSwyLjUsMCwwLDEsNSww'@; put 'djQuNTRoOC41NGE3LjUsNy41LDAsMCwxLTEuMzUtMkgxOFY2LjU4YTQuNDgsNC40OCwwLDAsMC0uNzYtMi41aDUuNTJhNy40NCw3LjQ0LDAsMCwxLC44Ni0ySDEzLjVBNC41LDQuNSwwLDAsMCw5LDYuNTh2MjNhMi41LDIuNSwwLDEsMS01LDBWMjZINy4xOVYyNEgydjUuNUE0LjUsNC41LDAs'@; put 'MCwwLDYuNSwzNEgyNS41OGE0LjUsNC41LDAsMCwwLDQuNS00LjV2LTE2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTM0LDExLjEyVjYuNThhNC41LDQuNSwwLDAsMC00LjUtNC41aC0xNkE0LjUsNC41LDAsMCwwLDksNi41OFYyNEgydjUuNUE0LjUsNC41LDAsMCww'@; put 'LDYuNSwzNEgyNS41OGE0LjUsNC41LDAsMCwwLDQuNS00LjVWMTMuMTNoLTJWMjkuNTRhMi41LDIuNSwwLDAsMS0yLjUsMi41SDEwLjI0YTQuNDcsNC40NywwLDAsMCwuNzYtMi41di0yM2EyLjUsMi41LDAsMCwxLDUsMHY0LjU0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBh'@; put 'dGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4wOCwxNS40VjI5LjU0YTIuNSwyLjUsMCwwLDEtMi41LDIuNUgxMC4yNGE0LjQ3LDQuNDcsMCwwLDAsLjc2LTIuNXYtMjNhMi41LDIuNSwwLDAsMSw1LDB2NC41NGgyLjYxQTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5bDQuNTEtNy44'@; put 'SDEzLjVBNC41LDQuNSwwLDAsMCw5LDYuNThWMjRIMnY1LjVBNC41LDQuNSwwLDAsMCw2LjUsMzRIMjUuNThhNC41LDQuNSwwLDAsMCw0LjUtNC41VjE1LjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAg'@; put 'PHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xp'@; put 'ZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWE3LjQ5LDcuNDksMCwwLDEtMS45Mi0uMjZ2MTYuM2EyLjUsMi41LDAsMCwxLTIuNSwyLjVIMTAuMjRhNC40Nyw0LjQ3LDAsMCwwLC43Ni0yLjV2LTIzYTIuNSwyLjUsMCwwLDEs'@; put 'NSwwdjQuNTRoOC41NGE3LjQ2LDcuNDYsMCwwLDEtLjkyLTlIMTMuNUE0LjUsNC41LDAsMCwwLDksNi41OFYyNEgydjUuNUE0LjUsNC41LDAsMCwwLDYuNSwzNEgyNS41OGE0LjUsNC41LDAsMCwwLDQuNS00LjV2LTE2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQt'@; put 'cGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxiLkNsclNoYXBlRmlsZVNldHRpbmdzPSgwLHAuY2xy'@; put 'SWNvblNWRykoJzxwYXRoIGQ9Ik0zMy44MywyMy40M2ExLjE2LDEuMTYsMCwwLDAtLjcxLTEuMTJsLTEuNjgtLjVjLS4wOS0uMjQtLjE4LS40OC0uMjktLjcxbC43OC0xLjQ0YTEuMTYsMS4xNiwwLDAsMC0uMjEtMS4zN2wtMS40Mi0xLjQxYTEuMTYsMS4xNiwwLDAsMC0xLjM3LS4ybC0xLjQ1'@; put 'Ljc2YTcuODQsNy44NCwwLDAsMC0uNzYtLjMybC0uNDgtMS41OGExLjE1LDEuMTUsMCwwLDAtMS4xMS0uNzdoLTJhMS4xNiwxLjE2LDAsMCwwLTEuMTEuODJsLS40NywxLjU0YTcuNzYsNy43NiwwLDAsMC0uNzcuMzJsLTEuNDItLjc2YTEuMTYsMS4xNiwwLDAsMC0xLjM2LjJsLTEuNDUsMS40'@; put 'YTEuMTYsMS4xNiwwLDAsMC0uMjEsMS4zOEwxNy4wOCwyMWE3LjY0LDcuNjQsMCwwLDAtLjMxLjc0bC0xLjU4LjQ3YTEuMTUsMS4xNSwwLDAsMC0uODMsMS4xMXYyYTEuMTUsMS4xNSwwLDAsMCwuODMsMS4xbDEuNTkuNDdhNy41Myw3LjUzLDAsMCwwLC4zMS43MmwtLjc4LDEuNDZhMS4xNiwx'@; put 'LjE2LDAsMCwwLC4yMSwxLjM3bDEuNDIsMS40YTEuMTYsMS4xNiwwLDAsMCwxLjM3LjIxbDEuNDgtLjc4Yy4yMy4xMS40Ny4yLjcyLjI5TDIyLDMzLjE4YTEuMTYsMS4xNiwwLDAsMCwxLjExLjgxaDJhMS4xNiwxLjE2LDAsMCwwLDEuMTEtLjgybC40Ny0xLjU4Yy4yNC0uMDguNDctLjE4Ljct'@; put 'LjI5bDEuNS43OWExLjE2LDEuMTYsMCwwLDAsMS4zNi0uMmwxLjQyLTEuNGExLjE2LDEuMTYsMCwwLDAsLjIxLTEuMzhsLS43OS0xLjQ1cS4xNi0uMzQuMjktLjY5TDMzLDI2LjVhMS4xNSwxLjE1LDAsMCwwLC44My0xLjExWm0tMS42LDEuNjMtMi4xMS42Mi0uMTIuNDJhNiw2LDAsMCwxLS41'@; put 'LDEuMTlsLS4yMS4zOCwxLDEuOTEtMSwxLTItMS0uMzcuMmE2LjIxLDYuMjEsMCwwLDEtMS4yLjQ5bC0uNDIuMTItLjYzLDIuMDlIMjMuNDJsLS42My0yLjA4LS40Mi0uMTJhNi4yMyw2LjIzLDAsMCwxLTEuMjEtLjQ5bC0uMzctLjItMS45NCwxLTEtMSwxLTEuOTQtLjIyLS4zOEE2LDYsMCww'@; put 'LDEsMTguMTcsMjZMMTgsMjUuNjMsMTYsMjVWMjMuNjlMMTgsMjMuMDhsLjEzLS40MWE1Ljk0LDUuOTQsMCwwLDEsLjUzLTEuMjNMMTguOSwyMWwtMS0xLjg1LDEtLjk0LDEuODksMSwuMzgtLjIxYTYuMjMsNi4yMywwLDAsMSwxLjI2LS41MmwuNDEtLjEyLjYzLTJoMS4zOGwuNjIsMiwuNDEu'@; put 'MTJBNi4yMSw2LjIxLDAsMCwxLDI3LjEsMTlsLjM4LjIxLDEuOTItMSwxLDEtMSwxLjg5LjIxLjM4YTYuMDgsNi4wOCwwLDAsMSwuNSwxLjIxbC4xMi40MiwyLjA2LjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBk'@; put 'PSJNMjQuMTIsMjAuMzVhNCw0LDAsMSwwLDQuMDgsNEE0LjA2LDQuMDYsMCwwLDAsMjQuMTIsMjAuMzVabTAsNi40NmEyLjQzLDIuNDMsMCwxLDEsMi40OC0yLjQzQTIuNDYsMi40NiwwLDAsMSwyNC4xMiwyNi44MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0y'@; put 'IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE0LjQ5LDMxSDZWNUgyNnY3Ljg5YTMuMiwzLjIsMCwwLDEsMiwxLjcyVjVhMiwyLDAsMCwwLTItMkg2QTIsMiwwLDAsMCw0LDVWMzFhMiwyLDAsMCwwLDIsMkgxNi4yM2wtMS4xLTEuMDhBMy4xMSwzLjExLDAsMCwxLDE0LjQ5LDMxWiIgY2xh'@; put 'c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQuMTIsMjAuMzVhNCw0LDAsMSwwLDQuMDgsNEE0LjA2LDQuMDYsMCwwLDAsMjQuMTIsMjAuMzVabTAsNi40NmEyLjQzLDIuNDMsMCwxLDEsMi40OC0yLjQzQTIuNDYsMi40'@; put 'NiwwLDAsMSwyNC4xMiwyNi44MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjgzLDIzLjQzYTEuMTYsMS4xNiwwLDAsMC0uNzEtMS4xMmwtMS42OC0uNWMtLjA5LS4yNC0u'@; put 'MTgtLjQ4LS4yOS0uNzFsLjc4LTEuNDRhMS4xNiwxLjE2LDAsMCwwLS4yMS0xLjM3bC0xLjQyLTEuNDFhMS4xNiwxLjE2LDAsMCwwLTEuMzctLjJsLTEuNDUuNzZhNy44NCw3Ljg0LDAsMCwwLS43Ni0uMzJsLS40OC0xLjU4YTEuMTUsMS4xNSwwLDAsMC0xLjExLS43N2gtMmExLjE2LDEuMTYs'@; put 'MCwwLDAtMS4xMS44MmwtLjQ3LDEuNTRhNy43Niw3Ljc2LDAsMCwwLS43Ny4zMmwtMS40Mi0uNzZhMS4xNiwxLjE2LDAsMCwwLTEuMzYuMmwtMS40NSwxLjRhMS4xNiwxLjE2LDAsMCwwLS4yMSwxLjM4TDE3LjA4LDIxYTcuNjQsNy42NCwwLDAsMC0uMzEuNzRsLTEuNTguNDdhMS4xNSwxLjE1'@; put 'LDAsMCwwLS44MywxLjExdjJhMS4xNSwxLjE1LDAsMCwwLC44MywxLjFsMS41OS40N2E3LjUzLDcuNTMsMCwwLDAsLjMxLjcybC0uNzgsMS40NmExLjE2LDEuMTYsMCwwLDAsLjIxLDEuMzdsMS40MiwxLjRhMS4xNiwxLjE2LDAsMCwwLDEuMzcuMjFsMS40OC0uNzhjLjIzLjExLjQ3LjIuNzIu'@; put 'MjlMMjIsMzMuMThhMS4xNiwxLjE2LDAsMCwwLDEuMTEuODFoMmExLjE2LDEuMTYsMCwwLDAsMS4xMS0uODJsLjQ3LTEuNThjLjI0LS4wOC40Ny0uMTguNy0uMjlsMS41Ljc5YTEuMTYsMS4xNiwwLDAsMCwxLjM2LS4ybDEuNDItMS40YTEuMTYsMS4xNiwwLDAsMCwuMjEtMS4zOGwtLjc5LTEu'@; put 'NDVxLjE2LS4zNC4yOS0uNjlMMzMsMjYuNWExLjE1LDEuMTUsMCwwLDAsLjgzLTEuMTFabS0xLjYsMS42My0yLjExLjYyLS4xMi40MmE2LDYsMCwwLDEtLjUsMS4xOWwtLjIxLjM4LDEsMS45MS0xLDEtMi0xLS4zNy4yYTYuMjEsNi4yMSwwLDAsMS0xLjIuNDlsLS40Mi4xMi0uNjMsMi4wOUgy'@; put 'My40MmwtLjYzLTIuMDgtLjQyLS4xMmE2LjIzLDYuMjMsMCwwLDEtMS4yMS0uNDlsLS4zNy0uMi0xLjk0LDEtMS0xLDEtMS45NC0uMjItLjM4QTYsNiwwLDAsMSwxOC4xNywyNkwxOCwyNS42MywxNiwyNVYyMy42OUwxOCwyMy4wOGwuMTMtLjQxYTUuOTQsNS45NCwwLDAsMSwuNTMtMS4yM0wx'@; put 'OC45LDIxbC0xLTEuODUsMS0uOTQsMS44OSwxLC4zOC0uMjFhNi4yMyw2LjIzLDAsMCwxLDEuMjYtLjUybC40MS0uMTIuNjMtMmgxLjM4bC42MiwyLC40MS4xMkE2LjIxLDYuMjEsMCwwLDEsMjcuMSwxOWwuMzguMjEsMS45Mi0xLDEsMS0xLDEuODkuMjEuMzhhNi4wOCw2LjA4LDAsMCwxLC41'@; put 'LDEuMjFsLjEyLjQyLDIuMDYuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNC40OSwzMUg2VjVIMjEuODdMMjMsM0g2QTIsMiwwLDAsMCw0LDVWMzFhMiwyLDAsMCwwLDIs'@; put 'MkgxNi4yM2wtMS4xLTEuMDhBMy4xMSwzLjExLDAsMCwxLDE0LjQ5LDMxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCww'@; put 'LDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAg'@; put 'ICAgICAgICA8cGF0aCBkPSJNMzMuODMsMjMuNDNhMS4xNiwxLjE2LDAsMCwwLS43MS0xLjEybC0xLjY4LS41Yy0uMDktLjI0LS4xOC0uNDgtLjI5LS43MWwuNzgtMS40NGExLjE2LDEuMTYsMCwwLDAtLjIxLTEuMzdsLTEuNDItMS40MWExLjE2LDEuMTYsMCwwLDAtMS4zNy0uMmwtMS40NS43'@; put 'NmE3Ljg0LDcuODQsMCwwLDAtLjc2LS4zMmwtLjQ4LTEuNThhMS4xNSwxLjE1LDAsMCwwLTEuMTEtLjc3aC0yYTEuMTYsMS4xNiwwLDAsMC0xLjExLjgybC0uNDcsMS41NGE3Ljc2LDcuNzYsMCwwLDAtLjc3LjMybC0xLjQyLS43NmExLjE2LDEuMTYsMCwwLDAtMS4zNi4ybC0xLjQ1LDEuNGEx'@; put 'LjE2LDEuMTYsMCwwLDAtLjIxLDEuMzhMMTcuMDgsMjFhNy42NCw3LjY0LDAsMCwwLS4zMS43NGwtMS41OC40N2ExLjE1LDEuMTUsMCwwLDAtLjgzLDEuMTF2MmExLjE1LDEuMTUsMCwwLDAsLjgzLDEuMWwxLjU5LjQ3YTcuNTMsNy41MywwLDAsMCwuMzEuNzJsLS43OCwxLjQ2YTEuMTYsMS4x'@; put 'NiwwLDAsMCwuMjEsMS4zN2wxLjQyLDEuNGExLjE2LDEuMTYsMCwwLDAsMS4zNy4yMWwxLjQ4LS43OGMuMjMuMTEuNDcuMi43Mi4yOUwyMiwzMy4xOGExLjE2LDEuMTYsMCwwLDAsMS4xMS44MWgyYTEuMTYsMS4xNiwwLDAsMCwxLjExLS44MmwuNDctMS41OGMuMjQtLjA4LjQ3LS4xOC43LS4y'@; put 'OWwxLjUuNzlhMS4xNiwxLjE2LDAsMCwwLDEuMzYtLjJsMS40Mi0xLjRhMS4xNiwxLjE2LDAsMCwwLC4yMS0xLjM4bC0uNzktMS40NXEuMTYtLjM0LjI5LS42OUwzMywyNi41YTEuMTUsMS4xNSwwLDAsMCwuODMtMS4xMVptLTEuNiwxLjYzLTIuMTEuNjItLjEyLjQyYTYsNiwwLDAsMS0uNSwx'@; put 'LjE5bC0uMjEuMzgsMSwxLjkxLTEsMS0yLTEtLjM3LjJhNi4yMSw2LjIxLDAsMCwxLTEuMi40OWwtLjQyLjEyLS42MywyLjA5SDIzLjQybC0uNjMtMi4wOC0uNDItLjEyYTYuMjMsNi4yMywwLDAsMS0xLjIxLS40OWwtLjM3LS4yLTEuOTQsMS0xLTEsMS0xLjk0LS4yMi0uMzhBNiw2LDAsMCwx'@; put 'LDE4LjE3LDI2TDE4LDI1LjYzLDE2LDI1VjIzLjY5TDE4LDIzLjA4bC4xMy0uNDFhNS45NCw1Ljk0LDAsMCwxLC41My0xLjIzTDE4LjksMjFsLTEtMS44NSwxLS45NCwxLjg5LDEsLjM4LS4yMWE2LjIzLDYuMjMsMCwwLDEsMS4yNi0uNTJsLjQxLS4xMi42My0yaDEuMzhsLjYyLDIsLjQxLjEy'@; put 'QTYuMjEsNi4yMSwwLDAsMSwyNy4xLDE5bC4zOC4yMSwxLjkyLTEsMSwxLTEsMS44OS4yMS4zOGE2LjA4LDYuMDgsMCwwLDEsLjUsMS4yMWwuMTIuNDIsMi4wNi42MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAg'@; put 'ICAgICAgIDxwYXRoIGQ9Ik0yNC4xMiwyMC4zNWE0LDQsMCwxLDAsNC4wOCw0QTQuMDYsNC4wNiwwLDAsMCwyNC4xMiwyMC4zNVptMCw2LjQ2YTIuNDMsMi40MywwLDEsMSwyLjQ4LTIuNDNBMi40NiwyLjQ2LDAsMCwxLDI0LjEyLDI2LjgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl'@; put 'ZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE0LjQ5LDMxSDZWNUgyMy4wOGE2Ljk0LDYuOTQsMCwwLDEsLjYtMkg2QTIsMiwwLDAsMCw0LDVWMzFhMiwyLDAsMCwwLDIsMkgxNi4yM2wtMS4xLTEuMDhBMy4xMSwzLjExLDAsMCwxLDE0'@; put 'LjQ5LDMxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDE1LjMzVjEyLjcxYTcsNywwLDAsMS0yLTF2MS44OEEzLjIsMy4yLDAsMCwxLDI4LDE1LjMzWiIgY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiAv'@; put 'PlxuICAgICAgICAgICAgPHBhdGggZD0iTTE1LjU1LDMxSDZWNUgyNnY4Ljc4YTIuMzcsMi4zNywwLDAsMSwyLDEuNTdWNWEyLDIsMCwwLDAtMi0ySDZBMiwyLDAsMCwwLDQsNVYzMWEyLDIsMCwwLDAsMiwySDE3LjE2bC0xLTFBMi4zOCwyLjM4LDAsMCwxLDE1LjU1LDMxWiIgY2xhc3M9ImNs'@; put 'ci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy41NCwyMy40N2wtMi0uNjFhNy4wNiw3LjA2LDAsMCwwLS41OC0xLjQxbDEtMS44NmEuMzcuMzcsMCwwLDAtLjA3LS40NEwzMC40MSwxNy43YS4zNy4zNywwLDAsMC0uNDQtLjA3bC0xLjg1'@; put 'LDFBNyw3LDAsMCwwLDI2LjY5LDE4bC0uNjEtMmEuMzcuMzcsMCwwLDAtLjM2LS4yNWgtMmEuMzcuMzcsMCwwLDAtLjM1LjI2bC0uNjEsMmE3LDcsMCwwLDAtMS40NC42MWwtMS44Mi0xYS4zNy4zNywwLDAsMC0uNDQuMDdsLTEuNDcsMS40NGEuMzcuMzcsMCwwLDAtLjA3LjQ0bDEsMS44MmE3'@; put 'LDcsMCwwLDAtLjYxLDEuNDRsLTIsLjYxYS4zNy4zNywwLDAsMC0uMjYuMzV2MmEuMzcuMzcsMCwwLDAsLjI2LjM1bDIsLjYxYTcsNywwLDAsMCwuNjEsMS40MWwtMSwxLjlhLjM3LjM3LDAsMCwwLC4wNy40NEwxOSwzMmEuMzcuMzcsMCwwLDAsLjQ0LjA3bDEuODctMWE3LjA2LDcuMDYsMCww'@; put 'LDAsMS4zOS41N2wuNjEsMmEuMzcuMzcsMCwwLDAsLjM1LjI2aDJhLjM3LjM3LDAsMCwwLC4zNS0uMjZsLjYxLTJhNyw3LDAsMCwwLDEuMzgtLjU3bDEuODksMWEuMzcuMzcsMCwwLDAsLjQ0LS4wN2wxLjQ1LTEuNDVhLjM3LjM3LDAsMCwwLC4wNy0uNDRsLTEtMS44OGE3LjA2LDcuMDYsMCww'@; put 'LDAsLjU4LTEuMzlsMi0uNjFhLjM3LjM3LDAsMCwwLC4yNi0uMzVWMjMuODNBLjM3LjM3LDAsMCwwLDMzLjU0LDIzLjQ3Wk0yNC43LDI4LjE5QTMuMzMsMy4zMywwLDEsMSwyOCwyNC44NiwzLjMzLDMuMzMsMCwwLDEsMjQuNywyOC4xOVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp'@; put 'ZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNTQsMjMuNDdsLTItLjYxYTcuMDYsNy4wNiwwLDAsMC0uNTgtMS40MWwxLTEuODZhLjM3LjM3LDAsMCwwLS4wNy0uNDRMMzAuNDEsMTcuN2EuMzcuMzcsMCwwLDAtLjQ0LS4wN2wtMS44NSwxQTcsNywwLDAsMCwyNi42OSwx'@; put 'OGwtLjYxLTJhLjM3LjM3LDAsMCwwLS4zNi0uMjVoLTJhLjM3LjM3LDAsMCwwLS4zNS4yNmwtLjYxLDJhNyw3LDAsMCwwLTEuNDQuNjFsLTEuODItMWEuMzcuMzcsMCwwLDAtLjQ0LjA3bC0xLjQ3LDEuNDRhLjM3LjM3LDAsMCwwLS4wNy40NGwxLDEuODJhNyw3LDAsMCwwLS42MSwxLjQ0bC0y'@; put 'LC42MWEuMzcuMzcsMCwwLDAtLjI2LjM1djJhLjM3LjM3LDAsMCwwLC4yNi4zNWwyLC42MWE3LDcsMCwwLDAsLjYxLDEuNDFsLTEsMS45YS4zNy4zNywwLDAsMCwuMDcuNDRMMTksMzJhLjM3LjM3LDAsMCwwLC40NC4wN2wxLjg3LTFhNy4wNiw3LjA2LDAsMCwwLDEuMzkuNTdsLjYxLDJhLjM3'@; put 'LjM3LDAsMCwwLC4zNS4yNmgyYS4zNy4zNywwLDAsMCwuMzUtLjI2bC42MS0yYTcsNywwLDAsMCwxLjM4LS41N2wxLjg5LDFhLjM3LjM3LDAsMCwwLC40NC0uMDdsMS40NS0xLjQ1YS4zNy4zNywwLDAsMCwuMDctLjQ0bC0xLTEuODhhNy4wNiw3LjA2LDAsMCwwLC41OC0xLjM5bDItLjYxYS4z'@; put 'Ny4zNywwLDAsMCwuMjYtLjM1VjIzLjgzQS4zNy4zNywwLDAsMCwzMy41NCwyMy40N1pNMjQuNywyOC4xOUEzLjMzLDMuMzMsMCwxLDEsMjgsMjQuODYsMy4zMywzLjMzLDAsMCwxLDI0LjcsMjguMTlaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1h'@; put 'bGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE1LjU1LDMxSDZWNUgyMS44N0wyMywzSDZBMiwyLDAsMCwwLDQsNVYzMWEyLDIsMCwwLDAsMiwySDE3LjE2bC0xLTFBMi4zOCwyLjM4LDAsMCwxLDE1LjU1LDMxWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNv'@; put 'bGlkLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBj'@; put 'bGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRn'@; put 'ZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNTQsMjMuNDdsLTItLjYxYTcuMDYsNy4wNiwwLDAsMC0uNTgtMS40MWwxLTEuODZhLjM3LjM3LDAsMCwwLS4wNy0uNDRMMzAuNDEsMTcuN2EuMzcuMzcsMCwwLDAtLjQ0LS4wN2wtMS44NSwxQTcsNywwLDAsMCwy'@; put 'Ni42OSwxOGwtLjYxLTJhLjM3LjM3LDAsMCwwLS4zNi0uMjVoLTJhLjM3LjM3LDAsMCwwLS4zNS4yNmwtLjYxLDJhNyw3LDAsMCwwLTEuNDQuNjFsLTEuODItMWEuMzcuMzcsMCwwLDAtLjQ0LjA3bC0xLjQ3LDEuNDRhLjM3LjM3LDAsMCwwLS4wNy40NGwxLDEuODJhNyw3LDAsMCwwLS42MSwx'@; put 'LjQ0bC0yLC42MWEuMzcuMzcsMCwwLDAtLjI2LjM1djJhLjM3LjM3LDAsMCwwLC4yNi4zNWwyLC42MWE3LDcsMCwwLDAsLjYxLDEuNDFsLTEsMS45YS4zNy4zNywwLDAsMCwuMDcuNDRMMTksMzJhLjM3LjM3LDAsMCwwLC40NC4wN2wxLjg3LTFhNy4wNiw3LjA2LDAsMCwwLDEuMzkuNTdsLjYx'@; put 'LDJhLjM3LjM3LDAsMCwwLC4zNS4yNmgyYS4zNy4zNywwLDAsMCwuMzUtLjI2bC42MS0yYTcsNywwLDAsMCwxLjM4LS41N2wxLjg5LDFhLjM3LjM3LDAsMCwwLC40NC0uMDdsMS40NS0xLjQ1YS4zNy4zNywwLDAsMCwuMDctLjQ0bC0xLTEuODhhNy4wNiw3LjA2LDAsMCwwLC41OC0xLjM5bDIt'@; put 'LjYxYS4zNy4zNywwLDAsMCwuMjYtLjM1VjIzLjgzQS4zNy4zNywwLDAsMCwzMy41NCwyMy40N1pNMjQuNywyOC4xOUEzLjMzLDMuMzMsMCwxLDEsMjgsMjQuODYsMy4zMywzLjMzLDAsMCwxLDI0LjcsMjguMTlaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRo'@; put 'LTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNS41NSwzMUg2VjVIMjMuMDhhNi45NCw2Ljk0LDAsMCwxLC42LTJINkEyLDIsMCwwLDAsNCw1VjMxYTIsMiwwLDAsMCwyLDJIMTcuMTZsLTEtMUEyLjM4LDIuMzgsMCwwLDEsMTUuNTUsMzFaIiBjbGFzcz0iY2xyLWktc29s'@; put 'aWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxNS4zNlYxMi43MWE3LDcsMCwwLDEtMi0xdjJBMi4zNywyLjM3LDAsMCwxLDI4LDE1LjM2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0'@; put 'aC00LS1iYWRnZWQiIC8+JyksYi5DbHJTaGFwZVR3b1dheUFycm93cz0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjMuNDMsMTYuODNBMSwxLDAsMCwwLDIyLDE4LjI0TDI1LjcyLDIySDcuODNhMSwxLDAsMCwwLDAsMkgyNS43MkwyMiwyNy43YTEsMSwwLDEsMCwxLjQyLDEuNDFMMjku'@; put 'NTMsMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy4yNCwxOC40NWExLDEsMCwwLDAsLjcxLTEuNzFMMTAuMjQsMTNIMjguMTJhMSwxLDAsMCwwLDAtMkgxMC4yNGwzLjcxLTMuNzNhMSwxLDAsMCwwLTEu'@; put 'NDItMS40MUw2LjQyLDEybDYuMTEsNi4xNEExLDEsMCwwLDAsMTMuMjQsMTguNDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxiLkNsclNoYXBlU3dpdGNoPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik01LjcxLDE0SDIwLjkyVjEySDUuNzFM'@; put 'OS40Miw4LjI3QTEsMSwwLDEsMCw4LDYuODZMMS44OSwxMyw4LDE5LjE0YTEsMSwwLDEsMCwxLjQyLTEuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjMiIHk9IjEyIiB3aWR0aD0iMyIgaGVpZ2h0PSIyIiBj'@; put 'bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI4IiB5PSIxMiIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBk'@; put 'PSJNMjcuOTIsMTcuODZhMSwxLDAsMCwwLTEuNDIsMS40MUwzMC4yMSwyM0gxNXYySDMwLjIxTDI2LjUsMjguNzRhMSwxLDAsMSwwLDEuNDIsMS40TDM0LDI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMCIg'@; put 'eT0iMjMiIHdpZHRoPSIzIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNiIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC02IiAvPicpLGIuQ2xyU2hhcGVUb29scz0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjAsMTRIMTZhMSwxLDAsMCwwLTEsMXY2YTEsMSwwLDAsMCwxLDFoNGExLDEsMCwwLDAsMS0xVjE1QTEsMSwwLDAsMCwyMCwxNFptLS40LDYuNkgxNi40VjE1LjRoMy4yWiIgY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNzEsMTIuMzgsMjkuNjIsOC4yOUExLDEsMCwwLDAsMjguOTIsOGgtNVY2LjA1QTIsMiwwLDAsMCwyMiw0SDEzLjg0QTEuOTIsMS45MiwwLDAsMCwxMiw2LjA1VjhINy4wOGExLDEsMCww'@; put 'LDAtLjcxLjI5TDIuMjksMTIuMzhhMSwxLDAsMCwwLS4yOS43MVYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTMuMDhBMSwxLDAsMCwwLDMzLjcxLDEyLjM4Wk0xNCw2aDhWOEgxNFpNMzIsMTdIMjJ2MS45M0gzMlYyOEg0VjE4LjkzSDE0VjE3SDRWMTMuNUw3LjUsMTBoMjFM'@; put 'MzIsMTMuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYuNCIgeT0iMTUuNCIgd2lkdGg9IjMuMiIgaGVpZ2h0PSI1LjIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAg'@; put 'ICAgICAgICA8cGF0aCBkPSJNMjEsMjFhMSwxLDAsMCwxLTEsMUgxNmExLDEsMCwwLDEtMS0xVjE5SDJ2OWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTlIMjFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0i'@; put 'TTMzLjcxLDEyLjM4LDI5LjYyLDguMjlBMSwxLDAsMCwwLDI4LjkyLDhoLTVWNi4wNUEyLDIsMCwwLDAsMjIsNEgxMy44NEExLjkyLDEuOTIsMCwwLDAsMTIsNi4wNVY4SDcuMDhhMSwxLDAsMCwwLS43MS4yOUwyLjI5LDEyLjM4YTEsMSwwLDAsMC0uMjkuNzFWMTdIMTVWMTVhMSwxLDAsMCwx'@; put 'LDEtMWg0YTEsMSwwLDAsMSwxLDF2MkgzNFYxMy4wOEExLDEsMCwwLDAsMzMuNzEsMTIuMzhaTTIyLDhIMTRWNmg4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz4nKSxiLkNsclNoYXBlV2luZG93Q2xvc2U9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE5'@; put 'LjQxLDE4bDcuMjktNy4yOWExLDEsMCwwLDAtMS40MS0xLjQxTDE4LDE2LjU5LDEwLjcxLDkuMjlhMSwxLDAsMCwwLTEuNDEsMS40MUwxNi41OSwxOCw5LjI5LDI1LjI5YTEsMSwwLDEsMCwxLjQxLDEuNDFMMTgsMTkuNDFsNy4yOSw3LjI5YTEsMSwwLDAsMCwxLjQxLTEuNDFaIiBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxiLkNsclNoYXBlV2luZG93TWF4PSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNy44OSw5aC0yMGEyLDIsMCwwLDAtMiwyVjI1YTIsMiwwLDAsMCwyLDJoMjBhMiwyLDAsMCwwLDItMlYxMUEyLDIsMCwwLDAsMjcu'@; put 'ODksOVptLTIwLDE2VjExaDIwVjI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksYi5DbHJTaGFwZVdpbmRvd01pbj0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjcsMjdIOWExLDEsMCwwLDEsMC0ySDI3YTEsMSwwLDAsMSwwLDJaIiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxiLkNsclNoYXBlV2luZG93UmVzdG9yZT0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjgsOEgxNGEyLDIsMCwwLDAtMiwydjJoMlYxMEgyOFYyMEgyNnYyaDJhMiwyLDAsMCwwLDItMlYxMEEyLDIsMCwwLDAs'@; put 'MjgsOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDE0SDhhMiwyLDAsMCwwLTIsMlYyNmEyLDIsMCwwLDAsMiwySDIyYTIsMiwwLDAsMCwyLTJWMTZBMiwyLDAsMCwwLDIyLDE0Wk04LDI2VjE2SDIyVjI2'@; put 'WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksYi5DbHJTaGFwZVpvb21Jbj0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTYsNEExMiwxMiwwLDEsMCwyOCwxNiwxMiwxMiwwLDAsMCwxNiw0Wm0wLDIxLjkxQTEwLDEwLDAsMSwxLDI2LDE2LDEw'@; put 'LDEwLDAsMCwxLDE2LDI1LjkxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuNzEsMjkuNjlsLTUuMTctNS4xN0ExMy42OCwxMy42OCwwLDAsMSwyNS4xNSwyNmw1LjE1LDUuMTVhMSwxLDAsMCwwLDEuNDEt'@; put 'MS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIxLDE1SDE3VjExYTEsMSwwLDAsMC0yLDB2NEgxMWExLDEsMCwwLDAsMCwyaDR2NGExLDEsMCwwLDAsMiwwVjE3aDRhMSwxLDAsMCwwLDAtMloiIGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPicpLGIuQ2xyU2hhcGVab29tT3V0PSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNiw0QTEyLDEyLDAsMSwwLDI4LDE2LDEyLDEyLDAsMCwwLDE2LDRabTAsMjEuOTFBMTAsMTAsMCwxLDEsMjYsMTYsMTAsMTAsMCww'@; put 'LDEsMTYsMjUuOTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS43MSwyOS42OWwtNS4xNy01LjE3QTEzLjY4LDEzLjY4LDAsMCwxLDI1LjE1LDI2bDUuMTUsNS4xNWExLDEsMCwwLDAsMS40MS0xLjQxWiIg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjAsMTVIMTJhMSwxLDAsMCwwLDAsMmg4YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz4nKSxiLkNsclNo'@; put 'YXBlS2V5PSgwLHAuY2xySWNvblNWRykoJzxyZWN0IHg9IjYuMzMiIHk9IjEwLjcxIiB3aWR0aD0iOS43MSIgaGVpZ2h0PSIyLjU3IiByeD0iMSIgcnk9IjEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC01LjIxIDExLjQzKSByb3RhdGUoLTQ1KSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuMzUsMTYuOGwuNjMtLjYzQTUsNSwwLDAsMCwyNCw5LjFMMTguNzEsMy44NGE1LDUsMCwwLDAtNy4wNywwTDMuMDksMTIuMzlhNSw1LDAsMCwwLDAsNy4wN2w1LjI2LDUuMjZhNSw1LDAsMCwwLDcuMDcsMGwuNC0u'@; put 'NEwxOCwyNi40OGgzLjQ0djNoMy42OXYxLjYzTDI4LDM0aDZWMjcuNDVaTTMyLDMySDI4Ljg2bC0xLjc3LTEuNzZ2LTIuOEgyMy40MXYtM0gxOC44bC0zLTNMMTQsMjMuMzFhMywzLDAsMCwxLTQuMjQsMEw0LjUsMThhMywzLDAsMCwxLDAtNC4yNGw4LjU2LTguNTZhMywzLDAsMCwxLDQuMjQs'@; put 'MGw1LjI2LDUuMjZhMywzLDAsMCwxLDAsNC4yNGwtMiwyTDMyLDI4LjI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI2LjMzIiB5PSIxMC43MSIgd2lkdGg9IjkuNzEiIGhlaWdodD0iMi41NyIgcng9IjEiIHJ5'@; put 'PSIxIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNS4yMSAxMS40Mykgcm90YXRlKC00NSkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjM1LDE2LjhsLjYzLS42M2E1LDUsMCww'@; put 'LDAsLjYzLS43N0gyMi4yM2wtLjI5LDBMMjAuNTIsMTYuOCwzMiwyOC4yOFYzMkgyOC44NmwtMS43Ny0xLjc2di0yLjhIMjMuNDF2LTNIMTguOGwtMy0zTDE0LDIzLjMxYTMsMywwLDAsMS00LjI0LDBMNC41LDE4YTMsMywwLDAsMSwwLTQuMjRsOC41Ni04LjU2YTMsMywwLDAsMSw0LjI0LDBM'@; put 'MjAuMSw4LjA2bDEtMS43OUwxOC43MSwzLjg0YTUsNSwwLDAsMC03LjA3LDBMMy4wOSwxMi4zOWE1LDUsMCwwLDAsMCw3LjA3bDUuMjYsNS4yNmE1LDUsMCwwLDAsNy4wNywwbC40LS40TDE4LDI2LjQ4aDMuNDR2M2gzLjY5djEuNjNMMjgsMzRoNlYyNy40NVoiIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4y'@; put 'OCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNi4zMyIgeT0iMTAuNzEiIHdpZHRoPSI5LjcxIiBoZWlnaHQ9IjIuNTciIHJ4'@; put 'PSIxIiByeT0iMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTUuMjEgMTEuNDMpIHJvdGF0ZSgtNDUpIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuMzUsMTYuOGwuNjMtLjYzQTUs'@; put 'NSwwLDAsMCwyNCw5LjFMMTguNzEsMy44NGE1LDUsMCwwLDAtNy4wNywwTDMuMDksMTIuMzlhNSw1LDAsMCwwLDAsNy4wN2w1LjI2LDUuMjZhNSw1LDAsMCwwLDcuMDcsMGwuNC0uNEwxOCwyNi40OGgzLjQ0djNoMy42OXYxLjYzTDI4LDM0aDZWMjcuNDVaTTMyLDMySDI4Ljg2bC0xLjc3LTEu'@; put 'NzZ2LTIuOEgyMy40MXYtM0gxOC44bC0zLTNMMTQsMjMuMzFhMywzLDAsMCwxLTQuMjQsMEw0LjUsMThhMywzLDAsMCwxLDAtNC4yNGw4LjU2LTguNTZhMywzLDAsMCwxLDQuMjQsMGw1LjI2LDUuMjZhMywzLDAsMCwxLDAsNC4yNGwtMiwyTDMyLDI4LjI4WiIgY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAg'@; put 'ICAgICAgICAgPHBhdGggZD0iTTIzLjM4LDE2Ljc3bC42LS42QTUsNSwwLDAsMCwyNCw5LjFMMTguNzEsMy44NGE1LDUsMCwwLDAtNy4wNywwTDMuMDksMTIuMzlhNSw1LDAsMCwwLDAsNy4wN2w1LjI2LDUuMjZhNSw1LDAsMCwwLDcuMDcsMGwuNDUtLjQ1LDIuMSwyLjJoMy40NHYzaDMuNjl2'@; put 'MS42M0wyOCwzNGg2VjI3LjQ1Wm0tOC41Ni02LjU5TDkuMzcsMTUuNjRhMSwxLDAsMCwxLTEuNDEsMGwtLjQtLjRhMSwxLDAsMCwxLDAtMS40MUwxMyw4LjM2YTEsMSwwLDAsMSwxLjQxLDBsLjQuNEExLDEsMCwwLDEsMTQuODIsMTAuMThaTTMyLDMySDI4Ljg2bC0xLjc3LTEuNzZ2LTIuOEgy'@; put 'My40MXYtM0gxOC44bC0xLjUyLTEuNjFMMjIsMTguMTgsMzIsMjguMjhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjM4LDE2Ljc3bC42LS42YTUsNSwwLDAsMCwuNjMtLjc3SDIyLjIzQTMuNjgsMy42OCwwLDAs'@; put 'MSwxOSw5Ljg5bDIuMDktMy42MkwxOC43MSwzLjg0YTUsNSwwLDAsMC03LjA3LDBMMy4wOSwxMi4zOWE1LDUsMCwwLDAsMCw3LjA3bDUuMjYsNS4yNmE1LDUsMCwwLDAsNy4wNywwbC40NS0uNDUsMi4xLDIuMmgzLjQ0djNoMy42OXYxLjYzTDI4LDM0aDZWMjcuNDVabS04LjU2LTYuNTlMOS4z'@; put 'NywxNS42NGExLDEsMCwwLDEtMS40MSwwbC0uNC0uNGExLDEsMCwwLDEsMC0xLjQxTDEzLDguMzZhMSwxLDAsMCwxLDEuNDEsMGwuNC40QTEsMSwwLDAsMSwxNC44MiwxMC4xOFpNMzIsMzJIMjguODZsLTEuNzctMS43NnYtMi44SDIzLjQxdi0zSDE4LjhsLTEuNTItMS42MUwyMiwxOC4xOCwz'@; put 'MiwyOC4yOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4'@; put 'LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy4zOCwxNi43N2wuNi0uNkE1LDUsMCww'@; put 'LDAsMjQsOS4xTDE4LjcxLDMuODRhNSw1LDAsMCwwLTcuMDcsMEwzLjA5LDEyLjM5YTUsNSwwLDAsMCwwLDcuMDdsNS4yNiw1LjI2YTUsNSwwLDAsMCw3LjA3LDBsLjQ1LS40NSwyLjEsMi4yaDMuNDR2M2gzLjY5djEuNjNMMjgsMzRoNlYyNy40NVptLTguNTYtNi41OUw5LjM3LDE1LjY0YTEs'@; put 'MSwwLDAsMS0xLjQxLDBsLS40LS40YTEsMSwwLDAsMSwwLTEuNDFMMTMsOC4zNmExLDEsMCwwLDEsMS40MSwwbC40LjRBMSwxLDAsMCwxLDE0LjgyLDEwLjE4Wk0zMiwzMkgyOC44NmwtMS43Ny0xLjc2di0yLjhIMjMuNDF2LTNIMTguOGwtMS41Mi0xLjYxTDIyLDE4LjE4LDMyLDI4LjI4WiIg'@; put 'Y2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRn'@; put 'ZSIgLz4nKSxiLkNsclNoYXBlTGlicmFyeT0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMuNDgsMjkuNjMsMjYuNzQsMTEuODJhMiwyLDAsMCwwLTIuNTgtMS4xNkwyMSwxMS44NVY4LjkyQTEuOTIsMS45MiwwLDAsMCwxOS4wOCw3SDE0VjQuOTJBMS45MiwxLjkyLDAsMCwwLDEyLjA4'@; put 'LDNINUEyLDIsMCwwLDAsMyw1VjMyYTEsMSwwLDAsMCwxLDFIMjBhMSwxLDAsMCwwLDEtMVYxOS4yN2w1LDEzLjIxYTEsMSwwLDAsMCwxLjI5LjU4bDUuNjEtMi4xNGExLDEsMCwwLDAsLjU4LTEuMjlaTTEyLDguODNWMzFINVY1aDdaTTE5LDMxSDE0VjloNVptOC41MS0uMjVMMjEuMTMsMTMu'@; put 'OTJsMy43NC0xLjQyLDYuMzksMTYuODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMi43NSwzSDUuMjVBMS4xNSwxLjE1LDAsMCwwLDQsNFYzM0gxNFY0QTEuMTUsMS4xNSwwLDAsMCwxMi43NSwzWiIgY2xh'@; put 'c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy43NywzMS4wOWwtNi45NC0xOC4zYTEsMSwwLDAsMC0xLjI5LS41OEwyMiwxMy41OVY5YTEsMSwwLDAsMC0xLTFIMTZWMzNoNlYxNC42OUwyOC45MywzM1oiIGNsYXNzPSJjbHIt'@; put 'aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksYi5DbHJTaGFwZUJvbHQ9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEwLjUyLDM0aC0zYTEsMSwwLDAsMS0uODgtMS40NEwxMi41NSwyMUg2YTEsMSwwLDAsMS0uODUtMS41NGwxMC42OC0xN0ExLDEsMCwwLDEsMTYuNjQsMkgz'@; put 'MC4wN2ExLDEsMCwwLDEsLjc3LDEuNjlMMjEuNzgsMTRoNS4zOGExLDEsMCwwLDEsLjczLDEuNjZsLTE2LjYzLDE4QTEsMSwwLDAsMSwxMC41MiwzNFpNOS4xOCwzMmguOTFMMjQuODYsMTZIMTkuNTlhMSwxLDAsMCwxLS43Ny0xLjY5TDI3Ljg4LDRIMTcuMTlMNy43NywxOUgxNC4yYTEsMSww'@; put 'LDAsMSwuODgsMS40NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjgsMi4yOUEuNDkuNDksMCwwLDAsMzAuMzUsMkgxNi40MmEuNS41LDAsMCwwLS40Mi4yM2wtMTAuNzEsMTdBLjQ5LjQ5LDAsMCwwLDUu'@; put 'NywyMGg3LjY3TDYuNiwzMy4yNWEuNTIuNTIsMCwwLDAsLjQ2Ljc1aDNhLjUuNSwwLDAsMCwuMzctLjE2TDI4LDE0Ljg1YS41LjUsMCwwLDAtLjM3LS44NUgyMC44OUwzMC43MiwyLjgyQS40OS40OSwwLDAsMCwzMC44LDIuMjlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0'@; put 'aC0xIiAvPicpLGIuQ2xyU2hhcGVXcmVuY2g9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjE4LDI2LjExLDIwLjM1LDEzLjI4QTkuMjgsOS4yOCwwLDAsMCw3LjU0LDIuNzlsLTEuMzQuNTksNS4zOCw1LjM4TDguNzYsMTEuNTksMy4zOCw2LjIxLDIuNzksNy41NEE5LjI3LDkuMjcs'@; put 'MCwwLDAsMTMuMjgsMjAuMzVMMjYuMTEsMzMuMThhMiwyLDAsMCwwLDIuODMsMGw0LjI0LTQuMjRBMiwyLDAsMCwwLDMzLjE4LDI2LjExWm0tNS42Niw1LjY2TDEzLjg4LDE4LjEybC0uNTcuMTZhNy4yNyw3LjI3LDAsMCwxLTkuMzEtNyw3LjIsNy4yLDAsMCwxLC4xNS0xLjQ4bDQuNjEsNC42'@; put 'MSw1LjY2LTUuNjZMOS44MSw0LjE1YTcuMjcsNy4yNywwLDAsMSw4LjQ3LDkuMTZsLS4xNi41N0wzMS43NywyNy41M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjcuMTMiIGN5PSIyNy4wOSIgcj0iMS4z'@; put 'IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTEuMjEgMjcuMTIpIHJvdGF0ZSgtNDUpIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy43MywyNy43MiwxOS42NywxMy42NmE4Ljc5LDguNzksMCwwLDAtMTItMTAu'@; put 'NUwxMyw4LjUzLDguNTMsMTMsMy4xNiw3LjY3YTguNzksOC43OSwwLDAsMCwxMC41LDEyTDI3LjcyLDMzLjczYTEuMDcsMS4wNywwLDAsMCwxLjUsMGw0LjUxLTQuNTFBMS4wNywxLjA3LDAsMCwwLDMzLjczLDI3LjcyWk0yOSwyOWExLjM4LDEuMzgsMCwxLDEsMC0yQTEuMzgsMS4zOCwwLDAs'@; put 'MSwyOSwyOVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksYi5DbHJTaGFwZUJ1bGxzZXllPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyYTE1LjkyLDE1LjkyLDAsMCwwLTQuMjUuNTlsLjc3LDEuODZhMTQuMDcsMTQuMDcsMCwxLDEtMTAsMTBs'@; put 'LTEuODYtLjc4QTE2LDE2LDAsMSwwLDE4LDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik03LjQ1LDE1LjdhMTAuODEsMTAuODEsMCwxLDAsOC4zLTguMjZMMTYuMzcsOUE5LjI0LDkuMjQsMCwxLDEsOSwxNi4z'@; put 'MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIyLjA5YTQuMDgsNC4wOCwwLDAsMS00LTMuNjhsLTEuNjMtLjY4YzAsLjA5LDAsLjE4LDAsLjI3QTUuNjksNS42OSwwLDEsMCwxOCwxMi4zMWgtLjI0TDE4'@; put 'LjQzLDE0QTQuMDcsNC4wNywwLDAsMSwxOCwyMi4wOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTguMiwxMy4zNGEuNS41LDAsMCwwLC4zNS4xNUgxMi4ybDUuMzcsNS4zN0ExLDEsMCwwLDAsMTksMTcuNDRM'@; put 'MTMuNTMsMTJWOC41MWEuNS41LDAsMCwwLS4xNS0uMzVMNy43OSwyLjU3YS41LjUsMCwwLDAtLjg1LjM1djRIM2EuNS41LDAsMCwwLS4zNS44NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDE4Ljg1YTEs'@; put 'MSwwLDAsMS0xLjQxLDBsLTMtM0E0LDQsMCwwLDAsMTMuOTEsMTgsNC4wOSw0LjA5LDAsMSwwLDE4LDEzLjkxYTQsNCwwLDAsMC0yLC41NWwzLDNBMSwxLDAsMCwxLDE5LDE4Ljg1WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRo'@; put 'IGQ9Ik0xOCwyYTE1LjkyLDE1LjkyLDAsMCwwLTQuMjUuNTlsMS42LDMuODlBMTEuODksMTEuODksMCwxLDEsNi40OSwxNS4zTDIuNjEsMTMuNjhBMTYsMTYsMCwxLDAsMTgsMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBk'@; put 'PSJNOCwxNS45NEExMC4xNywxMC4xNywwLDEsMCwxNiw4bDEuNjksNC4xMS4zMSwwQTUuODgsNS44OCwwLDEsMSwxMi4xMiwxOGMwLS4xMiwwLS4yMywwLS4zNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOC4yLDEz'@; put 'LjM0YS41LjUsMCwwLDAsLjM1LjE1SDEyLjJsMi4zNSwyLjM1QTQuMDksNC4wOSwwLDAsMSwxNiwxNC40NkwxMy41MywxMlY4LjUxYS41LjUsMCwwLDAtLjE1LS4zNUw3Ljc5LDIuNTdhLjUuNSwwLDAsMC0uODUuMzV2NEgzYS41LjUsMCwwLDAtLjM1Ljg1WiIgY2xhc3M9ImNsci1pLXNvbGlk'@; put 'IGNsci1pLXNvbGlkLXBhdGgtNCIgLz4nKSxiLkNsclNoYXBlVGFyZ2V0PSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCw3LjJBMTAuOCwxMC44LDAsMSwwLDI4LjgsMTgsMTAuODEsMTAuODEsMCwwLDAsMTgsNy4yWm0wLDIwQTkuMiw5LjIsMCwxLDEsMjcuMiwxOCw5LjIxLDkuMjEsMCwwLDEsMTgsMjcu'@; put 'MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDEyLjMxQTUuNjksNS42OSwwLDEsMCwyMy42OSwxOCw1LjY5LDUuNjksMCwwLDAsMTgsMTIuMzFabTAsOS43N0E0LjA5LDQuMDksMCwxLDEsMjIuMDksMTgs'@; put 'NC4wOSw0LjA5LDAsMCwxLDE4LDIyLjA5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSI0LjA5IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAg'@; put 'ICAgICAgICAgPHBhdGggZD0iTTE4LDcuODNBMTAuMTcsMTAuMTcsMCwxLDAsMjguMTcsMTgsMTAuMTgsMTAuMTgsMCwwLDAsMTgsNy44M1ptMCwxNkE1Ljg4LDUuODgsMCwxLDEsMjMuODgsMTgsNS44OCw1Ljg4LDAsMCwxLDE4LDIzLjg4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv'@; put 'bGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMjcuODNBMTEuODMsMTEuODMsMCwxLDEsMjkuODMsMTgsMTEuODUsMTEuODUsMCwwLDEsMTgsMjkuODNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xy'@; put 'LWktc29saWQtcGF0aC0zIiAvPicpLGIuQ2xyU2hhcGVGbGFtZT0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuMywxNi42NmMtMS4xOS0yLjA5LTcuOTQtMTQuMTUtNy45NC0xNC4xNWExLDEsMCwwLDAtMS43NSwwbC02LDEwLjY0LTMtNS4yOGExLDEsMCwwLDAtMS43NSwwUzUuNCwx'@; put 'Ny43OCw0LjQyLDE5LjVBOS4zLDkuMywwLDAsMCwzLDI0LjYxQzMsMjkuNzIsNS44NiwzNCwxMS42NywzNEgyMi40OEMyOC4yOCwzNCwzMywyOSwzMywyMi43OEExMS4xMywxMS4xMywwLDAsMCwzMS4zLDE2LjY2Wk0yMi40OCwzMkgxMS43N0M4LjEzLDMyLDUsMjguNjYsNSwyNC42MWE3LjQz'@; put 'LDcuNDMsMCwwLDEsMS4xNi00LjEzYy43My0xLjI5LDQuMDUtNy4yMSw1LjY1LTEwLjA3bDMsNS4yOGExLDEsMCwwLDAsLjg3LjUxaDBhMSwxLDAsMCwwLC44Ny0uNTFMMjIuNDksNWMxLjg2LDMuMzMsNi4xNSwxMSw3LjA3LDEyLjZBOS4yNCw5LjI0LDAsMCwxLDMxLDIyLjc4QzMxLDI3Ljg3'@; put 'LDI3LjE4LDMyLDIyLjQ4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjUuNzUsMjEuNzNjLS42NS0xLjE2LTQuMzgtNy44MS00LjM4LTcuODFhLjguOCwwLDAsMC0xLjQsMGwtNC4yLDcuNDgtMS41OS0y'@; put 'LjQ5YS44LjgsMCwwLDAtMS4zNSwwTDkuMzcsMjQuMzVhNC4zNSw0LjM1LDAsMCwwLS44MiwyLjYsNC40OSw0LjQ5LDAsMCwwLC41LDJIMTFhMywzLDAsMCwxLS44My0yLDIuNzgsMi43OCwwLDAsMSwuNTYtMS43M2wyLjgtNC4zOCwxLjY2LDIuNmEuOC44LDAsMCwwLDEuNDEtLjEyLDcuODIs'@; put 'Ny44MiwwLDAsMSwuNC0uOEwyMC42NywxNmwzLjY5LDYuNTdhNC44Myw0LjgzLDAsMCwxLC43NywyLjcxQTUsNSwwLDAsMSwyMy40NiwyOWgyLjEzYTYuNjgsNi42OCwwLDAsMCwxLjE0LTMuNzQsNi40NSw2LjQ1LDAsMCwwLTEtMy41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuMywxNi4zMmMtMS4xOS0yLjA5LTcuOTQtMTQuMTUtNy45NC0xNC4xNWExLDEsMCwwLDAtMS43NSwwbC02LDEwLjY0LTMtNS4yOGExLDEsMCwwLDAtMS43NSwwUzUuNCwxNy40Myw0LjQyLDE5LjE1QTkuMyw5LjMsMCww'@; put 'LDAsMywyNC4yNmMwLDUuMTEsMy44OCw5LjY1LDguNjcsOS43NEgyMi40OEMyOC4yOCwzNCwzMywyOC42MiwzMywyMi40NEExMS4xMywxMS4xMywwLDAsMCwzMS4zLDE2LjMyWk0yMS40OCwzMkgxNC41NEE0LjY4LDQuNjgsMCwwLDEsMTAsMjcuNDFhMy45MSwzLjkxLDAsMCwxLC43NS0yLjM0'@; put 'bDMuMzUtNS4yMWEuNS41LDAsMCwxLC44NCwwbDEuNzgsMi43NywwLS4wOGMuNjMtMS4xMSw0LjIzLTcuNDgsNC4yMy03LjQ4YS41LjUsMCwwLDEsLjg3LDBzMy42LDYuMzgsNC4yMyw3LjQ4QTUuODMsNS44MywwLDAsMSwyNywyNS43NkMyNywzMiwyMi4xLDMyLDIxLjQ4LDMyWiIgY2xhc3M9'@; put 'ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxiLkNsclNoYXBlSG91cmdsYXNzPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOSwzMkgyNlYyNC45MWE2LjY3LDYuNjcsMCwwLDAtMi42OS01LjMzbC0xLjI4LTFBNi4zNiw2LjM2LDAsMCwwLDIxLDE4aDBhNi4yOSw2'@; put 'LjI5LDAsMCwwLDEtLjYybDEuMjgtMUE2LjY3LDYuNjcsMCwwLDAsMjYsMTEuMDlWNGgzYTEsMSwwLDAsMCwwLTJIN0ExLDEsMCwwLDAsNyw0aDN2Ny4wOWE2LjY3LDYuNjcsMCwwLDAsMi42OSw1LjMzbDEuMjgsMUE2LjM2LDYuMzYsMCwwLDAsMTUsMThoMGE2LjI3LDYuMjcsMCwwLDAtMSwu'@; put 'NjJsLTEuMjgsMUE2LjY3LDYuNjcsMCwwLDAsMTAsMjQuOTFWMzJIN2ExLDEsMCwwLDAsMCwySDI5YTEsMSwwLDAsMCwwLTJaTTEyLDI0LjkxYTQuNjYsNC42NiwwLDAsMSwxLjg4LTMuNzJsMS4yOC0xYTQuNjYsNC42NiwwLDAsMSwxLjE4LS42MywxLDEsMCwwLDAsLjY1LS45NFYxNy4zM2Ex'@; put 'LDEsMCwwLDAtLjY1LS45NCw0LjY3LDQuNjcsMCwwLDEtMS4xOS0uNjNsLTEuMjgtMUE0LjY2LDQuNjYsMCwwLDEsMTIsMTEuMDlWNEgyNHY3LjA5YTQuNjYsNC42NiwwLDAsMS0xLjg4LDMuNzJsLTEuMjgsMWgwYTQuNjYsNC42NiwwLDAsMS0xLjE4LjYzLDEsMSwwLDAsMC0uNjUuOTR2MS4z'@; put 'NGExLDEsMCwwLDAsLjY1Ljk0LDQuNjcsNC42NywwLDAsMSwxLjE5LjYzbDEuMjgsMUE0LjY2LDQuNjYsMCwwLDEsMjQsMjQuOTFWMzJIMTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOSwzMkgyNlYyNC45'@; put 'MWE2LjY3LDYuNjcsMCwwLDAtMi42OS01LjMzbC0xLjI4LTFBNi4zNiw2LjM2LDAsMCwwLDIxLDE4aDBhNi4yOSw2LjI5LDAsMCwwLDEtLjYybDEuMjgtMWE2LjY0LDYuNjQsMCwwLDAsMS4wOS0xSDIyLjIzYTMuNjQsMy42NCwwLDAsMS0uNzgtLjA5bC0uNjIuNDZoMGE0LjY2LDQuNjYsMCww'@; put 'LDEtMS4xOC42MywxLDEsMCwwLDAtLjY1Ljk0djEuMzRhMSwxLDAsMCwwLC42NS45NCw0LjY3LDQuNjcsMCwwLDEsMS4xOS42M2wxLjI4LDFBNC42Niw0LjY2LDAsMCwxLDI0LDI0LjkxVjMySDEyVjI0LjkxYTQuNjYsNC42NiwwLDAsMSwxLjg4LTMuNzJsMS4yOC0xYTQuNjYsNC42NiwwLDAs'@; put 'MSwxLjE4LS42MywxLDEsMCwwLDAsLjY1LS45NFYxNy4zM2ExLDEsMCwwLDAtLjY1LS45NCw0LjY3LDQuNjcsMCwwLDEtMS4xOS0uNjNsLTEuMjgtMUE0LjY2LDQuNjYsMCwwLDEsMTIsMTEuMDlWNEgyMi40NUwyMy42LDJIN0ExLDEsMCwwLDAsNyw0aDN2Ny4wOWE2LjY3LDYuNjcsMCwwLDAs'@; put 'Mi42OSw1LjMzbDEuMjgsMUE2LjM2LDYuMzYsMCwwLDAsMTUsMThoMGE2LjI3LDYuMjcsMCwwLDAtMSwuNjJsLTEuMjgsMUE2LjY3LDYuNjcsMCwwLDAsMTAsMjQuOTFWMzJIN2ExLDEsMCwwLDAsMCwySDI5YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUs'@; put 'MS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOSwzMkgyNlYyNC45MWE2LjY3LDYuNjcsMCwwLDAtMi42OS01LjMzbC0xLjI4LTFBNi4zNiw2LjM2'@; put 'LDAsMCwwLDIxLDE4aDBhNi4yOSw2LjI5LDAsMCwwLDEtLjYybDEuMjgtMWE2LjY4LDYuNjgsMCwwLDAsMi41Ny00LjE2QTcuNTMsNy41MywwLDAsMSwyNCwxMC40OXYuNjFhNC42Niw0LjY2LDAsMCwxLTEuODgsMy43MmwtMS4yOCwxaDBhNC42Niw0LjY2LDAsMCwxLTEuMTguNjMsMSwxLDAs'@; put 'MCwwLS42NS45NHYxLjM0YTEsMSwwLDAsMCwuNjUuOTQsNC42Nyw0LjY3LDAsMCwxLDEuMTkuNjNsMS4yOCwxQTQuNjYsNC42NiwwLDAsMSwyNCwyNC45MVYzMkgxMlYyNC45MWE0LjY2LDQuNjYsMCwwLDEsMS44OC0zLjcybDEuMjgtMWE0LjY2LDQuNjYsMCwwLDEsMS4xOC0uNjMsMSwxLDAs'@; put 'MCwwLC42NS0uOTRWMTcuMzNhMSwxLDAsMCwwLS42NS0uOTQsNC42Nyw0LjY3LDAsMCwxLTEuMTktLjYzbC0xLjI4LTFBNC42Niw0LjY2LDAsMCwxLDEyLDExLjA5VjRIMjIuNzhhNy40NSw3LjQ1LDAsMCwxLC44OS0ySDdBMSwxLDAsMCwwLDcsNGgzdjcuMDlhNi42Nyw2LjY3LDAsMCwwLDIu'@; put 'NjksNS4zM2wxLjI4LDFBNi4zNiw2LjM2LDAsMCwwLDE1LDE4aDBhNi4yNyw2LjI3LDAsMCwwLTEsLjYybC0xLjI4LDFBNi42Nyw2LjY3LDAsMCwwLDEwLDI0LjkxVjMySDdhMSwxLDAsMCwwLDAsMkgyOWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGgg'@; put 'ZD0iTTYuNjcsNGgyMmExLDEsMCwwLDAsMC0yaC0yMmExLDEsMCwxLDAsMCwyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC42NywzMmgtMjJhMSwxLDAsMCwwLDAsMmgyMmExLDEsMCwxLDAsMC0yWiIgY2xhc3M9'@; put 'ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi41NSwxNS42N0E2LjA3LDYuMDcsMCwwLDAsMjUsMTEuMTJWNkgxMC4wNnY1LjEyYTYuMDcsNi4wNywwLDAsMCwyLjQ1LDQuNTUsMTEuNDgsMTEuNDgsMCwwLDAsMi45MSwxLjcydjEu'@; put 'MTZhMTEuNDgsMTEuNDgsMCwwLDAtMi45MSwxLjcyLDYuMDcsNi4wNywwLDAsMC0yLjQ1LDQuNTV2NS4xMkgyNVYyNC44MmE2LjA3LDYuMDcsMCwwLDAtMi40NS00LjU1LDExLjQ4LDExLjQ4LDAsMCwwLTIuOTEtMS43MlYxNy4zOUExMS40OCwxMS40OCwwLDAsMCwyMi41NSwxNS42N1oiIGNs'@; put 'YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguNjcsMzJoLTIyYTEsMSwwLDAsMCwwLDJoMjJhMSwxLDAsMSwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQi'@; put 'IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNi42Nyw0SDIyLjQ1TDIzLjYsMkg2LjY3YTEsMSwwLDEsMCwwLDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEyLjUxLDIwLjI3YTYu'@; put 'MDcsNi4wNywwLDAsMC0yLjQ1LDQuNTV2NS4xMkgyNVYyNC44MmE2LjA3LDYuMDcsMCwwLDAtMi40NS00LjU1LDExLjQ4LDExLjQ4LDAsMCwwLTIuOTEtMS43MlYxNy4zOWExMS40OCwxMS40OCwwLDAsMCwyLjkxLTEuNzJsLjMtLjI3aC0uNjJBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjEu'@; put 'MjksNkgxMC4wNnY1LjEyYTYuMDcsNi4wNywwLDAsMCwyLjQ1LDQuNTUsMTEuNDgsMTEuNDgsMCwwLDAsMi45MSwxLjcydjEuMTZBMTEuNDgsMTEuNDgsMCwwLDAsMTIuNTEsMjAuMjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiAv'@; put 'PlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxl'@; put 'cnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguNjcsMzJoLTIyYTEsMSwwLDAsMCwwLDJoMjJhMSwxLDAsMSwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0t'@; put 'YmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTYuNjcsNEgyMi43OGE3LjQ1LDcuNDUsMCwwLDEsLjg5LTJoLTE3YTEsMSwwLDEsMCwwLDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRo'@; put 'IGQ9Ik0yMi41NSwyMC4yN2ExMS40OCwxMS40OCwwLDAsMC0yLjkxLTEuNzJWMTcuMzlhMTEuNDgsMTEuNDgsMCwwLDAsMi45MS0xLjcyQTYuMjUsNi4yNSwwLDAsMCwyNSwxMS41NSw3LjQ3LDcuNDcsMCwwLDEsMjIuNSw2SDEwLjA2djUuMTJhNi4wNyw2LjA3LDAsMCwwLDIuNDUsNC41NSwx'@; put 'MS40OCwxMS40OCwwLDAsMCwyLjkxLDEuNzJ2MS4xNmExMS40OCwxMS40OCwwLDAsMC0yLjkxLDEuNzIsNi4wNyw2LjA3LDAsMCwwLTIuNDUsNC41NXY1LjEySDI1VjI0LjgyQTYuMDcsNi4wNywwLDAsMCwyMi41NSwyMC4yN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNv'@; put 'bGlkLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksYi5DbHJTaGFwZU5vQWNjZXNzPSgwLHAuY2xy'@; put 'SWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxw'@; put 'YXRoIGQ9Ik0yNy4xNSwxNUg4Ljg1QTEuODUsMS44NSwwLDAsMCw3LDE2Ljg1djIuMjlBMS44NSwxLjg1LDAsMCwwLDguODUsMjFIMjcuMTVBMS44NSwxLjg1LDAsMCwwLDI5LDE5LjE1VjE2Ljg1QTEuODUsMS44NSwwLDAsMCwyNy4xNSwxNVptLjI1LDQuMTVhLjI1LjI1LDAsMCwxLS4yNS4y'@; put 'NUg4Ljg1YS4yNS4yNSwwLDAsMS0uMjUtLjI1VjE2Ljg1YS4yNS4yNSwwLDAsMSwuMjUtLjI1SDI3LjE1YS4yNS4yNSwwLDAsMSwuMjUuMjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAs'@; put 'MSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJaTTI5LjE1LDIwSDYuODVBLjg1Ljg1LDAsMCwxLDYsMTkuMTVWMTYuODVBLjg1Ljg1LDAsMCwxLDYuODUsMTZIMjkuMTVhLjg1Ljg1LDAsMCwxLC44NS44NXYyLjI5QS44NS44NSwwLDAsMSwyOS4xNSwyMFoiIGNsYXNzPSJjbHItaS1zb2xpZCBj'@; put 'bHItaS1zb2xpZC1wYXRoLTEiIC8+JyksYi5DbHJTaGFwZU9yZ2FuaXphdGlvbj0oMCxwLmNsckljb25TVkcpKCc8cG9seWdvbiBwb2ludHM9IjkuOCAxOC44IDI2LjIgMTguOCAyNi4yIDIxLjg4IDI3LjggMjEuODggMjcuOCAxNy4yIDE4LjggMTcuMiAxOC44IDE0IDE3LjIgMTQgMTcuMiAx'@; put 'Ny4yIDguMiAxNy4yIDguMiAyMS44OCA5LjggMjEuODggOS44IDE4LjgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE0LDIzSDRhMiwyLDAsMCwwLTIsMnY2YTIsMiwwLDAsMCwyLDJIMTRhMiwyLDAsMCwwLDIt'@; put 'MlYyNUEyLDIsMCwwLDAsMTQsMjNaTTQsMzFWMjVIMTR2NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDIzSDIyYTIsMiwwLDAsMC0yLDJ2NmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjVB'@; put 'MiwyLDAsMCwwLDMyLDIzWk0yMiwzMVYyNUgzMnY2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMsMTNIMjNhMiwyLDAsMCwwLDItMlY1YTIsMiwwLDAsMC0yLTJIMTNhMiwyLDAsMCwwLTIsMnY2QTIsMiww'@; put 'LDAsMCwxMywxM1ptMC04SDIzdjZIMTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOS44IDE4LjggMjYuMiAxOC44IDI2LjIgMjEuODggMjcuOCAyMS44OCAyNy44IDE3LjIgMTguOCAxNy4yIDE4'@; put 'LjggMTQgMTcuMiAxNCAxNy4yIDE3LjIgOC4yIDE3LjIgOC4yIDIxLjg4IDkuOCAyMS44OCA5LjggMTguOCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIiIHk9IjIzIiB3aWR0aD0iMTQiIGhlaWdodD0iMTAiIHJ4PSIy'@; put 'IiByeT0iMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIwIiB5PSIyMyIgd2lkdGg9IjE0IiBoZWlnaHQ9IjEwIiByeD0iMiIgcnk9IjIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+XG4g'@; put 'ICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMyIgd2lkdGg9IjE0IiBoZWlnaHQ9IjEwIiByeD0iMiIgcnk9IjIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+JyksYi5DbHJTaGFwZUJhbGFuY2U9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI0LDMzSDEy'@; put 'YTEsMSwwLDAsMSwwLTJIMjRhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTciIHk9IjkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIyLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDdIOEExLDEsMCwwLDEsOCw1SDI4YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi45MywyNC43OWE3LjIz'@; put 'LDcuMjMsMCwwLDEtNS44MS0yLjg5bC0uNi0uOCwxLjU5LTEuMjEuNi44YTUuMjgsNS4yOCwwLDAsMCw4LjQyLDBsLjYtLjgsMS41OSwxLjIxLS42LjhBNy4yMyw3LjIzLDAsMCwxLDI2LjkzLDI0Ljc5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4g'@; put 'ICAgICAgICAgICA8cGF0aCBkPSJNMzAuNTEsMTkuMjVhLjguOCwwLDAsMS0uNzMtLjQ4TDI2LjkzLDEyLjJsLTIuODUsNi41N2EuOC44LDAsMCwxLTEuNDctLjY0TDI2LjIsOS44N2EuODMuODMsMCwwLDEsMS40NywwbDMuNTgsOC4yNmEuOC44LDAsMCwxLS43MywxLjEyWiIgY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOS42OCwyNC43OUE3LjIzLDcuMjMsMCwwLDEsMy44OCwyMS45bC0uNi0uOEw0Ljg2LDE5LjlsLjYuOGE1LjI4LDUuMjgsMCwwLDAsOC40MiwwbC42LS44LDEuNTksMS4yMS0uNi44QTcu'@; put 'MjMsNy4yMywwLDAsMSw5LjY4LDI0Ljc5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuMjYsMTkuMjVhLjguOCwwLDAsMS0uNzMtLjQ4TDkuNjgsMTIuMiw2Ljg0LDE4Ljc3YS44LjgsMCwwLDEtMS40Ny0u'@; put 'NjRMOC45NSw5Ljg3YS44My44MywwLDAsMSwxLjQ3LDBMMTQsMTguMTNhLjguOCwwLDAsMS0uNzMsMS4xMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPicpLGIuQ2xyU2hhcGVJZEJhZGdlPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyMmE0'@; put 'LjIzLDQuMjMsMCwxLDAtNC4yMy00LjIzQTQuMjMsNC4yMywwLDAsMCwxOCwyMlptMC02Ljg2YTIuNjMsMi42MywwLDEsMS0yLjYzLDIuNjNBMi42MywyLjYzLDAsMCwxLDE4LDE1LjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAg'@; put 'ICA8cGF0aCBkPSJNMjIsNGEyLDIsMCwwLDAtMi0ySDE2YTIsMiwwLDAsMC0yLDJ2N2g4Wk0yMCw5SDE2VjRoNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LDMwVjI3LjdhMS4xMiwxLjEyLDAsMCwwLS4y'@; put 'Ni0uNzNBOS45LDkuOSwwLDAsMCwxOCwyMy42OSw5LjksOS45LDAsMCwwLDEwLjI2LDI3YTEuMTMsMS4xMywwLDAsMC0uMjYuNzNWMzBoMS42VjI3Ljg3QTguMzMsOC4zMywwLDAsMSwxOCwyNS4yOWE4LjMzLDguMzMsMCwwLDEsNi40LDIuNTlWMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCw2SDI0VjhoNFYzMkg4VjhoNFY2SDhBMiwyLDAsMCwwLDYsOFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMjgsNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIyYTQuMjMsNC4yMywwLDEsMC00LjIzLTQuMjNBNC4yMyw0LjIzLDAsMCwwLDE4LDIyWm0wLTYuODZhMi42MywyLjYzLDAsMSwxLTIuNjMsMi42M0EyLjYzLDIuNjMsMCwwLDEsMTgsMTUuMTRaIiBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4yNiwyN2ExLjEzLDEuMTMsMCwwLDAtLjI2LjczVjMwaDEuNlYyNy44N0E4LjMzLDguMzMsMCwwLDEsMTgsMjUuMjlhOC4zMyw4LjMzLDAsMCwx'@; put 'LDYuNCwyLjU5VjMwSDI2VjI3LjdhMS4xMiwxLjEyLDAsMCwwLS4yNi0uNzNBOS45LDkuOSwwLDAsMCwxOCwyMy42OSw5LjksOS45LDAsMCwwLDEwLjI2LDI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAg'@; put 'ICAgICA8cGF0aCBkPSJNMTksOS44OSwxOS41Niw5SDE2VjRoNFY4LjI0bDItMy40NlY0YTIsMiwwLDAsMC0yLTJIMTZhMiwyLDAsMCwwLTIsMnY3aDQuNjRBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'My0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxNS40VjMySDhWOGg0VjZIOEEyLDIsMCwwLDAsNiw4VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlYxNS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQt'@; put 'LWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMjJhNC4yMyw0LjIzLDAsMSwwLTQuMjMtNC4yM0E0LjIzLDQuMjMsMCwwLDAsMTgsMjJabTAtNi44NmEyLjYzLDIuNjMsMCwxLDEt'@; put 'Mi42MywyLjYzQTIuNjMsMi42MywwLDAsMSwxOCwxNS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiw0YTIsMiwwLDAsMC0yLTJIMTZhMiwyLDAsMCwwLTIsMnY3aDhaTTIw'@; put 'LDlIMTZWNGg0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjI2LDI3YTEuMTMsMS4xMywwLDAsMC0uMjYuNzNWMzBoMS42VjI3Ljg3QTguMzMsOC4zMywwLDAsMSwxOCwyNS4y'@; put 'OWE4LjMzLDguMzMsMCwwLDEsNi40LDIuNTlWMzBIMjZWMjcuN2ExLjEyLDEuMTIsMCwwLDAtLjI2LS43M0E5LjksOS45LDAsMCwwLDE4LDIzLjY5LDkuOSw5LjksMCwwLDAsMTAuMjYsMjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRn'@; put 'ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMTMuMjJWMzJIOFY4aDRWNkg4QTIsMiwwLDAsMCw2LDhWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjEzLjVBNy40OSw3LjQ5LDAsMCwxLDI4LDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPGNpcmNs'@; put 'ZSBjeD0iMTgiIGN5PSIxNy43NyIgcj0iNC4yMyIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSw0YTIsMiwwLDAsMC0yLTJIMTdhMiwyLDAsMCwwLTIsMnY2aDZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s'@; put 'aWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjI2LDI3YTEuMTMsMS4xMywwLDAsMC0uMjYuNzNWMzBIMjZWMjcuN2ExLjEyLDEuMTIsMCwwLDAtLjI2LS43M0E5LjksOS45LDAsMCwwLDE4LDIzLjY5LDkuOSw5LjksMCwwLDAsMTAuMjYsMjdaIiBjbGFzcz0iY2xyLWkt'@; put 'c29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDZIMjNWOGg1VjMySDhWOGg1VjZIOEEyLDIsMCwwLDAsNiw4VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwyOCw2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNs'@; put 'ci1pLXNvbGlkLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSw5Ljg5LDIxLDYuNVY0YTIsMiwwLDAsMC0yLTJIMTdhMiwyLDAsMCwwLTIsMnY2aDRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAg'@; put 'ICAgICAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxNy43NyIgcj0iNC4yMyIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4yNiwyN2ExLjEzLDEuMTMsMCwwLDAtLjI2LjczVjMwSDI2VjI3'@; put 'LjdhMS4xMiwxLjEyLDAsMCwwLS4yNi0uNzNBOS45LDkuOSwwLDAsMCwxOCwyMy42OSw5LjksOS45LDAsMCwwLDEwLjI2LDI3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxNS40'@; put 'VjMySDhWOGg1VjZIOEEyLDIsMCwwLDAsNiw4VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlYxNS40WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIx'@; put 'LjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC01LS1hbGVydGVkIGNsci1p'@; put 'LWFsZXJ0IiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxNy43NyIgcj0iNC4yMyIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEsNGEyLDIsMCwwLDAtMi0ySDE3YTIs'@; put 'MiwwLDAsMC0yLDJ2Nmg2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuMjYsMjdhMS4xMywxLjEzLDAsMCwwLS4yNi43M1YzMEgyNlYyNy43YTEuMTIsMS4xMiwwLDAsMC0uMjYtLjcz'@; put 'QTkuOSw5LjksMCwwLDAsMTgsMjMuNjksOS45LDkuOSwwLDAsMCwxMC4yNiwyN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDEzLjIyVjMySDhWOGg1VjZIOEEyLDIsMCwwLDAsNiw4'@; put 'VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlYxMy41QTcuNDksNy40OSwwLDAsMSwyOCwxMy4yMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1'@; put 'IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksYi5DbHJTaGFwZVJlcGVhdD0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTYs'@; put 'MTQuMTVBMy4xNywzLjE3LDAsMCwxLDkuMTcsMTFIMjguNGwtNC4yOCw0LjU0YTEsMSwwLDEsMCwxLjQ2LDEuMzdMMzIuMDksMTAsMjUuNTgsMy4wOWExLDEsMCwxLDAtMS40NiwxLjM3TDI4LjQsOUg5LjE3QTUuMTcsNS4xNywwLDAsMCw0LDE0LjE1djYuMWwyLTIuMTJaIi8+XG4gICAgICAg'@; put 'ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMwLDIxLjg1QTMuMTcsMy4xNywwLDAsMSwyNi44MywyNUg3LjZsNC4yOC00LjU0YTEsMSwwLDEsMC0xLjQ2LTEuMzdMMy45MSwyNmw2LjUxLDYuOTFhMSwxLDAsMSwwLDEuNDYtMS4zN0w3'@; put 'LjYsMjdIMjYuODNBNS4xNyw1LjE3LDAsMCwwLDMyLDIxLjg1di02LjFsLTIsMi4xMloiLz4nKSxiLkNsclNoYXBlRmlsZUdyb3VwPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzEsMzRIMTNhMSwxLDAsMCwx'@; put 'LTEtMVYxMWExLDEsMCwwLDEsMS0xSDMxYTEsMSwwLDAsMSwxLDFWMzNBMSwxLDAsMCwxLDMxLDM0Wk0xNCwzMkgzMFYxMkgxNFoiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSIxNiIgeT0iMTYiIHdpZHRoPSIxMiIg'@; put 'aGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgeD0iMTYiIHk9IjIwIiB3aWR0aD0iMTIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTQiIHg9IjE2IiB5PSIyNCIgd2lkdGg9IjEyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiBkPSJNNiwyNFY0SDI0VjNhMSwxLDAsMCwwLTEtMUg1QTEsMSwwLDAsMCw0LDNWMjVhMSwxLDAs'@; put 'MCwwLDEsMUg2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIGQ9Ik0xMCwyOFY4SDI4VjdhMSwxLDAsMCwwLTEtMUg5QTEsMSwwLDAsMCw4LDdWMjlhMSwxLDAsMCwwLDEsMWgxWiIvPlxuICAgICAgICAgICAgPHBhdGgg'@; put 'Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMxLDEwSDEzYTEsMSwwLDAsMC0xLDFWMzNhMSwxLDAsMCwwLDEsMUgzMWExLDEsMCwwLDAsMS0xVjExQTEsMSwwLDAsMCwzMSwxMFpNMjgsMjZIMTZWMjRIMjhabTAtNEgxNlYyMEgyOFptMC00SDE2VjE2SDI4WiIv'@; put 'PlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTYsMjRWNEgyNFYzYTEsMSwwLDAsMC0xLTFINUExLDEsMCwwLDAsNCwzVjI1YTEsMSwwLDAsMCwxLDFINloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xp'@; put 'ZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0xMCwyOFY4SDI4VjdhMSwxLDAsMCwwLTEtMUg5QTEsMSwwLDAsMCw4LDdWMjlhMSwxLDAsMCwwLDEsMWgxWiIvPicpLGIuQ2xyU2hhcGVQYXBlcmNsaXA9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTEiIGQ9Ik04LjQyLDMyLjZBNi4zLDYuMywwLDAsMSw0LDMwLjc5bC0uMTMtLjEzQTYuMiw2LjIsMCwwLDEsMiwyNi4yMiw2Ljc3LDYuNzcsMCwwLDEsNCwyMS40TDE5LjUsNi4wN2E4LjY3LDguNjcsMCwwLDEsMTIuMTUtLjM1QTgsOCwwLDAsMSwzNCwxMS40NGE5LDks'@; put 'MCwwLDEtMi43LDYuMzZMMTcuMzcsMzEuNkExLDEsMCwxLDEsMTYsMzAuMThMMjkuODksMTYuMzhBNyw3LDAsMCwwLDMyLDExLjQ0YTYsNiwwLDAsMC0xLjc2LTQuMyw2LjY3LDYuNjcsMCwwLDAtOS4zNC4zNUw1LjQ1LDIyLjgyQTQuNzgsNC43OCwwLDAsMCw0LDI2LjIyYTQuMjEsNC4yMSww'@; put 'LDAsMCwxLjI0LDNsLjEzLjEzYTQuNjQsNC42NCwwLDAsMCw2LjUtLjIxTDI1LjIyLDE1Ljk0QTIuNywyLjcsMCwwLDAsMjYsMTRhMi4zNSwyLjM1LDAsMCwwLS42OS0xLjY4LDIuNjEsMi42MSwwLDAsMC0zLjY2LjEzbC05LjIsOS4xMmExLDEsMCwxLDEtMS40MS0xLjQyTDIwLjI4LDExYTQu'@; put 'NjIsNC42MiwwLDAsMSw2LjQ4LS4xM0E0LjMzLDQuMzMsMCwwLDEsMjgsMTRhNC42OCw0LjY4LDAsMCwxLTEuNDEsMy4zNEwxMy4yOCwzMC41OEE2LjkxLDYuOTEsMCwwLDEsOC40MiwzMi42WiIvPicpLGIuQ2xyU2hhcGVTaHJpbms9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiwxNUgyMi40MWw5LjI1LTkuMjVhMSwxLDAsMCwwLTEuNDEtMS40MUwyMSwxMy41OVY0YTEsMSwwLDAsMC0yLDBWMTdIMzJhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNNCwxOWExLDEsMCwwLDAsMCwyaDkuNTlMNC4zMywzMC4yNWExLDEsMCwxLDAsMS40MSwxLjQxTDE1LDIyLjQxVjMyYTEsMSwwLDAsMCwyLDBWMTlaIi8+JyksYi5DbHJTaGFwZUFjY2Vzc2liaWxpdHkxPSgwLHAuY2xySWNvblNWRykoJzxw'@; put 'YXRoIGQ9Ik0xNC40NCwzMS45NGE3LjMxLDcuMzEsMCwwLDEtNS43LTExLjg4TDcuMzIsMTguNjRhOS4zLDkuMywwLDAsMCwxMy4xLDEzLjExTDE5LDMwLjMzQTcuMjksNy4yOSwwLDAsMSwxNC40NCwzMS45NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAv'@; put 'PlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1LjM2LDEuNjdhNC4xMiw0LjEyLDAsMSwwLDQuMTEsNC4xMUE0LjEyLDQuMTIsMCwwLDAsMjUuMzYsMS42N1ptMCw2LjIzYTIuMTIsMi4xMiwwLDEsMSwyLjExLTIuMTJBMi4xMiwyLjEyLDAsMCwxLDI1LjM2LDcuOVoiIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LjU2LDE4LjE4aC01YTEsMSwwLDAsMC0uMjQuMDVsMy4wOS0zLjU1YTIuODMsMi44MywwLDAsMC0uNjktNC4zM2wtOC00LjZhMSwxLDAsMCwwLTEuMTIuMDhMOS44Myw5LjU4QTEsMSwwLDAs'@; put 'MCw5LjY2LDExYTEsMSwwLDAsMCwuNzkuMzgsMSwxLDAsMCwwLC42MS0uMjFsNC4yNy0zLjM0LDMuMTEsMS43Ny01LjA4LDUuNzhoMGE5LjI4LDkuMjgsMCwwLDAtNC41MywxLjgzbDEuNDMsMS40M0E3LjMsNy4zLDAsMCwxLDIwLjQyLDI4LjgxbDEuNDIsMS40M2E5LjI3LDkuMjcsMCwwLDAs'@; put 'Ljc3LTEwLjA2aDIuODJsLS43Nyw2LjUxYTEsMSwwLDAsMCwuODgsMS4xMWguMTJhMSwxLDAsMCwwLDEtLjg4bC45LTcuNjJhMSwxLDAsMCwwLS4yNS0uNzhBMSwxLDAsMCwwLDI2LjU2LDE4LjE4Wm0tNi4zNy03LjU2LDIuNTIsMS40NmEuNzkuNzksMCwwLDEsLjQuNTkuODEuODEsMCwwLDEt'@; put 'LjIuNjlMMTkuNzUsMTdBOS4xNyw5LjE3LDAsMCwwLDE2LDE1LjQ1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTQuNzcsMzEuOTRhNy4zMSw3LjMxLDAsMCwxLTUuNy0xMS44OEw3LjY1LDE4LjY0YTkuMyw5'@; put 'LjMsMCwwLDAsMTMuMSwxMy4xMWwtMS40Mi0xLjQyQTcuMjksNy4yOSwwLDAsMSwxNC43NywzMS45NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuNjUsMi4xYTMuMTIsMy4xMiwwLDEsMCwzLjExLDMuMTJBMy4x'@; put 'MiwzLjEyLDAsMCwwLDI2LjY1LDIuMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODEsMTguMThIMjEuNDdxLS4zMS0uMzMtLjY2LS42M2w0LjM4LTQuODZhMi4xNCwyLjE0LDAsMCwwLS41My0zLjI3TDIwLjks'@; put 'Ny4yM2wwLDBMMTcuMDUsNS4wN2ExLDEsMCwwLDAtMS4xMS4wOEwxMS4xNSw4LjlhMSwxLDAsMCwwLDEuMjMsMS41OGw0LjI3LTMuMzQsMi44NywxLjYzTDEzLjYsMTUuMzlhOS4zMyw5LjMzLDAsMCwwLTQuNDQsMS44MmwxLjQyLDEuNDNBNy4zLDcuMywwLDAsMSwyMC43NSwyOC44MWwxLjQz'@; put 'LDEuNDNBOS4yNyw5LjI3LDAsMCwwLDIzLDIwLjE4aDIuNzRsLS43Nyw2LjUxYTEsMSwwLDAsMCwuODcsMS4xMWguMTJhMSwxLDAsMCwwLDEtLjg4bC45LTcuNjJhMSwxLDAsMCwwLS4yNS0uNzhBMSwxLDAsMCwwLDI2LjgxLDE4LjE4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk'@; put 'LXBhdGgtMyIgLz4nKSxiLkNsclNoYXBlQWNjZXNzaWJpbGl0eTI9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLjA2LDExaC0yNGExLDEsMCwxLDAsMCwySDE0djkuNjVzMCwwLDAsMGwtMy43NSwxMGExLDEsMCwwLDAsLjU4LDEuMjksMS4xMywxLjEzLDAsMCwwLC4zNi4wNiwxLDEs'@; put 'MCwwLDAsLjkzLS42NUwxNS42MiwyNGg0Ljc2bDMuNTIsOS4zNWExLDEsMCwwLDAsLjkzLjY1LDEuMTMsMS4xMywwLDAsMCwuMzYtLjA2LDEsMSwwLDAsMCwuNTgtMS4yOUwyMiwyMi42OHMwLDAsMCwwVjEzaDguMDZhMSwxLDAsMSwwLDAtMlpNMjAsMjJIMTZWMTNoNFoiIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDEwYTQsNCwwLDEsMC00LTRBNCw0LDAsMCwwLDE4LDEwWm0wLTZhMiwyLDAsMSwxLTIsMkEyLDIsMCwwLDEsMTgsNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC0yIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTcuOTYiIGN5PSI1IiByPSIzIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEwSDZhMSwxLDAsMCwwLDAsMmg4djguMzZzMCwwLDAsMEwxMC4xMSwz'@; put 'My4xN2ExLDEsMCwwLDAsLjY2LDEuMjUsMS41NSwxLjU1LDAsMCwwLC4yOSwwLDEsMSwwLDAsMCwxLS43MWwzLjI5LTEwLjg0aDUuMzhMMjQsMzMuNzVhMSwxLDAsMCwwLDEsLjcxLDEuNTUsMS41NSwwLDAsMCwuMjksMCwxLDEsMCwwLDAsLjY2LTEuMjVMMjIsMjAuNHMwLDAsMCwwVjEyaDhh'@; put 'MSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksYi5DbHJTaGFwZVNvcnRCeT0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjguNTQsMTNINy40NmExLDEsMCwwLDEsMC0ySDI4LjU0YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMS4xNywxOUg3LjQ2YTEsMSwwLDAsMSwwLTJIMjEuMTdhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAg'@; put 'ICAgPHBhdGggZD0iTTEzLjc0LDI1SDcuNDZhMSwxLDAsMCwxLDAtMmg2LjI4YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz4nKSxiLkNsclNoYXBlQ29sbGFwc2VDYXJkPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMywy'@; put 'MUgzYTEsMSwwLDAsMC0xLDF2NmExLDEsMCwwLDAsMSwxSDMzYTEsMSwwLDAsMCwxLTFWMjJBMSwxLDAsMCwwLDMzLDIxWm0tMSw2SDRWMjNIMzJaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyMC4yMmw1'@; put 'LjY1LTUuNjVhLjgxLjgxLDAsMCwwLDAtMS4xNC44LjgsMCwwLDAtMS4xMywwTDE4LDE4bC00LjUyLTQuNTJhLjguOCwwLDAsMC0xLjEzLDAsLjgxLjgxLDAsMCwwLDAsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBh'@; put 'dGggZD0iTTE4LDE0LjIybDUuNjUtNS42NWEuODEuODEsMCwwLDAsMC0xLjE0LjguOCwwLDAsMC0xLjEzLDBMMTgsMTIsMTMuNDgsNy40M2EuOC44LDAsMCwwLTEuMTMsMCwuODEuODEsMCwwLDAsMCwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+'@; put 'XG4gICAgICAgICAgICA8cmVjdCB4PSIyIiB5PSIyMiIgd2lkdGg9IjMyIiBoZWlnaHQ9IjgiIHJ4PSIxIiByeT0iMSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyMC43bC01Ljc5LTUuNzlhMSwxLDAsMCwxLDAt'@; put 'MS40MSwxLDEsMCwwLDEsMS40MSwwTDE4LDE3Ljg3bDQuMzgtNC4zN2ExLDEsMCwwLDEsMS40MSwwLDEsMSwwLDAsMSwwLDEuNDFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDE0LjUsMTIuMjEsOC43MWExLDEs'@; put 'MCwwLDEsMC0xLjQyLDEsMSwwLDAsMSwxLjQxLDBMMTgsMTEuNjdsNC4zOC00LjM4YTEsMSwwLDAsMSwxLjQxLDAsMSwxLDAsMCwxLDAsMS40MloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksYi5DbHJTaGFwZUV4cGFuZENhcmQ9KDAscC5jbHJJY29uU1ZH'@; put 'KSgnPHBhdGggZD0iTTMzLDZIM0ExLDEsMCwwLDAsMiw3VjI5YTEsMSwwLDAsMCwxLDFIMzNhMSwxLDAsMCwwLDEtMVY3QTEsMSwwLDAsMCwzMyw2Wk0zMiwyOEg0VjhIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGgg'@; put 'ZD0iTTEzLjQ4LDE1Ljg2LDE4LDExLjM0bDQuNTIsNC41MmEuNzcuNzcsMCwwLDAsLjU2LjI0LjgxLjgxLDAsMCwwLC41Ny0xLjM3TDE4LDkuMDhsLTUuNjUsNS42NWEuOC44LDAsMSwwLDEuMTMsMS4xM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4g'@; put 'ICAgICAgICAgICA8cGF0aCBkPSJNMTMuNDgsMjEuODYsMTgsMTcuMzRsNC41Miw0LjUyYS43Ny43NywwLDAsMCwuNTYuMjQuODEuODEsMCwwLDAsLjU3LTEuMzdMMTgsMTUuMDhsLTUuNjUsNS42NWEuOC44LDAsMSwwLDEuMTMsMS4xM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsNkgzQTEsMSwwLDAsMCwyLDdWMjlhMSwxLDAsMCwwLDEsMUgzM2ExLDEsMCwwLDAsMS0xVjdBMSwxLDAsMCwwLDMzLDZaTTIzLjc5LDIxLjQxYTEsMSwwLDAsMS0xLjQxLDBMMTgsMTdsLTQuMzgsNC4zOGExLDEsMCww'@; put 'LDEtMS40MSwwLDEsMSwwLDAsMSwwLTEuNDJMMTgsMTQuMiwyMy43OSwyMEExLDEsMCwwLDEsMjMuNzksMjEuNDFabTAtNi4yYTEsMSwwLDAsMS0xLjQxLDBMMTgsMTAuODNsLTQuMzgsNC4zOGExLDEsMCwwLDEtMS40MSwwLDEsMSwwLDAsMSwwLTEuNDJMMTgsOGw1Ljc5LDUuNzlBMSwxLDAs'@; put 'MCwxLDIzLjc5LDE1LjIxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxiLkNsclNoYXBlQnJpZWZjYXNlPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMiwyOGEwLDAsMCwwLDEsMCwwSDRWMjEuMzJhNy4xLDcuMSwwLDAsMS0yLTEuNDNWMjhhMiwy'@; put 'LDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE5Ljg5YTYuNzQsNi43NCwwLDAsMS0yLDEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbjxwYXRoIGQ9Ik0yNSwyMi40YTEsMSwwLDAsMCwxLTFWMTUuOTRIMjRWMThIMTR2MkgyNHYxLjRBMSwx'@; put 'LDAsMCwwLDI1LDIyLjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbjxwYXRoIGQ9Ik0zMyw2SDI0VjQuMzhBMi40MiwyLjQyLDAsMCwwLDIxLjU1LDJoLTcuMUEyLjQyLDIuNDIsMCwwLDAsMTIsNC4zOFY2SDNBMSwxLDAsMCwwLDIsN3Y4YTUsNSww'@; put 'LDAsMCw1LDVoM3YxLjRhMSwxLDAsMCwwLDIsMFYxNS45NEgxMFYxOEg3YTMsMywwLDAsMS0zLTNWOEgzMnY3YTMsMywwLDAsMS0zLDNIMjh2MmgxYTUsNSwwLDAsMCw1LTVWN0ExLDEsMCwwLDAsMzMsNlpNMjIsNkgxNFY0LjQzQS40NS40NSwwLDAsMSwxNC40NSw0aDcuMTFhLjQzLjQzLDAs'@; put 'MCwxLC40NC40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuPHBhdGggZD0iTTMwLDE4QTQuMDYsNC4wNiwwLDAsMCwzNCwxNFY2SDI0VjQuNDNBMi40NCwyLjQ0LDAsMCwwLDIxLjU1LDJoLTcuMUEyLjQ0LDIuNDQsMCwwLDAsMTIsNC40M1Y2SDJ2'@; put 'OEE0LjA2LDQuMDYsMCwwLDAsNi4wNSwxOGg0VjE1LjkyaDJ2NS43YTEsMSwwLDEsMS0yLDBWMjAuMDZINi4wNkE2LjA2LDYuMDYsMCwwLDEsMiwxOC40OXY5LjQ1YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxOC40OWE2LDYsMCwwLDEtNC4wNiwxLjU3SDI4VjE4Wk0xNCw0LjQz'@; put 'QS40NS40NSwwLDAsMSwxNC40NSw0aDcuMWEuNDUuNDUsMCwwLDEsLjQ1LjQzVjZIMTRaTTI2LDIxLjYyYTEsMSwwLDEsMS0yLDBWMjAuMDZIMTRWMThIMjRWMTUuOTJoMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksYi5DbHJTaGFwZUNvbG9yUGlja2Vy'@; put 'PSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMywxMC4wNWE1LjA3LDUuMDcsMCwwLDAsLjEtNy4xN0E1LjA2LDUuMDYsMCwwLDAsMjYsM0wyMC43OCw4LjE1YTIuMTMsMi4xMywwLDAsMS0zLDBsLS42Ny0uNjdMMTUuNzIsOC45MiwyNy4wOCwyMC4yOGwxLjQyLTEuNDItLjY3LS42N2Ey'@; put 'LjEzLDIuMTMsMCwwLDEsMC0zWk0yNi40NCwxMy44YTQuMDcsNC4wNywwLDAsMC0xLjA4LDEuOTJsLTUuMDgtNS4wOEE0LjA3LDQuMDcsMCwwLDAsMjIuMiw5LjU2bDUuMTYtNS4xN2EzLjA5LDMuMDksMCwwLDEsNC4zNS0uMSwzLjA5LDMuMDksMCwwLDEtLjEsNC4zNVoiIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuPHBhdGggZD0iTTcuMywzMS41MWEyLDIsMCwxLDEtMi44My0yLjgzTDE4LjU4LDE0LjU3bC0xLjQyLTEuNDFMMy4wNSwyNy4yN2E0LDQsMCwwLDAtLjY4LDQuOEwuODksMzMuNTVBMSwxLDAsMCwwLC44OSwzNWExLDEsMCwwLDAs'@; put 'MS40MiwwbDEuNDMtMS40NGEzLjkzLDMuOTMsMCwwLDAsMi4wOS42LDQuMDYsNC4wNiwwLDAsMCwyLjg4LTEuMkwyMi44MiwxOC44MSwyMS40MSwxNy40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG48cGF0aCBkPSJNMzMuNzMsMi4xMWE0LjA5LDQu'@; put 'MDksMCwwLDAtNS43Ni4xTDIyLjgxLDcuMzhhMy4xMywzLjEzLDAsMCwxLTQuMy4xMUwxNy4wOSw4LjkxLDI3LDE4Ljc5bDEuNDItMS40MkEzLjE4LDMuMTgsMCwwLDEsMjguNDYsMTNsNS4xNy01LjE3QTQuMDgsNC4wOCwwLDAsMCwzMy43MywyLjExWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNs'@; put 'ci1pLXNvbGlkLXBhdGgtMSIgLz5cbjxwYXRoIGQ9Ik0yMi4xOCwxNi43OSw3LjQ2LDMxLjUxYTIsMiwwLDEsMS0yLjgyLTIuODNMMTkuMzUsMTRsLTEuNDEtMS40MUwzLjIyLDI3LjI3YTQsNCwwLDAsMC0uNjgsNC44TDEuMDYsMzMuNTVhMSwxLDAsMCwwLDAsMS40MSwxLDEsMCwwLDAsMS40'@; put 'MSwwbDEuNDQtMS40NGEzLjkzLDMuOTMsMCwwLDAsMi4wOS42LDQuMDYsNC4wNiwwLDAsMCwyLjg4LTEuMkwyMy42LDE4LjIxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxiLkNsclNoYXBlQ29weVRvQ2xpcGJvYXJkPSgwLHAuY2xySWNvblNWRykoJzxw'@; put 'YXRoIGQ9Ik0yMi42LDRIMjEuNTVhMy44OSwzLjg5LDAsMCwwLTcuMzEsMEgxMy40QTIuNDEsMi40MSwwLDAsMCwxMSw2LjRWMTBIMjVWNi40QTIuNDEsMi40MSwwLDAsMCwyMi42LDRaTTIzLDhIMTNWNi4yNUEuMjUuMjUsMCwwLDEsMTMuMjUsNmgyLjY5bC4xMi0xLjExQTEuMjQsMS4yNCww'@; put 'LDAsMSwxNi42MSw0YTIsMiwwLDAsMSwzLjE1LDEuMThsLjA5Ljg0aDIuOWEuMjUuMjUsMCwwLDEsLjI1LjI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG48cGF0aCBkPSJNMzMuMjUsMTguMDZIMjEuMzNsMi44NC0yLjgzYTEsMSwwLDEsMC0xLjQy'@; put 'LTEuNDJMMTcuNSwxOS4wNmw1LjI1LDUuMjVhMSwxLDAsMCwwLC43MS4yOSwxLDEsMCwwLDAsLjcxLTEuN2wtMi44NC0yLjg0SDMzLjI1YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbjxwYXRoIGQ9Ik0yOSwxNmgyVjYuNjhB'@; put 'MS42NiwxLjY2LDAsMCwwLDI5LjM1LDVIMjcuMDhWN0gyOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuPHBhdGggZD0iTTI5LDMxSDdWN0g5VjVINi42NEExLjY2LDEuNjYsMCwwLDAsNSw2LjY3VjMxLjMyQTEuNjYsMS42NiwwLDAsMCw2LjY1LDMz'@; put 'SDI5LjM2QTEuNjYsMS42NiwwLDAsMCwzMSwzMS4zM1YyMi4wNkgyOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPicpLGIuQ2xyU2hhcGVEcmFnSGFuZGxlPSgwLHAuY2xySWNvblNWRykoJzxjaXJjbGUgY3g9IjE1IiBjeT0iMTIiIHI9IjEuNSIgY2xh'@; put 'c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PGNpcmNsZSBjeD0iMTUiIGN5PSIyNCIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48Y2lyY2xlIGN4PSIyMSIgY3k9IjEyIiByPSIxLjUiIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxjaXJjbGUgY3g9IjIxIiBjeT0iMjQiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PGNpcmNsZSBjeD0iMjEiIGN5PSIxOCIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtNSIgLz48Y2lyY2xlIGN4PSIxNSIgY3k9IjE4IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPicpLGIuQ2xyU2hhcGVGaWx0ZXIyPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMywxMUgzYTEsMSwwLDAsMCww'@; put 'LDJIMzNhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuPHBhdGggZD0iTTI4LDE3SDhhMSwxLDAsMCwwLDAsMkgyOGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+'@; put 'XG48cGF0aCBkPSJNMjMsMjNIMTNhMSwxLDAsMCwwLDAsMkgyM2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+JyksYi5DbHJTaGFwZU1vb249KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLDI3LjE5YTEsMSwwLDAsMC0x'@; put 'LS41NmMtLjI4LDAtLjU2LDAtLjg1LDBBMTEsMTEsMCwwLDEsMjQuOTIsNS42MWExLDEsMCwwLDAsLjYxLTEsMSwxLDAsMCwwLS42Ny0uOTEsMTQuNywxNC43LDAsMCwwLTUtLjg3LDE1LjEyLDE1LjEyLDAsMCwwLDAsMzAuMjQsMTQuNzgsMTQuNzgsMCwwLDAsMTEtNC44MUExLDEsMCwwLDAs'@; put 'MzEsMjcuMTlaTTE5Ljg5LDMxLjEyYTEzLjEyLDEzLjEyLDAsMCwxLDAtMjYuMjQsMTEuODEsMTEuODEsMCwwLDEsMiwuMTYsMTMsMTMsMCwwLDAsNS43MiwyMy41M0ExMi43NSwxMi43NSwwLDAsMSwxOS44OSwzMS4xMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC0xIiAvPlxuPHBhdGggZD0iTTI5LjIsMjYuNzJBMTIuMDcsMTIuMDcsMCwwLDEsMjIuOSw0LjQ0LDEzLjY4LDEzLjY4LDAsMCwwLDE5LjQ5LDRhMTQsMTQsMCwwLDAsMCwyOCwxMy44MiwxMy44MiwwLDAsMCwxMC45LTUuMzRBMTEuNzEsMTEuNzEsMCwwLDEsMjkuMiwyNi43MloiIGNsYXNz'@; put 'PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksYi5DbHJTaGFwZVN1bj0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsNi4zMWExLDEsMCwwLDAsMS0xVjEuOTFhMSwxLDAsMCwwLTIsMHYzLjRBMSwxLDAsMCwwLDE4LDYuMzFaIiBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbjxwYXRoIGQ9Ik0xOCwyOS42OWExLDEsMCwwLDAtMSwxdjMuNGExLDEsMCwwLDAsMiwwdi0zLjRBMSwxLDAsMCwwLDE4LDI5LjY5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG48cGF0aCBkPSJNOC4z'@; put 'Miw5Ljc0QTEsMSwwLDAsMCw5LDEwYTEsMSwwLDAsMCwuNzEtLjI5LDEsMSwwLDAsMCwwLTEuNDJMNy4zMyw1LjkyQTEsMSwwLDAsMCw1LjkyLDcuMzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMjcuNjgsMjYuMjZhMSwxLDAsMSww'@; put 'LTEuNDIsMS40MmwyLjQxLDIuNGExLDEsMCwwLDAsLjcxLjMsMSwxLDAsMCwwLC43LS4zLDEsMSwwLDAsMCwwLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNNi4zMSwxOGExLDEsMCwwLDAtMS0xSDEuOTFhMSwxLDAsMCwwLDAs'@; put 'MmgzLjRBMSwxLDAsMCwwLDYuMzEsMThaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzQuMDksMTdoLTMuNGExLDEsMCwxLDAsMCwyaDMuNGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTYiIC8+PHBhdGggZD0iTTguMzIsMjYuMjZsLTIuNCwyLjQxYTEsMSwwLDAsMCwuNywxLjcxLDEsMSwwLDAsMCwuNzEtLjNsMi40MS0yLjRhMSwxLDAsMSwwLTEuNDItMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPjxwYXRoIGQ9Ik0yNywx'@; put 'MGExLDEsMCwwLDAsLjcxLS4yOWwyLjQtMi40MWExLDEsMCwwLDAsMC0xLjQxLDEsMSwwLDAsMC0xLjQxLDBsLTIuNDEsMi40YTEsMSwwLDAsMCwwLDEuNDJBMSwxLDAsMCwwLDI3LDEwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIC8+PHBhdGggZD0iTTE4'@; put 'LjEzLDcuNzVhMTAuMTMsMTAuMTMsMCwxLDAsMTAsMTAuMTNBMTAuMDgsMTAuMDgsMCwwLDAsMTguMTMsNy43NVptMCwxOC4yNWE4LjEzLDguMTMsMCwxLDEsOC04LjEyQTguMDgsOC4wOCwwLDAsMSwxOC4xMywyNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC05'@; put 'IiAvPjxwYXRoIGQ9Ik0xOCw2LjQyYTEsMSwwLDAsMCwxLTFWMS45MWExLDEsMCwwLDAtMiwwVjUuNDJBMSwxLDAsMCwwLDE4LDYuNDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xOCwyOS41OGExLDEsMCwwLDAtMSwxdjMuNTFhMSwxLDAs'@; put 'MCwwLDIsMFYzMC41OEExLDEsMCwwLDAsMTgsMjkuNThaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik04LjQsOS44MUExLDEsMCwwLDAsOS44MSw4LjRMNy4zMyw1LjkyQTEsMSwwLDAsMCw1LjkyLDcuMzNaIiBjbGFzcz0iY2xyLWktc29saWQg'@; put 'Y2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yNy42LDI2LjE5YTEsMSwwLDAsMC0xLjQxLDEuNDFsMi40OCwyLjQ4YTEsMSwwLDAsMCwxLjQxLTEuNDFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPjxwYXRoIGQ9Ik02LjQyLDE4YTEsMSwwLDAsMC0x'@; put 'LTFIMS45MWExLDEsMCwwLDAsMCwySDUuNDJBMSwxLDAsMCwwLDYuNDIsMThaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC01IiAvPjxwYXRoIGQ9Ik0zNC4wOSwxN0gzMC41OGExLDEsMCwwLDAsMCwyaDMuNTFhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xp'@; put 'ZCBjbHItaS1zb2xpZC1wYXRoLTYiIC8+PHBhdGggZD0iTTguNCwyNi4xOSw1LjkyLDI4LjY3YTEsMSwwLDAsMCwxLjQxLDEuNDFMOS44MSwyNy42QTEsMSwwLDAsMCw4LjQsMjYuMTlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC03IiAvPjxwYXRoIGQ9Ik0yNy42LDku'@; put 'ODFsMi40OC0yLjQ4YTEsMSwwLDAsMC0xLjQxLTEuNDFMMjYuMTksOC40QTEsMSwwLDAsMCwyNy42LDkuODFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC04IiAvPjxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjEwIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s'@; put 'aWQtcGF0aC05IiAvPicpLGIuQ2xyU2hhcGVXYW5kPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzQuMSw0LDMxLjcxLDEuNmExLjgzLDEuODMsMCwwLDAtMS4zMS0uNTRoMGEyLjA1LDIuMDUsMCwwLDAtMS40'@; put 'NS42MkwxLjc2LDI5LjIzQTIsMiwwLDAsMCwxLjY4LDMybDIuNCwyLjQzQTEuODMsMS44MywwLDAsMCw1LjM5LDM1aDBhMi4wNSwyLjA1LDAsMCwwLDEuNDUtLjYyTDM0LDYuNzlBMiwyLDAsMCwwLDM0LjEsNFpNNS40MiwzMi45MywzLjE2LDMwLjY1aDBMMjQuMTEsOS40M2wyLjI1LDIuMjha'@; put 'TTMyLjYxLDUuMzlsLTUuMTIsNS4xOEwyNS4yNCw4LjI5bDUuMTMtNS4yLDIuMjUsMi4yOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzIuNTMsMjAuNDdsMi4wOS0yLjA5YS44LjgsMCwwLDAtMS4xMy0xLjEz'@; put 'bC0yLjA5LDIuMDktMi4wOS0yLjA5YS44LjgsMCwwLDAtMS4xMywxLjEzbDIuMDksMi4wOS0yLjA5LDIuMDlhLjguOCwwLDAsMCwxLjEzLDEuMTNsMi4wOS0yLjA5LDIuMDksMi4wOWEuOC44LDAsMCwwLDEuMTMtMS4xM1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTQuNzgsNi41MWEuOC44LDAsMCwwLDEuMTMsMEwxNy40LDVsMS40OSwxLjQ5QS44LjgsMCwwLDAsMjAsNS4zOEwxOC41NCwzLjg5LDIwLDIuNGEuOC44LDAsMCwwLTEuMTMtMS4xM0wxNy40LDIuNzYsMTUuOTEsMS4yN0EuOC44LDAsMSww'@; put 'LDE0Ljc4LDIuNGwxLjQ5LDEuNDlMMTQuNzgsNS4zOEEuOC44LDAsMCwwLDE0Ljc4LDYuNTFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTguMzMsMTUuMjZhLjguOCwwLDAsMCwxLjEzLDBsMS4xNi0xLjE2LDEu'@; put 'MTYsMS4xNmEuOC44LDAsMSwwLDEuMTMtMS4xM0wxMS43NiwxM2wxLjE2LTEuMTZhLjguOCwwLDEsMC0xLjEzLTEuMTNsLTEuMTYsMS4xNkw5LjQ2LDEwLjY4YS44LjgsMCwxLDAtMS4xMywxLjEzTDkuNDksMTMsOC4zMywxNC4xM0EuOC44LDAsMCwwLDguMzMsMTUuMjZaIi8+JyksYi5DbHJT'@; put 'aGFwZUN1cnNvck1vdmU9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI4Ljg1LDEyLjg5YTEsMSwwLDAsMC0xLjQyLDAsMSwxLDAsMCwwLDAsMS40MUwzMC4xNCwxN0gxOVY1Ljg2bDIuNjksMi43YTEsMSwwLDAsMCwxLjQxLDAsMSwxLDAsMCwwLDAtMS40MkwxOCwyLDEyLjg5LDcuMTVh'@; put 'MSwxLDAsMCwwLS4yOS43MSwxLDEsMCwwLDAsMS43MS43TDE3LDUuODZWMTdINS44NmwyLjctMi42OWExLDEsMCwwLDAsMC0xLjQxLDEsMSwwLDAsMC0xLjQyLDBMMiwxOGw1LjE0LDUuMTFhMSwxLDAsMCwwLC43MS4yOSwxLDEsMCwwLDAsLjctMS43MUw1Ljg2LDE5SDE3VjMwLjE0bC0yLjY5'@; put 'LTIuN2ExLDEsMCwwLDAtMS43MS43LDEsMSwwLDAsMCwuMjkuNzFMMTgsMzRsNS4xMS01LjE0YTEsMSwwLDAsMCwwLTEuNDIsMSwxLDAsMCwwLTEuNDEsMEwxOSwzMC4xNFYxOUgzMC4xNGwtMi43LDIuNjlhMSwxLDAsMCwwLC43LDEuNzEsMSwxLDAsMCwwLC43MS0uMjlMMzQsMThaIiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxiLkNsclNoYXBlQ2xvbmU9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTYsNkgyMnY0aDJWNmEyLDIsMCwwLDAtMi0ySDZBMiwyLDAsMCwwLDQsNlYyMmEyLDIsMCwwLDAsMiwyaDRWMjJINloiIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMCwxMkgxNGEyLDIsMCwwLDAtMiwyVjMwYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxNEEyLDIsMCwwLDAsMzAsMTJabTAsMThIMTRWMTRIMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtMiIgLz48cG9seWdvbiBwb2ludHM9IjIxIDI4IDIzIDI4IDIzIDIzIDI4IDIzIDI4IDIxIDIzIDIxIDIzIDE2IDIxIDE2IDIxIDIxIDE2IDIxIDE2IDIzIDIxIDIzIDIxIDI4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0'@; put 'aCBkPSJNMjQsMTBWNmEyLDIsMCwwLDAtMi0ySDZBMiwyLDAsMCwwLDQsNlYyMmEyLDIsMCwwLDAsMiwyaDRWMTJhMiwyLDAsMCwxLDItMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTMwLDEySDE0YTIsMiwwLDAsMC0yLDJWMzBhMiwyLDAs'@; put 'MCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE0QTIsMiwwLDAsMCwzMCwxMlpNMjgsMjNIMjN2NUgyMVYyM0gxNlYyMWg1VjE2aDJ2NWg1WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxiLkNsclNoYXBlRGV0YWlscz0oMCxwLmNsckljb25TVkcpKCc8cGF0'@; put 'aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZabTAsMjJINFY4SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTksMTRIMjdhMSwxLDAsMCww'@; put 'LDAtMkg5YTEsMSwwLDAsMCwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNOSwxOEgyN2ExLDEsMCwwLDAsMC0ySDlhMSwxLDAsMCwwLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxw'@; put 'YXRoIGQ9Ik05LDIySDE5YTEsMSwwLDAsMCwwLTJIOWExLDEsMCwwLDAsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiww'@; put 'LDAsMCwzMiw2Wk0xOSwyMkg5YTEsMSwwLDAsMSwwLTJIMTlhMSwxLDAsMCwxLDAsMlptOC00SDlhMSwxLDAsMCwxLDAtMkgyN2ExLDEsMCwwLDEsMCwyWm0wLTRIOWExLDEsMCwwLDEsMC0ySDI3YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0x'@; put 'IiAvPicpLGIuQ2xyU2hhcGVEcmFnSGFuZGxlQ29ybmVyPSgwLHAuY2xySWNvblNWRykoJzxjaXJjbGUgY3g9IjEyIiBjeT0iMjQiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PGNpcmNsZSBjeD0iMTgiIGN5PSIyNCIgcj0iMS41IiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxjaXJjbGUgY3g9IjI0IiBjeT0iMTIiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PGNpcmNsZSBjeD0iMjQiIGN5PSIyNCIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48Y2lyY2xlIGN4PSIyNCIgY3k9IjE4IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC02IiAvPicpLGIuQ2xyU2hhcGVFcmFzZXI9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM1LjYyLDEyYTIuODIsMi44MiwwLDAsMC0uODQtMkwyNy40OSwyLjY1YTIuOSwyLjksMCwwLDAtNCwwTDIuODMsMjMuMjhhMi44NCwyLjg0LDAsMCwwLDAsNEw3LjUzLDMy'@; put 'SDNhMSwxLDAsMCwwLDAsMkgyOGExLDEsMCwwLDAsMC0ySDE2Ljc0bDE4LTE4QTIuODIsMi44MiwwLDAsMCwzNS42MiwxMlpNMTMuOTEsMzJIMTAuMzZMNC4yNSwyNS44OWEuODQuODQsMCwwLDEsMC0xLjE5bDUuNTEtNS41Miw4LjQ5LDguNDhaTTMzLjM3LDEyLjU0LDE5LjY2LDI2LjI1bC04'@; put 'LjQ4LTguNDksMTMuNy0xMy43YS44Ni44NiwwLDAsMSwxLjE5LDBsNy4zLDcuMjlhLjg2Ljg2LDAsMCwxLC4yNS42QS44Mi44MiwwLDAsMSwzMy4zNywxMi41NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yOCwzMkgxNS4zM0wxOSwy'@; put 'OC4zN2wtOS45LTkuOUwzLjU0LDI0YTEuODMsMS44MywwLDAsMCwwLDIuNkw5LDMySDNhMSwxLDAsMCwwLDAsMkgyOGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzQuMDgsMTAuNjVsLTcuMy03LjNhMS44MywxLjgz'@; put 'LDAsMCwwLTIuNiwwTDEwLjQ3LDE3LjA2bDkuOSw5LjlMMzQuMDgsMTMuMjVBMS44NSwxLjg1LDAsMCwwLDM0LjA4LDEwLjY1WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxiLkNsclNoYXBlTGFuZHNjYXBlPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9'@; put 'Ik0zMiw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlptMCwyMkg0VjhIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNOSwyMmEuODIuODIsMCwwLDAsLjU1'@; put 'LS4yMS44LjgsMCwwLDAsMC0xLjEzTDcuODMsMTguOEgyOC4xN2wtMS43MiwxLjg2YS44LjgsMCwwLDAsMCwxLjEzQS44Mi44MiwwLDAsMCwyNywyMmEuNzguNzgsMCwwLDAsLjU4LS4yNkwzMS4wOSwxOGwtMy40Ny0zLjc0YS43OS43OSwwLDAsMC0xLjEzLDAsLjguOCwwLDAsMCwwLDEuMTNs'@; put 'MS43MiwxLjg2SDcuODNsMS43Mi0xLjg2YS44LjgsMCwwLDAsMC0xLjEzLjc5Ljc5LDAsMCwwLTEuMTMsMEw0LjkxLDE4bDMuNDcsMy43NEEuNzguNzgsMCwwLDAsOSwyMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMiw2SDRBMiwy'@; put 'LDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlpNMjcuNzcsMjEuODhhMSwxLDAsMCwxLS43My4zMiwxLDEsMCwwLDEtLjY4LS4yNywxLDEsMCwwLDEtLjA2LTEuNDFMMjcuNzEsMTlIOC4yOUw5LjcsMjAuNTJhMSwxLDAsMCwxLS4w'@; put 'NiwxLjQxQTEsMSwwLDAsMSw5LDIyLjJhMSwxLDAsMCwxLS43My0uMzJMNC42NCwxOGwzLjU5LTMuODhBMSwxLDAsMCwxLDkuNywxNS40OEw4LjI5LDE3SDI3LjcxTDI2LjMsMTUuNDhhMSwxLDAsMCwxLDEuNDctMS4zNkwzMS4zNiwxOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp'@; put 'ZC1wYXRoLTEiIC8+JyksYi5DbHJTaGFwZVBhc3RlPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMCwxMkgyNnYyaDR2MmgyVjE0QTIsMiwwLDAsMCwzMCwxMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxyZWN0IHg9IjMwIiB5PSIxOCIgd2lk'@; put 'dGg9IjIiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTMwLDMwSDI4djJoMmEyLDIsMCwwLDAsMi0yVjI2SDMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTI0'@; put 'LDIyVjZhMiwyLDAsMCwwLTItMkg2QTIsMiwwLDAsMCw0LDZWMjJhMiwyLDAsMCwwLDIsMkgyMkEyLDIsMCwwLDAsMjQsMjJaTTYsNkgyMlYyMkg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHJlY3QgeD0iMjAiIHk9IjMwIiB3aWR0aD0iNiIgaGVp'@; put 'Z2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMTQsMjZIMTJ2NGEyLDIsMCwwLDAsMiwyaDRWMzBIMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz48cGF0aCBkPSJNMzAsMTJIMjZ2Mmg0'@; put 'djJoMlYxNEEyLDIsMCwwLDAsMzAsMTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxyZWN0IHg9IjMwIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMzAsMzBI'@; put 'Mjh2MmgyYTIsMiwwLDAsMCwyLTJWMjZIMzBaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxyZWN0IHg9IjQiIHk9IjQiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgcng9IjIiIHJ5PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAv'@; put 'PjxyZWN0IHg9IjIwIiB5PSIzMCIgd2lkdGg9IjYiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIgLz48cGF0aCBkPSJNMTQsMjZIMTJ2NGEyLDIsMCwwLDAsMiwyaDRWMzBIMTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC02'@; put 'IiAvPicpLGIuQ2xyU2hhcGVQb3J0cmFpdD0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTUuMzQsMjYuNDVhLjguOCwwLDAsMC0xLjEzLDAsLjc5Ljc5LDAsMCwwLDAsMS4xM0wxOCwzMS4wOWwzLjc0LTMuNDdhLjc5Ljc5LDAsMCwwLC4wNS0xLjEzLjguOCwwLDAsMC0xLjEzLDBMMTgu'@; put 'OCwyOC4xN1Y3LjgzbDEuODYsMS43MmEuOC44LDAsMSwwLDEuMDgtMS4xN0wxOCw0LjkxLDE0LjI2LDguMzhhLjc5Ljc5LDAsMCwwLDAsMS4xMy44LjgsMCwwLDAsMS4xMywwTDE3LjIsNy44M1YyOC4xN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxw'@; put 'YXRoIGQ9Ik0yOCwySDhBMiwyLDAsMCwwLDYsNFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWNEEyLDIsMCwwLDAsMjgsMlptMCwzMEg4VjRIMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjgsMkg4QTIsMiwwLDAs'@; put 'MCw2LDRWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjRBMiwyLDAsMCwwLDI4LDJaTTIwLjUyLDI2LjNhMSwxLDAsMCwxLDEuMzYsMS40N0wxOCwzMS4zNmwtMy44OC0zLjU5YTEsMSwwLDAsMSwxLjM2LTEuNDdMMTcsMjcuNzFWOC4yOUwxNS40OCw5LjdhMSwxLDAsMCwxLTEu'@; put 'MzYtMS40N0wxOCw0LjY0bDMuODgsMy41OWExLDEsMCwwLDEsLjA1LDEuNDEsMSwxLDAsMCwxLS43My4zMiwxLDEsMCwwLDEtLjY4LS4yNkwxOSw4LjI5VjI3LjcxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxiLkNsclNoYXBlVHJlZVZpZXc9KDAscC5j'@; put 'bHJJY29uU1ZHKSgnPHBhdGggZD0iTTE1LDMySDExYTEsMSwwLDAsMS0xLTFWMjdhMSwxLDAsMCwxLDEtMWg0YTEsMSwwLDAsMSwxLDF2NEExLDEsMCwwLDEsMTUsMzJabS0zLTJoMlYyOEgxMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9'@; put 'Ik0xNSwxNkgxMWExLDEsMCwwLDAtMSwxdjEuMkg1LjhWMTJIN2ExLDEsMCwwLDAsMS0xVjdBMSwxLDAsMCwwLDcsNkgzQTEsMSwwLDAsMCwyLDd2NGExLDEsMCwwLDAsMSwxSDQuMlYyOS44aDYuMzZhLjguOCwwLDAsMCwwLTEuNkg1LjhWMTkuOEgxMFYyMWExLDEsMCwwLDAsMSwxaDRhMSwx'@; put 'LDAsMCwwLDEtMVYxN0ExLDEsMCwwLDAsMTUsMTZaTTQsOEg2djJINFpNMTQsMjBIMTJWMThoMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zNCw5YTEsMSwwLDAsMC0xLTFIMTB2MkgzM0ExLDEsMCwwLDAsMzQsOVoiIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMywxOEgxOHYySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMzMsMjhIMTh2MkgzM2ExLDEsMCwwLDAsMC0yWiIgY2xh'@; put 'c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHJlY3QgeD0iMTAiIHk9IjI2IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiByeD0iMSIgcnk9IjEiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTE1LDE2SDExYTEsMSwwLDAs'@; put 'MC0xLDF2MS4ySDUuOFYxMkg3YTEsMSwwLDAsMCwxLTFWN0ExLDEsMCwwLDAsNyw2SDNBMSwxLDAsMCwwLDIsN3Y0YTEsMSwwLDAsMCwxLDFINC4yVjI5LjhIMTFhLjguOCwwLDEsMCwwLTEuNkg1LjhWMTkuOEgxMFYyMWExLDEsMCwwLDAsMSwxaDRhMSwxLDAsMCwwLDEtMVYxN0ExLDEsMCww'@; put 'LDAsMTUsMTZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMyw4SDEwdjJIMzNhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+PHBhdGggZD0iTTMzLDE4SDE4djJIMzNhMSwxLDAsMCww'@; put 'LDAtMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+PHBhdGggZD0iTTMzLDI4SDE4djJIMzNhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIC8+JyksYi5DbHJTaGFwZUN1cnNvckhhbmRHcmFiPSgwLHAuY2xy'@; put 'SWNvblNWRykoJzxwYXRoIGQ9Ik0yOC4wOSw5Ljc0YTQsNCwwLDAsMC0xLjE2LjE5Yy0uMTktMS4yNC0xLjU1LTIuMTgtMy4yNy0yLjE4QTQsNCwwLDAsMCwyMi4xMyw4LDMuMzcsMy4zNywwLDAsMCwxOSw2LjNhMy40NSwzLjQ1LDAsMCwwLTIuODcsMS4zMiwzLjY1LDMuNjUsMCwwLDAtMS44'@; put 'OS0uNTFBMy4wNSwzLjA1LDAsMCwwLDExLDkuODl2LjkxYy0xLjA2LjQtNC4xMSwxLjgtNC45MSw0Ljg0cy4zNCw4LDIuNjksMTEuNzhhMjUuMjEsMjUuMjEsMCwwLDAsNS45LDYuNDEuOS45LDAsMCwwLC41My4xN0gyNS41NWEuOTIuOTIsMCwwLDAsLjU1LS4xOSwxMy4xMywxMy4xMywwLDAs'@; put 'MCwzLjc1LTYuMTNBMjUuOCwyNS44LDAsMCwwLDMxLjQxLDE4di01LjVBMy4wOCwzLjA4LDAsMCwwLDI4LjA5LDkuNzRaTTI5LjYxLDE4YTI0LDI0LDAsMCwxLTEuNDcsOS4xNUExMi40NiwxMi40NiwwLDAsMSwyNS4yLDMyLjJIMTUuNDdhMjMuNzUsMjMuNzUsMCwwLDEtNS4yLTUuNzJjLTIu'@; put 'MzctMy44Ni0zLTguMjMtMi40OC0xMC4zOUE1LjcsNS43LDAsMCwxLDExLDEyLjc2djcuNjVhLjkuOSwwLDAsMCwxLjgsMFY5Ljg5YzAtLjQ3LjU5LTEsMS40Ni0xczEuNDkuNTIsMS40OSwxdjUuNzJoMS44VjguODFjMC0uMjguNTgtLjcxLDEuNDYtLjcxczEuNTMuNDgsMS41My43NXY2Ljg5'@; put 'aDEuOFYxMGwuMTctLjEyYTIuMSwyLjEsMCwwLDEsMS4xOC0uMzJjLjkzLDAsMS41LjQ0LDEuNS42OGwwLDYuNUgyN1YxMS44N2ExLjkxLDEuOTEsMCwwLDEsMS4xMi0uMzNjLjg2LDAsMS41Mi41MSwxLjUyLjk0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi'@; put 'IC8+JyksYi5DbHJTaGFwZUN1cnNvckhhbmRPcGVuPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMS40Niw4LjU3QTMuMTEsMy4xMSwwLDAsMCwyNyw1Ljc1YTMuMTksMy4xOSwwLDAsMC00LjY2LTIuNjQsMy4yOSwzLjI5LDAsMCwwLTYuNDItLjc2LDMuMjMsMy4yMywwLDAsMC0xLjY2'@; put 'LS40NkEzLjI3LDMuMjcsMCwwLDAsMTEsNS4xOFYxNy44NGMtMS4yOC0xLjYtMi41My0zLjE4LTIuNzItMy40NUEzLjE5LDMuMTksMCwwLDAsNS41NiwxMi45YTMuMzcsMy4zNywwLDAsMC0zLjQ3LDMuNDhDMi4xOCwxOC4xOCw1LjY2LDI0LjU0LDgsMjhjMy41NCw1LjI0LDYuOTIsNiw3LjA3'@; put 'LDZsLjE4LDBIMjUuNTlhLjkyLjkyLDAsMCwwLC41NS0uMTksMTMuMTMsMTMuMTMsMCwwLDAsMy43NS02LjEzYzEtMy4wOSwxLjUzLTcuNTMsMS41OC0xMy41NlpNMjguMTgsMjcuMTJhMTIuNDYsMTIuNDYsMCwwLDEtMi45NCw1LjA4SDE1LjMzYy0uNDctLjE0LTMuMDctMS4xLTUuODctNS4y'@; put 'NVMzLjk0LDE3LjI3LDMuODksMTYuMjlhMS41LDEuNSwwLDAsMSwuNDUtMS4xMywxLjUyLDEuNTIsMCwwLDEsMS4xNC0uNDYsMS40MywxLjQzLDAsMCwxLDEuMzIuNzFjLjI5LjQzLDIuMzYsMywzLjU3LDQuNTNMMTIuOCwxOC4zVjUuMThhMS40OCwxLjQ4LDAsMSwxLDIuOTUsMFYxNi4zMmgx'@; put 'Ljh2LTEzYTEuNTEsMS41MSwwLDAsMSwzLDBWMTYuNDVoMS44VjZhMS40MywxLjQzLDAsMSwxLDIuODUsMFYxNy40NEgyN1Y4LjU0YTEuMzMsMS4zMywwLDAsMSwyLjY1LDB2NS41NUMyOS42MiwyMCwyOS4xNCwyNC4yMSwyOC4xOCwyNy4xMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC0xIiAvPicpLGIuQ2xyU2hhcGVGaWxlWmlwPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMCwzMC4yVjEybC04LjEtNy45SDcuOEM2LjgsNC4xLDYsNC45LDYsNmMwLDAsMCwwLDAsMHYyNC4yYzAsMSwwLjcsMS44LDEuNywxLjhjMCwwLDAuMSwwLDAuMSwwaDIw'@; put 'LjNcblx0XHRjMSwwLDEuOC0wLjcsMS44LTEuN0MzMCwzMC4zLDMwLDMwLjIsMzAsMzAuMnogTTIyLDYuNmw1LjYsNS40SDIyVjYuNnogTTI4LDMwSDcuOUw4LDZoMTJ2OGg4VjMweiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTEyLDI0'@; put 'YzAsMS43LDEuMywzLDMsM3MzLTEuMywzLTN2LTRoLTZWMjR6IE0xMy40LDI0di0yLjZoMy4yVjI0YzAuMSwwLjktMC42LDEuNy0xLjUsMS43Yy0wLjksMC4xLTEuNy0wLjYtMS43LTEuNVxuXHRcdEMxMy40LDI0LjIsMTMuNCwyNC4xLDEzLjQsMjR6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTguMiw5YzAtMC42LTAuNC0xLTEtMUgxNXYyaDIuMkMxNy44LDEwLDE4LjIsOS42LDE4LjIsOXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0xMi43LDEwYy0wLjYsMC0xLDAu'@; put 'NC0xLDFzMC40LDEsMSwxSDE1di0ySDEyLjd6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMTcuMiwxNGMwLjYsMCwxLTAuNCwxLTFzLTAuNC0xLTEtMUgxNXYySDE3LjJ6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l'@; put 'LXBhdGgtNSIgLz48cGF0aCBkPSJNMTEuNywxNWMwLDAuNiwwLjQsMSwxLDFIMTV2LTJoLTIuM0MxMi4yLDE0LDExLjcsMTQuNCwxMS43LDE1eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+PHBhdGggZD0iTTE3LjIsMThjMC42LDAsMS0wLjQsMS0xcy0w'@; put 'LjQtMS0xLTFIMTV2MkgxNy4yeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+PHBhdGggZD0iTTE1LDI1LjZjMC45LDAsMS42LTAuNywxLjYtMS42di0yLjZoLTMuMlYyNEMxMy40LDI0LjksMTQuMSwyNS42LDE1LDI1LjZ6IiBjbGFzcz0iY2xyLWktc29s'@; put 'aWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMS45LDRINy44QzYuOCw0LDYsNC45LDYsNS45djI0LjJjMCwxLDAuOCwxLjksMS44LDEuOWgyMC4zYzEsMCwxLjgtMC45LDEuOC0xLjlWMTEuOUwyMS45LDR6IE0xOCwyNGMwLDEuNy0xLjMsMy0zLDNcblx0XHRzLTMtMS4zLTMt'@; put 'M3YtNGg2VjI0eiBNMTcuMiwxMmMwLjYsMCwxLDAuNCwxLDFzLTAuNCwxLTEsMUgxNXYyaDIuMmMwLjYsMCwxLDAuNCwxLDFzLTAuNCwxLTEsMUgxNXYtMmgtMi4yYy0wLjYsMC0xLTAuNC0xLTFcblx0XHRzMC40LTEsMS0xSDE1di0yaC0yLjJjLTAuNiwwLTEtMC40LTEtMXMwLjQtMSwxLTFI'@; put 'MTVWOGgyLjJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFIMTV2MkgxNy4yeiBNMjEuOSwxMlY2LjVsNS43LDUuNUgyMS45eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxiLkNsclNoYXBlRmlsdGVyT2ZmPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9'@; put 'Ik0zNCw2LjRDMzQsNS42LDMzLjMsNSwzMi41LDVIMTAuM2wyLDJIMzJ2MC42bC05LjYsOS42bDEuNCwxLjRMMzMuNCw5QzMzLjgsOC42LDM0LDguMSwzNCw3LjZWNi41QzM0LDYuNSwzNCw2LjQsMzQsNi40eiJcblx0XHQgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTEiIC8+PHBhdGggZD0iTTIuNywzbDIsMmgtMUMyLjksNC45LDIuMSw1LjUsMiw2LjN2MS4xYzAsMC41LDAuMiwxLDAuNiwxLjRMMTQsMjAuMnYxMC4zbDEuOSwwLjhWMTkuNEw0LDcuNVY3aDIuN0wyMCwyMC4zdjEyLjlsMiwwLjhcblx0XHRjMCwwLDAsMCwwLTAuMVYyMi4zbDEwLjEsMTAu'@; put 'MWwxLjQtMS40TDQuMSwxLjZMMi43LDN6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjMuOSwxOC42TDEwLjMsNS4xaDIyLjJDMzMuMyw1LDM0LDUuNiwzNCw2LjRjMCwwLDAsMCwwLDAuMXYxLjFjMCwwLjUtMC4yLDEtMC42LDEuNEwy'@; put 'My45LDE4LjZ6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMy41LDMxTDQuMSwxLjZMMi42LDNsMi4xLDIuMUgzLjVDMi43LDUsMiw1LjYsMiw2LjRjMCwwLDAsMCwwLDAuMXYxLjFjMCwwLjUsMC4yLDEsMC42LDEuNEwxNCwyMC41djEwLjFs'@; put 'OCwzLjRWMjIuNFxuXHRsMTAuMSwxMC4xTDMzLjUsMzF6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLGIuQ2xyU2hhcGVSZWN5Y2xlPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik02LjQsMTcuNGMwLjIsMC4xLDAuMywwLjEsMC41LDAuMWMwLjIsMCww'@; put 'LjQtMC4xLDAuNS0wLjFsNy00LjFjMC4zLTAuMiwwLjUtMC41LDAuNS0wLjljMC0wLjQtMC4yLTAuNy0wLjUtMC45TDExLjksMTBcblx0XHRMMTQsNi4yYzAuNC0wLjcsMS0xLjMsMS43LTEuN2MyLTEuMSw0LjUtMC4zLDUuNiwxLjdjMC4zLDAuNSwwLjksMC42LDEuNCwwLjNjMCwwLDAsMCww'@; put 'LjEsMGMwLjQtMC4zLDAuNS0wLjksMC4zLTEuM1xuXHRcdGMtMC42LTEtMS40LTEuOS0yLjQtMi40Yy0zLTEuNi02LjctMC42LTguMywyLjRMOS42LDkuOWMtMC4zLDAuNS0wLjEsMS4xLDAuMywxLjRsMiwxLjJsLTQsMi40VjguMmMwLTAuNi0wLjQtMS0xLTFcblx0XHRDNi40LDcuMyw2LDcu'@; put 'Nyw2LDguM3Y4LjNDNiwxNi45LDYuMiwxNy4yLDYuNCwxNy40eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMyLjEsMjFsLTMuNS02LjJjLTAuMS0wLjItMC40LTAuNC0wLjYtMC41Yy0wLjMtMC4xLTAuNSwwLTAuOCwwLjFsLTIuMiwx'@; put 'LjNWMTFsNS41LDMuM2MwLjEsMCwwLjEsMC4xLDAuMiwwLjFcblx0XHRjMC41LDAuMiwxLjEsMCwxLjMtMC41YzAuMi0wLjUsMC0xLjEtMC41LTEuM2wtNy00LjJjLTAuMy0wLjItMC43LTAuMi0xLDBDMjMuMSw4LjUsMjMsOC44LDIzLDkuMnY4LjNjMCwwLjQsMC4xLDAuOCwwLjQsMVxuXHRc'@; put 'dGMwLjMsMC4yLDAuNywwLjIsMSwwbDIuOS0xLjdsMyw1LjNjMC43LDEuMywwLjcsMi44LDAsNC4xYy0wLjYsMS4yLTEuOSwxLjktMy4yLDEuOWgtMC45Yy0wLjUsMC0xLjIsMC40LTEuMiwxXG5cdFx0YzAuMSwwLjYsMC42LDEsMS4yLDFoMC45YzIuMSwwLDQtMS4xLDUtMi45QzMzLjIsMjUu'@; put 'MiwzMy4yLDIyLjksMzIuMSwyMXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yMi40LDI4LjJsLTctNC4yYy0wLjMtMC4yLTAuNy0wLjItMSwwYy0wLjMsMC4yLTAuNCwwLjUtMC40LDAuOXYzLjNIOS4xYy0xLjUtMC4xLTIuOS0wLjkt'@; put 'My42LTIuM1xuXHRcdGMtMC44LTEuNC0wLjgtMy4yLDAtNC42YzAuMy0wLjUsMC4xLTEuMS0wLjQtMS40Yy0wLjUtMC4zLTEuMS0wLjEtMS40LDAuNGMtMS4yLDIuMS0xLjEsNC42LDAuMSw2LjZDNC45LDI4LjgsNywzMCw5LjIsMzBIMTVcblx0XHRjMC42LDAsMS0wLjQsMS0xdi0yLjRsNCwy'@; put 'LjRsLTUuNiwzLjNjLTAuMywwLjItMC41LDAuNS0wLjUsMC45YzAsMC42LDAuNSwxLDEsMWMwLjIsMCwwLjMtMC4xLDAuNS0wLjJsNy00LjJcblx0XHRjMC4yLTAuMSwwLjMtMC4yLDAuNC0wLjRDMjMuMSwyOSwyMi45LDI4LjQsMjIuNCwyOC4yeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy'@; put 'LWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTIwLjgsMy4xYy0zLTEuNi02LjctMC42LTguNCwyLjRsLTIuMiwzLjhsLTItMS4xQzguMiw4LDgsOCw3LjksOEM3LjQsOCw3LDguNCw3LDguOXY3LjJjMCwwLjMsMC4xLDAuNiwwLjQsMC44XG5cdFx0YzAuMSwwLjEsMC4zLDAuMSwwLjQs'@; put 'MC4xYzAuMiwwLDAuMywwLDAuNC0wLjFsNi4zLTMuNmMwLjMtMC4yLDAuNC0wLjQsMC40LTAuOGMwLTAuMy0wLjItMC42LTAuNC0wLjhMMTIsMTAuM2wyLjItMy44XG5cdFx0YzAuNC0wLjcsMS0xLjMsMS43LTEuN2MyLTEuMSw0LjUtMC4zLDUuNiwxLjdjMC4zLDAuNSwwLjksMC42LDEuNCww'@; put 'LjRjMC41LTAuMywwLjYtMC45LDAuNC0xLjRDMjIuNiw0LjUsMjEuOCwzLjYsMjAuOCwzLjF6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMi4yLDIxLjFsLTMtNS4zbDIuMy0xLjNjMC4zLTAuMiwwLjQtMC40LDAuNC0wLjhjMC0wLjMtMC4y'@; put 'LTAuNi0wLjQtMC44bC02LjItMy42Yy0wLjEtMC4xLTAuMy0wLjEtMC40LTAuMVxuXHRcdGMtMC41LDAtMC45LDAuNC0wLjksMC45djcuMmMwLDAuMywwLjIsMC42LDAuNCwwLjhjMC4xLDAuMSwwLjMsMC4xLDAuNCwwLjFjMC4yLDAsMC4zLTAuMSwwLjQtMC4xbDIuMi0xLjNsMyw1LjNcblx0'@; put 'XHRjMC43LDEuMiwwLjcsMi44LDAsNGMtMC43LDEuMi0xLjksMS45LTMuMiwxLjloLTAuOWMtMC42LDAtMSwwLjQtMSwxYzAsMC42LDAuNCwxLDEsMWgwLjljMi4xLDAsNC0xLjEsNS0zXG5cdFx0QzMzLjIsMjUuMywzMy4yLDIzLDMyLjIsMjEuMXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHIt'@; put 'aS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTIxLjcsMjguNGwtNi4yLTMuNmMtMC4xLTAuMS0wLjMtMC4xLTAuNC0wLjFjLTAuNSwwLTAuOSwwLjQtMC45LDAuOXYyLjZIOS4zYy0xLjUsMC0yLjktMC44LTMuNi0yLjFcblx0XHRjLTAuOC0xLjQtMC44LTMuMSwwLTQuNWMwLjMtMC41LDAu'@; put 'MS0xLjEtMC40LTEuNGMtMC41LTAuMy0xLjEtMC4xLTEuNCwwLjRjLTEuMiwyLTEuMiw0LjUsMCw2LjVjMS4xLDEuOSwzLjEsMy4xLDUuNCwzLjFoNC44djIuNlxuXHRcdGMwLDAuMywwLjIsMC42LDAuNCwwLjhjMC4xLDAuMSwwLjMsMC4xLDAuNCwwLjFjMC4xLDAsMC4zLDAsMC40LTAuMWw2'@; put 'LjMtMy42YzAuMy0wLjIsMC40LTAuNCwwLjQtMC44XG5cdFx0QzIyLjEsMjguOCwyMS45LDI4LjUsMjEuNywyOC40eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz4nKSxiLkNsclNoYXBlVHJlZT0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzAuNiwxMS43'@; put 'QzI5LjIsNS44LDI0LDEuNywxOCwxLjdjLTcuMiwwLTEzLDUuOC0xMywxM2MwLDYuOCw1LjMsMTIuNCwxMiwxMi45djVjMCwwLjYsMC40LDEsMSwxczEtMC40LDEtMXYtNXYtMlYyMlxuXHRjMCwwLDAsMCwwLTAuMXYtMy42bDQuNy00LjdjMC40LTAuNCwwLjQtMSwwLTEuNGMtMC40LTAuNC0x'@; put 'LTAuNC0xLjQsMEwxOSwxNS42di0zbC0zLjMtMy4zYy0wLjQtMC40LTEtMC40LTEuNCwwXG5cdGMtMC40LDAuNC0wLjQsMSwwLDEuNGwyLjcsMi43djYuMmwtMy44LTMuOGMtMC40LTAuNC0xLTAuNC0xLjQsMGMtMC40LDAuNC0wLjQsMSwwLDEuNGw1LjIsNS4ydjMuMmMtNS42LTAuNS0xMC01'@; put 'LjItMTAtMTAuOVxuXHRjMC02LjEsNC45LTExLDExLTExczExLDQuOSwxMSwxMWMwLDQuOS0zLjMsOS4yLTgsMTAuNnYyLjFDMjgsMjUuNywzMi4zLDE4LjcsMzAuNiwxMS43eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDJDMTAu'@; put 'OCwxLjcsNC44LDcuMyw0LjUsMTQuNUM0LjIsMjEuNyw5LjgsMjcuNywxNywyOHYtNS4ybC01LjItNS4yYy0wLjQtMC40LTAuNC0xLDAtMS40YzAuNC0wLjQsMS0wLjQsMS40LDBcblx0YzAsMCwwLDAsMCwwbDMuOCwzLjh2LTYuMmwtMi43LTIuN2MtMC40LTAuNC0wLjQtMSwwLTEuNGMwLjQt'@; put 'MC40LDEtMC40LDEuNCwwYzAsMCwwLDAsMCwwbDMuMywzLjN2M2wzLjMtMy4zYzAuNC0wLjQsMS0wLjQsMS40LDBcblx0YzAsMCwwLDAsMCwwYzAuNCwwLjQsMC40LDEsMCwxLjRMMTksMTguOFYyOGM3LjItMC4zLDEyLjgtNi4zLDEyLjUtMTMuNVMyNS4yLDEuNywxOCwyeiIgY2xhc3M9ImNs'@; put 'ci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMTgsMjhjLTAuMywwLTAuNiwwLTEsMHY1YzAsMC42LDAuNCwxLDEsMXMxLTAuNCwxLTF2LTVDMTguNywyOCwxOC4zLDI4LDE4LDI4eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxi'@; put 'LkNsclNoYXBlRmlzaD0oMCxwLmNsckljb25TVkcpKCc8Y2lyY2xlIGN4PSIxMS40OSIgY3k9IjE3LjUiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMzLjQ4LDkuMjlhMSwxLDAsMCwwLTEsMGMtMy4zNywyLTUuOTEsNS44'@; put 'MS02LjksNy40NUwyNC44NSwxOHMtMSwxLjYyLTEsMS42MmMtMS43NiwyLjQ5LTUuMSw2LjM2LTguNzksNi4zNi00LjY1LDAtOC43NS02LjE1LTkuODQtNy45NCwxLjA5LTEuNzksNS4xOC03Ljk0LDkuODQtNy45NCwzLjU0LDAsNi43NywzLjU4LDguNTgsNi4wN2wuMjgtLjQ4cy4zNi0uNTEu'@; put 'OTMtMS4yNUMyMi43MiwxMS42NCwxOS4xOCw4LjA2LDE1LDguMDZjLTYuNTksMC0xMS42Nyw5LjA3LTExLjg4LDkuNDZMMi44OSwxOGwuMjcuNDhjLjIxLjM5LDUuMjksOS40NiwxMS44OCw5LjQ2LDUuMDYsMCw5LjIyLTUuMzQsMTEtOEMyNiwyMCwyNy4xOCwxOCwyNy4xOCwxOGgwbC4wNy0u'@; put 'MTFhMTguMDYsMTguMDYsMCwwLDEsMS44OC0yLjc1czAsMCwwLDBhMjAuMzEsMjAuMzEsMCwwLDEsMi44Ni0zVjIzLjg4YTIwLjkzLDIwLjkzLDAsMCwxLTMuNjEtNGwtLjE2LjI2aDBsLTEsMS41OWExOC43NCwxOC43NCwwLDAsMCw1LjIxLDQuOTUsMSwxLDAsMCwwLC41LjE0LDEuMTMsMS4x'@; put 'MywwLDAsMCwuNS0uMTMsMSwxLDAsMCwwLC41LS44N1YxMC4xNkExLDEsMCwwLDAsMzMuNDgsOS4yOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLGIuQ2xyU2hhcGVGb3JtPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMSwxMkg3YTEsMSww'@; put 'LDAsMS0xLTFWN0ExLDEsMCwwLDEsNyw2SDIxYTEsMSwwLDAsMSwxLDF2NEExLDEsMCwwLDEsMjEsMTJaTTgsMTBIMjBWNy45NEg4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTIxLDE0LjA4SDdhMSwxLDAsMCwwLTEsMVYxOWExLDEs'@; put 'MCwwLDAsMSwxSDE4LjM2TDIyLDE2LjNWMTUuMDhBMSwxLDAsMCwwLDIxLDE0LjA4Wk0yMCwxOEg4VjE2SDIwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTExLjA2LDMxLjUxdi0uMDZsLjMyLTEuMzlINFY0aDIwVjE0LjI1TDI2LDEy'@; put 'LjM2VjNhMSwxLDAsMCwwLTEtMUgzQTEsMSwwLDAsMCwyLDNWMzFhMSwxLDAsMCwwLDEsMWg4QTMuNDQsMy40NCwwLDAsMSwxMS4wNiwzMS41MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yMiwxOS4xN2wtLjc4Ljc5QTEsMSwwLDAs'@; put 'MCwyMiwxOS4xN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik02LDI2Ljk0YTEsMSwwLDAsMCwxLDFoNC44NGwuMy0xLjMuMTMtLjU1LDAtLjA1SDhWMjRoNi4zNGwyLTJIN2ExLDEsMCwwLDAtMSwxWiIgY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTMzLjQ5LDE2LjY3LDMwLjEyLDEzLjNhMS42MSwxLjYxLDAsMCwwLTIuMjgsMGgwTDE0LjEzLDI3LjA5LDEzLDMxLjlhMS42MSwxLjYxLDAsMCwwLDEuMjYsMS45LDEuNTUsMS41NSwwLDAsMCwuMzEsMCwxLjE1LDEuMTUsMCww'@; put 'LDAsLjM3LDBsNC44NS0xLjA3TDMzLjQ5LDE5YTEuNiwxLjYsMCwwLDAsMC0yLjI3Wk0xOC43NywzMC45MWwtMy42Ni44MUwxNiwyOC4wOSwyNi4yOCwxNy43bDIuODIsMi44MlpNMzAuMjMsMTkuMzlsLTIuODItMi44MkwyOSwxNWwyLjg0LDIuODRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtNiIgLz4nKSxiLkNsclNoYXBlRnVlbD0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjAuMTIsMzRINS45QTIuODEsMi44MSwwLDAsMSwzLDMxLjE5VjQuODZBMi45LDIuOSwwLDAsMSw2LDIuMDdIMjAuMjJBMi43MiwyLjcyLDAsMCwxLDIzLDQuODZWMzEu'@; put 'MTlBMi44MiwyLjgyLDAsMCwxLDIwLjEyLDM0Wk01LjksNEEuODcuODcsMCwwLDAsNSw0Ljg2VjMxLjE5YS44Ny44NywwLDAsMCwuODcuODdIMjAuMTJhLjk0Ljk0LDAsMCwwLC45NS0uODdWNC44NkEuOTQuOTQsMCwwLDAsMjAuMTIsNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yOS41MywzNEEzLjUsMy41LDAsMCwxLDI2LDMwLjVWMjNhMiwyLDAsMCwwLTItMkgyMi41N2ExLDEsMCwwLDEsMC0ySDI0YTQsNCwwLDAsMSw0LDRWMzAuNWExLjUsMS41LDAsMCwwLDMsMFYxNy4zbC0zLjEzLTdBMi4yOSwyLjI5LDAsMCwwLDI1'@; put 'LjgsOWgtLjczYTEsMSwwLDEsMSwwLTJoLjczYTQuMyw0LjMsMCwwLDEsMy45MywyLjU1bDMuMjEsNy4xNmExLDEsMCwwLDEsLjA5LjQxVjMwLjVBMy41LDMuNSwwLDAsMSwyOS41MywzNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0x'@; put 'OCw5SDhBMSwxLDAsMSwxLDgsN0gxOGExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTE4LDEzSDhBMSwxLDAsMSwxLDgsMTFIMThBMSwxLDAsMSwxLDE4LDEzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTI1LDEyLjA4YTEsMSwwLDAsMS0xLTF2LTZhMSwxLDAsMCwxLDIsMHY2QTEsMSwwLDAsMSwyNSwxMi4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPicpLGIuQ2xyU2hhcGVTbm93Zmxha2U9KDAscC5j'@; put 'bHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LjA1LDMzLjYxYTEsMSwwLDAsMS0xLTFWMy4zN2ExLDEsMCwxLDEsMS45NSwwVjMyLjYzQTEsMSwwLDAsMSwxOC4wNSwzMy42MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xOC4wNiwxMC4w'@; put 'NywxNC41Miw2LjU0YTEsMSwwLDAsMSwwLTEuNDEsMSwxLDAsMCwxLDEuNDEsMGwyLjEzLDIuMTIsMi4xMi0yLjEyYTEsMSwwLDAsMSwxLjQxLDAsMSwxLDAsMCwxLDAsMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yMC44NSwz'@; put 'MS4xN2ExLDEsMCwwLDEtLjctLjI5TDE4LDI4Ljc2LDE1LjksMzAuODhhMSwxLDAsMCwxLTEuNDEsMCwxLDEsMCwwLDEsMC0xLjQyTDE4LDI1LjkzbDMuNTQsMy41M2ExLDEsMCwwLDEsMCwxLjQyQTEsMSwwLDAsMSwyMC44NSwzMS4xN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMC45MiwyNi41YTEsMSwwLDAsMS0uNS0uMTNsLTI2LTE1QTEsMSwwLDAsMSw0LjA3LDEwYTEsMSwwLDAsMSwxLjM3LS4zNmwyNiwxNWExLDEsMCwwLDEtLjUsMS44N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00'@; put 'IiAvPjxwYXRoIGQ9Ik02LDE1LjM3YTEsMSwwLDAsMS0uMjYtMmwyLjktLjc4TDcuODQsOS43M2ExLDEsMCwxLDEsMS45My0uNTJMMTEuMDcsMTQsNi4yNCwxNS4zM0EuODIuODIsMCwwLDEsNiwxNS4zN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxw'@; put 'YXRoIGQ9Ik0yNy4wNSwyNy41NGExLDEsMCwwLDEtMS0uNzVMMjQuOCwyMmw0LjgyLTEuM2ExLDEsMCwxLDEsLjUyLDEuOTNsLTIuOS43OC43OCwyLjlhMSwxLDAsMCwxLS43MSwxLjIyQS43NS43NSwwLDAsMSwyNy4wNSwyNy41NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik00Ljk0LDI2LjVhMSwxLDAsMCwxLS41LTEuODdsMjYtMTVhMSwxLDAsMCwxLDEuMzYuMzYsMSwxLDAsMCwxLS4zNiwxLjM3bC0yNiwxNUExLDEsMCwwLDEsNC45NCwyNi41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTci'@; put 'IC8+PHBhdGggZD0iTTguODEsMjcuNTRhLjc1Ljc1LDAsMCwxLS4yNiwwLDEsMSwwLDAsMS0uNzEtMS4yMmwuNzgtMi45LTIuOS0uNzhBMSwxLDAsMCwxLDUsMjEuMzhhMSwxLDAsMCwxLDEuMjMtLjcxTDExLjA3LDIybC0xLjMsNC44MkExLDEsMCwwLDEsOC44MSwyNy41NFoiIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiAvPjxwYXRoIGQ9Ik0yOS44OCwxNS4zN2EuODIuODIsMCwwLDEtLjI2LDBMMjQuOCwxNGwxLjI5LTQuODNBMSwxLDAsMSwxLDI4LDkuNzNsLS43OCwyLjg5LDIuOS43OGExLDEsMCwwLDEtLjI2LDJaIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgLz4nKSxiLkNsclNoYXBlVGFibGU9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTgsMzRhMSwxLDAsMCwxLTEtMVYyLjkyYTEsMSwwLDAsMSwyLDBWMzNBMSwxLDAsMCwxLDgsMzRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTcsMzMuOTJhMSwxLDAsMCwxLTEtMVY5LjFhMSwxLDAsMSwxLDIsMFYzMi45MkExLDEsMCwwLDEsMTcsMzMuOTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjYsMzRhMSwxLDAsMCwxLTEt'@; put 'MVY5YTEsMSwwLDAsMSwyLDBWMzNBMSwxLDAsMCwxLDI2LDM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMzLjExLDE4aC0yNWExLDEsMCwxLDEsMC0yaDI1YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMzMuMSwyNi45NEg4LjFBMSwxLDAsMSwxLDguMSwyNWgyNWExLDEsMCwxLDEsMCwxLjkyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTMzLDguOTJIM0ExLDEsMCwxLDEsMyw3SDMz'@; put 'YTEsMSwwLDEsMSwwLDEuOTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz4nKSxiLkNsclNoYXBlVm9sdW1lPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNS44OCwzMkgxMmE0LDQsMCwwLDEtNC00VjExLjQ2TDIuMzEsNS43N2ExLDEsMCwwLDEt'@; put 'LjIyLTEuMDlBMSwxLDAsMCwxLDMsNC4wNkgyOC44NmExLDEsMCwwLDEsMSwxVjI4QTQsNCwwLDAsMSwyNS44OCwzMlpNNS40Myw2bDQuMjgsNC4zNGEuNzUuNzUsMCwwLDEsLjIxLjYzdjE3QTIuMTMsMi4xMywwLDAsMCwxMiwzMEgyNS44OEEyLjEsMi4xLDAsMCwwLDI4LDI4VjZaIiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzMsMTZhMSwxLDAsMCwxLTEtMVY2SDI4Ljg2YS45Mi45MiwwLDAsMS0xLS45LDEsMSwwLDAsMSwxLTFIMzNhMSwxLDAsMCwxLDEsMVYxNUExLDEsMCwwLDEsMzMsMTZaIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjQsMTFIMThhMSwxLDAsMSwxLDAtMkgyNGExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTI0LDE1SDIxYTEsMSwwLDEsMSwwLTJIMjRhMSwx'@; put 'LDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0yNCwxOUgxOGExLDEsMCwxLDEsMC0ySDI0YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJN'@; put 'MjQsMjdIMThhMSwxLDAsMSwxLDAtMkgyNGExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+PHBhdGggZD0iTTI0LDIzSDIxQTEsMSwwLDEsMSwyMSwyMUgyNEExLDEsMCwxLDEsMjQsMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtNyIgLz4nKSxiLkNsclNoYXBlQ3Jvc3NoYWlycz0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMjlBMTEsMTEsMCwxLDEsMjksMTgsMTEsMTEsMCwwLDEsMTgsMjlaTTE4LDlhOSw5LDAsMSwwLDksOUE5LDksMCwwLDAsMTgsOVoiIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xOCwyM2E1LDUsMCwxLDEsNS01QTUsNSwwLDAsMSwxOCwyM1ptMC04YTMsMywwLDEsMCwzLDNBMywzLDAsMCwwLDE4LDE1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBh'@; put 'dGggZD0iTTE4LDlhMSwxLDAsMCwxLTEtMVYyLjhhMSwxLDAsMCwxLDIsMFY4QTEsMSwwLDAsMSwxOCw5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTE4LDM0YTEsMSwwLDAsMS0xLTFWMjhhMSwxLDAsMCwxLDIsMHY1QTEsMSwwLDAs'@; put 'MSwxOCwzNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik04LDE5SDMuMTdhMSwxLDAsMCwxLDAtMkg4YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzMu'@; put 'MSwxOUgyOGExLDEsMCwwLDEsMC0yaDUuMWExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+JyksYi5DbHJTaGFwZUNpcmNsZT0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgsMTYsMTYs'@; put 'MCwwLDEsMTgsMzRaTTE4LDRBMTQsMTQsMCwxLDAsMzIsMTgsMTQsMTQsMCwwLDAsMTgsNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xOCwzNEExNiwxNiwwLDEsMSwzNCwxOCwxNiwxNiwwLDAsMSwxOCwzNFoiIGNsYXNzPSJjbHIt'@; put 'aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksYi5DbHJTaGFwZURvdENpcmNsZT0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMTFhNyw3LDAsMSwxLTcsNyw3LDcsMCwwLDEsNy03IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0'@; put 'aCBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgsMTYsMTYsMCwwLDEsMTgsMzRaTTE4LDRBMTQsMTQsMCwxLDAsMzIsMTgsMTQsMTQsMCwwLDAsMTgsNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLGIuQ2xyU2hhcGVCZXRhPSgwLHAuY2xySWNv'@; put 'blNWRykoJzxwYXRoIGQ9Ik03LjIxLDE0LjA3aDNhMS42MSwxLjYxLDAsMCwxLDEuODEsMS41LDEuNDQsMS40NCwwLDAsMS0uODQsMS4zNCwxLjY3LDEuNjcsMCwwLDEsMS4xLDEuNTMsMS43NSwxLjc1LDAsMCwxLTIsMS42M0g3LjIxWm0yLjcxLDIuNDJjLjQ4LDAsLjgyLS4yOC44Mi0uNjdz'@; put 'LS4zNC0uNjUtLjgyLS42NUg4LjQ5djEuMzJabS4yLDIuNDhhLjc1Ljc1LDAsMSwwLDAtMS40N0g4LjQ5VjE5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTE0LjU1LDE1LjIzdjEuMmgzdjEuMTZoLTN2MS4zMmgzLjMzdjEuMTZI'@; put 'MTMuMjZ2LTZoNC42MnYxLjE2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTIwLjQxLDE1LjIzSDE4LjU0VjE0LjA3aDV2MS4xNkgyMS43djQuODRIMjAuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtMyIvPlxuICA8cGF0aCBkPSJNMjgsMTkuMTJIMjUuMzJsLS4zOC45NUgyMy41bDIuNDQtNmgxLjQ0bDIuNDUsNkgyOC4zOFpNMjcuNTUsMThsLS44OS0yLjE5TDI1Ljc3LDE4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgPHBhdGggZD0iTTgu'@; put 'MDYsMzBhLjg0Ljg0LDAsMCwxLS4zOC0uMDhBMSwxLDAsMCwxLDcuMDYsMjlWMjVoLTRhMSwxLDAsMCwxLTEtMVYxMGExLDEsMCwwLDEsMS0xaDMwYTEsMSwwLDAsMSwxLDFWMjRhMSwxLDAsMCwxLTEsMUgxMy40OEw4Ljc3LDI5LjcxQTEsMSwwLDAsMSw4LjA2LDMwWm0tNC03aDRhMSwxLDAs'@; put 'MCwxLDEsMXYyLjU5bDMuMy0zLjNhMSwxLDAsMCwxLC43LS4yOWgxOVYxMWgtMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPlxuXG4gIDxwb2x5Z29uIHBvaW50cz0iMjUuOCwxOCAyNy41LDE4IDI2LjcsMTUuOCIgY2xhc3M9ImNsci1pLXNvbGlkIGNs'@; put 'ci1pLXNvbGlkLXBhdGgtMSIvPlxuXHQ8cGF0aCBkPSJNMTAuNCwxNy41Yy0wLjEsMC0wLjIsMC0wLjMsMEg4LjVWMTlsMS42LDBjMC40LDAuMSwwLjgtMC4yLDAuOS0wLjZDMTEuMSwxOCwxMC44LDE3LjYsMTAuNCwxNy41eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgt'@; put 'MiIvPlxuXHQ8cGF0aCBkPSJNMTAuNywxNS44YzAtMC40LTAuMy0wLjctMC44LTAuN0g4LjV2MS4zaDEuNEMxMC40LDE2LjUsMTAuNywxNi4yLDEwLjcsMTUuOHoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cblx0PHBhdGggZD0iTTMzLjEsOWgtMzBjLTAuNiww'@; put 'LTEsMC40LTEsMXYxNGMwLDAuNiwwLjQsMSwxLDFoNHY0YzAsMC40LDAuMiwwLjgsMC42LDAuOUM3LjgsMzAsNy45LDMwLDguMSwzMGMwLjMsMCwwLjUtMC4xLDAuNy0wLjNcblx0XHRsNC43LTQuN2gxOS42YzAuNiwwLDEtMC40LDEtMVYxMEMzNC4xLDkuNCwzMy42LDksMzMuMSw5eiBNMTAu'@; put 'NCwyMC4xYy0wLjEsMC0wLjEsMC0wLjIsMEg3LjJ2LTZoM2MwLjktMC4xLDEuNywwLjUsMS44LDEuNFxuXHRcdGMwLDAsMCwwLjEsMCwwLjFjMCwwLjYtMC4zLDEuMS0wLjgsMS4zYzAuNiwwLjIsMS4xLDAuOCwxLjEsMS41QzEyLjIsMTkuNCwxMS40LDIwLjEsMTAuNCwyMC4xeiBNMTcuOSwx'@; put 'NS4yaC0zLjN2MS4yaDN2MS4yaC0zdjEuM1xuXHRcdGgzLjN2MS4yaC00LjZ2LTZoNC42VjE1LjJ6IE0yMS43LDIwLjFoLTEuM3YtNC44aC0xLjl2LTEuMmg1djEuMmgtMS44VjIwLjF6IE0yOC40LDIwLjFsLTAuNC0xaC0yLjdsLTAuNCwxaC0xLjRsMi40LTZoMS40bDIuNSw2XG5cdFx0SDI4'@; put 'LjR6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00Ii8+XG4nKSxiLkNsclNoYXBlRmlyc3RBaWQ9KDAscC5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGQ9Ik0zMiw2SDIzLjkxVjQuNUEyLjUsMi41LDAsMCwwLDIxLjQxLDJoLTdhMi41LDIuNSwwLDAsMC0yLjUsMi41VjZI'@; put 'NEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk0xMy45MSw0LjVhLjUuNSwwLDAsMSwuNS0uNWg3YS41LjUsMCwwLDEsLjUuNVY2aC04Wk00LDI4VjhIMzJWMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMjAuMTUsMjUuMkgxNi43NGExLjMsMS4zLDAsMCwxLTEuMy0xLjNWMjEuMmgtMi43YTEuMywxLjMsMCwwLDEtMS4zLTEuM1YxNi41YTEuMywxLjMsMCwwLDEsMS4zLTEuM2gyLjdWMTIuNWExLjMsMS4zLDAsMCwxLDEuMy0xLjNoMy40MWExLjMs'@; put 'MS4zLDAsMCwxLDEuMjksMS4zdjIuN2gyLjcxYTEuMywxLjMsMCwwLDEsMS4yOSwxLjN2My40YTEuMywxLjMsMCwwLDEtMS4yOSwxLjNIMjEuNDR2Mi43QTEuMywxLjMsMCwwLDEsMjAuMTUsMjUuMlpNMTcsMjMuNmgyLjgxdi00aDRWMTYuOGgtNHYtNEgxN3Y0SDEzdjIuOGg0Wm03LjExLTYu'@; put 'OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG5cbiAgPHBhdGggZD0iTTMyLDZIMjMuOTFWNC41QTIuNSwyLjUsMCwwLDAsMjEuNDEsMmgtN2EyLjUsMi41LDAsMCwwLTIuNSwyLjVWNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEy'@; put 'LDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTEzLjkxLDQuNWEuNS41LDAsMCwxLC41LS41aDdhLjUuNSwwLDAsMSwuNS41VjZoLThaTTI0LjY0LDE5LjlhLjUuNSwwLDAsMS0uNS41aC0zLjV2My41YS41LjUsMCwwLDEtLjUuNWgtMy40YS41LjUsMCwwLDEtLjUtLjVWMjAuNGgtMy41'@; put 'YS41LjUsMCwwLDEtLjUtLjVWMTYuNWEuNS41LDAsMCwxLC41LS41aDMuNVYxMi41YS41LjUsMCwwLDEsLjUtLjVoMy40YS41LjUsMCwwLDEsLjUuNVYxNmgzLjVhLjUuNSwwLDAsMSwuNS41WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAnKSxiLkNsclNo'@; put 'YXBlQ29sb3JQYWxldHRlPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMS41NCwyMy4wNWEzLjIyLDMuMjIsMCwwLDEtMy0xLjc3QTMuMDUsMy4wNSwwLDAsMSwxOC41LDE5YTMuNzQsMy43NCwwLDAsMSwxLjk1LTIuMDZBMy40LDMuNCwwLDAsMSwyNSwxOC4zYTMsMywwLDAsMSwuMDgs'@; put 'Mi4zMiwzLjY5LDMuNjksMCwwLDEtMiwyLjA3QTMuODUsMy44NSwwLDAsMSwyMS41NCwyMy4wNVptLjU0LTQuOTFhMi40MSwyLjQxLDAsMCwwLTEsLjIxaDBBMi4xMywyLjEzLDAsMCwwLDIwLDE5LjUxYTEuMzcsMS4zNywwLDAsMCwwLDEuMDksMS44MSwxLjgxLDAsMCwwLDIuNDUuNjMsMi4x'@; put 'LDIuMSwwLDAsMCwxLjEyLTEuMTUsMS40LDEuNCwwLDAsMCwwLTEuMUExLjU5LDEuNTksMCwwLDAsMjIuMDgsMTguMTRabS0xLjI5LS41MmgwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTE2LjE5LDMzLjg3QTEzLjcyLDEzLjcy'@; put 'LDAsMCwxLDYuNCwzMCwxMy44NiwxMy44NiwwLDAsMSwyLDIwYzAtNC40LDItOC44NCw1LjY4LTEyLjVhMTguMiwxOC4yLDAsMCwxLDEzLjEtNS4zN2guMTJjMy4zMywwLDYuODUsMS40OSw3LjI0LDQuNzMuMjEsMS43Ny0uNTksMy40Ny0xLjI5LDUtLjU1LDEuMTctMS4xMSwyLjM5LS43Miwy'@; put 'LjgxczEsLjEyLDIuMDktLjJhNi4yNyw2LjI3LDAsMCwxLDMuMzgtLjM2LDMsMywwLDAsMSwxLjg3LDEuNTZjLjk0LDEuODMuNDcsNC42Ny0uMjMsNi41NGgwQTE3LjM4LDE3LjM4LDAsMCwxLDI5LDI4Ljc0LDE5LjQzLDE5LjQzLDAsMCwxLDE2LjE5LDMzLjg3Wk0yMC43OCw0LjE2QTE2LjIy'@; put 'LDE2LjIyLDAsMCwwLDkuMDksOUM1Ljc5LDEyLjIzLDQsMTYuMTYsNCwyMEExMS45MiwxMS45MiwwLDAsMCw3LjgsMjguNmM1LjM4LDUuMjUsMTQuNjIsMy41NSwxOS44Ny0xLjMzYTE1LjUyLDE1LjUyLDAsMCwwLDMuNy01Ljc1aDBjLjctMS45Ljg0LTMuOTIuMzItNC45MmExLDEsMCwwLDAt'@; put 'LjYxLS41NSw0Ljg2LDQuODYsMCwwLDAtMi4yOS4zNWMtMS4zMS4zOS0zLC44OS00LjEyLS4zNS0xLjMyLTEuNC0uNDYtMy4yNS4zNy01YTcuOTMsNy45MywwLDAsMCwxLjExLTMuOWMtLjI0LTItMi44MS0yLjk1LTUuMjYtM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0yMy44NywyNi42NUEyLjU5LDIuNTksMCwwLDAsMjIuMzUsMjVMMjIsMjQuOWwtLjQ2LDEuNTMuMTYsMGExLDEsMCwwLDEsLjYuNjFjLjE3LjYtLjQxLDEuMzEtMS4yNiwxLjU1cy0xLjcxLS4wNy0xLjg4LS42NmwtMS41NC40M2gwYTIuODMsMi44Myww'@; put 'LDAsMCwyLjg0LDEuOTEsNCw0LDAsMCwwLDEtLjE0QTMsMywwLDAsMCwyMy44NywyNi42NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik0xNS4wNywyNS41OWgwYTIuNzMsMi43MywwLDAsMC0yLjI0LTEuODRsLS4yNywxLjU4YTEu'@; put 'MTIsMS4xMiwwLDAsMSwxLC43Yy4xNy41OS0uNDEsMS4zLTEuMjYsMS41NEExLjkyLDEuOTIsMCwwLDEsMTEsMjcuNTJhMSwxLDAsMCwxLS42LS42MXMwLS4wOSwwLS4xM2wtMS41OC4xNmEyLDIsMCwwLDAsLjA2LjQxQTIuNTksMi41OSwwLDAsMCwxMC4zNywyOWEzLjM2LDMuMzYsMCwwLDAs'@; put 'MS4zMS4yNSwzLjcsMy43LDAsMCwwLDEtLjE0QTMsMywwLDAsMCwxNS4wNywyNS41OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0xMC43OCwxOS4xN2EyLjU5LDIuNTksMCwwLDAtMS41Mi0xLjY1LDIuOTEsMi45MSwwLDAsMC0u'@; put 'NS0uMTZsLS4zNywxLjU2YTEuMjEsMS4yMSwwLDAsMSwuMjUuMDgsMSwxLDAsMCwxLC42LjZjLjE3LjYtLjQxLDEuMzEtMS4yNiwxLjU1cy0xLjcxLS4wNi0xLjg4LS42NmEuODYuODYsMCwwLDEsMC0uMzlsLTEuNTYtLjM0YTIuNCwyLjQsMCwwLDAsMCwxLjE2QTIuODMsMi44MywwLDAsMCw3'@; put 'LjQsMjIuODNhNCw0LDAsMCwwLDEtLjE0QTMsMywwLDAsMCwxMC43OCwxOS4xN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gIDxwYXRoIGQ9Ik0xMy40NSwxMS40YTIuNTksMi41OSwwLDAsMC0xLjUyLTEuNjUsMS4xNywxLjE3LDAsMCwwLS4yLS4w'@; put 'NmwtLjUyLDEuNTFhLjM4LjM4LDAsMCwxLC4xLDAsMSwxLDAsMCwxLC42LjZjLjE3LjYtLjQxLDEuMzEtMS4yNiwxLjU1YTIuMDYsMi4wNiwwLDAsMS0xLjI4LS4wNSwxLDEsMCwwLDEtLjYtLjYxLjg1Ljg1LDAsMCwxLDAtLjMybC0xLjU4LS4xOWEyLjMsMi4zLDAsMCwwLC4wNi45NEEyLjU2'@; put 'LDIuNTYsMCwwLDAsOC43NSwxNC44YTMuMzcsMy4zNywwLDAsMCwxLjMxLjI2LDQsNCwwLDAsMCwxLS4xNEEzLDMsMCwwLDAsMTMuNDUsMTEuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02Ii8+XG4gIDxwYXRoIGQ9Ik0yMSw2Ljc4YTIuNTYsMi41NiwwLDAs'@; put 'MC0xLjUyLTEuNjVsLS4zLS4xTDE4LjcsNi41NmwuMTUsMGExLDEsMCwwLDEsLjYuNjFjLjE3LjYtLjQxLDEuMy0xLjI2LDEuNTRzLTEuNzEtLjA2LTEuODgtLjY1YS45LjksMCwwLDEsLjA2LS41OEwxNC44OSw2LjlhMi40NywyLjQ3LDAsMCwwLS4xMiwxLjYzLDIuODQsMi44NCwwLDAsMCwy'@; put 'Ljg0LDEuOTEsMy41OCwzLjU4LDAsMCwwLDEtLjE1QTMsMywwLDAsMCwyMSw2Ljc4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciLz5cblxuICA8cGF0aCBkPSJNMzIuMjMsMTQuODljLTIuMS0uNTYtNC45MywxLjgtNi4zNC4zLTEuNzEtMS44MiwyLjI3LTUu'@; put 'NTMsMS44Ni04LjkyLS4zMy0yLjc4LTMuNTEtNC4wOC02LjY2LTQuMUExOC41LDE4LjUsMCwwLDAsNy43NCw3LjU5Yy02LjY0LDYuNTktOC4wNywxNi0xLjM3LDIyLjQ4LDYuMjEsNiwxNi42MSw0LjIzLDIyLjY3LTEuNGExNy43MywxNy43MywwLDAsMCw0LjIyLTYuNTRDMzQuMzQsMTkuMjMs'@; put 'MzQuNDQsMTUuNDksMzIuMjMsMTQuODlaTTkuNCwxMC41N2EyLjIzLDIuMjMsMCwwLDEsMi44NywxLjIxLDIuMjIsMi4yMiwwLDAsMS0xLjgxLDIuNTNBMi4yMiwyLjIyLDAsMCwxLDcuNTksMTMuMSwyLjIzLDIuMjMsMCwwLDEsOS40LDEwLjU3Wk01LjA3LDIwLjgyYTIuMjIsMi4yMiwwLDAs'@; put 'MSwxLjgyLTIuNTNBMi4yMiwyLjIyLDAsMCwxLDkuNzUsMTkuNSwyLjIzLDIuMjMsMCwwLDEsNy45NCwyMiwyLjI0LDIuMjQsMCwwLDEsNS4wNywyMC44MlptNyw4LjMzYTIuMjIsMi4yMiwwLDAsMS0yLjg3LTEuMjFBMi4yMywyLjIzLDAsMCwxLDExLDI1LjQxYTIuMjMsMi4yMywwLDAsMSwy'@; put 'Ljg3LDEuMjFBMi4yMiwyLjIyLDAsMCwxLDEyLDI5LjE1Wk0xNSw4LjI2YTIuMjMsMi4yMywwLDAsMSwxLjgxLTIuNTMsMi4yNCwyLjI0LDAsMCwxLDIuODcsMS4yMSwyLjIyLDIuMjIsMCwwLDEtMS44MiwyLjUzQTIuMjEsMi4yMSwwLDAsMSwxNSw4LjI2Wm01LjgyLDIyLjE5YTIuMjIsMi4y'@; put 'MiwwLDAsMS0yLjg3LTEuMjEsMi4yMywyLjIzLDAsMCwxLDEuODEtMi41MywyLjI0LDIuMjQsMCwwLDEsMi44NywxLjIxQTIuMjIsMi4yMiwwLDAsMSwyMC43OCwzMC40NVptNS0xMC40NmEzLjIsMy4yLDAsMCwxLTEuNjksMS43NiwzLjUzLDMuNTMsMCwwLDEtMS40LjMsMi43OCwyLjc4LDAs'@; put 'MCwxLTIuNTYtMS41LDIuNDksMi40OSwwLDAsMS0uMDctMiwzLjIsMy4yLDAsMCwxLDEuNjktMS43NiwzLDMsMCwwLDEsNCwxLjJBMi41NCwyLjU0LDAsMCwxLDI1Ljc5LDIwWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPicpLGIuRXNzZW50aWFsU2hhcGVzPXsi'@; put 'YWRkLXRleHQiOmIuQ2xyU2hhcGVBZGRUZXh0LCJhbGFybS1vZmYiOmIuQ2xyU2hhcGVBbGFybU9mZixwaW5ib2FyZDpiLkNsclNoYXBlUGluYm9hcmQsbmV3OmIuQ2xyU2hhcGVOZXcsImJ1YmJsZS1leGNsYW1hdGlvbiI6Yi5DbHJTaGFwZUJ1YmJsZUV4Y2xhbWF0aW9uLCJncmlkLXZpZXci'@; put 'OmIuQ2xyU2hhcGVHcmlkVmlldywiY3Vyc29yLWFycm93IjpiLkNsclNoYXBlQ3Vyc29yQXJyb3csImN1cnNvci1oYW5kIjpiLkNsclNoYXBlQ3Vyc29ySGFuZCwiY3Vyc29yLWhhbmQtY2xpY2siOmIuQ2xyU2hhcGVDdXJzb3JIYW5kQ2xpY2ssImN1cnNvci1oYW5kLWdyYWIiOmIuQ2xyU2hh'@; put 'cGVDdXJzb3JIYW5kR3JhYiwiY3Vyc29yLWhhbmQtb3BlbiI6Yi5DbHJTaGFwZUN1cnNvckhhbmRPcGVuLCJjdXJzb3ItbW92ZSI6Yi5DbHJTaGFwZUN1cnNvck1vdmUsImZpcnN0LWFpZCI6Yi5DbHJTaGFwZUZpcnN0QWlkLHJlc2l6ZTpiLkNsclNoYXBlUmVzaXplLG9iamVjdHM6Yi5DbHJT'@; put 'aGFwZU9iamVjdHMsYm9vazpiLkNsclNoYXBlQm9vayxhc3RlcmlzazpiLkNsclNoYXBlQXN0ZXJpc2ssYnVnOmIuQ2xyU2hhcGVCdWcsc2Npc3NvcnM6Yi5DbHJTaGFwZVNjaXNzb3JzLHRoZXJtb21ldGVyOmIuQ2xyU2hhcGVUaGVybW9tZXRlcixwZW5jaWw6Yi5DbHJTaGFwZVBlbmNpbCxu'@; put 'b3RlOmIuQ2xyU2hhcGVOb3RlLHJlZnJlc2g6Yi5DbHJTaGFwZVJlZnJlc2gsc3luYzpiLkNsclNoYXBlU3luYywidmlldy1saXN0IjpiLkNsclNoYXBlVmlld0xpc3QsInZpZXctY2FyZHMiOmIuQ2xyU2hhcGVWaWV3Q2FyZHMsInRyZWUtdmlldyI6Yi5DbHJTaGFwZVRyZWVWaWV3LGxpZ2h0'@; put 'YnVsYjpiLkNsclNoYXBlTGlnaHRidWxiLGRvd25sb2FkOmIuQ2xyU2hhcGVEb3dubG9hZCx1cGxvYWQ6Yi5DbHJTaGFwZVVwbG9hZCxsb2NrOmIuQ2xyU2hhcGVMb2NrLHVubG9jazpiLkNsclNoYXBlVW5sb2NrLHVzZXJzOmIuQ2xyU2hhcGVVc2VycywicG9wLW91dCI6Yi5DbHJTaGFwZVBv'@; put 'cE91dCxmaWx0ZXI6Yi5DbHJTaGFwZUZpbHRlcixwaW46Yi5DbHJTaGFwZVBpbixmaWxlOmIuQ2xyU2hhcGVGaWxlLHBsdXM6Yi5DbHJTaGFwZVBsdXMsbWludXM6Yi5DbHJTaGFwZU1pbnVzLCJtaW51cy1jaXJjbGUiOmIuQ2xyU2hhcGVNaW51c0NpcmNsZSwicGx1cy1jaXJjbGUiOmIuQ2xy'@; put 'U2hhcGVQbHVzQ2lyY2xlLGJhbjpiLkNsclNoYXBlQmFuLCJ0aW1lcy1jaXJjbGUiOmIuQ2xyU2hhcGVUaW1lc0NpcmNsZSx0cmFzaDpiLkNsclNoYXBlVHJhc2gsY2lyY2xlOmIuQ2xyU2hhcGVDaXJjbGUsdGFnOmIuQ2xyU2hhcGVUYWcsdGFnczpiLkNsclNoYXBlVGFncyxoaXN0b3J5OmIu'@; put 'Q2xyU2hhcGVIaXN0b3J5LGNsb2NrOmIuQ2xyU2hhcGVDbG9jaywiYWxhcm0tY2xvY2siOmIuQ2xyU2hhcGVBbGFybUNsb2NrLGFycm93Ok4uQ2xyU2hhcGVBcnJvdywiY2lyY2xlLWFycm93IjpiLkNsclNoYXBlQ2lyY2xlQXJyb3csImNoaWxkLWFycm93IjpiLkNsclNoYXBlQ2hpbGRBcnJv'@; put 'dyxjb3B5OmIuQ2xyU2hhcGVDb3B5LGhlbHA6Yi5DbHJTaGFwZUhlbHAsbG9naW46Yi5DbHJTaGFwZUxvZ2luLGxvZ291dDpiLkNsclNoYXBlTG9nb3V0LHByaW50ZXI6Yi5DbHJTaGFwZVByaW50ZXIsd29ybGQ6Yi5DbHJTaGFwZVdvcmxkLHNsaWRlcjpiLkNsclNoYXBlU2xpZGVyLGNsaXBi'@; put 'b2FyZDpiLkNsclNoYXBlQ2xpcGJvYXJkLGZpcmV3YWxsOmIuQ2xyU2hhcGVGaXJld2FsbCxsaXN0OmIuQ2xyU2hhcGVMaXN0LHJlZG86Yi5DbHJTaGFwZVJlZG8sdW5kbzpiLkNsclNoYXBlVW5kbyxzY3JvbGw6Yi5DbHJTaGFwZVNjcm9sbCwiZmlsZS1zZXR0aW5ncyI6Yi5DbHJTaGFwZUZp'@; put 'bGVTZXR0aW5ncywidHdvLXdheS1hcnJvd3MiOmIuQ2xyU2hhcGVUd29XYXlBcnJvd3Msc3dpdGNoOmIuQ2xyU2hhcGVTd2l0Y2gsdG9vbHM6Yi5DbHJTaGFwZVRvb2xzLCJ3aW5kb3ctY2xvc2UiOmIuQ2xyU2hhcGVXaW5kb3dDbG9zZSwid2luZG93LW1heCI6Yi5DbHJTaGFwZVdpbmRvd01h'@; put 'eCwid2luZG93LW1pbiI6Yi5DbHJTaGFwZVdpbmRvd01pbiwid2luZG93LXJlc3RvcmUiOmIuQ2xyU2hhcGVXaW5kb3dSZXN0b3JlLCJ6b29tLWluIjpiLkNsclNoYXBlWm9vbUluLCJ6b29tLW91dCI6Yi5DbHJTaGFwZVpvb21PdXQsa2V5OmIuQ2xyU2hhcGVLZXksbGlicmFyeTpiLkNsclNo'@; put 'YXBlTGlicmFyeSxib2x0OmIuQ2xyU2hhcGVCb2x0LHdyZW5jaDpiLkNsclNoYXBlV3JlbmNoLGJ1bGxzZXllOmIuQ2xyU2hhcGVCdWxsc2V5ZSx0YXJnZXQ6Yi5DbHJTaGFwZVRhcmdldCxmbGFtZTpiLkNsclNoYXBlRmxhbWUsaG91cmdsYXNzOmIuQ2xyU2hhcGVIb3VyZ2xhc3MsIm5vLWFj'@; put 'Y2VzcyI6Yi5DbHJTaGFwZU5vQWNjZXNzLG9yZ2FuaXphdGlvbjpiLkNsclNoYXBlT3JnYW5pemF0aW9uLGJhbGFuY2U6Yi5DbHJTaGFwZUJhbGFuY2UsImlkLWJhZGdlIjpiLkNsclNoYXBlSWRCYWRnZSxyZXBlYXQ6Yi5DbHJTaGFwZVJlcGVhdCwiZmlsZS1ncm91cCI6Yi5DbHJTaGFwZUZp'@; put 'bGVHcm91cCxwYXBlcmNsaXA6Yi5DbHJTaGFwZVBhcGVyY2xpcCxzaHJpbms6Yi5DbHJTaGFwZVNocmluaywiYWNjZXNzaWJpbGl0eS0xIjpiLkNsclNoYXBlQWNjZXNzaWJpbGl0eTEsImFjY2Vzc2liaWxpdHktMiI6Yi5DbHJTaGFwZUFjY2Vzc2liaWxpdHkyLCJzb3J0LWJ5IjpiLkNsclNo'@; put 'YXBlU29ydEJ5LCJjb2xsYXBzZS1jYXJkIjpiLkNsclNoYXBlQ29sbGFwc2VDYXJkLCJleHBhbmQtY2FyZCI6Yi5DbHJTaGFwZUV4cGFuZENhcmQsYnJpZWZjYXNlOmIuQ2xyU2hhcGVCcmllZmNhc2UsImNvbG9yLXBpY2tlciI6Yi5DbHJTaGFwZUNvbG9yUGlja2VyLCJjb3B5LXRvLWNsaXBi'@; put 'b2FyZCI6Yi5DbHJTaGFwZUNvcHlUb0NsaXBib2FyZCwiZmlsdGVyLTIiOmIuQ2xyU2hhcGVGaWx0ZXIyLCJkcmFnLWhhbmRsZSI6Yi5DbHJTaGFwZURyYWdIYW5kbGUsbW9vbjpiLkNsclNoYXBlTW9vbixzdW46Yi5DbHJTaGFwZVN1bix3YW5kOmIuQ2xyU2hhcGVXYW5kLGNsb25lOmIuQ2xy'@; put 'U2hhcGVDbG9uZSxkZXRhaWxzOmIuQ2xyU2hhcGVEZXRhaWxzLCJkcmFnLWhhbmRsZS1jb3JuZXIiOmIuQ2xyU2hhcGVEcmFnSGFuZGxlQ29ybmVyLGVyYXNlcjpiLkNsclNoYXBlRXJhc2VyLGxhbmRzY2FwZTpiLkNsclNoYXBlTGFuZHNjYXBlLHBhc3RlOmIuQ2xyU2hhcGVQYXN0ZSxwb3J0'@; put 'cmFpdDpiLkNsclNoYXBlUG9ydHJhaXQsImZpbGUtemlwIjpiLkNsclNoYXBlRmlsZVppcCwiZmlsdGVyLW9mZiI6Yi5DbHJTaGFwZUZpbHRlck9mZixyZWN5Y2xlOmIuQ2xyU2hhcGVSZWN5Y2xlLHRyZWU6Yi5DbHJTaGFwZVRyZWUsZmlzaDpiLkNsclNoYXBlRmlzaCxmb3JtOmIuQ2xyU2hh'@; put 'cGVGb3JtLGZ1ZWw6Yi5DbHJTaGFwZUZ1ZWwsc25vd2ZsYWtlOmIuQ2xyU2hhcGVTbm93Zmxha2UsdGFibGU6Yi5DbHJTaGFwZVRhYmxlLCJkb3QtY2lyY2xlIjpiLkNsclNoYXBlRG90Q2lyY2xlLHZvbHVtZTpiLkNsclNoYXBlVm9sdW1lLGNyb3NzaGFpcnM6Yi5DbHJTaGFwZUNyb3NzaGFp'@; put 'cnMsYmV0YTpiLkNsclNoYXBlQmV0YSwiY29sb3ItcGFsZXR0ZSI6Yi5DbHJTaGFwZUNvbG9yUGFsZXR0ZX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGIuRXNzZW50aWFsU2hhcGVzLCJlZGl0IiwoMCxfLmRlc2NyaXB0b3JDb25maWcpKGIuRXNzZW50aWFsU2hhcGVzLnBlbmNpbCkpLE9iamVj'@; put 'dC5kZWZpbmVQcm9wZXJ0eShiLkVzc2VudGlhbFNoYXBlcywibm90ZS1lZGl0IiwoMCxfLmRlc2NyaXB0b3JDb25maWcpKGIuRXNzZW50aWFsU2hhcGVzLm5vdGUpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5Fc3NlbnRpYWxTaGFwZXMsImdyb3VwIiwoMCxfLmRlc2NyaXB0b3JDb25maWcp'@; put 'KGIuRXNzZW50aWFsU2hhcGVzLnVzZXJzKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGIuRXNzZW50aWFsU2hhcGVzLCJkb2N1bWVudCIsKDAsXy5kZXNjcmlwdG9yQ29uZmlnKShiLkVzc2VudGlhbFNoYXBlcy5maWxlKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGIuRXNzZW50aWFsU2hhcGVz'@; put 'LCJhZGQiLCgwLF8uZGVzY3JpcHRvckNvbmZpZykoYi5Fc3NlbnRpYWxTaGFwZXMucGx1cykpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShiLkVzc2VudGlhbFNoYXBlcywiY2FuY2VsIiwoMCxfLmRlc2NyaXB0b3JDb25maWcpKGIuRXNzZW50aWFsU2hhcGVzLmJhbikpLE9iamVjdC5kZWZpbmVQ'@; put 'cm9wZXJ0eShiLkVzc2VudGlhbFNoYXBlcywicmVtb3ZlIiwoMCxfLmRlc2NyaXB0b3JDb25maWcpKGIuRXNzZW50aWFsU2hhcGVzWyJ0aW1lcy1jaXJjbGUiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShiLkVzc2VudGlhbFNoYXBlcywic2lnbi1pbiIsKDAsXy5kZXNjcmlwdG9yQ29uZmln'@; put 'KShiLkVzc2VudGlhbFNoYXBlcy5sb2dpbikpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShiLkVzc2VudGlhbFNoYXBlcywic2lnbi1vdXQiLCgwLF8uZGVzY3JpcHRvckNvbmZpZykoYi5Fc3NlbnRpYWxTaGFwZXMubG9nb3V0KSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGIuRXNzZW50aWFsU2hh'@; put 'cGVzLCJsaWdodG5pbmciLCgwLF8uZGVzY3JpcHRvckNvbmZpZykoYi5Fc3NlbnRpYWxTaGFwZXMuYm9sdCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShiLkVzc2VudGlhbFNoYXBlcywiZmxvdy1jaGFydCIsKDAsXy5kZXNjcmlwdG9yQ29uZmlnKShiLkVzc2VudGlhbFNoYXBlcy5vcmdhbml6'@; put 'YXRpb24pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5Fc3NlbnRpYWxTaGFwZXMsImFsZXJ0IiwoMCxfLmRlc2NyaXB0b3JDb25maWcpKGIuRXNzZW50aWFsU2hhcGVzWyJidWJibGUtZXhjbGFtYXRpb24iXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShiLkVzc2VudGlhbFNoYXBlcywicGlu'@; put 'bmVkIiwoMCxfLmRlc2NyaXB0b3JDb25maWcpKGIuRXNzZW50aWFsU2hhcGVzLnBpbmJvYXJkKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGIuRXNzZW50aWFsU2hhcGVzLCJhdHRhY2htZW50IiwoMCxfLmRlc2NyaXB0b3JDb25maWcpKGIuRXNzZW50aWFsU2hhcGVzLnBhcGVyY2xpcCkpLE9i'@; put 'amVjdC5kZWZpbmVQcm9wZXJ0eShiLkVzc2VudGlhbFNoYXBlcywiYXR0YWNobWVudCIsKDAsXy5kZXNjcmlwdG9yQ29uZmlnKShiLkVzc2VudGlhbFNoYXBlcy5wYXBlcmNsaXApKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5Fc3NlbnRpYWxTaGFwZXMsInJlc2l6ZS1kb3duIiwoMCxfLmRl'@; put 'c2NyaXB0b3JDb25maWcpKGIuRXNzZW50aWFsU2hhcGVzLnNocmluaykpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShiLkVzc2VudGlhbFNoYXBlcywicmVzaXplLXVwIiwoMCxfLmRlc2NyaXB0b3JDb25maWcpKGIuRXNzZW50aWFsU2hhcGVzLnJlc2l6ZSkpLHR5cGVvZiB3aW5kb3c8InUiJiZ3'@; put 'aW5kb3cuaGFzT3duUHJvcGVydHkoIkNsYXJpdHlJY29ucyIpJiZ3aW5kb3cuQ2xhcml0eUljb25zLmFkZChiLkVzc2VudGlhbFNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvbWVkaWEtc2hhcGVzLnRzIjoKLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq'@; put 'KioqKioqKioqKioqKioqKioqISpcCiAgICAgICAgICAgICAgICAgICEqKiogLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL21lZGlhLXNoYXBlcy50cyAqKiohCiAgICAgICAgICAgICAgICAgIFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov'@; put 'Ci8qISBubyBzdGF0aWMgZXhwb3J0cyBmb3VuZCAqL2Z1bmN0aW9uKEosYixEKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGIuTWVkaWFTaGFwZXM9Yi5DbHJTaGFwZU1pY3JvcGhvbmVNdXRlPWIuQ2xyU2hhcGVNaWNyb3Bo'@; put 'b25lPWIuQ2xyU2hhcGVWaWRlb0dhbGxlcnk9Yi5DbHJTaGFwZVJlcGxheU9uZT1iLkNsclNoYXBlUmVwbGF5QWxsPWIuQ2xyU2hhcGVJbWFnZUdhbGxlcnk9Yi5DbHJTaGFwZU11c2ljTm90ZT1iLkNsclNoYXBlRmlsbVN0cmlwPWIuQ2xyU2hhcGVIZWFkcGhvbmVzPWIuQ2xyU2hhcGVWb2x1'@; put 'bWVNdXRlPWIuQ2xyU2hhcGVWb2x1bWVVcD1iLkNsclNoYXBlVm9sdW1lRG93bj1iLkNsclNoYXBlU2h1ZmZsZT1iLkNsclNoYXBlVmlkZW9DYW1lcmE9Yi5DbHJTaGFwZUNhbWVyYT1iLkNsclNoYXBlRmFzdEZvcndhcmQ9Yi5DbHJTaGFwZVJld2luZD1iLkNsclNoYXBlUG93ZXI9Yi5DbHJT'@; put 'aGFwZVN0b3A9Yi5DbHJTaGFwZVN0ZXBGb3J3YXJkPWIuQ2xyU2hhcGVQYXVzZT1iLkNsclNoYXBlUGxheT12b2lkIDA7dmFyIF89RCgKLyohIC4uL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyIpO2Iu'@; put 'Q2xyU2hhcGVQbGF5PSgwLF8uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNOC4wNywzMS42QTIuMDcsMi4wNywwLDAsMSw2LDI5LjUzVjYuMzJBMi4wNywyLjA3LDAsMCwxLDksNC40N0wzMi4yMSwxNi4wOGEyLjA3LDIu'@; put 'MDcsMCwwLDEsMCwzLjdMOSwzMS4zOEEyLjA2LDIuMDYsMCwwLDEsOC4wNywzMS42Wm0wLTI1LjM0TDgsNi4zMlYyOS41M2wuMS4wNkwzMS4zMSwxOGEuMDYuMDYsMCwwLDAsMC0uMDZaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBh'@; put 'dGgtMSIgZD0iTTMyLjE2LDE2LjA4LDguOTQsNC40N0EyLjA3LDIuMDcsMCwwLDAsNiw2LjMyVjI5LjUzYTIuMDYsMi4wNiwwLDAsMCwzLDEuODVMMzIuMTYsMTkuNzdhMi4wNywyLjA3LDAsMCwwLDAtMy43WiIvPicpLGIuQ2xyU2hhcGVQYXVzZT0oMCxfLmNsckljb25TVkcpKCc8cGF0aCBj'@; put 'bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTEyLjkzLDMySDYuMDdBMi4wNywyLjA3LDAsMCwxLDQsMjkuOTNWNi4wN0EyLjA3LDIuMDcsMCwwLDEsNi4wNyw0aDYuODdBMi4wNywyLjA3LDAsMCwxLDE1LDYuMDdWMjkuOTNBMi4wNywyLjA3LDAsMCwxLDEy'@; put 'LjkzLDMyWk0xMyw2SDZWMzBoN1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI5LjkzLDMySDIzLjA3QTIuMDcsMi4wNywwLDAsMSwyMSwyOS45M1Y2LjA3QTIuMDcsMi4wNywwLDAsMSwyMy4wNyw0aDYu'@; put 'ODdBMi4wNywyLjA3LDAsMCwxLDMyLDYuMDdWMjkuOTNBMi4wNywyLjA3LDAsMCwxLDI5LjkzLDMyWk0zMCw2SDIzVjMwaDdaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgeD0iMy45NSIgeT0iNCIgd2lkdGg9IjExIiBo'@; put 'ZWlnaHQ9IjI4IiByeD0iMi4wNyIgcnk9IjIuMDciLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiB4PSIyMC45NSIgeT0iNCIgd2lkdGg9IjExIiBoZWlnaHQ9IjI4IiByeD0iMi4wNyIgcnk9IjIuMDciLz4nKSxiLkNsclNo'@; put 'YXBlU3RlcEZvcndhcmQ9KDAsXy5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik01LDMyLjIzYTIsMiwwLDAsMS0yLTJWNS43N0EyLDIsMCwwLDEsNi4xNyw0LjE0TDIzLjIzLDE2LjM4YTIsMiwwLDAsMSwwLDMuMjVoMEw2'@; put 'LjE3LDMxLjg2QTIsMiwwLDAsMSw1LDMyLjIzWk01LDUuNzdWMzAuMjNMMjIuMDcsMThaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMSwzMkgyOGEyLDIsMCwwLDEtMi0yVjZhMiwyLDAsMCwxLDItMmgz'@; put 'YTIsMiwwLDAsMSwyLDJWMzBBMiwyLDAsMCwxLDMxLDMyWk0yOCw2VjMwaDNWNloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNNSwzMS45YTIsMiwwLDAsMS0yLTJWNS40NEEyLDIsMCwwLDEsNi4xMiwzLjgxTDIz'@; put 'LjE4LDE2YTIsMiwwLDAsMSwwLDMuMjVoMEw2LjEyLDMxLjUyQTIsMiwwLDAsMSw1LDMxLjlaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgeD0iMjUuOTUiIHk9IjMuNjciIHdpZHRoPSI3IiBoZWlnaHQ9IjI4IiByeD0i'@; put 'MiIgcnk9IjIiLz4nKSxiLkNsclNoYXBlU3RvcD0oMCxfLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMwLDMySDZhMiwyLDAsMCwxLTItMlY2QTIsMiwwLDAsMSw2LDRIMzBhMiwyLDAsMCwxLDIsMlYzMEEyLDIsMCww'@; put 'LDEsMzAsMzJaTTYsNlYzMEgzMFY2WiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIHg9IjMuOTYiIHk9IjQiIHdpZHRoPSIyNy45OSIgaGVpZ2h0PSIyOCIgcng9IjIiIHJ5PSIyIi8+JyksYi5DbHJTaGFwZVBvd2VyPSgw'@; put 'LF8uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsMjFhMSwxLDAsMCwxLTEtMVY0YTEsMSwwLDAsMSwyLDBWMjBBMSwxLDAsMCwxLDE4LDIxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMzQuMTVhMTUsMTUsMCwwLDEtNy41Mi0yOCwxLDEsMCwwLDEsMSwxLjczLDEzLDEzLDAsMSwwLDEzLDAsMSwxLDAsMSwxLDEtMS43MywxNSwxNSwwLDAsMS03LjUyLDI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTgsMjFhMSwxLDAsMCwwLDEtMVY0YTEsMSwwLDAsMC0yLDBWMjBBMSwxLDAsMCwwLDE4LDIxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h'@; put 'bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMzIuNTEsMTUuNEgzMC40NGExMywxMywwLDEsMS0xOS03LjUsMSwxLDAsMCwwLTEtMS43M0ExNSwxNSwwLDEsMCwzMywxOS4xNSwxNC45LDE0LjksMCwwLDAsMzIuNTEsMTUuNFoiLz5cbiAgICAgICAgICAgICAgICA8'@; put 'cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwx'@; put 'LjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTE4LDIxYTEsMSwwLDAsMS0xLTFWNGExLDEsMCwwLDEsMiwwVjIwQTEsMSww'@; put 'LDAsMSwxOCwyMVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMCwxMy41bC0uMzEsMEExMywxMywwLDEsMSwxMS40OCw3LjlhMSwxLDAsMCwwLTEtMS43MywxNSwxNSwwLDEs'@; put 'MCwyMS4zMSw3LjFBNy40OSw3LjQ5LDAsMCwxLDMwLDEzLjVaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAg'@; put 'ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0uMDYsMTcuNjhhMS4yOCwxLjI4LDAsMCwxLTEuMjktMS4yOFY4LjY1YTEuMjksMS4yOSwwLDAsMSwyLjU4LDBW'@; put 'MTguNEExLjI4LDEuMjgsMCwwLDEsMTguMDYsMTkuNjhaTTE4LDI3Ljc5QTkuODgsOS44OCwwLDAsMSwxMi4xNyw5Ljg1YTEuNCwxLjQsMCwwLDEsMS45NC4zMSwxLjM3LDEuMzcsMCwwLDEtLjMxLDEuOTIsNy4xOCw3LjE4LDAsMSwwLDExLjQzLDUuOCw3LjA3LDcuMDcsMCwwLDAtMy01Ljc2'@; put 'QTEuMzcsMS4zNywwLDAsMSwyMiwxMC4yYTEuNCwxLjQsMCwwLDEsMS45NC0uMjlBOS44OCw5Ljg4LDAsMCwxLDE4LDI3Ljc5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMy42'@; put 'OCwxNS40aC02QTkuNyw5LjcsMCwwLDEsMjgsMTcuODlhMTAsMTAsMCwxLDEtMTUuODMtOCwxLjQsMS40LDAsMCwxLDEuOTQuMzEsMS4zNywxLjM3LDAsMCwxLS4zMSwxLjkyLDcuMTgsNy4xOCwwLDEsMCwxMS40Myw1LjgsNy4wOCw3LjA4LDAsMCwwLS40NS0yLjQ5SDIyLjIzQTMuNjksMy42'@; put 'OSwwLDAsMSwxOS4zNSwxNHY0LjRhMS4yOSwxLjI5LDAsMCwxLTIuNTgsMFY4LjY1YTEuMjksMS4yOSwwLDAsMSwyLjU4LDB2LjcxbDMuNzYtNi41MUExNiwxNiwwLDEsMCwzNCwxOGExNiwxNiwwLDAsMC0uMjMtMi42MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt'@; put 'c29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2'@; put 'Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMCwxMy41YTcuNDcsNy40NywwLDAsMS0zLjU3LS45QTkuODMsOS44MywwLDAsMSwyOCwxNy44OWExMCwxMCwwLDEsMS0x'@; put 'NS44My04LDEuNCwxLjQsMCwwLDEsMS45NC4zMSwxLjM3LDEuMzcsMCwwLDEtLjMxLDEuOTIsNy4xOCw3LjE4LDAsMSwwLDExLjQzLDUuOCw3LjA3LDcuMDcsMCwwLDAtMy01Ljc2QTEuMzcsMS4zNywwLDAsMSwyMiwxMC4yYTEuMzgsMS4zOCwwLDAsMSwxLjUyLS40OSw3LjQ1LDcuNDUsMCww'@; put 'LDEtLjMtNi44MywxNi4wNiwxNi4wNiwwLDEsMCw5LjkzLDkuOTNBNy40Niw3LjQ2LDAsMCwxLDMwLDEzLjVaTTE2Ljc3LDguNjVhMS4yOSwxLjI5LDAsMCwxLDIuNTgsMFYxOC40YTEuMjksMS4yOSwwLDAsMS0yLjU4LDBaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xy'@; put 'LWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLGIuQ2xyU2hhcGVSZXdpbmQ9KDAsXy5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi'@; put 'IGQ9Ik0xNy4wOSwzMS41OGwtMTUuMzItMTJhMiwyLDAsMCwxLDAtMy4xNWwxNS4zMi0xMmExLjkzLDEuOTMsMCwwLDEsMi4wNi0uMjJBMS43NywxLjc3LDAsMCwxLDIwLDZ2Ni43TDMwLjgzLDQuNDJhMS45MywxLjkzLDAsMCwxLDIuMDYtLjIyQTIsMiwwLDAsMSwzNCw2VjMwYTIsMiwwLDAs'@; put 'MS0xLjExLDEuNzksMS45NCwxLjk0LDAsMCwxLTIuMDYtLjIyTDIwLDIzLjMxVjMwYTEuNzcsMS43NywwLDAsMS0uODUsMS43OSwxLjk0LDEuOTQsMCwwLDEtMi4wNi0uMjJaTTMyLDMwbC4wNi0yNEwxOCwxNi44VjZMMywxOCwxOCwzMFYxOS4yWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xh'@; put 'c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE2LjkyLDMxLjU4LDEuNiwxOS41N2EyLDIsMCwwLDEsMC0zLjE1bDE1LjMyLTEyQTEuOTMsMS45MywwLDAsMSwxOSw0LjIsMS44OSwxLjg5LDAsMCwxLDIwLDZ2Ni43TDMwLjY2LDQuNDJhMS45MywxLjkzLDAsMCwxLDIu'@; put 'MDYtLjIyQTIsMiwwLDAsMSwzMy44Myw2VjMwYTIsMiwwLDAsMS0xLjExLDEuNzksMS45NCwxLjk0LDAsMCwxLTIuMDYtLjIyTDIwLDIzLjMxVjMwYTEuODksMS44OSwwLDAsMS0xLDEuNzksMS45NCwxLjk0LDAsMCwxLTIuMDYtLjIyWiIvPicpLGIuQ2xyU2hhcGVGYXN0Rm9yd2FyZD0oMCxf'@; put 'LmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE3Ljc3LDMxLjkyYTIsMiwwLDAsMS0uODYtLjJBMS44MSwxLjgxLDAsMCwxLDE2LDI5Ljkzdi02LjdMNS4yNCwzMS41YTEuOTQsMS45NCwwLDAsMS0yLjA2LjIyLDIsMiww'@; put 'LDAsMS0xLjExLTEuNzl2LTI0QTIsMiwwLDAsMSwzLjE4LDQuMTJhMS45MywxLjkzLDAsMCwxLDIuMDYuMjJMMTYsMTIuNjFWNS45MWExLjgxLDEuODEsMCwwLDEsLjkxLTEuNzlBMS45MywxLjkzLDAsMCwxLDE5LDQuMzRsMTUuMzIsMTJhMiwyLDAsMCwxLDAsMy4xNUwxOSwzMS41QTIsMiww'@; put 'LDAsMSwxNy43NywzMS45MlptMC0xMi44VjI5LjkzbDE1LjI2LTEyLTE1LjMyLTEyLC4wNiwxMC44MUw0LDUuOTF2MjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTcuNzEsMzJhMiwyLDAsMCwxLS44Ni0uMkExLjc3'@; put 'LDEuNzcsMCwwLDEsMTYsMzB2LTYuN0w1LjE3LDMxLjU4YTEuOTQsMS45NCwwLDAsMS0yLjA2LjIyQTIsMiwwLDAsMSwyLDMwVjZBMiwyLDAsMCwxLDMuMTEsNC4yYTEuOTMsMS45MywwLDAsMSwyLjA2LjIyTDE2LDEyLjY5VjZhMS43NywxLjc3LDAsMCwxLC44NS0xLjc5LDEuOTMsMS45Myww'@; put 'LDAsMSwyLjA2LjIybDE1LjMyLDEyYTIsMiwwLDAsMSwwLDMuMTVsLTE1LjMyLDEyQTIsMiwwLDAsMSwxNy43MSwzMloiLz4nKSxiLkNsclNoYXBlQ2FtZXJhPSgwLF8uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMiw4SDI0LjdMMjMuNjQsNS4yOEEyLDIsMCwwLDAsMjEuNzgsNEgxNC4yMmEy'@; put 'LDIsMCwwLDAtMS44NywxLjI4TDExLjMsOEg0YTIsMiwwLDAsMC0yLDJWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEwQTIsMiwwLDAsMCwzMiw4Wm0wLDIySDRWMTBoOC42N2wxLjU1LTRoNy41NmwxLjU1LDRIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTksMTlhOSw5LDAsMSwwLDktOUE5LDksMCwwLDAsOSwxOVptMTYuNCwwQTcuNCw3LjQsMCwxLDEsMTgsMTEuNiw3LjQxLDcuNDEsMCwwLDEsMjUuNCwxOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOS4zNywxMi44M2EuOC44LDAsMCwwLS44LS44SDYuMTdhLjguOCwwLDAsMCwwLDEuNmgyLjRBLjguOCwwLDAsMCw5LjM3LDEyLjgzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAg'@; put 'IDxwYXRoIGQ9Ik0xMi4zNCwxOWE1LjU3LDUuNTcsMCwwLDAsMy4yNCw1bC44NS0xLjM3YTQsNCwwLDEsMSw0LjExLTYuNjFsLjg2LTEuMzhBNS41Niw1LjU2LDAsMCwwLDEyLjM0LDE5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAg'@; put 'IDxwYXRoIGQ9Ik0zMiw4SDI0LjdMMjMuNjQsNS4yOEEyLDIsMCwwLDAsMjEuNzgsNEgxNC4yMmEyLDIsMCwwLDAtMS44NywxLjI4TDExLjMsOEg0YTIsMiwwLDAsMC0yLDJWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEwQTIsMiwwLDAsMCwzMiw4Wk02LjE3LDEzLjYzYS44'@; put 'LjgsMCwwLDEsMC0xLjZoMi40YS44LjgsMCwwLDEsMCwxLjZaTTE4LDI4YTksOSwwLDEsMSw5LTlBOSw5LDAsMCwxLDE4LDI4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLjExLDE5LjA2YTcuMDcsNy4wNywwLDAs'@; put 'MCw0LjExLDYuNDFsMS4wOS0xLjc0YTUsNSwwLDEsMSw1LjIyLTguMzlsMS4wOS0xLjc2YTcuMDYsNy4wNiwwLDAsMC0xMS41MSw1LjQ4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPicpLGIuQ2xyU2hhcGVWaWRlb0NhbWVyYT0oMCxfLmNsckljb25TVkcpKCc8'@; put 'cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTM0LDEwLjM0YTIuMTEsMi4xMSwwLDAsMC0xLjE2LTEuOSwyLDIsMCwwLDAtMi4xMy4xNUwyNiwxMS42VjhhMiwyLDAsMCwwLTItMkg2YTQsNCwwLDAsMC00LDRWMjZhNCw0LDAsMCwwLDQsNEgyNGEy'@; put 'LDIsMCwwLDAsMi0yVjI0LjRsNC42NCwzYTIuMDcsMi4wNywwLDAsMCwyLjIuMkEyLjExLDIuMTEsMCwwLDAsMzQsMjUuNjZaTTMxLjkzLDI1Ljc3Yy0uMDYsMC0uMTEsMC0uMTktLjA2TDI0LDIwLjc3VjI4SDZhMiwyLDAsMCwxLTItMlYxMEEyLDIsMCwwLDEsNiw4SDI0djcuMjNsNy44LTVh'@; put 'LjExLjExLDAsMCwxLC4xMywwLC4xMS4xMSwwLDAsMSwuMDcuMTFWMjUuNjZBLjExLjExLDAsMCwxLDMxLjkzLDI1Ljc3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLjMsOS4zNSwyNiwxMi45VjhhMiwyLDAsMCww'@; put 'LTItMkg2YTQsNCwwLDAsMC00LDRWMjZhNCw0LDAsMCwwLDQsNEgyNGEyLDIsMCwwLDAsMi0yVjIzLjA4bDYuMywzLjU1QTEuMSwxLjEsMCwwLDAsMzQsMjUuNzdWMTAuMkExLjEsMS4xLDAsMCwwLDMyLjMsOS4zNVoiLz4nKSxiLkNsclNoYXBlU2h1ZmZsZT0oMCxfLmNsckljb25TVkcpKCc8'@; put 'cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTIxLjYxLDExaDguNjJsLTMuMywzLjNhMSwxLDAsMSwwLDEuNDEsMS40MkwzNCwxMC4wOGwtLjcxLS43MWgwTDI4LjM0LDQuNDNhMSwxLDAsMCwwLTEuNDEsMS40MkwzMC4xMSw5SDIxYTEsMSwwLDAs'@; put 'MC0uODYuNUwxNy41LDE0LjA5bDEuMTYsMloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTEuMDcsMjUuMDdIM2ExLDEsMCwwLDAsMCwyaDguNjVhMSwxLDAsMCwwLC44Ni0uNUwxNS4xOCwyMiwxNCwyMFoiLz5c'@; put 'biAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjguMzQsMjAuMTdhMSwxLDAsMCwwLTEuNDEsMS40MmwzLjUsMy41SDIxLjYxTDEyLjUxLDkuNTNhMSwxLDAsMCwwLS44Ni0uNUgzYTEsMSwwLDEsMCwwLDJoOC4wN2w5LjEs'@; put 'MTUuNTVhMSwxLDAsMCwwLC44Ni41SDI5LjlsLTMsM2ExLDEsMCwwLDAsMS40MSwxLjQybDQuOTUtNC45NGgwbC43MS0uNzFaIi8+JyksYi5DbHJTaGFwZVZvbHVtZURvd249KDAsXy5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi'@; put 'IGQ9Ik0yMy40MSwyNS4xMWExLDEsMCwwLDEtLjU0LTEuODUsNi4yMSw2LjIxLDAsMCwwLS4xOS0xMC42NSwxLDEsMCwxLDEsMS0xLjczQTguMjEsOC4yMSwwLDAsMSwyMy45NCwyNSwxLDEsMCwwLDEsMjMuNDEsMjUuMTFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDMyYTIsMiwwLDAsMS0xLjQyLS41OUw5LjE0LDI0SDRhMiwyLDAsMCwxLTItMlYxNGEyLDIsMCwwLDEsMi0ySDkuMjJsNy4zMy03LjQxQTIsMiwwLDAsMSwyMCw2VjMwYTIsMiwwLDAsMS0xLjI0LDEuODVBMiwyLDAsMCwxLDE4LDMy'@; put 'Wk00LDE0djhIOS41NmExLDEsMCwwLDEsLjcxLjI4TDE4LDMwVjZsLTcuNjUsNy42OGExLDEsMCwwLDEtLjcxLjNaTTE4LDZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjMuNDEsMjUuMTFhMSwxLDAsMCwxLS41NC0x'@; put 'Ljg1LDYuMjEsNi4yMSwwLDAsMC0uMTktMTAuNjUsMSwxLDAsMSwxLDEtMS43M0E4LjIxLDguMjEsMCwwLDEsMjMuOTQsMjUsMSwxLDAsMCwxLDIzLjQxLDI1LjExWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTE4LjM0'@; put 'LDMuODcsOSwxMkgzYTEsMSwwLDAsMC0xLDFWMjNhMSwxLDAsMCwwLDEsMUg4LjgzbDkuNTEsOC4zQTEsMSwwLDAsMCwyMCwzMS41NVY0LjYyQTEsMSwwLDAsMCwxOC4zNCwzLjg3WiIvPicpLGIuQ2xyU2hhcGVWb2x1bWVVcD0oMCxfLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTIzLjQxLDI1LjI1YTEsMSwwLDAsMS0uNTQtMS44NSw2LjIxLDYuMjEsMCwwLDAtLjE5LTEwLjY1LDEsMSwwLDEsMSwxLTEuNzMsOC4yMSw4LjIxLDAsMCwxLC4yNCwxNC4wNkExLDEsMCwwLDEsMjMuNDEsMjUuMjVaIi8+XG4gICAg'@; put 'ICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI1LjYyLDMxLjE4YTEsMSwwLDAsMS0uNDUtMS44OUExMi40NCwxMi40NCwwLDAsMCwyNSw2Ljg5YTEsMSwwLDEsMSwuODctMS44LDE0LjQ0LDE0LjQ0LDAsMCwxLC4yNCwyNkExLDEs'@; put 'MCwwLDEsMjUuNjIsMzEuMThaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LDMyLjA2YTIsMiwwLDAsMS0xLjQyLS41OUw5LjE0LDI0SDRhMiwyLDAsMCwxLTItMlYxNGEyLDIsMCwwLDEsMi0ySDkuMjJsNy4z'@; put 'My03LjM5QTIsMiwwLDAsMSwyMCw2djI0YTIsMiwwLDAsMS0xLjI0LDEuODVBMiwyLDAsMCwxLDE4LDMyLjA2Wk00LDE0djhIOS41NmExLDEsMCwwLDEsLjcxLjNMMTgsMzAuMDZWNkwxMC4zNSwxMy43YTEsMSwwLDAsMS0uNzEuM1pNMTgsNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNz'@; put 'PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yMy40MSwyNS4yNWExLDEsMCwwLDEtLjU0LTEuODUsNi4yMSw2LjIxLDAsMCwwLS4xOS0xMC42NSwxLDEsMCwxLDEsMS0xLjczLDguMjEsOC4yMSwwLDAsMSwuMjQsMTQuMDZBMSwxLDAsMCwxLDIzLjQxLDI1LjI1WiIvPlxu'@; put 'ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTI1LjYyLDMxLjE4YTEsMSwwLDAsMS0uNDUtMS44OUExMi40NCwxMi40NCwwLDAsMCwyNSw2Ljg5YTEsMSwwLDEsMSwuODctMS44LDE0LjQ0LDE0LjQ0LDAsMCwxLC4yNCwyNkExLDEs'@; put 'MCwwLDEsMjUuNjIsMzEuMThaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMTguMzMsNCw5LjA3LDEyaC02YTEsMSwwLDAsMC0xLDF2OS45MmExLDEsMCwwLDAsMSwxSDguODhsOS40Niw4LjI0QTEsMSwwLDAsMCwyMCwz'@; put 'MS40M1Y0LjcyQTEsMSwwLDAsMCwxOC4zMyw0WiIvPicpLGIuQ2xyU2hhcGVWb2x1bWVNdXRlPSgwLF8uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMy42MSw2LjQxLDkuMTksMTJINGEyLDIsMCwwLDAtMiwydjhhMiwy'@; put 'LDAsMCwwLDIsMkg5LjE0bDcuNDEsNy40N0EyLDIsMCwwLDAsMTgsMzJhMiwyLDAsMCwwLC43Ni0uMTVBMiwyLDAsMCwwLDIwLDMwVjIyLjc3bDUuODksNS44OWMtLjI1LjE1LS40OS4yOS0uNzUuNDJhMSwxLDAsMCwwLC45LDEuNzksMTQuNCwxNC40LDAsMCwwLDEuMzEtLjc1bDIuMjgsMi4y'@; put 'OEwzMSwzMSw1LDVaTTE4LDMwbC03LjczLTcuNzdBMSwxLDAsMCwwLDkuNTYsMjJINFYxNEg5LjY0YTEsMSwwLDAsMCwuNzEtLjNsLjI2LS4yNkwxOCwyMC44MVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjQu'@; put 'ODksNi42OUExMi40MiwxMi40MiwwLDAsMSwyOSwyNi4xbDEuNDIsMS40MkExNC40MiwxNC40MiwwLDAsMCwyNS43Niw0Ljg4YTEsMSwwLDEsMC0uODcsMS44WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0yMi42'@; put 'OSwxMi42MkE2LjI3LDYuMjcsMCwwLDEsMjUuOCwxOGE2LjE3LDYuMTcsMCwwLDEtMS4yNCwzLjcxTDI2LDIzLjEzQTguMTUsOC4xNSwwLDAsMCwyNy44LDE4YTguMjgsOC4yOCwwLDAsMC00LjEtNy4xMSwxLDEsMCwxLDAtMSwxLjczWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0xOCw2djkuMTVsMiwyVjZhMiwyLDAsMCwwLTMuNDItMS40MUwxMiw5LjE3bDEuNDEsMS40MVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yNC44Nyw2'@; put 'LjY5QTEyLjQyLDEyLjQyLDAsMCwxLDI4Ljc1LDI2LjNsMS40MiwxLjQyQTE0LjQzLDE0LjQzLDAsMCwwLDI1Ljc0LDQuODhhMSwxLDAsMCwwLS44NywxLjhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjcuMywyNy42'@; put 'N2gwbC0zLjg0LTMuODQtLjU3LS41N2gwTDQuNjMsNSwzLjIxLDYuNDEsOC44LDEySDNhMSwxLDAsMCwwLTEsMVYyM2ExLDEsMCwwLDAsMSwxSDguODNsOS41MSw4LjNBMSwxLDAsMCwwLDIwLDMxLjU1VjIzLjJsNS41OSw1LjU5Yy0uMTcuMS0uMzQuMi0uNTEuMjlhMSwxLDAsMCwwLC45LDEu'@; put 'NzljLjM3LS4xOS43Mi0uNCwxLjA4LS42MmwyLjE0LDIuMTRMMzAuNjEsMzFsLTMuMjUtMy4yNVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0yMi42OSwxMi42MkE2LjI3LDYuMjcsMCwwLDEsMjUuOCwxOGE2LjE3LDYu'@; put 'MTcsMCwwLDEtMS40MiwzLjkybDEuNDIsMS40MmE4LjE2LDguMTYsMCwwLDAsMi01LjM0LDguMjgsOC4yOCwwLDAsMC00LjEtNy4xMSwxLDEsMCwxLDAtMSwxLjczWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgZD0iTTIwLDQu'@; put 'NjJhMSwxLDAsMCwwLTEuNjYtLjc1bC02LjQyLDUuNkwyMCwxNy41NFoiLz4nKSxiLkNsclNoYXBlSGVhZHBob25lcz0oMCxfLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LDNBMTQuMjcsMTQuMjcsMCwwLDAsNCwx'@; put 'Ny41VjMxSDkuMkEyLjc0LDIuNzQsMCwwLDAsMTIsMjguMzNWMjEuNjdBMi43NCwyLjc0LDAsMCwwLDkuMiwxOUg2VjE3LjVBMTIuMjcsMTIuMjcsMCwwLDEsMTgsNSwxMi4yNywxMi4yNywwLDAsMSwzMCwxNy41VjE5SDI2LjhBMi43NCwyLjc0LDAsMCwwLDI0LDIxLjY3djYuNjdBMi43NCwy'@; put 'Ljc0LDAsMCwwLDI2LjgsMzFIMzJWMTcuNUExNC4yNywxNC4yNywwLDAsMCwxOCwzWk05LjIsMjFhLjc1Ljc1LDAsMCwxLC44LjY3djYuNjdhLjc1Ljc1LDAsMCwxLS44LjY3SDZWMjFaTTI2LDI4LjMzVjIxLjY3YS43NS43NSwwLDAsMSwuOC0uNjdIMzB2OEgyNi44QS43NS43NSwwLDAsMSwy'@; put 'NiwyOC4zM1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwzQTE0LjI3LDE0LjI3LDAsMCwwLDQsMTcuNVYzMUg4LjJBMS43NCwxLjc0LDAsMCwwLDEwLDI5LjMzVjIyLjY3QTEuNzQsMS43NCwwLDAsMCw4LjIsMjFI'@; put 'NlYxNy41QTEyLjI3LDEyLjI3LDAsMCwxLDE4LDUsMTIuMjcsMTIuMjcsMCwwLDEsMzAsMTcuNVYyMUgyNy44QTEuNzQsMS43NCwwLDAsMCwyNiwyMi42N3Y2LjY3QTEuNzQsMS43NCwwLDAsMCwyNy44LDMxSDMyVjE3LjVBMTQuMjcsMTQuMjcsMCwwLDAsMTgsM1oiLz4nKSxiLkNsclNoYXBl'@; put 'RmlsbVN0cmlwPSgwLF8uY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAsNEg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMwLDRabTAsMjZINlY2SDMw'@; put 'WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xNC42LDIzLjA3YTEuMjksMS4yOSwwLDAsMCwxLjI0LjA5bDguNzMtNGExLjMsMS4zLDAsMCwwLDAtMi4zN2gwbC04LjczLTRBMS4zLDEuMywwLDAsMCwxNCwxNHY4'@; put 'QTEuMjksMS4yOSwwLDAsMCwxNC42LDIzLjA3Wm0xLTguNkwyMy4zMSwxOCwxNS42LDIxLjUxWiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjgiIHk9IjciIHdpZHRoPSIyIiBoZWlnaHQ9IjMiLz5cbiAgICAgICAg'@; put 'ICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4PSIxNCIgeT0iNyIgd2lkdGg9IjIiIGhlaWdodD0iMyIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIHg9IjIwIiB5PSI3IiB3'@; put 'aWR0aD0iMiIgaGVpZ2h0PSIzIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgeD0iMjYiIHk9IjciIHdpZHRoPSIyIiBoZWlnaHQ9IjMiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC03IiB4PSI4IiB5PSIyNiIgd2lkdGg9IjIiIGhlaWdodD0iMyIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIHg9IjE0IiB5PSIyNiIgd2lkdGg9IjIiIGhlaWdodD0iMyIvPlxuICAgICAgICAgICAg'@; put 'PHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTkiIHg9IjIwIiB5PSIyNiIgd2lkdGg9IjIiIGhlaWdodD0iMyIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIiB4PSIyNiIgeT0iMjYiIHdp'@; put 'ZHRoPSIyIiBoZWlnaHQ9IjMiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMCw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMzAsNFpNMjAsN2gydjNI'@; put 'MjBaTTE0LDdoMnYzSDE0Wk0xMCwyOUg4VjI2aDJabTAtMTlIOFY3aDJabTYsMTlIMTRWMjZoMlptNiwwSDIwVjI2aDJabTMuMTYtMTAuMTZMMTUuMzksMjMuMkExLDEsMCwwLDEsMTQsMjIuMjhWMTMuNTdhMSwxLDAsMCwxLDEuNDEtLjkxTDI1LjE2LDE3QTEsMSwwLDAsMSwyNS4xNiwxOC44'@; put 'NFpNMjgsMjlIMjZWMjZoMlptMC0xOUgyNlY3aDJaIi8+JyksYi5DbHJTaGFwZU11c2ljTm90ZT0oMCxfLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSJcbiAgICAgICAgICAgICAgICBkPSJNMzEuNjgsNi4xNmMtMS45Mi0zLjMt'@; put 'MTAuNi00LTExLjU4LTQuMDlMMTksMlYyMi4zNGE1Ljg5LDUuODksMCwwLDAtLjgyLS41Niw4LjMzLDguMzMsMCwwLDAtNi41My0uNDFDNy41NywyMi43LDQuOTIsMjYuNSw1Ljc4LDI5Ljg0YTUuMzMsNS4zMywwLDAsMCwyLjY2LDMuMzIsNy40OCw3LjQ4LDAsMCwwLDMuNjEuODhBOS41NCw5'@; put 'LjU0LDAsMCwwLDE1LDMzLjU3YzMuNjctMS4xOCw2LjE3LTQuMzMsNi4wNi03LjM2VjkuMzRhMjkuMTQsMjkuMTQsMCwwLDEsNi41NSwxLjQzLDEsMSwwLDEsMCwuNzItMS44N0EzMS4zNywzMS4zNywwLDAsMCwyMSw3LjMzVjQuMTdjMy4zMy4zNiw4LDEuMzgsOC45MiwzLDIsMy40MS0yLjMz'@; put 'LDcuMzYtMi4zNyw3LjRhMSwxLDAsMCwwLDEuMzMsMS40OUMyOS4xNSwxNS44NSwzNC41LDExLDMxLjY4LDYuMTZaTTE0LjM1LDMxLjY3YTYuNDMsNi40MywwLDAsMS01LS4yNiwzLjMxLDMuMzEsMCwwLDEtMS42OS0yLjA3Yy0uNi0yLjMzLDEuNDUtNS4wNSw0LjU4LTYuMDZhNy41Miw3LjUy'@; put 'LDAsMCwxLDIuMy0uMzcsNS41Miw1LjUyLDAsMCwxLDIuNjUuNjIsMy4zMSwzLjMxLDAsMCwxLDEuNjksMi4wN0MxOS41NCwyNy45NCwxNy40OSwzMC42NiwxNC4zNSwzMS42N1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiXG4g'@; put 'ICAgICAgICAgICAgICAgZD0iTTMxLjY4LDYuMTZjLTEuOTItMy4zLTEwLjYtNC0xMS41OC00LjA5TDE5LDJWMjIuMjlhNS44OCw1Ljg4LDAsMCwwLS44MS0uNTUsOC4zMyw4LjMzLDAsMCwwLTYuNTMtLjQxYy00LjEyLDEuMzMtNi43Nyw1LjEzLTUuOTEsOC40N2E1LjMzLDUuMzMsMCwwLDAs'@; put 'Mi42NiwzLjMyLDcuNDgsNy40OCwwLDAsMCwzLjYxLjg4QTkuNTQsOS41NCwwLDAsMCwxNSwzMy41MmMzLjctMS4xOSw2LjItNC4zNyw2LjA2LTcuNDIsMCwwLDAsMCwwLDBWOC40OWMxLC4xMiwyLjM3LjMzLDMuODIuNjRhMTEuMTcsMTEuMTcsMCwwLDEsNC4wNiwxLjQ2YzEsLjY2LjM4LDEu'@; put 'OS4zMywyYTExLjgsMTEuOCwwLDAsMS0xLjY2LDIsMSwxLDAsMCwwLDEuMzMsMS40OUMyOS4xNSwxNS44NSwzNC41LDExLDMxLjY4LDYuMTZaIi8+JyksYi5DbHJTaGFwZUltYWdlR2FsbGVyeT0oMCxfLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIuMTIsMTBIMy44OEExLjg4LDEuODgsMCww'@; put 'LDAsMiwxMS44OFYzMC4xMkExLjg4LDEuODgsMCwwLDAsMy44OCwzMkgzMi4xMkExLjg4LDEuODgsMCwwLDAsMzQsMzAuMTJWMTEuODhBMS44OCwxLjg4LDAsMCwwLDMyLjEyLDEwWk0zMiwzMEg0VjEySDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+'@; put 'PHBhdGggZD0iTTguNTYsMTkuNDVhMywzLDAsMSwwLTMtM0EzLDMsMCwwLDAsOC41NiwxOS40NVptMC00LjZBMS42LDEuNiwwLDEsMSw3LDE2LjQ1LDEuNiwxLjYsMCwwLDEsOC41NiwxNC44NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9'@; put 'Ik03LjksMjhsNi02LDMuMTgsMy4xOEwxNC4yNiwyOGgybDcuNDYtNy40NkwzMCwyNi43N3YtMkwyNC4yLDE5YS43MS43MSwwLDAsMC0xLDBsLTUuMTYsNS4xNkwxNC4zNywyMC41YS43MS43MSwwLDAsMC0xLDBMNS45MiwyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMC4xNCwzaDBhMSwxLDAsMCwwLTEtMWgtMjJhMSwxLDAsMCwwLTEsMWgwVjRoMjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMzIuMTIsN1Y3YTEsMSwwLDAsMC0xLTFoLTI2YTEsMSwwLDAsMC0x'@; put 'LDFoMFY4aDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTMwLjE0LDNoMGExLDEsMCwwLDAtMS0xaC0yMmExLDEsMCwwLDAtMSwxaDBWNGgyNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGgg'@; put 'ZD0iTTMyLjEyLDdWN2ExLDEsMCwwLDAtMS0xaC0yNmExLDEsMCwwLDAtMSwxaDBWOGgyOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTMyLjEyLDEwSDMuODhBMS44OCwxLjg4LDAsMCwwLDIsMTEuODhWMzAuMTJBMS44OCwxLjg4LDAsMCww'@; put 'LDMuODgsMzJIMzIuMTJBMS44OCwxLjg4LDAsMCwwLDM0LDMwLjEyVjExLjg4QTEuODgsMS44OCwwLDAsMCwzMi4xMiwxMFpNOC41NiwxMy40NWEzLDMsMCwxLDEtMywzQTMsMywwLDAsMSw4LjU2LDEzLjQ1Wk0zMCwyOGgtMjRsNy40Ni03LjQ3YS43MS43MSwwLDAsMSwxLDBsMy42OCwzLjY4'@; put 'TDIzLjIxLDE5YS43MS43MSwwLDAsMSwxLDBMMzAsMjQuNzlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPicpLGIuQ2xyU2hhcGVSZXBsYXlBbGw9KDAsXy5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE3LjQ2LDI2LjIyYTEuNCwxLjQsMCwwLDAsMS0uNDJsNS41'@; put 'OS01LjU2YTEuNDMsMS40MywwLDAsMCwuNDItMSwxLjQ2LDEuNDYsMCwwLDAtLjQyLTFsLTUuNTktNS41NmExLjQzLDEuNDMsMCwwLDAtMi40NCwxVjI0Ljc5YTEuNDEsMS40MSwwLDAsMCwuODgsMS4zMkExLjU0LDEuNTQsMCwwLDAsMTcuNDYsMjYuMjJabS4xNi0xMi4xNiw1LjE5LDUuMTYt'@; put 'NS4xOSw1LjE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LjA2LDVoLTYuN2wyLjkyLTIuNjRBMSwxLDAsMCwwLDEyLjk0Ljg4TDcuMzIsNiwxMi45NCwxMWExLDEsMCwwLDAsLjY3LjI2LDEsMSwwLDAsMCwuNzQtLjMzLDEsMSww'@; put 'LDAsMC0uMDctMS40MkwxMS40Niw3aDYuNkExMS43OCwxMS43OCwwLDEsMSw3LjcxLDI0LjQxLDEsMSwwLDAsMCw2LDI1LjM2LDEzLjc4LDEzLjc4LDAsMSwwLDE4LjA2LDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxiLkNsclNoYXBlUmVwbGF5'@; put 'T25lPSgwLF8uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOSwyNy4yN2ExLDEsMCwwLDAsMS0xVjE0YTEsMSwwLDAsMC0xLTFIMTlhMy44LDMuOCwwLDAsMC0xLjEuMjNsLTIsLjYyYS45Mi45MiwwLDAsMC0uNzIuODYuODguODgsMCwwLDAsLjg4Ljg2LDEuNDYsMS40NiwwLDAsMCwuNDMtLjA4'@; put 'TDE4LDE1LjA3djExLjJBMSwxLDAsMCwwLDE5LDI3LjI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LjA2LDVoLTYuN2wyLjkyLTIuNjRBMSwxLDAsMCwwLDEyLjk0Ljg4TDcuMzIsNiwxMi45NCwxMWExLDEsMCwwLDAsLjY3LjI2'@; put 'LDEsMSwwLDAsMCwuNzQtLjMzLDEsMSwwLDAsMC0uMDctMS40MkwxMS40Niw3aDYuNkExMS43OCwxMS43OCwwLDEsMSw3LjcxLDI0LjQxLDEsMSwwLDAsMCw2LDI1LjM2LDEzLjc4LDEzLjc4LDAsMSwwLDE4LjA2LDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'MiIgLz4nKSxiLkNsclNoYXBlVmlkZW9HYWxsZXJ5PSgwLF8uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMi4xMiwxMEgzLjg4QTEuODgsMS44OCwwLDAsMCwyLDExLjg4VjMwLjEyQTEuODgsMS44OCwwLDAsMCwzLjg4LDMySDMyLjEyQTEuODgsMS44OCwwLDAsMCwzNCwzMC4xMlYxMS44OEEx'@; put 'Ljg4LDEuODgsMCwwLDAsMzIuMTIsMTBaTTMyLDMwSDRWMTJIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzAuMTQsM2gwYTEsMSwwLDAsMC0xLTFoLTIyYTEsMSwwLDAsMC0xLDFoMFY0aDI0WiIgY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTMyLjEyLDdWN2ExLDEsMCwwLDAtMS0xaC0yNmExLDEsMCwwLDAtMSwxaDBWOGgyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0xMi44MiwyNi43OWExLjc0LDEuNzQs'@; put 'MCwwLDAsLjkzLjI4LDEuNjgsMS42OCwwLDAsMCwuNjktLjE1bDkuNzctNC4zNmExLjY5LDEuNjksMCwwLDAsMC0zLjFMMTQuNDQsMTUuMWExLjcsMS43LDAsMCwwLTIuMzksMS41NXY4LjcyQTEuNywxLjcsMCwwLDAsMTIuODIsMjYuNzlabS42My0xMC4xNGEuMjkuMjksMCwwLDEsLjE0LS4y'@; put 'NS4zLjMsMCwwLDEsLjE2LDAsLjI3LjI3LDAsMCwxLC4xMiwwbDkuNzcsNC4zNWEuMjkuMjksMCwwLDEsLjE4LjI4LjI4LjI4LDAsMCwxLS4xOC4yN2wtOS43Nyw0LjM2YS4yOC4yOCwwLDAsMS0uMjgsMCwuMzEuMzEsMCwwLDEtLjE0LS4yNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMi4xMiwxMEgzLjg4QTEuODgsMS44OCwwLDAsMCwyLDExLjg4VjMwLjEyQTEuODgsMS44OCwwLDAsMCwzLjg4LDMySDMyLjEyQTEuODgsMS44OCwwLDAsMCwzNCwzMC4xMlYxMS44OEExLjg4LDEuODgsMCwwLDAsMzIuMTIsMTBaTTI0LjE4'@; put 'LDIxLjgzbC05Ljc3LDQuMzZBMSwxLDAsMCwxLDEzLDI1LjI4VjE2LjU2YTEsMSwwLDAsMSwxLjQxLS45MUwyNC4xOCwyMEExLDEsMCwwLDEsMjQuMTgsMjEuODNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMC4xNCwzaDBhMSwxLDAsMCww'@; put 'LTEtMWgtMjJhMSwxLDAsMCwwLTEsMWgwVjRoMjRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMi4xMiw3VjdhMSwxLDAsMCwwLTEtMWgtMjZhMSwxLDAsMCwwLTEsMWgwVjhoMjhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQt'@; put 'cGF0aC0zIiAvPicpLGIuQ2xyU2hhcGVNaWNyb3Bob25lPSgwLF8uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyNGMzLjksMCw3LTMuMSw3LTdWOWMwLTMuOS0zLjEtNy03LTdzLTcsMy4xLTcsN3Y4QzExLDIwLjksMTQuMSwyNCwxOCwyNHogTTEzLDljMC0yLjgsMi4yLTUsNS01czUsMi4y'@; put 'LDUsNXY4XG5cdFx0YzAsMi44LTIuMiw1LTUsNXMtNS0yLjItNS01Vjl6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzAsMTdoLTJjMCw1LjUtNC41LDEwLTEwLDEwUzgsMjIuNSw4LDE3SDZjMCw2LjMsNC44LDExLjQsMTEsMTEuOVYz'@; put 'MmgtM2MtMC42LDAtMSwwLjQtMSwxczAuNCwxLDEsMWg4YzAuNiwwLDEtMC40LDEtMVxuXHRcdHMtMC40LTEtMS0xaC0zdi0zLjFDMjUuMiwyOC40LDMwLDIzLjMsMzAsMTd6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTgsMjRjMy45'@; put 'LDAsNy0zLjEsNy03VjljMC0zLjktMy4xLTctNy03cy03LDMuMS03LDd2OEMxMSwyMC45LDE0LjEsMjQsMTgsMjR6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMCwxN2gtMmMwLDUuNS00LjUsMTAtMTAsMTBTOCwyMi41LDgsMTdINmMwLDYu'@; put 'Myw0LjgsMTEuNCwxMSwxMS45VjMyaC0zYy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDhjMC42LDAsMS0wLjQsMS0xXG5cdFx0cy0wLjQtMS0xLTFoLTN2LTMuMUMyNS4yLDI4LjQsMzAsMjMuMywzMCwxN3oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+Jyks'@; put 'Yi5DbHJTaGFwZU1pY3JvcGhvbmVNdXRlPSgwLF8uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMCwxN2gtMmMwLDEuOC0wLjUsMy41LTEuNCw1bDEuNSwxLjVDMjkuMywyMS41LDI5LjksMTkuMywzMCwxN3oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxw'@; put 'YXRoIGQ9Ik0xOCw0YzIuOCwwLDUsMi4yLDUsNXY4YzAsMC40LTAuMSwwLjgtMC4yLDEuMmwxLjYsMS42YzAuNC0wLjksMC42LTEuOCwwLjYtMi44VjljMC0zLjktMy4yLTctNy4xLTYuOVxuXHRcdGMtMi45LDAtNS42LDEuOS02LjUsNC43TDEzLDguM0MxMy41LDUuOSwxNS42LDQuMiwxOCw0'@; put 'eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTI1LjIsMjYuNmw2LjksNi45bDEuNC0xLjRMNCwyLjZMMi42LDRsOC40LDguNFYxN2MwLDMuOSwzLjEsNyw3LDdjMS4zLDAsMi41LTAuMywzLjYtMWwyLjIsMi4yQzIyLjEsMjYuNCwyMC4x'@; put 'LDI3LDE4LDI3XG5cdFx0Yy01LjQsMC4yLTkuOC00LjEtMTAtOS40YzAtMC4yLDAtMC40LDAtMC42SDZjMC4xLDYuMiw0LjgsMTEuNCwxMSwxMnYzaC0zYy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDhjMC42LDAsMS0wLjQsMS0xXG5cdFx0cy0wLjQtMS0xLTFoLTN2LTNDMjEuMiwyOC44'@; put 'LDIzLjQsMjgsMjUuMiwyNi42eiBNMTMuOCwxOS43QzEzLjMsMTguOSwxMywxOCwxMywxN3YtMi42bDcuMSw3LjFDMTcuOSwyMi41LDE1LjIsMjEuOCwxMy44LDE5Ljd6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzAsMTdoLTJjMCwx'@; put 'LjgtMC41LDMuNS0xLjQsNWwxLjUsMS41QzI5LjMsMjEuNSwyOS45LDE5LjMsMzAsMTd6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yNSwxN1Y5YzAtMy45LTMuMi03LTcuMS02LjljLTIuOSwwLTUuNiwxLjktNi41LDQuN2wxMywxM0MyNC44'@; put 'LDE4LjksMjUsMTcuOSwyNSwxN3oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTI1LjIsMjYuNmw2LjksNi45bDEuNC0xLjRMNCwyLjZMMi42LDRsOC40LDguNFYxN2MwLDMuOSwzLjEsNyw3LDdjMS4zLDAsMi41LTAuMywzLjYtMWwyLjIsMi4y'@; put 'QzIyLjEsMjYuNCwyMC4xLDI3LDE4LDI3XG5cdFx0Yy01LjQsMC4yLTkuOC00LjEtMTAtOS40YzAtMC4yLDAtMC40LDAtMC42SDZjMC4xLDYuMiw0LjgsMTEuNCwxMSwxMnYzaC0zYy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDhjMC42LDAsMS0wLjQsMS0xXG5cdFx0cy0wLjQtMS0xLTFo'@; put 'LTN2LTNDMjEuMiwyOC44LDIzLjQsMjgsMjUuMiwyNi42eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz4nKSxiLk1lZGlhU2hhcGVzPXtwbGF5OmIuQ2xyU2hhcGVQbGF5LHBhdXNlOmIuQ2xyU2hhcGVQYXVzZSwic3RlcC1mb3J3YXJkIjpiLkNsclNoYXBlU3Rl'@; put 'cEZvcndhcmQsc3RvcDpiLkNsclNoYXBlU3RvcCxwb3dlcjpiLkNsclNoYXBlUG93ZXIscmV3aW5kOmIuQ2xyU2hhcGVSZXdpbmQsImZhc3QtZm9yd2FyZCI6Yi5DbHJTaGFwZUZhc3RGb3J3YXJkLGNhbWVyYTpiLkNsclNoYXBlQ2FtZXJhLCJ2aWRlby1jYW1lcmEiOmIuQ2xyU2hhcGVWaWRl'@; put 'b0NhbWVyYSxzaHVmZmxlOmIuQ2xyU2hhcGVTaHVmZmxlLCJ2b2x1bWUtdXAiOmIuQ2xyU2hhcGVWb2x1bWVVcCwidm9sdW1lLWRvd24iOmIuQ2xyU2hhcGVWb2x1bWVEb3duLCJ2b2x1bWUtbXV0ZSI6Yi5DbHJTaGFwZVZvbHVtZU11dGUsaGVhZHBob25lczpiLkNsclNoYXBlSGVhZHBob25l'@; put 'cywiZmlsbS1zdHJpcCI6Yi5DbHJTaGFwZUZpbG1TdHJpcCwibXVzaWMtbm90ZSI6Yi5DbHJTaGFwZU11c2ljTm90ZSwiaW1hZ2UtZ2FsbGVyeSI6Yi5DbHJTaGFwZUltYWdlR2FsbGVyeSwicmVwbGF5LWFsbCI6Yi5DbHJTaGFwZVJlcGxheUFsbCwicmVwbGF5LW9uZSI6Yi5DbHJTaGFwZVJl'@; put 'cGxheU9uZSwidmlkZW8tZ2FsbGVyeSI6Yi5DbHJTaGFwZVZpZGVvR2FsbGVyeSxtaWNyb3Bob25lOmIuQ2xyU2hhcGVNaWNyb3Bob25lLCJtaWNyb3Bob25lLW11dGUiOmIuQ2xyU2hhcGVNaWNyb3Bob25lTXV0ZX0sdHlwZW9mIHdpbmRvdzwidSImJndpbmRvdy5oYXNPd25Qcm9wZXJ0eSgi'@; put 'Q2xhcml0eUljb25zIikmJndpbmRvdy5DbGFyaXR5SWNvbnMuYWRkKGIuTWVkaWFTaGFwZXMpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL3NvY2lhbC1zaGFwZXMudHMiOgovKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqISpcCiAg'@; put 'ICAgICAgICAgICAgICAgICEqKiogLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL3NvY2lhbC1zaGFwZXMudHMgKioqIQogICAgICAgICAgICAgICAgICBcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyohIG5vIHN0YXRpYyBleHBvcnRz'@; put 'IGZvdW5kICovZnVuY3Rpb24oSixiLEQpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoYiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksYi5Tb2NpYWxTaGFwZXM9Yi5DbHJTaGFwZUhhc2h0YWc9Yi5DbHJTaGFwZUNyb3duPWIuQ2xyU2hhcGVUaHVtYnNEb3duPWIuQ2xyU2hh'@; put 'cGVUaHVtYnNVcD1iLkNsclNoYXBlU2FkRmFjZT1iLkNsclNoYXBlTmV1dHJhbEZhY2U9Yi5DbHJTaGFwZUhhcHB5RmFjZT1iLkNsclNoYXBlUGljdHVyZT1iLkNsclNoYXBlQ2hhdEJ1YmJsZT1iLkNsclNoYXBlVGFsa0J1YmJsZXM9Yi5DbHJTaGFwZUhlYXJ0QnJva2VuPWIuQ2xyU2hhcGVI'@; put 'ZWFydD1iLkNsclNoYXBlSW5ib3g9Yi5DbHJTaGFwZUZsYWc9Yi5DbHJTaGFwZVRhc2tzPWIuQ2xyU2hhcGVFbnZlbG9wZT1iLkNsclNoYXBlQm9va21hcms9Yi5DbHJTaGFwZUhhbGZTdGFyPWIuQ2xyU2hhcGVTdGFyPWIuQ2xyU2hhcGVTaGFyZT12b2lkIDA7dmFyIF89RCgKLyohIC4uL3V0'@; put 'aWxzL2Rlc2NyaXB0b3ItY29uZmlnICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9kZXNjcmlwdG9yLWNvbmZpZy50cyIpLHA9RCgKLyohIC4uL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yICovCiIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyIp'@; put 'LE49RCgKLyohIC4vY29yZS1zaGFwZXMgKi8KIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9jb3JlLXNoYXBlcy50cyIpO2IuQ2xyU2hhcGVTaGFyZT0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI3LjUz'@; put 'LDI0YTUsNSwwLDAsMC0zLjYsMS41NUwxMS43NCwxOS40NWE0LjQ3LDQuNDcsMCwwLDAsMC0yLjhsMTIuMjEtNi4yMWE1LjEyLDUuMTIsMCwxLDAtMS4wNy0xLjdMMTAuNzksMTQuODlhNSw1LDAsMSwwLDAsNi4zM2wxMi4wNiw2LjA3QTQuOTMsNC45MywwLDAsMCwyMi41NCwyOWE1LDUsMCwx'@; put 'LDAsNS01Wm0wLTIwYTMsMywwLDEsMS0zLDNBMywzLDAsMCwxLDI3LjUzLDRaTTcsMjFhMywzLDAsMSwxLDMtM0EzLDMsMCwwLDEsNywyMVpNMjcuNTMsMzJhMywzLDAsMSwxLDMtM0EzLDMsMCwwLDEsMjcuNTMsMzJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNv'@; put 'bGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI3LjUzLDI0YTUsNSwwLDAsMC0zLjYsMS41NUwxMS43NCwxOS40NWE0LjQ3LDQuNDcsMCwwLDAsMC0yLjhsMTIuMjEtNi4yMWE1LjEyLDUuMTIsMCwxLDAtMS4wNy0xLjdMMTAuNzksMTQuODlhNSw1LDAsMSwwLDAsNi4zM2wxMi4wNiw2LjA3'@; put 'QTQuOTMsNC45MywwLDAsMCwyMi41NCwyOWE1LDUsMCwxLDAsNS01WiIvPicpLGIuQ2xyU2hhcGVTdGFyPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjcuMTksMzRhMi4yMiwyLjIyLDAsMCwxLTEuMjQtLjM4'@; put 'bC03LjQ2LTVhLjIyLjIyLDAsMCwwLS4yNSwwbC03LjQ2LDVBMi4yMiwyLjIyLDAsMCwxLDcuNCwzMS4yMWwyLjQ1LTguNjRhLjIzLjIzLDAsMCwwLS4wOC0uMjRMMi43MSwxNi43OGEyLjIyLDIuMjIsMCwwLDEsMS4yOS00bDktLjM0YS4yMy4yMywwLDAsMCwuMi0uMTVsMy4xLTguNDNhMi4y'@; put 'MiwyLjIyLDAsMCwxLDQuMTcsMGwzLjEsOC40M2EuMjMuMjMsMCwwLDAsLjIuMTVsOSwuMzRhMi4yMiwyLjIyLDAsMCwxLDEuMjksNEwyNywyMi4zM2EuMjIuMjIsMCwwLDAtLjA4LjI0bDIuNDUsOC42NEEyLjIzLDIuMjMsMCwwLDEsMjcuMTksMzRabS04LjgyLTcuNDJBMi4yMSwyLjIxLDAs'@; put 'MCwxLDE5LjYsMjdsNy40Niw1YS4yMi4yMiwwLDAsMCwuMzQtLjI1bC0yLjQ1LTguNjRhMi4yMSwyLjIxLDAsMCwxLC43Ny0yLjM1bDcuMDYtNS41NWEuMjIuMjIsMCwwLDAtLjEzLS40bC05LS4zNGEyLjIyLDIuMjIsMCwwLDEtMi0xLjQ2bC0zLjEtOC40M2EuMjIuMjIsMCwwLDAtLjQyLDBM'@; put 'MTUuMDYsMTNhMi4yMiwyLjIyLDAsMCwxLTIsMS40NmwtOSwuMzRhLjIyLjIyLDAsMCwwLS4xMy40TDExLDIwLjc2YTIuMjIsMi4yMiwwLDAsMSwuNzcsMi4zNUw5LjMzLDMxLjc1YS4yMS4yMSwwLDAsMCwuMDguMjQuMi4yLDAsMCwwLC4yNiwwbDcuNDYtNUEyLjIyLDIuMjIsMCwwLDEsMTgu'@; put 'MzYsMjYuNjJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTM0LDE2Ljc4YTIuMjIsMi4yMiwwLDAsMC0xLjI5LTRsLTktLjM0YS4yMy4yMywwLDAsMS0uMi0uMTVMMjAuNCwzLjg5YTIuMjIsMi4yMiwwLDAsMC00'@; put 'LjE3LDBsLTMuMSw4LjQzYS4yMy4yMywwLDAsMS0uMi4xNWwtOSwuMzRhMi4yMiwyLjIyLDAsMCwwLTEuMjksNGw3LjA2LDUuNTVhLjIzLjIzLDAsMCwxLC4wOC4yNEw3LjM1LDMxLjIxYTIuMjIsMi4yMiwwLDAsMCwzLjM4LDIuNDVsNy40Ni01YS4yMi4yMiwwLDAsMSwuMjUsMGw3LjQ2LDVh'@; put 'Mi4yLDIuMiwwLDAsMCwyLjU1LDAsMi4yLDIuMiwwLDAsMCwuODMtMi40bC0yLjQ1LTguNjRhLjIyLjIyLDAsMCwxLC4wOC0uMjRaIi8+JyksYi5DbHJTaGFwZUhhbGZTdGFyPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0x'@; put 'IiBkPSJNMzQsMTYuNzhhMi4yMiwyLjIyLDAsMCwwLTEuMjktNGwtOS0uMzRhLjIzLjIzLDAsMCwxLS4yLS4xNUwyMC40LDMuODlhMi4yMiwyLjIyLDAsMCwwLTQuMTcsMGwtMy4xLDguNDNhLjIzLjIzLDAsMCwxLS4yLjE1bC05LC4zNGEyLjIyLDIuMjIsMCwwLDAtMS4yOSw0bDcuMDYsNS41'@; put 'NWEuMjIuMjIsMCwwLDEsLjA4LjI0TDcuMzUsMzEuMjFBMi4yMywyLjIzLDAsMCwwLDkuNDksMzRhMi4yMiwyLjIyLDAsMCwwLDEuMjQtLjM4bDcuNDYtNWEuMjIuMjIsMCwwLDEsLjI1LDBsNy40Niw1YTIuMjIsMi4yMiwwLDAsMCwzLjM4LTIuNDVsLTIuNDUtOC42NGEuMjMuMjMsMCwwLDEs'@; put 'LjA4LS4yNFpNMTguMzMsMjYuNjJoMGEyLjIxLDIuMjEsMCwwLDAtMS4yNC4zOEw5LjYyLDMyYS4yMi4yMiwwLDAsMS0uMzQtLjI1bDIuNDUtOC42NEEyLjIxLDIuMjEsMCwwLDAsMTEsMjAuNzZMMy45LDE1LjIxYS4yMi4yMiwwLDAsMSwuMTMtLjRsOS0uMzRBMi4yMiwyLjIyLDAsMCwwLDE1'@; put 'LDEzbDMuMS04LjQzYS4yLjIsMCwwLDEsLjIxLS4xNWgwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNCwxNi43OGEyLjIyLDIuMjIsMCwwLDAtMS4yOS00bC05LS4zNGEuMjMuMjMsMCwwLDEtLjItLjE1TDIw'@; put 'LjQsMy44OWEyLjIyLDIuMjIsMCwwLDAtNC4xNywwbC0zLjEsOC40M2EuMjMuMjMsMCwwLDEtLjIuMTVsLTksLjM0YTIuMjIsMi4yMiwwLDAsMC0xLjI5LDRsNy4wNiw1LjU1YS4yMy4yMywwLDAsMSwuMDguMjRMNy4zNSwzMS4yMWEyLjIyLDIuMjIsMCwwLDAsMy4zOCwyLjQ1bDcuNDYtNWEu'@; put 'MjIuMjIsMCwwLDEsLjI1LDBsNy40Niw1YTIuMiwyLjIsMCwwLDAsMi41NSwwLDIuMiwyLjIsMCwwLDAsLjgzLTIuNGwtMi40NS04LjY0YS4yMi4yMiwwLDAsMSwuMDgtLjI0Wk0yNC45LDIzLjExbDIuNDUsOC42NEEuMjIuMjIsMCwwLDEsMjcsMzJsLTcuNDYtNWEyLjIxLDIuMjEsMCwwLDAt'@; put 'MS4yNC0uMzhoMFY0LjQ0aDBhLjIuMiwwLDAsMSwuMjEuMTVMMjEuNjIsMTNhMi4yMiwyLjIyLDAsMCwwLDIsMS40Nmw5LC4zNGEuMjIuMjIsMCwwLDEsLjEzLjRsLTcuMDYsNS41NUEyLjIxLDIuMjEsMCwwLDAsMjQuOSwyMy4xMVoiLz4nKSxiLkNsclNoYXBlQm9va21hcms9KDAscC5jbHJJ'@; put 'Y29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yNiwzNGEyLDIsMCwwLDEtMS40MS0uNThMMTgsMjYuODJsLTYuNTQsNi41MkEyLDIsMCwwLDEsOCwzMS45M1Y0YTIsMiwwLDAsMSwyLTJIMjZhMiwyLDAsMCwxLDIsMlYzMmEyLDIs'@; put 'MCwwLDEtMiwyWm0wLTJoMFY0SDEwVjMxLjkzTDE4LDI0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yNiwySDEwQTIsMiwwLDAsMCw4LDRWMzEuOTNhMiwyLDAsMCwwLDMuNDIsMS40MWw2LjU0LTYuNTIsNi42'@; put 'Myw2LjZBMiwyLDAsMCwwLDI4LDMyVjRBMiwyLDAsMCwwLDI2LDJaIi8+JyksYi5DbHJTaGFwZUVudmVsb3BlPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAs'@; put 'MCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTMwLjQ2LDI4SDUuNjZsNy03LjI0LTEuNDQtMS4zOUw0LDI2Ljg0VjkuNTJMMTYuNDMsMjEuODlhMiwyLDAsMCwwLDIuODIsMEwzMiw5LjIxdjE3LjVsLTcuMzYtNy4zNi0xLjQxLDEuNDFaTTUuMzEsOEgzMC4zOEwx'@; put 'Ny44NCwyMC40N1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMiwxMy4wOFYyNi43MWwtNy4zNi03LjM2LTEuNDEsMS40MUwzMC40NiwyOEg1LjY2bDctNy4yNC0xLjQ0LTEu'@; put 'MzlMNCwyNi44NFY5LjUyTDE2LjQzLDIxLjg5YTIsMiwwLDAsMCwyLjgyLDBsOC44My04Ljc4YTcuNDQsNy40NCwwLDAsMS0yLS44NWwtOC4yNiw4LjIxTDUuMzEsOEgyMi44MWE3LjQ5LDcuNDksMCwwLDEtLjMxLTJINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAs'@; put 'MCwwLDItMlYxMi4yQTcuNDUsNy40NSwwLDAsMSwzMiwxMy4wOFoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNS44NiIgcj0iNSIvPlxu'@; put 'ICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuMjZIMzJWMjYuNzFsLTcuMzYtNy4zNi0xLjQxLDEuNDFMMzAuNDYsMjhINS42Nmw3LTcuMjQtMS40NC0xLjM5TDQsMjYu'@; put 'ODRWOS41MkwxNi40MywyMS44OWEyLDIsMCwwLDAsMi44MiwwbDYuNjYtNi42M0gyMy4wOGwtNS4yNCw1LjIxTDUuMzEsOEgyMC4wNmwxLjE1LTJINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxNS4yNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0'@; put 'aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDFsLTUuNzIsOS45MWExLjI4LDEuMjgsMCwwLDAsMS4xLDEuOTFIMzMuNjhhMS4yOCwxLjI4LDAsMCwwLDEuMS0xLjkxTDI5LjA2LDFBMS4y'@; put 'OCwxLjI4LDAsMCwwLDI2Ljg1LDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLjMzLDZhMiwyLDAsMCwwLS40MSwwaC0yOGEyLDIsMCwwLDAtLjUzLjA4TDE3Ljg0LDIwLjQ3WiIvPlxuICAgICAgICAgICAg'@; put 'ICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0zMy44MSw3LjM5LDE5LjI1LDIxLjg5YTIsMiwwLDAsMS0yLjgyLDBMMiw3LjVhMiwyLDAsMCwwLS4wNy41VjI4YTIsMiwwLDAsMCwyLDJoMjhhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMy44'@; put 'MSw3LjM5Wk01LjMsMjhIMy45MVYyNi41N2w3LjI3LTcuMjEsMS40MSwxLjQxWm0yNi42MSwwSDMwLjUxbC03LjI5LTcuMjMsMS40MS0xLjQxLDcuMjcsNy4yMVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEt'@; put 'LWJhZGdlZCIgZD0iTTI2LDEyLjM0QTcuNDksNy40OSwwLDAsMSwyMi41LDZIMy45MmEyLDIsMCwwLDAtLjUzLjA4TDE3Ljg0LDIwLjQ3WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBkPSJN'@; put 'MzAsMTMuNWE3LjQ5LDcuNDksMCwwLDEtMi0uMjlsLTguNzEsOC42OGEyLDIsMCwwLDEtMi44MiwwTDIsNy41YTIsMiwwLDAsMC0uMDcuNVYyOGEyLDIsMCwwLDAsMiwyaDI4YTIsMiwwLDAsMCwyLTJWMTIuMzlBNy40NSw3LjQ1LDAsMCwxLDMwLDEzLjVaTTUuMywyOEgzLjkxVjI2LjU3bDcu'@; put 'MjctNy4yMSwxLjQxLDEuNDFabTI2LjYxLDBIMzAuNTFsLTcuMjktNy4yMywxLjQxLTEuNDEsNy4yNyw3LjIxWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIz'@; put 'MCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNEgyNS43N2wtNi41Miw2LjQ5YTIsMiwwLDAsMS0yLjgyLDBMMiw3LjVhMiwyLDAsMCwwLS4w'@; put 'Ny41VjI4YTIsMiwwLDAsMCwyLDJoMjhhMiwyLDAsMCwwLDItMlYxNS4zOFpNNS4zLDI4SDMuOTFWMjYuNTdsNy4yNy03LjIxLDEuNDEsMS40MVptMjYuNjEsMEgzMC41MWwtNy4yOS03LjIzLDEuNDEtMS40MSw3LjI3LDcuMjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNs'@; put 'ci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTIyLjk0LDE1LjRoLS43QTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDIxLjI5LDZIMy45MmEyLDIsMCwwLDAtLjUzLjA4TDE3Ljg0LDIwLjQ3WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNz'@; put 'PSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgs'@; put 'MCwwLDAsMjYuODUsMS4xNFoiLz4nKSxiLkNsclNoYXBlVGFza3M9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yOS4yOSwzNEg2LjcxQTEuNywxLjcsMCwwLDEsNSwzMi4zMVY2LjY5QTEuNzUsMS43NSwwLDAs'@; put 'MSw3LDVIOVY3SDdWMzJIMjlWN0gyN1Y1aDIuMjVBMS43LDEuNywwLDAsMSwzMSw2LjY5VjMyLjMxQTEuNywxLjcsMCwwLDEsMjkuMjksMzRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xNi42NiwyNS43'@; put 'NiwxMS4zLDIwLjRBMSwxLDAsMCwxLDEyLjcyLDE5bDMuOTQsMy45NCw4LjY0LTguNjRhMSwxLDAsMCwxLDEuNDEsMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTI2LDExSDEwVjcuMzNBMi4zNCwy'@; put 'LjM0LDAsMCwxLDEyLjMzLDVoMS43OWE0LDQsMCwwLDEsNy43NSwwaDEuNzlBMi4zNCwyLjM0LDAsMCwxLDI2LDcuMzNaTTEyLDlIMjRWNy4zM0EuMzMuMzMsMCwwLDAsMjMuNjcsN0gyMFY2YTIsMiwwLDAsMC00LDBWN0gxMi4zM2EuMzMuMzMsMCwwLDAtLjMzLjMzWiIvPlxuICAgICAgICAg'@; put 'ICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTksOS44OSwxOS41Niw5SDEyVjcuMzNBLjMzLjMzLDAsMCwxLDEyLjMzLDdIMTZWNmEyLDIsMCwwLDEsNCwwVjdoLjcxbDEuMTYtMmE0LDQsMCwwLDAt'@; put 'Ny43NCwwSDEyLjMzQTIuMzQsMi4zNCwwLDAsMCwxMCw3LjMzVjExaDguNjRBMy42NSwzLjY1LDAsMCwxLDE5LDkuODlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0yNC4x'@; put 'OSwxNS40bC03LjUzLDcuNTNMMTIuNzIsMTlBMSwxLDAsMCwwLDExLjMsMjAuNGw1LjM2LDUuMzZMMjYuNzEsMTUuNzFhMSwxLDAsMCwwLC4yLS4zMVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0t'@; put 'YWxlcnRlZCIgZD0iTTI5LDE1LjRWMzJIN1Y3SDlWNUg3QTEuNzUsMS43NSwwLDAsMCw1LDYuNjlWMzIuMzFBMS43LDEuNywwLDAsMCw2LjcxLDM0SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMzFWMTUuNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44'@; put 'NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTEyLjcyLDE5QTEsMSwwLDAsMCwxMS4zLDIwLjRsNS4zNiw1LjM2TDI2LjcxLDE1LjcxYTEsMSwwLDAsMC0xLjQxLTEu'@; put 'NDFsLTguNjQsOC42NFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0yMy4xMyw5SDEyVjcuMzNBLjMzLjMzLDAsMCwxLDEyLjMzLDdIMTZWNmEyLDIsMCwwLDEsNCwwVjdoMi41'@; put 'N2E3LjUyLDcuNTIsMCwwLDEtLjA3LTEsNy41Miw3LjUyLDAsMCwxLC4wNy0xaC0uN2E0LDQsMCwwLDAtNy43NSwwSDEyLjMzQTIuMzQsMi4zNCwwLDAsMCwxMCw3LjMzVjExSDI0LjQyQTcuNSw3LjUsMCwwLDEsMjMuMTMsOVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0zMCwxMy41YTcuNTIsNy41MiwwLDAsMS0xLS4wN1YzMkg3VjdIOVY1SDdBMS43NSwxLjc1LDAsMCwwLDUsNi42OVYzMi4zMUExLjcsMS43LDAsMCwwLDYuNzEsMzRIMjkuMjlBMS43LDEuNywwLDAs'@; put 'MCwzMSwzMi4zMVYxMy40M0E3LjUyLDcuNTIsMCwwLDEsMzAsMTMuNVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxu'@; put 'ICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yOS4yOSw0Ljk1aC03LjJhNC4zMSw0LjMxLDAsMCwwLTguMTcsMEg3QTEuNzUsMS43NSwwLDAsMCw1LDYuNjRWMzIuMjZhMS43LDEuNywwLDAsMCwxLjcxLDEuNjlIMjkuMjlB'@; put 'MS43LDEuNywwLDAsMCwzMSwzMi4yNlY2LjY0QTEuNywxLjcsMCwwLDAsMjkuMjksNC45NVptLTE4LDNhMSwxLDAsMCwxLDEtMWgzLjQ0VjYuMzJhMi4zMSwyLjMxLDAsMCwxLDQuNjMsMFY3aDMuNDRhMSwxLDAsMCwxLDEsMVY5LjhIMTEuMjVabTE0LjUyLDkuMjMtOS4xMiw5LjEyLTUuMjQt'@; put 'NS4yNGExLjQsMS40LDAsMCwxLDItMmwzLjI2LDMuMjYsNy4xNC03LjE0YTEuNCwxLjQsMCwxLDEsMiwyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yNS44OCwxNS40YTEuMzgs'@; put 'MS4zOCwwLDAsMS0uMTEsMS44MWwtOS4xMiw5LjEyLTUuMjQtNS4yNGExLjQsMS40LDAsMCwxLDItMmwzLjI2LDMuMjYsNy03SDIyLjIzQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5bDAtLjA5SDExLjI1VjhhMSwxLDAsMCwxLDEtMWgzLjQ0VjYuMzJhMi4zMSwyLjMxLDAsMCwxLDQuNjMsMFY3'@; put 'aC40MkwyMiw0Ljc2YTQuMyw0LjMsMCwwLDAtOC4wOS4xOUg3QTEuNzUsMS43NSwwLDAsMCw1LDYuNjRWMzIuMjZhMS43LDEuNywwLDAsMCwxLjcxLDEuNjlIMjkuMjlBMS43LDEuNywwLDAsMCwzMSwzMi4yNlYxNS40WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1z'@; put 'b2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYu'@; put 'ODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTMwLDEzLjVhNy40OSw3LjQ5LDAsMCwxLTYuNDYtMy43SDExLjI1VjhhMSwxLDAsMCwxLDEtMWgzLjQ0VjYuMzJhMi4zMSwy'@; put 'LjMxLDAsMCwxLDQuNjMsMFY3aDIuMjZhNy41Myw3LjUzLDAsMCwxLS4wNy0xLDcuNTMsNy41MywwLDAsMSwuMDgtMS4wNWgtLjVhNC4zMSw0LjMxLDAsMCwwLTguMTcsMEg3QTEuNzUsMS43NSwwLDAsMCw1LDYuNjRWMzIuMjZhMS43LDEuNywwLDAsMCwxLjcxLDEuNjlIMjkuMjlBMS43LDEu'@; put 'NywwLDAsMCwzMSwzMi4yNlYxMy40M0E3LjUyLDcuNTIsMCwwLDEsMzAsMTMuNVptLTQuMjMsMy43MS05LjEyLDkuMTItNS4yNC01LjI0YTEuNCwxLjQsMCwwLDEsMi0ybDMuMjYsMy4yNiw3LjE0LTcuMTRhMS40LDEuNCwwLDEsMSwyLDJaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBj'@; put 'bGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLGIuQ2xyU2hhcGVGbGFnPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC0xIiBkPSJNNiwzNGExLDEsMCwwLDEtMS0xVjNBMSwxLDAsMCwxLDcsM1YzM0ExLDEsMCwwLDEsNiwzNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMwLjU1LDMuODJhMSwxLDAsMCwwLTEsMCwx'@; put 'NC45LDE0LjksMCwwLDEtNi4xMywxLjE2LDEzLjExLDEzLjExLDAsMCwxLTUuMTgtMS40OSwxMi43OCwxMi43OCwwLDAsMC01LTEuNDVBMTAuODYsMTAuODYsMCwwLDAsOSwyLjg1VjUuMDhBOC44LDguOCwwLDAsMSwxMy4yNSw0YTExLjIyLDExLjIyLDAsMCwxLDQuMiwxLjI4LDE0Ljg0LDE0'@; put 'Ljg0LDAsMCwwLDYsMS42NkExOC43NSwxOC43NSwwLDAsMCwyOSw2LjEyVjE4Ljk1YTE2LjE2LDE2LjE2LDAsMCwxLTUuNTguOTMsMTMuMTEsMTMuMTEsMCwwLDEtNS4xOC0xLjQ5LDEyLjc4LDEyLjc4LDAsMCwwLTUtMS40NUExMC44NiwxMC44NiwwLDAsMCw5LDE3Ljc5VjIwYTguOCw4Ljgs'@; put 'MCwwLDEsNC4yNS0xLjA4LDExLjIyLDExLjIyLDAsMCwxLDQuMiwxLjI4LDE0Ljg0LDE0Ljg0LDAsMCwwLDYsMS42NiwxNi43OSwxNi43OSwwLDAsMCw3LTEuMzcsMSwxLDAsMCwwLC41NS0uODlWNC42N0ExLDEsMCwwLDAsMzAuNTUsMy44MloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBj'@; put 'bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNNS45MiwyYTEsMSwwLDAsMC0xLDFWMzNhMSwxLDAsMCwwLDIsMFYzQTEsMSwwLDAsMCw1LjkyLDJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIg'@; put 'ZD0iTTMwLjUsMy44MmExLDEsMCwwLDAtMSwwLDE0LjksMTQuOSwwLDAsMS02LjEzLDEuMTYsMTMuMTEsMTMuMTEsMCwwLDEtNS4xOC0xLjQ5QTEyLjc4LDEyLjc4LDAsMCwwLDEzLjIsMiwxMC44NiwxMC44NiwwLDAsMCw5LDIuODVWMjBhOC44LDguOCwwLDAsMSw0LjI1LTEuMDgsMTEuMjIs'@; put 'MTEuMjIsMCwwLDEsNC4yLDEuMjgsMTQuODQsMTQuODQsMCwwLDAsNiwxLjY2LDE2Ljc5LDE2Ljc5LDAsMCwwLDctMS4zNywxLDEsMCwwLDAsLjU1LS44OVY0LjY3QTEsMSwwLDAsMCwzMC41LDMuODJaIi8+JyksYi5DbHJTaGFwZUluYm94PSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0x'@; put 'Mi4yMywxMy4wOWExLDEsMCwwLDAsMCwxLjQxTDE4LDIwLjNsNS43OS01Ljc5YTEsMSwwLDAsMC0xLjQxLTEuNDFMMTksMTYuNDdWMkExLDEsMCwwLDAsMTgsMWExLDEsMCwwLDAtMSwxdjE0LjVsLTMuMzgtMy4zOEExLDEsMCwwLDAsMTIuMjMsMTMuMDlaIiBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LjUsNUgyMlY3aDdWMjFIMjMuNjFsLS4xLjg5YTUuNDIsNS40MiwwLDAsMS0xMC43NywwbC0uMS0uODlIN1Y3aDdWNUg2LjVBMS41LDEuNSwwLDAsMCw1LDYuNXYyNUExLjUsMS41LDAsMCwwLDYuNSwz'@; put 'M2gyM0ExLjUsMS41LDAsMCwwLDMxLDMxLjVWNi41QTEuNSwxLjUsMCwwLDAsMjkuNSw1Wk0yOSwzMUg3VjIzaDMuOTFhNy40Miw3LjQyLDAsMCwwLDE0LjQ0LDBIMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0i'@; put 'TTEyLjIzLDEzLjA5YTEsMSwwLDAsMCwwLDEuNDFMMTgsMjAuM2w1Ljc5LTUuNzlhMSwxLDAsMCwwLTEuNDEtMS40MUwxOSwxNi40N1YyQTEsMSwwLDAsMCwxOCwxYTEsMSwwLDAsMC0xLDF2MTQuNWwtMy4zOC0zLjM4QTEsMSwwLDAsMCwxMi4yMywxMy4wOVoiIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVhNy41Miw3LjUyLDAsMCwxLTEtLjA3VjIxSDIzLjYxbC0uMS44OWE1LjQyLDUuNDIsMCwwLDEtMTAuNzcsMGwtLjEtLjg5SDdWN2g3VjVINi41QTEuNSwxLjUs'@; put 'MCwwLDAsNSw2LjV2MjVBMS41LDEuNSwwLDAsMCw2LjUsMzNoMjNBMS41LDEuNSwwLDAsMCwzMSwzMS41VjEzLjQzQTcuNTIsNy41MiwwLDAsMSwzMCwxMy41Wk0yOSwzMUg3VjIzaDMuOTFhNy40Miw3LjQyLDAsMCwwLDE0LjQ0LDBIMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+JyksYi5DbHJTaGFwZUhlYXJ0'@; put 'PSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwzMi40M2ExLDEsMCwwLDEtLjYxLS4yMUMxMS44MywyNy45LDgsMjQuMTgsNS4zMiwyMC41MSwxLjksMTUuODIsMS4xMiwxMS40OSwzLDcuNjRjMS4zNC0yLjc1LDUuMTktNSw5LjY5LTMuNjlBOS44Nyw5Ljg3LDAsMCwxLDE4LDcuNzJh'@; put 'OS44Nyw5Ljg3LDAsMCwxLDUuMzEtMy43N2M0LjQ5LTEuMjksOC4zNS45NCw5LjY5LDMuNjksMS44OCwzLjg1LDEuMSw4LjE4LTIuMzIsMTIuODdDMjgsMjQuMTgsMjQuMTcsMjcuOSwxOC42MSwzMi4yMkExLDEsMCwwLDEsMTgsMzIuNDNaTTEwLjEzLDUuNThBNS45LDUuOSwwLDAsMCw0Ljgs'@; put 'OC41MWMtMS41NSwzLjE4LS44NSw2LjcyLDIuMTQsMTAuODFBNTcuMTMsNTcuMTMsMCwwLDAsMTgsMzAuMTYsNTcuMTMsNTcuMTMsMCwwLDAsMjkuMDYsMTkuMzNjMy00LjEsMy42OS03LjY0LDIuMTQtMTAuODEtMS0yLTQtMy41OS03LjM0LTIuNjVhOCw4LDAsMCwwLTQuOTQsNC4yLDEsMSww'@; put 'LDAsMS0xLjg1LDAsNy45Myw3LjkzLDAsMCwwLTQuOTQtNC4yQTcuMzEsNy4zMSwwLDAsMCwxMC4xMyw1LjU4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMyw3LjY0Yy0xLjM0LTIuNzUtNS4yLTUtOS42OS0z'@; put 'LjY5QTkuODcsOS44NywwLDAsMCwxOCw3LjcyYTkuODcsOS44NywwLDAsMC01LjMxLTMuNzdDOC4xOSwyLjY2LDQuMzQsNC44OSwzLDcuNjRjLTEuODgsMy44NS0xLjEsOC4xOCwyLjMyLDEyLjg3QzgsMjQuMTgsMTEuODMsMjcuOSwxNy4zOSwzMi4yMmExLDEsMCwwLDAsMS4yMywwYzUuNTUt'@; put 'NC4zMSw5LjM5LTgsMTIuMDctMTEuNzFDMzQuMSwxNS44MiwzNC44OCwxMS40OSwzMyw3LjY0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPicpLGIuQ2xyU2hhcGVIZWFydEJyb2tlbj0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMsNy42NGMtMS4zNC0y'@; put 'Ljc1LTUuMDktNS05LjY5LTMuNjlhOS44Nyw5Ljg3LDAsMCwwLTYsNC44NCwxOC45LDE4LjksMCwwLDAtMi4yMyw1LjMzbDUuMjgsMi4zNC00LjYsNC4zNywzLjQ5LDQuMSwxLjUyLTEuM0wxOC41NCwyMWw1LjQtNS4xM0wxNy41OCwxM0ExNi4yMywxNi4yMywwLDAsMSwxOS43NSw4LjlhNy42'@; put 'OCw3LjY4LDAsMCwxLDQuMTEtM2MzLjM0LS44OSw2LjM0LjYsNy4zNCwyLjY1LDEuNTUsMy4xOC44NSw2LjcyLTIuMTQsMTAuODFBNTcuMTYsNTcuMTYsMCwwLDEsMTgsMzAuMTYsNTcuMTYsNTcuMTYsMCwwLDEsNi45NCwxOS4zM2MtMy00LjEtMy42OS03LjY0LTIuMTQtMTAuODFhNS45LDUu'@; put 'OSwwLDAsMSw1LjMzLTIuOTMsNy4zMSw3LjMxLDAsMCwxLDIsLjI5LDcuNyw3LjcsMCwwLDEsMy4zOCwybC4xNS0uM2ExMC42NiwxMC42NiwwLDAsMSwxLTEuNDEsOS42NCw5LjY0LDAsMCwwLTMuOTQtMi4yMkM4LjIsMi42Niw0LjM0LDQuODksMyw3LjY0Yy0xLjg4LDMuODUtMS4xLDguMTgs'@; put 'Mi4zMiwxMi44N0M4LDI0LjE4LDExLjgzLDI3LjksMTcuMzksMzIuMjJhMSwxLDAsMCwwLDEuMjMsMGM1LjU1LTQuMzEsOS4zOS04LDEyLjA3LTExLjcxQzM0LjEsMTUuODIsMzQuODgsMTEuNDksMzMsNy42NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+'@; put 'XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsNy42NGMtMS4zNC0yLjc1LTUuMi01LTkuNjktMy42OUExMS41NSwxMS41NSwwLDAsMCwxOC4xOSw3LjVhMTYuODksMTYuODksMCwwLDAtMi40OCw0LjU2TDIyLjI3LDE1LDE2LjcsMjAuMjYsMTksMjNsLTEuNTcsMS4zNC0zLjYtNC4yMiw0Ljc0'@; put 'LTQuNTEtNS40NC0yLjQxYTE5LjQ5LDE5LjQ5LDAsMCwxLDIuMy01LjUsMTQuNzcsMTQuNzcsMCwwLDEsMS4wNi0xLjU0bC4wNiwwYTkuNjYsOS42NiwwLDAsMC0zLjg5LTIuMThDOC4xOSwyLjY2LDQuMzQsNC44OSwzLDcuNjRjLTEuODgsMy44NS0xLjEsOC4xOCwyLjMyLDEyLjg3QzgsMjQu'@; put 'MTgsMTEuODMsMjcuOSwxNy4zOSwzMi4yMmExLDEsMCwwLDAsMS4yMywwYzUuNTUtNC4zMSw5LjM5LTgsMTIuMDctMTEuNzFDMzQuMSwxNS44MiwzNC44OCwxMS40OSwzMyw3LjY0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPicpLGIuQ2xyU2hhcGVUYWxrQnVi'@; put 'Ymxlcz0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjMsMjZhMSwxLDAsMCwxLTEsMUg4Yy0uMjIsMC0uNDMuMi0uNjEuMzNMNCwzMFYxNGExLDEsMCwwLDEsMS0xSDguODZWMTFINWEzLDMsMCwwLDAtMywzVjMyYTEsMSwwLDAsMCwuNTYuODksMSwxLDAsMCwwLDEtLjFMOC43MSwyOUgy'@; put 'Mi4xNUEyLjc3LDIuNzcsMCwwLDAsMjUsMjYuMTNWMjVIMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLDRIMTRhMywzLDAsMCwwLTMsM1YxOWEzLDMsMCwwLDAsMywzSDI3LjU1bDQuNzgsMy43MWExLDEs'@; put 'MCwwLDAsMSwuMTEsMSwxLDAsMCwwLC41Ny0uOVY3QTMsMywwLDAsMCwzMSw0Wk0zMiwyMi45NCwyOC41LDIwLjIxYTEsMSwwLDAsMC0uNjEtLjIxSDE0YTEsMSwwLDAsMS0xLTFWN2ExLDEsMCwwLDEsMS0xSDMxQTEuMSwxLjEsMCwwLDEsMzIsNy4wNloiIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMsMjZhMSwxLDAsMCwxLTEsMUg4Yy0uMjIsMC0uNDMuMi0uNjEuMzNMNCwzMFYxNGExLDEsMCwwLDEsMS0xSDguODZWMTFINWEzLDMsMCwwLDAtMywzVjMyYTEsMSwwLDAsMCwuNTYuODksMSwxLDAsMCww'@; put 'LDEtLjFMOC43MSwyOUgyMi4xNUEyLjc3LDIuNzcsMCwwLDAsMjUsMjYuMTNWMjVIMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiwxMy4yMnY5LjcyTDI4LjUsMjAuMjFhMSwx'@; put 'LDAsMCwwLS42MS0uMjFIMTRhMSwxLDAsMCwxLTEtMVY3YTEsMSwwLDAsMSwxLTFIMjIuNWE3LjQ5LDcuNDksMCwwLDEsLjI4LTJIMTRhMywzLDAsMCwwLTMsM1YxOWEzLDMsMCwwLDAsMywzSDI3LjU1bDQuNzgsMy43MWExLDEsMCwwLDAsMSwuMTEsMSwxLDAsMCwwLC41Ny0uOVYxMi4zN0E3'@; put 'LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOCwxOVYxMUg1YTMsMywwLDAsMC0zLDNWMzJhMSwxLDAsMCwwLC41Ni44OSwxLDEsMCwwLDAsMS0uMUw4LjcxLDI5SDIyLjE1QTIuNzcsMi43NywwLDAsMCwyNSwyNi4xM1YyNUgxNEE2'@; put 'LDYsMCwwLDEsOCwxOVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMSw0SDE0YTMsMywwLDAsMC0zLDNWMTlhMywzLDAsMCwwLDMsM0gyNy41NWw0Ljc4LDMuNzFhMSwxLDAsMCwwLDEsLjExLDEsMSwwLDAsMCwuNTct'@; put 'LjlWN0EzLDMsMCwwLDAsMzEsNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik04LDE5VjExSDVhMywzLDAsMCwwLTMsM1YzMmExLDEsMCwwLDAsLjU2Ljg5LDEsMSwwLDAsMCwxLS4xTDguNzEsMjlIMjIuMTVBMi43Nywy'@; put 'Ljc3LDAsMCwwLDI1LDI2LjEzVjI1SDE0QTYsNiwwLDAsMSw4LDE5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41QTcuNDgsNy40OCwwLDAsMSwyMi43OCw0SDE0YTMsMywwLDAs'@; put 'MC0zLDNWMTlhMywzLDAsMCwwLDMsM0gyNy41NWw0Ljc4LDMuNzFhMSwxLDAsMCwwLDEsLjExLDEsMSwwLDAsMCwuNTctLjlWMTIuMzdBNy40NSw3LjQ1LDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAg'@; put 'ICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPicpLGIuQ2xyU2hhcGVDaGF0QnViYmxlPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyLjVj'@; put 'LTguODIsMC0xNiw2LjI4LTE2LDE0czcuMTgsMTQsMTYsMTRhMTgsMTgsMCwwLDAsNC44OC0uNjhsNS41MywzLjUyYTEsMSwwLDAsMCwxLjU0LS44NGwwLTYuNzNhMTMsMTMsMCwwLDAsNC05LjI3QzM0LDguNzgsMjYuODIsMi41LDE4LDIuNVpNMjguMjksMjQuNjFhMSwxLDAsMCwwLS4zMi43'@; put 'M2wwLDUuMzQtNC4zOC0yLjc5YTEsMSwwLDAsMC0uODMtLjExQTE2LDE2LDAsMCwxLDE4LDI4LjVjLTcuNzIsMC0xNC01LjM4LTE0LTEyczYuMjgtMTIsMTQtMTIsMTQsNS4zOCwxNCwxMkExMS4wOCwxMS4wOCwwLDAsMSwyOC4yOSwyNC42MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1LDE1LjVIMTFhMSwxLDAsMCwwLDAsMkgyNWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEuNzUsMjAu'@; put 'NWgtNy41YTEsMSwwLDAsMCwwLDJoNy41YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS4yOCwxMi41SDI0LjcyYTEsMSwwLDAsMCwwLTJIMTEuMjhhMSwxLDAsMCwwLDAsMloiIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjM4LDEyLjY5YTcuNDMsNy40MywwLDAsMS0xLjg5LjY2QTEwLjM1LDEwLjM1LDAsMCwxLDMyLDE2LjVhMTEuMDgsMTEuMDgsMCwwLDEtMy43MSw4LjExLDEsMSwwLDAs'@; put 'MC0uMzIuNzNsMCw1LjM0LTQuMzgtMi43OWExLDEsMCwwLDAtLjgzLS4xMUExNiwxNiwwLDAsMSwxOCwyOC41Yy03LjcyLDAtMTQtNS4zOC0xNC0xMnM2LjI4LTEyLDE0LTEyYTE2LDE2LDAsMCwxLDQuNTUuNjZBNy40NCw3LjQ0LDAsMCwxLDIzLDMuMjJhMTgsMTgsMCwwLDAtNS0uNzJjLTgu'@; put 'ODIsMC0xNiw2LjI4LTE2LDE0czcuMTgsMTQsMTYsMTRhMTgsMTgsMCwwLDAsNC44OC0uNjhsNS41MywzLjUyYTEsMSwwLDAsMCwxLjU0LS44NGwwLTYuNzNhMTMsMTMsMCwwLDAsNC05LjI3QTEyLjMyLDEyLjMyLDAsMCwwLDMzLjM4LDEyLjY5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJh'@; put 'ZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLDE1LjVhMSwxLDAsMCwwLDAsMkgyNWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxu'@; put 'ICAgICAgICAgICAgPHBhdGggZD0iTTE0LjI1LDIwLjVhMSwxLDAsMCwwLDAsMmg3LjVhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4yOCwxMS41YTEs'@; put 'MSwwLDAsMCwxLDFIMjQuNzJhMSwxLDAsMCwwLC44My0uNDdBNy41Myw3LjUzLDAsMCwxLDI0LDEwLjVIMTEuMjhBMSwxLDAsMCwwLDEwLjI4LDExLjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8'@; put 'Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMi41Yy04LjgyLDAtMTYsNi4yOC0xNiwxNHM3LjE4LDE0LDE2'@; put 'LDE0YTE4LDE4LDAsMCwwLDQuODgtLjY4bDUuNTMsMy41MmExLDEsMCwwLDAsMS41NC0uODRsMC02LjczYTEzLDEzLDAsMCwwLDQtOS4yN0MzNCw4Ljc4LDI2LjgyLDIuNSwxOCwyLjVabTgsMTRhMSwxLDAsMCwxLTEsMUgxMWExLDEsMCwwLDEsMC0ySDI1QTEsMSwwLDAsMSwyNiwxNi41Wm0t'@; put 'My4yNSw1YTEsMSwwLDAsMS0xLDFoLTcuNWExLDEsMCwwLDEsMC0yaDcuNUExLDEsMCwwLDEsMjIuNzUsMjEuNVptLTEyLjQ3LTEwYTEsMSwwLDAsMSwxLTFIMjQuNzJhMSwxLDAsMCwxLDAsMkgxMS4yOEExLDEsMCwwLDEsMTAuMjgsMTEuNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1z'@; put 'b2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuMjVhNy40Niw3LjQ2LDAsMCwxLTQuMzUtMS40LDEsMSwwLDAsMS0uOTMuNjVIMTEuMjhhMSwxLDAsMCwxLDAtMkgyNC4yQTcuNDYsNy40NiwwLDAsMSwyMywzLjJhMTgsMTgsMCwwLDAtNS0uN2MtOC44MiwwLTE2'@; put 'LDYuMjgtMTYsMTRzNy4xOCwxNCwxNiwxNGExOCwxOCwwLDAsMCw0Ljg4LS42OGw1LjUzLDMuNTJhMSwxLDAsMCwwLDEuNTQtLjg0bDAtNi43M2ExMywxMywwLDAsMCw0LTkuMjcsMTIuMzQsMTIuMzQsMCwwLDAtLjY4LTRBNy40Niw3LjQ2LDAsMCwxLDMwLDEzLjI1Wk0yMS43NSwyMi41aC03'@; put 'LjVhMSwxLDAsMCwxLDAtMmg3LjVhMSwxLDAsMCwxLDAsMlptMy4yNS01SDExYTEsMSwwLDAsMSwwLTJIMjVhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAi'@; put 'IGN5PSI1Ljc1IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksYi5DbHJTaGFwZVBpY3R1cmU9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiww'@; put 'LDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwzMiw0Wk00LDMwVjZIMzJWMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTguOTIsMTRhMywzLDAsMSwwLTMtM0EzLDMsMCwwLDAsOC45Miwx'@; put 'NFptMC00LjZBMS42LDEuNiwwLDEsMSw3LjMzLDExLDEuNiwxLjYsMCwwLDEsOC45Miw5LjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi43OCwxNS4zN2wtNS40LDUuNC00LTRhMSwxLDAsMCwwLTEuNDEs'@; put 'MEw1LjkyLDIyLjl2Mi44M2w2Ljc5LTYuNzlMMTYsMjIuMThsLTMuNzUsMy43NUgxNWw4LjQ1LTguNDVMMzAsMjRWMjEuMThsLTUuODEtNS44MUExLDEsMCwwLDAsMjIuNzgsMTUuMzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAg'@; put 'PHBhdGggZD0iTTExLjkzLDExYTMsMywwLDEsMC0zLDNBMywzLDAsMCwwLDExLjkzLDExWm0tNC42LDBhMS42LDEuNiwwLDEsMSwxLjYsMS42QTEuNiwxLjYsMCwwLDEsNy4zMywxMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIv'@; put 'PlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3LjM4LDIwLjc3bC00LTRhMSwxLDAsMCwwLTEuNDEsMEw1LjkyLDIyLjl2Mi44M2w2Ljc5LTYuNzlMMTYsMjIuMThsLTMuNzUsMy43NUgxNWw4LjQ1LTguNDVMMzAsMjRWMjEuMThsLTUuODEtNS44MWExLDEsMCwwLDAtMS40MSwwWiIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJWMzBINFY2SDIyLjVhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAs'@; put 'MCwyLTJWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i'@; put 'YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwzMiw0Wk04LjkyLDhhMywzLDAsMSwxLTMs'@; put 'M0EzLDMsMCwwLDEsOC45Miw4Wk02LDI3VjIyLjlsNi02LjA4YTEsMSwwLDAsMSwxLjQxLDBMMTYsMTkuMzUsOC4zMiwyN1ptMjQsMEgxMS4xNWw2LjIzLTYuMjMsNS40LTUuNGExLDEsMCwwLDEsMS40MSwwTDMwLDIxLjE4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgt'@; put 'MSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVBNy40OCw3LjQ4LDAsMCwxLDIyLjc4LDRINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4zNEE3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNVpNOC45Miw4YTMsMywwLDEsMS0zLDNBMywz'@; put 'LDAsMCwxLDguOTIsOFpNNiwyN1YyMi45bDYtNi4wOGExLDEsMCwwLDEsMS40MSwwTDE2LDE5LjM1LDguMzIsMjdabTI0LDBIMTEuMTVsNi4yMy02LjIzLDUuNC01LjRhMSwxLDAsMCwxLDEuNDEsMEwzMCwyMS4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBh'@; put 'dGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+JyksYi5DbHJTaGFwZUhhcHB5RmFjZT0oMCxwLmNsckljb25TVkcp'@; put 'KCc8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9'@; put 'IjEwLjg5IiBjeT0iMTMuODkiIHI9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNS4wNSIgY3k9IjEzLjg5IiByPSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxu'@; put 'ICAgICAgICAgICAgPHBhdGggZD0iTTE4LjEzLDI4LjIxYTguNjcsOC42NywwLDAsMCw4LjI2LTZIOS44N0E4LjY3LDguNjcsMCwwLDAsMTguMTMsMjguMjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJB'@; put 'MTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlpNOC44OSwxMy44OWEyLDIsMCwxLDEsMiwyQTIsMiwwLDAsMSw4Ljg5LDEzLjg5Wm05LjI0LDE0LjMyYTguNjcsOC42NywwLDAsMS04LjI2LTZIMjYuMzhBOC42Nyw4LjY3LDAsMCwxLDE4LjEzLDI4LjIxWm02LjkzLTEyLjMyYTIs'@; put 'MiwwLDEsMSwyLTJBMiwyLDAsMCwxLDI1LjA1LDE1Ljg5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPicpLGIuQ2xyU2hhcGVOZXV0cmFsRmFjZT0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjQuMDUsMjIuMDZoLTEyYTEsMSwwLDAsMCwwLDJoMTJhMSwx'@; put 'LDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI1LjE2IiBjeT0iMTQuMjgiIHI9IjEuOCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9'@; put 'IjExLjE2IiBjeT0iMTQuMjgiIHI9IjEuOCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTcuMDUsMjEuMDZhMSwxLDAsMCwxLTEsMWgtMTJh'@; put 'MSwxLDAsMCwxLDAtMmgxMkExLDEsMCwwLDEsMjUuMDUsMjMuMDZaTTI3LDE0LjI4YTEuOCwxLjgsMCwxLDEtMS44LTEuOEExLjgsMS44LDAsMCwxLDI3LDE0LjI4Wm0tMTUuOCwxLjhhMS44LDEuOCwwLDEsMSwxLjgtMS44QTEuOCwxLjgsMCwwLDEsMTEuMTYsMTYuMDhaIiBjbGFzcz0iY2xy'@; put 'LWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+JyksYi5DbHJTaGFwZVNhZEZhY2U9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNS4xNiIgY3k9IjE0LjI4IiByPSIxLjgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIx'@; put 'MS40MSIgY3k9IjE0LjI4IiByPSIxLjgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguMTYsMjBhOSw5LDAsMCwwLTcuMzMsMy43OCwxLDEsMCwxLDAsMS42MywxLjE2LDcsNywwLDAsMSwxMS4zMS0uMTMsMSwx'@; put 'LDAsMCwwLDEuNi0xLjJBOSw5LDAsMCwwLDE4LjE2LDIwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTksMTIuMjhhMS44LDEuOCwwLDEs'@; put 'MS0xLjgtMS44QTEuOCwxLjgsMCwwLDEsMjcsMTQuMjhabS0xNS41NSwxLjhhMS44LDEuOCwwLDEsMSwxLjgtMS44QTEuOCwxLjgsMCwwLDEsMTEuNDEsMTYuMDhabTE0LDcuNTNhMSwxLDAsMCwxLTEuNiwxLjIsNyw3LDAsMCwwLTExLjMxLjEzLDEsMSwwLDEsMS0xLjYzLTEuMTYsOSw5LDAs'@; put 'MCwxLDE0LjU0LS4xN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxiLkNsclNoYXBlVGh1bWJzVXA9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI0LDI2Yy0yLjkyLDEuODItNy4zLDQtOS4zNyw0aC02YTE2LjY4LDE2LjY4LDAsMCwxLTMuMzEtNi4w'@; put 'OEEyNi43MSwyNi43MSwwLDAsMSw0LDE2aDlWNmEyLjA1LDIuMDUsMCwwLDEsMS4yNi0xLjY5Yy43NywyLDIuNjIsNi41Nyw0LjIzLDguNzJBMTEuMzksMTEuMzksMCwwLDAsMjQsMTYuOTFWMTQuNzhhOS4xMyw5LjEzLDAsMCwxLTMuOTEtM2MtMS44OC0yLjUxLTQuMjktOS4xMS00LjMxLTku'@; put 'MTdBMSwxLDAsMCwwLDE0LjU5LDJDMTMuMjUsMi4zOCwxMSwzLjYsMTEsNnY4SDNhMSwxLDAsMCwwLTEsMSwyOSwyOSwwLDAsMCwxLjQsOS42MmMxLjg5LDUuNCw0LjEsNy4xNCw0LjIsNy4yMmExLDEsMCwwLDAsLjYxLjIxaDYuNDJjMi40MywwLDYuNTUtMiw5LjM3LTMuNjNaIiBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zNCwzMUgyN2ExLDEsMCwwLDEtMS0xVjE0YTEsMSwwLDAsMSwxLTFoN1ptLTYtMmg0VjE1SDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+'@; put 'XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuNjMsMTIuMTJDMTcuNTEsOS4yOCwxNC44OCwyLDE0Ljg4LDJTMTIsMi44MywxMiw1LjI1VjE1SDIuMjNhMjkuNDYsMjkuNDYsMCwwLDAsMS40NCw5Ljc0QzUuNjEsMzAuMjcsNy44LDMyLDcuOCwzMmg2Ljg2QzE2LjksMzIsMjEsMzAuMDYsMjQs'@; put 'MjguMzFWMTUuNTFBMTAuODQsMTAuODQsMCwwLDEsMTkuNjMsMTIuMTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3LDEzYTEsMSwwLDAsMC0xLDFWMzBhMSwxLDAsMCwwLDEsMWg3VjEzWiIgY2xhc3M9ImNsci1p'@; put 'LXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxiLkNsclNoYXBlVGh1bWJzRG93bj0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTIsMTBjMi45Mi0xLjgyLDcuMy00LDkuMzctNGg2YTE2LjY4LDE2LjY4LDAsMCwxLDMuMzEsNi4wOEEyNi43MSwyNi43MSwwLDAsMSwzMiwyMEgy'@; put 'M1YzMGEyLjA1LDIuMDUsMCwwLDEtMS4yNiwxLjY5Yy0uNzctMi0yLjYyLTYuNTctNC4yMy04LjcyQTExLjM5LDExLjM5LDAsMCwwLDEyLDE5LjA5djIuMTNhOS4xMyw5LjEzLDAsMCwxLDMuOTEsM2MxLjg4LDIuNTEsNC4yOSw5LjExLDQuMzEsOS4xN2ExLDEsMCwwLDAsMS4xOS42M0MyMi43'@; put 'NSwzMy42MiwyNSwzMi40LDI1LDMwVjIyaDhhMSwxLDAsMCwwLDEtMSwyOSwyOSwwLDAsMC0xLjQtOS42MmMtMS44OS01LjQtNC4xLTcuMTQtNC4yLTcuMjJBMSwxLDAsMCwwLDI3Ljc5LDRIMjEuMzdDMTguOTQsNCwxNC44Myw2LDEyLDcuNjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yLDVIOWExLDEsMCwwLDEsMSwxVjIyYTEsMSwwLDAsMS0xLDFIMlpNOCw3SDRWMjFIOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0i'@; put 'TTE2LjM3LDIzLjg0YzIuMTIsMi44NCw0Ljc2LDEwLjA3LDQuNzYsMTAuMDdTMjQsMzMuMTMsMjQsMzAuNzFWMjFoOS43N2EyOS40NiwyOS40NiwwLDAsMC0xLjQ0LTkuNzRDMzAuMzksNS42OCwyOC4yLDQsMjguMiw0SDIxLjM1QzE5LjEsNCwxNSw1LjksMTIsNy42NXYxMi44QTEwLjg0LDEw'@; put 'Ljg0LDAsMCwxLDE2LjM3LDIzLjg0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik05LDIzYTEsMSwwLDAsMCwxLTFWNkExLDEsMCwwLDAsOSw1SDJWMjNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0'@; put 'aC0yIiAvPicpLGIuQ2xyU2hhcGVDcm93bj0oMCxwLmNsckljb25TVkcpKCdcbiAgPHBhdGggZD0iTTQsMTMuMzNBMS4zOSwxLjM5LDAsMSwwLDIuNiwxNC43MiwxLjM5LDEuMzksMCwwLDAsNCwxMy4zM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4g'@; put 'IDxwYXRoIGQ9Ik0zMS44MSwxNS44NGEyMC4zNSwyMC4zNSwwLDAsMC00LjU4LDEuNDMsMjIuNywyMi43LDAsMCwwLTMuNDgsMi4xQTE3LjY5LDE3LjY5LDAsMCwxLDIyLDE2LjU3YTQ3LjY1LDQ3LjY1LDAsMCwxLTIuOC03LjY5LDEsMSwwLDAsMC0xLS43NCwxLDEsMCwwLDAtMSwuNzQsNDYu'@; put 'NzEsNDYuNzEsMCwwLDEtMi44LDcuNjksMTcsMTcsMCwwLDEtMS43NiwyLjgsMjIuNywyMi43LDAsMCwwLTMuNDgtMi4xLDIwLjY2LDIwLjY2LDAsMCwwLTQuNTgtMS40MywxLDEsMCwwLDAtMSwuMzksMSwxLDAsMCwwLS4wOSwxLjA1QTUwLjEzLDUwLjEzLDAsMCwxLDcuODIsMzEuMTdhMSwx'@; put 'LDAsMCwwLDEsLjgzSDI3LjYyYTEsMSwwLDAsMCwxLS44Myw1MC4xNSw1MC4xNSwwLDAsMSw0LjI2LTEzLjg5LDEsMSwwLDAsMC0uMDktMS4wNUExLDEsMCwwLDAsMzEuODEsMTUuODRaTTI2Ljc5LDMwSDkuNjRhNTUuNjYsNTUuNjYsMCwwLDAtMy40LTExLjcxLDE1Ljc1LDE1Ljc1LDAsMCwx'@; put 'LDIuMDkuNzgsMjAsMjAsMCwwLDEsMy44NSwyLjQ1LDEsMSwwLDAsMCwxLjM5LS4wOSwxOS4yOCwxOS4yOCwwLDAsMCwyLjY3LTQsNDMuNDYsNDMuNDYsMCwwLDAsMi00Ljg5LDQxLjc0LDQxLjc0LDAsMCwwLDIsNC44OSwxOS45MiwxOS45MiwwLDAsMCwyLjY2LDQsMSwxLDAsMCwwLDEuNC4w'@; put 'OSwxOS4yMSwxOS4yMSwwLDAsMSwzLjg1LTIuNDUsMTQuNzcsMTQuNzcsMCwwLDEsMi4wOS0uNzhBNTUuMDcsNTUuMDcsMCwwLDAsMjYuNzksMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8ZWxsaXBzZSBjeD0iMzMuODMiIGN5PSIxMy4zMyIg'@; put 'cng9IjEuMzkiIHJ5PSIxLjM5IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cGF0aCBkPSJNMTguMjIsNi4zOUExLjM5LDEuMzksMCwxLDAsMTYuODQsNSwxLjM5LDEuMzksMCwwLDAsMTguMjIsNi4zOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0xOC4yMywyNi4zNGExLjExLDEuMTEsMCwxLDAsMS4xLDEuMUExLjEsMS4xLDAsMCwwLDE4LjIzLDI2LjM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgPHBhdGggZD0iTTEyLjU4LDI2'@; put 'LjM0YTEuMTEsMS4xMSwwLDEsMCwxLjEsMS4xQTEuMSwxLjEsMCwwLDAsMTIuNTgsMjYuMzRaIi8+PHBhdGggZD0iTTIzLjg5LDI2LjM0YTEuMTEsMS4xMSwwLDEsMCwxLjEsMS4xQTEuMSwxLjEsMCwwLDAsMjMuODksMjYuMzRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l'@; put 'LXBhdGgtNiIvPlxuXG4gIDxwYXRoIGQ9Ik0yLjYsMTEuOTNBMS40LDEuNCwwLDEsMCw0LDEzLjMzLDEuNCwxLjQsMCwwLDAsMi42LDExLjkzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICA8ZWxsaXBzZSBjeD0iMzMuODMiIGN5PSIxMy4zMyIgcng9IjEu'@; put 'MzkiIHJ5PSIxLjM5IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0xOC4yMiw2LjM5QTEuMzksMS4zOSwwLDEsMCwxNi44NCw1LDEuMzksMS4zOSwwLDAsMCwxOC4yMiw2LjM5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBh'@; put 'dGgtMyIvPlxuICA8cGF0aCBkPSJNMzEuNjMsMTYuMUExOC42MSwxOC42MSwwLDAsMCwyOCwxNy4zNGEyMS41NywyMS41NywwLDAsMC00LDIuNDksMTkuMiwxOS4yLDAsMCwxLTIuMjYtMy40OSw0OC45Miw0OC45MiwwLDAsMS0yLjUyLTYuNTgsMSwxLDAsMCwwLTEtLjcxaDBhMSwxLDAsMCww'@; put 'LTEsLjcxLDQ4LjQyLDQ4LjQyLDAsMCwxLTIuNTIsNi41OCwxOC42OSwxOC42OSwwLDAsMS0yLjI2LDMuNDgsMjIuODEsMjIuODEsMCwwLDAtNC0yLjQ4QTE4LjgzLDE4LjgzLDAsMCwwLDQuOSwxNi4xYTEsMSwwLDAsMC0xLC4zMywxLDEsMCwwLDAtLjEzLDEuMDcsNTUuOSw1NS45LDAsMCwx'@; put 'LDQsMTMuNSwxLDEsMCwwLDAsMSwuODNoMTlhMSwxLDAsMCwwLDEtLjgzLDU1LjksNTUuOSwwLDAsMSw0LTEzLjUsMSwxLDAsMCwwLS4xMy0xLjA3QTEsMSwwLDAsMCwzMS42MywxNi4xWk0xMS4wOCwyOC41NWExLjExLDEuMTEsMCwxLDEsMS4xLTEuMTFBMS4xMSwxLjExLDAsMCwxLDExLjA4'@; put 'LDI4LjU1Wm03LjE1LDBhMS4xMSwxLjExLDAsMCwxLDAtMi4yMSwxLjExLDEuMTEsMCwwLDEsMCwyLjIxWm03LjE2LDBhMS4xMSwxLjExLDAsMSwxLDEuMS0xLjExQTEuMTEsMS4xMSwwLDAsMSwyNS4zOSwyOC41NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiLz5c'@; put 'biAgJyksYi5DbHJTaGFwZUhhc2h0YWc9KDAscC5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGQ9Ik0zMiwxMkgyNS4zNGwxLjU1LTcuNzRhMSwxLDAsMCwwLTItLjM5TDIzLjMsMTJIMTUuMTFsMS41NS03Ljc0YTEsMSwwLDAsMC0yLS4zOUwxMy4wNywxMkg2YTEsMSwwLDAsMCwwLDJoNi42N2wt'@; put 'MS42LDhINGExLDEsMCwwLDAsMCwyaDYuNjZMOS4xMSwzMS43NGExLDEsMCwwLDAsLjc5LDEuMTcuNjguNjgsMCwwLDAsLjIsMCwxLDEsMCwwLDAsMS0uOEwxMi43LDI0aDguMTlsLTEuNTUsNy43NGExLDEsMCwwLDAsLjc5LDEuMTcuNjIuNjIsMCwwLDAsLjE5LDAsMSwxLDAsMCwwLDEtLjhM'@; put 'MjIuOTMsMjRIMzBhMSwxLDAsMCwwLDAtMkgyMy4zM2wxLjYxLThIMzJhMSwxLDAsMCwwLDAtMlpNMjEuMjksMjJIMTMuMWwxLjYxLThIMjIuOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG5cbiAgPHBhdGggZD0iTTMxLjg3LDEwSDI2LjMybDEtNC44'@; put 'M0ExLDEsMCwwLDAsMjYuMzUsNGgtMmExLDEsMCwwLDAtMSwuNzhMMjIuMzMsMTBoLTUuNGwxLTQuODNBMSwxLDAsMCwwLDE3LDRIMTVhMSwxLDAsMCwwLTEsLjc4TDEzLDEwSDdhMSwxLDAsMCwwLTEsLjhsLS40MSwyYTEsMSwwLDAsMCwxLDEuMmg1LjU1TDEwLjUsMjJoLTZhMSwxLDAsMCww'@; put 'LTEsLjhsLS40MSwyYTEsMSwwLDAsMCwxLDEuMkg5LjY4bC0xLDQuODNhMSwxLDAsMCwwLDEsMS4xN2gyYTEsMSwwLDAsMCwuOTUtLjc4TDEzLjY3LDI2aDUuNGwtMSw0LjgzQTEsMSwwLDAsMCwxOSwzMmgyYTEsMSwwLDAsMCwxLS43OEwyMy4wNSwyNmg2YTEsMSwwLDAsMCwxLS44bC40LTJh'@; put 'MSwxLDAsMCwwLTEtMS4ySDIzLjg3bDEuNjMtOGg2YTEsMSwwLDAsMCwxLS44bC40MS0yQTEsMSwwLDAsMCwzMS44NywxMFptLTEyLDEyaC01LjRsMS42NC04aDUuNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgJyksYi5Tb2NpYWxTaGFwZXM9e2Nyb3du'@; put 'OmIuQ2xyU2hhcGVDcm93bixzaGFyZTpiLkNsclNoYXBlU2hhcmUsc3RhcjpiLkNsclNoYXBlU3RhciwiaGFsZi1zdGFyIjpiLkNsclNoYXBlSGFsZlN0YXIsYm9va21hcms6Yi5DbHJTaGFwZUJvb2ttYXJrLGVudmVsb3BlOmIuQ2xyU2hhcGVFbnZlbG9wZSxjYWxlbmRhcjpOLkNsclNoYXBl'@; put 'Q2FsZW5kYXIsZXZlbnQ6Ti5DbHJTaGFwZUV2ZW50LHRhc2tzOmIuQ2xyU2hhcGVUYXNrcyxmbGFnOmIuQ2xyU2hhcGVGbGFnLGluYm94OmIuQ2xyU2hhcGVJbmJveCxoYXNodGFnOmIuQ2xyU2hhcGVIYXNodGFnLGhlYXJ0OmIuQ2xyU2hhcGVIZWFydCwiaGVhcnQtYnJva2VuIjpiLkNsclNo'@; put 'YXBlSGVhcnRCcm9rZW4sInRhbGstYnViYmxlcyI6Yi5DbHJTaGFwZVRhbGtCdWJibGVzLCJjaGF0LWJ1YmJsZSI6Yi5DbHJTaGFwZUNoYXRCdWJibGUscGljdHVyZTpiLkNsclNoYXBlUGljdHVyZSwiaGFwcHktZmFjZSI6Yi5DbHJTaGFwZUhhcHB5RmFjZSwibmV1dHJhbC1mYWNlIjpiLkNs'@; put 'clNoYXBlTmV1dHJhbEZhY2UsInNhZC1mYWNlIjpiLkNsclNoYXBlU2FkRmFjZSwidGh1bWJzLXVwIjpiLkNsclNoYXBlVGh1bWJzVXAsInRodW1icy1kb3duIjpiLkNsclNoYXBlVGh1bWJzRG93bn0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGIuU29jaWFsU2hhcGVzLCJmYXZvcml0ZSIsKDAs'@; put 'Xy5kZXNjcmlwdG9yQ29uZmlnKShiLlNvY2lhbFNoYXBlcy5zdGFyKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGIuU29jaWFsU2hhcGVzLCJlbWFpbCIsKDAsXy5kZXNjcmlwdG9yQ29uZmlnKShiLlNvY2lhbFNoYXBlcy5lbnZlbG9wZSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShiLlNvY2lh'@; put 'bFNoYXBlcywiZGF0ZSIsKDAsXy5kZXNjcmlwdG9yQ29uZmlnKShiLlNvY2lhbFNoYXBlcy5jYWxlbmRhcikpLHR5cGVvZiB3aW5kb3c8InUiJiZ3aW5kb3cuaGFzT3duUHJvcGVydHkoIkNsYXJpdHlJY29ucyIpJiZ3aW5kb3cuQ2xhcml0eUljb25zLmFkZChiLlNvY2lhbFNoYXBlcyl9LCIu'@; put 'L3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvdGVjaG5vbG9neS1zaGFwZXMudHMiOgovKiEqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXAogICAgICAgICAgICAgICAgICAhKioqIC4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy90'@; put 'ZWNobm9sb2d5LXNoYXBlcy50cyAqKiohCiAgICAgICAgICAgICAgICAgIFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyohIG5vIHN0YXRpYyBleHBvcnRzIGZvdW5kICovZnVuY3Rpb24oSixiLEQpeyJ1c2Ugc3RyaWN0IjtPYmpl'@; put 'Y3QuZGVmaW5lUHJvcGVydHkoYiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksYi5DbHJTaGFwZVZNV0FwcD1iLkNsclNoYXBlVk09Yi5DbHJTaGFwZVJvdXRlcj1iLkNsclNoYXBlTmV0d29ya1N3aXRjaD1iLkNsclNoYXBlTmV0d29ya1NldHRpbmdzPWIuQ2xyU2hhcGVOZXR3b3JrR2xvYmU9'@; put 'Yi5DbHJTaGFwZVRhYmxldD1iLkNsclNoYXBlTW9iaWxlPWIuQ2xyU2hhcGVCYXR0ZXJ5PWIuQ2xyU2hhcGVBcHBsaWNhdGlvbj1iLkNsclNoYXBlQ29kZT1iLkNsclNoYXBlVGVybWluYWw9Yi5DbHJTaGFwZURpc3BsYXk9Yi5DbHJTaGFwZUNvbXB1dGVyPWIuQ2xyU2hhcGVGbG9wcHk9Yi5D'@; put 'bHJTaGFwZVBsdWdpbj1iLkNsclNoYXBlRG93bmxvYWRDbG91ZD1iLkNsclNoYXBlVXBsb2FkQ2xvdWQ9Yi5DbHJTaGFwZUV4cG9ydD1iLkNsclNoYXBlSW1wb3J0PWIuQ2xyU2hhcGVTaGllbGRYPWIuQ2xyU2hhcGVTaGllbGQ9Yi5DbHJTaGFwZVNoaWVsZENoZWNrPWIuQ2xyU2hhcGVSZXNv'@; put 'dXJjZVBvb2w9Yi5DbHJTaGFwZURhdGFDbHVzdGVyPWIuQ2xyU2hhcGVNZW1vcnk9Yi5DbHJTaGFwZUNQVT1iLkNsclNoYXBlQnVpbGRpbmc9Yi5DbHJTaGFwZUFwcGxpY2F0aW9ucz1iLkNsclNoYXBlQ2x1c3Rlcj1iLkNsclNoYXBlU3RvcmFnZT1iLkNsclNoYXBlSG9zdD1iLkNsclNoYXBl'@; put 'RGFzaGJvYXJkPWIuQ2xyU2hhcGVNb3VzZT1iLkNsclNoYXBlS2V5Ym9hcmQ9Yi5DbHJTaGFwZURldmljZXM9Yi5DbHJTaGFwZUJhY2t1cD1iLkNsclNoYXBlQmFja3VwUmVzdG9yZT1iLkNsclNoYXBlSGFyZERpc2s9Yi5DbHJTaGFwZVJhY2tTZXJ2ZXI9Yi5DbHJTaGFwZVdpZmk9Yi5DbHJT'@; put 'aGFwZUJ1bmRsZT1iLkNsclNoYXBlQmxvY2tzR3JvdXA9Yi5DbHJTaGFwZUJsb2NrPWIuQ2xyU2hhcGVMYXllcnM9Yi5DbHJTaGFwZVVuaW5zdGFsbD1iLkNsclNoYXBlSW5zdGFsbD1iLkNsclNoYXBlTm9XaWZpPWIuQ2xyU2hhcGVQaG9uZUhhbmRzZXQ9Yi5DbHJTaGFwZVJ1bGVyUGVuY2ls'@; put 'PXZvaWQgMCxiLlRlY2hub2xvZ3lTaGFwZXM9Yi5DbHJTaGFwZUZpbGVTaGFyZTI9Yi5DbHJTaGFwZUNpQ2Q9Yi5DbHJTaGFwZUFuaW1hdGlvbj1iLkNsclNoYXBlVGFwZURyaXZlPWIuQ2xyU2hhcGVNZWRpYUNoYW5nZXI9Yi5DbHJDb250cm9sTHVuPWIuQ2xyU2hhcGVQb2Q9Yi5DbHJTaGFw'@; put 'ZU5vZGU9Yi5DbHJTaGFwZU5hbWVzcGFjZT1iLkNsclNoYXBlTm9kZXM9Yi5DbHJTaGFwZU5vZGVHcm91cD1iLkNsclNoYXBlU3RvcmFnZUFkYXB0ZXI9Yi5DbHJTaGFwZUhvc3RHcm91cD1iLkNsclNoYXBlU3F1aWQ9Yi5DbHJTaGFwZUNhcGFjaXRvcj1iLkNsclNoYXBlUmVzaXN0b3I9Yi5D'@; put 'bHJTaGFwZUluZHVjdG9yPWIuQ2xyU2hhcGVSYWRhcj1iLkNsclNoYXBlVXNiPWIuQ2xyU2hhcGVRckNvZGU9Yi5DbHJTaGFwZUZpbGVTaGFyZT1iLkNsclNoYXBlQ29udGFpbmVyVm9sdW1lPWIuQ2xyU2hhcGVDb250YWluZXI9Yi5DbHJTaGFwZUNkRHZkPWIuQ2xyU2hhcGVCYXJDb2RlPWIu'@; put 'Q2xyU2hhcGVBdG9tPWIuQ2xyU2hhcGVBc3NpZ25Vc2VyPWIuQ2xyU2hhcGVQcm9jZXNzT25WTT1iLkNsclNoYXBlQmx1ZXRvb3RoT2ZmPWIuQ2xyU2hhcGVCbHVldG9vdGg9Yi5DbHJTaGFwZVNTRD1iLkNsclNoYXBlTlZNZT1iLkNsclNoYXBlSGFyZERyaXZlRGlza3M9Yi5DbHJTaGFwZUhh'@; put 'cmREcml2ZT1iLkNsclNoYXBlQWRtaW5pc3RyYXRvcj1iLkNsclNoYXBlRmxhc2s9Yi5DbHJTaGFwZUhlbGl4PWIuQ2xyU2hhcGVEZXBsb3k9Yi5DbHJTaGFwZUNsb3VkVHJhZmZpYz1iLkNsclNoYXBlQ2xvdWRTY2FsZT1iLkNsclNoYXBlQ2xvdWROZXR3b3JrPWIuQ2xyU2hhcGVVbmxpbms9'@; put 'Yi5DbHJTaGFwZUxpbms9Yi5DbHJTaGFwZURpc2Nvbm5lY3Q9Yi5DbHJTaGFwZUNvbm5lY3Q9Yi5DbHJTaGFwZVVuYXJjaGl2ZT1iLkNsclNoYXBlQXJjaGl2ZT1iLkNsclNoYXBlQ2VydGlmaWNhdGU9dm9pZCAwO3ZhciBfPUQoCi8qISAuLi91dGlscy9kZXNjcmlwdG9yLWNvbmZpZyAqLwoi'@; put 'Li9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvZGVzY3JpcHRvci1jb25maWcudHMiKSxwPUQoCi8qISAuLi91dGlscy9zdmctdGFnLWdlbmVyYXRvciAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiKTtiLkNsclNoYXBlUnVsZXJQZW5jaWw9KDAs'@; put 'cC5jbHJJY29uU1ZHKSgnPHBvbHlnb24gY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIHBvaW50cz0iOSAxNy40MSA5IDI3IDE4LjU5IDI3IDE2LjU5IDI1IDExIDI1IDExIDE5LjQxIDkgMTcuNDEiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzQuODcsMzIuMjksMzIsMjkuMzhWMzJINFYyNy44NUg2di0xLjZINFYxOS42SDZWMThINFYxMS42SDZWMTBINFY0LjQxTDE5Ljk0LDIwLjI2VjE3LjQ0TDMuNzEsMS4yOUExLDEsMCwwLDAsMiwyVjMzYTEsMSwwLDAsMCwxLDFIMzQu'@; put 'MTZhMSwxLDAsMCwwLC43MS0xLjcxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0yNCwzMGg0YTIsMiwwLDAsMCwyLTJWOC43TDI3LjcsNC40N2EyLDIsMCwwLDAtMS43Ni0xaDBhMiwyLDAsMCwwLTEuNzYsMS4w'@; put 'OEwyMiw4LjcyVjI4QTIsMiwwLDAsMCwyNCwzMFpNMjQsOS4ybDEuOTQtMy43N0wyOCw5LjIxVjI0SDI0Wm0wLDE2LjQzaDR2Mi40NEgyNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNC44NywzMi4yMSwzMCwyNy4z'@; put 'N1Y4Ljc1TDI3LjcsNC41MmEyLDIsMCwwLDAtMy41NCwwTDIyLDguNzZWMTkuNDFMMy43MSwxLjIxQTEsMSwwLDAsMCwyLDEuOTJWMTBINC4xN3YxLjZIMlYxOEg0LjE3djEuNkgydjYuNjVINC4xN3YxLjZIMnY1LjA3YTEsMSwwLDAsMCwxLDFIMzQuMTZhMSwxLDAsMCwwLC43MS0xLjcxWk0x'@; put 'MCwyNlYxNi45NEwxOS4wNywyNlptMTgsMi4xMUgyNFYyNS42OGg0Wm0wLTRIMjRWOS4yNWwxLjk0LTMuNzdMMjgsOS4yNloiLz5cbicpLGIuQ2xyU2hhcGVQaG9uZUhhbmRzZXQ9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTEiIGQ9Ik0yNy43MywzNS40NGE0LjcyLDQuNzIsMCwwLDEtMS0uMTEsMzMuOTEsMzMuOTEsMCwwLDEtMTYuNjItOC43NSwzMi43MSwzMi43MSwwLDAsMS05LTE2LjI1QTQuNTgsNC41OCwwLDAsMSwyLjQ2LDYuMDVsNC0zLjg1QTIsMiwwLDAsMSw4LDEuNjZhMiwyLDAsMCwxLDEuNDUuODds'@; put 'NSw3LjM5YTEuNiwxLjYsMCwwLDEtLjExLDEuOWwtMi41MSwzYTE4Ljk0LDE4Ljk0LDAsMCwwLDQuMTcsNS44OWgwYTE5LjI2LDE5LjI2LDAsMCwwLDYuMDcsNC4wOWwzLjExLTIuNDdhMS42NCwxLjY0LDAsMCwxLDEuODYtLjEybDcuNTUsNC44OEEyLDIsMCwwLDEsMzUsMzAuMmwtMy45LDMu'@; put 'ODZBNC43NCw0Ljc0LDAsMCwxLDI3LjczLDM1LjQ0Wk03Ljg0LDMuNjRsLTQsMy44NWEyLjU0LDIuNTQsMCwwLDAtLjc1LDIuNCwzMC43LDMwLjcsMCwwLDAsOC40MSwxNS4yNiwzMS45LDMxLjksMCwwLDAsMTUuNjQsOC4yMywyLjc1LDIuNzUsMCwwLDAsMi41LS43NGwzLjktMy44Ni03LjI5'@; put 'LTQuNzEtMy4zNCwyLjY2YTEsMSwwLDAsMS0uOTIuMTcsMjAuMDYsMjAuMDYsMCwwLDEtNy4zNi00Ljc1aDBhMTkuNDksMTkuNDksMCwwLDEtNC44Ny03LjJBMSwxLDAsMCwxLDEwLDE0bDIuNy0zLjIzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv'@; put 'bGlkLXBhdGgtMSIgZD0iTTE1LjIyLDIwLjY0YTIwLjM3LDIwLjM3LDAsMCwwLDcuNCw0Ljc5bDMuNzctM2EuNjcuNjcsMCwwLDEsLjc2LDBsNyw0LjUxYTIsMiwwLDAsMSwuMzMsMy4xOGwtMy4yOCwzLjI0YTQsNCwwLDAsMS0zLjYzLDEuMDcsMzUuMDksMzUuMDksMCwwLDEtMTcuMTUtOUEz'@; put 'My43OSwzMy43OSwwLDAsMSwxLjE1LDguNmEzLjc4LDMuNzgsMCwwLDEsMS4xLTMuNTVsMy40LTMuMjhhMiwyLDAsMCwxLDMuMTIuMzJMMTMuNDMsOWEuNjMuNjMsMCwwLDEsMCwuNzVsLTMuMDcsMy42OUExOS43NSwxOS43NSwwLDAsMCwxNS4yMiwyMC42NFoiLz5cbicpLGIuQ2xyU2hhcGVO'@; put 'b1dpZmk9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyNC40MmE0LDQsMCwxLDAsNCw0QTQsNCwwLDAsMCwxOCwyNC40MlptMCw2YTIsMiwwLDEsMSwyLTJBMiwyLDAsMCwxLDE4LDMwLjQyWiIvPlxuICAg'@; put 'ICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yNi4yMSwyMS44NWExLDEsMCwwLDAtLjIzLTEuNCwxMy41NiwxMy41NiwwLDAsMC01LTIuMjNsMy44NywzLjg3QTEsMSwwLDAsMCwyNi4yMSwyMS44NVoiLz5cbiAgICAgICAgICAg'@; put 'IDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTguMDUsMTAuNzJhMjAuODgsMjAuODgsMCwwLDAtNC4xNi40M2wxLjc0LDEuNzRhMTksMTksMCwwLDEsMi40Mi0uMTdBMTguNzYsMTguNzYsMCwwLDEsMjguNjQsMTZhMSwxLDAsMCwwLDEuMTIt'@; put 'MS42NUEyMC43NSwyMC43NSwwLDAsMCwxOC4wNSwxMC43MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNMzMuNTUsOC4yQTI4LjExLDI4LjExLDAsMCwwLDguMTEsNS4zNkw5LjY5LDYuOTNBMjYsMjYsMCwwLDEs'@; put 'MzIuNDUsOS44N2ExLDEsMCwwLDAsMS4xLTEuNjdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgZD0iTTEuODQsNC43NSw0LjI3LDcuMThjLS42Mi4zNC0xLjIzLjctMS44MywxLjFBMSwxLDAsMSwwLDMuNTYsOS45NEM0'@; put 'LjI2LDkuNDcsNSw5LDUuNzQsOC42NWwzLjg3LDMuODdBMjAuNTksMjAuNTksMCwwLDAsNi4yMywxNC40LDEsMSwwLDAsMCw3LjM2LDE2YTE4LjgyLDE4LjgyLDAsMCwxLDMuNzctMmw0LjE2LDQuMTZBMTMuNTEsMTMuNTEsMCwwLDAsMTAsMjAuNTVhMSwxLDAsMCwwLDEuMTgsMS42MUExMS41'@; put 'MiwxMS41MiwwLDAsMSwxNywyMGwxMC44LDEwLjgsMS40MS0xLjQxLTI2LTI2WiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBjeD0iMTgiIGN5PSIyOS41NCIgcj0iMyIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNs'@; put 'ci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTI5LjE4LDE3LjcxbC4xMS0uMTdhMS41MSwxLjUxLDAsMCwwLS40Ny0yLjFBMjAuNTcsMjAuNTcsMCwwLDAsMTgsMTIuMzdjLS41NiwwLTEuMTEsMC0xLjY1LjA3bDMuMjEsMy4yMWExNy40MSwxNy40MSwwLDAsMSw3LjYsMi41MkEx'@; put 'LjQ5LDEuNDksMCwwLDAsMjkuMTgsMTcuNzFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMzIuNzYsOS4zOEEyNy45LDI3LjksMCwwLDAsMTAuMTgsNi4yN0wxMi44MSw4LjlBMjQuNjgsMjQuNjgsMCwwLDEsMzEuMSwx'@; put 'Mi4xMmExLjQ5LDEuNDksMCwwLDAsMi0uNDZsLjExLS4xN0ExLjUxLDEuNTEsMCwwLDAsMzIuNzYsOS4zOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIGQ9Ik0zLDQuNzVsMy4xLDMuMUEyNy4yOCwyNy4yOCwwLDAsMCwzLjE4'@; put 'LDkuNDJhMS41MSwxLjUxLDAsMCwwLS40OCwyLjExbC4xMS4xN2ExLjQ5LDEuNDksMCwwLDAsMiwuNDYsMjQuNjksMjQuNjksMCwwLDEsMy42Ny0xLjlsMy4xNCwzLjE0YTIwLjYzLDIwLjYzLDAsMCwwLTQuNTMsMi4wOSwxLjUxLDEuNTEsMCwwLDAtLjQ2LDIuMWwuMTEuMTdhMS40OSwxLjQ5'@; put 'LDAsMCwwLDIsLjQ2QTE3LjQ2LDE3LjQ2LDAsMCwxLDE0LjI1LDE2bDMuNiwzLjZhMTMuMzksMTMuMzksMCwwLDAtNi43OSwxLjkzLDEuNSwxLjUsMCwwLDAtLjQ2LDIuMDlsLjEuMTZhMS41MiwxLjUyLDAsMCwwLDIuMDYuNDQsMTAuMiwxMC4yLDAsMCwxLDktLjdMMjksMzAuNzVsMS40MS0x'@; put 'LjQxLTI2LTI2WiIvPlxuJyksYi5DbHJTaGFwZUluc3RhbGw9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMC45Miw4SDI2LjU1YTEsMSwwLDAsMCwwLDJIMzFWMzBINVYxMEg5LjM4YTEsMSwwLDAsMCwwLTJI'@; put 'NS4wOEEyLDIsMCwwLDAsMywxMFYzMGEyLDIsMCwwLDAsMi4wOCwySDMwLjkyQTIsMiwwLDAsMCwzMywzMFYxMEEyLDIsMCwwLDAsMzAuOTIsOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTAuMywxOC44N2w3'@; put 'LDYuODlhMSwxLDAsMCwwLDEuNCwwbDctNi44OWExLDEsMCwwLDAtMS40LTEuNDNMMTksMjIuNjVWNGExLDEsMCwwLDAtMiwwVjIyLjY1bC01LjMtNS4yMWExLDEsMCwwLDAtMS40LDEuNDNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMC4zLDE4Ljg3bDcsNi44OWExLDEsMCwwLDAsMS40LDBsNy02Ljg5YTEsMSwwLDAsMC0xLjQtMS40M0wxOSwyMi42NVY0YTEsMSwwLDAsMC0yLDBWMjIuNjVsLTUuMy01LjIxYTEsMSwwLDAsMC0xLjQsMS40M1oiLz48cGF0aCBkPSJNMzEs'@; put 'MTMuNDNWMzBINVYxMEg5LjM4YTEsMSwwLDAsMCwwLTJINS4wOEEyLDIsMCwwLDAsMywxMFYzMGEyLDIsMCwwLDAsMi4wOCwySDMwLjkyQTIsMiwwLDAsMCwzMywzMFYxMi44N0E3LjQ1LDcuNDUsMCwwLDEsMzEsMTMuNDNaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0x'@; put 'MC4zLDE4Ljg3bDcsNi44OWExLDEsMCwwLDAsMS40LDBsNy02Ljg5YTEsMSwwLDAsMC0xLjQtMS40M0wxOSwyMi42NVY0YTEsMSwwLDAsMC0yLDBWMjIuNjVsLTUuMy01LjIxYTEsMSwwLDAsMC0xLjQsMS40M1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h'@; put 'bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMzEsMTUuNFYzMEg1VjEwSDkuMzhhMSwxLDAsMCwwLDAtMkg1LjA4QTIsMiwwLDAsMCwzLDEwVjMwYTIsMiwwLDAsMCwyLjA4LDJIMzAuOTJBMiwyLDAsMCwwLDMzLDMwVjE1LjRaIi8+XG4gICAgICAgICAgICA8cGF0'@; put 'aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0'@; put 'QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuJyksYi5DbHJTaGFwZVVuaW5zdGFsbD0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTExLjI5LDI2LjcyYTEsMSwwLDAsMCwxLjQxLDBMMTgsMjEuNDls'@; put 'NS4zLDUuMjNBMSwxLDAsMCwwLDI0LjcsMjUuM2wtNS4yOC01LjIxLDUuMjgtNS4yMWExLDEsMCwwLDAtMS40MS0xLjQyTDE4LDE4LjY4bC01LjMtNS4yM2ExLDEsMCwwLDAtMS40MSwxLjQybDUuMjgsNS4yMUwxMS4zLDI1LjNBMSwxLDAsMCwwLDExLjI5LDI2LjcyWiIvPlxuICAgICAgICAg'@; put 'ICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMC45Miw4SDI2LjU1YTEsMSwwLDAsMCwwLDJIMzFWMzBINVYxMEg5LjM4YTEsMSwwLDAsMCwwLTJINS4wOEEyLDIsMCwwLDAsMywxMFYzMGEyLDIsMCwwLDAsMi4wOCwySDMwLjkyQTIsMiww'@; put 'LDAsMCwzMywzMFYxMEEyLDIsMCwwLDAsMzAuOTIsOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTExLjI5LDI2LjcyYTEsMSwwLDAsMCwxLjQxLDBMMTgsMjEuNDlsNS4zLDUuMjNB'@; put 'MSwxLDAsMCwwLDI0LjcsMjUuM2wtNS4yOC01LjIxLDUuMjgtNS4yMWExLDEsMCwwLDAtMS40MS0xLjQyTDE4LDE4LjY4bC01LjMtNS4yM2ExLDEsMCwwLDAtMS40MSwxLjQybDUuMjgsNS4yMUwxMS4zLDI1LjNBMSwxLDAsMCwwLDExLjI5LDI2LjcyWiIvPlxuICAgICAgICAgICAgPHBhdGgg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzEsMTMuNDNWMzBINVYxMEg5LjM4YTEsMSwwLDAsMCwwLTJINS4wOEEyLDIsMCwwLDAsMywxMFYzMGEyLDIsMCwwLDAsMi4wOCwySDMwLjkyQTIsMiwwLDAsMCwzMywzMFYxMi44'@; put 'N0E3LjQ1LDcuNDUsMCwwLDEsMzEsMTMuNDNaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgPHBhdGgg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xMS4yOSwyNi43MmExLDEsMCwwLDAsMS40MSwwTDE4LDIxLjQ5bDUuMyw1LjIzQTEsMSwwLDAsMCwyNC43LDI1LjNsLTUuMjgtNS4yMSw0Ljc1LTQuNjlIMjIuMjNhMy42NSwz'@; put 'LjY1LDAsMCwxLS44MS0uMUwxOCwxOC42OGwtNS4zLTUuMjNhMSwxLDAsMCwwLTEuNDEsMS40Mmw1LjI4LDUuMjFMMTEuMywyNS4zQTEsMSwwLDAsMCwxMS4yOSwyNi43MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC0yLS1hbGVydGVkIiBkPSJNMzEsMTUuNFYzMEg1VjEwSDkuMzhhMSwxLDAsMCwwLDAtMkg1LjA4QTIsMiwwLDAsMCwzLDEwVjMwYTIsMiwwLDAsMCwyLjA4LDJIMzAuOTJBMiwyLDAsMCwwLDMzLDMwVjE1LjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44'@; put 'NSwxLjE0WiIvPlxuJyksYi5DbHJTaGFwZUxheWVycz0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LDIwLjI1YTEsMSwwLDAsMS0uNDMtLjFsLTE1LTcuMDlhMSwxLDAsMCwxLDAtMS44MWwxNS03LjA5YTEs'@; put 'MSwwLDAsMSwuODUsMGwxNSw3LjA5YTEsMSwwLDAsMSwwLDEuODFsLTE1LDcuMDlBMSwxLDAsMCwxLDE4LDIwLjI1Wk01LjM0LDEyLjE2bDEyLjY2LDYsMTIuNjYtNkwxOCw2LjE4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTIiIGQ9Ik0xOCwyNi4xNmExLDEsMCwwLDEtLjQzLS4xTDIuNTcsMTlhMSwxLDAsMSwxLC44NS0xLjgxTDE4LDI0LjA2bDE0LjU3LTYuODlBMSwxLDAsMSwxLDMzLjQzLDE5bC0xNSw3LjA5QTEsMSwwLDAsMSwxOCwyNi4xNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTgsMzIuMDdhMSwxLDAsMCwxLS40My0uMWwtMTUtNy4wOWExLDEsMCwwLDEsLjg1LTEuODFMMTgsMzBsMTQuNTctNi44OWExLDEsMCwxLDEsLjg1LDEuODFMMTguNDMsMzJBMSwxLDAsMCwxLDE4LDMyLjA3WiIvPlxuICAgICAgICAg'@; put 'ICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDIwLjI1YTEsMSwwLDAsMS0uNDMtLjFsLTE1LTcuMDlhMSwxLDAsMCwxLDAtMS44MWwxNS03LjA5YTEsMSwwLDAsMSwuODUsMGwxNSw3LjA5YTEsMSwwLDAsMSwwLDEuODFsLTE1LDcuMDlBMSwx'@; put 'LDAsMCwxLDE4LDIwLjI1WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTE4LDI2LjE2YTEsMSwwLDAsMS0uNDMtLjFMMi41NywxOWExLDEsMCwxLDEsLjg1LTEuODFMMTgsMjQuMDZsMTQuNTctNi44OUExLDEsMCwxLDEs'@; put 'MzMuNDMsMTlsLTE1LDcuMDlBMSwxLDAsMCwxLDE4LDI2LjE2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTE4LDMyLjA3YTEsMSwwLDAsMS0uNDMtLjFsLTE1LTcuMDlhMSwxLDAsMCwxLC44NS0xLjgxTDE4LDMwbDE0'@; put 'LjU3LTYuODlhMSwxLDAsMSwxLC44NSwxLjgxTDE4LjQzLDMyQTEsMSwwLDAsMSwxOCwzMi4wN1oiLz5cbicpLGIuQ2xyU2hhcGVCbG9jaz0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuNDIsOS4wOWwtMTMtNmExLDEsMCwwLDAtLjg0LDBsLTEzLDZBMSwxLDAsMCwwLDQsMTBWMjdh'@; put 'MSwxLDAsMCwwLC41OC45MWwxMyw2YTEsMSwwLDAsMCwuODQsMGwxMy02QTEsMSwwLDAsMCwzMiwyN1YxMEExLDEsMCwwLDAsMzEuNDIsOS4wOVpNMTgsNS4xLDI4LjYxLDEwLDE4LDE0LjksNy4zOSwxMFpNNiwxMS41NmwxMSw1LjA4djE0LjhMNiwyNi4zNlpNMTksMzEuNDRWMTYuNjRsMTEt'@; put 'NS4wOHYxNC44WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTUuNTNWMjYuMzZMMTksMzEuNDRWMTYuNjRsMi41Ny0xLjE5YTMuNjcsMy42NywwLDAsMS0yLjExLTEuMjJMMTgsMTQuOSw3LjM5LDEwLDE4'@; put 'LDUuMWwzLjA4LDEuNDIsMS0xLjc0TDE4LjQyLDMuMDlhMSwxLDAsMCwwLS44NCwwbC0xMyw2QTEsMSwwLDAsMCw0LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmExLDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTUuNTNaTTE3LDMxLjQ0LDYsMjYuMzZWMTEuNTZsMTEs'@; put 'NS4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg3LDEuMjZsLTUuNzIsOS45MWExLjI4LDEuMjgsMCwwLDAsMS4xLDEuOTJIMzMuN2ExLjI4LDEuMjgsMCwwLDAsMS4x'@; put 'LTEuOTJMMjkuMDgsMS4yNkExLjI4LDEuMjgsMCwwLDAsMjYuODcsMS4yNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVWMjYuMzZMMTksMzEu'@; put 'NDRWMTYuNjRsOC4wOC0zLjczYTcuNTcsNy41NywwLDAsMS0yLTEuMjdMMTgsMTQuOSw3LjM5LDEwLDE4LDUuMWw0LjYxLDIuMTNBNy4xMiw3LjEyLDAsMCwxLDIyLjUsNmE4LDgsMCwwLDEsLjA3LTFMMTguNDIsMy4wOWExLDEsMCwwLDAtLjg0LDBsLTEzLDZBMSwxLDAsMCwwLDQsMTBWMjdh'@; put 'MSwxLDAsMCwwLC41OC45MWwxMyw2YTEsMSwwLDAsMCwuODQsMGwxMy02QTEsMSwwLDAsMCwzMiwyN1YxMy4yMkE3LjM3LDcuMzcsMCwwLDEsMzAsMTMuNVpNMTcsMzEuNDQsNiwyNi4zNlYxMS41NmwxMSw1LjA4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5l'@; put 'LXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDxw'@; put 'YXRoIGQ9Ik0zMS40Miw5LjA5bC0xMy02YTEsMSwwLDAsMC0uODQsMGwtMTMsNkExLDEsMCwwLDAsNCwxMFYyN2ExLDEsMCwwLDAsLjU4LjkxbDEzLDZhMSwxLDAsMCwwLC44NCwwbDEzLTZBMSwxLDAsMCwwLDMyLDI3VjEwQTEsMSwwLDAsMCwzMS40Miw5LjA5Wk0xOCwxNC45LDcuMzksMTAs'@; put 'MTgsNS4xLDI4LjYxLDEwWk0zMCwyNi4zNiwxOSwzMS40NFYxNi42NGwxMS01LjA4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxNS4zOHYxMUwxOSwzMS40NFYxNi42NGwyLjc5LTEuMjlhMy42OCwzLjY4LDAs'@; put 'MCwxLTIuMjUtMS4xNkwxOCwxNC45LDcuMzksMTAsMTgsNS4xbDMsMS4zOSwxLTEuNzVMMTguNDIsMy4wOWExLDEsMCwwLDAtLjg0LDBsLTEzLDZBMSwxLDAsMCwwLDQsMTBWMjdhMSwxLDAsMCwwLC41OC45MWwxMyw2YTEsMSwwLDAsMCwuODQsMGwxMy02QTEsMSwwLDAsMCwzMiwyN1YxNS4z'@; put 'OFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xMiwyMS4xMywxMWExLjI3LDEuMjcsMCwwLDAsMS4xLDEuOTFIMzMuNjhBMS4yNywxLjI3LDAsMCwwLDM0Ljc4LDExTDI5'@; put 'LjA2LDEuMTJBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVWMjYuMzZMMTksMzEuNDRWMTYuNjRsOC4w'@; put 'OC0zLjczYTcuNTcsNy41NywwLDAsMS0yLTEuMjdMMTgsMTQuOSw3LjM5LDEwLDE4LDUuMWw0LjYxLDIuMTNBNy4xMiw3LjEyLDAsMCwxLDIyLjUsNmE4LDgsMCwwLDEsLjA3LTFMMTguNDIsMy4wOWExLDEsMCwwLDAtLjg0LDBsLTEzLDZBMSwxLDAsMCwwLDQsMTBWMjdhMSwxLDAsMCwwLC41'@; put 'OC45MWwxMyw2YTEsMSwwLDAsMCwuODQsMGwxMy02QTEsMSwwLDAsMCwzMiwyN1YxMy4yMkE3LjM3LDcuMzcsMCwwLDEsMzAsMTMuNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAi'@; put 'IGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxiLkNsclNoYXBlQmxvY2tzR3JvdXA9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjUzLDE4Ljc2LDI2LjYsMTUuNTdWNi40M0Ex'@; put 'LDEsMCwwLDAsMjYsNS41M2wtNy41LTMuNDVhMSwxLDAsMCwwLS44NCwwbC03LjUsMy40NWExLDEsMCwwLDAtLjU4LjkxdjkuMTRMMi42OCwxOC43NmExLDEsMCwwLDAtLjU4LjkxdjkuNzhoMGExLDEsMCwwLDAsLjU4LjkxbDcuNSwzLjQ1YTEsMSwwLDAsMCwuODQsMGw3LjA4LTMuMjYsNy4w'@; put 'OCwzLjI2YTEsMSwwLDAsMCwuODQsMGw3LjUtMy40NWExLDEsMCwwLDAsLjU4LS45MWgwVjE5LjY3QTEsMSwwLDAsMCwzMy41MywxOC43NlptLTIuODEuOTFMMjUuNjEsMjIsMjAuNSwxOS42N2w1LjExLTIuMzVaTTE4LjEsNC4wOGw1LjExLDIuMzVMMTguMSw4Ljc4LDEzLDYuNDNaTTEwLjYs'@; put 'MTcuMzFsNS4xMSwyLjM1TDEwLjYsMjIsNS40OSwxOS42N1ptNi41LDExLjQ5LTYuNSwzLTYuNS0zVjIxLjIzTDEwLjE4LDI0QTEsMSwwLDAsMCwxMSwyNGw2LjA4LTIuOFpNMTEuNiwxNS41N2gwVjhsNi4wOCwyLjhhMSwxLDAsMCwwLC44NCwwTDI0LjYsOHY3LjU4aDBsLTYuNSwzWk0zMi4x'@; put 'MSwyOC44MWwtNi41LDMtNi41MS0zVjIxLjIyTDI1LjE5LDI0QTEsMSwwLDAsMCwyNiwyNGw2LjA4LTIuOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuPHBhdGggZD0iTTMzLjUzLDE4Ljc2LDI2LjYsMTUuNTdoLTJ2MGwtNi41LDMtNi41LTNWOGw2'@; put 'LjA4LDIuOGExLDEsMCwwLDAsLjg0LDBsLjI0LS4xMWE0LjE3LDQuMTcsMCwwLDEsLjI5LS42NWwxLjMzLTIuMzEtMi4yOCwxTDEzLDYuNDNsNS4xLTIuMzUsMy40NywxLjYsMS0xLjczTDE4LjUsMi4wOGExLDEsMCwwLDAtLjg0LDBsLTcuNSwzLjQ1YTEsMSwwLDAsMC0uNTguOTF2OS4xNGwt'@; put 'Ni45LDMuMThhMSwxLDAsMCwwLS41OC45MXY5Ljc4YTEsMSwwLDAsMCwuNTguOTFsNy41LDMuNDVhMSwxLDAsMCwwLC44NCwwbDcuMDgtMy4yNiw3LjA4LDMuMjZhMSwxLDAsMCwwLC44NCwwbDcuNS0zLjQ1YTEsMSwwLDAsMCwuNTgtLjkxVjE5LjY3QTEsMSwwLDAsMCwzMy41MywxOC43NlpN'@; put 'MTAuNiwxNy4zMWw1LjExLDIuMzVMMTAuNiwyMiw1LjQ5LDE5LjY3Wm0wLDE0LjQ5LTYuNS0zVjIxLjIzTDEwLjE4LDI0QTEsMSwwLDAsMCwxMSwyNGw2LjA4LTIuOCwwLDcuNlptMTUtMTQuNDgsNS4xMSwyLjM1TDI1LjYxLDIyLDIwLjUsMTkuNjdabTAsMTQuNDktNi41MS0zVjIxLjIyTDI1'@; put 'LjE5LDI0QTEsMSwwLDAsMCwyNiwyNGw2LjA4LTIuOCwwLDcuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbjxwYXRoIGQ9Ik0yNi44NSwxLjE0bC01LjcyLDkuOTFBMS4yNywxLjI3LDAsMCwwLDIyLjIzLDEzSDMz'@; put 'LjY4YTEuMjcsMS4yNywwLDAsMCwxLjEtMS45MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG48cGF0aCBkPSJNMzMuNTMsMTgu'@; put 'NzYsMjYuNiwxNS41N1YxMi43YTcuNTgsNy41OCwwLDAsMS0yLTEuNTF2NC4zOWwtNi41LDMtNi41LTNWOGw2LjA4LDIuOGExLDEsMCwwLDAsLjg0LDBMMjMsOC43MmE3LjA1LDcuMDUsMCwwLDEtLjQ3LTJsLTQuNDcsMkwxMyw2LjQzbDUuMS0yLjM1LDQuNDQsMnMwLS4wNiwwLS4wOWE3LjU1'@; put 'LDcuNTUsMCwwLDEsLjI3LTJsLTQuMy0yYTEsMSwwLDAsMC0uODQsMGwtNy41LDMuNDVhMSwxLDAsMCwwLS41OC45MXY5LjE0bC02LjksMy4xOGExLDEsMCwwLDAtLjU4LjkxdjkuNzhhMSwxLDAsMCwwLC41OC45MWw3LjUsMy40NWExLDEsMCwwLDAsLjg0LDBsNy4wOC0zLjI2LDcuMDgsMy4y'@; put 'NmExLDEsMCwwLDAsLjg0LDBsNy41LTMuNDVhMSwxLDAsMCwwLC41OC0uOTFWMTkuNjdBMSwxLDAsMCwwLDMzLjUzLDE4Ljc2Wk0xMC42LDE3LjMxbDUuMTEsMi4zNUwxMC42LDIyLDUuNDksMTkuNjdabTAsMTQuNDktNi41LTNWMjEuMjNMMTAuMTgsMjRBMSwxLDAsMCwwLDExLDI0bDYuMDgt'@; put 'Mi44LDAsNy42Wm0xNS0xNC40OCw1LjExLDIuMzVMMjUuNjEsMjIsMjAuNSwxOS42N1ptMCwxNC40OS02LjUxLTNWMjEuMjJMMjUuMTksMjRBMSwxLDAsMCwwLDI2LDI0bDYuMDgtMi44LDAsNy42MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEt'@; put 'LWJhZGdlZCIgLz5cbjxjaXJjbGUgY3g9IjMwLjAzIiBjeT0iNi4wMyIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuPHBhdGggZD0iTTMzLjUzLDE4Ljc2LDI2LjYsMTUuNTdWNi40M0ExLDEs'@; put 'MCwwLDAsMjYsNS41M2wtNy41LTMuNDVhMSwxLDAsMCwwLS44NCwwbC03LjUsMy40NWExLDEsMCwwLDAtLjU4LjkxdjkuMTRMMi42OCwxOC43NmExLDEsMCwwLDAtLjU4LjkxdjkuNzhoMGExLDEsMCwwLDAsLjU4LjkxbDcuNSwzLjQ1YTEsMSwwLDAsMCwuODQsMGw3LjA4LTMuMjYsNy4wOCwz'@; put 'LjI2YTEsMSwwLDAsMCwuODQsMGw3LjUtMy40NWExLDEsMCwwLDAsLjU4LS45MWgwVjE5LjY3QTEsMSwwLDAsMCwzMy41MywxOC43NlpNMjUuNjEsMjIsMjAuNSwxOS42N2w1LjExLTIuMzUsNS4xMSwyLjM1Wm0tMS02LjQ0LTYuNDQsM1YxMC44N2ExLDEsMCwwLDAsLjM1LS4wOEwyNC42LDh2'@; put 'Ny41OFpNMTguMSw0LjA4bDUuMTEsMi4zNUwxOC4xLDguNzgsMTMsNi40M1pNMTAuNiwxNy4zMWw1LjExLDIuMzVMMTAuNiwyMiw1LjQ5LDE5LjY3Wm02LjUsMTEuNDktNi41LDNoMFYyNC4xMWgwQTEsMSwwLDAsMCwxMSwyNGw2LjA4LTIuOFptMTUsMC02LjQ2LDNWMjQuMTFBMSwxLDAsMCww'@; put 'LDI2LDI0bDYuMDgtMi44WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbjxwYXRoIGQ9Ik0zMy41MywxOC43NiwyNi42LDE1LjU3djBoLTJ2MGwtNi40MywzVjEwLjg3YTEuMDUsMS4wNSwwLDAsMCwuMzUtLjA4bC4xNC0uMDZBMy4yMywzLjIzLDAsMCwxLDE5'@; put 'LDEwbDEuMjgtMi4yMi0yLjE0LDFMMTMsNi40M2w1LjEtMi4zNSwzLjM5LDEuNTYsMS0xLjczLTQtMS44M2ExLDEsMCwwLDAtLjg0LDBsLTcuNSwzLjQ1YTEsMSwwLDAsMC0uNTguOTF2OS4xNGwtNi45LDMuMThhMSwxLDAsMCwwLS41OC45MXY5Ljc4YTEsMSwwLDAsMCwuNTguOTFsNy41LDMu'@; put 'NDVhMSwxLDAsMCwwLC44NCwwbDcuMDgtMy4yNiw3LjA4LDMuMjZhMSwxLDAsMCwwLC44NCwwbDcuNS0zLjQ1YTEsMSwwLDAsMCwuNTgtLjkxVjE5LjY3QTEsMSwwLDAsMCwzMy41MywxOC43NlptLTI4LC45MSw1LjExLTIuMzYsNS4xMSwyLjM1TDEwLjYsMjJaTTEwLjYsMzEuOFYyNC4xMUEx'@; put 'LjA4LDEuMDgsMCwwLDAsMTEsMjRsNi4wOC0yLjgsMCw3LjZabTkuOS0xMi4xMyw1LjExLTIuMzUsNS4xMSwyLjM1TDI1LjYxLDIyWk0yNS42NCwzMS44VjI0LjExQS44OS44OSwwLDAsMCwyNiwyNGw2LjA4LTIuOCwwLDcuNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1z'@; put 'b2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG48cGF0aCBkPSJNMjYuODksMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4yNywxM0gzMy43MmExLjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMSwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44OSwxLjE0WiIgY2xhc3M9ImNsci1p'@; put 'LXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbjxwYXRoIGQ9Ik0zMy41MywxOC43NiwyNi42LDE1LjU3VjEyLjY5YTcuNjYsNy42NiwwLDAsMS0yLTEuNDd2NC4zNGwtNi40MywzVjEwLjg3YTEuMDUsMS4wNSwwLDAsMCwuMzUtLjA4'@; put 'TDIzLDguNzNhNy42NSw3LjY1LDAsMCwxLS40OC0ybC00LjQyLDJMMTMsNi40M2w1LjEtMi4zNSw0LjM4LDJWNmE3LjU1LDcuNTUsMCwwLDEsLjI3LTJMMTguNSwyLjA4YTEsMSwwLDAsMC0uODQsMGwtNy41LDMuNDVhMSwxLDAsMCwwLS41OC45MXY5LjE0bC02LjksMy4xOGExLDEsMCwwLDAt'@; put 'LjU4LjkxdjkuNzhhMSwxLDAsMCwwLC41OC45MWw3LjUsMy40NWExLDEsMCwwLDAsLjg0LDBsNy4wOC0zLjI2LDcuMDgsMy4yNmExLDEsMCwwLDAsLjg0LDBsNy41LTMuNDVhMSwxLDAsMCwwLC41OC0uOTFWMTkuNjdBMSwxLDAsMCwwLDMzLjUzLDE4Ljc2Wm0tMjgsLjkxLDUuMTEtMi4zNiw1'@; put 'LjExLDIuMzVMMTAuNiwyMlpNMTAuNiwzMS44VjI0LjExQTEuMDgsMS4wOCwwLDAsMCwxMSwyNGw2LjA4LTIuOCwwLDcuNlptOS45LTEyLjEzLDUuMTEtMi4zNSw1LjExLDIuMzVMMjUuNjEsMjJaTTI1LjY0LDMxLjhWMjQuMTFBLjg5Ljg5LDAsMCwwLDI2LDI0bDYuMDgtMi44LDAsNy42WiIg'@; put 'Y2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG48Y2lyY2xlIGN4PSIyOS45OCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLGIu'@; put 'Q2xyU2hhcGVCdW5kbGU9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMi40Myw4LjM1bC0xMy02LjIxYTEsMSwwLDAsMC0uODcsMGwtMTUsNy4yNGExLDEsMCwwLDAtLjU3LjlWMjYuODNhMSwxLDAsMCwwLC42'@; put 'LjkybDEzLDYuMTlhMSwxLDAsMCwwLC44NywwbDE1LTcuMjRhMSwxLDAsMCwwLC41Ny0uOVY5LjI1QTEsMSwwLDAsMCwzMi40Myw4LjM1Wk0xOSw0LjE1LDI5LjkzLDkuMzdsLTUuMDUsMi40NEwxNC4yMSw2LjQ2Wk0xNywxNS42NCw2LDEwLjQxbDUuOS0yLjg1TDIyLjYsMTIuOTFaTTUsMTIu'@; put 'MTMsMTYsMTcuNFYzMS40Nkw1LDI2LjJaTTE4LDMxLjQ1VjE3LjM2bDEzLTYuMjl2MTQuMVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi40Myw4LjM1bC0xMy02LjIxYTEsMSwwLDAsMC0uODcsMGwtMTUsNy4yNGEx'@; put 'LDEsMCwwLDAtLjU3LjlWMjYuODNhMSwxLDAsMCwwLC42LjkybDEzLDYuMTlhMSwxLDAsMCwwLC44NywwbDE1LTcuMjRhMSwxLDAsMCwwLC41Ny0uOVY5LjI1QTEsMSwwLDAsMCwzMi40Myw4LjM1Wk0xOSw0LjE1LDI5LjkzLDkuMzdsLTUuMDUsMi40NEwxNC4yMSw2LjQ2Wk0xNywxNS42NCw2'@; put 'LDEwLjQxbDUuOS0yLjg1TDIyLjYsMTIuOTFabTEsMTUuOFYxNy4zNmwxMy02LjI5djE0LjFaIi8+XG4nKSxiLkNsclNoYXBlV2lmaT0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMzLjU1LDguMmEyOC4xLDI4'@; put 'LjEsMCwwLDAtMzEuMTEuMDhBMSwxLDAsMSwwLDMuNTYsOS45NGEyNi4xMSwyNi4xMSwwLDAsMSwyOC44OS0uMDcsMSwxLDAsMCwwLDEuMS0xLjY3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOC4wNSwxMC43'@; put 'MkEyMC43NCwyMC43NCwwLDAsMCw2LjIzLDE0LjQsMSwxLDAsMCwwLDcuMzYsMTYsMTguODUsMTguODUsMCwwLDEsMjguNjQsMTZhMSwxLDAsMCwwLDEuMTItMS42NUEyMC43NSwyMC43NSwwLDAsMCwxOC4wNSwxMC43MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTguMDUsMTcuOWExMy41MSwxMy41MSwwLDAsMC04LDIuNjQsMSwxLDAsMCwwLDEuMTgsMS42MSwxMS41NiwxMS41NiwwLDAsMSwxMy42Mi0uMDhBMSwxLDAsMSwwLDI2LDIwLjQ2LDEzLjUyLDEzLjUyLDAsMCwwLDE4LjA1LDE3LjlaIi8+'@; put 'XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTE4LDI0LjQyYTQsNCwwLDEsMCw0LDRBNCw0LDAsMCwwLDE4LDI0LjQyWm0wLDZhMiwyLDAsMSwxLDItMkEyLDIsMCwwLDEsMTgsMzAuNDJaIi8+XG4gICAgICAgICAgICA8'@; put 'Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGN4PSIxOCIgY3k9IjI5LjU0IiByPSIzIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMzIuNzYsOS4zOGEyNy44NywyNy44NywwLDAsMC0y'@; put 'OS41NywwLDEuNTEsMS41MSwwLDAsMC0uNDgsMi4xMWwuMTEuMTdhMS40OSwxLjQ5LDAsMCwwLDIsLjQ2LDI0LjY4LDI0LjY4LDAsMCwxLDI2LjI2LDAsMS40OSwxLjQ5LDAsMCwwLDItLjQ2bC4xMS0uMTdBMS41MSwxLjUxLDAsMCwwLDMyLjc2LDkuMzhaIi8+XG4gICAgICAgICAgICA8cGF0'@; put 'aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMjguODIsMTUuNDRhMjAuNTksMjAuNTksMCwwLDAtMjEuNywwLDEuNTEsMS41MSwwLDAsMC0uNDYsMi4xbC4xMS4xN2ExLjQ5LDEuNDksMCwwLDAsMiwuNDYsMTcuNCwxNy40LDAsMCwxLDE4LjM2LDAsMS40OSwx'@; put 'LjQ5LDAsMCwwLDItLjQ2bC4xMS0uMTdBMS41MSwxLjUxLDAsMCwwLDI4LjgyLDE1LjQ0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgZD0iTTI0Ljg4LDIxLjQ5YTEzLjQxLDEzLjQxLDAsMCwwLTEzLjgyLDAsMS41LDEuNSww'@; put 'LDAsMC0uNDYsMi4wOWwuMS4xNmExLjUyLDEuNTIsMCwwLDAsMi4wNi40NCwxMC4yNywxMC4yNywwLDAsMSwxMC40MiwwLDEuNTIsMS41MiwwLDAsMCwyLjA2LS40NWwuMS0uMTZBMS40OSwxLjQ5LDAsMCwwLDI0Ljg4LDIxLjQ5WiIvPlxuJyksYi5DbHJTaGFwZVJhY2tTZXJ2ZXI9KDAscC5j'@; put 'bHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIHg9IjEwIiB5PSIxNyIgd2lkdGg9IjE0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVk'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiB4PSI2IiB5PSIyNSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIHg9IjEwIiB5PSIyNSIgd2lk'@; put 'dGg9IjE0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiBkPSJNMTguNjQsMTFBMy42NSwzLjY1LDAsMCwxLDE5LDkuODlMMTkuNTYsOUgxMHYyWiIvPlxuICAgICAgICAg'@; put 'ICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiIGQ9Ik0zMy42OCwxNS40SDMyVjIxSDRWMTVIMjAuNThBMy42NywzLjY3LDAsMCwxLDE5LDEzLjU2YTMuNjMsMy42MywwLDAsMS0uMjYtLjU2SDRWN0gyMC43MWwxLjE1'@; put 'LTJINEEyLDIsMCwwLDAsMiw3VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxNS4zOFpNNCwyOVYyM0gzMnY2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWFsZXJ0ZWQgY2xyLWktYWxl'@; put 'cnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'LS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgeD0iNiIgeT0iOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiB4PSI2IiB5PSIxNyIg'@; put 'd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiB4PSIxMCIgeT0iMTciIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIHg9IjYiIHk9IjI1IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQi'@; put 'IHg9IjEwIiB5PSIyNSIgd2lkdGg9IjE0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIgZD0iTTEwLDExSDI0di0uNTFBNy40OCw3LjQ4LDAsMCwxLDIzLjEzLDlIMTBaIi8+'@; put 'XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQiIGQ9Ik0zMCwxMy41YTcuNDcsNy40NywwLDAsMS0yLjY4LS41SDRWN0gyMi41N2E3LjUyLDcuNTIsMCwwLDEtLjA3LTEsNy41Miw3LjUyLDAsMCwxLC4w'@; put 'Ny0xSDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTIuMzRBNy40Niw3LjQ2LDAsMCwxLDMwLDEzLjVaTTQsMTVIMzJ2Nkg0Wk00LDI5VjIzSDMydjZaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg'@; put 'Y2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIHg9IjYiIHk9IjkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAg'@; put 'ICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSIxMCIgeT0iOSIgd2lkdGg9IjE0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSI2IiB5'@; put 'PSIxNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHg9IjEwIiB5PSIxNyIgd2lkdGg9IjE0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiBkPSJNMzIsNUg0QTIsMiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjdBMiwyLDAsMCwwLDMyLDVaTTQsN0gzMnY2SDRabTAsOEgzMnY2SDRaTTQsMjlWMjNIMzJ2NloiLz5cbiAgICAgICAgICAgIDxyZWN0IGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiB4PSI2IiB5PSIyNSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHg9IjEwIiB5PSIyNSIgd2lkdGg9IjE0IiBo'@; put 'ZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yLDMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyNEgyWm04LTNIMjR2MkgxMFpNNiwyN0g4djJINloiLz5cbiAg'@; put 'ICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0xOSw5Ljg5LDE5LjU2LDlIMTBWN0gyMC43MWwxLjczLTNINEEyLDIsMCwwLDAsMiw2djZIMTguNTdBMy42NywzLjY3LDAsMCwxLDE5LDkuODlaTTgsOUg2'@; put 'VjdIOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0zMy42OCwxNS40SDIyLjIzQTMuNjksMy42OSwwLDAsMSwxOS4zNSwxNEgydjhIMzRWMTUuMzhaTTgsMTlINlYxN0g4Wm0xNiwwSDEw'@; put 'VjE3SDI0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCww'@; put 'LDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yLDE0djhIMzRWMTRabTYsNUg2VjE3SDhabTE2LDBI'@; put 'MTBWMTdIMjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTIsMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjI0SDJabTgtM0gyNHYySDEwWk02LDI3SDh2Mkg2WiIvPlxuICAg'@; put 'ICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0yMy4xMyw5SDEwVjdIMjIuNTdhNy41Miw3LjUyLDAsMCwxLS4wNy0xLDcuNDksNy40OSwwLDAsMSwuMjgtMkg0QTIsMiwwLDAsMCwyLDZ2NkgyNS41MUE3LjUy'@; put 'LDcuNTIsMCwwLDEsMjMuMTMsOVpNOCw5SDZWN0g4WiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgPHBhdGgg'@; put 'Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTIsMjJIMzRWMTRIMlptOC01SDI0djJIMTBaTTYsMTdIOHYySDZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMzIsNEg0QTIsMiwwLDAsMCwy'@; put 'LDZ2NkgzNFY2QTIsMiwwLDAsMCwzMiw0Wk04LDlINlY3SDhaTTI0LDlIMTBWN0gyNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0yLDMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyNEgyWm04LTNIMjR2'@; put 'MkgxMFpNNiwyN0g4djJINloiLz5cbicpLGIuQ2xyU2hhcGVIYXJkRGlzaz0oMCxwLmNsckljb25TVkcpKCc8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgeD0iNiIgeT0iMjAiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyIi8+'@; put 'XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgeD0iMjYiIHk9IjI0IiB3aWR0aD0iNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl'@; put 'ZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgZD0iTTM0LDIxLjA4bC0xLjQtNS42OEgzMC41MWwxLjQ5LDZWMjlINFYyMS40NEw3LjA2LDloMTIuNWwxLjE1LTJINy4wNkEyLDIsMCwwLDAsNS4xMyw4LjQ3TDIsMjEuMDhhMSwxLDAsMCwwLDAsLjI0VjI5YTIsMiwwLDAsMCwyLDJI'@; put 'MzJhMiwyLDAsMCwwLDItMlYyMS4zMUExLDEsMCwwLDAsMzQsMjEuMDhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4y'@; put 'OCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0t'@; put 'YmFkZ2VkIiB4PSI2IiB5PSIyMCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgeD0iMjYiIHk9IjI0IiB3aWR0aD0iNCIgaGVpZ2h0PSIyIi8+XG4gICAg'@; put 'ICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0zNCwyMS4wOCwzMiwxMy4yMWE3LjQ5LDcuNDksMCwwLDEtMiwuMjlsMiw3Ljk0VjI5SDRWMjEuNDRMNy4wNiw5SDIzLjEzYTcuNDUsNy40NSwwLDAsMS0u'@; put 'NTUtMkg3LjA2QTIsMiwwLDAsMCw1LjEzLDguNDdMMiwyMS4wOGExLDEsMCwwLDAsMCwuMjRWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIxLjMxQTEsMSwwLDAsMCwzNCwyMS4wOFoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl'@; put 'ZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTM0LDIxLjA4LDMwLjg2LDguNDNBMiwyLDAsMCwwLDI4'@; put 'Ljk0LDdINy4wNkEyLDIsMCwwLDAsNS4xMyw4LjQ3TDIsMjEuMDhhMSwxLDAsMCwwLDAsLjI0VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMS4zMUExLDEsMCwwLDAsMzQsMjEuMDhaTTQsMjlWMjEuNDRMNy4wNiw5SDI4LjkzTDMyLDIxLjQ0VjI5WiIvPlxuICAgICAgICAg'@; put 'ICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIHg9IjYiIHk9IjIwIiB3aWR0aD0iMjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjI2IiB5PSIyNCIg'@; put 'd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTIsMjJ2N2EyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjJabTI4LDVIMjZWMjVoNFoiLz5cbiAg'@; put 'ICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0zMi41OCwxNS40SDIyLjIzQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDIwLjcxLDdINy4wNkEyLDIsMCwwLDAsNS4xMyw4LjQ3TDIuMjksMjBIMzMuNzFa'@; put 'Ii8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0'@; put 'Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTIsMjJ2N2EyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJW'@; put 'MjJabTI4LDVIMjZWMjVoNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzIsMTMuMjFBNy40Nyw3LjQ3LDAsMCwxLDIyLjU3LDdINy4wNkEyLDIsMCwwLDAsNS4xMyw4LjQ3TDIuMjksMjBI'@; put 'MzMuNzFaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWkt'@; put 'c29saWQtcGF0aC0xIiBkPSJNMzAuODYsOC40M0EyLDIsMCwwLDAsMjguOTQsN0g3LjA2QTIsMiwwLDAsMCw1LjEzLDguNDdMMi4yOSwyMEgzMy43MVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yLDIydjdhMiwyLDAs'@; put 'MCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyWm0yOCw1SDI2VjI1aDRaIi8+XG4nKSxiLkNsclNoYXBlQmFja3VwUmVzdG9yZT0oMCxwLmNsckljb25TVkcpKCc8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgeD0iNiIg'@; put 'eT0iMjIiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgeD0iMjYiIHk9IjI2IiB3aWR0aD0iNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0'@; put 'aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgZD0iTTEzLDkuOTIsMTcsNlYxOWExLDEsMCwxLDAsMiwwVjZsMS40NywxLjQ2LDEtMS43OUwxOCwyLjE2LDExLjYxLDguNUExLDEsMCwwLDAsMTMsOS45MloiLz5cbiAgICAgICAg'@; put 'ICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiBkPSJNMzEuNTgsMTUuNEgyOS40NmMxLDIuODUsMi4zMSw2LjM3LDIuNTQsNy4wOFYzMEg0VjIyLjQ4QzQuMjgsMjEuNjUsNy4wNSwxNCw3LjA1LDE0SDE1VjEySDcu'@; put 'MDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIsMjIsMiwyMi4xLDIsMjIuMzNWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyLjMzQzM0LDIyLjEyLDM0LDIyLDMxLjU4LDE1LjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl'@; put 'ZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIv'@; put 'PlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiB4PSI2IiB5PSIyMiIgd2lkdGg9IjI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg'@; put 'Y2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgeD0iMjYiIHk9IjI2IiB3aWR0aD0iNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0xMyw5LjkyLDE3LDZWMTlh'@; put 'MSwxLDAsMSwwLDIsMFY2bDQsMy45NWExLDEsMCwwLDAsLjcxLjI5bC4xMSwwYTcuNDYsNy40NiwwLDAsMS0xLjI1LTMuNTJMMTgsMi4xNiwxMS42MSw4LjVBMSwxLDAsMCwwLDEzLDkuOTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIGQ9Ik0zMC44NywxMy40NWE3LjU1LDcuNTUsMCwwLDEtLjg3LjA1QTcuNDYsNy40NiwwLDAsMSwyNS41MSwxMkgyMXYyaDcuOTVDMzAsMTYuOTQsMzEuNzIsMjEuNjUsMzIsMjIuNDhWMzBINFYyMi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwx'@; put 'NEgxNVYxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIyLjMzVjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMi4zM0MzNCwyMi4xLDM0LDIyLDMwLjg3LDEzLjQ1WiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiB4PSI2IiB5PSIyMiIgd2lkdGg9IjI0IiBo'@; put 'ZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSIyNiIgeT0iMjYiIHdpZHRoPSI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC0zIiBkPSJNMTMsOS45MiwxNyw2VjE5YTEsMSwwLDEsMCwyLDBWNmw0LDMuOTVBMSwxLDAsMSwwLDI0LjM4LDguNUwxOCwyLjE2LDExLjYxLDguNUExLDEsMCwwLDAsMTMsOS45MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC00IiBkPSJNMzAuODQsMTMuMzdBMS45NCwxLjk0LDAsMCwwLDI4LjkzLDEySDIxdjJoNy45NUMzMCwxNi45NCwzMS43MiwyMS42NSwzMiwyMi40OFYzMEg0VjIyLjQ4QzQuMjgsMjEuNjUsNy4wNSwxNCw3LjA1LDE0SDE1VjEySDcuMDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIs'@; put 'MjIsMiwyMi4xLDIsMjIuMzNWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyLjMzQzM0LDIyLjEsMzQsMjIsMzAuODQsMTMuMzdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBk'@; put 'PSJNMiwyNHY2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyNFptMjgsNUgyNlYyN2g0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTEzLDkuOTIsMTcsNlYxOGExLDEsMCwx'@; put 'LDAsMiwwVjZsMS40NywxLjQ2LDEtMS43OUwxOCwyLjE2LDExLjYxLDguNUExLDEsMCwwLDAsMTMsOS45MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0zMS41OCwxNS40SDIyLjIzQTMu'@; put 'NjIsMy42MiwwLDAsMSwyMSwxNS4xNlYxOGEzLDMsMCwxLDEtNiwwVjEySDcuMDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIuODYsMTkuNjgsMi4yNCwyMS40MywyLjA3LDIySDMzLjkzQzMzLjc5LDIxLjQ5LDMzLjI4LDIwLjA3LDMxLjU4LDE1LjRaIi8+XG4gICAgICAgICAgICA8cGF0'@; put 'aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4y'@; put 'OCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTIsMjR2NmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRabTI4LDVIMjZWMjdoNFoiLz5c'@; put 'biAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMTMsOS45MiwxNyw2VjE4YTEsMSwwLDEsMCwyLDBWNmw0LDMuOTVhMSwxLDAsMCwwLC43MS4yOWwuMTEsMGE3LjQ2LDcuNDYsMCwwLDEtMS4yNS0zLjUy'@; put 'TDE4LDIuMTYsMTEuNjEsOC41QTEsMSwwLDAsMCwxMyw5LjkyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0zMC44NywxMy40NWE3LjU1LDcuNTUsMCwwLDEtLjg3LjA1QTcuNDYsNy40Niww'@; put 'LDAsMSwyNS41MSwxMkgyMXY2YTMsMywwLDEsMS02LDBWMTJINy4wN2ExLjkyLDEuOTIsMCwwLDAtMS45LDEuMzJDMi44NiwxOS42OCwyLjI0LDIxLjQzLDIuMDcsMjJIMzMuOTNDMzMuNzcsMjEuNDMsMzMuMTUsMTkuNywzMC44NywxMy40NVoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xh'@; put 'c3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yLDI0djZhMiwyLDAsMCww'@; put 'LDIsMkgzMmEyLDIsMCwwLDAsMi0yVjI0Wm0yOCw1SDI2VjI3aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMzAuODQsMTMuMzdBMS45NCwxLjk0LDAsMCwwLDI4LjkzLDEySDIxdjZhMywzLDAsMSwxLTYsMFYxMkg3'@; put 'LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLjg2LDE5LjY4LDIuMjQsMjEuNDMsMi4wNywyMkgzMy45M0MzMy43NywyMS40MywzMy4xNCwxOS42OSwzMC44NCwxMy4zN1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9'@; put 'Ik0xMyw5LjkyLDE3LDZWMThhMSwxLDAsMSwwLDIsMFY2bDQsMy45NUExLDEsMCwxLDAsMjQuMzgsOC41TDE4LDIuMTYsMTEuNjEsOC41QTEsMSwwLDAsMCwxMyw5LjkyWiIvPlxuJyksYi5DbHJTaGFwZUJhY2t1cD0oMCxwLmNsckljb25TVkcpKCc8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgeD0iNiIgeT0iMjIiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgeD0iMjYi'@; put 'IHk9IjI2IiB3aWR0aD0iNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgZD0iTTE4LDE5Ljg0bDQuNDctNC40NGgtLjIzYTMuNjcsMy42NywwLDAsMS0yLS42MUwxOSwx'@; put 'NlY0YTEsMSwwLDEsMC0yLDBWMTZsLTQtMy45NWExLDEsMCwwLDAtMS40MSwxLjQyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIGQ9Ik0zMS41OCwxNS40SDI5LjQ2YzEsMi44NSwyLjMx'@; put 'LDYuMzcsMi41NCw3LjA4VjMwSDRWMjIuNDhDNC4yOCwyMS42NSw3LjA1LDE0LDcuMDUsMTRIOS41OGEzLDMsMCwwLDEtLjE0LTJINy4wN2ExLjkyLDEuOTIsMCwwLDAtMS45LDEuMzJDMiwyMiwyLDIyLjEsMiwyMi4zM1YzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjIuMzND'@; put 'MzQsMjIuMTIsMzQsMjIsMzEuNTgsMTUuNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIu'@; put 'MjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIHg9IjYiIHk9'@; put 'IjIyIiB3aWR0aD0iMjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiB4PSIyNiIgeT0iMjYiIHdpZHRoPSI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxwYXRoIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgZD0iTTE4LDE5Ljg0bDYuMzgtNi4zNUExLDEsMCwxLDAsMjMsMTIuMDhMMTksMTZWNGExLDEsMCwxLDAtMiwwVjE2bC00LTMuOTVhMSwxLDAsMCwwLTEuNDEsMS40MloiLz5cbiAgICAgICAg'@; put 'ICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgZD0iTTMwLjg3LDEzLjQ1YTcuNTUsNy41NSwwLDAsMS0uODcuMDUsNy40Niw3LjQ2LDAsMCwxLTMuMzUtLjgsMywzLDAsMCwxLS4yNCwxLjNoMi41NEMzMCwxNi45NCwz'@; put 'MS43MiwyMS42NSwzMiwyMi40OFYzMEg0VjIyLjQ4QzQuMjgsMjEuNjUsNy4wNSwxNCw3LjA1LDE0SDkuNThhMywzLDAsMCwxLS4xNC0ySDcuMDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIsMjIsMiwyMi4xLDIsMjIuMzNWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIy'@; put 'LjMzQzM0LDIyLjEsMzQsMjIsMzAuODcsMTMuNDVaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgPHJl'@; put 'Y3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIHg9IjYiIHk9IjIyIiB3aWR0aD0iMjQiIGhlaWdodD0iMiIvPjxyZWN0IHg9IjI2IiB5PSIyNiIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUg'@; put 'Y2xyLWktb3V0bGluZS1wYXRoLTIiXG4gICAgICAgICAgICAgICAgZD0iTTMwLjg0LDEzLjM3QTEuOTQsMS45NCwwLDAsMCwyOC45MywxMkgyNi41NWEzLDMsMCwwLDEtLjE0LDJoMi41NEMzMCwxNi45NCwzMS43MiwyMS42NSwzMiwyMi40OFYzMEg0VjIyLjQ4QzQuMjgsMjEuNjUsNy4wNSwx'@; put 'NCw3LjA1LDE0SDkuNThhMywzLDAsMCwxLS4xNC0ySDcuMDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIsMjIsMiwyMi4xLDIsMjIuMzNWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyLjMzQzM0LDIyLjEsMzQsMjIsMzAuODQsMTMuMzdaIi8+XG4gICAgICAgICAgICA8'@; put 'cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LDE5Ljg0bDYuMzgtNi4zNUExLDEsMCwxLDAsMjMsMTIuMDhMMTksMTZWNGExLDEsMCwxLDAtMiwwVjE2bC00LTMuOTVhMSwxLDAsMCwwLTEuNDEsMS40MloiLz5cbiAgICAgICAgICAgIDxwYXRo'@; put 'IGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xNi41OCwyMS4yNiwxMC4yLDE0LjkxQTMsMywwLDAsMSw5LjQ0LDEySDcuMDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIuODYsMTkuNjgsMi4yNCwyMS40MywyLjA3LDIySDE3'@; put 'LjMzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTIsMjR2NmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRabTI4LDRIMjZWMjZoNFoiLz5cbiAgICAgICAgICAgIDxwYXRo'@; put 'IGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0xOC42NiwyMkgzMy45M2MtLjE1LS41MS0uNjUtMS45My0yLjM1LTYuNkgyNS4zbC01Ljg5LDUuODZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFs'@; put 'ZXJ0ZWQgY2xyLWktc29saWQtcGF0aC00LS1hbGVydGVkIiBkPSJNMTgsMTkuODRsNC40Ny00LjQ0aC0uMjNhMy42NCwzLjY0LDAsMCwxLTItLjYxTDE5LDE2VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFz'@; put 'cz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4'@; put 'LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTE4LDE5Ljg0bDYuMzgtNi4zNUExLDEsMCwxLDAsMjMsMTIuMDhMMTksMTZWNGExLDEsMCwxLDAtMiwwVjE2bC00'@; put 'LTMuOTVhMSwxLDAsMCwwLTEuNDEsMS40MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMTYuNTgsMjEuMjYsMTAuMiwxNC45MUEzLDMsMCwwLDEsOS40NCwxMkg3LjA3YTEuOTIsMS45Miww'@; put 'LDAsMC0xLjksMS4zMkMyLjg2LDE5LjY4LDIuMjQsMjEuNDMsMi4wNywyMkgxNy4zM1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMiwyNHY2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCww'@; put 'LDItMlYyNFptMjgsNEgyNlYyNmg0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQiIGQ9Ik0xOC42NiwyMkgzMy45M2MtLjE3LS41Ny0uNzktMi4zLTMuMDYtOC41NWE3LjU1LDcuNTUsMCwwLDEtLjg3'@; put 'LjA1LDcuNDYsNy40NiwwLDAsMS0zLjM1LS44LDMsMywwLDAsMS0uODYsMi4yMWwtNi4zOCw2LjM1WiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIg'@; put 'cj0iNSIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDE5Ljg0bDYuMzgtNi4zNUExLDEsMCwxLDAsMjMsMTIuMDhMMTksMTZWNGExLDEsMCwxLDAtMiwwVjE2bC00LTMuOTVhMSwxLDAsMCwwLTEuNDEsMS40MloiLz5c'@; put 'biAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0xOS40MSwyMS4yNmwtLjc0Ljc0SDMzLjkzYy0uMTctLjU3LS43OS0yLjMxLTMuMDktOC42M0ExLjk0LDEuOTQsMCwwLDAsMjguOTMsMTJIMjYuNTVhMywzLDAsMCwxLS43NiwyLjky'@; put 'WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTE2LjU4LDIxLjI2LDEwLjIsMTQuOTFBMywzLDAsMCwxLDkuNDQsMTJINy4wN2ExLjkyLDEuOTIsMCwwLDAtMS45LDEuMzJDMi44NiwxOS42OCwyLjI0LDIxLjQzLDIuMDcs'@; put 'MjJIMTcuMzNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiBkPSJNMiwyNHY2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyNFptMjgsNEgyNlYyNmg0WiIvPlxuJyksYi5DbHJTaGFwZURldmljZXM9KDAscC5jbHJJ'@; put 'Y29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiwxM0gyNGEyLDIsMCwwLDAtMiwyVjMwYTIsMiwwLDAsMCwyLDJoOGEyLDIsMCwwLDAsMi0yVjE1QTIsMiwwLDAsMCwzMiwxM1ptMCwyVjI2SDI0VjE1Wk0yNCwzMFYyNy42aDhW'@; put 'MzBaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTIwLDIySDRWNkgyOHY1aDJWNmEyLDIsMCwwLDAtMi0ySDRBMiwyLDAsMCwwLDIsNlYyMmEyLDIsMCwwLDAsMiwySDIwWiIvPlxuICAgICAgICAgICAgPHBhdGgg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0yMCwyNkg5YTEsMSwwLDAsMCwwLDJIMjBaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIsMTNIMjRhMiwyLDAsMCwwLTIsMlYzMGEy'@; put 'LDIsMCwwLDAsMiwyaDhhMiwyLDAsMCwwLDItMlYxNUEyLDIsMCwwLDAsMzIsMTNabTAsMlYyOEgyNFYxNVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yOCw0SDRBMiwyLDAsMCwwLDIsNlYyMmEyLDIsMCwwLDAsMiwy'@; put 'aDh2Mkg5LjMyQTEuMiwxLjIsMCwwLDAsOCwyN2ExLjIsMS4yLDAsMCwwLDEuMzIsMUgxOS45MnYtLjM3SDIwVjIySDRWNkgyOHY1aDJWNkEyLDIsMCwwLDAsMjgsNFoiLz5cbicpLGIuQ2xyU2hhcGVLZXlib2FyZD0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLDhINGEyLDIsMCwwLDAtMiwyVjI2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMEEyLDIsMCwwLDAsMzIsOFptMCwxOEg0VjEwSDMyWiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTIiIHg9IjciIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgeD0iMTEiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8'@; put 'cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgeD0iMTUiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgeD0iMTkiIHk9IjEzIiB3aWR0'@; put 'aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgeD0iMjMiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtNyIgeD0iMjciIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIgeD0iNyIgeT0iMTciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxy'@; put 'ZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC05IiB4PSIxMSIgeT0iMTciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMCIgeD0iMTUiIHk9IjE3IiB3aWR0'@; put 'aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTEiIHg9IjE5IiB5PSIxNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTEyIiB4PSIyMyIgeT0iMTciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMyIgeD0iMjciIHk9IjE3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAg'@; put 'ICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTQiIHg9IjI3IiB5PSIyMiIgd2lkdGg9IjEuOTQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE1IiB4PSI3IiB5PSIy'@; put 'MiIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE2IiB4PSIxMS4xMyIgeT0iMjIiIHdpZHRoPSIxMy43NSIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt'@; put 'c29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIsOEg0YTIsMiwwLDAsMC0yLDJWMjZhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEwQTIsMiwwLDAsMCwzMiw4Wk0xOSwxM2gydjJIMTlabTAsNGgydjJIMTlabS00LTRoMnYySDE1Wm0wLDRoMnYySDE1Wm0tNC00aDJ2Mkgx'@; put 'MVpNOSwyNEg3VjIySDlabTAtNUg3VjE3SDlabTAtNEg3VjEzSDlabTIsMmgydjJIMTFabTEzLjg4LDdIMTEuMTNWMjJIMjQuODhaTTI1LDE5SDIzVjE3aDJabTAtNEgyM1YxM2gyWm0zLjk0LDlIMjdWMjJoMS45NFpNMjksMTlIMjdWMTdoMlptMC00SDI3VjEzaDJaIi8+XG4nKSxiLkNsclNo'@; put 'YXBlTW91c2U9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwzNEExMCwxMCwwLDAsMSw4LDI0VjEyYTEwLDEwLDAsMCwxLDIwLDBWMjRBMTAsMTAsMCwwLDEsMTgsMzRaTTE4LDRhOCw4LDAsMCwwLTgsOFYy'@; put 'NGE4LDgsMCwwLDAsMTYsMFYxMkE4LDgsMCwwLDAsMTgsNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMTVhMSwxLDAsMCwxLTEtMVYxMGExLDEsMCwwLDEsMiwwdjRBMSwxLDAsMCwxLDE4LDE1WiIvPlxu'@; put 'ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTAsMTAsMCwwLDAsOCwxMlYyNGExMCwxMCwwLDAsMCwyMCwwVjEyQTEwLDEwLDAsMCwwLDE4LDJabTEuMywxMS40NGExLjMsMS4zLDAsMCwxLTIuNiwwVjEwYTEuMywxLjMs'@; put 'MCwwLDEsMi42LDBaIi8+XG4nKSxiLkNsclNoYXBlRGFzaGJvYXJkPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjUuMTgsMTIuMzJsLTUuOTEsNS44MWEzLDMsMCwxLDAsMS40MSwxLjQybDUuOTItNS44MVoi'@; put 'Lz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDQuMjVBMTYuNDksMTYuNDksMCwwLDAsNS40LDMxLjRsLjMuMzVIMzAuM2wuMy0uMzVBMTYuNDksMTYuNDksMCwwLDAsMTgsNC4yNVptMTEuMzQsMjUuNUg2'@; put 'LjY2YTE0LjQzLDE0LjQzLDAsMCwxLTMuMTEtNy44NEg3di0ySDMuNTVBMTQuNDEsMTQuNDEsMCwwLDEsNywxMS4yOWwyLjQ1LDIuNDUsMS40MS0xLjQxTDguNDMsOS44N0ExNC40MSwxNC40MSwwLDAsMSwxNyw2LjI5djMuNWgyVjYuM2ExNC40NywxNC40NywwLDAsMSwxMy40LDEzLjYxSDI4'@; put 'LjkydjJoMy41M0ExNC40MywxNC40MywwLDAsMSwyOS4zNCwyOS43NVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xNS44NSwxOC42OWEzLDMsMCwxLDAsNC44My44NWw1Ljky'@; put 'LTUuODEtMS40MS0xLjQxLTUuOTEsNS44MUEzLDMsMCwwLDAsMTUuODUsMTguNjlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzIuNTgsMTNhNy40NSw3LjQ1LDAsMCwxLTIu'@; put 'MDYuNDQsMTQuNCwxNC40LDAsMCwxLDEuOTMsNi40M0gyOC45MnYyaDMuNTNhMTQuNDMsMTQuNDMsMCwwLDEtMy4xMSw3Ljg0SDYuNjZhMTQuNDMsMTQuNDMsMCwwLDEtMy4xMS03Ljg0SDd2LTJIMy41NUExNC40MSwxNC40MSwwLDAsMSw3LDExLjI5bDIuNDUsMi40NSwxLjQxLTEuNDFMOC40'@; put 'Myw5Ljg3QTE0LjQxLDE0LjQxLDAsMCwxLDE3LDYuMjl2My41aDJWNi4zQTE0LjQxLDE0LjQxLDAsMCwxLDIyLjU4LDdhNy41Miw3LjUyLDAsMCwxLS4wOC0xLDcuNTIsNy41MiwwLDAsMSwuMDktMS4wOUExNi40OSwxNi40OSwwLDAsMCw1LjQsMzEuNGwuMy4zNUgzMC4zbC4zLS4zNWExNi40'@; put 'NSwxNi40NSwwLDAsMCwyLTE4LjM2WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBh'@; put 'dGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDQuMjVBMTYuNDksMTYuNDksMCwwLDAsNS40LDMxLjRsLjMuMzVIMzAuM2wuMy0uMzVBMTYuNDksMTYuNDksMCwwLDAsMTgsNC4yNVptOC42LDkuNDgtNS45Miw1LjgxYTMsMywwLDEsMS0xLjQxLTEuNDJs'@; put 'NS45MS01LjgxWm0tMjMsNi4xN0g3djJIMy41NmMwLS4zOS0uMDUtLjc3LS4wNS0xLjE3UzMuNTMsMjAuMTgsMy41NSwxOS45Wm00Ljg4LTEwLDIuNDYsMi40Nkw5LjQ3LDEzLjc0LDcsMTEuMjlBMTQuNTcsMTQuNTcsMCwwLDEsOC40Myw5Ljg3Wk0xOSw5Ljc5SDE3VjYuMjljLjMyLDAsLjYz'@; put 'LDAsMSwwcy43LDAsMSwuMDVaTTMyLjQ5LDIwLjc0YzAsLjM5LDAsLjc5LS4wNSwxLjE3SDI4Ljkydi0yaDMuNTNDMzIuNDcsMjAuMTgsMzIuNDksMjAuNDYsMzIuNDksMjAuNzRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29s'@; put 'aWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMi41OCwxM2E3LjQ2LDcuNDYsMCwwLDEtMTAtOC4xMkExNi40OSwxNi40OSwwLDAsMCw1LjQsMzEuNGwuMy4zNUgzMC4zbC4zLS4zNWExNi40NSwxNi40NSwwLDAsMCwyLTE4LjM2Wk0xNyw2LjI5Yy4zMiwwLC42MywwLDEsMHMuNywwLDEsLjA1djMu'@; put 'NUgxN1pNNywyMS45MUgzLjU2YzAtLjM5LS4wNS0uNzctLjA1LTEuMTdzMC0uNTYsMC0uODNIN1ptMi41MS04LjE2TDcsMTEuMjlBMTQuNTcsMTQuNTcsMCwwLDEsOC40Myw5Ljg3bDIuNDYsMi40NlptMTAuNjIsOS4xOWEzLDMsMCwxLDEtLjgyLTQuODFsNS45MS01LjgxLDEuNDEsMS40MS01'@; put 'LjkyLDUuODFBMywzLDAsMCwxLDIwLjA5LDIyLjkzWm0xMi4zNS0xSDI4Ljkydi0yaDMuNTNjMCwuMjgsMCwuNTUsMCwuODNTMzIuNDcsMjEuNTIsMzIuNDQsMjEuOTFaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1w'@; put 'YXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuJyksYi5DbHJTaGFwZUhvc3Q9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyNC4zYTIuNDgsMi40OCwwLDEsMCwy'@; put 'LjQ4LDIuNDdBMi40OCwyLjQ4LDAsMCwwLDE4LDI0LjNabTAsMy42YTEuMTMsMS4xMywwLDEsMSwxLjEzLTEuMTJBMS4xMywxLjEzLDAsMCwxLDE4LDI3LjlaIi8+PHJlY3QgeD0iMTMuNSIgeT0iMjAuNyIgd2lkdGg9IjkiIGhlaWdodD0iMS40NCIvPlxuICAgICAgICAgICAgICAgIDxwYXRo'@; put 'IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjUuNjUsMy42SDEwLjM1QTEuMzUsMS4zNSwwLDAsMCw5LDQuOTVWMzIuNEgyN1Y0Ljk1QTEuMzUsMS4zNSwwLDAsMCwyNS42NSwzLjZabS0uNDUsMjdIMTAuOFY1LjRIMjUuMloiLz5cbiAgICAgICAgICAg'@; put 'ICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgeD0iMTIuNiIgeT0iNy4yIiB3aWR0aD0iMTAuOCIgaGVpZ2h0PSIxLjQ0Ii8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQi'@; put 'IHg9IjEyLjYiIHk9IjEwLjgiIHdpZHRoPSIxMC44IiBoZWlnaHQ9IjEuNDQiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTE1LjIsMjcuOGMwLDEuNSwxLjIsMi44LDIuOCwy'@; put 'LjhzMi44LTEuMiwyLjgtMi44UzE5LjUsMjUsMTgsMjVTMTUuMiwyNi4yLDE1LjIsMjcuOHogTTE5LjIsMjcuOGMwLDAuNy0wLjYsMS4yLTEuMiwxLjJzLTEuMi0wLjYtMS4yLTEuMnMwLjYtMS4yLDEuMi0xLjJTMTkuMiwyNy4xLDE5LjIsMjcuOHoiLz5cbiAgICAgICAgICAgICAgICA8cmVj'@; put 'dCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgeD0iMTMiIHk9IjIxIiB3aWR0aD0iMTAiIGhlaWdodD0iMS42Ii8+XG4gICAgICAgICAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIHBvaW50cz0iMjEuMyw2IDEyLDYgMTIsNy42IDIwLjQsNy42Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIGQ9Ik0xMiwxMS42aDYuNmMw'@; put 'LTAuNiwwLjItMS4xLDAuNC0xLjZoLTdWMTEuNnoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIgZD0iTTI2LDE1LjRWMzJIMTBWNGgxMi41bDEuMS0ySDkuNUM4LjcsMiw4LDIuNyw4'@; put 'LDMuNVYzNGgyMFYxNS40SDI2eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuOSwxLjFMMjEuMSwxMWMtMC40LDAuNi0wLjIsMS40LDAuMywxLjhj'@; put 'MC4yLDAuMiwwLjUsMC4yLDAuOCwwLjJoMTEuNWMwLjcsMCwxLjMtMC41LDEuMy0xLjJjMC0wLjMtMC4xLTAuNS0wLjItMC44bC01LjctOS45Yy0wLjQtMC42LTEuMS0wLjgtMS44LTAuNUMyNy4xLDAuOCwyNywxLDI2LjksMS4xeiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTE1LjIsMjcuOGMwLDEuNSwxLjIsMi44LDIuOCwyLjhzMi44LTEuMiwyLjgtMi44UzE5LjUsMjUsMTgsMjVTMTUuMiwyNi4yLDE1LjIsMjcuOHogTTE5LjIsMjcuOGMwLDAuNy0wLjYsMS4yLTEu'@; put 'MiwxLjJzLTEuMi0wLjYtMS4yLTEuMnMwLjYtMS4yLDEuMi0xLjJTMTkuMiwyNy4xLDE5LjIsMjcuOHoiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIHg9IjEzIiB5PSIyMSIgd2lkdGg9'@; put 'IjEwIiBoZWlnaHQ9IjEuNiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgZD0iTTI0LDEwLjVjLTAuMS0wLjItMC4yLTAuMy0wLjMtMC41SDEydjEuNmgxMlYxMC41eiIvPlxuICAgICAg'@; put 'ICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgZD0iTTEyLDZ2MS42aDEwLjdjLTAuMS0wLjUtMC4yLTEuMS0wLjItMS42SDEyeiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIgZD0iTTI2LDEyLjNWMzJIMTBWNGgxMi44YzAuMi0wLjcsMC41LTEuNCwwLjktMkg5LjVDOC43LDIsOCwyLjcsOCwzLjVWMzRoMjBWMTMuMkMyNy4zLDEzLDI2LjYsMTIuNywyNiwxMi4zeiIvPlxuICAgICAgICAgICAg'@; put 'ICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgt'@; put 'MSIgZD0iTTI2LjUsMmgtMTdDOC43LDIsOCwyLjcsOCwzLjVWMzRoMjBWMy41QzI4LDIuNywyNy4zLDIsMjYuNSwyeiBNMTgsMzAuNWMtMS41LDAtMi44LTEuMi0yLjgtMi44UzE2LjUsMjUsMTgsMjVzMi44LDEuMiwyLjgsMi44UzE5LjUsMzAuNSwxOCwzMC41eiBNMjMsMjIuNkgxM1YyMWgx'@; put 'MFYyMi42eiBNMjQsMTEuNkgxMlYxMGgxMlYxMS42eiBNMjQsNy42SDEyVjZoMTJWNy42eiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgY3g9IjE4IiBjeT0iMjcuOCIgcj0iMS4yIi8+XG4gICAgICAgICAgICAgICAg'@; put 'PHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTIyLjIsMTUuM2MtMiwwLTMuNy0xLjYtMy43LTMuN0gxMlYxMGg2LjljMC0wLjEsMC4xLTAuMiwwLjEtMC4ybDEuMi0yLjJIMTJWNmg5LjJsMi4zLTRoLTE0QzguNywyLDgs'@; put 'Mi43LDgsMy41VjM0aDIwVjE1LjNIMjIuMnogTTE4LDMwLjVjLTEuNSwwLTIuOC0xLjItMi44LTIuOFMxNi41LDI1LDE4LDI1czIuOCwxLjIsMi44LDIuOFMxOS41LDMwLjUsMTgsMzAuNXogTTIzLDIyLjZIMTNWMjFoMTBWMjIuNnoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNz'@; put 'PSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGN4PSIxOCIgY3k9IjI3LjgiIHI9IjEuMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWkt'@; put 'YWxlcnQiIGQ9Ik0yNi45LDFsLTUuNyw5LjljLTAuMywwLjYtMC4xLDEuNCwwLjUsMS43YzAuMiwwLjEsMC40LDAuMiwwLjYsMC4yaDExLjRjMC43LDAsMS4zLTAuNiwxLjMtMS4zYzAtMC4yLTAuMS0wLjQtMC4yLTAuNkwyOS4xLDFjLTAuNC0wLjYtMS4xLTAuOC0xLjgtMC41QzI3LjEsMC43'@; put 'LDI3LDAuOCwyNi45LDF6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yNCwxMC4zdjEuMkgxMlYxMGgxMS44Yy0wLjUtMC43LTAuOC0xLjUtMS0yLjRIMTJWNmgxMC41YzAsMCwwLTAu'@; put 'MSwwLTAuMWMwLTEuNCwwLjQtMi43LDEuMS0zLjlIOS41QzguNywyLDgsMi43LDgsMy41VjM0aDIwVjEzLjFDMjYuNCwxMi42LDI1LDExLjcsMjQsMTAuM3ogTTE4LDMwLjVjLTEuNSwwLTIuOC0xLjItMi44LTIuOFMxNi41LDI1LDE4LDI1czIuOCwxLjIsMi44LDIuOFMxOS41LDMwLjUsMTgs'@; put 'MzAuNXpNMjMsMjIuNkgxM1YyMWgxMFYyMi42eiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGN4PSIxOCIgY3k9IjI3LjgiIHI9IjEuMiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUg'@; put 'Y2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjUuOSIgcj0iNSIvPlxuJyksYi5DbHJTaGFwZVN0b3JhZ2U9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTEiIGQ9Ik0zMyw2LjY5aDBjLS4xOC0zLjQxLTkuNDctNC4zMy0xNS00LjMzUzMsMy4yOSwzLDYuNzhWMjkuMzdjMCwzLjQ5LDkuNDMsNC40MywxNSw0LjQzczE1LS45MywxNS00LjQzVjYuNzhzMCwwLDAsMFMzMyw2LjcsMzMsNi42OVptLTIsNy41NmMtLjMzLjg2LTUu'@; put 'MDYsMi40NS0xMywyLjQ1QTM3LjQ1LDM3LjQ1LDAsMCwxLDcsMTUuMzR2Mi4wOEE0My4zMiw0My4zMiwwLDAsMCwxOCwxOC43YzQsMCw5LjkzLS40OCwxMy0ydjUuMTdjLS4zMy44Ni01LjA2LDIuNDUtMTMsMi40NUEzNy40NSwzNy40NSwwLDAsMSw3LDIyLjkyVjI1YTQzLjMyLDQzLjMyLDAs'@; put 'MCwwLDExLDEuMjhjNCwwLDkuOTMtLjQ4LDEzLTJ2NS4xYy0uMzUuODYtNS4wOCwyLjQ1LTEzLDIuNDVTNS4zLDMwLjIsNSwyOS4zN1Y2LjgyQzUuMyw2LDEwLDQuMzYsMTgsNC4zNmM3Ljc3LDAsMTIuNDYsMS41MywxMywyLjM3LS41Mi44Ny01LjIxLDIuMzktMTMsMi4zOUEzNy42LDM3LjYs'@; put 'MCwwLDEsNyw3Ljc2VjkuODVhNDMuNTMsNDMuNTMsMCwwLDAsMTEsMS4yN2M0LDAsOS45My0uNDgsMTMtMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTE5LjUxLDkuMDks'@; put 'MTgsOS4xMUEzNy42LDM3LjYsMCwwLDEsNyw3Ljc2VjkuODVhNDMuNTMsNDMuNTMsMCwwLDAsMTEsMS4yN2guNjFBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTItLWFsZXJ0ZWQiIGQ9Ik0yOC44MywxNS40QTM4LjM3LDM4LjM3LDAsMCwxLDE4LDE2LjcsMzcuNDUsMzcuNDUsMCwwLDEsNywxNS4zNHYyLjA4QTQzLjMzLDQzLjMzLDAsMCwwLDE4LDE4LjdjNCwwLDkuOTMtLjQ4LDEzLTJ2NS4xN2MtLjMzLjg2LTUuMDYsMi40NS0xMywyLjQ1QTM3LjQ1'@; put 'LDM3LjQ1LDAsMCwxLDcsMjIuOTJWMjVhNDMuMzMsNDMuMzMsMCwwLDAsMTEsMS4yOGM0LDAsOS45My0uNDgsMTMtMnY1LjFjLS4zNS44Ni01LjA4LDIuNDUtMTMsMi40NVM1LjMsMzAuMiw1LDI5LjM3VjYuODJDNS4zLDYsMTAsNC4zNiwxOCw0LjM2YzEuNSwwLDIuODkuMDYsNC4xNS4xNmwx'@; put 'LjEtMS45Yy0xLjg2LS4xOC0zLjctLjI2LTUuMjUtLjI2LTUuNTcsMC0xNSwuOTMtMTUsNC40M1YyOS4zN2MwLDMuNDksOS40Myw0LjQzLDE1LDQuNDNzMTUtLjkzLDE1LTQuNDN2LTE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4g'@; put 'ICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNNyw3Ljc2VjkuODVhNDMuNTMsNDMuNTMsMCwwLDAsMTEsMS4yNyw1NC44Miw1NC44MiwwLDAsMCw2LjItLjM2LDcuNSw3LjUsMCwwLDEtMS4x'@; put 'My0xLjg4Yy0xLjUuMTUtMy4yLjI0LTUuMDcuMjRBMzcuNiwzNy42LDAsMCwxLDcsNy43NloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMSwxMy40M3YuODJjLS4zMy44Ni01'@; put 'LjA2LDIuNDUtMTMsMi40NUEzNy40NSwzNy40NSwwLDAsMSw3LDE1LjM0djIuMDhBNDMuMzMsNDMuMzMsMCwwLDAsMTgsMTguN2M0LDAsOS45My0uNDgsMTMtMnY1LjE3Yy0uMzMuODYtNS4wNiwyLjQ1LTEzLDIuNDVBMzcuNDUsMzcuNDUsMCwwLDEsNywyMi45MlYyNWE0My4zMyw0My4zMyww'@; put 'LDAsMCwxMSwxLjI4YzQsMCw5LjkzLS40OCwxMy0ydjUuMWMtLjM1Ljg2LTUuMDgsMi40NS0xMywyLjQ1UzUuMywzMC4yLDUsMjkuMzdWNi44MkM1LjMsNiwxMCw0LjM2LDE4LDQuMzZjMS43LDAsMy4yNS4wOCw0LjY0LjJhNy40NCw3LjQ0LDAsMCwxLC42Ny0xLjk0Yy0xLjg4LS4xOC0zLjc1'@; put 'LS4yNi01LjMxLS4yNi01LjU3LDAtMTUsLjkzLTE1LDQuNDNWMjkuMzdjMCwzLjQ5LDkuNDMsNC40MywxNSw0LjQzczE1LS45MywxNS00LjQzVjEyLjg3QTcuNDUsNy40NSwwLDAsMSwzMSwxMy40M1oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i'@; put 'YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xNy45MSwxOC4yOGM4LjA4LDAsMTQuNjYtMS43'@; put 'NCwxNS4wOS0zLjk0VjguNTljLS40MywyLjItNywzLjk0LTE1LjA5LDMuOTRBMzkuNCwzOS40LDAsMCwxLDYuMjUsMTFWOWEzOS40LDM5LjQsMCwwLDAsMTEuNjYsMS41MUMyNiwxMC41MywzMi41Miw4Ljc5LDMzLDYuNjFoMEMzMi44LDMuMiwyMy41MiwyLjI4LDE4LDIuMjhTMywzLjIxLDMs'@; put 'Ni43MVYyOS4yOWMwLDMuNDksOS40Myw0LjQzLDE1LDQuNDNzMTUtLjkzLDE1LTQuNDNWMjQuMDlDMzIuNTcsMjYuMjgsMjYsMjgsMTcuOTEsMjhBMzkuNCwzOS40LDAsMCwxLDYuMjUsMjYuNTJ2LTJBMzkuNCwzOS40LDAsMCwwLDE3LjkxLDI2QzI2LDI2LDMyLjU3LDI0LjI4LDMzLDIyLjA5'@; put 'VjE2LjM0Yy0uNDMsMi4yLTcsMy45NC0xNS4wOSwzLjk0QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDE4Ljc3di0yQTM5LjQsMzkuNCwwLDAsMCwxNy45MSwxOC4yOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0x'@; put 'LS1hbGVydGVkIiBkPSJNMTcuOTEsMjAuMjhBMzkuNCwzOS40LDAsMCwxLDYuMjUsMTguNzd2LTJhMzkuNCwzOS40LDAsMCwwLDExLjY2LDEuNTFjNi45LDAsMTIuNy0xLjI3LDE0LjUxLTNIMjIuMjNhMy42NywzLjY3LDAsMCwxLTMuNTUtMi43NWgtLjc3QTM5LjQsMzkuNCwwLDAsMSw2LjI1'@; put 'LDExVjlhMzkuNCwzOS40LDAsMCwwLDExLjY2LDEuNTFoLjgyQTMuNjQsMy42NCwwLDAsMSwxOSw5Ljc1bDQuMTctNy4yMmMtMS44NS0uMTgtMy42OC0uMjUtNS4yMS0uMjUtNS41NywwLTE1LC45My0xNSw0LjQzVjI5LjI5YzAsMy40OSw5LjQzLDQuNDMsMTUsNC40M3MxNS0uOTMsMTUtNC40'@; put 'M1YyNC4wOUMzMi41NywyNi4yOCwyNiwyOCwxNy45MSwyOEEzOS40LDM5LjQsMCwwLDEsNi4yNSwyNi41MnYtMkEzOS40LDM5LjQsMCwwLDAsMTcuOTEsMjZDMjYsMjYsMzIuNTcsMjQuMjgsMzMsMjIuMDlWMTYuMzRDMzIuNTcsMTguNTMsMjYsMjAuMjgsMTcuOTEsMjAuMjhaIi8+XG4gICAg'@; put 'ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDFsLTUuNzIsOS45MWExLjI4LDEuMjgsMCwwLDAsMS4xLDEuOTFIMzMuNjhhMS4yOCwxLjI4LDAsMCwwLDEuMS0xLjkx'@; put 'TDI5LjA2LDFBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xNy45MSwxOC4yOGM4LjA4LDAsMTQuNjYtMS43NCwxNS4wOS0zLjk0di0xLjZh'@; put 'Ny40Nyw3LjQ3LDAsMCwxLTcuMzgtLjgsNDguMyw0OC4zLDAsMCwxLTcuNzEuNTlBMzkuNCwzOS40LDAsMCwxLDYuMjUsMTFWOWEzOS40LDM5LjQsMCwwLDAsMTEuNjYsMS41MSw1MSw1MSwwLDAsMCw2LS4zNCw3LjQ2LDcuNDYsMCwwLDEtLjU5LTcuNjVjLTEuODctLjE4LTMuNzMtLjI2LTUu'@; put 'MjgtLjI2LTUuNTcsMC0xNSwuOTMtMTUsNC40M1YyOS4yOWMwLDMuNDksOS40Myw0LjQzLDE1LDQuNDNzMTUtLjkzLDE1LTQuNDNWMjQuMDlDMzIuNTcsMjYuMjgsMjYsMjgsMTcuOTEsMjhBMzkuNCwzOS40LDAsMCwxLDYuMjUsMjYuNTJ2LTJBMzkuNCwzOS40LDAsMCwwLDE3LjkxLDI2QzI2'@; put 'LDI2LDMyLjU3LDI0LjI4LDMzLDIyLjA5VjE2LjM0Yy0uNDMsMi4yLTcsMy45NC0xNS4wOSwzLjk0QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDE4Ljc3di0yQTM5LjQsMzkuNCwwLDAsMCwxNy45MSwxOC4yOFoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0t'@; put 'YmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI1Ljg2IiByPSI1Ii8+XG4nKSxiLkNsclNoYXBlQ2x1c3Rlcj0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuMzYsOEgyNy41djJIMzFWMzBIMjcuNXYySDMzVjkuNjdBMS42NSwx'@; put 'LjY1LDAsMCwwLDMxLjM2LDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTUsMTBIOC41VjhINC42NEExLjY1LDEuNjUsMCwwLDAsMyw5LjY3VjMySDguNVYzMEg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy'@; put 'LWktb3V0bGluZS1wYXRoLTIiLz48ZWxsaXBzZSBjeD0iMTguMDEiIGN5PSIyNS45OSIgcng9IjEuOCIgcnk9IjEuNzkiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQuMzIsNEgxMS42OEExLjY4LDEuNjgsMCww'@; put 'LDAsMTAsNS42OFYzMkgyNlY1LjY4QTEuNjgsMS42OCwwLDAsMCwyNC4zMiw0Wk0yNCwzMEgxMlY2SDI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEzLjUiIHk9IjkuMjEiIHdpZHRoPSI5IiBoZWlnaHQ9IjEu'@; put 'NiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01LDEwSDguNVY4SDQuNjRBMS42NSwxLjY1LDAsMCwwLDMsOS42N1YzMkg4LjVWMzBINVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0xLS1hbGVydGVkIi8+PGVsbGlwc2UgY3g9IjE4LjAxIiBjeT0iMjUuOTkiIHJ4PSIxLjgiIHJ5PSIxLjc5IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDkuODls'@; put 'LjM5LS42OEgxMy41djEuNmg1LjE3QTMuNjUsMy42NSwwLDAsMSwxOSw5Ljg5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNCwzMEgxMlY2aDkuMjlsMS4xNS0ySDExLjY4QTEu'@; put 'NjgsMS42OCwwLDAsMCwxMCw1LjY4VjMySDI2VjE1LjRIMjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzMSAxNS40IDMxIDMwIDI3LjUgMzAgMjcuNSAzMiAzMyAz'@; put 'MiAzMyAxNS40IDMxIDE1LjQiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4'@; put 'LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTUsMTBIOC41VjhI'@; put 'NC42NEExLjY1LDEuNjUsMCwwLDAsMyw5LjY3VjMySDguNVYzMEg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+PGVsbGlwc2UgY3g9IjE4LjAxIiBjeT0iMjUuOTkiIHJ4PSIxLjgiIHJ5PSIxLjc5IiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEzLjUiIHk9IjkuMjEiIHdpZHRoPSI5IiBoZWlnaHQ9IjEuNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2Vk'@; put 'Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQsMTAuNDlWMzBIMTJWNkgyMi41YTcuNDksNy40OSwwLDAsMSwuMjgtMkgxMS42OEExLjY4LDEuNjgsMCwwLDAsMTAsNS42OFYzMkgyNlYxMi4zNEE3LjUzLDcuNTMsMCwwLDEsMjQsMTAuNDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk'@; put 'Z2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMSwxMy40M1YzMEgyNy41djJIMzNWMTIuODdBNy40NSw3LjQ1LDAsMCwxLDMxLDEzLjQzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0t'@; put 'YmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjM2LDhIMjcuNVYzMkgz'@; put 'M1Y5LjY3QTEuNjUsMS42NSwwLDAsMCwzMS4zNiw4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMsOS42N1YzMkg4LjVWOEg0LjY0QTEuNjUsMS42NSwwLDAsMCwzLDkuNjdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xy'@; put 'LWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQuMzIsNEgxMS42OEExLjY4LDEuNjgsMCwwLDAsMTAsNS42OFYzMkgyNlY1LjY4QTEuNjgsMS42OCwwLDAsMCwyNC4zMiw0Wk0xOCwyNy43OUExLjc5LDEuNzksMCwxLDEsMTkuODEsMjYsMS44LDEuOCwwLDAsMSwx'@; put 'OCwyNy43OVpNMjMsMTAuNkgxM1Y5SDIzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMsOS42N1YzMkg4LjVWOEg0LjY0QTEuNjUsMS42NSwwLDAsMCwzLDkuNjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQg'@; put 'Y2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNy41IiB5PSIxNS40IiB3aWR0aD0iNS41IiBoZWlnaHQ9IjE2LjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAg'@; put 'IDxwYXRoIGQ9Ik0xOSwxMy41NmEzLjY4LDMuNjgsMCwwLDEtLjMxLTNIMTNWOWg2LjU2bDIuODktNUgxMS42OEExLjY4LDEuNjgsMCwwLDAsMTAsNS42OFYzMkgyNlYxNS40SDIyLjIzQTMuNjksMy42OSwwLDAsMSwxOSwxMy41NlpNMTgsMjcuNzlBMS43OSwxLjc5LDAsMSwxLDE5LjgxLDI2'@; put 'LDEuOCwxLjgsMCwwLDEsMTgsMjcuNzlaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwx'@; put 'LjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMyw5LjY3VjMySDgu'@; put 'NVY4SDQuNjRBMS42NSwxLjY1LDAsMCwwLDMsOS42N1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNSw2YTcuNDksNy40OSwwLDAsMSwuMjgtMkgxMS42OEExLjY4LDEuNjgsMCwwLDAs'@; put 'MTAsNS42OFYzMkgyNlYxMi4zNEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2Wk0xOCwyNy43OUExLjc5LDEuNzksMCwxLDEsMTkuODEsMjYsMS44LDEuOCwwLDAsMSwxOCwyNy43OVpNMjMsMTAuNkgxM1Y5SDIzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0y'@; put 'LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNDcsNy40NywwLDAsMS0yLjUtLjQ0VjMySDMzVjEyLjg3QTcuNDcsNy40NywwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiLz5cbiAg'@; put 'ICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksYi5DbHJTaGFwZUFwcGxpY2F0aW9ucz0oMCxwLmNsckljb25TVkcpKCc8cG9s'@; put 'eWdvbiBwb2ludHM9IjggOCA0IDggNCAxMCAxMCAxMCAxMCA0IDggNCA4IDgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjE5IDggMTUgOCAxNSAxMCAyMSAxMCAyMSA0IDE5IDQgMTkgOCIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzAgNCAzMCA4IDI2IDggMjYgMTAgMzIgMTAgMzIgNCAzMCA0IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAg'@; put 'PHBvbHlnb24gcG9pbnRzPSI4IDE5IDQgMTkgNCAyMSAxMCAyMSAxMCAxNSA4IDE1IDggMTkiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjE5IDE5IDE1IDE5IDE1IDIxIDIxIDIxIDIxIDE1IDE5IDE1'@; put 'IDE5IDE5IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzMCAxOSAyNiAxOSAyNiAyMSAzMiAyMSAzMiAxNSAzMCAxNSAzMCAxOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTYiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAzMCA0IDMwIDQgMzIgMTAgMzIgMTAgMjYgOCAyNiA4IDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxOSAzMCAxNSAzMCAxNSAz'@; put 'MiAyMSAzMiAyMSAyNiAxOSAyNiAxOSAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzAgMzAgMjYgMzAgMjYgMzIgMzIgMzIgMzIgMjYgMzAgMjYgMzAgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC05Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjggOCA0IDggNCAxMCAxMCAxMCAxMCA0IDggNCA4IDgiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBv'@; put 'bHlnb24gcG9pbnRzPSIxOSA4IDE1IDggMTUgMTAgMjEgMTAgMjEgNCAxOSA0IDE5IDgiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI4IDE5IDQgMTkgNCAyMSAxMCAyMSAx'@; put 'MCAxNSA4IDE1IDggMTkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxOSAxOSAxNSAxOSAxNSAyMSAyMSAyMSAyMSAxNSAxOSAxNSAxOSAxOSIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjMwIDE5IDI2IDE5IDI2IDIxIDMyIDIxIDMyIDE1IDMwIDE1IDMwIDE5IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC01LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAzMCA0IDMwIDQgMzIgMTAgMzIgMTAgMjYgOCAyNiA4IDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29u'@; put 'IHBvaW50cz0iMTkgMzAgMTUgMzAgMTUgMzIgMjEgMzIgMjEgMjYgMTkgMjYgMTkgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzMCAzMCAyNiAzMCAyNiAzMiAzMiAz'@; put 'MiAzMiAyNiAzMCAyNiAzMCAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTktLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI4IDggNCA4IDQgMTAgMTAgMTAgMTAgNCA4IDQgOCA4IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAg'@; put 'ICAgICAgPHBvbHlnb24gcG9pbnRzPSI4IDE5IDQgMTkgNCAyMSAxMCAyMSAxMCAxNSA4IDE1IDggMTkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjE5IDE5IDE1IDE5'@; put 'IDE1IDIxIDIxIDIxIDIxIDE1IDE5IDE1IDE5IDE5IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzMCAxNSAzMCAxOSAyNiAxOSAyNiAyMSAzMiAyMSAzMiAxNSAzMCAx'@; put 'NSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAzMCA0IDMwIDQgMzIgMTAgMzIgMTAgMjYgOCAyNiA4IDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxOSAzMCAxNSAzMCAxNSAzMiAyMSAzMiAyMSAyNiAxOSAyNiAxOSAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWFsZXJ0ZWQi'@; put 'Lz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzAgMzAgMjYgMzAgMjYgMzIgMzIgMzIgMzIgMjYgMzAgMjYgMzAgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC03LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTks'@; put 'OEgxNXYyaDRMMTksOS44OSwyMSw2LjVWNEgxOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC04LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMu'@; put 'NjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtOS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0i'@; put 'NCIgeT0iNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNCIgeT0iMTUiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5c'@; put 'biAgICAgICAgICAgIDxyZWN0IHg9IjQiIHk9IjI2IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlk'@; put 'IGNsci1pLXNvbGlkLXBhdGgtNCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC01Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMjYiIHdpZHRoPSI2IiBoZWln'@; put 'aHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTYiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI2IiB5PSI0IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC03Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIy'@; put 'NiIgeT0iMTUiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTgiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI2IiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtOSIv'@; put 'PlxuICAgICAgICAgICAgPHJlY3QgeD0iNCIgeT0iNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNCIgeT0iMTUiIHdpZHRoPSI2IiBoZWlnaHQ9IjYi'@; put 'IGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQiIHk9IjI2IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVy'@; put 'dGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMTUiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIyNiIgd2lkdGg9IjYiIGhl'@; put 'aWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjYiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0'@; put 'aC02LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNiIgeT0iMjYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTctLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNSwxMGg0TDE5LDku'@; put 'ODksMjEsNi41VjRIMTVaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC04LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCww'@; put 'LDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC05LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSI0IiB5PSI0IiB3aWR0aD0iNiIgaGVp'@; put 'Z2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNCIgeT0iMTUiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0t'@; put 'YmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI0IiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSI0IiB3aWR0aD0iNiIgaGVp'@; put 'Z2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTUt'@; put 'LWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjI2IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTYtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjYiIHk9IjE1IiB3aWR0aD0iNiIg'@; put 'aGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTctLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjYiIHk9IjI2IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRo'@; put 'LTgtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTktLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAnKSxiLkNsclNoYXBlQnVpbGRpbmc9KDAscC5jbHJJ'@; put 'Y29uU1ZHKSgnPHBhdGggZD0iTTE5Ljg4LDNINi4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDIyVjUuMTJBMi4xMiwyLjEyLDAsMCwwLDE5Ljg4LDNaTTIwLDMxSDE3VjI4SDl2M0g2VjUuMTJBLjEyLjEyLDAsMCwxLDYuMTIsNUgxOS44OGEuMTIuMTIsMCwwLDEsLjEyLjEyWiIgY2xh'@; put 'c3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI4IiB5PSI4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRn'@; put 'ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEyIiB5PSI4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSI4IiB3aWR0aD0iMiIgaGVp'@; put 'Z2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC01LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEyIiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMTMi'@; put 'IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg'@; put 'Y2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC05LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0'@; put 'IHg9IjE2IiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTAtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTExLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEyIiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTItLWJhZGdlZCIvPlxu'@; put 'ICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyMyIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9'@; put 'IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE0LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtMTUtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjMiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xNi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNyIgeT0iMTgi'@; put 'IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE3LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIzIiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl'@; put 'ZCBjbHItaS1vdXRsaW5lLXBhdGgtMTgtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjciIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xOS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8'@; put 'cGF0aCBkPSJNMzEsMTMuNDNWMzFIMjN2MkgzM1YxMi44N0E3LjQ1LDcuNDUsMCwwLDEsMzEsMTMuNDNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yMC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUi'@; put 'IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTIxLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2'@; put 'IiB5PSI4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'LS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIi8+XG4gICAg'@; put 'ICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI4IiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEyIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTgtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjIzIiB3'@; put 'aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTAtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEyIiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0'@; put 'ZWQgY2xyLWktb3V0bGluZS1wYXRoLTExLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMi0tYWxlcnRlZCIvPlxuICAgICAgICAg'@; put 'ICAgPHJlY3QgeD0iMjMiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xh'@; put 'c3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTE0LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyMyIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0x'@; put 'NS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjciIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTYtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMCwzMUgxN1Yy'@; put 'OEg5djNINlY1LjEyQS4xMi4xMiwwLDAsMSw2LjEyLDVIMTkuODhhLjEyLjEyLDAsMCwxLC4xMi4xMlY4LjI0bDItMy40MUEyLjEyLDIuMTIsMCwwLDAsMTkuODgsM0g2LjEyQTIuMTIsMi4xMiwwLDAsMCw0LDUuMTJWMzNIMjJWMTUuMzhhMy42OCwzLjY4LDAsMCwxLTItLjc0WiIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTE3LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjMxIDE1LjQgMzEgMzEgMjMgMzEgMjMgMzMgMzMgMzMgMzMgMTUuNCAzMSAxNS40IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl'@; put 'ZCBjbHItaS1vdXRsaW5lLXBhdGgtMTgtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYu'@; put 'ODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xOS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLDhIMjJWMzNIMzNWMTBBMiwyLDAsMCwwLDMxLDhaTTI2LDI1SDI0VjIzaDJabTAtNUgyNFYx'@; put 'OGgyWm0wLTVIMjRWMTNoMlptNCwxMEgyOFYyM2gyWm0wLTVIMjhWMThoMlptMC01SDI4VjEzaDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcuODgsM0g2LjEyQTIuMTIsMi4xMiwwLDAsMCw0LDUuMTJWMzNIOVYz'@; put 'MGg2djNoNVY1LjEyQTIuMTIsMi4xMiwwLDAsMCwxNy44OCwzWk05LDI1SDdWMjNIOVptMC01SDdWMThIOVptMC01SDdWMTNIOVptMC01SDdWOEg5Wm00LDE1SDExVjIzaDJabTAtNUgxMVYxOGgyWm0wLTVIMTFWMTNoMlptMC01SDExVjhoMlptNCwxNUgxNVYyM2gyWm0wLTVIMTVWMThoMlpt'@; put 'MC01SDE1VjEzaDJabTAtNUgxNVY4aDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcuODgsM0g2LjEyQTIuMTIsMi4xMiwwLDAsMCw0LDUuMTJWMzNIOVYzMGg2djNoNVYxNC42NGEzLjY3LDMuNjcsMCwwLDEtMS00'@; put 'Ljc2bDEtMS42NVY1LjEyQTIuMTIsMi4xMiwwLDAsMCwxNy44OCwzWk05LDI1SDdWMjNIOVptMC01SDdWMThIOVptMC01SDdWMTNIOVptMC01SDdWOEg5Wm00LDE1SDExVjIzaDJabTAtNUgxMVYxOGgyWm0wLTVIMTFWMTNoMlptMC01SDExVjhoMlptNCwxNUgxNVYyM2gyWm0wLTVIMTVWMTho'@; put 'MlptMC01SDE1VjEzaDJabTAtNUgxNVY4aDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjMsMTUuNGwtLjIzLDBWMzNIMzNWMTUuNFpNMjYsMjVIMjRWMjNoMlptMC01SDI0VjE4'@; put 'aDJabTQsNUgyOFYyM2gyWm0wLTVIMjhWMThoMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEEx'@; put 'LjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy44OCwz'@; put 'SDYuMTJBMi4xMiwyLjEyLDAsMCwwLDQsNS4xMlYzM0g5VjMwaDZ2M2g1VjUuMTJBMi4xMiwyLjEyLDAsMCwwLDE3Ljg4LDNaTTksMjVIN1YyM0g5Wm0wLTVIN1YxOEg5Wm0wLTVIN1YxM0g5Wm0wLTVIN1Y4SDlabTQsMTVIMTFWMjNoMlptMC01SDExVjE4aDJabTAtNUgxMVYxM2gyWm0wLTVI'@; put 'MTFWOGgyWm00LDE1SDE1VjIzaDJabTAtNUgxNVYxOGgyWm0wLTVIMTVWMTNoMlptMC01SDE1VjhoMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNVYxNUgyOFYxMy4yMkE3LjUs'@; put 'Ny41LDAsMCwxLDIyLjc4LDhIMjJWMzNIMzNWMTIuODdBNy40Nyw3LjQ3LDAsMCwxLDMwLDEzLjVaTTI2LDI1SDI0VjIzaDJabTAtNUgyNFYxOGgyWm0wLTVIMjRWMTNoMlptNCwxMEgyOFYyM2gyWm0wLTVIMjhWMThoMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlk'@; put 'LXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEsOEgyM3YyaDhW'@; put 'MzFIMjN2MkgzM1YxMEEyLDIsMCwwLDAsMzEsOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuODgsM0g2LjEyQTIuMTIsMi4xMiwwLDAsMCw0LDUuMTJWMzNIMjJWNS4xMkEyLjEyLDIuMTIsMCwwLDAsMTku'@; put 'ODgsM1pNMjAsMzFIMTdWMjhIOXYzSDZWNS4xMkEuMTIuMTIsMCwwLDEsNi4xMiw1SDE5Ljg4YS4xMi4xMiwwLDAsMSwuMTIuMTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iOCIgd2lkdGg9IjIiIGhl'@; put 'aWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEyIiB5PSI4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICAgICAgICAgICAg'@; put 'PHJlY3QgeD0iMTYiIHk9IjgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSI4IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTYiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEyIiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdo'@; put 'dD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIvPlxuICAgICAgICAgICAgPHJl'@; put 'Y3QgeD0iMTIiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTExIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI4IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEyIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMjMiIHdpZHRoPSIyIiBoZWln'@; put 'aHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMyIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTQiLz5cbiAgICAgICAgICAg'@; put 'IDxyZWN0IHg9IjIzIiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE1Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNyIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC0xNiIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjMiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTciLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIxOCIgd2lkdGg9IjIi'@; put 'IGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE4Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyMyIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xOSIvPlxuICAgICAg'@; put 'ICAgICAgPHJlY3QgeD0iMjciIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMjAiLz5cbiAgICAgICAgJyksYi5DbHJTaGFwZUNQVT0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjMuMDgsMjMuMDdoLTExdjEu'@; put 'NUgyMy44M2EuNzUuNzUsMCwwLDAsLjc1LS43NVYxMS4zM2gtMS41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yLDE4LjE1YS44LjgsMCwxLDAsMC0xLjZIMzB2LTUuNGgyLjJhLjguOCwwLDEsMCwwLTEu'@; put 'NkgzMFY4LjFBMi4xLDIuMSwwLDAsMCwyNy45LDZIMjYuMzVWMy44YS44LjgsMCwxLDAtMS42LDBWNmgtNS40VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEsMC0xLjYsMFY2SDguMUEyLjEsMi4xLDAsMCwwLDYsOC4xVjkuNTVIMy44YS44LjgsMCwxLDAsMCwxLjZI'@; put 'NnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINlYyNy45QTIuMSwyLjEsMCwwLDAsOC4xLDMwaDIuNjV2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYz'@; put 'MEgyNy45QTIuMSwyLjEsMCwwLDAsMzAsMjcuOVYyNS4xNWgyLjJhLjguOCwwLDEsMCwwLTEuNkgzMHYtNS40Wk0yOCwyNy45YS4xLjEsMCwwLDEtLjEuMUg4LjFhLjEuMSwwLDAsMS0uMS0uMVY4LjFBLjEuMSwwLDAsMSw4LjEsOEgyNy45YS4xLjEsMCwwLDEsLjEuMVoiIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTIuMDYsMjQuNTdIMjMuODNhLjc1Ljc1LDAsMCwwLC43NS0uNzVWMTEuMzNoLTEuNVYyMy4wN2gtMTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yLDIzLjU1SDMwdi01LjRoMi4yYS44LjgsMCwxLDAsMC0xLjZIMzBWMTMuNWE3LjQ5LDcuNDksMCwwLDEtMi0uMjhWMjcuOWEuMS4xLDAsMCwxLS4xLjFIOC4xYS4xLjEsMCwwLDEtLjEtLjFWOC4xQS4xLjEsMCwwLDEs'@; put 'OC4xLDhIMjIuNzhhNy40OSw3LjQ5LDAsMCwxLS4yOC0ySDE5LjM1VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEsMC0xLjYsMFY2SDguMUEyLjEsMi4xLDAsMCwwLDYsOC4xVjkuNTVIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwx'@; put 'LjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINlYyNy45QTIuMSwyLjEsMCwwLDAsOC4xLDMwaDIuNjV2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMEgyNy45QTIuMSwyLjEsMCwwLDAsMzAs'@; put 'MjcuOVYyNS4xNWgyLjJhLjguOCwwLDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yLDIzLjU1SDMwdi01LjRoMi4yYS44LjgsMCwxLDAsMC0xLjZIMzBWMTUuNEgyOFYyNy45YS4xLjEsMCwwLDEtLjEuMUg4LjFhLjEuMSwwLDAsMS0uMS0uMVY4LjFB'@; put 'LjEuMSwwLDAsMSw4LjEsOGgxMmwxLjE1LTJIMTkuMzVWMy44YS44LjgsMCwxLDAtMS42LDBWNmgtNS40VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZIOC4xQTIuMSwyLjEsMCwwLDAsNiw4LjFWOS41NUgzLjhhLjguOCwwLDEsMCwwLDEuNkg2djUuNEgzLjhhLjguOCwwLDEsMCwwLDEuNkg2djUu'@; put 'NEgzLjhhLjguOCwwLDEsMCwwLDEuNkg2VjI3LjlBMi4xLDIuMSwwLDAsMCw4LjEsMzBoMi42NXYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMGg1LjR2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwSDI3LjlBMi4xLDIuMSwwLDAsMCwzMCwyNy45VjI1'@; put 'LjE1aDIuMmEuOC44LDAsMSwwLDAtMS42WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMi4wNiwyNC41N0gyMy44M2EuNzUuNzUsMCwwLDAsLjc1LS43NVYxNS40aC0xLjV2Ny42'@; put 'N2gtMTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQu'@; put 'NzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuMiwyMy41NUgzMHYtNS40aDIu'@; put 'MmEuOC44LDAsMSwwLDAtMS42SDMwVjE1LjRIMjV2OC40MUExLjE4LDEuMTgsMCwwLDEsMjQsMjVIMTNWMjNIMjNWMTUuNGgtLjc3QTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDIxLjI5LDZIMTkuMzVWMy44YS44LjgsMCwxLDAtMS42LDBWNmgtNS40VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZI'@; put 'OC4xQTIuMSwyLjEsMCwwLDAsNiw4LjFWOS41NUgzLjhhLjguOCwwLDEsMCwwLDEuNkg2djUuNEgzLjhhLjguOCwwLDEsMCwwLDEuNkg2djUuNEgzLjhhLjguOCwwLDEsMCwwLDEuNkg2VjI3LjlBMi4xLDIuMSwwLDAsMCw4LjEsMzBoMi42NXYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMGg1LjR2'@; put 'Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwSDI3LjlBMi4xLDIuMSwwLDAsMCwzMCwyNy45VjI1LjE1aDIuMmEuOC44LDAsMSwwLDAtMS42WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIv'@; put 'PlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVy'@; put 'dGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjIsMjMuNTVIMzB2LTUuNGgyLjJhLjguOCwwLDEsMCwwLTEuNkgzMFYxMy41YTcuNDYsNy40NiwwLDAsMS01LTEuOTJWMjMuODFBMS4xOCwxLjE4LDAsMCwxLDI0'@; put 'LDI1SDEzVjIzSDIzVjExaDEuNDJBNy40Niw3LjQ2LDAsMCwxLDIyLjUsNkgxOS4zNVYzLjhhLjguOCwwLDEsMC0xLjYsMFY2aC01LjRWMy44YS44LjgsMCwxLDAtMS42LDBWNkg4LjFBMi4xLDIuMSwwLDAsMCw2LDguMVY5LjU1SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44'@; put 'LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZWMjcuOUEyLjEsMi4xLDAsMCwwLDguMSwzMGgyLjY1djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMGg1LjR2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBIMjcuOUEyLjEsMi4x'@; put 'LDAsMCwwLDMwLDI3LjlWMjUuMTVoMi4yYS44LjgsMCwxLDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJh'@; put 'ZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjIsMTguMTVhLjguOCwwLDEsMCwwLTEuNkgzMHYtNS40aDIuMmEuOC44LDAsMSwwLDAtMS42SDMwVjguMUEyLjEsMi4xLDAsMCwwLDI3LjksNkgyNi4zNVYzLjhh'@; put 'LjguOCwwLDEsMC0xLjYsMFY2aC01LjRWMy44YS44LjgsMCwxLDAtMS42LDBWNmgtNS40VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZIOC4xQTIuMSwyLjEsMCwwLDAsNiw4LjFWOS41NUgzLjhhLjguOCwwLDEsMCwwLDEuNkg2djUuNEgzLjhhLjguOCwwLDEsMCwwLDEuNkg2djUuNEgzLjhhLjgu'@; put 'OCwwLDEsMCwwLDEuNkg2VjI3LjlBMi4xLDIuMSwwLDAsMCw4LjEsMzBoMi42NXYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMGg1LjR2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwSDI3LjlBMi4xLDIuMSwwLDAsMCwzMCwyNy45VjI1LjE1aDIuMmEu'@; put 'OC44LDAsMSwwLDAtMS42SDMwdi01LjRaTTI1LDIzLjgxQTEuMTgsMS4xOCwwLDAsMSwyNCwyNUgxM1YyM0gyM1YxMWgyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAnKSxiLkNsclNoYXBlTWVtb3J5PSgwLHAuY2xySWNvblNWRykoJzxyZWN0'@; put 'IHg9IjgiIHk9IjEyIiB3aWR0aD0iNCIgaGVpZ2h0PSI4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9IjEyIiB3aWR0aD0iNCIgaGVpZ2h0PSI4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjQiIHk9IjEyIiB3aWR0aD0iNCIgaGVpZ2h0PSI4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE1LDI3SDRWMTdIMlYyN2EyLDIsMCwwLDAsMiwy'@; put 'SDE2LjYxVjI1LjU1aDIuMjZWMjRIMTVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDdINEEyLDIsMCwwLDAsMiw5djRINFY5SDMydjRoMlY5QTIsMiwwLDAsMCwzMiw3WiIgY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiwyN0gxOXYySDMyYTIsMiwwLDAsMCwyLTJWMTdIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iMTIiIHdp'@; put 'ZHRoPSI0IiBoZWlnaHQ9IjgiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUsMjdINFYxN0gyVjI3YTIsMiwwLDAsMCwyLDJIMTYuNjFWMjUuNTVoMi4yNlYyNEgxNVoiIGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTdWMjdIMTl2MkgzMmEyLDIsMCwwLDAsMi0yVjE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSwxMy41NkEzLjY2LDMuNjYsMCwwLDEsMTguNTcsMTJIMTZ2OGg0VjE0LjY0QTMuNjcsMy42NywwLDAsMSwxOSwxMy41NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1h'@; put 'bGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNCIgeT0iMTUuNCIgd2lkdGg9IjQiIGhlaWdodD0iNC42IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsOUgxOS41Nmwx'@; put 'LjE1LTJINEEyLDIsMCwwLDAsMiw5djRINFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhB'@; put 'MS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIg'@; put 'eT0iMTIiIHdpZHRoPSI0IiBoZWlnaHQ9IjgiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9IjEyIiB3aWR0aD0iNCIgaGVpZ2h0PSI4IiBjbGFzcz0iY2xyLWktb3V0bGluZS0t'@; put 'YmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNSwyN0g0VjE3SDJWMjdhMiwyLDAsMCwwLDIsMkgxNi42MVYyNS41NWgyLjI2VjI0SDE1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'My0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTdWMjdIMTl2MkgzMmEyLDIsMCwwLDAsMi0yVjE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMTMuMjJB'@; put 'Ny40Niw3LjQ2LDAsMCwxLDI1LjUxLDEySDI0djhoNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsOUgyMy4xM2E3LjQ1LDcuNDUsMCwwLDEtLjU1LTJINEEyLDIsMCwwLDAsMiw5'@; put 'djRINFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRn'@; put 'ZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zNCwxM1Y5YTIsMiwwLDAsMC0yLTJINEEyLDIsMCwwLDAsMiw5djRINHY0SDJWMjdhMiwyLDAsMCwwLDIsMkgxNi42MVYyNS41NUgxOVYyOUgzMmEyLDIsMCwwLDAsMi0yVjE3SDMyVjEzWk0xMiwyMEg4VjEyaDRabTgs'@; put 'MEgxNlYxMmg0Wm04LDBIMjRWMTJoNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiwxN1YxNS4wN0gyOFYyMEgyNFYxNS4wN0gyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMjAsMTQuMzFWMjBIMTZWMTJoMi42MUEzLjY4'@; put 'LDMuNjgsMCwwLDEsMTksOS41NUwyMC41Miw3SDRBMiwyLDAsMCwwLDIsOXY0SDR2NEgyVjI3YTIsMiwwLDAsMCwyLDJIMTYuNjFWMjUuNTVIMTlWMjlIMzJhMiwyLDAsMCwwLDItMlYxN1pNMTIsMjBIOFYxMmg0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBh'@; put 'dGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LjhsLTUuNzIsOS45MWExLjI4LDEuMjgsMCwwLDAsMS4xLDEuOTFIMzMuNjhhMS4yOCwxLjI4LDAsMCwwLDEuMS0xLjkxTDI5LjA2LjhBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LjhaIiBjbGFzcz0iY2xyLWktc29s'@; put 'aWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTdWMTMuMjJhNy4zMyw3LjMzLDAsMCwxLTQsMFYyMEgyNFYxMmgxLjUxYTcuNDgsNy40OCwwLDAsMS0yLjk0LTVINEEyLDIsMCwwLDAsMiw5djRI'@; put 'NHY0SDJWMjdhMiwyLDAsMCwwLDIsMkgxNi42MVYyNS41NUgxOVYyOUgzMmEyLDIsMCwwLDAsMi0yVjE3Wk0xMiwyMEg4VjEyaDRabTgsMEgxNlYxMmg0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJj'@; put 'bGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksYi5DbHJTaGFwZURhdGFDbHVzdGVyPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNi41LDQuMDhD'@; put 'MjIuNzcsNC4wOCwxOSw1LjQsMTksNy45MVY5LjVhMTguNzUsMTguNzUsMCwwLDEsMiwuMlY3LjkxYzAtLjY1LDIuMDktMS44NCw1LjUtMS44NFMzMiw3LjI3LDMyLDcuOTFWMTguMjRjMCwuNTQtMS40NiwxLjQ0LTMuOSwxLjczdjJjMy4xMy0uMzIsNS45LTEuNiw1LjktMy43NVY3LjkxQzM0'@; put 'LDUuNCwzMC4yMyw0LjA4LDI2LjUsNC4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNCwxOC4yNFY3LjkxYzAtLjY1LDIuMDktMS44NCw1LjUtMS44NFMxNSw3LjI3LDE1LDcuOTFWOS43YTE4Ljc1LDE4Ljc1'@; put 'LDAsMCwxLDItLjJWNy45MWMwLTIuNTItMy43Ny0zLjg0LTcuNS0zLjg0UzIsNS40LDIsNy45MVYxOC4yNEMyLDIwLjQsNC43NywyMS42Nyw3LjksMjJWMjBDNS40NiwxOS42OCw0LDE4Ljc4LDQsMTguMjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxu'@; put 'ICAgICAgICAgICAgPHBhdGggZD0iTTE4LDEwLjg1Yy00LjkzLDAtOC42NSwxLjg4LTguNjUsNC4zOFYyNy41NGMwLDIuNSwzLjcyLDQuMzgsOC42NSw0LjM4czguNjUtMS44OCw4LjY1LTQuMzhWMTUuMjNDMjYuNjUsMTIuNzMsMjIuOTMsMTAuODUsMTgsMTAuODVabTYuNjUsNy42N2MtLjg1'@; put 'LDEtMy40MiwyLTYuNjUsMkExNC40OSwxNC40OSwwLDAsMSwxNCwyMHYxLjQ2YTE2LjMzLDE2LjMzLDAsMCwwLDQsLjQ3LDEyLjc2LDEyLjc2LDAsMCwwLDYuNjUtMS41NnYzLjEyYy0uODUsMS0zLjQyLDItNi42NSwyYTE0LjQ5LDE0LjQ5LDAsMCwxLTQtLjUzdjEuNDZhMTYuMzMsMTYuMzMs'@; put 'MCwwLDAsNCwuNDcsMTIuNzYsMTIuNzYsMCwwLDAsNi42NS0xLjU2djIuMjljMCwuOTUtMi42NSwyLjM4LTYuNjUsMi4zOHMtNi42NS0xLjQzLTYuNjUtMi4zOFYxNS4yM2MwLS45NSwyLjY1LTIuMzgsNi42NS0yLjM4czYuNjUsMS40Myw2LjY1LDIuMzhaIiBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMTguMjRWNy45MWMwLS42NSwyLjA5LTEuODQsNS41LTEuODRTMTUsNy4yNywxNSw3LjkxVjkuN2ExOC43NSwxOC43NSwwLDAsMSwyLS4yVjcuOTFjMC0yLjUyLTMuNzctMy44NC03LjUtMy44NFMyLDUu'@; put 'NCwyLDcuOTFWMTguMjRDMiwyMC40LDQuNzcsMjEuNjcsNy45LDIyVjIwQzUuNDYsMTkuNjgsNCwxOC43OCw0LDE4LjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNC42NSwx'@; put 'OC41MmMtLjg1LDEtMy40MiwyLTYuNjUsMkExNC40OSwxNC40OSwwLDAsMSwxNCwyMHYxLjQ2YTE2LjMzLDE2LjMzLDAsMCwwLDQsLjQ3LDEyLjc2LDEyLjc2LDAsMCwwLDYuNjUtMS41NnYzLjEyYy0uODUsMS0zLjQyLDItNi42NSwyYTE0LjQ5LDE0LjQ5LDAsMCwxLTQtLjUzdjEuNDZhMTYu'@; put 'MzMsMTYuMzMsMCwwLDAsNCwuNDcsMTIuNzYsMTIuNzYsMCwwLDAsNi42NS0xLjU2djIuMjljMCwuOTUtMi42NSwyLjM4LTYuNjUsMi4zOHMtNi42NS0xLjQzLTYuNjUtMi4zOFYxNS4yM2MwLS45NSwyLjY1LTIuMzgsNi42NS0yLjM4bC43NSwwYTMuNjksMy42OSwwLDAsMS0uMDgtMmwtLjY2'@; put 'LDBjLTQuOTMsMC04LjY1LDEuODgtOC42NSw0LjM4VjI3LjU0YzAsMi41LDMuNzIsNC4zOCw4LjY1LDQuMzhzOC42NS0xLjg4LDguNjUtNC4zOFYxNS40aC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAg'@; put 'ICAgIDxwYXRoIGQ9Ik0yMiw0LjhjLTEuNzUuNjMtMywxLjY4LTMsMy4xMlY5LjVsLjI1LDBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjY4LDE1LjRIMzJ2Mi44NGMwLC41'@; put 'NC0xLjQ2LDEuNDQtMy45LDEuNzN2MmMzLjEzLS4zMiw1LjktMS42LDUuOS0zLjc1VjE1LjM4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEu'@; put 'MjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0'@; put 'Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNCwxOC4yNFY3LjkxYzAtLjY1LDIuMDktMS44NCw1LjUtMS44NFMxNSw3LjI3LDE1LDcuOTFWOS43YTE4Ljc1LDE4Ljc1LDAsMCwxLDItLjJWNy45MWMwLTIuNTItMy43Ny0zLjg0LTcuNS0zLjg0UzIsNS40LDIsNy45MVYxOC4yNEMyLDIwLjQs'@; put 'NC43NywyMS42Nyw3LjksMjJWMjBDNS40NiwxOS42OCw0LDE4Ljc4LDQsMTguMjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxMC44NWMtNC45MywwLTguNjUsMS44OC04LjY1'@; put 'LDQuMzhWMjcuNTRjMCwyLjUsMy43Miw0LjM4LDguNjUsNC4zOHM4LjY1LTEuODgsOC42NS00LjM4VjE1LjIzQzI2LjY1LDEyLjczLDIyLjkzLDEwLjg1LDE4LDEwLjg1Wm02LjY1LDcuNjdjLS44NSwxLTMuNDIsMi02LjY1LDJBMTQuNDksMTQuNDksMCwwLDEsMTQsMjB2MS40NmExNi4zMywx'@; put 'Ni4zMywwLDAsMCw0LC40NywxMi43NiwxMi43NiwwLDAsMCw2LjY1LTEuNTZ2My4xMmMtLjg1LDEtMy40MiwyLTYuNjUsMmExNC40OSwxNC40OSwwLDAsMS00LS41M3YxLjQ2YTE2LjMzLDE2LjMzLDAsMCwwLDQsLjQ3LDEyLjc2LDEyLjc2LDAsMCwwLDYuNjUtMS41NnYyLjI5YzAsLjk1LTIu'@; put 'NjUsMi4zOC02LjY1LDIuMzhzLTYuNjUtMS40My02LjY1LTIuMzhWMTUuMjNjMC0uOTUsMi42NS0yLjM4LDYuNjUtMi4zOHM2LjY1LDEuNDMsNi42NSwyLjM4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAg'@; put 'ICA8cGF0aCBkPSJNMjEsNy45MWMwLS4zMy41NS0uOCwxLjU0LTEuMTgsMC0uMjQsMC0uNDgsMC0uNzNhNy41Miw3LjUyLDAsMCwxLC4xNC0xLjQxQzIwLjU1LDUuMTksMTksNi4zLDE5LDcuOTFWOS41YTE4Ljc1LDE4Ljc1LDAsMCwxLDIsLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk'@; put 'Z2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiwxMy4yMnY1YzAsLjU0LTEuNDYsMS40NC0zLjksMS43M3YyYzMuMTMtLjMyLDUuOS0xLjYsNS45LTMuNzV2LTUuOUE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMjJaIiBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+'@; put 'XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuNSw0LjA4QzIyLjc3LDQuMDgsMTksNS40LDE5LDcuOTFWOS40OGM1LjMuMjYsOSwyLjYsOSw1Ljc2djYuN2wuMDUuMDZjMy4xMy0uMzIsNS45LTEuNiw1LjktMy43NVY3LjkxQzM0LDUuNCwzMC4yMyw0LjA4LDI2LjUsNC4wOFoiIGNsYXNzPSJj'@; put 'bHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNyw5LjQ4VjcuOTFjMC0yLjUyLTMuNzctMy44NC03LjUtMy44NFMyLDUuNCwyLDcuOTFWMTguMjRDMiwyMC40LDQuNzcsMjEuNjcsNy45LDIyTDgsMjEuOTN2LTYuN0M4LDEyLjA4LDExLjcs'@; put 'OS43NCwxNyw5LjQ4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDEwLjg1Yy00LjkzLDAtOC42NSwxLjg4LTguNjUsNC4zOFYyNy41NGMwLDIuNSwzLjcyLDQuMzgsOC42NSw0LjM4czguNjUtMS44OCw4LjY1LTQu'@; put 'MzhWMjUuMzhBMTMuNTgsMTMuNTgsMCwwLDEsMTgsMjhhMTYuNzcsMTYuNzcsMCwwLDEtNi0xVjI1LjI3YTE0LjUsMTQuNSwwLDAsMCw2LDEuMTdjNC4yMSwwLDcuNjUtMS4yMyw4LjYzLTMuMjNWMjAuNDdDMjQuOCwyMiwyMS43MiwyMywxOCwyM2ExNi43NywxNi43NywwLDAsMS02LTFWMjAu'@; put 'MjNhMTQuNSwxNC41LDAsMCwwLDYsMS4xN2M0LjIxLDAsNy42NS0xLjExLDguNjMtMy4xMVYxNS4yM0MyNi42NSwxMi43MywyMi45MywxMC44NSwxOCwxMC44NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNyw5LjQ4'@; put 'VjcuOTFjMC0yLjUyLTMuNzctMy44NC03LjUtMy44NFMyLDUuNCwyLDcuOTFWMTguMjRDMiwyMC40LDQuNzcsMjEuNjcsNy45LDIyTDgsMjEuOTN2LTYuN0M4LDEyLjA4LDExLjcsOS43NCwxNyw5LjQ4WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0t'@; put 'YWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDEzLjU2YTMuNjgsMy42OCwwLDAsMS0uMzktMi43bC0uNjYsMGMtNC45MywwLTguNjUsMS44OC04LjY1LDQuMzhWMjcuNTRjMCwyLjUsMy43Miw0LjM4LDguNjUsNC4zOHM4LjY1LTEuODgsOC42NS00LjM4VjI1LjM4QTEzLjU4'@; put 'LDEzLjU4LDAsMCwxLDE4LDI4YTE2Ljc3LDE2Ljc3LDAsMCwxLTYtMVYyNS4yN2ExNC41LDE0LjUsMCwwLDAsNiwxLjE3YzQuMjEsMCw3LjY1LTEuMjMsOC42My0zLjIzVjIwLjQ3QzI0LjgsMjIsMjEuNzIsMjMsMTgsMjNhMTYuNzcsMTYuNzcsMCwwLDEtNi0xVjIwLjIzYTE0LjUsMTQuNSww'@; put 'LDAsMCw2LDEuMTdjNC4yMSwwLDcuNjUtMS4xMSw4LjYzLTMuMTFWMTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTksMTMuNTZaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsNC44'@; put 'Yy0xLjc1LjYzLTMsMS42OC0zLDMuMTJWOS40OGwuMjcsMFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDI4djYuNTNsLjA1LjA2YzMuMTMtLjMyLDUuOS0xLjYsNS45'@; put 'LTMuNzVWMTUuMzhaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0'@; put 'Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsOS40OFY3LjkxYzAtMi41Mi0zLjc3'@; put 'LTMuODQtNy41LTMuODRTMiw1LjQsMiw3LjkxVjE4LjI0QzIsMjAuNCw0Ljc3LDIxLjY3LDcuOSwyMkw4LDIxLjkzdi02LjdDOCwxMi4wOCwxMS43LDkuNzQsMTcsOS40OFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAg'@; put 'ICAgICA8cGF0aCBkPSJNMTgsMTAuODVjLTQuOTMsMC04LjY1LDEuODgtOC42NSw0LjM4VjI3LjU0YzAsMi41LDMuNzIsNC4zOCw4LjY1LDQuMzhzOC42NS0xLjg4LDguNjUtNC4zOFYyNS4zOEExMy41OCwxMy41OCwwLDAsMSwxOCwyOGExNi43NywxNi43NywwLDAsMS02LTFWMjUuMjdhMTQu'@; put 'NSwxNC41LDAsMCwwLDYsMS4xN2M0LjIxLDAsNy42NS0xLjIzLDguNjMtMy4yM1YyMC40N0MyNC44LDIyLDIxLjcyLDIzLDE4LDIzYTE2Ljc3LDE2Ljc3LDAsMCwxLTYtMVYyMC4yM2ExNC41LDE0LjUsMCwwLDAsNiwxLjE3YzQuMjEsMCw3LjY1LTEuMTEsOC42My0zLjExVjE1LjIzQzI2LjY1'@; put 'LDEyLjczLDIyLjkzLDEwLjg1LDE4LDEwLjg1WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi41LDZhNy41Miw3LjUyLDAsMCwxLC4xNC0xLjRDMjAuNTUsNS4xOSwxOSw2LjMsMTksNy45'@; put 'MVY5LjQ4YTE1LjMzLDE1LjMzLDAsMCwxLDUsMUE3LjQ2LDcuNDYsMCwwLDEsMjIuNSw2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy40OUE3LjQ3LDcuNDcsMCwwLDEsMjcuMzUs'@; put 'MTNhNCw0LDAsMCwxLC43LDIuMjN2Ni43bC4wNS4wNmMzLjEzLS4zMiw1LjktMS42LDUuOS0zLjc1VjEyLjMzQTcuNDYsNy40NiwwLDAsMSwzMCwxMy40OVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2ly'@; put 'Y2xlIGN4PSIzMCIgY3k9IjUuOTkiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLGIuQ2xyU2hhcGVSZXNvdXJjZVBvb2w9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjY4'@; put 'LDE1LjRIMzEuNzNhMTQsMTQsMCwwLDEsLjIyLDEuNkgxNy40OUw4LjMsMjguMDdBMTQsMTQsMCwwLDEsMjIuMDksNC42MmwxLTEuNzZBMTYsMTYsMCwxLDAsMzQsMThhMTYsMTYsMCwwLDAtLjIzLTIuNjFaTTE4LDMyYTEzLjkxLDEzLjkxLDAsMCwxLTguMTYtMi42NUwxOC40MywxOUgzMS45'@; put 'NUExNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwx'@; put 'LjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYs'@; put 'MTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlpNNCwxOGExNCwxNCwwLDAsMSwyNy45NS0xSDE3LjQ5TDguMywyOC4wN0ExNCwxNCwwLDAsMSw0LDE4Wk0xOCwzMmExMy45MSwxMy45MSwwLDAsMS04LjE2LTIuNjVMMTguNDMsMTlIMzEuOTVBMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjIsMTMuNGExMy45MSwxMy45MSwwLDAsMSwuNzUsMy42SDE3LjQ5TDguMywyOC4wN0ExNCwxNCwwLDAsMSwyMi42MSw0LjhhNy40Myw3LjQzLDAsMCwxLC41OC0xLjkyLDE2'@; put 'LjA2LDE2LjA2LDAsMSwwLDkuOTMsOS45M0E3LjQzLDcuNDMsMCwwLDEsMzEuMiwxMy40Wk0xOCwzMmExMy45MSwxMy45MSwwLDAsMS04LjE2LTIuNjVMMTguNDMsMTlIMzEuOTVBMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOC41NywzMC45'@; put 'QTE2LDE2LDAsMCwwLDMzLjk1LDE5SDE4LjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjk1LDE3QTE2LDE2LDAsMSwwLDcsMjkuNkwxNy40OSwxN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1w'@; put 'YXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik04LjU3LDMwLjlBMTYsMTYsMCwwLDAsMzMuOTUsMTlIMTguNDNaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjk1LDE3YTE1Ljkx'@; put 'LDE1LjkxLDAsMCwwLS44NC00LjE4LDcuNDksNy40OSwwLDAsMS05LjkyLTkuOTRBMTYsMTYsMCwwLDAsNywyOS42TDE3LjQ5LDE3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBj'@; put 'eT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik04LjU3LDMwLjlBMTYsMTYsMCwwLDAsMzMuOTUsMTlIMTguNDNaIiBjbGFzcz0iY2xyLWktc29saWQtLWFs'@; put 'ZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuOTUsMTdhMTYsMTYsMCwwLDAtLjE4LTEuNjFIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlsNC4wNi03QTE2LDE2LDAsMCwwLDcsMjkuNkwxNy40OSwxN1oiIGNsYXNzPSJj'@; put 'bHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4'@; put 'LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgJyksYi5DbHJTaGFwZVNoaWVsZENoZWNrPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMS4yNSw3'@; put 'LjRhNDMuNzksNDMuNzksMCwwLDEtNi42Mi0yLjM1LDQ1LDQ1LDAsMCwxLTYuMDgtMy4yMUwxOCwxLjVsLS41NC4zNWE0NSw0NSwwLDAsMS02LjA4LDMuMjFBNDMuNzksNDMuNzksMCwwLDEsNC43NSw3LjRMNCw3LjU5djguMzRjMCwxMy4zOSwxMy41MywxOC40LDEzLjY2LDE4LjQ1bC4zNC4x'@; put 'Mi4zNC0uMTJjLjE0LDAsMTMuNjYtNS4wNSwxMy42Ni0xOC40NVY3LjU5Wk0zMCwxNS45M2MwLDExLTEwLDE1LjYxLTEyLDE2LjQzLTItLjgyLTEyLTUuNDQtMTItMTYuNDNWOS4xNGE0Ny41NCw0Ny41NCwwLDAsMCw2LjE4LTIuMjUsNDguMjMsNDguMjMsMCwwLDAsNS44Mi0zLDQ4LjIzLDQ4'@; put 'LjIzLDAsMCwwLDUuODIsM0E0Ny41NCw0Ny41NCwwLDAsMCwzMCw5LjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC44OCwxNi44N2ExLDEsMCwwLDAtMS40MSwxLjQxbDYsNkwyNi40LDEzLjc3QTEsMSww'@; put 'LDAsMCwyNSwxMi4zM2wtOS40Nyw5LjE5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS4yNSw3LjRhNDMuNzksNDMuNzksMCwwLDEtNi42Mi0yLjM1LDQ1LDQ1LDAsMCwxLTYuMDgtMy4yMUwxOCwxLjVsLS41'@; put 'NC4zNWE0NSw0NSwwLDAsMS02LjA4LDMuMjFBNDMuNzksNDMuNzksMCwwLDEsNC43NSw3LjRMNCw3LjU5djguMzRjMCwxMy4zOSwxMy41MywxOC40LDEzLjY2LDE4LjQ1bC4zNC4xMi4zNC0uMTJjLjE0LDAsMTMuNjYtNS4wNSwxMy42Ni0xOC40NVY3LjU5Wm0tNC41Nyw2LjY1TDE1LjUxLDI0'@; put 'LjksOS4xOSwxOC41N2ExLjQsMS40LDAsMCwxLDItMkwxNS41NCwyMSwyNC43MywxMmExLjQsMS40LDAsMSwxLDIsMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgJyksYi5DbHJTaGFwZVNoaWVsZD0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBk'@; put 'PSJNMzEuMjUsNy40YTQzLjc5LDQzLjc5LDAsMCwxLTYuNjItMi4zNSw0NSw0NSwwLDAsMS02LjA4LTMuMjFMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCwwLDEtNi4wOCwzLjIxQTQzLjc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42Niwx'@; put 'OC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWNy41OVpNMzAsMTUuOTNjMCwxMS0xMCwxNS42MS0xMiwxNi40My0yLS44Mi0xMi01LjQ0LTEyLTE2LjQzVjkuMTRhNDcuNTQsNDcuNTQsMCwwLDAsNi4xOC0yLjI1LDQ4LjIzLDQ4LjIzLDAsMCwwLDUuODIt'@; put 'Myw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLDNBNDcuNTQsNDcuNTQsMCwwLDAsMzAsOS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTUuNHYuNTNjMCwxMS0xMCwxNS42MS0xMiwxNi40My0yLS44Mi0x'@; put 'Mi01LjQ0LTEyLTE2LjQzVjkuMTRhNDcuNTQsNDcuNTQsMCwwLDAsNi4xOC0yLjI1LDQ4LjIzLDQ4LjIzLDAsMCwwLDUuODItM2MxLC42NCwyLjIsMS4yNywzLjQzLDEuODlsMS0xLjc0YTQxLjEsNDEuMSwwLDAsMS0zLjg5LTIuMThMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCwwLDEtNi4wOCwz'@; put 'LjIxQTQzLjc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWMTUuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjV2Mi40M2MwLDExLTEwLDE1LjYxLTEyLDE2LjQzLTItLjgyLTEyLTUuNDQtMTItMTYuNDNWOS4xNGE0Ny41NCw0'@; put 'Ny41NCwwLDAsMCw2LjE4LTIuMjUsNDguMjMsNDguMjMsMCwwLDAsNS44Mi0zLDQ2LjE5LDQ2LjE5LDAsMCwwLDQuNTEsMi40MmMwLS4xLDAtLjE5LDAtLjI5YTcuNDksNy40OSwwLDAsMSwuMjMtMS44Myw0MS42MSw0MS42MSwwLDAsMS00LjE5LTIuMzNMMTgsMS41bC0uNTQuMzVhNDUsNDUs'@; put 'MCwwLDEtNi4wOCwzLjIxQTQzLjc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWMTMuMjJBNy40OSw3LjQ5LDAsMCwxLDMwLDEzLjVaIiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJh'@; put 'ZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuMjUsNy40YTQzLjc5LDQzLjc5LDAsMCwxLTYuNjItMi4zNSw0NSw0NSwwLDAsMS02LjA4LTMuMjFMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCwwLDEtNi4wOCwzLjIxQTQzLjc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0'@; put 'YzAsMTMuMzksMTMuNTMsMTguNCwxMy42NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWNy41OVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4yMywxNS40QTMuNjgsMy42'@; put 'OCwwLDAsMSwxOSw5Ljg5TDIyLjQzLDRhNDEuMSw0MS4xLDAsMCwxLTMuODktMi4xOEwxOCwxLjVsLS41NC4zNWE0NSw0NSwwLDAsMS02LjA4LDMuMjFBNDMuNzksNDMuNzksMCwwLDEsNC43NSw3LjRMNCw3LjU5djguMzRjMCwxMy4zOSwxMy41MywxOC40LDEzLjY2LDE4LjQ1bC4zNC4xMi4z'@; put 'NC0uMTJjLjE0LDAsMTMuNjYtNS4wNSwxMy42Ni0xOC40NVYxNS40WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIz'@; put 'LDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGgg'@; put 'ZD0iTTMwLDEzLjVhNy40Nyw3LjQ3LDAsMCwxLTcuMjctOS4zMyw0MS42MSw0MS42MSwwLDAsMS00LjE5LTIuMzNMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCwwLDEtNi4wOCwzLjIxQTQzLjc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42'@; put 'NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWMTMuMjJBNy40OSw3LjQ5LDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0i'@; put 'MzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAnKSxiLkNsclNoYXBlU2hpZWxkWD0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuMjUsNy40YTQzLjc5LDQzLjc5'@; put 'LDAsMCwxLTYuNjItMi4zNSw0NSw0NSwwLDAsMS02LjA4LTMuMjFMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCwwLDEtNi4wOCwzLjIxQTQzLjc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCww'@; put 'LDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWNy41OVpNMzAsMTUuOTNjMCwxMS0xMCwxNS42MS0xMiwxNi40My0yLS44Mi0xMi01LjQ0LTEyLTE2LjQzVjkuMTRhNDcuNTQsNDcuNTQsMCwwLDAsNi4xOC0yLjI1LDQ4LjIzLDQ4LjIzLDAsMCwwLDUuODItMyw0OC4yMyw0OC4yMywwLDAsMCw1Ljgy'@; put 'LDNBNDcuNTQsNDcuNTQsMCwwLDAsMzAsOS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuODEsMTAuNzksMTgsMTUuNjFsLTQuODEtNC44MWExLDEsMCwwLDAtMS40MSwxLjQxTDE2LjU5LDE3bC00Ljgx'@; put 'LDQuODFhMSwxLDAsMSwwLDEuNDEsMS40MUwxOCwxOC40M2w0LjgxLDQuODFhMSwxLDAsMCwwLDEuNDEtMS40MUwxOS40MSwxN2w0LjgxLTQuODFhMSwxLDAsMCwwLTEuNDEtMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8'@; put 'cGF0aCBkPSJNMzEuMjUsNy40YTQzLjc5LDQzLjc5LDAsMCwxLTYuNjItMi4zNSw0NSw0NSwwLDAsMS02LjA4LTMuMjFMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCwwLDEtNi4wOCwzLjIxQTQzLjc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwx'@; put 'My42NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWNy41OVpNMjQuNTEsMjEuNTVhMS40LDEuNCwwLDAsMS0yLDJMMTgsMTlsLTQuNTMsNC41M2ExLjQzLDEuNDMsMCwwLDEtMiwwLDEuNCwxLjQsMCwwLDEsMC0yTDE2LDE3bC00LjUzLTQuNTNhMS40'@; put 'LDEuNCwwLDEsMSwyLTJMMTgsMTVsNC41My00LjUzYTEuNCwxLjQsMCwwLDEsMiwyTDIwLDE3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAnKSxiLkNsclNoYXBlSW1wb3J0PSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOCw0SDE0Ljg3'@; put 'TDgsMTAuODZWMTVoMlYxMy42MWg3LjYxVjZIMjhWMzBIOGEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMjgsNFpNMTYsMTJIMTB2LS4zMkwxNS43LDZIMTZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAg'@; put 'ICAgPHBhdGggZD0iTTExLjk0LDI2LjI4YTEsMSwwLDEsMCwxLjQxLDEuNDFMMTksMjJsLTUuNjgtNS42OGExLDEsMCwwLDAtMS40MSwxLjQxTDE1LjIsMjFIM2ExLDEsMCwxLDAsMCwySDE1LjIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAg'@; put 'ICAgICAgIDxwYXRoIGQ9Ik0xMS45NCwyNi4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDE5LDIybC01LjY4LTUuNjhhMSwxLDAsMCwwLTEuNDEsMS40MUwxNS4yLDIxSDNhMSwxLDAsMSwwLDAsMkgxNS4yM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMTUuNFYzMEg4YTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlYxNS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAg'@; put 'IDxwYXRoIGQ9Ik0xMCwxMy42MWg3LjYxVjZoMy42OGwxLjE1LTJIMTQuODdMOCwxMC44NlYxNWgyWm0wLTEuOTJMMTUuNyw2SDE2djZIMTBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGgg'@; put 'ZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS45NCwyNi4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDE5LDIybC01LjY4LTUuNjhhMSwxLDAsMCwwLTEuNDEsMS40MUwxNS4yLDIxSDNhMSwxLDAsMSwwLDAsMkgxNS4yM1oiIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDEzLjIyVjMwSDhhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjEzLjVBNy40OSw3LjQ5LDAsMCwxLDI4LDEzLjIyWiIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAsMTMuNjFoNy42MVY2SDIyLjVhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDE0Ljg3TDgsMTAuODZWMTVoMlptMC0xLjkyTDE1LjcsNkgxNnY2SDEwWiIgY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIv'@; put 'PlxuICAgICAgICAgICAgPHBhdGggZD0iTTMsMjFhMSwxLDAsMSwwLDAsMkg4VjIxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDRIMTQuODdMOCwxMC44NlYyMUgxNS4ybC0zLjI1LTMuMjVhMSwxLDAsMCwxLDEu'@; put 'NDEtMS40MUwxOSwyMmwtNS42OCw1LjY4YTEsMSwwLDAsMS0xLjQxLTEuNDFMMTUuMjMsMjNIOHY3YTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwyOCw0Wk0xNiwxMkgxMHYtLjMyTDE1LjY5LDZIMTZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQt'@; put 'cGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMywyMWExLDEsMCwxLDAsMCwySDhWMjFaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjMsMTUuNEEzLjY4LDMuNjgsMCww'@; put 'LDEsMTksOS44OUwyMi40NSw0SDE0Ljg3TDgsMTAuODZWMjFIMTUuMmwtMy4yNS0zLjI1YTEsMSwwLDAsMSwxLjQxLTEuNDFMMTksMjJsLTUuNjgsNS42OGExLDEsMCwwLDEtMS40MS0xLjQxTDE1LjIzLDIzSDh2N2EyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTUuNFpNMTYsMTJI'@; put 'MTB2LS4zMkwxNS42OSw2SDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCww'@; put 'LDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMsMjFhMSwxLDAsMSwwLDAs'@; put 'Mkg4VjIxWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi41LDZhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDE0Ljg3TDgsMTAuODZWMjFIMTUuMmwtMy4yNS0zLjI1YTEsMSwwLDAsMSwxLjQx'@; put 'LTEuNDFMMTksMjJsLTUuNjgsNS42OGExLDEsMCwwLDEtMS40MS0xLjQxTDE1LjIzLDIzSDh2N2EyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTMuNUE3LjUsNy41LDAsMCwxLDIyLjUsNlpNMTYsMTJIMTB2LS4zMkwxNS42OSw2SDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRn'@; put 'ZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksYi5DbHJTaGFw'@; put 'ZUV4cG9ydD0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNiwxMy42MWg3LjYxVjZIMjR2OC4zOGgyVjZhMiwyLDAsMCwwLTItMkgxMC44N0w0LDEwLjg3VjMwYTIsMiwwLDAsMCwyLDJIMjRhMiwyLDAsMCwwLDItMkg2Wm0wLTEuOTJMMTEuNjksNkgxMnY2SDZaIiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjMyLDE2LjM1YTEsMSwwLDAsMC0xLjQxLDEuNDFMMzAuMTYsMjFIMThhMSwxLDAsMCwwLDAsMkgzMC4xOWwtMy4yOCwzLjI4YTEsMSwwLDEsMCwxLjQxLDEuNDFMMzQsMjJaIiBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjMyLDE2LjM1YTEsMSwwLDAsMC0xLjQxLDEuNDFMMzAuMTYsMjFIMThhMSwxLDAsMCwwLDAsMkgzMC4xOWwtMy4yOCwzLjI4YTEsMSwwLDEsMCwxLjQxLDEuNDFMMzQsMjJaIiBj'@; put 'bGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTYsMTMuNjFoNy42MVY2aDcuNjhsMS4xNS0ySDEwLjg3TDQsMTAuODdWMzBhMiwyLDAsMCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0ySDZabTAt'@; put 'MS45MkwxMS42OSw2SDEydjZINloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwx'@; put 'LjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjMyLDE2'@; put 'LjM1YTEsMSwwLDAsMC0xLjQxLDEuNDFMMzAuMTYsMjFIMThhMSwxLDAsMCwwLDAsMkgzMC4xOWwtMy4yOCwzLjI4YTEsMSwwLDEsMCwxLjQxLDEuNDFMMzQsMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAg'@; put 'ICAgIDxwYXRoIGQ9Ik0yNiwxMi4zNGE3LjUzLDcuNTMsMCwwLDEtMi0xLjg1djMuODloMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTYsMTMuNjFoNy42MVY2SDIyLjVhNy40OSw3'@; put 'LjQ5LDAsMCwxLC4yOC0ySDEwLjg3TDQsMTAuODdWMzBhMiwyLDAsMCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0ySDZabTAtMS45MkwxMS42OSw2SDEydjZINloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAg'@; put 'PGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNywyMmExLDEsMCwwLDEsMS0xaDhWNmEyLDIsMCwwLDAtMi0ySDEw'@; put 'Ljg3TDQsMTAuODZWMzBhMiwyLDAsMCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0yVjIzSDE4QTEsMSwwLDAsMSwxNywyMlpNMTIsMTJINnYtLjMyTDExLjY5LDZIMTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuMzIs'@; put 'MTYuMzVhMSwxLDAsMCwwLTEuNDEsMS40MUwzMS4xNiwyMUgyNnYyaDUuMTlsLTMuMjgsMy4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDM1LDIyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LjMyLDE2LjM1YTEsMSww'@; put 'LDAsMC0xLjQxLDEuNDFMMzEuMTYsMjFIMjZ2Mmg1LjE5bC0zLjI4LDMuMjhhMSwxLDAsMSwwLDEuNDEsMS40MUwzNSwyMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNywyMmExLDEs'@; put 'MCwwLDEsMS0xaDhWMTUuNEgyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMi40NSw0SDEwLjg3TDQsMTAuODZWMzBhMiwyLDAsMCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0yVjIzSDE4QTEsMSwwLDAsMSwxNywyMlpNMTIsMTJINnYtLjMyTDExLjY5LDZIMTJaIiBjbGFzcz0iY2xyLWkt'@; put 'c29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4'@; put 'LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuMzIsMTYuMzVhMSwxLDAsMCwwLTEuNDEsMS40MUwzMS4xNiwyMUgyNnYyaDUuMTls'@; put 'LTMuMjgsMy4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDM1LDIyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNywyMmExLDEsMCwwLDEsMS0xaDhWMTIuMzRBNy40Niw3LjQ2LDAsMCwxLDIy'@; put 'Ljc4LDRIMTAuODdMNCwxMC44NlYzMGEyLDIsMCwwLDAsMiwySDI0YTIsMiwwLDAsMCwyLTJWMjNIMThBMSwxLDAsMCwxLDE3LDIyWk0xMiwxMkg2di0uMzJMMTEuNjksNkgxMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAg'@; put 'ICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLGIuQ2xyU2hhcGVVcGxvYWRDbG91ZD0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBk'@; put 'PSJNMzAuMzEsMTNjMC0uMSwwLS4yMSwwLS4zMmExMC4yNiwxMC4yNiwwLDAsMC0xMC40NS0xMCwxMC40NywxMC40NywwLDAsMC05LjYsNi4xQTkuNzQsOS43NCwwLDAsMCwxLjYsMTguNCw5LjYyLDkuNjIsMCwwLDAsMTEuMjUsMjhIMTVWMjZIMTEuMjVBNy42NSw3LjY1LDAsMCwxLDExLDEw'@; put 'Ljc0bC42NywwLC4yMy0uNjNhOC40Myw4LjQzLDAsMCwxLDgtNS40LDguMjYsOC4yNiwwLDAsMSw4LjQ1LDgsNy43NSw3Ljc1LDAsMCwxLDAsLjhsLS4wOC43Mi42NS4zQTYsNiwwLDAsMSwyNi4zOCwyNkgyMXYyaDUuMzhhOCw4LDAsMCwwLDMuOTMtMTVaIiBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjI4LDIxLjg1QTEsMSwwLDAsMCwyMywyMC4xNGwtNS01LTUsNWExLDEsMCwwLDAsMS40MSwxLjQxTDE3LDE5VjMxLjI1YTEsMSwwLDEsMCwyLDBWMTlsMi41NywyLjU3QTEsMSwwLDAsMCwyMi4yOCwy'@; put 'MS44NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjgsMjEuODVBMSwxLDAsMCwwLDIzLDIwLjE0bC01LTUtNSw1YTEsMSwwLDAsMCwxLjQxLDEuNDFMMTcsMTlWMzEuMjVhMSwxLDAsMSwwLDIsMFYxOWwy'@; put 'LjU3LDIuNTdBMSwxLDAsMCwwLDIyLjI4LDIxLjg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zLjYsMTguMzhBNy43MSw3LjcxLDAsMCwxLDExLDEwLjc0bC42NywwLC4yMy0u'@; put 'NjNhOC40Myw4LjQzLDAsMCwxLDgtNS40LDguODEsOC44MSwwLDAsMSwyLC4yNWwxLTEuOGExMC44LDEwLjgsMCwwLDAtMy4wNy0uNDUsMTAuNDcsMTAuNDcsMCwwLDAtOS42LDYuMUE5Ljc0LDkuNzQsMCwwLDAsMS42LDE4LjQsOS42Miw5LjYyLDAsMCwwLDExLjI1LDI4SDE1VjI2SDExLjI1'@; put 'QTcuNjYsNy42NiwwLDAsMSwzLjYsMTguMzhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjksMTUuNEgzMC4yMUE2LDYsMCwwLDEsMjYuMzgsMjZIMjF2Mmg1LjM4QTgsOCww'@; put 'LDAsMCwzMi45LDE1LjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCww'@; put 'LDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4yOCwyMS44NUEx'@; put 'LDEsMCwwLDAsMjMsMjAuMTRsLTUtNS01LDVhMSwxLDAsMCwwLDEuNDEsMS40MUwxNywxOVYzMS4yNWExLDEsMCwxLDAsMiwwVjE5bDIuNTcsMi41N0ExLDEsMCwwLDAsMjIuMjgsMjEuODVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRn'@; put 'ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC45MiwxMy40NGE3LjEzLDcuMTMsMCwwLDEtMi42My0uMTRjMCwuMDgsMCwuMTUsMCwuMjNsLS4wOC43Mi42NS4zQTYsNiwwLDAsMSwyNi4zOCwyNkgyMXYyaDUuMzhhOCw4LDAsMCwwLDQuNTQtMTQuNTZaIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zLjYsMTguMzhBNy43MSw3LjcxLDAsMCwxLDExLDEwLjc0bC42NywwLC4yMy0uNjNhOC40Myw4LjQzLDAsMCwxLDgtNS40LDguNzksOC43OSwwLDAsMSwyLjY4LjQyLDcu'@; put 'NDUsNy40NSwwLDAsMSwuNS0xLjk0LDEwLjc5LDEwLjc5LDAsMCwwLTMuMTgtLjQ4LDEwLjQ3LDEwLjQ3LDAsMCwwLTkuNiw2LjFBOS43NCw5Ljc0LDAsMCwwLDEuNiwxOC40LDkuNjIsOS42MiwwLDAsMCwxMS4yNSwyOEgxNVYyNkgxMS4yNUE3LjY2LDcuNjYsMCwwLDEsMy42LDE4LjM4WiIg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHIt'@; put 'aS1iYWRnZSIvPlxuICAgICAgICAnKSxiLkNsclNoYXBlRG93bmxvYWRDbG91ZD0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzAuMzEsMTNjMC0uMSwwLS4yMSwwLS4zMmExMC4yNiwxMC4yNiwwLDAsMC0xMC40NS0xMCwxMC40NywxMC40NywwLDAsMC05LjYsNi4xQTkuNjUsOS42NSww'@; put 'LDAsMCwxMC44OSwyOGEzLDMsMCwwLDEsMC0yQTcuNjUsNy42NSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzYTguNDMsOC40MywwLDAsMSw4LTUuNCw4LjI2LDguMjYsMCwwLDEsOC40NSw4LDcuNzUsNy43NSwwLDAsMSwwLC44bC0uMDguNzIuNjUuM0E2LDYsMCwwLDEsMjYuMzgsMjZI'@; put 'MjUuMDlhMywzLDAsMCwxLDAsMmgxLjI4YTgsOCwwLDAsMCwzLjkzLTE1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4yOCwyNi4wN2ExLDEsMCwwLDAtLjcxLjI5TDE5LDI4Ljk0VjE2LjY4YTEsMSwwLDEs'@; put 'MC0yLDBWMjguOTRsLTIuNTctMi41N0ExLDEsMCwwLDAsMTMsMjcuNzhsNSw1LDUtNWExLDEsMCwwLDAtLjcxLTEuNzFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjI4LDI2LjA3YTEsMSwwLDAsMC0uNzEu'@; put 'MjlMMTksMjguOTRWMTYuNjhhMSwxLDAsMSwwLTIsMFYyOC45NGwtMi41Ny0yLjU3QTEsMSwwLDAsMCwxMywyNy43OGw1LDUsNS01YTEsMSwwLDAsMC0uNzEtMS43MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAg'@; put 'ICAgICAgICA8cGF0aCBkPSJNMTkuODcsNC42OWE4LjgxLDguODEsMCwwLDEsMiwuMjVsMS0xLjhhMTAuOCwxMC44LDAsMCwwLTMuMDctLjQ1LDEwLjQ3LDEwLjQ3LDAsMCwwLTkuNiw2LjFBOS42NSw5LjY1LDAsMCwwLDEwLjg5LDI4YTMsMywwLDAsMSwwLTJBNy42NSw3LjY1LDAsMCwxLDEx'@; put 'LDEwLjc0bC42NywwLC4yMy0uNjNBOC40Myw4LjQzLDAsMCwxLDE5Ljg3LDQuNjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjksMTUuNEgzMC4yMUE2LDYsMCwwLDEsMjYu'@; put 'MzgsMjZIMjUuMDlhMywzLDAsMCwxLDAsMmgxLjI4QTgsOCwwLDAsMCwzMi45LDE1LjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwx'@; put 'LjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5c'@; put 'biAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4yOCwyNi4wN2ExLDEsMCwwLDAtLjcxLjI5TDE5LDI4Ljk0VjE2LjY4YTEsMSwwLDEsMC0yLDBWMjguOTRsLTIuNTctMi41N0ExLDEsMCwwLDAsMTMsMjcuNzhsNSw1LDUtNWExLDEsMCwwLDAtLjcxLTEuNzFaIiBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS44Nyw0LjY5YTguNzksOC43OSwwLDAsMSwyLjY4LjQyLDcuNDUsNy40NSwwLDAsMSwuNS0xLjk0LDEwLjc5LDEwLjc5LDAsMCwwLTMuMTgtLjQ4LDEwLjQ3LDEwLjQ3LDAs'@; put 'MCwwLTkuNiw2LjFBOS42NSw5LjY1LDAsMCwwLDEwLjg5LDI4YTMsMywwLDAsMSwwLTJBNy42NSw3LjY1LDAsMCwxLDExLDEwLjc0bC42NywwLC4yMy0uNjNBOC40Myw4LjQzLDAsMCwxLDE5Ljg3LDQuNjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC45MiwxMy40NGE3LjEzLDcuMTMsMCwwLDEtMi42My0uMTRjMCwuMDgsMCwuMTUsMCwuMjNsLS4wOC43Mi42NS4zQTYsNiwwLDAsMSwyNi4zOCwyNkgyNS4wOWEzLDMsMCwwLDEsMCwyaDEuMjhhOCw4LDAsMCwwLDQuNTQt'@; put 'MTQuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFk'@; put 'Z2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLGIuQ2xyU2hhcGVQbHVnaW49KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LjgxLDE2SDI5VjguODNhMiwyLDAsMCwwLTItMkgyMUE1LjE0LDUuMTQsMCwwLDAsMTYuNTEsMiw1LDUsMCwwLDAsMTEsNi44M0g0YTIsMiwwLDAsMC0y'@; put 'LDJWMTdINC44MUEzLjEzLDMuMTMsMCwwLDEsOCwxOS42OSwzLDMsMCwwLDEsNy4yMiwyMiwzLDMsMCwwLDEsNSwyM0gydjguODNhMiwyLDAsMCwwLDIsMkgyN2EyLDIsMCwwLDAsMi0yVjI2aDFhNSw1LDAsMCwwLDUtNS41MUE1LjE1LDUuMTUsMCwwLDAsMjkuODEsMTZabTIuNDEsN0EzLDMs'@; put 'MCwwLDEsMzAsMjRIMjd2Ny44M0g0VjI1SDVhNSw1LDAsMCwwLDUtNS41MUE1LjE1LDUuMTUsMCwwLDAsNC44MSwxNUg0VjguODNoOVY3YTMsMywwLDAsMSwxLTIuMjJBMywzLDAsMCwxLDE2LjMxLDQsMy4xMywzLjEzLDAsMCwxLDE5LDcuMTlWOC44M2g4VjE4aDIuODFBMy4xMywzLjEzLDAs'@; put 'MCwxLDMzLDIwLjY5LDMsMywwLDAsMSwzMi4yMiwyM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuODEsMTZIMjl2LS42SDI3VjE4aDIuODFBMy4xMywzLjEzLDAsMCwxLDMzLDIwLjY5LDMsMywwLDAsMSwz'@; put 'Mi4yMiwyMywzLDMsMCwwLDEsMzAsMjRIMjd2Ny44M0g0VjI1SDVhNSw1LDAsMCwwLDUtNS41MUE1LjE1LDUuMTUsMCwwLDAsNC44MSwxNUg0VjguODNoOVY3YTMsMywwLDAsMSwxLTIuMjJBMywzLDAsMCwxLDE2LjMxLDQsMy4xMywzLjEzLDAsMCwxLDE5LDcuMTlWOC44M2guNjZMMjEsNi41'@; put 'OUE1LjEyLDUuMTIsMCwwLDAsMTYuNTEsMiw1LDUsMCwwLDAsMTEsNi44M0g0YTIsMiwwLDAsMC0yLDJWMTdINC44MUEzLjEzLDMuMTMsMCwwLDEsOCwxOS42OSwzLDMsMCwwLDEsNy4yMiwyMiwzLDMsMCwwLDEsNSwyM0gydjguODNhMiwyLDAsMCwwLDIsMkgyN2EyLDIsMCwwLDAsMi0yVjI2'@; put 'aDFhNSw1LDAsMCwwLDUtNS41MUE1LjE1LDUuMTUsMCwwLDAsMjkuODEsMTZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAs'@; put 'MCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAg'@; put 'ICAgICAgIDxwYXRoIGQ9Ik0yOS44MSwxNkgyOVYxMy40M2E3LjQ1LDcuNDUsMCwwLDEtMi0uNTVWMThoMi44MUEzLjEzLDMuMTMsMCwwLDEsMzMsMjAuNjksMywzLDAsMCwxLDMyLjIyLDIzLDMsMywwLDAsMSwzMCwyNEgyN3Y3LjgzSDRWMjVINWE1LDUsMCwwLDAsNS01LjUxQTUuMTUsNS4x'@; put 'NSwwLDAsMCw0LjgxLDE1SDRWOC44M2g5VjdhMywzLDAsMCwxLDEtMi4yMkEzLDMsMCwwLDEsMTYuMzEsNCwzLjEzLDMuMTMsMCwwLDEsMTksNy4xOVY4LjgzaDQuMDZhNy40NCw3LjQ0LDAsMCwxLS41MS0ySDIxQTUuMTQsNS4xNCwwLDAsMCwxNi41MSwyLDUsNSwwLDAsMCwxMSw2LjgzSDRh'@; put 'MiwyLDAsMCwwLTIsMlYxN0g0LjgxQTMuMTMsMy4xMywwLDAsMSw4LDE5LjY5LDMsMywwLDAsMSw3LjIyLDIyLDMsMywwLDAsMSw1LDIzSDJ2OC44M2EyLDIsMCwwLDAsMiwySDI3YTIsMiwwLDAsMCwyLTJWMjZoMWE1LDUsMCwwLDAsNS01LjUxQTUuMTUsNS4xNSwwLDAsMCwyOS44MSwxNloi'@; put 'IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xy'@; put 'LWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS44MSwxNkgyOVY4LjgzYTIsMiwwLDAsMC0yLTJIMjFBNS4xNCw1LjE0LDAsMCwwLDE2LjUxLDIsNSw1LDAsMCwwLDExLDYuODNINGEyLDIsMCwwLDAtMiwyVjE3SDQuODFBMy4xMywzLjEzLDAsMCwxLDgsMTkuNjksMywzLDAs'@; put 'MCwxLDcuMjIsMjIsMywzLDAsMCwxLDUsMjNIMnY4LjgzYTIsMiwwLDAsMCwyLDJIMjdhMiwyLDAsMCwwLDItMlYyNmgxYTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDI5LjgxLDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAg'@; put 'ICAgPHBhdGggZD0iTTI5LjgxLDE2SDI5di0uNkgyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMSw2LjU5QTUuMTIsNS4xMiwwLDAsMCwxNi41MSwyLDUsNSwwLDAsMCwxMSw2LjgzSDRhMiwyLDAsMCwwLTIsMlYxN0g0LjgxQTMuMTMsMy4xMywwLDAsMSw4LDE5LjY5LDMsMywwLDAs'@; put 'MSw3LjIyLDIyLDMsMywwLDAsMSw1LDIzSDJ2OC44M2EyLDIsMCwwLDAsMiwySDI3YTIsMiwwLDAsMCwyLTJWMjZoMWE1LDUsMCwwLDAsNS01LjUxQTUuMTUsNS4xNSwwLDAsMCwyOS44MSwxNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0'@; put 'ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0t'@; put 'YWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS44MSwxNkgyOVYxMy40M2E3LjUsNy41LDAsMCwxLTYuNDUtNi41OUgyMUE1LjE0LDUuMTQsMCwwLDAsMTYuNTEsMiw1LDUsMCwwLDAsMTEsNi44M0g0YTIs'@; put 'MiwwLDAsMC0yLDJWMTdINC44MUEzLjEzLDMuMTMsMCwwLDEsOCwxOS42OSwzLDMsMCwwLDEsNy4yMiwyMiwzLDMsMCwwLDEsNSwyM0gydjguODNhMiwyLDAsMCwwLDIsMkgyN2EyLDIsMCwwLDAsMi0yVjI2aDFhNSw1LDAsMCwwLDUtNS41MUE1LjE1LDUuMTUsMCwwLDAsMjkuODEsMTZaIiBj'@; put 'bGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIv'@; put 'PlxuICAgICAgICAnKSxiLkNsclNoYXBlRmxvcHB5PSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNy4zNiw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWOC43OFpNMjUsMzBIMTFWMjJIMjVabTUsMEgyN1YyMmEyLDIsMCwwLDAtMi0ySDEx'@; put 'YTIsMiwwLDAsMC0yLDJ2OEg2VjZoNHY2YTIsMiwwLDAsMCwyLDJIMjRhMiwyLDAsMCwwLDItMkgxMlY2SDI2LjUxTDMwLDkuNTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41aDBWMzBIMjdWMjJh'@; put 'MiwyLDAsMCwwLTItMkgxMWEyLDIsMCwwLDAtMiwydjhINlY2aDR2NmEyLDIsMCwwLDAsMiwySDI0YTIsMiwwLDAsMCwyLTEuNjhsLS40My0uM0gxMlY2SDIyLjVhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJW'@; put 'MTMuMjJBNy40OSw3LjQ5LDAsMCwxLDMwLDEzLjVaTTI1LDMwSDExVjIySDI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDE1LjRWMzBIMjdWMjJhMiwyLDAsMCwwLTItMkgxMWEyLDIsMCwwLDAtMiwydjhINlY2aDR2NmEyLDIsMCwwLDAsMiwyaDcuMzVhMy41NCwz'@; put 'LjU0LDAsMCwxLS43Ny0ySDEyVjZoOS4yOWwxLjE1LTJINkEyLDIsMCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxNS40Wk0yNSwzMEgxMVYyMkgyNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVk'@; put 'Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0t'@; put 'YWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3LjM2LDRINkEyLDIsMCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlY4Ljc4Wk0yNiwzMEgxMFYyMS41QTEuNSwxLjUsMCww'@; put 'LDEsMTEuNSwyMGgxM0ExLjUsMS41LDAsMCwxLDI2LDIxLjVaTTI0LDE0SDEyYTIsMiwwLDAsMS0yLTJWNmgydjZIMjZBMiwyLDAsMCwxLDI0LDE0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVhNy40Niw3'@; put 'LjQ2LDAsMCwxLTQtMS4xOEEyLDIsMCwwLDEsMjQsMTRIMTJhMiwyLDAsMCwxLTItMlY2aDJ2NkgyNS41NGE3LjQ1LDcuNDUsMCwwLDEtMi43Ni04SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTMuMjJBNy40OSw3LjQ5LDAsMCwxLDMwLDEzLjVa'@; put 'TTI2LDMwSDEwVjIxLjVBMS41LDEuNSwwLDAsMSwxMS41LDIwaDEzQTEuNSwxLjUsMCwwLDEsMjYsMjEuNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNs'@; put 'YXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjMsMTUuNEEzLjY5LDMuNjksMCwwLDEsMTkuMzUsMTRIMTJhMiwyLDAsMCwxLTItMlY2aDJ2Nmg2LjU4QTMuNjcsMy42Nyww'@; put 'LDAsMSwxOSw5Ljg5TDIyLjQ1LDRINkEyLDIsMCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxNS40Wk0yNiwzMEgxMFYyMS41QTEuNSwxLjUsMCwwLDEsMTEuNSwyMGgxM0ExLjUsMS41LDAsMCwxLDI2LDIxLjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0'@; put 'ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1'@; put 'LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICcpLGIuQ2xyU2hhcGVDb21wdXRlcj0oMCxwLmNsckljb25TVkcpKCc8cG9seWdvbiBwb2ludHM9IjkuNiAyMi44OCA5LjYgMTAuNiAy'@; put 'NC40IDEwLjYgMjUuOTggOSA4IDkgOCAyMi44OCA5LjYgMjIuODgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNiw3SDMwVjIzaDJWNi41QTEuNSwxLjUsMCwwLDAsMzAuNSw1SDUuNUExLjUsMS41LDAsMCwwLDQs'@; put 'Ni41VjIzSDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEsMjV2My40QTIuNiwyLjYsMCwwLDAsMy42LDMxSDMyLjM0YTIuNiwyLjYsMCwwLDAsMi42LTIuNlYyNVptMzIsMy40YS42LjYsMCwwLDEtLjYuNkgz'@; put 'LjU2YS42LjYsMCwwLDEtLjYtLjZWMjYuNTNoOS45NWExLjY0LDEuNjQsMCwwLDAsMS41LDFoNy4xM2ExLjY0LDEuNjQsMCwwLDAsMS41LTFIMzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEsMjV2My40QTIu'@; put 'NiwyLjYsMCwwLDAsMy42LDMxSDMyLjM0YTIuNiwyLjYsMCwwLDAsMi42LTIuNlYyNVptMzIsMy40YS42LjYsMCwwLDEtLjYuNkgzLjU2YS42LjYsMCwwLDEtLjYtLjZWMjYuNTNoOS45NWExLjY0LDEuNjQsMCwwLDAsMS41LDFoNy4xM2ExLjY0LDEuNjQsMCwwLDAsMS41LTFIMzNaIiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTkuNiwyMi44OFYxMC42aDkuMTRBMy42NCwzLjY0LDAsMCwxLDE5LDkuODlMMTkuNTYsOUg4VjIyLjg4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUt'@; put 'LWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik02LDdIMjAuNzFsMS4xNS0ySDUuNUExLjUsMS41LDAsMCwwLDQsNi41VjIzSDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0t'@; put 'YWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMzAiIHk9IjE1LjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjcuNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0'@; put 'LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVk'@; put 'IGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMSwyNXYzLjRBMi42LDIuNiwwLDAsMCwzLjYsMzFIMzIuMzRhMi42LDIuNiwwLDAsMCwyLjYtMi42VjI1Wm0zMiwzLjRhLjYuNiwwLDAsMS0uNi42SDMuNTZhLjYuNiwwLDAsMS0uNi0uNlYyNi41M2g5Ljk1YTEuNjQsMS42'@; put 'NCwwLDAsMCwxLjUsMWg3LjEzYTEuNjQsMS42NCwwLDAsMCwxLjUtMUgzM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjUsNmE3LjUyLDcuNTIsMCwwLDEsLjA3LTFINS41QTEu'@; put 'NSwxLjUsMCwwLDAsNCw2LjVWMjNINlY3SDIyLjU3QTcuNTIsNy41MiwwLDAsMSwyMi41LDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41VjIzaDJWMTMuMjJBNy40OSw3'@; put 'LjQ5LDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy4xMyw5SDhWMjIuODhIOS42VjEwLjZIMjQuMDhBNy40OSw3LjQ5LDAsMCwxLDIzLjEzLDlaIiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJh'@; put 'ZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuODEsMjZjLS4zNS45LS45NCwxLjUtMS42MSwxLjVIMTMuNzRjLS42OCwwLTEuMjYtLjYtMS42MS0xLjVIMXYxLjc1QTIuNDUsMi40NSwwLDAsMCwzLjYsMzBIMzIuNEEyLjQ1LDIuNDUsMCwwLDAsMzUsMjcuNzVWMjZaIiBjbGFzcz0i'@; put 'Y2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNywxMEgyOVYyNGgzVjcuNTdBMS41NCwxLjU0LDAsMCwwLDMwLjUsNkg1LjVBMS41NCwxLjU0LDAsMCwwLDQsNy41N1YyNEg3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBh'@; put 'dGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjgxLDI2Yy0uMzUuOS0uOTQsMS41LTEuNjEsMS41SDEzLjc0Yy0uNjgsMC0xLjI2LS42LTEuNjEtMS41SDF2MS43NUEyLjQ1LDIuNDUsMCwwLDAsMy42LDMwSDMyLjRBMi40NSwyLjQ1LDAsMCwwLDM1LDI3Ljc1VjI2WiIgY2xhc3M9'@; put 'ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjkiIHk9IjE1LjQiIHdpZHRoPSIzIiBoZWlnaHQ9IjguNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRl'@; put 'ZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTcsMTBIMTlMMTksOS44OSwyMS4yOSw2SDUuNUExLjU0LDEuNTQsMCwwLDAsNCw3LjU3VjI0SDdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBk'@; put 'PSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC00'@; put 'LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuODEsMjZjLS4zNS45LS45NCwxLjUtMS42MSwxLjVIMTMuNzRjLS42OCwwLTEuMjYtLjYtMS42MS0xLjVIMXYxLjc1QTIuNDUsMi40NSwwLDAsMCwzLjYsMzBIMzIuNEEyLjQ1LDIuNDUsMCwwLDAsMzUs'@; put 'MjcuNzVWMjZaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTcsMTBIMjMuNjZBNy40Niw3LjQ2LDAsMCwxLDIyLjUsNkg1LjVBMS41NCwxLjU0LDAsMCwwLDQsNy41N1YyNEg3WiIgY2xhc3M9'@; put 'ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiwxMy4yMmE3LjE0LDcuMTQsMCwwLDEtMywuMlYyNGgzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQi'@; put 'Lz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksYi5DbHJTaGFwZURpc3BsYXk9KDAscC5jbHJJY29uU1ZHKSgnPHBh'@; put 'dGggZD0iTTMyLjUsM0gzLjVBMS41LDEuNSwwLDAsMCwyLDQuNXYyMUExLjUsMS41LDAsMCwwLDMuNSwyN2gyOUExLjUsMS41LDAsMCwwLDM0LDI1LjVWNC41QTEuNSwxLjUsMCwwLDAsMzIuNSwzWk0zMiwyNUg0VjVIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtMSIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI3LjcgOC43NiAyOC4xMyA4Ljc2IDI5Ljk0IDcuMTYgNi4xIDcuMTYgNi4xIDIzIDcuNyAyMyA3LjcgOC43NiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRo'@; put 'IGQ9Ik0yNiwzMkgyNC4yNmEzLjYxLDMuNjEsMCwwLDEtMS41LTIuNTJWMjguMTNIMjEuMjRWMjkuNUE0LjIsNC4yLDAsMCwwLDIyLjE3LDMySDEzLjgzYTQuMiw0LjIsMCwwLDAsLjkzLTIuNTJWMjguMTNIMTMuMjRWMjkuNUEzLjYxLDMuNjEsMCwwLDEsMTEuNzQsMzJIOS45NGExLDEsMCwx'@; put 'LDAsMCwySDI2LjA2YS45Mi45MiwwLDAsMCwxLTFBMSwxLDAsMCwwLDI2LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNiwzMkgyNC4yNmEzLjYxLDMuNjEsMCwwLDEtMS41LTIuNTJWMjguMTNIMjEuMjRW'@; put 'MjkuNUE0LjIsNC4yLDAsMCwwLDIyLjE3LDMySDEzLjgzYTQuMiw0LjIsMCwwLDAsLjkzLTIuNTJWMjguMTNIMTMuMjRWMjkuNUEzLjYxLDMuNjEsMCwwLDEsMTEuNzQsMzJIOS45NGExLDEsMCwxLDAsMCwySDI2LjA2YS45Mi45MiwwLDAsMCwxLTFBMSwxLDAsMCwwLDI2LDMyWiIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDMyVjI1SDRWNUgyMS44N0wyMywzSDMuNUExLjUsMS41LDAsMCwwLDIsNC41djIxQTEuNSwxLjUsMCwwLDAsMy41LDI3aDI5QTEu'@; put 'NSwxLjUsMCwwLDAsMzQsMjUuNVYxNS4zOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjcuNyAyMyA3LjcgOC43NiAxOS43IDguNzYgMjAuNjIgNy4xNiA2LjEgNy4x'@; put 'NiA2LjEgMjMgNy43IDIzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCww'@; put 'LDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNiwzMkgyNC4yNmEz'@; put 'LjYxLDMuNjEsMCwwLDEtMS41LTIuNTJWMjguMTNIMjEuMjRWMjkuNUE0LjIsNC4yLDAsMCwwLDIyLjE3LDMySDEzLjgzYTQuMiw0LjIsMCwwLDAsLjkzLTIuNTJWMjguMTNIMTMuMjRWMjkuNUEzLjYxLDMuNjEsMCwwLDEsMTEuNzQsMzJIOS45NGExLDEsMCwxLDAsMCwySDI2LjA2YS45Mi45'@; put 'MiwwLDAsMCwxLTFBMSwxLDAsMCwwLDI2LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNi4xLDIzSDcuN1Y4Ljc2SDIzYTcuNDQsNy40NCwwLDAsMS0uNDMtMS42SDYuMVoiIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDEzLjIyVjI1SDRWNUgyMi41N2E3LjQ1LDcuNDUsMCwwLDEsLjU1LTJIMy41QTEuNSwxLjUsMCwwLDAsMiw0LjV2MjFBMS41LDEuNSwwLDAs'@; put 'MCwzLjUsMjdoMjlBMS41LDEuNSwwLDAsMCwzNCwyNS41VjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiBy'@; put 'PSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNiwzMkgyNC4yNmEzLjYxLDMuNjEsMCwwLDEtMS41LTIuNTJWMjguMTNIMTMuMjRWMjkuNUEzLjYxLDMuNjEs'@; put 'MCwwLDEsMTEuNzQsMzJIOS45NGExLDEsMCwxLDAsMCwySDI2LjA2YS45Mi45MiwwLDAsMCwxLTFBMSwxLDAsMCwwLDI2LDMyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjUsM0gzLjVBMS41LDEuNSwwLDAsMCwy'@; put 'LDQuNXYyMUExLjUsMS41LDAsMCwwLDMuNSwyN2gyOUExLjUsMS41LDAsMCwwLDM0LDI1LjVWNC41QTEuNSwxLjUsMCwwLDAsMzIuNSwzWk0zMSwyMS44M0g1VjdIMzFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYs'@; put 'MzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDEzLjI0VjI5LjVBMy42MSwzLjYxLDAsMCwxLDExLjc0LDMySDkuOTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBj'@; put 'bHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDMxdjYuNDNINVY3SDIwLjcxTDIzLDNIMy41QTEuNSwxLjUsMCwwLDAsMiw0LjV2MjFBMS41LDEuNSwwLDAsMCwzLjUsMjdoMjlBMS41LDEuNSwwLDAsMCwzNCwyNS41VjE1LjM4'@; put 'WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4w'@; put 'NiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LDMySDI0LjI2YTMuNjEsMy42MSwwLDAsMS0xLjUtMi41'@; put 'MlYyOC4xM0gxMy4yNFYyOS41QTMuNjEsMy42MSwwLDAsMSwxMS43NCwzMkg5Ljk0YTEsMSwwLDEsMCwwLDJIMjYuMDZhLjkyLjkyLDAsMCwwLDEtMUExLDEsMCwwLDAsMjYsMzJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAg'@; put 'ICAgICAgICAgPHBhdGggZD0iTTMxLDEzLjQzdjguNDFINVY3SDIyLjU3YTcuMjksNy4yOSwwLDAsMSwuNTUtNEgzLjVBMS41LDEuNSwwLDAsMCwyLDQuNXYyMUExLjUsMS41LDAsMCwwLDMuNSwyN2gyOUExLjUsMS41LDAsMCwwLDM0LDI1LjVWMTIuMzRBNy40NCw3LjQ0LDAsMCwxLDMxLDEz'@; put 'LjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWkt'@; put 'YmFkZ2UiLz5cbiAgICAgICAgJyksYi5DbHJTaGFwZVRlcm1pbmFsPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMiw1SDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWN0EyLDIsMCwwLDAsMzIsNVpNNCw3SDMyVjkuMkg0Wk00LDI5VjEwLjhI'@; put 'MzJWMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE3IiB5PSIyMyIgd2lkdGg9IjYiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAg'@; put 'ICA8cG9seWdvbiBwb2ludHM9IjcgMTUuNjggMTMuNzkgMTguOCA3IDIxLjkxIDcgMjQuMTEgMTYuNiAxOS43IDE2LjYgMTcuODkgNyAxMy40OCA3IDE1LjY4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE3IiB5'@; put 'PSIyMyIgd2lkdGg9IjYiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjcgMjQuMTEgMTYuNiAxOS43IDE2LjYgMTcuODkgNyAxMy40OCA3IDE1LjY4'@; put 'IDEzLjc5IDE4LjggNyAyMS45MSA3IDI0LjExIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDMyVjI5SDRWMTAuOEgxOC42OEEzLjY2LDMuNjYsMCwwLDEsMTks'@; put 'OS44OWwuNC0uNjlINFY3SDIwLjcxbDEuMTUtMkg0QTIsMiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE1LjM4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8'@; put 'cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNyIgeT0iMjMiIHdpZHRoPSI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAg'@; put 'IDxwb2x5Z29uIHBvaW50cz0iNyAyNC4xMSAxNi42IDE5LjcgMTYuNiAxNy44OSA3IDEzLjQ4IDcgMTUuNjggMTMuNzkgMTguOCA3IDIxLjkxIDcgMjQuMTEiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAg'@; put 'IDxwYXRoIGQ9Ik0zMiwxMy4yMlYyOUg0VjEwLjhIMjQuMjRhNy41MSw3LjUxLDAsMCwxLTEtMS42SDRWN0gyMi41N2E3LjUyLDcuNTIsMCwwLDEtLjA3LTEsNy41Miw3LjUyLDAsMCwxLC4wNy0xSDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTIu'@; put 'MzRBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDVINEEyLDIsMCwwLDAsMiw3VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY3QTIsMiwwLDAsMCwzMiw1Wk02LjgsMTUuODFWMTMuMTdsMTAsNC41OXYy'@; put 'LjA4bC0xMCw0LjU5VjIxLjc4bDYuNTEtM1pNMjMuNCwyNS40SDE3VjIzaDYuNFpNNCw5LjJWN0gzMlY5LjJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjY4LDE1LjRIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5'@; put 'LDkuODlsLjQtLjY5SDRWN0gyMC43MWwxLjE1LTJINEEyLDIsMCwwLDAsMiw3VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxNS4zOFpNMTYuOCwxOS44M2wtMTAsNC41OVYyMS43OGw2LjUxLTMtNi41MS0zVjEzLjE3bDEwLDQuNTlabTYuNiw1LjU3SDE3VjIzaDYuNFoiIGNs'@; put 'YXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEu'@; put 'MTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNDksNy40OSwwLDAsMS02Ljc4LTQuM0g0VjdI'@; put 'MjIuNTdhNy41Miw3LjUyLDAsMCwxLS4wNy0xLDcuNTIsNy41MiwwLDAsMSwuMDctMUg0QTIsMiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDYsNy40NiwwLDAsMSwzMCwxMy41Wk0xNi44LDE5LjgzbC0xMCw0LjU5VjIxLjc4bDYuNTEtMy02'@; put 'LjUxLTNWMTMuMTdsMTAsNC41OVptNi42LDUuNTdIMTdWMjNoNi40WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJh'@; put 'ZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgJyksYi5DbHJTaGFwZUNvZGU9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEzLjcxLDEyLjU5YTEsMSwwLDAsMC0xLjM5LS4yNkw1Ljc5LDE2Ljc4YTEsMSwwLDAsMCwwLDEuNjVsNi41'@; put 'Myw0LjQ1YTEsMSwwLDEsMCwxLjEzLTEuNjVMOC4xMywxNy42MSwxMy40NSwxNEExLDEsMCwwLDAsMTMuNzEsMTIuNTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC4yMSwxNi43OGwtNi41My00LjQ1QTEs'@; put 'MSwwLDEsMCwyMi41NSwxNGw1LjMyLDMuNjMtNS4zMiwzLjYzYTEsMSwwLDAsMCwxLjEzLDEuNjVsNi41My00LjQ1YTEsMSwwLDAsMCwwLTEuNjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS45NCw5Ljgz'@; put 'YS45LjksMCwwLDAtMS4wOS42NkwxNS40MSwyNC4yOWEuOS45LDAsMCwwLC42NiwxLjA5bC4yMiwwYS45LjksMCwwLDAsLjg3LS42OGwzLjQ0LTEzLjgxQS45LjksMCwwLDAsMTkuOTQsOS44M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAg'@; put 'ICAgICAgPHBhdGggZD0iTTEzLjcxLDEyLjU5YTEsMSwwLDAsMC0xLjM5LS4yNkw1Ljc5LDE2Ljc4YTEsMSwwLDAsMCwwLDEuNjVsNi41Myw0LjQ1YTEsMSwwLDEsMCwxLjEzLTEuNjVMOC4xMywxNy42MSwxMy40NSwxNEExLDEsMCwwLDAsMTMuNzEsMTIuNTlaIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC41NiwxMS42MiwxNS40MSwyNC4yOWEuOS45LDAsMCwwLC42NiwxLjA5bC4yMiwwYS45LjksMCwwLDAsLjg3LS42OEwxOS43MywxNC40YTMuNTksMy41OSwwLDAs'@; put 'MS0xLjE2LTIuNzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC4yMSwxNi43OGwtMi0xLjM4SDI0LjY0bDMuMjQsMi4yMS01LjMyLDMuNjNhMSwxLDAsMCwwLDEuMTMsMS42'@; put 'NWw2LjUzLTQuNDVhMSwxLDAsMCwwLDAtMS42NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMz'@; put 'LjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGgg'@; put 'ZD0iTTEzLjcxLDEyLjU5YTEsMSwwLDAsMC0xLjM5LS4yNkw1Ljc5LDE2Ljc4YTEsMSwwLDAsMCwwLDEuNjVsNi41Myw0LjQ1YTEsMSwwLDEsMCwxLjEzLTEuNjVMOC4xMywxNy42MSwxMy40NSwxNEExLDEsMCwwLDAsMTMuNzEsMTIuNTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuMjEsMTYuNzhsLTYuNTMtNC40NUExLDEsMCwxLDAsMjIuNTUsMTRsNS4zMiwzLjYzLTUuMzIsMy42M2ExLDEsMCwwLDAsMS4xMywxLjY1bDYuNTMtNC40NWExLDEsMCwwLDAsMC0xLjY1'@; put 'WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5Ljk0LDkuODNhLjkuOSwwLDAsMC0xLjA5LjY2TDE1LjQxLDI0LjI5YS45LjksMCwwLDAsLjY2LDEuMDlsLjIyLDBhLjkuOSwwLDAs'@; put 'MCwuODctLjY4bDMuNDQtMTMuODFBLjkuOSwwLDAsMCwxOS45NCw5LjgzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAnKSxiLkNsclNoYXBlQXBwbGljYXRpb249KDAscC5jbHJJY29uU1ZHKSgnPHJlY3QgeD0iNSIgeT0iNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI5IiB5PSI3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEzIiB5PSI3IiB3aWR0'@; put 'aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiw0SDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMzIsNFpNNCw2SDMy'@; put 'djQuMkg0Wk00LDMwVjExLjhIMzJWMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiw0SDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMzIs'@; put 'NFptMCw2LjJINFY2SDMyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjUiIHk9IjciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAg'@; put 'ICA8cmVjdCB4PSI5IiB5PSI3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTMiIHk9IjciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp'@; put 'ZC1wYXRoLTQiIC8+XG4gICAgICAgICcpLGIuQ2xyU2hhcGVCYXR0ZXJ5PSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOC41OSwxMS43N2ExLDEsMCwwLDAtMS43MywxbDIuNSw0LjM0LTYuMDctMSw1LjI5LDEwLjU5YTEsMSwwLDAsMCwxLjc5LS44OWwtMy41My03LjA4LDYuMzgsMS4w'@; put 'NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1LjEyLDRIMjNWMy41OEExLjU4LDEuNTgsMCwwLDAsMjEuNDIsMkgxNC41OEExLjU4LDEuNTgsMCwwLDAsMTMsMy41OFY0SDEwLjg4QTEuODgsMS44OCwwLDAs'@; put 'MCw5LDUuODhWMzIuMTJBMS44OCwxLjg4LDAsMCwwLDEwLjg4LDM0SDI1LjEyQTEuODgsMS44OCwwLDAsMCwyNywzMi4xMlY1Ljg4QTEuODgsMS44OCwwLDAsMCwyNS4xMiw0Wk0yNSwzMkgxMVY2aDRWNGg2VjZoNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0y'@; put 'IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjU5LDExLjc3YTEsMSwwLDAsMC0xLjczLDFsMi41LDQuMzQtNi4wNy0xLDUuMjksMTAuNTlhMSwxLDAsMCwwLDEuNzktLjg5bC0zLjUzLTcuMDgsNi4zOCwxLjA2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjUsMTUuNFYzMkgxMVY2aDRWNGg2VjZoLjI4bDEuNjQtMi44NUExLjU3LDEuNTcsMCwwLDAsMjEuNDIsMkgxNC41'@; put 'OEExLjU4LDEuNTgsMCwwLDAsMTMsMy41OFY0SDEwLjg4QTEuODgsMS44OCwwLDAsMCw5LDUuODhWMzIuMTJBMS44OCwxLjg4LDAsMCwwLDEwLjg4LDM0SDI1LjEyQTEuODgsMS44OCwwLDAsMCwyNywzMi4xMlYxNS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN'@; put 'MTguNTksMTEuNzdhMSwxLDAsMCwwLTEuNzMsMWwyLjUsNC4zNC02LjA3LTEsNS4yOSwxMC41OWExLDEsMCwwLDAsMS43OS0uODlsLTMuNTMtNy4wOCw2LjM4LDEuMDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAg'@; put 'ICAgICAgICA8cGF0aCBkPSJNMjUsMTEuNThWMzJIMTFWNmg0VjRoNlY2SDIyLjVBNy40Nyw3LjQ3LDAsMCwxLDIzLDMuMzgsMS41NywxLjU3LDAsMCwwLDIxLjQyLDJIMTQuNThBMS41OCwxLjU4LDAsMCwwLDEzLDMuNThWNEgxMC44OEExLjg4LDEuODgsMCwwLDAsOSw1Ljg4VjMyLjEyQTEu'@; put 'ODgsMS44OCwwLDAsMCwxMC44OCwzNEgyNS4xMkExLjg4LDEuODgsMCwwLDAsMjcsMzIuMTJWMTIuODdBNy41LDcuNSwwLDAsMSwyNSwxMS41OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRo'@; put 'IGQ9Ik0yMiw0VjIuNjJBLjYuNiwwLDAsMCwyMS40MiwySDE0LjU4YS42LjYsMCwwLDAtLjU4LjYyVjRIMTBBMS4wOSwxLjA5LDAsMCwwLDksNS4wN3YyOEExLDEsMCwwLDAsMTAsMzRIMjZhMSwxLDAsMCwwLDEtLjk0di0yOEExLjA5LDEuMDksMCwwLDAsMjYsNFpNMjAuMjYsMjUuNDRhMS4y'@; put 'LDEuMiwwLDAsMS0yLjE1LDEuMDdMMTIuNjUsMTUuNTZsNiwxLTIuMjktNGExLjIsMS4yLDAsMSwxLDIuMDgtMS4ybDQuODMsOC4zN0wxNi45LDE4LjdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQs'@; put 'MjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQgY2xy'@; put 'LWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjMsMTUuNEEzLjY2LDMuNjYsMCwwLDEsMjAuNTUsMTVsMi43Niw0Ljc5TDE2LjksMTguN2wzLjM2LDYuNzNhMS4yLDEuMiwwLDAsMS0yLjE1LDEuMDdMMTIuNjUsMTUuNTZsNiwxLTIuMjktNGExLjIsMS4yLDAsMSwxLDIu'@; put 'MDgtMS4ybC4wOS4xNUEzLjY2LDMuNjYsMCwwLDEsMTksOS44OUwyMi40NSw0SDIyVjIuNjJBLjYuNiwwLDAsMCwyMS40MiwySDE0LjU4YS42LjYsMCwwLDAtLjU4LjYyVjRIMTBBMS4wOSwxLjA5LDAsMCwwLDksNS4wN3YyOEExLDEsMCwwLDAsMTAsMzRIMjZhMSwxLDAsMCwwLDEtLjk0VjE1'@; put 'LjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQgY2xy'@; put 'LWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNSw2YTcuNDksNy40OSwwLDAsMSwuMjgtMkgyMlYyLjYyQS42LjYsMCwwLDAsMjEuNDIsMkgxNC41OGEuNi42LDAsMCwwLS41OC42MlY0SDEwQTEuMDksMS4wOSwwLDAsMCw5LDUuMDd2MjhBMSwxLDAsMCwwLDEwLDM0SDI2'@; put 'YTEsMSwwLDAsMCwxLS45NFYxMi44N0E3LjUsNy41LDAsMCwxLDIyLjUsNlpNMjAuMjYsMjUuNDRhMS4yLDEuMiwwLDAsMS0yLjE1LDEuMDdMMTIuNjUsMTUuNTZsNiwxLTIuMjktNGExLjIsMS4yLDAsMSwxLDIuMDgtMS4ybDQuODMsOC4zN0wxNi45LDE4LjdaIiBjbGFzcz0iY2xyLWktc29s'@; put 'aWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgJyksYi5DbHJTaGFwZU1vYmlsZT0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjUsNEgxMUEyLDIsMCwwLDAsOSw2VjMwYTIsMiwwLDAsMCwyLDJIMjVhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAs'@; put 'MCwyNSw0Wk0xMSw2SDI1VjI0SDExWm0wLDI0VjI2SDI1djRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE3IiB5PSIyNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjUsNEgxMUEyLDIsMCwwLDAsOSw2VjMwYTIsMiwwLDAsMCwyLDJIMjVhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwyNSw0Wk0xOSwzMEgxN1YyOGgyWm0tOC00VjZIMjVWMjZaIiBjbGFzcz0iY2xyLWktc29saWQg'@; put 'Y2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAnKSxiLkNsclNoYXBlVGFibGV0PSgwLHAuY2xySWNvblNWRykoJzxyZWN0IHg9IjE3IiB5PSIyOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAg'@; put 'ICAgICA8cGF0aCBkPSJNMzAsMkg2QTIsMiwwLDAsMCw0LDRWMzJhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjRBMiwyLDAsMCwwLDMwLDJabTAsMlYyNi4zOEg2VjRaTTYsMzJWMjhIMzB2NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxu'@; put 'ICAgICAgICAgICAgPHBhdGggZD0iTTMwLDJINkEyLDIsMCwwLDAsNCw0VjMyYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwzMCwyWk0xOSwzMkgxN1YzMGgyWk02LDI4VjRIMzBWMjhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAv'@; put 'PlxuICAgICAgICAnKSxiLkNsclNoYXBlTmV0d29ya0dsb2JlPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNi41OCwzMmgtMThhMSwxLDAsMSwwLDAsMmgxOGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAg'@; put 'ICAgICA8cGF0aCBkPSJNMTcuNzUsMmExNCwxNCwwLDAsMC0xNCwxNGMwLC40NSwwLC44OS4wNywxLjMzbDAsMGgwQTE0LDE0LDAsMSwwLDE3Ljc1LDJabTAsMmExMiwxMiwwLDAsMSw4LjQ0LDMuNDhjMCwuMzMsMCwuNjYsMCwxQTE4LjUxLDE4LjUxLDAsMCwwLDE0LDguNTNhMi4zMywyLjMz'@; put 'LDAsMCwwLTEuMTQtLjYxbC0uMjUsMGMtLjEyLS40Mi0uMjMtLjg0LS4zMi0xLjI3cy0uMTQtLjgxLS4xOS0xLjIyQTExLjkyLDExLjkyLDAsMCwxLDE3Ljc1LDRabS0zLDUuODdBMTcsMTcsMCwwLDEsMjUuOTIsMTBhMTYuOSwxNi45LDAsMCwxLTMuMTEsNywyLjI4LDIuMjgsMCwwLDAtMi41'@; put 'OC41N2MtLjM1LS4yLS43LS40LTEtLjYzYTE2LDE2LDAsMCwxLTQuOTMtNS4yMywyLjI1LDIuMjUsMCwwLDAsLjQ3LTEuNzdabS00LTMuNmMwLC4yMS4wNi40My4xLjY0LjA5LjQ0LjIxLjg3LjMzLDEuM2EyLjI4LDIuMjgsMCwwLDAtMS4xLDIuMjVBMTguMzIsMTguMzIsMCwwLDAsNS45LDE0'@; put 'LjIyLDEyLDEyLDAsMCwxLDEwLjc2LDYuMjdabTAsMTUuNzFBMi4zNCwyLjM0LDAsMCwwLDkuMiwyMy43NGwtLjY0LDBBMTEuOTQsMTEuOTQsMCwwLDEsNS44LDE2LjkybC4xMS0uMTlhMTYuOSwxNi45LDAsMCwxLDQuODEtNC44OSwyLjMxLDIuMzEsMCwwLDAsMi4yOC42MywxNy41MywxNy41'@; put 'MywwLDAsMCw1LjM1LDUuNjVjLjQxLjI3LjgzLjUyLDEuMjUuNzZBMi4zMiwyLjMyLDAsMCwwLDE5Ljc4LDIwYTE2Ljk0LDE2Ljk0LDAsMCwxLTYuMiwzLjExQTIuMzQsMi4zNCwwLDAsMCwxMC43NiwyMlptNyw2YTExLjkyLDExLjkyLDAsMCwxLTUuODEtMS41MWwuMjgtLjA2YTIuMzQsMi4z'@; put 'NCwwLDAsMCwxLjU3LTEuNzksMTguNDMsMTguNDMsMCwwLDAsNy0zLjUsMi4yOSwyLjI5LDAsMCwwLDMtLjYyLDE3LjQxLDE3LjQxLDAsMCwwLDQuMzIuNTZsLjUzLDBBMTIsMTIsMCwwLDEsMTcuNzUsMjhabTYuNTEtOC45YTIuMzMsMi4zMywwLDAsMC0uMzMtMS4xOSwxOC40LDE4LjQsMCww'@; put 'LDAsMy4zOS03LjM3cS43NS4zNSwxLjQ4Ljc4YTEyLDEyLDAsMCwxLC40Miw4LjJBMTYsMTYsMCwwLDEsMjQuMjcsMTkuMTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi41OCwzMmgtMThhMSwxLDAsMSww'@; put 'LDAsMmgxOGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuNzMsMTUuNGgtMmMwLC4yLDAsLjQsMCwuNjFhMTIsMTIsMCwwLDEtLjUzLDMuNTIsMTYs'@; put 'MTYsMCwwLDEtNS0uNDEsMi4zMywyLjMzLDAsMCwwLS4zMy0xLjE5LDE4Ljg3LDE4Ljg3LDAsMCwwLDEuNjItMi41MkgyMy44M2ExNy4yOSwxNy4yOSwwLDAsMS0xLDEuNTQsMi4yOCwyLjI4LDAsMCwwLTIuNTguNTdjLS4zNS0uMi0uNy0uNC0xLS42M2ExNiwxNiwwLDAsMS00LjkzLTUuMjMs'@; put 'Mi4yNSwyLjI1LDAsMCwwLC40Ny0xLjc3QTE3LjA4LDE3LjA4LDAsMCwxLDE5LjU2LDlsLjg3LTEuNTFhMTguNTksMTguNTksMCwwLDAtNi4zOSwxLDIuMzMsMi4zMywwLDAsMC0xLjE0LS42MWwtLjI1LDBjLS4xMi0uNDItLjIzLS44NC0uMzItMS4yN3MtLjE0LS44MS0uMTktMS4yMkExMS44'@; put 'OCwxMS44OCwwLDAsMSwyMiw0Ljc5TDIzLDNBMTQsMTQsMCwwLDAsMy43NSwxNmMwLC40NSwwLC44OS4wNywxLjMzbDAsMGgwQTE0LDE0LDAsMCwwLDMxLjc2LDE2QzMxLjc2LDE1LjgsMzEuNzQsMTUuNiwzMS43MywxNS40Wm0tMjEtOS4xM2MwLC4yMS4wNi40My4xLjY0LjA5LjQ0LjIxLjg3'@; put 'LjMzLDEuM2EyLjI4LDIuMjgsMCwwLDAtMS4xLDIuMjVBMTguMzIsMTguMzIsMCwwLDAsNS45LDE0LjIyLDEyLDEyLDAsMCwxLDEwLjc2LDYuMjdabTAsMTUuNzFBMi4zNCwyLjM0LDAsMCwwLDkuMiwyMy43NGwtLjY0LDBBMTEuOTQsMTEuOTQsMCwwLDEsNS44LDE2LjkybC4xMS0uMTlhMTYu'@; put 'OSwxNi45LDAsMCwxLDQuODEtNC44OSwyLjMxLDIuMzEsMCwwLDAsMi4yOC42MywxNy41MywxNy41MywwLDAsMCw1LjM1LDUuNjVjLjQxLjI3LjgzLjUyLDEuMjUuNzZBMi4zMiwyLjMyLDAsMCwwLDE5Ljc4LDIwYTE2Ljk0LDE2Ljk0LDAsMCwxLTYuMiwzLjExQTIuMzQsMi4zNCwwLDAsMCwx'@; put 'MC43NiwyMlptNyw2YTExLjkyLDExLjkyLDAsMCwxLTUuODEtMS41MWwuMjgtLjA2YTIuMzQsMi4zNCwwLDAsMCwxLjU3LTEuNzksMTguNDMsMTguNDMsMCwwLDAsNy0zLjUsMi4yOSwyLjI5LDAsMCwwLDMtLjYyLDE3LjQxLDE3LjQxLDAsMCwwLDQuMzIuNTZsLjUzLDBBMTIsMTIsMCwwLDEs'@; put 'MTcuNzUsMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAs'@; put 'MzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi41OCwzMmgtMThhMSwx'@; put 'LDAsMSwwLDAsMmgxOGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjUsMTMuMzVhNy41NCw3LjU0LDAsMCwxLTEuNS4xNWwtLjUxLDBhMTEuOTEsMTEu'@; put 'OTEsMCwwLDEtLjI1LDYsMTYsMTYsMCwwLDEtNS0uNDEsMi4zMywyLjMzLDAsMCwwLS4zMy0xLjE5LDE4LjU5LDE4LjU5LDAsMCwwLDIuNzgtNS4xOCw3LjQ5LDcuNDksMCwwLDEtMS4zMS0uODIsMTcsMTcsMCwwLDEtMi42MSw1LDIuMjgsMi4yOCwwLDAsMC0yLjU4LjU3Yy0uMzUtLjItLjct'@; put 'LjQtMS0uNjNhMTYsMTYsMCwwLDEtNC45My01LjIzLDIuMjUsMi4yNSwwLDAsMCwuNDctMS43NywxNywxNywwLDAsMSw4LjUzLS42Miw3LjQzLDcuNDMsMCwwLDEtLjU2LTEuNTlBMTguNTYsMTguNTYsMCwwLDAsMTQsOC41M2EyLjMzLDIuMzMsMCwwLDAtMS4xNC0uNjFsLS4yNSwwYy0uMTIt'@; put 'LjQyLS4yMy0uODQtLjMyLTEuMjdzLS4xNC0uODEtLjE5LTEuMjJBMTEuOTIsMTEuOTIsMCwwLDEsMjIuNTcsNWE3LjQ1LDcuNDUsMCwwLDEsLjUzLTJBMTQsMTQsMCwwLDAsMy43NSwxNmMwLC40NSwwLC44OS4wNywxLjMzbDAsMGgwYTE0LDE0LDAsMSwwLDI3LjY4LTRaTTEwLjc2LDYuMjdj'@; put 'MCwuMjEuMDYuNDMuMS42NC4wOS40NC4yMS44Ny4zMywxLjNhMi4yOCwyLjI4LDAsMCwwLTEuMSwyLjI1QTE4LjMyLDE4LjMyLDAsMCwwLDUuOSwxNC4yMiwxMiwxMiwwLDAsMSwxMC43Niw2LjI3Wm0wLDE1LjcxQTIuMzQsMi4zNCwwLDAsMCw5LjIsMjMuNzRsLS42NCwwQTExLjk0LDExLjk0'@; put 'LDAsMCwxLDUuOCwxNi45MmwuMTEtLjE5YTE2LjksMTYuOSwwLDAsMSw0LjgxLTQuODksMi4zMSwyLjMxLDAsMCwwLDIuMjguNjMsMTcuNTMsMTcuNTMsMCwwLDAsNS4zNSw1LjY1Yy40MS4yNy44My41MiwxLjI1Ljc2QTIuMzIsMi4zMiwwLDAsMCwxOS43OCwyMGExNi45NCwxNi45NCwwLDAs'@; put 'MS02LjIsMy4xMUEyLjM0LDIuMzQsMCwwLDAsMTAuNzYsMjJabTcsNmExMS45MiwxMS45MiwwLDAsMS01LjgxLTEuNTFsLjI4LS4wNmEyLjM0LDIuMzQsMCwwLDAsMS41Ny0xLjc5LDE4LjQzLDE4LjQzLDAsMCwwLDctMy41LDIuMjksMi4yOSwwLDAsMCwzLS42MiwxNy40MSwxNy40MSwwLDAs'@; put 'MCw0LjMyLjU2bC41MywwQTEyLDEyLDAsMCwxLDE3Ljc1LDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUt'@; put 'LWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LjU4LDMyaC0xOGExLDEsMCwxLDAsMCwyaDE4YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxu'@; put 'ICAgICAgICAgICAgPHBhdGggZD0iTTE0LjcyLDkuODdhMi4yNSwyLjI1LDAsMCwxLS40NywxLjc3LDE2LDE2LDAsMCwwLDQuOTMsNS4yM2MuMzQuMjMuNjkuNDMsMSwuNjNhMi4yOCwyLjI4LDAsMCwxLDIuNTgtLjU3LDE2LjksMTYuOSwwLDAsMCwzLjExLTdBMTcsMTcsMCwwLDAsMTQuNzIs'@; put 'OS44N1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcuNzUsMmExNCwxNCwwLDAsMC0xNCwxNGMwLC40NSwwLC44OS4wNywxLjMzbDAsMGgwQTE0LDE0LDAsMSwwLDE3Ljc1LDJaTTI4LjEsMjEuMDlhMTcuNDEsMTcu'@; put 'NDEsMCwwLDEtNC4zMi0uNTYsMi4yOSwyLjI5LDAsMCwxLTMsLjYyLDE4LjQzLDE4LjQzLDAsMCwxLTcsMy41LDIuMzQsMi4zNCwwLDAsMS0xLjU3LDEuNzlsLS4yOS4wNmExMS45MywxMS45MywwLDAsMS0zLjM5LTIuOGwuNjYsMGEyLjMzLDIuMzMsMCwwLDEsNC4zNy0uNThBMTYuOTQsMTYu'@; put 'OTQsMCwwLDAsMTkuNzgsMjBhMi4zMiwyLjMyLDAsMCwxLS4xOC0xLjE3Yy0uNDItLjI0LS44NC0uNDktMS4yNS0uNzZBMTcuNTMsMTcuNTMsMCwwLDEsMTMsMTIuNDdhMi4zMSwyLjMxLDAsMCwxLTIuMjgtLjYzLDI3LjMxLDI3LjMxLDAsMCwwLTUsNC43NGMwLS4yLDAtLjM5LDAtLjU3YTEy'@; put 'LDEyLDAsMCwxLC4xNC0xLjczLDE4Ljc1LDE4Ljc1LDAsMCwxLDQuMi0zLjgsMi4yOCwyLjI4LDAsMCwxLDEuMS0yLjI1Yy0uMTItLjQzLS4yNC0uODYtLjMzLTEuMywwLS4xNCwwLS4yOS0uMTEtLjY0YTEyLDEyLDAsMCwxLDEuMzctLjg3Yy4xLjU5LjE0LjkuMjEsMS4yMXMuMi44NS4zMiwx'@; put 'LjI3bC4yNSwwQTIuMzMsMi4zMywwLDAsMSwxNCw4LjUzYTE4LjUxLDE4LjUxLDAsMCwxLDEyLjExLS4wN2MwLS4zMiwwLS42NSwwLTFoMGExMiwxMiwwLDAsMSwyLjYyLDMuODVoMHEtLjczLS40My0xLjQ4LS43OGExOC40LDE4LjQsMCwwLDEtMy4zOSw3LjM3LDIuMzMsMi4zMywwLDAsMSwu'@; put 'MzMsMS4xOSwyMiwyMiwwLDAsMCw1LC40NSwxMS44OCwxMS44OCwwLDAsMS0uNjEsMS41M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuNTgsMzJoLTE4YTEsMSwwLDEsMCwwLDJoMThhMSwxLDAsMCwwLDAtMloi'@; put 'IGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuNzMsMTUuNEgyNS41NmExOC44NywxOC44NywwLDAsMS0xLjYyLDIuNTIsMi4zMywyLjMzLDAsMCwxLC4zMywxLjE5LDIyLDIyLDAsMCww'@; put 'LDUsLjQ1LDExLjg4LDExLjg4LDAsMCwxLS42MSwxLjUzSDI4LjFhMTcuNDEsMTcuNDEsMCwwLDEtNC4zMi0uNTYsMi4yOSwyLjI5LDAsMCwxLTMsLjYyLDE4LjQzLDE4LjQzLDAsMCwxLTcsMy41LDIuMzQsMi4zNCwwLDAsMS0xLjU3LDEuNzlsLS4yOS4wNmExMS45MywxMS45MywwLDAsMS0z'@; put 'LjM5LTIuOGwuNjYsMGEyLjMzLDIuMzMsMCwwLDEsNC4zNy0uNThBMTYuOTQsMTYuOTQsMCwwLDAsMTkuNzgsMjBhMi4zMiwyLjMyLDAsMCwxLS4xOC0xLjE3Yy0uNDItLjI0LS44NC0uNDktMS4yNS0uNzZBMTcuNTMsMTcuNTMsMCwwLDEsMTMsMTIuNDdhMi4zMSwyLjMxLDAsMCwxLTIuMjgt'@; put 'LjYzLDI3LjMxLDI3LjMxLDAsMCwwLTUsNC43NGMwLS4yLDAtLjM5LDAtLjU3YTEyLDEyLDAsMCwxLC4xNC0xLjczLDE4Ljc1LDE4Ljc1LDAsMCwxLDQuMi0zLjgsMi4yOCwyLjI4LDAsMCwxLDEuMS0yLjI1Yy0uMTItLjQzLS4yNC0uODYtLjMzLTEuMywwLS4xNCwwLS4yOS0uMTEtLjY0YTEy'@; put 'LDEyLDAsMCwxLDEuMzctLjg3Yy4xLjU5LjE0LjkuMjEsMS4yMXMuMi44NS4zMiwxLjI3bC4yNSwwQTIuMzMsMi4zMywwLDAsMSwxNCw4LjUzYTE4LjU5LDE4LjU5LDAsMCwxLDYuMzktMUwyMywzQTE0LDE0LDAsMCwwLDMuNzUsMTZjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMEExNCwxNCww'@; put 'LDAsMCwzMS43NiwxNkMzMS43NiwxNS44LDMxLjc0LDE1LjYsMzEuNzMsMTUuNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTQuMjYsMTEuNjRhMTYsMTYsMCwwLDAsNC45Myw1LjIz'@; put 'Yy4zNC4yMy42OS40MywxLC42M2EyLjI4LDIuMjgsMCwwLDEsMi41OC0uNTcsMTcuMjksMTcuMjksMCwwLDAsMS0xLjU0aC0xLjZBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMTkuNTYsOWExNy4wOCwxNy4wOCwwLDAsMC00Ljg0Ljg4LDIuMjUsMi4yNSwwLDAsMS0uNDcsMS43N1oiIGNsYXNz'@; put 'PSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRB'@; put 'MS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi41OCwzMmgtMThhMSwxLDAsMSwwLDAsMmgxOGExLDEsMCwwLDAs'@; put 'MC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS41LDEzLjM1YTcuNTQsNy41NCwwLDAsMS0xLjUuMTUsNy40Niw3LjQ2LDAsMCwxLTMuMjgtLjc2LDE4LjU5LDE4LjU5LDAsMCwxLTIu'@; put 'NzgsNS4xOCwyLjMzLDIuMzMsMCwwLDEsLjMzLDEuMTksMjIsMjIsMCwwLDAsNSwuNDUsMTEuODgsMTEuODgsMCwwLDEtLjYxLDEuNTNIMjguMWExNy40MSwxNy40MSwwLDAsMS00LjMyLS41NiwyLjI5LDIuMjksMCwwLDEtMywuNjIsMTguNDMsMTguNDMsMCwwLDEtNywzLjUsMi4zNCwyLjM0'@; put 'LDAsMCwxLTEuNTcsMS43OWwtLjI5LjA2YTExLjkzLDExLjkzLDAsMCwxLTMuMzktMi44bC42NiwwYTIuMzMsMi4zMywwLDAsMSw0LjM3LS41OEExNi45NCwxNi45NCwwLDAsMCwxOS43OCwyMGEyLjMyLDIuMzIsMCwwLDEtLjE4LTEuMTdjLS40Mi0uMjQtLjg0LS40OS0xLjI1LS43NkExNy41'@; put 'MywxNy41MywwLDAsMSwxMywxMi40N2EyLjMxLDIuMzEsMCwwLDEtMi4yOC0uNjMsMjcuMzEsMjcuMzEsMCwwLDAtNSw0Ljc0YzAtLjIsMC0uMzksMC0uNTdhMTIsMTIsMCwwLDEsLjE0LTEuNzMsMTguNzUsMTguNzUsMCwwLDEsNC4yLTMuOCwyLjI4LDIuMjgsMCwwLDEsMS4xLTIuMjVjLS4x'@; put 'Mi0uNDMtLjI0LS44Ni0uMzMtMS4zLDAtLjE0LDAtLjI5LS4xMS0uNjRhMTIsMTIsMCwwLDEsMS4zNy0uODdjLjEuNTkuMTQuOS4yMSwxLjIxcy4yLjg1LjMyLDEuMjdsLjI1LDBBMi4zMywyLjMzLDAsMCwxLDE0LDguNTNhMTguNTYsMTguNTYsMCwwLDEsOC42NS0uODcsNy40NSw3LjQ1LDAs'@; put 'MCwxLC40MS00LjU5QTE0LDE0LDAsMCwwLDMuNzUsMTZjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMGExNCwxNCwwLDEsMCwyNy42OC00WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNC43'@; put 'Miw5Ljg3YTIuMjUsMi4yNSwwLDAsMS0uNDcsMS43NywxNiwxNiwwLDAsMCw0LjkzLDUuMjNjLjM0LjIzLjY5LjQzLDEsLjYzYTIuMjgsMi4yOCwwLDAsMSwyLjU4LS41NywxNywxNywwLDAsMCwyLjYxLTUsNy41Miw3LjUyLDAsMCwxLTIuMTYtMi42N0ExNywxNywwLDAsMCwxNC43Miw5Ljg3'@; put 'WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFk'@; put 'Z2UiLz5cbiAgICAgICAgJyksYi5DbHJTaGFwZU5ldHdvcmtTZXR0aW5ncz0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTAuODUsMjcuNDRhMi4yOSwyLjI5LDAsMCwwLDEuNzQtMS42OGMuNTQtLjE0LDEuMDYtLjMyLDEuNTktLjUxdi0xLjJhMi43NywyLjc3LDAsMCwxLC4wNi0uNTEs'@; put 'MTcuNDQsMTcuNDQsMCwwLDEtMS44Mi42MiwyLjI4LDIuMjgsMCwwLDAtNC4yOC42M2wtLjQ1LDBoMGExMS45MywxMS45MywwLDAsMS0yLjg4LTcuMjcsMTcuNzksMTcuNzksMCwwLDEsNS00LjcyLDIuMjMsMi4yMywwLDAsMCwyLjI5LjU2LDE4LjUyLDE4LjUyLDAsMCwwLDQuNDcsNSwyLjc0'@; put 'LDIuNzQsMCwwLDEsLjIxLS4yNGwuOTUtLjkxYTE2LjksMTYuOSwwLDAsMS00LjM1LTQuNzksMi4yNywyLjI3LDAsMCwwLC4zNS0xLjJjMC0uMDcsMC0uMTQsMC0uMjJBMTcuNjksMTcuNjksMCwwLDEsMjUsMTFhMTcuNDksMTcuNDksMCwwLDEtMS4xNSwzLjM0bC4xOSwwaDEuNTZhMTksMTks'@; put 'MCwwLDAsLjkxLTIuNzJjLjQzLjE5Ljg0LjQxLDEuMjYuNjRhMTEuOTQsMTEuOTQsMCwwLDEsMSw0LjA5bDAsMEEyLjc3LDIuNzcsMCwwLDEsMzAsMTZhMi43MywyLjczLDAsMCwxLC42OC4xQTE0LDE0LDAsMSwwLDE2LjA4LDMxYTIuNzIsMi43MiwwLDAsMSwwLTJBMTEuOTMsMTEuOTMsMCww'@; put 'LDEsMTAuODUsMjcuNDRaTTE2Ljc2LDVhMTIsMTIsMCwwLDEsOC42MSwzLjY2YzAsLjI1LDAsLjUxLS4wOC43NmExOS4yMSwxOS4yMSwwLDAsMC0xMi4zNS4xMUEyLjI4LDIuMjgsMCwwLDAsMTEuNzQsOWExNywxNywwLDAsMS0uNjEtMi41M0ExMS45MiwxMS45MiwwLDAsMSwxNi43Niw1Wk05'@; put 'LjY2LDcuMzZhMTguNzIsMTguNzIsMCwwLDAsLjQ5LDEuOTIsMi4yOCwyLjI4LDAsMCwwLTEuMDcsMS45M3MwLC4xLDAsLjE1QTE5LjQ1LDE5LjQ1LDAsMCwwLDUsMTQuNzksMTIsMTIsMCwwLDEsOS42Niw3LjM2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi'@; put 'IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjUsMjEuMTlBMy44NCwzLjg0LDAsMSwwLDI4Ljg4LDI1LDMuODcsMy44NywwLDAsMCwyNSwyMS4xOVptMCw2LjA4QTIuMjQsMi4yNCwwLDEsMSwyNy4yOCwyNSwyLjI2LDIuMjYsMCwwLDEsMjUsMjcuMjdaIiBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zNC4xNywyNC4xNGExLjE0LDEuMTQsMCwwLDAtLjctMS4xbC0xLjU2LS40NnEtLjExLS4zMi0uMjYtLjYzbC43Mi0xLjMzYTEuMTQsMS4xNCwwLDAsMC0uMjEtMS4zNGwtMS4zNC0xLjMyYTEuMTQsMS4x'@; put 'NCwwLDAsMC0xLjM0LS4ybC0xLjM0LjcxYTcuMjgsNy4yOCwwLDAsMC0uNjctLjI4TDI3LDE2LjcxYTEuMTQsMS4xNCwwLDAsMC0xLjA4LS43NkgyNGExLjE0LDEuMTQsMCwwLDAtMS4wOC44bC0uNDQsMS40M2E3LjMyLDcuMzIsMCwwLDAtLjY4LjI4bC0xLjMyLS43YTEuMTQsMS4xNCwwLDAs'@; put 'MC0xLjMzLjE5bC0xLjM3LDEuMzFhMS4xNCwxLjE0LDAsMCwwLS4yMSwxLjM1bC43LDEuMjhxLS4xNi4zMi0uMjguNjVMMTYuNTgsMjNhMS4xMywxLjEzLDAsMCwwLS44MSwxLjA5djEuODdBMS4xNCwxLjE0LDAsMCwwLDE2LjU5LDI3bDEuNDcuNDRxLjEyLjMyLjI4LjY0bC0uNzIsMS4zNWEx'@; put 'LjE0LDEuMTQsMCwwLDAsLjIsMS4zNWwxLjM0LDEuMzJhMS4xNCwxLjE0LDAsMCwwLDEuMzQuMmwxLjM3LS43MnEuMzEuMTQuNjMuMjZsLjQ0LDEuNDdhMS4xNCwxLjE0LDAsMCwwLDEuMDkuOGgxLjlBMS4xNCwxLjE0LDAsMCwwLDI3LDMzLjMxbC40NC0xLjQ3Yy4yMS0uMDcuNDItLjE2LjYy'@; put 'LS4yNWwxLjM4LjczYTEuMTQsMS4xNCwwLDAsMCwxLjMzLS4ybDEuMzQtMS4zMmExLjE0LDEuMTQsMCwwLDAsLjIxLTEuMzVsLS43My0xLjM0cS4xNC0uMy4yNS0uNmwxLjUtLjQ0QTEuMTMsMS4xMywwLDAsMCwzNC4xNywyNlptLTEuNiwxLjUtMiwuNTgtLjEyLjQyQTUuNTUsNS41NSwwLDAs'@; put 'MSwzMCwyNy43M2wtLjIxLjM4LDEsMS43OS0uODYuODQtMS44Mi0xLS4zNy4yYTUuNzgsNS43OCwwLDAsMS0xLjEyLjQ2bC0uNDIuMTItLjU5LDJIMjQuMzhsLS41OS0xLjk1LS40Mi0uMTJBNS44Niw1Ljg2LDAsMCwxLDIyLjI0LDMwbC0uMzctLjItMS44MSwxLS44Ni0uODUsMS0xLjgyLS4y'@; put 'Mi0uMzhhNS42LDUuNiwwLDAsMS0uNDktMS4xM2wtLjEzLS40MS0xLjk1LS41OFYyNC40MmwxLjk0LS41OC4xMi0uNDFhNS41Myw1LjUzLDAsMCwxLC40OS0xLjE0bC4yMi0uMzktMS0xLjczLjg3LS44NCwxLjc3Ljk0LjM4LS4yMWE1LjgsNS44LDAsMCwxLDEuMTctLjQ5bC40MS0uMTIuNTkt'@; put 'MS45MWgxLjIzbC41OCwxLjkuNDEuMTJhNS43OSw1Ljc5LDAsMCwxLDEuMTYuNDhsLjM4LjIxLDEuOC0uOTUuODYuODUtMSwxLjc3LjIxLjM4YTUuNTMsNS41MywwLDAsMSwuNDcsMS4xM2wuMTIuNDIsMS45My41N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0z'@; put 'IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTM0LDIzLjYzLDMyLDIzYTcuMDYsNy4wNiwwLDAsMC0uNTgtMS40MWwxLTEuODZhLjM3LjM3LDAsMCwwLS4wNy0uNDRMMzAuOSwxNy44NmEuMzcuMzcsMCwwLDAtLjQ0LS4wN2wtMS44NSwxYTcsNywwLDAsMC0xLjQzLS42MWwtLjYxLTJhLjM3'@; put 'LjM3LDAsMCwwLS4zNi0uMjVoLTJhLjM3LjM3LDAsMCwwLS4zNS4yNmwtLjYxLDJhNyw3LDAsMCwwLTEuNDQuNjFMMjAsMTcuOGEuMzcuMzcsMCwwLDAtLjQ0LjA3TDE4LDE5LjMxYS4zNy4zNywwLDAsMC0uMDcuNDRsMSwxLjgyQTcsNywwLDAsMCwxOC4zNSwyM2wtMiwuNjFhLjM3LjM3LDAs'@; put 'MCwwLS4yNi4zNXYyYS4zNy4zNywwLDAsMCwuMjYuMzVsMiwuNjFBNyw3LDAsMCwwLDE5LDI4LjM3bC0xLDEuOWEuMzcuMzcsMCwwLDAsLjA3LjQ0bDEuNDUsMS40NWEuMzcuMzcsMCwwLDAsLjQ0LjA3bDEuODctMWE3LjA2LDcuMDYsMCwwLDAsMS4zOS41N2wuNjEsMmEuMzcuMzcsMCwwLDAs'@; put 'LjM1LjI2aDJhLjM3LjM3LDAsMCwwLC4zNS0uMjZsLjYxLTJhNyw3LDAsMCwwLDEuMzgtLjU3bDEuODksMWEuMzcuMzcsMCwwLDAsLjQ0LS4wN2wxLjQ1LTEuNDVhLjM3LjM3LDAsMCwwLC4wNy0uNDRsLTEtMS44OEE3LDcsMCwwLDAsMzEuOTUsMjdsMi0uNjFhLjM3LjM3LDAsMCwwLC4yNi0u'@; put 'MzVWMjRBLjM3LjM3LDAsMCwwLDM0LDIzLjYzWm0tOC44Myw0LjcyQTMuMzMsMy4zMywwLDEsMSwyOC41MywyNSwzLjMzLDMuMzMsMCwwLDEsMjUuMTksMjguMzRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjg1'@; put 'LDI3LjQ0YTIuMjksMi4yOSwwLDAsMCwxLjc0LTEuNjgsMTkuNzEsMTkuNzEsMCwwLDAsMS44OS0uNlYyMy45NWEyLDIsMCwwLDEsLjA5LS41NSwxNy40MiwxNy40MiwwLDAsMS0yLjE3Ljc4LDIuMjgsMi4yOCwwLDAsMC00LjI4LjYzbC0uNDUsMGgwYTExLjkzLDExLjkzLDAsMCwxLTIuODgt'@; put 'Ny4yNywxNy43OSwxNy43OSwwLDAsMSw1LTQuNzIsMi4yMywyLjIzLDAsMCwwLDIuMjkuNTYsMTguNTIsMTguNTIsMCwwLDAsNC42NSw1LjA5LDEuOTMsMS45MywwLDAsMSwuMjMtLjMybC44OS0uODdhMTYuODksMTYuODksMCwwLDEtNC40OS00Ljg5LDIuMjcsMi4yNywwLDAsMCwuMzUtMS4y'@; put 'YzAtLjA3LDAtLjE0LDAtLjIyQTE3LjY5LDE3LjY5LDAsMCwxLDI1LDExYTE3LjQ5LDE3LjQ5LDAsMCwxLTEuMTUsMy4zNSwxLjk0LDEuOTQsMCwwLDEsLjMxLS4wNWgxLjQ1YTE5LjA2LDE5LjA2LDAsMCwwLC45LTIuN2MuNDMuMTkuODQuNDEsMS4yNi42NGExMS45MywxMS45MywwLDAsMSwx'@; put 'LDQuNjNsMS0uNTFhMiwyLDAsMCwxLC45Mi0uMjNoLjA4QTE0LDE0LDAsMSwwLDE2LjQ0LDMxYTEuOTQsMS45NCwwLDAsMSwuMTItMS40NmwuMjgtLjUzaC0uMDdBMTEuOTEsMTEuOTEsMCwwLDEsMTAuODUsMjcuNDRaTTE2Ljc2LDVhMTIsMTIsMCwwLDEsOC42MSwzLjY2YzAsLjI1LDAsLjUx'@; put 'LS4wOC43NmExOS4yMSwxOS4yMSwwLDAsMC0xMi4zNS4xMUEyLjI4LDIuMjgsMCwwLDAsMTEuNzQsOWExNywxNywwLDAsMS0uNjEtMi41M0ExMS45MiwxMS45MiwwLDAsMSwxNi43Niw1Wk05LjY2LDcuMzZhMTguNzIsMTguNzIsMCwwLDAsLjQ5LDEuOTIsMi4yOCwyLjI4LDAsMCwwLTEuMDcs'@; put 'MS45M3MwLC4xLDAsLjE1QTE5LjQ1LDE5LjQ1LDAsMCwwLDUsMTQuNzksMTIsMTIsMCwwLDEsOS42Niw3LjM2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgJyksYi5DbHJTaGFwZU5ldHdvcmtTd2l0Y2g9KDAscC5jbHJJY29uU1ZHKSgnPHBh'@; put 'dGggZD0iTTMzLjkxLDE4LjQ3LDMwLjc4LDguNDFBMiwyLDAsMCwwLDI4Ljg3LDdINy4xM0EyLDIsMCwwLDAsNS4yMiw4LjQxTDIuMDksMTguNDhhMiwyLDAsMCwwLS4wOS41OVYyN2EyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTkuMDZBMiwyLDAsMCwwLDMzLjkxLDE4LjQ3Wk0z'@; put 'MiwyN0g0VjE5LjA2TDcuMTMsOUgyOC44N0wzMiwxOS4wNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNy4xMiIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy'@; put 'LWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMi4xMiIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNy4xMSIgeT0iMjIiIHdp'@; put 'ZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyMi4xIiB5PSIyMiIgd2lkdGg9IjEuOCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'NSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3LjEiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNi4yMyIgeT0iMTgiIHdpZHRoPSIyMy42OSIgaGVpZ2h0'@; put 'PSIxLjQiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNy4xMiIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFs'@; put 'ZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMi4xMiIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNy4xMSIgeT0i'@; put 'MjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyMi4xIiB5PSIyMiIgd2lkdGg9IjEuOCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3LjEiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVk'@; put 'IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNi4yMyIgeT0iMTgiIHdpZHRoPSIyMy42OSIgaGVpZ2h0PSIxLjQiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjkxLDE4LjQ3'@; put 'LDMzLDE1LjRIMzAuODZMMzIsMTkuMDZWMjdINFYxOS4wNkw3LjEzLDlIMTkuNTZsMS4xNS0ySDcuMTNBMiwyLDAsMCwwLDUuMjIsOC40MUwyLjA5LDE4LjQ4YTIsMiwwLDAsMC0uMDkuNTlWMjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE5LjA2QTIsMiwwLDAsMCwzMy45MSwx'@; put 'OC40N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC03LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43'@; put 'OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC04LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNy4xMiIgeT0iMjIiIHdpZHRoPSIx'@; put 'LjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg'@; put 'Y2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE3LjExIiB5PSIyMiIgd2lkdGg9IjEuOCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAg'@; put 'ICA8cmVjdCB4PSIyMi4xIiB5PSIyMiIgd2lkdGg9IjEuOCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNy4xIiB5PSIyMiIgd2lkdGg9IjEuOCIgaGVpZ2h0PSIz'@; put 'IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI2LjIzIiB5PSIxOCIgd2lkdGg9IjIzLjY5IiBoZWlnaHQ9IjEuNCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtNi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjkxLDE4LjQ3bC0xLjY1LTUuMzJhNy40OSw3LjQ5LDAsMCwxLTIsLjMzTDMyLDE5LjA2VjI3SDRWMTkuMDZMNy4xMyw5aDE2YTcuNDUsNy40NSwwLDAsMS0uNTUtMkg3LjEzQTIsMiwwLDAsMCw1LjIyLDgu'@; put 'NDFMMi4wOSwxOC40OGEyLDIsMCwwLDAtLjA5LjU5VjI3YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxOS4wNkEyLDIsMCwwLDAsMzMuOTEsMTguNDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQiIC8+XG4gICAgICAg'@; put 'ICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuOTEsMTguNDcsMzAuNzgsOC40MUEyLDIsMCwwLDAs'@; put 'MjguODcsN0g3LjEzQTIsMiwwLDAsMCw1LjIyLDguNDFMMi4wOSwxOC40OGEyLDIsMCwwLDAtLjA5LjU5VjI3YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxOS4wNkEyLDIsMCwwLDAsMzMuOTEsMTguNDdaTTguOTIsMjVINy4xMlYyMmgxLjhabTUsMGgtMS44VjIyaDEuOFptNSww'@; put 'aC0xLjhWMjJoMS44Wm01LDBIMjIuMVYyMmgxLjhabTUsMEgyNy4xVjIyaDEuOFpNMzEsMTkuNEg1VjE4SDMxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMywxNS40SDIyLjIzQTMuNjgsMy42OCwwLDAsMSwxOSw5'@; put 'Ljg5TDIwLjcxLDdINy4xM0EyLDIsMCwwLDAsNS4yMiw4LjQxTDIuMDksMTguNDhhMiwyLDAsMCwwLS4wOS41OVYyN2EyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTkuMDZhMiwyLDAsMCwwLS4wOS0uNTlaTTguOTIsMjVINy4xMlYyMmgxLjhabTUsMGgtMS44VjIyaDEuOFptNSww'@; put 'aC0xLjhWMjJoMS44Wm01LDBIMjIuMVYyMmgxLjhabTUsMEgyNy4xVjIyaDEuOFpNMzEsMTkuNEg1VjE4SDMxWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEz'@; put 'LDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFs'@; put 'ZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjI2LDEzLjE1QTcuNDksNy40OSwwLDAsMSwyMi41Nyw3SDcuMTNBMiwyLDAsMCwwLDUuMjIsOC40MUwyLjA5LDE4LjQ4YTIsMiwwLDAsMC0uMDkuNTlWMjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE5LjA2YTIsMiww'@; put 'LDAsMC0uMDktLjU5Wk04LjkyLDI1SDcuMTJWMjJoMS44Wm01LDBoLTEuOFYyMmgxLjhabTUsMGgtMS44VjIyaDEuOFptNSwwSDIyLjFWMjJoMS44Wm01LDBIMjcuMVYyMmgxLjhaTTMxLDE5LjRINVYxOEgzMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgt'@; put 'MS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICcpLGIuQ2xyU2hhcGVSb3V0ZXI9KDAscC5jbHJJ'@; put 'Y29uU1ZHKSgnPHBhdGggZD0iTTE4LDE0Ljg3bDUuMTEtNS4xNGExLDEsMCwxLDAtMS40Mi0xLjQxTDE5LDExVjMuMzNhMSwxLDAsMCwwLTIsMFYxMUwxNC4zMSw4LjMyYTEsMSwwLDEsMC0xLjQyLDEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5c'@; put 'biAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyMS4xM2wtNS4xMSw1LjE0YTEsMSwwLDAsMCwxLjQyLDEuNDFMMTcsMjV2Ny42OWExLDEsMCwwLDAsMiwwVjI1bDIuNjksMi43MWExLDEsMCwwLDAsMS40Mi0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIi'@; put 'IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguODUsMTIuODlhMSwxLDAsMCwwLTEuNDEsMS40MkwzMC4xNSwxN0gyMi40NmExLDEsMCwxLDAsMCwyaDcuNjlsLTIuNzEsMi42OWExLDEsMCwwLDAsMS40MSwxLjQyTDM0LDE4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNS44NSwxOWg3LjY5YTEsMSwwLDAsMCwwLTJINS44NWwyLjcxLTIuNjlhMSwxLDAsMSwwLTEuNDEtMS40MkwyLDE4bDUuMTQsNS4xMWExLDEsMCwxLDAsMS40MS0xLjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMjEuMTNsLTUuMTEsNS4xNGExLDEsMCwwLDAsMS40MiwxLjQxTDE3LDI1djcuNjlhMSwxLDAsMCwwLDIsMFYyNWwyLjY5LDIuNzFhMSwxLDAsMCwwLDEuNDItMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy'@; put 'dGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTUuODUsMTloNy42OWExLDEsMCwwLDAsMC0ySDUuODVsMi43MS0yLjY5YTEsMSwwLDEsMC0xLjQxLTEuNDJMMiwxOGw1LjE0LDUuMTFhMSwxLDAsMSwwLDEuNDEtMS40MloiIGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjM4LDE1LjRIMjguNTRMMzAuMTUsMTdIMjIuNDZhMSwxLDAsMSwwLDAsMmg3LjY5bC0yLjcxLDIuNjlhMSwxLDAsMCwwLDEuNDEsMS40Mkwz'@; put 'NCwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDE0Ljg3bDEuMTUtMS4xNi0uMS0uMTVBMy42OCwzLjY4LDAsMCwxLDE5LDEwVjMuMzNhMSwxLDAsMCwwLTIsMFYxMUwx'@; put 'NC4zMSw4LjMyYTEsMSwwLDEsMC0xLjQyLDEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gz'@; put 'My42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRo'@; put 'IGQ9Ik0xOCwxNC44N2w1LjExLTUuMTRhMSwxLDAsMSwwLTEuNDItMS40MUwxOSwxMVYzLjMzYTEsMSwwLDAsMC0yLDBWMTFMMTQuMzEsOC4zMmExLDEsMCwxLDAtMS40MiwxLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAv'@; put 'PlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIxLjEzbC01LjExLDUuMTRhMSwxLDAsMCwwLDEuNDIsMS40MUwxNywyNXY3LjY5YTEsMSwwLDAsMCwyLDBWMjVsMi42OSwyLjcxYTEsMSwwLDAsMCwxLjQyLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguODUsMTIuODlhMSwxLDAsMCwwLTEuNDEsMS40MkwzMC4xNSwxN0gyMi40NmExLDEsMCwxLDAsMCwyaDcuNjlsLTIuNzEsMi42OWExLDEsMCwwLDAsMS40MSwxLjQyTDM0LDE4WiIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTUuODUsMTloNy42OWExLDEsMCwwLDAsMC0ySDUuODVsMi43MS0yLjY5YTEsMSwwLDEsMC0xLjQxLTEuNDJMMiwxOGw1LjE0LDUuMTFhMSwxLDAsMSwwLDEuNDEtMS40'@; put 'MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdl'@; put 'ZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxLjY3YTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDE4LDEuNjdaTTEzLjg2LDkuOTJhLjguOCwwLDAsMSwxLjEzLDBsMi4yMSwyLjE5VjUuOTNhLjguOCwwLDAsMSwxLjYsMHY2LjE4TDIxLDkuOTJhLjgu'@; put 'OCwwLDEsMSwxLjEzLDEuMTRMMTgsMTUuMTVsLTQuMTQtNC4xQS44LjgsMCwwLDEsMTMuODYsOS45MlpNMTAuMzIsMjEuNzRhLjguOCwwLDAsMS0xLjEzLDBMNSwxNy42N2w0LjE5LTQuMDlhLjguOCwwLDEsMSwxLjEyLDEuMTRsLTIuMiwyLjE0aDYuMjdhLjguOCwwLDAsMSwwLDEuNkg4LjEx'@; put 'bDIuMiwyLjE1QS44LjgsMCwwLDEsMTAuMzIsMjEuNzRabTExLjgyLDMuNjdhLjguOCwwLDAsMS0xLjEzLDBMMTguOCwyMy4yM1YyOS40YS44LjgsMCwwLDEtMS42LDBWMjMuMjNMMTUsMjUuNDJhLjguOCwwLDEsMS0xLjEzLTEuMTRMMTgsMjAuMThsNC4xNCw0LjFBLjguOCwwLDAsMSwyMi4x'@; put 'NCwyNS40MVptNC42Ny0zLjY2YS44LjgsMCwxLDEtMS4xMi0xLjE0bDIuMi0yLjE1SDIxLjYzYS44LjgsMCwwLDEsMC0xLjZoNi4yN2wtMi4yLTIuMTRhLjguOCwwLDEsMSwxLjEyLTEuMTRMMzEsMTcuNjdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAg'@; put 'ICAgICAgICAgPHBhdGggZD0iTTMzLjgyLDE1LjM5SDI4LjY4TDMxLDE3LjY3bC00LjE5LDQuMDlhLjguOCwwLDEsMS0xLjEyLTEuMTRsMi4yLTIuMTVIMjEuNjNhLjguOCwwLDAsMSwwLTEuNmg2LjI3bC0xLjUtMS40N0gyMi4yM2EzLjY4LDMuNjgsMCwwLDEtMy0xLjUxTDE4LDE1LjE1bC00'@; put 'LjE0LTQuMUEuOC44LDAsMSwxLDE1LDkuOTJsMi4yMSwyLjE5VjUuOTNhLjguOCwwLDAsMSwxLjYsMHY0LjQ5QTMuNjUsMy42NSwwLDAsMSwxOSw5Ljg5bDQuMjItNy4zMUExNiwxNiwwLDEsMCwzNCwxNy42NywxNiwxNiwwLDAsMCwzMy44MiwxNS4zOVptLTIzLjUsNi4zNWEuOC44LDAsMCwx'@; put 'LTEuMTMsMEw1LDE3LjY3bDQuMTktNC4wOWEuOC44LDAsMSwxLDEuMTIsMS4xNGwtMi4yLDIuMTRoNi4yN2EuOC44LDAsMCwxLDAsMS42SDguMTFsMi4yLDIuMTVBLjguOCwwLDAsMSwxMC4zMiwyMS43NFptMTEuODIsMy42N2EuOC44LDAsMCwxLTEuMTMsMEwxOC44LDIzLjIzVjI5LjRhLjgu'@; put 'OCwwLDAsMS0xLjYsMFYyMy4yM0wxNSwyNS40MmEuOC44LDAsMSwxLTEuMTMtMS4xNEwxOCwyMC4xOGw0LjE0LDQuMUEuOC44LDAsMCwxLDIyLjE0LDI1LjQxWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAg'@; put 'IDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29s'@; put 'aWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjIyLDEyLjc2QTcuNDksNy40OSwwLDAsMSwyMy4zMiwyLjZhMTYsMTYsMCwxLDAsOS45LDEwLjE3Wk0xMy44Niw5LjkyYS44LjgsMCwwLDEsMS4xMywwbDIuMjEsMi4xOVY1LjkzYS44'@; put 'LjgsMCwwLDEsMS42LDB2Ni4xOEwyMSw5LjkyYS44LjgsMCwxLDEsMS4xMywxLjE0TDE4LDE1LjE1bC00LjE0LTQuMUEuOC44LDAsMCwxLDEzLjg2LDkuOTJaTTEwLjMyLDIxLjc0YS44LjgsMCwwLDEtMS4xMywwTDUsMTcuNjdsNC4xOS00LjA5YS44LjgsMCwxLDEsMS4xMiwxLjE0bC0yLjIs'@; put 'Mi4xNGg2LjI3YS44LjgsMCwwLDEsMCwxLjZIOC4xMWwyLjIsMi4xNUEuOC44LDAsMCwxLDEwLjMyLDIxLjc0Wm0xMS44MiwzLjY3YS44LjgsMCwwLDEtMS4xMywwTDE4LjgsMjMuMjNWMjkuNGEuOC44LDAsMCwxLTEuNiwwVjIzLjIzTDE1LDI1LjQyYS44LjgsMCwxLDEtMS4xMy0xLjE0TDE4'@; put 'LDIwLjE4bDQuMTQsNC4xQS44LjgsMCwwLDEsMjIuMTQsMjUuNDFabTQuNjctMy42NmEuOC44LDAsMSwxLTEuMTItMS4xNGwyLjItMi4xNUgyMS42M2EuOC44LDAsMCwxLDAtMS42aDYuMjdsLTIuMi0yLjE0YS44LjgsMCwxLDEsMS4xMi0xLjE0TDMxLDE3LjY3WiIgY2xhc3M9ImNsci1pLXNv'@; put 'bGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAg'@; put 'JyksYi5DbHJTaGFwZVZNPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMSw1SDI1VjhoMlY1YTIsMiwwLDAsMC0yLTJIMTFBMiwyLDAsMCwwLDksNXY2Ljg1aDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9'@; put 'Ik0zMCwxMEgxN3YyaDh2NmgyVjEyaDNWMjZIMjJWMTdhMiwyLDAsMCwwLTItMkg2YTIsMiwwLDAsMC0yLDJWMzFhMiwyLDAsMCwwLDIsMkgyMGEyLDIsMCwwLDAsMi0yVjI4aDhhMiwyLDAsMCwwLDItMlYxMkEyLDIsMCwwLDAsMzAsMTBaTTYsMzFWMTdIMjB2OUgxNlYyMEgxNHY2YTIsMiww'@; put 'LDAsMCwyLDJoNHYzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEsNUgyMS44N0wyMywzSDExQTIsMiwwLDAsMCw5LDV2Ni44NWgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNS4wMSIgeT0iMTUuNCIgd2lkdGg9IjEuOTkiIGhlaWdodD0iMi42IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAg'@; put 'IDxwYXRoIGQ9Ik0zMCwxNS40VjI2SDIyVjE3YTIsMiwwLDAsMC0yLTJINmEyLDIsMCwwLDAtMiwyVjMxYTIsMiwwLDAsMCwyLDJIMjBhMiwyLDAsMCwwLDItMlYyOGg4YTIsMiwwLDAsMCwyLTJWMTUuNFpNNiwzMVYxN0gyMHY5SDE2VjIwSDE0djZhMiwyLDAsMCwwLDIsMmg0djNaIiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNywxMHYyaDEuNTdBMy42NywzLjY3LDAsMCwxLDE5LDEwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEsNUgyMi41N2E3LjQ1LDcuNDUsMCwwLDEsLjU1LTJIMTFBMiwyLDAsMCwwLDksNXY2Ljg1aDJaIiBjbGFzcz0iY2xyLWkt'@; put 'b3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWgwVjI2SDIyVjE3YTIsMiwwLDAsMC0yLTJINmEyLDIsMCwwLDAtMiwyVjMxYTIsMiwwLDAsMCwyLDJIMjBhMiwyLDAsMCwwLDItMlYyOGg4YTIsMiww'@; put 'LDAsMCwyLTJWMTMuMjJBNy40OSw3LjQ5LDAsMCwxLDMwLDEzLjVaTTYsMzFWMTdIMjB2OUgxNlYyMEgxNHY2YTIsMiwwLDAsMCwyLDJoNHYzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGgg'@; put 'ZD0iTTE3LDEyaDh2NmgyVjEyLjg3QTcuNTIsNy41MiwwLDAsMSwyMy42NiwxMEgxN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy41OSwxMmEzLjYsMy42LDAsMCwxLDMuNi0zLjZIMjdWNWEyLDIsMCwwLDAtMi0ySDExQTIsMiwwLDAsMCw5LDV2OC40aDQuNTla'@; put 'IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEwSDE3LjE5YTIsMiwwLDAsMC0yLDJ2MS40SDIwQTMuNiwzLjYsMCwwLDEsMjMuNiwxN3Y4SDIyVjE3YTIsMiwwLDAsMC0yLTJINmEyLDIsMCwwLDAtMiwyVjMxYTIs'@; put 'MiwwLDAsMCwyLDJIMjBhMiwyLDAsMCwwLDItMlYyOS42SDE3LjE5YTMuNiwzLjYsMCwwLDEtMy42LTMuNlYyMGgxLjZ2NmEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTJBMiwyLDAsMCwwLDMwLDEwWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5c'@; put 'biAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy41OSwxMmEzLjYsMy42LDAsMCwxLDMuNi0zLjZoMi43MkwyMywzSDExQTIsMiwwLDAsMCw5LDV2OC40aDQuNTlaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAg'@; put 'PHBhdGggZD0iTTE3LjE5LDEwYTIsMiwwLDAsMC0yLDJ2MS40SDE5QTMuNjgsMy42OCwwLDAsMSwxOSwxMFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuMjEsMTUuNEEzLjU1LDMu'@; put 'NTUsMCwwLDEsMjMuNiwxN3Y4SDIyVjE3YTIsMiwwLDAsMC0yLTJINmEyLDIsMCwwLDAtMiwyVjMxYTIsMiwwLDAsMCwyLDJIMjBhMiwyLDAsMCwwLDItMlYyOS42SDE3LjE5YTMuNiwzLjYsMCwwLDEtMy42LTMuNlYyMGgxLjZ2NmEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTUu'@; put 'NFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5'@; put 'LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy41OSwxMmEzLjYsMy42LDAsMCwxLDMuNi0zLjZI'@; put 'MjIuOUE3LjQ1LDcuNDUsMCwwLDEsMjMuMTMsM0gxMUEyLDIsMCwwLDAsOSw1djguNGg0LjU5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjQ5LDcuNDksMCwwLDEsMjMu'@; put 'NjYsMTBIMTcuMTlhMiwyLDAsMCwwLTIsMnYxLjRIMjBBMy42LDMuNiwwLDAsMSwyMy42LDE3djhIMjJWMTdhMiwyLDAsMCwwLTItMkg2YTIsMiwwLDAsMC0yLDJWMzFhMiwyLDAsMCwwLDIsMkgyMGEyLDIsMCwwLDAsMi0yVjI5LjZIMTcuMTlhMy42LDMuNiwwLDAsMS0zLjYtMy42VjIwaDEu'@; put 'NnY2YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxMy4yMkE3LjQ5LDcuNDksMCwwLDEsMzAsMTMuNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1'@; put 'IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICcpLGIuQ2xyU2hhcGVWTVdBcHA9KDAscC5jbHJJY29uU1ZHKSgnPHBvbHlnb24gcG9pbnRzPSIyOCAyMiAzMCAyMiAzMCAzMCAyMiAzMCAyMiAy'@; put 'OCAyMCAyOCAyMCAzMiAzMiAzMiAzMiAyMCAyOCAyMCAyOCAyMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjE0IDMwIDYgMzAgNiAyMiA4IDIyIDggMjAgNCAyMCA0IDMyIDE2IDMyIDE2IDI4IDE0'@; put 'IDI4IDE0IDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAxNCA2IDE0IDYgNiAxNCA2IDE0IDggMTYgOCAxNiA0IDQgNCA0IDE2IDggMTYgOCAxNCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy'@; put 'LWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjIwIDQgMjAgOCAyMiA4IDIyIDYgMzAgNiAzMCAxNCAyOCAxNCAyOCAxNiAzMiAxNiAzMiA0IDIwIDQiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAg'@; put 'ICAgICAgPHJlY3QgeD0iMTEiIHk9IjExIiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE5IiB5PSIxMSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxp'@; put 'bmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTkiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTkiIHk9IjE5IiB3aWR0'@; put 'aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMjggMjIgMzAgMjIgMzAgMzAgMjIgMzAgMjIgMjggMjAgMjggMjAgMzIgMzIgMzIgMzIgMjAgMjggMjAgMjggMjIiIGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxNCAzMCA2IDMwIDYgMjIgOCAyMiA4IDIwIDQgMjAgNCAzMiAxNiAzMiAxNiAyOCAxNCAyOCAxNCAzMCIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjggMTQgNiAxNCA2IDYgMTQgNiAxNCA4IDE2IDggMTYgNCA0IDQgNCAxNiA4IDE2IDggMTQiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjExIiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxy'@; put 'ZWN0IHg9IjExIiB5PSIxOSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxOSIgeT0iMTkiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1LDE1LjRIMjIuMjNBMy42OSwzLjY5LDAsMCwxLDE5LDEzLjU2bDAtLjFWMTdoNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC03LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIyMi40NSA0IDIwIDQgMjAgOCAyMC4xNCA4IDIyLjQ1IDQiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC04LS1hbGVydGVkIiAvPlxuICAgICAg'@; put 'ICAgICAgPHJlY3QgeD0iMjgiIHk9IjE1LjQiIHdpZHRoPSI0IiBoZWlnaHQ9IjAuNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEu'@; put 'MjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEwLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAv'@; put 'PlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIyOCAyMiAzMCAyMiAzMCAzMCAyMiAzMCAyMiAyOCAyMCAyOCAyMCAzMiAzMiAzMiAzMiAyMCAyOCAyMCAyOCAyMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAg'@; put 'ICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxNCAzMCA2IDMwIDYgMjIgOCAyMiA4IDIwIDQgMjAgNCAzMiAxNiAzMiAxNiAyOCAxNCAyOCAxNCAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBv'@; put 'bHlnb24gcG9pbnRzPSI4IDE0IDYgMTQgNiA2IDE0IDYgMTQgOCAxNiA4IDE2IDQgNCA0IDQgMTYgOCAxNiA4IDE0IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTEiIHdp'@; put 'ZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxOSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTkiIHk9IjE5IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0'@; put 'aCBkPSJNMjIsNmguNWE3LjQ5LDcuNDksMCwwLDEsLjI4LTJIMjBWOGgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVWMTRIMjh2Mmg0VjEzLjIyQTcuNDksNy40OSww'@; put 'LDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1LDExLjU4YTcuNTMsNy41MywwLDAsMS0uNTgtLjU4SDE5djZoNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i'@; put 'YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEwLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAg'@; put 'ICcpLGIuQ2xyU2hhcGVDZXJ0aWZpY2F0ZT0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgxOWwuNTctLjcuOTMtMS4xNEwyMC40MSwyOEg0VjhIMzJsMCw4LjU2YTguNDEsOC40MSwwLDAsMSwyLDEuODFWOEEyLDIsMCww'@; put 'LDAsMzIsNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNyIgeT0iMTIiIHdpZHRoPSIxNyIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAg'@; put 'ICAgICAgPHJlY3QgeD0iNyIgeT0iMTYiIHdpZHRoPSIxMSIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNyIgeT0iMjMiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3LjQ2LDE3LjIzYTYuMzYsNi4zNiwwLDAsMC00LjQsMTFsLTEuOTQsMi4zNy45LDMuNjEsMy42Ni00LjQ2YTYuMjYsNi4yNiwwLDAsMCwzLjU1LDBsMy42Niw0LjQ2LjktMy42MS0xLjk0LTIu'@; put 'MzdhNi4zNiw2LjM2LDAsMCwwLTQuNC0xMVptMCwxMC42OGE0LjMxLDQuMzEsMCwxLDEsNC4zNy00LjMxQTQuMzUsNC4zNSwwLDAsMSwyNy40NiwyNy45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNyIgeT0i'@; put 'MTYiIHdpZHRoPSIxMSIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNyIgeT0iMjMiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3LjQ2LDE3LjIzYTYuMzYsNi4zNiwwLDAsMC00LjQsMTFsLTEuOTQsMi4zNy45LDMuNjEsMy42Ni00LjQ2YTYuMjYsNi4yNiwwLDAsMCwzLjU1LDBsMy42Niw0LjQ2'@; put 'LjktMy42MS0xLjk0LTIuMzdhNi4zNiw2LjM2LDAsMCwwLTQuNC0xMVptMCwxMC42OGE0LjMxLDQuMzEsMCwxLDEsNC4zNy00LjMxQTQuMzUsNC4zNSwwLDAsMSwyNy40NiwyNy45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVk'@; put 'IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDEzLjU2QTMuNjYsMy42NiwwLDAsMSwxOC41NywxMkg3djEuNkgxOS4wN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMz'@; put 'LjY4LDE1LjRIMzJ2MS4xNmE4LjQxLDguNDEsMCwwLDEsMiwxLjgxdi0zWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNCwyOFY4SDIwLjE0bDEuMTUtMkg0QTIsMiwwLDAsMCwy'@; put 'LDhWMjhhMiwyLDAsMCwwLDIsMkgxOWwuNTctLjcuOTMtMS4xNEwyMC40MSwyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4'@; put 'LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC03LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxu'@; put 'ICAgICAgICAgICAgPHJlY3QgeD0iNyIgeT0iMTIiIHdpZHRoPSIxNyIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjE2IiB3aWR0aD0iMTEiIGhlaWdo'@; put 'dD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI3IiB5PSIyMyIgd2lkdGg9IjEwIiBoZWlnaHQ9IjEuNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3LjQ2LDE3LjIzYTYuMzYsNi4zNiwwLDAsMC00LjQsMTFsLTEuOTQsMi4zNy45LDMuNjEsMy42Ni00LjQ2YTYuMjYsNi4yNiwwLDAsMCwzLjU1LDBsMy42Niw0LjQ2LjktMy42MS0xLjk0LTIuMzdhNi4zNiw2'@; put 'LjM2LDAsMCwwLTQuNC0xMVptMCwxMC42OGE0LjMxLDQuMzEsMCwxLDEsNC4zNy00LjMxQTQuMzUsNC4zNSwwLDAsMSwyNy40NiwyNy45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9'@; put 'Ik0zMiwxMy4yMnYzLjM0YTguNDEsOC40MSwwLDAsMSwyLDEuODF2LTZBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMjhWOEgyMi43'@; put 'OGE3LjQ5LDcuNDksMCwwLDEtLjI4LTJINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMTlsLjU3LS43LjkzLTEuMTRMMjAuNDEsMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2ly'@; put 'Y2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksMzBINGEyLDIsMCwwLDEtMi0yVjhBMiwyLDAsMCwxLDQsNkgzMmEy'@; put 'LDIsMCwwLDEsMiwyVjE4LjM3YTguMzQsOC4zNCwwLDAsMC0xMy40OSw5Ljc5bC0uOTMsMS4xNFpNNywxMnYxLjZIMjRWMTJabTAsNS42SDE4VjE2SDdabTAsN0gxN1YyM0g3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9'@; put 'Ik0zMy44MywyMy41OWE2LjM3LDYuMzcsMCwxLDAtMTAuNzcsNC41OWwtMS45NCwyLjM3LjksMy42MSwzLjY2LTQuNDZhNi4yNiw2LjI2LDAsMCwwLDMuNTUsMGwzLjY2LDQuNDYuOS0zLjYxLTEuOTQtMi4zN0E2LjM0LDYuMzQsMCwwLDAsMzMuODMsMjMuNTlabS0xMC43NCwwYTQuMzcsNC4z'@; put 'NywwLDEsMSw0LjM3LDQuMzFBNC4zNSw0LjM1LDAsMCwxLDIzLjEsMjMuNTlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjgzLDIzLjU5YTYuMzcsNi4zNywwLDEsMC0xMC43Nyw0LjU5bC0xLjk0LDIuMzcuOSwz'@; put 'LjYxLDMuNjYtNC40NmE2LjI2LDYuMjYsMCwwLDAsMy41NSwwbDMuNjYsNC40Ni45LTMuNjEtMS45NC0yLjM3QTYuMzQsNi4zNCwwLDAsMCwzMy44MywyMy41OVptLTEwLjc0LDBhNC4zNyw0LjM3LDAsMSwxLDQuMzcsNC4zMUE0LjM1LDQuMzUsMCwwLDEsMjMuMSwyMy41OVoiIGNsYXNzPSJj'@; put 'bHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgyOS4yNWE4LjM2LDguMzYsMCwwLDEsNC43NSwzdi0zWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgt'@; put 'Mi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS4wNywxMy42SDdWMTJIMTguNTdBMy42NywzLjY3LDAsMCwxLDE5LDkuODlMMjEuMjksNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgxOWwuNTctLjcuOTMtMS4xNEE4LjM0LDguMzQsMCwwLDEsMjUuNjYs'@; put 'MTUuNEgyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTkuMDcsMTMuNlpNMTcsMjQuNkg3VjIzSDE3Wm0xLTdIN1YxNkgxOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwy'@; put 'MS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHIt'@; put 'aS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy40NiwxNy4yM2E2LjM2LDYuMzYsMCwwLDAtNC40LDExbC0xLjk0LDIuMzcuOSwzLjYxLDMuNjYtNC40NmE2LjI2LDYuMjYsMCwwLDAsMy41NSwwbDMuNjYsNC40Ni45LTMuNjEtMS45NC0yLjM3YTYuMzYsNi4zNiwwLDAsMC00'@; put 'LjQtMTFabTAsMTAuNjhhNC4zMSw0LjMxLDAsMSwxLDQuMzctNC4zMUE0LjM1LDQuMzUsMCwwLDEsMjcuNDYsMjcuOTFaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41QTcuNSw3'@; put 'LjUsMCwwLDEsMjIuNSw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDE5bC41Ny0uNy45My0xLjE0QTguMzQsOC4zNCwwLDAsMSwzNCwxOC4zN3YtNkE3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNVpNMTcsMjQuNkg3VjIzSDE3Wm0xLTdIN1YxNkgxOFptNi00SDdWMTJIMjRaIiBj'@; put 'bGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdl'@; put 'IiAvPlxuICAgICAgICAnKSxiLkNsclNoYXBlQXJjaGl2ZT0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjksMzJIN1YyMkg1VjMyYTIsMiwwLDAsMCwyLDJIMjlhMiwyLDAsMCwwLDItMlYyMkgyOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxu'@; put 'ICAgICAgICAgICAgPHBhdGggZD0iTTE0LDI0YTEsMSwwLDAsMCwxLDFoNmExLDEsMCwwLDAsMC0ySDE1QTEsMSwwLDAsMCwxNCwyNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE0LDE4SDZWMTRoNGEzLDMs'@; put 'MCwwLDEtLjY4LTEuODdzMC0uMDksMC0uMTNINS41QTEuNSwxLjUsMCwwLDAsNCwxMy41VjIwSDE2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNSwxMkgyNi42NnMwLC4wOSwwLC4xM0EzLDMsMCwwLDEs'@; put 'MjYsMTRoNHY0SDIybC0yLDJIMzJWMTMuNUExLjUsMS41LDAsMCwwLDMwLjUsMTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxOS4xOGw2LjM4LTYuMzVBMSwxLDAsMSwwLDIzLDExLjQxbC00LDMuOTVW'@; put 'M2ExLDEsMCwxLDAtMiwwdjEyLjRsLTQtMy45NWExLDEsMCwwLDAtMS40MSwxLjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuNDEsMjAuNiwxOCwyMmwtMS40MS0xLjRMMTYsMjBINVYzMmEyLDIsMCww'@; put 'LDAsMiwySDI5YTIsMiwwLDAsMCwyLTJWMjBIMjBaTTIyLDI0YTEsMSwwLDAsMS0xLDFIMTVhMSwxLDAsMCwxLDAtMmg2QTEsMSwwLDAsMSwyMiwyNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNSwxMkgyNi42'@; put 'NnMwLC4wOSwwLC4xM2EzLDMsMCwwLDEtLjg4LDIuMTJMMjIsMThIMzJWMTMuNUExLjUsMS41LDAsMCwwLDMwLjUsMTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjIsMTQuMjVhMywzLDAsMCwxLS44OC0yLjEy'@; put 'czAtLjA5LDAtLjEzSDUuNUExLjUsMS41LDAsMCwwLDQsMTMuNVYxOEgxNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTkuMThsNi4zOC02LjM1QTEsMSwwLDEsMCwyMywxMS40MWwtNCwzLjk1VjNhMSwxLDAs'@; put 'MSwwLTIsMHYxMi40bC00LTMuOTVhMSwxLDAsMCwwLTEuNDEsMS40MloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+XG4gICAgICAgICcpLGIuQ2xyU2hhcGVVbmFyY2hpdmU9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LDMySDdWMjJINVYzMmEyLDIs'@; put 'MCwwLDAsMiwySDI5YTIsMiwwLDAsMCwyLTJWMjJIMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNCwyNGExLDEsMCwwLDAsMSwxaDZhMSwxLDAsMCwwLDAtMkgxNUExLDEsMCwwLDAsMTQsMjRaIiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNSwxOEg2VjE0aDlWMTJINS41QTEuNSwxLjUsMCwwLDAsNCwxMy41VjIwSDE1Ljc4QTMsMywwLDAsMSwxNSwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjUsMTJIMjF2Mmg5djRIMjFhMywzLDAsMCwxLS43OCwySDMyVjEzLjVBMS41LDEuNSwwLDAsMCwzMC41LDEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8'@; put 'cGF0aCBkPSJNMTMsOS41NSwxNyw1LjZWMThhMSwxLDAsMSwwLDIsMFY1LjZsNCwzLjk1YTEsMSwwLDEsMCwxLjQxLTEuNDJMMTgsMS43OCwxMS42MSw4LjEzQTEsMSwwLDAsMCwxMyw5LjU1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4gICAgICAg'@; put 'ICAgICA8cGF0aCBkPSJNMTgsMjFhMywzLDAsMCwxLTIuMjItMUg1VjMyYTIsMiwwLDAsMCwyLDJIMjlhMiwyLDAsMCwwLDItMlYyMEgyMC4yMUEzLDMsMCwwLDEsMTgsMjFabTQsM2ExLDEsMCwwLDEtMSwxSDE1YTEsMSwwLDAsMSwwLTJoNkExLDEsMCwwLDEsMjIsMjRaIiBjbGFzcz0iY2xy'@; put 'LWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE1LDEySDUuNUExLjUsMS41LDAsMCwwLDQsMTMuNVYxOEgxNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNSwx'@; put 'MkgyMXY2SDMyVjEzLjVBMS41LDEuNSwwLDAsMCwzMC41LDEyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMyw5LjU1LDE3LDUuNlYxOGExLDEsMCwxLDAsMiwwVjUuNmw0LDMuOTVhMSwxLDAsMSwwLDEuNDEtMS40'@; put 'MkwxOCwxLjc4LDExLjYxLDguMTNBMSwxLDAsMCwwLDEzLDkuNTVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPlxuICAgICAgICAnKSxiLkNsclNoYXBlQ29ubmVjdD0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzQsMTdIMjguMjNBNi4yNSw2LjI1LDAs'@; put 'MCwwLDIyLDEySDE0LjE1YTYuMjUsNi4yNSwwLDAsMC02LjIxLDVIMnYySDcuOTNhNi4yMiw2LjIyLDAsMCwwLDYuMjIsNUgyMmE2LjIyLDYuMjIsMCwwLDAsNi4yMi01SDM0Wk0xNy4wOCwyMkgxNC4xNWE0LjE3LDQuMTcsMCwwLDEtNC4zMS00LDQuMTcsNC4xNywwLDAsMSw0LjMxLTRoMi45'@; put 'NFpNMjIsMjJIMTlWMTRoM2E0LjE3LDQuMTcsMCwwLDEsNC4zMSw0QTQuMTcsNC4xNywwLDAsMSwyMiwyMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3LDEySDE0LjE1YTYuMjUsNi4yNSwwLDAsMC02LjIx'@; put 'LDVIMnYySDcuOTNhNi4yMiw2LjIyLDAsMCwwLDYuMjIsNUgxN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguMjMsMTdBNi4yNSw2LjI1LDAsMCwwLDIyLDEySDE5VjI0aDNhNi4yMiw2LjIyLDAsMCwwLDYuMjIt'@; put 'NUgzNFYxN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICcpLGIuQ2xyU2hhcGVEaXNjb25uZWN0PSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMi4xNyw2QTYuMjEsNi4yMSwwLDAsMCw2LDExSDIuMTN2Mkg2YTYuMjMsNi4yMywwLDAs'@; put 'MCw2LjIxLDVIMTdWNlpNMTUuMSwxNkgxMi4xN2E0LjIsNC4yLDAsMCwxLTQuMzEtNCw0LjE3LDQuMTcsMCwwLDEsNC4zMS00SDE1LjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy45MiwyM0gzMC4xNGE2'@; put 'LjI1LDYuMjUsMCwwLDAtNi4yMS01SDE5djJIMTRhMSwxLDAsMSwwLDAsMmg1djRIMTRhMSwxLDAsMCwwLTEsMSwxLDEsMCwwLDAsMSwxaDV2Mmg0Ljk0YTYuMjMsNi4yMywwLDAsMCw2LjIyLTVoMy43NlptLTEwLDVIMjFWMjBoMi45NGE0LjE3LDQuMTcsMCwwLDEsNC4zMSw0QTQuMTcsNC4x'@; put 'NywwLDAsMSwyMy45NCwyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEyLDZhNi4yMSw2LjIxLDAsMCwwLTYuMjEsNUgydjJINS44M0E2LjIzLDYuMjMsMCwwLDAsMTIsMThIMTdWNloiIGNsYXNzPSJjbHIt'@; put 'aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNzksMjNIMzAuMTRhNi4yNSw2LjI1LDAsMCwwLTYuMjEtNUgxOXYySDE0YTEsMSwwLDAsMC0xLDEsMSwxLDAsMCwwLDEsMWg1djRIMTRhMSwxLDAsMCwwLTEsMSwxLDEsMCwwLDAsMSwxaDV2'@; put 'Mmg0Ljk0YTYuMjMsNi4yMywwLDAsMCw2LjIyLTVoMy42NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICcpLGIuQ2xyU2hhcGVMaW5rPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNy42LDI0LjMybC0yLjQ2LDIuNDRhNCw0LDAsMCwx'@; put 'LTUuNjIsMCwzLjkyLDMuOTIsMCwwLDEsMC01LjU1bDQuNjktNC42NWE0LDQsMCwwLDEsNS42MiwwLDMuODYsMy44NiwwLDAsMSwxLDEuNzFBMiwyLDAsMCwwLDIxLjEsMThsMS4yOS0xLjI4YTUuODksNS44OSwwLDAsMC0xLjE1LTEuNjIsNiw2LDAsMCwwLTguNDQsMEw4LjEsMTkuNzlhNS45'@; put 'MSw1LjkxLDAsMCwwLDAsOC4zOSw2LDYsMCwwLDAsOC40NCwwbDMuNjUtMy42MmMtLjE3LDAtLjMzLDAtLjUsMEE4LDgsMCwwLDEsMTcuNiwyNC4zMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjYxLDcu'@; put 'ODJhNiw2LDAsMCwwLTguNDQsMGwtMy42NSwzLjYyYy4xNywwLC4zMywwLC40OSwwaDBhOCw4LDAsMCwxLDIuMS4yOGwyLjQ2LTIuNDRhNCw0LDAsMCwxLDUuNjIsMCwzLjkyLDMuOTIsMCwwLDEsMCw1LjU1bC00LjY5LDQuNjVhNCw0LDAsMCwxLTUuNjIsMCwzLjg2LDMuODYsMCwwLDEtMS0x'@; put 'LjcxLDIsMiwwLDAsMC0uMjguMjNsLTEuMjksMS4yOGE1Ljg5LDUuODksMCwwLDAsMS4xNSwxLjYyLDYsNiwwLDAsMCw4LjQ0LDBsNC42OS00LjY1YTUuOTIsNS45MiwwLDAsMCwwLTguMzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAg'@; put 'JyksYi5DbHJTaGFwZVVubGluaz0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNSw1LDMuNTksNi40MWw5LDlMOC4xLDE5Ljc5YTUuOTEsNS45MSwwLDAsMCwwLDguMzksNiw2LDAsMCwwLDguNDQsMEwyMSwyMy43OGw4LjYzLDguNjNMMzEsMzFaTTE1LjEzLDI2Ljc2YTQsNCwwLDAsMS01'@; put 'LjYyLDAsMy45MiwzLjkyLDAsMCwxLDAtNS41NUwxNCwxNi43OWw1LjU4LDUuNThaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMS41Myw5LjIyYTQsNCwwLDAsMSw1LjYyLDAsMy45MiwzLjkyLDAsMCwxLDAs'@; put 'NS41NWwtNC43OSw0Ljc2TDIzLjc4LDIxbDQuNzktNC43NmE1LjkyLDUuOTIsMCwwLDAsMC04LjM5LDYsNiwwLDAsMC04LjQ0LDBsLTQuNzYsNC43NEwxNi43OCwxNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAnKSxiLkNsclNoYXBl'@; put 'Q2xvdWROZXR3b3JrPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMC43MSwxNS4xOHYtMUExMS4yOCwxMS4yOCwwLDAsMCwxOS41NiwyLjgzaC0uMTFhMTEuMjgsMTEuMjgsMCwwLDAtMTEsOC45Myw3LjQ3LDcuNDcsMCwwLDAsMCwxNC45NEgyOS4xM2E1Ljg2LDUuODYsMCwwLDAsMS41'@; put 'OC0xMS41MlpNMjkuMTMsMjQuN0g4LjQ2YTUuNDcsNS40NywwLDEsMSwwLTEwLjk0aDEuNjlsLjExLS44N2E5LjI3LDkuMjcsMCwwLDEsMTguNDUsMS4zdjEuMjhjMCwuMDksMCwuMTgsMCwuMjdsLS4wNywxLjE1Ljk0LjExYTMuODYsMy44NiwwLDAsMS0uNDMsNy43MVoiIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LjU4LDMxLjE4SDE4Ljg1di0yLjRoLTJ2Mi40SDYuMDhhMSwxLDAsMCwwLDAsMmgyMy41YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtMiIgLz5cbiAgICAgICAgJyksYi5DbHJTaGFwZUNsb3VkU2NhbGU9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTYuMzIsMTEuMTFINy44NEw4LDEwLjI0QTcuMTksNy4xOSwwLDAsMSwxNS4wNyw0aC4wN2E3LjE1LDcuMTUsMCwwLDEsNC43MSwxLjgzLDExLjEsMTEuMSwwLDAsMSwz'@; put 'LjA5LjY0QTkuMTgsOS4xOCwwLDAsMCwxNS4xNiwyaC0uMDlBOS4yLDkuMiwwLDAsMCw2LjEzLDkuMTEsNi4xNSw2LjE1LDAsMCwwLDIuMzMsMTkuOTUsOC4wOSw4LjA5LDAsMCwxLDMsMTcuNzFhNC4xMiw0LjEyLDAsMCwxLS44MS0yLjQ0QTQuMTYsNC4xNiwwLDAsMSw2LjMyLDExLjExWiIg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuNCwxNi45MWgxLjUyTDEyLDE2YTcuMTksNy4xOSwwLDAsMSw3LjEyLTYuMjVoLjA3YTcuMTcsNy4xNywwLDAsMSw1LjcsMi45MiwxMS4wNSwxMS4wNSwwLDAsMSwy'@; put 'LjcyLjc3LDkuMiw5LjIsMCwwLDAtOC40LTUuNjloLS4wOWE5LjIsOS4yLDAsMCwwLTguOTQsNy4xMiw2LjE1LDYuMTUsMCwwLDAtMy42NCwxMSw4LjExLDguMTEsMCwwLDEsLjc5LTIsNC4xNCw0LjE0LDAsMCwxLDMtN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjQyLDI0LjQ3di0uNjJhOS4xOCw5LjE4LDAsMCwwLTE4LjEzLTIuMTZBNi4xNiw2LjE2LDAsMCwwLDE0LjQ4LDM0SDMxYTQuODgsNC44OCwwLDAsMCwxLjQ2LTkuNTNaTTMxLDMySDE0LjQ4YTQuMTYsNC4xNiwwLDEsMSwwLTguMzJI'@; put 'MTZsLjExLS44N2E3LjE5LDcuMTksMCwwLDEsNy4xMi02LjI1aC4wN2E3LjIxLDcuMjEsMCwwLDEsNy4xMiw3LjI1djFjMCwuMDcsMCwuMTMsMCwuMmwtLjA3LDEuMTEuOTQuMTFBMi44OCwyLjg4LDAsMCwxLDMxLDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTMiIC8+XG4gICAgICAgICcpLGIuQ2xyU2hhcGVDbG91ZFRyYWZmaWM9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI2LjU0LDIwLjgyYS44OC44OCwwLDAsMC0uODgtLjg4SDIwLjc1bDEuMS0xLjFBLjg4Ljg4LDAsMCwwLDIwLjYsMTcuNmwtMy4yMSwzLjIyTDIwLjYsMjRhLjg4Ljg4'@; put 'LDAsMSwwLDEuMjUtMS4yNEwyMC43NiwyMS43aDQuOUEuODguODgsMCwwLDAsMjYuNTQsMjAuODJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS4yNywyMS43YS44OC44OCwwLDEsMCwwLTEuNzZoLS41OGEu'@; put 'ODguODgsMCwxLDAsMCwxLjc2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuMjEsMjBoLS4wNmEuODUuODUsMCwwLDAtLjg1Ljg4LjkxLjkxLDAsMCwwLC45MS44OC44OC44OCwwLDEsMCwwLTEuNzZaIiBj'@; put 'bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi41OSwxMWEuODguODgsMCwwLDAtMS4yNSwxLjI0bDEuMSwxLjFIMjcuNTNhLjg4Ljg4LDAsMSwwLDAsMS43Nmg0LjlsLTEuMDksMS4wOWEuODguODgsMCwwLDAsMS4y'@; put 'NSwxLjI0bDMuMjEtMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LjUsMTUuMDdhLjg4Ljg4LDAsMSwwLDAtMS43NmgtLjU4YS44OC44OCwwLDEsMCwwLDEuNzZaIiBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMS45LDE0LjI3YS44NS44NSwwLDAsMC0uODUtLjg4SDIxYS44OC44OCwwLDEsMCwwLDEuNzZBLjkxLjkxLDAsMCwwLDIxLjksMTQuMjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l'@; put 'LXBhdGgtNiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC4zNiwyMy42NWMwLC4xMywwLC4yNiwwLC4zOWEzLjc3LDMuNzcsMCwwLDEtMy42MiwzLjg5SDcuMjhhNS4zMiw1LjMyLDAsMCwxLTUuMTMtNS40OEE1LjMyLDUuMzIsMCwwLDEsNy4yOCwxN0g4LjkxTDksMTYuMTJhOC45Miw4'@; put 'LjkyLDAsMCwxLDguNjItOGguMDhhOC40OSw4LjQ5LDAsMCwxLDYuNTYsMy4yOWgyLjM3YTEwLjU1LDEwLjU1LDAsMCwwLTguOTEtNS4yNWgtLjExQTEwLjgyLDEwLjgyLDAsMCwwLDcuMjIsMTVhNy4yOCw3LjI4LDAsMCwwLTcsNy40Myw3LjI3LDcuMjcsMCwwLDAsNy4wOCw3LjQzSDI2Ljc3'@; put 'QTUuNzIsNS43MiwwLDAsMCwzMi4zNSwyNGEzLjc3LDMuNzcsMCwwLDAsMC0uMzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgJyksYi5DbHJTaGFwZURlcGxveT0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMzLDJIMjIuMWExLDEsMCwwLDAsMCwyaDguNTNsLTguODIsOWExLDEsMCwxLDAsMS40MywxLjRMMzIsNS40NlYxMy45YTEsMSwwLDAsMCwyLDBWM0ExLDEsMCwwLDAsMzMsMloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTEuNTQsMTAuNzNsLTksNS4xN2ExLDEsMCwwLDAtLjUuODd2MTFhMSwxLDAsMCwwLC41Ljg3bDksNS4xNWExLDEsMCwwLDAsMSwwbDktNS4xNWExLDEsMCwwLDAsLjUtLjg3di0xMWExLDEsMCwwLDAtLjUtLjg3bC05LTUuMTdB'@; put 'MSwxLDAsMCwwLDExLjU0LDEwLjczWk0xMSwzMS4wOGwtNy00VjE4LjQ0bDcsNFpNMTIsMjEsNC44MSwxNi44NywxMiwxMi43OGw3LjIxLDQuMTJabTgsNi4wOS03LDRWMjIuNDRsNy00WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgt'@; put 'MSIgZD0iTTMzLDJIMjIuMWExLDEsMCwwLDAsMCwyaDguNTNsLTguODIsOWExLDEsMCwxLDAsMS40MywxLjRMMzIsNS40NlYxMy45YTEsMSwwLDAsMCwyLDBWM0ExLDEsMCwwLDAsMzMsMloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRo'@; put 'LTIiIGQ9Ik0xMi40NiwxMC43M2ExLDEsMCwwLDAtMSwwbC04LjY4LDVMMTIsMjFsOS4xOS01LjI2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTIsMjcuNzNhMSwxLDAsMCwwLC41Ljg3TDExLDMzLjQ2di0xMUwyLDE3'@; put 'LjI4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgZD0iTTEzLDMzLjQ2bDguNS00Ljg2YTEsMSwwLDAsMCwuNS0uODdWMTcuMjlsLTksNS4xNVoiLz5cbiAgICAgICAgJyksYi5DbHJTaGFwZUhlbGl4PSgwLHAuY2xySWNvblNW'@; put 'RykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNOC44OCwxMy4wN2EuOS45LDAsMCwxLS40OS0xLjY2bDguOTMtNS43M2EuOS45LDAsMSwxLDEsMS41Mkw5LjM3LDEyLjkyQS45LjksMCwwLDEsOC44OCwxMy4wN1oiLz5cbiAgICAgICAgICAg'@; put 'IDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTMuMjUsMTUuMTFhLjkuOSwwLDAsMS0uNDktMS42NkwxOCwxMC4wOGEuOS45LDAsMSwxLDEsMS41MkwxMy43NCwxNUEuOS45LDAsMCwxLDEzLjI1LDE1LjExWiIvPlxuICAgICAgICAgICAgPHBh'@; put 'dGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xOS43MiwzMC4yM2EuOS45LDAsMCwxLS40OS0xLjY2bDguOTMtNS43M2EuOS45LDAsMCwxLDEsMS41MkwyMC4yLDMwLjA5QS45LjksMCwwLDEsMTkuNzIsMzAuMjNaIi8+XG4gICAgICAgICAgICA8cGF0'@; put 'aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTE4LjkyLDI1Ljk0YS45LjksMCwwLDEtLjQ5LTEuNjZsNS4yNS0zLjM3YS45LjksMCwxLDEsMSwxLjUxTDE5LjQsMjUuOEEuODkuODksMCwwLDEsMTguOTIsMjUuOTRaIi8+XG4gICAgICAgICAgICA8cGF0'@; put 'aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgZD0iTTIxLjU2LDUuNjlhMy41OSwzLjU5LDAsMCwxLC4xNSwzLjUzTDE4LjgzLDE1aDIuMjVsMi40My00Ljg3YTUuNjEsNS42MSwwLDAsMC01LTguMTRIMTMuMjZsLTEsMmg2LjIyQTMuNjEsMy42MSwwLDAsMSwy'@; put 'MS41Niw1LjY5WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMi45MSwyMC43OEE1LjUzLDUuNTMsMCwwLDAsMjcuNjYsMTdIOS4zMWEzLjU0LDMuNTQsMCwwLDEtMy41Ni0zLjY3LDMuNjEsMy42MSwwLDAsMSwu'@; put 'NDItMS41NGw0LjI2LTguNDlhMSwxLDAsMSwwLTEuNzktLjlMNC40LDEwLjg0QTUuNjcsNS42NywwLDAsMCw0LDE1LjIyLDUuNTMsNS41MywwLDAsMCw5LjI4LDE5aDcuNmwtMy40NCw2Ljg3YTUuNjQsNS42NCwwLDAsMCwxLjUsNi45MkE1LjM4LDUuMzgsMCwwLDAsMTguNDEsMzRoNS4yNWwx'@; put 'LTJIMTguNDNhMy41OCwzLjU4LDAsMCwxLTMuMjItNS4yMUwxOS4xMSwxOWg4LjU0YTMuNDIsMy40MiwwLDAsMSwyLjE1LjcxLDMuNTcsMy41NywwLDAsMSwxLDQuNDNsLTQuMTIsOC4yMmExLDEsMCwxLDAsMS43OS45bDQuMDYtOC4xQTUuNjcsNS42NywwLDAsMCwzMi45MSwyMC43OFoiLz5c'@; put 'biAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi4xNiwxOS42M0E1LjU1LDUuNTUsMCwwLDAsMjcuNDIsMTdIMTAuMDZhNC4zNiw0LjM2LDAsMCwxLTMuNjctMiw0LjA3LDQuMDcsMCwwLDEtLjE5LTQuMTNsMy42Mi03LDEuNDIs'@; put 'MS42My0yLjc0LDUuMyw4Ljg0LTUuNjZhLjkxLjkxLDAsMCwxLDEsMS41M0w3Ljg0LDEzLjM4YTIuMTMsMi4xMywwLDAsMCwuMjQuNTIsMi4yOCwyLjI4LDAsMCwwLDEuNjUsMUwxOC4xMSw5LjVhLjkxLjkxLDAsMCwxLDEsMS41MkwxMywxNC45NEgyMC44bDIuNDEtNC44MmE1LjYsNS42LDAs'@; put 'MCwwLTUtOC4xMkg5YTEsMSwwLDAsMC0uOS41NkwzLjg4LDEwLjg5YTUuNiw1LjYsMCwwLDAsNSw4LjEyaDcuNjVsLTMuNDMsNi44N2E1LjYsNS42LDAsMCwwLDUsOC4xMmg5LjI4YTEsMSwwLDAsMCwuOTMtLjY1bDQuMTQtOC4yNEE1LjU4LDUuNTgsMCwwLDAsMzIuMTYsMTkuNjNaTTE3Ljc1'@; put 'LDI1LjU3QS45MS45MSwwLDAsMSwxOCwyNC4zMWw2LTMuODhBLjkxLjkxLDAsMSwxLDI1LDIybC02LDMuODhhLjkxLjkxLDAsMCwxLTEuMjYtLjI3Wk0yOSwyNC4zNGwtOSw1Ljc4YS45MS45MSwwLDEsMS0xLTEuNTNsOS01Ljc4YS45MS45MSwwLDEsMSwxLDEuNTNaIi8+XG4gICAgICAgICcp'@; put 'LGIuQ2xyU2hhcGVGbGFzaz0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuNDMsMjcuMjgsMjMsMTQuODRWNGgxYTEsMSwwLDAsMCwwLTJIMTJhMSwxLDAsMCwwLDAsMmgxVjE0Ljg0TDQuNTEsMjcuMzZBNC4yOSw0LjI5LDAsMCwwLDUsMzIuOCw0LjM4LDQuMzgsMCwwLDAsOC4xNSwz'@; put 'NEgyOGE0LjI0LDQuMjQsMCwwLDAsMy40Mi02LjcyWk0yOS44NSwzMWEyLjYyLDIuNjIsMCwwLDEtMiwxSDhhMi4yLDIuMiwwLDAsMS0yLjA2LTEuNDEsMi42OCwyLjY4LDAsMCwxLC4yOS0yLjE3bDMtNC40NCwxNCwwLTEuMzEtMkgxMC41N0wxNSwxNS40NlY0aDZWMTUuNDZsOC44NCwxMy4w'@; put 'NUEyLjIzLDIuMjMsMCwwLDEsMjkuODUsMzFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS40OSwyNy40LDIzLDE0Ljk0VjRoMWExLDEsMCwwLDAsMC0ySDEyLjA4YTEsMSwwLDAsMCwwLDJIMTNWMTQuOTRM'@; put 'NC41OCwyNy4zMWE0LjMxLDQuMzEsMCwwLDAtLjc4LDNBNC4yMyw0LjIzLDAsMCwwLDgsMzRIMjcuODZBNC4zNiw0LjM2LDAsMCwwLDMxLDMyLjgsNC4yMyw0LjIzLDAsMCwwLDMxLjQ5LDI3LjRaTTE1LDE1LjQ5VjRoNlYxNS40OUwyNi4xNSwyM0g5Ljg1WiIgY2xhc3M9ImNsci1pLXNvbGlk'@; put 'IGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgJyksYi5DbHJTaGFwZUFkbWluaXN0cmF0b3I9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE0LjY4LDE0LjgxYTYuNzYsNi43NiwwLDEsMSw2Ljc2LTYuNzVBNi43Nyw2Ljc3LDAsMCwxLDE0LjY4LDE0LjgxWm0wLTExLjUxYTQu'@; put 'NzYsNC43NiwwLDEsMCw0Ljc2LDQuNzZBNC43Niw0Ljc2LDAsMCwwLDE0LjY4LDMuM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE2LjQyLDMxLjY4QTIuMTQsMi4xNCwwLDAsMSwxNS44LDMwSDRWMjQuMjJh'@; put 'MTQuODEsMTQuODEsMCwwLDEsMTEuMDktNC42OGwuNzIsMGEyLjIsMi4yLDAsMCwxLC42Mi0xLjg1bC4xMi0uMTFjLS40NywwLTEtLjA2LTEuNDYtLjA2QTE2LjQ3LDE2LjQ3LDAsMCwwLDIuMiwyMy4yNmExLDEsMCwwLDAtLjIuNlYzMGEyLDIsMCwwLDAsMiwySDE2LjdaIiBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NywxNi4yOWEuMzcuMzcsMCwwLDEsLjE1LDAsLjQyLjQyLDAsMCwwLS4xNSwwWiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAg'@; put 'ICAgICAgPHBhdGggZD0iTTMzLjY4LDIzLjMybC0yLS42MWE3LjIxLDcuMjEsMCwwLDAtLjU4LTEuNDFsMS0xLjg2QS4zOC4zOCwwLDAsMCwzMiwxOWwtMS40NS0xLjQ1YS4zNi4zNiwwLDAsMC0uNDQtLjA3bC0xLjg0LDFhNy4xNSw3LjE1LDAsMCwwLTEuNDMtLjYxbC0uNjEtMmEuMzYuMzYs'@; put 'MCwwLDAtLjM2LS4yNEgyMy44MmEuMzYuMzYsMCwwLDAtLjM1LjI2bC0uNjEsMmE3LDcsMCwwLDAtMS40NC42bC0xLjgyLTFhLjM1LjM1LDAsMCwwLS40My4wN0wxNy42OSwxOWEuMzguMzgsMCwwLDAtLjA2LjQ0bDEsMS44MkE2Ljc3LDYuNzcsMCwwLDAsMTgsMjIuNjlsLTIsLjZhLjM2LjM2'@; put 'LDAsMCwwLS4yNi4zNXYyLjA1QS4zNS4zNSwwLDAsMCwxNiwyNmwyLC42MWE3LDcsMCwwLDAsLjYsMS40MWwtMSwxLjkxYS4zNi4zNiwwLDAsMCwuMDYuNDNsMS40NSwxLjQ1YS4zOC4zOCwwLDAsMCwuNDQuMDdsMS44Ny0xYTcuMDksNy4wOSwwLDAsMCwxLjQuNTdsLjYsMmEuMzguMzgsMCww'@; put 'LDAsLjM1LjI2aDIuMDVhLjM3LjM3LDAsMCwwLC4zNS0uMjZsLjYxLTIuMDVhNi45Miw2LjkyLDAsMCwwLDEuMzgtLjU3bDEuODksMWEuMzYuMzYsMCwwLDAsLjQzLS4wN0wzMiwzMC40QS4zNS4zNSwwLDAsMCwzMiwzMGwtMS0xLjg4YTcsNywwLDAsMCwuNTgtMS4zOWwyLS42MWEuMzYuMzYs'@; put 'MCwwLDAsLjI2LS4zNVYyMy42N0EuMzYuMzYsMCwwLDAsMzMuNjgsMjMuMzJaTTI0Ljg1LDI4YTMuMzQsMy4zNCwwLDEsMSwzLjMzLTMuMzNBMy4zNCwzLjM0LDAsMCwxLDI0Ljg1LDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAg'@; put 'ICA8Y2lyY2xlIGN4PSIxNC42NyIgY3k9IjguMyIgcj0iNiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNi40NCwzMS44MmEyLjE1LDIuMTUsMCwwLDEtLjM4LTIuNTVsLjUzLTEtMS4wOS0uMzNBMi4xNCwyLjE0LDAs'@; put 'MCwxLDE0LDI1Ljg0VjIzLjc5YTIuMTYsMi4xNiwwLDAsMSwxLjUzLTIuMDdsMS4wOS0uMzMtLjUyLTFhMi4xNywyLjE3LDAsMCwxLC4zNS0yLjUyLDE4LjkyLDE4LjkyLDAsMCwwLTIuMzItLjE2QTE1LjU4LDE1LjU4LDAsMCwwLDIsMjMuMDd2Ny43NWExLDEsMCwwLDAsMSwxSDE2LjQ0WiIg'@; put 'Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy43LDIzLjQ2bC0yLS42YTYuNzMsNi43MywwLDAsMC0uNTgtMS40MmwxLTEuODZhLjM1LjM1LDAsMCwwLS4wNy0uNDNsLTEuNDUtMS40NmEuMzguMzgsMCwwLDAtLjQzLS4w'@; put 'N2wtMS44NSwxYTcuNzQsNy43NCwwLDAsMC0xLjQzLS42bC0uNjEtMmEuMzguMzgsMCwwLDAtLjM2LS4yNUgyMy44NGEuMzguMzgsMCwwLDAtLjM1LjI2bC0uNiwyYTYuODUsNi44NSwwLDAsMC0xLjQ1LjYxbC0xLjgxLTFhLjM4LjM4LDAsMCwwLS40NC4wNmwtMS40NywxLjQ0YS4zNy4zNyww'@; put 'LDAsMC0uMDcuNDRsMSwxLjgyQTcuMjQsNy4yNCwwLDAsMCwxOCwyMi44M2wtMiwuNjFhLjM2LjM2LDAsMCwwLS4yNi4zNXYyLjA1YS4zNi4zNiwwLDAsMCwuMjYuMzVsMiwuNjFhNy4yOSw3LjI5LDAsMCwwLC42LDEuNDFsLTEsMS45YS4zNy4zNywwLDAsMCwuMDcuNDRMMTkuMTYsMzJhLjM4'@; put 'LjM4LDAsMCwwLC40NC4wNmwxLjg3LTFhNy4wOSw3LjA5LDAsMCwwLDEuNC41N2wuNiwyLjA1YS4zOC4zOCwwLDAsMCwuMzYuMjZoMi4wNWEuMzguMzgsMCwwLDAsLjM1LS4yNmwuNi0yLjA1YTYuNjgsNi42OCwwLDAsMCwxLjM4LS41N2wxLjg5LDFhLjM4LjM4LDAsMCwwLC40NC0uMDZMMzIs'@; put 'MzAuNTVhLjM4LjM4LDAsMCwwLC4wNi0uNDRsLTEtMS44OGE2LjkyLDYuOTIsMCwwLDAsLjU3LTEuMzhsMi0uNjFhLjM5LjM5LDAsMCwwLC4yNy0uMzVWMjMuODJBLjQuNCwwLDAsMCwzMy43LDIzLjQ2Wm0tOC44Myw0LjcyYTMuMzQsMy4zNCwwLDEsMSwzLjMzLTMuMzRBMy4zNCwzLjM0LDAs'@; put 'MCwxLDI0Ljg3LDI4LjE4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz5cbiAgICAgICAgJyksYi5DbHJTaGFwZUhhcmREcml2ZT0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzQsOGEyLDIsMCwwLDAtMi0ySDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCww'@; put 'LDAsMiwySDMyYTIsMiwwLDAsMCwyLTJaTTMyLDI4SDRWOEgzMlYyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iNi4yMSIgY3k9IjEwLjI1IiByPSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI5LjgxIiBjeT0iMTAuMjUiIHI9IjEuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iNi4yMSIgY3k9IjI1LjQyIiByPSIx'@; put 'LjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI5LjgxIiBjeT0iMjUuNDIiIHI9IjEuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHBh'@; put 'dGggZD0iTTExLjg4LDE4LjA4YTMuNTksMy41OSwwLDEsMCwzLjU5LTMuNTksMy44NCwzLjg0LDAsMCwwLS45MS4xM0wxNSwxNi4xNmEyLjA4LDIuMDgsMCwwLDEsLjUtLjA3LDIsMiwwLDEsMS0yLDIsMS42NCwxLjY0LDAsMCwxLC4wOC0uNUwxMiwxNy4xNkEzLjUzLDMuNTMsMCwwLDAsMTEu'@; put 'ODgsMTguMDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNS40NywyNS43M2E3LjY2LDcuNjYsMCwwLDEtNy42NS03LjY1LDcuNTUsNy41NSwwLDAsMSwuMjctMkw2LjU0LDE1LjdhOS4yNCw5LjI0LDAsMCww'@; put 'LDE3LjgsNC45NUgyMi42NkE3LjY0LDcuNjQsMCwwLDEsMTUuNDcsMjUuNzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4yMiwxNy44M2EuOC44LDAsMCwwLS44LS44SDI0LjY2YTkuMjYsOS4yNiwwLDAs'@; put 'MC05LjE5LTguMiw5LjM2LDkuMzYsMCwwLDAtMi4zOC4zMmwuNDIsMS41NGE3Ljg2LDcuODYsMCwwLDEsMi0uMjZBNy42Niw3LjY2LDAsMCwxLDIzLDE3SDIwLjkyYS44LjgsMCwwLDAsMCwxLjZoNi41QS44LjgsMCwwLDAsMjguMjIsMTcuODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtOCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlpNMTIsMTcuMTZsMS41NC40MmExLjY0LDEuNjQsMCwwLDAtLjA4LjUsMiwyLDAsMSww'@; put 'LDItMiwyLjA4LDIuMDgsMCwwLDAtLjUuMDdsLS40MS0xLjU0YTMuODQsMy44NCwwLDAsMSwuOTEtLjEzLDMuNTksMy41OSwwLDEsMS0zLjU5LDMuNTlBMy41MywzLjUzLDAsMCwxLDEyLDE3LjE2Wk01LjMxLDhBMS4yNSwxLjI1LDAsMSwxLDQuMDYsOS4yNSwxLjI1LDEuMjUsMCwwLDEsNS4z'@; put 'MSw4Wm0wLDIwLjA2YTEuMjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwxLDUuMzEsMjguMDZabTEwLjE2LS43M0E5LjIyLDkuMjIsMCwwLDEsNi41NCwxNS43bDEuNTUuNDFhNy41NSw3LjU1LDAsMCwwLS4yNywyLDcuNjQsNy42NCwwLDAsMCwxNC44NCwyLjU3aDEuNjhB'@; put 'OS4yNSw5LjI1LDAsMCwxLDE1LjQ3LDI3LjMzWm0xMi04LjdoLTYuNWEuOC44LDAsMCwxLDAtMS42SDIzYTcuNjYsNy42NiwwLDAsMC03LjU3LTYuNiw3Ljg2LDcuODYsMCwwLDAtMiwuMjZsLS40Mi0xLjU0YTkuMzYsOS4zNiwwLDAsMSwyLjM4LS4zMkE5LjI2LDkuMjYsMCwwLDEsMjQuNjYs'@; put 'MTdoMi43NmEuOC44LDAsMCwxLDAsMS42Wm0zLjM5LDkuNDNhMS4yNSwxLjI1LDAsMSwxLDEuMjUtMS4yNUExLjI1LDEuMjUsMCwwLDEsMzAuODEsMjguMDZabTAtMTcuNTZhMS4yNSwxLjI1LDAsMSwxLDEuMjUtMS4yNUExLjI1LDEuMjUsMCwwLDEsMzAuODEsMTAuNVoiIGNsYXNzPSJjbHIt'@; put 'aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICcpLGIuQ2xyU2hhcGVIYXJkRHJpdmVEaXNrcz0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjYsNS43NEExLjc0LDEuNzQsMCwwLDAsMjQuMjYsNEgzLjc0QTEuNzQsMS43NCwwLDAsMCwyLDUuNzRWMjAuMjZBMS43'@; put 'NCwxLjc0LDAsMCwwLDMuNzQsMjJINFY2SDI2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsOS43NEExLjc0LDEuNzQsMCwwLDAsMjguMjYsOEg3Ljc0QTEuNzQsMS43NCwwLDAsMCw2LDkuNzRWMjQuMjZB'@; put 'MS43NCwxLjc0LDAsMCwwLDcuNzQsMjZIOFYxMEgzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjI2LDEySDExLjc0QTEuNzQsMS43NCwwLDAsMCwxMCwxMy43NFYyOC4yNkExLjc0LDEuNzQsMCwwLDAs'@; put 'MTEuNzQsMzBIMzIuMjZBMS43NCwxLjc0LDAsMCwwLDM0LDI4LjI2VjEzLjc0QTEuNzQsMS43NCwwLDAsMCwzMi4yNiwxMlpNMzIsMjhIMTJWMTRIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS45NCwy'@; put 'My42OGEyLjY0LDIuNjQsMCwxLDAtMi43LTIuNjNBMi42NywyLjY3LDAsMCwwLDE5Ljk0LDIzLjY4Wm0wLTMuODdhMS4yNCwxLjI0LDAsMSwxLTEuMjksMS4yNEExLjI3LDEuMjcsMCwwLDEsMTkuOTQsMTkuODFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIg'@; put 'Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS45NCwxNi4yMmE0LjkzLDQuOTMsMCwwLDEsNC45NSw0LjM1SDIzLjcxVjIyaDQuNDFhLjcuNywwLDAsMCwwLTEuNEgyNi4zMWE2LjMzLDYuMzMsMCwwLDAtNi4zNy01Ljc1LDYuNTgsNi41OCwwLDAsMC0xLjQ4LjE3bC4zNSwxLjM3QTQuNzMs'@; put 'NC43MywwLDAsMSwxOS45NCwxNi4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5Ljk0LDI3LjI3YTYuNDIsNi40MiwwLDAsMCw1LjY3LTMuMzVIMjMuOTNhNSw1LDAsMCwxLTQsMS45NSw0LjkxLDQuOTEs'@; put 'MCwwLDEtNS00LjgyLDUuMTYsNS4xNiwwLDAsMSwuMDgtLjc5TDEzLjYzLDIwYTcsNywwLDAsMC0uMDksMUE2LjMyLDYuMzIsMCwwLDAsMTkuOTQsMjcuMjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNiw1'@; put 'Ljc0QTEuNzQsMS43NCwwLDAsMCwyNC4yNiw0SDMuNzRBMS43NCwxLjc0LDAsMCwwLDIsNS43NFYyMC4yNkExLjc0LDEuNzQsMCwwLDAsMy43NCwyMkg0VjZIMjZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDku'@; put 'NzRBMS43NCwxLjc0LDAsMCwwLDI4LjI2LDhINy43NEExLjc0LDEuNzQsMCwwLDAsNiw5Ljc0VjI0LjI2QTEuNzQsMS43NCwwLDAsMCw3Ljc0LDI2SDhWMTBIMzBaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LjYy'@; put 'LDIyLjZBMS41NSwxLjU1LDAsMSwwLDE4LDIxLjA1LDEuNiwxLjYsMCwwLDAsMTkuNjIsMjIuNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuMjYsMTJIMTEuNzRBMS43NCwxLjc0LDAsMCwwLDEwLDEzLjc0VjI4'@; put 'LjI2QTEuNzQsMS43NCwwLDAsMCwxMS43NCwzMEgzMi4yNkExLjc0LDEuNzQsMCwwLDAsMzQsMjguMjZWMTMuNzRBMS43NCwxLjc0LDAsMCwwLDMyLjI2LDEyWk0xOS42MiwxNy43NGEzLjMxLDMuMzEsMCwxLDEtMy4zOCwzLjMxQTMuMzUsMy4zNSwwLDAsMSwxOS42MiwxNy43NFptMCwxMS4x'@; put 'M2E3Ljk0LDcuOTQsMCwwLDEtOC03LjgyLDcuODMsNy44MywwLDAsMSwuMTEtMS4yOWwxLjc1LjNhNS4zNiw1LjM2LDAsMCwwLS4xMSwxLDYuMTgsNi4xOCwwLDAsMCw2LjI4LDYuMDYsNi4zNSw2LjM1LDAsMCwwLDUtMi40NmgyLjFBOC4wNiw4LjA2LDAsMCwxLDE5LjYyLDI4Ljg3Wk0yOS44'@; put 'OSwyMi4ySDI0LjM2VjIwLjQ0aDEuNDhBNi4xOSw2LjE5LDAsMCwwLDE5LjYyLDE1YTYuNDgsNi40OCwwLDAsMC0xLjQxLjE2bC0uNDUtMS43YTguMTYsOC4xNiwwLDAsMSwxLjg2LS4yMiw4LDgsMCwwLDEsOCw3LjIxaDIuMjZhLjg4Ljg4LDAsMCwxLDAsMS43NloiIGNsYXNzPSJjbHItaS1z'@; put 'b2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+XG4gICAgICAgICcpLGIuQ2xyU2hhcGVOVk1lPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNywyMlYxNGEyLDIsMCwwLDAtMi0ySDExYTIsMiwwLDAsMC0yLDJ2OGEyLDIsMCwwLDAsMiwySDI1QTIsMiwwLDAsMCwyNywyMlpNMTEsMTRI'@; put 'MjV2OEgxMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTkiIHk9IjYiIHdpZHRoPSI0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAg'@; put 'ICAgPHJlY3QgeD0iMjUuMDEiIHk9IjYiIHdpZHRoPSIxLjk3IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTUuOCw4SDE2Ljg3VjZoLTExTDcuNzgsNC4wOGExLDEsMCwwLDAsMC0xLjQyLDEs'@; put 'MSwwLDAsMC0xLjQxLDBMMiw3LDYuMzcsMTEuNGExLDEsMCwwLDAsMS40MSwwLDEsMSwwLDAsMCwwLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS42MSwyNC42OGExLDEsMCwwLDAtMS40MSwwLDEs'@; put 'MSwwLDAsMCwwLDEuNDJMMzAuMSwyOEgxOXYySDMwLjJsLTIsMmExLDEsMCwwLDAsMCwxLjQxLDEsMSwwLDAsMCwuNy4yOSwxLDEsMCwwLDAsLjcxLS4yOUwzNCwyOS4wNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHJlY3Qg'@; put 'eD0iMTMiIHk9IjI4IiB3aWR0aD0iNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjkiIHk9IjI4IiB3aWR0aD0iMS45NyIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgJyksYi5DbHJTaGFwZVNTRD0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZabTAsMjJINFY4SDMyWiIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSI2LjIxIiBjeT0iMTAuMjUiIHI9IjEuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjku'@; put 'ODEiIGN5PSIxMC4yNSIgcj0iMS4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSI2LjIxIiBjeT0iMjUuNDIiIHI9IjEuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAv'@; put 'PlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjkuODEiIGN5PSIyNS40MiIgcj0iMS4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAsMTguNjJjMS4zMi4zMSwxLjkxLjU0LDEuOTEsMS4yMnMtLjUzLDEu'@; put 'MDktMS41NSwxLjA5YTQsNCwwLDAsMS0yLjcxLTEuMTFsLS44NiwxLjA2YTUsNSwwLDAsMCwzLjUyLDEuMzRjMiwwLDMuMS0xLDMuMS0yLjUycy0xLjE1LTIuMDUtMi44Ny0yLjQ0Yy0xLjMxLS4zLTEuOTItLjU0LTEuOTItMS4yMUExLjI1LDEuMjUsMCwwLDEsMTAsMTVhMy42OCwzLjY4LDAs'@; put 'MCwxLDIuMzcsMWwuODEtMS4xQTQuNTgsNC41OCwwLDAsMCwxMCwxMy42OWMtMS43NCwwLTMsMS4wNS0zLDIuNDlTOC4yNiwxOC4yMiwxMCwxOC42MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3LjgzLDIw'@; put 'LjkzYTQsNCwwLDAsMS0yLjcxLTEuMTFsLS44NiwxLjA2YTUsNSwwLDAsMCwzLjUyLDEuMzRjMiwwLDMuMS0xLDMuMS0yLjUyUzE5LjczLDE3LjY1LDE4LDE3LjI2Yy0xLjMxLS4zLTEuOTItLjU0LTEuOTItMS4yMUExLjI1LDEuMjUsMCwwLDEsMTcuNDgsMTVhMy42OCwzLjY4LDAsMCwxLDIu'@; put 'MzcsMWwuODEtMS4xYTQuNTYsNC41NiwwLDAsMC0zLjEyLTEuMTVjLTEuNzMsMC0zLDEuMDUtMywyLjQ5czEuMTksMiwyLjg5LDIuNDRjMS4zMi4zMSwxLjkxLjU0LDEuOTEsMS4yMlMxOC44NSwyMC45MywxNy44MywyMC45M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC03IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LjksMThjMC0yLjQxLTEuOTItNC4xMi00LjY0LTQuMTJoLTIuOXY4LjI0aDIuOUMyOCwyMi4wOCwyOS45LDIwLjM3LDI5LjksMThabS02LTIuNzZoMS41NmEyLjc3LDIuNzcsMCwxLDEsMCw1LjUzSDIzLjg2WiIgY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTUuMjEsOEExLjI1LDEuMjUsMCwxLDEsNCw5LjI1LDEu'@; put 'MjUsMS4yNSwwLDAsMSw1LjIxLDhabTAsMjBhMS4yNSwxLjI1LDAsMSwxLDEuMjUtMS4yNUExLjI1LDEuMjUsMCwwLDEsNS4yMSwyOFptNS4wNi01Ljc4YTUsNSwwLDAsMS0zLjUyLTEuMzRsLjg2LTEuMDZhNCw0LDAsMCwwLDIuNzEsMS4xMWMxLDAsMS41NS0uNSwxLjU1LTEuMDlzLS41OS0u'@; put 'OTEtMS45MS0xLjIyYy0xLjctLjQtMi44OS0uODktMi44OS0yLjQ0czEuMjItMi40OSwzLTIuNDlhNC41OCw0LjU4LDAsMCwxLDMuMTIsMS4xNWwtLjgxLDEuMUEzLjY4LDMuNjgsMCwwLDAsMTAsMTVhMS4yNSwxLjI1LDAsMCwwLTEuMzksMS4wOGMwLC42Ny42MS45MSwxLjkyLDEuMjEsMS43'@; put 'Mi4zOSwyLjg3Ljk0LDIuODcsMi40NFMxMi4yNCwyMi4yMiwxMC4yNywyMi4yMlptNy41MSwwYTUsNSwwLDAsMS0zLjUyLTEuMzRsLjg2LTEuMDZhNCw0LDAsMCwwLDIuNzEsMS4xMWMxLDAsMS41NS0uNSwxLjU1LTEuMDlzLS41OS0uOTEtMS45MS0xLjIyYy0xLjctLjQtMi44OS0uODktMi44'@; put 'OS0yLjQ0czEuMjMtMi40OSwzLTIuNDlhNC41Niw0LjU2LDAsMCwxLDMuMTIsMS4xNWwtLjgxLDEuMWEzLjY4LDMuNjgsMCwwLDAtMi4zNy0xLDEuMjUsMS4yNSwwLDAsMC0xLjM5LDEuMDhjMCwuNjcuNjEuOTEsMS45MiwxLjIxLDEuNzIuMzksMi44Ny45NCwyLjg3LDIuNDRTMTkuNzUsMjIu'@; put 'MjIsMTcuNzgsMjIuMjJabTQuNTgtLjE0VjEzLjg0aDIuOWMyLjcyLDAsNC42NCwxLjcxLDQuNjQsNC4xMlMyOCwyMi4wOCwyNS4yNiwyMi4wOFpNMzAuNjksMjhhMS4yNSwxLjI1LDAsMSwxLDEuMjUtMS4yNUExLjI1LDEuMjUsMCwwLDEsMzAuNjksMjhabTAtMTcuNWExLjI1LDEuMjUsMCwx'@; put 'LDEsMS4yNS0xLjI1QTEuMjUsMS4yNSwwLDAsMSwzMC42OSwxMC41WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy44NiwxNS4yaDEuNTZhMi43NywyLjc3LDAsMSwxLDAsNS41M0gyMy44NloiIGNsYXNzPSJjbHIt'@; put 'aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICcpLGIuQ2xyU2hhcGVCbHVldG9vdGg9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI2LjY0LDI1LjI3LDE5LDE3LjUzLDE5LDMsMjUuMjEsOS40bC01LjY1LDUuNzlMMjEsMTYuNjJsNS42OC01LjgyYTIsMiwwLDAs'@; put 'MCwwLTIuNzhMMjAuNDgsMS43QTIuMDgsMi4wOCwwLDAsMCwxOC44NSwxLDIsMiwwLDAsMCwxNywzVjE1LjM4TDEwLjA1LDguMjdBMSwxLDAsMCwwLDguNjIsOS42NkwxNi43OSwxOCw5LjA2LDI2YTEsMSwwLDAsMCwwLDEuNDEsMSwxLDAsMCwwLC43LjI5LDEsMSwwLDAsMCwuNzItLjMxTDE3'@; put 'LDIwLjY4VjMzYTIuMDcsMi4wNywwLDAsMCwuNzEsMS42MkEyLDIsMCwwLDAsMTksMzVhMS45NCwxLjk0LDAsMCwwLDEuNDItLjZsNi4yMy02LjM4QTIsMiwwLDAsMCwyNi42NCwyNS4yN1pNMTksMzMuMDVWMjAuMjlsNi4yMSw2LjM2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTEiIC8+XG4gIDxwYXRoIGQ9Ik0yNi41MiwyNC41MmwtNS42NS01LjgzLTEuNDYtMS41di0xMkwyMy43OSw5LjdsLTMuNiwzLjcxLDIuMjQsMi4yOSw0LjA5LTQuMjJhMi41NCwyLjU0LDAsMCwwLDAtMy41NkwyMC41NywxLjc4QTIuNTQsMi41NCwwLDAsMCwxNi4yLDMuNTVW'@; put 'MTMuODZsLTUuNTMtNS43YTEuNiwxLjYsMCwxLDAtMi4zLDIuMjNMMTUuNzUsMThsLTcsNy4xOWExLjYsMS42LDAsMCwwLDAsMi4yNiwxLjYzLDEuNjMsMCwwLDAsMS4xMi40NSwxLjU4LDEuNTgsMCwwLDAsMS4xNS0uNDlsNS4xMS01LjI3VjMyLjQ1YTIuNTMsMi41MywwLDAsMCwxLjU5LDIu'@; put 'MzYsMi40NCwyLjQ0LDAsMCwwLC45NS4xOSwyLjU2LDIuNTYsMCwwLDAsMS44My0uNzdsNS45NS02LjE1QTIuNTQsMi41NCwwLDAsMCwyNi41MiwyNC41MlpNMTkuNCwzMC44M1YyMS43N2w0LjM5LDQuNTNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGIu'@; put 'Q2xyU2hhcGVCbHVldG9vdGhPZmY9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE5LDMsMjUuMjIsOS40bC01LjY2LDUuOEwyMSwxNi42M2w1LjY4LTUuODNhMiwyLDAsMCwwLDAtMi43OEwyMC40OCwxLjdBMiwyLDAsMCwwLDE4Ljg1LDEsMiwyLDAsMCwwLDE3LDN2MTEuNGwyLDJaIiBj'@; put 'bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNNC43Nyw1LDMuMzYsNi40MiwxNS44OSwxOSw5LjA2LDI2YTEsMSwwLDAsMCwuNzEsMS43LDEsMSwwLDAsMCwuNzItLjMxTDE3LDIwLjY4VjMyLjk0YTIuMDgsMi4wOCwwLDAsMCwuNzEsMS42M0Ey'@; put 'LDIsMCwwLDAsMTksMzVhMiwyLDAsMCwwLDEuNDItLjZsNS40MS01LjU0LDMuNTQsMy41M0wzMC43NywzMVpNMTksMzMuMDV2LTExbDUuNDEsNS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xOS4zMSw1LjE3LDIzLjcsOS43bC0z'@; put 'LjU5LDMuNzEsMi4yNCwyLjI5LDQuMDktNC4yMmEyLjU2LDIuNTYsMCwwLDAsMC0zLjU2bC02LTYuMTRhMi41MSwyLjUxLDAsMCwwLTIuNzctLjU5LDIuNTQsMi41NCwwLDAsMC0xLjYsMi4zNnYxMGwzLjIxLDMuMjFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAv'@; put 'PjxwYXRoIGQ9Ik00LjUsNSwzLjA5LDYuNDIsMTUuMTcsMTguNTEsOC43LDI1LjE5QTEuNiwxLjYsMCwwLDAsOS44NSwyNy45LDEuNTcsMS41NywwLDAsMCwxMSwyNy40MWw1LjExLTUuMjdWMzIuNDVhMi41NCwyLjU0LDAsMCwwLDEuNiwyLjM2LDIuNDQsMi40NCwwLDAsMCwuOTUuMTksMi41'@; put 'NSwyLjU1LDAsMCwwLDEuODItLjc3bDUuMTItNS4yOSwzLjQ5LDMuNDhMMzAuNSwzMVpNMTkuODEsMzAuODNWMjIuNjVsNCw0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxiLkNsclNoYXBlUHJvY2Vzc09uVk09KDAscC5jbHJJY29uU1ZHKSgnPHBhdGgg'@; put 'ZD0iTTMzLjQ5LDI2LjI4YTEsMSwwLDAsMC0xLjItLjdsLTIuNDkuNjdhMTQuMjMsMTQuMjMsMCwwLDAsMi40LTYuNzVBMTQuNDgsMTQuNDgsMCwwLDAsMjcuMzcsNy4zNSwxLDEsMCwwLDAsMjYsNy40NGExLDEsMCwwLDAsLjA5LDEuNDEsMTIuNDUsMTIuNDUsMCwwLDEsNC4xNiwxMC40Niwx'@; put 'Mi4xOSwxMi4xOSwwLDAsMS0yLDUuNzRMMjgsMjIuNTRhMSwxLDAsMSwwLTEuOTUuMTZsLjUsNi40NCw2LjI1LTEuNjZBMSwxLDAsMCwwLDMzLjQ5LDI2LjI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTQuMzEsMTcuMDhhMS4wNiwx'@; put 'LjA2LDAsMCwwLC40NC4xNiwxLDEsMCwwLDAsMS4xMi0uODVBMTIuMjEsMTIuMjEsMCwwLDEsMTguNjksNS44NEwxNi40NSw3LjM3YTEsMSwwLDAsMCwuNDcsMS43OUExLDEsMCwwLDAsMTcuNTYsOWw1LjMzLTMuNjZMMTguMzMuNzZhMSwxLDAsMSwwLTEuMzksMS4zOGwxLjcsMS43QTE0LjIs'@; put 'MTQuMiwwLDAsMCwzLjg5LDE2LjEyLDEsMSwwLDAsMCw0LjMxLDE3LjA4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTIxLjczLDI5LjkzYTEyLDEyLDAsMCwxLTQuODQuNTEsMTIuMywxMi4zLDAsMCwxLTkuNTctNi4zbDIuNDkuOTNh'@; put 'MSwxLDAsMCwwLC42OS0xLjg0bC00LjU5LTEuN2gwTDQuNDQsMjEsMy4zMywyNy4zNWExLDEsMCwwLDAsLjc5LDEuMTNsLjE3LDBhMSwxLDAsMCwwLDEtLjgxbC40Mi0yLjRhMTQuMywxNC4zLDAsMCwwLDExLDcuMTQsMTMuOTEsMTMuOTEsMCwwLDAsNS42My0uNiwxLDEsMCwwLDAtLjYtMS45'@; put 'WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTIyLDEzSDE0YTEsMSwwLDAsMC0xLDF2OGExLDEsMCwwLDAsMSwxaDhhMSwxLDAsMCwwLDEtMVYxNEExLDEsMCwwLDAsMjIsMTNabS0xLDhIMTVWMTVoNloiIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPicpLGIuQ2xyU2hhcGVBc3NpZ25Vc2VyPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwxN2E3LjQ2LDcuNDYsMCwxLDAtNy40NS03LjQ2QTcuNDYsNy40NiwwLDAsMCwxOCwxN1pNMTgsNC4wN2E1LjQ2LDUuNDYsMCwxLDEtNS40NSw1'@; put 'LjQ1QTUuNDYsNS40NiwwLDAsMSwxOCw0LjA3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTYsMzEuODlWMjUuNzdhMTYuMTMsMTYuMTMsMCwwLDEsMTItNSwxNi42MSwxNi42MSwwLDAsMSw4LjcxLDIuMzNsMS4zNS0xLjUxQTE4LjUz'@; put 'LDE4LjUzLDAsMCwwLDE4LDE4Ljc0LDE3LjcsMTcuNywwLDAsMCw0LjIxLDI0LjhhMSwxLDAsMCwwLS4yMS42djYuNDlBMi4wNiwyLjA2LDAsMCwwLDYsMzRIMTguMzlsLTEuOS0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTMwLDMx'@; put 'Ljg5LDMwLDMySDI2Ljg1bC0xLjgsMkgzMGEyLjA2LDIuMDYsMCwwLDAsMi0yLjA3VjI2LjJsLTIsMi4yM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zNC43NiwxOC42MmExLDEsMCwwLDAtMS40MS4wOGwtMTEuNjIsMTMtNS4yLTUu'@; put 'NTlBMSwxLDAsMCwwLDE1LjEyLDI2YTEsMSwwLDAsMC0uMDYsMS40Mmw2LjY5LDcuMkwzNC44NCwyMEExLDEsMCwwLDAsMzQuNzYsMTguNjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48Y2lyY2xlIGN4PSIxNy45OSIgY3k9IjEwLjM2IiByPSI2Ljgx'@; put 'IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xMiwyNi42NWEyLjgsMi44LDAsMCwxLDQuODUtMS44TDIwLjcxLDI5bDYuODQtNy42M0ExNi44MSwxNi44MSwwLDAsMCwxOCwxOC41NSwxNi4xMywxNi4xMywwLDAsMCw1LjUsMjRhMSwxLDAsMCww'@; put 'LS4yLjYxVjMwYTIsMiwwLDAsMCwxLjk0LDJoOC41N2wtMy4wNy0zLjNBMi44MSwyLjgxLDAsMCwxLDEyLDI2LjY1WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMjguNzYsMzJhMiwyLDAsMCwwLDEuOTQtMlYyNi4yNEwyNS41NywzMloiIGNs'@; put 'YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+PHBhdGggZD0iTTMzLjc3LDE4LjYyYTEsMSwwLDAsMC0xLjQyLjA4bC0xMS42MiwxMy01LjItNS41OUExLDEsMCwwLDAsMTQuMTIsMjZhMSwxLDAsMCwwLDAsMS40Mmw2LjY4LDcuMkwzMy44NCwyMEExLDEsMCwwLDAsMzMu'@; put 'NzcsMTguNjJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPicpLGIuQ2xyU2hhcGVBdG9tPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwxNC4wNWE0LDQsMCwxLDAsNCw0QTQsNCwwLDAsMCwxOCwxNC4wNVptMCw2LjQ0YTIuNDIsMi40MiwwLDEsMSwy'@; put 'LjQyLTIuNDJBMi40MiwyLjQyLDAsMCwxLDE4LDIwLjQ5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI0LjIzLDExLjcxYTM5LjE0LDM5LjE0LDAsMCwwLTQuNTctMy45MiwyMi44NiwyMi44NiwwLDAsMSwzLjQ4LTEuNzJjLjMyLS4x'@; put 'Mi42Mi0uMjEuOTItLjNhMi4yOCwyLjI4LDAsMCwwLDMuODEtLjQ2LDMuMzEsMy4zMSwwLDAsMSwxLjkyLjg0YzEuMTksMS4xOSwxLjIyLDMuNTkuMSw2LjU4LjQ5LjY1Ljk0LDEuMzEsMS4zNSwyLC4xNy0uNC4zNS0uNzkuNDktMS4xOCwxLjQ3LTMuODUsMS4yOC03LS41My04Ljc4YTUuMjks'@; put 'NS4yOSwwLDAsMC0zLjMzLTEuNDQsMi4yOSwyLjI5LDAsMCwwLTQuMzEuNTRjLS4zNy4xMS0uNzQuMjItMS4xMy4zN2EyNS43OSwyNS43OSwwLDAsMC00LjU3LDIuMzVBMjYuMjEsMjYuMjEsMCwwLDAsMTMuMjgsNC4yYy0zLjg1LTEuNDYtNy0xLjI4LTguNzcuNTNDMi44NSw2LjQsMi41OCw5'@; put 'LjE3LDMuNjgsMTIuNTlhMi4yOCwyLjI4LDAsMCwwLDEuNTksMy42N2MuMzIuNjEuNjcsMS4yMiwxLjA2LDEuODJBMjUuNTQsMjUuNTQsMCwwLDAsNCwyMi42NmMtMS40NywzLjg0LTEuMjgsNywuNTMsOC43N2E1LjYzLDUuNjMsMCwwLDAsNC4xMiwxLjUxLDEzLjM0LDEzLjM0LDAsMCwwLDQu'@; put 'NjUtMSwyNi4yMSwyNi4yMSwwLDAsMCw0LjU4LTIuMzVBMjUuNzksMjUuNzksMCwwLDAsMjIuNDMsMzJhMTQuMTYsMTQuMTYsMCwwLDAsMy42NS45QTIuMywyLjMsMCwwLDAsMzAuNDYsMzJhNC41NSw0LjU1LDAsMCwwLC43NC0uNTdjMS44MS0xLjgxLDItNC45My41My04Ljc3QTMyLjY4LDMy'@; put 'LjY4LDAsMCwwLDI0LjIzLDExLjcxWk0xMi41NywzMC4wOWMtMywxLjE1LTUuNDUsMS4xMy02LjY1LS4wOHMtMS4yMy0zLjYyLS4wNy02LjY0YTIyLjc3LDIyLjc3LDAsMCwxLDEuNzEtMy40OCw0MC4xOSw0MC4xOSwwLDAsMCwzLjkyLDQuNTZjLjQzLjQzLjg3Ljg1LDEuMzEsMS4yNXEuOS0u'@; put 'NDYsMS44My0xLjA1Yy0uNTgtLjUyLTEuMTYtMS0xLjcyLTEuNjFhMzQsMzQsMCwwLDEtNS43NC03LjQ3QTIuMjksMi4yOSwwLDAsMCw1LjUsMTEuNjloMGMtLjc1LTIuNS0uNjItNC40OS40My01LjU0YTMuNzIsMy43MiwwLDAsMSwyLjcyLS45MiwxMS40LDExLjQsMCwwLDEsMy45My44NCwy'@; put 'Mi44NiwyMi44NiwwLDAsMSwzLjQ4LDEuNzIsMzkuMTQsMzkuMTQsMCwwLDAtNC41NywzLjkyYy0uNDQuNDQtLjg3LjktMS4yOSwxLjM2YTIwLjI3LDIwLjI3LDAsMCwwLDEsMS44NWMuNTQtLjYxLDEuMDktMS4yMSwxLjY4LTEuOGEzNi4zMywzNi4zMywwLDAsMSw1LTQuMTcsMzYuODgsMzYu'@; put 'ODgsMCwwLDEsNC45NSw0LjE3LDM2LjI2LDM2LjI2LDAsMCwxLDQuMTcsNSwzNywzNywwLDAsMS00LjE3LDVBMzAuNjgsMzAuNjgsMCwwLDEsMTIuNTcsMzAuMDlaTTI5Ljc5LDMwbC0uMTYuMTNhMi4yNywyLjI3LDAsMCwwLTMuNS43MiwxMi41NywxMi41NywwLDAsMS0zLS43NywyMiwyMiww'@; put 'LDAsMS0zLjQ4LTEuNzIsMzkuMTQsMzkuMTQsMCwwLDAsNC41Ny0zLjkyLDM4LjI2LDM4LjI2LDAsMCwwLDMuOTItNC41NiwyMi44OCwyMi44OCwwLDAsMSwxLjcyLDMuNDhDMzEsMjYuMzksMzEsMjguODEsMjkuNzksMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtMiIgLz48cGF0aCBkPSJNMjQuMjMsMTEuNzFhMzkuMTQsMzkuMTQsMCwwLDAtNC41Ny0zLjkyLDIyLjg2LDIyLjg2LDAsMCwxLDMuNDgtMS43MmMuMzItLjEyLjYyLS4yMS45Mi0uM2EyLjI4LDIuMjgsMCwwLDAsMy44MS0uNDYsMy4zMSwzLjMxLDAsMCwxLDEuOTIuODRjMS4xOSwxLjE5'@; put 'LDEuMjIsMy41OS4xLDYuNTguNDkuNjUuOTQsMS4zMSwxLjM1LDIsLjE3LS40LjM1LS43OS40OS0xLjE4LDEuNDctMy44NSwxLjI4LTctLjUzLTguNzhhNS4yOSw1LjI5LDAsMCwwLTMuMzMtMS40NCwyLjI5LDIuMjksMCwwLDAtNC4zMS41NGMtLjM3LjExLS43NC4yMi0xLjEzLjM3YTI1Ljc5'@; put 'LDI1Ljc5LDAsMCwwLTQuNTcsMi4zNUEyNi4yMSwyNi4yMSwwLDAsMCwxMy4yOCw0LjJjLTMuODUtMS40Ni03LTEuMjgtOC43Ny41M0MyLjg1LDYuNCwyLjU4LDkuMTcsMy42OCwxMi41OWEyLjI4LDIuMjgsMCwwLDAsMS41OSwzLjY3Yy4zMi42MS42NywxLjIyLDEuMDYsMS44MkEyNS41NCwy'@; put 'NS41NCwwLDAsMCw0LDIyLjY2Yy0xLjQ3LDMuODQtMS4yOCw3LC41Myw4Ljc3YTUuNjMsNS42MywwLDAsMCw0LjEyLDEuNTEsMTMuMzQsMTMuMzQsMCwwLDAsNC42NS0xLDI2LjIxLDI2LjIxLDAsMCwwLDQuNTgtMi4zNUEyNS43OSwyNS43OSwwLDAsMCwyMi40MywzMmExNC4xNiwxNC4xNiww'@; put 'LDAsMCwzLjY1LjlBMi4zLDIuMywwLDAsMCwzMC40NiwzMmE0LjU1LDQuNTUsMCwwLDAsLjc0LS41N2MxLjgxLTEuODEsMi00LjkzLjUzLTguNzdBMzIuNjgsMzIuNjgsMCwwLDAsMjQuMjMsMTEuNzFaTTEyLjU3LDMwLjA5Yy0zLDEuMTUtNS40NSwxLjEzLTYuNjUtLjA4cy0xLjIzLTMuNjIt'@; put 'LjA3LTYuNjRhMjIuNzcsMjIuNzcsMCwwLDEsMS43MS0zLjQ4LDQwLjE5LDQwLjE5LDAsMCwwLDMuOTIsNC41NmMuNDMuNDMuODcuODUsMS4zMSwxLjI1cS45LS40NiwxLjgzLTEuMDVjLS41OC0uNTItMS4xNi0xLTEuNzItMS42MWEzNCwzNCwwLDAsMS01Ljc0LTcuNDdBMi4yOSwyLjI5LDAs'@; put 'MCwwLDUuNSwxMS42OWgwYy0uNzUtMi41LS42Mi00LjQ5LjQzLTUuNTRhMy43MiwzLjcyLDAsMCwxLDIuNzItLjkyLDExLjQsMTEuNCwwLDAsMSwzLjkzLjg0LDIyLjg2LDIyLjg2LDAsMCwxLDMuNDgsMS43MiwzOS4xNCwzOS4xNCwwLDAsMC00LjU3LDMuOTJjLS40NC40NC0uODcuOS0xLjI5'@; put 'LDEuMzZhMjAuMjcsMjAuMjcsMCwwLDAsMSwxLjg1Yy41NC0uNjEsMS4wOS0xLjIxLDEuNjgtMS44YTM2LjMzLDM2LjMzLDAsMCwxLDUtNC4xNywzNi44OCwzNi44OCwwLDAsMSw0Ljk1LDQuMTcsMzYuMjYsMzYuMjYsMCwwLDEsNC4xNyw1LDM3LDM3LDAsMCwxLTQuMTcsNUEzMC42OCwzMC42'@; put 'OCwwLDAsMSwxMi41NywzMC4wOVpNMjkuNzksMzBsLS4xNi4xM2EyLjI3LDIuMjcsMCwwLDAtMy41LjcyLDEyLjU3LDEyLjU3LDAsMCwxLTMtLjc3LDIyLDIyLDAsMCwxLTMuNDgtMS43MiwzOS4xNCwzOS4xNCwwLDAsMCw0LjU3LTMuOTIsMzguMjYsMzguMjYsMCwwLDAsMy45Mi00LjU2LDIy'@; put 'Ljg4LDIyLjg4LDAsMCwxLDEuNzIsMy40OEMzMSwyNi4zOSwzMSwyOC44MSwyOS43OSwzMFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PGNpcmNsZSBjeD0iMTcuOTkiIGN5PSIxOC4wNyIgcj0iMy4zIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMi42NiAzLjEx'@; put 'KSByb3RhdGUoLTkuMjIpIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLGIuQ2xyU2hhcGVCYXJDb2RlPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik01LDdBMSwxLDAsMCwwLDQsOFYzMGExLDEsMCwwLDAsMiwwVjhBMSwxLDAsMCwwLDUsN1oiIGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik05LDdBMSwxLDAsMCwwLDgsOFYyNmExLDEsMCwwLDAsMiwwVjhBMSwxLDAsMCwwLDksN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xMyw3YTEs'@; put 'MSwwLDAsMC0xLDFWMjZhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAsMCwxMyw3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTE3LDdhMSwxLDAsMCwwLTEsMVYyNmExLDEsMCwwLDAsMiwwVjhBMSwxLDAsMCwwLDE3LDdaIiBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMjEsN2ExLDEsMCwwLDAtMSwxVjI2YTEsMSwwLDAsMCwyLDBWOEExLDEsMCwwLDAsMjEsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0yNSw3YTEs'@; put 'MSwwLDAsMC0xLDFWMjZhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAsMCwyNSw3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+PHBhdGggZD0iTTI5LDdhMSwxLDAsMCwwLTEsMVYyNmExLDEsMCwwLDAsMiwwVjhBMSwxLDAsMCwwLDI5LDdaIiBjbGFzcz0i'@; put 'Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz48cGF0aCBkPSJNMzMsN2ExLDEsMCwwLDAtMSwxVjMwYTEsMSwwLDAsMCwyLDBWOEExLDEsMCwwLDAsMzMsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiAvPicpLGIuQ2xyU2hhcGVDZER2'@; put 'ZD0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGgg'@; put 'ZD0iTTIyLjMzLDE4YTQuNDYsNC40NiwwLDEsMC00LjQ1LDQuNDZBNC40Niw0LjQ2LDAsMCwwLDIyLjMzLDE4Wk0xNy44OCwyMC45QTIuODYsMi44NiwwLDEsMSwyMC43MywxOCwyLjg2LDIuODYsMCwwLDEsMTcuODgsMjAuOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC0yIiAvPjxwYXRoIGQ9Ik0xNy44OCw3LjQzSDE4VjUuODRoLS4xMkExMi4yMSwxMi4yMSwwLDAsMCw1LjY4LDE3Ljc1aDEuNkExMC42MSwxMC42MSwwLDAsMSwxNy44OCw3LjQzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMw'@; put 'LjA4LDE4SDI4LjQ5djBBMTAuNjEsMTAuNjEsMCwwLDEsMTguMjUsMjguNjN2MS42QTEyLjIyLDEyLjIyLDAsMCwwLDMwLjA5LDE4UzMwLjA4LDE4LDMwLjA4LDE4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTE4LDExVjkuNDRoLS4x'@; put 'MmE4LjYyLDguNjIsMCwwLDAtOC42LDguMzJoMS42YTcsNywwLDAsMSw3LTYuNzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMTguMjUsMjV2MS42QTguNjEsOC42MSwwLDAsMCwyNi40OCwxOHYwaC0xLjZ2MEE3LDcsMCwwLDEsMTgu'@; put 'MjUsMjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz48cGF0aCBkPSJNMTguMTcsMS45MmExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCwxOC4xNywxLjkyWk0yNi4yMywxOGgxLjU0YTkuNjEsOS42MSwwLDAsMS05LjYsOS41M0gxOFYyNmguMTdB'@; put 'OC4wNyw4LjA3LDAsMCwwLDI2LjIzLDE4Wk02LjA1LDE4SDQuNDV2LS4wOEExMy43MiwxMy43MiwwLDAsMSwxOCw0LjIxdjEuNkExMi4xMywxMi4xMywwLDAsMCw2LjA1LDE3LjkyWm00LjA1LDBIOC41NnYtLjA4QTkuNjEsOS42MSwwLDAsMSwxOCw4LjMyVjkuODZhOC4wNyw4LjA3LDAsMCww'@; put 'LTcuOSw4LjA2Wm00LjMyLS4wOGEzLjc1LDMuNzUsMCwxLDEsMy43NSwzLjc1QTMuNzUsMy43NSwwLDAsMSwxNC40MiwxNy45MlptMy43NSwxMy43MUgxOFYzMGguMTdBMTIuMTMsMTIuMTMsMCwwLDAsMzAuMjgsMThoMS42QTEzLjczLDEzLjczLDAsMCwxLDE4LjE3LDMxLjYzWiIgY2xhc3M9'@; put 'ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxiLkNsclNoYXBlQ29udGFpbmVyPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMiwzMEg0YTIsMiwwLDAsMS0yLTJWOEEyLDIsMCwwLDEsNCw2SDMyYTIsMiwwLDAsMSwyLDJWMjhBMiwyLDAsMCwxLDMyLDMwWk00LDhW'@; put 'MjhIMzJWOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik05LDI1LjNhLjguOCwwLDAsMS0uOC0uOHYtMTNhLjguOCwwLDAsMSwxLjYsMHYxM0EuOC44LDAsMCwxLDksMjUuM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp'@; put 'bmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xNC45MiwyNS4zYS44LjgsMCwwLDEtLjgtLjh2LTEzYS44LjgsMCwwLDEsMS42LDB2MTNBLjguOCwwLDAsMSwxNC45MiwyNS4zWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTIxLDI1LjNhLjgu'@; put 'OCwwLDAsMS0uOC0uOHYtMTNhLjguOCwwLDAsMSwxLjYsMHYxM0EuOC44LDAsMCwxLDIxLDI1LjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMjcsMjUuM2EuOC44LDAsMCwxLS44LS44di0xM2EuOC44LDAsMCwxLDEuNiwwdjEzQS44'@; put 'LjgsMCwwLDEsMjcsMjUuM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0zMiw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlpNOS42MywyNC4yM2EuNzkuNzks'@; put 'MCwwLDEtLjgxLjc3QS43OS43OSwwLDAsMSw4LDI0LjIzVjExLjc3QS43OS43OSwwLDAsMSw4LjgyLDExYS43OS43OSwwLDAsMSwuODEuNzdabTYsMGEuNzkuNzksMCwwLDEtLjgyLjc3Ljc5Ljc5LDAsMCwxLS44MS0uNzdWMTEuNzdhLjc5Ljc5LDAsMCwxLC44MS0uNzcuNzkuNzksMCwwLDEs'@; put 'LjgyLjc3Wm02LjIxLDBhLjc5Ljc5LDAsMCwxLS44Mi43Ny43OS43OSwwLDAsMS0uODEtLjc3VjExLjc3YS43OS43OSwwLDAsMSwuODEtLjc3Ljc5Ljc5LDAsMCwxLC44Mi43N1ptNi4xMiwwYS43OS43OSwwLDAsMS0uODIuNzcuNzkuNzksMCwwLDEtLjgxLS43N1YxMS43N2EuNzkuNzksMCww'@; put 'LDEsLjgxLS43Ny43OS43OSwwLDAsMSwuODIuNzdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGIuQ2xyU2hhcGVDb250YWluZXJWb2x1bWU9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTgsMTcuNThhMzIuMzUsMzIuMzUsMCwwLDAsNi4zLjkyLDQu'@; put 'MTMsNC4xMywwLDAsMSwuOTItMS4zNywzMC45NCwzMC45NCwwLDAsMS03LjIyLTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNNiwyOFY4LjE5Yy4zNC0uNzYsNC4zMS0yLjExLDExLTIuMTFzMTAuNjcsMS4zNSwxMSwydi4zYy0uODIu'@; put 'NzktNC41OCwyLjA1LTExLjExLDIuMDVBMzMuNDgsMzMuNDgsMCwwLDEsOCw5LjQ0djEuNDRhMzUuNiwzNS42LDAsMCwwLDguODksMWM0LjI5LDAsOC44LS41OCwxMS4xMS0xLjgydjUuMDdhNS4zLDUuMywwLDAsMS0xLjgxLjg4SDMwVjguMTJjMC0zLjE5LTguMTctNC0xMy00cy0xMywuODUt'@; put 'MTMsNFYyOEM0LDMwLjYzLDkuMzksMzEuNjgsMTQsMzJWMzBDOS4xMywyOS42Niw2LjI4LDI4LjYyLDYsMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNOCwyNC4yOGEzMS4zLDMxLjMsMCwwLDAsNiwuODl2LTEuNGEyOC45MywyOC45'@; put 'MywwLDAsMS02LS45M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMiwxOEgxOGEyLDIsMCwwLDAtMiwyVjMyYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMEEyLDIsMCwwLDAsMzIsMThaTTE4LDMyVjIwSDMyVjMyWiIg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTIxLDIxLjdhLjcuNywwLDAsMC0uNy43djcuNDlhLjcuNywwLDAsMCwxLjQsMFYyMi40QS43LjcsMCwwLDAsMjEsMjEuN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC01IiAvPjxwYXRoIGQ9Ik0yNSwyMS44MmEuNy43LDAsMCwwLS43LjdWMzBhLjcuNywwLDEsMCwxLjQsMFYyMi41MkEuNy43LDAsMCwwLDI1LDIxLjgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+PHBhdGggZD0iTTI5LDIxLjdhLjcuNywwLDAsMC0u'@; put 'Ny43djcuNDlhLjcuNywwLDEsMCwxLjQsMFYyMi40QS43LjcsMCwwLDAsMjksMjEuN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPjxwYXRoIGQ9Ik0zMiwxOEgxOGEyLDIsMCwwLDAtMiwyVjMyYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYy'@; put 'MEEyLDIsMCwwLDAsMzIsMThaTTE4LDMyVjIwSDMyVjMyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMjEsMjEuN2EuNy43LDAsMCwwLS43Ljd2Ny40OWEuNy43LDAsMCwwLDEuNCwwVjIyLjRBLjcuNywwLDAsMCwyMSwyMS43WiIgY2xhc3M9'@; put 'ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMjUsMjEuODJhLjcuNywwLDAsMC0uNy43VjMwYS43LjcsMCwxLDAsMS40LDBWMjIuNTJBLjcuNywwLDAsMCwyNSwyMS44MloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+PHBhdGgg'@; put 'ZD0iTTI5LDIxLjdhLjcuNywwLDAsMC0uNy43djcuNDlhLjcuNywwLDEsMCwxLjQsMFYyMi40QS43LjcsMCwwLDAsMjksMjEuN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+PHBhdGggZD0iTTE4LDE2SDI4VjguMTJjMC0xLjY4LTUuMzgtMy0xMi0zUzQsNi40'@; put 'NCw0LDguMTJWMjhjMCwxLjUsNC4zMywyLjc1LDEwLDNWMjUuMjJhMjkuMTcsMjkuMTcsMCwwLDEtOC0xLjI5VjIyLjQ0bC4yNC4xQTI2LjYzLDI2LjYzLDAsMCwwLDE0LDIzLjgyVjIwYTQsNCwwLDAsMSwuMjktMS40N0EyOS4xOSwyOS4xOSwwLDAsMSw2LDE3LjIzVjE1Ljc1bC4yNC4wOWEy'@; put 'OSwyOSwwLDAsMCw5LDEuMzJoMEE0LDQsMCwwLDEsMTgsMTZaTTYsMTAuNTRWOS4wNWwuMjQuMDlBMzAuMTIsMzAuMTIsMCwwLDAsMTYsMTAuNDcsMjguMzMsMjguMzMsMCwwLDAsMjYsOS4wNXYxLjVhMzIuNTMsMzIuNTMsMCwwLDEtMTAsMS4zMkEzMi40NCwzMi40NCwwLDAsMSw2LDEwLjU0'@; put 'WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIgLz4nKSxiLkNsclNoYXBlRmlsZVNoYXJlPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMCw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwy'@; put 'LDJIMzBhMiwyLDAsMCwwLDItMlYxMUEyLDIsMCwwLDAsMzAsOVptMCwyMEg2VjEzaDcuMzFhMiwyLDAsMCwwLDItMkg2VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MUgzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0y'@; put 'MS45MSwyMi40OGEyLjA2LDIuMDYsMCwwLDAtMS40NC42MmwtNS43Mi0yLjY2VjIwbDUuNjYtMi42NWEyLjA4LDIuMDgsMCwxLDAsLjA2LTIuOTQsMi4xMiwyLjEyLDAsMCwwLS42NCwxLjQ4di4yM2wtNS42NCwyLjY2YTIuMDgsMi4wOCwwLDEsMC0uMDgsMi45NWwuMDgtLjA4LDUuNjcsMi42'@; put 'NnYuM2EyLjA5LDIuMDksMCwxLDAsMi4wOC0yLjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzAsOUgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIs'@; put 'MiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDMwLDlaTTYsN2g2LjQ5bDIuNzIsNEg2Wk0yMS45NCwyNi42NGEyLjA5LDIuMDksMCwwLDEtMi4xMS0yLjA2bDAtLjMtNS42Ny0yLjY2LS4wOC4wOGEyLjA4LDIuMDgsMCwxLDEsLjA4LTIuOTVsNS42NC0yLjY2di0uMjNhMi4wOCwyLjA4LDAsMSwx'@; put 'LC41OCwxLjQ2TDE0Ljc1LDIwdi40N2w1LjcyLDIuNjZhMi4wNywyLjA3LDAsMSwxLDEuNDcsMy41NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksYi5DbHJTaGFwZVFyQ29kZT0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNS42LDRBMS42LDEuNiww'@; put 'LDAsMCw0LDUuNlYxMmg4VjRaTTEwLDEwSDZWNmg0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTQsMzAuNEExLjYsMS42LDAsMCwwLDUuNiwzMkgxMlYyNEg0Wk02LDI2aDR2NEg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTI0LDMyaDYuNEExLjYsMS42LDAsMCwwLDMyLDMwLjRWMjRIMjRabTItNmg0djRIMjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzAuNCw0SDI0djhoOFY1LjZBMS42LDEuNiwwLDAs'@; put 'MCwzMC40LDRaTTMwLDEwSDI2VjZoNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwb2x5Z29uIHBvaW50cz0iMjAgMTAgMjAgOCAxNiA4IDE2IDEyIDE4IDEyIDE4IDEwIDIwIDEwIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtNSIgLz48cmVjdCB4PSIxMiIgeT0iMTIiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxyZWN0IHg9IjE0IiB5PSIxNCIgd2lkdGg9IjQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTciIC8+PHBvbHlnb24gcG9pbnRzPSIyMCA2IDIwIDggMjIgOCAyMiA0IDE0IDQgMTQgOCAxNiA4IDE2IDYgMjAgNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIC8+PHJlY3QgeD0iNCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjQiIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC05IiAvPjxwb2x5Z29uIHBvaW50cz0iMTIgMTYgMTIgMTggMTAgMTggMTAgMTQgOCAxNCA4IDE4IDYgMTggNiAyMCA0IDIwIDQgMjIgOCAyMiA4IDIwIDEwIDIwIDEwIDIyIDEyIDIyIDEyIDIwIDE0IDIwIDE0IDE2IDEyIDE2'@; put 'IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiIC8+PHBvbHlnb24gcG9pbnRzPSIyMCAxNiAyMiAxNiAyMiAxOCAyNCAxOCAyNCAxNiAyNiAxNiAyNiAxNCAyMiAxNCAyMiAxMCAyMCAxMCAyMCAxMiAxOCAxMiAxOCAxNCAyMCAxNCAyMCAxNiIgY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTExIiAvPjxwb2x5Z29uIHBvaW50cz0iMTggMzAgMTQgMzAgMTQgMzIgMjIgMzIgMjIgMzAgMjAgMzAgMjAgMjggMTggMjggMTggMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMiIgLz48cG9seWdvbiBw'@; put 'b2ludHM9IjIyIDIwIDIyIDE4IDIwIDE4IDIwIDE2IDE4IDE2IDE4IDE4IDE2IDE4IDE2IDIwIDE4IDIwIDE4IDIyIDIwIDIyIDIwIDIwIDIyIDIwIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTMiIC8+PHJlY3QgeD0iMzAiIHk9IjIwIiB3aWR0aD0iMiIgaGVp'@; put 'Z2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTQiIC8+PHJlY3QgeD0iMjIiIHk9IjIwIiB3aWR0aD0iNiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTUiIC8+PHBvbHlnb24gcG9pbnRzPSIzMCAxNCAy'@; put 'OCAxNCAyOCAxNiAyNiAxNiAyNiAxOCAyOCAxOCAyOCAyMCAzMCAyMCAzMCAxOCAzMiAxOCAzMiAxNiAzMCAxNiAzMCAxNCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE2IiAvPjxyZWN0IHg9IjIwIiB5PSIyMiIgd2lkdGg9IjIiIGhlaWdodD0iNiIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE3IiAvPjxwb2x5Z29uIHBvaW50cz0iMTQgMjggMTYgMjggMTYgMjYgMTggMjYgMTggMjQgMTYgMjQgMTYgMjAgMTQgMjAgMTQgMjgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xOCIgLz4nKSxiLkNs'@; put 'clNoYXBlVXNiPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNC4yOSwxMS40YTEuNDksMS40OSwwLDAsMSwxLjI4LS43MmgxYTIuODksMi44OSwwLDAsMCwyLjc1LDIuMDksMywzLDAsMCwwLDAtNS45MSwyLjksMi45LDAsMCwwLTIuNjcsMS44MkgxNS41N2EzLjQ5LDMuNDksMCwwLDAt'@; put 'MywxLjY2bC0zLDQuODNoMi4zNlptNS0yLjk0QTEuMzYsMS4zNiwwLDEsMSwxOCw5LjgxLDEuMzIsMS4zMiwwLDAsMSwxOS4zMyw4LjQ2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTM0LjMsMTcuMzdsLTYuMTEtMy42NmEuNy43LDAs'@; put 'MCwwLS43LDAsLjcxLjcxLDAsMCwwLS4zNi42MVYxN0g2LjkyYTIuMzMsMi4zMywwLDAsMSwuMzIsMS4xNywyLjQ3LDIuNDcsMCwxLDEtMi40Ny0yLjQ2LDIuMzcsMi4zNywwLDAsMSwxLjE1LjNsLjkzLTEuNzZBNC40NCw0LjQ0LDAsMSwwLDkuMTUsMTloMy41OGw0LjE3LDYuNjVhMy40OSwz'@; put 'LjQ5LDAsMCwwLDMsMS42NmgxLjY2djEuMjhhLjc5Ljc5LDAsMCwwLC44Ljc5aDQuNDlhLjc5Ljc5LDAsMCwwLC44LS43OXYtNC40YS43OS43OSwwLDAsMC0uOC0uOEgyMi4zNGEuOC44LDAsMCwwLS44Ljh2MS4xMkgxOS44OGExLjUxLDEuNTEsMCwwLDEtMS4yOC0uNzJMMTUuMDksMTloMTJ2'@; put 'Mi42NmEuNjkuNjksMCwwLDAsLjM2LjYxLjY3LjY3LDAsMCwwLC4zNC4wOS42NS42NSwwLDAsMCwuMzYtLjFsNi4xMS0zLjY2YS42OS42OSwwLDAsMCwuMzQtLjZBLjcxLjcxLDAsMCwwLDM0LjMsMTcuMzdaTTIzLjE0LDI1SDI2djIuOEgyMy4xNFptNS4zOS00LjU2VjE1LjU1bDQsMi40Mloi'@; put 'IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zNC43MiwxNy4zN2wtNS41MS0zLjMxYS43MS43MSwwLDAsMC0xLjA3LjZWMTdIMTEuNzdsMy41Mi01LjZhMS40OSwxLjQ5LDAsMCwxLDEuMjgtLjcyaDEuNjRhMi40MSwyLjQxLDAsMCwwLDIu'@; put 'MjUsMS42MSwyLjQ4LDIuNDgsMCwwLDAsMC00Ljk1LDIuMzgsMi4zOCwwLDAsMC0yLjEzLDEuMzRIMTYuNTdhMy40OSwzLjQ5LDAsMCwwLTMsMS42Nkw5LjQxLDE3SDhhMy40NiwzLjQ2LDAsMSwwLC4wOCwyaDUuNjRsNC4xNSw2LjYyYTMuNDksMy40OSwwLDAsMCwzLDEuNjZoMi41OXYuOTJo'@; put 'NC40VjIzLjhoLTQuNHYxLjQ4SDIwLjg4YTEuNTEsMS41MSwwLDAsMS0xLjI4LS43MkwxNi4xMSwxOWgxMnYyLjI4YS43LjcsMCwwLDAsLjM2LjYxLjcyLjcyLDAsMCwwLC4zNC4wOS42NS42NSwwLDAsMCwuMzYtLjFsNS41Mi0zLjMxYS43LjcsMCwwLDAsMC0xLjJaIiBjbGFzcz0iY2xyLWkt'@; put 'c29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGIuQ2xyU2hhcGVSYWRhcj0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsMThjMCw3LjctNi4zLDE0LTE0LDE0Yy03LjcsMC0xNC02LjMtMTQtMTRDNCwxMC42LDkuNyw0LjUsMTcuMSw0djMuN2MtNS43LDAuNS05LjksNS41LTku'@; put 'NCwxMS4yczUuNSw5LjksMTEuMiw5LjRcblx0YzUuMy0wLjUsOS40LTQuOSw5LjQtMTAuM2gtMmMwLDQuNi0zLjcsOC4zLTguMyw4LjNzLTguMy0zLjctOC4zLTguM2MwLTQuMiwzLjEtNy44LDcuMy04LjN2NC40Yy0xLjgsMC40LTMuMSwyLTMuMSwzLjlcblx0YzAsMi4yLDEuOCw0LDQsNHM0'@; put 'LTEuOCw0LTRjMC0xLjgtMS4zLTMuNC0zLTMuOFYyLjFDMTguNiwyLDE4LjMsMiwxOCwyQzkuMiwyLDIsOS4yLDIsMThzNy4yLDE2LDE2LDE2czE2LTcuMiwxNi0xNkgzMnogTTIwLDE4XG5cdGMwLDEuMS0wLjksMi0yLDJzLTItMC45LTItMnMwLjktMiwyLTJTMjAsMTYuOSwyMCwxOHoiIGNs'@; put 'YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMiwxOGMwLDcuNy02LjIsMTQtMTQsMTRTNCwyNS44LDQsMThjMC03LjQsNS43LTEzLjUsMTMuMS0xNHYzLjdjLTUuNywwLjUtOS44LDUuNS05LjMsMTEuMnM1LjUsOS44LDExLjIsOS4zXG5cdFx0'@; put 'YzUuMy0wLjUsOS4zLTQuOSw5LjMtMTAuMmgtMmMwLDQuNi0zLjcsOC4zLTguMyw4LjNTOS43LDIyLjYsOS43LDE4YzAtNC4yLDMuMi03LjgsNy4zLTguMnY0LjRjLTIuMSwwLjYtMy40LDIuNy0yLjksNC45XG5cdFx0YzAuNiwyLjEsMi43LDMuNCw0LjksMi45YzIuMS0wLjYsMy40LTIuNywy'@; put 'LjktNC45Yy0wLjQtMS40LTEuNS0yLjUtMi45LTIuOVYyYy0wLjQsMC0wLjcsMC0xLjEsMGMtOC44LDAtMTYsNy4yLTE2LDE2XG5cdFx0YzAsOC44LDcuMiwxNiwxNiwxNnMxNi03LjIsMTYtMTZjMCwwLDAsMCwwLDBIMzJ6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0x'@; put 'IiAvPicpLGIuQ2xyU2hhcGVJbmR1Y3Rvcj0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjQuMzEsMjUuODFjLTEuNzUsMC0zLTIuNDktMy02YTEyLjc5LDEyLjc5LDAsMCwxLDEuNzItNi43LDIuNTcsMi41NywwLDAsMC0zLjc5LDBBMTIuNzksMTIuNzksMCwwLDEsMjEsMTkuNzZjMCwz'@; put 'LjU2LTEuMjMsNi0zLDZzLTMtMi40OS0zLTZhMTIuNzksMTIuNzksMCwwLDEsMS43Mi02LjcsMi41NywyLjU3LDAsMCwwLTMuNzksMCwxMi43OSwxMi43OSwwLDAsMSwxLjcyLDYuN2MwLDMuNTYtMS4yMyw2LTMsNnMtMy0yLjQ5LTMtNmExMi44OCwxMi44OCwwLDAsMSwxLjcxLTYuNywyLjcs'@; put 'Mi43LDAsMCwwLTEuODktLjg3QzcuMSwxMi4xOSw1LjY5LDEzLjcsNSwxNmwtLjIzLjdIMmExLDEsMCwwLDEsMC0ySDMuMjljMS4xLTIuODMsMy4wNi00LjU1LDUuMjQtNC41NWE0LjY3LDQuNjcsMCwwLDEsMy4xNiwxLjMyLDQuNjIsNC42MiwwLDAsMSwzLjE1LTEuMzJBNC42NSw0LjY1LDAs'@; put 'MCwxLDE4LDExLjUxYTQuNDMsNC40MywwLDAsMSw2LjMxLDAsNC42Nyw0LjY3LDAsMCwxLDMuMTYtMS4zMmMyLjE4LDAsNC4xNCwxLjcyLDUuMjQsNC41NUgzNGExLDEsMCwwLDEsMCwySDMxLjI4bC0uMjMtLjdjLS43NC0yLjM0LTIuMTUtMy44NS0zLjU4LTMuODVhMi43LDIuNywwLDAsMC0x'@; put 'Ljg5Ljg3LDEyLjg4LDEyLjg4LDAsMCwxLDEuNzEsNi43QzI3LjI5LDIzLjMyLDI2LjA3LDI1LjgxLDI0LjMxLDI1LjgxWk0xOCwxNC45M2ExMS43MSwxMS43MSwwLDAsMC0xLDQuODNjMCwyLjU0LjY2LDMuNzUsMSw0LC4zMi0uMjcsMS0xLjQ4LDEtNEExMS43MSwxMS43MSwwLDAsMCwxOCwx'@; put 'NC45M1ptNi4zMSwwYTExLjcxLDExLjcxLDAsMCwwLTEsNC44M2MwLDIuNTQuNjYsMy43NSwxLDQsLjMyLS4yNywxLTEuNDgsMS00QTExLjcxLDExLjcxLDAsMCwwLDI0LjMxLDE0LjkzWm0tMTIuNjIsMGExMS43MSwxMS43MSwwLDAsMC0xLDQuODNjMCwyLjU0LjY2LDMuNzUsMSw0LC4zMi0u'@; put 'MjcsMS0xLjQ4LDEtNEExMS43MSwxMS43MSwwLDAsMCwxMS42OSwxNC45M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLGIuQ2xyU2hhcGVSZXNpc3Rvcj0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjkuNDMsMjYuMzRoMEExLjQ3LDEuNDcs'@; put 'MCwwLDEsMjgsMjUuMjJMMjQuODYsMTMuMTUsMjEuNzQsMjUuMjJhMS40OSwxLjQ5LDAsMCwxLTEuNDUsMS4xMmgwYTEuNDksMS40OSwwLDAsMS0xLjQ2LTEuMTJMMTUuNzEsMTMuMTUsMTIuNiwyNS4yMmExLjUxLDEuNTEsMCwwLDEtMi45MSwwTDYuNTcsMTMuMTUsNS4yMiwxOC4zN0gyYTEs'@; put 'MSwwLDAsMSwwLTJIMy42N2wxLjQ1LTUuNTlBMS40OCwxLjQ4LDAsMCwxLDYuNTcsOS42NmgwQTEuNDcsMS40NywwLDAsMSw4LDEwLjc4bDMuMTIsMTIuMDcsMy4xMi0xMi4wN2ExLjQ5LDEuNDksMCwwLDEsMS40NS0xLjEyaDBhMS40OSwxLjQ5LDAsMCwxLDEuNDYsMS4xMmwzLjEyLDEyLjA3'@; put 'LDMuMTItMTIuMDdhMS41LDEuNSwwLDAsMSwyLjksMGwzLjEyLDEyLjA3LDEuMzUtNS4yMkgzNGExLDEsMCwwLDEsMCwySDMyLjMzbC0xLjQ1LDUuNTlBMS40OCwxLjQ4LDAsMCwxLDI5LjQzLDI2LjM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+Jyks'@; put 'Yi5DbHJTaGFwZUNhcGFjaXRvcj0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTUsMzQuMDZhMSwxLDAsMCwxLTEtMVYzLjE1YTEsMSwwLDEsMSwyLDBWMzMuMDZBMSwxLDAsMCwxLDE1LDM0LjA2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBh'@; put 'dGggZD0iTTIxLDM0LjA2YTEsMSwwLDAsMS0xLTFWMy4xNWExLDEsMCwxLDEsMiwwVjMzLjA2QTEsMSwwLDAsMSwyMSwzNC4wNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xNC40NiwxOUgzYTEsMSwwLDAsMSwwLTJIMTQuNDZhMSwx'@; put 'LDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMywxOUgyMS41NGExLDEsMCwwLDEsMC0ySDMzYTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxiLkNs'@; put 'clNoYXBlU3F1aWQ9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDdhMSwxLDAsMCwxLTEtMVYzLjE5YTEsMSwwLDAsMSwyLDBWNkExLDEsMCwwLDEsMTgsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xOCwzNGExLDEsMCww'@; put 'LDEtMS0xVjMwYTEsMSwwLDAsMSwyLDB2M0ExLDEsMCwwLDEsMTgsMzRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNNy40MSwxOGwxLjc4LTEuNzdhMSwxLDAsMSwwLTEuNDItMS40Mkw2LDE2LjU5LDQuMjMsMTQuODFhMSwxLDAsMSww'@; put 'LTEuNDIsMS40Mkw0LjU5LDE4LDIuODEsMTkuNzdhMSwxLDAsMCwwLDAsMS40MiwxLDEsMCwwLDAsLjcxLjI5LDEsMSwwLDAsMCwuNzEtLjI5TDYsMTkuNDFsMS43NywxLjc4YTEsMSwwLDAsMCwxLjQyLDAsMSwxLDAsMCwwLDAtMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik02LDEzLjc2bC4zNi0uMzZhMywzLDAsMCwxLDIuMTEtLjg4LDExLDExLDAsMCwxLDE5LDAsMywzLDAsMCwxLDIuMTIuODhsLjM2LjM2LjItLjJhMTMsMTMsMCwwLDAtMjQuNCwwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w'@; put 'YXRoLTQiIC8+PHBhdGggZD0iTTMwLDIyLjI0bC0uMzYuMzZhMywzLDAsMCwxLTIuMTIuODgsMTEsMTEsMCwwLDEtMTksMCwzLDMsMCwwLDEtMi4xMi0uODhMNiwyMi4yNGwtLjIuMmExMywxMywwLDAsMCwyNC40LDBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt'@; put 'NSIgLz48cGF0aCBkPSJNMzEuNDEsMThsMS43OC0xLjc3YTEsMSwwLDAsMC0xLjQyLTEuNDJMMzAsMTYuNTlsLTEuNzctMS43OGExLDEsMCwxLDAtMS40MiwxLjQyTDI4LjU5LDE4bC0xLjc4LDEuNzdhMSwxLDAsMCwwLDAsMS40MiwxLDEsMCwwLDAsLjcxLjI5LDEsMSwwLDAsMCwuNzEtLjI5'@; put 'TDMwLDE5LjQxbDEuNzcsMS43OGExLDEsMCwwLDAsMS40MiwwLDEsMSwwLDAsMCwwLTEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz4nKSxiLkNsclNoYXBlSG9zdEdyb3VwPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMS4wOCwzNGgtMTRB'@; put 'MS4wOCwxLjA4LDAsMCwxLDYsMzNWMTJhMS4wOCwxLjA4LDAsMCwxLDEuMDgtMS4wOGgxNEExLjA4LDEuMDgsMCwwLDEsMjIuMTYsMTJWMzNBMS4wOCwxLjA4LDAsMCwxLDIxLjA4LDM0Wk04LjE2LDMxLjg4SDIwVjEzSDguMTZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l'@; put 'LXBhdGgtMSIgLz5cbjxyZWN0IHg9IjEwLjA4IiB5PSIxNC45NiIgd2lkdGg9IjgiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTI2LjEsMjcuODFoLTJWOWgtMTJWN2gxM2ExLDEsMCwwLDEsMSwxWiIgY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG48cGF0aCBkPSJNMzAuMDgsMjNoLTJWNWgtMTFWM2gxMmExLDEsMCwwLDEsMSwxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHJlY3QgeD0iMTMuMDgiIHk9IjI3Ljg4IiB3aWR0aD0i'@; put 'MiIgaGVpZ2h0PSIyLjE2IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cblxuPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE1LjA4LDMxIEwxLjA4LDMxIEMwLjUxMzQyNzE5NywzMS4wMDE1NTY0IDAuMDQxOTY2'@; put 'Mzc2NSwzMC41NjUwMTg2IDAsMzAgTDAsOSBDMCw4LjQwMzUzMjQ3IDAuNDgzNTMyNDcsNy45MiAxLjA4LDcuOTIgTDE1LjA4LDcuOTIgQzE1LjY3NjQ2NzUsNy45MiAxNi4xNiw4LjQwMzUzMjQ3IDE2LjE2LDkgTDE2LjE2LDMwIEMxNi4xMTgwMzM2LDMwLjU2NTAxODYgMTUuNjQ2NTcyOCwz'@; put 'MS4wMDE1NTY0IDE1LjA4LDMxIFogTTQuMDgsMTEuOTYgTDQuMDgsMTMuOTYgTDEyLjA4LDEzLjk2IEwxMi4wOCwxMS45NiBMNC4wOCwxMS45NiBaIE03LjA4LDI0Ljg4IEw3LjA4LDI3LjA0IEw5LjA4LDI3LjA0IEw5LjA4LDI0Ljg4IEw3LjA4LDI0Ljg4IFoiIC8+XG48cGF0aCBjbGFzcz0i'@; put 'Y2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjAuMSwyNC44MSBMMTguMSwyNC44MSBMMTguMSw2IEw2LjEsNiBMNi4xLDQgTDE5LjEsNCBDMTkuNjUyMjg0Nyw0IDIwLjEsNC40NDc3MTUyNSAyMC4xLDUgTDIwLjEsMjQuODEgWiIgLz5cbjxwYXRoIGNsYXNzPSJjbHItaS1z'@; put 'b2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0yNC4wOCwyMCBMMjIuMDgsMjAgTDIyLjA4LDIgTDExLjA4LDIgTDExLjA4LDAgTDIzLjA4LDAgQzIzLjYzMjI4NDcsMCAyNC4wOCwwLjQ0NzcxNTI1IDI0LjA4LDEgTDI0LjA4LDIwIFoiIC8+JyksYi5DbHJTaGFwZVN0b3JhZ2VBZGFwdGVy'@; put 'PSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik02LjA2LDMwYTEsMSwwLDAsMS0xLTFWOGgtMmExLDEsMCwwLDEsMC0yaDRWMjlBMSwxLDAsMCwxLDYuMDYsMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMzAuMDYsMjdoLTI1'@; put 'VjloMjVhMywzLDAsMCwxLDMsM1YyNEEzLDMsMCwwLDEsMzAuMDYsMjdabS0yMy0yaDIzYTEsMSwwLDAsMCwxLTFWMTJhMSwxLDAsMCwwLTEtMWgtMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cmVjdCB4PSIyMi4wNiIgeT0iMjAiIHdpZHRo'@; put 'PSI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxyZWN0IHg9IjIyLjA2IiB5PSIxNCIgd2lkdGg9IjYiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgPHBhdGggZD0i'@; put 'TTE5LjA2LDIyaC04VjIwaDdWMTRoMnY3QTEsMSwwLDAsMSwxOS4wNiwyMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+JyksYi5DbHJTaGFwZU5vZGVHcm91cD0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMuNTMsMjEuNThsLTQuOTQtMi44M1Yx'@; put 'My4wOWExLDEsMCwwLDAtLjUxLS44N0wyMi42NCw5LjFhMSwxLDAsMCwwLTEsMEwxNi4yLDEyLjIyYTEsMSwwLDAsMC0uNTEuODd2NS42NmwtNC45NCwyLjgzYTEsMSwwLDAsMC0uNS44N3Y2LjI0YTEsMSwwLDAsMCwuNS44Nmw1LjQ1LDMuMTJhMSwxLDAsMCwwLDEsMGw0Ljk1LTIuODMsNC45'@; put 'NSwyLjgzYTEsMSwwLDAsMCwuNS4xNCwxLDEsMCwwLDAsLjQ5LS4xNGw1LjQ1LTMuMTJhMSwxLDAsMCwwLC41LS44NlYyMi40NUExLDEsMCwwLDAsMzMuNTMsMjEuNThaTTIyLjE0LDExLjEybDQuNDUsMi41NVYxOWwtNC40NiwyLjU2LTQuNDQtMi42VjEzLjY3Wk0xNi42OSwzMC42NWwtNC40'@; put 'NC0yLjU0VjIzbDQuNjgtMi42OCw0LjQsMi41N1YyOFpNMzIsMjguMTFsLTQuNDQsMi41NEwyMi45MywyOFYyMi45M2w0LjQ2LTIuNTdMMzIsMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNNywyNy40M2ExLDEsMCwwLDEtMS0x'@; put 'VjE5LjlBMSwxLDAsMCwxLDYuNSwxOWw0Ljk1LTIuODNWMTAuNTRhMSwxLDAsMCwxLC41LS44N2w1LjIxLTNhMSwxLDAsMCwxLDEuMzcuMzcsMSwxLDAsMCwxLS4zOCwxLjM3bC00LjcsMi42OHY1LjY2YTEsMSwwLDAsMS0uNTEuODdMOCwyMC40OHY1Ljk1QTEsMSwwLDAsMSw3LDI3LjQzWiIg'@; put 'Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTMsMjUuMDVhMSwxLDAsMCwxLTEtMVYxNy41M2ExLDEsMCwwLDEsLjUtLjg2bDUtMi44NFY4LjE3QTEsMSwwLDAsMSw4LDcuMzFsNS4yNS0zYTEsMSwwLDAsMSwxLDEuNzRMOS40NSw4Ljc1'@; put 'djUuNjZhMSwxLDAsMCwxLS41MS44N0w0LDE4LjExdjUuOTRBMSwxLDAsMCwxLDMsMjUuMDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPicpLGIuQ2xyU2hhcGVOb2Rlcz0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTAuNSwzNC4yOSwyLDI5LjM5'@; put 'VjE5LjU4bDguNS00LjksOC41LDQuOXY5LjgxWk00LDI4LjIzLDEwLjUsMzIsMTcsMjguMjNWMjAuNzRMMTAuNSwxNyw0LDIwLjc0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTI1LjUsMzQuMjksMTcsMjkuMzlWMTkuNThsOC41'@; put 'LTQuOSw4LjUsNC45djkuODFaTTE5LDI4LjIzLDI1LjUsMzIsMzIsMjguMjNWMjAuNzRMMjUuNSwxNywxOSwyMC43NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0xOCwyMS4zMmwtOC41LTQuOVY2LjYxTDE4LDEuNzFsOC41LDQu'@; put 'OXY5LjgxWm0tNi41LTYuMDZMMTgsMTlsNi41LTMuNzVWNy43N0wxOCw0LDExLjUsNy43N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+JyksYi5DbHJTaGFwZU5hbWVzcGFjZT0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjcsNC4xOGExLDEsMCwx'@; put 'LDAtMSwxLjczbDYsMy40N1YyNi42MmwtNiwzLjQ3YTEsMSwwLDAsMC0uMzcsMS4zNiwxLDEsMCwwLDAsMS4zNy4zN2w3LTQuMDVWOC4yM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik05LjY4LDI5LjksNCwyNi42MlY5LjM4TDku'@; put 'NjgsNi4xYTEsMSwwLDEsMC0xLTEuNzNMMiw4LjIzVjI3Ljc3bDYuNjgsMy44NmExLDEsMCwwLDAsMS4zNy0uMzdBMSwxLDAsMCwwLDkuNjgsMjkuOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0xMCwxMlYyNGEyLDIsMCwwLDAs'@; put 'MiwySDI0YTIsMiwwLDAsMCwyLTJWMTJhMiwyLDAsMCwwLTItMkgxMkEyLDIsMCwwLDAsMTAsMTJabTcsMHY1SDEyVjEyWm0tNSw3aDV2NUgxMlptNyw1VjE5aDV2NVptNS03SDE5VjEyaDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPicpLGIuQ2xyU2hh'@; put 'cGVOb2RlPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwzMC42Niw3LDI0LjMzVjExLjY3TDE4LDUuMzRsMTEsNi4zM1YyNC4zM1pNOSwyMy4xOGw5LDUuMTcsOS01LjE3VjEyLjgyTDE4LDcuNjUsOSwxMi44MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC0xIi8+JyksYi5DbHJTaGFwZVBvZD0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjYsMzJIMTBhNiw2LDAsMCwxLTYtNlYxMGE2LDYsMCwwLDEsNi02SDI2YTYsNiwwLDAsMSw2LDZWMjZBNiw2LDAsMCwxLDI2LDMyWk0xMCw2YTQsNCwwLDAsMC00LDRWMjZhNCw0LDAsMCwwLDQsNEgy'@; put 'NmE0LDQsMCwwLDAsNC00VjEwYTQsNCwwLDAsMC00LTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMjYuNTYsMTVIMTUuNDRBMS40MywxLjQzLDAsMCwwLDE0LDE2LjQ0djguMTJBMS40MywxLjQzLDAsMCwwLDE1LjQ0LDI2SDI2'@; put 'LjU2QTEuNDMsMS40MywwLDAsMCwyOCwyNC41NlYxNi40NEExLjQzLDEuNDMsMCwwLDAsMjYuNTYsMTVaTTI2LDI0SDE2VjE3SDI2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTEyLjQsMTlIMTBWMTJIMjB2MS40aDJ2LTJBMS40'@; put 'MywxLjQzLDAsMCwwLDIwLjU2LDEwSDkuNDRBMS40MywxLjQzLDAsMCwwLDgsMTEuNDR2OC4xMkExLjQzLDEuNDMsMCwwLDAsOS40NCwyMWgzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz4nKSxiLkNsckNvbnRyb2xMdW49KDAscC5jbHJJY29uU1ZHKSgn'@; put 'XG4gIDxwYXRoIGQ9Ik04LDI0LjU5YTI1LjUsMjUuNSwwLDAsMCwyLjc1LjU5bDEuMjEtMS40MWEyNC4xMywyNC4xMywwLDAsMS00LS44M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik02LDI3LjUzVjEwLjNjMi45LDEuNDMsOC4z'@; put 'NCwxLjg4LDEyLDEuODhzOS4xLS40NSwxMi0xLjg4djUuMTFjLS45MS44Mi01LDIuMTMtMTIsMi4xM0EzNC44MSwzNC44MSwwLDAsMSw4LDE2LjMzVjE4YTQwLjg2LDQwLjg2LDAsMCwwLDEwLDEuMTZjMy40NiwwLDkuMTMtLjQ1LDEyLTEuOTF2My4yM2gyVjhoMHMwLDAsMC0uMDdjMC0zLjM1'@; put 'LTguOC00LjI1LTE0LTQuMjVTNCw0LjU4LDQsNy45M3YxOS42YzAsMiwzLjE3LDMuMTQsNi44MywzLjcyTDguMzgsMjguNjhDNywyOC4yOCw2LjEzLDI3Ljg0LDYsMjcuNTNaTTE4LDUuNjhjNy4xNSwwLDExLjUzLDEuNDQsMTIsMi4yNS0uNDYuODEtNC44NCwyLjI1LTEyLDIuMjVTNi4zMSw4'@; put 'LjY5LDYsOEM2LjMxLDcuMTgsMTAuNzEsNS42OCwxOCw1LjY4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTMyLjA5LDIySDE1LjQ2bC01LjQxLDYuMzFMMTUuNDksMzRoMTYuNmEyLDIsMCwwLDAsMi0yVjIzLjkzQTIsMiwwLDAs'@; put 'MCwzMi4wOSwyMlptMCwxMEgxNi4zNGwtMy41OS0zLjc3TDE2LjM4LDI0SDMyLjA5djhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cGF0aCBkPSJNMTYuMTEsMjdhMSwxLDAsMSwwLDEsMUExLDEsMCwwLDAsMTYuMTEsMjdaIiBjbGFzcz0iY2xy'@; put 'LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuXG4gIDxwYXRoIGQ9Ik04LDI0LjU5YTI1LjUsMjUuNSwwLDAsMCwyLjc1LjU5bDEuMjEtMS40MWEyNC4xMywyNC4xMywwLDAsMS00LS44M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTEtLWJhZGdlZCIvPlxuICA8cGF0aCBkPSJNMzIuMDksMjJIMTUuNDZsLTUuNDEsNi4zMUwxNS40OSwzNGgxNi42YTIsMiwwLDAsMCwyLTJWMjMuOTNBMiwyLDAsMCwwLDMyLjA5LDIyWm0wLDEwSDE2LjM0bC0zLjU5LTMuNzdMMTYuMzgsMjRIMzIuMDl2OFoiIGNsYXNzPSJjbHItaS1vdXRs'@; put 'aW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICA8cGF0aCBkPSJNMTYuMTEsMjdhMSwxLDAsMSwwLDEsMUExLDEsMCwwLDAsMTYuMTEsMjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAg'@; put 'PHBhdGggZD0iTTE4LDE3LjU0QTM0LjgxLDM0LjgxLDAsMCwxLDgsMTYuMzNWMThhNDAuODYsNDAuODYsMCwwLDAsMTAsMS4xNmMzLjQ2LDAsOS4xMy0uNDUsMTItMS45MXYzLjIzaDJWMTMuMjJhNy4zMiw3LjMyLDAsMCwxLTIsLjI4djEuOTFDMjkuMDksMTYuMjMsMjUsMTcuNTQsMTgsMTcu'@; put 'NTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTYsMjcuNTNWMTAuM2MyLjksMS40Myw4LjM0LDEuODgsMTIsMS44OGE0Ny42Niw0Ny42NiwwLDAsMCw3LjA5LS41Miw3LjQ1LDcuNDUsMCwwLDEtMS41'@; put 'MS0xLjgsNDcuNCw0Ny40LDAsMCwxLTUuNTguMzJDMTAuNzEsMTAuMTgsNi4zMSw4LjY5LDYsOGMuMzItLjgsNC43Mi0yLjMsMTItMi4zLDEuNjYsMCwzLjE2LjA4LDQuNTEuMjFhNy41Niw3LjU2LDAsMCwxLC4yOS0yYy0xLjctLjE3LTMuMzgtLjI0LTQuOC0uMjQtNS4yLDAtMTQsLjktMTQs'@; put 'NC4yNXYxOS42YzAsMiwzLjE3LDMuMTQsNi44MywzLjcyTDguMzgsMjguNjhDNywyOC4yOCw2LjEzLDI3Ljg0LDYsMjcuNTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiLz5cbiAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1'@; put 'IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cblxuICA8cGF0aCBkPSJNOCwyNC41OWEyNS41LDI1LjUsMCwwLDAsMi43NS41OWwxLjIxLTEuNDFhMjQuMTMsMjQuMTMsMCwwLDEtNC0uODNaIi8+PHBhdGgg'@; put 'ZD0iTTMyLjA5LDIySDE1LjQ2bC01LjQxLDYuMzFMMTUuNDksMzRoMTYuNmEyLDIsMCwwLDAsMi0yVjIzLjkzQTIsMiwwLDAsMCwzMi4wOSwyMlptMCwxMEgxNi4zNGwtMy41OS0zLjc3TDE2LjM4LDI0SDMyLjA5djhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMTYuMTEsMjdhMSwxLDAsMSwwLDEsMUExLDEsMCwwLDAsMTYuMTEsMjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNNiwyNy41M1Yx'@; put 'MC4zYzIuOSwxLjQzLDguMzQsMS44OCwxMiwxLjg4aC41OWEzLjU5LDMuNTksMCwwLDEsLjMyLTJIMThDMTAuNzEsMTAuMTgsNi4zMSw4LjY5LDYsOGMuMzItLjgsNC43Mi0yLjMsMTItMi4zLDEuMjIsMCwyLjM1LjA1LDMuNDEuMTJsMS4xLTEuOTFjLTEuNi0uMTUtMy4xNy0uMjEtNC41MS0u'@; put 'MjEtNS4yLDAtMTQsLjktMTQsNC4yNXYxOS42YzAsMiwzLjE3LDMuMTQsNi44MywzLjcyTDguMzgsMjguNjhDNywyOC4yOCw2LjEzLDI3Ljg0LDYsMjcuNTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICA8cGF0aCBk'@; put 'PSJNOCwxNi4zM1YxOGE0MC44Niw0MC44NiwwLDAsMCwxMCwxLjE2YzMuNDYsMCw5LjEzLS40NSwxMi0xLjkxdjMuMjNoMlYxNS40SDMwYy0uOTEuODItNSwyLjEzLTEyLDIuMTNBMzQuODEsMzQuODEsMCwwLDEsOCwxNi4zM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1p'@; put 'LW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0yNi44NSwxLjE0bC01LjcyLDkuOTFBMS4yNywxLjI3LDAsMCwwLDIyLjIzLDEzSDMzLjY4YTEuMjcsMS4yNywwLDAsMCwxLjEtMS45MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cblxuICA8cGF0aCBkPSJNMTYuMTEsMjdhMSwxLDAsMSwwLDEsMUExLDEsMCwwLDAsMTYuMTEsMjdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0x'@; put 'Ii8+XG4gIDxwYXRoIGQ9Ik0zMi4wOSwyMUgzMlYxNy4zMmMtMS45LDIuOTMtMTAuNDYsMy4zLTE0LDMuM0E0Mi40Myw0Mi40MywwLDAsMSw4LDE5LjU2VjE3Ljg4QTQwLjU5LDQwLjU5LDAsMCwwLDE4LDE5YzUsMCwxMy4yLS44MiwxNC0zLjgyVjEwLjcyYy0yLjIxLDMuMzYtMTAuNDksMy40'@; put 'Ni0xNCwzLjQ2QTQyLjEyLDQyLjEyLDAsMCwxLDgsMTMuMTFWMTFhNDAuNTksNDAuNTksMCwwLDAsMTAsMS4xNGM1LDAsMTMuMjgtLjgzLDE0LTMuODhWNy44M2gwYy0uMTktMy4yNy04Ljg0LTQuMTUtMTQtNC4xNVM0LjIxLDQuNTYsNCw3LjgzSDR2MTkuN2MwLDIuMTYsMy42NCwzLjMsNy42'@; put 'MywzLjg0bDIuODQsMywuNTkuNjJoMTdhMywzLDAsMCwwLDMtM1YyMy45M0EzLDMsMCwwLDAsMzIuMDksMjFaTTgsMjYuMDhWMjQuNGEyNS43OSwyNS43OSwwLDAsMCwzLjQ2LjdsLTEuMjQsMS40NEM5LjQ2LDI2LjQyLDguNzEsMjYuMjcsOCwyNi4wOFpNMzMuMDksMzJhMSwxLDAsMCwxLTEs'@; put 'MUgxNS45MkwxMS40LDI4LjIzLDE1LjkyLDIzSDMyLjA5YTEsMSwwLDAsMSwxLDFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG5cbiAgPHBhdGggZD0iTTE2LjExLDI3YTEsMSwwLDEsMCwxLDFBMSwxLDAsMCwwLDE2LjExLDI3WiIgY2xhc3M9ImNsci1pLXNv'@; put 'bGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTMyLjA5LDIxSDMyVjE3LjMyYy0xLjksMi45My0xMC40NiwzLjMtMTQsMy4zQTQyLjQzLDQyLjQzLDAsMCwxLDgsMTkuNTZWMTcuODhBNDAuNTksNDAuNTksMCwwLDAsMTgsMTljNSwwLDEzLjIt'@; put 'LjgyLDE0LTMuODJ2LTJhNy4zNCw3LjM0LDAsMCwxLTQuMTIsMCwzOS40NywzOS40NywwLDAsMS05Ljg4LDFBNDIuMTIsNDIuMTIsMCwwLDEsOCwxMy4xMVYxMWE0MC41OSw0MC41OSwwLDAsMCwxMCwxLjE0LDQ3Ljc2LDQ3Ljc2LDAsMCwwLDcuMDktLjUyQTcuNDUsNy40NSwwLDAsMSwyMi44'@; put 'LDMuOTJjLTEuNy0uMTctMy4zOC0uMjQtNC44LS4yNC01LjE0LDAtMTMuNzkuODgtMTQsNC4xNUg0djE5LjdjMCwyLjE2LDMuNjQsMy4zLDcuNjMsMy44NGwyLjg0LDMsLjU5LjYyaDE3YTMsMywwLDAsMCwzLTNWMjMuOTNBMywzLDAsMCwwLDMyLjA5LDIxWk04LDI2LjA4VjI0LjRhMjUuNzks'@; put 'MjUuNzksMCwwLDAsMy40Ni43bC0xLjI0LDEuNDRDOS40NiwyNi40Miw4LjcxLDI2LjI3LDgsMjYuMDhaTTMzLjA5LDMyYTEsMSwwLDAsMS0xLDFIMTUuOTJMMTEuNCwyOC4yMywxNS45MiwyM0gzMi4wOWExLDEsMCwwLDEsMSwxWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWkt'@; put 'c29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuXG4gIDxwYXRoIGQ9Ik0xNi4xMSwyN2ExLDEsMCwxLDAsMSwxQTEs'@; put 'MSwwLDAsMCwxNi4xMSwyN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTMyLjA5LDIxSDMyVjE3LjMyYy0xLjksMi45My0xMC40NiwzLjMtMTQsMy4zQTQyLjQzLDQyLjQzLDAsMCwxLDgsMTkuNTZWMTcu'@; put 'ODhBNDAuNTksNDAuNTksMCwwLDAsMTgsMTljNC44NSwwLDEyLjgtLjc5LDEzLjkxLTMuNjJIMjIuMjNhMy42OCwzLjY4LDAsMCwxLTIuNzMtMS4yM0gxOEE0Mi4xMiw0Mi4xMiwwLDAsMSw4LDEzLjExVjExYTQwLjU5LDQwLjU5LDAsMCwwLDEwLDEuMTRoLjU5YTMuNjEsMy42MSwwLDAsMSwu'@; put 'NDYtMi4yOWwzLjQ2LTZjLTEuNi0uMTUtMy4xNy0uMjEtNC41MS0uMjEtNS4xNCwwLTEzLjc5Ljg4LTE0LDQuMTVINHYxOS43YzAsMi4xNiwzLjY0LDMuMyw3LjYzLDMuODRsMi44NCwzLC41OS42MmgxN2EzLDMsMCwwLDAsMy0zVjIzLjkzQTMsMywwLDAsMCwzMi4wOSwyMVpNOCwyNi4wOFYy'@; put 'NC40YTI1Ljc5LDI1Ljc5LDAsMCwwLDMuNDYuN2wtMS4yNCwxLjQ0QzkuNDYsMjYuNDIsOC43MSwyNi4yNyw4LDI2LjA4Wk0zMy4wOSwzMmExLDEsMCwwLDEtMSwxSDE1LjkyTDExLjQsMjguMjMsMTUuOTIsMjNIMzIuMDlhMSwxLDAsMCwxLDEsMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxl'@; put 'cnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTI2Ljg1LDEuMTRsLTUuNzIsOS45MUExLjI3LDEuMjcsMCwwLDAsMjIuMjMsMTNIMzMuNjhhMS4yNywxLjI3LDAsMCwwLDEuMS0xLjkxTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRa'@; put 'IiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICcpLGIuQ2xyU2hhcGVNZWRpYUNoYW5nZXI9KDAscC5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGQ9Ik0zMCw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCww'@; put 'LDAsMiwySDcuODh2MS41N2ExLDEsMCwwLDAsMiwwVjMyaDE2djEuNTdhMSwxLDAsMCwwLDIsMFYzMkgzMGEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMwLDRaTTYsMzBWNkgzMFYzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxyZWN0IHg9'@; put 'IjIwIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0IHg9IjI0IiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHJlY3QgeD0iMjAiIHk9IjIyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBj'@; put 'bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cmVjdCB4PSIyNCIgeT0iMjIiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0yNy4yMiwxMEgyMHY0YS44Ljgs'@; put 'MCwxLDAsMS41OSwwVjExLjZoNS42M2EuOC44LDAsMSwwLDAtMS42WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMTAiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC02Ii8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjE0IiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIxOCIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMjIiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC05Ii8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjI2IiB3aWR0aD0i'@; put 'OC4xNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiLz5cblxuICA8cmVjdCB4PSIyMCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdl'@; put 'ZCIvPlxuICA8cmVjdCB4PSIyNCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICA8cmVjdCB4PSIyMCIgeT0iMjIiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICA8cmVjdCB4PSIyNCIgeT0iMjIiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIvPlxuICA8cmVjdCB4'@; put 'PSI4LjgxIiB5PSIxMCIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjE0IiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMTgiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWJhZGdlZCIvPlxuICA8cmVjdCB4'@; put 'PSI4LjgxIiB5PSIyMiIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOC0tYmFkZ2VkIi8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjI2IiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0'@; put 'bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC05LS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTIwLDE0YS44LjgsMCwxLDAsMS41OSwwVjExLjZIMjVBNy43NCw3Ljc0LDAsMCwxLDIzLjY2LDEwSDIwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBh'@; put 'dGgtMTAtLWJhZGdlZCIvPlxuICA8cGF0aCBkPSJNMzAsMTMuNWgwVjMwSDZWNkgyMi41VjZhNy4zNyw3LjM3LDAsMCwxLC4yOC0ySDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDcuODh2MS41N2ExLDEsMCwwLDAsMiwwVjMyaDE2djEuNTdhMSwxLDAsMCwwLDIsMFYzMkgzMGEy'@; put 'LDIsMCwwLDAsMi0yVjEzLjIyQTcuMzcsNy4zNywwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTEtLWJhZGdlZCIvPlxuICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRn'@; put 'ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEyLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cblxuICA8cmVjdCB4PSIyMCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gIDxyZWN0'@; put 'IHg9IjI0IiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgPHJlY3QgeD0iMjAiIHk9IjIyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0t'@; put 'YWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICA8cmVjdCB4PSIyNCIgeT0iMjIiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gIDxyZWN0IHg9IjguODEi'@; put 'IHk9IjEwIiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIxNCIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUt'@; put 'LWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWFsZXJ0ZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMTgiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC03LS1hbGVydGVkIi8+XG4gIDxyZWN0IHg9'@; put 'IjguODEiIHk9IjIyIiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtOC0tYWxlcnRlZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIyNiIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTMwLDE1LjRWMzBINlY2SDIxLjI3bDEuMTgtMkg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkg3Ljg4djEuNTdhMSwxLDAsMCwwLDIsMFYzMmgxNnYxLjU3YTEsMSwwLDAs'@; put 'MCwyLDBWMzJIMzBhMiwyLDAsMCwwLDItMlYxNS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEwLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0yNi44NSwxLjE0bC01LjcyLDkuOTFBMS4yNywxLjI3LDAsMCwwLDIyLjIzLDEzSDMzLjY4YTEu'@; put 'MjcsMS4yNywwLDAsMCwxLjEtMS45MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTExLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG5cbiAgPHBhdGggZD0iTTMwLDRINkEyLDIs'@; put 'MCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJINy44OHYxLjU3YTEsMSwwLDAsMCwyLDBWMzJoMTZ2MS41N2ExLDEsMCwwLDAsMiwwVjMySDMwYTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMzAsNFpNMTcsMjhIOC44MVYyNkgxN1ptMC00SDguODFWMjJIMTdabTAtNEg4LjgxVjE4SDE3Wm0w'@; put 'LTRIOC44MVYxNEgxN1ptMC00SDguODFWMTBIMTdaTTIyLDI0SDIwVjIyaDJabTAtNEgyMFYxOGgyWm00LDRIMjRWMjJoMlptMC00SDI0VjE4aDJabTAtNkgyMFYxMGg2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuXG4gIDxwYXRoIGQ9Ik0zMCwxMy41YTcu'@; put 'NDksNy40OSwwLDAsMS00LTEuMTZWMTRIMjBWMTBoMy42NkE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2YTcuMzcsNy4zNywwLDAsMSwuMjgtMkg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkg3Ljg4djEuNTdhMSwxLDAsMCwwLDIsMFYzMmgxNnYxLjU3YTEsMSwwLDAsMCwyLDBWMzJI'@; put 'MzBhMiwyLDAsMCwwLDItMlYxMy4yMkE3LjM3LDcuMzcsMCwwLDEsMzAsMTMuNVpNMTcsMjhIOC44MVYyNkgxN1ptMC00SDguODFWMjJIMTdabTAtNEg4LjgxVjE4SDE3Wm0wLTRIOC44MVYxNEgxN1ptMC00SDguODFWMTBIMTdaTTIyLDI0SDIwVjIyaDJabTAtNEgyMFYxOGgyWm00LDRIMjRW'@; put 'MjJoMlptMC00SDI0VjE4aDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNs'@; put 'ci1pLWJhZGdlIi8+XG5cbiAgPHBhdGggZD0iTTIyLjIzLDE1LjRhMy42OCwzLjY4LDAsMCwxLTMuMTgtNS41MUwyMi40NSw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDcuODh2MS41N2ExLDEsMCwwLDAsMiwwVjMyaDE2djEuNTdhMSwxLDAsMCwwLDIsMFYzMkgzMGEyLDIs'@; put 'MCwwLDAsMi0yVjE1LjRaTTE3LDI4SDguODFWMjZIMTdabTAtNEg4LjgxVjIySDE3Wm0wLTRIOC44MVYxOEgxN1ptMC00SDguODFWMTRIMTdabTAtNEg4LjgxVjEwSDE3Wk0yMiwyNEgyMFYyMmgyWm0wLTRIMjBWMThoMlptNCw0SDI0VjIyaDJabTAtNEgyNFYxOGgyWiIgY2xhc3M9ImNsci1p'@; put 'LXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4yMywxM0gzMy42OGExLjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAs'@; put 'MjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgJyksYi5DbHJTaGFwZVRhcGVEcml2ZT0oMCxwLmNsckljb25TVkcpKCdcbiAgPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4'@; put 'YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk00LDI4VjhIMzJWMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMTMuMzMsMTMuMzVhNC41Miw0LjUyLDAsMSwwLDQuNTMsNC41MkE0LjUz'@; put 'LDQuNTMsMCwwLDAsMTMuMzMsMTMuMzVabTAsNy40NGEyLjkyLDIuOTIsMCwxLDEsMi45My0yLjkyQTIuOTIsMi45MiwwLDAsMSwxMy4zMywyMC43OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0yMy42MiwxMy4zNWE0LjUyLDQu'@; put 'NTIsMCwxLDAsNC41Miw0LjUyQTQuNTMsNC41MywwLDAsMCwyMy42MiwxMy4zNVptMCw3LjQ0YTIuOTIsMi45MiwwLDEsMSwyLjkyLTIuOTJBMi45MiwyLjkyLDAsMCwxLDIzLjYyLDIwLjc5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHBhdGgg'@; put 'ZD0iTTYsMTFWMjMuNTVIOFYxMkgyOS4zNFYxMEg3QTEsMSwwLDAsMCw2LDExWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cblxuICA8cGF0aCBkPSJNOC44MSwxNy44N2E0LjUzLDQuNTMsMCwxLDAsNC41Mi00LjUyQTQuNTMsNC41MywwLDAsMCw4Ljgx'@; put 'LDE3Ljg3Wm03LjQ1LDBBMi45MywyLjkzLDAsMSwxLDEzLjMzLDE1LDIuOTMsMi45MywwLDAsMSwxNi4yNiwxNy44N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICA8cGF0aCBkPSJNMTkuMSwxNy44N2E0LjUyLDQuNTIs'@; put 'MCwxLDAsNC41Mi00LjUyQTQuNTMsNC41MywwLDAsMCwxOS4xLDE3Ljg3Wm03LjQ0LDBBMi45MiwyLjkyLDAsMSwxLDIzLjYyLDE1LDIuOTIsMi45MiwwLDAsMSwyNi41NCwxNy44N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIv'@; put 'PlxuICA8cGF0aCBkPSJNMzIsMTMuMjJWMjhINFY4SDIyLjc4YTcuMzcsNy4zNywwLDAsMS0uMjgtMkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNjUsNy42NSwwLDAsMSwzMiwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i'@; put 'YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICA8cGF0aCBkPSJNNiwxMVYyMy41NUg4VjEySDI1LjUxYTcuNjYsNy42NiwwLDAsMS0xLjg1LTJIN0ExLDEsMCwwLDAsNiwxMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQt'@; put 'LWJhZGdlZCIvPlxuICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuXG4gIDxwYXRoIGQ9Ik04LjgxLDE3Ljg3YTQuNTMsNC41MywwLDEsMCw0LjUyLTQu'@; put 'NTJBNC41Myw0LjUzLDAsMCwwLDguODEsMTcuODdabTcuNDUsMEEyLjkzLDIuOTMsMCwxLDEsMTMuMzMsMTUsMi45MywyLjkzLDAsMCwxLDE2LjI2LDE3Ljg3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgPHBhdGgg'@; put 'ZD0iTTcsMTBhMSwxLDAsMCwwLTEsMVYyMy41NUg4VjEySDE4LjU3QTMuNywzLjcsMCwwLDEsMTksMTBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMlYyOEg0VjhIMjAuMTRs'@; put 'MS4xNS0ySDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMzhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMjIuMDksMTUuMzlhMy42NSwzLjY1LDAs'@; put 'MCwxLTEuOC0uNTUsNC41MSw0LjUxLDAsMSwwLDcuMTEuNTZIMjUuMTdhMi45MiwyLjkyLDAsMSwxLTMuMDgsMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0yNi44NSwxLjE0bC01LjcyLDkuOTFB'@; put 'MS4yNywxLjI3LDAsMCwwLDIyLjIzLDEzSDMzLjY4YTEuMjcsMS4yNywwLDAsMCwxLjEtMS45MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxl'@; put 'cnQiLz5cblxuICA8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTMwLDI0SDZWMTJIMzBaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0x'@; put 'Mi4yMSwyM2E1LDUsMCwxLDAtNS01QTUsNSwwLDAsMCwxMi4yMSwyM1ptMC03YTIsMiwwLDEsMS0yLDJBMiwyLDAsMCwxLDEyLjIxLDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjMuNzksMjNhNSw1LDAsMSwwLTUtNUE1LDUsMCww'@; put 'LDAsMjMuNzksMjNabTAtN2EyLDIsMCwxLDEtMiwyQTIsMiwwLDAsMSwyMy43OSwxNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cblxuICA8cGF0aCBkPSJNMTIuMjEsMjNhNSw1LDAsMSwwLTUtNUE1LDUsMCwwLDAsMTIuMjEsMjNabTAtN2EyLDIsMCwxLDEt'@; put 'MiwyQTIsMiwwLDAsMSwxMi4yMSwxNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik0yMy43OSwyM2E1LDUsMCwxLDAtNS01QTUsNSwwLDAsMCwyMy43OSwyM1ptMC03YTIsMiwwLDEsMS0yLDJBMiwyLDAsMCwx'@; put 'LDIzLjc5LDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTMwLDEzLjVWMjRINlYxMkgyNS41MWE3LjQ5LDcuNDksMCwwLDEtMy02SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiww'@; put 'LDAsMCwyLTJWMTIuMzRBNy40OSw3LjQ5LDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIvPlxuICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNv'@; put 'bGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG5cbiAgPHBhdGggZD0iTTcuMiwxOGE1LDUsMCwxLDAsNS01QTUsNSwwLDAsMCw3LjIsMThabTcsMGEyLDIsMCwxLDEtMi0yQTIsMiwwLDAsMSwxNC4yMiwxOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xp'@; put 'ZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTE4Ljc4LDE4YTUsNSwwLDEsMCw5LjI3LTIuNkgyMi4yM2EzLjcxLDMuNzEsMCwwLDEtMi4xNy0uNzFBNSw1LDAsMCwwLDE4Ljc4LDE4Wm01LTJhMiwyLDAsMSwxLTIsMkEyLDIsMCwwLDEsMjMuNzksMTZaIiBjbGFzcz0iY2xyLWkt'@; put 'c29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDMwVjI0SDZWMTJIMTguNTdhMy42NSwzLjY1LDAsMCwxLC40OC0yLjExTDIxLjI5LDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCww'@; put 'LDItMlYxNS4zOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTI2Ljg1LDEuMTRsLTUuNzIsOS45MUExLjI3LDEuMjcsMCwwLDAsMjIuMjMsMTNIMzMuNjhhMS4yNywxLjI3LDAsMCwwLDEuMS0xLjkxTDI5'@; put 'LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICcpLGIuQ2xyU2hhcGVBbmltYXRpb249KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEw'@; put 'LjE2LDMxLjcxYTQuNCw0LjQsMCwwLDEtNC42NC0xQTQuMzQsNC4zNCwwLDAsMSw0LjIzLDI3LjZhNC40MSw0LjQxLDAsMCwxLC4xOC0xLjIsMTEuNjEsMTEuNjEsMCwwLDEtMS0yLjU2LDYuNCw2LjQsMCwwLDAsOS4zMyw4LjYzQTExLjU1LDExLjU1LDAsMCwxLDEwLjE2LDMxLjcxWiIgY2xh'@; put 'c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTE4LjQxLDI3LjY4YTcuNjEsNy42MSwwLDAsMS05LjA4LTEuMjYsNy41OCw3LjU4LDAsMCwxLTEuMjctOS4wNiwxNC4yNiwxNC4yNiwwLDAsMS0uMzctMi44NSw5LjU4LDkuNTgsMCwwLDAsLjIy'@; put 'LDEzLjMzLDkuNjMsOS42MywwLDAsMCwxMy4zNS4yMkExNC40NiwxNC40NiwwLDAsMSwxOC40MSwyNy42OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0yMS42NiwyNi4yMWExMi4xLDEyLjEsMCwxLDEsOC41Ny0zLjU0aDBBMTIu'@; put 'MTEsMTIuMTEsMCwwLDEsMjEuNjYsMjYuMjFaTTIxLjY2LDRBMTAuMTEsMTAuMTEsMCwwLDAsMTEuNTQsMTQuMTFhMTAsMTAsMCwwLDAsMyw3LjE0LDEwLjEyLDEwLjEyLDAsMCwwLDE0LjMxLDBBMTAuMTEsMTAuMTEsMCwwLDAsMjEuNjYsNFptNy44NiwxOGgwWiIgY2xhc3M9ImNsci1pLW91'@; put 'dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgXG4gIDxwYXRoIGQ9Ik0zLjUsMjMuNzdhNi40MSw2LjQxLDAsMCwwLDkuMzMsOC42N0ExMS42NSwxMS42NSwwLDAsMSwzLjUsMjMuNzdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9'@; put 'Ik03LjY4LDE0LjUzYTkuNiw5LjYsMCwwLDAsMTMuNCwxMy43QTE0LjExLDE0LjExLDAsMCwxLDcuNjgsMTQuNTNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0yMS43OCwyQTEyLjEyLDEyLjEyLDAsMSwxLDkuNjYsMTQuMTUsMTIuMTIs'@; put 'MTIuMTIsMCwwLDEsMjEuNzgsMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPlxuICAnKSxiLkNsclNoYXBlQ2lDZD0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjMuNTMsMTkuODFhNy40NSw3LjQ1LDAsMCwxLTEuNjUtLjE4LDEwLjQ4LDEwLjQ4LDAsMCwx'@; put 'LC43MiwyLjEzYy4zLDAsLjYxLDAsLjkzLDBhOS41Miw5LjUyLDAsMCwwLDMtLjQ5bC0uOTMtMS44MUE3LjY3LDcuNjcsMCwwLDEsMjMuNTMsMTkuODFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMTguMzYsMTcuODcsMTgsMTcu'@; put 'NDlhNy40LDcuNCwwLDAsMS0yLjItNS45Miw3LjMxLDcuMzEsMCwwLDEsMS41NC00TDE3LjI2LDlBMSwxLDAsMCwwLDE4LjE3LDEwaC4wOWExLDEsMCwwLDAsMS0uOTFMMTkuNiw1YTEsMSwwLDAsMC0uMjktLjc5QTEsMSwwLDAsMCwxOC41Miw0bC00LjA5LjM1YTEsMSwwLDAsMCwuMTcsMmwx'@; put 'LjI5LS4xMWE5LjQ1LDkuNDUsMCwwLDAtMi4wNSw1LjMyLDkuMjgsOS4yOCwwLDAsMCwyLjY3LDcuMjZsLjMxLjM3YTcuMzMsNy4zMywwLDAsMSwyLjA2LDQuOTEsNy4zOSw3LjM5LDAsMCwxLS4yNiwyLjQ3bDEuOC45MWE4Ljc2LDguNzYsMCwwLDAsLjQ1LTMuNTFBOS4yOCw5LjI4LDAsMCww'@; put 'LDE4LjM2LDE3Ljg3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTMyLjQsMTcuOTEsMzEuMTksMThBOS42NSw5LjY1LDAsMCwwLDIzLjUzLDIuNDVhOS4zMyw5LjMzLDAsMCwwLTMsLjQ5bC45MSwxLjhhNy42Nyw3LjY3LDAsMCwx'@; put 'LDkuNzYsNy4zOSw3LjU4LDcuNTgsMCwwLDEtMS42NSw0LjcybC4xLTEuNTRhMSwxLDAsMSwwLTItLjEzbC0uMjgsNC4wOGExLDEsMCwwLDAsLjMxLjc4Ljk0Ljk0LDAsMCwwLC42OS4yOGguMWw0LjA4LS40MmExLDEsMCwwLDAsLjktMS4xQTEsMSwwLDAsMCwzMi40LDE3LjkxWiIgY2xhc3M9'@; put 'ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTQuMDcsMjAuNDRoLjA4bDQuMDktLjM1YTEsMSwwLDEsMC0uMTctMmwtMS4zOS4xMmE3LjYzLDcuNjMsMCwwLDEsNC41Mi0xLjQ5LDcuOSw3LjksMCwwLDEsMS42My4xOCwxMC4yMywxMC4yMywwLDAs'@; put 'MS0uNzEtMi4xM2MtLjMsMC0uNjEsMC0uOTIsMGE5LjY2LDkuNjYsMCwwLDAtNS45LDJsLjEyLTEuMzFhMSwxLDAsMCwwLS45Mi0xLjA4LDEsMSwwLDAsMC0xLjA4LjkxbC0uMzUsNC4wOGExLDEsMCwwLDAsMSwxLjA4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo'@; put 'LTQiLz5cbiAgPHBhdGggZD0iTTE4LjQyLDI4LjIzbC00LjA5LjI3YTEsMSwwLDAsMCwuMTMsMkwxNiwzMC4zOWE3LjcxLDcuNzEsMCwwLDEtMTIuNTQtNiw3LjYsNy42LDAsMCwxLC4yOS0yTDIsMjEuNDZhOS41OSw5LjU5LDAsMCwwLS40NywyLjk1QTkuNyw5LjcsMCwwLDAsMTcuMTksMzJs'@; put 'LS4xMiwxLjE4YTEsMSwwLDAsMCwuODksMS4xaC4xMWExLDEsMCwwLDAsMS0uOWwuNDItNC4wNmExLDEsMCwwLDAtMS4wNi0xLjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPicpLGIuQ2xyU2hhcGVGaWxlU2hhcmUyPSgwLHAuY2xySWNvblNWRykoJzxw'@; put 'YXRoIGQ9Ik0yNSw0SDcuODNBMS44OSwxLjg5LDAsMCwwLDYsNS45MVYzMC4wOUExLjg5LDEuODksMCwwLDAsNy44MywzMkgyOC4xN0ExLjg3LDEuODcsMCwwLDAsMzAsMzAuMDlWOVpNMjQsNS43OCwyOC4yLDEwSDI0Wk04LDMwVjZIMjJ2Nmg2VjMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUg'@; put 'Y2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTIyLDIxLjgxYTIuMTEsMi4xMSwwLDAsMC0xLjQ0LjYybC01LjcyLTIuNjZ2LS40NGw1LjY2LTIuNjVhMi4wOCwyLjA4LDAsMSwwLC4wNi0yLjk0aDBhMi4xNCwyLjE0LDAsMCwwLS42NCwxLjQ4di4yM2wtNS42NCwyLjY2YTIu'@; put 'MDgsMi4wOCwwLDEsMC0uMDgsMi45NWwuMDgtLjA4LDUuNjcsMi42NnYuM0EyLjA5LDIuMDksMCwxLDAsMjIsMjEuODRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICBcbiAgPHBhdGggZD0iTTI1LDQuMDZINy44M0ExLjg5LDEuODksMCwwLDAsNiw2'@; put 'VjMwLjE1YTEuODksMS44OSwwLDAsMCwxLjgzLDEuOTFIMjguMTdBMS44NywxLjg3LDAsMCwwLDMwLDMwLjE1VjlaTTIyLDI2YTIuMDksMi4wOSwwLDAsMS0yLjEtMi4wOHYtLjNMMTQuMjcsMjFsLS4wOC4wOGEyLjA4LDIuMDgsMCwxLDEsLjA4LTIuOTVsNS42NC0yLjY2di0uMjNhMi4xNCwy'@; put 'LjE0LDAsMCwxLC42NC0xLjQ4aDBhMi4wOCwyLjA4LDAsMSwxLS4wNiwyLjk0bC01LjY2LDIuNjV2LjQ0bDUuNzIsMi42NkEyLjExLDIuMTEsMCwwLDEsMjIsMjEuODFsMCwwQTIuMDksMi4wOSwwLDAsMSwyMiwyNlptMi0xNlY1Ljg0bDQuMiw0LjIyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNs'@; put 'ci1pLXNvbGlkLXBhdGgtMSIvPicpLGIuVGVjaG5vbG9neVNoYXBlcz17InJ1bGVyLXBlbmNpbCI6Yi5DbHJTaGFwZVJ1bGVyUGVuY2lsLCJwaG9uZS1oYW5kc2V0IjpiLkNsclNoYXBlUGhvbmVIYW5kc2V0LCJuby13aWZpIjpiLkNsclNoYXBlTm9XaWZpLGluc3RhbGw6Yi5DbHJTaGFwZUlu'@; put 'c3RhbGwsdW5pbnN0YWxsOmIuQ2xyU2hhcGVVbmluc3RhbGwsbGF5ZXJzOmIuQ2xyU2hhcGVMYXllcnMsYmxvY2s6Yi5DbHJTaGFwZUJsb2NrLCJibG9ja3MtZ3JvdXAiOmIuQ2xyU2hhcGVCbG9ja3NHcm91cCxidW5kbGU6Yi5DbHJTaGFwZUJ1bmRsZSx3aWZpOmIuQ2xyU2hhcGVXaWZpLCJy'@; put 'YWNrLXNlcnZlciI6Yi5DbHJTaGFwZVJhY2tTZXJ2ZXIsImhhcmQtZGlzayI6Yi5DbHJTaGFwZUhhcmREaXNrLCJiYWNrdXAtcmVzdG9yZSI6Yi5DbHJTaGFwZUJhY2t1cFJlc3RvcmUsYmFja3VwOmIuQ2xyU2hhcGVCYWNrdXAsZGV2aWNlczpiLkNsclNoYXBlRGV2aWNlcyxrZXlib2FyZDpi'@; put 'LkNsclNoYXBlS2V5Ym9hcmQsbW91c2U6Yi5DbHJTaGFwZU1vdXNlLGRhc2hib2FyZDpiLkNsclNoYXBlRGFzaGJvYXJkLGhvc3Q6Yi5DbHJTaGFwZUhvc3Qsc3RvcmFnZTpiLkNsclNoYXBlU3RvcmFnZSxjbHVzdGVyOmIuQ2xyU2hhcGVDbHVzdGVyLGFwcGxpY2F0aW9uczpiLkNsclNoYXBl'@; put 'QXBwbGljYXRpb25zLGJ1aWxkaW5nOmIuQ2xyU2hhcGVCdWlsZGluZyxjcHU6Yi5DbHJTaGFwZUNQVSxtZW1vcnk6Yi5DbHJTaGFwZU1lbW9yeSwiZGF0YS1jbHVzdGVyIjpiLkNsclNoYXBlRGF0YUNsdXN0ZXIsInJlc291cmNlLXBvb2wiOmIuQ2xyU2hhcGVSZXNvdXJjZVBvb2wsc2hpZWxk'@; put 'OmIuQ2xyU2hhcGVTaGllbGQsInNoaWVsZC1jaGVjayI6Yi5DbHJTaGFwZVNoaWVsZENoZWNrLCJzaGllbGQteCI6Yi5DbHJTaGFwZVNoaWVsZFgsaW1wb3J0OmIuQ2xyU2hhcGVJbXBvcnQsZXhwb3J0OmIuQ2xyU2hhcGVFeHBvcnQsInVwbG9hZC1jbG91ZCI6Yi5DbHJTaGFwZVVwbG9hZENs'@; put 'b3VkLCJkb3dubG9hZC1jbG91ZCI6Yi5DbHJTaGFwZURvd25sb2FkQ2xvdWQscGx1Z2luOmIuQ2xyU2hhcGVQbHVnaW4sZmxvcHB5OmIuQ2xyU2hhcGVGbG9wcHksY29tcHV0ZXI6Yi5DbHJTaGFwZUNvbXB1dGVyLGRpc3BsYXk6Yi5DbHJTaGFwZURpc3BsYXksdGVybWluYWw6Yi5DbHJTaGFw'@; put 'ZVRlcm1pbmFsLGNvZGU6Yi5DbHJTaGFwZUNvZGUsYXBwbGljYXRpb246Yi5DbHJTaGFwZUFwcGxpY2F0aW9uLGJhdHRlcnk6Yi5DbHJTaGFwZUJhdHRlcnksbW9iaWxlOmIuQ2xyU2hhcGVNb2JpbGUsdGFibGV0OmIuQ2xyU2hhcGVUYWJsZXQsIm5ldHdvcmstZ2xvYmUiOmIuQ2xyU2hhcGVO'@; put 'ZXR3b3JrR2xvYmUsIm5ldHdvcmstc2V0dGluZ3MiOmIuQ2xyU2hhcGVOZXR3b3JrU2V0dGluZ3MsIm5ldHdvcmstc3dpdGNoIjpiLkNsclNoYXBlTmV0d29ya1N3aXRjaCxyb3V0ZXI6Yi5DbHJTaGFwZVJvdXRlcix2bTpiLkNsclNoYXBlVk0sInZtdy1hcHAiOmIuQ2xyU2hhcGVWTVdBcHAs'@; put 'Y2VydGlmaWNhdGU6Yi5DbHJTaGFwZUNlcnRpZmljYXRlLGFyY2hpdmU6Yi5DbHJTaGFwZUFyY2hpdmUsdW5hcmNoaXZlOmIuQ2xyU2hhcGVVbmFyY2hpdmUsY29ubmVjdDpiLkNsclNoYXBlQ29ubmVjdCxkaXNjb25uZWN0OmIuQ2xyU2hhcGVEaXNjb25uZWN0LGxpbms6Yi5DbHJTaGFwZUxp'@; put 'bmssdW5saW5rOmIuQ2xyU2hhcGVVbmxpbmssImNsb3VkLW5ldHdvcmsiOmIuQ2xyU2hhcGVDbG91ZE5ldHdvcmssImNsb3VkLXNjYWxlIjpiLkNsclNoYXBlQ2xvdWRTY2FsZSwiY2xvdWQtdHJhZmZpYyI6Yi5DbHJTaGFwZUNsb3VkVHJhZmZpYywiY29udHJvbC1sdW4iOmIuQ2xyQ29udHJv'@; put 'bEx1bixkZXBsb3k6Yi5DbHJTaGFwZURlcGxveSxoZWxpeDpiLkNsclNoYXBlSGVsaXgsZmxhc2s6Yi5DbHJTaGFwZUZsYXNrLGFkbWluaXN0cmF0b3I6Yi5DbHJTaGFwZUFkbWluaXN0cmF0b3IsImhhcmQtZHJpdmUiOmIuQ2xyU2hhcGVIYXJkRHJpdmUsImhhcmQtZHJpdmUtZGlza3MiOmIu'@; put 'Q2xyU2hhcGVIYXJkRHJpdmVEaXNrcyxudm1lOmIuQ2xyU2hhcGVOVk1lLHNzZDpiLkNsclNoYXBlU1NELGJsdWV0b290aDpiLkNsclNoYXBlQmx1ZXRvb3RoLCJibHVldG9vdGgtb2ZmIjpiLkNsclNoYXBlQmx1ZXRvb3RoT2ZmLCJwcm9jZXNzLW9uLXZtIjpiLkNsclNoYXBlUHJvY2Vzc09u'@; put 'Vk0sImFzc2lnbi11c2VyIjpiLkNsclNoYXBlQXNzaWduVXNlcixhdG9tOmIuQ2xyU2hhcGVBdG9tLCJiYXItY29kZSI6Yi5DbHJTaGFwZUJhckNvZGUsImNkLWR2ZCI6Yi5DbHJTaGFwZUNkRHZkLGNvbnRhaW5lcjpiLkNsclNoYXBlQ29udGFpbmVyLCJjb250YWluZXItdm9sdW1lIjpiLkNs'@; put 'clNoYXBlQ29udGFpbmVyVm9sdW1lLCJmaWxlLXNoYXJlIjpiLkNsclNoYXBlRmlsZVNoYXJlLCJxci1jb2RlIjpiLkNsclNoYXBlUXJDb2RlLHVzYjpiLkNsclNoYXBlVXNiLHJhZGFyOmIuQ2xyU2hhcGVSYWRhcixjYXBhY2l0b3I6Yi5DbHJTaGFwZUNhcGFjaXRvcixzcXVpZDpiLkNsclNo'@; put 'YXBlU3F1aWQsaW5kdWN0b3I6Yi5DbHJTaGFwZUluZHVjdG9yLHJlc2lzdG9yOmIuQ2xyU2hhcGVSZXNpc3RvciwiaG9zdC1ncm91cCI6Yi5DbHJTaGFwZUhvc3RHcm91cCwic3RvcmFnZS1hZGFwdGVyIjpiLkNsclNoYXBlU3RvcmFnZUFkYXB0ZXIsIm5vZGUtZ3JvdXAiOmIuQ2xyU2hhcGVO'@; put 'b2RlR3JvdXAsbm9kZXM6Yi5DbHJTaGFwZU5vZGVzLG5hbWVzcGFjZTpiLkNsclNoYXBlTmFtZXNwYWNlLG5vZGU6Yi5DbHJTaGFwZU5vZGUscG9kOmIuQ2xyU2hhcGVQb2QsIm1lZGlhLWNoYW5nZXIiOmIuQ2xyU2hhcGVNZWRpYUNoYW5nZXIsInRhcGUtZHJpdmUiOmIuQ2xyU2hhcGVUYXBl'@; put 'RHJpdmUsYW5pbWF0aW9uOmIuQ2xyU2hhcGVBbmltYXRpb24sImNpLWNkIjpiLkNsclNoYXBlQ2lDZCwiZmlsZS1zaGFyZS0yIjpiLkNsclNoYXBlRmlsZVNoYXJlMn0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGIuVGVjaG5vbG9neVNoYXBlcywic2VydmVyIiwoMCxfLmRlc2NyaXB0b3JDb25m'@; put 'aWcpKGIuVGVjaG5vbG9neVNoYXBlcy5ob3N0KSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGIuVGVjaG5vbG9neVNoYXBlcywiY29tbWFuZCIsKDAsXy5kZXNjcmlwdG9yQ29uZmlnKShiLlRlY2hub2xvZ3lTaGFwZXMudGVybWluYWwpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5UZWNobm9s'@; put 'b2d5U2hhcGVzLCJtb2JpbGUtcGhvbmUiLCgwLF8uZGVzY3JpcHRvckNvbmZpZykoYi5UZWNobm9sb2d5U2hhcGVzLm1vYmlsZSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShiLlRlY2hub2xvZ3lTaGFwZXMsImxpY2Vuc2UiLCgwLF8uZGVzY3JpcHRvckNvbmZpZykoYi5UZWNobm9sb2d5U2hh'@; put 'cGVzLmNlcnRpZmljYXRlKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGIuVGVjaG5vbG9neVNoYXBlcywiZGlzY29ubmVjdGVkIiwoMCxfLmRlc2NyaXB0b3JDb25maWcpKGIuVGVjaG5vbG9neVNoYXBlc1sibm8td2lmaSJdKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGIuVGVjaG5vbG9neVNo'@; put 'YXBlcywicmVjZWl2ZXIiLCgwLF8uZGVzY3JpcHRvckNvbmZpZykoYi5UZWNobm9sb2d5U2hhcGVzWyJwaG9uZS1oYW5kc2V0Il0pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5UZWNobm9sb2d5U2hhcGVzLCJkZXNpZ24iLCgwLF8uZGVzY3JpcHRvckNvbmZpZykoYi5UZWNobm9sb2d5U2hh'@; put 'cGVzWyJydWxlci1wZW5jaWwiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShiLlRlY2hub2xvZ3lTaGFwZXMsImRuYSIsKDAsXy5kZXNjcmlwdG9yQ29uZmlnKShiLlRlY2hub2xvZ3lTaGFwZXMuaGVsaXgpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYi5UZWNobm9sb2d5U2hhcGVzLCJmb2xk'@; put 'ZXItc2hhcmUiLCgwLF8uZGVzY3JpcHRvckNvbmZpZykoYi5UZWNobm9sb2d5U2hhcGVzWyJmaWxlLXNoYXJlIl0pKSx0eXBlb2Ygd2luZG93PCJ1IiYmd2luZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNsYXJpdHlJY29ucy5hZGQoYi5UZWNobm9sb2d5U2hh'@; put 'cGVzKX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy90ZXh0LWVkaXQtc2hhcGVzLnRzIjoKLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXAogICAgICAgICAgICAgICAgICAhKioqIC4vcHJvamVjdHMvaWNvbnMvc3JjL3No'@; put 'YXBlcy90ZXh0LWVkaXQtc2hhcGVzLnRzICoqKiEKICAgICAgICAgICAgICAgICAgXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qISBubyBzdGF0aWMgZXhwb3J0cyBmb3VuZCAqL2Z1bmN0aW9uKEosYixEKXsidXNlIHN0cmljdCI7'@; put 'T2JqZWN0LmRlZmluZVByb3BlcnR5KGIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGIuVGV4dEVkaXRTaGFwZXM9Yi5DbHJTaGFwZVN1cGVyc2NyaXB0PWIuQ2xyU2hhcGVTdWJzY3JpcHQ9Yi5DbHJTaGFwZVN0cmlrZXRocm91Z2g9Yi5DbHJTaGFwZUluZGVudD1iLkNsclNoYXBlT3V0ZGVu'@; put 'dD1iLkNsclNoYXBlSGlnaGxpZ2h0ZXI9Yi5DbHJTaGFwZVRleHRDb2xvcj1iLkNsclNoYXBlTGFuZ3VhZ2U9Yi5DbHJTaGFwZUFsaWduVG9wPWIuQ2xyU2hhcGVBbGlnbk1pZGRsZT1iLkNsclNoYXBlQWxpZ25Cb3R0b209Yi5DbHJTaGFwZVVuZGVybGluZT1iLkNsclNoYXBlVGV4dD1iLkNs'@; put 'clNoYXBlQWxpZ25SaWdodFRleHQ9Yi5DbHJTaGFwZUJsb2NrUXVvdGU9Yi5DbHJTaGFwZVBhaW50Um9sbGVyPWIuQ2xyU2hhcGVOdW1iZXJMaXN0PWIuQ2xyU2hhcGVBbGlnbkxlZnRUZXh0PWIuQ2xyU2hhcGVKdXN0aWZ5VGV4dD1iLkNsclNoYXBlSXRhbGljPWIuQ2xyU2hhcGVBbGlnblJp'@; put 'Z2h0PWIuQ2xyU2hhcGVBbGlnbkxlZnQ9Yi5DbHJTaGFwZUFsaWduQ2VudGVyPWIuQ2xyU2hhcGVGb250U2l6ZT1iLkNsclNoYXBlQ2hlY2tib3hMaXN0PWIuQ2xyU2hhcGVDZW50ZXJUZXh0PWIuQ2xyU2hhcGVCdWxsZXRMaXN0PWIuQ2xyU2hhcGVCb2xkPXZvaWQgMDt2YXIgXz1EKAovKiEg'@; put 'Li4vdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IgKi8KIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yLnRzIik7Yi5DbHJTaGFwZUJvbGQ9KDAsXy5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIyLjQzLDE3LjU0YTQuNjcsNC42NywwLDAsMCwyLjgtNC4zN3YtLjA2'@; put 'YTQuNDMsNC40MywwLDAsMC0xLjMxLTMuMjUsNy4wOSw3LjA5LDAsMCwwLTUuMTMtMS43M2gtN0ExLjcxLDEuNzEsMCwwLDAsMTAsOS44NlYyNmExLjcyLDEuNzIsMCwwLDAsMS43NCwxLjc0aDcuMzNjNC4zNywwLDcuMjUtMS44OCw3LjI1LTUuMzhWMjIuM0MyNi4zMiwxOS42NCwyNC43Mywx'@; put 'OC4zMiwyMi40MywxNy41NFpNMTMuNjgsMTEuNGg0LjU0YzIsMCwzLjE1Ljg5LDMuMTUsMi4zM3YuMDZjMCwxLjY4LTEuMzYsMi40OS0zLjM4LDIuNDlIMTMuNjhaTTIyLjM3LDIyYzAsMS41OS0xLjMxLDIuNDMtMy40NiwyLjQzSDEzLjY4VjE5LjYyaDVjMi40OSwwLDMuNjkuODgsMy42OSwy'@; put 'LjM3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksYi5DbHJTaGFwZUJ1bGxldExpc3Q9KDAsXy5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjeD0iNS4yMSIgY3k9IjkuMTciIHI9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC0xIiAvPjxjaXJjbGUgY3g9IjUuMjEiIGN5PSIxNy4xNyIgcj0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PGNpcmNsZSBjeD0iNS4yMSIgY3k9IjI1LjE3IiByPSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIg'@; put 'Lz48cGF0aCBkPSJNMzIuNDIsOWExLDEsMCwwLDAtMS0xSDEwdjJIMzEuNDJBMSwxLDAsMCwwLDMyLjQyLDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMzEuNDIsMTZIMTB2MkgzMS40MmExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTMxLjQyLDI0SDEwdjJIMzEuNDJhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPicpLGIuQ2xyU2hhcGVDZW50ZXJUZXh0PSgwLF8uY2xySWNvblNW'@; put 'RykoJzxwYXRoIGQ9Ik0zMC44OCw4SDUuMTJhMS4xLDEuMSwwLDAsMCwwLDIuMkgzMC44OGExLjEsMS4xLDAsMSwwLDAtMi4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI1LjUsMTYuMmExLjEsMS4xLDAsMSwwLDAtMi4yaC0xNWEx'@; put 'LjEsMS4xLDAsMSwwLDAsMi4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTMwLjI1LDIwSDUuNzVhMS4xLDEuMSwwLDAsMCwwLDIuMmgyNC41YTEuMSwxLjEsMCwwLDAsMC0yLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMjQuODgsMjZIMTEuMTJhMS4xLDEuMSwwLDEsMCwwLDIuMkgyNC44OGExLjEsMS4xLDAsMSwwLDAtMi4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+JyksYi5DbHJTaGFwZUNoZWNrYm94TGlzdD0oMCxf'@; put 'LmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuNDMsMTZIMTB2MkgzMS40M2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMxLjQzLDI0SDEwdjJIMzEuNDNhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1v'@; put 'dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xNS40NSwxMGgxNmExLDEsMCwwLDAsMC0yaC0xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0xNy41LDMuNDJhMS4wOSwxLjA5LDAsMCwwLTEuNTUsMEw3Ljg5'@; put 'LDExLjQ4LDQuNTEsNy44NEExLjEsMS4xLDAsMSwwLDIuOSw5LjM0bDQuOTQsNS4zTDE3LjUsNUExLjEsMS4xLDAsMCwwLDE3LjUsMy40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPicpLGIuQ2xyU2hhcGVGb250U2l6ZT0oMCxfLmNsckljb25TVkcp'@; put 'KCc8cGF0aCBkPSJNMjEsOS4wOEExLjEzLDEuMTMsMCwwLDAsMTkuODYsOEg0LjYyYTEuMSwxLjEsMCwxLDAsMCwyLjE5SDExVjI3YTEuMDksMS4wOSwwLDAsMCwyLjE3LDBWMTAuMTloNi42OUExLjE0LDEuMTQsMCwwLDAsMjEsOS4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMC42NywxNUgyMS4xNWExLjEsMS4xLDAsMSwwLDAsMi4xOUgyNVYyNi41YTEuMDksMS4wOSwwLDAsMCwyLjE3LDBWMTcuMjNoMy41NGExLjEsMS4xLDAsMSwwLDAtMi4xOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0'@; put 'aC0yIiAvPicpLGIuQ2xyU2hhcGVBbGlnbkNlbnRlcj0oMCxfLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEsMjBIMTlWMTZoNmExLDEsMCwwLDAsMS0xVjdhMSwxLDAsMCwwLTEtMUgxOVYyYTEsMSwwLDAsMC0yLDBWNkgxMWExLDEsMCwwLDAtMSwxdjhhMSwxLDAsMCwwLDEsMWg2djRINWEx'@; put 'LDEsMCwwLDAtMSwxdjhhMSwxLDAsMCwwLDEsMUgxN3Y0YTEsMSwwLDAsMCwyLDBWMzBIMzFhMSwxLDAsMCwwLDEtMVYyMUExLDEsMCwwLDAsMzEsMjBaTTEyLDE0VjhIMjR2NlpNMzAsMjhINlYyMkgzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicp'@; put 'LGIuQ2xyU2hhcGVBbGlnbkxlZnQ9KDAsXy5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTUsMUExLDEsMCwwLDAsNCwyVjM0YTEsMSwwLDAsMCwyLDBWMkExLDEsMCwwLDAsNSwxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMxLDIwSDhW'@; put 'MzBIMzFhMSwxLDAsMCwwLDEtMVYyMUExLDEsMCwwLDAsMzEsMjBabS0xLDhIMTBWMjJIMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjQsMTVWN2ExLDEsMCwwLDAtMS0xSDhWMTZIMjNBMSwxLDAsMCwwLDI0LDE1Wm0tMi0xSDEw'@; put 'VjhIMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz4nKSxiLkNsclNoYXBlQWxpZ25SaWdodD0oMCxfLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEsMWExLDEsMCwwLDAtMSwxVjM0YTEsMSwwLDAsMCwyLDBWMkExLDEsMCwwLDAsMzEsMVoiIGNsYXNz'@; put 'PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik00LDIxdjhhMSwxLDAsMCwwLDEsMUgyOFYyMEg1QTEsMSwwLDAsMCw0LDIxWm0yLDFIMjZ2Nkg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTEy'@; put 'LDd2OGExLDEsMCwwLDAsMSwxSDI4VjZIMTNBMSwxLDAsMCwwLDEyLDdabTIsMUgyNnY2SDE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+JyksYi5DbHJTaGFwZUl0YWxpYz0oMCxfLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjQuNDIsOEgxNy4xYTEu'@; put 'MSwxLjEsMCwxLDAsMCwyLjE5aDIuMTNMMTMuMTEsMjUuNTVIMTAuNDdhMS4xLDEuMSwwLDEsMCwwLDIuMTlIMTcuOGExLjEsMS4xLDAsMSwwLDAtMi4xOUgxNS41MWw2LjEzLTE1LjM2aDIuNzhhMS4xLDEuMSwwLDEsMCwwLTIuMTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs'@; put 'aW5lLXBhdGgtMSIgLz4nKSxiLkNsclNoYXBlSnVzdGlmeVRleHQ9KDAsXy5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTYsMTAuMkgzMS43NWExLjEsMS4xLDAsMSwwLDAtMi4ySDZhMS4xLDEuMSwwLDEsMCwwLDIuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0x'@; put 'IiAvPjxwYXRoIGQ9Ik0zMS43NSwxNEg2YTEuMSwxLjEsMCwxLDAsMCwyLjJIMzEuNzVhMS4xLDEuMSwwLDEsMCwwLTIuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMS4xMiwyMEg2LjYyYTEuMSwxLjEsMCwxLDAsMCwyLjJoMjQu'@; put 'NWExLjEsMS4xLDAsMSwwLDAtMi4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMwLjQ1LDI1LjgzSDYuNmExLjEsMS4xLDAsMCwwLDAsMi4ySDMwLjQ1YTEuMSwxLjEsMCwwLDAsMC0yLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj'@; put 'bHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxiLkNsclNoYXBlQWxpZ25MZWZ0VGV4dD0oMCxfLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjAuMjUsMjZINnYyLjJIMjAuMjVhMS4xLDEuMSwwLDAsMCwwLTIuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAv'@; put 'PjxwYXRoIGQ9Ik0yOCwyMEg2djIuMkgyOEExLjEsMS4xLDAsMCwwLDI4LDIwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTIyLjYsMTUuMUExLjEsMS4xLDAsMCwwLDIxLjUsMTRINnYyLjJIMjEuNUExLjEsMS4xLDAsMCwwLDIyLjYs'@; put 'MTUuMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yOS4yNSw4SDZ2Mi4ySDI5LjI1YTEuMSwxLjEsMCwxLDAsMC0yLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxiLkNsclNoYXBlTnVt'@; put 'YmVyTGlzdD0oMCxfLmNsckljb25TVkcpKCc8cG9seWdvbiBwb2ludHM9IjUuNDYgNy40MSA1LjQ2IDExLjU2IDYuNjUgMTEuNTYgNi42NSA2LjA1IDUuNyA2LjA1IDQuMDUgNy4xNiA0LjUyIDggNS40NiA3LjQxIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIg'@; put 'Lz48cGF0aCBkPSJNNS41NywxNC44MmEuNzYuNzYsMCwwLDEsLjgzLjczYzAsLjM4LS4yMS43NC0uODcsMS4yN2wtMiwxLjU3djFINy42N1YxOC4yOEg1LjMzbDEtLjc3YzEtLjcsMS4yOC0xLjI3LDEuMjgtMmExLjgzLDEuODMsMCwwLDAtMi0xLjc2LDIuNjMsMi42MywwLDAsMC0yLjE0LDEu'@; put 'MDhsLjc2LjczQTEuNzUsMS43NSwwLDAsMSw1LjU3LDE0LjgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTYuNTYsMjQuNjRhMS4zMiwxLjMyLDAsMCwwLDEtMS4yN2MwLS44Ny0uNzgtMS41MS0yLTEuNTFhMi42MSwyLjYxLDAsMCww'@; put 'LTIuMSwxbC42OS43MmExLjc4LDEuNzgsMCwwLDEsMS4zLS42NGMuNTQsMCwuOTIuMjYuOTIuNjZzLS4zNi42Mi0xLC42Mkg0Ljc5djFoLjY0Yy43NCwwLDEuMDcuMjEsMS4wNy42M3MtLjM1LjY4LTEsLjY4YTIsMiwwLDAsMS0xLjQ2LS42NWwtLjcuNzhhMi44NSwyLjg1LDAsMCwwLDIuMjEu'@; put 'OTNjMS4yOSwwLDIuMTMtLjY5LDIuMTMtMS42NEExLjMzLDEuMzMsMCwwLDAsNi41NiwyNC42NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMi40Miw5YTEsMSwwLDAsMC0xLTFIMTB2MkgzMS40MkExLDEsMCwwLDAsMzIuNDIsOVoi'@; put 'IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMS40MiwxNkgxMHYySDMxLjQyYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzEuNDIsMjRIMTB2MkgzMS40'@; put 'MmExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+JyksYi5DbHJTaGFwZVBhaW50Um9sbGVyPSgwLF8uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMSwxMFY0YTIsMiwwLDAsMC0yLTJINkEyLDIsMCwwLDAsNCw0djZhMiwyLDAsMCww'@; put 'LDIsMkgyOUEyLDIsMCwwLDAsMzEsMTBaTTYsNEgyOXY2SDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzMsNkgzMnY2LjI5TDE4LjcsMTYuNTRhMSwxLDAsMCwwLS43LDFWMTlIMTZWMzNhMiwyLDAsMCwwLDIsMmgyYTIsMiwwLDAs'@; put 'MCwyLTJWMTlIMjB2LS43M0wzMy4zLDE0YTEsMSwwLDAsMCwuNy0xVjdBMSwxLDAsMCwwLDMzLDZaTTIwLDMzSDE4VjIxaDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cmVjdCB4PSI0IiB5PSIyIiB3aWR0aD0iMjciIGhlaWdodD0iMTAiIHJ4PSIx'@; put 'IiByeT0iMSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzMsNkgzMnY2LjI0TDE4LjcxLDE2LjQ1YTEsMSwwLDAsMC0uNzEsMVYxOUgxNlYzNGExLDEsMCwwLDAsMSwxaDRhMSwxLDAsMCwwLDEtMVYxOUgyMHYtLjgyTDMzLjI5LDE0QTEsMSww'@; put 'LDAsMCwzNCwxM1Y3QTEsMSwwLDAsMCwzMyw2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxiLkNsclNoYXBlQmxvY2tRdW90ZT0oMCxfLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTEuODYsMTYuNTVhNC4zMSw0LjMxLDAsMCwwLTIuMTEuNTYsMTQuNDQs'@; put 'MTQuNDQsMCwwLDEsNC4zNi02LDEuMSwxLjEsMCwwLDAtMS40LTEuN2MtNCwzLjI1LTUuNzgsNy43NS01Ljc4LDEwLjU0QTUuMDgsNS4wOCwwLDAsMCwxMCwyNC41OGE0LjQsNC40LDAsMCwwLDEuODguNDQsNC4yNCw0LjI0LDAsMSwwLDAtOC40N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs'@; put 'ci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMywxNi41NWE0LjI5LDQuMjksMCwwLDAtMi4xMS41NiwxNC41LDE0LjUsMCwwLDEsNC4zNS02LDEuMSwxLjEsMCwxLDAtMS4zOS0xLjdjLTQsMy4yNS01Ljc4LDcuNzUtNS43OCwxMC41NGE1LjA4LDUuMDgsMCwwLDAsMyw0LjYxQTQu'@; put 'MzcsNC4zNywwLDAsMCwyMywyNWE0LjI0LDQuMjQsMCwxLDAsMC04LjQ3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksYi5DbHJTaGFwZUFsaWduUmlnaHRUZXh0PSgwLF8uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNC42NSwyNy4xYTEuMSwxLjEs'@; put 'MCwwLDAsMS4xLDEuMUgzMFYyNkgxNS43NUExLjEsMS4xLDAsMCwwLDE0LjY1LDI3LjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNNi45LDIxLjFBMS4xLDEuMSwwLDAsMCw4LDIyLjJIMzBWMjBIOEExLjEsMS4xLDAsMCwwLDYuOSwy'@; put 'MS4xWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTEzLjQsMTUuMWExLjEsMS4xLDAsMCwwLDEuMSwxLjFIMzBWMTRIMTQuNUExLjEsMS4xLDAsMCwwLDEzLjQsMTUuMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt'@; put 'cGF0aC0zIiAvPjxwYXRoIGQ9Ik02Ljc1LDhhMS4xLDEuMSwwLDEsMCwwLDIuMkgzMFY4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+JyksYi5DbHJTaGFwZVRleHQ9KDAsXy5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEyLjE5LDguODRhMS40NSwxLjQ1'@; put 'LDAsMCwwLTEuNC0xaC0uMTJhMS40NiwxLjQ2LDAsMCwwLTEuNDIsMUwxLjE0LDI2LjU2YTEuMjksMS4yOSwwLDAsMC0uMTQuNTksMSwxLDAsMCwwLDEsMSwxLjEyLDEuMTIsMCwwLDAsMS4wOC0uNzdsMi4wOC00LjY1aDExbDIuMDgsNC41OWExLjI0LDEuMjQsMCwwLDAsMS4xMi44MywxLjA4'@; put 'LDEuMDgsMCwwLDAsMS4wOC0xLjA4LDEuNjQsMS42NCwwLDAsMC0uMTQtLjU3Wk02LjA4LDIwLjcxbDQuNTktMTAuMjIsNC42LDEwLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMyLjI0LDE0Ljc4QTYuMzUsNi4zNSwwLDAsMCwy'@; put 'Ny42LDEzLjJhMTEuMzYsMTEuMzYsMCwwLDAtNC43LDEsMSwxLDAsMCwwLS41OC44OSwxLDEsMCwwLDAsLjk0LjkyLDEuMjMsMS4yMywwLDAsMCwuMzktLjA4LDguODcsOC44NywwLDAsMSwzLjcyLS44MWMyLjcsMCw0LjI4LDEuMzMsNC4yOCwzLjkydi41YTE1LjI5LDE1LjI5LDAsMCwwLTQu'@; put 'NDItLjYxYy0zLjY0LDAtNi4xNCwxLjYxLTYuMTQsNC42NHYuMDVjMCwyLjk1LDIuNyw0LjQ4LDUuMzcsNC40OGE2LjI5LDYuMjksMCwwLDAsNS4xOS0yLjQ4VjI2LjlhMSwxLDAsMCwwLDEsMSwxLDEsMCwwLDAsMS0xLjA2VjE5QTUuNzEsNS43MSwwLDAsMCwzMi4yNCwxNC43OFptLS41Niw3'@; put 'LjdjMCwyLjI4LTIuMTcsMy44OS00LjgxLDMuODktMS45NCwwLTMuNjEtMS4wNi0zLjYxLTIuODZ2LS4wNmMwLTEuOCwxLjUtMyw0LjItM2ExNS4yLDE1LjIsMCwwLDEsNC4yMi42MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLGIuQ2xyU2hhcGVV'@; put 'bmRlcmxpbmU9KDAsXy5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDI4LjE3YzUuMDgsMCw4LjQ4LTMuMDgsOC40OC05VjguNTRhMS4xNSwxLjE1LDAsMSwwLTIuMywwdjEwLjhjMCw0LjQ0LTIuMzgsNi43MS02LjEzLDYuNzFzLTYuMjEtMi40Ny02LjIxLTYuODVWOC41NGExLjE1LDEuMTUs'@; put 'MCwxLDAtMi4zLDB2MTAuOEM5LjUzLDI1LjA5LDEzLDI4LjE3LDE4LDI4LjE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMxLDMwSDVhMS4xMSwxLjExLDAsMCwwLDAsMi4yMUgzMUExLjExLDEuMTEsMCwwLDAsMzEsMzBaIiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxiLkNsclNoYXBlQWxpZ25Cb3R0b209KDAsXy5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM0LDMwSDJhMSwxLDAsMCwwLDAsMkgzNGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE2LDVhMSwxLDAsMCwwLTEtMUg3QTEsMSwwLDAsMCw2LDVWMjhIMTZaTTE0LDI2SDhWNmg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTMwLDEzYTEsMSwwLDAsMC0xLTFIMjFhMSwxLDAs'@; put 'MCwwLTEsMVYyOEgzMFpNMjgsMjZIMjJWMTRoNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPicpLGIuQ2xyU2hhcGVBbGlnbk1pZGRsZT0oMCxfLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzQsMTdIMzBWMTFhMSwxLDAsMCwwLTEtMUgyMWExLDEsMCww'@; put 'LDAtMSwxdjZIMTZWNWExLDEsMCwwLDAtMS0xSDdBMSwxLDAsMCwwLDYsNVYxN0gyYTEsMSwwLDAsMCwwLDJINlYzMWExLDEsMCwwLDAsMSwxaDhhMSwxLDAsMCwwLDEtMVYxOWg0djZhMSwxLDAsMCwwLDEsMWg4YTEsMSwwLDAsMCwxLTFWMTloNGExLDEsMCwwLDAsMC0yWk0xNCwzMEg4VjZo'@; put 'NlptMTQtNkgyMlYxMmg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksYi5DbHJTaGFwZUFsaWduVG9wPSgwLF8uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zNCw0SDJBMSwxLDAsMCwwLDIsNkgzNGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTYsMzFhMSwxLDAsMCwwLDEsMWg4YTEsMSwwLDAsMCwxLTFWOEg2Wk04LDEwaDZWMzBIOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yMCwyM2ExLDEsMCww'@; put 'LDAsMSwxaDhhMSwxLDAsMCwwLDEtMVY4SDIwWm0yLTEzaDZWMjJIMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz4nKSxiLkNsclNoYXBlTGFuZ3VhZ2U9KDAsXy5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLDNIMTR2NWgyVjVoMTRjMC42LDAsMSww'@; put 'LjQsMSwxdjExYzAsMC42LTAuNCwxLTEsMUgxN3Y3aC01LjNMOCwyNy45VjI1SDVjLTAuNiwwLTEtMC40LTEtMVYxM2MwLTAuNiwwLjQtMSwxLTFoMTN2LTJINVxuXHRcdGMtMS43LDAtMywxLjMtMywzdjExYzAsMS43LDEuMywzLDMsM2gxdjUuMWw2LjMtNS4xSDE5di03aDExYzEuNywwLDMt'@; put 'MS4zLDMtM1Y2QzMzLDQuMywzMS43LDMsMzAsM3oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik02LjIsMjIuOWgyLjRsMC42LTEuNmgzLjFsMC42LDEuNmgyLjRMMTEuOSwxNEg5LjVMNi4yLDIyLjl6IE0xMC43LDE2LjVsMSwzLjFoLTJM'@; put 'MTAuNywxNi41eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTIwLDE3YzEuMSwwLDIuNi0wLjMsNC0xYzEuNCwwLjcsMywxLDQsMXYtMmMwLDAtMSwwLTIuMS0wLjRjMS4yLTEuMiwyLjEtMywyLjEtNS42VjhoLTNWNmgtMnYyaC0zdjJo'@; put 'NS45XG5cdFx0Yy0wLjIsMS44LTEsMi45LTEuOSwzLjZjLTAuNi0wLjUtMS4yLTEuMi0xLjYtMi4xaC0yLjFjMC40LDEuMywxLDIuMywxLjgsMy4xQzIxLjEsMTUsMjAuMiwxNSwyMCwxNVYxN3oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwb2x5Z29u'@; put 'IHBvaW50cz0iMTEsMTYuNSAxMCwxOS42IDEyLDE5LjYgMTEsMTYuNSBcdCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzAuMywzaC0xNnY1aDR2MmgtMTNjLTEuNywwLTMsMS4zLTMsM3YxMWMwLDEuNywxLjMsMywzLDNoMXY1LjFsNi4zLTUu'@; put 'MWg2Ljd2LTdoMTFjMS43LDAsMy0xLjMsMy0zVjZcblx0XHRDMzMuMyw0LjMsMzIsMywzMC4zLDN6IE0xMy4xLDIyLjlsLTAuNS0xLjZIOS41bC0wLjYsMS42SDYuNUw5LjgsMTRoMi40bDMuMyw4LjlMMTMuMSwyMi45eiBNMjguMywxNXYyYy0xLjMsMC0yLjctMC40LTMuOS0xXG5cdFx0Yy0x'@; put 'LjIsMC42LTIuNiwwLjktNCwxbC0wLjEtMmMwLjcsMCwxLjQtMC4xLDIuMS0wLjNjLTAuOS0wLjktMS41LTItMS44LTMuMmgyLjFjMC4zLDAuOSwwLjksMS42LDEuNiwyLjJjMS4xLTAuOSwxLjgtMi4yLDEuOS0zLjdcblx0XHRoLTZWOGgzVjZoMnYyaDMuM2wwLjEsMWMwLjEsMi4xLTAuNyw0'@; put 'LjItMi4yLDUuN0MyNy4xLDE0LjksMjcuNywxNSwyOC4zLDE1eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxiLkNsclNoYXBlVGV4dENvbG9yPSgwLF8uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOS40NywzLjg0YTEuNDUsMS40NSwwLDAsMC0xLjQtMUgx'@; put 'OGExLjQ1LDEuNDUsMCwwLDAtMS40MiwxTDguNDIsMjEuNTZhMS4zNSwxLjM1LDAsMCwwLS4xNC41OSwxLDEsMCwwLDAsMSwxLDEuMTEsMS4xMSwwLDAsMCwxLjA4LS43N2wyLjA4LTQuNjVoMTFsMi4wOCw0LjU5YTEuMjQsMS4yNCwwLDAsMCwxLjEyLjgzLDEuMDgsMS4wOCwwLDAsMCwxLjA4'@; put 'LTEuMDgsMS41OSwxLjU5LDAsMCwwLS4xNC0uNTdaTTEzLjM2LDE1LjcxLDE4LDUuNDlsNC42LDEwLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHJlY3QgeD0iNC4wNiIgeT0iMjUiIHdpZHRoPSIyOCIgaGVpZ2h0PSI4IiByeD0iMiIgcnk9'@; put 'IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+JyksYi5DbHJTaGFwZUhpZ2hsaWdodGVyPSgwLF8uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNS44MiwyNi4wNmExLDEsMCwwLDEtLjcxLS4yOUw4LjY3LDE5LjMzYTEsMSwwLDAsMS0uMjktLjcxLDEsMSww'@; put 'LDAsMSwuMjktLjcxTDIzLDMuNTRhNS41NSw1LjU1LDAsMSwxLDcuODUsNy44NkwxNi41MywyNS43N0ExLDEsMCwwLDEsMTUuODIsMjYuMDZabS01LTcuNDQsNSw1TDI5LjQ4LDEwYTMuNTQsMy41NCwwLDAsMCwwLTUsMy42MywzLjYzLDAsMCwwLTUsMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5l'@; put 'IGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0xMC4zOCwyOC4yOEExLDEsMCwwLDEsOS42NywyOEw2LjQ1LDI0Ljc3YTEsMSwwLDAsMS0uMjItMS4wOWwyLjIyLTUuNDRhMSwxLDAsMCwxLDEuNjMtLjMzbDYuNDUsNi40NEExLDEsMCwwLDEsMTYuMiwyNmwtNS40NCwyLjIy'@; put 'QTEuMzMsMS4zMywwLDAsMSwxMC4zOCwyOC4yOFpNOC4zMywyMy44MmwyLjI5LDIuMjgsMy40My0xLjRMOS43NCwyMC4zOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik04Ljk0LDMwaC01YTEsMSwwLDAsMS0uODQtMS41NWwzLjIy'@; put 'LTQuOTRhMSwxLDAsMCwxLDEuNTUtLjE2bDMuMjEsMy4yMmExLDEsMCwwLDEsLjA2LDEuMzVMOS43LDI5LjY0QTEsMSwwLDAsMSw4Ljk0LDMwWk01Ljc4LDI4SDguNDdMOSwyNy4zNGwtMS43LTEuN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxy'@; put 'ZWN0IHg9IjMuMDYiIHk9IjMxIiB3aWR0aD0iMzAiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz4nKSxiLkNsclNoYXBlT3V0ZGVudD0oMCxfLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuMDYsOWgtMjZhMSwxLDAsMSwxLDAtMmgyNmEx'@; put 'LDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTMxLjA2LDE0aC0xN2ExLDEsMCwwLDEsMC0yaDE3YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxu'@; put 'ICA8cGF0aCBkPSJNMzEuMDYsMTloLTE3YTEsMSwwLDAsMSwwLTJoMTdhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik0zMS4wNiwyNGgtMTdhMSwxLDAsMCwxLDAtMmgxN2ExLDEsMCwxLDEsMCwyWiIgY2xh'@; put 'c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgPHBhdGggZD0iTTMxLjA2LDI5aC0yNmExLDEsMCwwLDEsMC0yaDI2YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPlxuICA8cGF0aCBkPSJNOS41Niwy'@; put 'Mi41NGExLDEsMCwwLDEtLjctLjNMNC42MSwxOGw0LjI1LTQuMjRhMSwxLDAsMCwxLDEuNDEsMS40MUw3LjQ0LDE4bDIuODMsMi44M2ExLDEsMCwwLDEtLjcxLDEuNzFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPicpLGIuQ2xyU2hhcGVJbmRlbnQ9KDAs'@; put 'Xy5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjA2LDloLTI2YTEsMSwwLDEsMSwwLTJoMjZhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0zMS4wNiwxNGgtMTdhMSwxLDAsMCwxLDAtMmgxN2ExLDEsMCwx'@; put 'LDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTMxLjA2LDE5aC0xN2ExLDEsMCwwLDEsMC0yaDE3YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cGF0'@; put 'aCBkPSJNMzEuMDYsMjRoLTE3YTEsMSwwLDAsMSwwLTJoMTdhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0zMS4wNiwyOWgtMjZhMSwxLDAsMCwxLDAtMmgyNmExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNs'@; put 'ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgPHBhdGggZD0iTTUuNTYsMjIuNTRhMSwxLDAsMCwxLS43LTEuNzFMNy42OCwxOCw0Ljg2LDE1LjE3YTEsMSwwLDAsMSwwLTEuNDEsMSwxLDAsMCwxLDEuNDEsMEwxMC41MSwxOCw2LjI3LDIyLjI0QTEsMSwwLDAsMSw1LjU2'@; put 'LDIyLjU0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiLz4nKSxiLkNsclNoYXBlU3RyaWtldGhyb3VnaD0oMCxfLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIuODgsMTkuOTJoLTMwYTEsMSwwLDEsMSwwLTJoMzBhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik03LjI3LDE1Ljg2YTEyLjksMTIuOSwwLDAsMSwxLjI5LS41MkE1LjY5LDUuNjksMCwwLDEsMTAuMzksMTVhMy4xOCwzLjE4LDAsMCwxLDIuNzUsMS4xMUE0LjQ0LDQuNDQsMCwwLDEsMTQsMTguODV2LjQ5'@; put 'YTEzLjgzLDEzLjgzLDAsMCwwLTQuMjktLjc0LDYuMTksNi4xOSwwLDAsMC0yLjU5LjU0QTUsNSwwLDAsMCw1LjgxLDIwSDE1Ljg4VjE4Ljg1YTUuNjcsNS42NywwLDAsMC0xLjM3LTQsNS4xNiw1LjE2LDAsMCwwLTQtMS40OSwxMCwxMCwwLDAsMC0zLjkxLjg4Ljg3Ljg3LDAsMCwwLS40NCwx'@; put 'LjE4QS44NC44NCwwLDAsMCw3LjI3LDE1Ljg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTIxLDIwYTUuOTQsNS45NCwwLDAsMSwuNTQtMi4zMSw0LjM1LDQuMzUsMCwwLDEsMS41OC0xLjgzLDQuMjcsNC4yNywwLDAsMSw0LjU5'@; put 'LDAsNC40Nyw0LjQ3LDAsMCwxLDEuNTcsMS44M0E2LjEyLDYuMTIsMCwwLDEsMjkuODUsMjBoMmE3LjczLDcuNzMsMCwwLDAtLjc4LTMuMTksNiw2LDAsMCwwLTIuMTgtMi40NSw1Ljc0LDUuNzQsMCwwLDAtMy4xLS44OCw1LjM5LDUuMzksMCwwLDAtMi44LjczLDUuNTUsNS41NSwwLDAsMC0y'@; put 'LDIuMDVWMTBhLjg3Ljg3LDAsMCwwLS44Ni0uODZIMjBhLjg3Ljg3LDAsMCwwLS44Ni44NlYyMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik0yOS42NywyMmE1LjYxLDUuNjEsMCwwLDEtLjM2LDEuMDcsNC40Nyw0LjQ3LDAsMCwx'@; put 'LTEuNTcsMS44NSw0LjMyLDQuMzIsMCwwLDEtNC41OSwwLDQuMzUsNC4zNSwwLDAsMS0xLjU4LTEuODVBNS42NCw1LjY0LDAsMCwxLDIxLjIsMjJIMTkuMDl2NC4xM0EuODcuODcsMCwwLDAsMjAsMjdoLjJhLjg3Ljg3LDAsMCwwLC44Ni0uODZWMjQuNTFhNS41OCw1LjU4LDAsMCwwLDIsMi4w'@; put 'Niw1LjQ4LDUuNDgsMCwwLDAsMi44LjcyLDUuNjYsNS42NiwwLDAsMCwzLjEtLjg4QTUuODgsNS44OCwwLDAsMCwzMS4wOSwyNCw3LjA5LDcuMDksMCwwLDAsMzEuNzMsMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNMTQsMjJ2'@; put 'Ljc2YTMuMzQsMy4zNCwwLDAsMS0xLjYyLDIsNS4zNCw1LjM0LDAsMCwxLTIuNjkuNzIsMy43OCwzLjc4LDAsMCwxLTIuMzYtLjcsMi4yNCwyLjI0LDAsMCwxLS45NC0xLjksMi4yOSwyLjI5LDAsMCwxLC4yLS45MUg0LjYyYTQsNCwwLDAsMC0uMTMsMSwzLjgzLDMuODMsMCwwLDAsMS4zNSwz'@; put 'LjA2QTUuMTUsNS4xNSwwLDAsMCw5LjMxLDI3LjIsNiw2LDAsMCwwLDEyLDI2LjU3YTQuNjIsNC42MiwwLDAsMCwyLTEuNzRWMjZhLjg2Ljg2LDAsMCwwLC44Ni44NkgxNWEuODYuODYsMCwwLDAsLjg2LS44NlYyMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01'@; put 'Ii8+JyksYi5DbHJTaGFwZVN1YnNjcmlwdD0oMCxfLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTQuNTUsMThsNi44LDguNmExLjE3LDEuMTcsMCwwLDEtLjkyLDEuOWgwYTEuMTcsMS4xNywwLDAsMS0uOTItLjQ0TDEzLDE5LjkxLDYuNiwyOGExLjE3LDEuMTcsMCwwLDEtLjkyLjQ0aDBhMS4x'@; put 'NywxLjE3LDAsMCwxLS45Mi0xLjlMMTEuNTUsMThsLTYuOC04LjZhMS4xNywxLjE3LDAsMCwxLC45Mi0xLjloMEExLjE3LDEuMTcsMCwwLDEsNi42Myw4bDYuNDQsOC4xM0wxOS41LDhhMS4xNywxLjE3LDAsMCwxLC45Mi0uNDRoMGExLjE3LDEuMTcsMCwwLDEsLjkyLDEuOVoiIGNsYXNzPSJj'@; put 'bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0yMywzMS44LDI3LjQ5LDI4YTkuOSw5LjksMCwwLDAsMS44OC0yLjA1QTMuNDQsMy40NCwwLDAsMCwzMCwyNGEyLjM1LDIuMzUsMCwwLDAtLjM1LTEuMjcsMi40NCwyLjQ0LDAsMCwwLTEtLjg0LDIuOSwy'@; put 'LjksMCwwLDAtMS4yNi0uMjgsMy4zNiwzLjM2LDAsMCwwLTEuODMuNSw1LjY0LDUuNjQsMCwwLDAtMS40OCwxLjQybC0xLS44MWE1LjExLDUuMTEsMCwwLDEsNC4zNi0yLjM3LDQuMzUsNC4zNSwwLDAsMSwyLC40NSwzLjQzLDMuNDMsMCwwLDEsMiwzLjE4LDQuNDUsNC40NSwwLDAsMS0uNjgs'@; put 'Mi4zNSwxMC45LDEwLjksMCwwLDEtMi4yNCwyLjQ2bC0zLjI0LDIuODFIMzEuNVYzM0gyM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+JyksYi5DbHJTaGFwZVN1cGVyc2NyaXB0PSgwLF8uY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNC40MywxOGw2Ljc5'@; put 'LDguNmExLjE3LDEuMTcsMCwwLDEtLjkyLDEuOWgwYTEuMTcsMS4xNywwLDAsMS0uOTItLjQ0bC02LjQ0LTguMTNMNi40NywyOGExLjE3LDEuMTcsMCwwLDEtLjkyLjQ0aDBhMS4xNywxLjE3LDAsMCwxLS45Mi0xLjlMMTEuNDMsMThsLTYuOC04LjZhMS4xNywxLjE3LDAsMCwxLC45Mi0xLjlo'@; put 'MEExLjIsMS4yLDAsMCwxLDYuNTEsOGw2LjQzLDguMTNMMTkuMzgsOGExLjE3LDEuMTcsMCwwLDEsLjkyLS40NGgwYTEuMTcsMS4xNywwLDAsMSwuOTIsMS45WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTIyLjg1LDE0LjQ3bDQu'@; put 'NTEtMy44NWE5LjM3LDkuMzcsMCwwLDAsMS44OC0yLDMuNDMsMy40MywwLDAsMCwuNTktMS44NiwyLjI3LDIuMjcsMCwwLDAtLjM2LTEuMjcsMi4zOCwyLjM4LDAsMCwwLS45NS0uODMsMi43NywyLjc3LDAsMCwwLTEuMjYtLjI5LDMuMzksMy4zOSwwLDAsMC0xLjgzLjUsNS44Myw1LjgzLDAs'@; put 'MCwwLTEuNDksMS40MmwtMS0uODFhNS4xMiw1LjEyLDAsMCwxLDQuMzYtMi4zNyw0LjM2LDQuMzYsMCwwLDEsMiwuNDUsMy40NywzLjQ3LDAsMCwxLDIsMy4xOEE0LjQ0LDQuNDQsMCwwLDEsMzAuNTgsOWExMS4xNCwxMS4xNCwwLDAsMS0yLjI0LDIuNDZMMjUuMSwxNC4zMWg2LjI4djEuMzNI'@; put 'MjIuODVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPicpLGIuVGV4dEVkaXRTaGFwZXM9e2JvbGQ6Yi5DbHJTaGFwZUJvbGQsImJ1bGxldC1saXN0IjpiLkNsclNoYXBlQnVsbGV0TGlzdCwiY2hlY2tib3gtbGlzdCI6Yi5DbHJTaGFwZUNoZWNrYm94TGlz'@; put 'dCwibnVtYmVyLWxpc3QiOmIuQ2xyU2hhcGVOdW1iZXJMaXN0LCJmb250LXNpemUiOmIuQ2xyU2hhcGVGb250U2l6ZSxpdGFsaWM6Yi5DbHJTaGFwZUl0YWxpYywianVzdGlmeS10ZXh0IjpiLkNsclNoYXBlSnVzdGlmeVRleHQsImNlbnRlci10ZXh0IjpiLkNsclNoYXBlQ2VudGVyVGV4dCwi'@; put 'YWxpZ24tbGVmdC10ZXh0IjpiLkNsclNoYXBlQWxpZ25MZWZ0VGV4dCwiYWxpZ24tcmlnaHQtdGV4dCI6Yi5DbHJTaGFwZUFsaWduUmlnaHRUZXh0LCJwYWludC1yb2xsZXIiOmIuQ2xyU2hhcGVQYWludFJvbGxlciwiYmxvY2stcXVvdGUiOmIuQ2xyU2hhcGVCbG9ja1F1b3RlLHRleHQ6Yi5D'@; put 'bHJTaGFwZVRleHQsdW5kZXJsaW5lOmIuQ2xyU2hhcGVVbmRlcmxpbmUsImFsaWduLWNlbnRlciI6Yi5DbHJTaGFwZUFsaWduQ2VudGVyLCJhbGlnbi1sZWZ0IjpiLkNsclNoYXBlQWxpZ25MZWZ0LCJhbGlnbi1yaWdodCI6Yi5DbHJTaGFwZUFsaWduUmlnaHQsImFsaWduLWJvdHRvbSI6Yi5D'@; put 'bHJTaGFwZUFsaWduQm90dG9tLCJhbGlnbi1taWRkbGUiOmIuQ2xyU2hhcGVBbGlnbk1pZGRsZSwiYWxpZ24tdG9wIjpiLkNsclNoYXBlQWxpZ25Ub3AsbGFuZ3VhZ2U6Yi5DbHJTaGFwZUxhbmd1YWdlLCJ0ZXh0LWNvbG9yIjpiLkNsclNoYXBlVGV4dENvbG9yLGhpZ2hsaWdodGVyOmIuQ2xy'@; put 'U2hhcGVIaWdobGlnaHRlcixpbmRlbnQ6Yi5DbHJTaGFwZUluZGVudCxvdXRkZW50OmIuQ2xyU2hhcGVPdXRkZW50LHN0cmlrZXRocm91Z2g6Yi5DbHJTaGFwZVN0cmlrZXRocm91Z2gsc3Vic2NyaXB0OmIuQ2xyU2hhcGVTdWJzY3JpcHQsc3VwZXJzY3JpcHQ6Yi5DbHJTaGFwZVN1cGVyc2Ny'@; put 'aXB0fSx0eXBlb2Ygd2luZG93PCJ1IiYmd2luZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNsYXJpdHlJY29ucy5hZGQoYi5UZXh0RWRpdFNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvdHJhdmVsLXNoYXBlcy50cyI6Ci8qISoqKioqKioq'@; put 'KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiohKlwKICAgICAgICAgICAgICAgICAgISoqKiAuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvdHJhdmVsLXNoYXBlcy50cyAqKiohCiAgICAgICAgICAgICAgICAgIFwqKioqKioqKioqKioqKioqKioqKioqKioq'@; put 'KioqKioqKioqKioqKioqKioqKioqKioqKioqLwovKiEgbm8gc3RhdGljIGV4cG9ydHMgZm91bmQgKi9mdW5jdGlvbihKLGIsRCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShiLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxiLlRyYXZlbFNoYXBlcz1iLkNsclNoYXBlT25I'@; put 'b2xpZGF5PWIuQ2xyU2hhcGVUcmFpbGVyPWIuQ2xyU2hhcGVGZXJyeT1iLkNsclNoYXBlQ2FyYXZhbj1iLkNsclNoYXBlQ2FtcGVydmFuPWIuQ2xyU2hhcGVCb2F0PWIuQ2xyU2hhcGVCaWN5Y2xlPWIuQ2xyU2hhcGVNYXBNYXJrZXI9Yi5DbHJTaGFwZUNvbXBhc3M9Yi5DbHJTaGFwZU1hcD1i'@; put 'LkNsclNoYXBlQ2FyPWIuQ2xyU2hhcGVBaXJwbGFuZT1iLkNsclNoYXBlVHJ1Y2s9dm9pZCAwO3ZhciBfPUQoCi8qISAuLi91dGlscy9kZXNjcmlwdG9yLWNvbmZpZyAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvZGVzY3JpcHRvci1jb25maWcudHMiKSxwPUQoCi8qISAuLi91dGls'@; put 'cy9zdmctdGFnLWdlbmVyYXRvciAqLwoiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiKTtiLkNsclNoYXBlVHJ1Y2s9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMCwx'@; put 'MkgyNlY3YTEsMSwwLDAsMC0xLTFIM0ExLDEsMCwwLDAsMiw3VjI1YTEsMSwwLDAsMCwxLDFINFY4SDI0VjE5LjdhNi40NSw2LjQ1LDAsMCwxLDEuNTYtLjJjLjE1LDAsLjI5LDAsLjQ0LDBWMTRoNGEyLDIsMCwwLDEsMiwydjFIMjh2Mmg0djVIMjkuNmE0LjU0LDQuNTQsMCwwLDAtOC4zNCww'@; put 'SDE0LjQzYTQuNSw0LjUsMCwwLDAtNC4xNy0yLjc2QTQuMzgsNC4zOCwwLDEsMCwxNC43MiwyNkgyMWE0LjQ5LDQuNDksMCwwLDAsOC45MiwwSDMzYTEsMSwwLDAsMCwxLTFWMTZBNCw0LDAsMCwwLDMwLDEyWk0xMC4yNiwyOGEyLjM4LDIuMzgsMCwxLDEsMC00Ljc1LDIuMzgsMi4zOCwwLDEs'@; put 'MSwwLDQuNzVabTE1LjE3LDBhMi4zOCwyLjM4LDAsMSwxLDIuNS0yLjM3QTIuNDQsMi40NCwwLDAsMSwyNS40MywyOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMCwxMkgyNlY3YTEsMSwwLDAsMC0xLTFIM0ExLDEs'@; put 'MCwwLDAsMiw3VjI1YTEsMSwwLDAsMCwxLDFINFY4SDI0VjIxLjQ5QTQuNDUsNC40NSwwLDAsMCwyMS4yNSwyNEgxNC40M2E0LjUsNC41LDAsMCwwLTQuMTctMi43NkE0LjM4LDQuMzgsMCwxLDAsMTQuNzIsMjZIMjFhNC40OCw0LjQ4LDAsMCwwLDguOTEsMEgzNFYxNkE0LDQsMCwwLDAsMzAs'@; put 'MTJaTTEwLjI2LDI4YTIuMzgsMi4zOCwwLDEsMSwwLTQuNzUsMi4zOCwyLjM4LDAsMSwxLDAsNC43NVptMTUuMTcsMGEyLjM4LDIuMzgsMCwxLDEsMi41LTIuMzdBMi40NCwyLjQ0LDAsMCwxLDI1LjQyLDI4Wk0zMiwxN0gyNlYxNGg0YTIsMiwwLDAsMSwyLDJaIi8+JyksYi5DbHJTaGFwZUFp'@; put 'cnBsYW5lPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzUuNzcsOC4xNmEyLjQzLDIuNDMsMCwwLDAtMS45LTJMMjgsNC44N2E0LjUsNC41LDAsMCwwLTMuNjUuNzlMNywxOC4zLDIuMTQsMTguMUExLjg2LDEu'@; put 'ODYsMCwwLDAsLjkxLDIxLjQxbDUsMy45M2MuNi43MywxLC41OSwxMC45My00LjgybC45Myw5LjQyYTEuMzYsMS4zNiwwLDAsMCwuODUsMS4xOCwxLjQzLDEuNDMsMCwwLDAsLjU0LjEsMS41NCwxLjU0LDAsMCwwLDEtLjQxbDIuMzktMi4xOGExLjUyLDEuNTIsMCwwLDAsLjQ2LS44M0wyNS4y'@; put 'LDE1LjljMy41Ny0yLDYuOTUtMy44OCw5LjM2LTUuMjVBMi40MywyLjQzLDAsMCwwLDM1Ljc3LDguMTZabS0yLjIuNzVjLTIuNSwxLjQyLTYsMy40MS05Ljc2LDUuNDdsLS40MS4yM0wyMS4wNywyNy4yOGwtMS40NywxLjM0TDE4LjUsMTcuMzIsMTcuMTcsMThDMTAsMjIsNy42MSwyMy4xNiw2'@; put 'Ljc5LDIzLjUybC00LjMtMy40MSw1LjA4LjIyLDE4LTEzLjA2YTIuNTEsMi41MSwwLDAsMSwyLS40NWw1Ljg1LDEuMjZhLjQzLjQzLDAsMCwxLC4zNS4zN0EuNDIuNDIsMCwwLDEsMzMuNTcsOC45MVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91'@; put 'dGxpbmUtcGF0aC0yIiBkPSJNNywxMi41NGwzLjU2LDEsMS42NC0xLjE5LTQtMS4xNkwxMCwxMC4wOWw1LjQ3LS4xNiwyLjMtMS42N0wxMCw4LjVhMS4yNSwxLjI1LDAsMCwwLS43LjE3TDYuNjcsMTAuMkExLjI4LDEuMjgsMCwwLDAsNywxMi41NFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNs'@; put 'YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik02LjI1LDExLjUsMTIsMTMuMTZsNi4zMi00LjU5LTkuMDcuMjZBLjUyLjUyLDAsMCwwLDksOC45MUw2LjEzLDEwLjU2QS41MS41MSwwLDAsMCw2LjI1LDExLjVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy'@; put 'LWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMzQuNTIsNi4zNiwyOC4yMiw1YTMuNzgsMy43OCwwLDAsMC0zLjA3LjY3TDYuMTIsMTkuNWwtNC41Ny0uMmExLjI1LDEuMjUsMCwwLDAtLjgzLDIuMjJsNC40NSwzLjUzYS41NS41NSwwLDAsMCwuNTMuMDljMS4yNy0uNDksNi0zLDEx'@; put 'LjU5LTYuMDdsMS4xMiwxMS41MWEuNTUuNTUsMCwwLDAsLjkuMzdsMi41LTIuMDhhLjc2Ljc2LDAsMCwwLC4yNi0uNDVsMi4zNy0xMy4yOWM0LTIuMjIsNy44Mi00LjM3LDEwLjUxLTUuODlBMS41NSwxLjU1LDAsMCwwLDM0LjUyLDYuMzZaIi8+JyksYi5DbHJTaGFwZUNhcj0oMCxwLmNscklj'@; put 'b25TVkcpKCc8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgeD0iMTUiIHk9IjE3IiB3aWR0aD0iMyIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0y'@; put 'Ni40NSwxNC4xN0EyMi4xLDIyLjEsMCwwLDAsMTkuMzgsN2E5LjY0LDkuNjQsMCwwLDAtOS0uNyw4LjYsOC42LDAsMCwwLTQuODIsNi40Yy0uMDguNDctLjE0LjkyLS4yLDEuMzZBNCw0LDAsMCwwLDIsMTh2Ni4xM2EyLDIsMCwwLDAsMiwyVjIwSDRWMThhMiwyLDAsMCwxLDItMkgyNC43M0E3'@; put 'LjI4LDcuMjgsMCwwLDEsMzIsMjMuMjdWMjRoLTJhNC41Myw0LjUzLDAsMSwwLC4zMywySDMyYTIsMiwwLDAsMCwyLTJ2LS43M0E5LjI4LDkuMjgsMCwwLDAsMjYuNDUsMTQuMTdaTTExLDE0SDYuOTNjMC0uMzEuMDktLjYzLjE1LTFBNi41Miw2LjUyLDAsMCwxLDExLDhoMFptMiwwVjcuNThh'@; put 'OC4xNyw4LjE3LDAsMCwxLDUuMzYsMS4xNkExOSwxOSwwLDAsMSwyMy45LDE0Wk0yNS44LDI4LjM4YTIuNSwyLjUsMCwxLDEsMi41LTIuNUEyLjUsMi41LDAsMCwxLDI1LjgsMjguMzhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu'@; put 'ZS1wYXRoLTMiIGQ9Ik0xNC4xNywyNGE0LjUzLDQuNTMsMCwxLDAsLjMzLDJoNS4zYzAtLjA4LDAtLjE3LDAtLjI1QTYsNiwwLDAsMSwyMCwyNFpNMTAsMjguMzhhMi41LDIuNSwwLDEsMSwyLjUtMi41QTIuNSwyLjUsMCwwLDEsMTAsMjguMzhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGgg'@; put 'Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI2Ljg3LDE0LjI4QTIyLjM2LDIyLjM2LDAsMCwwLDE5LjY1LDYuOWE5LjY0LDkuNjQsMCwwLDAtOS0uNyw4LjYsOC42LDAsMCwwLTQuODIsNi40Yy0uMDguNDktLjE1LDEtLjIxLDEuNGgtMUEyLjU5LDIuNTksMCww'@; put 'LDAsMiwxNi41OXY4LjU1YS44Ni44NiwwLDAsMCwuODYuODZINC41OWMwLS4xMywwLS4yNiwwLS4zOWE1Ljc3LDUuNzcsMCwwLDEsNy43MS01LjQ1bC0xLDFhNC41Niw0LjU2LDAsMCwwLTQuMzQsMS41OCwzLDMsMCwwLDAtLjYzLjkzQTQuNSw0LjUsMCwxLDAsMTQuODIsMjZoNS40OGMwLS4x'@; put 'MywwLS4yNiwwLS4zOUE1Ljc3LDUuNzcsMCwwLDEsMjgsMjAuMTZsLTEsMWE0LjU2LDQuNTYsMCwwLDAtNC4zNCwxLjU4LDMsMywwLDAsMC0uNjMuOTNBNC41LDQuNSwwLDEsMCwzMC41MywyNmgyLjYxYS44Ni44NiwwLDAsMCwuODYtLjg2VjIzLjM2QTkuMzksOS4zOSwwLDAsMCwyNi44Nywx'@; put 'NC4yOFpNMTIsMTRIOGMwLS4zNS4xLS43MS4xNi0xLjA3YTYuNTIsNi41MiwwLDAsMSwzLjg3LTVoMFpNMTAuMzYsMjguMzZhMi41LDIuNSwwLDEsMSwyLjUtMi41QTIuNSwyLjUsMCwwLDEsMTAuMzYsMjguMzZaTTE5LDE5SDE2VjE3aDNabS02LTVWNy40N2E4LjE2LDguMTYsMCwwLDEsNS40'@; put 'LDEuMTVBMTkuMTUsMTkuMTUsMCwwLDEsMjQsMTRaTTI2LjA2LDI4LjM2YTIuNSwyLjUsMCwxLDEsMi41LTIuNUEyLjUsMi41LDAsMCwxLDI2LjA2LDI4LjM2WiIvPicpLGIuQ2xyU2hhcGVNYXA9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0'@; put 'bGluZS1wYXRoLTEiIGQ9Ik0zMy41OSw2LjE5QTEsMSwwLDAsMCwzMi43LDZMMjMuMDksOSwxMy40Niw0LjExYTEsMSwwLDAsMC0uODQsMEwyLjYyLDguMkExLDEsMCwwLDAsMiw5LjEzVjI5LjYxYTEsMSwwLDAsMCwxLjM4LjkyTDEzLDI2LjU4bDkuNTksNC45MmExLDEsMCwwLDAsLjQ2LjEx'@; put 'LDEsMSwwLDAsMCwuMywwbDEwLTMuMTJhMSwxLDAsMCwwLC43LTFWN0ExLDEsMCwwLDAsMzMuNTksNi4xOVpNMzIsMjYuNzVsLTguMzIsMi42VjI3LjA2aC0xLjZ2MmwtOC40LTQuMzFWMjMuMDZoLTEuNnYxLjcyTDQsMjguMTFWOS43OWw4LjA4LTMuMzNWOC44MWgxLjZWNi40N2w4LjQsNC4z'@; put 'djIuMWgxLjZWMTFMMzIsOC4zNloiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgeD0iMjIuMDgiIHk9IjE1LjA2IiB3aWR0aD0iMS42IiBoZWlnaHQ9IjMuODEiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgeD0iMjIuMDgiIHk9IjIxLjA2IiB3aWR0aD0iMS42IiBoZWlnaHQ9IjMuODEiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgeD0iMTIuMDgiIHk9'@; put 'IjExLjA2IiB3aWR0aD0iMS42IiBoZWlnaHQ9IjMuODEiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgeD0iMTIuMDgiIHk9IjE3LjEzIiB3aWR0aD0iMS42IiBoZWlnaHQ9IjMuNzUiLz5cbiAgICAgICAgICAgICAg'@; put 'ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzMuMzEsNy4zNSwyNSw5Ljk0VjE0SDIzVjEwLjI5TDE0LDUuNjhWOUgxMlY1LjI3bC05LjY3LDRBLjUzLjUzLDAsMCwwLDIsOS43NVYzMC40NWEuNTMuNTMsMCwwLDAsLjc0LjQ5TDEyLDI3LjEyVjIz'@; put 'aDJ2NC41M2w5LDQuNjFWMjhoMnYzLjc5bDguNjMtMi43YS41My41MywwLDAsMCwuMzctLjUxVjcuODZBLjUzLjUzLDAsMCwwLDMzLjMxLDcuMzVaTTE0LDIxSDEyVjE3aDJabTAtNkgxMlYxMWgyWk0yNSwyNkgyM1YyMmgyWm0wLTZIMjNWMTZoMloiLz4nKSxiLkNsclNoYXBlQ29tcGFzcz0o'@; put 'MCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjAuODIsMTUuMzFoMEwxMC40Niw5Yy0uNDYtLjI2LTEuMTEuMzctLjg2Ljg0bDYuMTUsMTAuNTYsMTAuNTYsNi4xNWEuNjYuNjYsMCwwLDAsLjg0LS44NlptLTQsNCwzLTMsNC41NSw3LjQ0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt'@; put 'b3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0xLDI5Ljk1VjI5LjUzSDE3djIuNDJBMTQsMTQsMCwwLDEsNC4wNSwxOUg2LjQ3VjE3SDQuMDVBMTQsMTQsMCwwLDEsMTcsNC4wNVY2LjQ3aDJW'@; put 'NC4wNUExNCwxNCwwLDAsMSwzMS45NSwxN0gyOS41M3YyaDIuNDJBMTQsMTQsMCwwLDEsMTksMzEuOTVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCww'@; put 'LDE4LDJaTTYuNDcsMTlINC4wNWMwLS4zMy0uMDUtLjY2LS4wNS0xczAtLjY3LjA1LTFINi40N1pNMTcsNC4wNWMuMzMsMCwuNjYtLjA1LDEtLjA1cy42NywwLDEsLjA1VjYuNDdIMTdabTIsMjcuOWMtLjMzLDAtLjY2LjA1LTEsLjA1cy0uNjcsMC0xLS4wNVYyOS41M2gyWm04LTUuNThhLjU5'@; put 'LjU5LDAsMCwxLS42OS4xNkwxNS43NSwyMC4zOCw5LjYsOS44MmMtLjI1LS40Ny4zOS0xLjEuODYtLjg0bDEwLjM3LDYuMzNoMGw2LjMzLDEwLjM3QS41OS41OSwwLDAsMSwyNywyNi4zN1pNMjkuNTMsMTlWMTdoMi40MmMwLC4zMy4wNS42Ni4wNSwxczAsLjY3LS4wNSwxWiIgY2xhc3M9ImNs'@; put 'ci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTYuNzcgMTkuMzUgMjQuMzUgMjMuNzcgMTkuOCAxNi4zMyAxNi43NyAxOS4zNSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxiLkNsclNoYXBl'@; put 'TWFwTWFya2VyPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsNi43MmE1LjczLDUuNzMsMCwxLDAsNS43Myw1LjczQTUuNzMsNS43MywwLDAsMCwxOCw2LjcyWm0wLDkuNDZhMy43MywzLjczLDAsMSwxLDMu'@; put 'NzMtMy43M0EzLjczLDMuNzMsMCwwLDEsMTgsMTYuMTdaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyQTExLjc5LDExLjc5LDAsMCwwLDYuMjIsMTMuNzNjMCw0LjY3LDIuNjIsOC41OCw0LjU0LDEx'@; put 'LjQzbC4zNS41MmE5OS42MSw5OS42MSwwLDAsMCw2LjE0LDhsLjc2Ljg5Ljc2LS44OWE5OS44Miw5OS44MiwwLDAsMCw2LjE0LThsLjM1LS41M2MxLjkxLTIuODUsNC41My02Ljc1LDQuNTMtMTEuNDJBMTEuNzksMTEuNzksMCwwLDAsMTgsMlpNMjMuNTksMjRsLS4zNi41M2MtMS43MiwyLjU4'@; put 'LTQsNS40Ny01LjIzLDYuOS0xLjE4LTEuNDMtMy41MS00LjMyLTUuMjMtNi45TDEyLjQyLDI0Yy0xLjc3LTIuNjQtNC4yLTYuMjUtNC4yLTEwLjMxYTkuNzgsOS43OCwwLDEsMSwxOS41NiwwQzI3Ljc4LDE3Ljc5LDI1LjM2LDIxLjQsMjMuNTksMjRaIi8+XG4gICAgICAgICAgICAgICAgPHBh'@; put 'dGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTgsNi43MmE1LjczLDUuNzMsMCwxLDAsNS43Myw1LjczQTUuNzMsNS43MywwLDAsMCwxOCw2LjcyWm0wLDkuNDZhMy43MywzLjczLDAsMSwxLDMuNzMtMy43M0EzLjczLDMu'@; put 'NzMsMCwwLDEsMTgsMTYuMTdaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMjkuNzcsMTMuNDlhNy40OSw3LjQ5LDAsMCwxLTItLjMzYzAsLjE5LDAsLjM4LDAsLjU3LDAsNC4w'@; put 'Ni0yLjQyLDcuNjctNC4xOSwxMC4zMWwtLjM2LjUzYy0xLjcyLDIuNTgtNCw1LjQ3LTUuMjMsNi45LTEuMTgtMS40My0zLjUxLTQuMzItNS4yMy02LjlMMTIuNDIsMjRjLTEuNzctMi42NC00LjItNi4yNS00LjItMTAuMzFBOS43Nyw5Ljc3LDAsMCwxLDIyLjU2LDUuMDlhNy40NSw3LjQ1LDAs'@; put 'MCwxLC41Mi0yQTExLjc1LDExLjc1LDAsMCwwLDYuMjIsMTMuNzNjMCw0LjY3LDIuNjIsOC41OCw0LjU0LDExLjQzbC4zNS41MmE5OS42MSw5OS42MSwwLDAsMCw2LjE0LDhsLjc2Ljg5Ljc2LS44OWE5OS44Miw5OS44MiwwLDAsMCw2LjE0LThsLjM1LS41M2MxLjkxLTIuODUsNC41My02Ljc1'@; put 'LDQuNTMtMTEuNDJDMjkuNzgsMTMuNjUsMjkuNzcsMTMuNTcsMjkuNzcsMTMuNDlaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9'@; put 'IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMkExMS43OSwxMS43OSwwLDAsMCw2LjIyLDEzLjczYzAsNC42NywyLjYyLDguNTgsNC41NCwxMS40M2wuMzUuNTJhOTkuNjEsOTkuNjEsMCwwLDAsNi4xNCw4'@; put 'bC43Ni44OS43Ni0uODlhOTkuODIsOTkuODIsMCwwLDAsNi4xNC04bC4zNS0uNTNjMS45MS0yLjg1LDQuNTMtNi43NSw0LjUzLTExLjQyQTExLjc5LDExLjc5LDAsMCwwLDE4LDJabTAsMTdhNi41Niw2LjU2LDAsMSwxLDYuNTYtNi41NkE2LjU2LDYuNTYsMCwwLDEsMTgsMTlaIi8+XG4gICAg'@; put 'ICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBjeD0iMTgiIGN5PSIxMi40NCIgcj0iMy43MyIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2Vk'@; put 'IiBkPSJNMjkuNzcsMTMuNDlBNy40Nyw3LjQ3LDAsMCwxLDI0LjM4LDExYTYuNTgsNi41OCwwLDEsMS0xLjYxLTMsNy40Miw3LjQyLDAsMCwxLC4zMS00Ljg0QTExLjc1LDExLjc1LDAsMCwwLDYuMjIsMTMuNzNjMCw0LjY3LDIuNjIsOC41OCw0LjU0LDExLjQzbC4zNS41MmE5OS42MSw5OS42'@; put 'MSwwLDAsMCw2LjE0LDhsLjc2Ljg5Ljc2LS44OWE5OS44Miw5OS44MiwwLDAsMCw2LjE0LThsLjM1LS41M2MxLjkxLTIuODUsNC41My02Ljc1LDQuNTMtMTEuNDJDMjkuNzgsMTMuNjUsMjkuNzcsMTMuNTcsMjkuNzcsMTMuNDlaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0i'@; put 'Y2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgY3g9IjE4IiBjeT0iMTIuNDQiIHI9IjMuNzMiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJh'@; put 'ZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+JyksYi5DbHJTaGFwZUJpY3ljbGU9KDAscC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTguNSwyOS42NUE2LjUxLDYuNTEsMCwwLDEsMiwyMy4xNWE2LjM5LDYuMzksMCwwLDEsNi41LTYuMzZBNi4zOSw2LjM5LDAsMCwxLDE1LDIzLjE1LDYuNTEs'@; put 'Ni41MSwwLDAsMSw4LjUsMjkuNjVabTAtMTFhNC41LDQuNSwwLDEsMCw0LjUsNC41QTQuNTEsNC41MSwwLDAsMCw4LjUsMTguNjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjcuNSwyOS42NWE2LjUxLDYuNTEsMCwwLDEtNi41LTYu'@; put 'NSw2LjUsNi41LDAsMCwxLDEzLDBBNi41MSw2LjUxLDAsMCwxLDI3LjUsMjkuNjVabTAtMTFhNC41LDQuNSwwLDEsMCw0LjUsNC41QTQuNTEsNC41MSwwLDAsMCwyNy41LDE4LjY1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTE5LDI0'@; put 'LjY2SDhhMSwxLDAsMCwxLS44OS0xLjQ1bDUtMTAsMS43OC45TDkuNjIsMjIuNzNIMTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cmVjdCB4PSIxMyIgeT0iMTIuNjgiIHdpZHRoPSIxMSIgaGVpZ2h0PSIxLjkxIiBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMjgsMjQuNjZhMSwxLDAsMCwxLS45NC0uNjZMMjIuMjksMTAuNjZIMjBhMSwxLDAsMCwxLTEtMSwxLDEsMCwwLDEsMS0uOTNoM2EuOTQuOTQsMCwwLDEsLjk0LjZsNSwxNGExLDEsMCwwLDEtLjYsMS4yN0ExLDEsMCwwLDEsMjgs'@; put 'MjQuNjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMTMsMTQuNjZhMSwxLDAsMCwxLS43MS0uMjlsLTEuNy0xLjcxSDhhMSwxLDAsMCwxLTEtMSwuOTQuOTQsMCwwLDEsMS0xaDNhMS4wOCwxLjA4LDAsMCwxLC43NS4yN2wyLDJhMSwx'@; put 'LDAsMCwxLDAsMS40MUExLDEsMCwwLDEsMTMsMTQuNjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz48cGF0aCBkPSJNMTUsMjEuOWMtMC4yLTItMS4yLTMuOC0yLjktNC45bC0yLjUsNC45SDE1eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk'@; put 'LXBhdGgtMSIgLz48cGF0aCBkPSJNNy4yLDIzLjRjLTAuMi0wLjMtMC4yLTAuNywwLTFsMy4yLTYuM2MtMC42LTAuMi0xLjItMC4yLTEuOC0wLjJDNSwxNS45LDIsMTguOCwyLDIyLjRjMCwzLjYsMi45LDYuNSw2LjUsNi41XG5cdGMzLDAsNS42LTIuMSw2LjMtNUg4QzcuNywyMy45LDcuMywy'@; put 'My43LDcuMiwyMy40eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMTksMjEuOWgtNGMwLDAuMiwwLDAuMywwLDAuNWMwLDAuNS0wLjEsMS0wLjIsMS41SDE5VjIxLjl6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAv'@; put 'PjxwYXRoIGQ9Ik0yNy41LDE1LjljLTAuMywwLTAuNiwwLTAuOSwwLjFsMi40LDYuNmMwLjIsMC41LTAuMSwxLjEtMC42LDEuM2MtMC4xLDAtMC4yLDAuMS0wLjMsMC4xYy0wLjQsMC0wLjgtMC4zLTAuOS0wLjdsLTIuNC02Ljdcblx0Yy0zLjIsMS42LTQuNSw1LjUtMyw4LjdjMS42LDMuMiw1'@; put 'LjUsNC41LDguNywzYzMuMi0xLjYsNC41LTUuNSwzLTguN0MzMi4yLDE3LjMsMzAsMTUuOSwyNy41LDE1Ljl6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPjxwYXRoIGQ9Ik0yNC43LDE2LjdjMC42LTAuMywxLjMtMC41LDEuOS0wLjZsLTIuNy03LjRDMjMuOCw4'@; put 'LjIsMjMuNCw4LDIzLDcuOWgtM2MtMC42LDAtMSwwLjUtMSwxLjFjMCwwLjUsMC40LDAuOSwxLDAuOVxuXHRjMCwwLDAsMCwwLDBoMi4zbDAuNywyaC05LjZsLTEuNy0xLjdDMTEuNSwxMC4xLDExLjMsMTAsMTEsMTBIOGMtMC42LDAtMSwwLjQtMSwxczAuNCwxLDEsMWgyLjZsMS4yLDEuMmwt'@; put 'MS41LDNcblx0YzAuNiwwLjIsMS4zLDAuNSwxLjgsMC44bDEuNi0zLjJoMTBMMjQuNywxNi43eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIgLz4nKSxiLkNsclNoYXBlQm9hdD0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjkuMSwyNy4xQzI4LDI3LDI2Ljks'@; put 'MjcuNCwyNiwyOC4yYy0xLjEsMS4xLTIuOSwxLjEtNC4xLDBjLTEtMC43LTIuMS0xLjEtMy4zLTEuMWMtMS4yLTAuMS0yLjQsMC4zLTMuMywxLjFcblx0XHRDMTQuNywyOC43LDE0LDI5LDEzLjIsMjlzLTEuNS0wLjMtMi4xLTAuOGMtMS0wLjgtMi4yLTEuMi0zLjQtMS4ycy0yLjQsMC40LTMu'@; put 'NCwxLjJDMy43LDI4LjcsMi44LDI5LDIsMjl2MlxuXHRcdGMxLjMsMC4xLDIuNi0wLjMsMy42LTEuMkM2LjIsMjkuMyw3LjEsMjksNy45LDI5YzAuNywwLDEuNSwwLjMsMi4xLDAuOGMxLjgsMS42LDQuNiwxLjYsNi41LDBjMC42LTAuNSwxLjMtMC44LDIuMS0wLjhcblx0XHRjMC43LDAsMS40'@; put 'LDAuMywyLDAuOGMxLjksMS42LDQuNiwxLjYsNi41LDBjMC41LTAuNSwxLjMtMC44LDItMC44YzAuNywwLDEuNCwwLjMsMS45LDAuOGMwLjksMC43LDEuOSwxLjEsMywxLjJ2LTJcblx0XHRjLTEsMC0xLjItMC40LTEuNy0wLjhDMzEuNCwyNy41LDMwLjMsMjcuMSwyOS4xLDI3LjF6IiBjbGFz'@; put 'cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNNiwyM2MwLTAuNiwwLjUtMSwxLjEtMUgzMmwtMy41LDMuMWgwLjJjMC44LDAsMS42LDAuMiwyLjIsMC41bDIuNS0yLjJsMC4yLTAuMmMwLjctMC44LDAuNi0yLjEtMC4yLTIuOFxuXHRcdEMzMywyMC4y'@; put 'LDMyLjYsMjAsMzIuMSwyMGgtMjVjLTEuNywwLTMsMS4zLTMsM3YzLjJjMC41LTAuNSwxLjItMC44LDEuOS0xLjFWMjN6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNOC45LDE5SDE1di03LjhjMC0wLjYtMC4zLTEuMi0wLjgtMS42QzEz'@; put 'LjMsOC45LDEyLDkuMSwxMS40LDEwbC00LjEsNS45Yy0wLjQsMC42LTAuNCwxLjQtMC4xLDIuMUM3LjUsMTguNiw4LjIsMTksOC45LDE5XG5cdFx0eiBNMTMuMSwxMS4yTDEzLDE3SDguOUwxMy4xLDExLjJ6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48'@; put 'cGF0aCBkPSJNMjYsMThjMC40LTAuNiwwLjQtMS40LDAtMkwxOS43LDUuNmMtMC40LTAuNi0xLTEtMS43LTFjLTEuMSwwLTIsMC45LTIsMlYxOWg4LjNDMjUsMTksMjUuNywxOC42LDI2LDE4eiBNMTcuOSw2LjZcblx0XHRsNi40LDEwLjVoLTYuNFY2LjZ6IiBjbGFzcz0iY2xyLWktb3V0bGlu'@; put 'ZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMzQsMzFjLTEuMS0wLjEtMi4xLTAuNS0zLTEuMmMtMC41LTAuNS0xLjItMC44LTItMC44Yy0wLjcsMC0xLjUsMC4zLTIsMC44Yy0wLjksMC44LTIsMS4xLTMuMSwxLjFjLTEuMiwwLTIuNC0wLjQtMy4zLTEuMVxuXHRjLTEuMi0x'@; put 'LjEtMy0xLjEtNC4xLDBjLTAuOSwwLjgtMi4xLDEuMi0zLjQsMS4yYy0xLjIsMC0yLjMtMC40LTMuMi0xLjJjLTAuNi0wLjUtMS4zLTAuOC0yLTAuOGMtMC44LDAtMS43LDAuMy0yLjMsMC44XG5cdGMtMSwwLjgtMi4zLDEuMi0zLjUsMS4xVjI5YzAuOCwwLDEuNy0wLjMsMi4zLTAuOWMxLTAu'@; put 'OCwyLjItMS4yLDMuNC0xLjFjMS4yLDAsMi40LDAuNCwzLjMsMS4yYzEuMiwxLjEsMywxLjEsNC4yLDBcblx0YzEuOS0xLjYsNC43LTEuNiw2LjUsMGMxLjIsMS4xLDMsMS4xLDQuMSwwYzAuOS0wLjgsMi4xLTEuMiwzLjMtMS4yYzEuMSwwLDIuMiwwLjQsMywxLjJDMzIuOCwyOC43LDMzLDI5'@; put 'LDM0LDI5TDM0LDMxeiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNNC4xLDI2LjJjMC42LTAuNSwxLjItMC44LDEuOS0xVjIzYzAtMC42LDAuNC0xLjEsMS0xLjFoMjVMMjguNCwyNWgwLjJjMC44LDAsMS42LDAuMiwyLjIsMC41bDIuNS0yLjJs'@; put 'MC4yLTAuMlxuXHRjMC43LTAuOSwwLjUtMi4xLTAuNC0yLjhDMzIuOSwyMC4xLDMyLjQsMjAsMzIsMjBIN2MtMS43LDAtMywxLjMtMywzTDQuMSwyNi4yTDQuMSwyNi4yeiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMTQuOSwxOC45SDguOWMt'@; put 'MS4xLDAtMi0wLjktMi0yYzAtMC40LDAuMS0wLjgsMC40LTEuMmw0LjEtNS44YzAuNi0wLjksMS45LTEuMSwyLjgtMC41YzAuNSwwLjQsMC44LDEsMC44LDEuNlYxOC45eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz48cGF0aCBkPSJNMjQuMywxOC45SDE2VjYu'@; put 'NGMwLTEuMSwwLjktMiwyLTJjMC43LDAsMS4zLDAuNCwxLjcsMUwyNiwxNS44YzAuNiwxLDAuMiwyLjItMC43LDIuN0MyNSwxOC43LDI0LjYsMTguOCwyNC4zLDE4Ljlcblx0TDI0LjMsMTguOXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+JyksYi5DbHJTaGFw'@; put 'ZUNhbXBlcnZhbj0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNOS41LDI0QzkuNSwyNCw5LjUsMjQsOS41LDI0QzcuNiwyNCw2LDI1LjYsNiwyNy41YzAsMCwwLDAsMCwwQzYsMjkuNCw3LjYsMzEsOS41LDMxYzEuOSwwLDMuNS0xLjYsMy41LTMuNVxuXHRcdFMxMS40LDI0LDkuNSwyNHog'@; put 'TTkuNSwyOUM4LjcsMjksOCwyOC4zLDgsMjcuNVM4LjcsMjYsOS41LDI2czEuNSwwLjcsMS41LDEuNVMxMC4zLDI5LDkuNSwyOXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMy41LDI0QzIzLjUsMjQsMjMuNSwyNCwyMy41LDI0Yy0x'@; put 'LjksMC0zLjUsMS42LTMuNSwzLjVjMCwwLDAsMCwwLDBjMCwxLjksMS41LDMuNSwzLjUsMy41YzEuOSwwLDMuNS0xLjYsMy41LTMuNVxuXHRcdFMyNS40LDI0LDIzLjUsMjR6IE0yMy41LDI5Yy0wLjgsMC0xLjUtMC43LTEuNS0xLjVzMC43LTEuNSwxLjUtMS41czEuNSwwLjcsMS41LDEuNVMy'@; put 'NC4zLDI5LDIzLjUsMjl6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzMsMjAuMVYyMGgtMC4xbC0zLjUtNS41QzMxLDEzLjYsMzIsMTIsMzIsMTAuM1Y5LjdDMzIsNy4xLDI5LjksNSwyNy4zLDVoLTguNWMtMS45LDAtMy43LDEuMi00'@; put 'LjQsM0g1Yy0xLjcsMC0zLDEuMy0zLDNcblx0XHR2MTdoMlYxMWMwLTAuNiwwLjQtMSwxLTFoMTAuOUwxNiw5LjJDMTYuMyw3LjksMTcuNCw3LDE4LjcsN2g4LjVDMjguOCw3LDMwLDguMiwzMCw5Ljd2MC41YzAsMS41LTEuMiwyLjctMi43LDIuN0gyNHY5aDcuOFxuXHRcdGwwLjIsMC4zVjI1'@; put 'YzAsMC42LTAuNCwxLTEsMWgtMnYyaDJjMS43LDAsMy0xLjMsMy0zdi0zLjNMMzMsMjAuMXogTTI2LDIwdi01aDEuNWwzLjEsNUgyNnoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxyZWN0IHg9IjE5IiB5PSI5IiB3aWR0aD0iOCIgaGVpZ2h0PSIyIiBj'@; put 'bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cG9seWdvbiBwb2ludHM9IjIwLDIyIDIyLDIyIDIyLDEzIDE1LDEzIDE1LDI4IDE3LDI4IDE3LDE1IDIwLDE1IFx0IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBk'@; put 'PSJNNiwyMGg3di03SDZWMjB6IE04LDE1aDN2M0g4VjE1eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+PHBhdGggZD0iTTkuNSwyNEM3LjYsMjQsNiwyNS42LDYsMjcuNVM3LjYsMzEsOS41LDMxYzAsMCwwLDAsMCwwYzEuOSwwLDMuNS0xLjYsMy41LTMu'@; put 'NWMwLDAsMC0wLjEsMC0wLjFDMTMsMjUuNSwxMS40LDI0LDkuNSwyNHoiXG5cdFx0IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PGNpcmNsZSBjeD0iMjMuNSIgY3k9IjI3LjUiIHI9IjMuNSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIg'@; put 'Lz48cGF0aCBkPSJNMjkuNSwxNC41QzMxLDEzLjYsMzIsMTIsMzIsMTAuMlY5LjdjMCwwLDAsMCwwLTAuMUMzMiw3LDI5LjksNSwyNy4zLDVoLTguNWMtMS45LDAtMy43LDEuMi00LjQsM0g1Yy0xLjcsMC0zLDEuMy0zLDN2MTdcblx0XHRoMlYxMWMwLTAuNiwwLjQtMSwxLTFoMTAuOUwxNiw5'@; put 'LjJDMTYuMyw3LjksMTcuNCw3LDE4LjcsN2g4LjVDMjguOCw3LDMwLDguMiwzMCw5Ljd2MC41YzAsMS41LTEuMiwyLjctMi43LDIuN0gyN2gtM3Y5aDcuOFxuXHRcdGwwLjIsMC4zVjI1YzAsMC42LTAuNCwxLTEsMWgtMnYyaDJjMS43LDAsMy0xLjMsMy0zdi0zLjNMMjkuNSwxNC41eiIgY2xh'@; put 'c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz48cmVjdCB4PSIxOSIgeT0iOSIgd2lkdGg9IjcuOSIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPjxwb2x5Z29uIHBvaW50cz0iMjAsMjIgMjEuOSwyMiAyMS45LDEzIDE1LDEz'@; put 'IDE1LDI4IDE2LjksMjggMTYuOSwxNSAyMCwxNSBcdCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIgLz48cmVjdCB4PSI2IiB5PSIxMyIgd2lkdGg9IjYuOSIgaGVpZ2h0PSI3IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC02IiAvPicpLGIuQ2xy'@; put 'U2hhcGVDYXJhdmFuPSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMy41LDIxQzExLDIxLDksMjMsOSwyNS41czIsNC41LDQuNSw0LjVjMi41LDAsNC41LTIsNC41LTQuNUMxOCwyMywxNiwyMSwxMy41LDIxeiBNMTMuNSwyOGMtMS40LDAtMi41LTEuMS0yLjUtMi41XG5cdFx0czEuMS0y'@; put 'LjUsMi41LTIuNXMyLjUsMS4xLDIuNSwyLjVTMTQuOSwyOCwxMy41LDI4eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMzLDI0aC0ydi03LjVjMC0wLjUtMC4xLTEtMC40LTEuNWwtNC4yLTcuNWMtMC41LTEtMS41LTEuNS0yLjYtMS41'@; put 'SDVDMy4zLDYsMiw3LjMsMiw5djE0YzAsMS43LDEuMywzLDMsM2gydi0ySDVcblx0XHRjLTAuNiwwLTEtMC40LTEtMVY5YzAtMC42LDAuNC0xLDEtMWgxOC44YzAuNCwwLDAuNywwLjIsMC45LDAuNWw0LjIsNy41YzAuMSwwLjEsMC4xLDAuMywwLjEsMC41VjI0aC00VjEyaC03djhoMnYtNmgz'@; put 'djEwaC0zdjJoMTNcblx0XHRjMC42LDAsMS0wLjQsMS0xUzMzLjYsMjQsMzMsMjR6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTYsMTJIN3Y2aDlWMTJ6IE0xNCwxNkg5di0yaDVWMTZ6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMTMuNSwzMEMxMSwzMCw5LDI4LDksMjUuNXMyLTQuNSw0LjUtNC41czQuNSwyLDQuNSw0LjVDMTgsMjgsMTYsMzAsMTMuNSwzMHoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTMzLDI0aC0y'@; put 'di03LjVjMC0wLjUtMC4xLTEtMC40LTEuNWwtNC4yLTcuNWMtMC41LTEtMS41LTEuNS0yLjYtMS41SDVDMy4zLDYsMiw3LjMsMiw5djE0YzAsMS43LDEuMywzLDMsM2gydi0ySDVcblx0Yy0wLjYsMC0xLTAuNC0xLTFWOWMwLTAuNiwwLjQtMSwxLTFoMTguOGMwLjQsMCwwLjcsMC4yLDAuOSww'@; put 'LjVsNC4yLDcuNWMwLjEsMC4xLDAuMSwwLjMsMC4xLDAuNVYyNGgtNFYxMmgtN3Y4aDJ2LTZoM3YxMGgtM3YyaDEzXG5cdGMwLjYsMCwxLTAuNCwxLTFTMzMuNiwyNCwzMywyNHoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTE2LDE4SDd2LTZo'@; put 'OVYxOHoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksYi5DbHJTaGFwZUZlcnJ5PSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOSwyNS4xYy0xLjIsMC0yLjMsMC40LTMuMywxLjFjMCwwLDAsMCwwLDBjLTEuMSwxLjEtMywxLjEtNC4xLDBjLTAuOS0w'@; put 'LjgtMi4xLTEuMi0zLjMtMS4yYy0xLjIsMC0yLjMsMC40LTMuMiwxLjJcblx0XHRjLTEuMiwxLjEtMywxLjEtNC4yLDBDMTAsMjUuNCw4LjgsMjUsNy42LDI1Yy0xLjIsMC0yLjQsMC40LTMuNCwxLjFDMy42LDI2LjcsMi44LDI3LDIsMjd2MmMxLjMsMC4xLDIuNS0wLjQsMy40LTEuMlxuXHRc'@; put 'dEM2LjEsMjcuMyw2LjksMjcsNy43LDI3YzAuOCwwLDEuNSwwLjMsMi4xLDAuOGMxLjksMS42LDQuNywxLjYsNi41LDBjMC42LTAuNSwxLjMtMC44LDIuMS0wLjhjMC44LDAsMS41LDAuMywyLjEsMC44XG5cdFx0YzEuOSwxLjYsNC42LDEuNiw2LjUsMGMwLjUtMC41LDEuMy0wLjgsMi0wLjhj'@; put 'MC43LDAsMS41LDAuMywyLDAuOGMwLjksMC43LDIsMS4xLDMuMSwxLjJ2LTEuOWMtMC43LDAtMS40LTAuMy0xLjktMC45XG5cdFx0QzMxLjMsMjUuNCwzMC4xLDI1LDI5LDI1LjF6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNNS45LDIz'@; put 'LjJWMjBIMzJsLTMuNSwzaDAuMmMwLjgsMCwxLjYsMC4yLDIuMiwwLjVsMi41LTIuMmwwLjItMC4yYzAuNS0wLjYsMC41LTEuNCwwLjItMi4xYy0wLjQtMC43LTEtMS0xLjgtMWgtNC40XG5cdFx0TDIyLjUsMTFIMTdjLTEuNywwLTMsMS4zLTMsM2gtMlY4LjFINnY2LjFjLTEuMiwwLjQtMiwx'@; put 'LjUtMiwyLjh2MS4xVjIwdjQuM2wwLjEtMC4xQzQuNiwyMy43LDUuMiwyMy40LDUuOSwyMy4yeiBNOCwxMGgydjRIOFYxMHpcblx0XHQgTTYsMTdjMC0wLjYsMC40LTEsMS0xaDl2LTJjMC0wLjYsMC40LTEsMS0xaDVsMC42LDFIMTh2Mmg1LjhsMS4yLDIuMUg2VjE3eiIgY2xhc3M9ImNsci1p'@; put 'LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTI4LjIsMjVjLTEuMiwwLTIuNCwwLjQtMy4zLDEuMmMtMS4yLDEuMS0zLDEuMS00LjEsMGMtMS45LTEuNi00LjYtMS42LTYuNSwwYy0xLjIsMS4xLTIuOSwxLjEtNC4xLDBcblx0XHRjLTAuOS0wLjgtMi0xLjItMy4y'@; put 'LTEuMmMtMS4yLDAtMi4zLDAuNC0zLjIsMS4yQzMuNCwyNi43LDIuNywyNywyLDI3djJjMS4xLTAuMSwyLjItMC41LDMuMS0xLjJDNS42LDI3LjMsNi4zLDI3LDcsMjdcblx0XHRjMC43LDAsMS41LDAuMywyLDAuOGMxLjksMS42LDQuNywxLjYsNi42LDBjMC42LTAuNSwxLjMtMC44LDIuMS0w'@; put 'LjhjMC44LDAsMS41LDAuMywyLjEsMC44YzEuOSwxLjYsNC43LDEuNiw2LjUsMFxuXHRcdGMwLjYtMC41LDEuMy0wLjgsMi4xLTAuOGMwLjgsMCwxLjYsMC4zLDIuMSwwLjhjMC45LDAuOCwyLjIsMS4zLDMuNCwxLjJ2LTJjLTAuOCwwLTEuNi0wLjMtMi4yLTAuOEMzMC43LDI1LjQsMjkuNSwy'@; put 'NSwyOC4yLDI1eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNNS44LDIzLjJ2LTMuM2gyNi4xTDI4LjQsMjNoMC4yYzAuOCwwLDEuNiwwLjIsMi4yLDAuNWwyLjUtMi4ybDAuMS0wLjJjMC43LTAuOSwwLjUtMi4xLTAuNC0yLjhjLTAuMy0wLjMt'@; put 'MC44LTAuNC0xLjItMC40XG5cdFx0aC00LjFsLTUuNC03aC01LjVjLTEuNywwLTMsMS4zLTMsM2gtMlY4SDZ2Ni4yYy0xLjIsMC40LTIuMSwxLjUtMi4xLDIuOGwwLDcuMmwwLjEsMEM0LjUsMjMuNyw1LjEsMjMuNCw1LjgsMjMuMnogTTE3LjksMTRoNC4yXG5cdFx0bDEuNCwyaC01LjdWMTR6'@; put 'IE03LjksMTBoMnY0aC0yVjEweiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxiLkNsclNoYXBlVHJhaWxlcj0oMCxwLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTUsMTkuMmMtMy4yLDAtNS44LDIuNi01LjgsNS44czIuNiw1LjgsNS44LDUuOHM1LjgtMi42'@; put 'LDUuOC01LjhTMTguMiwxOS4yLDE1LDE5LjJ6IE0xNSwyOS4yYy0yLjMsMC00LjItMS45LTQuMi00LjJcblx0XHRzMS45LTQuMiw0LjItNC4yczQuMiwxLjksNC4yLDQuMlMxNy4zLDI5LjIsMTUsMjkuMnoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxy'@; put 'ZWN0IHg9IjE0IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTMzLDlIMnYxMy4xYzAsMCwwLDAsMCwwQzIsMjQuMywzLjcsMjYsNS45LDI2SDd2LTJINS45Yy0xLDAtMS44LTAuOC0xLjkt'@; put 'MS45VjE1aDIydjcuMWMwLDEtMC44LDEuOC0xLjksMS45SDIzdjJoMS4xXG5cdFx0YzAsMCwwLDAsMCwwYzIuMSwwLDMuOC0xLjcsMy44LTMuOVYxMWg1YzAuNiwwLDEtMC40LDEtMVMzMy42LDksMzMsOXogTTI2LDEzSDR2LTJoMjJWMTN6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v'@; put 'dXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzMsOUgydjEzLjFjMCwwLDAsMCwwLDBDMiwyNC4zLDMuNywyNiw1LjksMjZIN3YtMkg1LjljLTEsMC0xLjgtMC44LTEuOS0xLjlWMTVoMjJ2Ny4xYzAsMS0wLjgsMS44LTEuOSwxLjlIMjN2MmgxLjFcblx0YzAsMCwwLDAsMCwwYzIuMSwwLDMu'@; put 'OC0xLjcsMy44LTMuOVYxMWg1YzAuNiwwLDEtMC40LDEtMVMzMy42LDksMzMsOXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTE1LDE5LjJjLTMuMiwwLTUuOCwyLjYtNS44LDUuOHMyLjYsNS44LDUuOCw1LjhzNS44LTIuNiw1LjgtNS44bDAs'@; put 'MEMyMC44LDIxLjgsMTguMiwxOS4yLDE1LDE5LjJ6IE0xNiwyNmgtMnYtMmgyVjI2eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxiLkNsclNoYXBlT25Ib2xpZGF5PSgwLHAuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOC4wOCwyLjM0Yy04LjgyLDAtMTYs'@; put 'Ni4yOC0xNiwxNHM3LjE4LDE0LDE2LDE0QTE3LjkxLDE3LjkxLDAsMCwwLDIzLDI5LjY2bDUuNTMsMy41MmExLDEsMCwwLDAsMS4zOC0uMywxLDEsMCwwLDAsLjE2LS41NFYyNS42MWExMywxMywwLDAsMCw0LTkuMjdDMzQuMDgsOC42MiwyNi45LDIuMzQsMTguMDgsMi4zNFpNMjguMzcsMjQu'@; put 'NDVhMSwxLDAsMCwwLS4zMi43M3Y1LjM0bC00LjM4LTIuNzlhMSwxLDAsMCwwLS44My0uMTEsMTYsMTYsMCwwLDEtNC43Ni43MmMtNy43MiwwLTE0LTUuMzgtMTQtMTJzNi4yOC0xMiwxNC0xMiwxNCw1LjM4LDE0LDEyQTExLjEsMTEuMSwwLDAsMSwyOC4zNywyNC40NVoiIGNsYXNzPSJjbHIt'@; put 'aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0zMS4xLDE1LjgyLDMxLDE1LjY3LDI4LjUsMTMuNDRhMy4yNSwzLjI1LDAsMCwwLTIuMzktLjg0bC01LjM4LjM0LTMuNTktM2EuODEuODEsMCwwLDAtLjUyLS4xOUgxMy41NmEuNzguNzgsMCwwLDAtLjY5LjQu'@; put 'NzcuNzcsMCwwLDAsMCwuNzlsMS4zNiwyLjQ0LTQuNzEuMjksMS4zMSwxLjUyLDE1LjM5LTFhMS42NSwxLjY1LDAsMCwxLDEuMjIuNDNsMi4zNiwyLjEzYS4xMS4xMSwwLDAsMSwwLC4wN2MwLC4wNi0uMDkuMDUtLjEuMDZIMjEuODJsLS4zNS4zNy01LjE5LDUuNTNIMTQuNjRsMi43My01LjlI'@; put 'OC41NEw3LjEzLDE0LjE2LDYuNTEsMTNhLjguOCwwLDAsMC0xLS4yQS44MS44MSwwLDAsMCw1LjIsMTMuOWwyLDMuOTRhMS4yMSwxLjIxLDAsMCwwLDEuMDguNjVoNi41N2wtMS45NCw0LjE4QTEuMiwxLjIsMCwwLDAsMTMsMjMuODNhMS4yMiwxLjIyLDAsMCwwLDEsLjU2aDIuNDNhMS4xNywx'@; put 'LjE3LDAsMCwwLC44OC0uMzlsNS4xOC01LjUxaDcuMTZhMS42NSwxLjY1LDAsMCwwLDEuNTItLjkxQTEuNzQsMS43NCwwLDAsMCwzMS4xLDE1LjgyWk0xNC45MiwxMS4zMWgxLjQxbDIuMDksMS43N0wxNiwxMy4yM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0y'@; put 'Ii8+XG4gIFxuICA8cGF0aCBkPSJNMTgsMi41Yy04LjgyLDAtMTYsNi4yOC0xNiwxNHM3LjE4LDE0LDE2LDE0YTE3LjkxLDE3LjkxLDAsMCwwLDQuODgtLjY4bDUuNTMsMy41MmExLDEsMCwwLDAsMS4zOC0uM0ExLDEsMCwwLDAsMzAsMzIuNVYyNS43N2ExMywxMywwLDAsMCw0LTkuMjdDMzQs'@; put 'OC43OCwyNi44MiwyLjUsMTgsMi41Wk0yOS44NCwxOEgyMS41MWEuNDIuNDIsMCwwLDAtLjMuMTNsLTUuMyw1LjY0YS4zOS4zOSwwLDAsMS0uMjkuMTNIMTMuMTlhLjQxLjQxLDAsMCwxLS4zNy0uNThsMi40Ny01LjMySDcuNDZhLjQyLjQyLDAsMCwxLS4zNi0uMjJsLTIuNy01SDYuMjRhLjUz'@; put 'LjUzLDAsMCwxLC4zOS4xOGwxLjU2LDEuNjlhLjM4LjM4LDAsMCwwLC4zMy4xNGw2LjE4LS4zOC0yLTMuNTVoMi44OWEuNDcuNDcsMCwwLDEsLjMxLjExTDE5LjYzLDE0bDYuNjktLjM1YTIuNDQsMi40NCwwLDAsMSwxLjgxLjYzbDIuNDcsMi4yM0EuOTIuOTIsMCwwLDEsMjkuODQsMThaIiBj'@; put 'bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICcpLGIuVHJhdmVsU2hhcGVzPXt0cnVjazpiLkNsclNoYXBlVHJ1Y2ssYWlycGxhbmU6Yi5DbHJTaGFwZUFpcnBsYW5lLGNhcjpiLkNsclNoYXBlQ2FyLG1hcDpiLkNsclNoYXBlTWFwLGNvbXBhc3M6Yi5DbHJTaGFw'@; put 'ZUNvbXBhc3MsIm1hcC1tYXJrZXIiOmIuQ2xyU2hhcGVNYXBNYXJrZXIsYmljeWNsZTpiLkNsclNoYXBlQmljeWNsZSxib2F0OmIuQ2xyU2hhcGVCb2F0LGNhbXBlcnZhbjpiLkNsclNoYXBlQ2FtcGVydmFuLGNhcmF2YW46Yi5DbHJTaGFwZUNhcmF2YW4sZmVycnk6Yi5DbHJTaGFwZUZlcnJ5'@; put 'LHRyYWlsZXI6Yi5DbHJTaGFwZVRyYWlsZXIsIm9uLWhvbGlkYXkiOmIuQ2xyU2hhcGVPbkhvbGlkYXl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShiLlRyYXZlbFNoYXBlcywicGxhbmUiLCgwLF8uZGVzY3JpcHRvckNvbmZpZykoYi5UcmF2ZWxTaGFwZXMuYWlycGxhbmUpKSxPYmplY3QuZGVm'@; put 'aW5lUHJvcGVydHkoYi5UcmF2ZWxTaGFwZXMsImF1dG8iLCgwLF8uZGVzY3JpcHRvckNvbmZpZykoYi5UcmF2ZWxTaGFwZXMuY2FyKSksdHlwZW9mIHdpbmRvdzwidSImJndpbmRvdy5oYXNPd25Qcm9wZXJ0eSgiQ2xhcml0eUljb25zIikmJndpbmRvdy5DbGFyaXR5SWNvbnMuYWRkKGIuVHJh'@; put 'dmVsU2hhcGVzKX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnLnRzIjoKLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXAogICAgICAgICAgICAgICAgICAhKioqIC4vcHJvamVjdHMvaWNvbnMv'@; put 'c3JjL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnLnRzICoqKiEKICAgICAgICAgICAgICAgICAgXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qISBubyBzdGF0aWMgZXhwb3J0cyBmb3VuZCAqL2Z1bmN0aW9uKEosYixEKXsidXNlIHN0'@; put 'cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGIuZGVzY3JpcHRvckNvbmZpZz12b2lkIDAsYi5kZXNjcmlwdG9yQ29uZmlnPWZ1bmN0aW9uIF8ocCl7cmV0dXJue2VudW1lcmFibGU6ITAsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwLHZh'@; put 'bHVlOnB9fX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yLnRzIjoKLyohKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiEqXAogICAgICAgICAgICAgICAgICAhKioqIC4vcHJvamVjdHMvaWNvbnMvc3Jj'@; put 'L3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yLnRzICoqKiEKICAgICAgICAgICAgICAgICAgXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qISBubyBzdGF0aWMgZXhwb3J0cyBmb3VuZCAqL2Z1bmN0aW9uKEosYixEKXsidXNlIHN0cmlj'@; put 'dCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGIuY2xySWNvblNWRz12b2lkIDA7Yi5jbHJJY29uU1ZHPWZ1bmN0aW9uIHcoRil7dmFyIEg9IiI7cmV0dXJuIEYuaW5kZXhPZigiLS1iYWRnZWQiKT4tMSYmKEgrPSJjYW4tYmFkZ2UgIiksRi5pbmRl'@; put 'eE9mKCItLWFsZXJ0ZWQiKT4tMSYmKEgrPSJjYW4tYWxlcnQgIiksRi5pbmRleE9mKCJjbHItaS1zb2xpZCIpPi0xJiYoSCs9Imhhcy1zb2xpZCAiKSwoSD8nPHN2ZyB2ZXJzaW9uPSIxLjEiIGNsYXNzPSInK0grJyIgdmlld0JveD0iMCAwIDM2IDM2IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4'@; put 'TWlkWU1pZCBtZWV0IlxuICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIGZvY3VzYWJsZT0iZmFsc2UiIHJvbGU9ImltZyI+JzonPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAzNiAz'@; put 'NiIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCJcbiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmb2N1c2FibGU9ImZhbHNlIiByb2xlPSJpbWciPicpK0YrIjwvc3ZnPiJ9'@; put 'fX0pfSw4OTI5NjooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD17fTtiLnIoRCksYi5kKEQse2FycmF5QXZnOigpPT4kWGUsYXJyYXlFYWNoOigpPT5LbixhcnJheUZpbHRlcjooKT0+QW0sYXJyYXlGbGF0dGVuOigpPT5FMmUsYXJyYXlNYXA6KCk9PnlvLGFycmF5TWF4OigpPT5ZWGUs'@; put 'YXJyYXlNaW46KCk9PkdYZSxhcnJheVJlZHVjZTooKT0+R3UsYXJyYXlTdW06KCk9PngyZSxhcnJheVVuaXF1ZTooKT0+VDJlLGV4dGVuZEFycmF5OigpPT5kJCxnZXREaWZmZXJlbmNlT2ZBcnJheXM6KCk9PmgkLGdldEludGVyc2VjdGlvbk9mQXJyYXlzOigpPT5LWGUsZ2V0VW5pb25PZkFy'@; put 'cmF5czooKT0+WFhlLHBpdm90OigpPT52RSxzdHJpbmdUb0FycmF5OigpPT5mJCx0bzJkQXJyYXk6KCk9Pk0yZX0pO3ZhciBfPXt9O2IucihfKSxiLmQoXyx7X2luamVjdFByb2R1Y3RJbmZvOigpPT5MMmUsaXNEZWZpbmVkOigpPT5IYSxpc0VtcHR5OigpPT5qYyxpc1JlZ0V4cDooKT0+QTJl'@; put 'LGlzVW5kZWZpbmVkOigpPT5iYyxzdHJpbmdpZnk6KCk9Pm9jfSk7dmFyIHA9e307Yi5yKHApLGIuZChwLHtlcXVhbHNJZ25vcmVDYXNlOigpPT5lcWUsaXNQZXJjZW50VmFsdWU6KCk9Pm0kLHJhbmRvbVN0cmluZzooKT0+ZyQsc2FuaXRpemU6KCk9PlBPLHN0cmlwVGFnczooKT0+eSQsc3Vi'@; put 'c3RpdHV0ZTooKT0+diQsdG9VcHBlckNhc2VGaXJzdDooKT0+ZjF9KTt2YXIgTj17fTtiLnIoTiksYi5kKE4se2Nsb25lOigpPT5zMyxjcmVhdGVPYmplY3RQcm9wTGlzdGVuZXI6KCk9PkZkLGRlZXBDbG9uZTooKT0+cDEsZGVlcEV4dGVuZDooKT0+d0UsZGVlcE9iamVjdFNpemU6KCk9PlZP'@; put 'LGRlZmluZUdldHRlcjooKT0+VHAsZHVja1NjaGVtYTooKT0+cl8sZXh0ZW5kOigpPT53dSxnZXRQcm9wZXJ0eTooKT0+WjJlLGhhc093blByb3BlcnR5OigpPT5DdSxpbmhlcml0OigpPT5VMmUsaXNPYmplY3Q6KCk9PlhzLGlzT2JqZWN0RXF1YWw6KCk9PkhPLG1peGluOigpPT54bCxvYmpl'@; put 'Y3RFYWNoOigpPT5xcyxzZXRQcm9wZXJ0eTooKT0+Tk99KTt2YXIgdz17fTtiLnIodyksYi5kKHcse2NhbmNlbEFuaW1hdGlvbkZyYW1lOigpPT5TRSxnZXRDb21wYXJpc29uRnVuY3Rpb246KCk9PlkyZSxpc0NTUjooKT0+VzJlLGlzVG91Y2hTdXBwb3J0ZWQ6KCk9PnckLHJlcXVlc3RBbmlt'@; put 'YXRpb25GcmFtZTooKT0+Q0V9KTt2YXIgRj17fTtiLnIoRiksYi5kKEYse2lzQ2hyb21lOigpPT5DJCxpc0Nocm9tZVdlYktpdDooKT0+SzJlLGlzRWRnZTooKT0+cTJlLGlzRWRnZVdlYktpdDooKT0+eHFlLGlzRmlyZWZveDooKT0+Qk8saXNGaXJlZm94V2ViS2l0OigpPT5YMmUsaXNJT1M6'@; put 'KCk9PlMkLGlzSXBhZE9TOigpPT5NJCxpc0xpbnV4T1M6KCk9PkVxZSxpc01hY09TOigpPT56Tyxpc01vYmlsZUJyb3dzZXI6KCk9Pm8zLGlzU2FmYXJpOigpPT5zXyxpc1dpbmRvd3NPUzooKT0+ak8sc2V0QnJvd3Nlck1ldGE6KCk9PkcyZSxzZXRQbGF0Zm9ybU1ldGE6KCk9PiQyZX0pO3Zh'@; put 'ciBIPXt9O2IucihIKSxiLmQoSCx7SFRNTF9DSEFSQUNURVJTOigpPT5pZmUsYWRkQ2xhc3M6KCk9PkVpLGFkZEV2ZW50OigpPT5rcWUsY2xlYXJUZXh0U2VsZWN0aW9uOigpPT5EJCxjbG9zZXN0OigpPT5EbSxjbG9zZXN0RG93bjooKT0+eEUsZW1wdHk6KCk9PkFwLGZhc3RJbm5lckhUTUw6'@; put 'KCk9Pmo3LGZhc3RJbm5lclRleHQ6KCk9PkxtLGZpbmRGaXJzdFBhcmVudFdpdGhDbGFzczooKT0+ZWZlLGdldENhcmV0UG9zaXRpb246KCk9PmskLGdldENzc1RyYW5zZm9ybTooKT0+THFlLGdldEZyYWN0aW9uYWxTY2FsaW5nQ29tcGVuc2F0aW9uOigpPT5SJCxnZXRGcmFtZUVsZW1lbnQ6'@; put 'KCk9PlEyZSxnZXRNYXhpbXVtU2Nyb2xsTGVmdDooKT0+b2ZlLGdldE1heGltdW1TY3JvbGxUb3A6KCk9PnNmZSxnZXRQYXJlbnQ6KCk9PkoyZSxnZXRQYXJlbnRXaW5kb3c6KCk9PlY3LGdldFNjcm9sbExlZnQ6KCk9PlQkLGdldFNjcm9sbFRvcDooKT0+Wk8sZ2V0U2Nyb2xsYWJsZUVsZW1l'@; put 'bnQ6KCk9PkVFLGdldFNjcm9sbGJhcldpZHRoOigpPT5kMCxnZXRTZWxlY3Rpb25FbmRQb3NpdGlvbjooKT0+bGZlLGdldFNlbGVjdGlvblRleHQ6KCk9PklxZSxnZXRTdHlsZTooKT0+VEUsZ2V0VHJpbW1pbmdDb250YWluZXI6KCk9Pm9fLGdldFdpbmRvd1Njcm9sbExlZnQ6KCk9PlVPLGdl'@; put 'dFdpbmRvd1Njcm9sbFRvcDooKT0+RSQsaGFzQWNjZXNzVG9QYXJlbnRXaW5kb3c6KCk9PlRxZSxoYXNDbGFzczooKT0+Z3MsaGFzSG9yaXpvbnRhbFNjcm9sbGJhcjooKT0+TyQsaGFzVmVydGljYWxTY3JvbGxiYXI6KCk9PkwkLGhhc1plcm9IZWlnaHQ6KCk9PmFmZSxpbmRleDooKT0+dGZl'@; put 'LGlubmVySGVpZ2h0OigpPT5sXyxpbm5lcldpZHRoOigpPT5BJCxpc0NoaWxkT2Y6KCk9PkltLGlzRGV0YWNoZWQ6KCk9PlAkLGlzSFRNTEVsZW1lbnQ6KCk9PmtwLGlzSW5wdXQ6KCk9PkRFLGlzSW50ZXJuYWxFbGVtZW50OigpPT5NRSxpc091dHNpZGVJbnB1dDooKT0+WU8saXNWaXNpYmxl'@; put 'OigpPT56NyxtYWtlRWxlbWVudENvbnRlbnRFZGl0YWJsZUFuZFNlbGVjdEl0c0NvbnRlbnQ6KCk9PkYkLG1hdGNoZXNDU1NSdWxlczooKT0+QXFlLG9ic2VydmVWaXNpYmlsaXR5Q2hhbmdlT25jZTooKT0+Y2ZlLG9mZnNldDooKT0+ajAsb3V0ZXJIZWlnaHQ6KCk9PlN1LG91dGVyV2lkdGg6'@; put 'KCk9Pml1LG92ZXJsYXlDb250YWluc0VsZW1lbnQ6KCk9PlJtLHJlbW92ZUF0dHJpYnV0ZTooKT0+QjcscmVtb3ZlQ2xhc3M6KCk9PmhzLHJlbW92ZUNvbnRlbnRFZGl0YWJsZUZyb21FbGVtZW50QW5kRGVzZWxlY3Q6KCk9PkgkLHJlbW92ZUV2ZW50OigpPT5EcWUscmVtb3ZlVGV4dE5vZGVz'@; put 'OigpPT54JCxyZXNldENzc1RyYW5zZm9ybTooKT0+a0UscnVuV2l0aFNlbGVjdGVkQ29udGVuZEVkaXRhYmxlRWxlbWVudDooKT0+dWZlLHNlbGVjdEVsZW1lbnRJZkFsbG93ZWQ6KCk9Pk9xZSxzZXRBdHRyaWJ1dGU6KCk9Pm1zLHNldENhcmV0UG9zaXRpb246KCk9PkFFLHNldE92ZXJsYXlQ'@; put 'b3NpdGlvbjooKT0+V099KTt2YXIgUj17fTtiLnIoUiksYi5kKFIse2N1cnJ5OigpPT5oZmUsY3VycnlSaWdodDooKT0+SHFlLGRlYm91bmNlOigpPT5JRSxmYXN0Q2FsbDooKT0+R08saXNGdW5jdGlvbjooKT0+ZmwscGFydGlhbDooKT0+TiQscGlwZTooKT0+RnFlLHRocm90dGxlOigpPT5k'@; put 'ZmUsdGhyb3R0bGVBZnRlckhpdHM6KCk9PlBxZX0pO3ZhciBqPXt9O2IucihqKSxiLmQoaix7S0VZX0NPREVTOigpPT4kYSxpc0N0cmxLZXk6KCk9PlZxZSxpc0N0cmxNZXRhS2V5OigpPT5wZmUsaXNGdW5jdGlvbktleTooKT0+ViQsaXNLZXk6KCk9PmNfLGlzUHJpbnRhYmxlQ2hhcjooKT0+'@; put 'ZmZlfSk7dmFyIFA9e307Yi5yKFApLGIuZChQLHtpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDooKT0+T20saXNMZWZ0Q2xpY2s6KCk9PiRPLGlzUmlnaHRDbGljazooKT0+UG0saXNUb3VjaEV2ZW50OigpPT5nZmUsb2Zmc2V0UmVsYXRpdmVUbzooKT0+bWZlLHN0b3BJbW1lZGlhdGVQ'@; put 'cm9wYWdhdGlvbjooKT0+ejJ9KTt2YXIgTD17fTtiLnIoTCksYi5kKEwse19kYXRhVG9IVE1MOigpPT5xJCxodG1sVG9HcmlkU2V0dGluZ3M6KCk9PmtmZSxpbnN0YW5jZVRvSFRNTDooKT0+WCR9KTt2YXIgWT17fTtiLnIoWSksYi5kKFkse2NsYW1wOigpPT5Bbyxpc051bWVyaWM6KCk9Pmcx'@; put 'LGlzTnVtZXJpY0xpa2U6KCk9PkRmZSxyYW5nZUVhY2g6KCk9PkthLHJhbmdlRWFjaFJldmVyc2U6KCk9PkokLHZhbHVlQWNjb3JkaW5nUGVyY2VudDooKT0+USR9KTt2YXIgQj17fTtiLnIoQiksYi5kKEIse2NvdW50Rmlyc3RSb3dLZXlzOigpPT5GSyxjcmVhdGVFbXB0eVNwcmVhZHNoZWV0'@; put 'RGF0YTooKT0+VnR0LGNyZWF0ZVNwcmVhZHNoZWV0RGF0YTooKT0+SHR0LGNyZWF0ZVNwcmVhZHNoZWV0T2JqZWN0RGF0YTooKT0+TnR0LGRhdGFSb3dUb0NoYW5nZXNBcnJheTooKT0+UEssaXNBcnJheU9mQXJyYXlzOigpPT5MM2UsaXNBcnJheU9mT2JqZWN0czooKT0+TzNlLHNwcmVhZHNo'@; put 'ZWV0Q29sdW1uSW5kZXg6KCk9PkZ0dCxzcHJlYWRzaGVldENvbHVtbkxhYmVsOigpPT5tUH0pO3ZhciBXPXt9O2IucihXKSxiLmQoVyx7Q0hFQ0tCT1hfQ0hFQ0tFRDooKT0+aHEsQ0hFQ0tCT1hfUkVOREVSRVJfTkFNRVNQQUNFOigpPT5kcSxDSEVDS0JPWF9VTkNIRUNLRUQ6KCk9PmZxLENP'@; put 'TlRFWFRNRU5VX0lURU1TX0FERF9DT01NRU5UOigpPT5oWCxDT05URVhUTUVOVV9JVEVNU19BTElHTk1FTlQ6KCk9Pm1YLENPTlRFWFRNRU5VX0lURU1TX0FMSUdOTUVOVF9CT1RUT006KCk9PlNYLENPTlRFWFRNRU5VX0lURU1TX0FMSUdOTUVOVF9DRU5URVI6KCk9PnlYLENPTlRFWFRNRU5V'@; put 'X0lURU1TX0FMSUdOTUVOVF9KVVNUSUZZOigpPT5fWCxDT05URVhUTUVOVV9JVEVNU19BTElHTk1FTlRfTEVGVDooKT0+dlgsQ09OVEVYVE1FTlVfSVRFTVNfQUxJR05NRU5UX01JRERMRTooKT0+Q1gsQ09OVEVYVE1FTlVfSVRFTVNfQUxJR05NRU5UX1JJR0hUOigpPT5iWCxDT05URVhUTUVO'@; put 'VV9JVEVNU19BTElHTk1FTlRfVE9QOigpPT53WCxDT05URVhUTUVOVV9JVEVNU19CT1JERVJTOigpPT5NWCxDT05URVhUTUVOVV9JVEVNU19CT1JERVJTX0JPVFRPTTooKT0+VFgsQ09OVEVYVE1FTlVfSVRFTVNfQk9SREVSU19MRUZUOigpPT5BWCxDT05URVhUTUVOVV9JVEVNU19CT1JERVJT'@; put 'X1JJR0hUOigpPT5FWCxDT05URVhUTUVOVV9JVEVNU19CT1JERVJTX1RPUDooKT0+eFgsQ09OVEVYVE1FTlVfSVRFTVNfQ0xFQVJfQ09MVU1OOigpPT5uWCxDT05URVhUTUVOVV9JVEVNU19DT1BZOigpPT5yWCxDT05URVhUTUVOVV9JVEVNU19DT1BZX0NPTFVNTl9IRUFERVJTX09OTFk6KCk9'@; put 'PnNYLENPTlRFWFRNRU5VX0lURU1TX0NPUFlfV0lUSF9DT0xVTU5fR1JPVVBfSEVBREVSUzooKT0+YVgsQ09OVEVYVE1FTlVfSVRFTVNfQ09QWV9XSVRIX0NPTFVNTl9IRUFERVJTOigpPT5pWCxDT05URVhUTUVOVV9JVEVNU19DVVQ6KCk9Pm9YLENPTlRFWFRNRU5VX0lURU1TX0VESVRfQ09N'@; put 'TUVOVDooKT0+ZlgsQ09OVEVYVE1FTlVfSVRFTVNfRlJFRVpFX0NPTFVNTjooKT0+bFgsQ09OVEVYVE1FTlVfSVRFTVNfSElERV9DT0xVTU46KCk9PlJYLENPTlRFWFRNRU5VX0lURU1TX0hJREVfUk9XOigpPT5PWCxDT05URVhUTUVOVV9JVEVNU19JTlNFUlRfTEVGVDooKT0+WEssQ09OVEVY'@; put 'VE1FTlVfSVRFTVNfSU5TRVJUX1JJR0hUOigpPT5xSyxDT05URVhUTUVOVV9JVEVNU19NRVJHRV9DRUxMUzooKT0+dVgsQ09OVEVYVE1FTlVfSVRFTVNfTkVTVEVEX1JPV1NfREVUQUNIX0NISUxEOigpPT5JWCxDT05URVhUTUVOVV9JVEVNU19ORVNURURfUk9XU19JTlNFUlRfQ0hJTEQ6KCk9'@; put 'PkRYLENPTlRFWFRNRU5VX0lURU1TX05PX0lURU1TOigpPT5HSyxDT05URVhUTUVOVV9JVEVNU19SRUFEX09OTFk6KCk9Pk1QLENPTlRFWFRNRU5VX0lURU1TX1JFQURfT05MWV9DT01NRU5UOigpPT5nWCxDT05URVhUTUVOVV9JVEVNU19SRURPOigpPT50WCxDT05URVhUTUVOVV9JVEVNU19S'@; put 'RU1PVkVfQk9SREVSUzooKT0+a1gsQ09OVEVYVE1FTlVfSVRFTVNfUkVNT1ZFX0NPTFVNTjooKT0+UUssQ09OVEVYVE1FTlVfSVRFTVNfUkVNT1ZFX0NPTU1FTlQ6KCk9PnBYLENPTlRFWFRNRU5VX0lURU1TX1JFTU9WRV9ST1c6KCk9PkpLLENPTlRFWFRNRU5VX0lURU1TX1JPV19BQk9WRToo'@; put 'KT0+JEssQ09OVEVYVE1FTlVfSVRFTVNfUk9XX0JFTE9XOigpPT5LSyxDT05URVhUTUVOVV9JVEVNU19TSE9XX0NPTFVNTjooKT0+TFgsQ09OVEVYVE1FTlVfSVRFTVNfU0hPV19ST1c6KCk9PlBYLENPTlRFWFRNRU5VX0lURU1TX1VORE86KCk9PmVYLENPTlRFWFRNRU5VX0lURU1TX1VORlJF'@; put 'RVpFX0NPTFVNTjooKT0+Y1gsQ09OVEVYVE1FTlVfSVRFTVNfVU5NRVJHRV9DRUxMUzooKT0+ZFgsQ09OVEVYVF9NRU5VX0lURU1TX05BTUVTUEFDRTooKT0+WTNlLEZJTFRFUlNfQlVUVE9OU19DQU5DRUw6KCk9Pm9xLEZJTFRFUlNfQlVUVE9OU19DTEVBUjooKT0+YXEsRklMVEVSU19CVVRU'@; put 'T05TX09LOigpPT5zcSxGSUxURVJTX0JVVFRPTlNfUExBQ0VIT0xERVJfU0VBUkNIOigpPT5scSxGSUxURVJTX0JVVFRPTlNfUExBQ0VIT0xERVJfU0VDT05EX1ZBTFVFOigpPT51cSxGSUxURVJTX0JVVFRPTlNfUExBQ0VIT0xERVJfVkFMVUU6KCk9PmNxLEZJTFRFUlNfQlVUVE9OU19TRUxF'@; put 'Q1RfQUxMOigpPT5pcSxGSUxURVJTX0NPTkRJVElPTlNfQUZURVI6KCk9PlhYLEZJTFRFUlNfQ09ORElUSU9OU19CRUZPUkU6KCk9PnFYLEZJTFRFUlNfQ09ORElUSU9OU19CRUdJTlNfV0lUSDooKT0+QlgsRklMVEVSU19DT05ESVRJT05TX0JFVFdFRU46KCk9PiRYLEZJTFRFUlNfQ09ORElU'@; put 'SU9OU19CWV9WQUxVRTooKT0+dm50LEZJTFRFUlNfQ09ORElUSU9OU19DT05UQUlOUzooKT0+elgsRklMVEVSU19DT05ESVRJT05TX0VNUFRZOigpPT5GWCxGSUxURVJTX0NPTkRJVElPTlNfRU5EU19XSVRIOigpPT5qWCxGSUxURVJTX0NPTkRJVElPTlNfRVFVQUw6KCk9Pk5YLEZJTFRFUlNf'@; put 'Q09ORElUSU9OU19HUkVBVEVSX1RIQU46KCk9PlpYLEZJTFRFUlNfQ09ORElUSU9OU19HUkVBVEVSX1RIQU5fT1JfRVFVQUw6KCk9PldYLEZJTFRFUlNfQ09ORElUSU9OU19MRVNTX1RIQU46KCk9PllYLEZJTFRFUlNfQ09ORElUSU9OU19MRVNTX1RIQU5fT1JfRVFVQUw6KCk9PkdYLEZJTFRF'@; put 'UlNfQ09ORElUSU9OU19OQU1FU1BBQ0U6KCk9PlVjLEZJTFRFUlNfQ09ORElUSU9OU19OT05FOigpPT54UCxGSUxURVJTX0NPTkRJVElPTlNfTk9UX0JFVFdFRU46KCk9PktYLEZJTFRFUlNfQ09ORElUSU9OU19OT1RfQ09OVEFJTjooKT0+VVgsRklMVEVSU19DT05ESVRJT05TX05PVF9FTVBU'@; put 'WTooKT0+SFgsRklMVEVSU19DT05ESVRJT05TX05PVF9FUVVBTDooKT0+VlgsRklMVEVSU19DT05ESVRJT05TX1RPREFZOigpPT5KWCxGSUxURVJTX0NPTkRJVElPTlNfVE9NT1JST1c6KCk9PlFYLEZJTFRFUlNfQ09ORElUSU9OU19ZRVNURVJEQVk6KCk9PmVxLEZJTFRFUlNfRElWU19GSUxU'@; put 'RVJfQllfQ09ORElUSU9OOigpPT50cSxGSUxURVJTX0RJVlNfRklMVEVSX0JZX1ZBTFVFOigpPT5ucSxGSUxURVJTX0xBQkVMU19DT05KVU5DVElPTjooKT0+cnEsRklMVEVSU19MQUJFTFNfRElTSlVOQ1RJT046KCk9PkVQLEZJTFRFUlNfTkFNRVNQQUNFOigpPT5KMSxGSUxURVJTX1ZBTFVF'@; put 'U19CTEFOS19DRUxMUzooKT0+VFB9KTt2YXIgWj17fTtmdW5jdGlvbiBYKGMsbCxhLGQsaCxmLHYpe3RyeXt2YXIgTT1jW2ZdKHYpLEk9TS52YWx1ZX1jYXRjaChHKXtyZXR1cm4gdm9pZCBhKEcpfU0uZG9uZT9sKEkpOlByb21pc2UucmVzb2x2ZShJKS50aGVuKGQsaCl9ZnVuY3Rpb24gUShj'@; put 'KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbD10aGlzLGE9YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihkLGgpe3ZhciBmPWMuYXBwbHkobCxhKTtmdW5jdGlvbiB2KEkpe1goZixkLGgsdixNLCJuZXh0IixJKX1mdW5jdGlvbiBNKEkpe1goZixkLGgsdixNLCJ0aHJvdyIs'@; put 'SSl9dih2b2lkIDApfSl9fWIucihaKSxiLmQoWix7Z2V0Tm9ybWFsaXplZERhdGU6KCk9Pkk0ZX0pO2xldCB0ZT1udWxsLHNlPTE7Y29uc3QgZ2U9U3ltYm9sKCJTSUdOQUwiKTtmdW5jdGlvbiBfZShjKXtjb25zdCBsPXRlO3JldHVybiB0ZT1jLGx9ZnVuY3Rpb24geChjKXtpZigoIWxlKGMp'@; put 'fHxjLmRpcnR5KSYmKGMuZGlydHl8fGMubGFzdENsZWFuRXBvY2ghPT1zZSkpe2lmKCFjLnByb2R1Y2VyTXVzdFJlY29tcHV0ZShjKSYmIW0oYykpcmV0dXJuIGMuZGlydHk9ITEsdm9pZChjLmxhc3RDbGVhbkVwb2NoPXNlKTtjLnByb2R1Y2VyUmVjb21wdXRlVmFsdWUoYyksYy5kaXJ0eT0h'@; put 'MSxjLmxhc3RDbGVhbkVwb2NoPXNlfX1mdW5jdGlvbiBtKGMpe3dlKGMpO2ZvcihsZXQgbD0wO2w8Yy5wcm9kdWNlck5vZGUubGVuZ3RoO2wrKyl7Y29uc3QgYT1jLnByb2R1Y2VyTm9kZVtsXSxkPWMucHJvZHVjZXJMYXN0UmVhZFZlcnNpb25bbF07aWYoZCE9PWEudmVyc2lvbnx8KHgoYSks'@; put 'ZCE9PWEudmVyc2lvbikpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gbmUoYyxsKXtpZihmdW5jdGlvbiBaZShjKXtjLmxpdmVDb25zdW1lck5vZGU/Pz1bXSxjLmxpdmVDb25zdW1lckluZGV4T2ZUaGlzPz89W119KGMpLHdlKGMpLDE9PT1jLmxpdmVDb25zdW1lck5vZGUubGVuZ3RoKWZv'@; put 'cihsZXQgZD0wO2Q8Yy5wcm9kdWNlck5vZGUubGVuZ3RoO2QrKyluZShjLnByb2R1Y2VyTm9kZVtkXSxjLnByb2R1Y2VySW5kZXhPZlRoaXNbZF0pO2NvbnN0IGE9Yy5saXZlQ29uc3VtZXJOb2RlLmxlbmd0aC0xO2lmKGMubGl2ZUNvbnN1bWVyTm9kZVtsXT1jLmxpdmVDb25zdW1lck5vZGVb'@; put 'YV0sYy5saXZlQ29uc3VtZXJJbmRleE9mVGhpc1tsXT1jLmxpdmVDb25zdW1lckluZGV4T2ZUaGlzW2FdLGMubGl2ZUNvbnN1bWVyTm9kZS5sZW5ndGgtLSxjLmxpdmVDb25zdW1lckluZGV4T2ZUaGlzLmxlbmd0aC0tLGw8Yy5saXZlQ29uc3VtZXJOb2RlLmxlbmd0aCl7Y29uc3QgZD1jLmxp'@; put 'dmVDb25zdW1lckluZGV4T2ZUaGlzW2xdLGg9Yy5saXZlQ29uc3VtZXJOb2RlW2xdO3dlKGgpLGgucHJvZHVjZXJJbmRleE9mVGhpc1tkXT1sfX1mdW5jdGlvbiBsZShjKXtyZXR1cm4gYy5jb25zdW1lcklzQWx3YXlzTGl2ZXx8KGM/LmxpdmVDb25zdW1lck5vZGU/Lmxlbmd0aD8/MCk+MH1m'@; put 'dW5jdGlvbiB3ZShjKXtjLnByb2R1Y2VyTm9kZT8/PVtdLGMucHJvZHVjZXJJbmRleE9mVGhpcz8/PVtdLGMucHJvZHVjZXJMYXN0UmVhZFZlcnNpb24/Pz1bXX1sZXQgQWU9bnVsbDtmdW5jdGlvbiBLZShjKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgY31mdW5jdGlvbiB0dChjKXtjb25z'@; put 'dCBhPWMoZD0+e0Vycm9yLmNhbGwoZCksZC5zdGFjaz0obmV3IEVycm9yKS5zdGFja30pO3JldHVybiBhLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSksYS5wcm90b3R5cGUuY29uc3RydWN0b3I9YSxhfWNvbnN0IE5lPXR0KGM9PmZ1bmN0aW9uKGEpe2ModGhpcyks'@; put 'dGhpcy5tZXNzYWdlPWE/YCR7YS5sZW5ndGh9IGVycm9ycyBvY2N1cnJlZCBkdXJpbmcgdW5zdWJzY3JpcHRpb246XG4ke2EubWFwKChkLGgpPT5gJHtoKzF9KSAke2QudG9TdHJpbmcoKX1gKS5qb2luKCJcbiAgIil9YDoiIix0aGlzLm5hbWU9IlVuc3Vic2NyaXB0aW9uRXJyb3IiLHRoaXMu'@; put 'ZXJyb3JzPWF9KTtmdW5jdGlvbiB1dChjLGwpe2lmKGMpe2NvbnN0IGE9Yy5pbmRleE9mKGwpOzA8PWEmJmMuc3BsaWNlKGEsMSl9fWNsYXNzIEp0e2NvbnN0cnVjdG9yKGwpe3RoaXMuaW5pdGlhbFRlYXJkb3duPWwsdGhpcy5jbG9zZWQ9ITEsdGhpcy5fcGFyZW50YWdlPW51bGwsdGhpcy5f'@; put 'ZmluYWxpemVycz1udWxsfXVuc3Vic2NyaWJlKCl7bGV0IGw7aWYoIXRoaXMuY2xvc2VkKXt0aGlzLmNsb3NlZD0hMDtjb25zdHtfcGFyZW50YWdlOmF9PXRoaXM7aWYoYSlpZih0aGlzLl9wYXJlbnRhZ2U9bnVsbCxBcnJheS5pc0FycmF5KGEpKWZvcihjb25zdCBmIG9mIGEpZi5yZW1vdmUo'@; put 'dGhpcyk7ZWxzZSBhLnJlbW92ZSh0aGlzKTtjb25zdHtpbml0aWFsVGVhcmRvd246ZH09dGhpcztpZihLZShkKSl0cnl7ZCgpfWNhdGNoKGYpe2w9ZiBpbnN0YW5jZW9mIE5lP2YuZXJyb3JzOltmXX1jb25zdHtfZmluYWxpemVyczpofT10aGlzO2lmKGgpe3RoaXMuX2ZpbmFsaXplcnM9bnVs'@; put 'bDtmb3IoY29uc3QgZiBvZiBoKXRyeXtvaShmKX1jYXRjaCh2KXtsPWw/P1tdLHYgaW5zdGFuY2VvZiBOZT9sPVsuLi5sLC4uLnYuZXJyb3JzXTpsLnB1c2godil9fWlmKGwpdGhyb3cgbmV3IE5lKGwpfX1hZGQobCl7dmFyIGE7aWYobCYmbCE9PXRoaXMpaWYodGhpcy5jbG9zZWQpb2kobCk7'@; put 'ZWxzZXtpZihsIGluc3RhbmNlb2YgSnQpe2lmKGwuY2xvc2VkfHxsLl9oYXNQYXJlbnQodGhpcykpcmV0dXJuO2wuX2FkZFBhcmVudCh0aGlzKX0odGhpcy5fZmluYWxpemVycz1udWxsIT09KGE9dGhpcy5fZmluYWxpemVycykmJnZvaWQgMCE9PWE/YTpbXSkucHVzaChsKX19X2hhc1BhcmVu'@; put 'dChsKXtjb25zdHtfcGFyZW50YWdlOmF9PXRoaXM7cmV0dXJuIGE9PT1sfHxBcnJheS5pc0FycmF5KGEpJiZhLmluY2x1ZGVzKGwpfV9hZGRQYXJlbnQobCl7Y29uc3R7X3BhcmVudGFnZTphfT10aGlzO3RoaXMuX3BhcmVudGFnZT1BcnJheS5pc0FycmF5KGEpPyhhLnB1c2gobCksYSk6YT9b'@; put 'YSxsXTpsfV9yZW1vdmVQYXJlbnQobCl7Y29uc3R7X3BhcmVudGFnZTphfT10aGlzO2E9PT1sP3RoaXMuX3BhcmVudGFnZT1udWxsOkFycmF5LmlzQXJyYXkoYSkmJnV0KGEsbCl9cmVtb3ZlKGwpe2NvbnN0e19maW5hbGl6ZXJzOmF9PXRoaXM7YSYmdXQoYSxsKSxsIGluc3RhbmNlb2YgSnQm'@; put 'JmwuX3JlbW92ZVBhcmVudCh0aGlzKX19SnQuRU1QVFk9KCgpPT57Y29uc3QgYz1uZXcgSnQ7cmV0dXJuIGMuY2xvc2VkPSEwLGN9KSgpO2NvbnN0IEx0PUp0LkVNUFRZO2Z1bmN0aW9uIFB0KGMpe3JldHVybiBjIGluc3RhbmNlb2YgSnR8fGMmJiJjbG9zZWQiaW4gYyYmS2UoYy5yZW1vdmUp'@; put 'JiZLZShjLmFkZCkmJktlKGMudW5zdWJzY3JpYmUpfWZ1bmN0aW9uIG9pKGMpe0tlKGMpP2MoKTpjLnVuc3Vic2NyaWJlKCl9Y29uc3QgZW49e29uVW5oYW5kbGVkRXJyb3I6bnVsbCxvblN0b3BwZWROb3RpZmljYXRpb246bnVsbCxQcm9taXNlOnZvaWQgMCx1c2VEZXByZWNhdGVkU3luY2hy'@; put 'b25vdXNFcnJvckhhbmRsaW5nOiExLHVzZURlcHJlY2F0ZWROZXh0Q29udGV4dDohMX0sc249e3NldFRpbWVvdXQoYyxsLC4uLmEpe2NvbnN0e2RlbGVnYXRlOmR9PXNuO3JldHVybiBkPy5zZXRUaW1lb3V0P2Quc2V0VGltZW91dChjLGwsLi4uYSk6c2V0VGltZW91dChjLGwsLi4uYSl9LGNs'@; put 'ZWFyVGltZW91dChjKXtjb25zdHtkZWxlZ2F0ZTpsfT1zbjtyZXR1cm4obD8uY2xlYXJUaW1lb3V0fHxjbGVhclRpbWVvdXQpKGMpfSxkZWxlZ2F0ZTp2b2lkIDB9O2Z1bmN0aW9uIElpKGMpe3NuLnNldFRpbWVvdXQoKCk9Pntjb25zdHtvblVuaGFuZGxlZEVycm9yOmx9PWVuO2lmKCFsKXRo'@; put 'cm93IGM7bChjKX0pfWZ1bmN0aW9uIGRuKCl7fWNvbnN0IGZ0PWt0KCJDIix2b2lkIDAsdm9pZCAwKTtmdW5jdGlvbiBrdChjLGwsYSl7cmV0dXJue2tpbmQ6Yyx2YWx1ZTpsLGVycm9yOmF9fWxldCBMbj1udWxsO2Z1bmN0aW9uIG90KGMpe2lmKGVuLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91'@; put 'c0Vycm9ySGFuZGxpbmcpe2NvbnN0IGw9IUxuO2lmKGwmJihMbj17ZXJyb3JUaHJvd246ITEsZXJyb3I6bnVsbH0pLGMoKSxsKXtjb25zdHtlcnJvclRocm93bjphLGVycm9yOmR9PUxuO2lmKExuPW51bGwsYSl0aHJvdyBkfX1lbHNlIGMoKX1jbGFzcyBuaSBleHRlbmRzIEp0e2NvbnN0cnVj'@; put 'dG9yKGwpe3N1cGVyKCksdGhpcy5pc1N0b3BwZWQ9ITEsbD8odGhpcy5kZXN0aW5hdGlvbj1sLFB0KGwpJiZsLmFkZCh0aGlzKSk6dGhpcy5kZXN0aW5hdGlvbj1qdH1zdGF0aWMgY3JlYXRlKGwsYSxkKXtyZXR1cm4gbmV3IGh0KGwsYSxkKX1uZXh0KGwpe3RoaXMuaXNTdG9wcGVkP2FuKGZ1'@; put 'bmN0aW9uIFp0KGMpe3JldHVybiBrdCgiTiIsYyx2b2lkIDApfShsKSx0aGlzKTp0aGlzLl9uZXh0KGwpfWVycm9yKGwpe3RoaXMuaXNTdG9wcGVkP2FuKGZ1bmN0aW9uIEZyKGMpe3JldHVybiBrdCgiRSIsdm9pZCAwLGMpfShsKSx0aGlzKToodGhpcy5pc1N0b3BwZWQ9ITAsdGhpcy5fZXJy'@; put 'b3IobCkpfWNvbXBsZXRlKCl7dGhpcy5pc1N0b3BwZWQ/YW4oZnQsdGhpcyk6KHRoaXMuaXNTdG9wcGVkPSEwLHRoaXMuX2NvbXBsZXRlKCkpfXVuc3Vic2NyaWJlKCl7dGhpcy5jbG9zZWR8fCh0aGlzLmlzU3RvcHBlZD0hMCxzdXBlci51bnN1YnNjcmliZSgpLHRoaXMuZGVzdGluYXRpb249'@; put 'bnVsbCl9X25leHQobCl7dGhpcy5kZXN0aW5hdGlvbi5uZXh0KGwpfV9lcnJvcihsKXt0cnl7dGhpcy5kZXN0aW5hdGlvbi5lcnJvcihsKX1maW5hbGx5e3RoaXMudW5zdWJzY3JpYmUoKX19X2NvbXBsZXRlKCl7dHJ5e3RoaXMuZGVzdGluYXRpb24uY29tcGxldGUoKX1maW5hbGx5e3RoaXMu'@; put 'dW5zdWJzY3JpYmUoKX19fWNvbnN0IFdlPUZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kO2Z1bmN0aW9uIEF0KGMsbCl7cmV0dXJuIFdlLmNhbGwoYyxsKX1jbGFzcyBpcntjb25zdHJ1Y3RvcihsKXt0aGlzLnBhcnRpYWxPYnNlcnZlcj1sfW5leHQobCl7Y29uc3R7cGFydGlhbE9ic2VydmVyOmF9'@; put 'PXRoaXM7aWYoYS5uZXh0KXRyeXthLm5leHQobCl9Y2F0Y2goZCl7RXQoZCl9fWVycm9yKGwpe2NvbnN0e3BhcnRpYWxPYnNlcnZlcjphfT10aGlzO2lmKGEuZXJyb3IpdHJ5e2EuZXJyb3IobCl9Y2F0Y2goZCl7RXQoZCl9ZWxzZSBFdChsKX1jb21wbGV0ZSgpe2NvbnN0e3BhcnRpYWxPYnNl'@; put 'cnZlcjpsfT10aGlzO2lmKGwuY29tcGxldGUpdHJ5e2wuY29tcGxldGUoKX1jYXRjaChhKXtFdChhKX19fWNsYXNzIGh0IGV4dGVuZHMgbml7Y29uc3RydWN0b3IobCxhLGQpe2xldCBoO2lmKHN1cGVyKCksS2UobCl8fCFsKWg9e25leHQ6bD8/dm9pZCAwLGVycm9yOmE/P3ZvaWQgMCxjb21w'@; put 'bGV0ZTpkPz92b2lkIDB9O2Vsc2V7bGV0IGY7dGhpcyYmZW4udXNlRGVwcmVjYXRlZE5leHRDb250ZXh0PyhmPU9iamVjdC5jcmVhdGUobCksZi51bnN1YnNjcmliZT0oKT0+dGhpcy51bnN1YnNjcmliZSgpLGg9e25leHQ6bC5uZXh0JiZBdChsLm5leHQsZiksZXJyb3I6bC5lcnJvciYmQXQo'@; put 'bC5lcnJvcixmKSxjb21wbGV0ZTpsLmNvbXBsZXRlJiZBdChsLmNvbXBsZXRlLGYpfSk6aD1sfXRoaXMuZGVzdGluYXRpb249bmV3IGlyKGgpfX1mdW5jdGlvbiBFdChjKXtlbi51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nP2Z1bmN0aW9uIHp0KGMpe2VuLnVzZURlcHJl'@; put 'Y2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcmJkxuJiYoTG4uZXJyb3JUaHJvd249ITAsTG4uZXJyb3I9Yyl9KGMpOklpKGMpfWZ1bmN0aW9uIGFuKGMsbCl7Y29uc3R7b25TdG9wcGVkTm90aWZpY2F0aW9uOmF9PWVuO2EmJnNuLnNldFRpbWVvdXQoKCk9PmEoYyxsKSl9Y29uc3QganQ9'@; put 'e2Nsb3NlZDohMCxuZXh0OmRuLGVycm9yOmZ1bmN0aW9uIHpuKGMpe3Rocm93IGN9LGNvbXBsZXRlOmRufSxkaT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wub2JzZXJ2YWJsZXx8IkBAb2JzZXJ2YWJsZSI7ZnVuY3Rpb24gY24oYyl7cmV0dXJuIGN9ZnVuY3Rpb24gRGkoYyl7'@; put 'cmV0dXJuIDA9PT1jLmxlbmd0aD9jbjoxPT09Yy5sZW5ndGg/Y1swXTpmdW5jdGlvbihhKXtyZXR1cm4gYy5yZWR1Y2UoKGQsaCk9PmgoZCksYSl9fWxldCBRdD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe2EmJih0aGlzLl9zdWJzY3JpYmU9YSl9bGlmdChhKXtjb25zdCBkPW5ldyBj'@; put 'O3JldHVybiBkLnNvdXJjZT10aGlzLGQub3BlcmF0b3I9YSxkfXN1YnNjcmliZShhLGQsaCl7Y29uc3QgZj1mdW5jdGlvbiB4aShjKXtyZXR1cm4gYyYmYyBpbnN0YW5jZW9mIG5pfHxmdW5jdGlvbiBjYShjKXtyZXR1cm4gYyYmS2UoYy5uZXh0KSYmS2UoYy5lcnJvcikmJktlKGMuY29tcGxl'@; put 'dGUpfShjKSYmUHQoYyl9KGEpP2E6bmV3IGh0KGEsZCxoKTtyZXR1cm4gb3QoKCk9Pntjb25zdHtvcGVyYXRvcjp2LHNvdXJjZTpNfT10aGlzO2YuYWRkKHY/di5jYWxsKGYsTSk6TT90aGlzLl9zdWJzY3JpYmUoZik6dGhpcy5fdHJ5U3Vic2NyaWJlKGYpKX0pLGZ9X3RyeVN1YnNjcmliZShh'@; put 'KXt0cnl7cmV0dXJuIHRoaXMuX3N1YnNjcmliZShhKX1jYXRjaChkKXthLmVycm9yKGQpfX1mb3JFYWNoKGEsZCl7cmV0dXJuIG5ldyhkPXRuKGQpKSgoaCxmKT0+e2NvbnN0IHY9bmV3IGh0KHtuZXh0Ok09Pnt0cnl7YShNKX1jYXRjaChJKXtmKEkpLHYudW5zdWJzY3JpYmUoKX19LGVycm9y'@; put 'OmYsY29tcGxldGU6aH0pO3RoaXMuc3Vic2NyaWJlKHYpfSl9X3N1YnNjcmliZShhKXt2YXIgZDtyZXR1cm4gbnVsbD09PShkPXRoaXMuc291cmNlKXx8dm9pZCAwPT09ZD92b2lkIDA6ZC5zdWJzY3JpYmUoYSl9W2RpXSgpe3JldHVybiB0aGlzfXBpcGUoLi4uYSl7cmV0dXJuIERpKGEpKHRo'@; put 'aXMpfXRvUHJvbWlzZShhKXtyZXR1cm4gbmV3KGE9dG4oYSkpKChkLGgpPT57bGV0IGY7dGhpcy5zdWJzY3JpYmUodj0+Zj12LHY9PmgodiksKCk9PmQoZikpfSl9fXJldHVybiBjLmNyZWF0ZT1sPT5uZXcgYyhsKSxjfSkoKTtmdW5jdGlvbiB0bihjKXt2YXIgbDtyZXR1cm4gbnVsbCE9PShs'@; put 'PWM/P2VuLlByb21pc2UpJiZ2b2lkIDAhPT1sP2w6UHJvbWlzZX1jb25zdCB5cj10dChjPT5mdW5jdGlvbigpe2ModGhpcyksdGhpcy5uYW1lPSJPYmplY3RVbnN1YnNjcmliZWRFcnJvciIsdGhpcy5tZXNzYWdlPSJvYmplY3QgdW5zdWJzY3JpYmVkIn0pO2xldCBHbj0oKCk9PntjbGFzcyBj'@; put 'IGV4dGVuZHMgUXR7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuY2xvc2VkPSExLHRoaXMuY3VycmVudE9ic2VydmVycz1udWxsLHRoaXMub2JzZXJ2ZXJzPVtdLHRoaXMuaXNTdG9wcGVkPSExLHRoaXMuaGFzRXJyb3I9ITEsdGhpcy50aHJvd25FcnJvcj1udWxsfWxpZnQoYSl7Y29uc3Qg'@; put 'ZD1uZXcgS2kodGhpcyx0aGlzKTtyZXR1cm4gZC5vcGVyYXRvcj1hLGR9X3Rocm93SWZDbG9zZWQoKXtpZih0aGlzLmNsb3NlZCl0aHJvdyBuZXcgeXJ9bmV4dChhKXtvdCgoKT0+e2lmKHRoaXMuX3Rocm93SWZDbG9zZWQoKSwhdGhpcy5pc1N0b3BwZWQpe3RoaXMuY3VycmVudE9ic2VydmVy'@; put 'c3x8KHRoaXMuY3VycmVudE9ic2VydmVycz1BcnJheS5mcm9tKHRoaXMub2JzZXJ2ZXJzKSk7Zm9yKGNvbnN0IGQgb2YgdGhpcy5jdXJyZW50T2JzZXJ2ZXJzKWQubmV4dChhKX19KX1lcnJvcihhKXtvdCgoKT0+e2lmKHRoaXMuX3Rocm93SWZDbG9zZWQoKSwhdGhpcy5pc1N0b3BwZWQpe3Ro'@; put 'aXMuaGFzRXJyb3I9dGhpcy5pc1N0b3BwZWQ9ITAsdGhpcy50aHJvd25FcnJvcj1hO2NvbnN0e29ic2VydmVyczpkfT10aGlzO2Zvcig7ZC5sZW5ndGg7KWQuc2hpZnQoKS5lcnJvcihhKX19KX1jb21wbGV0ZSgpe290KCgpPT57aWYodGhpcy5fdGhyb3dJZkNsb3NlZCgpLCF0aGlzLmlzU3Rv'@; put 'cHBlZCl7dGhpcy5pc1N0b3BwZWQ9ITA7Y29uc3R7b2JzZXJ2ZXJzOmF9PXRoaXM7Zm9yKDthLmxlbmd0aDspYS5zaGlmdCgpLmNvbXBsZXRlKCl9fSl9dW5zdWJzY3JpYmUoKXt0aGlzLmlzU3RvcHBlZD10aGlzLmNsb3NlZD0hMCx0aGlzLm9ic2VydmVycz10aGlzLmN1cnJlbnRPYnNlcnZl'@; put 'cnM9bnVsbH1nZXQgb2JzZXJ2ZWQoKXt2YXIgYTtyZXR1cm4obnVsbD09PShhPXRoaXMub2JzZXJ2ZXJzKXx8dm9pZCAwPT09YT92b2lkIDA6YS5sZW5ndGgpPjB9X3RyeVN1YnNjcmliZShhKXtyZXR1cm4gdGhpcy5fdGhyb3dJZkNsb3NlZCgpLHN1cGVyLl90cnlTdWJzY3JpYmUoYSl9X3N1'@; put 'YnNjcmliZShhKXtyZXR1cm4gdGhpcy5fdGhyb3dJZkNsb3NlZCgpLHRoaXMuX2NoZWNrRmluYWxpemVkU3RhdHVzZXMoYSksdGhpcy5faW5uZXJTdWJzY3JpYmUoYSl9X2lubmVyU3Vic2NyaWJlKGEpe2NvbnN0e2hhc0Vycm9yOmQsaXNTdG9wcGVkOmgsb2JzZXJ2ZXJzOmZ9PXRoaXM7cmV0'@; put 'dXJuIGR8fGg/THQ6KHRoaXMuY3VycmVudE9ic2VydmVycz1udWxsLGYucHVzaChhKSxuZXcgSnQoKCk9Pnt0aGlzLmN1cnJlbnRPYnNlcnZlcnM9bnVsbCx1dChmLGEpfSkpfV9jaGVja0ZpbmFsaXplZFN0YXR1c2VzKGEpe2NvbnN0e2hhc0Vycm9yOmQsdGhyb3duRXJyb3I6aCxpc1N0b3Bw'@; put 'ZWQ6Zn09dGhpcztkP2EuZXJyb3IoaCk6ZiYmYS5jb21wbGV0ZSgpfWFzT2JzZXJ2YWJsZSgpe2NvbnN0IGE9bmV3IFF0O3JldHVybiBhLnNvdXJjZT10aGlzLGF9fXJldHVybiBjLmNyZWF0ZT0obCxhKT0+bmV3IEtpKGwsYSksY30pKCk7Y2xhc3MgS2kgZXh0ZW5kcyBHbntjb25zdHJ1Y3Rv'@; put 'cihsLGEpe3N1cGVyKCksdGhpcy5kZXN0aW5hdGlvbj1sLHRoaXMuc291cmNlPWF9bmV4dChsKXt2YXIgYSxkO251bGw9PT0oZD1udWxsPT09KGE9dGhpcy5kZXN0aW5hdGlvbil8fHZvaWQgMD09PWE/dm9pZCAwOmEubmV4dCl8fHZvaWQgMD09PWR8fGQuY2FsbChhLGwpfWVycm9yKGwpe3Zh'@; put 'ciBhLGQ7bnVsbD09PShkPW51bGw9PT0oYT10aGlzLmRlc3RpbmF0aW9uKXx8dm9pZCAwPT09YT92b2lkIDA6YS5lcnJvcil8fHZvaWQgMD09PWR8fGQuY2FsbChhLGwpfWNvbXBsZXRlKCl7dmFyIGwsYTtudWxsPT09KGE9bnVsbD09PShsPXRoaXMuZGVzdGluYXRpb24pfHx2b2lkIDA9PT1s'@; put 'P3ZvaWQgMDpsLmNvbXBsZXRlKXx8dm9pZCAwPT09YXx8YS5jYWxsKGwpfV9zdWJzY3JpYmUobCl7dmFyIGEsZDtyZXR1cm4gbnVsbCE9PShkPW51bGw9PT0oYT10aGlzLnNvdXJjZSl8fHZvaWQgMD09PWE/dm9pZCAwOmEuc3Vic2NyaWJlKGwpKSYmdm9pZCAwIT09ZD9kOkx0fX1jbGFzcyBK'@; put 'ciBleHRlbmRzIEdue2NvbnN0cnVjdG9yKGwpe3N1cGVyKCksdGhpcy5fdmFsdWU9bH1nZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy5nZXRWYWx1ZSgpfV9zdWJzY3JpYmUobCl7Y29uc3QgYT1zdXBlci5fc3Vic2NyaWJlKGwpO3JldHVybiFhLmNsb3NlZCYmbC5uZXh0KHRoaXMuX3ZhbHVlKSxh'@; put 'fWdldFZhbHVlKCl7Y29uc3R7aGFzRXJyb3I6bCx0aHJvd25FcnJvcjphLF92YWx1ZTpkfT10aGlzO2lmKGwpdGhyb3cgYTtyZXR1cm4gdGhpcy5fdGhyb3dJZkNsb3NlZCgpLGR9bmV4dChsKXtzdXBlci5uZXh0KHRoaXMuX3ZhbHVlPWwpfX1mdW5jdGlvbiBRcihjKXtyZXR1cm4gS2UoYz8u'@; put 'bGlmdCl9ZnVuY3Rpb24gTmkoYyl7cmV0dXJuIGw9PntpZihRcihsKSlyZXR1cm4gbC5saWZ0KGZ1bmN0aW9uKGEpe3RyeXtyZXR1cm4gYyhhLHRoaXMpfWNhdGNoKGQpe3RoaXMuZXJyb3IoZCl9fSk7dGhyb3cgbmV3IFR5cGVFcnJvcigiVW5hYmxlIHRvIGxpZnQgdW5rbm93biBPYnNlcnZh'@; put 'YmxlIHR5cGUiKX19ZnVuY3Rpb24gSGkoYyxsLGEsZCxoKXtyZXR1cm4gbmV3IElhKGMsbCxhLGQsaCl9Y2xhc3MgSWEgZXh0ZW5kcyBuaXtjb25zdHJ1Y3RvcihsLGEsZCxoLGYsdil7c3VwZXIobCksdGhpcy5vbkZpbmFsaXplPWYsdGhpcy5zaG91bGRVbnN1YnNjcmliZT12LHRoaXMuX25l'@; put 'eHQ9YT9mdW5jdGlvbihNKXt0cnl7YShNKX1jYXRjaChJKXtsLmVycm9yKEkpfX06c3VwZXIuX25leHQsdGhpcy5fZXJyb3I9aD9mdW5jdGlvbihNKXt0cnl7aChNKX1jYXRjaChJKXtsLmVycm9yKEkpfWZpbmFsbHl7dGhpcy51bnN1YnNjcmliZSgpfX06c3VwZXIuX2Vycm9yLHRoaXMuX2Nv'@; put 'bXBsZXRlPWQ/ZnVuY3Rpb24oKXt0cnl7ZCgpfWNhdGNoKE0pe2wuZXJyb3IoTSl9ZmluYWxseXt0aGlzLnVuc3Vic2NyaWJlKCl9fTpzdXBlci5fY29tcGxldGV9dW5zdWJzY3JpYmUoKXt2YXIgbDtpZighdGhpcy5zaG91bGRVbnN1YnNjcmliZXx8dGhpcy5zaG91bGRVbnN1YnNjcmliZSgp'@; put 'KXtjb25zdHtjbG9zZWQ6YX09dGhpcztzdXBlci51bnN1YnNjcmliZSgpLCFhJiYobnVsbD09PShsPXRoaXMub25GaW5hbGl6ZSl8fHZvaWQgMD09PWx8fGwuY2FsbCh0aGlzKSl9fX1mdW5jdGlvbiBQcihjLGwpe3JldHVybiBOaSgoYSxkKT0+e2xldCBoPTA7YS5zdWJzY3JpYmUoSGkoZCxm'@; put 'PT57ZC5uZXh0KGMuY2FsbChsLGYsaCsrKSl9KSl9KX1jb25zdCBmYT0iaHR0cHM6Ly9nLmNvL25nL3NlY3VyaXR5I3hzcyI7Y2xhc3MgbnIgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihsLGEpe3N1cGVyKGZ1bmN0aW9uIG9hKGMsbCl7cmV0dXJuYE5HMCR7TWF0aC5hYnMoYyl9JHtsPyI6'@; put 'ICIrbDoiIn1gfShsLGEpKSx0aGlzLmNvZGU9bH19ZnVuY3Rpb24gSG8oYyl7cmV0dXJue3RvU3RyaW5nOmN9LnRvU3RyaW5nKCl9Y29uc3QgdXU9Il9fcGFyYW1ldGVyc19fIjtmdW5jdGlvbiBUYShjLGwsYSl7cmV0dXJuIEhvKCgpPT57Y29uc3QgZD1mdW5jdGlvbiBvcihjKXtyZXR1cm4g'@; put 'ZnVuY3Rpb24oLi4uYSl7aWYoYyl7Y29uc3QgZD1jKC4uLmEpO2Zvcihjb25zdCBoIGluIGQpdGhpc1toXT1kW2hdfX19KGwpO2Z1bmN0aW9uIGgoLi4uZil7aWYodGhpcyBpbnN0YW5jZW9mIGgpcmV0dXJuIGQuYXBwbHkodGhpcyxmKSx0aGlzO2NvbnN0IHY9bmV3IGgoLi4uZik7cmV0dXJu'@; put 'IE0uYW5ub3RhdGlvbj12LE07ZnVuY3Rpb24gTShJLEcscmUpe2NvbnN0IHVlPUkuaGFzT3duUHJvcGVydHkodXUpP0lbdXVdOk9iamVjdC5kZWZpbmVQcm9wZXJ0eShJLHV1LHt2YWx1ZTpbXX0pW3V1XTtmb3IoO3VlLmxlbmd0aDw9cmU7KXVlLnB1c2gobnVsbCk7cmV0dXJuKHVlW3JlXT11'@; put 'ZVtyZV18fFtdKS5wdXNoKHYpLEl9fXJldHVybiBhJiYoaC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShhLnByb3RvdHlwZSkpLGgucHJvdG90eXBlLm5nTWV0YWRhdGFOYW1lPWMsaC5hbm5vdGF0aW9uQ2xzPWgsaH0pfWNvbnN0IE50PWdsb2JhbFRoaXM7ZnVuY3Rpb24gVmEoYyl7Zm9yKGxl'@; put 'dCBsIGluIGMpaWYoY1tsXT09PVZhKXJldHVybiBsO3Rocm93IEVycm9yKCJDb3VsZCBub3QgZmluZCByZW5hbWVkIHByb3BlcnR5IG9uIHRhcmdldCBvYmplY3QuIil9ZnVuY3Rpb24gRHUoYyxsKXtmb3IoY29uc3QgYSBpbiBsKWwuaGFzT3duUHJvcGVydHkoYSkmJiFjLmhhc093blByb3Bl'@; put 'cnR5KGEpJiYoY1thXT1sW2FdKX1mdW5jdGlvbiBIcihjKXtpZigic3RyaW5nIj09dHlwZW9mIGMpcmV0dXJuIGM7aWYoQXJyYXkuaXNBcnJheShjKSlyZXR1cm4iWyIrYy5tYXAoSHIpLmpvaW4oIiwgIikrIl0iO2lmKG51bGw9PWMpcmV0dXJuIiIrYztpZihjLm92ZXJyaWRkZW5OYW1lKXJl'@; put 'dHVybmAke2Mub3ZlcnJpZGRlbk5hbWV9YDtpZihjLm5hbWUpcmV0dXJuYCR7Yy5uYW1lfWA7Y29uc3QgbD1jLnRvU3RyaW5nKCk7aWYobnVsbD09bClyZXR1cm4iIitsO2NvbnN0IGE9bC5pbmRleE9mKCJcbiIpO3JldHVybi0xPT09YT9sOmwuc3Vic3RyaW5nKDAsYSl9ZnVuY3Rpb24gbGQo'@; put 'YyxsKXtyZXR1cm4gbnVsbD09Y3x8IiI9PT1jP251bGw9PT1sPyIiOmw6bnVsbD09bHx8IiI9PT1sP2M6YysiICIrbH1jb25zdCBwZj1WYSh7X19mb3J3YXJkX3JlZl9fOlZhfSk7ZnVuY3Rpb24gd28oYyl7cmV0dXJuIGMuX19mb3J3YXJkX3JlZl9fPXdvLGMudG9TdHJpbmc9ZnVuY3Rpb24o'@; put 'KXtyZXR1cm4gSHIodGhpcygpKX0sY31mdW5jdGlvbiBHaShjKXtyZXR1cm4gdmwoYyk/YygpOmN9ZnVuY3Rpb24gdmwoYyl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGMmJmMuaGFzT3duUHJvcGVydHkocGYpJiZjLl9fZm9yd2FyZF9yZWZfXz09PXdvfWZ1bmN0aW9uIHJuKGMpe3JldHVy'@; put 'bnt0b2tlbjpjLnRva2VuLHByb3ZpZGVkSW46Yy5wcm92aWRlZElufHxudWxsLGZhY3Rvcnk6Yy5mYWN0b3J5LHZhbHVlOnZvaWQgMH19ZnVuY3Rpb24gQXIoYyl7cmV0dXJue3Byb3ZpZGVyczpjLnByb3ZpZGVyc3x8W10saW1wb3J0czpjLmltcG9ydHN8fFtdfX1mdW5jdGlvbiBGcyhjKXty'@; put 'ZXR1cm4gcmwoYyxDbyl8fHJsKGMsTnMpfWZ1bmN0aW9uIHJsKGMsbCl7cmV0dXJuIGMuaGFzT3duUHJvcGVydHkobCk/Y1tsXTpudWxsfWZ1bmN0aW9uIE5vKGMpe3JldHVybiBjJiYoYy5oYXNPd25Qcm9wZXJ0eShObCl8fGMuaGFzT3duUHJvcGVydHkoSXMpKT9jW05sXTpudWxsfWNvbnN0'@; put 'IENvPVZhKHtcdTAyNzVwcm92OlZhfSksTmw9VmEoe1x1MDI3NWluajpWYX0pLE5zPVZhKHtuZ0luamVjdGFibGVEZWY6VmF9KSxJcz1WYSh7bmdJbmplY3RvckRlZjpWYX0pO2NsYXNzIFN0e2NvbnN0cnVjdG9yKGwsYSl7dGhpcy5fZGVzYz1sLHRoaXMubmdNZXRhZGF0YU5hbWU9IkluamVj'@; put 'dGlvblRva2VuIix0aGlzLlx1MDI3NXByb3Y9dm9pZCAwLCJudW1iZXIiPT10eXBlb2YgYT90aGlzLl9fTkdfRUxFTUVOVF9JRF9fPWE6dm9pZCAwIT09YSYmKHRoaXMuXHUwMjc1cHJvdj1ybih7dG9rZW46dGhpcyxwcm92aWRlZEluOmEucHJvdmlkZWRJbnx8InJvb3QiLGZhY3Rvcnk6YS5m'@; put 'YWN0b3J5fSkpfWdldCBtdWx0aSgpe3JldHVybiB0aGlzfXRvU3RyaW5nKCl7cmV0dXJuYEluamVjdGlvblRva2VuICR7dGhpcy5fZGVzY31gfX1mdW5jdGlvbiBqYShjKXtyZXR1cm4gYyYmISFjLlx1MDI3NXByb3ZpZGVyc31jb25zdCAkcz1WYSh7XHUwMjc1Y21wOlZhfSksS2w9VmEoe1x1'@; put 'MDI3NWRpcjpWYX0pLGVzPVZhKHtcdTAyNzVwaXBlOlZhfSksYnM9VmEoe1x1MDI3NW1vZDpWYX0pLGppPVZhKHtcdTAyNzVmYWM6VmF9KSxMYz1WYSh7X19OR19FTEVNRU5UX0lEX186VmF9KSxWbD1WYSh7X19OR19FTlZfSURfXzpWYX0pO2Z1bmN0aW9uIFNhKGMpe3JldHVybiJzdHJpbmci'@; put 'PT10eXBlb2YgYz9jOm51bGw9PWM/IiI6U3RyaW5nKGMpfWZ1bmN0aW9uIFNvKGMsbCl7dGhyb3cgbmV3IG5yKC0yMDEsITEpfXZhciByYT1mdW5jdGlvbihjKXtyZXR1cm4gY1tjLkRlZmF1bHQ9MF09IkRlZmF1bHQiLGNbYy5Ib3N0PTFdPSJIb3N0IixjW2MuU2VsZj0yXT0iU2VsZiIsY1tj'@; put 'LlNraXBTZWxmPTRdPSJTa2lwU2VsZiIsY1tjLk9wdGlvbmFsPThdPSJPcHRpb25hbCIsY30ocmF8fHt9KTtsZXQgc3M7ZnVuY3Rpb24gdDUoKXtyZXR1cm4gc3N9ZnVuY3Rpb24geWwoYyl7Y29uc3QgbD1zcztyZXR1cm4gc3M9YyxsfWZ1bmN0aW9uIHRoKGMsbCxhKXtjb25zdCBkPUZzKGMp'@; put 'O3JldHVybiBkJiYicm9vdCI9PWQucHJvdmlkZWRJbj92b2lkIDA9PT1kLnZhbHVlP2QudmFsdWU9ZC5mYWN0b3J5KCk6ZC52YWx1ZTphJnJhLk9wdGlvbmFsP251bGw6dm9pZCAwIT09bD9sOnZvaWQgU28oKX1jb25zdCAkMD17fSxkdT0iX19OR19ESV9GTEFHX18iLE9jPSJuZ1RlbXBUb2tl'@; put 'blBhdGgiLEh3PS9cbi9nbSxpbD0iX19zb3VyY2UiO2xldCBSMztmdW5jdGlvbiBuaChjKXtjb25zdCBsPVIzO3JldHVybiBSMz1jLGx9ZnVuY3Rpb24gSTEoYyxsPXJhLkRlZmF1bHQpe2lmKHZvaWQgMD09PVIzKXRocm93IG5ldyBucigtMjAzLCExKTtyZXR1cm4gbnVsbD09PVIzP3RoKGMs'@; put 'dm9pZCAwLGwpOlIzLmdldChjLGwmcmEuT3B0aW9uYWw/bnVsbDp2b2lkIDAsbCl9ZnVuY3Rpb24gQ3IoYyxsPXJhLkRlZmF1bHQpe3JldHVybih0NSgpfHxJMSkoR2koYyksbCl9ZnVuY3Rpb24gaGkoYyxsPXJhLkRlZmF1bHQpe3JldHVybiBDcihjLG41KGwpKX1mdW5jdGlvbiBuNShjKXty'@; put 'ZXR1cm4gdHlwZW9mIGM+InUifHwibnVtYmVyIj09dHlwZW9mIGM/YzooYy5vcHRpb25hbCYmOCl8KGMuaG9zdCYmMSl8KGMuc2VsZiYmMil8KGMuc2tpcFNlbGYmJjQpfWZ1bmN0aW9uIHI1KGMpe2NvbnN0IGw9W107Zm9yKGxldCBhPTA7YTxjLmxlbmd0aDthKyspe2NvbnN0IGQ9R2koY1th'@; put 'XSk7aWYoQXJyYXkuaXNBcnJheShkKSl7aWYoMD09PWQubGVuZ3RoKXRocm93IG5ldyBucig5MDAsITEpO2xldCBoLGY9cmEuRGVmYXVsdDtmb3IobGV0IHY9MDt2PGQubGVuZ3RoO3YrKyl7Y29uc3QgTT1kW3ZdLEk9YmYoTSk7Im51bWJlciI9PXR5cGVvZiBJPy0xPT09ST9oPU0udG9rZW46'@; put 'Znw9STpoPU19bC5wdXNoKENyKGgsZikpfWVsc2UgbC5wdXNoKENyKGQpKX1yZXR1cm4gbH1mdW5jdGlvbiBRdShjLGwpe3JldHVybiBjW2R1XT1sLGMucHJvdG90eXBlW2R1XT1sLGN9ZnVuY3Rpb24gYmYoYyl7cmV0dXJuIGNbZHVdfWNvbnN0IHM1PVF1KFRhKCJJbmplY3QiLGM9Pih7dG9r'@; put 'ZW46Y30pKSwtMSksUjE9UXUoVGEoIk9wdGlvbmFsIiksOCksdWQ9UXUoVGEoIlNraXBTZWxmIiksNCk7ZnVuY3Rpb24gaHUoYyxsKXtyZXR1cm4gYy5oYXNPd25Qcm9wZXJ0eShqaSk/Y1tqaV06bnVsbH1mdW5jdGlvbiBMMyhjLGwpe2MuZm9yRWFjaChhPT5BcnJheS5pc0FycmF5KGEpP0wz'@; put 'KGEsbCk6bChhKSl9ZnVuY3Rpb24gUmwoYyxsLGEpe2w+PWMubGVuZ3RoP2MucHVzaChhKTpjLnNwbGljZShsLDAsYSl9ZnVuY3Rpb24gSXUoYyxsKXtyZXR1cm4gbD49Yy5sZW5ndGgtMT9jLnBvcCgpOmMuc3BsaWNlKGwsMSlbMF19ZnVuY3Rpb24gdjAoYyxsLGEpe2xldCBkPW4yKGMsbCk7'@; put 'cmV0dXJuIGQ+PTA/Y1sxfGRdPWE6KGQ9fmQsZnVuY3Rpb24gb3YoYyxsLGEsZCl7bGV0IGg9Yy5sZW5ndGg7aWYoaD09bCljLnB1c2goYSxkKTtlbHNlIGlmKDE9PT1oKWMucHVzaChkLGNbMF0pLGNbMF09YTtlbHNle2ZvcihoLS0sYy5wdXNoKGNbaC0xXSxjW2hdKTtoPmw7KWNbaF09Y1to'@; put 'LTJdLGgtLTtjW2xdPWEsY1tsKzFdPWR9fShjLGQsbCxhKSksZH1mdW5jdGlvbiBBNihjLGwpe2NvbnN0IGE9bjIoYyxsKTtpZihhPj0wKXJldHVybiBjWzF8YV19ZnVuY3Rpb24gbjIoYyxsKXtyZXR1cm4gZnVuY3Rpb24gTDEoYyxsLGEpe2xldCBkPTAsaD1jLmxlbmd0aD4+YTtmb3IoO2gh'@; put 'PT1kOyl7Y29uc3QgZj1kKyhoLWQ+PjEpLHY9Y1tmPDxhXTtpZihsPT09dilyZXR1cm4gZjw8YTt2Pmw/aD1mOmQ9ZisxfXJldHVybn4oaDw8YSl9KGMsbCwxKX1jb25zdCBrMD17fSxKcz1bXSxyMj1uZXcgU3QoIiIpLE8zPW5ldyBTdCgiIiwtMSksazY9bmV3IFN0KCIiKTtjbGFzcyBvNXtn'@; put 'ZXQobCxhPSQwKXtpZihhPT09JDApe2NvbnN0IGQ9bmV3IEVycm9yKGBOdWxsSW5qZWN0b3JFcnJvcjogTm8gcHJvdmlkZXIgZm9yICR7SHIobCl9IWApO3Rocm93IGQubmFtZT0iTnVsbEluamVjdG9yRXJyb3IiLGR9cmV0dXJuIGF9fXZhciBQMz1mdW5jdGlvbihjKXtyZXR1cm4gY1tjLk9u'@; put 'UHVzaD0wXT0iT25QdXNoIixjW2MuRGVmYXVsdD0xXT0iRGVmYXVsdCIsY30oUDN8fHt9KSxxbz1mdW5jdGlvbihjKXtyZXR1cm4gY1tjLkVtdWxhdGVkPTBdPSJFbXVsYXRlZCIsY1tjLk5vbmU9Ml09Ik5vbmUiLGNbYy5TaGFkb3dEb209M109IlNoYWRvd0RvbSIsY30ocW98fHt9KSxWbj1m'@; put 'dW5jdGlvbihjKXtyZXR1cm4gY1tjLk5vbmU9MF09Ik5vbmUiLGNbYy5TaWduYWxCYXNlZD0xXT0iU2lnbmFsQmFzZWQiLGNbYy5IYXNEZWNvcmF0b3JJbnB1dFRyYW5zZm9ybT0yXT0iSGFzRGVjb3JhdG9ySW5wdXRUcmFuc2Zvcm0iLGN9KFZufHx7fSk7ZnVuY3Rpb24gancoYyxsLGEpe2xl'@; put 'dCBkPWMubGVuZ3RoO2Zvcig7Oyl7Y29uc3QgaD1jLmluZGV4T2YobCxhKTtpZigtMT09PWgpcmV0dXJuIGg7aWYoMD09PWh8fGMuY2hhckNvZGVBdChoLTEpPD0zMil7Y29uc3QgZj1sLmxlbmd0aDtpZihoK2Y9PT1kfHxjLmNoYXJDb2RlQXQoaCtmKTw9MzIpcmV0dXJuIGh9YT1oKzF9fWZ1'@; put 'bmN0aW9uIG00KGMsbCxhKXtsZXQgZD0wO2Zvcig7ZDxhLmxlbmd0aDspe2NvbnN0IGg9YVtkXTtpZigibnVtYmVyIj09dHlwZW9mIGgpe2lmKDAhPT1oKWJyZWFrO2QrKztjb25zdCBmPWFbZCsrXSx2PWFbZCsrXSxNPWFbZCsrXTtjLnNldEF0dHJpYnV0ZShsLHYsTSxmKX1lbHNle2NvbnN0'@; put 'IGY9aCx2PWFbKytkXTtjNShmKT9jLnNldFByb3BlcnR5KGwsZix2KTpjLnNldEF0dHJpYnV0ZShsLGYsdiksZCsrfX1yZXR1cm4gZH1mdW5jdGlvbiBsNShjKXtyZXR1cm4gMz09PWN8fDQ9PT1jfHw2PT09Y31mdW5jdGlvbiBjNShjKXtyZXR1cm4gNjQ9PT1jLmNoYXJDb2RlQXQoMCl9ZnVu'@; put 'Y3Rpb24gQ2YoYyxsKXtpZihudWxsIT09bCYmMCE9PWwubGVuZ3RoKWlmKG51bGw9PT1jfHwwPT09Yy5sZW5ndGgpYz1sLnNsaWNlKCk7ZWxzZXtsZXQgYT0tMTtmb3IobGV0IGQ9MDtkPGwubGVuZ3RoO2QrKyl7Y29uc3QgaD1sW2RdOyJudW1iZXIiPT10eXBlb2YgaD9hPWg6MD09PWF8fEQ2'@; put 'KGMsYSxoLG51bGwsLTE9PT1hfHwyPT09YT9sWysrZF06bnVsbCl9fXJldHVybiBjfWZ1bmN0aW9uIEQ2KGMsbCxhLGQsaCl7bGV0IGY9MCx2PWMubGVuZ3RoO2lmKC0xPT09bCl2PS0xO2Vsc2UgZm9yKDtmPGMubGVuZ3RoOyl7Y29uc3QgTT1jW2YrK107aWYoIm51bWJlciI9PXR5cGVvZiBN'@; put 'KXtpZihNPT09bCl7dj0tMTticmVha31pZihNPmwpe3Y9Zi0xO2JyZWFrfX19Zm9yKDtmPGMubGVuZ3RoOyl7Y29uc3QgTT1jW2ZdO2lmKCJudW1iZXIiPT10eXBlb2YgTSlicmVhaztpZihNPT09YSl7aWYobnVsbD09PWQpcmV0dXJuIHZvaWQobnVsbCE9PWgmJihjW2YrMV09aCkpO2lmKGQ9'@; put 'PT1jW2YrMV0pcmV0dXJuIHZvaWQoY1tmKzJdPWgpfWYrKyxudWxsIT09ZCYmZisrLG51bGwhPT1oJiZmKyt9LTEhPT12JiYoYy5zcGxpY2UodiwwLGwpLGY9disxKSxjLnNwbGljZShmKyssMCxhKSxudWxsIT09ZCYmYy5zcGxpY2UoZisrLDAsZCksbnVsbCE9PWgmJmMuc3BsaWNlKGYrKyww'@; put 'LGgpfWNvbnN0IGx2PSJuZy10ZW1wbGF0ZSI7ZnVuY3Rpb24gSTYoYyxsLGEsZCl7bGV0IGg9MDtpZihkKXtmb3IoO2g8bC5sZW5ndGgmJiJzdHJpbmciPT10eXBlb2YgbFtoXTtoKz0yKWlmKCJjbGFzcyI9PT1sW2hdJiYtMSE9PWp3KGxbaCsxXS50b0xvd2VyQ2FzZSgpLGEsMCkpcmV0dXJu'@; put 'ITB9ZWxzZSBpZih2NChjKSlyZXR1cm4hMTtpZihoPWwuaW5kZXhPZigxLGgpLGg+LTEpe2xldCBmO2Zvcig7KytoPGwubGVuZ3RoJiYic3RyaW5nIj09dHlwZW9mKGY9bFtoXSk7KWlmKGYudG9Mb3dlckNhc2UoKT09PWEpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gdjQoYyl7cmV0dXJu'@; put 'IDQ9PT1jLnR5cGUmJmMudmFsdWUhPT1sdn1mdW5jdGlvbiB0MChjLGwsYSl7cmV0dXJuIGw9PT0oNCE9PWMudHlwZXx8YT9jLnZhbHVlOmx2KX1mdW5jdGlvbiB6dyhjLGwsYSl7bGV0IGQ9NDtjb25zdCBoPWMuYXR0cnMsZj1udWxsIT09aD9mdW5jdGlvbiB1dihjKXtmb3IobGV0IGw9MDts'@; put 'PGMubGVuZ3RoO2wrKylpZihsNShjW2xdKSlyZXR1cm4gbDtyZXR1cm4gYy5sZW5ndGh9KGgpOjA7bGV0IHY9ITE7Zm9yKGxldCBNPTA7TTxsLmxlbmd0aDtNKyspe2NvbnN0IEk9bFtNXTtpZigibnVtYmVyIiE9dHlwZW9mIEkpe2lmKCF2KWlmKDQmZCl7aWYoZD0yfDEmZCwiIiE9PUkmJiF0'@; put 'MChjLEksYSl8fCIiPT09SSYmMT09PWwubGVuZ3RoKXtpZihDYyhkKSlyZXR1cm4hMTt2PSEwfX1lbHNlIGlmKDgmZCl7aWYobnVsbD09PWh8fCFJNihjLGgsSSxhKSl7aWYoQ2MoZCkpcmV0dXJuITE7dj0hMH19ZWxzZXtjb25zdCBHPWxbKytNXSxyZT1GMyhJLGgsdjQoYyksYSk7aWYoLTE9'@; put 'PT1yZSl7aWYoQ2MoZCkpcmV0dXJuITE7dj0hMDtjb250aW51ZX1pZigiIiE9PUcpe2xldCB1ZTtpZih1ZT1yZT5mPyIiOmhbcmUrMV0udG9Mb3dlckNhc2UoKSwyJmQmJkchPT11ZSl7aWYoQ2MoZCkpcmV0dXJuITE7dj0hMH19fX1lbHNle2lmKCF2JiYhQ2MoZCkmJiFDYyhJKSlyZXR1cm4h'@; put 'MTtpZih2JiZDYyhJKSljb250aW51ZTt2PSExLGQ9SXwxJmR9fXJldHVybiBDYyhkKXx8dn1mdW5jdGlvbiBDYyhjKXtyZXR1cm4hKDEmYyl9ZnVuY3Rpb24gRjMoYyxsLGEsZCl7aWYobnVsbD09PWwpcmV0dXJuLTE7bGV0IGg9MDtpZihkfHwhYSl7bGV0IGY9ITE7Zm9yKDtoPGwubGVuZ3Ro'@; put 'Oyl7Y29uc3Qgdj1sW2hdO2lmKHY9PT1jKXJldHVybiBoO2lmKDM9PT12fHw2PT09dilmPSEwO2Vsc2V7aWYoMT09PXZ8fDI9PT12KXtsZXQgTT1sWysraF07Zm9yKDsic3RyaW5nIj09dHlwZW9mIE07KU09bFsrK2hdO2NvbnRpbnVlfWlmKDQ9PT12KWJyZWFrO2lmKDA9PT12KXtoKz00O2Nv'@; put 'bnRpbnVlfX1oKz1mPzE6Mn1yZXR1cm4tMX1yZXR1cm4gZnVuY3Rpb24gZHYoYyxsKXtsZXQgYT1jLmluZGV4T2YoNCk7aWYoYT4tMSlmb3IoYSsrO2E8Yy5sZW5ndGg7KXtjb25zdCBkPWNbYV07aWYoIm51bWJlciI9PXR5cGVvZiBkKXJldHVybi0xO2lmKGQ9PT1sKXJldHVybiBhO2ErK31y'@; put 'ZXR1cm4tMX0obCxjKX1mdW5jdGlvbiB5NChjLGwsYT0hMSl7Zm9yKGxldCBkPTA7ZDxsLmxlbmd0aDtkKyspaWYoencoYyxsW2RdLGEpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIFV3KGMsbCl7ZTpmb3IobGV0IGE9MDthPGwubGVuZ3RoO2ErKyl7Y29uc3QgZD1sW2FdO2lmKGMubGVu'@; put 'Z3RoPT09ZC5sZW5ndGgpe2ZvcihsZXQgaD0wO2g8Yy5sZW5ndGg7aCsrKWlmKGNbaF0hPT1kW2hdKWNvbnRpbnVlIGU7cmV0dXJuITB9fXJldHVybiExfWZ1bmN0aW9uIGh2KGMsbCl7cmV0dXJuIGM/Ijpub3QoIitsLnRyaW0oKSsiKSI6bH1mdW5jdGlvbiBadyhjKXtsZXQgbD1jWzBdLGE9'@; put 'MSxkPTIsaD0iIixmPSExO2Zvcig7YTxjLmxlbmd0aDspe2xldCB2PWNbYV07aWYoInN0cmluZyI9PXR5cGVvZiB2KWlmKDImZCl7Y29uc3QgTT1jWysrYV07aCs9IlsiK3YrKE0ubGVuZ3RoPjA/Jz0iJytNKyciJzoiIikrIl0ifWVsc2UgOCZkP2grPSIuIit2OjQmZCYmKGgrPSIgIit2KTtl'@; put 'bHNlIiIhPT1oJiYhQ2ModikmJihsKz1odihmLGgpLGg9IiIpLGQ9dixmPWZ8fCFDYyhkKTthKyt9cmV0dXJuIiIhPT1oJiYobCs9aHYoZixoKSksbH1mdW5jdGlvbiBOcihjKXtyZXR1cm4gSG8oKCk9Pntjb25zdCBsPVI2KGMpLGE9ey4uLmwsZGVjbHM6Yy5kZWNscyx2YXJzOmMudmFycyx0'@; put 'ZW1wbGF0ZTpjLnRlbXBsYXRlLGNvbnN0czpjLmNvbnN0c3x8bnVsbCxuZ0NvbnRlbnRTZWxlY3RvcnM6Yy5uZ0NvbnRlbnRTZWxlY3RvcnMsb25QdXNoOmMuY2hhbmdlRGV0ZWN0aW9uPT09UDMuT25QdXNoLGRpcmVjdGl2ZURlZnM6bnVsbCxwaXBlRGVmczpudWxsLGRlcGVuZGVuY2llczps'@; put 'LnN0YW5kYWxvbmUmJmMuZGVwZW5kZW5jaWVzfHxudWxsLGdldFN0YW5kYWxvbmVJbmplY3RvcjpudWxsLHNpZ25hbHM6Yy5zaWduYWxzPz8hMSxkYXRhOmMuZGF0YXx8e30sZW5jYXBzdWxhdGlvbjpjLmVuY2Fwc3VsYXRpb258fHFvLkVtdWxhdGVkLHN0eWxlczpjLnN0eWxlc3x8SnMsXzpu'@; put 'dWxsLHNjaGVtYXM6Yy5zY2hlbWFzfHxudWxsLHRWaWV3Om51bGwsaWQ6IiJ9O0QwKGEpO2NvbnN0IGQ9Yy5kZXBlbmRlbmNpZXM7cmV0dXJuIGEuZGlyZWN0aXZlRGVmcz1kNShkLCExKSxhLnBpcGVEZWZzPWQ1KGQsITApLGEuaWQ9ZnVuY3Rpb24gWXcoYyl7bGV0IGw9MDtjb25zdCBhPVtj'@; put 'LnNlbGVjdG9ycyxjLm5nQ29udGVudFNlbGVjdG9ycyxjLmhvc3RWYXJzLGMuaG9zdEF0dHJzLGMuY29uc3RzLGMudmFycyxjLmRlY2xzLGMuZW5jYXBzdWxhdGlvbixjLnN0YW5kYWxvbmUsYy5zaWduYWxzLGMuZXhwb3J0QXMsSlNPTi5zdHJpbmdpZnkoYy5pbnB1dHMpLEpTT04uc3RyaW5n'@; put 'aWZ5KGMub3V0cHV0cyksT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoYy50eXBlLnByb3RvdHlwZSksISFjLmNvbnRlbnRRdWVyaWVzLCEhYy52aWV3UXVlcnldLmpvaW4oInwiKTtmb3IoY29uc3QgaCBvZiBhKWw9TWF0aC5pbXVsKDMxLGwpK2guY2hhckNvZGVBdCgwKXwwO3JldHVybiBs'@; put 'Kz0yMTQ3NDgzNjQ4LCJjIitsfShhKSxhfSl9ZnVuY3Rpb24gU2YoYyl7cmV0dXJuIEJzKGMpfHxTYyhjKX1mdW5jdGlvbiB1NShjKXtyZXR1cm4gbnVsbCE9PWN9ZnVuY3Rpb24gQWkoYyl7cmV0dXJuIEhvKCgpPT4oe3R5cGU6Yy50eXBlLGJvb3RzdHJhcDpjLmJvb3RzdHJhcHx8SnMsZGVj'@; put 'bGFyYXRpb25zOmMuZGVjbGFyYXRpb25zfHxKcyxpbXBvcnRzOmMuaW1wb3J0c3x8SnMsZXhwb3J0czpjLmV4cG9ydHN8fEpzLHRyYW5zaXRpdmVDb21waWxlU2NvcGVzOm51bGwsc2NoZW1hczpjLnNjaGVtYXN8fG51bGwsaWQ6Yy5pZHx8bnVsbH0pKX1mdW5jdGlvbiBiNChjLGwpe2lmKG51'@; put 'bGw9PWMpcmV0dXJuIGswO2NvbnN0IGE9e307Zm9yKGNvbnN0IGQgaW4gYylpZihjLmhhc093blByb3BlcnR5KGQpKXtjb25zdCBoPWNbZF07bGV0IGYsdixNPVZuLk5vbmU7QXJyYXkuaXNBcnJheShoKT8oTT1oWzBdLGY9aFsxXSx2PWhbMl0/P2YpOihmPWgsdj1oKSxsPyhhW2ZdPU0hPT1W'@; put 'bi5Ob25lP1tkLE1dOmQsbFtmXT12KTphW2ZdPWR9cmV0dXJuIGF9ZnVuY3Rpb24gRXIoYyl7cmV0dXJuIEhvKCgpPT57Y29uc3QgbD1SNihjKTtyZXR1cm4gRDAobCksbH0pfWZ1bmN0aW9uIGFsKGMpe3JldHVybnt0eXBlOmMudHlwZSxuYW1lOmMubmFtZSxmYWN0b3J5Om51bGwscHVyZToh'@; put 'MSE9PWMucHVyZSxzdGFuZGFsb25lOiEwPT09Yy5zdGFuZGFsb25lLG9uRGVzdHJveTpjLnR5cGUucHJvdG90eXBlLm5nT25EZXN0cm95fHxudWxsfX1mdW5jdGlvbiBCcyhjKXtyZXR1cm4gY1skc118fG51bGx9ZnVuY3Rpb24gU2MoYyl7cmV0dXJuIGNbS2xdfHxudWxsfWZ1bmN0aW9uIHFj'@; put 'KGMpe3JldHVybiBjW2VzXXx8bnVsbH1mdW5jdGlvbiBSdShjLGwpe2NvbnN0IGE9Y1tic118fG51bGw7aWYoIWEmJiEwPT09bCl0aHJvdyBuZXcgRXJyb3IoYFR5cGUgJHtIcihjKX0gZG9lcyBub3QgaGF2ZSAnXHUwMjc1bW9kJyBwcm9wZXJ0eS5gKTtyZXR1cm4gYX1mdW5jdGlvbiBSNihj'@; put 'KXtjb25zdCBsPXt9O3JldHVybnt0eXBlOmMudHlwZSxwcm92aWRlcnNSZXNvbHZlcjpudWxsLGZhY3Rvcnk6bnVsbCxob3N0QmluZGluZ3M6Yy5ob3N0QmluZGluZ3N8fG51bGwsaG9zdFZhcnM6Yy5ob3N0VmFyc3x8MCxob3N0QXR0cnM6Yy5ob3N0QXR0cnN8fG51bGwsY29udGVudFF1ZXJp'@; put 'ZXM6Yy5jb250ZW50UXVlcmllc3x8bnVsbCxkZWNsYXJlZElucHV0czpsLGlucHV0VHJhbnNmb3JtczpudWxsLGlucHV0Q29uZmlnOmMuaW5wdXRzfHxrMCxleHBvcnRBczpjLmV4cG9ydEFzfHxudWxsLHN0YW5kYWxvbmU6ITA9PT1jLnN0YW5kYWxvbmUsc2lnbmFsczohMD09PWMuc2lnbmFs'@; put 'cyxzZWxlY3RvcnM6Yy5zZWxlY3RvcnN8fEpzLHZpZXdRdWVyeTpjLnZpZXdRdWVyeXx8bnVsbCxmZWF0dXJlczpjLmZlYXR1cmVzfHxudWxsLHNldElucHV0Om51bGwsZmluZEhvc3REaXJlY3RpdmVEZWZzOm51bGwsaG9zdERpcmVjdGl2ZXM6bnVsbCxpbnB1dHM6YjQoYy5pbnB1dHMsbCks'@; put 'b3V0cHV0czpiNChjLm91dHB1dHMpLGRlYnVnSW5mbzpudWxsfX1mdW5jdGlvbiBEMChjKXtjLmZlYXR1cmVzPy5mb3JFYWNoKGw9PmwoYykpfWZ1bmN0aW9uIGQ1KGMsbCl7aWYoIWMpcmV0dXJuIG51bGw7Y29uc3QgYT1sP3FjOlNmO3JldHVybigpPT4oImZ1bmN0aW9uIj09dHlwZW9mIGM/'@; put 'YygpOmMpLm1hcChkPT5hKGQpKS5maWx0ZXIodTUpfWZ1bmN0aW9uIEd3KC4uLmMpe3JldHVybntcdTAyNzVwcm92aWRlcnM6cmgoMCxjKSxcdTAyNzVmcm9tTmdNb2R1bGU6ITB9fWZ1bmN0aW9uIHJoKGMsLi4ubCl7Y29uc3QgYT1bXSxkPW5ldyBTZXQ7bGV0IGg7Y29uc3QgZj12PT57YS5w'@; put 'dXNoKHYpfTtyZXR1cm4gTDMobCx2PT57Y29uc3QgTT12O180KE0sZixbXSxkKSYmKGh8fD1bXSxoLnB1c2goTSkpfSksdm9pZCAwIT09aCYmcHYoaCxmKSxhfWZ1bmN0aW9uIHB2KGMsbCl7Zm9yKGxldCBhPTA7YTxjLmxlbmd0aDthKyspe2NvbnN0e25nTW9kdWxlOmQscHJvdmlkZXJzOmh9'@; put 'PWNbYV07TDYoaCxmPT57bChmLGQpfSl9fWZ1bmN0aW9uIF80KGMsbCxhLGQpe2lmKCEoYz1HaShjKSkpcmV0dXJuITE7bGV0IGg9bnVsbCxmPU5vKGMpO2NvbnN0IHY9IWYmJkJzKGMpO2lmKGZ8fHYpe2lmKHYmJiF2LnN0YW5kYWxvbmUpcmV0dXJuITE7aD1jfWVsc2V7Y29uc3QgST1jLm5n'@; put 'TW9kdWxlO2lmKGY9Tm8oSSksIWYpcmV0dXJuITE7aD1JfWNvbnN0IE09ZC5oYXMoaCk7aWYodil7aWYoTSlyZXR1cm4hMTtpZihkLmFkZChoKSx2LmRlcGVuZGVuY2llcyl7Y29uc3QgST0iZnVuY3Rpb24iPT10eXBlb2Ygdi5kZXBlbmRlbmNpZXM/di5kZXBlbmRlbmNpZXMoKTp2LmRlcGVu'@; put 'ZGVuY2llcztmb3IoY29uc3QgRyBvZiBJKV80KEcsbCxhLGQpfX1lbHNle2lmKCFmKXJldHVybiExO3tpZihudWxsIT1mLmltcG9ydHMmJiFNKXtsZXQgRztkLmFkZChoKTt0cnl7TDMoZi5pbXBvcnRzLHJlPT57XzQocmUsbCxhLGQpJiYoR3x8PVtdLEcucHVzaChyZSkpfSl9ZmluYWxseXt9'@; put 'dm9pZCAwIT09RyYmcHYoRyxsKX1pZighTSl7Y29uc3QgRz1odShoKXx8KCgpPT5uZXcgaCk7bCh7cHJvdmlkZTpoLHVzZUZhY3Rvcnk6RyxkZXBzOkpzfSxoKSxsKHtwcm92aWRlOms2LHVzZVZhbHVlOmgsbXVsdGk6ITB9LGgpLGwoe3Byb3ZpZGU6cjIsdXNlVmFsdWU6KCk9PkNyKGgpLG11'@; put 'bHRpOiEwfSxoKX1jb25zdCBJPWYucHJvdmlkZXJzO2lmKG51bGwhPUkmJiFNKXtjb25zdCBHPWM7TDYoSSxyZT0+e2wocmUsRyl9KX19fXJldHVybiBoIT09YyYmdm9pZCAwIT09Yy5wcm92aWRlcnN9ZnVuY3Rpb24gTDYoYyxsKXtmb3IobGV0IGEgb2YgYylqYShhKSYmKGE9YS5cdTAyNzVw'@; put 'cm92aWRlcnMpLEFycmF5LmlzQXJyYXkoYSk/TDYoYSxsKTpsKGEpfWNvbnN0ICR3PVZhKHtwcm92aWRlOlN0cmluZyx1c2VWYWx1ZTpWYX0pO2Z1bmN0aW9uIE82KGMpe3JldHVybiBudWxsIT09YyYmIm9iamVjdCI9PXR5cGVvZiBjJiYkdyBpbiBjfWZ1bmN0aW9uIHhmKGMpe3JldHVybiJm'@; put 'dW5jdGlvbiI9PXR5cGVvZiBjfWNvbnN0IEY2PW5ldyBTdCgiIiksSDM9e30sS3c9e307bGV0IEg2O2Z1bmN0aW9uIE4zKCl7cmV0dXJuIHZvaWQgMD09PUg2JiYoSDY9bmV3IG81KSxINn1jbGFzcyBxbHt9Y2xhc3MgZGQgZXh0ZW5kcyBxbHtnZXQgZGVzdHJveWVkKCl7cmV0dXJuIHRoaXMu'@; put 'X2Rlc3Ryb3llZH1jb25zdHJ1Y3RvcihsLGEsZCxoKXtzdXBlcigpLHRoaXMucGFyZW50PWEsdGhpcy5zb3VyY2U9ZCx0aGlzLnNjb3Blcz1oLHRoaXMucmVjb3Jkcz1uZXcgTWFwLHRoaXMuX25nT25EZXN0cm95SG9va3M9bmV3IFNldCx0aGlzLl9vbkRlc3Ryb3lIb29rcz1bXSx0aGlzLl9k'@; put 'ZXN0cm95ZWQ9ITEsZjUobCx2PT50aGlzLnByb2Nlc3NQcm92aWRlcih2KSksdGhpcy5yZWNvcmRzLnNldChPMyxWMyh2b2lkIDAsdGhpcykpLGguaGFzKCJlbnZpcm9ubWVudCIpJiZ0aGlzLnJlY29yZHMuc2V0KHFsLFYzKHZvaWQgMCx0aGlzKSk7Y29uc3QgZj10aGlzLnJlY29yZHMuZ2V0'@; put 'KEY2KTtudWxsIT1mJiYic3RyaW5nIj09dHlwZW9mIGYudmFsdWUmJnRoaXMuc2NvcGVzLmFkZChmLnZhbHVlKSx0aGlzLmluamVjdG9yRGVmVHlwZXM9bmV3IFNldCh0aGlzLmdldChrNixKcyxyYS5TZWxmKSl9ZGVzdHJveSgpe3RoaXMuYXNzZXJ0Tm90RGVzdHJveWVkKCksdGhpcy5fZGVz'@; put 'dHJveWVkPSEwO2NvbnN0IGw9X2UobnVsbCk7dHJ5e2Zvcihjb25zdCBkIG9mIHRoaXMuX25nT25EZXN0cm95SG9va3MpZC5uZ09uRGVzdHJveSgpO2NvbnN0IGE9dGhpcy5fb25EZXN0cm95SG9va3M7dGhpcy5fb25EZXN0cm95SG9va3M9W107Zm9yKGNvbnN0IGQgb2YgYSlkKCl9ZmluYWxs'@; put 'eXt0aGlzLnJlY29yZHMuY2xlYXIoKSx0aGlzLl9uZ09uRGVzdHJveUhvb2tzLmNsZWFyKCksdGhpcy5pbmplY3RvckRlZlR5cGVzLmNsZWFyKCksX2UobCl9fW9uRGVzdHJveShsKXtyZXR1cm4gdGhpcy5hc3NlcnROb3REZXN0cm95ZWQoKSx0aGlzLl9vbkRlc3Ryb3lIb29rcy5wdXNoKGwp'@; put 'LCgpPT50aGlzLnJlbW92ZU9uRGVzdHJveShsKX1ydW5JbkNvbnRleHQobCl7dGhpcy5hc3NlcnROb3REZXN0cm95ZWQoKTtjb25zdCBhPW5oKHRoaXMpLGQ9eWwodm9pZCAwKTt0cnl7cmV0dXJuIGwoKX1maW5hbGx5e25oKGEpLHlsKGQpfX1nZXQobCxhPSQwLGQ9cmEuRGVmYXVsdCl7aWYo'@; put 'dGhpcy5hc3NlcnROb3REZXN0cm95ZWQoKSxsLmhhc093blByb3BlcnR5KFZsKSlyZXR1cm4gbFtWbF0odGhpcyk7ZD1uNShkKTtjb25zdCBmPW5oKHRoaXMpLHY9eWwodm9pZCAwKTt0cnl7aWYoIShkJnJhLlNraXBTZWxmKSl7bGV0IEk9dGhpcy5yZWNvcmRzLmdldChsKTtpZih2b2lkIDA9'@; put 'PT1JKXtjb25zdCBHPWZ1bmN0aW9uIHF3KGMpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBjfHwib2JqZWN0Ij09dHlwZW9mIGMmJmMgaW5zdGFuY2VvZiBTdH0obCkmJkZzKGwpO0k9RyYmdGhpcy5pbmplY3RhYmxlRGVmSW5TY29wZShHKT9WMyhoNShsKSxIMyk6bnVsbCx0aGlzLnJlY29y'@; put 'ZHMuc2V0KGwsSSl9aWYobnVsbCE9SSlyZXR1cm4gdGhpcy5oeWRyYXRlKGwsSSl9cmV0dXJuKGQmcmEuU2VsZj9OMygpOnRoaXMucGFyZW50KS5nZXQobCxhPWQmcmEuT3B0aW9uYWwmJmE9PT0kMD9udWxsOmEpfWNhdGNoKE0pe2lmKCJOdWxsSW5qZWN0b3JFcnJvciI9PT1NLm5hbWUpe2lm'@; put 'KChNW09jXT1NW09jXXx8W10pLnVuc2hpZnQoSHIobCkpLGYpdGhyb3cgTTtyZXR1cm4gZnVuY3Rpb24gYTUoYyxsLGEsZCl7Y29uc3QgaD1jW09jXTt0aHJvdyBsW2lsXSYmaC51bnNoaWZ0KGxbaWxdKSxjLm1lc3NhZ2U9ZnVuY3Rpb24gZzQoYyxsLGEsZD1udWxsKXtjPWMmJiJcbiI9PT1j'@; put 'LmNoYXJBdCgwKSYmIlx1MDI3NSI9PWMuY2hhckF0KDEpP2Muc2xpY2UoMik6YztsZXQgaD1IcihsKTtpZihBcnJheS5pc0FycmF5KGwpKWg9bC5tYXAoSHIpLmpvaW4oIiAtPiAiKTtlbHNlIGlmKCJvYmplY3QiPT10eXBlb2YgbCl7bGV0IGY9W107Zm9yKGxldCB2IGluIGwpaWYobC5oYXNP'@; put 'd25Qcm9wZXJ0eSh2KSl7bGV0IE09bFt2XTtmLnB1c2godisiOiIrKCJzdHJpbmciPT10eXBlb2YgTT9KU09OLnN0cmluZ2lmeShNKTpIcihNKSkpfWg9YHske2Yuam9pbigiLCAiKX19YH1yZXR1cm5gJHthfSR7ZD8iKCIrZCsiKSI6IiJ9WyR7aH1dOiAke2MucmVwbGFjZShIdywiXG4gICIp'@; put 'fWB9KCJcbiIrYy5tZXNzYWdlLGgsYSxkKSxjLm5nVG9rZW5QYXRoPWgsY1tPY109bnVsbCxjfShNLGwsIlIzSW5qZWN0b3JFcnJvciIsdGhpcy5zb3VyY2UpfXRocm93IE19ZmluYWxseXt5bCh2KSxuaChmKX19cmVzb2x2ZUluamVjdG9ySW5pdGlhbGl6ZXJzKCl7Y29uc3QgbD1fZShudWxs'@; put 'KSxhPW5oKHRoaXMpLGQ9eWwodm9pZCAwKTt0cnl7Y29uc3QgZj10aGlzLmdldChyMixKcyxyYS5TZWxmKTtmb3IoY29uc3QgdiBvZiBmKXYoKX1maW5hbGx5e25oKGEpLHlsKGQpLF9lKGwpfX10b1N0cmluZygpe2NvbnN0IGw9W10sYT10aGlzLnJlY29yZHM7Zm9yKGNvbnN0IGQgb2YgYS5r'@; put 'ZXlzKCkpbC5wdXNoKEhyKGQpKTtyZXR1cm5gUjNJbmplY3Rvclske2wuam9pbigiLCAiKX1dYH1hc3NlcnROb3REZXN0cm95ZWQoKXtpZih0aGlzLl9kZXN0cm95ZWQpdGhyb3cgbmV3IG5yKDIwNSwhMSl9cHJvY2Vzc1Byb3ZpZGVyKGwpe2xldCBhPXhmKGw9R2kobCkpP2w6R2kobCYmbC5w'@; put 'cm92aWRlKTtjb25zdCBkPWZ1bmN0aW9uIE42KGMpe3JldHVybiBPNihjKT9WMyh2b2lkIDAsYy51c2VWYWx1ZSk6VjMoeXYoYyksSDMpfShsKTtpZigheGYobCkmJiEwPT09bC5tdWx0aSl7bGV0IGg9dGhpcy5yZWNvcmRzLmdldChhKTtofHwoaD1WMyh2b2lkIDAsSDMsITApLGguZmFjdG9y'@; put 'eT0oKT0+cjUoaC5tdWx0aSksdGhpcy5yZWNvcmRzLnNldChhLGgpKSxhPWwsaC5tdWx0aS5wdXNoKGwpfXRoaXMucmVjb3Jkcy5zZXQoYSxkKX1oeWRyYXRlKGwsYSl7Y29uc3QgZD1fZShudWxsKTt0cnl7cmV0dXJuIGEudmFsdWU9PT1IMyYmKGEudmFsdWU9S3csYS52YWx1ZT1hLmZhY3Rv'@; put 'cnkoKSksIm9iamVjdCI9PXR5cGVvZiBhLnZhbHVlJiZhLnZhbHVlJiZmdW5jdGlvbiBidihjKXtyZXR1cm4gbnVsbCE9PWMmJiJvYmplY3QiPT10eXBlb2YgYyYmImZ1bmN0aW9uIj09dHlwZW9mIGMubmdPbkRlc3Ryb3l9KGEudmFsdWUpJiZ0aGlzLl9uZ09uRGVzdHJveUhvb2tzLmFkZChh'@; put 'LnZhbHVlKSxhLnZhbHVlfWZpbmFsbHl7X2UoZCl9fWluamVjdGFibGVEZWZJblNjb3BlKGwpe2lmKCFsLnByb3ZpZGVkSW4pcmV0dXJuITE7Y29uc3QgYT1HaShsLnByb3ZpZGVkSW4pO3JldHVybiJzdHJpbmciPT10eXBlb2YgYT8iYW55Ij09PWF8fHRoaXMuc2NvcGVzLmhhcyhhKTp0aGlz'@; put 'LmluamVjdG9yRGVmVHlwZXMuaGFzKGEpfXJlbW92ZU9uRGVzdHJveShsKXtjb25zdCBhPXRoaXMuX29uRGVzdHJveUhvb2tzLmluZGV4T2YobCk7LTEhPT1hJiZ0aGlzLl9vbkRlc3Ryb3lIb29rcy5zcGxpY2UoYSwxKX19ZnVuY3Rpb24gaDUoYyl7Y29uc3QgbD1GcyhjKSxhPW51bGwhPT1s'@; put 'P2wuZmFjdG9yeTpodShjKTtpZihudWxsIT09YSlyZXR1cm4gYTtpZihjIGluc3RhbmNlb2YgU3QpdGhyb3cgbmV3IG5yKDIwNCwhMSk7aWYoYyBpbnN0YW5jZW9mIEZ1bmN0aW9uKXJldHVybiBmdW5jdGlvbiB2dihjKXtpZihjLmxlbmd0aD4wKXRocm93IG5ldyBucigyMDQsITEpO2NvbnN0'@; put 'IGE9ZnVuY3Rpb24genMoYyl7cmV0dXJuIGMmJihjW0NvXXx8Y1tOc10pfHxudWxsfShjKTtyZXR1cm4gbnVsbCE9PWE/KCk9PmEuZmFjdG9yeShjKTooKT0+bmV3IGN9KGMpO3Rocm93IG5ldyBucigyMDQsITEpfWZ1bmN0aW9uIHl2KGMsbCxhKXtsZXQgZDtpZih4ZihjKSl7Y29uc3QgaD1H'@; put 'aShjKTtyZXR1cm4gaHUoaCl8fGg1KGgpfWlmKE82KGMpKWQ9KCk9PkdpKGMudXNlVmFsdWUpO2Vsc2UgaWYoZnVuY3Rpb24gbXYoYyl7cmV0dXJuISghY3x8IWMudXNlRmFjdG9yeSl9KGMpKWQ9KCk9PmMudXNlRmFjdG9yeSguLi5yNShjLmRlcHN8fFtdKSk7ZWxzZSBpZihmdW5jdGlvbiBn'@; put 'dihjKXtyZXR1cm4hKCFjfHwhYy51c2VFeGlzdGluZyl9KGMpKWQ9KCk9PkNyKEdpKGMudXNlRXhpc3RpbmcpKTtlbHNle2NvbnN0IGg9R2koYyYmKGMudXNlQ2xhc3N8fGMucHJvdmlkZSkpO2lmKCFmdW5jdGlvbiBYdyhjKXtyZXR1cm4hIWMuZGVwc30oYykpcmV0dXJuIGh1KGgpfHxoNSho'@; put 'KTtkPSgpPT5uZXcgaCguLi5yNShjLmRlcHMpKX1yZXR1cm4gZH1mdW5jdGlvbiBWMyhjLGwsYT0hMSl7cmV0dXJue2ZhY3Rvcnk6Yyx2YWx1ZTpsLG11bHRpOmE/W106dm9pZCAwfX1mdW5jdGlvbiBmNShjLGwpe2Zvcihjb25zdCBhIG9mIGMpQXJyYXkuaXNBcnJheShhKT9mNShhLGwpOmEm'@; put 'JmphKGEpP2Y1KGEuXHUwMjc1cHJvdmlkZXJzLGwpOmwoYSl9ZnVuY3Rpb24gSzAoYyxsKXtjIGluc3RhbmNlb2YgZGQmJmMuYXNzZXJ0Tm90RGVzdHJveWVkKCk7Y29uc3QgZD1uaChjKSxoPXlsKHZvaWQgMCk7dHJ5e3JldHVybiBsKCl9ZmluYWxseXtuaChkKSx5bChoKX19ZnVuY3Rpb24g'@; put 'X3YoKXtyZXR1cm4gdm9pZCAwIT09dDUoKXx8bnVsbCE9ZnVuY3Rpb24gTncoKXtyZXR1cm4gUjN9KCl9Y29uc3QgajY9RnVuY3Rpb247Y29uc3QgQmw9MCxYaT0xLFdhPTIsZGM9MyxGYz00LG5jPTUsUWM9NixYMD03LHNsPTgsaGM9OSxPMT0xMCx2cz0xMSxBZj0xMixDND0xMyxyMD0xNCxq'@; put 'bD0xNSxTND0xNixrZj0xNyxoZD0xOCx5MD0xOSxvMj0yMCxsMj0yMSxwNT0yMixEZj0yMyxfcz0yNSx6Nj0xLGZ1PTcsQjM9OSxmYz0xMDt2YXIgZzU9ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5Ob25lPTBdPSJOb25lIixjW2MuSGFzVHJhbnNwbGFudGVkVmlld3M9Ml09Ikhhc1RyYW5zcGxh'@; put 'bnRlZFZpZXdzIixjfShnNXx8e30pO2Z1bmN0aW9uIEx1KGMpe3JldHVybiBBcnJheS5pc0FycmF5KGMpJiYib2JqZWN0Ij09dHlwZW9mIGNbejZdfWZ1bmN0aW9uIE91KGMpe3JldHVybiBBcnJheS5pc0FycmF5KGMpJiYhMD09PWNbejZdfWZ1bmN0aW9uIGV1KGMpe3JldHVybiEhKDQmYy5m'@; put 'bGFncyl9ZnVuY3Rpb24gSWYoYyl7cmV0dXJuIGMuY29tcG9uZW50T2Zmc2V0Pi0xfWZ1bmN0aW9uIHEwKGMpe3JldHVybiEoMSZ+Yy5mbGFncyl9ZnVuY3Rpb24gSGMoYyl7cmV0dXJuISFjLnRlbXBsYXRlfWZ1bmN0aW9uIHg0KGMpe3JldHVybiEhKDUxMiZjW1dhXSl9Y2xhc3MgYVZ7Y29u'@; put 'c3RydWN0b3IobCxhLGQpe3RoaXMucHJldmlvdXNWYWx1ZT1sLHRoaXMuY3VycmVudFZhbHVlPWEsdGhpcy5maXJzdENoYW5nZT1kfWlzRmlyc3RDaGFuZ2UoKXtyZXR1cm4gdGhpcy5maXJzdENoYW5nZX19ZnVuY3Rpb24gS0EoYyxsLGEsZCl7bnVsbCE9PWw/bC5hcHBseVZhbHVlVG9JbnB1'@; put 'dFNpZ25hbChsLGQpOmNbYV09ZH1mdW5jdGlvbiBibCgpe3JldHVybiBYQX1mdW5jdGlvbiBYQShjKXtyZXR1cm4gYy50eXBlLnByb3RvdHlwZS5uZ09uQ2hhbmdlcyYmKGMuc2V0SW5wdXQ9b1YpLHNWfWZ1bmN0aW9uIHNWKCl7Y29uc3QgYz1KQSh0aGlzKSxsPWM/LmN1cnJlbnQ7aWYobCl7'@; put 'Y29uc3QgYT1jLnByZXZpb3VzO2lmKGE9PT1rMCljLnByZXZpb3VzPWw7ZWxzZSBmb3IobGV0IGQgaW4gbClhW2RdPWxbZF07Yy5jdXJyZW50PW51bGwsdGhpcy5uZ09uQ2hhbmdlcyhsKX19ZnVuY3Rpb24gb1YoYyxsLGEsZCxoKXtjb25zdCBmPXRoaXMuZGVjbGFyZWRJbnB1dHNbZF0sdj1K'@; put 'QShjKXx8ZnVuY3Rpb24gbFYoYyxsKXtyZXR1cm4gY1txQV09bH0oYyx7cHJldmlvdXM6azAsY3VycmVudDpudWxsfSksTT12LmN1cnJlbnR8fCh2LmN1cnJlbnQ9e30pLEk9di5wcmV2aW91cyxHPUlbZl07TVtmXT1uZXcgYVYoRyYmRy5jdXJyZW50VmFsdWUsYSxJPT09azApLEtBKGMsbCxo'@; put 'LGEpfWJsLm5nSW5oZXJpdD0hMDtjb25zdCBxQT0iX19uZ1NpbXBsZUNoYW5nZXNfXyI7ZnVuY3Rpb24gSkEoYyl7cmV0dXJuIGNbcUFdfHxudWxsfWNvbnN0IGgyPWZ1bmN0aW9uKGMsbCxhKXt9O2xldCBlaz0hMTtmdW5jdGlvbiBfbChjKXtmb3IoO0FycmF5LmlzQXJyYXkoYyk7KWM9Y1tC'@; put 'bF07cmV0dXJuIGN9ZnVuY3Rpb24gbTUoYyxsKXtyZXR1cm4gX2wobFtjXSl9ZnVuY3Rpb24gSTAoYyxsKXtyZXR1cm4gX2wobFtjLmluZGV4XSl9ZnVuY3Rpb24gWTYoYyxsKXtyZXR1cm4gYy5kYXRhW2xdfWZ1bmN0aW9uIEU0KGMsbCl7cmV0dXJuIGNbbF19ZnVuY3Rpb24gUDEoYyxsKXtj'@; put 'b25zdCBhPWxbY107cmV0dXJuIEx1KGEpP2E6YVtCbF19ZnVuY3Rpb24gaUMoYyl7cmV0dXJuISgxMjgmfmNbV2FdKX1mdW5jdGlvbiBmMihjLGwpe3JldHVybiBudWxsPT1sP251bGw6Y1tsXX1mdW5jdGlvbiBhQyhjKXtjW2tmXT0wfWZ1bmN0aW9uIGZWKGMpezEwMjQmY1tXYV18fChjW1dh'@; put 'XXw9MTAyNCxpQyhjKSYmRzYoYykpfWZ1bmN0aW9uIFN2KGMpe3JldHVybiEhKDkyMTYmY1tXYV18fGNbRGZdPy5kaXJ0eSl9ZnVuY3Rpb24gb0MoYyl7Y1tPMV0uY2hhbmdlRGV0ZWN0aW9uU2NoZWR1bGVyPy5ub3RpZnkoMSksU3YoYyk/RzYoYyk6NjQmY1tXYV0mJihmdW5jdGlvbiB1Vigp'@; put 'e3JldHVybiBla30oKT8oY1tXYV18PTEwMjQsRzYoYykpOmNbTzFdLmNoYW5nZURldGVjdGlvblNjaGVkdWxlcj8ubm90aWZ5KCkpfWZ1bmN0aW9uIEc2KGMpe2NbTzFdLmNoYW5nZURldGVjdGlvblNjaGVkdWxlcj8ubm90aWZ5KCk7bGV0IGw9VDQoYyk7Zm9yKDtudWxsIT09bCYmISg4MTky'@; put 'JmxbV2FdKSYmKGxbV2FdfD04MTkyLGlDKGwpKTspbD1UNChsKX1mdW5jdGlvbiBNdihjLGwpe2lmKCEoMjU2Jn5jW1dhXSkpdGhyb3cgbmV3IG5yKDkxMSwhMSk7bnVsbD09PWNbbDJdJiYoY1tsMl09W10pLGNbbDJdLnB1c2gobCl9ZnVuY3Rpb24gVDQoYyl7Y29uc3QgbD1jW2RjXTtyZXR1'@; put 'cm4gT3UobCk/bFtkY106bH1jb25zdCB3cz17bEZyYW1lOmxrKG51bGwpLGJpbmRpbmdzRW5hYmxlZDohMCxza2lwSHlkcmF0aW9uUm9vdFROb2RlOm51bGx9O2Z1bmN0aW9uIGlrKCl7cmV0dXJuIHdzLmJpbmRpbmdzRW5hYmxlZH1mdW5jdGlvbiB2NSgpe3JldHVybiBudWxsIT09d3Muc2tp'@; put 'cEh5ZHJhdGlvblJvb3RUTm9kZX1mdW5jdGlvbiBjaSgpe3JldHVybiB3cy5sRnJhbWUubFZpZXd9ZnVuY3Rpb24gc28oKXtyZXR1cm4gd3MubEZyYW1lLnRWaWV3fWZ1bmN0aW9uIHd0KGMpe3JldHVybiB3cy5sRnJhbWUuY29udGV4dExWaWV3PWMsY1tzbF19ZnVuY3Rpb24gQ3QoYyl7cmV0'@; put 'dXJuIHdzLmxGcmFtZS5jb250ZXh0TFZpZXc9bnVsbCxjfWZ1bmN0aW9uIG9sKCl7bGV0IGM9bEMoKTtmb3IoO251bGwhPT1jJiY2ND09PWMudHlwZTspYz1jLnBhcmVudDtyZXR1cm4gY31mdW5jdGlvbiBsQygpe3JldHVybiB3cy5sRnJhbWUuY3VycmVudFROb2RlfWZ1bmN0aW9uIHAyKGMs'@; put 'bCl7Y29uc3QgYT13cy5sRnJhbWU7YS5jdXJyZW50VE5vZGU9YyxhLmlzUGFyZW50PWx9ZnVuY3Rpb24gY0MoKXtyZXR1cm4gd3MubEZyYW1lLmlzUGFyZW50fWZ1bmN0aW9uIHVDKCl7d3MubEZyYW1lLmlzUGFyZW50PSExfWZ1bmN0aW9uIFIwKCl7Y29uc3QgYz13cy5sRnJhbWU7bGV0IGw9'@; put 'Yy5iaW5kaW5nUm9vdEluZGV4O3JldHVybi0xPT09bCYmKGw9Yy5iaW5kaW5nUm9vdEluZGV4PWMudFZpZXcuYmluZGluZ1N0YXJ0SW5kZXgpLGx9ZnVuY3Rpb24gUmYoKXtyZXR1cm4gd3MubEZyYW1lLmJpbmRpbmdJbmRleH1mdW5jdGlvbiBhaCgpe3JldHVybiB3cy5sRnJhbWUuYmluZGlu'@; put 'Z0luZGV4Kyt9ZnVuY3Rpb24gTGYoYyl7Y29uc3QgbD13cy5sRnJhbWUsYT1sLmJpbmRpbmdJbmRleDtyZXR1cm4gbC5iaW5kaW5nSW5kZXg9bC5iaW5kaW5nSW5kZXgrYyxhfWZ1bmN0aW9uIFNWKGMsbCl7Y29uc3QgYT13cy5sRnJhbWU7YS5iaW5kaW5nSW5kZXg9YS5iaW5kaW5nUm9vdElu'@; put 'ZGV4PWMsZEMobCl9ZnVuY3Rpb24gZEMoYyl7d3MubEZyYW1lLmN1cnJlbnREaXJlY3RpdmVJbmRleD1jfWZ1bmN0aW9uIGhDKGMpe2NvbnN0IGw9d3MubEZyYW1lLmN1cnJlbnREaXJlY3RpdmVJbmRleDtyZXR1cm4tMT09PWw/bnVsbDpjW2xdfWZ1bmN0aW9uIGZDKCl7cmV0dXJuIHdzLmxG'@; put 'cmFtZS5jdXJyZW50UXVlcnlJbmRleH1mdW5jdGlvbiBqMyhjKXt3cy5sRnJhbWUuY3VycmVudFF1ZXJ5SW5kZXg9Y31mdW5jdGlvbiBwQyhjKXtjb25zdCBsPWNbWGldO3JldHVybiAyPT09bC50eXBlP2wuZGVjbFROb2RlOjE9PT1sLnR5cGU/Y1tuY106bnVsbH1mdW5jdGlvbiBFdihjLGws'@; put 'YSl7aWYoYSZyYS5Ta2lwU2VsZil7bGV0IGg9bCxmPWM7Zm9yKDshKGg9aC5wYXJlbnQsbnVsbCE9PWh8fGEmcmEuSG9zdHx8KGg9cEMoZiksbnVsbD09PWh8fChmPWZbcjBdLDEwJmgudHlwZSkpKTspO2lmKG51bGw9PT1oKXJldHVybiExO2w9aCxjPWZ9Y29uc3QgZD13cy5sRnJhbWU9ejMo'@; put 'KTtyZXR1cm4gZC5jdXJyZW50VE5vZGU9bCxkLmxWaWV3PWMsITB9ZnVuY3Rpb24gSzYoYyl7Y29uc3QgbD16MygpLGE9Y1tYaV07d3MubEZyYW1lPWwsbC5jdXJyZW50VE5vZGU9YS5maXJzdENoaWxkLGwubFZpZXc9YyxsLnRWaWV3PWEsbC5jb250ZXh0TFZpZXc9YyxsLmJpbmRpbmdJbmRl'@; put 'eD1hLmJpbmRpbmdTdGFydEluZGV4LGwuaW5JMThuPSExfWZ1bmN0aW9uIHozKCl7Y29uc3QgYz13cy5sRnJhbWUsbD1udWxsPT09Yz9udWxsOmMuY2hpbGQ7cmV0dXJuIG51bGw9PT1sP2xrKGMpOmx9ZnVuY3Rpb24gbGsoYyl7Y29uc3QgbD17Y3VycmVudFROb2RlOm51bGwsaXNQYXJlbnQ6'@; put 'ITAsbFZpZXc6bnVsbCx0VmlldzpudWxsLHNlbGVjdGVkSW5kZXg6LTEsY29udGV4dExWaWV3Om51bGwsZWxlbWVudERlcHRoQ291bnQ6MCxjdXJyZW50TmFtZXNwYWNlOm51bGwsY3VycmVudERpcmVjdGl2ZUluZGV4Oi0xLGJpbmRpbmdSb290SW5kZXg6LTEsYmluZGluZ0luZGV4Oi0xLGN1'@; put 'cnJlbnRRdWVyeUluZGV4OjAscGFyZW50OmMsY2hpbGQ6bnVsbCxpbkkxOG46ITF9O3JldHVybiBudWxsIT09YyYmKGMuY2hpbGQ9bCksbH1mdW5jdGlvbiBUdigpe2NvbnN0IGM9d3MubEZyYW1lO3JldHVybiB3cy5sRnJhbWU9Yy5wYXJlbnQsYy5jdXJyZW50VE5vZGU9bnVsbCxjLmxWaWV3'@; put 'PW51bGwsY31jb25zdCBjaz1UdjtmdW5jdGlvbiB5NSgpe2NvbnN0IGM9VHYoKTtjLmlzUGFyZW50PSEwLGMudFZpZXc9bnVsbCxjLnNlbGVjdGVkSW5kZXg9LTEsYy5jb250ZXh0TFZpZXc9bnVsbCxjLmVsZW1lbnREZXB0aENvdW50PTAsYy5jdXJyZW50RGlyZWN0aXZlSW5kZXg9LTEsYy5j'@; put 'dXJyZW50TmFtZXNwYWNlPW51bGwsYy5iaW5kaW5nUm9vdEluZGV4PS0xLGMuYmluZGluZ0luZGV4PS0xLGMuY3VycmVudFF1ZXJ5SW5kZXg9MH1mdW5jdGlvbiBGdSgpe3JldHVybiB3cy5sRnJhbWUuc2VsZWN0ZWRJbmRleH1mdW5jdGlvbiBBNChjKXt3cy5sRnJhbWUuc2VsZWN0ZWRJbmRl'@; put 'eD1jfWZ1bmN0aW9uIEpvKCl7Y29uc3QgYz13cy5sRnJhbWU7cmV0dXJuIFk2KGMudFZpZXcsYy5zZWxlY3RlZEluZGV4KX1sZXQgZGs9ITA7ZnVuY3Rpb24gWDYoKXtyZXR1cm4gZGt9ZnVuY3Rpb24gZzIoYyl7ZGs9Y31mdW5jdGlvbiBBdihjLGwpe2ZvcihsZXQgYT1sLmRpcmVjdGl2ZVN0'@; put 'YXJ0LGQ9bC5kaXJlY3RpdmVFbmQ7YTxkO2ErKyl7Y29uc3QgZj1jLmRhdGFbYV0udHlwZS5wcm90b3R5cGUse25nQWZ0ZXJDb250ZW50SW5pdDp2LG5nQWZ0ZXJDb250ZW50Q2hlY2tlZDpNLG5nQWZ0ZXJWaWV3SW5pdDpJLG5nQWZ0ZXJWaWV3Q2hlY2tlZDpHLG5nT25EZXN0cm95OnJlfT1m'@; put 'O3YmJihjLmNvbnRlbnRIb29rcz8/PVtdKS5wdXNoKC1hLHYpLE0mJigoYy5jb250ZW50SG9va3M/Pz1bXSkucHVzaChhLE0pLChjLmNvbnRlbnRDaGVja0hvb2tzPz89W10pLnB1c2goYSxNKSksSSYmKGMudmlld0hvb2tzPz89W10pLnB1c2goLWEsSSksRyYmKChjLnZpZXdIb29rcz8/PVtd'@; put 'KS5wdXNoKGEsRyksKGMudmlld0NoZWNrSG9va3M/Pz1bXSkucHVzaChhLEcpKSxudWxsIT1yZSYmKGMuZGVzdHJveUhvb2tzPz89W10pLnB1c2goYSxyZSl9fWZ1bmN0aW9uIGt2KGMsbCxhKXtoayhjLGwsMyxhKX1mdW5jdGlvbiBEdihjLGwsYSxkKXsoMyZjW1dhXSk9PT1hJiZoayhjLGws'@; put 'YSxkKX1mdW5jdGlvbiBtQyhjLGwpe2xldCBhPWNbV2FdOygzJmEpPT09bCYmKGEmPTE2MzgzLGErPTEsY1tXYV09YSl9ZnVuY3Rpb24gaGsoYyxsLGEsZCl7Y29uc3QgZj1kPz8tMSx2PWwubGVuZ3RoLTE7bGV0IE09MDtmb3IobGV0IEk9dm9pZCAwIT09ZD82NTUzNSZjW2tmXTowO0k8djtJ'@; put 'KyspaWYoIm51bWJlciI9PXR5cGVvZiBsW0krMV0pe2lmKE09bFtJXSxudWxsIT1kJiZNPj1kKWJyZWFrfWVsc2UgbFtJXTwwJiYoY1trZl0rPTY1NTM2KSwoTTxmfHwtMT09ZikmJihEVihjLGEsbCxJKSxjW2tmXT0oNDI5NDkwMTc2MCZjW2tmXSkrSSsyKSxJKyt9ZnVuY3Rpb24gZmsoYyxs'@; put 'KXtoMig0LGMsbCk7Y29uc3QgYT1fZShudWxsKTt0cnl7bC5jYWxsKGMpfWZpbmFsbHl7X2UoYSksaDIoNSxjLGwpfX1mdW5jdGlvbiBEVihjLGwsYSxkKXtjb25zdCBoPWFbZF08MCxmPWFbZCsxXSxNPWNbaD8tYVtkXTphW2RdXTtoP2NbV2FdPj4xNDxjW2tmXT4+MTYmJigzJmNbV2FdKT09'@; put 'PWwmJihjW1dhXSs9MTYzODQsZmsoTSxmKSk6ZmsoTSxmKX1jb25zdCBrND0tMTtjbGFzcyBGMXtjb25zdHJ1Y3RvcihsLGEsZCl7dGhpcy5mYWN0b3J5PWwsdGhpcy5yZXNvbHZpbmc9ITEsdGhpcy5jYW5TZWVWaWV3UHJvdmlkZXJzPWEsdGhpcy5pbmplY3RJbXBsPWR9fWZ1bmN0aW9uIEl2'@; put 'KGMpe3JldHVybiBjIT09azR9ZnVuY3Rpb24gcTYoYyl7cmV0dXJuIDMyNzY3JmN9ZnVuY3Rpb24gSjYoYyxsKXtsZXQgYT1mdW5jdGlvbiBGVihjKXtyZXR1cm4gYz4+MTZ9KGMpLGQ9bDtmb3IoO2E+MDspZD1kW3IwXSxhLS07cmV0dXJuIGR9bGV0IHlDPSEwO2Z1bmN0aW9uIFJ2KGMpe2Nv'@; put 'bnN0IGw9eUM7cmV0dXJuIHlDPWMsbH1jb25zdCBMdj0yNTUsYkM9NTtsZXQgSFY9MDtjb25zdCBtMj17fTtmdW5jdGlvbiBPdihjLGwpe2NvbnN0IGE9UHYoYyxsKTtpZigtMSE9PWEpcmV0dXJuIGE7Y29uc3QgZD1sW1hpXTtkLmZpcnN0Q3JlYXRlUGFzcyYmKGMuaW5qZWN0b3JJbmRleD1s'@; put 'Lmxlbmd0aCxfQyhkLmRhdGEsYyksX0MobCxudWxsKSxfQyhkLmJsdWVwcmludCxudWxsKSk7Y29uc3QgaD1iNShjLGwpLGY9Yy5pbmplY3RvckluZGV4O2lmKEl2KGgpKXtjb25zdCB2PXE2KGgpLE09SjYoaCxsKSxJPU1bWGldLmRhdGE7Zm9yKGxldCBHPTA7Rzw4O0crKylsW2YrR109TVt2'@; put 'K0ddfElbditHXX1yZXR1cm4gbFtmKzhdPWgsZn1mdW5jdGlvbiBfQyhjLGwpe2MucHVzaCgwLDAsMCwwLDAsMCwwLDAsbCl9ZnVuY3Rpb24gUHYoYyxsKXtyZXR1cm4tMT09PWMuaW5qZWN0b3JJbmRleHx8Yy5wYXJlbnQmJmMucGFyZW50LmluamVjdG9ySW5kZXg9PT1jLmluamVjdG9ySW5k'@; put 'ZXh8fG51bGw9PT1sW2MuaW5qZWN0b3JJbmRleCs4XT8tMTpjLmluamVjdG9ySW5kZXh9ZnVuY3Rpb24gYjUoYyxsKXtpZihjLnBhcmVudCYmLTEhPT1jLnBhcmVudC5pbmplY3RvckluZGV4KXJldHVybiBjLnBhcmVudC5pbmplY3RvckluZGV4O2xldCBhPTAsZD1udWxsLGg9bDtmb3IoO251'@; put 'bGwhPT1oOyl7aWYoZD1vaChoKSxudWxsPT09ZClyZXR1cm4gazQ7aWYoYSsrLGg9aFtyMF0sLTEhPT1kLmluamVjdG9ySW5kZXgpcmV0dXJuIGQuaW5qZWN0b3JJbmRleHxhPDwxNn1yZXR1cm4gazR9ZnVuY3Rpb24gcGQoYyxsLGEpeyFmdW5jdGlvbiBOVihjLGwsYSl7bGV0IGQ7InN0cmlu'@; put 'ZyI9PXR5cGVvZiBhP2Q9YS5jaGFyQ29kZUF0KDApfHwwOmEuaGFzT3duUHJvcGVydHkoTGMpJiYoZD1hW0xjXSksbnVsbD09ZCYmKGQ9YVtMY109SFYrKyk7Y29uc3QgaD1kJkx2O2wuZGF0YVtjKyhoPj5iQyldfD0xPDxofShjLGwsYSl9ZnVuY3Rpb24gcGsoYyxsLGEpe2lmKGEmcmEuT3B0'@; put 'aW9uYWx8fHZvaWQgMCE9PWMpcmV0dXJuIGM7U28oKX1mdW5jdGlvbiBzaChjLGwsYSxkKXtpZihhJnJhLk9wdGlvbmFsJiZ2b2lkIDA9PT1kJiYoZD1udWxsKSwhKGEmKHJhLlNlbGZ8cmEuSG9zdCkpKXtjb25zdCBoPWNbaGNdLGY9eWwodm9pZCAwKTt0cnl7cmV0dXJuIGg/aC5nZXQobCxk'@; put 'LGEmcmEuT3B0aW9uYWwpOnRoKGwsZCxhJnJhLk9wdGlvbmFsKX1maW5hbGx5e3lsKGYpfX1yZXR1cm4gcGsoZCwwLGEpfWZ1bmN0aW9uIGdrKGMsbCxhLGQ9cmEuRGVmYXVsdCxoKXtpZihudWxsIT09Yyl7aWYoMjA0OCZsW1dhXSYmIShkJnJhLlNlbGYpKXtjb25zdCB2PWZ1bmN0aW9uIFoz'@; put 'KGMsbCxhLGQsaCl7bGV0IGY9Yyx2PWw7Zm9yKDtudWxsIT09ZiYmbnVsbCE9PXYmJjIwNDgmdltXYV0mJiEoNTEyJnZbV2FdKTspe2NvbnN0IE09XzUoZix2LGEsZHxyYS5TZWxmLG0yKTtpZihNIT09bTIpcmV0dXJuIE07bGV0IEk9Zi5wYXJlbnQ7aWYoIUkpe2NvbnN0IEc9dltvMl07aWYo'@; put 'Ryl7Y29uc3QgcmU9Ry5nZXQoYSxtMixkKTtpZihyZSE9PW0yKXJldHVybiByZX1JPW9oKHYpLHY9dltyMF19Zj1JfXJldHVybiBofShjLGwsYSxkLG0yKTtpZih2IT09bTIpcmV0dXJuIHZ9Y29uc3QgZj1fNShjLGwsYSxkLG0yKTtpZihmIT09bTIpcmV0dXJuIGZ9cmV0dXJuIHNoKGwsYSxk'@; put 'LGgpfWZ1bmN0aW9uIF81KGMsbCxhLGQsaCl7Y29uc3QgZj1mdW5jdGlvbiB4YyhjKXtpZigic3RyaW5nIj09dHlwZW9mIGMpcmV0dXJuIGMuY2hhckNvZGVBdCgwKXx8MDtjb25zdCBsPWMuaGFzT3duUHJvcGVydHkoTGMpP2NbTGNdOnZvaWQgMDtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGw/'@; put 'bD49MD9sJkx2OkowOmx9KGEpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBmKXtpZighRXYobCxjLGQpKXJldHVybiBkJnJhLkhvc3Q/cGsoaCwwLGQpOnNoKGwsYSxkLGgpO3RyeXtsZXQgdjtpZih2PWYoZCksbnVsbCE9dnx8ZCZyYS5PcHRpb25hbClyZXR1cm4gdjtTbygpfWZpbmFsbHl7Y2so'@; put 'KX19ZWxzZSBpZigibnVtYmVyIj09dHlwZW9mIGYpe2xldCB2PW51bGwsTT1QdihjLGwpLEk9azQsRz1kJnJhLkhvc3Q/bFtqbF1bbmNdOm51bGw7Zm9yKCgtMT09PU18fGQmcmEuU2tpcFNlbGYpJiYoST0tMT09PU0/YjUoYyxsKTpsW00rOF0sSSE9PWs0JiZDNShkLCExKT8odj1sW1hpXSxN'@; put 'PXE2KEkpLGw9SjYoSSxsKSk6TT0tMSk7LTEhPT1NOyl7Y29uc3QgcmU9bFtYaV07aWYodzUoZixNLHJlLmRhdGEpKXtjb25zdCB1ZT1tayhNLGwsYSx2LGQsRyk7aWYodWUhPT1tMilyZXR1cm4gdWV9ST1sW00rOF0sSSE9PWs0JiZDNShkLGxbWGldLmRhdGFbTSs4XT09PUcpJiZ3NShmLE0s'@; put 'bCk/KHY9cmUsTT1xNihJKSxsPUo2KEksbCkpOk09LTF9fXJldHVybiBofWZ1bmN0aW9uIG1rKGMsbCxhLGQsaCxmKXtjb25zdCB2PWxbWGldLE09di5kYXRhW2MrOF0scmU9RnYoTSx2LGEsbnVsbD09ZD9JZihNKSYmeUM6ZCE9diYmISEoMyZNLnR5cGUpLGgmcmEuSG9zdCYmZj09PU0pO3Jl'@; put 'dHVybiBudWxsIT09cmU/RDQobCx2LHJlLE0pOm0yfWZ1bmN0aW9uIEZ2KGMsbCxhLGQsaCl7Y29uc3QgZj1jLnByb3ZpZGVySW5kZXhlcyx2PWwuZGF0YSxNPTEwNDg1NzUmZixJPWMuZGlyZWN0aXZlU3RhcnQscmU9Zj4+MjAseWU9aD9NK3JlOmMuZGlyZWN0aXZlRW5kO2ZvcihsZXQgRWU9'@; put 'ZD9NOk0rcmU7RWU8eWU7RWUrKyl7Y29uc3QgQmU9dltFZV07aWYoRWU8SSYmYT09PUJlfHxFZT49SSYmQmUudHlwZT09PWEpcmV0dXJuIEVlfWlmKGgpe2NvbnN0IEVlPXZbSV07aWYoRWUmJkhjKEVlKSYmRWUudHlwZT09PWEpcmV0dXJuIEl9cmV0dXJuIG51bGx9ZnVuY3Rpb24gRDQoYyxs'@; put 'LGEsZCl7bGV0IGg9Y1thXTtjb25zdCBmPWwuZGF0YTtpZihmdW5jdGlvbiBJVihjKXtyZXR1cm4gYyBpbnN0YW5jZW9mIEYxfShoKSl7Y29uc3Qgdj1oO3YucmVzb2x2aW5nJiZmdW5jdGlvbiBHMChjLGwpe3Rocm93IGwmJmwuam9pbigiID4gIiksbmV3IG5yKC0yMDAsYyl9KGZ1bmN0aW9u'@; put 'IGthKGMpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBjP2MubmFtZXx8Yy50b1N0cmluZygpOiJvYmplY3QiPT10eXBlb2YgYyYmbnVsbCE9YyYmImZ1bmN0aW9uIj09dHlwZW9mIGMudHlwZT9jLnR5cGUubmFtZXx8Yy50eXBlLnRvU3RyaW5nKCk6U2EoYyl9KGZbYV0pKTtjb25zdCBNPVJ2'@; put 'KHYuY2FuU2VlVmlld1Byb3ZpZGVycyk7di5yZXNvbHZpbmc9ITA7Y29uc3QgRz12LmluamVjdEltcGw/eWwodi5pbmplY3RJbXBsKTpudWxsO0V2KGMsZCxyYS5EZWZhdWx0KTt0cnl7aD1jW2FdPXYuZmFjdG9yeSh2b2lkIDAsZixjLGQpLGwuZmlyc3RDcmVhdGVQYXNzJiZhPj1kLmRpcmVj'@; put 'dGl2ZVN0YXJ0JiZmdW5jdGlvbiBrVihjLGwsYSl7Y29uc3R7bmdPbkNoYW5nZXM6ZCxuZ09uSW5pdDpoLG5nRG9DaGVjazpmfT1sLnR5cGUucHJvdG90eXBlO2lmKGQpe2NvbnN0IHY9WEEobCk7KGEucHJlT3JkZXJIb29rcz8/PVtdKS5wdXNoKGMsdiksKGEucHJlT3JkZXJDaGVja0hvb2tz'@; put 'Pz89W10pLnB1c2goYyx2KX1oJiYoYS5wcmVPcmRlckhvb2tzPz89W10pLnB1c2goMC1jLGgpLGYmJigoYS5wcmVPcmRlckhvb2tzPz89W10pLnB1c2goYyxmKSwoYS5wcmVPcmRlckNoZWNrSG9va3M/Pz1bXSkucHVzaChjLGYpKX0oYSxmW2FdLGwpfWZpbmFsbHl7bnVsbCE9PUcmJnlsKEcp'@; put 'LFJ2KE0pLHYucmVzb2x2aW5nPSExLGNrKCl9fXJldHVybiBofWZ1bmN0aW9uIHc1KGMsbCxhKXtyZXR1cm4hIShhW2wrKGM+PmJDKV0mMTw8Yyl9ZnVuY3Rpb24gQzUoYyxsKXtyZXR1cm4hKGMmcmEuU2VsZnx8YyZyYS5Ib3N0JiZsKX1jbGFzcyBIdXtjb25zdHJ1Y3RvcihsLGEpe3RoaXMu'@; put 'X3ROb2RlPWwsdGhpcy5fbFZpZXc9YX1nZXQobCxhLGQpe3JldHVybiBnayh0aGlzLl90Tm9kZSx0aGlzLl9sVmlldyxsLG41KGQpLGEpfX1mdW5jdGlvbiBKMCgpe3JldHVybiBuZXcgSHUob2woKSxjaSgpKX1mdW5jdGlvbiBVbyhjKXtyZXR1cm4gSG8oKCk9Pntjb25zdCBsPWMucHJvdG90'@; put 'eXBlLmNvbnN0cnVjdG9yLGE9bFtqaV18fFBmKGwpLGQ9T2JqZWN0LnByb3RvdHlwZTtsZXQgaD1PYmplY3QuZ2V0UHJvdG90eXBlT2YoYy5wcm90b3R5cGUpLmNvbnN0cnVjdG9yO2Zvcig7aCYmaCE9PWQ7KXtjb25zdCBmPWhbamldfHxQZihoKTtpZihmJiZmIT09YSlyZXR1cm4gZjtoPU9i'@; put 'amVjdC5nZXRQcm90b3R5cGVPZihoKX1yZXR1cm4gZj0+bmV3IGZ9KX1mdW5jdGlvbiBQZihjKXtyZXR1cm4gdmwoYyk/KCk9Pntjb25zdCBsPVBmKEdpKGMpKTtyZXR1cm4gbCYmbCgpfTpodShjKX1mdW5jdGlvbiBvaChjKXtjb25zdCBsPWNbWGldLGE9bC50eXBlO3JldHVybiAyPT09YT9s'@; put 'LmRlY2xUTm9kZToxPT09YT9jW25jXTpudWxsfWZ1bmN0aW9uIEZmKGMpe3JldHVybiBmdW5jdGlvbiBWVihjLGwpe2lmKCJjbGFzcyI9PT1sKXJldHVybiBjLmNsYXNzZXM7aWYoInN0eWxlIj09PWwpcmV0dXJuIGMuc3R5bGVzO2NvbnN0IGE9Yy5hdHRycztpZihhKXtjb25zdCBkPWEubGVu'@; put 'Z3RoO2xldCBoPTA7Zm9yKDtoPGQ7KXtjb25zdCBmPWFbaF07aWYobDUoZikpYnJlYWs7aWYoMD09PWYpaCs9MjtlbHNlIGlmKCJudW1iZXIiPT10eXBlb2YgZilmb3IoaCsrO2g8ZCYmInN0cmluZyI9PXR5cGVvZiBhW2hdOyloKys7ZWxzZXtpZihmPT09bClyZXR1cm4gYVtoKzFdO2grPTJ9'@; put 'fX1yZXR1cm4gbnVsbH0ob2woKSxjKX1mdW5jdGlvbiBFQyhjLGw9bnVsbCxhPW51bGwsZCl7Y29uc3QgaD1SNChjLGwsYSxkKTtyZXR1cm4gaC5yZXNvbHZlSW5qZWN0b3JJbml0aWFsaXplcnMoKSxofWZ1bmN0aW9uIFI0KGMsbD1udWxsLGE9bnVsbCxkLGg9bmV3IFNldCl7Y29uc3QgZj1b'@; put 'YXx8SnMsR3coYyldO3JldHVybiBkPWR8fCgib2JqZWN0Ij09dHlwZW9mIGM/dm9pZCAwOkhyKGMpKSxuZXcgZGQoZixsfHxOMygpLGR8fG51bGwsaCl9bGV0IERvPSgoKT0+e2NsYXNzIGN7c3RhdGlje3RoaXMuVEhST1dfSUZfTk9UX0ZPVU5EPSQwfXN0YXRpY3t0aGlzLk5VTEw9bmV3IG81'@; put 'fXN0YXRpYyBjcmVhdGUoYSxkKXtpZihBcnJheS5pc0FycmF5KGEpKXJldHVybiBFQyh7bmFtZToiIn0sZCxhLCIiKTt7Y29uc3QgaD1hLm5hbWU/PyIiO3JldHVybiBFQyh7bmFtZTpofSxhLnBhcmVudCxhLnByb3ZpZGVycyxoKX19c3RhdGlje3RoaXMuXHUwMjc1cHJvdj1ybih7dG9rZW46'@; put 'Yyxwcm92aWRlZEluOiJhbnkiLGZhY3Rvcnk6KCk9PkNyKE8zKX0pfXN0YXRpY3t0aGlzLl9fTkdfRUxFTUVOVF9JRF9fPS0xfX1yZXR1cm4gY30pKCk7ZnVuY3Rpb24geDUoYyl7cmV0dXJuIGMubmdPcmlnaW5hbEVycm9yfWNsYXNzIHYye2NvbnN0cnVjdG9yKCl7dGhpcy5fY29uc29sZT1j'@; put 'b25zb2xlfWhhbmRsZUVycm9yKGwpe2NvbnN0IGE9dGhpcy5fZmluZE9yaWdpbmFsRXJyb3IobCk7dGhpcy5fY29uc29sZS5lcnJvcigiRVJST1IiLGwpLGEmJnRoaXMuX2NvbnNvbGUuZXJyb3IoIk9SSUdJTkFMIEVSUk9SIixhKX1fZmluZE9yaWdpbmFsRXJyb3IobCl7bGV0IGE9bCYmeDUo'@; put 'bCk7Zm9yKDthJiZ4NShhKTspYT14NShhKTtyZXR1cm4gYXx8bnVsbH19Y29uc3QgX2s9bmV3IFN0KCIiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OigpPT5oaSh2MikuaGFuZGxlRXJyb3IuYmluZCh2b2lkIDApfSk7bGV0IEU1PSgoKT0+e2NsYXNzIGN7c3RhdGlje3RoaXMuX19OR19F'@; put 'TEVNRU5UX0lEX189WTN9c3RhdGlje3RoaXMuX19OR19FTlZfSURfXz1hPT5hfX1yZXR1cm4gY30pKCk7Y2xhc3MgVzMgZXh0ZW5kcyBFNXtjb25zdHJ1Y3RvcihsKXtzdXBlcigpLHRoaXMuX2xWaWV3PWx9b25EZXN0cm95KGwpe3JldHVybiBNdih0aGlzLl9sVmlldyxsKSwoKT0+ZnVuY3Rp'@; put 'b24geHYoYyxsKXtpZihudWxsPT09Y1tsMl0pcmV0dXJuO2NvbnN0IGE9Y1tsMl0uaW5kZXhPZihsKTstMSE9PWEmJmNbbDJdLnNwbGljZShhLDEpfSh0aGlzLl9sVmlldyxsKX19ZnVuY3Rpb24gWTMoKXtyZXR1cm4gbmV3IFczKGNpKCkpfWZ1bmN0aW9uIHpWKCl7cmV0dXJuIEw0KG9sKCks'@; put 'Y2koKSl9ZnVuY3Rpb24gTDQoYyxsKXtyZXR1cm4gbmV3IFFpKEkwKGMsbCkpfWxldCBRaT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMubmF0aXZlRWxlbWVudD1hfXN0YXRpY3t0aGlzLl9fTkdfRUxFTUVOVF9JRF9fPXpWfX1yZXR1cm4gY30pKCk7ZnVuY3Rpb24gQ2soYyl7'@; put 'cmV0dXJuIGMgaW5zdGFuY2VvZiBRaT9jLm5hdGl2ZUVsZW1lbnQ6Y31mdW5jdGlvbiBUQyhjKXtyZXR1cm4gbD0+e3NldFRpbWVvdXQoYyx2b2lkIDAsbCl9fWNvbnN0IEtyPWNsYXNzIFVWIGV4dGVuZHMgR257Y29uc3RydWN0b3IobD0hMSl7c3VwZXIoKSx0aGlzLmRlc3Ryb3lSZWY9dm9p'@; put 'ZCAwLHRoaXMuX19pc0FzeW5jPWwsX3YoKSYmKHRoaXMuZGVzdHJveVJlZj1oaShFNSx7b3B0aW9uYWw6ITB9KT8/dm9pZCAwKX1lbWl0KGwpe2NvbnN0IGE9X2UobnVsbCk7dHJ5e3N1cGVyLm5leHQobCl9ZmluYWxseXtfZShhKX19c3Vic2NyaWJlKGwsYSxkKXtsZXQgaD1sLGY9YXx8KCgp'@; put 'PT5udWxsKSx2PWQ7aWYobCYmIm9iamVjdCI9PXR5cGVvZiBsKXtjb25zdCBJPWw7aD1JLm5leHQ/LmJpbmQoSSksZj1JLmVycm9yPy5iaW5kKEkpLHY9SS5jb21wbGV0ZT8uYmluZChJKX10aGlzLl9faXNBc3luYyYmKGY9VEMoZiksaCYmKGg9VEMoaCkpLHYmJih2PVRDKHYpKSk7Y29uc3Qg'@; put 'TT1zdXBlci5zdWJzY3JpYmUoe25leHQ6aCxlcnJvcjpmLGNvbXBsZXRlOnZ9KTtyZXR1cm4gbCBpbnN0YW5jZW9mIEp0JiZsLmFkZChNKSxNfX07ZnVuY3Rpb24gWlYoKXtyZXR1cm4gdGhpcy5fcmVzdWx0c1tTeW1ib2wuaXRlcmF0b3JdKCl9Y2xhc3MgbGh7Z2V0IGNoYW5nZXMoKXtyZXR1'@; put 'cm4gdGhpcy5fY2hhbmdlcz8/PW5ldyBLcn1jb25zdHJ1Y3RvcihsPSExKXt0aGlzLl9lbWl0RGlzdGluY3RDaGFuZ2VzT25seT1sLHRoaXMuZGlydHk9ITAsdGhpcy5fb25EaXJ0eT12b2lkIDAsdGhpcy5fcmVzdWx0cz1bXSx0aGlzLl9jaGFuZ2VzRGV0ZWN0ZWQ9ITEsdGhpcy5fY2hhbmdl'@; put 'cz12b2lkIDAsdGhpcy5sZW5ndGg9MCx0aGlzLmZpcnN0PXZvaWQgMCx0aGlzLmxhc3Q9dm9pZCAwO2NvbnN0IGE9bGgucHJvdG90eXBlO2FbU3ltYm9sLml0ZXJhdG9yXXx8KGFbU3ltYm9sLml0ZXJhdG9yXT1aVil9Z2V0KGwpe3JldHVybiB0aGlzLl9yZXN1bHRzW2xdfW1hcChsKXtyZXR1'@; put 'cm4gdGhpcy5fcmVzdWx0cy5tYXAobCl9ZmlsdGVyKGwpe3JldHVybiB0aGlzLl9yZXN1bHRzLmZpbHRlcihsKX1maW5kKGwpe3JldHVybiB0aGlzLl9yZXN1bHRzLmZpbmQobCl9cmVkdWNlKGwsYSl7cmV0dXJuIHRoaXMuX3Jlc3VsdHMucmVkdWNlKGwsYSl9Zm9yRWFjaChsKXt0aGlzLl9y'@; put 'ZXN1bHRzLmZvckVhY2gobCl9c29tZShsKXtyZXR1cm4gdGhpcy5fcmVzdWx0cy5zb21lKGwpfXRvQXJyYXkoKXtyZXR1cm4gdGhpcy5fcmVzdWx0cy5zbGljZSgpfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuX3Jlc3VsdHMudG9TdHJpbmcoKX1yZXNldChsLGEpe3RoaXMuZGlydHk9ITE7Y29u'@; put 'c3QgZD1mdW5jdGlvbiBlMChjKXtyZXR1cm4gYy5mbGF0KE51bWJlci5QT1NJVElWRV9JTkZJTklUWSl9KGwpOyh0aGlzLl9jaGFuZ2VzRGV0ZWN0ZWQ9IWZ1bmN0aW9uIF9mKGMsbCxhKXtpZihjLmxlbmd0aCE9PWwubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgZD0wO2Q8Yy5sZW5ndGg7ZCsr'@; put 'KXtsZXQgaD1jW2RdLGY9bFtkXTtpZihhJiYoaD1hKGgpLGY9YShmKSksZiE9PWgpcmV0dXJuITF9cmV0dXJuITB9KHRoaXMuX3Jlc3VsdHMsZCxhKSkmJih0aGlzLl9yZXN1bHRzPWQsdGhpcy5sZW5ndGg9ZC5sZW5ndGgsdGhpcy5sYXN0PWRbdGhpcy5sZW5ndGgtMV0sdGhpcy5maXJzdD1k'@; put 'WzBdKX1ub3RpZnlPbkNoYW5nZXMoKXt2b2lkIDAhPT10aGlzLl9jaGFuZ2VzJiYodGhpcy5fY2hhbmdlc0RldGVjdGVkfHwhdGhpcy5fZW1pdERpc3RpbmN0Q2hhbmdlc09ubHkpJiZ0aGlzLl9jaGFuZ2VzLmVtaXQodGhpcyl9b25EaXJ0eShsKXt0aGlzLl9vbkRpcnR5PWx9c2V0RGlydHko'@; put 'KXt0aGlzLmRpcnR5PSEwLHRoaXMuX29uRGlydHk/LigpfWRlc3Ryb3koKXt2b2lkIDAhPT10aGlzLl9jaGFuZ2VzJiYodGhpcy5fY2hhbmdlcy5jb21wbGV0ZSgpLHRoaXMuX2NoYW5nZXMudW5zdWJzY3JpYmUoKSl9fWZ1bmN0aW9uIEJ2KGMpe3JldHVybiEoMTI4Jn5jLmZsYWdzKX1jb25z'@; put 'dCBBQz1uZXcgTWFwO2xldCBZVj0wO2NvbnN0IERDPSJfX25nQ29udGV4dF9fIjtmdW5jdGlvbiBOdShjLGwpe0x1KGwpPyhjW0RDXT1sW3kwXSxmdW5jdGlvbiAkVihjKXtBQy5zZXQoY1t5MF0sYyl9KGwpKTpjW0RDXT1sfWZ1bmN0aW9uIGtrKGMpe3JldHVybiBJayhjW0FmXSl9ZnVuY3Rp'@; put 'b24gRGsoYyl7cmV0dXJuIElrKGNbRmNdKX1mdW5jdGlvbiBJayhjKXtmb3IoO251bGwhPT1jJiYhT3UoYyk7KWM9Y1tGY107cmV0dXJuIGN9bGV0IFJDO2Z1bmN0aW9uIEczKCl7aWYodm9pZCAwIT09UkMpcmV0dXJuIFJDO2lmKHR5cGVvZiBkb2N1bWVudDwidSIpcmV0dXJuIGRvY3VtZW50'@; put 'O3Rocm93IG5ldyBucigyMTAsITEpfWNvbnN0IFp2PW5ldyBTdCgiIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTooKT0+ZEJ9KSxkQj0ibmciLE5rPW5ldyBTdCgiIiksaXM9bmV3IFN0KCIiLHtwcm92aWRlZEluOiJwbGF0Zm9ybSIsZmFjdG9yeTooKT0+InVua25vd24ifSksVms9bmV3'@; put 'IFN0KCIiKSxENT1uZXcgU3QoIiIse3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6KCk9PkczKCkuYm9keT8ucXVlcnlTZWxlY3RvcigiW25nQ3NwTm9uY2VdIik/LmdldEF0dHJpYnV0ZSgibmdDc3BOb25jZSIpfHxudWxsfSk7bGV0IGprPSgpPT5udWxsO2Z1bmN0aW9uIEhDKGMsbCxhPSEx'@; put 'KXtyZXR1cm4gamsoYyxsLGEpfWNvbnN0IFprPW5ldyBTdCgiIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTooKT0+ITF9KTtsZXQgS3YsWHY7ZnVuY3Rpb24gTDUoYyl7cmV0dXJuIGZ1bmN0aW9uIHpDKCl7aWYodm9pZCAwPT09S3YmJihLdj1udWxsLE50LnRydXN0ZWRUeXBlcykpdHJ5'@; put 'e0t2PU50LnRydXN0ZWRUeXBlcy5jcmVhdGVQb2xpY3koImFuZ3VsYXIiLHtjcmVhdGVIVE1MOmM9PmMsY3JlYXRlU2NyaXB0OmM9PmMsY3JlYXRlU2NyaXB0VVJMOmM9PmN9KX1jYXRjaHt9cmV0dXJuIEt2fSgpPy5jcmVhdGVIVE1MKGMpfHxjfWZ1bmN0aW9uIFVDKCl7aWYodm9pZCAwPT09'@; put 'WHYmJihYdj1udWxsLE50LnRydXN0ZWRUeXBlcykpdHJ5e1h2PU50LnRydXN0ZWRUeXBlcy5jcmVhdGVQb2xpY3koImFuZ3VsYXIjdW5zYWZlLWJ5cGFzcyIse2NyZWF0ZUhUTUw6Yz0+YyxjcmVhdGVTY3JpcHQ6Yz0+YyxjcmVhdGVTY3JpcHRVUkw6Yz0+Y30pfWNhdGNoe31yZXR1cm4gWHZ9'@; put 'ZnVuY3Rpb24gWWsoYyl7cmV0dXJuIFVDKCk/LmNyZWF0ZUhUTUwoYyl8fGN9ZnVuY3Rpb24gJGsoYyl7cmV0dXJuIFVDKCk/LmNyZWF0ZVNjcmlwdFVSTChjKXx8Y31jbGFzcyBLa3tjb25zdHJ1Y3RvcihsKXt0aGlzLmNoYW5naW5nVGhpc0JyZWFrc0FwcGxpY2F0aW9uU2VjdXJpdHk9bH10'@; put 'b1N0cmluZygpe3JldHVybmBTYWZlVmFsdWUgbXVzdCB1c2UgW3Byb3BlcnR5XT1iaW5kaW5nOiAke3RoaXMuY2hhbmdpbmdUaGlzQnJlYWtzQXBwbGljYXRpb25TZWN1cml0eX0gKHNlZSAke2ZhfSlgfX1mdW5jdGlvbiB5MihjKXtyZXR1cm4gYyBpbnN0YW5jZW9mIEtrP2MuY2hhbmdpbmdU'@; put 'aGlzQnJlYWtzQXBwbGljYXRpb25TZWN1cml0eTpjfWZ1bmN0aW9uIEg0KGMsbCl7Y29uc3QgYT1mdW5jdGlvbiBYayhjKXtyZXR1cm4gYyBpbnN0YW5jZW9mIEtrJiZjLmdldFR5cGVOYW1lKCl8fG51bGx9KGMpO2lmKG51bGwhPWEmJmEhPT1sKXtpZigiUmVzb3VyY2VVUkwiPT09YSYmIlVS'@; put 'TCI9PT1sKXJldHVybiEwO3Rocm93IG5ldyBFcnJvcihgUmVxdWlyZWQgYSBzYWZlICR7bH0sIGdvdCBhICR7YX0gKHNlZSAke2ZhfSlgKX1yZXR1cm4gYT09PWx9Y2xhc3MgcWt7Y29uc3RydWN0b3IobCl7dGhpcy5pbmVydERvY3VtZW50SGVscGVyPWx9Z2V0SW5lcnRCb2R5RWxlbWVudChs'@; put 'KXtsPSI8Ym9keT48cmVtb3ZlPjwvcmVtb3ZlPiIrbDt0cnl7Y29uc3QgYT0obmV3IHdpbmRvdy5ET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZyhMNShsKSwidGV4dC9odG1sIikuYm9keTtyZXR1cm4gbnVsbD09PWE/dGhpcy5pbmVydERvY3VtZW50SGVscGVyLmdldEluZXJ0Qm9keUVsZW1l'@; put 'bnQobCk6KGEucmVtb3ZlQ2hpbGQoYS5maXJzdENoaWxkKSxhKX1jYXRjaHtyZXR1cm4gbnVsbH19fWNsYXNzIElCe2NvbnN0cnVjdG9yKGwpe3RoaXMuZGVmYXVsdERvYz1sLHRoaXMuaW5lcnREb2N1bWVudD10aGlzLmRlZmF1bHREb2MuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3Vt'@; put 'ZW50KCJzYW5pdGl6YXRpb24taW5lcnQiKX1nZXRJbmVydEJvZHlFbGVtZW50KGwpe2NvbnN0IGE9dGhpcy5pbmVydERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7cmV0dXJuIGEuaW5uZXJIVE1MPUw1KGwpLGF9fWNvbnN0IFJCPS9eKD8hamF2YXNjcmlwdDopKD86W2EtejAt'@; put 'OSsuLV0rOnxbXiY6XC8/I10qKD86W1wvPyNdfCQpKS9pO2Z1bmN0aW9uIFdDKGMpe3JldHVybihjPVN0cmluZyhjKSkubWF0Y2goUkIpP2M6InVuc2FmZToiK2N9ZnVuY3Rpb24gTmYoYyl7Y29uc3QgbD17fTtmb3IoY29uc3QgYSBvZiBjLnNwbGl0KCIsIikpbFthXT0hMDtyZXR1cm4gbH1m'@; put 'dW5jdGlvbiBhOCguLi5jKXtjb25zdCBsPXt9O2Zvcihjb25zdCBhIG9mIGMpZm9yKGNvbnN0IGQgaW4gYSlhLmhhc093blByb3BlcnR5KGQpJiYobFtkXT0hMCk7cmV0dXJuIGx9Y29uc3QgUWs9TmYoImFyZWEsYnIsY29sLGhyLGltZyx3YnIiKSxlRD1OZigiY29sZ3JvdXAsZGQsZHQsbGks'@; put 'cCx0Ym9keSx0ZCx0Zm9vdCx0aCx0aGVhZCx0ciIpLHREPU5mKCJycCxydCIpLFlDPWE4KFFrLGE4KGVELE5mKCJhZGRyZXNzLGFydGljbGUsYXNpZGUsYmxvY2txdW90ZSxjYXB0aW9uLGNlbnRlcixkZWwsZGV0YWlscyxkaWFsb2csZGlyLGRpdixkbCxmaWd1cmUsZmlnY2FwdGlvbixmb290'@; put 'ZXIsaDEsaDIsaDMsaDQsaDUsaDYsaGVhZGVyLGhncm91cCxocixpbnMsbWFpbixtYXAsbWVudSxuYXYsb2wscHJlLHNlY3Rpb24sc3VtbWFyeSx0YWJsZSx1bCIpKSxhOCh0RCxOZigiYSxhYmJyLGFjcm9ueW0sYXVkaW8sYixiZGksYmRvLGJpZyxicixjaXRlLGNvZGUsZGVsLGRmbixlbSxm'@; put 'b250LGksaW1nLGlucyxrYmQsbGFiZWwsbWFwLG1hcmsscGljdHVyZSxxLHJ1YnkscnAscnQscyxzYW1wLHNtYWxsLHNvdXJjZSxzcGFuLHN0cmlrZSxzdHJvbmcsc3ViLHN1cCx0aW1lLHRyYWNrLHR0LHUsdmFyLHZpZGVvIikpLGE4KHRELGVEKSksR0M9TmYoImJhY2tncm91bmQsY2l0ZSxo'@; put 'cmVmLGl0ZW10eXBlLGxvbmdkZXNjLHBvc3RlcixzcmMseGxpbms6aHJlZiIpLG5EPWE4KEdDLE5mKCJhYmJyLGFjY2Vzc2tleSxhbGlnbixhbHQsYXV0b3BsYXksYXhpcyxiZ2NvbG9yLGJvcmRlcixjZWxscGFkZGluZyxjZWxsc3BhY2luZyxjbGFzcyxjbGVhcixjb2xvcixjb2xzLGNvbHNw'@; put 'YW4sY29tcGFjdCxjb250cm9scyxjb29yZHMsZGF0ZXRpbWUsZGVmYXVsdCxkaXIsZG93bmxvYWQsZmFjZSxoZWFkZXJzLGhlaWdodCxoaWRkZW4saHJlZmxhbmcsaHNwYWNlLGlzbWFwLGl0ZW1zY29wZSxpdGVtcHJvcCxraW5kLGxhYmVsLGxhbmcsbGFuZ3VhZ2UsbG9vcCxtZWRpYSxtdXRl'@; put 'ZCxub2hyZWYsbm93cmFwLG9wZW4scHJlbG9hZCxyZWwscmV2LHJvbGUscm93cyxyb3dzcGFuLHJ1bGVzLHNjb3BlLHNjcm9sbGluZyxzaGFwZSxzaXplLHNpemVzLHNwYW4sc3JjbGFuZyxzcmNzZXQsc3RhcnQsc3VtbWFyeSx0YWJpbmRleCx0YXJnZXQsdGl0bGUsdHJhbnNsYXRlLHR5cGUs'@; put 'dXNlbWFwLHZhbGlnbix2YWx1ZSx2c3BhY2Usd2lkdGgiKSxOZigiYXJpYS1hY3RpdmVkZXNjZW5kYW50LGFyaWEtYXRvbWljLGFyaWEtYXV0b2NvbXBsZXRlLGFyaWEtYnVzeSxhcmlhLWNoZWNrZWQsYXJpYS1jb2xjb3VudCxhcmlhLWNvbGluZGV4LGFyaWEtY29sc3BhbixhcmlhLWNvbnRy'@; put 'b2xzLGFyaWEtY3VycmVudCxhcmlhLWRlc2NyaWJlZGJ5LGFyaWEtZGV0YWlscyxhcmlhLWRpc2FibGVkLGFyaWEtZHJvcGVmZmVjdCxhcmlhLWVycm9ybWVzc2FnZSxhcmlhLWV4cGFuZGVkLGFyaWEtZmxvd3RvLGFyaWEtZ3JhYmJlZCxhcmlhLWhhc3BvcHVwLGFyaWEtaGlkZGVuLGFyaWEt'@; put 'aW52YWxpZCxhcmlhLWtleXNob3J0Y3V0cyxhcmlhLWxhYmVsLGFyaWEtbGFiZWxsZWRieSxhcmlhLWxldmVsLGFyaWEtbGl2ZSxhcmlhLW1vZGFsLGFyaWEtbXVsdGlsaW5lLGFyaWEtbXVsdGlzZWxlY3RhYmxlLGFyaWEtb3JpZW50YXRpb24sYXJpYS1vd25zLGFyaWEtcGxhY2Vob2xkZXIs'@; put 'YXJpYS1wb3NpbnNldCxhcmlhLXByZXNzZWQsYXJpYS1yZWFkb25seSxhcmlhLXJlbGV2YW50LGFyaWEtcmVxdWlyZWQsYXJpYS1yb2xlZGVzY3JpcHRpb24sYXJpYS1yb3djb3VudCxhcmlhLXJvd2luZGV4LGFyaWEtcm93c3BhbixhcmlhLXNlbGVjdGVkLGFyaWEtc2V0c2l6ZSxhcmlhLXNv'@; put 'cnQsYXJpYS12YWx1ZW1heCxhcmlhLXZhbHVlbWluLGFyaWEtdmFsdWVub3csYXJpYS12YWx1ZXRleHQiKSksTEI9TmYoInNjcmlwdCxzdHlsZSx0ZW1wbGF0ZSIpO2NsYXNzIHJEe2NvbnN0cnVjdG9yKCl7dGhpcy5zYW5pdGl6ZWRTb21ldGhpbmc9ITEsdGhpcy5idWY9W119c2FuaXRpemVD'@; put 'aGlsZHJlbihsKXtsZXQgYT1sLmZpcnN0Q2hpbGQsZD0hMCxoPVtdO2Zvcig7YTspaWYoYS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFP2Q9dGhpcy5zdGFydEVsZW1lbnQoYSk6YS5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFP3RoaXMuY2hhcnMoYS5ub2RlVmFsdWUpOnRoaXMuc2Fu'@; put 'aXRpemVkU29tZXRoaW5nPSEwLGQmJmEuZmlyc3RDaGlsZCloLnB1c2goYSksYT1GQihhKTtlbHNlIGZvcig7YTspe2Eubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmdGhpcy5lbmRFbGVtZW50KGEpO2xldCBmPVBCKGEpO2lmKGYpe2E9ZjticmVha31hPWgucG9wKCl9cmV0dXJuIHRo'@; put 'aXMuYnVmLmpvaW4oIiIpfXN0YXJ0RWxlbWVudChsKXtjb25zdCBhPWlEKGwpLnRvTG93ZXJDYXNlKCk7aWYoIVlDLmhhc093blByb3BlcnR5KGEpKXJldHVybiB0aGlzLnNhbml0aXplZFNvbWV0aGluZz0hMCwhTEIuaGFzT3duUHJvcGVydHkoYSk7dGhpcy5idWYucHVzaCgiPCIpLHRoaXMu'@; put 'YnVmLnB1c2goYSk7Y29uc3QgZD1sLmF0dHJpYnV0ZXM7Zm9yKGxldCBoPTA7aDxkLmxlbmd0aDtoKyspe2NvbnN0IGY9ZC5pdGVtKGgpLHY9Zi5uYW1lLE09di50b0xvd2VyQ2FzZSgpO2lmKCFuRC5oYXNPd25Qcm9wZXJ0eShNKSl7dGhpcy5zYW5pdGl6ZWRTb21ldGhpbmc9ITA7Y29udGlu'@; put 'dWV9bGV0IEk9Zi52YWx1ZTtHQ1tNXSYmKEk9V0MoSSkpLHRoaXMuYnVmLnB1c2goIiAiLHYsJz0iJyxzRChJKSwnIicpfXJldHVybiB0aGlzLmJ1Zi5wdXNoKCI+IiksITB9ZW5kRWxlbWVudChsKXtjb25zdCBhPWlEKGwpLnRvTG93ZXJDYXNlKCk7WUMuaGFzT3duUHJvcGVydHkoYSkmJiFR'@; put 'ay5oYXNPd25Qcm9wZXJ0eShhKSYmKHRoaXMuYnVmLnB1c2goIjwvIiksdGhpcy5idWYucHVzaChhKSx0aGlzLmJ1Zi5wdXNoKCI+IikpfWNoYXJzKGwpe3RoaXMuYnVmLnB1c2goc0QobCkpfX1mdW5jdGlvbiBQQihjKXtjb25zdCBsPWMubmV4dFNpYmxpbmc7aWYobCYmYyE9PWwucHJldmlv'@; put 'dXNTaWJsaW5nKXRocm93IGFEKGwpO3JldHVybiBsfWZ1bmN0aW9uIEZCKGMpe2NvbnN0IGw9Yy5maXJzdENoaWxkO2lmKGwmJmZ1bmN0aW9uIE9CKGMsbCl7cmV0dXJuKGMuY29tcGFyZURvY3VtZW50UG9zaXRpb24obCkmTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlkpIT09'@; put 'Tm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQll9KGMsbCkpdGhyb3cgYUQobCk7cmV0dXJuIGx9ZnVuY3Rpb24gaUQoYyl7Y29uc3QgbD1jLm5vZGVOYW1lO3JldHVybiJzdHJpbmciPT10eXBlb2YgbD9sOiJGT1JNIn1mdW5jdGlvbiBhRChjKXtyZXR1cm4gbmV3IEVycm9yKGBG'@; put 'YWlsZWQgdG8gc2FuaXRpemUgaHRtbCBiZWNhdXNlIHRoZSBlbGVtZW50IGlzIGNsb2JiZXJlZDogJHtjLm91dGVySFRNTH1gKX1jb25zdCBIQj0vW1x1RDgwMC1cdURCRkZdW1x1REMwMC1cdURGRkZdL2csTkI9LyhbXlwjLX4gfCFdKS9nO2Z1bmN0aW9uIHNEKGMpe3JldHVybiBjLnJlcGxh'@; put 'Y2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKEhCLGZ1bmN0aW9uKGwpe3JldHVybiImIyIrKDEwMjQqKGwuY2hhckNvZGVBdCgwKS01NTI5NikrKGwuY2hhckNvZGVBdCgxKS01NjMyMCkrNjU1MzYpKyI7In0pLnJlcGxhY2UoTkIsZnVuY3Rpb24obCl7cmV0dXJuIiYjIitsLmNoYXJDb2RlQXQo'@; put 'MCkrIjsifSkucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7Iil9bGV0IHF2O2Z1bmN0aW9uICRDKGMpe3JldHVybiJjb250ZW50ImluIGMmJmZ1bmN0aW9uIEJCKGMpe3JldHVybiBjLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJiJURU1QTEFURSI9PT1jLm5v'@; put 'ZGVOYW1lfShjKT9jLmNvbnRlbnQ6bnVsbH12YXIgUDU9ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5OT05FPTBdPSJOT05FIixjW2MuSFRNTD0xXT0iSFRNTCIsY1tjLlNUWUxFPTJdPSJTVFlMRSIsY1tjLlNDUklQVD0zXT0iU0NSSVBUIixjW2MuVVJMPTRdPSJVUkwiLGNbYy5SRVNPVVJDRV9V'@; put 'Ukw9NV09IlJFU09VUkNFX1VSTCIsY30oUDV8fHt9KTtmdW5jdGlvbiBWNChjKXtjb25zdCBsPXM4KCk7cmV0dXJuIGw/WWsobC5zYW5pdGl6ZShQNS5IVE1MLGMpfHwiIik6SDQoYywiSFRNTCIpP1lrKHkyKGMpKTpmdW5jdGlvbiBWQihjLGwpe2xldCBhPW51bGw7dHJ5e3F2PXF2fHxmdW5j'@; put 'dGlvbiBaQyhjKXtjb25zdCBsPW5ldyBJQihjKTtyZXR1cm4gZnVuY3Rpb24gSmsoKXt0cnl7cmV0dXJuISEobmV3IHdpbmRvdy5ET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZyhMNSgiIiksInRleHQvaHRtbCIpfWNhdGNoe3JldHVybiExfX0oKT9uZXcgcWsobCk6bH0oYyk7bGV0IGQ9bD9T'@; put 'dHJpbmcobCk6IiI7YT1xdi5nZXRJbmVydEJvZHlFbGVtZW50KGQpO2xldCBoPTUsZj1kO2Rve2lmKDA9PT1oKXRocm93IG5ldyBFcnJvcigiRmFpbGVkIHRvIHNhbml0aXplIGh0bWwgYmVjYXVzZSB0aGUgaW5wdXQgaXMgdW5zdGFibGUiKTtoLS0sZD1mLGY9YS5pbm5lckhUTUwsYT1xdi5n'@; put 'ZXRJbmVydEJvZHlFbGVtZW50KGQpfXdoaWxlKGQhPT1mKTtyZXR1cm4gTDUoKG5ldyByRCkuc2FuaXRpemVDaGlsZHJlbigkQyhhKXx8YSkpfWZpbmFsbHl7aWYoYSl7Y29uc3QgZD0kQyhhKXx8YTtmb3IoO2QuZmlyc3RDaGlsZDspZC5yZW1vdmVDaGlsZChkLmZpcnN0Q2hpbGQpfX19KEcz'@; put 'KCksU2EoYykpfWZ1bmN0aW9uIEtDKGMpe2NvbnN0IGw9czgoKTtyZXR1cm4gbD9sLnNhbml0aXplKFA1LlVSTCxjKXx8IiI6SDQoYywiVVJMIik/eTIoYyk6V0MoU2EoYykpfWZ1bmN0aW9uIG9EKGMpe2NvbnN0IGw9czgoKTtpZihsKXJldHVybiAkayhsLnNhbml0aXplKFA1LlJFU09VUkNF'@; put 'X1VSTCxjKXx8IiIpO2lmKEg0KGMsIlJlc291cmNlVVJMIikpcmV0dXJuICRrKHkyKGMpKTt0aHJvdyBuZXcgbnIoOTA0LCExKX1mdW5jdGlvbiBzOCgpe2NvbnN0IGM9Y2koKTtyZXR1cm4gYyYmY1tPMV0uc2FuaXRpemVyfWNvbnN0IFlCPS9ePnxeLT58PCEtLXwtLT58LS0hPnw8IS0kL2cs'@; put 'R0I9Lyg8fD4pL2csJEI9Ilx1MjAwYiQxXHUyMDBiIjtmdW5jdGlvbiB0UyhjKXtyZXR1cm4gYy5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fWZ1bmN0aW9uIEszKGMpe3JldHVybiBjLm93bmVyRG9jdW1lbnR9ZnVuY3Rpb24gSDEoYyl7cmV0dXJuIGMgaW5zdGFuY2VvZiBGdW5jdGlvbj9j'@; put 'KCk6Y312YXIgWDM9ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5JbXBvcnRhbnQ9MV09IkltcG9ydGFudCIsY1tjLkRhc2hDYXNlPTJdPSJEYXNoQ2FzZSIsY30oWDN8fHt9KTtsZXQgblM7ZnVuY3Rpb24gclMoYyxsKXtyZXR1cm4gblMoYyxsKX1mdW5jdGlvbiBINShjLGwsYSxkLGgpe2lmKG51'@; put 'bGwhPWQpe2xldCBmLHY9ITE7T3UoZCk/Zj1kOkx1KGQpJiYodj0hMCxkPWRbQmxdKTtjb25zdCBNPV9sKGQpOzA9PT1jJiZudWxsIT09YT9udWxsPT1oP255KGwsYSxNKTpaNChsLGEsTSxofHxudWxsLCEwKToxPT09YyYmbnVsbCE9PWE/WjQobCxhLE0saHx8bnVsbCwhMCk6Mj09PWM/ZnVu'@; put 'Y3Rpb24gZDgoYyxsLGEpe2NvbnN0IGQ9cTMoYyxsKTtkJiZmdW5jdGlvbiBsOChjLGwsYSxkKXtjLnJlbW92ZUNoaWxkKGwsYSxkKX0oYyxkLGwsYSl9KGwsTSx2KTozPT09YyYmbC5kZXN0cm95Tm9kZShNKSxudWxsIT1mJiZmdW5jdGlvbiBzaihjLGwsYSxkLGgpe2NvbnN0IGY9YVtmdV07'@; put 'ZiE9PV9sKGEpJiZINShsLGMsZCxmLGgpO2ZvcihsZXQgTT1mYztNPGEubGVuZ3RoO00rKyl7Y29uc3QgST1hW01dO3J5KElbWGldLEksYyxsLGQsZil9fShsLGMsZixhLGgpfX1mdW5jdGlvbiBhUyhjLGwpe3JldHVybiBjLmNyZWF0ZUNvbW1lbnQoZnVuY3Rpb24gRjUoYyl7cmV0dXJuIGMu'@; put 'cmVwbGFjZShZQixsPT5sLnJlcGxhY2UoR0IsJEIpKX0obCkpfWZ1bmN0aW9uIHo0KGMsbCxhKXtyZXR1cm4gYy5jcmVhdGVFbGVtZW50KGwsYSl9ZnVuY3Rpb24gbUQoYyxsKXtsW08xXS5jaGFuZ2VEZXRlY3Rpb25TY2hlZHVsZXI/Lm5vdGlmeSgxKSxyeShjLGwsbFt2c10sMixudWxsLG51'@; put 'bGwpfWZ1bmN0aW9uIG9TKGMsbCl7Y29uc3QgYT1jW0IzXSxkPWEuaW5kZXhPZihsKTthLnNwbGljZShkLDEpfWZ1bmN0aW9uIG84KGMsbCl7aWYoYy5sZW5ndGg8PWZjKXJldHVybjtjb25zdCBhPWZjK2wsZD1jW2FdO2lmKGQpe2NvbnN0IGg9ZFtTNF07bnVsbCE9PWgmJmghPT1jJiZvUyho'@; put 'LGQpLGw+MCYmKGNbYS0xXVtGY109ZFtGY10pO2NvbnN0IGY9SXUoYyxmYytsKTshZnVuY3Rpb24gZ0QoYyxsKXttRChjLGwpLGxbQmxdPW51bGwsbFtuY109bnVsbH0oZFtYaV0sZCk7Y29uc3Qgdj1mW2hkXTtudWxsIT09diYmdi5kZXRhY2hWaWV3KGZbWGldKSxkW2RjXT1udWxsLGRbRmNd'@; put 'PW51bGwsZFtXYV0mPS0xMjl9cmV0dXJuIGR9ZnVuY3Rpb24gVTQoYyxsKXtpZighKDI1NiZsW1dhXSkpe2NvbnN0IGE9bFt2c107YS5kZXN0cm95Tm9kZSYmcnkoYyxsLGEsMyxudWxsLG51bGwpLGZ1bmN0aW9uIG5qKGMpe2xldCBsPWNbQWZdO2lmKCFsKXJldHVybiBsUyhjW1hpXSxjKTtm'@; put 'b3IoO2w7KXtsZXQgYT1udWxsO2lmKEx1KGwpKWE9bFtBZl07ZWxzZXtjb25zdCBkPWxbZmNdO2QmJihhPWQpfWlmKCFhKXtmb3IoO2wmJiFsW0ZjXSYmbCE9PWM7KUx1KGwpJiZsUyhsW1hpXSxsKSxsPWxbZGNdO251bGw9PT1sJiYobD1jKSxMdShsKSYmbFMobFtYaV0sbCksYT1sJiZsW0Zj'@; put 'XX1sPWF9fShsKX19ZnVuY3Rpb24gbFMoYyxsKXtpZigyNTYmbFtXYV0pcmV0dXJuO2NvbnN0IGE9X2UobnVsbCk7dHJ5e2xbV2FdJj0tMTI5LGxbV2FdfD0yNTYsbFtEZl0mJmZ1bmN0aW9uIEEoYyl7aWYod2UoYyksbGUoYykpZm9yKGxldCBsPTA7bDxjLnByb2R1Y2VyTm9kZS5sZW5ndGg7'@; put 'bCsrKW5lKGMucHJvZHVjZXJOb2RlW2xdLGMucHJvZHVjZXJJbmRleE9mVGhpc1tsXSk7Yy5wcm9kdWNlck5vZGUubGVuZ3RoPWMucHJvZHVjZXJMYXN0UmVhZFZlcnNpb24ubGVuZ3RoPWMucHJvZHVjZXJJbmRleE9mVGhpcy5sZW5ndGg9MCxjLmxpdmVDb25zdW1lck5vZGUmJihjLmxpdmVD'@; put 'b25zdW1lck5vZGUubGVuZ3RoPWMubGl2ZUNvbnN1bWVySW5kZXhPZlRoaXMubGVuZ3RoPTApfShsW0RmXSksZnVuY3Rpb24gaWooYyxsKXtsZXQgYTtpZihudWxsIT1jJiZudWxsIT0oYT1jLmRlc3Ryb3lIb29rcykpZm9yKGxldCBkPTA7ZDxhLmxlbmd0aDtkKz0yKXtjb25zdCBoPWxbYVtk'@; put 'XV07aWYoIShoIGluc3RhbmNlb2YgRjEpKXtjb25zdCBmPWFbZCsxXTtpZihBcnJheS5pc0FycmF5KGYpKWZvcihsZXQgdj0wO3Y8Zi5sZW5ndGg7dis9Mil7Y29uc3QgTT1oW2Zbdl1dLEk9Zlt2KzFdO2gyKDQsTSxJKTt0cnl7SS5jYWxsKE0pfWZpbmFsbHl7aDIoNSxNLEkpfX1lbHNle2gy'@; put 'KDQsaCxmKTt0cnl7Zi5jYWxsKGgpfWZpbmFsbHl7aDIoNSxoLGYpfX19fX0oYyxsKSxmdW5jdGlvbiB2RChjLGwpe2NvbnN0IGE9Yy5jbGVhbnVwLGQ9bFtYMF07aWYobnVsbCE9PWEpZm9yKGxldCBmPTA7ZjxhLmxlbmd0aC0xO2YrPTIpaWYoInN0cmluZyI9PXR5cGVvZiBhW2ZdKXtjb25z'@; put 'dCB2PWFbZiszXTt2Pj0wP2Rbdl0oKTpkWy12XS51bnN1YnNjcmliZSgpLGYrPTJ9ZWxzZSBhW2ZdLmNhbGwoZFthW2YrMV1dKTtudWxsIT09ZCYmKGxbWDBdPW51bGwpO2NvbnN0IGg9bFtsMl07aWYobnVsbCE9PWgpe2xbbDJdPW51bGw7Zm9yKGxldCBmPTA7ZjxoLmxlbmd0aDtmKyspKDAs'@; put 'aFtmXSkoKX19KGMsbCksMT09PWxbWGldLnR5cGUmJmxbdnNdLmRlc3Ryb3koKTtjb25zdCBkPWxbUzRdO2lmKG51bGwhPT1kJiZPdShsW2RjXSkpe2QhPT1sW2RjXSYmb1MoZCxsKTtjb25zdCBoPWxbaGRdO251bGwhPT1oJiZoLmRldGFjaFZpZXcoYyl9IWZ1bmN0aW9uIEtWKGMpe0FDLmRl'@; put 'bGV0ZShjW3kwXSl9KGwpfWZpbmFsbHl7X2UoYSl9fWZ1bmN0aW9uIHR5KGMsbCxhKXtyZXR1cm4gZnVuY3Rpb24gY1MoYyxsLGEpe2xldCBkPWw7Zm9yKDtudWxsIT09ZCYmNDAmZC50eXBlOylkPShsPWQpLnBhcmVudDtpZihudWxsPT09ZClyZXR1cm4gYVtCbF07e2NvbnN0e2NvbXBvbmVu'@; put 'dE9mZnNldDpofT1kO2lmKGg+LTEpe2NvbnN0e2VuY2Fwc3VsYXRpb246Zn09Yy5kYXRhW2QuZGlyZWN0aXZlU3RhcnQraF07aWYoZj09PXFvLk5vbmV8fGY9PT1xby5FbXVsYXRlZClyZXR1cm4gbnVsbH1yZXR1cm4gSTAoZCxhKX19KGMsbC5wYXJlbnQsYSl9ZnVuY3Rpb24gWjQoYyxsLGEs'@; put 'ZCxoKXtjLmluc2VydEJlZm9yZShsLGEsZCxoKX1mdW5jdGlvbiBueShjLGwsYSl7Yy5hcHBlbmRDaGlsZChsLGEpfWZ1bmN0aW9uIHlEKGMsbCxhLGQsaCl7bnVsbCE9PWQ/WjQoYyxsLGEsZCxoKTpueShjLGwsYSl9ZnVuY3Rpb24gcTMoYyxsKXtyZXR1cm4gYy5wYXJlbnROb2RlKGwpfWZ1'@; put 'bmN0aW9uIHU4KGMsbCxhKXtyZXR1cm4gSjMoYyxsLGEpfWxldCBoUyxKMz1mdW5jdGlvbiBkUyhjLGwsYSl7cmV0dXJuIDQwJmMudHlwZT9JMChjLGEpOm51bGx9O2Z1bmN0aW9uIHMwKGMsbCxhLGQpe2NvbnN0IGg9dHkoYyxkLGwpLGY9bFt2c10sTT11OChkLnBhcmVudHx8bFtuY10sZCxs'@; put 'KTtpZihudWxsIT1oKWlmKEFycmF5LmlzQXJyYXkoYSkpZm9yKGxldCBJPTA7STxhLmxlbmd0aDtJKyspeUQoZixoLGFbSV0sTSwhMSk7ZWxzZSB5RChmLGgsYSxNLCExKTt2b2lkIDAhPT1oUyYmaFMoZixkLGwsYSxoKX1mdW5jdGlvbiBRMyhjLGwpe2lmKG51bGwhPT1sKXtjb25zdCBhPWwu'@; put 'dHlwZTtpZigzJmEpcmV0dXJuIEkwKGwsYyk7aWYoNCZhKXJldHVybiBwUygtMSxjW2wuaW5kZXhdKTtpZig4JmEpe2NvbnN0IGQ9bC5jaGlsZDtpZihudWxsIT09ZClyZXR1cm4gUTMoYyxkKTt7Y29uc3QgaD1jW2wuaW5kZXhdO3JldHVybiBPdShoKT9wUygtMSxoKTpfbChoKX19aWYoMzIm'@; put 'YSlyZXR1cm4gclMobCxjKSgpfHxfbChjW2wuaW5kZXhdKTt7Y29uc3QgZD1iRChjLGwpO3JldHVybiBudWxsIT09ZD9BcnJheS5pc0FycmF5KGQpP2RbMF06UTMoVDQoY1tqbF0pLGQpOlEzKGMsbC5uZXh0KX19cmV0dXJuIG51bGx9ZnVuY3Rpb24gYkQoYyxsKXtyZXR1cm4gbnVsbCE9PWw/'@; put 'Y1tqbF1bbmNdLnByb2plY3Rpb25bbC5wcm9qZWN0aW9uXTpudWxsfWZ1bmN0aW9uIHBTKGMsbCl7Y29uc3QgYT1mYytjKzE7aWYoYTxsLmxlbmd0aCl7Y29uc3QgZD1sW2FdLGg9ZFtYaV0uZmlyc3RDaGlsZDtpZihudWxsIT09aClyZXR1cm4gUTMoZCxoKX1yZXR1cm4gbFtmdV19ZnVuY3Rp'@; put 'b24gZ1MoYyxsLGEsZCxoLGYsdil7Zm9yKDtudWxsIT1hOyl7Y29uc3QgTT1kW2EuaW5kZXhdLEk9YS50eXBlO2lmKHYmJjA9PT1sJiYoTSYmTnUoX2woTSksZCksYS5mbGFnc3w9MiksMzImfmEuZmxhZ3MpaWYoOCZJKWdTKGMsbCxhLmNoaWxkLGQsaCxmLCExKSxINShsLGMsaCxNLGYpO2Vs'@; put 'c2UgaWYoMzImSSl7Y29uc3QgRz1yUyhhLGQpO2xldCByZTtmb3IoO3JlPUcoKTspSDUobCxjLGgscmUsZik7SDUobCxjLGgsTSxmKX1lbHNlIDE2Jkk/d0QoYyxsLGQsYSxoLGYpOkg1KGwsYyxoLE0sZik7YT12P2EucHJvamVjdGlvbk5leHQ6YS5uZXh0fX1mdW5jdGlvbiByeShjLGwsYSxk'@; put 'LGgsZil7Z1MoYSxkLGMuZmlyc3RDaGlsZCxsLGgsZiwhMSl9ZnVuY3Rpb24gd0QoYyxsLGEsZCxoLGYpe2NvbnN0IHY9YVtqbF0sST12W25jXS5wcm9qZWN0aW9uW2QucHJvamVjdGlvbl07aWYoQXJyYXkuaXNBcnJheShJKSlmb3IobGV0IEc9MDtHPEkubGVuZ3RoO0crKylINShsLGMsaCxJ'@; put 'W0ddLGYpO2Vsc2V7bGV0IEc9STtjb25zdCByZT12W2RjXTtCdihkKSYmKEcuZmxhZ3N8PTEyOCksZ1MoYyxsLEcscmUsaCxmLCEwKX19ZnVuY3Rpb24gTUQoYyxsLGEpeyIiPT09YT9jLnJlbW92ZUF0dHJpYnV0ZShsLCJjbGFzcyIpOmMuc2V0QXR0cmlidXRlKGwsImNsYXNzIixhKX1mdW5j'@; put 'dGlvbiB4RChjLGwsYSl7Y29uc3R7bWVyZ2VkQXR0cnM6ZCxjbGFzc2VzOmgsc3R5bGVzOmZ9PWE7bnVsbCE9PWQmJm00KGMsbCxkKSxudWxsIT09aCYmTUQoYyxsLGgpLG51bGwhPT1mJiZmdW5jdGlvbiBTRChjLGwsYSl7Yy5zZXRBdHRyaWJ1dGUobCwic3R5bGUiLGEpfShjLGwsZil9Y29u'@; put 'c3QgTHM9e307ZnVuY3Rpb24gZmUoYz0xKXttUyhzbygpLGNpKCksRnUoKStjLCExKX1mdW5jdGlvbiBtUyhjLGwsYSxkKXtpZighZClpZigzJn5sW1dhXSl7Y29uc3QgZj1jLnByZU9yZGVySG9va3M7bnVsbCE9PWYmJkR2KGwsZiwwLGEpfWVsc2V7Y29uc3QgZj1jLnByZU9yZGVyQ2hlY2tI'@; put 'b29rcztudWxsIT09ZiYma3YobCxmLGEpfUE0KGEpfWZ1bmN0aW9uICRlKGMsbD1yYS5EZWZhdWx0KXtjb25zdCBhPWNpKCk7cmV0dXJuIG51bGw9PT1hP0NyKGMsbCk6Z2sob2woKSxhLEdpKGMpLGwpfWZ1bmN0aW9uIFREKGMsbCxhLGQsaCxmKXtjb25zdCB2PV9lKG51bGwpO3RyeXtsZXQg'@; put 'TT1udWxsO2gmVm4uU2lnbmFsQmFzZWQmJihNPWxbZF1bZ2VdKSxudWxsIT09TSYmdm9pZCAwIT09TS50cmFuc2Zvcm1GbiYmKGY9TS50cmFuc2Zvcm1GbihmKSksaCZWbi5IYXNEZWNvcmF0b3JJbnB1dFRyYW5zZm9ybSYmKGY9Yy5pbnB1dFRyYW5zZm9ybXNbZF0uY2FsbChsLGYpKSxudWxs'@; put 'IT09Yy5zZXRJbnB1dD9jLnNldElucHV0KGwsTSxmLGEsZCk6S0EobCxNLGQsZil9ZmluYWxseXtfZSh2KX19ZnVuY3Rpb24gaXkoYyxsLGEsZCxoLGYsdixNLEksRyxyZSl7Y29uc3QgdWU9bC5ibHVlcHJpbnQuc2xpY2UoKTtyZXR1cm4gdWVbQmxdPWgsdWVbV2FdPTIwNHxkLChudWxsIT09'@; put 'R3x8YyYmMjA0OCZjW1dhXSkmJih1ZVtXYV18PTIwNDgpLGFDKHVlKSx1ZVtkY109dWVbcjBdPWMsdWVbc2xdPWEsdWVbTzFdPXZ8fGMmJmNbTzFdLHVlW3ZzXT1NfHxjJiZjW3ZzXSx1ZVtoY109SXx8YyYmY1toY118fG51bGwsdWVbbmNdPWYsdWVbeTBdPWZ1bmN0aW9uIEdWKCl7cmV0dXJu'@; put 'IFlWKyt9KCksdWVbUWNdPXJlLHVlW28yXT1HLHVlW2psXT0yPT1sLnR5cGU/Y1tqbF06dWUsdWV9ZnVuY3Rpb24gTjUoYyxsLGEsZCxoKXtsZXQgZj1jLmRhdGFbbF07aWYobnVsbD09PWYpZj1mdW5jdGlvbiB2UyhjLGwsYSxkLGgpe2NvbnN0IGY9bEMoKSx2PWNDKCksST1jLmRhdGFbbF09'@; put 'ZnVuY3Rpb24gTEQoYyxsLGEsZCxoLGYpe2xldCB2PWw/bC5pbmplY3RvckluZGV4Oi0xLE09MDtyZXR1cm4gdjUoKSYmKE18PTEyOCkse3R5cGU6YSxpbmRleDpkLGluc2VydEJlZm9yZUluZGV4Om51bGwsaW5qZWN0b3JJbmRleDp2LGRpcmVjdGl2ZVN0YXJ0Oi0xLGRpcmVjdGl2ZUVuZDot'@; put 'MSxkaXJlY3RpdmVTdHlsaW5nTGFzdDotMSxjb21wb25lbnRPZmZzZXQ6LTEscHJvcGVydHlCaW5kaW5nczpudWxsLGZsYWdzOk0scHJvdmlkZXJJbmRleGVzOjAsdmFsdWU6aCxhdHRyczpmLG1lcmdlZEF0dHJzOm51bGwsbG9jYWxOYW1lczpudWxsLGluaXRpYWxJbnB1dHM6dm9pZCAwLGlu'@; put 'cHV0czpudWxsLG91dHB1dHM6bnVsbCx0VmlldzpudWxsLG5leHQ6bnVsbCxwcmV2Om51bGwscHJvamVjdGlvbk5leHQ6bnVsbCxjaGlsZDpudWxsLHBhcmVudDpsLHByb2plY3Rpb246bnVsbCxzdHlsZXM6bnVsbCxzdHlsZXNXaXRob3V0SG9zdDpudWxsLHJlc2lkdWFsU3R5bGVzOnZvaWQg'@; put 'MCxjbGFzc2VzOm51bGwsY2xhc3Nlc1dpdGhvdXRIb3N0Om51bGwscmVzaWR1YWxDbGFzc2VzOnZvaWQgMCxjbGFzc0JpbmRpbmdzOjAsc3R5bGVCaW5kaW5nczowfX0oMCx2P2Y6ZiYmZi5wYXJlbnQsYSxsLGQsaCk7cmV0dXJuIG51bGw9PT1jLmZpcnN0Q2hpbGQmJihjLmZpcnN0Q2hpbGQ9'@; put 'SSksbnVsbCE9PWYmJih2P251bGw9PWYuY2hpbGQmJm51bGwhPT1JLnBhcmVudCYmKGYuY2hpbGQ9SSk6bnVsbD09PWYubmV4dCYmKGYubmV4dD1JLEkucHJldj1mKSksSX0oYyxsLGEsZCxoKSxmdW5jdGlvbiBDVigpe3JldHVybiB3cy5sRnJhbWUuaW5JMThufSgpJiYoZi5mbGFnc3w9MzIp'@; put 'O2Vsc2UgaWYoNjQmZi50eXBlKXtmLnR5cGU9YSxmLnZhbHVlPWQsZi5hdHRycz1oO2NvbnN0IHY9ZnVuY3Rpb24gJDYoKXtjb25zdCBjPXdzLmxGcmFtZSxsPWMuY3VycmVudFROb2RlO3JldHVybiBjLmlzUGFyZW50P2w6bC5wYXJlbnR9KCk7Zi5pbmplY3RvckluZGV4PW51bGw9PT12Py0x'@; put 'OnYuaW5qZWN0b3JJbmRleH1yZXR1cm4gcDIoZiwhMCksZn1mdW5jdGlvbiBoOChjLGwsYSxkKXtpZigwPT09YSlyZXR1cm4tMTtjb25zdCBoPWwubGVuZ3RoO2ZvcihsZXQgZj0wO2Y8YTtmKyspbC5wdXNoKGQpLGMuYmx1ZXByaW50LnB1c2goZCksYy5kYXRhLnB1c2gobnVsbCk7cmV0dXJu'@; put 'IGh9ZnVuY3Rpb24gQUQoYyxsLGEsZCxoKXtjb25zdCBmPUZ1KCksdj0yJmQ7dHJ5e0E0KC0xKSx2JiZsLmxlbmd0aD5fcyYmbVMoYyxsLF9zLCExKSxoMih2PzI6MCxoKSxhKGQsaCl9ZmluYWxseXtBNChmKSxoMih2PzM6MSxoKX19ZnVuY3Rpb24geVMoYyxsLGEpe2lmKGV1KGwpKXtjb25z'@; put 'dCBkPV9lKG51bGwpO3RyeXtjb25zdCBmPWwuZGlyZWN0aXZlRW5kO2ZvcihsZXQgdj1sLmRpcmVjdGl2ZVN0YXJ0O3Y8Zjt2Kyspe2NvbnN0IE09Yy5kYXRhW3ZdO00uY29udGVudFF1ZXJpZXMmJk0uY29udGVudFF1ZXJpZXMoMSxhW3ZdLHYpfX1maW5hbGx5e19lKGQpfX19ZnVuY3Rpb24g'@; put 'YlMoYyxsLGEpe2lrKCkmJihmdW5jdGlvbiBtaihjLGwsYSxkKXtjb25zdCBoPWEuZGlyZWN0aXZlU3RhcnQsZj1hLmRpcmVjdGl2ZUVuZDtJZihhKSYmZnVuY3Rpb24gQ2ooYyxsLGEpe2NvbnN0IGQ9STAobCxjKSxoPWF5KGEpO2xldCB2PTE2O2Euc2lnbmFscz92PTQwOTY6YS5vblB1c2gm'@; put 'Jih2PTY0KTtjb25zdCBNPWY4KGMsaXkoYyxoLG51bGwsdixkLGwsbnVsbCxjW08xXS5yZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIoZCxhKSxudWxsLG51bGwsbnVsbCkpO2NbbC5pbmRleF09TX0obCxhLGMuZGF0YVtoK2EuY29tcG9uZW50T2Zmc2V0XSksYy5maXJzdENyZWF0ZVBh'@; put 'c3N8fE92KGEsbCksTnUoZCxsKTtjb25zdCB2PWEuaW5pdGlhbElucHV0cztmb3IobGV0IE09aDtNPGY7TSsrKXtjb25zdCBJPWMuZGF0YVtNXSxHPUQ0KGwsYyxNLGEpO051KEcsbCksbnVsbCE9PXYmJnN5KDAsTS1oLEcsSSwwLHYpLEhjKEkpJiYoUDEoYS5pbmRleCxsKVtzbF09RDQobCxj'@; put 'LE0sYSkpfX0oYyxsLGEsSTAoYSxsKSksISg2NCZ+YS5mbGFncykmJkhEKGMsbCxhKSl9ZnVuY3Rpb24gX1MoYyxsLGE9STApe2NvbnN0IGQ9bC5sb2NhbE5hbWVzO2lmKG51bGwhPT1kKXtsZXQgaD1sLmluZGV4KzE7Zm9yKGxldCBmPTA7ZjxkLmxlbmd0aDtmKz0yKXtjb25zdCB2PWRbZisx'@; put 'XSxNPS0xPT09dj9hKGwsYyk6Y1t2XTtjW2grK109TX19fWZ1bmN0aW9uIGF5KGMpe2NvbnN0IGw9Yy50VmlldztyZXR1cm4gbnVsbD09PWx8fGwuaW5jb21wbGV0ZUZpcnN0UGFzcz9jLnRWaWV3PXdTKDEsbnVsbCxjLnRlbXBsYXRlLGMuZGVjbHMsYy52YXJzLGMuZGlyZWN0aXZlRGVmcyxj'@; put 'LnBpcGVEZWZzLGMudmlld1F1ZXJ5LGMuc2NoZW1hcyxjLmNvbnN0cyxjLmlkKTpsfWZ1bmN0aW9uIHdTKGMsbCxhLGQsaCxmLHYsTSxJLEcscmUpe2NvbnN0IHVlPV9zK2QseWU9dWUraCxFZT1mdW5jdGlvbiBsaihjLGwpe2NvbnN0IGE9W107Zm9yKGxldCBkPTA7ZDxsO2QrKylhLnB1c2go'@; put 'ZDxjP251bGw6THMpO3JldHVybiBhfSh1ZSx5ZSksQmU9ImZ1bmN0aW9uIj09dHlwZW9mIEc/RygpOkc7cmV0dXJuIEVlW1hpXT17dHlwZTpjLGJsdWVwcmludDpFZSx0ZW1wbGF0ZTphLHF1ZXJpZXM6bnVsbCx2aWV3UXVlcnk6TSxkZWNsVE5vZGU6bCxkYXRhOkVlLnNsaWNlKCkuZmlsbChu'@; put 'dWxsLHVlKSxiaW5kaW5nU3RhcnRJbmRleDp1ZSxleHBhbmRvU3RhcnRJbmRleDp5ZSxob3N0QmluZGluZ09wQ29kZXM6bnVsbCxmaXJzdENyZWF0ZVBhc3M6ITAsZmlyc3RVcGRhdGVQYXNzOiEwLHN0YXRpY1ZpZXdRdWVyaWVzOiExLHN0YXRpY0NvbnRlbnRRdWVyaWVzOiExLHByZU9yZGVy'@; put 'SG9va3M6bnVsbCxwcmVPcmRlckNoZWNrSG9va3M6bnVsbCxjb250ZW50SG9va3M6bnVsbCxjb250ZW50Q2hlY2tIb29rczpudWxsLHZpZXdIb29rczpudWxsLHZpZXdDaGVja0hvb2tzOm51bGwsZGVzdHJveUhvb2tzOm51bGwsY2xlYW51cDpudWxsLGNvbnRlbnRRdWVyaWVzOm51bGwsY29t'@; put 'cG9uZW50czpudWxsLGRpcmVjdGl2ZVJlZ2lzdHJ5OiJmdW5jdGlvbiI9PXR5cGVvZiBmP2YoKTpmLHBpcGVSZWdpc3RyeToiZnVuY3Rpb24iPT10eXBlb2Ygdj92KCk6dixmaXJzdENoaWxkOm51bGwsc2NoZW1hczpJLGNvbnN0czpCZSxpbmNvbXBsZXRlRmlyc3RQYXNzOiExLHNzcklkOnJl'@; put 'fX1sZXQga0Q9KCk9Pm51bGw7ZnVuY3Rpb24gT0QoYyxsLGEsZCxoKXtmb3IobGV0IGYgaW4gbCl7aWYoIWwuaGFzT3duUHJvcGVydHkoZikpY29udGludWU7Y29uc3Qgdj1sW2ZdO2lmKHZvaWQgMD09PXYpY29udGludWU7ZD8/PXt9O2xldCBNLEk9Vm4uTm9uZTtBcnJheS5pc0FycmF5KHYp'@; put 'PyhNPXZbMF0sST12WzFdKTpNPXY7bGV0IEc9ZjtpZihudWxsIT09aCl7aWYoIWguaGFzT3duUHJvcGVydHkoZikpY29udGludWU7Rz1oW2ZdfTA9PT1jP1BEKGQsYSxHLE0sSSk6UEQoZCxhLEcsTSl9cmV0dXJuIGR9ZnVuY3Rpb24gUEQoYyxsLGEsZCxoKXtsZXQgZjtjLmhhc093blByb3Bl'@; put 'cnR5KGEpPyhmPWNbYV0pLnB1c2gobCxkKTpmPWNbYV09W2wsZF0sdm9pZCAwIT09aCYmZi5wdXNoKGgpfWZ1bmN0aW9uIE8wKGMsbCxhLGQsaCxmLHYsTSl7Y29uc3QgST1JMChsLGEpO2xldCByZSxHPWwuaW5wdXRzOyFNJiZudWxsIT1HJiYocmU9R1tkXSk/KFRTKGMsYSxyZSxkLGgpLElm'@; put 'KGwpJiZmdW5jdGlvbiBmaihjLGwpe2NvbnN0IGE9UDEobCxjKTsxNiZhW1dhXXx8KGFbV2FdfD02NCl9KGEsbC5pbmRleCkpOjMmbC50eXBlJiYoZD1mdW5jdGlvbiBoaihjKXtyZXR1cm4iY2xhc3MiPT09Yz8iY2xhc3NOYW1lIjoiZm9yIj09PWM/Imh0bWxGb3IiOiJmb3JtYWN0aW9uIj09'@; put 'PWM/ImZvcm1BY3Rpb24iOiJpbm5lckh0bWwiPT09Yz8iaW5uZXJIVE1MIjoicmVhZG9ubHkiPT09Yz8icmVhZE9ubHkiOiJ0YWJpbmRleCI9PT1jPyJ0YWJJbmRleCI6Y30oZCksaD1udWxsIT12P3YoaCxsLnZhbHVlfHwiIixkKTpoLGYuc2V0UHJvcGVydHkoSSxkLGgpKX1mdW5jdGlvbiBD'@; put 'UyhjLGwsYSxkKXtpZihpaygpKXtjb25zdCBoPW51bGw9PT1kP251bGw6eyIiOi0xfSxmPWZ1bmN0aW9uIHZqKGMsbCl7Y29uc3QgYT1jLmRpcmVjdGl2ZVJlZ2lzdHJ5O2xldCBkPW51bGwsaD1udWxsO2lmKGEpZm9yKGxldCBmPTA7ZjxhLmxlbmd0aDtmKyspe2NvbnN0IHY9YVtmXTtpZih5'@; put 'NChsLHYuc2VsZWN0b3JzLCExKSlpZihkfHwoZD1bXSksSGModikpaWYobnVsbCE9PXYuZmluZEhvc3REaXJlY3RpdmVEZWZzKXtjb25zdCBNPVtdO2g9aHx8bmV3IE1hcCx2LmZpbmRIb3N0RGlyZWN0aXZlRGVmcyh2LE0saCksZC51bnNoaWZ0KC4uLk0sdiksTVMoYyxsLE0ubGVuZ3RoKX1l'@; put 'bHNlIGQudW5zaGlmdCh2KSxNUyhjLGwsMCk7ZWxzZSBoPWh8fG5ldyBNYXAsdi5maW5kSG9zdERpcmVjdGl2ZURlZnM/Lih2LGQsaCksZC5wdXNoKHYpfXJldHVybiBudWxsPT09ZD9udWxsOltkLGhdfShjLGEpO2xldCB2LE07bnVsbD09PWY/dj1NPW51bGw6W3YsTV09ZixudWxsIT09diYm'@; put 'U1MoYyxsLGEsdixoLE0pLGgmJmZ1bmN0aW9uIHlqKGMsbCxhKXtpZihsKXtjb25zdCBkPWMubG9jYWxOYW1lcz1bXTtmb3IobGV0IGg9MDtoPGwubGVuZ3RoO2grPTIpe2NvbnN0IGY9YVtsW2grMV1dO2lmKG51bGw9PWYpdGhyb3cgbmV3IG5yKC0zMDEsITEpO2QucHVzaChsW2hdLGYpfX19'@; put 'KGEsZCxoKX1hLm1lcmdlZEF0dHJzPUNmKGEubWVyZ2VkQXR0cnMsYS5hdHRycyl9ZnVuY3Rpb24gU1MoYyxsLGEsZCxoLGYpe2ZvcihsZXQgRz0wO0c8ZC5sZW5ndGg7RysrKXBkKE92KGEsbCksYyxkW0ddLnR5cGUpOyFmdW5jdGlvbiBfaihjLGwsYSl7Yy5mbGFnc3w9MSxjLmRpcmVjdGl2'@; put 'ZVN0YXJ0PWwsYy5kaXJlY3RpdmVFbmQ9bCthLGMucHJvdmlkZXJJbmRleGVzPWx9KGEsYy5kYXRhLmxlbmd0aCxkLmxlbmd0aCk7Zm9yKGxldCBHPTA7RzxkLmxlbmd0aDtHKyspe2NvbnN0IHJlPWRbR107cmUucHJvdmlkZXJzUmVzb2x2ZXImJnJlLnByb3ZpZGVyc1Jlc29sdmVyKHJlKX1s'@; put 'ZXQgdj0hMSxNPSExLEk9aDgoYyxsLGQubGVuZ3RoLG51bGwpO2ZvcihsZXQgRz0wO0c8ZC5sZW5ndGg7RysrKXtjb25zdCByZT1kW0ddO2EubWVyZ2VkQXR0cnM9Q2YoYS5tZXJnZWRBdHRycyxyZS5ob3N0QXR0cnMpLHdqKGMsYSxsLEkscmUpLGJqKEkscmUsaCksbnVsbCE9PXJlLmNvbnRl'@; put 'bnRRdWVyaWVzJiYoYS5mbGFnc3w9NCksKG51bGwhPT1yZS5ob3N0QmluZGluZ3N8fG51bGwhPT1yZS5ob3N0QXR0cnN8fDAhPT1yZS5ob3N0VmFycykmJihhLmZsYWdzfD02NCk7Y29uc3QgdWU9cmUudHlwZS5wcm90b3R5cGU7IXYmJih1ZS5uZ09uQ2hhbmdlc3x8dWUubmdPbkluaXR8fHVl'@; put 'Lm5nRG9DaGVjaykmJigoYy5wcmVPcmRlckhvb2tzPz89W10pLnB1c2goYS5pbmRleCksdj0hMCksIU0mJih1ZS5uZ09uQ2hhbmdlc3x8dWUubmdEb0NoZWNrKSYmKChjLnByZU9yZGVyQ2hlY2tIb29rcz8/PVtdKS5wdXNoKGEuaW5kZXgpLE09ITApLEkrK30hZnVuY3Rpb24gZGooYyxsLGEp'@; put 'e2NvbnN0IGg9bC5kaXJlY3RpdmVFbmQsZj1jLmRhdGEsdj1sLmF0dHJzLE09W107bGV0IEk9bnVsbCxHPW51bGw7Zm9yKGxldCByZT1sLmRpcmVjdGl2ZVN0YXJ0O3JlPGg7cmUrKyl7Y29uc3QgdWU9ZltyZV0seWU9YT9hLmdldCh1ZSk6bnVsbCxCZT15ZT95ZS5vdXRwdXRzOm51bGw7ST1P'@; put 'RCgwLHVlLmlucHV0cyxyZSxJLHllP3llLmlucHV0czpudWxsKSxHPU9EKDEsdWUub3V0cHV0cyxyZSxHLEJlKTtjb25zdCBHZT1udWxsPT09SXx8bnVsbD09PXZ8fHY0KGwpP251bGw6VkQoSSxyZSx2KTtNLnB1c2goR2UpfW51bGwhPT1JJiYoSS5oYXNPd25Qcm9wZXJ0eSgiY2xhc3MiKSYm'@; put 'KGwuZmxhZ3N8PTgpLEkuaGFzT3duUHJvcGVydHkoInN0eWxlIikmJihsLmZsYWdzfD0xNikpLGwuaW5pdGlhbElucHV0cz1NLGwuaW5wdXRzPUksbC5vdXRwdXRzPUd9KGMsYSxmKX1mdW5jdGlvbiBIRChjLGwsYSl7Y29uc3QgZD1hLmRpcmVjdGl2ZVN0YXJ0LGg9YS5kaXJlY3RpdmVFbmQs'@; put 'Zj1hLmluZGV4LHY9ZnVuY3Rpb24gTVYoKXtyZXR1cm4gd3MubEZyYW1lLmN1cnJlbnREaXJlY3RpdmVJbmRleH0oKTt0cnl7QTQoZik7Zm9yKGxldCBNPWQ7TTxoO00rKyl7Y29uc3QgST1jLmRhdGFbTV0sRz1sW01dO2RDKE0pLChudWxsIT09SS5ob3N0QmluZGluZ3N8fDAhPT1JLmhvc3RW'@; put 'YXJzfHxudWxsIT09SS5ob3N0QXR0cnMpJiZORChJLEcpfX1maW5hbGx5e0E0KC0xKSxkQyh2KX19ZnVuY3Rpb24gTkQoYyxsKXtudWxsIT09Yy5ob3N0QmluZGluZ3MmJmMuaG9zdEJpbmRpbmdzKDEsbCl9ZnVuY3Rpb24gTVMoYyxsLGEpe2wuY29tcG9uZW50T2Zmc2V0PWEsKGMuY29tcG9u'@; put 'ZW50cz8/PVtdKS5wdXNoKGwuaW5kZXgpfWZ1bmN0aW9uIGJqKGMsbCxhKXtpZihhKXtpZihsLmV4cG9ydEFzKWZvcihsZXQgZD0wO2Q8bC5leHBvcnRBcy5sZW5ndGg7ZCsrKWFbbC5leHBvcnRBc1tkXV09YztIYyhsKSYmKGFbIiJdPWMpfX1mdW5jdGlvbiB3aihjLGwsYSxkLGgpe2MuZGF0'@; put 'YVtkXT1oO2NvbnN0IGY9aC5mYWN0b3J5fHwoaC5mYWN0b3J5PWh1KGgudHlwZSkpLHY9bmV3IEYxKGYsSGMoaCksJGUpO2MuYmx1ZXByaW50W2RdPXYsYVtkXT12LGZ1bmN0aW9uIEZEKGMsbCxhLGQsaCl7Y29uc3QgZj1oLmhvc3RCaW5kaW5ncztpZihmKXtsZXQgdj1jLmhvc3RCaW5kaW5n'@; put 'T3BDb2RlcztudWxsPT09diYmKHY9Yy5ob3N0QmluZGluZ09wQ29kZXM9W10pO2NvbnN0IE09fmwuaW5kZXg7KGZ1bmN0aW9uIGdqKGMpe2xldCBsPWMubGVuZ3RoO2Zvcig7bD4wOyl7Y29uc3QgYT1jWy0tbF07aWYoIm51bWJlciI9PXR5cGVvZiBhJiZhPDApcmV0dXJuIGF9cmV0dXJuIDB9'@; put 'KSh2KSE9TSYmdi5wdXNoKE0pLHYucHVzaChhLGQsZil9fShjLGwsZCxoOChjLGEsaC5ob3N0VmFycyxMcyksaCl9ZnVuY3Rpb24gZGgoYyxsLGEsZCxoLGYpe2NvbnN0IHY9STAoYyxsKTshZnVuY3Rpb24geFMoYyxsLGEsZCxoLGYsdil7aWYobnVsbD09ZiljLnJlbW92ZUF0dHJpYnV0ZShs'@; put 'LGgsYSk7ZWxzZXtjb25zdCBNPW51bGw9PXY/U2EoZik6dihmLGR8fCIiLGgpO2Muc2V0QXR0cmlidXRlKGwsaCxNLGEpfX0obFt2c10sdixmLGMudmFsdWUsYSxkLGgpfWZ1bmN0aW9uIHN5KGMsbCxhLGQsaCxmKXtjb25zdCB2PWZbbF07aWYobnVsbCE9PXYpZm9yKGxldCBNPTA7TTx2Lmxl'@; put 'bmd0aDspVEQoZCxhLHZbTSsrXSx2W00rK10sdltNKytdLHZbTSsrXSl9ZnVuY3Rpb24gVkQoYyxsLGEpe2xldCBkPW51bGwsaD0wO2Zvcig7aDxhLmxlbmd0aDspe2NvbnN0IGY9YVtoXTtpZigwIT09ZilpZig1IT09Zil7aWYoIm51bWJlciI9PXR5cGVvZiBmKWJyZWFrO2lmKGMuaGFzT3du'@; put 'UHJvcGVydHkoZikpe251bGw9PT1kJiYoZD1bXSk7Y29uc3Qgdj1jW2ZdO2ZvcihsZXQgTT0wO008di5sZW5ndGg7TSs9MylpZih2W01dPT09bCl7ZC5wdXNoKGYsdltNKzFdLHZbTSsyXSxhW2grMV0pO2JyZWFrfX1oKz0yfWVsc2UgaCs9MjtlbHNlIGgrPTR9cmV0dXJuIGR9ZnVuY3Rpb24g'@; put 'RVMoYyxsLGEsZCl7cmV0dXJuW2MsITAsMCxsLG51bGwsZCxudWxsLGEsbnVsbCxudWxsXX1mdW5jdGlvbiBCRChjLGwpe2NvbnN0IGE9Yy5jb250ZW50UXVlcmllcztpZihudWxsIT09YSl7Y29uc3QgZD1fZShudWxsKTt0cnl7Zm9yKGxldCBoPTA7aDxhLmxlbmd0aDtoKz0yKXtjb25zdCB2'@; put 'PWFbaCsxXTtpZigtMSE9PXYpe2NvbnN0IE09Yy5kYXRhW3ZdO2ozKGFbaF0pLE0uY29udGVudFF1ZXJpZXMoMixsW3ZdLHYpfX19ZmluYWxseXtfZShkKX19fWZ1bmN0aW9uIGY4KGMsbCl7cmV0dXJuIGNbQWZdP2NbQzRdW0ZjXT1sOmNbQWZdPWwsY1tDNF09bCxsfWZ1bmN0aW9uIG95KGMs'@; put 'bCxhKXtqMygwKTtjb25zdCBkPV9lKG51bGwpO3RyeXtsKGMsYSl9ZmluYWxseXtfZShkKX19ZnVuY3Rpb24gakQoYyl7cmV0dXJuIGNbWDBdfHwoY1tYMF09W10pfWZ1bmN0aW9uIHA4KGMpe3JldHVybiBjLmNsZWFudXB8fChjLmNsZWFudXA9W10pfWZ1bmN0aW9uIFc0KGMsbCxhKXtyZXR1'@; put 'cm4obnVsbD09PWN8fEhjKGMpKSYmKGE9ZnVuY3Rpb24gckMoYyl7Zm9yKDtBcnJheS5pc0FycmF5KGMpOyl7aWYoIm9iamVjdCI9PXR5cGVvZiBjW3o2XSlyZXR1cm4gYztjPWNbQmxdfXJldHVybiBudWxsfShhW2wuaW5kZXhdKSksYVt2c119ZnVuY3Rpb24gVjUoYyxsKXtjb25zdCBhPWNb'@; put 'aGNdLGQ9YT9hLmdldCh2MixudWxsKTpudWxsO2QmJmQuaGFuZGxlRXJyb3IobCl9ZnVuY3Rpb24gVFMoYyxsLGEsZCxoKXtmb3IobGV0IGY9MDtmPGEubGVuZ3RoOyl7Y29uc3Qgdj1hW2YrK10sTT1hW2YrK10sST1hW2YrK107VEQoYy5kYXRhW3ZdLGxbdl0sZCxNLEksaCl9fWZ1bmN0aW9u'@; put 'IGIyKGMsbCxhKXtjb25zdCBkPW01KGwsYyk7IWZ1bmN0aW9uIHBEKGMsbCxhKXtjLnNldFZhbHVlKGwsYSl9KGNbdnNdLGQsYSl9ZnVuY3Rpb24gTWooYyxsKXtjb25zdCBhPVAxKGwsYyksZD1hW1hpXTshZnVuY3Rpb24geGooYyxsKXtmb3IobGV0IGE9bC5sZW5ndGg7YTxjLmJsdWVwcmlu'@; put 'dC5sZW5ndGg7YSsrKWwucHVzaChjLmJsdWVwcmludFthXSl9KGQsYSk7Y29uc3QgaD1hW0JsXTtudWxsIT09aCYmbnVsbD09PWFbUWNdJiYoYVtRY109SEMoaCxhW2hjXSkpLEFTKGQsYSxhW3NsXSl9ZnVuY3Rpb24gQVMoYyxsLGEpe0s2KGwpO3RyeXtjb25zdCBkPWMudmlld1F1ZXJ5O251'@; put 'bGwhPT1kJiZveSgxLGQsYSk7Y29uc3QgaD1jLnRlbXBsYXRlO251bGwhPT1oJiZBRChjLGwsaCwxLGEpLGMuZmlyc3RDcmVhdGVQYXNzJiYoYy5maXJzdENyZWF0ZVBhc3M9ITEpLGxbaGRdPy5maW5pc2hWaWV3Q3JlYXRpb24oYyksYy5zdGF0aWNDb250ZW50UXVlcmllcyYmQkQoYyxsKSxj'@; put 'LnN0YXRpY1ZpZXdRdWVyaWVzJiZveSgyLGMudmlld1F1ZXJ5LGEpO2NvbnN0IGY9Yy5jb21wb25lbnRzO251bGwhPT1mJiZmdW5jdGlvbiBFaihjLGwpe2ZvcihsZXQgYT0wO2E8bC5sZW5ndGg7YSsrKU1qKGMsbFthXSl9KGwsZil9Y2F0Y2goZCl7dGhyb3cgYy5maXJzdENyZWF0ZVBhc3Mm'@; put 'JihjLmluY29tcGxldGVGaXJzdFBhc3M9ITAsYy5maXJzdENyZWF0ZVBhc3M9ITEpLGR9ZmluYWxseXtsW1dhXSY9LTUseTUoKX19ZnVuY3Rpb24gQjUoYyxsKXtyZXR1cm4hbHx8bnVsbD09PWwuZmlyc3RDaGlsZHx8QnYoYyl9ZnVuY3Rpb24gdjgoYyxsLGEsZD0hMCl7Y29uc3QgaD1sW1hp'@; put 'XTtpZihmdW5jdGlvbiBzUyhjLGwsYSxkKXtjb25zdCBoPWZjK2QsZj1hLmxlbmd0aDtkPjAmJihhW2gtMV1bRmNdPWwpLGQ8Zi1mYz8obFtGY109YVtoXSxSbChhLGZjK2QsbCkpOihhLnB1c2gobCksbFtGY109bnVsbCksbFtkY109YTtjb25zdCB2PWxbUzRdO251bGwhPT12JiZhIT09diYm'@; put 'ZnVuY3Rpb24gcmooYyxsKXtjb25zdCBhPWNbQjNdO2xbamxdIT09bFtkY11bZGNdW2psXSYmKGNbV2FdfD1nNS5IYXNUcmFuc3BsYW50ZWRWaWV3cyksbnVsbD09PWE/Y1tCM109W2xdOmEucHVzaChsKX0odixsKTtjb25zdCBNPWxbaGRdO251bGwhPT1NJiZNLmluc2VydFZpZXcoYyksb0Mo'@; put 'bCksbFtXYV18PTEyOH0oaCxsLGMsYSksZCl7Y29uc3Qgdj1wUyhhLGMpLE09bFt2c10sST1xMyhNLGNbZnVdKTtudWxsIT09SSYmZnVuY3Rpb24gdGooYyxsLGEsZCxoLGYpe2RbQmxdPWgsZFtuY109bCxyeShjLGQsYSwxLGgsZil9KGgsY1tuY10sTSxsLEksdil9Y29uc3QgZj1sW1FjXTtu'@; put 'dWxsIT09ZiYmbnVsbCE9PWYuZmlyc3RDaGlsZCYmKGYuZmlyc3RDaGlsZD1udWxsKX1mdW5jdGlvbiB5OChjLGwsYSxkLGg9ITEpe2Zvcig7bnVsbCE9PWE7KXtjb25zdCBmPWxbYS5pbmRleF07bnVsbCE9PWYmJmQucHVzaChfbChmKSksT3UoZikmJnpEKGYsZCk7Y29uc3Qgdj1hLnR5cGU7'@; put 'aWYoOCZ2KXk4KGMsbCxhLmNoaWxkLGQpO2Vsc2UgaWYoMzImdil7Y29uc3QgTT1yUyhhLGwpO2xldCBJO2Zvcig7ST1NKCk7KWQucHVzaChJKX1lbHNlIGlmKDE2JnYpe2NvbnN0IE09YkQobCxhKTtpZihBcnJheS5pc0FycmF5KE0pKWQucHVzaCguLi5NKTtlbHNle2NvbnN0IEk9VDQobFtq'@; put 'bF0pO3k4KElbWGldLEksTSxkLCEwKX19YT1oP2EucHJvamVjdGlvbk5leHQ6YS5uZXh0fXJldHVybiBkfWZ1bmN0aW9uIHpEKGMsbCl7Zm9yKGxldCBhPWZjO2E8Yy5sZW5ndGg7YSsrKXtjb25zdCBkPWNbYV0saD1kW1hpXS5maXJzdENoaWxkO251bGwhPT1oJiZ5OChkW1hpXSxkLGgsbCl9'@; put 'Y1tmdV0hPT1jW0JsXSYmbC5wdXNoKGNbZnVdKX1sZXQgVUQ9W107Y29uc3QgRGo9e3ZlcnNpb246MCxsYXN0Q2xlYW5FcG9jaDowLGRpcnR5OiExLHByb2R1Y2VyTm9kZTp2b2lkIDAscHJvZHVjZXJMYXN0UmVhZFZlcnNpb246dm9pZCAwLHByb2R1Y2VySW5kZXhPZlRoaXM6dm9pZCAwLG5l'@; put 'eHRQcm9kdWNlckluZGV4OjAsbGl2ZUNvbnN1bWVyTm9kZTp2b2lkIDAsbGl2ZUNvbnN1bWVySW5kZXhPZlRoaXM6dm9pZCAwLGNvbnN1bWVyQWxsb3dTaWduYWxXcml0ZXM6ITEsY29uc3VtZXJJc0Fsd2F5c0xpdmU6ITEscHJvZHVjZXJNdXN0UmVjb21wdXRlOigpPT4hMSxwcm9kdWNlclJl'@; put 'Y29tcHV0ZVZhbHVlOigpPT57fSxjb25zdW1lck1hcmtlZERpcnR5OigpPT57fSxjb25zdW1lck9uU2lnbmFsUmVhZDooKT0+e30sY29uc3VtZXJJc0Fsd2F5c0xpdmU6ITAsY29uc3VtZXJNYXJrZWREaXJ0eTpjPT57RzYoYy5sVmlldyl9LGNvbnN1bWVyT25TaWduYWxSZWFkKCl7dGhpcy5s'@; put 'Vmlld1tEZl09dGhpc319LFpEPTEwMDtmdW5jdGlvbiBseShjLGw9ITAsYT0wKXtjb25zdCBkPWNbTzFdLGg9ZC5yZW5kZXJlckZhY3Rvcnk7aC5iZWdpbj8uKCk7dHJ5eyFmdW5jdGlvbiBJaihjLGwpe0RTKGMsbCk7bGV0IGE9MDtmb3IoO1N2KGMpOyl7aWYoYT09PVpEKXRocm93IG5ldyBu'@; put 'cigxMDMsITEpO2ErKyxEUyhjLDEpfX0oYyxhKX1jYXRjaCh2KXt0aHJvdyBsJiZWNShjLHYpLHZ9ZmluYWxseXtoLmVuZD8uKCksZC5pbmxpbmVFZmZlY3RSdW5uZXI/LmZsdXNoKCl9fWZ1bmN0aW9uIFJqKGMsbCxhLGQpe2NvbnN0IGg9bFtXYV07aWYoISgyNTYmfmgpKXJldHVybjtsW08x'@; put 'XS5pbmxpbmVFZmZlY3RSdW5uZXI/LmZsdXNoKCksSzYobCk7bGV0IHY9bnVsbCxNPW51bGw7KGZ1bmN0aW9uIExqKGMpe3JldHVybiAyIT09Yy50eXBlfSkoYykmJihNPWZ1bmN0aW9uIFRqKGMpe3JldHVybiBjW0RmXT8/ZnVuY3Rpb24gQWooYyl7Y29uc3QgbD1VRC5wb3AoKT8/T2JqZWN0'@; put 'LmNyZWF0ZShEaik7cmV0dXJuIGwubFZpZXc9YyxsfShjKX0obCksdj1mdW5jdGlvbiBVKGMpe3JldHVybiBjJiYoYy5uZXh0UHJvZHVjZXJJbmRleD0wKSxfZShjKX0oTSkpO3RyeXthQyhsKSxmdW5jdGlvbiBzayhjKXtyZXR1cm4gd3MubEZyYW1lLmJpbmRpbmdJbmRleD1jfShjLmJpbmRp'@; put 'bmdTdGFydEluZGV4KSxudWxsIT09YSYmQUQoYyxsLGEsMixkKTtjb25zdCBJPSEoMyZ+aCk7aWYoSSl7Y29uc3QgdWU9Yy5wcmVPcmRlckNoZWNrSG9va3M7bnVsbCE9PXVlJiZrdihsLHVlLG51bGwpfWVsc2V7Y29uc3QgdWU9Yy5wcmVPcmRlckhvb2tzO251bGwhPT11ZSYmRHYobCx1ZSww'@; put 'LG51bGwpLG1DKGwsMCl9aWYoZnVuY3Rpb24gT2ooYyl7Zm9yKGxldCBsPWtrKGMpO251bGwhPT1sO2w9RGsobCkpe2lmKCEobFtXYV0mZzUuSGFzVHJhbnNwbGFudGVkVmlld3MpKWNvbnRpbnVlO2NvbnN0IGE9bFtCM107Zm9yKGxldCBkPTA7ZDxhLmxlbmd0aDtkKyspe2ZWKGFbZF0pfX19'@; put 'KGwpLFdEKGwsMCksbnVsbCE9PWMuY29udGVudFF1ZXJpZXMmJkJEKGMsbCksSSl7Y29uc3QgdWU9Yy5jb250ZW50Q2hlY2tIb29rcztudWxsIT09dWUmJmt2KGwsdWUpfWVsc2V7Y29uc3QgdWU9Yy5jb250ZW50SG9va3M7bnVsbCE9PXVlJiZEdihsLHVlLDEpLG1DKGwsMSl9IWZ1bmN0aW9u'@; put 'IG9qKGMsbCl7Y29uc3QgYT1jLmhvc3RCaW5kaW5nT3BDb2RlcztpZihudWxsIT09YSl0cnl7Zm9yKGxldCBkPTA7ZDxhLmxlbmd0aDtkKyspe2NvbnN0IGg9YVtkXTtpZihoPDApQTQofmgpO2Vsc2V7Y29uc3QgZj1oLHY9YVsrK2RdLE09YVsrK2RdO1NWKHYsZiksTSgyLGxbZl0pfX19Zmlu'@; put 'YWxseXtBNCgtMSl9fShjLGwpO2NvbnN0IEc9Yy5jb21wb25lbnRzO251bGwhPT1HJiZHRChsLEcsMCk7Y29uc3QgcmU9Yy52aWV3UXVlcnk7aWYobnVsbCE9PXJlJiZveSgyLHJlLGQpLEkpe2NvbnN0IHVlPWMudmlld0NoZWNrSG9va3M7bnVsbCE9PXVlJiZrdihsLHVlKX1lbHNle2NvbnN0'@; put 'IHVlPWMudmlld0hvb2tzO251bGwhPT11ZSYmRHYobCx1ZSwyKSxtQyhsLDIpfWlmKCEwPT09Yy5maXJzdFVwZGF0ZVBhc3MmJihjLmZpcnN0VXBkYXRlUGFzcz0hMSksbFtwNV0pe2Zvcihjb25zdCB1ZSBvZiBsW3A1XSl1ZSgpO2xbcDVdPW51bGx9bFtXYV0mPS03M31jYXRjaChJKXt0aHJv'@; put 'dyBHNihsKSxJfWZpbmFsbHl7bnVsbCE9PU0mJihmdW5jdGlvbiBFKGMsbCl7aWYoX2UobCksYyYmdm9pZCAwIT09Yy5wcm9kdWNlck5vZGUmJnZvaWQgMCE9PWMucHJvZHVjZXJJbmRleE9mVGhpcyYmdm9pZCAwIT09Yy5wcm9kdWNlckxhc3RSZWFkVmVyc2lvbil7aWYobGUoYykpZm9yKGxl'@; put 'dCBhPWMubmV4dFByb2R1Y2VySW5kZXg7YTxjLnByb2R1Y2VyTm9kZS5sZW5ndGg7YSsrKW5lKGMucHJvZHVjZXJOb2RlW2FdLGMucHJvZHVjZXJJbmRleE9mVGhpc1thXSk7Zm9yKDtjLnByb2R1Y2VyTm9kZS5sZW5ndGg+Yy5uZXh0UHJvZHVjZXJJbmRleDspYy5wcm9kdWNlck5vZGUucG9w'@; put 'KCksYy5wcm9kdWNlckxhc3RSZWFkVmVyc2lvbi5wb3AoKSxjLnByb2R1Y2VySW5kZXhPZlRoaXMucG9wKCl9fShNLHYpLGZ1bmN0aW9uIGtqKGMpe2MubFZpZXdbRGZdIT09YyYmKGMubFZpZXc9bnVsbCxVRC5wdXNoKGMpKX0oTSkpLHk1KCl9fWZ1bmN0aW9uIFdEKGMsbCl7Zm9yKGxldCBh'@; put 'PWtrKGMpO251bGwhPT1hO2E9RGsoYSkpZm9yKGxldCBkPWZjO2Q8YS5sZW5ndGg7ZCsrKVlEKGFbZF0sbCl9ZnVuY3Rpb24gUGooYyxsLGEpe1lEKFAxKGwsYyksYSl9ZnVuY3Rpb24gWUQoYyxsKXtpQyhjKSYmRFMoYyxsKX1mdW5jdGlvbiBEUyhjLGwpe2NvbnN0IGQ9Y1tYaV0saD1jW1dh'@; put 'XSxmPWNbRGZdO2xldCB2PSEhKDA9PT1sJiYxNiZoKTtpZih2fHw9ISEoNjQmaCYmMD09PWwpLHZ8fD0hISgxMDI0JmgpLHZ8fD0hKCFmPy5kaXJ0eXx8IW0oZikpLGYmJihmLmRpcnR5PSExKSxjW1dhXSY9LTkyMTcsdilSaihkLGMsZC50ZW1wbGF0ZSxjW3NsXSk7ZWxzZSBpZig4MTkyJmgp'@; put 'e1dEKGMsMSk7Y29uc3QgTT1kLmNvbXBvbmVudHM7bnVsbCE9PU0mJkdEKGMsTSwxKX19ZnVuY3Rpb24gR0QoYyxsLGEpe2ZvcihsZXQgZD0wO2Q8bC5sZW5ndGg7ZCsrKVBqKGMsbFtkXSxhKX1mdW5jdGlvbiBiOChjKXtmb3IoY1tPMV0uY2hhbmdlRGV0ZWN0aW9uU2NoZWR1bGVyPy5ub3Rp'@; put 'ZnkoKTtjOyl7Y1tXYV18PTY0O2NvbnN0IGw9VDQoYyk7aWYoeDQoYykmJiFsKXJldHVybiBjO2M9bH1yZXR1cm4gbnVsbH1jbGFzcyBfOHtnZXQgcm9vdE5vZGVzKCl7Y29uc3QgbD10aGlzLl9sVmlldyxhPWxbWGldO3JldHVybiB5OChhLGwsYS5maXJzdENoaWxkLFtdKX1jb25zdHJ1Y3Rv'@; put 'cihsLGEsZD0hMCl7dGhpcy5fbFZpZXc9bCx0aGlzLl9jZFJlZkluamVjdGluZ1ZpZXc9YSx0aGlzLm5vdGlmeUVycm9ySGFuZGxlcj1kLHRoaXMuX2FwcFJlZj1udWxsLHRoaXMuX2F0dGFjaGVkVG9WaWV3Q29udGFpbmVyPSExfWdldCBjb250ZXh0KCl7cmV0dXJuIHRoaXMuX2xWaWV3W3Ns'@; put 'XX1zZXQgY29udGV4dChsKXt0aGlzLl9sVmlld1tzbF09bH1nZXQgZGVzdHJveWVkKCl7cmV0dXJuISgyNTYmfnRoaXMuX2xWaWV3W1dhXSl9ZGVzdHJveSgpe2lmKHRoaXMuX2FwcFJlZil0aGlzLl9hcHBSZWYuZGV0YWNoVmlldyh0aGlzKTtlbHNlIGlmKHRoaXMuX2F0dGFjaGVkVG9WaWV3'@; put 'Q29udGFpbmVyKXtjb25zdCBsPXRoaXMuX2xWaWV3W2RjXTtpZihPdShsKSl7Y29uc3QgYT1sWzhdLGQ9YT9hLmluZGV4T2YodGhpcyk6LTE7ZD4tMSYmKG84KGwsZCksSXUoYSxkKSl9dGhpcy5fYXR0YWNoZWRUb1ZpZXdDb250YWluZXI9ITF9VTQodGhpcy5fbFZpZXdbWGldLHRoaXMuX2xW'@; put 'aWV3KX1vbkRlc3Ryb3kobCl7TXYodGhpcy5fbFZpZXcsbCl9bWFya0ZvckNoZWNrKCl7YjgodGhpcy5fY2RSZWZJbmplY3RpbmdWaWV3fHx0aGlzLl9sVmlldyl9ZGV0YWNoKCl7dGhpcy5fbFZpZXdbV2FdJj0tMTI5fXJlYXR0YWNoKCl7b0ModGhpcy5fbFZpZXcpLHRoaXMuX2xWaWV3W1dh'@; put 'XXw9MTI4fWRldGVjdENoYW5nZXMoKXt0aGlzLl9sVmlld1tXYV18PTEwMjQsbHkodGhpcy5fbFZpZXcsdGhpcy5ub3RpZnlFcnJvckhhbmRsZXIpfWNoZWNrTm9DaGFuZ2VzKCl7fWF0dGFjaFRvVmlld0NvbnRhaW5lclJlZigpe2lmKHRoaXMuX2FwcFJlZil0aHJvdyBuZXcgbnIoOTAyLCEx'@; put 'KTt0aGlzLl9hdHRhY2hlZFRvVmlld0NvbnRhaW5lcj0hMH1kZXRhY2hGcm9tQXBwUmVmKCl7dGhpcy5fYXBwUmVmPW51bGwsbUQodGhpcy5fbFZpZXdbWGldLHRoaXMuX2xWaWV3KX1hdHRhY2hUb0FwcFJlZihsKXtpZih0aGlzLl9hdHRhY2hlZFRvVmlld0NvbnRhaW5lcil0aHJvdyBuZXcg'@; put 'bnIoOTAyLCExKTt0aGlzLl9hcHBSZWY9bCxvQyh0aGlzLl9sVmlldyl9fWxldCB3bD0oKCk9PntjbGFzcyBje3N0YXRpY3t0aGlzLl9fTkdfRUxFTUVOVF9JRF9fPU5qfX1yZXR1cm4gY30pKCk7Y29uc3QgRmo9d2wsSGo9Y2xhc3MgZXh0ZW5kcyBGantjb25zdHJ1Y3RvcihsLGEsZCl7c3Vw'@; put 'ZXIoKSx0aGlzLl9kZWNsYXJhdGlvbkxWaWV3PWwsdGhpcy5fZGVjbGFyYXRpb25UQ29udGFpbmVyPWEsdGhpcy5lbGVtZW50UmVmPWR9Z2V0IHNzcklkKCl7cmV0dXJuIHRoaXMuX2RlY2xhcmF0aW9uVENvbnRhaW5lci50Vmlldz8uc3NySWR8fG51bGx9Y3JlYXRlRW1iZWRkZWRWaWV3KGws'@; put 'YSl7cmV0dXJuIHRoaXMuY3JlYXRlRW1iZWRkZWRWaWV3SW1wbChsLGEpfWNyZWF0ZUVtYmVkZGVkVmlld0ltcGwobCxhLGQpe2NvbnN0IGg9ZnVuY3Rpb24gZzgoYyxsLGEsZCl7Y29uc3QgaD1fZShudWxsKTt0cnl7Y29uc3QgZj1sLnRWaWV3LEk9aXkoYyxmLGEsNDA5NiZjW1dhXT80MDk2'@; put 'OjE2LG51bGwsbCxudWxsLG51bGwsZD8uaW5qZWN0b3I/P251bGwsZD8uZW1iZWRkZWRWaWV3SW5qZWN0b3I/P251bGwsZD8uZGVoeWRyYXRlZFZpZXc/P251bGwpO0lbUzRdPWNbbC5pbmRleF07Y29uc3QgcmU9Y1toZF07cmV0dXJuIG51bGwhPT1yZSYmKElbaGRdPXJlLmNyZWF0ZUVtYmVk'@; put 'ZGVkVmlldyhmKSksQVMoZixJLGEpLEl9ZmluYWxseXtfZShoKX19KHRoaXMuX2RlY2xhcmF0aW9uTFZpZXcsdGhpcy5fZGVjbGFyYXRpb25UQ29udGFpbmVyLGwse2VtYmVkZGVkVmlld0luamVjdG9yOmEsZGVoeWRyYXRlZFZpZXc6ZH0pO3JldHVybiBuZXcgXzgoaCl9fTtmdW5jdGlvbiBO'@; put 'aigpe3JldHVybiBjeShvbCgpLGNpKCkpfWZ1bmN0aW9uIGN5KGMsbCl7cmV0dXJuIDQmYy50eXBlP25ldyBIaihsLGMsTDQoYyxsKSk6bnVsbH1jbGFzcyBweXt9Y2xhc3Mgb3p7fWNsYXNzIG5Je31jbGFzcyB1entyZXNvbHZlQ29tcG9uZW50RmFjdG9yeShsKXt0aHJvdyBmdW5jdGlvbiBs'@; put 'eihjKXtjb25zdCBsPUVycm9yKGBObyBjb21wb25lbnQgZmFjdG9yeSBmb3VuZCBmb3IgJHtIcihjKX0uYCk7cmV0dXJuIGwubmdDb21wb25lbnQ9YyxsfShsKX19bGV0IHo1PSgoKT0+e2NsYXNzIGN7c3RhdGlje3RoaXMuTlVMTD1uZXcgdXp9fXJldHVybiBjfSkoKTtjbGFzcyB4OHt9bGV0'@; put 'IEVzPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLmRlc3Ryb3lOb2RlPW51bGx9c3RhdGlje3RoaXMuX19OR19FTEVNRU5UX0lEX189KCk9PmZ1bmN0aW9uIGR6KCl7Y29uc3QgYz1jaSgpLGE9UDEob2woKS5pbmRleCxjKTtyZXR1cm4oTHUoYSk/YTpjKVt2c119KCl9fXJldHVy'@; put 'biBjfSkoKSxoej0oKCk9PntjbGFzcyBje3N0YXRpY3t0aGlzLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMscHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTooKT0+bnVsbH0pfX1yZXR1cm4gY30pKCk7Y29uc3QgSFM9e30sckk9bmV3IFNldDtmdW5jdGlvbiBfMihjKXtySS5oYXMoYyl8fChySS5h'@; put 'ZGQoYykscGVyZm9ybWFuY2U/Lm1hcms/LigibWFya19mZWF0dXJlX3VzYWdlIix7ZGV0YWlsOntmZWF0dXJlOmN9fSkpfWZ1bmN0aW9uIGlJKC4uLmMpe31jbGFzcyBHYXtjb25zdHJ1Y3Rvcih7ZW5hYmxlTG9uZ1N0YWNrVHJhY2U6bD0hMSxzaG91bGRDb2FsZXNjZUV2ZW50Q2hhbmdlRGV0'@; put 'ZWN0aW9uOmE9ITEsc2hvdWxkQ29hbGVzY2VSdW5DaGFuZ2VEZXRlY3Rpb246ZD0hMX0pe2lmKHRoaXMuaGFzUGVuZGluZ01hY3JvdGFza3M9ITEsdGhpcy5oYXNQZW5kaW5nTWljcm90YXNrcz0hMSx0aGlzLmlzU3RhYmxlPSEwLHRoaXMub25VbnN0YWJsZT1uZXcgS3IoITEpLHRoaXMub25N'@; put 'aWNyb3Rhc2tFbXB0eT1uZXcgS3IoITEpLHRoaXMub25TdGFibGU9bmV3IEtyKCExKSx0aGlzLm9uRXJyb3I9bmV3IEtyKCExKSx0eXBlb2YgWm9uZT4idSIpdGhyb3cgbmV3IG5yKDkwOCwhMSk7Wm9uZS5hc3NlcnRab25lUGF0Y2hlZCgpO2NvbnN0IGg9dGhpcztoLl9uZXN0aW5nPTAsaC5f'@; put 'b3V0ZXI9aC5faW5uZXI9Wm9uZS5jdXJyZW50LFpvbmUuVGFza1RyYWNraW5nWm9uZVNwZWMmJihoLl9pbm5lcj1oLl9pbm5lci5mb3JrKG5ldyBab25lLlRhc2tUcmFja2luZ1pvbmVTcGVjKSksbCYmWm9uZS5sb25nU3RhY2tUcmFjZVpvbmVTcGVjJiYoaC5faW5uZXI9aC5faW5uZXIuZm9y'@; put 'ayhab25lLmxvbmdTdGFja1RyYWNlWm9uZVNwZWMpKSxoLnNob3VsZENvYWxlc2NlRXZlbnRDaGFuZ2VEZXRlY3Rpb249IWQmJmEsaC5zaG91bGRDb2FsZXNjZVJ1bkNoYW5nZURldGVjdGlvbj1kLGgubGFzdFJlcXVlc3RBbmltYXRpb25GcmFtZUlkPS0xLGgubmF0aXZlUmVxdWVzdEFuaW1h'@; put 'dGlvbkZyYW1lPWZ1bmN0aW9uIGZ6KCl7Y29uc3QgYz0iZnVuY3Rpb24iPT10eXBlb2YgTnQucmVxdWVzdEFuaW1hdGlvbkZyYW1lO2xldCBsPU50W2M/InJlcXVlc3RBbmltYXRpb25GcmFtZSI6InNldFRpbWVvdXQiXSxhPU50W2M/ImNhbmNlbEFuaW1hdGlvbkZyYW1lIjoiY2xlYXJUaW1l'@; put 'b3V0Il07aWYodHlwZW9mIFpvbmU8InUiJiZsJiZhKXtjb25zdCBkPWxbWm9uZS5fX3N5bWJvbF9fKCJPcmlnaW5hbERlbGVnYXRlIildO2QmJihsPWQpO2NvbnN0IGg9YVtab25lLl9fc3ltYm9sX18oIk9yaWdpbmFsRGVsZWdhdGUiKV07aCYmKGE9aCl9cmV0dXJue25hdGl2ZVJlcXVlc3RB'@; put 'bmltYXRpb25GcmFtZTpsLG5hdGl2ZUNhbmNlbEFuaW1hdGlvbkZyYW1lOmF9fSgpLm5hdGl2ZVJlcXVlc3RBbmltYXRpb25GcmFtZSxmdW5jdGlvbiBteihjKXtjb25zdCBsPSgpPT57IWZ1bmN0aW9uIGd6KGMpe2MuaXNDaGVja1N0YWJsZVJ1bm5pbmd8fC0xIT09Yy5sYXN0UmVxdWVzdEFu'@; put 'aW1hdGlvbkZyYW1lSWR8fChjLmxhc3RSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZD1jLm5hdGl2ZVJlcXVlc3RBbmltYXRpb25GcmFtZS5jYWxsKE50LCgpPT57Yy5mYWtlVG9wRXZlbnRUYXNrfHwoYy5mYWtlVG9wRXZlbnRUYXNrPVpvbmUucm9vdC5zY2hlZHVsZUV2ZW50VGFzaygiZmFrZVRv'@; put 'cEV2ZW50VGFzayIsKCk9PntjLmxhc3RSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZD0tMSxWUyhjKSxjLmlzQ2hlY2tTdGFibGVSdW5uaW5nPSEwLE5TKGMpLGMuaXNDaGVja1N0YWJsZVJ1bm5pbmc9ITF9LHZvaWQgMCwoKT0+e30sKCk9Pnt9KSksYy5mYWtlVG9wRXZlbnRUYXNrLmludm9rZSgp'@; put 'fSksVlMoYykpfShjKX07Yy5faW5uZXI9Yy5faW5uZXIuZm9yayh7bmFtZToiYW5ndWxhciIscHJvcGVydGllczp7aXNBbmd1bGFyWm9uZTohMH0sb25JbnZva2VUYXNrOihhLGQsaCxmLHYsTSk9PntpZihmdW5jdGlvbiB2eihjKXtyZXR1cm4hKCFBcnJheS5pc0FycmF5KGMpfHwxIT09Yy5s'@; put 'ZW5ndGgpJiYhMD09PWNbMF0uZGF0YT8uX19pZ25vcmVfbmdfem9uZV9ffShNKSlyZXR1cm4gYS5pbnZva2VUYXNrKGgsZix2LE0pO3RyeXtyZXR1cm4gZ3koYyksYS5pbnZva2VUYXNrKGgsZix2LE0pfWZpbmFsbHl7KGMuc2hvdWxkQ29hbGVzY2VFdmVudENoYW5nZURldGVjdGlvbiYmImV2'@; put 'ZW50VGFzayI9PT1mLnR5cGV8fGMuc2hvdWxkQ29hbGVzY2VSdW5DaGFuZ2VEZXRlY3Rpb24pJiZsKCksYUkoYyl9fSxvbkludm9rZTooYSxkLGgsZix2LE0sSSk9Pnt0cnl7cmV0dXJuIGd5KGMpLGEuaW52b2tlKGgsZix2LE0sSSl9ZmluYWxseXtjLnNob3VsZENvYWxlc2NlUnVuQ2hhbmdl'@; put 'RGV0ZWN0aW9uJiZsKCksYUkoYyl9fSxvbkhhc1Rhc2s6KGEsZCxoLGYpPT57YS5oYXNUYXNrKGgsZiksZD09PWgmJigibWljcm9UYXNrIj09Zi5jaGFuZ2U/KGMuX2hhc1BlbmRpbmdNaWNyb3Rhc2tzPWYubWljcm9UYXNrLFZTKGMpLE5TKGMpKToibWFjcm9UYXNrIj09Zi5jaGFuZ2UmJihj'@; put 'Lmhhc1BlbmRpbmdNYWNyb3Rhc2tzPWYubWFjcm9UYXNrKSl9LG9uSGFuZGxlRXJyb3I6KGEsZCxoLGYpPT4oYS5oYW5kbGVFcnJvcihoLGYpLGMucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PmMub25FcnJvci5lbWl0KGYpKSwhMSl9KX0oaCl9c3RhdGljIGlzSW5Bbmd1bGFyWm9uZSgpe3JldHVy'@; put 'biB0eXBlb2YgWm9uZTwidSImJiEwPT09Wm9uZS5jdXJyZW50LmdldCgiaXNBbmd1bGFyWm9uZSIpfXN0YXRpYyBhc3NlcnRJbkFuZ3VsYXJab25lKCl7aWYoIUdhLmlzSW5Bbmd1bGFyWm9uZSgpKXRocm93IG5ldyBucig5MDksITEpfXN0YXRpYyBhc3NlcnROb3RJbkFuZ3VsYXJab25lKCl7'@; put 'aWYoR2EuaXNJbkFuZ3VsYXJab25lKCkpdGhyb3cgbmV3IG5yKDkwOSwhMSl9cnVuKGwsYSxkKXtyZXR1cm4gdGhpcy5faW5uZXIucnVuKGwsYSxkKX1ydW5UYXNrKGwsYSxkLGgpe2NvbnN0IGY9dGhpcy5faW5uZXIsdj1mLnNjaGVkdWxlRXZlbnRUYXNrKCJOZ1pvbmVFdmVudDogIitoLGws'@; put 'cHosaUksaUkpO3RyeXtyZXR1cm4gZi5ydW5UYXNrKHYsYSxkKX1maW5hbGx5e2YuY2FuY2VsVGFzayh2KX19cnVuR3VhcmRlZChsLGEsZCl7cmV0dXJuIHRoaXMuX2lubmVyLnJ1bkd1YXJkZWQobCxhLGQpfXJ1bk91dHNpZGVBbmd1bGFyKGwpe3JldHVybiB0aGlzLl9vdXRlci5ydW4obCl9'@; put 'fWNvbnN0IHB6PXt9O2Z1bmN0aW9uIE5TKGMpe2lmKDA9PWMuX25lc3RpbmcmJiFjLmhhc1BlbmRpbmdNaWNyb3Rhc2tzJiYhYy5pc1N0YWJsZSl0cnl7Yy5fbmVzdGluZysrLGMub25NaWNyb3Rhc2tFbXB0eS5lbWl0KG51bGwpfWZpbmFsbHl7aWYoYy5fbmVzdGluZy0tLCFjLmhhc1BlbmRp'@; put 'bmdNaWNyb3Rhc2tzKXRyeXtjLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT5jLm9uU3RhYmxlLmVtaXQobnVsbCkpfWZpbmFsbHl7Yy5pc1N0YWJsZT0hMH19fWZ1bmN0aW9uIFZTKGMpe2MuaGFzUGVuZGluZ01pY3JvdGFza3M9ISEoYy5faGFzUGVuZGluZ01pY3JvdGFza3N8fChjLnNob3VsZENv'@; put 'YWxlc2NlRXZlbnRDaGFuZ2VEZXRlY3Rpb258fGMuc2hvdWxkQ29hbGVzY2VSdW5DaGFuZ2VEZXRlY3Rpb24pJiYtMSE9PWMubGFzdFJlcXVlc3RBbmltYXRpb25GcmFtZUlkKX1mdW5jdGlvbiBneShjKXtjLl9uZXN0aW5nKyssYy5pc1N0YWJsZSYmKGMuaXNTdGFibGU9ITEsYy5vblVuc3Rh'@; put 'YmxlLmVtaXQobnVsbCkpfWZ1bmN0aW9uIGFJKGMpe2MuX25lc3RpbmctLSxOUyhjKX1jbGFzcyBzSXtjb25zdHJ1Y3Rvcigpe3RoaXMuaGFzUGVuZGluZ01pY3JvdGFza3M9ITEsdGhpcy5oYXNQZW5kaW5nTWFjcm90YXNrcz0hMSx0aGlzLmlzU3RhYmxlPSEwLHRoaXMub25VbnN0YWJsZT1u'@; put 'ZXcgS3IsdGhpcy5vbk1pY3JvdGFza0VtcHR5PW5ldyBLcix0aGlzLm9uU3RhYmxlPW5ldyBLcix0aGlzLm9uRXJyb3I9bmV3IEtyfXJ1bihsLGEsZCl7cmV0dXJuIGwuYXBwbHkoYSxkKX1ydW5HdWFyZGVkKGwsYSxkKXtyZXR1cm4gbC5hcHBseShhLGQpfXJ1bk91dHNpZGVBbmd1bGFyKGwp'@; put 'e3JldHVybiBsKCl9cnVuVGFzayhsLGEsZCxoKXtyZXR1cm4gbC5hcHBseShhLGQpfX12YXIgZXA9ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5FYXJseVJlYWQ9MF09IkVhcmx5UmVhZCIsY1tjLldyaXRlPTFdPSJXcml0ZSIsY1tjLk1peGVkUmVhZFdyaXRlPTJdPSJNaXhlZFJlYWRXcml0ZSIs'@; put 'Y1tjLlJlYWQ9M109IlJlYWQiLGN9KGVwfHx7fSk7Y29uc3QgQlM9e2Rlc3Ryb3koKXt9fTtmdW5jdGlvbiBteShjLGwpeyFsJiZmdW5jdGlvbiBFZihjKXtpZighX3YoKSl0aHJvdyBuZXcgbnIoLTIwMywhMSl9KCk7Y29uc3QgYT1sPy5pbmplY3Rvcj8/aGkoRG8pO2lmKCFmdW5jdGlvbiB1'@; put 'aChjKXtyZXR1cm4iYnJvd3NlciI9PT0oYz8/aGkoRG8pKS5nZXQoaXMpfShhKSlyZXR1cm4gQlM7XzIoIk5nQWZ0ZXJOZXh0UmVuZGVyIik7Y29uc3QgZD1hLmdldChFOCksaD1kLmhhbmRsZXI/Pz1uZXcgY0ksZj1sPy5waGFzZT8/ZXAuTWl4ZWRSZWFkV3JpdGUsdj0oKT0+e2gudW5yZWdp'@; put 'c3RlcihJKSxNKCl9LE09YS5nZXQoRTUpLm9uRGVzdHJveSh2KSxJPUswKGEsKCk9Pm5ldyBsSShmLCgpPT57digpLGMoKX0pKTtyZXR1cm4gaC5yZWdpc3RlcihJKSx7ZGVzdHJveTp2fX1jbGFzcyBsSXtjb25zdHJ1Y3RvcihsLGEpe3RoaXMucGhhc2U9bCx0aGlzLmNhbGxiYWNrRm49YSx0'@; put 'aGlzLnpvbmU9aGkoR2EpLHRoaXMuZXJyb3JIYW5kbGVyPWhpKHYyLHtvcHRpb25hbDohMH0pLGhpKHB5LHtvcHRpb25hbDohMH0pPy5ub3RpZnkoMSl9aW52b2tlKCl7dHJ5e3RoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcih0aGlzLmNhbGxiYWNrRm4pfWNhdGNoKGwpe3RoaXMuZXJyb3JI'@; put 'YW5kbGVyPy5oYW5kbGVFcnJvcihsKX19fWNsYXNzIGNJe2NvbnN0cnVjdG9yKCl7dGhpcy5leGVjdXRpbmdDYWxsYmFja3M9ITEsdGhpcy5idWNrZXRzPXtbZXAuRWFybHlSZWFkXTpuZXcgU2V0LFtlcC5Xcml0ZV06bmV3IFNldCxbZXAuTWl4ZWRSZWFkV3JpdGVdOm5ldyBTZXQsW2VwLlJl'@; put 'YWRdOm5ldyBTZXR9LHRoaXMuZGVmZXJyZWRDYWxsYmFja3M9bmV3IFNldH1yZWdpc3RlcihsKXsodGhpcy5leGVjdXRpbmdDYWxsYmFja3M/dGhpcy5kZWZlcnJlZENhbGxiYWNrczp0aGlzLmJ1Y2tldHNbbC5waGFzZV0pLmFkZChsKX11bnJlZ2lzdGVyKGwpe3RoaXMuYnVja2V0c1tsLnBo'@; put 'YXNlXS5kZWxldGUobCksdGhpcy5kZWZlcnJlZENhbGxiYWNrcy5kZWxldGUobCl9ZXhlY3V0ZSgpe3RoaXMuZXhlY3V0aW5nQ2FsbGJhY2tzPSEwO2Zvcihjb25zdCBsIG9mIE9iamVjdC52YWx1ZXModGhpcy5idWNrZXRzKSlmb3IoY29uc3QgYSBvZiBsKWEuaW52b2tlKCk7dGhpcy5leGVj'@; put 'dXRpbmdDYWxsYmFja3M9ITE7Zm9yKGNvbnN0IGwgb2YgdGhpcy5kZWZlcnJlZENhbGxiYWNrcyl0aGlzLmJ1Y2tldHNbbC5waGFzZV0uYWRkKGwpO3RoaXMuZGVmZXJyZWRDYWxsYmFja3MuY2xlYXIoKX1kZXN0cm95KCl7Zm9yKGNvbnN0IGwgb2YgT2JqZWN0LnZhbHVlcyh0aGlzLmJ1Y2tl'@; put 'dHMpKWwuY2xlYXIoKTt0aGlzLmRlZmVycmVkQ2FsbGJhY2tzLmNsZWFyKCl9fWxldCBFOD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5oYW5kbGVyPW51bGwsdGhpcy5pbnRlcm5hbENhbGxiYWNrcz1bXX1leGVjdXRlKCl7dGhpcy5leGVjdXRlSW50ZXJuYWxDYWxsYmFja3Mo'@; put 'KSx0aGlzLmhhbmRsZXI/LmV4ZWN1dGUoKX1leGVjdXRlSW50ZXJuYWxDYWxsYmFja3MoKXtjb25zdCBhPVsuLi50aGlzLmludGVybmFsQ2FsbGJhY2tzXTt0aGlzLmludGVybmFsQ2FsbGJhY2tzLmxlbmd0aD0wO2Zvcihjb25zdCBkIG9mIGEpZCgpfW5nT25EZXN0cm95KCl7dGhpcy5oYW5k'@; put 'bGVyPy5kZXN0cm95KCksdGhpcy5oYW5kbGVyPW51bGwsdGhpcy5pbnRlcm5hbENhbGxiYWNrcy5sZW5ndGg9MH1zdGF0aWN7dGhpcy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLHByb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6KCk9Pm5ldyBjfSl9fXJldHVybiBjfSkoKTtmdW5jdGlvbiB5eShj'@; put 'LGwsYSl7bGV0IGQ9YT9jLnN0eWxlczpudWxsLGg9YT9jLmNsYXNzZXM6bnVsbCxmPTA7aWYobnVsbCE9PWwpZm9yKGxldCB2PTA7djxsLmxlbmd0aDt2Kyspe2NvbnN0IE09bFt2XTsibnVtYmVyIj09dHlwZW9mIE0/Zj1NOjE9PWY/aD1sZChoLE0pOjI9PWYmJihkPWxkKGQsTSsiOiAiK2xb'@; put 'Kyt2XSsiOyIpKX1hP2Muc3R5bGVzPWQ6Yy5zdHlsZXNXaXRob3V0SG9zdD1kLGE/Yy5jbGFzc2VzPWg6Yy5jbGFzc2VzV2l0aG91dEhvc3Q9aH1jbGFzcyBoSSBleHRlbmRzIHo1e2NvbnN0cnVjdG9yKGwpe3N1cGVyKCksdGhpcy5uZ01vZHVsZT1sfXJlc29sdmVDb21wb25lbnRGYWN0b3J5'@; put 'KGwpe2NvbnN0IGE9QnMobCk7cmV0dXJuIG5ldyBrOChhLHRoaXMubmdNb2R1bGUpfX1mdW5jdGlvbiBmSShjKXtjb25zdCBsPVtdO2Zvcihjb25zdCBhIGluIGMpe2lmKCFjLmhhc093blByb3BlcnR5KGEpKWNvbnRpbnVlO2NvbnN0IGQ9Y1thXTt2b2lkIDAhPT1kJiZsLnB1c2goe3Byb3BO'@; put 'YW1lOkFycmF5LmlzQXJyYXkoZCk/ZFswXTpkLHRlbXBsYXRlTmFtZTphfSl9cmV0dXJuIGx9Y2xhc3MgYnl7Y29uc3RydWN0b3IobCxhKXt0aGlzLmluamVjdG9yPWwsdGhpcy5wYXJlbnRJbmplY3Rvcj1hfWdldChsLGEsZCl7ZD1uNShkKTtjb25zdCBoPXRoaXMuaW5qZWN0b3IuZ2V0KGws'@; put 'SFMsZCk7cmV0dXJuIGghPT1IU3x8YT09PUhTP2g6dGhpcy5wYXJlbnRJbmplY3Rvci5nZXQobCxhLGQpfX1jbGFzcyBrOCBleHRlbmRzIG5Je2dldCBpbnB1dHMoKXtjb25zdCBsPXRoaXMuY29tcG9uZW50RGVmLGE9bC5pbnB1dFRyYW5zZm9ybXMsZD1mSShsLmlucHV0cyk7aWYobnVsbCE9'@; put 'PWEpZm9yKGNvbnN0IGggb2YgZClhLmhhc093blByb3BlcnR5KGgucHJvcE5hbWUpJiYoaC50cmFuc2Zvcm09YVtoLnByb3BOYW1lXSk7cmV0dXJuIGR9Z2V0IG91dHB1dHMoKXtyZXR1cm4gZkkodGhpcy5jb21wb25lbnREZWYub3V0cHV0cyl9Y29uc3RydWN0b3IobCxhKXtzdXBlcigpLHRo'@; put 'aXMuY29tcG9uZW50RGVmPWwsdGhpcy5uZ01vZHVsZT1hLHRoaXMuY29tcG9uZW50VHlwZT1sLnR5cGUsdGhpcy5zZWxlY3Rvcj1mdW5jdGlvbiBXdyhjKXtyZXR1cm4gYy5tYXAoWncpLmpvaW4oIiwiKX0obC5zZWxlY3RvcnMpLHRoaXMubmdDb250ZW50U2VsZWN0b3JzPWwubmdDb250ZW50'@; put 'U2VsZWN0b3JzP2wubmdDb250ZW50U2VsZWN0b3JzOltdLHRoaXMuaXNCb3VuZFRvTW9kdWxlPSEhYX1jcmVhdGUobCxhLGQsaCl7Y29uc3QgZj1fZShudWxsKTt0cnl7bGV0IHY9KGg9aHx8dGhpcy5uZ01vZHVsZSlpbnN0YW5jZW9mIHFsP2g6aD8uaW5qZWN0b3I7diYmbnVsbCE9PXRoaXMu'@; put 'Y29tcG9uZW50RGVmLmdldFN0YW5kYWxvbmVJbmplY3RvciYmKHY9dGhpcy5jb21wb25lbnREZWYuZ2V0U3RhbmRhbG9uZUluamVjdG9yKHYpfHx2KTtjb25zdCBNPXY/bmV3IGJ5KGwsdik6bCxJPU0uZ2V0KHg4LG51bGwpO2lmKG51bGw9PT1JKXRocm93IG5ldyBucig0MDcsITEpO2NvbnN0'@; put 'IEc9TS5nZXQoaHosbnVsbCkseWU9e3JlbmRlcmVyRmFjdG9yeTpJLHNhbml0aXplcjpHLGlubGluZUVmZmVjdFJ1bm5lcjpudWxsLGFmdGVyUmVuZGVyRXZlbnRNYW5hZ2VyOk0uZ2V0KEU4LG51bGwpLGNoYW5nZURldGVjdGlvblNjaGVkdWxlcjpNLmdldChweSxudWxsKX0sRWU9SS5jcmVh'@; put 'dGVSZW5kZXJlcihudWxsLHRoaXMuY29tcG9uZW50RGVmKSxCZT10aGlzLmNvbXBvbmVudERlZi5zZWxlY3RvcnNbMF1bMF18fCJkaXYiLEdlPWQ/ZnVuY3Rpb24gY2ooYyxsLGEsZCl7Y29uc3QgZj1kLmdldChaaywhMSl8fGE9PT1xby5TaGFkb3dEb20sdj1jLnNlbGVjdFJvb3RFbGVtZW50'@; put 'KGwsZik7cmV0dXJuIGZ1bmN0aW9uIHVqKGMpe2tEKGMpfSh2KSx2fShFZSxkLHRoaXMuY29tcG9uZW50RGVmLmVuY2Fwc3VsYXRpb24sTSk6ejQoRWUsQmUsZnVuY3Rpb24gd3ooYyl7Y29uc3QgbD1jLnRvTG93ZXJDYXNlKCk7cmV0dXJuInN2ZyI9PT1sPyJzdmciOiJtYXRoIj09PWw/Im1h'@; put 'dGgiOm51bGx9KEJlKSk7bGV0IHN0PTUxMjt0aGlzLmNvbXBvbmVudERlZi5zaWduYWxzP3N0fD00MDk2OnRoaXMuY29tcG9uZW50RGVmLm9uUHVzaHx8KHN0fD0xNik7bGV0IHB0PW51bGw7bnVsbCE9PUdlJiYocHQ9SEMoR2UsTSwhMCkpO2NvbnN0IGR0PXdTKDAsbnVsbCxudWxsLDEsMCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCkscXQ9aXkobnVsbCxkdCxudWxsLHN0LG51bGwsbnVsbCx5ZSxFZSxNLG51bGwscHQpO2xldCBtbix3bjtLNihxdCk7dHJ5e2NvbnN0IGhuPXRoaXMuY29tcG9uZW50RGVmO2xldCBNbixNcj1udWxsO2huLmZpbmRIb3N0RGlyZWN0aXZlRGVm'@; put 'cz8oTW49W10sTXI9bmV3IE1hcCxobi5maW5kSG9zdERpcmVjdGl2ZURlZnMoaG4sTW4sTXIpLE1uLnB1c2goaG4pKTpNbj1baG5dO2NvbnN0IGtyPWZ1bmN0aW9uIFN6KGMsbCl7Y29uc3QgYT1jW1hpXSxkPV9zO3JldHVybiBjW2RdPWwsTjUoYSxkLDIsIiNob3N0IixudWxsKX0ocXQsR2Up'@; put 'LHFuPWZ1bmN0aW9uIE16KGMsbCxhLGQsaCxmLHYpe2NvbnN0IE09aFtYaV07IWZ1bmN0aW9uIHh6KGMsbCxhLGQpe2Zvcihjb25zdCBoIG9mIGMpbC5tZXJnZWRBdHRycz1DZihsLm1lcmdlZEF0dHJzLGguaG9zdEF0dHJzKTtudWxsIT09bC5tZXJnZWRBdHRycyYmKHl5KGwsbC5tZXJnZWRB'@; put 'dHRycywhMCksbnVsbCE9PWEmJnhEKGQsYSxsKSl9KGQsYyxsLHYpO2xldCBJPW51bGw7bnVsbCE9PWwmJihJPUhDKGwsaFtoY10pKTtjb25zdCBHPWYucmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKGwsYSk7bGV0IHJlPTE2O2Euc2lnbmFscz9yZT00MDk2OmEub25QdXNoJiYocmU9'@; put 'NjQpO2NvbnN0IHVlPWl5KGgsYXkoYSksbnVsbCxyZSxoW2MuaW5kZXhdLGMsZixHLG51bGwsbnVsbCxJKTtyZXR1cm4gTS5maXJzdENyZWF0ZVBhc3MmJk1TKE0sYyxkLmxlbmd0aC0xKSxmOChoLHVlKSxoW2MuaW5kZXhdPXVlfShrcixHZSxobixNbixxdCx5ZSxFZSk7d249WTYoZHQsX3Mp'@; put 'LEdlJiZmdW5jdGlvbiBUeihjLGwsYSxkKXtpZihkKW00KGMsYSxbIm5nLXZlcnNpb24iLCIxNy4zLjEyIl0pO2Vsc2V7Y29uc3R7YXR0cnM6aCxjbGFzc2VzOmZ9PWZ1bmN0aW9uIFhhKGMpe2NvbnN0IGw9W10sYT1bXTtsZXQgZD0xLGg9Mjtmb3IoO2Q8Yy5sZW5ndGg7KXtsZXQgZj1jW2Rd'@; put 'O2lmKCJzdHJpbmciPT10eXBlb2YgZikyPT09aD8iIiE9PWYmJmwucHVzaChmLGNbKytkXSk6OD09PWgmJmEucHVzaChmKTtlbHNle2lmKCFDYyhoKSlicmVhaztoPWZ9ZCsrfXJldHVybnthdHRyczpsLGNsYXNzZXM6YX19KGwuc2VsZWN0b3JzWzBdKTtoJiZtNChjLGEsaCksZiYmZi5sZW5n'@; put 'dGg+MCYmTUQoYyxhLGYuam9pbigiICIpKX19KEVlLGhuLEdlLGQpLHZvaWQgMCE9PWEmJmZ1bmN0aW9uIEF6KGMsbCxhKXtjb25zdCBkPWMucHJvamVjdGlvbj1bXTtmb3IobGV0IGg9MDtoPGwubGVuZ3RoO2grKyl7Y29uc3QgZj1hW2hdO2QucHVzaChudWxsIT1mP0FycmF5LmZyb20oZik6'@; put 'bnVsbCl9fSh3bix0aGlzLm5nQ29udGVudFNlbGVjdG9ycyxhKSxtbj1mdW5jdGlvbiBFeihjLGwsYSxkLGgsZil7Y29uc3Qgdj1vbCgpLE09aFtYaV0sST1JMCh2LGgpO1NTKE0saCx2LGEsbnVsbCxkKTtmb3IobGV0IHJlPTA7cmU8YS5sZW5ndGg7cmUrKylOdShENChoLE0sdi5kaXJlY3Rp'@; put 'dmVTdGFydCtyZSx2KSxoKTtIRChNLGgsdiksSSYmTnUoSSxoKTtjb25zdCBHPUQ0KGgsTSx2LmRpcmVjdGl2ZVN0YXJ0K3YuY29tcG9uZW50T2Zmc2V0LHYpO2lmKGNbc2xdPWhbc2xdPUcsbnVsbCE9PWYpZm9yKGNvbnN0IHJlIG9mIGYpcmUoRyxsKTtyZXR1cm4geVMoTSx2LGgpLEd9KHFu'@; put 'LGhuLE1uLE1yLHF0LFtrel0pLEFTKGR0LHF0LG51bGwpfWZpbmFsbHl7eTUoKX1yZXR1cm4gbmV3IEN6KHRoaXMuY29tcG9uZW50VHlwZSxtbixMNCh3bixxdCkscXQsd24pfWZpbmFsbHl7X2UoZil9fX1jbGFzcyBDeiBleHRlbmRzIG96e2NvbnN0cnVjdG9yKGwsYSxkLGgsZil7c3VwZXIo'@; put 'KSx0aGlzLmxvY2F0aW9uPWQsdGhpcy5fcm9vdExWaWV3PWgsdGhpcy5fdE5vZGU9Zix0aGlzLnByZXZpb3VzSW5wdXRWYWx1ZXM9bnVsbCx0aGlzLmluc3RhbmNlPWEsdGhpcy5ob3N0Vmlldz10aGlzLmNoYW5nZURldGVjdG9yUmVmPW5ldyBfOChoLHZvaWQgMCwhMSksdGhpcy5jb21wb25l'@; put 'bnRUeXBlPWx9c2V0SW5wdXQobCxhKXtjb25zdCBkPXRoaXMuX3ROb2RlLmlucHV0cztsZXQgaDtpZihudWxsIT09ZCYmKGg9ZFtsXSkpe2lmKHRoaXMucHJldmlvdXNJbnB1dFZhbHVlcz8/PW5ldyBNYXAsdGhpcy5wcmV2aW91c0lucHV0VmFsdWVzLmhhcyhsKSYmT2JqZWN0LmlzKHRoaXMu'@; put 'cHJldmlvdXNJbnB1dFZhbHVlcy5nZXQobCksYSkpcmV0dXJuO2NvbnN0IGY9dGhpcy5fcm9vdExWaWV3O1RTKGZbWGldLGYsaCxsLGEpLHRoaXMucHJldmlvdXNJbnB1dFZhbHVlcy5zZXQobCxhKSxiOChQMSh0aGlzLl90Tm9kZS5pbmRleCxmKSl9fWdldCBpbmplY3Rvcigpe3JldHVybiBu'@; put 'ZXcgSHUodGhpcy5fdE5vZGUsdGhpcy5fcm9vdExWaWV3KX1kZXN0cm95KCl7dGhpcy5ob3N0Vmlldy5kZXN0cm95KCl9b25EZXN0cm95KGwpe3RoaXMuaG9zdFZpZXcub25EZXN0cm95KGwpfX1mdW5jdGlvbiBreigpe2NvbnN0IGM9b2woKTtBdihjaSgpW1hpXSxjKX1sZXQgVHM9KCgpPT57'@; put 'Y2xhc3MgY3tzdGF0aWN7dGhpcy5fX05HX0VMRU1FTlRfSURfXz1Een19cmV0dXJuIGN9KSgpO2Z1bmN0aW9uIER6KCl7cmV0dXJuIG1JKG9sKCksY2koKSl9Y29uc3QgSXo9VHMscEk9Y2xhc3MgZXh0ZW5kcyBJentjb25zdHJ1Y3RvcihsLGEsZCl7c3VwZXIoKSx0aGlzLl9sQ29udGFpbmVy'@; put 'PWwsdGhpcy5faG9zdFROb2RlPWEsdGhpcy5faG9zdExWaWV3PWR9Z2V0IGVsZW1lbnQoKXtyZXR1cm4gTDQodGhpcy5faG9zdFROb2RlLHRoaXMuX2hvc3RMVmlldyl9Z2V0IGluamVjdG9yKCl7cmV0dXJuIG5ldyBIdSh0aGlzLl9ob3N0VE5vZGUsdGhpcy5faG9zdExWaWV3KX1nZXQgcGFy'@; put 'ZW50SW5qZWN0b3IoKXtjb25zdCBsPWI1KHRoaXMuX2hvc3RUTm9kZSx0aGlzLl9ob3N0TFZpZXcpO2lmKEl2KGwpKXtjb25zdCBhPUo2KGwsdGhpcy5faG9zdExWaWV3KSxkPXE2KGwpO3JldHVybiBuZXcgSHUoYVtYaV0uZGF0YVtkKzhdLGEpfXJldHVybiBuZXcgSHUobnVsbCx0aGlzLl9o'@; put 'b3N0TFZpZXcpfWNsZWFyKCl7Zm9yKDt0aGlzLmxlbmd0aD4wOyl0aGlzLnJlbW92ZSh0aGlzLmxlbmd0aC0xKX1nZXQobCl7Y29uc3QgYT1nSSh0aGlzLl9sQ29udGFpbmVyKTtyZXR1cm4gbnVsbCE9PWEmJmFbbF18fG51bGx9Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLl9sQ29udGFpbmVy'@; put 'Lmxlbmd0aC1mY31jcmVhdGVFbWJlZGRlZFZpZXcobCxhLGQpe2xldCBoLGY7Im51bWJlciI9PXR5cGVvZiBkP2g9ZDpudWxsIT1kJiYoaD1kLmluZGV4LGY9ZC5pbmplY3Rvcik7Y29uc3QgTT1sLmNyZWF0ZUVtYmVkZGVkVmlld0ltcGwoYXx8e30sZixudWxsKTtyZXR1cm4gdGhpcy5pbnNl'@; put 'cnRJbXBsKE0saCxCNSh0aGlzLl9ob3N0VE5vZGUsbnVsbCkpLE19Y3JlYXRlQ29tcG9uZW50KGwsYSxkLGgsZil7Y29uc3Qgdj1sJiYhZnVuY3Rpb24gemkoYyl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGN9KGwpO2xldCBNO2lmKHYpTT1hO2Vsc2V7Y29uc3QgQmU9YXx8e307TT1CZS5p'@; put 'bmRleCxkPUJlLmluamVjdG9yLGg9QmUucHJvamVjdGFibGVOb2RlcyxmPUJlLmVudmlyb25tZW50SW5qZWN0b3J8fEJlLm5nTW9kdWxlUmVmfWNvbnN0IEk9dj9sOm5ldyBrOChCcyhsKSksRz1kfHx0aGlzLnBhcmVudEluamVjdG9yO2lmKCFmJiZudWxsPT1JLm5nTW9kdWxlKXtjb25zdCBH'@; put 'ZT0odj9HOnRoaXMucGFyZW50SW5qZWN0b3IpLmdldChxbCxudWxsKTtHZSYmKGY9R2UpfUJzKEkuY29tcG9uZW50VHlwZT8/e30pO2NvbnN0IEVlPUkuY3JlYXRlKEcsaCxudWxsLGYpO3JldHVybiB0aGlzLmluc2VydEltcGwoRWUuaG9zdFZpZXcsTSxCNSh0aGlzLl9ob3N0VE5vZGUsbnVs'@; put 'bCkpLEVlfWluc2VydChsLGEpe3JldHVybiB0aGlzLmluc2VydEltcGwobCxhLCEwKX1pbnNlcnRJbXBsKGwsYSxkKXtjb25zdCBoPWwuX2xWaWV3O2lmKGZ1bmN0aW9uIHRrKGMpe3JldHVybiBPdShjW2RjXSl9KGgpKXtjb25zdCBNPXRoaXMuaW5kZXhPZihsKTtpZigtMSE9PU0pdGhpcy5k'@; put 'ZXRhY2goTSk7ZWxzZXtjb25zdCBJPWhbZGNdLEc9bmV3IHBJKEksSVtuY10sSVtkY10pO0cuZGV0YWNoKEcuaW5kZXhPZihsKSl9fWNvbnN0IGY9dGhpcy5fYWRqdXN0SW5kZXgoYSksdj10aGlzLl9sQ29udGFpbmVyO3JldHVybiB2OCh2LGgsZixkKSxsLmF0dGFjaFRvVmlld0NvbnRhaW5l'@; put 'clJlZigpLFJsKFpTKHYpLGYsbCksbH1tb3ZlKGwsYSl7cmV0dXJuIHRoaXMuaW5zZXJ0KGwsYSl9aW5kZXhPZihsKXtjb25zdCBhPWdJKHRoaXMuX2xDb250YWluZXIpO3JldHVybiBudWxsIT09YT9hLmluZGV4T2YobCk6LTF9cmVtb3ZlKGwpe2NvbnN0IGE9dGhpcy5fYWRqdXN0SW5kZXgo'@; put 'bCwtMSksZD1vOCh0aGlzLl9sQ29udGFpbmVyLGEpO2QmJihJdShaUyh0aGlzLl9sQ29udGFpbmVyKSxhKSxVNChkW1hpXSxkKSl9ZGV0YWNoKGwpe2NvbnN0IGE9dGhpcy5fYWRqdXN0SW5kZXgobCwtMSksZD1vOCh0aGlzLl9sQ29udGFpbmVyLGEpO3JldHVybiBkJiZudWxsIT1JdShaUyh0'@; put 'aGlzLl9sQ29udGFpbmVyKSxhKT9uZXcgXzgoZCk6bnVsbH1fYWRqdXN0SW5kZXgobCxhPTApe3JldHVybiBsPz90aGlzLmxlbmd0aCthfX07ZnVuY3Rpb24gZ0koYyl7cmV0dXJuIGNbOF19ZnVuY3Rpb24gWlMoYyl7cmV0dXJuIGNbOF18fChjWzhdPVtdKX1mdW5jdGlvbiBtSShjLGwpe2xl'@; put 'dCBhO2NvbnN0IGQ9bFtjLmluZGV4XTtyZXR1cm4gT3UoZCk/YT1kOihhPUVTKGQsbCxudWxsLGMpLGxbYy5pbmRleF09YSxmOChsLGEpKSxXUyhhLGwsYyxkKSxuZXcgcEkoYSxjLGwpfWxldCBXUz1mdW5jdGlvbiBZUyhjLGwsYSxkKXtpZihjW2Z1XSlyZXR1cm47bGV0IGg7aD04JmEudHlw'@; put 'ZT9fbChkKTpmdW5jdGlvbiBSeihjLGwpe2NvbnN0IGE9Y1t2c10sZD1hLmNyZWF0ZUNvbW1lbnQoIiIpLGg9STAobCxjKTtyZXR1cm4gWjQoYSxxMyhhLGgpLGQsZnVuY3Rpb24gdVMoYyxsKXtyZXR1cm4gYy5uZXh0U2libGluZyhsKX0oYSxoKSwhMSksZH0obCxhKSxjW2Z1XT1ofSxfeT0o'@; put 'KT0+ITE7Y2xhc3MgR1N7Y29uc3RydWN0b3IobCl7dGhpcy5xdWVyeUxpc3Q9bCx0aGlzLm1hdGNoZXM9bnVsbH1jbG9uZSgpe3JldHVybiBuZXcgR1ModGhpcy5xdWVyeUxpc3QpfXNldERpcnR5KCl7dGhpcy5xdWVyeUxpc3Quc2V0RGlydHkoKX19Y2xhc3Mgd3l7Y29uc3RydWN0b3IobD1b'@; put 'XSl7dGhpcy5xdWVyaWVzPWx9Y3JlYXRlRW1iZWRkZWRWaWV3KGwpe2NvbnN0IGE9bC5xdWVyaWVzO2lmKG51bGwhPT1hKXtjb25zdCBkPW51bGwhPT1sLmNvbnRlbnRRdWVyaWVzP2wuY29udGVudFF1ZXJpZXNbMF06YS5sZW5ndGgsaD1bXTtmb3IobGV0IGY9MDtmPGQ7ZisrKXtjb25zdCB2'@; put 'PWEuZ2V0QnlJbmRleChmKTtoLnB1c2godGhpcy5xdWVyaWVzW3YuaW5kZXhJbkRlY2xhcmF0aW9uVmlld10uY2xvbmUoKSl9cmV0dXJuIG5ldyB3eShoKX1yZXR1cm4gbnVsbH1pbnNlcnRWaWV3KGwpe3RoaXMuZGlydHlRdWVyaWVzV2l0aE1hdGNoZXMobCl9ZGV0YWNoVmlldyhsKXt0aGlz'@; put 'LmRpcnR5UXVlcmllc1dpdGhNYXRjaGVzKGwpfWZpbmlzaFZpZXdDcmVhdGlvbihsKXt0aGlzLmRpcnR5UXVlcmllc1dpdGhNYXRjaGVzKGwpfWRpcnR5UXVlcmllc1dpdGhNYXRjaGVzKGwpe2ZvcihsZXQgYT0wO2E8dGhpcy5xdWVyaWVzLmxlbmd0aDthKyspbnVsbCE9PXFTKGwsYSkubWF0'@; put 'Y2hlcyYmdGhpcy5xdWVyaWVzW2FdLnNldERpcnR5KCl9fWNsYXNzIHZJe2NvbnN0cnVjdG9yKGwsYSxkPW51bGwpe3RoaXMuZmxhZ3M9YSx0aGlzLnJlYWQ9ZCx0aGlzLnByZWRpY2F0ZT0ic3RyaW5nIj09dHlwZW9mIGw/ZnVuY3Rpb24gQ0koYyl7cmV0dXJuIGMuc3BsaXQoIiwiKS5tYXAo'@; put 'bD0+bC50cmltKCkpfShsKTpsfX1jbGFzcyAkU3tjb25zdHJ1Y3RvcihsPVtdKXt0aGlzLnF1ZXJpZXM9bH1lbGVtZW50U3RhcnQobCxhKXtmb3IobGV0IGQ9MDtkPHRoaXMucXVlcmllcy5sZW5ndGg7ZCsrKXRoaXMucXVlcmllc1tkXS5lbGVtZW50U3RhcnQobCxhKX1lbGVtZW50RW5kKGwp'@; put 'e2ZvcihsZXQgYT0wO2E8dGhpcy5xdWVyaWVzLmxlbmd0aDthKyspdGhpcy5xdWVyaWVzW2FdLmVsZW1lbnRFbmQobCl9ZW1iZWRkZWRUVmlldyhsKXtsZXQgYT1udWxsO2ZvcihsZXQgZD0wO2Q8dGhpcy5sZW5ndGg7ZCsrKXtjb25zdCBoPW51bGwhPT1hP2EubGVuZ3RoOjAsZj10aGlzLmdl'@; put 'dEJ5SW5kZXgoZCkuZW1iZWRkZWRUVmlldyhsLGgpO2YmJihmLmluZGV4SW5EZWNsYXJhdGlvblZpZXc9ZCxudWxsIT09YT9hLnB1c2goZik6YT1bZl0pfXJldHVybiBudWxsIT09YT9uZXcgJFMoYSk6bnVsbH10ZW1wbGF0ZShsLGEpe2ZvcihsZXQgZD0wO2Q8dGhpcy5xdWVyaWVzLmxlbmd0'@; put 'aDtkKyspdGhpcy5xdWVyaWVzW2RdLnRlbXBsYXRlKGwsYSl9Z2V0QnlJbmRleChsKXtyZXR1cm4gdGhpcy5xdWVyaWVzW2xdfWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5xdWVyaWVzLmxlbmd0aH10cmFjayhsKXt0aGlzLnF1ZXJpZXMucHVzaChsKX19Y2xhc3MgS1N7Y29uc3RydWN0b3Io'@; put 'bCxhPS0xKXt0aGlzLm1ldGFkYXRhPWwsdGhpcy5tYXRjaGVzPW51bGwsdGhpcy5pbmRleEluRGVjbGFyYXRpb25WaWV3PS0xLHRoaXMuY3Jvc3Nlc05nVGVtcGxhdGU9ITEsdGhpcy5fYXBwbGllc1RvTmV4dE5vZGU9ITAsdGhpcy5fZGVjbGFyYXRpb25Ob2RlSW5kZXg9YX1lbGVtZW50U3Rh'@; put 'cnQobCxhKXt0aGlzLmlzQXBwbHlpbmdUb05vZGUoYSkmJnRoaXMubWF0Y2hUTm9kZShsLGEpfWVsZW1lbnRFbmQobCl7dGhpcy5fZGVjbGFyYXRpb25Ob2RlSW5kZXg9PT1sLmluZGV4JiYodGhpcy5fYXBwbGllc1RvTmV4dE5vZGU9ITEpfXRlbXBsYXRlKGwsYSl7dGhpcy5lbGVtZW50U3Rh'@; put 'cnQobCxhKX1lbWJlZGRlZFRWaWV3KGwsYSl7cmV0dXJuIHRoaXMuaXNBcHBseWluZ1RvTm9kZShsKT8odGhpcy5jcm9zc2VzTmdUZW1wbGF0ZT0hMCx0aGlzLmFkZE1hdGNoKC1sLmluZGV4LGEpLG5ldyBLUyh0aGlzLm1ldGFkYXRhKSk6bnVsbH1pc0FwcGx5aW5nVG9Ob2RlKGwpe2lmKHRo'@; put 'aXMuX2FwcGxpZXNUb05leHROb2RlJiYxJn50aGlzLm1ldGFkYXRhLmZsYWdzKXtjb25zdCBhPXRoaXMuX2RlY2xhcmF0aW9uTm9kZUluZGV4O2xldCBkPWwucGFyZW50O2Zvcig7bnVsbCE9PWQmJjgmZC50eXBlJiZkLmluZGV4IT09YTspZD1kLnBhcmVudDtyZXR1cm4gYT09PShudWxsIT09'@; put 'ZD9kLmluZGV4Oi0xKX1yZXR1cm4gdGhpcy5fYXBwbGllc1RvTmV4dE5vZGV9bWF0Y2hUTm9kZShsLGEpe2NvbnN0IGQ9dGhpcy5tZXRhZGF0YS5wcmVkaWNhdGU7aWYoQXJyYXkuaXNBcnJheShkKSlmb3IobGV0IGg9MDtoPGQubGVuZ3RoO2grKyl7Y29uc3QgZj1kW2hdO3RoaXMubWF0Y2hU'@; put 'Tm9kZVdpdGhSZWFkT3B0aW9uKGwsYSxGeihhLGYpKSx0aGlzLm1hdGNoVE5vZGVXaXRoUmVhZE9wdGlvbihsLGEsRnYoYSxsLGYsITEsITEpKX1lbHNlIGQ9PT13bD80JmEudHlwZSYmdGhpcy5tYXRjaFROb2RlV2l0aFJlYWRPcHRpb24obCxhLC0xKTp0aGlzLm1hdGNoVE5vZGVXaXRoUmVh'@; put 'ZE9wdGlvbihsLGEsRnYoYSxsLGQsITEsITEpKX1tYXRjaFROb2RlV2l0aFJlYWRPcHRpb24obCxhLGQpe2lmKG51bGwhPT1kKXtjb25zdCBoPXRoaXMubWV0YWRhdGEucmVhZDtpZihudWxsIT09aClpZihoPT09UWl8fGg9PT1Uc3x8aD09PXdsJiY0JmEudHlwZSl0aGlzLmFkZE1hdGNoKGEu'@; put 'aW5kZXgsLTIpO2Vsc2V7Y29uc3QgZj1GdihhLGwsaCwhMSwhMSk7bnVsbCE9PWYmJnRoaXMuYWRkTWF0Y2goYS5pbmRleCxmKX1lbHNlIHRoaXMuYWRkTWF0Y2goYS5pbmRleCxkKX19YWRkTWF0Y2gobCxhKXtudWxsPT09dGhpcy5tYXRjaGVzP3RoaXMubWF0Y2hlcz1bbCxhXTp0aGlzLm1h'@; put 'dGNoZXMucHVzaChsLGEpfX1mdW5jdGlvbiBGeihjLGwpe2NvbnN0IGE9Yy5sb2NhbE5hbWVzO2lmKG51bGwhPT1hKWZvcihsZXQgZD0wO2Q8YS5sZW5ndGg7ZCs9MilpZihhW2RdPT09bClyZXR1cm4gYVtkKzFdO3JldHVybiBudWxsfWZ1bmN0aW9uIEh6KGMsbCxhLGQpe3JldHVybi0xPT09'@; put 'YT9mdW5jdGlvbiB5SShjLGwpe3JldHVybiAxMSZjLnR5cGU/TDQoYyxsKTo0JmMudHlwZT9jeShjLGwpOm51bGx9KGwsYyk6LTI9PT1hP2Z1bmN0aW9uIFhTKGMsbCxhKXtyZXR1cm4gYT09PVFpP0w0KGwsYyk6YT09PXdsP2N5KGwsYyk6YT09PVRzP21JKGwsYyk6dm9pZCAwfShjLGwsZCk6'@; put 'RDQoYyxjW1hpXSxhLGwpfWZ1bmN0aW9uIFU1KGMsbCxhLGQpe2NvbnN0IGg9bFtoZF0ucXVlcmllc1tkXTtpZihudWxsPT09aC5tYXRjaGVzKXtjb25zdCBmPWMuZGF0YSx2PWEubWF0Y2hlcyxNPVtdO2ZvcihsZXQgST0wO251bGwhPT12JiZJPHYubGVuZ3RoO0krPTIpe2NvbnN0IEc9dltJ'@; put 'XTtNLnB1c2goRzwwP251bGw6SHoobCxmW0ddLHZbSSsxXSxhLm1ldGFkYXRhLnJlYWQpKX1oLm1hdGNoZXM9TX1yZXR1cm4gaC5tYXRjaGVzfWZ1bmN0aW9uIEQ4KGMsbCxhLGQpe2NvbnN0IGg9Yy5xdWVyaWVzLmdldEJ5SW5kZXgoYSksZj1oLm1hdGNoZXM7aWYobnVsbCE9PWYpe2NvbnN0'@; put 'IHY9VTUoYyxsLGgsYSk7Zm9yKGxldCBNPTA7TTxmLmxlbmd0aDtNKz0yKXtjb25zdCBJPWZbTV07aWYoST4wKWQucHVzaCh2W00vMl0pO2Vsc2V7Y29uc3QgRz1mW00rMV0scmU9bFstSV07Zm9yKGxldCB1ZT1mYzt1ZTxyZS5sZW5ndGg7dWUrKyl7Y29uc3QgeWU9cmVbdWVdO3llW1M0XT09'@; put 'PXllW2RjXSYmRDgoeWVbWGldLHllLEcsZCl9aWYobnVsbCE9PXJlW0IzXSl7Y29uc3QgdWU9cmVbQjNdO2ZvcihsZXQgeWU9MDt5ZTx1ZS5sZW5ndGg7eWUrKyl7Y29uc3QgRWU9dWVbeWVdO0Q4KEVlW1hpXSxFZSxHLGQpfX19fX1yZXR1cm4gZH1mdW5jdGlvbiBiSShjLGwsYSl7Y29uc3Qg'@; put 'ZD1uZXcgbGgoISg0Jn5hKSk7cmV0dXJuIGZ1bmN0aW9uIFJEKGMsbCxhLGQpe2NvbnN0IGg9akQobCk7aC5wdXNoKGEpLGMuZmlyc3RDcmVhdGVQYXNzJiZwOChjKS5wdXNoKGQsaC5sZW5ndGgtMSl9KGMsbCxkLGQuZGVzdHJveSksKGxbaGRdPz89bmV3IHd5KS5xdWVyaWVzLnB1c2gobmV3'@; put 'IEdTKGQpKS0xfWZ1bmN0aW9uIFNJKGMsbCxhKXtudWxsPT09Yy5xdWVyaWVzJiYoYy5xdWVyaWVzPW5ldyAkUyksYy5xdWVyaWVzLnRyYWNrKG5ldyBLUyhsLGEpKX1mdW5jdGlvbiBxUyhjLGwpe3JldHVybiBjLnF1ZXJpZXMuZ2V0QnlJbmRleChsKX1mdW5jdGlvbiBNSShjLGwpe2NvbnN0'@; put 'IGE9Y1tYaV0sZD1xUyhhLGwpO3JldHVybiBkLmNyb3NzZXNOZ1RlbXBsYXRlP0Q4KGEsYyxsLFtdKTpVNShhLGMsZCxsKX1mdW5jdGlvbiBFSShjKXtyZXR1cm4gZnVuY3Rpb24gQ3koYyl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGMmJnZvaWQgMCE9PWNbZ2VdfShjKSYmImZ1bmN0aW9u'@; put 'Ij09dHlwZW9mIGMuc2V0fWZ1bmN0aW9uIENhKGMpe2xldCBsPWZ1bmN0aW9uIG5NKGMpe3JldHVybiBPYmplY3QuZ2V0UHJvdG90eXBlT2YoYy5wcm90b3R5cGUpLmNvbnN0cnVjdG9yfShjLnR5cGUpLGE9ITA7Y29uc3QgZD1bY107Zm9yKDtsOyl7bGV0IGg7aWYoSGMoYykpaD1sLlx1MDI3'@; put 'NWNtcHx8bC5cdTAyNzVkaXI7ZWxzZXtpZihsLlx1MDI3NWNtcCl0aHJvdyBuZXcgbnIoOTAzLCExKTtoPWwuXHUwMjc1ZGlyfWlmKGgpe2lmKGEpe2QucHVzaChoKTtjb25zdCB2PWM7di5pbnB1dHM9UDgoYy5pbnB1dHMpLHYuaW5wdXRUcmFuc2Zvcm1zPVA4KGMuaW5wdXRUcmFuc2Zvcm1z'@; put 'KSx2LmRlY2xhcmVkSW5wdXRzPVA4KGMuZGVjbGFyZWRJbnB1dHMpLHYub3V0cHV0cz1QOChjLm91dHB1dHMpO2NvbnN0IE09aC5ob3N0QmluZGluZ3M7TSYmVmYoYyxNKTtjb25zdCBJPWgudmlld1F1ZXJ5LEc9aC5jb250ZW50UXVlcmllcztpZihJJiZQSShjLEkpLEcmJiR6KGMsRyksT0ko'@; put 'YyxoKSxEdShjLm91dHB1dHMsaC5vdXRwdXRzKSxIYyhoKSYmaC5kYXRhLmFuaW1hdGlvbil7Y29uc3QgcmU9Yy5kYXRhO3JlLmFuaW1hdGlvbj0ocmUuYW5pbWF0aW9ufHxbXSkuY29uY2F0KGguZGF0YS5hbmltYXRpb24pfX1jb25zdCBmPWguZmVhdHVyZXM7aWYoZilmb3IobGV0IHY9MDt2'@; put 'PGYubGVuZ3RoO3YrKyl7Y29uc3QgTT1mW3ZdO00mJk0ubmdJbmhlcml0JiZNKGMpLE09PT1DYSYmKGE9ITEpfX1sPU9iamVjdC5nZXRQcm90b3R5cGVPZihsKX0hZnVuY3Rpb24gR3ooYyl7bGV0IGw9MCxhPW51bGw7Zm9yKGxldCBkPWMubGVuZ3RoLTE7ZD49MDtkLS0pe2NvbnN0IGg9Y1tk'@; put 'XTtoLmhvc3RWYXJzPWwrPWguaG9zdFZhcnMsaC5ob3N0QXR0cnM9Q2YoaC5ob3N0QXR0cnMsYT1DZihhLGguaG9zdEF0dHJzKSl9fShkKX1mdW5jdGlvbiBPSShjLGwpe2Zvcihjb25zdCBhIGluIGwuaW5wdXRzKXtpZighbC5pbnB1dHMuaGFzT3duUHJvcGVydHkoYSl8fGMuaW5wdXRzLmhh'@; put 'c093blByb3BlcnR5KGEpKWNvbnRpbnVlO2NvbnN0IGQ9bC5pbnB1dHNbYV07aWYodm9pZCAwIT09ZCYmKGMuaW5wdXRzW2FdPWQsYy5kZWNsYXJlZElucHV0c1thXT1sLmRlY2xhcmVkSW5wdXRzW2FdLG51bGwhPT1sLmlucHV0VHJhbnNmb3Jtcykpe2NvbnN0IGg9QXJyYXkuaXNBcnJheShk'@; put 'KT9kWzBdOmQ7aWYoIWwuaW5wdXRUcmFuc2Zvcm1zLmhhc093blByb3BlcnR5KGgpKWNvbnRpbnVlO2MuaW5wdXRUcmFuc2Zvcm1zPz89e30sYy5pbnB1dFRyYW5zZm9ybXNbaF09bC5pbnB1dFRyYW5zZm9ybXNbaF19fX1mdW5jdGlvbiBQOChjKXtyZXR1cm4gYz09PWswP3t9OmM9PT1Kcz9b'@; put 'XTpjfWZ1bmN0aW9uIFBJKGMsbCl7Y29uc3QgYT1jLnZpZXdRdWVyeTtjLnZpZXdRdWVyeT1hPyhkLGgpPT57bChkLGgpLGEoZCxoKX06bH1mdW5jdGlvbiAkeihjLGwpe2NvbnN0IGE9Yy5jb250ZW50UXVlcmllcztjLmNvbnRlbnRRdWVyaWVzPWE/KGQsaCxmKT0+e2woZCxoLGYpLGEoZCxo'@; put 'LGYpfTpsfWZ1bmN0aW9uIFZmKGMsbCl7Y29uc3QgYT1jLmhvc3RCaW5kaW5ncztjLmhvc3RCaW5kaW5ncz1hPyhkLGgpPT57bChkLGgpLGEoZCxoKX06bH1mdW5jdGlvbiB5ZChjKXtjb25zdCBsPWE9Pntjb25zdCBkPShBcnJheS5pc0FycmF5KGMpP2M6YygpKS5tYXAoaD0+ImZ1bmN0aW9u'@; put 'Ij09dHlwZW9mIGg/e2RpcmVjdGl2ZTpHaShoKSxpbnB1dHM6azAsb3V0cHV0czprMH06e2RpcmVjdGl2ZTpHaShoLmRpcmVjdGl2ZSksaW5wdXRzOkhJKGguaW5wdXRzKSxvdXRwdXRzOkhJKGgub3V0cHV0cyl9KTtudWxsPT09YS5ob3N0RGlyZWN0aXZlcz8oYS5maW5kSG9zdERpcmVjdGl2'@; put 'ZURlZnM9RkksYS5ob3N0RGlyZWN0aXZlcz1kKTphLmhvc3REaXJlY3RpdmVzLnVuc2hpZnQoLi4uZCl9O3JldHVybiBsLm5nSW5oZXJpdD0hMCxsfWZ1bmN0aW9uIEZJKGMsbCxhKXtpZihudWxsIT09Yy5ob3N0RGlyZWN0aXZlcylmb3IoY29uc3QgZCBvZiBjLmhvc3REaXJlY3RpdmVzKXtj'@; put 'b25zdCBoPVNjKGQuZGlyZWN0aXZlKTtKeihoLmRlY2xhcmVkSW5wdXRzLGQuaW5wdXRzKSxGSShoLGwsYSksYS5zZXQoaCxkKSxsLnB1c2goaCl9fWZ1bmN0aW9uIEhJKGMpe2lmKHZvaWQgMD09PWN8fDA9PT1jLmxlbmd0aClyZXR1cm4gazA7Y29uc3QgbD17fTtmb3IobGV0IGE9MDthPGMu'@; put 'bGVuZ3RoO2ErPTIpbFtjW2FdXT1jW2ErMV07cmV0dXJuIGx9ZnVuY3Rpb24gSnooYyxsKXtmb3IoY29uc3QgYSBpbiBsKWwuaGFzT3duUHJvcGVydHkoYSkmJihjW2xbYV1dPWNbYV0pfWZ1bmN0aW9uIHpsKGMpe2NvbnN0IGw9Yy5pbnB1dENvbmZpZyxhPXt9O2Zvcihjb25zdCBkIGluIGwp'@; put 'aWYobC5oYXNPd25Qcm9wZXJ0eShkKSl7Y29uc3QgaD1sW2RdO0FycmF5LmlzQXJyYXkoaCkmJmhbM10mJihhW2RdPWhbM10pfWMuaW5wdXRUcmFuc2Zvcm1zPWF9Y2xhc3MgcnB7fWNsYXNzIHBje31jbGFzcyBBeSBleHRlbmRzIHJwe2NvbnN0cnVjdG9yKGwsYSxkKXtzdXBlcigpLHRoaXMu'@; put 'X3BhcmVudD1hLHRoaXMuX2Jvb3RzdHJhcENvbXBvbmVudHM9W10sdGhpcy5kZXN0cm95Q2JzPVtdLHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyPW5ldyBoSSh0aGlzKTtjb25zdCBoPVJ1KGwpO3RoaXMuX2Jvb3RzdHJhcENvbXBvbmVudHM9SDEoaC5ib290c3RyYXApLHRoaXMuX3Iz'@; put 'SW5qZWN0b3I9UjQobCxhLFt7cHJvdmlkZTpycCx1c2VWYWx1ZTp0aGlzfSx7cHJvdmlkZTp6NSx1c2VWYWx1ZTp0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcn0sLi4uZF0sSHIobCksbmV3IFNldChbImVudmlyb25tZW50Il0pKSx0aGlzLl9yM0luamVjdG9yLnJlc29sdmVJbmplY3Rv'@; put 'ckluaXRpYWxpemVycygpLHRoaXMuaW5zdGFuY2U9dGhpcy5fcjNJbmplY3Rvci5nZXQobCl9Z2V0IGluamVjdG9yKCl7cmV0dXJuIHRoaXMuX3IzSW5qZWN0b3J9ZGVzdHJveSgpe2NvbnN0IGw9dGhpcy5fcjNJbmplY3RvcjshbC5kZXN0cm95ZWQmJmwuZGVzdHJveSgpLHRoaXMuZGVzdHJv'@; put 'eUNicy5mb3JFYWNoKGE9PmEoKSksdGhpcy5kZXN0cm95Q2JzPW51bGx9b25EZXN0cm95KGwpe3RoaXMuZGVzdHJveUNicy5wdXNoKGwpfX1jbGFzcyBreSBleHRlbmRzIHBje2NvbnN0cnVjdG9yKGwpe3N1cGVyKCksdGhpcy5tb2R1bGVUeXBlPWx9Y3JlYXRlKGwpe3JldHVybiBuZXcgQXko'@; put 'dGhpcy5tb2R1bGVUeXBlLGwsW10pfX1jbGFzcyBGOCBleHRlbmRzIHJwe2NvbnN0cnVjdG9yKGwpe3N1cGVyKCksdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI9bmV3IGhJKHRoaXMpLHRoaXMuaW5zdGFuY2U9bnVsbDtjb25zdCBhPW5ldyBkZChbLi4ubC5wcm92aWRlcnMse3Byb3Zp'@; put 'ZGU6cnAsdXNlVmFsdWU6dGhpc30se3Byb3ZpZGU6ejUsdXNlVmFsdWU6dGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJ9XSxsLnBhcmVudHx8TjMoKSxsLmRlYnVnTmFtZSxuZXcgU2V0KFsiZW52aXJvbm1lbnQiXSkpO3RoaXMuaW5qZWN0b3I9YSxsLnJ1bkVudmlyb25tZW50SW5pdGlh'@; put 'bGl6ZXJzJiZhLnJlc29sdmVJbmplY3RvckluaXRpYWxpemVycygpfWRlc3Ryb3koKXt0aGlzLmluamVjdG9yLmRlc3Ryb3koKX1vbkRlc3Ryb3kobCl7dGhpcy5pbmplY3Rvci5vbkRlc3Ryb3kobCl9fWZ1bmN0aW9uIEc0KGMsbCxhPW51bGwpe3JldHVybiBuZXcgRjgoe3Byb3ZpZGVyczpj'@; put 'LHBhcmVudDpsLGRlYnVnTmFtZTphLHJ1bkVudmlyb25tZW50SW5pdGlhbGl6ZXJzOiEwfSkuaW5qZWN0b3J9bGV0IEJmPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLnRhc2tJZD0wLHRoaXMucGVuZGluZ1Rhc2tzPW5ldyBTZXQsdGhpcy5oYXNQZW5kaW5nVGFza3M9bmV3IEpy'@; put 'KCExKX1nZXQgX2hhc1BlbmRpbmdUYXNrcygpe3JldHVybiB0aGlzLmhhc1BlbmRpbmdUYXNrcy52YWx1ZX1hZGQoKXt0aGlzLl9oYXNQZW5kaW5nVGFza3N8fHRoaXMuaGFzUGVuZGluZ1Rhc2tzLm5leHQoITApO2NvbnN0IGE9dGhpcy50YXNrSWQrKztyZXR1cm4gdGhpcy5wZW5kaW5nVGFz'@; put 'a3MuYWRkKGEpLGF9cmVtb3ZlKGEpe3RoaXMucGVuZGluZ1Rhc2tzLmRlbGV0ZShhKSwwPT09dGhpcy5wZW5kaW5nVGFza3Muc2l6ZSYmdGhpcy5faGFzUGVuZGluZ1Rhc2tzJiZ0aGlzLmhhc1BlbmRpbmdUYXNrcy5uZXh0KCExKX1uZ09uRGVzdHJveSgpe3RoaXMucGVuZGluZ1Rhc2tzLmNs'@; put 'ZWFyKCksdGhpcy5faGFzUGVuZGluZ1Rhc2tzJiZ0aGlzLmhhc1BlbmRpbmdUYXNrcy5uZXh0KCExKX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKX19c3RhdGlje3RoaXMuXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFj'@; put 'LHByb3ZpZGVkSW46InJvb3QifSl9fXJldHVybiBjfSkoKTtmdW5jdGlvbiBEeShjKXtyZXR1cm4hIXJNKGMpJiYoQXJyYXkuaXNBcnJheShjKXx8IShjIGluc3RhbmNlb2YgTWFwKSYmU3ltYm9sLml0ZXJhdG9yIGluIGMpfWZ1bmN0aW9uIHJNKGMpe3JldHVybiBudWxsIT09YyYmKCJmdW5j'@; put 'dGlvbiI9PXR5cGVvZiBjfHwib2JqZWN0Ij09dHlwZW9mIGMpfWZ1bmN0aW9uIHcyKGMsbCxhKXtyZXR1cm4gY1tsXT1hfWZ1bmN0aW9uIE5jKGMsbCxhKXtyZXR1cm4hT2JqZWN0LmlzKGNbbF0sYSkmJihjW2xdPWEsITApfWZ1bmN0aW9uIGlwKGMsbCxhLGQpe2NvbnN0IGg9TmMoYyxsLGEp'@; put 'O3JldHVybiBOYyhjLGwrMSxkKXx8aH1mdW5jdGlvbiBSeShjLGwsYSxkLGgpe2NvbnN0IGY9aXAoYyxsLGEsZCk7cmV0dXJuIE5jKGMsbCsyLGgpfHxmfWZ1bmN0aW9uIGJkKGMsbCxhLGQsaCxmKXtjb25zdCB2PWlwKGMsbCxhLGQpO3JldHVybiBpcChjLGwrMixoLGYpfHx2fWZ1bmN0aW9u'@; put 'IGd0KGMsbCxhLGQsaCxmLHYsTSl7Y29uc3QgST1jaSgpLEc9c28oKSxyZT1jK19zLHVlPUcuZmlyc3RDcmVhdGVQYXNzP2Z1bmN0aW9uIGlNKGMsbCxhLGQsaCxmLHYsTSxJKXtjb25zdCBHPWwuY29uc3RzLHJlPU41KGwsYyw0LHZ8fG51bGwsZjIoRyxNKSk7Q1MobCxhLHJlLGYyKEcsSSkp'@; put 'LEF2KGwscmUpO2NvbnN0IHVlPXJlLnRWaWV3PXdTKDIscmUsZCxoLGYsbC5kaXJlY3RpdmVSZWdpc3RyeSxsLnBpcGVSZWdpc3RyeSxudWxsLGwuc2NoZW1hcyxHLG51bGwpO3JldHVybiBudWxsIT09bC5xdWVyaWVzJiYobC5xdWVyaWVzLnRlbXBsYXRlKGwscmUpLHVlLnF1ZXJpZXM9bC5x'@; put 'dWVyaWVzLmVtYmVkZGVkVFZpZXcocmUpKSxyZX0ocmUsRyxJLGwsYSxkLGgsZix2KTpHLmRhdGFbcmVdO3AyKHVlLCExKTtjb25zdCB5ZT16SShHLEksdWUsYyk7WDYoKSYmczAoRyxJLHllLHVlKSxOdSh5ZSxJKTtjb25zdCBFZT1FUyh5ZSxJLHllLHVlKTtyZXR1cm4gSVtyZV09RWUsZjgo'@; put 'SSxFZSksZnVuY3Rpb24gUDAoYyxsLGEpe3JldHVybiBfeShjLGwsYSl9KEVlLHVlLEkpLHEwKHVlKSYmYlMoRyxJLHVlKSxudWxsIT12JiZfUyhJLHVlLE0pLGd0fWxldCB6ST1mdW5jdGlvbiBhTShjLGwsYSxkKXtyZXR1cm4gZzIoITApLGxbdnNdLmNyZWF0ZUNvbW1lbnQoIiIpfTtmdW5j'@; put 'dGlvbiBocihjLGwsYSxkKXtjb25zdCBoPWNpKCk7cmV0dXJuIE5jKGgsYWgoKSxsKSYmKHNvKCksZGgoSm8oKSxoLGMsbCxhLGQpKSxocn1mdW5jdGlvbiBVbChjLGwsYSxkKXtyZXR1cm4gTmMoYyxhaCgpLGEpP2wrU2EoYSkrZDpMc31mdW5jdGlvbiBHcyhjLGwpe3JldHVybiBjPDwxN3xs'@; put 'PDwyfWZ1bmN0aW9uIFNsKGMpe3JldHVybiBjPj4xNyYzMjc2N31mdW5jdGlvbiBqZihjKXtyZXR1cm4gMnxjfWZ1bmN0aW9uIF9kKGMpe3JldHVybigxMzEwNjgmYyk+PjJ9ZnVuY3Rpb24gcG4oYyxsKXtyZXR1cm4tMTMxMDY5JmN8bDw8Mn1mdW5jdGlvbiBfbihjKXtyZXR1cm4gMXxjfWZ1'@; put 'bmN0aW9uIF9yKGMsbCxhLGQpe2NvbnN0IGg9Y1thKzFdLGY9bnVsbD09PWw7bGV0IHY9ZD9TbChoKTpfZChoKSxNPSExO2Zvcig7MCE9PXYmJighMT09PU18fGYpOyl7Y29uc3QgRz1jW3YrMV07WnIoY1t2XSxsKSYmKE09ITAsY1t2KzFdPWQ/X24oRyk6amYoRykpLHY9ZD9TbChHKTpfZChH'@; put 'KX1NJiYoY1thKzFdPWQ/amYoaCk6X24oaCkpfWZ1bmN0aW9uIFpyKGMsbCl7cmV0dXJuIG51bGw9PT1jfHxudWxsPT1sfHwoQXJyYXkuaXNBcnJheShjKT9jWzFdOmMpPT09bHx8ISghQXJyYXkuaXNBcnJheShjKXx8InN0cmluZyIhPXR5cGVvZiBsKSYmbjIoYyxsKT49MH1jb25zdCBpaT17'@; put 'dGV4dEVuZDowLGtleTowLGtleUVuZDowLHZhbHVlOjAsdmFsdWVFbmQ6MH07ZnVuY3Rpb24gdGkoYyl7cmV0dXJuIGMuc3Vic3RyaW5nKGlpLmtleSxpaS5rZXlFbmQpfWZ1bmN0aW9uIG5zKGMsbCl7Y29uc3QgYT1paS50ZXh0RW5kO3JldHVybiBhPT09bD8tMToobD1paS5rZXlFbmQ9ZnVu'@; put 'Y3Rpb24gbjEoYyxsLGEpe2Zvcig7bDxhJiZjLmNoYXJDb2RlQXQobCk+MzI7KWwrKztyZXR1cm4gbH0oYyxpaS5rZXk9bCxhKSxNbyhjLGwsYSkpfWZ1bmN0aW9uIE1vKGMsbCxhKXtmb3IoO2w8YSYmYy5jaGFyQ29kZUF0KGwpPD0zMjspbCsrO3JldHVybiBsfWZ1bmN0aW9uIE1lKGMsbCxh'@; put 'KXtjb25zdCBkPWNpKCk7cmV0dXJuIE5jKGQsYWgoKSxsKSYmTzAoc28oKSxKbygpLGQsYyxsLGRbdnNdLGEsITEpLE1lfWZ1bmN0aW9uIGZoKGMsbCxhLGQsaCl7Y29uc3Qgdj1oPyJjbGFzcyI6InN0eWxlIjtUUyhjLGEsbC5pbnB1dHNbdl0sdixkKX1mdW5jdGlvbiBOMShjLGwsYSl7cmV0'@; put 'dXJuIHpmKGMsbCxhLCExKSxOMX1mdW5jdGlvbiBUcihjLGwpe3JldHVybiB6ZihjLGwsbnVsbCwhMCksVHJ9ZnVuY3Rpb24gc3AoYyxsKXtmb3IobGV0IGE9ZnVuY3Rpb24gVWkoYyl7cmV0dXJuIGZ1bmN0aW9uIEFzKGMpe2lpLmtleT0wLGlpLmtleUVuZD0wLGlpLnZhbHVlPTAsaWkudmFs'@; put 'dWVFbmQ9MCxpaS50ZXh0RW5kPWMubGVuZ3RofShjKSxucyhjLE1vKGMsMCxpaS50ZXh0RW5kKSl9KGwpO2E+PTA7YT1ucyhsLGEpKXYwKGMsdGkobCksITApfWZ1bmN0aW9uIHpmKGMsbCxhLGQpe2NvbnN0IGg9Y2koKSxmPXNvKCksdj1MZigyKTtmLmZpcnN0VXBkYXRlUGFzcyYmbXJlKGYs'@; put 'Yyx2LGQpLGwhPT1McyYmTmMoaCx2LGwpJiZ5cmUoZixmLmRhdGFbRnUoKV0saCxoW3ZzXSxjLGhbdisxXT1mdW5jdGlvbiB5OWUoYyxsKXtyZXR1cm4gbnVsbD09Y3x8IiI9PT1jfHwoInN0cmluZyI9PXR5cGVvZiBsP2MrPWw6Im9iamVjdCI9PXR5cGVvZiBjJiYoYz1Icih5MihjKSkpKSxj'@; put 'fShsLGEpLGQsdil9ZnVuY3Rpb24gZ3JlKGMsbCl7cmV0dXJuIGw+PWMuZXhwYW5kb1N0YXJ0SW5kZXh9ZnVuY3Rpb24gbXJlKGMsbCxhLGQpe2NvbnN0IGg9Yy5kYXRhO2lmKG51bGw9PT1oW2ErMV0pe2NvbnN0IGY9aFtGdSgpXSx2PWdyZShjLGEpO19yZShmLGQpJiZudWxsPT09bCYmIXYm'@; put 'JihsPSExKSxsPWZ1bmN0aW9uIGQ5ZShjLGwsYSxkKXtjb25zdCBoPWhDKGMpO2xldCBmPWQ/bC5yZXNpZHVhbENsYXNzZXM6bC5yZXNpZHVhbFN0eWxlcztpZihudWxsPT09aCkwPT09KGQ/bC5jbGFzc0JpbmRpbmdzOmwuc3R5bGVCaW5kaW5ncykmJihhPWRNKGE9b1UobnVsbCxjLGwsYSxk'@; put 'KSxsLmF0dHJzLGQpLGY9bnVsbCk7ZWxzZXtjb25zdCB2PWwuZGlyZWN0aXZlU3R5bGluZ0xhc3Q7aWYoLTE9PT12fHxjW3ZdIT09aClpZihhPW9VKGgsYyxsLGEsZCksbnVsbD09PWYpe2xldCBJPWZ1bmN0aW9uIGg5ZShjLGwsYSl7Y29uc3QgZD1hP2wuY2xhc3NCaW5kaW5nczpsLnN0eWxl'@; put 'QmluZGluZ3M7aWYoMCE9PV9kKGQpKXJldHVybiBjW1NsKGQpXX0oYyxsLGQpO3ZvaWQgMCE9PUkmJkFycmF5LmlzQXJyYXkoSSkmJihJPW9VKG51bGwsYyxsLElbMV0sZCksST1kTShJLGwuYXR0cnMsZCksZnVuY3Rpb24gZjllKGMsbCxhLGQpe2NbU2woYT9sLmNsYXNzQmluZGluZ3M6bC5z'@; put 'dHlsZUJpbmRpbmdzKV09ZH0oYyxsLGQsSSkpfWVsc2UgZj1mdW5jdGlvbiBwOWUoYyxsLGEpe2xldCBkO2NvbnN0IGg9bC5kaXJlY3RpdmVFbmQ7Zm9yKGxldCBmPTErbC5kaXJlY3RpdmVTdHlsaW5nTGFzdDtmPGg7ZisrKWQ9ZE0oZCxjW2ZdLmhvc3RBdHRycyxhKTtyZXR1cm4gZE0oZCxs'@; put 'LmF0dHJzLGEpfShjLGwsZCl9cmV0dXJuIHZvaWQgMCE9PWYmJihkP2wucmVzaWR1YWxDbGFzc2VzPWY6bC5yZXNpZHVhbFN0eWxlcz1mKSxhfShoLGYsbCxkKSxmdW5jdGlvbiBTbihjLGwsYSxkLGgsZil7bGV0IHY9Zj9sLmNsYXNzQmluZGluZ3M6bC5zdHlsZUJpbmRpbmdzLE09U2wodiks'@; put 'ST1fZCh2KTtjW2RdPWE7bGV0IHJlLEc9ITE7aWYoQXJyYXkuaXNBcnJheShhKT8ocmU9YVsxXSwobnVsbD09PXJlfHxuMihhLHJlKT4wKSYmKEc9ITApKTpyZT1hLGgpaWYoMCE9PUkpe2NvbnN0IHllPVNsKGNbTSsxXSk7Y1tkKzFdPUdzKHllLE0pLDAhPT15ZSYmKGNbeWUrMV09cG4oY1t5'@; put 'ZSsxXSxkKSksY1tNKzFdPWZ1bmN0aW9uIE1sKGMsbCl7cmV0dXJuIDEzMTA3MSZjfGw8PDE3fShjW00rMV0sZCl9ZWxzZSBjW2QrMV09R3MoTSwwKSwwIT09TSYmKGNbTSsxXT1wbihjW00rMV0sZCkpLE09ZDtlbHNlIGNbZCsxXT1HcyhJLDApLDA9PT1NP009ZDpjW0krMV09cG4oY1tJKzFd'@; put 'LGQpLEk9ZDtHJiYoY1tkKzFdPWpmKGNbZCsxXSkpLF9yKGMscmUsZCwhMCksX3IoYyxyZSxkLCExKSxmdW5jdGlvbiBVbihjLGwsYSxkLGgpe2NvbnN0IGY9aD9jLnJlc2lkdWFsQ2xhc3NlczpjLnJlc2lkdWFsU3R5bGVzO251bGwhPWYmJiJzdHJpbmciPT10eXBlb2YgbCYmbjIoZixsKT49'@; put 'MCYmKGFbZCsxXT1fbihhW2QrMV0pKX0obCxyZSxjLGQsZiksdj1HcyhNLEkpLGY/bC5jbGFzc0JpbmRpbmdzPXY6bC5zdHlsZUJpbmRpbmdzPXZ9KGgsZixsLGEsdixkKX19ZnVuY3Rpb24gb1UoYyxsLGEsZCxoKXtsZXQgZj1udWxsO2NvbnN0IHY9YS5kaXJlY3RpdmVFbmQ7bGV0IE09YS5k'@; put 'aXJlY3RpdmVTdHlsaW5nTGFzdDtmb3IoLTE9PT1NP009YS5kaXJlY3RpdmVTdGFydDpNKys7TTx2JiYoZj1sW01dLGQ9ZE0oZCxmLmhvc3RBdHRycyxoKSxmIT09Yyk7KU0rKztyZXR1cm4gbnVsbCE9PWMmJihhLmRpcmVjdGl2ZVN0eWxpbmdMYXN0PU0pLGR9ZnVuY3Rpb24gZE0oYyxsLGEp'@; put 'e2NvbnN0IGQ9YT8xOjI7bGV0IGg9LTE7aWYobnVsbCE9PWwpZm9yKGxldCBmPTA7ZjxsLmxlbmd0aDtmKyspe2NvbnN0IHY9bFtmXTsibnVtYmVyIj09dHlwZW9mIHY/aD12Omg9PT1kJiYoQXJyYXkuaXNBcnJheShjKXx8KGM9dm9pZCAwPT09Yz9bXTpbIiIsY10pLHYwKGMsdiwhIWF8fGxb'@; put 'KytmXSkpfXJldHVybiB2b2lkIDA9PT1jP251bGw6Y31mdW5jdGlvbiB5cmUoYyxsLGEsZCxoLGYsdixNKXtpZighKDMmbC50eXBlKSlyZXR1cm47Y29uc3QgST1jLmRhdGEsRz1JW00rMV0scmU9ZnVuY3Rpb24gRG4oYyl7cmV0dXJuISgxJn5jKX0oRyk/YnJlKEksbCxhLGgsX2QoRyksdik6'@; put 'dm9pZCAwO0dJKHJlKXx8KEdJKGYpfHxmdW5jdGlvbiBtdShjKXtyZXR1cm4hKDImfmMpfShHKSYmKGY9YnJlKEksbnVsbCxhLGgsTSx2KSksZnVuY3Rpb24gQ0QoYyxsLGEsZCxoKXtpZihsKWg/Yy5hZGRDbGFzcyhhLGQpOmMucmVtb3ZlQ2xhc3MoYSxkKTtlbHNle2xldCBmPS0xPT09ZC5p'@; put 'bmRleE9mKCItIik/dm9pZCAwOlgzLkRhc2hDYXNlO251bGw9PWg/Yy5yZW1vdmVTdHlsZShhLGQsZik6KCJzdHJpbmciPT10eXBlb2YgaCYmaC5lbmRzV2l0aCgiIWltcG9ydGFudCIpJiYoaD1oLnNsaWNlKDAsLTEwKSxmfD1YMy5JbXBvcnRhbnQpLGMuc2V0U3R5bGUoYSxkLGgsZikpfX0o'@; put 'ZCx2LG01KEZ1KCksYSksaCxmKSl9ZnVuY3Rpb24gYnJlKGMsbCxhLGQsaCxmKXtjb25zdCB2PW51bGw9PT1sO2xldCBNO2Zvcig7aD4wOyl7Y29uc3QgST1jW2hdLEc9QXJyYXkuaXNBcnJheShJKSxyZT1HP0lbMV06SSx1ZT1udWxsPT09cmU7bGV0IHllPWFbaCsxXTt5ZT09PUxzJiYoeWU9'@; put 'dWU/SnM6dm9pZCAwKTtsZXQgRWU9dWU/QTYoeWUsZCk6cmU9PT1kP3llOnZvaWQgMDtpZihHJiYhR0koRWUpJiYoRWU9QTYoSSxkKSksR0koRWUpJiYoTT1FZSx2KSlyZXR1cm4gTTtjb25zdCBCZT1jW2grMV07aD12P1NsKEJlKTpfZChCZSl9aWYobnVsbCE9PWwpe2xldCBJPWY/bC5yZXNp'@; put 'ZHVhbENsYXNzZXM6bC5yZXNpZHVhbFN0eWxlcztudWxsIT1JJiYoTT1BNihJLGQpKX1yZXR1cm4gTX1mdW5jdGlvbiBHSShjKXtyZXR1cm4gdm9pZCAwIT09Y31mdW5jdGlvbiBfcmUoYyxsKXtyZXR1cm4hIShjLmZsYWdzJihsPzg6MTYpKX1mdW5jdGlvbiB3cmUoYyxsLGEpeyFmdW5jdGlv'@; put 'biBVZihjLGwsYSxkKXtjb25zdCBoPXNvKCksZj1MZigyKTtoLmZpcnN0VXBkYXRlUGFzcyYmbXJlKGgsbnVsbCxmLGQpO2NvbnN0IHY9Y2koKTtpZihhIT09THMmJk5jKHYsZixhKSl7Y29uc3QgTT1oLmRhdGFbRnUoKV07aWYoX3JlKE0sZCkmJiFncmUoaCxmKSl7bGV0IEk9ZD9NLmNsYXNz'@; put 'ZXNXaXRob3V0SG9zdDpNLnN0eWxlc1dpdGhvdXRIb3N0O251bGwhPT1JJiYoYT1sZChJLGF8fCIiKSksZmgoaCxNLHYsYSxkKX1lbHNlIWZ1bmN0aW9uIHY5ZShjLGwsYSxkLGgsZix2LE0pe2g9PT1McyYmKGg9SnMpO2xldCBJPTAsRz0wLHJlPTA8aC5sZW5ndGg/aFswXTpudWxsLHVlPTA8'@; put 'Zi5sZW5ndGg/ZlswXTpudWxsO2Zvcig7bnVsbCE9PXJlfHxudWxsIT09dWU7KXtjb25zdCB5ZT1JPGgubGVuZ3RoP2hbSSsxXTp2b2lkIDAsRWU9RzxmLmxlbmd0aD9mW0crMV06dm9pZCAwO2xldCBHZSxCZT1udWxsO3JlPT09dWU/KEkrPTIsRys9Mix5ZSE9PUVlJiYoQmU9dWUsR2U9RWUp'@; put 'KTpudWxsPT09dWV8fG51bGwhPT1yZSYmcmU8dWU/KEkrPTIsQmU9cmUpOihHKz0yLEJlPXVlLEdlPUVlKSxudWxsIT09QmUmJnlyZShjLGwsYSxkLEJlLEdlLHYsTSkscmU9STxoLmxlbmd0aD9oW0ldOm51bGwsdWU9RzxmLmxlbmd0aD9mW0ddOm51bGx9fShoLE0sdix2W3ZzXSx2W2YrMV0s'@; put 'dltmKzFdPWZ1bmN0aW9uIGc5ZShjLGwsYSl7aWYobnVsbD09YXx8IiI9PT1hKXJldHVybiBKcztjb25zdCBkPVtdLGg9eTIoYSk7aWYoQXJyYXkuaXNBcnJheShoKSlmb3IobGV0IGY9MDtmPGgubGVuZ3RoO2YrKyljKGQsaFtmXSwhMCk7ZWxzZSBpZigib2JqZWN0Ij09dHlwZW9mIGgpZm9y'@; put 'KGNvbnN0IGYgaW4gaCloLmhhc093blByb3BlcnR5KGYpJiZjKGQsZixoW2ZdKTtlbHNlInN0cmluZyI9PXR5cGVvZiBoJiZsKGQsaCk7cmV0dXJuIGR9KGMsbCxhKSxkLGYpfX0odjAsc3AsVWwoY2koKSxjLGwsYSksITApfWZ1bmN0aW9uIGRlKGMsbCxhLGQpe2NvbnN0IGg9Y2koKSxmPXNv'@; put 'KCksdj1fcytjLE09aFt2c10sST1mLmZpcnN0Q3JlYXRlUGFzcz9mdW5jdGlvbiBCOWUoYyxsLGEsZCxoLGYpe2NvbnN0IHY9bC5jb25zdHMsST1ONShsLGMsMixkLGYyKHYsaCkpO3JldHVybiBDUyhsLGEsSSxmMih2LGYpKSxudWxsIT09SS5hdHRycyYmeXkoSSxJLmF0dHJzLCExKSxudWxs'@; put 'IT09SS5tZXJnZWRBdHRycyYmeXkoSSxJLm1lcmdlZEF0dHJzLCEwKSxudWxsIT09bC5xdWVyaWVzJiZsLnF1ZXJpZXMuZWxlbWVudFN0YXJ0KGwsSSksSX0odixmLGgsbCxhLGQpOmYuZGF0YVt2XSxHPXhyZShmLGgsSSxNLGwsYyk7aFt2XT1HO2NvbnN0IHJlPXEwKEkpO3JldHVybiBwMihJ'@; put 'LCEwKSx4RChNLEcsSSksIWZ1bmN0aW9uIEg4KGMpe3JldHVybiEoMzImfmMuZmxhZ3MpfShJKSYmWDYoKSYmczAoZixoLEcsSSksMD09PWZ1bmN0aW9uIHBWKCl7cmV0dXJuIHdzLmxGcmFtZS5lbGVtZW50RGVwdGhDb3VudH0oKSYmTnUoRyxoKSxmdW5jdGlvbiBnVigpe3dzLmxGcmFtZS5l'@; put 'bGVtZW50RGVwdGhDb3VudCsrfSgpLHJlJiYoYlMoZixoLEkpLHlTKGYsSSxoKSksbnVsbCE9PWQmJl9TKGgsSSksZGV9ZnVuY3Rpb24gaGUoKXtsZXQgYz1vbCgpO2NDKCk/dUMoKTooYz1jLnBhcmVudCxwMihjLCExKSk7Y29uc3QgbD1jOyhmdW5jdGlvbiBtVihjKXtyZXR1cm4gd3Muc2tp'@; put 'cEh5ZHJhdGlvblJvb3RUTm9kZT09PWN9KShsKSYmZnVuY3Rpb24gX1YoKXt3cy5za2lwSHlkcmF0aW9uUm9vdFROb2RlPW51bGx9KCksZnVuY3Rpb24gcmsoKXt3cy5sRnJhbWUuZWxlbWVudERlcHRoQ291bnQtLX0oKTtjb25zdCBhPXNvKCk7cmV0dXJuIGEuZmlyc3RDcmVhdGVQYXNzJiYo'@; put 'QXYoYSxjKSxldShjKSYmYS5xdWVyaWVzLmVsZW1lbnRFbmQoYykpLG51bGwhPWwuY2xhc3Nlc1dpdGhvdXRIb3N0JiZmdW5jdGlvbiBMVihjKXtyZXR1cm4hISg4JmMuZmxhZ3MpfShsKSYmZmgoYSxsLGNpKCksbC5jbGFzc2VzV2l0aG91dEhvc3QsITApLG51bGwhPWwuc3R5bGVzV2l0aG91'@; put 'dEhvc3QmJmZ1bmN0aW9uIE9WKGMpe3JldHVybiEhKDE2JmMuZmxhZ3MpfShsKSYmZmgoYSxsLGNpKCksbC5zdHlsZXNXaXRob3V0SG9zdCwhMSksaGV9ZnVuY3Rpb24gV3QoYyxsLGEsZCl7cmV0dXJuIGRlKGMsbCxhLGQpLGhlKCksV3R9bGV0IHhyZT0oYyxsLGEsZCxoLGYpPT4oZzIoITAp'@; put 'LHo0KGQsaCxmdW5jdGlvbiB1aygpe3JldHVybiB3cy5sRnJhbWUuY3VycmVudE5hbWVzcGFjZX0oKSkpO2Z1bmN0aW9uIGFpKGMsbCxhKXtjb25zdCBkPWNpKCksaD1zbygpLGY9Yytfcyx2PWguZmlyc3RDcmVhdGVQYXNzP2Z1bmN0aW9uIFU5ZShjLGwsYSxkLGgpe2NvbnN0IGY9bC5jb25z'@; put 'dHMsdj1mMihmLGQpLE09TjUobCxjLDgsIm5nLWNvbnRhaW5lciIsdik7cmV0dXJuIG51bGwhPT12JiZ5eShNLHYsITApLENTKGwsYSxNLGYyKGYsaCkpLG51bGwhPT1sLnF1ZXJpZXMmJmwucXVlcmllcy5lbGVtZW50U3RhcnQobCxNKSxNfShmLGgsZCxsLGEpOmguZGF0YVtmXTtwMih2LCEw'@; put 'KTtjb25zdCBNPUVyZShoLGQsdixjKTtyZXR1cm4gZFtmXT1NLFg2KCkmJnMwKGgsZCxNLHYpLE51KE0sZCkscTAodikmJihiUyhoLGQsdikseVMoaCx2LGQpKSxudWxsIT1hJiZfUyhkLHYpLGFpfWZ1bmN0aW9uIHNpKCl7bGV0IGM9b2woKTtjb25zdCBsPXNvKCk7cmV0dXJuIGNDKCk/dUMo'@; put 'KTooYz1jLnBhcmVudCxwMihjLCExKSksbC5maXJzdENyZWF0ZVBhc3MmJihBdihsLGMpLGV1KGMpJiZsLnF1ZXJpZXMuZWxlbWVudEVuZChjKSksc2l9ZnVuY3Rpb24gTGwoYyxsLGEpe3JldHVybiBhaShjLGwsYSksc2koKSxMbH1sZXQgRXJlPShjLGwsYSxkKT0+KGcyKCEwKSxhUyhsW3Zz'@; put 'XSwiIikpO2Z1bmN0aW9uIE9uKCl7cmV0dXJuIGNpKCl9ZnVuY3Rpb24gb3AoYyxsLGEpe2NvbnN0IGQ9Y2koKTtyZXR1cm4gTmMoZCxhaCgpLGwpJiZPMChzbygpLEpvKCksZCxjLGwsZFt2c10sYSwhMCksb3B9ZnVuY3Rpb24gaFUoYyxsLGEpe2NvbnN0IGQ9Y2koKTtpZihOYyhkLGFoKCks'@; put 'bCkpe2NvbnN0IGY9c28oKSx2PUpvKCk7TzAoZix2LGQsYyxsLFc0KGhDKGYuZGF0YSksdixkKSxhLCEwKX1yZXR1cm4gaFV9Y29uc3Qgajg9dm9pZCAwO3ZhciBHOWU9WyJlbiIsW1siYSIsInAiXSxbIkFNIiwiUE0iXSxqOF0sW1siQU0iLCJQTSJdLGo4LGo4XSxbWyJTIiwiTSIsIlQiLCJX'@; put 'IiwiVCIsIkYiLCJTIl0sWyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sWyJTdSIsIk1vIiwiVHUiLCJXZSIsIlRoIiwiRnIiLCJT'@; put 'YSJdXSxqOCxbWyJKIiwiRiIsIk0iLCJBIiwiTSIsIkoiLCJKIiwiQSIsIlMiLCJPIiwiTiIsIkQiXSxbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLFsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJB'@; put 'cHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXV0sajgsW1siQiIsIkEiXSxbIkJDIiwiQUQiXSxbIkJlZm9yZSBDaHJpc3QiLCJBbm5vIERvbWluaSJdXSwwLFs2LDBdLFsiTS9kL3l5IiwiTU1NIGQs'@; put 'IHkiLCJNTU1NIGQsIHkiLCJFRUVFLCBNTU1NIGQsIHkiXSxbImg6bW0gYSIsImg6bW06c3MgYSIsImg6bW06c3MgYSB6IiwiaDptbTpzcyBhIHp6enoiXSxbInsxfSwgezB9IixqOCwiezF9ICdhdCcgezB9IixqOF0sWyIuIiwiLCIsIjsiLCIlIiwiKyIsIi0iLCJFIiwiXHhkNyIsIlx1MjAz'@; put 'MCIsIlx1MjIxZSIsIk5hTiIsIjoiXSxbIiMsIyMwLiMjIyIsIiMsIyMwJSIsIlx4YTQjLCMjMC4wMCIsIiNFMCJdLCJVU0QiLCIkIiwiVVMgRG9sbGFyIix7fSwibHRyIixmdW5jdGlvbiBZOWUoYyl7Y29uc3QgYT1NYXRoLmZsb29yKE1hdGguYWJzKGMpKSxkPWMudG9TdHJpbmcoKS5yZXBs'@; put 'YWNlKC9eW14uXSpcLj8vLCIiKS5sZW5ndGg7cmV0dXJuIDE9PT1hJiYwPT09ZD8xOjV9XTtsZXQgVnk9e307ZnVuY3Rpb24gYTEoYyl7Y29uc3QgbD1mdW5jdGlvbiBLOWUoYyl7cmV0dXJuIGMudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9fL2csIi0iKX0oYyk7bGV0IGE9QXJlKGwpO2lmKGEp'@; put 'cmV0dXJuIGE7Y29uc3QgZD1sLnNwbGl0KCItIilbMF07aWYoYT1BcmUoZCksYSlyZXR1cm4gYTtpZigiZW4iPT09ZClyZXR1cm4gRzllO3Rocm93IG5ldyBucig3MDEsITEpfWZ1bmN0aW9uIEFyZShjKXtyZXR1cm4gYyBpbiBWeXx8KFZ5W2NdPU50Lm5nJiZOdC5uZy5jb21tb24mJk50Lm5n'@; put 'LmNvbW1vbi5sb2NhbGVzJiZOdC5uZy5jb21tb24ubG9jYWxlc1tjXSksVnlbY119dmFyIFFsPWZ1bmN0aW9uKGMpe3JldHVybiBjW2MuTG9jYWxlSWQ9MF09IkxvY2FsZUlkIixjW2MuRGF5UGVyaW9kc0Zvcm1hdD0xXT0iRGF5UGVyaW9kc0Zvcm1hdCIsY1tjLkRheVBlcmlvZHNTdGFuZGFs'@; put 'b25lPTJdPSJEYXlQZXJpb2RzU3RhbmRhbG9uZSIsY1tjLkRheXNGb3JtYXQ9M109IkRheXNGb3JtYXQiLGNbYy5EYXlzU3RhbmRhbG9uZT00XT0iRGF5c1N0YW5kYWxvbmUiLGNbYy5Nb250aHNGb3JtYXQ9NV09Ik1vbnRoc0Zvcm1hdCIsY1tjLk1vbnRoc1N0YW5kYWxvbmU9Nl09Ik1vbnRo'@; put 'c1N0YW5kYWxvbmUiLGNbYy5FcmFzPTddPSJFcmFzIixjW2MuRmlyc3REYXlPZldlZWs9OF09IkZpcnN0RGF5T2ZXZWVrIixjW2MuV2Vla2VuZFJhbmdlPTldPSJXZWVrZW5kUmFuZ2UiLGNbYy5EYXRlRm9ybWF0PTEwXT0iRGF0ZUZvcm1hdCIsY1tjLlRpbWVGb3JtYXQ9MTFdPSJUaW1lRm9y'@; put 'bWF0IixjW2MuRGF0ZVRpbWVGb3JtYXQ9MTJdPSJEYXRlVGltZUZvcm1hdCIsY1tjLk51bWJlclN5bWJvbHM9MTNdPSJOdW1iZXJTeW1ib2xzIixjW2MuTnVtYmVyRm9ybWF0cz0xNF09Ik51bWJlckZvcm1hdHMiLGNbYy5DdXJyZW5jeUNvZGU9MTVdPSJDdXJyZW5jeUNvZGUiLGNbYy5DdXJy'@; put 'ZW5jeVN5bWJvbD0xNl09IkN1cnJlbmN5U3ltYm9sIixjW2MuQ3VycmVuY3lOYW1lPTE3XT0iQ3VycmVuY3lOYW1lIixjW2MuQ3VycmVuY2llcz0xOF09IkN1cnJlbmNpZXMiLGNbYy5EaXJlY3Rpb25hbGl0eT0xOV09IkRpcmVjdGlvbmFsaXR5IixjW2MuUGx1cmFsQ2FzZT0yMF09IlBsdXJh'@; put 'bENhc2UiLGNbYy5FeHRyYURhdGE9MjFdPSJFeHRyYURhdGEiLGN9KFFsfHx7fSk7Y29uc3QgQnk9ImVuLVVTIjtsZXQga3JlPUJ5O2Z1bmN0aW9uIEZ0KGMsbCxhLGQpe2NvbnN0IGg9Y2koKSxmPXNvKCksdj1vbCgpO3JldHVybiBtVShmLGgsaFt2c10sdixjLGwsZCksRnR9ZnVuY3Rpb24g'@; put 'Z1UoYyxsKXtjb25zdCBhPW9sKCksZD1jaSgpLGg9c28oKTtyZXR1cm4gbVUoaCxkLFc0KGhDKGguZGF0YSksYSxkKSxhLGMsbCksZ1V9ZnVuY3Rpb24gbVUoYyxsLGEsZCxoLGYsdil7Y29uc3QgTT1xMChkKSxHPWMuZmlyc3RDcmVhdGVQYXNzJiZwOChjKSxyZT1sW3NsXSx1ZT1qRChsKTts'@; put 'ZXQgeWU9ITA7aWYoMyZkLnR5cGV8fHYpe2NvbnN0IEdlPUkwKGQsbCksc3Q9dj92KEdlKTpHZSxwdD11ZS5sZW5ndGgsZHQ9dj9tbj0+dihfbChtbltkLmluZGV4XSkpOmQuaW5kZXg7bGV0IHF0PW51bGw7aWYoIXYmJk0mJihxdD1mdW5jdGlvbiBXdmUoYyxsLGEsZCl7Y29uc3QgaD1jLmNs'@; put 'ZWFudXA7aWYobnVsbCE9aClmb3IobGV0IGY9MDtmPGgubGVuZ3RoLTE7Zis9Mil7Y29uc3Qgdj1oW2ZdO2lmKHY9PT1hJiZoW2YrMV09PT1kKXtjb25zdCBNPWxbWDBdLEk9aFtmKzJdO3JldHVybiBNLmxlbmd0aD5JP01bSV06bnVsbH0ic3RyaW5nIj09dHlwZW9mIHYmJihmKz0yKX1yZXR1'@; put 'cm4gbnVsbH0oYyxsLGgsZC5pbmRleCkpLG51bGwhPT1xdCkocXQuX19uZ0xhc3RMaXN0ZW5lckZuX198fHF0KS5fX25nTmV4dExpc3RlbmVyRm5fXz1mLHF0Ll9fbmdMYXN0TGlzdGVuZXJGbl9fPWYseWU9ITE7ZWxzZXtmPW5pZShkLGwscmUsZiwhMSk7Y29uc3QgbW49YS5saXN0ZW4oc3Qs'@; put 'aCxmKTt1ZS5wdXNoKGYsbW4pLEcmJkcucHVzaChoLGR0LHB0LHB0KzEpfX1lbHNlIGY9bmllKGQsbCxyZSxmLCExKTtjb25zdCBFZT1kLm91dHB1dHM7bGV0IEJlO2lmKHllJiZudWxsIT09RWUmJihCZT1FZVtoXSkpe2NvbnN0IEdlPUJlLmxlbmd0aDtpZihHZSlmb3IobGV0IHN0PTA7c3Q8'@; put 'R2U7c3QrPTIpe2NvbnN0IHduPWxbQmVbc3RdXVtCZVtzdCsxXV0uc3Vic2NyaWJlKGYpLGhuPXVlLmxlbmd0aDt1ZS5wdXNoKGYsd24pLEcmJkcucHVzaChoLGQuaW5kZXgsaG4sLShobisxKSl9fX1mdW5jdGlvbiB0aWUoYyxsLGEsZCl7Y29uc3QgaD1fZShudWxsKTt0cnl7cmV0dXJuIGgy'@; put 'KDYsbCxhKSwhMSE9PWEoZCl9Y2F0Y2goZil7cmV0dXJuIFY1KGMsZiksITF9ZmluYWxseXtoMig3LGwsYSksX2UoaCl9fWZ1bmN0aW9uIG5pZShjLGwsYSxkLGgpe3JldHVybiBmdW5jdGlvbiBmKHYpe2lmKHY9PT1GdW5jdGlvbilyZXR1cm4gZDtiOChjLmNvbXBvbmVudE9mZnNldD4tMT9Q'@; put 'MShjLmluZGV4LGwpOmwpO2xldCBJPXRpZShsLGEsZCx2KSxHPWYuX19uZ05leHRMaXN0ZW5lckZuX187Zm9yKDtHOylJPXRpZShsLGEsRyx2KSYmSSxHPUcuX19uZ05leHRMaXN0ZW5lckZuX187cmV0dXJuIGgmJiExPT09SSYmdi5wcmV2ZW50RGVmYXVsdCgpLEl9fWZ1bmN0aW9uIExlKGM9'@; put 'MSl7cmV0dXJuIGZ1bmN0aW9uIHhWKGMpe3JldHVybih3cy5sRnJhbWUuY29udGV4dExWaWV3PWZ1bmN0aW9uIHNDKGMsbCl7Zm9yKDtjPjA7KWw9bFtyMF0sYy0tO3JldHVybiBsfShjLHdzLmxGcmFtZS5jb250ZXh0TFZpZXcpKVtzbF19KGMpfWZ1bmN0aW9uIFl2ZShjLGwpe2xldCBhPW51'@; put 'bGw7Y29uc3QgZD1mdW5jdGlvbiBjdihjKXtjb25zdCBsPWMuYXR0cnM7aWYobnVsbCE9bCl7Y29uc3QgYT1sLmluZGV4T2YoNSk7aWYoISgxJmEpKXJldHVybiBsW2ErMV19cmV0dXJuIG51bGx9KGMpO2ZvcihsZXQgaD0wO2g8bC5sZW5ndGg7aCsrKXtjb25zdCBmPWxbaF07aWYoIioiIT09'@; put 'Zil7aWYobnVsbD09PWQ/eTQoYyxmLCEwKTpVdyhkLGYpKXJldHVybiBofWVsc2UgYT1ofXJldHVybiBhfWZ1bmN0aW9uIHNhKGMpe2NvbnN0IGw9Y2koKVtqbF1bbmNdO2lmKCFsLnByb2plY3Rpb24pe2NvbnN0IGQ9bC5wcm9qZWN0aW9uPWZ1bmN0aW9uIHQyKGMsbCl7Y29uc3QgYT1bXTtm'@; put 'b3IobGV0IGQ9MDtkPGM7ZCsrKWEucHVzaChsKTtyZXR1cm4gYX0oYz9jLmxlbmd0aDoxLG51bGwpLGg9ZC5zbGljZSgpO2xldCBmPWwuY2hpbGQ7Zm9yKDtudWxsIT09Zjspe2NvbnN0IHY9Yz9ZdmUoZixjKTowO251bGwhPT12JiYoaFt2XT9oW3ZdLnByb2plY3Rpb25OZXh0PWY6ZFt2XT1m'@; put 'LGhbdl09ZiksZj1mLm5leHR9fX1mdW5jdGlvbiBXcihjLGw9MCxhKXtjb25zdCBkPWNpKCksaD1zbygpLGY9TjUoaCxfcytjLDE2LG51bGwsYXx8bnVsbCk7bnVsbD09PWYucHJvamVjdGlvbiYmKGYucHJvamVjdGlvbj1sKSx1QygpLCghZFtRY118fHY1KCkpJiYzMiZ+Zi5mbGFncyYmZnVu'@; put 'Y3Rpb24gYWooYyxsLGEpe3dEKGxbdnNdLDAsbCxhLHR5KGMsYSxsKSx1OChhLnBhcmVudHx8bFtuY10sYSxsKSl9KGgsZCxmKX1mdW5jdGlvbiB5TShjLGwsYSl7cmV0dXJuIHZVKGMsIiIsbCwiIixhKSx5TX1mdW5jdGlvbiB2VShjLGwsYSxkLGgpe2NvbnN0IGY9Y2koKSx2PVVsKGYsbCxh'@; put 'LGQpO3JldHVybiB2IT09THMmJk8wKHNvKCksSm8oKSxmLGMsdixmW3ZzXSxoLCExKSx2VX1mdW5jdGlvbiBhcyhjLGwsYSxkKXshZnVuY3Rpb24gd0koYyxsLGEsZCl7Y29uc3QgaD1zbygpO2lmKGguZmlyc3RDcmVhdGVQYXNzKXtjb25zdCBmPW9sKCk7U0koaCxuZXcgdkkobCxhLGQpLGYu'@; put 'aW5kZXgpLGZ1bmN0aW9uIE56KGMsbCl7Y29uc3QgYT1jLmNvbnRlbnRRdWVyaWVzfHwoYy5jb250ZW50UXVlcmllcz1bXSk7bCE9PShhLmxlbmd0aD9hW2EubGVuZ3RoLTFdOi0xKSYmYS5wdXNoKGMucXVlcmllcy5sZW5ndGgtMSxsKX0oaCxjKSwhKDImfmEpJiYoaC5zdGF0aWNDb250ZW50'@; put 'UXVlcmllcz0hMCl9cmV0dXJuIGJJKGgsY2koKSxhKX0oYyxsLGEsZCl9ZnVuY3Rpb24gRmEoYyxsLGEpeyFmdW5jdGlvbiBfSShjLGwsYSl7Y29uc3QgZD1zbygpO3JldHVybiBkLmZpcnN0Q3JlYXRlUGFzcyYmKFNJKGQsbmV3IHZJKGMsbCxhKSwtMSksISgyJn5sKSYmKGQuc3RhdGljVmll'@; put 'd1F1ZXJpZXM9ITApKSxiSShkLGNpKCksbCl9KGMsbCxhKX1mdW5jdGlvbiB5aShjKXtjb25zdCBsPWNpKCksYT1zbygpLGQ9ZkMoKTtqMyhkKzEpO2NvbnN0IGg9cVMoYSxkKTtpZihjLmRpcnR5JiZmdW5jdGlvbiBoVihjKXtyZXR1cm4hKDQmfmNbV2FdKX0obCk9PT0hKDImfmgubWV0YWRh'@; put 'dGEuZmxhZ3MpKXtpZihudWxsPT09aC5tYXRjaGVzKWMucmVzZXQoW10pO2Vsc2V7Y29uc3QgZj1NSShsLGQpO2MucmVzZXQoZixDayksYy5ub3RpZnlPbkNoYW5nZXMoKX1yZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBiaSgpe3JldHVybiBmdW5jdGlvbiBJOChjLGwpe3JldHVybiBjW2hk'@; put 'XS5xdWVyaWVzW2xdLnF1ZXJ5TGlzdH0oY2koKSxmQygpKX1mdW5jdGlvbiBkYShjKXtyZXR1cm4gRTQoZnVuY3Rpb24gd1YoKXtyZXR1cm4gd3MubEZyYW1lLmNvbnRleHRMVmlld30oKSxfcytjKX1mdW5jdGlvbiBPZShjLGw9IiIpe2NvbnN0IGE9Y2koKSxkPXNvKCksaD1jK19zLGY9ZC5m'@; put 'aXJzdENyZWF0ZVBhc3M/TjUoZCxoLDEsbCxudWxsKTpkLmRhdGFbaF0sdj1faWUoZCxhLGYsbCxjKTthW2hdPXYsWDYoKSYmczAoZCxhLHYsZikscDIoZiwhMSl9bGV0IF9pZT0oYyxsLGEsZCxoKT0+KGcyKCEwKSxmdW5jdGlvbiBqNChjLGwpe3JldHVybiBjLmNyZWF0ZVRleHQobCl9KGxb'@; put 'dnNdLGQpKTtmdW5jdGlvbiBTcihjKXtyZXR1cm4gTHIoIiIsYywiIiksU3J9ZnVuY3Rpb24gTHIoYyxsLGEpe2NvbnN0IGQ9Y2koKSxoPVVsKGQsYyxsLGEpO3JldHVybiBoIT09THMmJmIyKGQsRnUoKSxoKSxMcn1mdW5jdGlvbiBCdShjLGwsYSxkLGgpe2NvbnN0IGY9Y2koKSx2PWZ1bmN0'@; put 'aW9uIFpsKGMsbCxhLGQsaCxmKXtjb25zdCBNPWlwKGMsUmYoKSxhLGgpO3JldHVybiBMZigyKSxNP2wrU2EoYSkrZCtTYShoKStmOkxzfShmLGMsbCxhLGQsaCk7cmV0dXJuIHYhPT1McyYmYjIoZixGdSgpLHYpLEJ1fWZ1bmN0aW9uIFpmKGMsbCxhLGQsaCxmLHYpe2NvbnN0IE09Y2koKSxJ'@; put 'PWZ1bmN0aW9uIGd1KGMsbCxhLGQsaCxmLHYsTSl7Y29uc3QgRz1SeShjLFJmKCksYSxoLHYpO3JldHVybiBMZigzKSxHP2wrU2EoYSkrZCtTYShoKStmK1NhKHYpK006THN9KE0sYyxsLGEsZCxoLGYsdik7cmV0dXJuIEkhPT1McyYmYjIoTSxGdSgpLEkpLFpmfWZ1bmN0aW9uIEpJKGMsbCxh'@; put 'LGQsaCxmLHYsTSxJKXtjb25zdCBHPWNpKCkscmU9ZnVuY3Rpb24gQ2woYyxsLGEsZCxoLGYsdixNLEksRyl7Y29uc3QgdWU9YmQoYyxSZigpLGEsaCx2LEkpO3JldHVybiBMZig0KSx1ZT9sK1NhKGEpK2QrU2EoaCkrZitTYSh2KStNK1NhKEkpK0c6THN9KEcsYyxsLGEsZCxoLGYsdixNLEkp'@; put 'O3JldHVybiByZSE9PUxzJiZiMihHLEZ1KCkscmUpLEpJfWZ1bmN0aW9uIGZpKGMsbCxhKXtFSShsKSYmKGw9bCgpKTtjb25zdCBkPWNpKCk7cmV0dXJuIE5jKGQsYWgoKSxsKSYmTzAoc28oKSxKbygpLGQsYyxsLGRbdnNdLGEsITEpLGZpfWZ1bmN0aW9uIGdpKGMsbCl7Y29uc3QgYT1FSShj'@; put 'KTtyZXR1cm4gYSYmYy5zZXQobCksYX1mdW5jdGlvbiBwaShjLGwpe2NvbnN0IGE9Y2koKSxkPXNvKCksaD1vbCgpO3JldHVybiBtVShkLGEsYVt2c10saCxjLGwpLHBpfWZ1bmN0aW9uIHlVKGMsbCxhLGQsaCl7aWYoYz1HaShjKSxBcnJheS5pc0FycmF5KGMpKWZvcihsZXQgZj0wO2Y8Yy5s'@; put 'ZW5ndGg7ZisrKXlVKGNbZl0sbCxhLGQsaCk7ZWxzZXtjb25zdCBmPXNvKCksdj1jaSgpLE09b2woKTtsZXQgST14ZihjKT9jOkdpKGMucHJvdmlkZSk7Y29uc3QgRz15dihjKSxyZT0xMDQ4NTc1Jk0ucHJvdmlkZXJJbmRleGVzLHVlPU0uZGlyZWN0aXZlU3RhcnQseWU9TS5wcm92aWRlcklu'@; put 'ZGV4ZXM+PjIwO2lmKHhmKGMpfHwhYy5tdWx0aSl7Y29uc3QgRWU9bmV3IEYxKEcsaCwkZSksQmU9X1UoSSxsLGg/cmU6cmUreWUsdWUpOy0xPT09QmU/KHBkKE92KE0sdiksZixJKSxiVShmLGMsbC5sZW5ndGgpLGwucHVzaChJKSxNLmRpcmVjdGl2ZVN0YXJ0KyssTS5kaXJlY3RpdmVFbmQr'@; put 'KyxoJiYoTS5wcm92aWRlckluZGV4ZXMrPTEwNDg1NzYpLGEucHVzaChFZSksdi5wdXNoKEVlKSk6KGFbQmVdPUVlLHZbQmVdPUVlKX1lbHNle2NvbnN0IEVlPV9VKEksbCxyZSt5ZSx1ZSksQmU9X1UoSSxsLHJlLHJlK3llKSxzdD1CZT49MCYmYVtCZV07aWYoaCYmIXN0fHwhaCYmIShFZT49'@; put 'MCYmYVtFZV0pKXtwZChPdihNLHYpLGYsSSk7Y29uc3QgcHQ9ZnVuY3Rpb24gZHllKGMsbCxhLGQsaCl7Y29uc3QgZj1uZXcgRjEoYyxhLCRlKTtyZXR1cm4gZi5tdWx0aT1bXSxmLmluZGV4PWwsZi5jb21wb25lbnRQcm92aWRlcnM9MCxFaWUoZixoLGQmJiFhKSxmfShoP3V5ZTpjeWUsYS5s'@; put 'ZW5ndGgsaCxkLEcpOyFoJiZzdCYmKGFbQmVdLnByb3ZpZGVyRmFjdG9yeT1wdCksYlUoZixjLGwubGVuZ3RoLDApLGwucHVzaChJKSxNLmRpcmVjdGl2ZVN0YXJ0KyssTS5kaXJlY3RpdmVFbmQrKyxoJiYoTS5wcm92aWRlckluZGV4ZXMrPTEwNDg1NzYpLGEucHVzaChwdCksdi5wdXNoKHB0'@; put 'KX1lbHNlIGJVKGYsYyxFZT4tMT9FZTpCZSxFaWUoYVtoP0JlOkVlXSxHLCFoJiZkKSk7IWgmJmQmJnN0JiZhW0JlXS5jb21wb25lbnRQcm92aWRlcnMrK319fWZ1bmN0aW9uIGJVKGMsbCxhLGQpe2NvbnN0IGg9eGYobCksZj1mdW5jdGlvbiBQNihjKXtyZXR1cm4hIWMudXNlQ2xhc3N9KGwp'@; put 'O2lmKGh8fGYpe2NvbnN0IEk9KGY/R2kobC51c2VDbGFzcyk6bCkucHJvdG90eXBlLm5nT25EZXN0cm95O2lmKEkpe2NvbnN0IEc9Yy5kZXN0cm95SG9va3N8fChjLmRlc3Ryb3lIb29rcz1bXSk7aWYoIWgmJmwubXVsdGkpe2NvbnN0IHJlPUcuaW5kZXhPZihhKTstMT09PXJlP0cucHVzaChh'@; put 'LFtkLEldKTpHW3JlKzFdLnB1c2goZCxJKX1lbHNlIEcucHVzaChhLEkpfX19ZnVuY3Rpb24gRWllKGMsbCxhKXtyZXR1cm4gYSYmYy5jb21wb25lbnRQcm92aWRlcnMrKyxjLm11bHRpLnB1c2gobCktMX1mdW5jdGlvbiBfVShjLGwsYSxkKXtmb3IobGV0IGg9YTtoPGQ7aCsrKWlmKGxbaF09'@; put 'PT1jKXJldHVybiBoO3JldHVybi0xfWZ1bmN0aW9uIGN5ZShjLGwsYSxkKXtyZXR1cm4gd1UodGhpcy5tdWx0aSxbXSl9ZnVuY3Rpb24gdXllKGMsbCxhLGQpe2NvbnN0IGg9dGhpcy5tdWx0aTtsZXQgZjtpZih0aGlzLnByb3ZpZGVyRmFjdG9yeSl7Y29uc3Qgdj10aGlzLnByb3ZpZGVyRmFj'@; put 'dG9yeS5jb21wb25lbnRQcm92aWRlcnMsTT1ENChhLGFbWGldLHRoaXMucHJvdmlkZXJGYWN0b3J5LmluZGV4LGQpO2Y9TS5zbGljZSgwLHYpLHdVKGgsZik7Zm9yKGxldCBJPXY7STxNLmxlbmd0aDtJKyspZi5wdXNoKE1bSV0pfWVsc2UgZj1bXSx3VShoLGYpO3JldHVybiBmfWZ1bmN0aW9u'@; put 'IHdVKGMsbCl7Zm9yKGxldCBhPTA7YTxjLmxlbmd0aDthKyspbC5wdXNoKCgwLGNbYV0pKCkpO3JldHVybiBsfWZ1bmN0aW9uIHVhKGMsbD1bXSl7cmV0dXJuIGE9PnthLnByb3ZpZGVyc1Jlc29sdmVyPShkLGgpPT5mdW5jdGlvbiBseWUoYyxsLGEpe2NvbnN0IGQ9c28oKTtpZihkLmZpcnN0'@; put 'Q3JlYXRlUGFzcyl7Y29uc3QgaD1IYyhjKTt5VShhLGQuZGF0YSxkLmJsdWVwcmludCxoLCEwKSx5VShsLGQuZGF0YSxkLmJsdWVwcmludCxoLCExKX19KGQsaD9oKGMpOmMsbCl9fWxldCBoeWU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLl9pbmplY3Rvcj1hLHRoaXMuY2Fj'@; put 'aGVkSW5qZWN0b3JzPW5ldyBNYXB9Z2V0T3JDcmVhdGVTdGFuZGFsb25lSW5qZWN0b3IoYSl7aWYoIWEuc3RhbmRhbG9uZSlyZXR1cm4gbnVsbDtpZighdGhpcy5jYWNoZWRJbmplY3RvcnMuaGFzKGEpKXtjb25zdCBkPXJoKDAsYS50eXBlKSxoPWQubGVuZ3RoPjA/RzQoW2RdLHRoaXMuX2lu'@; put 'amVjdG9yLGBTdGFuZGFsb25lWyR7YS50eXBlLm5hbWV9XWApOm51bGw7dGhpcy5jYWNoZWRJbmplY3RvcnMuc2V0KGEsaCl9cmV0dXJuIHRoaXMuY2FjaGVkSW5qZWN0b3JzLmdldChhKX1uZ09uRGVzdHJveSgpe3RyeXtmb3IoY29uc3QgYSBvZiB0aGlzLmNhY2hlZEluamVjdG9ycy52YWx1'@; put 'ZXMoKSludWxsIT09YSYmYS5kZXN0cm95KCl9ZmluYWxseXt0aGlzLmNhY2hlZEluamVjdG9ycy5jbGVhcigpfX1zdGF0aWN7dGhpcy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLHByb3ZpZGVkSW46ImVudmlyb25tZW50IixmYWN0b3J5OigpPT5uZXcgYyhDcihxbCkpfSl9fXJldHVybiBjfSko'@; put 'KTtmdW5jdGlvbiBRSShjKXtfMigiTmdTdGFuZGFsb25lIiksYy5nZXRTdGFuZGFsb25lSW5qZWN0b3I9bD0+bC5nZXQoaHllKS5nZXRPckNyZWF0ZVN0YW5kYWxvbmVJbmplY3RvcihjKX1mdW5jdGlvbiBabyhjLGwsYSl7Y29uc3QgZD1SMCgpK2MsaD1jaSgpO3JldHVybiBoW2RdPT09THM/'@; put 'dzIoaCxkLGE/bC5jYWxsKGEpOmwoKSk6ZnVuY3Rpb24gRWMoYyxsKXtyZXR1cm4gY1tsXX0oaCxkKX1mdW5jdGlvbiBscChjLGwsYSxkKXtyZXR1cm4gQWllKGNpKCksUjAoKSxjLGwsYSxkKX1mdW5jdGlvbiBjcChjLGwsYSxkLGgpe3JldHVybiBraWUoY2koKSxSMCgpLGMsbCxhLGQsaCl9'@; put 'ZnVuY3Rpb24gYk0oYyxsLGEsZCxoLGYpe3JldHVybiBEaWUoY2koKSxSMCgpLGMsbCxhLGQsaCxmKX1mdW5jdGlvbiB0UihjLGwsYSxkLGgsZix2KXtyZXR1cm4gZnVuY3Rpb24gSWllKGMsbCxhLGQsaCxmLHYsTSxJKXtjb25zdCBHPWwrYTtyZXR1cm4gYmQoYyxHLGgsZix2LE0pP3cyKGMs'@; put 'Rys0LEk/ZC5jYWxsKEksaCxmLHYsTSk6ZChoLGYsdixNKSk6X00oYyxHKzQpfShjaSgpLFIwKCksYyxsLGEsZCxoLGYsdil9ZnVuY3Rpb24gX00oYyxsKXtjb25zdCBhPWNbbF07cmV0dXJuIGE9PT1Mcz92b2lkIDA6YX1mdW5jdGlvbiBBaWUoYyxsLGEsZCxoLGYpe2NvbnN0IHY9bCthO3Jl'@; put 'dHVybiBOYyhjLHYsaCk/dzIoYyx2KzEsZj9kLmNhbGwoZixoKTpkKGgpKTpfTShjLHYrMSl9ZnVuY3Rpb24ga2llKGMsbCxhLGQsaCxmLHYpe2NvbnN0IE09bCthO3JldHVybiBpcChjLE0saCxmKT93MihjLE0rMix2P2QuY2FsbCh2LGgsZik6ZChoLGYpKTpfTShjLE0rMil9ZnVuY3Rpb24g'@; put 'RGllKGMsbCxhLGQsaCxmLHYsTSl7Y29uc3QgST1sK2E7cmV0dXJuIFJ5KGMsSSxoLGYsdik/dzIoYyxJKzMsTT9kLmNhbGwoTSxoLGYsdik6ZChoLGYsdikpOl9NKGMsSSszKX1mdW5jdGlvbiBRbyhjLGwpe2NvbnN0IGE9c28oKTtsZXQgZDtjb25zdCBoPWMrX3M7YS5maXJzdENyZWF0ZVBh'@; put 'c3M/KGQ9ZnVuY3Rpb24gX3llKGMsbCl7aWYobClmb3IobGV0IGE9bC5sZW5ndGgtMTthPj0wO2EtLSl7Y29uc3QgZD1sW2FdO2lmKGM9PT1kLm5hbWUpcmV0dXJuIGR9fShsLGEucGlwZVJlZ2lzdHJ5KSxhLmRhdGFbaF09ZCxkLm9uRGVzdHJveSYmKGEuZGVzdHJveUhvb2tzPz89W10pLnB1'@; put 'c2goaCxkLm9uRGVzdHJveSkpOmQ9YS5kYXRhW2hdO2NvbnN0IGY9ZC5mYWN0b3J5fHwoZC5mYWN0b3J5PWh1KGQudHlwZSkpLE09eWwoJGUpO3RyeXtjb25zdCBJPVJ2KCExKSxHPWYoKTtyZXR1cm4gUnYoSSksZnVuY3Rpb24gWHZlKGMsbCxhLGQpe2E+PWMuZGF0YS5sZW5ndGgmJihjLmRh'@; put 'dGFbYV09bnVsbCxjLmJsdWVwcmludFthXT1udWxsKSxsW2FdPWR9KGEsY2koKSxoLEcpLEd9ZmluYWxseXt5bChNKX19ZnVuY3Rpb24gQWMoYyxsLGEpe2NvbnN0IGQ9YytfcyxoPWNpKCksZj1FNChoLGQpO3JldHVybiB3TShoLGQpP0FpZShoLFIwKCksbCxmLnRyYW5zZm9ybSxhLGYpOmYu'@; put 'dHJhbnNmb3JtKGEpfWZ1bmN0aW9uIHo4KGMsbCxhLGQpe2NvbnN0IGg9YytfcyxmPWNpKCksdj1FNChmLGgpO3JldHVybiB3TShmLGgpP2tpZShmLFIwKCksbCx2LnRyYW5zZm9ybSxhLGQsdik6di50cmFuc2Zvcm0oYSxkKX1mdW5jdGlvbiBDVShjLGwsYSxkLGgpe2NvbnN0IGY9Yytfcyx2'@; put 'PWNpKCksTT1FNCh2LGYpO3JldHVybiB3TSh2LGYpP0RpZSh2LFIwKCksbCxNLnRyYW5zZm9ybSxhLGQsaCxNKTpNLnRyYW5zZm9ybShhLGQsaCl9ZnVuY3Rpb24gd00oYyxsKXtyZXR1cm4gY1tYaV0uZGF0YVtsXS5wdXJlfWZ1bmN0aW9uIGdjKGMsbCl7cmV0dXJuIGN5KGMsbCl9Y2xhc3Mg'@; put 'U017Y29uc3RydWN0b3IobCl7dGhpcy5mdWxsPWw7Y29uc3QgYT1sLnNwbGl0KCIuIik7dGhpcy5tYWpvcj1hWzBdLHRoaXMubWlub3I9YVsxXSx0aGlzLnBhdGNoPWEuc2xpY2UoMikuam9pbigiLiIpfX1jb25zdCAkaWU9bmV3IFNNKCIxNy4zLjEyIik7bGV0IEtpZT0oKCk9PntjbGFzcyBj'@; put 'e2xvZyhhKXtjb25zb2xlLmxvZyhhKX13YXJuKGEpe2NvbnNvbGUud2FybihhKX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKX19c3RhdGlje3RoaXMuXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjLHByb3ZpZGVkSW46'@; put 'InBsYXRmb3JtIn0pfX1yZXR1cm4gY30pKCk7Y29uc3QgZWFlPW5ldyBTdCgiIiksaVI9bmV3IFN0KCIiKTtsZXQgRFUsQVU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCl7dGhpcy5fbmdab25lPWEsdGhpcy5yZWdpc3RyeT1kLHRoaXMuX3BlbmRpbmdDb3VudD0wLHRoaXMuX2lz'@; put 'Wm9uZVN0YWJsZT0hMCx0aGlzLl9jYWxsYmFja3M9W10sdGhpcy50YXNrVHJhY2tpbmdab25lPW51bGwsRFV8fChmdW5jdGlvbiBnYmUoYyl7RFU9Y30oaCksaC5hZGRUb1dpbmRvdyhkKSksdGhpcy5fd2F0Y2hBbmd1bGFyRXZlbnRzKCksYS5ydW4oKCk9Pnt0aGlzLnRhc2tUcmFja2luZ1pv'@; put 'bmU9dHlwZW9mIFpvbmU+InUiP251bGw6Wm9uZS5jdXJyZW50LmdldCgiVGFza1RyYWNraW5nWm9uZSIpfSl9X3dhdGNoQW5ndWxhckV2ZW50cygpe3RoaXMuX25nWm9uZS5vblVuc3RhYmxlLnN1YnNjcmliZSh7bmV4dDooKT0+e3RoaXMuX2lzWm9uZVN0YWJsZT0hMX19KSx0aGlzLl9uZ1pv'@; put 'bmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0aGlzLl9uZ1pvbmUub25TdGFibGUuc3Vic2NyaWJlKHtuZXh0OigpPT57R2EuYXNzZXJ0Tm90SW5Bbmd1bGFyWm9uZSgpLHF1ZXVlTWljcm90YXNrKCgpPT57dGhpcy5faXNab25lU3RhYmxlPSEwLHRoaXMuX3J1bkNhbGxiYWNrc0lmUmVhZHko'@; put 'KX0pfX0pfSl9aW5jcmVhc2VQZW5kaW5nUmVxdWVzdENvdW50KCl7cmV0dXJuIHRoaXMuX3BlbmRpbmdDb3VudCs9MSx0aGlzLl9wZW5kaW5nQ291bnR9ZGVjcmVhc2VQZW5kaW5nUmVxdWVzdENvdW50KCl7aWYodGhpcy5fcGVuZGluZ0NvdW50LT0xLHRoaXMuX3BlbmRpbmdDb3VudDwwKXRo'@; put 'cm93IG5ldyBFcnJvcigicGVuZGluZyBhc3luYyByZXF1ZXN0cyBiZWxvdyB6ZXJvIik7cmV0dXJuIHRoaXMuX3J1bkNhbGxiYWNrc0lmUmVhZHkoKSx0aGlzLl9wZW5kaW5nQ291bnR9aXNTdGFibGUoKXtyZXR1cm4gdGhpcy5faXNab25lU3RhYmxlJiYwPT09dGhpcy5fcGVuZGluZ0NvdW50'@; put 'JiYhdGhpcy5fbmdab25lLmhhc1BlbmRpbmdNYWNyb3Rhc2tzfV9ydW5DYWxsYmFja3NJZlJlYWR5KCl7aWYodGhpcy5pc1N0YWJsZSgpKXF1ZXVlTWljcm90YXNrKCgpPT57Zm9yKDswIT09dGhpcy5fY2FsbGJhY2tzLmxlbmd0aDspe2xldCBhPXRoaXMuX2NhbGxiYWNrcy5wb3AoKTtjbGVh'@; put 'clRpbWVvdXQoYS50aW1lb3V0SWQpLGEuZG9uZUNiKCl9fSk7ZWxzZXtsZXQgYT10aGlzLmdldFBlbmRpbmdUYXNrcygpO3RoaXMuX2NhbGxiYWNrcz10aGlzLl9jYWxsYmFja3MuZmlsdGVyKGQ9PiFkLnVwZGF0ZUNifHwhZC51cGRhdGVDYihhKXx8KGNsZWFyVGltZW91dChkLnRpbWVvdXRJ'@; put 'ZCksITEpKX19Z2V0UGVuZGluZ1Rhc2tzKCl7cmV0dXJuIHRoaXMudGFza1RyYWNraW5nWm9uZT90aGlzLnRhc2tUcmFja2luZ1pvbmUubWFjcm9UYXNrcy5tYXAoYT0+KHtzb3VyY2U6YS5zb3VyY2UsY3JlYXRpb25Mb2NhdGlvbjphLmNyZWF0aW9uTG9jYXRpb24sZGF0YTphLmRhdGF9KSk6'@; put 'W119YWRkQ2FsbGJhY2soYSxkLGgpe2xldCBmPS0xO2QmJmQ+MCYmKGY9c2V0VGltZW91dCgoKT0+e3RoaXMuX2NhbGxiYWNrcz10aGlzLl9jYWxsYmFja3MuZmlsdGVyKHY9PnYudGltZW91dElkIT09ZiksYSgpfSxkKSksdGhpcy5fY2FsbGJhY2tzLnB1c2goe2RvbmVDYjphLHRpbWVvdXRJ'@; put 'ZDpmLHVwZGF0ZUNiOmh9KX13aGVuU3RhYmxlKGEsZCxoKXtpZihoJiYhdGhpcy50YXNrVHJhY2tpbmdab25lKXRocm93IG5ldyBFcnJvcignVGFzayB0cmFja2luZyB6b25lIGlzIHJlcXVpcmVkIHdoZW4gcGFzc2luZyBhbiB1cGRhdGUgY2FsbGJhY2sgdG8gd2hlblN0YWJsZSgpLiBJcyAi'@; put 'em9uZS5qcy9wbHVnaW5zL3Rhc2stdHJhY2tpbmciIGxvYWRlZD8nKTt0aGlzLmFkZENhbGxiYWNrKGEsZCxoKSx0aGlzLl9ydW5DYWxsYmFja3NJZlJlYWR5KCl9Z2V0UGVuZGluZ1JlcXVlc3RDb3VudCgpe3JldHVybiB0aGlzLl9wZW5kaW5nQ291bnR9cmVnaXN0ZXJBcHBsaWNhdGlvbihh'@; put 'KXt0aGlzLnJlZ2lzdHJ5LnJlZ2lzdGVyQXBwbGljYXRpb24oYSx0aGlzKX11bnJlZ2lzdGVyQXBwbGljYXRpb24oYSl7dGhpcy5yZWdpc3RyeS51bnJlZ2lzdGVyQXBwbGljYXRpb24oYSl9ZmluZFByb3ZpZGVycyhhLGQsaCl7cmV0dXJuW119c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0'@; put 'aW9uKGQpe3JldHVybiBuZXcoZHx8YykoQ3IoR2EpLENyKGtVKSxDcihpUikpfX1zdGF0aWN7dGhpcy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KX19cmV0dXJuIGN9KSgpLGtVPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLl9hcHBsaWNhdGlv'@; put 'bnM9bmV3IE1hcH1yZWdpc3RlckFwcGxpY2F0aW9uKGEsZCl7dGhpcy5fYXBwbGljYXRpb25zLnNldChhLGQpfXVucmVnaXN0ZXJBcHBsaWNhdGlvbihhKXt0aGlzLl9hcHBsaWNhdGlvbnMuZGVsZXRlKGEpfXVucmVnaXN0ZXJBbGxBcHBsaWNhdGlvbnMoKXt0aGlzLl9hcHBsaWNhdGlvbnMu'@; put 'Y2xlYXIoKX1nZXRUZXN0YWJpbGl0eShhKXtyZXR1cm4gdGhpcy5fYXBwbGljYXRpb25zLmdldChhKXx8bnVsbH1nZXRBbGxUZXN0YWJpbGl0aWVzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5fYXBwbGljYXRpb25zLnZhbHVlcygpKX1nZXRBbGxSb290RWxlbWVudHMoKXtyZXR1cm4gQXJy'@; put 'YXkuZnJvbSh0aGlzLl9hcHBsaWNhdGlvbnMua2V5cygpKX1maW5kVGVzdGFiaWxpdHlJblRyZWUoYSxkPSEwKXtyZXR1cm4gRFU/LmZpbmRUZXN0YWJpbGl0eUluVHJlZSh0aGlzLGEsZCk/P251bGx9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9'@; put 'fXN0YXRpY3t0aGlzLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhYyxwcm92aWRlZEluOiJwbGF0Zm9ybSJ9KX19cmV0dXJuIGN9KSgpO2Z1bmN0aW9uIHhNKGMpe3JldHVybiEhYyYmImZ1bmN0aW9uIj09dHlwZW9mIGMudGhlbn1mdW5jdGlvbiB0YWUoYyl7cmV0'@; put 'dXJuISFjJiYiZnVuY3Rpb24iPT10eXBlb2YgYy5zdWJzY3JpYmV9Y29uc3QgSVU9bmV3IFN0KCIiKTtsZXQgUlU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuaW5pdGlhbGl6ZWQ9ITEsdGhpcy5kb25lPSExLHRoaXMuZG9uZVByb21pc2U9bmV3IFByb21pc2UoKGEsZCk9Pnt0'@; put 'aGlzLnJlc29sdmU9YSx0aGlzLnJlamVjdD1kfSksdGhpcy5hcHBJbml0cz1oaShJVSx7b3B0aW9uYWw6ITB9KT8/W119cnVuSW5pdGlhbGl6ZXJzKCl7aWYodGhpcy5pbml0aWFsaXplZClyZXR1cm47Y29uc3QgYT1bXTtmb3IoY29uc3QgaCBvZiB0aGlzLmFwcEluaXRzKXtjb25zdCBmPWgo'@; put 'KTtpZih4TShmKSlhLnB1c2goZik7ZWxzZSBpZih0YWUoZikpe2NvbnN0IHY9bmV3IFByb21pc2UoKE0sSSk9PntmLnN1YnNjcmliZSh7Y29tcGxldGU6TSxlcnJvcjpJfSl9KTthLnB1c2godil9fWNvbnN0IGQ9KCk9Pnt0aGlzLmRvbmU9ITAsdGhpcy5yZXNvbHZlKCl9O1Byb21pc2UuYWxs'@; put 'KGEpLnRoZW4oKCk9PntkKCl9KS5jYXRjaChoPT57dGhpcy5yZWplY3QoaCl9KSwwPT09YS5sZW5ndGgmJmQoKSx0aGlzLmluaXRpYWxpemVkPSEwfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpfX1zdGF0aWN7dGhpcy5cdTAyNzVwcm92PXJuKHt0'@; put 'b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KX19cmV0dXJuIGN9KSgpO2NvbnN0IExVPW5ldyBTdCgiIik7ZnVuY3Rpb24gaWFlKGMsbCl7cmV0dXJuIEFycmF5LmlzQXJyYXkobCk/bC5yZWR1Y2UoaWFlLGMpOnsuLi5jLC4uLmx9fWxldCB1cD0oKCk9Pntj'@; put 'bGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5fYm9vdHN0cmFwTGlzdGVuZXJzPVtdLHRoaXMuX3J1bm5pbmdUaWNrPSExLHRoaXMuX2Rlc3Ryb3llZD0hMSx0aGlzLl9kZXN0cm95TGlzdGVuZXJzPVtdLHRoaXMuX3ZpZXdzPVtdLHRoaXMuaW50ZXJuYWxFcnJvckhhbmRsZXI9aGkoX2spLHRo'@; put 'aXMuYWZ0ZXJSZW5kZXJFZmZlY3RNYW5hZ2VyPWhpKEU4KSx0aGlzLmV4dGVybmFsVGVzdFZpZXdzPW5ldyBTZXQsdGhpcy5iZWZvcmVSZW5kZXI9bmV3IEduLHRoaXMuYWZ0ZXJUaWNrPW5ldyBHbix0aGlzLmNvbXBvbmVudFR5cGVzPVtdLHRoaXMuY29tcG9uZW50cz1bXSx0aGlzLmlzU3Rh'@; put 'YmxlPWhpKEJmKS5oYXNQZW5kaW5nVGFza3MucGlwZShQcihhPT4hYSkpLHRoaXMuX2luamVjdG9yPWhpKHFsKX1nZXQgZGVzdHJveWVkKCl7cmV0dXJuIHRoaXMuX2Rlc3Ryb3llZH1nZXQgaW5qZWN0b3IoKXtyZXR1cm4gdGhpcy5faW5qZWN0b3J9Ym9vdHN0cmFwKGEsZCl7Y29uc3QgaD1h'@; put 'IGluc3RhbmNlb2Ygbkk7aWYoIXRoaXMuX2luamVjdG9yLmdldChSVSkuZG9uZSl0aHJvdyFoJiZmdW5jdGlvbiBhMihjKXtjb25zdCBsPUJzKGMpfHxTYyhjKXx8cWMoYyk7cmV0dXJuIG51bGwhPT1sJiZsLnN0YW5kYWxvbmV9KGEpLG5ldyBucig0MDUsITEpO2xldCB2O3Y9aD9hOnRoaXMu'@; put 'X2luamVjdG9yLmdldCh6NSkucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoYSksdGhpcy5jb21wb25lbnRUeXBlcy5wdXNoKHYuY29tcG9uZW50VHlwZSk7Y29uc3QgTT1mdW5jdGlvbiBtYmUoYyl7cmV0dXJuIGMuaXNCb3VuZFRvTW9kdWxlfSh2KT92b2lkIDA6dGhpcy5faW5qZWN0b3IuZ2V0'@; put 'KHJwKSxHPXYuY3JlYXRlKERvLk5VTEwsW10sZHx8di5zZWxlY3RvcixNKSxyZT1HLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQsdWU9Ry5pbmplY3Rvci5nZXQoZWFlLG51bGwpO3JldHVybiB1ZT8ucmVnaXN0ZXJBcHBsaWNhdGlvbihyZSksRy5vbkRlc3Ryb3koKCk9Pnt0aGlzLmRldGFjaFZp'@; put 'ZXcoRy5ob3N0VmlldyksYVIodGhpcy5jb21wb25lbnRzLEcpLHVlPy51bnJlZ2lzdGVyQXBwbGljYXRpb24ocmUpfSksdGhpcy5fbG9hZENvbXBvbmVudChHKSxHfXRpY2soKXt0aGlzLl90aWNrKCEwKX1fdGljayhhKXtpZih0aGlzLl9ydW5uaW5nVGljayl0aHJvdyBuZXcgbnIoMTAxLCEx'@; put 'KTtjb25zdCBkPV9lKG51bGwpO3RyeXt0aGlzLl9ydW5uaW5nVGljaz0hMCx0aGlzLmRldGVjdENoYW5nZXNJbkF0dGFjaGVkVmlld3MoYSl9Y2F0Y2goaCl7dGhpcy5pbnRlcm5hbEVycm9ySGFuZGxlcihoKX1maW5hbGx5e3RoaXMuYWZ0ZXJUaWNrLm5leHQoKSx0aGlzLl9ydW5uaW5nVGlj'@; put 'az0hMSxfZShkKX19ZGV0ZWN0Q2hhbmdlc0luQXR0YWNoZWRWaWV3cyhhKXtsZXQgZD0wO2NvbnN0IGg9dGhpcy5hZnRlclJlbmRlckVmZmVjdE1hbmFnZXI7Zm9yKDs7KXtpZihkPT09WkQpdGhyb3cgbmV3IG5yKDEwMywhMSk7aWYoYSl7Y29uc3QgZj0wPT09ZDt0aGlzLmJlZm9yZVJlbmRl'@; put 'ci5uZXh0KGYpO2ZvcihsZXR7X2xWaWV3OnYsbm90aWZ5RXJyb3JIYW5kbGVyOk19b2YgdGhpcy5fdmlld3MpeWJlKHYsZixNKX1pZihkKyssaC5leGVjdXRlSW50ZXJuYWxDYWxsYmFja3MoKSwhWy4uLnRoaXMuZXh0ZXJuYWxUZXN0Vmlld3Mua2V5cygpLC4uLnRoaXMuX3ZpZXdzXS5zb21l'@; put 'KCh7X2xWaWV3OmZ9KT0+T1UoZikpJiYoaC5leGVjdXRlKCksIVsuLi50aGlzLmV4dGVybmFsVGVzdFZpZXdzLmtleXMoKSwuLi50aGlzLl92aWV3c10uc29tZSgoe19sVmlldzpmfSk9Pk9VKGYpKSkpYnJlYWt9fWF0dGFjaFZpZXcoYSl7Y29uc3QgZD1hO3RoaXMuX3ZpZXdzLnB1c2goZCks'@; put 'ZC5hdHRhY2hUb0FwcFJlZih0aGlzKX1kZXRhY2hWaWV3KGEpe2NvbnN0IGQ9YTthUih0aGlzLl92aWV3cyxkKSxkLmRldGFjaEZyb21BcHBSZWYoKX1fbG9hZENvbXBvbmVudChhKXt0aGlzLmF0dGFjaFZpZXcoYS5ob3N0VmlldyksdGhpcy50aWNrKCksdGhpcy5jb21wb25lbnRzLnB1c2go'@; put 'YSk7Y29uc3QgZD10aGlzLl9pbmplY3Rvci5nZXQoTFUsW10pO1suLi50aGlzLl9ib290c3RyYXBMaXN0ZW5lcnMsLi4uZF0uZm9yRWFjaChoPT5oKGEpKX1uZ09uRGVzdHJveSgpe2lmKCF0aGlzLl9kZXN0cm95ZWQpdHJ5e3RoaXMuX2Rlc3Ryb3lMaXN0ZW5lcnMuZm9yRWFjaChhPT5hKCkp'@; put 'LHRoaXMuX3ZpZXdzLnNsaWNlKCkuZm9yRWFjaChhPT5hLmRlc3Ryb3koKSl9ZmluYWxseXt0aGlzLl9kZXN0cm95ZWQ9ITAsdGhpcy5fdmlld3M9W10sdGhpcy5fYm9vdHN0cmFwTGlzdGVuZXJzPVtdLHRoaXMuX2Rlc3Ryb3lMaXN0ZW5lcnM9W119fW9uRGVzdHJveShhKXtyZXR1cm4gdGhp'@; put 'cy5fZGVzdHJveUxpc3RlbmVycy5wdXNoKGEpLCgpPT5hUih0aGlzLl9kZXN0cm95TGlzdGVuZXJzLGEpfWRlc3Ryb3koKXtpZih0aGlzLl9kZXN0cm95ZWQpdGhyb3cgbmV3IG5yKDQwNiwhMSk7Y29uc3QgYT10aGlzLl9pbmplY3RvcjthLmRlc3Ryb3kmJiFhLmRlc3Ryb3llZCYmYS5kZXN0'@; put 'cm95KCl9Z2V0IHZpZXdDb3VudCgpe3JldHVybiB0aGlzLl92aWV3cy5sZW5ndGh9d2FybklmRGVzdHJveWVkKCl7fXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpfX1zdGF0aWN7dGhpcy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5c'@; put 'dTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KX19cmV0dXJuIGN9KSgpO2Z1bmN0aW9uIGFSKGMsbCl7Y29uc3QgYT1jLmluZGV4T2YobCk7YT4tMSYmYy5zcGxpY2UoYSwxKX1mdW5jdGlvbiB5YmUoYyxsLGEpeyFsJiYhT1UoYyl8fGZ1bmN0aW9uIGJiZShjLGwsYSl7bGV0IGQ7YT8oZD0w'@; put 'LGNbV2FdfD0xMDI0KTpkPTY0JmNbV2FdPzA6MSxseShjLGwsZCl9KGMsYSxsKX1mdW5jdGlvbiBPVShjKXtyZXR1cm4gU3YoYyl9Y2xhc3MgX2Jle2NvbnN0cnVjdG9yKGwsYSl7dGhpcy5uZ01vZHVsZUZhY3Rvcnk9bCx0aGlzLmNvbXBvbmVudEZhY3Rvcmllcz1hfX1sZXQgYWFlPSgoKT0+'@; put 'e2NsYXNzIGN7Y29tcGlsZU1vZHVsZVN5bmMoYSl7cmV0dXJuIG5ldyBreShhKX1jb21waWxlTW9kdWxlQXN5bmMoYSl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLmNvbXBpbGVNb2R1bGVTeW5jKGEpKX1jb21waWxlTW9kdWxlQW5kQWxsQ29tcG9uZW50c1N5bmMoYSl7Y29uc3QgZD10'@; put 'aGlzLmNvbXBpbGVNb2R1bGVTeW5jKGEpLGY9SDEoUnUoYSkuZGVjbGFyYXRpb25zKS5yZWR1Y2UoKHYsTSk9Pntjb25zdCBJPUJzKE0pO3JldHVybiBJJiZ2LnB1c2gobmV3IGs4KEkpKSx2fSxbXSk7cmV0dXJuIG5ldyBfYmUoZCxmKX1jb21waWxlTW9kdWxlQW5kQWxsQ29tcG9uZW50c0Fz'@; put 'eW5jKGEpe3JldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5jb21waWxlTW9kdWxlQW5kQWxsQ29tcG9uZW50c1N5bmMoYSkpfWNsZWFyQ2FjaGUoKXt9Y2xlYXJDYWNoZUZvcihhKXt9Z2V0TW9kdWxlSWQoYSl7fXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3'@; put 'KGR8fGMpfX1zdGF0aWN7dGhpcy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KX19cmV0dXJuIGN9KSgpLFNiZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy56b25lPWhpKEdhKSx0aGlzLmFwcGxpY2F0aW9uUmVm'@; put 'PWhpKHVwKX1pbml0aWFsaXplKCl7dGhpcy5fb25NaWNyb3Rhc2tFbXB0eVN1YnNjcmlwdGlvbnx8KHRoaXMuX29uTWljcm90YXNrRW1wdHlTdWJzY3JpcHRpb249dGhpcy56b25lLm9uTWljcm90YXNrRW1wdHkuc3Vic2NyaWJlKHtuZXh0OigpPT57dGhpcy56b25lLnJ1bigoKT0+e3RoaXMu'@; put 'YXBwbGljYXRpb25SZWYudGljaygpfSl9fSkpfW5nT25EZXN0cm95KCl7dGhpcy5fb25NaWNyb3Rhc2tFbXB0eVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKX19c3RhdGlje3RoaXMuXHUwMjc1cHJv'@; put 'dj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSl9fXJldHVybiBjfSkoKTtmdW5jdGlvbiBNYmUoKXtjb25zdCBjPWhpKEdhKSxsPWhpKHYyKTtyZXR1cm4gYT0+Yy5ydW5PdXRzaWRlQW5ndWxhcigoKT0+bC5oYW5kbGVFcnJvcihhKSl9bGV0IEVi'@; put 'ZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5zdWJzY3JpcHRpb249bmV3IEp0LHRoaXMuaW5pdGlhbGl6ZWQ9ITEsdGhpcy56b25lPWhpKEdhKSx0aGlzLnBlbmRpbmdUYXNrcz1oaShCZil9aW5pdGlhbGl6ZSgpe2lmKHRoaXMuaW5pdGlhbGl6ZWQpcmV0dXJuO3RoaXMuaW5p'@; put 'dGlhbGl6ZWQ9ITA7bGV0IGE9bnVsbDshdGhpcy56b25lLmlzU3RhYmxlJiYhdGhpcy56b25lLmhhc1BlbmRpbmdNYWNyb3Rhc2tzJiYhdGhpcy56b25lLmhhc1BlbmRpbmdNaWNyb3Rhc2tzJiYoYT10aGlzLnBlbmRpbmdUYXNrcy5hZGQoKSksdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFy'@; put 'KCgpPT57dGhpcy5zdWJzY3JpcHRpb24uYWRkKHRoaXMuem9uZS5vblN0YWJsZS5zdWJzY3JpYmUoKCk9PntHYS5hc3NlcnROb3RJbkFuZ3VsYXJab25lKCkscXVldWVNaWNyb3Rhc2soKCk9PntudWxsIT09YSYmIXRoaXMuem9uZS5oYXNQZW5kaW5nTWFjcm90YXNrcyYmIXRoaXMuem9uZS5o'@; put 'YXNQZW5kaW5nTWljcm90YXNrcyYmKHRoaXMucGVuZGluZ1Rhc2tzLnJlbW92ZShhKSxhPW51bGwpfSl9KSl9KSx0aGlzLnN1YnNjcmlwdGlvbi5hZGQodGhpcy56b25lLm9uVW5zdGFibGUuc3Vic2NyaWJlKCgpPT57R2EuYXNzZXJ0SW5Bbmd1bGFyWm9uZSgpLGE/Pz10aGlzLnBlbmRpbmdU'@; put 'YXNrcy5hZGQoKX0pKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZh'@; put 'Yyxwcm92aWRlZEluOiJyb290In0pfX1yZXR1cm4gY30pKCk7Y29uc3QgV2Y9bmV3IFN0KCIiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OigpPT5oaShXZixyYS5PcHRpb25hbHxyYS5Ta2lwU2VsZil8fGZ1bmN0aW9uIFRiZSgpe3JldHVybiB0eXBlb2YgJGxvY2FsaXplPCJ1IiYmJGxv'@; put 'Y2FsaXplLmxvY2FsZXx8Qnl9KCl9KSxQVT1uZXcgU3QoIiIpO2xldCBjYWU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLl9pbmplY3Rvcj1hLHRoaXMuX21vZHVsZXM9W10sdGhpcy5fZGVzdHJveUxpc3RlbmVycz1bXSx0aGlzLl9kZXN0cm95ZWQ9ITF9Ym9vdHN0cmFwTW9k'@; put 'dWxlRmFjdG9yeShhLGQpe2NvbnN0IGg9ZnVuY3Rpb24gb0koYz0iem9uZS5qcyIsbCl7cmV0dXJuIm5vb3AiPT09Yz9uZXcgc0k6InpvbmUuanMiPT09Yz9uZXcgR2EobCk6Y30oZD8ubmdab25lLGZ1bmN0aW9uIGxhZShjKXtyZXR1cm57ZW5hYmxlTG9uZ1N0YWNrVHJhY2U6ITEsc2hvdWxk'@; put 'Q29hbGVzY2VFdmVudENoYW5nZURldGVjdGlvbjpjPy5ldmVudENvYWxlc2Npbmc/PyExLHNob3VsZENvYWxlc2NlUnVuQ2hhbmdlRGV0ZWN0aW9uOmM/LnJ1bkNvYWxlc2Npbmc/PyExfX0oe2V2ZW50Q29hbGVzY2luZzpkPy5uZ1pvbmVFdmVudENvYWxlc2NpbmcscnVuQ29hbGVzY2luZzpk'@; put 'Py5uZ1pvbmVSdW5Db2FsZXNjaW5nfSkpO3JldHVybiBoLnJ1bigoKT0+e2NvbnN0IGY9ZnVuY3Rpb24gVkkoYyxsLGEpe3JldHVybiBuZXcgQXkoYyxsLGEpfShhLm1vZHVsZVR5cGUsdGhpcy5pbmplY3RvcixmdW5jdGlvbiBvYWUoYyl7cmV0dXJuW3twcm92aWRlOkdhLHVzZUZhY3Rvcnk6'@; put 'Y30se3Byb3ZpZGU6cjIsbXVsdGk6ITAsdXNlRmFjdG9yeTooKT0+e2NvbnN0IGw9aGkoU2JlLHtvcHRpb25hbDohMH0pO3JldHVybigpPT5sLmluaXRpYWxpemUoKX19LHtwcm92aWRlOnIyLG11bHRpOiEwLHVzZUZhY3Rvcnk6KCk9Pntjb25zdCBsPWhpKEViZSk7cmV0dXJuKCk9PntsLmlu'@; put 'aXRpYWxpemUoKX19fSx7cHJvdmlkZTpfayx1c2VGYWN0b3J5Ok1iZX1dfSgoKT0+aCkpLHY9Zi5pbmplY3Rvci5nZXQodjIsbnVsbCk7cmV0dXJuIGgucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pntjb25zdCBNPWgub25FcnJvci5zdWJzY3JpYmUoe25leHQ6ST0+e3YuaGFuZGxlRXJyb3IoSSl9'@; put 'fSk7Zi5vbkRlc3Ryb3koKCk9PnthUih0aGlzLl9tb2R1bGVzLGYpLE0udW5zdWJzY3JpYmUoKX0pfSksZnVuY3Rpb24gcmFlKGMsbCxhKXt0cnl7Y29uc3QgZD1hKCk7cmV0dXJuIHhNKGQpP2QuY2F0Y2goaD0+e3Rocm93IGwucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PmMuaGFuZGxlRXJyb3Io'@; put 'aCkpLGh9KTpkfWNhdGNoKGQpe3Rocm93IGwucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PmMuaGFuZGxlRXJyb3IoZCkpLGR9fSh2LGgsKCk9Pntjb25zdCBNPWYuaW5qZWN0b3IuZ2V0KFJVKTtyZXR1cm4gTS5ydW5Jbml0aWFsaXplcnMoKSxNLmRvbmVQcm9taXNlLnRoZW4oKCk9PihmdW5jdGlv'@; put 'biBEcmUoYyl7InN0cmluZyI9PXR5cGVvZiBjJiYoa3JlPWMudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9fL2csIi0iKSl9KGYuaW5qZWN0b3IuZ2V0KFdmLEJ5KXx8QnkpLHRoaXMuX21vZHVsZURvQm9vdHN0cmFwKGYpLGYpKX0pfSl9Ym9vdHN0cmFwTW9kdWxlKGEsZD1bXSl7Y29uc3QgaD1p'@; put 'YWUoe30sZCk7cmV0dXJuIGZ1bmN0aW9uIENiZShjLGwsYSl7Y29uc3QgZD1uZXcga3koYSk7cmV0dXJuIFByb21pc2UucmVzb2x2ZShkKX0oMCwwLGEpLnRoZW4oZj0+dGhpcy5ib290c3RyYXBNb2R1bGVGYWN0b3J5KGYsaCkpfV9tb2R1bGVEb0Jvb3RzdHJhcChhKXtjb25zdCBkPWEuaW5q'@; put 'ZWN0b3IuZ2V0KHVwKTtpZihhLl9ib290c3RyYXBDb21wb25lbnRzLmxlbmd0aD4wKWEuX2Jvb3RzdHJhcENvbXBvbmVudHMuZm9yRWFjaChoPT5kLmJvb3RzdHJhcChoKSk7ZWxzZXtpZighYS5pbnN0YW5jZS5uZ0RvQm9vdHN0cmFwKXRocm93IG5ldyBucigtNDAzLCExKTthLmluc3RhbmNl'@; put 'Lm5nRG9Cb290c3RyYXAoZCl9dGhpcy5fbW9kdWxlcy5wdXNoKGEpfW9uRGVzdHJveShhKXt0aGlzLl9kZXN0cm95TGlzdGVuZXJzLnB1c2goYSl9Z2V0IGluamVjdG9yKCl7cmV0dXJuIHRoaXMuX2luamVjdG9yfWRlc3Ryb3koKXtpZih0aGlzLl9kZXN0cm95ZWQpdGhyb3cgbmV3IG5yKDQw'@; put 'NCwhMSk7dGhpcy5fbW9kdWxlcy5zbGljZSgpLmZvckVhY2goZD0+ZC5kZXN0cm95KCkpLHRoaXMuX2Rlc3Ryb3lMaXN0ZW5lcnMuZm9yRWFjaChkPT5kKCkpO2NvbnN0IGE9dGhpcy5faW5qZWN0b3IuZ2V0KFBVLG51bGwpO2EmJihhLmZvckVhY2goZD0+ZCgpKSxhLmNsZWFyKCkpLHRoaXMu'@; put 'X2Rlc3Ryb3llZD0hMH1nZXQgZGVzdHJveWVkKCl7cmV0dXJuIHRoaXMuX2Rlc3Ryb3llZH1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKShDcihEbykpfX1zdGF0aWN7dGhpcy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVm'@; put 'YWMscHJvdmlkZWRJbjoicGxhdGZvcm0ifSl9fXJldHVybiBjfSkoKSxYNT1udWxsO2NvbnN0IHVhZT1uZXcgU3QoIiIpO2Z1bmN0aW9uIGRhZShjLGwsYT1bXSl7Y29uc3QgZD1gUGxhdGZvcm06ICR7bH1gLGg9bmV3IFN0KGQpO3JldHVybihmPVtdKT0+e2xldCB2PUZVKCk7aWYoIXZ8fHYu'@; put 'aW5qZWN0b3IuZ2V0KHVhZSwhMSkpe2NvbnN0IE09Wy4uLmEsLi4uZix7cHJvdmlkZTpoLHVzZVZhbHVlOiEwfV07Yz9jKE0pOmZ1bmN0aW9uIERiZShjKXtpZihYNSYmIVg1LmdldCh1YWUsITEpKXRocm93IG5ldyBucig0MDAsITEpOyhmdW5jdGlvbiBuYWUoKXshZnVuY3Rpb24gUmUoYyl7'@; put 'QWU9Y30oKCk9Pnt0aHJvdyBuZXcgbnIoNjAwLCExKX0pfSkoKSxYNT1jO2NvbnN0IGw9Yy5nZXQoY2FlKTsoZnVuY3Rpb24gZmFlKGMpe2MuZ2V0KE5rLG51bGwpPy5mb3JFYWNoKGE9PmEoKSl9KShjKX0oZnVuY3Rpb24gaGFlKGM9W10sbCl7cmV0dXJuIERvLmNyZWF0ZSh7bmFtZTpsLHBy'@; put 'b3ZpZGVyczpbe3Byb3ZpZGU6RjYsdXNlVmFsdWU6InBsYXRmb3JtIn0se3Byb3ZpZGU6UFUsdXNlVmFsdWU6bmV3IFNldChbKCk9Plg1PW51bGxdKX0sLi4uY119KX0oTSxkKSl9cmV0dXJuIGZ1bmN0aW9uIEliZShjKXtjb25zdCBsPUZVKCk7aWYoIWwpdGhyb3cgbmV3IG5yKDQwMSwhMSk7'@; put 'cmV0dXJuIGx9KCl9fWZ1bmN0aW9uIEZVKCl7cmV0dXJuIFg1Py5nZXQoY2FlKT8/bnVsbH1sZXQgeG89KCgpPT57Y2xhc3MgY3tzdGF0aWN7dGhpcy5fX05HX0VMRU1FTlRfSURfXz1MYmV9fXJldHVybiBjfSkoKTtmdW5jdGlvbiBMYmUoYyl7cmV0dXJuIGZ1bmN0aW9uIE9iZShjLGwsYSl7'@; put 'aWYoSWYoYykmJiFhKXtjb25zdCBkPVAxKGMuaW5kZXgsbCk7cmV0dXJuIG5ldyBfOChkLGQpfXJldHVybiA0NyZjLnR5cGU/bmV3IF84KGxbamxdLGwpOm51bGx9KG9sKCksY2koKSwhKDE2Jn5jKSl9Y2xhc3MgeWFle2NvbnN0cnVjdG9yKCl7fXN1cHBvcnRzKGwpe3JldHVybiBEeShsKX1j'@; put 'cmVhdGUobCl7cmV0dXJuIG5ldyBWYmUobCl9fWNvbnN0IE5iZT0oYyxsKT0+bDtjbGFzcyBWYmV7Y29uc3RydWN0b3IobCl7dGhpcy5sZW5ndGg9MCx0aGlzLl9saW5rZWRSZWNvcmRzPW51bGwsdGhpcy5fdW5saW5rZWRSZWNvcmRzPW51bGwsdGhpcy5fcHJldmlvdXNJdEhlYWQ9bnVsbCx0'@; put 'aGlzLl9pdEhlYWQ9bnVsbCx0aGlzLl9pdFRhaWw9bnVsbCx0aGlzLl9hZGRpdGlvbnNIZWFkPW51bGwsdGhpcy5fYWRkaXRpb25zVGFpbD1udWxsLHRoaXMuX21vdmVzSGVhZD1udWxsLHRoaXMuX21vdmVzVGFpbD1udWxsLHRoaXMuX3JlbW92YWxzSGVhZD1udWxsLHRoaXMuX3JlbW92YWxz'@; put 'VGFpbD1udWxsLHRoaXMuX2lkZW50aXR5Q2hhbmdlc0hlYWQ9bnVsbCx0aGlzLl9pZGVudGl0eUNoYW5nZXNUYWlsPW51bGwsdGhpcy5fdHJhY2tCeUZuPWx8fE5iZX1mb3JFYWNoSXRlbShsKXtsZXQgYTtmb3IoYT10aGlzLl9pdEhlYWQ7bnVsbCE9PWE7YT1hLl9uZXh0KWwoYSl9Zm9yRWFj'@; put 'aE9wZXJhdGlvbihsKXtsZXQgYT10aGlzLl9pdEhlYWQsZD10aGlzLl9yZW1vdmFsc0hlYWQsaD0wLGY9bnVsbDtmb3IoO2F8fGQ7KXtjb25zdCB2PSFkfHxhJiZhLmN1cnJlbnRJbmRleDxfYWUoZCxoLGYpP2E6ZCxNPV9hZSh2LGgsZiksST12LmN1cnJlbnRJbmRleDtpZih2PT09ZCloLS0s'@; put 'ZD1kLl9uZXh0UmVtb3ZlZDtlbHNlIGlmKGE9YS5fbmV4dCxudWxsPT12LnByZXZpb3VzSW5kZXgpaCsrO2Vsc2V7Znx8KGY9W10pO2NvbnN0IEc9TS1oLHJlPUktaDtpZihHIT1yZSl7Zm9yKGxldCB5ZT0wO3llPEc7eWUrKyl7Y29uc3QgRWU9eWU8Zi5sZW5ndGg/Zlt5ZV06Zlt5ZV09MCxC'@; put 'ZT1FZSt5ZTtyZTw9QmUmJkJlPEcmJihmW3llXT1FZSsxKX1mW3YucHJldmlvdXNJbmRleF09cmUtR319TSE9PUkmJmwodixNLEkpfX1mb3JFYWNoUHJldmlvdXNJdGVtKGwpe2xldCBhO2ZvcihhPXRoaXMuX3ByZXZpb3VzSXRIZWFkO251bGwhPT1hO2E9YS5fbmV4dFByZXZpb3VzKWwoYSl9'@; put 'Zm9yRWFjaEFkZGVkSXRlbShsKXtsZXQgYTtmb3IoYT10aGlzLl9hZGRpdGlvbnNIZWFkO251bGwhPT1hO2E9YS5fbmV4dEFkZGVkKWwoYSl9Zm9yRWFjaE1vdmVkSXRlbShsKXtsZXQgYTtmb3IoYT10aGlzLl9tb3Zlc0hlYWQ7bnVsbCE9PWE7YT1hLl9uZXh0TW92ZWQpbChhKX1mb3JFYWNo'@; put 'UmVtb3ZlZEl0ZW0obCl7bGV0IGE7Zm9yKGE9dGhpcy5fcmVtb3ZhbHNIZWFkO251bGwhPT1hO2E9YS5fbmV4dFJlbW92ZWQpbChhKX1mb3JFYWNoSWRlbnRpdHlDaGFuZ2UobCl7bGV0IGE7Zm9yKGE9dGhpcy5faWRlbnRpdHlDaGFuZ2VzSGVhZDtudWxsIT09YTthPWEuX25leHRJZGVudGl0'@; put 'eUNoYW5nZSlsKGEpfWRpZmYobCl7aWYobnVsbD09bCYmKGw9W10pLCFEeShsKSl0aHJvdyBuZXcgbnIoOTAwLCExKTtyZXR1cm4gdGhpcy5jaGVjayhsKT90aGlzOm51bGx9b25EZXN0cm95KCl7fWNoZWNrKGwpe3RoaXMuX3Jlc2V0KCk7bGV0IGgsZix2LGE9dGhpcy5faXRIZWFkLGQ9ITE7'@; put 'aWYoQXJyYXkuaXNBcnJheShsKSl7dGhpcy5sZW5ndGg9bC5sZW5ndGg7Zm9yKGxldCBNPTA7TTx0aGlzLmxlbmd0aDtNKyspZj1sW01dLHY9dGhpcy5fdHJhY2tCeUZuKE0sZiksbnVsbCE9PWEmJk9iamVjdC5pcyhhLnRyYWNrQnlJZCx2KT8oZCYmKGE9dGhpcy5fdmVyaWZ5UmVpbnNlcnRp'@; put 'b24oYSxmLHYsTSkpLE9iamVjdC5pcyhhLml0ZW0sZil8fHRoaXMuX2FkZElkZW50aXR5Q2hhbmdlKGEsZikpOihhPXRoaXMuX21pc21hdGNoKGEsZix2LE0pLGQ9ITApLGE9YS5fbmV4dH1lbHNlIGg9MCxmdW5jdGlvbiByVShjLGwpe2lmKEFycmF5LmlzQXJyYXkoYykpZm9yKGxldCBhPTA7'@; put 'YTxjLmxlbmd0aDthKyspbChjW2FdKTtlbHNle2NvbnN0IGE9Y1tTeW1ib2wuaXRlcmF0b3JdKCk7bGV0IGQ7Zm9yKDshKGQ9YS5uZXh0KCkpLmRvbmU7KWwoZC52YWx1ZSl9fShsLE09Pnt2PXRoaXMuX3RyYWNrQnlGbihoLE0pLG51bGwhPT1hJiZPYmplY3QuaXMoYS50cmFja0J5SWQsdik/'@; put 'KGQmJihhPXRoaXMuX3ZlcmlmeVJlaW5zZXJ0aW9uKGEsTSx2LGgpKSxPYmplY3QuaXMoYS5pdGVtLE0pfHx0aGlzLl9hZGRJZGVudGl0eUNoYW5nZShhLE0pKTooYT10aGlzLl9taXNtYXRjaChhLE0sdixoKSxkPSEwKSxhPWEuX25leHQsaCsrfSksdGhpcy5sZW5ndGg9aDtyZXR1cm4gdGhp'@; put 'cy5fdHJ1bmNhdGUoYSksdGhpcy5jb2xsZWN0aW9uPWwsdGhpcy5pc0RpcnR5fWdldCBpc0RpcnR5KCl7cmV0dXJuIG51bGwhPT10aGlzLl9hZGRpdGlvbnNIZWFkfHxudWxsIT09dGhpcy5fbW92ZXNIZWFkfHxudWxsIT09dGhpcy5fcmVtb3ZhbHNIZWFkfHxudWxsIT09dGhpcy5faWRlbnRp'@; put 'dHlDaGFuZ2VzSGVhZH1fcmVzZXQoKXtpZih0aGlzLmlzRGlydHkpe2xldCBsO2ZvcihsPXRoaXMuX3ByZXZpb3VzSXRIZWFkPXRoaXMuX2l0SGVhZDtudWxsIT09bDtsPWwuX25leHQpbC5fbmV4dFByZXZpb3VzPWwuX25leHQ7Zm9yKGw9dGhpcy5fYWRkaXRpb25zSGVhZDtudWxsIT09bDts'@; put 'PWwuX25leHRBZGRlZClsLnByZXZpb3VzSW5kZXg9bC5jdXJyZW50SW5kZXg7Zm9yKHRoaXMuX2FkZGl0aW9uc0hlYWQ9dGhpcy5fYWRkaXRpb25zVGFpbD1udWxsLGw9dGhpcy5fbW92ZXNIZWFkO251bGwhPT1sO2w9bC5fbmV4dE1vdmVkKWwucHJldmlvdXNJbmRleD1sLmN1cnJlbnRJbmRl'@; put 'eDt0aGlzLl9tb3Zlc0hlYWQ9dGhpcy5fbW92ZXNUYWlsPW51bGwsdGhpcy5fcmVtb3ZhbHNIZWFkPXRoaXMuX3JlbW92YWxzVGFpbD1udWxsLHRoaXMuX2lkZW50aXR5Q2hhbmdlc0hlYWQ9dGhpcy5faWRlbnRpdHlDaGFuZ2VzVGFpbD1udWxsfX1fbWlzbWF0Y2gobCxhLGQsaCl7bGV0IGY7'@; put 'cmV0dXJuIG51bGw9PT1sP2Y9dGhpcy5faXRUYWlsOihmPWwuX3ByZXYsdGhpcy5fcmVtb3ZlKGwpKSxudWxsIT09KGw9bnVsbD09PXRoaXMuX3VubGlua2VkUmVjb3Jkcz9udWxsOnRoaXMuX3VubGlua2VkUmVjb3Jkcy5nZXQoZCxudWxsKSk/KE9iamVjdC5pcyhsLml0ZW0sYSl8fHRoaXMu'@; put 'X2FkZElkZW50aXR5Q2hhbmdlKGwsYSksdGhpcy5fcmVpbnNlcnRBZnRlcihsLGYsaCkpOm51bGwhPT0obD1udWxsPT09dGhpcy5fbGlua2VkUmVjb3Jkcz9udWxsOnRoaXMuX2xpbmtlZFJlY29yZHMuZ2V0KGQsaCkpPyhPYmplY3QuaXMobC5pdGVtLGEpfHx0aGlzLl9hZGRJZGVudGl0eUNo'@; put 'YW5nZShsLGEpLHRoaXMuX21vdmVBZnRlcihsLGYsaCkpOmw9dGhpcy5fYWRkQWZ0ZXIobmV3IEJiZShhLGQpLGYsaCksbH1fdmVyaWZ5UmVpbnNlcnRpb24obCxhLGQsaCl7bGV0IGY9bnVsbD09PXRoaXMuX3VubGlua2VkUmVjb3Jkcz9udWxsOnRoaXMuX3VubGlua2VkUmVjb3Jkcy5nZXQo'@; put 'ZCxudWxsKTtyZXR1cm4gbnVsbCE9PWY/bD10aGlzLl9yZWluc2VydEFmdGVyKGYsbC5fcHJldixoKTpsLmN1cnJlbnRJbmRleCE9aCYmKGwuY3VycmVudEluZGV4PWgsdGhpcy5fYWRkVG9Nb3ZlcyhsLGgpKSxsfV90cnVuY2F0ZShsKXtmb3IoO251bGwhPT1sOyl7Y29uc3QgYT1sLl9uZXh0'@; put 'O3RoaXMuX2FkZFRvUmVtb3ZhbHModGhpcy5fdW5saW5rKGwpKSxsPWF9bnVsbCE9PXRoaXMuX3VubGlua2VkUmVjb3JkcyYmdGhpcy5fdW5saW5rZWRSZWNvcmRzLmNsZWFyKCksbnVsbCE9PXRoaXMuX2FkZGl0aW9uc1RhaWwmJih0aGlzLl9hZGRpdGlvbnNUYWlsLl9uZXh0QWRkZWQ9bnVs'@; put 'bCksbnVsbCE9PXRoaXMuX21vdmVzVGFpbCYmKHRoaXMuX21vdmVzVGFpbC5fbmV4dE1vdmVkPW51bGwpLG51bGwhPT10aGlzLl9pdFRhaWwmJih0aGlzLl9pdFRhaWwuX25leHQ9bnVsbCksbnVsbCE9PXRoaXMuX3JlbW92YWxzVGFpbCYmKHRoaXMuX3JlbW92YWxzVGFpbC5fbmV4dFJlbW92'@; put 'ZWQ9bnVsbCksbnVsbCE9PXRoaXMuX2lkZW50aXR5Q2hhbmdlc1RhaWwmJih0aGlzLl9pZGVudGl0eUNoYW5nZXNUYWlsLl9uZXh0SWRlbnRpdHlDaGFuZ2U9bnVsbCl9X3JlaW5zZXJ0QWZ0ZXIobCxhLGQpe251bGwhPT10aGlzLl91bmxpbmtlZFJlY29yZHMmJnRoaXMuX3VubGlua2VkUmVj'@; put 'b3Jkcy5yZW1vdmUobCk7Y29uc3QgaD1sLl9wcmV2UmVtb3ZlZCxmPWwuX25leHRSZW1vdmVkO3JldHVybiBudWxsPT09aD90aGlzLl9yZW1vdmFsc0hlYWQ9ZjpoLl9uZXh0UmVtb3ZlZD1mLG51bGw9PT1mP3RoaXMuX3JlbW92YWxzVGFpbD1oOmYuX3ByZXZSZW1vdmVkPWgsdGhpcy5faW5z'@; put 'ZXJ0QWZ0ZXIobCxhLGQpLHRoaXMuX2FkZFRvTW92ZXMobCxkKSxsfV9tb3ZlQWZ0ZXIobCxhLGQpe3JldHVybiB0aGlzLl91bmxpbmsobCksdGhpcy5faW5zZXJ0QWZ0ZXIobCxhLGQpLHRoaXMuX2FkZFRvTW92ZXMobCxkKSxsfV9hZGRBZnRlcihsLGEsZCl7cmV0dXJuIHRoaXMuX2luc2Vy'@; put 'dEFmdGVyKGwsYSxkKSx0aGlzLl9hZGRpdGlvbnNUYWlsPW51bGw9PT10aGlzLl9hZGRpdGlvbnNUYWlsP3RoaXMuX2FkZGl0aW9uc0hlYWQ9bDp0aGlzLl9hZGRpdGlvbnNUYWlsLl9uZXh0QWRkZWQ9bCxsfV9pbnNlcnRBZnRlcihsLGEsZCl7Y29uc3QgaD1udWxsPT09YT90aGlzLl9pdEhl'@; put 'YWQ6YS5fbmV4dDtyZXR1cm4gbC5fbmV4dD1oLGwuX3ByZXY9YSxudWxsPT09aD90aGlzLl9pdFRhaWw9bDpoLl9wcmV2PWwsbnVsbD09PWE/dGhpcy5faXRIZWFkPWw6YS5fbmV4dD1sLG51bGw9PT10aGlzLl9saW5rZWRSZWNvcmRzJiYodGhpcy5fbGlua2VkUmVjb3Jkcz1uZXcgYmFlKSx0'@; put 'aGlzLl9saW5rZWRSZWNvcmRzLnB1dChsKSxsLmN1cnJlbnRJbmRleD1kLGx9X3JlbW92ZShsKXtyZXR1cm4gdGhpcy5fYWRkVG9SZW1vdmFscyh0aGlzLl91bmxpbmsobCkpfV91bmxpbmsobCl7bnVsbCE9PXRoaXMuX2xpbmtlZFJlY29yZHMmJnRoaXMuX2xpbmtlZFJlY29yZHMucmVtb3Zl'@; put 'KGwpO2NvbnN0IGE9bC5fcHJldixkPWwuX25leHQ7cmV0dXJuIG51bGw9PT1hP3RoaXMuX2l0SGVhZD1kOmEuX25leHQ9ZCxudWxsPT09ZD90aGlzLl9pdFRhaWw9YTpkLl9wcmV2PWEsbH1fYWRkVG9Nb3ZlcyhsLGEpe3JldHVybiBsLnByZXZpb3VzSW5kZXg9PT1hfHwodGhpcy5fbW92ZXNU'@; put 'YWlsPW51bGw9PT10aGlzLl9tb3Zlc1RhaWw/dGhpcy5fbW92ZXNIZWFkPWw6dGhpcy5fbW92ZXNUYWlsLl9uZXh0TW92ZWQ9bCksbH1fYWRkVG9SZW1vdmFscyhsKXtyZXR1cm4gbnVsbD09PXRoaXMuX3VubGlua2VkUmVjb3JkcyYmKHRoaXMuX3VubGlua2VkUmVjb3Jkcz1uZXcgYmFlKSx0'@; put 'aGlzLl91bmxpbmtlZFJlY29yZHMucHV0KGwpLGwuY3VycmVudEluZGV4PW51bGwsbC5fbmV4dFJlbW92ZWQ9bnVsbCxudWxsPT09dGhpcy5fcmVtb3ZhbHNUYWlsPyh0aGlzLl9yZW1vdmFsc1RhaWw9dGhpcy5fcmVtb3ZhbHNIZWFkPWwsbC5fcHJldlJlbW92ZWQ9bnVsbCk6KGwuX3ByZXZS'@; put 'ZW1vdmVkPXRoaXMuX3JlbW92YWxzVGFpbCx0aGlzLl9yZW1vdmFsc1RhaWw9dGhpcy5fcmVtb3ZhbHNUYWlsLl9uZXh0UmVtb3ZlZD1sKSxsfV9hZGRJZGVudGl0eUNoYW5nZShsLGEpe3JldHVybiBsLml0ZW09YSx0aGlzLl9pZGVudGl0eUNoYW5nZXNUYWlsPW51bGw9PT10aGlzLl9pZGVu'@; put 'dGl0eUNoYW5nZXNUYWlsP3RoaXMuX2lkZW50aXR5Q2hhbmdlc0hlYWQ9bDp0aGlzLl9pZGVudGl0eUNoYW5nZXNUYWlsLl9uZXh0SWRlbnRpdHlDaGFuZ2U9bCxsfX1jbGFzcyBCYmV7Y29uc3RydWN0b3IobCxhKXt0aGlzLml0ZW09bCx0aGlzLnRyYWNrQnlJZD1hLHRoaXMuY3VycmVudElu'@; put 'ZGV4PW51bGwsdGhpcy5wcmV2aW91c0luZGV4PW51bGwsdGhpcy5fbmV4dFByZXZpb3VzPW51bGwsdGhpcy5fcHJldj1udWxsLHRoaXMuX25leHQ9bnVsbCx0aGlzLl9wcmV2RHVwPW51bGwsdGhpcy5fbmV4dER1cD1udWxsLHRoaXMuX3ByZXZSZW1vdmVkPW51bGwsdGhpcy5fbmV4dFJlbW92'@; put 'ZWQ9bnVsbCx0aGlzLl9uZXh0QWRkZWQ9bnVsbCx0aGlzLl9uZXh0TW92ZWQ9bnVsbCx0aGlzLl9uZXh0SWRlbnRpdHlDaGFuZ2U9bnVsbH19Y2xhc3MgamJle2NvbnN0cnVjdG9yKCl7dGhpcy5faGVhZD1udWxsLHRoaXMuX3RhaWw9bnVsbH1hZGQobCl7bnVsbD09PXRoaXMuX2hlYWQ/KHRo'@; put 'aXMuX2hlYWQ9dGhpcy5fdGFpbD1sLGwuX25leHREdXA9bnVsbCxsLl9wcmV2RHVwPW51bGwpOih0aGlzLl90YWlsLl9uZXh0RHVwPWwsbC5fcHJldkR1cD10aGlzLl90YWlsLGwuX25leHREdXA9bnVsbCx0aGlzLl90YWlsPWwpfWdldChsLGEpe2xldCBkO2ZvcihkPXRoaXMuX2hlYWQ7bnVs'@; put 'bCE9PWQ7ZD1kLl9uZXh0RHVwKWlmKChudWxsPT09YXx8YTw9ZC5jdXJyZW50SW5kZXgpJiZPYmplY3QuaXMoZC50cmFja0J5SWQsbCkpcmV0dXJuIGQ7cmV0dXJuIG51bGx9cmVtb3ZlKGwpe2NvbnN0IGE9bC5fcHJldkR1cCxkPWwuX25leHREdXA7cmV0dXJuIG51bGw9PT1hP3RoaXMuX2hl'@; put 'YWQ9ZDphLl9uZXh0RHVwPWQsbnVsbD09PWQ/dGhpcy5fdGFpbD1hOmQuX3ByZXZEdXA9YSxudWxsPT09dGhpcy5faGVhZH19Y2xhc3MgYmFle2NvbnN0cnVjdG9yKCl7dGhpcy5tYXA9bmV3IE1hcH1wdXQobCl7Y29uc3QgYT1sLnRyYWNrQnlJZDtsZXQgZD10aGlzLm1hcC5nZXQoYSk7ZHx8'@; put 'KGQ9bmV3IGpiZSx0aGlzLm1hcC5zZXQoYSxkKSksZC5hZGQobCl9Z2V0KGwsYSl7Y29uc3QgaD10aGlzLm1hcC5nZXQobCk7cmV0dXJuIGg/aC5nZXQobCxhKTpudWxsfXJlbW92ZShsKXtjb25zdCBhPWwudHJhY2tCeUlkO3JldHVybiB0aGlzLm1hcC5nZXQoYSkucmVtb3ZlKGwpJiZ0aGlz'@; put 'Lm1hcC5kZWxldGUoYSksbH1nZXQgaXNFbXB0eSgpe3JldHVybiAwPT09dGhpcy5tYXAuc2l6ZX1jbGVhcigpe3RoaXMubWFwLmNsZWFyKCl9fWZ1bmN0aW9uIF9hZShjLGwsYSl7Y29uc3QgZD1jLnByZXZpb3VzSW5kZXg7aWYobnVsbD09PWQpcmV0dXJuIGQ7bGV0IGg9MDtyZXR1cm4gYSYm'@; put 'ZDxhLmxlbmd0aCYmKGg9YVtkXSksZCtsK2h9Y2xhc3Mgd2Fle2NvbnN0cnVjdG9yKCl7fXN1cHBvcnRzKGwpe3JldHVybiBsIGluc3RhbmNlb2YgTWFwfHxyTShsKX1jcmVhdGUoKXtyZXR1cm4gbmV3IHpiZX19Y2xhc3MgemJle2NvbnN0cnVjdG9yKCl7dGhpcy5fcmVjb3Jkcz1uZXcgTWFw'@; put 'LHRoaXMuX21hcEhlYWQ9bnVsbCx0aGlzLl9hcHBlbmRBZnRlcj1udWxsLHRoaXMuX3ByZXZpb3VzTWFwSGVhZD1udWxsLHRoaXMuX2NoYW5nZXNIZWFkPW51bGwsdGhpcy5fY2hhbmdlc1RhaWw9bnVsbCx0aGlzLl9hZGRpdGlvbnNIZWFkPW51bGwsdGhpcy5fYWRkaXRpb25zVGFpbD1udWxs'@; put 'LHRoaXMuX3JlbW92YWxzSGVhZD1udWxsLHRoaXMuX3JlbW92YWxzVGFpbD1udWxsfWdldCBpc0RpcnR5KCl7cmV0dXJuIG51bGwhPT10aGlzLl9hZGRpdGlvbnNIZWFkfHxudWxsIT09dGhpcy5fY2hhbmdlc0hlYWR8fG51bGwhPT10aGlzLl9yZW1vdmFsc0hlYWR9Zm9yRWFjaEl0ZW0obCl7'@; put 'bGV0IGE7Zm9yKGE9dGhpcy5fbWFwSGVhZDtudWxsIT09YTthPWEuX25leHQpbChhKX1mb3JFYWNoUHJldmlvdXNJdGVtKGwpe2xldCBhO2ZvcihhPXRoaXMuX3ByZXZpb3VzTWFwSGVhZDtudWxsIT09YTthPWEuX25leHRQcmV2aW91cylsKGEpfWZvckVhY2hDaGFuZ2VkSXRlbShsKXtsZXQg'@; put 'YTtmb3IoYT10aGlzLl9jaGFuZ2VzSGVhZDtudWxsIT09YTthPWEuX25leHRDaGFuZ2VkKWwoYSl9Zm9yRWFjaEFkZGVkSXRlbShsKXtsZXQgYTtmb3IoYT10aGlzLl9hZGRpdGlvbnNIZWFkO251bGwhPT1hO2E9YS5fbmV4dEFkZGVkKWwoYSl9Zm9yRWFjaFJlbW92ZWRJdGVtKGwpe2xldCBh'@; put 'O2ZvcihhPXRoaXMuX3JlbW92YWxzSGVhZDtudWxsIT09YTthPWEuX25leHRSZW1vdmVkKWwoYSl9ZGlmZihsKXtpZihsKXtpZighKGwgaW5zdGFuY2VvZiBNYXB8fHJNKGwpKSl0aHJvdyBuZXcgbnIoOTAwLCExKX1lbHNlIGw9bmV3IE1hcDtyZXR1cm4gdGhpcy5jaGVjayhsKT90aGlzOm51'@; put 'bGx9b25EZXN0cm95KCl7fWNoZWNrKGwpe3RoaXMuX3Jlc2V0KCk7bGV0IGE9dGhpcy5fbWFwSGVhZDtpZih0aGlzLl9hcHBlbmRBZnRlcj1udWxsLHRoaXMuX2ZvckVhY2gobCwoZCxoKT0+e2lmKGEmJmEua2V5PT09aCl0aGlzLl9tYXliZUFkZFRvQ2hhbmdlcyhhLGQpLHRoaXMuX2FwcGVu'@; put 'ZEFmdGVyPWEsYT1hLl9uZXh0O2Vsc2V7Y29uc3QgZj10aGlzLl9nZXRPckNyZWF0ZVJlY29yZEZvcktleShoLGQpO2E9dGhpcy5faW5zZXJ0QmVmb3JlT3JBcHBlbmQoYSxmKX19KSxhKXthLl9wcmV2JiYoYS5fcHJldi5fbmV4dD1udWxsKSx0aGlzLl9yZW1vdmFsc0hlYWQ9YTtmb3IobGV0'@; put 'IGQ9YTtudWxsIT09ZDtkPWQuX25leHRSZW1vdmVkKWQ9PT10aGlzLl9tYXBIZWFkJiYodGhpcy5fbWFwSGVhZD1udWxsKSx0aGlzLl9yZWNvcmRzLmRlbGV0ZShkLmtleSksZC5fbmV4dFJlbW92ZWQ9ZC5fbmV4dCxkLnByZXZpb3VzVmFsdWU9ZC5jdXJyZW50VmFsdWUsZC5jdXJyZW50VmFs'@; put 'dWU9bnVsbCxkLl9wcmV2PW51bGwsZC5fbmV4dD1udWxsfXJldHVybiB0aGlzLl9jaGFuZ2VzVGFpbCYmKHRoaXMuX2NoYW5nZXNUYWlsLl9uZXh0Q2hhbmdlZD1udWxsKSx0aGlzLl9hZGRpdGlvbnNUYWlsJiYodGhpcy5fYWRkaXRpb25zVGFpbC5fbmV4dEFkZGVkPW51bGwpLHRoaXMuaXNE'@; put 'aXJ0eX1faW5zZXJ0QmVmb3JlT3JBcHBlbmQobCxhKXtpZihsKXtjb25zdCBkPWwuX3ByZXY7cmV0dXJuIGEuX25leHQ9bCxhLl9wcmV2PWQsbC5fcHJldj1hLGQmJihkLl9uZXh0PWEpLGw9PT10aGlzLl9tYXBIZWFkJiYodGhpcy5fbWFwSGVhZD1hKSx0aGlzLl9hcHBlbmRBZnRlcj1sLGx9'@; put 'cmV0dXJuIHRoaXMuX2FwcGVuZEFmdGVyPyh0aGlzLl9hcHBlbmRBZnRlci5fbmV4dD1hLGEuX3ByZXY9dGhpcy5fYXBwZW5kQWZ0ZXIpOnRoaXMuX21hcEhlYWQ9YSx0aGlzLl9hcHBlbmRBZnRlcj1hLG51bGx9X2dldE9yQ3JlYXRlUmVjb3JkRm9yS2V5KGwsYSl7aWYodGhpcy5fcmVjb3Jk'@; put 'cy5oYXMobCkpe2NvbnN0IGg9dGhpcy5fcmVjb3Jkcy5nZXQobCk7dGhpcy5fbWF5YmVBZGRUb0NoYW5nZXMoaCxhKTtjb25zdCBmPWguX3ByZXYsdj1oLl9uZXh0O3JldHVybiBmJiYoZi5fbmV4dD12KSx2JiYodi5fcHJldj1mKSxoLl9uZXh0PW51bGwsaC5fcHJldj1udWxsLGh9Y29uc3Qg'@; put 'ZD1uZXcgVWJlKGwpO3JldHVybiB0aGlzLl9yZWNvcmRzLnNldChsLGQpLGQuY3VycmVudFZhbHVlPWEsdGhpcy5fYWRkVG9BZGRpdGlvbnMoZCksZH1fcmVzZXQoKXtpZih0aGlzLmlzRGlydHkpe2xldCBsO2Zvcih0aGlzLl9wcmV2aW91c01hcEhlYWQ9dGhpcy5fbWFwSGVhZCxsPXRoaXMu'@; put 'X3ByZXZpb3VzTWFwSGVhZDtudWxsIT09bDtsPWwuX25leHQpbC5fbmV4dFByZXZpb3VzPWwuX25leHQ7Zm9yKGw9dGhpcy5fY2hhbmdlc0hlYWQ7bnVsbCE9PWw7bD1sLl9uZXh0Q2hhbmdlZClsLnByZXZpb3VzVmFsdWU9bC5jdXJyZW50VmFsdWU7Zm9yKGw9dGhpcy5fYWRkaXRpb25zSGVh'@; put 'ZDtudWxsIT1sO2w9bC5fbmV4dEFkZGVkKWwucHJldmlvdXNWYWx1ZT1sLmN1cnJlbnRWYWx1ZTt0aGlzLl9jaGFuZ2VzSGVhZD10aGlzLl9jaGFuZ2VzVGFpbD1udWxsLHRoaXMuX2FkZGl0aW9uc0hlYWQ9dGhpcy5fYWRkaXRpb25zVGFpbD1udWxsLHRoaXMuX3JlbW92YWxzSGVhZD1udWxs'@; put 'fX1fbWF5YmVBZGRUb0NoYW5nZXMobCxhKXtPYmplY3QuaXMoYSxsLmN1cnJlbnRWYWx1ZSl8fChsLnByZXZpb3VzVmFsdWU9bC5jdXJyZW50VmFsdWUsbC5jdXJyZW50VmFsdWU9YSx0aGlzLl9hZGRUb0NoYW5nZXMobCkpfV9hZGRUb0FkZGl0aW9ucyhsKXtudWxsPT09dGhpcy5fYWRkaXRp'@; put 'b25zSGVhZD90aGlzLl9hZGRpdGlvbnNIZWFkPXRoaXMuX2FkZGl0aW9uc1RhaWw9bDoodGhpcy5fYWRkaXRpb25zVGFpbC5fbmV4dEFkZGVkPWwsdGhpcy5fYWRkaXRpb25zVGFpbD1sKX1fYWRkVG9DaGFuZ2VzKGwpe251bGw9PT10aGlzLl9jaGFuZ2VzSGVhZD90aGlzLl9jaGFuZ2VzSGVh'@; put 'ZD10aGlzLl9jaGFuZ2VzVGFpbD1sOih0aGlzLl9jaGFuZ2VzVGFpbC5fbmV4dENoYW5nZWQ9bCx0aGlzLl9jaGFuZ2VzVGFpbD1sKX1fZm9yRWFjaChsLGEpe2wgaW5zdGFuY2VvZiBNYXA/bC5mb3JFYWNoKGEpOk9iamVjdC5rZXlzKGwpLmZvckVhY2goZD0+YShsW2RdLGQpKX19Y2xhc3Mg'@; put 'VWJle2NvbnN0cnVjdG9yKGwpe3RoaXMua2V5PWwsdGhpcy5wcmV2aW91c1ZhbHVlPW51bGwsdGhpcy5jdXJyZW50VmFsdWU9bnVsbCx0aGlzLl9uZXh0UHJldmlvdXM9bnVsbCx0aGlzLl9uZXh0PW51bGwsdGhpcy5fcHJldj1udWxsLHRoaXMuX25leHRBZGRlZD1udWxsLHRoaXMuX25leHRS'@; put 'ZW1vdmVkPW51bGwsdGhpcy5fbmV4dENoYW5nZWQ9bnVsbH19ZnVuY3Rpb24gQ2FlKCl7cmV0dXJuIG5ldyBxNShbbmV3IHlhZV0pfWxldCBxNT0oKCk9PntjbGFzcyBje3N0YXRpY3t0aGlzLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMscHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpDYWV9KX1j'@; put 'b25zdHJ1Y3RvcihhKXt0aGlzLmZhY3Rvcmllcz1hfXN0YXRpYyBjcmVhdGUoYSxkKXtpZihudWxsIT1kKXtjb25zdCBoPWQuZmFjdG9yaWVzLnNsaWNlKCk7YT1hLmNvbmNhdChoKX1yZXR1cm4gbmV3IGMoYSl9c3RhdGljIGV4dGVuZChhKXtyZXR1cm57cHJvdmlkZTpjLHVzZUZhY3Rvcnk6'@; put 'ZD0+Yy5jcmVhdGUoYSxkfHxDYWUoKSksZGVwczpbW2MsbmV3IHVkLG5ldyBSMV1dfX1maW5kKGEpe2NvbnN0IGQ9dGhpcy5mYWN0b3JpZXMuZmluZChoPT5oLnN1cHBvcnRzKGEpKTtpZihudWxsIT1kKXJldHVybiBkO3Rocm93IG5ldyBucig5MDEsITEpfX1yZXR1cm4gY30pKCk7ZnVuY3Rp'@; put 'b24gU2FlKCl7cmV0dXJuIG5ldyBFTShbbmV3IHdhZV0pfWxldCBFTT0oKCk9PntjbGFzcyBje3N0YXRpY3t0aGlzLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMscHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpTYWV9KX1jb25zdHJ1Y3RvcihhKXt0aGlzLmZhY3Rvcmllcz1hfXN0YXRpYyBjcmVh'@; put 'dGUoYSxkKXtpZihkKXtjb25zdCBoPWQuZmFjdG9yaWVzLnNsaWNlKCk7YT1hLmNvbmNhdChoKX1yZXR1cm4gbmV3IGMoYSl9c3RhdGljIGV4dGVuZChhKXtyZXR1cm57cHJvdmlkZTpjLHVzZUZhY3Rvcnk6ZD0+Yy5jcmVhdGUoYSxkfHxTYWUoKSksZGVwczpbW2MsbmV3IHVkLG5ldyBSMV1d'@; put 'fX1maW5kKGEpe2NvbnN0IGQ9dGhpcy5mYWN0b3JpZXMuZmluZChoPT5oLnN1cHBvcnRzKGEpKTtpZihkKXJldHVybiBkO3Rocm93IG5ldyBucig5MDEsITEpfX1yZXR1cm4gY30pKCk7Y29uc3QgWWJlPWRhZShudWxsLCJjb3JlIixbXSk7bGV0IEdiZT0oKCk9PntjbGFzcyBje2NvbnN0cnVj'@; put 'dG9yKGEpe31zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKShDcih1cCkpfX1zdGF0aWN7dGhpcy5cdTAyNzVtb2Q9QWkoe3R5cGU6Y30pfXN0YXRpY3t0aGlzLlx1MDI3NWluaj1Bcih7fSl9fXJldHVybiBjfSkoKTtmdW5jdGlvbiBzMShjKXtyZXR1'@; put 'cm4iYm9vbGVhbiI9PXR5cGVvZiBjP2M6bnVsbCE9YyYmImZhbHNlIiE9PWN9ZnVuY3Rpb24gV2FlKGMpe2NvbnN0IGw9X2UobnVsbCk7dHJ5e3JldHVybiBjKCl9ZmluYWxseXtfZShsKX19ZnVuY3Rpb24gcFIoYyxsKXtjb25zdCBhPUJzKGMpLGQ9bC5lbGVtZW50SW5qZWN0b3J8fE4zKCk7'@; put 'cmV0dXJuIG5ldyBrOChhKS5jcmVhdGUoZCxsLnByb2plY3RhYmxlTm9kZXMsbC5ob3N0RWxlbWVudCxsLmVudmlyb25tZW50SW5qZWN0b3IpfWxldCBHYWU9bnVsbDtmdW5jdGlvbiBKNSgpe3JldHVybiBHYWV9Y2xhc3Mga19le31jb25zdCBtbz1uZXcgU3QoIiIpO2xldCBVVT0oKCk9Pntj'@; put 'bGFzcyBje2hpc3RvcnlHbyhhKXt0aHJvdyBuZXcgRXJyb3IoIiIpfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpfX1zdGF0aWN7dGhpcy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6KCk9PmhpKElfZSkscHJvdmlkZWRJbjoicGxhdGZv'@; put 'cm0ifSl9fXJldHVybiBjfSkoKTtjb25zdCBEX2U9bmV3IFN0KCIiKTtsZXQgSV9lPSgoKT0+e2NsYXNzIGMgZXh0ZW5kcyBVVXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5fZG9jPWhpKG1vKSx0aGlzLl9sb2NhdGlvbj13aW5kb3cubG9jYXRpb24sdGhpcy5faGlzdG9yeT13aW5kb3cu'@; put 'aGlzdG9yeX1nZXRCYXNlSHJlZkZyb21ET00oKXtyZXR1cm4gSjUoKS5nZXRCYXNlSHJlZih0aGlzLl9kb2MpfW9uUG9wU3RhdGUoYSl7Y29uc3QgZD1KNSgpLmdldEdsb2JhbEV2ZW50VGFyZ2V0KHRoaXMuX2RvYywid2luZG93Iik7cmV0dXJuIGQuYWRkRXZlbnRMaXN0ZW5lcigicG9wc3Rh'@; put 'dGUiLGEsITEpLCgpPT5kLnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIixhKX1vbkhhc2hDaGFuZ2UoYSl7Y29uc3QgZD1KNSgpLmdldEdsb2JhbEV2ZW50VGFyZ2V0KHRoaXMuX2RvYywid2luZG93Iik7cmV0dXJuIGQuYWRkRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsYSwhMSks'@; put 'KCk9PmQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsYSl9Z2V0IGhyZWYoKXtyZXR1cm4gdGhpcy5fbG9jYXRpb24uaHJlZn1nZXQgcHJvdG9jb2woKXtyZXR1cm4gdGhpcy5fbG9jYXRpb24ucHJvdG9jb2x9Z2V0IGhvc3RuYW1lKCl7cmV0dXJuIHRoaXMuX2xvY2F0aW9uLmhv'@; put 'c3RuYW1lfWdldCBwb3J0KCl7cmV0dXJuIHRoaXMuX2xvY2F0aW9uLnBvcnR9Z2V0IHBhdGhuYW1lKCl7cmV0dXJuIHRoaXMuX2xvY2F0aW9uLnBhdGhuYW1lfWdldCBzZWFyY2goKXtyZXR1cm4gdGhpcy5fbG9jYXRpb24uc2VhcmNofWdldCBoYXNoKCl7cmV0dXJuIHRoaXMuX2xvY2F0aW9u'@; put 'Lmhhc2h9c2V0IHBhdGhuYW1lKGEpe3RoaXMuX2xvY2F0aW9uLnBhdGhuYW1lPWF9cHVzaFN0YXRlKGEsZCxoKXt0aGlzLl9oaXN0b3J5LnB1c2hTdGF0ZShhLGQsaCl9cmVwbGFjZVN0YXRlKGEsZCxoKXt0aGlzLl9oaXN0b3J5LnJlcGxhY2VTdGF0ZShhLGQsaCl9Zm9yd2FyZCgpe3RoaXMu'@; put 'X2hpc3RvcnkuZm9yd2FyZCgpfWJhY2soKXt0aGlzLl9oaXN0b3J5LmJhY2soKX1oaXN0b3J5R28oYT0wKXt0aGlzLl9oaXN0b3J5LmdvKGEpfWdldFN0YXRlKCl7cmV0dXJuIHRoaXMuX2hpc3Rvcnkuc3RhdGV9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXco'@; put 'ZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTooKT0+bmV3IGMscHJvdmlkZWRJbjoicGxhdGZvcm0ifSl9fXJldHVybiBjfSkoKTtmdW5jdGlvbiBaVShjLGwpe2lmKDA9PWMubGVuZ3RoKXJldHVybiBsO2lmKDA9PWwubGVuZ3RoKXJldHVybiBjO2xl'@; put 'dCBhPTA7cmV0dXJuIGMuZW5kc1dpdGgoIi8iKSYmYSsrLGwuc3RhcnRzV2l0aCgiLyIpJiZhKyssMj09YT9jK2wuc3Vic3RyaW5nKDEpOjE9PWE/YytsOmMrIi8iK2x9ZnVuY3Rpb24gJGFlKGMpe2NvbnN0IGw9Yy5tYXRjaCgvI3xcP3wkLyksYT1sJiZsLmluZGV4fHxjLmxlbmd0aDtyZXR1'@; put 'cm4gYy5zbGljZSgwLGEtKCIvIj09PWNbYS0xXT8xOjApKStjLnNsaWNlKGEpfWZ1bmN0aW9uIFg0KGMpe3JldHVybiBjJiYiPyIhPT1jWzBdPyI/IitjOmN9bGV0IFo4PSgoKT0+e2NsYXNzIGN7aGlzdG9yeUdvKGEpe3Rocm93IG5ldyBFcnJvcigiIil9c3RhdGlje3RoaXMuXHUwMjc1ZmFj'@; put 'PWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTooKT0+aGkoWGFlKSxwcm92aWRlZEluOiJyb290In0pfX1yZXR1cm4gY30pKCk7Y29uc3QgS2FlPW5ldyBTdCgiIik7bGV0IFhhZT0oKCk9PntjbGFzcyBjIGV4'@; put 'dGVuZHMgWjh7Y29uc3RydWN0b3IoYSxkKXtzdXBlcigpLHRoaXMuX3BsYXRmb3JtTG9jYXRpb249YSx0aGlzLl9yZW1vdmVMaXN0ZW5lckZucz1bXSx0aGlzLl9iYXNlSHJlZj1kPz90aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLmdldEJhc2VIcmVmRnJvbURPTSgpPz9oaShtbykubG9jYXRpb24/'@; put 'Lm9yaWdpbj8/IiJ9bmdPbkRlc3Ryb3koKXtmb3IoO3RoaXMuX3JlbW92ZUxpc3RlbmVyRm5zLmxlbmd0aDspdGhpcy5fcmVtb3ZlTGlzdGVuZXJGbnMucG9wKCkoKX1vblBvcFN0YXRlKGEpe3RoaXMuX3JlbW92ZUxpc3RlbmVyRm5zLnB1c2godGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5vblBv'@; put 'cFN0YXRlKGEpLHRoaXMuX3BsYXRmb3JtTG9jYXRpb24ub25IYXNoQ2hhbmdlKGEpKX1nZXRCYXNlSHJlZigpe3JldHVybiB0aGlzLl9iYXNlSHJlZn1wcmVwYXJlRXh0ZXJuYWxVcmwoYSl7cmV0dXJuIFpVKHRoaXMuX2Jhc2VIcmVmLGEpfXBhdGgoYT0hMSl7Y29uc3QgZD10aGlzLl9wbGF0'@; put 'Zm9ybUxvY2F0aW9uLnBhdGhuYW1lK1g0KHRoaXMuX3BsYXRmb3JtTG9jYXRpb24uc2VhcmNoKSxoPXRoaXMuX3BsYXRmb3JtTG9jYXRpb24uaGFzaDtyZXR1cm4gaCYmYT9gJHtkfSR7aH1gOmR9cHVzaFN0YXRlKGEsZCxoLGYpe2NvbnN0IHY9dGhpcy5wcmVwYXJlRXh0ZXJuYWxVcmwoaCtY'@; put 'NChmKSk7dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5wdXNoU3RhdGUoYSxkLHYpfXJlcGxhY2VTdGF0ZShhLGQsaCxmKXtjb25zdCB2PXRoaXMucHJlcGFyZUV4dGVybmFsVXJsKGgrWDQoZikpO3RoaXMuX3BsYXRmb3JtTG9jYXRpb24ucmVwbGFjZVN0YXRlKGEsZCx2KX1mb3J3YXJkKCl7dGhp'@; put 'cy5fcGxhdGZvcm1Mb2NhdGlvbi5mb3J3YXJkKCl9YmFjaygpe3RoaXMuX3BsYXRmb3JtTG9jYXRpb24uYmFjaygpfWdldFN0YXRlKCl7cmV0dXJuIHRoaXMuX3BsYXRmb3JtTG9jYXRpb24uZ2V0U3RhdGUoKX1oaXN0b3J5R28oYT0wKXt0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLmhpc3RvcnlH'@; put 'bz8uKGEpfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpKENyKFVVKSxDcihLYWUsOCkpfX1zdGF0aWN7dGhpcy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KX19cmV0dXJuIGN9KSgp'@; put 'LFJfZT0oKCk9PntjbGFzcyBjIGV4dGVuZHMgWjh7Y29uc3RydWN0b3IoYSxkKXtzdXBlcigpLHRoaXMuX3BsYXRmb3JtTG9jYXRpb249YSx0aGlzLl9iYXNlSHJlZj0iIix0aGlzLl9yZW1vdmVMaXN0ZW5lckZucz1bXSxudWxsIT1kJiYodGhpcy5fYmFzZUhyZWY9ZCl9bmdPbkRlc3Ryb3ko'@; put 'KXtmb3IoO3RoaXMuX3JlbW92ZUxpc3RlbmVyRm5zLmxlbmd0aDspdGhpcy5fcmVtb3ZlTGlzdGVuZXJGbnMucG9wKCkoKX1vblBvcFN0YXRlKGEpe3RoaXMuX3JlbW92ZUxpc3RlbmVyRm5zLnB1c2godGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5vblBvcFN0YXRlKGEpLHRoaXMuX3BsYXRmb3Jt'@; put 'TG9jYXRpb24ub25IYXNoQ2hhbmdlKGEpKX1nZXRCYXNlSHJlZigpe3JldHVybiB0aGlzLl9iYXNlSHJlZn1wYXRoKGE9ITEpe2NvbnN0IGQ9dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5oYXNoPz8iIyI7cmV0dXJuIGQubGVuZ3RoPjA/ZC5zdWJzdHJpbmcoMSk6ZH1wcmVwYXJlRXh0ZXJuYWxV'@; put 'cmwoYSl7Y29uc3QgZD1aVSh0aGlzLl9iYXNlSHJlZixhKTtyZXR1cm4gZC5sZW5ndGg+MD8iIyIrZDpkfXB1c2hTdGF0ZShhLGQsaCxmKXtsZXQgdj10aGlzLnByZXBhcmVFeHRlcm5hbFVybChoK1g0KGYpKTswPT12Lmxlbmd0aCYmKHY9dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5wYXRobmFt'@; put 'ZSksdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5wdXNoU3RhdGUoYSxkLHYpfXJlcGxhY2VTdGF0ZShhLGQsaCxmKXtsZXQgdj10aGlzLnByZXBhcmVFeHRlcm5hbFVybChoK1g0KGYpKTswPT12Lmxlbmd0aCYmKHY9dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5wYXRobmFtZSksdGhpcy5fcGxhdGZv'@; put 'cm1Mb2NhdGlvbi5yZXBsYWNlU3RhdGUoYSxkLHYpfWZvcndhcmQoKXt0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLmZvcndhcmQoKX1iYWNrKCl7dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5iYWNrKCl9Z2V0U3RhdGUoKXtyZXR1cm4gdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5nZXRTdGF0ZSgpfWhp'@; put 'c3RvcnlHbyhhPTApe3RoaXMuX3BsYXRmb3JtTG9jYXRpb24uaGlzdG9yeUdvPy4oYSl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoQ3IoVVUpLENyKEthZSw4KSl9fXN0YXRpY3t0aGlzLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpj'@; put 'Llx1MDI3NWZhY30pfX1yZXR1cm4gY30pKCkscGg9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLl9zdWJqZWN0PW5ldyBLcix0aGlzLl91cmxDaGFuZ2VMaXN0ZW5lcnM9W10sdGhpcy5fdXJsQ2hhbmdlU3Vic2NyaXB0aW9uPW51bGwsdGhpcy5fbG9jYXRpb25TdHJhdGVneT1h'@; put 'O2NvbnN0IGQ9dGhpcy5fbG9jYXRpb25TdHJhdGVneS5nZXRCYXNlSHJlZigpO3RoaXMuX2Jhc2VQYXRoPWZ1bmN0aW9uIFBfZShjKXtpZihuZXcgUmVnRXhwKCJeKGh0dHBzPzopPy8vIikudGVzdChjKSl7Y29uc3RbLGFdPWMuc3BsaXQoL1wvXC9bXlwvXSsvKTtyZXR1cm4gYX1yZXR1cm4g'@; put 'Y30oJGFlKHFhZShkKSkpLHRoaXMuX2xvY2F0aW9uU3RyYXRlZ3kub25Qb3BTdGF0ZShoPT57dGhpcy5fc3ViamVjdC5lbWl0KHt1cmw6dGhpcy5wYXRoKCEwKSxwb3A6ITAsc3RhdGU6aC5zdGF0ZSx0eXBlOmgudHlwZX0pfSl9bmdPbkRlc3Ryb3koKXt0aGlzLl91cmxDaGFuZ2VTdWJzY3Jp'@; put 'cHRpb24/LnVuc3Vic2NyaWJlKCksdGhpcy5fdXJsQ2hhbmdlTGlzdGVuZXJzPVtdfXBhdGgoYT0hMSl7cmV0dXJuIHRoaXMubm9ybWFsaXplKHRoaXMuX2xvY2F0aW9uU3RyYXRlZ3kucGF0aChhKSl9Z2V0U3RhdGUoKXtyZXR1cm4gdGhpcy5fbG9jYXRpb25TdHJhdGVneS5nZXRTdGF0ZSgp'@; put 'fWlzQ3VycmVudFBhdGhFcXVhbFRvKGEsZD0iIil7cmV0dXJuIHRoaXMucGF0aCgpPT10aGlzLm5vcm1hbGl6ZShhK1g0KGQpKX1ub3JtYWxpemUoYSl7cmV0dXJuIGMuc3RyaXBUcmFpbGluZ1NsYXNoKGZ1bmN0aW9uIE9fZShjLGwpe2lmKCFjfHwhbC5zdGFydHNXaXRoKGMpKXJldHVybiBs'@; put 'O2NvbnN0IGE9bC5zdWJzdHJpbmcoYy5sZW5ndGgpO3JldHVybiIiPT09YXx8WyIvIiwiOyIsIj8iLCIjIl0uaW5jbHVkZXMoYVswXSk/YTpsfSh0aGlzLl9iYXNlUGF0aCxxYWUoYSkpKX1wcmVwYXJlRXh0ZXJuYWxVcmwoYSl7cmV0dXJuIGEmJiIvIiE9PWFbMF0mJihhPSIvIithKSx0aGlz'@; put 'Ll9sb2NhdGlvblN0cmF0ZWd5LnByZXBhcmVFeHRlcm5hbFVybChhKX1nbyhhLGQ9IiIsaD1udWxsKXt0aGlzLl9sb2NhdGlvblN0cmF0ZWd5LnB1c2hTdGF0ZShoLCIiLGEsZCksdGhpcy5fbm90aWZ5VXJsQ2hhbmdlTGlzdGVuZXJzKHRoaXMucHJlcGFyZUV4dGVybmFsVXJsKGErWDQoZCkp'@; put 'LGgpfXJlcGxhY2VTdGF0ZShhLGQ9IiIsaD1udWxsKXt0aGlzLl9sb2NhdGlvblN0cmF0ZWd5LnJlcGxhY2VTdGF0ZShoLCIiLGEsZCksdGhpcy5fbm90aWZ5VXJsQ2hhbmdlTGlzdGVuZXJzKHRoaXMucHJlcGFyZUV4dGVybmFsVXJsKGErWDQoZCkpLGgpfWZvcndhcmQoKXt0aGlzLl9sb2Nh'@; put 'dGlvblN0cmF0ZWd5LmZvcndhcmQoKX1iYWNrKCl7dGhpcy5fbG9jYXRpb25TdHJhdGVneS5iYWNrKCl9aGlzdG9yeUdvKGE9MCl7dGhpcy5fbG9jYXRpb25TdHJhdGVneS5oaXN0b3J5R28/LihhKX1vblVybENoYW5nZShhKXtyZXR1cm4gdGhpcy5fdXJsQ2hhbmdlTGlzdGVuZXJzLnB1c2go'@; put 'YSksdGhpcy5fdXJsQ2hhbmdlU3Vic2NyaXB0aW9uPz89dGhpcy5zdWJzY3JpYmUoZD0+e3RoaXMuX25vdGlmeVVybENoYW5nZUxpc3RlbmVycyhkLnVybCxkLnN0YXRlKX0pLCgpPT57Y29uc3QgZD10aGlzLl91cmxDaGFuZ2VMaXN0ZW5lcnMuaW5kZXhPZihhKTt0aGlzLl91cmxDaGFuZ2VM'@; put 'aXN0ZW5lcnMuc3BsaWNlKGQsMSksMD09PXRoaXMuX3VybENoYW5nZUxpc3RlbmVycy5sZW5ndGgmJih0aGlzLl91cmxDaGFuZ2VTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCksdGhpcy5fdXJsQ2hhbmdlU3Vic2NyaXB0aW9uPW51bGwpfX1fbm90aWZ5VXJsQ2hhbmdlTGlzdGVuZXJzKGE9'@; put 'IiIsZCl7dGhpcy5fdXJsQ2hhbmdlTGlzdGVuZXJzLmZvckVhY2goaD0+aChhLGQpKX1zdWJzY3JpYmUoYSxkLGgpe3JldHVybiB0aGlzLl9zdWJqZWN0LnN1YnNjcmliZSh7bmV4dDphLGVycm9yOmQsY29tcGxldGU6aH0pfXN0YXRpY3t0aGlzLm5vcm1hbGl6ZVF1ZXJ5UGFyYW1zPVg0fXN0'@; put 'YXRpY3t0aGlzLmpvaW5XaXRoU2xhc2g9WlV9c3RhdGlje3RoaXMuc3RyaXBUcmFpbGluZ1NsYXNoPSRhZX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKShDcihaOCkpfX1zdGF0aWN7dGhpcy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6'@; put 'KCk9PmZ1bmN0aW9uIExfZSgpe3JldHVybiBuZXcgcGgoQ3IoWjgpKX0oKSxwcm92aWRlZEluOiJyb290In0pfX1yZXR1cm4gY30pKCk7ZnVuY3Rpb24gcWFlKGMpe3JldHVybiBjLnJlcGxhY2UoL1wvaW5kZXguaHRtbCQvLCIiKX12YXIgYzA9ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5Gb3Jt'@; put 'YXQ9MF09IkZvcm1hdCIsY1tjLlN0YW5kYWxvbmU9MV09IlN0YW5kYWxvbmUiLGN9KGMwfHx7fSksbGw9ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5OYXJyb3c9MF09Ik5hcnJvdyIsY1tjLkFiYnJldmlhdGVkPTFdPSJBYmJyZXZpYXRlZCIsY1tjLldpZGU9Ml09IldpZGUiLGNbYy5TaG9ydD0z'@; put 'XT0iU2hvcnQiLGN9KGxsfHx7fSksQ2Q9ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5TaG9ydD0wXT0iU2hvcnQiLGNbYy5NZWRpdW09MV09Ik1lZGl1bSIsY1tjLkxvbmc9Ml09IkxvbmciLGNbYy5GdWxsPTNdPSJGdWxsIixjfShDZHx8e30pO2Z1bmN0aW9uIFdVKGMsbCxhKXtjb25zdCBkPWEx'@; put 'KGMpLGY9TTIoW2RbUWwuRGF5c0Zvcm1hdF0sZFtRbC5EYXlzU3RhbmRhbG9uZV1dLGwpO3JldHVybiBNMihmLGEpfWZ1bmN0aW9uIFlVKGMsbCxhKXtjb25zdCBkPWExKGMpLGY9TTIoW2RbUWwuTW9udGhzRm9ybWF0XSxkW1FsLk1vbnRoc1N0YW5kYWxvbmVdXSxsKTtyZXR1cm4gTTIoZixh'@; put 'KX1mdW5jdGlvbiBNMihjLGwpe2ZvcihsZXQgYT1sO2E+LTE7YS0tKWlmKHR5cGVvZiBjW2FdPCJ1IilyZXR1cm4gY1thXTt0aHJvdyBuZXcgRXJyb3IoIkxvY2FsZSBkYXRhIEFQSTogbG9jYWxlIGRhdGEgdW5kZWZpbmVkIil9ZnVuY3Rpb24gc3NlKGMsbCl7bD1lbmNvZGVVUklDb21wb25l'@; put 'bnQobCk7Zm9yKGNvbnN0IGEgb2YgYy5zcGxpdCgiOyIpKXtjb25zdCBkPWEuaW5kZXhPZigiPSIpLFtoLGZdPS0xPT1kP1thLCIiXTpbYS5zbGljZSgwLGQpLGEuc2xpY2UoZCsxKV07aWYoaC50cmltKCk9PT1sKXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoZil9cmV0dXJuIG51bGx9Y29u'@; put 'c3Qgblo9L1xzKy8sb3NlPVtdO2xldCB2dT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCl7dGhpcy5fbmdFbD1hLHRoaXMuX3JlbmRlcmVyPWQsdGhpcy5pbml0aWFsQ2xhc3Nlcz1vc2UsdGhpcy5zdGF0ZU1hcD1uZXcgTWFwfXNldCBrbGFzcyhhKXt0aGlzLmluaXRpYWxDbGFzc2Vz'@; put 'PW51bGwhPWE/YS50cmltKCkuc3BsaXQoblopOm9zZX1zZXQgbmdDbGFzcyhhKXt0aGlzLnJhd0NsYXNzPSJzdHJpbmciPT10eXBlb2YgYT9hLnRyaW0oKS5zcGxpdChuWik6YX1uZ0RvQ2hlY2soKXtmb3IoY29uc3QgZCBvZiB0aGlzLmluaXRpYWxDbGFzc2VzKXRoaXMuX3VwZGF0ZVN0YXRl'@; put 'KGQsITApO2NvbnN0IGE9dGhpcy5yYXdDbGFzcztpZihBcnJheS5pc0FycmF5KGEpfHxhIGluc3RhbmNlb2YgU2V0KWZvcihjb25zdCBkIG9mIGEpdGhpcy5fdXBkYXRlU3RhdGUoZCwhMCk7ZWxzZSBpZihudWxsIT1hKWZvcihjb25zdCBkIG9mIE9iamVjdC5rZXlzKGEpKXRoaXMuX3VwZGF0'@; put 'ZVN0YXRlKGQsISFhW2RdKTt0aGlzLl9hcHBseVN0YXRlRGlmZigpfV91cGRhdGVTdGF0ZShhLGQpe2NvbnN0IGg9dGhpcy5zdGF0ZU1hcC5nZXQoYSk7dm9pZCAwIT09aD8oaC5lbmFibGVkIT09ZCYmKGguY2hhbmdlZD0hMCxoLmVuYWJsZWQ9ZCksaC50b3VjaGVkPSEwKTp0aGlzLnN0YXRl'@; put 'TWFwLnNldChhLHtlbmFibGVkOmQsY2hhbmdlZDohMCx0b3VjaGVkOiEwfSl9X2FwcGx5U3RhdGVEaWZmKCl7Zm9yKGNvbnN0IGEgb2YgdGhpcy5zdGF0ZU1hcCl7Y29uc3QgZD1hWzBdLGg9YVsxXTtoLmNoYW5nZWQ/KHRoaXMuX3RvZ2dsZUNsYXNzKGQsaC5lbmFibGVkKSxoLmNoYW5nZWQ9'@; put 'ITEpOmgudG91Y2hlZHx8KGguZW5hYmxlZCYmdGhpcy5fdG9nZ2xlQ2xhc3MoZCwhMSksdGhpcy5zdGF0ZU1hcC5kZWxldGUoZCkpLGgudG91Y2hlZD0hMX19X3RvZ2dsZUNsYXNzKGEsZCl7KGE9YS50cmltKCkpLmxlbmd0aD4wJiZhLnNwbGl0KG5aKS5mb3JFYWNoKGg9PntkP3RoaXMuX3Jl'@; put 'bmRlcmVyLmFkZENsYXNzKHRoaXMuX25nRWwubmF0aXZlRWxlbWVudCxoKTp0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLl9uZ0VsLm5hdGl2ZUVsZW1lbnQsaCl9KX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKSgkZShRaSksJGUoRXMp'@; put 'KX19c3RhdGlje3RoaXMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsIm5nQ2xhc3MiLCIiXV0saW5wdXRzOntrbGFzczpbVm4uTm9uZSwiY2xhc3MiLCJrbGFzcyJdLG5nQ2xhc3M6Im5nQ2xhc3MifSxzdGFuZGFsb25lOiEwfSl9fXJldHVybiBjfSkoKTtjbGFzcyBfd2V7'@; put 'Y29uc3RydWN0b3IobCxhLGQsaCl7dGhpcy4kaW1wbGljaXQ9bCx0aGlzLm5nRm9yT2Y9YSx0aGlzLmluZGV4PWQsdGhpcy5jb3VudD1ofWdldCBmaXJzdCgpe3JldHVybiAwPT09dGhpcy5pbmRleH1nZXQgbGFzdCgpe3JldHVybiB0aGlzLmluZGV4PT09dGhpcy5jb3VudC0xfWdldCBldmVu'@; put 'KCl7cmV0dXJuIHRoaXMuaW5kZXglMj09MH1nZXQgb2RkKCl7cmV0dXJuIXRoaXMuZXZlbn19bGV0IFFzPSgoKT0+e2NsYXNzIGN7c2V0IG5nRm9yT2YoYSl7dGhpcy5fbmdGb3JPZj1hLHRoaXMuX25nRm9yT2ZEaXJ0eT0hMH1zZXQgbmdGb3JUcmFja0J5KGEpe3RoaXMuX3RyYWNrQnlGbj1h'@; put 'fWdldCBuZ0ZvclRyYWNrQnkoKXtyZXR1cm4gdGhpcy5fdHJhY2tCeUZufWNvbnN0cnVjdG9yKGEsZCxoKXt0aGlzLl92aWV3Q29udGFpbmVyPWEsdGhpcy5fdGVtcGxhdGU9ZCx0aGlzLl9kaWZmZXJzPWgsdGhpcy5fbmdGb3JPZj1udWxsLHRoaXMuX25nRm9yT2ZEaXJ0eT0hMCx0aGlzLl9k'@; put 'aWZmZXI9bnVsbH1zZXQgbmdGb3JUZW1wbGF0ZShhKXthJiYodGhpcy5fdGVtcGxhdGU9YSl9bmdEb0NoZWNrKCl7aWYodGhpcy5fbmdGb3JPZkRpcnR5KXt0aGlzLl9uZ0Zvck9mRGlydHk9ITE7Y29uc3QgYT10aGlzLl9uZ0Zvck9mOyF0aGlzLl9kaWZmZXImJmEmJih0aGlzLl9kaWZmZXI9'@; put 'dGhpcy5fZGlmZmVycy5maW5kKGEpLmNyZWF0ZSh0aGlzLm5nRm9yVHJhY2tCeSkpfWlmKHRoaXMuX2RpZmZlcil7Y29uc3QgYT10aGlzLl9kaWZmZXIuZGlmZih0aGlzLl9uZ0Zvck9mKTthJiZ0aGlzLl9hcHBseUNoYW5nZXMoYSl9fV9hcHBseUNoYW5nZXMoYSl7Y29uc3QgZD10aGlzLl92'@; put 'aWV3Q29udGFpbmVyO2EuZm9yRWFjaE9wZXJhdGlvbigoaCxmLHYpPT57aWYobnVsbD09aC5wcmV2aW91c0luZGV4KWQuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX3RlbXBsYXRlLG5ldyBfd2UoaC5pdGVtLHRoaXMuX25nRm9yT2YsLTEsLTEpLG51bGw9PT12P3ZvaWQgMDp2KTtlbHNlIGlm'@; put 'KG51bGw9PXYpZC5yZW1vdmUobnVsbD09PWY/dm9pZCAwOmYpO2Vsc2UgaWYobnVsbCE9PWYpe2NvbnN0IE09ZC5nZXQoZik7ZC5tb3ZlKE0sdiksY3NlKE0saCl9fSk7Zm9yKGxldCBoPTAsZj1kLmxlbmd0aDtoPGY7aCsrKXtjb25zdCBNPWQuZ2V0KGgpLmNvbnRleHQ7TS5pbmRleD1oLE0u'@; put 'Y291bnQ9ZixNLm5nRm9yT2Y9dGhpcy5fbmdGb3JPZn1hLmZvckVhY2hJZGVudGl0eUNoYW5nZShoPT57Y3NlKGQuZ2V0KGguY3VycmVudEluZGV4KSxoKX0pfXN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKGEsZCl7cmV0dXJuITB9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9u'@; put 'KGQpe3JldHVybiBuZXcoZHx8YykoJGUoVHMpLCRlKHdsKSwkZShxNSkpfX1zdGF0aWN7dGhpcy5cdTAyNzVkaXI9RXIoe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwibmdGb3IiLCIiLCJuZ0Zvck9mIiwiIl1dLGlucHV0czp7bmdGb3JPZjoibmdGb3JPZiIsbmdGb3JUcmFja0J5OiJuZ0ZvclRy'@; put 'YWNrQnkiLG5nRm9yVGVtcGxhdGU6Im5nRm9yVGVtcGxhdGUifSxzdGFuZGFsb25lOiEwfSl9fXJldHVybiBjfSkoKTtmdW5jdGlvbiBjc2UoYyxsKXtjLmNvbnRleHQuJGltcGxpY2l0PWwuaXRlbX1sZXQgYmE9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQpe3RoaXMuX3ZpZXdDb250'@; put 'YWluZXI9YSx0aGlzLl9jb250ZXh0PW5ldyB3d2UsdGhpcy5fdGhlblRlbXBsYXRlUmVmPW51bGwsdGhpcy5fZWxzZVRlbXBsYXRlUmVmPW51bGwsdGhpcy5fdGhlblZpZXdSZWY9bnVsbCx0aGlzLl9lbHNlVmlld1JlZj1udWxsLHRoaXMuX3RoZW5UZW1wbGF0ZVJlZj1kfXNldCBuZ0lmKGEp'@; put 'e3RoaXMuX2NvbnRleHQuJGltcGxpY2l0PXRoaXMuX2NvbnRleHQubmdJZj1hLHRoaXMuX3VwZGF0ZVZpZXcoKX1zZXQgbmdJZlRoZW4oYSl7dXNlKCJuZ0lmVGhlbiIsYSksdGhpcy5fdGhlblRlbXBsYXRlUmVmPWEsdGhpcy5fdGhlblZpZXdSZWY9bnVsbCx0aGlzLl91cGRhdGVWaWV3KCl9'@; put 'c2V0IG5nSWZFbHNlKGEpe3VzZSgibmdJZkVsc2UiLGEpLHRoaXMuX2Vsc2VUZW1wbGF0ZVJlZj1hLHRoaXMuX2Vsc2VWaWV3UmVmPW51bGwsdGhpcy5fdXBkYXRlVmlldygpfV91cGRhdGVWaWV3KCl7dGhpcy5fY29udGV4dC4kaW1wbGljaXQ/dGhpcy5fdGhlblZpZXdSZWZ8fCh0aGlzLl92'@; put 'aWV3Q29udGFpbmVyLmNsZWFyKCksdGhpcy5fZWxzZVZpZXdSZWY9bnVsbCx0aGlzLl90aGVuVGVtcGxhdGVSZWYmJih0aGlzLl90aGVuVmlld1JlZj10aGlzLl92aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl90aGVuVGVtcGxhdGVSZWYsdGhpcy5fY29udGV4dCkpKTp0'@; put 'aGlzLl9lbHNlVmlld1JlZnx8KHRoaXMuX3ZpZXdDb250YWluZXIuY2xlYXIoKSx0aGlzLl90aGVuVmlld1JlZj1udWxsLHRoaXMuX2Vsc2VUZW1wbGF0ZVJlZiYmKHRoaXMuX2Vsc2VWaWV3UmVmPXRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX2Vsc2VUZW1w'@; put 'bGF0ZVJlZix0aGlzLl9jb250ZXh0KSkpfXN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKGEsZCl7cmV0dXJuITB9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUoVHMpLCRlKHdsKSl9fXN0YXRpY3t0aGlzLlx1MDI3NWRpcj1Fcih7dHlw'@; put 'ZTpjLHNlbGVjdG9yczpbWyIiLCJuZ0lmIiwiIl1dLGlucHV0czp7bmdJZjoibmdJZiIsbmdJZlRoZW46Im5nSWZUaGVuIixuZ0lmRWxzZToibmdJZkVsc2UifSxzdGFuZGFsb25lOiEwfSl9fXJldHVybiBjfSkoKTtjbGFzcyB3d2V7Y29uc3RydWN0b3IoKXt0aGlzLiRpbXBsaWNpdD1udWxs'@; put 'LHRoaXMubmdJZj1udWxsfX1mdW5jdGlvbiB1c2UoYyxsKXtpZihsJiYhbC5jcmVhdGVFbWJlZGRlZFZpZXcpdGhyb3cgbmV3IEVycm9yKGAke2N9IG11c3QgYmUgYSBUZW1wbGF0ZVJlZiwgYnV0IHJlY2VpdmVkICcke0hyKGwpfScuYCl9Y2xhc3Mgclp7Y29uc3RydWN0b3IobCxhKXt0aGlz'@; put 'Ll92aWV3Q29udGFpbmVyUmVmPWwsdGhpcy5fdGVtcGxhdGVSZWY9YSx0aGlzLl9jcmVhdGVkPSExfWNyZWF0ZSgpe3RoaXMuX2NyZWF0ZWQ9ITAsdGhpcy5fdmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5fdGVtcGxhdGVSZWYpfWRlc3Ryb3koKXt0aGlzLl9jcmVh'@; put 'dGVkPSExLHRoaXMuX3ZpZXdDb250YWluZXJSZWYuY2xlYXIoKX1lbmZvcmNlU3RhdGUobCl7bCYmIXRoaXMuX2NyZWF0ZWQ/dGhpcy5jcmVhdGUoKTohbCYmdGhpcy5fY3JlYXRlZCYmdGhpcy5kZXN0cm95KCl9fWxldCB4Mj0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5fZGVm'@; put 'YXVsdFZpZXdzPVtdLHRoaXMuX2RlZmF1bHRVc2VkPSExLHRoaXMuX2Nhc2VDb3VudD0wLHRoaXMuX2xhc3RDYXNlQ2hlY2tJbmRleD0wLHRoaXMuX2xhc3RDYXNlc01hdGNoZWQ9ITF9c2V0IG5nU3dpdGNoKGEpe3RoaXMuX25nU3dpdGNoPWEsMD09PXRoaXMuX2Nhc2VDb3VudCYmdGhpcy5f'@; put 'dXBkYXRlRGVmYXVsdENhc2VzKCEwKX1fYWRkQ2FzZSgpe3JldHVybiB0aGlzLl9jYXNlQ291bnQrK31fYWRkRGVmYXVsdChhKXt0aGlzLl9kZWZhdWx0Vmlld3MucHVzaChhKX1fbWF0Y2hDYXNlKGEpe2NvbnN0IGQ9YT09PXRoaXMuX25nU3dpdGNoO3JldHVybiB0aGlzLl9sYXN0Q2FzZXNN'@; put 'YXRjaGVkfHw9ZCx0aGlzLl9sYXN0Q2FzZUNoZWNrSW5kZXgrKyx0aGlzLl9sYXN0Q2FzZUNoZWNrSW5kZXg9PT10aGlzLl9jYXNlQ291bnQmJih0aGlzLl91cGRhdGVEZWZhdWx0Q2FzZXMoIXRoaXMuX2xhc3RDYXNlc01hdGNoZWQpLHRoaXMuX2xhc3RDYXNlQ2hlY2tJbmRleD0wLHRoaXMu'@; put 'X2xhc3RDYXNlc01hdGNoZWQ9ITEpLGR9X3VwZGF0ZURlZmF1bHRDYXNlcyhhKXtpZih0aGlzLl9kZWZhdWx0Vmlld3MubGVuZ3RoPjAmJmEhPT10aGlzLl9kZWZhdWx0VXNlZCl7dGhpcy5fZGVmYXVsdFVzZWQ9YTtmb3IoY29uc3QgZCBvZiB0aGlzLl9kZWZhdWx0Vmlld3MpZC5lbmZvcmNl'@; put 'U3RhdGUoYSl9fXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpfX1zdGF0aWN7dGhpcy5cdTAyNzVkaXI9RXIoe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwibmdTd2l0Y2giLCIiXV0saW5wdXRzOntuZ1N3aXRjaDoibmdTd2l0Y2gifSxzdGFuZGFsb25l'@; put 'OiEwfSl9fXJldHVybiBjfSkoKSxkcD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoKXt0aGlzLm5nU3dpdGNoPWgsaC5fYWRkQ2FzZSgpLHRoaXMuX3ZpZXc9bmV3IHJaKGEsZCl9bmdEb0NoZWNrKCl7dGhpcy5fdmlldy5lbmZvcmNlU3RhdGUodGhpcy5uZ1N3aXRjaC5fbWF0Y2hD'@; put 'YXNlKHRoaXMubmdTd2l0Y2hDYXNlKSl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUoVHMpLCRlKHdsKSwkZSh4Miw5KSl9fXN0YXRpY3t0aGlzLlx1MDI3NWRpcj1Fcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJuZ1N3aXRjaENhc2UiLCIi'@; put 'XV0saW5wdXRzOntuZ1N3aXRjaENhc2U6Im5nU3dpdGNoQ2FzZSJ9LHN0YW5kYWxvbmU6ITB9KX19cmV0dXJuIGN9KSgpLGhzZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoKXt0aGlzLl9uZ0VsPWEsdGhpcy5fZGlmZmVycz1kLHRoaXMuX3JlbmRlcmVyPWgsdGhpcy5fbmdTdHls'@; put 'ZT1udWxsLHRoaXMuX2RpZmZlcj1udWxsfXNldCBuZ1N0eWxlKGEpe3RoaXMuX25nU3R5bGU9YSwhdGhpcy5fZGlmZmVyJiZhJiYodGhpcy5fZGlmZmVyPXRoaXMuX2RpZmZlcnMuZmluZChhKS5jcmVhdGUoKSl9bmdEb0NoZWNrKCl7aWYodGhpcy5fZGlmZmVyKXtjb25zdCBhPXRoaXMuX2Rp'@; put 'ZmZlci5kaWZmKHRoaXMuX25nU3R5bGUpO2EmJnRoaXMuX2FwcGx5Q2hhbmdlcyhhKX19X3NldFN0eWxlKGEsZCl7Y29uc3RbaCxmXT1hLnNwbGl0KCIuIiksdj0tMT09PWguaW5kZXhPZigiLSIpP3ZvaWQgMDpYMy5EYXNoQ2FzZTtudWxsIT1kP3RoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRo'@; put 'aXMuX25nRWwubmF0aXZlRWxlbWVudCxoLGY/YCR7ZH0ke2Z9YDpkLHYpOnRoaXMuX3JlbmRlcmVyLnJlbW92ZVN0eWxlKHRoaXMuX25nRWwubmF0aXZlRWxlbWVudCxoLHYpfV9hcHBseUNoYW5nZXMoYSl7YS5mb3JFYWNoUmVtb3ZlZEl0ZW0oZD0+dGhpcy5fc2V0U3R5bGUoZC5rZXksbnVs'@; put 'bCkpLGEuZm9yRWFjaEFkZGVkSXRlbShkPT50aGlzLl9zZXRTdHlsZShkLmtleSxkLmN1cnJlbnRWYWx1ZSkpLGEuZm9yRWFjaENoYW5nZWRJdGVtKGQ9PnRoaXMuX3NldFN0eWxlKGQua2V5LGQuY3VycmVudFZhbHVlKSl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVy'@; put 'biBuZXcoZHx8YykoJGUoUWkpLCRlKEVNKSwkZShFcykpfX1zdGF0aWN7dGhpcy5cdTAyNzVkaXI9RXIoe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwibmdTdHlsZSIsIiJdXSxpbnB1dHM6e25nU3R5bGU6Im5nU3R5bGUifSxzdGFuZGFsb25lOiEwfSl9fXJldHVybiBjfSkoKSxCMT0oKCk9Pntj'@; put 'bGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMuX3ZpZXdDb250YWluZXJSZWY9YSx0aGlzLl92aWV3UmVmPW51bGwsdGhpcy5uZ1RlbXBsYXRlT3V0bGV0Q29udGV4dD1udWxsLHRoaXMubmdUZW1wbGF0ZU91dGxldD1udWxsLHRoaXMubmdUZW1wbGF0ZU91dGxldEluamVjdG9yPW51bGx9bmdP'@; put 'bkNoYW5nZXMoYSl7aWYodGhpcy5fc2hvdWxkUmVjcmVhdGVWaWV3KGEpKXtjb25zdCBkPXRoaXMuX3ZpZXdDb250YWluZXJSZWY7aWYodGhpcy5fdmlld1JlZiYmZC5yZW1vdmUoZC5pbmRleE9mKHRoaXMuX3ZpZXdSZWYpKSwhdGhpcy5uZ1RlbXBsYXRlT3V0bGV0KXJldHVybiB2b2lkKHRo'@; put 'aXMuX3ZpZXdSZWY9bnVsbCk7Y29uc3QgaD10aGlzLl9jcmVhdGVDb250ZXh0Rm9yd2FyZFByb3h5KCk7dGhpcy5fdmlld1JlZj1kLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLm5nVGVtcGxhdGVPdXRsZXQsaCx7aW5qZWN0b3I6dGhpcy5uZ1RlbXBsYXRlT3V0bGV0SW5qZWN0b3I/P3ZvaWQg'@; put 'MH0pfX1fc2hvdWxkUmVjcmVhdGVWaWV3KGEpe3JldHVybiEhYS5uZ1RlbXBsYXRlT3V0bGV0fHwhIWEubmdUZW1wbGF0ZU91dGxldEluamVjdG9yfV9jcmVhdGVDb250ZXh0Rm9yd2FyZFByb3h5KCl7cmV0dXJuIG5ldyBQcm94eSh7fSx7c2V0OihhLGQsaCk9PiEhdGhpcy5uZ1RlbXBsYXRl'@; put 'T3V0bGV0Q29udGV4dCYmUmVmbGVjdC5zZXQodGhpcy5uZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCxkLGgpLGdldDooYSxkLGgpPT57aWYodGhpcy5uZ1RlbXBsYXRlT3V0bGV0Q29udGV4dClyZXR1cm4gUmVmbGVjdC5nZXQodGhpcy5uZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCxkLGgpfX0pfXN0'@; put 'YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpKCRlKFRzKSl9fXN0YXRpY3t0aGlzLlx1MDI3NWRpcj1Fcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJuZ1RlbXBsYXRlT3V0bGV0IiwiIl1dLGlucHV0czp7bmdUZW1wbGF0ZU91dGxldENvbnRleHQ6Im5n'@; put 'VGVtcGxhdGVPdXRsZXRDb250ZXh0IixuZ1RlbXBsYXRlT3V0bGV0OiJuZ1RlbXBsYXRlT3V0bGV0IixuZ1RlbXBsYXRlT3V0bGV0SW5qZWN0b3I6Im5nVGVtcGxhdGVPdXRsZXRJbmplY3RvciJ9LHN0YW5kYWxvbmU6ITAsZmVhdHVyZXM6W2JsXX0pfX1yZXR1cm4gY30pKCk7Y2xhc3MgeHdl'@; put 'e2NyZWF0ZVN1YnNjcmlwdGlvbihsLGEpe3JldHVybiBXYWUoKCk9Pmwuc3Vic2NyaWJlKHtuZXh0OmEsZXJyb3I6ZD0+e3Rocm93IGR9fSkpfWRpc3Bvc2UobCl7V2FlKCgpPT5sLnVuc3Vic2NyaWJlKCkpfX1jbGFzcyBFd2V7Y3JlYXRlU3Vic2NyaXB0aW9uKGwsYSl7cmV0dXJuIGwudGhl'@; put 'bihhLGQ9Pnt0aHJvdyBkfSl9ZGlzcG9zZShsKXt9fWNvbnN0IFR3ZT1uZXcgRXdlLEF3ZT1uZXcgeHdlO2xldCBJTT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMuX2xhdGVzdFZhbHVlPW51bGwsdGhpcy5tYXJrRm9yQ2hlY2tPblZhbHVlVXBkYXRlPSEwLHRoaXMuX3N1YnNj'@; put 'cmlwdGlvbj1udWxsLHRoaXMuX29iaj1udWxsLHRoaXMuX3N0cmF0ZWd5PW51bGwsdGhpcy5fcmVmPWF9bmdPbkRlc3Ryb3koKXt0aGlzLl9zdWJzY3JpcHRpb24mJnRoaXMuX2Rpc3Bvc2UoKSx0aGlzLl9yZWY9bnVsbH10cmFuc2Zvcm0oYSl7aWYoIXRoaXMuX29iail7aWYoYSl0cnl7dGhp'@; put 'cy5tYXJrRm9yQ2hlY2tPblZhbHVlVXBkYXRlPSExLHRoaXMuX3N1YnNjcmliZShhKX1maW5hbGx5e3RoaXMubWFya0ZvckNoZWNrT25WYWx1ZVVwZGF0ZT0hMH1yZXR1cm4gdGhpcy5fbGF0ZXN0VmFsdWV9cmV0dXJuIGEhPT10aGlzLl9vYmo/KHRoaXMuX2Rpc3Bvc2UoKSx0aGlzLnRyYW5z'@; put 'Zm9ybShhKSk6dGhpcy5fbGF0ZXN0VmFsdWV9X3N1YnNjcmliZShhKXt0aGlzLl9vYmo9YSx0aGlzLl9zdHJhdGVneT10aGlzLl9zZWxlY3RTdHJhdGVneShhKSx0aGlzLl9zdWJzY3JpcHRpb249dGhpcy5fc3RyYXRlZ3kuY3JlYXRlU3Vic2NyaXB0aW9uKGEsZD0+dGhpcy5fdXBkYXRlTGF0'@; put 'ZXN0VmFsdWUoYSxkKSl9X3NlbGVjdFN0cmF0ZWd5KGEpe2lmKHhNKGEpKXJldHVybiBUd2U7aWYodGFlKGEpKXJldHVybiBBd2U7dGhyb3cgZnVuY3Rpb24gR2YoYyxsKXtyZXR1cm4gbmV3IG5yKDIxMDAsITEpfSgpfV9kaXNwb3NlKCl7dGhpcy5fc3RyYXRlZ3kuZGlzcG9zZSh0aGlzLl9z'@; put 'dWJzY3JpcHRpb24pLHRoaXMuX2xhdGVzdFZhbHVlPW51bGwsdGhpcy5fc3Vic2NyaXB0aW9uPW51bGwsdGhpcy5fb2JqPW51bGx9X3VwZGF0ZUxhdGVzdFZhbHVlKGEsZCl7YT09PXRoaXMuX29iaiYmKHRoaXMuX2xhdGVzdFZhbHVlPWQsdGhpcy5tYXJrRm9yQ2hlY2tPblZhbHVlVXBkYXRl'@; put 'JiZ0aGlzLl9yZWY/Lm1hcmtGb3JDaGVjaygpKX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKSgkZSh4bywxNikpfX1zdGF0aWN7dGhpcy5cdTAyNzVwaXBlPWFsKHtuYW1lOiJhc3luYyIsdHlwZTpjLHB1cmU6ITEsc3RhbmRhbG9uZTohMH0pfX1y'@; put 'ZXR1cm4gY30pKCksaVo9KCgpPT57Y2xhc3MgY3t0cmFuc2Zvcm0oYSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGEsbnVsbCwyKX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKX19c3RhdGlje3RoaXMuXHUwMjc1cGlwZT1hbCh7bmFtZToianNvbiIs'@; put 'dHlwZTpjLHB1cmU6ITEsc3RhbmRhbG9uZTohMH0pfX1yZXR1cm4gY30pKCkseFI9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLmRpZmZlcnM9YSx0aGlzLmtleVZhbHVlcz1bXSx0aGlzLmNvbXBhcmVGbj1mc2V9dHJhbnNmb3JtKGEsZD1mc2Upe2lmKCFhfHwhKGEgaW5zdGFu'@; put 'Y2VvZiBNYXApJiYib2JqZWN0IiE9dHlwZW9mIGEpcmV0dXJuIG51bGw7dGhpcy5kaWZmZXI/Pz10aGlzLmRpZmZlcnMuZmluZChhKS5jcmVhdGUoKTtjb25zdCBoPXRoaXMuZGlmZmVyLmRpZmYoYSksZj1kIT09dGhpcy5jb21wYXJlRm47cmV0dXJuIGgmJih0aGlzLmtleVZhbHVlcz1bXSxo'@; put 'LmZvckVhY2hJdGVtKHY9Pnt0aGlzLmtleVZhbHVlcy5wdXNoKGZ1bmN0aW9uIEJ3ZShjLGwpe3JldHVybntrZXk6Yyx2YWx1ZTpsfX0odi5rZXksdi5jdXJyZW50VmFsdWUpKX0pKSwoaHx8ZikmJih0aGlzLmtleVZhbHVlcy5zb3J0KGQpLHRoaXMuY29tcGFyZUZuPWQpLHRoaXMua2V5VmFs'@; put 'dWVzfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpKCRlKEVNLDE2KSl9fXN0YXRpY3t0aGlzLlx1MDI3NXBpcGU9YWwoe25hbWU6ImtleXZhbHVlIix0eXBlOmMscHVyZTohMSxzdGFuZGFsb25lOiEwfSl9fXJldHVybiBjfSkoKTtmdW5jdGlvbiBm'@; put 'c2UoYyxsKXtjb25zdCBhPWMua2V5LGQ9bC5rZXk7aWYoYT09PWQpcmV0dXJuIDA7aWYodm9pZCAwPT09YSlyZXR1cm4gMTtpZih2b2lkIDA9PT1kKXJldHVybi0xO2lmKG51bGw9PT1hKXJldHVybiAxO2lmKG51bGw9PT1kKXJldHVybi0xO2lmKCJzdHJpbmciPT10eXBlb2YgYSYmInN0cmlu'@; put 'ZyI9PXR5cGVvZiBkKXJldHVybiBhPGQ/LTE6MTtpZigibnVtYmVyIj09dHlwZW9mIGEmJiJudW1iZXIiPT10eXBlb2YgZClyZXR1cm4gYS1kO2lmKCJib29sZWFuIj09dHlwZW9mIGEmJiJib29sZWFuIj09dHlwZW9mIGQpcmV0dXJuIGE8ZD8tMToxO2NvbnN0IGg9U3RyaW5nKGEpLGY9U3Ry'@; put 'aW5nKGQpO3JldHVybiBoPT1mPzA6aDxmPy0xOjF9bGV0IExhPSgoKT0+e2NsYXNzIGN7c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSl9c3RhdGlje3RoaXMuXHUwMjc1aW5qPUFyKHt9'@; put 'KX19cmV0dXJuIGN9KSgpO2Z1bmN0aW9uIGVsKGMpe3JldHVybiJicm93c2VyIj09PWN9ZnVuY3Rpb24gZ3NlKGMpe3JldHVybiJzZXJ2ZXIiPT09Y31sZXQgR3dlPSgoKT0+e2NsYXNzIGN7c3RhdGlje3RoaXMuXHUwMjc1cHJvdj1ybih7dG9rZW46Yyxwcm92aWRlZEluOiJyb290IixmYWN0'@; put 'b3J5OigpPT5lbChoaShpcykpP25ldyAkd2UoaGkobW8pLHdpbmRvdyk6bmV3IFh3ZX0pfX1yZXR1cm4gY30pKCk7Y2xhc3MgJHdle2NvbnN0cnVjdG9yKGwsYSl7dGhpcy5kb2N1bWVudD1sLHRoaXMud2luZG93PWEsdGhpcy5vZmZzZXQ9KCk9PlswLDBdfXNldE9mZnNldChsKXt0aGlzLm9m'@; put 'ZnNldD1BcnJheS5pc0FycmF5KGwpPygpPT5sOmx9Z2V0U2Nyb2xsUG9zaXRpb24oKXtyZXR1cm5bdGhpcy53aW5kb3cuc2Nyb2xsWCx0aGlzLndpbmRvdy5zY3JvbGxZXX1zY3JvbGxUb1Bvc2l0aW9uKGwpe3RoaXMud2luZG93LnNjcm9sbFRvKGxbMF0sbFsxXSl9c2Nyb2xsVG9BbmNob3Io'@; put 'bCl7Y29uc3QgYT1mdW5jdGlvbiBLd2UoYyxsKXtjb25zdCBhPWMuZ2V0RWxlbWVudEJ5SWQobCl8fGMuZ2V0RWxlbWVudHNCeU5hbWUobClbMF07aWYoYSlyZXR1cm4gYTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYy5jcmVhdGVUcmVlV2Fsa2VyJiZjLmJvZHkmJiJmdW5jdGlvbiI9PXR5cGVv'@; put 'ZiBjLmJvZHkuYXR0YWNoU2hhZG93KXtjb25zdCBkPWMuY3JlYXRlVHJlZVdhbGtlcihjLmJvZHksTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQpO2xldCBoPWQuY3VycmVudE5vZGU7Zm9yKDtoOyl7Y29uc3QgZj1oLnNoYWRvd1Jvb3Q7aWYoZil7Y29uc3Qgdj1mLmdldEVsZW1lbnRCeUlkKGwp'@; put 'fHxmLnF1ZXJ5U2VsZWN0b3IoYFtuYW1lPSIke2x9Il1gKTtpZih2KXJldHVybiB2fWg9ZC5uZXh0Tm9kZSgpfX1yZXR1cm4gbnVsbH0odGhpcy5kb2N1bWVudCxsKTthJiYodGhpcy5zY3JvbGxUb0VsZW1lbnQoYSksYS5mb2N1cygpKX1zZXRIaXN0b3J5U2Nyb2xsUmVzdG9yYXRpb24obCl7'@; put 'dGhpcy53aW5kb3cuaGlzdG9yeS5zY3JvbGxSZXN0b3JhdGlvbj1sfXNjcm9sbFRvRWxlbWVudChsKXtjb25zdCBhPWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZD1hLmxlZnQrdGhpcy53aW5kb3cucGFnZVhPZmZzZXQsaD1hLnRvcCt0aGlzLndpbmRvdy5wYWdlWU9mZnNldCxmPXRoaXMu'@; put 'b2Zmc2V0KCk7dGhpcy53aW5kb3cuc2Nyb2xsVG8oZC1mWzBdLGgtZlsxXSl9fWNsYXNzIFh3ZXtzZXRPZmZzZXQobCl7fWdldFNjcm9sbFBvc2l0aW9uKCl7cmV0dXJuWzAsMF19c2Nyb2xsVG9Qb3NpdGlvbihsKXt9c2Nyb2xsVG9BbmNob3IobCl7fXNldEhpc3RvcnlTY3JvbGxSZXN0b3Jh'@; put 'dGlvbihsKXt9fWNsYXNzIG1zZXt9Y2xhc3MgTUNlIGV4dGVuZHMga19le2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnN1cHBvcnRzRE9NRXZlbnRzPSEwfX1jbGFzcyBsWiBleHRlbmRzIE1DZXtzdGF0aWMgbWFrZUN1cnJlbnQoKXshZnVuY3Rpb24gQV9lKGMpe0dh'@; put 'ZT8/PWN9KG5ldyBsWil9b25BbmRDYW5jZWwobCxhLGQpe3JldHVybiBsLmFkZEV2ZW50TGlzdGVuZXIoYSxkKSwoKT0+e2wucmVtb3ZlRXZlbnRMaXN0ZW5lcihhLGQpfX1kaXNwYXRjaEV2ZW50KGwsYSl7bC5kaXNwYXRjaEV2ZW50KGEpfXJlbW92ZShsKXtsLnBhcmVudE5vZGUmJmwucGFy'@; put 'ZW50Tm9kZS5yZW1vdmVDaGlsZChsKX1jcmVhdGVFbGVtZW50KGwsYSl7cmV0dXJuKGE9YXx8dGhpcy5nZXREZWZhdWx0RG9jdW1lbnQoKSkuY3JlYXRlRWxlbWVudChsKX1jcmVhdGVIdG1sRG9jdW1lbnQoKXtyZXR1cm4gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3Vt'@; put 'ZW50KCJmYWtlVGl0bGUiKX1nZXREZWZhdWx0RG9jdW1lbnQoKXtyZXR1cm4gZG9jdW1lbnR9aXNFbGVtZW50Tm9kZShsKXtyZXR1cm4gbC5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFfWlzU2hhZG93Um9vdChsKXtyZXR1cm4gbCBpbnN0YW5jZW9mIERvY3VtZW50RnJhZ21lbnR9Z2V0'@; put 'R2xvYmFsRXZlbnRUYXJnZXQobCxhKXtyZXR1cm4id2luZG93Ij09PWE/d2luZG93OiJkb2N1bWVudCI9PT1hP2w6ImJvZHkiPT09YT9sLmJvZHk6bnVsbH1nZXRCYXNlSHJlZihsKXtjb25zdCBhPWZ1bmN0aW9uIHhDZSgpe3JldHVybiBPTT1PTXx8ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigi'@; put 'YmFzZSIpLE9NP09NLmdldEF0dHJpYnV0ZSgiaHJlZiIpOm51bGx9KCk7cmV0dXJuIG51bGw9PWE/bnVsbDpmdW5jdGlvbiBFQ2UoYyl7cmV0dXJuIG5ldyBVUkwoYyxkb2N1bWVudC5iYXNlVVJJKS5wYXRobmFtZX0oYSl9cmVzZXRCYXNlRWxlbWVudCgpe09NPW51bGx9Z2V0VXNlckFnZW50'@; put 'KCl7cmV0dXJuIHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50fWdldENvb2tpZShsKXtyZXR1cm4gc3NlKGRvY3VtZW50LmNvb2tpZSxsKX19bGV0IE9NPW51bGwsQUNlPSgoKT0+e2NsYXNzIGN7YnVpbGQoKXtyZXR1cm4gbmV3IFhNTEh0dHBSZXF1ZXN0fXN0YXRpY3t0aGlzLlx1MDI3NWZh'@; put 'Yz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpfX1zdGF0aWN7dGhpcy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KX19cmV0dXJuIGN9KSgpO2NvbnN0IGNaPW5ldyBTdCgiIik7bGV0IHhzZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCl7dGhp'@; put 'cy5fem9uZT1kLHRoaXMuX2V2ZW50TmFtZVRvUGx1Z2luPW5ldyBNYXAsYS5mb3JFYWNoKGg9PntoLm1hbmFnZXI9dGhpc30pLHRoaXMuX3BsdWdpbnM9YS5zbGljZSgpLnJldmVyc2UoKX1hZGRFdmVudExpc3RlbmVyKGEsZCxoKXtyZXR1cm4gdGhpcy5fZmluZFBsdWdpbkZvcihkKS5hZGRF'@; put 'dmVudExpc3RlbmVyKGEsZCxoKX1nZXRab25lKCl7cmV0dXJuIHRoaXMuX3pvbmV9X2ZpbmRQbHVnaW5Gb3IoYSl7bGV0IGQ9dGhpcy5fZXZlbnROYW1lVG9QbHVnaW4uZ2V0KGEpO2lmKGQpcmV0dXJuIGQ7aWYoZD10aGlzLl9wbHVnaW5zLmZpbmQoZj0+Zi5zdXBwb3J0cyhhKSksIWQpdGhy'@; put 'b3cgbmV3IG5yKDUxMDEsITEpO3JldHVybiB0aGlzLl9ldmVudE5hbWVUb1BsdWdpbi5zZXQoYSxkKSxkfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpKENyKGNaKSxDcihHYSkpfX1zdGF0aWN7dGhpcy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZh'@; put 'Y3Rvcnk6Yy5cdTAyNzVmYWN9KX19cmV0dXJuIGN9KSgpO2NsYXNzIEVzZXtjb25zdHJ1Y3RvcihsKXt0aGlzLl9kb2M9bH19Y29uc3QgdVo9Im5nLWFwcC1pZCI7bGV0IFRzZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGY9e30pe3RoaXMuZG9jPWEsdGhpcy5hcHBJZD1kLHRo'@; put 'aXMubm9uY2U9aCx0aGlzLnBsYXRmb3JtSWQ9Zix0aGlzLnN0eWxlUmVmPW5ldyBNYXAsdGhpcy5ob3N0Tm9kZXM9bmV3IFNldCx0aGlzLnN0eWxlTm9kZXNJbkRPTT10aGlzLmNvbGxlY3RTZXJ2ZXJSZW5kZXJlZFN0eWxlcygpLHRoaXMucGxhdGZvcm1Jc1NlcnZlcj1nc2UoZiksdGhpcy5y'@; put 'ZXNldEhvc3ROb2RlcygpfWFkZFN0eWxlcyhhKXtmb3IoY29uc3QgZCBvZiBhKTE9PT10aGlzLmNoYW5nZVVzYWdlQ291bnQoZCwxKSYmdGhpcy5vblN0eWxlQWRkZWQoZCl9cmVtb3ZlU3R5bGVzKGEpe2Zvcihjb25zdCBkIG9mIGEpdGhpcy5jaGFuZ2VVc2FnZUNvdW50KGQsLTEpPD0wJiZ0'@; put 'aGlzLm9uU3R5bGVSZW1vdmVkKGQpfW5nT25EZXN0cm95KCl7Y29uc3QgYT10aGlzLnN0eWxlTm9kZXNJbkRPTTthJiYoYS5mb3JFYWNoKGQ9PmQucmVtb3ZlKCkpLGEuY2xlYXIoKSk7Zm9yKGNvbnN0IGQgb2YgdGhpcy5nZXRBbGxTdHlsZXMoKSl0aGlzLm9uU3R5bGVSZW1vdmVkKGQpO3Ro'@; put 'aXMucmVzZXRIb3N0Tm9kZXMoKX1hZGRIb3N0KGEpe3RoaXMuaG9zdE5vZGVzLmFkZChhKTtmb3IoY29uc3QgZCBvZiB0aGlzLmdldEFsbFN0eWxlcygpKXRoaXMuYWRkU3R5bGVUb0hvc3QoYSxkKX1yZW1vdmVIb3N0KGEpe3RoaXMuaG9zdE5vZGVzLmRlbGV0ZShhKX1nZXRBbGxTdHlsZXMo'@; put 'KXtyZXR1cm4gdGhpcy5zdHlsZVJlZi5rZXlzKCl9b25TdHlsZUFkZGVkKGEpe2Zvcihjb25zdCBkIG9mIHRoaXMuaG9zdE5vZGVzKXRoaXMuYWRkU3R5bGVUb0hvc3QoZCxhKX1vblN0eWxlUmVtb3ZlZChhKXtjb25zdCBkPXRoaXMuc3R5bGVSZWY7ZC5nZXQoYSk/LmVsZW1lbnRzPy5mb3JF'@; put 'YWNoKGg9PmgucmVtb3ZlKCkpLGQuZGVsZXRlKGEpfWNvbGxlY3RTZXJ2ZXJSZW5kZXJlZFN0eWxlcygpe2NvbnN0IGE9dGhpcy5kb2MuaGVhZD8ucXVlcnlTZWxlY3RvckFsbChgc3R5bGVbJHt1Wn09IiR7dGhpcy5hcHBJZH0iXWApO2lmKGE/Lmxlbmd0aCl7Y29uc3QgZD1uZXcgTWFwO3Jl'@; put 'dHVybiBhLmZvckVhY2goaD0+e251bGwhPWgudGV4dENvbnRlbnQmJmQuc2V0KGgudGV4dENvbnRlbnQsaCl9KSxkfXJldHVybiBudWxsfWNoYW5nZVVzYWdlQ291bnQoYSxkKXtjb25zdCBoPXRoaXMuc3R5bGVSZWY7aWYoaC5oYXMoYSkpe2NvbnN0IGY9aC5nZXQoYSk7cmV0dXJuIGYudXNh'@; put 'Z2UrPWQsZi51c2FnZX1yZXR1cm4gaC5zZXQoYSx7dXNhZ2U6ZCxlbGVtZW50czpbXX0pLGR9Z2V0U3R5bGVFbGVtZW50KGEsZCl7Y29uc3QgaD10aGlzLnN0eWxlTm9kZXNJbkRPTSxmPWg/LmdldChkKTtpZihmPy5wYXJlbnROb2RlPT09YSlyZXR1cm4gaC5kZWxldGUoZCksZi5yZW1vdmVB'@; put 'dHRyaWJ1dGUodVopLGY7e2NvbnN0IHY9dGhpcy5kb2MuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtyZXR1cm4gdGhpcy5ub25jZSYmdi5zZXRBdHRyaWJ1dGUoIm5vbmNlIix0aGlzLm5vbmNlKSx2LnRleHRDb250ZW50PWQsdGhpcy5wbGF0Zm9ybUlzU2VydmVyJiZ2LnNldEF0dHJpYnV0ZSh1'@; put 'Wix0aGlzLmFwcElkKSxhLmFwcGVuZENoaWxkKHYpLHZ9fWFkZFN0eWxlVG9Ib3N0KGEsZCl7Y29uc3QgaD10aGlzLmdldFN0eWxlRWxlbWVudChhLGQpLGY9dGhpcy5zdHlsZVJlZix2PWYuZ2V0KGQpPy5lbGVtZW50czt2P3YucHVzaChoKTpmLnNldChkLHtlbGVtZW50czpbaF0sdXNhZ2U6'@; put 'MX0pfXJlc2V0SG9zdE5vZGVzKCl7Y29uc3QgYT10aGlzLmhvc3ROb2RlczthLmNsZWFyKCksYS5hZGQodGhpcy5kb2MuaGVhZCl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoQ3IobW8pLENyKFp2KSxDcihENSw4KSxDcihpcykpfX1zdGF0aWN7'@; put 'dGhpcy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KX19cmV0dXJuIGN9KSgpO2NvbnN0IGRaPXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4aHRtbDoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIseGxpbms6Imh0dHA6Ly93d3cudzMu'@; put 'b3JnLzE5OTkveGxpbmsiLHhtbDoiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8iLG1hdGg6Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aE1MLyJ9LGhaPS8lQ09NUCUvZyxSQ2U9bmV3IFN0KCIiLHtw'@; put 'cm92aWRlZEluOiJyb290IixmYWN0b3J5OigpPT4hMH0pO2Z1bmN0aW9uIGtzZShjLGwpe3JldHVybiBsLm1hcChhPT5hLnJlcGxhY2UoaFosYykpfWxldCBmWj0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYsdixNLEksRz1udWxsKXt0aGlzLmV2ZW50TWFuYWdlcj1hLHRoaXMu'@; put 'c2hhcmVkU3R5bGVzSG9zdD1kLHRoaXMuYXBwSWQ9aCx0aGlzLnJlbW92ZVN0eWxlc09uQ29tcERlc3Ryb3k9Zix0aGlzLmRvYz12LHRoaXMucGxhdGZvcm1JZD1NLHRoaXMubmdab25lPUksdGhpcy5ub25jZT1HLHRoaXMucmVuZGVyZXJCeUNvbXBJZD1uZXcgTWFwLHRoaXMucGxhdGZvcm1J'@; put 'c1NlcnZlcj1nc2UoTSksdGhpcy5kZWZhdWx0UmVuZGVyZXI9bmV3IHBaKGEsdixJLHRoaXMucGxhdGZvcm1Jc1NlcnZlcil9Y3JlYXRlUmVuZGVyZXIoYSxkKXtpZighYXx8IWQpcmV0dXJuIHRoaXMuZGVmYXVsdFJlbmRlcmVyO3RoaXMucGxhdGZvcm1Jc1NlcnZlciYmZC5lbmNhcHN1bGF0'@; put 'aW9uPT09cW8uU2hhZG93RG9tJiYoZD17Li4uZCxlbmNhcHN1bGF0aW9uOnFvLkVtdWxhdGVkfSk7Y29uc3QgaD10aGlzLmdldE9yQ3JlYXRlUmVuZGVyZXIoYSxkKTtyZXR1cm4gaCBpbnN0YW5jZW9mIElzZT9oLmFwcGx5VG9Ib3N0KGEpOmggaW5zdGFuY2VvZiBnWiYmaC5hcHBseVN0eWxl'@; put 'cygpLGh9Z2V0T3JDcmVhdGVSZW5kZXJlcihhLGQpe2NvbnN0IGg9dGhpcy5yZW5kZXJlckJ5Q29tcElkO2xldCBmPWguZ2V0KGQuaWQpO2lmKCFmKXtjb25zdCB2PXRoaXMuZG9jLE09dGhpcy5uZ1pvbmUsST10aGlzLmV2ZW50TWFuYWdlcixHPXRoaXMuc2hhcmVkU3R5bGVzSG9zdCxyZT10'@; put 'aGlzLnJlbW92ZVN0eWxlc09uQ29tcERlc3Ryb3ksdWU9dGhpcy5wbGF0Zm9ybUlzU2VydmVyO3N3aXRjaChkLmVuY2Fwc3VsYXRpb24pe2Nhc2UgcW8uRW11bGF0ZWQ6Zj1uZXcgSXNlKEksRyxkLHRoaXMuYXBwSWQscmUsdixNLHVlKTticmVhaztjYXNlIHFvLlNoYWRvd0RvbTpyZXR1cm4g'@; put 'bmV3IEZDZShJLEcsYSxkLHYsTSx0aGlzLm5vbmNlLHVlKTtkZWZhdWx0OmY9bmV3IGdaKEksRyxkLHJlLHYsTSx1ZSl9aC5zZXQoZC5pZCxmKX1yZXR1cm4gZn1uZ09uRGVzdHJveSgpe3RoaXMucmVuZGVyZXJCeUNvbXBJZC5jbGVhcigpfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlv'@; put 'bihkKXtyZXR1cm4gbmV3KGR8fGMpKENyKHhzZSksQ3IoVHNlKSxDcihadiksQ3IoUkNlKSxDcihtbyksQ3IoaXMpLENyKEdhKSxDcihENSkpfX1zdGF0aWN7dGhpcy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KX19cmV0dXJuIGN9KSgpO2NsYXNzIHBae2Nv'@; put 'bnN0cnVjdG9yKGwsYSxkLGgpe3RoaXMuZXZlbnRNYW5hZ2VyPWwsdGhpcy5kb2M9YSx0aGlzLm5nWm9uZT1kLHRoaXMucGxhdGZvcm1Jc1NlcnZlcj1oLHRoaXMuZGF0YT1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMudGhyb3dPblN5bnRoZXRpY1Byb3BzPSEwLHRoaXMuZGVzdHJveU5vZGU9'@; put 'bnVsbH1kZXN0cm95KCl7fWNyZWF0ZUVsZW1lbnQobCxhKXtyZXR1cm4gYT90aGlzLmRvYy5jcmVhdGVFbGVtZW50TlMoZFpbYV18fGEsbCk6dGhpcy5kb2MuY3JlYXRlRWxlbWVudChsKX1jcmVhdGVDb21tZW50KGwpe3JldHVybiB0aGlzLmRvYy5jcmVhdGVDb21tZW50KGwpfWNyZWF0ZVRl'@; put 'eHQobCl7cmV0dXJuIHRoaXMuZG9jLmNyZWF0ZVRleHROb2RlKGwpfWFwcGVuZENoaWxkKGwsYSl7KERzZShsKT9sLmNvbnRlbnQ6bCkuYXBwZW5kQ2hpbGQoYSl9aW5zZXJ0QmVmb3JlKGwsYSxkKXtsJiYoRHNlKGwpP2wuY29udGVudDpsKS5pbnNlcnRCZWZvcmUoYSxkKX1yZW1vdmVDaGls'@; put 'ZChsLGEpe2wmJmwucmVtb3ZlQ2hpbGQoYSl9c2VsZWN0Um9vdEVsZW1lbnQobCxhKXtsZXQgZD0ic3RyaW5nIj09dHlwZW9mIGw/dGhpcy5kb2MucXVlcnlTZWxlY3RvcihsKTpsO2lmKCFkKXRocm93IG5ldyBucigtNTEwNCwhMSk7cmV0dXJuIGF8fChkLnRleHRDb250ZW50PSIiKSxkfXBh'@; put 'cmVudE5vZGUobCl7cmV0dXJuIGwucGFyZW50Tm9kZX1uZXh0U2libGluZyhsKXtyZXR1cm4gbC5uZXh0U2libGluZ31zZXRBdHRyaWJ1dGUobCxhLGQsaCl7aWYoaCl7YT1oKyI6IithO2NvbnN0IGY9ZFpbaF07Zj9sLnNldEF0dHJpYnV0ZU5TKGYsYSxkKTpsLnNldEF0dHJpYnV0ZShhLGQp'@; put 'fWVsc2UgbC5zZXRBdHRyaWJ1dGUoYSxkKX1yZW1vdmVBdHRyaWJ1dGUobCxhLGQpe2lmKGQpe2NvbnN0IGg9ZFpbZF07aD9sLnJlbW92ZUF0dHJpYnV0ZU5TKGgsYSk6bC5yZW1vdmVBdHRyaWJ1dGUoYCR7ZH06JHthfWApfWVsc2UgbC5yZW1vdmVBdHRyaWJ1dGUoYSl9YWRkQ2xhc3MobCxh'@; put 'KXtsLmNsYXNzTGlzdC5hZGQoYSl9cmVtb3ZlQ2xhc3MobCxhKXtsLmNsYXNzTGlzdC5yZW1vdmUoYSl9c2V0U3R5bGUobCxhLGQsaCl7aCYoWDMuRGFzaENhc2V8WDMuSW1wb3J0YW50KT9sLnN0eWxlLnNldFByb3BlcnR5KGEsZCxoJlgzLkltcG9ydGFudD8iaW1wb3J0YW50IjoiIik6bC5z'@; put 'dHlsZVthXT1kfXJlbW92ZVN0eWxlKGwsYSxkKXtkJlgzLkRhc2hDYXNlP2wuc3R5bGUucmVtb3ZlUHJvcGVydHkoYSk6bC5zdHlsZVthXT0iIn1zZXRQcm9wZXJ0eShsLGEsZCl7bnVsbCE9bCYmKGxbYV09ZCl9c2V0VmFsdWUobCxhKXtsLm5vZGVWYWx1ZT1hfWxpc3RlbihsLGEsZCl7aWYo'@; put 'InN0cmluZyI9PXR5cGVvZiBsJiYhKGw9SjUoKS5nZXRHbG9iYWxFdmVudFRhcmdldCh0aGlzLmRvYyxsKSkpdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBldmVudCB0YXJnZXQgJHtsfSBmb3IgZXZlbnQgJHthfWApO3JldHVybiB0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3Rl'@; put 'bmVyKGwsYSx0aGlzLmRlY29yYXRlUHJldmVudERlZmF1bHQoZCkpfWRlY29yYXRlUHJldmVudERlZmF1bHQobCl7cmV0dXJuIGE9PntpZigiX19uZ1Vud3JhcF9fIj09PWEpcmV0dXJuIGw7ITE9PT0odGhpcy5wbGF0Zm9ybUlzU2VydmVyP3RoaXMubmdab25lLnJ1bkd1YXJkZWQoKCk9Pmwo'@; put 'YSkpOmwoYSkpJiZhLnByZXZlbnREZWZhdWx0KCl9fX1mdW5jdGlvbiBEc2UoYyl7cmV0dXJuIlRFTVBMQVRFIj09PWMudGFnTmFtZSYmdm9pZCAwIT09Yy5jb250ZW50fWNsYXNzIEZDZSBleHRlbmRzIHBae2NvbnN0cnVjdG9yKGwsYSxkLGgsZix2LE0sSSl7c3VwZXIobCxmLHYsSSksdGhp'@; put 'cy5zaGFyZWRTdHlsZXNIb3N0PWEsdGhpcy5ob3N0RWw9ZCx0aGlzLnNoYWRvd1Jvb3Q9ZC5hdHRhY2hTaGFkb3coe21vZGU6Im9wZW4ifSksdGhpcy5zaGFyZWRTdHlsZXNIb3N0LmFkZEhvc3QodGhpcy5zaGFkb3dSb290KTtjb25zdCBHPWtzZShoLmlkLGguc3R5bGVzKTtmb3IoY29uc3Qg'@; put 'cmUgb2YgRyl7Y29uc3QgdWU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtNJiZ1ZS5zZXRBdHRyaWJ1dGUoIm5vbmNlIixNKSx1ZS50ZXh0Q29udGVudD1yZSx0aGlzLnNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQodWUpfX1ub2RlT3JTaGFkb3dSb290KGwpe3JldHVybiBsPT09dGhp'@; put 'cy5ob3N0RWw/dGhpcy5zaGFkb3dSb290Omx9YXBwZW5kQ2hpbGQobCxhKXtyZXR1cm4gc3VwZXIuYXBwZW5kQ2hpbGQodGhpcy5ub2RlT3JTaGFkb3dSb290KGwpLGEpfWluc2VydEJlZm9yZShsLGEsZCl7cmV0dXJuIHN1cGVyLmluc2VydEJlZm9yZSh0aGlzLm5vZGVPclNoYWRvd1Jvb3Qo'@; put 'bCksYSxkKX1yZW1vdmVDaGlsZChsLGEpe3JldHVybiBzdXBlci5yZW1vdmVDaGlsZCh0aGlzLm5vZGVPclNoYWRvd1Jvb3QobCksYSl9cGFyZW50Tm9kZShsKXtyZXR1cm4gdGhpcy5ub2RlT3JTaGFkb3dSb290KHN1cGVyLnBhcmVudE5vZGUodGhpcy5ub2RlT3JTaGFkb3dSb290KGwpKSl9'@; put 'ZGVzdHJveSgpe3RoaXMuc2hhcmVkU3R5bGVzSG9zdC5yZW1vdmVIb3N0KHRoaXMuc2hhZG93Um9vdCl9fWNsYXNzIGdaIGV4dGVuZHMgcFp7Y29uc3RydWN0b3IobCxhLGQsaCxmLHYsTSxJKXtzdXBlcihsLGYsdixNKSx0aGlzLnNoYXJlZFN0eWxlc0hvc3Q9YSx0aGlzLnJlbW92ZVN0eWxl'@; put 'c09uQ29tcERlc3Ryb3k9aCx0aGlzLnN0eWxlcz1JP2tzZShJLGQuc3R5bGVzKTpkLnN0eWxlc31hcHBseVN0eWxlcygpe3RoaXMuc2hhcmVkU3R5bGVzSG9zdC5hZGRTdHlsZXModGhpcy5zdHlsZXMpfWRlc3Ryb3koKXt0aGlzLnJlbW92ZVN0eWxlc09uQ29tcERlc3Ryb3kmJnRoaXMuc2hh'@; put 'cmVkU3R5bGVzSG9zdC5yZW1vdmVTdHlsZXModGhpcy5zdHlsZXMpfX1jbGFzcyBJc2UgZXh0ZW5kcyBnWntjb25zdHJ1Y3RvcihsLGEsZCxoLGYsdixNLEkpe2NvbnN0IEc9aCsiLSIrZC5pZDtzdXBlcihsLGEsZCxmLHYsTSxJLEcpLHRoaXMuY29udGVudEF0dHI9ZnVuY3Rpb24gTENlKGMp'@; put 'e3JldHVybiJfbmdjb250ZW50LSVDT01QJSIucmVwbGFjZShoWixjKX0oRyksdGhpcy5ob3N0QXR0cj1mdW5jdGlvbiBPQ2UoYyl7cmV0dXJuIl9uZ2hvc3QtJUNPTVAlIi5yZXBsYWNlKGhaLGMpfShHKX1hcHBseVRvSG9zdChsKXt0aGlzLmFwcGx5U3R5bGVzKCksdGhpcy5zZXRBdHRyaWJ1'@; put 'dGUobCx0aGlzLmhvc3RBdHRyLCIiKX1jcmVhdGVFbGVtZW50KGwsYSl7Y29uc3QgZD1zdXBlci5jcmVhdGVFbGVtZW50KGwsYSk7cmV0dXJuIHN1cGVyLnNldEF0dHJpYnV0ZShkLHRoaXMuY29udGVudEF0dHIsIiIpLGR9fWxldCBIQ2U9KCgpPT57Y2xhc3MgYyBleHRlbmRzIEVzZXtjb25z'@; put 'dHJ1Y3RvcihhKXtzdXBlcihhKX1zdXBwb3J0cyhhKXtyZXR1cm4hMH1hZGRFdmVudExpc3RlbmVyKGEsZCxoKXtyZXR1cm4gYS5hZGRFdmVudExpc3RlbmVyKGQsaCwhMSksKCk9PnRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihhLGQsaCl9cmVtb3ZlRXZlbnRMaXN0ZW5lcihhLGQsaCl7cmV0'@; put 'dXJuIGEucmVtb3ZlRXZlbnRMaXN0ZW5lcihkLGgpfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpKENyKG1vKSl9fXN0YXRpY3t0aGlzLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pfX1yZXR1cm4gY30pKCk7Y29u'@; put 'c3QgUnNlPVsiYWx0IiwiY29udHJvbCIsIm1ldGEiLCJzaGlmdCJdLE5DZT17IlxiIjoiQmFja3NwYWNlIiwiXHQiOiJUYWIiLCJceDdmIjoiRGVsZXRlIiwiXHgxYiI6IkVzY2FwZSIsRGVsOiJEZWxldGUiLEVzYzoiRXNjYXBlIixMZWZ0OiJBcnJvd0xlZnQiLFJpZ2h0OiJBcnJvd1JpZ2h0'@; put 'IixVcDoiQXJyb3dVcCIsRG93bjoiQXJyb3dEb3duIixNZW51OiJDb250ZXh0TWVudSIsU2Nyb2xsOiJTY3JvbGxMb2NrIixXaW46Ik9TIn0sVkNlPXthbHQ6Yz0+Yy5hbHRLZXksY29udHJvbDpjPT5jLmN0cmxLZXksbWV0YTpjPT5jLm1ldGFLZXksc2hpZnQ6Yz0+Yy5zaGlmdEtleX07bGV0'@; put 'IEJDZT0oKCk9PntjbGFzcyBjIGV4dGVuZHMgRXNle2NvbnN0cnVjdG9yKGEpe3N1cGVyKGEpfXN1cHBvcnRzKGEpe3JldHVybiBudWxsIT1jLnBhcnNlRXZlbnROYW1lKGEpfWFkZEV2ZW50TGlzdGVuZXIoYSxkLGgpe2NvbnN0IGY9Yy5wYXJzZUV2ZW50TmFtZShkKSx2PWMuZXZlbnRDYWxs'@; put 'YmFjayhmLmZ1bGxLZXksaCx0aGlzLm1hbmFnZXIuZ2V0Wm9uZSgpKTtyZXR1cm4gdGhpcy5tYW5hZ2VyLmdldFpvbmUoKS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+SjUoKS5vbkFuZENhbmNlbChhLGYuZG9tRXZlbnROYW1lLHYpKX1zdGF0aWMgcGFyc2VFdmVudE5hbWUoYSl7Y29uc3QgZD1h'@; put 'LnRvTG93ZXJDYXNlKCkuc3BsaXQoIi4iKSxoPWQuc2hpZnQoKTtpZigwPT09ZC5sZW5ndGh8fCJrZXlkb3duIiE9PWgmJiJrZXl1cCIhPT1oKXJldHVybiBudWxsO2NvbnN0IGY9Yy5fbm9ybWFsaXplS2V5KGQucG9wKCkpO2xldCB2PSIiLE09ZC5pbmRleE9mKCJjb2RlIik7aWYoTT4tMSYm'@; put 'KGQuc3BsaWNlKE0sMSksdj0iY29kZS4iKSxSc2UuZm9yRWFjaChHPT57Y29uc3QgcmU9ZC5pbmRleE9mKEcpO3JlPi0xJiYoZC5zcGxpY2UocmUsMSksdis9RysiLiIpfSksdis9ZiwwIT1kLmxlbmd0aHx8MD09PWYubGVuZ3RoKXJldHVybiBudWxsO2NvbnN0IEk9e307cmV0dXJuIEkuZG9t'@; put 'RXZlbnROYW1lPWgsSS5mdWxsS2V5PXYsSX1zdGF0aWMgbWF0Y2hFdmVudEZ1bGxLZXlDb2RlKGEsZCl7bGV0IGg9TkNlW2Eua2V5XXx8YS5rZXksZj0iIjtyZXR1cm4gZC5pbmRleE9mKCJjb2RlLiIpPi0xJiYoaD1hLmNvZGUsZj0iY29kZS4iKSwhKG51bGw9PWh8fCFoKSYmKGg9aC50b0xv'@; put 'd2VyQ2FzZSgpLCIgIj09PWg/aD0ic3BhY2UiOiIuIj09PWgmJihoPSJkb3QiKSxSc2UuZm9yRWFjaCh2PT57diE9PWgmJigwLFZDZVt2XSkoYSkmJihmKz12KyIuIil9KSxmKz1oLGY9PT1kKX1zdGF0aWMgZXZlbnRDYWxsYmFjayhhLGQsaCl7cmV0dXJuIGY9PntjLm1hdGNoRXZlbnRGdWxs'@; put 'S2V5Q29kZShmLGEpJiZoLnJ1bkd1YXJkZWQoKCk9PmQoZikpfX1zdGF0aWMgX25vcm1hbGl6ZUtleShhKXtyZXR1cm4iZXNjIj09PWE/ImVzY2FwZSI6YX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKShDcihtbykpfX1zdGF0aWN7dGhpcy5cdTAy'@; put 'NzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KX19cmV0dXJuIGN9KSgpO2NvbnN0IE9zZT1be3Byb3ZpZGU6aXMsdXNlVmFsdWU6ImJyb3dzZXIifSx7cHJvdmlkZTpOayx1c2VWYWx1ZTpmdW5jdGlvbiBqQ2UoKXtsWi5tYWtlQ3VycmVudCgpfSxtdWx0aTohMH0se3By'@; put 'b3ZpZGU6bW8sdXNlRmFjdG9yeTpmdW5jdGlvbiBVQ2UoKXtyZXR1cm4gZnVuY3Rpb24gdUIoYyl7UkM9Y30oZG9jdW1lbnQpLGRvY3VtZW50fSxkZXBzOltdfV0sWkNlPWRhZShZYmUsImJyb3dzZXIiLE9zZSksV0NlPW5ldyBTdCgiIiksUHNlPVt7cHJvdmlkZTppUix1c2VDbGFzczpjbGFz'@; put 'cyBUQ2V7YWRkVG9XaW5kb3cobCl7TnQuZ2V0QW5ndWxhclRlc3RhYmlsaXR5PShkLGg9ITApPT57Y29uc3QgZj1sLmZpbmRUZXN0YWJpbGl0eUluVHJlZShkLGgpO2lmKG51bGw9PWYpdGhyb3cgbmV3IG5yKDUxMDMsITEpO3JldHVybiBmfSxOdC5nZXRBbGxBbmd1bGFyVGVzdGFiaWxpdGll'@; put 'cz0oKT0+bC5nZXRBbGxUZXN0YWJpbGl0aWVzKCksTnQuZ2V0QWxsQW5ndWxhclJvb3RFbGVtZW50cz0oKT0+bC5nZXRBbGxSb290RWxlbWVudHMoKSxOdC5mcmFtZXdvcmtTdGFiaWxpemVyc3x8KE50LmZyYW1ld29ya1N0YWJpbGl6ZXJzPVtdKSxOdC5mcmFtZXdvcmtTdGFiaWxpemVycy5w'@; put 'dXNoKGQ9Pntjb25zdCBoPU50LmdldEFsbEFuZ3VsYXJUZXN0YWJpbGl0aWVzKCk7bGV0IGY9aC5sZW5ndGg7Y29uc3Qgdj1mdW5jdGlvbigpe2YtLSwwPT1mJiZkKCl9O2guZm9yRWFjaChNPT57TS53aGVuU3RhYmxlKHYpfSl9KX1maW5kVGVzdGFiaWxpdHlJblRyZWUobCxhLGQpe3JldHVy'@; put 'biBudWxsPT1hP251bGw6bC5nZXRUZXN0YWJpbGl0eShhKT8/KGQ/SjUoKS5pc1NoYWRvd1Jvb3QoYSk/dGhpcy5maW5kVGVzdGFiaWxpdHlJblRyZWUobCxhLmhvc3QsITApOnRoaXMuZmluZFRlc3RhYmlsaXR5SW5UcmVlKGwsYS5wYXJlbnRFbGVtZW50LCEwKTpudWxsKX19LGRlcHM6W119'@; put 'LHtwcm92aWRlOmVhZSx1c2VDbGFzczpBVSxkZXBzOltHYSxrVSxpUl19LHtwcm92aWRlOkFVLHVzZUNsYXNzOkFVLGRlcHM6W0dhLGtVLGlSXX1dLEZzZT1be3Byb3ZpZGU6RjYsdXNlVmFsdWU6InJvb3QifSx7cHJvdmlkZTp2Mix1c2VGYWN0b3J5OmZ1bmN0aW9uIHpDZSgpe3JldHVybiBu'@; put 'ZXcgdjJ9LGRlcHM6W119LHtwcm92aWRlOmNaLHVzZUNsYXNzOkhDZSxtdWx0aTohMCxkZXBzOlttbyxHYSxpc119LHtwcm92aWRlOmNaLHVzZUNsYXNzOkJDZSxtdWx0aTohMCxkZXBzOlttb119LGZaLFRzZSx4c2Use3Byb3ZpZGU6eDgsdXNlRXhpc3Rpbmc6Zlp9LHtwcm92aWRlOm1zZSx1'@; put 'c2VDbGFzczpBQ2UsZGVwczpbXX0sW11dO2xldCBIc2U9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt9c3RhdGljIHdpdGhTZXJ2ZXJUcmFuc2l0aW9uKGEpe3JldHVybntuZ01vZHVsZTpjLHByb3ZpZGVyczpbe3Byb3ZpZGU6WnYsdXNlVmFsdWU6YS5hcHBJZH1dfX1zdGF0aWN7dGhp'@; put 'cy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKShDcihXQ2UsMTIpKX19c3RhdGlje3RoaXMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9KX1zdGF0aWN7dGhpcy5cdTAyNzVpbmo9QXIoe3Byb3ZpZGVyczpbLi4uRnNlLC4uLlBzZV0saW1wb3J0czpbTGEsR2JlXX0pfX1yZXR1'@; put 'cm4gY30pKCksWUNlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5fZG9jPWF9Z2V0VGl0bGUoKXtyZXR1cm4gdGhpcy5fZG9jLnRpdGxlfXNldFRpdGxlKGEpe3RoaXMuX2RvYy50aXRsZT1hfHwiIn1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5l'@; put 'dyhkfHxjKShDcihtbykpfX1zdGF0aWN7dGhpcy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KX19cmV0dXJuIGN9KSgpO2IoMzc0ODIpLGIoODA2ODUpO2NvbnN0IG1aPXtmaWx0ZXI6e2NvbHM6W10sdmFsczpbXSxncm91cExv'@; put 'Z2ljOiIiLHdoZXJlQ2xhdXNlOiIiLGxpYmRzOiIiLGNsYXVzZXM6W10scXVlcnk6W119fSxKbj17cm9vdFBhcmFtOiIiLGRjTGliOiIiLHhsbWFwczpbXSxlZGl0b3I6e3N0YXJ0dXBTZXQ6ITEsdHJlZU5vZGVMaWJyYXJpZXM6W10sbGlic0FuZFRhYmxlczpbXSxsaWJyYXJpZXM6W10sbGli'@; put 'cmFyeToiIix0YWJsZToiIixmaWx0ZXI6e2NvbHM6W10sdmFsczpbXSxncm91cExvZ2ljOiIiLHdoZXJlQ2xhdXNlOiIiLGxpYmRzOiIiLGNsYXVzZXM6W10scXVlcnk6W119fSx2aWV3ZXI6e3N0YXJ0dXBTZXQ6ITEsdGFibGVzU2V0OiExLGxpYnJhcmllczpbXSx0YWJsZXM6bnVsbCxsaWJy'@; put 'YXJ5OiIiLHRhYmxlOiIiLGxpYmluZm86W10sbGlicmFyaWVzU2VhcmNoOiIiLGZpbHRlcjp7Y29sczpbXSx2YWxzOltdLGdyb3VwTG9naWM6IiIsd2hlcmVDbGF1c2U6IiIsbGliZHM6IiIsY2xhdXNlczpbXSxxdWVyeTpbXX0sY3VycmVudFNlbGVjdGlvbjoiIn0sdmlld2JveGVzOnt9LGxp'@; put 'bmVhZ2U6e2xpYnJhcnlMaXN0OltdLHRhYmxlc0xpc3Q6W10sY29sdW1uc0xpc3Q6W10sbGlicmFyaWVzU2VhcmNoOiIiLGxpYjoiIix0YWJsZToiIixjb2x1bW46IiIsY3VycmVudExpbmVhZ2VQYXRoTGliVGFibGU6IiIsY3VycmVudExpbmVhZ2VQYXRoQ29sdW1uOiIifSxtZXRhZGF0YTp7'@; put 'bWV0YURhdGFMaXN0OnZvaWQgMCxtZXRhRGF0YVNlYXJjaDoiIixtZXRhT2JqZWN0TGlzdDpbXSxtZXRhT2JqZWN0U2VhcmNoOiIiLG1ldGFSZXBvc2l0b3JpZXM6dm9pZCAwLHNlbGVjdGVkUmVwb3NpdG9yeToiIn0sdml5YUFwaTp7Y29sbGVjdGlvbnNMaXN0OnZvaWQgMCxjb2xsZWN0aW9u'@; put 'c1NlYXJjaDoiIixzZWxlY3RlZFJlcG9zaXRvcnk6IiJ9LHVzZXJuYXY6e3VzZXJMaXN0OnZvaWQgMCx1c2VyU2VhcmNoOiIiLGdyb3VwTGlzdDp2b2lkIDAsZ3JvdXBTZWFyY2g6IiIscm9sZUxpc3Q6dm9pZCAwLHJvbGVTZWFyY2g6IiJ9LG9wZXJhdG9yczp7bnVtT3BlcmF0b3JzOlsiPSIs'@; put 'IjwiLCI+IiwiPD0iLCI+PSIsIkJFVFdFRU4iLCJJTiIsIk5PVCBJTiIsIk5FIl0sY2hhck9wZXJhdG9yczpbIj0iLCI8IiwiPiIsIjw9IiwiPj0iLCJDT05UQUlOUyIsIklOIiwiTk9UIElOIiwiTkUiXX0saGFuZHNvbnRhYmxlOntkYXJrVGFibGVIZWFkZXJDbGFzczoiZGFya1RIIn0sdXNl'@; put 'ckRyb3Bkb3duQ29uZmlnOntjbG9zZU9uRGVidWdDbGljazohMX19O3ZhciBQcz1iKDk3NTg2KSxqc2U9Yi5uKFBzKTtmdW5jdGlvbiB6c2UoYyxsKXtzd2l0Y2goYyl7Y2FzZSAwOnJldHVybiBmdW5jdGlvbigpe3JldHVybiBsLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07Y2FzZSAxOnJldHVy'@; put 'biBmdW5jdGlvbihhKXtyZXR1cm4gbC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgMjpyZXR1cm4gZnVuY3Rpb24oYSxkKXtyZXR1cm4gbC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgMzpyZXR1cm4gZnVuY3Rpb24oYSxkLGgpe3JldHVybiBsLmFwcGx5KHRoaXMsYXJndW1lbnRz'@; put 'KX07Y2FzZSA0OnJldHVybiBmdW5jdGlvbihhLGQsaCxmKXtyZXR1cm4gbC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgNTpyZXR1cm4gZnVuY3Rpb24oYSxkLGgsZix2KXtyZXR1cm4gbC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgNjpyZXR1cm4gZnVuY3Rpb24oYSxkLGgsZix2'@; put 'LE0pe3JldHVybiBsLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07Y2FzZSA3OnJldHVybiBmdW5jdGlvbihhLGQsaCxmLHYsTSxJKXtyZXR1cm4gbC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgODpyZXR1cm4gZnVuY3Rpb24oYSxkLGgsZix2LE0sSSxHKXtyZXR1cm4gbC5hcHBseSh0aGlz'@; put 'LGFyZ3VtZW50cyl9O2Nhc2UgOTpyZXR1cm4gZnVuY3Rpb24oYSxkLGgsZix2LE0sSSxHLHJlKXtyZXR1cm4gbC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgMTA6cmV0dXJuIGZ1bmN0aW9uKGEsZCxoLGYsdixNLEksRyxyZSx1ZSl7cmV0dXJuIGwuYXBwbHkodGhpcyxhcmd1bWVudHMp'@; put 'fTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiRmlyc3QgYXJndW1lbnQgdG8gX2FyaXR5IG11c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlciBubyBncmVhdGVyIHRoYW4gdGVuIil9fWZ1bmN0aW9uIFE1KGMpe3JldHVybiBudWxsIT1jJiYib2JqZWN0Ij09dHlwZW9mIGMmJiEwPT09Y1si'@; put 'QEBmdW5jdGlvbmFsL3BsYWNlaG9sZGVyIl19ZnVuY3Rpb24gUTQoYyl7cmV0dXJuIGZ1bmN0aW9uIGwoYSl7cmV0dXJuIDA9PT1hcmd1bWVudHMubGVuZ3RofHxRNShhKT9sOmMuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBXeShjKXtyZXR1cm4gZnVuY3Rpb24gbChhLGQpe3N3'@; put 'aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIGw7Y2FzZSAxOnJldHVybiBRNShhKT9sOlE0KGZ1bmN0aW9uKGgpe3JldHVybiBjKGEsaCl9KTtkZWZhdWx0OnJldHVybiBRNShhKSYmUTUoZCk/bDpRNShhKT9RNChmdW5jdGlvbihoKXtyZXR1cm4gYyhoLGQpfSk6UTUoZCk/'@; put 'UTQoZnVuY3Rpb24oaCl7cmV0dXJuIGMoYSxoKX0pOmMoYSxkKX19fWZ1bmN0aW9uIFVzZShjLGwsYSl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBkPVtdLGg9MCxmPWMsdj0wLE09ITE7djxsLmxlbmd0aHx8aDxhcmd1bWVudHMubGVuZ3RoOyl7dmFyIEk7djxsLmxlbmd0aCYmKCFRNShs'@; put 'W3ZdKXx8aD49YXJndW1lbnRzLmxlbmd0aCk/ST1sW3ZdOihJPWFyZ3VtZW50c1toXSxoKz0xKSxkW3ZdPUksUTUoSSk/TT0hMDpmLT0xLHYrPTF9cmV0dXJuIU0mJmY8PTA/YS5hcHBseSh0aGlzLGQpOnpzZShNYXRoLm1heCgwLGYpLFVzZShjLGQsYSkpfX1jb25zdCBac2U9V3koZnVuY3Rp'@; put 'b24obCxhKXtyZXR1cm4gMT09PWw/UTQoYSk6enNlKGwsVXNlKGwsW10sYSkpfSksV3NlPVd5KGZ1bmN0aW9uKGwsYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBsfHxudWxsIT1hJiYoYS5jb25zdHJ1Y3Rvcj09PWx8fCJPYmplY3QiPT09bC5uYW1lJiYib2JqZWN0Ij09dHlwZW9mIGEpfSk7ZnVu'@; put 'Y3Rpb24ga1IoYyxsKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGwsYyl9dmFyIFlzZT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO2NvbnN0IEdzZT1mdW5jdGlvbigpe3JldHVybiJbb2JqZWN0IEFyZ3VtZW50c10iPT09WXNlLmNhbGwoYXJndW1lbnRz'@; put 'KT9mdW5jdGlvbihsKXtyZXR1cm4iW29iamVjdCBBcmd1bWVudHNdIj09PVlzZS5jYWxsKGwpfTpmdW5jdGlvbihsKXtyZXR1cm4ga1IoImNhbGxlZSIsbCl9fSgpLFFDZT1BcnJheS5pc0FycmF5fHxmdW5jdGlvbihsKXtyZXR1cm4gbnVsbCE9bCYmbC5sZW5ndGg+PTAmJiJbb2JqZWN0IEFy'@; put 'cmF5XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobCl9O2Z1bmN0aW9uICRzZShjKXtyZXR1cm4iW29iamVjdCBTdHJpbmddIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChjKX12YXIgblNlPVE0KGZ1bmN0aW9uKGwpe3JldHVybiBudWxsIT1sJiYiZnVuY3Rp'@; put 'b24iPT10eXBlb2YgbFsiZmFudGFzeS1sYW5kL2VtcHR5Il0/bFsiZmFudGFzeS1sYW5kL2VtcHR5Il0oKTpudWxsIT1sJiZudWxsIT1sLmNvbnN0cnVjdG9yJiYiZnVuY3Rpb24iPT10eXBlb2YgbC5jb25zdHJ1Y3RvclsiZmFudGFzeS1sYW5kL2VtcHR5Il0/bC5jb25zdHJ1Y3RvclsiZmFu'@; put 'dGFzeS1sYW5kL2VtcHR5Il0oKTpudWxsIT1sJiYiZnVuY3Rpb24iPT10eXBlb2YgbC5lbXB0eT9sLmVtcHR5KCk6bnVsbCE9bCYmbnVsbCE9bC5jb25zdHJ1Y3RvciYmImZ1bmN0aW9uIj09dHlwZW9mIGwuY29uc3RydWN0b3IuZW1wdHk/bC5jb25zdHJ1Y3Rvci5lbXB0eSgpOlFDZShsKT9b'@; put 'XTokc2UobCk/IiI6ZnVuY3Rpb24gZVNlKGMpe3JldHVybiJbb2JqZWN0IE9iamVjdF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGMpfShsKT97fTpHc2UobCk/ZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSgpOmZ1bmN0aW9uIHRTZShjKXt2YXIgbD1PYmplY3QucHJv'@; put 'dG90eXBlLnRvU3RyaW5nLmNhbGwoYyk7cmV0dXJuIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIj09PWx8fCJbb2JqZWN0IEludDhBcnJheV0iPT09bHx8IltvYmplY3QgVWludDhBcnJheV0iPT09bHx8IltvYmplY3QgSW50MTZBcnJheV0iPT09bHx8IltvYmplY3QgVWludDE2QXJyYXld'@; put 'Ij09PWx8fCJbb2JqZWN0IEludDMyQXJyYXldIj09PWx8fCJbb2JqZWN0IFVpbnQzMkFycmF5XSI9PT1sfHwiW29iamVjdCBGbG9hdDMyQXJyYXldIj09PWx8fCJbb2JqZWN0IEZsb2F0NjRBcnJheV0iPT09bHx8IltvYmplY3QgQmlnSW50NjRBcnJheV0iPT09bHx8IltvYmplY3QgQmlnVWlu'@; put 'dDY0QXJyYXldIj09PWx9KGwpP2wuY29uc3RydWN0b3IuZnJvbSgiIik6dm9pZCAwfSk7Y29uc3QgclNlPW5TZTtmdW5jdGlvbiBLc2UoYyl7Zm9yKHZhciBhLGw9W107IShhPWMubmV4dCgpKS5kb25lOylsLnB1c2goYS52YWx1ZSk7cmV0dXJuIGx9ZnVuY3Rpb24gWHNlKGMsbCxhKXtmb3Io'@; put 'dmFyIGQ9MCxoPWEubGVuZ3RoO2Q8aDspe2lmKGMobCxhW2RdKSlyZXR1cm4hMDtkKz0xfXJldHVybiExfWNvbnN0IHZaPSJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuaXM/T2JqZWN0LmlzOmZ1bmN0aW9uIGFTZShjLGwpe3JldHVybiBjPT09bD8wIT09Y3x8MS9jPT0xL2w6YyE9YyYmbCE9'@; put 'bH07dmFyIHNTZT0he3RvU3RyaW5nOm51bGx9LnByb3BlcnR5SXNFbnVtZXJhYmxlKCJ0b1N0cmluZyIpLHFzZT1bImNvbnN0cnVjdG9yIiwidmFsdWVPZiIsImlzUHJvdG90eXBlT2YiLCJ0b1N0cmluZyIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiaGFzT3duUHJvcGVydHkiLCJ0b0xvY2Fs'@; put 'ZVN0cmluZyJdLEpzZT1mdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHMucHJvcGVydHlJc0VudW1lcmFibGUoImxlbmd0aCIpfSgpLG9TZT1mdW5jdGlvbihsLGEpe2Zvcih2YXIgZD0wO2Q8bC5sZW5ndGg7KXtpZihsW2RdPT09YSlyZXR1cm4hMDtkKz0xfXJldHVybiExfTtjb25zdCBRc2U9'@; put 'UTQoImZ1bmN0aW9uIiE9dHlwZW9mIE9iamVjdC5rZXlzfHxKc2U/ZnVuY3Rpb24obCl7aWYoT2JqZWN0KGwpIT09bClyZXR1cm5bXTt2YXIgYSxkLGg9W10sZj1Kc2UmJkdzZShsKTtmb3IoYSBpbiBsKWtSKGEsbCkmJighZnx8Imxlbmd0aCIhPT1hKSYmKGhbaC5sZW5ndGhdPWEpO2lmKHNT'@; put 'ZSlmb3IoZD1xc2UubGVuZ3RoLTE7ZD49MDspa1IoYT1xc2VbZF0sbCkmJiFvU2UoaCxhKSYmKGhbaC5sZW5ndGhdPWEpLGQtPTE7cmV0dXJuIGh9OmZ1bmN0aW9uKGwpe3JldHVybiBPYmplY3QobCkhPT1sP1tdOk9iamVjdC5rZXlzKGwpfSksZW9lPVE0KGZ1bmN0aW9uKGwpe3JldHVybiBu'@; put 'dWxsPT09bD8iTnVsbCI6dm9pZCAwPT09bD8iVW5kZWZpbmVkIjpPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobCkuc2xpY2UoOCwtMSl9KTtmdW5jdGlvbiB0b2UoYyxsLGEsZCl7dmFyIGg9S3NlKGMpO2Z1bmN0aW9uIHYoTSxJKXtyZXR1cm4geVooTSxJLGEuc2xpY2UoKSxkLnNs'@; put 'aWNlKCkpfXJldHVybiFYc2UoZnVuY3Rpb24oTSxJKXtyZXR1cm4hWHNlKHYsSSxNKX0sS3NlKGwpLGgpfWZ1bmN0aW9uIHlaKGMsbCxhLGQpe2lmKHZaKGMsbCkpcmV0dXJuITA7dmFyIGg9ZW9lKGMpO2lmKGghPT1lb2UobCkpcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGNbImZh'@; put 'bnRhc3ktbGFuZC9lcXVhbHMiXXx8ImZ1bmN0aW9uIj09dHlwZW9mIGxbImZhbnRhc3ktbGFuZC9lcXVhbHMiXSlyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgY1siZmFudGFzeS1sYW5kL2VxdWFscyJdJiZjWyJmYW50YXN5LWxhbmQvZXF1YWxzIl0obCkmJiJmdW5jdGlvbiI9PXR5cGVvZiBs'@; put 'WyJmYW50YXN5LWxhbmQvZXF1YWxzIl0mJmxbImZhbnRhc3ktbGFuZC9lcXVhbHMiXShjKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYy5lcXVhbHN8fCJmdW5jdGlvbiI9PXR5cGVvZiBsLmVxdWFscylyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgYy5lcXVhbHMmJmMuZXF1YWxzKGwpJiYiZnVu'@; put 'Y3Rpb24iPT10eXBlb2YgbC5lcXVhbHMmJmwuZXF1YWxzKGMpO3N3aXRjaChoKXtjYXNlIkFyZ3VtZW50cyI6Y2FzZSJBcnJheSI6Y2FzZSJPYmplY3QiOmlmKCJmdW5jdGlvbiI9PXR5cGVvZiBjLmNvbnN0cnVjdG9yJiYiUHJvbWlzZSI9PT1mdW5jdGlvbiBpU2UoYyl7dmFyIGw9U3RyaW5n'@; put 'KGMpLm1hdGNoKC9eZnVuY3Rpb24gKFx3KikvKTtyZXR1cm4gbnVsbD09bD8iIjpsWzFdfShjLmNvbnN0cnVjdG9yKSlyZXR1cm4gYz09PWw7YnJlYWs7Y2FzZSJCb29sZWFuIjpjYXNlIk51bWJlciI6Y2FzZSJTdHJpbmciOmlmKHR5cGVvZiBjIT10eXBlb2YgbHx8IXZaKGMudmFsdWVPZigp'@; put 'LGwudmFsdWVPZigpKSlyZXR1cm4hMTticmVhaztjYXNlIkRhdGUiOmlmKCF2WihjLnZhbHVlT2YoKSxsLnZhbHVlT2YoKSkpcmV0dXJuITE7YnJlYWs7Y2FzZSJFcnJvciI6cmV0dXJuIGMubmFtZT09PWwubmFtZSYmYy5tZXNzYWdlPT09bC5tZXNzYWdlO2Nhc2UiUmVnRXhwIjppZihjLnNv'@; put 'dXJjZSE9PWwuc291cmNlfHxjLmdsb2JhbCE9PWwuZ2xvYmFsfHxjLmlnbm9yZUNhc2UhPT1sLmlnbm9yZUNhc2V8fGMubXVsdGlsaW5lIT09bC5tdWx0aWxpbmV8fGMuc3RpY2t5IT09bC5zdGlja3l8fGMudW5pY29kZSE9PWwudW5pY29kZSlyZXR1cm4hMX1mb3IodmFyIGY9YS5sZW5ndGgt'@; put 'MTtmPj0wOyl7aWYoYVtmXT09PWMpcmV0dXJuIGRbZl09PT1sO2YtPTF9c3dpdGNoKGgpe2Nhc2UiTWFwIjpyZXR1cm4gYy5zaXplPT09bC5zaXplJiZ0b2UoYy5lbnRyaWVzKCksbC5lbnRyaWVzKCksYS5jb25jYXQoW2NdKSxkLmNvbmNhdChbbF0pKTtjYXNlIlNldCI6cmV0dXJuIGMuc2l6'@; put 'ZT09PWwuc2l6ZSYmdG9lKGMudmFsdWVzKCksbC52YWx1ZXMoKSxhLmNvbmNhdChbY10pLGQuY29uY2F0KFtsXSkpO2Nhc2UiQXJndW1lbnRzIjpjYXNlIkFycmF5IjpjYXNlIk9iamVjdCI6Y2FzZSJCb29sZWFuIjpjYXNlIk51bWJlciI6Y2FzZSJTdHJpbmciOmNhc2UiRGF0ZSI6Y2FzZSJF'@; put 'cnJvciI6Y2FzZSJSZWdFeHAiOmNhc2UiSW50OEFycmF5IjpjYXNlIlVpbnQ4QXJyYXkiOmNhc2UiVWludDhDbGFtcGVkQXJyYXkiOmNhc2UiSW50MTZBcnJheSI6Y2FzZSJVaW50MTZBcnJheSI6Y2FzZSJJbnQzMkFycmF5IjpjYXNlIlVpbnQzMkFycmF5IjpjYXNlIkZsb2F0MzJBcnJheSI6'@; put 'Y2FzZSJGbG9hdDY0QXJyYXkiOmNhc2UiQXJyYXlCdWZmZXIiOmJyZWFrO2RlZmF1bHQ6cmV0dXJuITF9dmFyIHY9UXNlKGMpO2lmKHYubGVuZ3RoIT09UXNlKGwpLmxlbmd0aClyZXR1cm4hMTt2YXIgTT1hLmNvbmNhdChbY10pLEk9ZC5jb25jYXQoW2xdKTtmb3IoZj12Lmxlbmd0aC0xO2Y+'@; put 'PTA7KXt2YXIgRz12W2ZdO2lmKCFrUihHLGwpfHwheVoobFtHXSxjW0ddLE0sSSkpcmV0dXJuITE7Zi09MX1yZXR1cm4hMH1jb25zdCBkU2U9V3koZnVuY3Rpb24obCxhKXtyZXR1cm4geVoobCxhLFtdLFtdKX0pLG5vZT1RNChmdW5jdGlvbihsKXtyZXR1cm4gbnVsbCE9bCYmZFNlKGwsclNl'@; put 'KGwpKX0pO2Z1bmN0aW9uIEZNKGMpe3JldHVybiBudWxsPT1jfWZ1bmN0aW9uIEhNKGMpe3JldHVybiBGTShjKXx8bm9lKGMpfWZ1bmN0aW9uIGJaKGMpe3JldHVybiBXc2UoU3RyaW5nLGMpfWZ1bmN0aW9uIGFvZShjLGwpe3JldHVybiBjIT09bH1mdW5jdGlvbiBjb2UoYz13aW5kb3cpe3Jl'@; put 'dHVybiFGTShjKX1jb25zdCB3U2U9TnVtYmVyLmlzSW50ZWdlcnx8ZnVuY3Rpb24obCl7cmV0dXJuKDB8bCk9PT1sfSxTU2U9V3koZnVuY3Rpb24obCxhKXt2YXIgZD1sPDA/YS5sZW5ndGgrbDpsO3JldHVybiAkc2UoYSk/YS5jaGFyQXQoZCk6YVtkXX0pLHhTZT1XeShmdW5jdGlvbihsLGEp'@; put 'e3JldHVybiBsLm1hcChmdW5jdGlvbihkKXtmb3IodmFyIHYsaD1hLGY9MDtmPGQubGVuZ3RoOyl7aWYobnVsbD09aClyZXR1cm47aD13U2Uodj1kW2ZdKT9TU2UodixoKTpoW3ZdLGYrPTF9cmV0dXJuIGh9KX0pLFRTZT1XeShmdW5jdGlvbihsLGEpe3JldHVybiB4U2UoW2xdLGEpWzBdfSks'@; put 'a1NlPVpzZSgyLChjLGwpPT52b2lkIDAhPT1UU2UoYyxsKSksdW9lPWtTZSh7IkBAZnVuY3Rpb25hbC9wbGFjZWhvbGRlciI6ITB9LHdpbmRvdyk7bGV0IElSLGRvZSxfWix3WjtmdW5jdGlvbiBob2UoYz0hMCl7aWYoIWN8fCFJUil7Y29uc3QgbD1kb2N1bWVudCYmZG9jdW1lbnQucXVlcnlT'@; put 'ZWxlY3RvcigiW25nLXZlcnNpb25dIik7SVI9bD8iIitsLmdldEF0dHJpYnV0ZSgibmctdmVyc2lvbiIpOnZvaWQgMH1yZXR1cm4gSVJ9ZnVuY3Rpb24gSVNlKGM9ITApe3JldHVybiBjJiZJUnx8KGRvZT13aW5kb3c/LmFuZ3VsYXI/LnZlcnNpb24/LmZ1bGwpLGRvZX1mdW5jdGlvbiBmb2Uo'@; put 'Yz0hMCl7cmV0dXJuIGMmJl9afHwoX1o9d2luZG93Py5DRFM/Ll9yZWFjdD8udmVyc2lvbj93aW5kb3cuQ0RTLl9yZWFjdC52ZXJzaW9uOmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIltkYXRhLXJlYWN0cm9vdF0sIFtkYXRhLXJlYWN0aWRdIik/InVua25vd24gdmVyc2lvbiI6dm9pZCAwKSxf'@; put 'Wn1mdW5jdGlvbiBwb2UoYz0hMCl7aWYoIWN8fCF3Wil7Y29uc3QgbD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIqIik7bGV0IGE7Zm9yKGxldCBkPTA7ZDxsLmxlbmd0aDtkKyspaWYobFtkXS5fX3Z1ZV9fKXthPWxbZF07YnJlYWt9d1o9YT8idW5rbm93biB2ZXJzaW9uIjp2b2lkIDB9'@; put 'cmV0dXJuIHdafWZ1bmN0aW9uIFc4KGMpe3JldHVybiBjLnJlcGxhY2UoL1tBLVpdL2csbD0+Ii0iK2wudG9Mb3dlckNhc2UoKSl9ZnVuY3Rpb24gdm9lKGMpe3JldHVybiBjLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Muc2xpY2UoMSl9Y29uc3QgSFNlPW5ldyBjbGFzc3tjb25zdHJ1Y3Rv'@; put 'cigpe2lmKHRoaXMuc3VwcG9ydHM9e2pzOiEwfSwhZG9jdW1lbnQuYm9keS5oYXNBdHRyaWJ1dGUoImNkcy1zdXBwb3J0cyIpfHwibm8tanMiPT09ZG9jdW1lbnQuYm9keS5nZXRBdHRyaWJ1dGUoImNkcy1zdXBwb3J0cyIpKXtjb25zdCBjPVc4KE9iamVjdC5rZXlzKHRoaXMuc3VwcG9ydHMp'@; put 'LnJlZHVjZSgobCxhKT0+YCR7bH0gJHt0aGlzLnN1cHBvcnRzW2FdP2E6Im5vLSIrYX1gLCIiKSkudHJpbSgpO2RvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKCJjZHMtc3VwcG9ydHMiLGMpfX19O2NsYXNzIE5Ne3N0YXRpYyBsb2coLi4ubCl7TVooKSYmU1ooKSYmY29uc29sZS5sb2coLi4u'@; put 'bCl9c3RhdGljIHdhcm4oLi4ubCl7TVooKSYmU1ooKSYmY29uc29sZS53YXJuKC4uLmwpfXN0YXRpYyBlcnJvciguLi5sKXtNWigpJiZTWigpJiZjb25zb2xlLmVycm9yKC4uLmwpfX1mdW5jdGlvbiBTWigpe3JldHVybiF1b2UoWyJqYXNtaW5lIl0pfWZ1bmN0aW9uIE1aKCl7cmV0dXJuIXdp'@; put 'bmRvdy5DRFMuZW52aXJvbm1lbnQucHJvZHVjdGlvbn1mdW5jdGlvbiBfb2UoKXtjb2UoKSYmKHdpbmRvdy5DRFM9d2luZG93LkNEU3x8e192ZXJzaW9uOltdLF9yZWFjdDp7dmVyc2lvbjp2b2lkIDB9LF9zdXBwb3J0czpIU2Uuc3VwcG9ydHMsX2lzU3RhdGVQcm94aWVkOiExLF9zdGF0ZTp7'@; put 'Zm9jdXNUcmFwSXRlbXM6W10sbGF5ZXJFbGVtZW50czpbXSxpMThuUmVnaXN0cnk6e30sZWxlbWVudFJlZ2lzdHJ5Ont9LGljb25SZWdpc3RyeTp7fSxtb3Rpb25SZWdpc3RyeTp7fX0sZW52aXJvbm1lbnQ6e3Byb2R1Y3Rpb246ITF9LGdldERldGFpbHM6d29lLGxvZ0RldGFpbHM6TlNlfSxm'@; put 'dW5jdGlvbigpe2NvbnN0IGM9IjYuMTYuMCI7d2luZG93LkNEUy5fdmVyc2lvbi5pbmRleE9mKGMpPDAmJih3aW5kb3cuQ0RTLl92ZXJzaW9uLnB1c2goYyksZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYm9keSIpPy5zZXRBdHRyaWJ1dGUoImNkcy12ZXJzaW9uIix3aW5kb3cuQ0RTLl92ZXJz'@; put 'aW9uLmpvaW4oIiAiKSkpLHdpbmRvdy5DRFMuX3ZlcnNpb24ubGVuZ3RoPjEmJk5NLndhcm4oIlJ1bm5pbmcgbW9yZSB0aGFuIG9uZSB2ZXJzaW9uIG9mIENsYXJpdHkgY2FuIGNhdXNlIHVuZXhwZWN0ZWQgaXNzdWVzLiBQbGVhc2UgZW5zdXJlIG9ubHkgb25lIHZlcnNpb24gaXMgbG9hZGVk'@; put 'LiIpfSgpLHdpbmRvdy5DRFMuX2lzU3RhdGVQcm94aWVkfHwod2luZG93LkNEUy5faXNTdGF0ZVByb3hpZWQ9ITAsd2luZG93LkNEUy5fc3RhdGU9bmV3IFByb3h5KHdpbmRvdy5DRFMuX3N0YXRlLHtzZXQ6KGMsbCxhKT0+e2NvbnN0IGQ9e2tleTpsLHByZXY6d2luZG93LkNEUy5fc3RhdGVb'@; put 'bF0sY3VycmVudDphfTtyZXR1cm4gY1tsXT1hLGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJDRFNfU1RBVEVfVVBEQVRFIix7ZGV0YWlsOmR9KSksITB9fSkpKX1mdW5jdGlvbiB3b2UoKXtyZXR1cm57dmVyc2lvbnM6d2luZG93LkNEUy5fdmVyc2lvbixlbnZpcm9u'@; put 'bWVudDp3aW5kb3cuQ0RTLmVudmlyb25tZW50LHVzZXJBZ2VudDpuYXZpZ2F0b3IudXNlckFnZW50LHN1cHBvcnRzOndpbmRvdy5DRFMuX3N1cHBvcnRzLGFuZ3VsYXJWZXJzaW9uOmhvZSghMSksYW5ndWxhckpTVmVyc2lvbjpJU2UoITEpLHJlYWN0VmVyc2lvbjpmb2UoITEpLHZ1ZVZlcnNp'@; put 'b246cG9lKCExKSxzdGF0ZTp7Li4ud2luZG93LkNEUy5fc3RhdGUsaWNvblJlZ2lzdHJ5Ok9iamVjdC5rZXlzKHdpbmRvdy5DRFMuX3N0YXRlLmljb25SZWdpc3RyeSksbW90aW9uUmVnaXN0cnk6T2JqZWN0LmtleXMod2luZG93LkNEUy5fc3RhdGUubW90aW9uUmVnaXN0cnkpLGZvY3VzVHJh'@; put 'cFJlZ2lzdHJ5Ok9iamVjdC5rZXlzKHdpbmRvdy5DRFMuX3N0YXRlLmZvY3VzVHJhcEl0ZW1zLm1hcChjPT5jLmZvY3VzVHJhcElkKSl9fX1mdW5jdGlvbiBOU2UoKXtOTS5sb2coSlNPTi5zdHJpbmdpZnkod29lKCksbnVsbCwyKSl9Y29uc3QgVlNlPVpzZSgzLChjLGwsYSk9PnshZnVuY3Rp'@; put 'b24gRFNlKGMsbCl7cmV0dXJuIGx8fChsPXdpbmRvdyYmd2luZG93LmN1c3RvbUVsZW1lbnRzKSwhbHx8ISFsLmdldChjKX0oYyl8fGZ1bmN0aW9uIFJTZSgpe3JldHVybiB3aW5kb3c/LmxvY2F0aW9uPy5ocmVmPy5pbmNsdWRlcygibG9jYWxob3N0OjYwMDYiKX0oKT8oYS5kZWZpbmUoYyxs'@; put 'KSxfb2UoKSx3aW5kb3cmJiFPYmplY3Qua2V5cyh3aW5kb3cuQ0RTLl9zdGF0ZS5lbGVtZW50UmVnaXN0cnkpLnNvbWUoZD0+ZD09PWMpJiYod2luZG93LkNEUy5fc3RhdGUuZWxlbWVudFJlZ2lzdHJ5PXsuLi53aW5kb3cuQ0RTLl9zdGF0ZS5lbGVtZW50UmVnaXN0cnksW2NdOnt9fSkpOk5N'@; put 'Lndhcm4oYysiIGhhcyBhbHJlYWR5IGJlZW4gcmVnaXN0ZXJlZCIpfSk7ZnVuY3Rpb24gJGYoYyxsLGEsZCl7dmFyIHYsaD1hcmd1bWVudHMubGVuZ3RoLGY9aDwzP2w6bnVsbD09PWQ/ZD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsYSk6ZDtpZigib2JqZWN0Ij09dHlwZW9m'@; put 'IFJlZmxlY3QmJiJmdW5jdGlvbiI9PXR5cGVvZiBSZWZsZWN0LmRlY29yYXRlKWY9UmVmbGVjdC5kZWNvcmF0ZShjLGwsYSxkKTtlbHNlIGZvcih2YXIgTT1jLmxlbmd0aC0xO00+PTA7TS0tKSh2PWNbTV0pJiYoZj0oaDwzP3YoZik6aD4zP3YobCxhLGYpOnYobCxhKSl8fGYpO3JldHVybiBo'@; put 'PjMmJmYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLGEsZiksZn1mdW5jdGlvbiBlbShjKXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIGVtPyh0aGlzLnY9Yyx0aGlzKTpuZXcgZW0oYyl9ZnVuY3Rpb24geG9lKGMpe2lmKCFTeW1ib2wuYXN5bmNJdGVyYXRvcil0aHJvdyBuZXcgVHlwZUVycm9y'@; put 'KCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTt2YXIgYSxsPWNbU3ltYm9sLmFzeW5jSXRlcmF0b3JdO3JldHVybiBsP2wuY2FsbChjKTooYz1mdW5jdGlvbiBBWihjKXt2YXIgbD0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3IsYT1sJiZj'@; put 'W2xdLGQ9MDtpZihhKXJldHVybiBhLmNhbGwoYyk7aWYoYyYmIm51bWJlciI9PXR5cGVvZiBjLmxlbmd0aClyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybiBjJiZkPj1jLmxlbmd0aCYmKGM9dm9pZCAwKSx7dmFsdWU6YyYmY1tkKytdLGRvbmU6IWN9fX07dGhyb3cgbmV3IFR5cGVFcnJv'@; put 'cihsPyJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLiI6IlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKX0oYyksYT17fSxkKCJuZXh0IiksZCgidGhyb3ciKSxkKCJyZXR1cm4iKSxhW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxhKTtmdW5jdGlv'@; put 'biBkKGYpe2FbZl09Y1tmXSYmZnVuY3Rpb24odil7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKE0sSSl7IWZ1bmN0aW9uIGgoZix2LE0sSSl7UHJvbWlzZS5yZXNvbHZlKEkpLnRoZW4oZnVuY3Rpb24oRyl7Zih7dmFsdWU6Ryxkb25lOk19KX0sdil9KE0sSSwodj1jW2ZdKHYpKS5kb25l'@; put 'LHYudmFsdWUpfSl9fX0iZnVuY3Rpb24iPT10eXBlb2YgU3VwcHJlc3NlZEVycm9yJiZTdXBwcmVzc2VkRXJyb3I7bGV0IEVvZT0hMTtmdW5jdGlvbiBoTWUoYyl7aWYoKGM9TWF0aC50cnVuYyhjKXx8MCk8MCYmKGMrPXRoaXMubGVuZ3RoKSwhKGM8MHx8Yz49dGhpcy5sZW5ndGgpKXJldHVy'@; put 'biB0aGlzW2NdfWlmKCFFb2Upe0VvZT0hMDtjb25zdCBjPVJlZmxlY3QuZ2V0UHJvdG90eXBlT2YoSW50OEFycmF5KTtmb3IoY29uc3QgbCBvZltBcnJheSxTdHJpbmcsY10pT2JqZWN0LmRlZmluZVByb3BlcnR5KGwucHJvdG90eXBlLCJhdCIse3ZhbHVlOmhNZSx3cml0YWJsZTohMCxlbnVt'@; put 'ZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pfWxldCBUb2U9ITEsQW9lPSExO2Z1bmN0aW9uIGtvZShjLGwsYSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsYSx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGFzQXR0cmlidXRlKGwp'@; put 'P3RoaXMuZ2V0QXR0cmlidXRlKGwpOm51bGx9LHNldDpmdW5jdGlvbihkKXtudWxsIT09ZD90aGlzLnNldEF0dHJpYnV0ZShsLGQpOnRoaXMucmVtb3ZlQXR0cmlidXRlKGwpfX0pfVRvZXx8RWxlbWVudC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoInJvbGUiKXx8KGtvZShFbGVtZW50LnBy'@; put 'b3RvdHlwZSwicm9sZSIsInJvbGUiKSxUb2U9ITApLEFvZXx8RWxlbWVudC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoImFyaWFMYWJlbCIpfHwoQW9lPSEwLFsiQWN0aXZlRGVzY2VuZGFudCIsIkF0b21pYyIsIkF1dG9Db21wbGV0ZSIsIkJ1c3kiLCJDaGVja2VkIiwiQ29sQ291bnQiLCJD'@; put 'b2xJbmRleCIsIkNvbFNwYW4iLCJDb250cm9scyIsIkN1cnJlbnQiLCJEZXNjcmliZWRCeSIsIkRldGFpbHMiLCJEaXNhYmxlZCIsIkVycm9yTWVzc2FnZSIsIkV4cGFuZGVkIiwiRmxvd1RvIiwiSGFzUG9wdXAiLCJIaWRkZW4iLCJJbnZhbGlkIiwiS2V5U2hvcnRjdXRzIiwiTGFiZWwiLCJM'@; put 'YWJlbGxlZEJ5IiwiTGV2ZWwiLCJMaXZlIiwiTW9kYWwiLCJNdWx0aUxpbmUiLCJNdWx0aVNlbGVjdGFibGUiLCJPcmllbnRhdGlvbiIsIk93bnMiLCJQbGFjZWhvbGRlciIsIlBvc0luU2V0IiwiUHJlc3NlZCIsIlJlYWRPbmx5IiwiUmVsZXZhbnQiLCJSZXF1aXJlZCIsIlJvbGVEZXNjcmlw'@; put 'dGlvbiIsIlJvd0NvdW50IiwiUm93SW5kZXgiLCJSb3dTcGFuIiwiU2VsZWN0ZWQiLCJTZXRTaXplIiwiU29ydCIsIlZhbHVlTWF4IiwiVmFsdWVNaW4iLCJWYWx1ZU5vdyIsIlZhbHVlVGV4dCJdLmZvckVhY2goYz0+a29lKEVsZW1lbnQucHJvdG90eXBlLCJhcmlhLSIrYy50b0xvd2VyQ2Fz'@; put 'ZSgpLCJhcmlhIitjKSkpO2NvbnN0IFJSPXdpbmRvdyxEWj1SUi5TaGFkb3dSb290JiYodm9pZCAwPT09UlIuU2hhZHlDU1N8fFJSLlNoYWR5Q1NTLm5hdGl2ZVNoYWRvdykmJiJhZG9wdGVkU3R5bGVTaGVldHMiaW4gRG9jdW1lbnQucHJvdG90eXBlJiYicmVwbGFjZSJpbiBDU1NTdHlsZVNo'@; put 'ZWV0LnByb3RvdHlwZSxJWj1TeW1ib2woKSxEb2U9bmV3IFdlYWtNYXA7Y2xhc3MgSW9le2NvbnN0cnVjdG9yKGwsYSxkKXtpZih0aGlzLl8kY3NzUmVzdWx0JD0hMCxkIT09SVopdGhyb3cgRXJyb3IoIkNTU1Jlc3VsdCBpcyBub3QgY29uc3RydWN0YWJsZS4gVXNlIGB1bnNhZmVDU1NgIG9y'@; put 'IGBjc3NgIGluc3RlYWQuIik7dGhpcy5jc3NUZXh0PWwsdGhpcy50PWF9Z2V0IHN0eWxlU2hlZXQoKXtsZXQgbD10aGlzLm87Y29uc3QgYT10aGlzLnQ7aWYoRFomJnZvaWQgMD09PWwpe2NvbnN0IGQ9dm9pZCAwIT09YSYmMT09PWEubGVuZ3RoO2QmJihsPURvZS5nZXQoYSkpLHZvaWQgMD09'@; put 'PWwmJigodGhpcy5vPWw9bmV3IENTU1N0eWxlU2hlZXQpLnJlcGxhY2VTeW5jKHRoaXMuY3NzVGV4dCksZCYmRG9lLnNldChhLGwpKX1yZXR1cm4gbH10b1N0cmluZygpe3JldHVybiB0aGlzLmNzc1RleHR9fWNvbnN0IFJvZT0oYywuLi5sKT0+e2NvbnN0IGE9MT09PWMubGVuZ3RoP2NbMF06'@; put 'bC5yZWR1Y2UoKGQsaCxmKT0+ZCsodj0+e2lmKCEwPT09di5fJGNzc1Jlc3VsdCQpcmV0dXJuIHYuY3NzVGV4dDtpZigibnVtYmVyIj09dHlwZW9mIHYpcmV0dXJuIHY7dGhyb3cgRXJyb3IoIlZhbHVlIHBhc3NlZCB0byAnY3NzJyBmdW5jdGlvbiBtdXN0IGJlIGEgJ2NzcycgZnVuY3Rpb24g'@; put 'cmVzdWx0OiAiK3YrIi4gVXNlICd1bnNhZmVDU1MnIHRvIHBhc3Mgbm9uLWxpdGVyYWwgdmFsdWVzLCBidXQgdGFrZSBjYXJlIHRvIGVuc3VyZSBwYWdlIHNlY3VyaXR5LiIpfSkoaCkrY1tmKzFdLGNbMF0pO3JldHVybiBuZXcgSW9lKGEsYyxJWil9LExvZT1EWj9jPT5jOmM9PmMgaW5zdGFu'@; put 'Y2VvZiBDU1NTdHlsZVNoZWV0PyhsPT57bGV0IGE9IiI7Zm9yKGNvbnN0IGQgb2YgbC5jc3NSdWxlcylhKz1kLmNzc1RleHQ7cmV0dXJuKGM9Pm5ldyBJb2UoInN0cmluZyI9PXR5cGVvZiBjP2M6YysiIix2b2lkIDAsSVopKShhKX0pKGMpOmM7dmFyIFJaO2NvbnN0IExSPXdpbmRvdyxPb2U9'@; put 'TFIudHJ1c3RlZFR5cGVzLGdNZT1Pb2U/T29lLmVtcHR5U2NyaXB0OiIiLFBvZT1MUi5yZWFjdGl2ZUVsZW1lbnRQb2x5ZmlsbFN1cHBvcnQsTFo9e3RvQXR0cmlidXRlKGMsbCl7c3dpdGNoKGwpe2Nhc2UgQm9vbGVhbjpjPWM/Z01lOm51bGw7YnJlYWs7Y2FzZSBPYmplY3Q6Y2FzZSBBcnJh'@; put 'eTpjPW51bGw9PWM/YzpKU09OLnN0cmluZ2lmeShjKX1yZXR1cm4gY30sZnJvbUF0dHJpYnV0ZShjLGwpe2xldCBhPWM7c3dpdGNoKGwpe2Nhc2UgQm9vbGVhbjphPW51bGwhPT1jO2JyZWFrO2Nhc2UgTnVtYmVyOmE9bnVsbD09PWM/bnVsbDpOdW1iZXIoYyk7YnJlYWs7Y2FzZSBPYmplY3Q6'@; put 'Y2FzZSBBcnJheTp0cnl7YT1KU09OLnBhcnNlKGMpfWNhdGNoe2E9bnVsbH19cmV0dXJuIGF9fSxGb2U9KGMsbCk9PmwhPT1jJiYobD09bHx8Yz09YyksT1o9e2F0dHJpYnV0ZTohMCx0eXBlOlN0cmluZyxjb252ZXJ0ZXI6TFoscmVmbGVjdDohMSxoYXNDaGFuZ2VkOkZvZX0sUFo9ImZpbmFs'@; put 'aXplZCI7Y2xhc3MgWXkgZXh0ZW5kcyBIVE1MRWxlbWVudHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5fJEVpPW5ldyBNYXAsdGhpcy5pc1VwZGF0ZVBlbmRpbmc9ITEsdGhpcy5oYXNVcGRhdGVkPSExLHRoaXMuXyRFbD1udWxsLHRoaXMuXyRFdSgpfXN0YXRpYyBhZGRJbml0aWFsaXpl'@; put 'cihsKXt2YXIgYTt0aGlzLmZpbmFsaXplKCksKG51bGwhPT0oYT10aGlzLmgpJiZ2b2lkIDAhPT1hP2E6dGhpcy5oPVtdKS5wdXNoKGwpfXN0YXRpYyBnZXQgb2JzZXJ2ZWRBdHRyaWJ1dGVzKCl7dGhpcy5maW5hbGl6ZSgpO2NvbnN0IGw9W107cmV0dXJuIHRoaXMuZWxlbWVudFByb3BlcnRp'@; put 'ZXMuZm9yRWFjaCgoYSxkKT0+e2NvbnN0IGg9dGhpcy5fJEVwKGQsYSk7dm9pZCAwIT09aCYmKHRoaXMuXyRFdi5zZXQoaCxkKSxsLnB1c2goaCkpfSksbH1zdGF0aWMgY3JlYXRlUHJvcGVydHkobCxhPU9aKXtpZihhLnN0YXRlJiYoYS5hdHRyaWJ1dGU9ITEpLHRoaXMuZmluYWxpemUoKSx0'@; put 'aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLnNldChsLGEpLCFhLm5vQWNjZXNzb3ImJiF0aGlzLnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eShsKSl7Y29uc3QgZD0ic3ltYm9sIj09dHlwZW9mIGw/U3ltYm9sKCk6Il9fIitsLGg9dGhpcy5nZXRQcm9wZXJ0eURlc2NyaXB0b3IobCxkLGEpO3ZvaWQg'@; put 'MCE9PWgmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLnByb3RvdHlwZSxsLGgpfX1zdGF0aWMgZ2V0UHJvcGVydHlEZXNjcmlwdG9yKGwsYSxkKXtyZXR1cm57Z2V0KCl7cmV0dXJuIHRoaXNbYV19LHNldChoKXtjb25zdCBmPXRoaXNbbF07dGhpc1thXT1oLHRoaXMucmVxdWVzdFVwZGF0'@; put 'ZShsLGYsZCl9LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwfX1zdGF0aWMgZ2V0UHJvcGVydHlPcHRpb25zKGwpe3JldHVybiB0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLmdldChsKXx8T1p9c3RhdGljIGZpbmFsaXplKCl7aWYodGhpcy5oYXNPd25Qcm9wZXJ0eShQWikpcmV0dXJuITE7'@; put 'dGhpc1tQWl09ITA7Y29uc3QgbD1PYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcyk7aWYobC5maW5hbGl6ZSgpLHZvaWQgMCE9PWwuaCYmKHRoaXMuaD1bLi4ubC5oXSksdGhpcy5lbGVtZW50UHJvcGVydGllcz1uZXcgTWFwKGwuZWxlbWVudFByb3BlcnRpZXMpLHRoaXMuXyRFdj1uZXcgTWFw'@; put 'LHRoaXMuaGFzT3duUHJvcGVydHkoInByb3BlcnRpZXMiKSl7Y29uc3QgYT10aGlzLnByb3BlcnRpZXMsZD1bLi4uT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoYSksLi4uT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhhKV07Zm9yKGNvbnN0IGggb2YgZCl0aGlzLmNyZWF0ZVByb3Bl'@; put 'cnR5KGgsYVtoXSl9cmV0dXJuIHRoaXMuZWxlbWVudFN0eWxlcz10aGlzLmZpbmFsaXplU3R5bGVzKHRoaXMuc3R5bGVzKSwhMH1zdGF0aWMgZmluYWxpemVTdHlsZXMobCl7Y29uc3QgYT1bXTtpZihBcnJheS5pc0FycmF5KGwpKXtjb25zdCBkPW5ldyBTZXQobC5mbGF0KDEvMCkucmV2ZXJz'@; put 'ZSgpKTtmb3IoY29uc3QgaCBvZiBkKWEudW5zaGlmdChMb2UoaCkpfWVsc2Ugdm9pZCAwIT09bCYmYS5wdXNoKExvZShsKSk7cmV0dXJuIGF9c3RhdGljIF8kRXAobCxhKXtjb25zdCBkPWEuYXR0cmlidXRlO3JldHVybiExPT09ZD92b2lkIDA6InN0cmluZyI9PXR5cGVvZiBkP2Q6InN0cmlu'@; put 'ZyI9PXR5cGVvZiBsP2wudG9Mb3dlckNhc2UoKTp2b2lkIDB9XyRFdSgpe3ZhciBsO3RoaXMuXyRFXz1uZXcgUHJvbWlzZShhPT50aGlzLmVuYWJsZVVwZGF0aW5nPWEpLHRoaXMuXyRBTD1uZXcgTWFwLHRoaXMuXyRFZygpLHRoaXMucmVxdWVzdFVwZGF0ZSgpLG51bGw9PT0obD10aGlzLmNv'@; put 'bnN0cnVjdG9yLmgpfHx2b2lkIDA9PT1sfHxsLmZvckVhY2goYT0+YSh0aGlzKSl9YWRkQ29udHJvbGxlcihsKXt2YXIgYSxkOyhudWxsIT09KGE9dGhpcy5fJEVTKSYmdm9pZCAwIT09YT9hOnRoaXMuXyRFUz1bXSkucHVzaChsKSx2b2lkIDAhPT10aGlzLnJlbmRlclJvb3QmJnRoaXMuaXND'@; put 'b25uZWN0ZWQmJihudWxsPT09KGQ9bC5ob3N0Q29ubmVjdGVkKXx8dm9pZCAwPT09ZHx8ZC5jYWxsKGwpKX1yZW1vdmVDb250cm9sbGVyKGwpe3ZhciBhO251bGw9PT0oYT10aGlzLl8kRVMpfHx2b2lkIDA9PT1hfHxhLnNwbGljZSh0aGlzLl8kRVMuaW5kZXhPZihsKT4+PjAsMSl9XyRFZygp'@; put 'e3RoaXMuY29uc3RydWN0b3IuZWxlbWVudFByb3BlcnRpZXMuZm9yRWFjaCgobCxhKT0+e3RoaXMuaGFzT3duUHJvcGVydHkoYSkmJih0aGlzLl8kRWkuc2V0KGEsdGhpc1thXSksZGVsZXRlIHRoaXNbYV0pfSl9Y3JlYXRlUmVuZGVyUm9vdCgpe3ZhciBsO2NvbnN0IGE9bnVsbCE9PShsPXRo'@; put 'aXMuc2hhZG93Um9vdCkmJnZvaWQgMCE9PWw/bDp0aGlzLmF0dGFjaFNoYWRvdyh0aGlzLmNvbnN0cnVjdG9yLnNoYWRvd1Jvb3RPcHRpb25zKTtyZXR1cm4oKGMsbCk9PntEWj9jLmFkb3B0ZWRTdHlsZVNoZWV0cz1sLm1hcChhPT5hIGluc3RhbmNlb2YgQ1NTU3R5bGVTaGVldD9hOmEuc3R5'@; put 'bGVTaGVldCk6bC5mb3JFYWNoKGE9Pntjb25zdCBkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIiksaD1SUi5saXROb25jZTt2b2lkIDAhPT1oJiZkLnNldEF0dHJpYnV0ZSgibm9uY2UiLGgpLGQudGV4dENvbnRlbnQ9YS5jc3NUZXh0LGMuYXBwZW5kQ2hpbGQoZCl9KX0pKGEsdGhp'@; put 'cy5jb25zdHJ1Y3Rvci5lbGVtZW50U3R5bGVzKSxhfWNvbm5lY3RlZENhbGxiYWNrKCl7dmFyIGw7dm9pZCAwPT09dGhpcy5yZW5kZXJSb290JiYodGhpcy5yZW5kZXJSb290PXRoaXMuY3JlYXRlUmVuZGVyUm9vdCgpKSx0aGlzLmVuYWJsZVVwZGF0aW5nKCEwKSxudWxsPT09KGw9dGhpcy5f'@; put 'JEVTKXx8dm9pZCAwPT09bHx8bC5mb3JFYWNoKGE9Pnt2YXIgZDtyZXR1cm4gbnVsbD09PShkPWEuaG9zdENvbm5lY3RlZCl8fHZvaWQgMD09PWQ/dm9pZCAwOmQuY2FsbChhKX0pfWVuYWJsZVVwZGF0aW5nKGwpe31kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3ZhciBsO251bGw9PT0obD10aGlz'@; put 'Ll8kRVMpfHx2b2lkIDA9PT1sfHxsLmZvckVhY2goYT0+e3ZhciBkO3JldHVybiBudWxsPT09KGQ9YS5ob3N0RGlzY29ubmVjdGVkKXx8dm9pZCAwPT09ZD92b2lkIDA6ZC5jYWxsKGEpfSl9YXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKGwsYSxkKXt0aGlzLl8kQUsobCxkKX1fJEVPKGwsYSxk'@; put 'PU9aKXt2YXIgaDtjb25zdCBmPXRoaXMuY29uc3RydWN0b3IuXyRFcChsLGQpO2lmKHZvaWQgMCE9PWYmJiEwPT09ZC5yZWZsZWN0KXtjb25zdCB2PSh2b2lkIDAhPT0obnVsbD09PShoPWQuY29udmVydGVyKXx8dm9pZCAwPT09aD92b2lkIDA6aC50b0F0dHJpYnV0ZSk/ZC5jb252ZXJ0ZXI6'@; put 'TFopLnRvQXR0cmlidXRlKGEsZC50eXBlKTt0aGlzLl8kRWw9bCxudWxsPT12P3RoaXMucmVtb3ZlQXR0cmlidXRlKGYpOnRoaXMuc2V0QXR0cmlidXRlKGYsdiksdGhpcy5fJEVsPW51bGx9fV8kQUsobCxhKXt2YXIgZDtjb25zdCBoPXRoaXMuY29uc3RydWN0b3IsZj1oLl8kRXYuZ2V0KGwp'@; put 'O2lmKHZvaWQgMCE9PWYmJnRoaXMuXyRFbCE9PWYpe2NvbnN0IHY9aC5nZXRQcm9wZXJ0eU9wdGlvbnMoZiksTT0iZnVuY3Rpb24iPT10eXBlb2Ygdi5jb252ZXJ0ZXI/e2Zyb21BdHRyaWJ1dGU6di5jb252ZXJ0ZXJ9OnZvaWQgMCE9PShudWxsPT09KGQ9di5jb252ZXJ0ZXIpfHx2b2lkIDA9'@; put 'PT1kP3ZvaWQgMDpkLmZyb21BdHRyaWJ1dGUpP3YuY29udmVydGVyOkxaO3RoaXMuXyRFbD1mLHRoaXNbZl09TS5mcm9tQXR0cmlidXRlKGEsdi50eXBlKSx0aGlzLl8kRWw9bnVsbH19cmVxdWVzdFVwZGF0ZShsLGEsZCl7bGV0IGg9ITA7dm9pZCAwIT09bCYmKCgoZD1kfHx0aGlzLmNvbnN0'@; put 'cnVjdG9yLmdldFByb3BlcnR5T3B0aW9ucyhsKSkuaGFzQ2hhbmdlZHx8Rm9lKSh0aGlzW2xdLGEpPyh0aGlzLl8kQUwuaGFzKGwpfHx0aGlzLl8kQUwuc2V0KGwsYSksITA9PT1kLnJlZmxlY3QmJnRoaXMuXyRFbCE9PWwmJih2b2lkIDA9PT10aGlzLl8kRUMmJih0aGlzLl8kRUM9bmV3IE1h'@; put 'cCksdGhpcy5fJEVDLnNldChsLGQpKSk6aD0hMSksIXRoaXMuaXNVcGRhdGVQZW5kaW5nJiZoJiYodGhpcy5fJEVfPXRoaXMuXyRFaigpKX1fJEVqKCl7dmFyIGw9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXtsLmlzVXBkYXRlUGVuZGluZz0hMDt0cnl7eWllbGQgbC5fJEVffWNhdGNoKGQp'@; put 'e1Byb21pc2UucmVqZWN0KGQpfWNvbnN0IGE9bC5zY2hlZHVsZVVwZGF0ZSgpO3JldHVybiBudWxsIT1hJiYoeWllbGQgYSksIWwuaXNVcGRhdGVQZW5kaW5nfSkoKX1zY2hlZHVsZVVwZGF0ZSgpe3JldHVybiB0aGlzLnBlcmZvcm1VcGRhdGUoKX1wZXJmb3JtVXBkYXRlKCl7dmFyIGw7aWYo'@; put 'IXRoaXMuaXNVcGRhdGVQZW5kaW5nKXJldHVybjt0aGlzLl8kRWkmJih0aGlzLl8kRWkuZm9yRWFjaCgoaCxmKT0+dGhpc1tmXT1oKSx0aGlzLl8kRWk9dm9pZCAwKTtsZXQgYT0hMTtjb25zdCBkPXRoaXMuXyRBTDt0cnl7YT10aGlzLnNob3VsZFVwZGF0ZShkKSxhPyh0aGlzLndpbGxVcGRh'@; put 'dGUoZCksbnVsbD09PShsPXRoaXMuXyRFUyl8fHZvaWQgMD09PWx8fGwuZm9yRWFjaChoPT57dmFyIGY7cmV0dXJuIG51bGw9PT0oZj1oLmhvc3RVcGRhdGUpfHx2b2lkIDA9PT1mP3ZvaWQgMDpmLmNhbGwoaCl9KSx0aGlzLnVwZGF0ZShkKSk6dGhpcy5fJEVrKCl9Y2F0Y2goaCl7dGhyb3cg'@; put 'YT0hMSx0aGlzLl8kRWsoKSxofWEmJnRoaXMuXyRBRShkKX13aWxsVXBkYXRlKGwpe31fJEFFKGwpe3ZhciBhO251bGw9PT0oYT10aGlzLl8kRVMpfHx2b2lkIDA9PT1hfHxhLmZvckVhY2goZD0+e3ZhciBoO3JldHVybiBudWxsPT09KGg9ZC5ob3N0VXBkYXRlZCl8fHZvaWQgMD09PWg/dm9p'@; put 'ZCAwOmguY2FsbChkKX0pLHRoaXMuaGFzVXBkYXRlZHx8KHRoaXMuaGFzVXBkYXRlZD0hMCx0aGlzLmZpcnN0VXBkYXRlZChsKSksdGhpcy51cGRhdGVkKGwpfV8kRWsoKXt0aGlzLl8kQUw9bmV3IE1hcCx0aGlzLmlzVXBkYXRlUGVuZGluZz0hMX1nZXQgdXBkYXRlQ29tcGxldGUoKXtyZXR1'@; put 'cm4gdGhpcy5nZXRVcGRhdGVDb21wbGV0ZSgpfWdldFVwZGF0ZUNvbXBsZXRlKCl7cmV0dXJuIHRoaXMuXyRFX31zaG91bGRVcGRhdGUobCl7cmV0dXJuITB9dXBkYXRlKGwpe3ZvaWQgMCE9PXRoaXMuXyRFQyYmKHRoaXMuXyRFQy5mb3JFYWNoKChhLGQpPT50aGlzLl8kRU8oZCx0aGlzW2Rd'@; put 'LGEpKSx0aGlzLl8kRUM9dm9pZCAwKSx0aGlzLl8kRWsoKX11cGRhdGVkKGwpe31maXJzdFVwZGF0ZWQobCl7fX12YXIgRlo7WXlbUFpdPSEwLFl5LmVsZW1lbnRQcm9wZXJ0aWVzPW5ldyBNYXAsWXkuZWxlbWVudFN0eWxlcz1bXSxZeS5zaGFkb3dSb290T3B0aW9ucz17bW9kZToib3BlbiJ9'@; put 'LFBvZT8uKHtSZWFjdGl2ZUVsZW1lbnQ6WXl9KSwobnVsbCE9PShSWj1MUi5yZWFjdGl2ZUVsZW1lbnRWZXJzaW9ucykmJnZvaWQgMCE9PVJaP1JaOkxSLnJlYWN0aXZlRWxlbWVudFZlcnNpb25zPVtdKS5wdXNoKCIxLjYuMyIpO2NvbnN0IE9SPXdpbmRvdyxHeT1PUi50cnVzdGVkVHlwZXMs'@; put 'SG9lPUd5P0d5LmNyZWF0ZVBvbGljeSgibGl0LWh0bWwiLHtjcmVhdGVIVE1MOmM9PmN9KTp2b2lkIDAsUFI9IiRsaXQkIixlZz1gbGl0JCR7KE1hdGgucmFuZG9tKCkrIiIpLnNsaWNlKDkpfSRgLEhaPSI/IitlZyxtTWU9YDwke0hafT5gLFk4PWRvY3VtZW50LFZNPSgpPT5ZOC5jcmVhdGVD'@; put 'b21tZW50KCIiKSxCTT1jPT5udWxsPT09Y3x8Im9iamVjdCIhPXR5cGVvZiBjJiYiZnVuY3Rpb24iIT10eXBlb2YgYyxOb2U9QXJyYXkuaXNBcnJheSxOWj0iWyBcdFxuXGZccl0iLGpNPS88KD86KCEtLXxcL1teYS16QS1aXSl8KFwvP1thLXpBLVpdW14+XHNdKil8KFwvPyQpKS9nLEJvZT0v'@; put 'LS0+L2csam9lPS8+L2csRzg9UmVnRXhwKGA+fCR7Tlp9KD86KFteXFxzIic+PS9dKykoJHtOWn0qPSR7Tlp9Kig/OlteIFx0XG5cZlxyIidcYDw+PV18KCJ8Jyl8KSl8JClgLCJnIiksem9lPS8nL2csVW9lPS8iL2csWm9lPS9eKD86c2NyaXB0fHN0eWxlfHRleHRhcmVhfHRpdGxlKSQvaSxX'@; put 'b2U9Yz0+KGwsLi4uYSk9Pih7XyRsaXRUeXBlJDpjLHN0cmluZ3M6bCx2YWx1ZXM6YX0pLHZNZT1Xb2UoMSkseU1lPVdvZSgyKSwkeT1TeW1ib2wuZm9yKCJsaXQtbm9DaGFuZ2UiKSxfMD1TeW1ib2wuZm9yKCJsaXQtbm90aGluZyIpLFlvZT1uZXcgV2Vha01hcCwkOD1ZOC5jcmVhdGVUcmVl'@; put 'V2Fsa2VyKFk4LDEyOSxudWxsLCExKTtmdW5jdGlvbiBHb2UoYyxsKXtpZighQXJyYXkuaXNBcnJheShjKXx8IWMuaGFzT3duUHJvcGVydHkoInJhdyIpKXRocm93IEVycm9yKCJpbnZhbGlkIHRlbXBsYXRlIHN0cmluZ3MgYXJyYXkiKTtyZXR1cm4gdm9pZCAwIT09SG9lP0hvZS5jcmVhdGVI'@; put 'VE1MKGwpOmx9Y2xhc3Mgek17Y29uc3RydWN0b3Ioe3N0cmluZ3M6bCxfJGxpdFR5cGUkOmF9LGQpe2xldCBoO3RoaXMucGFydHM9W107bGV0IGY9MCx2PTA7Y29uc3QgTT1sLmxlbmd0aC0xLEk9dGhpcy5wYXJ0cyxbRyxyZV09KChjLGwpPT57Y29uc3QgYT1jLmxlbmd0aC0xLGQ9W107bGV0'@; put 'IGgsZj0yPT09bD8iPHN2Zz4iOiIiLHY9ak07Zm9yKGxldCBNPTA7TTxhO00rKyl7Y29uc3QgST1jW01dO2xldCBHLHJlLHVlPS0xLHllPTA7Zm9yKDt5ZTxJLmxlbmd0aCYmKHYubGFzdEluZGV4PXllLHJlPXYuZXhlYyhJKSxudWxsIT09cmUpOyl5ZT12Lmxhc3RJbmRleCx2PT09ak0/IiEt'@; put 'LSI9PT1yZVsxXT92PUJvZTp2b2lkIDAhPT1yZVsxXT92PWpvZTp2b2lkIDAhPT1yZVsyXT8oWm9lLnRlc3QocmVbMl0pJiYoaD1SZWdFeHAoIjwvIityZVsyXSwiZyIpKSx2PUc4KTp2b2lkIDAhPT1yZVszXSYmKHY9RzgpOnY9PT1HOD8iPiI9PT1yZVswXT8odj1oPz9qTSx1ZT0tMSk6dm9p'@; put 'ZCAwPT09cmVbMV0/dWU9LTI6KHVlPXYubGFzdEluZGV4LXJlWzJdLmxlbmd0aCxHPXJlWzFdLHY9dm9pZCAwPT09cmVbM10/Rzg6JyInPT09cmVbM10/VW9lOnpvZSk6dj09PVVvZXx8dj09PXpvZT92PUc4OnY9PT1Cb2V8fHY9PT1qb2U/dj1qTToodj1HOCxoPXZvaWQgMCk7Y29uc3QgRWU9'@; put 'dj09PUc4JiZjW00rMV0uc3RhcnRzV2l0aCgiLz4iKT8iICI6IiI7Zis9dj09PWpNP0krbU1lOnVlPj0wPyhkLnB1c2goRyksSS5zbGljZSgwLHVlKStQUitJLnNsaWNlKHVlKStlZytFZSk6SStlZysoLTI9PT11ZT8oZC5wdXNoKHZvaWQgMCksTSk6RWUpfXJldHVybltHb2UoYyxmKyhjW2Fd'@; put 'fHwiPD8+IikrKDI9PT1sPyI8L3N2Zz4iOiIiKSksZF19KShsLGEpO2lmKHRoaXMuZWw9ek0uY3JlYXRlRWxlbWVudChHLGQpLCQ4LmN1cnJlbnROb2RlPXRoaXMuZWwuY29udGVudCwyPT09YSl7Y29uc3QgdWU9dGhpcy5lbC5jb250ZW50LHllPXVlLmZpcnN0Q2hpbGQ7eWUucmVtb3ZlKCks'@; put 'dWUuYXBwZW5kKC4uLnllLmNoaWxkTm9kZXMpfWZvcig7bnVsbCE9PShoPSQ4Lm5leHROb2RlKCkpJiZJLmxlbmd0aDxNOyl7aWYoMT09PWgubm9kZVR5cGUpe2lmKGguaGFzQXR0cmlidXRlcygpKXtjb25zdCB1ZT1bXTtmb3IoY29uc3QgeWUgb2YgaC5nZXRBdHRyaWJ1dGVOYW1lcygpKWlm'@; put 'KHllLmVuZHNXaXRoKFBSKXx8eWUuc3RhcnRzV2l0aChlZykpe2NvbnN0IEVlPXJlW3YrK107aWYodWUucHVzaCh5ZSksdm9pZCAwIT09RWUpe2NvbnN0IEJlPWguZ2V0QXR0cmlidXRlKEVlLnRvTG93ZXJDYXNlKCkrUFIpLnNwbGl0KGVnKSxHZT0vKFsuP0BdKT8oLiopLy5leGVjKEVlKTtJ'@; put 'LnB1c2goe3R5cGU6MSxpbmRleDpmLG5hbWU6R2VbMl0sc3RyaW5nczpCZSxjdG9yOiIuIj09PUdlWzFdP1hvZToiPyI9PT1HZVsxXT9xb2U6IkAiPT09R2VbMV0/Sm9lOlVNfSl9ZWxzZSBJLnB1c2goe3R5cGU6NixpbmRleDpmfSl9Zm9yKGNvbnN0IHllIG9mIHVlKWgucmVtb3ZlQXR0cmli'@; put 'dXRlKHllKX1pZihab2UudGVzdChoLnRhZ05hbWUpKXtjb25zdCB1ZT1oLnRleHRDb250ZW50LnNwbGl0KGVnKSx5ZT11ZS5sZW5ndGgtMTtpZih5ZT4wKXtoLnRleHRDb250ZW50PUd5P0d5LmVtcHR5U2NyaXB0OiIiO2ZvcihsZXQgRWU9MDtFZTx5ZTtFZSsrKWguYXBwZW5kKHVlW0VlXSxW'@; put 'TSgpKSwkOC5uZXh0Tm9kZSgpLEkucHVzaCh7dHlwZToyLGluZGV4OisrZn0pO2guYXBwZW5kKHVlW3llXSxWTSgpKX19fWVsc2UgaWYoOD09PWgubm9kZVR5cGUpaWYoaC5kYXRhPT09SFopSS5wdXNoKHt0eXBlOjIsaW5kZXg6Zn0pO2Vsc2V7bGV0IHVlPS0xO2Zvcig7LTEhPT0odWU9aC5k'@; put 'YXRhLmluZGV4T2YoZWcsdWUrMSkpOylJLnB1c2goe3R5cGU6NyxpbmRleDpmfSksdWUrPWVnLmxlbmd0aC0xfWYrK319c3RhdGljIGNyZWF0ZUVsZW1lbnQobCxhKXtjb25zdCBkPVk4LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7cmV0dXJuIGQuaW5uZXJIVE1MPWwsZH19ZnVuY3Rpb24g'@; put 'SzgoYyxsLGE9YyxkKXt2YXIgaCxmLHYsTTtpZihsPT09JHkpcmV0dXJuIGw7bGV0IEk9dm9pZCAwIT09ZD9udWxsPT09KGg9YS5fJENvKXx8dm9pZCAwPT09aD92b2lkIDA6aFtkXTphLl8kQ2w7Y29uc3QgRz1CTShsKT92b2lkIDA6bC5fJGxpdERpcmVjdGl2ZSQ7cmV0dXJuIEk/LmNvbnN0'@; put 'cnVjdG9yIT09RyYmKG51bGw9PT0oZj1JPy5fJEFPKXx8dm9pZCAwPT09Znx8Zi5jYWxsKEksITEpLHZvaWQgMD09PUc/ST12b2lkIDA6KEk9bmV3IEcoYyksSS5fJEFUKGMsYSxkKSksdm9pZCAwIT09ZD8obnVsbCE9PSh2PShNPWEpLl8kQ28pJiZ2b2lkIDAhPT12P3Y6TS5fJENvPVtdKVtk'@; put 'XT1JOmEuXyRDbD1JKSx2b2lkIDAhPT1JJiYobD1LOChjLEkuXyRBUyhjLGwudmFsdWVzKSxJLGQpKSxsfWNsYXNzIEtvZXtjb25zdHJ1Y3RvcihsLGEpe3RoaXMuXyRBVj1bXSx0aGlzLl8kQU49dm9pZCAwLHRoaXMuXyRBRD1sLHRoaXMuXyRBTT1hfWdldCBwYXJlbnROb2RlKCl7cmV0dXJu'@; put 'IHRoaXMuXyRBTS5wYXJlbnROb2RlfWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfXUobCl7dmFyIGE7Y29uc3R7ZWw6e2NvbnRlbnQ6ZH0scGFydHM6aH09dGhpcy5fJEFELGY9KG51bGwhPT0oYT1sPy5jcmVhdGlvblNjb3BlKSYmdm9pZCAwIT09YT9hOlk4KS5pbXBvcnROb2Rl'@; put 'KGQsITApOyQ4LmN1cnJlbnROb2RlPWY7bGV0IHY9JDgubmV4dE5vZGUoKSxNPTAsST0wLEc9aFswXTtmb3IoO3ZvaWQgMCE9PUc7KXtpZihNPT09Ry5pbmRleCl7bGV0IHJlOzI9PT1HLnR5cGU/cmU9bmV3IEt5KHYsdi5uZXh0U2libGluZyx0aGlzLGwpOjE9PT1HLnR5cGU/cmU9bmV3IEcu'@; put 'Y3Rvcih2LEcubmFtZSxHLnN0cmluZ3MsdGhpcyxsKTo2PT09Ry50eXBlJiYocmU9bmV3IFFvZSh2LHRoaXMsbCkpLHRoaXMuXyRBVi5wdXNoKHJlKSxHPWhbKytJXX1NIT09Rz8uaW5kZXgmJih2PSQ4Lm5leHROb2RlKCksTSsrKX1yZXR1cm4gJDguY3VycmVudE5vZGU9WTgsZn12KGwpe2xl'@; put 'dCBhPTA7Zm9yKGNvbnN0IGQgb2YgdGhpcy5fJEFWKXZvaWQgMCE9PWQmJih2b2lkIDAhPT1kLnN0cmluZ3M/KGQuXyRBSShsLGQsYSksYSs9ZC5zdHJpbmdzLmxlbmd0aC0yKTpkLl8kQUkobFthXSkpLGErK319Y2xhc3MgS3l7Y29uc3RydWN0b3IobCxhLGQsaCl7dmFyIGY7dGhpcy50eXBl'@; put 'PTIsdGhpcy5fJEFIPV8wLHRoaXMuXyRBTj12b2lkIDAsdGhpcy5fJEFBPWwsdGhpcy5fJEFCPWEsdGhpcy5fJEFNPWQsdGhpcy5vcHRpb25zPWgsdGhpcy5fJENwPW51bGw9PT0oZj1oPy5pc0Nvbm5lY3RlZCl8fHZvaWQgMD09PWZ8fGZ9Z2V0IF8kQVUoKXt2YXIgbCxhO3JldHVybiBudWxs'@; put 'IT09KGE9bnVsbD09PShsPXRoaXMuXyRBTSl8fHZvaWQgMD09PWw/dm9pZCAwOmwuXyRBVSkmJnZvaWQgMCE9PWE/YTp0aGlzLl8kQ3B9Z2V0IHBhcmVudE5vZGUoKXtsZXQgbD10aGlzLl8kQUEucGFyZW50Tm9kZTtjb25zdCBhPXRoaXMuXyRBTTtyZXR1cm4gdm9pZCAwIT09YSYmMTE9PT1s'@; put 'Py5ub2RlVHlwZSYmKGw9YS5wYXJlbnROb2RlKSxsfWdldCBzdGFydE5vZGUoKXtyZXR1cm4gdGhpcy5fJEFBfWdldCBlbmROb2RlKCl7cmV0dXJuIHRoaXMuXyRBQn1fJEFJKGwsYT10aGlzKXtsPUs4KHRoaXMsbCxhKSxCTShsKT9sPT09XzB8fG51bGw9PWx8fCIiPT09bD8odGhpcy5fJEFI'@; put 'IT09XzAmJnRoaXMuXyRBUigpLHRoaXMuXyRBSD1fMCk6bCE9PXRoaXMuXyRBSCYmbCE9PSR5JiZ0aGlzLl8obCk6dm9pZCAwIT09bC5fJGxpdFR5cGUkP3RoaXMuZyhsKTp2b2lkIDAhPT1sLm5vZGVUeXBlP3RoaXMuJChsKTooYz0+Tm9lKGMpfHwiZnVuY3Rpb24iPT10eXBlb2YgYz8uW1N5'@; put 'bWJvbC5pdGVyYXRvcl0pKGwpP3RoaXMuVChsKTp0aGlzLl8obCl9ayhsKXtyZXR1cm4gdGhpcy5fJEFBLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGwsdGhpcy5fJEFCKX0kKGwpe3RoaXMuXyRBSCE9PWwmJih0aGlzLl8kQVIoKSx0aGlzLl8kQUg9dGhpcy5rKGwpKX1fKGwpe3RoaXMuXyRB'@; put 'SCE9PV8wJiZCTSh0aGlzLl8kQUgpP3RoaXMuXyRBQS5uZXh0U2libGluZy5kYXRhPWw6dGhpcy4kKFk4LmNyZWF0ZVRleHROb2RlKGwpKSx0aGlzLl8kQUg9bH1nKGwpe3ZhciBhO2NvbnN0e3ZhbHVlczpkLF8kbGl0VHlwZSQ6aH09bCxmPSJudW1iZXIiPT10eXBlb2YgaD90aGlzLl8kQUMo'@; put 'bCk6KHZvaWQgMD09PWguZWwmJihoLmVsPXpNLmNyZWF0ZUVsZW1lbnQoR29lKGguaCxoLmhbMF0pLHRoaXMub3B0aW9ucykpLGgpO2lmKChudWxsPT09KGE9dGhpcy5fJEFIKXx8dm9pZCAwPT09YT92b2lkIDA6YS5fJEFEKT09PWYpdGhpcy5fJEFILnYoZCk7ZWxzZXtjb25zdCB2PW5ldyBL'@; put 'b2UoZix0aGlzKSxNPXYudSh0aGlzLm9wdGlvbnMpO3YudihkKSx0aGlzLiQoTSksdGhpcy5fJEFIPXZ9fV8kQUMobCl7bGV0IGE9WW9lLmdldChsLnN0cmluZ3MpO3JldHVybiB2b2lkIDA9PT1hJiZZb2Uuc2V0KGwuc3RyaW5ncyxhPW5ldyB6TShsKSksYX1UKGwpe05vZSh0aGlzLl8kQUgp'@; put 'fHwodGhpcy5fJEFIPVtdLHRoaXMuXyRBUigpKTtjb25zdCBhPXRoaXMuXyRBSDtsZXQgZCxoPTA7Zm9yKGNvbnN0IGYgb2YgbCloPT09YS5sZW5ndGg/YS5wdXNoKGQ9bmV3IEt5KHRoaXMuayhWTSgpKSx0aGlzLmsoVk0oKSksdGhpcyx0aGlzLm9wdGlvbnMpKTpkPWFbaF0sZC5fJEFJKGYp'@; put 'LGgrKztoPGEubGVuZ3RoJiYodGhpcy5fJEFSKGQmJmQuXyRBQi5uZXh0U2libGluZyxoKSxhLmxlbmd0aD1oKX1fJEFSKGw9dGhpcy5fJEFBLm5leHRTaWJsaW5nLGEpe3ZhciBkO2ZvcihudWxsPT09KGQ9dGhpcy5fJEFQKXx8dm9pZCAwPT09ZHx8ZC5jYWxsKHRoaXMsITEsITAsYSk7bCYm'@; put 'bCE9PXRoaXMuXyRBQjspe2NvbnN0IGg9bC5uZXh0U2libGluZztsLnJlbW92ZSgpLGw9aH19c2V0Q29ubmVjdGVkKGwpe3ZhciBhO3ZvaWQgMD09PXRoaXMuXyRBTSYmKHRoaXMuXyRDcD1sLG51bGw9PT0oYT10aGlzLl8kQVApfHx2b2lkIDA9PT1hfHxhLmNhbGwodGhpcyxsKSl9fWNsYXNz'@; put 'IFVNe2NvbnN0cnVjdG9yKGwsYSxkLGgsZil7dGhpcy50eXBlPTEsdGhpcy5fJEFIPV8wLHRoaXMuXyRBTj12b2lkIDAsdGhpcy5lbGVtZW50PWwsdGhpcy5uYW1lPWEsdGhpcy5fJEFNPWgsdGhpcy5vcHRpb25zPWYsZC5sZW5ndGg+Mnx8IiIhPT1kWzBdfHwiIiE9PWRbMV0/KHRoaXMuXyRB'@; put 'SD1BcnJheShkLmxlbmd0aC0xKS5maWxsKG5ldyBTdHJpbmcpLHRoaXMuc3RyaW5ncz1kKTp0aGlzLl8kQUg9XzB9Z2V0IHRhZ05hbWUoKXtyZXR1cm4gdGhpcy5lbGVtZW50LnRhZ05hbWV9Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNLl8kQVV9XyRBSShsLGE9dGhpcyxkLGgpe2NvbnN0'@; put 'IGY9dGhpcy5zdHJpbmdzO2xldCB2PSExO2lmKHZvaWQgMD09PWYpbD1LOCh0aGlzLGwsYSwwKSx2PSFCTShsKXx8bCE9PXRoaXMuXyRBSCYmbCE9PSR5LHYmJih0aGlzLl8kQUg9bCk7ZWxzZXtjb25zdCBNPWw7bGV0IEksRztmb3IobD1mWzBdLEk9MDtJPGYubGVuZ3RoLTE7SSsrKUc9Szgo'@; put 'dGhpcyxNW2QrSV0sYSxJKSxHPT09JHkmJihHPXRoaXMuXyRBSFtJXSksdnx8KHY9IUJNKEcpfHxHIT09dGhpcy5fJEFIW0ldKSxHPT09XzA/bD1fMDpsIT09XzAmJihsKz0oRz8/IiIpK2ZbSSsxXSksdGhpcy5fJEFIW0ldPUd9diYmIWgmJnRoaXMuaihsKX1qKGwpe2w9PT1fMD90aGlzLmVs'@; put 'ZW1lbnQucmVtb3ZlQXR0cmlidXRlKHRoaXMubmFtZSk6dGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZSh0aGlzLm5hbWUsbD8/IiIpfX1jbGFzcyBYb2UgZXh0ZW5kcyBVTXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy50eXBlPTN9aihsKXt0aGlzLmVsZW1lbnRbdGhp'@; put 'cy5uYW1lXT1sPT09XzA/dm9pZCAwOmx9fWNvbnN0IGJNZT1HeT9HeS5lbXB0eVNjcmlwdDoiIjtjbGFzcyBxb2UgZXh0ZW5kcyBVTXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy50eXBlPTR9aihsKXtsJiZsIT09XzA/dGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZSh0'@; put 'aGlzLm5hbWUsYk1lKTp0aGlzLmVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKHRoaXMubmFtZSl9fWNsYXNzIEpvZSBleHRlbmRzIFVNe2NvbnN0cnVjdG9yKGwsYSxkLGgsZil7c3VwZXIobCxhLGQsaCxmKSx0aGlzLnR5cGU9NX1fJEFJKGwsYT10aGlzKXt2YXIgZDtpZigobD1udWxsIT09KGQ9'@; put 'SzgodGhpcyxsLGEsMCkpJiZ2b2lkIDAhPT1kP2Q6XzApPT09JHkpcmV0dXJuO2NvbnN0IGg9dGhpcy5fJEFILGY9bD09PV8wJiZoIT09XzB8fGwuY2FwdHVyZSE9PWguY2FwdHVyZXx8bC5vbmNlIT09aC5vbmNlfHxsLnBhc3NpdmUhPT1oLnBhc3NpdmUsdj1sIT09XzAmJihoPT09XzB8fGYp'@; put 'O2YmJnRoaXMuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKHRoaXMubmFtZSx0aGlzLGgpLHYmJnRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKHRoaXMubmFtZSx0aGlzLGwpLHRoaXMuXyRBSD1sfWhhbmRsZUV2ZW50KGwpe3ZhciBhLGQ7ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMu'@; put 'XyRBSD90aGlzLl8kQUguY2FsbChudWxsIT09KGQ9bnVsbD09PShhPXRoaXMub3B0aW9ucyl8fHZvaWQgMD09PWE/dm9pZCAwOmEuaG9zdCkmJnZvaWQgMCE9PWQ/ZDp0aGlzLmVsZW1lbnQsbCk6dGhpcy5fJEFILmhhbmRsZUV2ZW50KGwpfX1jbGFzcyBRb2V7Y29uc3RydWN0b3IobCxhLGQp'@; put 'e3RoaXMuZWxlbWVudD1sLHRoaXMudHlwZT02LHRoaXMuXyRBTj12b2lkIDAsdGhpcy5fJEFNPWEsdGhpcy5vcHRpb25zPWR9Z2V0IF8kQVUoKXtyZXR1cm4gdGhpcy5fJEFNLl8kQVV9XyRBSShsKXtLOCh0aGlzLGwpfX1jb25zdCBlbGU9T1IubGl0SHRtbFBvbHlmaWxsU3VwcG9ydDt2YXIg'@; put 'VlosQlo7ZWxlPy4oek0sS3kpLChudWxsIT09KEZaPU9SLmxpdEh0bWxWZXJzaW9ucykmJnZvaWQgMCE9PUZaP0ZaOk9SLmxpdEh0bWxWZXJzaW9ucz1bXSkucHVzaCgiMi44LjAiKTtjbGFzcyBaTSBleHRlbmRzIFl5e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnJl'@; put 'bmRlck9wdGlvbnM9e2hvc3Q6dGhpc30sdGhpcy5fJERvPXZvaWQgMH1jcmVhdGVSZW5kZXJSb290KCl7dmFyIGwsYTtjb25zdCBkPXN1cGVyLmNyZWF0ZVJlbmRlclJvb3QoKTtyZXR1cm4gbnVsbCE9PShsPShhPXRoaXMucmVuZGVyT3B0aW9ucykucmVuZGVyQmVmb3JlKSYmdm9pZCAwIT09'@; put 'bHx8KGEucmVuZGVyQmVmb3JlPWQuZmlyc3RDaGlsZCksZH11cGRhdGUobCl7Y29uc3QgYT10aGlzLnJlbmRlcigpO3RoaXMuaGFzVXBkYXRlZHx8KHRoaXMucmVuZGVyT3B0aW9ucy5pc0Nvbm5lY3RlZD10aGlzLmlzQ29ubmVjdGVkKSxzdXBlci51cGRhdGUobCksdGhpcy5fJERvPSgoYyxs'@; put 'LGEpPT57dmFyIGQsaDtjb25zdCBmPW51bGwhPT0oZD1hPy5yZW5kZXJCZWZvcmUpJiZ2b2lkIDAhPT1kP2Q6bDtsZXQgdj1mLl8kbGl0UGFydCQ7aWYodm9pZCAwPT09dil7Y29uc3QgTT1udWxsIT09KGg9YT8ucmVuZGVyQmVmb3JlKSYmdm9pZCAwIT09aD9oOm51bGw7Zi5fJGxpdFBhcnQk'@; put 'PXY9bmV3IEt5KGwuaW5zZXJ0QmVmb3JlKFZNKCksTSksTSx2b2lkIDAsYT8/e30pfXJldHVybiB2Ll8kQUkoYyksdn0pKGEsdGhpcy5yZW5kZXJSb290LHRoaXMucmVuZGVyT3B0aW9ucyl9Y29ubmVjdGVkQ2FsbGJhY2soKXt2YXIgbDtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLG51bGw9'@; put 'PT0obD10aGlzLl8kRG8pfHx2b2lkIDA9PT1sfHxsLnNldENvbm5lY3RlZCghMCl9ZGlzY29ubmVjdGVkQ2FsbGJhY2soKXt2YXIgbDtzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpLG51bGw9PT0obD10aGlzLl8kRG8pfHx2b2lkIDA9PT1sfHxsLnNldENvbm5lY3RlZCghMSl9cmVuZGVy'@; put 'KCl7cmV0dXJuICR5fX1aTS5maW5hbGl6ZWQ9ITAsWk0uXyRsaXRFbGVtZW50JD0hMCxudWxsPT09KFZaPWdsb2JhbFRoaXMubGl0RWxlbWVudEh5ZHJhdGVTdXBwb3J0KXx8dm9pZCAwPT09Vlp8fFZaLmNhbGwoZ2xvYmFsVGhpcyx7TGl0RWxlbWVudDpaTX0pO2NvbnN0IHRsZT1nbG9iYWxU'@; put 'aGlzLmxpdEVsZW1lbnRQb2x5ZmlsbFN1cHBvcnQ7dGxlPy4oe0xpdEVsZW1lbnQ6Wk19KSwobnVsbCE9PShCWj1nbG9iYWxUaGlzLmxpdEVsZW1lbnRWZXJzaW9ucykmJnZvaWQgMCE9PUJaP0JaOmdsb2JhbFRoaXMubGl0RWxlbWVudFZlcnNpb25zPVtdKS5wdXNoKCIzLjMuMyIpO2NvbnN0'@; put 'IENNZT1Sb2VgQGNoYXJzZXQgIlVURi04Ijs6aG9zdCw6cm9vdHstLc60Mjp2YXIoLS1jZHMtZ2xvYmFsLWxheW91dC1zcGFjZS14eHMsIGNhbGMoNCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsIDIwKSkpOy0tzrQzOnZhcigtLWNkcy1nbG9iYWwtbGF5b3V0LXNwYWNlLXhzLCBj'@; put 'YWxjKDggKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLCAyMCkpKTstLc60NDp2YXIoLS1jZHMtZ2xvYmFsLWxheW91dC1zcGFjZS1zbSwgY2FsYygxMiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsIDIwKSkpOy0tzrQ1OnZhcigtLWNkcy1nbG9iYWwtbGF5b3V0LXNwYWNl'@; put 'LW1kLCBjYWxjKDE2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwgMjApKSk7LS3OtDY6dmFyKC0tY2RzLWdsb2JhbC1sYXlvdXQtc3BhY2UtbGcsIGNhbGMoMjQgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLCAyMCkpKTstLc60Nzp2YXIoLS1jZHMtZ2xvYmFsLWxheW91'@; put 'dC1zcGFjZS14bCwgY2FsYygzMiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsIDIwKSkpfVtjZHMtbGF5b3V0fj0id3JhcDpub25lIl17ZmxleC13cmFwOm5vd3JhcCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJhbGlnbjpzdHJldGNoIl17ZmxleC1ncm93OjEhaW1wb3J0YW50fVtj'@; put 'ZHMtbGF5b3V0Kj0iYWxpZ246c2hyaW5rIl17ZmxleC1zaHJpbms6MSFpbXBvcnRhbnQ7ZmxleC1ncm93OjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtd3JhcDp3cmFwO2p1c3RpZnktaXRlbXM6ZmxleC1z'@; put 'dGFydDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O3dpZHRoOjEwMCU7bWFyZ2luOjA7bWluLWhlaWdodDowfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxheW91dH49aG9yaXpvbnRhbF0sW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdPltjZHMtbGF5b3V0fj12ZXJ0aWNhbF0sW2Nkcy1s'@; put 'YXlvdXR+PWhvcml6b250YWxdPltjZHMtdGV4dF17d2lkdGg6aW5pdGlhbCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjp0b3AiXXthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0i'@; put 'YWxpZ246bGVmdCJde2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ246cmlnaHQiXXtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjp2ZXJ0'@; put 'aWNhbC1jZW50ZXIiXXthbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24tY29udGVudDpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpob3Jpem9udGFsLWNlbnRlciJde2p1c3RpZnktY29udGVudDpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxd'@; put 'W2Nkcy1sYXlvdXQqPSJhbGlnbjpjZW50ZXIiXXthbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24tY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9Im9yZGVyOnJldmVyc2UiXXtmbGV4LWRpcmVjdGlvbjpyb3ct'@; put 'cmV2ZXJzZX1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduOmhvcml6b250YWwtc3RyZXRjaCJde2p1c3RpZnktY29udGVudDpzdHJldGNoO2ZsZXgtZ3JvdzoxfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ246aG9yaXpvbnRhbC1z'@; put 'dHJldGNoIl0+KntmbGV4LWdyb3c6MX1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduOnN0cmV0Y2giXXthbGlnbi1pdGVtczpzdHJldGNoO2FsaWduLWNvbnRlbnQ6c3RyZXRjaDtmbGV4LWdyb3c6MX1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91'@; put 'dCo9ImFsaWduOnN0cmV0Y2giXT4qe2ZsZXgtZ3JvdzoxfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxheW91dCo9ImFsaWduOmNlbnRlciJdLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxheW91dCo9ImFsaWduOnZlcnRpY2FsLWNlbnRlciJde2FsaWduLXNlbGY6Y2Vu'@; put 'dGVyfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxheW91dCo9ImFsaWduOmNlbnRlciJdLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxheW91dCo9ImFsaWduOmhvcml6b250YWwtY2VudGVyIl17bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OmF1'@; put 'dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxheW91dCo9ImFsaWduOnRvcCJde2FsaWduLXNlbGY6ZmxleC1zdGFydH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjpyaWdodCJde21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50'@; put 'fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxheW91dCo9ImFsaWduOmxlZnQiXXttYXJnaW4tcmlnaHQ6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXXt3aWR0aDoxMDAlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Zmxl'@; put 'eC1zdGFydH1bY2RzLWxheW91dH49dmVydGljYWxdLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduOnRvcCJde2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduOmxlZnQiXXthbGlnbi1pdGVt'@; put 'czpmbGV4LXN0YXJ0fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduOnJpZ2h0Il17YWxpZ24taXRlbXM6ZmxleC1lbmR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ246dmVydGljYWwtY2VudGVyIl17anVzdGlmeS1jb250ZW50OmNlbnRl'@; put 'cn1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpob3Jpem9udGFsLWNlbnRlciJde2FsaWduLWl0ZW1zOmNlbnRlcn1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpjZW50ZXIiXXthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250'@; put 'ZW50OmNlbnRlcn1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJvcmRlcjpyZXZlcnNlIl17ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2V9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ246aG9yaXpvbnRhbC1zdHJldGNoIl17YWxpZ24taXRl'@; put 'bXM6c3RyZXRjaH1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpzdHJldGNoIl17YWxpZ24taXRlbXM6c3RyZXRjaDtqdXN0aWZ5LWNvbnRlbnQ6c3RyZXRjaH1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpzdHJldGNoIl0+KntmbGV4'@; put 'LWdyb3c6MX1bY2RzLWxheW91dH49dmVydGljYWxdPltjZHMtbGF5b3V0Kj0iYWxpZ246Y2VudGVyIl0sW2Nkcy1sYXlvdXR+PXZlcnRpY2FsXT5bY2RzLWxheW91dCo9ImFsaWduOnZlcnRpY2FsLWNlbnRlciJde21hcmdpbi10b3A6YXV0bzttYXJnaW4tYm90dG9tOmF1dG99W2Nkcy1sYXlv'@; put 'dXR+PXZlcnRpY2FsXT5bY2RzLWxheW91dCo9ImFsaWduOmNlbnRlciJdLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjpob3Jpem9udGFsLWNlbnRlciJde2FsaWduLXNlbGY6Y2VudGVyfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJhbGln'@; put 'bjp0b3AiXXttYXJnaW4tYm90dG9tOmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjpyaWdodCJde21hcmdpbi1sZWZ0OmF1dG99W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXT5bY2RzLWxheW91dCo9ImFsaWduOmxlZnQiXXttYXJnaW4tcmln'@; put 'aHQ6YXV0b31bY2RzLWxheW91dH49Z3JpZF17ZGlzcGxheTpncmlkO2FsaWduLWl0ZW1zOnN0YXJ0O2FsaWduLWNvbnRlbnQ6c3RhcnQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCh2YXIoLS1jZHMtZ2xvYmFsLWxheW91dC1ncmlkLWNvbHMsMTIpLDFmcik7d2lkdGg6MTAwJX1bY2Rz'@; put 'LWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9cm93c117Z3JpZC10ZW1wbGF0ZS1yb3dzOnJlcGVhdCgxMixhdXRvKX1bY2RzLWxheW91dH49Z3JpZF0+W2Nkcy1sYXlvdXQqPXJvd117YWxpZ24tc2VsZjpzdHJldGNofVtjZHMtbGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ246dG9w'@; put 'Il17YWxpZ24tY29udGVudDpzdGFydH1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduOnJpZ2h0Il17anVzdGlmeS1jb250ZW50OmVuZH1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduOmxlZnQiXXtqdXN0aWZ5LWNvbnRlbnQ6c3RhcnR9W2Nkcy1sYXlv'@; put 'dXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbjpob3Jpem9udGFsLXN0cmV0Y2giXXtqdXN0aWZ5LWl0ZW1zOnN0cmV0Y2g7anVzdGlmeS1jb250ZW50OnN0cmV0Y2h9W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbjpzdHJldGNoIl17YWxpZ24taXRlbXM6c3RyZXRjaDth'@; put 'bGlnbi1jb250ZW50OnN0cmV0Y2g7anVzdGlmeS1pdGVtczpzdHJldGNoO2p1c3RpZnktY29udGVudDpzdHJldGNofVtjZHMtbGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ246dmVydGljYWwtY2VudGVyIl17YWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWNvbnRlbnQ6Y2VudGVyfVtj'@; put 'ZHMtbGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ246aG9yaXpvbnRhbC1jZW50ZXIiXXtqdXN0aWZ5LWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfVtjZHMtbGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ246Y2VudGVyIl17YWxpZ24taXRlbXM6Y2VudGVy'@; put 'O2FsaWduLWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktaXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9OjpzbG90dGVkKFtjZHMtbGF5b3V0fj0iZGlzcGxheTpzY3JlZW4tcmVhZGVyLW9ubHkiXSksW2Nkcy1sYXlvdXR+PSJkaXNwbGF5OnNjcmVlbi1yZWFkZXItb25seSJde3Bv'@; put 'c2l0aW9uOmFic29sdXRlIWltcG9ydGFudDtjbGlwOnJlY3QoMXB4LDFweCwxcHgsMXB4KTtjbGlwLXBhdGg6aW5zZXQoNTAlKTtwYWRkaW5nOjA7Ym9yZGVyOjA7aGVpZ2h0OjFweDt3aWR0aDoxcHg7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0b3A6MDtsZWZ0OjA7ZGlz'@; put 'cGxheTpibG9jayFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJnYXA6bm9uZSJde2dhcDowfVtjZHMtbGF5b3V0Kj0iZ2FwOnh4cyJde2dhcDp2YXIoLS3OtDIpfVtjZHMtbGF5b3V0Kj0iZ2FwOnhzIl17Z2FwOnZhcigtLc60Myl9W2Nkcy1sYXlvdXQqPSJnYXA6c20iXXtnYXA6dmFyKC0tzrQ0'@; put 'KX1bY2RzLWxheW91dCo9ImdhcDptZCJde2dhcDp2YXIoLS3OtDUpfVtjZHMtbGF5b3V0Kj0iZ2FwOmxnIl17Z2FwOnZhcigtLc60Nil9W2Nkcy1sYXlvdXR+PSJwOm5vbmUiXXtwYWRkaW5nOjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icDp4eHMiXXtwYWRkaW5nOnZhcigtLc60MikhaW1w'@; put 'b3J0YW50fVtjZHMtbGF5b3V0fj0icDp4cyJde3BhZGRpbmc6dmFyKC0tzrQzKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwOnNtIl17cGFkZGluZzp2YXIoLS3OtDQpIWltcG9ydGFudH1bY2RzLWxheW91dH49InA6bWQiXXtwYWRkaW5nOnZhcigtLc60NSkhaW1wb3J0YW50fVtjZHMtbGF5'@; put 'b3V0fj0ibTptZCJde21hcmdpbjp2YXIoLS3OtDUpIWltcG9ydGFudH1bY2RzLWxheW91dH49InA6bGciXXtwYWRkaW5nOnZhcigtLc60NikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC15OnhzIl17cGFkZGluZy10b3A6dmFyKC0tzrQzKSFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206dmFy'@; put 'KC0tzrQzKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXg6bGciXXtwYWRkaW5nLWxlZnQ6dmFyKC0tzrQ2KSFpbXBvcnRhbnQ7cGFkZGluZy1yaWdodDp2YXIoLS3OtDYpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteTpsZyJde3BhZGRpbmctdG9wOnZhcigtLc60NikhaW1wb3J0YW50'@; put 'O3BhZGRpbmctYm90dG9tOnZhcigtLc60NikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1sOm1kIl17cGFkZGluZy1sZWZ0OnZhcigtLc60NSkhaW1wb3J0YW50fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXtbY2RzLWxheW91dCo9ImdhcEBtZDpsZyJde2dhcDp2YXIoLS3OtDYpfVtjZHMt'@; put 'bGF5b3V0fj0icEBtZDpsZyJde3BhZGRpbmc6dmFyKC0tzrQ2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtQG1kOnhsIl17bWFyZ2luOnZhcigtLc60NykhaW1wb3J0YW50fX1bY2RzLWxheW91dH49ZmlsbF17d2lkdGg6MTAwJSFpbXBvcnRhbnR9Kiw6YWZ0ZXIsOmJlZm9yZXtib3gtc2l6'@; put 'aW5nOmJvcmRlci1ib3h9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpob3Jpem9udGFsLXN0cmV0Y2giXT46OnNsb3R0ZWQoKiksW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpzdHJldGNoIl0+OjpzbG90dGVkKCopLFtjZHMt'@; put 'bGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduOnN0cmV0Y2giXT46OnNsb3R0ZWQoKil7ZmxleC1ncm93OjF9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0'@; put 'ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjp2ZXJ0aWNhbC1jZW50ZXIiXSl7bWFyZ2luLXRvcDphdXRvO21hcmdpbi1ib3R0b206YXV0b31bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduOmNlbnRlciJdKSxbY2RzLWxheW91dH49dmVydGljYWxdIDo6'@; put 'c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduOmhvcml6b250YWwtY2VudGVyIl0pe2FsaWduLXNlbGY6Y2VudGVyfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ246dG9wIl0pe21hcmdpbi1ib3R0b206YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlv'@; put 'dXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjpib3R0b20iXSl7bWFyZ2luLXRvcDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduOnJpZ2h0Il0pe21hcmdpbi1sZWZ0OmF1dG99W2Nkcy1s'@; put 'YXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjpsZWZ0Il0pLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjpsZWZ0Il17bWFyZ2luLXJpZ2h0OmF1dG99QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpe1tjZHMtbGF5b3V0fj12ZXJ0'@; put 'aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6dmVydGljYWwtY2VudGVyIl0pe21hcmdpbi10b3A6YXV0bzttYXJnaW4tYm90dG9tOmF1dG99W2Nkcy1s'@; put 'YXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czpob3Jpem9udGFsLWNlbnRlciJdKXthbGlnbi1zZWxmOmNlbnRlcn1bY2RzLWxheW91'@; put 'dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhzOnRvcCJdKXttYXJnaW4tYm90dG9tOmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6Ym90dG9tIl0pe21hcmdpbi10b3A6YXV0byFp'@; put 'bXBvcnRhbnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czpyaWdodCJdKXttYXJnaW4tbGVmdDphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6bGVmdCJdKXttYXJnaW4tcmln'@; put 'aHQ6YXV0b319QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpe1tjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206dmVydGljYWwt'@; put 'Y2VudGVyIl0pe21hcmdpbi10b3A6YXV0bzttYXJnaW4tYm90dG9tOmF1dG99W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBz'@; put 'bTpob3Jpem9udGFsLWNlbnRlciJdKXthbGlnbi1zZWxmOmNlbnRlcn1bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHNtOnRvcCJdKXttYXJnaW4tYm90dG9tOmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVk'@; put 'KFtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206Ym90dG9tIl0pe21hcmdpbi10b3A6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTpyaWdodCJdKXttYXJnaW4tbGVmdDphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0g'@; put 'OjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206bGVmdCJdKXttYXJnaW4tcmlnaHQ6YXV0b319QG1lZGlhIChtaW4td2lkdGg6OTkycHgpe1tjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj12'@; put 'ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6dmVydGljYWwtY2VudGVyIl0pe21hcmdpbi10b3A6YXV0bzttYXJnaW4tYm90dG9tOmF1dG99W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDpjZW50ZXIiXSksW2Nk'@; put 'cy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDpob3Jpem9udGFsLWNlbnRlciJdKXthbGlnbi1zZWxmOmNlbnRlcn1bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQG1kOnRvcCJdKXttYXJnaW4tYm90'@; put 'dG9tOmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6Ym90dG9tIl0pe21hcmdpbi10b3A6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBt'@; put 'ZDpyaWdodCJdKXttYXJnaW4tbGVmdDphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6bGVmdCJdKXttYXJnaW4tcmlnaHQ6YXV0b319QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXtbY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xv'@; put 'dHRlZChbY2RzLWxheW91dCo9ImFsaWduQGxnOmNlbnRlciJdKSxbY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQGxnOnZlcnRpY2FsLWNlbnRlciJdKXttYXJnaW4tdG9wOmF1dG87bWFyZ2luLWJvdHRvbTphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0'@; put 'aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6aG9yaXpvbnRhbC1jZW50ZXIiXSl7YWxpZ24tc2VsZjpjZW50ZXJ9W2Nkcy1sYXlvdXR+PXZlcnRpY2Fs'@; put 'XSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzp0b3AiXSl7bWFyZ2luLWJvdHRvbTphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQGxnOmJvdHRvbSJdKXttYXJnaW4tdG9wOmF1dG8haW1wb3J0YW50fVtj'@; put 'ZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6cmlnaHQiXSl7bWFyZ2luLWxlZnQ6YXV0b31bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQGxnOmxlZnQiXSl7bWFyZ2luLXJpZ2h0OmF1dG99fUBt'@; put 'ZWRpYSAobWluLXdpZHRoOjE0NDBweCl7W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDp2ZXJ0aWNhbC1jZW50ZXIiXSl7'@; put 'bWFyZ2luLXRvcDphdXRvO21hcmdpbi1ib3R0b206YXV0b31bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhsOmNlbnRlciJdKSxbY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhsOmhvcml6b250'@; put 'YWwtY2VudGVyIl0pe2FsaWduLXNlbGY6Y2VudGVyfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6dG9wIl0pe21hcmdpbi1ib3R0b206YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlv'@; put 'dXQqPSJhbGlnbkB4bDpib3R0b20iXSl7bWFyZ2luLXRvcDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhsOnJpZ2h0Il0pe21hcmdpbi1sZWZ0OmF1dG99W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQo'@; put 'W2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDpsZWZ0Il0pe21hcmdpbi1yaWdodDphdXRvfX1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ246Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJh'@; put 'bGlnbjp2ZXJ0aWNhbC1jZW50ZXIiXSl7YWxpZ24tc2VsZjpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduOmNlbnRlciJdKSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ246aG9y'@; put 'aXpvbnRhbC1jZW50ZXIiXSl7bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjp0b3AiXSl7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fVtjZHMtbGF5'@; put 'b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjpib3R0b20iXSl7YWxpZ24tc2VsZjpmbGV4LWVuZH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ246cmlnaHQiXSl7bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRh'@; put 'bnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduOmxlZnQiXSl7bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50fUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXtbY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0'@; put 'Kj0iYWxpZ25AeHM6Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czp2ZXJ0aWNhbC1jZW50ZXIiXSl7YWxpZ24tc2VsZjpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9'@; put 'ImFsaWduQHhzOmNlbnRlciJdKSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6aG9yaXpvbnRhbC1jZW50ZXIiXSl7bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0'@; put 'fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czp0b3AiXSl7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czpib3R0b20iXSl7YWxpZ24tc2VsZjpmbGV4LWVuZH1b'@; put 'Y2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6cmlnaHQiXSl7bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhzOmxlZnQiXSl7bWFyZ2lu'@; put 'LXJpZ2h0OmF1dG8haW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHNtOmNlbnRlciJdKSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0i'@; put 'YWxpZ25Ac206dmVydGljYWwtY2VudGVyIl0pe2FsaWduLXNlbGY6Y2VudGVyfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFs'@; put 'aWduQHNtOmhvcml6b250YWwtY2VudGVyIl0pe21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50O21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206dG9wIl0pe2FsaWduLXNlbGY6ZmxleC1z'@; put 'dGFydH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206Ym90dG9tIl0pe2FsaWduLXNlbGY6ZmxleC1lbmR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHNtOnJpZ2h0Il0pe21hcmdp'@; put 'bi1sZWZ0OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTpsZWZ0Il0pe21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpe1tjZHMtbGF5b3V0fj1ob3Jpem9udGFs'@; put 'XSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQG1kOnZlcnRpY2FsLWNlbnRlciJdKXthbGlnbi1zZWxmOmNlbnRlcn1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0g'@; put 'OjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDpob3Jpem9udGFsLWNlbnRlciJdKXttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6YXV0'@; put 'byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQG1kOnRvcCJdKXthbGlnbi1zZWxmOmZsZXgtc3RhcnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQG1kOmJvdHRvbSJd'@; put 'KXthbGlnbi1zZWxmOmZsZXgtZW5kfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDpyaWdodCJdKXttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0i'@; put 'YWxpZ25AbWQ6bGVmdCJdKXttYXJnaW4tcmlnaHQ6YXV0byFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQGxnOmNlbnRlciJdKSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0g'@; put 'OjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6dmVydGljYWwtY2VudGVyIl0pe2FsaWduLXNlbGY6Y2VudGVyfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6'@; put 'c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQGxnOmhvcml6b250YWwtY2VudGVyIl0pe21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50O21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6'@; put 'dG9wIl0pe2FsaWduLXNlbGY6ZmxleC1zdGFydH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6Ym90dG9tIl0pe2FsaWduLXNlbGY6ZmxleC1lbmR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9'@; put 'ImFsaWduQGxnOnJpZ2h0Il0pe21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpsZWZ0Il0pe21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6MTQ0MHB4'@; put 'KXtbY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDp2ZXJ0aWNhbC1jZW50ZXIiXSl7YWxpZ24tc2VsZjpjZW50ZXJ9'@; put 'W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhsOmNlbnRlciJdKSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6aG9yaXpvbnRhbC1jZW50ZXIiXSl7bWFyZ2luLWxlZnQ6YXV0byFp'@; put 'bXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDp0b3AiXSl7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1s'@; put 'YXlvdXQqPSJhbGlnbkB4bDpib3R0b20iXSl7YWxpZ24tc2VsZjpmbGV4LWVuZH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6cmlnaHQiXSl7bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxd'@; put 'IDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhsOmxlZnQiXSl7bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50fX1bY2RzLXRleHRde2ZvbnQtZmFtaWx5OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgIkNsYXJpdHkgQ2l0eSIsICJBdmVuaXIgTmV4dCIs'@; put 'IHNhbnMtc2VyaWYpO21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjB9W2Nkcy10ZXh0XVtjZHMtbGF5b3V0fj1ncmlkXTo6YWZ0ZXIsW2Nkcy10ZXh0XVtjZHMtbGF5b3V0fj1ncmlkXTo6YmVmb3JlLFtjZHMtdGV4dF1bY2RzLWxheW91dH49aG9yaXpvbnRhbF06OmFmdGVyLFtjZHMtdGV4'@; put 'dF1bY2RzLWxheW91dH49aG9yaXpvbnRhbF06OmJlZm9yZSxbY2RzLXRleHRdW2Nkcy1sYXlvdXR+PXZlcnRpY2FsXTo6YWZ0ZXIsW2Nkcy10ZXh0XVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF06OmJlZm9yZXtkaXNwbGF5Om5vbmV9W2Nkcy10ZXh0Kj1kaXNwbGF5XSxbY2RzLXRleHQqPXNlY3Rp'@; put 'b25dLFtjZHMtdGV4dCo9c3Vic2VjdGlvbl0sW2Nkcy10ZXh0Kj10aXRsZV17Zm9udC1mYW1pbHk6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWhlYWRlci1mb250LWZhbWlseSwgIkNsYXJpdHkgQ2l0eSIsICJBdmVuaXIgTmV4dCIsIHNhbnMtc2VyaWYpO2NvbG9yOnZhcigtLWNkcy1n'@; put 'bG9iYWwtdHlwb2dyYXBoeS1jb2xvci00MDAsdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tOTAwLCMyMTMzM2IpKX1bY2RzLXRleHQqPWJvZHldLFtjZHMtdGV4dCo9bWVzc2FnZV0sW2Nkcy10ZXh0Kj1zZWNvbmRhcnlde2NvbG9yOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dy'@; put 'YXBoeS1jb2xvci01MDAsdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibGFjaywjMDAwKSl9W2Nkcy10ZXh0Kj1pbmxpbmVde3dpZHRoOmF1dG8haW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH1bY2RzLXRleHQqPWRpc3BsYXlde2ZvbnQtc2l6ZTp2YXIoLS1jZHMtZ2xv'@; put 'YmFsLXR5cG9ncmFwaHktZGlzcGxheS1mb250LXNpemUsY2FsYyg0MCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWRpc3BsYXktZm9udC13ZWlnaHQsNTAwKTtsaW5lLWhlaWdodDp2YXIoLS1jZHMt'@; put 'Z2xvYmFsLXR5cG9ncmFwaHktZGlzcGxheS1saW5lLWhlaWdodCwxLjFlbSk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWRpc3BsYXktbGV0dGVyLXNwYWNpbmcsLS4wMTI1ZW0pfVtjZHMtdGV4dCo9ZGlzcGxheV06OmJlZm9yZXtjb250ZW50OiIiO2Rpc3Bs'@; put 'YXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tYm90dG9tOmNhbGMoKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQsLjE0NzVlbSkgKyBjYWxjKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZGlzcGxheS1saW5lLWhlaWdodCwxLjFlbSkgLSAx'@; put 'ZW0pLyAyKSkqLTEpICsgLjAzN2VtKX1bY2RzLXRleHQqPWRpc3BsYXldOjphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tdG9wOmNhbGMoKCgoMWVtIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4xNDc1'@; put 'ZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWFzY2VuZGVyLWhlaWdodCwuMTcwM2VtKSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS14LWhlaWdodCwuNTE3ZW0pKSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1kaXNwbGF5LWxpbmUtaGVpZ2h0LDEu'@; put 'MWVtKSAtIDFlbSkvIDIpKSotMSkgLSAuMDQ0ZW0pfVtjZHMtdGV4dCo9dGl0bGVde2ZvbnQtc2l6ZTp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdGl0bGUtZm9udC1zaXplLGNhbGMoMjQgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO2ZvbnQtd2VpZ2h0OnZhcigt'@; put 'LWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10aXRsZS1mb250LXdlaWdodCw1MDApO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10aXRsZS1saW5lLWhlaWdodCwxLjMzMzMzM2VtKTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdGl0bGUt'@; put 'bGV0dGVyLXNwYWNpbmcsLS4wMDgzMzMzM2VtKX1bY2RzLXRleHQqPXRpdGxlXTo6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi1ib3R0b206Y2FsYygoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCwuMTQ3'@; put 'NWVtKSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10aXRsZS1saW5lLWhlaWdodCwxLjMzMzMzM2VtKSAtIDFlbSkvIDIpKSotMSkgKyAuMDM3ZW0pfVtjZHMtdGV4dCo9dGl0bGVdOjphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDtt'@; put 'YXJnaW4tdG9wOmNhbGMoKCgoMWVtIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4xNDc1ZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWFzY2VuZGVyLWhlaWdodCwuMTcwM2VtKSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS14LWhl'@; put 'aWdodCwuNTE3ZW0pKSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10aXRsZS1saW5lLWhlaWdodCwxLjMzMzMzM2VtKSAtIDFlbSkvIDIpKSotMSkgLSAuMDQ0ZW0pfVtjZHMtdGV4dCo9c2VjdGlvbl17Zm9udC1zaXplOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1z'@; put 'ZWN0aW9uLWZvbnQtc2l6ZSxjYWxjKDIwICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTtmb250LXdlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc2VjdGlvbi1mb250LXdlaWdodCw1MDApO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBo'@; put 'eS1zZWN0aW9uLWxpbmUtaGVpZ2h0LDEuMmVtKTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc2VjdGlvbi1sZXR0ZXItc3BhY2luZywtLjAxZW0pfVtjZHMtdGV4dCo9c2VjdGlvbl06OmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7'@; put 'd2lkdGg6MDttYXJnaW4tYm90dG9tOmNhbGMoKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQsLjE0NzVlbSkgKyBjYWxjKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc2VjdGlvbi1saW5lLWhlaWdodCwxLjJlbSkgLSAxZW0pLyAyKSkqLTEpICsgLjAz'@; put 'N2VtKX1bY2RzLXRleHQqPXNlY3Rpb25dOjphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tdG9wOmNhbGMoKCgoMWVtIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4xNDc1ZW0pIC0gdmFyKC0tY2RzLWds'@; put 'b2JhbC10eXBvZ3JhcGh5LWFzY2VuZGVyLWhlaWdodCwuMTcwM2VtKSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS14LWhlaWdodCwuNTE3ZW0pKSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zZWN0aW9uLWxpbmUtaGVpZ2h0LDEuMmVtKSAtIDFlbSkvIDIpKSot'@; put 'MSkgLSAuMDQ0ZW0pfVtjZHMtdGV4dCo9c3Vic2VjdGlvbl17Zm9udC1zaXplOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zdWJzZWN0aW9uLWZvbnQtc2l6ZSxjYWxjKDE2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTtmb250LXdlaWdodDp2YXIoLS1jZHMtZ2xv'@; put 'YmFsLXR5cG9ncmFwaHktc3Vic2VjdGlvbi1mb250LXdlaWdodCw1MDApO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zdWJzZWN0aW9uLWxpbmUtaGVpZ2h0LDEuNWVtKTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc3Vic2VjdGlv'@; put 'bi1sZXR0ZXItc3BhY2luZywtLjAxMjVlbSl9W2Nkcy10ZXh0Kj1zdWJzZWN0aW9uXTo6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi1ib3R0b206Y2FsYygoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCwu'@; put 'MTQ3NWVtKSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zdWJzZWN0aW9uLWxpbmUtaGVpZ2h0LDEuNWVtKSAtIDFlbSkvIDIpKSotMSkgKyAuMDM3ZW0pfVtjZHMtdGV4dCo9c3Vic2VjdGlvbl06OmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3'@; put 'aWR0aDowO21hcmdpbi10b3A6Y2FsYygoKCgxZW0gLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQsLjE0NzVlbSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYXNjZW5kZXItaGVpZ2h0LC4xNzAzZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3Jh'@; put 'cGh5LXgtaGVpZ2h0LC41MTdlbSkpICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXN1YnNlY3Rpb24tbGluZS1oZWlnaHQsMS41ZW0pIC0gMWVtKS8gMikpKi0xKSAtIC4wNDRlbSl9W2Nkcy10ZXh0Kj1ib2R5XXtmb250LXdlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9n'@; put 'cmFwaHktYm9keS1mb250LXdlaWdodCw0MDApO2ZvbnQtc2l6ZTp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYm9keS1mb250LXNpemUsY2FsYygxNCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3Jh'@; put 'cGh5LWJvZHktbGV0dGVyLXNwYWNpbmcsLS4wMDcxNDI4NmVtKTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYm9keS1saW5lLWhlaWdodCwxLjQyODU3MTRlbSl9W2Nkcy10ZXh0Kj1ib2R5XTo6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6'@; put 'MDt3aWR0aDowO21hcmdpbi1ib3R0b206Y2FsYygoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCwuMTQ3NWVtKSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1ib2R5LWxpbmUtaGVpZ2h0LDEuNDI4NTcxNGVtKSAtIDFlbSkvIDIpKSotMSkg'@; put 'KyAuMWVtKX1bY2RzLXRleHQqPWJvZHldOjphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tdG9wOmNhbGMoKCgoMWVtIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4xNDc1ZW0pIC0gdmFyKC0tY2RzLWds'@; put 'b2JhbC10eXBvZ3JhcGh5LWFzY2VuZGVyLWhlaWdodCwuMTcwM2VtKSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS14LWhlaWdodCwuNTE3ZW0pKSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1ib2R5LWxpbmUtaGVpZ2h0LDEuNDI4NTcxNGVtKSAtIDFlbSkvIDIp'@; put 'KSotMSkgLSAuMDQ0ZW0pfWJvZHlbY2RzLXRleHQqPWJvZHldOjphZnRlcixib2R5W2Nkcy10ZXh0Kj1ib2R5XTo6YmVmb3Jle2NvbnRlbnQ6bm9uZX1bY2RzLXRleHQqPW1lc3NhZ2Vde2ZvbnQtc2l6ZTp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktbWVzc2FnZS1mb250LXNpemUsY2Fs'@; put 'YygxNiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LW1lc3NhZ2UtZm9udC13ZWlnaHQsY2FsYyg0MDAgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO2xpbmUtaGVpZ2h0OnZhcigt'@; put 'LWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1tZXNzYWdlLWxpbmUtaGVpZ2h0LDEuNWVtKTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktbWVzc2FnZS1sZXR0ZXItc3BhY2luZywtLjAxMjVlbSl9W2Nkcy10ZXh0Kj1tZXNzYWdlXTo6YmVmb3Jle2NvbnRlbnQ6IiI7'@; put 'ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi1ib3R0b206Y2FsYygoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCwuMTQ3NWVtKSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1tZXNzYWdlLWxpbmUtaGVpZ2h0LDEuNWVt'@; put 'KSAtIDFlbSkvIDIpKSotMSkgKyAuMDM3ZW0pfVtjZHMtdGV4dCo9bWVzc2FnZV06OmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi10b3A6Y2FsYygoKCgxZW0gLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQs'@; put 'LjE0NzVlbSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYXNjZW5kZXItaGVpZ2h0LC4xNzAzZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXgtaGVpZ2h0LC41MTdlbSkpICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LW1lc3NhZ2UtbGluZS1oZWln'@; put 'aHQsMS41ZW0pIC0gMWVtKS8gMikpKi0xKSAtIC4wNDRlbSl9W2Nkcy10ZXh0Kj1zZWNvbmRhcnlde2ZvbnQtc2l6ZTp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWZvbnQtc2l6ZSxjYWxjKDEzICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTtmb250'@; put 'LXdlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWZvbnQtd2VpZ2h0LDQwMCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY29uZGFyeS1saW5lLWhlaWdodCwxLjIzMDc3ZW0pO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1nbG9i'@; put 'YWwtdHlwb2dyYXBoeS1zZWNvbmRhcnktbGV0dGVyLXNwYWNpbmcsLS4wMDc2OTJlbSl9W2Nkcy10ZXh0Kj1zZWNvbmRhcnldOjpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLWJvdHRvbTpjYWxjKCgodmFyKC0tY2RzLWdsb2JhbC10eXBv'@; put 'Z3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4xNDc1ZW0pICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY29uZGFyeS1saW5lLWhlaWdodCwxLjIzMDc3ZW0pIC0gMWVtKS8gMikpKi0xKSArIC4wMzdlbSl9W2Nkcy10ZXh0Kj1zZWNvbmRhcnldOjphZnRlcntjb250ZW50OiIi'@; put 'O2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tdG9wOmNhbGMoKCgoMWVtIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4xNDc1ZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWFzY2VuZGVyLWhlaWdodCwuMTcwM2VtKSAt'@; put 'IHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS14LWhlaWdodCwuNTE3ZW0pKSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zZWNvbmRhcnktbGluZS1oZWlnaHQsMS4yMzA3N2VtKSAtIDFlbSkvIDIpKSotMSkgLSAuMDQ0ZW0pfVtjZHMtdGV4dH49bGlua117Y29sb3I6'@; put 'dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWxpbmstY29sb3IsdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTcwMCwjMDA3OWFkKSkhaW1wb3J0YW50O3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUhaW1wb3J0YW50O2xpbmUtaGVpZ2h0OmluaGVyaXQhaW1wb3J0YW50O2ZvbnQtc2l6'@; put 'ZTppbmhlcml0IWltcG9ydGFudH1bY2RzLXRleHR+PWxpbmtdOmZvY3Vze291dGxpbmU6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1vdXRsaW5lLEhpZ2hsaWdodCBzb2xpZCAycHgpO291dGxpbmUtb2Zmc2V0OnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24t'@; put 'b3V0bGluZS1vZmZzZXQsMXB4KX1bY2RzLXRleHR+PWxpbmtdOmhvdmVye2NvbG9yOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1saW5rLWNvbG9yLWhvdmVyLHZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS04MDAsIzAwNjA4YSkpIWltcG9ydGFudH1bY2RzLXRleHR+PWxpbmtdOnZp'@; put 'c2l0ZWQ6bm90KFtjZHMtdGV4dH49c3RhdGljXSl7Y29sb3I6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWxpbmstY29sb3ItdmlzaXRlZCx2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWxhdmVuZGVyLTYwMCwjM2I0MGNlKSkhaW1wb3J0YW50fVtjZHMtdGV4dH49bGlua106dmlzaXRlZDpu'@; put 'b3QoW2Nkcy10ZXh0fj1zdGF0aWNdKTpob3Zlcntjb2xvcjp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktbGluay1jb2xvci12aXNpdGVkLWhvdmVyLHZhcigtLWNkcy1nbG9iYWwtY29sb3ItbGF2ZW5kZXItNzAwLCMyNDI5YzIpKSFpbXBvcnRhbnR9QG1lZGlhICgtd2Via2l0LW1pbi1k'@; put 'ZXZpY2UtcGl4ZWwtcmF0aW86MCl7W2Nkcy10ZXh0PWxpbmtdOmZvY3Vze291dGxpbmU6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1vdXRsaW5lLXdlYmtpdCw1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3IpfX1bY2RzLXRleHR+PWNvZGVde2NvbG9yOnZhcigt'@; put 'LWNkcy1hbGlhcy1zdGF0dXMtZGFuZ2VyLHZhcigtLWNkcy1nbG9iYWwtY29sb3ItcmVkLTcwMCwjZTAyMjAwKSk7Zm9udC1mYW1pbHk6bW9ub3NwYWNlfVtjZHMtZGl2aWRlcl17ZGlzcGxheTpibG9jaztoZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMTAwLGNh'@; put 'bGMoMSAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7b3ZlcmZsb3c6aGlkZGVuO2JveC1zaGFkb3c6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItY29sb3IsdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tMjAwLCNjYmQ0ZDgpKSAwIDAgMCB2YXIo'@; put 'LS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0aC0xMDAsY2FsYygxICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKSBpbnNldH1bY2RzLXRleHR+PWxpZ2h0XXtmb250LXdlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtbGlnaHQsMzAw'@; put 'KSFpbXBvcnRhbnR9W2Nkcy10ZXh0fj1qdXN0aWZ5XXt0ZXh0LWFsaWduOmp1c3RpZnkhaW1wb3J0YW50fVtjZHMtdGV4dH49bGVmdF17dGV4dC1hbGlnbjpsZWZ0IWltcG9ydGFudH1bY2RzLXRleHR+PXJpZ2h0XXt0ZXh0LWFsaWduOnJpZ2h0IWltcG9ydGFudH1bY2RzLXRleHR+PWNlbnRl'@; put 'cl17dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50fVtjZHMtdGV4dH49bGhlXXtwYWRkaW5nOi4wNXB4IDB9W2Nkcy10ZXh0fj1saGVdOjpiZWZvcmV7Y29udGVudDoiIjttYXJnaW4tdG9wOi0uMTI0ZW07ZGlzcGxheTpibG9jaztoZWlnaHQ6MH1bY2RzLXRleHR+PWxoZV06OmFmdGVye2Nv'@; put 'bnRlbnQ6IiI7bWFyZ2luLWJvdHRvbTotLjIyMWVtO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjB9W2Nkcy10ZXh0Kj1oMl0sW2Nkcy10ZXh0Kj1oM117Zm9udC1mYW1pbHk6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWhlYWRlci1mb250LWZhbWlseSwgIkNsYXJpdHkgQ2l0eSIsICJBdmVu'@; put 'aXIgTmV4dCIsIHNhbnMtc2VyaWYpO2ZvbnQtc2l6ZToxLjRyZW07Zm9udC13ZWlnaHQ6MjAwO2NvbG9yOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1jb2xvci00MDApO2xpbmUtaGVpZ2h0OjEuNzE0M2VtO2xldHRlci1zcGFjaW5nOi0uMDE3ODU3ZW19W2Nkcy10ZXh0Kj1oMl06OmJl'@; put 'Zm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tYm90dG9tOmNhbGMoKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQsLjE0NzVlbSkgKyBjYWxjKCgxLjcxNDNlbSAtIDFlbSkvIDIpKSotMSkgKyAuMDM3ZW0pfVtj'@; put 'ZHMtdGV4dCo9aDJdOjphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tdG9wOmNhbGMoKCgoMWVtIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4xNDc1ZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3Jh'@; put 'cGh5LWFzY2VuZGVyLWhlaWdodCwuMTcwM2VtKSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS14LWhlaWdodCwuNTE3ZW0pKSArIGNhbGMoKDEuNzE0M2VtIC0gMWVtKS8gMikpKi0xKSAtIC4wNDRlbSl9W2Nkcy10ZXh0Kj1oM117Zm9udC1zaXplOjEuMXJlbTtsaW5lLWhlaWdodDox'@; put 'LjA5MDllbTtsZXR0ZXItc3BhY2luZzotLjAxMzYzNmVtfVtjZHMtdGV4dCo9aDNdOjpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLWJvdHRvbTpjYWxjKCgodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4x'@; put 'NDc1ZW0pICsgY2FsYygoMS4wOTA5ZW0gLSAxZW0pLyAyKSkqLTEpICsgLjAzN2VtKX1bY2RzLXRleHQqPWgzXTo6YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLXRvcDpjYWxjKCgoKDFlbSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBo'@; put 'eS10b3AtZ2FwLWhlaWdodCwuMTQ3NWVtKSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1hc2NlbmRlci1oZWlnaHQsLjE3MDNlbSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHkteC1oZWlnaHQsLjUxN2VtKSkgKyBjYWxjKCgxLjA5MDllbSAtIDFlbSkvIDIpKSotMSkgLSAu'@; put 'MDQ0ZW0pfTpob3N0e2FsbDppbml0aWFsO2Rpc3BsYXk6YmxvY2s7dmlzaWJpbGl0eTppbmhlcml0O2ZvbnQtZmFtaWx5OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgIkNsYXJpdHkgQ2l0eSIsICJBdmVuaXIgTmV4dCIsIHNhbnMtc2VyaWYpO2NvbnRhaW46bGF5'@; put 'b3V0O2JveC1zaXppbmc6Ym9yZGVyLWJveCFpbXBvcnRhbnQ7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmUhaW1wb3J0YW50fSosOmFmdGVyLDpiZWZvcmV7Ym94LXNpemluZzppbmhlcml0IWltcG9ydGFudH1zbG90e2ZvbnQtZmFtaWx5OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1mb250'@; put 'LWZhbWlseSwgIkNsYXJpdHkgQ2l0eSIsICJBdmVuaXIgTmV4dCIsIHNhbnMtc2VyaWYpO2Rpc3BsYXk6Y29udGVudHMhaW1wb3J0YW50fTo6c2xvdHRlZCgqKXtmb250LWZhbWlseTppbmhlcml0O2JveC1zaXppbmc6aW5oZXJpdH06OnNsb3R0ZWQoKik6OnBsYWNlaG9sZGVye2NvbG9yOnZh'@; put 'cigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1jb2xvci0yMDAsdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tNjAwLCM0ZjYxNjkpKX06aG9zdChbX2lzLWFuY2hvcl0pLDpob3N0KFtyb2xlPWJ1dHRvbl0pe2N1cnNvcjpwb2ludGVyIWltcG9ydGFudH06aG9zdChbX2lzLWFu'@; put 'Y2hvcl0pIDo6c2xvdHRlZCgqKSw6aG9zdChbcm9sZT1idXR0b25dKSA6OnNsb3R0ZWQoKil7Y3Vyc29yOnBvaW50ZXIhaW1wb3J0YW50fTpob3N0KFtyb2xlPWJ1dHRvbl1bZGlzYWJsZWRdKXtjdXJzb3I6bm90LWFsbG93ZWQhaW1wb3J0YW50fTpob3N0KFtyb2xlPWJ1dHRvbl1bZGlzYWJs'@; put 'ZWRdKSA6OnNsb3R0ZWQoKil7Y3Vyc29yOm5vdC1hbGxvd2VkIWltcG9ydGFudDtwb2ludGVyLWV2ZW50czpub25lfTpob3N0KFtoaWRkZW5dKSxbaGlkZGVuXXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fTpob3N0KFtoaWRkZW4qPWZhbHNlXSl7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9Omhv'@; put 'c3QoW3JvbGU9ZGlhbG9nXVtoaWRkZW5dKSw6aG9zdChbcm9sZT1kaWFsb2ddW2hpZGRlbl0pIDo6c2xvdHRlZCgqKXtkaXNwbGF5OmJsb2NrIWltcG9ydGFudDt2aXNpYmlsaXR5OmhpZGRlbiFpbXBvcnRhbnR9Omhvc3QoW3JvbGU9ZGlhbG9nXVtoaWRkZW4qPWZhbHNlXSksOmhvc3QoW3Jv'@; put 'bGU9ZGlhbG9nXVtoaWRkZW4qPWZhbHNlXSkgOjpzbG90dGVkKCope3Zpc2liaWxpdHk6dmlzaWJsZSFpbXBvcnRhbnR9Omhvc3QoW19mb2N1c2VkXSkgLmlucHV0LDpob3N0KFtfZm9jdXNlZF0pIFtmb2N1c2FibGVdLDpob3N0KFt0YWJpbmRleD0iMCJdOmZvY3VzKSw6aG9zdChbdGFiaW5k'@; put 'ZXg9IjAiXTpmb2N1cykgW2ZvY3VzYWJsZV0sW3RhYmluZGV4PSIwIl1bZm9jdXNhYmxlXTpmb2N1c3tvdXRsaW5lOkhpZ2hsaWdodCBzb2xpZCAycHg7b3V0bGluZTo1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7b3V0bGluZS1vZmZzZXQ6dmFyKC0tY2RzLWFsaWFzLW9iamVj'@; put 'dC1pbnRlcmFjdGlvbi1vdXRsaW5lLW9mZnNldCwxcHgpfWA7ZnVuY3Rpb24galooYyl7cmV0dXJuYGNhbGMoKCR7Y30gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UpKSAqIDFyZW0pYH1jbGFzcyBFTWV7Y29uc3RydWN0b3IobCxhKXt0aGlzLmZuPWwsdGhpcy5zdWJzY3JpcHRpb25zPWF9dW5z'@; put 'dWJzY3JpYmUoKXtjb25zdCBsPXRoaXMuc3Vic2NyaXB0aW9ucy5pbmRleE9mKHRoaXMpOy0xIT09bCYmdGhpcy5zdWJzY3JpcHRpb25zLnNwbGljZShsLDEpfX1jb25zdCB6Wj1uZXcgY2xhc3MgVE1le2NvbnN0cnVjdG9yKCl7dGhpcy5zdWJzY3JpcHRpb25zPVtdfXN1YnNjcmliZShsKXtj'@; put 'b25zdCBhPW5ldyBFTWUobCx0aGlzLnN1YnNjcmlwdGlvbnMpO3JldHVybiB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChhKSxhfWVtaXQobCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goYT0+YS5mbihsKSl9dG9FdmVudE9ic2VydmFibGUoKXtyZXR1cm4gdGhpc319O3paLmxpc3RlbmVy'@; put 'PWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkNEU19TVEFURV9VUERBVEUiLGM9PnpaLmVtaXQoYy5kZXRhaWwpKTtjbGFzcyBLZntzdGF0aWMgZ2V0IHN0YXRlKCl7cmV0dXJuIF9vZSgpLHdpbmRvdy5DRFMuX3N0YXRlfXN0YXRpYyBnZXRWYWx1ZShsKXtyZXR1cm4gS2Yuc3RhdGVbbF19'@; put 'c3RhdGljIHNldFZhbHVlKGwsYSl7S2Yuc3RhdGVbbF09YX1zdGF0aWMgbG9nKCl7Tk0ubG9nKEpTT04uc3RyaW5naWZ5KEtmLnN0YXRlLG51bGwsMikpfX1LZi5zdGF0ZVVwZGF0ZXM9eloudG9FdmVudE9ic2VydmFibGUoKTtjb25zdCBBTWU9KGMsbCk9PiJtZXRob2QiPT09bC5raW5kJiZs'@; put 'LmRlc2NyaXB0b3ImJiEoInZhbHVlImluIGwuZGVzY3JpcHRvcik/ey4uLmwsZmluaXNoZXIoYSl7YS5jcmVhdGVQcm9wZXJ0eShsLmtleSxjKX19OntraW5kOiJmaWVsZCIsa2V5OlN5bWJvbCgpLHBsYWNlbWVudDoib3duIixkZXNjcmlwdG9yOnt9LG9yaWdpbmFsS2V5Omwua2V5LGluaXRp'@; put 'YWxpemVyKCl7ImZ1bmN0aW9uIj09dHlwZW9mIGwuaW5pdGlhbGl6ZXImJih0aGlzW2wua2V5XT1sLmluaXRpYWxpemVyLmNhbGwodGhpcykpfSxmaW5pc2hlcihhKXthLmNyZWF0ZVByb3BlcnR5KGwua2V5LGMpfX0sa01lPShjLGwsYSk9PntsLmNvbnN0cnVjdG9yLmNyZWF0ZVByb3BlcnR5'@; put 'KGEsYyl9O2Z1bmN0aW9uIG5sZShjKXtyZXR1cm4obCxhKT0+dm9pZCAwIT09YT9rTWUoYyxsLGEpOkFNZShjLGwpfWZ1bmN0aW9uIGFsZShjLGwpe3N3aXRjaChsJiZsLnR5cGUpe2Nhc2UgQXJyYXk6Y2FzZSBPYmplY3Q6cmV0dXJue3JlZmxlY3Q6ITEsLi4ubH07Y2FzZSBTdHJpbmc6cmV0'@; put 'dXJue3JlZmxlY3Q6ITAsYXR0cmlidXRlOlc4KGMpLGNvbnZlcnRlcjp7dG9BdHRyaWJ1dGU6YT0+YXx8bnVsbH0sLi4ubH07Y2FzZSBOdW1iZXI6cmV0dXJue3JlZmxlY3Q6ITAsYXR0cmlidXRlOlc4KGMpLC4uLmx9O2Nhc2UgQm9vbGVhbjpyZXR1cm57cmVmbGVjdDohMCxhdHRyaWJ1dGU6'@; put 'VzgoYyksY29udmVydGVyOnt0b0F0dHJpYnV0ZTphPT5hPyIiOm51bGwsZnJvbUF0dHJpYnV0ZTphPT5mdW5jdGlvbiBPTWUoYyl7cmV0dXJuIG51bGwhPWMmJiIiK2MhPSJmYWxzZSJ9KGEpfSwuLi5sfTtjYXNlIERhdGU6cmV0dXJue3JlZmxlY3Q6ITEsY29udmVydGVyOntmcm9tQXR0cmli'@; put 'dXRlOmE9Pm5ldyBEYXRlKGEpfSwuLi5sfTtkZWZhdWx0OnJldHVybnsuLi5sfX19ZnVuY3Rpb24gdG0oYyl7cmV0dXJuKGwsYSk9PihjPy5yZXF1aXJlZCYmZnVuY3Rpb24gUE1lKGMsbCxhKXtjb25zdCBkPWMuZmlyc3RVcGRhdGVkO2MuZmlyc3RVcGRhdGVkPWZ1bmN0aW9uKGgpe2lmKGEm'@; put 'JmEucmVxdWlyZWQmJkhNKHRoaXNbbF0pKXtjb25zdCBmPWEucmVxdWlyZWRNZXNzYWdlfHxmdW5jdGlvbih2PSJ3YXJuaW5nIixNLEkpe2NvbnN0IEc9SS50b0xvY2FsZUxvd2VyQ2FzZSgpO3JldHVybmAke3ZvZSh2KX06ICR7TX0gaXMgcmVxdWlyZWQgdG8gdXNlICR7R30gY29tcG9uZW50'@; put 'LiBTZXQgdGhlIEpTIFByb3BlcnR5IG9yIEhUTUwgQXR0cmlidXRlLlxuXG5gKyhob2UoKT9gQW5ndWxhcjogPCR7R30gWyR7TX1dPSIuLi4iPjwvJHtHfT5cbmA6IiIpKyhwb2UoKT9gVnVlOiA8JHtHfSA6JHtNfT0iLi4uIj48LyR7R30+XG5gOiIiKSsoZm9lKCk/YFJlYWN0OiA8JHtmdW5j'@; put 'dGlvbiBPU2UoYyl7cmV0dXJuIHZvZShmdW5jdGlvbiBMU2UoYyl7cmV0dXJuIGMuc3BsaXQoIi0iKS5tYXAoKGwsYSk9PmE/bC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStsLnNsaWNlKDEpLnRvTG93ZXJDYXNlKCk6bCkuam9pbigiIil9KGMpKX0oRyl9ICR7cmU9TSxyZS5zdGFydHNXaXRo'@; put 'KCJhcmlhIik/VzgocmUpOnJlfT17Li4ufSAvPlxuYDoiIikrYEhUTUw6IDwke0d9ICR7VzgoTSl9PSIuLi4iPjwvJHtHfT5cbkphdmFTY3JpcHQ6IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyR7R30nKS4ke019ID0gJy4uLic7XG5cbmA7dmFyIHJlfShhLnJlcXVpcmVkLGwsdGhpcy50YWdO'@; put 'YW1lKTtpZigiZXJyb3IiPT09YS5yZXF1aXJlZCl0aHJvdyBFcnJvcihmKTtOTS53YXJuKGYsdGhpcyl9ZCYmZC5jYWxsKHRoaXMsaCl9fShsLGEsYyksbmxlKGFsZShhLGMpKShsLGEpKX12YXIgVk1lPVJvZWBAa2V5ZnJhbWVzIGZhZGVJbkFuZE91dHswJSx0b3tvcGFjaXR5OjB9NzUle29w'@; put 'YWNpdHk6MX19Omhvc3R7LS1jb2xvcjpjdXJyZW50Q29sb3I7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyxjYWxjKDE2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTt3aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcs'@; put 'Y2FsYygxNiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7bWluLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcsY2FsYygxNiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7bWluLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyxjYWxj'@; put 'KDE2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTttYXJnaW46MDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7ZmlsbDp2YXIoLS1jb2xvcik7Y29sb3I6dmFyKC0tY29sb3IpO2NvbnRhaW46c3RyaWN0O2N1cnNvcjppbmhlcml0fXN2Z3tkaXNwbGF5OmJsb2NrfTpob3N0KFtz'@; put 'aXplKj14c10pe2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUsY2FsYyg4ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTt3aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUsY2FsYyg4ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTttaW4t'@; put 'aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSxjYWxjKDggKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO21pbi13aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUsY2FsYyg4ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKX06aG9zdChbc2l6'@; put 'ZSo9c21dKXtoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03LGNhbGMoMTYgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO3dpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyxjYWxjKDE2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTttaW4t'@; put 'aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyxjYWxjKDE2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTttaW4td2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03LGNhbGMoMTYgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpfTpob3N0KFtz'@; put 'aXplKj1tZF0pe2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTksY2FsYygyNCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05LGNhbGMoMjQgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO21p'@; put 'bi1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05LGNhbGMoMjQgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO21pbi13aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTksY2FsYygyNCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSl9Omhvc3Qo'@; put 'W3NpemUqPWxnXSl7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTEsY2FsYygzNiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMSxjYWxjKDM2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkp'@; put 'KTttaW4taGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTEsY2FsYygzNiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7bWluLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTEsY2FsYygzNiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSl9'@; put 'Omhvc3QoW3NpemUqPXhsXSl7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTIsY2FsYyg0OCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMixjYWxjKDQ4ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFz'@; put 'ZSwyMCkpKTttaW4taGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTIsY2FsYyg0OCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7bWluLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTIsY2FsYyg0OCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2Us'@; put 'MjApKSl9Omhvc3QoW3NpemUqPXh4bF0pe2hlaWdodDpjYWxjKHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTMsY2FsYyg2NCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUsY2FsYyg4ICogMXJlbSAvIHZhcigtLWNkcy1nbG9i'@; put 'YWwtYmFzZSwyMCkpKSk7d2lkdGg6Y2FsYyh2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEzLGNhbGMoNjQgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpIC0gdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01LGNhbGMoOCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjAp'@; put 'KSkpO21pbi1oZWlnaHQ6Y2FsYyh2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEzLGNhbGMoNjQgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpIC0gdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01LGNhbGMoOCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSkpO21p'@; put 'bi13aWR0aDpjYWxjKHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTMsY2FsYyg2NCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUsY2FsYyg4ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKSl9Omhvc3QoW3Np'@; put 'emUqPWZpdF0pe2hlaWdodDphdXRvO3dpZHRoOmF1dG87Y29udGFpbjpsYXlvdXR9Omhvc3QoW3N0YXR1cz1zdWNjZXNzXSl7LS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLXN1Y2Nlc3MsIHZhcigtLWNkcy1nbG9iYWwtY29sb3ItZ3JlZW4tNzAwLCAjNDI4MTBlKSl9Omhvc3QoW3N0'@; put 'YXR1cz1kYW5nZXJdKXstLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtZGFuZ2VyLCB2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXJlZC03MDAsICNlMDIyMDApKX06aG9zdChbc3RhdHVzPXdhcm5pbmddKXstLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtd2FybmluZy1kYXJrLCB2'@; put 'YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLW9jaHJlLTgwMCwgI2EzNjUwMCkpfTpob3N0KFtzdGF0dXM9aW5mb10pey0tY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1pbmZvLCB2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtNzAwLCAjMDA3OWFkKSl9Omhvc3QoW3N0YXR1cz1uZXV0cmFs'@; put 'XSl7LS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLW5ldXRyYWwsIHZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTYwMCwgIzRmNjE2OSkpfTpob3N0KFtpbnZlcnNlXSl7LS1jb2xvcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0yMDAsICNjYmQ0'@; put 'ZDgpfTpob3N0KFtkaXJlY3Rpb249dXBdKXt0cmFuc2Zvcm06cm90YXRlKDApfTpob3N0KFtkaXJlY3Rpb249ZG93bl0pe3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX06aG9zdChbZGlyZWN0aW9uPXJpZ2h0XSl7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9Omhvc3QoW2RpcmVjdGlvbj1sZWZ0'@; put 'XSl7dHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpfTpob3N0KFtmbGlwPWhvcml6b250YWxdKXt0cmFuc2Zvcm06c2NhbGUoLTEpIHJvdGF0ZVgoMTgwZGVnKX06aG9zdChbZmxpcD12ZXJ0aWNhbF0pe3RyYW5zZm9ybTpzY2FsZSgtMSkgcm90YXRlWSgxODBkZWcpfS5hbGVydCwuYmFkZ2V7Zmls'@; put 'bDp2YXIoLS1iYWRnZS1jb2xvcix2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWRhbmdlcix2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXJlZC03MDAsI2UwMjIwMCkpKX06aG9zdChbYmFkZ2U9c3VjY2Vzc10pey0tYmFkZ2UtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1zdWNjZXNzLCB2YXIo'@; put 'LS1jZHMtZ2xvYmFsLWNvbG9yLWdyZWVuLTcwMCwgIzQyODEwZSkpfTpob3N0KFtiYWRnZT1kYW5nZXJdKXstLWJhZGdlLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtZGFuZ2VyLCB2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXJlZC03MDAsICNlMDIyMDApKX06aG9zdChbYmFkZ2UqPXdh'@; put 'cm5pbmddKXstLWJhZGdlLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtd2FybmluZy1kYXJrLCB2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLW9jaHJlLTgwMCwgI2EzNjUwMCkpfTpob3N0KFtiYWRnZT1pbmhlcml0XSl7LS1iYWRnZS1jb2xvcjpjdXJyZW50Q29sb3J9Omhvc3QoW2JhZGdl'@; put 'PWluZm9dKXstLWJhZGdlLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtaW5mbywgdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTcwMCwgIzAwNzlhZCkpfTpob3N0KFtiYWRnZT1uZXV0cmFsXSl7LS1iYWRnZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLW5ldXRyYWwsIHZh'@; put 'cigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTYwMCwgIzRmNjE2OSkpfTpob3N0KFtiYWRnZT1pbmhlcml0LXRyaWFuZ2xlXSl7LS1iYWRnZS1jb2xvcjpjdXJyZW50Q29sb3J9Omhvc3QoW2JhZGdlXVtpbnZlcnNlXSl7LS1iYWRnZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3Rh'@; put 'dHVzLWRhbmdlciwgdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1yZWQtNzAwLCAjZTAyMjAwKSl9Omhvc3QoW2JhZGdlPXN1Y2Nlc3NdW2ludmVyc2VdKXstLWJhZGdlLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtc3VjY2VzcywgdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ncmVlbi03MDAs'@; put 'ICM0MjgxMGUpKX06aG9zdChbYmFkZ2UqPXdhcm5pbmddW2ludmVyc2VdKXstLWJhZGdlLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtd2FybmluZy1kYXJrLCB2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLW9jaHJlLTgwMCwgI2EzNjUwMCkpfTpob3N0KFtiYWRnZSo9aW5oZXJpdF1baW52'@; put 'ZXJzZV0pey0tYmFkZ2UtY29sb3I6Y3VycmVudENvbG9yfTpob3N0KFtiYWRnZT1pbmZvXVtpbnZlcnNlXSl7LS1iYWRnZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWluZm8sIHZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS03MDAsICMwMDc5YWQpKX0uY2RzLWludGVybmFsLWRv'@; put 'dC0xe2FuaW1hdGlvbjpmYWRlSW5BbmRPdXQgMS44cyBlYXNlLWluIDBzIGluZmluaXRlfS5jZHMtaW50ZXJuYWwtZG90LTJ7YW5pbWF0aW9uOmZhZGVJbkFuZE91dCAxLjhzIGVhc2Utb3V0IC40MjJzIGluZmluaXRlfS5jZHMtaW50ZXJuYWwtZG90LTN7YW5pbWF0aW9uOmZhZGVJbkFuZE91'@; put 'dCAxLjhzIGVhc2Utb3V0IC42NzVzIGluZmluaXRlfUBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbil7LmNkcy1pbnRlcm5hbC1kb3QtMSwuY2RzLWludGVybmFsLWRvdC0yLC5jZHMtaW50ZXJuYWwtZG90LTN7YW5pbWF0aW9uOm5vbmV9fWA7Y29uc3QgQk1lPVsidW5rbm93biIse291'@; put 'dGxpbmU6JzxjaXJjbGUgY2xhc3M9ImNkcy1pbnRlcm5hbC1kb3QtMyIgY3g9IjMxLjEiIGN5PSIxOCIgcj0iMi45Ii8+PGNpcmNsZSBjbGFzcz0iY2RzLWludGVybmFsLWRvdC0yIiBjeD0iMTgiIGN5PSIxOCIgcj0iMi45Ii8+PGNpcmNsZSBjbGFzcz0iY2RzLWludGVybmFsLWRvdC0xIiBj'@; put 'eD0iNC45IiBjeT0iMTgiIHI9IjIuOSIvPid9XTtjbGFzcyBFb3tzdGF0aWMgZ2V0IHJlZ2lzdHJ5KCl7cmV0dXJue3Vua25vd246Qk1lWzFdLC4uLktmLnN0YXRlLmljb25SZWdpc3RyeX19c3RhdGljIGFkZEljb25zKC4uLmwpe0tmLnN0YXRlLmljb25SZWdpc3RyeT17Li4uS2Yuc3RhdGUu'@; put 'aWNvblJlZ2lzdHJ5LC4uLk9iamVjdC5mcm9tRW50cmllcyhsLmZpbHRlcigoW2FdKT0+IUVvLnJlZ2lzdHJ5W2FdKSl9fXN0YXRpYyBhZGRBbGlhc2VzKC4uLmwpe2NvbnN0IGE9bC5maWx0ZXIoKFtkXSk9PkVvLnJlZ2lzdHJ5W2RdKS5mbGF0TWFwKChbZCxoXSk9PmgubWFwKGY9PltmLEVv'@; put 'LnJlZ2lzdHJ5W2RdXSkpO0tmLnN0YXRlLmljb25SZWdpc3RyeT17Li4uS2Yuc3RhdGUuaWNvblJlZ2lzdHJ5LC4uLk9iamVjdC5mcm9tRW50cmllcyhhKX19c3RhdGljIGdldEljb25OYW1lRnJvbVNoYXBlKGwpe3JldHVybiBsWzBdfX12YXIgZnAsYztmdW5jdGlvbiBaTWUoYyxsKXtsZXQg'@; put 'YT0iIjtzd2l0Y2goZnVuY3Rpb24gak1lKGMpe3N3aXRjaCghMCl7Y2FzZSBITShjKTpyZXR1cm4gZnAuTmlsU2l6ZVZhbHVlO2Nhc2UgZnVuY3Rpb24gc2xlKGMpe3JldHVyblsieHhzIiwieHMiLCJzbSIsIm1kIiwibGciLCJ4bCIsInh4bCJdLmluZGV4T2YoYyk+LTF9KGMpOnJldHVybiBm'@; put 'cC5WYWxpZFNpemVTdHJpbmc7Y2FzZSBmdW5jdGlvbiByb2UoYyl7cmV0dXJuIGJaKGMpJiYhbm9lKGMudHJpbSgpKSYmK2M9PStjfShjKTpyZXR1cm4gZnAuVmFsaWROdW1lcmljU3RyaW5nO2RlZmF1bHQ6cmV0dXJuIGZwLkJhZFNpemVWYWx1ZX19KGZ1bmN0aW9uIHpNZShjKXtyZXR1cm4g'@; put 'SE0oYyk/IiI6ZnVuY3Rpb24gUFNlKGMsbCxhPSIiKXtjb25zdCBkPWMuc3BsaXQoIiAiKSxoPSIiPT09YT9kLmZpbHRlcihmPT5mIT09bCk6ZC5tYXAoZj0+Zj09PWw/YTpmKTtyZXR1cm4gaC5sZW5ndGg+MD9oLmpvaW4oIiAiKToiIn0oYywiZml0Iil9KGwpKSl7Y2FzZSBmcC5WYWxpZE51'@; put 'bWVyaWNTdHJpbmc6cmV0dXJuIGE9aloocGFyc2VJbnQobCkpLHZvaWQgZnVuY3Rpb24gTU1lKGMsLi4ubCl7bC5mb3JFYWNoKChbYSxkXSk9PntjLnN0eWxlW2FdPWR9KX0oYywuLi5mdW5jdGlvbiBVTWUoYyxsKXtyZXR1cm4hRk0oYykmJmMuaW5kZXhPZigiZml0Iik+LTE/W1sid2lkdGgi'@; put 'LCJhdXRvIl0sWyJoZWlnaHQiLCJhdXRvIl0sWyJtaW4td2lkdGgiLGxdLFsibWluLWhlaWdodCIsbF1dOltbIndpZHRoIixsXSxbImhlaWdodCIsbF0sWyJtaW4td2lkdGgiLGxdLFsibWluLWhlaWdodCIsbF1dfShsLGEpKTtjYXNlIGZwLlZhbGlkU2l6ZVN0cmluZzpjYXNlIGZwLk5pbFNp'@; put 'emVWYWx1ZTpyZXR1cm4gdm9pZCBmdW5jdGlvbiB4TWUoYywuLi5sKXtsLmZvckVhY2goYT0+e2Muc3R5bGVbYV09IiJ9KX0oYywid2lkdGgiLCJoZWlnaHQiLCJtaW4td2lkdGgiLCJtaW4taGVpZ2h0Iik7ZGVmYXVsdDpyZXR1cm59fWZ1bmN0aW9uIFVaKGMpe3JldHVybiBjLmJhZGdlJiYo'@; put 'ImluaGVyaXQtdHJpYW5nbGUiPT09Yy5iYWRnZXx8Indhcm5pbmctdHJpYW5nbGUiPT09Yy5iYWRnZSl9KGM9ZnB8fChmcD17fSkpLkJhZFNpemVWYWx1ZT0iYmFkLXZhbHVlIixjLlZhbGlkU2l6ZVN0cmluZz0idmFsdWUtaXMtc3RyaW5nIixjLlZhbGlkTnVtZXJpY1N0cmluZz0idmFsdWUt'@; put 'aXMtbnVtZXJpYyIsYy5OaWxTaXplVmFsdWU9InZhbHVlLWlzLW5pbCI7Y2xhc3MgWGYgZXh0ZW5kcyBaTXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fc2hhcGU9InVua25vd24iLHRoaXMuc29saWQ9ITEsdGhpcy5pbnZlcnNlPSExfXN0YXRpYyBnZXQgc3R5bGVz'@; put 'KCl7cmV0dXJuW0NNZSxWTWVdfWdldCBzaGFwZSgpe3JldHVybiB0aGlzLl9zaGFwZX1zZXQgc2hhcGUobCl7aWYoZnVuY3Rpb24gZ1NlKGMsbCl7cmV0dXJuIUhNKGMpJiZhb2UoYyxsKX0obCx0aGlzLl9zaGFwZSkpe2NvbnN0IGE9dGhpcy5fc2hhcGU7dGhpcy5fc2hhcGU9bCx0aGlzLnJl'@; put 'cXVlc3RVcGRhdGUoInNoYXBlIixhKX19Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy5fc2l6ZX1zZXQgc2l6ZShsKXtpZihmdW5jdGlvbiBwU2UoYyxsKXtyZXR1cm4gZnVuY3Rpb24gZlNlKGMpe3JldHVybiBXc2UoU3RyaW5nLGMpfHxGTShjKX0oYykmJmFvZShjLGwpfShsLHRoaXMuX3NpemUp'@; put 'KXtjb25zdCBhPXRoaXMuX3NpemU7dGhpcy5fc2l6ZT1sLFpNZSh0aGlzLGwpLHRoaXMucmVxdWVzdFVwZGF0ZSgic2l6ZSIsYSl9fXVwZGF0ZWQobCl7aWYobC5oYXMoImlubmVyT2Zmc2V0IikmJnRoaXMuaW5uZXJPZmZzZXQ+MCl7Y29uc3QgYT1qWigtMSp0aGlzLmlubmVyT2Zmc2V0KSxk'@; put 'PWBjYWxjKDEwMCUgKyAke2paKDIqdGhpcy5pbm5lck9mZnNldCl9KWA7dGhpcy5zdmcuc3R5bGUud2lkdGg9ZCx0aGlzLnN2Zy5zdHlsZS5oZWlnaHQ9ZCx0aGlzLnN2Zy5zdHlsZS5tYXJnaW49YCR7YX0gMCAwICR7YX1gfX1maXJzdFVwZGF0ZWQobCl7aWYoc3VwZXIuZmlyc3RVcGRhdGVk'@; put 'KGwpLHRoaXMuaXNDb25uZWN0ZWQpe2xldCBhPSJ1bmtub3duIjt0aGlzLnN1YnNjcmlwdGlvbj1LZi5zdGF0ZVVwZGF0ZXMuc3Vic2NyaWJlKGQ9PnsiaWNvblJlZ2lzdHJ5Ij09PWQua2V5JiZFby5yZWdpc3RyeVt0aGlzLnNoYXBlXSYmYSE9PXRoaXMuc2hhcGUmJihhPXRoaXMuc2hhcGUs'@; put 'dGhpcy5yZXF1ZXN0VXBkYXRlKCJzaGFwZSIpKX0pfX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCl9cmVuZGVyKCl7cmV0dXJuIGJaKEVvLnJlZ2lzdHJ5W3RoaXMuc2hhcGVdKT92TWVg'@; put 'PHNwYW4gLmlubmVySFRNTD0iJHtFby5yZWdpc3RyeVt0aGlzLnNoYXBlXX0iPjwvc3Bhbj5gOnlNZWA8c3ZnIC5pbm5lckhUTUw9IiR7ZnVuY3Rpb24gWU1lKGMpe2NvbnN0IGw9RW8ucmVnaXN0cnlbYy5zaGFwZV0/P0VvLnJlZ2lzdHJ5LnVua25vd247bGV0IGE9Yy5zb2xpZCYmbC5zb2xp'@; put 'ZD9sLnNvbGlkOmwub3V0bGluZTtyZXR1cm4gYy5iYWRnZSYmIVVaKGMpJiYoYT1jLnNvbGlkP2wuc29saWRCYWRnZWQ/P2E6bC5vdXRsaW5lQmFkZ2VkPz9hKSxVWihjKSYmKGE9Yy5zb2xpZD9sLnNvbGlkQWxlcnRlZD8/YTpsLm91dGxpbmVBbGVydGVkPz9hKSxhfSh0aGlzKStmdW5jdGlv'@; put 'biBXTWUoYyl7bGV0IGw9IiI7cmV0dXJuIGMuYmFkZ2UmJlVaKGMpP2w9JzxwYXRoIGQ9Ik0yNi44NSAxLjE0TDIxLjEzIDExYTEuMjggMS4yOCAwIDAwMS4xIDJoMTEuNDVhMS4yOCAxLjI4IDAgMDAxLjEtMmwtNS43Mi05Ljg2YTEuMjggMS4yOCAwIDAwLTIuMjEgMHoiIGNsYXNzPSJhbGVy'@; put 'dCIgLz4nOmMuYmFkZ2UmJihsPSc8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJiYWRnZSIgLz4nKSxsfSh0aGlzKX0iIHZpZXdCb3g9IjAgMCAzNiAzNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zdmc+YH19ZnVu'@; put 'Y3Rpb24gV00oYyl7cmV0dXJuISFjJiYoYyBpbnN0YW5jZW9mIFF0fHxLZShjLmxpZnQpJiZLZShjLnN1YnNjcmliZSkpfSRmKFt0bSh7dHlwZTpTdHJpbmd9KV0sWGYucHJvdG90eXBlLCJzaGFwZSIsbnVsbCksJGYoW3RtKHt0eXBlOlN0cmluZ30pXSxYZi5wcm90b3R5cGUsInNpemUiLG51'@; put 'bGwpLCRmKFt0bSh7dHlwZTpTdHJpbmd9KV0sWGYucHJvdG90eXBlLCJkaXJlY3Rpb24iLHZvaWQgMCksJGYoW3RtKHt0eXBlOlN0cmluZ30pXSxYZi5wcm90b3R5cGUsImZsaXAiLHZvaWQgMCksJGYoW3RtKHt0eXBlOkJvb2xlYW59KV0sWGYucHJvdG90eXBlLCJzb2xpZCIsdm9pZCAwKSwk'@; put 'ZihbdG0oe3R5cGU6U3RyaW5nfSldLFhmLnByb3RvdHlwZSwic3RhdHVzIix2b2lkIDApLCRmKFt0bSh7dHlwZTpCb29sZWFufSldLFhmLnByb3RvdHlwZSwiaW52ZXJzZSIsdm9pZCAwKSwkZihbdG0oe3R5cGU6U3RyaW5nfSldLFhmLnByb3RvdHlwZSwiYmFkZ2UiLHZvaWQgMCksJGYoW2Z1'@; put 'bmN0aW9uIEZNZShjKXtyZXR1cm4obCxhKT0+e2NvbnN0IGQ9YWxlKGEsYyk7cmV0dXJuIGQmJihkLnJlZmxlY3Q9ISFjPy5yZWZsZWN0JiZjLnJlZmxlY3QsZC5yZWZsZWN0JiYhYz8uYXR0cmlidXRlJiYoZC5hdHRyaWJ1dGU9Il8iK1c4KGEpKSksbmxlKGQpKGwsYSl9fSh7dHlwZTpOdW1i'@; put 'ZXJ9KV0sWGYucHJvdG90eXBlLCJpbm5lck9mZnNldCIsdm9pZCAwKSwkZihbZnVuY3Rpb24gTk1lKGMsbCl7cmV0dXJuKCh7ZmluaXNoZXI6YyxkZXNjcmlwdG9yOmx9KT0+KGEsZCk9Pnt2YXIgaDtpZih2b2lkIDA9PT1kKXtjb25zdCBmPW51bGwhPT0oaD1hLm9yaWdpbmFsS2V5KSYmdm9p'@; put 'ZCAwIT09aD9oOmEua2V5LHY9bnVsbCE9bD97a2luZDoibWV0aG9kIixwbGFjZW1lbnQ6InByb3RvdHlwZSIsa2V5OmYsZGVzY3JpcHRvcjpsKGEua2V5KX06ey4uLmEsa2V5OmZ9O3JldHVybiBudWxsIT1jJiYodi5maW5pc2hlcj1mdW5jdGlvbihNKXtjKE0sZil9KSx2fXtjb25zdCBmPWEu'@; put 'Y29uc3RydWN0b3I7dm9pZCAwIT09bCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsZCxsKGQpKSxjPy4oZixkKX19KSh7ZGVzY3JpcHRvcjphPT57Y29uc3QgZD17Z2V0KCl7dmFyIGgsZjtyZXR1cm4gbnVsbCE9PShmPW51bGw9PT0oaD10aGlzLnJlbmRlclJvb3QpfHx2b2lkIDA9PT1oP3Zv'@; put 'aWQgMDpoLnF1ZXJ5U2VsZWN0b3IoYykpJiZ2b2lkIDAhPT1mP2Y6bnVsbH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9O2lmKGwpe2NvbnN0IGg9InN5bWJvbCI9PXR5cGVvZiBhP1N5bWJvbCgpOiJfXyIrYTtkLmdldD1mdW5jdGlvbigpe3ZhciBmLHY7cmV0dXJuIHZvaWQgMD09'@; put 'PXRoaXNbaF0mJih0aGlzW2hdPW51bGwhPT0odj1udWxsPT09KGY9dGhpcy5yZW5kZXJSb290KXx8dm9pZCAwPT09Zj92b2lkIDA6Zi5xdWVyeVNlbGVjdG9yKGMpKSYmdm9pZCAwIT09dj92Om51bGwpLHRoaXNbaF19fXJldHVybiBkfX0pfSgic3ZnIildLFhmLnByb3RvdHlwZSwic3ZnIix2'@; put 'b2lkIDApLGZ1bmN0aW9uIEJTZShjLGwpe2NvZSgpJiZ1b2UoWyJjdXN0b21FbGVtZW50cyJdKSYmVlNlKGMsbCx3aW5kb3cuY3VzdG9tRWxlbWVudHMpfSgiY2RzLWljb24iLFhmKTtjb25zdCBaWj1jPT5jJiYibnVtYmVyIj09dHlwZW9mIGMubGVuZ3RoJiYiZnVuY3Rpb24iIT10eXBlb2Yg'@; put 'YztmdW5jdGlvbiBvbGUoYyl7cmV0dXJuIEtlKGM/LnRoZW4pfWZ1bmN0aW9uIGxsZShjKXtyZXR1cm4gS2UoY1tkaV0pfWZ1bmN0aW9uIGNsZShjKXtyZXR1cm4gU3ltYm9sLmFzeW5jSXRlcmF0b3ImJktlKGM/LltTeW1ib2wuYXN5bmNJdGVyYXRvcl0pfWZ1bmN0aW9uIHVsZShjKXtyZXR1'@; put 'cm4gbmV3IFR5cGVFcnJvcihgWW91IHByb3ZpZGVkICR7bnVsbCE9PWMmJiJvYmplY3QiPT10eXBlb2YgYz8iYW4gaW52YWxpZCBvYmplY3QiOmAnJHtjfSdgfSB3aGVyZSBhIHN0cmVhbSB3YXMgZXhwZWN0ZWQuIFlvdSBjYW4gcHJvdmlkZSBhbiBPYnNlcnZhYmxlLCBQcm9taXNlLCBSZWFk'@; put 'YWJsZVN0cmVhbSwgQXJyYXksIEFzeW5jSXRlcmFibGUsIG9yIEl0ZXJhYmxlLmApfWNvbnN0IGRsZT1mdW5jdGlvbiBRTWUoKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3I/U3ltYm9sLml0ZXJhdG9yOiJAQGl0ZXJhdG9yIn0oKTtmdW5jdGlvbiBo'@; put 'bGUoYyl7cmV0dXJuIEtlKGM/LltkbGVdKX1mdW5jdGlvbiBmbGUoYyl7cmV0dXJuIGZ1bmN0aW9uIE1vZShjLGwsYSl7aWYoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpO3ZhciBoLGQ9YS5h'@; put 'cHBseShjLGx8fFtdKSxmPVtdO3JldHVybiBoPU9iamVjdC5jcmVhdGUoKCJmdW5jdGlvbiI9PXR5cGVvZiBBc3luY0l0ZXJhdG9yP0FzeW5jSXRlcmF0b3I6T2JqZWN0KS5wcm90b3R5cGUpLE0oIm5leHQiKSxNKCJ0aHJvdyIpLE0oInJldHVybiIsZnVuY3Rpb24gdihFZSl7cmV0dXJuIGZ1'@; put 'bmN0aW9uKEJlKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKEJlKS50aGVuKEVlLHVlKX19KSxoW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxoO2Z1bmN0aW9uIE0oRWUsQmUpe2RbRWVdJiYoaFtFZV09ZnVuY3Rpb24oR2Upe3JldHVybiBuZXcgUHJvbWlz'@; put 'ZShmdW5jdGlvbihzdCxwdCl7Zi5wdXNoKFtFZSxHZSxzdCxwdF0pPjF8fEkoRWUsR2UpfSl9LEJlJiYoaFtFZV09QmUoaFtFZV0pKSl9ZnVuY3Rpb24gSShFZSxCZSl7dHJ5eyFmdW5jdGlvbiBHKEVlKXtFZS52YWx1ZSBpbnN0YW5jZW9mIGVtP1Byb21pc2UucmVzb2x2ZShFZS52YWx1ZS52'@; put 'KS50aGVuKHJlLHVlKTp5ZShmWzBdWzJdLEVlKX0oZFtFZV0oQmUpKX1jYXRjaChHZSl7eWUoZlswXVszXSxHZSl9fWZ1bmN0aW9uIHJlKEVlKXtJKCJuZXh0IixFZSl9ZnVuY3Rpb24gdWUoRWUpe0koInRocm93IixFZSl9ZnVuY3Rpb24geWUoRWUsQmUpe0VlKEJlKSxmLnNoaWZ0KCksZi5s'@; put 'ZW5ndGgmJkkoZlswXVswXSxmWzBdWzFdKX19KHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKigpe2NvbnN0IGE9Yy5nZXRSZWFkZXIoKTt0cnl7Zm9yKDs7KXtjb25zdHt2YWx1ZTpkLGRvbmU6aH09eWllbGQgZW0oYS5yZWFkKCkpO2lmKGgpcmV0dXJuIHlpZWxkIGVtKHZvaWQgMCk7eWllbGQg'@; put 'eWllbGQgZW0oZCl9fWZpbmFsbHl7YS5yZWxlYXNlTG9jaygpfX0pfWZ1bmN0aW9uIHBsZShjKXtyZXR1cm4gS2UoYz8uZ2V0UmVhZGVyKX1mdW5jdGlvbiBvMShjKXtpZihjIGluc3RhbmNlb2YgUXQpcmV0dXJuIGM7aWYobnVsbCE9Yyl7aWYobGxlKGMpKXJldHVybiBmdW5jdGlvbiBleGUo'@; put 'Yyl7cmV0dXJuIG5ldyBRdChsPT57Y29uc3QgYT1jW2RpXSgpO2lmKEtlKGEuc3Vic2NyaWJlKSlyZXR1cm4gYS5zdWJzY3JpYmUobCk7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJvdmlkZWQgb2JqZWN0IGRvZXMgbm90IGNvcnJlY3RseSBpbXBsZW1lbnQgU3ltYm9sLm9ic2VydmFibGUiKX0p'@; put 'fShjKTtpZihaWihjKSlyZXR1cm4gZnVuY3Rpb24gdHhlKGMpe3JldHVybiBuZXcgUXQobD0+e2ZvcihsZXQgYT0wO2E8Yy5sZW5ndGgmJiFsLmNsb3NlZDthKyspbC5uZXh0KGNbYV0pO2wuY29tcGxldGUoKX0pfShjKTtpZihvbGUoYykpcmV0dXJuIGZ1bmN0aW9uIG54ZShjKXtyZXR1cm4g'@; put 'bmV3IFF0KGw9PntjLnRoZW4oYT0+e2wuY2xvc2VkfHwobC5uZXh0KGEpLGwuY29tcGxldGUoKSl9LGE9PmwuZXJyb3IoYSkpLnRoZW4obnVsbCxJaSl9KX0oYyk7aWYoY2xlKGMpKXJldHVybiBnbGUoYyk7aWYoaGxlKGMpKXJldHVybiBmdW5jdGlvbiByeGUoYyl7cmV0dXJuIG5ldyBRdChs'@; put 'PT57Zm9yKGNvbnN0IGEgb2YgYylpZihsLm5leHQoYSksbC5jbG9zZWQpcmV0dXJuO2wuY29tcGxldGUoKX0pfShjKTtpZihwbGUoYykpcmV0dXJuIGZ1bmN0aW9uIGl4ZShjKXtyZXR1cm4gZ2xlKGZsZShjKSl9KGMpfXRocm93IHVsZShjKX1mdW5jdGlvbiBnbGUoYyl7cmV0dXJuIG5ldyBR'@; put 'dChsPT57KGZ1bmN0aW9uIGF4ZShjLGwpe3ZhciBhLGQsaCxmO3JldHVybiBmdW5jdGlvbiBDb2UoYyxsLGEsZCl7cmV0dXJuIG5ldyhhfHwoYT1Qcm9taXNlKSkoZnVuY3Rpb24oZix2KXtmdW5jdGlvbiBNKHJlKXt0cnl7RyhkLm5leHQocmUpKX1jYXRjaCh1ZSl7dih1ZSl9fWZ1bmN0aW9u'@; put 'IEkocmUpe3RyeXtHKGQudGhyb3cocmUpKX1jYXRjaCh1ZSl7dih1ZSl9fWZ1bmN0aW9uIEcocmUpe3JlLmRvbmU/ZihyZS52YWx1ZSk6ZnVuY3Rpb24gaChmKXtyZXR1cm4gZiBpbnN0YW5jZW9mIGE/ZjpuZXcgYShmdW5jdGlvbih2KXt2KGYpfSl9KHJlLnZhbHVlKS50aGVuKE0sSSl9Rygo'@; put 'ZD1kLmFwcGx5KGMsbHx8W10pKS5uZXh0KCkpfSl9KHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0cnl7Zm9yKGE9eG9lKGMpOyEoZD15aWVsZCBhLm5leHQoKSkuZG9uZTspaWYobC5uZXh0KGQudmFsdWUpLGwuY2xvc2VkKXJldHVybn1jYXRjaCh2KXtoPXtlcnJvcjp2fX1maW5h'@; put 'bGx5e3RyeXtkJiYhZC5kb25lJiYoZj1hLnJldHVybikmJih5aWVsZCBmLmNhbGwoYSkpfWZpbmFsbHl7aWYoaCl0aHJvdyBoLmVycm9yfX1sLmNvbXBsZXRlKCl9KX0pKGMsbCkuY2F0Y2goYT0+bC5lcnJvcihhKSl9KX1mdW5jdGlvbiB0ZyhjLGwsYSxkPTAsaD0hMSl7Y29uc3QgZj1sLnNj'@; put 'aGVkdWxlKGZ1bmN0aW9uKCl7YSgpLGg/Yy5hZGQodGhpcy5zY2hlZHVsZShudWxsLGQpKTp0aGlzLnVuc3Vic2NyaWJlKCl9LGQpO2lmKGMuYWRkKGYpLCFoKXJldHVybiBmfWZ1bmN0aW9uIG1sZShjLGw9MCl7cmV0dXJuIE5pKChhLGQpPT57YS5zdWJzY3JpYmUoSGkoZCxoPT50ZyhkLGMs'@; put 'KCk9PmQubmV4dChoKSxsKSwoKT0+dGcoZCxjLCgpPT5kLmNvbXBsZXRlKCksbCksaD0+dGcoZCxjLCgpPT5kLmVycm9yKGgpLGwpKSl9KX1mdW5jdGlvbiB2bGUoYyxsPTApe3JldHVybiBOaSgoYSxkKT0+e2QuYWRkKGMuc2NoZWR1bGUoKCk9PmEuc3Vic2NyaWJlKGQpLGwpKX0pfWZ1bmN0'@; put 'aW9uIHlsZShjLGwpe2lmKCFjKXRocm93IG5ldyBFcnJvcigiSXRlcmFibGUgY2Fubm90IGJlIG51bGwiKTtyZXR1cm4gbmV3IFF0KGE9Pnt0ZyhhLGwsKCk9Pntjb25zdCBkPWNbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCk7dGcoYSxsLCgpPT57ZC5uZXh0KCkudGhlbihoPT57aC5kb25lP2Eu'@; put 'Y29tcGxldGUoKTphLm5leHQoaC52YWx1ZSl9KX0sMCwhMCl9KX0pfWZ1bmN0aW9uIFV1KGMsbCl7cmV0dXJuIGw/ZnVuY3Rpb24gZHhlKGMsbCl7aWYobnVsbCE9Yyl7aWYobGxlKGMpKXJldHVybiBmdW5jdGlvbiBzeGUoYyxsKXtyZXR1cm4gbzEoYykucGlwZSh2bGUobCksbWxlKGwpKX0o'@; put 'YyxsKTtpZihaWihjKSlyZXR1cm4gZnVuY3Rpb24gbHhlKGMsbCl7cmV0dXJuIG5ldyBRdChhPT57bGV0IGQ9MDtyZXR1cm4gbC5zY2hlZHVsZShmdW5jdGlvbigpe2Q9PT1jLmxlbmd0aD9hLmNvbXBsZXRlKCk6KGEubmV4dChjW2QrK10pLGEuY2xvc2VkfHx0aGlzLnNjaGVkdWxlKCkpfSl9'@; put 'KX0oYyxsKTtpZihvbGUoYykpcmV0dXJuIGZ1bmN0aW9uIG94ZShjLGwpe3JldHVybiBvMShjKS5waXBlKHZsZShsKSxtbGUobCkpfShjLGwpO2lmKGNsZShjKSlyZXR1cm4geWxlKGMsbCk7aWYoaGxlKGMpKXJldHVybiBmdW5jdGlvbiBjeGUoYyxsKXtyZXR1cm4gbmV3IFF0KGE9PntsZXQg'@; put 'ZDtyZXR1cm4gdGcoYSxsLCgpPT57ZD1jW2RsZV0oKSx0ZyhhLGwsKCk9PntsZXQgaCxmO3RyeXsoe3ZhbHVlOmgsZG9uZTpmfT1kLm5leHQoKSl9Y2F0Y2godil7cmV0dXJuIHZvaWQgYS5lcnJvcih2KX1mP2EuY29tcGxldGUoKTphLm5leHQoaCl9LDAsITApfSksKCk9PktlKGQ/LnJldHVy'@; put 'bikmJmQucmV0dXJuKCl9KX0oYyxsKTtpZihwbGUoYykpcmV0dXJuIGZ1bmN0aW9uIHV4ZShjLGwpe3JldHVybiB5bGUoZmxlKGMpLGwpfShjLGwpfXRocm93IHVsZShjKX0oYyxsKTpvMShjKX1mdW5jdGlvbiBibGUoYyl7cmV0dXJuIGMmJktlKGMuc2NoZWR1bGUpfWZ1bmN0aW9uIFdaKGMp'@; put 'e3JldHVybiBjW2MubGVuZ3RoLTFdfWZ1bmN0aW9uIF9sZShjKXtyZXR1cm4gS2UoV1ooYykpP2MucG9wKCk6dm9pZCAwfWZ1bmN0aW9uIFlNKGMpe3JldHVybiBibGUoV1ooYykpP2MucG9wKCk6dm9pZCAwfWZ1bmN0aW9uIGRzKC4uLmMpe3JldHVybiBVdShjLFlNKGMpKX1jb25zdHtpc0Fy'@; put 'cmF5OmZ4ZX09QXJyYXkse2dldFByb3RvdHlwZU9mOnB4ZSxwcm90b3R5cGU6Z3hlLGtleXM6bXhlfT1PYmplY3Q7ZnVuY3Rpb24gd2xlKGMpe2lmKDE9PT1jLmxlbmd0aCl7Y29uc3QgbD1jWzBdO2lmKGZ4ZShsKSlyZXR1cm57YXJnczpsLGtleXM6bnVsbH07aWYoZnVuY3Rpb24gdnhlKGMp'@; put 'e3JldHVybiBjJiYib2JqZWN0Ij09dHlwZW9mIGMmJnB4ZShjKT09PWd4ZX0obCkpe2NvbnN0IGE9bXhlKGwpO3JldHVybnthcmdzOmEubWFwKGQ9PmxbZF0pLGtleXM6YX19fXJldHVybnthcmdzOmMsa2V5czpudWxsfX1jb25zdHtpc0FycmF5Onl4ZX09QXJyYXk7ZnVuY3Rpb24gWVooYyl7'@; put 'cmV0dXJuIFByKGw9PmZ1bmN0aW9uIGJ4ZShjLGwpe3JldHVybiB5eGUobCk/YyguLi5sKTpjKGwpfShjLGwpKX1mdW5jdGlvbiBDbGUoYyxsKXtyZXR1cm4gYy5yZWR1Y2UoKGEsZCxoKT0+KGFbZF09bFtoXSxhKSx7fSl9ZnVuY3Rpb24gWDgoLi4uYyl7Y29uc3QgbD1ZTShjKSxhPV9sZShj'@; put 'KSx7YXJnczpkLGtleXM6aH09d2xlKGMpO2lmKDA9PT1kLmxlbmd0aClyZXR1cm4gVXUoW10sbCk7Y29uc3QgZj1uZXcgUXQoZnVuY3Rpb24gX3hlKGMsbCxhPWNuKXtyZXR1cm4gZD0+e1NsZShsLCgpPT57Y29uc3R7bGVuZ3RoOmh9PWMsZj1uZXcgQXJyYXkoaCk7bGV0IHY9aCxNPWg7Zm9y'@; put 'KGxldCBJPTA7STxoO0krKylTbGUobCwoKT0+e2NvbnN0IEc9VXUoY1tJXSxsKTtsZXQgcmU9ITE7Ry5zdWJzY3JpYmUoSGkoZCx1ZT0+e2ZbSV09dWUscmV8fChyZT0hMCxNLS0pLE18fGQubmV4dChhKGYuc2xpY2UoKSkpfSwoKT0+ey0tdnx8ZC5jb21wbGV0ZSgpfSkpfSxkKX0sZCl9fShk'@; put 'LGwsaD92PT5DbGUoaCx2KTpjbikpO3JldHVybiBhP2YucGlwZShZWihhKSk6Zn1mdW5jdGlvbiBTbGUoYyxsLGEpe2M/dGcoYSxjLGwpOmwoKX1jb25zdCBGUj10dChjPT5mdW5jdGlvbigpe2ModGhpcyksdGhpcy5uYW1lPSJFbXB0eUVycm9yIix0aGlzLm1lc3NhZ2U9Im5vIGVsZW1lbnRz'@; put 'IGluIHNlcXVlbmNlIn0pO2Z1bmN0aW9uIEYwKGMsbCxhPTEvMCl7cmV0dXJuIEtlKGwpP0YwKChkLGgpPT5QcigoZix2KT0+bChkLGYsaCx2KSkobzEoYyhkLGgpKSksYSk6KCJudW1iZXIiPT10eXBlb2YgbCYmKGE9bCksTmkoKGQsaCk9PmZ1bmN0aW9uIHd4ZShjLGwsYSxkLGgsZix2LE0p'@; put 'e2NvbnN0IEk9W107bGV0IEc9MCxyZT0wLHVlPSExO2NvbnN0IHllPSgpPT57dWUmJiFJLmxlbmd0aCYmIUcmJmwuY29tcGxldGUoKX0sRWU9R2U9Pkc8ZD9CZShHZSk6SS5wdXNoKEdlKSxCZT1HZT0+e2YmJmwubmV4dChHZSksRysrO2xldCBzdD0hMTtvMShhKEdlLHJlKyspKS5zdWJzY3Jp'@; put 'YmUoSGkobCxwdD0+e2g/LihwdCksZj9FZShwdCk6bC5uZXh0KHB0KX0sKCk9PntzdD0hMH0sdm9pZCAwLCgpPT57aWYoc3QpdHJ5e2ZvcihHLS07SS5sZW5ndGgmJkc8ZDspe2NvbnN0IHB0PUkuc2hpZnQoKTt2P3RnKGwsdiwoKT0+QmUocHQpKTpCZShwdCl9eWUoKX1jYXRjaChwdCl7bC5l'@; put 'cnJvcihwdCl9fSkpfTtyZXR1cm4gYy5zdWJzY3JpYmUoSGkobCxFZSwoKT0+e3VlPSEwLHllKCl9KSksKCk9PntNPy4oKX19KGQsaCxjLGEpKSl9ZnVuY3Rpb24gWHkoYz0xLzApe3JldHVybiBGMChjbixjKX1mdW5jdGlvbiBHWiguLi5jKXtyZXR1cm4gZnVuY3Rpb24gQ3hlKCl7cmV0dXJu'@; put 'IFh5KDEpfSgpKFV1KGMsWU0oYykpKX1mdW5jdGlvbiBNbGUoYyl7cmV0dXJuIG5ldyBRdChsPT57bzEoYygpKS5zdWJzY3JpYmUobCl9KX1mdW5jdGlvbiBHTShjLGwpe2NvbnN0IGE9S2UoYyk/YzooKT0+YyxkPWg9PmguZXJyb3IoYSgpKTtyZXR1cm4gbmV3IFF0KGw/aD0+bC5zY2hlZHVs'@; put 'ZShkLDAsaCk6ZCl9Y29uc3QgRTI9bmV3IFF0KGM9PmMuY29tcGxldGUoKSk7ZnVuY3Rpb24gJFooKXtyZXR1cm4gTmkoKGMsbCk9PntsZXQgYT1udWxsO2MuX3JlZkNvdW50Kys7Y29uc3QgZD1IaShsLHZvaWQgMCx2b2lkIDAsdm9pZCAwLCgpPT57aWYoIWN8fGMuX3JlZkNvdW50PD0wfHww'@; put 'PC0tYy5fcmVmQ291bnQpcmV0dXJuIHZvaWQoYT1udWxsKTtjb25zdCBoPWMuX2Nvbm5lY3Rpb24sZj1hO2E9bnVsbCxoJiYoIWZ8fGg9PT1mKSYmaC51bnN1YnNjcmliZSgpLGwudW5zdWJzY3JpYmUoKX0pO2Muc3Vic2NyaWJlKGQpLGQuY2xvc2VkfHwoYT1jLmNvbm5lY3QoKSl9KX1jbGFz'@; put 'cyBLWiBleHRlbmRzIFF0e2NvbnN0cnVjdG9yKGwsYSl7c3VwZXIoKSx0aGlzLnNvdXJjZT1sLHRoaXMuc3ViamVjdEZhY3Rvcnk9YSx0aGlzLl9zdWJqZWN0PW51bGwsdGhpcy5fcmVmQ291bnQ9MCx0aGlzLl9jb25uZWN0aW9uPW51bGwsUXIobCkmJih0aGlzLmxpZnQ9bC5saWZ0KX1fc3Vi'@; put 'c2NyaWJlKGwpe3JldHVybiB0aGlzLmdldFN1YmplY3QoKS5zdWJzY3JpYmUobCl9Z2V0U3ViamVjdCgpe2NvbnN0IGw9dGhpcy5fc3ViamVjdDtyZXR1cm4oIWx8fGwuaXNTdG9wcGVkKSYmKHRoaXMuX3N1YmplY3Q9dGhpcy5zdWJqZWN0RmFjdG9yeSgpKSx0aGlzLl9zdWJqZWN0fV90ZWFy'@; put 'ZG93bigpe3RoaXMuX3JlZkNvdW50PTA7Y29uc3R7X2Nvbm5lY3Rpb246bH09dGhpczt0aGlzLl9zdWJqZWN0PXRoaXMuX2Nvbm5lY3Rpb249bnVsbCxsPy51bnN1YnNjcmliZSgpfWNvbm5lY3QoKXtsZXQgbD10aGlzLl9jb25uZWN0aW9uO2lmKCFsKXtsPXRoaXMuX2Nvbm5lY3Rpb249bmV3'@; put 'IEp0O2NvbnN0IGE9dGhpcy5nZXRTdWJqZWN0KCk7bC5hZGQodGhpcy5zb3VyY2Uuc3Vic2NyaWJlKEhpKGEsdm9pZCAwLCgpPT57dGhpcy5fdGVhcmRvd24oKSxhLmNvbXBsZXRlKCl9LGQ9Pnt0aGlzLl90ZWFyZG93bigpLGEuZXJyb3IoZCl9LCgpPT50aGlzLl90ZWFyZG93bigpKSkpLGwu'@; put 'Y2xvc2VkJiYodGhpcy5fY29ubmVjdGlvbj1udWxsLGw9SnQuRU1QVFkpfXJldHVybiBsfXJlZkNvdW50KCl7cmV0dXJuICRaKCkodGhpcyl9fWZ1bmN0aW9uIGoxKGMsbCl7cmV0dXJuIE5pKChhLGQpPT57bGV0IGg9bnVsbCxmPTAsdj0hMTtjb25zdCBNPSgpPT52JiYhaCYmZC5jb21wbGV0'@; put 'ZSgpO2Euc3Vic2NyaWJlKEhpKGQsST0+e2g/LnVuc3Vic2NyaWJlKCk7bGV0IEc9MDtjb25zdCByZT1mKys7bzEoYyhJLHJlKSkuc3Vic2NyaWJlKGg9SGkoZCx1ZT0+ZC5uZXh0KGw/bChJLHVlLHJlLEcrKyk6dWUpLCgpPT57aD1udWxsLE0oKX0pKX0sKCk9Pnt2PSEwLE0oKX0pKX0pfWZ1'@; put 'bmN0aW9uIGdoKGMpe3JldHVybiBjPD0wPygpPT5FMjpOaSgobCxhKT0+e2xldCBkPTA7bC5zdWJzY3JpYmUoSGkoYSxoPT57KytkPD1jJiYoYS5uZXh0KGgpLGM8PWQmJmEuY29tcGxldGUoKSl9KSl9KX1mdW5jdGlvbiBUMiguLi5jKXtjb25zdCBsPVlNKGMpO3JldHVybiBOaSgoYSxkKT0+'@; put 'eyhsP0daKGMsYSxsKTpHWihjLGEpKS5zdWJzY3JpYmUoZCl9KX1mdW5jdGlvbiBXbChjLGwpe3JldHVybiBOaSgoYSxkKT0+e2xldCBoPTA7YS5zdWJzY3JpYmUoSGkoZCxmPT5jLmNhbGwobCxmLGgrKykmJmQubmV4dChmKSkpfSl9ZnVuY3Rpb24gSFIoYyl7cmV0dXJuIE5pKChsLGEpPT57'@; put 'bGV0IGQ9ITE7bC5zdWJzY3JpYmUoSGkoYSxoPT57ZD0hMCxhLm5leHQoaCl9LCgpPT57ZHx8YS5uZXh0KGMpLGEuY29tcGxldGUoKX0pKX0pfWZ1bmN0aW9uIHhsZShjPU14ZSl7cmV0dXJuIE5pKChsLGEpPT57bGV0IGQ9ITE7bC5zdWJzY3JpYmUoSGkoYSxoPT57ZD0hMCxhLm5leHQoaCl9'@; put 'LCgpPT5kP2EuY29tcGxldGUoKTphLmVycm9yKGMoKSkpKX0pfWZ1bmN0aW9uIE14ZSgpe3JldHVybiBuZXcgRlJ9ZnVuY3Rpb24gbm0oYyxsKXtjb25zdCBhPWFyZ3VtZW50cy5sZW5ndGg+PTI7cmV0dXJuIGQ9PmQucGlwZShjP1dsKChoLGYpPT5jKGgsZixkKSk6Y24sZ2goMSksYT9IUihs'@; put 'KTp4bGUoKCk9Pm5ldyBGUikpfWZ1bmN0aW9uIHF5KGMsbCl7cmV0dXJuIEtlKGwpP0YwKGMsbCwxKTpGMChjLDEpfWZ1bmN0aW9uIFp1KGMsbCxhKXtjb25zdCBkPUtlKGMpfHxsfHxhP3tuZXh0OmMsZXJyb3I6bCxjb21wbGV0ZTphfTpjO3JldHVybiBkP05pKChoLGYpPT57dmFyIHY7bnVs'@; put 'bD09PSh2PWQuc3Vic2NyaWJlKXx8dm9pZCAwPT09dnx8di5jYWxsKGQpO2xldCBNPSEwO2guc3Vic2NyaWJlKEhpKGYsST0+e3ZhciBHO251bGw9PT0oRz1kLm5leHQpfHx2b2lkIDA9PT1HfHxHLmNhbGwoZCxJKSxmLm5leHQoSSl9LCgpPT57dmFyIEk7TT0hMSxudWxsPT09KEk9ZC5jb21w'@; put 'bGV0ZSl8fHZvaWQgMD09PUl8fEkuY2FsbChkKSxmLmNvbXBsZXRlKCl9LEk9Pnt2YXIgRztNPSExLG51bGw9PT0oRz1kLmVycm9yKXx8dm9pZCAwPT09R3x8Ry5jYWxsKGQsSSksZi5lcnJvcihJKX0sKCk9Pnt2YXIgSSxHO00mJihudWxsPT09KEk9ZC51bnN1YnNjcmliZSl8fHZvaWQgMD09'@; put 'PUl8fEkuY2FsbChkKSksbnVsbD09PShHPWQuZmluYWxpemUpfHx2b2lkIDA9PT1HfHxHLmNhbGwoZCl9KSl9KTpjbn1mdW5jdGlvbiBxOChjKXtyZXR1cm4gTmkoKGwsYSk9PntsZXQgZixkPW51bGwsaD0hMTtkPWwuc3Vic2NyaWJlKEhpKGEsdm9pZCAwLHZvaWQgMCx2PT57Zj1vMShjKHYs'@; put 'cTgoYykobCkpKSxkPyhkLnVuc3Vic2NyaWJlKCksZD1udWxsLGYuc3Vic2NyaWJlKGEpKTpoPSEwfSkpLGgmJihkLnVuc3Vic2NyaWJlKCksZD1udWxsLGYuc3Vic2NyaWJlKGEpKX0pfWZ1bmN0aW9uIFhaKGMpe3JldHVybiBjPD0wPygpPT5FMjpOaSgobCxhKT0+e2xldCBkPVtdO2wuc3Vi'@; put 'c2NyaWJlKEhpKGEsaD0+e2QucHVzaChoKSxjPGQubGVuZ3RoJiZkLnNoaWZ0KCl9LCgpPT57Zm9yKGNvbnN0IGggb2YgZClhLm5leHQoaCk7YS5jb21wbGV0ZSgpfSx2b2lkIDAsKCk9PntkPW51bGx9KSl9KX1mdW5jdGlvbiAkTShjKXtyZXR1cm4gTmkoKGwsYSk9Pnt0cnl7bC5zdWJzY3Jp'@; put 'YmUoYSl9ZmluYWxseXthLmFkZChjKX19KX1mdW5jdGlvbiBIMChjKXtyZXR1cm4gTmkoKGwsYSk9PntvMShjKS5zdWJzY3JpYmUoSGkoYSwoKT0+YS5jb21wbGV0ZSgpLGRuKSksIWEuY2xvc2VkJiZsLnN1YnNjcmliZShhKX0pfWNvbnN0IEtzPSJwcmltYXJ5IixLTT1TeW1ib2woIlJvdXRl'@; put 'VGl0bGUiKTtjbGFzcyBreGV7Y29uc3RydWN0b3IobCl7dGhpcy5wYXJhbXM9bHx8e319aGFzKGwpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5wYXJhbXMsbCl9Z2V0KGwpe2lmKHRoaXMuaGFzKGwpKXtjb25zdCBhPXRoaXMucGFyYW1zW2xdO3Jl'@; put 'dHVybiBBcnJheS5pc0FycmF5KGEpP2FbMF06YX1yZXR1cm4gbnVsbH1nZXRBbGwobCl7aWYodGhpcy5oYXMobCkpe2NvbnN0IGE9dGhpcy5wYXJhbXNbbF07cmV0dXJuIEFycmF5LmlzQXJyYXkoYSk/YTpbYV19cmV0dXJuW119Z2V0IGtleXMoKXtyZXR1cm4gT2JqZWN0LmtleXModGhpcy5w'@; put 'YXJhbXMpfX1mdW5jdGlvbiBKeShjKXtyZXR1cm4gbmV3IGt4ZShjKX1mdW5jdGlvbiBEeGUoYyxsLGEpe2NvbnN0IGQ9YS5wYXRoLnNwbGl0KCIvIik7aWYoZC5sZW5ndGg+Yy5sZW5ndGh8fCJmdWxsIj09PWEucGF0aE1hdGNoJiYobC5oYXNDaGlsZHJlbigpfHxkLmxlbmd0aDxjLmxlbmd0'@; put 'aCkpcmV0dXJuIG51bGw7Y29uc3QgaD17fTtmb3IobGV0IGY9MDtmPGQubGVuZ3RoO2YrKyl7Y29uc3Qgdj1kW2ZdLE09Y1tmXTtpZih2LnN0YXJ0c1dpdGgoIjoiKSloW3Yuc3Vic3RyaW5nKDEpXT1NO2Vsc2UgaWYodiE9PU0ucGF0aClyZXR1cm4gbnVsbH1yZXR1cm57Y29uc3VtZWQ6Yy5z'@; put 'bGljZSgwLGQubGVuZ3RoKSxwb3NQYXJhbXM6aH19ZnVuY3Rpb24gcHAoYyxsKXtjb25zdCBhPWM/cVooYyk6dm9pZCAwLGQ9bD9xWihsKTp2b2lkIDA7aWYoIWF8fCFkfHxhLmxlbmd0aCE9ZC5sZW5ndGgpcmV0dXJuITE7bGV0IGg7Zm9yKGxldCBmPTA7ZjxhLmxlbmd0aDtmKyspaWYoaD1h'@; put 'W2ZdLCFFbGUoY1toXSxsW2hdKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBxWihjKXtyZXR1cm5bLi4uT2JqZWN0LmtleXMoYyksLi4uT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhjKV19ZnVuY3Rpb24gRWxlKGMsbCl7aWYoQXJyYXkuaXNBcnJheShjKSYmQXJyYXkuaXNBcnJh'@; put 'eShsKSl7aWYoYy5sZW5ndGghPT1sLmxlbmd0aClyZXR1cm4hMTtjb25zdCBhPVsuLi5jXS5zb3J0KCksZD1bLi4ubF0uc29ydCgpO3JldHVybiBhLmV2ZXJ5KChoLGYpPT5kW2ZdPT09aCl9cmV0dXJuIGM9PT1sfWZ1bmN0aW9uIFRsZShjKXtyZXR1cm4gYy5sZW5ndGg+MD9jW2MubGVuZ3Ro'@; put 'LTFdOm51bGx9ZnVuY3Rpb24gcm0oYyl7cmV0dXJuIFdNKGMpP2M6eE0oYyk/VXUoUHJvbWlzZS5yZXNvbHZlKGMpKTpkcyhjKX1jb25zdCBSeGU9e2V4YWN0OmZ1bmN0aW9uIERsZShjLGwsYSl7aWYoIUo4KGMuc2VnbWVudHMsbC5zZWdtZW50cyl8fCFOUihjLnNlZ21lbnRzLGwuc2VnbWVu'@; put 'dHMsYSl8fGMubnVtYmVyT2ZDaGlsZHJlbiE9PWwubnVtYmVyT2ZDaGlsZHJlbilyZXR1cm4hMTtmb3IoY29uc3QgZCBpbiBsLmNoaWxkcmVuKWlmKCFjLmNoaWxkcmVuW2RdfHwhRGxlKGMuY2hpbGRyZW5bZF0sbC5jaGlsZHJlbltkXSxhKSlyZXR1cm4hMTtyZXR1cm4hMH0sc3Vic2V0Okls'@; put 'ZX0sQWxlPXtleGFjdDpmdW5jdGlvbiBMeGUoYyxsKXtyZXR1cm4gcHAoYyxsKX0sc3Vic2V0OmZ1bmN0aW9uIE94ZShjLGwpe3JldHVybiBPYmplY3Qua2V5cyhsKS5sZW5ndGg8PU9iamVjdC5rZXlzKGMpLmxlbmd0aCYmT2JqZWN0LmtleXMobCkuZXZlcnkoYT0+RWxlKGNbYV0sbFthXSkp'@; put 'fSxpZ25vcmVkOigpPT4hMH07ZnVuY3Rpb24ga2xlKGMsbCxhKXtyZXR1cm4gUnhlW2EucGF0aHNdKGMucm9vdCxsLnJvb3QsYS5tYXRyaXhQYXJhbXMpJiZBbGVbYS5xdWVyeVBhcmFtc10oYy5xdWVyeVBhcmFtcyxsLnF1ZXJ5UGFyYW1zKSYmISgiZXhhY3QiPT09YS5mcmFnbWVudCYmYy5m'@; put 'cmFnbWVudCE9PWwuZnJhZ21lbnQpfWZ1bmN0aW9uIElsZShjLGwsYSl7cmV0dXJuIFJsZShjLGwsbC5zZWdtZW50cyxhKX1mdW5jdGlvbiBSbGUoYyxsLGEsZCl7aWYoYy5zZWdtZW50cy5sZW5ndGg+YS5sZW5ndGgpe2NvbnN0IGg9Yy5zZWdtZW50cy5zbGljZSgwLGEubGVuZ3RoKTtyZXR1'@; put 'cm4hKCFKOChoLGEpfHxsLmhhc0NoaWxkcmVuKCl8fCFOUihoLGEsZCkpfWlmKGMuc2VnbWVudHMubGVuZ3RoPT09YS5sZW5ndGgpe2lmKCFKOChjLnNlZ21lbnRzLGEpfHwhTlIoYy5zZWdtZW50cyxhLGQpKXJldHVybiExO2Zvcihjb25zdCBoIGluIGwuY2hpbGRyZW4paWYoIWMuY2hpbGRy'@; put 'ZW5baF18fCFJbGUoYy5jaGlsZHJlbltoXSxsLmNoaWxkcmVuW2hdLGQpKXJldHVybiExO3JldHVybiEwfXtjb25zdCBoPWEuc2xpY2UoMCxjLnNlZ21lbnRzLmxlbmd0aCksZj1hLnNsaWNlKGMuc2VnbWVudHMubGVuZ3RoKTtyZXR1cm4hIShKOChjLnNlZ21lbnRzLGgpJiZOUihjLnNlZ21l'@; put 'bnRzLGgsZCkmJmMuY2hpbGRyZW5bS3NdKSYmUmxlKGMuY2hpbGRyZW5bS3NdLGwsZixkKX19ZnVuY3Rpb24gTlIoYyxsLGEpe3JldHVybiBsLmV2ZXJ5KChkLGgpPT5BbGVbYV0oY1toXS5wYXJhbWV0ZXJzLGQucGFyYW1ldGVycykpfWNsYXNzIFF5e2NvbnN0cnVjdG9yKGw9bmV3IFlsKFtd'@; put 'LHt9KSxhPXt9LGQ9bnVsbCl7dGhpcy5yb290PWwsdGhpcy5xdWVyeVBhcmFtcz1hLHRoaXMuZnJhZ21lbnQ9ZH1nZXQgcXVlcnlQYXJhbU1hcCgpe3JldHVybiB0aGlzLl9xdWVyeVBhcmFtTWFwPz89SnkodGhpcy5xdWVyeVBhcmFtcyksdGhpcy5fcXVlcnlQYXJhbU1hcH10b1N0cmluZygp'@; put 'e3JldHVybiBIeGUuc2VyaWFsaXplKHRoaXMpfX1jbGFzcyBZbHtjb25zdHJ1Y3RvcihsLGEpe3RoaXMuc2VnbWVudHM9bCx0aGlzLmNoaWxkcmVuPWEsdGhpcy5wYXJlbnQ9bnVsbCxPYmplY3QudmFsdWVzKGEpLmZvckVhY2goZD0+ZC5wYXJlbnQ9dGhpcyl9aGFzQ2hpbGRyZW4oKXtyZXR1'@; put 'cm4gdGhpcy5udW1iZXJPZkNoaWxkcmVuPjB9Z2V0IG51bWJlck9mQ2hpbGRyZW4oKXtyZXR1cm4gT2JqZWN0LmtleXModGhpcy5jaGlsZHJlbikubGVuZ3RofXRvU3RyaW5nKCl7cmV0dXJuIFZSKHRoaXMpfX1jbGFzcyBYTXtjb25zdHJ1Y3RvcihsLGEpe3RoaXMucGF0aD1sLHRoaXMucGFy'@; put 'YW1ldGVycz1hfWdldCBwYXJhbWV0ZXJNYXAoKXtyZXR1cm4gdGhpcy5fcGFyYW1ldGVyTWFwPz89SnkodGhpcy5wYXJhbWV0ZXJzKSx0aGlzLl9wYXJhbWV0ZXJNYXB9dG9TdHJpbmcoKXtyZXR1cm4gUGxlKHRoaXMpfX1mdW5jdGlvbiBKOChjLGwpe3JldHVybiBjLmxlbmd0aD09PWwubGVu'@; put 'Z3RoJiZjLmV2ZXJ5KChhLGQpPT5hLnBhdGg9PT1sW2RdLnBhdGgpfWxldCBlYj0oKCk9PntjbGFzcyBje3N0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpfX1zdGF0aWN7dGhpcy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6KCk9Pm5ldyBK'@; put 'Wixwcm92aWRlZEluOiJyb290In0pfX1yZXR1cm4gY30pKCk7Y2xhc3MgSlp7cGFyc2UobCl7Y29uc3QgYT1uZXcgJHhlKGwpO3JldHVybiBuZXcgUXkoYS5wYXJzZVJvb3RTZWdtZW50KCksYS5wYXJzZVF1ZXJ5UGFyYW1zKCksYS5wYXJzZUZyYWdtZW50KCkpfXNlcmlhbGl6ZShsKXtjb25z'@; put 'dCBhPWAvJHtxTShsLnJvb3QsITApfWAsZD1mdW5jdGlvbiBCeGUoYyl7Y29uc3QgbD1PYmplY3QuZW50cmllcyhjKS5tYXAoKFthLGRdKT0+QXJyYXkuaXNBcnJheShkKT9kLm1hcChoPT5gJHtCUihhKX09JHtCUihoKX1gKS5qb2luKCImIik6YCR7QlIoYSl9PSR7QlIoZCl9YCkuZmlsdGVy'@; put 'KGE9PmEpO3JldHVybiBsLmxlbmd0aD9gPyR7bC5qb2luKCImIil9YDoiIn0obC5xdWVyeVBhcmFtcyksaD0ic3RyaW5nIj09dHlwZW9mIGwuZnJhZ21lbnQ/YCMke2Z1bmN0aW9uIE54ZShjKXtyZXR1cm4gZW5jb2RlVVJJKGMpfShsLmZyYWdtZW50KX1gOiIiO3JldHVybmAke2F9JHtkfSR7'@; put 'aH1gfX1jb25zdCBIeGU9bmV3IEpaO2Z1bmN0aW9uIFZSKGMpe3JldHVybiBjLnNlZ21lbnRzLm1hcChsPT5QbGUobCkpLmpvaW4oIi8iKX1mdW5jdGlvbiBxTShjLGwpe2lmKCFjLmhhc0NoaWxkcmVuKCkpcmV0dXJuIFZSKGMpO2lmKGwpe2NvbnN0IGE9Yy5jaGlsZHJlbltLc10/cU0oYy5j'@; put 'aGlsZHJlbltLc10sITEpOiIiLGQ9W107cmV0dXJuIE9iamVjdC5lbnRyaWVzKGMuY2hpbGRyZW4pLmZvckVhY2goKFtoLGZdKT0+e2ghPT1LcyYmZC5wdXNoKGAke2h9OiR7cU0oZiwhMSl9YCl9KSxkLmxlbmd0aD4wP2Ake2F9KCR7ZC5qb2luKCIvLyIpfSlgOmF9e2NvbnN0IGE9ZnVuY3Rp'@; put 'b24gRnhlKGMsbCl7bGV0IGE9W107cmV0dXJuIE9iamVjdC5lbnRyaWVzKGMuY2hpbGRyZW4pLmZvckVhY2goKFtkLGhdKT0+e2Q9PT1LcyYmKGE9YS5jb25jYXQobChoLGQpKSl9KSxPYmplY3QuZW50cmllcyhjLmNoaWxkcmVuKS5mb3JFYWNoKChbZCxoXSk9PntkIT09S3MmJihhPWEuY29u'@; put 'Y2F0KGwoaCxkKSkpfSksYX0oYywoZCxoKT0+aD09PUtzP1txTShjLmNoaWxkcmVuW0tzXSwhMSldOltgJHtofToke3FNKGQsITEpfWBdKTtyZXR1cm4gMT09PU9iamVjdC5rZXlzKGMuY2hpbGRyZW4pLmxlbmd0aCYmbnVsbCE9Yy5jaGlsZHJlbltLc10/YCR7VlIoYyl9LyR7YVswXX1gOmAk'@; put 'e1ZSKGMpfS8oJHthLmpvaW4oIi8vIil9KWB9fWZ1bmN0aW9uIExsZShjKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGMpLnJlcGxhY2UoLyU0MC9nLCJAIikucmVwbGFjZSgvJTNBL2dpLCI6IikucmVwbGFjZSgvJTI0L2csIiQiKS5yZXBsYWNlKC8lMkMvZ2ksIiwiKX1mdW5jdGlvbiBC'@; put 'UihjKXtyZXR1cm4gTGxlKGMpLnJlcGxhY2UoLyUzQi9naSwiOyIpfWZ1bmN0aW9uIFFaKGMpe3JldHVybiBMbGUoYykucmVwbGFjZSgvXCgvZywiJTI4IikucmVwbGFjZSgvXCkvZywiJTI5IikucmVwbGFjZSgvJTI2L2dpLCImIil9ZnVuY3Rpb24galIoYyl7cmV0dXJuIGRlY29kZVVSSUNv'@; put 'bXBvbmVudChjKX1mdW5jdGlvbiBPbGUoYyl7cmV0dXJuIGpSKGMucmVwbGFjZSgvXCsvZywiJTIwIikpfWZ1bmN0aW9uIFBsZShjKXtyZXR1cm5gJHtRWihjLnBhdGgpfSR7ZnVuY3Rpb24gVnhlKGMpe3JldHVybiBPYmplY3QuZW50cmllcyhjKS5tYXAoKFtsLGFdKT0+YDske1FaKGwpfT0k'@; put 'e1FaKGEpfWApLmpvaW4oIiIpfShjLnBhcmFtZXRlcnMpfWB9Y29uc3QganhlPS9eW15cLygpPzsjXSsvO2Z1bmN0aW9uIGVXKGMpe2NvbnN0IGw9Yy5tYXRjaChqeGUpO3JldHVybiBsP2xbMF06IiJ9Y29uc3QgenhlPS9eW15cLygpPzs9I10rLyxaeGU9L15bXj0/JiNdKy8sWXhlPS9eW14m'@; put 'I10rLztjbGFzcyAkeGV7Y29uc3RydWN0b3IobCl7dGhpcy51cmw9bCx0aGlzLnJlbWFpbmluZz1sfXBhcnNlUm9vdFNlZ21lbnQoKXtyZXR1cm4gdGhpcy5jb25zdW1lT3B0aW9uYWwoIi8iKSwiIj09PXRoaXMucmVtYWluaW5nfHx0aGlzLnBlZWtTdGFydHNXaXRoKCI/Iil8fHRoaXMucGVl'@; put 'a1N0YXJ0c1dpdGgoIiMiKT9uZXcgWWwoW10se30pOm5ldyBZbChbXSx0aGlzLnBhcnNlQ2hpbGRyZW4oKSl9cGFyc2VRdWVyeVBhcmFtcygpe2NvbnN0IGw9e307aWYodGhpcy5jb25zdW1lT3B0aW9uYWwoIj8iKSlkb3t0aGlzLnBhcnNlUXVlcnlQYXJhbShsKX13aGlsZSh0aGlzLmNvbnN1'@; put 'bWVPcHRpb25hbCgiJiIpKTtyZXR1cm4gbH1wYXJzZUZyYWdtZW50KCl7cmV0dXJuIHRoaXMuY29uc3VtZU9wdGlvbmFsKCIjIik/ZGVjb2RlVVJJQ29tcG9uZW50KHRoaXMucmVtYWluaW5nKTpudWxsfXBhcnNlQ2hpbGRyZW4oKXtpZigiIj09PXRoaXMucmVtYWluaW5nKXJldHVybnt9O3Ro'@; put 'aXMuY29uc3VtZU9wdGlvbmFsKCIvIik7Y29uc3QgbD1bXTtmb3IodGhpcy5wZWVrU3RhcnRzV2l0aCgiKCIpfHxsLnB1c2godGhpcy5wYXJzZVNlZ21lbnQoKSk7dGhpcy5wZWVrU3RhcnRzV2l0aCgiLyIpJiYhdGhpcy5wZWVrU3RhcnRzV2l0aCgiLy8iKSYmIXRoaXMucGVla1N0YXJ0c1dp'@; put 'dGgoIi8oIik7KXRoaXMuY2FwdHVyZSgiLyIpLGwucHVzaCh0aGlzLnBhcnNlU2VnbWVudCgpKTtsZXQgYT17fTt0aGlzLnBlZWtTdGFydHNXaXRoKCIvKCIpJiYodGhpcy5jYXB0dXJlKCIvIiksYT10aGlzLnBhcnNlUGFyZW5zKCEwKSk7bGV0IGQ9e307cmV0dXJuIHRoaXMucGVla1N0YXJ0'@; put 'c1dpdGgoIigiKSYmKGQ9dGhpcy5wYXJzZVBhcmVucyghMSkpLChsLmxlbmd0aD4wfHxPYmplY3Qua2V5cyhhKS5sZW5ndGg+MCkmJihkW0tzXT1uZXcgWWwobCxhKSksZH1wYXJzZVNlZ21lbnQoKXtjb25zdCBsPWVXKHRoaXMucmVtYWluaW5nKTtpZigiIj09PWwmJnRoaXMucGVla1N0YXJ0'@; put 'c1dpdGgoIjsiKSl0aHJvdyBuZXcgbnIoNDAwOSwhMSk7cmV0dXJuIHRoaXMuY2FwdHVyZShsKSxuZXcgWE0oalIobCksdGhpcy5wYXJzZU1hdHJpeFBhcmFtcygpKX1wYXJzZU1hdHJpeFBhcmFtcygpe2NvbnN0IGw9e307Zm9yKDt0aGlzLmNvbnN1bWVPcHRpb25hbCgiOyIpOyl0aGlzLnBh'@; put 'cnNlUGFyYW0obCk7cmV0dXJuIGx9cGFyc2VQYXJhbShsKXtjb25zdCBhPWZ1bmN0aW9uIFV4ZShjKXtjb25zdCBsPWMubWF0Y2goenhlKTtyZXR1cm4gbD9sWzBdOiIifSh0aGlzLnJlbWFpbmluZyk7aWYoIWEpcmV0dXJuO3RoaXMuY2FwdHVyZShhKTtsZXQgZD0iIjtpZih0aGlzLmNvbnN1'@; put 'bWVPcHRpb25hbCgiPSIpKXtjb25zdCBoPWVXKHRoaXMucmVtYWluaW5nKTtoJiYoZD1oLHRoaXMuY2FwdHVyZShkKSl9bFtqUihhKV09alIoZCl9cGFyc2VRdWVyeVBhcmFtKGwpe2NvbnN0IGE9ZnVuY3Rpb24gV3hlKGMpe2NvbnN0IGw9Yy5tYXRjaChaeGUpO3JldHVybiBsP2xbMF06IiJ9'@; put 'KHRoaXMucmVtYWluaW5nKTtpZighYSlyZXR1cm47dGhpcy5jYXB0dXJlKGEpO2xldCBkPSIiO2lmKHRoaXMuY29uc3VtZU9wdGlvbmFsKCI9Iikpe2NvbnN0IHY9ZnVuY3Rpb24gR3hlKGMpe2NvbnN0IGw9Yy5tYXRjaChZeGUpO3JldHVybiBsP2xbMF06IiJ9KHRoaXMucmVtYWluaW5nKTt2'@; put 'JiYoZD12LHRoaXMuY2FwdHVyZShkKSl9Y29uc3QgaD1PbGUoYSksZj1PbGUoZCk7aWYobC5oYXNPd25Qcm9wZXJ0eShoKSl7bGV0IHY9bFtoXTtBcnJheS5pc0FycmF5KHYpfHwodj1bdl0sbFtoXT12KSx2LnB1c2goZil9ZWxzZSBsW2hdPWZ9cGFyc2VQYXJlbnMobCl7Y29uc3QgYT17fTtm'@; put 'b3IodGhpcy5jYXB0dXJlKCIoIik7IXRoaXMuY29uc3VtZU9wdGlvbmFsKCIpIikmJnRoaXMucmVtYWluaW5nLmxlbmd0aD4wOyl7Y29uc3QgZD1lVyh0aGlzLnJlbWFpbmluZyksaD10aGlzLnJlbWFpbmluZ1tkLmxlbmd0aF07aWYoIi8iIT09aCYmIikiIT09aCYmIjsiIT09aCl0aHJvdyBu'@; put 'ZXcgbnIoNDAxMCwhMSk7bGV0IGY7ZC5pbmRleE9mKCI6Iik+LTE/KGY9ZC5zbGljZSgwLGQuaW5kZXhPZigiOiIpKSx0aGlzLmNhcHR1cmUoZiksdGhpcy5jYXB0dXJlKCI6IikpOmwmJihmPUtzKTtjb25zdCB2PXRoaXMucGFyc2VDaGlsZHJlbigpO2FbZl09MT09PU9iamVjdC5rZXlzKHYp'@; put 'Lmxlbmd0aD92W0tzXTpuZXcgWWwoW10sdiksdGhpcy5jb25zdW1lT3B0aW9uYWwoIi8vIil9cmV0dXJuIGF9cGVla1N0YXJ0c1dpdGgobCl7cmV0dXJuIHRoaXMucmVtYWluaW5nLnN0YXJ0c1dpdGgobCl9Y29uc3VtZU9wdGlvbmFsKGwpe3JldHVybiEhdGhpcy5wZWVrU3RhcnRzV2l0aChs'@; put 'KSYmKHRoaXMucmVtYWluaW5nPXRoaXMucmVtYWluaW5nLnN1YnN0cmluZyhsLmxlbmd0aCksITApfWNhcHR1cmUobCl7aWYoIXRoaXMuY29uc3VtZU9wdGlvbmFsKGwpKXRocm93IG5ldyBucig0MDExLCExKX19ZnVuY3Rpb24gRmxlKGMpe3JldHVybiBjLnNlZ21lbnRzLmxlbmd0aD4wP25l'@; put 'dyBZbChbXSx7W0tzXTpjfSk6Y31mdW5jdGlvbiBIbGUoYyl7Y29uc3QgbD17fTtmb3IoY29uc3RbZCxoXW9mIE9iamVjdC5lbnRyaWVzKGMuY2hpbGRyZW4pKXtjb25zdCBmPUhsZShoKTtpZihkPT09S3MmJjA9PT1mLnNlZ21lbnRzLmxlbmd0aCYmZi5oYXNDaGlsZHJlbigpKWZvcihjb25z'@; put 'dFt2LE1db2YgT2JqZWN0LmVudHJpZXMoZi5jaGlsZHJlbikpbFt2XT1NO2Vsc2UoZi5zZWdtZW50cy5sZW5ndGg+MHx8Zi5oYXNDaGlsZHJlbigpKSYmKGxbZF09Zil9cmV0dXJuIGZ1bmN0aW9uIEt4ZShjKXtpZigxPT09Yy5udW1iZXJPZkNoaWxkcmVuJiZjLmNoaWxkcmVuW0tzXSl7Y29u'@; put 'c3QgbD1jLmNoaWxkcmVuW0tzXTtyZXR1cm4gbmV3IFlsKGMuc2VnbWVudHMuY29uY2F0KGwuc2VnbWVudHMpLGwuY2hpbGRyZW4pfXJldHVybiBjfShuZXcgWWwoYy5zZWdtZW50cyxsKSl9ZnVuY3Rpb24gdGIoYyl7cmV0dXJuIGMgaW5zdGFuY2VvZiBReX1mdW5jdGlvbiBObGUoYyl7bGV0'@; put 'IGw7Y29uc3QgaD1GbGUoZnVuY3Rpb24gYShmKXtjb25zdCB2PXt9O2Zvcihjb25zdCBJIG9mIGYuY2hpbGRyZW4pe2NvbnN0IEc9YShJKTt2W0kub3V0bGV0XT1HfWNvbnN0IE09bmV3IFlsKGYudXJsLHYpO3JldHVybiBmPT09YyYmKGw9TSksTX0oYy5yb290KSk7cmV0dXJuIGw/P2h9ZnVu'@; put 'Y3Rpb24gVmxlKGMsbCxhLGQpe2xldCBoPWM7Zm9yKDtoLnBhcmVudDspaD1oLnBhcmVudDtpZigwPT09bC5sZW5ndGgpcmV0dXJuIHRXKGgsaCxoLGEsZCk7Y29uc3QgZj1mdW5jdGlvbiBxeGUoYyl7aWYoInN0cmluZyI9PXR5cGVvZiBjWzBdJiYxPT09Yy5sZW5ndGgmJiIvIj09PWNbMF0p'@; put 'cmV0dXJuIG5ldyBqbGUoITAsMCxjKTtsZXQgbD0wLGE9ITE7Y29uc3QgZD1jLnJlZHVjZSgoaCxmLHYpPT57aWYoIm9iamVjdCI9PXR5cGVvZiBmJiZudWxsIT1mKXtpZihmLm91dGxldHMpe2NvbnN0IE09e307cmV0dXJuIE9iamVjdC5lbnRyaWVzKGYub3V0bGV0cykuZm9yRWFjaCgoW0ks'@; put 'R10pPT57TVtJXT0ic3RyaW5nIj09dHlwZW9mIEc/Ry5zcGxpdCgiLyIpOkd9KSxbLi4uaCx7b3V0bGV0czpNfV19aWYoZi5zZWdtZW50UGF0aClyZXR1cm5bLi4uaCxmLnNlZ21lbnRQYXRoXX1yZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGY/Wy4uLmgsZl06MD09PXY/KGYuc3BsaXQoIi8iKS5m'@; put 'b3JFYWNoKChNLEkpPT57MD09SSYmIi4iPT09TXx8KDA9PUkmJiIiPT09TT9hPSEwOiIuLiI9PT1NP2wrKzoiIiE9TSYmaC5wdXNoKE0pKX0pLGgpOlsuLi5oLGZdfSxbXSk7cmV0dXJuIG5ldyBqbGUoYSxsLGQpfShsKTtpZihmLnRvUm9vdCgpKXJldHVybiB0VyhoLGgsbmV3IFlsKFtdLHt9'@; put 'KSxhLGQpO2NvbnN0IHY9ZnVuY3Rpb24gSnhlKGMsbCxhKXtpZihjLmlzQWJzb2x1dGUpcmV0dXJuIG5ldyBVUihsLCEwLDApO2lmKCFhKXJldHVybiBuZXcgVVIobCwhMSxOYU4pO2lmKG51bGw9PT1hLnBhcmVudClyZXR1cm4gbmV3IFVSKGEsITAsMCk7Y29uc3QgZD16UihjLmNvbW1hbmRz'@; put 'WzBdKT8wOjE7cmV0dXJuIGZ1bmN0aW9uIFF4ZShjLGwsYSl7bGV0IGQ9YyxoPWwsZj1hO2Zvcig7Zj5oOyl7aWYoZi09aCxkPWQucGFyZW50LCFkKXRocm93IG5ldyBucig0MDA1LCExKTtoPWQuc2VnbWVudHMubGVuZ3RofXJldHVybiBuZXcgVVIoZCwhMSxoLWYpfShhLGEuc2VnbWVudHMu'@; put 'bGVuZ3RoLTErZCxjLm51bWJlck9mRG91YmxlRG90cyl9KGYsaCxjKSxNPXYucHJvY2Vzc0NoaWxkcmVuP1FNKHYuc2VnbWVudEdyb3VwLHYuaW5kZXgsZi5jb21tYW5kcyk6emxlKHYuc2VnbWVudEdyb3VwLHYuaW5kZXgsZi5jb21tYW5kcyk7cmV0dXJuIHRXKGgsdi5zZWdtZW50R3JvdXAs'@; put 'TSxhLGQpfWZ1bmN0aW9uIHpSKGMpe3JldHVybiJvYmplY3QiPT10eXBlb2YgYyYmbnVsbCE9YyYmIWMub3V0bGV0cyYmIWMuc2VnbWVudFBhdGh9ZnVuY3Rpb24gSk0oYyl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBjJiZudWxsIT1jJiZjLm91dGxldHN9ZnVuY3Rpb24gdFcoYyxsLGEsZCxo'@; put 'KXtsZXQgdixmPXt9O2QmJk9iamVjdC5lbnRyaWVzKGQpLmZvckVhY2goKFtJLEddKT0+e2ZbSV09QXJyYXkuaXNBcnJheShHKT9HLm1hcChyZT0+YCR7cmV9YCk6YCR7R31gfSksdj1jPT09bD9hOkJsZShjLGwsYSk7Y29uc3QgTT1GbGUoSGxlKHYpKTtyZXR1cm4gbmV3IFF5KE0sZixoKX1m'@; put 'dW5jdGlvbiBCbGUoYyxsLGEpe2NvbnN0IGQ9e307cmV0dXJuIE9iamVjdC5lbnRyaWVzKGMuY2hpbGRyZW4pLmZvckVhY2goKFtoLGZdKT0+e2RbaF09Zj09PWw/YTpCbGUoZixsLGEpfSksbmV3IFlsKGMuc2VnbWVudHMsZCl9Y2xhc3Mgamxle2NvbnN0cnVjdG9yKGwsYSxkKXtpZih0aGlz'@; put 'LmlzQWJzb2x1dGU9bCx0aGlzLm51bWJlck9mRG91YmxlRG90cz1hLHRoaXMuY29tbWFuZHM9ZCxsJiZkLmxlbmd0aD4wJiZ6UihkWzBdKSl0aHJvdyBuZXcgbnIoNDAwMywhMSk7Y29uc3QgaD1kLmZpbmQoSk0pO2lmKGgmJmghPT1UbGUoZCkpdGhyb3cgbmV3IG5yKDQwMDQsITEpfXRvUm9v'@; put 'dCgpe3JldHVybiB0aGlzLmlzQWJzb2x1dGUmJjE9PT10aGlzLmNvbW1hbmRzLmxlbmd0aCYmIi8iPT10aGlzLmNvbW1hbmRzWzBdfX1jbGFzcyBVUntjb25zdHJ1Y3RvcihsLGEsZCl7dGhpcy5zZWdtZW50R3JvdXA9bCx0aGlzLnByb2Nlc3NDaGlsZHJlbj1hLHRoaXMuaW5kZXg9ZH19ZnVu'@; put 'Y3Rpb24gemxlKGMsbCxhKXtpZihjPz89bmV3IFlsKFtdLHt9KSwwPT09Yy5zZWdtZW50cy5sZW5ndGgmJmMuaGFzQ2hpbGRyZW4oKSlyZXR1cm4gUU0oYyxsLGEpO2NvbnN0IGQ9ZnVuY3Rpb24gdEVlKGMsbCxhKXtsZXQgZD0wLGg9bDtjb25zdCBmPXttYXRjaDohMSxwYXRoSW5kZXg6MCxj'@; put 'b21tYW5kSW5kZXg6MH07Zm9yKDtoPGMuc2VnbWVudHMubGVuZ3RoOyl7aWYoZD49YS5sZW5ndGgpcmV0dXJuIGY7Y29uc3Qgdj1jLnNlZ21lbnRzW2hdLE09YVtkXTtpZihKTShNKSlicmVhaztjb25zdCBJPWAke019YCxHPWQ8YS5sZW5ndGgtMT9hW2QrMV06bnVsbDtpZihoPjAmJnZvaWQg'@; put 'MD09PUkpYnJlYWs7aWYoSSYmRyYmIm9iamVjdCI9PXR5cGVvZiBHJiZ2b2lkIDA9PT1HLm91dGxldHMpe2lmKCFabGUoSSxHLHYpKXJldHVybiBmO2QrPTJ9ZWxzZXtpZighWmxlKEkse30sdikpcmV0dXJuIGY7ZCsrfWgrK31yZXR1cm57bWF0Y2g6ITAscGF0aEluZGV4OmgsY29tbWFuZElu'@; put 'ZGV4OmR9fShjLGwsYSksaD1hLnNsaWNlKGQuY29tbWFuZEluZGV4KTtpZihkLm1hdGNoJiZkLnBhdGhJbmRleDxjLnNlZ21lbnRzLmxlbmd0aCl7Y29uc3QgZj1uZXcgWWwoYy5zZWdtZW50cy5zbGljZSgwLGQucGF0aEluZGV4KSx7fSk7cmV0dXJuIGYuY2hpbGRyZW5bS3NdPW5ldyBZbChj'@; put 'LnNlZ21lbnRzLnNsaWNlKGQucGF0aEluZGV4KSxjLmNoaWxkcmVuKSxRTShmLDAsaCl9cmV0dXJuIGQubWF0Y2gmJjA9PT1oLmxlbmd0aD9uZXcgWWwoYy5zZWdtZW50cyx7fSk6ZC5tYXRjaCYmIWMuaGFzQ2hpbGRyZW4oKT9uVyhjLGwsYSk6ZC5tYXRjaD9RTShjLDAsaCk6blcoYyxsLGEp'@; put 'fWZ1bmN0aW9uIFFNKGMsbCxhKXtpZigwPT09YS5sZW5ndGgpcmV0dXJuIG5ldyBZbChjLnNlZ21lbnRzLHt9KTt7Y29uc3QgZD1mdW5jdGlvbiBlRWUoYyl7cmV0dXJuIEpNKGNbMF0pP2NbMF0ub3V0bGV0czp7W0tzXTpjfX0oYSksaD17fTtpZihPYmplY3Qua2V5cyhkKS5zb21lKGY9PmYh'@; put 'PT1LcykmJmMuY2hpbGRyZW5bS3NdJiYxPT09Yy5udW1iZXJPZkNoaWxkcmVuJiYwPT09Yy5jaGlsZHJlbltLc10uc2VnbWVudHMubGVuZ3RoKXtjb25zdCBmPVFNKGMuY2hpbGRyZW5bS3NdLGwsYSk7cmV0dXJuIG5ldyBZbChjLnNlZ21lbnRzLGYuY2hpbGRyZW4pfXJldHVybiBPYmplY3Qu'@; put 'ZW50cmllcyhkKS5mb3JFYWNoKChbZix2XSk9Pnsic3RyaW5nIj09dHlwZW9mIHYmJih2PVt2XSksbnVsbCE9PXYmJihoW2ZdPXpsZShjLmNoaWxkcmVuW2ZdLGwsdikpfSksT2JqZWN0LmVudHJpZXMoYy5jaGlsZHJlbikuZm9yRWFjaCgoW2Ysdl0pPT57dm9pZCAwPT09ZFtmXSYmKGhbZl09'@; put 'dil9KSxuZXcgWWwoYy5zZWdtZW50cyxoKX19ZnVuY3Rpb24gblcoYyxsLGEpe2NvbnN0IGQ9Yy5zZWdtZW50cy5zbGljZSgwLGwpO2xldCBoPTA7Zm9yKDtoPGEubGVuZ3RoOyl7Y29uc3QgZj1hW2hdO2lmKEpNKGYpKXtjb25zdCBJPW5FZShmLm91dGxldHMpO3JldHVybiBuZXcgWWwoZCxJ'@; put 'KX1pZigwPT09aCYmelIoYVswXSkpe2QucHVzaChuZXcgWE0oYy5zZWdtZW50c1tsXS5wYXRoLFVsZShhWzBdKSkpLGgrKztjb250aW51ZX1jb25zdCB2PUpNKGYpP2Yub3V0bGV0c1tLc106YCR7Zn1gLE09aDxhLmxlbmd0aC0xP2FbaCsxXTpudWxsO3YmJk0mJnpSKE0pPyhkLnB1c2gobmV3'@; put 'IFhNKHYsVWxlKE0pKSksaCs9Mik6KGQucHVzaChuZXcgWE0odix7fSkpLGgrKyl9cmV0dXJuIG5ldyBZbChkLHt9KX1mdW5jdGlvbiBuRWUoYyl7Y29uc3QgbD17fTtyZXR1cm4gT2JqZWN0LmVudHJpZXMoYykuZm9yRWFjaCgoW2EsZF0pPT57InN0cmluZyI9PXR5cGVvZiBkJiYoZD1bZF0p'@; put 'LG51bGwhPT1kJiYobFthXT1uVyhuZXcgWWwoW10se30pLDAsZCkpfSksbH1mdW5jdGlvbiBVbGUoYyl7Y29uc3QgbD17fTtyZXR1cm4gT2JqZWN0LmVudHJpZXMoYykuZm9yRWFjaCgoW2EsZF0pPT5sW2FdPWAke2R9YCksbH1mdW5jdGlvbiBabGUoYyxsLGEpe3JldHVybiBjPT1hLnBhdGgm'@; put 'JnBwKGwsYS5wYXJhbWV0ZXJzKX1jb25zdCBleD0iaW1wZXJhdGl2ZSI7dmFyIFJvPWZ1bmN0aW9uKGMpe3JldHVybiBjW2MuTmF2aWdhdGlvblN0YXJ0PTBdPSJOYXZpZ2F0aW9uU3RhcnQiLGNbYy5OYXZpZ2F0aW9uRW5kPTFdPSJOYXZpZ2F0aW9uRW5kIixjW2MuTmF2aWdhdGlvbkNhbmNl'@; put 'bD0yXT0iTmF2aWdhdGlvbkNhbmNlbCIsY1tjLk5hdmlnYXRpb25FcnJvcj0zXT0iTmF2aWdhdGlvbkVycm9yIixjW2MuUm91dGVzUmVjb2duaXplZD00XT0iUm91dGVzUmVjb2duaXplZCIsY1tjLlJlc29sdmVTdGFydD01XT0iUmVzb2x2ZVN0YXJ0IixjW2MuUmVzb2x2ZUVuZD02XT0iUmVz'@; put 'b2x2ZUVuZCIsY1tjLkd1YXJkc0NoZWNrU3RhcnQ9N109Ikd1YXJkc0NoZWNrU3RhcnQiLGNbYy5HdWFyZHNDaGVja0VuZD04XT0iR3VhcmRzQ2hlY2tFbmQiLGNbYy5Sb3V0ZUNvbmZpZ0xvYWRTdGFydD05XT0iUm91dGVDb25maWdMb2FkU3RhcnQiLGNbYy5Sb3V0ZUNvbmZpZ0xvYWRFbmQ9'@; put 'MTBdPSJSb3V0ZUNvbmZpZ0xvYWRFbmQiLGNbYy5DaGlsZEFjdGl2YXRpb25TdGFydD0xMV09IkNoaWxkQWN0aXZhdGlvblN0YXJ0IixjW2MuQ2hpbGRBY3RpdmF0aW9uRW5kPTEyXT0iQ2hpbGRBY3RpdmF0aW9uRW5kIixjW2MuQWN0aXZhdGlvblN0YXJ0PTEzXT0iQWN0aXZhdGlvblN0YXJ0'@; put 'IixjW2MuQWN0aXZhdGlvbkVuZD0xNF09IkFjdGl2YXRpb25FbmQiLGNbYy5TY3JvbGw9MTVdPSJTY3JvbGwiLGNbYy5OYXZpZ2F0aW9uU2tpcHBlZD0xNl09Ik5hdmlnYXRpb25Ta2lwcGVkIixjfShSb3x8e30pO2NsYXNzIGdwe2NvbnN0cnVjdG9yKGwsYSl7dGhpcy5pZD1sLHRoaXMudXJs'@; put 'PWF9fWNsYXNzIFpSIGV4dGVuZHMgZ3B7Y29uc3RydWN0b3IobCxhLGQ9ImltcGVyYXRpdmUiLGg9bnVsbCl7c3VwZXIobCxhKSx0aGlzLnR5cGU9Um8uTmF2aWdhdGlvblN0YXJ0LHRoaXMubmF2aWdhdGlvblRyaWdnZXI9ZCx0aGlzLnJlc3RvcmVkU3RhdGU9aH10b1N0cmluZygpe3JldHVy'@; put 'bmBOYXZpZ2F0aW9uU3RhcnQoaWQ6ICR7dGhpcy5pZH0sIHVybDogJyR7dGhpcy51cmx9JylgfX1jbGFzcyBtcCBleHRlbmRzIGdwe2NvbnN0cnVjdG9yKGwsYSxkKXtzdXBlcihsLGEpLHRoaXMudXJsQWZ0ZXJSZWRpcmVjdHM9ZCx0aGlzLnR5cGU9Um8uTmF2aWdhdGlvbkVuZH10b1N0cmlu'@; put 'Zygpe3JldHVybmBOYXZpZ2F0aW9uRW5kKGlkOiAke3RoaXMuaWR9LCB1cmw6ICcke3RoaXMudXJsfScsIHVybEFmdGVyUmVkaXJlY3RzOiAnJHt0aGlzLnVybEFmdGVyUmVkaXJlY3RzfScpYH19dmFyIG1oPWZ1bmN0aW9uKGMpe3JldHVybiBjW2MuUmVkaXJlY3Q9MF09IlJlZGlyZWN0Iixj'@; put 'W2MuU3VwZXJzZWRlZEJ5TmV3TmF2aWdhdGlvbj0xXT0iU3VwZXJzZWRlZEJ5TmV3TmF2aWdhdGlvbiIsY1tjLk5vRGF0YUZyb21SZXNvbHZlcj0yXT0iTm9EYXRhRnJvbVJlc29sdmVyIixjW2MuR3VhcmRSZWplY3RlZD0zXT0iR3VhcmRSZWplY3RlZCIsY30obWh8fHt9KSxXUj1mdW5jdGlv'@; put 'bihjKXtyZXR1cm4gY1tjLklnbm9yZWRTYW1lVXJsTmF2aWdhdGlvbj0wXT0iSWdub3JlZFNhbWVVcmxOYXZpZ2F0aW9uIixjW2MuSWdub3JlZEJ5VXJsSGFuZGxpbmdTdHJhdGVneT0xXT0iSWdub3JlZEJ5VXJsSGFuZGxpbmdTdHJhdGVneSIsY30oV1J8fHt9KTtjbGFzcyBuYiBleHRlbmRz'@; put 'IGdwe2NvbnN0cnVjdG9yKGwsYSxkLGgpe3N1cGVyKGwsYSksdGhpcy5yZWFzb249ZCx0aGlzLmNvZGU9aCx0aGlzLnR5cGU9Um8uTmF2aWdhdGlvbkNhbmNlbH10b1N0cmluZygpe3JldHVybmBOYXZpZ2F0aW9uQ2FuY2VsKGlkOiAke3RoaXMuaWR9LCB1cmw6ICcke3RoaXMudXJsfScpYH19'@; put 'Y2xhc3MgcmIgZXh0ZW5kcyBncHtjb25zdHJ1Y3RvcihsLGEsZCxoKXtzdXBlcihsLGEpLHRoaXMucmVhc29uPWQsdGhpcy5jb2RlPWgsdGhpcy50eXBlPVJvLk5hdmlnYXRpb25Ta2lwcGVkfX1jbGFzcyBZUiBleHRlbmRzIGdwe2NvbnN0cnVjdG9yKGwsYSxkLGgpe3N1cGVyKGwsYSksdGhp'@; put 'cy5lcnJvcj1kLHRoaXMudGFyZ2V0PWgsdGhpcy50eXBlPVJvLk5hdmlnYXRpb25FcnJvcn10b1N0cmluZygpe3JldHVybmBOYXZpZ2F0aW9uRXJyb3IoaWQ6ICR7dGhpcy5pZH0sIHVybDogJyR7dGhpcy51cmx9JywgZXJyb3I6ICR7dGhpcy5lcnJvcn0pYH19Y2xhc3MgV2xlIGV4dGVuZHMg'@; put 'Z3B7Y29uc3RydWN0b3IobCxhLGQsaCl7c3VwZXIobCxhKSx0aGlzLnVybEFmdGVyUmVkaXJlY3RzPWQsdGhpcy5zdGF0ZT1oLHRoaXMudHlwZT1Sby5Sb3V0ZXNSZWNvZ25pemVkfXRvU3RyaW5nKCl7cmV0dXJuYFJvdXRlc1JlY29nbml6ZWQoaWQ6ICR7dGhpcy5pZH0sIHVybDogJyR7dGhp'@; put 'cy51cmx9JywgdXJsQWZ0ZXJSZWRpcmVjdHM6ICcke3RoaXMudXJsQWZ0ZXJSZWRpcmVjdHN9Jywgc3RhdGU6ICR7dGhpcy5zdGF0ZX0pYH19Y2xhc3MgckVlIGV4dGVuZHMgZ3B7Y29uc3RydWN0b3IobCxhLGQsaCl7c3VwZXIobCxhKSx0aGlzLnVybEFmdGVyUmVkaXJlY3RzPWQsdGhpcy5z'@; put 'dGF0ZT1oLHRoaXMudHlwZT1Sby5HdWFyZHNDaGVja1N0YXJ0fXRvU3RyaW5nKCl7cmV0dXJuYEd1YXJkc0NoZWNrU3RhcnQoaWQ6ICR7dGhpcy5pZH0sIHVybDogJyR7dGhpcy51cmx9JywgdXJsQWZ0ZXJSZWRpcmVjdHM6ICcke3RoaXMudXJsQWZ0ZXJSZWRpcmVjdHN9Jywgc3RhdGU6ICR7'@; put 'dGhpcy5zdGF0ZX0pYH19Y2xhc3MgaUVlIGV4dGVuZHMgZ3B7Y29uc3RydWN0b3IobCxhLGQsaCxmKXtzdXBlcihsLGEpLHRoaXMudXJsQWZ0ZXJSZWRpcmVjdHM9ZCx0aGlzLnN0YXRlPWgsdGhpcy5zaG91bGRBY3RpdmF0ZT1mLHRoaXMudHlwZT1Sby5HdWFyZHNDaGVja0VuZH10b1N0cmlu'@; put 'Zygpe3JldHVybmBHdWFyZHNDaGVja0VuZChpZDogJHt0aGlzLmlkfSwgdXJsOiAnJHt0aGlzLnVybH0nLCB1cmxBZnRlclJlZGlyZWN0czogJyR7dGhpcy51cmxBZnRlclJlZGlyZWN0c30nLCBzdGF0ZTogJHt0aGlzLnN0YXRlfSwgc2hvdWxkQWN0aXZhdGU6ICR7dGhpcy5zaG91bGRBY3Rp'@; put 'dmF0ZX0pYH19Y2xhc3MgYUVlIGV4dGVuZHMgZ3B7Y29uc3RydWN0b3IobCxhLGQsaCl7c3VwZXIobCxhKSx0aGlzLnVybEFmdGVyUmVkaXJlY3RzPWQsdGhpcy5zdGF0ZT1oLHRoaXMudHlwZT1Sby5SZXNvbHZlU3RhcnR9dG9TdHJpbmcoKXtyZXR1cm5gUmVzb2x2ZVN0YXJ0KGlkOiAke3Ro'@; put 'aXMuaWR9LCB1cmw6ICcke3RoaXMudXJsfScsIHVybEFmdGVyUmVkaXJlY3RzOiAnJHt0aGlzLnVybEFmdGVyUmVkaXJlY3RzfScsIHN0YXRlOiAke3RoaXMuc3RhdGV9KWB9fWNsYXNzIHNFZSBleHRlbmRzIGdwe2NvbnN0cnVjdG9yKGwsYSxkLGgpe3N1cGVyKGwsYSksdGhpcy51cmxBZnRl'@; put 'clJlZGlyZWN0cz1kLHRoaXMuc3RhdGU9aCx0aGlzLnR5cGU9Um8uUmVzb2x2ZUVuZH10b1N0cmluZygpe3JldHVybmBSZXNvbHZlRW5kKGlkOiAke3RoaXMuaWR9LCB1cmw6ICcke3RoaXMudXJsfScsIHVybEFmdGVyUmVkaXJlY3RzOiAnJHt0aGlzLnVybEFmdGVyUmVkaXJlY3RzfScsIHN0'@; put 'YXRlOiAke3RoaXMuc3RhdGV9KWB9fWNsYXNzIG9FZXtjb25zdHJ1Y3RvcihsKXt0aGlzLnJvdXRlPWwsdGhpcy50eXBlPVJvLlJvdXRlQ29uZmlnTG9hZFN0YXJ0fXRvU3RyaW5nKCl7cmV0dXJuYFJvdXRlQ29uZmlnTG9hZFN0YXJ0KHBhdGg6ICR7dGhpcy5yb3V0ZS5wYXRofSlgfX1jbGFz'@; put 'cyBsRWV7Y29uc3RydWN0b3IobCl7dGhpcy5yb3V0ZT1sLHRoaXMudHlwZT1Sby5Sb3V0ZUNvbmZpZ0xvYWRFbmR9dG9TdHJpbmcoKXtyZXR1cm5gUm91dGVDb25maWdMb2FkRW5kKHBhdGg6ICR7dGhpcy5yb3V0ZS5wYXRofSlgfX1jbGFzcyBjRWV7Y29uc3RydWN0b3IobCl7dGhpcy5zbmFw'@; put 'c2hvdD1sLHRoaXMudHlwZT1Sby5DaGlsZEFjdGl2YXRpb25TdGFydH10b1N0cmluZygpe3JldHVybmBDaGlsZEFjdGl2YXRpb25TdGFydChwYXRoOiAnJHt0aGlzLnNuYXBzaG90LnJvdXRlQ29uZmlnJiZ0aGlzLnNuYXBzaG90LnJvdXRlQ29uZmlnLnBhdGh8fCIifScpYH19Y2xhc3MgdUVl'@; put 'e2NvbnN0cnVjdG9yKGwpe3RoaXMuc25hcHNob3Q9bCx0aGlzLnR5cGU9Um8uQ2hpbGRBY3RpdmF0aW9uRW5kfXRvU3RyaW5nKCl7cmV0dXJuYENoaWxkQWN0aXZhdGlvbkVuZChwYXRoOiAnJHt0aGlzLnNuYXBzaG90LnJvdXRlQ29uZmlnJiZ0aGlzLnNuYXBzaG90LnJvdXRlQ29uZmlnLnBh'@; put 'dGh8fCIifScpYH19Y2xhc3MgZEVle2NvbnN0cnVjdG9yKGwpe3RoaXMuc25hcHNob3Q9bCx0aGlzLnR5cGU9Um8uQWN0aXZhdGlvblN0YXJ0fXRvU3RyaW5nKCl7cmV0dXJuYEFjdGl2YXRpb25TdGFydChwYXRoOiAnJHt0aGlzLnNuYXBzaG90LnJvdXRlQ29uZmlnJiZ0aGlzLnNuYXBzaG90'@; put 'LnJvdXRlQ29uZmlnLnBhdGh8fCIifScpYH19Y2xhc3MgaEVle2NvbnN0cnVjdG9yKGwpe3RoaXMuc25hcHNob3Q9bCx0aGlzLnR5cGU9Um8uQWN0aXZhdGlvbkVuZH10b1N0cmluZygpe3JldHVybmBBY3RpdmF0aW9uRW5kKHBhdGg6ICcke3RoaXMuc25hcHNob3Qucm91dGVDb25maWcmJnRo'@; put 'aXMuc25hcHNob3Qucm91dGVDb25maWcucGF0aHx8IiJ9JylgfX1jbGFzcyBZbGV7Y29uc3RydWN0b3IobCxhLGQpe3RoaXMucm91dGVyRXZlbnQ9bCx0aGlzLnBvc2l0aW9uPWEsdGhpcy5hbmNob3I9ZCx0aGlzLnR5cGU9Um8uU2Nyb2xsfXRvU3RyaW5nKCl7cmV0dXJuYFNjcm9sbChhbmNo'@; put 'b3I6ICcke3RoaXMuYW5jaG9yfScsIHBvc2l0aW9uOiAnJHt0aGlzLnBvc2l0aW9uP2Ake3RoaXMucG9zaXRpb25bMF19LCAke3RoaXMucG9zaXRpb25bMV19YDpudWxsfScpYH19Y2xhc3Mgcld7fWNsYXNzIGlXe2NvbnN0cnVjdG9yKGwpe3RoaXMudXJsPWx9fWNsYXNzIGZFZXtjb25zdHJ1'@; put 'Y3Rvcigpe3RoaXMub3V0bGV0PW51bGwsdGhpcy5yb3V0ZT1udWxsLHRoaXMuaW5qZWN0b3I9bnVsbCx0aGlzLmNoaWxkcmVuPW5ldyB0eCx0aGlzLmF0dGFjaFJlZj1udWxsfX1sZXQgdHg9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuY29udGV4dHM9bmV3IE1hcH1vbkNoaWxk'@; put 'T3V0bGV0Q3JlYXRlZChhLGQpe2NvbnN0IGg9dGhpcy5nZXRPckNyZWF0ZUNvbnRleHQoYSk7aC5vdXRsZXQ9ZCx0aGlzLmNvbnRleHRzLnNldChhLGgpfW9uQ2hpbGRPdXRsZXREZXN0cm95ZWQoYSl7Y29uc3QgZD10aGlzLmdldENvbnRleHQoYSk7ZCYmKGQub3V0bGV0PW51bGwsZC5hdHRh'@; put 'Y2hSZWY9bnVsbCl9b25PdXRsZXREZWFjdGl2YXRlZCgpe2NvbnN0IGE9dGhpcy5jb250ZXh0cztyZXR1cm4gdGhpcy5jb250ZXh0cz1uZXcgTWFwLGF9b25PdXRsZXRSZUF0dGFjaGVkKGEpe3RoaXMuY29udGV4dHM9YX1nZXRPckNyZWF0ZUNvbnRleHQoYSl7bGV0IGQ9dGhpcy5nZXRDb250'@; put 'ZXh0KGEpO3JldHVybiBkfHwoZD1uZXcgZkVlLHRoaXMuY29udGV4dHMuc2V0KGEsZCkpLGR9Z2V0Q29udGV4dChhKXtyZXR1cm4gdGhpcy5jb250ZXh0cy5nZXQoYSl8fG51bGx9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlz'@; put 'Llx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pfX1yZXR1cm4gY30pKCk7Y2xhc3MgR2xle2NvbnN0cnVjdG9yKGwpe3RoaXMuX3Jvb3Q9bH1nZXQgcm9vdCgpe3JldHVybiB0aGlzLl9yb290LnZhbHVlfXBhcmVudChsKXtjb25z'@; put 'dCBhPXRoaXMucGF0aEZyb21Sb290KGwpO3JldHVybiBhLmxlbmd0aD4xP2FbYS5sZW5ndGgtMl06bnVsbH1jaGlsZHJlbihsKXtjb25zdCBhPWFXKGwsdGhpcy5fcm9vdCk7cmV0dXJuIGE/YS5jaGlsZHJlbi5tYXAoZD0+ZC52YWx1ZSk6W119Zmlyc3RDaGlsZChsKXtjb25zdCBhPWFXKGws'@; put 'dGhpcy5fcm9vdCk7cmV0dXJuIGEmJmEuY2hpbGRyZW4ubGVuZ3RoPjA/YS5jaGlsZHJlblswXS52YWx1ZTpudWxsfXNpYmxpbmdzKGwpe2NvbnN0IGE9c1cobCx0aGlzLl9yb290KTtyZXR1cm4gYS5sZW5ndGg8Mj9bXTphW2EubGVuZ3RoLTJdLmNoaWxkcmVuLm1hcChoPT5oLnZhbHVlKS5m'@; put 'aWx0ZXIoaD0+aCE9PWwpfXBhdGhGcm9tUm9vdChsKXtyZXR1cm4gc1cobCx0aGlzLl9yb290KS5tYXAoYT0+YS52YWx1ZSl9fWZ1bmN0aW9uIGFXKGMsbCl7aWYoYz09PWwudmFsdWUpcmV0dXJuIGw7Zm9yKGNvbnN0IGEgb2YgbC5jaGlsZHJlbil7Y29uc3QgZD1hVyhjLGEpO2lmKGQpcmV0'@; put 'dXJuIGR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gc1coYyxsKXtpZihjPT09bC52YWx1ZSlyZXR1cm5bbF07Zm9yKGNvbnN0IGEgb2YgbC5jaGlsZHJlbil7Y29uc3QgZD1zVyhjLGEpO2lmKGQubGVuZ3RoKXJldHVybiBkLnVuc2hpZnQobCksZH1yZXR1cm5bXX1jbGFzcyBxZntjb25zdHJ1Y3Rv'@; put 'cihsLGEpe3RoaXMudmFsdWU9bCx0aGlzLmNoaWxkcmVuPWF9dG9TdHJpbmcoKXtyZXR1cm5gVHJlZU5vZGUoJHt0aGlzLnZhbHVlfSlgfX1mdW5jdGlvbiBpYihjKXtjb25zdCBsPXt9O3JldHVybiBjJiZjLmNoaWxkcmVuLmZvckVhY2goYT0+bFthLnZhbHVlLm91dGxldF09YSksbH1jbGFz'@; put 'cyAkbGUgZXh0ZW5kcyBHbGV7Y29uc3RydWN0b3IobCxhKXtzdXBlcihsKSx0aGlzLnNuYXBzaG90PWEsY1codGhpcyxsKX10b1N0cmluZygpe3JldHVybiB0aGlzLnNuYXBzaG90LnRvU3RyaW5nKCl9fWZ1bmN0aW9uIEtsZShjKXtjb25zdCBsPWZ1bmN0aW9uIHBFZShjKXtjb25zdCBmPW5l'@; put 'dyBsVyhbXSx7fSx7fSwiIix7fSxLcyxjLG51bGwse30pO3JldHVybiBuZXcgWGxlKCIiLG5ldyBxZihmLFtdKSl9KGMpLGE9bmV3IEpyKFtuZXcgWE0oIiIse30pXSksZD1uZXcgSnIoe30pLGg9bmV3IEpyKHt9KSxmPW5ldyBKcih7fSksdj1uZXcgSnIoIiIpLE09bmV3IHl1KGEsZCxmLHYs'@; put 'aCxLcyxjLGwucm9vdCk7cmV0dXJuIE0uc25hcHNob3Q9bC5yb290LG5ldyAkbGUobmV3IHFmKE0sW10pLGwpfWNsYXNzIHl1e2NvbnN0cnVjdG9yKGwsYSxkLGgsZix2LE0sSSl7dGhpcy51cmxTdWJqZWN0PWwsdGhpcy5wYXJhbXNTdWJqZWN0PWEsdGhpcy5xdWVyeVBhcmFtc1N1YmplY3Q9'@; put 'ZCx0aGlzLmZyYWdtZW50U3ViamVjdD1oLHRoaXMuZGF0YVN1YmplY3Q9Zix0aGlzLm91dGxldD12LHRoaXMuY29tcG9uZW50PU0sdGhpcy5fZnV0dXJlU25hcHNob3Q9SSx0aGlzLnRpdGxlPXRoaXMuZGF0YVN1YmplY3Q/LnBpcGUoUHIoRz0+R1tLTV0pKT8/ZHModm9pZCAwKSx0aGlzLnVy'@; put 'bD1sLHRoaXMucGFyYW1zPWEsdGhpcy5xdWVyeVBhcmFtcz1kLHRoaXMuZnJhZ21lbnQ9aCx0aGlzLmRhdGE9Zn1nZXQgcm91dGVDb25maWcoKXtyZXR1cm4gdGhpcy5fZnV0dXJlU25hcHNob3Qucm91dGVDb25maWd9Z2V0IHJvb3QoKXtyZXR1cm4gdGhpcy5fcm91dGVyU3RhdGUucm9vdH1n'@; put 'ZXQgcGFyZW50KCl7cmV0dXJuIHRoaXMuX3JvdXRlclN0YXRlLnBhcmVudCh0aGlzKX1nZXQgZmlyc3RDaGlsZCgpe3JldHVybiB0aGlzLl9yb3V0ZXJTdGF0ZS5maXJzdENoaWxkKHRoaXMpfWdldCBjaGlsZHJlbigpe3JldHVybiB0aGlzLl9yb3V0ZXJTdGF0ZS5jaGlsZHJlbih0aGlzKX1n'@; put 'ZXQgcGF0aEZyb21Sb290KCl7cmV0dXJuIHRoaXMuX3JvdXRlclN0YXRlLnBhdGhGcm9tUm9vdCh0aGlzKX1nZXQgcGFyYW1NYXAoKXtyZXR1cm4gdGhpcy5fcGFyYW1NYXA/Pz10aGlzLnBhcmFtcy5waXBlKFByKGw9Pkp5KGwpKSksdGhpcy5fcGFyYW1NYXB9Z2V0IHF1ZXJ5UGFyYW1NYXAo'@; put 'KXtyZXR1cm4gdGhpcy5fcXVlcnlQYXJhbU1hcD8/PXRoaXMucXVlcnlQYXJhbXMucGlwZShQcihsPT5KeShsKSkpLHRoaXMuX3F1ZXJ5UGFyYW1NYXB9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5zbmFwc2hvdD90aGlzLnNuYXBzaG90LnRvU3RyaW5nKCk6YEZ1dHVyZSgke3RoaXMuX2Z1dHVy'@; put 'ZVNuYXBzaG90fSlgfX1mdW5jdGlvbiBvVyhjLGwsYT0iZW1wdHlPbmx5Iil7bGV0IGQ7Y29uc3R7cm91dGVDb25maWc6aH09YztyZXR1cm4gZD1udWxsPT09bHx8ImFsd2F5cyIhPT1hJiYiIiE9PWg/LnBhdGgmJihsLmNvbXBvbmVudHx8bC5yb3V0ZUNvbmZpZz8ubG9hZENvbXBvbmVudCk/'@; put 'e3BhcmFtczp7Li4uYy5wYXJhbXN9LGRhdGE6ey4uLmMuZGF0YX0scmVzb2x2ZTp7Li4uYy5kYXRhLC4uLmMuX3Jlc29sdmVkRGF0YT8/e319fTp7cGFyYW1zOnsuLi5sLnBhcmFtcywuLi5jLnBhcmFtc30sZGF0YTp7Li4ubC5kYXRhLC4uLmMuZGF0YX0scmVzb2x2ZTp7Li4uYy5kYXRhLC4u'@; put 'LmwuZGF0YSwuLi5oPy5kYXRhLC4uLmMuX3Jlc29sdmVkRGF0YX19LGgmJkpsZShoKSYmKGQucmVzb2x2ZVtLTV09aC50aXRsZSksZH1jbGFzcyBsV3tnZXQgdGl0bGUoKXtyZXR1cm4gdGhpcy5kYXRhPy5bS01dfWNvbnN0cnVjdG9yKGwsYSxkLGgsZix2LE0sSSxHKXt0aGlzLnVybD1sLHRo'@; put 'aXMucGFyYW1zPWEsdGhpcy5xdWVyeVBhcmFtcz1kLHRoaXMuZnJhZ21lbnQ9aCx0aGlzLmRhdGE9Zix0aGlzLm91dGxldD12LHRoaXMuY29tcG9uZW50PU0sdGhpcy5yb3V0ZUNvbmZpZz1JLHRoaXMuX3Jlc29sdmU9R31nZXQgcm9vdCgpe3JldHVybiB0aGlzLl9yb3V0ZXJTdGF0ZS5yb290'@; put 'fWdldCBwYXJlbnQoKXtyZXR1cm4gdGhpcy5fcm91dGVyU3RhdGUucGFyZW50KHRoaXMpfWdldCBmaXJzdENoaWxkKCl7cmV0dXJuIHRoaXMuX3JvdXRlclN0YXRlLmZpcnN0Q2hpbGQodGhpcyl9Z2V0IGNoaWxkcmVuKCl7cmV0dXJuIHRoaXMuX3JvdXRlclN0YXRlLmNoaWxkcmVuKHRoaXMp'@; put 'fWdldCBwYXRoRnJvbVJvb3QoKXtyZXR1cm4gdGhpcy5fcm91dGVyU3RhdGUucGF0aEZyb21Sb290KHRoaXMpfWdldCBwYXJhbU1hcCgpe3JldHVybiB0aGlzLl9wYXJhbU1hcD8/PUp5KHRoaXMucGFyYW1zKSx0aGlzLl9wYXJhbU1hcH1nZXQgcXVlcnlQYXJhbU1hcCgpe3JldHVybiB0aGlz'@; put 'Ll9xdWVyeVBhcmFtTWFwPz89SnkodGhpcy5xdWVyeVBhcmFtcyksdGhpcy5fcXVlcnlQYXJhbU1hcH10b1N0cmluZygpe3JldHVybmBSb3V0ZSh1cmw6JyR7dGhpcy51cmwubWFwKGQ9PmQudG9TdHJpbmcoKSkuam9pbigiLyIpfScsIHBhdGg6JyR7dGhpcy5yb3V0ZUNvbmZpZz90aGlzLnJv'@; put 'dXRlQ29uZmlnLnBhdGg6IiJ9JylgfX1jbGFzcyBYbGUgZXh0ZW5kcyBHbGV7Y29uc3RydWN0b3IobCxhKXtzdXBlcihhKSx0aGlzLnVybD1sLGNXKHRoaXMsYSl9dG9TdHJpbmcoKXtyZXR1cm4gcWxlKHRoaXMuX3Jvb3QpfX1mdW5jdGlvbiBjVyhjLGwpe2wudmFsdWUuX3JvdXRlclN0YXRl'@; put 'PWMsbC5jaGlsZHJlbi5mb3JFYWNoKGE9PmNXKGMsYSkpfWZ1bmN0aW9uIHFsZShjKXtjb25zdCBsPWMuY2hpbGRyZW4ubGVuZ3RoPjA/YCB7ICR7Yy5jaGlsZHJlbi5tYXAocWxlKS5qb2luKCIsICIpfSB9IGA6IiI7cmV0dXJuYCR7Yy52YWx1ZX0ke2x9YH1mdW5jdGlvbiB1VyhjKXtpZihj'@; put 'LnNuYXBzaG90KXtjb25zdCBsPWMuc25hcHNob3QsYT1jLl9mdXR1cmVTbmFwc2hvdDtjLnNuYXBzaG90PWEscHAobC5xdWVyeVBhcmFtcyxhLnF1ZXJ5UGFyYW1zKXx8Yy5xdWVyeVBhcmFtc1N1YmplY3QubmV4dChhLnF1ZXJ5UGFyYW1zKSxsLmZyYWdtZW50IT09YS5mcmFnbWVudCYmYy5m'@; put 'cmFnbWVudFN1YmplY3QubmV4dChhLmZyYWdtZW50KSxwcChsLnBhcmFtcyxhLnBhcmFtcyl8fGMucGFyYW1zU3ViamVjdC5uZXh0KGEucGFyYW1zKSxmdW5jdGlvbiBJeGUoYyxsKXtpZihjLmxlbmd0aCE9PWwubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgYT0wO2E8Yy5sZW5ndGg7KythKWlm'@; put 'KCFwcChjW2FdLGxbYV0pKXJldHVybiExO3JldHVybiEwfShsLnVybCxhLnVybCl8fGMudXJsU3ViamVjdC5uZXh0KGEudXJsKSxwcChsLmRhdGEsYS5kYXRhKXx8Yy5kYXRhU3ViamVjdC5uZXh0KGEuZGF0YSl9ZWxzZSBjLnNuYXBzaG90PWMuX2Z1dHVyZVNuYXBzaG90LGMuZGF0YVN1Ympl'@; put 'Y3QubmV4dChjLl9mdXR1cmVTbmFwc2hvdC5kYXRhKX1mdW5jdGlvbiBkVyhjLGwpe2NvbnN0IGE9cHAoYy5wYXJhbXMsbC5wYXJhbXMpJiZmdW5jdGlvbiBQeGUoYyxsKXtyZXR1cm4gSjgoYyxsKSYmYy5ldmVyeSgoYSxkKT0+cHAoYS5wYXJhbWV0ZXJzLGxbZF0ucGFyYW1ldGVycykpfShj'@; put 'LnVybCxsLnVybCk7cmV0dXJuIGEmJiEoIWMucGFyZW50IT0hbC5wYXJlbnQpJiYoIWMucGFyZW50fHxkVyhjLnBhcmVudCxsLnBhcmVudCkpfWZ1bmN0aW9uIEpsZShjKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGMudGl0bGV8fG51bGw9PT1jLnRpdGxlfWxldCBuZz0oKCk9PntjbGFzcyBj'@; put 'e2NvbnN0cnVjdG9yKCl7dGhpcy5hY3RpdmF0ZWQ9bnVsbCx0aGlzLl9hY3RpdmF0ZWRSb3V0ZT1udWxsLHRoaXMubmFtZT1Lcyx0aGlzLmFjdGl2YXRlRXZlbnRzPW5ldyBLcix0aGlzLmRlYWN0aXZhdGVFdmVudHM9bmV3IEtyLHRoaXMuYXR0YWNoRXZlbnRzPW5ldyBLcix0aGlzLmRldGFj'@; put 'aEV2ZW50cz1uZXcgS3IsdGhpcy5wYXJlbnRDb250ZXh0cz1oaSh0eCksdGhpcy5sb2NhdGlvbj1oaShUcyksdGhpcy5jaGFuZ2VEZXRlY3Rvcj1oaSh4byksdGhpcy5lbnZpcm9ubWVudEluamVjdG9yPWhpKHFsKSx0aGlzLmlucHV0QmluZGVyPWhpKEdSLHtvcHRpb25hbDohMH0pLHRoaXMu'@; put 'c3VwcG9ydHNCaW5kaW5nVG9Db21wb25lbnRJbnB1dHM9ITB9Z2V0IGFjdGl2YXRlZENvbXBvbmVudFJlZigpe3JldHVybiB0aGlzLmFjdGl2YXRlZH1uZ09uQ2hhbmdlcyhhKXtpZihhLm5hbWUpe2NvbnN0e2ZpcnN0Q2hhbmdlOmQscHJldmlvdXNWYWx1ZTpofT1hLm5hbWU7aWYoZClyZXR1'@; put 'cm47dGhpcy5pc1RyYWNrZWRJblBhcmVudENvbnRleHRzKGgpJiYodGhpcy5kZWFjdGl2YXRlKCksdGhpcy5wYXJlbnRDb250ZXh0cy5vbkNoaWxkT3V0bGV0RGVzdHJveWVkKGgpKSx0aGlzLmluaXRpYWxpemVPdXRsZXRXaXRoTmFtZSgpfX1uZ09uRGVzdHJveSgpe3RoaXMuaXNUcmFja2Vk'@; put 'SW5QYXJlbnRDb250ZXh0cyh0aGlzLm5hbWUpJiZ0aGlzLnBhcmVudENvbnRleHRzLm9uQ2hpbGRPdXRsZXREZXN0cm95ZWQodGhpcy5uYW1lKSx0aGlzLmlucHV0QmluZGVyPy51bnN1YnNjcmliZUZyb21Sb3V0ZURhdGEodGhpcyl9aXNUcmFja2VkSW5QYXJlbnRDb250ZXh0cyhhKXtyZXR1'@; put 'cm4gdGhpcy5wYXJlbnRDb250ZXh0cy5nZXRDb250ZXh0KGEpPy5vdXRsZXQ9PT10aGlzfW5nT25Jbml0KCl7dGhpcy5pbml0aWFsaXplT3V0bGV0V2l0aE5hbWUoKX1pbml0aWFsaXplT3V0bGV0V2l0aE5hbWUoKXtpZih0aGlzLnBhcmVudENvbnRleHRzLm9uQ2hpbGRPdXRsZXRDcmVhdGVk'@; put 'KHRoaXMubmFtZSx0aGlzKSx0aGlzLmFjdGl2YXRlZClyZXR1cm47Y29uc3QgYT10aGlzLnBhcmVudENvbnRleHRzLmdldENvbnRleHQodGhpcy5uYW1lKTthPy5yb3V0ZSYmKGEuYXR0YWNoUmVmP3RoaXMuYXR0YWNoKGEuYXR0YWNoUmVmLGEucm91dGUpOnRoaXMuYWN0aXZhdGVXaXRoKGEu'@; put 'cm91dGUsYS5pbmplY3RvcikpfWdldCBpc0FjdGl2YXRlZCgpe3JldHVybiEhdGhpcy5hY3RpdmF0ZWR9Z2V0IGNvbXBvbmVudCgpe2lmKCF0aGlzLmFjdGl2YXRlZCl0aHJvdyBuZXcgbnIoNDAxMiwhMSk7cmV0dXJuIHRoaXMuYWN0aXZhdGVkLmluc3RhbmNlfWdldCBhY3RpdmF0ZWRSb3V0'@; put 'ZSgpe2lmKCF0aGlzLmFjdGl2YXRlZCl0aHJvdyBuZXcgbnIoNDAxMiwhMSk7cmV0dXJuIHRoaXMuX2FjdGl2YXRlZFJvdXRlfWdldCBhY3RpdmF0ZWRSb3V0ZURhdGEoKXtyZXR1cm4gdGhpcy5fYWN0aXZhdGVkUm91dGU/dGhpcy5fYWN0aXZhdGVkUm91dGUuc25hcHNob3QuZGF0YTp7fX1k'@; put 'ZXRhY2goKXtpZighdGhpcy5hY3RpdmF0ZWQpdGhyb3cgbmV3IG5yKDQwMTIsITEpO3RoaXMubG9jYXRpb24uZGV0YWNoKCk7Y29uc3QgYT10aGlzLmFjdGl2YXRlZDtyZXR1cm4gdGhpcy5hY3RpdmF0ZWQ9bnVsbCx0aGlzLl9hY3RpdmF0ZWRSb3V0ZT1udWxsLHRoaXMuZGV0YWNoRXZlbnRz'@; put 'LmVtaXQoYS5pbnN0YW5jZSksYX1hdHRhY2goYSxkKXt0aGlzLmFjdGl2YXRlZD1hLHRoaXMuX2FjdGl2YXRlZFJvdXRlPWQsdGhpcy5sb2NhdGlvbi5pbnNlcnQoYS5ob3N0VmlldyksdGhpcy5pbnB1dEJpbmRlcj8uYmluZEFjdGl2YXRlZFJvdXRlVG9PdXRsZXRDb21wb25lbnQodGhpcyks'@; put 'dGhpcy5hdHRhY2hFdmVudHMuZW1pdChhLmluc3RhbmNlKX1kZWFjdGl2YXRlKCl7aWYodGhpcy5hY3RpdmF0ZWQpe2NvbnN0IGE9dGhpcy5jb21wb25lbnQ7dGhpcy5hY3RpdmF0ZWQuZGVzdHJveSgpLHRoaXMuYWN0aXZhdGVkPW51bGwsdGhpcy5fYWN0aXZhdGVkUm91dGU9bnVsbCx0aGlz'@; put 'LmRlYWN0aXZhdGVFdmVudHMuZW1pdChhKX19YWN0aXZhdGVXaXRoKGEsZCl7aWYodGhpcy5pc0FjdGl2YXRlZCl0aHJvdyBuZXcgbnIoNDAxMywhMSk7dGhpcy5fYWN0aXZhdGVkUm91dGU9YTtjb25zdCBoPXRoaXMubG9jYXRpb24sdj1hLnNuYXBzaG90LmNvbXBvbmVudCxNPXRoaXMucGFy'@; put 'ZW50Q29udGV4dHMuZ2V0T3JDcmVhdGVDb250ZXh0KHRoaXMubmFtZSkuY2hpbGRyZW4sST1uZXcgaFcoYSxNLGguaW5qZWN0b3IpO3RoaXMuYWN0aXZhdGVkPWguY3JlYXRlQ29tcG9uZW50KHYse2luZGV4OmgubGVuZ3RoLGluamVjdG9yOkksZW52aXJvbm1lbnRJbmplY3RvcjpkPz90aGlz'@; put 'LmVudmlyb25tZW50SW5qZWN0b3J9KSx0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpLHRoaXMuaW5wdXRCaW5kZXI/LmJpbmRBY3RpdmF0ZWRSb3V0ZVRvT3V0bGV0Q29tcG9uZW50KHRoaXMpLHRoaXMuYWN0aXZhdGVFdmVudHMuZW1pdCh0aGlzLmFjdGl2YXRlZC5pbnN0YW5j'@; put 'ZSl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NWRpcj1Fcih7dHlwZTpjLHNlbGVjdG9yczpbWyJyb3V0ZXItb3V0bGV0Il1dLGlucHV0czp7bmFtZToibmFtZSJ9LG91dHB1dHM6e2FjdGl2YXRlRXZlbnRzOiJh'@; put 'Y3RpdmF0ZSIsZGVhY3RpdmF0ZUV2ZW50czoiZGVhY3RpdmF0ZSIsYXR0YWNoRXZlbnRzOiJhdHRhY2giLGRldGFjaEV2ZW50czoiZGV0YWNoIn0sZXhwb3J0QXM6WyJvdXRsZXQiXSxzdGFuZGFsb25lOiEwLGZlYXR1cmVzOltibF19KX19cmV0dXJuIGN9KSgpO2NsYXNzIGhXe19fbmdPdXRs'@; put 'ZXRJbmplY3RvcihsKXtyZXR1cm4gbmV3IGhXKHRoaXMucm91dGUsdGhpcy5jaGlsZENvbnRleHRzLGwpfWNvbnN0cnVjdG9yKGwsYSxkKXt0aGlzLnJvdXRlPWwsdGhpcy5jaGlsZENvbnRleHRzPWEsdGhpcy5wYXJlbnQ9ZH1nZXQobCxhKXtyZXR1cm4gbD09PXl1P3RoaXMucm91dGU6bD09'@; put 'PXR4P3RoaXMuY2hpbGRDb250ZXh0czp0aGlzLnBhcmVudC5nZXQobCxhKX19Y29uc3QgR1I9bmV3IFN0KCIiKTtsZXQgUWxlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLm91dGxldERhdGFTdWJzY3JpcHRpb25zPW5ldyBNYXB9YmluZEFjdGl2YXRlZFJvdXRlVG9PdXRsZXRD'@; put 'b21wb25lbnQoYSl7dGhpcy51bnN1YnNjcmliZUZyb21Sb3V0ZURhdGEoYSksdGhpcy5zdWJzY3JpYmVUb1JvdXRlRGF0YShhKX11bnN1YnNjcmliZUZyb21Sb3V0ZURhdGEoYSl7dGhpcy5vdXRsZXREYXRhU3Vic2NyaXB0aW9ucy5nZXQoYSk/LnVuc3Vic2NyaWJlKCksdGhpcy5vdXRsZXRE'@; put 'YXRhU3Vic2NyaXB0aW9ucy5kZWxldGUoYSl9c3Vic2NyaWJlVG9Sb3V0ZURhdGEoYSl7Y29uc3R7YWN0aXZhdGVkUm91dGU6ZH09YSxoPVg4KFtkLnF1ZXJ5UGFyYW1zLGQucGFyYW1zLGQuZGF0YV0pLnBpcGUoajEoKFtmLHYsTV0sSSk9PihNPXsuLi5mLC4uLnYsLi4uTX0sMD09PUk/ZHMo'@; put 'TSk6UHJvbWlzZS5yZXNvbHZlKE0pKSkpLnN1YnNjcmliZShmPT57aWYoIWEuaXNBY3RpdmF0ZWR8fCFhLmFjdGl2YXRlZENvbXBvbmVudFJlZnx8YS5hY3RpdmF0ZWRSb3V0ZSE9PWR8fG51bGw9PT1kLmNvbXBvbmVudClyZXR1cm4gdm9pZCB0aGlzLnVuc3Vic2NyaWJlRnJvbVJvdXRlRGF0'@; put 'YShhKTtjb25zdCB2PWZ1bmN0aW9uIFRfZShjKXtjb25zdCBsPUJzKGMpO2lmKCFsKXJldHVybiBudWxsO2NvbnN0IGE9bmV3IGs4KGwpO3JldHVybntnZXQgc2VsZWN0b3IoKXtyZXR1cm4gYS5zZWxlY3Rvcn0sZ2V0IHR5cGUoKXtyZXR1cm4gYS5jb21wb25lbnRUeXBlfSxnZXQgaW5wdXRz'@; put 'KCl7cmV0dXJuIGEuaW5wdXRzfSxnZXQgb3V0cHV0cygpe3JldHVybiBhLm91dHB1dHN9LGdldCBuZ0NvbnRlbnRTZWxlY3RvcnMoKXtyZXR1cm4gYS5uZ0NvbnRlbnRTZWxlY3RvcnN9LGdldCBpc1N0YW5kYWxvbmUoKXtyZXR1cm4gbC5zdGFuZGFsb25lfSxnZXQgaXNTaWduYWwoKXtyZXR1'@; put 'cm4gbC5zaWduYWxzfX19KGQuY29tcG9uZW50KTtpZih2KWZvcihjb25zdHt0ZW1wbGF0ZU5hbWU6TX1vZiB2LmlucHV0cylhLmFjdGl2YXRlZENvbXBvbmVudFJlZi5zZXRJbnB1dChNLGZbTV0pO2Vsc2UgdGhpcy51bnN1YnNjcmliZUZyb21Sb3V0ZURhdGEoYSl9KTt0aGlzLm91dGxldERh'@; put 'dGFTdWJzY3JpcHRpb25zLnNldChhLGgpfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpfX1zdGF0aWN7dGhpcy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KX19cmV0dXJuIGN9KSgpO2Z1bmN0aW9uIG54KGMsbCxh'@; put 'KXtpZihhJiZjLnNob3VsZFJldXNlUm91dGUobC52YWx1ZSxhLnZhbHVlLnNuYXBzaG90KSl7Y29uc3QgZD1hLnZhbHVlO2QuX2Z1dHVyZVNuYXBzaG90PWwudmFsdWU7Y29uc3QgaD1mdW5jdGlvbiBtRWUoYyxsLGEpe3JldHVybiBsLmNoaWxkcmVuLm1hcChkPT57Zm9yKGNvbnN0IGggb2Yg'@; put 'YS5jaGlsZHJlbilpZihjLnNob3VsZFJldXNlUm91dGUoZC52YWx1ZSxoLnZhbHVlLnNuYXBzaG90KSlyZXR1cm4gbngoYyxkLGgpO3JldHVybiBueChjLGQpfSl9KGMsbCxhKTtyZXR1cm4gbmV3IHFmKGQsaCl9e2lmKGMuc2hvdWxkQXR0YWNoKGwudmFsdWUpKXtjb25zdCBmPWMucmV0cmll'@; put 'dmUobC52YWx1ZSk7aWYobnVsbCE9PWYpe2NvbnN0IHY9Zi5yb3V0ZTtyZXR1cm4gdi52YWx1ZS5fZnV0dXJlU25hcHNob3Q9bC52YWx1ZSx2LmNoaWxkcmVuPWwuY2hpbGRyZW4ubWFwKE09Pm54KGMsTSkpLHZ9fWNvbnN0IGQ9ZnVuY3Rpb24gdkVlKGMpe3JldHVybiBuZXcgeXUobmV3IEpy'@; put 'KGMudXJsKSxuZXcgSnIoYy5wYXJhbXMpLG5ldyBKcihjLnF1ZXJ5UGFyYW1zKSxuZXcgSnIoYy5mcmFnbWVudCksbmV3IEpyKGMuZGF0YSksYy5vdXRsZXQsYy5jb21wb25lbnQsYyl9KGwudmFsdWUpLGg9bC5jaGlsZHJlbi5tYXAoZj0+bngoYyxmKSk7cmV0dXJuIG5ldyBxZihkLGgpfX1j'@; put 'b25zdCBlY2U9Im5nTmF2aWdhdGlvbkNhbmNlbGluZ0Vycm9yIjtmdW5jdGlvbiB0Y2UoYyxsKXtjb25zdHtyZWRpcmVjdFRvOmEsbmF2aWdhdGlvbkJlaGF2aW9yT3B0aW9uczpkfT10YihsKT97cmVkaXJlY3RUbzpsLG5hdmlnYXRpb25CZWhhdmlvck9wdGlvbnM6dm9pZCAwfTpsLGg9bmNl'@; put 'KCExLG1oLlJlZGlyZWN0KTtyZXR1cm4gaC51cmw9YSxoLm5hdmlnYXRpb25CZWhhdmlvck9wdGlvbnM9ZCxofWZ1bmN0aW9uIG5jZShjLGwpe2NvbnN0IGE9bmV3IEVycm9yKGBOYXZpZ2F0aW9uQ2FuY2VsaW5nRXJyb3I6ICR7Y3x8IiJ9YCk7cmV0dXJuIGFbZWNlXT0hMCxhLmNhbmNlbGxh'@; put 'dGlvbkNvZGU9bCxhfWZ1bmN0aW9uIHJjZShjKXtyZXR1cm4hIWMmJmNbZWNlXX1sZXQgaWNlPSgoKT0+e2NsYXNzIGN7c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpb'@; put 'WyJuZy1jb21wb25lbnQiXV0sc3RhbmRhbG9uZTohMCxmZWF0dXJlczpbUUldLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGQsaCl7MSZkJiZXdCgwLCJyb3V0ZXItb3V0bGV0Iil9LGRlcGVuZGVuY2llczpbbmddLGVuY2Fwc3VsYXRpb246Mn0pfX1yZXR1cm4gY30pKCk7ZnVu'@; put 'Y3Rpb24gZlcoYyl7Y29uc3QgbD1jLmNoaWxkcmVuJiZjLmNoaWxkcmVuLm1hcChmVyksYT1sP3suLi5jLGNoaWxkcmVuOmx9OnsuLi5jfTtyZXR1cm4hYS5jb21wb25lbnQmJiFhLmxvYWRDb21wb25lbnQmJihsfHxhLmxvYWRDaGlsZHJlbikmJmEub3V0bGV0JiZhLm91dGxldCE9PUtzJiYo'@; put 'YS5jb21wb25lbnQ9aWNlKSxhfWZ1bmN0aW9uIHZwKGMpe3JldHVybiBjLm91dGxldHx8S3N9ZnVuY3Rpb24gcngoYyl7aWYoIWMpcmV0dXJuIG51bGw7aWYoYy5yb3V0ZUNvbmZpZz8uX2luamVjdG9yKXJldHVybiBjLnJvdXRlQ29uZmlnLl9pbmplY3Rvcjtmb3IobGV0IGw9Yy5wYXJlbnQ7'@; put 'bDtsPWwucGFyZW50KXtjb25zdCBhPWwucm91dGVDb25maWc7aWYoYT8uX2xvYWRlZEluamVjdG9yKXJldHVybiBhLl9sb2FkZWRJbmplY3RvcjtpZihhPy5faW5qZWN0b3IpcmV0dXJuIGEuX2luamVjdG9yfXJldHVybiBudWxsfWNsYXNzIHhFZXtjb25zdHJ1Y3RvcihsLGEsZCxoLGYpe3Ro'@; put 'aXMucm91dGVSZXVzZVN0cmF0ZWd5PWwsdGhpcy5mdXR1cmVTdGF0ZT1hLHRoaXMuY3VyclN0YXRlPWQsdGhpcy5mb3J3YXJkRXZlbnQ9aCx0aGlzLmlucHV0QmluZGluZ0VuYWJsZWQ9Zn1hY3RpdmF0ZShsKXtjb25zdCBhPXRoaXMuZnV0dXJlU3RhdGUuX3Jvb3QsZD10aGlzLmN1cnJTdGF0'@; put 'ZT90aGlzLmN1cnJTdGF0ZS5fcm9vdDpudWxsO3RoaXMuZGVhY3RpdmF0ZUNoaWxkUm91dGVzKGEsZCxsKSx1Vyh0aGlzLmZ1dHVyZVN0YXRlLnJvb3QpLHRoaXMuYWN0aXZhdGVDaGlsZFJvdXRlcyhhLGQsbCl9ZGVhY3RpdmF0ZUNoaWxkUm91dGVzKGwsYSxkKXtjb25zdCBoPWliKGEpO2wu'@; put 'Y2hpbGRyZW4uZm9yRWFjaChmPT57Y29uc3Qgdj1mLnZhbHVlLm91dGxldDt0aGlzLmRlYWN0aXZhdGVSb3V0ZXMoZixoW3ZdLGQpLGRlbGV0ZSBoW3ZdfSksT2JqZWN0LnZhbHVlcyhoKS5mb3JFYWNoKGY9Pnt0aGlzLmRlYWN0aXZhdGVSb3V0ZUFuZEl0c0NoaWxkcmVuKGYsZCl9KX1kZWFj'@; put 'dGl2YXRlUm91dGVzKGwsYSxkKXtjb25zdCBoPWwudmFsdWUsZj1hP2EudmFsdWU6bnVsbDtpZihoPT09ZilpZihoLmNvbXBvbmVudCl7Y29uc3Qgdj1kLmdldENvbnRleHQoaC5vdXRsZXQpO3YmJnRoaXMuZGVhY3RpdmF0ZUNoaWxkUm91dGVzKGwsYSx2LmNoaWxkcmVuKX1lbHNlIHRoaXMu'@; put 'ZGVhY3RpdmF0ZUNoaWxkUm91dGVzKGwsYSxkKTtlbHNlIGYmJnRoaXMuZGVhY3RpdmF0ZVJvdXRlQW5kSXRzQ2hpbGRyZW4oYSxkKX1kZWFjdGl2YXRlUm91dGVBbmRJdHNDaGlsZHJlbihsLGEpe2wudmFsdWUuY29tcG9uZW50JiZ0aGlzLnJvdXRlUmV1c2VTdHJhdGVneS5zaG91bGREZXRh'@; put 'Y2gobC52YWx1ZS5zbmFwc2hvdCk/dGhpcy5kZXRhY2hBbmRTdG9yZVJvdXRlU3VidHJlZShsLGEpOnRoaXMuZGVhY3RpdmF0ZVJvdXRlQW5kT3V0bGV0KGwsYSl9ZGV0YWNoQW5kU3RvcmVSb3V0ZVN1YnRyZWUobCxhKXtjb25zdCBkPWEuZ2V0Q29udGV4dChsLnZhbHVlLm91dGxldCksaD1k'@; put 'JiZsLnZhbHVlLmNvbXBvbmVudD9kLmNoaWxkcmVuOmEsZj1pYihsKTtmb3IoY29uc3QgdiBvZiBPYmplY3QudmFsdWVzKGYpKXRoaXMuZGVhY3RpdmF0ZVJvdXRlQW5kSXRzQ2hpbGRyZW4odixoKTtpZihkJiZkLm91dGxldCl7Y29uc3Qgdj1kLm91dGxldC5kZXRhY2goKSxNPWQuY2hpbGRy'@; put 'ZW4ub25PdXRsZXREZWFjdGl2YXRlZCgpO3RoaXMucm91dGVSZXVzZVN0cmF0ZWd5LnN0b3JlKGwudmFsdWUuc25hcHNob3Qse2NvbXBvbmVudFJlZjp2LHJvdXRlOmwsY29udGV4dHM6TX0pfX1kZWFjdGl2YXRlUm91dGVBbmRPdXRsZXQobCxhKXtjb25zdCBkPWEuZ2V0Q29udGV4dChsLnZh'@; put 'bHVlLm91dGxldCksaD1kJiZsLnZhbHVlLmNvbXBvbmVudD9kLmNoaWxkcmVuOmEsZj1pYihsKTtmb3IoY29uc3QgdiBvZiBPYmplY3QudmFsdWVzKGYpKXRoaXMuZGVhY3RpdmF0ZVJvdXRlQW5kSXRzQ2hpbGRyZW4odixoKTtkJiYoZC5vdXRsZXQmJihkLm91dGxldC5kZWFjdGl2YXRlKCks'@; put 'ZC5jaGlsZHJlbi5vbk91dGxldERlYWN0aXZhdGVkKCkpLGQuYXR0YWNoUmVmPW51bGwsZC5yb3V0ZT1udWxsKX1hY3RpdmF0ZUNoaWxkUm91dGVzKGwsYSxkKXtjb25zdCBoPWliKGEpO2wuY2hpbGRyZW4uZm9yRWFjaChmPT57dGhpcy5hY3RpdmF0ZVJvdXRlcyhmLGhbZi52YWx1ZS5vdXRs'@; put 'ZXRdLGQpLHRoaXMuZm9yd2FyZEV2ZW50KG5ldyBoRWUoZi52YWx1ZS5zbmFwc2hvdCkpfSksbC5jaGlsZHJlbi5sZW5ndGgmJnRoaXMuZm9yd2FyZEV2ZW50KG5ldyB1RWUobC52YWx1ZS5zbmFwc2hvdCkpfWFjdGl2YXRlUm91dGVzKGwsYSxkKXtjb25zdCBoPWwudmFsdWUsZj1hP2EudmFs'@; put 'dWU6bnVsbDtpZih1VyhoKSxoPT09ZilpZihoLmNvbXBvbmVudCl7Y29uc3Qgdj1kLmdldE9yQ3JlYXRlQ29udGV4dChoLm91dGxldCk7dGhpcy5hY3RpdmF0ZUNoaWxkUm91dGVzKGwsYSx2LmNoaWxkcmVuKX1lbHNlIHRoaXMuYWN0aXZhdGVDaGlsZFJvdXRlcyhsLGEsZCk7ZWxzZSBpZiho'@; put 'LmNvbXBvbmVudCl7Y29uc3Qgdj1kLmdldE9yQ3JlYXRlQ29udGV4dChoLm91dGxldCk7aWYodGhpcy5yb3V0ZVJldXNlU3RyYXRlZ3kuc2hvdWxkQXR0YWNoKGguc25hcHNob3QpKXtjb25zdCBNPXRoaXMucm91dGVSZXVzZVN0cmF0ZWd5LnJldHJpZXZlKGguc25hcHNob3QpO3RoaXMucm91'@; put 'dGVSZXVzZVN0cmF0ZWd5LnN0b3JlKGguc25hcHNob3QsbnVsbCksdi5jaGlsZHJlbi5vbk91dGxldFJlQXR0YWNoZWQoTS5jb250ZXh0cyksdi5hdHRhY2hSZWY9TS5jb21wb25lbnRSZWYsdi5yb3V0ZT1NLnJvdXRlLnZhbHVlLHYub3V0bGV0JiZ2Lm91dGxldC5hdHRhY2goTS5jb21wb25l'@; put 'bnRSZWYsTS5yb3V0ZS52YWx1ZSksdVcoTS5yb3V0ZS52YWx1ZSksdGhpcy5hY3RpdmF0ZUNoaWxkUm91dGVzKGwsbnVsbCx2LmNoaWxkcmVuKX1lbHNle2NvbnN0IE09cngoaC5zbmFwc2hvdCk7di5hdHRhY2hSZWY9bnVsbCx2LnJvdXRlPWgsdi5pbmplY3Rvcj1NLHYub3V0bGV0JiZ2Lm91'@; put 'dGxldC5hY3RpdmF0ZVdpdGgoaCx2LmluamVjdG9yKSx0aGlzLmFjdGl2YXRlQ2hpbGRSb3V0ZXMobCxudWxsLHYuY2hpbGRyZW4pfX1lbHNlIHRoaXMuYWN0aXZhdGVDaGlsZFJvdXRlcyhsLG51bGwsZCl9fWNsYXNzIGFjZXtjb25zdHJ1Y3RvcihsKXt0aGlzLnBhdGg9bCx0aGlzLnJvdXRl'@; put 'PXRoaXMucGF0aFt0aGlzLnBhdGgubGVuZ3RoLTFdfX1jbGFzcyAkUntjb25zdHJ1Y3RvcihsLGEpe3RoaXMuY29tcG9uZW50PWwsdGhpcy5yb3V0ZT1hfX1mdW5jdGlvbiBFRWUoYyxsLGEpe2NvbnN0IGQ9Yy5fcm9vdDtyZXR1cm4gaXgoZCxsP2wuX3Jvb3Q6bnVsbCxhLFtkLnZhbHVlXSl9'@; put 'ZnVuY3Rpb24gYWIoYyxsKXtjb25zdCBhPVN5bWJvbCgpLGQ9bC5nZXQoYyxhKTtyZXR1cm4gZD09PWE/ImZ1bmN0aW9uIiE9dHlwZW9mIGN8fGZ1bmN0aW9uIFFhKGMpe3JldHVybiBudWxsIT09RnMoYyl9KGMpP2wuZ2V0KGMpOmM6ZH1mdW5jdGlvbiBpeChjLGwsYSxkLGg9e2NhbkRlYWN0'@; put 'aXZhdGVDaGVja3M6W10sY2FuQWN0aXZhdGVDaGVja3M6W119KXtjb25zdCBmPWliKGwpO3JldHVybiBjLmNoaWxkcmVuLmZvckVhY2godj0+eyhmdW5jdGlvbiBBRWUoYyxsLGEsZCxoPXtjYW5EZWFjdGl2YXRlQ2hlY2tzOltdLGNhbkFjdGl2YXRlQ2hlY2tzOltdfSl7Y29uc3QgZj1jLnZh'@; put 'bHVlLHY9bD9sLnZhbHVlOm51bGwsTT1hP2EuZ2V0Q29udGV4dChjLnZhbHVlLm91dGxldCk6bnVsbDtpZih2JiZmLnJvdXRlQ29uZmlnPT09di5yb3V0ZUNvbmZpZyl7Y29uc3QgST1mdW5jdGlvbiBrRWUoYyxsLGEpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhKXJldHVybiBhKGMsbCk7c3dp'@; put 'dGNoKGEpe2Nhc2UicGF0aFBhcmFtc0NoYW5nZSI6cmV0dXJuIUo4KGMudXJsLGwudXJsKTtjYXNlInBhdGhQYXJhbXNPclF1ZXJ5UGFyYW1zQ2hhbmdlIjpyZXR1cm4hSjgoYy51cmwsbC51cmwpfHwhcHAoYy5xdWVyeVBhcmFtcyxsLnF1ZXJ5UGFyYW1zKTtjYXNlImFsd2F5cyI6cmV0dXJu'@; put 'ITA7Y2FzZSJwYXJhbXNPclF1ZXJ5UGFyYW1zQ2hhbmdlIjpyZXR1cm4hZFcoYyxsKXx8IXBwKGMucXVlcnlQYXJhbXMsbC5xdWVyeVBhcmFtcyk7ZGVmYXVsdDpyZXR1cm4hZFcoYyxsKX19KHYsZixmLnJvdXRlQ29uZmlnLnJ1bkd1YXJkc0FuZFJlc29sdmVycyk7ST9oLmNhbkFjdGl2YXRl'@; put 'Q2hlY2tzLnB1c2gobmV3IGFjZShkKSk6KGYuZGF0YT12LmRhdGEsZi5fcmVzb2x2ZWREYXRhPXYuX3Jlc29sdmVkRGF0YSksaXgoYyxsLGYuY29tcG9uZW50P00/TS5jaGlsZHJlbjpudWxsOmEsZCxoKSxJJiZNJiZNLm91dGxldCYmTS5vdXRsZXQuaXNBY3RpdmF0ZWQmJmguY2FuRGVhY3Rp'@; put 'dmF0ZUNoZWNrcy5wdXNoKG5ldyAkUihNLm91dGxldC5jb21wb25lbnQsdikpfWVsc2UgdiYmYXgobCxNLGgpLGguY2FuQWN0aXZhdGVDaGVja3MucHVzaChuZXcgYWNlKGQpKSxpeChjLG51bGwsZi5jb21wb25lbnQ/TT9NLmNoaWxkcmVuOm51bGw6YSxkLGgpfSkodixmW3YudmFsdWUub3V0'@; put 'bGV0XSxhLGQuY29uY2F0KFt2LnZhbHVlXSksaCksZGVsZXRlIGZbdi52YWx1ZS5vdXRsZXRdfSksT2JqZWN0LmVudHJpZXMoZikuZm9yRWFjaCgoW3YsTV0pPT5heChNLGEuZ2V0Q29udGV4dCh2KSxoKSksaH1mdW5jdGlvbiBheChjLGwsYSl7Y29uc3QgZD1pYihjKSxoPWMudmFsdWU7T2Jq'@; put 'ZWN0LmVudHJpZXMoZCkuZm9yRWFjaCgoW2Ysdl0pPT57YXgodixoLmNvbXBvbmVudD9sP2wuY2hpbGRyZW4uZ2V0Q29udGV4dChmKTpudWxsOmwsYSl9KSxhLmNhbkRlYWN0aXZhdGVDaGVja3MucHVzaChuZXcgJFIoaC5jb21wb25lbnQmJmwmJmwub3V0bGV0JiZsLm91dGxldC5pc0FjdGl2'@; put 'YXRlZD9sLm91dGxldC5jb21wb25lbnQ6bnVsbCxoKSl9ZnVuY3Rpb24gc3goYyl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGN9ZnVuY3Rpb24gc2NlKGMpe3JldHVybiBjIGluc3RhbmNlb2YgRlJ8fCJFbXB0eUVycm9yIj09PWM/Lm5hbWV9Y29uc3QgS1I9U3ltYm9sKCJJTklUSUFMX1ZB'@; put 'TFVFIik7ZnVuY3Rpb24gc2IoKXtyZXR1cm4gajEoYz0+WDgoYy5tYXAobD0+bC5waXBlKGdoKDEpLFQyKEtSKSkpKS5waXBlKFByKGw9Pntmb3IoY29uc3QgYSBvZiBsKWlmKCEwIT09YSl7aWYoYT09PUtSKXJldHVybiBLUjtpZighMT09PWF8fGEgaW5zdGFuY2VvZiBReSlyZXR1cm4gYX1y'@; put 'ZXR1cm4hMH0pLFdsKGw9PmwhPT1LUiksZ2goMSkpKX1mdW5jdGlvbiBvY2UoYyl7cmV0dXJuIGZ1bmN0aW9uIGZuKC4uLmMpe3JldHVybiBEaShjKX0oWnUobD0+e2lmKHRiKGwpKXRocm93IHRjZSgwLGwpfSksUHIobD0+ITA9PT1sKSl9Y2xhc3MgcFd7Y29uc3RydWN0b3IobCl7dGhpcy5z'@; put 'ZWdtZW50R3JvdXA9bHx8bnVsbH19Y2xhc3MgZ1cgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihsKXtzdXBlcigpLHRoaXMudXJsVHJlZT1sfX1mdW5jdGlvbiBvYihjKXtyZXR1cm4gR00obmV3IHBXKGMpKX1jbGFzcyAkRWV7Y29uc3RydWN0b3IobCxhKXt0aGlzLnVybFNlcmlhbGl6ZXI9'@; put 'bCx0aGlzLnVybFRyZWU9YX1saW5lcmFsaXplU2VnbWVudHMobCxhKXtsZXQgZD1bXSxoPWEucm9vdDtmb3IoOzspe2lmKGQ9ZC5jb25jYXQoaC5zZWdtZW50cyksMD09PWgubnVtYmVyT2ZDaGlsZHJlbilyZXR1cm4gZHMoZCk7aWYoaC5udW1iZXJPZkNoaWxkcmVuPjF8fCFoLmNoaWxkcmVu'@; put 'W0tzXSlyZXR1cm4gR00obmV3IG5yKDRlMywhMSkpO2g9aC5jaGlsZHJlbltLc119fWFwcGx5UmVkaXJlY3RDb21tYW5kcyhsLGEsZCl7Y29uc3QgaD10aGlzLmFwcGx5UmVkaXJlY3RDcmVhdGVVcmxUcmVlKGEsdGhpcy51cmxTZXJpYWxpemVyLnBhcnNlKGEpLGwsZCk7aWYoYS5zdGFydHNX'@; put 'aXRoKCIvIikpdGhyb3cgbmV3IGdXKGgpO3JldHVybiBofWFwcGx5UmVkaXJlY3RDcmVhdGVVcmxUcmVlKGwsYSxkLGgpe2NvbnN0IGY9dGhpcy5jcmVhdGVTZWdtZW50R3JvdXAobCxhLnJvb3QsZCxoKTtyZXR1cm4gbmV3IFF5KGYsdGhpcy5jcmVhdGVRdWVyeVBhcmFtcyhhLnF1ZXJ5UGFy'@; put 'YW1zLHRoaXMudXJsVHJlZS5xdWVyeVBhcmFtcyksYS5mcmFnbWVudCl9Y3JlYXRlUXVlcnlQYXJhbXMobCxhKXtjb25zdCBkPXt9O3JldHVybiBPYmplY3QuZW50cmllcyhsKS5mb3JFYWNoKChbaCxmXSk9PntpZigic3RyaW5nIj09dHlwZW9mIGYmJmYuc3RhcnRzV2l0aCgiOiIpKXtjb25z'@; put 'dCBNPWYuc3Vic3RyaW5nKDEpO2RbaF09YVtNXX1lbHNlIGRbaF09Zn0pLGR9Y3JlYXRlU2VnbWVudEdyb3VwKGwsYSxkLGgpe2NvbnN0IGY9dGhpcy5jcmVhdGVTZWdtZW50cyhsLGEuc2VnbWVudHMsZCxoKTtsZXQgdj17fTtyZXR1cm4gT2JqZWN0LmVudHJpZXMoYS5jaGlsZHJlbikuZm9y'@; put 'RWFjaCgoW00sSV0pPT57dltNXT10aGlzLmNyZWF0ZVNlZ21lbnRHcm91cChsLEksZCxoKX0pLG5ldyBZbChmLHYpfWNyZWF0ZVNlZ21lbnRzKGwsYSxkLGgpe3JldHVybiBhLm1hcChmPT5mLnBhdGguc3RhcnRzV2l0aCgiOiIpP3RoaXMuZmluZFBvc1BhcmFtKGwsZixoKTp0aGlzLmZpbmRP'@; put 'clJldHVybihmLGQpKX1maW5kUG9zUGFyYW0obCxhLGQpe2NvbnN0IGg9ZFthLnBhdGguc3Vic3RyaW5nKDEpXTtpZighaCl0aHJvdyBuZXcgbnIoNDAwMSwhMSk7cmV0dXJuIGh9ZmluZE9yUmV0dXJuKGwsYSl7bGV0IGQ9MDtmb3IoY29uc3QgaCBvZiBhKXtpZihoLnBhdGg9PT1sLnBhdGgp'@; put 'cmV0dXJuIGEuc3BsaWNlKGQpLGg7ZCsrfXJldHVybiBsfX1jb25zdCBtVz17bWF0Y2hlZDohMSxjb25zdW1lZFNlZ21lbnRzOltdLHJlbWFpbmluZ1NlZ21lbnRzOltdLHBhcmFtZXRlcnM6e30scG9zaXRpb25hbFBhcmFtU2VnbWVudHM6e319O2Z1bmN0aW9uIEtFZShjLGwsYSxkLGgpe2Nv'@; put 'bnN0IGY9dlcoYyxsLGEpO3JldHVybiBmLm1hdGNoZWQ/KGQ9ZnVuY3Rpb24gYkVlKGMsbCl7cmV0dXJuIGMucHJvdmlkZXJzJiYhYy5faW5qZWN0b3ImJihjLl9pbmplY3Rvcj1HNChjLnByb3ZpZGVycyxsLGBSb3V0ZTogJHtjLnBhdGh9YCkpLGMuX2luamVjdG9yPz9sfShsLGQpLGZ1bmN0'@; put 'aW9uIFdFZShjLGwsYSxkKXtjb25zdCBoPWwuY2FuTWF0Y2g7cmV0dXJuIGgmJjAhPT1oLmxlbmd0aD9kcyhoLm1hcCh2PT57Y29uc3QgTT1hYih2LGMpO3JldHVybiBybShmdW5jdGlvbiBQRWUoYyl7cmV0dXJuIGMmJnN4KGMuY2FuTWF0Y2gpfShNKT9NLmNhbk1hdGNoKGwsYSk6SzAoYywo'@; put 'KT0+TShsLGEpKSl9KSkucGlwZShzYigpLG9jZSgpKTpkcyghMCl9KGQsbCxhKS5waXBlKFByKHY9PiEwPT09dj9mOnsuLi5tV30pKSk6ZHMoZil9ZnVuY3Rpb24gdlcoYyxsLGEpe2lmKCIqKiI9PT1sLnBhdGgpcmV0dXJuIGZ1bmN0aW9uIFhFZShjKXtyZXR1cm57bWF0Y2hlZDohMCxwYXJh'@; put 'bWV0ZXJzOmMubGVuZ3RoPjA/VGxlKGMpLnBhcmFtZXRlcnM6e30sY29uc3VtZWRTZWdtZW50czpjLHJlbWFpbmluZ1NlZ21lbnRzOltdLHBvc2l0aW9uYWxQYXJhbVNlZ21lbnRzOnt9fX0oYSk7aWYoIiI9PT1sLnBhdGgpcmV0dXJuImZ1bGwiPT09bC5wYXRoTWF0Y2gmJihjLmhhc0NoaWxk'@; put 'cmVuKCl8fGEubGVuZ3RoPjApP3suLi5tV306e21hdGNoZWQ6ITAsY29uc3VtZWRTZWdtZW50czpbXSxyZW1haW5pbmdTZWdtZW50czphLHBhcmFtZXRlcnM6e30scG9zaXRpb25hbFBhcmFtU2VnbWVudHM6e319O2NvbnN0IGg9KGwubWF0Y2hlcnx8RHhlKShhLGMsbCk7aWYoIWgpcmV0dXJu'@; put 'ey4uLm1XfTtjb25zdCBmPXt9O09iamVjdC5lbnRyaWVzKGgucG9zUGFyYW1zPz97fSkuZm9yRWFjaCgoW00sSV0pPT57ZltNXT1JLnBhdGh9KTtjb25zdCB2PWguY29uc3VtZWQubGVuZ3RoPjA/ey4uLmYsLi4uaC5jb25zdW1lZFtoLmNvbnN1bWVkLmxlbmd0aC0xXS5wYXJhbWV0ZXJzfTpm'@; put 'O3JldHVybnttYXRjaGVkOiEwLGNvbnN1bWVkU2VnbWVudHM6aC5jb25zdW1lZCxyZW1haW5pbmdTZWdtZW50czphLnNsaWNlKGguY29uc3VtZWQubGVuZ3RoKSxwYXJhbWV0ZXJzOnYscG9zaXRpb25hbFBhcmFtU2VnbWVudHM6aC5wb3NQYXJhbXM/P3t9fX1mdW5jdGlvbiBsY2UoYyxsLGEs'@; put 'ZCl7cmV0dXJuIGEubGVuZ3RoPjAmJmZ1bmN0aW9uIFFFZShjLGwsYSl7cmV0dXJuIGEuc29tZShkPT5YUihjLGwsZCkmJnZwKGQpIT09S3MpfShjLGEsZCk/e3NlZ21lbnRHcm91cDpuZXcgWWwobCxKRWUoZCxuZXcgWWwoYSxjLmNoaWxkcmVuKSkpLHNsaWNlZFNlZ21lbnRzOltdfTowPT09'@; put 'YS5sZW5ndGgmJmZ1bmN0aW9uIGVUZShjLGwsYSl7cmV0dXJuIGEuc29tZShkPT5YUihjLGwsZCkpfShjLGEsZCk/e3NlZ21lbnRHcm91cDpuZXcgWWwoYy5zZWdtZW50cyxxRWUoYyxhLGQsYy5jaGlsZHJlbikpLHNsaWNlZFNlZ21lbnRzOmF9OntzZWdtZW50R3JvdXA6bmV3IFlsKGMuc2Vn'@; put 'bWVudHMsYy5jaGlsZHJlbiksc2xpY2VkU2VnbWVudHM6YX19ZnVuY3Rpb24gcUVlKGMsbCxhLGQpe2NvbnN0IGg9e307Zm9yKGNvbnN0IGYgb2YgYSlpZihYUihjLGwsZikmJiFkW3ZwKGYpXSl7Y29uc3Qgdj1uZXcgWWwoW10se30pO2hbdnAoZildPXZ9cmV0dXJuey4uLmQsLi4uaH19ZnVu'@; put 'Y3Rpb24gSkVlKGMsbCl7Y29uc3QgYT17fTthW0tzXT1sO2Zvcihjb25zdCBkIG9mIGMpaWYoIiI9PT1kLnBhdGgmJnZwKGQpIT09S3Mpe2NvbnN0IGg9bmV3IFlsKFtdLHt9KTthW3ZwKGQpXT1ofXJldHVybiBhfWZ1bmN0aW9uIFhSKGMsbCxhKXtyZXR1cm4oIShjLmhhc0NoaWxkcmVuKCl8'@; put 'fGwubGVuZ3RoPjApfHwiZnVsbCIhPT1hLnBhdGhNYXRjaCkmJiIiPT09YS5wYXRofWNsYXNzIHJUZXt9Y2xhc3Mgc1Rle2NvbnN0cnVjdG9yKGwsYSxkLGgsZix2LE0pe3RoaXMuaW5qZWN0b3I9bCx0aGlzLmNvbmZpZ0xvYWRlcj1hLHRoaXMucm9vdENvbXBvbmVudFR5cGU9ZCx0aGlzLmNv'@; put 'bmZpZz1oLHRoaXMudXJsVHJlZT1mLHRoaXMucGFyYW1zSW5oZXJpdGFuY2VTdHJhdGVneT12LHRoaXMudXJsU2VyaWFsaXplcj1NLHRoaXMuYXBwbHlSZWRpcmVjdHM9bmV3ICRFZSh0aGlzLnVybFNlcmlhbGl6ZXIsdGhpcy51cmxUcmVlKSx0aGlzLmFic29sdXRlUmVkaXJlY3RDb3VudD0w'@; put 'LHRoaXMuYWxsb3dSZWRpcmVjdHM9ITB9bm9NYXRjaEVycm9yKGwpe3JldHVybiBuZXcgbnIoNDAwMixgJyR7bC5zZWdtZW50R3JvdXB9J2ApfXJlY29nbml6ZSgpe2NvbnN0IGw9bGNlKHRoaXMudXJsVHJlZS5yb290LFtdLFtdLHRoaXMuY29uZmlnKS5zZWdtZW50R3JvdXA7cmV0dXJuIHRo'@; put 'aXMubWF0Y2gobCkucGlwZShQcihhPT57Y29uc3QgZD1uZXcgbFcoW10sT2JqZWN0LmZyZWV6ZSh7fSksT2JqZWN0LmZyZWV6ZSh7Li4udGhpcy51cmxUcmVlLnF1ZXJ5UGFyYW1zfSksdGhpcy51cmxUcmVlLmZyYWdtZW50LHt9LEtzLHRoaXMucm9vdENvbXBvbmVudFR5cGUsbnVsbCx7fSks'@; put 'aD1uZXcgcWYoZCxhKSxmPW5ldyBYbGUoIiIsaCksdj1mdW5jdGlvbiBYeGUoYyxsLGE9bnVsbCxkPW51bGwpe3JldHVybiBWbGUoTmxlKGMpLGwsYSxkKX0oZCxbXSx0aGlzLnVybFRyZWUucXVlcnlQYXJhbXMsdGhpcy51cmxUcmVlLmZyYWdtZW50KTtyZXR1cm4gdi5xdWVyeVBhcmFtcz10'@; put 'aGlzLnVybFRyZWUucXVlcnlQYXJhbXMsZi51cmw9dGhpcy51cmxTZXJpYWxpemVyLnNlcmlhbGl6ZSh2KSx0aGlzLmluaGVyaXRQYXJhbXNBbmREYXRhKGYuX3Jvb3QsbnVsbCkse3N0YXRlOmYsdHJlZTp2fX0pKX1tYXRjaChsKXtyZXR1cm4gdGhpcy5wcm9jZXNzU2VnbWVudEdyb3VwKHRo'@; put 'aXMuaW5qZWN0b3IsdGhpcy5jb25maWcsbCxLcykucGlwZShxOChkPT57aWYoZCBpbnN0YW5jZW9mIGdXKXJldHVybiB0aGlzLnVybFRyZWU9ZC51cmxUcmVlLHRoaXMubWF0Y2goZC51cmxUcmVlLnJvb3QpO3Rocm93IGQgaW5zdGFuY2VvZiBwVz90aGlzLm5vTWF0Y2hFcnJvcihkKTpkfSkp'@; put 'fWluaGVyaXRQYXJhbXNBbmREYXRhKGwsYSl7Y29uc3QgZD1sLnZhbHVlLGg9b1coZCxhLHRoaXMucGFyYW1zSW5oZXJpdGFuY2VTdHJhdGVneSk7ZC5wYXJhbXM9T2JqZWN0LmZyZWV6ZShoLnBhcmFtcyksZC5kYXRhPU9iamVjdC5mcmVlemUoaC5kYXRhKSxsLmNoaWxkcmVuLmZvckVhY2go'@; put 'Zj0+dGhpcy5pbmhlcml0UGFyYW1zQW5kRGF0YShmLGQpKX1wcm9jZXNzU2VnbWVudEdyb3VwKGwsYSxkLGgpe3JldHVybiAwPT09ZC5zZWdtZW50cy5sZW5ndGgmJmQuaGFzQ2hpbGRyZW4oKT90aGlzLnByb2Nlc3NDaGlsZHJlbihsLGEsZCk6dGhpcy5wcm9jZXNzU2VnbWVudChsLGEsZCxk'@; put 'LnNlZ21lbnRzLGgsITApLnBpcGUoUHIoZj0+ZiBpbnN0YW5jZW9mIHFmP1tmXTpbXSkpfXByb2Nlc3NDaGlsZHJlbihsLGEsZCl7Y29uc3QgaD1bXTtmb3IoY29uc3QgZiBvZiBPYmplY3Qua2V5cyhkLmNoaWxkcmVuKSkicHJpbWFyeSI9PT1mP2gudW5zaGlmdChmKTpoLnB1c2goZik7cmV0'@; put 'dXJuIFV1KGgpLnBpcGUocXkoZj0+e2NvbnN0IHY9ZC5jaGlsZHJlbltmXSxNPWZ1bmN0aW9uIFNFZShjLGwpe2NvbnN0IGE9Yy5maWx0ZXIoZD0+dnAoZCk9PT1sKTtyZXR1cm4gYS5wdXNoKC4uLmMuZmlsdGVyKGQ9PnZwKGQpIT09bCkpLGF9KGEsZik7cmV0dXJuIHRoaXMucHJvY2Vzc1Nl'@; put 'Z21lbnRHcm91cChsLE0sdixmKX0pLGZ1bmN0aW9uIEV4ZShjLGwpe3JldHVybiBOaShmdW5jdGlvbiB4eGUoYyxsLGEsZCxoKXtyZXR1cm4oZix2KT0+e2xldCBNPWEsST1sLEc9MDtmLnN1YnNjcmliZShIaSh2LHJlPT57Y29uc3QgdWU9RysrO0k9TT9jKEkscmUsdWUpOihNPSEwLHJlKSxk'@; put 'JiZ2Lm5leHQoSSl9LGgmJigoKT0+e00mJnYubmV4dChJKSx2LmNvbXBsZXRlKCl9KSkpfX0oYyxsLGFyZ3VtZW50cy5sZW5ndGg+PTIsITApKX0oKGYsdik9PihmLnB1c2goLi4udiksZikpLEhSKG51bGwpLGZ1bmN0aW9uIFR4ZShjLGwpe2NvbnN0IGE9YXJndW1lbnRzLmxlbmd0aD49Mjty'@; put 'ZXR1cm4gZD0+ZC5waXBlKGM/V2woKGgsZik9PmMoaCxmLGQpKTpjbixYWigxKSxhP0hSKGwpOnhsZSgoKT0+bmV3IEZSKSl9KCksRjAoZj0+e2lmKG51bGw9PT1mKXJldHVybiBvYihkKTtjb25zdCB2PWNjZShmKTtyZXR1cm4gZnVuY3Rpb24gb1RlKGMpe2Muc29ydCgobCxhKT0+bC52YWx1'@; put 'ZS5vdXRsZXQ9PT1Lcz8tMTphLnZhbHVlLm91dGxldD09PUtzPzE6bC52YWx1ZS5vdXRsZXQubG9jYWxlQ29tcGFyZShhLnZhbHVlLm91dGxldCkpfSh2KSxkcyh2KX0pKX1wcm9jZXNzU2VnbWVudChsLGEsZCxoLGYsdil7cmV0dXJuIFV1KGEpLnBpcGUocXkoTT0+dGhpcy5wcm9jZXNzU2Vn'@; put 'bWVudEFnYWluc3RSb3V0ZShNLl9pbmplY3Rvcj8/bCxhLE0sZCxoLGYsdikucGlwZShxOChJPT57aWYoSSBpbnN0YW5jZW9mIHBXKXJldHVybiBkcyhudWxsKTt0aHJvdyBJfSkpKSxubShNPT4hIU0pLHE4KE09PntpZihzY2UoTSkpcmV0dXJuIGZ1bmN0aW9uIG5UZShjLGwsYSl7cmV0dXJu'@; put 'IDA9PT1sLmxlbmd0aCYmIWMuY2hpbGRyZW5bYV19KGQsaCxmKT9kcyhuZXcgclRlKTpvYihkKTt0aHJvdyBNfSkpfXByb2Nlc3NTZWdtZW50QWdhaW5zdFJvdXRlKGwsYSxkLGgsZix2LE0pe3JldHVybiBmdW5jdGlvbiB0VGUoYyxsLGEsZCl7cmV0dXJuISEodnAoYyk9PT1kfHxkIT09S3Mm'@; put 'JlhSKGwsYSxjKSkmJnZXKGwsYyxhKS5tYXRjaGVkfShkLGgsZix2KT92b2lkIDA9PT1kLnJlZGlyZWN0VG8/dGhpcy5tYXRjaFNlZ21lbnRBZ2FpbnN0Um91dGUobCxoLGQsZix2KTp0aGlzLmFsbG93UmVkaXJlY3RzJiZNP3RoaXMuZXhwYW5kU2VnbWVudEFnYWluc3RSb3V0ZVVzaW5nUmVk'@; put 'aXJlY3QobCxoLGEsZCxmLHYpOm9iKGgpOm9iKGgpfWV4cGFuZFNlZ21lbnRBZ2FpbnN0Um91dGVVc2luZ1JlZGlyZWN0KGwsYSxkLGgsZix2KXtjb25zdHttYXRjaGVkOk0sY29uc3VtZWRTZWdtZW50czpJLHBvc2l0aW9uYWxQYXJhbVNlZ21lbnRzOkcscmVtYWluaW5nU2VnbWVudHM6cmV9'@; put 'PXZXKGEsaCxmKTtpZighTSlyZXR1cm4gb2IoYSk7aC5yZWRpcmVjdFRvLnN0YXJ0c1dpdGgoIi8iKSYmKHRoaXMuYWJzb2x1dGVSZWRpcmVjdENvdW50KyssdGhpcy5hYnNvbHV0ZVJlZGlyZWN0Q291bnQ+MzEmJih0aGlzLmFsbG93UmVkaXJlY3RzPSExKSk7Y29uc3QgdWU9dGhpcy5hcHBs'@; put 'eVJlZGlyZWN0cy5hcHBseVJlZGlyZWN0Q29tbWFuZHMoSSxoLnJlZGlyZWN0VG8sRyk7cmV0dXJuIHRoaXMuYXBwbHlSZWRpcmVjdHMubGluZXJhbGl6ZVNlZ21lbnRzKGgsdWUpLnBpcGUoRjAoeWU9PnRoaXMucHJvY2Vzc1NlZ21lbnQobCxkLGEseWUuY29uY2F0KHJlKSx2LCExKSkpfW1h'@; put 'dGNoU2VnbWVudEFnYWluc3RSb3V0ZShsLGEsZCxoLGYpe2NvbnN0IHY9S0VlKGEsZCxoLGwpO3JldHVybiIqKiI9PT1kLnBhdGgmJihhLmNoaWxkcmVuPXt9KSx2LnBpcGUoajEoTT0+TS5tYXRjaGVkP3RoaXMuZ2V0Q2hpbGRDb25maWcobD1kLl9pbmplY3Rvcj8/bCxkLGgpLnBpcGUoajEo'@; put 'KHtyb3V0ZXM6SX0pPT57Y29uc3QgRz1kLl9sb2FkZWRJbmplY3Rvcj8/bCx7Y29uc3VtZWRTZWdtZW50czpyZSxyZW1haW5pbmdTZWdtZW50czp1ZSxwYXJhbWV0ZXJzOnllfT1NLEVlPW5ldyBsVyhyZSx5ZSxPYmplY3QuZnJlZXplKHsuLi50aGlzLnVybFRyZWUucXVlcnlQYXJhbXN9KSx0'@; put 'aGlzLnVybFRyZWUuZnJhZ21lbnQsZnVuY3Rpb24gY1RlKGMpe3JldHVybiBjLmRhdGF8fHt9fShkKSx2cChkKSxkLmNvbXBvbmVudD8/ZC5fbG9hZGVkQ29tcG9uZW50Pz9udWxsLGQsZnVuY3Rpb24gdVRlKGMpe3JldHVybiBjLnJlc29sdmV8fHt9fShkKSkse3NlZ21lbnRHcm91cDpCZSxz'@; put 'bGljZWRTZWdtZW50czpHZX09bGNlKGEscmUsdWUsSSk7aWYoMD09PUdlLmxlbmd0aCYmQmUuaGFzQ2hpbGRyZW4oKSlyZXR1cm4gdGhpcy5wcm9jZXNzQ2hpbGRyZW4oRyxJLEJlKS5waXBlKFByKHB0PT5udWxsPT09cHQ/bnVsbDpuZXcgcWYoRWUscHQpKSk7aWYoMD09PUkubGVuZ3RoJiYw'@; put 'PT09R2UubGVuZ3RoKXJldHVybiBkcyhuZXcgcWYoRWUsW10pKTtjb25zdCBzdD12cChkKT09PWY7cmV0dXJuIHRoaXMucHJvY2Vzc1NlZ21lbnQoRyxJLEJlLEdlLHN0P0tzOmYsITApLnBpcGUoUHIocHQ9Pm5ldyBxZihFZSxwdCBpbnN0YW5jZW9mIHFmP1twdF06W10pKSl9KSk6b2IoYSkp'@; put 'KX1nZXRDaGlsZENvbmZpZyhsLGEsZCl7cmV0dXJuIGEuY2hpbGRyZW4/ZHMoe3JvdXRlczphLmNoaWxkcmVuLGluamVjdG9yOmx9KTphLmxvYWRDaGlsZHJlbj92b2lkIDAhPT1hLl9sb2FkZWRSb3V0ZXM/ZHMoe3JvdXRlczphLl9sb2FkZWRSb3V0ZXMsaW5qZWN0b3I6YS5fbG9hZGVkSW5q'@; put 'ZWN0b3J9KTpmdW5jdGlvbiBaRWUoYyxsLGEsZCl7Y29uc3QgaD1sLmNhbkxvYWQ7cmV0dXJuIHZvaWQgMD09PWh8fDA9PT1oLmxlbmd0aD9kcyghMCk6ZHMoaC5tYXAodj0+e2NvbnN0IE09YWIodixjKTtyZXR1cm4gcm0oZnVuY3Rpb24gSUVlKGMpe3JldHVybiBjJiZzeChjLmNhbkxvYWQp'@; put 'fShNKT9NLmNhbkxvYWQobCxhKTpLMChjLCgpPT5NKGwsYSkpKX0pKS5waXBlKHNiKCksb2NlKCkpfShsLGEsZCkucGlwZShGMChoPT5oP3RoaXMuY29uZmlnTG9hZGVyLmxvYWRDaGlsZHJlbihsLGEpLnBpcGUoWnUoZj0+e2EuX2xvYWRlZFJvdXRlcz1mLnJvdXRlcyxhLl9sb2FkZWRJbmpl'@; put 'Y3Rvcj1mLmluamVjdG9yfSkpOmZ1bmN0aW9uIEdFZShjKXtyZXR1cm4gR00obmNlKCExLG1oLkd1YXJkUmVqZWN0ZWQpKX0oKSkpOmRzKHtyb3V0ZXM6W10saW5qZWN0b3I6bH0pfX1mdW5jdGlvbiBsVGUoYyl7Y29uc3QgbD1jLnZhbHVlLnJvdXRlQ29uZmlnO3JldHVybiBsJiYiIj09PWwu'@; put 'cGF0aH1mdW5jdGlvbiBjY2UoYyl7Y29uc3QgbD1bXSxhPW5ldyBTZXQ7Zm9yKGNvbnN0IGQgb2YgYyl7aWYoIWxUZShkKSl7bC5wdXNoKGQpO2NvbnRpbnVlfWNvbnN0IGg9bC5maW5kKGY9PmQudmFsdWUucm91dGVDb25maWc9PT1mLnZhbHVlLnJvdXRlQ29uZmlnKTt2b2lkIDAhPT1oPyho'@; put 'LmNoaWxkcmVuLnB1c2goLi4uZC5jaGlsZHJlbiksYS5hZGQoaCkpOmwucHVzaChkKX1mb3IoY29uc3QgZCBvZiBhKXtjb25zdCBoPWNjZShkLmNoaWxkcmVuKTtsLnB1c2gobmV3IHFmKGQudmFsdWUsaCkpfXJldHVybiBsLmZpbHRlcihkPT4hYS5oYXMoZCkpfWZ1bmN0aW9uIHVjZShjKXtj'@; put 'b25zdCBsPWMuY2hpbGRyZW4ubWFwKGE9PnVjZShhKSkuZmxhdCgpO3JldHVybltjLC4uLmxdfWZ1bmN0aW9uIHlXKGMpe3JldHVybiBqMShsPT57Y29uc3QgYT1jKGwpO3JldHVybiBhP1V1KGEpLnBpcGUoUHIoKCk9PmwpKTpkcyhsKX0pfWxldCBkY2U9KCgpPT57Y2xhc3MgY3tidWlsZFRp'@; put 'dGxlKGEpe2xldCBkLGg9YS5yb290O2Zvcig7dm9pZCAwIT09aDspZD10aGlzLmdldFJlc29sdmVkVGl0bGVGb3JSb3V0ZShoKT8/ZCxoPWguY2hpbGRyZW4uZmluZChmPT5mLm91dGxldD09PUtzKTtyZXR1cm4gZH1nZXRSZXNvbHZlZFRpdGxlRm9yUm91dGUoYSl7cmV0dXJuIGEuZGF0YVtL'@; put 'TV19c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTooKT0+aGkobVRlKSxwcm92aWRlZEluOiJyb290In0pfX1yZXR1cm4gY30pKCksbVRlPSgoKT0+e2NsYXNzIGMgZXh0'@; put 'ZW5kcyBkY2V7Y29uc3RydWN0b3IoYSl7c3VwZXIoKSx0aGlzLnRpdGxlPWF9dXBkYXRlVGl0bGUoYSl7Y29uc3QgZD10aGlzLmJ1aWxkVGl0bGUoYSk7dm9pZCAwIT09ZCYmdGhpcy50aXRsZS5zZXRUaXRsZShkKX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5l'@; put 'dyhkfHxjKShDcihZQ2UpKX19c3RhdGlje3RoaXMuXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSl9fXJldHVybiBjfSkoKTtjb25zdCBsYj1uZXcgU3QoIiIse3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6KCk9Pih7fSl9KSxj'@; put 'Yj1uZXcgU3QoIiIpO2xldCBiVz0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5jb21wb25lbnRMb2FkZXJzPW5ldyBXZWFrTWFwLHRoaXMuY2hpbGRyZW5Mb2FkZXJzPW5ldyBXZWFrTWFwLHRoaXMuY29tcGlsZXI9aGkoYWFlKX1sb2FkQ29tcG9uZW50KGEpe2lmKHRoaXMuY29t'@; put 'cG9uZW50TG9hZGVycy5nZXQoYSkpcmV0dXJuIHRoaXMuY29tcG9uZW50TG9hZGVycy5nZXQoYSk7aWYoYS5fbG9hZGVkQ29tcG9uZW50KXJldHVybiBkcyhhLl9sb2FkZWRDb21wb25lbnQpO3RoaXMub25Mb2FkU3RhcnRMaXN0ZW5lciYmdGhpcy5vbkxvYWRTdGFydExpc3RlbmVyKGEpO2Nv'@; put 'bnN0IGQ9cm0oYS5sb2FkQ29tcG9uZW50KCkpLnBpcGUoUHIoaGNlKSxadShmPT57dGhpcy5vbkxvYWRFbmRMaXN0ZW5lciYmdGhpcy5vbkxvYWRFbmRMaXN0ZW5lcihhKSxhLl9sb2FkZWRDb21wb25lbnQ9Zn0pLCRNKCgpPT57dGhpcy5jb21wb25lbnRMb2FkZXJzLmRlbGV0ZShhKX0pKSxo'@; put 'PW5ldyBLWihkLCgpPT5uZXcgR24pLnBpcGUoJFooKSk7cmV0dXJuIHRoaXMuY29tcG9uZW50TG9hZGVycy5zZXQoYSxoKSxofWxvYWRDaGlsZHJlbihhLGQpe2lmKHRoaXMuY2hpbGRyZW5Mb2FkZXJzLmdldChkKSlyZXR1cm4gdGhpcy5jaGlsZHJlbkxvYWRlcnMuZ2V0KGQpO2lmKGQuX2xv'@; put 'YWRlZFJvdXRlcylyZXR1cm4gZHMoe3JvdXRlczpkLl9sb2FkZWRSb3V0ZXMsaW5qZWN0b3I6ZC5fbG9hZGVkSW5qZWN0b3J9KTt0aGlzLm9uTG9hZFN0YXJ0TGlzdGVuZXImJnRoaXMub25Mb2FkU3RhcnRMaXN0ZW5lcihkKTtjb25zdCBmPWZ1bmN0aW9uIHZUZShjLGwsYSxkKXtyZXR1cm4g'@; put 'cm0oYy5sb2FkQ2hpbGRyZW4oKSkucGlwZShQcihoY2UpLEYwKGg9PmggaW5zdGFuY2VvZiBwY3x8QXJyYXkuaXNBcnJheShoKT9kcyhoKTpVdShsLmNvbXBpbGVNb2R1bGVBc3luYyhoKSkpLFByKGg9PntkJiZkKGMpO2xldCBmLHYsTT0hMTtyZXR1cm4gQXJyYXkuaXNBcnJheShoKT8odj1o'@; put 'LCEwKTooZj1oLmNyZWF0ZShhKS5pbmplY3Rvcix2PWYuZ2V0KGNiLFtdLHtvcHRpb25hbDohMCxzZWxmOiEwfSkuZmxhdCgpKSx7cm91dGVzOnYubWFwKGZXKSxpbmplY3RvcjpmfX0pKX0oZCx0aGlzLmNvbXBpbGVyLGEsdGhpcy5vbkxvYWRFbmRMaXN0ZW5lcikucGlwZSgkTSgoKT0+e3Ro'@; put 'aXMuY2hpbGRyZW5Mb2FkZXJzLmRlbGV0ZShkKX0pKSx2PW5ldyBLWihmLCgpPT5uZXcgR24pLnBpcGUoJFooKSk7cmV0dXJuIHRoaXMuY2hpbGRyZW5Mb2FkZXJzLnNldChkLHYpLHZ9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0'@; put 'aGlzLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pfX1yZXR1cm4gY30pKCk7ZnVuY3Rpb24gaGNlKGMpe3JldHVybiBmdW5jdGlvbiB5VGUoYyl7cmV0dXJuIGMmJiJvYmplY3QiPT10eXBlb2YgYyYmImRlZmF1bHQiaW4gY30o'@; put 'Yyk/Yy5kZWZhdWx0OmN9bGV0IF9XPSgoKT0+e2NsYXNzIGN7c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTooKT0+aGkoYlRlKSxwcm92aWRlZEluOiJyb290In0pfX1y'@; put 'ZXR1cm4gY30pKCksYlRlPSgoKT0+e2NsYXNzIGN7c2hvdWxkUHJvY2Vzc1VybChhKXtyZXR1cm4hMH1leHRyYWN0KGEpe3JldHVybiBhfW1lcmdlKGEsZCl7cmV0dXJuIGF9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1'@; put 'MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pfX1yZXR1cm4gY30pKCk7Y29uc3QgZmNlPW5ldyBTdCgiIikscGNlPW5ldyBTdCgiIik7ZnVuY3Rpb24gX1RlKGMsbCxhKXtjb25zdCBkPWMuZ2V0KHBjZSksaD1jLmdldChtbyk7cmV0'@; put 'dXJuIGMuZ2V0KEdhKS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e2lmKCFoLnN0YXJ0Vmlld1RyYW5zaXRpb258fGQuc2tpcE5leHRUcmFuc2l0aW9uKXJldHVybiBkLnNraXBOZXh0VHJhbnNpdGlvbj0hMSxuZXcgUHJvbWlzZShHPT5zZXRUaW1lb3V0KEcpKTtsZXQgZjtjb25zdCB2PW5ldyBQ'@; put 'cm9taXNlKEc9PntmPUd9KSxNPWguc3RhcnRWaWV3VHJhbnNpdGlvbigoKT0+KGYoKSxmdW5jdGlvbiB3VGUoYyl7cmV0dXJuIG5ldyBQcm9taXNlKGw9PntteShsLHtpbmplY3RvcjpjfSl9KX0oYykpKSx7b25WaWV3VHJhbnNpdGlvbkNyZWF0ZWQ6SX09ZDtyZXR1cm4gSSYmSzAoYywoKT0+'@; put 'SSh7dHJhbnNpdGlvbjpNLGZyb206bCx0bzphfSkpLHZ9KX1sZXQgcVI9KCgpPT57Y2xhc3MgY3tnZXQgaGFzUmVxdWVzdGVkTmF2aWdhdGlvbigpe3JldHVybiAwIT09dGhpcy5uYXZpZ2F0aW9uSWR9Y29uc3RydWN0b3IoKXt0aGlzLmN1cnJlbnROYXZpZ2F0aW9uPW51bGwsdGhpcy5jdXJy'@; put 'ZW50VHJhbnNpdGlvbj1udWxsLHRoaXMubGFzdFN1Y2Nlc3NmdWxOYXZpZ2F0aW9uPW51bGwsdGhpcy5ldmVudHM9bmV3IEduLHRoaXMudHJhbnNpdGlvbkFib3J0U3ViamVjdD1uZXcgR24sdGhpcy5jb25maWdMb2FkZXI9aGkoYlcpLHRoaXMuZW52aXJvbm1lbnRJbmplY3Rvcj1oaShxbCks'@; put 'dGhpcy51cmxTZXJpYWxpemVyPWhpKGViKSx0aGlzLnJvb3RDb250ZXh0cz1oaSh0eCksdGhpcy5sb2NhdGlvbj1oaShwaCksdGhpcy5pbnB1dEJpbmRpbmdFbmFibGVkPW51bGwhPT1oaShHUix7b3B0aW9uYWw6ITB9KSx0aGlzLnRpdGxlU3RyYXRlZ3k9aGkoZGNlKSx0aGlzLm9wdGlvbnM9'@; put 'aGkobGIse29wdGlvbmFsOiEwfSl8fHt9LHRoaXMucGFyYW1zSW5oZXJpdGFuY2VTdHJhdGVneT10aGlzLm9wdGlvbnMucGFyYW1zSW5oZXJpdGFuY2VTdHJhdGVneXx8ImVtcHR5T25seSIsdGhpcy51cmxIYW5kbGluZ1N0cmF0ZWd5PWhpKF9XKSx0aGlzLmNyZWF0ZVZpZXdUcmFuc2l0aW9u'@; put 'PWhpKGZjZSx7b3B0aW9uYWw6ITB9KSx0aGlzLm5hdmlnYXRpb25JZD0wLHRoaXMuYWZ0ZXJQcmVhY3RpdmF0aW9uPSgpPT5kcyh2b2lkIDApLHRoaXMucm9vdENvbXBvbmVudFR5cGU9bnVsbCx0aGlzLmNvbmZpZ0xvYWRlci5vbkxvYWRFbmRMaXN0ZW5lcj1oPT50aGlzLmV2ZW50cy5uZXh0'@; put 'KG5ldyBsRWUoaCkpLHRoaXMuY29uZmlnTG9hZGVyLm9uTG9hZFN0YXJ0TGlzdGVuZXI9aD0+dGhpcy5ldmVudHMubmV4dChuZXcgb0VlKGgpKX1jb21wbGV0ZSgpe3RoaXMudHJhbnNpdGlvbnM/LmNvbXBsZXRlKCl9aGFuZGxlTmF2aWdhdGlvblJlcXVlc3QoYSl7Y29uc3QgZD0rK3RoaXMu'@; put 'bmF2aWdhdGlvbklkO3RoaXMudHJhbnNpdGlvbnM/Lm5leHQoey4uLnRoaXMudHJhbnNpdGlvbnMudmFsdWUsLi4uYSxpZDpkfSl9c2V0dXBOYXZpZ2F0aW9ucyhhLGQsaCl7cmV0dXJuIHRoaXMudHJhbnNpdGlvbnM9bmV3IEpyKHtpZDowLGN1cnJlbnRVcmxUcmVlOmQsY3VycmVudFJhd1Vy'@; put 'bDpkLGV4dHJhY3RlZFVybDp0aGlzLnVybEhhbmRsaW5nU3RyYXRlZ3kuZXh0cmFjdChkKSx1cmxBZnRlclJlZGlyZWN0czp0aGlzLnVybEhhbmRsaW5nU3RyYXRlZ3kuZXh0cmFjdChkKSxyYXdVcmw6ZCxleHRyYXM6e30scmVzb2x2ZTpudWxsLHJlamVjdDpudWxsLHByb21pc2U6UHJvbWlz'@; put 'ZS5yZXNvbHZlKCEwKSxzb3VyY2U6ZXgscmVzdG9yZWRTdGF0ZTpudWxsLGN1cnJlbnRTbmFwc2hvdDpoLnNuYXBzaG90LHRhcmdldFNuYXBzaG90Om51bGwsY3VycmVudFJvdXRlclN0YXRlOmgsdGFyZ2V0Um91dGVyU3RhdGU6bnVsbCxndWFyZHM6e2NhbkFjdGl2YXRlQ2hlY2tzOltdLGNh'@; put 'bkRlYWN0aXZhdGVDaGVja3M6W119LGd1YXJkc1Jlc3VsdDpudWxsfSksdGhpcy50cmFuc2l0aW9ucy5waXBlKFdsKGY9PjAhPT1mLmlkKSxQcihmPT4oey4uLmYsZXh0cmFjdGVkVXJsOnRoaXMudXJsSGFuZGxpbmdTdHJhdGVneS5leHRyYWN0KGYucmF3VXJsKX0pKSxqMShmPT57bGV0IHY9'@; put 'ITEsTT0hMTtyZXR1cm4gZHMoZikucGlwZShqMShJPT57aWYodGhpcy5uYXZpZ2F0aW9uSWQ+Zi5pZClyZXR1cm4gdGhpcy5jYW5jZWxOYXZpZ2F0aW9uVHJhbnNpdGlvbihmLCIiLG1oLlN1cGVyc2VkZWRCeU5ld05hdmlnYXRpb24pLEUyO3RoaXMuY3VycmVudFRyYW5zaXRpb249Zix0aGlz'@; put 'LmN1cnJlbnROYXZpZ2F0aW9uPXtpZDpJLmlkLGluaXRpYWxVcmw6SS5yYXdVcmwsZXh0cmFjdGVkVXJsOkkuZXh0cmFjdGVkVXJsLHRyaWdnZXI6SS5zb3VyY2UsZXh0cmFzOkkuZXh0cmFzLHByZXZpb3VzTmF2aWdhdGlvbjp0aGlzLmxhc3RTdWNjZXNzZnVsTmF2aWdhdGlvbj97Li4udGhp'@; put 'cy5sYXN0U3VjY2Vzc2Z1bE5hdmlnYXRpb24scHJldmlvdXNOYXZpZ2F0aW9uOm51bGx9Om51bGx9O2NvbnN0IEc9IWEubmF2aWdhdGVkfHx0aGlzLmlzVXBkYXRpbmdJbnRlcm5hbFN0YXRlKCl8fHRoaXMuaXNVcGRhdGVkQnJvd3NlclVybCgpO2lmKCFHJiYicmVsb2FkIiE9PShJLmV4dHJh'@; put 'cy5vblNhbWVVcmxOYXZpZ2F0aW9uPz9hLm9uU2FtZVVybE5hdmlnYXRpb24pKXtjb25zdCB1ZT0iIjtyZXR1cm4gdGhpcy5ldmVudHMubmV4dChuZXcgcmIoSS5pZCx0aGlzLnVybFNlcmlhbGl6ZXIuc2VyaWFsaXplKEkucmF3VXJsKSx1ZSxXUi5JZ25vcmVkU2FtZVVybE5hdmlnYXRpb24p'@; put 'KSxJLnJlc29sdmUobnVsbCksRTJ9aWYodGhpcy51cmxIYW5kbGluZ1N0cmF0ZWd5LnNob3VsZFByb2Nlc3NVcmwoSS5yYXdVcmwpKXJldHVybiBkcyhJKS5waXBlKGoxKHVlPT57Y29uc3QgeWU9dGhpcy50cmFuc2l0aW9ucz8uZ2V0VmFsdWUoKTtyZXR1cm4gdGhpcy5ldmVudHMubmV4dChu'@; put 'ZXcgWlIodWUuaWQsdGhpcy51cmxTZXJpYWxpemVyLnNlcmlhbGl6ZSh1ZS5leHRyYWN0ZWRVcmwpLHVlLnNvdXJjZSx1ZS5yZXN0b3JlZFN0YXRlKSkseWUhPT10aGlzLnRyYW5zaXRpb25zPy5nZXRWYWx1ZSgpP0UyOlByb21pc2UucmVzb2x2ZSh1ZSl9KSxmdW5jdGlvbiBkVGUoYyxsLGEs'@; put 'ZCxoLGYpe3JldHVybiBGMCh2PT5mdW5jdGlvbiBpVGUoYyxsLGEsZCxoLGYsdj0iZW1wdHlPbmx5Iil7cmV0dXJuIG5ldyBzVGUoYyxsLGEsZCxoLHYsZikucmVjb2duaXplKCl9KGMsbCxhLGQsdi5leHRyYWN0ZWRVcmwsaCxmKS5waXBlKFByKCh7c3RhdGU6TSx0cmVlOkl9KT0+KHsuLi52'@; put 'LHRhcmdldFNuYXBzaG90Ok0sdXJsQWZ0ZXJSZWRpcmVjdHM6SX0pKSkpfSh0aGlzLmVudmlyb25tZW50SW5qZWN0b3IsdGhpcy5jb25maWdMb2FkZXIsdGhpcy5yb290Q29tcG9uZW50VHlwZSxhLmNvbmZpZyx0aGlzLnVybFNlcmlhbGl6ZXIsdGhpcy5wYXJhbXNJbmhlcml0YW5jZVN0cmF0'@; put 'ZWd5KSxadSh1ZT0+e2YudGFyZ2V0U25hcHNob3Q9dWUudGFyZ2V0U25hcHNob3QsZi51cmxBZnRlclJlZGlyZWN0cz11ZS51cmxBZnRlclJlZGlyZWN0cyx0aGlzLmN1cnJlbnROYXZpZ2F0aW9uPXsuLi50aGlzLmN1cnJlbnROYXZpZ2F0aW9uLGZpbmFsVXJsOnVlLnVybEFmdGVyUmVkaXJl'@; put 'Y3RzfTtjb25zdCB5ZT1uZXcgV2xlKHVlLmlkLHRoaXMudXJsU2VyaWFsaXplci5zZXJpYWxpemUodWUuZXh0cmFjdGVkVXJsKSx0aGlzLnVybFNlcmlhbGl6ZXIuc2VyaWFsaXplKHVlLnVybEFmdGVyUmVkaXJlY3RzKSx1ZS50YXJnZXRTbmFwc2hvdCk7dGhpcy5ldmVudHMubmV4dCh5ZSl9'@; put 'KSk7aWYoRyYmdGhpcy51cmxIYW5kbGluZ1N0cmF0ZWd5LnNob3VsZFByb2Nlc3NVcmwoSS5jdXJyZW50UmF3VXJsKSl7Y29uc3R7aWQ6dWUsZXh0cmFjdGVkVXJsOnllLHNvdXJjZTpFZSxyZXN0b3JlZFN0YXRlOkJlLGV4dHJhczpHZX09SSxzdD1uZXcgWlIodWUsdGhpcy51cmxTZXJpYWxp'@; put 'emVyLnNlcmlhbGl6ZSh5ZSksRWUsQmUpO3RoaXMuZXZlbnRzLm5leHQoc3QpO2NvbnN0IHB0PUtsZSh0aGlzLnJvb3RDb21wb25lbnRUeXBlKS5zbmFwc2hvdDtyZXR1cm4gdGhpcy5jdXJyZW50VHJhbnNpdGlvbj1mPXsuLi5JLHRhcmdldFNuYXBzaG90OnB0LHVybEFmdGVyUmVkaXJlY3Rz'@; put 'OnllLGV4dHJhczp7Li4uR2Usc2tpcExvY2F0aW9uQ2hhbmdlOiExLHJlcGxhY2VVcmw6ITF9fSx0aGlzLmN1cnJlbnROYXZpZ2F0aW9uLmZpbmFsVXJsPXllLGRzKGYpfXtjb25zdCB1ZT0iIjtyZXR1cm4gdGhpcy5ldmVudHMubmV4dChuZXcgcmIoSS5pZCx0aGlzLnVybFNlcmlhbGl6ZXIu'@; put 'c2VyaWFsaXplKEkuZXh0cmFjdGVkVXJsKSx1ZSxXUi5JZ25vcmVkQnlVcmxIYW5kbGluZ1N0cmF0ZWd5KSksSS5yZXNvbHZlKG51bGwpLEUyfX0pLFp1KEk9Pntjb25zdCBHPW5ldyByRWUoSS5pZCx0aGlzLnVybFNlcmlhbGl6ZXIuc2VyaWFsaXplKEkuZXh0cmFjdGVkVXJsKSx0aGlzLnVy'@; put 'bFNlcmlhbGl6ZXIuc2VyaWFsaXplKEkudXJsQWZ0ZXJSZWRpcmVjdHMpLEkudGFyZ2V0U25hcHNob3QpO3RoaXMuZXZlbnRzLm5leHQoRyl9KSxQcihJPT4odGhpcy5jdXJyZW50VHJhbnNpdGlvbj1mPXsuLi5JLGd1YXJkczpFRWUoSS50YXJnZXRTbmFwc2hvdCxJLmN1cnJlbnRTbmFwc2hv'@; put 'dCx0aGlzLnJvb3RDb250ZXh0cyl9LGYpKSxmdW5jdGlvbiBGRWUoYyxsKXtyZXR1cm4gRjAoYT0+e2NvbnN0e3RhcmdldFNuYXBzaG90OmQsY3VycmVudFNuYXBzaG90OmgsZ3VhcmRzOntjYW5BY3RpdmF0ZUNoZWNrczpmLGNhbkRlYWN0aXZhdGVDaGVja3M6dn19PWE7cmV0dXJuIDA9PT12'@; put 'Lmxlbmd0aCYmMD09PWYubGVuZ3RoP2RzKHsuLi5hLGd1YXJkc1Jlc3VsdDohMH0pOmZ1bmN0aW9uIEhFZShjLGwsYSxkKXtyZXR1cm4gVXUoYykucGlwZShGMChoPT5mdW5jdGlvbiBVRWUoYyxsLGEsZCxoKXtjb25zdCBmPWwmJmwucm91dGVDb25maWc/bC5yb3V0ZUNvbmZpZy5jYW5EZWFj'@; put 'dGl2YXRlOm51bGw7cmV0dXJuIGYmJjAhPT1mLmxlbmd0aD9kcyhmLm1hcChNPT57Y29uc3QgST1yeChsKT8/aCxHPWFiKE0sSSk7cmV0dXJuIHJtKGZ1bmN0aW9uIE9FZShjKXtyZXR1cm4gYyYmc3goYy5jYW5EZWFjdGl2YXRlKX0oRyk/Ry5jYW5EZWFjdGl2YXRlKGMsbCxhLGQpOkswKEks'@; put 'KCk9PkcoYyxsLGEsZCkpKS5waXBlKG5tKCkpfSkpLnBpcGUoc2IoKSk6ZHMoITApfShoLmNvbXBvbmVudCxoLnJvdXRlLGEsbCxkKSksbm0oaD0+ITAhPT1oLCEwKSl9KHYsZCxoLGMpLnBpcGUoRjAoTT0+TSYmZnVuY3Rpb24gREVlKGMpe3JldHVybiJib29sZWFuIj09dHlwZW9mIGN9KE0p'@; put 'P2Z1bmN0aW9uIE5FZShjLGwsYSxkKXtyZXR1cm4gVXUobCkucGlwZShxeShoPT5HWihmdW5jdGlvbiBCRWUoYyxsKXtyZXR1cm4gbnVsbCE9PWMmJmwmJmwobmV3IGNFZShjKSksZHMoITApfShoLnJvdXRlLnBhcmVudCxkKSxmdW5jdGlvbiBWRWUoYyxsKXtyZXR1cm4gbnVsbCE9PWMmJmwm'@; put 'JmwobmV3IGRFZShjKSksZHMoITApfShoLnJvdXRlLGQpLGZ1bmN0aW9uIHpFZShjLGwsYSl7Y29uc3QgZD1sW2wubGVuZ3RoLTFdLGY9bC5zbGljZSgwLGwubGVuZ3RoLTEpLnJldmVyc2UoKS5tYXAodj0+ZnVuY3Rpb24gVEVlKGMpe2NvbnN0IGw9Yy5yb3V0ZUNvbmZpZz9jLnJvdXRlQ29u'@; put 'ZmlnLmNhbkFjdGl2YXRlQ2hpbGQ6bnVsbDtyZXR1cm4gbCYmMCE9PWwubGVuZ3RoP3tub2RlOmMsZ3VhcmRzOmx9Om51bGx9KHYpKS5maWx0ZXIodj0+bnVsbCE9PXYpLm1hcCh2PT5NbGUoKCk9PmRzKHYuZ3VhcmRzLm1hcChJPT57Y29uc3QgRz1yeCh2Lm5vZGUpPz9hLHJlPWFiKEksRyk7'@; put 'cmV0dXJuIHJtKGZ1bmN0aW9uIExFZShjKXtyZXR1cm4gYyYmc3goYy5jYW5BY3RpdmF0ZUNoaWxkKX0ocmUpP3JlLmNhbkFjdGl2YXRlQ2hpbGQoZCxjKTpLMChHLCgpPT5yZShkLGMpKSkucGlwZShubSgpKX0pKS5waXBlKHNiKCkpKSk7cmV0dXJuIGRzKGYpLnBpcGUoc2IoKSl9KGMsaC5w'@; put 'YXRoLGEpLGZ1bmN0aW9uIGpFZShjLGwsYSl7Y29uc3QgZD1sLnJvdXRlQ29uZmlnP2wucm91dGVDb25maWcuY2FuQWN0aXZhdGU6bnVsbDtpZighZHx8MD09PWQubGVuZ3RoKXJldHVybiBkcyghMCk7Y29uc3QgaD1kLm1hcChmPT5NbGUoKCk9Pntjb25zdCB2PXJ4KGwpPz9hLE09YWIoZix2'@; put 'KTtyZXR1cm4gcm0oZnVuY3Rpb24gUkVlKGMpe3JldHVybiBjJiZzeChjLmNhbkFjdGl2YXRlKX0oTSk/TS5jYW5BY3RpdmF0ZShsLGMpOkswKHYsKCk9Pk0obCxjKSkpLnBpcGUobm0oKSl9KSk7cmV0dXJuIGRzKGgpLnBpcGUoc2IoKSl9KGMsaC5yb3V0ZSxhKSkpLG5tKGg9PiEwIT09aCwh'@; put 'MCkpfShkLGYsYyxsKTpkcyhNKSksUHIoTT0+KHsuLi5hLGd1YXJkc1Jlc3VsdDpNfSkpKX0pfSh0aGlzLmVudmlyb25tZW50SW5qZWN0b3IsST0+dGhpcy5ldmVudHMubmV4dChJKSksWnUoST0+e2lmKGYuZ3VhcmRzUmVzdWx0PUkuZ3VhcmRzUmVzdWx0LHRiKEkuZ3VhcmRzUmVzdWx0KSl0'@; put 'aHJvdyB0Y2UoMCxJLmd1YXJkc1Jlc3VsdCk7Y29uc3QgRz1uZXcgaUVlKEkuaWQsdGhpcy51cmxTZXJpYWxpemVyLnNlcmlhbGl6ZShJLmV4dHJhY3RlZFVybCksdGhpcy51cmxTZXJpYWxpemVyLnNlcmlhbGl6ZShJLnVybEFmdGVyUmVkaXJlY3RzKSxJLnRhcmdldFNuYXBzaG90LCEhSS5n'@; put 'dWFyZHNSZXN1bHQpO3RoaXMuZXZlbnRzLm5leHQoRyl9KSxXbChJPT4hIUkuZ3VhcmRzUmVzdWx0fHwodGhpcy5jYW5jZWxOYXZpZ2F0aW9uVHJhbnNpdGlvbihJLCIiLG1oLkd1YXJkUmVqZWN0ZWQpLCExKSkseVcoST0+e2lmKEkuZ3VhcmRzLmNhbkFjdGl2YXRlQ2hlY2tzLmxlbmd0aCly'@; put 'ZXR1cm4gZHMoSSkucGlwZShadShHPT57Y29uc3QgcmU9bmV3IGFFZShHLmlkLHRoaXMudXJsU2VyaWFsaXplci5zZXJpYWxpemUoRy5leHRyYWN0ZWRVcmwpLHRoaXMudXJsU2VyaWFsaXplci5zZXJpYWxpemUoRy51cmxBZnRlclJlZGlyZWN0cyksRy50YXJnZXRTbmFwc2hvdCk7dGhpcy5l'@; put 'dmVudHMubmV4dChyZSl9KSxqMShHPT57bGV0IHJlPSExO3JldHVybiBkcyhHKS5waXBlKGZ1bmN0aW9uIGhUZShjLGwpe3JldHVybiBGMChhPT57Y29uc3R7dGFyZ2V0U25hcHNob3Q6ZCxndWFyZHM6e2NhbkFjdGl2YXRlQ2hlY2tzOmh9fT1hO2lmKCFoLmxlbmd0aClyZXR1cm4gZHMoYSk7'@; put 'Y29uc3QgZj1uZXcgU2V0KGgubWFwKEk9Pkkucm91dGUpKSx2PW5ldyBTZXQ7Zm9yKGNvbnN0IEkgb2YgZilpZighdi5oYXMoSSkpZm9yKGNvbnN0IEcgb2YgdWNlKEkpKXYuYWRkKEcpO2xldCBNPTA7cmV0dXJuIFV1KHYpLnBpcGUocXkoST0+Zi5oYXMoSSk/ZnVuY3Rpb24gZlRlKGMsbCxh'@; put 'LGQpe2NvbnN0IGg9Yy5yb3V0ZUNvbmZpZyxmPWMuX3Jlc29sdmU7cmV0dXJuIHZvaWQgMCE9PWg/LnRpdGxlJiYhSmxlKGgpJiYoZltLTV09aC50aXRsZSksZnVuY3Rpb24gcFRlKGMsbCxhLGQpe2NvbnN0IGg9cVooYyk7aWYoMD09PWgubGVuZ3RoKXJldHVybiBkcyh7fSk7Y29uc3QgZj17'@; put 'fTtyZXR1cm4gVXUoaCkucGlwZShGMCh2PT5mdW5jdGlvbiBnVGUoYyxsLGEsZCl7Y29uc3QgaD1yeChsKT8/ZCxmPWFiKGMsaCk7cmV0dXJuIHJtKGYucmVzb2x2ZT9mLnJlc29sdmUobCxhKTpLMChoLCgpPT5mKGwsYSkpKX0oY1t2XSxsLGEsZCkucGlwZShubSgpLFp1KE09PntmW3ZdPU19'@; put 'KSkpLFhaKDEpLGZ1bmN0aW9uIEF4ZShjKXtyZXR1cm4gUHIoKCk9PmMpfShmKSxxOCh2PT5zY2Uodik/RTI6R00odikpKX0oZixjLGwsZCkucGlwZShQcih2PT4oYy5fcmVzb2x2ZWREYXRhPXYsYy5kYXRhPW9XKGMsYy5wYXJlbnQsYSkucmVzb2x2ZSxudWxsKSkpfShJLGQsYyxsKTooSS5k'@; put 'YXRhPW9XKEksSS5wYXJlbnQsYykucmVzb2x2ZSxkcyh2b2lkIDApKSksWnUoKCk9Pk0rKyksWFooMSksRjAoST0+TT09PXYuc2l6ZT9kcyhhKTpFMikpfSl9KHRoaXMucGFyYW1zSW5oZXJpdGFuY2VTdHJhdGVneSx0aGlzLmVudmlyb25tZW50SW5qZWN0b3IpLFp1KHtuZXh0OigpPT5yZT0h'@; put 'MCxjb21wbGV0ZTooKT0+e3JlfHx0aGlzLmNhbmNlbE5hdmlnYXRpb25UcmFuc2l0aW9uKEcsIiIsbWguTm9EYXRhRnJvbVJlc29sdmVyKX19KSl9KSxadShHPT57Y29uc3QgcmU9bmV3IHNFZShHLmlkLHRoaXMudXJsU2VyaWFsaXplci5zZXJpYWxpemUoRy5leHRyYWN0ZWRVcmwpLHRoaXMu'@; put 'dXJsU2VyaWFsaXplci5zZXJpYWxpemUoRy51cmxBZnRlclJlZGlyZWN0cyksRy50YXJnZXRTbmFwc2hvdCk7dGhpcy5ldmVudHMubmV4dChyZSl9KSl9KSx5VyhJPT57Y29uc3QgRz1yZT0+e2NvbnN0IHVlPVtdO3JlLnJvdXRlQ29uZmlnPy5sb2FkQ29tcG9uZW50JiYhcmUucm91dGVDb25m'@; put 'aWcuX2xvYWRlZENvbXBvbmVudCYmdWUucHVzaCh0aGlzLmNvbmZpZ0xvYWRlci5sb2FkQ29tcG9uZW50KHJlLnJvdXRlQ29uZmlnKS5waXBlKFp1KHllPT57cmUuY29tcG9uZW50PXllfSksUHIoKCk9Pnt9KSkpO2Zvcihjb25zdCB5ZSBvZiByZS5jaGlsZHJlbil1ZS5wdXNoKC4uLkcoeWUp'@; put 'KTtyZXR1cm4gdWV9O3JldHVybiBYOChHKEkudGFyZ2V0U25hcHNob3Qucm9vdCkpLnBpcGUoSFIobnVsbCksZ2goMSkpfSkseVcoKCk9PnRoaXMuYWZ0ZXJQcmVhY3RpdmF0aW9uKCkpLGoxKCgpPT57Y29uc3R7Y3VycmVudFNuYXBzaG90OkksdGFyZ2V0U25hcHNob3Q6R309ZixyZT10aGlz'@; put 'LmNyZWF0ZVZpZXdUcmFuc2l0aW9uPy4odGhpcy5lbnZpcm9ubWVudEluamVjdG9yLEkucm9vdCxHLnJvb3QpO3JldHVybiByZT9VdShyZSkucGlwZShQcigoKT0+ZikpOmRzKGYpfSksUHIoST0+e2NvbnN0IEc9ZnVuY3Rpb24gZ0VlKGMsbCxhKXtjb25zdCBkPW54KGMsbC5fcm9vdCxhP2Eu'@; put 'X3Jvb3Q6dm9pZCAwKTtyZXR1cm4gbmV3ICRsZShkLGwpfShhLnJvdXRlUmV1c2VTdHJhdGVneSxJLnRhcmdldFNuYXBzaG90LEkuY3VycmVudFJvdXRlclN0YXRlKTtyZXR1cm4gdGhpcy5jdXJyZW50VHJhbnNpdGlvbj1mPXsuLi5JLHRhcmdldFJvdXRlclN0YXRlOkd9LHRoaXMuY3VycmVu'@; put 'dE5hdmlnYXRpb24udGFyZ2V0Um91dGVyU3RhdGU9RyxmfSksWnUoKCk9Pnt0aGlzLmV2ZW50cy5uZXh0KG5ldyByVyl9KSwoKGMsbCxhLGQpPT5QcihoPT4obmV3IHhFZShsLGgudGFyZ2V0Um91dGVyU3RhdGUsaC5jdXJyZW50Um91dGVyU3RhdGUsYSxkKS5hY3RpdmF0ZShjKSxoKSkpKHRo'@; put 'aXMucm9vdENvbnRleHRzLGEucm91dGVSZXVzZVN0cmF0ZWd5LEk9PnRoaXMuZXZlbnRzLm5leHQoSSksdGhpcy5pbnB1dEJpbmRpbmdFbmFibGVkKSxnaCgxKSxadSh7bmV4dDpJPT57dj0hMCx0aGlzLmxhc3RTdWNjZXNzZnVsTmF2aWdhdGlvbj10aGlzLmN1cnJlbnROYXZpZ2F0aW9uLHRo'@; put 'aXMuZXZlbnRzLm5leHQobmV3IG1wKEkuaWQsdGhpcy51cmxTZXJpYWxpemVyLnNlcmlhbGl6ZShJLmV4dHJhY3RlZFVybCksdGhpcy51cmxTZXJpYWxpemVyLnNlcmlhbGl6ZShJLnVybEFmdGVyUmVkaXJlY3RzKSkpLHRoaXMudGl0bGVTdHJhdGVneT8udXBkYXRlVGl0bGUoSS50YXJnZXRS'@; put 'b3V0ZXJTdGF0ZS5zbmFwc2hvdCksSS5yZXNvbHZlKCEwKX0sY29tcGxldGU6KCk9Pnt2PSEwfX0pLEgwKHRoaXMudHJhbnNpdGlvbkFib3J0U3ViamVjdC5waXBlKFp1KEk9Pnt0aHJvdyBJfSkpKSwkTSgoKT0+eyF2JiYhTSYmdGhpcy5jYW5jZWxOYXZpZ2F0aW9uVHJhbnNpdGlvbihmLCIi'@; put 'LG1oLlN1cGVyc2VkZWRCeU5ld05hdmlnYXRpb24pLHRoaXMuY3VycmVudFRyYW5zaXRpb24/LmlkPT09Zi5pZCYmKHRoaXMuY3VycmVudE5hdmlnYXRpb249bnVsbCx0aGlzLmN1cnJlbnRUcmFuc2l0aW9uPW51bGwpfSkscTgoST0+e2lmKE09ITAscmNlKEkpKXRoaXMuZXZlbnRzLm5leHQo'@; put 'bmV3IG5iKGYuaWQsdGhpcy51cmxTZXJpYWxpemVyLnNlcmlhbGl6ZShmLmV4dHJhY3RlZFVybCksSS5tZXNzYWdlLEkuY2FuY2VsbGF0aW9uQ29kZSkpLGZ1bmN0aW9uIHlFZShjKXtyZXR1cm4gcmNlKGMpJiZ0YihjLnVybCl9KEkpP3RoaXMuZXZlbnRzLm5leHQobmV3IGlXKEkudXJsKSk6'@; put 'Zi5yZXNvbHZlKCExKTtlbHNle3RoaXMuZXZlbnRzLm5leHQobmV3IFlSKGYuaWQsdGhpcy51cmxTZXJpYWxpemVyLnNlcmlhbGl6ZShmLmV4dHJhY3RlZFVybCksSSxmLnRhcmdldFNuYXBzaG90Pz92b2lkIDApKTt0cnl7Zi5yZXNvbHZlKGEuZXJyb3JIYW5kbGVyKEkpKX1jYXRjaChHKXt0'@; put 'aGlzLm9wdGlvbnMucmVzb2x2ZU5hdmlnYXRpb25Qcm9taXNlT25FcnJvcj9mLnJlc29sdmUoITEpOmYucmVqZWN0KEcpfX1yZXR1cm4gRTJ9KSl9KSl9Y2FuY2VsTmF2aWdhdGlvblRyYW5zaXRpb24oYSxkLGgpe2NvbnN0IGY9bmV3IG5iKGEuaWQsdGhpcy51cmxTZXJpYWxpemVyLnNlcmlh'@; put 'bGl6ZShhLmV4dHJhY3RlZFVybCksZCxoKTt0aGlzLmV2ZW50cy5uZXh0KGYpLGEucmVzb2x2ZSghMSl9aXNVcGRhdGluZ0ludGVybmFsU3RhdGUoKXtyZXR1cm4gdGhpcy5jdXJyZW50VHJhbnNpdGlvbj8uZXh0cmFjdGVkVXJsLnRvU3RyaW5nKCkhPT10aGlzLmN1cnJlbnRUcmFuc2l0aW9u'@; put 'Py5jdXJyZW50VXJsVHJlZS50b1N0cmluZygpfWlzVXBkYXRlZEJyb3dzZXJVcmwoKXtyZXR1cm4gdGhpcy51cmxIYW5kbGluZ1N0cmF0ZWd5LmV4dHJhY3QodGhpcy51cmxTZXJpYWxpemVyLnBhcnNlKHRoaXMubG9jYXRpb24ucGF0aCghMCkpKS50b1N0cmluZygpIT09dGhpcy5jdXJyZW50'@; put 'VHJhbnNpdGlvbj8uZXh0cmFjdGVkVXJsLnRvU3RyaW5nKCkmJiF0aGlzLmN1cnJlbnRUcmFuc2l0aW9uPy5leHRyYXMuc2tpcExvY2F0aW9uQ2hhbmdlfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpfX1zdGF0aWN7dGhpcy5cdTAyNzVwcm92PXJu'@; put 'KHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KX19cmV0dXJuIGN9KSgpO2Z1bmN0aW9uIENUZShjKXtyZXR1cm4gYyE9PWV4fWxldCBTVGU9KCgpPT57Y2xhc3MgY3tzdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxj'@; put 'KX19c3RhdGlje3RoaXMuXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OigpPT5oaSh4VGUpLHByb3ZpZGVkSW46InJvb3QifSl9fXJldHVybiBjfSkoKTtjbGFzcyBNVGV7c2hvdWxkRGV0YWNoKGwpe3JldHVybiExfXN0b3JlKGwsYSl7fXNob3VsZEF0dGFjaChsKXtyZXR1cm4hMX1y'@; put 'ZXRyaWV2ZShsKXtyZXR1cm4gbnVsbH1zaG91bGRSZXVzZVJvdXRlKGwsYSl7cmV0dXJuIGwucm91dGVDb25maWc9PT1hLnJvdXRlQ29uZmlnfX1sZXQgeFRlPSgoKT0+e2NsYXNzIGMgZXh0ZW5kcyBNVGV7c3RhdGlje3RoaXMuXHUwMjc1ZmFjPSgoKT0+e2xldCBhO3JldHVybiBmdW5jdGlv'@; put 'bihoKXtyZXR1cm4oYXx8KGE9VW8oYykpKShofHxjKX19KSgpfXN0YXRpY3t0aGlzLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pfX1yZXR1cm4gY30pKCksZ2NlPSgoKT0+e2NsYXNzIGN7c3RhdGlje3RoaXMuXHUwMjc1ZmFj'@; put 'PWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTooKT0+aGkoRVRlKSxwcm92aWRlZEluOiJyb290In0pfX1yZXR1cm4gY30pKCksRVRlPSgoKT0+e2NsYXNzIGMgZXh0ZW5kcyBnY2V7Y29uc3RydWN0b3IoKXtz'@; put 'dXBlciguLi5hcmd1bWVudHMpLHRoaXMubG9jYXRpb249aGkocGgpLHRoaXMudXJsU2VyaWFsaXplcj1oaShlYiksdGhpcy5vcHRpb25zPWhpKGxiLHtvcHRpb25hbDohMH0pfHx7fSx0aGlzLmNhbmNlbGVkTmF2aWdhdGlvblJlc29sdXRpb249dGhpcy5vcHRpb25zLmNhbmNlbGVkTmF2aWdh'@; put 'dGlvblJlc29sdXRpb258fCJyZXBsYWNlIix0aGlzLnVybEhhbmRsaW5nU3RyYXRlZ3k9aGkoX1cpLHRoaXMudXJsVXBkYXRlU3RyYXRlZ3k9dGhpcy5vcHRpb25zLnVybFVwZGF0ZVN0cmF0ZWd5fHwiZGVmZXJyZWQiLHRoaXMuY3VycmVudFVybFRyZWU9bmV3IFF5LHRoaXMucmF3VXJsVHJl'@; put 'ZT10aGlzLmN1cnJlbnRVcmxUcmVlLHRoaXMuY3VycmVudFBhZ2VJZD0wLHRoaXMubGFzdFN1Y2Nlc3NmdWxJZD0tMSx0aGlzLnJvdXRlclN0YXRlPUtsZShudWxsKSx0aGlzLnN0YXRlTWVtZW50bz10aGlzLmNyZWF0ZVN0YXRlTWVtZW50bygpfWdldEN1cnJlbnRVcmxUcmVlKCl7cmV0dXJu'@; put 'IHRoaXMuY3VycmVudFVybFRyZWV9Z2V0UmF3VXJsVHJlZSgpe3JldHVybiB0aGlzLnJhd1VybFRyZWV9cmVzdG9yZWRTdGF0ZSgpe3JldHVybiB0aGlzLmxvY2F0aW9uLmdldFN0YXRlKCl9Z2V0IGJyb3dzZXJQYWdlSWQoKXtyZXR1cm4iY29tcHV0ZWQiIT09dGhpcy5jYW5jZWxlZE5hdmln'@; put 'YXRpb25SZXNvbHV0aW9uP3RoaXMuY3VycmVudFBhZ2VJZDp0aGlzLnJlc3RvcmVkU3RhdGUoKT8uXHUwMjc1cm91dGVyUGFnZUlkPz90aGlzLmN1cnJlbnRQYWdlSWR9Z2V0Um91dGVyU3RhdGUoKXtyZXR1cm4gdGhpcy5yb3V0ZXJTdGF0ZX1jcmVhdGVTdGF0ZU1lbWVudG8oKXtyZXR1cm57'@; put 'cmF3VXJsVHJlZTp0aGlzLnJhd1VybFRyZWUsY3VycmVudFVybFRyZWU6dGhpcy5jdXJyZW50VXJsVHJlZSxyb3V0ZXJTdGF0ZTp0aGlzLnJvdXRlclN0YXRlfX1yZWdpc3Rlck5vblJvdXRlckN1cnJlbnRFbnRyeUNoYW5nZUxpc3RlbmVyKGEpe3JldHVybiB0aGlzLmxvY2F0aW9uLnN1YnNj'@; put 'cmliZShkPT57InBvcHN0YXRlIj09PWQudHlwZSYmYShkLnVybCxkLnN0YXRlKX0pfWhhbmRsZVJvdXRlckV2ZW50KGEsZCl7aWYoYSBpbnN0YW5jZW9mIFpSKXRoaXMuc3RhdGVNZW1lbnRvPXRoaXMuY3JlYXRlU3RhdGVNZW1lbnRvKCk7ZWxzZSBpZihhIGluc3RhbmNlb2YgcmIpdGhpcy5y'@; put 'YXdVcmxUcmVlPWQuaW5pdGlhbFVybDtlbHNlIGlmKGEgaW5zdGFuY2VvZiBXbGUpe2lmKCJlYWdlciI9PT10aGlzLnVybFVwZGF0ZVN0cmF0ZWd5JiYhZC5leHRyYXMuc2tpcExvY2F0aW9uQ2hhbmdlKXtjb25zdCBoPXRoaXMudXJsSGFuZGxpbmdTdHJhdGVneS5tZXJnZShkLmZpbmFsVXJs'@; put 'LGQuaW5pdGlhbFVybCk7dGhpcy5zZXRCcm93c2VyVXJsKGgsZCl9fWVsc2UgYSBpbnN0YW5jZW9mIHJXPyh0aGlzLmN1cnJlbnRVcmxUcmVlPWQuZmluYWxVcmwsdGhpcy5yYXdVcmxUcmVlPXRoaXMudXJsSGFuZGxpbmdTdHJhdGVneS5tZXJnZShkLmZpbmFsVXJsLGQuaW5pdGlhbFVybCks'@; put 'dGhpcy5yb3V0ZXJTdGF0ZT1kLnRhcmdldFJvdXRlclN0YXRlLCJkZWZlcnJlZCI9PT10aGlzLnVybFVwZGF0ZVN0cmF0ZWd5JiYoZC5leHRyYXMuc2tpcExvY2F0aW9uQ2hhbmdlfHx0aGlzLnNldEJyb3dzZXJVcmwodGhpcy5yYXdVcmxUcmVlLGQpKSk6YSBpbnN0YW5jZW9mIG5iJiYoYS5j'@; put 'b2RlPT09bWguR3VhcmRSZWplY3RlZHx8YS5jb2RlPT09bWguTm9EYXRhRnJvbVJlc29sdmVyKT90aGlzLnJlc3RvcmVIaXN0b3J5KGQpOmEgaW5zdGFuY2VvZiBZUj90aGlzLnJlc3RvcmVIaXN0b3J5KGQsITApOmEgaW5zdGFuY2VvZiBtcCYmKHRoaXMubGFzdFN1Y2Nlc3NmdWxJZD1hLmlk'@; put 'LHRoaXMuY3VycmVudFBhZ2VJZD10aGlzLmJyb3dzZXJQYWdlSWQpfXNldEJyb3dzZXJVcmwoYSxkKXtjb25zdCBoPXRoaXMudXJsU2VyaWFsaXplci5zZXJpYWxpemUoYSk7aWYodGhpcy5sb2NhdGlvbi5pc0N1cnJlbnRQYXRoRXF1YWxUbyhoKXx8ZC5leHRyYXMucmVwbGFjZVVybCl7Y29u'@; put 'c3Qgdj17Li4uZC5leHRyYXMuc3RhdGUsLi4udGhpcy5nZW5lcmF0ZU5nUm91dGVyU3RhdGUoZC5pZCx0aGlzLmJyb3dzZXJQYWdlSWQpfTt0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZShoLCIiLHYpfWVsc2V7Y29uc3QgZj17Li4uZC5leHRyYXMuc3RhdGUsLi4udGhpcy5nZW5lcmF0ZU5n'@; put 'Um91dGVyU3RhdGUoZC5pZCx0aGlzLmJyb3dzZXJQYWdlSWQrMSl9O3RoaXMubG9jYXRpb24uZ28oaCwiIixmKX19cmVzdG9yZUhpc3RvcnkoYSxkPSExKXtpZigiY29tcHV0ZWQiPT09dGhpcy5jYW5jZWxlZE5hdmlnYXRpb25SZXNvbHV0aW9uKXtjb25zdCBmPXRoaXMuY3VycmVudFBhZ2VJ'@; put 'ZC10aGlzLmJyb3dzZXJQYWdlSWQ7MCE9PWY/dGhpcy5sb2NhdGlvbi5oaXN0b3J5R28oZik6dGhpcy5jdXJyZW50VXJsVHJlZT09PWEuZmluYWxVcmwmJjA9PT1mJiYodGhpcy5yZXNldFN0YXRlKGEpLHRoaXMucmVzZXRVcmxUb0N1cnJlbnRVcmxUcmVlKCkpfWVsc2UicmVwbGFjZSI9PT10'@; put 'aGlzLmNhbmNlbGVkTmF2aWdhdGlvblJlc29sdXRpb24mJihkJiZ0aGlzLnJlc2V0U3RhdGUoYSksdGhpcy5yZXNldFVybFRvQ3VycmVudFVybFRyZWUoKSl9cmVzZXRTdGF0ZShhKXt0aGlzLnJvdXRlclN0YXRlPXRoaXMuc3RhdGVNZW1lbnRvLnJvdXRlclN0YXRlLHRoaXMuY3VycmVudFVy'@; put 'bFRyZWU9dGhpcy5zdGF0ZU1lbWVudG8uY3VycmVudFVybFRyZWUsdGhpcy5yYXdVcmxUcmVlPXRoaXMudXJsSGFuZGxpbmdTdHJhdGVneS5tZXJnZSh0aGlzLmN1cnJlbnRVcmxUcmVlLGEuZmluYWxVcmw/P3RoaXMucmF3VXJsVHJlZSl9cmVzZXRVcmxUb0N1cnJlbnRVcmxUcmVlKCl7dGhp'@; put 'cy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUodGhpcy51cmxTZXJpYWxpemVyLnNlcmlhbGl6ZSh0aGlzLnJhd1VybFRyZWUpLCIiLHRoaXMuZ2VuZXJhdGVOZ1JvdXRlclN0YXRlKHRoaXMubGFzdFN1Y2Nlc3NmdWxJZCx0aGlzLmN1cnJlbnRQYWdlSWQpKX1nZW5lcmF0ZU5nUm91dGVyU3RhdGUo'@; put 'YSxkKXtyZXR1cm4iY29tcHV0ZWQiPT09dGhpcy5jYW5jZWxlZE5hdmlnYXRpb25SZXNvbHV0aW9uP3tuYXZpZ2F0aW9uSWQ6YSxcdTAyNzVyb3V0ZXJQYWdlSWQ6ZH06e25hdmlnYXRpb25JZDphfX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9KCgpPT57bGV0IGE7cmV0dXJuIGZ1bmN0aW9uKGgp'@; put 'e3JldHVybihhfHwoYT1VbyhjKSkpKGh8fGMpfX0pKCl9c3RhdGlje3RoaXMuXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSl9fXJldHVybiBjfSkoKTt2YXIgb3g9ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5DT01QTEVURT0wXT0i'@; put 'Q09NUExFVEUiLGNbYy5GQUlMRUQ9MV09IkZBSUxFRCIsY1tjLlJFRElSRUNUSU5HPTJdPSJSRURJUkVDVElORyIsY30ob3h8fHt9KTtmdW5jdGlvbiBtY2UoYyxsKXtjLmV2ZW50cy5waXBlKFdsKGE9PmEgaW5zdGFuY2VvZiBtcHx8YSBpbnN0YW5jZW9mIG5ifHxhIGluc3RhbmNlb2YgWVJ8'@; put 'fGEgaW5zdGFuY2VvZiByYiksUHIoYT0+YSBpbnN0YW5jZW9mIG1wfHxhIGluc3RhbmNlb2YgcmI/b3guQ09NUExFVEU6YSBpbnN0YW5jZW9mIG5iJiYoYS5jb2RlPT09bWguUmVkaXJlY3R8fGEuY29kZT09PW1oLlN1cGVyc2VkZWRCeU5ld05hdmlnYXRpb24pP294LlJFRElSRUNUSU5HOm94'@; put 'LkZBSUxFRCksV2woYT0+YSE9PW94LlJFRElSRUNUSU5HKSxnaCgxKSkuc3Vic2NyaWJlKCgpPT57bCgpfSl9ZnVuY3Rpb24gVFRlKGMpe3Rocm93IGN9Y29uc3QgQVRlPXtwYXRoczoiZXhhY3QiLGZyYWdtZW50OiJpZ25vcmVkIixtYXRyaXhQYXJhbXM6Imlnbm9yZWQiLHF1ZXJ5UGFyYW1z'@; put 'OiJleGFjdCJ9LGtUZT17cGF0aHM6InN1YnNldCIsZnJhZ21lbnQ6Imlnbm9yZWQiLG1hdHJpeFBhcmFtczoiaWdub3JlZCIscXVlcnlQYXJhbXM6InN1YnNldCJ9O2xldCBMbz0oKCk9PntjbGFzcyBje2dldCBjdXJyZW50VXJsVHJlZSgpe3JldHVybiB0aGlzLnN0YXRlTWFuYWdlci5nZXRD'@; put 'dXJyZW50VXJsVHJlZSgpfWdldCByYXdVcmxUcmVlKCl7cmV0dXJuIHRoaXMuc3RhdGVNYW5hZ2VyLmdldFJhd1VybFRyZWUoKX1nZXQgZXZlbnRzKCl7cmV0dXJuIHRoaXMuX2V2ZW50c31nZXQgcm91dGVyU3RhdGUoKXtyZXR1cm4gdGhpcy5zdGF0ZU1hbmFnZXIuZ2V0Um91dGVyU3RhdGUo'@; put 'KX1jb25zdHJ1Y3Rvcigpe3RoaXMuZGlzcG9zZWQ9ITEsdGhpcy5pc05nWm9uZUVuYWJsZWQ9ITEsdGhpcy5jb25zb2xlPWhpKEtpZSksdGhpcy5zdGF0ZU1hbmFnZXI9aGkoZ2NlKSx0aGlzLm9wdGlvbnM9aGkobGIse29wdGlvbmFsOiEwfSl8fHt9LHRoaXMucGVuZGluZ1Rhc2tzPWhpKEJm'@; put 'KSx0aGlzLnVybFVwZGF0ZVN0cmF0ZWd5PXRoaXMub3B0aW9ucy51cmxVcGRhdGVTdHJhdGVneXx8ImRlZmVycmVkIix0aGlzLm5hdmlnYXRpb25UcmFuc2l0aW9ucz1oaShxUiksdGhpcy51cmxTZXJpYWxpemVyPWhpKGViKSx0aGlzLmxvY2F0aW9uPWhpKHBoKSx0aGlzLnVybEhhbmRsaW5n'@; put 'U3RyYXRlZ3k9aGkoX1cpLHRoaXMuX2V2ZW50cz1uZXcgR24sdGhpcy5lcnJvckhhbmRsZXI9dGhpcy5vcHRpb25zLmVycm9ySGFuZGxlcnx8VFRlLHRoaXMubmF2aWdhdGVkPSExLHRoaXMucm91dGVSZXVzZVN0cmF0ZWd5PWhpKFNUZSksdGhpcy5vblNhbWVVcmxOYXZpZ2F0aW9uPXRoaXMu'@; put 'b3B0aW9ucy5vblNhbWVVcmxOYXZpZ2F0aW9ufHwiaWdub3JlIix0aGlzLmNvbmZpZz1oaShjYix7b3B0aW9uYWw6ITB9KT8uZmxhdCgpPz9bXSx0aGlzLmNvbXBvbmVudElucHV0QmluZGluZ0VuYWJsZWQ9ISFoaShHUix7b3B0aW9uYWw6ITB9KSx0aGlzLmV2ZW50c1N1YnNjcmlwdGlvbj1u'@; put 'ZXcgSnQsdGhpcy5pc05nWm9uZUVuYWJsZWQ9aGkoR2EpaW5zdGFuY2VvZiBHYSYmR2EuaXNJbkFuZ3VsYXJab25lKCksdGhpcy5yZXNldENvbmZpZyh0aGlzLmNvbmZpZyksdGhpcy5uYXZpZ2F0aW9uVHJhbnNpdGlvbnMuc2V0dXBOYXZpZ2F0aW9ucyh0aGlzLHRoaXMuY3VycmVudFVybFRy'@; put 'ZWUsdGhpcy5yb3V0ZXJTdGF0ZSkuc3Vic2NyaWJlKHtlcnJvcjphPT57dGhpcy5jb25zb2xlLndhcm4oYSl9fSksdGhpcy5zdWJzY3JpYmVUb05hdmlnYXRpb25FdmVudHMoKX1zdWJzY3JpYmVUb05hdmlnYXRpb25FdmVudHMoKXtjb25zdCBhPXRoaXMubmF2aWdhdGlvblRyYW5zaXRpb25z'@; put 'LmV2ZW50cy5zdWJzY3JpYmUoZD0+e3RyeXtjb25zdCBoPXRoaXMubmF2aWdhdGlvblRyYW5zaXRpb25zLmN1cnJlbnRUcmFuc2l0aW9uLGY9dGhpcy5uYXZpZ2F0aW9uVHJhbnNpdGlvbnMuY3VycmVudE5hdmlnYXRpb247aWYobnVsbCE9PWgmJm51bGwhPT1mKWlmKHRoaXMuc3RhdGVNYW5h'@; put 'Z2VyLmhhbmRsZVJvdXRlckV2ZW50KGQsZiksZCBpbnN0YW5jZW9mIG5iJiZkLmNvZGUhPT1taC5SZWRpcmVjdCYmZC5jb2RlIT09bWguU3VwZXJzZWRlZEJ5TmV3TmF2aWdhdGlvbil0aGlzLm5hdmlnYXRlZD0hMDtlbHNlIGlmKGQgaW5zdGFuY2VvZiBtcCl0aGlzLm5hdmlnYXRlZD0hMDtl'@; put 'bHNlIGlmKGQgaW5zdGFuY2VvZiBpVyl7Y29uc3Qgdj10aGlzLnVybEhhbmRsaW5nU3RyYXRlZ3kubWVyZ2UoZC51cmwsaC5jdXJyZW50UmF3VXJsKSxNPXtpbmZvOmguZXh0cmFzLmluZm8sc2tpcExvY2F0aW9uQ2hhbmdlOmguZXh0cmFzLnNraXBMb2NhdGlvbkNoYW5nZSxyZXBsYWNlVXJs'@; put 'OiJlYWdlciI9PT10aGlzLnVybFVwZGF0ZVN0cmF0ZWd5fHxDVGUoaC5zb3VyY2UpfTt0aGlzLnNjaGVkdWxlTmF2aWdhdGlvbih2LGV4LG51bGwsTSx7cmVzb2x2ZTpoLnJlc29sdmUscmVqZWN0OmgucmVqZWN0LHByb21pc2U6aC5wcm9taXNlfSl9KGZ1bmN0aW9uIElUZShjKXtyZXR1cm4h'@; put 'KGMgaW5zdGFuY2VvZiByV3x8YyBpbnN0YW5jZW9mIGlXKX0pKGQpJiZ0aGlzLl9ldmVudHMubmV4dChkKX1jYXRjaChoKXt0aGlzLm5hdmlnYXRpb25UcmFuc2l0aW9ucy50cmFuc2l0aW9uQWJvcnRTdWJqZWN0Lm5leHQoaCl9fSk7dGhpcy5ldmVudHNTdWJzY3JpcHRpb24uYWRkKGEpfXJl'@; put 'c2V0Um9vdENvbXBvbmVudFR5cGUoYSl7dGhpcy5yb3V0ZXJTdGF0ZS5yb290LmNvbXBvbmVudD1hLHRoaXMubmF2aWdhdGlvblRyYW5zaXRpb25zLnJvb3RDb21wb25lbnRUeXBlPWF9aW5pdGlhbE5hdmlnYXRpb24oKXt0aGlzLnNldFVwTG9jYXRpb25DaGFuZ2VMaXN0ZW5lcigpLHRoaXMu'@; put 'bmF2aWdhdGlvblRyYW5zaXRpb25zLmhhc1JlcXVlc3RlZE5hdmlnYXRpb258fHRoaXMubmF2aWdhdGVUb1N5bmNXaXRoQnJvd3Nlcih0aGlzLmxvY2F0aW9uLnBhdGgoITApLGV4LHRoaXMuc3RhdGVNYW5hZ2VyLnJlc3RvcmVkU3RhdGUoKSl9c2V0VXBMb2NhdGlvbkNoYW5nZUxpc3RlbmVy'@; put 'KCl7dGhpcy5ub25Sb3V0ZXJDdXJyZW50RW50cnlDaGFuZ2VTdWJzY3JpcHRpb24/Pz10aGlzLnN0YXRlTWFuYWdlci5yZWdpc3Rlck5vblJvdXRlckN1cnJlbnRFbnRyeUNoYW5nZUxpc3RlbmVyKChhLGQpPT57c2V0VGltZW91dCgoKT0+e3RoaXMubmF2aWdhdGVUb1N5bmNXaXRoQnJvd3Nl'@; put 'cihhLCJwb3BzdGF0ZSIsZCl9LDApfSl9bmF2aWdhdGVUb1N5bmNXaXRoQnJvd3NlcihhLGQsaCl7Y29uc3QgZj17cmVwbGFjZVVybDohMH0sdj1oPy5uYXZpZ2F0aW9uSWQ/aDpudWxsO2lmKGgpe2NvbnN0IEk9ey4uLmh9O2RlbGV0ZSBJLm5hdmlnYXRpb25JZCxkZWxldGUgSS5cdTAyNzVy'@; put 'b3V0ZXJQYWdlSWQsMCE9PU9iamVjdC5rZXlzKEkpLmxlbmd0aCYmKGYuc3RhdGU9SSl9Y29uc3QgTT10aGlzLnBhcnNlVXJsKGEpO3RoaXMuc2NoZWR1bGVOYXZpZ2F0aW9uKE0sZCx2LGYpfWdldCB1cmwoKXtyZXR1cm4gdGhpcy5zZXJpYWxpemVVcmwodGhpcy5jdXJyZW50VXJsVHJlZSl9'@; put 'Z2V0Q3VycmVudE5hdmlnYXRpb24oKXtyZXR1cm4gdGhpcy5uYXZpZ2F0aW9uVHJhbnNpdGlvbnMuY3VycmVudE5hdmlnYXRpb259Z2V0IGxhc3RTdWNjZXNzZnVsTmF2aWdhdGlvbigpe3JldHVybiB0aGlzLm5hdmlnYXRpb25UcmFuc2l0aW9ucy5sYXN0U3VjY2Vzc2Z1bE5hdmlnYXRpb259'@; put 'cmVzZXRDb25maWcoYSl7dGhpcy5jb25maWc9YS5tYXAoZlcpLHRoaXMubmF2aWdhdGVkPSExfW5nT25EZXN0cm95KCl7dGhpcy5kaXNwb3NlKCl9ZGlzcG9zZSgpe3RoaXMubmF2aWdhdGlvblRyYW5zaXRpb25zLmNvbXBsZXRlKCksdGhpcy5ub25Sb3V0ZXJDdXJyZW50RW50cnlDaGFuZ2VT'@; put 'dWJzY3JpcHRpb24mJih0aGlzLm5vblJvdXRlckN1cnJlbnRFbnRyeUNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMubm9uUm91dGVyQ3VycmVudEVudHJ5Q2hhbmdlU3Vic2NyaXB0aW9uPXZvaWQgMCksdGhpcy5kaXNwb3NlZD0hMCx0aGlzLmV2ZW50c1N1YnNjcmlwdGlv'@; put 'bi51bnN1YnNjcmliZSgpfWNyZWF0ZVVybFRyZWUoYSxkPXt9KXtjb25zdHtyZWxhdGl2ZVRvOmgscXVlcnlQYXJhbXM6ZixmcmFnbWVudDp2LHF1ZXJ5UGFyYW1zSGFuZGxpbmc6TSxwcmVzZXJ2ZUZyYWdtZW50Okl9PWQsRz1JP3RoaXMuY3VycmVudFVybFRyZWUuZnJhZ21lbnQ6djtsZXQg'@; put 'dWUscmU9bnVsbDtzd2l0Y2goTSl7Y2FzZSJtZXJnZSI6cmU9ey4uLnRoaXMuY3VycmVudFVybFRyZWUucXVlcnlQYXJhbXMsLi4uZn07YnJlYWs7Y2FzZSJwcmVzZXJ2ZSI6cmU9dGhpcy5jdXJyZW50VXJsVHJlZS5xdWVyeVBhcmFtczticmVhaztkZWZhdWx0OnJlPWZ8fG51bGx9bnVsbCE9'@; put 'PXJlJiYocmU9dGhpcy5yZW1vdmVFbXB0eVByb3BzKHJlKSk7dHJ5e3VlPU5sZShoP2guc25hcHNob3Q6dGhpcy5yb3V0ZXJTdGF0ZS5zbmFwc2hvdC5yb290KX1jYXRjaHsoInN0cmluZyIhPXR5cGVvZiBhWzBdfHwhYVswXS5zdGFydHNXaXRoKCIvIikpJiYoYT1bXSksdWU9dGhpcy5jdXJy'@; put 'ZW50VXJsVHJlZS5yb290fXJldHVybiBWbGUodWUsYSxyZSxHPz9udWxsKX1uYXZpZ2F0ZUJ5VXJsKGEsZD17c2tpcExvY2F0aW9uQ2hhbmdlOiExfSl7Y29uc3QgaD10YihhKT9hOnRoaXMucGFyc2VVcmwoYSksZj10aGlzLnVybEhhbmRsaW5nU3RyYXRlZ3kubWVyZ2UoaCx0aGlzLnJhd1Vy'@; put 'bFRyZWUpO3JldHVybiB0aGlzLnNjaGVkdWxlTmF2aWdhdGlvbihmLGV4LG51bGwsZCl9bmF2aWdhdGUoYSxkPXtza2lwTG9jYXRpb25DaGFuZ2U6ITF9KXtyZXR1cm4gZnVuY3Rpb24gRFRlKGMpe2ZvcihsZXQgbD0wO2w8Yy5sZW5ndGg7bCsrKWlmKG51bGw9PWNbbF0pdGhyb3cgbmV3IG5y'@; put 'KDQwMDgsITEpfShhKSx0aGlzLm5hdmlnYXRlQnlVcmwodGhpcy5jcmVhdGVVcmxUcmVlKGEsZCksZCl9c2VyaWFsaXplVXJsKGEpe3JldHVybiB0aGlzLnVybFNlcmlhbGl6ZXIuc2VyaWFsaXplKGEpfXBhcnNlVXJsKGEpe3RyeXtyZXR1cm4gdGhpcy51cmxTZXJpYWxpemVyLnBhcnNlKGEp'@; put 'fWNhdGNoe3JldHVybiB0aGlzLnVybFNlcmlhbGl6ZXIucGFyc2UoIi8iKX19aXNBY3RpdmUoYSxkKXtsZXQgaDtpZihoPSEwPT09ZD97Li4uQVRlfTohMT09PWQ/ey4uLmtUZX06ZCx0YihhKSlyZXR1cm4ga2xlKHRoaXMuY3VycmVudFVybFRyZWUsYSxoKTtjb25zdCBmPXRoaXMucGFyc2VV'@; put 'cmwoYSk7cmV0dXJuIGtsZSh0aGlzLmN1cnJlbnRVcmxUcmVlLGYsaCl9cmVtb3ZlRW1wdHlQcm9wcyhhKXtyZXR1cm4gT2JqZWN0LmVudHJpZXMoYSkucmVkdWNlKChkLFtoLGZdKT0+KG51bGwhPWYmJihkW2hdPWYpLGQpLHt9KX1zY2hlZHVsZU5hdmlnYXRpb24oYSxkLGgsZix2KXtpZih0'@; put 'aGlzLmRpc3Bvc2VkKXJldHVybiBQcm9taXNlLnJlc29sdmUoITEpO2xldCBNLEksRzt2PyhNPXYucmVzb2x2ZSxJPXYucmVqZWN0LEc9di5wcm9taXNlKTpHPW5ldyBQcm9taXNlKCh1ZSx5ZSk9PntNPXVlLEk9eWV9KTtjb25zdCByZT10aGlzLnBlbmRpbmdUYXNrcy5hZGQoKTtyZXR1cm4g'@; put 'bWNlKHRoaXMsKCk9PntxdWV1ZU1pY3JvdGFzaygoKT0+dGhpcy5wZW5kaW5nVGFza3MucmVtb3ZlKHJlKSl9KSx0aGlzLm5hdmlnYXRpb25UcmFuc2l0aW9ucy5oYW5kbGVOYXZpZ2F0aW9uUmVxdWVzdCh7c291cmNlOmQscmVzdG9yZWRTdGF0ZTpoLGN1cnJlbnRVcmxUcmVlOnRoaXMuY3Vy'@; put 'cmVudFVybFRyZWUsY3VycmVudFJhd1VybDp0aGlzLmN1cnJlbnRVcmxUcmVlLHJhd1VybDphLGV4dHJhczpmLHJlc29sdmU6TSxyZWplY3Q6SSxwcm9taXNlOkcsY3VycmVudFNuYXBzaG90OnRoaXMucm91dGVyU3RhdGUuc25hcHNob3QsY3VycmVudFJvdXRlclN0YXRlOnRoaXMucm91dGVy'@; put 'U3RhdGV9KSxHLmNhdGNoKHVlPT5Qcm9taXNlLnJlamVjdCh1ZSkpfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpfX1zdGF0aWN7dGhpcy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9'@; put 'KX19cmV0dXJuIGN9KSgpLGwxPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZix2LE0pe3RoaXMucm91dGVyPWEsdGhpcy5yb3V0ZT1kLHRoaXMudGFiSW5kZXhBdHRyaWJ1dGU9aCx0aGlzLnJlbmRlcmVyPWYsdGhpcy5lbD12LHRoaXMubG9jYXRpb25TdHJhdGVneT1NLHRoaXMu'@; put 'aHJlZj1udWxsLHRoaXMuY29tbWFuZHM9bnVsbCx0aGlzLm9uQ2hhbmdlcz1uZXcgR24sdGhpcy5wcmVzZXJ2ZUZyYWdtZW50PSExLHRoaXMuc2tpcExvY2F0aW9uQ2hhbmdlPSExLHRoaXMucmVwbGFjZVVybD0hMTtjb25zdCBJPXYubmF0aXZlRWxlbWVudC50YWdOYW1lPy50b0xvd2VyQ2Fz'@; put 'ZSgpO3RoaXMuaXNBbmNob3JFbGVtZW50PSJhIj09PUl8fCJhcmVhIj09PUksdGhpcy5pc0FuY2hvckVsZW1lbnQ/dGhpcy5zdWJzY3JpcHRpb249YS5ldmVudHMuc3Vic2NyaWJlKEc9PntHIGluc3RhbmNlb2YgbXAmJnRoaXMudXBkYXRlSHJlZigpfSk6dGhpcy5zZXRUYWJJbmRleElmTm90'@; put 'T25OYXRpdmVFbCgiMCIpfXNldFRhYkluZGV4SWZOb3RPbk5hdGl2ZUVsKGEpe251bGwhPXRoaXMudGFiSW5kZXhBdHRyaWJ1dGV8fHRoaXMuaXNBbmNob3JFbGVtZW50fHx0aGlzLmFwcGx5QXR0cmlidXRlVmFsdWUoInRhYmluZGV4IixhKX1uZ09uQ2hhbmdlcyhhKXt0aGlzLmlzQW5jaG9y'@; put 'RWxlbWVudCYmdGhpcy51cGRhdGVIcmVmKCksdGhpcy5vbkNoYW5nZXMubmV4dCh0aGlzKX1zZXQgcm91dGVyTGluayhhKXtudWxsIT1hPyh0aGlzLmNvbW1hbmRzPUFycmF5LmlzQXJyYXkoYSk/YTpbYV0sdGhpcy5zZXRUYWJJbmRleElmTm90T25OYXRpdmVFbCgiMCIpKToodGhpcy5jb21t'@; put 'YW5kcz1udWxsLHRoaXMuc2V0VGFiSW5kZXhJZk5vdE9uTmF0aXZlRWwobnVsbCkpfW9uQ2xpY2soYSxkLGgsZix2KXtjb25zdCBNPXRoaXMudXJsVHJlZTtyZXR1cm4hIShudWxsPT09TXx8dGhpcy5pc0FuY2hvckVsZW1lbnQmJigwIT09YXx8ZHx8aHx8Znx8dnx8InN0cmluZyI9PXR5cGVv'@; put 'ZiB0aGlzLnRhcmdldCYmIl9zZWxmIiE9dGhpcy50YXJnZXQpKXx8KHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoTSx7c2tpcExvY2F0aW9uQ2hhbmdlOnRoaXMuc2tpcExvY2F0aW9uQ2hhbmdlLHJlcGxhY2VVcmw6dGhpcy5yZXBsYWNlVXJsLHN0YXRlOnRoaXMuc3RhdGUsaW5mbzp0aGlz'@; put 'LmluZm99KSwhdGhpcy5pc0FuY2hvckVsZW1lbnQpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCl9dXBkYXRlSHJlZigpe2NvbnN0IGE9dGhpcy51cmxUcmVlO3RoaXMuaHJlZj1udWxsIT09YSYmdGhpcy5sb2NhdGlvblN0cmF0ZWd5P3RoaXMubG9jYXRp'@; put 'b25TdHJhdGVneT8ucHJlcGFyZUV4dGVybmFsVXJsKHRoaXMucm91dGVyLnNlcmlhbGl6ZVVybChhKSk6bnVsbDtjb25zdCBkPW51bGw9PT10aGlzLmhyZWY/bnVsbDpmdW5jdGlvbiBsRChjLGwsYSl7cmV0dXJuIGZ1bmN0aW9uIFdCKGMsbCl7cmV0dXJuInNyYyI9PT1sJiYoImVtYmVkIj09'@; put 'PWN8fCJmcmFtZSI9PT1jfHwiaWZyYW1lIj09PWN8fCJtZWRpYSI9PT1jfHwic2NyaXB0Ij09PWMpfHwiaHJlZiI9PT1sJiYoImJhc2UiPT09Y3x8ImxpbmsiPT09Yyk/b0Q6S0N9KGwsYSkoYyl9KHRoaXMuaHJlZix0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgp'@; put 'LCJocmVmIik7dGhpcy5hcHBseUF0dHJpYnV0ZVZhbHVlKCJocmVmIixkKX1hcHBseUF0dHJpYnV0ZVZhbHVlKGEsZCl7Y29uc3QgaD10aGlzLnJlbmRlcmVyLGY9dGhpcy5lbC5uYXRpdmVFbGVtZW50O251bGwhPT1kP2guc2V0QXR0cmlidXRlKGYsYSxkKTpoLnJlbW92ZUF0dHJpYnV0ZShm'@; put 'LGEpfWdldCB1cmxUcmVlKCl7cmV0dXJuIG51bGw9PT10aGlzLmNvbW1hbmRzP251bGw6dGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZSh0aGlzLmNvbW1hbmRzLHtyZWxhdGl2ZVRvOnZvaWQgMCE9PXRoaXMucmVsYXRpdmVUbz90aGlzLnJlbGF0aXZlVG86dGhpcy5yb3V0ZSxxdWVyeVBhcmFt'@; put 'czp0aGlzLnF1ZXJ5UGFyYW1zLGZyYWdtZW50OnRoaXMuZnJhZ21lbnQscXVlcnlQYXJhbXNIYW5kbGluZzp0aGlzLnF1ZXJ5UGFyYW1zSGFuZGxpbmcscHJlc2VydmVGcmFnbWVudDp0aGlzLnByZXNlcnZlRnJhZ21lbnR9KX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0'@; put 'dXJuIG5ldyhkfHxjKSgkZShMbyksJGUoeXUpLEZmKCJ0YWJpbmRleCIpLCRlKEVzKSwkZShRaSksJGUoWjgpKX19c3RhdGlje3RoaXMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsInJvdXRlckxpbmsiLCIiXV0saG9zdFZhcnM6MSxob3N0QmluZGluZ3M6ZnVuY3Rpb24o'@; put 'ZCxoKXsxJmQmJkZ0KCJjbGljayIsZnVuY3Rpb24odil7cmV0dXJuIGgub25DbGljayh2LmJ1dHRvbix2LmN0cmxLZXksdi5zaGlmdEtleSx2LmFsdEtleSx2Lm1ldGFLZXkpfSksMiZkJiZocigidGFyZ2V0IixoLnRhcmdldCl9LGlucHV0czp7dGFyZ2V0OiJ0YXJnZXQiLHF1ZXJ5UGFyYW1z'@; put 'OiJxdWVyeVBhcmFtcyIsZnJhZ21lbnQ6ImZyYWdtZW50IixxdWVyeVBhcmFtc0hhbmRsaW5nOiJxdWVyeVBhcmFtc0hhbmRsaW5nIixzdGF0ZToic3RhdGUiLGluZm86ImluZm8iLHJlbGF0aXZlVG86InJlbGF0aXZlVG8iLHByZXNlcnZlRnJhZ21lbnQ6W1ZuLkhhc0RlY29yYXRvcklucHV0'@; put 'VHJhbnNmb3JtLCJwcmVzZXJ2ZUZyYWdtZW50IiwicHJlc2VydmVGcmFnbWVudCIsczFdLHNraXBMb2NhdGlvbkNoYW5nZTpbVm4uSGFzRGVjb3JhdG9ySW5wdXRUcmFuc2Zvcm0sInNraXBMb2NhdGlvbkNoYW5nZSIsInNraXBMb2NhdGlvbkNoYW5nZSIsczFdLHJlcGxhY2VVcmw6W1ZuLkhh'@; put 'c0RlY29yYXRvcklucHV0VHJhbnNmb3JtLCJyZXBsYWNlVXJsIiwicmVwbGFjZVVybCIsczFdLHJvdXRlckxpbms6InJvdXRlckxpbmsifSxzdGFuZGFsb25lOiEwLGZlYXR1cmVzOlt6bCxibF19KX19cmV0dXJuIGN9KSgpLHViPSgoKT0+e2NsYXNzIGN7Z2V0IGlzQWN0aXZlKCl7cmV0dXJu'@; put 'IHRoaXMuX2lzQWN0aXZlfWNvbnN0cnVjdG9yKGEsZCxoLGYsdil7dGhpcy5yb3V0ZXI9YSx0aGlzLmVsZW1lbnQ9ZCx0aGlzLnJlbmRlcmVyPWgsdGhpcy5jZHI9Zix0aGlzLmxpbms9dix0aGlzLmNsYXNzZXM9W10sdGhpcy5faXNBY3RpdmU9ITEsdGhpcy5yb3V0ZXJMaW5rQWN0aXZlT3B0'@; put 'aW9ucz17ZXhhY3Q6ITF9LHRoaXMuaXNBY3RpdmVDaGFuZ2U9bmV3IEtyLHRoaXMucm91dGVyRXZlbnRzU3Vic2NyaXB0aW9uPWEuZXZlbnRzLnN1YnNjcmliZShNPT57TSBpbnN0YW5jZW9mIG1wJiZ0aGlzLnVwZGF0ZSgpfSl9bmdBZnRlckNvbnRlbnRJbml0KCl7ZHModGhpcy5saW5rcy5j'@; put 'aGFuZ2VzLGRzKG51bGwpKS5waXBlKFh5KCkpLnN1YnNjcmliZShhPT57dGhpcy51cGRhdGUoKSx0aGlzLnN1YnNjcmliZVRvRWFjaExpbmtPbkNoYW5nZXMoKX0pfXN1YnNjcmliZVRvRWFjaExpbmtPbkNoYW5nZXMoKXt0aGlzLmxpbmtJbnB1dENoYW5nZXNTdWJzY3JpcHRpb24/LnVuc3Vi'@; put 'c2NyaWJlKCk7Y29uc3QgYT1bLi4udGhpcy5saW5rcy50b0FycmF5KCksdGhpcy5saW5rXS5maWx0ZXIoZD0+ISFkKS5tYXAoZD0+ZC5vbkNoYW5nZXMpO3RoaXMubGlua0lucHV0Q2hhbmdlc1N1YnNjcmlwdGlvbj1VdShhKS5waXBlKFh5KCkpLnN1YnNjcmliZShkPT57dGhpcy5faXNBY3Rp'@; put 'dmUhPT10aGlzLmlzTGlua0FjdGl2ZSh0aGlzLnJvdXRlcikoZCkmJnRoaXMudXBkYXRlKCl9KX1zZXQgcm91dGVyTGlua0FjdGl2ZShhKXtjb25zdCBkPUFycmF5LmlzQXJyYXkoYSk/YTphLnNwbGl0KCIgIik7dGhpcy5jbGFzc2VzPWQuZmlsdGVyKGg9PiEhaCl9bmdPbkNoYW5nZXMoYSl7'@; put 'dGhpcy51cGRhdGUoKX1uZ09uRGVzdHJveSgpe3RoaXMucm91dGVyRXZlbnRzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5saW5rSW5wdXRDaGFuZ2VzU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpfXVwZGF0ZSgpeyF0aGlzLmxpbmtzfHwhdGhpcy5yb3V0ZXIubmF2aWdhdGVk'@; put 'fHxxdWV1ZU1pY3JvdGFzaygoKT0+e2NvbnN0IGE9dGhpcy5oYXNBY3RpdmVMaW5rcygpO3RoaXMuY2xhc3Nlcy5mb3JFYWNoKGQ9PnthP3RoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsZCk6dGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVs'@; put 'ZW1lbnQubmF0aXZlRWxlbWVudCxkKX0pLGEmJnZvaWQgMCE9PXRoaXMuYXJpYUN1cnJlbnRXaGVuQWN0aXZlP3RoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCJhcmlhLWN1cnJlbnQiLHRoaXMuYXJpYUN1cnJlbnRXaGVuQWN0aXZlLnRvU3Ry'@; put 'aW5nKCkpOnRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCJhcmlhLWN1cnJlbnQiKSx0aGlzLl9pc0FjdGl2ZSE9PWEmJih0aGlzLl9pc0FjdGl2ZT1hLHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpLHRoaXMuaXNBY3RpdmVDaGFuZ2UuZW1p'@; put 'dChhKSl9KX1pc0xpbmtBY3RpdmUoYSl7Y29uc3QgZD1mdW5jdGlvbiBSVGUoYyl7cmV0dXJuISFjLnBhdGhzfSh0aGlzLnJvdXRlckxpbmtBY3RpdmVPcHRpb25zKT90aGlzLnJvdXRlckxpbmtBY3RpdmVPcHRpb25zOnRoaXMucm91dGVyTGlua0FjdGl2ZU9wdGlvbnMuZXhhY3R8fCExO3Jl'@; put 'dHVybiBoPT57Y29uc3QgZj1oLnVybFRyZWU7cmV0dXJuISFmJiZhLmlzQWN0aXZlKGYsZCl9fWhhc0FjdGl2ZUxpbmtzKCl7Y29uc3QgYT10aGlzLmlzTGlua0FjdGl2ZSh0aGlzLnJvdXRlcik7cmV0dXJuIHRoaXMubGluayYmYSh0aGlzLmxpbmspfHx0aGlzLmxpbmtzLnNvbWUoYSl9c3Rh'@; put 'dGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUoTG8pLCRlKFFpKSwkZShFcyksJGUoeG8pLCRlKGwxLDgpKX19c3RhdGlje3RoaXMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsInJvdXRlckxpbmtBY3RpdmUiLCIiXV0sY29udGVu'@; put 'dFF1ZXJpZXM6ZnVuY3Rpb24oZCxoLGYpe2lmKDEmZCYmYXMoZixsMSw1KSwyJmQpe2xldCB2O3lpKHY9YmkoKSkmJihoLmxpbmtzPXYpfX0saW5wdXRzOntyb3V0ZXJMaW5rQWN0aXZlT3B0aW9uczoicm91dGVyTGlua0FjdGl2ZU9wdGlvbnMiLGFyaWFDdXJyZW50V2hlbkFjdGl2ZToiYXJp'@; put 'YUN1cnJlbnRXaGVuQWN0aXZlIixyb3V0ZXJMaW5rQWN0aXZlOiJyb3V0ZXJMaW5rQWN0aXZlIn0sb3V0cHV0czp7aXNBY3RpdmVDaGFuZ2U6ImlzQWN0aXZlQ2hhbmdlIn0sZXhwb3J0QXM6WyJyb3V0ZXJMaW5rQWN0aXZlIl0sc3RhbmRhbG9uZTohMCxmZWF0dXJlczpbYmxdfSl9fXJldHVy'@; put 'biBjfSkoKTtjbGFzcyB2Y2V7fWxldCBMVGU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmLHYpe3RoaXMucm91dGVyPWEsdGhpcy5pbmplY3Rvcj1oLHRoaXMucHJlbG9hZGluZ1N0cmF0ZWd5PWYsdGhpcy5sb2FkZXI9dn1zZXRVcFByZWxvYWRpbmcoKXt0aGlzLnN1YnNjcmlw'@; put 'dGlvbj10aGlzLnJvdXRlci5ldmVudHMucGlwZShXbChhPT5hIGluc3RhbmNlb2YgbXApLHF5KCgpPT50aGlzLnByZWxvYWQoKSkpLnN1YnNjcmliZSgoKT0+e30pfXByZWxvYWQoKXtyZXR1cm4gdGhpcy5wcm9jZXNzUm91dGVzKHRoaXMuaW5qZWN0b3IsdGhpcy5yb3V0ZXIuY29uZmlnKX1u'@; put 'Z09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9uJiZ0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfXByb2Nlc3NSb3V0ZXMoYSxkKXtjb25zdCBoPVtdO2Zvcihjb25zdCBmIG9mIGQpe2YucHJvdmlkZXJzJiYhZi5faW5qZWN0b3ImJihmLl9pbmplY3Rvcj1HNChmLnByb3ZpZGVy'@; put 'cyxhLGBSb3V0ZTogJHtmLnBhdGh9YCkpO2NvbnN0IHY9Zi5faW5qZWN0b3I/P2EsTT1mLl9sb2FkZWRJbmplY3Rvcj8/djsoZi5sb2FkQ2hpbGRyZW4mJiFmLl9sb2FkZWRSb3V0ZXMmJnZvaWQgMD09PWYuY2FuTG9hZHx8Zi5sb2FkQ29tcG9uZW50JiYhZi5fbG9hZGVkQ29tcG9uZW50KSYm'@; put 'aC5wdXNoKHRoaXMucHJlbG9hZENvbmZpZyh2LGYpKSwoZi5jaGlsZHJlbnx8Zi5fbG9hZGVkUm91dGVzKSYmaC5wdXNoKHRoaXMucHJvY2Vzc1JvdXRlcyhNLGYuY2hpbGRyZW4/P2YuX2xvYWRlZFJvdXRlcykpfXJldHVybiBVdShoKS5waXBlKFh5KCkpfXByZWxvYWRDb25maWcoYSxkKXty'@; put 'ZXR1cm4gdGhpcy5wcmVsb2FkaW5nU3RyYXRlZ3kucHJlbG9hZChkLCgpPT57bGV0IGg7aD1kLmxvYWRDaGlsZHJlbiYmdm9pZCAwPT09ZC5jYW5Mb2FkP3RoaXMubG9hZGVyLmxvYWRDaGlsZHJlbihhLGQpOmRzKG51bGwpO2NvbnN0IGY9aC5waXBlKEYwKHY9Pm51bGw9PT12P2RzKHZvaWQg'@; put 'MCk6KGQuX2xvYWRlZFJvdXRlcz12LnJvdXRlcyxkLl9sb2FkZWRJbmplY3Rvcj12LmluamVjdG9yLHRoaXMucHJvY2Vzc1JvdXRlcyh2LmluamVjdG9yPz9hLHYucm91dGVzKSkpKTtyZXR1cm4gZC5sb2FkQ29tcG9uZW50JiYhZC5fbG9hZGVkQ29tcG9uZW50P1V1KFtmLHRoaXMubG9hZGVy'@; put 'LmxvYWRDb21wb25lbnQoZCldKS5waXBlKFh5KCkpOmZ9KX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKShDcihMbyksQ3IoYWFlKSxDcihxbCksQ3IodmNlKSxDcihiVykpfX1zdGF0aWN7dGhpcy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rv'@; put 'cnk6Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KX19cmV0dXJuIGN9KSgpO2NvbnN0IHdXPW5ldyBTdCgiIik7bGV0IHljZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYsdj17fSl7dGhpcy51cmxTZXJpYWxpemVyPWEsdGhpcy50cmFuc2l0aW9ucz1kLHRoaXMudmll'@; put 'd3BvcnRTY3JvbGxlcj1oLHRoaXMuem9uZT1mLHRoaXMub3B0aW9ucz12LHRoaXMubGFzdElkPTAsdGhpcy5sYXN0U291cmNlPSJpbXBlcmF0aXZlIix0aGlzLnJlc3RvcmVkSWQ9MCx0aGlzLnN0b3JlPXt9LHRoaXMuZW52aXJvbm1lbnRJbmplY3Rvcj1oaShxbCksdi5zY3JvbGxQb3NpdGlv'@; put 'blJlc3RvcmF0aW9ufHw9ImRpc2FibGVkIix2LmFuY2hvclNjcm9sbGluZ3x8PSJkaXNhYmxlZCJ9aW5pdCgpeyJkaXNhYmxlZCIhPT10aGlzLm9wdGlvbnMuc2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbiYmdGhpcy52aWV3cG9ydFNjcm9sbGVyLnNldEhpc3RvcnlTY3JvbGxSZXN0b3JhdGlv'@; put 'bigibWFudWFsIiksdGhpcy5yb3V0ZXJFdmVudHNTdWJzY3JpcHRpb249dGhpcy5jcmVhdGVTY3JvbGxFdmVudHMoKSx0aGlzLnNjcm9sbEV2ZW50c1N1YnNjcmlwdGlvbj10aGlzLmNvbnN1bWVTY3JvbGxFdmVudHMoKX1jcmVhdGVTY3JvbGxFdmVudHMoKXtyZXR1cm4gdGhpcy50cmFuc2l0'@; put 'aW9ucy5ldmVudHMuc3Vic2NyaWJlKGE9PnthIGluc3RhbmNlb2YgWlI/KHRoaXMuc3RvcmVbdGhpcy5sYXN0SWRdPXRoaXMudmlld3BvcnRTY3JvbGxlci5nZXRTY3JvbGxQb3NpdGlvbigpLHRoaXMubGFzdFNvdXJjZT1hLm5hdmlnYXRpb25UcmlnZ2VyLHRoaXMucmVzdG9yZWRJZD1hLnJl'@; put 'c3RvcmVkU3RhdGU/YS5yZXN0b3JlZFN0YXRlLm5hdmlnYXRpb25JZDowKTphIGluc3RhbmNlb2YgbXA/KHRoaXMubGFzdElkPWEuaWQsdGhpcy5zY2hlZHVsZVNjcm9sbEV2ZW50KGEsdGhpcy51cmxTZXJpYWxpemVyLnBhcnNlKGEudXJsQWZ0ZXJSZWRpcmVjdHMpLmZyYWdtZW50KSk6YSBp'@; put 'bnN0YW5jZW9mIHJiJiZhLmNvZGU9PT1XUi5JZ25vcmVkU2FtZVVybE5hdmlnYXRpb24mJih0aGlzLmxhc3RTb3VyY2U9dm9pZCAwLHRoaXMucmVzdG9yZWRJZD0wLHRoaXMuc2NoZWR1bGVTY3JvbGxFdmVudChhLHRoaXMudXJsU2VyaWFsaXplci5wYXJzZShhLnVybCkuZnJhZ21lbnQpKX0p'@; put 'fWNvbnN1bWVTY3JvbGxFdmVudHMoKXtyZXR1cm4gdGhpcy50cmFuc2l0aW9ucy5ldmVudHMuc3Vic2NyaWJlKGE9PnthIGluc3RhbmNlb2YgWWxlJiYoYS5wb3NpdGlvbj8idG9wIj09PXRoaXMub3B0aW9ucy5zY3JvbGxQb3NpdGlvblJlc3RvcmF0aW9uP3RoaXMudmlld3BvcnRTY3JvbGxl'@; put 'ci5zY3JvbGxUb1Bvc2l0aW9uKFswLDBdKToiZW5hYmxlZCI9PT10aGlzLm9wdGlvbnMuc2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbiYmdGhpcy52aWV3cG9ydFNjcm9sbGVyLnNjcm9sbFRvUG9zaXRpb24oYS5wb3NpdGlvbik6YS5hbmNob3ImJiJlbmFibGVkIj09PXRoaXMub3B0aW9ucy5h'@; put 'bmNob3JTY3JvbGxpbmc/dGhpcy52aWV3cG9ydFNjcm9sbGVyLnNjcm9sbFRvQW5jaG9yKGEuYW5jaG9yKToiZGlzYWJsZWQiIT09dGhpcy5vcHRpb25zLnNjcm9sbFBvc2l0aW9uUmVzdG9yYXRpb24mJnRoaXMudmlld3BvcnRTY3JvbGxlci5zY3JvbGxUb1Bvc2l0aW9uKFswLDBdKSl9KX1z'@; put 'Y2hlZHVsZVNjcm9sbEV2ZW50KGEsZCl7dmFyIGg9dGhpczt0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoUShmdW5jdGlvbiooKXt5aWVsZCBuZXcgUHJvbWlzZShmPT57c2V0VGltZW91dCgoKT0+e2YoKX0pLG15KCgpPT57ZigpfSx7aW5qZWN0b3I6aC5lbnZpcm9ubWVudEluamVjdG9y'@; put 'fSl9KSxoLnpvbmUucnVuKCgpPT57aC50cmFuc2l0aW9ucy5ldmVudHMubmV4dChuZXcgWWxlKGEsInBvcHN0YXRlIj09PWgubGFzdFNvdXJjZT9oLnN0b3JlW2gucmVzdG9yZWRJZF06bnVsbCxkKSl9KX0pKX1uZ09uRGVzdHJveSgpe3RoaXMucm91dGVyRXZlbnRzU3Vic2NyaXB0aW9uPy51'@; put 'bnN1YnNjcmliZSgpLHRoaXMuc2Nyb2xsRXZlbnRzU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXshZnVuY3Rpb24gRUQoKXt0aHJvdyBuZXcgRXJyb3IoImludmFsaWQiKX0oKX19c3RhdGlje3RoaXMuXHUwMjc1cHJvdj1ybih7'@; put 'dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSl9fXJldHVybiBjfSkoKTtmdW5jdGlvbiB5cChjLGwpe3JldHVybntcdTAyNzVraW5kOmMsXHUwMjc1cHJvdmlkZXJzOmx9fWZ1bmN0aW9uIF9jZSgpe2NvbnN0IGM9aGkoRG8pO3JldHVybiBsPT57Y29uc3QgYT1jLmdldCh1cCk7aWYobCE9'@; put 'PWEuY29tcG9uZW50c1swXSlyZXR1cm47Y29uc3QgZD1jLmdldChMbyksaD1jLmdldCh3Y2UpOzE9PT1jLmdldChDVykmJmQuaW5pdGlhbE5hdmlnYXRpb24oKSxjLmdldChDY2UsbnVsbCxyYS5PcHRpb25hbCk/LnNldFVwUHJlbG9hZGluZygpLGMuZ2V0KHdXLG51bGwscmEuT3B0aW9uYWwp'@; put 'Py5pbml0KCksZC5yZXNldFJvb3RDb21wb25lbnRUeXBlKGEuY29tcG9uZW50VHlwZXNbMF0pLGguY2xvc2VkfHwoaC5uZXh0KCksaC5jb21wbGV0ZSgpLGgudW5zdWJzY3JpYmUoKSl9fWNvbnN0IHdjZT1uZXcgU3QoIiIse2ZhY3Rvcnk6KCk9Pm5ldyBHbn0pLENXPW5ldyBTdCgiIix7cHJv'@; put 'dmlkZWRJbjoicm9vdCIsZmFjdG9yeTooKT0+MX0pLENjZT1uZXcgU3QoIiIpO2Z1bmN0aW9uIEhUZShjKXtyZXR1cm4geXAoMCxbe3Byb3ZpZGU6Q2NlLHVzZUV4aXN0aW5nOkxUZX0se3Byb3ZpZGU6dmNlLHVzZUV4aXN0aW5nOmN9XSl9ZnVuY3Rpb24gVlRlKGMpe3JldHVybiB5cCg5LFt7'@; put 'cHJvdmlkZTpmY2UsdXNlVmFsdWU6X1RlfSx7cHJvdmlkZTpwY2UsdXNlVmFsdWU6e3NraXBOZXh0VHJhbnNpdGlvbjohIWM/LnNraXBJbml0aWFsVHJhbnNpdGlvbiwuLi5jfX1dKX1jb25zdCBTY2U9bmV3IFN0KCJST1VURVJfRk9SUk9PVF9HVUFSRCIpLEJUZT1bcGgse3Byb3ZpZGU6ZWIs'@; put 'dXNlQ2xhc3M6Slp9LExvLHR4LHtwcm92aWRlOnl1LHVzZUZhY3Rvcnk6ZnVuY3Rpb24gYmNlKGMpe3JldHVybiBjLnJvdXRlclN0YXRlLnJvb3R9LGRlcHM6W0xvXX0sYlcsW11dO2xldCBCYz0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe31zdGF0aWMgZm9yUm9vdChhLGQpe3JldHVy'@; put 'bntuZ01vZHVsZTpjLHByb3ZpZGVyczpbQlRlLFtdLHtwcm92aWRlOmNiLG11bHRpOiEwLHVzZVZhbHVlOmF9LHtwcm92aWRlOlNjZSx1c2VGYWN0b3J5OlpUZSxkZXBzOltbTG8sbmV3IFIxLG5ldyB1ZF1dfSx7cHJvdmlkZTpsYix1c2VWYWx1ZTpkfHx7fX0sZD8udXNlSGFzaD97cHJvdmlk'@; put 'ZTpaOCx1c2VDbGFzczpSX2V9Ontwcm92aWRlOlo4LHVzZUNsYXNzOlhhZX0se3Byb3ZpZGU6d1csdXNlRmFjdG9yeTooKT0+e2NvbnN0IGM9aGkoR3dlKSxsPWhpKEdhKSxhPWhpKGxiKSxkPWhpKHFSKSxoPWhpKGViKTtyZXR1cm4gYS5zY3JvbGxPZmZzZXQmJmMuc2V0T2Zmc2V0KGEuc2Ny'@; put 'b2xsT2Zmc2V0KSxuZXcgeWNlKGgsZCxjLGwsYSl9fSxkPy5wcmVsb2FkaW5nU3RyYXRlZ3k/SFRlKGQucHJlbG9hZGluZ1N0cmF0ZWd5KS5cdTAyNzVwcm92aWRlcnM6W10sZD8uaW5pdGlhbE5hdmlnYXRpb24/V1RlKGQpOltdLGQ/LmJpbmRUb0NvbXBvbmVudElucHV0cz95cCg4LFtRbGUs'@; put 'e3Byb3ZpZGU6R1IsdXNlRXhpc3Rpbmc6UWxlfV0pLlx1MDI3NXByb3ZpZGVyczpbXSxkPy5lbmFibGVWaWV3VHJhbnNpdGlvbnM/VlRlKCkuXHUwMjc1cHJvdmlkZXJzOltdLFt7cHJvdmlkZTpNY2UsdXNlRmFjdG9yeTpfY2V9LHtwcm92aWRlOkxVLG11bHRpOiEwLHVzZUV4aXN0aW5nOk1j'@; put 'ZX1dXX19c3RhdGljIGZvckNoaWxkKGEpe3JldHVybntuZ01vZHVsZTpjLHByb3ZpZGVyczpbe3Byb3ZpZGU6Y2IsbXVsdGk6ITAsdXNlVmFsdWU6YX1dfX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKShDcihTY2UsOCkpfX1zdGF0aWN7dGhpcy5c'@; put 'dTAyNzVtb2Q9QWkoe3R5cGU6Y30pfXN0YXRpY3t0aGlzLlx1MDI3NWluaj1Bcih7fSl9fXJldHVybiBjfSkoKTtmdW5jdGlvbiBaVGUoYyl7cmV0dXJuImd1YXJkZWQifWZ1bmN0aW9uIFdUZShjKXtyZXR1cm5bImRpc2FibGVkIj09PWMuaW5pdGlhbE5hdmlnYXRpb24/eXAoMyxbe3Byb3Zp'@; put 'ZGU6SVUsbXVsdGk6ITAsdXNlRmFjdG9yeTooKT0+e2NvbnN0IGw9aGkoTG8pO3JldHVybigpPT57bC5zZXRVcExvY2F0aW9uQ2hhbmdlTGlzdGVuZXIoKX19fSx7cHJvdmlkZTpDVyx1c2VWYWx1ZToyfV0pLlx1MDI3NXByb3ZpZGVyczpbXSwiZW5hYmxlZEJsb2NraW5nIj09PWMuaW5pdGlh'@; put 'bE5hdmlnYXRpb24/eXAoMixbe3Byb3ZpZGU6Q1csdXNlVmFsdWU6MH0se3Byb3ZpZGU6SVUsbXVsdGk6ITAsZGVwczpbRG9dLHVzZUZhY3Rvcnk6bD0+e2NvbnN0IGE9bC5nZXQoRF9lLFByb21pc2UucmVzb2x2ZSgpKTtyZXR1cm4oKT0+YS50aGVuKCgpPT5uZXcgUHJvbWlzZShkPT57Y29u'@; put 'c3QgaD1sLmdldChMbyksZj1sLmdldCh3Y2UpO21jZShoLCgpPT57ZCghMCl9KSxsLmdldChxUikuYWZ0ZXJQcmVhY3RpdmF0aW9uPSgpPT4oZCghMCksZi5jbG9zZWQ/ZHModm9pZCAwKTpmKSxoLmluaXRpYWxOYXZpZ2F0aW9uKCl9KSl9fV0pLlx1MDI3NXByb3ZpZGVyczpbXV19Y29uc3Qg'@; put 'TWNlPW5ldyBTdCgiIik7dmFyIGRiPWZ1bmN0aW9uKGMpe3JldHVybiBjLmxpZ2h0PSJsaWdodCIsYy5kYXJrPSJkYXJrIixjfShkYnx8e30pLHhjZT1iKDU1MTg4KSxHVGU9Yig3ODc1NSk7Y29uc3QgU1c9e3VzZXJzX2FsbG93ZWQ6MSx2aWV3ZXJfcm93c19hbGxvd2VkOjE1LGVkaXRvcl9y'@; put 'b3dzX2FsbG93ZWQ6MTUsc3RhZ2Vfcm93c19hbGxvd2VkOjEvMCxoaXN0b3J5X3Jvd3NfYWxsb3dlZDoxNSxzdWJtaXRfcm93c19saW1pdDo1LHZpZXdib3hfbGltaXQ6MSxsaW5lYWdlX2RhaWx5X2xpbWl0OjMsdGFibGVzX2luX2xpYnJhcnlfbGltaXQ6MzUsdmlld2JveDohMCxmaWxlVXBs'@; put 'b2FkOiEwLGVkaXRSZWNvcmQ6ITAsYWRkUmVjb3JkOiEwfTt2YXIgdmg9ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy52aWV3ZXJfcm93c19hbGxvd2VkPTBdPSJ2aWV3ZXJfcm93c19hbGxvd2VkIixjW2MuZWRpdG9yX3Jvd3NfYWxsb3dlZD0xXT0iZWRpdG9yX3Jvd3NfYWxsb3dlZCIsY1tjLnN0'@; put 'YWdlX3Jvd3NfYWxsb3dlZD0yXT0ic3RhZ2Vfcm93c19hbGxvd2VkIixjW2MuaGlzdG9yeV9yb3dzX2FsbG93ZWQ9M109Imhpc3Rvcnlfcm93c19hbGxvd2VkIixjW2Muc3VibWl0X3Jvd3NfbGltaXQ9NF09InN1Ym1pdF9yb3dzX2xpbWl0IixjW2MudGFibGVzX2luX2xpYnJhcnlfbGltaXQ9'@; put 'NV09InRhYmxlc19pbl9saWJyYXJ5X2xpbWl0IixjW2Mudmlld2JveD02XT0idmlld2JveCIsY1tjLnZpZXdib3hfbGltaXQ9N109InZpZXdib3hfbGltaXQiLGNbYy5saW5lYWdlX2RhaWx5X2xpbWl0PThdPSJsaW5lYWdlX2RhaWx5X2xpbWl0IixjW2MuZmlsZVVwbG9hZD05XT0iZmlsZVVw'@; put 'bG9hZCIsY1tjLmVkaXRSZWNvcmQ9MTBdPSJlZGl0UmVjb3JkIixjW2MuYWRkUmVjb3JkPTExXT0iYWRkUmVjb3JkIixjfSh2aHx8e30pLHloPWIoMzczNCksRWNlPWIubih5aCksTjA9YigxMzI0Nyk7bGV0IFE4PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt9c2V0RGNBZGFwdGVyU2V0'@; put 'dGluZ3MoYSl7dGhpcy5kY0FkYXB0ZXJTZXR0aW5ncz1hfWdldERjQWRhcHRlclNldHRpbmdzKCl7cmV0dXJuIHRoaXMuZGNBZGFwdGVyU2V0dGluZ3N9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NXByb3Y9cm4o'@; put 'e3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pfX1yZXR1cm4gY30pKCksTVc9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMudXNlckNoYW5nZT1uZXcgR259c2V0IHVzZXIoYSl7dGhpcy5fdXNlcj1hLHRoaXMudXNlckNoYW5nZS5uZXh0KGEp'@; put 'fWdldCB1c2VyKCl7cmV0dXJuIHRoaXMuX3VzZXJ9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pfX1yZXR1cm4gY30pKCk7Y2xhc3MgSlJ7Y29u'@; put 'c3RydWN0b3IoKXt0aGlzLmRlZmF1bHRTZXR0aW5ncz17cGVyc2lzdFNlbGVjdGVkVGhlbWU6ITAsc2VsZWN0ZWRUaGVtZTpkYi5saWdodH0sdGhpcy5zZXR0aW5ncz1uZXcgSnIodGhpcy5kZWZhdWx0U2V0dGluZ3MpLHRoaXMucmVzdG9yZUFwcFNldHRpbmdzKCl9cmVzdG9yZUFwcFNldHRp'@; put 'bmdzKCl7dHJ5e2NvbnN0IGw9bG9jYWxTdG9yYWdlLmdldEl0ZW0oImFwcC1zZXR0aW5ncyIpO2lmKGwpe2NvbnN0IGE9SlNPTi5wYXJzZShsKTt0aGlzLnNldEFwcFNldHRpbmdzKGEpfWVsc2UgY29uc29sZS5pbmZvKCJObyBhcHAgc2V0dGluZ3Mgc3RvcmVkIGluIHRoZSBsb2NhbFN0b3Jh'@; put 'Z2UsIHdlIHdpbGwgc2V0IHRvIGRlZmF1bHQgdmFsdWVzLiIpfWNhdGNoKGwpe2NvbnNvbGUud2FybigiRXJyb3IgcmVzdG9yaW5nIHNldHRpbmdzIGZyb20gbG9jYWwgc3RvcmdhZS4iLGwpfX1zdG9yZUFwcFNldHRpbmdzKCl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oImFwcC1zZXR0aW5ncyIs'@; put 'SlNPTi5zdHJpbmdpZnkodGhpcy5zZXR0aW5ncy52YWx1ZSkpfXNldEFwcFNldHRpbmdzKGwpe3RoaXMuc2V0dGluZ3MubmV4dCh7Li4udGhpcy5zZXR0aW5ncy52YWx1ZSwuLi5sfSksdGhpcy5zdG9yZUFwcFNldHRpbmdzKCl9fWxldCBtYz0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEp'@; put 'e3RoaXMuYXBwU2V0dGluZ3NTZXJ2aWNlPWEsdGhpcy5vblNpZGViYXJUb2dnbGU9bmV3IEtyLHRoaXMub25TdGFydHVwRGF0YUxvYWRlZD1uZXcgS3IsdGhpcy5vblNob3dBYm9ydE1vZGFsPW5ldyBLcix0aGlzLm9uUmVxdWVzdHNNb2RhbE9wZW49bmV3IEtyLHRoaXMub25EZW1vTGltaXRN'@; put 'b2RhbFNob3c9bmV3IEtyLHRoaXMudmlld0xhc3RVcmw9bnVsbCx0aGlzLnNpZGViYXJDbG9zZUxpbWl0PTEyODAsdGhpcy5kYXJrTW9kZT1uZXcgSnIoITEpfXRvZ2dsZURhcmtNb2RlKGEpe3RoaXMuZGFya01vZGUubmV4dChhKSxhP2RvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKCJjZHMt'@; put 'dGhlbWUiLCJkYXJrIik6ZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoImNkcy10aGVtZSIsImxpZ2h0IiksdGhpcy5hcHBTZXR0aW5nc1NlcnZpY2Uuc2V0QXBwU2V0dGluZ3Moe3NlbGVjdGVkVGhlbWU6YT9kYi5kYXJrOmRiLmxpZ2h0fSl9c2hvd0RlbW9MaW1pdE1vZGFsKGEpe3RoaXMu'@; put 'b25EZW1vTGltaXRNb2RhbFNob3cuZW1pdChhKX1zaG93SW5mb01vZGFsKGE9IkluZm8iLGQpe3RoaXMub25TaG93QWJvcnRNb2RhbC5lbWl0KHttb2RhbFRpdGxlOmEsbWVzc2FnZTpkLHNhc1NlcnZpY2U6IiIsZGV0YWlsczpudWxsfSl9c2hvd0Fib3J0TW9kYWwoYSxkLGgsZj12b2lkIDAp'@; put 'e2h8fChoPW51bGwpO2xldCB2PXtzYXNTZXJ2aWNlOmEsbWVzc2FnZTpkLGRldGFpbHM6aH07ZiYmKHYubW9kYWxUaXRsZT1mKSx0aGlzLm9uU2hvd0Fib3J0TW9kYWwuZW1pdCh2KX1vcGVuUmVxdWVzdHNNb2RhbCgpe3RoaXMub25SZXF1ZXN0c01vZGFsT3Blbi5lbWl0KCEwKX1jYXRjaFJl'@; put 'c3BvbnNlRXJyb3IoYSxkKXtsZXQgaD0iU0FTIFNlcnZpY2UgZXJyb3Igb2N1cnJlZCI7aWYoZC5lcnJvcil7bGV0IGY7aD1kLmVycm9yLm1lc3NhZ2UsZC5lcnJvci5kZXRhaWxzJiZkLmVycm9yLmRldGFpbHMubG9nJiYoZj1kLmVycm9yLmRldGFpbHMubG9nKSwoIWh8fGgudHJpbSgpLmxl'@; put 'bmd0aDwxKSYmKGg9IlNBUyBTZXJ2aWNlIGVycm9yIG9jdXJyZWQiKSx0aGlzLnNob3dBYm9ydE1vZGFsKGEsaCx7TE9HOmZ9LCJSZXF1ZXN0IGVycm9yIil9ZWxzZSB0aGlzLnNob3dBYm9ydE1vZGFsKGEsaCl9dG9nZ2xlU2lkZWJhcigpe3RoaXMub25TaWRlYmFyVG9nZ2xlLmVtaXQoKX1j'@; put 'bG9zZVNpZGViYXIoKXt3aW5kb3cuaW5uZXJXaWR0aDx0aGlzLnNpZGViYXJDbG9zZUxpbWl0JiZ0aGlzLm9uU2lkZWJhclRvZ2dsZS5lbWl0KHtvcGVuOiExfSl9b3BlblNpZGViYXIoKXt0aGlzLm9uU2lkZWJhclRvZ2dsZS5lbWl0KHtvcGVuOiEwfSl9c3RhcnR1cERhdGFMb2FkZWQoKXt0'@; put 'aGlzLm9uU3RhcnR1cERhdGFMb2FkZWQuZW1pdCgpfWRpc3BhdGNoRXZlbnQoYSl7bGV0IGQ7ImZ1bmN0aW9uIj09dHlwZW9mIEV2ZW50P2Q9bmV3IEV2ZW50KGEpOihkPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpLGQuaW5pdEV2ZW50KGEsITAsITApKSx3aW5kb3cuZGlzcGF0Y2hF'@; put 'dmVudChkKX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKShDcihKUikpfX1zdGF0aWN7dGhpcy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KX19cmV0dXJuIGN9KSgpO2NsYXNzIFFS'@; put 'e31jbGFzcyBlTHt9Y2xhc3MgQTJ7Y29uc3RydWN0b3IobCl7dGhpcy5ub3JtYWxpemVkTmFtZXM9bmV3IE1hcCx0aGlzLmxhenlVcGRhdGU9bnVsbCxsPyJzdHJpbmciPT10eXBlb2YgbD90aGlzLmxhenlJbml0PSgpPT57dGhpcy5oZWFkZXJzPW5ldyBNYXAsbC5zcGxpdCgiXG4iKS5mb3JF'@; put 'YWNoKGE9Pntjb25zdCBkPWEuaW5kZXhPZigiOiIpO2lmKGQ+MCl7Y29uc3QgaD1hLnNsaWNlKDAsZCksZj1oLnRvTG93ZXJDYXNlKCksdj1hLnNsaWNlKGQrMSkudHJpbSgpO3RoaXMubWF5YmVTZXROb3JtYWxpemVkTmFtZShoLGYpLHRoaXMuaGVhZGVycy5oYXMoZik/dGhpcy5oZWFkZXJz'@; put 'LmdldChmKS5wdXNoKHYpOnRoaXMuaGVhZGVycy5zZXQoZixbdl0pfX0pfTp0eXBlb2YgSGVhZGVyczwidSImJmwgaW5zdGFuY2VvZiBIZWFkZXJzPyh0aGlzLmhlYWRlcnM9bmV3IE1hcCxsLmZvckVhY2goKGEsZCk9Pnt0aGlzLnNldEhlYWRlckVudHJpZXMoZCxhKX0pKTp0aGlzLmxhenlJ'@; put 'bml0PSgpPT57dGhpcy5oZWFkZXJzPW5ldyBNYXAsT2JqZWN0LmVudHJpZXMobCkuZm9yRWFjaCgoW2EsZF0pPT57dGhpcy5zZXRIZWFkZXJFbnRyaWVzKGEsZCl9KX06dGhpcy5oZWFkZXJzPW5ldyBNYXB9aGFzKGwpe3JldHVybiB0aGlzLmluaXQoKSx0aGlzLmhlYWRlcnMuaGFzKGwudG9M'@; put 'b3dlckNhc2UoKSl9Z2V0KGwpe3RoaXMuaW5pdCgpO2NvbnN0IGE9dGhpcy5oZWFkZXJzLmdldChsLnRvTG93ZXJDYXNlKCkpO3JldHVybiBhJiZhLmxlbmd0aD4wP2FbMF06bnVsbH1rZXlzKCl7cmV0dXJuIHRoaXMuaW5pdCgpLEFycmF5LmZyb20odGhpcy5ub3JtYWxpemVkTmFtZXMudmFs'@; put 'dWVzKCkpfWdldEFsbChsKXtyZXR1cm4gdGhpcy5pbml0KCksdGhpcy5oZWFkZXJzLmdldChsLnRvTG93ZXJDYXNlKCkpfHxudWxsfWFwcGVuZChsLGEpe3JldHVybiB0aGlzLmNsb25lKHtuYW1lOmwsdmFsdWU6YSxvcDoiYSJ9KX1zZXQobCxhKXtyZXR1cm4gdGhpcy5jbG9uZSh7bmFtZTps'@; put 'LHZhbHVlOmEsb3A6InMifSl9ZGVsZXRlKGwsYSl7cmV0dXJuIHRoaXMuY2xvbmUoe25hbWU6bCx2YWx1ZTphLG9wOiJkIn0pfW1heWJlU2V0Tm9ybWFsaXplZE5hbWUobCxhKXt0aGlzLm5vcm1hbGl6ZWROYW1lcy5oYXMoYSl8fHRoaXMubm9ybWFsaXplZE5hbWVzLnNldChhLGwpfWluaXQo'@; put 'KXt0aGlzLmxhenlJbml0JiYodGhpcy5sYXp5SW5pdCBpbnN0YW5jZW9mIEEyP3RoaXMuY29weUZyb20odGhpcy5sYXp5SW5pdCk6dGhpcy5sYXp5SW5pdCgpLHRoaXMubGF6eUluaXQ9bnVsbCx0aGlzLmxhenlVcGRhdGUmJih0aGlzLmxhenlVcGRhdGUuZm9yRWFjaChsPT50aGlzLmFwcGx5'@; put 'VXBkYXRlKGwpKSx0aGlzLmxhenlVcGRhdGU9bnVsbCkpfWNvcHlGcm9tKGwpe2wuaW5pdCgpLEFycmF5LmZyb20obC5oZWFkZXJzLmtleXMoKSkuZm9yRWFjaChhPT57dGhpcy5oZWFkZXJzLnNldChhLGwuaGVhZGVycy5nZXQoYSkpLHRoaXMubm9ybWFsaXplZE5hbWVzLnNldChhLGwubm9y'@; put 'bWFsaXplZE5hbWVzLmdldChhKSl9KX1jbG9uZShsKXtjb25zdCBhPW5ldyBBMjtyZXR1cm4gYS5sYXp5SW5pdD10aGlzLmxhenlJbml0JiZ0aGlzLmxhenlJbml0IGluc3RhbmNlb2YgQTI/dGhpcy5sYXp5SW5pdDp0aGlzLGEubGF6eVVwZGF0ZT0odGhpcy5sYXp5VXBkYXRlfHxbXSkuY29u'@; put 'Y2F0KFtsXSksYX1hcHBseVVwZGF0ZShsKXtjb25zdCBhPWwubmFtZS50b0xvd2VyQ2FzZSgpO3N3aXRjaChsLm9wKXtjYXNlImEiOmNhc2UicyI6bGV0IGQ9bC52YWx1ZTtpZigic3RyaW5nIj09dHlwZW9mIGQmJihkPVtkXSksMD09PWQubGVuZ3RoKXJldHVybjt0aGlzLm1heWJlU2V0Tm9y'@; put 'bWFsaXplZE5hbWUobC5uYW1lLGEpO2NvbnN0IGg9KCJhIj09PWwub3A/dGhpcy5oZWFkZXJzLmdldChhKTp2b2lkIDApfHxbXTtoLnB1c2goLi4uZCksdGhpcy5oZWFkZXJzLnNldChhLGgpO2JyZWFrO2Nhc2UiZCI6Y29uc3QgZj1sLnZhbHVlO2lmKGYpe2xldCB2PXRoaXMuaGVhZGVycy5n'@; put 'ZXQoYSk7aWYoIXYpcmV0dXJuO3Y9di5maWx0ZXIoTT0+LTE9PT1mLmluZGV4T2YoTSkpLDA9PT12Lmxlbmd0aD8odGhpcy5oZWFkZXJzLmRlbGV0ZShhKSx0aGlzLm5vcm1hbGl6ZWROYW1lcy5kZWxldGUoYSkpOnRoaXMuaGVhZGVycy5zZXQoYSx2KX1lbHNlIHRoaXMuaGVhZGVycy5kZWxl'@; put 'dGUoYSksdGhpcy5ub3JtYWxpemVkTmFtZXMuZGVsZXRlKGEpfX1zZXRIZWFkZXJFbnRyaWVzKGwsYSl7Y29uc3QgZD0oQXJyYXkuaXNBcnJheShhKT9hOlthXSkubWFwKGY9PmYudG9TdHJpbmcoKSksaD1sLnRvTG93ZXJDYXNlKCk7dGhpcy5oZWFkZXJzLnNldChoLGQpLHRoaXMubWF5YmVT'@; put 'ZXROb3JtYWxpemVkTmFtZShsLGgpfWZvckVhY2gobCl7dGhpcy5pbml0KCksQXJyYXkuZnJvbSh0aGlzLm5vcm1hbGl6ZWROYW1lcy5rZXlzKCkpLmZvckVhY2goYT0+bCh0aGlzLm5vcm1hbGl6ZWROYW1lcy5nZXQoYSksdGhpcy5oZWFkZXJzLmdldChhKSkpfX1jbGFzcyAkVGV7ZW5jb2Rl'@; put 'S2V5KGwpe3JldHVybiBUY2UobCl9ZW5jb2RlVmFsdWUobCl7cmV0dXJuIFRjZShsKX1kZWNvZGVLZXkobCl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChsKX1kZWNvZGVWYWx1ZShsKXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGwpfX1jb25zdCBYVGU9LyUoXGRbYS1mMC05XSkvZ2ks'@; put 'cVRlPXs0MDoiQCIsIjNBIjoiOiIsMjQ6IiQiLCIyQyI6IiwiLCIzQiI6IjsiLCIzRCI6Ij0iLCIzRiI6Ij8iLCIyRiI6Ii8ifTtmdW5jdGlvbiBUY2UoYyl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChjKS5yZXBsYWNlKFhUZSwobCxhKT0+cVRlW2FdPz9sKX1mdW5jdGlvbiB0TChjKXty'@; put 'ZXR1cm5gJHtjfWB9Y2xhc3MgaW17Y29uc3RydWN0b3IobD17fSl7aWYodGhpcy51cGRhdGVzPW51bGwsdGhpcy5jbG9uZUZyb209bnVsbCx0aGlzLmVuY29kZXI9bC5lbmNvZGVyfHxuZXcgJFRlLGwuZnJvbVN0cmluZyl7aWYobC5mcm9tT2JqZWN0KXRocm93IG5ldyBFcnJvcigiQ2Fubm90'@; put 'IHNwZWNpZnkgYm90aCBmcm9tU3RyaW5nIGFuZCBmcm9tT2JqZWN0LiIpO3RoaXMubWFwPWZ1bmN0aW9uIEtUZShjLGwpe2NvbnN0IGE9bmV3IE1hcDtyZXR1cm4gYy5sZW5ndGg+MCYmYy5yZXBsYWNlKC9eXD8vLCIiKS5zcGxpdCgiJiIpLmZvckVhY2goaD0+e2NvbnN0IGY9aC5pbmRleE9m'@; put 'KCI9IiksW3YsTV09LTE9PWY/W2wuZGVjb2RlS2V5KGgpLCIiXTpbbC5kZWNvZGVLZXkoaC5zbGljZSgwLGYpKSxsLmRlY29kZVZhbHVlKGguc2xpY2UoZisxKSldLEk9YS5nZXQodil8fFtdO0kucHVzaChNKSxhLnNldCh2LEkpfSksYX0obC5mcm9tU3RyaW5nLHRoaXMuZW5jb2Rlcil9ZWxz'@; put 'ZSBsLmZyb21PYmplY3Q/KHRoaXMubWFwPW5ldyBNYXAsT2JqZWN0LmtleXMobC5mcm9tT2JqZWN0KS5mb3JFYWNoKGE9Pntjb25zdCBkPWwuZnJvbU9iamVjdFthXSxoPUFycmF5LmlzQXJyYXkoZCk/ZC5tYXAodEwpOlt0TChkKV07dGhpcy5tYXAuc2V0KGEsaCl9KSk6dGhpcy5tYXA9bnVs'@; put 'bH1oYXMobCl7cmV0dXJuIHRoaXMuaW5pdCgpLHRoaXMubWFwLmhhcyhsKX1nZXQobCl7dGhpcy5pbml0KCk7Y29uc3QgYT10aGlzLm1hcC5nZXQobCk7cmV0dXJuIGE/YVswXTpudWxsfWdldEFsbChsKXtyZXR1cm4gdGhpcy5pbml0KCksdGhpcy5tYXAuZ2V0KGwpfHxudWxsfWtleXMoKXty'@; put 'ZXR1cm4gdGhpcy5pbml0KCksQXJyYXkuZnJvbSh0aGlzLm1hcC5rZXlzKCkpfWFwcGVuZChsLGEpe3JldHVybiB0aGlzLmNsb25lKHtwYXJhbTpsLHZhbHVlOmEsb3A6ImEifSl9YXBwZW5kQWxsKGwpe2NvbnN0IGE9W107cmV0dXJuIE9iamVjdC5rZXlzKGwpLmZvckVhY2goZD0+e2NvbnN0'@; put 'IGg9bFtkXTtBcnJheS5pc0FycmF5KGgpP2guZm9yRWFjaChmPT57YS5wdXNoKHtwYXJhbTpkLHZhbHVlOmYsb3A6ImEifSl9KTphLnB1c2goe3BhcmFtOmQsdmFsdWU6aCxvcDoiYSJ9KX0pLHRoaXMuY2xvbmUoYSl9c2V0KGwsYSl7cmV0dXJuIHRoaXMuY2xvbmUoe3BhcmFtOmwsdmFsdWU6'@; put 'YSxvcDoicyJ9KX1kZWxldGUobCxhKXtyZXR1cm4gdGhpcy5jbG9uZSh7cGFyYW06bCx2YWx1ZTphLG9wOiJkIn0pfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuaW5pdCgpLHRoaXMua2V5cygpLm1hcChsPT57Y29uc3QgYT10aGlzLmVuY29kZXIuZW5jb2RlS2V5KGwpO3JldHVybiB0aGlzLm1h'@; put 'cC5nZXQobCkubWFwKGQ9PmErIj0iK3RoaXMuZW5jb2Rlci5lbmNvZGVWYWx1ZShkKSkuam9pbigiJiIpfSkuZmlsdGVyKGw9PiIiIT09bCkuam9pbigiJiIpfWNsb25lKGwpe2NvbnN0IGE9bmV3IGltKHtlbmNvZGVyOnRoaXMuZW5jb2Rlcn0pO3JldHVybiBhLmNsb25lRnJvbT10aGlzLmNs'@; put 'b25lRnJvbXx8dGhpcyxhLnVwZGF0ZXM9KHRoaXMudXBkYXRlc3x8W10pLmNvbmNhdChsKSxhfWluaXQoKXtudWxsPT09dGhpcy5tYXAmJih0aGlzLm1hcD1uZXcgTWFwKSxudWxsIT09dGhpcy5jbG9uZUZyb20mJih0aGlzLmNsb25lRnJvbS5pbml0KCksdGhpcy5jbG9uZUZyb20ua2V5cygp'@; put 'LmZvckVhY2gobD0+dGhpcy5tYXAuc2V0KGwsdGhpcy5jbG9uZUZyb20ubWFwLmdldChsKSkpLHRoaXMudXBkYXRlcy5mb3JFYWNoKGw9Pntzd2l0Y2gobC5vcCl7Y2FzZSJhIjpjYXNlInMiOmNvbnN0IGE9KCJhIj09PWwub3A/dGhpcy5tYXAuZ2V0KGwucGFyYW0pOnZvaWQgMCl8fFtdO2Eu'@; put 'cHVzaCh0TChsLnZhbHVlKSksdGhpcy5tYXAuc2V0KGwucGFyYW0sYSk7YnJlYWs7Y2FzZSJkIjppZih2b2lkIDA9PT1sLnZhbHVlKXt0aGlzLm1hcC5kZWxldGUobC5wYXJhbSk7YnJlYWt9e2xldCBkPXRoaXMubWFwLmdldChsLnBhcmFtKXx8W107Y29uc3QgaD1kLmluZGV4T2YodEwobC52'@; put 'YWx1ZSkpOy0xIT09aCYmZC5zcGxpY2UoaCwxKSxkLmxlbmd0aD4wP3RoaXMubWFwLnNldChsLnBhcmFtLGQpOnRoaXMubWFwLmRlbGV0ZShsLnBhcmFtKX19fSksdGhpcy5jbG9uZUZyb209dGhpcy51cGRhdGVzPW51bGwpfX1jbGFzcyBKVGV7Y29uc3RydWN0b3IoKXt0aGlzLm1hcD1uZXcg'@; put 'TWFwfXNldChsLGEpe3JldHVybiB0aGlzLm1hcC5zZXQobCxhKSx0aGlzfWdldChsKXtyZXR1cm4gdGhpcy5tYXAuaGFzKGwpfHx0aGlzLm1hcC5zZXQobCxsLmRlZmF1bHRWYWx1ZSgpKSx0aGlzLm1hcC5nZXQobCl9ZGVsZXRlKGwpe3JldHVybiB0aGlzLm1hcC5kZWxldGUobCksdGhpc31o'@; put 'YXMobCl7cmV0dXJuIHRoaXMubWFwLmhhcyhsKX1rZXlzKCl7cmV0dXJuIHRoaXMubWFwLmtleXMoKX19ZnVuY3Rpb24gQWNlKGMpe3JldHVybiB0eXBlb2YgQXJyYXlCdWZmZXI8InUiJiZjIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ9ZnVuY3Rpb24ga2NlKGMpe3JldHVybiB0eXBlb2YgQmxv'@; put 'YjwidSImJmMgaW5zdGFuY2VvZiBCbG9ifWZ1bmN0aW9uIERjZShjKXtyZXR1cm4gdHlwZW9mIEZvcm1EYXRhPCJ1IiYmYyBpbnN0YW5jZW9mIEZvcm1EYXRhfWNsYXNzIGx4e2NvbnN0cnVjdG9yKGwsYSxkLGgpe2xldCBmO2lmKHRoaXMudXJsPWEsdGhpcy5ib2R5PW51bGwsdGhpcy5yZXBv'@; put 'cnRQcm9ncmVzcz0hMSx0aGlzLndpdGhDcmVkZW50aWFscz0hMSx0aGlzLnJlc3BvbnNlVHlwZT0ianNvbiIsdGhpcy5tZXRob2Q9bC50b1VwcGVyQ2FzZSgpLGZ1bmN0aW9uIFFUZShjKXtzd2l0Y2goYyl7Y2FzZSJERUxFVEUiOmNhc2UiR0VUIjpjYXNlIkhFQUQiOmNhc2UiT1BUSU9OUyI6'@; put 'Y2FzZSJKU09OUCI6cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMH19KHRoaXMubWV0aG9kKXx8aD8odGhpcy5ib2R5PXZvaWQgMCE9PWQ/ZDpudWxsLGY9aCk6Zj1kLGYmJih0aGlzLnJlcG9ydFByb2dyZXNzPSEhZi5yZXBvcnRQcm9ncmVzcyx0aGlzLndpdGhDcmVkZW50aWFscz0hIWYud2l0'@; put 'aENyZWRlbnRpYWxzLGYucmVzcG9uc2VUeXBlJiYodGhpcy5yZXNwb25zZVR5cGU9Zi5yZXNwb25zZVR5cGUpLGYuaGVhZGVycyYmKHRoaXMuaGVhZGVycz1mLmhlYWRlcnMpLGYuY29udGV4dCYmKHRoaXMuY29udGV4dD1mLmNvbnRleHQpLGYucGFyYW1zJiYodGhpcy5wYXJhbXM9Zi5wYXJh'@; put 'bXMpLHRoaXMudHJhbnNmZXJDYWNoZT1mLnRyYW5zZmVyQ2FjaGUpLHRoaXMuaGVhZGVycz8/PW5ldyBBMix0aGlzLmNvbnRleHQ/Pz1uZXcgSlRlLHRoaXMucGFyYW1zKXtjb25zdCB2PXRoaXMucGFyYW1zLnRvU3RyaW5nKCk7aWYoMD09PXYubGVuZ3RoKXRoaXMudXJsV2l0aFBhcmFtcz1h'@; put 'O2Vsc2V7Y29uc3QgTT1hLmluZGV4T2YoIj8iKTt0aGlzLnVybFdpdGhQYXJhbXM9YSsoLTE9PT1NPyI/IjpNPGEubGVuZ3RoLTE/IiYiOiIiKSt2fX1lbHNlIHRoaXMucGFyYW1zPW5ldyBpbSx0aGlzLnVybFdpdGhQYXJhbXM9YX1zZXJpYWxpemVCb2R5KCl7cmV0dXJuIG51bGw9PT10aGlz'@; put 'LmJvZHk/bnVsbDoic3RyaW5nIj09dHlwZW9mIHRoaXMuYm9keXx8QWNlKHRoaXMuYm9keSl8fGtjZSh0aGlzLmJvZHkpfHxEY2UodGhpcy5ib2R5KXx8ZnVuY3Rpb24gZUFlKGMpe3JldHVybiB0eXBlb2YgVVJMU2VhcmNoUGFyYW1zPCJ1IiYmYyBpbnN0YW5jZW9mIFVSTFNlYXJjaFBhcmFt'@; put 'c30odGhpcy5ib2R5KT90aGlzLmJvZHk6dGhpcy5ib2R5IGluc3RhbmNlb2YgaW0/dGhpcy5ib2R5LnRvU3RyaW5nKCk6Im9iamVjdCI9PXR5cGVvZiB0aGlzLmJvZHl8fCJib29sZWFuIj09dHlwZW9mIHRoaXMuYm9keXx8QXJyYXkuaXNBcnJheSh0aGlzLmJvZHkpP0pTT04uc3RyaW5naWZ5'@; put 'KHRoaXMuYm9keSk6dGhpcy5ib2R5LnRvU3RyaW5nKCl9ZGV0ZWN0Q29udGVudFR5cGVIZWFkZXIoKXtyZXR1cm4gbnVsbD09PXRoaXMuYm9keXx8RGNlKHRoaXMuYm9keSk/bnVsbDprY2UodGhpcy5ib2R5KT90aGlzLmJvZHkudHlwZXx8bnVsbDpBY2UodGhpcy5ib2R5KT9udWxsOiJzdHJp'@; put 'bmciPT10eXBlb2YgdGhpcy5ib2R5PyJ0ZXh0L3BsYWluIjp0aGlzLmJvZHkgaW5zdGFuY2VvZiBpbT8iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRGLTgiOiJvYmplY3QiPT10eXBlb2YgdGhpcy5ib2R5fHwibnVtYmVyIj09dHlwZW9mIHRoaXMuYm9keXx8'@; put 'ImJvb2xlYW4iPT10eXBlb2YgdGhpcy5ib2R5PyJhcHBsaWNhdGlvbi9qc29uIjpudWxsfWNsb25lKGw9e30pe2NvbnN0IGE9bC5tZXRob2R8fHRoaXMubWV0aG9kLGQ9bC51cmx8fHRoaXMudXJsLGg9bC5yZXNwb25zZVR5cGV8fHRoaXMucmVzcG9uc2VUeXBlLGY9bC50cmFuc2ZlckNhY2hl'@; put 'Pz90aGlzLnRyYW5zZmVyQ2FjaGUsdj12b2lkIDAhPT1sLmJvZHk/bC5ib2R5OnRoaXMuYm9keSxNPWwud2l0aENyZWRlbnRpYWxzPz90aGlzLndpdGhDcmVkZW50aWFscyxJPWwucmVwb3J0UHJvZ3Jlc3M/P3RoaXMucmVwb3J0UHJvZ3Jlc3M7bGV0IEc9bC5oZWFkZXJzfHx0aGlzLmhlYWRl'@; put 'cnMscmU9bC5wYXJhbXN8fHRoaXMucGFyYW1zO2NvbnN0IHVlPWwuY29udGV4dD8/dGhpcy5jb250ZXh0O3JldHVybiB2b2lkIDAhPT1sLnNldEhlYWRlcnMmJihHPU9iamVjdC5rZXlzKGwuc2V0SGVhZGVycykucmVkdWNlKCh5ZSxFZSk9PnllLnNldChFZSxsLnNldEhlYWRlcnNbRWVdKSxH'@; put 'KSksbC5zZXRQYXJhbXMmJihyZT1PYmplY3Qua2V5cyhsLnNldFBhcmFtcykucmVkdWNlKCh5ZSxFZSk9PnllLnNldChFZSxsLnNldFBhcmFtc1tFZV0pLHJlKSksbmV3IGx4KGEsZCx2LHtwYXJhbXM6cmUsaGVhZGVyczpHLGNvbnRleHQ6dWUscmVwb3J0UHJvZ3Jlc3M6SSxyZXNwb25zZVR5'@; put 'cGU6aCx3aXRoQ3JlZGVudGlhbHM6TSx0cmFuc2ZlckNhY2hlOmZ9KX19dmFyIGFtPWZ1bmN0aW9uKGMpe3JldHVybiBjW2MuU2VudD0wXT0iU2VudCIsY1tjLlVwbG9hZFByb2dyZXNzPTFdPSJVcGxvYWRQcm9ncmVzcyIsY1tjLlJlc3BvbnNlSGVhZGVyPTJdPSJSZXNwb25zZUhlYWRlciIs'@; put 'Y1tjLkRvd25sb2FkUHJvZ3Jlc3M9M109IkRvd25sb2FkUHJvZ3Jlc3MiLGNbYy5SZXNwb25zZT00XT0iUmVzcG9uc2UiLGNbYy5Vc2VyPTVdPSJVc2VyIixjfShhbXx8e30pO2NsYXNzIHhXe2NvbnN0cnVjdG9yKGwsYT1jeC5PayxkPSJPSyIpe3RoaXMuaGVhZGVycz1sLmhlYWRlcnN8fG5l'@; put 'dyBBMix0aGlzLnN0YXR1cz12b2lkIDAhPT1sLnN0YXR1cz9sLnN0YXR1czphLHRoaXMuc3RhdHVzVGV4dD1sLnN0YXR1c1RleHR8fGQsdGhpcy51cmw9bC51cmx8fG51bGwsdGhpcy5vaz10aGlzLnN0YXR1cz49MjAwJiZ0aGlzLnN0YXR1czwzMDB9fWNsYXNzIG5MIGV4dGVuZHMgeFd7Y29u'@; put 'c3RydWN0b3IobD17fSl7c3VwZXIobCksdGhpcy50eXBlPWFtLlJlc3BvbnNlSGVhZGVyfWNsb25lKGw9e30pe3JldHVybiBuZXcgbkwoe2hlYWRlcnM6bC5oZWFkZXJzfHx0aGlzLmhlYWRlcnMsc3RhdHVzOnZvaWQgMCE9PWwuc3RhdHVzP2wuc3RhdHVzOnRoaXMuc3RhdHVzLHN0YXR1c1Rl'@; put 'eHQ6bC5zdGF0dXNUZXh0fHx0aGlzLnN0YXR1c1RleHQsdXJsOmwudXJsfHx0aGlzLnVybHx8dm9pZCAwfSl9fWNsYXNzIGU3IGV4dGVuZHMgeFd7Y29uc3RydWN0b3IobD17fSl7c3VwZXIobCksdGhpcy50eXBlPWFtLlJlc3BvbnNlLHRoaXMuYm9keT12b2lkIDAhPT1sLmJvZHk/bC5ib2R5'@; put 'Om51bGx9Y2xvbmUobD17fSl7cmV0dXJuIG5ldyBlNyh7Ym9keTp2b2lkIDAhPT1sLmJvZHk/bC5ib2R5OnRoaXMuYm9keSxoZWFkZXJzOmwuaGVhZGVyc3x8dGhpcy5oZWFkZXJzLHN0YXR1czp2b2lkIDAhPT1sLnN0YXR1cz9sLnN0YXR1czp0aGlzLnN0YXR1cyxzdGF0dXNUZXh0Omwuc3Rh'@; put 'dHVzVGV4dHx8dGhpcy5zdGF0dXNUZXh0LHVybDpsLnVybHx8dGhpcy51cmx8fHZvaWQgMH0pfX1jbGFzcyBoYiBleHRlbmRzIHhXe2NvbnN0cnVjdG9yKGwpe3N1cGVyKGwsMCwiVW5rbm93biBFcnJvciIpLHRoaXMubmFtZT0iSHR0cEVycm9yUmVzcG9uc2UiLHRoaXMub2s9ITEsdGhpcy5t'@; put 'ZXNzYWdlPXRoaXMuc3RhdHVzPj0yMDAmJnRoaXMuc3RhdHVzPDMwMD9gSHR0cCBmYWlsdXJlIGR1cmluZyBwYXJzaW5nIGZvciAke2wudXJsfHwiKHVua25vd24gdXJsKSJ9YDpgSHR0cCBmYWlsdXJlIHJlc3BvbnNlIGZvciAke2wudXJsfHwiKHVua25vd24gdXJsKSJ9OiAke2wuc3RhdHVz'@; put 'fSAke2wuc3RhdHVzVGV4dH1gLHRoaXMuZXJyb3I9bC5lcnJvcnx8bnVsbH19dmFyIGN4PWZ1bmN0aW9uKGMpe3JldHVybiBjW2MuQ29udGludWU9MTAwXT0iQ29udGludWUiLGNbYy5Td2l0Y2hpbmdQcm90b2NvbHM9MTAxXT0iU3dpdGNoaW5nUHJvdG9jb2xzIixjW2MuUHJvY2Vzc2luZz0x'@; put 'MDJdPSJQcm9jZXNzaW5nIixjW2MuRWFybHlIaW50cz0xMDNdPSJFYXJseUhpbnRzIixjW2MuT2s9MjAwXT0iT2siLGNbYy5DcmVhdGVkPTIwMV09IkNyZWF0ZWQiLGNbYy5BY2NlcHRlZD0yMDJdPSJBY2NlcHRlZCIsY1tjLk5vbkF1dGhvcml0YXRpdmVJbmZvcm1hdGlvbj0yMDNdPSJOb25B'@; put 'dXRob3JpdGF0aXZlSW5mb3JtYXRpb24iLGNbYy5Ob0NvbnRlbnQ9MjA0XT0iTm9Db250ZW50IixjW2MuUmVzZXRDb250ZW50PTIwNV09IlJlc2V0Q29udGVudCIsY1tjLlBhcnRpYWxDb250ZW50PTIwNl09IlBhcnRpYWxDb250ZW50IixjW2MuTXVsdGlTdGF0dXM9MjA3XT0iTXVsdGlTdGF0'@; put 'dXMiLGNbYy5BbHJlYWR5UmVwb3J0ZWQ9MjA4XT0iQWxyZWFkeVJlcG9ydGVkIixjW2MuSW1Vc2VkPTIyNl09IkltVXNlZCIsY1tjLk11bHRpcGxlQ2hvaWNlcz0zMDBdPSJNdWx0aXBsZUNob2ljZXMiLGNbYy5Nb3ZlZFBlcm1hbmVudGx5PTMwMV09Ik1vdmVkUGVybWFuZW50bHkiLGNbYy5G'@; put 'b3VuZD0zMDJdPSJGb3VuZCIsY1tjLlNlZU90aGVyPTMwM109IlNlZU90aGVyIixjW2MuTm90TW9kaWZpZWQ9MzA0XT0iTm90TW9kaWZpZWQiLGNbYy5Vc2VQcm94eT0zMDVdPSJVc2VQcm94eSIsY1tjLlVudXNlZD0zMDZdPSJVbnVzZWQiLGNbYy5UZW1wb3JhcnlSZWRpcmVjdD0zMDddPSJU'@; put 'ZW1wb3JhcnlSZWRpcmVjdCIsY1tjLlBlcm1hbmVudFJlZGlyZWN0PTMwOF09IlBlcm1hbmVudFJlZGlyZWN0IixjW2MuQmFkUmVxdWVzdD00MDBdPSJCYWRSZXF1ZXN0IixjW2MuVW5hdXRob3JpemVkPTQwMV09IlVuYXV0aG9yaXplZCIsY1tjLlBheW1lbnRSZXF1aXJlZD00MDJdPSJQYXlt'@; put 'ZW50UmVxdWlyZWQiLGNbYy5Gb3JiaWRkZW49NDAzXT0iRm9yYmlkZGVuIixjW2MuTm90Rm91bmQ9NDA0XT0iTm90Rm91bmQiLGNbYy5NZXRob2ROb3RBbGxvd2VkPTQwNV09Ik1ldGhvZE5vdEFsbG93ZWQiLGNbYy5Ob3RBY2NlcHRhYmxlPTQwNl09Ik5vdEFjY2VwdGFibGUiLGNbYy5Qcm94'@; put 'eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWQ9NDA3XT0iUHJveHlBdXRoZW50aWNhdGlvblJlcXVpcmVkIixjW2MuUmVxdWVzdFRpbWVvdXQ9NDA4XT0iUmVxdWVzdFRpbWVvdXQiLGNbYy5Db25mbGljdD00MDldPSJDb25mbGljdCIsY1tjLkdvbmU9NDEwXT0iR29uZSIsY1tjLkxlbmd0aFJlcXVp'@; put 'cmVkPTQxMV09Ikxlbmd0aFJlcXVpcmVkIixjW2MuUHJlY29uZGl0aW9uRmFpbGVkPTQxMl09IlByZWNvbmRpdGlvbkZhaWxlZCIsY1tjLlBheWxvYWRUb29MYXJnZT00MTNdPSJQYXlsb2FkVG9vTGFyZ2UiLGNbYy5VcmlUb29Mb25nPTQxNF09IlVyaVRvb0xvbmciLGNbYy5VbnN1cHBvcnRl'@; put 'ZE1lZGlhVHlwZT00MTVdPSJVbnN1cHBvcnRlZE1lZGlhVHlwZSIsY1tjLlJhbmdlTm90U2F0aXNmaWFibGU9NDE2XT0iUmFuZ2VOb3RTYXRpc2ZpYWJsZSIsY1tjLkV4cGVjdGF0aW9uRmFpbGVkPTQxN109IkV4cGVjdGF0aW9uRmFpbGVkIixjW2MuSW1BVGVhcG90PTQxOF09IkltQVRlYXBv'@; put 'dCIsY1tjLk1pc2RpcmVjdGVkUmVxdWVzdD00MjFdPSJNaXNkaXJlY3RlZFJlcXVlc3QiLGNbYy5VbnByb2Nlc3NhYmxlRW50aXR5PTQyMl09IlVucHJvY2Vzc2FibGVFbnRpdHkiLGNbYy5Mb2NrZWQ9NDIzXT0iTG9ja2VkIixjW2MuRmFpbGVkRGVwZW5kZW5jeT00MjRdPSJGYWlsZWREZXBl'@; put 'bmRlbmN5IixjW2MuVG9vRWFybHk9NDI1XT0iVG9vRWFybHkiLGNbYy5VcGdyYWRlUmVxdWlyZWQ9NDI2XT0iVXBncmFkZVJlcXVpcmVkIixjW2MuUHJlY29uZGl0aW9uUmVxdWlyZWQ9NDI4XT0iUHJlY29uZGl0aW9uUmVxdWlyZWQiLGNbYy5Ub29NYW55UmVxdWVzdHM9NDI5XT0iVG9vTWFu'@; put 'eVJlcXVlc3RzIixjW2MuUmVxdWVzdEhlYWRlckZpZWxkc1Rvb0xhcmdlPTQzMV09IlJlcXVlc3RIZWFkZXJGaWVsZHNUb29MYXJnZSIsY1tjLlVuYXZhaWxhYmxlRm9yTGVnYWxSZWFzb25zPTQ1MV09IlVuYXZhaWxhYmxlRm9yTGVnYWxSZWFzb25zIixjW2MuSW50ZXJuYWxTZXJ2ZXJFcnJv'@; put 'cj01MDBdPSJJbnRlcm5hbFNlcnZlckVycm9yIixjW2MuTm90SW1wbGVtZW50ZWQ9NTAxXT0iTm90SW1wbGVtZW50ZWQiLGNbYy5CYWRHYXRld2F5PTUwMl09IkJhZEdhdGV3YXkiLGNbYy5TZXJ2aWNlVW5hdmFpbGFibGU9NTAzXT0iU2VydmljZVVuYXZhaWxhYmxlIixjW2MuR2F0ZXdheVRp'@; put 'bWVvdXQ9NTA0XT0iR2F0ZXdheVRpbWVvdXQiLGNbYy5IdHRwVmVyc2lvbk5vdFN1cHBvcnRlZD01MDVdPSJIdHRwVmVyc2lvbk5vdFN1cHBvcnRlZCIsY1tjLlZhcmlhbnRBbHNvTmVnb3RpYXRlcz01MDZdPSJWYXJpYW50QWxzb05lZ290aWF0ZXMiLGNbYy5JbnN1ZmZpY2llbnRTdG9yYWdl'@; put 'PTUwN109Ikluc3VmZmljaWVudFN0b3JhZ2UiLGNbYy5Mb29wRGV0ZWN0ZWQ9NTA4XT0iTG9vcERldGVjdGVkIixjW2MuTm90RXh0ZW5kZWQ9NTEwXT0iTm90RXh0ZW5kZWQiLGNbYy5OZXR3b3JrQXV0aGVudGljYXRpb25SZXF1aXJlZD01MTFdPSJOZXR3b3JrQXV0aGVudGljYXRpb25SZXF1'@; put 'aXJlZCIsY30oY3h8fHt9KTtmdW5jdGlvbiBFVyhjLGwpe3JldHVybntib2R5OmwsaGVhZGVyczpjLmhlYWRlcnMsY29udGV4dDpjLmNvbnRleHQsb2JzZXJ2ZTpjLm9ic2VydmUscGFyYW1zOmMucGFyYW1zLHJlcG9ydFByb2dyZXNzOmMucmVwb3J0UHJvZ3Jlc3MscmVzcG9uc2VUeXBlOmMu'@; put 'cmVzcG9uc2VUeXBlLHdpdGhDcmVkZW50aWFsczpjLndpdGhDcmVkZW50aWFscyx0cmFuc2ZlckNhY2hlOmMudHJhbnNmZXJDYWNoZX19bGV0IFRXPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5oYW5kbGVyPWF9cmVxdWVzdChhLGQsaD17fSl7bGV0IGY7aWYoYSBpbnN0YW5j'@; put 'ZW9mIGx4KWY9YTtlbHNle2xldCBJLEc7ST1oLmhlYWRlcnMgaW5zdGFuY2VvZiBBMj9oLmhlYWRlcnM6bmV3IEEyKGguaGVhZGVycyksaC5wYXJhbXMmJihHPWgucGFyYW1zIGluc3RhbmNlb2YgaW0/aC5wYXJhbXM6bmV3IGltKHtmcm9tT2JqZWN0OmgucGFyYW1zfSkpLGY9bmV3IGx4KGEs'@; put 'ZCx2b2lkIDAhPT1oLmJvZHk/aC5ib2R5Om51bGwse2hlYWRlcnM6SSxjb250ZXh0OmguY29udGV4dCxwYXJhbXM6RyxyZXBvcnRQcm9ncmVzczpoLnJlcG9ydFByb2dyZXNzLHJlc3BvbnNlVHlwZTpoLnJlc3BvbnNlVHlwZXx8Impzb24iLHdpdGhDcmVkZW50aWFsczpoLndpdGhDcmVkZW50'@; put 'aWFscyx0cmFuc2ZlckNhY2hlOmgudHJhbnNmZXJDYWNoZX0pfWNvbnN0IHY9ZHMoZikucGlwZShxeShJPT50aGlzLmhhbmRsZXIuaGFuZGxlKEkpKSk7aWYoYSBpbnN0YW5jZW9mIGx4fHwiZXZlbnRzIj09PWgub2JzZXJ2ZSlyZXR1cm4gdjtjb25zdCBNPXYucGlwZShXbChJPT5JIGluc3Rh'@; put 'bmNlb2YgZTcpKTtzd2l0Y2goaC5vYnNlcnZlfHwiYm9keSIpe2Nhc2UiYm9keSI6c3dpdGNoKGYucmVzcG9uc2VUeXBlKXtjYXNlImFycmF5YnVmZmVyIjpyZXR1cm4gTS5waXBlKFByKEk9PntpZihudWxsIT09SS5ib2R5JiYhKEkuYm9keSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSl0aHJv'@; put 'dyBuZXcgRXJyb3IoIlJlc3BvbnNlIGlzIG5vdCBhbiBBcnJheUJ1ZmZlci4iKTtyZXR1cm4gSS5ib2R5fSkpO2Nhc2UiYmxvYiI6cmV0dXJuIE0ucGlwZShQcihJPT57aWYobnVsbCE9PUkuYm9keSYmIShJLmJvZHkgaW5zdGFuY2VvZiBCbG9iKSl0aHJvdyBuZXcgRXJyb3IoIlJlc3BvbnNl'@; put 'IGlzIG5vdCBhIEJsb2IuIik7cmV0dXJuIEkuYm9keX0pKTtjYXNlInRleHQiOnJldHVybiBNLnBpcGUoUHIoST0+e2lmKG51bGwhPT1JLmJvZHkmJiJzdHJpbmciIT10eXBlb2YgSS5ib2R5KXRocm93IG5ldyBFcnJvcigiUmVzcG9uc2UgaXMgbm90IGEgc3RyaW5nLiIpO3JldHVybiBJLmJv'@; put 'ZHl9KSk7ZGVmYXVsdDpyZXR1cm4gTS5waXBlKFByKEk9PkkuYm9keSkpfWNhc2UicmVzcG9uc2UiOnJldHVybiBNO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBVbnJlYWNoYWJsZTogdW5oYW5kbGVkIG9ic2VydmUgdHlwZSAke2gub2JzZXJ2ZX19YCl9fWRlbGV0ZShhLGQ9e30pe3JldHVy'@; put 'biB0aGlzLnJlcXVlc3QoIkRFTEVURSIsYSxkKX1nZXQoYSxkPXt9KXtyZXR1cm4gdGhpcy5yZXF1ZXN0KCJHRVQiLGEsZCl9aGVhZChhLGQ9e30pe3JldHVybiB0aGlzLnJlcXVlc3QoIkhFQUQiLGEsZCl9anNvbnAoYSxkKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KCJKU09OUCIsYSx7cGFyYW1z'@; put 'OihuZXcgaW0pLmFwcGVuZChkLCJKU09OUF9DQUxMQkFDSyIpLG9ic2VydmU6ImJvZHkiLHJlc3BvbnNlVHlwZToianNvbiJ9KX1vcHRpb25zKGEsZD17fSl7cmV0dXJuIHRoaXMucmVxdWVzdCgiT1BUSU9OUyIsYSxkKX1wYXRjaChhLGQsaD17fSl7cmV0dXJuIHRoaXMucmVxdWVzdCgiUEFU'@; put 'Q0giLGEsRVcoaCxkKSl9cG9zdChhLGQsaD17fSl7cmV0dXJuIHRoaXMucmVxdWVzdCgiUE9TVCIsYSxFVyhoLGQpKX1wdXQoYSxkLGg9e30pe3JldHVybiB0aGlzLnJlcXVlc3QoIlBVVCIsYSxFVyhoLGQpKX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhk'@; put 'fHxjKShDcihRUikpfX1zdGF0aWN7dGhpcy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KX19cmV0dXJuIGN9KSgpO2Z1bmN0aW9uIFJjZShjLGwpe3JldHVybiBsKGMpfWZ1bmN0aW9uIGFBZShjLGwpe3JldHVybihhLGQpPT5sLmludGVyY2VwdChhLHtoYW5k'@; put 'bGU6aD0+YyhoLGQpfSl9Y29uc3Qgb0FlPW5ldyBTdCgiIiksdXg9bmV3IFN0KCIiKSxMY2U9bmV3IFN0KCIiKSxPY2U9bmV3IFN0KCIiKTtmdW5jdGlvbiBsQWUoKXtsZXQgYz1udWxsO3JldHVybihsLGEpPT57bnVsbD09PWMmJihjPShoaShvQWUse29wdGlvbmFsOiEwfSk/P1tdKS5yZWR1'@; put 'Y2VSaWdodChhQWUsUmNlKSk7Y29uc3QgZD1oaShCZiksaD1kLmFkZCgpO3JldHVybiBjKGwsYSkucGlwZSgkTSgoKT0+ZC5yZW1vdmUoaCkpKX19bGV0IFBjZT0oKCk9PntjbGFzcyBjIGV4dGVuZHMgUVJ7Y29uc3RydWN0b3IoYSxkKXtzdXBlcigpLHRoaXMuYmFja2VuZD1hLHRoaXMuaW5q'@; put 'ZWN0b3I9ZCx0aGlzLmNoYWluPW51bGwsdGhpcy5wZW5kaW5nVGFza3M9aGkoQmYpO2NvbnN0IGg9aGkoT2NlLHtvcHRpb25hbDohMH0pO3RoaXMuYmFja2VuZD1oPz9hfWhhbmRsZShhKXtpZihudWxsPT09dGhpcy5jaGFpbil7Y29uc3QgaD1BcnJheS5mcm9tKG5ldyBTZXQoWy4uLnRoaXMu'@; put 'aW5qZWN0b3IuZ2V0KHV4KSwuLi50aGlzLmluamVjdG9yLmdldChMY2UsW10pXSkpO3RoaXMuY2hhaW49aC5yZWR1Y2VSaWdodCgoZix2KT0+ZnVuY3Rpb24gc0FlKGMsbCxhKXtyZXR1cm4oZCxoKT0+SzAoYSwoKT0+bChkLGY9PmMoZixoKSkpfShmLHYsdGhpcy5pbmplY3RvciksUmNlKX1j'@; put 'b25zdCBkPXRoaXMucGVuZGluZ1Rhc2tzLmFkZCgpO3JldHVybiB0aGlzLmNoYWluKGEsaD0+dGhpcy5iYWNrZW5kLmhhbmRsZShoKSkucGlwZSgkTSgoKT0+dGhpcy5wZW5kaW5nVGFza3MucmVtb3ZlKGQpKSl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXco'@; put 'ZHx8YykoQ3IoZUwpLENyKHFsKSl9fXN0YXRpY3t0aGlzLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pfX1yZXR1cm4gY30pKCk7Y29uc3QgZkFlPS9eXClcXVx9Jyw/XG4vO2xldCBIY2U9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLnhockZh'@; put 'Y3Rvcnk9YX1oYW5kbGUoYSl7aWYoIkpTT05QIj09PWEubWV0aG9kKXRocm93IG5ldyBucigtMjgwMCwhMSk7Y29uc3QgZD10aGlzLnhockZhY3Rvcnk7cmV0dXJuKGQuXHUwMjc1bG9hZEltcGw/VXUoZC5cdTAyNzVsb2FkSW1wbCgpKTpkcyhudWxsKSkucGlwZShqMSgoKT0+bmV3IFF0KGY9'@; put 'Pntjb25zdCB2PWQuYnVpbGQoKTtpZih2Lm9wZW4oYS5tZXRob2QsYS51cmxXaXRoUGFyYW1zKSxhLndpdGhDcmVkZW50aWFscyYmKHYud2l0aENyZWRlbnRpYWxzPSEwKSxhLmhlYWRlcnMuZm9yRWFjaCgoR2Usc3QpPT52LnNldFJlcXVlc3RIZWFkZXIoR2Usc3Quam9pbigiLCIpKSksYS5o'@; put 'ZWFkZXJzLmhhcygiQWNjZXB0Iil8fHYuc2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0IiwiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIiksIWEuaGVhZGVycy5oYXMoIkNvbnRlbnQtVHlwZSIpKXtjb25zdCBHZT1hLmRldGVjdENvbnRlbnRUeXBlSGVhZGVyKCk7bnVsbCE9PUdl'@; put 'JiZ2LnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsR2UpfWlmKGEucmVzcG9uc2VUeXBlKXtjb25zdCBHZT1hLnJlc3BvbnNlVHlwZS50b0xvd2VyQ2FzZSgpO3YucmVzcG9uc2VUeXBlPSJqc29uIiE9PUdlP0dlOiJ0ZXh0In1jb25zdCBNPWEuc2VyaWFsaXplQm9keSgpO2xldCBJ'@; put 'PW51bGw7Y29uc3QgRz0oKT0+e2lmKG51bGwhPT1JKXJldHVybiBJO2NvbnN0IEdlPXYuc3RhdHVzVGV4dHx8Ik9LIixzdD1uZXcgQTIodi5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSkscHQ9ZnVuY3Rpb24gcEFlKGMpe3JldHVybiJyZXNwb25zZVVSTCJpbiBjJiZjLnJlc3BvbnNlVVJMP2Mu'@; put 'cmVzcG9uc2VVUkw6L15YLVJlcXVlc3QtVVJMOi9tLnRlc3QoYy5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSk/Yy5nZXRSZXNwb25zZUhlYWRlcigiWC1SZXF1ZXN0LVVSTCIpOm51bGx9KHYpfHxhLnVybDtyZXR1cm4gST1uZXcgbkwoe2hlYWRlcnM6c3Qsc3RhdHVzOnYuc3RhdHVzLHN0YXR1'@; put 'c1RleHQ6R2UsdXJsOnB0fSksSX0scmU9KCk9PntsZXR7aGVhZGVyczpHZSxzdGF0dXM6c3Qsc3RhdHVzVGV4dDpwdCx1cmw6ZHR9PUcoKSxxdD1udWxsO3N0IT09Y3guTm9Db250ZW50JiYocXQ9dHlwZW9mIHYucmVzcG9uc2U+InUiP3YucmVzcG9uc2VUZXh0OnYucmVzcG9uc2UpLDA9PT1z'@; put 'dCYmKHN0PXF0P2N4Lk9rOjApO2xldCBtbj1zdD49MjAwJiZzdDwzMDA7aWYoImpzb24iPT09YS5yZXNwb25zZVR5cGUmJiJzdHJpbmciPT10eXBlb2YgcXQpe2NvbnN0IHduPXF0O3F0PXF0LnJlcGxhY2UoZkFlLCIiKTt0cnl7cXQ9IiIhPT1xdD9KU09OLnBhcnNlKHF0KTpudWxsfWNhdGNo'@; put 'KGhuKXtxdD13bixtbiYmKG1uPSExLHF0PXtlcnJvcjpobix0ZXh0OnF0fSl9fW1uPyhmLm5leHQobmV3IGU3KHtib2R5OnF0LGhlYWRlcnM6R2Usc3RhdHVzOnN0LHN0YXR1c1RleHQ6cHQsdXJsOmR0fHx2b2lkIDB9KSksZi5jb21wbGV0ZSgpKTpmLmVycm9yKG5ldyBoYih7ZXJyb3I6cXQs'@; put 'aGVhZGVyczpHZSxzdGF0dXM6c3Qsc3RhdHVzVGV4dDpwdCx1cmw6ZHR8fHZvaWQgMH0pKX0sdWU9R2U9Pntjb25zdHt1cmw6c3R9PUcoKSxwdD1uZXcgaGIoe2Vycm9yOkdlLHN0YXR1czp2LnN0YXR1c3x8MCxzdGF0dXNUZXh0OnYuc3RhdHVzVGV4dHx8IlVua25vd24gRXJyb3IiLHVybDpz'@; put 'dHx8dm9pZCAwfSk7Zi5lcnJvcihwdCl9O2xldCB5ZT0hMTtjb25zdCBFZT1HZT0+e3llfHwoZi5uZXh0KEcoKSkseWU9ITApO2xldCBzdD17dHlwZTphbS5Eb3dubG9hZFByb2dyZXNzLGxvYWRlZDpHZS5sb2FkZWR9O0dlLmxlbmd0aENvbXB1dGFibGUmJihzdC50b3RhbD1HZS50b3RhbCks'@; put 'InRleHQiPT09YS5yZXNwb25zZVR5cGUmJnYucmVzcG9uc2VUZXh0JiYoc3QucGFydGlhbFRleHQ9di5yZXNwb25zZVRleHQpLGYubmV4dChzdCl9LEJlPUdlPT57bGV0IHN0PXt0eXBlOmFtLlVwbG9hZFByb2dyZXNzLGxvYWRlZDpHZS5sb2FkZWR9O0dlLmxlbmd0aENvbXB1dGFibGUmJihz'@; put 'dC50b3RhbD1HZS50b3RhbCksZi5uZXh0KHN0KX07cmV0dXJuIHYuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIscmUpLHYuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLHVlKSx2LmFkZEV2ZW50TGlzdGVuZXIoInRpbWVvdXQiLHVlKSx2LmFkZEV2ZW50TGlzdGVuZXIoImFib3J0Iix1ZSksYS5y'@; put 'ZXBvcnRQcm9ncmVzcyYmKHYuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLEVlKSxudWxsIT09TSYmdi51cGxvYWQmJnYudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixCZSkpLHYuc2VuZChNKSxmLm5leHQoe3R5cGU6YW0uU2VudH0pLCgpPT57di5yZW1vdmVFdmVudExp'@; put 'c3RlbmVyKCJlcnJvciIsdWUpLHYucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHVlKSx2LnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLHJlKSx2LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRpbWVvdXQiLHVlKSxhLnJlcG9ydFByb2dyZXNzJiYodi5yZW1vdmVFdmVudExpc3RlbmVyKCJw'@; put 'cm9ncmVzcyIsRWUpLG51bGwhPT1NJiZ2LnVwbG9hZCYmdi51cGxvYWQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLEJlKSksdi5yZWFkeVN0YXRlIT09di5ET05FJiZ2LmFib3J0KCl9fSkpKX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxj'@; put 'KShDcihtc2UpKX19c3RhdGlje3RoaXMuXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSl9fXJldHVybiBjfSkoKTtjb25zdCBEVz1uZXcgU3QoIiIpLE5jZT1uZXcgU3QoIiIse3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6KCk9PiJYU1JGLVRPS0VOIn0pLFZj'@; put 'ZT1uZXcgU3QoIiIse3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6KCk9PiJYLVhTUkYtVE9LRU4ifSk7Y2xhc3MgQmNle31sZXQgdkFlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgpe3RoaXMuZG9jPWEsdGhpcy5wbGF0Zm9ybT1kLHRoaXMuY29va2llTmFtZT1oLHRoaXMubGFz'@; put 'dENvb2tpZVN0cmluZz0iIix0aGlzLmxhc3RUb2tlbj1udWxsLHRoaXMucGFyc2VDb3VudD0wfWdldFRva2VuKCl7aWYoInNlcnZlciI9PT10aGlzLnBsYXRmb3JtKXJldHVybiBudWxsO2NvbnN0IGE9dGhpcy5kb2MuY29va2llfHwiIjtyZXR1cm4gYSE9PXRoaXMubGFzdENvb2tpZVN0cmlu'@; put 'ZyYmKHRoaXMucGFyc2VDb3VudCsrLHRoaXMubGFzdFRva2VuPXNzZShhLHRoaXMuY29va2llTmFtZSksdGhpcy5sYXN0Q29va2llU3RyaW5nPWEpLHRoaXMubGFzdFRva2VufXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpKENyKG1vKSxDcihpcyks'@; put 'Q3IoTmNlKSl9fXN0YXRpY3t0aGlzLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pfX1yZXR1cm4gY30pKCk7ZnVuY3Rpb24geUFlKGMsbCl7Y29uc3QgYT1jLnVybC50b0xvd2VyQ2FzZSgpO2lmKCFoaShEVyl8fCJHRVQiPT09Yy5tZXRob2R8fCJIRUFEIj09'@; put 'PWMubWV0aG9kfHxhLnN0YXJ0c1dpdGgoImh0dHA6Ly8iKXx8YS5zdGFydHNXaXRoKCJodHRwczovLyIpKXJldHVybiBsKGMpO2NvbnN0IGQ9aGkoQmNlKS5nZXRUb2tlbigpLGg9aGkoVmNlKTtyZXR1cm4gbnVsbCE9ZCYmIWMuaGVhZGVycy5oYXMoaCkmJihjPWMuY2xvbmUoe2hlYWRlcnM6'@; put 'Yy5oZWFkZXJzLnNldChoLGQpfSkpLGwoYyl9dmFyIHNtPWZ1bmN0aW9uKGMpe3JldHVybiBjW2MuSW50ZXJjZXB0b3JzPTBdPSJJbnRlcmNlcHRvcnMiLGNbYy5MZWdhY3lJbnRlcmNlcHRvcnM9MV09IkxlZ2FjeUludGVyY2VwdG9ycyIsY1tjLkN1c3RvbVhzcmZDb25maWd1cmF0aW9uPTJd'@; put 'PSJDdXN0b21Yc3JmQ29uZmlndXJhdGlvbiIsY1tjLk5vWHNyZlByb3RlY3Rpb249M109Ik5vWHNyZlByb3RlY3Rpb24iLGNbYy5Kc29ucFN1cHBvcnQ9NF09Ikpzb25wU3VwcG9ydCIsY1tjLlJlcXVlc3RzTWFkZVZpYVBhcmVudD01XT0iUmVxdWVzdHNNYWRlVmlhUGFyZW50IixjW2MuRmV0'@; put 'Y2g9Nl09IkZldGNoIixjfShzbXx8e30pO2Z1bmN0aW9uIHQ3KGMsbCl7cmV0dXJue1x1MDI3NWtpbmQ6YyxcdTAyNzVwcm92aWRlcnM6bH19ZnVuY3Rpb24gYkFlKC4uLmMpe2NvbnN0IGw9W1RXLEhjZSxQY2Use3Byb3ZpZGU6UVIsdXNlRXhpc3Rpbmc6UGNlfSx7cHJvdmlkZTplTCx1c2VF'@; put 'eGlzdGluZzpIY2V9LHtwcm92aWRlOnV4LHVzZVZhbHVlOnlBZSxtdWx0aTohMH0se3Byb3ZpZGU6RFcsdXNlVmFsdWU6ITB9LHtwcm92aWRlOkJjZSx1c2VDbGFzczp2QWV9XTtmb3IoY29uc3QgYSBvZiBjKWwucHVzaCguLi5hLlx1MDI3NXByb3ZpZGVycyk7cmV0dXJuIGZ1bmN0aW9uIE1m'@; put 'KGMpe3JldHVybntcdTAyNzVwcm92aWRlcnM6Y319KGwpfWNvbnN0IGpjZT1uZXcgU3QoIiIpO2xldCB3QWU9KCgpPT57Y2xhc3MgY3tzdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKX19c3RhdGlje3RoaXMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9KX1z'@; put 'dGF0aWN7dGhpcy5cdTAyNzVpbmo9QXIoe3Byb3ZpZGVyczpbYkFlKHQ3KHNtLkxlZ2FjeUludGVyY2VwdG9ycyxbe3Byb3ZpZGU6amNlLHVzZUZhY3Rvcnk6bEFlfSx7cHJvdmlkZTp1eCx1c2VFeGlzdGluZzpqY2UsbXVsdGk6ITB9XSkpXX0pfX1yZXR1cm4gY30pKCksS2NlPSgoKT0+e2Ns'@; put 'YXNzIGN7Y29uc3RydWN0b3IoYSxkKXt0aGlzLmh0dHA9YSx0aGlzLmFwcFN0b3JlU2VydmljZT1kLHRoaXMudXJsPSIiLHRoaXMuZHJpdmVVcmw9IiIsdGhpcy5odHRwT3B0aW9ucz17d2l0aENyZWRlbnRpYWxzOiEwfX1zZXR1cCgpe2NvbnN0IGE9dGhpcy5hcHBTdG9yZVNlcnZpY2UuZ2V0'@; put 'RGNBZGFwdGVyU2V0dGluZ3MoKTt0aGlzLnVybD1gJHthPy5zZXJ2ZXJVcmx8fCIifS9TQVNqc0FwaWAsdGhpcy5kcml2ZVVybD1gJHt0aGlzLnVybH0vZHJpdmVgfWdldFNlcnZlckluZm8oKXtyZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnVybH0vaW5mb2ApfWdldEZpbGVGcm9tRHJp'@; put 'dmUoYSl7cmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5kcml2ZVVybH0vZmlsZS8/X2ZpbGVQYXRoPSR7YX1gLHRoaXMuaHR0cE9wdGlvbnMpfWdldEZvbGRlckNvbnRlbnRzRnJvbURyaXZlKGEpe3JldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZHJpdmVVcmx9L2ZvbGRlcj9fZm9s'@; put 'ZGVyUGF0aD0ke2F9YCx0aGlzLmh0dHBPcHRpb25zKX1nZXRGaWxlVHJlZUZyb21Ecml2ZSgpe3JldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZHJpdmVVcmx9L2ZpbGV0cmVlYCx0aGlzLmh0dHBPcHRpb25zKX1nZXRGaWxlRnJvbUZpbGVUcmVlKGEpe3JldHVybiBuZXcgUHJvbWlzZSgo'@; put 'ZCxoKT0+e3RoaXMuZ2V0RmlsZVRyZWVGcm9tRHJpdmUoKS5zdWJzY3JpYmUoZj0+e2NvbnN0IE09dGhpcy5maW5kSW5UcmVlKGYudHJlZSxhKTtkKE0pfSl9KX1maW5kSW5UcmVlKGEsZCl7aWYoYS5yZWxhdGl2ZVBhdGg9PT1kKXJldHVybiBhO2ZvcihsZXQgaCBvZiBhLmNoaWxkcmVuKXtj'@; put 'b25zdCBmPXRoaXMuZmluZEluVHJlZShoLGQpO2lmKGYpcmV0dXJuIGZ9fXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpKENyKFRXKSxDcihROCkpfX1zdGF0aWN7dGhpcy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWMs'@; put 'cHJvdmlkZWRJbjoicm9vdCJ9KX19cmV0dXJuIGN9KSgpLElXPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkKXt0aGlzLmh0dHA9YSx0aGlzLmFwcFN0b3JlU2VydmljZT1kLHRoaXMudml5YUFwaXM9e0FuYWx5dGljc19JbnNpZ2h0czp7aW5zaWdodHM6Ii9pbnNpZ2h0cyJ9LFZpc3Vh'@; put 'bGlzYXRpb246e3JlcG9ydHM6Ii9yZXBvcnRzIixyZXBvcnRJbWFnZXM6Ii9yZXBvcnRJbWFnZXMiLHJlcG9ydFRyYW5zZm9ybXM6Ii9yZXBvcnRUcmFuc2Zvcm1zIix2aXN1YWxBbmFseXRpY3M6Ii92aXN1YWxBbmFseXRpY3MifSxDb21wdXRlOntqb2JzOiIvam9iRGVmaW5pdGlvbnMiLGpv'@; put 'YkV4ZWN1dGlvbjoiL2pvYkV4ZWN1dGlvbiIsY29udGV4dHM6Ii9jb21wdXRlL2NvbnRleHRzIn0sRGVjaXNpb25fTWFuYWdlbWVudDp7bW9kZWxNYW5hZ2VtZW50OiIvbW9kZWxNYW5hZ2VtZW50Iixtb2RlbFJlcG9zaXRvcnk6Ii9tb2RlbFJlcG9zaXRvcnkiLG1vZGVsUHVibGlzaDoiL21v'@; put 'ZGVsUHVibGlzaCIsbWljcm9hbmFseXRpY1Njb3JlOiIvbWljcm9hbmFseXRpY1Njb3JlIixkYXRhTWluaW5nOiIvZGF0YU1pbmluZyIsYnVzaW5lc3NSdWxlczoiL2J1c2luZXNzUnVsZXMiLHJlZmVyZW5jZURhdGE6Ii9yZWZlcmVuY2VEYXRhIix0cmVhdG1lbnREZWZpbml0aW9uczoiL3Ry'@; put 'ZWF0bWVudERlZmluaXRpb25zIixzdWJqZWN0Q29udGFjdHM6Ii9zdWJqZWN0Q29udGFjdHMiLGRlY2lzaW9uc1J1bnRpbWVCdWlsZGVyOiIvZGVjaXNpb25zUnVudGltZUJ1aWxkZXIifSxDb3JlX1NlcnZpY2VzOntmb2xkZXJzOiIvZm9sZGVycyIsZmlsZXM6Ii9maWxlcyIsYW5ub3RhdGlv'@; put 'bnM6Ii9hbm5vdGF0aW9ucyIsYXV0aG9yaXphdGlvbjoiL2F1dGhvcml6YXRpb24iLHJlbGF0aW9uc2hpcHM6Ii9yZWxhdGlvbnNoaXBzIixTQVNMb2dvbjoiL1NBU0xvZ29uIn0sQXV0b21hdGVkX01hY2hpbmVfTGVhcm5pbmc6e21sUGlwZWxpbmVBdXRvbWF0aW9uOiIvbWxQaXBlbGluZUF1'@; put 'dG9tYXRpb24ifSxPdGhlcjp7aWRlbnRpdGllczoiL2lkZW50aXRpZXMifX0sdGhpcy5zZXJ2ZXJVcmw9IiJ9c2V0dXAoKXtjb25zdCBhPXRoaXMuYXBwU3RvcmVTZXJ2aWNlLmdldERjQWRhcHRlclNldHRpbmdzKCk7dGhpcy5zZXJ2ZXJVcmw9YT8uc2VydmVyVXJsfHwiIn1nZXRBbGxDb2xs'@; put 'ZWN0aW9ucygpe3JldHVybiB0aGlzLnZpeWFBcGlzfWdldEJ5VXJsKGEpe3JldHVybiB0aGlzLmdldChgJHt0aGlzLnNlcnZlclVybH0ke2F9YCx7d2l0aENyZWRlbnRpYWxzOiEwfSl9Z2V0QnlDb2xsZWN0aW9uKGEpe3JldHVybiB0aGlzLmdldChgJHt0aGlzLnNlcnZlclVybH0ke2F9YCx7'@; put 'd2l0aENyZWRlbnRpYWxzOiEwfSl9Z2V0Q29tcHV0ZUNvbnRleHRzKCl7cmV0dXJuIHRoaXMuZ2V0KGAke3RoaXMuc2VydmVyVXJsfS9jb21wdXRlL2NvbnRleHRzYCx7d2l0aENyZWRlbnRpYWxzOiEwfSl9Z2V0Q29tcHV0ZUNvbnRleHRCeUlkKGEpe3JldHVybiB0aGlzLmdldChgJHt0aGlz'@; put 'LnNlcnZlclVybH0vY29tcHV0ZS9jb250ZXh0cy8ke2F9YCx7d2l0aENyZWRlbnRpYWxzOiEwfSl9Z2V0Rm9sZGVyQnlQYXRoKGEpe3JldHVybiB0aGlzLmdldChgJHt0aGlzLnNlcnZlclVybH0vZm9sZGVycy9mb2xkZXJzL0BpdGVtP3BhdGg9JHthfWAse3dpdGhDcmVkZW50aWFsczohMH0p'@; put 'fWdldEZvbGRlck1lbWJlcnMoYSl7cmV0dXJuIHRoaXMuZ2V0KGAke3RoaXMuc2VydmVyVXJsfS9mb2xkZXJzL2ZvbGRlcnMvJHthfS9tZW1iZXJzYCx7d2l0aENyZWRlbnRpYWxzOiEwfSl9Z2V0QWRtaW5Hcm91cHMoYT01ZTMpe3JldHVybiB0aGlzLmdldChgJHt0aGlzLnNlcnZlclVybH0v'@; put 'aWRlbnRpdGllcy9ncm91cHM/c29ydEJ5PW5hbWUmbGltaXQ9JHthfWAse3dpdGhDcmVkZW50aWFsczohMH0pfWdldEN1cnJlbnRVc2VyKCl7cmV0dXJuIHRoaXMuZ2V0KGAke3RoaXMuc2VydmVyVXJsfS9pZGVudGl0aWVzL3VzZXJzL0BjdXJyZW50VXNlcmAse3dpdGhDcmVkZW50aWFsczoh'@; put 'MH0pfWdldChhLGQpe3JldHVybiB0aGlzLmh0dHAuZ2V0KGEsZCkucGlwZShxOChoPT4oY29uc29sZS5sb2coInVybCIsYSksY29uc29sZS5sb2coImVyci5zdGF0dXMiLGguc3RhdHVzKSw0NDk9PT1oLnN0YXR1c3x8NDAxPT09aC5zdGF0dXM/dGhpcy5odHRwLmdldChhLGQpOkdNKCgpPT5o'@; put 'KSkpKX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKShDcihUVyksQ3IoUTgpKX19c3RhdGlje3RoaXMuXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSl9fXJldHVybiBjfSkoKSxWbz0o'@; put 'KCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYsdixNLEkpe3RoaXMuYXBwU3RvcmVTZXJ2aWNlPWEsdGhpcy51c2VyU2VydmljZT1kLHRoaXMuZXZlbnRTZXJ2aWNlPWgsdGhpcy5zYXNqc1NlcnZpY2U9Zix0aGlzLnNhc1ZpeWFTZXJ2aWNlPXYsdGhpcy5sb2dnZXJTZXJ2aWNlPU0s'@; put 'dGhpcy5yb3V0ZXI9SSx0aGlzLmxvYWRTdGFydHVwU2VydmljZUVtaXR0ZXI9bmV3IEtyLHRoaXMuaW5jb3JyZWN0U2l0ZUlkRW1pdHRlcj1uZXcgS3IsdGhpcy5yZXF1ZXN0U2l0ZUlkRW1pdHRlcj1uZXcgS3IsdGhpcy5zYXNqc0FkYXB0ZXI9bmV3KEVjZSgpKSx0aGlzLmFwcExvY0NoZWNr'@; put 'UGVuZGluZz0hMSx0aGlzLnNob3VsZExvZ2luPW5ldyBKcighMSksdGhpcy5saWNlbnNlX3NpdGVfaWQ9bmV3IEpyKG51bGwpfXNhc1NlcnZpY2VJbml0KCl7aWYodGhpcy5kY0FkYXB0ZXJTZXR0aW5ncz10aGlzLmFwcFN0b3JlU2VydmljZS5nZXREY0FkYXB0ZXJTZXR0aW5ncygpLHRoaXMu'@; put 'c2FzanNTZXJ2aWNlLnNldHVwKCksdGhpcy5zYXNWaXlhU2VydmljZS5zZXR1cCgpLHRoaXMuZGNBZGFwdGVyU2V0dGluZ3Mpe3N3aXRjaCh0aGlzLnNhc2pzQWRhcHRlcj1uZXcoRWNlKCkpKHRoaXMuZGNBZGFwdGVyU2V0dGluZ3MpLHRoaXMuZGNBZGFwdGVyU2V0dGluZ3Muc2VydmVyVHlw'@; put 'ZSl7Y2FzZSBOMC5ZLlNhc1ZpeWE6dGhpcy5jaGVja1ZpeWFEZXBsb3kodGhpcy5kY0FkYXB0ZXJTZXR0aW5ncy5hcHBMb2N8fCIiKTticmVhaztjYXNlIE4wLlkuU2FzOTp0aGlzLmxvYWRTdGFydHVwU2VydmljZUVtaXR0ZXIuZW1pdCgpO2JyZWFrO2Nhc2UgTjAuWS5TYXNqczp0aGlzLmNo'@; put 'ZWNrU2FzanNEZXBsb3koKX0iUmVkaXJlY3RlZCI9PT10aGlzLmdldFNhc2pzQ29uZmlnKCkubG9naW5NZWNoYW5pc20mJnRoaXMuc2hvdWxkTG9naW4uc3Vic2NyaWJlKGE9PnthJiZ0aGlzLnNhc2pzQWRhcHRlci5sb2dJbigpLnRoZW4oZD0+e2NvbnNvbGUubG9nKCJyZXMiLGQpfSl9KX1l'@; put 'bHNlIHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dJbmZvTW9kYWwoIkVycm9yIiwiQWRhcHRlciBzZXR0aW5ncyAoaW5kZXguaHRtbCkgYXJlIG5vdCBwcmVzZW50LiIpfXJlcXVlc3QoYSxkLGgsZil7cmV0dXJuIGZ8fChmPXt9KSx0aGlzLmxvZ2dlclNlcnZpY2UubG9nUmVxdWVzdERhdGEoYT0i'@; put 'c2VydmljZXMvIithLGQpLG5ldyBQcm9taXNlKCh2LE0pPT57dGhpcy5zYXNqc0FkYXB0ZXIucmVxdWVzdChhLGQsaCwoKT0+e3RoaXMuc2hvdWxkTG9naW4ubmV4dCghMCl9KS50aGVuKEk9Pntjb25zdCBHPXRoaXMuc2FzanNBZGFwdGVyLmdldFNhc1JlcXVlc3RzKCkuZmluZChyZT0+cmUu'@; put 'c2VydmljZUxpbms9PT1hKTtpZighMT09PUkubG9naW4mJih0aGlzLnNob3VsZExvZ2luLm5leHQoITApLE0oe2FkYXB0ZXJSZXNwb25zZTohMSxsb2c6Rz8ubG9nRmlsZX0pKSwhdGhpcy51c2VyU2VydmljZS51c2VyJiZJLk1GX0dFVFVTRVImJih0aGlzLnVzZXJTZXJ2aWNlLnVzZXI9e3Vz'@; put 'ZXJuYW1lOkkuTUZfR0VUVVNFUn0pLEkuU1lTU0lURSYmKHRoaXMucmVxdWVzdFNpdGVJZEVtaXR0ZXIuZW1pdChJLlNZU1NJVEUpLHRoaXMuZ2V0TGljZW5zZVNpdGVJZCgpLmxlbmd0aD4wJiYodGhpcy5nZXRMaWNlbnNlU2l0ZUlkKCkuaW5jbHVkZXMoSS5TWVNTSVRFKXx8dGhpcy5pbmNv'@; put 'cnJlY3RTaXRlSWRFbWl0dGVyLmVtaXQoSS5TWVNTSVRFKSkpLDQwND09PUkuc3RhdHVzJiZNKHthZGFwdGVyUmVzcG9uc2U6e01FU1NBR0U6SS5ib2R5fHwiU0FTIFJlc3BvbmRlZCB3aXRoIGVycm9yIn0sbG9nOkc/LmxvZ0ZpbGV9KSx0eXBlb2YgSS5zYXNqc0Fib3J0PCJ1Iil7Y29uc3Qg'@; put 'cmU9SSx1ZT1yZS5zYXNqc0Fib3J0WzBdLk1TRyx5ZT1yZS5zYXNqc0Fib3J0WzBdLk1BQztpZih1ZS5pbmNsdWRlcygiRGF0YV9Db250cm9sbGVyX1NldHRpbmdzKFN0b3JlZFByb2Nlc3MpIG5vdCBmb3VuZCIpKXJldHVybiB0aGlzLmV2ZW50U2VydmljZS5zdGFydHVwRGF0YUxvYWRlZCgp'@; put 'LHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9kZXBsb3kiKSx2b2lkIE0oe2FkYXB0ZXJSZXNwb25zZTp7ZXJyb3I6dWV9LGxvZzpHPy5sb2dGaWxlfSk7Zj8uc3VwcHJlc3NTdWNjZXNzQWJvcnRNb2RhbHx8dGhpcy5ldmVudFNlcnZpY2Uuc2hvd0Fib3J0TW9kYWwoYS5yZXBsYWNlKCJz'@; put 'ZXJ2aWNlcy8iLCIiKSx1ZSx7U1lTV0FSTklOR1RFWFQ6cmUuU1lTV0FSTklOR1RFWFQsU1lTRVJST1JURVhUOnJlLlNZU0VSUk9SVEVYVCxNQUM6eWV9KSxNKHthZGFwdGVyUmVzcG9uc2U6e2Vycm9yOnVlfSxsb2c6Rz8ubG9nRmlsZX0pfXYoe2FkYXB0ZXJSZXNwb25zZTpJLGxvZzpHPy5s'@; put 'b2dGaWxlfSl9LEk9Pntjb25zb2xlLmVycm9yKEkpO2NvbnN0IEc9dGhpcy5zYXNqc0FkYXB0ZXIuZ2V0U2FzUmVxdWVzdHMoKS5maW5kKHJlPT5yZS5zZXJ2aWNlTGluaz09PWEpO2lmKEkuZXJyb3Ipe2xldCB1ZSxyZT1JLmVycm9yLm1lc3NhZ2U7SS5lcnJvci5kZXRhaWxzJiZJLmVycm9y'@; put 'LmRldGFpbHMubG9nJiYodWU9SS5lcnJvci5kZXRhaWxzLmxvZyksKCFyZXx8cmUudHJpbSgpLmxlbmd0aDwxKSYmKHJlPSJTQVMgU2VydmljZSBlcnJvciBvY3VycmVkIiksZj8uc3VwcHJlc3NFcnJvckFib3J0TW9kYWx8fHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dBYm9ydE1vZGFsKGEscmUs'@; put 'e0xPRzp1ZX0sIlJlcXVlc3QgZXJyb3IiKSxNKHthZGFwdGVyUmVzcG9uc2U6e2Vycm9yOnJlfSxsb2c6Rz8ubG9nRmlsZX0pfU0oe2FkYXB0ZXJSZXNwb25zZTpJLGxvZzpHPy5sb2dGaWxlfSl9KX0pfXVwbG9hZEZpbGUoYSxkLGgpe3JldHVybiBuZXcgUHJvbWlzZSgoZix2KT0+e3RoaXMu'@; put 'c2FzanNBZGFwdGVyLnVwbG9hZEZpbGUoYSxkLGgpLnRoZW4oTT0+e2NvbnN0IEk9dGhpcy5zYXNqc0FkYXB0ZXIuZ2V0U2FzUmVxdWVzdHMoKS5maW5kKEc9PiJzZXJ2aWNlcy9lZGl0b3JzL2xvYWRmaWxlIj09PUcuc2VydmljZUxpbmspO2Yoe2FkYXB0ZXJSZXNwb25zZTpNLGxvZzpJPy5s'@; put 'b2dGaWxlfSl9LE09Pntjb25zdCBJPXRoaXMuc2FzanNBZGFwdGVyLmdldFNhc1JlcXVlc3RzKCkuZmluZChHPT4ic2VydmljZXMvZWRpdG9ycy9sb2FkZmlsZSI9PT1HLnNlcnZpY2VMaW5rKTt2KHtyZXNwb25zZTpNLGxvZzpJPy5sb2dGaWxlfSl9KX0pfWxvZ2luKGEsZCl7dmFyIGg9dGhp'@; put 'cztyZXR1cm4gUShmdW5jdGlvbiooKXtjb25zdCBmPWguZ2V0U2VydmVyVHlwZSgpPT09TjAuWS5TYXNqcz8iY2xpZW50SUQxIjp2b2lkIDA7cmV0dXJuIGguc2FzanNBZGFwdGVyLmxvZ0luKGEsZCxmKS50aGVuKHY9Pih2LmlzTG9nZ2VkSW4mJihoLnVzZXJTZXJ2aWNlLnVzZXI9e3VzZXJu'@; put 'YW1lOnYudXNlck5hbWV9LGguYXBwTG9jQ2hlY2tQZW5kaW5nJiYoaC5jaGVja1ZpeWFEZXBsb3koaC5kY0FkYXB0ZXJTZXR0aW5ncz8uYXBwTG9jfHwiIiksaC5hcHBMb2NDaGVja1BlbmRpbmc9ITEpKSxoLnNob3VsZExvZ2luLm5leHQoIXYuaXNMb2dnZWRJbiksdi5pc0xvZ2dlZEluKSx2'@; put 'PT4oY29uc29sZS5lcnJvcih2KSxoLnNob3VsZExvZ2luLm5leHQoITApLCExKSkuY2F0Y2godj0+KDQwMz09PXYmJmNvbnNvbGUuZXJyb3IoIkludmFsaWQgaG9zdCIpLCExKSl9KSgpfXJlbG9hZFN0YXJ0dXBEYXRhKCl7dGhpcy5sb2FkU3RhcnR1cFNlcnZpY2VFbWl0dGVyLmVtaXQoKX1n'@; put 'ZXRMaWNlbnNlU2l0ZUlkKCl7cmV0dXJuIHRoaXMubGljZW5zZV9zaXRlX2lkLnZhbHVlfHxbXX1zZXRMaWNlbnNlU2l0ZUlkKGEpe3RoaXMubGljZW5zZV9zaXRlX2lkLm5leHQoIm9iamVjdCI9PXR5cGVvZiBhP2E6W2FdKX1jaGVja1Nhc2pzRGVwbG95KCl7dmFyIGE9dGhpcztyZXR1cm4g'@; put 'UShmdW5jdGlvbiooKXtjb25zdCBoPWAke2EuZ2V0U2FzanNDb25maWcoKS5hcHBMb2N9L3NlcnZpY2VzL2FkbWluYDthLnNhc2pzU2VydmljZS5nZXRGb2xkZXJDb250ZW50c0Zyb21Ecml2ZShoKS5zdWJzY3JpYmUoZj0+e2YuZmlsZXMuaW5jbHVkZXMoIm1ha2VkYXRhLnNhcyIpPyhhLmV2'@; put 'ZW50U2VydmljZS5zdGFydHVwRGF0YUxvYWRlZCgpLGEucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9kZXBsb3kiKSk6KGEubG9hZFN0YXJ0dXBTZXJ2aWNlRW1pdHRlci5lbWl0KCksYS5yb3V0ZXIudXJsLmluY2x1ZGVzKCJkZXBsb3kiKSYmYS5yb3V0ZXIubmF2aWdhdGVCeVVybCgiLyIpKX0s'@; put 'Zj0+e2NvbnN0IHY9InN0cmluZyI9PXR5cGVvZiBmLmVycm9yP2YuZXJyb3I6SlNPTi5zdHJpbmdpZnkoZi5lcnJvcnx8Zik7di5pbmNsdWRlcygiVW5hdXRob3JpemVkIik/KGEuc2hvdWxkTG9naW4ubmV4dCghMCksYS5zaG91bGRMb2dpbi5zdWJzY3JpYmUoTT0+eyExPT09TSYmbG9jYXRp'@; put 'b24ucmVsb2FkKCl9KSk6di5pbmNsdWRlcygiRm9sZGVyIGRvZXNuJ3QgZXhpc3QuIikmJihjb25zb2xlLndhcm4oIlNBU2pzIFNBUyBzZXJ2aWNlcyBhcmUgbm90IHByZXNlbnQgb24gdGhlIGN1cnJlbnQgYXBwTG9jLiIpLGEuZXZlbnRTZXJ2aWNlLnN0YXJ0dXBEYXRhTG9hZGVkKCksYS5y'@; put 'b3V0ZXIubmF2aWdhdGVCeVVybCgiL2RlcGxveSIpKX0pfSkoKX1zYXNqc01ha2VkYXRhQ2hlY2tpbmcoKXt2YXIgYT10aGlzO3JldHVybiBRKGZ1bmN0aW9uKigpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbigpe3ZhciBkPVEoZnVuY3Rpb24qKGgsZil7YS5jaGVja2luZ0ludGVydmFs'@; put 'PXNldEludGVydmFsKFEoZnVuY3Rpb24qKCl7YS5zYXNqc01ha2VkYXRhU3VjY2Vzc2Z1bGwoKS50aGVuKHY9Pnt2JiYoY2xlYXJJbnRlcnZhbChhLmNoZWNraW5nSW50ZXJ2YWwpLGgodikpfSkuY2F0Y2godj0+e2NsZWFySW50ZXJ2YWwoYS5jaGVja2luZ0ludGVydmFsKSxmKHYpfSl9KSwx'@; put 'ZTMpfSk7cmV0dXJuIGZ1bmN0aW9uKGgsZil7cmV0dXJuIGQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSl9KSgpfXNhc2pzTWFrZWRhdGFTdWNjZXNzZnVsbCgpe3ZhciBhPXRoaXM7cmV0dXJuIFEoZnVuY3Rpb24qKCl7cmV0dXJuIG5ldyBQcm9taXNlKChkLGgpPT57Y29uc3Qgdj1gJHth'@; put 'LmdldFNhc2pzQ29uZmlnKCkuYXBwTG9jfS9zZXJ2aWNlcy9hZG1pbmA7YS5zYXNqc1NlcnZpY2UuZ2V0Rm9sZGVyQ29udGVudHNGcm9tRHJpdmUodikuc3Vic2NyaWJlKE09PntNLmZpbGVzLmluY2x1ZGVzKCJtYWtlZGF0YS5zYXMiKT9kKCExKTpkKCEwKX0sTT0+eygic3RyaW5nIj09dHlw'@; put 'ZW9mIE0uZXJyb3I/TS5lcnJvcjpKU09OLnN0cmluZ2lmeShNLmVycm9yfHxNKSkuaW5jbHVkZXMoIkZvbGRlciBkb2Vzbid0IGV4aXN0LiIpJiZoKCl9KX0pfSkoKX1jaGVja1ZpeWFEZXBsb3koYSl7dmFyIGQ9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXtsZXQgdixmPSExO2lmKHR5cGVv'@; put 'ZiBkLnNhc2pzQWRhcHRlci5nZXRGb2xkZXI8InUiKXtjb25zdCBNPXlpZWxkIGQuYXBwTG9jQ2hlY2soYSk7Zj1NLmZvdW5kLHY9TS5lcnJvck1lc3NhZ2V9ZWxzZSBmPXlpZWxkIGQuYXBwTG9jQ2hlY2tQcmVBeGlvc2RBZGFwdGVyKGEpO2Y/ZC52aXlhTWFrZWRhdGFTdWNjZXNzZnVsbCgp'@; put 'LnRoZW4oTT0+e00/ZC5sb2FkU3RhcnR1cFNlcnZpY2VFbWl0dGVyLmVtaXQoKTooZC5ldmVudFNlcnZpY2Uuc3RhcnR1cERhdGFMb2FkZWQoKSxkLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvZGVwbG95IikpfSxNPT57Y29uc29sZS5lcnJvcigiRXJyb3Igd2hpbGUgbG9va2luZyBmb3IgdGhl'@; put 'IGZpbGU6IG1ha2VkYXRhLnNhcyIsTSl9KTpkLmV2ZW50U2VydmljZS5zaG93SW5mb01vZGFsKCJFcnJvciIsKHZ8fCJWaXlhIHNlcnZpY2VzIGFyZSBub3QgcHJlc2VudCBvbiB0aGUgY3VycmVudCBhcHBMb2MsIG9yIEFQSSBub3QgcmVhY2hhYmxlLiBDaGVjayB0aGUgQURBUFRFUiBjb25m'@; put 'aWd1cmF0aW9uLiIpK2BcbkFwcExvYzogJHthfWApfSkoKX12aXlhTWFrZWRhdGFTdWNjZXNzZnVsbCgpe3ZhciBhPXRoaXM7cmV0dXJuIFEoZnVuY3Rpb24qKCl7cmV0dXJuIG5ldyBQcm9taXNlKChkLGgpPT57Y29uc3QgZj1hLmdldFNhc2pzQ29uZmlnKCksdj1gJHtmLmFwcExvY30vc2Vy'@; put 'dmljZXMvYWRtaW5gO2Euc2FzVml5YVNlcnZpY2UuZ2V0Rm9sZGVyQnlQYXRoKHYpLnN1YnNjcmliZShNPT57Y29uc3QgST1NLmlkO0l8fChjb25zb2xlLmVycm9yKGBGb2xkZXIgSUQgaXMgbm90IHByZXNlbnQuICR7dn1gLGYpLGQoITEpKSxhLnNhc1ZpeWFTZXJ2aWNlLmdldEZvbGRlck1l'@; put 'bWJlcnMoSSkuc3Vic2NyaWJlKEc9PntHLml0ZW1zLnNvbWUocmU9PiJtYWtlZGF0YSI9PT1yZS5uYW1lKT9kKCExKTpkKCEwKX0sRz0+e2NvbnNvbGUuZXJyb3IoIkVycm9yIGdldHRpbmcgZm9sZGVyIGNvbnRlbnRzIixHKSxoKCl9KX0sTT0+e2NvbnNvbGUud2FybigiRXJyb3IgZ2V0dGlu'@; put 'ZyBmb2xkZXIgaW5mbyIsTSksaChNKX0pfSl9KSgpfWFwcExvY0NoZWNrKGEpe3ZhciBkPXRoaXM7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKCl7dmFyIGg9UShmdW5jdGlvbiooZix2KXtsZXQgSSxNPSIiO3RyeXtJPXlpZWxkIGQuc2FzanNBZGFwdGVyLmdldEZvbGRlcihhKX1jYXRj'@; put 'aChHKXsiTG9naW5SZXF1aXJlZEVycm9yIj09PUcubmFtZT8oZC5hcHBMb2NDaGVja1BlbmRpbmc9ITAsZC5zaG91bGRMb2dpbi5uZXh0KCEwKSxmKHtmb3VuZDohMX0pKTpNPSJOb3RGb3VuZGVFcnJvciI9PT1HLm5hbWU/Ry5tZXNzYWdlOiJWaXlhIHNlcnZpY2VzIGFyZSBub3QgcHJlc2Vu'@; put 'dCBvbiB0aGUgY3VycmVudCBhcHBMb2MsIG9yIEFQSSBub3QgcmVhY2hhYmxlLiBDaGVjayB0aGUgQURBUFRFUiBjb25maWd1cmF0aW9uLiJ9aWYoTS5sZW5ndGgpcmV0dXJuIGNvbnNvbGUud2FybihNKSxmKHtmb3VuZDohMSxlcnJvck1lc3NhZ2U6TX0pO2Yoe2ZvdW5kOiEwfSl9KTtyZXR1'@; put 'cm4gZnVuY3Rpb24oZix2KXtyZXR1cm4gaC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKX1hcHBMb2NDaGVja1ByZUF4aW9zZEFkYXB0ZXIoYSl7cmV0dXJuIG5ldyBQcm9taXNlKChkLGgpPT57bGV0IHY9ITE7cmV0dXJuIGZldGNoKGAvZm9sZGVycy9mb2xkZXJzL0BpdGVtP3BhdGg9JHth'@; put 'fWApLnRoZW4oTT0+KDQwND09PU0uc3RhdHVzJiYodj0hMCksTS50ZXh0KCkpKS50aGVuKE09PntpZih0aGlzLmlzTG9naW5SZXF1aXJlZChNKSl0aGlzLmFwcExvY0NoZWNrUGVuZGluZz0hMCx0aGlzLnNob3VsZExvZ2luLm5leHQoITApO2Vsc2V7aWYodilyZXR1cm4gY29uc29sZS53YXJu'@; put 'KCJWaXlhIHNlcnZpY2VzIGFyZSBub3QgcHJlc2VudCBvbiB0aGUgY3VycmVudCBhcHBMb2MuIiksdGhpcy5ldmVudFNlcnZpY2Uuc3RhcnR1cERhdGFMb2FkZWQoKSx0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvZGVwbG95IiksZCghMSk7bGV0IEk9bnVsbDt0cnl7ST1KU09OLnBhcnNl'@; put 'KE0pfWNhdGNoe31pZihJJiZJLmh0dHBTdGF0dXNDb2RlJiY0MDQ9PT1JLmh0dHBTdGF0dXNDb2RlKXJldHVybiBjb25zb2xlLndhcm4oIlZpeWEgc2VydmljZXMgYXJlIG5vdCBwcmVzZW50IG9uIHRoZSBjdXJyZW50IGFwcExvYy4iKSx0aGlzLmV2ZW50U2VydmljZS5zdGFydHVwRGF0YUxv'@; put 'YWRlZCgpLHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9kZXBsb3kiKSxkKCExKTtkKCEwKX19KS5jYXRjaChNPT57ZCghMSl9KX0pfWlzTG9naW5SZXF1aXJlZChhKXtyZXR1cm4vPGZvcm0uK2FjdGlvbj0iKC4qTG9nb25bXiJdKikuKj4vZ20udGVzdChhKX1sb2dvdXQoKXt0aGlzLnNh'@; put 'c2pzQWRhcHRlci5sb2dPdXQoKS50aGVuKCgpPT57bG9jYXRpb24ucmVsb2FkKCl9KX1nZXRTYXNqc0NvbmZpZygpe3JldHVybiB0aGlzLnNhc2pzQWRhcHRlci5nZXRTYXNqc0NvbmZpZygpfWdldFNhc1JlcXVlc3RzKCl7cmV0dXJuIHRoaXMuc2FzanNBZGFwdGVyLmdldFNhc1JlcXVlc3Rz'@; put 'KCl9c2V0RGVidWdTdGF0ZShhKXt0aGlzLnNhc2pzQWRhcHRlci5zZXREZWJ1Z1N0YXRlKGEpfWdldFNhc2pzSW5zdGFuY2UoKXtyZXR1cm4gdGhpcy5zYXNqc0FkYXB0ZXJ9Z2V0U2VydmVyVHlwZSgpe2NvbnN0IGE9dGhpcy5zYXNqc0FkYXB0ZXIuZ2V0U2FzanNDb25maWcoKTtyZXR1cm4g'@; put 'YS5zZXJ2ZXJUeXBlP2Euc2VydmVyVHlwZToiU0FTVklZQSJ9Z2V0RXhlY3V0aW9uUGF0aCgpe2NvbnN0IGE9dGhpcy5zYXNqc0FkYXB0ZXIuZ2V0U2FzanNDb25maWcoKTtzd2l0Y2goYS5zZXJ2ZXJUeXBlKXtjYXNlIE4wLlkuU2FzVml5YTpyZXR1cm4gYS5wYXRoU0FTVml5YTtjYXNlIE4w'@; put 'LlkuU2FzOTpyZXR1cm4gYS5wYXRoU0FTOTtjYXNlIE4wLlkuU2FzanM6cmV0dXJuIGEucGF0aFNBU0pTfX1nZXRGaWxlQ29udGVudChhLGQpe3JldHVybiB0aGlzLnNhc2pzQWRhcHRlci5nZXRGaWxlQ29udGVudChhLGQpfXVwZGF0ZUZpbGVDb250ZW50KGEsZCxoKXtyZXR1cm4gdGhpcy5z'@; put 'YXNqc0FkYXB0ZXIudXBkYXRlRmlsZUNvbnRlbnQoYSxkLGgpfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpKENyKFE4KSxDcihNVyksQ3IobWMpLENyKEtjZSksQ3IoSVcpLENyKFNkKSxDcihMbykpfX1zdGF0aWN7dGhpcy5cdTAyNzVwcm92PXJu'@; put 'KHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KX19cmV0dXJuIGN9KSgpLFNkPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5pbmplY3Rvcj1hfWxvZyhhLGQpe3RoaXMuaW5qZWN0U2FzU2VydmljZSgpLHRoaXMuc2FzanNDb25maWc/LmRl'@; put 'YnVnJiYoZD9jb25zb2xlLmxvZyhhLGQpOmNvbnNvbGUubG9nKGEpKX1lcnJvcihhLGQpe2NvbnNvbGUuZXJyb3IoYSxkKX1sb2dSZXF1ZXN0RGF0YShhLGQpe2lmKHRoaXMubG9nKCItLS0gQWRhcHRlciBSZXF1ZXN0IElucHV0IC0tLSIpLHRoaXMubG9nKGEpLGQpe2ZvcihsZXQgaCBvZiBP'@; put 'YmplY3Qua2V5cyhkKSl0aGlzLmxvZyhoLGRbaF0pO3RoaXMubG9nKCItLS0tLS0iKX1lbHNlIHRoaXMubG9nKCJubyBkYXRhIHNlbnQiKX1pbmplY3RTYXNTZXJ2aWNlKCl7aWYoIXRoaXMuc2FzanNDb25maWcpe2NvbnN0IGE9dGhpcy5pbmplY3Rvci5nZXQoVm8pO3RoaXMuc2FzanNDb25m'@; put 'aWc9YS5nZXRTYXNqc0NvbmZpZygpfX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKShDcihEbykpfX1zdGF0aWN7dGhpcy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KX19cmV0dXJu'@; put 'IGN9KSgpO2NvbnN0IFhjZT1mdW5jdGlvbiBrQWUoYyxsKXtyZXR1cm4gYz09PWx8fGMhPWMmJmwhPWx9LGlMPWZ1bmN0aW9uIERBZShjLGwpe2Zvcih2YXIgYT1jLmxlbmd0aDthLS07KWlmKFhjZShjW2FdWzBdLGwpKXJldHVybiBhO3JldHVybi0xfTt2YXIgUkFlPUFycmF5LnByb3RvdHlw'@; put 'ZS5zcGxpY2U7ZnVuY3Rpb24gZmIoYyl7dmFyIGw9LTEsYT1udWxsPT1jPzA6Yy5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK2w8YTspe3ZhciBkPWNbbF07dGhpcy5zZXQoZFswXSxkWzFdKX19ZmIucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uIFRBZSgpe3RoaXMuX19kYXRhX189W10sdGhp'@; put 'cy5zaXplPTB9LGZiLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24gTEFlKGMpe3ZhciBsPXRoaXMuX19kYXRhX18sYT1pTChsLGMpO3JldHVybiEoYTwwfHwoYT09bC5sZW5ndGgtMT9sLnBvcCgpOlJBZS5jYWxsKGwsYSwxKSwtLXRoaXMuc2l6ZSwwKSl9LGZiLnByb3RvdHlwZS5nZXQ9ZnVu'@; put 'Y3Rpb24gUEFlKGMpe3ZhciBsPXRoaXMuX19kYXRhX18sYT1pTChsLGMpO3JldHVybiBhPDA/dm9pZCAwOmxbYV1bMV19LGZiLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24gSEFlKGMpe3JldHVybiBpTCh0aGlzLl9fZGF0YV9fLGMpPi0xfSxmYi5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uIFZBZShj'@; put 'LGwpe3ZhciBhPXRoaXMuX19kYXRhX18sZD1pTChhLGMpO3JldHVybiBkPDA/KCsrdGhpcy5zaXplLGEucHVzaChbYyxsXSkpOmFbZF1bMV09bCx0aGlzfTtjb25zdCBhTD1mYixxY2U9Im9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbCYmZ2xvYmFsLk9iamVjdD09PU9iamVjdCYmZ2xv'@; put 'YmFsO3ZhciBYQWU9Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmJiZzZWxmLk9iamVjdD09PU9iamVjdCYmc2VsZjtjb25zdCBicD1xY2V8fFhBZXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxvbT1icC5TeW1ib2w7dmFyIEpjZT1PYmplY3QucHJvdG90eXBlLFFBZT1KY2UuaGFzT3du'@; put 'UHJvcGVydHksZWtlPUpjZS50b1N0cmluZyxkeD1vbT9vbS50b1N0cmluZ1RhZzp2b2lkIDA7dmFyIGlrZT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO3ZhciBRY2U9b20/b20udG9TdHJpbmdUYWc6dm9pZCAwO2NvbnN0IHBiPWZ1bmN0aW9uIGNrZShjKXtyZXR1cm4gbnVsbD09Yz92b2lk'@; put 'IDA9PT1jPyJbb2JqZWN0IFVuZGVmaW5lZF0iOiJbb2JqZWN0IE51bGxdIjpRY2UmJlFjZSBpbiBPYmplY3QoYyk/ZnVuY3Rpb24gdGtlKGMpe3ZhciBsPVFBZS5jYWxsKGMsZHgpLGE9Y1tkeF07dHJ5e2NbZHhdPXZvaWQgMDt2YXIgZD0hMH1jYXRjaHt9dmFyIGg9ZWtlLmNhbGwoYyk7cmV0'@; put 'dXJuIGQmJihsP2NbZHhdPWE6ZGVsZXRlIGNbZHhdKSxofShjKTpmdW5jdGlvbiBha2UoYyl7cmV0dXJuIGlrZS5jYWxsKGMpfShjKX0saHg9ZnVuY3Rpb24gdWtlKGMpe3ZhciBsPXR5cGVvZiBjO3JldHVybiBudWxsIT1jJiYoIm9iamVjdCI9PWx8fCJmdW5jdGlvbiI9PWwpfSxldWU9ZnVu'@; put 'Y3Rpb24gZ2tlKGMpe2lmKCFoeChjKSlyZXR1cm4hMTt2YXIgbD1wYihjKTtyZXR1cm4iW29iamVjdCBGdW5jdGlvbl0iPT1sfHwiW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iPT1sfHwiW29iamVjdCBBc3luY0Z1bmN0aW9uXSI9PWx8fCJbb2JqZWN0IFByb3h5XSI9PWx9LFJXPWJwWyJf'@; put 'X2NvcmUtanNfc2hhcmVkX18iXTt2YXIgdHVlPWZ1bmN0aW9uKCl7dmFyIGM9L1teLl0rJC8uZXhlYyhSVyYmUlcua2V5cyYmUlcua2V5cy5JRV9QUk9UT3x8IiIpO3JldHVybiBjPyJTeW1ib2woc3JjKV8xLiIrYzoiIn0oKTt2YXIgX2tlPUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZztj'@; put 'b25zdCBuNz1mdW5jdGlvbiB3a2UoYyl7aWYobnVsbCE9Yyl7dHJ5e3JldHVybiBfa2UuY2FsbChjKX1jYXRjaHt9dHJ5e3JldHVybiBjKyIifWNhdGNoe319cmV0dXJuIiJ9O3ZhciBTa2U9L15cW29iamVjdCAuKz9Db25zdHJ1Y3RvclxdJC8sQWtlPVJlZ0V4cCgiXiIrRnVuY3Rpb24ucHJv'@; put 'dG90eXBlLnRvU3RyaW5nLmNhbGwoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSkucmVwbGFjZSgvW1xcXiQuKis/KClbXF17fXxdL2csIlxcJCYiKS5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcKCl8IGZvciAuKz8oPz1cXFxdKS9nLCIkMS4qPyIp'@; put 'KyIkIik7Y29uc3QgRGtlPWZ1bmN0aW9uIGtrZShjKXtyZXR1cm4hKCFoeChjKXx8ZnVuY3Rpb24gdmtlKGMpe3JldHVybiEhdHVlJiZ0dWUgaW4gY30oYykpJiYoZXVlKGMpP0FrZTpTa2UpLnRlc3QobjcoYykpfSxyNz1mdW5jdGlvbiBMa2UoYyxsKXt2YXIgYT1mdW5jdGlvbiBJa2UoYyxs'@; put 'KXtyZXR1cm4gYz8uW2xdfShjLGwpO3JldHVybiBEa2UoYSk/YTp2b2lkIDB9LGZ4PXI3KGJwLCJNYXAiKSxweD1yNyhPYmplY3QsImNyZWF0ZSIpO3ZhciB6a2U9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgWWtlPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7'@; put 'ZnVuY3Rpb24gZ2IoYyl7dmFyIGw9LTEsYT1udWxsPT1jPzA6Yy5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK2w8YTspe3ZhciBkPWNbbF07dGhpcy5zZXQoZFswXSxkWzFdKX19Z2IucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uIEZrZSgpe3RoaXMuX19kYXRhX189cHg/cHgobnVsbCk6e30s'@; put 'dGhpcy5zaXplPTB9LGdiLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24gTmtlKGMpe3ZhciBsPXRoaXMuaGFzKGMpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1tjXTtyZXR1cm4gdGhpcy5zaXplLT1sPzE6MCxsfSxnYi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uIFVrZShjKXt2YXIgbD10aGlzLl9f'@; put 'ZGF0YV9fO2lmKHB4KXt2YXIgYT1sW2NdO3JldHVybiJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIj09PWE/dm9pZCAwOmF9cmV0dXJuIHprZS5jYWxsKGwsYyk/bFtjXTp2b2lkIDB9LGdiLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24gR2tlKGMpe3ZhciBsPXRoaXMuX19kYXRhX187cmV0dXJu'@; put 'IHB4P3ZvaWQgMCE9PWxbY106WWtlLmNhbGwobCxjKX0sZ2IucHJvdG90eXBlLnNldD1mdW5jdGlvbiBYa2UoYyxsKXt2YXIgYT10aGlzLl9fZGF0YV9fO3JldHVybiB0aGlzLnNpemUrPXRoaXMuaGFzKGMpPzA6MSxhW2NdPXB4JiZ2b2lkIDA9PT1sPyJfX2xvZGFzaF9oYXNoX3VuZGVmaW5l'@; put 'ZF9fIjpsLHRoaXN9O2NvbnN0IG51ZT1nYixzTD1mdW5jdGlvbiBuRGUoYyxsKXt2YXIgYT1jLl9fZGF0YV9fO3JldHVybiBmdW5jdGlvbiBlRGUoYyl7dmFyIGw9dHlwZW9mIGM7cmV0dXJuInN0cmluZyI9PWx8fCJudW1iZXIiPT1sfHwic3ltYm9sIj09bHx8ImJvb2xlYW4iPT1sPyJfX3By'@; put 'b3RvX18iIT09YzpudWxsPT09Y30obCk/YVsic3RyaW5nIj09dHlwZW9mIGw/InN0cmluZyI6Imhhc2giXTphLm1hcH07ZnVuY3Rpb24gbWIoYyl7dmFyIGw9LTEsYT1udWxsPT1jPzA6Yy5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK2w8YTspe3ZhciBkPWNbbF07dGhpcy5zZXQoZFswXSxk'@; put 'WzFdKX19bWIucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uIEprZSgpe3RoaXMuc2l6ZT0wLHRoaXMuX19kYXRhX189e2hhc2g6bmV3IG51ZSxtYXA6bmV3KGZ4fHxhTCksc3RyaW5nOm5ldyBudWV9fSxtYi5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uIHJEZShjKXt2YXIgbD1zTCh0aGlzLGMp'@; put 'LmRlbGV0ZShjKTtyZXR1cm4gdGhpcy5zaXplLT1sPzE6MCxsfSxtYi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uIGFEZShjKXtyZXR1cm4gc0wodGhpcyxjKS5nZXQoYyl9LG1iLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24gb0RlKGMpe3JldHVybiBzTCh0aGlzLGMpLmhhcyhjKX0sbWIucHJvdG90'@; put 'eXBlLnNldD1mdW5jdGlvbiBjRGUoYyxsKXt2YXIgYT1zTCh0aGlzLGMpLGQ9YS5zaXplO3JldHVybiBhLnNldChjLGwpLHRoaXMuc2l6ZSs9YS5zaXplPT1kPzA6MSx0aGlzfTtjb25zdCBMVz1tYjtmdW5jdGlvbiB2YihjKXt2YXIgbD10aGlzLl9fZGF0YV9fPW5ldyBhTChjKTt0aGlzLnNp'@; put 'emU9bC5zaXplfXZiLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbiBqQWUoKXt0aGlzLl9fZGF0YV9fPW5ldyBhTCx0aGlzLnNpemU9MH0sdmIucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbiBVQWUoYyl7dmFyIGw9dGhpcy5fX2RhdGFfXyxhPWwuZGVsZXRlKGMpO3JldHVybiB0aGlzLnNpemU9'@; put 'bC5zaXplLGF9LHZiLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24gV0FlKGMpe3JldHVybiB0aGlzLl9fZGF0YV9fLmdldChjKX0sdmIucHJvdG90eXBlLmhhcz1mdW5jdGlvbiBHQWUoYyl7cmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKGMpfSx2Yi5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uIGhEZShj'@; put 'LGwpe3ZhciBhPXRoaXMuX19kYXRhX187aWYoYSBpbnN0YW5jZW9mIGFMKXt2YXIgZD1hLl9fZGF0YV9fO2lmKCFmeHx8ZC5sZW5ndGg8MTk5KXJldHVybiBkLnB1c2goW2MsbF0pLHRoaXMuc2l6ZT0rK2Euc2l6ZSx0aGlzO2E9dGhpcy5fX2RhdGFfXz1uZXcgTFcoZCl9cmV0dXJuIGEuc2V0'@; put 'KGMsbCksdGhpcy5zaXplPWEuc2l6ZSx0aGlzfTtjb25zdCBwRGU9dmI7dmFyIHZEZT1mdW5jdGlvbigpe3RyeXt2YXIgYz1yNyhPYmplY3QsImRlZmluZVByb3BlcnR5Iik7cmV0dXJuIGMoe30sIiIse30pLGN9Y2F0Y2h7fX0oKTtjb25zdCBydWU9dkRlLGl1ZT1mdW5jdGlvbiB5RGUoYyxs'@; put 'LGEpeyJfX3Byb3RvX18iPT1sJiZydWU/cnVlKGMsbCx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6YSx3cml0YWJsZTohMH0pOmNbbF09YX07dmFyIF9EZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2NvbnN0IGF1ZT1mdW5jdGlvbiB3RGUoYyxsLGEpe3Zh'@; put 'ciBkPWNbbF07KCFfRGUuY2FsbChjLGwpfHwhWGNlKGQsYSl8fHZvaWQgMD09PWEmJiEobCBpbiBjKSkmJml1ZShjLGwsYSl9LG9MPWZ1bmN0aW9uIENEZShjLGwsYSxkKXt2YXIgaD0hYTthfHwoYT17fSk7Zm9yKHZhciBmPS0xLHY9bC5sZW5ndGg7KytmPHY7KXt2YXIgTT1sW2ZdLEk9ZD9k'@; put 'KGFbTV0sY1tNXSxNLGEsYyk6dm9pZCAwO3ZvaWQgMD09PUkmJihJPWNbTV0pLGg/aXVlKGEsTSxJKTphdWUoYSxNLEkpfXJldHVybiBhfSx5Yj1mdW5jdGlvbiB4RGUoYyl7cmV0dXJuIG51bGwhPWMmJiJvYmplY3QiPT10eXBlb2YgY30sc3VlPWZ1bmN0aW9uIFREZShjKXtyZXR1cm4geWIo'@; put 'YykmJiJbb2JqZWN0IEFyZ3VtZW50c10iPT1wYihjKX07dmFyIG91ZT1PYmplY3QucHJvdG90eXBlLEFEZT1vdWUuaGFzT3duUHJvcGVydHksa0RlPW91ZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxERGU9c3VlKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSk/c3VlOmZ1bmN0aW9uKGMp'@; put 'e3JldHVybiB5YihjKSYmQURlLmNhbGwoYywiY2FsbGVlIikmJiFrRGUuY2FsbChjLCJjYWxsZWUiKX07Y29uc3QgSURlPUREZSxiYj1BcnJheS5pc0FycmF5O3ZhciBsdWU9Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiZleHBvcnRzJiYhZXhwb3J0cy5ub2RlVHlwZSYmZXhwb3J0cyxjdWU9'@; put 'bHVlJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmbW9kdWxlJiYhbW9kdWxlLm5vZGVUeXBlJiZtb2R1bGUsdXVlPWN1ZSYmY3VlLmV4cG9ydHM9PT1sdWU/YnAuQnVmZmVyOnZvaWQgMDtjb25zdCBkdWU9KHV1ZT91dWUuaXNCdWZmZXI6dm9pZCAwKXx8ZnVuY3Rpb24gTERlKCl7cmV0dXJu'@; put 'ITF9O3ZhciBWRGU9L14oPzowfFsxLTldXGQqKSQvO2NvbnN0IGpEZT1mdW5jdGlvbiBCRGUoYyxsKXt2YXIgYT10eXBlb2YgYztyZXR1cm4hIShsPWw/PzkwMDcxOTkyNTQ3NDA5OTEpJiYoIm51bWJlciI9PWF8fCJzeW1ib2wiIT1hJiZWRGUudGVzdChjKSkmJmM+LTEmJmMlMT09MCYmYzxs'@; put 'fSxodWU9ZnVuY3Rpb24gVURlKGMpe3JldHVybiJudW1iZXIiPT10eXBlb2YgYyYmYz4tMSYmYyUxPT0wJiZjPD05MDA3MTk5MjU0NzQwOTkxfTt2YXIgdmM9e307dmNbIltvYmplY3QgRmxvYXQzMkFycmF5XSJdPXZjWyJbb2JqZWN0IEZsb2F0NjRBcnJheV0iXT12Y1siW29iamVjdCBJbnQ4'@; put 'QXJyYXldIl09dmNbIltvYmplY3QgSW50MTZBcnJheV0iXT12Y1siW29iamVjdCBJbnQzMkFycmF5XSJdPXZjWyJbb2JqZWN0IFVpbnQ4QXJyYXldIl09dmNbIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIl09dmNbIltvYmplY3QgVWludDE2QXJyYXldIl09dmNbIltvYmplY3QgVWludDMy'@; put 'QXJyYXldIl09ITAsdmNbIltvYmplY3QgQXJndW1lbnRzXSJdPXZjWyJbb2JqZWN0IEFycmF5XSJdPXZjWyJbb2JqZWN0IEFycmF5QnVmZmVyXSJdPXZjWyJbb2JqZWN0IEJvb2xlYW5dIl09dmNbIltvYmplY3QgRGF0YVZpZXddIl09dmNbIltvYmplY3QgRGF0ZV0iXT12Y1siW29iamVjdCBF'@; put 'cnJvcl0iXT12Y1siW29iamVjdCBGdW5jdGlvbl0iXT12Y1siW29iamVjdCBNYXBdIl09dmNbIltvYmplY3QgTnVtYmVyXSJdPXZjWyJbb2JqZWN0IE9iamVjdF0iXT12Y1siW29iamVjdCBSZWdFeHBdIl09dmNbIltvYmplY3QgU2V0XSJdPXZjWyJbb2JqZWN0IFN0cmluZ10iXT12Y1siW29i'@; put 'amVjdCBXZWFrTWFwXSJdPSExO2NvbnN0IE9XPWZ1bmN0aW9uIG1JZShjKXtyZXR1cm4gZnVuY3Rpb24obCl7cmV0dXJuIGMobCl9fTt2YXIgZnVlPSJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmZXhwb3J0cyYmIWV4cG9ydHMubm9kZVR5cGUmJmV4cG9ydHMsZ3g9ZnVlJiYib2JqZWN0Ij09'@; put 'dHlwZW9mIG1vZHVsZSYmbW9kdWxlJiYhbW9kdWxlLm5vZGVUeXBlJiZtb2R1bGUsUFc9Z3gmJmd4LmV4cG9ydHM9PT1mdWUmJnFjZS5wcm9jZXNzO2NvbnN0IF9iPWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBneCYmZ3gucmVxdWlyZSYmZ3gucmVxdWlyZSgidXRpbCIpLnR5cGVzfHxQVyYmUFcu'@; put 'YmluZGluZyYmUFcuYmluZGluZygidXRpbCIpfWNhdGNoe319KCk7dmFyIHB1ZT1fYiYmX2IuaXNUeXBlZEFycmF5O2NvbnN0IF9JZT1wdWU/T1cocHVlKTpmdW5jdGlvbiBwSWUoYyl7cmV0dXJuIHliKGMpJiZodWUoYy5sZW5ndGgpJiYhIXZjW3BiKGMpXX07dmFyIENJZT1PYmplY3QucHJv'@; put 'dG90eXBlLmhhc093blByb3BlcnR5O2NvbnN0IGd1ZT1mdW5jdGlvbiBTSWUoYyxsKXt2YXIgYT1iYihjKSxkPSFhJiZJRGUoYyksaD0hYSYmIWQmJmR1ZShjKSxmPSFhJiYhZCYmIWgmJl9JZShjKSx2PWF8fGR8fGh8fGYsTT12P2Z1bmN0aW9uIFNEZShjLGwpe2Zvcih2YXIgYT0tMSxkPUFy'@; put 'cmF5KGMpOysrYTxjOylkW2FdPWwoYSk7cmV0dXJuIGR9KGMubGVuZ3RoLFN0cmluZyk6W10sST1NLmxlbmd0aDtmb3IodmFyIEcgaW4gYykobHx8Q0llLmNhbGwoYyxHKSkmJighdnx8ISgibGVuZ3RoIj09R3x8aCYmKCJvZmZzZXQiPT1HfHwicGFyZW50Ij09Ryl8fGYmJigiYnVmZmVyIj09'@; put 'R3x8ImJ5dGVMZW5ndGgiPT1HfHwiYnl0ZU9mZnNldCI9PUcpfHxqRGUoRyxJKSkpJiZNLnB1c2goRyk7cmV0dXJuIE19O3ZhciBNSWU9T2JqZWN0LnByb3RvdHlwZTtjb25zdCBGVz1mdW5jdGlvbiB4SWUoYyl7dmFyIGw9YyYmYy5jb25zdHJ1Y3RvcjtyZXR1cm4gYz09PSgiZnVuY3Rpb24i'@; put 'PT10eXBlb2YgbCYmbC5wcm90b3R5cGV8fE1JZSl9LG11ZT1mdW5jdGlvbiBFSWUoYyxsKXtyZXR1cm4gZnVuY3Rpb24oYSl7cmV0dXJuIGMobChhKSl9fSxBSWU9bXVlKE9iamVjdC5rZXlzLE9iamVjdCk7dmFyIERJZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2NvbnN0IHZ1'@; put 'ZT1mdW5jdGlvbiBMSWUoYyl7cmV0dXJuIG51bGwhPWMmJmh1ZShjLmxlbmd0aCkmJiFldWUoYyl9LEhXPWZ1bmN0aW9uIE9JZShjKXtyZXR1cm4gdnVlKGMpP2d1ZShjKTpmdW5jdGlvbiBJSWUoYyl7aWYoIUZXKGMpKXJldHVybiBBSWUoYyk7dmFyIGw9W107Zm9yKHZhciBhIGluIE9iamVj'@; put 'dChjKSlESWUuY2FsbChjLGEpJiYiY29uc3RydWN0b3IiIT1hJiZsLnB1c2goYSk7cmV0dXJuIGx9KGMpfTt2YXIgQkllPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7Y29uc3QgekllPWZ1bmN0aW9uIGpJZShjKXtpZighaHgoYykpcmV0dXJuIGZ1bmN0aW9uIEhJZShjKXt2YXIg'@; put 'bD1bXTtpZihudWxsIT1jKWZvcih2YXIgYSBpbiBPYmplY3QoYykpbC5wdXNoKGEpO3JldHVybiBsfShjKTt2YXIgbD1GVyhjKSxhPVtdO2Zvcih2YXIgZCBpbiBjKSJjb25zdHJ1Y3RvciI9PWQmJihsfHwhQkllLmNhbGwoYyxkKSl8fGEucHVzaChkKTtyZXR1cm4gYX0sTlc9ZnVuY3Rpb24g'@; put 'VUllKGMpe3JldHVybiB2dWUoYyk/Z3VlKGMsITApOnpJZShjKX07dmFyIHl1ZT0ib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJmV4cG9ydHMmJiFleHBvcnRzLm5vZGVUeXBlJiZleHBvcnRzLGJ1ZT15dWUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlJiZtb2R1bGUmJiFtb2R1bGUubm9kZVR5'@; put 'cGUmJm1vZHVsZSxfdWU9YnVlJiZidWUuZXhwb3J0cz09PXl1ZT9icC5CdWZmZXI6dm9pZCAwLHd1ZT1fdWU/X3VlLmFsbG9jVW5zYWZlOnZvaWQgMDtjb25zdCBDdWU9ZnVuY3Rpb24gUUllKCl7cmV0dXJuW119O3ZhciB0UmU9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJs'@; put 'ZSxTdWU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxuUmU9U3VlP2Z1bmN0aW9uKGMpe3JldHVybiBudWxsPT1jP1tdOihjPU9iamVjdChjKSxmdW5jdGlvbiBxSWUoYyxsKXtmb3IodmFyIGE9LTEsZD1udWxsPT1jPzA6Yy5sZW5ndGgsaD0wLGY9W107KythPGQ7KXt2YXIgdj1jW2Fd'@; put 'O2wodixhLGMpJiYoZltoKytdPXYpfXJldHVybiBmfShTdWUoYyksZnVuY3Rpb24obCl7cmV0dXJuIHRSZS5jYWxsKGMsbCl9KSl9OkN1ZTtjb25zdCBWVz1uUmUsTXVlPWZ1bmN0aW9uIGFSZShjLGwpe2Zvcih2YXIgYT0tMSxkPWwubGVuZ3RoLGg9Yy5sZW5ndGg7KythPGQ7KWNbaCthXT1s'@; put 'W2FdO3JldHVybiBjfSx4dWU9bXVlKE9iamVjdC5nZXRQcm90b3R5cGVPZixPYmplY3QpO3ZhciBsUmU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz9mdW5jdGlvbihjKXtmb3IodmFyIGw9W107YzspTXVlKGwsVlcoYykpLGM9eHVlKGMpO3JldHVybiBsfTpDdWU7Y29uc3QgRXVlPWxS'@; put 'ZSxUdWU9ZnVuY3Rpb24gZFJlKGMsbCxhKXt2YXIgZD1sKGMpO3JldHVybiBiYihjKT9kOk11ZShkLGEoYykpfSxmUmU9ZnVuY3Rpb24gaFJlKGMpe3JldHVybiBUdWUoYyxIVyxWVyl9LGdSZT1mdW5jdGlvbiBwUmUoYyl7cmV0dXJuIFR1ZShjLE5XLEV1ZSl9LEJXPXI3KGJwLCJEYXRhVmll'@; put 'dyIpLGpXPXI3KGJwLCJQcm9taXNlIikselc9cjcoYnAsIlNldCIpLFVXPXI3KGJwLCJXZWFrTWFwIik7dmFyIEF1ZT0iW29iamVjdCBNYXBdIixrdWU9IltvYmplY3QgUHJvbWlzZV0iLER1ZT0iW29iamVjdCBTZXRdIixJdWU9IltvYmplY3QgV2Vha01hcF0iLFJ1ZT0iW29iamVjdCBEYXRh'@; put 'Vmlld10iLHdSZT1uNyhCVyksQ1JlPW43KGZ4KSxTUmU9bjcoalcpLE1SZT1uNyh6VykseFJlPW43KFVXKSxpNz1wYjsoQlcmJmk3KG5ldyBCVyhuZXcgQXJyYXlCdWZmZXIoMSkpKSE9UnVlfHxmeCYmaTcobmV3IGZ4KSE9QXVlfHxqVyYmaTcoalcucmVzb2x2ZSgpKSE9a3VlfHx6VyYmaTco'@; put 'bmV3IHpXKSE9RHVlfHxVVyYmaTcobmV3IFVXKSE9SXVlKSYmKGk3PWZ1bmN0aW9uKGMpe3ZhciBsPXBiKGMpLGE9IltvYmplY3QgT2JqZWN0XSI9PWw/Yy5jb25zdHJ1Y3Rvcjp2b2lkIDAsZD1hP243KGEpOiIiO2lmKGQpc3dpdGNoKGQpe2Nhc2Ugd1JlOnJldHVybiBSdWU7Y2FzZSBDUmU6'@; put 'cmV0dXJuIEF1ZTtjYXNlIFNSZTpyZXR1cm4ga3VlO2Nhc2UgTVJlOnJldHVybiBEdWU7Y2FzZSB4UmU6cmV0dXJuIEl1ZX1yZXR1cm4gbH0pO2NvbnN0IFpXPWk3O3ZhciBUUmU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtjb25zdCBMdWU9YnAuVWludDhBcnJheSxXVz1mdW5j'@; put 'dGlvbiBJUmUoYyl7dmFyIGw9bmV3IGMuY29uc3RydWN0b3IoYy5ieXRlTGVuZ3RoKTtyZXR1cm4gbmV3IEx1ZShsKS5zZXQobmV3IEx1ZShjKSksbH07dmFyIE9SZT0vXHcqJC87dmFyIE91ZT1vbT9vbS5wcm90b3R5cGU6dm9pZCAwLFB1ZT1PdWU/T3VlLnZhbHVlT2Y6dm9pZCAwO2NvbnN0'@; put 'IG9MZT1mdW5jdGlvbiBzTGUoYyxsLGEpe3ZhciBkPWMuY29uc3RydWN0b3I7c3dpdGNoKGwpe2Nhc2UiW29iamVjdCBBcnJheUJ1ZmZlcl0iOnJldHVybiBXVyhjKTtjYXNlIltvYmplY3QgQm9vbGVhbl0iOmNhc2UiW29iamVjdCBEYXRlXSI6cmV0dXJuIG5ldyBkKCtjKTtjYXNlIltvYmpl'@; put 'Y3QgRGF0YVZpZXddIjpyZXR1cm4gZnVuY3Rpb24gUlJlKGMsbCl7dmFyIGE9bD9XVyhjLmJ1ZmZlcik6Yy5idWZmZXI7cmV0dXJuIG5ldyBjLmNvbnN0cnVjdG9yKGEsYy5ieXRlT2Zmc2V0LGMuYnl0ZUxlbmd0aCl9KGMsYSk7Y2FzZSJbb2JqZWN0IEZsb2F0MzJBcnJheV0iOmNhc2UiW29i'@; put 'amVjdCBGbG9hdDY0QXJyYXldIjpjYXNlIltvYmplY3QgSW50OEFycmF5XSI6Y2FzZSJbb2JqZWN0IEludDE2QXJyYXldIjpjYXNlIltvYmplY3QgSW50MzJBcnJheV0iOmNhc2UiW29iamVjdCBVaW50OEFycmF5XSI6Y2FzZSJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSI6Y2FzZSJbb2Jq'@; put 'ZWN0IFVpbnQxNkFycmF5XSI6Y2FzZSJbb2JqZWN0IFVpbnQzMkFycmF5XSI6cmV0dXJuIGZ1bmN0aW9uIFZSZShjLGwpe3ZhciBhPWw/V1coYy5idWZmZXIpOmMuYnVmZmVyO3JldHVybiBuZXcgYy5jb25zdHJ1Y3RvcihhLGMuYnl0ZU9mZnNldCxjLmxlbmd0aCl9KGMsYSk7Y2FzZSJbb2Jq'@; put 'ZWN0IE1hcF0iOmNhc2UiW29iamVjdCBTZXRdIjpyZXR1cm4gbmV3IGQ7Y2FzZSJbb2JqZWN0IE51bWJlcl0iOmNhc2UiW29iamVjdCBTdHJpbmddIjpyZXR1cm4gbmV3IGQoYyk7Y2FzZSJbb2JqZWN0IFJlZ0V4cF0iOnJldHVybiBmdW5jdGlvbiBQUmUoYyl7dmFyIGw9bmV3IGMuY29uc3Ry'@; put 'dWN0b3IoYy5zb3VyY2UsT1JlLmV4ZWMoYykpO3JldHVybiBsLmxhc3RJbmRleD1jLmxhc3RJbmRleCxsfShjKTtjYXNlIltvYmplY3QgU3ltYm9sXSI6cmV0dXJuIGZ1bmN0aW9uIEhSZShjKXtyZXR1cm4gUHVlP09iamVjdChQdWUuY2FsbChjKSk6e319KGMpfX07dmFyIEZ1ZT1PYmplY3Qu'@; put 'Y3JlYXRlLGxMZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGMoKXt9cmV0dXJuIGZ1bmN0aW9uKGwpe2lmKCFoeChsKSlyZXR1cm57fTtpZihGdWUpcmV0dXJuIEZ1ZShsKTtjLnByb3RvdHlwZT1sO3ZhciBhPW5ldyBjO3JldHVybiBjLnByb3RvdHlwZT12b2lkIDAsYX19KCk7Y29uc3QgY0xlPWxM'@; put 'ZTt2YXIgSHVlPV9iJiZfYi5pc01hcDtjb25zdCBtTGU9SHVlP09XKEh1ZSk6ZnVuY3Rpb24gZkxlKGMpe3JldHVybiB5YihjKSYmIltvYmplY3QgTWFwXSI9PVpXKGMpfTt2YXIgTnVlPV9iJiZfYi5pc1NldDtjb25zdCB3TGU9TnVlP09XKE51ZSk6ZnVuY3Rpb24geUxlKGMpe3JldHVybiB5'@; put 'YihjKSYmIltvYmplY3QgU2V0XSI9PVpXKGMpfTt2YXIgVnVlPSJbb2JqZWN0IEFyZ3VtZW50c10iLEJ1ZT0iW29iamVjdCBGdW5jdGlvbl0iLGp1ZT0iW29iamVjdCBPYmplY3RdIixhYz17fTthY1tWdWVdPWFjWyJbb2JqZWN0IEFycmF5XSJdPWFjWyJbb2JqZWN0IEFycmF5QnVmZmVyXSJd'@; put 'PWFjWyJbb2JqZWN0IERhdGFWaWV3XSJdPWFjWyJbb2JqZWN0IEJvb2xlYW5dIl09YWNbIltvYmplY3QgRGF0ZV0iXT1hY1siW29iamVjdCBGbG9hdDMyQXJyYXldIl09YWNbIltvYmplY3QgRmxvYXQ2NEFycmF5XSJdPWFjWyJbb2JqZWN0IEludDhBcnJheV0iXT1hY1siW29iamVjdCBJbnQx'@; put 'NkFycmF5XSJdPWFjWyJbb2JqZWN0IEludDMyQXJyYXldIl09YWNbIltvYmplY3QgTWFwXSJdPWFjWyJbb2JqZWN0IE51bWJlcl0iXT1hY1tqdWVdPWFjWyJbb2JqZWN0IFJlZ0V4cF0iXT1hY1siW29iamVjdCBTZXRdIl09YWNbIltvYmplY3QgU3RyaW5nXSJdPWFjWyJbb2JqZWN0IFN5bWJv'@; put 'bF0iXT1hY1siW29iamVjdCBVaW50OEFycmF5XSJdPWFjWyJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSJdPWFjWyJbb2JqZWN0IFVpbnQxNkFycmF5XSJdPWFjWyJbb2JqZWN0IFVpbnQzMkFycmF5XSJdPSEwLGFjWyJbb2JqZWN0IEVycm9yXSJdPWFjW0J1ZV09YWNbIltvYmplY3QgV2Vh'@; put 'a01hcF0iXT0hMTtjb25zdCAkTGU9ZnVuY3Rpb24gbEwoYyxsLGEsZCxoLGYpe3ZhciB2LE09MSZsLEk9MiZsLEc9NCZsO2lmKGEmJih2PWg/YShjLGQsaCxmKTphKGMpKSx2b2lkIDAhPT12KXJldHVybiB2O2lmKCFoeChjKSlyZXR1cm4gYzt2YXIgcmU9YmIoYyk7aWYocmUpe2lmKHY9ZnVu'@; put 'Y3Rpb24gQVJlKGMpe3ZhciBsPWMubGVuZ3RoLGE9bmV3IGMuY29uc3RydWN0b3IobCk7cmV0dXJuIGwmJiJzdHJpbmciPT10eXBlb2YgY1swXSYmVFJlLmNhbGwoYywiaW5kZXgiKSYmKGEuaW5kZXg9Yy5pbmRleCxhLmlucHV0PWMuaW5wdXQpLGF9KGMpLCFNKXJldHVybiBmdW5jdGlvbiBL'@; put 'SWUoYyxsKXt2YXIgYT0tMSxkPWMubGVuZ3RoO2ZvcihsfHwobD1BcnJheShkKSk7KythPGQ7KWxbYV09Y1thXTtyZXR1cm4gbH0oYyx2KX1lbHNle3ZhciB1ZT1aVyhjKSx5ZT11ZT09QnVlfHwiW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iPT11ZTtpZihkdWUoYykpcmV0dXJuIGZ1bmN0'@; put 'aW9uIEdJZShjLGwpe2lmKGwpcmV0dXJuIGMuc2xpY2UoKTt2YXIgYT1jLmxlbmd0aCxkPXd1ZT93dWUoYSk6bmV3IGMuY29uc3RydWN0b3IoYSk7cmV0dXJuIGMuY29weShkKSxkfShjLE0pO2lmKHVlPT1qdWV8fHVlPT1WdWV8fHllJiYhaCl7aWYodj1JfHx5ZT97fTpmdW5jdGlvbiB1TGUo'@; put 'Yyl7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIGMuY29uc3RydWN0b3J8fEZXKGMpP3t9OmNMZSh4dWUoYykpfShjKSwhTSlyZXR1cm4gST9mdW5jdGlvbiBjUmUoYyxsKXtyZXR1cm4gb0woYyxFdWUoYyksbCl9KGMsZnVuY3Rpb24gWkllKGMsbCl7cmV0dXJuIGMmJm9MKGwsTlcobCksYyl9'@; put 'KHYsYykpOmZ1bmN0aW9uIHJSZShjLGwpe3JldHVybiBvTChjLFZXKGMpLGwpfShjLGZ1bmN0aW9uIFBJZShjLGwpe3JldHVybiBjJiZvTChsLEhXKGwpLGMpfSh2LGMpKX1lbHNle2lmKCFhY1t1ZV0pcmV0dXJuIGg/Yzp7fTt2PW9MZShjLHVlLE0pfX1mfHwoZj1uZXcgcERlKTt2YXIgRWU9'@; put 'Zi5nZXQoYyk7aWYoRWUpcmV0dXJuIEVlO2Yuc2V0KGMsdiksd0xlKGMpP2MuZm9yRWFjaChmdW5jdGlvbihzdCl7di5hZGQobEwoc3QsbCxhLHN0LGMsZikpfSk6bUxlKGMpJiZjLmZvckVhY2goZnVuY3Rpb24oc3QscHQpe3Yuc2V0KHB0LGxMKHN0LGwsYSxwdCxjLGYpKX0pO3ZhciBHZT1y'@; put 'ZT92b2lkIDA6KEc/ST9nUmU6ZlJlOkk/Tlc6SFcpKGMpO3JldHVybiBmdW5jdGlvbiBnRGUoYyxsKXtmb3IodmFyIGE9LTEsZD1udWxsPT1jPzA6Yy5sZW5ndGg7KythPGQmJiExIT09bChjW2FdLGEsYyk7KTt9KEdlfHxjLGZ1bmN0aW9uKHN0LHB0KXtHZSYmKHN0PWNbcHQ9c3RdKSxhdWUo'@; put 'dixwdCxsTChzdCxsLGEscHQsYyxmKSl9KSx2fSxjTD1mdW5jdGlvbiBxTGUoYyl7cmV0dXJuICRMZShjLDUpfTt2YXIgSkxlPWIoNzg4NTUpO2xldCBidT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMuc2FzU2VydmljZT1hLHRoaXMuc2hvd25MaWJyYXJpZXM9NTAsdGhpcy5s'@; put 'b2FkTW9yZUNvdW50PTUwLHRoaXMuaXNNaWNyb3NvZnQ9ITEsdGhpcy5pc01pY3Jvc29mdD10aGlzLmlzSUVvckVER0UoKSxjb25zb2xlLmxvZygiSXMgSUUgb3IgRWRnZT8iLHRoaXMuaXNNaWNyb3NvZnQpfWNvbnZlcnRKc0RhdGVUb1Nhc0RhdGUoYSxkPSJkYXlzIil7bGV0IGgsZj0wO2g9'@; put 'YSBpbnN0YW5jZW9mIERhdGU/YTpuZXcgRGF0ZShhKSxmPW5ldyBEYXRlKERhdGUuVVRDKGguZ2V0RnVsbFllYXIoKSxoLmdldE1vbnRoKCksaC5nZXREYXRlKCksaC5nZXRIb3VycygpLGguZ2V0TWludXRlcygpLGguZ2V0U2Vjb25kcygpKSkudmFsdWVPZigpO2NvbnN0IEk9ZiszMTU2MTky'@; put 'ZTU7c3dpdGNoKGQpe2Nhc2UiZGF5cyI6e2xldCBHPUkvODY0ZTU7cmV0dXJuIEc9TWF0aC5hYnMoRyksRz1NYXRoLmZsb29yKEcpLEd9Y2FzZSJzZWNvbmRzIjpyZXR1cm4gSS8xZTN9cmV0dXJuIDB9Y29udmVydFNhc0RheXNUb0pzRGF0ZShhLGQ9ImRheXMiKXtpZigibnVtYmVyIiE9dHlw'@; put 'ZW9mIGEmJihhPXBhcnNlRmxvYXQoYSkpLCJzZWNvbmRzIj09PWQpe2xldCBNPTFlMyphLTMxNTYxOTJlNTtyZXR1cm4gTSs9NjAqbmV3IERhdGUoTSkuZ2V0VGltZXpvbmVPZmZzZXQoKSoxZTMsbmV3IERhdGUoTSl9cmV0dXJuIG5ldyBEYXRlKDg2NGU1KmEtMzE1NjE5MmU1KX10cmVlT25G'@; put 'aWx0ZXIoYSxkKXtsZXQgaD1hLnNlYXJjaFN0cmluZz9hLnNlYXJjaFN0cmluZzoiIixmPWQuc3BsaXQoIi4iKVswXSx2PWQuc3BsaXQoIi4iKVsxXSxNPWYrIkFsbCI7YVtmXSYmKGFbTV18fChhW01dPXRoaXMuZGVlcENsb25lKGFbZl0pKSxhW2ZdPXRoaXMuZGVlcENsb25lKGFbTV0pLGgu'@; put 'bGVuZ3RoPjAmJihhW2ZdPWFbZl0uZmlsdGVyKHY/ST0+SVt2XS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGgudG9Mb3dlckNhc2UoKSk6ST0+SS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGgudG9Mb3dlckNhc2UoKSkpKSl9bGlicmFyeU9uRmlsdGVyKGEsZCxoKXtkLmxlbmd0aD4wP2EuZm9y'@; put 'RWFjaChmPT57ZltoXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGQudG9Mb3dlckNhc2UoKSk/KGYuaGlkZGVuPSExLGYuaW5Gb3JlZ3JvdW5kPSEwKTooZi5oaWRkZW49ITAsZi5pbkZvcmVncm91bmQ9ITEpfSk6KHRoaXMucmVzZXRBcnJheUZpbHRlcihhKSx0aGlzLmRpc3BsYXlMaWJyYXJp'@; put 'ZXMoYSkpfWRpc3BsYXlMaWJyYXJpZXMoYSxkKXtkP3RoaXMuc2hvd25MaWJyYXJpZXMrPXRoaXMubG9hZE1vcmVDb3VudDoodGhpcy5zaG93bkxpYnJhcmllcz01MCx0aGlzLnJlc2V0TGlicmFyeUZvcmVncm91bmQoYSkpO2ZvcihsZXQgaD0wO2g8YS5sZW5ndGgmJmghPT10aGlzLnNob3du'@; put 'TGlicmFyaWVzO2grKylhW2hdLmluRm9yZWdyb3VuZD0hMH1yZXNldExpYnJhcnlGb3JlZ3JvdW5kKGEpe2ZvcihsZXQgZD0wO2Q8YS5sZW5ndGg7ZCsrKWFbZF0uaW5Gb3JlZ3JvdW5kPSExfW1ldGFPYmplY3RPbkZpbHRlcihhLGQsaCl7ZC5sZW5ndGg+MD8odGhpcy5yZXNldEFycmF5Rmls'@; put 'dGVyKGEpLGEuZm9yRWFjaChmPT57ZltoXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGQudG9Mb3dlckNhc2UoKSl8fChmLmhpZGRlbj0hMCl9KSk6dGhpcy5yZXNldEFycmF5RmlsdGVyKGEpfXJlc2V0QXJyYXlGaWx0ZXIoYSl7YS5mb3JFYWNoKGQ9PntkLmhpZGRlbj0hMSxkLmluRm9yZWdy'@; put 'b3VuZCYmZGVsZXRlIGQuaW5Gb3JlZ3JvdW5kfSl9aXNJRW9yRURHRSgpe3ZhciBhPXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50O3JldHVybiBhLmluZGV4T2YoIk1TSUUgIik+MHx8KGEuaW5kZXhPZigiVHJpZGVudC8iKT4wPyhhLmluZGV4T2YoInJ2OiIpLCEwKTphLmluZGV4T2YoIkVk'@; put 'Z2UvIik+MCl9Y29udmVydE9iamVjdHNUb0FycmF5KGEsZD0hMSl7cmV0dXJuIGQmJihhPXRoaXMuZGVlcENsb25lKGEpKSxhLm1hcChoPT5PYmplY3Qua2V5cyhoKS5tYXAoZj0+aFtmXSkpfWFkZExlYWRpbmdaZXJvKGEpe3JldHVybiJzdHJpbmciIT10eXBlb2YgYSYmKGE9YS50b1N0cmlu'@; put 'ZygpKSxhLmxlbmd0aDwyPyIwIithOmF9ZGVsZXRlS2V5c0FuZEhhc2goYSxkLGg9ITApe2NvbnN0IGY9aD90aGlzLmRlZXBDbG9uZShhKTphO2ZvcihsZXQgdiBvZiBkKWRlbGV0ZSBmW3ZdO3JldHVybiBKTGUoSlNPTi5zdHJpbmdpZnkoZikpLnRvU3RyaW5nKCl9ZG93bmxvYWRUZXh0Rmls'@; put 'ZShhLGQpe2NvbnN0IGg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2guc2V0QXR0cmlidXRlKCJocmVmIiwiZGF0YTp0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgsIitlbmNvZGVVUklDb21wb25lbnQoZCkpLGguc2V0QXR0cmlidXRlKCJkb3dubG9hZCIsYSsiLnR4dCIpLGguc3R5bGUu'@; put 'ZGlzcGxheT0ibm9uZSIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChoKSxoLmNsaWNrKCksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChoKX1jb252ZXJ0QXJyYXlWYWx1ZXMoYSxkKXtpZihhLmxlbmd0aDwxKXJldHVybltdO3N3aXRjaChkKXtjYXNlIm51bWJlciI6cmV0dXJuIGEubWFw'@; put 'KGg9PjEqaCk7Y2FzZSJzdHJpbmciOnJldHVybiBhLnRvU3RyaW5nKCkuc3BsaXQoIiwiKX19aXNTdHJlYW1pbmdWaXlhKCl7cmV0dXJuIlNBU1ZJWUEiPT09dGhpcy5zYXNTZXJ2aWNlLmdldFNlcnZlclR5cGUoKSYmISghbG9jYXRpb24uc2VhcmNoLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMo'@; put 'Ij9fZmlsZT0iKXx8IWxvY2F0aW9uLnBhdGhuYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoIi9zYXNqb2JleGVjdXRpb24iKSl9ZGVib3VuY2VDYWxsKGEsZCl7Y2xlYXJUaW1lb3V0KHRoaXMuZGVib3VuY2VUaW1lb3V0KSx0aGlzLmRlYm91bmNlVGltZW91dD1zZXRUaW1lb3V0KGQsYSl9'@; put 'ZGVlcENsb25lKGEpe3JldHVybiBjTChhKX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKShDcihWbykpfX1zdGF0aWN7dGhpcy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KX19cmV0'@; put 'dXJuIGN9KSgpLGMxPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZix2LE0pe3RoaXMubG9nZ2VyU2VydmljZT1hLHRoaXMuYXBwU3RvcmVTZXJ2aWNlPWQsdGhpcy5ldmVudFNlcnZpY2U9aCx0aGlzLnNhc1NlcnZpY2U9Zix0aGlzLmhlbHBlclNlcnZpY2U9dix0aGlzLnJvdXRl'@; put 'cj1NLHRoaXMudXNlckNvdW50TGltaXRhdGlvbj0hMSx0aGlzLmxpY2Vuc2VLZXlEYXRhPW51bGwsdGhpcy5fbGljZW5jZVN0YXRlPVNXLHRoaXMuYWxsRmVhdHVyZXNPbj17dmlld2VyX3Jvd3NfYWxsb3dlZDoxLzAsZWRpdG9yX3Jvd3NfYWxsb3dlZDoxLzAsc3RhZ2Vfcm93c19hbGxvd2Vk'@; put 'OjEvMCxoaXN0b3J5X3Jvd3NfYWxsb3dlZDoxLzAsc3VibWl0X3Jvd3NfbGltaXQ6MS8wLHRhYmxlc19pbl9saWJyYXJ5X2xpbWl0OjEvMCx2aWV3Ym94X2xpbWl0OjEvMCxsaW5lYWdlX2RhaWx5X2xpbWl0OjEvMCx2aWV3Ym94OiEwLGZpbGVVcGxvYWQ6ITAsZWRpdFJlY29yZDohMCxhZGRS'@; put 'ZWNvcmQ6ITB9LHRoaXMuZnJlZVRpZXJMaWNlbmNlRGF0YT17ZGVtbzohMCxob3RfbGljZW5zZV9rZXk6dGhpcy5hcHBTdG9yZVNlcnZpY2UuZ2V0RGNBZGFwdGVyU2V0dGluZ3MoKT8uaG90TGljZW5jZUtleSx1c2Vyc19hbGxvd2VkOnRoaXMuX2xpY2VuY2VTdGF0ZS51c2Vyc19hbGxvd2Vk'@; put 'fHwxLHZhbGlkX3VudGlsOlBzKCkuYWRkKDEsInllYXIiKS5mb3JtYXQoIllZWVktTU0tREQiKSxzaXRlX2lkOiIiLHNpdGVfaWRfbXVsdGlwbGU6W119LHRoaXMuaXNBcHBBY3RpdmF0ZWQ9bmV3IEpyKG51bGwpLHRoaXMuaXNBcHBPdmVyQ2FwYWNpdHk9bmV3IEpyKCExKSx0aGlzLmN1cnJl'@; put 'bnRVc2VyQ2FuUmVnaXN0ZXI9bmV3IEpyKCExKSx0aGlzLmFwcExvY2tlZD1uZXcgSnIoITEpLHRoaXMubGljZW5zZUV4cGlyZXNJbkRheXM9bmV3IEpyKG51bGwpLHRoaXMuaXNBcHBGcmVlVGllcj1uZXcgSnIoITEpLHRoaXMubGljZW5jZVByb2JsZW09bmV3IEpyKG51bGwpLHRoaXMuaG90'@; put 'X2xpY2Vuc2Vfa2V5PW5ldyBKcih2b2lkIDApLHRoaXMubGljZW5jZVN0YXRlPW5ldyBKcih0aGlzLl9saWNlbmNlU3RhdGUpLHRoaXMuc2FzU2VydmljZS5pbmNvcnJlY3RTaXRlSWRFbWl0dGVyLnN1YnNjcmliZShJPT57aWYobnVsbCE9PXRoaXMuaXNBcHBBY3RpdmF0ZWQudmFsdWUmJiF0'@; put 'aGlzLmlzQXBwRnJlZVRpZXIudmFsdWUpe2NvbnN0IEc9YC9saWNlbnNpbmcva2V5P2Vycm9yPW1pc3NtYXRjaCZtaXNzbWF0Y2hJZD0ke0l9JmZvcmNlPXRydWVgO3RoaXMubGljZW5jZVByb2JsZW0ubmV4dChHKSx0aGlzLmRlYWN0aXZhdGVBcHAoRyl9fSl9YWN0aXZhdGlvbihhKXt2YXIg'@; put 'ZD10aGlzO3JldHVybiBRKGZ1bmN0aW9uKigpe2QuZnJlZVRpZXJMaWNlbmNlRGF0YS5ob3RfbGljZW5zZV9rZXk9ZC5hcHBTdG9yZVNlcnZpY2UuZ2V0RGNBZGFwdGVyU2V0dGluZ3MoKT8uaG90TGljZW5jZUtleSx5aWVsZCBkLnNldFN0YXJ0dXBzZXJ2aWNlUnVsZXMoYSkseWllbGQgZC5s'@; put 'aWNlbnNpbmcoYS5nbG9idmFycyxhLlNZU1NJVEUpfSkoKX1zZXRTdGFydHVwc2VydmljZVJ1bGVzKGEpe3RoaXMuX2xpY2VuY2VTdGF0ZS5lZGl0UmVjb3JkPSJZRVMiIT09YS5nbG9idmFyc1swXS5EQ19SRVNUUklDVF9FRElUUkVDT1JEfWxpY2Vuc2luZyhhLGQpe3ZhciBoPXRoaXM7cmV0'@; put 'dXJuIFEoZnVuY3Rpb24qKCl7aWYoIWF8fCFhWzBdKXtjb25zdCB2PSdFcnJvciBnZXR0aW5nICJHbG9idmFycyIgZnJvbSBzdGFydHVwc2VydmljZSByZXNwb25zZS4nO3JldHVybiBjb25zb2xlLmVycm9yKHYpLGguaXNBcHBBY3RpdmF0ZWQubmV4dCghMSksdm9pZCBoLnJvdXRlci5uYXZp'@; put 'Z2F0ZUJ5VXJsKGAvbGljZW5zaW5nL2tleT9lcnJvcj1pbnZhbGlkJmRldGFpbHM9JHtidG9hKHYpfWApfWxldCBmPWFbMF07cmV0dXJuIHZvaWQgMD09PWYuTElDRU5DRV9LRVl8fHZvaWQgMD09PWYuQUNUSVZBVElPTl9LRVl8fG51bGw9PWYuUkVHSVNURVJDT1VOVHx8bnVsbD09Zi5JU1JF'@; put 'R0lTVEVSRUQ/KGNvbnNvbGUuZXJyb3IoIlNvbWUgb2YgZ2xvYnZhcnMgYXJlIG5vdCBwcmVzZW50IiksaC5pc0FwcEFjdGl2YXRlZC5uZXh0KCExKSx2b2lkIGguZXZlbnRTZXJ2aWNlLnNob3dJbmZvTW9kYWwoIkVycm9yIiwiU29tZSBvZiB0aGUgZ2xvYnZhcnMgYXJlIG5vdCBwcmVzZW50'@; put 'IGluIHRoZSBzdGFydHVwc2VydmljZSIpKTpmLkxJQ0VOQ0VfS0VZJiZmLkFDVElWQVRJT05fS0VZPyhoLmxpY2VuY2VLZXk9Zi5MSUNFTkNFX0tFWSxoLmFjdGl2YXRpb25LZXk9Zi5BQ1RJVkFUSU9OX0tFWSx2b2lkKHlpZWxkIGguZGVjcnlwdExpY2Vuc2VLZXkoZi5MSUNFTkNFX0tFWSxm'@; put 'LkFDVElWQVRJT05fS0VZKS50aGVuKGZ1bmN0aW9uKCl7dmFyIHY9UShmdW5jdGlvbiooTSl7eWllbGQgaC5hcHBsaWNhdGlvbkFjdGl2YXRpb24oTSxmLGQpfSk7cmV0dXJuIGZ1bmN0aW9uKE0pe3JldHVybiB2LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksZnVuY3Rpb24oKXt2YXIgdj1R'@; put 'KGZ1bmN0aW9uKihNKXtjb25zdCBJPWBFcnJvciBkZWNyeXB0aW5nIGxpY2Vuc2Uga2V5LiAke019YDtjb25zb2xlLmVycm9yKEkpO2NvbnN0IEc9YC9saWNlbnNpbmcva2V5P2Vycm9yPWludmFsaWQmZGV0YWlscz0ke2J0b2EoSSl9JmZvcmNlPXRydWVgO2gubGljZW5jZVByb2JsZW0ubmV4'@; put 'dChHKSxoLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKEcpLHNldFRpbWVvdXQoKCk9PmguYXBwbGljYXRpb25BY3RpdmF0aW9uKGguZnJlZVRpZXJMaWNlbmNlRGF0YSxmLGQsITApKX0pO3JldHVybiBmdW5jdGlvbihNKXtyZXR1cm4gdi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKSkpOnlpZWxk'@; put 'IGguYXBwbGljYXRpb25BY3RpdmF0aW9uKGguZnJlZVRpZXJMaWNlbmNlRGF0YSxmLGQpfSkoKX1hcHBsaWNhdGlvbkFjdGl2YXRpb24oYSxkLGgsZil7Znx8KGY9ITEpLHRoaXMuc2V0U2l0ZUlkKGEpLCFhLmRlbW8mJmQmJmgmJnRoaXMuaGFuZGxlU2l0ZUlkTWlzc21hdGNoKGEsZCxoLGYp'@; put 'O2xldCB2PXZvaWQgMCE9PWEuaG90X2xpY2Vuc2Vfa2V5P2EuaG90X2xpY2Vuc2Vfa2V5OnRoaXMuaG90X2xpY2Vuc2Vfa2V5LnZhbHVlO3Z8fCh2PXRoaXMuYXBwU3RvcmVTZXJ2aWNlLmdldERjQWRhcHRlclNldHRpbmdzKCk/LmhvdExpY2VuY2VLZXkpLHRoaXMuaG90X2xpY2Vuc2Vfa2V5'@; put 'Lm5leHQodiksdGhpcy51c2VyQ291bnRMaW1pdGF0aW9uJiZ0aGlzLmhhbmRsZVVzZXJzQWxsb3dlZChhKSx0aGlzLmxpY2Vuc2VLZXlEYXRhPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUoYSksd2luZG93LmFwcGluZm8oKTtjb25zdHtleHBpcnlfZGF0ZTpNLGRheXNUb0V4cGlyeTpJ'@; put 'fT10aGlzLmNhbGN1bGF0ZUV4cGlyeShhKTtpZih3aW5kb3cubGljZW5zZUV4cGlyZXNJbj1JLHRoaXMubGljZW5zZUV4cGlyZXNJbkRheXMubmV4dChJKSxJPD0wKXJldHVybiBjb25zb2xlLmVycm9yKCJMaWNlbnNlIGtleSBoYXMgZXhwaXJlZCIpLHZvaWQoZCYmaCYmdGhpcy5oYW5kbGVF'@; put 'eHBpcnkoTSxkLGgsZikpO3RoaXMuaXNBcHBGcmVlVGllci5uZXh0KCEhYS5kZW1vKSxkJiZ0aGlzLmhhbmRsZVVzZXJSZWdpc3RyYXRpb24oYSxkLGYpLHRoaXMuZGVjb2RlTGljZW5jZUZlYXR1cmVzKGEpLHRoaXMubGljZW5jZVN0YXRlLm5leHQodGhpcy5fbGljZW5jZVN0YXRlKX1kZWNv'@; put 'ZGVMaWNlbmNlRmVhdHVyZXMoYSl7aWYoIWEuZmVhdHVyZXMpe2lmKGEuZGVtbylyZXR1cm47cmV0dXJuIHZvaWQodGhpcy5fbGljZW5jZVN0YXRlPXRoaXMuYWxsRmVhdHVyZXNPbil9Y29uc3QgZD1hLmZlYXR1cmVzLnNwbGl0KCIsIik7dGhpcy5fbGljZW5jZVN0YXRlPXsuLi50aGlzLl9s'@; put 'aWNlbmNlU3RhdGUsdmlld2VyX3Jvd3NfYWxsb3dlZDp0aGlzLnBhcnNlRmVhdHVyZVZhbHVlKGRbdmgudmlld2VyX3Jvd3NfYWxsb3dlZF0pLGVkaXRvcl9yb3dzX2FsbG93ZWQ6dGhpcy5wYXJzZUZlYXR1cmVWYWx1ZShkW3ZoLmVkaXRvcl9yb3dzX2FsbG93ZWRdKSxzdGFnZV9yb3dzX2Fs'@; put 'bG93ZWQ6dGhpcy5wYXJzZUZlYXR1cmVWYWx1ZShkW3ZoLnN0YWdlX3Jvd3NfYWxsb3dlZF0pLGhpc3Rvcnlfcm93c19hbGxvd2VkOnRoaXMucGFyc2VGZWF0dXJlVmFsdWUoZFt2aC5oaXN0b3J5X3Jvd3NfYWxsb3dlZF0pLHN1Ym1pdF9yb3dzX2xpbWl0OnRoaXMucGFyc2VGZWF0dXJlVmFs'@; put 'dWUoZFt2aC5zdWJtaXRfcm93c19saW1pdF0pLHRhYmxlc19pbl9saWJyYXJ5X2xpbWl0OnRoaXMucGFyc2VGZWF0dXJlVmFsdWUoZFt2aC50YWJsZXNfaW5fbGlicmFyeV9saW1pdF0pLHZpZXdib3hfbGltaXQ6dGhpcy5wYXJzZUZlYXR1cmVWYWx1ZShkW3ZoLnZpZXdib3hfbGltaXRdKSxs'@; put 'aW5lYWdlX2RhaWx5X2xpbWl0OnRoaXMucGFyc2VGZWF0dXJlVmFsdWUoZFt2aC5saW5lYWdlX2RhaWx5X2xpbWl0XSksdmlld2JveDp0aGlzLnBhcnNlRmVhdHVyZVRvZ2dsZShkW3ZoLnZpZXdib3hdKSxmaWxlVXBsb2FkOnRoaXMucGFyc2VGZWF0dXJlVG9nZ2xlKGRbdmguZmlsZVVwbG9h'@; put 'ZF0pLGVkaXRSZWNvcmQ6dGhpcy5wYXJzZUZlYXR1cmVUb2dnbGUoZFt2aC5lZGl0UmVjb3JkXSksYWRkUmVjb3JkOnRoaXMucGFyc2VGZWF0dXJlVG9nZ2xlKGRbdmguYWRkUmVjb3JkXSl9LHRoaXMubG9nZ2VyU2VydmljZS5sb2coIkxpY2VuY2Ugc3RhdGU6Iix0aGlzLl9saWNlbmNlU3Rh'@; put 'dGUpfXBhcnNlRmVhdHVyZVZhbHVlKGEpe3JldHVybiItIj09PWE/MS8wOnBhcnNlSW50KGEpfXBhcnNlRmVhdHVyZVRvZ2dsZShhKXtyZXR1cm4hIXBhcnNlSW50KGEpfWRlY3J5cHRMaWNlbnNlS2V5KGEsZCl7dmFyIGg9dGhpcztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oKXt2YXIg'@; put 'Zj1RKGZ1bmN0aW9uKih2LE0pe2lmKCF3aW5kb3cuY3J5cHRvfHwhd2luZG93LmNyeXB0by5zdWJ0bGUpdHJ5e2xldCB5ZT1hdG9iKGEuc3BsaXQoIiIpLnJldmVyc2UoKS5qb2luKCIiKSk7dihKU09OLnBhcnNlKHllKSl9Y2F0Y2goeWUpe00oIkVycm9yIHBhcnNpbmcgaHR0cCBsaWNlbnNl'@; put 'IGtleSBkYXRhLiAiK3llKX1sZXQgRyxJPXlpZWxkIGguYmFzZTY0VG9BcnJheUJ1ZmZlcihhKS5jYXRjaCh5ZT0+e00oeWUpfSk7Y29uc3QgcmU9eWllbGQgaC5iYXNlNjRUb0FycmF5QnVmZmVyKGQpLmNhdGNoKHllPT57TSh5ZSl9KTtpZighcmUpcmV0dXJuIHZvaWQgTSgiTWlzc2luZyBh'@; put 'Y3RpdmF0aW9uIGtleSIpO2xldCB1ZTtHPXJlO3RyeXt1ZT15aWVsZCB3aW5kb3cuY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInBrY3M4IixHLHtuYW1lOiJSU0EtT0FFUCIsaGFzaDoiU0hBLTI1NiJ9LCEwLFsiZGVjcnlwdCJdKX1jYXRjaCh5ZSl7TSgiVW5hYmxlIHRvIGltcG9ydCBkZWNy'@; put 'eXB0aW9uIGtleTogIit5ZSl9aWYodWUpaWYoSSl0cnl7d2luZG93LmNyeXB0by5zdWJ0bGUuZGVjcnlwdCh7bmFtZToiUlNBLU9BRVAiLGhhc2g6e25hbWU6IlNIQS0yNTYifX0sdWUsSSkudGhlbih5ZT0+e2xldCBFZT0obmV3IEdUZS5UZXh0RGVjb2RlcikuZGVjb2RlKHllKTt0cnl7dihK'@; put 'U09OLnBhcnNlKEVlKSl9Y2F0Y2goQmUpe00oIkVycm9yIHBhcnNpbmcgbGljZW5zZSBrZXkgZGF0YS4gIitCZSl9fSx5ZT0+e00oeWUpfSl9Y2F0Y2goeWUpe00oeWUpfWVsc2UgTSgiTGljZW5zZSBrZXkgYnl0ZXMgbWlzc2luZyIpO2Vsc2UgTSgiVW5hYmxlIHRvIGltcG9ydCBkZWNyeXB0'@; put 'aW9uIGtleSIpfSk7cmV0dXJuIGZ1bmN0aW9uKHYsTSl7cmV0dXJuIGYuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSl9Z2V0SG90TGljZW5zZUtleSgpe3JldHVybiB0aGlzLmhvdF9saWNlbnNlX2tleS52YWx1ZX1nZXRMaWNlbnNlS2V5RGF0YSgpe3JldHVybiB0aGlzLmxpY2Vuc2VLZXlE'@; put 'YXRhfWRlYWN0aXZhdGVBcHAoYSl7dGhpcy5fbGljZW5jZVN0YXRlPVNXLHRoaXMuYXBwbGljYXRpb25BY3RpdmF0aW9uKHRoaXMuZnJlZVRpZXJMaWNlbmNlRGF0YSksYSYmdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChhKX1jaGVja0xpbmVhZ2VMaW1pdChhKXtpZih0aGlzLmxpY2VuY2VT'@; put 'dGF0ZS52YWx1ZS5saW5lYWdlX2RhaWx5X2xpbWl0PT09MS8wKXJldHVybiExO2NvbnN0IGQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oImxpbmVhZ2VfcmVuZGVycyIpLGg9UHMoKS52YWx1ZU9mKCk7aWYoIWQpcmV0dXJuIGF8fHRoaXMuc2V0TGluZWFnZVJlbmRlcihoLDEpLCExO2NvbnN0IGY9'@; put 'cGFyc2VJbnQoZC5zcGxpdCgiLCIpWzBdKSx2PXBhcnNlSW50KGQuc3BsaXQoIiwiKVsxXSk7cmV0dXJuIFBzKGYpLmlzU2FtZShQcygpLCJkYXkiKT92Pj10aGlzLmxpY2VuY2VTdGF0ZS52YWx1ZS5saW5lYWdlX2RhaWx5X2xpbWl0fHwoYXx8dGhpcy5zZXRMaW5lYWdlUmVuZGVyKGgsdisx'@; put 'KSwhMSk6KGF8fHRoaXMuc2V0TGluZWFnZVJlbmRlcihoLDEpLCExKX1zZXRMaW5lYWdlUmVuZGVyKGEsZCl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oImxpbmVhZ2VfcmVuZGVycyIsYCR7YX0sJHtkfWApfWJhc2U2NFRvQXJyYXlCdWZmZXIoYSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9u'@; put 'KCl7dmFyIGQ9UShmdW5jdGlvbiooaCxmKXtoKHhjZS5EKGEpKX0pO3JldHVybiBmdW5jdGlvbihoLGYpe3JldHVybiBkLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpfWFycmF5QnVmZmVyVG9CYXNlNjQoYSl7cmV0dXJuIG5ldyBQcm9taXNlKChkLGgpPT57ZCh4Y2UubChhKSl9KX1zZXRT'@; put 'aXRlSWQoYSl7YS5zaXRlX2lkX211bHRpcGxlP3RoaXMuc2FzU2VydmljZS5zZXRMaWNlbnNlU2l0ZUlkKGEuc2l0ZV9pZF9tdWx0aXBsZSk6YS5zaXRlX2lkJiZ0aGlzLnNhc1NlcnZpY2Uuc2V0TGljZW5zZVNpdGVJZChhLnNpdGVfaWQpfWhhbmRsZVNpdGVJZE1pc3NtYXRjaChhLGQsaCxm'@; put 'KXtsZXQgdj0hMSxNPSExO2lmKCghYS5zaXRlX2lkfHxhLnNpdGVfaWQhPT1oKSYmKHY9ITApLCghYS5zaXRlX2lkX211bHRpcGxlfHwhYS5zaXRlX2lkX211bHRpcGxlLmluY2x1ZGVzKGgpKSYmKE09ITApLHYmJk0pcmV0dXJuIGNvbnNvbGUuZXJyb3IoIlRoZSBrZXkgcHJvdmlkZWQgaXMg'@; put 'Zm9yIGRpZmZlcmVudCBvcmdhbml6YXRpb24uIiksdm9pZCBzZXRUaW1lb3V0KCgpPT57Y29uc3QgST0iL2xpY2Vuc2luZy9rZXk/ZXJyb3I9bWlzc21hdGNoJmZvcmNlPXRydWUiO3RoaXMubGljZW5jZVByb2JsZW0ubmV4dChJKSx0aGlzLl9saWNlbmNlU3RhdGU9U1csdGhpcy5hcHBsaWNh'@; put 'dGlvbkFjdGl2YXRpb24odGhpcy5mcmVlVGllckxpY2VuY2VEYXRhLGQsaCwhMCksZnx8dGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChJKX0pfWNhbGN1bGF0ZUV4cGlyeShhKXtsZXQgZD1QcyhhLnZhbGlkX3VudGlsLCJZWVlZLU1NLUREIikuc3RhcnRPZigiZGF5IiksaD1QcygpLnN0YXJ0'@; put 'T2YoImRheSIpLGY9ZC5kaWZmKGgsImRheXMiKTtyZXR1cm57ZXhwaXJ5X2RhdGU6ZCxkYXlzVG9FeHBpcnk6Zn19aGFuZGxlRXhwaXJ5KGEsZCxoLGYpe3NldFRpbWVvdXQoKCk9Pntjb25zdCB2PWAvbGljZW5zaW5nL2tleT9mb3JjZT10cnVlJmVycm9yPWV4cGlyZWQmZGV0YWlscz0ke2J0'@; put 'b2EoIkV4cGlyeSBkYXRlOiAiK2EuZm9ybWF0KCJERC9NTS9ZWVlZIikpfWA7dGhpcy5saWNlbmNlUHJvYmxlbS5uZXh0KHYpLHRoaXMuYXBwbGljYXRpb25BY3RpdmF0aW9uKHRoaXMuZnJlZVRpZXJMaWNlbmNlRGF0YSxkLGgsITApLGZ8fHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodil9'@; put 'KX1oYW5kbGVVc2Vyc0FsbG93ZWQoYSl7YS5kZW1vJiZ2b2lkIDAhPT10aGlzLl9saWNlbmNlU3RhdGUudXNlcnNfYWxsb3dlZCYmKGEudXNlcnNfYWxsb3dlZD1hLnVzZXJzX2FsbG93ZWQ+MD9hLnVzZXJzX2FsbG93ZWQ6dGhpcy5fbGljZW5jZVN0YXRlLnVzZXJzX2FsbG93ZWQpLHRoaXMu'@; put 'X2xpY2VuY2VTdGF0ZS51c2Vyc19hbGxvd2VkPWEudXNlcnNfYWxsb3dlZH1oYW5kbGVVc2VyUmVnaXN0cmF0aW9uKGEsZCxoKXtpZih0aGlzLnVzZXJDb3VudExpbWl0YXRpb24mJihkLlJFR0lTVEVSQ09VTlQ+YS51c2Vyc19hbGxvd2VkPyhjb25zb2xlLndhcm4oIkFwcCBoYXMgbW9yZSB1'@; put 'c2VycyByZWdpc3RlcmVkIHRoZW4gbGljZW5zZWQuIiksdGhpcy5pc0FwcE92ZXJDYXBhY2l0eS5uZXh0KCEwKSk6ZC5SRUdJU1RFUkNPVU5UPT09YS51c2Vyc19hbGxvd2VkJiZjb25zb2xlLndhcm4oIkFwcCBoYXMgaGl0IGxpbWl0IG9mIHVzZXJzIHJlZ2lzdGVyZWQuIikpLDEhPT1kLklT'@; put 'UkVHSVNURVJFRClyZXR1cm4gZC5SRUdJU1RFUkNPVU5UPGEudXNlcnNfYWxsb3dlZHx8IXRoaXMudXNlckNvdW50TGltaXRhdGlvbj8oY29uc29sZS5sb2coIlVzZXIgY2FuIHJlZ2lzdGVyIiksdGhpcy5jdXJyZW50VXNlckNhblJlZ2lzdGVyLm5leHQoITApLHRoaXMuaXNBcHBBY3RpdmF0'@; put 'ZWQubmV4dCghMSksdm9pZChofHx0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvbGljZW5zaW5nL3JlZ2lzdGVyIikpKToodGhpcy5jdXJyZW50VXNlckNhblJlZ2lzdGVyLm5leHQoITEpLHRoaXMuaXNBcHBBY3RpdmF0ZWQubmV4dCghMSksdm9pZChofHx0aGlzLnJvdXRlci5uYXZpZ2F0'@; put 'ZUJ5VXJsKCIvbGljZW5zaW5nL2xpbWl0IikpKTt0aGlzLmlzQXBwQWN0aXZhdGVkLm5leHQoITApfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpKENyKFNkKSxDcihROCksQ3IobWMpLENyKFZvKSxDcihidSksQ3IoTG8pKX19c3RhdGlje3RoaXMu'@; put 'XHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSl9fXJldHVybiBjfSkoKSx1TD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYsdixNLEkpe3RoaXMubGljZW5jZVNlcnZpY2U9YSx0aGlzLmV2ZW50U2VydmljZT1kLHRo'@; put 'aXMuc2FzU2VydmljZT1oLHRoaXMubG9nZ2VyU2VydmljZT1mLHRoaXMuYXBwU2V0dGluZ3NTZXJ2aWNlPXYsdGhpcy5yb3V0ZXI9TSx0aGlzLmFwcFN0b3JlU2VydmljZT1JLHRoaXMuc3lzc2l0ZT1uZXcgSnIobnVsbCksdGhpcy5lbnZpcm9ubWVudEluZm89e30sdGhpcy5zdWJzY3JpYmUo'@; put 'KSx0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKHJlPT57cmUgaW5zdGFuY2VvZiBtcCYmIi9kZXBsb3kiPT09cmUudXJsJiZ0aGlzLmV2ZW50U2VydmljZS5zdGFydHVwRGF0YUxvYWRlZCgpfSk7Y29uc3QgRz10aGlzLmFwcFNldHRpbmdzU2VydmljZS5zZXR0aW5ncy52YWx1ZTtHLnBl'@; put 'cnNpc3RTZWxlY3RlZFRoZW1lJiZ0aGlzLmV2ZW50U2VydmljZS50b2dnbGVEYXJrTW9kZShHLnNlbGVjdGVkVGhlbWUhPT1kYi5saWdodCYmRy5zZWxlY3RlZFRoZW1lPT09ZGIuZGFyayl9c2FzU2VydmljZUluaXQoKXt0aGlzLnNhc1NlcnZpY2Uuc2FzU2VydmljZUluaXQoKX1zdWJzY3Jp'@; put 'YmUoKXt0aGlzLnNhc1NlcnZpY2UubG9hZFN0YXJ0dXBTZXJ2aWNlRW1pdHRlci5zdWJzY3JpYmUoKCk9Pnt0aGlzLnN0YXJ0VXBEYXRhKCl9KSx0aGlzLnNhc1NlcnZpY2UucmVxdWVzdFNpdGVJZEVtaXR0ZXIuc3Vic2NyaWJlKGE9Pnt0aGlzLnBhdGNoU3lzc2l0ZShhKX0pfWdldEVudmly'@; put 'b25tZW50SW5mbygpe3JldHVybiB0aGlzLmVudmlyb25tZW50SW5mb31wYXRjaFN5c3NpdGUoYSl7bGV0IGQ9dGhpcy5zeXNzaXRlLmdldFZhbHVlKCk7ZCYmKGQuaW5jbHVkZXMoYSl8fChkLnB1c2goYSksdGhpcy5zeXNzaXRlLm5leHQoZCkpKX1zdGFydFVwRGF0YSgpe3ZhciBhPXRoaXM7'@; put 'cmV0dXJuIFEoZnVuY3Rpb24qKCl7bGV0IGQ9ITE7eWllbGQgYS5zYXNTZXJ2aWNlLnJlcXVlc3QoInB1YmxpYy9zdGFydHVwc2VydmljZSIsbnVsbCkudGhlbihmdW5jdGlvbigpe3ZhciBoPVEoZnVuY3Rpb24qKGYpe2Euc3lzc2l0ZS5uZXh0KFtmLmFkYXB0ZXJSZXNwb25zZS5TWVNTSVRF'@; put 'XSk7bGV0IHY9W107aWYoKCFmLmFkYXB0ZXJSZXNwb25zZS5nbG9idmFyc3x8Zi5hZGFwdGVyUmVzcG9uc2UuZ2xvYnZhcnMmJiFmLmFkYXB0ZXJSZXNwb25zZS5nbG9idmFyc1swXSkmJnYucHVzaCgiR2xvYnZhcnMiKSxmLmFkYXB0ZXJSZXNwb25zZS5zYXNkYXRhc2V0c3x8di5wdXNoKCJT'@; put 'YXNkYXRhc2V0cyIpLGYuYWRhcHRlclJlc3BvbnNlLnNhc2xpYnN8fHYucHVzaCgiU2FzbGlicyIpLGYuYWRhcHRlclJlc3BvbnNlLnhsbWFwc3x8di5wdXNoKCJYTE1hcHMiKSx2Lmxlbmd0aD4wKXJldHVybiBkPSEwLGEuZXZlbnRTZXJ2aWNlLnNob3dJbmZvTW9kYWwoIkVycm9yIixgJHt2'@; put 'LmpvaW4oIiwgIil9IGFyZSBub3QgcHJlc2VudCBpbiB0aGUgc3RhcnR1cHNlcnZpY2VgKSx2b2lkIGEubGljZW5jZVNlcnZpY2UuaXNBcHBBY3RpdmF0ZWQubmV4dCghMSk7Y29uc3QgTT1hLmFwcFN0b3JlU2VydmljZS5nZXREY0FkYXB0ZXJTZXR0aW5ncygpO2EuZW52aXJvbm1lbnRJbmZv'@; put 'PXtTWVNTSVRFOmYuYWRhcHRlclJlc3BvbnNlLlNZU1NJVEUsU1lTU0NQTDpmLmFkYXB0ZXJSZXNwb25zZS5TWVNTQ1BMLFNZU1RDUElQSE9TVE5BTUU6Zi5hZGFwdGVyUmVzcG9uc2UuU1lTVENQSVBIT1NUTkFNRSxTWVNWTE9ORzpmLmFkYXB0ZXJSZXNwb25zZS5TWVNWTE9ORyxNRU1TSVpF'@; put 'OmYuYWRhcHRlclJlc3BvbnNlLk1FTVNJWkUsU1lTUFJPQ0VTU01PREU6Zi5hZGFwdGVyUmVzcG9uc2UuU1lTUFJPQ0VTU01PREUsU1lTSE9TVE5BTUU6Zi5hZGFwdGVyUmVzcG9uc2UuU1lTSE9TVE5BTUUsU1lTVVNFUklEOmYuYWRhcHRlclJlc3BvbnNlLlNZU1VTRVJJRCxTWVNIT1NUSU5G'@; put 'T0xPTkc6Zi5hZGFwdGVyUmVzcG9uc2UuU1lTSE9TVElORk9MT05HLFNZU0VOQ09ESU5HOmYuYWRhcHRlclJlc3BvbnNlLlNZU0VOQ09ESU5HLEFVVE9FWEVDOmYuYWRhcHRlclJlc3BvbnNlLkFVVE9FWEVDLElTQURNSU46Zi5hZGFwdGVyUmVzcG9uc2UuZ2xvYnZhcnNbMF0uSVNBRE1JTixE'@; put 'Q19BRE1JTl9HUk9VUDpmLmFkYXB0ZXJSZXNwb25zZS5nbG9idmFyc1swXS5EQ19BRE1JTl9HUk9VUCxBUFBfTE9DOk0/LmFwcExvY307bGV0IHJlLHVlLEk9Zi5hZGFwdGVyUmVzcG9uc2Uuc2FzZGF0YXNldHMsRz17fTtmb3IobGV0IEdlIG9mIEkpR1tHZS5MSUJSRUZdfHwoR1tHZS5MSUJS'@; put 'RUZdPVtdKSxHW0dlLkxJQlJFRl0ucHVzaChHZS5EU04pO2xldCB5ZT1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KEcpKSxFZT1bXTtmb3IobGV0IEdlIG9mIE9iamVjdC5rZXlzKHllKSlFZS5wdXNoKHtMSUJSQVJZUkVGOkdlLHRhYmxlczp5ZVtHZV19KTtsZXQgQmU9RWU7cmU9Ryx1ZT1P'@; put 'YmplY3Qua2V5cyhHKSx2b2lkIDAhPT1yZSYmKEpuLmVkaXRvci5saWJzQW5kVGFibGVzPXJlKSxKbi54bG1hcHM9Zi5hZGFwdGVyUmVzcG9uc2UueGxtYXBzLm1hcChHZT0+KHtpZDpHZVswXSxkZXNjcmlwdGlvbjpHZVsxXSx0YXJnZXREUzpHZVsyXX0pKSxKbi5lZGl0b3IudHJlZU5vZGVM'@; put 'aWJyYXJpZXM9QmUsSm4uZWRpdG9yLmxpYnJhcmllcz11ZSxKbi5lZGl0b3Iuc3RhcnR1cFNldD0hMCxKbi5kY0xpYj1mLmFkYXB0ZXJSZXNwb25zZS5nbG9idmFyc1swXS5EQ0xJQix5aWVsZCBhLmxpY2VuY2VTZXJ2aWNlLmFjdGl2YXRpb24oZi5hZGFwdGVyUmVzcG9uc2UpfSk7cmV0dXJu'@; put 'IGZ1bmN0aW9uKGYpe3JldHVybiBoLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpLmNhdGNoKGg9PntkPSEwLGEuZXZlbnRTZXJ2aWNlLnNob3dJbmZvTW9kYWwoIkVycm9yIiwiVGhlcmUgaXMgYW4gaXNzdWUgd2l0aCBzdGFydHVwc2VydmljZSByZXNwb25zZSIpLGEubGljZW5jZVNlcnZp'@; put 'Y2UuaXNBcHBBY3RpdmF0ZWQubmV4dCghMSl9KSxhLmxvZ2dlclNlcnZpY2UubG9nKCJBY3RpdmF0ZWQ6IixhLmxpY2VuY2VTZXJ2aWNlLmlzQXBwQWN0aXZhdGVkLnZhbHVlKSxkfHwoYS5ldmVudFNlcnZpY2Uuc3RhcnR1cERhdGFMb2FkZWQoKSxhLmxpY2VuY2VTZXJ2aWNlLmlzQXBwQWN0'@; put 'aXZhdGVkLnZhbHVlP2Eucm91dGVyLnVybC5pbmNsdWRlcygibGljZW5zaW5nIikmJmEucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9ob21lIik6IWEucm91dGVyLnVybC5pbmNsdWRlcygiZGVwbG95IikmJiFhLnJvdXRlci51cmwuaW5jbHVkZXMoImxpY2Vuc2luZyIpJiZhLnJvdXRlci5uYXZp'@; put 'Z2F0ZUJ5VXJsKCIvbGljZW5zaW5nL2tleT9lcnJvcj1taXNzaW5nJmZvcmNlPXRydWUiKSl9KSgpfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpKENyKGMxKSxDcihtYyksQ3IoVm8pLENyKFNkKSxDcihKUiksQ3IoTG8pLENyKFE4KSl9fXN0YXRp'@; put 'Y3t0aGlzLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pfX1yZXR1cm4gY30pKCksenVlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkKXt0aGlzLl9yZW5kZXJlcj1hLHRoaXMuX2VsZW1lbnRSZWY9ZCx0aGlzLm9uQ2hhbmdlPWg9Pnt9LHRoaXMub25U'@; put 'b3VjaGVkPSgpPT57fX1zZXRQcm9wZXJ0eShhLGQpe3RoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxhLGQpfXJlZ2lzdGVyT25Ub3VjaGVkKGEpe3RoaXMub25Ub3VjaGVkPWF9cmVnaXN0ZXJPbkNoYW5nZShhKXt0aGlzLm9uQ2hhbmdl'@; put 'PWF9c2V0RGlzYWJsZWRTdGF0ZShhKXt0aGlzLnNldFByb3BlcnR5KCJkaXNhYmxlZCIsYSl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUoRXMpLCRlKFFpKSl9fXN0YXRpY3t0aGlzLlx1MDI3NWRpcj1Fcih7dHlwZTpjfSl9fXJldHVybiBj'@; put 'fSkoKSxhNz0oKCk9PntjbGFzcyBjIGV4dGVuZHMgenVle3N0YXRpY3t0aGlzLlx1MDI3NWZhYz0oKCk9PntsZXQgYTtyZXR1cm4gZnVuY3Rpb24oaCl7cmV0dXJuKGF8fChhPVVvKGMpKSkoaHx8Yyl9fSkoKX1zdGF0aWN7dGhpcy5cdTAyNzVkaXI9RXIoe3R5cGU6YyxmZWF0dXJlczpbQ2Fd'@; put 'fSl9fXJldHVybiBjfSkoKTtjb25zdCBfcD1uZXcgU3QoIiIpLGVPZT17cHJvdmlkZTpfcCx1c2VFeGlzdGluZzp3bygoKT0+TWQpLG11bHRpOiEwfTtsZXQgTWQ9KCgpPT57Y2xhc3MgYyBleHRlbmRzIGE3e3dyaXRlVmFsdWUoYSl7dGhpcy5zZXRQcm9wZXJ0eSgiY2hlY2tlZCIsYSl9c3Rh'@; put 'dGlje3RoaXMuXHUwMjc1ZmFjPSgoKT0+e2xldCBhO3JldHVybiBmdW5jdGlvbihoKXtyZXR1cm4oYXx8KGE9VW8oYykpKShofHxjKX19KSgpfXN0YXRpY3t0aGlzLlx1MDI3NWRpcj1Fcih7dHlwZTpjLHNlbGVjdG9yczpbWyJpbnB1dCIsInR5cGUiLCJjaGVja2JveCIsImZvcm1Db250cm9s'@; put 'TmFtZSIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwiY2hlY2tib3giLCJmb3JtQ29udHJvbCIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwiY2hlY2tib3giLCJuZ01vZGVsIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihkLGgpezEmZCYmRnQoImNoYW5nZSIsZnVuY3Rpb24odil7cmV0dXJuIGgub25D'@; put 'aGFuZ2Uodi50YXJnZXQuY2hlY2tlZCl9KSgiYmx1ciIsZnVuY3Rpb24oKXtyZXR1cm4gaC5vblRvdWNoZWQoKX0pfSxmZWF0dXJlczpbdWEoW2VPZV0pLENhXX0pfX1yZXR1cm4gY30pKCk7Y29uc3QgdE9lPXtwcm92aWRlOl9wLHVzZUV4aXN0aW5nOndvKCgpPT5HbCksbXVsdGk6ITB9LHJP'@; put 'ZT1uZXcgU3QoIiIpO2xldCBHbD0oKCk9PntjbGFzcyBjIGV4dGVuZHMgenVle2NvbnN0cnVjdG9yKGEsZCxoKXtzdXBlcihhLGQpLHRoaXMuX2NvbXBvc2l0aW9uTW9kZT1oLHRoaXMuX2NvbXBvc2luZz0hMSxudWxsPT10aGlzLl9jb21wb3NpdGlvbk1vZGUmJih0aGlzLl9jb21wb3NpdGlv'@; put 'bk1vZGU9IWZ1bmN0aW9uIG5PZSgpe2NvbnN0IGM9SjUoKT9KNSgpLmdldFVzZXJBZ2VudCgpOiIiO3JldHVybi9hbmRyb2lkIChcZCspLy50ZXN0KGMudG9Mb3dlckNhc2UoKSl9KCkpfXdyaXRlVmFsdWUoYSl7dGhpcy5zZXRQcm9wZXJ0eSgidmFsdWUiLGE/PyIiKX1faGFuZGxlSW5wdXQo'@; put 'YSl7KCF0aGlzLl9jb21wb3NpdGlvbk1vZGV8fHRoaXMuX2NvbXBvc2l0aW9uTW9kZSYmIXRoaXMuX2NvbXBvc2luZykmJnRoaXMub25DaGFuZ2UoYSl9X2NvbXBvc2l0aW9uU3RhcnQoKXt0aGlzLl9jb21wb3Npbmc9ITB9X2NvbXBvc2l0aW9uRW5kKGEpe3RoaXMuX2NvbXBvc2luZz0hMSx0'@; put 'aGlzLl9jb21wb3NpdGlvbk1vZGUmJnRoaXMub25DaGFuZ2UoYSl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUoRXMpLCRlKFFpKSwkZShyT2UsOCkpfX1zdGF0aWN7dGhpcy5cdTAyNzVkaXI9RXIoe3R5cGU6YyxzZWxlY3RvcnM6W1siaW5w'@; put 'dXQiLCJmb3JtQ29udHJvbE5hbWUiLCIiLDMsInR5cGUiLCJjaGVja2JveCJdLFsidGV4dGFyZWEiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbImlucHV0IiwiZm9ybUNvbnRyb2wiLCIiLDMsInR5cGUiLCJjaGVja2JveCJdLFsidGV4dGFyZWEiLCJmb3JtQ29udHJvbCIsIiJdLFsiaW5wdXQi'@; put 'LCJuZ01vZGVsIiwiIiwzLCJ0eXBlIiwiY2hlY2tib3giXSxbInRleHRhcmVhIiwibmdNb2RlbCIsIiJdLFsiIiwibmdEZWZhdWx0Q29udHJvbCIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oZCxoKXsxJmQmJkZ0KCJpbnB1dCIsZnVuY3Rpb24odil7cmV0dXJuIGguX2hhbmRsZUlucHV0'@; put 'KHYudGFyZ2V0LnZhbHVlKX0pKCJibHVyIixmdW5jdGlvbigpe3JldHVybiBoLm9uVG91Y2hlZCgpfSkoImNvbXBvc2l0aW9uc3RhcnQiLGZ1bmN0aW9uKCl7cmV0dXJuIGguX2NvbXBvc2l0aW9uU3RhcnQoKX0pKCJjb21wb3NpdGlvbmVuZCIsZnVuY3Rpb24odil7cmV0dXJuIGguX2NvbXBv'@; put 'c2l0aW9uRW5kKHYudGFyZ2V0LnZhbHVlKX0pfSxmZWF0dXJlczpbdWEoW3RPZV0pLENhXX0pfX1yZXR1cm4gY30pKCk7Y29uc3QgdTA9bmV3IFN0KCIiKSxjbT1uZXcgU3QoIiIpO2Z1bmN0aW9uIFl1ZShjKXtyZXR1cm4gZnVuY3Rpb24gbG0oYyl7cmV0dXJuIG51bGw9PWN8fCgic3RyaW5n'@; put 'Ij09dHlwZW9mIGN8fEFycmF5LmlzQXJyYXkoYykpJiYwPT09Yy5sZW5ndGh9KGMudmFsdWUpP3tyZXF1aXJlZDohMH06bnVsbH1mdW5jdGlvbiBHdWUoYyl7cmV0dXJuITA9PT1jLnZhbHVlP251bGw6e3JlcXVpcmVkOiEwfX1mdW5jdGlvbiBkTChjKXtyZXR1cm4gbnVsbH1mdW5jdGlvbiBK'@; put 'dWUoYyl7cmV0dXJuIG51bGwhPWN9ZnVuY3Rpb24gUXVlKGMpe3JldHVybiB4TShjKT9VdShjKTpjfWZ1bmN0aW9uIGUwZShjKXtsZXQgbD17fTtyZXR1cm4gYy5mb3JFYWNoKGE9PntsPW51bGwhPWE/ey4uLmwsLi4uYX06bH0pLDA9PT1PYmplY3Qua2V5cyhsKS5sZW5ndGg/bnVsbDpsfWZ1'@; put 'bmN0aW9uIHQwZShjLGwpe3JldHVybiBsLm1hcChhPT5hKGMpKX1mdW5jdGlvbiBuMGUoYyl7cmV0dXJuIGMubWFwKGw9PmZ1bmN0aW9uIGFPZShjKXtyZXR1cm4hYy52YWxpZGF0ZX0obCk/bDphPT5sLnZhbGlkYXRlKGEpKX1mdW5jdGlvbiBHVyhjKXtyZXR1cm4gbnVsbCE9Yz9mdW5jdGlv'@; put 'biByMGUoYyl7aWYoIWMpcmV0dXJuIG51bGw7Y29uc3QgbD1jLmZpbHRlcihKdWUpO3JldHVybiAwPT1sLmxlbmd0aD9udWxsOmZ1bmN0aW9uKGEpe3JldHVybiBlMGUodDBlKGEsbCkpfX0objBlKGMpKTpudWxsfWZ1bmN0aW9uICRXKGMpe3JldHVybiBudWxsIT1jP2Z1bmN0aW9uIGkwZShj'@; put 'KXtpZighYylyZXR1cm4gbnVsbDtjb25zdCBsPWMuZmlsdGVyKEp1ZSk7cmV0dXJuIDA9PWwubGVuZ3RoP251bGw6ZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uIFFMZSguLi5jKXtjb25zdCBsPV9sZShjKSx7YXJnczphLGtleXM6ZH09d2xlKGMpLGg9bmV3IFF0KGY9Pntjb25zdHtsZW5n'@; put 'dGg6dn09YTtpZighdilyZXR1cm4gdm9pZCBmLmNvbXBsZXRlKCk7Y29uc3QgTT1uZXcgQXJyYXkodik7bGV0IEk9dixHPXY7Zm9yKGxldCByZT0wO3JlPHY7cmUrKyl7bGV0IHVlPSExO28xKGFbcmVdKS5zdWJzY3JpYmUoSGkoZix5ZT0+e3VlfHwodWU9ITAsRy0tKSxNW3JlXT15ZX0sKCk9'@; put 'PkktLSx2b2lkIDAsKCk9PnsoIUl8fCF1ZSkmJihHfHxmLm5leHQoZD9DbGUoZCxNKTpNKSxmLmNvbXBsZXRlKCkpfSkpfX0pO3JldHVybiBsP2gucGlwZShZWihsKSk6aH0odDBlKGEsbCkubWFwKFF1ZSkpLnBpcGUoUHIoZTBlKSl9fShuMGUoYykpOm51bGx9ZnVuY3Rpb24gYTBlKGMsbCl7'@; put 'cmV0dXJuIG51bGw9PT1jP1tsXTpBcnJheS5pc0FycmF5KGMpP1suLi5jLGxdOltjLGxdfWZ1bmN0aW9uIEtXKGMpe3JldHVybiBjP0FycmF5LmlzQXJyYXkoYyk/YzpbY106W119ZnVuY3Rpb24gaEwoYyxsKXtyZXR1cm4gQXJyYXkuaXNBcnJheShjKT9jLmluY2x1ZGVzKGwpOmM9PT1sfWZ1'@; put 'bmN0aW9uIGwwZShjLGwpe2NvbnN0IGE9S1cobCk7cmV0dXJuIEtXKGMpLmZvckVhY2goaD0+e2hMKGEsaCl8fGEucHVzaChoKX0pLGF9ZnVuY3Rpb24gYzBlKGMsbCl7cmV0dXJuIEtXKGwpLmZpbHRlcihhPT4haEwoYyxhKSl9Y2xhc3MgdTBle2NvbnN0cnVjdG9yKCl7dGhpcy5fcmF3VmFs'@; put 'aWRhdG9ycz1bXSx0aGlzLl9yYXdBc3luY1ZhbGlkYXRvcnM9W10sdGhpcy5fb25EZXN0cm95Q2FsbGJhY2tzPVtdfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLnZhbHVlOm51bGx9Z2V0IHZhbGlkKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRy'@; put 'b2wudmFsaWQ6bnVsbH1nZXQgaW52YWxpZCgpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLmludmFsaWQ6bnVsbH1nZXQgcGVuZGluZygpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLnBlbmRpbmc6bnVsbH1nZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5jb250'@; put 'cm9sP3RoaXMuY29udHJvbC5kaXNhYmxlZDpudWxsfWdldCBlbmFibGVkKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wuZW5hYmxlZDpudWxsfWdldCBlcnJvcnMoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC5lcnJvcnM6bnVsbH1nZXQgcHJpc3RpbmUoKXty'@; put 'ZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC5wcmlzdGluZTpudWxsfWdldCBkaXJ0eSgpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLmRpcnR5Om51bGx9Z2V0IHRvdWNoZWQoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC50b3VjaGVkOm51bGx9Z2V0'@; put 'IHN0YXR1cygpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLnN0YXR1czpudWxsfWdldCB1bnRvdWNoZWQoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC51bnRvdWNoZWQ6bnVsbH1nZXQgc3RhdHVzQ2hhbmdlcygpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5j'@; put 'b250cm9sLnN0YXR1c0NoYW5nZXM6bnVsbH1nZXQgdmFsdWVDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzOm51bGx9Z2V0IHBhdGgoKXtyZXR1cm4gbnVsbH1fc2V0VmFsaWRhdG9ycyhsKXt0aGlzLl9yYXdWYWxpZGF0b3JzPWx8fFtdLHRo'@; put 'aXMuX2NvbXBvc2VkVmFsaWRhdG9yRm49R1codGhpcy5fcmF3VmFsaWRhdG9ycyl9X3NldEFzeW5jVmFsaWRhdG9ycyhsKXt0aGlzLl9yYXdBc3luY1ZhbGlkYXRvcnM9bHx8W10sdGhpcy5fY29tcG9zZWRBc3luY1ZhbGlkYXRvckZuPSRXKHRoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycyl9Z2V0'@; put 'IHZhbGlkYXRvcigpe3JldHVybiB0aGlzLl9jb21wb3NlZFZhbGlkYXRvckZufHxudWxsfWdldCBhc3luY1ZhbGlkYXRvcigpe3JldHVybiB0aGlzLl9jb21wb3NlZEFzeW5jVmFsaWRhdG9yRm58fG51bGx9X3JlZ2lzdGVyT25EZXN0cm95KGwpe3RoaXMuX29uRGVzdHJveUNhbGxiYWNrcy5w'@; put 'dXNoKGwpfV9pbnZva2VPbkRlc3Ryb3lDYWxsYmFja3MoKXt0aGlzLl9vbkRlc3Ryb3lDYWxsYmFja3MuZm9yRWFjaChsPT5sKCkpLHRoaXMuX29uRGVzdHJveUNhbGxiYWNrcz1bXX1yZXNldChsPXZvaWQgMCl7dGhpcy5jb250cm9sJiZ0aGlzLmNvbnRyb2wucmVzZXQobCl9aGFzRXJyb3Io'@; put 'bCxhKXtyZXR1cm4hIXRoaXMuY29udHJvbCYmdGhpcy5jb250cm9sLmhhc0Vycm9yKGwsYSl9Z2V0RXJyb3IobCxhKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC5nZXRFcnJvcihsLGEpOm51bGx9fWNsYXNzIHoxIGV4dGVuZHMgdTBle2dldCBmb3JtRGlyZWN0aXZlKCl7cmV0'@; put 'dXJuIG51bGx9Z2V0IHBhdGgoKXtyZXR1cm4gbnVsbH19Y2xhc3MgdTEgZXh0ZW5kcyB1MGV7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3BhcmVudD1udWxsLHRoaXMubmFtZT1udWxsLHRoaXMudmFsdWVBY2Nlc3Nvcj1udWxsfX1jbGFzcyBkMGV7Y29uc3RydWN0'@; put 'b3IobCl7dGhpcy5fY2Q9bH1nZXQgaXNUb3VjaGVkKCl7cmV0dXJuISF0aGlzLl9jZD8uY29udHJvbD8udG91Y2hlZH1nZXQgaXNVbnRvdWNoZWQoKXtyZXR1cm4hIXRoaXMuX2NkPy5jb250cm9sPy51bnRvdWNoZWR9Z2V0IGlzUHJpc3RpbmUoKXtyZXR1cm4hIXRoaXMuX2NkPy5jb250cm9s'@; put 'Py5wcmlzdGluZX1nZXQgaXNEaXJ0eSgpe3JldHVybiEhdGhpcy5fY2Q/LmNvbnRyb2w/LmRpcnR5fWdldCBpc1ZhbGlkKCl7cmV0dXJuISF0aGlzLl9jZD8uY29udHJvbD8udmFsaWR9Z2V0IGlzSW52YWxpZCgpe3JldHVybiEhdGhpcy5fY2Q/LmNvbnRyb2w/LmludmFsaWR9Z2V0IGlzUGVu'@; put 'ZGluZygpe3JldHVybiEhdGhpcy5fY2Q/LmNvbnRyb2w/LnBlbmRpbmd9Z2V0IGlzU3VibWl0dGVkKCl7cmV0dXJuISF0aGlzLl9jZD8uc3VibWl0dGVkfX1sZXQgdGw9KCgpPT57Y2xhc3MgYyBleHRlbmRzIGQwZXtjb25zdHJ1Y3RvcihhKXtzdXBlcihhKX1zdGF0aWN7dGhpcy5cdTAyNzVm'@; put 'YWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKSgkZSh1MSwyKSl9fXN0YXRpY3t0aGlzLlx1MDI3NWRpcj1Fcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbIiIsIm5nTW9kZWwiLCIiXSxbIiIsImZvcm1Db250cm9sIiwiIl1dLGhvc3RWYXJzOjE0'@; put 'LGhvc3RCaW5kaW5nczpmdW5jdGlvbihkLGgpezImZCYmVHIoIm5nLXVudG91Y2hlZCIsaC5pc1VudG91Y2hlZCkoIm5nLXRvdWNoZWQiLGguaXNUb3VjaGVkKSgibmctcHJpc3RpbmUiLGguaXNQcmlzdGluZSkoIm5nLWRpcnR5IixoLmlzRGlydHkpKCJuZy12YWxpZCIsaC5pc1ZhbGlkKSgi'@; put 'bmctaW52YWxpZCIsaC5pc0ludmFsaWQpKCJuZy1wZW5kaW5nIixoLmlzUGVuZGluZyl9LGZlYXR1cmVzOltDYV19KX19cmV0dXJuIGN9KSgpLHM3PSgoKT0+e2NsYXNzIGMgZXh0ZW5kcyBkMGV7Y29uc3RydWN0b3IoYSl7c3VwZXIoYSl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9u'@; put 'KGQpe3JldHVybiBuZXcoZHx8YykoJGUoejEsMTApKX19c3RhdGlje3RoaXMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsImZvcm1Hcm91cE5hbWUiLCIiXSxbIiIsImZvcm1BcnJheU5hbWUiLCIiXSxbIiIsIm5nTW9kZWxHcm91cCIsIiJdLFsiIiwiZm9ybUdyb3VwIiwi'@; put 'Il0sWyJmb3JtIiwzLCJuZ05vRm9ybSIsIiJdLFsiIiwibmdGb3JtIiwiIl1dLGhvc3RWYXJzOjE2LGhvc3RCaW5kaW5nczpmdW5jdGlvbihkLGgpezImZCYmVHIoIm5nLXVudG91Y2hlZCIsaC5pc1VudG91Y2hlZCkoIm5nLXRvdWNoZWQiLGguaXNUb3VjaGVkKSgibmctcHJpc3RpbmUiLGgu'@; put 'aXNQcmlzdGluZSkoIm5nLWRpcnR5IixoLmlzRGlydHkpKCJuZy12YWxpZCIsaC5pc1ZhbGlkKSgibmctaW52YWxpZCIsaC5pc0ludmFsaWQpKCJuZy1wZW5kaW5nIixoLmlzUGVuZGluZykoIm5nLXN1Ym1pdHRlZCIsaC5pc1N1Ym1pdHRlZCl9LGZlYXR1cmVzOltDYV19KX19cmV0dXJuIGN9'@; put 'KSgpO2NvbnN0IG14PSJWQUxJRCIscEw9IklOVkFMSUQiLHdiPSJQRU5ESU5HIix2eD0iRElTQUJMRUQiO2Z1bmN0aW9uIEpXKGMpe3JldHVybihnTChjKT9jLnZhbGlkYXRvcnM6Yyl8fG51bGx9ZnVuY3Rpb24gUVcoYyxsKXtyZXR1cm4oZ0wobCk/bC5hc3luY1ZhbGlkYXRvcnM6Yyl8fG51'@; put 'bGx9ZnVuY3Rpb24gZ0woYyl7cmV0dXJuIG51bGwhPWMmJiFBcnJheS5pc0FycmF5KGMpJiYib2JqZWN0Ij09dHlwZW9mIGN9Y2xhc3MgZVl7Y29uc3RydWN0b3IobCxhKXt0aGlzLl9wZW5kaW5nRGlydHk9ITEsdGhpcy5faGFzT3duUGVuZGluZ0FzeW5jVmFsaWRhdG9yPSExLHRoaXMuX3Bl'@; put 'bmRpbmdUb3VjaGVkPSExLHRoaXMuX29uQ29sbGVjdGlvbkNoYW5nZT0oKT0+e30sdGhpcy5fcGFyZW50PW51bGwsdGhpcy5wcmlzdGluZT0hMCx0aGlzLnRvdWNoZWQ9ITEsdGhpcy5fb25EaXNhYmxlZENoYW5nZT1bXSx0aGlzLl9hc3NpZ25WYWxpZGF0b3JzKGwpLHRoaXMuX2Fzc2lnbkFz'@; put 'eW5jVmFsaWRhdG9ycyhhKX1nZXQgdmFsaWRhdG9yKCl7cmV0dXJuIHRoaXMuX2NvbXBvc2VkVmFsaWRhdG9yRm59c2V0IHZhbGlkYXRvcihsKXt0aGlzLl9yYXdWYWxpZGF0b3JzPXRoaXMuX2NvbXBvc2VkVmFsaWRhdG9yRm49bH1nZXQgYXN5bmNWYWxpZGF0b3IoKXtyZXR1cm4gdGhpcy5f'@; put 'Y29tcG9zZWRBc3luY1ZhbGlkYXRvckZufXNldCBhc3luY1ZhbGlkYXRvcihsKXt0aGlzLl9yYXdBc3luY1ZhbGlkYXRvcnM9dGhpcy5fY29tcG9zZWRBc3luY1ZhbGlkYXRvckZuPWx9Z2V0IHBhcmVudCgpe3JldHVybiB0aGlzLl9wYXJlbnR9Z2V0IHZhbGlkKCl7cmV0dXJuIHRoaXMuc3Rh'@; put 'dHVzPT09bXh9Z2V0IGludmFsaWQoKXtyZXR1cm4gdGhpcy5zdGF0dXM9PT1wTH1nZXQgcGVuZGluZygpe3JldHVybiB0aGlzLnN0YXR1cz09d2J9Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuc3RhdHVzPT09dnh9Z2V0IGVuYWJsZWQoKXtyZXR1cm4gdGhpcy5zdGF0dXMhPT12eH1nZXQg'@; put 'ZGlydHkoKXtyZXR1cm4hdGhpcy5wcmlzdGluZX1nZXQgdW50b3VjaGVkKCl7cmV0dXJuIXRoaXMudG91Y2hlZH1nZXQgdXBkYXRlT24oKXtyZXR1cm4gdGhpcy5fdXBkYXRlT24/dGhpcy5fdXBkYXRlT246dGhpcy5wYXJlbnQ/dGhpcy5wYXJlbnQudXBkYXRlT246ImNoYW5nZSJ9c2V0VmFs'@; put 'aWRhdG9ycyhsKXt0aGlzLl9hc3NpZ25WYWxpZGF0b3JzKGwpfXNldEFzeW5jVmFsaWRhdG9ycyhsKXt0aGlzLl9hc3NpZ25Bc3luY1ZhbGlkYXRvcnMobCl9YWRkVmFsaWRhdG9ycyhsKXt0aGlzLnNldFZhbGlkYXRvcnMobDBlKGwsdGhpcy5fcmF3VmFsaWRhdG9ycykpfWFkZEFzeW5jVmFs'@; put 'aWRhdG9ycyhsKXt0aGlzLnNldEFzeW5jVmFsaWRhdG9ycyhsMGUobCx0aGlzLl9yYXdBc3luY1ZhbGlkYXRvcnMpKX1yZW1vdmVWYWxpZGF0b3JzKGwpe3RoaXMuc2V0VmFsaWRhdG9ycyhjMGUobCx0aGlzLl9yYXdWYWxpZGF0b3JzKSl9cmVtb3ZlQXN5bmNWYWxpZGF0b3JzKGwpe3RoaXMu'@; put 'c2V0QXN5bmNWYWxpZGF0b3JzKGMwZShsLHRoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycykpfWhhc1ZhbGlkYXRvcihsKXtyZXR1cm4gaEwodGhpcy5fcmF3VmFsaWRhdG9ycyxsKX1oYXNBc3luY1ZhbGlkYXRvcihsKXtyZXR1cm4gaEwodGhpcy5fcmF3QXN5bmNWYWxpZGF0b3JzLGwpfWNsZWFy'@; put 'VmFsaWRhdG9ycygpe3RoaXMudmFsaWRhdG9yPW51bGx9Y2xlYXJBc3luY1ZhbGlkYXRvcnMoKXt0aGlzLmFzeW5jVmFsaWRhdG9yPW51bGx9bWFya0FzVG91Y2hlZChsPXt9KXt0aGlzLnRvdWNoZWQ9ITAsdGhpcy5fcGFyZW50JiYhbC5vbmx5U2VsZiYmdGhpcy5fcGFyZW50Lm1hcmtBc1Rv'@; put 'dWNoZWQobCl9bWFya0FsbEFzVG91Y2hlZCgpe3RoaXMubWFya0FzVG91Y2hlZCh7b25seVNlbGY6ITB9KSx0aGlzLl9mb3JFYWNoQ2hpbGQobD0+bC5tYXJrQWxsQXNUb3VjaGVkKCkpfW1hcmtBc1VudG91Y2hlZChsPXt9KXt0aGlzLnRvdWNoZWQ9ITEsdGhpcy5fcGVuZGluZ1RvdWNoZWQ9'@; put 'ITEsdGhpcy5fZm9yRWFjaENoaWxkKGE9PnthLm1hcmtBc1VudG91Y2hlZCh7b25seVNlbGY6ITB9KX0pLHRoaXMuX3BhcmVudCYmIWwub25seVNlbGYmJnRoaXMuX3BhcmVudC5fdXBkYXRlVG91Y2hlZChsKX1tYXJrQXNEaXJ0eShsPXt9KXt0aGlzLnByaXN0aW5lPSExLHRoaXMuX3BhcmVu'@; put 'dCYmIWwub25seVNlbGYmJnRoaXMuX3BhcmVudC5tYXJrQXNEaXJ0eShsKX1tYXJrQXNQcmlzdGluZShsPXt9KXt0aGlzLnByaXN0aW5lPSEwLHRoaXMuX3BlbmRpbmdEaXJ0eT0hMSx0aGlzLl9mb3JFYWNoQ2hpbGQoYT0+e2EubWFya0FzUHJpc3RpbmUoe29ubHlTZWxmOiEwfSl9KSx0aGlz'@; put 'Ll9wYXJlbnQmJiFsLm9ubHlTZWxmJiZ0aGlzLl9wYXJlbnQuX3VwZGF0ZVByaXN0aW5lKGwpfW1hcmtBc1BlbmRpbmcobD17fSl7dGhpcy5zdGF0dXM9d2IsITEhPT1sLmVtaXRFdmVudCYmdGhpcy5zdGF0dXNDaGFuZ2VzLmVtaXQodGhpcy5zdGF0dXMpLHRoaXMuX3BhcmVudCYmIWwub25s'@; put 'eVNlbGYmJnRoaXMuX3BhcmVudC5tYXJrQXNQZW5kaW5nKGwpfWRpc2FibGUobD17fSl7Y29uc3QgYT10aGlzLl9wYXJlbnRNYXJrZWREaXJ0eShsLm9ubHlTZWxmKTt0aGlzLnN0YXR1cz12eCx0aGlzLmVycm9ycz1udWxsLHRoaXMuX2ZvckVhY2hDaGlsZChkPT57ZC5kaXNhYmxlKHsuLi5s'@; put 'LG9ubHlTZWxmOiEwfSl9KSx0aGlzLl91cGRhdGVWYWx1ZSgpLCExIT09bC5lbWl0RXZlbnQmJih0aGlzLnZhbHVlQ2hhbmdlcy5lbWl0KHRoaXMudmFsdWUpLHRoaXMuc3RhdHVzQ2hhbmdlcy5lbWl0KHRoaXMuc3RhdHVzKSksdGhpcy5fdXBkYXRlQW5jZXN0b3JzKHsuLi5sLHNraXBQcmlz'@; put 'dGluZUNoZWNrOmF9KSx0aGlzLl9vbkRpc2FibGVkQ2hhbmdlLmZvckVhY2goZD0+ZCghMCkpfWVuYWJsZShsPXt9KXtjb25zdCBhPXRoaXMuX3BhcmVudE1hcmtlZERpcnR5KGwub25seVNlbGYpO3RoaXMuc3RhdHVzPW14LHRoaXMuX2ZvckVhY2hDaGlsZChkPT57ZC5lbmFibGUoey4uLmws'@; put 'b25seVNlbGY6ITB9KX0pLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7b25seVNlbGY6ITAsZW1pdEV2ZW50OmwuZW1pdEV2ZW50fSksdGhpcy5fdXBkYXRlQW5jZXN0b3JzKHsuLi5sLHNraXBQcmlzdGluZUNoZWNrOmF9KSx0aGlzLl9vbkRpc2FibGVkQ2hhbmdlLmZvckVhY2goZD0+'@; put 'ZCghMSkpfV91cGRhdGVBbmNlc3RvcnMobCl7dGhpcy5fcGFyZW50JiYhbC5vbmx5U2VsZiYmKHRoaXMuX3BhcmVudC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KGwpLGwuc2tpcFByaXN0aW5lQ2hlY2t8fHRoaXMuX3BhcmVudC5fdXBkYXRlUHJpc3RpbmUoKSx0aGlzLl9wYXJlbnQuX3VwZGF0'@; put 'ZVRvdWNoZWQoKSl9c2V0UGFyZW50KGwpe3RoaXMuX3BhcmVudD1sfWdldFJhd1ZhbHVlKCl7cmV0dXJuIHRoaXMudmFsdWV9dXBkYXRlVmFsdWVBbmRWYWxpZGl0eShsPXt9KXt0aGlzLl9zZXRJbml0aWFsU3RhdHVzKCksdGhpcy5fdXBkYXRlVmFsdWUoKSx0aGlzLmVuYWJsZWQmJih0aGlz'@; put 'Ll9jYW5jZWxFeGlzdGluZ1N1YnNjcmlwdGlvbigpLHRoaXMuZXJyb3JzPXRoaXMuX3J1blZhbGlkYXRvcigpLHRoaXMuc3RhdHVzPXRoaXMuX2NhbGN1bGF0ZVN0YXR1cygpLCh0aGlzLnN0YXR1cz09PW14fHx0aGlzLnN0YXR1cz09PXdiKSYmdGhpcy5fcnVuQXN5bmNWYWxpZGF0b3IobC5l'@; put 'bWl0RXZlbnQpKSwhMSE9PWwuZW1pdEV2ZW50JiYodGhpcy52YWx1ZUNoYW5nZXMuZW1pdCh0aGlzLnZhbHVlKSx0aGlzLnN0YXR1c0NoYW5nZXMuZW1pdCh0aGlzLnN0YXR1cykpLHRoaXMuX3BhcmVudCYmIWwub25seVNlbGYmJnRoaXMuX3BhcmVudC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5'@; put 'KGwpfV91cGRhdGVUcmVlVmFsaWRpdHkobD17ZW1pdEV2ZW50OiEwfSl7dGhpcy5fZm9yRWFjaENoaWxkKGE9PmEuX3VwZGF0ZVRyZWVWYWxpZGl0eShsKSksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6bC5lbWl0RXZlbnR9KX1fc2V0SW5pdGlh'@; put 'bFN0YXR1cygpe3RoaXMuc3RhdHVzPXRoaXMuX2FsbENvbnRyb2xzRGlzYWJsZWQoKT92eDpteH1fcnVuVmFsaWRhdG9yKCl7cmV0dXJuIHRoaXMudmFsaWRhdG9yP3RoaXMudmFsaWRhdG9yKHRoaXMpOm51bGx9X3J1bkFzeW5jVmFsaWRhdG9yKGwpe2lmKHRoaXMuYXN5bmNWYWxpZGF0b3Ip'@; put 'e3RoaXMuc3RhdHVzPXdiLHRoaXMuX2hhc093blBlbmRpbmdBc3luY1ZhbGlkYXRvcj0hMDtjb25zdCBhPVF1ZSh0aGlzLmFzeW5jVmFsaWRhdG9yKHRoaXMpKTt0aGlzLl9hc3luY1ZhbGlkYXRpb25TdWJzY3JpcHRpb249YS5zdWJzY3JpYmUoZD0+e3RoaXMuX2hhc093blBlbmRpbmdBc3lu'@; put 'Y1ZhbGlkYXRvcj0hMSx0aGlzLnNldEVycm9ycyhkLHtlbWl0RXZlbnQ6bH0pfSl9fV9jYW5jZWxFeGlzdGluZ1N1YnNjcmlwdGlvbigpe3RoaXMuX2FzeW5jVmFsaWRhdGlvblN1YnNjcmlwdGlvbiYmKHRoaXMuX2FzeW5jVmFsaWRhdGlvblN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRo'@; put 'aXMuX2hhc093blBlbmRpbmdBc3luY1ZhbGlkYXRvcj0hMSl9c2V0RXJyb3JzKGwsYT17fSl7dGhpcy5lcnJvcnM9bCx0aGlzLl91cGRhdGVDb250cm9sc0Vycm9ycyghMSE9PWEuZW1pdEV2ZW50KX1nZXQobCl7bGV0IGE9bDtyZXR1cm4gbnVsbD09YXx8KEFycmF5LmlzQXJyYXkoYSl8fChh'@; put 'PWEuc3BsaXQoIi4iKSksMD09PWEubGVuZ3RoKT9udWxsOmEucmVkdWNlKChkLGgpPT5kJiZkLl9maW5kKGgpLHRoaXMpfWdldEVycm9yKGwsYSl7Y29uc3QgZD1hP3RoaXMuZ2V0KGEpOnRoaXM7cmV0dXJuIGQmJmQuZXJyb3JzP2QuZXJyb3JzW2xdOm51bGx9aGFzRXJyb3IobCxhKXtyZXR1'@; put 'cm4hIXRoaXMuZ2V0RXJyb3IobCxhKX1nZXQgcm9vdCgpe2xldCBsPXRoaXM7Zm9yKDtsLl9wYXJlbnQ7KWw9bC5fcGFyZW50O3JldHVybiBsfV91cGRhdGVDb250cm9sc0Vycm9ycyhsKXt0aGlzLnN0YXR1cz10aGlzLl9jYWxjdWxhdGVTdGF0dXMoKSxsJiZ0aGlzLnN0YXR1c0NoYW5nZXMu'@; put 'ZW1pdCh0aGlzLnN0YXR1cyksdGhpcy5fcGFyZW50JiZ0aGlzLl9wYXJlbnQuX3VwZGF0ZUNvbnRyb2xzRXJyb3JzKGwpfV9pbml0T2JzZXJ2YWJsZXMoKXt0aGlzLnZhbHVlQ2hhbmdlcz1uZXcgS3IsdGhpcy5zdGF0dXNDaGFuZ2VzPW5ldyBLcn1fY2FsY3VsYXRlU3RhdHVzKCl7cmV0dXJu'@; put 'IHRoaXMuX2FsbENvbnRyb2xzRGlzYWJsZWQoKT92eDp0aGlzLmVycm9ycz9wTDp0aGlzLl9oYXNPd25QZW5kaW5nQXN5bmNWYWxpZGF0b3J8fHRoaXMuX2FueUNvbnRyb2xzSGF2ZVN0YXR1cyh3Yik/d2I6dGhpcy5fYW55Q29udHJvbHNIYXZlU3RhdHVzKHBMKT9wTDpteH1fYW55Q29udHJv'@; put 'bHNIYXZlU3RhdHVzKGwpe3JldHVybiB0aGlzLl9hbnlDb250cm9scyhhPT5hLnN0YXR1cz09PWwpfV9hbnlDb250cm9sc0RpcnR5KCl7cmV0dXJuIHRoaXMuX2FueUNvbnRyb2xzKGw9PmwuZGlydHkpfV9hbnlDb250cm9sc1RvdWNoZWQoKXtyZXR1cm4gdGhpcy5fYW55Q29udHJvbHMobD0+'@; put 'bC50b3VjaGVkKX1fdXBkYXRlUHJpc3RpbmUobD17fSl7dGhpcy5wcmlzdGluZT0hdGhpcy5fYW55Q29udHJvbHNEaXJ0eSgpLHRoaXMuX3BhcmVudCYmIWwub25seVNlbGYmJnRoaXMuX3BhcmVudC5fdXBkYXRlUHJpc3RpbmUobCl9X3VwZGF0ZVRvdWNoZWQobD17fSl7dGhpcy50b3VjaGVk'@; put 'PXRoaXMuX2FueUNvbnRyb2xzVG91Y2hlZCgpLHRoaXMuX3BhcmVudCYmIWwub25seVNlbGYmJnRoaXMuX3BhcmVudC5fdXBkYXRlVG91Y2hlZChsKX1fcmVnaXN0ZXJPbkNvbGxlY3Rpb25DaGFuZ2UobCl7dGhpcy5fb25Db2xsZWN0aW9uQ2hhbmdlPWx9X3NldFVwZGF0ZVN0cmF0ZWd5KGwp'@; put 'e2dMKGwpJiZudWxsIT1sLnVwZGF0ZU9uJiYodGhpcy5fdXBkYXRlT249bC51cGRhdGVPbil9X3BhcmVudE1hcmtlZERpcnR5KGwpe3JldHVybiFsJiYhKCF0aGlzLl9wYXJlbnR8fCF0aGlzLl9wYXJlbnQuZGlydHkpJiYhdGhpcy5fcGFyZW50Ll9hbnlDb250cm9sc0RpcnR5KCl9X2ZpbmQo'@; put 'bCl7cmV0dXJuIG51bGx9X2Fzc2lnblZhbGlkYXRvcnMobCl7dGhpcy5fcmF3VmFsaWRhdG9ycz1BcnJheS5pc0FycmF5KGwpP2wuc2xpY2UoKTpsLHRoaXMuX2NvbXBvc2VkVmFsaWRhdG9yRm49ZnVuY3Rpb24gY09lKGMpe3JldHVybiBBcnJheS5pc0FycmF5KGMpP0dXKGMpOmN8fG51bGx9'@; put 'KHRoaXMuX3Jhd1ZhbGlkYXRvcnMpfV9hc3NpZ25Bc3luY1ZhbGlkYXRvcnMobCl7dGhpcy5fcmF3QXN5bmNWYWxpZGF0b3JzPUFycmF5LmlzQXJyYXkobCk/bC5zbGljZSgpOmwsdGhpcy5fY29tcG9zZWRBc3luY1ZhbGlkYXRvckZuPWZ1bmN0aW9uIHVPZShjKXtyZXR1cm4gQXJyYXkuaXNB'@; put 'cnJheShjKT8kVyhjKTpjfHxudWxsfSh0aGlzLl9yYXdBc3luY1ZhbGlkYXRvcnMpfX1jbGFzcyBtTCBleHRlbmRzIGVZe2NvbnN0cnVjdG9yKGwsYSxkKXtzdXBlcihKVyhhKSxRVyhkLGEpKSx0aGlzLmNvbnRyb2xzPWwsdGhpcy5faW5pdE9ic2VydmFibGVzKCksdGhpcy5fc2V0VXBkYXRl'@; put 'U3RyYXRlZ3koYSksdGhpcy5fc2V0VXBDb250cm9scygpLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7b25seVNlbGY6ITAsZW1pdEV2ZW50OiEhdGhpcy5hc3luY1ZhbGlkYXRvcn0pfXJlZ2lzdGVyQ29udHJvbChsLGEpe3JldHVybiB0aGlzLmNvbnRyb2xzW2xdP3RoaXMuY29udHJv'@; put 'bHNbbF06KHRoaXMuY29udHJvbHNbbF09YSxhLnNldFBhcmVudCh0aGlzKSxhLl9yZWdpc3Rlck9uQ29sbGVjdGlvbkNoYW5nZSh0aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2UpLGEpfWFkZENvbnRyb2wobCxhLGQ9e30pe3RoaXMucmVnaXN0ZXJDb250cm9sKGwsYSksdGhpcy51cGRhdGVWYWx1'@; put 'ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6ZC5lbWl0RXZlbnR9KSx0aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2UoKX1yZW1vdmVDb250cm9sKGwsYT17fSl7dGhpcy5jb250cm9sc1tsXSYmdGhpcy5jb250cm9sc1tsXS5fcmVnaXN0ZXJPbkNvbGxlY3Rpb25DaGFuZ2UoKCk9Pnt9KSxkZWxldGUg'@; put 'dGhpcy5jb250cm9sc1tsXSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDphLmVtaXRFdmVudH0pLHRoaXMuX29uQ29sbGVjdGlvbkNoYW5nZSgpfXNldENvbnRyb2wobCxhLGQ9e30pe3RoaXMuY29udHJvbHNbbF0mJnRoaXMuY29udHJvbHNbbF0uX3JlZ2lzdGVyT25D'@; put 'b2xsZWN0aW9uQ2hhbmdlKCgpPT57fSksZGVsZXRlIHRoaXMuY29udHJvbHNbbF0sYSYmdGhpcy5yZWdpc3RlckNvbnRyb2wobCxhKSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDpkLmVtaXRFdmVudH0pLHRoaXMuX29uQ29sbGVjdGlvbkNoYW5nZSgpfWNvbnRhaW5z'@; put 'KGwpe3JldHVybiB0aGlzLmNvbnRyb2xzLmhhc093blByb3BlcnR5KGwpJiZ0aGlzLmNvbnRyb2xzW2xdLmVuYWJsZWR9c2V0VmFsdWUobCxhPXt9KXsoZnVuY3Rpb24gcDBlKGMsbCxhKXtjLl9mb3JFYWNoQ2hpbGQoKGQsaCk9PntpZih2b2lkIDA9PT1hW2hdKXRocm93IG5ldyBucigxMDAy'@; put 'LCIiKX0pfSkodGhpcywwLGwpLE9iamVjdC5rZXlzKGwpLmZvckVhY2goZD0+eyhmdW5jdGlvbiBmMGUoYyxsLGEpe2NvbnN0IGQ9Yy5jb250cm9scztpZighKGw/T2JqZWN0LmtleXMoZCk6ZCkubGVuZ3RoKXRocm93IG5ldyBucigxZTMsIiIpO2lmKCFkW2FdKXRocm93IG5ldyBucigxMDAx'@; put 'LCIiKX0pKHRoaXMsITAsZCksdGhpcy5jb250cm9sc1tkXS5zZXRWYWx1ZShsW2RdLHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6YS5lbWl0RXZlbnR9KX0pLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eShhKX1wYXRjaFZhbHVlKGwsYT17fSl7bnVsbCE9bCYmKE9iamVjdC5rZXlzKGwpLmZv'@; put 'ckVhY2goZD0+e2NvbnN0IGg9dGhpcy5jb250cm9sc1tkXTtoJiZoLnBhdGNoVmFsdWUobFtkXSx7b25seVNlbGY6ITAsZW1pdEV2ZW50OmEuZW1pdEV2ZW50fSl9KSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoYSkpfXJlc2V0KGw9e30sYT17fSl7dGhpcy5fZm9yRWFjaENoaWxkKChk'@; put 'LGgpPT57ZC5yZXNldChsP2xbaF06bnVsbCx7b25seVNlbGY6ITAsZW1pdEV2ZW50OmEuZW1pdEV2ZW50fSl9KSx0aGlzLl91cGRhdGVQcmlzdGluZShhKSx0aGlzLl91cGRhdGVUb3VjaGVkKGEpLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eShhKX1nZXRSYXdWYWx1ZSgpe3JldHVybiB0'@; put 'aGlzLl9yZWR1Y2VDaGlsZHJlbih7fSwobCxhLGQpPT4obFtkXT1hLmdldFJhd1ZhbHVlKCksbCkpfV9zeW5jUGVuZGluZ0NvbnRyb2xzKCl7bGV0IGw9dGhpcy5fcmVkdWNlQ2hpbGRyZW4oITEsKGEsZCk9PiEhZC5fc3luY1BlbmRpbmdDb250cm9scygpfHxhKTtyZXR1cm4gbCYmdGhpcy51'@; put 'cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtvbmx5U2VsZjohMH0pLGx9X2ZvckVhY2hDaGlsZChsKXtPYmplY3Qua2V5cyh0aGlzLmNvbnRyb2xzKS5mb3JFYWNoKGE9Pntjb25zdCBkPXRoaXMuY29udHJvbHNbYV07ZCYmbChkLGEpfSl9X3NldFVwQ29udHJvbHMoKXt0aGlzLl9mb3JFYWNoQ2hp'@; put 'bGQobD0+e2wuc2V0UGFyZW50KHRoaXMpLGwuX3JlZ2lzdGVyT25Db2xsZWN0aW9uQ2hhbmdlKHRoaXMuX29uQ29sbGVjdGlvbkNoYW5nZSl9KX1fdXBkYXRlVmFsdWUoKXt0aGlzLnZhbHVlPXRoaXMuX3JlZHVjZVZhbHVlKCl9X2FueUNvbnRyb2xzKGwpe2Zvcihjb25zdFthLGRdb2YgT2Jq'@; put 'ZWN0LmVudHJpZXModGhpcy5jb250cm9scykpaWYodGhpcy5jb250YWlucyhhKSYmbChkKSlyZXR1cm4hMDtyZXR1cm4hMX1fcmVkdWNlVmFsdWUoKXtyZXR1cm4gdGhpcy5fcmVkdWNlQ2hpbGRyZW4oe30sKGEsZCxoKT0+KChkLmVuYWJsZWR8fHRoaXMuZGlzYWJsZWQpJiYoYVtoXT1kLnZh'@; put 'bHVlKSxhKSl9X3JlZHVjZUNoaWxkcmVuKGwsYSl7bGV0IGQ9bDtyZXR1cm4gdGhpcy5fZm9yRWFjaENoaWxkKChoLGYpPT57ZD1hKGQsaCxmKX0pLGR9X2FsbENvbnRyb2xzRGlzYWJsZWQoKXtmb3IoY29uc3QgbCBvZiBPYmplY3Qua2V5cyh0aGlzLmNvbnRyb2xzKSlpZih0aGlzLmNvbnRy'@; put 'b2xzW2xdLmVuYWJsZWQpcmV0dXJuITE7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuY29udHJvbHMpLmxlbmd0aD4wfHx0aGlzLmRpc2FibGVkfV9maW5kKGwpe3JldHVybiB0aGlzLmNvbnRyb2xzLmhhc093blByb3BlcnR5KGwpP3RoaXMuY29udHJvbHNbbF06bnVsbH19Y29uc3Qgbzc9bmV3'@; put 'IFN0KCJDYWxsU2V0RGlzYWJsZWRTdGF0ZSIse3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6KCk9Pnl4fSkseXg9ImFsd2F5cyI7ZnVuY3Rpb24gYngoYyxsLGE9eXgpe3RZKGMsbCksbC52YWx1ZUFjY2Vzc29yLndyaXRlVmFsdWUoYy52YWx1ZSksKGMuZGlzYWJsZWR8fCJhbHdheXMiPT09'@; put 'YSkmJmwudmFsdWVBY2Nlc3Nvci5zZXREaXNhYmxlZFN0YXRlPy4oYy5kaXNhYmxlZCksZnVuY3Rpb24gZk9lKGMsbCl7bC52YWx1ZUFjY2Vzc29yLnJlZ2lzdGVyT25DaGFuZ2UoYT0+e2MuX3BlbmRpbmdWYWx1ZT1hLGMuX3BlbmRpbmdDaGFuZ2U9ITAsYy5fcGVuZGluZ0RpcnR5PSEwLCJj'@; put 'aGFuZ2UiPT09Yy51cGRhdGVPbiYmZzBlKGMsbCl9KX0oYyxsKSxmdW5jdGlvbiBnT2UoYyxsKXtjb25zdCBhPShkLGgpPT57bC52YWx1ZUFjY2Vzc29yLndyaXRlVmFsdWUoZCksaCYmbC52aWV3VG9Nb2RlbFVwZGF0ZShkKX07Yy5yZWdpc3Rlck9uQ2hhbmdlKGEpLGwuX3JlZ2lzdGVyT25E'@; put 'ZXN0cm95KCgpPT57Yy5fdW5yZWdpc3Rlck9uQ2hhbmdlKGEpfSl9KGMsbCksZnVuY3Rpb24gcE9lKGMsbCl7bC52YWx1ZUFjY2Vzc29yLnJlZ2lzdGVyT25Ub3VjaGVkKCgpPT57Yy5fcGVuZGluZ1RvdWNoZWQ9ITAsImJsdXIiPT09Yy51cGRhdGVPbiYmYy5fcGVuZGluZ0NoYW5nZSYmZzBl'@; put 'KGMsbCksInN1Ym1pdCIhPT1jLnVwZGF0ZU9uJiZjLm1hcmtBc1RvdWNoZWQoKX0pfShjLGwpLGZ1bmN0aW9uIGhPZShjLGwpe2lmKGwudmFsdWVBY2Nlc3Nvci5zZXREaXNhYmxlZFN0YXRlKXtjb25zdCBhPWQ9PntsLnZhbHVlQWNjZXNzb3Iuc2V0RGlzYWJsZWRTdGF0ZShkKX07Yy5yZWdp'@; put 'c3Rlck9uRGlzYWJsZWRDaGFuZ2UoYSksbC5fcmVnaXN0ZXJPbkRlc3Ryb3koKCk9PntjLl91bnJlZ2lzdGVyT25EaXNhYmxlZENoYW5nZShhKX0pfX0oYyxsKX1mdW5jdGlvbiBiTChjLGwpe2MuZm9yRWFjaChhPT57YS5yZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlJiZhLnJlZ2lzdGVyT25W'@; put 'YWxpZGF0b3JDaGFuZ2UobCl9KX1mdW5jdGlvbiB0WShjLGwpe2NvbnN0IGE9ZnVuY3Rpb24gczBlKGMpe3JldHVybiBjLl9yYXdWYWxpZGF0b3JzfShjKTtudWxsIT09bC52YWxpZGF0b3I/Yy5zZXRWYWxpZGF0b3JzKGEwZShhLGwudmFsaWRhdG9yKSk6ImZ1bmN0aW9uIj09dHlwZW9mIGEm'@; put 'JmMuc2V0VmFsaWRhdG9ycyhbYV0pO2NvbnN0IGQ9ZnVuY3Rpb24gbzBlKGMpe3JldHVybiBjLl9yYXdBc3luY1ZhbGlkYXRvcnN9KGMpO251bGwhPT1sLmFzeW5jVmFsaWRhdG9yP2Muc2V0QXN5bmNWYWxpZGF0b3JzKGEwZShkLGwuYXN5bmNWYWxpZGF0b3IpKToiZnVuY3Rpb24iPT10eXBl'@; put 'b2YgZCYmYy5zZXRBc3luY1ZhbGlkYXRvcnMoW2RdKTtjb25zdCBoPSgpPT5jLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtiTChsLl9yYXdWYWxpZGF0b3JzLGgpLGJMKGwuX3Jhd0FzeW5jVmFsaWRhdG9ycyxoKX1mdW5jdGlvbiBnMGUoYyxsKXtjLl9wZW5kaW5nRGlydHkmJmMubWFya0Fz'@; put 'RGlydHkoKSxjLnNldFZhbHVlKGMuX3BlbmRpbmdWYWx1ZSx7ZW1pdE1vZGVsVG9WaWV3Q2hhbmdlOiExfSksbC52aWV3VG9Nb2RlbFVwZGF0ZShjLl9wZW5kaW5nVmFsdWUpLGMuX3BlbmRpbmdDaGFuZ2U9ITF9Y29uc3QgX09lPXtwcm92aWRlOnoxLHVzZUV4aXN0aW5nOndvKCgpPT53cCl9'@; put 'LF94PVByb21pc2UucmVzb2x2ZSgpO2xldCB3cD0oKCk9PntjbGFzcyBjIGV4dGVuZHMgejF7Y29uc3RydWN0b3IoYSxkLGgpe3N1cGVyKCksdGhpcy5jYWxsU2V0RGlzYWJsZWRTdGF0ZT1oLHRoaXMuc3VibWl0dGVkPSExLHRoaXMuX2RpcmVjdGl2ZXM9bmV3IFNldCx0aGlzLm5nU3VibWl0'@; put 'PW5ldyBLcix0aGlzLmZvcm09bmV3IG1MKHt9LEdXKGEpLCRXKGQpKX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLl9zZXRVcGRhdGVTdHJhdGVneSgpfWdldCBmb3JtRGlyZWN0aXZlKCl7cmV0dXJuIHRoaXN9Z2V0IGNvbnRyb2woKXtyZXR1cm4gdGhpcy5mb3JtfWdldCBwYXRoKCl7cmV0dXJu'@; put 'W119Z2V0IGNvbnRyb2xzKCl7cmV0dXJuIHRoaXMuZm9ybS5jb250cm9sc31hZGRDb250cm9sKGEpe194LnRoZW4oKCk9Pntjb25zdCBkPXRoaXMuX2ZpbmRDb250YWluZXIoYS5wYXRoKTthLmNvbnRyb2w9ZC5yZWdpc3RlckNvbnRyb2woYS5uYW1lLGEuY29udHJvbCksYngoYS5jb250cm9s'@; put 'LGEsdGhpcy5jYWxsU2V0RGlzYWJsZWRTdGF0ZSksYS5jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDohMX0pLHRoaXMuX2RpcmVjdGl2ZXMuYWRkKGEpfSl9Z2V0Q29udHJvbChhKXtyZXR1cm4gdGhpcy5mb3JtLmdldChhLnBhdGgpfXJlbW92ZUNvbnRyb2woYSl7'@; put 'X3gudGhlbigoKT0+e2NvbnN0IGQ9dGhpcy5fZmluZENvbnRhaW5lcihhLnBhdGgpO2QmJmQucmVtb3ZlQ29udHJvbChhLm5hbWUpLHRoaXMuX2RpcmVjdGl2ZXMuZGVsZXRlKGEpfSl9YWRkRm9ybUdyb3VwKGEpe194LnRoZW4oKCk9Pntjb25zdCBkPXRoaXMuX2ZpbmRDb250YWluZXIoYS5w'@; put 'YXRoKSxoPW5ldyBtTCh7fSk7KGZ1bmN0aW9uIG0wZShjLGwpe3RZKGMsbCl9KShoLGEpLGQucmVnaXN0ZXJDb250cm9sKGEubmFtZSxoKSxoLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDohMX0pfSl9cmVtb3ZlRm9ybUdyb3VwKGEpe194LnRoZW4oKCk9Pntjb25zdCBkPXRo'@; put 'aXMuX2ZpbmRDb250YWluZXIoYS5wYXRoKTtkJiZkLnJlbW92ZUNvbnRyb2woYS5uYW1lKX0pfWdldEZvcm1Hcm91cChhKXtyZXR1cm4gdGhpcy5mb3JtLmdldChhLnBhdGgpfXVwZGF0ZU1vZGVsKGEsZCl7X3gudGhlbigoKT0+e3RoaXMuZm9ybS5nZXQoYS5wYXRoKS5zZXRWYWx1ZShkKX0p'@; put 'fXNldFZhbHVlKGEpe3RoaXMuY29udHJvbC5zZXRWYWx1ZShhKX1vblN1Ym1pdChhKXtyZXR1cm4gdGhpcy5zdWJtaXR0ZWQ9ITAsZnVuY3Rpb24gdjBlKGMsbCl7Yy5fc3luY1BlbmRpbmdDb250cm9scygpLGwuZm9yRWFjaChhPT57Y29uc3QgZD1hLmNvbnRyb2w7InN1Ym1pdCI9PT1kLnVw'@; put 'ZGF0ZU9uJiZkLl9wZW5kaW5nQ2hhbmdlJiYoYS52aWV3VG9Nb2RlbFVwZGF0ZShkLl9wZW5kaW5nVmFsdWUpLGQuX3BlbmRpbmdDaGFuZ2U9ITEpfSl9KHRoaXMuZm9ybSx0aGlzLl9kaXJlY3RpdmVzKSx0aGlzLm5nU3VibWl0LmVtaXQoYSksImRpYWxvZyI9PT1hPy50YXJnZXQ/Lm1ldGhv'@; put 'ZH1vblJlc2V0KCl7dGhpcy5yZXNldEZvcm0oKX1yZXNldEZvcm0oYT12b2lkIDApe3RoaXMuZm9ybS5yZXNldChhKSx0aGlzLnN1Ym1pdHRlZD0hMX1fc2V0VXBkYXRlU3RyYXRlZ3koKXt0aGlzLm9wdGlvbnMmJm51bGwhPXRoaXMub3B0aW9ucy51cGRhdGVPbiYmKHRoaXMuZm9ybS5fdXBk'@; put 'YXRlT249dGhpcy5vcHRpb25zLnVwZGF0ZU9uKX1fZmluZENvbnRhaW5lcihhKXtyZXR1cm4gYS5wb3AoKSxhLmxlbmd0aD90aGlzLmZvcm0uZ2V0KGEpOnRoaXMuZm9ybX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKSgkZSh1MCwxMCksJGUoY20s'@; put 'MTApLCRlKG83LDgpKX19c3RhdGlje3RoaXMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsc2VsZWN0b3JzOltbImZvcm0iLDMsIm5nTm9Gb3JtIiwiIiwzLCJmb3JtR3JvdXAiLCIiXSxbIm5nLWZvcm0iXSxbIiIsIm5nRm9ybSIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oZCxoKXsxJmQmJkZ0'@; put 'KCJzdWJtaXQiLGZ1bmN0aW9uKHYpe3JldHVybiBoLm9uU3VibWl0KHYpfSkoInJlc2V0IixmdW5jdGlvbigpe3JldHVybiBoLm9uUmVzZXQoKX0pfSxpbnB1dHM6e29wdGlvbnM6W1ZuLk5vbmUsIm5nRm9ybU9wdGlvbnMiLCJvcHRpb25zIl19LG91dHB1dHM6e25nU3VibWl0OiJuZ1N1Ym1p'@; put 'dCJ9LGV4cG9ydEFzOlsibmdGb3JtIl0sZmVhdHVyZXM6W3VhKFtfT2VdKSxDYV19KX19cmV0dXJuIGN9KSgpO2Z1bmN0aW9uIHkwZShjLGwpe2NvbnN0IGE9Yy5pbmRleE9mKGwpO2E+LTEmJmMuc3BsaWNlKGEsMSl9ZnVuY3Rpb24gYjBlKGMpe3JldHVybiJvYmplY3QiPT10eXBlb2YgYyYm'@; put 'bnVsbCE9PWMmJjI9PT1PYmplY3Qua2V5cyhjKS5sZW5ndGgmJiJ2YWx1ZSJpbiBjJiYiZGlzYWJsZWQiaW4gY31jb25zdCBhWT1jbGFzcyBleHRlbmRzIGVZe2NvbnN0cnVjdG9yKGw9bnVsbCxhLGQpe3N1cGVyKEpXKGEpLFFXKGQsYSkpLHRoaXMuZGVmYXVsdFZhbHVlPW51bGwsdGhpcy5f'@; put 'b25DaGFuZ2U9W10sdGhpcy5fcGVuZGluZ0NoYW5nZT0hMSx0aGlzLl9hcHBseUZvcm1TdGF0ZShsKSx0aGlzLl9zZXRVcGRhdGVTdHJhdGVneShhKSx0aGlzLl9pbml0T2JzZXJ2YWJsZXMoKSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe29ubHlTZWxmOiEwLGVtaXRFdmVudDohIXRo'@; put 'aXMuYXN5bmNWYWxpZGF0b3J9KSxnTChhKSYmKGEubm9uTnVsbGFibGV8fGEuaW5pdGlhbFZhbHVlSXNEZWZhdWx0KSYmKHRoaXMuZGVmYXVsdFZhbHVlPWIwZShsKT9sLnZhbHVlOmwpfXNldFZhbHVlKGwsYT17fSl7dGhpcy52YWx1ZT10aGlzLl9wZW5kaW5nVmFsdWU9bCx0aGlzLl9vbkNo'@; put 'YW5nZS5sZW5ndGgmJiExIT09YS5lbWl0TW9kZWxUb1ZpZXdDaGFuZ2UmJnRoaXMuX29uQ2hhbmdlLmZvckVhY2goZD0+ZCh0aGlzLnZhbHVlLCExIT09YS5lbWl0Vmlld1RvTW9kZWxDaGFuZ2UpKSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoYSl9cGF0Y2hWYWx1ZShsLGE9e30pe3Ro'@; put 'aXMuc2V0VmFsdWUobCxhKX1yZXNldChsPXRoaXMuZGVmYXVsdFZhbHVlLGE9e30pe3RoaXMuX2FwcGx5Rm9ybVN0YXRlKGwpLHRoaXMubWFya0FzUHJpc3RpbmUoYSksdGhpcy5tYXJrQXNVbnRvdWNoZWQoYSksdGhpcy5zZXRWYWx1ZSh0aGlzLnZhbHVlLGEpLHRoaXMuX3BlbmRpbmdDaGFu'@; put 'Z2U9ITF9X3VwZGF0ZVZhbHVlKCl7fV9hbnlDb250cm9scyhsKXtyZXR1cm4hMX1fYWxsQ29udHJvbHNEaXNhYmxlZCgpe3JldHVybiB0aGlzLmRpc2FibGVkfXJlZ2lzdGVyT25DaGFuZ2UobCl7dGhpcy5fb25DaGFuZ2UucHVzaChsKX1fdW5yZWdpc3Rlck9uQ2hhbmdlKGwpe3kwZSh0aGlz'@; put 'Ll9vbkNoYW5nZSxsKX1yZWdpc3Rlck9uRGlzYWJsZWRDaGFuZ2UobCl7dGhpcy5fb25EaXNhYmxlZENoYW5nZS5wdXNoKGwpfV91bnJlZ2lzdGVyT25EaXNhYmxlZENoYW5nZShsKXt5MGUodGhpcy5fb25EaXNhYmxlZENoYW5nZSxsKX1fZm9yRWFjaENoaWxkKGwpe31fc3luY1BlbmRpbmdD'@; put 'b250cm9scygpe3JldHVybiEoInN1Ym1pdCIhPT10aGlzLnVwZGF0ZU9ufHwodGhpcy5fcGVuZGluZ0RpcnR5JiZ0aGlzLm1hcmtBc0RpcnR5KCksdGhpcy5fcGVuZGluZ1RvdWNoZWQmJnRoaXMubWFya0FzVG91Y2hlZCgpLCF0aGlzLl9wZW5kaW5nQ2hhbmdlKXx8KHRoaXMuc2V0VmFsdWUo'@; put 'dGhpcy5fcGVuZGluZ1ZhbHVlLHtvbmx5U2VsZjohMCxlbWl0TW9kZWxUb1ZpZXdDaGFuZ2U6ITF9KSwwKSl9X2FwcGx5Rm9ybVN0YXRlKGwpe2IwZShsKT8odGhpcy52YWx1ZT10aGlzLl9wZW5kaW5nVmFsdWU9bC52YWx1ZSxsLmRpc2FibGVkP3RoaXMuZGlzYWJsZSh7b25seVNlbGY6ITAs'@; put 'ZW1pdEV2ZW50OiExfSk6dGhpcy5lbmFibGUoe29ubHlTZWxmOiEwLGVtaXRFdmVudDohMX0pKTp0aGlzLnZhbHVlPXRoaXMuX3BlbmRpbmdWYWx1ZT1sfX0sU09lPXtwcm92aWRlOnUxLHVzZUV4aXN0aW5nOndvKCgpPT5Xbyl9LHcwZT1Qcm9taXNlLnJlc29sdmUoKTtsZXQgV289KCgpPT57'@; put 'Y2xhc3MgYyBleHRlbmRzIHUxe2NvbnN0cnVjdG9yKGEsZCxoLGYsdixNKXtzdXBlcigpLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPXYsdGhpcy5jYWxsU2V0RGlzYWJsZWRTdGF0ZT1NLHRoaXMuY29udHJvbD1uZXcgYVksdGhpcy5fcmVnaXN0ZXJlZD0hMSx0aGlzLm5hbWU9IiIsdGhpcy51'@; put 'cGRhdGU9bmV3IEtyLHRoaXMuX3BhcmVudD1hLHRoaXMuX3NldFZhbGlkYXRvcnMoZCksdGhpcy5fc2V0QXN5bmNWYWxpZGF0b3JzKGgpLHRoaXMudmFsdWVBY2Nlc3Nvcj1mdW5jdGlvbiBpWShjLGwpe2lmKCFsKXJldHVybiBudWxsO2xldCBhLGQsaDtyZXR1cm4gQXJyYXkuaXNBcnJheShs'@; put 'KSxsLmZvckVhY2goZj0+e2YuY29uc3RydWN0b3I9PT1HbD9hPWY6ZnVuY3Rpb24geU9lKGMpe3JldHVybiBPYmplY3QuZ2V0UHJvdG90eXBlT2YoYy5jb25zdHJ1Y3Rvcik9PT1hN30oZik/ZD1mOmg9Zn0pLGh8fGR8fGF8fG51bGx9KDAsZil9bmdPbkNoYW5nZXMoYSl7aWYodGhpcy5fY2hl'@; put 'Y2tGb3JFcnJvcnMoKSwhdGhpcy5fcmVnaXN0ZXJlZHx8Im5hbWUiaW4gYSl7aWYodGhpcy5fcmVnaXN0ZXJlZCYmKHRoaXMuX2NoZWNrTmFtZSgpLHRoaXMuZm9ybURpcmVjdGl2ZSkpe2NvbnN0IGQ9YS5uYW1lLnByZXZpb3VzVmFsdWU7dGhpcy5mb3JtRGlyZWN0aXZlLnJlbW92ZUNvbnRy'@; put 'b2woe25hbWU6ZCxwYXRoOnRoaXMuX2dldFBhdGgoZCl9KX10aGlzLl9zZXRVcENvbnRyb2woKX0iaXNEaXNhYmxlZCJpbiBhJiZ0aGlzLl91cGRhdGVEaXNhYmxlZChhKSxmdW5jdGlvbiByWShjLGwpe2lmKCFjLmhhc093blByb3BlcnR5KCJtb2RlbCIpKXJldHVybiExO2NvbnN0IGE9Yy5t'@; put 'b2RlbDtyZXR1cm4hIWEuaXNGaXJzdENoYW5nZSgpfHwhT2JqZWN0LmlzKGwsYS5jdXJyZW50VmFsdWUpfShhLHRoaXMudmlld01vZGVsKSYmKHRoaXMuX3VwZGF0ZVZhbHVlKHRoaXMubW9kZWwpLHRoaXMudmlld01vZGVsPXRoaXMubW9kZWwpfW5nT25EZXN0cm95KCl7dGhpcy5mb3JtRGly'@; put 'ZWN0aXZlJiZ0aGlzLmZvcm1EaXJlY3RpdmUucmVtb3ZlQ29udHJvbCh0aGlzKX1nZXQgcGF0aCgpe3JldHVybiB0aGlzLl9nZXRQYXRoKHRoaXMubmFtZSl9Z2V0IGZvcm1EaXJlY3RpdmUoKXtyZXR1cm4gdGhpcy5fcGFyZW50P3RoaXMuX3BhcmVudC5mb3JtRGlyZWN0aXZlOm51bGx9dmll'@; put 'd1RvTW9kZWxVcGRhdGUoYSl7dGhpcy52aWV3TW9kZWw9YSx0aGlzLnVwZGF0ZS5lbWl0KGEpfV9zZXRVcENvbnRyb2woKXt0aGlzLl9zZXRVcGRhdGVTdHJhdGVneSgpLHRoaXMuX2lzU3RhbmRhbG9uZSgpP3RoaXMuX3NldFVwU3RhbmRhbG9uZSgpOnRoaXMuZm9ybURpcmVjdGl2ZS5hZGRD'@; put 'b250cm9sKHRoaXMpLHRoaXMuX3JlZ2lzdGVyZWQ9ITB9X3NldFVwZGF0ZVN0cmF0ZWd5KCl7dGhpcy5vcHRpb25zJiZudWxsIT10aGlzLm9wdGlvbnMudXBkYXRlT24mJih0aGlzLmNvbnRyb2wuX3VwZGF0ZU9uPXRoaXMub3B0aW9ucy51cGRhdGVPbil9X2lzU3RhbmRhbG9uZSgpe3JldHVy'@; put 'biF0aGlzLl9wYXJlbnR8fCEoIXRoaXMub3B0aW9uc3x8IXRoaXMub3B0aW9ucy5zdGFuZGFsb25lKX1fc2V0VXBTdGFuZGFsb25lKCl7YngodGhpcy5jb250cm9sLHRoaXMsdGhpcy5jYWxsU2V0RGlzYWJsZWRTdGF0ZSksdGhpcy5jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2Vt'@; put 'aXRFdmVudDohMX0pfV9jaGVja0ZvckVycm9ycygpe3RoaXMuX2lzU3RhbmRhbG9uZSgpfHx0aGlzLl9jaGVja1BhcmVudFR5cGUoKSx0aGlzLl9jaGVja05hbWUoKX1fY2hlY2tQYXJlbnRUeXBlKCl7fV9jaGVja05hbWUoKXt0aGlzLm9wdGlvbnMmJnRoaXMub3B0aW9ucy5uYW1lJiYodGhp'@; put 'cy5uYW1lPXRoaXMub3B0aW9ucy5uYW1lKSx0aGlzLl9pc1N0YW5kYWxvbmUoKX1fdXBkYXRlVmFsdWUoYSl7dzBlLnRoZW4oKCk9Pnt0aGlzLmNvbnRyb2wuc2V0VmFsdWUoYSx7ZW1pdFZpZXdUb01vZGVsQ2hhbmdlOiExfSksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY/Lm1hcmtGb3JDaGVj'@; put 'aygpfSl9X3VwZGF0ZURpc2FibGVkKGEpe2NvbnN0IGQ9YS5pc0Rpc2FibGVkLmN1cnJlbnRWYWx1ZSxoPTAhPT1kJiZzMShkKTt3MGUudGhlbigoKT0+e2gmJiF0aGlzLmNvbnRyb2wuZGlzYWJsZWQ/dGhpcy5jb250cm9sLmRpc2FibGUoKTohaCYmdGhpcy5jb250cm9sLmRpc2FibGVkJiZ0'@; put 'aGlzLmNvbnRyb2wuZW5hYmxlKCksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWY/Lm1hcmtGb3JDaGVjaygpfSl9X2dldFBhdGgoYSl7cmV0dXJuIHRoaXMuX3BhcmVudD9mdW5jdGlvbiB2TChjLGwpe3JldHVyblsuLi5sLnBhdGgsY119KGEsdGhpcy5fcGFyZW50KTpbYV19c3RhdGlje3RoaXMu'@; put 'XHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUoejEsOSksJGUodTAsMTApLCRlKGNtLDEwKSwkZShfcCwxMCksJGUoeG8sOCksJGUobzcsOCkpfX1zdGF0aWN7dGhpcy5cdTAyNzVkaXI9RXIoe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwibmdNb2RlbCIsIiIsMywiZm9y'@; put 'bUNvbnRyb2xOYW1lIiwiIiwzLCJmb3JtQ29udHJvbCIsIiJdXSxpbnB1dHM6e25hbWU6Im5hbWUiLGlzRGlzYWJsZWQ6W1ZuLk5vbmUsImRpc2FibGVkIiwiaXNEaXNhYmxlZCJdLG1vZGVsOltWbi5Ob25lLCJuZ01vZGVsIiwibW9kZWwiXSxvcHRpb25zOltWbi5Ob25lLCJuZ01vZGVsT3B0'@; put 'aW9ucyIsIm9wdGlvbnMiXX0sb3V0cHV0czp7dXBkYXRlOiJuZ01vZGVsQ2hhbmdlIn0sZXhwb3J0QXM6WyJuZ01vZGVsIl0sZmVhdHVyZXM6W3VhKFtTT2VdKSxDYSxibF19KX19cmV0dXJuIGN9KSgpLGw3PSgoKT0+e2NsYXNzIGN7c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQp'@; put 'e3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NWRpcj1Fcih7dHlwZTpjLHNlbGVjdG9yczpbWyJmb3JtIiwzLCJuZ05vRm9ybSIsIiIsMywibmdOYXRpdmVWYWxpZGF0ZSIsIiJdXSxob3N0QXR0cnM6WyJub3ZhbGlkYXRlIiwiIl19KX19cmV0dXJuIGN9KSgpO2NvbnN0IE1P'@; put 'ZT17cHJvdmlkZTpfcCx1c2VFeGlzdGluZzp3bygoKT0+d0wpLG11bHRpOiEwfTtsZXQgd0w9KCgpPT57Y2xhc3MgYyBleHRlbmRzIGE3e3dyaXRlVmFsdWUoYSl7dGhpcy5zZXRQcm9wZXJ0eSgidmFsdWUiLGE/PyIiKX1yZWdpc3Rlck9uQ2hhbmdlKGEpe3RoaXMub25DaGFuZ2U9ZD0+e2Eo'@; put 'IiI9PWQ/bnVsbDpwYXJzZUZsb2F0KGQpKX19c3RhdGlje3RoaXMuXHUwMjc1ZmFjPSgoKT0+e2xldCBhO3JldHVybiBmdW5jdGlvbihoKXtyZXR1cm4oYXx8KGE9VW8oYykpKShofHxjKX19KSgpfXN0YXRpY3t0aGlzLlx1MDI3NWRpcj1Fcih7dHlwZTpjLHNlbGVjdG9yczpbWyJpbnB1dCIs'@; put 'InR5cGUiLCJudW1iZXIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbImlucHV0IiwidHlwZSIsIm51bWJlciIsImZvcm1Db250cm9sIiwiIl0sWyJpbnB1dCIsInR5cGUiLCJudW1iZXIiLCJuZ01vZGVsIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihkLGgpezEmZCYmRnQoImlucHV0Iixm'@; put 'dW5jdGlvbih2KXtyZXR1cm4gaC5vbkNoYW5nZSh2LnRhcmdldC52YWx1ZSl9KSgiYmx1ciIsZnVuY3Rpb24oKXtyZXR1cm4gaC5vblRvdWNoZWQoKX0pfSxmZWF0dXJlczpbdWEoW01PZV0pLENhXX0pfX1yZXR1cm4gY30pKCk7Y29uc3QgeE9lPXtwcm92aWRlOl9wLHVzZUV4aXN0aW5nOndv'@; put 'KCgpPT5DTCksbXVsdGk6ITB9O2xldCBFT2U9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2FjY2Vzc29ycz1bXX1hZGQoYSxkKXt0aGlzLl9hY2Nlc3NvcnMucHVzaChbYSxkXSl9cmVtb3ZlKGEpe2ZvcihsZXQgZD10aGlzLl9hY2Nlc3NvcnMubGVuZ3RoLTE7ZD49MDstLWQp'@; put 'aWYodGhpcy5fYWNjZXNzb3JzW2RdWzFdPT09YSlyZXR1cm4gdm9pZCB0aGlzLl9hY2Nlc3NvcnMuc3BsaWNlKGQsMSl9c2VsZWN0KGEpe3RoaXMuX2FjY2Vzc29ycy5mb3JFYWNoKGQ9Pnt0aGlzLl9pc1NhbWVHcm91cChkLGEpJiZkWzFdIT09YSYmZFsxXS5maXJlVW5jaGVjayhhLnZhbHVl'@; put 'KX0pfV9pc1NhbWVHcm91cChhLGQpe3JldHVybiEhYVswXS5jb250cm9sJiZhWzBdLl9wYXJlbnQ9PT1kLl9jb250cm9sLl9wYXJlbnQmJmFbMV0ubmFtZT09PWQubmFtZX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKX19c3RhdGlje3RoaXMuXHUw'@; put 'Mjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSl9fXJldHVybiBjfSkoKSxDTD0oKCk9PntjbGFzcyBjIGV4dGVuZHMgYTd7Y29uc3RydWN0b3IoYSxkLGgsZil7c3VwZXIoYSxkKSx0aGlzLl9yZWdpc3RyeT1oLHRoaXMuX2luamVjdG9y'@; put 'PWYsdGhpcy5zZXREaXNhYmxlZFN0YXRlRmlyZWQ9ITEsdGhpcy5vbkNoYW5nZT0oKT0+e30sdGhpcy5jYWxsU2V0RGlzYWJsZWRTdGF0ZT1oaShvNyx7b3B0aW9uYWw6ITB9KT8/eXh9bmdPbkluaXQoKXt0aGlzLl9jb250cm9sPXRoaXMuX2luamVjdG9yLmdldCh1MSksdGhpcy5fY2hlY2tO'@; put 'YW1lKCksdGhpcy5fcmVnaXN0cnkuYWRkKHRoaXMuX2NvbnRyb2wsdGhpcyl9bmdPbkRlc3Ryb3koKXt0aGlzLl9yZWdpc3RyeS5yZW1vdmUodGhpcyl9d3JpdGVWYWx1ZShhKXt0aGlzLl9zdGF0ZT1hPT09dGhpcy52YWx1ZSx0aGlzLnNldFByb3BlcnR5KCJjaGVja2VkIix0aGlzLl9zdGF0'@; put 'ZSl9cmVnaXN0ZXJPbkNoYW5nZShhKXt0aGlzLl9mbj1hLHRoaXMub25DaGFuZ2U9KCk9PnthKHRoaXMudmFsdWUpLHRoaXMuX3JlZ2lzdHJ5LnNlbGVjdCh0aGlzKX19c2V0RGlzYWJsZWRTdGF0ZShhKXsodGhpcy5zZXREaXNhYmxlZFN0YXRlRmlyZWR8fGF8fCJ3aGVuRGlzYWJsZWRGb3JM'@; put 'ZWdhY3lDb2RlIj09PXRoaXMuY2FsbFNldERpc2FibGVkU3RhdGUpJiZ0aGlzLnNldFByb3BlcnR5KCJkaXNhYmxlZCIsYSksdGhpcy5zZXREaXNhYmxlZFN0YXRlRmlyZWQ9ITB9ZmlyZVVuY2hlY2soYSl7dGhpcy53cml0ZVZhbHVlKGEpfV9jaGVja05hbWUoKXshdGhpcy5uYW1lJiZ0aGlz'@; put 'LmZvcm1Db250cm9sTmFtZSYmKHRoaXMubmFtZT10aGlzLmZvcm1Db250cm9sTmFtZSl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUoRXMpLCRlKFFpKSwkZShFT2UpLCRlKERvKSl9fXN0YXRpY3t0aGlzLlx1MDI3NWRpcj1Fcih7dHlwZTpj'@; put 'LHNlbGVjdG9yczpbWyJpbnB1dCIsInR5cGUiLCJyYWRpbyIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwicmFkaW8iLCJmb3JtQ29udHJvbCIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwicmFkaW8iLCJuZ01vZGVsIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihkLGgp'@; put 'ezEmZCYmRnQoImNoYW5nZSIsZnVuY3Rpb24oKXtyZXR1cm4gaC5vbkNoYW5nZSgpfSkoImJsdXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGgub25Ub3VjaGVkKCl9KX0saW5wdXRzOntuYW1lOiJuYW1lIixmb3JtQ29udHJvbE5hbWU6ImZvcm1Db250cm9sTmFtZSIsdmFsdWU6InZhbHVlIn0sZmVh'@; put 'dHVyZXM6W3VhKFt4T2VdKSxDYV19KX19cmV0dXJuIGN9KSgpO2NvbnN0IG9ZPW5ldyBTdCgiIiksTE9lPXtwcm92aWRlOl9wLHVzZUV4aXN0aW5nOndvKCgpPT5rMiksbXVsdGk6ITB9O2Z1bmN0aW9uIEUwZShjLGwpe3JldHVybiBudWxsPT1jP2Ake2x9YDoobCYmIm9iamVjdCI9PXR5cGVv'@; put 'ZiBsJiYobD0iT2JqZWN0IiksYCR7Y306ICR7bH1gLnNsaWNlKDAsNTApKX1sZXQgazI9KCgpPT57Y2xhc3MgYyBleHRlbmRzIGE3e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9vcHRpb25NYXA9bmV3IE1hcCx0aGlzLl9pZENvdW50ZXI9MCx0aGlzLl9jb21wYXJl'@; put 'V2l0aD1PYmplY3QuaXN9c2V0IGNvbXBhcmVXaXRoKGEpe3RoaXMuX2NvbXBhcmVXaXRoPWF9d3JpdGVWYWx1ZShhKXt0aGlzLnZhbHVlPWE7Y29uc3QgaD1FMGUodGhpcy5fZ2V0T3B0aW9uSWQoYSksYSk7dGhpcy5zZXRQcm9wZXJ0eSgidmFsdWUiLGgpfXJlZ2lzdGVyT25DaGFuZ2UoYSl7'@; put 'dGhpcy5vbkNoYW5nZT1kPT57dGhpcy52YWx1ZT10aGlzLl9nZXRPcHRpb25WYWx1ZShkKSxhKHRoaXMudmFsdWUpfX1fcmVnaXN0ZXJPcHRpb24oKXtyZXR1cm4odGhpcy5faWRDb3VudGVyKyspLnRvU3RyaW5nKCl9X2dldE9wdGlvbklkKGEpe2Zvcihjb25zdCBkIG9mIHRoaXMuX29wdGlv'@; put 'bk1hcC5rZXlzKCkpaWYodGhpcy5fY29tcGFyZVdpdGgodGhpcy5fb3B0aW9uTWFwLmdldChkKSxhKSlyZXR1cm4gZDtyZXR1cm4gbnVsbH1fZ2V0T3B0aW9uVmFsdWUoYSl7Y29uc3QgZD1mdW5jdGlvbiBPT2UoYyl7cmV0dXJuIGMuc3BsaXQoIjoiKVswXX0oYSk7cmV0dXJuIHRoaXMuX29w'@; put 'dGlvbk1hcC5oYXMoZCk/dGhpcy5fb3B0aW9uTWFwLmdldChkKTphfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz0oKCk9PntsZXQgYTtyZXR1cm4gZnVuY3Rpb24oaCl7cmV0dXJuKGF8fChhPVVvKGMpKSkoaHx8Yyl9fSkoKX1zdGF0aWN7dGhpcy5cdTAyNzVkaXI9RXIoe3R5cGU6YyxzZWxlY3Rv'@; put 'cnM6W1sic2VsZWN0IiwiZm9ybUNvbnRyb2xOYW1lIiwiIiwzLCJtdWx0aXBsZSIsIiJdLFsic2VsZWN0IiwiZm9ybUNvbnRyb2wiLCIiLDMsIm11bHRpcGxlIiwiIl0sWyJzZWxlY3QiLCJuZ01vZGVsIiwiIiwzLCJtdWx0aXBsZSIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oZCxoKXsx'@; put 'JmQmJkZ0KCJjaGFuZ2UiLGZ1bmN0aW9uKHYpe3JldHVybiBoLm9uQ2hhbmdlKHYudGFyZ2V0LnZhbHVlKX0pKCJibHVyIixmdW5jdGlvbigpe3JldHVybiBoLm9uVG91Y2hlZCgpfSl9LGlucHV0czp7Y29tcGFyZVdpdGg6ImNvbXBhcmVXaXRoIn0sZmVhdHVyZXM6W3VhKFtMT2VdKSxDYV19'@; put 'KX19cmV0dXJuIGN9KSgpLEQyPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgpe3RoaXMuX2VsZW1lbnQ9YSx0aGlzLl9yZW5kZXJlcj1kLHRoaXMuX3NlbGVjdD1oLHRoaXMuX3NlbGVjdCYmKHRoaXMuaWQ9dGhpcy5fc2VsZWN0Ll9yZWdpc3Rlck9wdGlvbigpKX1zZXQgbmdWYWx1'@; put 'ZShhKXtudWxsIT10aGlzLl9zZWxlY3QmJih0aGlzLl9zZWxlY3QuX29wdGlvbk1hcC5zZXQodGhpcy5pZCxhKSx0aGlzLl9zZXRFbGVtZW50VmFsdWUoRTBlKHRoaXMuaWQsYSkpLHRoaXMuX3NlbGVjdC53cml0ZVZhbHVlKHRoaXMuX3NlbGVjdC52YWx1ZSkpfXNldCB2YWx1ZShhKXt0aGlz'@; put 'Ll9zZXRFbGVtZW50VmFsdWUoYSksdGhpcy5fc2VsZWN0JiZ0aGlzLl9zZWxlY3Qud3JpdGVWYWx1ZSh0aGlzLl9zZWxlY3QudmFsdWUpfV9zZXRFbGVtZW50VmFsdWUoYSl7dGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCJ2YWx1ZSIsYSl9'@; put 'bmdPbkRlc3Ryb3koKXt0aGlzLl9zZWxlY3QmJih0aGlzLl9zZWxlY3QuX29wdGlvbk1hcC5kZWxldGUodGhpcy5pZCksdGhpcy5fc2VsZWN0LndyaXRlVmFsdWUodGhpcy5fc2VsZWN0LnZhbHVlKSl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyko'@; put 'JGUoUWkpLCRlKEVzKSwkZShrMiw5KSl9fXN0YXRpY3t0aGlzLlx1MDI3NWRpcj1Fcih7dHlwZTpjLHNlbGVjdG9yczpbWyJvcHRpb24iXV0saW5wdXRzOntuZ1ZhbHVlOiJuZ1ZhbHVlIix2YWx1ZToidmFsdWUifX0pfX1yZXR1cm4gY30pKCk7Y29uc3QgUE9lPXtwcm92aWRlOl9wLHVzZUV4'@; put 'aXN0aW5nOndvKCgpPT53eCksbXVsdGk6ITB9O2Z1bmN0aW9uIFQwZShjLGwpe3JldHVybiBudWxsPT1jP2Ake2x9YDooInN0cmluZyI9PXR5cGVvZiBsJiYobD1gJyR7bH0nYCksbCYmIm9iamVjdCI9PXR5cGVvZiBsJiYobD0iT2JqZWN0IiksYCR7Y306ICR7bH1gLnNsaWNlKDAsNTApKX1s'@; put 'ZXQgd3g9KCgpPT57Y2xhc3MgYyBleHRlbmRzIGE3e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9vcHRpb25NYXA9bmV3IE1hcCx0aGlzLl9pZENvdW50ZXI9MCx0aGlzLl9jb21wYXJlV2l0aD1PYmplY3QuaXN9c2V0IGNvbXBhcmVXaXRoKGEpe3RoaXMuX2NvbXBh'@; put 'cmVXaXRoPWF9d3JpdGVWYWx1ZShhKXtsZXQgZDtpZih0aGlzLnZhbHVlPWEsQXJyYXkuaXNBcnJheShhKSl7Y29uc3QgaD1hLm1hcChmPT50aGlzLl9nZXRPcHRpb25JZChmKSk7ZD0oZix2KT0+e2YuX3NldFNlbGVjdGVkKGguaW5kZXhPZih2LnRvU3RyaW5nKCkpPi0xKX19ZWxzZSBkPSho'@; put 'LGYpPT57aC5fc2V0U2VsZWN0ZWQoITEpfTt0aGlzLl9vcHRpb25NYXAuZm9yRWFjaChkKX1yZWdpc3Rlck9uQ2hhbmdlKGEpe3RoaXMub25DaGFuZ2U9ZD0+e2NvbnN0IGg9W10sZj1kLnNlbGVjdGVkT3B0aW9ucztpZih2b2lkIDAhPT1mKXtjb25zdCB2PWY7Zm9yKGxldCBNPTA7TTx2Lmxl'@; put 'bmd0aDtNKyspe2NvbnN0IEc9dGhpcy5fZ2V0T3B0aW9uVmFsdWUodltNXS52YWx1ZSk7aC5wdXNoKEcpfX1lbHNle2NvbnN0IHY9ZC5vcHRpb25zO2ZvcihsZXQgTT0wO008di5sZW5ndGg7TSsrKXtjb25zdCBJPXZbTV07aWYoSS5zZWxlY3RlZCl7Y29uc3QgRz10aGlzLl9nZXRPcHRpb25W'@; put 'YWx1ZShJLnZhbHVlKTtoLnB1c2goRyl9fX10aGlzLnZhbHVlPWgsYShoKX19X3JlZ2lzdGVyT3B0aW9uKGEpe2NvbnN0IGQ9KHRoaXMuX2lkQ291bnRlcisrKS50b1N0cmluZygpO3JldHVybiB0aGlzLl9vcHRpb25NYXAuc2V0KGQsYSksZH1fZ2V0T3B0aW9uSWQoYSl7Zm9yKGNvbnN0IGQg'@; put 'b2YgdGhpcy5fb3B0aW9uTWFwLmtleXMoKSlpZih0aGlzLl9jb21wYXJlV2l0aCh0aGlzLl9vcHRpb25NYXAuZ2V0KGQpLl92YWx1ZSxhKSlyZXR1cm4gZDtyZXR1cm4gbnVsbH1fZ2V0T3B0aW9uVmFsdWUoYSl7Y29uc3QgZD1mdW5jdGlvbiBGT2UoYyl7cmV0dXJuIGMuc3BsaXQoIjoiKVsw'@; put 'XX0oYSk7cmV0dXJuIHRoaXMuX29wdGlvbk1hcC5oYXMoZCk/dGhpcy5fb3B0aW9uTWFwLmdldChkKS5fdmFsdWU6YX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9KCgpPT57bGV0IGE7cmV0dXJuIGZ1bmN0aW9uKGgpe3JldHVybihhfHwoYT1VbyhjKSkpKGh8fGMpfX0pKCl9c3RhdGlje3RoaXMu'@; put 'XHUwMjc1ZGlyPUVyKHt0eXBlOmMsc2VsZWN0b3JzOltbInNlbGVjdCIsIm11bHRpcGxlIiwiIiwiZm9ybUNvbnRyb2xOYW1lIiwiIl0sWyJzZWxlY3QiLCJtdWx0aXBsZSIsIiIsImZvcm1Db250cm9sIiwiIl0sWyJzZWxlY3QiLCJtdWx0aXBsZSIsIiIsIm5nTW9kZWwiLCIiXV0saG9zdEJp'@; put 'bmRpbmdzOmZ1bmN0aW9uKGQsaCl7MSZkJiZGdCgiY2hhbmdlIixmdW5jdGlvbih2KXtyZXR1cm4gaC5vbkNoYW5nZSh2LnRhcmdldCl9KSgiYmx1ciIsZnVuY3Rpb24oKXtyZXR1cm4gaC5vblRvdWNoZWQoKX0pfSxpbnB1dHM6e2NvbXBhcmVXaXRoOiJjb21wYXJlV2l0aCJ9LGZlYXR1cmVz'@; put 'Olt1YShbUE9lXSksQ2FdfSl9fXJldHVybiBjfSkoKSxJMj0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoKXt0aGlzLl9lbGVtZW50PWEsdGhpcy5fcmVuZGVyZXI9ZCx0aGlzLl9zZWxlY3Q9aCx0aGlzLl9zZWxlY3QmJih0aGlzLmlkPXRoaXMuX3NlbGVjdC5fcmVnaXN0ZXJPcHRp'@; put 'b24odGhpcykpfXNldCBuZ1ZhbHVlKGEpe251bGwhPXRoaXMuX3NlbGVjdCYmKHRoaXMuX3ZhbHVlPWEsdGhpcy5fc2V0RWxlbWVudFZhbHVlKFQwZSh0aGlzLmlkLGEpKSx0aGlzLl9zZWxlY3Qud3JpdGVWYWx1ZSh0aGlzLl9zZWxlY3QudmFsdWUpKX1zZXQgdmFsdWUoYSl7dGhpcy5fc2Vs'@; put 'ZWN0Pyh0aGlzLl92YWx1ZT1hLHRoaXMuX3NldEVsZW1lbnRWYWx1ZShUMGUodGhpcy5pZCxhKSksdGhpcy5fc2VsZWN0LndyaXRlVmFsdWUodGhpcy5fc2VsZWN0LnZhbHVlKSk6dGhpcy5fc2V0RWxlbWVudFZhbHVlKGEpfV9zZXRFbGVtZW50VmFsdWUoYSl7dGhpcy5fcmVuZGVyZXIuc2V0'@; put 'UHJvcGVydHkodGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCJ2YWx1ZSIsYSl9X3NldFNlbGVjdGVkKGEpe3RoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCwic2VsZWN0ZWQiLGEpfW5nT25EZXN0cm95KCl7dGhpcy5fc2VsZWN0JiYodGhp'@; put 'cy5fc2VsZWN0Ll9vcHRpb25NYXAuZGVsZXRlKHRoaXMuaWQpLHRoaXMuX3NlbGVjdC53cml0ZVZhbHVlKHRoaXMuX3NlbGVjdC52YWx1ZSkpfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpKCRlKFFpKSwkZShFcyksJGUod3gsOSkpfX1zdGF0aWN7'@; put 'dGhpcy5cdTAyNzVkaXI9RXIoe3R5cGU6YyxzZWxlY3RvcnM6W1sib3B0aW9uIl1dLGlucHV0czp7bmdWYWx1ZToibmdWYWx1ZSIsdmFsdWU6InZhbHVlIn19KX19cmV0dXJuIGN9KSgpLGM3PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLl92YWxpZGF0b3I9ZEx9bmdPbkNoYW5n'@; put 'ZXMoYSl7aWYodGhpcy5pbnB1dE5hbWUgaW4gYSl7Y29uc3QgZD10aGlzLm5vcm1hbGl6ZUlucHV0KGFbdGhpcy5pbnB1dE5hbWVdLmN1cnJlbnRWYWx1ZSk7dGhpcy5fZW5hYmxlZD10aGlzLmVuYWJsZWQoZCksdGhpcy5fdmFsaWRhdG9yPXRoaXMuX2VuYWJsZWQ/dGhpcy5jcmVhdGVWYWxp'@; put 'ZGF0b3IoZCk6ZEwsdGhpcy5fb25DaGFuZ2UmJnRoaXMuX29uQ2hhbmdlKCl9fXZhbGlkYXRlKGEpe3JldHVybiB0aGlzLl92YWxpZGF0b3IoYSl9cmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShhKXt0aGlzLl9vbkNoYW5nZT1hfWVuYWJsZWQoYSl7cmV0dXJuIG51bGwhPWF9c3RhdGlje3Ro'@; put 'aXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NWRpcj1Fcih7dHlwZTpjLGZlYXR1cmVzOltibF19KX19cmV0dXJuIGN9KSgpO2NvbnN0IFZPZT17cHJvdmlkZTp1MCx1c2VFeGlzdGluZzp3bygoKT0+Y1kpLG11bHRpOiEwfSxCT2U9'@; put 'e3Byb3ZpZGU6dTAsdXNlRXhpc3Rpbmc6d28oKCk9PnVZKSxtdWx0aTohMH07bGV0IGNZPSgoKT0+e2NsYXNzIGMgZXh0ZW5kcyBjN3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5pbnB1dE5hbWU9InJlcXVpcmVkIix0aGlzLm5vcm1hbGl6ZUlucHV0PXMxLHRoaXMu'@; put 'Y3JlYXRlVmFsaWRhdG9yPWE9Pll1ZX1lbmFibGVkKGEpe3JldHVybiBhfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz0oKCk9PntsZXQgYTtyZXR1cm4gZnVuY3Rpb24oaCl7cmV0dXJuKGF8fChhPVVvKGMpKSkoaHx8Yyl9fSkoKX1zdGF0aWN7dGhpcy5cdTAyNzVkaXI9RXIoe3R5cGU6YyxzZWxl'@; put 'Y3RvcnM6W1siIiwicmVxdWlyZWQiLCIiLCJmb3JtQ29udHJvbE5hbWUiLCIiLDMsInR5cGUiLCJjaGVja2JveCJdLFsiIiwicmVxdWlyZWQiLCIiLCJmb3JtQ29udHJvbCIsIiIsMywidHlwZSIsImNoZWNrYm94Il0sWyIiLCJyZXF1aXJlZCIsIiIsIm5nTW9kZWwiLCIiLDMsInR5cGUiLCJj'@; put 'aGVja2JveCJdXSxob3N0VmFyczoxLGhvc3RCaW5kaW5nczpmdW5jdGlvbihkLGgpezImZCYmaHIoInJlcXVpcmVkIixoLl9lbmFibGVkPyIiOm51bGwpfSxpbnB1dHM6e3JlcXVpcmVkOiJyZXF1aXJlZCJ9LGZlYXR1cmVzOlt1YShbVk9lXSksQ2FdfSl9fXJldHVybiBjfSkoKSx1WT0oKCk9'@; put 'PntjbGFzcyBjIGV4dGVuZHMgY1l7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuY3JlYXRlVmFsaWRhdG9yPWE9Pkd1ZX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9KCgpPT57bGV0IGE7cmV0dXJuIGZ1bmN0aW9uKGgpe3JldHVybihhfHwoYT1VbyhjKSkpKGh8fGMpfX0p'@; put 'KCl9c3RhdGlje3RoaXMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsc2VsZWN0b3JzOltbImlucHV0IiwidHlwZSIsImNoZWNrYm94IiwicmVxdWlyZWQiLCIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbImlucHV0IiwidHlwZSIsImNoZWNrYm94IiwicmVxdWlyZWQiLCIiLCJmb3JtQ29udHJvbCIs'@; put 'IiJdLFsiaW5wdXQiLCJ0eXBlIiwiY2hlY2tib3giLCJyZXF1aXJlZCIsIiIsIm5nTW9kZWwiLCIiXV0saG9zdFZhcnM6MSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oZCxoKXsyJmQmJmhyKCJyZXF1aXJlZCIsaC5fZW5hYmxlZD8iIjpudWxsKX0sZmVhdHVyZXM6W3VhKFtCT2VdKSxDYV19KX19'@; put 'cmV0dXJuIGN9KSgpLEYwZT0oKCk9PntjbGFzcyBje3N0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpfX1zdGF0aWN7dGhpcy5cdTAyNzVtb2Q9QWkoe3R5cGU6Y30pfXN0YXRpY3t0aGlzLlx1MDI3NWluaj1Bcih7fSl9fXJldHVybiBjfSkoKSxrYz0o'@; put 'KCk9PntjbGFzcyBje3N0YXRpYyB3aXRoQ29uZmlnKGEpe3JldHVybntuZ01vZHVsZTpjLHByb3ZpZGVyczpbe3Byb3ZpZGU6bzcsdXNlVmFsdWU6YS5jYWxsU2V0RGlzYWJsZWRTdGF0ZT8/eXh9XX19c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9'@; put 'fXN0YXRpY3t0aGlzLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSl9c3RhdGlje3RoaXMuXHUwMjc1aW5qPUFyKHtpbXBvcnRzOltGMGVdfSl9fXJldHVybiBjfSkoKSxZT2U9KCgpPT57Y2xhc3MgY3tzdGF0aWMgd2l0aENvbmZpZyhhKXtyZXR1cm57bmdNb2R1bGU6Yyxwcm92aWRlcnM6W3twcm92'@; put 'aWRlOm9ZLHVzZVZhbHVlOmEud2Fybk9uTmdNb2RlbFdpdGhGb3JtQ29udHJvbD8/ImFsd2F5cyJ9LHtwcm92aWRlOm83LHVzZVZhbHVlOmEuY2FsbFNldERpc2FibGVkU3RhdGU/P3l4fV19fXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpfX1zdGF0'@; put 'aWN7dGhpcy5cdTAyNzVtb2Q9QWkoe3R5cGU6Y30pfXN0YXRpY3t0aGlzLlx1MDI3NWluaj1Bcih7aW1wb3J0czpbRjBlXX0pfX1yZXR1cm4gY30pKCk7Y29uc3QgQ2I9WyJhbmdsZSIse291dGxpbmU6JzxwYXRoIGQ9Ik0yOS41MiwyMi41MiwxOCwxMC42LDYuNDgsMjIuNTJhMS43LDEuNyww'@; put 'LDAsMCwyLjQ1LDIuMzZMMTgsMTUuNDlsOS4wOCw5LjM5YTEuNywxLjcsMCwwLDAsMi40NS0yLjM2WiIvPid9XSxiaD1bImV4Y2xhbWF0aW9uLWNpcmNsZSIse291dGxpbmU6JzxwYXRoIGQ9Ik0xOCAxOS44QzE4LjU1IDE5LjggMTkgMTkuMzUgMTkgMTguOFYxM0MxOSAxMi40NSAxOC41NSAx'@; put 'MiAxOCAxMkMxNy40NSAxMiAxNyAxMi40NSAxNyAxM1YxOC44QzE3IDE5LjM1IDE3LjQ1IDE5LjggMTggMTkuOFpNMTguODUgMjEuOTVDMTguNzMgMjEuODQgMTguNiAyMS43NSAxOC40NiAyMS42OUMxOC4xNyAyMS41NyAxNy44MyAyMS41NyAxNy41NCAyMS42OUMxNy40IDIxLjc1IDE3LjI3'@; put 'IDIxLjg0IDE3LjE1IDIxLjk1QzE2LjkzIDIyLjE4IDE2LjggMjIuNDggMTYuOCAyMi44QzE2LjggMjMuMTIgMTYuOTMgMjMuNDIgMTcuMTUgMjMuNjVDMTcuMjcgMjMuNzYgMTcuNCAyMy44NSAxNy41NCAyMy45MUMxNy42OSAyMy45NyAxNy44NCAyNCAxOCAyNEMxOC4xNiAyNCAxOC4zMSAy'@; put 'My45NyAxOC40NiAyMy45MUMxOC42IDIzLjg1IDE4LjczIDIzLjc2IDE4Ljg1IDIzLjY1QzE5LjA3IDIzLjQyIDE5LjIgMjMuMTIgMTkuMiAyMi44QzE5LjIgMjIuNjQgMTkuMTcgMjIuNDkgMTkuMTEgMjIuMzRDMTkuMDUgMjIuMiAxOC45NiAyMi4wNiAxOC44NSAyMS45NVpNMTggNkMxMS4z'@; put 'OCA2IDYgMTEuMzggNiAxOEM2IDI0LjYyIDExLjM4IDMwIDE4IDMwQzI0LjYyIDMwIDMwIDI0LjYyIDMwIDE4QzMwIDExLjM4IDI0LjYyIDYgMTggNlpNMTggMjhDMTIuNDkgMjggOCAyMy41MSA4IDE4QzggMTIuNDkgMTIuNDkgOCAxOCA4QzIzLjUxIDggMjggMTIuNDkgMjggMThDMjggMjMu'@; put 'NTEgMjMuNTEgMjggMTggMjhaIi8+Jyxzb2xpZDonPHBhdGggZD0iTTE4IDZDMTEuMzggNiA2IDExLjM4IDYgMThDNiAyNC42MiAxMS4zOCAzMCAxOCAzMEMyNC42MiAzMCAzMCAyNC42MiAzMCAxOEMzMCAxMS4zOCAyNC42MiA2IDE4IDZaTTE2LjggMTIuNjVDMTYuOCAxMS45OSAxNy4zNCAx'@; put 'MS40NSAxOCAxMS40NUMxOC42NiAxMS40NSAxOS4yIDExLjk5IDE5LjIgMTIuNjVWMTguNDVDMTkuMiAxOS4xMSAxOC42NiAxOS42NSAxOCAxOS42NUMxNy4zNCAxOS42NSAxNi44IDE5LjExIDE2LjggMTguNDVWMTIuNjVaTTE4Ljk4IDI0LjE1QzE4Ljg0IDI0LjI4IDE4LjY5IDI0LjM4IDE4'@; put 'LjUzIDI0LjQ1QzE4LjM1IDI0LjUyIDE4LjE4IDI0LjU2IDE4IDI0LjU2QzE3LjgyIDI0LjU2IDE3LjY0IDI0LjUzIDE3LjQ2IDI0LjQ1QzE3LjMxIDI0LjM4IDE3LjE2IDI0LjI5IDE3IDI0LjE0QzE2Ljc0IDIzLjg3IDE2LjU5IDIzLjUyIDE2LjU5IDIzLjE1QzE2LjU5IDIyLjc4IDE2Ljcz'@; put 'IDIyLjQ0IDE3IDIyLjE1QzE3LjE0IDIyLjAyIDE3LjI5IDIxLjkyIDE3LjQ1IDIxLjg1QzE3LjYyIDIxLjc4IDE3LjggMjEuNzQgMTcuOTkgMjEuNzRDMTguMTggMjEuNzQgMTguMzYgMjEuNzggMTguNTMgMjEuODVDMTguNjggMjEuOTIgMTguODMgMjIuMDIgMTguOTggMjIuMTVDMTkuMSAy'@; put 'Mi4yNyAxOS4yMSAyMi40MyAxOS4yOCAyMi42MUMxOS4zNSAyMi43OSAxOS4zOSAyMi45NiAxOS4zOSAyMy4xNEMxOS4zOSAyMy41IDE5LjI1IDIzLjg1IDE4Ljk3IDI0LjE0TDE4Ljk4IDI0LjE1WiIvPid9XSxfaD1bImNoZWNrLWNpcmNsZSIse291dGxpbmU6JzxwYXRoIGQ9Ik0yMi42MSAx'@; put 'NC4yMkwxNi4yNSAyMC41OEwxMi43MSAxNy4wNEMxMi4zMiAxNi42NSAxMS42OSAxNi42NSAxMS4zIDE3LjA0QzEwLjkxIDE3LjQzIDEwLjkxIDE4LjA2IDExLjMgMTguNDVMMTYuMjUgMjMuNEwyNC4wMyAxNS42MkMyNC40MiAxNS4yMyAyNC40MiAxNC42IDI0LjAzIDE0LjIxQzIzLjY0IDEz'@; put 'LjgyIDIzLjAxIDEzLjgyIDIyLjYyIDE0LjIxTDIyLjYxIDE0LjIyWk0xOCA2QzExLjM4IDYgNiAxMS4zOCA2IDE4QzYgMjQuNjIgMTEuMzggMzAgMTggMzBDMjQuNjIgMzAgMzAgMjQuNjIgMzAgMThDMzAgMTEuMzggMjQuNjIgNiAxOCA2Wk0xOCAyOEMxMi40OSAyOCA4IDIzLjUxIDggMThD'@; put 'OCAxMi40OSAxMi40OSA4IDE4IDhDMjMuNTEgOCAyOCAxMi40OSAyOCAxOEMyOCAyMy41MSAyMy41MSAyOCAxOCAyOFoiLz4nLHNvbGlkOic8cGF0aCBkPSJNMTggNkMxMS4zOCA2IDYgMTEuMzggNiAxOEM2IDI0LjYyIDExLjM4IDMwIDE4IDMwQzI0LjYyIDMwIDMwIDI0LjYyIDMwIDE4QzMw'@; put 'IDExLjM4IDI0LjYyIDYgMTggNlpNMjQuMTYgMTUuNzhMMTYuMjQgMjMuN0wxMS4xNSAxOC42MUMxMC42OCAxOC4xNCAxMC42OCAxNy4zOCAxMS4xNSAxNi45MUMxMS42MiAxNi40NCAxMi4zOCAxNi40NCAxMi44NSAxNi45MUwxNi4yNCAyMC4zTDIyLjQ2IDE0LjA4QzIyLjkzIDEzLjYxIDIz'@; put 'LjY5IDEzLjYxIDI0LjE2IDE0LjA4QzI0LjYzIDE0LjU1IDI0LjYzIDE1LjMxIDI0LjE2IDE1Ljc4WiIvPid9XSxIMGU9WyJlbGxpcHNpcy1ob3Jpem9udGFsIix7b3V0bGluZTonPHBhdGggZD0iTTcuOCAxOC4xQzcuOCAxOS43NTY4IDYuNTAxNjMgMjEuMSA0LjkgMjEuMUMzLjI5ODM3IDIx'@; put 'LjEgMiAxOS43NTY4IDIgMTguMUMyIDE2LjQ0MzEgMy4yOTgzNyAxNS4xIDQuOSAxNS4xQzYuNTAxNjMgMTUuMSA3LjggMTYuNDQzMSA3LjggMTguMVoiLz48cGF0aCBkPSJNMTggMjEuMUMxOS42MDE2IDIxLjEgMjAuOSAxOS43NTY4IDIwLjkgMTguMUMyMC45IDE2LjQ0MzEgMTkuNjAxNiAx'@; put 'NS4xIDE4IDE1LjFDMTYuMzk4NCAxNS4xIDE1LjEgMTYuNDQzMSAxNS4xIDE4LjFDMTUuMSAxOS43NTY4IDE2LjM5ODQgMjEuMSAxOCAyMS4xWiIvPjxwYXRoIGQ9Ik0zMS4xIDIxLjFDMzIuNzAxNiAyMS4xIDM0IDE5Ljc1NjggMzQgMTguMUMzNCAxNi40NDMxIDMyLjcwMTYgMTUuMSAzMS4x'@; put 'IDE1LjFDMjkuNDk4NCAxNS4xIDI4LjIgMTYuNDQzMSAyOC4yIDE4LjFDMjguMiAxOS43NTY4IDI5LjQ5ODQgMjEuMSAzMS4xIDIxLjFaIi8+JyxvdXRsaW5lQmFkZ2VkOic8cGF0aCBkPSJNNC45IDIxLjFDNi41MDE2MyAyMS4xIDcuOCAxOS43NTY4IDcuOCAxOC4xQzcuOCAxNi40NDMxIDYu'@; put 'NTAxNjMgMTUuMSA0LjkgMTUuMUMzLjI5ODM3IDE1LjEgMiAxNi40NDMxIDIgMTguMUMyIDE5Ljc1NjggMy4yOTgzNyAyMS4xIDQuOSAyMS4xWiIvPjxwYXRoIGQ9Ik0xOCAyMS4xQzE5LjYwMTYgMjEuMSAyMC45IDE5Ljc1NjggMjAuOSAxOC4xQzIwLjkgMTYuNDQzMSAxOS42MDE2IDE1LjEg'@; put 'MTggMTUuMUMxNi4zOTg0IDE1LjEgMTUuMSAxNi40NDMxIDE1LjEgMTguMUMxNS4xIDE5Ljc1NjggMTYuMzk4NCAyMS4xIDE4IDIxLjFaIi8+PHBhdGggZD0iTTM0IDE4LjFDMzQgMTkuNzU2OCAzMi43MDE2IDIxLjEgMzEuMSAyMS4xQzI5LjQ5ODQgMjEuMSAyOC4yIDE5Ljc1NjggMjguMiAx'@; put 'OC4xQzI4LjIgMTYuNDQzMSAyOS40OTg0IDE1LjEgMzEuMSAxNS4xQzMyLjcwMTYgMTUuMSAzNCAxNi40NDMxIDM0IDE4LjFaIi8+PHBhdGggZD0iTTMwIDExQzMyLjc2MTQgMTEgMzUgOC43NjE0MiAzNSA2QzM1IDMuMjM4NTggMzIuNzYxNCAxIDMwIDFDMjcuMjM4NiAxIDI1IDMuMjM4NTgg'@; put 'MjUgNkMyNSA4Ljc2MTQyIDI3LjIzODYgMTEgMzAgMTFaIi8+J31dLEN4PVsid2luZG93LWNsb3NlIix7b3V0bGluZTonPHBhdGggZD0iTTE5LjQxIDE4LjAwMDNMMjYuNyAxMC43MTAzQzI3LjAzOTggMTAuMzEzNSAyNy4wMTY5IDkuNzIyMDcgMjYuNjQ3NiA5LjM1MjdDMjYuMjc4MiA4Ljk4'@; put 'MzMzIDI1LjY4NjggOC45NjA0OSAyNS4yOSA5LjMwMDI2TDE4IDE2LjU5MDNMMTAuNzEgOS4yOTAyNkMxMC4zMTMyIDguOTUwNDkgOS43MjE4MSA4Ljk3MzMzIDkuMzUyNDQgOS4zNDI3QzguOTgzMDcgOS43MTIwNyA4Ljk2MDIzIDEwLjMwMzUgOS4zMDAwMSAxMC43MDAzTDE2LjU5IDE4LjAw'@; put 'MDNMOS4yOTAwMSAyNS4yOTAzQzkuMDA0NjMgMjUuNTM0NyA4Ljg4MDMyIDI1LjkxODQgOC45NjgxOSAyNi4yODM3QzkuMDU2MDcgMjYuNjQ5IDkuMzQxMjkgMjYuOTM0MiA5LjcwNjU5IDI3LjAyMjFDMTAuMDcxOSAyNy4xMDk5IDEwLjQ1NTYgMjYuOTg1NiAxMC43IDI2LjcwMDNMMTggMTku'@; put 'NDEwM0wyNS4yOSAyNi43MDAzQzI1LjY4NjggMjcuMDQgMjYuMjc4MiAyNy4wMTcyIDI2LjY0NzYgMjYuNjQ3OEMyNy4wMTY5IDI2LjI3ODUgMjcuMDM5OCAyNS42ODcgMjYuNyAyNS4yOTAzTDE5LjQxIDE4LjAwMDNaIi8+J31dLEdPZT1bImluZm8tY2lyY2xlIix7b3V0bGluZTonPHBhdGgg'@; put 'ZD0iTTIxIDIzSDE5VjE1SDE2QzE1LjQ1IDE1IDE1IDE1LjQ1IDE1IDE2QzE1IDE2LjU1IDE1LjQ1IDE3IDE2IDE3SDE3VjIzSDE1QzE0LjQ1IDIzIDE0IDIzLjQ1IDE0IDI0QzE0IDI0LjU1IDE0LjQ1IDI1IDE1IDI1SDIxQzIxLjU1IDI1IDIyIDI0LjU1IDIyIDI0QzIyIDIzLjQ1IDIxLjU1'@; put 'IDIzIDIxIDIzWk0xNy45MyAxMy4zQzE4LjcgMTMuMyAxOS4zMyAxMi42NyAxOS4zMyAxMS45QzE5LjMzIDExLjEzIDE4LjcgMTAuNSAxNy45MyAxMC41QzE3LjE2IDEwLjUgMTYuNTMgMTEuMTMgMTYuNTMgMTEuOUMxNi41MyAxMi42NyAxNy4xNiAxMy4zIDE3LjkzIDEzLjNaTTE4IDZDMTEu'@; put 'MzggNiA2IDExLjM4IDYgMThDNiAyNC42MiAxMS4zOCAzMCAxOCAzMEMyNC42MiAzMCAzMCAyNC42MiAzMCAxOEMzMCAxMS4zOCAyNC42MiA2IDE4IDZaTTE4IDI4QzEyLjQ5IDI4IDggMjMuNTEgOCAxOEM4IDEyLjQ5IDEyLjQ5IDggMTggOEMyMy41MSA4IDI4IDEyLjQ5IDI4IDE4QzI4IDIz'@; put 'LjUxIDIzLjUxIDI4IDE4IDI4WiIvPicsc29saWQ6JzxwYXRoIGQ9Ik0xOCA2QzExLjM4IDYgNiAxMS4zOCA2IDE4QzYgMjQuNjIgMTEuMzggMzAgMTggMzBDMjQuNjIgMzAgMzAgMjQuNjIgMzAgMThDMzAgMTEuMzggMjQuNjIgNiAxOCA2Wk0xNy45MyAxMC4zQzE4LjgxIDEwLjMgMTkuNTMg'@; put 'MTEuMDIgMTkuNTMgMTEuOUMxOS41MyAxMi43OCAxOC44MSAxMy41IDE3LjkzIDEzLjVDMTcuMDUgMTMuNSAxNi4zMyAxMi43OCAxNi4zMyAxMS45QzE2LjMzIDExLjAyIDE3LjA1IDEwLjMgMTcuOTMgMTAuM1pNMjEgMjUuMkgxNUMxNC4zNCAyNS4yIDEzLjggMjQuNjYgMTMuOCAyNEMxMy44'@; put 'IDIzLjM0IDE0LjM0IDIyLjggMTUgMjIuOEgxNi44VjE3LjJIMTZDMTUuMzQgMTcuMiAxNC44IDE2LjY2IDE0LjggMTZDMTQuOCAxNS4zNCAxNS4zNCAxNC44IDE2IDE0LjhIMTkuMlYyMi44SDIxQzIxLjY2IDIyLjggMjIuMiAyMy4zNCAyMi4yIDI0QzIyLjIgMjQuNjYgMjEuNjYgMjUuMiAy'@; put 'MSAyNS4yWiIvPid9XSxOMGU9WyJ0aW1lcyIse291dGxpbmU6JzxwYXRoIGQ9Ik0xOS40Njk2IDE3Ljk3MzJMMjcuNzU5NiA5LjcwNTQyQzI4LjA5OTQgOS4zMDk3MiAyOC4wNzY1IDguNzE5ODcgMjcuNzA3MSA4LjM1MTQ4QzI3LjMzNzggNy45ODMxIDI2Ljc0NjMgNy45NjAzMiAyNi4zNDk2'@; put 'IDguMjk5MTlMMTguMDU5NiAxNi41NjdMOS43Njk1OCA4LjI4OTIyQzkuMzc3NDUgNy44OTgxNCA4Ljc0MTcgNy44OTgxNCA4LjM0OTU4IDguMjg5MjJDNy45NTc0NSA4LjY4MDI5IDcuOTU3NDUgOS4zMTQzNCA4LjM0OTU4IDkuNzA1NDJMMTYuNjQ5NiAxNy45NzMyTDguMzQ5NTggMjYuMjQx'@; put 'QzguMDY0MiAyNi40ODQ4IDcuOTM5ODkgMjYuODY3NSA4LjAyNzc3IDI3LjIzMThDOC4xMTU2NCAyNy41OTYxIDguNDAwODYgMjcuODgwNiA4Ljc2NjE2IDI3Ljk2ODJDOS4xMzE0NiAyOC4wNTU5IDkuNTE1MTkgMjcuOTMxOSA5Ljc1OTU4IDI3LjY0NzNMMTguMDU5NiAxOS4zNzk1TDI2LjM0'@; put 'OTYgMjcuNjQ3M0MyNi43NDYzIDI3Ljk4NjEgMjcuMzM3OCAyNy45NjM0IDI3LjcwNzEgMjcuNTk1QzI4LjA3NjUgMjcuMjI2NiAyOC4wOTk0IDI2LjYzNjcgMjcuNzU5NiAyNi4yNDFMMTkuNDY5NiAxNy45NzMyWiIvPid9XSxWMGU9WyJhbmdsZS1kb3VibGUiLHtvdXRsaW5lOic8cGF0aCBk'@; put 'PSJNMjguMzQ5MSAxNy44OTk2QzI4LjUzODQgMTguMDgzNyAyOC43OTQ1IDE4LjE4NjMgMjkuMDYxIDE4LjE4NDhDMjkuNDY0IDE4LjE4MzEgMjkuODI2OCAxNy45NDUxIDI5Ljk4MjEgMTcuNTgwNUMzMC4xMzc0IDE3LjIxNTggMzAuMDU1IDE2Ljc5NTUgMjkuNzcyOSAxNi41MTMzTDE4LjAz'@; put 'MTggNUw2LjMwMDY3IDE2LjUxMzNDNS45NTk5OSAxNi45MDM0IDUuOTgyODkgMTcuNDg0OSA2LjM1MzI1IDE3Ljg0ODFDNi43MjM2IDE4LjIxMTIgNy4zMTY2IDE4LjIzMzcgNy43MTQ0MiAxNy44OTk2TDE4LjAzMTggNy43ODI0NkwyOC4zNDkxIDE3Ljg5OTZaIi8+PHBhdGggZD0iTTI4LjM0'@; put 'OTEgMjguNzE0OUMyOC41Mzg0IDI4Ljg5ODkgMjguNzk0NSAyOS4wMDE1IDI5LjA2MSAyOUMyOS40NjQgMjguOTk4NCAyOS44MjY4IDI4Ljc2MDMgMjkuOTgyMSAyOC4zOTU3QzMwLjEzNzQgMjguMDMxMSAzMC4wNTUgMjcuNjEwNyAyOS43NzI5IDI3LjMyODVMMTguMDMxOCAxNS44MTUyTDYu'@; put 'MzAwNjcgMjcuMzI4NUM1Ljk1OTk5IDI3LjcxODYgNS45ODI4OSAyOC4zMDAxIDYuMzUzMjUgMjguNjYzM0M2LjcyMzYgMjkuMDI2NSA3LjMxNjYgMjkuMDQ4OSA3LjcxNDQyIDI4LjcxNDlMMTguMDMxOCAxOC41OTc3TDI4LjM0OTEgMjguNzE0OVoiLz4nfV0sJE9lPVsiZXZlbnQiLHtvdXRs'@; put 'aW5lOic8cGF0aCBkPSJNMTYuMTcgMjUuODZMMTAuODEgMjAuNUMxMC42NDYyIDIwLjMwODcgMTAuNTYwNiAyMC4wNjI2IDEwLjU3MDMgMTkuODEwOUMxMC41OCAxOS41NTkzIDEwLjY4NDQgMTkuMzIwNSAxMC44NjI0IDE5LjE0MjRDMTEuMDQwNSAxOC45NjQzIDExLjI3OTMgMTguODYgMTEu'@; put 'NTMxIDE4Ljg1MDNDMTEuNzgyNiAxOC44NDA2IDEyLjAyODcgMTguOTI2MiAxMi4yMiAxOS4wOUwxNi4xNyAyM0wyNC44MSAxNC4zNkMyNS4wMDEzIDE0LjE5NjIgMjUuMjQ3NCAxNC4xMTA2IDI1LjQ5OTEgMTQuMTIwM0MyNS43NTA3IDE0LjEzIDI1Ljk4OTUgMTQuMjM0MyAyNi4xNjc2IDE0'@; put 'LjQxMjRDMjYuMzQ1NyAxNC41OTA1IDI2LjQ1IDE0LjgyOTMgMjYuNDU5NyAxNS4wODA5QzI2LjQ2OTQgMTUuMzMyNiAyNi4zODM4IDE1LjU3ODcgMjYuMjIgMTUuNzdMMTYuMTcgMjUuODZaIi8+PHBhdGggZD0iTTMyLjI1IDZIMjlWOEgzMlYzMEg0LjAwMDAxVjhINy4wMDAwMVY2SDMuNzUw'@; put 'MDFDMy41MTYyNSA2LjAwMzkxIDMuMjg1NTUgNi4wNTM4MyAzLjA3MTA4IDYuMTQ2OTFDMi44NTY2MSA2LjIzOTk5IDIuNjYyNTggNi4zNzQ0MSAyLjUwMDA3IDYuNTQyNDlDMi4zMzc1NyA2LjcxMDU3IDIuMjA5NzYgNi45MDkwMiAyLjEyMzk2IDcuMTI2NUMyLjAzODE2IDcuMzQzOTggMS45'@; put 'OTYwNCA3LjU3NjI0IDIuMDAwMDEgNy44MVYzMC4xOUMxLjk5NjA0IDMwLjQyMzggMi4wMzgxNiAzMC42NTYgMi4xMjM5NiAzMC44NzM1QzIuMjA5NzYgMzEuMDkxIDIuMzM3NTcgMzEuMjg5NCAyLjUwMDA3IDMxLjQ1NzVDMi42NjI1OCAzMS42MjU2IDIuODU2NjEgMzEuNzYgMy4wNzEwOCAz'@; put 'MS44NTMxQzMuMjg1NTUgMzEuOTQ2MiAzLjUxNjI1IDMxLjk5NjEgMy43NTAwMSAzMkgzMi4yNUMzMi40ODM4IDMxLjk5NjEgMzIuNzE0NSAzMS45NDYyIDMyLjkyODkgMzEuODUzMUMzMy4xNDM0IDMxLjc2IDMzLjMzNzQgMzEuNjI1NiAzMy41IDMxLjQ1NzVDMzMuNjYyNSAzMS4yODk0IDMz'@; put 'Ljc5MDMgMzEuMDkxIDMzLjg3NjEgMzAuODczNUMzMy45NjE5IDMwLjY1NiAzNC4wMDQgMzAuNDIzOCAzNCAzMC4xOVY3LjgxQzM0LjAwNCA3LjU3NjI0IDMzLjk2MTkgNy4zNDM5OCAzMy44NzYxIDcuMTI2NUMzMy43OTAzIDYuOTA5MDIgMzMuNjYyNSA2LjcxMDU3IDMzLjUgNi41NDI0OUMz'@; put 'My4zMzc0IDYuMzc0NDEgMzMuMTQzNCA2LjIzOTk5IDMyLjkyODkgNi4xNDY5MUMzMi43MTQ1IDYuMDUzODMgMzIuNDgzOCA2LjAwMzkxIDMyLjI1IDZaIi8+PHBhdGggZD0iTTEwIDEwQzEwLjI2NTIgMTAgMTAuNTE5NiA5Ljg5NDY0IDEwLjcwNzEgOS43MDcxMUMxMC44OTQ3IDkuNTE5NTcg'@; put 'MTEgOS4yNjUyMiAxMSA5VjNDMTEgMi43MzQ3OCAxMC44OTQ3IDIuNDgwNDMgMTAuNzA3MSAyLjI5Mjg5QzEwLjUxOTYgMi4xMDUzNiAxMC4yNjUyIDIgMTAgMkM5LjczNDggMiA5LjQ4MDQ0IDIuMTA1MzYgOS4yOTI5MSAyLjI5Mjg5QzkuMTA1MzcgMi40ODA0MyA5LjAwMDAxIDIuNzM0Nzgg'@; put 'OS4wMDAwMSAzVjlDOS4wMDAwMSA5LjI2NTIyIDkuMTA1MzcgOS41MTk1NyA5LjI5MjkxIDkuNzA3MTFDOS40ODA0NCA5Ljg5NDY0IDkuNzM0OCAxMCAxMCAxMFoiLz48cGF0aCBkPSJNMjYgMTBDMjYuMjY1MiAxMCAyNi41MTk2IDkuODk0NjQgMjYuNzA3MSA5LjcwNzExQzI2Ljg5NDcgOS41'@; put 'MTk1NyAyNyA5LjI2NTIyIDI3IDlWM0MyNyAyLjczNDc4IDI2Ljg5NDcgMi40ODA0MyAyNi43MDcxIDIuMjkyODlDMjYuNTE5NiAyLjEwNTM2IDI2LjI2NTIgMiAyNiAyQzI1LjczNDggMiAyNS40ODA0IDIuMTA1MzYgMjUuMjkyOSAyLjI5Mjg5QzI1LjEwNTQgMi40ODA0MyAyNSAyLjczNDc4'@; put 'IDI1IDNWOUMyNSA5LjI2NTIyIDI1LjEwNTQgOS41MTk1NyAyNS4yOTI5IDkuNzA3MTFDMjUuNDgwNCA5Ljg5NDY0IDI1LjczNDggMTAgMjYgMTBaIi8+PHBhdGggZD0iTTIzIDZIMTNWOEgyM1Y2WiIvPicsb3V0bGluZUFsZXJ0ZWQ6JzxwYXRoIGQ9Ik0yNi45MDM5IDEuNjQ2MjFMMjEuMjIy'@; put 'MiAxMS4xMTU5QzIwLjk1MjYgMTEuNDk4NCAyMC45MjgxIDExLjk5NDkgMjEuMTU4OCAxMi40MDA1QzIxLjM4OTYgMTIuODA2IDIxLjgzNjMgMTMuMDUxOSAyMi4zMTQ4IDEzLjAzNjdIMzMuNjg4MUMzNC4xNjY2IDEzLjA1MTkgMzQuNjEzNCAxMi44MDYgMzQuODQ0MSAxMi40MDA1QzM1LjA3'@; put 'NDggMTEuOTk0OSAzNS4wNTAzIDExLjQ5ODQgMzQuNzgwOCAxMS4xMTU5TDI5LjA5OTEgMS42NDYyMUMyOC44NzExIDEuMjY5MTMgMjguNDUzMiAxLjAzNzM1IDI4LjAwMTUgMS4wMzczNUMyNy41NDk3IDEuMDM3MzUgMjcuMTMxOSAxLjI2OTEzIDI2LjkwMzkgMS42NDYyMVoiLz48cGF0aCBk'@; put 'PSJNMzIgMTUuMDM2N0gzMy42NjM3QzMzLjc3NjQgMTUuMDM4OSAzMy44ODg2IDE1LjAzNTQgMzQgMTUuMDI2M1YzMC4xOUMzNC4wMDQgMzAuNDIzOCAzMy45NjE5IDMwLjY1NiAzMy44NzYxIDMwLjg3MzVDMzMuNzkwMyAzMS4wOTEgMzMuNjYyNSAzMS4yODk0IDMzLjUgMzEuNDU3NUMzMy4z'@; put 'Mzc0IDMxLjYyNTYgMzMuMTQzNCAzMS43NiAzMi45Mjg5IDMxLjg1MzFDMzIuNzE0NSAzMS45NDYyIDMyLjQ4MzggMzEuOTk2MSAzMi4yNSAzMkgzLjc1MDAxQzMuNTE2MjUgMzEuOTk2MSAzLjI4NTU1IDMxLjk0NjIgMy4wNzEwOCAzMS44NTMxQzIuODU2NjEgMzEuNzYgMi42NjI1OCAzMS42'@; put 'MjU2IDIuNTAwMDcgMzEuNDU3NUMyLjMzNzU3IDMxLjI4OTQgMi4yMDk3NiAzMS4wOTEgMi4xMjM5NiAzMC44NzM1QzIuMDM4MTYgMzAuNjU2IDEuOTk2MDQgMzAuNDIzOCAyLjAwMDAxIDMwLjE5VjcuODFDMS45OTYwNCA3LjU3NjI0IDIuMDM4MTYgNy4zNDM5OCAyLjEyMzk2IDcuMTI2NUMy'@; put 'LjIwOTc2IDYuOTA5MDIgMi4zMzc1NyA2LjcxMDU3IDIuNTAwMDcgNi41NDI0OUMyLjY2MjU4IDYuMzc0NDEgMi44NTY2MSA2LjIzOTk5IDMuMDcxMDggNi4xNDY5MUMzLjI4NTU1IDYuMDUzODMgMy41MTYyNSA2LjAwMzkxIDMuNzUwMDEgNkg3LjAwMDAxVjhINC4wMDAwMVYzMEgzMlYxNS4w'@; put 'MzY3WiIvPjxwYXRoIGQ9Ik0yNC4xMzMzIDE1LjAzNjdIMjYuNDU3QzI2LjQ1ODMgMTUuMDUxNCAyNi40NTkyIDE1LjA2NjEgMjYuNDU5NyAxNS4wODA5QzI2LjQ2OTQgMTUuMzMyNiAyNi4zODM4IDE1LjU3ODcgMjYuMjIgMTUuNzdMMTYuMTcgMjUuODZMMTAuODEgMjAuNUMxMC42NDYyIDIw'@; put 'LjMwODcgMTAuNTYwNiAyMC4wNjI2IDEwLjU3MDMgMTkuODEwOUMxMC41OCAxOS41NTkzIDEwLjY4NDQgMTkuMzIwNSAxMC44NjI0IDE5LjE0MjRDMTEuMDQwNSAxOC45NjQzIDExLjI3OTMgMTguODYgMTEuNTMxIDE4Ljg1MDNDMTEuNzgyNiAxOC44NDA2IDEyLjAyODcgMTguOTI2MiAxMi4y'@; put 'MiAxOS4wOUwxNi4xNyAyM0wyNC4xMzMzIDE1LjAzNjdaIi8+PHBhdGggZD0iTTIxLjk1OTQgNkwyMC43NTk0IDhIMTNWNkgyMS45NTk0WiIvPjxwYXRoIGQ9Ik0xMC43MDcxIDkuNzA3MTFDMTAuNTE5NiA5Ljg5NDY0IDEwLjI2NTIgMTAgMTAgMTBDOS43MzQ4IDEwIDkuNDgwNDQgOS44OTQ2'@; put 'NCA5LjI5MjkxIDkuNzA3MTFDOS4xMDUzNyA5LjUxOTU3IDkuMDAwMDEgOS4yNjUyMiA5LjAwMDAxIDlWM0M5LjAwMDAxIDIuNzM0NzggOS4xMDUzNyAyLjQ4MDQzIDkuMjkyOTEgMi4yOTI4OUM5LjQ4MDQ0IDIuMTA1MzYgOS43MzQ4IDIgMTAgMkMxMC4yNjUyIDIgMTAuNTE5NiAyLjEwNTM2'@; put 'IDEwLjcwNzEgMi4yOTI4OUMxMC44OTQ3IDIuNDgwNDMgMTEgMi43MzQ3OCAxMSAzVjlDMTEgOS4yNjUyMiAxMC44OTQ3IDkuNTE5NTcgMTAuNzA3MSA5LjcwNzExWiIvPicsb3V0bGluZUJhZGdlZDonPHBhdGggZD0iTTEwLjgxIDIwLjVMMTYuMTcgMjUuODZMMjYuMjIgMTUuODFDMjYuMzgz'@; put 'OCAxNS42MTg3IDI2LjQ2OTQgMTUuMzcyNiAyNi40NTk3IDE1LjEyMDlDMjYuNDUgMTQuODY5MyAyNi4zNDU3IDE0LjYzMDUgMjYuMTY3NiAxNC40NTI0QzI1Ljk4OTUgMTQuMjc0MyAyNS43NTA3IDE0LjE3IDI1LjQ5OTEgMTQuMTYwM0MyNS4yNDc0IDE0LjE1MDYgMjUuMDAxMyAxNC4yMzYy'@; put 'IDI0LjgxIDE0LjRMMTYuMTcgMjNMMTIuMjMgMTkuMDZDMTIuMDM4NyAxOC44OTYyIDExLjc5MjYgMTguODEwNiAxMS41NDEgMTguODIwM0MxMS4yODkzIDE4LjgzIDExLjA1MDUgMTguOTM0MyAxMC44NzI0IDE5LjExMjRDMTAuNjk0NCAxOS4yOTA1IDEwLjU5IDE5LjUyOTMgMTAuNTgwMyAx'@; put 'OS43ODA5QzEwLjU3MDYgMjAuMDMyNiAxMC42NTYyIDIwLjI3ODcgMTAuODIgMjAuNDdMMTAuODEgMjAuNVoiLz48cGF0aCBkPSJNMTAgMTBDMTAuMjY1MiAxMCAxMC41MTk2IDkuODk0NjQgMTAuNzA3MSA5LjcwNzExQzEwLjg5NDcgOS41MTk1NyAxMSA5LjI2NTIyIDExIDlWM0MxMSAyLjcz'@; put 'NDc4IDEwLjg5NDcgMi40ODA0MyAxMC43MDcxIDIuMjkyODlDMTAuNTE5NiAyLjEwNTM2IDEwLjI2NTIgMiAxMCAyQzkuNzM0OCAyIDkuNDgwNDQgMi4xMDUzNiA5LjI5MjkxIDIuMjkyODlDOS4xMDUzNyAyLjQ4MDQzIDkuMDAwMDEgMi43MzQ3OCA5LjAwMDAxIDNWOUM5LjAwMDAxIDkuMjY1'@; put 'MjIgOS4xMDUzNyA5LjUxOTU3IDkuMjkyOTEgOS43MDcxMUM5LjQ4MDQ0IDkuODk0NjQgOS43MzQ4IDEwIDEwIDEwWiIvPjxwYXRoIGQ9Ik0zMiAxMy4yMlYzMEg0LjAwMDAxVjhINy4wMDAwMVY2SDMuNzUwMDFDMy41MTYyNSA2LjAwMzkxIDMuMjg1NTUgNi4wNTM4MyAzLjA3MTA4IDYuMTQ2'@; put 'OTFDMi44NTY2MSA2LjIzOTk5IDIuNjYyNTggNi4zNzQ0MSAyLjUwMDA3IDYuNTQyNDlDMi4zMzc1NyA2LjcxMDU3IDIuMjA5NzYgNi45MDkwMiAyLjEyMzk2IDcuMTI2NUMyLjAzODE2IDcuMzQzOTggMS45OTYwNCA3LjU3NjI0IDIuMDAwMDEgNy44MVYzMC4xOUMxLjk5NjA0IDMwLjQyMzgg'@; put 'Mi4wMzgxNiAzMC42NTYgMi4xMjM5NiAzMC44NzM1QzIuMjA5NzYgMzEuMDkxIDIuMzM3NTcgMzEuMjg5NCAyLjUwMDA3IDMxLjQ1NzVDMi42NjI1OCAzMS42MjU2IDIuODU2NjEgMzEuNzYgMy4wNzEwOCAzMS44NTMxQzMuMjg1NTUgMzEuOTQ2MiAzLjUxNjI1IDMxLjk5NjEgMy43NTAwMSAz'@; put 'MkgzMi4yNUMzMi40ODM4IDMxLjk5NjEgMzIuNzE0NSAzMS45NDYyIDMyLjkyODkgMzEuODUzMUMzMy4xNDM0IDMxLjc2IDMzLjMzNzQgMzEuNjI1NiAzMy41IDMxLjQ1NzVDMzMuNjYyNSAzMS4yODk0IDMzLjc5MDMgMzEuMDkxIDMzLjg3NjEgMzAuODczNUMzMy45NjE5IDMwLjY1NiAzNC4w'@; put 'MDQgMzAuNDIzOCAzNCAzMC4xOVYxMi4zNEMzMy4zODAyIDEyLjczIDMyLjcwNjMgMTMuMDI2NiAzMiAxMy4yMloiLz48cGF0aCBkPSJNMjIuNSA2SDEzVjhIMjIuNzhDMjIuNTk2OCA3LjM0OTAzIDIyLjUwMjYgNi42NzYyNSAyMi41IDZaIi8+PHBhdGggZD0iTTMwIDExQzMyLjc2MTQgMTEg'@; put 'MzUgOC43NjE0MiAzNSA2QzM1IDMuMjM4NTggMzIuNzYxNCAxIDMwIDFDMjcuMjM4NiAxIDI1IDMuMjM4NTggMjUgNkMyNSA4Ljc2MTQyIDI3LjIzODYgMTEgMzAgMTFaIi8+Jyxzb2xpZDonPHBhdGggZD0iTTEwIDEwQzEwLjI2NTIgMTAgMTAuNTE5NiA5Ljg5NDY0IDEwLjcwNzEgOS43MDcx'@; put 'MUMxMC44OTQ3IDkuNTE5NTcgMTEgOS4yNjUyMiAxMSA5VjNDMTEgMi43MzQ3OCAxMC44OTQ3IDIuNDgwNDMgMTAuNzA3MSAyLjI5Mjg5QzEwLjUxOTYgMi4xMDUzNiAxMC4yNjUyIDIgMTAgMkM5LjczNDggMiA5LjQ4MDQ0IDIuMTA1MzYgOS4yOTI5MSAyLjI5Mjg5QzkuMTA1MzcgMi40ODA0'@; put 'MyA5LjAwMDAxIDIuNzM0NzggOS4wMDAwMSAzVjlDOS4wMDAwMSA5LjI2NTIyIDkuMTA1MzcgOS41MTk1NyA5LjI5MjkxIDkuNzA3MTFDOS40ODA0NCA5Ljg5NDY0IDkuNzM0OCAxMCAxMCAxMFoiLz48cGF0aCBkPSJNMjYgMTBDMjYuMjY1MiAxMCAyNi41MTk2IDkuODk0NjQgMjYuNzA3MSA5'@; put 'LjcwNzExQzI2Ljg5NDcgOS41MTk1NyAyNyA5LjI2NTIyIDI3IDlWM0MyNyAyLjczNDc4IDI2Ljg5NDcgMi40ODA0MyAyNi43MDcxIDIuMjkyODlDMjYuNTE5NiAyLjEwNTM2IDI2LjI2NTIgMiAyNiAyQzI1LjczNDggMiAyNS40ODA0IDIuMTA1MzYgMjUuMjkyOSAyLjI5Mjg5QzI1LjEwNTQg'@; put 'Mi40ODA0MyAyNSAyLjczNDc4IDI1IDNWOUMyNSA5LjI2NTIyIDI1LjEwNTQgOS41MTk1NyAyNS4yOTI5IDkuNzA3MTFDMjUuNDgwNCA5Ljg5NDY0IDI1LjczNDggMTAgMjYgMTBaIi8+PHBhdGggZD0iTTMyLjI1IDZIMjguMjVWOUMyOC4yNSA5LjU4MzQ4IDI4LjAxODIgMTAuMTQzMSAyNy42'@; put 'MDU2IDEwLjU1NTZDMjcuMTkzMSAxMC45NjgyIDI2LjYzMzUgMTEuMiAyNi4wNSAxMS4yQzI1LjQ2NjUgMTEuMiAyNC45MDcgMTAuOTY4MiAyNC40OTQ0IDEwLjU1NTZDMjQuMDgxOCAxMC4xNDMxIDIzLjg1IDkuNTgzNDggMjMuODUgOVY2SDEyLjJWOUMxMi4yIDkuNTgzNDggMTEuOTY4MiAx'@; put 'MC4xNDMxIDExLjU1NTYgMTAuNTU1NkMxMS4xNDMxIDEwLjk2ODIgMTAuNTgzNSAxMS4yIDEwIDExLjJDOS40MTY1NCAxMS4yIDguODU2OTYgMTAuOTY4MiA4LjQ0NDM4IDEwLjU1NTZDOC4wMzE4IDEwLjE0MzEgNy44MDAwMSA5LjU4MzQ4IDcuODAwMDEgOVY2SDMuODAwMDFDMy41NjIwNCA1'@; put 'Ljk5NzI5IDMuMzI1OTMgNi4wNDIzMyAzLjEwNTY3IDYuMTMyNDZDMi44ODU0IDYuMjIyNTkgMi42ODU0NSA2LjM1NTk3IDIuNTE3NjMgNi41MjQ3M0MyLjM0OTgxIDYuNjkzNDggMi4yMTc1MyA2Ljg5NDE3IDIuMTI4NjMgNy4xMTQ5M0MyLjAzOTcyIDcuMzM1NjkgMS45OTU5OSA3LjU3MjA0'@; put 'IDIuMDAwMDEgNy44MVYzMC4xOUMxLjk5NjA0IDMwLjQyMzggMi4wMzgxNiAzMC42NTYgMi4xMjM5NiAzMC44NzM1QzIuMjA5NzYgMzEuMDkxIDIuMzM3NTcgMzEuMjg5NCAyLjUwMDA3IDMxLjQ1NzVDMi42NjI1OCAzMS42MjU2IDIuODU2NjEgMzEuNzYgMy4wNzEwOCAzMS44NTMxQzMuMjg1'@; put 'NTUgMzEuOTQ2MiAzLjUxNjI1IDMxLjk5NjEgMy43NTAwMSAzMkgzMi4yNUMzMi40ODM4IDMxLjk5NjEgMzIuNzE0NSAzMS45NDYyIDMyLjkyODkgMzEuODUzMUMzMy4xNDM0IDMxLjc2IDMzLjMzNzQgMzEuNjI1NiAzMy41IDMxLjQ1NzVDMzMuNjYyNSAzMS4yODk0IDMzLjc5MDMgMzEuMDkx'@; put 'IDMzLjg3NjEgMzAuODczNUMzMy45NjE5IDMwLjY1NiAzNC4wMDQgMzAuNDIzOCAzNCAzMC4xOVY3LjgxQzM0LjAwNCA3LjU3NjI0IDMzLjk2MTkgNy4zNDM5OCAzMy44NzYxIDcuMTI2NUMzMy43OTAzIDYuOTA5MDIgMzMuNjYyNSA2LjcxMDU3IDMzLjUgNi41NDI0OUMzMy4zMzc0IDYuMzc0'@; put 'NDEgMzMuMTQzNCA2LjIzOTk5IDMyLjkyODkgNi4xNDY5MUMzMi43MTQ1IDYuMDUzODMgMzIuNDgzOCA2LjAwMzkxIDMyLjI1IDZaTTI1Ljk0IDE2LjU4TDE2LjI3IDI2LjI1TDExIDIwLjk0QzEwLjc2NjUgMjAuNjgzMiAxMC42NDAxIDIwLjM0NjkgMTAuNjQ2NSAxOS45OTk5QzEwLjY1Mjkg'@; put 'MTkuNjUyOSAxMC43OTE4IDE5LjMyMTUgMTEuMDM0NiAxOS4wNzM1QzExLjI3NzUgMTguODI1NSAxMS42MDU5IDE4LjY3OTggMTEuOTUyNyAxOC42NjYxQzEyLjI5OTUgMTguNjUyNSAxMi42Mzg0IDE4Ljc3MTkgMTIuOSAxOUwxNi4yOCAyMi4zOEwyNCAxNC42NkMyNC4xMjY3IDE0LjUzMzMg'@; put 'MjQuMjc3MiAxNC40MzI3IDI0LjQ0MjggMTQuMzY0MkMyNC42MDgzIDE0LjI5NTYgMjQuNzg1OCAxNC4yNjAzIDI0Ljk2NSAxNC4yNjAzQzI1LjE0NDIgMTQuMjYwMyAyNS4zMjE3IDE0LjI5NTYgMjUuNDg3MyAxNC4zNjQyQzI1LjY1MjggMTQuNDMyNyAyNS44MDMzIDE0LjUzMzMgMjUuOTMg'@; put 'MTQuNjZDMjYuMDU2NyAxNC43ODY3IDI2LjE1NzMgMTQuOTM3MiAyNi4yMjU4IDE1LjEwMjdDMjYuMjk0NCAxNS4yNjgzIDI2LjMyOTcgMTUuNDQ1OCAyNi4zMjk3IDE1LjYyNUMyNi4zMjk3IDE1LjgwNDIgMjYuMjk0NCAxNS45ODE3IDI2LjIyNTggMTYuMTQ3M0MyNi4xNTczIDE2LjMxMjgg'@; put 'MjYuMDU2NyAxNi40NjMzIDI1LjkzIDE2LjU5TDI1Ljk0IDE2LjU4WiIvPicsc29saWRBbGVydGVkOic8cGF0aCBkPSJNMjYuOTAzOSAxLjY0NjIxTDIxLjIyMjIgMTEuMTE1OUMyMC45NTI2IDExLjQ5ODQgMjAuOTI4MSAxMS45OTQ5IDIxLjE1ODggMTIuNDAwNUMyMS4zODk2IDEyLjgwNiAy'@; put 'MS44MzYzIDEzLjA1MTkgMjIuMzE0OCAxMy4wMzY3SDMzLjY4ODFDMzQuMTY2NiAxMy4wNTE5IDM0LjYxMzQgMTIuODA2IDM0Ljg0NDEgMTIuNDAwNUMzNS4wNzQ4IDExLjk5NDkgMzUuMDUwMyAxMS40OTg0IDM0Ljc4MDggMTEuMTE1OUwyOS4wOTkxIDEuNjQ2MjFDMjguODcxMSAxLjI2OTEz'@; put 'IDI4LjQ1MzIgMS4wMzczNSAyOC4wMDE1IDEuMDM3MzVDMjcuNTQ5NyAxLjAzNzM1IDI3LjEzMTkgMS4yNjkxMyAyNi45MDM5IDEuNjQ2MjFaIi8+PHBhdGggZD0iTTIxLjk1OTQgNkgxMi4yVjlDMTIuMiA5LjU4MzQ4IDExLjk2ODIgMTAuMTQzMSAxMS41NTU2IDEwLjU1NTZDMTEuMTQzMSAx'@; put 'MC45NjgyIDEwLjU4MzUgMTEuMiAxMCAxMS4yQzkuNDE2NTQgMTEuMiA4Ljg1Njk2IDEwLjk2ODIgOC40NDQzOCAxMC41NTU2QzguMDMxOCAxMC4xNDMxIDcuODAwMDEgOS41ODM0OCA3LjgwMDAxIDlWNkgzLjgwMDAxQzMuNTYyMDQgNS45OTcyOSAzLjMyNTkzIDYuMDQyMzMgMy4xMDU2NyA2'@; put 'LjEzMjQ2QzIuODg1NCA2LjIyMjU5IDIuNjg1NDUgNi4zNTU5NyAyLjUxNzYzIDYuNTI0NzNDMi4zNDk4MSA2LjY5MzQ4IDIuMjE3NTMgNi44OTQxNyAyLjEyODYzIDcuMTE0OTNDMi4wMzk3MiA3LjMzNTY5IDEuOTk1OTkgNy41NzIwNCAyLjAwMDAxIDcuODFWMzAuMTlDMS45OTYwNCAzMC40'@; put 'MjM4IDIuMDM4MTYgMzAuNjU2IDIuMTIzOTYgMzAuODczNUMyLjIwOTc2IDMxLjA5MSAyLjMzNzU3IDMxLjI4OTQgMi41MDAwNyAzMS40NTc1QzIuNjYyNTggMzEuNjI1NiAyLjg1NjYxIDMxLjc2IDMuMDcxMDggMzEuODUzMUMzLjI4NTU1IDMxLjk0NjIgMy41MTYyNSAzMS45OTYxIDMuNzUw'@; put 'MDEgMzJIMzIuMjVDMzIuNDgzOCAzMS45OTYxIDMyLjcxNDUgMzEuOTQ2MiAzMi45Mjg5IDMxLjg1MzFDMzMuMTQzNCAzMS43NiAzMy4zMzc0IDMxLjYyNTYgMzMuNSAzMS40NTc1QzMzLjY2MjUgMzEuMjg5NCAzMy43OTAzIDMxLjA5MSAzMy44NzYxIDMwLjg3MzVDMzMuOTYxOSAzMC42NTYg'@; put 'MzQuMDA0IDMwLjQyMzggMzQgMzAuMTlWMTUuMDI2M0MzMy44ODg2IDE1LjAzNTQgMzMuNzc2NCAxNS4wMzg5IDMzLjY2MzcgMTUuMDM2N0gyNi4xOTY0QzI2LjIwNjggMTUuMDU4NCAyNi4yMTY2IDE1LjA4MDQgMjYuMjI1OCAxNS4xMDI3QzI2LjI5NDQgMTUuMjY4MyAyNi4zMjk3IDE1LjQ0'@; put 'NTggMjYuMzI5NyAxNS42MjVDMjYuMzI5NyAxNS44MDQyIDI2LjI5NDQgMTUuOTgxNyAyNi4yMjU4IDE2LjE0NzNDMjYuMTU3MyAxNi4zMTI4IDI2LjA1NjcgMTYuNDYzMyAyNS45MyAxNi41OUwxNi4yNyAyNi4yNUwxMSAyMC45NEMxMC43NjY1IDIwLjY4MzIgMTAuNjQwMSAyMC4zNDY5IDEw'@; put 'LjY0NjUgMTkuOTk5OUMxMC42NTI5IDE5LjY1MjkgMTAuNzkxOCAxOS4zMjE1IDExLjAzNDYgMTkuMDczNUMxMS4yNzc1IDE4LjgyNTUgMTEuNjA1OSAxOC42Nzk4IDExLjk1MjcgMTguNjY2MUMxMi4yOTk1IDE4LjY1MjUgMTIuNjM4NCAxOC43NzE5IDEyLjkgMTlMMTYuMjggMjIuMzhMMjMu'@; put 'NjIzMyAxNS4wMzY3SDIyLjMzOTVDMjEuMTU3NyAxNS4wNjA0IDIwLjAyMzMgMTQuNDQ4OSAxOS40MjA2IDEzLjM4OTNDMTguODIwNCAxMi4zMzQyIDE4Ljg3MDMgMTEuMDQyMyAxOS41MzYyIDEwLjAzODdMMjEuOTU5NCA2WiIvPjxwYXRoIGQ9Ik0xMCAxMEMxMC4yNjUyIDEwIDEwLjUxOTYg'@; put 'OS44OTQ2NCAxMC43MDcxIDkuNzA3MTFDMTAuODk0NyA5LjUxOTU3IDExIDkuMjY1MjIgMTEgOVYzQzExIDIuNzM0NzggMTAuODk0NyAyLjQ4MDQzIDEwLjcwNzEgMi4yOTI4OUMxMC41MTk2IDIuMTA1MzYgMTAuMjY1MiAyIDEwIDJDOS43MzQ4IDIgOS40ODA0NCAyLjEwNTM2IDkuMjkyOTEg'@; put 'Mi4yOTI4OUM5LjEwNTM3IDIuNDgwNDMgOS4wMDAwMSAyLjczNDc4IDkuMDAwMDEgM1Y5QzkuMDAwMDEgOS4yNjUyMiA5LjEwNTM3IDkuNTE5NTcgOS4yOTI5MSA5LjcwNzExQzkuNDgwNDQgOS44OTQ2NCA5LjczNDggMTAgMTAgMTBaIi8+Jyxzb2xpZEJhZGdlZDonPHBhdGggZD0iTTEwIDEw'@; put 'QzEwLjI2NTIgMTAgMTAuNTE5NiA5Ljg5NDY0IDEwLjcwNzEgOS43MDcxMUMxMC44OTQ3IDkuNTE5NTcgMTEgOS4yNjUyMiAxMSA5VjNDMTEgMi43MzQ3OCAxMC44OTQ3IDIuNDgwNDMgMTAuNzA3MSAyLjI5Mjg5QzEwLjUxOTYgMi4xMDUzNiAxMC4yNjUyIDIgMTAgMkM5LjczNDggMiA5LjQ4'@; put 'MDQ0IDIuMTA1MzYgOS4yOTI5MSAyLjI5Mjg5QzkuMTA1MzcgMi40ODA0MyA5LjAwMDAxIDIuNzM0NzggOS4wMDAwMSAzVjlDOS4wMDAwMSA5LjI2NTIyIDkuMTA1MzcgOS41MTk1NyA5LjI5MjkxIDkuNzA3MTFDOS40ODA0NCA5Ljg5NDY0IDkuNzM0OCAxMCAxMCAxMFoiLz48cGF0aCBkPSJN'@; put 'MzAgMTMuNUMyOC4wMTA5IDEzLjUgMjYuMTAzMiAxMi43MDk4IDI0LjY5NjcgMTEuMzAzM0MyMy4yOTAyIDkuODk2NzggMjIuNSA3Ljk4OTEyIDIyLjUgNkgxMi4yVjlDMTIuMiA5LjU4MzQ4IDExLjk2ODIgMTAuMTQzMSAxMS41NTU2IDEwLjU1NTZDMTEuMTQzMSAxMC45NjgyIDEwLjU4MzUg'@; put 'MTEuMiAxMCAxMS4yQzkuNDE2NTQgMTEuMiA4Ljg1Njk2IDEwLjk2ODIgOC40NDQzOCAxMC41NTU2QzguMDMxOCAxMC4xNDMxIDcuODAwMDEgOS41ODM0OCA3LjgwMDAxIDlWNkgzLjgwMDAxQzMuNTYyMDQgNS45OTcyOSAzLjMyNTkzIDYuMDQyMzMgMy4xMDU2NyA2LjEzMjQ2QzIuODg1NCA2'@; put 'LjIyMjU5IDIuNjg1NDUgNi4zNTU5NyAyLjUxNzYzIDYuNTI0NzNDMi4zNDk4MSA2LjY5MzQ4IDIuMjE3NTMgNi44OTQxNyAyLjEyODYzIDcuMTE0OTNDMi4wMzk3MiA3LjMzNTY5IDEuOTk1OTkgNy41NzIwNCAyLjAwMDAxIDcuODFWMzAuMTlDMS45OTYwNCAzMC40MjM4IDIuMDM4MTYgMzAu'@; put 'NjU2IDIuMTIzOTYgMzAuODczNUMyLjIwOTc2IDMxLjA5MSAyLjMzNzU3IDMxLjI4OTQgMi41MDAwNyAzMS40NTc1QzIuNjYyNTggMzEuNjI1NiAyLjg1NjYxIDMxLjc2IDMuMDcxMDggMzEuODUzMUMzLjI4NTU1IDMxLjk0NjIgMy41MTYyNSAzMS45OTYxIDMuNzUwMDEgMzJIMzIuMjVDMzIu'@; put 'NDgzOCAzMS45OTYxIDMyLjcxNDUgMzEuOTQ2MiAzMi45Mjg5IDMxLjg1MzFDMzMuMTQzNCAzMS43NiAzMy4zMzc0IDMxLjYyNTYgMzMuNSAzMS40NTc1QzMzLjY2MjUgMzEuMjg5NCAzMy43OTAzIDMxLjA5MSAzMy44NzYxIDMwLjg3MzVDMzMuOTYxOSAzMC42NTYgMzQuMDA0IDMwLjQyMzgg'@; put 'MzQgMzAuMTlWMTIuMzRDMzIuODA0MSAxMy4wOTkxIDMxLjQxNjUgMTMuNTAxNSAzMCAxMy41Wk0yNS45NCAxNi41OEwxNi4yNyAyNi4yNUwxMSAyMC45NEMxMC43NjY1IDIwLjY4MzIgMTAuNjQwMSAyMC4zNDY5IDEwLjY0NjUgMTkuOTk5OUMxMC42NTI5IDE5LjY1MjkgMTAuNzkxOCAxOS4z'@; put 'MjE1IDExLjAzNDYgMTkuMDczNUMxMS4yNzc1IDE4LjgyNTUgMTEuNjA1OSAxOC42Nzk4IDExLjk1MjcgMTguNjY2MUMxMi4yOTk1IDE4LjY1MjUgMTIuNjM4NCAxOC43NzE5IDEyLjkgMTlMMTYuMjggMjIuMzhMMjQgMTQuNjZDMjQuMTI2NyAxNC41MzMzIDI0LjI3NzIgMTQuNDMyNyAyNC40'@; put 'NDI4IDE0LjM2NDJDMjQuNjA4MyAxNC4yOTU2IDI0Ljc4NTggMTQuMjYwMyAyNC45NjUgMTQuMjYwM0MyNS4xNDQyIDE0LjI2MDMgMjUuMzIxNyAxNC4yOTU2IDI1LjQ4NzMgMTQuMzY0MkMyNS42NTI4IDE0LjQzMjcgMjUuODAzMyAxNC41MzMzIDI1LjkzIDE0LjY2QzI2LjA1NjcgMTQuNzg2'@; put 'NyAyNi4xNTczIDE0LjkzNzIgMjYuMjI1OCAxNS4xMDI3QzI2LjI5NDQgMTUuMjY4MyAyNi4zMjk3IDE1LjQ0NTggMjYuMzI5NyAxNS42MjVDMjYuMzI5NyAxNS44MDQyIDI2LjI5NDQgMTUuOTgxNyAyNi4yMjU4IDE2LjE0NzNDMjYuMTU3MyAxNi4zMTI4IDI2LjA1NjcgMTYuNDYzMyAyNS45'@; put 'MyAxNi41OUwyNS45NCAxNi41OFoiLz48cGF0aCBkPSJNMzAgMTFDMzIuNzYxNCAxMSAzNSA4Ljc2MTQyIDM1IDZDMzUgMy4yMzg1OCAzMi43NjE0IDEgMzAgMUMyNy4yMzg2IDEgMjUgMy4yMzg1OCAyNSA2QzI1IDguNzYxNDIgMjcuMjM4NiAxMSAzMCAxMVoiLz4nfV0sS09lPVsiY2FsZW5k'@; put 'YXIiLHtvdXRsaW5lOic8cGF0aCBkPSJNMjIgMjBIMjBWMjJIMjJWMjBaTTIwIDI2SDIyVjI0SDIwVjI2Wk0yOCAyNEgyNlYyNkgyOFYyNFpNMjggMjBIMjZWMjJIMjhWMjBaTTI3IDEyQzI3LjU1IDEyIDI4IDExLjU1IDI4IDExVjVDMjggNC40NSAyNy41NSA0IDI3IDRDMjYuNDUgNCAyNiA0'@; put 'LjQ1IDI2IDVWMTFDMjYgMTEuNTUgMjYuNDUgMTIgMjcgMTJaTTIyIDE2SDIwVjE4SDIyVjE2Wk0yOCAxNkgyNlYxOEgyOFYxNlpNMjQgOEgxMlYxMEgyNFY4Wk0xMCAxNkg4VjE4SDEwVjE2Wk0xMCAyMEg4VjIySDEwVjIwWk0xMCAyNEg4VjI2SDEwVjI0Wk0zMy41IDguNTRDMzMuMTcgOC4y'@; put 'IDMyLjcyIDguMDEgMzIuMjUgOEgzMFYxMEgzMlYzMEg0VjEwSDZWOEgzLjc1QzMuMjggOCAyLjgzIDguMiAyLjUgOC41NEMyLjE3IDguODggMiA5LjM0IDIgOS44MVYzMC4xOUMyIDMwLjY2IDIuMTcgMzEuMTIgMi41IDMxLjQ2QzIuODMgMzEuOCAzLjI4IDMxLjk5IDMuNzUgMzJIMzIuMjVD'@; put 'MzIuNzIgMzIgMzMuMTcgMzEuOCAzMy41IDMxLjQ2QzMzLjgzIDMxLjEyIDM0LjAxIDMwLjY2IDM0IDMwLjE5VjkuODFDMzQgOS4zNCAzMy44MyA4Ljg4IDMzLjUgOC41NFpNMTQgMjZIMTZWMjRIMTRWMjZaTTE2IDIwSDE0VjIySDE2VjIwWk0xNiAxNkgxNFYxOEgxNlYxNlpNOSAxMkM5LjU1'@; put 'IDEyIDEwIDExLjU1IDEwIDExVjVDMTAgNC40NSA5LjU1IDQgOSA0QzguNDUgNCA4IDQuNDUgOCA1VjExQzggMTEuNTUgOC40NSAxMiA5IDEyWiIvPicsb3V0bGluZUFsZXJ0ZWQ6JzxwYXRoIGQ9Ik0yNi45MDM5IDEuNjQ2MjFMMjEuMjIyMiAxMS4xMTU5QzIwLjk1MjYgMTEuNDk4NCAyMC45'@; put 'MjgxIDExLjk5NDkgMjEuMTU4OCAxMi40MDA1QzIxLjM4OTYgMTIuODA2IDIxLjgzNjMgMTMuMDUxOSAyMi4zMTQ4IDEzLjAzNjdIMzMuNjg4MUMzNC4xNjY2IDEzLjA1MTkgMzQuNjEzNCAxMi44MDYgMzQuODQ0MSAxMi40MDA1QzM1LjA3NDggMTEuOTk0OSAzNS4wNTAzIDExLjQ5ODQgMzQu'@; put 'NzgwOCAxMS4xMTU5TDI5LjA5OTEgMS42NDYyMUMyOC44NzExIDEuMjY5MTMgMjguNDUzMiAxLjAzNzM1IDI4LjAwMTUgMS4wMzczNUMyNy41NDk3IDEuMDM3MzUgMjcuMTMxOSAxLjI2OTEzIDI2LjkwMzkgMS42NDYyMVoiLz48cGF0aCBkPSJNMzIgMTUuMDM2N0gzMy42NjM3QzMzLjc3NjMg'@; put 'MTUuMDM4OSAzMy44ODg2IDE1LjAzNTQgMzQgMTUuMDI2M1YzMC4xOUMzNC4wMSAzMC42NiAzMy44MyAzMS4xMiAzMy41IDMxLjQ2QzMzLjE3IDMxLjggMzIuNzIgMzIgMzIuMjUgMzJIMy43NUMzLjI4IDMxLjk5IDIuODMgMzEuOCAyLjUgMzEuNDZDMi4xNyAzMS4xMiAyIDMwLjY2IDIgMzAu'@; put 'MTlWOS44MUMyIDkuMzQgMi4xNyA4Ljg4IDIuNSA4LjU0QzIuODMgOC4yIDMuMjggOCAzLjc1IDhINlYxMEg0VjMwSDMyVjE1LjAzNjdaIi8+PHBhdGggZD0iTTIwLjc1OTQgOEwxOS41NTk0IDEwSDEyVjhIMjAuNzU5NFoiLz48cGF0aCBkPSJNMjAgMjBIMjJWMjJIMjBWMjBaIi8+PHBhdGgg'@; put 'ZD0iTTIyIDI2SDIwVjI0SDIyVjI2WiIvPjxwYXRoIGQ9Ik0yNiAyNlYyNEgyOFYyNkgyNloiLz48cGF0aCBkPSJNMjYgMjJWMjBIMjhWMjJIMjZaIi8+PHBhdGggZD0iTTIwIDE2SDIyVjE4SDIwVjE2WiIvPjxwYXRoIGQ9Ik0yNiAxOFYxNkgyOFYxOEgyNloiLz48cGF0aCBkPSJNOCAxNkgx'@; put 'MFYxOEg4VjE2WiIvPjxwYXRoIGQ9Ik04IDIwSDEwVjIySDhWMjBaIi8+PHBhdGggZD0iTTggMjRIMTBWMjZIOFYyNFoiLz48cGF0aCBkPSJNMTYgMjZIMTRWMjRIMTZWMjZaIi8+PHBhdGggZD0iTTE0IDIwSDE2VjIySDE0VjIwWiIvPjxwYXRoIGQ9Ik0xNCAxNkgxNlYxOEgxNFYxNloiLz48'@; put 'cGF0aCBkPSJNMTAgMTFDMTAgMTEuNTUgOS41NSAxMiA5IDEyQzguNDUgMTIgOCAxMS41NSA4IDExVjVDOCA0LjQ1IDguNDUgNCA5IDRDOS41NSA0IDEwIDQuNDUgMTAgNVYxMVoiLz4nLG91dGxpbmVCYWRnZWQ6JzxwYXRoIGQ9Ik0zMCAxMUMzMi43NjE0IDExIDM1IDguNzYxNDIgMzUgNkMz'@; put 'NSAzLjIzODU4IDMyLjc2MTQgMSAzMCAxQzI3LjIzODYgMSAyNSAzLjIzODU4IDI1IDZDMjUgOC43NjE0MiAyNy4yMzg2IDExIDMwIDExWiIvPjxwYXRoIGQ9Ik0yMy4yODk5IDhDMjMuNDU5NCA4LjU2OTYzIDIzLjY5OTUgOS4xMDg4NyAyNCA5LjYwNzU5VjEwSDEyVjhIMjMuMjg5OVoiLz48'@; put 'cGF0aCBkPSJNMzQgMTEuNzQ1M0MzMy4zOTYgMTIuMTY2NiAzMi43MjI0IDEyLjQ5NTEgMzIgMTIuNzEwMVYzMEg0VjEwSDZWOEgzLjc1QzMuMjggOCAyLjgzIDguMiAyLjUgOC41NEMyLjE3IDguODggMiA5LjM0IDIgOS44MVYzMC4xOUMyIDMwLjY2IDIuMTcgMzEuMTIgMi41IDMxLjQ2QzIu'@; put 'ODMgMzEuOCAzLjI4IDMxLjk5IDMuNzUgMzJIMzIuMjVDMzIuNzIgMzIgMzMuMTcgMzEuOCAzMy41IDMxLjQ2QzMzLjgzIDMxLjEyIDM0LjAxIDMwLjY2IDM0IDMwLjE5VjExLjc0NTNaIi8+PHBhdGggZD0iTTIwIDIwSDIyVjIySDIwVjIwWiIvPjxwYXRoIGQ9Ik0yMiAyNkgyMFYyNEgyMlYy'@; put 'NloiLz48cGF0aCBkPSJNMjYgMjZWMjRIMjhWMjZIMjZaIi8+PHBhdGggZD0iTTI2IDIyVjIwSDI4VjIySDI2WiIvPjxwYXRoIGQ9Ik0yMCAxNkgyMlYxOEgyMFYxNloiLz48cGF0aCBkPSJNMjYgMThWMTZIMjhWMThIMjZaIi8+PHBhdGggZD0iTTggMTZIMTBWMThIOFYxNloiLz48cGF0aCBk'@; put 'PSJNOCAyMEgxMFYyMkg4VjIwWiIvPjxwYXRoIGQ9Ik04IDI0SDEwVjI2SDhWMjRaIi8+PHBhdGggZD0iTTE2IDI2SDE0VjI0SDE2VjI2WiIvPjxwYXRoIGQ9Ik0xNCAyMEgxNlYyMkgxNFYyMFoiLz48cGF0aCBkPSJNMTQgMTZIMTZWMThIMTRWMTZaIi8+PHBhdGggZD0iTTEwIDExQzEwIDEx'@; put 'LjU1IDkuNTUgMTIgOSAxMkM4LjQ1IDEyIDggMTEuNTUgOCAxMVY1QzggNC40NSA4LjQ1IDQgOSA0QzkuNTUgNCAxMCA0LjQ1IDEwIDVWMTFaIi8+Jyxzb2xpZDonPHBhdGggZD0iTTI3IDEyQzI3LjU1IDEyIDI4IDExLjU1IDI4IDExVjVDMjggNC40NSAyNy41NSA0IDI3IDRDMjYuNDUgNCAy'@; put 'NiA0LjQ1IDI2IDVWMTFDMjYgMTEuNTUgMjYuNDUgMTIgMjcgMTJaTTMzLjUgOC41NEMzMy4xNyA4LjIgMzIuNzIgOC4wMSAzMi4yNSA4SDI5LjJWMTFDMjkuMiAxMi4yMSAyOC4yMSAxMy4yIDI3IDEzLjJDMjUuNzkgMTMuMiAyNC44IDEyLjIxIDI0LjggMTFWOEgxMS4yVjExQzExLjIgMTIu'@; put 'MjEgMTAuMjEgMTMuMiA5IDEzLjJDNy43OSAxMy4yIDYuOCAxMi4yMSA2LjggMTFWOEgzLjc1QzMuMjggOCAyLjgzIDguMiAyLjUgOC41NEMyLjE3IDguODggMiA5LjM0IDIgOS44MVYzMC4xOUMyIDMwLjY2IDIuMTcgMzEuMTIgMi41IDMxLjQ2QzIuODMgMzEuOCAzLjI4IDMxLjk5IDMuNzUg'@; put 'MzJIMzIuMjVDMzIuNzIgMzIgMzMuMTcgMzEuOCAzMy41IDMxLjQ2QzMzLjgzIDMxLjEyIDM0LjAxIDMwLjY2IDM0IDMwLjE5VjkuODFDMzQgOS4zNCAzMy44MyA4Ljg4IDMzLjUgOC41NFpNMTAuMSAyNi4xSDcuOVYyMy45SDEwLjFWMjYuMVpNMTAuMSAyMi4xSDcuOVYxOS45SDEwLjFWMjIu'@; put 'MVpNMTAuMSAxOC4xSDcuOVYxNS45SDEwLjFWMTguMVpNMTYuMSAyNi4xSDEzLjlWMjMuOUgxNi4xVjI2LjFaTTE2LjEgMjIuMUgxMy45VjE5LjlIMTYuMVYyMi4xWk0xNi4xIDE4LjFIMTMuOVYxNS45SDE2LjFWMTguMVpNMjIuMSAyNi4xSDE5LjlWMjMuOUgyMi4xVjI2LjFaTTIyLjEgMjIu'@; put 'MUgxOS45VjE5LjlIMjIuMVYyMi4xWk0yMi4xIDE4LjFIMTkuOVYxNS45SDIyLjFWMTguMVpNMjguMSAyNi4xSDI1LjlWMjMuOUgyOC4xVjI2LjFaTTI4LjEgMjIuMUgyNS45VjE5LjlIMjguMVYyMi4xWk0yOC4xIDE4LjFIMjUuOVYxNS45SDI4LjFWMTguMVpNOSAxMkM5LjU1IDEyIDEwIDEx'@; put 'LjU1IDEwIDExVjVDMTAgNC40NSA5LjU1IDQgOSA0QzguNDUgNCA4IDQuNDUgOCA1VjExQzggMTEuNTUgOC40NSAxMiA5IDEyWiIvPicsc29saWRBbGVydGVkOic8cGF0aCBkPSJNMjYuOTAzOSAxLjY0NjIxTDIxLjIyMjIgMTEuMTE1OUMyMC45NTI2IDExLjQ5ODQgMjAuOTI4MSAxMS45OTQ5'@; put 'IDIxLjE1ODggMTIuNDAwNUMyMS4zODk2IDEyLjgwNiAyMS44MzYzIDEzLjA1MTkgMjIuMzE0OCAxMy4wMzY3SDMzLjY4ODFDMzQuMTY2NiAxMy4wNTE5IDM0LjYxMzQgMTIuODA2IDM0Ljg0NDEgMTIuNDAwNUMzNS4wNzQ4IDExLjk5NDkgMzUuMDUwMyAxMS40OTg0IDM0Ljc4MDggMTEuMTE1'@; put 'OUwyOS4wOTkxIDEuNjQ2MjFDMjguODcxMSAxLjI2OTEzIDI4LjQ1MzIgMS4wMzczNSAyOC4wMDE1IDEuMDM3MzVDMjcuNTQ5NyAxLjAzNzM1IDI3LjEzMTkgMS4yNjkxMyAyNi45MDM5IDEuNjQ2MjFaIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9'@; put 'Ik0yMC43NTk0IDhMMTkuNTM2MiAxMC4wMzg3QzE4Ljg3MDMgMTEuMDQyMyAxOC44MjA0IDEyLjMzNDIgMTkuNDIwNiAxMy4zODkzQzIwLjAyMzMgMTQuNDQ4OSAyMS4xNTc3IDE1LjA2MDQgMjIuMzM5NSAxNS4wMzY3SDMzLjY2MzdDMzMuNzc2MyAxNS4wMzg5IDMzLjg4ODYgMTUuMDM1NCAz'@; put 'NCAxNS4wMjYzVjMwLjE5QzM0LjAxIDMwLjY2IDMzLjgzIDMxLjEyIDMzLjUgMzEuNDZDMzMuMTcgMzEuOCAzMi43MiAzMiAzMi4yNSAzMkgzLjc1QzMuMjggMzEuOTkgMi44MyAzMS44IDIuNSAzMS40NkMyLjE3IDMxLjEyIDIgMzAuNjYgMiAzMC4xOVY5LjgxQzIgOS4zNCAyLjE3IDguODgg'@; put 'Mi41IDguNTRDMi44MyA4LjIgMy4yOCA4IDMuNzUgOEg2LjhWMTFDNi44IDEyLjIxIDcuNzkgMTMuMiA5IDEzLjJDMTAuMjEgMTMuMiAxMS4yIDEyLjIxIDExLjIgMTFWOEgyMC43NTk0Wk03LjkgMjMuOVYyNi4xSDEwLjFWMjMuOUg3LjlaTTcuOSAxOS45VjIyLjFIMTAuMVYxOS45SDcuOVpN'@; put 'Ny45IDE1LjlWMTguMUgxMC4xVjE1LjlINy45Wk0xMy45IDI2LjFIMTYuMVYyMy45SDEzLjlWMjYuMVpNMTMuOSAyMi4xSDE2LjFWMTkuOUgxMy45VjIyLjFaTTEzLjkgMTguMUgxNi4xVjE1LjlIMTMuOVYxOC4xWk0xOS45IDI2LjFIMjIuMVYyMy45SDE5LjlWMjYuMVpNMTkuOSAyMi4xSDIy'@; put 'LjFWMTkuOUgxOS45VjIyLjFaTTE5LjkgMTguMUgyMi4xVjE1LjlIMTkuOVYxOC4xWk0yNS45IDIzLjlWMjYuMUgyOC4xVjIzLjlIMjUuOVpNMjUuOSAxOS45VjIyLjFIMjguMVYxOS45SDI1LjlaTTI1LjkgMTUuOVYxOC4xSDI4LjFWMTUuOUgyNS45WiIvPjxwYXRoIGQ9Ik0xMCAxMUMxMCAx'@; put 'MS41NSA5LjU1IDEyIDkgMTJDOC40NSAxMiA4IDExLjU1IDggMTFWNUM4IDQuNDUgOC40NSA0IDkgNEM5LjU1IDQgMTAgNC40NSAxMCA1VjExWiIvPicsc29saWRCYWRnZWQ6JzxwYXRoIGQ9Ik0zMCAxMUMzMi43NjE0IDExIDM1IDguNzYxNDIgMzUgNkMzNSAzLjIzODU4IDMyLjc2MTQgMSAz'@; put 'MCAxQzI3LjIzODYgMSAyNSAzLjIzODU4IDI1IDZDMjUgOC43NjE0MiAyNy4yMzg2IDExIDMwIDExWiIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMzQgMTEuNzQ1M0MzMi44NjYyIDEyLjUzNjIgMzEuNDg3MiAxMyAzMCAxM0MyOS40MDYzIDEz'@; put 'IDI4LjgyOTkgMTIuOTI2MSAyOC4yNzk0IDEyLjc4N0MyNy45MTgzIDEzLjA0NjcgMjcuNDc2MiAxMy4yIDI3IDEzLjJDMjUuNzkgMTMuMiAyNC44IDEyLjIxIDI0LjggMTFWMTAuNjg2MkMyNC4xMTI2IDkuOTIzOTMgMjMuNTkwNCA5LjAwOTcgMjMuMjg5OSA4SDExLjJWMTFDMTEuMiAxMi4y'@; put 'MSAxMC4yMSAxMy4yIDkgMTMuMkM3Ljc5IDEzLjIgNi44IDEyLjIxIDYuOCAxMVY4SDMuNzVDMy4yOCA4IDIuODMgOC4yIDIuNSA4LjU0QzIuMTcgOC44OCAyIDkuMzQgMiA5LjgxVjMwLjE5QzIgMzAuNjYgMi4xNyAzMS4xMiAyLjUgMzEuNDZDMi44MyAzMS44IDMuMjggMzEuOTkgMy43NSAz'@; put 'MkgzMi4yNUMzMi43MiAzMiAzMy4xNyAzMS44IDMzLjUgMzEuNDZDMzMuODMgMzEuMTIgMzQuMDEgMzAuNjYgMzQgMzAuMTlWMTEuNzQ1M1pNNy45IDIzLjlWMjYuMUgxMC4xVjIzLjlINy45Wk03LjkgMTkuOVYyMi4xSDEwLjFWMTkuOUg3LjlaTTcuOSAxNS45VjE4LjFIMTAuMVYxNS45SDcu'@; put 'OVpNMTMuOSAyNi4xSDE2LjFWMjMuOUgxMy45VjI2LjFaTTEzLjkgMjIuMUgxNi4xVjE5LjlIMTMuOVYyMi4xWk0xMy45IDE4LjFIMTYuMVYxNS45SDEzLjlWMTguMVpNMTkuOSAyNi4xSDIyLjFWMjMuOUgxOS45VjI2LjFaTTE5LjkgMjIuMUgyMi4xVjE5LjlIMTkuOVYyMi4xWk0xOS45IDE4'@; put 'LjFIMjIuMVYxNS45SDE5LjlWMTguMVpNMjUuOSAyMy45VjI2LjFIMjguMVYyMy45SDI1LjlaTTI1LjkgMTkuOVYyMi4xSDI4LjFWMTkuOUgyNS45Wk0yNS45IDE1LjlWMTguMUgyOC4xVjE1LjlIMjUuOVoiLz48cGF0aCBkPSJNMTAgMTFDMTAgMTEuNTUgOS41NSAxMiA5IDEyQzguNDUgMTIg'@; put 'OCAxMS41NSA4IDExVjVDOCA0LjQ1IDguNDUgNCA5IDRDOS41NSA0IDEwIDQuNDUgMTAgNVYxMVoiLz4nfV0sWE9lPVsiZm9sZGVyLW9wZW4iLHtvdXRsaW5lOic8cGF0aCBkPSJNMzMuMjYgMTNDMzMuODQgMTIuOTkgMzQuMzggMTMuMjYgMzQuNzEgMTMuNzRDMzUgMTQuMTYgMzUuMDggMTQu'@; put 'NjkgMzQuOTIgMTUuMThMMzAuNzMgMzAuMjhDMzAuNiAzMC43MiAzMC4xOSAzMS4wMiAyOS43MyAzMUg0LjQxQzMuNjYgMzEuMDIgMy4wMyAzMC40NCAzIDI5LjY5VjdDMyA1LjkgMy45IDUgNSA1SDExLjQ5QzEyLjEzIDUgMTIuNzMgNS4zIDEzLjExIDUuODJMMTUuNDIgOUgyOS4zOUMzMC40'@; put 'OSA5IDMxLjM5IDkuOSAzMS4zOSAxMUgxNC45MUMxNC41OSAxMSAxNC4yOSAxMC44NSAxNC4xIDEwLjU5TDExLjQ5IDdINVYyNUw3LjkyIDE0LjY2QzcuOTIgMTQuNjYgNy45MiAxNC41NyA3LjkyIDE0LjUyQzguMzIgMTMuNjMgOS4xOSAxMy4wNCAxMC4xNyAxM0gzMy4yNlpNNS45IDI5SDI4'@; put 'Ljk0TDMyLjg4IDE0Ljk1SDEwLjE2QzEwLjAxIDE0Ljk4IDkuODcgMTUuMDcgOS43OCAxNS4xOUw1LjkgMjlaIi8+JyxvdXRsaW5lQWxlcnRlZDonPHBhdGggZD0iTTI3LjkwNDEgMS42NDYyMUwyMi4yMjI0IDExLjExNTlDMjEuOTUyOSAxMS40OTg0IDIxLjkyODQgMTEuOTk0OSAyMi4xNTkx'@; put 'IDEyLjQwMDVDMjIuMzg5OCAxMi44MDYgMjIuODM2NiAxMy4wNTE5IDIzLjMxNSAxMy4wMzY3SDM0LjY4ODRDMzUuMTY2OSAxMy4wNTE5IDM1LjYxMzYgMTIuODA2IDM1Ljg0NDMgMTIuNDAwNUMzNi4wNzUgMTEuOTk0OSAzNi4wNTA2IDExLjQ5ODQgMzUuNzgxIDExLjExNTlMMzAuMDk5MyAx'@; put 'LjY0NjIxQzI5Ljg3MTMgMS4yNjkxMyAyOS40NTM1IDEuMDM3MzUgMjkuMDAxNyAxLjAzNzM1QzI4LjU1IDEuMDM3MzUgMjguMTMyMSAxLjI2OTEzIDI3LjkwNDEgMS42NDYyMVoiLz48cGF0aCBkPSJNMjAuMTA1OCAxMUgxNC45MTAyQzE0LjU5MDIgMTEgMTQuMjkwMiAxMC44NSAxNC4xMDAy'@; put 'IDEwLjU5TDExLjQ5MDIgN0g1LjAwMDI0VjI1TDcuOTIwMjQgMTQuNjZWMTQuNTJDOC4zMjAyNCAxMy42MyA5LjE5MDI0IDEzLjA0IDEwLjE3MDIgMTNIMjAuMjMyN0MyMC4yODYxIDEzLjEzMjYgMjAuMzQ4OCAxMy4yNjI3IDIwLjQyMDggMTMuMzg5M0MyMC44ODE1IDE0LjE5OTEgMjEuNjUy'@; put 'NyAxNC43NDcyIDIyLjUxODMgMTQuOTVIMTAuMTYwMkMxMC4wMTAyIDE0Ljk4IDkuODcwMjQgMTUuMDcgOS43ODAyNCAxNS4xOUw1LjkwMDI0IDI5SDI4Ljk0MDJMMzIuODU1OSAxNS4wMzY3SDM0LjY2MzlDMzQuNzYzNiAxNS4wMzg3IDM0Ljg2MyAxNS4wMzYyIDM0Ljk2MTcgMTUuMDI5MkMz'@; put 'NC45NTAzIDE1LjA3OTggMzQuOTM2NSAxNS4xMzAxIDM0LjkyMDIgMTUuMThMMzAuNzMwMiAzMC4yOEMzMC42MDAyIDMwLjcyIDMwLjE5MDIgMzEuMDIgMjkuNzMwMiAzMUg0LjQxMDI0QzMuNjYwMjQgMzEuMDIgMy4wMzAyNCAzMC40NCAzLjAwMDI0IDI5LjY5VjdDMy4wMDAyNCA1LjkgMy45'@; put 'MDAyNCA1IDUuMDAwMjQgNUgxMS40OTAyQzEyLjEzMDIgNSAxMi43MzAyIDUuMyAxMy4xMTAyIDUuODJMMTUuNDIwMiA5SDIxLjE1OTdMMjAuNTM2NCAxMC4wMzg3QzIwLjMzNzggMTAuMzM4MSAyMC4xOTM5IDEwLjY2MzIgMjAuMTA1OCAxMVoiLz4nLG91dGxpbmVCYWRnZWQ6JzxwYXRoIGQ9'@; put 'Ik0zMSAxMUMzMy43NjE0IDExIDM2IDguNzYxNDIgMzYgNkMzNiAzLjIzODU4IDMzLjc2MTQgMSAzMSAxQzI4LjIzODYgMSAyNiAzLjIzODU4IDI2IDZDMjYgOC43NjE0MiAyOC4yMzg2IDExIDMxIDExWiIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBk'@; put 'PSJNMjYuMTAxIDExSDE0LjkxQzE0LjU5IDExIDE0LjI5IDEwLjg1IDE0LjEgMTAuNTlMMTEuNDkgN0g1VjI1TDcuOTIgMTQuNjZWMTQuNTJDOC4zMiAxMy42MyA5LjE5IDEzLjA0IDEwLjE3IDEzSDMzLjI2QzMzLjg0IDEyLjk5IDM0LjM4IDEzLjI2IDM0LjcxIDEzLjc0QzM1IDE0LjE2IDM1'@; put 'LjA4IDE0LjY5IDM0LjkyIDE1LjE4TDMwLjczIDMwLjI4QzMwLjYgMzAuNzIgMzAuMTkgMzEuMDIgMjkuNzMgMzFINC40MUMzLjY2IDMxLjAyIDMuMDMgMzAuNDQgMyAyOS42OVY3QzMgNS45IDMuOSA1IDUgNUgxMS40OUMxMi4xMyA1IDEyLjczIDUuMyAxMy4xMSA1LjgyTDE1LjQyIDlIMjQu'@; put 'NjczNkMyNS4wMjk3IDkuNzQ5NiAyNS41MTUxIDEwLjQyNTkgMjYuMTAxIDExWk0yOC45NCAyOUg1LjlMOS43OCAxNS4xOUM5Ljg3IDE1LjA3IDEwLjAxIDE0Ljk4IDEwLjE2IDE0Ljk1SDMyLjg4TDI4Ljk0IDI5WiIvPicsc29saWQ6JzxwYXRoIGQ9Ik0zNC43MDU4IDEzLjc0QzM0LjM3NDQg'@; put 'MTMuMjY0MyAzMy44MjIzIDEyLjk4NiAzMy4yMzc5IDEzSDEwLjI1ODNDOS4yNjk1MiAxMy4wNDE0IDguMzg4NTggMTMuNjI5MyA3Ljk4MDYgMTQuNTJDNy45NzcyOSAxNC41NjY2IDcuOTc3MjkgMTQuNjEzNCA3Ljk4MDYgMTQuNjZMNS4wMjQ2MyAyNVY3LjAwMDAxSDExLjU5NDZMMTQuMjM2'@; put 'NyAxMC41OUMxNC40Mjc5IDEwLjg0ODQgMTQuNzMyNyAxMS4wMDA4IDE1LjA1NjcgMTFIMzEuMzQ0OUMzMS4zNDQ5IDkuODk1NDQgMzAuNDM4NCA5LjAwMDAxIDI5LjMyMDMgOS4wMDAwMUgxNS41NzNMMTMuMjM0NSA1LjgyMDAxQzEyLjg1MjIgNS4zMDMxOCAxMi4yNDI2IDQuOTk4MzUgMTEu'@; put 'NTk0NiA1LjAwMDAxSDUuMDI0NjNDMy45MDY0NiA1LjAwMDAxIDMgNS44OTU0NCAzIDcuMDAwMDFWMjkuNjlDMy4wMzI4OSAzMC40Mzg5IDMuNjY4OTEgMzEuMDIyNiA0LjQyNzM3IDMxSDI5LjY2NDRDMzAuMTI5MyAzMS4wMTgzIDMwLjU0NjkgMzAuNzIxMyAzMC42NzY4IDMwLjI4TDM0Ljkx'@; put 'ODQgMTUuMThDMzUuMDc4OCAxNC42OTM1IDM1LjAwMDEgMTQuMTYxIDM0LjcwNTggMTMuNzRaIi8+Jyxzb2xpZEFsZXJ0ZWQ6JzxwYXRoIGQ9Ik0yNy45MDQxIDEuNjQ2MjFMMjIuMjIyNCAxMS4xMTU5QzIxLjk1MjkgMTEuNDk4NCAyMS45Mjg0IDExLjk5NDkgMjIuMTU5MSAxMi40MDA1QzIy'@; put 'LjM4OTggMTIuODA2IDIyLjgzNjYgMTMuMDUxOSAyMy4zMTUgMTMuMDM2N0gzNC42ODg0QzM1LjE2NjkgMTMuMDUxOSAzNS42MTM2IDEyLjgwNiAzNS44NDQzIDEyLjQwMDVDMzYuMDc1IDExLjk5NDkgMzYuMDUwNiAxMS40OTg0IDM1Ljc4MSAxMS4xMTU5TDMwLjA5OTMgMS42NDYyMUMyOS44'@; put 'NzEzIDEuMjY5MTMgMjkuNDUzNSAxLjAzNzM1IDI5LjAwMTcgMS4wMzczNUMyOC41NSAxLjAzNzM1IDI4LjEzMjEgMS4yNjkxMyAyNy45MDQxIDEuNjQ2MjFaIi8+PHBhdGggZD0iTTIwLjIzMjUgMTNDMjAuMjg1OCAxMy4xMzI2IDIwLjM0ODUgMTMuMjYyNyAyMC40MjA2IDEzLjM4OTNDMjEu'@; put 'MDIzMyAxNC40NDg5IDIyLjE1NzcgMTUuMDYwNCAyMy4zMzk1IDE1LjAzNjdIMzQuNjYzN0MzNC43NjI5IDE1LjAzODcgMzQuODYxOCAxNS4wMzYyIDM0Ljk2MDEgMTUuMDI5M0MzNC45NDg3IDE1LjA3OTkgMzQuOTM0OCAxNS4xMzAyIDM0LjkxODQgMTUuMThMMzAuNjc2OCAzMC4yOEMzMC41'@; put 'NDY5IDMwLjcyMTMgMzAuMTI5MyAzMS4wMTgzIDI5LjY2NDQgMzFINC40MjczN0MzLjY2ODkxIDMxLjAyMjYgMy4wMzI4OSAzMC40Mzg5IDMgMjkuNjlWNy4wMDAwMUMzIDUuODk1NDQgMy45MDY0NiA1LjAwMDAxIDUuMDI0NjMgNS4wMDAwMUgxMS41OTQ2QzEyLjI0MjYgNC45OTgzNSAxMi44'@; put 'NTIyIDUuMzAzMTggMTMuMjM0NSA1LjgyMDAxTDE1LjU3MyA5LjAwMDAxSDIxLjE1OTRMMjAuNTM2MiAxMC4wMzg3QzIwLjMzNzUgMTAuMzM4MSAyMC4xOTM3IDEwLjY2MzIgMjAuMTA1NiAxMUgxNS4wNTY3QzE0LjczMjcgMTEuMDAwOCAxNC40Mjc5IDEwLjg0ODQgMTQuMjM2NyAxMC41OUwx'@; put 'MS41OTQ2IDcuMDAwMDFINS4wMjQ2M1YyNUw3Ljk4MDYgMTQuNjZDNy45NzcyOSAxNC42MTM0IDcuOTc3MjkgMTQuNTY2NiA3Ljk4MDYgMTQuNTJDOC4zODg1OCAxMy42MjkzIDkuMjY5NTIgMTMuMDQxNCAxMC4yNTgzIDEzSDIwLjIzMjVaIi8+Jyxzb2xpZEJhZGdlZDonPHBhdGggZD0iTTMx'@; put 'IDExQzMzLjc2MTQgMTEgMzYgOC43NjE0MiAzNiA2QzM2IDMuMjM4NTggMzMuNzYxNCAxIDMxIDFDMjguMjM4NiAxIDI2IDMuMjM4NTggMjYgNkMyNiA4Ljc2MTQyIDI4LjIzODYgMTEgMzEgMTFaIi8+PHBhdGggZD0iTTI0LjY3MzYgOS4wMDAwMUMyNS4wMjk3IDkuNzQ5NjEgMjUuNTE1MSAx'@; put 'MC40MjU5IDI2LjEwMSAxMUgxNS4wNTY3QzE0LjczMjcgMTEuMDAwOCAxNC40Mjc5IDEwLjg0ODQgMTQuMjM2NyAxMC41OUwxMS41OTQ2IDcuMDAwMDFINS4wMjQ2M1YyNUw3Ljk4MDYgMTQuNjZDNy45NzcyOSAxNC42MTM0IDcuOTc3MjkgMTQuNTY2NiA3Ljk4MDYgMTQuNTJDOC4zODg1OCAx'@; put 'My42MjkzIDkuMjY5NTIgMTMuMDQxNCAxMC4yNTgzIDEzSDMzLjIzNzlDMzMuODIyMyAxMi45ODYgMzQuMzc0NCAxMy4yNjQzIDM0LjcwNTggMTMuNzRDMzUuMDAwMSAxNC4xNjEgMzUuMDc4OCAxNC42OTM1IDM0LjkxODQgMTUuMThMMzAuNjc2OCAzMC4yOEMzMC41NDY5IDMwLjcyMTMgMzAu'@; put 'MTI5MyAzMS4wMTgzIDI5LjY2NDQgMzFINC40MjczN0MzLjY2ODkxIDMxLjAyMjYgMy4wMzI4OSAzMC40Mzg5IDMgMjkuNjlWNy4wMDAwMUMzIDUuODk1NDQgMy45MDY0NiA1LjAwMDAxIDUuMDI0NjMgNS4wMDAwMUgxMS41OTQ2QzEyLjI0MjYgNC45OTgzNSAxMi44NTIyIDUuMzAzMTggMTMu'@; put 'MjM0NSA1LjgyMDAxTDE1LjU3MyA5LjAwMDAxSDI0LjY3MzZaIi8+J31dLHFPZT1bIm1pbnVzIix7b3V0bGluZTonPHBhdGggZD0iTTI2IDE3SDEwQzkuNDQ3NzIgMTcgOSAxNy40NDc3IDkgMThDOSAxOC41NTIzIDkuNDQ3NzIgMTkgMTAgMTlIMjZDMjYuNTUyMyAxOSAyNyAxOC41NTIzIDI3'@; put 'IDE4QzI3IDE3LjQ0NzcgMjYuNTUyMyAxNyAyNiAxN1oiLz4nfV0sSk9lPVsicGx1cyIse291dGxpbmU6JzxwYXRoIGQ9Ik0yOS45OTk5IDE3SDE4Ljk5OTlWNkMxOC45OTk5IDUuNDQ3NzIgMTguNTUyMiA1IDE3Ljk5OTkgNUMxNy40NDc2IDUgMTYuOTk5OSA1LjQ0NzcyIDE2Ljk5OTkgNlYx'@; put 'N0g1Ljk5OTkyQzUuNDQ3NjQgMTcgNC45OTk5MiAxNy40NDc3IDQuOTk5OTIgMThDNC45ODk5NCAxOC4yNjMgNS4wOTQyNyAxOC41MTc0IDUuMjg2IDE4LjY5NzZDNS40Nzc3MyAxOC44Nzc4IDUuNzM4MDkgMTguOTY2MiA1Ljk5OTkyIDE4Ljk0SDE2Ljk5OTlWMzBDMTYuOTk5OSAzMC41NTIz'@; put 'IDE3LjQ0NzYgMzEgMTcuOTk5OSAzMUMxOC41NTIyIDMxIDE4Ljk5OTkgMzAuNTUyMyAxOC45OTk5IDMwVjE5SDI5Ljk5OTlDMzAuNTUyMiAxOSAzMC45OTk5IDE4LjU1MjMgMzAuOTk5OSAxOEMzMC45OTk5IDE3LjQ0NzcgMzAuNTUyMiAxNyAyOS45OTk5IDE3WiIvPid9XSxRT2U9WyJleWUt'@; put 'aGlkZSIse291dGxpbmU6JzxwYXRoIGQ9Ik0yNC41NDk1IDIwLjQzMDFDMjQuODI5NCAxOS42NzAxIDI0Ljk4OTMgMTguODYwMSAyNC45ODkzIDE4LjAwMDFDMjQuOTg5MyAxNC4xNDAxIDIxLjg1MDggMTEuMDAwMSAxNy45OTI2IDExLjAwMDFDMTcuMTMzIDExLjAwMDEgMTYuMzIzMyAxMS4x'@; put 'NjAxIDE1LjU2MzcgMTEuNDQwMUwxNy4yMDI5IDEzLjA4MDFDMTcuNDYyOCAxMy4wNDAxIDE3LjcyMjcgMTMuMDAwMSAxNy45OTI2IDEzLjAwMDFDMjAuNzUxMyAxMy4wMDAxIDIyLjk5MDIgMTUuMjQwMSAyMi45OTAyIDE4LjAwMDFDMjIuOTkwMiAxOC4yNzAxIDIyLjk1MDIgMTguNTMwMSAy'@; put 'Mi45MTAzIDE4Ljc5MDFMMjQuNTQ5NSAyMC40MzAxWk0xNy45OTI2IDkuMDAwMDZDMjMuOTg5OCA5LjAwMDA2IDI5LjM5NzIgMTIuNTIwMSAzMS44OTYgMTguMDAwMUMzMC44OTY1IDIwLjE5MDEgMjkuNDI3MiAyMi4wNjAxIDI3LjY0OCAyMy41MzAxTDI5LjA2NzQgMjQuOTUwMUMzMS4xMjY0'@; put 'IDIzLjIyMDEgMzIuODA1NiAyMC45OTAxIDMzLjkxNTEgMTguMzkwMUMzNC4wMjUgMTguMTQwMSAzNC4wMjUgMTcuODYwMSAzMy45MTUxIDE3LjYxMDFDMzEuMTg2NCAxMS4xNjAxIDI0LjkzOTMgNy4wMDAwNiAxOC4wMDI2IDcuMDAwMDZDMTUuOTczNSA3LjAwMDA2IDE0LjAwNDQgNy4zNzAw'@; put 'NiAxMi4xNjUzIDguMDMwMDZMMTMuNzQ0NiA5LjYxMDA2QzE1LjEwMzkgOS4yMTAwNiAxNi41MzMyIDkuMDAwMDYgMTguMDAyNiA5LjAwMDA2SDE3Ljk5MjZaTTMuNzA5MjYgMi4yOTAwNkMzLjMxOTQ0IDEuOTAwMDYgMi42Nzk3NCAxLjkwMDA2IDIuMjg5OTIgMi4yOTAwNkMxLjkwMDEgMi42'@; put 'ODAwNiAxLjkwMDEgMy4zMjAwNiAyLjI4OTkyIDMuNzEwMDZMOC40NzcwMiA5LjkwMDA2QzUuNzA4MzIgMTEuNzQwMSAzLjQ0OTM4IDE0LjM4MDEgMi4wODAwMiAxNy42MTAxQzEuOTcwMDcgMTcuODYwMSAxLjk3MDA3IDE4LjE0MDEgMi4wODAwMiAxOC4zOTAxQzQuODA4NzQgMjQuODQwMSAx'@; put 'MS4wNTU4IDI5LjAwMDEgMTcuOTkyNiAyOS4wMDAxQzIwLjc0MTMgMjkuMDAwMSAyMy4zNyAyOC4zNDAxIDI1LjcxODkgMjcuMTUwMUwzMi4yNzU5IDMzLjcxMDFDMzIuNDc1OCAzMy45MTAxIDMyLjcyNTcgMzQuMDAwMSAzMi45ODU1IDM0LjAwMDFDMzMuMjQ1NCAzNC4wMDAxIDMzLjQ5NTMg'@; put 'MzMuOTAwMSAzMy42OTUyIDMzLjcxMDFDMzQuMDg1IDMzLjMyMDEgMzQuMDg1IDMyLjY5MDEgMzMuNjk1MiAzMi4zMDAxTDMuNzA5MjYgMi4yOTAwNlpNMTMuODM0NSAxNS4yNTAxTDIwLjc0MTMgMjIuMTYwMUMxOS45NTE2IDIyLjY4MDEgMTkuMDEyMSAyMy4wMDAxIDE3Ljk5MjYgMjMuMDAw'@; put 'MUMxNS4yMzM5IDIzLjAwMDEgMTIuOTk0OSAyMC43NjAxIDEyLjk5NDkgMTguMDAwMUMxMi45OTQ5IDE2Ljk4MDEgMTMuMzA0OCAxNi4wNDAxIDEzLjgzNDUgMTUuMjUwMVpNMTcuOTkyNiAyNy4wMDAxQzExLjk5NTQgMjcuMDAwMSA2LjU4NzkxIDIzLjQ4MDEgNC4wODkwOCAxOC4wMDAxQzUu'@; put 'MzY4NDggMTUuMTkwMSA3LjQyNzUxIDEyLjkxMDEgOS45MjYzNCAxMS4zNDAxTDEyLjQwNTIgMTMuODIwMUMxMS41MjU2IDE0Ljk5MDEgMTAuOTk1OCAxNi40MzAxIDEwLjk5NTggMTguMDAwMUMxMC45OTU4IDIxLjg2MDEgMTQuMTM0NCAyNS4wMDAxIDE3Ljk5MjYgMjUuMDAwMUMxOS41NjE4'@; put 'IDI1LjAwMDEgMjEuMDAxMiAyNC40NzAxIDIyLjE3MDYgMjMuNTkwMUwyNC4yMjk2IDI1LjY1MDFDMjIuMzEwNSAyNi41MjAxIDIwLjE5MTUgMjcuMDAwMSAxNy45OTI2IDI3LjAwMDFaIi8+Jyxzb2xpZDonPHBhdGggZD0iTTE3Ljk5MjYgOS4wMDAwNkMyMy45ODk4IDkuMDAwMDYgMjkuMzk3'@; put 'MiAxMi41MjAxIDMxLjg5NiAxOC4wMDAxQzMwLjg5NjUgMjAuMTkwMSAyOS40MjcyIDIyLjA2MDEgMjcuNjQ4IDIzLjUzMDFMMjkuMDY3NCAyNC45NTAxQzMxLjEyNjQgMjMuMjIwMSAzMi44MDU2IDIwLjk5MDEgMzMuOTE1MSAxOC4zOTAxQzM0LjAyNSAxOC4xNDAxIDM0LjAyNSAxNy44NjAx'@; put 'IDMzLjkxNTEgMTcuNjEwMUMzMS4xODY0IDExLjE2MDEgMjQuOTM5MyA3LjAwMDA2IDE4LjAwMjYgNy4wMDAwNkMxNS45NzM1IDcuMDAwMDYgMTQuMDA0NCA3LjM3MDA2IDEyLjE2NTMgOC4wMzAwNkwxMy43NDQ2IDkuNjEwMDZDMTUuMTAzOSA5LjIxMDA2IDE2LjUzMzIgOS4wMDAwNiAxOC4w'@; put 'MDI2IDkuMDAwMDZIMTcuOTkyNlpNMy43MDkyNiAyLjI5MDA2QzMuMzE5NDQgMS45MDAwNiAyLjY3OTc0IDEuOTAwMDYgMi4yODk5MiAyLjI5MDA2QzEuOTAwMSAyLjY4MDA2IDEuOTAwMSAzLjMyMDA2IDIuMjg5OTIgMy43MTAwNkw4LjQ3NzAyIDkuOTAwMDZDNS43MDgzMiAxMS43NDAxIDMu'@; put 'NDQ5MzggMTQuMzgwMSAyLjA4MDAyIDE3LjYxMDFDMS45NzAwNyAxNy44NjAxIDEuOTcwMDcgMTguMTQwMSAyLjA4MDAyIDE4LjM5MDFDNC44MDg3NCAyNC44NDAxIDExLjA1NTggMjkuMDAwMSAxNy45OTI2IDI5LjAwMDFDMjAuNzQxMyAyOS4wMDAxIDIzLjM3IDI4LjM0MDEgMjUuNzE4OSAy'@; put 'Ny4xNTAxTDMyLjI3NTkgMzMuNzEwMUMzMi40NzU4IDMzLjkxMDEgMzIuNzI1NyAzNC4wMDAxIDMyLjk4NTUgMzQuMDAwMUMzMy4yNDU0IDM0LjAwMDEgMzMuNDk1MyAzMy45MDAxIDMzLjY5NTIgMzMuNzEwMUMzNC4wODUgMzMuMzIwMSAzNC4wODUgMzIuNjkwMSAzMy42OTUyIDMyLjMwMDFM'@; put 'My43MDkyNiAyLjI5MDA2Wk0xNy45OTI2IDI3LjAwMDFDMTEuOTk1NCAyNy4wMDAxIDYuNTg3OTEgMjMuNDgwMSA0LjA4OTA4IDE4LjAwMDFDNS4zNjg0OCAxNS4xOTAxIDcuNDI3NTEgMTIuOTEwMSA5LjkyNjM0IDExLjM0MDFMMTIuNDA1MiAxMy44MjAxQzExLjUyNTYgMTQuOTkwMSAxMC45'@; put 'OTU4IDE2LjQzMDEgMTAuOTk1OCAxOC4wMDAxQzEwLjk5NTggMjEuODYwMSAxNC4xMzQ0IDI1LjAwMDEgMTcuOTkyNiAyNS4wMDAxQzE5LjU2MTggMjUuMDAwMSAyMS4wMDEyIDI0LjQ3MDEgMjIuMTcwNiAyMy41OTAxTDI0LjIyOTYgMjUuNjUwMUMyMi4zMTA1IDI2LjUyMDEgMjAuMTkxNSAy'@; put 'Ny4wMDAxIDE3Ljk5MjYgMjcuMDAwMVpNMTUuNTYzNyAxMS40NDAxTDI0LjU0OTUgMjAuNDMwMUMyNC44Mjk0IDE5LjY3MDEgMjQuOTg5MyAxOC44NjAxIDI0Ljk4OTMgMTguMDAwMUMyNC45ODkzIDE0LjE0MDEgMjEuODUwOCAxMS4wMDAxIDE3Ljk5MjYgMTEuMDAwMUMxNy4xMzMgMTEuMDAw'@; put 'MSAxNi4zMjMzIDExLjE2MDEgMTUuNTYzNyAxMS40NDAxWiIvPid9XSxlUGU9WyJleWUiLHtvdXRsaW5lOic8cGF0aCBkPSJNMTcuOTk3NiAxMUMxNC4xMzgyIDExIDEwLjk5ODcgMTQuMTQgMTAuOTk4NyAxOEMxMC45OTg3IDIxLjg2IDE0LjEzODIgMjUgMTcuOTk3NiAyNUMyMS44NTcgMjUg'@; put 'MjQuOTk2NSAyMS44NiAyNC45OTY1IDE4QzI0Ljk5NjUgMTQuMTQgMjEuODU3IDExIDE3Ljk5NzYgMTFaTTE3Ljk5NzYgMjNDMTUuMjM4IDIzIDEyLjk5ODMgMjAuNzYgMTIuOTk4MyAxOEMxMi45OTgzIDE1LjI0IDE1LjIzOCAxMyAxNy45OTc2IDEzQzIwLjc1NzEgMTMgMjIuOTk2OCAxNS4y'@; put 'NCAyMi45OTY4IDE4QzIyLjk5NjggMjAuNzYgMjAuNzU3MSAyMyAxNy45OTc2IDIzWk0zMy45MTUxIDE3LjYxQzMxLjE4NTUgMTEuMTcgMjQuOTM2NSA3IDE3Ljk5NzYgN0MxMS4wNTg2IDcgNC44MDk2MiAxMS4xNyAyLjA4MDA1IDE3LjYxQzEuOTcwMDYgMTcuODYgMS45NzAwNiAxOC4xNCAy'@; put 'LjA4MDA1IDE4LjM5QzQuODA5NjIgMjQuODQgMTEuMDU4NiAyOSAxNy45OTc2IDI5QzI0LjkzNjUgMjkgMzEuMTg1NSAyNC44MyAzMy45MTUxIDE4LjM5QzM0LjAyNTEgMTguMTQgMzQuMDI1MSAxNy44NiAzMy45MTUxIDE3LjYxWk0xNy45OTc2IDI3QzExLjk5ODUgMjcgNi41ODkzNCAyMy40'@; put 'OCA0LjA4OTczIDE4QzYuNTg5MzQgMTIuNTIgMTEuOTk4NSA5IDE3Ljk5NzYgOUMyMy45OTY2IDkgMjkuNDA1OCAxMi41MiAzMS45MDU0IDE4QzI5LjQwNTggMjMuNDggMjMuOTk2NiAyNyAxNy45OTc2IDI3WiIvPicsc29saWQ6JzxwYXRoIGQ9Ik0xNy45OTc2IDExQzE0LjEzODIgMTEgMTAu'@; put 'OTk4NyAxNC4xNCAxMC45OTg3IDE4QzEwLjk5ODcgMjEuODYgMTQuMTM4MiAyNSAxNy45OTc2IDI1QzIxLjg1NyAyNSAyNC45OTY1IDIxLjg2IDI0Ljk5NjUgMThDMjQuOTk2NSAxNC4xNCAyMS44NTcgMTEgMTcuOTk3NiAxMVpNMzMuOTE1MSAxNy42MUMzMS4xODU1IDExLjE3IDI0LjkzNjUg'@; put 'NyAxNy45OTc2IDdDMTEuMDU4NiA3IDQuODA5NjIgMTEuMTcgMi4wODAwNSAxNy42MUMxLjk3MDA2IDE3Ljg2IDEuOTcwMDYgMTguMTQgMi4wODAwNSAxOC4zOUM0LjgwOTYyIDI0Ljg0IDExLjA1ODYgMjkgMTcuOTk3NiAyOUMyNC45MzY1IDI5IDMxLjE4NTUgMjQuODMgMzMuOTE1MSAxOC4z'@; put 'OUMzNC4wMjUxIDE4LjE0IDM0LjAyNTEgMTcuODYgMzMuOTE1MSAxNy42MVpNMTcuOTk3NiAyN0MxMS45OTg1IDI3IDYuNTg5MzQgMjMuNDggNC4wODk3MyAxOEM2LjU4OTM0IDEyLjUyIDExLjk5ODUgOSAxNy45OTc2IDlDMjMuOTk2NiA5IDI5LjQwNTggMTIuNTIgMzEuOTA1NCAxOEMyOS40'@; put 'MDU4IDIzLjQ4IDIzLjk5NjYgMjcgMTcuOTk3NiAyN1oiLz4nfV0sdFBlPVsiZWxsaXBzaXMtdmVydGljYWwiLHtvdXRsaW5lOic8cGF0aCBkPSJNMjEuMTAwMSA0LjlDMjEuMTAwMSA2LjUwMTYzIDE5Ljc1NyA3LjggMTguMTAwMSA3LjhDMTYuNDQzMiA3LjggMTUuMTAwMSA2LjUwMTYzIDE1'@; put 'LjEwMDEgNC45QzE1LjEwMDEgMy4yOTgzNyAxNi40NDMyIDIgMTguMTAwMSAyQzE5Ljc1NyAyIDIxLjEwMDEgMy4yOTgzNyAyMS4xMDAxIDQuOVoiLz48cGF0aCBkPSJNMTguMTAwMSAyMC45QzE5Ljc1NyAyMC45IDIxLjEwMDEgMTkuNjAxNiAyMS4xMDAxIDE4QzIxLjEwMDEgMTYuMzk4NCAx'@; put 'OS43NTcgMTUuMSAxOC4xMDAxIDE1LjFDMTYuNDQzMiAxNS4xIDE1LjEwMDEgMTYuMzk4NCAxNS4xMDAxIDE4QzE1LjEwMDEgMTkuNjAxNiAxNi40NDMyIDIwLjkgMTguMTAwMSAyMC45WiIvPjxwYXRoIGQ9Ik0xOC4xMDAxIDM0QzE5Ljc1NyAzNCAyMS4xMDAxIDMyLjcwMTYgMjEuMTAwMSAz'@; put 'MS4xQzIxLjEwMDEgMjkuNDk4NCAxOS43NTcgMjguMiAxOC4xMDAxIDI4LjJDMTYuNDQzMiAyOC4yIDE1LjEwMDEgMjkuNDk4NCAxNS4xMDAxIDMxLjFDMTUuMTAwMSAzMi43MDE2IDE2LjQ0MzIgMzQgMTguMTAwMSAzNFoiLz4nLG91dGxpbmVCYWRnZWQ6JzxwYXRoIGQ9Ik0yMS4xMDAxIDQu'@; put 'OUMyMS4xMDAxIDYuNTAxNjMgMTkuNzU3IDcuOCAxOC4xMDAxIDcuOEMxNi40NDMyIDcuOCAxNS4xMDAxIDYuNTAxNjMgMTUuMTAwMSA0LjlDMTUuMTAwMSAzLjI5ODM3IDE2LjQ0MzIgMiAxOC4xMDAxIDJDMTkuNzU3IDIgMjEuMTAwMSAzLjI5ODM3IDIxLjEwMDEgNC45WiIvPjxwYXRoIGQ9'@; put 'Ik0xOC4xMDAxIDIwLjlDMTkuNzU3IDIwLjkgMjEuMTAwMSAxOS42MDE2IDIxLjEwMDEgMThDMjEuMTAwMSAxNi4zOTg0IDE5Ljc1NyAxNS4xIDE4LjEwMDEgMTUuMUMxNi40NDMyIDE1LjEgMTUuMTAwMSAxNi4zOTg0IDE1LjEwMDEgMThDMTUuMTAwMSAxOS42MDE2IDE2LjQ0MzIgMjAuOSAx'@; put 'OC4xMDAxIDIwLjlaIi8+PHBhdGggZD0iTTE4LjEwMDEgMzRDMTkuNzU3IDM0IDIxLjEwMDEgMzIuNzAxNiAyMS4xMDAxIDMxLjFDMjEuMTAwMSAyOS40OTg0IDE5Ljc1NyAyOC4yIDE4LjEwMDEgMjguMkMxNi40NDMyIDI4LjIgMTUuMTAwMSAyOS40OTg0IDE1LjEwMDEgMzEuMUMxNS4xMDAx'@; put 'IDMyLjcwMTYgMTYuNDQzMiAzNCAxOC4xMDAxIDM0WiIvPjxwYXRoIGQ9Ik0zMCAxMUMzMi43NjE0IDExIDM1IDguNzYxNDIgMzUgNkMzNSAzLjIzODU4IDMyLjc2MTQgMSAzMCAxQzI3LjIzODYgMSAyNSAzLjIzODU4IDI1IDZDMjUgOC43NjE0MiAyNy4yMzg2IDExIDMwIDExWiIvPid9XSxu'@; put 'UGU9WyJ2aWV3LWNvbHVtbnMiLHtvdXRsaW5lOic8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTMxIDVINUMzLjg5NTQzIDUgMyA1Ljg5NTQzIDMgN1YyOUMzIDMwLjEwNDYgMy44OTU0MyAzMSA1IDMxSDMxQzMyLjEwNDYgMzEgMzMgMzAuMTA0NiAz'@; put 'MyAyOVY3QzMzIDUuODk1NDMgMzIuMTA0NiA1IDMxIDVaTTEzIDI5SDVWN0gxM1YyOVpNMTUgMjlIMjNWN0gxNVYyOVoiLz4nfV0sclBlPVsiYXJyb3ciLHtvdXRsaW5lOic8cGF0aCBkPSJNMjcuNjUwNCAxNS42MzQxTDE3Ljk5NTEgNkw4LjMzOTgxIDE1LjYzNDFDOC4wMjg2OSAxNS44NzE3'@; put 'IDcuODg0MzIgMTYuMjY5NSA3Ljk3MDMgMTYuNjUyMUM4LjA1NjI5IDE3LjAzNDcgOC4zNTY4NSAxNy4zMzE5IDguNzM5NTIgMTcuNDEyN0M5LjEyMjE5IDE3LjQ5MzUgOS41MTY2NyAxNy4zNDMgOS43NDkxMiAxNy4wMjc2TDE2Ljk5NTYgOS44MTk1NVYyOC45OTc1QzE2Ljk5NTYgMjkuNTUx'@; put 'MiAxNy40NDMxIDMwIDE3Ljk5NTEgMzBDMTguNTQ3MSAzMCAxOC45OTQ2IDI5LjU1MTIgMTguOTk0NiAyOC45OTc1VjkuODE5NTVMMjYuMjQxMSAxNy4wMjc2QzI2LjYzMyAxNy40MTc5IDI3LjI2NjIgMTcuNDE1NyAyNy42NTU0IDE3LjAyMjZDMjguMDQ0NSAxNi42Mjk1IDI4LjA0MjMgMTUu'@; put 'OTk0MyAyNy42NTA0IDE1LjYwNFYxNS42MzQxWiIvPid9XSxpUGU9WyJzdGVwLWZvcndhcmQtMiIse291dGxpbmU6JzxwYXRoIGQ9Ik03LjA4ODkzIDYuNTIwMDNDNi45MjY0MyA2LjY3NjQ1IDYuNzk3MzQgNi44NjMxNSA2LjcwOTIxIDcuMDY5MjFDNi42MjEwOCA3LjI3NTI2IDYuNTc1Njgg'@; put 'Ny40OTY1MiA2LjU3NTY4IDcuNzIwMDNDNi41NzU2OCA3Ljk0MzUzIDYuNjIxMDggOC4xNjQ3OSA2LjcwOTIxIDguMzcwODVDNi43OTczNCA4LjU3NjkgNi45MjY0MyA4Ljc2MzYxIDcuMDg4OTMgOC45MjAwM0wxNi42ODcyIDE4TDcuMTI5NjQgMjcuMDhDNi44Mjk3NyAyNy4zOTkxIDYuNjY1'@; put 'NTQgMjcuODE4OCA2LjY3MDY1IDI4LjI1M0M2LjY3NTc2IDI4LjY4NzIgNi44NDk4MiAyOS4xMDMxIDcuMTU3MTIgMjkuNDE1MkM3LjQ2NDQyIDI5LjcyNzQgNy44ODE2NiAyOS45MTIxIDguMzIzMjMgMjkuOTMxNkM4Ljc2NDggMjkuOTUxMSA5LjE5NzIxIDI5LjgwMzggOS41MzE3NiAyOS41'@; put 'MkwyMS42NjQ1IDE4TDkuNTMxNzYgNi40NzAwM0M5LjM2ODUxIDYuMzE0ODIgOS4xNzU1OSA2LjE5MjkzIDguOTY0MTMgNi4xMTEzN0M4Ljc1MjY3IDYuMDI5ODIgOC41MjY4NiA1Ljk5MDIyIDguMjk5NzQgNS45OTQ4N0M4LjA3MjYyIDUuOTk5NTIgNy44NDg2OSA2LjA0ODMyIDcuNjQwODcg'@; put 'Ni4xMzg0NkM3LjQzMzA1IDYuMjI4NTkgNy4yNDU0NiA2LjM1ODI4IDcuMDg4OTMgNi41MjAwM1oiLz48cGF0aCBkPSJNMjYuODQ1MyA1QzI2LjM4NjQgNSAyNS45NDYzIDUuMTc5MTEgMjUuNjIxOCA1LjQ5NzkyQzI1LjI5NzMgNS44MTY3MyAyNS4xMTUgNi4yNDkxMyAyNS4xMTUgNi43VjI5'@; put 'LjNDMjUuMTE1IDI5Ljc1MDkgMjUuMjk3MyAzMC4xODMzIDI1LjYyMTggMzAuNTAyMUMyNS45NDYzIDMwLjgyMDkgMjYuMzg2NCAzMSAyNi44NDUzIDMxQzI3LjMwNDMgMzEgMjcuNzQ0NCAzMC44MjA5IDI4LjA2ODkgMzAuNTAyMUMyOC4zOTM0IDMwLjE4MzMgMjguNTc1NyAyOS43NTA5IDI4'@; put 'LjU3NTcgMjkuM1Y2LjdDMjguNTc1NyA2LjI0OTEzIDI4LjM5MzQgNS44MTY3MyAyOC4wNjg5IDUuNDk3OTJDMjcuNzQ0NCA1LjE3OTExIDI3LjMwNDMgNSAyNi44NDUzIDVaIi8+J31dLGFQZT1bImZpbHRlci1ncmlkLWNpcmNsZSIse291dGxpbmU6JzxwYXRoIGZpbGwtcnVsZT0iZXZlbm9k'@; put 'ZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTggMkM5LjE2MzQ0IDIgMiA5LjE2MzQ0IDIgMThDMiAyNi44MzY2IDkuMTYzNDQgMzQgMTggMzRDMjYuODM2NiAzNCAzNCAyNi44MzY2IDM0IDE4QzM0IDEzLjc1NjUgMzIuMzE0MyA5LjY4Njg3IDI5LjMxMzcgNi42ODYyOUMyNi4zMTMxIDMu'@; put 'Njg1NzEgMjIuMjQzNSAyIDE4IDJaTTE4IDMyQzEwLjI2OCAzMiA0IDI1LjczMiA0IDE4QzQgMTAuMjY4IDEwLjI2OCA0IDE4IDRDMjUuNzMyIDQgMzIgMTAuMjY4IDMyIDE4QzMyIDIxLjcxMyAzMC41MjUgMjUuMjc0IDI3Ljg5OTUgMjcuODk5NUMyNS4yNzQgMzAuNTI1IDIxLjcxMyAzMiAx'@; put 'OCAzMlpNMTcgMjYuODZMMTUgMjUuODZWMjAuNjhMOC40MiAxNEM4LjE1Njc5IDEzLjczMyA4LjAwNjQgMTMuMzc0OSA4IDEzVjEyQzggMTEuNDQ3NyA4LjQ0NzcyIDExIDkgMTFIMjdDMjcuNTUyMyAxMSAyOCAxMS40NDc3IDI4IDEyVjEzQzI3Ljk5MzYgMTMuMzc0OSAyNy44NDMyIDEzLjcz'@; put 'MyAyNy41OCAxNEwyMSAyMC42OFYyOUwxOSAyOEwxOS4wMyAyMC4yN0MxOS4wMzExIDIwLjAwNzcgMTkuMTM1MyAxOS43NTYzIDE5LjMyIDE5LjU3TDI1Ljc5IDEzSDEwLjIzTDE2LjcxIDE5LjU3QzE2Ljg5NDcgMTkuNzU2MyAxNi45OTg5IDIwLjAwNzcgMTcgMjAuMjdWMjYuODZaIi8+Jyxz'@; put 'b2xpZDonPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xOCAyQzkuMTYzNDQgMiAyIDkuMTYzNDQgMiAxOEMyIDI2LjgzNjYgOS4xNjM0NCAzNCAxOCAzNEMyNi44MzY2IDM0IDM0IDI2LjgzNjYgMzQgMThDMzQgMTMuNzU2NSAzMi4zMTQzIDkuNjg2'@; put 'ODcgMjkuMzEzNyA2LjY4NjI5QzI2LjMxMzEgMy42ODU3MSAyMi4yNDM1IDIgMTggMlpNMTggMzJDMTAuMjY4IDMyIDQgMjUuNzMyIDQgMThDNCAxMC4yNjggMTAuMjY4IDQgMTggNEMyNS43MzIgNCAzMiAxMC4yNjggMzIgMThDMzIgMjEuNzEzIDMwLjUyNSAyNS4yNzQgMjcuODk5NSAyNy44'@; put 'OTk1QzI1LjI3NCAzMC41MjUgMjEuNzEzIDMyIDE4IDMyWk04IDEyLjEyVjExSDI3Ljk4VjEyLjE0QzI3Ljk3ODEgMTIuMjcxOSAyNy45MjQyIDEyLjM5NzcgMjcuODMgMTIuNDlMMjAuNzEgMTkuNzRDMjAuNjA4MSAxOS44Mjk5IDIwLjU0MzggMTkuOTU0OCAyMC41MyAyMC4wOVYyOC40OEMy'@; put 'MC41MzAzIDI4LjY1MjggMjAuNDQxNSAyOC44MTM0IDIwLjI5NSAyOC45MDVDMjAuMTQ4NSAyOC45OTY2IDE5Ljk2NTEgMjkuMDA2IDE5LjgxIDI4LjkzTDE1Ljg2IDI3LjUyQzE1LjY4ODMgMjcuNDM1OSAxNS41Nzk2IDI3LjI2MTIgMTUuNTggMjcuMDdWMjAuMThDMTUuNTc4MSAyMC4wNDgx'@; put 'IDE1LjUyNDIgMTkuOTIyMyAxNS40MyAxOS44M0w4LjE1IDEyLjQ3QzguMDU1NzkgMTIuMzc3NyA4LjAwMTg4IDEyLjI1MTkgOCAxMi4xMloiLz4nfV0sc1BlPVsiZmlsdGVyLWdyaWQiLHtvdXRsaW5lOic8cGF0aCBkPSJNMTUgMjMuODZMMTcgMjQuODZWMTguMjdDMTYuOTk4OSAxOC4wMDc3'@; put 'IDE2Ljg5NDcgMTcuNzU2MyAxNi43MSAxNy41N0wxMC4yMyAxMUgyNS43OUwxOS4zMiAxNy41N0MxOS4xMzUzIDE3Ljc1NjMgMTkuMDMxMSAxOC4wMDc3IDE5LjAzIDE4LjI3TDE5IDI2TDIxIDI3VjE4LjY4TDI3LjU4IDEyQzI3Ljg0MzIgMTEuNzMzIDI3Ljk5MzYgMTEuMzc0OSAyOCAxMVYx'@; put 'MEMyOCA5LjQ0NzcyIDI3LjU1MjMgOSAyNyA5SDlDOC40NDc3MiA5IDggOS40NDc3MiA4IDEwVjExQzguMDA2NCAxMS4zNzQ5IDguMTU2NzkgMTEuNzMzIDguNDIgMTJMMTUgMTguNjhWMjMuODZaIi8+Jyxzb2xpZDonPHBhdGggZD0iTTggOVYxMC4xMjEyQzguMDAxODggMTAuMjUzMiA4LjA1'@; put 'NTg1IDEwLjM3OTEgOC4xNTAxNSAxMC40NzE2TDE1LjQzNzQgMTcuODM5M0MxNS41MzE3IDE3LjkzMTcgMTUuNTg1NyAxOC4wNTc3IDE1LjU4NzYgMTguMTg5N1YyNS4wODdDMTUuNTg3MiAyNS4yNzg0IDE1LjY5NiAyNS40NTMyIDE1Ljg2NzkgMjUuNTM3NUwxOS44MjE4IDI2Ljk0ODlDMTku'@; put 'OTc3MSAyNy4wMjUgMjAuMTYwNyAyNy4wMTU2IDIwLjMwNzMgMjYuOTIzOUMyMC40NTM5IDI2LjgzMjMgMjAuNTQyOSAyNi42NzE0IDIwLjU0MjUgMjYuNDk4NVYxOC4wOTk2QzIwLjU1NjQgMTcuOTY0MyAyMC42MjA3IDE3LjgzOTIgMjAuNzIyNyAxNy43NDkyTDI3Ljg0OTggMTAuNDkxNkMy'@; put 'Ny45NDQyIDEwLjM5OTIgMjcuOTk4MSAxMC4yNzMyIDI4IDEwLjE0MTJWOUg4WiIvPid9XSxkWT1bImVycm9yLXN0YW5kYXJkIix7b3V0bGluZTonPHBhdGggZD0iTTE4IDIyLjYxQzE3LjQ0NzcgMjIuNjEgMTcgMjIuMTYyMyAxNyAyMS42MVY5LjYxQzE3IDkuMDU3NzIgMTcuNDQ3NyA4LjYx'@; put 'IDE4IDguNjFDMTguNTUyMyA4LjYxIDE5IDkuMDU3NzIgMTkgOS42MVYyMS42MUMxOSAyMi4xNjIzIDE4LjU1MjMgMjIuNjEgMTggMjIuNjFaIi8+PHBhdGggZD0iTTE5LjMzIDI2LjA2QzE5LjMzIDI2Ljc5NDUgMTguNzM0NSAyNy4zOSAxOCAyNy4zOUMxNy4yNjU1IDI3LjM5IDE2LjY3IDI2'@; put 'Ljc5NDUgMTYuNjcgMjYuMDZDMTYuNjcgMjUuMzI1NSAxNy4yNjU1IDI0LjczIDE4IDI0LjczQzE4LjczNDUgMjQuNzMgMTkuMzMgMjUuMzI1NSAxOS4zMyAyNi4wNloiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTIgMThDMiAyNi44MzY2IDku'@; put 'MTYzNDQgMzQgMTggMzRDMjIuMjQzNSAzNCAyNi4zMTMxIDMyLjMxNDMgMjkuMzEzNyAyOS4zMTM3QzMyLjMxNDMgMjYuMzEzMSAzNCAyMi4yNDM1IDM0IDE4QzM0IDkuMTYzNDQgMjYuODM2NiAyIDE4IDJDOS4xNjM0NCAyIDIgOS4xNjM0NCAyIDE4Wk00IDE4QzQgMTAuMjY4IDEwLjI2OCA0'@; put 'IDE4IDRDMjUuNzMyIDQgMzIgMTAuMjY4IDMyIDE4QzMyIDI1LjczMiAyNS43MzIgMzIgMTggMzJDMTAuMjY4IDMyIDQgMjUuNzMyIDQgMThaIi8+Jyxzb2xpZDonPHBhdGggZD0iTTE4IDJDOS4xNiAyIDIgOS4xNiAyIDE4QzIgMjYuODQgOS4xNiAzNCAxOCAzNEMyMi4yNCAzNCAyNi4zMSAz'@; put 'Mi4zMSAyOS4zMSAyOS4zMUMzMi4zMSAyNi4zMSAzNCAyMi4yNCAzNCAxOEMzNCA5LjE2IDI2Ljg0IDIgMTggMlpNMTcgOS42MUMxNyA5LjA2IDE3LjQ1IDguNjEgMTggOC42MUMxOC41NSA4LjYxIDE5IDkuMDYgMTkgOS42MVYyMS42MUMxOSAyMi4xNiAxOC41NSAyMi42MSAxOCAyMi42MUMx'@; put 'Ny40NSAyMi42MSAxNyAyMi4xNiAxNyAyMS42MVY5LjYxWk0xOCAyNy4yNkMxNy4zNCAyNy4yNiAxNi44IDI2LjcyIDE2LjggMjYuMDZDMTYuOCAyNS40IDE3LjM0IDI0Ljg2IDE4IDI0Ljg2QzE4LjY2IDI0Ljg2IDE5LjIgMjUuNCAxOS4yIDI2LjA2QzE5LjIgMjYuNzIgMTguNjYgMjcuMjYg'@; put 'MTggMjcuMjZaIi8+J31dLG9QZT1bImhlbHAiLHtvdXRsaW5lOic8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTIgMThDMiA5LjE2MzQ0IDkuMTYzNDQgMiAxOCAyQzIyLjI0MzUgMiAyNi4zMTMxIDMuNjg1NzEgMjkuMzEzNyA2LjY4NjI5QzMyLjMx'@; put 'NDMgOS42ODY4NyAzNCAxMy43NTY1IDM0IDE4QzM0IDI2LjgzNjYgMjYuODM2NiAzNCAxOCAzNEM5LjE2MzQ0IDM0IDIgMjYuODM2NiAyIDE4Wk00IDE4QzQgMjUuNzMyIDEwLjI2OCAzMiAxOCAzMkMyMS43MTMgMzIgMjUuMjc0IDMwLjUyNSAyNy44OTk1IDI3Ljg5OTVDMzAuNTI1IDI1LjI3'@; put 'NCAzMiAyMS43MTMgMzIgMThDMzIgMTAuMjY4IDI1LjczMiA0IDE4IDRDMTAuMjY4IDQgNCAxMC4yNjggNCAxOFpNMTguMjkgOC45MkMxNi4wOTYxIDguODgzNzQgMTMuOTk5OCA5LjgyNTYgMTIuNTcgMTEuNDlDMTIuMzcxOCAxMS42NzM3IDEyLjI1NjMgMTEuOTI5OCAxMi4yNSAxMi4yQzEy'@; put 'LjI0OTkgMTIuNDQ5MyAxMi4zNTA5IDEyLjY4OCAxMi41MyAxMi44NjE0QzEyLjcwOTEgMTMuMDM0OCAxMi45NTA4IDEzLjEyODEgMTMuMiAxMy4xMkMxMy40NjQyIDEzLjExMzUgMTMuNzE2OCAxMy4wMTAzIDEzLjkxIDEyLjgzQzE0Ljk5MTYgMTEuNTYyNSAxNi41NzM3IDEwLjgzMTcgMTgu'@; put 'MjQgMTAuODNDMjAuNiAxMC44MyAyMi4wNyAxMi4zNSAyMi4wNyAxNC4yNFYxNC4yOUMyMi4wNyAxNi41IDIwLjMxIDE3LjczIDE3LjUzIDE3Ljk0QzE3LjMwMjMgMTcuOTQ4OCAxNy4wODkyIDE4LjA1NDIgMTYuOTQ0MSAxOC4yMjk5QzE2Ljc5OSAxOC40MDU2IDE2LjczNTcgMTguNjM0OCAx'@; put 'Ni43NyAxOC44NlYyMS42MUMxNi44MjE1IDIyLjEyMjkgMTcuMjU0NSAyMi41MTI2IDE3Ljc3IDIyLjUxSDE3Ljg4QzE4LjM5MjkgMjIuNDU4NSAxOC43ODI2IDIyLjAyNTUgMTguNzggMjEuNTFWMTkuNDVDMjEuNzggMTkuMDMgMjQuMjEgMTcuNDUgMjQuMjEgMTQuMTdWMTQuMTJDMjQuMTgg'@; put 'MTEuMTIgMjEuODQgOC45MiAxOC4yOSA4LjkyWk0xOS4wMyAyNi4yQzE5LjAzIDI2Ljg5MDQgMTguNDcwNCAyNy40NSAxNy43OCAyNy40NUMxNy4wODk2IDI3LjQ1IDE2LjUzIDI2Ljg5MDQgMTYuNTMgMjYuMkMxNi41MyAyNS41MDk2IDE3LjA4OTYgMjQuOTUgMTcuNzggMjQuOTVDMTguNDcw'@; put 'NCAyNC45NSAxOS4wMyAyNS41MDk2IDE5LjAzIDI2LjJaIi8+JyxvdXRsaW5lQmFkZ2VkOic8cGF0aCBkPSJNMzMuMDAxMyAxMi43Njg5QzMyLjM5NTkgMTMuMDQ2MiAzMS43NTU5IDEzLjI0MDYgMzEuMDk4NiAxMy4zNDY3QzMzLjI2MzYgMTkuNTEwOCAzMC44NzYzIDI2LjM1MjggMjUuMzQ2'@; put 'NSAyOS44MzJDMTkuODE2NyAzMy4zMTEyIDEyLjYxNTQgMzIuNTAyIDcuOTk1NjkgMjcuODgyMkMzLjM3NTk3IDIzLjI2MjUgMi41NjY3NCAxNi4wNjEzIDYuMDQ1OTIgMTAuNTMxNUM5LjUyNTA5IDUuMDAxNjIgMTYuMzY3MSAyLjYxNDI5IDIyLjUzMTIgNC43NzkzOEMyMi42Mzc1IDQuMTIy'@; put 'MDUgMjIuODMxOCAzLjQ4MjA0IDIzLjEwOSAyLjg3NjYzQzE2LjA2NDkgMC40NDA5NDYgOC4yNzE5OSAzLjE5MjA1IDQuMzE4MjMgOS41MTAyOUMwLjM2NDQ3NiAxNS44Mjg1IDEuMjk3MzYgMjQuMDM5OSA2LjU2NzY3IDI5LjMxMDNDMTEuODM4IDM0LjU4MDYgMjAuMDQ5NCAzNS41MTM1IDI2'@; put 'LjM2NzYgMzEuNTU5N0MzMi42ODU5IDI3LjYwNTkgMzUuNDM3IDE5LjgxMzEgMzMuMDAxMyAxMi43Njg5WiIvPjxwYXRoIGQ9Ik0xNy43MTk2IDI3LjM1MzNDMTguNDA3MyAyNy4zNTMzIDE4Ljk2NDggMjYuNzk1OCAxOC45NjQ4IDI2LjEwODFDMTguOTY0OCAyNS40MjAzIDE4LjQwNzMgMjQu'@; put 'ODYyOCAxNy43MTk2IDI0Ljg2MjhDMTcuMDMxOCAyNC44NjI4IDE2LjQ3NDMgMjUuNDIwMyAxNi40NzQzIDI2LjEwODFDMTYuNDc0MyAyNi43OTU4IDE3LjAzMTggMjcuMzUzMyAxNy43MTk2IDI3LjM1MzNaIi8+PHBhdGggZD0iTTI0LjA5NTMgMTQuMDczOVYxNC4xMjM4QzI0LjA5NTMgMTcu'@; put 'MzkxMyAyMS42NzQ1IDE4LjkzNTQgMTguNzI1NyAxOS4zODM3VjIxLjQzNTlDMTguNzI4MyAyMS45NDk0IDE4LjM0MDEgMjIuMzgwNyAxNy44MjkxIDIyLjQzMjFIMTcuNzE5NkMxNy4yMDYgMjIuNDM0NyAxNi43NzQ3IDIyLjA0NjUgMTYuNzIzMyAyMS41MzU1VjE4Ljc5NTlDMTYuNjg5MSAx'@; put 'OC41NzE2IDE2Ljc1MjIgMTguMzQzMiAxNi44OTY4IDE4LjE2ODJDMTcuMDQxMyAxNy45OTMyIDE3LjI1MzcgMTcuODg4MiAxNy40ODA1IDE3Ljg3OTRDMjAuMjQ5OSAxNy42NzAyIDIyLjAwMzIgMTYuNDQ0OSAyMi4wMDMyIDE0LjI0MzNWMTQuMTkzNUMyMi4wMDMyIDEyLjMxMDcgMjAuNTM4'@; put 'OCAxMC43OTY0IDE4LjE4NzggMTAuNzk2NEMxNi41Mjc4IDEwLjc5ODIgMTQuOTUxNyAxMS41MjYxIDEzLjg3NDIgMTIuNzg4OEMxMy42ODE3IDEyLjk2ODQgMTMuNDMwMSAxMy4wNzEyIDEzLjE2NjkgMTMuMDc3N0MxMi45MTg3IDEzLjA4NTggMTIuNjc3OCAxMi45OTI5IDEyLjQ5OTQgMTIu'@; put 'ODIwMUMxMi4zMjEgMTIuNjQ3MyAxMi4yMjA0IDEyLjQwOTYgMTIuMjIwNSAxMi4xNjEyQzEyLjIyNjggMTEuODkyMSAxMi4zNDE4IDExLjYzNjkgMTIuNTM5MyAxMS40NTM5QzEzLjk2MzcgOS43OTU4NSAxNi4wNTIgOC44NTc1NyAxOC4yMzc2IDguODkzNjlDMjEuNzY0MSA4Ljg5MzY5IDI0'@; put 'LjA5NTMgMTEuMDg1MyAyNC4wOTUzIDE0LjA3MzlaIi8+PHBhdGggZD0iTTMwIDExQzMyLjc2MTQgMTEgMzUgOC43NjE0MiAzNSA2QzM1IDMuMjM4NTggMzIuNzYxNCAxIDMwIDFDMjcuMjM4NiAxIDI1IDMuMjM4NTggMjUgNkMyNSA4Ljc2MTQyIDI3LjIzODYgMTEgMzAgMTFaIi8+Jyxzb2xp'@; put 'ZDonPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xOCAyQzkuMTYzNDQgMiAyIDkuMTYzNDQgMiAxOEMyIDI2LjgzNjYgOS4xNjM0NCAzNCAxOCAzNEMyNi44MzY2IDM0IDM0IDI2LjgzNjYgMzQgMThDMzQgMTMuNzU2NSAzMi4zMTQzIDkuNjg2ODcg'@; put 'MjkuMzEzNyA2LjY4NjI5QzI2LjMxMzEgMy42ODU3MSAyMi4yNDM1IDIgMTggMlpNMTcuNzggMjcuODVDMTcuMTEyNiAyNy44NSAxNi41MTEgMjcuNDQ4IDE2LjI1NTYgMjYuODMxNEMxNi4wMDAyIDI2LjIxNDkgMTYuMTQxNCAyNS41MDUyIDE2LjYxMzMgMjUuMDMzM0MxNy4wODUyIDI0LjU2'@; put 'MTQgMTcuNzk0OSAyNC40MjAyIDE4LjQxMTQgMjQuNjc1NkMxOS4wMjggMjQuOTMxIDE5LjQzIDI1LjUzMjYgMTkuNDMgMjYuMkMxOS40MyAyNy4xMTEzIDE4LjY5MTMgMjcuODUgMTcuNzggMjcuODVaTTE5LjE1IDIxLjUxVjE5Ljc5QzIyLjYxIDE5LjIgMjQuNTggMTcuMTYgMjQuNTggMTQu'@; put 'MTFDMjQuNTggMTAuODEgMjIgOC41MSAxOC4zIDguNTFDMTYuMDAwNSA4LjQ3NDUyIDEzLjgwMzMgOS40NTk1NiAxMi4zIDExLjJDMTIuMDMwNCAxMS40NjM2IDExLjg3NTkgMTEuODIzIDExLjg3IDEyLjJDMTEuODgzIDEyLjc1MTYgMTIuMjI4IDEzLjI0MDYgMTIuNzQzMiAxMy40MzhDMTMu'@; put 'MjU4NSAxMy42MzUzIDEzLjg0MTkgMTMuNTAxOCAxNC4yMiAxMy4xQzE1LjIwOTIgMTEuOTA2OSAxNi42NzA0IDExLjIwNTYgMTguMjIgMTEuMThDMjAuMjQgMTEuMTggMjEuNjUgMTIuNDIgMjEuNjUgMTQuMjVDMjEuNjUgMTYuOCAxOS4wNCAxNy4zOCAxNy40NyAxNy41QzE3LjE0NDggMTcu'@; put 'NTE3NSAxNi44NDA5IDE3LjY2NzQgMTYuNjI5MyAxNy45MTVDMTYuNDE3NiAxOC4xNjI1IDE2LjMxNjcgMTguNDg2IDE2LjM1IDE4LjgxVjIxLjU3QzE2LjM2MDQgMjEuOTI3MiAxNi41MTMxIDIyLjI2NTUgMTYuNzc0MSAyMi41MDk2QzE3LjAzNTEgMjIuNzUzNyAxNy4zODI5IDIyLjg4MzUg'@; put 'MTcuNzQgMjIuODdIMTcuODVDMTguNTc1MyAyMi44MzI5IDE5LjE0NTYgMjIuMjM2MiAxOS4xNSAyMS41MVoiLz4nLHNvbGlkQmFkZ2VkOic8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTMzLjAwMTMgMTIuNzY4OUMzMC4xNjU5IDE0LjA2ODggMjYu'@; put 'ODIxMiAxMy40Njc5IDI0LjYxNTYgMTEuMjYyM0MyMi40MTAxIDkuMDU2NzQgMjEuODA5MSA1LjcxMiAyMy4xMDkgMi44NzY2M0MxNi4wNjQ5IDAuNDQwOTQ2IDguMjcxOTkgMy4xOTIwNSA0LjMxODIzIDkuNTEwMjlDMC4zNjQ0NzYgMTUuODI4NSAxLjI5NzM2IDI0LjAzOTkgNi41Njc2NyAy'@; put 'OS4zMTAzQzExLjgzOCAzNC41ODA2IDIwLjA0OTQgMzUuNTEzNSAyNi4zNjc2IDMxLjU1OTdDMzIuNjg1OSAyNy42MDU5IDM1LjQzNyAxOS44MTMxIDMzLjAwMTMgMTIuNzY4OVpNMTcuNzE5NiAyNy43MTJDMTcuMDU0NyAyNy43MTIgMTYuNDU1NCAyNy4zMTE1IDE2LjIwMDkgMjYuNjk3M0Mx'@; put 'NS45NDY1IDI2LjA4MyAxNi4wODcyIDI1LjM3NiAxNi41NTczIDI0LjkwNTlDMTcuMDI3NCAyNC40MzU4IDE3LjczNDQgMjQuMjk1MiAxOC4zNDg2IDI0LjU0OTZDMTguOTYyOCAyNC44MDQgMTkuMzYzMyAyNS40MDM0IDE5LjM2MzMgMjYuMDY4MkMxOS4zNzQgMjYuNTExIDE5LjIwNTYgMjYu'@; put 'OTM5NCAxOC44OTYyIDI3LjI1NjRDMTguNTg2NyAyNy41NzMzIDE4LjE2MjUgMjcuNzUxOSAxNy43MTk2IDI3Ljc1MThWMjcuNzEyWk0xOS4wODQ0IDIxLjM5NlYxOS43MjI0QzIyLjUzMTIgMTkuMTM0NyAyNC40OTM3IDE3LjEwMjQgMjQuNDkzNyAxNC4wMjQxQzI0LjQ5MzcgMTAuNzM2NyAy'@; put 'MS45MjM1IDguNDQ1NCAxOC4yMzc2IDguNDQ1NEMxNS45NDY4IDguNDEwMDYgMTMuNzU4IDkuMzkxMzYgMTIuMjYwNCAxMS4xMjUyQzExLjk5MTggMTEuMzg3OCAxMS44Mzc5IDExLjc0NTggMTEuODMyIDEyLjEyMTRDMTEuODQ1IDEyLjY3MDkgMTIuMTg4NiAxMy4xNTgxIDEyLjcwMTkgMTMu'@; put 'MzU0N0MxMy4yMTUyIDEzLjU1MTIgMTMuNzk2NCAxMy40MTgyIDE0LjE3MzEgMTMuMDE4QzE1LjE1ODYgMTEuODI5NCAxNi42MTQxIDExLjEzMDcgMTguMTU3OSAxMS4xMDUzQzIwLjE3MDIgMTEuMTA1MyAyMS41NzQ5IDEyLjM0MDYgMjEuNTc0OSAxNC4xNjM2QzIxLjU3NDkgMTYuNzAzOSAx'@; put 'OC45NzQ4IDE3LjI4MTcgMTcuNDEwNyAxNy40MDEzQzE3LjA4NjcgMTcuNDE4NiAxNi43ODQgMTcuNTY4MSAxNi41NzMyIDE3LjgxNDdDMTYuMzYyMyAxOC4wNjEzIDE2LjI2MTggMTguMzgzNSAxNi4yOTUgMTguNzA2M1YyMS40NTU4QzE2LjMwNTQgMjEuODExNyAxNi40NTc1IDIyLjE0ODcg'@; put 'MTYuNzE3NSAyMi4zOTE5QzE2Ljk3NzUgMjIuNjM1MSAxNy4zMjM5IDIyLjc2NDMgMTcuNjc5NyAyMi43NTA5SDE3Ljc4OTNDMTguNTExOCAyMi43MTM5IDE5LjA4IDIyLjExOTUgMTkuMDg0NCAyMS4zOTZaIi8+PHBhdGggZD0iTTMwIDExQzMyLjc2MTQgMTEgMzUgOC43NjE0MiAzNSA2QzM1'@; put 'IDMuMjM4NTggMzIuNzYxNCAxIDMwIDFDMjcuMjM4NiAxIDI1IDMuMjM4NTggMjUgNkMyNSA4Ljc2MTQyIDI3LjIzODYgMTEgMzAgMTFaIi8+J31dLGxQZT1bImluZm8tc3RhbmRhcmQiLHtvdXRsaW5lOic8cGF0aCBkPSJNMiAxOEMyIDI2Ljg0IDkuMTYgMzQgMTggMzRDMjIuMjQgMzQgMjYu'@; put 'MzEgMzIuMzEgMjkuMzEgMjkuMzFDMzIuMzEgMjYuMzEgMzQgMjIuMjQgMzQgMThDMzQgOS4xNiAyNi44NCAyIDE4IDJDOS4xNiAyIDIgOS4xNiAyIDE4Wk00IDE4QzQgMTAuMjcgMTAuMjcgNCAxOCA0QzI1LjczIDQgMzIgMTAuMjcgMzIgMThDMzIgMjUuNzMgMjUuNzMgMzIgMTggMzJDMTAu'@; put 'MjcgMzIgNCAyNS43MyA0IDE4Wk0yMSAyNUgxOVYxNEgxNkMxNS40NSAxNCAxNSAxNC40NSAxNSAxNUMxNSAxNS41NSAxNS40NSAxNiAxNiAxNkgxN1YyNUgxNUMxNC40NSAyNSAxNCAyNS40NSAxNCAyNkMxNCAyNi41NSAxNC40NSAyNyAxNSAyN0gyMUMyMS41NSAyNyAyMiAyNi41NSAyMiAy'@; put 'NkMyMiAyNS40NSAyMS41NSAyNSAyMSAyNVpNMTkuMzcgMTAuNDVDMTkuMzcgMTEuMjIgMTguNzQgMTEuODUgMTcuOTcgMTEuODVDMTcuMiAxMS44NSAxNi41NyAxMS4yMiAxNi41NyAxMC40NUMxNi41NyA5LjY4IDE3LjIgOS4wNSAxNy45NyA5LjA1QzE4Ljc0IDkuMDUgMTkuMzcgOS42OCAx'@; put 'OS4zNyAxMC40NVoiLz4nLHNvbGlkOic8cGF0aCBkPSJNMTggMkM5LjE2IDIgMiA5LjE2IDIgMThDMiAyNi44NCA5LjE2IDM0IDE4IDM0QzIyLjI0IDM0IDI2LjMxIDMyLjMxIDI5LjMxIDI5LjMxQzMyLjMxIDI2LjMxIDM0IDIyLjI0IDM0IDE4QzM0IDkuMTYgMjYuODQgMiAxOCAyWk0xNy45'@; put 'NyA4Ljg1QzE4Ljg1IDguODUgMTkuNTcgOS41NyAxOS41NyAxMC40NUMxOS41NyAxMS4zMyAxOC44NSAxMi4wNSAxNy45NyAxMi4wNUMxNy4wOSAxMi4wNSAxNi4zNyAxMS4zMyAxNi4zNyAxMC40NUMxNi4zNyA5LjU3IDE3LjA5IDguODUgMTcuOTcgOC44NVpNMjEgMjcuMkgxNUMxNC4zNCAy'@; put 'Ny4yIDEzLjggMjYuNjYgMTMuOCAyNkMxMy44IDI1LjM0IDE0LjM0IDI0LjggMTUgMjQuOEgxNi44VjE2LjJIMTZDMTUuMzQgMTYuMiAxNC44IDE1LjY2IDE0LjggMTVDMTQuOCAxNC4zNCAxNS4zNCAxMy44IDE2IDEzLjhIMTkuMlYyNC44SDIxQzIxLjY2IDI0LjggMjIuMiAyNS4zNCAyMi4y'@; put 'IDI2QzIyLjIgMjYuNjYgMjEuNjYgMjcuMiAyMSAyNy4yWiIvPid9XSxjUGU9WyJub3RlIix7b3V0bGluZTonPHBhdGggZD0iTTI4LDMwSDZWOEgxOS4yMmwyLTJINkEyLDIsMCwwLDAsNCw4VjMwYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlYxNWwtMiwyWiIvPjxwYXRoIGQ9Ik0z'@; put 'My41Myw1Ljg0LDMwLjE2LDIuNDdhMS42MSwxLjYxLDAsMCwwLTIuMjgsMEwxNC4xNywxNi4yNmwtMS4xMSw0LjgxQTEuNjEsMS42MSwwLDAsMCwxNC42MywyMywxLjY5LDEuNjksMCwwLDAsMTUsMjNsNC44NS0xLjA3TDMzLjUzLDguMTJBMS42MSwxLjYxLDAsMCwwLDMzLjUzLDUuODRaTTE4'@; put 'LjgxLDIwLjA4bC0zLjY2LjgxTDE2LDE3LjI2LDI2LjMyLDYuODdsMi44MiwyLjgyWk0zMC4yNyw4LjU2LDI3LjQ1LDUuNzQsMjksNC4xNiwzMS44NCw3WiIvPicsc29saWQ6JzxwYXRoIGQ9Ik0zMyw2LjQsMjkuMywyLjdhMS43MSwxLjcxLDAsMCwwLTIuMzYsMEwyMy42NSw2SDZBMiwyLDAs'@; put 'MCwwLDQsOFYzMGEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTEuNzZsMy0zQTEuNjcsMS42NywwLDAsMCwzMyw2LjRaTTE4LjgzLDIwLjEzbC00LjE5LjkzLDEtNC4xNSw5LjU1LTkuNTcsMy4yMywzLjIzWk0yOS41LDkuNDMsMjYuMjcsNi4ybDEuODUtMS44NSwzLjIzLDMuMjNa'@; put 'Ii8+J31dLGhZPVsic3VjY2Vzcy1zdGFuZGFyZCIse291dGxpbmU6JzxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTggMkM5LjE2MzQ0IDIgMiA5LjE2MzQ0IDIgMThDMiAyNi44MzY2IDkuMTYzNDQgMzQgMTggMzRDMjYuODM2NiAzNCAzNCAyNi44'@; put 'MzY2IDM0IDE4QzM0IDEzLjc1NjUgMzIuMzE0MyA5LjY4Njg3IDI5LjMxMzcgNi42ODYyOUMyNi4zMTMxIDMuNjg1NzEgMjIuMjQzNSAyIDE4IDJaTTE4IDMyQzEwLjI2OCAzMiA0IDI1LjczMiA0IDE4QzQgMTAuMjY4IDEwLjI2OCA0IDE4IDRDMjUuNzMyIDQgMzIgMTAuMjY4IDMyIDE4QzMy'@; put 'IDIxLjcxMyAzMC41MjUgMjUuMjc0IDI3Ljg5OTUgMjcuODk5NUMyNS4yNzQgMzAuNTI1IDIxLjcxMyAzMiAxOCAzMlpNMjYuNTkgMTIuMUMyNi45OCAxMS43MTIzIDI3LjYxIDExLjcxMjMgMjggMTIuMUMyOC4xODkzIDEyLjI4NzggMjguMjk1OCAxMi41NDM0IDI4LjI5NTggMTIuODFDMjgu'@; put 'Mjk1OCAxMy4wNzY2IDI4LjE4OTMgMTMuMzMyMiAyOCAxMy41MkwxNS40OSAyNkw4IDE4LjUzQzcuNjE4OTIgMTguMTE4NSA3LjY0MzU1IDE3LjQ3NjEgOC4wNTUgMTcuMDk1QzguNDY2NDUgMTYuNzEzOSA5LjEwODkyIDE2LjczODUgOS40OSAxNy4xNUwxNS40OSAyMy4xNUwyNi41OSAxMi4x'@; put 'WiIvPicsc29saWQ6JzxwYXRoIGQ9Ik0yOS4zMSA2LjY5QzI2LjMxIDMuNjkgMjIuMjQgMiAxOCAyQzkuMTYgMiAyIDkuMTYgMiAxOEMyIDI2Ljg0IDkuMTYgMzQgMTggMzRDMjYuODQgMzQgMzQgMjYuODQgMzQgMThDMzQgMTMuNzYgMzIuMzEgOS42OSAyOS4zMSA2LjY5Wk0yOC4xNCAxMy42'@; put 'NEwxNS42MyAyNi4xMkwxNS40OSAyNi4yNkwxNS4zNSAyNi4xMkw3Ljg1IDE4LjY0QzcuMzkgMTguMTUgNy40MiAxNy4zOCA3LjkyIDE2LjkyQzguMTUgMTYuNzEgOC40NCAxNi42IDguNzUgMTYuNkM5LjA5IDE2LjYgOS40MSAxNi43NCA5LjY0IDE2Ljk4TDE1LjUgMjIuODRMMjYuNDYgMTEu'@; put 'OTNDMjYuNjkgMTEuNyAyNi45OSAxMS41OCAyNy4zMSAxMS41OEMyNy42MyAxMS41OCAyNy45MyAxMS43IDI4LjE2IDExLjkzQzI4LjM5IDEyLjE1IDI4LjUxIDEyLjQ2IDI4LjUxIDEyLjc4QzI4LjUxIDEzLjEgMjguMzggMTMuNDEgMjguMTYgMTMuNjNMMjguMTQgMTMuNjRaIi8+J31dLHVQ'@; put 'ZT1bIndhcm5pbmctc3RhbmRhcmQiLHtvdXRsaW5lOic8cGF0aCBkPSJNMTguMDAwMSAyMi45OTMyQzE4LjU1MDEgMjIuOTkzMiAxOS4wMDAxIDIyLjU0MzQgMTkuMDAwMSAyMS45OTM2VjEwLjk5NzVDMTkuMDAwMSAxMC40NDc3IDE4LjU1MDEgOS45OTc4NiAxOC4wMDAxIDkuOTk3ODZDMTcu'@; put 'NDUwMSA5Ljk5Nzg2IDE3LjAwMDEgMTAuNDQ3NyAxNy4wMDAxIDEwLjk5NzVWMjEuOTkzNkMxNy4wMDAxIDIyLjU0MzQgMTcuNDUwMSAyMi45OTMyIDE4LjAwMDEgMjIuOTkzMlpNMzMuNTYwMSAyNy4yMTE3TDIwLjc4MDEgNS41Nzk0NEMyMC4yMDAxIDQuNTg5NzkgMTkuMTYwMSA0IDE4LjAw'@; put 'MDEgNEMxNi44NDAxIDQgMTUuODAwMSA0LjU4OTc5IDE1LjIyMDEgNS41Nzk0NEwyLjQ0MDEgMjcuMjExN0MxLjg1MDEgMjguMjExNCAxLjg1MDEgMjkuNDAwOSAyLjQzMDEgMzAuNDAwNkMzLjAxMDEgMzEuNDAwMiA0LjA2MDEgMzIgNS4yMjAxIDMySDMwLjc3MDFDMzEuOTQwMSAzMiAzMi45'@; put 'ODAxIDMxLjQwMDIgMzMuNTYwMSAzMC40MDA2QzM0LjE0MDEgMjkuNDAwOSAzNC4xNDAxIDI4LjIxMTQgMzMuNTUwMSAyNy4yMTE3SDMzLjU2MDFaTTMxLjgxMDEgMjkuNDAwOUMzMS43MTAxIDI5LjU4MDkgMzEuNDAwMSAyOS45OTA3IDMwLjc4MDEgMjkuOTkwN0g1LjIzMDFDNC42MTAxIDI5'@; put 'Ljk5MDcgNC4zMDAxIDI5LjU4MDkgNC4yMDAxIDI5LjQwMDlDNC4xMDAxIDI5LjIyMSAzLjg5MDEgMjguNzUxMiA0LjIwMDEgMjguMjMxM0wxNi45ODAxIDYuNTg5MDhDMTcuMjkwMSA2LjA2OTI2IDE3LjgwMDEgNi4wMDkyOCAxOC4wMDAxIDYuMDA5MjhDMTguMjAwMSA2LjAwOTI4IDE4Ljcx'@; put 'MDEgNi4wNjkyNiAxOS4wMjAxIDYuNTg5MDhMMzEuNzkwMSAyOC4yMjEzQzMyLjEwMDEgMjguNzUxMiAzMS45MDAxIDI5LjIyMSAzMS43OTAxIDI5LjM5MDlMMzEuODEwMSAyOS40MDA5Wk0xOC4wMTAxIDI1LjAwMjVDMTcuMjgwMSAyNS4wMDI1IDE2LjY4MDEgMjUuNjAyMyAxNi42ODAxIDI2'@; put 'LjMzMkMxNi42ODAxIDI3LjA2MTggMTcuMjgwMSAyNy42NjE1IDE4LjAxMDEgMjcuNjYxNUMxOC43NDAxIDI3LjY2MTUgMTkuMzQwMSAyNy4wNjE4IDE5LjM0MDEgMjYuMzMyQzE5LjM0MDEgMjUuNjAyMyAxOC43NDAxIDI1LjAwMjUgMTguMDEwMSAyNS4wMDI1WiIvPicsc29saWQ6JzxwYXRo'@; put 'IGQ9Ik0zMy41NjAxIDI3LjIyTDIwLjc4MDEgNS41OEMyMC4yMDAxIDQuNTkgMTkuMTYwMSA0IDE4LjAwMDEgNEMxNi44NDAxIDQgMTUuODAwMSA0LjU5IDE1LjIyMDEgNS41OEwyLjQ0MDA2IDI3LjIyQzEuODUwMDYgMjguMjIgMS44NTAwNiAyOS40MSAyLjQ0MDA2IDMwLjQxQzMuMDIwMDYg'@; put 'MzEuNDEgNC4wNzAwNiAzMi4wMSA1LjIzMDA2IDMyLjAxSDMwLjc4MDFDMzEuOTUwMSAzMi4wMSAzMi45OTAxIDMxLjQxIDMzLjU3MDEgMzAuNDFDMzQuMTUwMSAyOS40MSAzNC4xNTAxIDI4LjIyIDMzLjU2MDEgMjcuMjJaTTE2LjkwMDEgMTFDMTYuOTAwMSAxMC4zOSAxNy4zOTAxIDkuOSAx'@; put 'OC4wMDAxIDkuOUMxOC42MTAxIDkuOSAxOS4xMDAxIDEwLjM5IDE5LjEwMDEgMTFWMjJDMTkuMTAwMSAyMi42MSAxOC42MTAxIDIzLjEgMTguMDAwMSAyMy4xQzE3LjM5MDEgMjMuMSAxNi45MDAxIDIyLjYxIDE2LjkwMDEgMjJWMTFaTTE4LjAwMDEgMjcuNzZDMTcuMjEwMSAyNy43NiAxNi41'@; put 'NzAxIDI3LjEyIDE2LjU3MDEgMjYuMzNDMTYuNTcwMSAyNS41NCAxNy4yMTAxIDI0LjkgMTguMDAwMSAyNC45QzE4Ljc5MDEgMjQuOSAxOS40MzAxIDI1LjU0IDE5LjQzMDEgMjYuMzNDMTkuNDMwMSAyNy4xMiAxOC43OTAxIDI3Ljc2IDE4LjAwMDEgMjcuNzZaIi8+J31dLGRQZT1bImNpcmNs'@; put 'ZSIse291dGxpbmU6JzxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNCAxOEM0IDEwLjI2OCAxMC4yNjggNCAxOCA0QzI1LjczMiA0IDMyIDEwLjI2OCAzMiAxOEMzMiAyNS43MzIgMjUuNzMyIDMyIDE4IDMyQzEwLjI2OCAzMiA0IDI1LjczMiA0IDE4'@; put 'Wk02IDE4QzYgMjQuNjI3NCAxMS4zNzI2IDMwIDE4IDMwQzIxLjE4MjYgMzAgMjQuMjM0OCAyOC43MzU3IDI2LjQ4NTMgMjYuNDg1M0MyOC43MzU3IDI0LjIzNDggMzAgMjEuMTgyNiAzMCAxOEMzMCAxMS4zNzI2IDI0LjYyNzQgNiAxOCA2QzExLjM3MjYgNiA2IDExLjM3MjYgNiAxOFoiLz4n'@; put 'LHNvbGlkOic8cGF0aCBkPSJNMTggNEMxMC4yNjggNCA0IDEwLjI2OCA0IDE4QzQgMjUuNzMyIDEwLjI2OCAzMiAxOCAzMkMyNS43MzIgMzIgMzIgMjUuNzMyIDMyIDE4QzMyIDEwLjI2OCAyNS43MzIgNCAxOCA0WiIvPid9XSxoUGU9WyJkb3QtY2lyY2xlIix7b3V0bGluZTonPHBhdGggZD0i'@; put 'TTE4IDExQzE5LjM4NDUgMTEgMjAuNzM3OSAxMS40MTA1IDIxLjg4OSAxMi4xNzk3QzIzLjA0MDEgMTIuOTQ4OSAyMy45Mzc0IDE0LjA0MjEgMjQuNDY3MiAxNS4zMjEyQzI0Ljk5NyAxNi42MDAzIDI1LjEzNTYgMTguMDA3OCAyNC44NjU1IDE5LjM2NTZDMjQuNTk1NCAyMC43MjM1IDIzLjky'@; put 'ODcgMjEuOTcwOCAyMi45NDk4IDIyLjk0OThDMjEuOTcwOCAyMy45Mjg3IDIwLjcyMzUgMjQuNTk1NCAxOS4zNjU2IDI0Ljg2NTVDMTguMDA3OCAyNS4xMzU2IDE2LjYwMDMgMjQuOTk3IDE1LjMyMTIgMjQuNDY3MkMxNC4wNDIxIDIzLjkzNzQgMTIuOTQ4OSAyMy4wNDAxIDEyLjE3OTcgMjEu'@; put 'ODg5QzExLjQxMDUgMjAuNzM3OSAxMSAxOS4zODQ1IDExIDE4QzExIDE2LjE0MzUgMTEuNzM3NSAxNC4zNjMgMTMuMDUwMyAxMy4wNTAzQzE0LjM2MyAxMS43Mzc1IDE2LjE0MzUgMTEgMTggMTFaIi8+PHBhdGggZD0iTTE4IDM0QzE0LjgzNTUgMzQgMTEuNzQyMSAzMy4wNjE2IDkuMTEwODgg'@; put 'MzEuMzAzNUM2LjQ3OTcgMjkuNTQ1NCA0LjQyODk0IDI3LjA0NjYgMy4yMTc5MyAyNC4xMjI5QzIuMDA2OTMgMjEuMTk5MyAxLjY5MDA4IDE3Ljk4MjMgMi4zMDc0NCAxNC44Nzg2QzIuOTI0ODEgMTEuNzc0OSA0LjQ0ODY2IDguOTIzOTQgNi42ODYzIDYuNjg2M0M4LjkyMzk0IDQuNDQ4NjYg'@; put 'MTEuNzc0OSAyLjkyNDgxIDE0Ljg3ODYgMi4zMDc0NEMxNy45ODIzIDEuNjkwMDggMjEuMTk5MyAyLjAwNjkzIDI0LjEyMjkgMy4yMTc5M0MyNy4wNDY2IDQuNDI4OTQgMjkuNTQ1NCA2LjQ3OTcgMzEuMzAzNSA5LjExMDg4QzMzLjA2MTYgMTEuNzQyMSAzNCAxNC44MzU1IDM0IDE4QzM0IDIy'@; put 'LjI0MzUgMzIuMzE0MyAyNi4zMTMxIDI5LjMxMzcgMjkuMzEzN0MyNi4zMTMxIDMyLjMxNDMgMjIuMjQzNSAzNCAxOCAzNFpNMTggNC4wMDAwMUMxNS4yMzExIDQuMDAwMDEgMTIuNTI0MyA0LjgyMTA5IDEwLjIyMiA2LjM1OTQzQzcuOTE5NzQgNy44OTc3NyA2LjEyNTMyIDEwLjA4NDMgNS4w'@; put 'NjU2OSAxMi42NDI0QzQuMDA2MDcgMTUuMjAwNiAzLjcyODgyIDE4LjAxNTUgNC4yNjkwMSAyMC43MzEzQzQuODA5MjEgMjMuNDQ3IDYuMTQyNTggMjUuOTQxNiA4LjEwMDUxIDI3Ljg5OTVDMTAuMDU4NCAyOS44NTc0IDEyLjU1MyAzMS4xOTA4IDE1LjI2ODcgMzEuNzMxQzE3Ljk4NDUgMzIu'@; put 'MjcxMiAyMC43OTk0IDMxLjk5MzkgMjMuMzU3NiAzMC45MzQzQzI1LjkxNTcgMjkuODc0NyAyOC4xMDIyIDI4LjA4MDMgMjkuNjQwNiAyNS43NzhDMzEuMTc4OSAyMy40NzU3IDMyIDIwLjc2ODkgMzIgMThDMzIgMTQuMjg3IDMwLjUyNSAxMC43MjYgMjcuODk5NSA4LjEwMDUxQzI1LjI3NCA1'@; put 'LjQ3NSAyMS43MTMgNC4wMDAwMSAxOCA0LjAwMDAxWiIvPid9XTtmdW5jdGlvbiBmUGUoYyxsKXtyZXR1cm4gYz09PWx9Y2xhc3MgZ1BlIGV4dGVuZHMgSnR7Y29uc3RydWN0b3IobCxhKXtzdXBlcigpfXNjaGVkdWxlKGwsYT0wKXtyZXR1cm4gdGhpc319Y29uc3QgeEw9e3NldEludGVydmFs'@; put 'KGMsbCwuLi5hKXtjb25zdHtkZWxlZ2F0ZTpkfT14TDtyZXR1cm4gZD8uc2V0SW50ZXJ2YWw/ZC5zZXRJbnRlcnZhbChjLGwsLi4uYSk6c2V0SW50ZXJ2YWwoYyxsLC4uLmEpfSxjbGVhckludGVydmFsKGMpe2NvbnN0e2RlbGVnYXRlOmx9PXhMO3JldHVybihsPy5jbGVhckludGVydmFsfHxj'@; put 'bGVhckludGVydmFsKShjKX0sZGVsZWdhdGU6dm9pZCAwfTtjbGFzcyBwWSBleHRlbmRzIGdQZXtjb25zdHJ1Y3RvcihsLGEpe3N1cGVyKGwsYSksdGhpcy5zY2hlZHVsZXI9bCx0aGlzLndvcms9YSx0aGlzLnBlbmRpbmc9ITF9c2NoZWR1bGUobCxhPTApe3ZhciBkO2lmKHRoaXMuY2xvc2Vk'@; put 'KXJldHVybiB0aGlzO3RoaXMuc3RhdGU9bDtjb25zdCBoPXRoaXMuaWQsZj10aGlzLnNjaGVkdWxlcjtyZXR1cm4gbnVsbCE9aCYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZChmLGgsYSkpLHRoaXMucGVuZGluZz0hMCx0aGlzLmRlbGF5PWEsdGhpcy5pZD1udWxsIT09KGQ9dGhpcy5p'@; put 'ZCkmJnZvaWQgMCE9PWQ/ZDp0aGlzLnJlcXVlc3RBc3luY0lkKGYsdGhpcy5pZCxhKSx0aGlzfXJlcXVlc3RBc3luY0lkKGwsYSxkPTApe3JldHVybiB4TC5zZXRJbnRlcnZhbChsLmZsdXNoLmJpbmQobCx0aGlzKSxkKX1yZWN5Y2xlQXN5bmNJZChsLGEsZD0wKXtpZihudWxsIT1kJiZ0aGlz'@; put 'LmRlbGF5PT09ZCYmITE9PT10aGlzLnBlbmRpbmcpcmV0dXJuIGE7bnVsbCE9YSYmeEwuY2xlYXJJbnRlcnZhbChhKX1leGVjdXRlKGwsYSl7aWYodGhpcy5jbG9zZWQpcmV0dXJuIG5ldyBFcnJvcigiZXhlY3V0aW5nIGEgY2FuY2VsbGVkIGFjdGlvbiIpO3RoaXMucGVuZGluZz0hMTtjb25z'@; put 'dCBkPXRoaXMuX2V4ZWN1dGUobCxhKTtpZihkKXJldHVybiBkOyExPT09dGhpcy5wZW5kaW5nJiZudWxsIT10aGlzLmlkJiYodGhpcy5pZD10aGlzLnJlY3ljbGVBc3luY0lkKHRoaXMuc2NoZWR1bGVyLHRoaXMuaWQsbnVsbCkpfV9leGVjdXRlKGwsYSl7bGV0IGgsZD0hMTt0cnl7dGhpcy53'@; put 'b3JrKGwpfWNhdGNoKGYpe2Q9ITAsaD1mfHxuZXcgRXJyb3IoIlNjaGVkdWxlZCBhY3Rpb24gdGhyZXcgZmFsc3kgZXJyb3IiKX1pZihkKXJldHVybiB0aGlzLnVuc3Vic2NyaWJlKCksaH11bnN1YnNjcmliZSgpe2lmKCF0aGlzLmNsb3NlZCl7Y29uc3R7aWQ6bCxzY2hlZHVsZXI6YX09dGhp'@; put 'cyx7YWN0aW9uczpkfT1hO3RoaXMud29yaz10aGlzLnN0YXRlPXRoaXMuc2NoZWR1bGVyPW51bGwsdGhpcy5wZW5kaW5nPSExLHV0KGQsdGhpcyksbnVsbCE9bCYmKHRoaXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZChhLGwsbnVsbCkpLHRoaXMuZGVsYXk9bnVsbCxzdXBlci51bnN1YnNjcmli'@; put 'ZSgpfX19Y29uc3QgZ1k9e25vdzooKT0+KGdZLmRlbGVnYXRlfHxEYXRlKS5ub3coKSxkZWxlZ2F0ZTp2b2lkIDB9O2NsYXNzIFN4e2NvbnN0cnVjdG9yKGwsYT1TeC5ub3cpe3RoaXMuc2NoZWR1bGVyQWN0aW9uQ3Rvcj1sLHRoaXMubm93PWF9c2NoZWR1bGUobCxhPTAsZCl7cmV0dXJuIG5l'@; put 'dyB0aGlzLnNjaGVkdWxlckFjdGlvbkN0b3IodGhpcyxsKS5zY2hlZHVsZShkLGEpfX1TeC5ub3c9Z1kubm93O2NsYXNzIG1ZIGV4dGVuZHMgU3h7Y29uc3RydWN0b3IobCxhPVN4Lm5vdyl7c3VwZXIobCxhKSx0aGlzLmFjdGlvbnM9W10sdGhpcy5fYWN0aXZlPSExfWZsdXNoKGwpe2NvbnN0'@; put 'e2FjdGlvbnM6YX09dGhpcztpZih0aGlzLl9hY3RpdmUpcmV0dXJuIHZvaWQgYS5wdXNoKGwpO2xldCBkO3RoaXMuX2FjdGl2ZT0hMDtkb3tpZihkPWwuZXhlY3V0ZShsLnN0YXRlLGwuZGVsYXkpKWJyZWFrfXdoaWxlKGw9YS5zaGlmdCgpKTtpZih0aGlzLl9hY3RpdmU9ITEsZCl7Zm9yKDts'@; put 'PWEuc2hpZnQoKTspbC51bnN1YnNjcmliZSgpO3Rocm93IGR9fX1jb25zdCBFTD1uZXcgbVkocFkpLG1QZT1FTDtmdW5jdGlvbiB1bShjLGw9RUwpe3JldHVybiBOaSgoYSxkKT0+e2xldCBoPW51bGwsZj1udWxsLHY9bnVsbDtjb25zdCBNPSgpPT57aWYoaCl7aC51bnN1YnNjcmliZSgpLGg9'@; put 'bnVsbDtjb25zdCBHPWY7Zj1udWxsLGQubmV4dChHKX19O2Z1bmN0aW9uIEkoKXtjb25zdCBHPXYrYyxyZT1sLm5vdygpO2lmKHJlPEcpcmV0dXJuIGg9dGhpcy5zY2hlZHVsZSh2b2lkIDAsRy1yZSksdm9pZCBkLmFkZChoKTtNKCl9YS5zdWJzY3JpYmUoSGkoZCxHPT57Zj1HLHY9bC5ub3co'@; put 'KSxofHwoaD1sLnNjaGVkdWxlKEksYyksZC5hZGQoaCkpfSwoKT0+e00oKSxkLmNvbXBsZXRlKCl9LHZvaWQgMCwoKT0+e2Y9aD1udWxsfSkpfSl9Y29uc3QgdlBlPVsiYWRkTGlzdGVuZXIiLCJyZW1vdmVMaXN0ZW5lciJdLHlQZT1bImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExp'@; put 'c3RlbmVyIl0sYlBlPVsib24iLCJvZmYiXTtmdW5jdGlvbiB4ZChjLGwsYSxkKXtpZihLZShhKSYmKGQ9YSxhPXZvaWQgMCksZClyZXR1cm4geGQoYyxsLGEpLnBpcGUoWVooZCkpO2NvbnN0W2gsZl09ZnVuY3Rpb24gQ1BlKGMpe3JldHVybiBLZShjLmFkZEV2ZW50TGlzdGVuZXIpJiZLZShj'@; put 'LnJlbW92ZUV2ZW50TGlzdGVuZXIpfShjKT95UGUubWFwKHY9Pk09PmNbdl0obCxNLGEpKTpmdW5jdGlvbiBfUGUoYyl7cmV0dXJuIEtlKGMuYWRkTGlzdGVuZXIpJiZLZShjLnJlbW92ZUxpc3RlbmVyKX0oYyk/dlBlLm1hcChCMGUoYyxsKSk6ZnVuY3Rpb24gd1BlKGMpe3JldHVybiBLZShj'@; put 'Lm9uKSYmS2UoYy5vZmYpfShjKT9iUGUubWFwKEIwZShjLGwpKTpbXTtpZighaCYmWlooYykpcmV0dXJuIEYwKHY9PnhkKHYsbCxhKSkobzEoYykpO2lmKCFoKXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgZXZlbnQgdGFyZ2V0Iik7cmV0dXJuIG5ldyBRdCh2PT57Y29uc3QgTT0oLi4u'@; put 'SSk9PnYubmV4dCgxPEkubGVuZ3RoP0k6SVswXSk7cmV0dXJuIGgoTSksKCk9PmYoTSl9KX1mdW5jdGlvbiBCMGUoYyxsKXtyZXR1cm4gYT0+ZD0+Y1thXShsLGQpfWNsYXNzIE14IGV4dGVuZHMgR257Y29uc3RydWN0b3IobD0xLzAsYT0xLzAsZD1nWSl7c3VwZXIoKSx0aGlzLl9idWZmZXJT'@; put 'aXplPWwsdGhpcy5fd2luZG93VGltZT1hLHRoaXMuX3RpbWVzdGFtcFByb3ZpZGVyPWQsdGhpcy5fYnVmZmVyPVtdLHRoaXMuX2luZmluaXRlVGltZVdpbmRvdz0hMCx0aGlzLl9pbmZpbml0ZVRpbWVXaW5kb3c9YT09PTEvMCx0aGlzLl9idWZmZXJTaXplPU1hdGgubWF4KDEsbCksdGhpcy5f'@; put 'd2luZG93VGltZT1NYXRoLm1heCgxLGEpfW5leHQobCl7Y29uc3R7aXNTdG9wcGVkOmEsX2J1ZmZlcjpkLF9pbmZpbml0ZVRpbWVXaW5kb3c6aCxfdGltZXN0YW1wUHJvdmlkZXI6Zixfd2luZG93VGltZTp2fT10aGlzO2F8fChkLnB1c2gobCksIWgmJmQucHVzaChmLm5vdygpK3YpKSx0aGlz'@; put 'Ll90cmltQnVmZmVyKCksc3VwZXIubmV4dChsKX1fc3Vic2NyaWJlKGwpe3RoaXMuX3Rocm93SWZDbG9zZWQoKSx0aGlzLl90cmltQnVmZmVyKCk7Y29uc3QgYT10aGlzLl9pbm5lclN1YnNjcmliZShsKSx7X2luZmluaXRlVGltZVdpbmRvdzpkLF9idWZmZXI6aH09dGhpcyxmPWguc2xpY2Uo'@; put 'KTtmb3IobGV0IHY9MDt2PGYubGVuZ3RoJiYhbC5jbG9zZWQ7dis9ZD8xOjIpbC5uZXh0KGZbdl0pO3JldHVybiB0aGlzLl9jaGVja0ZpbmFsaXplZFN0YXR1c2VzKGwpLGF9X3RyaW1CdWZmZXIoKXtjb25zdHtfYnVmZmVyU2l6ZTpsLF90aW1lc3RhbXBQcm92aWRlcjphLF9idWZmZXI6ZCxf'@; put 'aW5maW5pdGVUaW1lV2luZG93Omh9PXRoaXMsZj0oaD8xOjIpKmw7aWYobDwxLzAmJmY8ZC5sZW5ndGgmJmQuc3BsaWNlKDAsZC5sZW5ndGgtZiksIWgpe2NvbnN0IHY9YS5ub3coKTtsZXQgTT0wO2ZvcihsZXQgST0xO0k8ZC5sZW5ndGgmJmRbSV08PXY7SSs9MilNPUk7TSYmZC5zcGxpY2Uo'@; put 'MCxNKzEpfX19ZnVuY3Rpb24gdlkoYyxsLC4uLmEpe2lmKCEwPT09bClyZXR1cm4gdm9pZCBjKCk7aWYoITE9PT1sKXJldHVybjtjb25zdCBkPW5ldyBodCh7bmV4dDooKT0+e2QudW5zdWJzY3JpYmUoKSxjKCl9fSk7cmV0dXJuIG8xKGwoLi4uYSkpLnN1YnNjcmliZShkKX1mdW5jdGlvbiBq'@; put 'MGUoYyxsLGEpe2xldCBkLGg9ITE7cmV0dXJuIGMmJiJvYmplY3QiPT10eXBlb2YgYz8oe2J1ZmZlclNpemU6ZD0xLzAsd2luZG93VGltZTpsPTEvMCxyZWZDb3VudDpoPSExLHNjaGVkdWxlcjphfT1jKTpkPWM/PzEvMCxmdW5jdGlvbiBTUGUoYz17fSl7Y29uc3R7Y29ubmVjdG9yOmw9KCgp'@; put 'PT5uZXcgR24pLHJlc2V0T25FcnJvcjphPSEwLHJlc2V0T25Db21wbGV0ZTpkPSEwLHJlc2V0T25SZWZDb3VudFplcm86aD0hMH09YztyZXR1cm4gZj0+e2xldCB2LE0sSSxHPTAscmU9ITEsdWU9ITE7Y29uc3QgeWU9KCk9PntNPy51bnN1YnNjcmliZSgpLE09dm9pZCAwfSxFZT0oKT0+e3ll'@; put 'KCksdj1JPXZvaWQgMCxyZT11ZT0hMX0sQmU9KCk9Pntjb25zdCBHZT12O0VlKCksR2U/LnVuc3Vic2NyaWJlKCl9O3JldHVybiBOaSgoR2Usc3QpPT57RysrLCF1ZSYmIXJlJiZ5ZSgpO2NvbnN0IHB0PUk9ST8/bCgpO3N0LmFkZCgoKT0+e0ctLSwwPT09RyYmIXVlJiYhcmUmJihNPXZZKEJl'@; put 'LGgpKX0pLHB0LnN1YnNjcmliZShzdCksIXYmJkc+MCYmKHY9bmV3IGh0KHtuZXh0OmR0PT5wdC5uZXh0KGR0KSxlcnJvcjpkdD0+e3VlPSEwLHllKCksTT12WShFZSxhLGR0KSxwdC5lcnJvcihkdCl9LGNvbXBsZXRlOigpPT57cmU9ITAseWUoKSxNPXZZKEVlLGQpLHB0LmNvbXBsZXRlKCl9'@; put 'fSksbzEoR2UpLnN1YnNjcmliZSh2KSl9KShmKX19KHtjb25uZWN0b3I6KCk9Pm5ldyBNeChkLGwsYSkscmVzZXRPbkVycm9yOiEwLHJlc2V0T25Db21wbGV0ZTohMSxyZXNldE9uUmVmQ291bnRaZXJvOmh9KX1mdW5jdGlvbiB4eCguLi5jKXtjb25zdCBsPVlNKGMpLGE9ZnVuY3Rpb24gaHhl'@; put 'KGMsbCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBXWihjKT9jLnBvcCgpOmx9KGMsMS8wKSxkPWM7cmV0dXJuIGQubGVuZ3RoPzE9PT1kLmxlbmd0aD9vMShkWzBdKTpYeShhKShVdShkLGwpKTpFMn12YXIga3M9ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5TdGF0ZT0wXT0iU3RhdGUiLGNbYy5U'@; put 'cmFuc2l0aW9uPTFdPSJUcmFuc2l0aW9uIixjW2MuU2VxdWVuY2U9Ml09IlNlcXVlbmNlIixjW2MuR3JvdXA9M109Ikdyb3VwIixjW2MuQW5pbWF0ZT00XT0iQW5pbWF0ZSIsY1tjLktleWZyYW1lcz01XT0iS2V5ZnJhbWVzIixjW2MuU3R5bGU9Nl09IlN0eWxlIixjW2MuVHJpZ2dlcj03XT0i'@; put 'VHJpZ2dlciIsY1tjLlJlZmVyZW5jZT04XT0iUmVmZXJlbmNlIixjW2MuQW5pbWF0ZUNoaWxkPTldPSJBbmltYXRlQ2hpbGQiLGNbYy5BbmltYXRlUmVmPTEwXT0iQW5pbWF0ZVJlZiIsY1tjLlF1ZXJ5PTExXT0iUXVlcnkiLGNbYy5TdGFnZ2VyPTEyXT0iU3RhZ2dlciIsY30oa3N8fHt9KTtj'@; put 'b25zdCByZz0iKiI7ZnVuY3Rpb24gd2goYyxsKXtyZXR1cm57dHlwZTprcy5UcmlnZ2VyLG5hbWU6YyxkZWZpbml0aW9uczpsLG9wdGlvbnM6e319fWZ1bmN0aW9uIHcwKGMsbD1udWxsKXtyZXR1cm57dHlwZTprcy5BbmltYXRlLHN0eWxlczpsLHRpbWluZ3M6Y319ZnVuY3Rpb24gbG8oYyl7'@; put 'cmV0dXJue3R5cGU6a3MuU3R5bGUsc3R5bGVzOmMsb2Zmc2V0Om51bGx9fWZ1bmN0aW9uIFRMKGMsbCxhKXtyZXR1cm57dHlwZTprcy5TdGF0ZSxuYW1lOmMsc3R5bGVzOmwsb3B0aW9uczphfX1mdW5jdGlvbiB4UGUoYyl7cmV0dXJue3R5cGU6a3MuS2V5ZnJhbWVzLHN0ZXBzOmN9fWZ1bmN0'@; put 'aW9uIHR1KGMsbCxhPW51bGwpe3JldHVybnt0eXBlOmtzLlRyYW5zaXRpb24sZXhwcjpjLGFuaW1hdGlvbjpsLG9wdGlvbnM6YX19Y2xhc3MgRXh7Y29uc3RydWN0b3IobD0wLGE9MCl7dGhpcy5fb25Eb25lRm5zPVtdLHRoaXMuX29uU3RhcnRGbnM9W10sdGhpcy5fb25EZXN0cm95Rm5zPVtd'@; put 'LHRoaXMuX29yaWdpbmFsT25Eb25lRm5zPVtdLHRoaXMuX29yaWdpbmFsT25TdGFydEZucz1bXSx0aGlzLl9zdGFydGVkPSExLHRoaXMuX2Rlc3Ryb3llZD0hMSx0aGlzLl9maW5pc2hlZD0hMSx0aGlzLl9wb3NpdGlvbj0wLHRoaXMucGFyZW50UGxheWVyPW51bGwsdGhpcy50b3RhbFRpbWU9'@; put 'bCthfV9vbkZpbmlzaCgpe3RoaXMuX2ZpbmlzaGVkfHwodGhpcy5fZmluaXNoZWQ9ITAsdGhpcy5fb25Eb25lRm5zLmZvckVhY2gobD0+bCgpKSx0aGlzLl9vbkRvbmVGbnM9W10pfW9uU3RhcnQobCl7dGhpcy5fb3JpZ2luYWxPblN0YXJ0Rm5zLnB1c2gobCksdGhpcy5fb25TdGFydEZucy5w'@; put 'dXNoKGwpfW9uRG9uZShsKXt0aGlzLl9vcmlnaW5hbE9uRG9uZUZucy5wdXNoKGwpLHRoaXMuX29uRG9uZUZucy5wdXNoKGwpfW9uRGVzdHJveShsKXt0aGlzLl9vbkRlc3Ryb3lGbnMucHVzaChsKX1oYXNTdGFydGVkKCl7cmV0dXJuIHRoaXMuX3N0YXJ0ZWR9aW5pdCgpe31wbGF5KCl7dGhp'@; put 'cy5oYXNTdGFydGVkKCl8fCh0aGlzLl9vblN0YXJ0KCksdGhpcy50cmlnZ2VyTWljcm90YXNrKCkpLHRoaXMuX3N0YXJ0ZWQ9ITB9dHJpZ2dlck1pY3JvdGFzaygpe3F1ZXVlTWljcm90YXNrKCgpPT50aGlzLl9vbkZpbmlzaCgpKX1fb25TdGFydCgpe3RoaXMuX29uU3RhcnRGbnMuZm9yRWFj'@; put 'aChsPT5sKCkpLHRoaXMuX29uU3RhcnRGbnM9W119cGF1c2UoKXt9cmVzdGFydCgpe31maW5pc2goKXt0aGlzLl9vbkZpbmlzaCgpfWRlc3Ryb3koKXt0aGlzLl9kZXN0cm95ZWR8fCh0aGlzLl9kZXN0cm95ZWQ9ITAsdGhpcy5oYXNTdGFydGVkKCl8fHRoaXMuX29uU3RhcnQoKSx0aGlzLmZp'@; put 'bmlzaCgpLHRoaXMuX29uRGVzdHJveUZucy5mb3JFYWNoKGw9PmwoKSksdGhpcy5fb25EZXN0cm95Rm5zPVtdKX1yZXNldCgpe3RoaXMuX3N0YXJ0ZWQ9ITEsdGhpcy5fZmluaXNoZWQ9ITEsdGhpcy5fb25TdGFydEZucz10aGlzLl9vcmlnaW5hbE9uU3RhcnRGbnMsdGhpcy5fb25Eb25lRm5z'@; put 'PXRoaXMuX29yaWdpbmFsT25Eb25lRm5zfXNldFBvc2l0aW9uKGwpe3RoaXMuX3Bvc2l0aW9uPXRoaXMudG90YWxUaW1lP2wqdGhpcy50b3RhbFRpbWU6MX1nZXRQb3NpdGlvbigpe3JldHVybiB0aGlzLnRvdGFsVGltZT90aGlzLl9wb3NpdGlvbi90aGlzLnRvdGFsVGltZToxfXRyaWdnZXJD'@; put 'YWxsYmFjayhsKXtjb25zdCBhPSJzdGFydCI9PWw/dGhpcy5fb25TdGFydEZuczp0aGlzLl9vbkRvbmVGbnM7YS5mb3JFYWNoKGQ9PmQoKSksYS5sZW5ndGg9MH19Y2xhc3MgejBle2NvbnN0cnVjdG9yKGwpe3RoaXMuX29uRG9uZUZucz1bXSx0aGlzLl9vblN0YXJ0Rm5zPVtdLHRoaXMuX2Zp'@; put 'bmlzaGVkPSExLHRoaXMuX3N0YXJ0ZWQ9ITEsdGhpcy5fZGVzdHJveWVkPSExLHRoaXMuX29uRGVzdHJveUZucz1bXSx0aGlzLnBhcmVudFBsYXllcj1udWxsLHRoaXMudG90YWxUaW1lPTAsdGhpcy5wbGF5ZXJzPWw7bGV0IGE9MCxkPTAsaD0wO2NvbnN0IGY9dGhpcy5wbGF5ZXJzLmxlbmd0'@; put 'aDswPT1mP3F1ZXVlTWljcm90YXNrKCgpPT50aGlzLl9vbkZpbmlzaCgpKTp0aGlzLnBsYXllcnMuZm9yRWFjaCh2PT57di5vbkRvbmUoKCk9PnsrK2E9PWYmJnRoaXMuX29uRmluaXNoKCl9KSx2Lm9uRGVzdHJveSgoKT0+eysrZD09ZiYmdGhpcy5fb25EZXN0cm95KCl9KSx2Lm9uU3RhcnQo'@; put 'KCk9PnsrK2g9PWYmJnRoaXMuX29uU3RhcnQoKX0pfSksdGhpcy50b3RhbFRpbWU9dGhpcy5wbGF5ZXJzLnJlZHVjZSgodixNKT0+TWF0aC5tYXgodixNLnRvdGFsVGltZSksMCl9X29uRmluaXNoKCl7dGhpcy5fZmluaXNoZWR8fCh0aGlzLl9maW5pc2hlZD0hMCx0aGlzLl9vbkRvbmVGbnMu'@; put 'Zm9yRWFjaChsPT5sKCkpLHRoaXMuX29uRG9uZUZucz1bXSl9aW5pdCgpe3RoaXMucGxheWVycy5mb3JFYWNoKGw9PmwuaW5pdCgpKX1vblN0YXJ0KGwpe3RoaXMuX29uU3RhcnRGbnMucHVzaChsKX1fb25TdGFydCgpe3RoaXMuaGFzU3RhcnRlZCgpfHwodGhpcy5fc3RhcnRlZD0hMCx0aGlz'@; put 'Ll9vblN0YXJ0Rm5zLmZvckVhY2gobD0+bCgpKSx0aGlzLl9vblN0YXJ0Rm5zPVtdKX1vbkRvbmUobCl7dGhpcy5fb25Eb25lRm5zLnB1c2gobCl9b25EZXN0cm95KGwpe3RoaXMuX29uRGVzdHJveUZucy5wdXNoKGwpfWhhc1N0YXJ0ZWQoKXtyZXR1cm4gdGhpcy5fc3RhcnRlZH1wbGF5KCl7'@; put 'dGhpcy5wYXJlbnRQbGF5ZXJ8fHRoaXMuaW5pdCgpLHRoaXMuX29uU3RhcnQoKSx0aGlzLnBsYXllcnMuZm9yRWFjaChsPT5sLnBsYXkoKSl9cGF1c2UoKXt0aGlzLnBsYXllcnMuZm9yRWFjaChsPT5sLnBhdXNlKCkpfXJlc3RhcnQoKXt0aGlzLnBsYXllcnMuZm9yRWFjaChsPT5sLnJlc3Rh'@; put 'cnQoKSl9ZmluaXNoKCl7dGhpcy5fb25GaW5pc2goKSx0aGlzLnBsYXllcnMuZm9yRWFjaChsPT5sLmZpbmlzaCgpKX1kZXN0cm95KCl7dGhpcy5fb25EZXN0cm95KCl9X29uRGVzdHJveSgpe3RoaXMuX2Rlc3Ryb3llZHx8KHRoaXMuX2Rlc3Ryb3llZD0hMCx0aGlzLl9vbkZpbmlzaCgpLHRo'@; put 'aXMucGxheWVycy5mb3JFYWNoKGw9PmwuZGVzdHJveSgpKSx0aGlzLl9vbkRlc3Ryb3lGbnMuZm9yRWFjaChsPT5sKCkpLHRoaXMuX29uRGVzdHJveUZucz1bXSl9cmVzZXQoKXt0aGlzLnBsYXllcnMuZm9yRWFjaChsPT5sLnJlc2V0KCkpLHRoaXMuX2Rlc3Ryb3llZD0hMSx0aGlzLl9maW5p'@; put 'c2hlZD0hMSx0aGlzLl9zdGFydGVkPSExfXNldFBvc2l0aW9uKGwpe2NvbnN0IGE9bCp0aGlzLnRvdGFsVGltZTt0aGlzLnBsYXllcnMuZm9yRWFjaChkPT57Y29uc3QgaD1kLnRvdGFsVGltZT9NYXRoLm1pbigxLGEvZC50b3RhbFRpbWUpOjE7ZC5zZXRQb3NpdGlvbihoKX0pfWdldFBvc2l0'@; put 'aW9uKCl7Y29uc3QgbD10aGlzLnBsYXllcnMucmVkdWNlKChhLGQpPT5udWxsPT09YXx8ZC50b3RhbFRpbWU+YS50b3RhbFRpbWU/ZDphLG51bGwpO3JldHVybiBudWxsIT1sP2wuZ2V0UG9zaXRpb24oKTowfWJlZm9yZURlc3Ryb3koKXt0aGlzLnBsYXllcnMuZm9yRWFjaChsPT57bC5iZWZv'@; put 'cmVEZXN0cm95JiZsLmJlZm9yZURlc3Ryb3koKX0pfXRyaWdnZXJDYWxsYmFjayhsKXtjb25zdCBhPSJzdGFydCI9PWw/dGhpcy5fb25TdGFydEZuczp0aGlzLl9vbkRvbmVGbnM7YS5mb3JFYWNoKGQ9PmQoKSksYS5sZW5ndGg9MH19bGV0IGJZO3RyeXtiWT10eXBlb2YgSW50bDwidSImJklu'@; put 'dGwudjhCcmVha0l0ZXJhdG9yfWNhdGNoe2JZPSExfWxldCBBeCxUeD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMuX3BsYXRmb3JtSWQ9YSx0aGlzLmlzQnJvd3Nlcj10aGlzLl9wbGF0Zm9ybUlkP2VsKHRoaXMuX3BsYXRmb3JtSWQpOiJvYmplY3QiPT10eXBlb2YgZG9jdW1l'@; put 'bnQmJiEhZG9jdW1lbnQsdGhpcy5FREdFPXRoaXMuaXNCcm93c2VyJiYvKGVkZ2UpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSx0aGlzLlRSSURFTlQ9dGhpcy5pc0Jyb3dzZXImJi8obXNpZXx0cmlkZW50KS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksdGhpcy5CTElOSz10aGlz'@; put 'LmlzQnJvd3NlciYmISghd2luZG93LmNocm9tZSYmIWJZKSYmdHlwZW9mIENTUzwidSImJiF0aGlzLkVER0UmJiF0aGlzLlRSSURFTlQsdGhpcy5XRUJLSVQ9dGhpcy5pc0Jyb3dzZXImJi9BcHBsZVdlYktpdC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJiF0aGlzLkJMSU5LJiYhdGhp'@; put 'cy5FREdFJiYhdGhpcy5UUklERU5ULHRoaXMuSU9TPXRoaXMuaXNCcm93c2VyJiYvaVBhZHxpUGhvbmV8aVBvZC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmISgiTVNTdHJlYW0iaW4gd2luZG93KSx0aGlzLkZJUkVGT1g9dGhpcy5pc0Jyb3dzZXImJi8oZmlyZWZveHxtaW5lZmllbGQp'@; put 'L2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSx0aGlzLkFORFJPSUQ9dGhpcy5pc0Jyb3dzZXImJi9hbmRyb2lkL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmIXRoaXMuVFJJREVOVCx0aGlzLlNBRkFSST10aGlzLmlzQnJvd3NlciYmL3NhZmFyaS9pLnRlc3QobmF2aWdhdG9yLnVz'@; put 'ZXJBZ2VudCkmJnRoaXMuV0VCS0lUfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpKENyKGlzKSl9fXN0YXRpY3t0aGlzLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pfX1yZXR1cm4g'@; put 'Y30pKCk7ZnVuY3Rpb24gTWIoYyl7cmV0dXJuIGZ1bmN0aW9uIERQZSgpe2lmKG51bGw9PUF4JiZ0eXBlb2Ygd2luZG93PCJ1Iil0cnl7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLG51bGwsT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCJwYXNzaXZlIix7Z2V0OigpPT5BeD0hMH0p'@; put 'KX1maW5hbGx5e0F4PUF4fHwhMX1yZXR1cm4gQXh9KCk/YzohIWMuY2FwdHVyZX12YXIgQ3A9ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5OT1JNQUw9MF09Ik5PUk1BTCIsY1tjLk5FR0FURUQ9MV09Ik5FR0FURUQiLGNbYy5JTlZFUlRFRD0yXT0iSU5WRVJURUQiLGN9KENwfHx7fSk7bGV0IEFM'@; put 'LHU3LF9ZO2Z1bmN0aW9uIGt4KCl7aWYoIm9iamVjdCIhPXR5cGVvZiBkb2N1bWVudHx8IWRvY3VtZW50KXJldHVybiBDcC5OT1JNQUw7aWYobnVsbD09QUwpe2NvbnN0IGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksbD1jLnN0eWxlO2MuZGlyPSJydGwiLGwud2lkdGg9IjFweCIs'@; put 'bC5vdmVyZmxvdz0iYXV0byIsbC52aXNpYmlsaXR5PSJoaWRkZW4iLGwucG9pbnRlckV2ZW50cz0ibm9uZSIsbC5wb3NpdGlvbj0iYWJzb2x1dGUiO2NvbnN0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksZD1hLnN0eWxlO2Qud2lkdGg9IjJweCIsZC5oZWlnaHQ9IjFweCIsYy5h'@; put 'cHBlbmRDaGlsZChhKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGMpLEFMPUNwLk5PUk1BTCwwPT09Yy5zY3JvbGxMZWZ0JiYoYy5zY3JvbGxMZWZ0PTEsQUw9MD09PWMuc2Nyb2xsTGVmdD9DcC5ORUdBVEVEOkNwLklOVkVSVEVEKSxjLnJlbW92ZSgpfXJldHVybiBBTH1mdW5jdGlvbiBa'@; put 'MGUoYyl7aWYoZnVuY3Rpb24gUlBlKCl7aWYobnVsbD09X1kpe2NvbnN0IGM9dHlwZW9mIGRvY3VtZW50PCJ1Ij9kb2N1bWVudC5oZWFkOm51bGw7X1k9ISghY3x8IWMuY3JlYXRlU2hhZG93Um9vdCYmIWMuYXR0YWNoU2hhZG93KX1yZXR1cm4gX1l9KCkpe2NvbnN0IGw9Yy5nZXRSb290Tm9k'@; put 'ZT9jLmdldFJvb3ROb2RlKCk6bnVsbDtpZih0eXBlb2YgU2hhZG93Um9vdDwidSImJlNoYWRvd1Jvb3QmJmwgaW5zdGFuY2VvZiBTaGFkb3dSb290KXJldHVybiBsfXJldHVybiBudWxsfWZ1bmN0aW9uIGtMKGMpe3JldHVybiBjLmNvbXBvc2VkUGF0aD9jLmNvbXBvc2VkUGF0aCgpWzBdOmMu'@; put 'dGFyZ2V0fWxldCBuRmU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLl9wbGF0Zm9ybT1hfWlzRGlzYWJsZWQoYSl7cmV0dXJuIGEuaGFzQXR0cmlidXRlKCJkaXNhYmxlZCIpfWlzVmlzaWJsZShhKXtyZXR1cm4gZnVuY3Rpb24gaUZlKGMpe3JldHVybiEhKGMub2Zmc2V0V2lk'@; put 'dGh8fGMub2Zmc2V0SGVpZ2h0fHwiZnVuY3Rpb24iPT10eXBlb2YgYy5nZXRDbGllbnRSZWN0cyYmYy5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCl9KGEpJiYidmlzaWJsZSI9PT1nZXRDb21wdXRlZFN0eWxlKGEpLnZpc2liaWxpdHl9aXNUYWJiYWJsZShhKXtpZighdGhpcy5fcGxhdGZvcm0u'@; put 'aXNCcm93c2VyKXJldHVybiExO2NvbnN0IGQ9ZnVuY3Rpb24gckZlKGMpe3RyeXtyZXR1cm4gYy5mcmFtZUVsZW1lbnR9Y2F0Y2h7cmV0dXJuIG51bGx9fShmdW5jdGlvbiBoRmUoYyl7cmV0dXJuIGMub3duZXJEb2N1bWVudCYmYy5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHx3aW5kb3d9'@; put 'KGEpKTtpZihkJiYoLTE9PT0kMGUoZCl8fCF0aGlzLmlzVmlzaWJsZShkKSkpcmV0dXJuITE7bGV0IGg9YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLGY9JDBlKGEpO3JldHVybiBhLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIik/LTEhPT1mOiEoImlmcmFtZSI9PT1ofHwib2JqZWN0'@; put 'Ij09PWh8fHRoaXMuX3BsYXRmb3JtLldFQktJVCYmdGhpcy5fcGxhdGZvcm0uSU9TJiYhZnVuY3Rpb24gdUZlKGMpe2xldCBsPWMubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxhPSJpbnB1dCI9PT1sJiZjLnR5cGU7cmV0dXJuInRleHQiPT09YXx8InBhc3N3b3JkIj09PWF8fCJzZWxlY3QiPT09'@; put 'bHx8InRleHRhcmVhIj09PWx9KGEpKSYmKCJhdWRpbyI9PT1oPyEhYS5oYXNBdHRyaWJ1dGUoImNvbnRyb2xzIikmJi0xIT09ZjoidmlkZW8iPT09aD8tMSE9PWYmJihudWxsIT09Znx8dGhpcy5fcGxhdGZvcm0uRklSRUZPWHx8YS5oYXNBdHRyaWJ1dGUoImNvbnRyb2xzIikpOmEudGFiSW5k'@; put 'ZXg+PTApfWlzRm9jdXNhYmxlKGEsZCl7cmV0dXJuIGZ1bmN0aW9uIGRGZShjKXtyZXR1cm4hZnVuY3Rpb24gc0ZlKGMpe3JldHVybiBmdW5jdGlvbiBsRmUoYyl7cmV0dXJuImlucHV0Ij09Yy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpfShjKSYmImhpZGRlbiI9PWMudHlwZX0oYykmJihmdW5j'@; put 'dGlvbiBhRmUoYyl7bGV0IGw9Yy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiJpbnB1dCI9PT1sfHwic2VsZWN0Ij09PWx8fCJidXR0b24iPT09bHx8InRleHRhcmVhIj09PWx9KGMpfHxmdW5jdGlvbiBvRmUoYyl7cmV0dXJuIGZ1bmN0aW9uIGNGZShjKXtyZXR1cm4iYSI9PWMubm9k'@; put 'ZU5hbWUudG9Mb3dlckNhc2UoKX0oYykmJmMuaGFzQXR0cmlidXRlKCJocmVmIil9KGMpfHxjLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIil8fEcwZShjKSl9KGEpJiYhdGhpcy5pc0Rpc2FibGVkKGEpJiYoZD8uaWdub3JlVmlzaWJpbGl0eXx8dGhpcy5pc1Zpc2libGUoYSkpfXN0'@; put 'YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpKENyKFR4KSl9fXN0YXRpY3t0aGlzLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pfX1yZXR1cm4gY30pKCk7ZnVuY3Rpb24gRzBlKGMpe2lm'@; put 'KCFjLmhhc0F0dHJpYnV0ZSgidGFiaW5kZXgiKXx8dm9pZCAwPT09Yy50YWJJbmRleClyZXR1cm4hMTtsZXQgbD1jLmdldEF0dHJpYnV0ZSgidGFiaW5kZXgiKTtyZXR1cm4hKCFsfHxpc05hTihwYXJzZUludChsLDEwKSkpfWZ1bmN0aW9uICQwZShjKXtpZighRzBlKGMpKXJldHVybiBudWxs'@; put 'O2NvbnN0IGw9cGFyc2VJbnQoYy5nZXRBdHRyaWJ1dGUoInRhYmluZGV4Iil8fCIiLDEwKTtyZXR1cm4gaXNOYU4obCk/LTE6bH1jbGFzcyBLMGV7Z2V0IGVuYWJsZWQoKXtyZXR1cm4gdGhpcy5fZW5hYmxlZH1zZXQgZW5hYmxlZChsKXt0aGlzLl9lbmFibGVkPWwsdGhpcy5fc3RhcnRBbmNo'@; put 'b3ImJnRoaXMuX2VuZEFuY2hvciYmKHRoaXMuX3RvZ2dsZUFuY2hvclRhYkluZGV4KGwsdGhpcy5fc3RhcnRBbmNob3IpLHRoaXMuX3RvZ2dsZUFuY2hvclRhYkluZGV4KGwsdGhpcy5fZW5kQW5jaG9yKSl9Y29uc3RydWN0b3IobCxhLGQsaCxmPSExKXt0aGlzLl9lbGVtZW50PWwsdGhpcy5f'@; put 'Y2hlY2tlcj1hLHRoaXMuX25nWm9uZT1kLHRoaXMuX2RvY3VtZW50PWgsdGhpcy5faGFzQXR0YWNoZWQ9ITEsdGhpcy5zdGFydEFuY2hvckxpc3RlbmVyPSgpPT50aGlzLmZvY3VzTGFzdFRhYmJhYmxlRWxlbWVudCgpLHRoaXMuZW5kQW5jaG9yTGlzdGVuZXI9KCk9PnRoaXMuZm9jdXNGaXJz'@; put 'dFRhYmJhYmxlRWxlbWVudCgpLHRoaXMuX2VuYWJsZWQ9ITAsZnx8dGhpcy5hdHRhY2hBbmNob3JzKCl9ZGVzdHJveSgpe2NvbnN0IGw9dGhpcy5fc3RhcnRBbmNob3IsYT10aGlzLl9lbmRBbmNob3I7bCYmKGwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuc3RhcnRBbmNob3JM'@; put 'aXN0ZW5lciksbC5yZW1vdmUoKSksYSYmKGEucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuZW5kQW5jaG9yTGlzdGVuZXIpLGEucmVtb3ZlKCkpLHRoaXMuX3N0YXJ0QW5jaG9yPXRoaXMuX2VuZEFuY2hvcj1udWxsLHRoaXMuX2hhc0F0dGFjaGVkPSExfWF0dGFjaEFuY2hvcnMo'@; put 'KXtyZXR1cm4hIXRoaXMuX2hhc0F0dGFjaGVkfHwodGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57dGhpcy5fc3RhcnRBbmNob3J8fCh0aGlzLl9zdGFydEFuY2hvcj10aGlzLl9jcmVhdGVBbmNob3IoKSx0aGlzLl9zdGFydEFuY2hvci5hZGRFdmVudExpc3RlbmVyKCJmb2N1'@; put 'cyIsdGhpcy5zdGFydEFuY2hvckxpc3RlbmVyKSksdGhpcy5fZW5kQW5jaG9yfHwodGhpcy5fZW5kQW5jaG9yPXRoaXMuX2NyZWF0ZUFuY2hvcigpLHRoaXMuX2VuZEFuY2hvci5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5lbmRBbmNob3JMaXN0ZW5lcikpfSksdGhpcy5fZWxlbWVu'@; put 'dC5wYXJlbnROb2RlJiYodGhpcy5fZWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLl9zdGFydEFuY2hvcix0aGlzLl9lbGVtZW50KSx0aGlzLl9lbGVtZW50LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMuX2VuZEFuY2hvcix0aGlzLl9lbGVtZW50Lm5leHRTaWJsaW5n'@; put 'KSx0aGlzLl9oYXNBdHRhY2hlZD0hMCksdGhpcy5faGFzQXR0YWNoZWQpfWZvY3VzSW5pdGlhbEVsZW1lbnRXaGVuUmVhZHkobCl7cmV0dXJuIG5ldyBQcm9taXNlKGE9Pnt0aGlzLl9leGVjdXRlT25TdGFibGUoKCk9PmEodGhpcy5mb2N1c0luaXRpYWxFbGVtZW50KGwpKSl9KX1mb2N1c0Zp'@; put 'cnN0VGFiYmFibGVFbGVtZW50V2hlblJlYWR5KGwpe3JldHVybiBuZXcgUHJvbWlzZShhPT57dGhpcy5fZXhlY3V0ZU9uU3RhYmxlKCgpPT5hKHRoaXMuZm9jdXNGaXJzdFRhYmJhYmxlRWxlbWVudChsKSkpfSl9Zm9jdXNMYXN0VGFiYmFibGVFbGVtZW50V2hlblJlYWR5KGwpe3JldHVybiBu'@; put 'ZXcgUHJvbWlzZShhPT57dGhpcy5fZXhlY3V0ZU9uU3RhYmxlKCgpPT5hKHRoaXMuZm9jdXNMYXN0VGFiYmFibGVFbGVtZW50KGwpKSl9KX1fZ2V0UmVnaW9uQm91bmRhcnkobCl7Y29uc3QgYT10aGlzLl9lbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoYFtjZGstZm9jdXMtcmVnaW9uLSR7bH1d'@; put 'LCBbY2RrRm9jdXNSZWdpb24ke2x9XSwgW2Nkay1mb2N1cy0ke2x9XWApO3JldHVybiJzdGFydCI9PWw/YS5sZW5ndGg/YVswXTp0aGlzLl9nZXRGaXJzdFRhYmJhYmxlRWxlbWVudCh0aGlzLl9lbGVtZW50KTphLmxlbmd0aD9hW2EubGVuZ3RoLTFdOnRoaXMuX2dldExhc3RUYWJiYWJsZUVs'@; put 'ZW1lbnQodGhpcy5fZWxlbWVudCl9Zm9jdXNJbml0aWFsRWxlbWVudChsKXtjb25zdCBhPXRoaXMuX2VsZW1lbnQucXVlcnlTZWxlY3RvcigiW2Nkay1mb2N1cy1pbml0aWFsXSwgW2Nka0ZvY3VzSW5pdGlhbF0iKTtpZihhKXtpZighdGhpcy5fY2hlY2tlci5pc0ZvY3VzYWJsZShhKSl7Y29u'@; put 'c3QgZD10aGlzLl9nZXRGaXJzdFRhYmJhYmxlRWxlbWVudChhKTtyZXR1cm4gZD8uZm9jdXMobCksISFkfXJldHVybiBhLmZvY3VzKGwpLCEwfXJldHVybiB0aGlzLmZvY3VzRmlyc3RUYWJiYWJsZUVsZW1lbnQobCl9Zm9jdXNGaXJzdFRhYmJhYmxlRWxlbWVudChsKXtjb25zdCBhPXRoaXMu'@; put 'X2dldFJlZ2lvbkJvdW5kYXJ5KCJzdGFydCIpO3JldHVybiBhJiZhLmZvY3VzKGwpLCEhYX1mb2N1c0xhc3RUYWJiYWJsZUVsZW1lbnQobCl7Y29uc3QgYT10aGlzLl9nZXRSZWdpb25Cb3VuZGFyeSgiZW5kIik7cmV0dXJuIGEmJmEuZm9jdXMobCksISFhfWhhc0F0dGFjaGVkKCl7cmV0dXJu'@; put 'IHRoaXMuX2hhc0F0dGFjaGVkfV9nZXRGaXJzdFRhYmJhYmxlRWxlbWVudChsKXtpZih0aGlzLl9jaGVja2VyLmlzRm9jdXNhYmxlKGwpJiZ0aGlzLl9jaGVja2VyLmlzVGFiYmFibGUobCkpcmV0dXJuIGw7Y29uc3QgYT1sLmNoaWxkcmVuO2ZvcihsZXQgZD0wO2Q8YS5sZW5ndGg7ZCsrKXtj'@; put 'b25zdCBoPWFbZF0ubm9kZVR5cGU9PT10aGlzLl9kb2N1bWVudC5FTEVNRU5UX05PREU/dGhpcy5fZ2V0Rmlyc3RUYWJiYWJsZUVsZW1lbnQoYVtkXSk6bnVsbDtpZihoKXJldHVybiBofXJldHVybiBudWxsfV9nZXRMYXN0VGFiYmFibGVFbGVtZW50KGwpe2lmKHRoaXMuX2NoZWNrZXIuaXNG'@; put 'b2N1c2FibGUobCkmJnRoaXMuX2NoZWNrZXIuaXNUYWJiYWJsZShsKSlyZXR1cm4gbDtjb25zdCBhPWwuY2hpbGRyZW47Zm9yKGxldCBkPWEubGVuZ3RoLTE7ZD49MDtkLS0pe2NvbnN0IGg9YVtkXS5ub2RlVHlwZT09PXRoaXMuX2RvY3VtZW50LkVMRU1FTlRfTk9ERT90aGlzLl9nZXRMYXN0'@; put 'VGFiYmFibGVFbGVtZW50KGFbZF0pOm51bGw7aWYoaClyZXR1cm4gaH1yZXR1cm4gbnVsbH1fY3JlYXRlQW5jaG9yKCl7Y29uc3QgbD10aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdGhpcy5fdG9nZ2xlQW5jaG9yVGFiSW5kZXgodGhpcy5fZW5hYmxlZCxsKSxs'@; put 'LmNsYXNzTGlzdC5hZGQoImNkay12aXN1YWxseS1oaWRkZW4iKSxsLmNsYXNzTGlzdC5hZGQoImNkay1mb2N1cy10cmFwLWFuY2hvciIpLGwuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKSxsfV90b2dnbGVBbmNob3JUYWJJbmRleChsLGEpe2w/YS5zZXRBdHRyaWJ1dGUoInRh'@; put 'YmluZGV4IiwiMCIpOmEucmVtb3ZlQXR0cmlidXRlKCJ0YWJpbmRleCIpfXRvZ2dsZUFuY2hvcnMobCl7dGhpcy5fc3RhcnRBbmNob3ImJnRoaXMuX2VuZEFuY2hvciYmKHRoaXMuX3RvZ2dsZUFuY2hvclRhYkluZGV4KGwsdGhpcy5fc3RhcnRBbmNob3IpLHRoaXMuX3RvZ2dsZUFuY2hvclRh'@; put 'YkluZGV4KGwsdGhpcy5fZW5kQW5jaG9yKSl9X2V4ZWN1dGVPblN0YWJsZShsKXt0aGlzLl9uZ1pvbmUuaXNTdGFibGU/bCgpOnRoaXMuX25nWm9uZS5vblN0YWJsZS5waXBlKGdoKDEpKS5zdWJzY3JpYmUobCl9fWxldCB3WT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoKXt0aGlz'@; put 'Ll9jaGVja2VyPWEsdGhpcy5fbmdab25lPWQsdGhpcy5fZG9jdW1lbnQ9aH1jcmVhdGUoYSxkPSExKXtyZXR1cm4gbmV3IEswZShhLHRoaXMuX2NoZWNrZXIsdGhpcy5fbmdab25lLHRoaXMuX2RvY3VtZW50LGQpfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3'@; put 'KGR8fGMpKENyKG5GZSksQ3IoR2EpLENyKG1vKSl9fXN0YXRpY3t0aGlzLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pfX1yZXR1cm4gY30pKCksWDBlPSgoKT0+e2NsYXNzIGN7Z2V0IGVuYWJsZWQoKXtyZXR1cm4gdGhpcy5m'@; put 'b2N1c1RyYXA/LmVuYWJsZWR8fCExfXNldCBlbmFibGVkKGEpe3RoaXMuZm9jdXNUcmFwJiYodGhpcy5mb2N1c1RyYXAuZW5hYmxlZD1hKX1jb25zdHJ1Y3RvcihhLGQsaCl7dGhpcy5fZWxlbWVudFJlZj1hLHRoaXMuX2ZvY3VzVHJhcEZhY3Rvcnk9ZCx0aGlzLl9wcmV2aW91c2x5Rm9jdXNl'@; put 'ZEVsZW1lbnQ9bnVsbCxoaShUeCkuaXNCcm93c2VyJiYodGhpcy5mb2N1c1RyYXA9dGhpcy5fZm9jdXNUcmFwRmFjdG9yeS5jcmVhdGUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCEwKSl9bmdPbkRlc3Ryb3koKXt0aGlzLmZvY3VzVHJhcD8uZGVzdHJveSgpLHRoaXMuX3ByZXZp'@; put 'b3VzbHlGb2N1c2VkRWxlbWVudCYmKHRoaXMuX3ByZXZpb3VzbHlGb2N1c2VkRWxlbWVudC5mb2N1cygpLHRoaXMuX3ByZXZpb3VzbHlGb2N1c2VkRWxlbWVudD1udWxsKX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLmZvY3VzVHJhcD8uYXR0YWNoQW5jaG9ycygpLHRoaXMuYXV0b0NhcHR1'@; put 'cmUmJnRoaXMuX2NhcHR1cmVGb2N1cygpfW5nRG9DaGVjaygpe3RoaXMuZm9jdXNUcmFwJiYhdGhpcy5mb2N1c1RyYXAuaGFzQXR0YWNoZWQoKSYmdGhpcy5mb2N1c1RyYXAuYXR0YWNoQW5jaG9ycygpfW5nT25DaGFuZ2VzKGEpe2NvbnN0IGQ9YS5hdXRvQ2FwdHVyZTtkJiYhZC5maXJzdENo'@; put 'YW5nZSYmdGhpcy5hdXRvQ2FwdHVyZSYmdGhpcy5mb2N1c1RyYXA/Lmhhc0F0dGFjaGVkKCkmJnRoaXMuX2NhcHR1cmVGb2N1cygpfV9jYXB0dXJlRm9jdXMoKXt0aGlzLl9wcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQ9ZnVuY3Rpb24gTFBlKCl7bGV0IGM9dHlwZW9mIGRvY3VtZW50PCJ1IiYm'@; put 'ZG9jdW1lbnQ/ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDpudWxsO2Zvcig7YyYmYy5zaGFkb3dSb290Oyl7Y29uc3QgbD1jLnNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudDtpZihsPT09YylicmVhaztjPWx9cmV0dXJuIGN9KCksdGhpcy5mb2N1c1RyYXA/LmZvY3VzSW5pdGlhbEVsZW1lbnRXaGVu'@; put 'UmVhZHkoKX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKSgkZShRaSksJGUod1kpLCRlKG1vKSl9fXN0YXRpY3t0aGlzLlx1MDI3NWRpcj1Fcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJjZGtUcmFwRm9jdXMiLCIiXV0saW5wdXRzOntlbmFibGVk'@; put 'OltWbi5IYXNEZWNvcmF0b3JJbnB1dFRyYW5zZm9ybSwiY2RrVHJhcEZvY3VzIiwiZW5hYmxlZCIsczFdLGF1dG9DYXB0dXJlOltWbi5IYXNEZWNvcmF0b3JJbnB1dFRyYW5zZm9ybSwiY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmUiLCJhdXRvQ2FwdHVyZSIsczFdfSxleHBvcnRBczpbImNka1Ry'@; put 'YXBGb2N1cyJdLHN0YW5kYWxvbmU6ITAsZmVhdHVyZXM6W3psLGJsXX0pfX1yZXR1cm4gY30pKCk7ZnVuY3Rpb24gZDcoYyxsPTApe3JldHVybiBmdW5jdGlvbiB5RmUoYyl7cmV0dXJuIWlzTmFOKHBhcnNlRmxvYXQoYykpJiYhaXNOYU4oTnVtYmVyKGMpKX0oYyk/TnVtYmVyKGMpOmx9ZnVu'@; put 'Y3Rpb24gRWQoYyl7cmV0dXJuIGMgaW5zdGFuY2VvZiBRaT9jLm5hdGl2ZUVsZW1lbnQ6Y31jb25zdCBEeD17c2NoZWR1bGUoYyl7bGV0IGw9cmVxdWVzdEFuaW1hdGlvbkZyYW1lLGE9Y2FuY2VsQW5pbWF0aW9uRnJhbWU7Y29uc3R7ZGVsZWdhdGU6ZH09RHg7ZCYmKGw9ZC5yZXF1ZXN0QW5p'@; put 'bWF0aW9uRnJhbWUsYT1kLmNhbmNlbEFuaW1hdGlvbkZyYW1lKTtjb25zdCBoPWwoZj0+e2E9dm9pZCAwLGMoZil9KTtyZXR1cm4gbmV3IEp0KCgpPT5hPy4oaCkpfSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoLi4uYyl7Y29uc3R7ZGVsZWdhdGU6bH09RHg7cmV0dXJuKGw/LnJlcXVlc3RBbmlt'@; put 'YXRpb25GcmFtZXx8cmVxdWVzdEFuaW1hdGlvbkZyYW1lKSguLi5jKX0sY2FuY2VsQW5pbWF0aW9uRnJhbWUoLi4uYyl7Y29uc3R7ZGVsZWdhdGU6bH09RHg7cmV0dXJuKGw/LmNhbmNlbEFuaW1hdGlvbkZyYW1lfHxjYW5jZWxBbmltYXRpb25GcmFtZSkoLi4uYyl9LGRlbGVnYXRlOnZvaWQg'@; put 'MH0scTBlPW5ldyBjbGFzcyB3RmUgZXh0ZW5kcyBtWXtmbHVzaChsKXtsZXQgYTt0aGlzLl9hY3RpdmU9ITAsbD9hPWwuaWQ6KGE9dGhpcy5fc2NoZWR1bGVkLHRoaXMuX3NjaGVkdWxlZD12b2lkIDApO2NvbnN0e2FjdGlvbnM6ZH09dGhpcztsZXQgaDtsPWx8fGQuc2hpZnQoKTtkb3tpZiho'@; put 'PWwuZXhlY3V0ZShsLnN0YXRlLGwuZGVsYXkpKWJyZWFrfXdoaWxlKChsPWRbMF0pJiZsLmlkPT09YSYmZC5zaGlmdCgpKTtpZih0aGlzLl9hY3RpdmU9ITEsaCl7Zm9yKDsobD1kWzBdKSYmbC5pZD09PWEmJmQuc2hpZnQoKTspbC51bnN1YnNjcmliZSgpO3Rocm93IGh9fX0oY2xhc3MgX0Zl'@; put 'IGV4dGVuZHMgcFl7Y29uc3RydWN0b3IobCxhKXtzdXBlcihsLGEpLHRoaXMuc2NoZWR1bGVyPWwsdGhpcy53b3JrPWF9cmVxdWVzdEFzeW5jSWQobCxhLGQ9MCl7cmV0dXJuIG51bGwhPT1kJiZkPjA/c3VwZXIucmVxdWVzdEFzeW5jSWQobCxhLGQpOihsLmFjdGlvbnMucHVzaCh0aGlzKSxs'@; put 'Ll9zY2hlZHVsZWR8fChsLl9zY2hlZHVsZWQ9RHgucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT5sLmZsdXNoKHZvaWQgMCkpKSl9cmVjeWNsZUFzeW5jSWQobCxhLGQ9MCl7dmFyIGg7aWYobnVsbCE9ZD9kPjA6dGhpcy5kZWxheT4wKXJldHVybiBzdXBlci5yZWN5Y2xlQXN5bmNJZChsLGEs'@; put 'ZCk7Y29uc3R7YWN0aW9uczpmfT1sO251bGwhPWEmJmE9PT1sLl9zY2hlZHVsZWQmJihudWxsPT09KGg9ZltmLmxlbmd0aC0xXSl8fHZvaWQgMD09PWg/dm9pZCAwOmguaWQpIT09YSYmKER4LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGEpLGwuX3NjaGVkdWxlZD12b2lkIDApfX0pO2xldCBDWSxD'@; put 'RmU9MTtjb25zdCBETD17fTtmdW5jdGlvbiBKMGUoYyl7cmV0dXJuIGMgaW4gREwmJihkZWxldGUgRExbY10sITApfWNvbnN0IFNGZT17c2V0SW1tZWRpYXRlKGMpe2NvbnN0IGw9Q0ZlKys7cmV0dXJuIERMW2xdPSEwLENZfHwoQ1k9UHJvbWlzZS5yZXNvbHZlKCkpLENZLnRoZW4oKCk9Pkow'@; put 'ZShsKSYmYygpKSxsfSxjbGVhckltbWVkaWF0ZShjKXtKMGUoYyl9fSx7c2V0SW1tZWRpYXRlOk1GZSxjbGVhckltbWVkaWF0ZTp4RmV9PVNGZSxJTD17c2V0SW1tZWRpYXRlKC4uLmMpe2NvbnN0e2RlbGVnYXRlOmx9PUlMO3JldHVybihsPy5zZXRJbW1lZGlhdGV8fE1GZSkoLi4uYyl9LGNs'@; put 'ZWFySW1tZWRpYXRlKGMpe2NvbnN0e2RlbGVnYXRlOmx9PUlMO3JldHVybihsPy5jbGVhckltbWVkaWF0ZXx8eEZlKShjKX0sZGVsZWdhdGU6dm9pZCAwfSxBRmU9bmV3IGNsYXNzIFRGZSBleHRlbmRzIG1Ze2ZsdXNoKGwpe3RoaXMuX2FjdGl2ZT0hMDtjb25zdCBhPXRoaXMuX3NjaGVkdWxl'@; put 'ZDt0aGlzLl9zY2hlZHVsZWQ9dm9pZCAwO2NvbnN0e2FjdGlvbnM6ZH09dGhpcztsZXQgaDtsPWx8fGQuc2hpZnQoKTtkb3tpZihoPWwuZXhlY3V0ZShsLnN0YXRlLGwuZGVsYXkpKWJyZWFrfXdoaWxlKChsPWRbMF0pJiZsLmlkPT09YSYmZC5zaGlmdCgpKTtpZih0aGlzLl9hY3RpdmU9ITEs'@; put 'aCl7Zm9yKDsobD1kWzBdKSYmbC5pZD09PWEmJmQuc2hpZnQoKTspbC51bnN1YnNjcmliZSgpO3Rocm93IGh9fX0oY2xhc3MgRUZlIGV4dGVuZHMgcFl7Y29uc3RydWN0b3IobCxhKXtzdXBlcihsLGEpLHRoaXMuc2NoZWR1bGVyPWwsdGhpcy53b3JrPWF9cmVxdWVzdEFzeW5jSWQobCxhLGQ9'@; put 'MCl7cmV0dXJuIG51bGwhPT1kJiZkPjA/c3VwZXIucmVxdWVzdEFzeW5jSWQobCxhLGQpOihsLmFjdGlvbnMucHVzaCh0aGlzKSxsLl9zY2hlZHVsZWR8fChsLl9zY2hlZHVsZWQ9SUwuc2V0SW1tZWRpYXRlKGwuZmx1c2guYmluZChsLHZvaWQgMCkpKSl9cmVjeWNsZUFzeW5jSWQobCxhLGQ9'@; put 'MCl7dmFyIGg7aWYobnVsbCE9ZD9kPjA6dGhpcy5kZWxheT4wKXJldHVybiBzdXBlci5yZWN5Y2xlQXN5bmNJZChsLGEsZCk7Y29uc3R7YWN0aW9uczpmfT1sO251bGwhPWEmJihudWxsPT09KGg9ZltmLmxlbmd0aC0xXSl8fHZvaWQgMD09PWg/dm9pZCAwOmguaWQpIT09YSYmKElMLmNsZWFy'@; put 'SW1tZWRpYXRlKGEpLGwuX3NjaGVkdWxlZD09PWEmJihsLl9zY2hlZHVsZWQ9dm9pZCAwKSl9fSk7ZnVuY3Rpb24gUTBlKGM9MCxsLGE9bVBlKXtsZXQgZD0tMTtyZXR1cm4gbnVsbCE9bCYmKGJsZShsKT9hPWw6ZD1sKSxuZXcgUXQoaD0+e2xldCBmPWZ1bmN0aW9uIERGZShjKXtyZXR1cm4g'@; put 'YyBpbnN0YW5jZW9mIERhdGUmJiFpc05hTihjKX0oYyk/K2MtYS5ub3coKTpjO2Y8MCYmKGY9MCk7bGV0IHY9MDtyZXR1cm4gYS5zY2hlZHVsZShmdW5jdGlvbigpe2guY2xvc2VkfHwoaC5uZXh0KHYrKyksMDw9ZD90aGlzLnNjaGVkdWxlKHZvaWQgMCxkKTpoLmNvbXBsZXRlKCkpfSxmKX0p'@; put 'fWZ1bmN0aW9uIFNZKGMsbD1FTCl7cmV0dXJuIGZ1bmN0aW9uIGtGZShjKXtyZXR1cm4gTmkoKGwsYSk9PntsZXQgZD0hMSxoPW51bGwsZj1udWxsLHY9ITE7Y29uc3QgTT0oKT0+e2lmKGY/LnVuc3Vic2NyaWJlKCksZj1udWxsLGQpe2Q9ITE7Y29uc3QgRz1oO2g9bnVsbCxhLm5leHQoRyl9'@; put 'diYmYS5jb21wbGV0ZSgpfSxJPSgpPT57Zj1udWxsLHYmJmEuY29tcGxldGUoKX07bC5zdWJzY3JpYmUoSGkoYSxHPT57ZD0hMCxoPUcsZnx8bzEoYyhHKSkuc3Vic2NyaWJlKGY9SGkoYSxNLEkpKX0sKCk9Pnt2PSEwLCghZHx8IWZ8fGYuY2xvc2VkKSYmYS5jb21wbGV0ZSgpfSkpfSl9KCgp'@; put 'PT5RMGUoYyxsKSl9Y29uc3QgUkZlPW5ldyBTdCgiY2RrLWRpci1kb2MiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OmZ1bmN0aW9uIExGZSgpe3JldHVybiBoaShtbyl9fSksT0ZlPS9eKGFyfGNrYnxkdnxoZXxpd3xmYXxucW98cHN8c2R8dWd8dXJ8eWl8LipbLV9dKEFkbG18QXJhYnxI'@; put 'ZWJyfE5rb298Um9oZ3xUaGFhKSkoPyEuKlstX10oTGF0bnxDeXJsKSgkfC18XykpKCR8LXxfKS9pO2xldCBkbT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMudmFsdWU9Imx0ciIsdGhpcy5jaGFuZ2U9bmV3IEtyLGEmJih0aGlzLnZhbHVlPWZ1bmN0aW9uIFBGZShjKXtjb25z'@; put 'dCBsPWM/LnRvTG93ZXJDYXNlKCl8fCIiO3JldHVybiJhdXRvIj09PWwmJnR5cGVvZiBuYXZpZ2F0b3I8InUiJiZuYXZpZ2F0b3I/Lmxhbmd1YWdlP09GZS50ZXN0KG5hdmlnYXRvci5sYW5ndWFnZSk/InJ0bCI6Imx0ciI6InJ0bCI9PT1sPyJydGwiOiJsdHIifSgoYS5ib2R5P2EuYm9keS5k'@; put 'aXI6bnVsbCl8fChhLmRvY3VtZW50RWxlbWVudD9hLmRvY3VtZW50RWxlbWVudC5kaXI6bnVsbCl8fCJsdHIiKSl9bmdPbkRlc3Ryb3koKXt0aGlzLmNoYW5nZS5jb21wbGV0ZSgpfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpKENyKFJGZSw4KSl9'@; put 'fXN0YXRpY3t0aGlzLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pfX1yZXR1cm4gY30pKCk7Y2xhc3MgRkZle31jbGFzcyBORmUgZXh0ZW5kcyBGRmV7Y29uc3RydWN0b3IobCl7c3VwZXIoKSx0aGlzLl9kYXRhPWx9Y29ubmVj'@; put 'dCgpe3JldHVybiBXTSh0aGlzLl9kYXRhKT90aGlzLl9kYXRhOmRzKHRoaXMuX2RhdGEpfWRpc2Nvbm5lY3QoKXt9fXZhciBobT1mdW5jdGlvbihjKXtyZXR1cm4gY1tjLlJFUExBQ0VEPTBdPSJSRVBMQUNFRCIsY1tjLklOU0VSVEVEPTFdPSJJTlNFUlRFRCIsY1tjLk1PVkVEPTJdPSJNT1ZF'@; put 'RCIsY1tjLlJFTU9WRUQ9M109IlJFTU9WRUQiLGN9KGhtfHx7fSk7Y29uc3QgTVk9bmV3IFN0KCJfVmlld1JlcGVhdGVyIik7Y2xhc3MgZTFle2NvbnN0cnVjdG9yKCl7dGhpcy52aWV3Q2FjaGVTaXplPTIwLHRoaXMuX3ZpZXdDYWNoZT1bXX1hcHBseUNoYW5nZXMobCxhLGQsaCxmKXtsLmZv'@; put 'ckVhY2hPcGVyYXRpb24oKHYsTSxJKT0+e2xldCBHLHJlO251bGw9PXYucHJldmlvdXNJbmRleD8oRz10aGlzLl9pbnNlcnRWaWV3KCgpPT5kKHYsTSxJKSxJLGEsaCh2KSkscmU9Rz9obS5JTlNFUlRFRDpobS5SRVBMQUNFRCk6bnVsbD09ST8odGhpcy5fZGV0YWNoQW5kQ2FjaGVWaWV3KE0s'@; put 'YSkscmU9aG0uUkVNT1ZFRCk6KEc9dGhpcy5fbW92ZVZpZXcoTSxJLGEsaCh2KSkscmU9aG0uTU9WRUQpLGYmJmYoe2NvbnRleHQ6Rz8uY29udGV4dCxvcGVyYXRpb246cmUscmVjb3JkOnZ9KX0pfWRldGFjaCgpe2Zvcihjb25zdCBsIG9mIHRoaXMuX3ZpZXdDYWNoZSlsLmRlc3Ryb3koKTt0'@; put 'aGlzLl92aWV3Q2FjaGU9W119X2luc2VydFZpZXcobCxhLGQsaCl7Y29uc3QgZj10aGlzLl9pbnNlcnRWaWV3RnJvbUNhY2hlKGEsZCk7aWYoZilyZXR1cm4gdm9pZChmLmNvbnRleHQuJGltcGxpY2l0PWgpO2NvbnN0IHY9bCgpO3JldHVybiBkLmNyZWF0ZUVtYmVkZGVkVmlldyh2LnRlbXBs'@; put 'YXRlUmVmLHYuY29udGV4dCx2LmluZGV4KX1fZGV0YWNoQW5kQ2FjaGVWaWV3KGwsYSl7Y29uc3QgZD1hLmRldGFjaChsKTt0aGlzLl9tYXliZUNhY2hlVmlldyhkLGEpfV9tb3ZlVmlldyhsLGEsZCxoKXtjb25zdCBmPWQuZ2V0KGwpO3JldHVybiBkLm1vdmUoZixhKSxmLmNvbnRleHQuJGlt'@; put 'cGxpY2l0PWgsZn1fbWF5YmVDYWNoZVZpZXcobCxhKXtpZih0aGlzLl92aWV3Q2FjaGUubGVuZ3RoPHRoaXMudmlld0NhY2hlU2l6ZSl0aGlzLl92aWV3Q2FjaGUucHVzaChsKTtlbHNle2NvbnN0IGQ9YS5pbmRleE9mKGwpOy0xPT09ZD9sLmRlc3Ryb3koKTphLnJlbW92ZShkKX19X2luc2Vy'@; put 'dFZpZXdGcm9tQ2FjaGUobCxhKXtjb25zdCBkPXRoaXMuX3ZpZXdDYWNoZS5wb3AoKTtyZXR1cm4gZCYmYS5pbnNlcnQoZCxsKSxkfHxudWxsfX1jb25zdCBWRmU9WyJjb250ZW50V3JhcHBlciJdLEJGZT1bIioiXSx0MWU9bmV3IFN0KCJWSVJUVUFMX1NDUk9MTF9TVFJBVEVHWSIpO2NsYXNz'@; put 'IGpGZXtjb25zdHJ1Y3RvcihsLGEsZCl7dGhpcy5fc2Nyb2xsZWRJbmRleENoYW5nZT1uZXcgR24sdGhpcy5zY3JvbGxlZEluZGV4Q2hhbmdlPXRoaXMuX3Njcm9sbGVkSW5kZXhDaGFuZ2UucGlwZShmdW5jdGlvbiBmWShjLGw9Y24pe3JldHVybiBjPWM/P2ZQZSxOaSgoYSxkKT0+e2xldCBo'@; put 'LGY9ITA7YS5zdWJzY3JpYmUoSGkoZCx2PT57Y29uc3QgTT1sKHYpOyhmfHwhYyhoLE0pKSYmKGY9ITEsaD1NLGQubmV4dCh2KSl9KSl9KX0oKSksdGhpcy5fdmlld3BvcnQ9bnVsbCx0aGlzLl9pdGVtU2l6ZT1sLHRoaXMuX21pbkJ1ZmZlclB4PWEsdGhpcy5fbWF4QnVmZmVyUHg9ZH1hdHRh'@; put 'Y2gobCl7dGhpcy5fdmlld3BvcnQ9bCx0aGlzLl91cGRhdGVUb3RhbENvbnRlbnRTaXplKCksdGhpcy5fdXBkYXRlUmVuZGVyZWRSYW5nZSgpfWRldGFjaCgpe3RoaXMuX3Njcm9sbGVkSW5kZXhDaGFuZ2UuY29tcGxldGUoKSx0aGlzLl92aWV3cG9ydD1udWxsfXVwZGF0ZUl0ZW1BbmRCdWZm'@; put 'ZXJTaXplKGwsYSxkKXt0aGlzLl9pdGVtU2l6ZT1sLHRoaXMuX21pbkJ1ZmZlclB4PWEsdGhpcy5fbWF4QnVmZmVyUHg9ZCx0aGlzLl91cGRhdGVUb3RhbENvbnRlbnRTaXplKCksdGhpcy5fdXBkYXRlUmVuZGVyZWRSYW5nZSgpfW9uQ29udGVudFNjcm9sbGVkKCl7dGhpcy5fdXBkYXRlUmVu'@; put 'ZGVyZWRSYW5nZSgpfW9uRGF0YUxlbmd0aENoYW5nZWQoKXt0aGlzLl91cGRhdGVUb3RhbENvbnRlbnRTaXplKCksdGhpcy5fdXBkYXRlUmVuZGVyZWRSYW5nZSgpfW9uQ29udGVudFJlbmRlcmVkKCl7fW9uUmVuZGVyZWRPZmZzZXRDaGFuZ2VkKCl7fXNjcm9sbFRvSW5kZXgobCxhKXt0aGlz'@; put 'Ll92aWV3cG9ydCYmdGhpcy5fdmlld3BvcnQuc2Nyb2xsVG9PZmZzZXQobCp0aGlzLl9pdGVtU2l6ZSxhKX1fdXBkYXRlVG90YWxDb250ZW50U2l6ZSgpe3RoaXMuX3ZpZXdwb3J0JiZ0aGlzLl92aWV3cG9ydC5zZXRUb3RhbENvbnRlbnRTaXplKHRoaXMuX3ZpZXdwb3J0LmdldERhdGFMZW5n'@; put 'dGgoKSp0aGlzLl9pdGVtU2l6ZSl9X3VwZGF0ZVJlbmRlcmVkUmFuZ2UoKXtpZighdGhpcy5fdmlld3BvcnQpcmV0dXJuO2NvbnN0IGw9dGhpcy5fdmlld3BvcnQuZ2V0UmVuZGVyZWRSYW5nZSgpLGE9e3N0YXJ0Omwuc3RhcnQsZW5kOmwuZW5kfSxkPXRoaXMuX3ZpZXdwb3J0LmdldFZpZXdw'@; put 'b3J0U2l6ZSgpLGg9dGhpcy5fdmlld3BvcnQuZ2V0RGF0YUxlbmd0aCgpO2xldCBmPXRoaXMuX3ZpZXdwb3J0Lm1lYXN1cmVTY3JvbGxPZmZzZXQoKSx2PXRoaXMuX2l0ZW1TaXplPjA/Zi90aGlzLl9pdGVtU2l6ZTowO2lmKGEuZW5kPmgpe2NvbnN0IEk9TWF0aC5jZWlsKGQvdGhpcy5faXRl'@; put 'bVNpemUpLEc9TWF0aC5tYXgoMCxNYXRoLm1pbih2LGgtSSkpO3YhPUcmJih2PUcsZj1HKnRoaXMuX2l0ZW1TaXplLGEuc3RhcnQ9TWF0aC5mbG9vcih2KSksYS5lbmQ9TWF0aC5tYXgoMCxNYXRoLm1pbihoLGEuc3RhcnQrSSkpfWNvbnN0IE09Zi1hLnN0YXJ0KnRoaXMuX2l0ZW1TaXplO2lm'@; put 'KE08dGhpcy5fbWluQnVmZmVyUHgmJjAhPWEuc3RhcnQpe2NvbnN0IEk9TWF0aC5jZWlsKCh0aGlzLl9tYXhCdWZmZXJQeC1NKS90aGlzLl9pdGVtU2l6ZSk7YS5zdGFydD1NYXRoLm1heCgwLGEuc3RhcnQtSSksYS5lbmQ9TWF0aC5taW4oaCxNYXRoLmNlaWwodisoZCt0aGlzLl9taW5CdWZm'@; put 'ZXJQeCkvdGhpcy5faXRlbVNpemUpKX1lbHNle2NvbnN0IEk9YS5lbmQqdGhpcy5faXRlbVNpemUtKGYrZCk7aWYoSTx0aGlzLl9taW5CdWZmZXJQeCYmYS5lbmQhPWgpe2NvbnN0IEc9TWF0aC5jZWlsKCh0aGlzLl9tYXhCdWZmZXJQeC1JKS90aGlzLl9pdGVtU2l6ZSk7Rz4wJiYoYS5lbmQ9'@; put 'TWF0aC5taW4oaCxhLmVuZCtHKSxhLnN0YXJ0PU1hdGgubWF4KDAsTWF0aC5mbG9vcih2LXRoaXMuX21pbkJ1ZmZlclB4L3RoaXMuX2l0ZW1TaXplKSkpfX10aGlzLl92aWV3cG9ydC5zZXRSZW5kZXJlZFJhbmdlKGEpLHRoaXMuX3ZpZXdwb3J0LnNldFJlbmRlcmVkQ29udGVudE9mZnNldCh0'@; put 'aGlzLl9pdGVtU2l6ZSphLnN0YXJ0KSx0aGlzLl9zY3JvbGxlZEluZGV4Q2hhbmdlLm5leHQoTWF0aC5mbG9vcih2KSl9fWxldCB4Yj0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoKXt0aGlzLl9uZ1pvbmU9YSx0aGlzLl9wbGF0Zm9ybT1kLHRoaXMuX3Njcm9sbGVkPW5ldyBHbix0'@; put 'aGlzLl9nbG9iYWxTdWJzY3JpcHRpb249bnVsbCx0aGlzLl9zY3JvbGxlZENvdW50PTAsdGhpcy5zY3JvbGxDb250YWluZXJzPW5ldyBNYXAsdGhpcy5fZG9jdW1lbnQ9aH1yZWdpc3RlcihhKXt0aGlzLnNjcm9sbENvbnRhaW5lcnMuaGFzKGEpfHx0aGlzLnNjcm9sbENvbnRhaW5lcnMuc2V0'@; put 'KGEsYS5lbGVtZW50U2Nyb2xsZWQoKS5zdWJzY3JpYmUoKCk9PnRoaXMuX3Njcm9sbGVkLm5leHQoYSkpKX1kZXJlZ2lzdGVyKGEpe2NvbnN0IGQ9dGhpcy5zY3JvbGxDb250YWluZXJzLmdldChhKTtkJiYoZC51bnN1YnNjcmliZSgpLHRoaXMuc2Nyb2xsQ29udGFpbmVycy5kZWxldGUoYSkp'@; put 'fXNjcm9sbGVkKGE9MjApe3JldHVybiB0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXI/bmV3IFF0KGQ9Pnt0aGlzLl9nbG9iYWxTdWJzY3JpcHRpb258fHRoaXMuX2FkZEdsb2JhbExpc3RlbmVyKCk7Y29uc3QgaD1hPjA/dGhpcy5fc2Nyb2xsZWQucGlwZShTWShhKSkuc3Vic2NyaWJlKGQpOnRo'@; put 'aXMuX3Njcm9sbGVkLnN1YnNjcmliZShkKTtyZXR1cm4gdGhpcy5fc2Nyb2xsZWRDb3VudCsrLCgpPT57aC51bnN1YnNjcmliZSgpLHRoaXMuX3Njcm9sbGVkQ291bnQtLSx0aGlzLl9zY3JvbGxlZENvdW50fHx0aGlzLl9yZW1vdmVHbG9iYWxMaXN0ZW5lcigpfX0pOmRzKCl9bmdPbkRlc3Ry'@; put 'b3koKXt0aGlzLl9yZW1vdmVHbG9iYWxMaXN0ZW5lcigpLHRoaXMuc2Nyb2xsQ29udGFpbmVycy5mb3JFYWNoKChhLGQpPT50aGlzLmRlcmVnaXN0ZXIoZCkpLHRoaXMuX3Njcm9sbGVkLmNvbXBsZXRlKCl9YW5jZXN0b3JTY3JvbGxlZChhLGQpe2NvbnN0IGg9dGhpcy5nZXRBbmNlc3RvclNj'@; put 'cm9sbENvbnRhaW5lcnMoYSk7cmV0dXJuIHRoaXMuc2Nyb2xsZWQoZCkucGlwZShXbChmPT4hZnx8aC5pbmRleE9mKGYpPi0xKSl9Z2V0QW5jZXN0b3JTY3JvbGxDb250YWluZXJzKGEpe2NvbnN0IGQ9W107cmV0dXJuIHRoaXMuc2Nyb2xsQ29udGFpbmVycy5mb3JFYWNoKChoLGYpPT57dGhp'@; put 'cy5fc2Nyb2xsYWJsZUNvbnRhaW5zRWxlbWVudChmLGEpJiZkLnB1c2goZil9KSxkfV9nZXRXaW5kb3coKXtyZXR1cm4gdGhpcy5fZG9jdW1lbnQuZGVmYXVsdFZpZXd8fHdpbmRvd31fc2Nyb2xsYWJsZUNvbnRhaW5zRWxlbWVudChhLGQpe2xldCBoPUVkKGQpLGY9YS5nZXRFbGVtZW50UmVm'@; put 'KCkubmF0aXZlRWxlbWVudDtkb3tpZihoPT1mKXJldHVybiEwfXdoaWxlKGg9aC5wYXJlbnRFbGVtZW50KTtyZXR1cm4hMX1fYWRkR2xvYmFsTGlzdGVuZXIoKXt0aGlzLl9nbG9iYWxTdWJzY3JpcHRpb249dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT54ZCh0aGlzLl9nZXRX'@; put 'aW5kb3coKS5kb2N1bWVudCwic2Nyb2xsIikuc3Vic2NyaWJlKCgpPT50aGlzLl9zY3JvbGxlZC5uZXh0KCkpKX1fcmVtb3ZlR2xvYmFsTGlzdGVuZXIoKXt0aGlzLl9nbG9iYWxTdWJzY3JpcHRpb24mJih0aGlzLl9nbG9iYWxTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9nbG9i'@; put 'YWxTdWJzY3JpcHRpb249bnVsbCl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoQ3IoR2EpLENyKFR4KSxDcihtbyw4KSl9fXN0YXRpY3t0aGlzLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhYyxwcm92aWRlZEluOiJy'@; put 'b290In0pfX1yZXR1cm4gY30pKCksbjFlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZil7dGhpcy5lbGVtZW50UmVmPWEsdGhpcy5zY3JvbGxEaXNwYXRjaGVyPWQsdGhpcy5uZ1pvbmU9aCx0aGlzLmRpcj1mLHRoaXMuX2Rlc3Ryb3llZD1uZXcgR24sdGhpcy5fZWxlbWVudFNj'@; put 'cm9sbGVkPW5ldyBRdCh2PT50aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+eGQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsInNjcm9sbCIpLnBpcGUoSDAodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKHYpKSl9bmdPbkluaXQoKXt0aGlzLnNjcm9sbERpc3BhdGNo'@; put 'ZXIucmVnaXN0ZXIodGhpcyl9bmdPbkRlc3Ryb3koKXt0aGlzLnNjcm9sbERpc3BhdGNoZXIuZGVyZWdpc3Rlcih0aGlzKSx0aGlzLl9kZXN0cm95ZWQubmV4dCgpLHRoaXMuX2Rlc3Ryb3llZC5jb21wbGV0ZSgpfWVsZW1lbnRTY3JvbGxlZCgpe3JldHVybiB0aGlzLl9lbGVtZW50U2Nyb2xs'@; put 'ZWR9Z2V0RWxlbWVudFJlZigpe3JldHVybiB0aGlzLmVsZW1lbnRSZWZ9c2Nyb2xsVG8oYSl7Y29uc3QgZD10aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxoPXRoaXMuZGlyJiYicnRsIj09dGhpcy5kaXIudmFsdWU7bnVsbD09YS5sZWZ0JiYoYS5sZWZ0PWg/YS5lbmQ6YS5zdGFydCks'@; put 'bnVsbD09YS5yaWdodCYmKGEucmlnaHQ9aD9hLnN0YXJ0OmEuZW5kKSxudWxsIT1hLmJvdHRvbSYmKGEudG9wPWQuc2Nyb2xsSGVpZ2h0LWQuY2xpZW50SGVpZ2h0LWEuYm90dG9tKSxoJiZreCgpIT1DcC5OT1JNQUw/KG51bGwhPWEubGVmdCYmKGEucmlnaHQ9ZC5zY3JvbGxXaWR0aC1kLmNs'@; put 'aWVudFdpZHRoLWEubGVmdCksa3goKT09Q3AuSU5WRVJURUQ/YS5sZWZ0PWEucmlnaHQ6a3goKT09Q3AuTkVHQVRFRCYmKGEubGVmdD1hLnJpZ2h0Py1hLnJpZ2h0OmEucmlnaHQpKTpudWxsIT1hLnJpZ2h0JiYoYS5sZWZ0PWQuc2Nyb2xsV2lkdGgtZC5jbGllbnRXaWR0aC1hLnJpZ2h0KSx0'@; put 'aGlzLl9hcHBseVNjcm9sbFRvT3B0aW9ucyhhKX1fYXBwbHlTY3JvbGxUb09wdGlvbnMoYSl7Y29uc3QgZD10aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDshZnVuY3Rpb24gSVBlKCl7aWYobnVsbD09dTcpe2lmKCJvYmplY3QiIT10eXBlb2YgZG9jdW1lbnR8fCFkb2N1bWVudHx8ImZ1'@; put 'bmN0aW9uIiE9dHlwZW9mIEVsZW1lbnR8fCFFbGVtZW50KXJldHVybiB1Nz0hMSx1NztpZigic2Nyb2xsQmVoYXZpb3IiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlKXU3PSEwO2Vsc2V7Y29uc3QgYz1FbGVtZW50LnByb3RvdHlwZS5zY3JvbGxUbzt1Nz0hIWMmJiEvXHtccypc'@; put 'W25hdGl2ZSBjb2RlXF1ccypcfS8udGVzdChjLnRvU3RyaW5nKCkpfX1yZXR1cm4gdTd9KCk/KG51bGwhPWEudG9wJiYoZC5zY3JvbGxUb3A9YS50b3ApLG51bGwhPWEubGVmdCYmKGQuc2Nyb2xsTGVmdD1hLmxlZnQpKTpkLnNjcm9sbFRvKGEpfW1lYXN1cmVTY3JvbGxPZmZzZXQoYSl7Y29u'@; put 'c3QgZD0ibGVmdCIsaD0icmlnaHQiLGY9dGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7aWYoInRvcCI9PWEpcmV0dXJuIGYuc2Nyb2xsVG9wO2lmKCJib3R0b20iPT1hKXJldHVybiBmLnNjcm9sbEhlaWdodC1mLmNsaWVudEhlaWdodC1mLnNjcm9sbFRvcDtjb25zdCB2PXRoaXMuZGly'@; put 'JiYicnRsIj09dGhpcy5kaXIudmFsdWU7cmV0dXJuInN0YXJ0Ij09YT9hPXY/aDpkOiJlbmQiPT1hJiYoYT12P2Q6aCksdiYma3goKT09Q3AuSU5WRVJURUQ/YT09ZD9mLnNjcm9sbFdpZHRoLWYuY2xpZW50V2lkdGgtZi5zY3JvbGxMZWZ0OmYuc2Nyb2xsTGVmdDp2JiZreCgpPT1DcC5ORUdB'@; put 'VEVEP2E9PWQ/Zi5zY3JvbGxMZWZ0K2Yuc2Nyb2xsV2lkdGgtZi5jbGllbnRXaWR0aDotZi5zY3JvbGxMZWZ0OmE9PWQ/Zi5zY3JvbGxMZWZ0OmYuc2Nyb2xsV2lkdGgtZi5jbGllbnRXaWR0aC1mLnNjcm9sbExlZnR9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBu'@; put 'ZXcoZHx8YykoJGUoUWkpLCRlKHhiKSwkZShHYSksJGUoZG0sOCkpfX1zdGF0aWN7dGhpcy5cdTAyNzVkaXI9RXIoe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwiY2RrLXNjcm9sbGFibGUiLCIiXSxbIiIsImNka1Njcm9sbGFibGUiLCIiXV0sc3RhbmRhbG9uZTohMH0pfX1yZXR1cm4gY30pKCks'@; put 'Ukw9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCl7dGhpcy5fcGxhdGZvcm09YSx0aGlzLl9jaGFuZ2U9bmV3IEduLHRoaXMuX2NoYW5nZUxpc3RlbmVyPWY9Pnt0aGlzLl9jaGFuZ2UubmV4dChmKX0sdGhpcy5fZG9jdW1lbnQ9aCxkLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57aWYo'@; put 'YS5pc0Jyb3dzZXIpe2NvbnN0IGY9dGhpcy5fZ2V0V2luZG93KCk7Zi5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuX2NoYW5nZUxpc3RlbmVyKSxmLmFkZEV2ZW50TGlzdGVuZXIoIm9yaWVudGF0aW9uY2hhbmdlIix0aGlzLl9jaGFuZ2VMaXN0ZW5lcil9dGhpcy5jaGFuZ2UoKS5z'@; put 'dWJzY3JpYmUoKCk9PnRoaXMuX3ZpZXdwb3J0U2l6ZT1udWxsKX0pfW5nT25EZXN0cm95KCl7aWYodGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyKXtjb25zdCBhPXRoaXMuX2dldFdpbmRvdygpO2EucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9jaGFuZ2VMaXN0ZW5lciksYS5y'@; put 'ZW1vdmVFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsdGhpcy5fY2hhbmdlTGlzdGVuZXIpfXRoaXMuX2NoYW5nZS5jb21wbGV0ZSgpfWdldFZpZXdwb3J0U2l6ZSgpe3RoaXMuX3ZpZXdwb3J0U2l6ZXx8dGhpcy5fdXBkYXRlVmlld3BvcnRTaXplKCk7Y29uc3QgYT17d2lkdGg6'@; put 'dGhpcy5fdmlld3BvcnRTaXplLndpZHRoLGhlaWdodDp0aGlzLl92aWV3cG9ydFNpemUuaGVpZ2h0fTtyZXR1cm4gdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyfHwodGhpcy5fdmlld3BvcnRTaXplPW51bGwpLGF9Z2V0Vmlld3BvcnRSZWN0KCl7Y29uc3QgYT10aGlzLmdldFZpZXdwb3J0U2Ny'@; put 'b2xsUG9zaXRpb24oKSx7d2lkdGg6ZCxoZWlnaHQ6aH09dGhpcy5nZXRWaWV3cG9ydFNpemUoKTtyZXR1cm57dG9wOmEudG9wLGxlZnQ6YS5sZWZ0LGJvdHRvbTphLnRvcCtoLHJpZ2h0OmEubGVmdCtkLGhlaWdodDpoLHdpZHRoOmR9fWdldFZpZXdwb3J0U2Nyb2xsUG9zaXRpb24oKXtpZigh'@; put 'dGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyKXJldHVybnt0b3A6MCxsZWZ0OjB9O2NvbnN0IGE9dGhpcy5fZG9jdW1lbnQsZD10aGlzLl9nZXRXaW5kb3coKSxoPWEuZG9jdW1lbnRFbGVtZW50LGY9aC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm57dG9wOi1mLnRvcHx8YS5ib2R5LnNj'@; put 'cm9sbFRvcHx8ZC5zY3JvbGxZfHxoLnNjcm9sbFRvcHx8MCxsZWZ0Oi1mLmxlZnR8fGEuYm9keS5zY3JvbGxMZWZ0fHxkLnNjcm9sbFh8fGguc2Nyb2xsTGVmdHx8MH19Y2hhbmdlKGE9MjApe3JldHVybiBhPjA/dGhpcy5fY2hhbmdlLnBpcGUoU1koYSkpOnRoaXMuX2NoYW5nZX1fZ2V0V2lu'@; put 'ZG93KCl7cmV0dXJuIHRoaXMuX2RvY3VtZW50LmRlZmF1bHRWaWV3fHx3aW5kb3d9X3VwZGF0ZVZpZXdwb3J0U2l6ZSgpe2NvbnN0IGE9dGhpcy5fZ2V0V2luZG93KCk7dGhpcy5fdmlld3BvcnRTaXplPXRoaXMuX3BsYXRmb3JtLmlzQnJvd3Nlcj97d2lkdGg6YS5pbm5lcldpZHRoLGhlaWdo'@; put 'dDphLmlubmVySGVpZ2h0fTp7d2lkdGg6MCxoZWlnaHQ6MH19c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoQ3IoVHgpLENyKEdhKSxDcihtbyw4KSl9fXN0YXRpY3t0aGlzLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZh'@; put 'Yyxwcm92aWRlZEluOiJyb290In0pfX1yZXR1cm4gY30pKCk7Y29uc3QgcjFlPW5ldyBTdCgiVklSVFVBTF9TQ1JPTExBQkxFIik7bGV0IGkxZT0oKCk9PntjbGFzcyBjIGV4dGVuZHMgbjFle2NvbnN0cnVjdG9yKGEsZCxoLGYpe3N1cGVyKGEsZCxoLGYpfW1lYXN1cmVWaWV3cG9ydFNpemUo'@; put 'YSl7Y29uc3QgZD10aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtyZXR1cm4iaG9yaXpvbnRhbCI9PT1hP2QuY2xpZW50V2lkdGg6ZC5jbGllbnRIZWlnaHR9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUoUWkpLCRlKHhiKSwkZShHYSks'@; put 'JGUoZG0sOCkpfX1zdGF0aWN7dGhpcy5cdTAyNzVkaXI9RXIoe3R5cGU6YyxmZWF0dXJlczpbQ2FdfSl9fXJldHVybiBjfSkoKTtjb25zdCBXRmU9dHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZTwidSI/cTBlOkFGZTtsZXQgRWI9KCgpPT57Y2xhc3MgYyBleHRlbmRzIGkxZXtnZXQgb3Jp'@; put 'ZW50YXRpb24oKXtyZXR1cm4gdGhpcy5fb3JpZW50YXRpb259c2V0IG9yaWVudGF0aW9uKGEpe3RoaXMuX29yaWVudGF0aW9uIT09YSYmKHRoaXMuX29yaWVudGF0aW9uPWEsdGhpcy5fY2FsY3VsYXRlU3BhY2VyU2l6ZSgpKX1jb25zdHJ1Y3RvcihhLGQsaCxmLHYsTSxJLEcpe3N1cGVyKGEs'@; put 'TSxoLHYpLHRoaXMuZWxlbWVudFJlZj1hLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWQsdGhpcy5fc2Nyb2xsU3RyYXRlZ3k9Zix0aGlzLnNjcm9sbGFibGU9Ryx0aGlzLl9wbGF0Zm9ybT1oaShUeCksdGhpcy5fZGV0YWNoZWRTdWJqZWN0PW5ldyBHbix0aGlzLl9yZW5kZXJlZFJhbmdlU3Vi'@; put 'amVjdD1uZXcgR24sdGhpcy5fb3JpZW50YXRpb249InZlcnRpY2FsIix0aGlzLmFwcGVuZE9ubHk9ITEsdGhpcy5zY3JvbGxlZEluZGV4Q2hhbmdlPW5ldyBRdChyZT0+dGhpcy5fc2Nyb2xsU3RyYXRlZ3kuc2Nyb2xsZWRJbmRleENoYW5nZS5zdWJzY3JpYmUodWU9PlByb21pc2UucmVzb2x2'@; put 'ZSgpLnRoZW4oKCk9PnRoaXMubmdab25lLnJ1bigoKT0+cmUubmV4dCh1ZSkpKSkpLHRoaXMucmVuZGVyZWRSYW5nZVN0cmVhbT10aGlzLl9yZW5kZXJlZFJhbmdlU3ViamVjdCx0aGlzLl90b3RhbENvbnRlbnRTaXplPTAsdGhpcy5fdG90YWxDb250ZW50V2lkdGg9IiIsdGhpcy5fdG90YWxD'@; put 'b250ZW50SGVpZ2h0PSIiLHRoaXMuX3JlbmRlcmVkUmFuZ2U9e3N0YXJ0OjAsZW5kOjB9LHRoaXMuX2RhdGFMZW5ndGg9MCx0aGlzLl92aWV3cG9ydFNpemU9MCx0aGlzLl9yZW5kZXJlZENvbnRlbnRPZmZzZXQ9MCx0aGlzLl9yZW5kZXJlZENvbnRlbnRPZmZzZXROZWVkc1Jld3JpdGU9ITEs'@; put 'dGhpcy5faXNDaGFuZ2VEZXRlY3Rpb25QZW5kaW5nPSExLHRoaXMuX3J1bkFmdGVyQ2hhbmdlRGV0ZWN0aW9uPVtdLHRoaXMuX3ZpZXdwb3J0Q2hhbmdlcz1KdC5FTVBUWSx0aGlzLl92aWV3cG9ydENoYW5nZXM9SS5jaGFuZ2UoKS5zdWJzY3JpYmUoKCk9Pnt0aGlzLmNoZWNrVmlld3BvcnRT'@; put 'aXplKCl9KSx0aGlzLnNjcm9sbGFibGV8fCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJjZGstdmlydHVhbC1zY3JvbGxhYmxlIiksdGhpcy5zY3JvbGxhYmxlPXRoaXMpfW5nT25Jbml0KCl7dGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyJiYodGhpcy5zY3Jv'@; put 'bGxhYmxlPT09dGhpcyYmc3VwZXIubmdPbkluaXQoKSx0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e3RoaXMuX21lYXN1cmVWaWV3cG9ydFNpemUoKSx0aGlzLl9zY3JvbGxTdHJhdGVneS5hdHRhY2godGhpcyksdGhpcy5zY3Jv'@; put 'bGxhYmxlLmVsZW1lbnRTY3JvbGxlZCgpLnBpcGUoVDIobnVsbCksU1koMCxXRmUpLEgwKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKT0+dGhpcy5fc2Nyb2xsU3RyYXRlZ3kub25Db250ZW50U2Nyb2xsZWQoKSksdGhpcy5fbWFya0NoYW5nZURldGVjdGlvbk5lZWRlZCgpfSkpKX1u'@; put 'Z09uRGVzdHJveSgpe3RoaXMuZGV0YWNoKCksdGhpcy5fc2Nyb2xsU3RyYXRlZ3kuZGV0YWNoKCksdGhpcy5fcmVuZGVyZWRSYW5nZVN1YmplY3QuY29tcGxldGUoKSx0aGlzLl9kZXRhY2hlZFN1YmplY3QuY29tcGxldGUoKSx0aGlzLl92aWV3cG9ydENoYW5nZXMudW5zdWJzY3JpYmUoKSxz'@; put 'dXBlci5uZ09uRGVzdHJveSgpfWF0dGFjaChhKXt0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3RoaXMuX2Zvck9mPWEsdGhpcy5fZm9yT2YuZGF0YVN0cmVhbS5waXBlKEgwKHRoaXMuX2RldGFjaGVkU3ViamVjdCkpLnN1YnNjcmliZShkPT57Y29uc3QgaD1kLmxlbmd0aDto'@; put 'IT09dGhpcy5fZGF0YUxlbmd0aCYmKHRoaXMuX2RhdGFMZW5ndGg9aCx0aGlzLl9zY3JvbGxTdHJhdGVneS5vbkRhdGFMZW5ndGhDaGFuZ2VkKCkpLHRoaXMuX2RvQ2hhbmdlRGV0ZWN0aW9uKCl9KX0pfWRldGFjaCgpe3RoaXMuX2Zvck9mPW51bGwsdGhpcy5fZGV0YWNoZWRTdWJqZWN0Lm5l'@; put 'eHQoKX1nZXREYXRhTGVuZ3RoKCl7cmV0dXJuIHRoaXMuX2RhdGFMZW5ndGh9Z2V0Vmlld3BvcnRTaXplKCl7cmV0dXJuIHRoaXMuX3ZpZXdwb3J0U2l6ZX1nZXRSZW5kZXJlZFJhbmdlKCl7cmV0dXJuIHRoaXMuX3JlbmRlcmVkUmFuZ2V9bWVhc3VyZUJvdW5kaW5nQ2xpZW50UmVjdFdpdGhT'@; put 'Y3JvbGxPZmZzZXQoYSl7cmV0dXJuIHRoaXMuZ2V0RWxlbWVudFJlZigpLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClbYV19c2V0VG90YWxDb250ZW50U2l6ZShhKXt0aGlzLl90b3RhbENvbnRlbnRTaXplIT09YSYmKHRoaXMuX3RvdGFsQ29udGVudFNpemU9YSx0aGlz'@; put 'Ll9jYWxjdWxhdGVTcGFjZXJTaXplKCksdGhpcy5fbWFya0NoYW5nZURldGVjdGlvbk5lZWRlZCgpKX1zZXRSZW5kZXJlZFJhbmdlKGEpeyhmdW5jdGlvbiBaRmUoYyxsKXtyZXR1cm4gYy5zdGFydD09bC5zdGFydCYmYy5lbmQ9PWwuZW5kfSkodGhpcy5fcmVuZGVyZWRSYW5nZSxhKXx8KHRo'@; put 'aXMuYXBwZW5kT25seSYmKGE9e3N0YXJ0OjAsZW5kOk1hdGgubWF4KHRoaXMuX3JlbmRlcmVkUmFuZ2UuZW5kLGEuZW5kKX0pLHRoaXMuX3JlbmRlcmVkUmFuZ2VTdWJqZWN0Lm5leHQodGhpcy5fcmVuZGVyZWRSYW5nZT1hKSx0aGlzLl9tYXJrQ2hhbmdlRGV0ZWN0aW9uTmVlZGVkKCgpPT50'@; put 'aGlzLl9zY3JvbGxTdHJhdGVneS5vbkNvbnRlbnRSZW5kZXJlZCgpKSl9Z2V0T2Zmc2V0VG9SZW5kZXJlZENvbnRlbnRTdGFydCgpe3JldHVybiB0aGlzLl9yZW5kZXJlZENvbnRlbnRPZmZzZXROZWVkc1Jld3JpdGU/bnVsbDp0aGlzLl9yZW5kZXJlZENvbnRlbnRPZmZzZXR9c2V0UmVuZGVy'@; put 'ZWRDb250ZW50T2Zmc2V0KGEsZD0idG8tc3RhcnQiKXthPXRoaXMuYXBwZW5kT25seSYmInRvLXN0YXJ0Ij09PWQ/MDphO2NvbnN0IGY9Imhvcml6b250YWwiPT10aGlzLm9yaWVudGF0aW9uLHY9Zj8iWCI6IlkiO2xldCBJPWB0cmFuc2xhdGUke3Z9KCR7TnVtYmVyKChmJiZ0aGlzLmRpciYm'@; put 'InJ0bCI9PXRoaXMuZGlyLnZhbHVlPy0xOjEpKmEpfXB4KWA7dGhpcy5fcmVuZGVyZWRDb250ZW50T2Zmc2V0PWEsInRvLWVuZCI9PT1kJiYoSSs9YCB0cmFuc2xhdGUke3Z9KC0xMDAlKWAsdGhpcy5fcmVuZGVyZWRDb250ZW50T2Zmc2V0TmVlZHNSZXdyaXRlPSEwKSx0aGlzLl9yZW5kZXJl'@; put 'ZENvbnRlbnRUcmFuc2Zvcm0hPUkmJih0aGlzLl9yZW5kZXJlZENvbnRlbnRUcmFuc2Zvcm09SSx0aGlzLl9tYXJrQ2hhbmdlRGV0ZWN0aW9uTmVlZGVkKCgpPT57dGhpcy5fcmVuZGVyZWRDb250ZW50T2Zmc2V0TmVlZHNSZXdyaXRlPyh0aGlzLl9yZW5kZXJlZENvbnRlbnRPZmZzZXQtPXRo'@; put 'aXMubWVhc3VyZVJlbmRlcmVkQ29udGVudFNpemUoKSx0aGlzLl9yZW5kZXJlZENvbnRlbnRPZmZzZXROZWVkc1Jld3JpdGU9ITEsdGhpcy5zZXRSZW5kZXJlZENvbnRlbnRPZmZzZXQodGhpcy5fcmVuZGVyZWRDb250ZW50T2Zmc2V0KSk6dGhpcy5fc2Nyb2xsU3RyYXRlZ3kub25SZW5kZXJl'@; put 'ZE9mZnNldENoYW5nZWQoKX0pKX1zY3JvbGxUb09mZnNldChhLGQ9ImF1dG8iKXtjb25zdCBoPXtiZWhhdmlvcjpkfTsiaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uP2guc3RhcnQ9YTpoLnRvcD1hLHRoaXMuc2Nyb2xsYWJsZS5zY3JvbGxUbyhoKX1zY3JvbGxUb0luZGV4KGEsZD0i'@; put 'YXV0byIpe3RoaXMuX3Njcm9sbFN0cmF0ZWd5LnNjcm9sbFRvSW5kZXgoYSxkKX1tZWFzdXJlU2Nyb2xsT2Zmc2V0KGEpe2xldCBkO3JldHVybiBkPXRoaXMuc2Nyb2xsYWJsZT09dGhpcz9oPT5zdXBlci5tZWFzdXJlU2Nyb2xsT2Zmc2V0KGgpOmg9PnRoaXMuc2Nyb2xsYWJsZS5tZWFzdXJl'@; put 'U2Nyb2xsT2Zmc2V0KGgpLE1hdGgubWF4KDAsZChhPz8oImhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbj8ic3RhcnQiOiJ0b3AiKSktdGhpcy5tZWFzdXJlVmlld3BvcnRPZmZzZXQoKSl9bWVhc3VyZVZpZXdwb3J0T2Zmc2V0KGEpe2xldCBkO2NvbnN0IGg9ImxlZnQiLGY9InJpZ2h0'@; put 'Iix2PSJydGwiPT10aGlzLmRpcj8udmFsdWU7ZD0ic3RhcnQiPT1hP3Y/ZjpoOiJlbmQiPT1hP3Y/aDpmOmF8fCgiaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uPyJsZWZ0IjoidG9wIik7Y29uc3QgTT10aGlzLnNjcm9sbGFibGUubWVhc3VyZUJvdW5kaW5nQ2xpZW50UmVjdFdpdGhT'@; put 'Y3JvbGxPZmZzZXQoZCk7cmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpW2RdLU19bWVhc3VyZVJlbmRlcmVkQ29udGVudFNpemUoKXtjb25zdCBhPXRoaXMuX2NvbnRlbnRXcmFwcGVyLm5hdGl2ZUVsZW1lbnQ7cmV0dXJuImhvcml6'@; put 'b250YWwiPT09dGhpcy5vcmllbnRhdGlvbj9hLm9mZnNldFdpZHRoOmEub2Zmc2V0SGVpZ2h0fW1lYXN1cmVSYW5nZVNpemUoYSl7cmV0dXJuIHRoaXMuX2Zvck9mP3RoaXMuX2Zvck9mLm1lYXN1cmVSYW5nZVNpemUoYSx0aGlzLm9yaWVudGF0aW9uKTowfWNoZWNrVmlld3BvcnRTaXplKCl7'@; put 'dGhpcy5fbWVhc3VyZVZpZXdwb3J0U2l6ZSgpLHRoaXMuX3Njcm9sbFN0cmF0ZWd5Lm9uRGF0YUxlbmd0aENoYW5nZWQoKX1fbWVhc3VyZVZpZXdwb3J0U2l6ZSgpe3RoaXMuX3ZpZXdwb3J0U2l6ZT10aGlzLnNjcm9sbGFibGUubWVhc3VyZVZpZXdwb3J0U2l6ZSh0aGlzLm9yaWVudGF0aW9u'@; put 'KX1fbWFya0NoYW5nZURldGVjdGlvbk5lZWRlZChhKXthJiZ0aGlzLl9ydW5BZnRlckNoYW5nZURldGVjdGlvbi5wdXNoKGEpLHRoaXMuX2lzQ2hhbmdlRGV0ZWN0aW9uUGVuZGluZ3x8KHRoaXMuX2lzQ2hhbmdlRGV0ZWN0aW9uUGVuZGluZz0hMCx0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5n'@; put 'dWxhcigoKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e3RoaXMuX2RvQ2hhbmdlRGV0ZWN0aW9uKCl9KSkpfV9kb0NoYW5nZURldGVjdGlvbigpe3RoaXMuX2lzQ2hhbmdlRGV0ZWN0aW9uUGVuZGluZz0hMSx0aGlzLl9jb250ZW50V3JhcHBlci5uYXRpdmVFbGVtZW50LnN0eWxlLnRy'@; put 'YW5zZm9ybT10aGlzLl9yZW5kZXJlZENvbnRlbnRUcmFuc2Zvcm0sdGhpcy5uZ1pvbmUucnVuKCgpPT50aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSk7Y29uc3QgYT10aGlzLl9ydW5BZnRlckNoYW5nZURldGVjdGlvbjt0aGlzLl9ydW5BZnRlckNoYW5nZURldGVjdGlv'@; put 'bj1bXTtmb3IoY29uc3QgZCBvZiBhKWQoKX1fY2FsY3VsYXRlU3BhY2VyU2l6ZSgpe3RoaXMuX3RvdGFsQ29udGVudEhlaWdodD0iaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uPyIiOmAke3RoaXMuX3RvdGFsQ29udGVudFNpemV9cHhgLHRoaXMuX3RvdGFsQ29udGVudFdpZHRoPSJo'@; put 'b3Jpem9udGFsIj09PXRoaXMub3JpZW50YXRpb24/YCR7dGhpcy5fdG90YWxDb250ZW50U2l6ZX1weGA6IiJ9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUoUWkpLCRlKHhvKSwkZShHYSksJGUodDFlLDgpLCRlKGRtLDgpLCRlKHhiKSwkZShS'@; put 'TCksJGUocjFlLDgpKX19c3RhdGlje3RoaXMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oZCxoKXtpZigxJmQmJkZhKFZGZSw3KSwyJmQpe2xldCBmO3lpKGY9YmkoKSkmJihoLl9jb250'@; put 'ZW50V3JhcHBlcj1mLmZpcnN0KX19LGhvc3RBdHRyczpbMSwiY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0Il0saG9zdFZhcnM6NCxob3N0QmluZGluZ3M6ZnVuY3Rpb24oZCxoKXsyJmQmJlRyKCJjZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24taG9yaXpvbnRhbCIsImhvcml6b250'@; put 'YWwiPT09aC5vcmllbnRhdGlvbikoImNkay12aXJ0dWFsLXNjcm9sbC1vcmllbnRhdGlvbi12ZXJ0aWNhbCIsImhvcml6b250YWwiIT09aC5vcmllbnRhdGlvbil9LGlucHV0czp7b3JpZW50YXRpb246Im9yaWVudGF0aW9uIixhcHBlbmRPbmx5OltWbi5IYXNEZWNvcmF0b3JJbnB1dFRyYW5z'@; put 'Zm9ybSwiYXBwZW5kT25seSIsImFwcGVuZE9ubHkiLHMxXX0sb3V0cHV0czp7c2Nyb2xsZWRJbmRleENoYW5nZToic2Nyb2xsZWRJbmRleENoYW5nZSJ9LHN0YW5kYWxvbmU6ITAsZmVhdHVyZXM6W3VhKFt7cHJvdmlkZTpuMWUsdXNlRmFjdG9yeTooYSxkKT0+YXx8ZCxkZXBzOltbbmV3IFIx'@; put 'LG5ldyBzNShyMWUpXSxjXX1dKSx6bCxDYSxRSV0sbmdDb250ZW50U2VsZWN0b3JzOkJGZSxkZWNsczo0LHZhcnM6NCxjb25zdHM6W1siY29udGVudFdyYXBwZXIiLCIiXSxbMSwiY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlciJdLFsxLCJjZGstdmlydHVhbC1zY3JvbGwtc3Bh'@; put 'Y2VyIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGQsaCl7MSZkJiYoc2EoKSxkZSgwLCJkaXYiLDEsMCksV3IoMiksaGUoKSxXdCgzLCJkaXYiLDIpKSwyJmQmJihmZSgzKSxOMSgid2lkdGgiLGguX3RvdGFsQ29udGVudFdpZHRoKSgiaGVpZ2h0IixoLl90b3RhbENvbnRlbnRIZWlnaHQpKX0sc3R5'@; put 'bGVzOlsiY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0e2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9LmNkay12aXJ0dWFsLXNjcm9sbGFibGV7b3ZlcmZsb3c6YXV0bzt3aWxsLWNoYW5nZTpzY3JvbGwtcG9zaXRpb247Y29udGFpbjpz'@; put 'dHJpY3Q7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9LmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2NvbnRhaW46Y29udGVudH1bZGlyPXJ0bF0gLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBw'@; put 'ZXJ7cmlnaHQ6MDtsZWZ0OmF1dG99LmNkay12aXJ0dWFsLXNjcm9sbC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIC5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVye21pbi1oZWlnaHQ6MTAwJX0uY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLWhvcml6b250YWwgLmNkay12'@; put 'aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXI+ZGw6bm90KFtjZGtWaXJ0dWFsRm9yXSksLmNkay12aXJ0dWFsLXNjcm9sbC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIC5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyPm9sOm5vdChbY2RrVmlydHVhbEZvcl0pLC5jZGstdmly'@; put 'dHVhbC1zY3JvbGwtb3JpZW50YXRpb24taG9yaXpvbnRhbCAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcj50YWJsZTpub3QoW2Nka1ZpcnR1YWxGb3JdKSwuY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLWhvcml6b250YWwgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250'@; put 'ZW50LXdyYXBwZXI+dWw6bm90KFtjZGtWaXJ0dWFsRm9yXSl7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowO21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjA7Ym9yZGVyLWxlZnQtd2lkdGg6MDtib3JkZXItcmlnaHQtd2lkdGg6MDtvdXRsaW5lOm5vbmV9LmNkay12aXJ0dWFsLXNj'@; put 'cm9sbC1vcmllbnRhdGlvbi12ZXJ0aWNhbCAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcnttaW4td2lkdGg6MTAwJX0uY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLXZlcnRpY2FsIC5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyPmRsOm5vdChbY2Rr'@; put 'VmlydHVhbEZvcl0pLC5jZGstdmlydHVhbC1zY3JvbGwtb3JpZW50YXRpb24tdmVydGljYWwgLmNkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXI+b2w6bm90KFtjZGtWaXJ0dWFsRm9yXSksLmNkay12aXJ0dWFsLXNjcm9sbC1vcmllbnRhdGlvbi12ZXJ0aWNhbCAuY2RrLXZpcnR1'@; put 'YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcj50YWJsZTpub3QoW2Nka1ZpcnR1YWxGb3JdKSwuY2RrLXZpcnR1YWwtc2Nyb2xsLW9yaWVudGF0aW9uLXZlcnRpY2FsIC5jZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyPnVsOm5vdChbY2RrVmlydHVhbEZvcl0pe3BhZGRpbmctdG9w'@; put 'OjA7cGFkZGluZy1ib3R0b206MDttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowO2JvcmRlci10b3Atd2lkdGg6MDtib3JkZXItYm90dG9tLXdpZHRoOjA7b3V0bGluZTpub25lfS5jZGstdmlydHVhbC1zY3JvbGwtc3BhY2Vye2hlaWdodDoxcHg7dHJhbnNmb3JtLW9yaWdpbjowIDA7Zmxl'@; put 'eDowIDAgYXV0b31bZGlyPXJ0bF0gLmNkay12aXJ0dWFsLXNjcm9sbC1zcGFjZXJ7dHJhbnNmb3JtLW9yaWdpbjoxMDAlIDB9Il0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSl9fXJldHVybiBjfSkoKTtmdW5jdGlvbiBhMWUoYyxsLGEpe2lmKCFhLmdldEJvdW5kaW5nQ2xp'@; put 'ZW50UmVjdClyZXR1cm4gMDtjb25zdCBoPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuImhvcml6b250YWwiPT09Yz8ic3RhcnQiPT09bD9oLmxlZnQ6aC5yaWdodDoic3RhcnQiPT09bD9oLnRvcDpoLmJvdHRvbX1sZXQgTEw9KCgpPT57Y2xhc3MgY3tnZXQgY2RrVmlydHVhbEZv'@; put 'ck9mKCl7cmV0dXJuIHRoaXMuX2Nka1ZpcnR1YWxGb3JPZn1zZXQgY2RrVmlydHVhbEZvck9mKGEpe3RoaXMuX2Nka1ZpcnR1YWxGb3JPZj1hLGZ1bmN0aW9uIEhGZShjKXtyZXR1cm4gYyYmImZ1bmN0aW9uIj09dHlwZW9mIGMuY29ubmVjdCYmIShjIGluc3RhbmNlb2YgS1opfShhKT90aGlz'@; put 'Ll9kYXRhU291cmNlQ2hhbmdlcy5uZXh0KGEpOnRoaXMuX2RhdGFTb3VyY2VDaGFuZ2VzLm5leHQobmV3IE5GZShXTShhKT9hOkFycmF5LmZyb20oYXx8W10pKSl9Z2V0IGNka1ZpcnR1YWxGb3JUcmFja0J5KCl7cmV0dXJuIHRoaXMuX2Nka1ZpcnR1YWxGb3JUcmFja0J5fXNldCBjZGtWaXJ0'@; put 'dWFsRm9yVHJhY2tCeShhKXt0aGlzLl9uZWVkc1VwZGF0ZT0hMCx0aGlzLl9jZGtWaXJ0dWFsRm9yVHJhY2tCeT1hPyhkLGgpPT5hKGQrKHRoaXMuX3JlbmRlcmVkUmFuZ2U/dGhpcy5fcmVuZGVyZWRSYW5nZS5zdGFydDowKSxoKTp2b2lkIDB9c2V0IGNka1ZpcnR1YWxGb3JUZW1wbGF0ZShh'@; put 'KXthJiYodGhpcy5fbmVlZHNVcGRhdGU9ITAsdGhpcy5fdGVtcGxhdGU9YSl9Z2V0IGNka1ZpcnR1YWxGb3JUZW1wbGF0ZUNhY2hlU2l6ZSgpe3JldHVybiB0aGlzLl92aWV3UmVwZWF0ZXIudmlld0NhY2hlU2l6ZX1zZXQgY2RrVmlydHVhbEZvclRlbXBsYXRlQ2FjaGVTaXplKGEpe3RoaXMu'@; put 'X3ZpZXdSZXBlYXRlci52aWV3Q2FjaGVTaXplPWQ3KGEpfWNvbnN0cnVjdG9yKGEsZCxoLGYsdixNKXt0aGlzLl92aWV3Q29udGFpbmVyUmVmPWEsdGhpcy5fdGVtcGxhdGU9ZCx0aGlzLl9kaWZmZXJzPWgsdGhpcy5fdmlld1JlcGVhdGVyPWYsdGhpcy5fdmlld3BvcnQ9dix0aGlzLnZpZXdD'@; put 'aGFuZ2U9bmV3IEduLHRoaXMuX2RhdGFTb3VyY2VDaGFuZ2VzPW5ldyBHbix0aGlzLmRhdGFTdHJlYW09dGhpcy5fZGF0YVNvdXJjZUNoYW5nZXMucGlwZShUMihudWxsKSxmdW5jdGlvbiBJRmUoKXtyZXR1cm4gTmkoKGMsbCk9PntsZXQgYSxkPSExO2Muc3Vic2NyaWJlKEhpKGwsaD0+e2Nv'@; put 'bnN0IGY9YTthPWgsZCYmbC5uZXh0KFtmLGhdKSxkPSEwfSkpfSl9KCksajEoKFtJLEddKT0+dGhpcy5fY2hhbmdlRGF0YVNvdXJjZShJLEcpKSxqMGUoMSkpLHRoaXMuX2RpZmZlcj1udWxsLHRoaXMuX25lZWRzVXBkYXRlPSExLHRoaXMuX2Rlc3Ryb3llZD1uZXcgR24sdGhpcy5kYXRhU3Ry'@; put 'ZWFtLnN1YnNjcmliZShJPT57dGhpcy5fZGF0YT1JLHRoaXMuX29uUmVuZGVyZWREYXRhQ2hhbmdlKCl9KSx0aGlzLl92aWV3cG9ydC5yZW5kZXJlZFJhbmdlU3RyZWFtLnBpcGUoSDAodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKEk9Pnt0aGlzLl9yZW5kZXJlZFJhbmdlPUksdGhpcy52'@; put 'aWV3Q2hhbmdlLm9ic2VydmVycy5sZW5ndGgmJk0ucnVuKCgpPT50aGlzLnZpZXdDaGFuZ2UubmV4dCh0aGlzLl9yZW5kZXJlZFJhbmdlKSksdGhpcy5fb25SZW5kZXJlZERhdGFDaGFuZ2UoKX0pLHRoaXMuX3ZpZXdwb3J0LmF0dGFjaCh0aGlzKX1tZWFzdXJlUmFuZ2VTaXplKGEsZCl7aWYo'@; put 'YS5zdGFydD49YS5lbmQpcmV0dXJuIDA7Y29uc3QgaD1hLnN0YXJ0LXRoaXMuX3JlbmRlcmVkUmFuZ2Uuc3RhcnQsZj1hLmVuZC1hLnN0YXJ0O2xldCB2LE07Zm9yKGxldCBJPTA7STxmO0krKyl7Y29uc3QgRz10aGlzLl92aWV3Q29udGFpbmVyUmVmLmdldChJK2gpO2lmKEcmJkcucm9vdE5v'@; put 'ZGVzLmxlbmd0aCl7dj1NPUcucm9vdE5vZGVzWzBdO2JyZWFrfX1mb3IobGV0IEk9Zi0xO0k+LTE7SS0tKXtjb25zdCBHPXRoaXMuX3ZpZXdDb250YWluZXJSZWYuZ2V0KEkraCk7aWYoRyYmRy5yb290Tm9kZXMubGVuZ3RoKXtNPUcucm9vdE5vZGVzW0cucm9vdE5vZGVzLmxlbmd0aC0xXTti'@; put 'cmVha319cmV0dXJuIHYmJk0/YTFlKGQsImVuZCIsTSktYTFlKGQsInN0YXJ0Iix2KTowfW5nRG9DaGVjaygpe2lmKHRoaXMuX2RpZmZlciYmdGhpcy5fbmVlZHNVcGRhdGUpe2NvbnN0IGE9dGhpcy5fZGlmZmVyLmRpZmYodGhpcy5fcmVuZGVyZWRJdGVtcyk7YT90aGlzLl9hcHBseUNoYW5n'@; put 'ZXMoYSk6dGhpcy5fdXBkYXRlQ29udGV4dCgpLHRoaXMuX25lZWRzVXBkYXRlPSExfX1uZ09uRGVzdHJveSgpe3RoaXMuX3ZpZXdwb3J0LmRldGFjaCgpLHRoaXMuX2RhdGFTb3VyY2VDaGFuZ2VzLm5leHQodm9pZCAwKSx0aGlzLl9kYXRhU291cmNlQ2hhbmdlcy5jb21wbGV0ZSgpLHRoaXMu'@; put 'dmlld0NoYW5nZS5jb21wbGV0ZSgpLHRoaXMuX2Rlc3Ryb3llZC5uZXh0KCksdGhpcy5fZGVzdHJveWVkLmNvbXBsZXRlKCksdGhpcy5fdmlld1JlcGVhdGVyLmRldGFjaCgpfV9vblJlbmRlcmVkRGF0YUNoYW5nZSgpe3RoaXMuX3JlbmRlcmVkUmFuZ2UmJih0aGlzLl9yZW5kZXJlZEl0ZW1z'@; put 'PXRoaXMuX2RhdGEuc2xpY2UodGhpcy5fcmVuZGVyZWRSYW5nZS5zdGFydCx0aGlzLl9yZW5kZXJlZFJhbmdlLmVuZCksdGhpcy5fZGlmZmVyfHwodGhpcy5fZGlmZmVyPXRoaXMuX2RpZmZlcnMuZmluZCh0aGlzLl9yZW5kZXJlZEl0ZW1zKS5jcmVhdGUoKGEsZCk9PnRoaXMuY2RrVmlydHVh'@; put 'bEZvclRyYWNrQnk/dGhpcy5jZGtWaXJ0dWFsRm9yVHJhY2tCeShhLGQpOmQpKSx0aGlzLl9uZWVkc1VwZGF0ZT0hMCl9X2NoYW5nZURhdGFTb3VyY2UoYSxkKXtyZXR1cm4gYSYmYS5kaXNjb25uZWN0KHRoaXMpLHRoaXMuX25lZWRzVXBkYXRlPSEwLGQ/ZC5jb25uZWN0KHRoaXMpOmRzKCl9'@; put 'X3VwZGF0ZUNvbnRleHQoKXtjb25zdCBhPXRoaXMuX2RhdGEubGVuZ3RoO2xldCBkPXRoaXMuX3ZpZXdDb250YWluZXJSZWYubGVuZ3RoO2Zvcig7ZC0tOyl7Y29uc3QgaD10aGlzLl92aWV3Q29udGFpbmVyUmVmLmdldChkKTtoLmNvbnRleHQuaW5kZXg9dGhpcy5fcmVuZGVyZWRSYW5nZS5z'@; put 'dGFydCtkLGguY29udGV4dC5jb3VudD1hLHRoaXMuX3VwZGF0ZUNvbXB1dGVkQ29udGV4dFByb3BlcnRpZXMoaC5jb250ZXh0KSxoLmRldGVjdENoYW5nZXMoKX19X2FwcGx5Q2hhbmdlcyhhKXt0aGlzLl92aWV3UmVwZWF0ZXIuYXBwbHlDaGFuZ2VzKGEsdGhpcy5fdmlld0NvbnRhaW5lclJl'@; put 'ZiwoZix2LE0pPT50aGlzLl9nZXRFbWJlZGRlZFZpZXdBcmdzKGYsTSksZj0+Zi5pdGVtKSxhLmZvckVhY2hJZGVudGl0eUNoYW5nZShmPT57dGhpcy5fdmlld0NvbnRhaW5lclJlZi5nZXQoZi5jdXJyZW50SW5kZXgpLmNvbnRleHQuJGltcGxpY2l0PWYuaXRlbX0pO2NvbnN0IGQ9dGhpcy5f'@; put 'ZGF0YS5sZW5ndGg7bGV0IGg9dGhpcy5fdmlld0NvbnRhaW5lclJlZi5sZW5ndGg7Zm9yKDtoLS07KXtjb25zdCBmPXRoaXMuX3ZpZXdDb250YWluZXJSZWYuZ2V0KGgpO2YuY29udGV4dC5pbmRleD10aGlzLl9yZW5kZXJlZFJhbmdlLnN0YXJ0K2gsZi5jb250ZXh0LmNvdW50PWQsdGhpcy5f'@; put 'dXBkYXRlQ29tcHV0ZWRDb250ZXh0UHJvcGVydGllcyhmLmNvbnRleHQpfX1fdXBkYXRlQ29tcHV0ZWRDb250ZXh0UHJvcGVydGllcyhhKXthLmZpcnN0PTA9PT1hLmluZGV4LGEubGFzdD1hLmluZGV4PT09YS5jb3VudC0xLGEuZXZlbj1hLmluZGV4JTI9PTAsYS5vZGQ9IWEuZXZlbn1fZ2V0'@; put 'RW1iZWRkZWRWaWV3QXJncyhhLGQpe3JldHVybnt0ZW1wbGF0ZVJlZjp0aGlzLl90ZW1wbGF0ZSxjb250ZXh0OnskaW1wbGljaXQ6YS5pdGVtLGNka1ZpcnR1YWxGb3JPZjp0aGlzLl9jZGtWaXJ0dWFsRm9yT2YsaW5kZXg6LTEsY291bnQ6LTEsZmlyc3Q6ITEsbGFzdDohMSxvZGQ6ITEsZXZl'@; put 'bjohMX0saW5kZXg6ZH19c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUoVHMpLCRlKHdsKSwkZShxNSksJGUoTVkpLCRlKEViLDQpLCRlKEdhKSl9fXN0YXRpY3t0aGlzLlx1MDI3NWRpcj1Fcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJjZGtW'@; put 'aXJ0dWFsRm9yIiwiIiwiY2RrVmlydHVhbEZvck9mIiwiIl1dLGlucHV0czp7Y2RrVmlydHVhbEZvck9mOiJjZGtWaXJ0dWFsRm9yT2YiLGNka1ZpcnR1YWxGb3JUcmFja0J5OiJjZGtWaXJ0dWFsRm9yVHJhY2tCeSIsY2RrVmlydHVhbEZvclRlbXBsYXRlOiJjZGtWaXJ0dWFsRm9yVGVtcGxh'@; put 'dGUiLGNka1ZpcnR1YWxGb3JUZW1wbGF0ZUNhY2hlU2l6ZToiY2RrVmlydHVhbEZvclRlbXBsYXRlQ2FjaGVTaXplIn0sc3RhbmRhbG9uZTohMCxmZWF0dXJlczpbdWEoW3twcm92aWRlOk1ZLHVzZUNsYXNzOmUxZX1dKV19KX19cmV0dXJuIGN9KSgpLFlGZT0oKCk9PntjbGFzcyBje3N0YXRp'@; put 'Y3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpfX1zdGF0aWN7dGhpcy5cdTAyNzVtb2Q9QWkoe3R5cGU6Y30pfXN0YXRpY3t0aGlzLlx1MDI3NWluaj1Bcih7fSl9fXJldHVybiBjfSkoKTtmdW5jdGlvbiB4WShjLGwsYSl7Zm9yKGxldCBkIGluIGwpaWYobC5o'@; put 'YXNPd25Qcm9wZXJ0eShkKSl7Y29uc3QgaD1sW2RdO2g/Yy5zZXRQcm9wZXJ0eShkLGgsYT8uaGFzKGQpPyJpbXBvcnRhbnQiOiIiKTpjLnJlbW92ZVByb3BlcnR5KGQpfXJldHVybiBjfWZ1bmN0aW9uIFRiKGMsbCl7Y29uc3QgYT1sPyIiOiJub25lIjt4WShjLnN0eWxlLHsidG91Y2gtYWN0'@; put 'aW9uIjpsPyIiOiJub25lIiwiLXdlYmtpdC11c2VyLWRyYWciOmw/IiI6Im5vbmUiLCItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3IiOmw/IiI6InRyYW5zcGFyZW50IiwidXNlci1zZWxlY3QiOmEsIi1tcy11c2VyLXNlbGVjdCI6YSwiLXdlYmtpdC11c2VyLXNlbGVjdCI6YSwiLW1vei11'@; put 'c2VyLXNlbGVjdCI6YX0pfWZ1bmN0aW9uIHMxZShjLGwsYSl7eFkoYy5zdHlsZSx7cG9zaXRpb246bD8iIjoiZml4ZWQiLHRvcDpsPyIiOiIwIixvcGFjaXR5Omw/IiI6IjAiLGxlZnQ6bD8iIjoiLTk5OWVtIn0sYSl9ZnVuY3Rpb24gT0woYyxsKXtyZXR1cm4gbCYmIm5vbmUiIT1sP2MrIiAi'@; put 'K2w6Y31mdW5jdGlvbiBvMWUoYyxsKXtjLnN0eWxlLndpZHRoPWAke2wud2lkdGh9cHhgLGMuc3R5bGUuaGVpZ2h0PWAke2wuaGVpZ2h0fXB4YCxjLnN0eWxlLnRyYW5zZm9ybT1QTChsLmxlZnQsbC50b3ApfWZ1bmN0aW9uIFBMKGMsbCl7cmV0dXJuYHRyYW5zbGF0ZTNkKCR7TWF0aC5yb3Vu'@; put 'ZChjKX1weCwgJHtNYXRoLnJvdW5kKGwpfXB4LCAwKWB9ZnVuY3Rpb24gRVkoYyl7Y29uc3QgbD1jLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybnt0b3A6bC50b3AscmlnaHQ6bC5yaWdodCxib3R0b206bC5ib3R0b20sbGVmdDpsLmxlZnQsd2lkdGg6bC53aWR0aCxoZWlnaHQ6bC5o'@; put 'ZWlnaHQseDpsLngseTpsLnl9fWZ1bmN0aW9uIFRZKGMsbCxhKXtjb25zdHt0b3A6ZCxib3R0b206aCxsZWZ0OmYscmlnaHQ6dn09YztyZXR1cm4gYT49ZCYmYTw9aCYmbD49ZiYmbDw9dn1mdW5jdGlvbiBJeChjLGwsYSl7Yy50b3ArPWwsYy5ib3R0b209Yy50b3ArYy5oZWlnaHQsYy5sZWZ0'@; put 'Kz1hLGMucmlnaHQ9Yy5sZWZ0K2Mud2lkdGh9ZnVuY3Rpb24gbDFlKGMsbCxhLGQpe2NvbnN0e3RvcDpoLHJpZ2h0OmYsYm90dG9tOnYsbGVmdDpNLHdpZHRoOkksaGVpZ2h0Okd9PWMscmU9SSpsLHVlPUcqbDtyZXR1cm4gZD5oLXVlJiZkPHYrdWUmJmE+TS1yZSYmYTxmK3JlfWNsYXNzIGMx'@; put 'ZXtjb25zdHJ1Y3RvcihsKXt0aGlzLl9kb2N1bWVudD1sLHRoaXMucG9zaXRpb25zPW5ldyBNYXB9Y2xlYXIoKXt0aGlzLnBvc2l0aW9ucy5jbGVhcigpfWNhY2hlKGwpe3RoaXMuY2xlYXIoKSx0aGlzLnBvc2l0aW9ucy5zZXQodGhpcy5fZG9jdW1lbnQse3Njcm9sbFBvc2l0aW9uOnRoaXMu'@; put 'Z2V0Vmlld3BvcnRTY3JvbGxQb3NpdGlvbigpfSksbC5mb3JFYWNoKGE9Pnt0aGlzLnBvc2l0aW9ucy5zZXQoYSx7c2Nyb2xsUG9zaXRpb246e3RvcDphLnNjcm9sbFRvcCxsZWZ0OmEuc2Nyb2xsTGVmdH0sY2xpZW50UmVjdDpFWShhKX0pfSl9aGFuZGxlU2Nyb2xsKGwpe2NvbnN0IGE9a0wo'@; put 'bCksZD10aGlzLnBvc2l0aW9ucy5nZXQoYSk7aWYoIWQpcmV0dXJuIG51bGw7Y29uc3QgaD1kLnNjcm9sbFBvc2l0aW9uO2xldCBmLHY7aWYoYT09PXRoaXMuX2RvY3VtZW50KXtjb25zdCBHPXRoaXMuZ2V0Vmlld3BvcnRTY3JvbGxQb3NpdGlvbigpO2Y9Ry50b3Asdj1HLmxlZnR9ZWxzZSBm'@; put 'PWEuc2Nyb2xsVG9wLHY9YS5zY3JvbGxMZWZ0O2NvbnN0IE09aC50b3AtZixJPWgubGVmdC12O3JldHVybiB0aGlzLnBvc2l0aW9ucy5mb3JFYWNoKChHLHJlKT0+e0cuY2xpZW50UmVjdCYmYSE9PXJlJiZhLmNvbnRhaW5zKHJlKSYmSXgoRy5jbGllbnRSZWN0LE0sSSl9KSxoLnRvcD1mLGgu'@; put 'bGVmdD12LHt0b3A6TSxsZWZ0Okl9fWdldFZpZXdwb3J0U2Nyb2xsUG9zaXRpb24oKXtyZXR1cm57dG9wOndpbmRvdy5zY3JvbGxZLGxlZnQ6d2luZG93LnNjcm9sbFh9fX1mdW5jdGlvbiB1MWUoYyl7Y29uc3QgbD1jLmNsb25lTm9kZSghMCksYT1sLnF1ZXJ5U2VsZWN0b3JBbGwoIltpZF0i'@; put 'KSxkPWMubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtsLnJlbW92ZUF0dHJpYnV0ZSgiaWQiKTtmb3IobGV0IGg9MDtoPGEubGVuZ3RoO2grKylhW2hdLnJlbW92ZUF0dHJpYnV0ZSgiaWQiKTtyZXR1cm4iY2FudmFzIj09PWQ/ZjFlKGMsbCk6KCJpbnB1dCI9PT1kfHwic2VsZWN0Ij09PWR8fCJ0'@; put 'ZXh0YXJlYSI9PT1kKSYmaDFlKGMsbCksZDFlKCJjYW52YXMiLGMsbCxmMWUpLGQxZSgiaW5wdXQsIHRleHRhcmVhLCBzZWxlY3QiLGMsbCxoMWUpLGx9ZnVuY3Rpb24gZDFlKGMsbCxhLGQpe2NvbnN0IGg9bC5xdWVyeVNlbGVjdG9yQWxsKGMpO2lmKGgubGVuZ3RoKXtjb25zdCBmPWEucXVl'@; put 'cnlTZWxlY3RvckFsbChjKTtmb3IobGV0IHY9MDt2PGgubGVuZ3RoO3YrKylkKGhbdl0sZlt2XSl9fWxldCAkRmU9MDtmdW5jdGlvbiBoMWUoYyxsKXsiZmlsZSIhPT1sLnR5cGUmJihsLnZhbHVlPWMudmFsdWUpLCJyYWRpbyI9PT1sLnR5cGUmJmwubmFtZSYmKGwubmFtZT1gbWF0LWNsb25l'@; put 'LSR7bC5uYW1lfS0keyRGZSsrfWApfWZ1bmN0aW9uIGYxZShjLGwpe2NvbnN0IGE9bC5nZXRDb250ZXh0KCIyZCIpO2lmKGEpdHJ5e2EuZHJhd0ltYWdlKGMsMCwwKX1jYXRjaHt9fWZ1bmN0aW9uIHAxZShjLGwpe2NvbnN0IGE9Yy5yb290Tm9kZXM7aWYoMT09PWEubGVuZ3RoJiZhWzBdLm5v'@; put 'ZGVUeXBlPT09bC5FTEVNRU5UX05PREUpcmV0dXJuIGFbMF07Y29uc3QgZD1sLmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBhLmZvckVhY2goaD0+ZC5hcHBlbmRDaGlsZChoKSksZH1mdW5jdGlvbiBnMWUoYyl7Y29uc3QgbD1jLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigibXMiKT4tMT8x'@; put 'OjFlMztyZXR1cm4gcGFyc2VGbG9hdChjKSpsfWZ1bmN0aW9uIEFZKGMsbCl7cmV0dXJuIGMuZ2V0UHJvcGVydHlWYWx1ZShsKS5zcGxpdCgiLCIpLm1hcChkPT5kLnRyaW0oKSl9Y29uc3QgWEZlPW5ldyBTZXQoWyJwb3NpdGlvbiJdKTtjbGFzcyBxRmV7Y29uc3RydWN0b3IobCxhLGQsaCxm'@; put 'LHYsTSxJLEcpe3RoaXMuX2RvY3VtZW50PWwsdGhpcy5fcm9vdEVsZW1lbnQ9YSx0aGlzLl9kaXJlY3Rpb249ZCx0aGlzLl9pbml0aWFsRG9tUmVjdD1oLHRoaXMuX3ByZXZpZXdUZW1wbGF0ZT1mLHRoaXMuX3ByZXZpZXdDbGFzcz12LHRoaXMuX3BpY2t1cFBvc2l0aW9uT25QYWdlPU0sdGhp'@; put 'cy5faW5pdGlhbFRyYW5zZm9ybT1JLHRoaXMuX3pJbmRleD1HfWF0dGFjaChsKXt0aGlzLl9wcmV2aWV3PXRoaXMuX2NyZWF0ZVByZXZpZXcoKSxsLmFwcGVuZENoaWxkKHRoaXMuX3ByZXZpZXcpLCJzaG93UG9wb3ZlciJpbiB0aGlzLl9wcmV2aWV3JiZ0aGlzLl9wcmV2aWV3LnNob3dQb3Bv'@; put 'dmVyKCl9ZGVzdHJveSgpe3RoaXMuX3ByZXZpZXcucmVtb3ZlKCksdGhpcy5fcHJldmlld0VtYmVkZGVkVmlldz8uZGVzdHJveSgpLHRoaXMuX3ByZXZpZXc9dGhpcy5fcHJldmlld0VtYmVkZGVkVmlldz1udWxsfXNldFRyYW5zZm9ybShsKXt0aGlzLl9wcmV2aWV3LnN0eWxlLnRyYW5zZm9y'@; put 'bT1sfWdldEJvdW5kaW5nQ2xpZW50UmVjdCgpe3JldHVybiB0aGlzLl9wcmV2aWV3LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfWFkZENsYXNzKGwpe3RoaXMuX3ByZXZpZXcuY2xhc3NMaXN0LmFkZChsKX1nZXRUcmFuc2l0aW9uRHVyYXRpb24oKXtyZXR1cm4gZnVuY3Rpb24gS0ZlKGMpe2Nv'@; put 'bnN0IGw9Z2V0Q29tcHV0ZWRTdHlsZShjKSxhPUFZKGwsInRyYW5zaXRpb24tcHJvcGVydHkiKSxkPWEuZmluZChNPT4idHJhbnNmb3JtIj09PU18fCJhbGwiPT09TSk7aWYoIWQpcmV0dXJuIDA7Y29uc3QgaD1hLmluZGV4T2YoZCksZj1BWShsLCJ0cmFuc2l0aW9uLWR1cmF0aW9uIiksdj1B'@; put 'WShsLCJ0cmFuc2l0aW9uLWRlbGF5Iik7cmV0dXJuIGcxZShmW2hdKStnMWUodltoXSl9KHRoaXMuX3ByZXZpZXcpfWFkZEV2ZW50TGlzdGVuZXIobCxhKXt0aGlzLl9wcmV2aWV3LmFkZEV2ZW50TGlzdGVuZXIobCxhKX1yZW1vdmVFdmVudExpc3RlbmVyKGwsYSl7dGhpcy5fcHJldmlldy5y'@; put 'ZW1vdmVFdmVudExpc3RlbmVyKGwsYSl9X2NyZWF0ZVByZXZpZXcoKXtjb25zdCBsPXRoaXMuX3ByZXZpZXdUZW1wbGF0ZSxhPXRoaXMuX3ByZXZpZXdDbGFzcyxkPWw/bC50ZW1wbGF0ZTpudWxsO2xldCBoO2lmKGQmJmwpe2NvbnN0IGY9bC5tYXRjaFNpemU/dGhpcy5faW5pdGlhbERvbVJl'@; put 'Y3Q6bnVsbCx2PWwudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcoZCxsLmNvbnRleHQpO3YuZGV0ZWN0Q2hhbmdlcygpLGg9cDFlKHYsdGhpcy5fZG9jdW1lbnQpLHRoaXMuX3ByZXZpZXdFbWJlZGRlZFZpZXc9dixsLm1hdGNoU2l6ZT9vMWUoaCxmKTpoLnN0eWxlLnRyYW5zZm9y'@; put 'bT1QTCh0aGlzLl9waWNrdXBQb3NpdGlvbk9uUGFnZS54LHRoaXMuX3BpY2t1cFBvc2l0aW9uT25QYWdlLnkpfWVsc2UgaD11MWUodGhpcy5fcm9vdEVsZW1lbnQpLG8xZShoLHRoaXMuX2luaXRpYWxEb21SZWN0KSx0aGlzLl9pbml0aWFsVHJhbnNmb3JtJiYoaC5zdHlsZS50cmFuc2Zvcm09'@; put 'dGhpcy5faW5pdGlhbFRyYW5zZm9ybSk7cmV0dXJuIHhZKGguc3R5bGUseyJwb2ludGVyLWV2ZW50cyI6Im5vbmUiLG1hcmdpbjoiMCIscG9zaXRpb246ImZpeGVkIix0b3A6IjAiLGxlZnQ6IjAiLCJ6LWluZGV4Ijp0aGlzLl96SW5kZXgrIiJ9LFhGZSksVGIoaCwhMSksaC5jbGFzc0xpc3Qu'@; put 'YWRkKCJjZGstZHJhZy1wcmV2aWV3IiksaC5zZXRBdHRyaWJ1dGUoInBvcG92ZXIiLCJtYW51YWwiKSxoLnNldEF0dHJpYnV0ZSgiZGlyIix0aGlzLl9kaXJlY3Rpb24pLGEmJihBcnJheS5pc0FycmF5KGEpP2EuZm9yRWFjaChmPT5oLmNsYXNzTGlzdC5hZGQoZikpOmguY2xhc3NMaXN0LmFk'@; put 'ZChhKSksaH19Y29uc3QgbTFlPU1iKHtwYXNzaXZlOiEwfSksRkw9TWIoe3Bhc3NpdmU6ITF9KSx2MWU9TWIoe3Bhc3NpdmU6ITEsY2FwdHVyZTohMH0pLHkxZT1uZXcgU2V0KFsicG9zaXRpb24iXSk7Y2xhc3MgUUZle2dldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLl9kaXNhYmxlZHx8ISgh'@; put 'dGhpcy5fZHJvcENvbnRhaW5lcnx8IXRoaXMuX2Ryb3BDb250YWluZXIuZGlzYWJsZWQpfXNldCBkaXNhYmxlZChsKXtsIT09dGhpcy5fZGlzYWJsZWQmJih0aGlzLl9kaXNhYmxlZD1sLHRoaXMuX3RvZ2dsZU5hdGl2ZURyYWdJbnRlcmFjdGlvbnMoKSx0aGlzLl9oYW5kbGVzLmZvckVhY2go'@; put 'YT0+VGIoYSxsKSkpfWNvbnN0cnVjdG9yKGwsYSxkLGgsZix2KXt0aGlzLl9jb25maWc9YSx0aGlzLl9kb2N1bWVudD1kLHRoaXMuX25nWm9uZT1oLHRoaXMuX3ZpZXdwb3J0UnVsZXI9Zix0aGlzLl9kcmFnRHJvcFJlZ2lzdHJ5PXYsdGhpcy5fcGFzc2l2ZVRyYW5zZm9ybT17eDowLHk6MH0s'@; put 'dGhpcy5fYWN0aXZlVHJhbnNmb3JtPXt4OjAseTowfSx0aGlzLl9oYXNTdGFydGVkRHJhZ2dpbmc9ITEsdGhpcy5fbW92ZUV2ZW50cz1uZXcgR24sdGhpcy5fcG9pbnRlck1vdmVTdWJzY3JpcHRpb249SnQuRU1QVFksdGhpcy5fcG9pbnRlclVwU3Vic2NyaXB0aW9uPUp0LkVNUFRZLHRoaXMu'@; put 'X3Njcm9sbFN1YnNjcmlwdGlvbj1KdC5FTVBUWSx0aGlzLl9yZXNpemVTdWJzY3JpcHRpb249SnQuRU1QVFksdGhpcy5fYm91bmRhcnlFbGVtZW50PW51bGwsdGhpcy5fbmF0aXZlSW50ZXJhY3Rpb25zRW5hYmxlZD0hMCx0aGlzLl9oYW5kbGVzPVtdLHRoaXMuX2Rpc2FibGVkSGFuZGxlcz1u'@; put 'ZXcgU2V0LHRoaXMuX2RpcmVjdGlvbj0ibHRyIix0aGlzLmRyYWdTdGFydERlbGF5PTAsdGhpcy5fZGlzYWJsZWQ9ITEsdGhpcy5iZWZvcmVTdGFydGVkPW5ldyBHbix0aGlzLnN0YXJ0ZWQ9bmV3IEduLHRoaXMucmVsZWFzZWQ9bmV3IEduLHRoaXMuZW5kZWQ9bmV3IEduLHRoaXMuZW50ZXJl'@; put 'ZD1uZXcgR24sdGhpcy5leGl0ZWQ9bmV3IEduLHRoaXMuZHJvcHBlZD1uZXcgR24sdGhpcy5tb3ZlZD10aGlzLl9tb3ZlRXZlbnRzLHRoaXMuX3BvaW50ZXJEb3duPU09PntpZih0aGlzLmJlZm9yZVN0YXJ0ZWQubmV4dCgpLHRoaXMuX2hhbmRsZXMubGVuZ3RoKXtjb25zdCBJPXRoaXMuX2dl'@; put 'dFRhcmdldEhhbmRsZShNKTtJJiYhdGhpcy5fZGlzYWJsZWRIYW5kbGVzLmhhcyhJKSYmIXRoaXMuZGlzYWJsZWQmJnRoaXMuX2luaXRpYWxpemVEcmFnU2VxdWVuY2UoSSxNKX1lbHNlIHRoaXMuZGlzYWJsZWR8fHRoaXMuX2luaXRpYWxpemVEcmFnU2VxdWVuY2UodGhpcy5fcm9vdEVsZW1l'@; put 'bnQsTSl9LHRoaXMuX3BvaW50ZXJNb3ZlPU09Pntjb25zdCBJPXRoaXMuX2dldFBvaW50ZXJQb3NpdGlvbk9uUGFnZShNKTtpZighdGhpcy5faGFzU3RhcnRlZERyYWdnaW5nKXtpZihNYXRoLmFicyhJLngtdGhpcy5fcGlja3VwUG9zaXRpb25PblBhZ2UueCkrTWF0aC5hYnMoSS55LXRoaXMu'@; put 'X3BpY2t1cFBvc2l0aW9uT25QYWdlLnkpPj10aGlzLl9jb25maWcuZHJhZ1N0YXJ0VGhyZXNob2xkKXtjb25zdCBFZT1EYXRlLm5vdygpPj10aGlzLl9kcmFnU3RhcnRUaW1lK3RoaXMuX2dldERyYWdTdGFydERlbGF5KE0pLEJlPXRoaXMuX2Ryb3BDb250YWluZXI7aWYoIUVlKXJldHVybiB2'@; put 'b2lkIHRoaXMuX2VuZERyYWdTZXF1ZW5jZShNKTsoIUJlfHwhQmUuaXNEcmFnZ2luZygpJiYhQmUuaXNSZWNlaXZpbmcoKSkmJihNLmNhbmNlbGFibGUmJk0ucHJldmVudERlZmF1bHQoKSx0aGlzLl9oYXNTdGFydGVkRHJhZ2dpbmc9ITAsdGhpcy5fbmdab25lLnJ1bigoKT0+dGhpcy5fc3Rh'@; put 'cnREcmFnU2VxdWVuY2UoTSkpKX1yZXR1cm59TS5jYW5jZWxhYmxlJiZNLnByZXZlbnREZWZhdWx0KCk7Y29uc3QgRz10aGlzLl9nZXRDb25zdHJhaW5lZFBvaW50ZXJQb3NpdGlvbihJKTtpZih0aGlzLl9oYXNNb3ZlZD0hMCx0aGlzLl9sYXN0S25vd25Qb2ludGVyUG9zaXRpb249SSx0aGlz'@; put 'Ll91cGRhdGVQb2ludGVyRGlyZWN0aW9uRGVsdGEoRyksdGhpcy5fZHJvcENvbnRhaW5lcil0aGlzLl91cGRhdGVBY3RpdmVEcm9wQ29udGFpbmVyKEcsSSk7ZWxzZXtjb25zdCByZT10aGlzLmNvbnN0cmFpblBvc2l0aW9uP3RoaXMuX2luaXRpYWxEb21SZWN0OnRoaXMuX3BpY2t1cFBvc2l0'@; put 'aW9uT25QYWdlLHVlPXRoaXMuX2FjdGl2ZVRyYW5zZm9ybTt1ZS54PUcueC1yZS54K3RoaXMuX3Bhc3NpdmVUcmFuc2Zvcm0ueCx1ZS55PUcueS1yZS55K3RoaXMuX3Bhc3NpdmVUcmFuc2Zvcm0ueSx0aGlzLl9hcHBseVJvb3RFbGVtZW50VHJhbnNmb3JtKHVlLngsdWUueSl9dGhpcy5fbW92'@; put 'ZUV2ZW50cy5vYnNlcnZlcnMubGVuZ3RoJiZ0aGlzLl9uZ1pvbmUucnVuKCgpPT57dGhpcy5fbW92ZUV2ZW50cy5uZXh0KHtzb3VyY2U6dGhpcyxwb2ludGVyUG9zaXRpb246RyxldmVudDpNLGRpc3RhbmNlOnRoaXMuX2dldERyYWdEaXN0YW5jZShHKSxkZWx0YTp0aGlzLl9wb2ludGVyRGly'@; put 'ZWN0aW9uRGVsdGF9KX0pfSx0aGlzLl9wb2ludGVyVXA9TT0+e3RoaXMuX2VuZERyYWdTZXF1ZW5jZShNKX0sdGhpcy5fbmF0aXZlRHJhZ1N0YXJ0PU09PntpZih0aGlzLl9oYW5kbGVzLmxlbmd0aCl7Y29uc3QgST10aGlzLl9nZXRUYXJnZXRIYW5kbGUoTSk7SSYmIXRoaXMuX2Rpc2FibGVk'@; put 'SGFuZGxlcy5oYXMoSSkmJiF0aGlzLmRpc2FibGVkJiZNLnByZXZlbnREZWZhdWx0KCl9ZWxzZSB0aGlzLmRpc2FibGVkfHxNLnByZXZlbnREZWZhdWx0KCl9LHRoaXMud2l0aFJvb3RFbGVtZW50KGwpLndpdGhQYXJlbnQoYS5wYXJlbnREcmFnUmVmfHxudWxsKSx0aGlzLl9wYXJlbnRQb3Np'@; put 'dGlvbnM9bmV3IGMxZShkKSx2LnJlZ2lzdGVyRHJhZ0l0ZW0odGhpcyl9Z2V0UGxhY2Vob2xkZXJFbGVtZW50KCl7cmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyfWdldFJvb3RFbGVtZW50KCl7cmV0dXJuIHRoaXMuX3Jvb3RFbGVtZW50fWdldFZpc2libGVFbGVtZW50KCl7cmV0dXJuIHRoaXMu'@; put 'aXNEcmFnZ2luZygpP3RoaXMuZ2V0UGxhY2Vob2xkZXJFbGVtZW50KCk6dGhpcy5nZXRSb290RWxlbWVudCgpfXdpdGhIYW5kbGVzKGwpe3RoaXMuX2hhbmRsZXM9bC5tYXAoZD0+RWQoZCkpLHRoaXMuX2hhbmRsZXMuZm9yRWFjaChkPT5UYihkLHRoaXMuZGlzYWJsZWQpKSx0aGlzLl90b2dn'@; put 'bGVOYXRpdmVEcmFnSW50ZXJhY3Rpb25zKCk7Y29uc3QgYT1uZXcgU2V0O3JldHVybiB0aGlzLl9kaXNhYmxlZEhhbmRsZXMuZm9yRWFjaChkPT57dGhpcy5faGFuZGxlcy5pbmRleE9mKGQpPi0xJiZhLmFkZChkKX0pLHRoaXMuX2Rpc2FibGVkSGFuZGxlcz1hLHRoaXN9d2l0aFByZXZpZXdU'@; put 'ZW1wbGF0ZShsKXtyZXR1cm4gdGhpcy5fcHJldmlld1RlbXBsYXRlPWwsdGhpc313aXRoUGxhY2Vob2xkZXJUZW1wbGF0ZShsKXtyZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXJUZW1wbGF0ZT1sLHRoaXN9d2l0aFJvb3RFbGVtZW50KGwpe2NvbnN0IGE9RWQobCk7cmV0dXJuIGEhPT10aGlzLl9y'@; put 'b290RWxlbWVudCYmKHRoaXMuX3Jvb3RFbGVtZW50JiZ0aGlzLl9yZW1vdmVSb290RWxlbWVudExpc3RlbmVycyh0aGlzLl9yb290RWxlbWVudCksdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57YS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMuX3BvaW50ZXJE'@; put 'b3duLEZMKSxhLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMuX3BvaW50ZXJEb3duLG0xZSksYS5hZGRFdmVudExpc3RlbmVyKCJkcmFnc3RhcnQiLHRoaXMuX25hdGl2ZURyYWdTdGFydCxGTCl9KSx0aGlzLl9pbml0aWFsVHJhbnNmb3JtPXZvaWQgMCx0aGlzLl9yb290RWxl'@; put 'bWVudD1hKSx0eXBlb2YgU1ZHRWxlbWVudDwidSImJnRoaXMuX3Jvb3RFbGVtZW50IGluc3RhbmNlb2YgU1ZHRWxlbWVudCYmKHRoaXMuX293bmVyU1ZHRWxlbWVudD10aGlzLl9yb290RWxlbWVudC5vd25lclNWR0VsZW1lbnQpLHRoaXN9d2l0aEJvdW5kYXJ5RWxlbWVudChsKXtyZXR1cm4g'@; put 'dGhpcy5fYm91bmRhcnlFbGVtZW50PWw/RWQobCk6bnVsbCx0aGlzLl9yZXNpemVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSxsJiYodGhpcy5fcmVzaXplU3Vic2NyaXB0aW9uPXRoaXMuX3ZpZXdwb3J0UnVsZXIuY2hhbmdlKDEwKS5zdWJzY3JpYmUoKCk9PnRoaXMuX2NvbnRhaW5JbnNp'@; put 'ZGVCb3VuZGFyeU9uUmVzaXplKCkpKSx0aGlzfXdpdGhQYXJlbnQobCl7cmV0dXJuIHRoaXMuX3BhcmVudERyYWdSZWY9bCx0aGlzfWRpc3Bvc2UoKXt0aGlzLl9yZW1vdmVSb290RWxlbWVudExpc3RlbmVycyh0aGlzLl9yb290RWxlbWVudCksdGhpcy5pc0RyYWdnaW5nKCkmJnRoaXMuX3Jv'@; put 'b3RFbGVtZW50Py5yZW1vdmUoKSx0aGlzLl9hbmNob3I/LnJlbW92ZSgpLHRoaXMuX2Rlc3Ryb3lQcmV2aWV3KCksdGhpcy5fZGVzdHJveVBsYWNlaG9sZGVyKCksdGhpcy5fZHJhZ0Ryb3BSZWdpc3RyeS5yZW1vdmVEcmFnSXRlbSh0aGlzKSx0aGlzLl9yZW1vdmVMaXN0ZW5lcnMoKSx0aGlz'@; put 'LmJlZm9yZVN0YXJ0ZWQuY29tcGxldGUoKSx0aGlzLnN0YXJ0ZWQuY29tcGxldGUoKSx0aGlzLnJlbGVhc2VkLmNvbXBsZXRlKCksdGhpcy5lbmRlZC5jb21wbGV0ZSgpLHRoaXMuZW50ZXJlZC5jb21wbGV0ZSgpLHRoaXMuZXhpdGVkLmNvbXBsZXRlKCksdGhpcy5kcm9wcGVkLmNvbXBsZXRl'@; put 'KCksdGhpcy5fbW92ZUV2ZW50cy5jb21wbGV0ZSgpLHRoaXMuX2hhbmRsZXM9W10sdGhpcy5fZGlzYWJsZWRIYW5kbGVzLmNsZWFyKCksdGhpcy5fZHJvcENvbnRhaW5lcj12b2lkIDAsdGhpcy5fcmVzaXplU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5fcGFyZW50UG9zaXRpb25z'@; put 'LmNsZWFyKCksdGhpcy5fYm91bmRhcnlFbGVtZW50PXRoaXMuX3Jvb3RFbGVtZW50PXRoaXMuX293bmVyU1ZHRWxlbWVudD10aGlzLl9wbGFjZWhvbGRlclRlbXBsYXRlPXRoaXMuX3ByZXZpZXdUZW1wbGF0ZT10aGlzLl9hbmNob3I9dGhpcy5fcGFyZW50RHJhZ1JlZj1udWxsfWlzRHJhZ2dp'@; put 'bmcoKXtyZXR1cm4gdGhpcy5faGFzU3RhcnRlZERyYWdnaW5nJiZ0aGlzLl9kcmFnRHJvcFJlZ2lzdHJ5LmlzRHJhZ2dpbmcodGhpcyl9cmVzZXQoKXt0aGlzLl9yb290RWxlbWVudC5zdHlsZS50cmFuc2Zvcm09dGhpcy5faW5pdGlhbFRyYW5zZm9ybXx8IiIsdGhpcy5fYWN0aXZlVHJhbnNm'@; put 'b3JtPXt4OjAseTowfSx0aGlzLl9wYXNzaXZlVHJhbnNmb3JtPXt4OjAseTowfX1kaXNhYmxlSGFuZGxlKGwpeyF0aGlzLl9kaXNhYmxlZEhhbmRsZXMuaGFzKGwpJiZ0aGlzLl9oYW5kbGVzLmluZGV4T2YobCk+LTEmJih0aGlzLl9kaXNhYmxlZEhhbmRsZXMuYWRkKGwpLFRiKGwsITApKX1l'@; put 'bmFibGVIYW5kbGUobCl7dGhpcy5fZGlzYWJsZWRIYW5kbGVzLmhhcyhsKSYmKHRoaXMuX2Rpc2FibGVkSGFuZGxlcy5kZWxldGUobCksVGIobCx0aGlzLmRpc2FibGVkKSl9d2l0aERpcmVjdGlvbihsKXtyZXR1cm4gdGhpcy5fZGlyZWN0aW9uPWwsdGhpc31fd2l0aERyb3BDb250YWluZXIo'@; put 'bCl7dGhpcy5fZHJvcENvbnRhaW5lcj1sfWdldEZyZWVEcmFnUG9zaXRpb24oKXtjb25zdCBsPXRoaXMuaXNEcmFnZ2luZygpP3RoaXMuX2FjdGl2ZVRyYW5zZm9ybTp0aGlzLl9wYXNzaXZlVHJhbnNmb3JtO3JldHVybnt4OmwueCx5OmwueX19c2V0RnJlZURyYWdQb3NpdGlvbihsKXtyZXR1'@; put 'cm4gdGhpcy5fYWN0aXZlVHJhbnNmb3JtPXt4OjAseTowfSx0aGlzLl9wYXNzaXZlVHJhbnNmb3JtLng9bC54LHRoaXMuX3Bhc3NpdmVUcmFuc2Zvcm0ueT1sLnksdGhpcy5fZHJvcENvbnRhaW5lcnx8dGhpcy5fYXBwbHlSb290RWxlbWVudFRyYW5zZm9ybShsLngsbC55KSx0aGlzfXdpdGhQ'@; put 'cmV2aWV3Q29udGFpbmVyKGwpe3JldHVybiB0aGlzLl9wcmV2aWV3Q29udGFpbmVyPWwsdGhpc31fc29ydEZyb21MYXN0UG9pbnRlclBvc2l0aW9uKCl7Y29uc3QgbD10aGlzLl9sYXN0S25vd25Qb2ludGVyUG9zaXRpb247bCYmdGhpcy5fZHJvcENvbnRhaW5lciYmdGhpcy5fdXBkYXRlQWN0'@; put 'aXZlRHJvcENvbnRhaW5lcih0aGlzLl9nZXRDb25zdHJhaW5lZFBvaW50ZXJQb3NpdGlvbihsKSxsKX1fcmVtb3ZlTGlzdGVuZXJzKCl7dGhpcy5fcG9pbnRlck1vdmVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9wb2ludGVyVXBTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0'@; put 'aGlzLl9zY3JvbGxTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9nZXRTaGFkb3dSb290KCk/LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdHN0YXJ0IixfMWUsdjFlKX1fZGVzdHJveVByZXZpZXcoKXt0aGlzLl9wcmV2aWV3Py5kZXN0cm95KCksdGhpcy5fcHJldmlldz1udWxs'@; put 'fV9kZXN0cm95UGxhY2Vob2xkZXIoKXt0aGlzLl9wbGFjZWhvbGRlcj8ucmVtb3ZlKCksdGhpcy5fcGxhY2Vob2xkZXJSZWY/LmRlc3Ryb3koKSx0aGlzLl9wbGFjZWhvbGRlcj10aGlzLl9wbGFjZWhvbGRlclJlZj1udWxsfV9lbmREcmFnU2VxdWVuY2UobCl7aWYodGhpcy5fZHJhZ0Ryb3BS'@; put 'ZWdpc3RyeS5pc0RyYWdnaW5nKHRoaXMpJiYodGhpcy5fcmVtb3ZlTGlzdGVuZXJzKCksdGhpcy5fZHJhZ0Ryb3BSZWdpc3RyeS5zdG9wRHJhZ2dpbmcodGhpcyksdGhpcy5fdG9nZ2xlTmF0aXZlRHJhZ0ludGVyYWN0aW9ucygpLHRoaXMuX2hhbmRsZXMmJih0aGlzLl9yb290RWxlbWVudC5z'@; put 'dHlsZS53ZWJraXRUYXBIaWdobGlnaHRDb2xvcj10aGlzLl9yb290RWxlbWVudFRhcEhpZ2hsaWdodCksdGhpcy5faGFzU3RhcnRlZERyYWdnaW5nKSlpZih0aGlzLnJlbGVhc2VkLm5leHQoe3NvdXJjZTp0aGlzLGV2ZW50Omx9KSx0aGlzLl9kcm9wQ29udGFpbmVyKXRoaXMuX2Ryb3BDb250'@; put 'YWluZXIuX3N0b3BTY3JvbGxpbmcoKSx0aGlzLl9hbmltYXRlUHJldmlld1RvUGxhY2Vob2xkZXIoKS50aGVuKCgpPT57dGhpcy5fY2xlYW51cERyYWdBcnRpZmFjdHMobCksdGhpcy5fY2xlYW51cENhY2hlZERpbWVuc2lvbnMoKSx0aGlzLl9kcmFnRHJvcFJlZ2lzdHJ5LnN0b3BEcmFnZ2lu'@; put 'Zyh0aGlzKX0pO2Vsc2V7dGhpcy5fcGFzc2l2ZVRyYW5zZm9ybS54PXRoaXMuX2FjdGl2ZVRyYW5zZm9ybS54O2NvbnN0IGE9dGhpcy5fZ2V0UG9pbnRlclBvc2l0aW9uT25QYWdlKGwpO3RoaXMuX3Bhc3NpdmVUcmFuc2Zvcm0ueT10aGlzLl9hY3RpdmVUcmFuc2Zvcm0ueSx0aGlzLl9uZ1pv'@; put 'bmUucnVuKCgpPT57dGhpcy5lbmRlZC5uZXh0KHtzb3VyY2U6dGhpcyxkaXN0YW5jZTp0aGlzLl9nZXREcmFnRGlzdGFuY2UoYSksZHJvcFBvaW50OmEsZXZlbnQ6bH0pfSksdGhpcy5fY2xlYW51cENhY2hlZERpbWVuc2lvbnMoKSx0aGlzLl9kcmFnRHJvcFJlZ2lzdHJ5LnN0b3BEcmFnZ2lu'@; put 'Zyh0aGlzKX19X3N0YXJ0RHJhZ1NlcXVlbmNlKGwpe1J4KGwpJiYodGhpcy5fbGFzdFRvdWNoRXZlbnRUaW1lPURhdGUubm93KCkpLHRoaXMuX3RvZ2dsZU5hdGl2ZURyYWdJbnRlcmFjdGlvbnMoKTtjb25zdCBhPXRoaXMuX2dldFNoYWRvd1Jvb3QoKSxkPXRoaXMuX2Ryb3BDb250YWluZXI7'@; put 'aWYoYSYmdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57YS5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3RzdGFydCIsXzFlLHYxZSl9KSxkKXtjb25zdCBoPXRoaXMuX3Jvb3RFbGVtZW50LGY9aC5wYXJlbnROb2RlLHY9dGhpcy5fcGxhY2Vob2xkZXI9dGhpcy5fY3JlYXRlUGxh'@; put 'Y2Vob2xkZXJFbGVtZW50KCksTT10aGlzLl9hbmNob3I9dGhpcy5fYW5jaG9yfHx0aGlzLl9kb2N1bWVudC5jcmVhdGVDb21tZW50KCIiKTtmLmluc2VydEJlZm9yZShNLGgpLHRoaXMuX2luaXRpYWxUcmFuc2Zvcm09aC5zdHlsZS50cmFuc2Zvcm18fCIiLHRoaXMuX3ByZXZpZXc9bmV3IHFG'@; put 'ZSh0aGlzLl9kb2N1bWVudCx0aGlzLl9yb290RWxlbWVudCx0aGlzLl9kaXJlY3Rpb24sdGhpcy5faW5pdGlhbERvbVJlY3QsdGhpcy5fcHJldmlld1RlbXBsYXRlfHxudWxsLHRoaXMucHJldmlld0NsYXNzfHxudWxsLHRoaXMuX3BpY2t1cFBvc2l0aW9uT25QYWdlLHRoaXMuX2luaXRpYWxU'@; put 'cmFuc2Zvcm0sdGhpcy5fY29uZmlnLnpJbmRleHx8MWUzKSx0aGlzLl9wcmV2aWV3LmF0dGFjaCh0aGlzLl9nZXRQcmV2aWV3SW5zZXJ0aW9uUG9pbnQoZixhKSksczFlKGgsITEseTFlKSx0aGlzLl9kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGYucmVwbGFjZUNoaWxkKHYsaCkpLHRoaXMu'@; put 'c3RhcnRlZC5uZXh0KHtzb3VyY2U6dGhpcyxldmVudDpsfSksZC5zdGFydCgpLHRoaXMuX2luaXRpYWxDb250YWluZXI9ZCx0aGlzLl9pbml0aWFsSW5kZXg9ZC5nZXRJdGVtSW5kZXgodGhpcyl9ZWxzZSB0aGlzLnN0YXJ0ZWQubmV4dCh7c291cmNlOnRoaXMsZXZlbnQ6bH0pLHRoaXMuX2lu'@; put 'aXRpYWxDb250YWluZXI9dGhpcy5faW5pdGlhbEluZGV4PXZvaWQgMDt0aGlzLl9wYXJlbnRQb3NpdGlvbnMuY2FjaGUoZD9kLmdldFNjcm9sbGFibGVQYXJlbnRzKCk6W10pfV9pbml0aWFsaXplRHJhZ1NlcXVlbmNlKGwsYSl7dGhpcy5fcGFyZW50RHJhZ1JlZiYmYS5zdG9wUHJvcGFnYXRp'@; put 'b24oKTtjb25zdCBkPXRoaXMuaXNEcmFnZ2luZygpLGg9UngoYSksZj0haCYmMCE9PWEuYnV0dG9uLHY9dGhpcy5fcm9vdEVsZW1lbnQsTT1rTChhKSxJPSFoJiZ0aGlzLl9sYXN0VG91Y2hFdmVudFRpbWUmJnRoaXMuX2xhc3RUb3VjaEV2ZW50VGltZSs4MDA+RGF0ZS5ub3coKSxHPWg/ZnVu'@; put 'Y3Rpb24gcEZlKGMpe2NvbnN0IGw9Yy50b3VjaGVzJiZjLnRvdWNoZXNbMF18fGMuY2hhbmdlZFRvdWNoZXMmJmMuY2hhbmdlZFRvdWNoZXNbMF07cmV0dXJuISghbHx8LTEhPT1sLmlkZW50aWZpZXJ8fG51bGwhPWwucmFkaXVzWCYmMSE9PWwucmFkaXVzWHx8bnVsbCE9bC5yYWRpdXNZJiYx'@; put 'IT09bC5yYWRpdXNZKX0oYSk6ZnVuY3Rpb24gZkZlKGMpe3JldHVybiAwPT09Yy5idXR0b25zfHwwPT09Yy5kZXRhaWx9KGEpO2lmKE0mJk0uZHJhZ2dhYmxlJiYibW91c2Vkb3duIj09PWEudHlwZSYmYS5wcmV2ZW50RGVmYXVsdCgpLGR8fGZ8fEl8fEcpcmV0dXJuO2lmKHRoaXMuX2hhbmRs'@; put 'ZXMubGVuZ3RoKXtjb25zdCB5ZT12LnN0eWxlO3RoaXMuX3Jvb3RFbGVtZW50VGFwSGlnaGxpZ2h0PXllLndlYmtpdFRhcEhpZ2hsaWdodENvbG9yfHwiIix5ZS53ZWJraXRUYXBIaWdobGlnaHRDb2xvcj0idHJhbnNwYXJlbnQifXRoaXMuX2hhc1N0YXJ0ZWREcmFnZ2luZz10aGlzLl9oYXNN'@; put 'b3ZlZD0hMSx0aGlzLl9yZW1vdmVMaXN0ZW5lcnMoKSx0aGlzLl9pbml0aWFsRG9tUmVjdD10aGlzLl9yb290RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0aGlzLl9wb2ludGVyTW92ZVN1YnNjcmlwdGlvbj10aGlzLl9kcmFnRHJvcFJlZ2lzdHJ5LnBvaW50ZXJNb3ZlLnN1YnNj'@; put 'cmliZSh0aGlzLl9wb2ludGVyTW92ZSksdGhpcy5fcG9pbnRlclVwU3Vic2NyaXB0aW9uPXRoaXMuX2RyYWdEcm9wUmVnaXN0cnkucG9pbnRlclVwLnN1YnNjcmliZSh0aGlzLl9wb2ludGVyVXApLHRoaXMuX3Njcm9sbFN1YnNjcmlwdGlvbj10aGlzLl9kcmFnRHJvcFJlZ2lzdHJ5LnNjcm9s'@; put 'bGVkKHRoaXMuX2dldFNoYWRvd1Jvb3QoKSkuc3Vic2NyaWJlKHllPT50aGlzLl91cGRhdGVPblNjcm9sbCh5ZSkpLHRoaXMuX2JvdW5kYXJ5RWxlbWVudCYmKHRoaXMuX2JvdW5kYXJ5UmVjdD1FWSh0aGlzLl9ib3VuZGFyeUVsZW1lbnQpKTtjb25zdCByZT10aGlzLl9wcmV2aWV3VGVtcGxh'@; put 'dGU7dGhpcy5fcGlja3VwUG9zaXRpb25JbkVsZW1lbnQ9cmUmJnJlLnRlbXBsYXRlJiYhcmUubWF0Y2hTaXplP3t4OjAseTowfTp0aGlzLl9nZXRQb2ludGVyUG9zaXRpb25JbkVsZW1lbnQodGhpcy5faW5pdGlhbERvbVJlY3QsbCxhKTtjb25zdCB1ZT10aGlzLl9waWNrdXBQb3NpdGlvbk9u'@; put 'UGFnZT10aGlzLl9sYXN0S25vd25Qb2ludGVyUG9zaXRpb249dGhpcy5fZ2V0UG9pbnRlclBvc2l0aW9uT25QYWdlKGEpO3RoaXMuX3BvaW50ZXJEaXJlY3Rpb25EZWx0YT17eDowLHk6MH0sdGhpcy5fcG9pbnRlclBvc2l0aW9uQXRMYXN0RGlyZWN0aW9uQ2hhbmdlPXt4OnVlLngseTp1ZS55'@; put 'fSx0aGlzLl9kcmFnU3RhcnRUaW1lPURhdGUubm93KCksdGhpcy5fZHJhZ0Ryb3BSZWdpc3RyeS5zdGFydERyYWdnaW5nKHRoaXMsYSl9X2NsZWFudXBEcmFnQXJ0aWZhY3RzKGwpe3MxZSh0aGlzLl9yb290RWxlbWVudCwhMCx5MWUpLHRoaXMuX2FuY2hvci5wYXJlbnROb2RlLnJlcGxhY2VD'@; put 'aGlsZCh0aGlzLl9yb290RWxlbWVudCx0aGlzLl9hbmNob3IpLHRoaXMuX2Rlc3Ryb3lQcmV2aWV3KCksdGhpcy5fZGVzdHJveVBsYWNlaG9sZGVyKCksdGhpcy5faW5pdGlhbERvbVJlY3Q9dGhpcy5fYm91bmRhcnlSZWN0PXRoaXMuX3ByZXZpZXdSZWN0PXRoaXMuX2luaXRpYWxUcmFuc2Zv'@; put 'cm09dm9pZCAwLHRoaXMuX25nWm9uZS5ydW4oKCk9Pntjb25zdCBhPXRoaXMuX2Ryb3BDb250YWluZXIsZD1hLmdldEl0ZW1JbmRleCh0aGlzKSxoPXRoaXMuX2dldFBvaW50ZXJQb3NpdGlvbk9uUGFnZShsKSxmPXRoaXMuX2dldERyYWdEaXN0YW5jZShoKSx2PWEuX2lzT3ZlckNvbnRhaW5l'@; put 'cihoLngsaC55KTt0aGlzLmVuZGVkLm5leHQoe3NvdXJjZTp0aGlzLGRpc3RhbmNlOmYsZHJvcFBvaW50OmgsZXZlbnQ6bH0pLHRoaXMuZHJvcHBlZC5uZXh0KHtpdGVtOnRoaXMsY3VycmVudEluZGV4OmQscHJldmlvdXNJbmRleDp0aGlzLl9pbml0aWFsSW5kZXgsY29udGFpbmVyOmEscHJl'@; put 'dmlvdXNDb250YWluZXI6dGhpcy5faW5pdGlhbENvbnRhaW5lcixpc1BvaW50ZXJPdmVyQ29udGFpbmVyOnYsZGlzdGFuY2U6Zixkcm9wUG9pbnQ6aCxldmVudDpsfSksYS5kcm9wKHRoaXMsZCx0aGlzLl9pbml0aWFsSW5kZXgsdGhpcy5faW5pdGlhbENvbnRhaW5lcix2LGYsaCxsKSx0aGlz'@; put 'Ll9kcm9wQ29udGFpbmVyPXRoaXMuX2luaXRpYWxDb250YWluZXJ9KX1fdXBkYXRlQWN0aXZlRHJvcENvbnRhaW5lcih7eDpsLHk6YX0se3g6ZCx5Omh9KXtsZXQgZj10aGlzLl9pbml0aWFsQ29udGFpbmVyLl9nZXRTaWJsaW5nQ29udGFpbmVyRnJvbVBvc2l0aW9uKHRoaXMsbCxhKTshZiYm'@; put 'dGhpcy5fZHJvcENvbnRhaW5lciE9PXRoaXMuX2luaXRpYWxDb250YWluZXImJnRoaXMuX2luaXRpYWxDb250YWluZXIuX2lzT3ZlckNvbnRhaW5lcihsLGEpJiYoZj10aGlzLl9pbml0aWFsQ29udGFpbmVyKSxmJiZmIT09dGhpcy5fZHJvcENvbnRhaW5lciYmdGhpcy5fbmdab25lLnJ1bigo'@; put 'KT0+e3RoaXMuZXhpdGVkLm5leHQoe2l0ZW06dGhpcyxjb250YWluZXI6dGhpcy5fZHJvcENvbnRhaW5lcn0pLHRoaXMuX2Ryb3BDb250YWluZXIuZXhpdCh0aGlzKSx0aGlzLl9kcm9wQ29udGFpbmVyPWYsdGhpcy5fZHJvcENvbnRhaW5lci5lbnRlcih0aGlzLGwsYSxmPT09dGhpcy5faW5p'@; put 'dGlhbENvbnRhaW5lciYmZi5zb3J0aW5nRGlzYWJsZWQ/dGhpcy5faW5pdGlhbEluZGV4OnZvaWQgMCksdGhpcy5lbnRlcmVkLm5leHQoe2l0ZW06dGhpcyxjb250YWluZXI6ZixjdXJyZW50SW5kZXg6Zi5nZXRJdGVtSW5kZXgodGhpcyl9KX0pLHRoaXMuaXNEcmFnZ2luZygpJiYodGhpcy5f'@; put 'ZHJvcENvbnRhaW5lci5fc3RhcnRTY3JvbGxpbmdJZk5lY2Vzc2FyeShkLGgpLHRoaXMuX2Ryb3BDb250YWluZXIuX3NvcnRJdGVtKHRoaXMsbCxhLHRoaXMuX3BvaW50ZXJEaXJlY3Rpb25EZWx0YSksdGhpcy5jb25zdHJhaW5Qb3NpdGlvbj90aGlzLl9hcHBseVByZXZpZXdUcmFuc2Zvcm0o'@; put 'bCxhKTp0aGlzLl9hcHBseVByZXZpZXdUcmFuc2Zvcm0obC10aGlzLl9waWNrdXBQb3NpdGlvbkluRWxlbWVudC54LGEtdGhpcy5fcGlja3VwUG9zaXRpb25JbkVsZW1lbnQueSkpfV9hbmltYXRlUHJldmlld1RvUGxhY2Vob2xkZXIoKXtpZighdGhpcy5faGFzTW92ZWQpcmV0dXJuIFByb21p'@; put 'c2UucmVzb2x2ZSgpO2NvbnN0IGw9dGhpcy5fcGxhY2Vob2xkZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5fcHJldmlldy5hZGRDbGFzcygiY2RrLWRyYWctYW5pbWF0aW5nIiksdGhpcy5fYXBwbHlQcmV2aWV3VHJhbnNmb3JtKGwubGVmdCxsLnRvcCk7Y29uc3QgYT10aGlzLl9w'@; put 'cmV2aWV3LmdldFRyYW5zaXRpb25EdXJhdGlvbigpO3JldHVybiAwPT09YT9Qcm9taXNlLnJlc29sdmUoKTp0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pm5ldyBQcm9taXNlKGQ9Pntjb25zdCBoPXY9PnsoIXZ8fGtMKHYpPT09dGhpcy5fcHJldmlldyYmInRyYW5zZm9ybSI9'@; put 'PT12LnByb3BlcnR5TmFtZSkmJih0aGlzLl9wcmV2aWV3Py5yZW1vdmVFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIixoKSxkKCksY2xlYXJUaW1lb3V0KGYpKX0sZj1zZXRUaW1lb3V0KGgsMS41KmEpO3RoaXMuX3ByZXZpZXcuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIs'@; put 'aCl9KSl9X2NyZWF0ZVBsYWNlaG9sZGVyRWxlbWVudCgpe2NvbnN0IGw9dGhpcy5fcGxhY2Vob2xkZXJUZW1wbGF0ZSxhPWw/bC50ZW1wbGF0ZTpudWxsO2xldCBkO3JldHVybiBhPyh0aGlzLl9wbGFjZWhvbGRlclJlZj1sLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KGEsbC5j'@; put 'b250ZXh0KSx0aGlzLl9wbGFjZWhvbGRlclJlZi5kZXRlY3RDaGFuZ2VzKCksZD1wMWUodGhpcy5fcGxhY2Vob2xkZXJSZWYsdGhpcy5fZG9jdW1lbnQpKTpkPXUxZSh0aGlzLl9yb290RWxlbWVudCksZC5zdHlsZS5wb2ludGVyRXZlbnRzPSJub25lIixkLmNsYXNzTGlzdC5hZGQoImNkay1k'@; put 'cmFnLXBsYWNlaG9sZGVyIiksZH1fZ2V0UG9pbnRlclBvc2l0aW9uSW5FbGVtZW50KGwsYSxkKXtjb25zdCBoPWE9PT10aGlzLl9yb290RWxlbWVudD9udWxsOmEsZj1oP2guZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6bCx2PVJ4KGQpP2QudGFyZ2V0VG91Y2hlc1swXTpkLE09dGhpcy5fZ2V0'@; put 'Vmlld3BvcnRTY3JvbGxQb3NpdGlvbigpO3JldHVybnt4OmYubGVmdC1sLmxlZnQrKHYucGFnZVgtZi5sZWZ0LU0ubGVmdCkseTpmLnRvcC1sLnRvcCsodi5wYWdlWS1mLnRvcC1NLnRvcCl9fV9nZXRQb2ludGVyUG9zaXRpb25PblBhZ2UobCl7Y29uc3QgYT10aGlzLl9nZXRWaWV3cG9ydFNj'@; put 'cm9sbFBvc2l0aW9uKCksZD1SeChsKT9sLnRvdWNoZXNbMF18fGwuY2hhbmdlZFRvdWNoZXNbMF18fHtwYWdlWDowLHBhZ2VZOjB9OmwsaD1kLnBhZ2VYLWEubGVmdCxmPWQucGFnZVktYS50b3A7aWYodGhpcy5fb3duZXJTVkdFbGVtZW50KXtjb25zdCB2PXRoaXMuX293bmVyU1ZHRWxlbWVu'@; put 'dC5nZXRTY3JlZW5DVE0oKTtpZih2KXtjb25zdCBNPXRoaXMuX293bmVyU1ZHRWxlbWVudC5jcmVhdGVTVkdQb2ludCgpO3JldHVybiBNLng9aCxNLnk9ZixNLm1hdHJpeFRyYW5zZm9ybSh2LmludmVyc2UoKSl9fXJldHVybnt4OmgseTpmfX1fZ2V0Q29uc3RyYWluZWRQb2ludGVyUG9zaXRp'@; put 'b24obCl7Y29uc3QgYT10aGlzLl9kcm9wQ29udGFpbmVyP3RoaXMuX2Ryb3BDb250YWluZXIubG9ja0F4aXM6bnVsbDtsZXR7eDpkLHk6aH09dGhpcy5jb25zdHJhaW5Qb3NpdGlvbj90aGlzLmNvbnN0cmFpblBvc2l0aW9uKGwsdGhpcyx0aGlzLl9pbml0aWFsRG9tUmVjdCx0aGlzLl9waWNr'@; put 'dXBQb3NpdGlvbkluRWxlbWVudCk6bDtpZigieCI9PT10aGlzLmxvY2tBeGlzfHwieCI9PT1hP2g9dGhpcy5fcGlja3VwUG9zaXRpb25PblBhZ2UueS0odGhpcy5jb25zdHJhaW5Qb3NpdGlvbj90aGlzLl9waWNrdXBQb3NpdGlvbkluRWxlbWVudC55OjApOigieSI9PT10aGlzLmxvY2tBeGlz'@; put 'fHwieSI9PT1hKSYmKGQ9dGhpcy5fcGlja3VwUG9zaXRpb25PblBhZ2UueC0odGhpcy5jb25zdHJhaW5Qb3NpdGlvbj90aGlzLl9waWNrdXBQb3NpdGlvbkluRWxlbWVudC54OjApKSx0aGlzLl9ib3VuZGFyeVJlY3Qpe2NvbnN0e3g6Zix5OnZ9PXRoaXMuY29uc3RyYWluUG9zaXRpb24/e3g6'@; put 'MCx5OjB9OnRoaXMuX3BpY2t1cFBvc2l0aW9uSW5FbGVtZW50LE09dGhpcy5fYm91bmRhcnlSZWN0LHt3aWR0aDpJLGhlaWdodDpHfT10aGlzLl9nZXRQcmV2aWV3UmVjdCgpLHJlPU0udG9wK3YsdWU9TS5ib3R0b20tKEctdik7ZD1iMWUoZCxNLmxlZnQrZixNLnJpZ2h0LShJLWYpKSxoPWIx'@; put 'ZShoLHJlLHVlKX1yZXR1cm57eDpkLHk6aH19X3VwZGF0ZVBvaW50ZXJEaXJlY3Rpb25EZWx0YShsKXtjb25zdHt4OmEseTpkfT1sLGg9dGhpcy5fcG9pbnRlckRpcmVjdGlvbkRlbHRhLGY9dGhpcy5fcG9pbnRlclBvc2l0aW9uQXRMYXN0RGlyZWN0aW9uQ2hhbmdlLHY9TWF0aC5hYnMoYS1m'@; put 'LngpLE09TWF0aC5hYnMoZC1mLnkpO3JldHVybiB2PnRoaXMuX2NvbmZpZy5wb2ludGVyRGlyZWN0aW9uQ2hhbmdlVGhyZXNob2xkJiYoaC54PWE+Zi54PzE6LTEsZi54PWEpLE0+dGhpcy5fY29uZmlnLnBvaW50ZXJEaXJlY3Rpb25DaGFuZ2VUaHJlc2hvbGQmJihoLnk9ZD5mLnk/MTotMSxm'@; put 'Lnk9ZCksaH1fdG9nZ2xlTmF0aXZlRHJhZ0ludGVyYWN0aW9ucygpe2lmKCF0aGlzLl9yb290RWxlbWVudHx8IXRoaXMuX2hhbmRsZXMpcmV0dXJuO2NvbnN0IGw9dGhpcy5faGFuZGxlcy5sZW5ndGg+MHx8IXRoaXMuaXNEcmFnZ2luZygpO2whPT10aGlzLl9uYXRpdmVJbnRlcmFjdGlvbnNF'@; put 'bmFibGVkJiYodGhpcy5fbmF0aXZlSW50ZXJhY3Rpb25zRW5hYmxlZD1sLFRiKHRoaXMuX3Jvb3RFbGVtZW50LGwpKX1fcmVtb3ZlUm9vdEVsZW1lbnRMaXN0ZW5lcnMobCl7bC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMuX3BvaW50ZXJEb3duLEZMKSxsLnJlbW92ZUV2'@; put 'ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMuX3BvaW50ZXJEb3duLG0xZSksbC5yZW1vdmVFdmVudExpc3RlbmVyKCJkcmFnc3RhcnQiLHRoaXMuX25hdGl2ZURyYWdTdGFydCxGTCl9X2FwcGx5Um9vdEVsZW1lbnRUcmFuc2Zvcm0obCxhKXtjb25zdCBkPVBMKGwsYSksaD10aGlzLl9y'@; put 'b290RWxlbWVudC5zdHlsZTtudWxsPT10aGlzLl9pbml0aWFsVHJhbnNmb3JtJiYodGhpcy5faW5pdGlhbFRyYW5zZm9ybT1oLnRyYW5zZm9ybSYmIm5vbmUiIT1oLnRyYW5zZm9ybT9oLnRyYW5zZm9ybToiIiksaC50cmFuc2Zvcm09T0woZCx0aGlzLl9pbml0aWFsVHJhbnNmb3JtKX1fYXBw'@; put 'bHlQcmV2aWV3VHJhbnNmb3JtKGwsYSl7Y29uc3QgZD10aGlzLl9wcmV2aWV3VGVtcGxhdGU/LnRlbXBsYXRlP3ZvaWQgMDp0aGlzLl9pbml0aWFsVHJhbnNmb3JtLGg9UEwobCxhKTt0aGlzLl9wcmV2aWV3LnNldFRyYW5zZm9ybShPTChoLGQpKX1fZ2V0RHJhZ0Rpc3RhbmNlKGwpe2NvbnN0'@; put 'IGE9dGhpcy5fcGlja3VwUG9zaXRpb25PblBhZ2U7cmV0dXJuIGE/e3g6bC54LWEueCx5OmwueS1hLnl9Ont4OjAseTowfX1fY2xlYW51cENhY2hlZERpbWVuc2lvbnMoKXt0aGlzLl9ib3VuZGFyeVJlY3Q9dGhpcy5fcHJldmlld1JlY3Q9dm9pZCAwLHRoaXMuX3BhcmVudFBvc2l0aW9ucy5j'@; put 'bGVhcigpfV9jb250YWluSW5zaWRlQm91bmRhcnlPblJlc2l6ZSgpe2xldHt4OmwseTphfT10aGlzLl9wYXNzaXZlVHJhbnNmb3JtO2lmKDA9PT1sJiYwPT09YXx8dGhpcy5pc0RyYWdnaW5nKCl8fCF0aGlzLl9ib3VuZGFyeUVsZW1lbnQpcmV0dXJuO2NvbnN0IGQ9dGhpcy5fcm9vdEVsZW1l'@; put 'bnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaD10aGlzLl9ib3VuZGFyeUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoMD09PWgud2lkdGgmJjA9PT1oLmhlaWdodHx8MD09PWQud2lkdGgmJjA9PT1kLmhlaWdodClyZXR1cm47Y29uc3QgZj1oLmxlZnQtZC5sZWZ0LHY9ZC5y'@; put 'aWdodC1oLnJpZ2h0LE09aC50b3AtZC50b3AsST1kLmJvdHRvbS1oLmJvdHRvbTtoLndpZHRoPmQud2lkdGg/KGY+MCYmKGwrPWYpLHY+MCYmKGwtPXYpKTpsPTAsaC5oZWlnaHQ+ZC5oZWlnaHQ/KE0+MCYmKGErPU0pLEk+MCYmKGEtPUkpKTphPTAsKGwhPT10aGlzLl9wYXNzaXZlVHJhbnNm'@; put 'b3JtLnh8fGEhPT10aGlzLl9wYXNzaXZlVHJhbnNmb3JtLnkpJiZ0aGlzLnNldEZyZWVEcmFnUG9zaXRpb24oe3k6YSx4Omx9KX1fZ2V0RHJhZ1N0YXJ0RGVsYXkobCl7Y29uc3QgYT10aGlzLmRyYWdTdGFydERlbGF5O3JldHVybiJudW1iZXIiPT10eXBlb2YgYT9hOlJ4KGwpP2EudG91Y2g6'@; put 'YT9hLm1vdXNlOjB9X3VwZGF0ZU9uU2Nyb2xsKGwpe2NvbnN0IGE9dGhpcy5fcGFyZW50UG9zaXRpb25zLmhhbmRsZVNjcm9sbChsKTtpZihhKXtjb25zdCBkPWtMKGwpO3RoaXMuX2JvdW5kYXJ5UmVjdCYmZCE9PXRoaXMuX2JvdW5kYXJ5RWxlbWVudCYmZC5jb250YWlucyh0aGlzLl9ib3Vu'@; put 'ZGFyeUVsZW1lbnQpJiZJeCh0aGlzLl9ib3VuZGFyeVJlY3QsYS50b3AsYS5sZWZ0KSx0aGlzLl9waWNrdXBQb3NpdGlvbk9uUGFnZS54Kz1hLmxlZnQsdGhpcy5fcGlja3VwUG9zaXRpb25PblBhZ2UueSs9YS50b3AsdGhpcy5fZHJvcENvbnRhaW5lcnx8KHRoaXMuX2FjdGl2ZVRyYW5zZm9y'@; put 'bS54LT1hLmxlZnQsdGhpcy5fYWN0aXZlVHJhbnNmb3JtLnktPWEudG9wLHRoaXMuX2FwcGx5Um9vdEVsZW1lbnRUcmFuc2Zvcm0odGhpcy5fYWN0aXZlVHJhbnNmb3JtLngsdGhpcy5fYWN0aXZlVHJhbnNmb3JtLnkpKX19X2dldFZpZXdwb3J0U2Nyb2xsUG9zaXRpb24oKXtyZXR1cm4gdGhp'@; put 'cy5fcGFyZW50UG9zaXRpb25zLnBvc2l0aW9ucy5nZXQodGhpcy5fZG9jdW1lbnQpPy5zY3JvbGxQb3NpdGlvbnx8dGhpcy5fcGFyZW50UG9zaXRpb25zLmdldFZpZXdwb3J0U2Nyb2xsUG9zaXRpb24oKX1fZ2V0U2hhZG93Um9vdCgpe3JldHVybiB2b2lkIDA9PT10aGlzLl9jYWNoZWRTaGFk'@; put 'b3dSb290JiYodGhpcy5fY2FjaGVkU2hhZG93Um9vdD1aMGUodGhpcy5fcm9vdEVsZW1lbnQpKSx0aGlzLl9jYWNoZWRTaGFkb3dSb290fV9nZXRQcmV2aWV3SW5zZXJ0aW9uUG9pbnQobCxhKXtjb25zdCBkPXRoaXMuX3ByZXZpZXdDb250YWluZXJ8fCJnbG9iYWwiO2lmKCJwYXJlbnQiPT09'@; put 'ZClyZXR1cm4gbDtpZigiZ2xvYmFsIj09PWQpe2NvbnN0IGg9dGhpcy5fZG9jdW1lbnQ7cmV0dXJuIGF8fGguZnVsbHNjcmVlbkVsZW1lbnR8fGgud2Via2l0RnVsbHNjcmVlbkVsZW1lbnR8fGgubW96RnVsbFNjcmVlbkVsZW1lbnR8fGgubXNGdWxsc2NyZWVuRWxlbWVudHx8aC5ib2R5fXJl'@; put 'dHVybiBFZChkKX1fZ2V0UHJldmlld1JlY3QoKXtyZXR1cm4oIXRoaXMuX3ByZXZpZXdSZWN0fHwhdGhpcy5fcHJldmlld1JlY3Qud2lkdGgmJiF0aGlzLl9wcmV2aWV3UmVjdC5oZWlnaHQpJiYodGhpcy5fcHJldmlld1JlY3Q9dGhpcy5fcHJldmlldz90aGlzLl9wcmV2aWV3LmdldEJvdW5k'@; put 'aW5nQ2xpZW50UmVjdCgpOnRoaXMuX2luaXRpYWxEb21SZWN0KSx0aGlzLl9wcmV2aWV3UmVjdH1fZ2V0VGFyZ2V0SGFuZGxlKGwpe3JldHVybiB0aGlzLl9oYW5kbGVzLmZpbmQoYT0+bC50YXJnZXQmJihsLnRhcmdldD09PWF8fGEuY29udGFpbnMobC50YXJnZXQpKSl9fWZ1bmN0aW9uIGIx'@; put 'ZShjLGwsYSl7cmV0dXJuIE1hdGgubWF4KGwsTWF0aC5taW4oYSxjKSl9ZnVuY3Rpb24gUngoYyl7cmV0dXJuInQiPT09Yy50eXBlWzBdfWZ1bmN0aW9uIF8xZShjKXtjLnByZXZlbnREZWZhdWx0KCl9ZnVuY3Rpb24gdzFlKGMsbCxhKXtjb25zdCBkPUx4KGwsYy5sZW5ndGgtMSksaD1MeChh'@; put 'LGMubGVuZ3RoLTEpO2lmKGQ9PT1oKXJldHVybjtjb25zdCBmPWNbZF0sdj1oPGQ/LTE6MTtmb3IobGV0IE09ZDtNIT09aDtNKz12KWNbTV09Y1tNK3ZdO2NbaF09Zn1mdW5jdGlvbiBMeChjLGwpe3JldHVybiBNYXRoLm1heCgwLE1hdGgubWluKGwsYykpfWNsYXNzIHRIZXtjb25zdHJ1Y3Rv'@; put 'cihsLGEpe3RoaXMuX2VsZW1lbnQ9bCx0aGlzLl9kcmFnRHJvcFJlZ2lzdHJ5PWEsdGhpcy5faXRlbVBvc2l0aW9ucz1bXSx0aGlzLm9yaWVudGF0aW9uPSJ2ZXJ0aWNhbCIsdGhpcy5fcHJldmlvdXNTd2FwPXtkcmFnOm51bGwsZGVsdGE6MCxvdmVybGFwczohMX19c3RhcnQobCl7dGhpcy53'@; put 'aXRoSXRlbXMobCl9c29ydChsLGEsZCxoKXtjb25zdCBmPXRoaXMuX2l0ZW1Qb3NpdGlvbnMsdj10aGlzLl9nZXRJdGVtSW5kZXhGcm9tUG9pbnRlclBvc2l0aW9uKGwsYSxkLGgpO2lmKC0xPT09diYmZi5sZW5ndGg+MClyZXR1cm4gbnVsbDtjb25zdCBNPSJob3Jpem9udGFsIj09PXRoaXMu'@; put 'b3JpZW50YXRpb24sST1mLmZpbmRJbmRleChzdD0+c3QuZHJhZz09PWwpLEc9Zlt2XSx1ZT1HLmNsaWVudFJlY3QseWU9ST52PzE6LTEsRWU9dGhpcy5fZ2V0SXRlbU9mZnNldFB4KGZbSV0uY2xpZW50UmVjdCx1ZSx5ZSksQmU9dGhpcy5fZ2V0U2libGluZ09mZnNldFB4KEksZix5ZSksR2U9'@; put 'Zi5zbGljZSgpO3JldHVybiB3MWUoZixJLHYpLGYuZm9yRWFjaCgoc3QscHQpPT57aWYoR2VbcHRdPT09c3QpcmV0dXJuO2NvbnN0IGR0PXN0LmRyYWc9PT1sLHF0PWR0P0VlOkJlLG1uPWR0P2wuZ2V0UGxhY2Vob2xkZXJFbGVtZW50KCk6c3QuZHJhZy5nZXRSb290RWxlbWVudCgpO3N0Lm9m'@; put 'ZnNldCs9cXQsTT8obW4uc3R5bGUudHJhbnNmb3JtPU9MKGB0cmFuc2xhdGUzZCgke01hdGgucm91bmQoc3Qub2Zmc2V0KX1weCwgMCwgMClgLHN0LmluaXRpYWxUcmFuc2Zvcm0pLEl4KHN0LmNsaWVudFJlY3QsMCxxdCkpOihtbi5zdHlsZS50cmFuc2Zvcm09T0woYHRyYW5zbGF0ZTNkKDAs'@; put 'ICR7TWF0aC5yb3VuZChzdC5vZmZzZXQpfXB4LCAwKWAsc3QuaW5pdGlhbFRyYW5zZm9ybSksSXgoc3QuY2xpZW50UmVjdCxxdCwwKSl9KSx0aGlzLl9wcmV2aW91c1N3YXAub3ZlcmxhcHM9VFkodWUsYSxkKSx0aGlzLl9wcmV2aW91c1N3YXAuZHJhZz1HLmRyYWcsdGhpcy5fcHJldmlvdXNT'@; put 'd2FwLmRlbHRhPU0/aC54OmgueSx7cHJldmlvdXNJbmRleDpJLGN1cnJlbnRJbmRleDp2fX1lbnRlcihsLGEsZCxoKXtjb25zdCBmPW51bGw9PWh8fGg8MD90aGlzLl9nZXRJdGVtSW5kZXhGcm9tUG9pbnRlclBvc2l0aW9uKGwsYSxkKTpoLHY9dGhpcy5fYWN0aXZlRHJhZ2dhYmxlcyxNPXYu'@; put 'aW5kZXhPZihsKSxJPWwuZ2V0UGxhY2Vob2xkZXJFbGVtZW50KCk7bGV0IEc9dltmXTtpZihHPT09bCYmKEc9dltmKzFdKSwhRyYmKG51bGw9PWZ8fC0xPT09Znx8Zjx2Lmxlbmd0aC0xKSYmdGhpcy5fc2hvdWxkRW50ZXJBc0ZpcnN0Q2hpbGQoYSxkKSYmKEc9dlswXSksTT4tMSYmdi5zcGxp'@; put 'Y2UoTSwxKSxHJiYhdGhpcy5fZHJhZ0Ryb3BSZWdpc3RyeS5pc0RyYWdnaW5nKEcpKXtjb25zdCByZT1HLmdldFJvb3RFbGVtZW50KCk7cmUucGFyZW50RWxlbWVudC5pbnNlcnRCZWZvcmUoSSxyZSksdi5zcGxpY2UoZiwwLGwpfWVsc2UgRWQodGhpcy5fZWxlbWVudCkuYXBwZW5kQ2hpbGQo'@; put 'SSksdi5wdXNoKGwpO0kuc3R5bGUudHJhbnNmb3JtPSIiLHRoaXMuX2NhY2hlSXRlbVBvc2l0aW9ucygpfXdpdGhJdGVtcyhsKXt0aGlzLl9hY3RpdmVEcmFnZ2FibGVzPWwuc2xpY2UoKSx0aGlzLl9jYWNoZUl0ZW1Qb3NpdGlvbnMoKX13aXRoU29ydFByZWRpY2F0ZShsKXt0aGlzLl9zb3J0'@; put 'UHJlZGljYXRlPWx9cmVzZXQoKXt0aGlzLl9hY3RpdmVEcmFnZ2FibGVzLmZvckVhY2gobD0+e2NvbnN0IGE9bC5nZXRSb290RWxlbWVudCgpO2lmKGEpe2NvbnN0IGQ9dGhpcy5faXRlbVBvc2l0aW9ucy5maW5kKGg9PmguZHJhZz09PWwpPy5pbml0aWFsVHJhbnNmb3JtO2Euc3R5bGUudHJh'@; put 'bnNmb3JtPWR8fCIifX0pLHRoaXMuX2l0ZW1Qb3NpdGlvbnM9W10sdGhpcy5fYWN0aXZlRHJhZ2dhYmxlcz1bXSx0aGlzLl9wcmV2aW91c1N3YXAuZHJhZz1udWxsLHRoaXMuX3ByZXZpb3VzU3dhcC5kZWx0YT0wLHRoaXMuX3ByZXZpb3VzU3dhcC5vdmVybGFwcz0hMX1nZXRBY3RpdmVJdGVt'@; put 'c1NuYXBzaG90KCl7cmV0dXJuIHRoaXMuX2FjdGl2ZURyYWdnYWJsZXN9Z2V0SXRlbUluZGV4KGwpe3JldHVybigiaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uJiYicnRsIj09PXRoaXMuZGlyZWN0aW9uP3RoaXMuX2l0ZW1Qb3NpdGlvbnMuc2xpY2UoKS5yZXZlcnNlKCk6dGhpcy5f'@; put 'aXRlbVBvc2l0aW9ucykuZmluZEluZGV4KGQ9PmQuZHJhZz09PWwpfXVwZGF0ZU9uU2Nyb2xsKGwsYSl7dGhpcy5faXRlbVBvc2l0aW9ucy5mb3JFYWNoKCh7Y2xpZW50UmVjdDpkfSk9PntJeChkLGwsYSl9KSx0aGlzLl9pdGVtUG9zaXRpb25zLmZvckVhY2goKHtkcmFnOmR9KT0+e3RoaXMu'@; put 'X2RyYWdEcm9wUmVnaXN0cnkuaXNEcmFnZ2luZyhkKSYmZC5fc29ydEZyb21MYXN0UG9pbnRlclBvc2l0aW9uKCl9KX1fY2FjaGVJdGVtUG9zaXRpb25zKCl7Y29uc3QgbD0iaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uO3RoaXMuX2l0ZW1Qb3NpdGlvbnM9dGhpcy5fYWN0aXZlRHJh'@; put 'Z2dhYmxlcy5tYXAoYT0+e2NvbnN0IGQ9YS5nZXRWaXNpYmxlRWxlbWVudCgpO3JldHVybntkcmFnOmEsb2Zmc2V0OjAsaW5pdGlhbFRyYW5zZm9ybTpkLnN0eWxlLnRyYW5zZm9ybXx8IiIsY2xpZW50UmVjdDpFWShkKX19KS5zb3J0KChhLGQpPT5sP2EuY2xpZW50UmVjdC5sZWZ0LWQuY2xp'@; put 'ZW50UmVjdC5sZWZ0OmEuY2xpZW50UmVjdC50b3AtZC5jbGllbnRSZWN0LnRvcCl9X2dldEl0ZW1PZmZzZXRQeChsLGEsZCl7Y29uc3QgaD0iaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uO2xldCBmPWg/YS5sZWZ0LWwubGVmdDphLnRvcC1sLnRvcDtyZXR1cm4tMT09PWQmJihmKz1o'@; put 'P2Eud2lkdGgtbC53aWR0aDphLmhlaWdodC1sLmhlaWdodCksZn1fZ2V0U2libGluZ09mZnNldFB4KGwsYSxkKXtjb25zdCBoPSJob3Jpem9udGFsIj09PXRoaXMub3JpZW50YXRpb24sZj1hW2xdLmNsaWVudFJlY3Qsdj1hW2wrLTEqZF07bGV0IE09ZltoPyJ3aWR0aCI6ImhlaWdodCJdKmQ7'@; put 'aWYodil7Y29uc3QgST1oPyJsZWZ0IjoidG9wIixHPWg/InJpZ2h0IjoiYm90dG9tIjstMT09PWQ/TS09di5jbGllbnRSZWN0W0ldLWZbR106TSs9ZltJXS12LmNsaWVudFJlY3RbR119cmV0dXJuIE19X3Nob3VsZEVudGVyQXNGaXJzdENoaWxkKGwsYSl7aWYoIXRoaXMuX2FjdGl2ZURyYWdn'@; put 'YWJsZXMubGVuZ3RoKXJldHVybiExO2NvbnN0IGQ9dGhpcy5faXRlbVBvc2l0aW9ucyxoPSJob3Jpem9udGFsIj09PXRoaXMub3JpZW50YXRpb247aWYoZFswXS5kcmFnIT09dGhpcy5fYWN0aXZlRHJhZ2dhYmxlc1swXSl7Y29uc3Qgdj1kW2QubGVuZ3RoLTFdLmNsaWVudFJlY3Q7cmV0dXJu'@; put 'IGg/bD49di5yaWdodDphPj12LmJvdHRvbX17Y29uc3Qgdj1kWzBdLmNsaWVudFJlY3Q7cmV0dXJuIGg/bDw9di5sZWZ0OmE8PXYudG9wfX1fZ2V0SXRlbUluZGV4RnJvbVBvaW50ZXJQb3NpdGlvbihsLGEsZCxoKXtjb25zdCBmPSJob3Jpem9udGFsIj09PXRoaXMub3JpZW50YXRpb24sdj10'@; put 'aGlzLl9pdGVtUG9zaXRpb25zLmZpbmRJbmRleCgoe2RyYWc6TSxjbGllbnRSZWN0Okl9KT0+TSE9PWwmJigoIWh8fE0hPT10aGlzLl9wcmV2aW91c1N3YXAuZHJhZ3x8IXRoaXMuX3ByZXZpb3VzU3dhcC5vdmVybGFwc3x8KGY/aC54OmgueSkhPT10aGlzLl9wcmV2aW91c1N3YXAuZGVsdGEp'@; put 'JiYoZj9hPj1NYXRoLmZsb29yKEkubGVmdCkmJmE8TWF0aC5mbG9vcihJLnJpZ2h0KTpkPj1NYXRoLmZsb29yKEkudG9wKSYmZDxNYXRoLmZsb29yKEkuYm90dG9tKSkpKTtyZXR1cm4tMSE9PXYmJnRoaXMuX3NvcnRQcmVkaWNhdGUodixsKT92Oi0xfX12YXIgUjI9ZnVuY3Rpb24oYyl7cmV0'@; put 'dXJuIGNbYy5OT05FPTBdPSJOT05FIixjW2MuVVA9MV09IlVQIixjW2MuRE9XTj0yXT0iRE9XTiIsY30oUjJ8fHt9KSxVMT1mdW5jdGlvbihjKXtyZXR1cm4gY1tjLk5PTkU9MF09Ik5PTkUiLGNbYy5MRUZUPTFdPSJMRUZUIixjW2MuUklHSFQ9Ml09IlJJR0hUIixjfShVMXx8e30pO2NsYXNz'@; put 'IG5IZXtjb25zdHJ1Y3RvcihsLGEsZCxoLGYpe3RoaXMuX2RyYWdEcm9wUmVnaXN0cnk9YSx0aGlzLl9uZ1pvbmU9aCx0aGlzLl92aWV3cG9ydFJ1bGVyPWYsdGhpcy5kaXNhYmxlZD0hMSx0aGlzLnNvcnRpbmdEaXNhYmxlZD0hMSx0aGlzLmF1dG9TY3JvbGxEaXNhYmxlZD0hMSx0aGlzLmF1'@; put 'dG9TY3JvbGxTdGVwPTIsdGhpcy5lbnRlclByZWRpY2F0ZT0oKT0+ITAsdGhpcy5zb3J0UHJlZGljYXRlPSgpPT4hMCx0aGlzLmJlZm9yZVN0YXJ0ZWQ9bmV3IEduLHRoaXMuZW50ZXJlZD1uZXcgR24sdGhpcy5leGl0ZWQ9bmV3IEduLHRoaXMuZHJvcHBlZD1uZXcgR24sdGhpcy5zb3J0ZWQ9'@; put 'bmV3IEduLHRoaXMucmVjZWl2aW5nU3RhcnRlZD1uZXcgR24sdGhpcy5yZWNlaXZpbmdTdG9wcGVkPW5ldyBHbix0aGlzLl9pc0RyYWdnaW5nPSExLHRoaXMuX2RyYWdnYWJsZXM9W10sdGhpcy5fc2libGluZ3M9W10sdGhpcy5fYWN0aXZlU2libGluZ3M9bmV3IFNldCx0aGlzLl92aWV3cG9y'@; put 'dFNjcm9sbFN1YnNjcmlwdGlvbj1KdC5FTVBUWSx0aGlzLl92ZXJ0aWNhbFNjcm9sbERpcmVjdGlvbj1SMi5OT05FLHRoaXMuX2hvcml6b250YWxTY3JvbGxEaXJlY3Rpb249VTEuTk9ORSx0aGlzLl9zdG9wU2Nyb2xsVGltZXJzPW5ldyBHbix0aGlzLl9jYWNoZWRTaGFkb3dSb290PW51bGws'@; put 'dGhpcy5fc3RhcnRTY3JvbGxJbnRlcnZhbD0oKT0+e3RoaXMuX3N0b3BTY3JvbGxpbmcoKSxmdW5jdGlvbiBHRmUoYz0wLGw9RUwpe3JldHVybiBjPDAmJihjPTApLFEwZShjLGMsbCl9KDAscTBlKS5waXBlKEgwKHRoaXMuX3N0b3BTY3JvbGxUaW1lcnMpKS5zdWJzY3JpYmUoKCk9Pntjb25z'@; put 'dCB2PXRoaXMuX3Njcm9sbE5vZGUsTT10aGlzLmF1dG9TY3JvbGxTdGVwO3RoaXMuX3ZlcnRpY2FsU2Nyb2xsRGlyZWN0aW9uPT09UjIuVVA/di5zY3JvbGxCeSgwLC1NKTp0aGlzLl92ZXJ0aWNhbFNjcm9sbERpcmVjdGlvbj09PVIyLkRPV04mJnYuc2Nyb2xsQnkoMCxNKSx0aGlzLl9ob3Jp'@; put 'em9udGFsU2Nyb2xsRGlyZWN0aW9uPT09VTEuTEVGVD92LnNjcm9sbEJ5KC1NLDApOnRoaXMuX2hvcml6b250YWxTY3JvbGxEaXJlY3Rpb249PT1VMS5SSUdIVCYmdi5zY3JvbGxCeShNLDApfSl9LHRoaXMuZWxlbWVudD1FZChsKSx0aGlzLl9kb2N1bWVudD1kLHRoaXMud2l0aFNjcm9sbGFi'@; put 'bGVQYXJlbnRzKFt0aGlzLmVsZW1lbnRdKSxhLnJlZ2lzdGVyRHJvcENvbnRhaW5lcih0aGlzKSx0aGlzLl9wYXJlbnRQb3NpdGlvbnM9bmV3IGMxZShkKSx0aGlzLl9zb3J0U3RyYXRlZ3k9bmV3IHRIZSh0aGlzLmVsZW1lbnQsYSksdGhpcy5fc29ydFN0cmF0ZWd5LndpdGhTb3J0UHJlZGlj'@; put 'YXRlKCh2LE0pPT50aGlzLnNvcnRQcmVkaWNhdGUodixNLHRoaXMpKX1kaXNwb3NlKCl7dGhpcy5fc3RvcFNjcm9sbGluZygpLHRoaXMuX3N0b3BTY3JvbGxUaW1lcnMuY29tcGxldGUoKSx0aGlzLl92aWV3cG9ydFNjcm9sbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuYmVmb3Jl'@; put 'U3RhcnRlZC5jb21wbGV0ZSgpLHRoaXMuZW50ZXJlZC5jb21wbGV0ZSgpLHRoaXMuZXhpdGVkLmNvbXBsZXRlKCksdGhpcy5kcm9wcGVkLmNvbXBsZXRlKCksdGhpcy5zb3J0ZWQuY29tcGxldGUoKSx0aGlzLnJlY2VpdmluZ1N0YXJ0ZWQuY29tcGxldGUoKSx0aGlzLnJlY2VpdmluZ1N0b3Bw'@; put 'ZWQuY29tcGxldGUoKSx0aGlzLl9hY3RpdmVTaWJsaW5ncy5jbGVhcigpLHRoaXMuX3Njcm9sbE5vZGU9bnVsbCx0aGlzLl9wYXJlbnRQb3NpdGlvbnMuY2xlYXIoKSx0aGlzLl9kcmFnRHJvcFJlZ2lzdHJ5LnJlbW92ZURyb3BDb250YWluZXIodGhpcyl9aXNEcmFnZ2luZygpe3JldHVybiB0'@; put 'aGlzLl9pc0RyYWdnaW5nfXN0YXJ0KCl7dGhpcy5fZHJhZ2dpbmdTdGFydGVkKCksdGhpcy5fbm90aWZ5UmVjZWl2aW5nU2libGluZ3MoKX1lbnRlcihsLGEsZCxoKXt0aGlzLl9kcmFnZ2luZ1N0YXJ0ZWQoKSxudWxsPT1oJiZ0aGlzLnNvcnRpbmdEaXNhYmxlZCYmKGg9dGhpcy5fZHJhZ2dh'@; put 'Ymxlcy5pbmRleE9mKGwpKSx0aGlzLl9zb3J0U3RyYXRlZ3kuZW50ZXIobCxhLGQsaCksdGhpcy5fY2FjaGVQYXJlbnRQb3NpdGlvbnMoKSx0aGlzLl9ub3RpZnlSZWNlaXZpbmdTaWJsaW5ncygpLHRoaXMuZW50ZXJlZC5uZXh0KHtpdGVtOmwsY29udGFpbmVyOnRoaXMsY3VycmVudEluZGV4'@; put 'OnRoaXMuZ2V0SXRlbUluZGV4KGwpfSl9ZXhpdChsKXt0aGlzLl9yZXNldCgpLHRoaXMuZXhpdGVkLm5leHQoe2l0ZW06bCxjb250YWluZXI6dGhpc30pfWRyb3AobCxhLGQsaCxmLHYsTSxJPXt9KXt0aGlzLl9yZXNldCgpLHRoaXMuZHJvcHBlZC5uZXh0KHtpdGVtOmwsY3VycmVudEluZGV4'@; put 'OmEscHJldmlvdXNJbmRleDpkLGNvbnRhaW5lcjp0aGlzLHByZXZpb3VzQ29udGFpbmVyOmgsaXNQb2ludGVyT3ZlckNvbnRhaW5lcjpmLGRpc3RhbmNlOnYsZHJvcFBvaW50Ok0sZXZlbnQ6SX0pfXdpdGhJdGVtcyhsKXtjb25zdCBhPXRoaXMuX2RyYWdnYWJsZXM7cmV0dXJuIHRoaXMuX2Ry'@; put 'YWdnYWJsZXM9bCxsLmZvckVhY2goZD0+ZC5fd2l0aERyb3BDb250YWluZXIodGhpcykpLHRoaXMuaXNEcmFnZ2luZygpJiYoYS5maWx0ZXIoaD0+aC5pc0RyYWdnaW5nKCkpLmV2ZXJ5KGg9Pi0xPT09bC5pbmRleE9mKGgpKT90aGlzLl9yZXNldCgpOnRoaXMuX3NvcnRTdHJhdGVneS53aXRo'@; put 'SXRlbXModGhpcy5fZHJhZ2dhYmxlcykpLHRoaXN9d2l0aERpcmVjdGlvbihsKXtyZXR1cm4gdGhpcy5fc29ydFN0cmF0ZWd5LmRpcmVjdGlvbj1sLHRoaXN9Y29ubmVjdGVkVG8obCl7cmV0dXJuIHRoaXMuX3NpYmxpbmdzPWwuc2xpY2UoKSx0aGlzfXdpdGhPcmllbnRhdGlvbihsKXtyZXR1'@; put 'cm4gdGhpcy5fc29ydFN0cmF0ZWd5Lm9yaWVudGF0aW9uPWwsdGhpc313aXRoU2Nyb2xsYWJsZVBhcmVudHMobCl7Y29uc3QgYT1FZCh0aGlzLmVsZW1lbnQpO3JldHVybiB0aGlzLl9zY3JvbGxhYmxlRWxlbWVudHM9LTE9PT1sLmluZGV4T2YoYSk/W2EsLi4ubF06bC5zbGljZSgpLHRoaXN9'@; put 'Z2V0U2Nyb2xsYWJsZVBhcmVudHMoKXtyZXR1cm4gdGhpcy5fc2Nyb2xsYWJsZUVsZW1lbnRzfWdldEl0ZW1JbmRleChsKXtyZXR1cm4gdGhpcy5faXNEcmFnZ2luZz90aGlzLl9zb3J0U3RyYXRlZ3kuZ2V0SXRlbUluZGV4KGwpOnRoaXMuX2RyYWdnYWJsZXMuaW5kZXhPZihsKX1pc1JlY2Vp'@; put 'dmluZygpe3JldHVybiB0aGlzLl9hY3RpdmVTaWJsaW5ncy5zaXplPjB9X3NvcnRJdGVtKGwsYSxkLGgpe2lmKHRoaXMuc29ydGluZ0Rpc2FibGVkfHwhdGhpcy5fZG9tUmVjdHx8IWwxZSh0aGlzLl9kb21SZWN0LC4wNSxhLGQpKXJldHVybjtjb25zdCBmPXRoaXMuX3NvcnRTdHJhdGVneS5z'@; put 'b3J0KGwsYSxkLGgpO2YmJnRoaXMuc29ydGVkLm5leHQoe3ByZXZpb3VzSW5kZXg6Zi5wcmV2aW91c0luZGV4LGN1cnJlbnRJbmRleDpmLmN1cnJlbnRJbmRleCxjb250YWluZXI6dGhpcyxpdGVtOmx9KX1fc3RhcnRTY3JvbGxpbmdJZk5lY2Vzc2FyeShsLGEpe2lmKHRoaXMuYXV0b1Njcm9s'@; put 'bERpc2FibGVkKXJldHVybjtsZXQgZCxoPVIyLk5PTkUsZj1VMS5OT05FO2lmKHRoaXMuX3BhcmVudFBvc2l0aW9ucy5wb3NpdGlvbnMuZm9yRWFjaCgodixNKT0+e009PT10aGlzLl9kb2N1bWVudHx8IXYuY2xpZW50UmVjdHx8ZHx8bDFlKHYuY2xpZW50UmVjdCwuMDUsbCxhKSYmKFtoLGZd'@; put 'PWZ1bmN0aW9uIHJIZShjLGwsYSxkLGgpe2NvbnN0IGY9TTFlKGwsaCksdj14MWUobCxkKTtsZXQgTT1SMi5OT05FLEk9VTEuTk9ORTtpZihmKXtjb25zdCBHPWMuc2Nyb2xsVG9wO2Y9PT1SMi5VUD9HPjAmJihNPVIyLlVQKTpjLnNjcm9sbEhlaWdodC1HPmMuY2xpZW50SGVpZ2h0JiYoTT1S'@; put 'Mi5ET1dOKX1pZih2KXtjb25zdCBHPWMuc2Nyb2xsTGVmdDsicnRsIj09PWE/dj09PVUxLlJJR0hUP0c8MCYmKEk9VTEuUklHSFQpOmMuc2Nyb2xsV2lkdGgrRz5jLmNsaWVudFdpZHRoJiYoST1VMS5MRUZUKTp2PT09VTEuTEVGVD9HPjAmJihJPVUxLkxFRlQpOmMuc2Nyb2xsV2lkdGgtRz5j'@; put 'LmNsaWVudFdpZHRoJiYoST1VMS5SSUdIVCl9cmV0dXJuW00sSV19KE0sdi5jbGllbnRSZWN0LHRoaXMuX3NvcnRTdHJhdGVneS5kaXJlY3Rpb24sbCxhKSwoaHx8ZikmJihkPU0pKX0pLCFoJiYhZil7Y29uc3R7d2lkdGg6dixoZWlnaHQ6TX09dGhpcy5fdmlld3BvcnRSdWxlci5nZXRWaWV3'@; put 'cG9ydFNpemUoKSxJPXt3aWR0aDp2LGhlaWdodDpNLHRvcDowLHJpZ2h0OnYsYm90dG9tOk0sbGVmdDowfTtoPU0xZShJLGEpLGY9eDFlKEksbCksZD13aW5kb3d9ZCYmKGghPT10aGlzLl92ZXJ0aWNhbFNjcm9sbERpcmVjdGlvbnx8ZiE9PXRoaXMuX2hvcml6b250YWxTY3JvbGxEaXJlY3Rp'@; put 'b258fGQhPT10aGlzLl9zY3JvbGxOb2RlKSYmKHRoaXMuX3ZlcnRpY2FsU2Nyb2xsRGlyZWN0aW9uPWgsdGhpcy5faG9yaXpvbnRhbFNjcm9sbERpcmVjdGlvbj1mLHRoaXMuX3Njcm9sbE5vZGU9ZCwoaHx8ZikmJmQ/dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKHRoaXMuX3N0YXJ0'@; put 'U2Nyb2xsSW50ZXJ2YWwpOnRoaXMuX3N0b3BTY3JvbGxpbmcoKSl9X3N0b3BTY3JvbGxpbmcoKXt0aGlzLl9zdG9wU2Nyb2xsVGltZXJzLm5leHQoKX1fZHJhZ2dpbmdTdGFydGVkKCl7Y29uc3QgbD1FZCh0aGlzLmVsZW1lbnQpLnN0eWxlO3RoaXMuYmVmb3JlU3RhcnRlZC5uZXh0KCksdGhp'@; put 'cy5faXNEcmFnZ2luZz0hMCx0aGlzLl9pbml0aWFsU2Nyb2xsU25hcD1sLm1zU2Nyb2xsU25hcFR5cGV8fGwuc2Nyb2xsU25hcFR5cGV8fCIiLGwuc2Nyb2xsU25hcFR5cGU9bC5tc1Njcm9sbFNuYXBUeXBlPSJub25lIix0aGlzLl9zb3J0U3RyYXRlZ3kuc3RhcnQodGhpcy5fZHJhZ2dhYmxl'@; put 'cyksdGhpcy5fY2FjaGVQYXJlbnRQb3NpdGlvbnMoKSx0aGlzLl92aWV3cG9ydFNjcm9sbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX2xpc3RlblRvU2Nyb2xsRXZlbnRzKCl9X2NhY2hlUGFyZW50UG9zaXRpb25zKCl7Y29uc3QgbD1FZCh0aGlzLmVsZW1lbnQpO3RoaXMuX3Bh'@; put 'cmVudFBvc2l0aW9ucy5jYWNoZSh0aGlzLl9zY3JvbGxhYmxlRWxlbWVudHMpLHRoaXMuX2RvbVJlY3Q9dGhpcy5fcGFyZW50UG9zaXRpb25zLnBvc2l0aW9ucy5nZXQobCkuY2xpZW50UmVjdH1fcmVzZXQoKXt0aGlzLl9pc0RyYWdnaW5nPSExO2NvbnN0IGw9RWQodGhpcy5lbGVtZW50KS5z'@; put 'dHlsZTtsLnNjcm9sbFNuYXBUeXBlPWwubXNTY3JvbGxTbmFwVHlwZT10aGlzLl9pbml0aWFsU2Nyb2xsU25hcCx0aGlzLl9zaWJsaW5ncy5mb3JFYWNoKGE9PmEuX3N0b3BSZWNlaXZpbmcodGhpcykpLHRoaXMuX3NvcnRTdHJhdGVneS5yZXNldCgpLHRoaXMuX3N0b3BTY3JvbGxpbmcoKSx0'@; put 'aGlzLl92aWV3cG9ydFNjcm9sbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMuX3BhcmVudFBvc2l0aW9ucy5jbGVhcigpfV9pc092ZXJDb250YWluZXIobCxhKXtyZXR1cm4gbnVsbCE9dGhpcy5fZG9tUmVjdCYmVFkodGhpcy5fZG9tUmVjdCxsLGEpfV9nZXRTaWJsaW5nQ29udGFp'@; put 'bmVyRnJvbVBvc2l0aW9uKGwsYSxkKXtyZXR1cm4gdGhpcy5fc2libGluZ3MuZmluZChoPT5oLl9jYW5SZWNlaXZlKGwsYSxkKSl9X2NhblJlY2VpdmUobCxhLGQpe2lmKCF0aGlzLl9kb21SZWN0fHwhVFkodGhpcy5fZG9tUmVjdCxhLGQpfHwhdGhpcy5lbnRlclByZWRpY2F0ZShsLHRoaXMp'@; put 'KXJldHVybiExO2NvbnN0IGg9dGhpcy5fZ2V0U2hhZG93Um9vdCgpLmVsZW1lbnRGcm9tUG9pbnQoYSxkKTtpZighaClyZXR1cm4hMTtjb25zdCBmPUVkKHRoaXMuZWxlbWVudCk7cmV0dXJuIGg9PT1mfHxmLmNvbnRhaW5zKGgpfV9zdGFydFJlY2VpdmluZyhsLGEpe2NvbnN0IGQ9dGhpcy5f'@; put 'YWN0aXZlU2libGluZ3M7IWQuaGFzKGwpJiZhLmV2ZXJ5KGg9PnRoaXMuZW50ZXJQcmVkaWNhdGUoaCx0aGlzKXx8dGhpcy5fZHJhZ2dhYmxlcy5pbmRleE9mKGgpPi0xKSYmKGQuYWRkKGwpLHRoaXMuX2NhY2hlUGFyZW50UG9zaXRpb25zKCksdGhpcy5fbGlzdGVuVG9TY3JvbGxFdmVudHMo'@; put 'KSx0aGlzLnJlY2VpdmluZ1N0YXJ0ZWQubmV4dCh7aW5pdGlhdG9yOmwscmVjZWl2ZXI6dGhpcyxpdGVtczphfSkpfV9zdG9wUmVjZWl2aW5nKGwpe3RoaXMuX2FjdGl2ZVNpYmxpbmdzLmRlbGV0ZShsKSx0aGlzLl92aWV3cG9ydFNjcm9sbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRo'@; put 'aXMucmVjZWl2aW5nU3RvcHBlZC5uZXh0KHtpbml0aWF0b3I6bCxyZWNlaXZlcjp0aGlzfSl9X2xpc3RlblRvU2Nyb2xsRXZlbnRzKCl7dGhpcy5fdmlld3BvcnRTY3JvbGxTdWJzY3JpcHRpb249dGhpcy5fZHJhZ0Ryb3BSZWdpc3RyeS5zY3JvbGxlZCh0aGlzLl9nZXRTaGFkb3dSb290KCkp'@; put 'LnN1YnNjcmliZShsPT57aWYodGhpcy5pc0RyYWdnaW5nKCkpe2NvbnN0IGE9dGhpcy5fcGFyZW50UG9zaXRpb25zLmhhbmRsZVNjcm9sbChsKTthJiZ0aGlzLl9zb3J0U3RyYXRlZ3kudXBkYXRlT25TY3JvbGwoYS50b3AsYS5sZWZ0KX1lbHNlIHRoaXMuaXNSZWNlaXZpbmcoKSYmdGhpcy5f'@; put 'Y2FjaGVQYXJlbnRQb3NpdGlvbnMoKX0pfV9nZXRTaGFkb3dSb290KCl7aWYoIXRoaXMuX2NhY2hlZFNoYWRvd1Jvb3Qpe2NvbnN0IGw9WjBlKEVkKHRoaXMuZWxlbWVudCkpO3RoaXMuX2NhY2hlZFNoYWRvd1Jvb3Q9bHx8dGhpcy5fZG9jdW1lbnR9cmV0dXJuIHRoaXMuX2NhY2hlZFNoYWRv'@; put 'd1Jvb3R9X25vdGlmeVJlY2VpdmluZ1NpYmxpbmdzKCl7Y29uc3QgbD10aGlzLl9zb3J0U3RyYXRlZ3kuZ2V0QWN0aXZlSXRlbXNTbmFwc2hvdCgpLmZpbHRlcihhPT5hLmlzRHJhZ2dpbmcoKSk7dGhpcy5fc2libGluZ3MuZm9yRWFjaChhPT5hLl9zdGFydFJlY2VpdmluZyh0aGlzLGwpKX19'@; put 'ZnVuY3Rpb24gTTFlKGMsbCl7Y29uc3R7dG9wOmEsYm90dG9tOmQsaGVpZ2h0Omh9PWMsZj0uMDUqaDtyZXR1cm4gbD49YS1mJiZsPD1hK2Y/UjIuVVA6bD49ZC1mJiZsPD1kK2Y/UjIuRE9XTjpSMi5OT05FfWZ1bmN0aW9uIHgxZShjLGwpe2NvbnN0e2xlZnQ6YSxyaWdodDpkLHdpZHRoOmh9'@; put 'PWMsZj0uMDUqaDtyZXR1cm4gbD49YS1mJiZsPD1hK2Y/VTEuTEVGVDpsPj1kLWYmJmw8PWQrZj9VMS5SSUdIVDpVMS5OT05FfWNvbnN0IEhMPU1iKHtwYXNzaXZlOiExLGNhcHR1cmU6ITB9KSxOTD1uZXcgU2V0O2xldCBpSGU9KCgpPT57Y2xhc3MgY3tzdGF0aWN7dGhpcy5cdTAyNzVmYWM9'@; put 'ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKX19c3RhdGlje3RoaXMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbIm5nLWNvbXBvbmVudCJdXSxob3N0QXR0cnM6WyJjZGstZHJhZy1yZXNldHMtY29udGFpbmVyIiwiIl0sc3RhbmRhbG9uZTohMCxmZWF0dXJlczpbUUldLGRl'@; put 'Y2xzOjAsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGQsaCl7fSxzdHlsZXM6WyJAbGF5ZXIgY2RrLXJlc2V0c3suY2RrLWRyYWctcHJldmlld3tiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOm5vbmU7cGFkZGluZzowO2NvbG9yOmluaGVyaXR9fSJdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRl'@; put 'Y3Rpb246MH0pfX1yZXR1cm4gY30pKCksYUhlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkKXt0aGlzLl9uZ1pvbmU9YSx0aGlzLl9hcHBSZWY9aGkodXApLHRoaXMuX2Vudmlyb25tZW50SW5qZWN0b3I9aGkocWwpLHRoaXMuX2Ryb3BJbnN0YW5jZXM9bmV3IFNldCx0aGlzLl9kcmFn'@; put 'SW5zdGFuY2VzPW5ldyBTZXQsdGhpcy5fYWN0aXZlRHJhZ0luc3RhbmNlcz1bXSx0aGlzLl9nbG9iYWxMaXN0ZW5lcnM9bmV3IE1hcCx0aGlzLl9kcmFnZ2luZ1ByZWRpY2F0ZT1oPT5oLmlzRHJhZ2dpbmcoKSx0aGlzLnBvaW50ZXJNb3ZlPW5ldyBHbix0aGlzLnBvaW50ZXJVcD1uZXcgR24s'@; put 'dGhpcy5zY3JvbGw9bmV3IEduLHRoaXMuX3ByZXZlbnREZWZhdWx0V2hpbGVEcmFnZ2luZz1oPT57dGhpcy5fYWN0aXZlRHJhZ0luc3RhbmNlcy5sZW5ndGg+MCYmaC5wcmV2ZW50RGVmYXVsdCgpfSx0aGlzLl9wZXJzaXN0ZW50VG91Y2htb3ZlTGlzdGVuZXI9aD0+e3RoaXMuX2FjdGl2ZURy'@; put 'YWdJbnN0YW5jZXMubGVuZ3RoPjAmJih0aGlzLl9hY3RpdmVEcmFnSW5zdGFuY2VzLnNvbWUodGhpcy5fZHJhZ2dpbmdQcmVkaWNhdGUpJiZoLnByZXZlbnREZWZhdWx0KCksdGhpcy5wb2ludGVyTW92ZS5uZXh0KGgpKX0sdGhpcy5fZG9jdW1lbnQ9ZH1yZWdpc3RlckRyb3BDb250YWluZXIo'@; put 'YSl7dGhpcy5fZHJvcEluc3RhbmNlcy5oYXMoYSl8fHRoaXMuX2Ryb3BJbnN0YW5jZXMuYWRkKGEpfXJlZ2lzdGVyRHJhZ0l0ZW0oYSl7dGhpcy5fZHJhZ0luc3RhbmNlcy5hZGQoYSksMT09PXRoaXMuX2RyYWdJbnN0YW5jZXMuc2l6ZSYmdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFy'@; put 'KCgpPT57dGhpcy5fZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLl9wZXJzaXN0ZW50VG91Y2htb3ZlTGlzdGVuZXIsSEwpfSl9cmVtb3ZlRHJvcENvbnRhaW5lcihhKXt0aGlzLl9kcm9wSW5zdGFuY2VzLmRlbGV0ZShhKX1yZW1vdmVEcmFnSXRlbShhKXt0aGlz'@; put 'Ll9kcmFnSW5zdGFuY2VzLmRlbGV0ZShhKSx0aGlzLnN0b3BEcmFnZ2luZyhhKSwwPT09dGhpcy5fZHJhZ0luc3RhbmNlcy5zaXplJiZ0aGlzLl9kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMuX3BlcnNpc3RlbnRUb3VjaG1vdmVMaXN0ZW5lcixITCl9c3Rh'@; put 'cnREcmFnZ2luZyhhLGQpe2lmKCEodGhpcy5fYWN0aXZlRHJhZ0luc3RhbmNlcy5pbmRleE9mKGEpPi0xKSYmKHRoaXMuX2xvYWRSZXNldHMoKSx0aGlzLl9hY3RpdmVEcmFnSW5zdGFuY2VzLnB1c2goYSksMT09PXRoaXMuX2FjdGl2ZURyYWdJbnN0YW5jZXMubGVuZ3RoKSl7Y29uc3QgaD1k'@; put 'LnR5cGUuc3RhcnRzV2l0aCgidG91Y2giKTt0aGlzLl9nbG9iYWxMaXN0ZW5lcnMuc2V0KGg/InRvdWNoZW5kIjoibW91c2V1cCIse2hhbmRsZXI6Zj0+dGhpcy5wb2ludGVyVXAubmV4dChmKSxvcHRpb25zOiEwfSkuc2V0KCJzY3JvbGwiLHtoYW5kbGVyOmY9PnRoaXMuc2Nyb2xsLm5leHQo'@; put 'Ziksb3B0aW9uczohMH0pLnNldCgic2VsZWN0c3RhcnQiLHtoYW5kbGVyOnRoaXMuX3ByZXZlbnREZWZhdWx0V2hpbGVEcmFnZ2luZyxvcHRpb25zOkhMfSksaHx8dGhpcy5fZ2xvYmFsTGlzdGVuZXJzLnNldCgibW91c2Vtb3ZlIix7aGFuZGxlcjpmPT50aGlzLnBvaW50ZXJNb3ZlLm5leHQo'@; put 'Ziksb3B0aW9uczpITH0pLHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3RoaXMuX2dsb2JhbExpc3RlbmVycy5mb3JFYWNoKChmLHYpPT57dGhpcy5fZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih2LGYuaGFuZGxlcixmLm9wdGlvbnMpfSl9KX19c3RvcERyYWdnaW5nKGEp'@; put 'e2NvbnN0IGQ9dGhpcy5fYWN0aXZlRHJhZ0luc3RhbmNlcy5pbmRleE9mKGEpO2Q+LTEmJih0aGlzLl9hY3RpdmVEcmFnSW5zdGFuY2VzLnNwbGljZShkLDEpLDA9PT10aGlzLl9hY3RpdmVEcmFnSW5zdGFuY2VzLmxlbmd0aCYmdGhpcy5fY2xlYXJHbG9iYWxMaXN0ZW5lcnMoKSl9aXNEcmFn'@; put 'Z2luZyhhKXtyZXR1cm4gdGhpcy5fYWN0aXZlRHJhZ0luc3RhbmNlcy5pbmRleE9mKGEpPi0xfXNjcm9sbGVkKGEpe2NvbnN0IGQ9W3RoaXMuc2Nyb2xsXTtyZXR1cm4gYSYmYSE9PXRoaXMuX2RvY3VtZW50JiZkLnB1c2gobmV3IFF0KGg9PnRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxh'@; put 'cigoKT0+e2NvbnN0IHY9TT0+e3RoaXMuX2FjdGl2ZURyYWdJbnN0YW5jZXMubGVuZ3RoJiZoLm5leHQoTSl9O3JldHVybiBhLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdiwhMCksKCk9PnthLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdiwhMCl9fSkpKSx4eCguLi5kKX1uZ09u'@; put 'RGVzdHJveSgpe3RoaXMuX2RyYWdJbnN0YW5jZXMuZm9yRWFjaChhPT50aGlzLnJlbW92ZURyYWdJdGVtKGEpKSx0aGlzLl9kcm9wSW5zdGFuY2VzLmZvckVhY2goYT0+dGhpcy5yZW1vdmVEcm9wQ29udGFpbmVyKGEpKSx0aGlzLl9jbGVhckdsb2JhbExpc3RlbmVycygpLHRoaXMucG9pbnRl'@; put 'ck1vdmUuY29tcGxldGUoKSx0aGlzLnBvaW50ZXJVcC5jb21wbGV0ZSgpfV9jbGVhckdsb2JhbExpc3RlbmVycygpe3RoaXMuX2dsb2JhbExpc3RlbmVycy5mb3JFYWNoKChhLGQpPT57dGhpcy5fZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihkLGEuaGFuZGxlcixhLm9wdGlvbnMpfSks'@; put 'dGhpcy5fZ2xvYmFsTGlzdGVuZXJzLmNsZWFyKCl9X2xvYWRSZXNldHMoKXtpZighTkwuaGFzKHRoaXMuX2FwcFJlZikpe05MLmFkZCh0aGlzLl9hcHBSZWYpO2NvbnN0IGE9cFIoaUhlLHtlbnZpcm9ubWVudEluamVjdG9yOnRoaXMuX2Vudmlyb25tZW50SW5qZWN0b3J9KTt0aGlzLl9hcHBS'@; put 'ZWYub25EZXN0cm95KCgpPT57TkwuZGVsZXRlKHRoaXMuX2FwcFJlZiksMD09PU5MLnNpemUmJmEuZGVzdHJveSgpfSl9fXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpKENyKEdhKSxDcihtbykpfX1zdGF0aWN7dGhpcy5cdTAyNzVwcm92PXJuKHt0'@; put 'b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KX19cmV0dXJuIGN9KSgpO2NvbnN0IHNIZT17ZHJhZ1N0YXJ0VGhyZXNob2xkOjUscG9pbnRlckRpcmVjdGlvbkNoYW5nZVRocmVzaG9sZDo1fTtsZXQgVkw9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQs'@; put 'aCxmKXt0aGlzLl9kb2N1bWVudD1hLHRoaXMuX25nWm9uZT1kLHRoaXMuX3ZpZXdwb3J0UnVsZXI9aCx0aGlzLl9kcmFnRHJvcFJlZ2lzdHJ5PWZ9Y3JlYXRlRHJhZyhhLGQ9c0hlKXtyZXR1cm4gbmV3IFFGZShhLGQsdGhpcy5fZG9jdW1lbnQsdGhpcy5fbmdab25lLHRoaXMuX3ZpZXdwb3J0'@; put 'UnVsZXIsdGhpcy5fZHJhZ0Ryb3BSZWdpc3RyeSl9Y3JlYXRlRHJvcExpc3QoYSl7cmV0dXJuIG5ldyBuSGUoYSx0aGlzLl9kcmFnRHJvcFJlZ2lzdHJ5LHRoaXMuX2RvY3VtZW50LHRoaXMuX25nWm9uZSx0aGlzLl92aWV3cG9ydFJ1bGVyKX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rp'@; put 'b24oZCl7cmV0dXJuIG5ldyhkfHxjKShDcihtbyksQ3IoR2EpLENyKFJMKSxDcihhSGUpKX19c3RhdGlje3RoaXMuXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSl9fXJldHVybiBjfSkoKTtjb25zdCBPeD1uZXcgU3QoIkNES19E'@; put 'UkFHX1BBUkVOVCIpLEUxZT1uZXcgU3QoIkNka0RyYWdIYW5kbGUiKTtsZXQgVDFlPSgoKT0+e2NsYXNzIGN7Z2V0IGRpc2FibGVkKCl7cmV0dXJuIHRoaXMuX2Rpc2FibGVkfXNldCBkaXNhYmxlZChhKXt0aGlzLl9kaXNhYmxlZD1hLHRoaXMuX3N0YXRlQ2hhbmdlcy5uZXh0KHRoaXMpfWNv'@; put 'bnN0cnVjdG9yKGEsZCl7dGhpcy5lbGVtZW50PWEsdGhpcy5fcGFyZW50RHJhZz1kLHRoaXMuX3N0YXRlQ2hhbmdlcz1uZXcgR24sdGhpcy5fZGlzYWJsZWQ9ITEsZD8uX2FkZEhhbmRsZSh0aGlzKX1uZ09uRGVzdHJveSgpe3RoaXMuX3BhcmVudERyYWc/Ll9yZW1vdmVIYW5kbGUodGhpcyks'@; put 'dGhpcy5fc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUoUWkpLCRlKE94LDEyKSl9fXN0YXRpY3t0aGlzLlx1MDI3NWRpcj1Fcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJjZGtEcmFnSGFuZGxlIiwi'@; put 'Il1dLGhvc3RBdHRyczpbMSwiY2RrLWRyYWctaGFuZGxlIl0saW5wdXRzOntkaXNhYmxlZDpbVm4uSGFzRGVjb3JhdG9ySW5wdXRUcmFuc2Zvcm0sImNka0RyYWdIYW5kbGVEaXNhYmxlZCIsImRpc2FibGVkIixzMV19LHN0YW5kYWxvbmU6ITAsZmVhdHVyZXM6W3VhKFt7cHJvdmlkZTpFMWUs'@; put 'dXNlRXhpc3Rpbmc6Y31dKSx6bF19KX19cmV0dXJuIGN9KSgpO2NvbnN0IGtZPW5ldyBTdCgiQ0RLX0RSQUdfQ09ORklHIiksRFk9bmV3IFN0KCJDZGtEcm9wTGlzdCIpO2xldCBJWT0oKCk9PntjbGFzcyBje3N0YXRpY3t0aGlzLl9kcmFnSW5zdGFuY2VzPVtdfWdldCBkaXNhYmxlZCgpe3Jl'@; put 'dHVybiB0aGlzLl9kaXNhYmxlZHx8dGhpcy5kcm9wQ29udGFpbmVyJiZ0aGlzLmRyb3BDb250YWluZXIuZGlzYWJsZWR9c2V0IGRpc2FibGVkKGEpe3RoaXMuX2Rpc2FibGVkPWEsdGhpcy5fZHJhZ1JlZi5kaXNhYmxlZD10aGlzLl9kaXNhYmxlZH1jb25zdHJ1Y3RvcihhLGQsaCxmLHYsTSxJ'@; put 'LEcscmUsdWUseWUpe3RoaXMuZWxlbWVudD1hLHRoaXMuZHJvcENvbnRhaW5lcj1kLHRoaXMuX25nWm9uZT1mLHRoaXMuX3ZpZXdDb250YWluZXJSZWY9dix0aGlzLl9kaXI9SSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZj1yZSx0aGlzLl9zZWxmSGFuZGxlPXVlLHRoaXMuX3BhcmVudERyYWc9'@; put 'eWUsdGhpcy5fZGVzdHJveWVkPW5ldyBHbix0aGlzLl9oYW5kbGVzPW5ldyBKcihbXSksdGhpcy5zdGFydGVkPW5ldyBLcix0aGlzLnJlbGVhc2VkPW5ldyBLcix0aGlzLmVuZGVkPW5ldyBLcix0aGlzLmVudGVyZWQ9bmV3IEtyLHRoaXMuZXhpdGVkPW5ldyBLcix0aGlzLmRyb3BwZWQ9bmV3'@; put 'IEtyLHRoaXMubW92ZWQ9bmV3IFF0KEVlPT57Y29uc3QgQmU9dGhpcy5fZHJhZ1JlZi5tb3ZlZC5waXBlKFByKEdlPT4oe3NvdXJjZTp0aGlzLHBvaW50ZXJQb3NpdGlvbjpHZS5wb2ludGVyUG9zaXRpb24sZXZlbnQ6R2UuZXZlbnQsZGVsdGE6R2UuZGVsdGEsZGlzdGFuY2U6R2UuZGlzdGFu'@; put 'Y2V9KSkpLnN1YnNjcmliZShFZSk7cmV0dXJuKCk9PntCZS51bnN1YnNjcmliZSgpfX0pLHRoaXMuX2RyYWdSZWY9Ry5jcmVhdGVEcmFnKGEse2RyYWdTdGFydFRocmVzaG9sZDpNJiZudWxsIT1NLmRyYWdTdGFydFRocmVzaG9sZD9NLmRyYWdTdGFydFRocmVzaG9sZDo1LHBvaW50ZXJEaXJl'@; put 'Y3Rpb25DaGFuZ2VUaHJlc2hvbGQ6TSYmbnVsbCE9TS5wb2ludGVyRGlyZWN0aW9uQ2hhbmdlVGhyZXNob2xkP00ucG9pbnRlckRpcmVjdGlvbkNoYW5nZVRocmVzaG9sZDo1LHpJbmRleDpNPy56SW5kZXh9KSx0aGlzLl9kcmFnUmVmLmRhdGE9dGhpcyxjLl9kcmFnSW5zdGFuY2VzLnB1c2go'@; put 'dGhpcyksTSYmdGhpcy5fYXNzaWduRGVmYXVsdHMoTSksZCYmKHRoaXMuX2RyYWdSZWYuX3dpdGhEcm9wQ29udGFpbmVyKGQuX2Ryb3BMaXN0UmVmKSxkLmFkZEl0ZW0odGhpcykpLHRoaXMuX3N5bmNJbnB1dHModGhpcy5fZHJhZ1JlZiksdGhpcy5faGFuZGxlRXZlbnRzKHRoaXMuX2RyYWdS'@; put 'ZWYpfWdldFBsYWNlaG9sZGVyRWxlbWVudCgpe3JldHVybiB0aGlzLl9kcmFnUmVmLmdldFBsYWNlaG9sZGVyRWxlbWVudCgpfWdldFJvb3RFbGVtZW50KCl7cmV0dXJuIHRoaXMuX2RyYWdSZWYuZ2V0Um9vdEVsZW1lbnQoKX1yZXNldCgpe3RoaXMuX2RyYWdSZWYucmVzZXQoKX1nZXRGcmVl'@; put 'RHJhZ1Bvc2l0aW9uKCl7cmV0dXJuIHRoaXMuX2RyYWdSZWYuZ2V0RnJlZURyYWdQb3NpdGlvbigpfXNldEZyZWVEcmFnUG9zaXRpb24oYSl7dGhpcy5fZHJhZ1JlZi5zZXRGcmVlRHJhZ1Bvc2l0aW9uKGEpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxh'@; put 'cigoKT0+e3RoaXMuX25nWm9uZS5vblN0YWJsZS5waXBlKGdoKDEpLEgwKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKT0+e3RoaXMuX3VwZGF0ZVJvb3RFbGVtZW50KCksdGhpcy5fc2V0dXBIYW5kbGVzTGlzdGVuZXIoKSx0aGlzLmZyZWVEcmFnUG9zaXRpb24mJnRoaXMuX2RyYWdS'@; put 'ZWYuc2V0RnJlZURyYWdQb3NpdGlvbih0aGlzLmZyZWVEcmFnUG9zaXRpb24pfSl9KX1uZ09uQ2hhbmdlcyhhKXtjb25zdCBkPWEucm9vdEVsZW1lbnRTZWxlY3RvcixoPWEuZnJlZURyYWdQb3NpdGlvbjtkJiYhZC5maXJzdENoYW5nZSYmdGhpcy5fdXBkYXRlUm9vdEVsZW1lbnQoKSxoJiYh'@; put 'aC5maXJzdENoYW5nZSYmdGhpcy5mcmVlRHJhZ1Bvc2l0aW9uJiZ0aGlzLl9kcmFnUmVmLnNldEZyZWVEcmFnUG9zaXRpb24odGhpcy5mcmVlRHJhZ1Bvc2l0aW9uKX1uZ09uRGVzdHJveSgpe3RoaXMuZHJvcENvbnRhaW5lciYmdGhpcy5kcm9wQ29udGFpbmVyLnJlbW92ZUl0ZW0odGhpcyk7'@; put 'Y29uc3QgYT1jLl9kcmFnSW5zdGFuY2VzLmluZGV4T2YodGhpcyk7YT4tMSYmYy5fZHJhZ0luc3RhbmNlcy5zcGxpY2UoYSwxKSx0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0aGlzLl9oYW5kbGVzLmNvbXBsZXRlKCksdGhpcy5fZGVzdHJveWVkLm5leHQoKSx0aGlzLl9k'@; put 'ZXN0cm95ZWQuY29tcGxldGUoKSx0aGlzLl9kcmFnUmVmLmRpc3Bvc2UoKX0pfV9hZGRIYW5kbGUoYSl7Y29uc3QgZD10aGlzLl9oYW5kbGVzLmdldFZhbHVlKCk7ZC5wdXNoKGEpLHRoaXMuX2hhbmRsZXMubmV4dChkKX1fcmVtb3ZlSGFuZGxlKGEpe2NvbnN0IGQ9dGhpcy5faGFuZGxlcy5n'@; put 'ZXRWYWx1ZSgpLGg9ZC5pbmRleE9mKGEpO2g+LTEmJihkLnNwbGljZShoLDEpLHRoaXMuX2hhbmRsZXMubmV4dChkKSl9X3NldFByZXZpZXdUZW1wbGF0ZShhKXt0aGlzLl9wcmV2aWV3VGVtcGxhdGU9YX1fcmVzZXRQcmV2aWV3VGVtcGxhdGUoYSl7YT09PXRoaXMuX3ByZXZpZXdUZW1wbGF0'@; put 'ZSYmKHRoaXMuX3ByZXZpZXdUZW1wbGF0ZT1udWxsKX1fc2V0UGxhY2Vob2xkZXJUZW1wbGF0ZShhKXt0aGlzLl9wbGFjZWhvbGRlclRlbXBsYXRlPWF9X3Jlc2V0UGxhY2Vob2xkZXJUZW1wbGF0ZShhKXthPT09dGhpcy5fcGxhY2Vob2xkZXJUZW1wbGF0ZSYmKHRoaXMuX3BsYWNlaG9sZGVy'@; put 'VGVtcGxhdGU9bnVsbCl9X3VwZGF0ZVJvb3RFbGVtZW50KCl7Y29uc3QgYT10aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudDtsZXQgZD1hO3RoaXMucm9vdEVsZW1lbnRTZWxlY3RvciYmKGQ9dm9pZCAwIT09YS5jbG9zZXN0P2EuY2xvc2VzdCh0aGlzLnJvb3RFbGVtZW50U2VsZWN0b3IpOmEu'@; put 'cGFyZW50RWxlbWVudD8uY2xvc2VzdCh0aGlzLnJvb3RFbGVtZW50U2VsZWN0b3IpKSx0aGlzLl9kcmFnUmVmLndpdGhSb290RWxlbWVudChkfHxhKX1fZ2V0Qm91bmRhcnlFbGVtZW50KCl7Y29uc3QgYT10aGlzLmJvdW5kYXJ5RWxlbWVudDtyZXR1cm4gYT8ic3RyaW5nIj09dHlwZW9mIGE/'@; put 'dGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xvc2VzdChhKTpFZChhKTpudWxsfV9zeW5jSW5wdXRzKGEpe2EuYmVmb3JlU3RhcnRlZC5zdWJzY3JpYmUoKCk9PntpZighYS5pc0RyYWdnaW5nKCkpe2NvbnN0IGQ9dGhpcy5fZGlyLGg9dGhpcy5kcmFnU3RhcnREZWxheSxmPXRoaXMuX3Bs'@; put 'YWNlaG9sZGVyVGVtcGxhdGU/e3RlbXBsYXRlOnRoaXMuX3BsYWNlaG9sZGVyVGVtcGxhdGUudGVtcGxhdGVSZWYsY29udGV4dDp0aGlzLl9wbGFjZWhvbGRlclRlbXBsYXRlLmRhdGEsdmlld0NvbnRhaW5lcjp0aGlzLl92aWV3Q29udGFpbmVyUmVmfTpudWxsLHY9dGhpcy5fcHJldmlld1Rl'@; put 'bXBsYXRlP3t0ZW1wbGF0ZTp0aGlzLl9wcmV2aWV3VGVtcGxhdGUudGVtcGxhdGVSZWYsY29udGV4dDp0aGlzLl9wcmV2aWV3VGVtcGxhdGUuZGF0YSxtYXRjaFNpemU6dGhpcy5fcHJldmlld1RlbXBsYXRlLm1hdGNoU2l6ZSx2aWV3Q29udGFpbmVyOnRoaXMuX3ZpZXdDb250YWluZXJSZWZ9'@; put 'Om51bGw7YS5kaXNhYmxlZD10aGlzLmRpc2FibGVkLGEubG9ja0F4aXM9dGhpcy5sb2NrQXhpcyxhLmRyYWdTdGFydERlbGF5PSJvYmplY3QiPT10eXBlb2YgaCYmaD9oOmQ3KGgpLGEuY29uc3RyYWluUG9zaXRpb249dGhpcy5jb25zdHJhaW5Qb3NpdGlvbixhLnByZXZpZXdDbGFzcz10aGlz'@; put 'LnByZXZpZXdDbGFzcyxhLndpdGhCb3VuZGFyeUVsZW1lbnQodGhpcy5fZ2V0Qm91bmRhcnlFbGVtZW50KCkpLndpdGhQbGFjZWhvbGRlclRlbXBsYXRlKGYpLndpdGhQcmV2aWV3VGVtcGxhdGUodikud2l0aFByZXZpZXdDb250YWluZXIodGhpcy5wcmV2aWV3Q29udGFpbmVyfHwiZ2xvYmFs'@; put 'IiksZCYmYS53aXRoRGlyZWN0aW9uKGQudmFsdWUpfX0pLGEuYmVmb3JlU3RhcnRlZC5waXBlKGdoKDEpKS5zdWJzY3JpYmUoKCk9PntpZih0aGlzLl9wYXJlbnREcmFnKXJldHVybiB2b2lkIGEud2l0aFBhcmVudCh0aGlzLl9wYXJlbnREcmFnLl9kcmFnUmVmKTtsZXQgZD10aGlzLmVsZW1l'@; put 'bnQubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50O2Zvcig7ZDspe2lmKGQuY2xhc3NMaXN0LmNvbnRhaW5zKCJjZGstZHJhZyIpKXthLndpdGhQYXJlbnQoYy5fZHJhZ0luc3RhbmNlcy5maW5kKGg9PmguZWxlbWVudC5uYXRpdmVFbGVtZW50PT09ZCk/Ll9kcmFnUmVmfHxudWxsKTticmVh'@; put 'a31kPWQucGFyZW50RWxlbWVudH19KX1faGFuZGxlRXZlbnRzKGEpe2Euc3RhcnRlZC5zdWJzY3JpYmUoZD0+e3RoaXMuc3RhcnRlZC5lbWl0KHtzb3VyY2U6dGhpcyxldmVudDpkLmV2ZW50fSksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9KSxhLnJlbGVhc2VkLnN1'@; put 'YnNjcmliZShkPT57dGhpcy5yZWxlYXNlZC5lbWl0KHtzb3VyY2U6dGhpcyxldmVudDpkLmV2ZW50fSl9KSxhLmVuZGVkLnN1YnNjcmliZShkPT57dGhpcy5lbmRlZC5lbWl0KHtzb3VyY2U6dGhpcyxkaXN0YW5jZTpkLmRpc3RhbmNlLGRyb3BQb2ludDpkLmRyb3BQb2ludCxldmVudDpkLmV2'@; put 'ZW50fSksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9KSxhLmVudGVyZWQuc3Vic2NyaWJlKGQ9Pnt0aGlzLmVudGVyZWQuZW1pdCh7Y29udGFpbmVyOmQuY29udGFpbmVyLmRhdGEsaXRlbTp0aGlzLGN1cnJlbnRJbmRleDpkLmN1cnJlbnRJbmRleH0pfSksYS5leGl0'@; put 'ZWQuc3Vic2NyaWJlKGQ9Pnt0aGlzLmV4aXRlZC5lbWl0KHtjb250YWluZXI6ZC5jb250YWluZXIuZGF0YSxpdGVtOnRoaXN9KX0pLGEuZHJvcHBlZC5zdWJzY3JpYmUoZD0+e3RoaXMuZHJvcHBlZC5lbWl0KHtwcmV2aW91c0luZGV4OmQucHJldmlvdXNJbmRleCxjdXJyZW50SW5kZXg6ZC5j'@; put 'dXJyZW50SW5kZXgscHJldmlvdXNDb250YWluZXI6ZC5wcmV2aW91c0NvbnRhaW5lci5kYXRhLGNvbnRhaW5lcjpkLmNvbnRhaW5lci5kYXRhLGlzUG9pbnRlck92ZXJDb250YWluZXI6ZC5pc1BvaW50ZXJPdmVyQ29udGFpbmVyLGl0ZW06dGhpcyxkaXN0YW5jZTpkLmRpc3RhbmNlLGRyb3BQ'@; put 'b2ludDpkLmRyb3BQb2ludCxldmVudDpkLmV2ZW50fSl9KX1fYXNzaWduRGVmYXVsdHMoYSl7Y29uc3R7bG9ja0F4aXM6ZCxkcmFnU3RhcnREZWxheTpoLGNvbnN0cmFpblBvc2l0aW9uOmYscHJldmlld0NsYXNzOnYsYm91bmRhcnlFbGVtZW50Ok0sZHJhZ2dpbmdEaXNhYmxlZDpJLHJvb3RF'@; put 'bGVtZW50U2VsZWN0b3I6RyxwcmV2aWV3Q29udGFpbmVyOnJlfT1hO3RoaXMuZGlzYWJsZWQ9ST8/ITEsdGhpcy5kcmFnU3RhcnREZWxheT1ofHwwLGQmJih0aGlzLmxvY2tBeGlzPWQpLGYmJih0aGlzLmNvbnN0cmFpblBvc2l0aW9uPWYpLHYmJih0aGlzLnByZXZpZXdDbGFzcz12KSxNJiYo'@; put 'dGhpcy5ib3VuZGFyeUVsZW1lbnQ9TSksRyYmKHRoaXMucm9vdEVsZW1lbnRTZWxlY3Rvcj1HKSxyZSYmKHRoaXMucHJldmlld0NvbnRhaW5lcj1yZSl9X3NldHVwSGFuZGxlc0xpc3RlbmVyKCl7dGhpcy5faGFuZGxlcy5waXBlKFp1KGE9Pntjb25zdCBkPWEubWFwKGg9PmguZWxlbWVudCk7'@; put 'dGhpcy5fc2VsZkhhbmRsZSYmdGhpcy5yb290RWxlbWVudFNlbGVjdG9yJiZkLnB1c2godGhpcy5lbGVtZW50KSx0aGlzLl9kcmFnUmVmLndpdGhIYW5kbGVzKGQpfSksajEoYT0+eHgoLi4uYS5tYXAoZD0+ZC5fc3RhdGVDaGFuZ2VzLnBpcGUoVDIoZCkpKSkpLEgwKHRoaXMuX2Rlc3Ryb3ll'@; put 'ZCkpLnN1YnNjcmliZShhPT57Y29uc3QgZD10aGlzLl9kcmFnUmVmLGg9YS5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7YS5kaXNhYmxlZD9kLmRpc2FibGVIYW5kbGUoaCk6ZC5lbmFibGVIYW5kbGUoaCl9KX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxj'@; put 'KSgkZShRaSksJGUoRFksMTIpLCRlKG1vKSwkZShHYSksJGUoVHMpLCRlKGtZLDgpLCRlKGRtLDgpLCRlKFZMKSwkZSh4byksJGUoRTFlLDEwKSwkZShPeCwxMikpfX1zdGF0aWN7dGhpcy5cdTAyNzVkaXI9RXIoe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwiY2RrRHJhZyIsIiJdXSxob3N0QXR0'@; put 'cnM6WzEsImNkay1kcmFnIl0saG9zdFZhcnM6NCxob3N0QmluZGluZ3M6ZnVuY3Rpb24oZCxoKXsyJmQmJlRyKCJjZGstZHJhZy1kaXNhYmxlZCIsaC5kaXNhYmxlZCkoImNkay1kcmFnLWRyYWdnaW5nIixoLl9kcmFnUmVmLmlzRHJhZ2dpbmcoKSl9LGlucHV0czp7ZGF0YTpbVm4uTm9uZSwi'@; put 'Y2RrRHJhZ0RhdGEiLCJkYXRhIl0sbG9ja0F4aXM6W1ZuLk5vbmUsImNka0RyYWdMb2NrQXhpcyIsImxvY2tBeGlzIl0scm9vdEVsZW1lbnRTZWxlY3RvcjpbVm4uTm9uZSwiY2RrRHJhZ1Jvb3RFbGVtZW50Iiwicm9vdEVsZW1lbnRTZWxlY3RvciJdLGJvdW5kYXJ5RWxlbWVudDpbVm4uTm9u'@; put 'ZSwiY2RrRHJhZ0JvdW5kYXJ5IiwiYm91bmRhcnlFbGVtZW50Il0sZHJhZ1N0YXJ0RGVsYXk6W1ZuLk5vbmUsImNka0RyYWdTdGFydERlbGF5IiwiZHJhZ1N0YXJ0RGVsYXkiXSxmcmVlRHJhZ1Bvc2l0aW9uOltWbi5Ob25lLCJjZGtEcmFnRnJlZURyYWdQb3NpdGlvbiIsImZyZWVEcmFnUG9z'@; put 'aXRpb24iXSxkaXNhYmxlZDpbVm4uSGFzRGVjb3JhdG9ySW5wdXRUcmFuc2Zvcm0sImNka0RyYWdEaXNhYmxlZCIsImRpc2FibGVkIixzMV0sY29uc3RyYWluUG9zaXRpb246W1ZuLk5vbmUsImNka0RyYWdDb25zdHJhaW5Qb3NpdGlvbiIsImNvbnN0cmFpblBvc2l0aW9uIl0scHJldmlld0Ns'@; put 'YXNzOltWbi5Ob25lLCJjZGtEcmFnUHJldmlld0NsYXNzIiwicHJldmlld0NsYXNzIl0scHJldmlld0NvbnRhaW5lcjpbVm4uTm9uZSwiY2RrRHJhZ1ByZXZpZXdDb250YWluZXIiLCJwcmV2aWV3Q29udGFpbmVyIl19LG91dHB1dHM6e3N0YXJ0ZWQ6ImNka0RyYWdTdGFydGVkIixyZWxlYXNl'@; put 'ZDoiY2RrRHJhZ1JlbGVhc2VkIixlbmRlZDoiY2RrRHJhZ0VuZGVkIixlbnRlcmVkOiJjZGtEcmFnRW50ZXJlZCIsZXhpdGVkOiJjZGtEcmFnRXhpdGVkIixkcm9wcGVkOiJjZGtEcmFnRHJvcHBlZCIsbW92ZWQ6ImNka0RyYWdNb3ZlZCJ9LGV4cG9ydEFzOlsiY2RrRHJhZyJdLHN0YW5kYWxv'@; put 'bmU6ITAsZmVhdHVyZXM6W3VhKFt7cHJvdmlkZTpPeCx1c2VFeGlzdGluZzpjfV0pLHpsLGJsXX0pfX1yZXR1cm4gY30pKCk7Y29uc3QgUlk9bmV3IFN0KCJDZGtEcm9wTGlzdEdyb3VwIik7bGV0IEExZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5faXRlbXM9bmV3IFNldCx0'@; put 'aGlzLmRpc2FibGVkPSExfW5nT25EZXN0cm95KCl7dGhpcy5faXRlbXMuY2xlYXIoKX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKX19c3RhdGlje3RoaXMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsImNka0Ryb3BMaXN0R3Jv'@; put 'dXAiLCIiXV0saW5wdXRzOntkaXNhYmxlZDpbVm4uSGFzRGVjb3JhdG9ySW5wdXRUcmFuc2Zvcm0sImNka0Ryb3BMaXN0R3JvdXBEaXNhYmxlZCIsImRpc2FibGVkIixzMV19LGV4cG9ydEFzOlsiY2RrRHJvcExpc3RHcm91cCJdLHN0YW5kYWxvbmU6ITAsZmVhdHVyZXM6W3VhKFt7cHJvdmlk'@; put 'ZTpSWSx1c2VFeGlzdGluZzpjfV0pLHpsXX0pfX1yZXR1cm4gY30pKCksbEhlPTAsazFlPSgoKT0+e2NsYXNzIGN7c3RhdGlje3RoaXMuX2Ryb3BMaXN0cz1bXX1nZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5fZGlzYWJsZWR8fCEhdGhpcy5fZ3JvdXAmJnRoaXMuX2dyb3VwLmRpc2FibGVk'@; put 'fXNldCBkaXNhYmxlZChhKXt0aGlzLl9kcm9wTGlzdFJlZi5kaXNhYmxlZD10aGlzLl9kaXNhYmxlZD1hfWNvbnN0cnVjdG9yKGEsZCxoLGYsdixNLEkpe3RoaXMuZWxlbWVudD1hLHRoaXMuX2NoYW5nZURldGVjdG9yUmVmPWgsdGhpcy5fc2Nyb2xsRGlzcGF0Y2hlcj1mLHRoaXMuX2Rpcj12'@; put 'LHRoaXMuX2dyb3VwPU0sdGhpcy5fZGVzdHJveWVkPW5ldyBHbix0aGlzLmNvbm5lY3RlZFRvPVtdLHRoaXMuaWQ9ImNkay1kcm9wLWxpc3QtIitsSGUrKyx0aGlzLmVudGVyUHJlZGljYXRlPSgpPT4hMCx0aGlzLnNvcnRQcmVkaWNhdGU9KCk9PiEwLHRoaXMuZHJvcHBlZD1uZXcgS3IsdGhp'@; put 'cy5lbnRlcmVkPW5ldyBLcix0aGlzLmV4aXRlZD1uZXcgS3IsdGhpcy5zb3J0ZWQ9bmV3IEtyLHRoaXMuX3Vuc29ydGVkSXRlbXM9bmV3IFNldCx0aGlzLl9kcm9wTGlzdFJlZj1kLmNyZWF0ZURyb3BMaXN0KGEpLHRoaXMuX2Ryb3BMaXN0UmVmLmRhdGE9dGhpcyxJJiZ0aGlzLl9hc3NpZ25E'@; put 'ZWZhdWx0cyhJKSx0aGlzLl9kcm9wTGlzdFJlZi5lbnRlclByZWRpY2F0ZT0oRyxyZSk9PnRoaXMuZW50ZXJQcmVkaWNhdGUoRy5kYXRhLHJlLmRhdGEpLHRoaXMuX2Ryb3BMaXN0UmVmLnNvcnRQcmVkaWNhdGU9KEcscmUsdWUpPT50aGlzLnNvcnRQcmVkaWNhdGUoRyxyZS5kYXRhLHVlLmRh'@; put 'dGEpLHRoaXMuX3NldHVwSW5wdXRTeW5jU3Vic2NyaXB0aW9uKHRoaXMuX2Ryb3BMaXN0UmVmKSx0aGlzLl9oYW5kbGVFdmVudHModGhpcy5fZHJvcExpc3RSZWYpLGMuX2Ryb3BMaXN0cy5wdXNoKHRoaXMpLE0mJk0uX2l0ZW1zLmFkZCh0aGlzKX1hZGRJdGVtKGEpe3RoaXMuX3Vuc29ydGVk'@; put 'SXRlbXMuYWRkKGEpLHRoaXMuX2Ryb3BMaXN0UmVmLmlzRHJhZ2dpbmcoKSYmdGhpcy5fc3luY0l0ZW1zV2l0aFJlZigpfXJlbW92ZUl0ZW0oYSl7dGhpcy5fdW5zb3J0ZWRJdGVtcy5kZWxldGUoYSksdGhpcy5fZHJvcExpc3RSZWYuaXNEcmFnZ2luZygpJiZ0aGlzLl9zeW5jSXRlbXNXaXRo'@; put 'UmVmKCl9Z2V0U29ydGVkSXRlbXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl91bnNvcnRlZEl0ZW1zKS5zb3J0KChhLGQpPT5hLl9kcmFnUmVmLmdldFZpc2libGVFbGVtZW50KCkuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZC5fZHJhZ1JlZi5nZXRWaXNpYmxlRWxlbWVudCgpKSZOb2Rl'@; put 'LkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORz8tMToxKX1uZ09uRGVzdHJveSgpe2NvbnN0IGE9Yy5fZHJvcExpc3RzLmluZGV4T2YodGhpcyk7YT4tMSYmYy5fZHJvcExpc3RzLnNwbGljZShhLDEpLHRoaXMuX2dyb3VwJiZ0aGlzLl9ncm91cC5faXRlbXMuZGVsZXRlKHRoaXMpLHRoaXMu'@; put 'X3Vuc29ydGVkSXRlbXMuY2xlYXIoKSx0aGlzLl9kcm9wTGlzdFJlZi5kaXNwb3NlKCksdGhpcy5fZGVzdHJveWVkLm5leHQoKSx0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKX1fc2V0dXBJbnB1dFN5bmNTdWJzY3JpcHRpb24oYSl7dGhpcy5fZGlyJiZ0aGlzLl9kaXIuY2hhbmdlLnBpcGUo'@; put 'VDIodGhpcy5fZGlyLnZhbHVlKSxIMCh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoZD0+YS53aXRoRGlyZWN0aW9uKGQpKSxhLmJlZm9yZVN0YXJ0ZWQuc3Vic2NyaWJlKCgpPT57Y29uc3QgZD1mdW5jdGlvbiBiRmUoYyl7cmV0dXJuIEFycmF5LmlzQXJyYXkoYyk/YzpbY119KHRoaXMu'@; put 'Y29ubmVjdGVkVG8pLm1hcChoPT4ic3RyaW5nIj09dHlwZW9mIGg/Yy5fZHJvcExpc3RzLmZpbmQodj0+di5pZD09PWgpOmgpO2lmKHRoaXMuX2dyb3VwJiZ0aGlzLl9ncm91cC5faXRlbXMuZm9yRWFjaChoPT57LTE9PT1kLmluZGV4T2YoaCkmJmQucHVzaChoKX0pLCF0aGlzLl9zY3JvbGxh'@; put 'YmxlUGFyZW50c1Jlc29sdmVkKXtjb25zdCBoPXRoaXMuX3Njcm9sbERpc3BhdGNoZXIuZ2V0QW5jZXN0b3JTY3JvbGxDb250YWluZXJzKHRoaXMuZWxlbWVudCkubWFwKGY9PmYuZ2V0RWxlbWVudFJlZigpLm5hdGl2ZUVsZW1lbnQpO3RoaXMuX2Ryb3BMaXN0UmVmLndpdGhTY3JvbGxhYmxl'@; put 'UGFyZW50cyhoKSx0aGlzLl9zY3JvbGxhYmxlUGFyZW50c1Jlc29sdmVkPSEwfWEuZGlzYWJsZWQ9dGhpcy5kaXNhYmxlZCxhLmxvY2tBeGlzPXRoaXMubG9ja0F4aXMsYS5zb3J0aW5nRGlzYWJsZWQ9dGhpcy5zb3J0aW5nRGlzYWJsZWQsYS5hdXRvU2Nyb2xsRGlzYWJsZWQ9dGhpcy5hdXRv'@; put 'U2Nyb2xsRGlzYWJsZWQsYS5hdXRvU2Nyb2xsU3RlcD1kNyh0aGlzLmF1dG9TY3JvbGxTdGVwLDIpLGEuY29ubmVjdGVkVG8oZC5maWx0ZXIoaD0+aCYmaCE9PXRoaXMpLm1hcChoPT5oLl9kcm9wTGlzdFJlZikpLndpdGhPcmllbnRhdGlvbih0aGlzLm9yaWVudGF0aW9uKX0pfV9oYW5kbGVF'@; put 'dmVudHMoYSl7YS5iZWZvcmVTdGFydGVkLnN1YnNjcmliZSgoKT0+e3RoaXMuX3N5bmNJdGVtc1dpdGhSZWYoKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX0pLGEuZW50ZXJlZC5zdWJzY3JpYmUoZD0+e3RoaXMuZW50ZXJlZC5lbWl0KHtjb250YWluZXI6dGhpcyxp'@; put 'dGVtOmQuaXRlbS5kYXRhLGN1cnJlbnRJbmRleDpkLmN1cnJlbnRJbmRleH0pfSksYS5leGl0ZWQuc3Vic2NyaWJlKGQ9Pnt0aGlzLmV4aXRlZC5lbWl0KHtjb250YWluZXI6dGhpcyxpdGVtOmQuaXRlbS5kYXRhfSksdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCl9KSxh'@; put 'LnNvcnRlZC5zdWJzY3JpYmUoZD0+e3RoaXMuc29ydGVkLmVtaXQoe3ByZXZpb3VzSW5kZXg6ZC5wcmV2aW91c0luZGV4LGN1cnJlbnRJbmRleDpkLmN1cnJlbnRJbmRleCxjb250YWluZXI6dGhpcyxpdGVtOmQuaXRlbS5kYXRhfSl9KSxhLmRyb3BwZWQuc3Vic2NyaWJlKGQ9Pnt0aGlzLmRy'@; put 'b3BwZWQuZW1pdCh7cHJldmlvdXNJbmRleDpkLnByZXZpb3VzSW5kZXgsY3VycmVudEluZGV4OmQuY3VycmVudEluZGV4LHByZXZpb3VzQ29udGFpbmVyOmQucHJldmlvdXNDb250YWluZXIuZGF0YSxjb250YWluZXI6ZC5jb250YWluZXIuZGF0YSxpdGVtOmQuaXRlbS5kYXRhLGlzUG9pbnRl'@; put 'ck92ZXJDb250YWluZXI6ZC5pc1BvaW50ZXJPdmVyQ29udGFpbmVyLGRpc3RhbmNlOmQuZGlzdGFuY2UsZHJvcFBvaW50OmQuZHJvcFBvaW50LGV2ZW50OmQuZXZlbnR9KSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKX0pLHh4KGEucmVjZWl2aW5nU3RhcnRlZCxhLnJl'@; put 'Y2VpdmluZ1N0b3BwZWQpLnN1YnNjcmliZSgoKT0+dGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpfV9hc3NpZ25EZWZhdWx0cyhhKXtjb25zdHtsb2NrQXhpczpkLGRyYWdnaW5nRGlzYWJsZWQ6aCxzb3J0aW5nRGlzYWJsZWQ6ZixsaXN0QXV0b1Njcm9sbERpc2FibGVk'@; put 'OnYsbGlzdE9yaWVudGF0aW9uOk19PWE7dGhpcy5kaXNhYmxlZD1oPz8hMSx0aGlzLnNvcnRpbmdEaXNhYmxlZD1mPz8hMSx0aGlzLmF1dG9TY3JvbGxEaXNhYmxlZD12Pz8hMSx0aGlzLm9yaWVudGF0aW9uPU18fCJ2ZXJ0aWNhbCIsZCYmKHRoaXMubG9ja0F4aXM9ZCl9X3N5bmNJdGVtc1dp'@; put 'dGhSZWYoKXt0aGlzLl9kcm9wTGlzdFJlZi53aXRoSXRlbXModGhpcy5nZXRTb3J0ZWRJdGVtcygpLm1hcChhPT5hLl9kcmFnUmVmKSl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUoUWkpLCRlKFZMKSwkZSh4byksJGUoeGIpLCRlKGRtLDgp'@; put 'LCRlKFJZLDEyKSwkZShrWSw4KSl9fXN0YXRpY3t0aGlzLlx1MDI3NWRpcj1Fcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJjZGtEcm9wTGlzdCIsIiJdLFsiY2RrLWRyb3AtbGlzdCJdXSxob3N0QXR0cnM6WzEsImNkay1kcm9wLWxpc3QiXSxob3N0VmFyczo3LGhvc3RCaW5kaW5nczpmdW5j'@; put 'dGlvbihkLGgpezImZCYmKGhyKCJpZCIsaC5pZCksVHIoImNkay1kcm9wLWxpc3QtZGlzYWJsZWQiLGguZGlzYWJsZWQpKCJjZGstZHJvcC1saXN0LWRyYWdnaW5nIixoLl9kcm9wTGlzdFJlZi5pc0RyYWdnaW5nKCkpKCJjZGstZHJvcC1saXN0LXJlY2VpdmluZyIsaC5fZHJvcExpc3RSZWYu'@; put 'aXNSZWNlaXZpbmcoKSkpfSxpbnB1dHM6e2Nvbm5lY3RlZFRvOltWbi5Ob25lLCJjZGtEcm9wTGlzdENvbm5lY3RlZFRvIiwiY29ubmVjdGVkVG8iXSxkYXRhOltWbi5Ob25lLCJjZGtEcm9wTGlzdERhdGEiLCJkYXRhIl0sb3JpZW50YXRpb246W1ZuLk5vbmUsImNka0Ryb3BMaXN0T3JpZW50'@; put 'YXRpb24iLCJvcmllbnRhdGlvbiJdLGlkOiJpZCIsbG9ja0F4aXM6W1ZuLk5vbmUsImNka0Ryb3BMaXN0TG9ja0F4aXMiLCJsb2NrQXhpcyJdLGRpc2FibGVkOltWbi5IYXNEZWNvcmF0b3JJbnB1dFRyYW5zZm9ybSwiY2RrRHJvcExpc3REaXNhYmxlZCIsImRpc2FibGVkIixzMV0sc29ydGlu'@; put 'Z0Rpc2FibGVkOltWbi5IYXNEZWNvcmF0b3JJbnB1dFRyYW5zZm9ybSwiY2RrRHJvcExpc3RTb3J0aW5nRGlzYWJsZWQiLCJzb3J0aW5nRGlzYWJsZWQiLHMxXSxlbnRlclByZWRpY2F0ZTpbVm4uTm9uZSwiY2RrRHJvcExpc3RFbnRlclByZWRpY2F0ZSIsImVudGVyUHJlZGljYXRlIl0sc29y'@; put 'dFByZWRpY2F0ZTpbVm4uTm9uZSwiY2RrRHJvcExpc3RTb3J0UHJlZGljYXRlIiwic29ydFByZWRpY2F0ZSJdLGF1dG9TY3JvbGxEaXNhYmxlZDpbVm4uSGFzRGVjb3JhdG9ySW5wdXRUcmFuc2Zvcm0sImNka0Ryb3BMaXN0QXV0b1Njcm9sbERpc2FibGVkIiwiYXV0b1Njcm9sbERpc2FibGVk'@; put 'IixzMV0sYXV0b1Njcm9sbFN0ZXA6W1ZuLk5vbmUsImNka0Ryb3BMaXN0QXV0b1Njcm9sbFN0ZXAiLCJhdXRvU2Nyb2xsU3RlcCJdfSxvdXRwdXRzOntkcm9wcGVkOiJjZGtEcm9wTGlzdERyb3BwZWQiLGVudGVyZWQ6ImNka0Ryb3BMaXN0RW50ZXJlZCIsZXhpdGVkOiJjZGtEcm9wTGlzdEV4'@; put 'aXRlZCIsc29ydGVkOiJjZGtEcm9wTGlzdFNvcnRlZCJ9LGV4cG9ydEFzOlsiY2RrRHJvcExpc3QiXSxzdGFuZGFsb25lOiEwLGZlYXR1cmVzOlt1YShbe3Byb3ZpZGU6UlksdXNlVmFsdWU6dm9pZCAwfSx7cHJvdmlkZTpEWSx1c2VFeGlzdGluZzpjfV0pLHpsXX0pfX1yZXR1cm4gY30pKCks'@; put 'RDFlPSgoKT0+e2NsYXNzIGN7c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSl9c3RhdGlje3RoaXMuXHUwMjc1aW5qPUFyKHtwcm92aWRlcnM6W1ZMXSxpbXBvcnRzOltZRmVdfSl9fXJl'@; put 'dHVybiBjfSkoKTtjb25zdCB5cz1bIioiXSxoSGU9W1tbImNsci1hY2NvcmRpb24tdGl0bGUiXSxbImNsci1zdGVwLXRpdGxlIl1dLFtbImNsci1hY2NvcmRpb24tZGVzY3JpcHRpb24iXSxbImNsci1zdGVwLWRlc2NyaXB0aW9uIl1dLCIqIl0sZkhlPVsiY2xyLWFjY29yZGlvbi10aXRsZSwg'@; put 'Y2xyLXN0ZXAtdGl0bGUiLCJjbHItYWNjb3JkaW9uLWRlc2NyaXB0aW9uLCBjbHItc3RlcC1kZXNjcmlwdGlvbiIsIioiXTtmdW5jdGlvbiBwSGUoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJkaXYiLDkpLEZ0KCJAdG9nZ2xlLmRvbmUiLGZ1bmN0aW9uKCl7d3QoYSk7Y29uc3Qg'@; put 'aD1MZSgpLiRpbXBsaWNpdDtyZXR1cm4gQ3QoTGUoKS5jb2xsYXBzZVBhbmVsT25BbmltYXRpb25Eb25lKGgpKX0pLGRlKDEsImRpdiIsMTApLFdyKDIsMiksaGUoKSgpfTImYyYmTWUoIkB0b2dnbGUiLHZvaWQgMCl9ZnVuY3Rpb24gZ0hlKGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7YWko'@; put 'MCksZGUoMSwiZGl2IiwyKSgyLCJkaXYiLDMpKDMsImJ1dHRvbiIsNCwwKSxRbyg1LCJhc3luYyIpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoKS50b2dnbGVQYW5lbCgpKX0pLGRlKDYsInNwYW4iLDUpLFd0KDcsImNkcy1pY29uIiw2KSxoZSgpLFdyKDgpLFdy'@; put 'KDksMSksaGUoKSgpLGRlKDEwLCJkaXYiLDcpLGd0KDExLHBIZSwzLDEsImRpdiIsOCksaGUoKSgpLHNpKCl9aWYoMiZjKXtsZXQgYTtjb25zdCBkPWwuJGltcGxpY2l0LGg9TGUoKTtmZSgpLE1lKCJuZ0NsYXNzIixoLmdldFBhbmVsU3RhdGVDbGFzc2VzKGQpKSxmZSgpLGhyKCJyb2xlIixo'@; put 'LmhlYWRpbmdFbmFibGVkfHxoLmV4cGxpY2l0SGVhZGluZ0xldmVsPyJoZWFkaW5nIjpudWxsKSgiYXJpYS1sZXZlbCIsaC5oZWFkaW5nRW5hYmxlZHx8aC5leHBsaWNpdEhlYWRpbmdMZXZlbD9oLmhlYWRpbmdMZXZlbDpudWxsKSxmZSgpLFRyKCJjbHItYWNjb3JkaW9uLWhlYWRlci1oYXMt'@; put 'ZGVzY3JpcHRpb24iLChudWxsPT0oYT1BYyg1LDE0LGguYWNjb3JkaW9uRGVzY3JpcHRpb24uY2hhbmdlcykpP251bGw6YS5sZW5ndGgpfHxoLmFjY29yZGlvbkRlc2NyaXB0aW9uLmxlbmd0aCksTWUoImlkIixoLmdldEFjY29yZGlvbkhlYWRlcklkKGQudGVtcGxhdGVJZCkpKCJkaXNhYmxl'@; put 'ZCIsZC5kaXNhYmxlZCksaHIoImFyaWEtY29udHJvbHMiLCFkLmRpc2FibGVkJiZkLm9wZW4/aC5nZXRBY2NvcmRpb25Db250ZW50SWQoZC50ZW1wbGF0ZUlkKTpudWxsKSgiYXJpYS1leHBhbmRlZCIsZC5vcGVuKSxmZSg3KSxNZSgiQHNraXBJbml0aWFsUmVuZGVyIix2b2lkIDApKCJpZCIs'@; put 'aC5nZXRBY2NvcmRpb25Db250ZW50SWQoZC50ZW1wbGF0ZUlkKSksaHIoImFyaWEtaGlkZGVuIiwhZC5vcGVuKSgiYXJpYS1sYWJlbGxlZGJ5IixoLmdldEFjY29yZGlvbkhlYWRlcklkKGQudGVtcGxhdGVJZCkpLGZlKCksTWUoIm5nSWYiLGQub3Blbil9fWNvbnN0IEhIZT1bImNsckxvYWRp'@; put 'bmciLCIiXTtmdW5jdGlvbiBOSGUoYyxsKXsxJmMmJihhaSgwKSxXdCgxLCJzcGFuIiwzKSxzaSgpKSwyJmMmJihmZSgpLE1lKCJAc3Bpbm5lciIsdm9pZCAwKSl9ZnVuY3Rpb24gVkhlKGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7YWkoMCksZGUoMSwic3BhbiIsNCksRnQoIkB2YWxpZGF0'@; put 'ZWQuZG9uZSIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKCk7cmV0dXJuIEN0KGgubG9hZGluZ1N0YXRlQ2hhbmdlKGguYnV0dG9uU3RhdGUuREVGQVVMVCkpfSksaGUoKSxzaSgpfTImYyYmKGZlKCksTWUoIkB2YWxpZGF0ZWQiLHZvaWQgMCkpfWZ1bmN0aW9uIEJIZShjLGwpezEmYyYm'@; put 'KGRlKDAsInNwYW4iLDUpLFdyKDEpLGhlKCkpLDImYyYmTWUoIkBkZWZhdWx0QnV0dG9uIix2b2lkIDApfWZ1bmN0aW9uIGpIZShjLGwpe2lmKDEmYyYmKGFpKDApLGRlKDEsImJ1dHRvbiIsMSksV3QoMiwiY2RzLWljb24iLDIpLGhlKCksc2koKSksMiZjKXtjb25zdCBhPUxlKCk7ZmUoKSxo'@; put 'cigiYXJpYS1sYWJlbCIsYS5zaWducG9zdFRyaWdnZXJBcmlhTGFiZWx8fGEuY29tbW9uU3RyaW5ncy5rZXlzLnNpZ25wb3N0VG9nZ2xlKSxmZSgpLGhyKCJ0aXRsZSIsYS5jb21tb25TdHJpbmdzLmtleXMuaW5mbyl9fWNvbnN0IHpIZT1bW1siY2xyLXNpZ25wb3N0LXRpdGxlIl1dLCIqIl0s'@; put 'VUhlPVsiY2xyLXNpZ25wb3N0LXRpdGxlIiwiKiJdLFpIZT1bW1siIiwiY2xyQ2hlY2tib3giLCIiXSxbIiIsImNsclRvZ2dsZSIsIiJdXSxbWyJsYWJlbCJdXV0sV0hlPVsiW2NsckNoZWNrYm94XSxbY2xyVG9nZ2xlXSIsImxhYmVsIl07ZnVuY3Rpb24gWUhlKGMsbCl7MSZjJiZXdCgwLCJs'@; put 'YWJlbCIpfWNvbnN0IEdIZT1bW1sibGFiZWwiXV0sW1siY2xyLWNoZWNrYm94LXdyYXBwZXIiXSxbImNsci10b2dnbGUtd3JhcHBlciJdXSxbWyJjbHItY29udHJvbC1oZWxwZXIiXV0sW1siY2xyLWNvbnRyb2wtZXJyb3IiXV0sW1siY2xyLWNvbnRyb2wtc3VjY2VzcyJdXV0sJEhlPVsibGFi'@; put 'ZWwiLCJjbHItY2hlY2tib3gtd3JhcHBlcixjbHItdG9nZ2xlLXdyYXBwZXIiLCJjbHItY29udHJvbC1oZWxwZXIiLCJjbHItY29udHJvbC1lcnJvciIsImNsci1jb250cm9sLXN1Y2Nlc3MiXTtmdW5jdGlvbiBLSGUoYyxsKXsxJmMmJld0KDAsImxhYmVsIil9ZnVuY3Rpb24gWEhlKGMsbCl7'@; put 'MSZjJiYoZGUoMCwiZGl2IiwzKSxXcigxLDIpLGhlKCkpfWZ1bmN0aW9uIHFIZShjLGwpezEmYyYmV3QoMCwiY2RzLWljb24iLDYpfWZ1bmN0aW9uIEpIZShjLGwpezEmYyYmV3QoMCwiY2RzLWljb24iLDcpfWZ1bmN0aW9uIFFIZShjLGwpezEmYyYmV3IoMCwzLFsiKm5nSWYiLCJzaG93SW52'@; put 'YWxpZCJdKX1mdW5jdGlvbiBlTmUoYyxsKXsxJmMmJldyKDAsNCxbIipuZ0lmIiwic2hvd1ZhbGlkIl0pfWZ1bmN0aW9uIHROZShjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIsMyksZ3QoMSxxSGUsMSwwLCJjZHMtaWNvbiIsNCkoMixKSGUsMSwwLCJjZHMtaWNvbiIsNSkoMyxRSGUsMSwwLCJu'@; put 'Zy1jb250ZW50IiwwKSg0LGVOZSwxLDAsIm5nLWNvbnRlbnQiLDApLGhlKCkpLDImYyl7Y29uc3QgYT1MZSgpO2ZlKCksTWUoIm5nSWYiLGEuc2hvd0ludmFsaWQpLGZlKCksTWUoIm5nSWYiLGEuc2hvd1ZhbGlkKSxmZSgpLE1lKCJuZ0lmIixhLnNob3dJbnZhbGlkKSxmZSgpLE1lKCJuZ0lm'@; put 'IixhLnNob3dWYWxpZCl9fWNvbnN0IG5OZT1bImNscktleUZvY3VzIiwiIl0sb05lPVtbWyJsYWJlbCJdXSxbWyIiLCJjbHJJbnB1dFByZWZpeCIsIiJdXSxbWyIiLCJjbHJJbnB1dCIsIiJdXSxbWyIiLCJjbHJJbnB1dFN1ZmZpeCIsIiJdXSxbWyJjbHItY29udHJvbC1oZWxwZXIiXV0sW1si'@; put 'Y2xyLWNvbnRyb2wtZXJyb3IiXV0sW1siY2xyLWNvbnRyb2wtc3VjY2VzcyJdXV0sbE5lPVsibGFiZWwiLCJbY2xySW5wdXRQcmVmaXhdIiwiW2NscklucHV0XSIsIltjbHJJbnB1dFN1ZmZpeF0iLCJjbHItY29udHJvbC1oZWxwZXIiLCJjbHItY29udHJvbC1lcnJvciIsImNsci1jb250cm9s'@; put 'LXN1Y2Nlc3MiXTtmdW5jdGlvbiBjTmUoYyxsKXsxJmMmJld0KDAsImxhYmVsIil9ZnVuY3Rpb24gdU5lKGMsbCl7MSZjJiZXdCgwLCJjZHMtaWNvbiIsNil9ZnVuY3Rpb24gZE5lKGMsbCl7MSZjJiZXdCgwLCJjZHMtaWNvbiIsNyl9ZnVuY3Rpb24gaE5lKGMsbCl7MSZjJiZXcigwLDQsWyIq'@; put 'bmdJZiIsInNob3dIZWxwZXIiXSl9ZnVuY3Rpb24gZk5lKGMsbCl7MSZjJiZXcigwLDUsWyIqbmdJZiIsInNob3dJbnZhbGlkIl0pfWZ1bmN0aW9uIHBOZShjLGwpezEmYyYmV3IoMCw2LFsiKm5nSWYiLCJzaG93VmFsaWQiXSl9ZnVuY3Rpb24gU05lKGMsbCl7MSZjJiZXcigwKX1jb25zdCBN'@; put 'TmU9WyJ0YWJDb250ZW50UHJvamVjdGVkUmVmIl07ZnVuY3Rpb24geE5lKGMsbCl7aWYoMSZjJiYoZGUoMCwic2VjdGlvbiIsMSksV3IoMSksaGUoKSksMiZjKXtjb25zdCBhPUxlKCk7VHIoImFjdGl2ZSIsYS5hY3RpdmUpLE1lKCJpZCIsYS50YWJDb250ZW50SWQpKCJoaWRkZW4iLCFhLmFj'@; put 'dGl2ZSksaHIoImFyaWEtbGFiZWxsZWRieSIsYS5hcmlhTGFiZWxsZWRCeSkoImFyaWEtaGlkZGVuIiwhYS5hY3RpdmUpfX1jb25zdCBFTmU9WyJ0YWJDb250ZW50Vmlld0NvbnRhaW5lciJdLFROZT1bW1siY2xyLXRhYnMtYWN0aW9ucyJdXV0sQU5lPVsiY2xyLXRhYnMtYWN0aW9ucyJdO2Z1'@; put 'bmN0aW9uIGtOZShjLGwpe2lmKDEmYyYmKGFpKDApLGRlKDEsImxpIiw1KSxMbCgyLDYpLGhlKCksc2koKSksMiZjKXtjb25zdCBhPUxlKCkuJGltcGxpY2l0O2ZlKDIpLE1lKCJuZ1RlbXBsYXRlT3V0bGV0IixhLnRlbXBsYXRlUmVmQ29udGFpbmVyLnRlbXBsYXRlKX19ZnVuY3Rpb24gRE5l'@; put 'KGMsbCl7aWYoMSZjJiYoYWkoMCksZ3QoMSxrTmUsMywxLCJuZy1jb250YWluZXIiLDQpLHNpKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdCxkPUxlKCk7ZmUoKSxNZSgibmdJZiIsYS50YWJzSWQ9PT1kLnRhYnNJZCYmIWEuaW5PdmVyZmxvdyl9fWZ1bmN0aW9uIElOZShjLGwpezEmYyYm'@; put 'TGwoMCw2KSwyJmMmJk1lKCJuZ1RlbXBsYXRlT3V0bGV0IixMZSgpLiRpbXBsaWNpdC50ZW1wbGF0ZVJlZkNvbnRhaW5lci50ZW1wbGF0ZSl9ZnVuY3Rpb24gUk5lKGMsbCl7aWYoMSZjJiYoYWkoMCksZ3QoMSxJTmUsMSwxLCJuZy1jb250YWluZXIiLDEzKSxzaSgpKSwyJmMpe2NvbnN0IGE9'@; put 'bC4kaW1wbGljaXQsZD1MZSgzKTtmZSgpLE1lKCJuZ0lmIixhLnRhYnNJZD09PWQudGFic0lkJiZhLmluT3ZlcmZsb3cpfX1mdW5jdGlvbiBMTmUoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJjbHItdGFiLW92ZXJmbG93LWNvbnRlbnQiLDEyKSxGdCgia2V5ZG93bi5lc2NhcGUi'@; put 'LGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKDIpLmNsb3NlT25Fc2NhcGVLZXkoKSl9LDAsSzMpKCJjbGljayIsZnVuY3Rpb24oaCl7d3QoYSksTGUoKTtjb25zdCBmPWRhKDQpO3JldHVybiBDdChMZSgpLmNsb3NlT25PdXRzaWRlQ2xpY2soaCxmKSl9LCExLEszKSgiZm9jdXNvdXQi'@; put 'LGZ1bmN0aW9uKGgpe3JldHVybiB3dChhKSxDdChMZSgyKS5jbG9zZU9uRm9jdXNPdXQoaCkpfSksZ3QoMSxSTmUsMiwxLCJuZy1jb250YWluZXIiLDMpLGhlKCl9aWYoMiZjKXtjb25zdCBhPUxlKDIpO2ZlKCksTWUoIm5nRm9yT2YiLGEudGFiTGlua0RpcmVjdGl2ZXMpfX1mdW5jdGlvbiBP'@; put 'TmUoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTthaSgwKSxkZSgxLCJkaXYiLDcpKDIsImxpIiw4KSgzLCJidXR0b24iLDksMSksRnQoIm1vdXNlZG93biIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoKS5fbW91c2Vkb3duPSEwKX0pKCJmb2N1cyIsZnVuY3Rpb24oKXtyZXR1cm4g'@; put 'd3QoYSksQ3QoTGUoKS5vcGVuT3ZlcmZsb3dPbkZvY3VzKCkpfSkoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgpLnRvZ2dsZU92ZXJmbG93T25DbGljaygpKX0pLFd0KDUsImNkcy1pY29uIiwxMCksaGUoKSgpLGd0KDYsTE5lLDIsMSwiY2xyLXRhYi1vdmVyZmxvdy1j'@; put 'b250ZW50IiwxMSksaGUoKSxzaSgpfWlmKDImYyl7Y29uc3QgYT1MZSgpO2ZlKCksVHIoIm9wZW4iLGEudG9nZ2xlU2VydmljZS5vcGVuKSxmZSgyKSxUcigiYWN0aXZlIixhLmFjdGl2ZVRhYkluT3ZlcmZsb3cpKCJvcGVuIixhLnRvZ2dsZVNlcnZpY2Uub3BlbiksaHIoInRhYmluZGV4Iixh'@; put 'LmFjdGl2ZVRhYkluT3ZlcmZsb3cmJiFhLnRvZ2dsZVNlcnZpY2Uub3Blbj8wOi0xKSgidGl0bGUiLGEuY29tbW9uU3RyaW5ncy5rZXlzLm1vcmUpLGZlKDIpLGhyKCJzdGF0dXMiLGEudG9nZ2xlU2VydmljZS5vcGVuPyJpbmZvIjpudWxsKSgidGl0bGUiLGEuY29tbW9uU3RyaW5ncy5rZXlz'@; put 'Lm1vcmUpLGZlKCksTWUoIm5nSWYiLGEudG9nZ2xlU2VydmljZS5vcGVuKX19ZnVuY3Rpb24gUE5lKGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiYnV0dG9uIiwzKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKCkudG9nZ2xlQnlCdXR0b24oKSl9KSxX'@; put 'dCgxLCJjZHMtaWNvbiIsNCksaGUoKX1pZigyJmMpe2NvbnN0IGE9TGUoKTtUcigib24tY29sbGFwc2UiLGEuY29sbGFwc2VkKSxocigiYXJpYS1jb250cm9scyIsYS5jb250ZW50SWQpKCJhcmlhLWV4cGFuZGVkIixhLmFyaWFFeHBhbmRlZCkoImFyaWEtbGFiZWwiLGEudG9nZ2xlTGFiZWx8'@; put 'fGEuY29tbW9uU3RyaW5ncy5rZXlzLnZlcnRpY2FsTmF2VG9nZ2xlKSxmZSgpLGhyKCJkaXJlY3Rpb24iLGEuY29sbGFwc2VkPyJyaWdodCI6ImxlZnQiKX19ZnVuY3Rpb24gRk5lKGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiYnV0dG9uIiw1KSxGdCgiY2xpY2siLGZ1bmN0aW9u'@; put 'KCl7cmV0dXJuIHd0KGEpLEN0KExlKCkuY29sbGFwc2VkPSExKX0pLGhlKCl9aWYoMiZjKXtjb25zdCBhPUxlKCk7aHIoImFyaWEtY29udHJvbHMiLGEuY29udGVudElkKSgiYXJpYS1sYWJlbCIsYS50b2dnbGVMYWJlbHx8YS5jb21tb25TdHJpbmdzLmtleXMudmVydGljYWxOYXZUb2dnbGUp'@; put 'fX1jb25zdCBWTmU9WyJjbHJWZXJ0aWNhbE5hdkxpbmsiLCIiXSxCTmU9W1tbIiIsImNsclZlcnRpY2FsTmF2SWNvbiIsIiJdXSwiKiJdLGpOZT1bIltjbHJWZXJ0aWNhbE5hdkljb25dIiwiKiJdO2Z1bmN0aW9uIHpOZShjLGwpe2lmKDEmYyYmKGRlKDAsInRoIiw0KSgxLCJzcGFuIiksT2Uo'@; put 'MiksaGUoKSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7ZmUoKSxocigiYXJpYS1sYWJlbCIsYS5kYXkpLGZlKCksU3IoYS5uYXJyb3cpfX1mdW5jdGlvbiBVTmUoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJ0ZCIsNykoMSwiY2xyLWRheSIsOCksRnQoInNlbGVjdERheSIs'@; put 'ZnVuY3Rpb24oaCl7cmV0dXJuIHd0KGEpLEN0KExlKDIpLnNldFNlbGVjdGVkRGF5KGgpKX0pLGhlKCkoKX1pZigyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7ZmUoKSxNZSgiY2xyRGF5VmlldyIsYSl9fWZ1bmN0aW9uIFpOZShjLGwpe2lmKDEmYyYmKGRlKDAsInRyIiw1KSxndCgxLFVOZSwy'@; put 'LDEsInRkIiw2KSxoZSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7ZmUoKSxNZSgibmdGb3JPZiIsYSl9fWZ1bmN0aW9uIFdOZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImJ1dHRvbiIsMTApLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtjb25zdCBoPXd0KGEpLmluZGV4O3Jl'@; put 'dHVybiBDdChMZSgpLmNoYW5nZU1vbnRoKGgpKX0pKCJtb3VzZWVudGVyIixmdW5jdGlvbigpe2NvbnN0IGg9d3QoYSkuaW5kZXg7cmV0dXJuIEN0KExlKCkub25Ib3ZlcihoKSl9KSxPZSgxKSxoZSgpfWlmKDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdCxkPWwuaW5kZXgsaD1MZSgpO1RyKCJp'@; put 'cy1zZWxlY3RlZCIsaC5pc1NlbGVjdGVkKGQpKSgiaXMtc3RhcnQtcmFuZ2UiLGguZ2V0SXNSYW5nZVN0YXJ0TW9udGgoZCkpKCJpcy1lbmQtcmFuZ2UiLGguZ2V0SXNSYW5nZUVuZE1vbnRoKGQpKSgiaW4tcmFuZ2UiLGguaXNJblJhbmdlKGQpKSgiaXMtdG9kYXkiLGguY2FsZW5kYXJZZWFy'@; put 'PT09aC5jdXJyZW50Q2FsZW5kYXJZZWFyJiZkPT09aC5jdXJyZW50Q2FsZW5kYXJNb250aCksaHIoInRhYmluZGV4IixoLmdldFRhYkluZGV4KGQpKSxmZSgpLExyKCIgIixhLCIgIil9fWZ1bmN0aW9uIFlOZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImJ1dHRvbiIsMTApLEZ0'@; put 'KCJjbGljayIsZnVuY3Rpb24oKXtjb25zdCBoPXd0KGEpLiRpbXBsaWNpdDtyZXR1cm4gQ3QoTGUoKS5jaGFuZ2VZZWFyKGgpKX0pKCJtb3VzZWVudGVyIixmdW5jdGlvbigpe2NvbnN0IGg9d3QoYSkuJGltcGxpY2l0O3JldHVybiBDdChMZSgpLm9uSG92ZXIoaCkpfSksT2UoMSksaGUoKX1p'@; put 'ZigyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQsZD1MZSgpO1RyKCJpcy1zZWxlY3RlZCIsYT09PWQuc2VsZWN0ZWRTdGFydFllYXJ8fGE9PT1kLnNlbGVjdGVkRW5kWWVhcikoImlzLXN0YXJ0LXJhbmdlIixkLmdldElzUmFuZ2VTdGFydFllYXIoYSkpKCJpcy1lbmQtcmFuZ2UiLGQuZ2V0SXNS'@; put 'YW5nZUVuZFllYXIoYSkpKCJpbi1yYW5nZSIsZC5pc0luUmFuZ2UoYSkpKCJpcy10b2RheSIsZC5pc0N1cnJlbnRDYWxlbmRhclllYXIoYSkpLGhyKCJ0YWJpbmRleCIsZC5nZXRUYWJJbmRleChhKSksZmUoKSxMcigiICIsYSwiICIpfX1mdW5jdGlvbiBHTmUoYyxsKXtpZigxJmMpe2NvbnN0'@; put 'IGE9T24oKTthaSgwKSxkZSgxLCJhIiw2KSxGdCgia2V5dXAuZW50ZXIiLGZ1bmN0aW9uKCl7Y29uc3QgaD13dChhKS4kaW1wbGljaXQ7cmV0dXJuIEN0KExlKDIpLm9uUmFuZ2VPcHRpb25TZWxlY3QoaCkpfSkoImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IGg9d3QoYSkuJGltcGxpY2l0O3Jl'@; put 'dHVybiBDdChMZSgyKS5vblJhbmdlT3B0aW9uU2VsZWN0KGgpKX0pLE9lKDIpLGhlKCksc2koKX1pZigyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7ZmUoKSxocigiYXJpYS1sYWJlbCIsbnVsbD09YT9udWxsOmEubGFiZWwpLGZlKCksTHIoIiAiLGEubGFiZWwsIiAiKX19ZnVuY3Rpb24gJE5l'@; put 'KGMsbCl7MSZjJiZMbCgwKX1mdW5jdGlvbiBLTmUoYyxsKXtpZigxJmMmJihhaSgwKSxkZSgxLCJjbHItdmVydGljYWwtbmF2IiwyKSxndCgyLEdOZSwzLDIsIm5nLWNvbnRhaW5lciIsMyksaGUoKSxkZSgzLCJkaXYiLDQpLGd0KDQsJE5lLDEsMCwibmctY29udGFpbmVyIiw1KSxoZSgpLHNp'@; put 'KCkpLDImYyl7Y29uc3QgYT1MZSgpLGQ9ZGEoMik7ZmUoMiksTWUoIm5nRm9yT2YiLGEuZGF0ZVJhbmdlT3B0aW9ucyksZmUoMiksTWUoIm5nVGVtcGxhdGVPdXRsZXQiLGQpfX1mdW5jdGlvbiBYTmUoYyxsKXsxJmMmJld0KDAsImNsci1tb250aHBpY2tlciIpfWZ1bmN0aW9uIHFOZShjLGwp'@; put 'ezEmYyYmV3QoMCwiY2xyLXllYXJwaWNrZXIiKX1mdW5jdGlvbiBKTmUoYyxsKXsxJmMmJld0KDAsImNsci1kYXlwaWNrZXIiKX1mdW5jdGlvbiBRTmUoYyxsKXsxJmMmJld0KDAsImNsci1kYXRlcGlja2VyLWFjdGlvbnMiKX1mdW5jdGlvbiBlVmUoYyxsKXtpZigxJmMmJmd0KDAsWE5lLDEs'@; put 'MCwiY2xyLW1vbnRocGlja2VyIiw3KSgxLHFOZSwxLDAsImNsci15ZWFycGlja2VyIiw3KSgyLEpOZSwxLDAsImNsci1kYXlwaWNrZXIiLDcpKDMsUU5lLDEsMCwiY2xyLWRhdGVwaWNrZXItYWN0aW9ucyIsNyksMiZjKXtjb25zdCBhPUxlKCk7TWUoIm5nSWYiLGEuaXNNb250aFZpZXcpLGZl'@; put 'KCksTWUoIm5nSWYiLGEuaXNZZWFyVmlldyksZmUoKSxNZSgibmdJZiIsYS5pc0RheVZpZXcpLGZlKCksTWUoIm5nSWYiLGEuaGFzQWN0aW9uQnV0dG9ucyl9fWNvbnN0IHRWZT1bImFjdGlvbkJ1dHRvbiJdLG5WZT1bW1sibGFiZWwiXV0sW1siIiwiY2xyRGF0ZSIsIiJdXSxbWyIiLCJjbHJT'@; put 'dGFydERhdGUiLCIiXV0sW1siIiwiY2xyRW5kRGF0ZSIsIiJdXSxbWyJjbHItY29udHJvbC1oZWxwZXIiXV0sW1siY2xyLWNvbnRyb2wtZXJyb3IiXV0sW1siY2xyLWNvbnRyb2wtc3VjY2VzcyJdXV0sclZlPVsibGFiZWwiLCJbY2xyRGF0ZV0iLCJbY2xyU3RhcnREYXRlXSIsIltjbHJFbmRE'@; put 'YXRlXSIsImNsci1jb250cm9sLWhlbHBlciIsImNsci1jb250cm9sLWVycm9yIiwiY2xyLWNvbnRyb2wtc3VjY2VzcyJdO2Z1bmN0aW9uIGlWZShjLGwpezEmYyYmV3QoMCwibGFiZWwiKX1mdW5jdGlvbiBhVmUoYyxsKXsxJmMmJihhaSgwKSxXcigxLDIpLGRlKDIsInNwYW4iLDkpLE9lKDMs'@; put 'Ii0iKSxoZSgpLFdyKDQsMyksc2koKSl9ZnVuY3Rpb24gc1ZlKGMsbCl7MSZjJiYoZGUoMCwiYnV0dG9uIiwxMCwwKSxXdCgyLCJjZHMtaWNvbiIsMTEpLGhlKCkpLDImYyYmTWUoImRpc2FibGVkIixMZSgpLmlzSW5wdXREYXRlRGlzYWJsZWQpfWZ1bmN0aW9uIG9WZShjLGwpezEmYyYmV3Qo'@; put 'MCwiY2xyLWRhdGVwaWNrZXItdmlldy1tYW5hZ2VyIiwxMil9ZnVuY3Rpb24gbFZlKGMsbCl7MSZjJiZXdCgwLCJjZHMtaWNvbiIsMTMpfWZ1bmN0aW9uIGNWZShjLGwpezEmYyYmV3QoMCwiY2RzLWljb24iLDE0KX1mdW5jdGlvbiB1VmUoYyxsKXsxJmMmJldyKDAsNCxbIipuZ0lmIiwic2hv'@; put 'd0hlbHBlciJdKX1mdW5jdGlvbiBkVmUoYyxsKXsxJmMmJldyKDAsNSxbIipuZ0lmIiwic2hvd0ludmFsaWQiXSl9ZnVuY3Rpb24gaFZlKGMsbCl7MSZjJiZXcigwLDYsWyIqbmdJZiIsInNob3dWYWxpZCJdKX1jb25zdCBtVmU9W1tbImxhYmVsIl1dLFtbIiIsImNsck51bWJlcklucHV0Iiwi'@; put 'Il1dLFtbImNsci1jb250cm9sLWhlbHBlciJdXSxbWyJjbHItY29udHJvbC1lcnJvciJdXSxbWyJjbHItY29udHJvbC1zdWNjZXNzIl1dXSx2VmU9WyJsYWJlbCIsIltjbHJOdW1iZXJJbnB1dF0iLCJjbHItY29udHJvbC1oZWxwZXIiLCJjbHItY29udHJvbC1lcnJvciIsImNsci1jb250cm9s'@; put 'LXN1Y2Nlc3MiXTtmdW5jdGlvbiB5VmUoYyxsKXsxJmMmJld0KDAsImxhYmVsIil9ZnVuY3Rpb24gYlZlKGMsbCl7MSZjJiZXdCgwLCJjZHMtaWNvbiIsMTEpfWZ1bmN0aW9uIF9WZShjLGwpezEmYyYmV3QoMCwiY2RzLWljb24iLDEyKX1mdW5jdGlvbiB3VmUoYyxsKXsxJmMmJldyKDAsMixb'@; put 'IipuZ0lmIiwic2hvd0hlbHBlciJdKX1mdW5jdGlvbiBDVmUoYyxsKXsxJmMmJldyKDAsMyxbIipuZ0lmIiwic2hvd0ludmFsaWQiXSl9ZnVuY3Rpb24gU1ZlKGMsbCl7MSZjJiZXcigwLDQsWyIqbmdJZiIsInNob3dWYWxpZCJdKX1jb25zdCBNVmU9W1tbIiIsImNsclJhZGlvIiwiIl1dLFtb'@; put 'ImxhYmVsIl1dXSx4VmU9WyJbY2xyUmFkaW9dIiwibGFiZWwiXTtmdW5jdGlvbiBFVmUoYyxsKXsxJmMmJld0KDAsImxhYmVsIil9Y29uc3QgVFZlPVtbWyJsYWJlbCJdXSxbWyJjbHItcmFkaW8td3JhcHBlciJdXSxbWyJjbHItY29udHJvbC1oZWxwZXIiXV0sW1siY2xyLWNvbnRyb2wtZXJy'@; put 'b3IiXV0sW1siY2xyLWNvbnRyb2wtc3VjY2VzcyJdXV0sQVZlPVsibGFiZWwiLCJjbHItcmFkaW8td3JhcHBlciIsImNsci1jb250cm9sLWhlbHBlciIsImNsci1jb250cm9sLWVycm9yIiwiY2xyLWNvbnRyb2wtc3VjY2VzcyJdO2Z1bmN0aW9uIGtWZShjLGwpezEmYyYmV3QoMCwibGFiZWwi'@; put 'KX1mdW5jdGlvbiBEVmUoYyxsKXsxJmMmJihkZSgwLCJkaXYiLDMpLFdyKDEsMiksaGUoKSl9ZnVuY3Rpb24gSVZlKGMsbCl7MSZjJiZXdCgwLCJjZHMtaWNvbiIsNil9ZnVuY3Rpb24gUlZlKGMsbCl7MSZjJiZXdCgwLCJjZHMtaWNvbiIsNyl9ZnVuY3Rpb24gTFZlKGMsbCl7MSZjJiZXcigw'@; put 'LDMsWyIqbmdJZiIsInNob3dJbnZhbGlkIl0pfWZ1bmN0aW9uIE9WZShjLGwpezEmYyYmV3IoMCw0LFsiKm5nSWYiLCJzaG93VmFsaWQiXSl9ZnVuY3Rpb24gUFZlKGMsbCl7aWYoMSZjJiYoZGUoMCwiZGl2IiwzKSxndCgxLElWZSwxLDAsImNkcy1pY29uIiw0KSgyLFJWZSwxLDAsImNkcy1p'@; put 'Y29uIiw1KSgzLExWZSwxLDAsIm5nLWNvbnRlbnQiLDApKDQsT1ZlLDEsMCwibmctY29udGVudCIsMCksaGUoKSksMiZjKXtjb25zdCBhPUxlKCk7ZmUoKSxNZSgibmdJZiIsYS5zaG93SW52YWxpZCksZmUoKSxNZSgibmdJZiIsYS5zaG93VmFsaWQpLGZlKCksTWUoIm5nSWYiLGEuc2hvd0lu'@; put 'dmFsaWQpLGZlKCksTWUoIm5nSWYiLGEuc2hvd1ZhbGlkKX19Y29uc3QgRlZlPVtbWyJsYWJlbCJdXSxbWyIiLCJjbHJTZWxlY3QiLCIiXV0sW1siY2xyLWNvbnRyb2wtaGVscGVyIl1dLFtbImNsci1jb250cm9sLWVycm9yIl1dLFtbImNsci1jb250cm9sLXN1Y2Nlc3MiXV1dLEhWZT1bImxh'@; put 'YmVsIiwiW2NsclNlbGVjdF0iLCJjbHItY29udHJvbC1oZWxwZXIiLCJjbHItY29udHJvbC1lcnJvciIsImNsci1jb250cm9sLXN1Y2Nlc3MiXTtmdW5jdGlvbiBOVmUoYyxsKXsxJmMmJld0KDAsImxhYmVsIil9ZnVuY3Rpb24gVlZlKGMsbCl7MSZjJiZXdCgwLCJjZHMtaWNvbiIsNSl9ZnVu'@; put 'Y3Rpb24gQlZlKGMsbCl7MSZjJiZXdCgwLCJjZHMtaWNvbiIsNil9ZnVuY3Rpb24galZlKGMsbCl7MSZjJiZXcigwLDIsWyIqbmdJZiIsInNob3dIZWxwZXIiXSl9ZnVuY3Rpb24gelZlKGMsbCl7MSZjJiZXcigwLDMsWyIqbmdJZiIsInNob3dJbnZhbGlkIl0pfWZ1bmN0aW9uIFVWZShjLGwp'@; put 'ezEmYyYmV3IoMCw0LFsiKm5nSWYiLCJzaG93VmFsaWQiXSl9Y29uc3QgWlZlPVtbWyJsYWJlbCJdXSxbWyIiLCJjbHJUZXh0YXJlYSIsIiJdXSxbWyJjbHItY29udHJvbC1oZWxwZXIiXV0sW1siY2xyLWNvbnRyb2wtZXJyb3IiXV0sW1siY2xyLWNvbnRyb2wtc3VjY2VzcyJdXV0sV1ZlPVsi'@; put 'bGFiZWwiLCJbY2xyVGV4dGFyZWFdIiwiY2xyLWNvbnRyb2wtaGVscGVyIiwiY2xyLWNvbnRyb2wtZXJyb3IiLCJjbHItY29udHJvbC1zdWNjZXNzIl07ZnVuY3Rpb24gWVZlKGMsbCl7MSZjJiZXdCgwLCJsYWJlbCIpfWZ1bmN0aW9uIEdWZShjLGwpezEmYyYmV3QoMCwiY2RzLWljb24iLDUp'@; put 'fWZ1bmN0aW9uICRWZShjLGwpezEmYyYmV3QoMCwiY2RzLWljb24iLDYpfWZ1bmN0aW9uIEtWZShjLGwpezEmYyYmV3IoMCwyLFsiKm5nSWYiLCJzaG93SGVscGVyIl0pfWZ1bmN0aW9uIFhWZShjLGwpezEmYyYmV3IoMCwzLFsiKm5nSWYiLCJzaG93SW52YWxpZCJdKX1mdW5jdGlvbiBxVmUo'@; put 'YyxsKXsxJmMmJldyKDAsNCxbIipuZ0lmIiwic2hvd1ZhbGlkIl0pfWNvbnN0IEpWZT1bImFuY2hvciJdO2Z1bmN0aW9uIFFWZShjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIsNCkoMSwiZGl2Iiw1KSgyLCJidXR0b24iLDYpLFd0KDMsImNkcy1pY29uIiw3KSxoZSgpKCksV3IoNCksaGUoKSks'@; put 'MiZjKXtjb25zdCBhPUxlKCk7TWUoImlkIixhLnBvcG92ZXJJZCksaHIoImFyaWEtbGFiZWwiLGEuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGFncmlkRmlsdGVyRGlhbG9nQXJpYUxhYmVsKSxmZSgzKSxocigidGl0bGUiLGEuY29tbW9uU3RyaW5ncy5rZXlzLmNsb3NlKX19Y29uc3QgZUJlPVsi'@; put 'aW5wdXRfbG93Il0sdEJlPVsiaW5wdXQiXSxuQmU9WyJjb2x1bW5Qb3J0YWwiXTtmdW5jdGlvbiByQmUoYyxsKXsxJmMmJldyKDApfWNvbnN0IGlCZT1bInJlc2l6ZVRyYWNrZXIiXSxhQmU9WyJjb2x1bW5IYW5kbGUiXSxzQmU9W1tbImNsci1kZy1maWx0ZXIiXSxbImNsci1kZy1zdHJpbmct'@; put 'ZmlsdGVyIl0sWyJjbHItZGctbnVtZXJpYy1maWx0ZXIiXV0sIioiXSxvQmU9WyJjbHItZGctZmlsdGVyLCBjbHItZGctc3RyaW5nLWZpbHRlciwgY2xyLWRnLW51bWVyaWMtZmlsdGVyIiwiKiJdO2Z1bmN0aW9uIGxCZShjLGwpezEmYyYmTGwoMCl9ZnVuY3Rpb24gY0JlKGMsbCl7MSZjJiZX'@; put 'dCgwLCJjZHMtaWNvbiIsMTApLDImYyYmaHIoImRpcmVjdGlvbiIsTGUoMikuc29ydERpcmVjdGlvbil9ZnVuY3Rpb24gdUJlKGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiYnV0dG9uIiw3KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKCkuc29ydCgp'@; put 'KX0pLGd0KDEsbEJlLDEsMCwibmctY29udGFpbmVyIiw4KSgyLGNCZSwxLDEsImNkcy1pY29uIiw5KSxoZSgpfWlmKDImYyl7Y29uc3QgYT1MZSgpLGQ9ZGEoNik7ZmUoKSxNZSgibmdUZW1wbGF0ZU91dGxldCIsZCksZmUoKSxNZSgibmdJZiIsYS5zb3J0RGlyZWN0aW9uKX19ZnVuY3Rpb24g'@; put 'ZEJlKGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiY2xyLWRnLXN0cmluZy1maWx0ZXIiLDExKSxwaSgiY2xyRmlsdGVyVmFsdWVDaGFuZ2UiLGZ1bmN0aW9uKGgpe3d0KGEpO2NvbnN0IGY9TGUoKTtyZXR1cm4gZ2koZi5maWx0ZXJWYWx1ZSxoKXx8KGYuZmlsdGVyVmFsdWU9aCks'@; put 'Q3QoaCl9KSxoZSgpfWlmKDImYyl7Y29uc3QgYT1MZSgpO01lKCJjbHJGaWx0ZXJQbGFjZWhvbGRlciIsYS5maWx0ZXJTdHJpbmdQbGFjZWhvbGRlcikoImNsckRnU3RyaW5nRmlsdGVyIixhLnJlZ2lzdGVyZWQpLGZpKCJjbHJGaWx0ZXJWYWx1ZSIsYS5maWx0ZXJWYWx1ZSl9fWZ1bmN0aW9u'@; put 'IGhCZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImNsci1kZy1udW1lcmljLWZpbHRlciIsMTIpLHBpKCJjbHJGaWx0ZXJWYWx1ZUNoYW5nZSIsZnVuY3Rpb24oaCl7d3QoYSk7Y29uc3QgZj1MZSgpO3JldHVybiBnaShmLmZpbHRlclZhbHVlLGgpfHwoZi5maWx0ZXJWYWx1ZT1o'@; put 'KSxDdChoKX0pLGhlKCl9aWYoMiZjKXtjb25zdCBhPUxlKCk7TWUoImNsckZpbHRlck1heFBsYWNlaG9sZGVyIixhLmZpbHRlck51bWJlck1heFBsYWNlaG9sZGVyKSgiY2xyRmlsdGVyTWluUGxhY2Vob2xkZXIiLGEuZmlsdGVyTnVtYmVyTWluUGxhY2Vob2xkZXIpKCJjbHJEZ051bWVyaWNG'@; put 'aWx0ZXIiLGEucmVnaXN0ZXJlZCksZmkoImNsckZpbHRlclZhbHVlIixhLmZpbHRlclZhbHVlKX19ZnVuY3Rpb24gZkJlKGMsbCl7MSZjJiZXcigwLDEpfWZ1bmN0aW9uIHBCZShjLGwpezEmYyYmTGwoMCl9ZnVuY3Rpb24gZ0JlKGMsbCl7aWYoMSZjJiYoZGUoMCwic3BhbiIsMTMpLGd0KDEs'@; put 'cEJlLDEsMCwibmctY29udGFpbmVyIiw4KSxoZSgpKSwyJmMpe0xlKCk7Y29uc3QgYT1kYSg2KTtmZSgpLE1lKCJuZ1RlbXBsYXRlT3V0bGV0IixhKX19ZnVuY3Rpb24gbUJlKGMsbCl7MSZjJiZXdCgwLCJjbHItZGctY29sdW1uLXNlcGFyYXRvciIpfWZ1bmN0aW9uIHZCZShjLGwpezEmYyYm'@; put 'V3QoMCwiZGl2Iiw0KX1mdW5jdGlvbiB5QmUoYyxsKXsxJmMmJldyKDAsMCxbIipuZ0lmIiwiZW1wdHlEYXRhZ3JpZCJdKX1jb25zdCBiQmU9WyJjZWxsUG9ydGFsIl07ZnVuY3Rpb24gX0JlKGMsbCl7MSZjJiZXcigwKX1jb25zdCB3QmU9WyJyb3dQb3J0YWwiXTtmdW5jdGlvbiBDQmUoYyxs'@; put 'KXsxJmMmJldyKDApfWNvbnN0IFNCZT1bImRldGFpbEJ1dHRvbiJdLE1CZT1bInN0aWNreUNlbGxzIl0seEJlPVsic2Nyb2xsYWJsZUNlbGxzIl0sRUJlPVsiY2FsY3VsYXRlZENlbGxzIl0sVEJlPVtbWyJjbHItZGctcm93LWRldGFpbCJdXSxbWyJjbHItZGctY2VsbCJdXSxbWyJjbHItZGct'@; put 'YWN0aW9uLW92ZXJmbG93Il1dXSxBQmU9WyJjbHItZGctcm93LWRldGFpbCIsImNsci1kZy1jZWxsIiwiY2xyLWRnLWFjdGlvbi1vdmVyZmxvdyJdLGtCZT1jPT4oeyJpcy1yZXBsYWNlZCI6Y30pLEkxZT1jPT4oeyJjbHItZm9ybS1jb250cm9sLWRpc2FibGVkIjpjfSk7ZnVuY3Rpb24gREJl'@; put 'KGMsbCl7fWZ1bmN0aW9uIElCZShjLGwpe2lmKDEmYyYmKGRlKDAsImNsci1leHBhbmRhYmxlLWFuaW1hdGlvbiIsMTApLGd0KDEsREJlLDAsMCwibmctdGVtcGxhdGUiLDExKSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoMiksZD1kYSg2KTtNZSgiY2xyRXhwYW5kVHJpZ2dlciIsYS5leHBhbmRB'@; put 'bmltYXRpb25UcmlnZ2VyKSxmZSgpLE1lKCJuZ1RlbXBsYXRlT3V0bGV0IixkKX19ZnVuY3Rpb24gUkJlKGMsbCl7fWZ1bmN0aW9uIExCZShjLGwpezEmYyYmZ3QoMCxSQmUsMCwwLCJuZy10ZW1wbGF0ZSIsMTEpLDImYyYmKExlKDIpLE1lKCJuZ1RlbXBsYXRlT3V0bGV0IixkYSg2KSkpfWZ1'@; put 'bmN0aW9uIE9CZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImRpdiIsOSksRnQoIm1vdXNlZG93biIsZnVuY3Rpb24oaCl7cmV0dXJuIHd0KGEpLEN0KExlKCkuY2xlYXJSYW5nZXMoaCkpfSkoImNsaWNrIixmdW5jdGlvbihoKXt3dChhKTtjb25zdCBmPUxlKCk7cmV0dXJuIEN0'@; put 'KGYuc2VsZWN0Um93KCFmLnNlbGVjdGVkLGgpKX0pLGd0KDEsSUJlLDIsMiwiY2xyLWV4cGFuZGFibGUtYW5pbWF0aW9uIiw3KSgyLExCZSwxLDEsbnVsbCw4KSxoZSgpfWlmKDImYyl7Y29uc3QgYT1MZSgpO2ZlKCksTWUoIm5nSWYiLGEuZXhwYW5kLmV4cGFuZGFibGUpLGZlKCksTWUoIm5n'@; put 'SWYiLCFhLmV4cGFuZC5leHBhbmRhYmxlKX19ZnVuY3Rpb24gUEJlKGMsbCl7fWZ1bmN0aW9uIEZCZShjLGwpe2lmKDEmYyYmKGRlKDAsImNsci1leHBhbmRhYmxlLWFuaW1hdGlvbiIsMTApLGd0KDEsUEJlLDAsMCwibmctdGVtcGxhdGUiLDExKSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoKSxk'@; put 'PWRhKDYpO01lKCJjbHJFeHBhbmRUcmlnZ2VyIixhLmV4cGFuZEFuaW1hdGlvblRyaWdnZXIpLGZlKCksTWUoIm5nVGVtcGxhdGVPdXRsZXQiLGQpfX1mdW5jdGlvbiBIQmUoYyxsKXt9ZnVuY3Rpb24gTkJlKGMsbCl7MSZjJiZndCgwLEhCZSwwLDAsIm5nLXRlbXBsYXRlIiwxMSksMiZjJiYo'@; put 'TGUoKSxNZSgibmdUZW1wbGF0ZU91dGxldCIsZGEoNikpKX1mdW5jdGlvbiBWQmUoYyxsKXsxJmMmJldyKDApfWZ1bmN0aW9uIEJCZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImRpdiIsMjEpKDEsImRpdiIsMjIpKDIsImlucHV0IiwyMyksRnQoIm5nTW9kZWxDaGFuZ2UiLGZ1'@; put 'bmN0aW9uKGgpe3JldHVybiB3dChhKSxDdChMZSgyKS50b2dnbGUoaCkpfSksaGUoKSxkZSgzLCJsYWJlbCIsMjQpLEZ0KCJjbGljayIsZnVuY3Rpb24oaCl7cmV0dXJuIHd0KGEpLEN0KExlKDIpLmNsZWFyUmFuZ2VzKGgpKX0pLGRlKDQsInNwYW4iLDI1KSxPZSg1KSxoZSgpKCkoKSgpfWlm'@; put 'KDImYyl7Y29uc3QgYT1MZSgyKTtNZSgibmdDbGFzcyIsbHAoNyxJMWUsIWEuY2xyRGdTZWxlY3RhYmxlKSksZmUoMiksTWUoIm5nTW9kZWwiLGEuc2VsZWN0ZWQpKCJpZCIsYS5jaGVja2JveElkKSgiZGlzYWJsZWQiLCFhLmNsckRnU2VsZWN0YWJsZXx8bnVsbCksaHIoImFyaWEtZGlzYWJs'@; put 'ZWQiLCFhLmNsckRnU2VsZWN0YWJsZXx8bnVsbCksZmUoKSxNZSgiZm9yIixhLmNoZWNrYm94SWQpLGZlKDIpLFNyKGEuY2xyRGdSb3dTZWxlY3Rpb25MYWJlbHx8YS5jb21tb25TdHJpbmdzLmtleXMuc2VsZWN0KX19ZnVuY3Rpb24gakJlKGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUo'@; put 'MCwiZGl2IiwyMSkoMSwiY2xyLXJhZGlvLXdyYXBwZXIiKSgyLCJpbnB1dCIsMjYpLHBpKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihoKXt3dChhKTtjb25zdCBmPUxlKDIpO3JldHVybiBnaShmLnNlbGVjdGlvbi5jdXJyZW50U2luZ2xlLGgpfHwoZi5zZWxlY3Rpb24uY3VycmVudFNpbmds'@; put 'ZT1oKSxDdChoKX0pLGhlKCksZGUoMywibGFiZWwiLDI3KSg0LCJzcGFuIiwyNSksT2UoNSksaGUoKSgpKCkoKX1pZigyJmMpe2NvbnN0IGE9TGUoMik7TWUoIm5nQ2xhc3MiLGxwKDEwLEkxZSwhYS5jbHJEZ1NlbGVjdGFibGUpKSxmZSgyKSxNZSgiaWQiLGEucmFkaW9JZCkoIm5hbWUiLGEu'@; put 'c2VsZWN0aW9uLmlkKyItcmFkaW8iKSgidmFsdWUiLGEuaXRlbSksZmkoIm5nTW9kZWwiLGEuc2VsZWN0aW9uLmN1cnJlbnRTaW5nbGUpLE1lKCJjaGVja2VkIixhLnNlbGVjdGlvbi5jdXJyZW50U2luZ2xlPT09YS5pdGVtKSgiZGlzYWJsZWQiLCFhLmNsckRnU2VsZWN0YWJsZXx8bnVsbCks'@; put 'aHIoImFyaWEtZGlzYWJsZWQiLCFhLmNsckRnU2VsZWN0YWJsZXx8bnVsbCksZmUoKSxNZSgiZm9yIixhLnJhZGlvSWQpLGZlKDIpLFNyKGEuY2xyRGdSb3dTZWxlY3Rpb25MYWJlbHx8YS5jb21tb25TdHJpbmdzLmtleXMuc2VsZWN0KX19ZnVuY3Rpb24gekJlKGMsbCl7MSZjJiYoZGUoMCwi'@; put 'ZGl2IiwyOCksV3IoMSwyKSxoZSgpKX1mdW5jdGlvbiBVQmUoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJidXR0b24iLDMyKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKDQpLnRvZ2dsZUV4cGFuZCgpKX0pLFd0KDEsImNkcy1pY29uIiwzMyksaGUo'@; put 'KX1pZigyJmMpe2NvbnN0IGE9TGUoNCk7aHIoImFyaWEtZXhwYW5kZWQiLGEuZXhwYW5kLmV4cGFuZGVkKSgiYXJpYS1sYWJlbCIsYS5leHBhbmQuZXhwYW5kZWQ/YS5jbHJEZ0RldGFpbENsb3NlTGFiZWw6YS5jbHJEZ0RldGFpbE9wZW5MYWJlbCkoImFyaWEtY29udHJvbHMiLGEuZXhwYW5k'@; put 'Lmhhc0V4cGFuZFRlbXBsYXRlJiYhYS5leHBhbmQuZXhwYW5kZWQ/bnVsbDphLmV4cGFuZGFibGVJZCksZmUoKSxocigiZGlyZWN0aW9uIixhLmV4cGFuZC5leHBhbmRlZD8iZG93biI6InJpZ2h0IikoInRpdGxlIixhLmV4cGFuZC5leHBhbmRlZD9hLmNvbW1vblN0cmluZ3Mua2V5cy5jb2xs'@; put 'YXBzZTphLmNvbW1vblN0cmluZ3Mua2V5cy5leHBhbmQpfX1mdW5jdGlvbiBaQmUoYyxsKXtpZigxJmMmJihkZSgwLCJjbHItc3Bpbm5lciIsMzQpLE9lKDEpLGhlKCkpLDImYyl7Y29uc3QgYT1MZSg0KTtmZSgpLFNyKGEuY29tbW9uU3RyaW5ncy5rZXlzLmxvYWRpbmcpfX1mdW5jdGlvbiBX'@; put 'QmUoYyxsKXtpZigxJmMmJihhaSgwKSxndCgxLFVCZSwyLDUsImJ1dHRvbiIsMzApKDIsWkJlLDIsMSwiY2xyLXNwaW5uZXIiLDMxKSxzaSgpKSwyJmMpe2NvbnN0IGE9TGUoMyk7ZmUoKSxNZSgibmdJZiIsIWEuZXhwYW5kLmxvYWRpbmcpLGZlKCksTWUoIm5nSWYiLGEuZXhwYW5kLmxvYWRp'@; put 'bmcpfX1mdW5jdGlvbiBZQmUoYyxsKXtpZigxJmMmJihkZSgwLCJkaXYiLDI5KSxndCgxLFdCZSwzLDIsIm5nLWNvbnRhaW5lciIsOCksaGUoKSksMiZjKXtjb25zdCBhPUxlKDIpO2ZlKCksTWUoIm5nSWYiLGEuZXhwYW5kLmV4cGFuZGFibGUpfX1mdW5jdGlvbiBHQmUoYyxsKXtpZigxJmMp'@; put 'e2NvbnN0IGE9T24oKTtkZSgwLCJidXR0b24iLDM3LDUpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPWRhKDEpLGY9TGUoMyk7cmV0dXJuIEN0KGYuZGV0YWlsU2VydmljZS50b2dnbGUoZi5pdGVtLGgpKX0pLFd0KDIsImNkcy1pY29uIiwzOCksaGUoKX1pZigyJmMpe2Nv'@; put 'bnN0IGE9TGUoMyk7VHIoImlzLW9wZW4iLGEuZGV0YWlsU2VydmljZS5pc1Jvd09wZW4oYS5pdGVtKSksTWUoImRpc2FibGVkIixhLmRldGFpbERpc2FibGVkKSxocigiYXJpYS1sYWJlbCIsYS5kZXRhaWxTZXJ2aWNlLmlzUm93T3BlbihhLml0ZW0pP2EuY2xyRGdEZXRhaWxDbG9zZUxhYmVs'@; put 'OmEuY2xyRGdEZXRhaWxPcGVuTGFiZWwpKCJhcmlhLWV4cGFuZGVkIixhLmRldGFpbFNlcnZpY2UuaXNSb3dPcGVuKGEuaXRlbSkpKCJhcmlhLWNvbnRyb2xzIixhLmRldGFpbFNlcnZpY2UuaWQpLGZlKDIpLGhyKCJkaXJlY3Rpb24iLGEuZGV0YWlsU2VydmljZS5pc1Jvd09wZW4oYS5pdGVt'@; put 'KT8ibGVmdCI6InJpZ2h0IikoInRpdGxlIixhLmRldGFpbFNlcnZpY2UuaXNSb3dPcGVuKGEuaXRlbSk/YS5jb21tb25TdHJpbmdzLmtleXMuY2xvc2U6YS5jb21tb25TdHJpbmdzLmtleXMub3Blbil9fWZ1bmN0aW9uICRCZShjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIsMzUpLGd0KDEsR0Jl'@; put 'LDMsOCwiYnV0dG9uIiwzNiksaGUoKSksMiZjKXtjb25zdCBhPUxlKDIpO2ZlKCksTWUoIm5nSWYiLCFhLmRldGFpbEhpZGRlbil9fWZ1bmN0aW9uIEtCZShjLGwpe31mdW5jdGlvbiBYQmUoYyxsKXsxJmMmJmd0KDAsS0JlLDAsMCwibmctdGVtcGxhdGUiLDExKSwyJmMmJihMZSgyKSxNZSgi'@; put 'bmdUZW1wbGF0ZU91dGxldCIsZGEoNCkpKX1mdW5jdGlvbiBxQmUoYyxsKXt9ZnVuY3Rpb24gSkJlKGMsbCl7MSZjJiZndCgwLHFCZSwwLDAsIm5nLXRlbXBsYXRlIiwxMSksMiZjJiYoTGUoMiksTWUoIm5nVGVtcGxhdGVPdXRsZXQiLGRhKDQpKSl9ZnVuY3Rpb24gUUJlKGMsbCl7MSZjJiZX'@; put 'dCgwLCJjbHItZGctY2VsbCIsMzkpfWZ1bmN0aW9uIGVqZShjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIsMTIpKDEsImRpdiIsMTMpLGFpKDIsbnVsbCwzKSxndCg0LEJCZSw2LDksImRpdiIsMTQpKDUsakJlLDYsMTIsImRpdiIsMTQpKDYsekJlLDIsMCwiZGl2IiwxNSkoNyxZQmUsMiwxLCJk'@; put 'aXYiLDE2KSg4LCRCZSwyLDEsImRpdiIsMTcpLHNpKCksaGUoKSxkZSg5LCJkaXYiLDE4KSgxMCwiZGl2IiwxOSksV3IoMTEsMSksTGwoMTIsbnVsbCw0KSxoZSgpLGd0KDE0LFhCZSwxLDEsbnVsbCw4KSgxNSxKQmUsMSwxLG51bGwsOCksaGUoKSxndCgxNixRQmUsMSwwLCJjbHItZGctY2Vs'@; put 'bCIsMjApLGhlKCkpLDImYyl7Y29uc3QgYT1MZSgpO1RyKCJkYXRhZ3JpZC1yb3ctZGV0YWlsLW9wZW4iLGEuZGV0YWlsU2VydmljZS5pc1Jvd09wZW4oYS5pdGVtKSksTWUoImlkIixhLmlkKSxmZSg0KSxNZSgibmdJZiIsYS5zZWxlY3Rpb24uc2VsZWN0aW9uVHlwZT09PWEuU0VMRUNUSU9O'@; put 'X1RZUEUuTXVsdGkpLGZlKCksTWUoIm5nSWYiLGEuc2VsZWN0aW9uLnNlbGVjdGlvblR5cGU9PT1hLlNFTEVDVElPTl9UWVBFLlNpbmdsZSksZmUoKSxNZSgibmdJZiIsYS5yb3dBY3Rpb25TZXJ2aWNlLmhhc0FjdGlvbmFibGVSb3cpLGZlKCksTWUoIm5nSWYiLGEuZ2xvYmFsRXhwYW5kYWJs'@; put 'ZS5oYXNFeHBhbmRhYmxlUm93KSxmZSgpLE1lKCJuZ0lmIixhLmRldGFpbFNlcnZpY2UuZW5hYmxlZCksZmUoKSxNZSgibmdDbGFzcyIsbHAoMTIsa0JlLGEucmVwbGFjZWQmJmEuZXhwYW5kZWQpKSxmZSg1KSxNZSgibmdJZiIsYS5yZXBsYWNlZCYmIWEuZXhwYW5kLmxvYWRpbmcpLGZlKCks'@; put 'TWUoIm5nSWYiLCFhLnJlcGxhY2VkJiYhYS5leHBhbmQubG9hZGluZyksZmUoKSxNZSgibmdJZiIsYS5za2VsZXRvbkxvYWRpbmcpfX1jb25zdCB0amU9WyJkYXRhZ3JpZCJdLG5qZT1bImRhdGFncmlkVGFibGUiXSxyamU9WyJzY3JvbGxhYmxlQ29sdW1ucyJdLGlqZT1bInByb2plY3RlZERp'@; put 'c3BsYXlDb2x1bW5zIl0sYWplPVsicHJvamVjdGVkQ2FsY3VsYXRpb25Db2x1bW5zIl0sc2plPVsiZGlzcGxheWVkUm93cyJdLG9qZT1bImNhbGN1bGF0aW9uUm93cyJdLGxqZT1bInNlbGVjdEFsbENoZWNrYm94Il0sY2plPVtbWyJjbHItZGctYWN0aW9uLWJhciJdXSxbWyJjbHItZGctcGxh'@; put 'Y2Vob2xkZXIiXV0sW1siY2xyLWRnLWZvb3RlciJdXSxbWyIiLCJjbHJJZkRldGFpbCIsIiJdLFsiY2xyLWRnLWRldGFpbCJdXV0sdWplPVsiY2xyLWRnLWFjdGlvbi1iYXIiLCJjbHItZGctcGxhY2Vob2xkZXIiLCJjbHItZGctZm9vdGVyIiwiW2NscklmRGV0YWlsXSxjbHItZGctZGV0YWls'@; put 'Il07ZnVuY3Rpb24gZGplKGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiZGl2IiwzMCkoMSwiaW5wdXQiLDMxLDYpLHBpKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihoKXt3dChhKTtjb25zdCBmPUxlKDIpO3JldHVybiBnaShmLmFsbFNlbGVjdGVkLGgpfHwoZi5hbGxTZWxlY3Rl'@; put 'ZD1oKSxDdChoKX0pLGhlKCksZGUoMywibGFiZWwiLDMyKSg0LCJzcGFuIiwzMyksT2UoNSksaGUoKSgpKCl9aWYoMiZjKXtjb25zdCBhPUxlKDIpO2ZlKCksTWUoImlkIixhLnNlbGVjdEFsbElkKSxmaSgibmdNb2RlbCIsYS5hbGxTZWxlY3RlZCksaHIoImFyaWEtbGFiZWwiLGEuY29tbW9u'@; put 'U3RyaW5ncy5rZXlzLnNlbGVjdEFsbCksZmUoMiksTWUoImZvciIsYS5zZWxlY3RBbGxJZCksZmUoMiksU3IoYS5jb21tb25TdHJpbmdzLmtleXMuc2VsZWN0QWxsKX19ZnVuY3Rpb24gaGplKGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiZGl2IiwyNyksRnQoImtleWRvd24uc3Bh'@; put 'Y2UiLGZ1bmN0aW9uKGgpe3JldHVybiB3dChhKSxDdChMZSgpLnRvZ2dsZUFsbFNlbGVjdGVkKGgpKX0pLGd0KDEsZGplLDYsNSwiZGl2IiwyOCksV3QoMiwiZGl2IiwyOSksaGUoKX1pZigyJmMpe2NvbnN0IGE9TGUoKTtmZSgpLE1lKCJuZ0lmIiwhYS52aXJ0dWFsU2Nyb2xsfHxhLmN1c3Rv'@; put 'bVNlbGVjdEFsbEVuYWJsZWQpfX1mdW5jdGlvbiBmamUoYyxsKXtpZigxJmMmJihkZSgwLCJkaXYiLDM0KSgxLCJkaXYiLDMzKSxPZSgyKSxoZSgpLFd0KDMsImRpdiIsMjkpLGhlKCkpLDImYyl7Y29uc3QgYT1MZSgpO2ZlKDIpLFNyKGEuY2xyRGdTaW5nbGVTZWxlY3Rpb25BcmlhTGFiZWwp'@; put 'fX1mdW5jdGlvbiBwamUoYyxsKXtpZigxJmMmJihkZSgwLCJkaXYiLDM1KSgxLCJkaXYiLDMzKSxPZSgyKSxoZSgpLFd0KDMsImRpdiIsMjkpLGhlKCkpLDImYyl7Y29uc3QgYT1MZSgpO2ZlKDIpLFNyKGEuY2xyRGdTaW5nbGVBY3Rpb25hYmxlQXJpYUxhYmVsKX19ZnVuY3Rpb24gZ2plKGMs'@; put 'bCl7aWYoMSZjJiYoZGUoMCwiZGl2IiwzNikoMSwiZGl2IiwzMyksT2UoMiksaGUoKSxXdCgzLCJkaXYiLDI5KSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoKTtmZSgyKSxTcihhLmNsckRldGFpbEV4cGFuZGFibGVBcmlhTGFiZWwpfX1mdW5jdGlvbiBtamUoYyxsKXtpZigxJmMmJihkZSgwLCJj'@; put 'bHItZGctcm93IiwzNykoMSwiY2xyLWRnLWNlbGwiKSxXdCgyLCJjbHItc3Bpbm5lciIsMzgpLGRlKDMsInNwYW4iKSxPZSg0KSxoZSgpKCkoKSksMiZjKXtjb25zdCBhPUxlKCk7ZmUoNCksU3IoYS5jb21tb25TdHJpbmdzLmtleXMubG9hZGluZyl9fWZ1bmN0aW9uIHZqZShjLGwpe2lmKDEm'@; put 'YyYmKGRlKDAsImNsci1kZy1yb3ciLDM3KSgxLCJjbHItZGctY2VsbCIpLFd0KDIsImNsci1zcGlubmVyIiwzOCksZGUoMywic3BhbiIpLE9lKDQpLGhlKCkoKSgpKSwyJmMpe2NvbnN0IGE9TGUoKTtmZSg0KSxTcihhLmNvbW1vblN0cmluZ3Mua2V5cy5sb2FkaW5nKX19ZnVuY3Rpb24geWpl'@; put 'KGMsbCl7MSZjJiZXdCgwLCJjbHItZGctcGxhY2Vob2xkZXIiKX1mdW5jdGlvbiBiamUoYyxsKXsxJmMmJihkZSgwLCJkaXYiLDM5KSgxLCJjbHItc3Bpbm5lciIsMzgpLE9lKDIsIkxvYWRpbmciKSxoZSgpKCkpfWNvbnN0IHdqZT1bImFsbFNlbGVjdGVkIl07ZnVuY3Rpb24gQ2plKGMsbCl7'@; put 'fWZ1bmN0aW9uIFNqZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImxpIikoMSwiY2xyLWNoZWNrYm94LXdyYXBwZXIiKSgyLCJpbnB1dCIsMTMpLEZ0KCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihoKXtjb25zdCBmPXd0KGEpLiRpbXBsaWNpdDtyZXR1cm4gQ3QoTGUoMikudG9n'@; put 'Z2xlQ29sdW1uU3RhdGUoZiwhaCkpfSksaGUoKSxkZSgzLCJsYWJlbCIpLGd0KDQsQ2plLDAsMCwibmctdGVtcGxhdGUiLDE0KSxoZSgpKCkoKX1pZigyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQsZD1MZSgyKTtmZSgyKSxNZSgiZGlzYWJsZWQiLGQuaGFzT25seU9uZVZpc2libGVDb2x1bW4m'@; put 'JiFhLmhpZGRlbikoIm5nTW9kZWwiLCFhLmhpZGRlbiksZmUoMiksTWUoIm5nVGVtcGxhdGVPdXRsZXQiLGEudGl0bGVUZW1wbGF0ZVJlZil9fWZ1bmN0aW9uIE1qZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImRpdiIsMykoMSwiZGl2Iiw0KSgyLCJkaXYiLDUsMCksT2UoNCks'@; put 'aGUoKSxkZSg1LCJoMiIpLE9lKDYpLGhlKCksZGUoNywiYnV0dG9uIiw2KSxXdCg4LCJjZHMtaWNvbiIsNyksZGUoOSwic3BhbiIsOCksT2UoMTApLGhlKCkoKSgpLGRlKDExLCJ1bCIsOSksZ3QoMTIsU2plLDUsMywibGkiLDEwKSxoZSgpLGRlKDEzLCJkaXYiLDExKSgxNCwiY2xyLWRnLWNv'@; put 'bHVtbi10b2dnbGUtYnV0dG9uIiwxMiksRnQoImNsckFsbFNlbGVjdGVkIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgpLmFsbENvbHVtbnNTZWxlY3RlZCgpKX0pLGhlKCkoKSgpfWlmKDImYyl7Y29uc3QgYT1MZSgpO01lKCJpZCIsYS5wb3BvdmVySWQpLGhyKCJhcmlhLWxhYmVs'@; put 'IixhLmNvbW1vblN0cmluZ3Mua2V5cy5zaG93Q29sdW1uc01lbnVEZXNjcmlwdGlvbiksZmUoNCksU3IoYS5jb21tb25TdHJpbmdzLmtleXMuYWxsQ29sdW1uc1NlbGVjdGVkKSxmZSgyKSxTcihhLmNvbW1vblN0cmluZ3Mua2V5cy5zaG93Q29sdW1ucyksZmUoKSxocigiYXJpYS1sYWJlbCIs'@; put 'YS5jb21tb25TdHJpbmdzLmtleXMuY2xvc2UpLGZlKCksaHIoInRpdGxlIixhLmNvbW1vblN0cmluZ3Mua2V5cy5jbG9zZSksZmUoMiksU3IoYS5jb21tb25TdHJpbmdzLmtleXMuY2xvc2UpLGZlKDIpLE1lKCJuZ0Zvck9mIixhLmhpZGVhYmxlQ29sdW1uU3RhdGVzKSgibmdGb3JUcmFja0J5'@; put 'IixhLnRyYWNrQnlGbil9fWNvbnN0IFIxZT1bInRpdGxlIl0sRWplPVtbWyJjbHItZGctcGFnaW5hdGlvbiJdXSwiKiJdLFRqZT1bImNsci1kZy1wYWdpbmF0aW9uIiwiKiJdO2Z1bmN0aW9uIEFqZShjLGwpe2lmKDEmYyYmKGFpKDApLGRlKDEsImRpdiIsMSkoMiwiY2xyLWNoZWNrYm94LXdy'@; put 'YXBwZXIiLDIpLFd0KDMsImlucHV0IiwzKSxkZSg0LCJsYWJlbCIpLE9lKDUpLGhlKCksZGUoNiwic3BhbiIsNCksT2UoNyksaGUoKSgpKCksc2koKSksMiZjKXtjb25zdCBhPUxlKCk7ZmUoNSksU3IoYS5zZWxlY3Rpb24uY3VycmVudC5sZW5ndGgpLGZlKDIpLFNyKGEuY29tbW9uU3RyaW5n'@; put 'cy5rZXlzLnNlbGVjdGVkUm93cyl9fWZ1bmN0aW9uIGtqZShjLGwpezEmYyYmV3QoMCwiY2xyLWRnLWNvbHVtbi10b2dnbGUiKX1mdW5jdGlvbiBEamUoYyxsKXtpZigxJmMmJihhaSgwKSxndCgxLGtqZSwxLDAsImNsci1kZy1jb2x1bW4tdG9nZ2xlIiwwKSxkZSgyLCJkaXYiLDUpLFdyKDMs'@; put 'MSksaGUoKSxzaSgpKSwyJmMpe2NvbnN0IGE9TGUoKTtmZSgpLE1lKCJuZ0lmIixhLmhhc0hpZGVhYmxlQ29sdW1ucyl9fWZ1bmN0aW9uIElqZShjLGwpe2lmKDEmYyYmKGRlKDAsIm9wdGlvbiIsNCksT2UoMSksaGUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O01lKCJuZ1ZhbHVlIixh'@; put 'KSxmZSgpLFNyKGEpfX1jb25zdCBSamU9WyJjdXJyZW50UGFnZUlucHV0Il0sTGplPVsiKiIsW1siY2xyLWRnLXBhZ2Utc2l6ZSJdXV0sT2plPVsiKiIsImNsci1kZy1wYWdlLXNpemUiXTtmdW5jdGlvbiBQamUoYyxsKXsxJmMmJihkZSgwLCJkaXYiLDYpLFdyKDEsMSksaGUoKSl9ZnVuY3Rp'@; put 'b24gRmplKGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiaW5wdXQiLDE4LDEpLEZ0KCJrZXlkb3duLmVudGVyIixmdW5jdGlvbihoKXtyZXR1cm4gd3QoYSksQ3QoTGUoMykudXBkYXRlQ3VycmVudFBhZ2UoaCkpfSkoImJsdXIiLGZ1bmN0aW9uKGgpe3JldHVybiB3dChhKSxDdChM'@; put 'ZSgzKS52ZXJpZnlDdXJyZW50UGFnZShoKSl9KSxoZSgpfWlmKDImYyl7Y29uc3QgYT1MZSgzKTtNZSgic2l6ZSIsYS5wYWdlLmxhc3QudG9TdHJpbmcoKS5sZW5ndGgpKCJ2YWx1ZSIsYS5wYWdlLmN1cnJlbnQpLGhyKCJhcmlhLWxhYmVsIixhLmNvbW1vblN0cmluZ3Mua2V5cy5jdXJyZW50'@; put 'UGFnZSl9fWZ1bmN0aW9uIEhqZShjLGwpe2lmKDEmYyYmKGRlKDAsInNwYW4iKSxPZSgxKSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoMyk7ZmUoKSxTcihhLnBhZ2UuY3VycmVudCl9fWZ1bmN0aW9uIE5qZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImRpdiIsNykoMSwiYnV0dG9u'@; put 'Iiw4KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKDIpLnBhZ2UuY3VycmVudD0xKX0pLGRlKDIsInNwYW4iLDkpLE9lKDMpLGhlKCksV3QoNCwiY2RzLWljb24iLDEwKSxoZSgpLGRlKDUsImJ1dHRvbiIsMTEpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKTtj'@; put 'b25zdCBoPUxlKDIpO3JldHVybiBDdChoLnBhZ2UuY3VycmVudD1oLnBhZ2UuY3VycmVudC0xKX0pLGRlKDYsInNwYW4iLDkpLE9lKDcpLGhlKCksV3QoOCwiY2RzLWljb24iLDEyKSxoZSgpLGd0KDksRmplLDIsMywiaW5wdXQiLDEzKSgxMCxIamUsMiwxLCJuZy10ZW1wbGF0ZSIsbnVsbCww'@; put 'LGdjKSxPZSgxMiwiIFx4YTAvXHhhMCIpLGRlKDEzLCJzcGFuIiksT2UoMTQpLGhlKCksZGUoMTUsImJ1dHRvbiIsMTQpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKDIpO3JldHVybiBDdChoLnBhZ2UuY3VycmVudD1oLnBhZ2UuY3VycmVudCsxKX0pLGRlKDE2LCJz'@; put 'cGFuIiw5KSxPZSgxNyksaGUoKSxXdCgxOCwiY2RzLWljb24iLDE1KSxoZSgpLGRlKDE5LCJidXR0b24iLDE2KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7d3QoYSk7Y29uc3QgaD1MZSgyKTtyZXR1cm4gQ3QoaC5wYWdlLmN1cnJlbnQ9aC5wYWdlLmxhc3QpfSksZGUoMjAsInNwYW4iLDkpLE9l'@; put 'KDIxKSxoZSgpLFd0KDIyLCJjZHMtaWNvbiIsMTcpLGhlKCkoKX1pZigyJmMpe2NvbnN0IGE9ZGEoMTEpLGQ9TGUoMik7ZmUoKSxNZSgiZGlzYWJsZWQiLGQucGFnZS5jdXJyZW50PD0xKSxocigiYXJpYS1sYWJlbCIsZC5jb21tb25TdHJpbmdzLmtleXMuZmlyc3RQYWdlKSxmZSgyKSxTcihk'@; put 'LmNvbW1vblN0cmluZ3Mua2V5cy5maXJzdFBhZ2UpLGZlKDIpLE1lKCJkaXNhYmxlZCIsZC5wYWdlLmN1cnJlbnQ8PTEpLGhyKCJhcmlhLWxhYmVsIixkLmNvbW1vblN0cmluZ3Mua2V5cy5wcmV2aW91c1BhZ2UpLGZlKDIpLFNyKGQuY29tbW9uU3RyaW5ncy5rZXlzLnByZXZpb3VzUGFnZSks'@; put 'ZmUoMiksTWUoIm5nSWYiLCFkLmRpc2FibGVDdXJyZW50UGFnZUlucHV0KSgibmdJZkVsc2UiLGEpLGZlKDQpLGhyKCJhcmlhLWxhYmVsIixkLmNvbW1vblN0cmluZ3Mua2V5cy50b3RhbFBhZ2VzKSxmZSgpLFNyKGQucGFnZS5sYXN0KSxmZSgpLE1lKCJkaXNhYmxlZCIsZC5wYWdlLmN1cnJl'@; put 'bnQ+PWQucGFnZS5sYXN0KSxocigiYXJpYS1sYWJlbCIsZC5jb21tb25TdHJpbmdzLmtleXMubmV4dFBhZ2UpLGZlKDIpLFNyKGQuY29tbW9uU3RyaW5ncy5rZXlzLm5leHRQYWdlKSxmZSgyKSxNZSgiZGlzYWJsZWQiLGQucGFnZS5jdXJyZW50Pj1kLnBhZ2UubGFzdCksaHIoImFyaWEtbGFi'@; put 'ZWwiLGQuY29tbW9uU3RyaW5ncy5rZXlzLmxhc3RQYWdlKSxmZSgyKSxTcihkLmNvbW1vblN0cmluZ3Mua2V5cy5sYXN0UGFnZSl9fWZ1bmN0aW9uIFZqZShjLGwpe2lmKDEmYyYmKGFpKDApLGd0KDEsUGplLDIsMCwiZGl2IiwzKSxkZSgyLCJkaXYiLDQpLFdyKDMpLGhlKCksZ3QoNCxOamUs'@; put 'MjMsMTYsImRpdiIsNSksc2koKSksMiZjKXtjb25zdCBhPUxlKCk7ZmUoKSxNZSgibmdJZiIsYS5fcGFnZVNpemVDb21wb25lbnQpLGZlKDMpLE1lKCJuZ0lmIixhLnBhZ2UubGFzdD4xKX19ZnVuY3Rpb24gQmplKGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7YWkoMCksZGUoMSwiZGl2Iiwx'@; put 'OSksT2UoMiksaGUoKSxkZSgzLCJkaXYiLDcpKDQsImJ1dHRvbiIsMTEpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKCk7cmV0dXJuIEN0KGgucGFnZS5jdXJyZW50PWgucGFnZS5jdXJyZW50LTEpfSksZGUoNSwic3BhbiIsOSksT2UoNiksaGUoKSxXdCg3LCJjZHMt'@; put 'aWNvbiIsMTIpLGhlKCksZGUoOCwic3BhbiIpLE9lKDkpLGhlKCksZGUoMTAsImJ1dHRvbiIsMTQpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKCk7cmV0dXJuIEN0KGgucGFnZS5jdXJyZW50PWgucGFnZS5jdXJyZW50KzEpfSksZGUoMTEsInNwYW4iLDkpLE9lKDEy'@; put 'KSxoZSgpLFd0KDEzLCJjZHMtaWNvbiIsMTUpLGhlKCkoKSxzaSgpfWlmKDImYyl7Y29uc3QgYT1MZSgpO2ZlKDIpLFpmKCIgIixhLnBhZ2UuZmlyc3RJdGVtKzEsIi0iLGEucGFnZS5sYXN0SXRlbSsxLCIgLyAiLGEucGFnZS50b3RhbEl0ZW1zLCIgIiksZmUoMiksTWUoImRpc2FibGVkIixh'@; put 'LnBhZ2UuY3VycmVudDw9MSksaHIoImFyaWEtbGFiZWwiLGEuY29tbW9uU3RyaW5ncy5rZXlzLnByZXZpb3VzUGFnZSksZmUoMiksU3IoYS5jb21tb25TdHJpbmdzLmtleXMucHJldmlvdXNQYWdlKSxmZSgzKSxTcihhLnBhZ2UuY3VycmVudCksZmUoKSxNZSgiZGlzYWJsZWQiLGEucGFnZS5j'@; put 'dXJyZW50Pj1hLnBhZ2UubGFzdCksaHIoImFyaWEtbGFiZWwiLGEuY29tbW9uU3RyaW5ncy5rZXlzLm5leHRQYWdlKSxmZSgyKSxTcihhLmNvbW1vblN0cmluZ3Mua2V5cy5uZXh0UGFnZSl9fWNvbnN0IFpqZT1bW1siY2xyLXN0YWNrLWxhYmVsIl1dLCIqIixbWyJjbHItc3RhY2stYmxvY2si'@; put 'XV1dLFdqZT1bImNsci1zdGFjay1sYWJlbCIsIioiLCJjbHItc3RhY2stYmxvY2siXTtmdW5jdGlvbiBZamUoYyxsKXsxJmMmJld0KDAsImNkcy1pY29uIiw3KSwyJmMmJmhyKCJkaXJlY3Rpb24iLExlKCkuY2FyZXREaXJlY3Rpb24pfWZ1bmN0aW9uIEdqZShjLGwpe2lmKDEmYyYmKGRlKDAs'@; put 'InNwYW4iLDgpLE9lKDEpLGhlKCkpLDImYyl7Y29uc3QgYT1MZSgpO2ZlKCksU3IoYS5jb21tb25TdHJpbmdzLmtleXMuc3RhY2tWaWV3Q2hhbmdlZCl9fWZ1bmN0aW9uICRqZShjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIsOSksV3IoMSwyKSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoKTtOMSgi'@; put 'aGVpZ2h0IixhLmV4cGFuZGVkPyJhdXRvIjowKSxocigiaWQiLGEuZ2V0U3RhY2tDaGlsZHJlbklkKCkpKCJhcmlhLWxhYmVsbGVkYnkiLGEubGFiZWxsZWRCeUlkKX19Y29uc3QgS2plPVtbWyJjbHItc3RhY2staGVhZGVyIl1dLCIqIl0sWGplPVsiY2xyLXN0YWNrLWhlYWRlciIsIioiXTtm'@; put 'dW5jdGlvbiBRamUoYyxsKXsxJmMmJkxsKDApfWZ1bmN0aW9uIGV6ZShjLGwpe2lmKDEmYyYmKGFpKDApLGd0KDEsUWplLDEsMCwibmctY29udGFpbmVyIiwyKSxzaSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQsZD1MZSgyKTtmZSgpLE1lKCJuZ1RlbXBsYXRlT3V0bGV0IixkLmZlYXR1'@; put 'cmVzU2VydmljZS5yZWN1cnNpb24udGVtcGxhdGUpKCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCIsZC5nZXRDb250ZXh0KGEpKX19ZnVuY3Rpb24gdHplKGMsbCl7aWYoMSZjJiYoYWkoMCksZ3QoMSxlemUsMiwyLCJuZy1jb250YWluZXIiLDEpLHNpKCkpLDImYyl7Y29uc3QgYT1MZSgpO2Zl'@; put 'KCksTWUoIm5nRm9yT2YiLChudWxsPT1hLnBhcmVudD9udWxsOmEucGFyZW50LmNoaWxkcmVuKXx8YS5jaGlsZHJlbil9fWNvbnN0IG56ZT1bImNvbnRlbnRDb250YWluZXIiXSxyemU9W1tbImNsci10cmVlLW5vZGUiXV0sW1siIiwiY2xySWZFeHBhbmRlZCIsIiJdXSwiKiJdLGl6ZT1bImNs'@; put 'ci10cmVlLW5vZGUiLCJbY2xySWZFeHBhbmRlZF0iLCIqIl07ZnVuY3Rpb24gYXplKGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiYnV0dG9uIiw5KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKCkuZXhwYW5kU2VydmljZS50b2dnbGUoKSl9KSgiZm9j'@; put 'dXMiLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKCkuZm9jdXNUcmVlTm9kZSgpKX0pLFd0KDEsImNkcy1pY29uIiwxMCksaGUoKX1pZigyJmMpe2NvbnN0IGE9TGUoKTtNZSgiZGlzYWJsZWQiLGEuZGlzYWJsZWQpLGZlKCksaHIoImRpcmVjdGlvbiIsYS5leHBhbmRTZXJ2aWNlLmV4'@; put 'cGFuZGVkPyJkb3duIjoicmlnaHQiKX19ZnVuY3Rpb24gc3plKGMsbCl7MSZjJiYoZGUoMCwiZGl2IiwxMSksV3QoMSwic3BhbiIsMTIpLGhlKCkpfWZ1bmN0aW9uIG96ZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImRpdiIsMTMpKDEsImlucHV0IiwxNCksRnQoImNoYW5nZSIs'@; put 'ZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKCk7cmV0dXJuIEN0KGguX21vZGVsLnRvZ2dsZVNlbGVjdGlvbihoLmZlYXR1cmVzU2VydmljZS5lYWdlcikpfSkoImZvY3VzIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgpLmZvY3VzVHJlZU5vZGUoKSl9KSxoZSgpLGRlKDIsImxh'@; put 'YmVsIiwxNSksTGwoMywxNiksaGUoKSgpfWlmKDImYyl7Y29uc3QgYT1MZSgpLGQ9ZGEoNyk7ZmUoKSxNZSgiaWQiLGEubm9kZUlkKyItY2hlY2siKSgiZGlzYWJsZWQiLGEuZGlzYWJsZWQpKCJjaGVja2VkIixhLl9tb2RlbC5zZWxlY3RlZC52YWx1ZT09PWEuU1RBVEVTLlNFTEVDVEVEKSgi'@; put 'aW5kZXRlcm1pbmF0ZSIsYS5fbW9kZWwuc2VsZWN0ZWQudmFsdWU9PT1hLlNUQVRFUy5JTkRFVEVSTUlOQVRFKSxmZSgpLE1lKCJmb3IiLGEubm9kZUlkKyItY2hlY2siKSxmZSgpLE1lKCJuZ1RlbXBsYXRlT3V0bGV0IixkKX19ZnVuY3Rpb24gbHplKGMsbCl7aWYoMSZjKXtjb25zdCBhPU9u'@; put 'KCk7ZGUoMCwiZGl2IiwxNyksRnQoIm1vdXNldXAiLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKCkuZm9jdXNUcmVlTm9kZSgpKX0pLExsKDEsMTYpLGhlKCl9aWYoMiZjKXtMZSgpO2NvbnN0IGE9ZGEoNyk7ZmUoKSxNZSgibmdUZW1wbGF0ZU91dGxldCIsYSl9fWZ1bmN0aW9uIGN6'@; put 'ZShjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIsMTkpKDEsInNwYW4iKSxPZSgyKSxoZSgpKCkpLDImYyl7Y29uc3QgYT1MZSgyKTtmZSgyKSxMcigiICIsYS5hcmlhU2VsZWN0ZWQ/YS5jb21tb25TdHJpbmdzLmtleXMuc2VsZWN0ZWRUcmVlTm9kZTphLmNvbW1vblN0cmluZ3Mua2V5cy51bnNl'@; put 'bGVjdGVkVHJlZU5vZGUsIiIpfX1mdW5jdGlvbiB1emUoYyxsKXtpZigxJmMmJihXcigwLDIpLGd0KDEsY3plLDMsMSwiZGl2IiwxOCkpLDImYyl7Y29uc3QgYT1MZSgpO2ZlKCksTWUoIm5nSWYiLGEuZmVhdHVyZXNTZXJ2aWNlLnNlbGVjdGFibGV8fGEuYXJpYVNlbGVjdGVkKX19ZnVuY3Rp'@; put 'b24gZHplKGMsbCl7MSZjJiZXdCgwLCJjbHItcmVjdXJzaXZlLWNoaWxkcmVuIiwxKSwyJmMmJk1lKCJjaGlsZHJlbiIsTGUoKS5mZWF0dXJlc1NlcnZpY2UucmVjdXJzaW9uLnJvb3QpfWZ1bmN0aW9uIGh6ZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImJ1dHRvbiIsNCksRnQo'@; put 'ImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgyKS5jbG9zZSgpKX0pLFd0KDEsImNkcy1pY29uIiw1KSxoZSgpfTImYyYmaHIoImFyaWEtbGFiZWwiLExlKDIpLmNsckNsb3NlQnV0dG9uQXJpYUxhYmVsKX1mdW5jdGlvbiBmemUoYyxsKXtpZigxJmMmJihkZSgwLCJkaXYi'@; put 'LDEpKDEsImRpdiIsMiksV3IoMiksaGUoKSxndCgzLGh6ZSwyLDEsImJ1dHRvbiIsMyksaGUoKSksMiZjKXtjb25zdCBhPUxlKCk7VHIoImFsZXJ0LXNtIixhLmlzU21hbGwpKCJhbGVydC1saWdodHdlaWdodCIsYS5pc0xpZ2h0d2VpZ2h0KSgiYWxlcnQtYXBwLWxldmVsIixhLmlzQXBwTGV2'@; put 'ZWwpLE1lKCJuZ0NsYXNzIixhLmFsZXJ0Q2xhc3MpLGZlKDMpLE1lKCJuZ0lmIixhLmNsb3NhYmxlKX19ZnVuY3Rpb24gcHplKGMsbCl7MSZjJiZXdCgwLCJjbHItc3Bpbm5lciIsMyl9ZnVuY3Rpb24gZ3plKGMsbCl7aWYoMSZjJiZXdCgwLCJjZHMtaWNvbiIsNCksMiZjKXtjb25zdCBhPUxl'@; put 'KCk7aHIoInNoYXBlIixhLmljb25TZXJ2aWNlLmFsZXJ0SWNvblNoYXBlKSgiYXJpYS1sYWJlbCIsYS5pY29uU2VydmljZS5hbGVydEljb25UaXRsZSl9fWNvbnN0IG16ZT1bW1siY2xyLWFsZXJ0Il1dXSx2emU9WyJjbHItYWxlcnQiXTtmdW5jdGlvbiB5emUoYyxsKXsxJmMmJld0KDAsImNs'@; put 'ci1hbGVydHMtcGFnZXIiLDIpLDImYyYmTWUoImNsckN1cnJlbnRBbGVydEluZGV4IixMZSgpLmN1cnJlbnRBbGVydEluZGV4KX1jb25zdCBiemU9WyJjbHJJbnRlcm5hbE1vZGFsQ29udGVudFRlbXBsYXRlIl0sTDFlPVsiYm9keSJdLF96ZT1bW1siIiw4LCJsZWFkaW5nLWJ1dHRvbiJdXSxb'@; put 'WyIiLDgsIm1vZGFsLXRpdGxlIl1dLFtbIiIsOCwibW9kYWwtYm9keSJdXSxbWyIiLDgsIm1vZGFsLWZvb3RlciJdXV0sd3plPVsiLmxlYWRpbmctYnV0dG9uIiwiLm1vZGFsLXRpdGxlIiwiLm1vZGFsLWJvZHkiLCIubW9kYWwtZm9vdGVyIl07ZnVuY3Rpb24gQ3plKGMsbCl7aWYoMSZjKXtj'@; put 'b25zdCBhPU9uKCk7ZGUoMCwiYnV0dG9uIiwxNCksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgzKS5jbG9zZSgpKX0pLFd0KDEsImNkcy1pY29uIiwxNSksaGUoKX1pZigyJmMpe2NvbnN0IGE9TGUoMyk7aHIoImFyaWEtbGFiZWwiLGEuY2xvc2VCdXR0b25Bcmlh'@; put 'TGFiZWx8fGEuY29tbW9uU3RyaW5ncy5rZXlzLmNsb3NlKX19ZnVuY3Rpb24gU3plKGMsbCl7aWYoMSZjJiYoZGUoMCwiZGl2Iiw4KSgxLCJkaXYiLDkpKDIsImRpdiIsMTApLFdyKDMpLGRlKDQsImRpdiIsMTEsMCksV3IoNiwxKSxoZSgpLGd0KDcsQ3plLDIsMSwiYnV0dG9uIiwxMiksaGUo'@; put 'KSxkZSg4LCJkaXYiLDEzLDEpLFdyKDEwLDIpLGhlKCksV3IoMTEsMyksaGUoKSgpKSwyJmMpe2NvbnN0IGE9TGUoMik7ZmUoNCksTWUoImlkIixhLm1vZGFsSWQpLGZlKDMpLE1lKCJuZ0lmIixhLmNsb3NhYmxlKX19ZnVuY3Rpb24gTXplKGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUo'@; put 'MCwiZGl2Iiw0KSgxLCJkaXYiLDUpLEZ0KCJAZmFkZU1vdmUuZG9uZSIsZnVuY3Rpb24oaCl7cmV0dXJuIHd0KGEpLEN0KExlKCkuZmFkZURvbmUoaCkpfSksZGUoMiwiZGl2Iiw2KSxPZSgzKSxoZSgpLGd0KDQsU3plLDEyLDIsImRpdiIsNyksZGUoNSwiZGl2Iiw2KSxPZSg2KSxoZSgpKCko'@; put 'KX1pZigyJmMpe2NvbnN0IGE9TGUoKTtUcigibW9kYWwtZnVsbC1zY3JlZW4iLCJmdWxsLXNjcmVlbiI9PWEuc2l6ZSksZmUoKSxUcigibW9kYWwtc20iLCJzbSI9PWEuc2l6ZSkoIm1vZGFsLWxnIiwibGciPT1hLnNpemUpKCJtb2RhbC14bCIsInhsIj09YS5zaXplKSxNZSgiY2RrVHJhcEZv'@; put 'Y3VzQXV0b0NhcHR1cmUiLCEwKSgiQGZhZGVNb3ZlIixhLmZhZGVNb3ZlKSxocigiYXJpYS1oaWRkZW4iLCFhLl9vcGVuKSgiYXJpYS1sYWJlbGxlZGJ5IixhLmxhYmVsbGVkQnl8fGEubW9kYWxJZCksZmUoMiksU3IoYS5jb21tb25TdHJpbmdzLmtleXMubW9kYWxDb250ZW50U3RhcnQpLGZl'@; put 'KCksTWUoIm5nSWYiLCFhLm1vZGFsQ29udGVudFRlbXBsYXRlKSgibmdJZkVsc2UiLGEubW9kYWxDb250ZW50VGVtcGxhdGUpLGZlKDIpLFNyKGEuY29tbW9uU3RyaW5ncy5rZXlzLm1vZGFsQ29udGVudEVuZCl9fWZ1bmN0aW9uIHh6ZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAs'@; put 'ImRpdiIsMTYpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoKS5iYWNrZHJvcENsaWNrKCkpfSksaGUoKX0yJmMmJk1lKCJAZmFkZSIsdm9pZCAwKX1sZXQgT2w9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXco'@; put 'YXx8Yyl9LGMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1pY29uIl1dfSksY30pKCksZW89KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsc2VsZWN0b3JzOltb'@; put 'ImNkcy1pY29uIl1dfSksY30pKCksVG89KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1Bcih7aW1wb3J0czpbTGFdfSksY30pKCk7Y2xhc3MgUHh7fXZhciBa'@; put 'MT1mdW5jdGlvbihjKXtyZXR1cm4gY1tjLkRFRkFVTFQ9MF09IkRFRkFVTFQiLGNbYy5MT0FESU5HPTFdPSJMT0FESU5HIixjW2MuU1VDQ0VTUz0yXT0iU1VDQ0VTUyIsY1tjLkVSUk9SPTNdPSJFUlJPUiIsY30oWjF8fHt9KTtsZXQgVjA9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0'@; put 'aGlzLmxpc3RlbmVyPWEsdGhpcy5fbG9hZGluZ1N0YXRlPVoxLkRFRkFVTFR9Z2V0IGxvYWRpbmdTdGF0ZSgpe3JldHVybiB0aGlzLl9sb2FkaW5nU3RhdGV9c2V0IGxvYWRpbmdTdGF0ZShhKXshMD09PWE/YT1aMS5MT0FESU5HOmF8fChhPVoxLkRFRkFVTFQpLGEhPT10aGlzLl9sb2FkaW5n'@; put 'U3RhdGUmJih0aGlzLl9sb2FkaW5nU3RhdGU9YSx0aGlzLmxpc3RlbmVyJiZ0aGlzLmxpc3RlbmVyLmxvYWRpbmdTdGF0ZUNoYW5nZShhKSl9bmdPbkRlc3Ryb3koKXt0aGlzLmxvYWRpbmdTdGF0ZT1aMS5ERUZBVUxUfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5l'@; put 'dyhhfHxjKSgkZShQeCw4KSl9LGMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsImNsckxvYWRpbmciLCIiXV0saW5wdXRzOntsb2FkaW5nU3RhdGU6W1ZuLk5vbmUsImNsckxvYWRpbmciLCJsb2FkaW5nU3RhdGUiXX19KSxjfSkoKSxXMT0oKCk9PntjbGFzcyBje2NvbnN0'@; put 'cnVjdG9yKCl7dGhpcy5leHBhbmRhYmxlPTAsdGhpcy5oYXNFeHBhbmRUZW1wbGF0ZT0hMSx0aGlzLl9sb2FkaW5nPSExLHRoaXMuX2V4cGFuZGVkPSExLHRoaXMuX2V4cGFuZENoYW5nZT1uZXcgR259Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy5fbG9hZGluZ31zZXQgbG9hZGluZyhhKXso'@; put 'YT0hIWEpIT09dGhpcy5fbG9hZGluZyYmKHRoaXMuX2xvYWRpbmc9YSl9Z2V0IGV4cGFuZGVkKCl7cmV0dXJuIHRoaXMuX2V4cGFuZGVkfXNldCBleHBhbmRlZChhKXsoYT0hIWEpIT09dGhpcy5fZXhwYW5kZWQmJih0aGlzLl9leHBhbmRlZD1hLHRoaXMuX2V4cGFuZENoYW5nZS5uZXh0KGEp'@; put 'KX1nZXQgZXhwYW5kQ2hhbmdlKCl7cmV0dXJuIHRoaXMuX2V4cGFuZENoYW5nZS5hc09ic2VydmFibGUoKX10b2dnbGUoKXt0aGlzLmV4cGFuZGVkPSF0aGlzLl9leHBhbmRlZH1sb2FkaW5nU3RhdGVDaGFuZ2UoYSl7dGhpcy5sb2FkaW5nPWE9PT1aMS5MT0FESU5HfX1yZXR1cm4gYy5cdTAy'@; put 'NzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSx0VWU9MDtmdW5jdGlvbiBfdSgpe3JldHVybiJjbHItaWQtIit0VWUrK31sZXQgTzFlPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1'@; put 'MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItYWNjb3JkaW9uLWRlc2NyaXB0aW9uIl0sWyJjbHItc3RlcC1kZXNjcmlwdGlvbiJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQp'@; put 'ezImYSYmVHIoImNsci1hY2NvcmRpb24tZGVzY3JpcHRpb24iLCEwKX0sbmdDb250ZW50U2VsZWN0b3JzOnlzLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoc2EoKSxXcigwKSl9LGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLGN9KSgpO2Nv'@; put 'bnN0IEpmPSIwLjJzIGVhc2UtaW4tb3V0IixuVWU9W3doKCJza2lwSW5pdGlhbFJlbmRlciIsW3R1KCI6ZW50ZXIiLFtdKV0pLHdoKCJ0b2dnbGUiLFt0dSgidm9pZCA9PiAqIixbbG8oe2Rpc3BsYXk6ImJsb2NrIixoZWlnaHQ6MH0pLHcwKEpmLGxvKHtoZWlnaHQ6IioifSkpXSldKV0sTFk9'@; put 'KHdoKCJza2lwSW5pdGlhbFJlbmRlciIsW3R1KCI6ZW50ZXIiLFtdKV0pLHdoKCJ0b2dnbGUiLFt0dSgidm9pZCA9PiAqIixbbG8oe2Rpc3BsYXk6ImJsb2NrIixoZWlnaHQ6MH0pLHcwKEpmLGxvKHtoZWlnaHQ6IioifSkpXSksdHUoIiogPT4gdm9pZCIsW2xvKHtkaXNwbGF5OiJibG9jayJ9'@; put 'KSx3MChKZixsbyh7aGVpZ2h0OjAsZGlzcGxheToibm9uZSJ9KSldKV0pLHtvcGVuOiJPcGVuIixjbG9zZToiQ2xvc2UiLHNob3c6IlNob3ciLGhpZGU6IkhpZGUiLGFwcGx5OiJBcHBseSIsY2FuY2VsOiJDYW5jZWwiLGV4cGFuZDoiRXhwYW5kIixjb2xsYXBzZToiQ29sbGFwc2UiLG1vcmU6'@; put 'Ik1vcmUiLHNlbGVjdDoiU2VsZWN0IixzZWxlY3RBbGw6IlNlbGVjdCBBbGwiLHByZXZpb3VzOiJQcmV2aW91cyIsbmV4dDoiTmV4dCIsY3VycmVudDoiSnVtcCB0byBjdXJyZW50IixpbmZvOiJJbmZvIixzdWNjZXNzOiJTdWNjZXNzIix3YXJuaW5nOiJXYXJuaW5nIixkYW5nZXI6IkVycm9y'@; put 'IixuZXV0cmFsOiJOZXV0cmFsIix1bmtub3duOiJVbmtub3duIixyb3dBY3Rpb25zOiJBdmFpbGFibGUgYWN0aW9ucyIscGlja0NvbHVtbnM6Ik1hbmFnZSBDb2x1bW5zIixzaG93Q29sdW1uczoiU2hvdyBDb2x1bW5zIixzb3J0Q29sdW1uOiJTb3J0IENvbHVtbiIsZmlyc3RQYWdlOiJGaXJz'@; put 'dCBQYWdlIixsYXN0UGFnZToiTGFzdCBQYWdlIixuZXh0UGFnZToiTmV4dCBQYWdlIixwcmV2aW91c1BhZ2U6IlByZXZpb3VzIFBhZ2UiLGN1cnJlbnRQYWdlOiJDdXJyZW50IFBhZ2UiLHRvdGFsUGFnZXM6IlRvdGFsIFBhZ2VzIixmaWx0ZXJJdGVtczoiRmlsdGVyIGl0ZW1zIixtaW5WYWx1'@; put 'ZToiTWluIHZhbHVlIixtYXhWYWx1ZToiTWF4IHZhbHVlIixtb2RhbENvbnRlbnRTdGFydDoiQmVnaW5uaW5nIG9mIE1vZGFsIENvbnRlbnQiLG1vZGFsQ29udGVudEVuZDoiRW5kIG9mIE1vZGFsIENvbnRlbnQiLHNpZGVQYW5lbFBpbjoiUGluIFNpZGUgUGFuZWwiLHNob3dDb2x1bW5zTWVu'@; put 'dURlc2NyaXB0aW9uOiJTaG93IG9yIGhpZGUgY29sdW1ucyBtZW51IixhbGxDb2x1bW5zU2VsZWN0ZWQ6IkFsbCBjb2x1bW5zIHNlbGVjdGVkIixzaWducG9zdFRvZ2dsZToiU2lnbnBvc3QgVG9nZ2xlIixzaWducG9zdENsb3NlOiJDbG9zZSIsbG9hZGluZzoiTG9hZGluZyIsZGV0YWlsUGFu'@; put 'ZVN0YXJ0OiJTdGFydCBvZiByb3cgZGV0YWlscyIsZGV0YWlsUGFuZUVuZDoiRW5kIG9mIHJvdyBkZXRhaWxzIixzaW5nbGVTZWxlY3Rpb25BcmlhTGFiZWw6IlNpbmdsZSBzZWxlY3Rpb24gaGVhZGVyIixzaW5nbGVBY3Rpb25hYmxlQXJpYUxhYmVsOiJTaW5nbGUgYWN0aW9uYWJsZSBoZWFk'@; put 'ZXIiLGRldGFpbEV4cGFuZGFibGVBcmlhTGFiZWw6IlRvZ2dsZSBtb3JlIHJvdyBjb250ZW50IixkYXRhZ3JpZEZpbHRlckFyaWFMYWJlbDoie0NPTFVNTn0gZmlsdGVyIixkYXRhZ3JpZEZpbHRlckxhYmVsOiJ7Q09MVU1OfSBmaWx0ZXIiLGRhdGFncmlkRmlsdGVyRGlhbG9nQXJpYUxhYmVs'@; put 'OiJGaWx0ZXIgZGlhbG9nIixjb2x1bW5TZXBhcmF0b3JBcmlhTGFiZWw6IkNvbHVtbiByZXNpemUgaGFuZGxlIixjb2x1bW5TZXBhcmF0b3JEZXNjcmlwdGlvbjoiVXNlIGxlZnQgb3IgcmlnaHQga2V5IHRvIHJlc2l6ZSB0aGUgY29sdW1uIixmcm9tTGFiZWw6IkZyb20iLHRvTGFiZWw6IlRv'@; put 'IixhbGVydENsb3NlQnV0dG9uQXJpYUxhYmVsOiJDbG9zZSBhbGVydCIsYWxlcnROZXh0QWxlcnRBcmlhTGFiZWw6Ik5leHQgYWxlcnQgbWVzc2FnZSwge0NVUlJFTlR9IG9mIHtDT1VOVH0iLGFsZXJ0UHJldmlvdXNBbGVydEFyaWFMYWJlbDoiUHJldmlvdXMgYWxlcnQgbWVzc2FnZSwge0NV'@; put 'UlJFTlR9IG9mIHtDT1VOVH0iLGRhdGVwaWNrZXJEaWFsb2dMYWJlbDoiQ2hvb3NlIGRhdGUiLGRhdGVwaWNrZXJUb2dnbGVDaG9vc2VEYXRlTGFiZWw6IkNob29zZSBkYXRlIixkYXRlcGlja2VyVG9nZ2xlQ2hhbmdlRGF0ZUxhYmVsOiJDaGFuZ2UgZGF0ZSwge1NFTEVDVEVEX0RBVEV9Iixk'@; put 'YXRlcGlja2VyUHJldmlvdXNNb250aDoiUHJldmlvdXMgbW9udGgiLGRhdGVwaWNrZXJDdXJyZW50TW9udGg6IkN1cnJlbnQgbW9udGgiLGRhdGVwaWNrZXJOZXh0TW9udGg6Ik5leHQgbW9udGgiLGRhdGVwaWNrZXJQcmV2aW91c0RlY2FkZToiUHJldmlvdXMgZGVjYWRlIixkYXRlcGlja2Vy'@; put 'TmV4dERlY2FkZToiTmV4dCBkZWNhZGUiLGRhdGVwaWNrZXJDdXJyZW50RGVjYWRlOiJDdXJyZW50IGRlY2FkZSIsZGF0ZXBpY2tlclNlbGVjdE1vbnRoVGV4dDoiU2VsZWN0IG1vbnRoLCB0aGUgY3VycmVudCBtb250aCBpcyB7Q0FMRU5EQVJfTU9OVEh9IixkYXRlcGlja2VyU2VsZWN0WWVh'@; put 'clRleHQ6IlNlbGVjdCB5ZWFyLCB0aGUgY3VycmVudCB5ZWFyIGlzIHtDQUxFTkRBUl9ZRUFSfSIsZGF0ZXBpY2tlclNlbGVjdGVkTGFiZWw6IntGVUxMX0RBVEV9IC0gU2VsZWN0ZWQiLHN0YWNrVmlld0NoYW5nZWQ6IlZhbHVlIGNoYW5nZWQuIixyZXNwb25zaXZlTmF2VG9nZ2xlT3Blbjoi'@; put 'T3BlbiBuYXZpZ2F0aW9uIG1lbnUiLHJlc3BvbnNpdmVOYXZUb2dnbGVDbG9zZToiQ2xvc2UgbmF2aWdhdGlvbiBtZW51IixyZXNwb25zaXZlTmF2T3ZlcmZsb3dPcGVuOiJPcGVuIG5hdmlnYXRpb24gb3ZlcmZsb3cgbWVudSIscmVzcG9uc2l2ZU5hdk92ZXJmbG93Q2xvc2U6IkNsb3NlIG5h'@; put 'dmlnYXRpb24gb3ZlcmZsb3cgbWVudSIsdmVydGljYWxOYXZUb2dnbGU6IlRvZ2dsZSB2ZXJ0aWNhbCBuYXZpZ2F0aW9uIix0aW1lbGluZVN0ZXBOb3RTdGFydGVkOiJOb3Qgc3RhcnRlZCIsdGltZWxpbmVTdGVwQ3VycmVudDoiQ3VycmVudCIsdGltZWxpbmVTdGVwU3VjY2VzczoiQ29tcGxl'@; put 'dGVkIix0aW1lbGluZVN0ZXBFcnJvcjoiRXJyb3IiLHRpbWVsaW5lU3RlcFByb2Nlc3Npbmc6IkluIHByb2dyZXNzIixjb21ib2JveERlbGV0ZToiRGVsZXRlIHNlbGVjdGVkIG9wdGlvbiIsY29tYm9ib3hTZWFyY2hpbmc6J1NlYXJjaGluZyBmb3IgbWF0Y2hlcyBmb3IgIntJTlBVVH0iJyxj'@; put 'b21ib2JveFNlbGVjdGlvbjoiU2VsZWN0aW9uIixjb21ib2JveFNlbGVjdGVkOiJTZWxlY3RlZCIsY29tYm9ib3hOb1Jlc3VsdHM6Ik5vIHJlc3VsdHMiLGNvbWJvYm94T3BlbjoiU2hvdyBvcHRpb25zIixkYXRhZ3JpZEV4cGFuZGFibGVCZWdpbm5pbmdPZjoiQmVnaW5uaW5nIG9mIixkYXRh'@; put 'Z3JpZEV4cGFuZGFibGVFbmRPZjoiRW5kIG9mIixkYXRhZ3JpZEV4cGFuZGFibGVSb3dDb250ZW50OiJFeHBhbmRhYmxlIHJvdyBjb250ZW50IixkYXRhZ3JpZEV4cGFuZGFibGVSb3dzSGVscGVyVGV4dDoiU2NyZWVuIHJlYWRlciB0YWJsZSBjb21tYW5kcyBtYXkgbm90IHdvcmsgZm9yIHZp'@; put 'ZXdpbmcgZXhwYW5kZWQgY29udGVudCwgcGxlYXNlIHVzZSB5b3VyIHNjcmVlbiByZWFkZXIncyBicm93c2UgbW9kZSB0byByZWFkIHRoZSBjb250ZW50IGV4cG9zZWQgYnkgdGhpcyBidXR0b24iLHdpemFyZFN0ZXA6IlN0ZXAiLHdpemFyZFN0ZXBTdWNjZXNzOiJDb21wbGV0ZWQiLHdpemFy'@; put 'ZFN0ZXBFcnJvcjoiRXJyb3IiLHdpemFyZFN0ZXBuYXZBcmlhTGFiZWw6IldpemFyZCBzdGVwcyIscGFzc3dvcmRIaWRlOiJIaWRlIHBhc3N3b3JkIGZvciB7TEFCRUx9IixwYXNzd29yZFNob3c6IlNob3cgcGFzc3dvcmQgZm9yIHtMQUJFTH0iLHNlbGVjdGVkUm93czoiU2VsZWN0ZWQgcm93'@; put 'cyIsc3RlcENvbXBsZXRlOiJTdGVwIHtTVEVQfSBjb21wbGV0ZSIsc3RlcEVycm9yOiJFcnJvciBpbiBzdGVwIHtTVEVQfSIsYnJvd3NlOiJCcm93c2UiLGZpbGVDb3VudDoie0NPVU5UfSBmaWxlcyIsY2xlYXJGaWxlOiJDbGVhciB7RklMRX0iLGNsZWFyRmlsZXM6IkNsZWFyIHtDT1VOVH0g'@; put 'ZmlsZXMiLHNlbGVjdGVkVHJlZU5vZGU6InNlbGVjdGVkIix1bnNlbGVjdGVkVHJlZU5vZGU6InVuc2VsZWN0ZWQiLGJyZWFkY3J1bWJzTGFiZWw6ImJyZWFkY3J1bWJzIixleHBhbmRCcmVhZGNydW1ic0xhYmVsOiJFeHBhbmQgYnJlYWRjcnVtYnMifSk7bGV0IHRvPSgoKT0+e2NsYXNzIGN7'@; put 'Y29uc3RydWN0b3IoKXt0aGlzLl9zdHJpbmdzPUxZfWdldCBrZXlzKCl7cmV0dXJuIHRoaXMuX3N0cmluZ3N9bG9jYWxpemUoYSl7dGhpcy5fc3RyaW5ncz17Li4udGhpcy5fc3RyaW5ncywuLi5hfX1wYXJzZShhLGQ9e30pe2NvbnN0IGg9T2JqZWN0LmtleXMoZCk7bGV0IGY9YTtyZXR1cm4g'@; put 'aC5sZW5ndGgmJmguZm9yRWFjaCh2PT57Zj1mLnJlcGxhY2UoYHske3Z9fWAsZFt2XSl9KSxmfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9v'@; put 'dCJ9KSxjfSkoKTt2YXIgUWY9ZnVuY3Rpb24oYyl7cmV0dXJuIGMuSW5hY3RpdmU9ImluYWN0aXZlIixjLkVycm9yPSJlcnJvciIsYy5Db21wbGV0ZT0iY29tcGxldGUiLGN9KFFmfHx7fSksRng9ZnVuY3Rpb24oYyl7cmV0dXJuIGMuRGVmYXVsdD0iZGVmYXVsdCIsYy5NdWx0aT0ibXVsdGki'@; put 'LGN9KEZ4fHx7fSk7bGV0IGlVZT0wO2NsYXNzIGFVZXtjb25zdHJ1Y3RvcihsLGEpe3RoaXMuaWQ9bCx0aGlzLmFjY29yZGlvbklkPWEsdGhpcy5zdGF0dXM9UWYuSW5hY3RpdmUsdGhpcy5pbmRleD1udWxsLHRoaXMuZGlzYWJsZWQ9ITEsdGhpcy5vcGVuPSExLHRoaXMudGVtcGxhdGVJZD1g'@; put 'JHt0aGlzLmlkfS0ke3RoaXMuYWNjb3JkaW9uSWR9YH19Y2xhc3MgUDFle2NvbnN0cnVjdG9yKCl7dGhpcy5zdHJhdGVneT1GeC5EZWZhdWx0LHRoaXMuYWNjb3JkaW9uQ291bnQ9aVVlKyssdGhpcy5fcGFuZWxzPXt9fWdldCBwYW5lbHMoKXtyZXR1cm4gT2JqZWN0LmtleXModGhpcy5fcGFu'@; put 'ZWxzKS5tYXAobD0+dGhpcy5fcGFuZWxzW2xdKX1zZXRTdHJhdGVneShsKXt0aGlzLnN0cmF0ZWd5PWx9dXBkYXRlUGFuZWxPcmRlcihsKXtsLmZvckVhY2goKGEsZCk9PnRoaXMuX3BhbmVsc1thXS5pbmRleD1kKSx0aGlzLnJlbW92ZU9sZFBhbmVscyhsKX1hZGRQYW5lbChsLGE9ITEpe3Ro'@; put 'aXMuX3BhbmVsc1tsXT1uZXcgYVVlKGwsdGhpcy5hY2NvcmRpb25Db3VudCksdGhpcy5fcGFuZWxzW2xdLm9wZW49YX10b2dnbGVQYW5lbChsLGEpe2NvbnN0IGg9dm9pZCAwIT09YT9hOiF0aGlzLl9wYW5lbHNbbF0ub3BlbjtoJiZ0aGlzLnN0cmF0ZWd5PT09RnguRGVmYXVsdCYmdGhpcy5j'@; put 'bG9zZUFsbFBhbmVscygpLHRoaXMuX3BhbmVsc1tsXS5vcGVuPWh9ZGlzYWJsZVBhbmVsKGwsYSl7dGhpcy5fcGFuZWxzW2xdLmRpc2FibGVkPWF9Y2xvc2VBbGxQYW5lbHMoKXt0aGlzLnBhbmVscy5mb3JFYWNoKGw9PnRoaXMuX3BhbmVsc1tsLmlkXS5vcGVuPSExKX1yZW1vdmVPbGRQYW5l'@; put 'bHMobCl7dGhpcy5wYW5lbHMuZmlsdGVyKGE9PnZvaWQgMD09PWwuZmluZChkPT5kPT09YS5pZCkpLmZvckVhY2goYT0+ZGVsZXRlIHRoaXMuX3BhbmVsc1thLmlkXSl9fWxldCBIeD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5hY2NvcmRpb249bmV3IFAxZSx0aGlzLl9wYW5l'@; put 'bHNDaGFuZ2VzPW5ldyBKcih0aGlzLmFjY29yZGlvbi5wYW5lbHMpfWdldFBhbmVsQ2hhbmdlcyhhKXtyZXR1cm4gdGhpcy5fcGFuZWxzQ2hhbmdlcy5waXBlKFByKGQ9PmQuZmluZChoPT5oLmlkPT09YSkpKX1zZXRTdHJhdGVneShhKXt0aGlzLmFjY29yZGlvbi5zZXRTdHJhdGVneShhKX1h'@; put 'ZGRQYW5lbChhLGQ9ITEpe3RoaXMuYWNjb3JkaW9uLmFkZFBhbmVsKGEsZCksdGhpcy5lbWl0VXBkYXRlZFBhbmVscygpfXRvZ2dsZVBhbmVsKGEsZCl7dGhpcy5hY2NvcmRpb24udG9nZ2xlUGFuZWwoYSxkKSx0aGlzLmVtaXRVcGRhdGVkUGFuZWxzKCl9ZGlzYWJsZVBhbmVsKGEsZCl7dGhp'@; put 'cy5hY2NvcmRpb24uZGlzYWJsZVBhbmVsKGEsZCksdGhpcy5lbWl0VXBkYXRlZFBhbmVscygpfXVwZGF0ZVBhbmVsT3JkZXIoYSl7dGhpcy5hY2NvcmRpb24udXBkYXRlUGFuZWxPcmRlcihhKSx0aGlzLmVtaXRVcGRhdGVkUGFuZWxzKCl9ZW1pdFVwZGF0ZWRQYW5lbHMoKXt0aGlzLl9wYW5l'@; put 'bHNDaGFuZ2VzLm5leHQodGhpcy5hY2NvcmRpb24ucGFuZWxzKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCksQkw9KCgpPT57Y2xhc3MgY3tjb25zdHJ1'@; put 'Y3RvcihhLGQsaCxmLHYpe3RoaXMucGFyZW50PWEsdGhpcy5jb21tb25TdHJpbmdzPWQsdGhpcy5hY2NvcmRpb25TZXJ2aWNlPWgsdGhpcy5pZkV4cGFuZFNlcnZpY2U9Zix0aGlzLmNkcj12LHRoaXMuZGlzYWJsZWQ9ITEsdGhpcy5wYW5lbE9wZW49ITEsdGhpcy5oZWFkaW5nRW5hYmxlZD0h'@; put 'MSx0aGlzLnBhbmVsT3BlbkNoYW5nZT1uZXcgS3IsdGhpcy5faWQ9X3UoKX1nZXQgaWQoKXtyZXR1cm4gdGhpcy5faWR9c2V0IGlkKGEpe3RoaXMuX2lkPWF9Z2V0IHBhbmVsTnVtYmVyKCl7cmV0dXJuIHRoaXMuX3BhbmVsSW5kZXgrMX1nZXQgaGVhZGluZ0xldmVsKCl7cmV0dXJuIHRoaXMu'@; put 'ZXhwbGljaXRIZWFkaW5nTGV2ZWw/dGhpcy5leHBsaWNpdEhlYWRpbmdMZXZlbDp0aGlzLnBhcmVudD80OjN9bmdPbkluaXQoKXt0aGlzLnBhbmVsPXRoaXMuYWNjb3JkaW9uU2VydmljZS5nZXRQYW5lbENoYW5nZXModGhpcy5pZCkucGlwZShadShhPT50aGlzLmVtaXRQYW5lbENoYW5nZShh'@; put 'KSkpLHRoaXMuYWNjb3JkaW9uU2VydmljZS5hZGRQYW5lbCh0aGlzLmlkLHRoaXMucGFuZWxPcGVuKSx0aGlzLmFjY29yZGlvblNlcnZpY2UudG9nZ2xlUGFuZWwodGhpcy5pZCx0aGlzLnBhbmVsT3BlbiksdGhpcy5hY2NvcmRpb25TZXJ2aWNlLmRpc2FibGVQYW5lbCh0aGlzLmlkLHRoaXMu'@; put 'ZGlzYWJsZWQpfW5nT25DaGFuZ2VzKGEpe3RoaXMucGFuZWwmJmEucGFuZWxPcGVuJiZhLnBhbmVsT3Blbi5jdXJyZW50VmFsdWUhPT1hLnBhbmVsT3Blbi5wcmV2aW91c1ZhbHVlJiZ0aGlzLmFjY29yZGlvblNlcnZpY2UudG9nZ2xlUGFuZWwodGhpcy5pZCxhLnBhbmVsT3Blbi5jdXJyZW50'@; put 'VmFsdWUpLHRoaXMucGFuZWwmJmEuZGlzYWJsZWQmJmEuZGlzYWJsZWQuY3VycmVudFZhbHVlIT09YS5kaXNhYmxlZC5wcmV2aW91c1ZhbHVlJiZ0aGlzLmFjY29yZGlvblNlcnZpY2UuZGlzYWJsZVBhbmVsKHRoaXMuaWQsYS5kaXNhYmxlZC5jdXJyZW50VmFsdWUpfXRvZ2dsZVBhbmVsKCl7'@; put 'dGhpcy5hY2NvcmRpb25TZXJ2aWNlLnRvZ2dsZVBhbmVsKHRoaXMuaWQpfWNvbGxhcHNlUGFuZWxPbkFuaW1hdGlvbkRvbmUoYSl7YS5vcGVufHwodGhpcy5pZkV4cGFuZFNlcnZpY2UuZXhwYW5kZWQ9ITEpfWdldFBhbmVsU3RhdGVDbGFzc2VzKGEpe3JldHVybmBjbHItYWNjb3JkaW9uLXBh'@; put 'bmVsLSR7YS5zdGF0dXN9ICR7YS5vcGVuPyJjbHItYWNjb3JkaW9uLXBhbmVsLW9wZW4iOiIifWB9Z2V0QWNjb3JkaW9uQ29udGVudElkKGEpe3JldHVybmBjbHItYWNjb3JkaW9uLWNvbnRlbnQtJHthfSdgfWdldEFjY29yZGlvbkhlYWRlcklkKGEpe3JldHVybmBjbHItYWNjb3JkaW9uLWhl'@; put 'YWRlci0ke2F9YH1zdGVwQ29tcGxldGVUZXh0KGEpe3JldHVybiB0aGlzLmNvbW1vblN0cmluZ3MucGFyc2UodGhpcy5jb21tb25TdHJpbmdzLmtleXMuc3RlcENvbXBsZXRlLHtTVEVQOmEudG9TdHJpbmcoKX0pfXN0ZXBFcnJvclRleHQoYSl7cmV0dXJuIHRoaXMuY29tbW9uU3RyaW5ncy5w'@; put 'YXJzZSh0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5zdGVwRXJyb3Ise1NURVA6YS50b1N0cmluZygpfSl9ZW1pdFBhbmVsQ2hhbmdlKGEpe2EuaW5kZXghPT10aGlzLl9wYW5lbEluZGV4JiYodGhpcy5fcGFuZWxJbmRleD1hLmluZGV4LHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKSksYS5vcGVu'@; put 'IT09dGhpcy5wYW5lbE9wZW4mJih0aGlzLnBhbmVsT3BlbkNoYW5nZS5lbWl0KGEub3BlbiksdGhpcy5wYW5lbE9wZW49YS5vcGVuKSxhLm9wZW4mJih0aGlzLmlmRXhwYW5kU2VydmljZS5leHBhbmRlZD0hMCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8'@; put 'fGMpKCRlKGMsMTIpLCRlKHRvKSwkZShIeCksJGUoVzEpLCRlKHhvKSl9LGMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1hY2NvcmRpb24tcGFuZWwiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oYSxkLGgpe2lmKDEmYSYmYXMoaCxPMWUsNCksMiZhKXtsZXQgZjt5'@; put 'aShmPWJpKCkpJiYoZC5hY2NvcmRpb25EZXNjcmlwdGlvbj1mKX19LGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZUcigiY2xyLWFjY29yZGlvbi1wYW5lbCIsITApKCJjbHItYWNjb3JkaW9uLXBhbmVsLWRpc2FibGVkIixkLmRpc2FibGVkKX0saW5wdXRzOntk'@; put 'aXNhYmxlZDpbVm4uTm9uZSwiY2xyQWNjb3JkaW9uUGFuZWxEaXNhYmxlZCIsImRpc2FibGVkIl0scGFuZWxPcGVuOltWbi5Ob25lLCJjbHJBY2NvcmRpb25QYW5lbE9wZW4iLCJwYW5lbE9wZW4iXSxoZWFkaW5nRW5hYmxlZDpbVm4uTm9uZSwiY2xyQWNjb3JkaW9uUGFuZWxIZWFkaW5nRW5h'@; put 'YmxlZCIsImhlYWRpbmdFbmFibGVkIl0sZXhwbGljaXRIZWFkaW5nTGV2ZWw6W1ZuLk5vbmUsImNsckFjY29yZGlvblBhbmVsSGVhZGluZ0xldmVsIiwiZXhwbGljaXRIZWFkaW5nTGV2ZWwiXX0sb3V0cHV0czp7cGFuZWxPcGVuQ2hhbmdlOiJjbHJBY2NvcmRpb25QYW5lbE9wZW5DaGFuZ2Ui'@; put 'fSxmZWF0dXJlczpbdWEoW1cxXSksYmxdLG5nQ29udGVudFNlbGVjdG9yczpmSGUsZGVjbHM6Mix2YXJzOjMsY29uc3RzOltbImhlYWRlckJ1dHRvbiIsIiJdLFs0LCJuZ0lmIl0sWzMsIm5nQ2xhc3MiXSxbMSwiY2xyLWFjY29yZGlvbi1oZWFkZXIiXSxbInR5cGUiLCJidXR0b24iLDEsImNs'@; put 'ci1hY2NvcmRpb24taGVhZGVyLWJ1dHRvbiIsMywiY2xpY2siLCJpZCIsImRpc2FibGVkIl0sWzEsImNsci1hY2NvcmRpb24tc3RhdHVzIl0sWyJzaGFwZSIsImFuZ2xlIiwiZGlyZWN0aW9uIiwicmlnaHQiLDEsImNsci1hY2NvcmRpb24tYW5nbGUiXSxbInJvbGUiLCJyZWdpb24iLDEsImNs'@; put 'ci1hY2NvcmRpb24tY29udGVudC1yZWdpb24iLDMsImlkIl0sWyJjbGFzcyIsImNsci1hY2NvcmRpb24tY29udGVudCIsNCwibmdJZiJdLFsxLCJjbHItYWNjb3JkaW9uLWNvbnRlbnQiXSxbMSwiY2xyLWFjY29yZGlvbi1pbm5lci1jb250ZW50Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7'@; put 'MSZhJiYoc2EoaEhlKSxndCgwLGdIZSwxMiwxNiwibmctY29udGFpbmVyIiwxKSxRbygxLCJhc3luYyIpKSwyJmEmJk1lKCJuZ0lmIixBYygxLDEsZC5wYW5lbCkpfSxkZXBlbmRlbmNpZXM6W3Z1LGJhLGVvLElNXSxlbmNhcHN1bGF0aW9uOjIsZGF0YTp7YW5pbWF0aW9uOm5VZX0sY2hhbmdl'@; put 'RGV0ZWN0aW9uOjB9KSxjfSkoKSxGMWU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLmFjY29yZGlvblNlcnZpY2U9YSx0aGlzLm11bHRpUGFuZWw9ITEsdGhpcy5zdWJzY3JpcHRpb25zPVtdfW5nT25Jbml0KCl7dGhpcy5zZXRBY2NvcmRpb25TdHJhdGVneSgpfW5nT25DaGFu'@; put 'Z2VzKGEpe2EubXVsdGlQYW5lbC5jdXJyZW50VmFsdWUhPT1hLm11bHRpUGFuZWwucHJldmlvdXNWYWx1ZSYmdGhpcy5zZXRBY2NvcmRpb25TdHJhdGVneSgpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubGlzdGVuRm9yRE9NQ2hhbmdlcygpKX1uZ09u'@; put 'RGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGE9PmEudW5zdWJzY3JpYmUoKSl9c2V0QWNjb3JkaW9uU3RyYXRlZ3koKXt0aGlzLmFjY29yZGlvblNlcnZpY2Uuc2V0U3RyYXRlZ3kodGhpcy5tdWx0aVBhbmVsP0Z4Lk11bHRpOkZ4LkRlZmF1bHQpfWxpc3RlbkZvckRPTUNo'@; put 'YW5nZXMoKXtyZXR1cm4gdGhpcy5wYW5lbHMuY2hhbmdlcy5waXBlKFQyKHRoaXMucGFuZWxzKSkuc3Vic2NyaWJlKGE9PnRoaXMuYWNjb3JkaW9uU2VydmljZS51cGRhdGVQYW5lbE9yZGVyKGEudG9BcnJheSgpLm1hcChkPT5kLmlkKSkpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24o'@; put 'YSl7cmV0dXJuIG5ldyhhfHxjKSgkZShIeCkpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItYWNjb3JkaW9uIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGEsZCxoKXtpZigxJmEmJmFzKGgsQkwsNCksMiZhKXtsZXQgZjt5aShmPWJpKCkpJiYoZC5wYW5lbHM9'@; put 'Zil9fSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmVHIoImNsci1hY2NvcmRpb24iLCEwKX0saW5wdXRzOnttdWx0aVBhbmVsOltWbi5Ob25lLCJjbHJBY2NvcmRpb25NdWx0aVBhbmVsIiwibXVsdGlQYW5lbCJdfSxmZWF0dXJlczpbdWEoW0h4XSksYmxdLG5n'@; put 'Q29udGVudFNlbGVjdG9yczp5cyxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKHNhKCksV3IoMCkpfSxlbmNhcHN1bGF0aW9uOjIsY2hhbmdlRGV0ZWN0aW9uOjB9KSxjfSkoKSxIMWU9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9u'@; put 'KGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1hY2NvcmRpb24tY29udGVudCJdLFsiY2xyLXN0ZXAtY29udGVudCJdXSxuZ0NvbnRlbnRTZWxlY3RvcnM6eXMsZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsx'@; put 'JmEmJihzYSgpLFdyKDApKX0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksY30pKCksTjFlPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJj'@; put 'bHItYWNjb3JkaW9uLXRpdGxlIl0sWyJjbHItc3RlcC10aXRsZSJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmVHIoImNsci1hY2NvcmRpb24tdGl0bGUiLCEwKX0sbmdDb250ZW50U2VsZWN0b3JzOnlzLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0'@; put 'aW9uKGEsZCl7MSZhJiYoc2EoKSxXcigwKSl9LGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLGN9KSgpLEFiPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLmRpc2FibGVDaG9jb2xhdGVDaGVjaz0hMSx0aGlzLl9jaG9jb2xhdGU9bmV3IEdufWdldCBjaG9jb2xh'@; put 'dGUoKXtyZXR1cm4gdGhpcy5fY2hvY29sYXRlLmFzT2JzZXJ2YWJsZSgpfW5nQWZ0ZXJWaWV3Q2hlY2tlZCgpe3RoaXMuZGlzYWJsZUNob2NvbGF0ZUNoZWNrfHx0aGlzLl9jaG9jb2xhdGUubmV4dCgpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0s'@; put 'Yy5cdTAyNzVkaXI9RXIoe3R5cGU6Y30pLGN9KSgpLGtiPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkKXt0aGlzLnN1YnNjcmlwdGlvbj1kLmNob2NvbGF0ZS5zdWJzY3JpYmUoKCk9Pnt0aGlzLmxhdGVzdEZsYXZvciE9PXRoaXMuZmxhdm9yJiYoZC5kaXNhYmxlQ2hvY29sYXRlQ2hl'@; put 'Y2s9ITAsYS5kZXRlY3RDaGFuZ2VzKCksZC5kaXNhYmxlQ2hvY29sYXRlQ2hlY2s9ITEpfSl9bmdBZnRlckNvbnRlbnRDaGVja2VkKCl7dGhpcy5sYXRlc3RGbGF2b3I9dGhpcy5mbGF2b3J9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfX1yZXR1cm4gYy5c'@; put 'dTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZSh4byksJGUoQWIpKX0sYy5cdTAyNzVkaXI9RXIoe3R5cGU6Y30pLGN9KSgpLE9ZPSgoKT0+e2NsYXNzIGMgZXh0ZW5kcyBBYnt9cmV0dXJuIGMuXHUwMjc1ZmFjPSgoKT0+e2xldCBsO3JldHVybiBmdW5jdGlvbihkKXty'@; put 'ZXR1cm4obHx8KGw9VW8oYykpKShkfHxjKX19KSgpLGMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1hY2NvcmRpb24iXV0sZmVhdHVyZXM6W0NhXX0pLGN9KSgpLFYxZT0oKCk9PntjbGFzcyBjIGV4dGVuZHMga2J7Y29uc3RydWN0b3IoYSxkLGgpe2lmKCFkKXRocm93'@; put 'IG5ldyBFcnJvcigiY2xyLWFjY29yZGlvbi1wYW5lbCBzaG91bGQgb25seSBiZSB1c2VkIGluc2lkZSBvZiBjbHItYWNjb3JkaW9uIik7c3VwZXIoYSxkKSx0aGlzLmV4cGFuZD1ofWdldCBmbGF2b3IoKXtyZXR1cm4gdGhpcy5leHBhbmQuZXhwYW5kZWR9fXJldHVybiBjLlx1MDI3NWZhYz1m'@; put 'dW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKCRlKHhvKSwkZShPWSw4KSwkZShXMSkpfSxjLlx1MDI3NWRpcj1Fcih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItYWNjb3JkaW9uLXBhbmVsIl1dLGZlYXR1cmVzOltDYV19KSxjfSkoKSxCMWU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigp'@; put 'e0VvLmFkZEljb25zKENiLGJoLF9oKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1Bcih7aW1wb3J0czpbTGEsVG9dfSksY30pKCksdVVlPSgoKT0+e2NsYXNzIGN7fXJldHVybiBj'@; put 'Llx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9QXIoe2ltcG9ydHM6W0xhLFRvLEIxZSxCMWVdfSksY30pKCk7dmFyIHBhPWZ1bmN0aW9uKGMpe3JldHVybiBjLkFycm93TGVmdD0iQXJyb3dMZWZ0Iixj'@; put 'LkFycm93VXA9IkFycm93VXAiLGMuQXJyb3dSaWdodD0iQXJyb3dSaWdodCIsYy5BcnJvd0Rvd249IkFycm93RG93biIsYy5CYWNrc3BhY2U9IkJhY2tzcGFjZSIsYy5UYWI9IlRhYiIsYy5FbnRlcj0iRW50ZXIiLGMuRXNjYXBlPSJFc2NhcGUiLGMuU3BhY2U9IlNwYWNlIixjLlNwYWNlYmFy'@; put 'PSIgIixjLkhvbWU9IkhvbWUiLGMuRW5kPSJFbmQiLGMuUGFnZURvd249IlBhZ2VEb3duIixjLlBhZ2VVcD0iUGFnZVVwIixjfShwYXx8e30pLGg3PWZ1bmN0aW9uKGMpe3JldHVybiBjLkFycm93VXA9IlVwIixjLkFycm93RG93bj0iRG93biIsYy5BcnJvd1JpZ2h0PSJSaWdodCIsYy5BcnJv'@; put 'd0xlZnQ9IkxlZnQiLGMuU3BhY2U9IlNwYWNlYmFyIixjLkVzY2FwZT0iRXNjIixjfShoN3x8e30pO2Z1bmN0aW9uIEwyKGMpe3JldHVybiBjPT09cGEuQXJyb3dVcHx8Yz09PWg3LkFycm93VXA/cGEuQXJyb3dVcDpjPT09cGEuQXJyb3dEb3dufHxjPT09aDcuQXJyb3dEb3duP3BhLkFycm93'@; put 'RG93bjpjPT09cGEuQXJyb3dSaWdodHx8Yz09PWg3LkFycm93UmlnaHQ/cGEuQXJyb3dSaWdodDpjPT09cGEuQXJyb3dMZWZ0fHxjPT09aDcuQXJyb3dMZWZ0P3BhLkFycm93TGVmdDpjPT09cGEuU3BhY2V8fGM9PT1oNy5TcGFjZT9wYS5TcGFjZTpjPT09cGEuRXNjYXBlfHxjPT09aDcuRXNj'@; put 'YXBlP3BhLkVzY2FwZTpjfWZ1bmN0aW9uIEZZKGMpe2NvbnN0IGw9TDIoYy5rZXkpOyhsPT09cGEuQXJyb3dVcHx8bD09PXBhLkFycm93RG93bnx8bD09PXBhLkFycm93TGVmdHx8bD09PXBhLkFycm93UmlnaHQpJiZjLnByZXZlbnREZWZhdWx0KCl9bGV0IHNjPSgoKT0+e2NsYXNzIGN7Y29u'@; put 'c3RydWN0b3IoKXt0aGlzLl9vcGVuPSExLHRoaXMuX29wZW5DaGFuZ2U9bmV3IEduLHRoaXMuX29wZW5FdmVudENoYW5nZT1uZXcgR24sdGhpcy5fcG9wb3ZlckFsaWduZWQ9bmV3IEduLHRoaXMuX3BvcG92ZXJWaXNpYmxlPW5ldyBHbn1nZXQgb3BlbkNoYW5nZSgpe3JldHVybiB0aGlzLl9v'@; put 'cGVuQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpfWdldCBwb3BvdmVyVmlzaWJsZSgpe3JldHVybiB0aGlzLl9wb3BvdmVyVmlzaWJsZS5hc09ic2VydmFibGUoKX1nZXQgb3BlbkV2ZW50KCl7cmV0dXJuIHRoaXMuX29wZW5FdmVudH1zZXQgb3BlbkV2ZW50KGEpe3RoaXMuX29wZW5FdmVudD1hLHRo'@; put 'aXMuX29wZW5FdmVudENoYW5nZS5uZXh0KGEpfWdldCBvcGVuKCl7cmV0dXJuIHRoaXMuX29wZW59c2V0IG9wZW4oYSl7dGhpcy5fb3BlbiE9PShhPSEhYSkmJih0aGlzLl9vcGVuPWEsdGhpcy5fb3BlbkNoYW5nZS5uZXh0KGEpKX1nZXQgb3JpZ2luYWxFdmVudCgpe3JldHVybiB0aGlzLl9v'@; put 'cGVuRXZlbnR9Z2V0IHBvcG92ZXJBbGlnbmVkKCl7cmV0dXJuIHRoaXMuX3BvcG92ZXJBbGlnbmVkLmFzT2JzZXJ2YWJsZSgpfWdldEV2ZW50Q2hhbmdlKCl7cmV0dXJuIHRoaXMuX29wZW5FdmVudENoYW5nZS5hc09ic2VydmFibGUoKX10b2dnbGVXaXRoRXZlbnQoYSl7RlkoYSksdGhpcy5v'@; put 'cGVuRXZlbnQ9YSx0aGlzLm9wZW49IXRoaXMub3Blbn1wb3BvdmVyVmlzaWJsZUVtaXQoYSl7dGhpcy5fcG9wb3ZlclZpc2libGUubmV4dChhKX1wb3BvdmVyQWxpZ25lZEVtaXQoYSl7dGhpcy5fcG9wb3ZlckFsaWduZWQubmV4dChhKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEp'@; put 'e3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCksVng9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCl7dGhpcy5yZW5kZXJlcj1hLHRoaXMuc21hcnRPcGVuU2VydmljZT1kLHRoaXMuZG9jdW1lbnQ9aCx0'@; put 'aGlzLm91dHNpZGVDbGlja0Nsb3NlPSEwLHRoaXMuc2Nyb2xsVG9DbG9zZT0hMCx0aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goZC5vcGVuQ2hhbmdlLnN1YnNjcmliZShmPT57Zj8odGhpcy5hZGRFc2NhcGVMaXN0ZW5lcigpLHRoaXMuYWRkQ2xpY2tMaXN0'@; put 'ZW5lcigpLHRoaXMuYWRkU2Nyb2xsTGlzdGVuZXIoKSk6dGhpcy5yZW1vdmVBbGxFdmVudExpc3RlbmVycygpfSksZC5nZXRFdmVudENoYW5nZSgpLnN1YnNjcmliZShmPT57dGhpcy5pZ25vcmVkRXZlbnQ9Zn0pKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGE9'@; put 'PmEudW5zdWJzY3JpYmUoKSksdGhpcy5yZW1vdmVBbGxFdmVudExpc3RlbmVycygpfWFkZFNjcm9sbExpc3RlbmVyKCl7dGhpcy5zY3JvbGxUb0Nsb3NlJiYodGhpcy5kb2N1bWVudFNjcm9sbGVyPXhkKHRoaXMuZG9jdW1lbnQsInNjcm9sbCIse2NhcHR1cmU6ITB9KSx0aGlzLnNjcm9sbFN1'@; put 'YnNjcmlwdGlvbj10aGlzLmRvY3VtZW50U2Nyb2xsZXIucGlwZShXbCh0aGlzLnRlc3RGb3JTbWFydFBvcG92ZXJDb250ZW50Q29udGFpbmVyKSkuc3Vic2NyaWJlKCgpPT57dGhpcy5zbWFydE9wZW5TZXJ2aWNlLm9wZW49ITEsdGhpcy5zZXRBbmNob3JGb2N1cygpfSkpfXJlbW92ZVNjcm9s'@; put 'bExpc3RlbmVyKCl7dGhpcy5kb2N1bWVudFNjcm9sbGVyJiYodGhpcy5zY3JvbGxTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSxkZWxldGUgdGhpcy5kb2N1bWVudFNjcm9sbGVyKX1hZGRDbGlja0xpc3RlbmVyKCl7dGhpcy5vdXRzaWRlQ2xpY2tDbG9zZSYmKHRoaXMuZG9jdW1lbnRDbGlj'@; put 'a0xpc3RlbmVyPXRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZG9jdW1lbnQsImNsaWNrIixhPT57YT09PXRoaXMuaWdub3JlZEV2ZW50P2RlbGV0ZSB0aGlzLmlnbm9yZWRFdmVudDoodGhpcy5zbWFydE9wZW5TZXJ2aWNlLm9wZW49ITEsYS50YXJnZXQuZm9jdXMoKSl9KSl9cmVtb3ZlQ2xp'@; put 'Y2tMaXN0ZW5lcigpe3RoaXMub3V0c2lkZUNsaWNrQ2xvc2UmJihkZWxldGUgdGhpcy5pZ25vcmVkRXZlbnQsdGhpcy5kb2N1bWVudENsaWNrTGlzdGVuZXImJih0aGlzLmRvY3VtZW50Q2xpY2tMaXN0ZW5lcigpLGRlbGV0ZSB0aGlzLmRvY3VtZW50Q2xpY2tMaXN0ZW5lcikpfWFkZEVzY2Fw'@; put 'ZUxpc3RlbmVyKCl7dGhpcy5lc2NhcGVMaXN0ZW5lcj10aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmRvY3VtZW50LCJrZXlkb3duLmVzY2FwZSIsKCk9Pnt0aGlzLnNtYXJ0T3BlblNlcnZpY2Uub3Blbj0hMSx0aGlzLnNldEFuY2hvckZvY3VzKCl9KX1yZW1vdmVFc2NhcGVMaXN0ZW5lcigp'@; put 'e3RoaXMuZXNjYXBlTGlzdGVuZXImJih0aGlzLmVzY2FwZUxpc3RlbmVyKCksZGVsZXRlIHRoaXMuZXNjYXBlTGlzdGVuZXIpfXNldENsb3NlRm9jdXMoKXt0aGlzLmNsb3NlQnV0dG9uUmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKX1zZXRBbmNob3JGb2N1cygpe3RoaXMuYW5jaG9yQnV0dG9u'@; put 'UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKX10ZXN0Rm9yU21hcnRQb3BvdmVyQ29udGVudENvbnRhaW5lcihhKXtsZXQgZD1hLnRhcmdldDtmb3IoO2QuY2xhc3NMaXN0JiYiYm9keSIhPT1kLnBhcmVudEVsZW1lbnQubG9jYWxOYW1lOylkPWQucGFyZW50RWxlbWVudDtyZXR1cm4hIWQuY2xh'@; put 'c3NMaXN0JiYhZC5jbGFzc0xpc3QuY29udGFpbnMoImNsci1wb3BvdmVyLWNvbnRlbnQiKX1yZW1vdmVBbGxFdmVudExpc3RlbmVycygpe3RoaXMucmVtb3ZlU2Nyb2xsTGlzdGVuZXIoKSx0aGlzLnJlbW92ZUNsaWNrTGlzdGVuZXIoKSx0aGlzLnJlbW92ZUVzY2FwZUxpc3RlbmVyKCl9fXJl'@; put 'dHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKENyKEVzKSxDcihzYyksQ3IobW8pKX0sYy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSxCeD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCl7YS5hbmNob3JC'@; put 'dXR0b25SZWY9ZH19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoJGUoVngpLCRlKFFpKSl9LGMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsImNsclBvcG92ZXJBbmNob3IiLCIiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVu'@; put 'Y3Rpb24oYSxkKXsyJmEmJlRyKCJjbHItYW5jaG9yIiwhMCl9fSksY30pKCksVTFlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgpe3RoaXMuZWxlbWVudFJlZj1hLHRoaXMuc21hcnRFdmVudHNTZXJ2aWNlPWQsdGhpcy5zbWFydE9wZW5TZXJ2aWNlPWgsdGhpcy5jbG9zZUNoYW5n'@; put 'ZT1uZXcgS3IsdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGgub3BlbkNoYW5nZS5waXBlKFdsKGY9PiFmKSkuc3Vic2NyaWJlKCgpPT57dGhpcy5jbG9zZUNoYW5nZS5uZXh0KCl9KSl9aGFuZGxlQ2xpY2soYSl7dGhpcy5zbWFydE9wZW5TZXJ2aWNlLnRv'@; put 'Z2dsZVdpdGhFdmVudChhKSx0aGlzLnNtYXJ0RXZlbnRzU2VydmljZS5zZXRBbmNob3JGb2N1cygpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuc21hcnRFdmVudHNTZXJ2aWNlLmNsb3NlQnV0dG9uUmVmPXRoaXMuZWxlbWVudFJlZix0aGlzLnNtYXJ0RXZlbnRzU2VydmljZS5zZXRDbG9zZUZv'@; put 'Y3VzKCl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChhPT5hLnVuc3Vic2NyaWJlKCkpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZShRaSksJGUoVngpLCRlKHNjKSl9LGMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsc2Vs'@; put 'ZWN0b3JzOltbIiIsImNsclBvcG92ZXJDbG9zZUJ1dHRvbiIsIiJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezEmYSYmRnQoImNsaWNrIixmdW5jdGlvbihmKXtyZXR1cm4gZC5oYW5kbGVDbGljayhmKX0pLDImYSYmVHIoImNsci1zbWFydC1jbG9zZS1idXR0b24i'@; put 'LCEwKX0sb3V0cHV0czp7Y2xvc2VDaGFuZ2U6ImNsclBvcG92ZXJPbkNsb3NlQ2hhbmdlIn19KSxjfSkoKTt2YXIgZDE9ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5WRVJUSUNBTD0wXT0iVkVSVElDQUwiLGNbYy5IT1JJWk9OVEFMPTFdPSJIT1JJWk9OVEFMIixjfShkMXx8e30pLE9vPWZ1bmN0'@; put 'aW9uKGMpe3JldHVybiBjW2MuU1RBUlQ9MF09IlNUQVJUIixjW2MuQ0VOVEVSPS41XT0iQ0VOVEVSIixjW2MuRU5EPTFdPSJFTkQiLGN9KE9vfHx7fSksang9ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5CT1RUT009MF09IkJPVFRPTSIsY1tjLkxFRlQ9MV09IkxFRlQiLGNbYy5SSUdIVD0yXT0i'@; put 'UklHSFQiLGNbYy5UT1A9M109IlRPUCIsY30oanh8fHt9KTtjb25zdCBmbT1jPT4oey4uLmMsc2lkZTotMSpjLnNpZGV9KSxpZz0oYyxsKT0+e2NvbnN0IGE9Yy5jb250ZW50KyhsPy41Oi0uNSk7cmV0dXJuIGE8MHx8YT4xP2M6ey4uLmMsY29udGVudDphfX07ZnVuY3Rpb24gRGIoYyxsLGEp'@; put 'e3JldHVybiBkPT5sKGMoZCksYSl9ZnVuY3Rpb24gQ2goYyxsLGEpe2xldCBkPWwubGVmdCxoPWwudG9wO3N3aXRjaChjLmF4aXMrYy5zaWRlKXtjYXNlLTE6ZCs9WjFlKGMsbCxhKSxoLT1hLmhlaWdodDticmVhaztjYXNlIDE6ZCs9WjFlKGMsbCxhKSxoKz1sLmhlaWdodDticmVhaztjYXNl'@; put 'IDA6ZC09YS53aWR0aCxoKz1XMWUoYyxsLGEpO2JyZWFrO2Nhc2UgMjpkKz1sLndpZHRoLGgrPVcxZShjLGwsYSl9cmV0dXJue3hPZmZzZXQ6ZCx5T2Zmc2V0Omh9fWZ1bmN0aW9uIFoxZShjLGwsYSl7bGV0IGQ9MDtzd2l0Y2goYy5hbmNob3Ipe2Nhc2UgT28uU1RBUlQ6YnJlYWs7Y2FzZSBP'@; put 'by5DRU5URVI6ZCs9bC53aWR0aC8yO2JyZWFrO2Nhc2UgT28uRU5EOmQrPWwud2lkdGh9c3dpdGNoKGMuY29udGVudCl7Y2FzZSBPby5TVEFSVDpicmVhaztjYXNlIE9vLkNFTlRFUjpkLT1hLndpZHRoLzI7YnJlYWs7Y2FzZSBPby5FTkQ6ZC09YS53aWR0aH1yZXR1cm4gZH1mdW5jdGlvbiBX'@; put 'MWUoYyxsLGEpe2xldCBkPTA7c3dpdGNoKGMuYW5jaG9yKXtjYXNlIE9vLlNUQVJUOmJyZWFrO2Nhc2UgT28uQ0VOVEVSOmQrPWwuaGVpZ2h0LzI7YnJlYWs7Y2FzZSBPby5FTkQ6ZCs9bC5oZWlnaHR9c3dpdGNoKGMuY29udGVudCl7Y2FzZSBPby5TVEFSVDpicmVhaztjYXNlIE9vLkNFTlRF'@; put 'UjpkLT1hLmhlaWdodC8yO2JyZWFrO2Nhc2UgT28uRU5EOmQtPWEuaGVpZ2h0fXJldHVybiBkfWxldCBZMWU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQpe3RoaXMuZXZlbnRTZXJ2aWNlPWEsdGhpcy5wbGF0Zm9ybUlkPWQsdGhpcy5fc2hvdWxkUmVhbGlnbj1uZXcgR24sdGhpcy5z'@; put 'aG91bGRSZWFsaWduPXRoaXMuX3Nob3VsZFJlYWxpZ24uYXNPYnNlcnZhYmxlKCl9cmVhbGlnbigpe3RoaXMuX3Nob3VsZFJlYWxpZ24ubmV4dCgpfWFsaWduQ29udGVudChhKXtpZighZWwodGhpcy5wbGF0Zm9ybUlkKSlyZXR1cm57eE9mZnNldDowLHlPZmZzZXQ6MH07dGhpcy5jdXJyZW50'@; put 'QW5jaG9yQ29vcmRzPXRoaXMuZXZlbnRTZXJ2aWNlLmFuY2hvckJ1dHRvblJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHRoaXMuY3VycmVudENvbnRlbnRDb29yZHM9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0aGlzLmNvbnRlbnRPZmZzZXRzPUNoKHRoaXMu'@; put 'cG9zaXRpb24sdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMpO2NvbnN0IGQ9ZnVuY3Rpb24gaFVlKGMsbCl7Y29uc3QgYT1bXSxkX2JvdHRvbT1jLnlPZmZzZXQrbC5oZWlnaHQsZF9sZWZ0PWMueE9mZnNldCxkX3JpZ2h0PWMueE9mZnNldCtsLndp'@; put 'ZHRoO3JldHVybiBjLnlPZmZzZXQ+PTB8fGEucHVzaChqeC5UT1ApLGRfbGVmdD49MHx8YS5wdXNoKGp4LkxFRlQpLGRfYm90dG9tPD0od2luZG93LmlubmVySGVpZ2h0fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KXx8YS5wdXNoKGp4LkJPVFRPTSksZF9yaWdodDw9'@; put 'KHdpbmRvdy5pbm5lcldpZHRofHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpfHxhLnB1c2goanguUklHSFQpLGF9KHRoaXMuY29udGVudE9mZnNldHMsdGhpcy5jdXJyZW50Q29udGVudENvb3JkcyksaD1kLnJlZHVjZSgoZix2KT0+Zit2LDApO3JldHVybiAxPT09ZC5s'@; put 'ZW5ndGgmJnRoaXMucG9zaXRpb24uYXhpcz09PWQxLlZFUlRJQ0FMP3RoaXMuaGFuZGxlVmVydGljYWxBeGlzT25lVmlvbGF0aW9uKGgpOjE9PT1kLmxlbmd0aCYmdGhpcy5wb3NpdGlvbi5heGlzPT09ZDEuSE9SSVpPTlRBTD90aGlzLmhhbmRsZUhvcml6b250YWxBeGlzT25lVmlvbGF0aW9u'@; put 'KGgpOjI9PT1kLmxlbmd0aCYmdGhpcy5wb3NpdGlvbi5heGlzPT09ZDEuVkVSVElDQUw/dGhpcy5oYW5kbGVWZXJ0aWNhbEF4aXNUd29WaW9sYXRpb25zKGgpOjI9PT1kLmxlbmd0aCYmdGhpcy5wb3NpdGlvbi5heGlzPT09ZDEuSE9SSVpPTlRBTCYmdGhpcy5oYW5kbGVIb3Jpem9udGFsQXhp'@; put 'c1R3b1Zpb2xhdGlvbnMoaCksdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcy50b3A8MCYmKHRoaXMuY29udGVudE9mZnNldHMueU9mZnNldCs9TWF0aC5hYnModGhpcy5jdXJyZW50Q29udGVudENvb3Jkcy50b3ApKSx0aGlzLmNvbnRlbnRPZmZzZXRzLnlPZmZzZXQrdGhpcy5jdXJyZW50QW5j'@; put 'aG9yQ29vcmRzLnk8MCYmKHRoaXMuY29udGVudE9mZnNldHMueU9mZnNldD0wLXRoaXMuY3VycmVudENvbnRlbnRDb29yZHMudG9wKSx0aGlzLmNvbnRlbnRPZmZzZXRzfWhhbmRsZVZlcnRpY2FsQXhpc09uZVZpb2xhdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSAwOmNhc2UgMzp0aGlzLmNvbnRl'@; put 'bnRPZmZzZXRzPUNoKGZtKHRoaXMucG9zaXRpb24pLHRoaXMuY3VycmVudEFuY2hvckNvb3Jkcyx0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzKTticmVhaztjYXNlIDE6dGhpcy5jb250ZW50T2Zmc2V0cz1DaCh0aGlzLnBvc2l0aW9uLHRoaXMuY3VycmVudEFuY2hvckNvb3Jkcyx0aGlzLmN1'@; put 'cnJlbnRDb250ZW50Q29vcmRzKSx0aGlzLmNvbnRlbnRPZmZzZXRzLnhPZmZzZXQ8MCYmKHRoaXMuY29udGVudE9mZnNldHMueE9mZnNldD0xMCk7YnJlYWs7Y2FzZSAyOnRoaXMuY29udGVudE9mZnNldHM9Q2goaWcodGhpcy5wb3NpdGlvbiwhMCksdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRz'@; put 'LHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMpfX1oYW5kbGVWZXJ0aWNhbEF4aXNUd29WaW9sYXRpb25zKGEpe3N3aXRjaChhKXtjYXNlIDU6e2NvbnN0IGQ9RGIoZm0saWcsITApO3RoaXMuY29udGVudE9mZnNldHM9Q2goZCh0aGlzLnBvc2l0aW9uKSx0aGlzLmN1cnJlbnRBbmNob3JDb29y'@; put 'ZHMsdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcyk7YnJlYWt9Y2FzZSA0Ontjb25zdCBkPURiKGZtLGlnLCExKTt0aGlzLmNvbnRlbnRPZmZzZXRzPUNoKGQodGhpcy5wb3NpdGlvbiksdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMpO2JyZWFrfWNh'@; put 'c2UgMzpkZWZhdWx0OmJyZWFrO2Nhc2UgMjp7Y29uc3QgZD1EYihmbSxpZywhMCk7dGhpcy5jb250ZW50T2Zmc2V0cz1DaChkKHRoaXMucG9zaXRpb24pLHRoaXMuY3VycmVudEFuY2hvckNvb3Jkcyx0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzKTticmVha31jYXNlIDE6e2NvbnN0IGQ9RGIo'@; put 'Zm0saWcsITEpO3RoaXMuY29udGVudE9mZnNldHM9Q2goZCh0aGlzLnBvc2l0aW9uKSx0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcyk7YnJlYWt9fX1oYW5kbGVIb3Jpem9udGFsQXhpc09uZVZpb2xhdGlvbihhKXtzd2l0Y2goYSl7Y2FzZSAxOmNh'@; put 'c2UgMjp0aGlzLmNvbnRlbnRPZmZzZXRzPUNoKGZtKHRoaXMucG9zaXRpb24pLHRoaXMuY3VycmVudEFuY2hvckNvb3Jkcyx0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzKTticmVhaztjYXNlIDA6dGhpcy5jb250ZW50T2Zmc2V0cz1DaChpZyh0aGlzLnBvc2l0aW9uLCEwKSx0aGlzLmN1cnJl'@; put 'bnRBbmNob3JDb29yZHMsdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcyk7YnJlYWs7Y2FzZSAzOnRoaXMuY29udGVudE9mZnNldHM9Q2goaWcodGhpcy5wb3NpdGlvbiksdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMpfX1oYW5kbGVIb3Jpem9udGFs'@; put 'QXhpc1R3b1Zpb2xhdGlvbnMoYSl7c3dpdGNoKGEpe2Nhc2UgNTpjYXNlIDQ6e2NvbnN0IGQ9RGIoZm0saWcsITEpO3RoaXMuY29udGVudE9mZnNldHM9Q2goZCh0aGlzLnBvc2l0aW9uKSx0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcyk7YnJlYWt9'@; put 'Y2FzZSAzOmRlZmF1bHQ6YnJlYWs7Y2FzZSAyOmNhc2UgMTp7Y29uc3QgZD1EYihmbSxpZywhMCk7dGhpcy5jb250ZW50T2Zmc2V0cz1DaChkKHRoaXMucG9zaXRpb24pLHRoaXMuY3VycmVudEFuY2hvckNvb3Jkcyx0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzKTticmVha319fX1yZXR1cm4g'@; put 'Yy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKShDcihWeCksQ3IoaXMpKX0sYy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSx6eD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYsdixNLEkpe3RoaXMuZG9jdW1l'@; put 'bnQ9YSx0aGlzLmNvbnRhaW5lcj1kLHRoaXMudGVtcGxhdGU9aCx0aGlzLnJlbmRlcmVyPWYsdGhpcy5zbWFydFBvc2l0aW9uU2VydmljZT12LHRoaXMuc21hcnRFdmVudHNTZXJ2aWNlPU0sdGhpcy5zbWFydE9wZW5TZXJ2aWNlPUksdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMucmVtb3Zl'@; put 'Q2xpY2tMaXN0ZW5lckZuPW51bGwsdGhpcy5zaG91bGRSZWFsaWduPSExLHRoaXMucHJldmlvdXNDb250ZW50SGVpZ2h0PW51bGwsdGhpcy5jaGVja0NvbGxlY3Rvcj1uZXcgS3J9c2V0IG9wZW4oYSl7dGhpcy5zbWFydE9wZW5TZXJ2aWNlLm9wZW49ISFhfXNldCBjb250ZW50QXQoYSl7dGhp'@; put 'cy5zbWFydFBvc2l0aW9uU2VydmljZS5wb3NpdGlvbj1hfXNldCBvdXRzaWRlQ2xpY2tDbG9zZShhKXt0aGlzLnNtYXJ0RXZlbnRzU2VydmljZS5vdXRzaWRlQ2xpY2tDbG9zZT0hIWF9c2V0IHNjcm9sbFRvQ2xvc2UoYSl7dGhpcy5zbWFydEV2ZW50c1NlcnZpY2Uuc2Nyb2xsVG9DbG9zZT0h'@; put 'IWF9bmdBZnRlckNvbnRlbnRDaGVja2VkKCl7aWYodGhpcy5zbWFydE9wZW5TZXJ2aWNlLm9wZW4mJnRoaXMudmlldyl7Y29uc3QgYT10aGlzLnZpZXcucm9vdE5vZGVzWzBdLm9mZnNldEhlaWdodDsodGhpcy5zaG91bGRSZWFsaWdufHxudWxsIT09dGhpcy5wcmV2aW91c0NvbnRlbnRIZWln'@; put 'aHQmJnRoaXMucHJldmlvdXNDb250ZW50SGVpZ2h0IT09YSkmJih0aGlzLnByZXZpb3VzQ29udGVudEhlaWdodD1hLHRoaXMuY2hlY2tDb2xsZWN0b3IuZW1pdCgpKX19bmdBZnRlclZpZXdJbml0KCl7dGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5zbWFydE9wZW5TZXJ2aWNlLm9wZW5D'@; put 'aGFuZ2Uuc3Vic2NyaWJlKGE9PnthP3RoaXMuYWRkQ29udGVudCgpOnRoaXMucmVtb3ZlQ29udGVudCgpfSksdGhpcy5zbWFydFBvc2l0aW9uU2VydmljZS5zaG91bGRSZWFsaWduLnN1YnNjcmliZSgoKT0+e3RoaXMuc2hvdWxkUmVhbGlnbj0hMH0pLHRoaXMuY2hlY2tDb2xsZWN0b3IucGlw'@; put 'ZSh1bSgwKSkuc3Vic2NyaWJlKCgpPT57dGhpcy5hbGlnbkNvbnRlbnQoKSx0aGlzLnNob3VsZFJlYWxpZ249ITEsdGhpcy52aWV3JiYodGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnZpZXcucm9vdE5vZGVzWzBdLCJvcGFjaXR5IiwiMSIpLHRoaXMuc21hcnRPcGVuU2VydmljZS5wb3Bv'@; put 'dmVyVmlzaWJsZUVtaXQoITApKX0pKX1uZ09uRGVzdHJveSgpe3RoaXMucmVtb3ZlQ29udGVudCgpLHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGE9PmEudW5zdWJzY3JpYmUoKSl9YWRkQ29udGVudCgpe3RoaXMudmlldz10aGlzLmNvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhp'@; put 'cy50ZW1wbGF0ZSk7Y29uc3RbYV09dGhpcy52aWV3LnJvb3ROb2Rlczt0aGlzLnNtYXJ0RXZlbnRzU2VydmljZS5jb250ZW50UmVmPWEsdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhhLCJjbHItcG9wb3Zlci1jb250ZW50IiksdGhpcy5yZW5kZXJlci5zZXRTdHlsZShhLCJ0b3AiLCIwcHgiKSx0'@; put 'aGlzLnJlbmRlcmVyLnNldFN0eWxlKGEsImxlZnQiLCIwcHgiKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGEsIm9wYWNpdHkiLCIwIiksdGhpcy5yZW1vdmVDbGlja0xpc3RlbmVyRm49dGhpcy5yZW5kZXJlci5saXN0ZW4oYSwiY2xpY2siLGQ9Pnt0aGlzLnNtYXJ0T3BlblNlcnZpY2Uub3Bl'@; put 'bkV2ZW50PWR9KSx0aGlzLnZpZXcucm9vdE5vZGVzLmZvckVhY2goZD0+e3RoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5kb2N1bWVudC5ib2R5LGQpfSksdGhpcy5zaG91bGRSZWFsaWduPSEwfXJlbW92ZUNvbnRlbnQoKXt0aGlzLnZpZXcmJih0aGlzLnJlbW92ZUNsaWNrTGlzdGVu'@; put 'ZXJGbiYmKHRoaXMucmVtb3ZlQ2xpY2tMaXN0ZW5lckZuKCksdGhpcy5yZW1vdmVDbGlja0xpc3RlbmVyRm49bnVsbCksdGhpcy52aWV3LnJvb3ROb2Rlcy5mb3JFYWNoKGE9PnRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5kb2N1bWVudC5ib2R5LGEpKSx0aGlzLmNvbnRhaW5lci5j'@; put 'bGVhcigpLGRlbGV0ZSB0aGlzLnZpZXcsdGhpcy5zbWFydE9wZW5TZXJ2aWNlLnBvcG92ZXJWaXNpYmxlRW1pdCghMSkpfWFsaWduQ29udGVudCgpe2lmKCF0aGlzLnZpZXcpcmV0dXJuO2NvbnN0IGE9dGhpcy5zbWFydFBvc2l0aW9uU2VydmljZS5hbGlnbkNvbnRlbnQodGhpcy52aWV3LnJv'@; put 'b3ROb2Rlc1swXSk7dGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnZpZXcucm9vdE5vZGVzWzBdLCJ0b3AiLGAke2EueU9mZnNldH1weGApLHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy52aWV3LnJvb3ROb2Rlc1swXSwibGVmdCIsYCR7YS54T2Zmc2V0fXB4YCksdGhpcy5zbWFydE9w'@; put 'ZW5TZXJ2aWNlLnBvcG92ZXJBbGlnbmVkRW1pdCh0aGlzLnZpZXcucm9vdE5vZGVzWzBdKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoJGUobW8pLCRlKFRzKSwkZSh3bCksJGUoRXMpLCRlKFkxZSksJGUoVngpLCRlKHNjKSl9LGMuXHUwMjc1ZGly'@; put 'PUVyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsImNsclBvcG92ZXJDb250ZW50IiwiIl1dLGlucHV0czp7b3BlbjpbVm4uTm9uZSwiY2xyUG9wb3ZlckNvbnRlbnQiLCJvcGVuIl0sY29udGVudEF0OltWbi5Ob25lLCJjbHJQb3BvdmVyQ29udGVudEF0IiwiY29udGVudEF0Il0sb3V0c2lkZUNs'@; put 'aWNrQ2xvc2U6W1ZuLk5vbmUsImNsclBvcG92ZXJDb250ZW50T3V0c2lkZUNsaWNrVG9DbG9zZSIsIm91dHNpZGVDbGlja0Nsb3NlIl0sc2Nyb2xsVG9DbG9zZTpbVm4uTm9uZSwiY2xyUG9wb3ZlckNvbnRlbnRTY3JvbGxUb0Nsb3NlIiwic2Nyb2xsVG9DbG9zZSJdfX0pLGN9KSgpLFV4PSgo'@; put 'KT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5zbWFydE9wZW5TZXJ2aWNlPWEsdGhpcy5vcGVuQ2xvc2VDaGFuZ2U9bmV3IEtyLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChhLm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKGQ9Pnt0aGlzLm9wZW5DbG9z'@; put 'ZUNoYW5nZS5uZXh0KGQpfSkpfWhhbmRsZUNsaWNrKGEpe3RoaXMuc21hcnRPcGVuU2VydmljZS50b2dnbGVXaXRoRXZlbnQoYSl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChhPT5hLnVuc3Vic2NyaWJlKCkpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24o'@; put 'YSl7cmV0dXJuIG5ldyhhfHxjKSgkZShzYykpfSxjLlx1MDI3NWRpcj1Fcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJjbHJQb3BvdmVyT3BlbkNsb3NlQnV0dG9uIiwiIl1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MSZhJiZGdCgiY2xpY2siLGZ1bmN0aW9uKGYp'@; put 'e3JldHVybiBkLmhhbmRsZUNsaWNrKGYpfSksMiZhJiZUcigiY2xyLXNtYXJ0LW9wZW4tY2xvc2UiLCEwKX0sb3V0cHV0czp7b3BlbkNsb3NlQ2hhbmdlOiJjbHJQb3BvdmVyT3BlbkNsb3NlQ2hhbmdlIn19KSxjfSkoKSxaeD0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVu'@; put 'Y3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9QWkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPUFyKHt9KSxjfSkoKTt2YXIgU2g9ZnVuY3Rpb24oYyl7cmV0dXJuIGMuVVA9InVwIixjLkRPV049ImRvd24iLGMuTEVGVD0ibGVmdCIsYy5SSUdIVD0icmlnaHQiLGN9KFNofHx7'@; put 'fSk7bGV0IFNwPWNsYXNze2NvbnN0cnVjdG9yKGwpe3RoaXMucmVuZGVyZXI9bCx0aGlzLl91bmxpc3RlbkZ1bmNzPVtdfWdldCBjdXJyZW50KCl7cmV0dXJuIHRoaXMuX2N1cnJlbnR9cmVzZXQobCl7dGhpcy5fY3VycmVudD1sfWxpc3RlblRvQXJyb3dLZXlzKGwpe3RoaXMuX3VubGlzdGVu'@; put 'RnVuY3MucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3RlbihsLCJrZXlkb3duLmFycm93dXAiLCgpPT4hdGhpcy5tb3ZlKFNoLlVQKSkpLHRoaXMuX3VubGlzdGVuRnVuY3MucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3RlbihsLCJrZXlkb3duLmFycm93ZG93biIsKCk9PiF0aGlzLm1vdmUoU2guRE9X'@; put 'TikpKSx0aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4obCwia2V5ZG93bi5hcnJvd2xlZnQiLCgpPT4hdGhpcy5tb3ZlKFNoLkxFRlQpKSksdGhpcy5fdW5saXN0ZW5GdW5jcy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKGwsImtleWRvd24uYXJyb3dyaWdo'@; put 'dCIsKCk9PiF0aGlzLm1vdmUoU2guUklHSFQpKSl9cmVnaXN0ZXJDb250YWluZXIobCxhPSIwIil7dGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUobCwidGFiaW5kZXgiLGEpLHRoaXMubGlzdGVuVG9BcnJvd0tleXMobCksdGhpcy5fdW5saXN0ZW5GdW5jcy5wdXNoKHRoaXMucmVuZGVyZXIu'@; put 'bGlzdGVuKGwsImtleWRvd24uc3BhY2UiLCgpPT4hdGhpcy5hY3RpdmF0ZUN1cnJlbnQoKSkpLHRoaXMuX3VubGlzdGVuRnVuY3MucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3RlbihsLCJrZXlkb3duLmVudGVyIiwoKT0+IXRoaXMuYWN0aXZhdGVDdXJyZW50KCkpKX1tb3ZlVG8obCl7dm9pZCAw'@; put 'IT09bCYmKHRoaXMuY3VycmVudCYmdGhpcy5jdXJyZW50LmJsdXIoKSxsLmZvY3VzKCksdGhpcy5fY3VycmVudD1sKX1tb3ZlKGwpe2xldCBhPSExO2lmKHRoaXMuY3VycmVudCl7Y29uc3QgZD10aGlzLmN1cnJlbnRbbF07ZCYmKFdNKGQpP2Q6ZHMoZCkpLnN1YnNjcmliZShmPT57ZiYmKHRo'@; put 'aXMubW92ZVRvKGYpLGE9ITApfSl9cmV0dXJuIGF9YWN0aXZhdGVDdXJyZW50KCl7cmV0dXJuISghdGhpcy5jdXJyZW50fHwhdGhpcy5jdXJyZW50LmFjdGl2YXRlfHwodGhpcy5jdXJyZW50LmFjdGl2YXRlKCksMCkpfWRldGFjaExpc3RlbmVycygpe3RoaXMuX3VubGlzdGVuRnVuY3MuZm9y'@; put 'RWFjaChsPT5sKCkpfX07U3AuXHUwMjc1ZmFjPWZ1bmN0aW9uKGwpe3JldHVybiBuZXcobHx8U3ApKENyKEVzKSl9LFNwLlx1MDI3NXByb3Y9cm4oe3Rva2VuOlNwLGZhY3Rvcnk6U3AuXHUwMjc1ZmFjfSk7Y29uc3QgSzFlPXtwcm92aWRlOlNwLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gZlVlKGMs'@; put 'bCl7cmV0dXJuIGN8fG5ldyBTcChsKX0sZGVwczpbW25ldyBSMSxuZXcgdWQsU3BdLEVzXX07dmFyIE8yPWZ1bmN0aW9uKGMpe3JldHVybiBjW2MuQkVGT1JFPS0xXT0iQkVGT1JFIixjW2MuQUZURVI9MV09IkFGVEVSIixjfShPMnx8e30pO2NsYXNzIFRke31UZFsidG9wLXJpZ2h0Il09e2F4'@; put 'aXM6ZDEuVkVSVElDQUwsc2lkZTpPMi5CRUZPUkUsYW5jaG9yOk9vLkVORCxjb250ZW50Ok9vLkVORH0sVGRbInRvcC1sZWZ0Il09e2F4aXM6ZDEuVkVSVElDQUwsc2lkZTpPMi5CRUZPUkUsYW5jaG9yOk9vLlNUQVJULGNvbnRlbnQ6T28uU1RBUlR9LFRkWyJib3R0b20tcmlnaHQiXT17YXhp'@; put 'czpkMS5WRVJUSUNBTCxzaWRlOk8yLkFGVEVSLGFuY2hvcjpPby5FTkQsY29udGVudDpPby5FTkR9LFRkWyJib3R0b20tbGVmdCJdPXtheGlzOmQxLlZFUlRJQ0FMLHNpZGU6TzIuQUZURVIsYW5jaG9yOk9vLlNUQVJULGNvbnRlbnQ6T28uU1RBUlR9LFRkWyJyaWdodC10b3AiXT17YXhpczpk'@; put 'MS5IT1JJWk9OVEFMLHNpZGU6TzIuQUZURVIsYW5jaG9yOk9vLkNFTlRFUixjb250ZW50Ok9vLkVORH0sVGRbInJpZ2h0LWJvdHRvbSJdPXtheGlzOmQxLkhPUklaT05UQUwsc2lkZTpPMi5BRlRFUixhbmNob3I6T28uU1RBUlQsY29udGVudDpPby5TVEFSVH0sVGRbImxlZnQtdG9wIl09e2F4'@; put 'aXM6ZDEuSE9SSVpPTlRBTCxzaWRlOk8yLkJFRk9SRSxhbmNob3I6T28uQ0VOVEVSLGNvbnRlbnQ6T28uRU5EfSxUZFsibGVmdC1ib3R0b20iXT17YXhpczpkMS5IT1JJWk9OVEFMLHNpZGU6TzIuQkVGT1JFLGFuY2hvcjpPby5TVEFSVCxjb250ZW50Ok9vLlNUQVJUfTtjb25zdCB6TD1uZXcg'@; put 'U3QoIlBPUE9WRVJfSE9TVF9BTkNIT1IiKTtsZXQgcFVlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy50b2dnbGVTZXJ2aWNlPWEsdGhpcy5sYXN0T3BlbkNoYW5nZT1udWxsfW5nT25Jbml0KCl7dGhpcy5zdWJzY3JpcHRpb249dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW5DaGFu'@; put 'Z2Uuc3Vic2NyaWJlKGE9Pnt0aGlzLmxhc3RPcGVuQ2hhbmdlPWF9KX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpfW9uRXNjYXBlS2V5KGEpe251bGwhPT10aGlzLmxhc3RPcGVuQ2hhbmdlJiYoITE9PT10aGlzLmxhc3RPcGVuQ2hhbmdlJiZhLnN0b3BQ'@; put 'cm9wYWdhdGlvbigpLHRoaXMubGFzdE9wZW5DaGFuZ2U9bnVsbCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKCRlKHNjKSl9LGMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MSZhJiZGdCgia2V5dXAuZXNj'@; put 'YXBlIixmdW5jdGlvbihmKXtyZXR1cm4gZC5vbkVzY2FwZUtleShmKX0pfSxzdGFuZGFsb25lOiEwfSksY30pKCksYWc9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsc3RhbmRhbG9u'@; put 'ZTohMCxmZWF0dXJlczpbdWEoW3NjLFZ4LFkxZSx7cHJvdmlkZTp6TCx1c2VFeGlzdGluZzpRaX1dKSx5ZChbcFVlXSldfSksY30pKCk7Y2xhc3MgTll7c3RhdGljIGxpbmtQYXJlbnQobCxhLGQpe2wuZm9yRWFjaChoPT5oW2RdPWEpfXN0YXRpYyBsaW5rVmVydGljYWwobCxhPSEwKXtsLmZv'@; put 'ckVhY2goKGQsaCk9PntoPjAmJihkLnVwPWxbaC0xXSksaDxsLmxlbmd0aC0xJiYoZC5kb3duPWxbaCsxXSl9KSxhJiZsLmxlbmd0aD4xJiYobFswXS51cD1sW2wubGVuZ3RoLTFdLGxbbC5sZW5ndGgtMV0uZG93bj1sWzBdKX19bGV0IHBtPSgoKT0+e2NsYXNzIGN7dXNlckRlZmluZWRXaWR0'@; put 'aChhKXtjb25zdCBkPWEuY2xvbmVOb2RlKCEwKTtkLmlkJiYoZC5pZD1kLmlkKyItY2xvbmUiKSxkLmNsYXNzTGlzdC5hZGQoImRhdGFncmlkLWNlbGwtd2lkdGgtemVybyIpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZCk7Y29uc3QgaD10aGlzLmNsaWVudFJlY3QoZCkud2lkdGg7cmV0'@; put 'dXJuIGQucmVtb3ZlKCksaH1zY3JvbGxCYXJXaWR0aChhKXtyZXR1cm4gYS5vZmZzZXRXaWR0aC1hLmNsaWVudFdpZHRofXNjcm9sbFdpZHRoKGEpe3JldHVybiBhLnNjcm9sbFdpZHRofHwwfWNvbXB1dGVkSGVpZ2h0KGEpe3JldHVybiBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKGEpLmdl'@; put 'dFByb3BlcnR5VmFsdWUoImhlaWdodCIpLDEwKX1jbGllbnRSZWN0KGEpe2NvbnN0IGQ9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm57dG9wOnBhcnNlSW50KGQudG9wLDEwKSxib3R0b206cGFyc2VJbnQoZC5ib3R0b20sMTApLGxlZnQ6cGFyc2VJbnQoZC5sZWZ0LDEwKSxyaWdo'@; put 'dDpwYXJzZUludChkLnJpZ2h0LDEwKSx3aWR0aDpwYXJzZUludChkLndpZHRoLDEwKSxoZWlnaHQ6cGFyc2VJbnQoZC5oZWlnaHQsMTApfX1taW5XaWR0aChhKXtyZXR1cm4gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZShhKS5nZXRQcm9wZXJ0eVZhbHVlKCJtaW4td2lkdGgiKSwxMCl9Zm9j'@; put 'dXMoYSl7YS5mb2N1cygpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSxVTD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoKXt0aGlzLmVsZW1l'@; put 'bnQ9YSx0aGlzLmRvbUFkYXB0ZXI9ZCx0aGlzLnJlbmRlcmVyPWgsdGhpcy5jbHJFeHBhbmRUcmlnZ2VyPSExLHRoaXMuc3RhcnRIZWlnaHQ9MH1nZXQgZXhwYW5kQW5pbWF0aW9uKCl7cmV0dXJue3ZhbHVlOnRoaXMuY2xyRXhwYW5kVHJpZ2dlcixwYXJhbXM6e3N0YXJ0SGVpZ2h0OnRoaXMu'@; put 'c3RhcnRIZWlnaHR9fX1hbmltYXRpb25TdGFydChhKXsidm9pZCIhPT1hLmZyb21TdGF0ZSYmdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwib3ZlcmZsb3ciLCJoaWRkZW4iKX1hbmltYXRpb25Eb25lKGEpeyJ2b2lkIiE9PWEuZnJvbVN0YXRlJiYo'@; put 'dGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwib3ZlcmZsb3ciKSx0aGlzLnVwZGF0ZVN0YXJ0SGVpZ2h0KCkpfXVwZGF0ZVN0YXJ0SGVpZ2h0KCl7dGhpcy5zdGFydEhlaWdodD10aGlzLmRvbUFkYXB0ZXIuY29tcHV0ZWRIZWlnaHQodGhpcy5l'@; put 'bGVtZW50Lm5hdGl2ZUVsZW1lbnQpfHwwfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZShRaSksJGUocG0pLCRlKEVzKSl9LGMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1leHBhbmRhYmxlLWFuaW1hdGlvbiJdXSxob3N0'@; put 'VmFyczoxLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezEmYSYmZ1UoIkBleHBhbmRBbmltYXRpb24uc3RhcnQiLGZ1bmN0aW9uKGYpe3JldHVybiBkLmFuaW1hdGlvblN0YXJ0KGYpfSkoIkBleHBhbmRBbmltYXRpb24uZG9uZSIsZnVuY3Rpb24oZil7cmV0dXJuIGQuYW5pbWF0aW9uRG9u'@; put 'ZShmKX0pLDImYSYmaFUoIkBleHBhbmRBbmltYXRpb24iLGQuZXhwYW5kQW5pbWF0aW9uKX0saW5wdXRzOntjbHJFeHBhbmRUcmlnZ2VyOiJjbHJFeHBhbmRUcmlnZ2VyIn0sZmVhdHVyZXM6W3VhKFtwbV0pXSxuZ0NvbnRlbnRTZWxlY3RvcnM6eXMsZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6'@; put 'ZnVuY3Rpb24oYSxkKXsxJmEmJihzYSgpLFdyKDApKX0sZW5jYXBzdWxhdGlvbjoyLGRhdGE6e2FuaW1hdGlvbjpbd2goImV4cGFuZEFuaW1hdGlvbiIsW3R1KCJ0cnVlIDw9PiBmYWxzZSIsW2xvKHtoZWlnaHQ6Int7c3RhcnRIZWlnaHR9fXB4In0pLHcwKCIwLjJzIGVhc2UtaW4tb3V0Iixs'@; put 'byh7aGVpZ2h0OiIqIn0pKV0pXSldfX0pLGN9KSgpLFZZPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9QXIoe2ltcG9ydHM6W0xhXX0pLGN9KSgpLGdVZT0w'@; put 'O2NvbnN0IFJiPW5ldyBTdCgiSUZfQUNUSVZFX0lEIiksdlVlPXtwcm92aWRlOlJiLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gbVVlKCl7cmV0dXJuKytnVWV9fTtsZXQgZjc9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2N1cnJlbnRDaGFuZ2U9bmV3IEdufWdldCBjdXJyZW50Q2hh'@; put 'bmdlKCl7cmV0dXJuIHRoaXMuX2N1cnJlbnRDaGFuZ2UuYXNPYnNlcnZhYmxlKCl9Z2V0IGN1cnJlbnQoKXtyZXR1cm4gdGhpcy5fY3VycmVudH1zZXQgY3VycmVudChhKXt0aGlzLl9jdXJyZW50IT09YSYmKHRoaXMuX2N1cnJlbnQ9YSx0aGlzLl9jdXJyZW50Q2hhbmdlLm5leHQoYSkpfX1y'@; put 'ZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSxMYj0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYpe3RoaXMuaWZBY3RpdmVTZXJ2aWNlPWEsdGhp'@; put 'cy5pZD1kLHRoaXMudGVtcGxhdGU9aCx0aGlzLmNvbnRhaW5lcj1mLHRoaXMuYWN0aXZlQ2hhbmdlPW5ldyBLcighMSksdGhpcy53YXNBY3RpdmU9ITEsdGhpcy5jaGVja0FuZFVwZGF0ZVZpZXcoYS5jdXJyZW50KSx0aGlzLnN1YnNjcmlwdGlvbj1hLmN1cnJlbnRDaGFuZ2Uuc3Vic2NyaWJl'@; put 'KHY9Pnt0aGlzLmNoZWNrQW5kVXBkYXRlVmlldyh2KX0pfWdldCBhY3RpdmUoKXtyZXR1cm4gdGhpcy5pZkFjdGl2ZVNlcnZpY2UuY3VycmVudD09PXRoaXMuaWR9c2V0IGFjdGl2ZShhKXthJiYodGhpcy5pZkFjdGl2ZVNlcnZpY2UuY3VycmVudD10aGlzLmlkKX1uZ09uRGVzdHJveSgpe3Ro'@; put 'aXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9dXBkYXRlVmlldyhhKXthP3RoaXMuY29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlKTp0aGlzLmNvbnRhaW5lci5jbGVhcigpfWNoZWNrQW5kVXBkYXRlVmlldyhhKXtjb25zdCBkPWE9PT10aGlzLmlkO2QhPT10'@; put 'aGlzLndhc0FjdGl2ZSYmKHRoaXMudXBkYXRlVmlldyhkKSx0aGlzLmFjdGl2ZUNoYW5nZS5lbWl0KGQpLHRoaXMud2FzQWN0aXZlPWQpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZShmNyksJGUoUmIpLCRlKHdsKSwkZShUcykpfSxjLlx1MDI3'@; put 'NWRpcj1Fcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJjbHJJZkFjdGl2ZSIsIiJdXSxpbnB1dHM6e2FjdGl2ZTpbVm4uTm9uZSwiY2xySWZBY3RpdmUiLCJhY3RpdmUiXX0sb3V0cHV0czp7YWN0aXZlQ2hhbmdlOiJjbHJJZkFjdGl2ZUNoYW5nZSJ9fSksY30pKCksUDI9KCgpPT57Y2xhc3Mg'@; put 'Y3tjb25zdHJ1Y3RvcihhLGQsaCl7dGhpcy50b2dnbGVTZXJ2aWNlPWEsdGhpcy50ZW1wbGF0ZT1kLHRoaXMuY29udGFpbmVyPWgsdGhpcy5vcGVuQ2hhbmdlPW5ldyBLcighMSksdGhpcy5zdWJzY3JpcHRpb249YS5vcGVuQ2hhbmdlLnN1YnNjcmliZShmPT57dGhpcy51cGRhdGVWaWV3KGYp'@; put 'LHRoaXMub3BlbkNoYW5nZS5lbWl0KGYpfSl9Z2V0IG9wZW4oKXtyZXR1cm4gdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW59c2V0IG9wZW4oYSl7dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW49YX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9dXBkYXRlVmlldyhh'@; put 'KXthP3RoaXMuY29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlKTp0aGlzLmNvbnRhaW5lci5jbGVhcigpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZShzYyksJGUod2wpLCRlKFRzKSl9LGMuXHUwMjc1ZGlyPUVyKHt0'@; put 'eXBlOmMsc2VsZWN0b3JzOltbIiIsImNscklmT3BlbiIsIiJdXSxpbnB1dHM6e29wZW46W1ZuLk5vbmUsImNscklmT3BlbiIsIm9wZW4iXX0sb3V0cHV0czp7b3BlbkNoYW5nZToiY2xySWZPcGVuQ2hhbmdlIn19KSxjfSkoKSxYMWU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxm'@; put 'LHYpe3RoaXMudGVtcGxhdGU9YSx0aGlzLmNvbnRhaW5lcj1kLHRoaXMuZWw9aCx0aGlzLnJlbmRlcmVyPWYsdGhpcy5leHBhbmQ9dix0aGlzLmV4cGFuZGVkQ2hhbmdlPW5ldyBLcighMCksdGhpcy5fZXhwYW5kZWQ9ITEsdGhpcy5fc3Vic2NyaXB0aW9ucz1bXSx0aGlzLl9zdWJzY3JpcHRp'@; put 'b25zLnB1c2godi5leHBhbmRDaGFuZ2Uuc3Vic2NyaWJlKCgpPT57dGhpcy51cGRhdGVWaWV3KCksdGhpcy5leHBhbmRlZENoYW5nZS5lbWl0KHYuZXhwYW5kZWQpfSkpLHYuaGFzRXhwYW5kVGVtcGxhdGU9ISFhfWdldCBleHBhbmRlZCgpe3JldHVybiB0aGlzLl9leHBhbmRlZH1zZXQgZXhw'@; put 'YW5kZWQoYSl7ImJvb2xlYW4iPT10eXBlb2YgYSYmKHRoaXMuZXhwYW5kLmV4cGFuZGVkPWEsdGhpcy5fZXhwYW5kZWQ9YSl9bmdPbkluaXQoKXt0aGlzLmV4cGFuZC5leHBhbmRhYmxlKyssdGhpcy51cGRhdGVWaWV3KCl9bmdPbkRlc3Ryb3koKXt0aGlzLmV4cGFuZC5leHBhbmRhYmxlLS0s'@; put 'dGhpcy5fc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGE9PmEudW5zdWJzY3JpYmUoKSl9dXBkYXRlVmlldygpe2lmKCF0aGlzLmV4cGFuZC5leHBhbmRlZHx8MD09PXRoaXMuY29udGFpbmVyLmxlbmd0aClpZih0aGlzLnRlbXBsYXRlKXRoaXMuZXhwYW5kLmV4cGFuZGVkP3RoaXMuY29udGFpbmVy'@; put 'LmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlKTp0aGlzLmNvbnRhaW5lci5jbGVhcigpO2Vsc2UgdHJ5e3RoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJkaXNwbGF5Iix0aGlzLmV4cGFuZC5leHBhbmRlZD9udWxsOiJub25lIil9Y2F0Y2h7fX19'@; put 'cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoJGUod2wsOCksJGUoVHMpLCRlKFFpKSwkZShFcyksJGUoVzEpKX0sYy5cdTAyNzVkaXI9RXIoe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwiY2xySWZFeHBhbmRlZCIsIiJdXSxpbnB1dHM6e2V4cGFuZGVkOltW'@; put 'bi5Ob25lLCJjbHJJZkV4cGFuZGVkIiwiZXhwYW5kZWQiXX0sb3V0cHV0czp7ZXhwYW5kZWRDaGFuZ2U6ImNscklmRXhwYW5kZWRDaGFuZ2UifX0pLGN9KSgpLEYyPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3'@; put 'NW1vZD1BaSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9QXIoe2ltcG9ydHM6W0xhXX0pLGN9KSgpO2NvbnN0IHlVZT17cHJvdmlkZTpuZXcgU3QoIkZPQ1VTX09OX1ZJRVdfSU5JVCIpLHVzZVZhbHVlOiEwfTtsZXQgWkw9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9u'@; put 'KGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1Bcih7cHJvdmlkZXJzOlt5VWVdLGltcG9ydHM6W0xhXX0pLGN9KSgpLF9VZT0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxj'@; put 'KX0sYy5cdTAyNzVtb2Q9QWkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPUFyKHtpbXBvcnRzOltMYSxUbyxaeF19KSxjfSkoKSxIMj0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCl7dGhpcy5lbD1hLHRoaXMucmVuZGVyZXI9ZCx0aGlzLmNsckxvYWRpbmdDaGFuZ2U9bmV3IEtyKCExKSx0'@; put 'aGlzLmJ1dHRvblN0YXRlPVoxLHRoaXMuc3RhdGU9WjEuREVGQVVMVH1sb2FkaW5nU3RhdGVDaGFuZ2UoYSl7aWYoYSE9PXRoaXMuc3RhdGUpe3N3aXRjaCh0aGlzLnN0YXRlPWEsYSl7Y2FzZSBaMS5ERUZBVUxUOnRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5lbC5uYXRpdmVFbGVt'@; put 'ZW50LCJ3aWR0aCIpLHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJ0cmFuc2Zvcm0iKSx0aGlzLmRpc2FibGVkfHx0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsImRpc2FibGVkIik7YnJlYWs7Y2FzZSBa'@; put 'MS5MT0FESU5HOnRoaXMuc2V0RXhwbGljaXRCdXR0b25XaWR0aCgpLHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGV6KDApIiksdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJk'@; put 'aXNhYmxlZCIsIiIpO2JyZWFrO2Nhc2UgWjEuU1VDQ0VTUzp0aGlzLnNldEV4cGxpY2l0QnV0dG9uV2lkdGgoKTticmVhaztjYXNlIFoxLkVSUk9SOnRoaXMubG9hZGluZ1N0YXRlQ2hhbmdlKFoxLkRFRkFVTFQpfXRoaXMuY2xyTG9hZGluZ0NoYW5nZS5lbWl0KGEpfX1zZXRFeHBsaWNpdEJ1'@; put 'dHRvbldpZHRoKCl7aWYodGhpcy5lbC5uYXRpdmVFbGVtZW50JiZ0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KXtjb25zdCBhPXRoaXMuZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxkPU1hdGgubWF4KDQyLGEud2lkdGgpO3RoaXMu'@; put 'cmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJ3aWR0aCIsYCR7ZH1weGApfX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoJGUoUWkpLCRlKEVzKSl9LGMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImJ1dHRv'@; put 'biIsImNsckxvYWRpbmciLCIiXV0saG9zdFZhcnM6MSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsyJmEmJmhyKCJkaXNhYmxlZCIsZC5kaXNhYmxlZD8iIjpudWxsKX0saW5wdXRzOntkaXNhYmxlZDoiZGlzYWJsZWQifSxvdXRwdXRzOntjbHJMb2FkaW5nQ2hhbmdlOiJjbHJMb2FkaW5n'@; put 'Q2hhbmdlIn0sZmVhdHVyZXM6W3VhKFt7cHJvdmlkZTpQeCx1c2VFeGlzdGluZzpjfV0pXSxhdHRyczpISGUsbmdDb250ZW50U2VsZWN0b3JzOnlzLGRlY2xzOjQsdmFyczo1LGNvbnN0czpbWzMsIm5nU3dpdGNoIl0sWzQsIm5nU3dpdGNoQ2FzZSJdLFsiY2xhc3MiLCJjbHItbG9hZGluZy1i'@; put 'dG4tY29udGVudCIsNCwibmdTd2l0Y2hDYXNlIl0sWzEsInNwaW5uZXIiLCJzcGlubmVyLWlubGluZSJdLFsxLCJzcGlubmVyIiwic3Bpbm5lci1pbmxpbmUiLCJzcGlubmVyLWNoZWNrIl0sWzEsImNsci1sb2FkaW5nLWJ0bi1jb250ZW50Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZh'@; put 'JiYoc2EoKSxkZSgwLCJzcGFuIiwwKSxndCgxLE5IZSwyLDEsIm5nLWNvbnRhaW5lciIsMSkoMixWSGUsMiwxLCJuZy1jb250YWluZXIiLDEpKDMsQkhlLDIsMSwic3BhbiIsMiksaGUoKSksMiZhJiYoTWUoIkBwYXJlbnQiLHZvaWQgMCkoIm5nU3dpdGNoIixkLnN0YXRlKSxmZSgpLE1lKCJu'@; put 'Z1N3aXRjaENhc2UiLGQuYnV0dG9uU3RhdGUuTE9BRElORyksZmUoKSxNZSgibmdTd2l0Y2hDYXNlIixkLmJ1dHRvblN0YXRlLlNVQ0NFU1MpLGZlKCksTWUoIm5nU3dpdGNoQ2FzZSIsZC5idXR0b25TdGF0ZS5ERUZBVUxUKSl9LGRlcGVuZGVuY2llczpbeDIsZHBdLGVuY2Fwc3VsYXRpb246'@; put 'MixkYXRhOnthbmltYXRpb246W3doKCJwYXJlbnQiLFt0dSgiOmVudGVyIixbXSldKSx3aCgiZGVmYXVsdEJ1dHRvbiIsW3R1KCI6ZW50ZXIiLFtsbyh7b3BhY2l0eTowfSksdzAoIjIwMG1zIDEwMG1zIGVhc2UtaW4iLGxvKHtvcGFjaXR5OjF9KSldKSx0dSgiOmxlYXZlIixbbG8oe29wYWNp'@; put 'dHk6MH0pXSldKSx3aCgic3Bpbm5lciIsW3R1KCI6ZW50ZXIiLFtsbyh7b3BhY2l0eTowfSksdzAoIjIwMG1zIDEwMG1zIGVhc2UtaW4iLGxvKHtvcGFjaXR5OjF9KSldKSx0dSgiOmxlYXZlIixbbG8oe29wYWNpdHk6MX0pLHcwKCIxMDBtcyBlYXNlLW91dCIsbG8oe29wYWNpdHk6MH0pKV0p'@; put 'XSksd2goInZhbGlkYXRlZCIsW3R1KCI6ZW50ZXIiLFt3MCgiNjAwbXMiLHhQZShbbG8oe3RyYW5zZm9ybToic2NhbGUoMCwwKSIsb2Zmc2V0OjB9KSxsbyh7b3BhY2l0eToxLG9mZnNldDouMn0pLGxvKHt0cmFuc2Zvcm06InNjYWxlKDEuMiwxLjIpIixvZmZzZXQ6LjR9KSxsbyh7dHJhbnNm'@; put 'b3JtOiJzY2FsZSguOSwuOSkiLG9mZnNldDouNn0pLGxvKHt0cmFuc2Zvcm06InNjYWxlKDEsMSkiLG9mZnNldDoxfSldKSldKSx0dSgiOmxlYXZlIixbbG8oe29wYWNpdHk6MX0pLHcwKCIxMDBtcyBlYXNlLW91dCIsbG8oe29wYWNpdHk6MH0pKV0pXSldfX0pLGN9KSgpLENVZT0oKCk9Pntj'@; put 'bGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9QWkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPUFyKHtpbXBvcnRzOltMYV19KSxjfSkoKSxTVWU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe0VvLmFkZEljb25zKEgw'@; put 'ZSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9QXIoe2ltcG9ydHM6W0NVZSxfVWVdfSksY30pKCksTVVlPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlv'@; put 'bihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJuZy1jb21wb25lbnQiXV0sZGVjbHM6MCx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXt9LGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLFd4PSgoKT0+e2NsYXNzIGN7fXJldHVybiBj'@; put 'Llx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9QXIoe30pLGN9KSgpLHhVZT0wLE1oPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLl9pZD0iY2xyLWZvcm0tY29udHJvbC0iKyArK3hVZSx0'@; put 'aGlzLl9pZENoYW5nZT1uZXcgSnIodGhpcy5faWQpfWdldCBpZCgpe3JldHVybiB0aGlzLl9pZH1zZXQgaWQoYSl7dGhpcy5faWQ9YSx0aGlzLl9pZENoYW5nZS5uZXh0KGEpfWdldCBpZENoYW5nZSgpe3JldHVybiB0aGlzLl9pZENoYW5nZS5hc09ic2VydmFibGUoKX19cmV0dXJuIGMuXHUw'@; put 'Mjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCksRVVlPTAscDc9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2lkPSJjbHItZm9ybS1jb250YWluZXItIisgKytFVWUs'@; put 'dGhpcy5faWRDaGFuZ2U9bmV3IEpyKHRoaXMuX2lkKX1nZXQgaWQoKXtyZXR1cm4gdGhpcy5faWR9c2V0IGlkKGEpe3RoaXMuX2lkPWEsdGhpcy5faWRDaGFuZ2UubmV4dChhKX1nZXQgaWRDaGFuZ2UoKXtyZXR1cm4gdGhpcy5faWRDaGFuZ2UuYXNPYnNlcnZhYmxlKCl9fXJldHVybiBjLlx1'@; put 'MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpO2xldCBCWT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCl7dGhpcy5jb250cm9sSWRTZXJ2aWNlPWEsdGhpcy5jb250YWlu'@; put 'ZXJJZFNlcnZpY2U9ZCx0aGlzLmNvbnRyb2xJZFN1ZmZpeD0iYWJzdHJhY3QifWdldCBpZCgpe3JldHVybiB0aGlzLmNvbnRhaW5lcklkU2VydmljZT9gJHt0aGlzLmNvbnRhaW5lcklkU2VydmljZS5pZH0tJHt0aGlzLmNvbnRyb2xJZFN1ZmZpeH1gOnRoaXMuY29udHJvbElkU2VydmljZT9g'@; put 'JHt0aGlzLmNvbnRyb2xJZFNlcnZpY2UuaWR9LSR7dGhpcy5jb250cm9sSWRTdWZmaXh9YDpudWxsfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZShNaCw4KSwkZShwNyw4KSl9LGMuXHUwMjc1ZGlyPUVyKHt0eXBlOmN9KSxjfSkoKSxUVWU9KCgp'@; put 'PT57Y2xhc3MgYyBleHRlbmRzIEJZe2NvbnN0cnVjdG9yKGEsZCl7c3VwZXIoYSxkKSx0aGlzLmNvbnRyb2xJZFNlcnZpY2U9YSx0aGlzLmNvbnRhaW5lcklkU2VydmljZT1kLHRoaXMuY29udHJvbElkU3VmZml4PSJlcnJvciJ9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1'@; put 'cm4gbmV3KGF8fGMpKCRlKE1oLDgpLCRlKHA3LDgpKX0sYy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLWNvbnRyb2wtZXJyb3IiXV0saG9zdFZhcnM6NSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsyJmEmJihocigiaWQiLGQuaWQpLFRyKCJjbHItc3VidGV4dCIs'@; put 'ITApKCJlcnJvciIsITApKX0sZmVhdHVyZXM6W0NhXSxuZ0NvbnRlbnRTZWxlY3RvcnM6eXMsZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihzYSgpLFdyKDApKX0sZW5jYXBzdWxhdGlvbjoyfSksY30pKCksV0w9KCgpPT57Y2xhc3MgYyBleHRlbmRzIEJZe2Nv'@; put 'bnN0cnVjdG9yKGEsZCl7c3VwZXIoYSxkKSx0aGlzLmNvbnRyb2xJZFNlcnZpY2U9YSx0aGlzLmNvbnRhaW5lcklkU2VydmljZT1kLHRoaXMuY29udHJvbElkU3VmZml4PSJoZWxwZXIifX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZShNaCw4KSwk'@; put 'ZShwNyw4KSl9LGMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1jb250cm9sLWhlbHBlciJdXSxob3N0VmFyczozLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmKGhyKCJpZCIsZC5pZCksVHIoImNsci1zdWJ0ZXh0IiwhMCkpfSxmZWF0dXJlczpbQ2FdLG5n'@; put 'Q29udGVudFNlbGVjdG9yczp5cyxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKHNhKCksV3IoMCkpfSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxoMT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5fYWRkaXRpb25hbENvbnRyb2xzPVtdLHRoaXMu'@; put 'X2NvbnRyb2xDaGFuZ2VzPW5ldyBHbix0aGlzLl9hZGRpdGlvbmFsQ29udHJvbHNDaGFuZ2VzPW5ldyBHbix0aGlzLl9oZWxwZXJzPW5ldyBHbn1nZXQgY29udHJvbCgpe3JldHVybiB0aGlzLl9jb250cm9sfWdldCBjb250cm9sQ2hhbmdlcygpe3JldHVybiB0aGlzLl9jb250cm9sQ2hhbmdl'@; put 'cy5hc09ic2VydmFibGUoKX1nZXQgYWRkaXRpb25hbENvbnRyb2xzKCl7cmV0dXJuIHRoaXMuX2FkZGl0aW9uYWxDb250cm9sc31nZXQgYWRkaXRpb25hbENvbnRyb2xzQ2hhbmdlcygpe3JldHVybiB0aGlzLl9hZGRpdGlvbmFsQ29udHJvbHNDaGFuZ2VzLmFzT2JzZXJ2YWJsZSgpfWdldCBo'@; put 'YXNBZGRpdGlvbmFsQ29udHJvbHMoKXtyZXR1cm4hIXRoaXMuX2FkZGl0aW9uYWxDb250cm9scz8ubGVuZ3RofWdldCBoZWxwZXJzQ2hhbmdlKCl7cmV0dXJuIHRoaXMuX2hlbHBlcnMuYXNPYnNlcnZhYmxlKCl9c2V0Q29udHJvbChhKXt0aGlzLl9jb250cm9sPWEsdGhpcy5fY29udHJvbENo'@; put 'YW5nZXMubmV4dChhKX1hZGRBZGRpdGlvbmFsQ29udHJvbChhKXt0aGlzLl9hZGRpdGlvbmFsQ29udHJvbHMucHVzaChhKSx0aGlzLl9hZGRpdGlvbmFsQ29udHJvbHNDaGFuZ2VzLm5leHQodGhpcy5fYWRkaXRpb25hbENvbnRyb2xzKX1zZXRIZWxwZXJzKGEpe3RoaXMuX2hlbHBlcnMubmV4'@; put 'dChhKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCk7dmFyIEFkPWZ1bmN0aW9uKGMpe3JldHVybiBjLk5PTkU9Ik5PTkUiLGMuVkFMSUQ9IlZBTElEIixj'@; put 'LklOVkFMSUQ9IklOVkFMSUQiLGN9KEFkfHx7fSk7bGV0IGtkPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy50cmlnZ2VyU3RhdHVzQ2hhbmdlU3ViamVjdD1uZXcgR24sdGhpcy5zdGF0dXNDaGFuZ2VzPXRoaXMuZ2V0U3RhdHVzQ2hhbmdlcyhhKS5waXBlKGowZSgxKSl9dHJp'@; put 'Z2dlclN0YXR1c0NoYW5nZSgpe3RoaXMudHJpZ2dlclN0YXR1c0NoYW5nZVN1YmplY3QubmV4dCgpfWdldFN0YXR1c0NoYW5nZXMoYSl7cmV0dXJuIFg4KFthLmNvbnRyb2xDaGFuZ2VzLGEuYWRkaXRpb25hbENvbnRyb2xzQ2hhbmdlcy5waXBlKFQyKFtdKSldKS5waXBlKGoxKChbZCxoXSk9'@; put 'PntpZihkKXtjb25zdCBmPVtkLC4uLmhdO3JldHVybiB4eChYOChmLm1hcCh2PT52LnN0YXR1c0NoYW5nZXMpKSx0aGlzLnRyaWdnZXJTdGF0dXNDaGFuZ2VTdWJqZWN0LnBpcGUoUHIoKCk9PmYubWFwKHY9PnYuc3RhdHVzKSkpKX1yZXR1cm4gRTJ9KSxQcihkPT5kLmluY2x1ZGVzKEFkLklO'@; put 'VkFMSUQpP0FkLklOVkFMSUQ6ZC5pbmNsdWRlcyhBZC5WQUxJRCk/QWQuVkFMSUQ6QWQuTk9ORSksVDIoQWQuTk9ORSkpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKShDcihoMSkpfSxjLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1'@; put 'MDI3NWZhY30pLGN9KSgpO2NsYXNzIFlMe31mdW5jdGlvbiBlZGUoYyl7cmV0dXJuW2Mse3Byb3ZpZGU6WUwsdXNlRXhpc3Rpbmc6Y31dfWZ1bmN0aW9uIHRkZShjLGwsYSl7cmV0dXJuIFF0LmNyZWF0ZShkPT57bChkKTtjb25zdCBoPWMuc3Vic2NyaWJlKGQpO3JldHVybigpPT57aC51bnN1'@; put 'YnNjcmliZSgpLGEmJmEoZCl9fSl9bGV0IEdMPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZix2KXt0aGlzLnJlbmRlcmVyPWEsdGhpcy5wYXJlbnQ9ZCx0aGlzLnRvZ2dsZVNlcnZpY2U9aCx0aGlzLmZvY3VzU2VydmljZT1mLHRoaXMucGxhdGZvcm1JZD12LHRoaXMuaWQ9X3Uo'@; put 'KSx0aGlzLmZvY3VzQmFja09uVHJpZ2dlcldoZW5DbG9zZWQ9ITEsdGhpcy5fdW5saXN0ZW5GdW5jcz1bXSx0aGlzLnJlc2V0Q2hpbGRyZW4oKSx0aGlzLm1vdmVUb0ZpcnN0SXRlbVdoZW5PcGVuKCksZHx8dGhpcy5oYW5kbGVSb290Rm9jdXMoKX1nZXQgdHJpZ2dlcigpe3JldHVybiB0aGlz'@; put 'Ll90cmlnZ2VyfXNldCB0cmlnZ2VyKGEpe3RoaXMuX3RyaWdnZXI9YSx0aGlzLnBhcmVudD90aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oYSwia2V5ZG93bi5hcnJvd3JpZ2h0IixkPT50aGlzLnRvZ2dsZVNlcnZpY2UudG9nZ2xlV2l0aEV2ZW50KGQpKSk6'@; put 'KHRoaXMuX3VubGlzdGVuRnVuY3MucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3RlbihhLCJrZXlkb3duLmFycm93dXAiLGQ9PnRoaXMudG9nZ2xlU2VydmljZS50b2dnbGVXaXRoRXZlbnQoZCkpKSx0aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oYSwia2V5ZG93'@; put 'bi5hcnJvd2Rvd24iLGQ9PnRoaXMudG9nZ2xlU2VydmljZS50b2dnbGVXaXRoRXZlbnQoZCkpKSx0aGlzLmZvY3VzU2VydmljZS5saXN0ZW5Ub0Fycm93S2V5cyhhKSl9Z2V0IGNvbnRhaW5lcigpe3JldHVybiB0aGlzLl9jb250YWluZXJ9c2V0IGNvbnRhaW5lcihhKXt0aGlzLl9jb250YWlu'@; put 'ZXI9YSx0aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oYSwia2V5ZG93bi50YWIiLGQ9PnRoaXMudG9nZ2xlU2VydmljZS50b2dnbGVXaXRoRXZlbnQoZCkpKSx0aGlzLnBhcmVudD90aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5kZXJlci5saXN0'@; put 'ZW4oYSwia2V5ZG93bi5lc2NhcGUiLGQ9Pnt0aGlzLmZvY3VzU2VydmljZS5tb3ZlKFNoLkxFRlQpLGQuc3RvcFByb3BhZ2F0aW9uKCl9KSk6KHRoaXMuZm9jdXNTZXJ2aWNlLnJlZ2lzdGVyQ29udGFpbmVyKGEpLHRoaXMuX3VubGlzdGVuRnVuY3MucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3Rl'@; put 'bihhLCJrZXlkb3duLmVzY2FwZSIsZD0+dGhpcy50b2dnbGVTZXJ2aWNlLnRvZ2dsZVdpdGhFdmVudChkKSkpLHRoaXMuX3VubGlzdGVuRnVuY3MucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3RlbihhLCJibHVyIixkPT57dGhpcy5jaGlsZHJlbi5waXBlKGdoKDEpKS5zdWJzY3JpYmUoZj0+Zi5m'@; put 'b3JFYWNoKHY9PnYuYmx1cigpKSk7Y29uc3QgaD1kLnJlbGF0ZWRUYXJnZXR8fGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7aCYmZWwodGhpcy5wbGF0Zm9ybUlkKSYmKGEuY29udGFpbnMoaCl8fGg9PT10aGlzLnRyaWdnZXIpfHwodGhpcy5mb2N1c0JhY2tPblRyaWdnZXJXaGVuQ2xvc2VkPSEx'@; put 'LHRoaXMudG9nZ2xlU2VydmljZS5vcGVuPSExKX0pKSl9bmdPbkRlc3Ryb3koKXt0aGlzLl91bmxpc3RlbkZ1bmNzLmZvckVhY2goYT0+YSgpKSx0aGlzLmZvY3VzU2VydmljZS5kZXRhY2hMaXN0ZW5lcnMoKX1tb3ZlVG9GaXJzdEl0ZW1XaGVuT3Blbigpe2NvbnN0IGE9dGhpcy50b2dnbGVT'@; put 'ZXJ2aWNlLm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKGQ9PntkJiZ0aGlzLnRvZ2dsZVNlcnZpY2Uub3JpZ2luYWxFdmVudCYmc2V0VGltZW91dCgoKT0+e3RoaXMuZm9jdXNTZXJ2aWNlLm1vdmVUbyh0aGlzKSx0aGlzLmZvY3VzU2VydmljZS5tb3ZlKHRoaXMucGFyZW50P1NoLlJJR0hUOlNoLkRP'@; put 'V04pfSl9KTt0aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2goKCk9PmEudW5zdWJzY3JpYmUoKSl9aGFuZGxlUm9vdEZvY3VzKCl7Y29uc3QgYT10aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbkNoYW5nZS5zdWJzY3JpYmUoZD0+e2R8fCh0aGlzLmZvY3VzU2VydmljZS5yZXNldCh0aGlzKSx0aGlzLmZv'@; put 'Y3VzQmFja09uVHJpZ2dlcldoZW5DbG9zZWQmJnRoaXMuZm9jdXMoKSksdGhpcy5mb2N1c0JhY2tPblRyaWdnZXJXaGVuQ2xvc2VkPWR9KTt0aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2goKCk9PmEudW5zdWJzY3JpYmUoKSl9Zm9jdXMoKXt0aGlzLnRyaWdnZXImJmVsKHRoaXMucGxhdGZvcm1J'@; put 'ZCkmJnRoaXMudHJpZ2dlci5mb2N1cygpfWJsdXIoKXt0aGlzLnRyaWdnZXImJmVsKHRoaXMucGxhdGZvcm1JZCkmJnRoaXMudHJpZ2dlci5ibHVyKCl9YWN0aXZhdGUoKXtlbCh0aGlzLnBsYXRmb3JtSWQpJiZ0aGlzLnRyaWdnZXIuY2xpY2soKX1yZXNldENoaWxkcmVuKCl7dGhpcy5jaGls'@; put 'ZHJlbj1uZXcgTXgoMSksdGhpcy5wYXJlbnQ/dGhpcy5yaWdodD10aGlzLm9wZW5BbmRHZXRDaGlsZHJlbigpLnBpcGUoUHIoYT0+YVswXSkpOih0aGlzLmRvd249dGhpcy5vcGVuQW5kR2V0Q2hpbGRyZW4oKS5waXBlKFByKGE9PmFbMF0pKSx0aGlzLnVwPXRoaXMub3BlbkFuZEdldENoaWxk'@; put 'cmVuKCkucGlwZShQcihhPT5hW2EubGVuZ3RoLTFdKSkpfWFkZENoaWxkcmVuKGEpe05ZLmxpbmtWZXJ0aWNhbChhKSx0aGlzLnBhcmVudCYmTlkubGlua1BhcmVudChhLHRoaXMuY2xvc2VBbmRHZXRUaGlzKCksU2guTEVGVCksdGhpcy5jaGlsZHJlbi5uZXh0KGEpfW9wZW5BbmRHZXRDaGls'@; put 'ZHJlbigpe3JldHVybiB0ZGUodGhpcy5jaGlsZHJlbiwoKT0+dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW49ITApfWNsb3NlQW5kR2V0VGhpcygpe3JldHVybiB0ZGUoZHModGhpcyksKCk9PnRoaXMudG9nZ2xlU2VydmljZS5vcGVuPSExKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEp'@; put 'e3JldHVybiBuZXcoYXx8YykoQ3IoRXMpLENyKGMsMTIpLENyKHNjKSxDcihTcCksQ3IoaXMpKX0sYy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKTtjb25zdCBBVWU9ZWRlKEdMKTtsZXQgWXg9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3Ro'@; put 'aXMuX2NoYW5nZXM9bmV3IEdufWdldCBjaGFuZ2VzKCl7cmV0dXJuIHRoaXMuX2NoYW5nZXMuYXNPYnNlcnZhYmxlKCl9Y2xvc2VNZW51cygpe3RoaXMuX2NoYW5nZXMubmV4dCghMSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXBy'@; put 'b3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpO2NvbnN0IERVZT17cHJvdmlkZTpZeCx1c2VGYWN0b3J5OmZ1bmN0aW9uIGtVZShjKXtyZXR1cm4gY3x8bmV3IFl4fSxkZXBzOltbbmV3IFIxLG5ldyB1ZCxZeF1dfTtsZXQgc2c9KCgpPT57Y2xhc3MgY3tjb25zdHJ1'@; put 'Y3RvcihhLGQsaCxmLHYpe3RoaXMucGFyZW50PWEsdGhpcy50b2dnbGVTZXJ2aWNlPWQsdGhpcy5mb2N1c0hhbmRsZXI9aCx0aGlzLmlzTWVudUNsb3NhYmxlPSEwLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh2LmNoYW5nZXMuc3Vic2NyaWJlKE09PmQu'@; put 'b3Blbj1NKSksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goZC5vcGVuQ2hhbmdlLnN1YnNjcmliZSgoKT0+Zi5tYXJrRm9yQ2hlY2soKSkpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goYT0+YS51bnN1YnNjcmliZSgpKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0'@; put 'aW9uKGEpe3JldHVybiBuZXcoYXx8YykoJGUoYywxMiksJGUoc2MpLCRlKEdMKSwkZSh4byksJGUoWXgpKX0sYy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLWRyb3Bkb3duIl1dLGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZUcigiZHJv'@; put 'cGRvd24iLCEwKSgib3BlbiIsZC50b2dnbGVTZXJ2aWNlLm9wZW4pfSxpbnB1dHM6e2lzTWVudUNsb3NhYmxlOltWbi5Ob25lLCJjbHJDbG9zZU1lbnVPbkl0ZW1DbGljayIsImlzTWVudUNsb3NhYmxlIl19LGZlYXR1cmVzOlt1YShbRFVlLEsxZSxBVWVdKSx5ZChbYWddKV0sbmdDb250ZW50'@; put 'U2VsZWN0b3JzOnlzLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoc2EoKSxXcigwKSl9LGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpO3ZhciBUaT1mdW5jdGlvbihjKXtyZXR1cm4gY1tjLlJJR0hUX0NFTlRFUj0wXT0iUklHSFRfQ0VOVEVSIixjW2MuUklHSFRf'@; put 'VE9QPTFdPSJSSUdIVF9UT1AiLGNbYy5SSUdIVF9CT1RUT009Ml09IlJJR0hUX0JPVFRPTSIsY1tjLlRPUF9DRU5URVI9M109IlRPUF9DRU5URVIiLGNbYy5UT1BfUklHSFQ9NF09IlRPUF9SSUdIVCIsY1tjLlRPUF9MRUZUPTVdPSJUT1BfTEVGVCIsY1tjLkJPVFRPTV9DRU5URVI9Nl09IkJP'@; put 'VFRPTV9DRU5URVIiLGNbYy5CT1RUT01fUklHSFQ9N109IkJPVFRPTV9SSUdIVCIsY1tjLkJPVFRPTV9MRUZUPThdPSJCT1RUT01fTEVGVCIsY1tjLkxFRlRfQ0VOVEVSPTldPSJMRUZUX0NFTlRFUiIsY1tjLkxFRlRfVE9QPTEwXT0iTEVGVF9UT1AiLGNbYy5MRUZUX0JPVFRPTT0xMV09IkxF'@; put 'RlRfQk9UVE9NIixjfShUaXx8e30pO2NsYXNzIExVZXtjb25zdHJ1Y3RvcihsKXt0aGlzLmVsZW1lbnQ9bCx0aGlzLmJvdW5kT25TY3JvbGxMaXN0ZW5lcj10aGlzLmVtaXRTY3JvbGxFdmVudC5iaW5kKHRoaXMpLHRoaXMuc2Nyb2xsYWJsZUVsZW1lbnRzPVtdLGwuc3R5bGUucG9zaXRpb249'@; put 'ImFic29sdXRlIixsLnN0eWxlLnRvcD0wLGwuc3R5bGUuYm90dG9tPSJhdXRvIixsLnN0eWxlLmxlZnQ9MCxsLnN0eWxlLnJpZ2h0PSJhdXRvIn1hbmNob3IobCxhLGQse29mZnNldFg6aD0wLG9mZnNldFk6Zj0wLHVzZUFuY2hvclBhcmVudDp2PSExfT17fSl7dGhpcy5hZGRTY3JvbGxFdmVu'@; put 'dExpc3RlbmVycyhsKSx2JiYobD1sLnBhcmVudE5vZGUpLGwuc3R5bGUucG9zaXRpb249InN0YXRpYyI7Y29uc3QgTT1sLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEk9dGhpcy5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2xldCBHPU0ubGVmdC1JLmxlZnQraCxyZT1NLnRvcC1J'@; put 'LnRvcCtmO3N3aXRjaChhKXtjYXNlIFRpLkxFRlRfVE9QOmNhc2UgVGkuVE9QX0xFRlQ6YnJlYWs7Y2FzZSBUaS5UT1BfQ0VOVEVSOkcrPU0ud2lkdGgvMjticmVhaztjYXNlIFRpLlRPUF9SSUdIVDpjYXNlIFRpLlJJR0hUX1RPUDpHKz1NLndpZHRoO2JyZWFrO2Nhc2UgVGkuTEVGVF9CT1RU'@; put 'T006Y2FzZSBUaS5CT1RUT01fTEVGVDpyZSs9TS5oZWlnaHQ7YnJlYWs7Y2FzZSBUaS5CT1RUT01fQ0VOVEVSOnJlKz1NLmhlaWdodCxHKz1NLndpZHRoLzI7YnJlYWs7Y2FzZSBUaS5CT1RUT01fUklHSFQ6Y2FzZSBUaS5SSUdIVF9CT1RUT006cmUrPU0uaGVpZ2h0LEcrPU0ud2lkdGg7YnJl'@; put 'YWs7Y2FzZSBUaS5MRUZUX0NFTlRFUjpyZSs9TS5oZWlnaHQvMjticmVhaztjYXNlIFRpLlJJR0hUX0NFTlRFUjpyZSs9TS5oZWlnaHQvMixHKz1NLndpZHRofXN3aXRjaChkKXtjYXNlIFRpLkxFRlRfVE9QOmNhc2UgVGkuVE9QX0xFRlQ6YnJlYWs7Y2FzZSBUaS5UT1BfQ0VOVEVSOkctPUku'@; put 'd2lkdGgvMjticmVhaztjYXNlIFRpLlRPUF9SSUdIVDpjYXNlIFRpLlJJR0hUX1RPUDpHLT1JLndpZHRoO2JyZWFrO2Nhc2UgVGkuTEVGVF9CT1RUT006Y2FzZSBUaS5CT1RUT01fTEVGVDpyZS09SS5oZWlnaHQ7YnJlYWs7Y2FzZSBUaS5CT1RUT01fQ0VOVEVSOnJlLT1JLmhlaWdodCxHLT1J'@; put 'LndpZHRoLzI7YnJlYWs7Y2FzZSBUaS5CT1RUT01fUklHSFQ6Y2FzZSBUaS5SSUdIVF9CT1RUT006cmUtPUkuaGVpZ2h0LEctPUkud2lkdGg7YnJlYWs7Y2FzZSBUaS5MRUZUX0NFTlRFUjpyZS09SS5oZWlnaHQvMjticmVhaztjYXNlIFRpLlJJR0hUX0NFTlRFUjpyZS09SS5oZWlnaHQvMixH'@; put 'LT1JLndpZHRofWNvbnN0IHVlPWdldENvbXB1dGVkU3R5bGUodGhpcy5lbGVtZW50KSx5ZT1wYXJzZUludCh1ZS5tYXJnaW5MZWZ0LDEwKSxFZT1wYXJzZUludCh1ZS5tYXJnaW5SaWdodCwxMCksQmU9cGFyc2VJbnQodWUubWFyZ2luVG9wLDEwKSxHZT1wYXJzZUludCh1ZS5tYXJnaW5Cb3R0'@; put 'b20sMTApO3N3aXRjaChhKXtjYXNlIFRpLkxFRlRfVE9QOmNhc2UgVGkuVE9QX0xFRlQ6Y2FzZSBUaS5UT1BfUklHSFQ6Y2FzZSBUaS5SSUdIVF9UT1A6KGQ9PT1UaS5CT1RUT01fUklHSFR8fGQ9PT1UaS5SSUdIVF9CT1RUT00pJiYocmUtPUdlLEctPUVlKSwoZD09PVRpLkJPVFRPTV9MRUZU'@; put 'fHxkPT09VGkuTEVGVF9CT1RUT00pJiYocmUtPUJlLEcrPXllKSwoZD09PVRpLlRPUF9MRUZUfHxkPT09VGkuTEVGVF9UT1ApJiYocmUrPUJlLEcrPXllKSwoZD09PVRpLlRPUF9SSUdIVHx8ZD09PVRpLlJJR0hUX1RPUCkmJihyZSs9QmUsRy09RWUpO2JyZWFrO2Nhc2UgVGkuTEVGVF9CT1RU'@; put 'T006Y2FzZSBUaS5CT1RUT01fTEVGVDpjYXNlIFRpLkJPVFRPTV9SSUdIVDpjYXNlIFRpLlJJR0hUX0JPVFRPTTooZD09PVRpLkJPVFRPTV9MRUZUfHxkPT09VGkuTEVGVF9CT1RUT00pJiYocmUtPUdlLEcrPXllKSwoZD09PVRpLkJPVFRPTV9SSUdIVHx8ZD09PVRpLlJJR0hUX0JPVFRPTSkm'@; put 'JihyZS09R2UsRy09RWUpLChkPT09VGkuVE9QX0xFRlR8fGQ9PT1UaS5MRUZUX1RPUCkmJihyZSs9QmUsRys9eWUpLChkPT09VGkuVE9QX1JJR0hUfHxkPT09VGkuUklHSFRfVE9QKSYmKHJlKz1CZSxHLT1FZSk7YnJlYWs7Y2FzZSBUaS5UT1BfQ0VOVEVSOnJlLT1HZSxHKz15ZSxHLT1FZTti'@; put 'cmVhaztjYXNlIFRpLkJPVFRPTV9DRU5URVI6cmUrPUJlLEcrPXllLEctPUVlO2JyZWFrO2Nhc2UgVGkuTEVGVF9DRU5URVI6cmUrPUJlLHJlLT1HZSxHLT1FZTticmVhaztjYXNlIFRpLlJJR0hUX0NFTlRFUjpyZSs9QmUscmUtPUdlLEcrPXllfXJldHVybiB0aGlzLmVsZW1lbnQuc3R5bGUu'@; put 'dHJhbnNmb3JtPWB0cmFuc2xhdGVYKCR7TWF0aC5yb3VuZChHKX1weCkgdHJhbnNsYXRlWSgke01hdGgucm91bmQocmUpfXB4KWAsdGhpcy5fc2Nyb2xsLmFzT2JzZXJ2YWJsZSgpfXJlbGVhc2UoKXt0aGlzLmVsZW1lbnQuc3R5bGUudHJhbnNmb3JtPSIiLHRoaXMucmVtb3ZlU2Nyb2xsRXZl'@; put 'bnRMaXN0ZW5lcnMoKX1pc1Bvc2l0aW9uZWQobCl7Y29uc3QgYT1nZXRDb21wdXRlZFN0eWxlKGwpLnBvc2l0aW9uO3JldHVybiJyZWxhdGl2ZSI9PT1hfHwiYWJzb2x1dGUiPT09YXx8ImZpeGVkIj09PWF9ZW1pdFNjcm9sbEV2ZW50KCl7dGhpcy5fc2Nyb2xsLm5leHQoKX1hZGRTY3JvbGxF'@; put 'dmVudExpc3RlbmVycyhsKXt0aGlzLl9zY3JvbGw9bmV3IEduO2NvbnN0IGE9bDtsZXQgZD1sO2Zvcig7ZCYmZCE9PWRvY3VtZW50JiYodGhpcy5zY3JvbGxzKGQpJiYoZC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuYm91bmRPblNjcm9sbExpc3RlbmVyKSx0aGlzLnNjcm9sbGFi'@; put 'bGVFbGVtZW50cy5wdXNoKGQpKSxkPT09YXx8IXRoaXMuaXNQb3NpdGlvbmVkKGQpKTspZD1kLnBhcmVudE5vZGV9cmVtb3ZlU2Nyb2xsRXZlbnRMaXN0ZW5lcnMoKXtmb3IoY29uc3QgbCBvZiB0aGlzLnNjcm9sbGFibGVFbGVtZW50cylsLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIs'@; put 'dGhpcy5ib3VuZE9uU2Nyb2xsTGlzdGVuZXIpO3RoaXMuc2Nyb2xsYWJsZUVsZW1lbnRzLmxlbmd0aD0wLHRoaXMuX3Njcm9sbCYmKHRoaXMuX3Njcm9sbC5jb21wbGV0ZSgpLGRlbGV0ZSB0aGlzLl9zY3JvbGwpfXNjcm9sbHMobCl7Y29uc3QgYT1nZXRDb21wdXRlZFN0eWxlKGwpO3JldHVy'@; put 'biJzY3JvbGwiPT09YS5vdmVyZmxvd1h8fCJhdXRvIj09PWEub3ZlcmZsb3dYfHwic2Nyb2xsIj09PWEub3ZlcmZsb3dZfHwiYXV0byI9PT1hLm92ZXJmbG93WX19Y29uc3QgYWRlPSJpcy1vZmYtc2NyZWVuIjtsZXQgalk9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQpe3RoaXMucGFy'@; put 'ZW50SG9zdD1kLHRoaXMuY2xvc2VPbk91dHNpZGVDbGljaz0hMSx0aGlzLnBvcG92ZXJPcHRpb25zPXt9LHRoaXMudXBkYXRlQW5jaG9yPSExLHRoaXMuZG9jdW1lbnRFU0NMaXN0ZW5lcj1udWxsLHRoaXMuY2xvc2VPbk91dHNpZGVDbGlja0NhbGxiYWNrPWg9Pnt0aGlzLmFuY2hvckVsZW0u'@; put 'Y29udGFpbnMoaC50YXJnZXQpfHwodGhpcy50b2dnbGVTZXJ2aWNlLm9wZW49ITEpfSx0aGlzLmVsPWEuZ2V0KFFpKSx0aGlzLnRvZ2dsZVNlcnZpY2U9YS5nZXQoc2MpLHRoaXMucmVuZGVyZXI9YS5nZXQoRXMpLHRoaXMubmdab25lPWEuZ2V0KEdhKSx0aGlzLnJlZj1hLmdldCh4byksdGhp'@; put 'cy5hbmNob3JFbGVtPWQubmF0aXZlRWxlbWVudCx0aGlzLnBvcG92ZXJJbnN0YW5jZT1uZXcgTFVlKHRoaXMuZWwubmF0aXZlRWxlbWVudCksdGhpcy5zdWJzY3JpcHRpb249dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW5DaGFuZ2UucGlwZShUMih0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbikpLnN1'@; put 'YnNjcmliZShoPT57aD8odGhpcy5hbmNob3IoKSx0aGlzLmF0dGFjaEVTQ0xpc3RlbmVyKCksdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsYWRlKSk6KHRoaXMucmVsZWFzZSgpLHRoaXMuZGV0YWNoRVNDTGlzdGVuZXIoKSx0aGlzLnJlbmRlcmVyLmFk'@; put 'ZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCxhZGUpKX0pLHRoaXMudG9nZ2xlU2VydmljZS5vcGVuJiYodGhpcy5hbmNob3IoKSx0aGlzLmF0dGFjaEVTQ0xpc3RlbmVyKCkpfW5nQWZ0ZXJWaWV3Q2hlY2tlZCgpe3RoaXMudXBkYXRlQW5jaG9yJiYodGhpcy51cGRhdGVBbmNob3I9ITEs'@; put 'dGhpcy5wb3BvdmVySW5zdGFuY2UuYW5jaG9yKHRoaXMuYW5jaG9yRWxlbSx0aGlzLmFuY2hvclBvaW50LHRoaXMucG9wb3ZlclBvaW50LHRoaXMucG9wb3Zlck9wdGlvbnMpLnN1YnNjcmliZSgoKT0+e3RoaXMudG9nZ2xlU2VydmljZS5vcGVuPSExfSksdGhpcy5hdHRhY2hPdXRzaWRlQ2xp'@; put 'Y2tMaXN0ZW5lcigpKX1uZ09uRGVzdHJveSgpe3RoaXMucmVsZWFzZSgpLHRoaXMuZGV0YWNoRVNDTGlzdGVuZXIoKSx0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfWFuY2hvcigpe3RoaXMudXBkYXRlQW5jaG9yPSEwfXJlbGVhc2UoKXt0aGlzLmRldGFjaE91dHNpZGVDbGlja0xp'@; put 'c3RlbmVyKCksdGhpcy5wb3BvdmVySW5zdGFuY2UucmVsZWFzZSgpfWF0dGFjaEVTQ0xpc3RlbmVyKCl7dGhpcy5wb3BvdmVyT3B0aW9ucy5pZ25vcmVHbG9iYWxFU0NMaXN0ZW5lcnx8dGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0aGlzLmRvY3VtZW50RVNDTGlzdGVuZXI9'@; put 'dGhpcy5yZW5kZXJlci5saXN0ZW4oImRvY3VtZW50Iiwia2V5ZG93biIsYT0+e2EmJmEua2V5JiZMMihhLmtleSk9PT1wYS5Fc2NhcGUmJnRoaXMubmdab25lLnJ1bigoKT0+e3RoaXMudG9nZ2xlU2VydmljZS5vcGVuPSExLHRoaXMucmVmLm1hcmtGb3JDaGVjaygpfSl9KX0pfWRldGFjaEVT'@; put 'Q0xpc3RlbmVyKCl7dGhpcy5kb2N1bWVudEVTQ0xpc3RlbmVyJiYodGhpcy5kb2N1bWVudEVTQ0xpc3RlbmVyKCksdGhpcy5kb2N1bWVudEVTQ0xpc3RlbmVyPW51bGwpfWF0dGFjaE91dHNpZGVDbGlja0xpc3RlbmVyKCl7dGhpcy5jbG9zZU9uT3V0c2lkZUNsaWNrJiZ0aGlzLnRvZ2dsZVNl'@; put 'cnZpY2Uub3BlbiYmZG9jdW1lbnQmJmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXImJmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmNsb3NlT25PdXRzaWRlQ2xpY2tDYWxsYmFjaywhMCl9ZGV0YWNoT3V0c2lkZUNsaWNrTGlzdGVuZXIoKXt0aGlzLmNsb3NlT25PdXRz'@; put 'aWRlQ2xpY2smJmRvY3VtZW50JiZkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyJiZkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5jbG9zZU9uT3V0c2lkZUNsaWNrQ2FsbGJhY2ssITApfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5l'@; put 'dyhhfHxjKSgkZShEbyksJGUoUWksNCkpfSxjLlx1MDI3NWRpcj1Fcih7dHlwZTpjfSksY30pKCksZzc9KCgpPT57Y2xhc3MgYyBleHRlbmRzIGpZe2NvbnN0cnVjdG9yKGEsZCxoLGYpe2lmKCFkKXRocm93IG5ldyBFcnJvcigiY2xyLWRyb3Bkb3duLW1lbnUgc2hvdWxkIG9ubHkgYmUgdXNl'@; put 'ZCBpbnNpZGUgb2YgYSBjbHItZHJvcGRvd24iKTtzdXBlcihhLGQpLGg/KHRoaXMuYW5jaG9yUG9pbnQ9VGkuUklHSFRfVE9QLHRoaXMucG9wb3ZlclBvaW50PVRpLkxFRlRfVE9QKToodGhpcy5hbmNob3JQb2ludD1UaS5CT1RUT01fTEVGVCx0aGlzLnBvcG92ZXJQb2ludD1UaS5MRUZUX1RP'@; put 'UCksdGhpcy5wb3BvdmVyT3B0aW9ucy5hbGxvd011bHRpcGxlT3Blbj0hMCx0aGlzLnBvcG92ZXJPcHRpb25zLmlnbm9yZUdsb2JhbEVTQ0xpc3RlbmVyPSEwLHRoaXMuY2xvc2VPbk91dHNpZGVDbGljaz0hMCx0aGlzLmZvY3VzSGFuZGxlcj1mfXNldCBwb3NpdGlvbihhKXtzd2l0Y2goYSl7'@; put 'Y2FzZSJ0b3AtcmlnaHQiOnRoaXMuYW5jaG9yUG9pbnQ9VGkuVE9QX1JJR0hULHRoaXMucG9wb3ZlclBvaW50PVRpLlJJR0hUX0JPVFRPTTticmVhaztjYXNlInRvcC1sZWZ0Ijp0aGlzLmFuY2hvclBvaW50PVRpLlRPUF9MRUZULHRoaXMucG9wb3ZlclBvaW50PVRpLkxFRlRfQk9UVE9NO2Jy'@; put 'ZWFrO2Nhc2UiYm90dG9tLXJpZ2h0Ijp0aGlzLmFuY2hvclBvaW50PVRpLkJPVFRPTV9SSUdIVCx0aGlzLnBvcG92ZXJQb2ludD1UaS5SSUdIVF9UT1A7YnJlYWs7Y2FzZSJib3R0b20tbGVmdCI6ZGVmYXVsdDp0aGlzLmFuY2hvclBvaW50PVRpLkJPVFRPTV9MRUZULHRoaXMucG9wb3ZlclBv'@; put 'aW50PVRpLkxFRlRfVE9QO2JyZWFrO2Nhc2UicmlnaHQtdG9wIjp0aGlzLmFuY2hvclBvaW50PVRpLlJJR0hUX1RPUCx0aGlzLnBvcG92ZXJQb2ludD1UaS5MRUZUX1RPUDticmVhaztjYXNlInJpZ2h0LWJvdHRvbSI6dGhpcy5hbmNob3JQb2ludD1UaS5SSUdIVF9CT1RUT00sdGhpcy5wb3Bv'@; put 'dmVyUG9pbnQ9VGkuTEVGVF9CT1RUT007YnJlYWs7Y2FzZSJsZWZ0LXRvcCI6dGhpcy5hbmNob3JQb2ludD1UaS5MRUZUX1RPUCx0aGlzLnBvcG92ZXJQb2ludD1UaS5SSUdIVF9UT1A7YnJlYWs7Y2FzZSJsZWZ0LWJvdHRvbSI6dGhpcy5hbmNob3JQb2ludD1UaS5MRUZUX0JPVFRPTSx0aGlz'@; put 'LnBvcG92ZXJQb2ludD1UaS5SSUdIVF9CT1RUT019fW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuZm9jdXNIYW5kbGVyLmNvbnRhaW5lcj10aGlzLmVsLm5hdGl2ZUVsZW1lbnQsdGhpcy5pdGVtcy5jaGFuZ2VzLnN1YnNjcmliZSgoKT0+dGhpcy5mb2N1c0hhbmRsZXIuYWRkQ2hpbGRyZW4o'@; put 'dGhpcy5pdGVtcy50b0FycmF5KCkpKSx0aGlzLml0ZW1zLm5vdGlmeU9uQ2hhbmdlcygpfW5nT25EZXN0cm95KCl7c3VwZXIubmdPbkRlc3Ryb3koKSx0aGlzLmZvY3VzSGFuZGxlci5yZXNldENoaWxkcmVuKCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8'@; put 'fGMpKCRlKERvKSwkZSh6TCw4KSwkZShjLDEyKSwkZShHTCkpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItZHJvcGRvd24tbWVudSJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihhLGQsaCl7aWYoMSZhJiZhcyhoLFlMLDQpLDImYSl7bGV0IGY7eWkoZj1iaSgp'@; put 'KSYmKGQuaXRlbXM9Zil9fSxob3N0VmFyczozLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmKGhyKCJyb2xlIiwibWVudSIpLFRyKCJkcm9wZG93bi1tZW51IiwhMCkpfSxpbnB1dHM6e3Bvc2l0aW9uOltWbi5Ob25lLCJjbHJQb3NpdGlvbiIsInBvc2l0aW9uIl19LGZlYXR1cmVz'@; put 'OltDYV0sbmdDb250ZW50U2VsZWN0b3JzOnlzLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoc2EoKSxXcigwKSl9LGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLG03PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZil7dGhpcy50b2dnbGVTZXJ2aWNl'@; put 'PWQsdGhpcy5pc1Jvb3RMZXZlbFRvZ2dsZT0hMCxhLnBhcmVudCYmKHRoaXMuaXNSb290TGV2ZWxUb2dnbGU9ITEpLGYudHJpZ2dlcj1oLm5hdGl2ZUVsZW1lbnR9Z2V0IGFjdGl2ZSgpe3JldHVybiB0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbn1vbkRyb3Bkb3duVHJpZ2dlckNsaWNrKGEpe3Ro'@; put 'aXMudG9nZ2xlU2VydmljZS50b2dnbGVXaXRoRXZlbnQoYSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKCRlKHNnKSwkZShzYyksJGUoUWkpLCRlKEdMKSl9LGMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsImNsckRyb3Bkb3du'@; put 'VHJpZ2dlciIsIiJdLFsiIiwiY2xyRHJvcGRvd25Ub2dnbGUiLCIiXV0saG9zdFZhcnM6MTAsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MSZhJiZGdCgiY2xpY2siLGZ1bmN0aW9uKGYpe3JldHVybiBkLm9uRHJvcGRvd25UcmlnZ2VyQ2xpY2soZil9KSwyJmEmJihocigiYXJpYS1oYXNw'@; put 'b3B1cCIsIm1lbnUiKSgiYXJpYS1leHBhbmRlZCIsZC5hY3RpdmUpLFRyKCJkcm9wZG93bi10b2dnbGUiLGQuaXNSb290TGV2ZWxUb2dnbGUpKCJkcm9wZG93bi1pdGVtIiwhZC5pc1Jvb3RMZXZlbFRvZ2dsZSkoImV4cGFuZGFibGUiLCFkLmlzUm9vdExldmVsVG9nZ2xlKSgiYWN0aXZlIixk'@; put 'LmFjdGl2ZSkpfX0pLGN9KSgpO2NvbnN0IE9VZT1be3Byb3ZpZGU6WUwsdXNlQ2xhc3M6KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCl7dGhpcy5lbD1hLHRoaXMucmVuZGVyZXI9ZCx0aGlzLnBsYXRmb3JtSWQ9aCx0aGlzLmlkPV91KCksdGhpcy5kaXNhYmxlZD0hMSxkLnNldEF0'@; put 'dHJpYnV0ZShhLm5hdGl2ZUVsZW1lbnQsImlkIix0aGlzLmlkKSxkLnNldEF0dHJpYnV0ZShhLm5hdGl2ZUVsZW1lbnQsInRhYmluZGV4IiwiLTEiKX1mb2N1cygpe2VsKHRoaXMucGxhdGZvcm1JZCkmJih0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQs'@; put 'InRhYmluZGV4IiwiMCIpLHRoaXMuZWwubmF0aXZlRWxlbWVudC5mb2N1cygpLHRoaXMuZWwubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6InNtb290aCIsYmxvY2s6Im5lYXJlc3QiLGlubGluZToibmVhcmVzdCJ9KSl9Ymx1cigpe2VsKHRoaXMucGxhdGZvcm1JZCkm'@; put 'Jih0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsInRhYmluZGV4IiwiLTEiKSx0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuYmx1cigpKX1hY3RpdmF0ZSgpe2VsKHRoaXMucGxhdGZvcm1JZCkmJnRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGljaygpfX1yZXR1'@; put 'cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKShDcihRaSksQ3IoRXMpLENyKGlzKSl9LGMuXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCl9XTtsZXQgUGI9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCl7dGhp'@; put 'cy5kcm9wZG93bj1hLHRoaXMuX2Ryb3Bkb3duU2VydmljZT1kLHRoaXMuZm9jdXNhYmxlSXRlbT1ofWdldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLmZvY3VzYWJsZUl0ZW0uZGlzYWJsZWR9c2V0IGRpc2FibGVkKGEpe3RoaXMuZm9jdXNhYmxlSXRlbS5kaXNhYmxlZD0hIWF8fCIiPT09YX1n'@; put 'ZXQgZHJvcGRvd25JdGVtSWQoKXtyZXR1cm4gdGhpcy5mb2N1c2FibGVJdGVtLmlkfXNldCBkcm9wZG93bkl0ZW1JZChhKXt0aGlzLmZvY3VzYWJsZUl0ZW0uaWQ9YX1vbkRyb3Bkb3duSXRlbUNsaWNrKCl7aWYodGhpcy5kcm9wZG93bi5pc01lbnVDbG9zYWJsZSYmIXRoaXMuZGlzYWJsZWQm'@; put 'JnRoaXMuZHJvcGRvd24udG9nZ2xlU2VydmljZS5vcGVuKXtjb25zdCBhPXRoaXMuZmluZFJvb3REcm9wZG93bigpO2EuZm9jdXNIYW5kbGVyLmZvY3VzKCksYS5mb2N1c0hhbmRsZXIuZm9jdXNCYWNrT25UcmlnZ2VyV2hlbkNsb3NlZD0hMX1zZXRUaW1lb3V0KCgpPT57dGhpcy5kcm9wZG93'@; put 'bi5pc01lbnVDbG9zYWJsZSYmIXRoaXMuZGlzYWJsZWQmJnRoaXMuX2Ryb3Bkb3duU2VydmljZS5jbG9zZU1lbnVzKCl9KX1vblNwYWNlS2V5ZG93bihhKXt0aGlzLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbklmRGlzYWJsZWQoYSl9b25FbnRlcktleWRvd24oYSl7dGhpcy5zdG9wSW1tZWRp'@; put 'YXRlUHJvcGFnYXRpb25JZkRpc2FibGVkKGEpfXN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbklmRGlzYWJsZWQoYSl7dGhpcy5kaXNhYmxlZCYmKGEucHJldmVudERlZmF1bHQoKSxhLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpKX1maW5kUm9vdERyb3Bkb3duKCl7bGV0IGE9dGhpcy5kcm9w'@; put 'ZG93bjtmb3IoO2EucGFyZW50OylhPWEucGFyZW50O3JldHVybiBhfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZShzZyksJGUoWXgpLCRlKFlMKSl9LGMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsImNsckRyb3Bkb3duSXRl'@; put 'bSIsIiJdXSxob3N0VmFyczo3LGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezEmYSYmRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBkLm9uRHJvcGRvd25JdGVtQ2xpY2soKX0pKCJrZXlkb3duLnNwYWNlIixmdW5jdGlvbihmKXtyZXR1cm4gZC5vblNwYWNlS2V5ZG93bihmKX0pKCJr'@; put 'ZXlkb3duLmVudGVyIixmdW5jdGlvbihmKXtyZXR1cm4gZC5vbkVudGVyS2V5ZG93bihmKX0pLDImYSYmKGhyKCJyb2xlIiwibWVudWl0ZW0iKSgiYXJpYS1kaXNhYmxlZCIsZC5kaXNhYmxlZCkoImlkIixkLmRyb3Bkb3duSXRlbUlkKSxUcigiZGlzYWJsZWQiLGQuZGlzYWJsZWQpKCJkcm9w'@; put 'ZG93bi1pdGVtIiwhMCkpfSxpbnB1dHM6e2Rpc2FibGVkOltWbi5Ob25lLCJjbHJEaXNhYmxlZCIsImRpc2FibGVkIl0sZHJvcGRvd25JdGVtSWQ6W1ZuLk5vbmUsImlkIiwiZHJvcGRvd25JdGVtSWQiXX0sZmVhdHVyZXM6W3VhKFtPVWVdKV19KSxjfSkoKSx6WT0oKCk9PntjbGFzcyBje31y'@; put 'ZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9QWkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPUFyKHtpbXBvcnRzOltMYSxGMixUb119KSxjfSkoKSxVWT0oKCk9PntjbGFzcyBje3NldCB0cmlnZ2VyRWwoYSl7dGhpcy5fdHJpZ2dlckVs'@; put 'PWF9Zm9jdXNUcmlnZ2VyKCl7dGhpcy5fdHJpZ2dlckVsJiZ0aGlzLl90cmlnZ2VyRWwuZm9jdXMoKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCksWlk9'@; put 'KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2lkPW5ldyBHbn1nZXQgaWQoKXtyZXR1cm4gdGhpcy5faWQuYXNPYnNlcnZhYmxlKCl9c2V0SWQoYSl7dGhpcy5faWQubmV4dChhKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUw'@; put 'Mjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCksJEw9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmLHYsTSl7dGhpcy50b2dnbGVTZXJ2aWNlPWEsdGhpcy5lbD1kLHRoaXMuc2lnbnBvc3RJZFNlcnZpY2U9aCx0aGlzLnNpZ25wb3N0Rm9jdXNN'@; put 'YW5hZ2VyPWYsdGhpcy5wbGF0Zm9ybUlkPU0sdGhpcy5hcmlhRXhwYW5kZWQ9ITEsdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMuZG9jdW1lbnQ9dn1uZ09uSW5pdCgpe3RoaXMuc2lnbnBvc3RGb2N1c01hbmFnZXIudHJpZ2dlckVsPXRoaXMuZWwubmF0aXZlRWxlbWVudCx0aGlzLnN1YnNj'@; put 'cmlwdGlvbnMucHVzaCh0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbkNoYW5nZS5zdWJzY3JpYmUoYT0+e3RoaXMuYXJpYUV4cGFuZGVkPWE7Y29uc3QgZD10aGlzLmlzT3Blbjt0aGlzLmlzT3Blbj1hLCF0aGlzLmlzT3BlbiYmZCYmdGhpcy5mb2N1c09uQ2xvc2UoKX0pLHRoaXMuc2lnbnBvc3RJ'@; put 'ZFNlcnZpY2UuaWQuc3Vic2NyaWJlKGE9PnRoaXMuYXJpYUNvbnRyb2w9YSkpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goYT0+YS51bnN1YnNjcmliZSgpKX1vblNpZ25wb3N0VHJpZ2dlckNsaWNrKGEpe3RoaXMudG9nZ2xlU2VydmljZS50b2dnbGVXaXRoRXZl'@; put 'bnQoYSl9Zm9jdXNPbkNsb3NlKCl7ZWwodGhpcy5wbGF0Zm9ybUlkKSYmIXRoaXMuaXNPcGVuJiZ0aGlzLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT10aGlzLmRvY3VtZW50LmJvZHkmJnRoaXMuc2lnbnBvc3RGb2N1c01hbmFnZXIuZm9jdXNUcmlnZ2VyKCl9fXJldHVybiBjLlx1MDI3NWZh'@; put 'Yz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKCRlKHNjKSwkZShRaSksJGUoWlkpLCRlKFVZKSwkZShtbyksJGUoaXMpKX0sYy5cdTAyNzVkaXI9RXIoe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwiY2xyU2lnbnBvc3RUcmlnZ2VyIiwiIl1dLGhvc3RBdHRyczpbMSwic2lnbnBvc3QtdHJp'@; put 'Z2dlciJdLGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MSZhJiZGdCgiY2xpY2siLGZ1bmN0aW9uKGYpe3JldHVybiBkLm9uU2lnbnBvc3RUcmlnZ2VyQ2xpY2soZil9KSwyJmEmJihocigiYXJpYS1leHBhbmRlZCIsZC5hcmlhRXhwYW5kZWQpKCJhcmlhLWNvbnRyb2xz'@; put 'IixkLmFyaWFDb250cm9sKSxUcigiYWN0aXZlIixkLmlzT3BlbikpfX0pLGN9KSgpLEtMPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5jb21tb25TdHJpbmdzPWEsdGhpcy51c2VDdXN0b21UcmlnZ2VyPSExfXNldCBjdXN0b21UcmlnZ2VyKGEpe3RoaXMudXNlQ3VzdG9tVHJp'@; put 'Z2dlcj0hIWF9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKCRlKHRvKSl9LGMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1zaWducG9zdCJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihhLGQsaCl7aWYoMSZhJiZhcyhoLCRM'@; put 'LDUpLDImYSl7bGV0IGY7eWkoZj1iaSgpKSYmKGQuY3VzdG9tVHJpZ2dlcj1mLmZpcnN0KX19LGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZUcigic2lnbnBvc3QiLCEwKX0saW5wdXRzOntzaWducG9zdFRyaWdnZXJBcmlhTGFiZWw6W1ZuLk5vbmUsImNsclNp'@; put 'Z25wb3N0VHJpZ2dlckFyaWFMYWJlbCIsInNpZ25wb3N0VHJpZ2dlckFyaWFMYWJlbCJdfSxmZWF0dXJlczpbdWEoW1VZLFpZXSkseWQoW2FnXSldLG5nQ29udGVudFNlbGVjdG9yczp5cyxkZWNsczoyLHZhcnM6MSxjb25zdHM6W1s0LCJuZ0lmIl0sWyJ0eXBlIiwiYnV0dG9uIiwiY2xyU2ln'@; put 'bnBvc3RUcmlnZ2VyIiwiIiwxLCJzaWducG9zdC1hY3Rpb24iLCJidG4iLCJidG4tc20iLCJidG4taWNvbiIsImJ0bi1saW5rIl0sWyJzaGFwZSIsImluZm8tY2lyY2xlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoc2EoKSxndCgwLGpIZSwzLDIsIm5nLWNvbnRhaW5lciIsMCks'@; put 'V3IoMSkpLDImYSYmTWUoIm5nSWYiLCFkLnVzZUN1c3RvbVRyaWdnZXIpfSxkZXBlbmRlbmNpZXM6W2JhLGVvLCRMXSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKTtjb25zdCBQVWU9eyJ0b3AtbGVmdCI6e2FuY2hvclBvaW50OlRpLlRPUF9DRU5URVIscG9wb3ZlclBvaW50OlRpLkJPVFRPTV9S'@; put 'SUdIVCxvZmZzZXRZOi0xNixvZmZzZXRYOjB9LCJ0b3AtbWlkZGxlIjp7YW5jaG9yUG9pbnQ6VGkuVE9QX0NFTlRFUixwb3BvdmVyUG9pbnQ6VGkuQk9UVE9NX0NFTlRFUixvZmZzZXRZOi0xNixvZmZzZXRYOjB9LCJ0b3AtcmlnaHQiOnthbmNob3JQb2ludDpUaS5UT1BfQ0VOVEVSLHBvcG92'@; put 'ZXJQb2ludDpUaS5CT1RUT01fTEVGVCxvZmZzZXRZOi0xNixvZmZzZXRYOjB9LCJyaWdodC10b3AiOnthbmNob3JQb2ludDpUaS5SSUdIVF9DRU5URVIscG9wb3ZlclBvaW50OlRpLkxFRlRfQk9UVE9NLG9mZnNldFk6MCxvZmZzZXRYOjE2fSwicmlnaHQtbWlkZGxlIjp7YW5jaG9yUG9pbnQ6'@; put 'VGkuUklHSFRfQ0VOVEVSLHBvcG92ZXJQb2ludDpUaS5MRUZUX0NFTlRFUixvZmZzZXRZOjAsb2Zmc2V0WDoxNn0sInJpZ2h0LWJvdHRvbSI6e2FuY2hvclBvaW50OlRpLlJJR0hUX0NFTlRFUixwb3BvdmVyUG9pbnQ6VGkuTEVGVF9UT1Asb2Zmc2V0WTowLG9mZnNldFg6MTZ9LCJib3R0b20t'@; put 'cmlnaHQiOnthbmNob3JQb2ludDpUaS5CT1RUT01fQ0VOVEVSLHBvcG92ZXJQb2ludDpUaS5UT1BfTEVGVCxvZmZzZXRZOjE2LG9mZnNldFg6MH0sImJvdHRvbS1taWRkbGUiOnthbmNob3JQb2ludDpUaS5CT1RUT01fQ0VOVEVSLHBvcG92ZXJQb2ludDpUaS5UT1BfQ0VOVEVSLG9mZnNldFk6'@; put 'MTYsb2Zmc2V0WDowfSwiYm90dG9tLWxlZnQiOnthbmNob3JQb2ludDpUaS5CT1RUT01fQ0VOVEVSLHBvcG92ZXJQb2ludDpUaS5UT1BfUklHSFQsb2Zmc2V0WToxNixvZmZzZXRYOjB9LCJsZWZ0LWJvdHRvbSI6e2FuY2hvclBvaW50OlRpLkxFRlRfQ0VOVEVSLHBvcG92ZXJQb2ludDpUaS5S'@; put 'SUdIVF9UT1Asb2Zmc2V0WTowLG9mZnNldFg6LTE2fSwibGVmdC1taWRkbGUiOnthbmNob3JQb2ludDpUaS5MRUZUX0NFTlRFUixwb3BvdmVyUG9pbnQ6VGkuUklHSFRfQ0VOVEVSLG9mZnNldFk6MCxvZmZzZXRYOi0xNn0sImxlZnQtdG9wIjp7YW5jaG9yUG9pbnQ6VGkuTEVGVF9DRU5URVIs'@; put 'cG9wb3ZlclBvaW50OlRpLlJJR0hUX0JPVFRPTSxvZmZzZXRZOjAsb2Zmc2V0WDotMTZ9LGRlZmF1bHQ6e2FuY2hvclBvaW50OlRpLlJJR0hUX0NFTlRFUixwb3BvdmVyUG9pbnQ6VGkuTEVGVF9DRU5URVIsb2Zmc2V0WTowLG9mZnNldFg6MTZ9fSxGVWU9WyJ0b3AtbGVmdCIsInRvcC1taWRk'@; put 'bGUiLCJ0b3AtcmlnaHQiLCJyaWdodC10b3AiLCJyaWdodC1taWRkbGUiLCJyaWdodC1ib3R0b20iLCJib3R0b20tcmlnaHQiLCJib3R0b20tbWlkZGxlIiwiYm90dG9tLWxlZnQiLCJsZWZ0LWJvdHRvbSIsImxlZnQtbWlkZGxlIiwibGVmdC10b3AiXTtsZXQgc2RlPSgoKT0+e2NsYXNzIGMg'@; put 'ZXh0ZW5kcyBqWXtjb25zdHJ1Y3RvcihhLGQsaCxmLHYsTSxJKXtpZihzdXBlcihhLGQpLHRoaXMuY29tbW9uU3RyaW5ncz1oLHRoaXMuc2lnbnBvc3RGb2N1c01hbmFnZXI9dix0aGlzLnBsYXRmb3JtSWQ9TSx0aGlzLnNpZ25wb3N0Q29udGVudElkPV91KCksIWQpdGhyb3cgbmV3IEVycm9y'@; put 'KCJjbHItc2lnbnBvc3QtY29udGVudCBzaG91bGQgb25seSBiZSB1c2VkIGluc2lkZSBvZiBhIGNsci1zaWducG9zdCIpO3RoaXMucG9zaXRpb249InJpZ2h0LW1pZGRsZSIsdGhpcy5jbG9zZU9uT3V0c2lkZUNsaWNrPSEwLGYuc2V0SWQodGhpcy5zaWducG9zdENvbnRlbnRJZCksdGhpcy5k'@; put 'b2N1bWVudD1JfWdldCBwb3NpdGlvbigpe3JldHVybiB0aGlzLl9wb3NpdGlvbn1zZXQgcG9zaXRpb24oYSl7dGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsdGhpcy5wb3NpdGlvbiksdGhpcy5fcG9zaXRpb249YSYmRlVlLmluZGV4T2YoYSk+LTE/YToi'@; put 'cmlnaHQtbWlkZGxlIix0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCx0aGlzLnBvc2l0aW9uKTtjb25zdCBkPVBVZVt0aGlzLnBvc2l0aW9uXTt0aGlzLmFuY2hvclBvaW50PWQuYW5jaG9yUG9pbnQsdGhpcy5wb3BvdmVyUG9pbnQ9ZC5wb3BvdmVyUG9pbnQs'@; put 'dGhpcy5wb3BvdmVyT3B0aW9ucy5vZmZzZXRZPWQub2Zmc2V0WSx0aGlzLnBvcG92ZXJPcHRpb25zLm9mZnNldFg9ZC5vZmZzZXRYfWNsb3NlKCl7dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW49ITF9bmdPbkRlc3Ryb3koKXtzdXBlci5uZ09uRGVzdHJveSgpLGVsKHRoaXMucGxhdGZvcm1JZCkm'@; put 'JnRoaXMuZWwubmF0aXZlRWxlbWVudC5jb250YWlucyh0aGlzLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpJiZ0aGlzLnNpZ25wb3N0Rm9jdXNNYW5hZ2VyLmZvY3VzVHJpZ2dlcigpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZShEbyksJGUoekws'@; put 'OCksJGUodG8pLCRlKFpZKSwkZShVWSksJGUoaXMpLCRlKG1vKSl9LGMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1zaWducG9zdC1jb250ZW50Il1dLGhvc3RWYXJzOjMsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiYob3AoImlkIixkLnNpZ25wb3N0Q29u'@; put 'dGVudElkKSxUcigic2lnbnBvc3QtY29udGVudCIsITApKX0saW5wdXRzOntzaWducG9zdENsb3NlQXJpYUxhYmVsOltWbi5Ob25lLCJjbHJTaWducG9zdENsb3NlQXJpYUxhYmVsIiwic2lnbnBvc3RDbG9zZUFyaWFMYWJlbCJdLHBvc2l0aW9uOltWbi5Ob25lLCJjbHJQb3NpdGlvbiIsInBv'@; put 'c2l0aW9uIl19LGZlYXR1cmVzOltDYV0sbmdDb250ZW50U2VsZWN0b3JzOlVIZSxkZWNsczo4LHZhcnM6Myxjb25zdHM6W1sxLCJzaWducG9zdC13cmFwIl0sWzEsInBvcG92ZXItcG9pbnRlciJdLFsxLCJzaWducG9zdC1jb250ZW50LWhlYWRlciJdLFsidHlwZSIsImJ1dHRvbiIsMSwic2ln'@; put 'bnBvc3QtYWN0aW9uIiwiY2xvc2UiLDMsImNsaWNrIl0sWyJzaGFwZSIsIndpbmRvdy1jbG9zZSJdLFsidGFiaW5kZXgiLCIwIiwxLCJzaWducG9zdC1jb250ZW50LWJvZHkiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihzYSh6SGUpLGRlKDAsImRpdiIsMCksV3QoMSwiZGl2Iiwx'@; put 'KSxkZSgyLCJkaXYiLDIpLFdyKDMpLGRlKDQsImJ1dHRvbiIsMyksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBkLmNsb3NlKCl9KSxXdCg1LCJjZHMtaWNvbiIsNCksaGUoKSgpLGRlKDYsImRpdiIsNSksV3IoNywxKSxoZSgpKCkpLDImYSYmKGZlKDQpLGhyKCJhcmlhLWxhYmVsIixk'@; put 'LnNpZ25wb3N0Q2xvc2VBcmlhTGFiZWx8fGQuY29tbW9uU3RyaW5ncy5rZXlzLnNpZ25wb3N0Q2xvc2UpKCJhcmlhLWNvbnRyb2xzIixkLnNpZ25wb3N0Q29udGVudElkKSxmZSgpLGhyKCJ0aXRsZSIsZC5jb21tb25TdHJpbmdzLmtleXMuY2xvc2UpKX0sZGVwZW5kZW5jaWVzOltlb10sZW5j'@; put 'YXBzdWxhdGlvbjoyfSksY30pKCksSFVlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXtFby5hZGRJY29ucyhDeCxHT2UpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9QWkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPUFyKHtp'@; put 'bXBvcnRzOltMYSxUbyxaTCxGMl19KSxjfSkoKSxXWT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5faWQ9bmV3IEdufWdldCBpZCgpe3JldHVybiB0aGlzLl9pZC5hc09ic2VydmFibGUoKX11cGRhdGVJZChhKXt0aGlzLl9pZC5uZXh0KGEpfX1yZXR1cm4gYy5cdTAyNzVmYWM9'@; put 'ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSxZWT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMudG9nZ2xlU2VydmljZT1hfW9uTW91c2VFbnRlclRyaWdnZXIoKXt0aGlzLm1v'@; put 'dXNlT3ZlclRyaWdnZXI9ITAsdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW49ITB9b25Nb3VzZUxlYXZlVHJpZ2dlcigpe3RoaXMubW91c2VPdmVyVHJpZ2dlcj0hMSx0aGlzLmhpZGVJZk1vdXNlT3V0KCl9b25Nb3VzZUVudGVyQ29udGVudCgpe3RoaXMubW91c2VPdmVyQ29udGVudD0hMH1vbk1v'@; put 'dXNlTGVhdmVDb250ZW50KCl7dGhpcy5tb3VzZU92ZXJDb250ZW50PSExLHRoaXMuaGlkZUlmTW91c2VPdXQoKX1oaWRlSWZNb3VzZU91dCgpe3NldFRpbWVvdXQoKCk9PnshdGhpcy5tb3VzZU92ZXJUcmlnZ2VyJiYhdGhpcy5tb3VzZU92ZXJDb250ZW50JiYodGhpcy50b2dnbGVTZXJ2aWNl'@; put 'Lm9wZW49ITEpfSwwKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoQ3Ioc2MpKX0sYy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSx2Nz0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVu'@; put 'Y3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLXRvb2x0aXAiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsyJmEmJlRyKCJ0b29sdGlwIiwhMCl9LGZlYXR1cmVzOlt1YShbV1ksWVldKSx5ZChb'@; put 'YWddKV0sbmdDb250ZW50U2VsZWN0b3JzOnlzLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoc2EoKSxXcigwKSl9LGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpO2NvbnN0IFZVZT1bImJvdHRvbS1sZWZ0IiwiYm90dG9tLXJpZ2h0IiwidG9wLWxlZnQiLCJ0b3At'@; put 'cmlnaHQiLCJyaWdodCIsImxlZnQiXSxCVWU9WyJ4cyIsInNtIiwibWQiLCJsZyJdO2xldCB5Nz0oKCk9PntjbGFzcyBjIGV4dGVuZHMgall7Y29uc3RydWN0b3IoYSxkLGgsZil7aWYoc3VwZXIoYSxkKSx0aGlzLnRvb2x0aXBJZFNlcnZpY2U9aCx0aGlzLnRvb2x0aXBNb3VzZVNlcnZpY2U9'@; put 'ZiwhZCl0aHJvdyBuZXcgRXJyb3IoImNsci10b29sdGlwLWNvbnRlbnQgc2hvdWxkIG9ubHkgYmUgdXNlZCBpbnNpZGUgb2YgYSBjbHItdG9vbHRpcCIpO3RoaXMuaWQ9X3UoKX1nZXQgaWQoKXtyZXR1cm4gdGhpcy5faWR9c2V0IGlkKGEpe2NvbnN0IGQ9YXx8IiI7dGhpcy5faWQ9ZCx0aGlz'@; put 'LnRvb2x0aXBJZFNlcnZpY2UudXBkYXRlSWQoZCl9Z2V0IHBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuX3Bvc2l0aW9ufXNldCBwb3NpdGlvbihhKXtjb25zdCBkPXRoaXMuX3Bvc2l0aW9uLGg9VlVlLmluY2x1ZGVzKGEpP2E6InJpZ2h0Ijtzd2l0Y2godGhpcy5fcG9zaXRpb249aCx0aGlzLnVw'@; put 'ZGF0ZUNzc0NsYXNzKHtvbGRDbGFzczpgdG9vbHRpcC0ke2R9YCxuZXdDbGFzczpgdG9vbHRpcC0ke2h9YH0pLGgpe2Nhc2UidG9wLXJpZ2h0Ijp0aGlzLmFuY2hvclBvaW50PVRpLlRPUF9DRU5URVIsdGhpcy5wb3BvdmVyUG9pbnQ9VGkuTEVGVF9CT1RUT007YnJlYWs7Y2FzZSJ0b3AtbGVm'@; put 'dCI6dGhpcy5hbmNob3JQb2ludD1UaS5UT1BfQ0VOVEVSLHRoaXMucG9wb3ZlclBvaW50PVRpLlJJR0hUX0JPVFRPTTticmVhaztjYXNlImJvdHRvbS1yaWdodCI6dGhpcy5hbmNob3JQb2ludD1UaS5CT1RUT01fQ0VOVEVSLHRoaXMucG9wb3ZlclBvaW50PVRpLkxFRlRfVE9QO2JyZWFrO2Nh'@; put 'c2UiYm90dG9tLWxlZnQiOnRoaXMuYW5jaG9yUG9pbnQ9VGkuQk9UVE9NX0NFTlRFUix0aGlzLnBvcG92ZXJQb2ludD1UaS5SSUdIVF9UT1A7YnJlYWs7Y2FzZSJyaWdodCI6dGhpcy5hbmNob3JQb2ludD1UaS5SSUdIVF9DRU5URVIsdGhpcy5wb3BvdmVyUG9pbnQ9VGkuTEVGVF9UT1A7YnJl'@; put 'YWs7Y2FzZSJsZWZ0Ijp0aGlzLmFuY2hvclBvaW50PVRpLkxFRlRfQ0VOVEVSLHRoaXMucG9wb3ZlclBvaW50PVRpLlJJR0hUX1RPUDticmVhaztkZWZhdWx0OiFmdW5jdGlvbiBOVWUoYyl7dGhyb3cgbmV3IEVycm9yKGBVbmhhbmRsZWQgdmFsdWU6ICR7Y31gKX0oaCl9fWdldCBzaXplKCl7'@; put 'cmV0dXJuIHRoaXMuX3NpemV9c2V0IHNpemUoYSl7Y29uc3QgZD10aGlzLl9zaXplLGg9QlVlLmluY2x1ZGVzKGEpP2E6InNtIjt0aGlzLl9zaXplPWgsdGhpcy51cGRhdGVDc3NDbGFzcyh7b2xkQ2xhc3M6YHRvb2x0aXAtJHtkfWAsbmV3Q2xhc3M6YHRvb2x0aXAtJHtofWB9KX1uZ09uSW5p'@; put 'dCgpe3RoaXMuc2l6ZT10aGlzLnNpemV8fCJzbSIsdGhpcy5wb3NpdGlvbj10aGlzLnBvc2l0aW9ufHwicmlnaHQifW9uTW91c2VFbnRlcigpe3RoaXMudG9vbHRpcE1vdXNlU2VydmljZS5vbk1vdXNlRW50ZXJDb250ZW50KCl9b25Nb3VzZUxlYXZlKCl7dGhpcy50b29sdGlwTW91c2VTZXJ2'@; put 'aWNlLm9uTW91c2VMZWF2ZUNvbnRlbnQoKX11cGRhdGVDc3NDbGFzcyh7b2xkQ2xhc3M6YSxuZXdDbGFzczpkfSl7dGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsYSksdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsZCl9'@; put 'fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKCRlKERvKSwkZSh6TCw4KSwkZShXWSksJGUoWVkpKX0sYy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLXRvb2x0aXAtY29udGVudCJdXSxob3N0VmFyczo2LGhvc3RCaW5kaW5nczpm'@; put 'dW5jdGlvbihhLGQpezEmYSYmRnQoIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGQub25Nb3VzZUVudGVyKCl9KSgibW91c2VsZWF2ZSIsZnVuY3Rpb24oKXtyZXR1cm4gZC5vbk1vdXNlTGVhdmUoKX0pLDImYSYmKG9wKCJpZCIsZC5pZCksaHIoInJvbGUiLCJ0b29sdGlwIiksTjEo'@; put 'Im9wYWNpdHkiLDEpLFRyKCJ0b29sdGlwLWNvbnRlbnQiLCEwKSl9LGlucHV0czp7aWQ6ImlkIixwb3NpdGlvbjpbVm4uTm9uZSwiY2xyUG9zaXRpb24iLCJwb3NpdGlvbiJdLHNpemU6W1ZuLk5vbmUsImNsclNpemUiLCJzaXplIl19LGZlYXR1cmVzOltDYV0sbmdDb250ZW50U2VsZWN0b3Jz'@; put 'OnlzLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoc2EoKSxXcigwKSl9LGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLGI3PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgpe3RoaXMudG9nZ2xlU2VydmljZT1hLHRoaXMudG9vbHRpcE1vdXNlU2Vydmlj'@; put 'ZT1oLHRoaXMuc3Vicz1bXSx0aGlzLnN1YnMucHVzaChkLmlkLnN1YnNjcmliZShmPT50aGlzLmFyaWFEZXNjcmliZWRCeT1mKSl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnMuZm9yRWFjaChhPT5hLnVuc3Vic2NyaWJlKCkpfXNob3dUb29sdGlwKCl7dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW49'@; put 'ITB9aGlkZVRvb2x0aXAoKXt0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbj0hMX1vbk1vdXNlRW50ZXIoKXt0aGlzLnRvb2x0aXBNb3VzZVNlcnZpY2Uub25Nb3VzZUVudGVyVHJpZ2dlcigpfW9uTW91c2VMZWF2ZSgpe3RoaXMudG9vbHRpcE1vdXNlU2VydmljZS5vbk1vdXNlTGVhdmVUcmlnZ2Vy'@; put 'KCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKCRlKHNjKSwkZShXWSksJGUoWVkpKX0sYy5cdTAyNzVkaXI9RXIoe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwiY2xyVG9vbHRpcFRyaWdnZXIiLCIiXV0saG9zdEF0dHJzOlsidGFiaW5kZXgiLCIwIl0s'@; put 'aG9zdFZhcnM6NCxob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsxJmEmJkZ0KCJmb2N1cyIsZnVuY3Rpb24oKXtyZXR1cm4gZC5zaG93VG9vbHRpcCgpfSkoImJsdXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGQuaGlkZVRvb2x0aXAoKX0pKCJtb3VzZWVudGVyIixmdW5jdGlvbigpe3JldHVybiBk'@; put 'Lm9uTW91c2VFbnRlcigpfSkoIm1vdXNlbGVhdmUiLGZ1bmN0aW9uKCl7cmV0dXJuIGQub25Nb3VzZUxlYXZlKCl9KSwyJmEmJihocigiYXJpYS1kZXNjcmliZWRieSIsZC5hcmlhRGVzY3JpYmVkQnkpKCJyb2xlIiwiYnV0dG9uIiksVHIoInRvb2x0aXAtdHJpZ2dlciIsITApKX19KSxjfSko'@; put 'KSxqVWU9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1Bcih7aW1wb3J0czpbTGEsRjIsVG9dfSksY30pKCkselVlPSgoKT0+e2NsYXNzIGN7fXJldHVybiBj'@; put 'Llx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9QXIoe2ltcG9ydHM6W3pZLEhVZSxqVWVdfSksY30pKCk7dmFyIF83PWZ1bmN0aW9uKGMpe3JldHVybiBjLlZFUlRJQ0FMPSJ2ZXJ0aWNhbCIsYy5IT1JJ'@; put 'Wk9OVEFMPSJob3Jpem9udGFsIixjLkNPTVBBQ1Q9ImNvbXBhY3QiLGN9KF83fHx7fSk7bGV0IE1wPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLm1pbkxhYmVsU2l6ZT0xLHRoaXMubWF4TGFiZWxTaXplPTEyLHRoaXMubGF5b3V0PV83LkhPUklaT05UQUwsdGhpcy5sYXlvdXRW'@; put 'YWx1ZXM9T2JqZWN0LmtleXMoXzcpLm1hcChhPT5fN1thXSksdGhpcy5fbGFiZWxTaXplPTJ9Z2V0IGxhYmVsU2l6ZSgpe3JldHVybiB0aGlzLl9sYWJlbFNpemV9c2V0IGxhYmVsU2l6ZShhKXt0aGlzLmxhYmVsU2l6ZUlzVmFsaWQoYSkmJih0aGlzLl9sYWJlbFNpemU9YSl9Z2V0IGxheW91'@; put 'dENsYXNzKCl7cmV0dXJuYGNsci1mb3JtLSR7dGhpcy5sYXlvdXR9YH1pc1ZlcnRpY2FsKCl7cmV0dXJuIHRoaXMubGF5b3V0PT09XzcuVkVSVElDQUx9aXNIb3Jpem9udGFsKCl7cmV0dXJuIHRoaXMubGF5b3V0PT09XzcuSE9SSVpPTlRBTH1pc0NvbXBhY3QoKXtyZXR1cm4gdGhpcy5sYXlv'@; put 'dXQ9PT1fNy5DT01QQUNUfWlzVmFsaWQoYSl7cmV0dXJuIHRoaXMubGF5b3V0VmFsdWVzLmluZGV4T2YoYSk+LTF9bGFiZWxTaXplSXNWYWxpZChhKXtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihhKSYmYT49dGhpcy5taW5MYWJlbFNpemUmJmE8PXRoaXMubWF4TGFiZWxTaXplfX1yZXR1cm4g'@; put 'Yy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSxjbz0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYsdil7dGhpcy5jb250cm9sSWRTZXJ2aWNlPWEsdGhpcy5s'@; put 'YXlvdXRTZXJ2aWNlPWQsdGhpcy5uZ0NvbnRyb2xTZXJ2aWNlPWgsdGhpcy5yZW5kZXJlcj1mLHRoaXMuZWw9dix0aGlzLmVuYWJsZUdyaWQ9ITAsdGhpcy5zdWJzY3JpcHRpb25zPVtdfWdldCBsYWJlbFRleHQoKXtyZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50JiZ0aGlzLmVsLm5hdGl2'@; put 'ZUVsZW1lbnQudGV4dENvbnRlbnR9bmdPbkluaXQoKXt0aGlzLmlkQXR0cj10aGlzLmlkSW5wdXQsKHRoaXMuY29udHJvbElkU2VydmljZXx8dGhpcy5uZ0NvbnRyb2xTZXJ2aWNlKSYmdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsImNsci1jb250cm9sLWxh'@; put 'YmVsIiksdGhpcy5lbmFibGVHcmlkJiZ0aGlzLmxheW91dFNlcnZpY2UmJiF0aGlzLmxheW91dFNlcnZpY2UuaXNWZXJ0aWNhbCgpJiZ0aGlzLmVsLm5hdGl2ZUVsZW1lbnQmJnRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGFzc05hbWUuaW5kZXhPZigiY2xyLWNvbCIpPDAmJih0aGlzLnJlbmRl'@; put 'cmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwiY2xyLWNvbC0xMiIpLHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LGBjbHItY29sLW1kLSR7dGhpcy5sYXlvdXRTZXJ2aWNlLmxhYmVsU2l6ZX1gKSksdGhpcy5jb250cm9sSWRTZXJ2aWNlJiYh'@; put 'dGhpcy5mb3JBdHRyJiZ0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmNvbnRyb2xJZFNlcnZpY2UuaWRDaGFuZ2Uuc3Vic2NyaWJlKGE9Pnt0aGlzLmZvckF0dHI9YSx0aGlzLmlkQXR0cj10aGlzLmlkSW5wdXR8fGAke2F9LWxhYmVsYH0pKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2Ny'@; put 'aXB0aW9ucy5mb3JFYWNoKGE9PmEudW5zdWJzY3JpYmUoKSl9ZGlzYWJsZUdyaWQoKXt0aGlzLmVuYWJsZUdyaWQ9ITF9b25DbGljayhhKXt0aGlzLnByZXZlbnREZWZhdWx0T25TaWducG9zdFRhcmdldChhKX1wcmV2ZW50RGVmYXVsdE9uU2lnbnBvc3RUYXJnZXQoYSl7dGhpcy5zaWducG9z'@; put 'dCYmdGhpcy5zaWducG9zdC5uYXRpdmVFbGVtZW50JiZ0aGlzLnNpZ25wb3N0Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoYS50YXJnZXQpJiZhLnByZXZlbnREZWZhdWx0KCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKCRlKE1oLDgpLCRlKE1wLDgp'@; put 'LCRlKGgxLDgpLCRlKEVzKSwkZShRaSkpfSxjLlx1MDI3NWRpcj1Fcih7dHlwZTpjLHNlbGVjdG9yczpbWyJsYWJlbCJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihhLGQsaCl7aWYoMSZhJiZhcyhoLEtMLDUsUWkpLDImYSl7bGV0IGY7eWkoZj1iaSgpKSYmKGQuc2lnbnBvc3Q9Zi5maXJz'@; put 'dCl9fSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezEmYSYmRnQoImNsaWNrIixmdW5jdGlvbihmKXtyZXR1cm4gZC5vbkNsaWNrKGYpfSksMiZhJiZocigiaWQiLGQuaWRBdHRyKSgiZm9yIixkLmZvckF0dHIpfSxpbnB1dHM6e2lkSW5wdXQ6W1ZuLk5vbmUsImlkIiwi'@; put 'aWRJbnB1dCJdLGZvckF0dHI6W1ZuLk5vbmUsImZvciIsImZvckF0dHIiXX19KSxjfSkoKSxVVWU9KCgpPT57Y2xhc3MgYyBleHRlbmRzIEJZe2NvbnN0cnVjdG9yKGEsZCl7c3VwZXIoYSxkKSx0aGlzLmNvbnRyb2xJZFNlcnZpY2U9YSx0aGlzLmNvbnRhaW5lcklkU2VydmljZT1kLHRoaXMu'@; put 'Y29udHJvbElkU3VmZml4PSJzdWNjZXNzIn19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoJGUoTWgsOCksJGUocDcsOCkpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItY29udHJvbC1zdWNjZXNzIl1dLGhvc3RWYXJzOjUs'@; put 'aG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiYoaHIoImlkIixkLmlkKSxUcigiY2xyLXN1YnRleHQiLCEwKSgic3VjY2VzcyIsITApKX0sZmVhdHVyZXM6W0NhXSxuZ0NvbnRlbnRTZWxlY3RvcnM6eXMsZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihz'@; put 'YSgpLFdyKDApKX0sZW5jYXBzdWxhdGlvbjoyfSksY30pKCksRGQ9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLmxheW91dFNlcnZpY2U9YSx0aGlzLmNsYXNzTmFtZT0iIn1jb250cm9sQ2xhc3MoYT1BZC5OT05FLGQ9ITEsaD0iIil7Y29uc3QgZj1bdGhpcy5jbGFzc05hbWUs'@; put 'aF07c3dpdGNoKGEpe2Nhc2UgQWQuVkFMSUQ6Zi5wdXNoKCJjbHItc3VjY2VzcyIpO2JyZWFrO2Nhc2UgQWQuSU5WQUxJRDpmLnB1c2goImNsci1lcnJvciIpfXJldHVybiBkJiZ0aGlzLmxheW91dFNlcnZpY2UmJi0xPT09dGhpcy5jbGFzc05hbWUuaW5kZXhPZigiY2xyLWNvbCIpJiZmLnB1'@; put 'c2goYGNsci1jb2wtbWQtJHt0aGlzLmxheW91dFNlcnZpY2UubWF4TGFiZWxTaXplLXRoaXMubGF5b3V0U2VydmljZS5sYWJlbFNpemV9IGNsci1jb2wtMTJgKSxmLmpvaW4oIiAiKS50cmltKCl9aW5pdENvbnRyb2xDbGFzcyhhLGQpe2QmJmQuY2xhc3NOYW1lJiYodGhpcy5jbGFzc05hbWU9'@; put 'ZC5jbGFzc05hbWUsZC5jbGFzc05hbWUuc3BsaXQoIiAiKS5mb3JFYWNoKGY9PntmLnN0YXJ0c1dpdGgoImNsci1jb2wiKSYmYS5yZW1vdmVDbGFzcyhkLGYpfSkpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKShDcihNcCw4KSl9LGMuXHUwMjc1cHJv'@; put 'dj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCksdzc9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmKXt0aGlzLmlmQ29udHJvbFN0YXRlU2VydmljZT1hLHRoaXMubGF5b3V0U2VydmljZT1kLHRoaXMuY29udHJvbENsYXNzU2VydmljZT1oLHRoaXMubmdD'@; put 'b250cm9sU2VydmljZT1mLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChhLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKHY9Pnt0aGlzLnN0YXRlPXYsc2V0VGltZW91dCgoKT0+e3RoaXMudXBkYXRlSGVscGVycygpfSl9KSksdGhpcy5zdWJzY3JpcHRpb25z'@; put 'LnB1c2goZi5jb250cm9sQ2hhbmdlcy5zdWJzY3JpYmUodj0+e3RoaXMuY29udHJvbD12fSksZi5hZGRpdGlvbmFsQ29udHJvbHNDaGFuZ2VzLnN1YnNjcmliZSh2PT57dGhpcy5hZGRpdGlvbmFsQ29udHJvbHM9dn0pKX1nZXQgc2hvd0hlbHBlcigpe3JldHVybiEhdGhpcy5jb250cm9sSGVs'@; put 'cGVyQ29tcG9uZW50fWdldCBzaG93VmFsaWQoKXtyZXR1cm4gdGhpcy50b3VjaGVkJiZ0aGlzLnN0YXRlPT09QWQuVkFMSUQmJnRoaXMuc3VjY2Vzc01lc3NhZ2VQcmVzZW50fWdldCBzaG93SW52YWxpZCgpe3JldHVybiB0aGlzLnRvdWNoZWQmJnRoaXMuc3RhdGU9PT1BZC5JTlZBTElEJiZ0'@; put 'aGlzLmVycm9yTWVzc2FnZVByZXNlbnR9Z2V0IHN1Y2Nlc3NNZXNzYWdlUHJlc2VudCgpe3JldHVybiEhdGhpcy5jb250cm9sU3VjY2Vzc0NvbXBvbmVudH1nZXQgZXJyb3JNZXNzYWdlUHJlc2VudCgpe3JldHVybiEhdGhpcy5jb250cm9sRXJyb3JDb21wb25lbnR9Z2V0IHRvdWNoZWQoKXty'@; put 'ZXR1cm4hKCF0aGlzLmNvbnRyb2w/LnRvdWNoZWQmJiF0aGlzLmFkZGl0aW9uYWxDb250cm9scz8uc29tZShhPT5hLnRvdWNoZWQpKX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLnVwZGF0ZUhlbHBlcnMoKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGE9PmEu'@; put 'dW5zdWJzY3JpYmUoKSl9Y29udHJvbENsYXNzKCl7cmV0dXJuIHRoaXMuY29udHJvbENsYXNzU2VydmljZS5jb250cm9sQ2xhc3MoIXRoaXMuY29udHJvbFN1Y2Nlc3NDb21wb25lbnQmJnRoaXMuc3RhdGU9PT1BZC5WQUxJRHx8IXRoaXMudG91Y2hlZD9BZC5OT05FOnRoaXMuc3RhdGUsdGhp'@; put 'cy5hZGRHcmlkKCkpfWFkZEdyaWQoKXtyZXR1cm4gdGhpcy5sYXlvdXRTZXJ2aWNlJiYhdGhpcy5sYXlvdXRTZXJ2aWNlLmlzVmVydGljYWwoKX11cGRhdGVIZWxwZXJzKCl7dGhpcy5uZ0NvbnRyb2xTZXJ2aWNlJiZ0aGlzLm5nQ29udHJvbFNlcnZpY2Uuc2V0SGVscGVycyh7c2hvdzp0aGlz'@; put 'LnNob3dJbnZhbGlkfHx0aGlzLnNob3dIZWxwZXJ8fHRoaXMuc2hvd1ZhbGlkLHNob3dJbnZhbGlkOnRoaXMuc2hvd0ludmFsaWQsc2hvd0hlbHBlcjp0aGlzLnNob3dIZWxwZXIsc2hvd1ZhbGlkOnRoaXMuc2hvd1ZhbGlkfSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1'@; put 'cm4gbmV3KGF8fGMpKCRlKGtkKSwkZShNcCw4KSwkZShEZCksJGUoaDEpKX0sYy5cdTAyNzVkaXI9RXIoe3R5cGU6Yyxjb250ZW50UXVlcmllczpmdW5jdGlvbihhLGQsaCl7aWYoMSZhJiYoYXMoaCxjbyw1KSxhcyhoLFVVZSw1KSxhcyhoLFRVZSw1KSxhcyhoLFdMLDUpKSwyJmEpe2xldCBm'@; put 'O3lpKGY9YmkoKSkmJihkLmxhYmVsPWYuZmlyc3QpLHlpKGY9YmkoKSkmJihkLmNvbnRyb2xTdWNjZXNzQ29tcG9uZW50PWYuZmlyc3QpLHlpKGY9YmkoKSkmJihkLmNvbnRyb2xFcnJvckNvbXBvbmVudD1mLmZpcnN0KSx5aShmPWJpKCkpJiYoZC5jb250cm9sSGVscGVyQ29tcG9uZW50PWYu'@; put 'Zmlyc3QpfX19KSxjfSkoKTtjbGFzcyBYTHtjb25zdHJ1Y3RvcihsLGEsZD0wKXtpZih0aGlzLmluamVjdG9yPWEuaW5qZWN0b3IsIXRoaXMuaW5qZWN0b3IuZ2V0KGwsbnVsbCkpe2NvbnN0IGg9dGhpcy5pbmplY3Rvci5nZXQoejUpLGY9dGhpcy5pbmplY3Rvci5nZXQoUWkpO2EuY3JlYXRl'@; put 'Q29tcG9uZW50KGgucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoTVVlKSk7Y29uc3Qgdj1oLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGwpLE09W107TVtkXT1bZi5uYXRpdmVFbGVtZW50XTtjb25zdCBJPWEuY3JlYXRlQ29tcG9uZW50KHYsdm9pZCAwLHZvaWQgMCxNKTthLnJlbW92ZSgwKSx0'@; put 'aGlzLmluamVjdG9yPUkuaW5qZWN0b3J9fWdldChsLGEpe3JldHVybiB0aGlzLmluamVjdG9yLmdldChsLGEpfX1sZXQgR1k9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuX3RvdWNoZWQ9bmV3IEdufWdldCB0b3VjaGVkQ2hhbmdlKCl7cmV0dXJuIHRoaXMuX3RvdWNoZWQuYXNP'@; put 'YnNlcnZhYmxlKCl9bWFya0FzVG91Y2hlZCgpe3RoaXMuX3RvdWNoZWQubmV4dCgpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKTt2YXIgJFk9ZnVuY3Rp'@; put 'b24oYyl7cmV0dXJuIGMuRk9STT0iZm9ybSIsYy5NT0RFTD0ibW9kZWwiLGN9KCRZfHx7fSk7bGV0IEM3PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZix2LE0pe3RoaXMudmNyPWEsdGhpcy53cmFwcGVyVHlwZT1kLHRoaXMuX25nQ29udHJvbD1mLHRoaXMucmVuZGVyZXI9dix0'@; put 'aGlzLmVsPU0sdGhpcy5pbmRleD0wLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLmFkZGl0aW9uYWxEaWZmZXI9bmV3IE1hcCxoJiYodGhpcy5uZ0NvbnRyb2xTZXJ2aWNlPWguZ2V0KGgxLG51bGwpLHRoaXMuaWZDb250cm9sU3RhdGVTZXJ2aWNlPWguZ2V0KGtkLG51bGwpLHRoaXMuY29u'@; put 'dHJvbENsYXNzU2VydmljZT1oLmdldChEZCxudWxsKSx0aGlzLm1hcmtDb250cm9sU2VydmljZT1oLmdldChHWSxudWxsKSx0aGlzLmRpZmZlcnM9aC5nZXQoRU0sbnVsbCkpLHRoaXMuY29udHJvbENsYXNzU2VydmljZSYmdGhpcy5jb250cm9sQ2xhc3NTZXJ2aWNlLmluaXRDb250cm9sQ2xh'@; put 'c3ModixNLm5hdGl2ZUVsZW1lbnQpLHRoaXMubWFya0NvbnRyb2xTZXJ2aWNlJiZ0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLm1hcmtDb250cm9sU2VydmljZS50b3VjaGVkQ2hhbmdlLnN1YnNjcmliZSgoKT0+e3RoaXMubWFya0FzVG91Y2hlZCgpfSkpLHRoaXMubmdDb250cm9sU2Vy'@; put 'dmljZSYmdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5uZ0NvbnRyb2xTZXJ2aWNlLmhlbHBlcnNDaGFuZ2Uuc3Vic2NyaWJlKEk9Pnt0aGlzLnNldEFyaWFEZXNjcmliZWRCeShJKX0pKX1nZXQgaWQoKXtyZXR1cm4gdGhpcy5faWR9c2V0IGlkKGEpe3RoaXMuX2lkPWEsdGhpcy5jb250'@; put 'cm9sSWRTZXJ2aWNlJiYodGhpcy5jb250cm9sSWRTZXJ2aWNlLmlkPWEpfWdldCBoYXNBZGRpdGlvbmFsQ29udHJvbHMoKXtyZXR1cm4gdGhpcy5hZGRpdGlvbmFsRGlmZmVyLnNpemU+MH1uZ09uSW5pdCgpe3RoaXMuX2NvbnRhaW5lckluamVjdG9yPW5ldyBYTCh0aGlzLndyYXBwZXJUeXBl'@; put 'LHRoaXMudmNyLHRoaXMuaW5kZXgpLHRoaXMuY29udHJvbElkU2VydmljZT10aGlzLl9jb250YWluZXJJbmplY3Rvci5nZXQoTWgpLHRoaXMuY29udGFpbmVySWRTZXJ2aWNlPXRoaXMuX2NvbnRhaW5lckluamVjdG9yLmdldChwNyxudWxsKSx0aGlzLl9pZD90aGlzLmNvbnRyb2xJZFNlcnZp'@; put 'Y2UuaWQ9dGhpcy5faWQ6dGhpcy5faWQ9dGhpcy5jb250cm9sSWRTZXJ2aWNlLmlkLHRoaXMubmdDb250cm9sU2VydmljZSYmdGhpcy5fbmdDb250cm9sJiYodGhpcy5uZ0NvbnRyb2xTZXJ2aWNlLmNvbnRyb2w/KHRoaXMubmdDb250cm9sPXRoaXMubmdDb250cm9sU2VydmljZS5jb250cm9s'@; put 'LHRoaXMubmdDb250cm9sU2VydmljZS5hZGRBZGRpdGlvbmFsQ29udHJvbCh0aGlzLl9uZ0NvbnRyb2wpLHRoaXMuYWRkaXRpb25hbERpZmZlci5zZXQodGhpcy5fbmdDb250cm9sLHRoaXMuZGlmZmVycy5maW5kKHRoaXMuX25nQ29udHJvbCkuY3JlYXRlKCkpKToodGhpcy5uZ0NvbnRyb2w9'@; put 'dGhpcy5fbmdDb250cm9sLHRoaXMubmdDb250cm9sU2VydmljZS5zZXRDb250cm9sKHRoaXMubmdDb250cm9sKSx0aGlzLmRpZmZlcj10aGlzLmRpZmZlcnMuZmluZCh0aGlzLl9uZ0NvbnRyb2wpLmNyZWF0ZSgpKSl9bmdEb0NoZWNrKCl7aWYodGhpcy50cmlnZ2VyRG9DaGVjayh0aGlzLmRp'@; put 'ZmZlcix0aGlzLm5nQ29udHJvbCksdGhpcy5oYXNBZGRpdGlvbmFsQ29udHJvbHMpZm9yKGNvbnN0W2EsZF1vZiB0aGlzLmFkZGl0aW9uYWxEaWZmZXIpdGhpcy50cmlnZ2VyRG9DaGVjayhkLGEpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goYT0+YT8udW5zdWJz'@; put 'Y3JpYmUoKSl9dHJpZ2dlclZhbGlkYXRpb24oKXt0aGlzLmlmQ29udHJvbFN0YXRlU2VydmljZSYmdGhpcy5pZkNvbnRyb2xTdGF0ZVNlcnZpY2UudHJpZ2dlclN0YXR1c0NoYW5nZSgpfWdldFByb3ZpZGVyRnJvbUNvbnRhaW5lcihhLGQpe3RyeXtyZXR1cm4gdGhpcy5fY29udGFpbmVySW5q'@; put 'ZWN0b3IuZ2V0KGEsZCl9Y2F0Y2h7cmV0dXJuIGR9fXRyaWdnZXJEb0NoZWNrKGEsZCl7aWYoYSl7Y29uc3QgaD1hLmRpZmYoZCk7aCYmaC5mb3JFYWNoQ2hhbmdlZEl0ZW0oZj0+eyhmLmtleT09PSRZLkZPUk18fGYua2V5PT09JFkuTU9ERUwpJiZmLmN1cnJlbnRWYWx1ZSE9PWYucHJldmlv'@; put 'dXNWYWx1ZSYmdGhpcy50cmlnZ2VyVmFsaWRhdGlvbigpfSl9fW1hcmtBc1RvdWNoZWQoKXt0aGlzLm5nQ29udHJvbCYmKHRoaXMubmdDb250cm9sLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpLHRoaXMubmdDb250cm9sLmNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpKSx0aGlzLm5n'@; put 'Q29udHJvbFNlcnZpY2UmJnRoaXMubmdDb250cm9sU2VydmljZS5oYXNBZGRpdGlvbmFsQ29udHJvbHMmJnRoaXMubmdDb250cm9sU2VydmljZS5hZGRpdGlvbmFsQ29udHJvbHM/LmZvckVhY2goYT0+e2EuY29udHJvbC5tYXJrQXNUb3VjaGVkKCksYS5jb250cm9sLnVwZGF0ZVZhbHVlQW5k'@; put 'VmFsaWRpdHkoKX0pfXNldEFyaWFEZXNjcmliZWRCeShhKXtpZihhLnNob3cpe2NvbnN0IGQ9dGhpcy5nZXRBcmlhRGVzY3JpYmVkQnlJZChhKTtpZihudWxsIT09ZClyZXR1cm4gdm9pZCB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsImFyaWEtZGVz'@; put 'Y3JpYmVkYnkiLGQpfXRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwiYXJpYS1kZXNjcmliZWRieSIpfWdldEFyaWFEZXNjcmliZWRCeUlkKGEpe2NvbnN0IGQ9dGhpcy5jb250YWluZXJJZFNlcnZpY2U/LmlkfHx0aGlzLmNvbnRyb2xJZFNlcnZp'@; put 'Y2U/LmlkO2lmKCFkKXJldHVybiBudWxsO2NvbnN0IGg9W2Ake2R9LWhlbHBlcmBdO3JldHVybiBhLnNob3dJbnZhbGlkP2gucHVzaChgJHtkfS1lcnJvcmApOmEuc2hvd1ZhbGlkJiZoLnB1c2goYCR7ZH0tc3VjY2Vzc2ApLGguam9pbigiICIpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rp'@; put 'b24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZShUcyksJGUoajYpLCRlKERvKSwkZSh1MSksJGUoRXMpLCRlKFFpKSl9LGMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsaG9zdFZhcnM6MSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsxJmEmJkZ0KCJibHVyIixmdW5jdGlvbigpe3JldHVybiBkLnRy'@; put 'aWdnZXJWYWxpZGF0aW9uKCl9KSwyJmEmJm9wKCJpZCIsZC5pZCl9LGlucHV0czp7aWQ6ImlkIn19KSxjfSkoKSxjZGU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQpe3RoaXMubGF5b3V0U2VydmljZT1hLHRoaXMubWFya0NvbnRyb2xTZXJ2aWNlPWR9c2V0IGxhYmVsU2l6ZShhKXtj'@; put 'b25zdCBkPXBhcnNlSW50KGEsMTApfHwyO3RoaXMubGF5b3V0U2VydmljZS5sYWJlbFNpemU9ZH1vbkZvcm1TdWJtaXQoKXt0aGlzLm1hcmtBc1RvdWNoZWQoKX1tYXJrQXNUb3VjaGVkKCl7dGhpcy5tYXJrQ29udHJvbFNlcnZpY2UubWFya0FzVG91Y2hlZCgpfX1yZXR1cm4gYy5cdTAyNzVm'@; put 'YWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZShNcCksJGUoR1kpKX0sYy5cdTAyNzVkaXI9RXIoe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwiY2xyRm9ybSIsIiJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihhLGQsaCl7aWYoMSZhJiZhcyhoLGNvLDUpLDImYSl7bGV0IGY7eWko'@; put 'Zj1iaSgpKSYmKGQubGFiZWxzPWYpfX0saG9zdFZhcnM6Nixob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsxJmEmJkZ0KCJzdWJtaXQiLGZ1bmN0aW9uKCl7cmV0dXJuIGQub25Gb3JtU3VibWl0KCl9KSwyJmEmJlRyKCJjbHItZm9ybSIsITApKCJjbHItZm9ybS1ob3Jpem9udGFsIixkLmxh'@; put 'eW91dFNlcnZpY2UuaXNIb3Jpem9udGFsKCkpKCJjbHItZm9ybS1jb21wYWN0IixkLmxheW91dFNlcnZpY2UuaXNDb21wYWN0KCkpfSxpbnB1dHM6e2xhYmVsU2l6ZTpbVm4uTm9uZSwiY2xyTGFiZWxTaXplIiwibGFiZWxTaXplIl19LGZlYXR1cmVzOlt1YShbTXAsR1ldKV19KSxjfSkoKSxu'@; put 'dT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7RW8uYWRkSWNvbnMoYmgsX2gpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9QWkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPUFyKHtpbXBvcnRzOltMYSxUb119KSxjfSkoKTtj'@; put 'b25zdCBLWT1uZXcgU3QoIklTX1RPR0dMRSIpLEdVZT17cHJvdmlkZTpLWSx1c2VGYWN0b3J5OmZ1bmN0aW9uIFlVZSgpe3JldHVybiBuZXcgSnIoITEpfX07bGV0IHhoPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy50b2dnbGU9ITEsdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRo'@; put 'aXMuc3Vic2NyaXB0aW9ucy5wdXNoKGEuc3Vic2NyaWJlKGQ9Pnt0aGlzLnRvZ2dsZT1kfSkpfW5nT25Jbml0KCl7dGhpcy5sYWJlbCYmdGhpcy5sYWJlbC5kaXNhYmxlR3JpZCgpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goYT0+YS51bnN1YnNjcmliZSgpKX19'@; put 'cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoJGUoS1kpKX0sYy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLWNoZWNrYm94LXdyYXBwZXIiXSxbImNsci10b2dnbGUtd3JhcHBlciJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihh'@; put 'LGQsaCl7aWYoMSZhJiYoYXMoaCxjbyw3KSxhcyhoLElkLDcpKSwyJmEpe2xldCBmO3lpKGY9YmkoKSkmJihkLmxhYmVsPWYuZmlyc3QpLHlpKGY9YmkoKSkmJihkLmNoZWNrYm94PWYuZmlyc3QpfX0saG9zdFZhcnM6Nixob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsyJmEmJlRyKCJjbHIt'@; put 'Y2hlY2tib3gtd3JhcHBlciIsIWQudG9nZ2xlKSgiY2xyLWNoZWNrYm94LXdyYXBwZXItZGlzYWJsZWQiLG51bGw9PWQuY2hlY2tib3g/bnVsbDpkLmNoZWNrYm94LmNvbnRyb2xEaXNhYmxlZCkoImNsci10b2dnbGUtd3JhcHBlciIsZC50b2dnbGUpfSxmZWF0dXJlczpbdWEoW01oLEdVZV0p'@; put 'XSxuZ0NvbnRlbnRTZWxlY3RvcnM6V0hlLGRlY2xzOjMsdmFyczoxLGNvbnN0czpbWzQsIm5nSWYiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihzYShaSGUpLFdyKDApLFdyKDEsMSksZ3QoMixZSGUsMSwwLCJsYWJlbCIsMCkpLDImYSYmKGZlKDIpLE1lKCJuZ0lmIiwhZC5sYWJl'@; put 'bCkpfSxkZXBlbmRlbmNpZXM6W2JhLGNvXSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxJZD0oKCk9PntjbGFzcyBjIGV4dGVuZHMgQzd7Y29uc3RydWN0b3IoYSxkLGgsZix2LE0pe3N1cGVyKGEseGgsZCxoLGYsdiksdGhpcy5jb250cm9sPWgsdGhpcy50b2dnbGU9TX1nZXQgY29udHJvbERp'@; put 'c2FibGVkKCl7cmV0dXJuIHRoaXMuY29udHJvbD8uZGlzYWJsZWR9bmdPbkluaXQoKXtzdXBlci5uZ09uSW5pdCgpO2NvbnN0IGE9dGhpcy5nZXRQcm92aWRlckZyb21Db250YWluZXIoS1ksbnVsbCk7YSYmbnVsbCE9PXRoaXMudG9nZ2xlJiZhLm5leHQoITApfX1yZXR1cm4gYy5cdTAyNzVm'@; put 'YWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZShUcyksJGUoRG8pLCRlKHUxLDEwKSwkZShFcyksJGUoUWkpLEZmKCJjbHJUb2dnbGUiKSl9LGMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsImNsckNoZWNrYm94IiwiIl0sWyIiLCJjbHJUb2dnbGUiLCIiXV0s'@; put 'aG9zdFZhcnM6MSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsyJmEmJmhyKCJyb2xlIixudWxsIT09ZC50b2dnbGU/InN3aXRjaCI6bnVsbCl9LGZlYXR1cmVzOltDYV19KSxjfSkoKSxGYj0oKCk9PntjbGFzcyBjIGV4dGVuZHMgdzd7Y29uc3RydWN0b3IoYSxkLGgsZil7c3VwZXIoZixh'@; put 'LGQsaCksdGhpcy5sYXlvdXRTZXJ2aWNlPWEsdGhpcy5jb250cm9sQ2xhc3NTZXJ2aWNlPWQsdGhpcy5uZ0NvbnRyb2xTZXJ2aWNlPWgsdGhpcy5pZkNvbnRyb2xTdGF0ZVNlcnZpY2U9Zix0aGlzLmlubGluZT0hMX1nZXQgY2xySW5saW5lKCl7cmV0dXJuIHRoaXMuaW5saW5lfXNldCBjbHJJ'@; put 'bmxpbmUoYSl7dGhpcy5pbmxpbmU9InN0cmluZyI9PXR5cGVvZiBhPyJmYWxzZSIhPT1hOiEhYX1nZXQgYWxsQ2hlY2tib3hlc0Rpc2FibGVkKCl7cmV0dXJuIHRoaXMuY29udHJvbD8uZGlzYWJsZWQmJighdGhpcy5hZGRpdGlvbmFsQ29udHJvbHM/Lmxlbmd0aHx8dGhpcy5hZGRpdGlvbmFs'@; put 'Q29udHJvbHMuZXZlcnkoYT0+YS5kaXNhYmxlZCkpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuc2V0QXJpYVJvbGVzKCl9c2V0QXJpYVJvbGVzKCl7dGhpcy5yb2xlPXRoaXMuY2hlY2tib3hlcy5sZW5ndGg/Imdyb3VwIjpudWxsfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7'@; put 'cmV0dXJuIG5ldyhhfHxjKSgkZShNcCw4KSwkZShEZCksJGUoaDEpLCRlKGtkKSl9LGMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1jaGVja2JveC1jb250YWluZXIiXSxbImNsci10b2dnbGUtY29udGFpbmVyIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGEsZCxo'@; put 'KXtpZigxJmEmJmFzKGgsSWQsNSksMiZhKXtsZXQgZjt5aShmPWJpKCkpJiYoZC5jaGVja2JveGVzPWYpfX0saG9zdFZhcnM6Nyxob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsyJmEmJihocigicm9sZSIsZC5yb2xlKSxUcigiY2xyLWZvcm0tY29udHJvbCIsITApKCJjbHItZm9ybS1jb250'@; put 'cm9sLWRpc2FibGVkIixkLmFsbENoZWNrYm94ZXNEaXNhYmxlZCkoImNsci1yb3ciLGQuYWRkR3JpZCgpKSl9LGlucHV0czp7Y2xySW5saW5lOiJjbHJJbmxpbmUifSxmZWF0dXJlczpbdWEoW2tkLGgxLERkLHA3XSksQ2FdLG5nQ29udGVudFNlbGVjdG9yczokSGUsZGVjbHM6Nix2YXJzOjYs'@; put 'Y29uc3RzOltbNCwibmdJZiJdLFsxLCJjbHItY29udHJvbC1jb250YWluZXIiLDMsIm5nQ2xhc3MiXSxbImNsYXNzIiwiY2xyLXN1YnRleHQtd3JhcHBlciIsNCwibmdJZiJdLFsxLCJjbHItc3VidGV4dC13cmFwcGVyIl0sWyJjbGFzcyIsImNsci12YWxpZGF0ZS1pY29uIiwic2hhcGUiLCJl'@; put 'eGNsYW1hdGlvbi1jaXJjbGUiLCJzdGF0dXMiLCJkYW5nZXIiLCJhcmlhLWhpZGRlbiIsInRydWUiLDQsIm5nSWYiXSxbImNsYXNzIiwiY2xyLXZhbGlkYXRlLWljb24iLCJzaGFwZSIsImNoZWNrLWNpcmNsZSIsInN0YXR1cyIsInN1Y2Nlc3MiLCJhcmlhLWhpZGRlbiIsInRydWUiLDQsIm5n'@; put 'SWYiXSxbInNoYXBlIiwiZXhjbGFtYXRpb24tY2lyY2xlIiwic3RhdHVzIiwiZGFuZ2VyIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJjbHItdmFsaWRhdGUtaWNvbiJdLFsic2hhcGUiLCJjaGVjay1jaXJjbGUiLCJzdGF0dXMiLCJzdWNjZXNzIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJj'@; put 'bHItdmFsaWRhdGUtaWNvbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKHNhKEdIZSksV3IoMCksZ3QoMSxLSGUsMSwwLCJsYWJlbCIsMCksZGUoMiwiZGl2IiwxKSxXcigzLDEpLGd0KDQsWEhlLDIsMCwiZGl2IiwyKSg1LHROZSw1LDQsImRpdiIsMiksaGUoKSksMiZhJiYoZmUo'@; put 'KSxNZSgibmdJZiIsIWQubGFiZWwmJmQuYWRkR3JpZCgpKSxmZSgpLFRyKCJjbHItY29udHJvbC1pbmxpbmUiLGQuY2xySW5saW5lKSxNZSgibmdDbGFzcyIsZC5jb250cm9sQ2xhc3MoKSksZmUoMiksTWUoIm5nSWYiLGQuc2hvd0hlbHBlciksZmUoKSxNZSgibmdJZiIsZC5zaG93SW52YWxp'@; put 'ZHx8ZC5zaG93VmFsaWQpKX0sZGVwZW5kZW5jaWVzOlt2dSxiYSxlbyxjb10sZW5jYXBzdWxhdGlvbjoyfSksY30pKCksJFVlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXtFby5hZGRJY29ucyhiaCxfaCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8'@; put 'fGMpfSxjLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9QXIoe2ltcG9ydHM6W0xhLFRvLG51LFd4LG51XX0pLGN9KSgpO2Z1bmN0aW9uIGUzKGMpe3JldHVybiBudWxsIT09YyYmKCJzdHJpbmciPT10eXBlb2YgYz9jLmxlbmd0aD49MDoiYm9vbGVhbiI9PXR5cGVvZiBjJiZj'@; put 'KX1sZXQgUmQ9KCgpPT57Y2xhc3MgY3tnZXQgc3Bpbm5lckNsYXNzKCl7cmV0dXJuITB9Z2V0IGlubGluZUNsYXNzKCl7cmV0dXJuIHRoaXMuX2lubGluZX1zZXQgY2xySW5saW5lKGEpe3RoaXMuX2lubGluZT1lMyhhKX1nZXQgaW52ZXJzZUNsYXNzKCl7cmV0dXJuIHRoaXMuX2ludmVyc2V9'@; put 'c2V0IGNsckludmVyc2UoYSl7dGhpcy5faW52ZXJzZT1lMyhhKX1nZXQgc21hbGxDbGFzcygpe3JldHVybiB0aGlzLl9zbWFsbH1zZXQgY2xyU21hbGwoYSl7dGhpcy5fc21hbGw9ZTMoYSl9Z2V0IG1lZGl1bUNsYXNzKCl7cmV0dXJuIXRoaXMuX3NtYWxsJiZ0aGlzLl9tZWRpdW19c2V0IGNs'@; put 'ck1lZGl1bShhKXt0aGlzLl9tZWRpdW09ZTMoYSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItc3Bpbm5lciJdXSxob3N0VmFyczoxMSxob3N0QmluZGluZ3M6ZnVuY3Rpb24o'@; put 'YSxkKXsyJmEmJihocigiYXJpYS1idXN5IiwhMCksVHIoInNwaW5uZXIiLGQuc3Bpbm5lckNsYXNzKSgic3Bpbm5lci1pbmxpbmUiLGQuaW5saW5lQ2xhc3MpKCJzcGlubmVyLWludmVyc2UiLGQuaW52ZXJzZUNsYXNzKSgic3Bpbm5lci1zbSIsZC5zbWFsbENsYXNzKSgic3Bpbm5lci1tZCIs'@; put 'ZC5tZWRpdW1DbGFzcykpfSxpbnB1dHM6e2NscklubGluZToiY2xySW5saW5lIixjbHJJbnZlcnNlOiJjbHJJbnZlcnNlIixjbHJTbWFsbDoiY2xyU21hbGwiLGNsck1lZGl1bToiY2xyTWVkaXVtIn0sbmdDb250ZW50U2VsZWN0b3JzOnlzLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0'@; put 'aW9uKGEsZCl7MSZhJiYoc2EoKSxXcigwKSl9LGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLEhiPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9QXIoe2ltcG9y'@; put 'dHM6W0xhXX0pLGN9KSgpO3ZhciBnbT1mdW5jdGlvbihjKXtyZXR1cm4gYy5WRVJUSUNBTD0idmVydGljYWwiLGMuSE9SSVpPTlRBTD0iaG9yaXpvbnRhbCIsYy5CT1RIPSJib3RoIixjfShnbXx8e30pO2xldCB1ZGU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQpe3RoaXMuZWxlbWVu'@; put 'dFJlZj1hLHRoaXMucGxhdGZvcm1JZD1kfWdldCBuYXRpdmVFbGVtZW50KCl7cmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50fWZvY3VzKCl7ZWwodGhpcy5wbGF0Zm9ybUlkKSYmdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKX19cmV0dXJuIGMuXHUwMjc1'@; put 'ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoJGUoUWkpLCRlKGlzKSl9LGMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsImNscktleUZvY3VzSXRlbSIsIiJdXX0pLGN9KSgpLE5iPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5lbGVtZW50UmVm'@; put 'PWEsdGhpcy5kaXJlY3Rpb249Z20uVkVSVElDQUwsdGhpcy5mb2N1c09uTG9hZD0hMSx0aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5mb2N1c0NoYW5nZT1uZXcgS3IsdGhpcy5fY3VycmVudD0wfWdldCBmb2N1c2FibGVJdGVtcygpe3JldHVybiB0aGlzLl9mb2N1c2FibGVJdGVtcz90aGlz'@; put 'Ll9mb2N1c2FibGVJdGVtczp0aGlzLmNscktleUZvY3VzSXRlbXM/dGhpcy5jbHJLZXlGb2N1c0l0ZW1zLnRvQXJyYXkoKTpbXX1zZXQgZm9jdXNhYmxlSXRlbXMoYSl7QXJyYXkuaXNBcnJheShhKSYmYS5sZW5ndGgmJih0aGlzLl9mb2N1c2FibGVJdGVtcz1hLHRoaXMuaW5pdGlhbGl6ZUZv'@; put 'Y3VzKCkpfWdldCBuYXRpdmVFbGVtZW50KCl7cmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50fWdldCBjdXJyZW50KCl7cmV0dXJuIHRoaXMuX2N1cnJlbnR9c2V0IGN1cnJlbnQoYSl7dGhpcy5fY3VycmVudCE9PWEmJih0aGlzLl9jdXJyZW50PWEpfWdldCBjdXJyZW50SXRl'@; put 'bSgpe3JldHVybiB0aGlzLmZvY3VzYWJsZUl0ZW1zW3RoaXMuX2N1cnJlbnRdfWdldCBjdXJyZW50SXRlbUVsZW1lbnQoKXtyZXR1cm4gdGhpcy5jdXJyZW50SXRlbS5uYXRpdmVFbGVtZW50P3RoaXMuY3VycmVudEl0ZW0ubmF0aXZlRWxlbWVudDp0aGlzLmN1cnJlbnRJdGVtfW5nQWZ0ZXJD'@; put 'b250ZW50SW5pdCgpe3RoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubGlzdGVuRm9ySXRlbVVwZGF0ZXMoKSksdGhpcy5pbml0aWFsaXplRm9jdXMoKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGE9PmEudW5zdWJzY3JpYmUoKSl9aGFuZGxlS2V5Ym9hcmRF'@; put 'dmVudChhKXtpZih0aGlzLmN1cnJlbnRJdGVtRWxlbWVudCE9PWEudGFyZ2V0KXtjb25zdCBkPXRoaXMuZ2V0SXRlbVBvc2l0aW9uKGEudGFyZ2V0KTt0aGlzLnBvc2l0aW9uSW5SYW5nZShkKSYmKHRoaXMuY3VycmVudD1kKX10aGlzLnByZXZLZXlQcmVzc2VkKGEpJiZ0aGlzLmN1cnJlbnRG'@; put 'b2N1c0lzTm90Rmlyc3RJdGVtKCk/dGhpcy5tb3ZlVG8odGhpcy5jdXJyZW50LTEpOnRoaXMubmV4dEtleVByZXNzZWQoYSkmJnRoaXMuY3VycmVudEZvY3VzSXNOb3RMYXN0SXRlbSgpP3RoaXMubW92ZVRvKHRoaXMuY3VycmVudCsxKTphLmNvZGU9PT1wYS5Ib21lP3RoaXMubW92ZVRvKDAp'@; put 'OmEuY29kZT09PXBhLkVuZCYmdGhpcy5tb3ZlVG8odGhpcy5mb2N1c2FibGVJdGVtcy5sZW5ndGgtMSksRlkoYSl9c2V0Q2xpY2tlZEl0ZW1DdXJyZW50KGEpe2NvbnN0IGQ9dGhpcy5nZXRJdGVtUG9zaXRpb24oYS50YXJnZXQpO2Q+LTEmJnRoaXMubW92ZVRvKGQpfWZvY3VzQ3VycmVudCgp'@; put 'e3RoaXMuY3VycmVudEl0ZW0uZm9jdXMoKSx0aGlzLmZvY3VzQ2hhbmdlLm5leHQodGhpcy5fY3VycmVudCl9bW92ZVRvKGEpe3RoaXMucG9zaXRpb25JblJhbmdlKGEpJiYodGhpcy5jdXJyZW50PWEsdGhpcy5mb2N1c0N1cnJlbnQoKSl9cG9zaXRpb25JblJhbmdlKGEpe3JldHVybiBhPj0w'@; put 'JiZhPHRoaXMuZm9jdXNhYmxlSXRlbXMubGVuZ3RofWN1cnJlbnRGb2N1c0lzTm90Rmlyc3RJdGVtKCl7cmV0dXJuIHRoaXMuX2N1cnJlbnQtMT49MH1jdXJyZW50Rm9jdXNJc05vdExhc3RJdGVtKCl7cmV0dXJuIHRoaXMuX2N1cnJlbnQrMTx0aGlzLmZvY3VzYWJsZUl0ZW1zLmxlbmd0aH1p'@; put 'bml0aWFsaXplRm9jdXMoKXt0aGlzLmZvY3VzYWJsZUl0ZW1zJiZ0aGlzLmZvY3VzYWJsZUl0ZW1zLmxlbmd0aCYmKHRoaXMuX2N1cnJlbnQ+PXRoaXMuZm9jdXNhYmxlSXRlbXMubGVuZ3RoJiYodGhpcy5fY3VycmVudD10aGlzLmZvY3VzYWJsZUl0ZW1zLmxlbmd0aC0xKSx0aGlzLmZvY3Vz'@; put 'T25Mb2FkJiYodGhpcy5jdXJyZW50SXRlbS5mb2N1cygpLHRoaXMuZm9jdXNDaGFuZ2UuZW1pdCgpKSl9bmV4dEtleVByZXNzZWQoYSl7Y29uc3QgZD1MMihhLmtleSk7c3dpdGNoKHRoaXMuZGlyZWN0aW9uKXtjYXNlIGdtLlZFUlRJQ0FMOnJldHVybiBkPT09cGEuQXJyb3dEb3duO2Nhc2Ug'@; put 'Z20uSE9SSVpPTlRBTDpyZXR1cm4gZD09PXBhLkFycm93UmlnaHQ7Y2FzZSBnbS5CT1RIOnJldHVybiBkPT09cGEuQXJyb3dEb3dufHxkPT09cGEuQXJyb3dSaWdodDtkZWZhdWx0OnJldHVybiExfX1wcmV2S2V5UHJlc3NlZChhKXtjb25zdCBkPUwyKGEua2V5KTtzd2l0Y2godGhpcy5kaXJl'@; put 'Y3Rpb24pe2Nhc2UgZ20uVkVSVElDQUw6cmV0dXJuIGQ9PT1wYS5BcnJvd1VwO2Nhc2UgZ20uSE9SSVpPTlRBTDpyZXR1cm4gZD09PXBhLkFycm93TGVmdDtjYXNlIGdtLkJPVEg6cmV0dXJuIGQ9PT1wYS5BcnJvd1VwfHxkPT09cGEuQXJyb3dMZWZ0O2RlZmF1bHQ6cmV0dXJuITF9fWdldEl0'@; put 'ZW1Qb3NpdGlvbihhKXtyZXR1cm4gdGhpcy5fZm9jdXNhYmxlSXRlbXM/dGhpcy5mb2N1c2FibGVJdGVtcy5pbmRleE9mKGEpOnRoaXMuZm9jdXNhYmxlSXRlbXMubWFwKGQ9PmQubmF0aXZlRWxlbWVudCkuaW5kZXhPZihhKX1saXN0ZW5Gb3JJdGVtVXBkYXRlcygpe3JldHVybiB0aGlzLmNs'@; put 'cktleUZvY3VzSXRlbXMuY2hhbmdlcy5zdWJzY3JpYmUoKCk9Pnt0aGlzLmluaXRpYWxpemVGb2N1cygpfSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKCRlKFFpKSl9LGMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsImNscktl'@; put 'eUZvY3VzIiwiIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGEsZCxoKXtpZigxJmEmJmFzKGgsdWRlLDUpLDImYSl7bGV0IGY7eWkoZj1iaSgpKSYmKGQuY2xyS2V5Rm9jdXNJdGVtcz1mKX19LGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezEmYSYmRnQoImtleWRvd24iLGZ1bmN0aW9u'@; put 'KGYpe3JldHVybiBkLmhhbmRsZUtleWJvYXJkRXZlbnQoZil9KSgiY2xpY2siLGZ1bmN0aW9uKGYpe3JldHVybiBkLnNldENsaWNrZWRJdGVtQ3VycmVudChmKX0pfSxpbnB1dHM6e2RpcmVjdGlvbjpbVm4uTm9uZSwiY2xyRGlyZWN0aW9uIiwiZGlyZWN0aW9uIl0sZm9jdXNPbkxvYWQ6W1Zu'@; put 'Lk5vbmUsImNsckZvY3VzT25Mb2FkIiwiZm9jdXNPbkxvYWQiXSxmb2N1c2FibGVJdGVtczpbVm4uTm9uZSwiY2xyS2V5Rm9jdXMiLCJmb2N1c2FibGVJdGVtcyJdfSxvdXRwdXRzOntmb2N1c0NoYW5nZToiY2xyRm9jdXNDaGFuZ2UifSxhdHRyczpuTmUsbmdDb250ZW50U2VsZWN0b3JzOnlz'@; put 'LGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoc2EoKSxXcigwKSl9LGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLFhZPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD1BaSh7'@; put 'dHlwZTpjfSksYy5cdTAyNzVpbmo9QXIoe2ltcG9ydHM6W0xhXX0pLGN9KSgpO2NsYXNzIEtVZXtjb250YWluc0l0ZW0obCl7cmV0dXJuISF0aGlzLm1vZGVsJiZ0aGlzLm1vZGVsLmluY2x1ZGVzKGwpfXNlbGVjdChsKXt0aGlzLmFkZEl0ZW0obCl9dW5zZWxlY3QobCl7dGhpcy5yZW1vdmVJ'@; put 'dGVtKGwpfWlzRW1wdHkoKXtyZXR1cm4hKHRoaXMubW9kZWwmJnRoaXMubW9kZWwubGVuZ3RoPjApfXBvcCgpe2xldCBsO3JldHVybiB0aGlzLm1vZGVsJiZ0aGlzLm1vZGVsLmxlbmd0aD4wJiYobD10aGlzLm1vZGVsW3RoaXMubW9kZWwubGVuZ3RoLTFdLHRoaXMucmVtb3ZlSXRlbShsKSks'@; put 'bH10b1N0cmluZyhsLGE9LTEpe2xldCBkPSIiO3JldHVybiB0aGlzLm1vZGVsJiYoYT4tMT90aGlzLm1vZGVsW2FdJiYoZCs9bCYmdGhpcy5tb2RlbFthXVtsXT90aGlzLm1vZGVsW2FdW2xdOnRoaXMubW9kZWxbYV0udG9TdHJpbmcoKSk6dGhpcy5tb2RlbC5mb3JFYWNoKGg9PntkKz1sJiZo'@; put 'W2xdP2hbbF06aC50b1N0cmluZygpLGQrPSIgIn0pKSxkLnRyaW0oKX1hZGRJdGVtKGwpe3RoaXMuY29udGFpbnNJdGVtKGwpfHwodGhpcy5tb2RlbD10aGlzLm1vZGVsfHxbXSx0aGlzLm1vZGVsLnB1c2gobCkpfXJlbW92ZUl0ZW0obCl7aWYobnVsbD09dGhpcy5tb2RlbClyZXR1cm47Y29u'@; put 'c3QgYT10aGlzLm1vZGVsLmluZGV4T2YobCk7YT4tMSYmdGhpcy5tb2RlbC5zcGxpY2UoYSwxKSwwPT09dGhpcy5tb2RlbC5sZW5ndGgmJih0aGlzLm1vZGVsPW51bGwpfX1jbGFzcyBYVWV7Y29udGFpbnNJdGVtKGwpe3JldHVybiB0aGlzLm1vZGVsPT09bH1zZWxlY3QobCl7dGhpcy5tb2Rl'@; put 'bD1sfXVuc2VsZWN0KGwpe3RoaXMuY29udGFpbnNJdGVtKGwpJiYodGhpcy5tb2RlbD1udWxsKX1pc0VtcHR5KCl7cmV0dXJuIXRoaXMubW9kZWx9cG9wKCl7Y29uc3QgbD10aGlzLm1vZGVsO3JldHVybiB0aGlzLm1vZGVsPW51bGwsbH10b1N0cmluZyhsKXtyZXR1cm4gdGhpcy5tb2RlbD9s'@; put 'JiZ0aGlzLm1vZGVsW2xdP3RoaXMubW9kZWxbbF06dGhpcy5tb2RlbC50b1N0cmluZygpOiIifX1jbGFzcyBxVWUgZXh0ZW5kcyBYVWV7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX2ZvY3VzQ2hhbmdlZD1uZXcgSnIobnVsbCl9Z2V0IGZvY3VzQ2hhbmdlZCgpe3Jl'@; put 'dHVybiB0aGlzLl9mb2N1c0NoYW5nZWQuYXNPYnNlcnZhYmxlKCl9c2VsZWN0KGwpe3RoaXMubW9kZWwhPT1sJiYodGhpcy5tb2RlbD1sLHRoaXMuX2ZvY3VzQ2hhbmdlZC5uZXh0KGwpKX19bGV0IEpVZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5sb2FkaW5nPSExLHRoaXMu'@; put 'c2hvd0FsbE9wdGlvbnM9ITAsdGhpcy5fY3VycmVudElucHV0PSIiLHRoaXMuX2lucHV0Q2hhbmdlZD1uZXcgSnIoIiIpLHRoaXMuX3NlbGVjdGlvbkNoYW5nZWQ9bmV3IE14KDEpLHRoaXMuaW5wdXRDaGFuZ2VkPXRoaXMuX2lucHV0Q2hhbmdlZC5hc09ic2VydmFibGUoKX1nZXQgY3VycmVu'@; put 'dElucHV0KCl7cmV0dXJuIHRoaXMuX2N1cnJlbnRJbnB1dH1zZXQgY3VycmVudElucHV0KGEpeyIiPT09YSYmIXRoaXMubXVsdGlzZWxlY3RhYmxlJiZ0aGlzLnNldFNlbGVjdGlvblZhbHVlKG51bGwpLHRoaXMuX2N1cnJlbnRJbnB1dD1hLHRoaXMuX2lucHV0Q2hhbmdlZC5uZXh0KGEpfWdl'@; put 'dCBzZWxlY3Rpb25DaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX3NlbGVjdGlvbkNoYW5nZWQuYXNPYnNlcnZhYmxlKCl9Z2V0IG11bHRpc2VsZWN0YWJsZSgpe3JldHVybiB0aGlzLnNlbGVjdGlvbk1vZGVsIGluc3RhbmNlb2YgS1VlfXNlbGVjdChhKXtudWxsPT1hfHx0aGlzLnNlbGVjdGlvbk1v'@; put 'ZGVsLmNvbnRhaW5zSXRlbShhKXx8KHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0KGEpLHRoaXMuX3NlbGVjdGlvbkNoYW5nZWQubmV4dCh0aGlzLnNlbGVjdGlvbk1vZGVsKSl9dG9nZ2xlKGEpe251bGwhPWEmJih0aGlzLnNlbGVjdGlvbk1vZGVsLmNvbnRhaW5zSXRlbShhKT90aGlzLnNl'@; put 'bGVjdGlvbk1vZGVsLnVuc2VsZWN0KGEpOnRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0KGEpLHRoaXMuX3NlbGVjdGlvbkNoYW5nZWQubmV4dCh0aGlzLnNlbGVjdGlvbk1vZGVsKSl9dW5zZWxlY3QoYSl7bnVsbD09YXx8IXRoaXMuc2VsZWN0aW9uTW9kZWwuY29udGFpbnNJdGVtKGEpfHwo'@; put 'dGhpcy5zZWxlY3Rpb25Nb2RlbC51bnNlbGVjdChhKSx0aGlzLl9zZWxlY3Rpb25DaGFuZ2VkLm5leHQodGhpcy5zZWxlY3Rpb25Nb2RlbCkpfXNldFNlbGVjdGlvblZhbHVlKGEpeyF0aGlzLnNlbGVjdGlvbk1vZGVsfHx0aGlzLnNlbGVjdGlvbk1vZGVsLm1vZGVsPT09YXx8IXRoaXMuc2Vs'@; put 'ZWN0aW9uTW9kZWwubW9kZWwmJiFhfHwodGhpcy5zZWxlY3Rpb25Nb2RlbC5tb2RlbD1hLHRoaXMuX3NlbGVjdGlvbkNoYW5nZWQubmV4dCh0aGlzLnNlbGVjdGlvbk1vZGVsKSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9'@; put 'cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpO2VkZSgoKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYpe3RoaXMudG9nZ2xlU2VydmljZT1kLHRoaXMuc2VsZWN0aW9uU2VydmljZT1oLHRoaXMucGxhdGZvcm1JZD1mLHRoaXMucHNldWRvRm9jdXM9bmV3IHFV'@; put 'ZSx0aGlzLm9wdGlvbkRhdGE9W10sdGhpcy5oYW5kbGVGb2N1c1N1YnNjcmlwdGlvbigpLHRoaXMucmVuZGVyZXI9YS5jcmVhdGVSZW5kZXJlcihudWxsLG51bGwpfWdldCB0cmlnZ2VyKCl7cmV0dXJuIHRoaXMuX3RyaWdnZXJ9c2V0IHRyaWdnZXIoYSl7dGhpcy5fdHJpZ2dlcj1hLHRoaXMu'@; put 'YWRkRm9jdXNPbkJsdXJMaXN0ZW5lcihhKX1nZXQgbGlzdGJveCgpe3JldHVybiB0aGlzLl9saXN0Ym94fXNldCBsaXN0Ym94KGEpe3RoaXMuX2xpc3Rib3g9YSx0aGlzLmFkZEZvY3VzT25CbHVyTGlzdGVuZXIoYSl9Z2V0IHRleHRJbnB1dCgpe3JldHVybiB0aGlzLl90ZXh0SW5wdXR9c2V0'@; put 'IHRleHRJbnB1dChhKXt0aGlzLl90ZXh0SW5wdXQ9YSx0aGlzLnJlbmRlcmVyLmxpc3RlbihhLCJrZXlkb3duIixkPT4hdGhpcy5oYW5kbGVUZXh0SW5wdXQoZCkpLHRoaXMuYWRkRm9jdXNPbkJsdXJMaXN0ZW5lcihhKX1mb2N1c0lucHV0KCl7dGhpcy50ZXh0SW5wdXQmJmVsKHRoaXMucGxh'@; put 'dGZvcm1JZCkmJnRoaXMudGV4dElucHV0LmZvY3VzKCl9Zm9jdXNGaXJzdEFjdGl2ZSgpe2lmKHRoaXMub3B0aW9uRGF0YS5sZW5ndGg+MClpZih0aGlzLnNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwuaXNFbXB0eSgpKXRoaXMucHNldWRvRm9jdXMuc2VsZWN0KHRoaXMub3B0aW9u'@; put 'RGF0YVswXSk7ZWxzZXtsZXQgYTthPXRoaXMuc2VsZWN0aW9uU2VydmljZS5tdWx0aXNlbGVjdGFibGU/dGhpcy5zZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsLm1vZGVsWzBdOnRoaXMuc2VsZWN0aW9uU2VydmljZS5zZWxlY3Rpb25Nb2RlbC5tb2RlbDtjb25zdCBkPXRoaXMub3B0'@; put 'aW9uRGF0YS5maW5kKGg9PmgudmFsdWU9PT1hKTt0aGlzLnBzZXVkb0ZvY3VzLnNlbGVjdChkfHx0aGlzLm9wdGlvbkRhdGFbMF0pLHRoaXMuc2Nyb2xsSW50b1NlbGVjdGVkTW9kZWwoImF1dG8iKX19YWRkT3B0aW9uVmFsdWVzKGEpe3RoaXMub3B0aW9uRGF0YT1hfWhhbmRsZUZvY3VzU3Vi'@; put 'c2NyaXB0aW9uKCl7dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKGE9PnthfHwodGhpcy5wc2V1ZG9Gb2N1cy5tb2RlbD1udWxsKX0pfW1vdmVGb2N1c1RvKGEpe2xldCBkPXRoaXMub3B0aW9uRGF0YS5maW5kSW5kZXgoaD0+aC5lcXVhbHModGhpcy5wc2V1ZG9Gb2N1'@; put 'cy5tb2RlbCkpO2E9PT1TaC5VUD8tMT09PWR8fDA9PT1kP2Q9dGhpcy5vcHRpb25EYXRhLmxlbmd0aC0xOmQtLTphPT09U2guRE9XTiYmKC0xPT09ZHx8ZD09PXRoaXMub3B0aW9uRGF0YS5sZW5ndGgtMT9kPTA6ZCsrKSx0aGlzLnBzZXVkb0ZvY3VzLnNlbGVjdCh0aGlzLm9wdGlvbkRhdGFb'@; put 'ZF0pLHRoaXMuc2Nyb2xsSW50b1NlbGVjdGVkTW9kZWwoKX1vcGVuQW5kTW92ZVRvKGEpe3RoaXMudG9nZ2xlU2VydmljZS5vcGVuP3RoaXMubW92ZUZvY3VzVG8oYSk6KHRoaXMudG9nZ2xlU2VydmljZS5vcGVuQ2hhbmdlLnBpcGUoZ2goMSkpLnN1YnNjcmliZShkPT57ZCYmdGhpcy5tb3Zl'@; put 'Rm9jdXNUbyhhKX0pLHRoaXMudG9nZ2xlU2VydmljZS5vcGVuPSEwKX1oYW5kbGVUZXh0SW5wdXQoYSl7bGV0IGQ9ITE7Y29uc3QgaD1MMihhLmtleSk7aWYoYSlzd2l0Y2goaCl7Y2FzZSBwYS5FbnRlcjp0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbiYmdGhpcy5wc2V1ZG9Gb2N1cy5tb2RlbCYm'@; put 'KHRoaXMuc2VsZWN0aW9uU2VydmljZS5tdWx0aXNlbGVjdGFibGU/dGhpcy5zZWxlY3Rpb25TZXJ2aWNlLnRvZ2dsZSh0aGlzLnBzZXVkb0ZvY3VzLm1vZGVsLnZhbHVlKTp0aGlzLnNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0KHRoaXMucHNldWRvRm9jdXMubW9kZWwudmFsdWUpLGQ9ITApO2Jy'@; put 'ZWFrO2Nhc2UgcGEuU3BhY2U6dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW58fCh0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbj0hMCxkPSEwKTticmVhaztjYXNlIHBhLkFycm93VXA6dGhpcy5wcmV2ZW50Vmlld3BvcnRTY3JvbGxpbmcoYSksdGhpcy5vcGVuQW5kTW92ZVRvKFNoLlVQKSxkPSEwO2Jy'@; put 'ZWFrO2Nhc2UgcGEuQXJyb3dEb3duOnRoaXMucHJldmVudFZpZXdwb3J0U2Nyb2xsaW5nKGEpLHRoaXMub3BlbkFuZE1vdmVUbyhTaC5ET1dOKSxkPSEwO2JyZWFrO2RlZmF1bHQ6YS5rZXkhPT1wYS5UYWImJighdGhpcy5zZWxlY3Rpb25TZXJ2aWNlLm11bHRpc2VsZWN0YWJsZXx8YS5rZXkh'@; put 'PT1wYS5CYWNrc3BhY2UpJiZhLmtleSE9PXBhLkVzY2FwZSYmIXRoaXMudG9nZ2xlU2VydmljZS5vcGVuJiYodGhpcy50b2dnbGVTZXJ2aWNlLm9wZW49ITApfXJldHVybiBkfXNjcm9sbEludG9TZWxlY3RlZE1vZGVsKGE9InNtb290aCIpe3RoaXMucHNldWRvRm9jdXMubW9kZWwmJnRoaXMu'@; put 'cHNldWRvRm9jdXMubW9kZWwuZWwmJnRoaXMucHNldWRvRm9jdXMubW9kZWwuZWwuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOmEsYmxvY2s6ImNlbnRlciIsaW5saW5lOiJuZWFyZXN0In0pfXByZXZlbnRWaWV3cG9ydFNjcm9sbGluZyhhKXthLnByZXZlbnREZWZhdWx0KCksYS5zdG9wSW1t'@; put 'ZWRpYXRlUHJvcGFnYXRpb24oKX1hZGRGb2N1c09uQmx1ckxpc3RlbmVyKGEpe2VsKHRoaXMucGxhdGZvcm1JZCkmJnRoaXMucmVuZGVyZXIubGlzdGVuKGEsImJsdXIiLGQ9Pnt0aGlzLmZvY3VzT3V0T2ZDb21wb25lbnQoZCkmJih0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbj0hMSx0aGlzLmNv'@; put 'bXBvbmVudENkUmVmJiZ0aGlzLmNvbXBvbmVudENkUmVmLmRldGVjdENoYW5nZXMoKSl9KX1mb2N1c091dE9mQ29tcG9uZW50KGEpe2NvbnN0IGQ9YS5yZWxhdGVkVGFyZ2V0fHxkb2N1bWVudC5hY3RpdmVFbGVtZW50O3JldHVybiEodGhpcy50ZXh0SW5wdXQuY29udGFpbnMoZCl8fHRoaXMu'@; put 'dHJpZ2dlci5jb250YWlucyhkKXx8dGhpcy5saXN0Ym94LmNvbnRhaW5zKGQpKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoQ3IoeDgpLENyKHNjKSxDcihKVWUpLENyKGlzKSl9LGMuXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUw'@; put 'Mjc1ZmFjfSksY30pKCkpO2xldCBRVWU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe0VvLmFkZEljb25zKGJoLF9oLENiLEN4KX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1B'@; put 'cih7aW1wb3J0czpbTGEsa2MsVG8sWFksbnUsRjIsWngsSGIsbnUsRjJdfSksY30pKCkscUw9KCgpPT57Y2xhc3MgYyBleHRlbmRzIHc3e31yZXR1cm4gYy5cdTAyNzVmYWM9KCgpPT57bGV0IGw7cmV0dXJuIGZ1bmN0aW9uKGQpe3JldHVybihsfHwobD1VbyhjKSkpKGR8fGMpfX0pKCksYy5c'@; put 'dTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLWlucHV0LWNvbnRhaW5lciJdXSxob3N0VmFyczo2LGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmVHIoImNsci1mb3JtLWNvbnRyb2wiLCEwKSgiY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCIsbnVsbD09ZC5jb250'@; put 'cm9sP251bGw6ZC5jb250cm9sLmRpc2FibGVkKSgiY2xyLXJvdyIsZC5hZGRHcmlkKCkpfSxmZWF0dXJlczpbdWEoW2tkLGgxLE1oLERkXSksQ2FdLG5nQ29udGVudFNlbGVjdG9yczpsTmUsZGVjbHM6MTMsdmFyczo3LGNvbnN0czpbWzQsIm5nSWYiXSxbMSwiY2xyLWNvbnRyb2wtY29udGFp'@; put 'bmVyIiwzLCJuZ0NsYXNzIl0sWzEsImNsci1pbnB1dC13cmFwcGVyIl0sWzEsImNsci1pbnB1dC1ncm91cCJdLFsiY2xhc3MiLCJjbHItdmFsaWRhdGUtaWNvbiIsInNoYXBlIiwiZXhjbGFtYXRpb24tY2lyY2xlIiwic3RhdHVzIiwiZGFuZ2VyIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiw0LCJu'@; put 'Z0lmIl0sWyJjbGFzcyIsImNsci12YWxpZGF0ZS1pY29uIiwic2hhcGUiLCJjaGVjay1jaXJjbGUiLCJzdGF0dXMiLCJzdWNjZXNzIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiw0LCJuZ0lmIl0sWyJzaGFwZSIsImV4Y2xhbWF0aW9uLWNpcmNsZSIsInN0YXR1cyIsImRhbmdlciIsImFyaWEtaGlk'@; put 'ZGVuIiwidHJ1ZSIsMSwiY2xyLXZhbGlkYXRlLWljb24iXSxbInNoYXBlIiwiY2hlY2stY2lyY2xlIiwic3RhdHVzIiwic3VjY2VzcyIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwiY2xyLXZhbGlkYXRlLWljb24iXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihzYShvTmUpLFdyKDAp'@; put 'LGd0KDEsY05lLDEsMCwibGFiZWwiLDApLGRlKDIsImRpdiIsMSkoMywiZGl2IiwyKSg0LCJkaXYiLDMpLFdyKDUsMSksV3IoNiwyKSxXcig3LDMpLGhlKCksZ3QoOCx1TmUsMSwwLCJjZHMtaWNvbiIsNCkoOSxkTmUsMSwwLCJjZHMtaWNvbiIsNSksaGUoKSxndCgxMCxoTmUsMSwwLCJuZy1j'@; put 'b250ZW50IiwwKSgxMSxmTmUsMSwwLCJuZy1jb250ZW50IiwwKSgxMixwTmUsMSwwLCJuZy1jb250ZW50IiwwKSxoZSgpKSwyJmEmJihmZSgpLE1lKCJuZ0lmIiwhZC5sYWJlbCYmZC5hZGRHcmlkKCkpLGZlKCksTWUoIm5nQ2xhc3MiLGQuY29udHJvbENsYXNzKCkpLGZlKDYpLE1lKCJuZ0lm'@; put 'IixkLnNob3dJbnZhbGlkKSxmZSgpLE1lKCJuZ0lmIixkLnNob3dWYWxpZCksZmUoKSxNZSgibmdJZiIsZC5zaG93SGVscGVyKSxmZSgpLE1lKCJuZ0lmIixkLnNob3dJbnZhbGlkKSxmZSgpLE1lKCJuZ0lmIixkLnNob3dWYWxpZCkpfSxkZXBlbmRlbmNpZXM6W3Z1LGJhLGVvLGNvXSxlbmNh'@; put 'cHN1bGF0aW9uOjJ9KSxjfSkoKSxZMT0oKCk9PntjbGFzcyBjIGV4dGVuZHMgQzd7Y29uc3RydWN0b3IoYSxkLGgsZix2KXtzdXBlcihhLHFMLGQsaCxmLHYpLHRoaXMuaW5kZXg9MSwibnVtYmVyIj09PXRoaXMuZWwubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoInR5cGUiKSYmY29uc29s'@; put 'ZS53YXJuKCdXYXJuaW5nOiBJbnB1dHMgb2YgdHlwZSAibnVtYmVyIiBzaG91bGQgdXRpbGl6ZSB0aGUgbnVtYmVyLWlucHV0IGNvbXBvbmVudCBmb3IgcHJvcGVyIGhhbmRsaW5nLlxuXG4gIEV4YW1wbGUgdXNhZ2U6XG4gIDxjbHItbnVtYmVyLWlucHV0LWNvbnRhaW5lcj5cbiAgICA8bGFi'@; put 'ZWw+TnVtYmVyIElucHV0PC9sYWJlbD5cbiAgICA8aW5wdXQgY2xyTnVtYmVySW5wdXQgdHlwZT0ibnVtYmVyIi8+XG4gIDwvY2xyLW51bWJlci1pbnB1dC1jb250YWluZXI+XG4gICAgICAnKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoJGUoVHMp'@; put 'LCRlKERvKSwkZSh1MSwxMCksJGUoRXMpLCRlKFFpKSl9LGMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsImNscklucHV0IiwiIl1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZUcigiY2xyLWlucHV0IiwhMCl9LGZlYXR1cmVzOltDYV19'@; put 'KSxjfSkoKSxkZGU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe0VvLmFkZEljb25zKGJoLF9oKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1Bcih7aW1wb3J0czpbTGEsa2Ms'@; put 'VG8sbnUsbnVdfSksY30pKCksVmI9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2ZvY3VzZWQ9bmV3IEpyKCExKX1nZXQgZm9jdXNDaGFuZ2UoKXtyZXR1cm4gdGhpcy5fZm9jdXNlZC5hc09ic2VydmFibGUoKX1zZXQgZm9jdXNlZChhKXt0aGlzLl9mb2N1c2VkLm5leHQoYSl9'@; put 'fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpLGVaZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7RW8uYWRkSWNvbnMoYmgsX2gpfX1yZXR1cm4gYy5c'@; put 'dTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9QWkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPUFyKHtpbXBvcnRzOltMYSxkZGUsVG9dfSksY30pKCksdFplPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4g'@; put 'bmV3KGF8fGMpfSxjLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9QXIoe2ltcG9ydHM6W0xhLFRvLFd4LEJjXX0pLGN9KSgpLG5aZT0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9QWko'@; put 'e3R5cGU6Y30pLGMuXHUwMjc1aW5qPUFyKHtpbXBvcnRzOltMYSxUb119KSxjfSkoKSxsWmU9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1Bcih7aW1wb3J0'@; put 'czpbTGEsVG8selldfSksY30pKCkscGRlPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJuZy1jb21wb25lbnQiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGEsZCl7'@; put 'aWYoMSZhJiZGYSh3bCw1KSwyJmEpe2xldCBoO3lpKGg9YmkoKSkmJihkLnRlbXBsYXRlPWguZmlyc3QpfX0sbmdDb250ZW50U2VsZWN0b3JzOnlzLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoc2EoKSxndCgwLFNOZSwxLDAsIm5nLXRlbXBsYXRlIikpfSxl'@; put 'bmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxjWmU9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1Bcih7aW1wb3J0czpbTGFdfSksY30pKCksbW09KCgpPT57Y2xh'@; put 'c3MgYyBleHRlbmRzIEFie31yZXR1cm4gYy5cdTAyNzVmYWM9KCgpPT57bGV0IGw7cmV0dXJuIGZ1bmN0aW9uKGQpe3JldHVybihsfHwobD1VbyhjKSkpKGR8fGMpfX0pKCksYy5cdTAyNzVkaXI9RXIoe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLXRhYnMiXV0sZmVhdHVyZXM6W0NhXX0pLGN9'@; put 'KSgpLFM3PSgoKT0+e2NsYXNzIGMgZXh0ZW5kcyBrYntjb25zdHJ1Y3RvcihhLGQsaCxmKXtpZighZCl0aHJvdyBuZXcgRXJyb3IoImNsclRhYkxpbmsgYW5kIGNsci10YWItY29udGVudCBzaG91bGQgb25seSBiZSB1c2VkIGluc2lkZSBvZiBhIGNsci10YWJzIik7c3VwZXIoYSxkKSx0aGlz'@; put 'LmlmQWN0aXZlPWYsdGhpcy5pZD1ofWdldCBmbGF2b3IoKXtyZXR1cm4gdGhpcy5pZkFjdGl2ZS5jdXJyZW50PT09dGhpcy5pZH19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoJGUoeG8pLCRlKG1tLDgpLCRlKFJiKSwkZShmNykpfSxjLlx1MDI3NWRp'@; put 'cj1Fcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJjbHJUYWJMaW5rIiwiIl0sWyJjbHItdGFiLWNvbnRlbnQiXV0sZmVhdHVyZXM6W0NhXX0pLGN9KSgpO3ZhciBNNz1mdW5jdGlvbihjKXtyZXR1cm4gYy5IT1JJWk9OVEFMPSJob3Jpem9udGFsIixjLlZFUlRJQ0FMPSJ2ZXJ0aWNhbCIsY30o'@; put 'TTd8fHt9KTtsZXQgR3g9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMubGF5b3V0PU03LkhPUklaT05UQUwsdGhpcy5fY2hpbGRyZW49W119Z2V0IGNoaWxkcmVuKCl7cmV0dXJuIHRoaXMuX2NoaWxkcmVufWdldCBhY3RpdmVUYWIoKXtyZXR1cm4gdGhpcy5jaGlsZHJlbi5maW5k'@; put 'KGE9PmEuYWN0aXZlKX1nZXQgb3ZlcmZsb3dUYWJzKCl7cmV0dXJuIHRoaXMubGF5b3V0PT09TTcuVkVSVElDQUw/W106dGhpcy5jaGlsZHJlbi5maWx0ZXIoYT0+ITA9PT1hLnRhYkxpbmsuaW5PdmVyZmxvdyl9cmVnaXN0ZXIoYSl7dGhpcy5fY2hpbGRyZW4ucHVzaChhKX11bnJlZ2lzdGVy'@; put 'KGEpe2NvbnN0IGQ9dGhpcy5jaGlsZHJlbi5pbmRleE9mKGEpO2Q+LTEmJnRoaXMuY2hpbGRyZW4uc3BsaWNlKGQsMSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30p'@; put 'LGN9KSgpLHVaZT0wLHZtPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgpe3RoaXMuaWZBY3RpdmVTZXJ2aWNlPWEsdGhpcy5pZD1kLHRoaXMudGFic1NlcnZpY2U9aCx0aGlzLnRhYkNvbnRlbnRJZHx8KHRoaXMudGFiQ29udGVudElkPSJjbHItdGFiLWNvbnRlbnQtIit1WmUrKyl9'@; put 'Z2V0IGFjdGl2ZSgpe3JldHVybiB0aGlzLmlmQWN0aXZlU2VydmljZS5jdXJyZW50PT09dGhpcy5pZH1nZXQgYXJpYUxhYmVsbGVkQnkoKXtyZXR1cm4gdGhpcy50YWJzU2VydmljZS5jaGlsZHJlbi5maW5kKGE9PmEudGFiTGluay5pZD09PXRoaXMuaWQpPy50YWJMaW5rPy50YWJMaW5rSWR9'@; put 'c2V0IHRlbXBsYXRlUmVmKGEpe3RoaXMudmlld1JlZj10aGlzLnRhYnNTZXJ2aWNlLnRhYkNvbnRlbnRWaWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyhhKX1uZ09uRGVzdHJveSgpe2NvbnN0IGE9dGhpcy50YWJzU2VydmljZS50YWJDb250ZW50Vmlld0NvbnRhaW5lci5pbmRleE9m'@; put 'KHRoaXMudmlld1JlZik7YT4tMSYmdGhpcy50YWJzU2VydmljZS50YWJDb250ZW50Vmlld0NvbnRhaW5lci5yZW1vdmUoYSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKCRlKGY3KSwkZShSYiksJGUoR3gpKX0sYy5cdTAyNzVjbXA9TnIoe3R5cGU6'@; put 'YyxzZWxlY3RvcnM6W1siY2xyLXRhYi1jb250ZW50Il1dLHZpZXdRdWVyeTpmdW5jdGlvbihhLGQpe2lmKDEmYSYmRmEoTU5lLDcpLDImYSl7bGV0IGg7eWkoaD1iaSgpKSYmKGQudGVtcGxhdGVSZWY9aC5maXJzdCl9fSxpbnB1dHM6e3RhYkNvbnRlbnRJZDpbVm4uTm9uZSwiaWQiLCJ0YWJD'@; put 'b250ZW50SWQiXX0sbmdDb250ZW50U2VsZWN0b3JzOnlzLGRlY2xzOjIsdmFyczowLGNvbnN0czpbWyJ0YWJDb250ZW50UHJvamVjdGVkUmVmIiwiIl0sWyJyb2xlIiwidGFicGFuZWwiLDEsInRhYi1jb250ZW50IiwzLCJpZCIsImhpZGRlbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEm'@; put 'YSYmKHNhKCksZ3QoMCx4TmUsMiw2LCJuZy10ZW1wbGF0ZSIsbnVsbCwwLGdjKSl9LGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLGRaZT0wO2NvbnN0IEpZPW5ldyBTdCgiVEFCU19JRCIpLGZaZT17cHJvdmlkZTpKWSx1c2VGYWN0b3J5OmZ1bmN0aW9uIGhaZSgpe3JldHVybiJjbHItdGFicy0i'@; put 'K2RaZSsrfX07bGV0IHBaZT0wLHltPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZix2LE0sSSl7dGhpcy5pZkFjdGl2ZVNlcnZpY2U9YSx0aGlzLmlkPWQsdGhpcy5lbD1oLHRoaXMudGFic1NlcnZpY2U9TSx0aGlzLnRhYnNJZD1JLHRoaXMudGFiTGlua0lkfHwodGhpcy50YWJM'@; put 'aW5rSWQ9ImNsci10YWItbGluay0iK3BaZSsrKTtjb25zdCBHPWYucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkocGRlKTt0aGlzLnRlbXBsYXRlUmVmQ29udGFpbmVyPXYuY3JlYXRlQ29tcG9uZW50KEcsdm9pZCAwLHZvaWQgMCxbW2gubmF0aXZlRWxlbWVudF1dKS5pbnN0YW5jZX1nZXQgaW5P'@; put 'dmVyZmxvdygpe3JldHVybiB0aGlzLl9pbk92ZXJmbG93JiZ0aGlzLnRhYnNTZXJ2aWNlLmxheW91dCE9PU03LlZFUlRJQ0FMfXNldCBpbk92ZXJmbG93KGEpe3RoaXMuX2luT3ZlcmZsb3c9YX1nZXQgYWRkTGlua0NsYXNzZXMoKXtyZXR1cm4hdGhpcy5pbk92ZXJmbG93fWdldCBhcmlhQ29u'@; put 'dHJvbHMoKXtyZXR1cm4gdGhpcy50YWJzU2VydmljZS5jaGlsZHJlbi5maW5kKGE9PmEudGFiTGluaz09PXRoaXMpPy50YWJDb250ZW50Py50YWJDb250ZW50SWR9Z2V0IGFjdGl2ZSgpe3JldHVybiB0aGlzLmlmQWN0aXZlU2VydmljZS5jdXJyZW50PT09dGhpcy5pZH1nZXQgdGFiaW5kZXgo'@; put 'KXtyZXR1cm4gdGhpcy5hY3RpdmU/MDotMX1hY3RpdmF0ZSgpe3RoaXMuaWZBY3RpdmVTZXJ2aWNlLmN1cnJlbnQ9dGhpcy5pZH19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoJGUoZjcpLCRlKFJiKSwkZShRaSksJGUoejUpLCRlKFRzKSwkZShHeCks'@; put 'JGUoSlkpKX0sYy5cdTAyNzVkaXI9RXIoe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwiY2xyVGFiTGluayIsIiJdXSxob3N0QXR0cnM6WyJyb2xlIiwidGFiIiwidHlwZSIsImJ1dHRvbiJdLGhvc3RWYXJzOjEyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezEmYSYmRnQoImNsaWNrIixmdW5j'@; put 'dGlvbigpe3JldHVybiBkLmFjdGl2YXRlKCl9KSwyJmEmJihvcCgiaWQiLGQudGFiTGlua0lkKSxocigiYXJpYS1jb250cm9scyIsZC5hcmlhQ29udHJvbHMpKCJhcmlhLXNlbGVjdGVkIixkLmFjdGl2ZSkoInRhYmluZGV4IixkLnRhYmluZGV4KSxUcigiYnRuIiwhMCkoImJ0bi1saW5rIixk'@; put 'LmFkZExpbmtDbGFzc2VzKSgibmF2LWxpbmsiLGQuYWRkTGlua0NsYXNzZXMpKCJhY3RpdmUiLGQuYWN0aXZlKSl9LGlucHV0czp7dGFiTGlua0lkOltWbi5Ob25lLCJpZCIsInRhYkxpbmtJZCJdLGluT3ZlcmZsb3c6W1ZuLk5vbmUsImNsclRhYkxpbmtJbk92ZXJmbG93IiwiaW5PdmVyZmxv'@; put 'dyJdfX0pLGN9KSgpLGJtPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgpe3RoaXMuaWZBY3RpdmVTZXJ2aWNlPWEsdGhpcy5pZD1kLHRoaXMudGFic1NlcnZpY2U9aCxoLnJlZ2lzdGVyKHRoaXMpfWdldCBhY3RpdmUoKXtyZXR1cm4gdGhpcy5pZkFjdGl2ZVNlcnZpY2UuY3VycmVu'@; put 'dD09PXRoaXMuaWR9bmdPbkRlc3Ryb3koKXt0aGlzLnRhYnNTZXJ2aWNlLnVucmVnaXN0ZXIodGhpcyl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKCRlKGY3KSwkZShSYiksJGUoR3gpKX0sYy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6'@; put 'W1siY2xyLXRhYiJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihhLGQsaCl7aWYoMSZhJiYoYXMoaCx5bSw3KSxhcyhoLHZtLDcpKSwyJmEpe2xldCBmO3lpKGY9YmkoKSkmJihkLnRhYkxpbms9Zi5maXJzdCkseWkoZj1iaSgpKSYmKGQudGFiQ29udGVudD1mLmZpcnN0KX19LGZlYXR1cmVz'@; put 'Olt1YShbdlVlXSldLG5nQ29udGVudFNlbGVjdG9yczp5cyxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKHNhKCksV3IoMCkpfSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxnZGU9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEp'@; put 'e3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsImNsclRhYkFjdGlvbiIsIiJdXSxob3N0QXR0cnM6WyJ0YWJpbmRleCIsIjAiXX0pLGN9KSgpLFFZPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1'@; put 'cm4gbmV3KGF8fGMpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItdGFiLW92ZXJmbG93LWNvbnRlbnQiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsyJmEmJlRyKCJkcm9wZG93bi1tZW51IiwhMCl9LG5nQ29udGVudFNlbGVjdG9yczp5'@; put 'cyxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKHNhKCksV3IoMCkpfSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSx4Nz0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYsdil7dGhpcy5pZkFjdGl2ZVNlcnZpY2U9YSx0aGlzLnRvZ2dsZVNlcnZpY2U9'@; put 'ZCx0aGlzLnRhYnNTZXJ2aWNlPWgsdGhpcy50YWJzSWQ9Zix0aGlzLmNvbW1vblN0cmluZ3M9dix0aGlzLnRhYkxpbmtFbGVtZW50cz1bXSx0aGlzLl9tb3VzZWRvd249ITEsdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMuX3RhYkxpbmtEaXJlY3RpdmVzPVtdfWdldCBsYXlvdXQoKXtyZXR1'@; put 'cm4gdGhpcy50YWJzU2VydmljZS5sYXlvdXR9c2V0IGxheW91dChhKXtPYmplY3Qua2V5cyhNNykubWFwKGQ9Pk03W2RdKS5pbmRleE9mKGEpPj0wJiYodGhpcy50YWJzU2VydmljZS5sYXlvdXQ9YSl9Z2V0IHRhYkxpbmtEaXJlY3RpdmVzKCl7cmV0dXJuIHRoaXMuX3RhYkxpbmtEaXJlY3Rp'@; put 'dmVzfWdldCBhY3RpdmVUYWJJbk92ZXJmbG93KCl7cmV0dXJuIHRoaXMudGFic1NlcnZpY2Uub3ZlcmZsb3dUYWJzLmluZGV4T2YodGhpcy50YWJzU2VydmljZS5hY3RpdmVUYWIpPi0xfWdldCBhY3RpdmVUYWJQb3NpdGlvbigpe3JldHVybiB0aGlzLl90YWJMaW5rRGlyZWN0aXZlcy5maW5k'@; put 'SW5kZXgoYT0+YS5hY3RpdmUpfWdldCBpc0N1cnJlbnRJbk92ZXJmbG93KCl7cmV0dXJuIHRoaXMua2V5Rm9jdXMuY3VycmVudD49dGhpcy5vdmVyZmxvd1Bvc2l0aW9ufWdldCBpc1ZlcnRpY2FsKCl7cmV0dXJuIHRoaXMubGF5b3V0PT09TTcuVkVSVElDQUx9c2V0IHRhYk92ZXJmbG93RWwo'@; put 'YSl7dGhpcy5fdGFiT3ZlcmZsb3dFbD1hJiZhLm5hdGl2ZUVsZW1lbnQsdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4mJmEmJnRoaXMua2V5Rm9jdXMuZm9jdXNDdXJyZW50KCl9Z2V0IG92ZXJmbG93UG9zaXRpb24oKXtyZXR1cm4gdGhpcy5fdGFiTGlua0RpcmVjdGl2ZXMuZmlsdGVyKGE9PiFh'@; put 'LmluT3ZlcmZsb3cpLmxlbmd0aH1zZXQgdGFiQ29udGVudFZpZXdDb250YWluZXIoYSl7dGhpcy50YWJzU2VydmljZS50YWJDb250ZW50Vmlld0NvbnRhaW5lcj1hfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubGlzdGVuRm9yVGFiTGlua0NoYW5n'@; put 'ZXMoKSksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5saXN0ZWRGb3JUYWJzQWN0aW9uc0NoYW5nZXMoKSksdHlwZW9mIHRoaXMuaWZBY3RpdmVTZXJ2aWNlLmN1cnJlbnQ+InUiJiZ0aGlzLnRhYkxpbmtEaXJlY3RpdmVzWzBdJiZ0aGlzLnRhYkxpbmtEaXJlY3RpdmVzWzBdLmFjdGl2'@; put 'YXRlKCksdGhpcy5rZXlGb2N1cy5jdXJyZW50PXRoaXMuYWN0aXZlVGFiUG9zaXRpb259bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChhPT57YS51bnN1YnNjcmliZSgpfSl9dG9nZ2xlT3ZlcmZsb3dPblBvc2l0aW9uKGEpe3RoaXMudG9nZ2xlU2VydmljZS5vcGVu'@; put 'PWE+PXRoaXMub3ZlcmZsb3dQb3NpdGlvbn1yZXNldEtleUZvY3VzQ3VycmVudFRvQWN0aXZlKGEpeyF0aGlzLmtleUZvY3VzLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoYS5yZWxhdGVkVGFyZ2V0KSYmdGhpcy5rZXlGb2N1cy5jdXJyZW50IT09dGhpcy5hY3RpdmVUYWJQb3NpdGlvbiYmKHRo'@; put 'aXMua2V5Rm9jdXMuY3VycmVudD10aGlzLmFjdGl2ZVRhYlBvc2l0aW9uKX10b2dnbGVPdmVyZmxvd09uQ2xpY2soKXt0aGlzLmtleUZvY3VzLm1vdmVUbyh0aGlzLmlzQ3VycmVudEluT3ZlcmZsb3cmJnRoaXMudG9nZ2xlU2VydmljZS5vcGVuP3RoaXMub3ZlcmZsb3dQb3NpdGlvbi0xOnRo'@; put 'aXMub3ZlcmZsb3dQb3NpdGlvbiksdGhpcy5fbW91c2Vkb3duPSExfW9wZW5PdmVyZmxvd09uRm9jdXMoKXshdGhpcy5fbW91c2Vkb3duJiYhdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4mJnRoaXMua2V5Rm9jdXMubW92ZVRvKHRoaXMuYWN0aXZlVGFiUG9zaXRpb24pfWNsb3NlT25Gb2N1c091'@; put 'dChhKXshdGhpcy5fdGFiT3ZlcmZsb3dFbC5jb250YWlucyhhLnJlbGF0ZWRUYXJnZXQpJiZ0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbiYmIXRoaXMuX21vdXNlZG93biYmKHRoaXMudG9nZ2xlU2VydmljZS5vcGVuPSExLHRoaXMudGFiTGlua0VsZW1lbnRzW3RoaXMuYWN0aXZlVGFiUG9zaXRp'@; put 'b25dPT09YS5yZWxhdGVkVGFyZ2V0JiYodGhpcy5rZXlGb2N1cy5jdXJyZW50PXRoaXMuYWN0aXZlVGFiUG9zaXRpb24pKX1jbG9zZU9uRXNjYXBlS2V5KCl7dGhpcy5rZXlGb2N1cy5tb3ZlVG8odGhpcy5vdmVyZmxvd1Bvc2l0aW9uLTEpfWNsb3NlT25PdXRzaWRlQ2xpY2soYSxkKXtjb25z'@; put 'dCBoPXRoaXMudGFic0FjdGlvbnMuc29tZShmPT5mLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoYS50YXJnZXQpKTthLnRhcmdldD09PWR8fGQuY29udGFpbnMoYS50YXJnZXQpfHxofHwhdGhpcy5fdGFiT3ZlcmZsb3dFbC5jb250YWlucyhhLnRhcmdldCkmJnRoaXMuaXNDdXJyZW50SW5PdmVy'@; put 'ZmxvdyYmdGhpcy5rZXlGb2N1cy5tb3ZlVG8odGhpcy5vdmVyZmxvd1Bvc2l0aW9uLTEpfXNldFRhYkxpbmtFbGVtZW50cygpe3RoaXMuX3RhYkxpbmtEaXJlY3RpdmVzPXRoaXMudGFicy5tYXAoYT0+YS50YWJMaW5rKSx0aGlzLnRhYkxpbmtFbGVtZW50cz10aGlzLl90YWJMaW5rRGlyZWN0'@; put 'aXZlcy5tYXAoYT0+YS5lbC5uYXRpdmVFbGVtZW50KSx0aGlzLnRhYnNBY3Rpb25zJiZ0aGlzLnRhYnNBY3Rpb25zJiZ0aGlzLnRhYkxpbmtFbGVtZW50cy5wdXNoKC4uLnRoaXMudGFic0FjdGlvbnMubWFwKGE9PmEubmF0aXZlRWxlbWVudCkpfWxpc3RlbkZvclRhYkxpbmtDaGFuZ2VzKCl7'@; put 'cmV0dXJuIHRoaXMudGFicy5jaGFuZ2VzLnBpcGUoVDIodGhpcy50YWJzLm1hcChhPT5hLnRhYkxpbmspKSkuc3Vic2NyaWJlKCgpPT50aGlzLnNldFRhYkxpbmtFbGVtZW50cygpKX1saXN0ZWRGb3JUYWJzQWN0aW9uc0NoYW5nZXMoKXtyZXR1cm4gdGhpcy50YWJzQWN0aW9ucy5jaGFuZ2Vz'@; put 'LnN1YnNjcmliZSgoKT0+dGhpcy5zZXRUYWJMaW5rRWxlbWVudHMoKSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKCRlKGY3KSwkZShzYyksJGUoR3gpLCRlKEpZKSwkZSh0bykpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJj'@; put 'bHItdGFicyJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihhLGQsaCl7aWYoMSZhJiYoYXMoaCxnZGUsNSxRaSksYXMoaCxibSw0KSksMiZhKXtsZXQgZjt5aShmPWJpKCkpJiYoZC50YWJzQWN0aW9ucz1mKSx5aShmPWJpKCkpJiYoZC50YWJzPWYpfX0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGEs'@; put 'ZCl7aWYoMSZhJiYoRmEoTmIsNyksRmEoUVksNSxRaSksRmEoRU5lLDcsVHMpKSwyJmEpe2xldCBoO3lpKGg9YmkoKSkmJihkLmtleUZvY3VzPWguZmlyc3QpLHlpKGg9YmkoKSkmJihkLnRhYk92ZXJmbG93RWw9aC5maXJzdCkseWkoaD1iaSgpKSYmKGQudGFiQ29udGVudFZpZXdDb250YWlu'@; put 'ZXI9aC5maXJzdCl9fSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmVHIoInRhYnMtdmVydGljYWwiLGQuaXNWZXJ0aWNhbCl9LGlucHV0czp7bGF5b3V0OltWbi5Ob25lLCJjbHJMYXlvdXQiLCJsYXlvdXQiXX0sZmVhdHVyZXM6W3VhKFtmNyxHeCxmWmVdKSx5'@; put 'ZChbYWddKV0sbmdDb250ZW50U2VsZWN0b3JzOkFOZSxkZWNsczo2LHZhcnM6Myxjb25zdHM6W1sidGFiQ29udGVudFZpZXdDb250YWluZXIiLCIiXSxbInRhYk92ZXJmbG93VHJpZ2dlciIsIiJdLFsicm9sZSIsInRhYmxpc3QiLCJjbHJEaXJlY3Rpb24iLCJib3RoIiwxLCJuYXYiLDMsImNs'@; put 'ckZvY3VzQ2hhbmdlIiwiZm9jdXNvdXQiLCJjbHJLZXlGb2N1cyJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbNCwibmdJZiJdLFsicm9sZSIsInByZXNlbnRhdGlvbiIsMSwibmF2LWl0ZW0iXSxbMywibmdUZW1wbGF0ZU91dGxldCJdLFsicm9sZSIsInByZXNlbnRhdGlvbiIsMSwidGFicy1v'@; put 'dmVyZmxvdyIsImJvdHRvbS1yaWdodCJdLFsicm9sZSIsImFwcGxpY2F0aW9uIiwxLCJuYXYtaXRlbSJdLFsidHlwZSIsImJ1dHRvbiIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwiYnRuIiwiYnRuLWxpbmsiLCJuYXYtbGluayIsImRyb3Bkb3duLXRvZ2dsZSIsMywibW91c2Vkb3duIiwiZm9j'@; put 'dXMiLCJjbGljayJdLFsic2hhcGUiLCJlbGxpcHNpcy1ob3Jpem9udGFsIl0sWzMsImtleWRvd24uZXNjYXBlIiwiY2xpY2siLCJmb2N1c291dCIsNCwibmdJZiJdLFszLCJrZXlkb3duLmVzY2FwZSIsImNsaWNrIiwiZm9jdXNvdXQiXSxbMywibmdUZW1wbGF0ZU91dGxldCIsNCwibmdJZiJd'@; put 'XSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpe2lmKDEmYSl7Y29uc3QgaD1PbigpO3NhKFROZSksZGUoMCwidWwiLDIpLEZ0KCJjbHJGb2N1c0NoYW5nZSIsZnVuY3Rpb24odil7cmV0dXJuIHd0KGgpLEN0KGQudG9nZ2xlT3ZlcmZsb3dPblBvc2l0aW9uKHYpKX0pKCJmb2N1c291dCIsZnVuY3Rp'@; put 'b24odil7cmV0dXJuIHd0KGgpLEN0KGQucmVzZXRLZXlGb2N1c0N1cnJlbnRUb0FjdGl2ZSh2KSl9KSxndCgxLEROZSwyLDEsIm5nLWNvbnRhaW5lciIsMykoMixPTmUsNywxMSwibmctY29udGFpbmVyIiw0KSxXcigzKSxoZSgpLExsKDQsbnVsbCwwKX0yJmEmJihNZSgiY2xyS2V5Rm9jdXMi'@; put 'LGQudGFiTGlua0VsZW1lbnRzKSxmZSgpLE1lKCJuZ0Zvck9mIixkLnRhYkxpbmtEaXJlY3RpdmVzKSxmZSgpLE1lKCJuZ0lmIixkLnRhYnNTZXJ2aWNlLm92ZXJmbG93VGFicy5sZW5ndGg+MCkpfSxkZXBlbmRlbmNpZXM6W1FzLGJhLEIxLGVvLE5iLFFZXSxlbmNhcHN1bGF0aW9uOjJ9KSxj'@; put 'fSkoKSxnWmU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe0VvLmFkZEljb25zKEgwZSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9QXIoe2ltcG9ydHM6W0xhLEYyLFRvLGNa'@; put 'ZSxYWSxGMl19KSxjfSkoKSxlRz0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5uYXZHcm91cENvdW50PTB9cmVnaXN0ZXJOYXZHcm91cCgpe3RoaXMubmF2R3JvdXBDb3VudCsrfXVucmVnaXN0ZXJOYXZHcm91cCgpe3RoaXMubmF2R3JvdXBDb3VudC0tfX1yZXR1cm4gYy5cdTAy'@; put 'NzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSx0Rz0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5faWNvbnM9MH1nZXQgaGFzSWNvbnMoKXtyZXR1cm4gdGhpcy5faWNv'@; put 'bnM+MH1yZWdpc3Rlckljb24oKXt0aGlzLl9pY29ucysrfXVucmVnaXN0ZXJJY29uKCl7dGhpcy5faWNvbnMtLX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30p'@; put 'KCksbkc9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2FuaW1hdGVPbkNvbGxhcHNlZD1uZXcgR24sdGhpcy5fY29sbGFwc2VkQ2hhbmdlZD1uZXcgR24sdGhpcy5fY29sbGFwc2VkPSExLHRoaXMuX2NvbGxhcHNpYmxlPSExfWdldCBhbmltYXRlT25Db2xsYXBzZWQoKXtyZXR1'@; put 'cm4gdGhpcy5fYW5pbWF0ZU9uQ29sbGFwc2VkLmFzT2JzZXJ2YWJsZSgpfWdldCBjb2xsYXBzZWRDaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX2NvbGxhcHNlZENoYW5nZWQuYXNPYnNlcnZhYmxlKCl9Z2V0IGNvbGxhcHNlZCgpe3JldHVybiB0aGlzLl9jb2xsYXBzZWR9c2V0IGNvbGxhcHNlZChh'@; put 'KXthPSEhYSx0aGlzLmNvbGxhcHNpYmxlJiZ0aGlzLl9jb2xsYXBzZWQhPT1hJiZ0aGlzLnVwZGF0ZUNvbGxhcHNlQmVoYXZpb3IoYSl9Z2V0IGNvbGxhcHNpYmxlKCl7cmV0dXJuIHRoaXMuX2NvbGxhcHNpYmxlfXNldCBjb2xsYXBzaWJsZShhKXt0aGlzLl9jb2xsYXBzaWJsZSE9PShhPSEh'@; put 'YSkmJighYSYmdGhpcy5jb2xsYXBzZWQmJnRoaXMudXBkYXRlQ29sbGFwc2VCZWhhdmlvcighMSksdGhpcy5fY29sbGFwc2libGU9YSl9dXBkYXRlQ29sbGFwc2VCZWhhdmlvcihhKXt0aGlzLl9hbmltYXRlT25Db2xsYXBzZWQubmV4dChhKSx0aGlzLl9jb2xsYXBzZWQ9YSx0aGlzLl9jb2xs'@; put 'YXBzZWRDaGFuZ2VkLm5leHQoYSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpLHJHPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZil7dGhp'@; put 'cy5fbmF2U2VydmljZT1hLHRoaXMuX25hdkljb25TZXJ2aWNlPWQsdGhpcy5fbmF2R3JvdXBSZWdpc3RyYXRpb25TZXJ2aWNlPWgsdGhpcy5jb21tb25TdHJpbmdzPWYsdGhpcy5jb250ZW50SWQ9X3UoKSx0aGlzLl9jb2xsYXBzZWRDaGFuZ2VkPW5ldyBLcighMCksdGhpcy5fc3ViPWEuY29s'@; put 'bGFwc2VkQ2hhbmdlZC5zdWJzY3JpYmUodj0+e3RoaXMuX2NvbGxhcHNlZENoYW5nZWQuZW1pdCh2KX0pfWdldCBjb2xsYXBzaWJsZSgpe3JldHVybiB0aGlzLl9uYXZTZXJ2aWNlLmNvbGxhcHNpYmxlfXNldCBjb2xsYXBzaWJsZShhKXt0aGlzLl9uYXZTZXJ2aWNlLmNvbGxhcHNpYmxlPWF9'@; put 'Z2V0IGNvbGxhcHNlZCgpe3JldHVybiB0aGlzLl9uYXZTZXJ2aWNlLmNvbGxhcHNlZH1zZXQgY29sbGFwc2VkKGEpe3RoaXMuX25hdlNlcnZpY2UuY29sbGFwc2VkPWF9Z2V0IGhhc05hdkdyb3Vwcygpe3JldHVybiB0aGlzLl9uYXZHcm91cFJlZ2lzdHJhdGlvblNlcnZpY2UubmF2R3JvdXBD'@; put 'b3VudD4wfWdldCBoYXNJY29ucygpe3JldHVybiB0aGlzLl9uYXZJY29uU2VydmljZS5oYXNJY29uc31nZXQgYXJpYUV4cGFuZGVkKCl7cmV0dXJuIHRoaXMuY29sbGFwc2libGU/dGhpcy5jb2xsYXBzZWQ/ImZhbHNlIjoidHJ1ZSI6bnVsbH1uZ09uRGVzdHJveSgpe3RoaXMuX3N1Yi51bnN1'@; put 'YnNjcmliZSgpfXRvZ2dsZUJ5QnV0dG9uKCl7dGhpcy5jb2xsYXBzZWQ9IXRoaXMuY29sbGFwc2VkfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZShuRyksJGUodEcpLCRlKGVHKSwkZSh0bykpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVj'@; put 'dG9yczpbWyJjbHItdmVydGljYWwtbmF2Il1dLGhvc3RBdHRyczpbMSwiY2xyLXZlcnRpY2FsLW5hdiJdLGhvc3RWYXJzOjYsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZUcigiaXMtY29sbGFwc2VkIixkLmNvbGxhcHNlZCkoImhhcy1uYXYtZ3JvdXBzIixkLmhhc05hdkdyb3Vw'@; put 'cykoImhhcy1pY29ucyIsZC5oYXNJY29ucyl9LGlucHV0czp7dG9nZ2xlTGFiZWw6W1ZuLk5vbmUsImNsclZlcnRpY2FsTmF2VG9nZ2xlTGFiZWwiLCJ0b2dnbGVMYWJlbCJdLGNvbGxhcHNpYmxlOltWbi5Ob25lLCJjbHJWZXJ0aWNhbE5hdkNvbGxhcHNpYmxlIiwiY29sbGFwc2libGUiXSxj'@; put 'b2xsYXBzZWQ6W1ZuLk5vbmUsImNsclZlcnRpY2FsTmF2Q29sbGFwc2VkIiwiY29sbGFwc2VkIl19LG91dHB1dHM6e19jb2xsYXBzZWRDaGFuZ2VkOiJjbHJWZXJ0aWNhbE5hdkNvbGxhcHNlZENoYW5nZSJ9LGZlYXR1cmVzOlt1YShbbkcsdEcsZUddKV0sbmdDb250ZW50U2VsZWN0b3JzOnlz'@; put 'LGRlY2xzOjQsdmFyczozLGNvbnN0czpbWyJ0eXBlIiwiYnV0dG9uIiwiY2xhc3MiLCJuYXYtdHJpZ2dlciIsMywib24tY29sbGFwc2UiLCJjbGljayIsNCwibmdJZiJdLFsxLCJuYXYtY29udGVudCIsMywiaWQiXSxbInR5cGUiLCJidXR0b24iLCJjbGFzcyIsIm5hdi1idG4iLCJhcmlhLWhp'@; put 'ZGRlbiIsInRydWUiLCJ0YWJpbmRleCIsIi0xIiwzLCJjbGljayIsNCwibmdJZiJdLFsidHlwZSIsImJ1dHRvbiIsMSwibmF2LXRyaWdnZXIiLDMsImNsaWNrIl0sWyJzaGFwZSIsImFuZ2xlLWRvdWJsZSIsMSwibmF2LXRyaWdnZXItaWNvbiJdLFsidHlwZSIsImJ1dHRvbiIsImFyaWEtaGlk'@; put 'ZGVuIiwidHJ1ZSIsInRhYmluZGV4IiwiLTEiLDEsIm5hdi1idG4iLDMsImNsaWNrIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoc2EoKSxndCgwLFBOZSwyLDYsImJ1dHRvbiIsMCksZGUoMSwiZGl2IiwxKSxXcigyKSxndCgzLEZOZSwxLDIsImJ1dHRvbiIsMiksaGUoKSksMiZh'@; put 'JiYoTWUoIm5nSWYiLGQuY29sbGFwc2libGUpLGZlKCksTWUoImlkIixkLmNvbnRlbnRJZCksZmUoMiksTWUoIm5nSWYiLGQuY29sbGFwc2libGUmJmQuY29sbGFwc2VkKSl9LGRlcGVuZGVuY2llczpbYmEsZW9dLGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLGlHPSgoKT0+e2NsYXNzIGN7Y29u'@; put 'c3RydWN0b3IoKXt0aGlzLl9leHBhbmRDaGFuZ2U9bmV3IEdufWdldCBleHBhbmRDaGFuZ2UoKXtyZXR1cm4gdGhpcy5fZXhwYW5kQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpfWV4cGFuZCgpe3RoaXMuX2V4cGFuZENoYW5nZS5uZXh0KCEwKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEp'@; put 'e3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCksYUc9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCl7dGhpcy5kZXN0cm95JD1uZXcgR24saCYmeGQoYS5uYXRpdmVFbGVtZW50LCJjbGljayIpLnBpcGUo'@; put 'SDAodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKT0+e2guZXhwYW5kKCksZC5tYXJrRm9yQ2hlY2soKX0pfW5nT25EZXN0cm95KCl7dGhpcy5kZXN0cm95JC5uZXh0KCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKCRlKFFpKSwkZSh4byksJGUo'@; put 'aUcsOCkpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJjbHJWZXJ0aWNhbE5hdkxpbmsiLCIiXV0saG9zdEF0dHJzOlsxLCJuYXYtbGluayJdLGF0dHJzOlZOZSxuZ0NvbnRlbnRTZWxlY3RvcnM6ak5lLGRlY2xzOjMsdmFyczowLGNvbnN0czpbWzEsIm5hdi10ZXh0'@; put 'Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoc2EoQk5lKSxXcigwKSxkZSgxLCJzcGFuIiwwKSxXcigyLDEpLGhlKCkpfSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxtZGU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe0VvLmFkZEljb25zKENiLFYwZSl9fXJldHVybiBjLlx1'@; put 'MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9QXIoe2ltcG9ydHM6W0xhLFRvLEYyLFpMLEYyLFRvLFpMXX0pLGN9KSgpLGJaZT0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24o'@; put 'YSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9QWkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPUFyKHtpbXBvcnRzOltuWmUsbFplLGdaZSxtZGUsdFplXX0pLGN9KSgpLEJiPSgoKT0+e2NsYXNzIGMgZXh0ZW5kcyBYMGV7Y29uc3RydWN0b3IoYSxkLGgpe3N1cGVyKGEsZCxoKX19cmV0'@; put 'dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoJGUoUWkpLCRlKHdZKSwkZShtbyw4KSl9LGMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsImNka1RyYXBGb2N1cyIsIiJdXSxmZWF0dXJlczpbQ2FdfSksY30pKCksUUw9KCgpPT57Y2xhc3Mg'@; put 'Y3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1Bcih7fSksY30pKCk7Y29uc3Qgd1plPS9kKy4rbSsuK3krL2ksQ1plPS9tKy4rZCsuK3krL2ksU1plPS9kK3xtK3x5Ky9pLE1aZT0v'@; put 'XGQrL2cseFplPS9Nb2JpL2ksRVplPS9cdTIwMGYvZyxzRz0iWVlZWSIsZU89e25hbWU6IkxJVFRMRV9FTkRJQU4iLGZvcm1hdDpbIkREIiwiTU0iLHNHXX0sY0c9e25hbWU6Ik1JRERMRV9FTkRJQU4iLGZvcm1hdDpbIk1NIiwiREQiLHNHXX0sVFplPXtuYW1lOiJCSUdfRU5ESUFOIixmb3Jt'@; put 'YXQ6W3NHLCJNTSIsIkREIl19O2Z1bmN0aW9uIHlkZShjLGwpe3JldHVybiBuZXcgRGF0ZShjLGwrMSwwKS5nZXREYXRlKCl9Y2xhc3MgUlple2NvbnN0cnVjdG9yKGwsYT0hMSxkPSExLGg9ITEsZj0hMSx2PSExLE09ITEsST0hMSl7dGhpcy5kYXlNb2RlbD1sLHRoaXMuaXNUb2RheXNEYXRl'@; put 'PWEsdGhpcy5pc0V4Y2x1ZGVkPWQsdGhpcy5pc0Rpc2FibGVkPWgsdGhpcy5pc1NlbGVjdGVkPWYsdGhpcy5pc0ZvY3VzYWJsZT12LHRoaXMuaXNSYW5nZVN0YXJ0RGF5PU0sdGhpcy5pc1JhbmdlRW5kRGF5PUl9Z2V0IHRhYkluZGV4KCl7cmV0dXJuIHRoaXMuaXNGb2N1c2FibGU/MDotMX19'@; put 'Y2xhc3MgTGR7Y29uc3RydWN0b3IobCxhLGQpe3RoaXMueWVhcj1sLHRoaXMubW9udGg9YSx0aGlzLmRhdGU9ZH1pc0VxdWFsKGwpe3JldHVybiEhbCYmdGhpcy55ZWFyPT09bC55ZWFyJiZ0aGlzLm1vbnRoPT09bC5tb250aCYmdGhpcy5kYXRlPT09bC5kYXRlfXRvRGF0ZSgpe3JldHVybiBu'@; put 'ZXcgRGF0ZSh0aGlzLnllYXIsdGhpcy5tb250aCx0aGlzLmRhdGUpfWluY3JlbWVudEJ5KGwpe2NvbnN0IGE9bmV3IERhdGUodGhpcy55ZWFyLHRoaXMubW9udGgsdGhpcy5kYXRlK2wpO3JldHVybiBuZXcgTGQoYS5nZXRGdWxsWWVhcigpLGEuZ2V0TW9udGgoKSxhLmdldERhdGUoKSl9Y2xv'@; put 'bmUoKXtyZXR1cm4gbmV3IExkKHRoaXMueWVhcix0aGlzLm1vbnRoLHRoaXMuZGF0ZSl9dG9Db21wYXJpc29uU3RyaW5nKCl7cmV0dXJuYCR7dGhpcy55ZWFyfSR7dGhpcy5wYWQodGhpcy5tb250aCl9JHt0aGlzLnBhZCh0aGlzLmRhdGUpfWB9dG9EYXRlU3RyaW5nKCl7cmV0dXJuIHRoaXMu'@; put 'dG9EYXRlKCkudG9Mb2NhbGVEYXRlU3RyaW5nKHZvaWQgMCx7d2Vla2RheToibG9uZyIsbW9udGg6ImxvbmciLGRheToibnVtZXJpYyIseWVhcjoibnVtZXJpYyJ9KX1pc0JlZm9yZShsLGE9ITEpe3JldHVybiBhP3RoaXMudG9EYXRlKCkuZ2V0VGltZSgpPD1sPy50b0RhdGUoKS5nZXRUaW1l'@; put 'KCk6dGhpcy50b0RhdGUoKS5nZXRUaW1lKCk8bD8udG9EYXRlKCkuZ2V0VGltZSgpfWlzQWZ0ZXIobCxhPSExKXtyZXR1cm4gYT90aGlzLnRvRGF0ZSgpLmdldFRpbWUoKT49bD8udG9EYXRlKCkuZ2V0VGltZSgpOnRoaXMudG9EYXRlKCkuZ2V0VGltZSgpPmw/LnRvRGF0ZSgpLmdldFRpbWUo'@; put 'KX1wYWQobCl7cmV0dXJuIGw8MTA/YDAke2x9YDpgJHtsfWB9fWNsYXNzIExaZXtjb25zdHJ1Y3RvcihsLGEsZCxoLGYsdixNKXt0aGlzLmNhbGVuZGFyPWwsdGhpcy5zZWxlY3RlZERheT1hLHRoaXMuc2VsZWN0ZWRFbmREYXk9ZCx0aGlzLmZvY3VzYWJsZURheT1oLHRoaXMudG9kYXk9Zix0'@; put 'aGlzLmZpcnN0RGF5T2ZXZWVrPXYsdGhpcy5leGNsdWRlZERhdGVzPU0sdGhpcy5jdXJyTW9udGhEYXlWaWV3cz1bXSx0aGlzLmluaXRpYWxpemVDYWxlbmRhclZpZXcoKX1nZXQgY2FsZW5kYXJWaWV3KCl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyVmlld311cGRhdGVGb2N1c2FibGVEYXkobCl7'@; put 'dGhpcy5zZXRGb2N1c2FibGVGbGFnKHRoaXMuZm9jdXNhYmxlRGF5LCExKSx0aGlzLnNldEZvY3VzYWJsZUZsYWcobCwhMCksdGhpcy5mb2N1c2FibGVEYXk9bH11cGRhdGVTZWxlY3RlZERheShsKXt0aGlzLnNldFNlbGVjdGVkRGF5KHRoaXMuc2VsZWN0ZWREYXksITEpLHRoaXMuc2VsZWN0'@; put 'ZWREYXk9bCx0aGlzLnNldFNlbGVjdGVkRGF5KGwsITApfXVwZGF0ZVNlbGVjdGVkRW5kRGF5KGwpe3RoaXMuc2V0U2VsZWN0ZWREYXkodGhpcy5zZWxlY3RlZEVuZERheSwhMSksdGhpcy5zZWxlY3RlZEVuZERheT1sLHRoaXMuc2V0U2VsZWN0ZWREYXkobCwhMCl9aW5pdGlhbGl6ZUNhbGVu'@; put 'ZGFyVmlldygpe2NvbnN0IGw9dGhpcy5jYWxlbmRhci5wcmV2aW91c01vbnRoKCksYT10aGlzLmNhbGVuZGFyLm5leHRNb250aCgpLGQ9dGhpcy5udW1EYXlzRnJvbVByZXZNb250aEluQ2FsVmlldyh0aGlzLmNhbGVuZGFyLnllYXIsdGhpcy5jYWxlbmRhci5tb250aCksaD00Mi0odGhpcy5j'@; put 'YWxlbmRhci5kYXlzLmxlbmd0aCtkKTtsZXQgZj1bXSx2PVtdO2Q+MCYmKGY9dGhpcy5nZW5lcmF0ZURheVZpZXdNb2RlbHMobC5kYXlzLnNsaWNlKC0xKmQpLCEwLCExKSksdGhpcy5jdXJyTW9udGhEYXlWaWV3cz10aGlzLmdlbmVyYXRlRGF5Vmlld01vZGVscyh0aGlzLmNhbGVuZGFyLmRh'@; put 'eXMsITEsITApLGg+MCYmKHY9dGhpcy5nZW5lcmF0ZURheVZpZXdNb2RlbHMoYS5kYXlzLnNsaWNlKDAsaCksITAsITEpKSx0aGlzLl9jYWxlbmRhclZpZXc9dGhpcy5nZW5lcmF0ZUNhbGVuZGFyVmlldyhmLHRoaXMuY3Vyck1vbnRoRGF5Vmlld3MsdiksdGhpcy5pbml0aWFsaXplU2VsZWN0'@; put 'ZWREYXkoKSx0aGlzLmluaXRpYWxpemVGb2N1c2FibGVEYXkoKX1pc0RhdGVFeGNsdWRlZChsKXtjb25zdHttaW5EYXRlOmEsbWF4RGF0ZTpkfT10aGlzLmV4Y2x1ZGVkRGF0ZXMsaD1hLnRvQ29tcGFyaXNvblN0cmluZygpLGY9ZC50b0NvbXBhcmlzb25TdHJpbmcoKSx2PWwudG9Db21wYXJp'@; put 'c29uU3RyaW5nKCk7cmV0dXJuISh2Pj1oJiZ2PD1mKX1nZW5lcmF0ZURheVZpZXdNb2RlbHMobCxhLGQpe2NvbnN0IGg9bC5tYXAoZj0+bmV3IFJaZShmLCExLGEsdGhpcy5pc0RhdGVFeGNsdWRlZChmKSwhMSwhMSkpO3JldHVybiBkJiZ0aGlzLmNhbGVuZGFyLmlzRGF5SW5DYWxlbmRhcih0'@; put 'aGlzLnRvZGF5KSYmKGhbdGhpcy50b2RheS5kYXRlLTFdLmlzVG9kYXlzRGF0ZT0hMCksaH1udW1EYXlzRnJvbVByZXZNb250aEluQ2FsVmlldyhsLGEpe2NvbnN0IGQ9ZnVuY3Rpb24ga1plKGMsbCxhKXtyZXR1cm4gbmV3IERhdGUoYyxsLGEpLmdldERheSgpfShsLGEsMSk7cmV0dXJuIGQ+'@; put 'PXRoaXMuZmlyc3REYXlPZldlZWs/ZC10aGlzLmZpcnN0RGF5T2ZXZWVrOjcrZC10aGlzLmZpcnN0RGF5T2ZXZWVrfWlzRGF5SW5DYWxlbmRhclZpZXcobCl7cmV0dXJuISF0aGlzLmNhbGVuZGFyLmlzRGF5SW5DYWxlbmRhcihsKX1nZW5lcmF0ZUNhbGVuZGFyVmlldyhsLGEsZCl7Y29uc3Qg'@; put 'aD1bLi4ubCwuLi5hLC4uLmRdLGY9W107Zm9yKGxldCB2PTA7djw2O3YrKylmW3ZdPWguc2xpY2UoNyp2LDcqKHYrMSkpO3JldHVybiBmfWluaXRpYWxpemVTZWxlY3RlZERheSgpe3RoaXMuc2V0U2VsZWN0ZWREYXkodGhpcy5zZWxlY3RlZERheSwhMCksdGhpcy5zZXRTZWxlY3RlZERheSh0'@; put 'aGlzLnNlbGVjdGVkRW5kRGF5LCEwKX1pbml0aWFsaXplRm9jdXNhYmxlRGF5KCl7dGhpcy5mb2N1c2FibGVEYXkmJnRoaXMuaXNEYXlJbkNhbGVuZGFyVmlldyh0aGlzLmZvY3VzYWJsZURheSk/dGhpcy5zZXRGb2N1c2FibGVGbGFnKHRoaXMuZm9jdXNhYmxlRGF5LCEwKTp0aGlzLnNlbGVj'@; put 'dGVkRGF5JiZ0aGlzLmlzRGF5SW5DYWxlbmRhclZpZXcodGhpcy5zZWxlY3RlZERheSk/KHRoaXMuc2V0Rm9jdXNhYmxlRmxhZyh0aGlzLnNlbGVjdGVkRGF5LCEwKSx0aGlzLmZvY3VzYWJsZURheT10aGlzLnNlbGVjdGVkRGF5LmNsb25lKCkpOnRoaXMuc2VsZWN0ZWRFbmREYXkmJnRoaXMu'@; put 'aXNEYXlJbkNhbGVuZGFyVmlldyh0aGlzLnNlbGVjdGVkRW5kRGF5KT8odGhpcy5zZXRGb2N1c2FibGVGbGFnKHRoaXMuc2VsZWN0ZWRFbmREYXksITApLHRoaXMuZm9jdXNhYmxlRGF5PXRoaXMuc2VsZWN0ZWRFbmREYXkuY2xvbmUoKSk6dGhpcy5pc0RheUluQ2FsZW5kYXJWaWV3KHRoaXMu'@; put 'dG9kYXkpPyh0aGlzLnNldEZvY3VzYWJsZUZsYWcodGhpcy50b2RheSwhMCksdGhpcy5mb2N1c2FibGVEYXk9dGhpcy50b2RheS5jbG9uZSgpKToodGhpcy5mb2N1c2FibGVEYXk9bmV3IExkKHRoaXMuY2FsZW5kYXIueWVhcix0aGlzLmNhbGVuZGFyLm1vbnRoLDE1KSx0aGlzLnNldEZvY3Vz'@; put 'YWJsZUZsYWcodGhpcy5mb2N1c2FibGVEYXksITApKX1zZXRGb2N1c2FibGVGbGFnKGwsYSl7bCYmKHRoaXMuY3Vyck1vbnRoRGF5Vmlld3NbbC5kYXRlLTFdLmlzRm9jdXNhYmxlPWEpfXNldFNlbGVjdGVkRGF5KGwsYSl7bCYmdGhpcy5pc0RheUluQ2FsZW5kYXJWaWV3KGwpJiYodGhpcy5j'@; put 'dXJyTW9udGhEYXlWaWV3c1tsPy5kYXRlLTFdLmlzU2VsZWN0ZWQ9YSl9fWxldCBLeD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMubG9jYWxlPWEsdGhpcy5fZmlyc3REYXlPZldlZWs9MCx0aGlzLmluaXRpYWxpemVMb2NhbGVEYXRhKCl9Z2V0IGZpcnN0RGF5T2ZXZWVrKCl7'@; put 'cmV0dXJuIHRoaXMuX2ZpcnN0RGF5T2ZXZWVrfWdldCBsb2NhbGVEYXlzKCl7cmV0dXJuIHRoaXMuX2xvY2FsZURheXN9Z2V0IGxvY2FsZURheXNOYXJyb3coKXtyZXR1cm4gdGhpcy5fbG9jYWxlRGF5cy5tYXAoYT0+YS5uYXJyb3cpfWdldCBsb2NhbGVNb250aHNBYmJyZXZpYXRlZCgpe3Jl'@; put 'dHVybiB0aGlzLl9sb2NhbGVNb250aHNBYmJyZXZpYXRlZH1nZXQgbG9jYWxlTW9udGhzV2lkZSgpe3JldHVybiB0aGlzLl9sb2NhbGVNb250aHNXaWRlfWdldCBsb2NhbGVEYXRlRm9ybWF0KCl7cmV0dXJuIHRoaXMuX2xvY2FsZURhdGVGb3JtYXR9aW5pdGlhbGl6ZUxvY2FsZURhdGEoKXt0'@; put 'aGlzLmluaXRpYWxpemVGaXJzdERheU9mV2VlaygpLHRoaXMuaW5pdGlhbGl6ZUxvY2FsZURhdGVGb3JtYXQoKSx0aGlzLmluaXRpYWxpemVMb2NhbGVNb250aHNBYmJyZXZpYXRlZCgpLHRoaXMuaW5pdGlhbGl6ZUxvY2FsZU1vbnRoc1dpZGUoKSx0aGlzLmluaXRpYWxpemVMb2NhbGVEYXlz'@; put 'KCl9aW5pdGlhbGl6ZUxvY2FsZURheXMoKXtjb25zdCBhPVtdLGQ9V1UodGhpcy5sb2NhbGUsYzAuU3RhbmRhbG9uZSxsbC5XaWRlKS5zbGljZSgpLGg9V1UodGhpcy5sb2NhbGUsYzAuU3RhbmRhbG9uZSxsbC5OYXJyb3cpLnNsaWNlKCksZj10aGlzLmZpcnN0RGF5T2ZXZWVrO2ZvcihsZXQg'@; put 'dj0wO3Y8Nzt2KyspYS5wdXNoKHtkYXk6ZFt2XSxuYXJyb3c6aFt2XX0pO2lmKGY+MCl7Y29uc3Qgdj1hLnNwbGljZSgwLGYpO2EucHVzaCguLi52KX10aGlzLl9sb2NhbGVEYXlzPWF9aW5pdGlhbGl6ZUxvY2FsZU1vbnRoc0FiYnJldmlhdGVkKCl7dGhpcy5fbG9jYWxlTW9udGhzQWJicmV2'@; put 'aWF0ZWQ9WVUodGhpcy5sb2NhbGUsYzAuU3RhbmRhbG9uZSxsbC5BYmJyZXZpYXRlZCkuc2xpY2UoKX1pbml0aWFsaXplTG9jYWxlTW9udGhzV2lkZSgpe3RoaXMuX2xvY2FsZU1vbnRoc1dpZGU9WVUodGhpcy5sb2NhbGUsYzAuU3RhbmRhbG9uZSxsbC5XaWRlKS5zbGljZSgpfWluaXRpYWxp'@; put 'emVGaXJzdERheU9mV2Vlaygpe3RoaXMuX2ZpcnN0RGF5T2ZXZWVrPWZ1bmN0aW9uIEJfZShjKXtyZXR1cm4gYTEoYylbUWwuRmlyc3REYXlPZldlZWtdfSh0aGlzLmxvY2FsZSl9aW5pdGlhbGl6ZUxvY2FsZURhdGVGb3JtYXQoKXt0aGlzLl9sb2NhbGVEYXRlRm9ybWF0PWZ1bmN0aW9uIGtN'@; put 'KGMsbCl7cmV0dXJuIE0yKGExKGMpW1FsLkRhdGVGb3JtYXRdLGwpfSh0aGlzLmxvY2FsZSxDZC5TaG9ydCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKENyKFdmKSl9LGMuXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFj'@; put 'fSksY30pKCk7Y2xhc3MgT2R7Y29uc3RydWN0b3IobCxhKXt0aGlzLnllYXI9bCx0aGlzLm1vbnRoPWEsdGhpcy5pbml0aWFsaXplRGF5c0luQ2FsZW5kYXIoKX1pc0VxdWFsKGwpe3JldHVybiEhbCYmdGhpcy55ZWFyPT09bC55ZWFyJiZ0aGlzLm1vbnRoPT09bC5tb250aH1pc0RheUluQ2Fs'@; put 'ZW5kYXIobCl7cmV0dXJuISFsJiZ0aGlzLnllYXI9PT1sLnllYXImJnRoaXMubW9udGg9PT1sLm1vbnRofXByZXZpb3VzTW9udGgoKXtyZXR1cm4gMD09PXRoaXMubW9udGg/bmV3IE9kKHRoaXMueWVhci0xLDExKTpuZXcgT2QodGhpcy55ZWFyLHRoaXMubW9udGgtMSl9bmV4dE1vbnRoKCl7'@; put 'cmV0dXJuIDExPT09dGhpcy5tb250aD9uZXcgT2QodGhpcy55ZWFyKzEsMCk6bmV3IE9kKHRoaXMueWVhcix0aGlzLm1vbnRoKzEpfXByZXZpb3VzWWVhcigpe3JldHVybiBuZXcgT2QodGhpcy55ZWFyLTEsdGhpcy5tb250aCl9bmV4dFllYXIoKXtyZXR1cm4gbmV3IE9kKHRoaXMueWVhcisx'@; put 'LHRoaXMubW9udGgpfWluaXRpYWxpemVEYXlzSW5DYWxlbmRhcigpe2NvbnN0IGw9eWRlKHRoaXMueWVhcix0aGlzLm1vbnRoKTt0aGlzLmRheXM9QXJyYXkobCkuZmlsbChudWxsKS5tYXAoKGEsZCk9Pm5ldyBMZCh0aGlzLnllYXIsdGhpcy5tb250aCxkKzEpKX19bGV0IEVoPSgoKT0+e2Ns'@; put 'YXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLmlzUmFuZ2VQaWNrZXI9ITEsdGhpcy5oYXNBY3Rpb25CdXR0b25zPSExLHRoaXMuX3RvZGF5c0Z1bGxEYXRlPW5ldyBEYXRlLHRoaXMuX3NlbGVjdGVkRGF5Q2hhbmdlPW5ldyBHbix0aGlzLl9zZWxlY3RlZEVuZERheUNoYW5nZT1uZXcgR24sdGhp'@; put 'cy5fZGlzcGxheWVkQ2FsZW5kYXJDaGFuZ2U9bmV3IEduLHRoaXMuX2ZvY3VzT25DYWxlbmRhckNoYW5nZT1uZXcgR24sdGhpcy5fcmVmcmVzaENhbGVuZGFyVmlldz1uZXcgR24sdGhpcy5fZm9jdXNlZERheUNoYW5nZT1uZXcgR259Z2V0IHRvZGF5KCl7cmV0dXJuIHRoaXMuX3RvZGF5fWdl'@; put 'dCBkaXNwbGF5ZWRDYWxlbmRhcigpe3JldHVybiB0aGlzLl9kaXNwbGF5ZWRDYWxlbmRhcn1nZXQgc2VsZWN0ZWREYXlDaGFuZ2UoKXtyZXR1cm4gdGhpcy5fc2VsZWN0ZWREYXlDaGFuZ2UuYXNPYnNlcnZhYmxlKCl9Z2V0IHNlbGVjdGVkRW5kRGF5Q2hhbmdlKCl7cmV0dXJuIHRoaXMuX3Nl'@; put 'bGVjdGVkRW5kRGF5Q2hhbmdlLmFzT2JzZXJ2YWJsZSgpfWdldCBkaXNwbGF5ZWRDYWxlbmRhckNoYW5nZSgpe3JldHVybiB0aGlzLl9kaXNwbGF5ZWRDYWxlbmRhckNoYW5nZS5hc09ic2VydmFibGUoKX1nZXQgZm9jdXNPbkNhbGVuZGFyQ2hhbmdlKCl7cmV0dXJuIHRoaXMuX2ZvY3VzT25D'@; put 'YWxlbmRhckNoYW5nZS5hc09ic2VydmFibGUoKX1nZXQgZm9jdXNlZERheUNoYW5nZSgpe3JldHVybiB0aGlzLl9mb2N1c2VkRGF5Q2hhbmdlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoWnUoYT0+dGhpcy5mb2N1c2VkRGF5PWEpKX1nZXQgcmVmcmVzaENhbGVuZGFyVmlldygpe3JldHVybiB0aGlz'@; put 'Ll9yZWZyZXNoQ2FsZW5kYXJWaWV3LmFzT2JzZXJ2YWJsZSgpfW5vdGlmeVNlbGVjdGVkRGF5Q2hhbmdlZChhLHtlbWl0RXZlbnQ6ZH09e2VtaXRFdmVudDohMH0pe2lmKHRoaXMuaXNSYW5nZVBpY2tlcil7Y29uc3R7c3RhcnREYXRlOmgsZW5kRGF0ZTpmfT1hO2gmJmY/KHRoaXMuc2V0U2Vs'@; put 'ZWN0ZWREYXkoaCxkKSx0aGlzLnNldFNlbGVjdGVkRW5kRGF5KGYsZCkpOihudWxsIT09ZiYmdGhpcy5zZXRTZWxlY3RlZEVuZERheShmLGQpLG51bGwhPT1oJiZ0aGlzLnNldFNlbGVjdGVkRGF5KGgsZCkpfWVsc2UgdGhpcy5zZXRTZWxlY3RlZERheShhLGQpO3RoaXMuX3JlZnJlc2hDYWxl'@; put 'bmRhclZpZXcubmV4dCgpfWluaXRpYWxpemVDYWxlbmRhcigpe3RoaXMuZm9jdXNlZERheT1udWxsLHRoaXMuaW5pdGlhbGl6ZVRvZGF5c0RhdGUoKSx0aGlzLl9kaXNwbGF5ZWRDYWxlbmRhcj10aGlzLnNlbGVjdGVkRGF5P25ldyBPZCh0aGlzLnNlbGVjdGVkRGF5LnllYXIsdGhpcy5zZWxl'@; put 'Y3RlZERheS5tb250aCk6bmV3IE9kKHRoaXMudG9kYXkueWVhcix0aGlzLnRvZGF5Lm1vbnRoKX1jaGFuZ2VNb250aChhKXt0aGlzLnNldERpc3BsYXllZENhbGVuZGFyKG5ldyBPZCh0aGlzLl9kaXNwbGF5ZWRDYWxlbmRhci55ZWFyLGEpKX1jaGFuZ2VZZWFyKGEpe3RoaXMuc2V0RGlzcGxh'@; put 'eWVkQ2FsZW5kYXIobmV3IE9kKGEsdGhpcy5fZGlzcGxheWVkQ2FsZW5kYXIubW9udGgpKX1tb3ZlVG9OZXh0TW9udGgoKXt0aGlzLnNldERpc3BsYXllZENhbGVuZGFyKHRoaXMuX2Rpc3BsYXllZENhbGVuZGFyLm5leHRNb250aCgpKX1tb3ZlVG9QcmV2aW91c01vbnRoKCl7dGhpcy5zZXRE'@; put 'aXNwbGF5ZWRDYWxlbmRhcih0aGlzLl9kaXNwbGF5ZWRDYWxlbmRhci5wcmV2aW91c01vbnRoKCkpfW1vdmVUb05leHRZZWFyKCl7dGhpcy5zZXREaXNwbGF5ZWRDYWxlbmRhcih0aGlzLl9kaXNwbGF5ZWRDYWxlbmRhci5uZXh0WWVhcigpKX1tb3ZlVG9QcmV2aW91c1llYXIoKXt0aGlzLnNl'@; put 'dERpc3BsYXllZENhbGVuZGFyKHRoaXMuX2Rpc3BsYXllZENhbGVuZGFyLnByZXZpb3VzWWVhcigpKX1tb3ZlVG9DdXJyZW50TW9udGgoKXt0aGlzLmRpc3BsYXllZENhbGVuZGFyLmlzRGF5SW5DYWxlbmRhcih0aGlzLnRvZGF5KXx8dGhpcy5zZXREaXNwbGF5ZWRDYWxlbmRhcihuZXcgT2Qo'@; put 'dGhpcy50b2RheS55ZWFyLHRoaXMudG9kYXkubW9udGgpKSx0aGlzLl9mb2N1c09uQ2FsZW5kYXJDaGFuZ2UubmV4dCgpfW1vdmVUb1NwZWNpZmljTW9udGgoYSl7dGhpcy5kaXNwbGF5ZWRDYWxlbmRhci5pc0RheUluQ2FsZW5kYXIoYSl8fHRoaXMuc2V0RGlzcGxheWVkQ2FsZW5kYXIobmV3'@; put 'IE9kKGEueWVhcixhLm1vbnRoKSl9aW5jcmVtZW50Rm9jdXNEYXkoYSl7dGhpcy5ob3ZlcmVkRGF5PXRoaXMuZm9jdXNlZERheT10aGlzLmZvY3VzZWREYXkuaW5jcmVtZW50QnkoYSksdGhpcy5fZGlzcGxheWVkQ2FsZW5kYXIuaXNEYXlJbkNhbGVuZGFyKHRoaXMuZm9jdXNlZERheSk/dGhp'@; put 'cy5fZm9jdXNlZERheUNoYW5nZS5uZXh0KHRoaXMuZm9jdXNlZERheSk6dGhpcy5zZXREaXNwbGF5ZWRDYWxlbmRhcihuZXcgT2QodGhpcy5mb2N1c2VkRGF5LnllYXIsdGhpcy5mb2N1c2VkRGF5Lm1vbnRoKSksdGhpcy5fZm9jdXNPbkNhbGVuZGFyQ2hhbmdlLm5leHQoKX1yZXNldFNlbGVj'@; put 'dGVkRGF5KCl7dGhpcy5zZWxlY3RlZERheT10aGlzLnBlcnNpc3RlZERhdGUsdGhpcy5zZWxlY3RlZEVuZERheT10aGlzLnBlcnNpc3RlZEVuZERhdGV9Y29udmVydERhdGVUb0RheU1vZGVsKGEpe3JldHVybiBuZXcgTGQoYS5nZXRGdWxsWWVhcigpLGEuZ2V0TW9udGgoKSxhLmdldERhdGUo'@; put 'KSl9c2V0U2VsZWN0ZWREYXkoYSxkKXt0aGlzLnNlbGVjdGVkRGF5PWEsZCYmdGhpcy5fc2VsZWN0ZWREYXlDaGFuZ2UubmV4dChhKX1zZXRTZWxlY3RlZEVuZERheShhLGQpe3RoaXMuc2VsZWN0ZWRFbmREYXk9YSxkJiZ0aGlzLl9zZWxlY3RlZEVuZERheUNoYW5nZS5uZXh0KGEpfXNldERp'@; put 'c3BsYXllZENhbGVuZGFyKGEpe3RoaXMuX2Rpc3BsYXllZENhbGVuZGFyLmlzRXF1YWwoYSl8fCh0aGlzLl9kaXNwbGF5ZWRDYWxlbmRhcj1hLHRoaXMuX2Rpc3BsYXllZENhbGVuZGFyQ2hhbmdlLm5leHQoKSl9aW5pdGlhbGl6ZVRvZGF5c0RhdGUoKXt0aGlzLl90b2RheXNGdWxsRGF0ZT1u'@; put 'ZXcgRGF0ZSx0aGlzLl90b2RheT1uZXcgTGQodGhpcy5fdG9kYXlzRnVsbERhdGUuZ2V0RnVsbFllYXIoKSx0aGlzLl90b2RheXNGdWxsRGF0ZS5nZXRNb250aCgpLHRoaXMuX3RvZGF5c0Z1bGxEYXRlLmdldERhdGUoKSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4g'@; put 'bmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpLF9tPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkKXt0aGlzLl9uZ1pvbmU9YSx0aGlzLnBsYXRmb3JtSWQ9ZH1mb2N1c0NlbGwoYSl7dGhpcy5fbmdab25lLnJ1bk91dHNp'@; put 'ZGVBbmd1bGFyKCgpPT57dGhpcy5uZ1pvbmVJc1N0YWJsZUluQnJvd3NlcigpLnN1YnNjcmliZSgoKT0+e2NvbnN0IGQ9YS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1t0YWJpbmRleD0iMCJdJyk7ZCYmZC5mb2N1cygpfSl9KX1mb2N1c0lucHV0KGEpe3RoaXMuX25nWm9uZS5ydW5P'@; put 'dXRzaWRlQW5ndWxhcigoKT0+dGhpcy5uZ1pvbmVJc1N0YWJsZUluQnJvd3NlcigpLnN1YnNjcmliZSgoKT0+YS5mb2N1cygpKSl9ZWxlbWVudElzRm9jdXNlZChhKXtyZXR1cm4gZWwodGhpcy5wbGF0Zm9ybUlkKSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWF9bmdab25lSXNTdGFibGVJ'@; put 'bkJyb3dzZXIoKXtyZXR1cm4gdGhpcy5fbmdab25lLm9uU3RhYmxlLmFzT2JzZXJ2YWJsZSgpLnBpcGUobm0oKSxXbCgoKT0+ZWwodGhpcy5wbGF0Zm9ybUlkKSkpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKShDcihHYSksQ3IoaXMpKX0sYy5cdTAy'@; put 'NzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSxsZz0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMuZGlzYWJsZWREYXRlcz17bWluRGF0ZTpuZXcgTGQoMCwwLDEpLG1heERhdGU6bmV3IExkKDk5OTksMTEsMzEpfSx0aGlzLmNsZHJMb2NhbGVE'@; put 'YXRlRm9ybWF0PSJkZC9NTS95Iix0aGlzLmxvY2FsZURpc3BsYXlGb3JtYXQ9ZU8sdGhpcy5kZWxpbWl0ZXJzPVsiLyIsIi8iXSx0aGlzLmNsZHJMb2NhbGVEYXRlRm9ybWF0PWEubG9jYWxlRGF0ZUZvcm1hdCx0aGlzLmluaXRpYWxpemVMb2NhbGVEaXNwbGF5Rm9ybWF0KCl9Z2V0IHBsYWNl'@; put 'aG9sZGVyVGV4dCgpe2NvbnN0IGE9dGhpcy5sb2NhbGVEaXNwbGF5Rm9ybWF0LmZvcm1hdDtyZXR1cm4gYVswXSt0aGlzLmRlbGltaXRlcnNbMF0rYVsxXSt0aGlzLmRlbGltaXRlcnNbMV0rYVsyXX1zZXRNaW5EYXRlKGEpe2lmKGEpe2NvbnN0W2QsaCxmXT1hLnNwbGl0KCItIikubWFwKHY9'@; put 'PnBhcnNlSW50KHYsMTApKTt0aGlzLmRpc2FibGVkRGF0ZXMubWluRGF0ZT1uZXcgTGQoZCxoLTEsZil9ZWxzZSB0aGlzLmRpc2FibGVkRGF0ZXMubWluRGF0ZT1uZXcgTGQoMCwwLDEpfXNldE1heERhdGUoYSl7aWYoYSl7Y29uc3RbZCxoLGZdPWEuc3BsaXQoIi0iKS5tYXAodj0+cGFyc2VJ'@; put 'bnQodiwxMCkpO3RoaXMuZGlzYWJsZWREYXRlcy5tYXhEYXRlPW5ldyBMZChkLGgtMSxmKX1lbHNlIHRoaXMuZGlzYWJsZWREYXRlcy5tYXhEYXRlPW5ldyBMZCg5OTk5LDExLDMxKX1zZXRSYW5nZU9wdGlvbnMoYSl7Y29uc3QgZD10aGlzLnZhbGlkYXRlRGF0ZVJhbmdlT3B0aW9ucyhhKTt0'@; put 'aGlzLmRhdGVSYW5nZU9wdGlvbnM9ZHx8W119Z2V0UmFuZ2VPcHRpb25zKCl7cmV0dXJuIHRoaXMuZGF0ZVJhbmdlT3B0aW9uc310b0xvY2FsZURpc3BsYXlGb3JtYXRTdHJpbmcoYSl7aWYoYSl7aWYoaXNOYU4oYS5nZXRUaW1lKCkpKXJldHVybiIiO2NvbnN0IGQ9YS5nZXREYXRlKCksaD1h'@; put 'LmdldE1vbnRoKCkrMSxmPWQ+OT9kLnRvU3RyaW5nKCk6IjAiK2Qsdj1oPjk/aC50b1N0cmluZygpOiIwIitoO3JldHVybiB0aGlzLmxvY2FsZURpc3BsYXlGb3JtYXQ9PT1lTz9mK3RoaXMuZGVsaW1pdGVyc1swXSt2K3RoaXMuZGVsaW1pdGVyc1sxXSthLmdldEZ1bGxZZWFyKCk6dGhpcy5s'@; put 'b2NhbGVEaXNwbGF5Rm9ybWF0PT09Y0c/dit0aGlzLmRlbGltaXRlcnNbMF0rZit0aGlzLmRlbGltaXRlcnNbMV0rYS5nZXRGdWxsWWVhcigpOmEuZ2V0RnVsbFllYXIoKSt0aGlzLmRlbGltaXRlcnNbMF0rdit0aGlzLmRlbGltaXRlcnNbMV0rZn1yZXR1cm4iIn1nZXREYXRlVmFsdWVGcm9t'@; put 'RGF0ZVN0cmluZyhhKXtpZighYXx8InN0cmluZyIhPXR5cGVvZiBhKXJldHVybiBudWxsO2NvbnN0IGQ9YS5tYXRjaChNWmUpO2lmKCFkfHwzIT09ZC5sZW5ndGgpcmV0dXJuIG51bGw7Y29uc3RbaCxmLHZdPWQ7cmV0dXJuIHRoaXMubG9jYWxlRGlzcGxheUZvcm1hdD09PWVPP3RoaXMudmFs'@; put 'aWRhdGVBbmRHZXREYXRlKHYsZixoKTp0aGlzLmxvY2FsZURpc3BsYXlGb3JtYXQ9PT1jRz90aGlzLnZhbGlkYXRlQW5kR2V0RGF0ZSh2LGgsZik6dGhpcy52YWxpZGF0ZUFuZEdldERhdGUoaCxmLHYpfXZhbGlkYXRlRGF0ZVJhbmdlT3B0aW9ucyhhKXtjb25zdCBkPVtdO3JldHVybiBhPy5m'@; put 'b3JFYWNoKGg9PnsyIT09aD8udmFsdWU/Lmxlbmd0aHx8IltvYmplY3QgRGF0ZV0iIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGg/LnZhbHVlWzBdKXx8IltvYmplY3QgRGF0ZV0iIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGg/LnZhbHVlWzFdKXx8ZC5wdXNo'@; put 'KGgpfSksZH1pbml0aWFsaXplTG9jYWxlRGlzcGxheUZvcm1hdCgpe2NvbnN0IGE9dGhpcy5jbGRyTG9jYWxlRGF0ZUZvcm1hdC50b0xvY2FsZUxvd2VyQ2FzZSgpO3RoaXMubG9jYWxlRGlzcGxheUZvcm1hdD13WmUudGVzdChhKT9lTzpDWmUudGVzdChhKT9jRzpUWmUsdGhpcy5leHRyYWN0'@; put 'RGVsaW1pdGVycygpfWV4dHJhY3REZWxpbWl0ZXJzKCl7aWYodGhpcy5jbGRyTG9jYWxlRGF0ZUZvcm1hdCl7Y29uc3QgZD10aGlzLmNsZHJMb2NhbGVEYXRlRm9ybWF0LnJlcGxhY2UoRVplLCIiKS5zcGxpdChTWmUpO2QmJjQ9PT1kLmxlbmd0aD90aGlzLmRlbGltaXRlcnM9W2RbMV0sZFsy'@; put 'XV06Y29uc29sZS5lcnJvcigiVW5leHBlY3RlZCBkYXRlIGZvcm1hdCByZWNlaXZlZC4gRGVsaW1pdGVycyBleHRyYWN0ZWQ6ICIsZCl9fWlzVmFsaWRNb250aChhKXtyZXR1cm4gYT4tMSYmYTwxMn1pc1ZhbGlkRGF0ZShhLGQsaCl7cmV0dXJuIGg+MCYmaDw9eWRlKGEsZCl9dmFsaWRhdGVB'@; put 'bmRHZXREYXRlKGEsZCxoKXtjb25zdCBmPSthLHY9K2QtMSxNPStoO2lmKCF0aGlzLmlzVmFsaWRNb250aCh2KXx8IXRoaXMuaXNWYWxpZERhdGUoZix2LE0pKXJldHVybiBudWxsO2NvbnN0IEk9ZnVuY3Rpb24gRFplKGMpe2lmKGM+OTk5OXx8Yz4xMDAmJmM8OTk5fHxjPDEwKXJldHVybi0x'@; put 'O2lmKGM+OTk5KXJldHVybiBjO2NvbnN0IGw9KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpO2xldCBkPWMrMTAwKk1hdGguZmxvb3IobC8xMDApO3JldHVybiBkPmwrMjAmJihkLT0xMDApLGR9KGYpO3JldHVybi0xIT09ST9uZXcgRGF0ZShJLHYsTSk6bnVsbH19cmV0dXJuIGMuXHUwMjc1ZmFj'@; put 'PWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoQ3IoS3gpKX0sYy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSx6Yj0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5fdG91Y2hlZENoYW5nZT1uZXcgR24sdGhpcy5fZGlydHlDaGFu'@; put 'Z2U9bmV3IEdufWdldCB0b3VjaGVkQ2hhbmdlKCl7cmV0dXJuIHRoaXMuX3RvdWNoZWRDaGFuZ2UuYXNPYnNlcnZhYmxlKCl9Z2V0IGRpcnR5Q2hhbmdlKCl7cmV0dXJuIHRoaXMuX2RpcnR5Q2hhbmdlLmFzT2JzZXJ2YWJsZSgpfW1hcmtBc1RvdWNoZWQoKXt0aGlzLl90b3VjaGVkQ2hhbmdl'@; put 'Lm5leHQoKX1tYXJrQXNEaXJ0eSgpe3RoaXMuX2RpcnR5Q2hhbmdlLm5leHQoKX1zZXREaXNhYmxlZChhKXt0aGlzLmRpc2FibGVkPWF9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1'@; put 'MDI3NWZhY30pLGN9KSgpLGJkZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCl7dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlPWEsdGhpcy5jb21tb25TdHJpbmdzPWQsdGhpcy5vblNlbGVjdERheT1uZXcgS3J9Z2V0IGRheVZpZXcoKXtyZXR1cm4gdGhpcy5fZGF5Vmlld31zZXQg'@; put 'ZGF5VmlldyhhKXt0aGlzLl9kYXlWaWV3PWF9Z2V0IGRheVN0cmluZygpe3JldHVybiB0aGlzLmRheVZpZXcuaXNTZWxlY3RlZD90aGlzLmNvbW1vblN0cmluZ3MucGFyc2UodGhpcy5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlclNlbGVjdGVkTGFiZWwse0ZVTExfREFURTp0aGlzLl9k'@; put 'YXlWaWV3LmRheU1vZGVsLnRvRGF0ZVN0cmluZygpfSk6dGhpcy5fZGF5Vmlldy5kYXlNb2RlbC50b0RhdGVTdHJpbmcoKX1nZXQgaXNSYW5nZVN0YXJ0RGF5KCl7cmV0dXJuIHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5pc1JhbmdlUGlja2VyJiZ0aGlzLmRheVZpZXc/LmRheU1vZGVs'@; put 'Py50b0NvbXBhcmlzb25TdHJpbmcoKT09PXRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5zZWxlY3RlZERheT8udG9Db21wYXJpc29uU3RyaW5nKCl9Z2V0IGlzUmFuZ2VFbmREYXkoKXtyZXR1cm4gdGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmlzUmFuZ2VQaWNrZXImJnRoaXMuZGF5'@; put 'Vmlldz8uZGF5TW9kZWw/LnRvQ29tcGFyaXNvblN0cmluZygpPT09dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVkRW5kRGF5Py50b0NvbXBhcmlzb25TdHJpbmcoKX1ob3Zlckxpc3RlbmVyKCl7dGhpcy5kYXlWaWV3LmlzRGlzYWJsZWR8fCh0aGlzLl9kYXRlTmF2aWdhdGlv'@; put 'blNlcnZpY2UuaG92ZXJlZERheT10aGlzLmRheVZpZXcuZGF5TW9kZWwpfW9uRGF5Vmlld0ZvY3VzKCl7dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmZvY3VzZWREYXk9dGhpcy5kYXlWaWV3LmRheU1vZGVsfXNlbGVjdERheSgpe3RoaXMuZGF5Vmlldy5pc0Rpc2FibGVkfHx0aGlzLm9u'@; put 'U2VsZWN0RGF5LmVtaXQodGhpcy5kYXlWaWV3LmRheU1vZGVsKX1pc0luUmFuZ2UoKXtyZXR1cm4hIXRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5pc1JhbmdlUGlja2VyJiYodGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVkRGF5JiZ0aGlzLl9kYXRlTmF2aWdhdGlvblNl'@; put 'cnZpY2Uuc2VsZWN0ZWRFbmREYXk/dGhpcy5fZGF5Vmlldy5kYXlNb2RlbD8uaXNBZnRlcih0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWREYXkpJiZ0aGlzLl9kYXlWaWV3LmRheU1vZGVsPy5pc0JlZm9yZSh0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWRF'@; put 'bmREYXkpOiEoIXRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5zZWxlY3RlZERheXx8dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVkRW5kRGF5KSYmdGhpcy5fZGF5Vmlldy5kYXlNb2RlbD8uaXNBZnRlcih0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWRE'@; put 'YXkpJiZ0aGlzLl9kYXlWaWV3LmRheU1vZGVsPy5pc0JlZm9yZSh0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuaG92ZXJlZERheSwhMCkpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZShFaCksJGUodG8pKX0sYy5cdTAyNzVjbXA9TnIoe3R5'@; put 'cGU6YyxzZWxlY3RvcnM6W1siY2xyLWRheSJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezEmYSYmRnQoIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGQuaG92ZXJMaXN0ZW5lcigpfSksMiZhJiZUcigiZGF5IiwhMCl9LGlucHV0czp7ZGF5VmlldzpbVm4u'@; put 'Tm9uZSwiY2xyRGF5VmlldyIsImRheVZpZXciXX0sb3V0cHV0czp7b25TZWxlY3REYXk6InNlbGVjdERheSJ9LGRlY2xzOjIsdmFyczoxOSxjb25zdHM6W1sidHlwZSIsImJ1dHRvbiIsMSwiZGF5LWJ0biIsMywiY2xpY2siLCJmb2N1cyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYm'@; put 'KGRlKDAsImJ1dHRvbiIsMCksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBkLnNlbGVjdERheSgpfSkoImZvY3VzIixmdW5jdGlvbigpe3JldHVybiBkLm9uRGF5Vmlld0ZvY3VzKCl9KSxPZSgxKSxoZSgpKSwyJmEmJihUcigiaXMtdG9kYXkiLGQuZGF5Vmlldy5pc1RvZGF5c0RhdGUp'@; put 'KCJpcy1leGNsdWRlZCIsZC5kYXlWaWV3LmlzRXhjbHVkZWQpKCJpcy1kaXNhYmxlZCIsZC5kYXlWaWV3LmlzRGlzYWJsZWQpKCJpcy1zZWxlY3RlZCIsZC5kYXlWaWV3LmlzU2VsZWN0ZWQpKCJpbi1yYW5nZSIsZC5pc0luUmFuZ2UoKSkoImlzLXN0YXJ0LXJhbmdlIixkLmlzUmFuZ2VTdGFy'@; put 'dERheSkoImlzLWVuZC1yYW5nZSIsZC5pc1JhbmdlRW5kRGF5KSxocigidGFiaW5kZXgiLGQuZGF5Vmlldy50YWJJbmRleCkoImFyaWEtY3VycmVudCIsZC5kYXlWaWV3LmlzVG9kYXlzRGF0ZT8iZGF0ZSI6ImZhbHNlIikoImFyaWEtbGFiZWwiLGQuZGF5U3RyaW5nKSgiYXJpYS1zZWxlY3Rl'@; put 'ZCIsZC5kYXlWaWV3LmlzU2VsZWN0ZWQpLGZlKCksTHIoIiAiLGQuZGF5Vmlldy5kYXlNb2RlbC5kYXRlLCIgIikpfSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxfZGU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmLHYsTSxJKXt0aGlzLl9sb2NhbGVIZWxwZXJTZXJ2aWNlPWEs'@; put 'dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlPWQsdGhpcy5fZGF0ZXBpY2tlckZvY3VzU2VydmljZT1oLHRoaXMuX2RhdGVJT1NlcnZpY2U9Zix0aGlzLl9lbFJlZj12LHRoaXMuX2RhdGVGb3JtQ29udHJvbFNlcnZpY2U9TSx0aGlzLl90b2dnbGVTZXJ2aWNlPUksdGhpcy5fc3Vicz1bXSx0'@; put 'aGlzLmdlbmVyYXRlQ2FsZW5kYXJWaWV3KCksdGhpcy5pbml0aWFsaXplU3Vic2NyaXB0aW9ucygpfWdldCBsb2NhbGVEYXlzKCl7cmV0dXJuIHRoaXMuX2xvY2FsZUhlbHBlclNlcnZpY2UubG9jYWxlRGF5c31nZXQgY2FsZW5kYXIoKXtyZXR1cm4gdGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2'@; put 'aWNlLmRpc3BsYXllZENhbGVuZGFyfWdldCBzZWxlY3RlZERheSgpe3JldHVybiB0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWREYXl9Z2V0IHNlbGVjdGVkRW5kRGF5KCl7cmV0dXJuIHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5zZWxlY3RlZEVuZERheX1nZXQgZm9j'@; put 'dXNlZERheSgpe3JldHVybiB0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuZm9jdXNlZERheX1nZXQgdG9kYXkoKXtyZXR1cm4gdGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnRvZGF5fW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuX2RhdGVwaWNrZXJGb2N1c1NlcnZpY2UuZm9jdXNDZWxs'@; put 'KHRoaXMuX2VsUmVmKX1uZ09uRGVzdHJveSgpe3RoaXMuX3N1YnMuZm9yRWFjaChhPT5hLnVuc3Vic2NyaWJlKCkpfW9uS2V5RG93bihhKXtpZihhJiZ0aGlzLmZvY3VzZWREYXkpc3dpdGNoKEwyKGEua2V5KSl7Y2FzZSBwYS5BcnJvd1VwOmEucHJldmVudERlZmF1bHQoKSx0aGlzLl9kYXRl'@; put 'TmF2aWdhdGlvblNlcnZpY2UuaW5jcmVtZW50Rm9jdXNEYXkoLTcpO2JyZWFrO2Nhc2UgcGEuQXJyb3dEb3duOmEucHJldmVudERlZmF1bHQoKSx0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuaW5jcmVtZW50Rm9jdXNEYXkoNyk7YnJlYWs7Y2FzZSBwYS5BcnJvd0xlZnQ6YS5wcmV2ZW50'@; put 'RGVmYXVsdCgpLHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5pbmNyZW1lbnRGb2N1c0RheSgtMSk7YnJlYWs7Y2FzZSBwYS5BcnJvd1JpZ2h0OmEucHJldmVudERlZmF1bHQoKSx0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuaW5jcmVtZW50Rm9jdXNEYXkoMSl9fXNldFNlbGVjdGVk'@; put 'RGF5KGEpe2NvbnN0IGQ9dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmhhc0FjdGlvbkJ1dHRvbnMsaD10aGlzLnVwZGF0ZUNhbGVuZGFyVmlld01vZGFsKGEpO3RoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5ub3RpZnlTZWxlY3RlZERheUNoYW5nZWQoaCx7ZW1pdEV2ZW50OiFkfSks'@; put 'ZHx8KHRoaXMuX2RhdGVGb3JtQ29udHJvbFNlcnZpY2UubWFya0FzRGlydHkoKSx0aGlzLnZhbGlkYXRlQW5kQ2xvc2VEYXRlUGlja2VyKCkpfWluaXRpYWxpemVTdWJzY3JpcHRpb25zKCl7dGhpcy5fc3Vicy5wdXNoKHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5kaXNwbGF5ZWRDYWxl'@; put 'bmRhckNoYW5nZS5zdWJzY3JpYmUoKCk9Pnt0aGlzLmdlbmVyYXRlQ2FsZW5kYXJWaWV3KCl9KSksdGhpcy5fc3Vicy5wdXNoKHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5mb2N1c2VkRGF5Q2hhbmdlLnN1YnNjcmliZShhPT57dGhpcy5jYWxlbmRhclZpZXdNb2RlbC51cGRhdGVGb2N1'@; put 'c2FibGVEYXkoYSl9KSksdGhpcy5fc3Vicy5wdXNoKHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5mb2N1c09uQ2FsZW5kYXJDaGFuZ2Uuc3Vic2NyaWJlKCgpPT57dGhpcy5fZGF0ZXBpY2tlckZvY3VzU2VydmljZS5mb2N1c0NlbGwodGhpcy5fZWxSZWYpfSkpLHRoaXMuX3N1YnMucHVz'@; put 'aCh0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UucmVmcmVzaENhbGVuZGFyVmlldy5zdWJzY3JpYmUoKCk9Pnt0aGlzLnJlZnJlc2hDYWxlbmRhclZpZXdNb2RhbCgpfSkpfXZhbGlkYXRlQW5kQ2xvc2VEYXRlUGlja2VyKCl7KHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5pc1Jhbmdl'@; put 'UGlja2VyJiZ0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWREYXkmJnRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5zZWxlY3RlZEVuZERheXx8IXRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5pc1JhbmdlUGlja2VyJiZ0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uu'@; put 'c2VsZWN0ZWREYXkpJiYodGhpcy5fdG9nZ2xlU2VydmljZS5vcGVuPSExKX11cGRhdGVDYWxlbmRhclZpZXdNb2RhbChhKXtjb25zdCBkPXRoaXMuY2FsZW5kYXJWaWV3TW9kZWwuc2VsZWN0ZWREYXl8fG51bGwsaD10aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuaXNSYW5nZVBpY2tlcjts'@; put 'ZXQgZj10aGlzLmNhbGVuZGFyVmlld01vZGVsLnNlbGVjdGVkRW5kRGF5fHxudWxsO3JldHVybiBoPyFkfHxkJiZmfHxkJiZhPy5pc0JlZm9yZShkKT8odGhpcy5jYWxlbmRhclZpZXdNb2RlbC51cGRhdGVTZWxlY3RlZERheShhKSxmJiYoZj12b2lkIDAsdGhpcy5jYWxlbmRhclZpZXdNb2Rl'@; put 'bC51cGRhdGVTZWxlY3RlZEVuZERheShmKSkpOnRoaXMuY2FsZW5kYXJWaWV3TW9kZWwudXBkYXRlU2VsZWN0ZWRFbmREYXkoYSk6dGhpcy5jYWxlbmRhclZpZXdNb2RlbC51cGRhdGVTZWxlY3RlZERheShhKSxoP3tzdGFydERhdGU6dGhpcy5jYWxlbmRhclZpZXdNb2RlbC5zZWxlY3RlZERh'@; put 'eSxlbmREYXRlOnRoaXMuY2FsZW5kYXJWaWV3TW9kZWwuc2VsZWN0ZWRFbmREYXl9OnRoaXMuY2FsZW5kYXJWaWV3TW9kZWwuc2VsZWN0ZWREYXl9cmVmcmVzaENhbGVuZGFyVmlld01vZGFsKCl7dGhpcy5jYWxlbmRhclZpZXdNb2RlbC51cGRhdGVTZWxlY3RlZERheSh0aGlzLl9kYXRlTmF2'@; put 'aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWREYXkpLHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5pc1JhbmdlUGlja2VyJiZ0aGlzLmNhbGVuZGFyVmlld01vZGVsLnVwZGF0ZVNlbGVjdGVkRW5kRGF5KHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5zZWxlY3RlZEVuZERheSl9Z2VuZXJh'@; put 'dGVDYWxlbmRhclZpZXcoKXt0aGlzLmNhbGVuZGFyVmlld01vZGVsPW5ldyBMWmUodGhpcy5jYWxlbmRhcix0aGlzLnNlbGVjdGVkRGF5LHRoaXMuc2VsZWN0ZWRFbmREYXksdGhpcy5mb2N1c2VkRGF5LHRoaXMudG9kYXksdGhpcy5fbG9jYWxlSGVscGVyU2VydmljZS5maXJzdERheU9mV2Vl'@; put 'ayx0aGlzLl9kYXRlSU9TZXJ2aWNlLmRpc2FibGVkRGF0ZXMpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZShLeCksJGUoRWgpLCRlKF9tKSwkZShsZyksJGUoUWkpLCRlKHpiKSwkZShzYykpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVj'@; put 'dG9yczpbWyJjbHItY2FsZW5kYXIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MSZhJiZGdCgia2V5ZG93biIsZnVuY3Rpb24oZil7cmV0dXJuIGQub25LZXlEb3duKGYpfSl9LGRlY2xzOjQsdmFyczoyLGNvbnN0czpbWyJyb2xlIiwicHJlc2VudGF0aW9uIiwxLCJjYWxlbmRhci10'@; put 'YWJsZSJdLFsxLCJjYWxlbmRhci1yb3ciLCJ3ZWVrZGF5cyJdLFsiY2xhc3MiLCJjYWxlbmRhci1jZWxsIHdlZWtkYXkiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsiY2xhc3MiLCJjYWxlbmRhci1yb3ciLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJjYWxlbmRhci1jZWxsIiwid2Vla2RheSJd'@; put 'LFsxLCJjYWxlbmRhci1yb3ciXSxbImNsYXNzIiwiY2FsZW5kYXItY2VsbCIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImNhbGVuZGFyLWNlbGwiXSxbMywic2VsZWN0RGF5IiwiY2xyRGF5VmlldyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKGRlKDAsInRhYmxlIiwwKSgxLCJ0'@; put 'ciIsMSksZ3QoMix6TmUsMywyLCJ0aCIsMiksaGUoKSxndCgzLFpOZSwyLDEsInRyIiwzKSxoZSgpKSwyJmEmJihmZSgyKSxNZSgibmdGb3JPZiIsZC5sb2NhbGVEYXlzKSxmZSgpLE1lKCJuZ0Zvck9mIixkLmNhbGVuZGFyVmlld01vZGVsLmNhbGVuZGFyVmlldykpfSxkZXBlbmRlbmNpZXM6'@; put 'W1FzLGJkZV0sZW5jYXBzdWxhdGlvbjoyfSksY30pKCksdE89KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLl9kb2N1bWVudD1hLHRoaXMuX2lzVXNlckFnZW50TW9iaWxlPSExLGEmJih0aGlzLl9pc1VzZXJBZ2VudE1vYmlsZT14WmUudGVzdChhLmRlZmF1bHRWaWV3Lm5hdmln'@; put 'YXRvci51c2VyQWdlbnQpLHRoaXMuX2lubmVyV2lkdGg9YS5kZWZhdWx0Vmlldy5pbm5lcldpZHRoKX1nZXQgaXNFbmFibGVkKCl7cmV0dXJuISh0aGlzLl9kb2N1bWVudCYmdGhpcy5faW5uZXJXaWR0aDw3NjgmJnRoaXMuX2lzVXNlckFnZW50TW9iaWxlKX19cmV0dXJuIGMuXHUwMjc1ZmFj'@; put 'PWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoQ3IobW8pKX0sYy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSx1Rz0oKCk9PntjbGFzcyBjIGV4dGVuZHMgQzd7Y29uc3RydWN0b3IoYSxkLGgsZix2LE0sSSxHLHJlLHVlLHllLEVlLEJlKXtz'@; put 'dXBlcihhLHF4LGQsdixmLGgpLHRoaXMuZWw9aCx0aGlzLnJlbmRlcmVyPWYsdGhpcy5jb250cm9sPXYsdGhpcy5jb250YWluZXI9TSx0aGlzLmRhdGVJT1NlcnZpY2U9SSx0aGlzLmRhdGVOYXZpZ2F0aW9uU2VydmljZT1HLHRoaXMuZGF0ZXBpY2tlckVuYWJsZWRTZXJ2aWNlPXJlLHRoaXMu'@; put 'ZGF0ZUZvcm1Db250cm9sU2VydmljZT11ZSx0aGlzLnBsYXRmb3JtSWQ9eWUsdGhpcy5mb2N1c1NlcnZpY2U9RWUsdGhpcy5kYXRlcGlja2VyRm9jdXNTZXJ2aWNlPUJlLHRoaXMuaW5kZXg9MX1nZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5kYXRlRm9ybUNvbnRyb2xTZXJ2aWNlP3RoaXMu'@; put 'ZGF0ZUZvcm1Db250cm9sU2VydmljZS5kaXNhYmxlZHx8ISF0aGlzLmNvbnRyb2w/LmNvbnRyb2w/LmRpc2FibGVkOm51bGx9c2V0IGRpc2FibGVkKGEpe3RoaXMuZGF0ZUZvcm1Db250cm9sU2VydmljZSYmdGhpcy5kYXRlRm9ybUNvbnRyb2xTZXJ2aWNlLnNldERpc2FibGVkKGUzKGEpKX1n'@; put 'ZXQgcGxhY2Vob2xkZXJUZXh0KCl7cmV0dXJuIHRoaXMucGxhY2Vob2xkZXI/dGhpcy5wbGFjZWhvbGRlcjp0aGlzLmRhdGVJT1NlcnZpY2UucGxhY2Vob2xkZXJUZXh0fWdldCBpbnB1dFR5cGUoKXtyZXR1cm4gZWwodGhpcy5wbGF0Zm9ybUlkKSYmdGhpcy51c2luZ05hdGl2ZURhdGVwaWNr'@; put 'ZXIoKT8iZGF0ZSI6InRleHQifW5nT25Jbml0KCl7c3VwZXIubmdPbkluaXQoKSx0aGlzLnBvcHVsYXRlU2VydmljZXNGcm9tQ29udGFpbmVyQ29tcG9uZW50KCksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5saXN0ZW5Gb3JVc2VyU2VsZWN0ZWREYXlDaGFuZ2VzKCksdGhpcy5saXN0'@; put 'ZW5Gb3JDb250cm9sVmFsdWVDaGFuZ2VzKCksdGhpcy5saXN0ZW5Gb3JUb3VjaENoYW5nZXMoKSx0aGlzLmxpc3RlbkZvckRpcnR5Q2hhbmdlcygpLHRoaXMubGlzdGVuRm9ySW5wdXRSZWZvY3VzKCkpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMucHJvY2Vzc0luaXRpYWxJbnB1dHMoKX1zZXRG'@; put 'b2N1c1N0YXRlcygpe3RoaXMuc2V0Rm9jdXMoITApfXRyaWdnZXJWYWxpZGF0aW9uKCl7c3VwZXIudHJpZ2dlclZhbGlkYXRpb24oKSx0aGlzLnNldEZvY3VzKCExKX1vblZhbHVlQ2hhbmdlKGEpe2NvbnN0IGQ9dGhpcy5kYXRlSU9TZXJ2aWNlLmdldERhdGVWYWx1ZUZyb21EYXRlU3RyaW5n'@; put 'KGEudmFsdWUpO2lmKHRoaXMudXNpbmdDbGFyaXR5RGF0ZXBpY2tlcigpJiZkKXRoaXMudXBkYXRlRGF0ZShkLCEwKTtlbHNlIGlmKHRoaXMudXNpbmdOYXRpdmVEYXRlcGlja2VyKCkpe2NvbnN0W2gsZix2XT1hLnZhbHVlLnNwbGl0KCItIik7dGhpcy51cGRhdGVEYXRlKG5ldyBEYXRlKCto'@; put 'LCtmLTEsK3YpLCEwKX1lbHNlIHRoaXMuZW1pdERhdGVPdXRwdXQobnVsbCl9ZGF0ZXBpY2tlckhhc0Zvcm1Db250cm9sKCl7cmV0dXJuISF0aGlzLmNvbnRyb2x9c2V0RGF0ZShhKXsic3RyaW5nIj09dHlwZW9mIGEmJihhPW5ldyBEYXRlKGEpKSx0aGlzLnByZXZpb3VzRGF0ZUNoYW5nZSE9'@; put 'PWEmJnRoaXMudXBkYXRlRGF0ZShhKSx0aGlzLmluaXRpYWxDbHJEYXRlSW5wdXRWYWx1ZXx8KHRoaXMuaW5pdGlhbENsckRhdGVJbnB1dFZhbHVlPWEpfXVzaW5nQ2xhcml0eURhdGVwaWNrZXIoKXtyZXR1cm4gdGhpcy5kYXRlcGlja2VyRW5hYmxlZFNlcnZpY2UuaXNFbmFibGVkfXVzaW5n'@; put 'TmF0aXZlRGF0ZXBpY2tlcigpe3JldHVybiF0aGlzLmRhdGVwaWNrZXJFbmFibGVkU2VydmljZS5pc0VuYWJsZWR9c2V0Rm9jdXMoYSl7dGhpcy5mb2N1c1NlcnZpY2UmJih0aGlzLmZvY3VzU2VydmljZS5mb2N1c2VkPWEpfXBvcHVsYXRlU2VydmljZXNGcm9tQ29udGFpbmVyQ29tcG9uZW50'@; put 'KCl7dGhpcy5jb250YWluZXJ8fCh0aGlzLmRhdGVJT1NlcnZpY2U9dGhpcy5nZXRQcm92aWRlckZyb21Db250YWluZXIobGcpLHRoaXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlPXRoaXMuZ2V0UHJvdmlkZXJGcm9tQ29udGFpbmVyKEVoKSx0aGlzLmRhdGVwaWNrZXJFbmFibGVkU2VydmljZT10'@; put 'aGlzLmdldFByb3ZpZGVyRnJvbUNvbnRhaW5lcih0TyksdGhpcy5kYXRlRm9ybUNvbnRyb2xTZXJ2aWNlPXRoaXMuZ2V0UHJvdmlkZXJGcm9tQ29udGFpbmVyKHpiKSl9cHJvY2Vzc0luaXRpYWxJbnB1dHMoKXt0aGlzLmRhdGVwaWNrZXJIYXNGb3JtQ29udHJvbCgpP3RoaXMudXBkYXRlRGF0'@; put 'ZSh0aGlzLmRhdGVJT1NlcnZpY2UuZ2V0RGF0ZVZhbHVlRnJvbURhdGVTdHJpbmcodGhpcy5jb250cm9sLnZhbHVlKSk6dGhpcy51cGRhdGVEYXRlKHRoaXMuaW5pdGlhbENsckRhdGVJbnB1dFZhbHVlKX11cGRhdGVEYXRlKGEsZD0hMSl7Y29uc3QgaD10aGlzLmdldFZhbGlkRGF0ZVZhbHVl'@; put 'RnJvbURhdGUoYSk7aWYoZD90aGlzLmVtaXREYXRlT3V0cHV0KGgpOnRoaXMucHJldmlvdXNEYXRlQ2hhbmdlPWgsdGhpcy5kYXRlTmF2aWdhdGlvblNlcnZpY2Upe2NvbnN0IGY9aD9uZXcgTGQoaC5nZXRGdWxsWWVhcigpLGguZ2V0TW9udGgoKSxoLmdldERhdGUoKSk6bnVsbDt0aGlzLnVw'@; put 'ZGF0ZURheU1vZGVsKGYpfXRoaXMudXBkYXRlSW5wdXQoaCl9dXBkYXRlSW5wdXQoYSl7aWYoYSl7Y29uc3QgZD10aGlzLmRhdGVJT1NlcnZpY2UudG9Mb2NhbGVEaXNwbGF5Rm9ybWF0U3RyaW5nKGEpO3RoaXMudXNpbmdOYXRpdmVEYXRlcGlja2VyKCk/KGEuc2V0TWludXRlcyhhLmdldE1p'@; put 'bnV0ZXMoKS1hLmdldFRpbWV6b25lT2Zmc2V0KCkpLHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJ2YWx1ZUFzRGF0ZSIsYSkpOnRoaXMuZGF0ZXBpY2tlckhhc0Zvcm1Db250cm9sKCkmJmQhPT10aGlzLmNvbnRyb2wudmFsdWU/dGhpcy5jb250cm9s'@; put 'LmNvbnRyb2wuc2V0VmFsdWUoZCk6dGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsInZhbHVlIixkKSx0aGlzLnZhbGlkYXRlRGF0ZVJhbmdlKCl9ZWxzZSB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWwubmF0aXZlRWxlbWVudCwidmFsdWUi'@; put 'LCIiKX1nZXRWYWxpZERhdGVWYWx1ZUZyb21EYXRlKGEpe2lmKHRoaXMuZGF0ZUlPU2VydmljZSl7Y29uc3QgZD10aGlzLmRhdGVJT1NlcnZpY2UudG9Mb2NhbGVEaXNwbGF5Rm9ybWF0U3RyaW5nKGEpO3JldHVybiB0aGlzLmRhdGVJT1NlcnZpY2UuZ2V0RGF0ZVZhbHVlRnJvbURhdGVTdHJp'@; put 'bmcoZCl9cmV0dXJuIG51bGx9ZW1pdERhdGVPdXRwdXQoYSl7IWZ1bmN0aW9uIElaZShjLGwpe3JldHVybiBjIGluc3RhbmNlb2YgRGF0ZSYmbCBpbnN0YW5jZW9mIERhdGUmJmMuZ2V0RnVsbFllYXIoKT09PWwuZ2V0RnVsbFllYXIoKSYmYy5nZXRNb250aCgpPT09bC5nZXRNb250aCgpJiZj'@; put 'LmdldERhdGUoKT09PWwuZ2V0RGF0ZSgpfShhLHRoaXMucHJldmlvdXNEYXRlQ2hhbmdlKT8odGhpcy5kYXRlQ2hhbmdlLmVtaXQoYSksdGhpcy5wcmV2aW91c0RhdGVDaGFuZ2U9YSk6IWEmJnRoaXMucHJldmlvdXNEYXRlQ2hhbmdlJiYodGhpcy5kYXRlQ2hhbmdlLmVtaXQobnVsbCksdGhp'@; put 'cy5wcmV2aW91c0RhdGVDaGFuZ2U9bnVsbCl9bGlzdGVuRm9yQ29udHJvbFZhbHVlQ2hhbmdlcygpe3JldHVybiB0aGlzLmRhdGVwaWNrZXJIYXNGb3JtQ29udHJvbCgpP3RoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShXbCgoKT0+IXRoaXMuZGF0ZXBpY2tlckZvY3VzU2VydmljZS5l'@; put 'bGVtZW50SXNGb2N1c2VkKHRoaXMuZWwubmF0aXZlRWxlbWVudCkpKS5zdWJzY3JpYmUoYT0+dGhpcy51cGRhdGVEYXRlKHRoaXMuZGF0ZUlPU2VydmljZS5nZXREYXRlVmFsdWVGcm9tRGF0ZVN0cmluZyhhKSkpOm51bGx9bGlzdGVuRm9yVXNlclNlbGVjdGVkRGF5Q2hhbmdlcygpe3JldHVy'@; put 'biB0aGlzLnVzZXJTZWxlY3RlZERheUNoYW5nZS5zdWJzY3JpYmUoYT0+dGhpcy51cGRhdGVEYXRlKGE/LnRvRGF0ZSgpLCEwKSl9bGlzdGVuRm9yVG91Y2hDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuZGF0ZUZvcm1Db250cm9sU2VydmljZS50b3VjaGVkQ2hhbmdlLnBpcGUoV2woKCk9PnRoaXMu'@; put 'ZGF0ZXBpY2tlckhhc0Zvcm1Db250cm9sKCkpKS5zdWJzY3JpYmUoKCk9PnRoaXMuY29udHJvbC5jb250cm9sLm1hcmtBc1RvdWNoZWQoKSl9bGlzdGVuRm9yRGlydHlDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuZGF0ZUZvcm1Db250cm9sU2VydmljZS5kaXJ0eUNoYW5nZS5waXBlKFdsKCgpPT50'@; put 'aGlzLmRhdGVwaWNrZXJIYXNGb3JtQ29udHJvbCgpKSkuc3Vic2NyaWJlKCgpPT50aGlzLmNvbnRyb2wuY29udHJvbC5tYXJrQXNEaXJ0eSgpKX1saXN0ZW5Gb3JJbnB1dFJlZm9jdXMoKXtyZXR1cm4gdGhpcy5kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWREYXlDaGFuZ2UucGlwZShX'@; put 'bChhPT4hIWEmJiF0aGlzLmRhdGVOYXZpZ2F0aW9uU2VydmljZS5pc1JhbmdlUGlja2VyKSkuc3Vic2NyaWJlKCgpPT50aGlzLmRhdGVwaWNrZXJGb2N1c1NlcnZpY2UuZm9jdXNJbnB1dCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpKX12YWxpZGF0ZURhdGVSYW5nZSgpe2lmKHRoaXMuZGF0ZU5h'@; put 'dmlnYXRpb25TZXJ2aWNlLmlzUmFuZ2VQaWNrZXIpe2NvbnN0IGE9dGhpcy5uZ0NvbnRyb2xTZXJ2aWNlPy5jb250cm9sLGQ9dGhpcy5uZ0NvbnRyb2xTZXJ2aWNlPy5hZGRpdGlvbmFsQ29udHJvbHM7dGhpcy5kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWREYXk/LmlzQmVmb3JlKHRo'@; put 'aXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVkRW5kRGF5LCEwKSYmKGE/Lmhhc0Vycm9yKCJyYW5nZSIpfHxkPy5zb21lKGY9PmYuaGFzRXJyb3IoInJhbmdlIikpKSYmKGEuY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiExfSksZC5mb3JFYWNoKGY9'@; put 'PntmPy5jb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6ITF9KX0pKX19fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKCRlKFRzKSwkZShEbyksJGUoUWkpLCRlKEVzKSwkZSh1MSwxMCksJGUod28oKCk9PnF4KSw4KSwkZShs'@; put 'Zyw4KSwkZShFaCw4KSwkZSh0Tyw4KSwkZSh6Yiw4KSwkZShpcyksJGUoVmIsOCksJGUoX20pKX0sYy5cdTAyNzVkaXI9RXIoe3R5cGU6Yyxob3N0VmFyczozLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezEmYSYmRnQoImZvY3VzIixmdW5jdGlvbigpe3JldHVybiBkLnNldEZvY3VzU3Rh'@; put 'dGVzKCl9KSgiYmx1ciIsZnVuY3Rpb24oKXtyZXR1cm4gZC50cmlnZ2VyVmFsaWRhdGlvbigpfSkoImNoYW5nZSIsZnVuY3Rpb24oZil7cmV0dXJuIGQub25WYWx1ZUNoYW5nZShmLnRhcmdldCl9KSwyJmEmJihvcCgiZGlzYWJsZWQiLGQuZGlzYWJsZWQpLGhyKCJwbGFjZWhvbGRlciIsZC5w'@; put 'bGFjZWhvbGRlclRleHQpKCJ0eXBlIixkLmlucHV0VHlwZSkpfSxpbnB1dHM6e3BsYWNlaG9sZGVyOiJwbGFjZWhvbGRlciIsZGlzYWJsZWQ6ImRpc2FibGVkIn0sZmVhdHVyZXM6W0NhXX0pLGN9KSgpLHdkZT0oKCk9PntjbGFzcyBjIGV4dGVuZHMgdUd7Y29uc3RydWN0b3IoKXtzdXBlcigu'@; put 'Li5hcmd1bWVudHMpLHRoaXMuZGF0ZUNoYW5nZT1uZXcgS3IoITEpLHRoaXMuaW5wdXRXaWR0aD0xM31zZXQgZGF0ZShhKXt0aGlzLnNldERhdGUoYSl9Z2V0IGlucHV0U2l6ZSgpe3JldHVybiB0aGlzLmlucHV0V2lkdGh9Z2V0IHVzZXJTZWxlY3RlZERheUNoYW5nZSgpe3JldHVybiB0aGlz'@; put 'LmRhdGVOYXZpZ2F0aW9uU2VydmljZS5zZWxlY3RlZEVuZERheUNoYW5nZX10cmlnZ2VyQ29udHJvbElucHV0VmFsaWRhdGlvbigpe3RoaXMuZGF0ZXBpY2tlckhhc0Zvcm1Db250cm9sKCkmJih0aGlzLmNvbnRyb2wuY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50'@; put 'OiExfSksdGhpcy5jb250cm9sLmNvbnRyb2w/LnNldEVycm9ycyh0aGlzLmNvbnRyb2wuY29udHJvbC5lcnJvcnMpKX11cGRhdGVEYXlNb2RlbChhKXt0aGlzLmRhdGVOYXZpZ2F0aW9uU2VydmljZS5wZXJzaXN0ZWRFbmREYXRlPXRoaXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVk'@; put 'RW5kRGF5PWF9fXJldHVybiBjLlx1MDI3NWZhYz0oKCk9PntsZXQgbDtyZXR1cm4gZnVuY3Rpb24oZCl7cmV0dXJuKGx8fChsPVVvKGMpKSkoZHx8Yyl9fSkoKSxjLlx1MDI3NWRpcj1Fcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJjbHJFbmREYXRlIiwiIl1dLGhvc3RWYXJzOjMsaG9zdEJp'@; put 'bmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiYoaHIoInNpemUiLGQuaW5wdXRTaXplKSxUcigiY2xyLWlucHV0IiwhMCkpfSxpbnB1dHM6e2lucHV0V2lkdGg6ImlucHV0V2lkdGgiLGRhdGU6W1ZuLk5vbmUsImNsckVuZERhdGUiLCJkYXRlIl19LG91dHB1dHM6e2RhdGVDaGFuZ2U6ImNsckVu'@; put 'ZERhdGVDaGFuZ2UifSxmZWF0dXJlczpbdWEoW19tXSksQ2FdfSksY30pKCksbk89KCgpPT57Y2xhc3MgYyBleHRlbmRzIHVHe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLmRhdGVDaGFuZ2U9bmV3IEtyKCExKX1zZXQgZGF0ZShhKXt0aGlzLnNldERhdGUoYSl9c2V0'@; put 'IG1pbihhKXt0aGlzLmRhdGVJT1NlcnZpY2Uuc2V0TWluRGF0ZShhKSx0aGlzLnRyaWdnZXJDb250cm9sVmFsaWRhdGlvbigpfXNldCBtYXgoYSl7dGhpcy5kYXRlSU9TZXJ2aWNlLnNldE1heERhdGUoYSksdGhpcy50cmlnZ2VyQ29udHJvbFZhbGlkYXRpb24oKX1nZXQgdXNlclNlbGVjdGVk'@; put 'RGF5Q2hhbmdlKCl7cmV0dXJuIHRoaXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVkRGF5Q2hhbmdlfXVwZGF0ZURheU1vZGVsKGEpe3RoaXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnBlcnNpc3RlZERhdGU9dGhpcy5kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWREYXk9YX10'@; put 'cmlnZ2VyQ29udHJvbFZhbGlkYXRpb24oKXt0aGlzLmRhdGVwaWNrZXJIYXNGb3JtQ29udHJvbCgpJiYodGhpcy5jb250cm9sLmNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDohMX0pLHRoaXMuY29udHJvbC5jb250cm9sPy5zZXRFcnJvcnModGhpcy5jb250cm9s'@; put 'LmNvbnRyb2wuZXJyb3JzKSl9fXJldHVybiBjLlx1MDI3NWZhYz0oKCk9PntsZXQgbDtyZXR1cm4gZnVuY3Rpb24oZCl7cmV0dXJuKGx8fChsPVVvKGMpKSkoZHx8Yyl9fSkoKSxjLlx1MDI3NWRpcj1Fcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJjbHJEYXRlIiwiIl1dLGhvc3RWYXJzOjIs'@; put 'aG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZUcigiY2xyLWlucHV0IiwhMCl9LGlucHV0czp7ZGF0ZTpbVm4uTm9uZSwiY2xyRGF0ZSIsImRhdGUiXSxtaW46Im1pbiIsbWF4OiJtYXgifSxvdXRwdXRzOntkYXRlQ2hhbmdlOiJjbHJEYXRlQ2hhbmdlIn0sZmVhdHVyZXM6W3VhKFtf'@; put 'bV0pLENhXX0pLGN9KSgpLENkZT0oKCk9PntjbGFzcyBjIGV4dGVuZHMgdUd7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuZGF0ZUNoYW5nZT1uZXcgS3IoITEpLHRoaXMuaW5wdXRXaWR0aD0xM31zZXQgZGF0ZShhKXt0aGlzLnNldERhdGUoYSl9Z2V0IGlucHV0U2l6'@; put 'ZSgpe3JldHVybiB0aGlzLmlucHV0V2lkdGh9Z2V0IHVzZXJTZWxlY3RlZERheUNoYW5nZSgpe3JldHVybiB0aGlzLmRhdGVOYXZpZ2F0aW9uU2VydmljZS5zZWxlY3RlZERheUNoYW5nZX10cmlnZ2VyQ29udHJvbElucHV0VmFsaWRhdGlvbigpe3RoaXMuZGF0ZXBpY2tlckhhc0Zvcm1Db250'@; put 'cm9sKCkmJih0aGlzLmNvbnRyb2wuY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiExfSksdGhpcy5jb250cm9sLmNvbnRyb2w/LnNldEVycm9ycyh0aGlzLmNvbnRyb2wuY29udHJvbC5lcnJvcnMpKX11cGRhdGVEYXlNb2RlbChhKXt0aGlzLmRhdGVOYXZpZ2F0'@; put 'aW9uU2VydmljZS5wZXJzaXN0ZWREYXRlPXRoaXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVkRGF5PWF9fXJldHVybiBjLlx1MDI3NWZhYz0oKCk9PntsZXQgbDtyZXR1cm4gZnVuY3Rpb24oZCl7cmV0dXJuKGx8fChsPVVvKGMpKSkoZHx8Yyl9fSkoKSxjLlx1MDI3NWRpcj1Fcih7'@; put 'dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJjbHJTdGFydERhdGUiLCIiXV0saG9zdFZhcnM6NSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsyJmEmJihocigic2l6ZSIsZC5pbnB1dFNpemUpLE4xKCJ0ZXh0LWFsaWduIiwicmlnaHQiKSxUcigiY2xyLWlucHV0IiwhMCkpfSxpbnB1dHM6e2lu'@; put 'cHV0V2lkdGg6ImlucHV0V2lkdGgiLGRhdGU6W1ZuLk5vbmUsImNsclN0YXJ0RGF0ZSIsImRhdGUiXX0sb3V0cHV0czp7ZGF0ZUNoYW5nZToiY2xyU3RhcnREYXRlQ2hhbmdlIn0sZmVhdHVyZXM6W3VhKFtfbV0pLENhXX0pLGN9KSgpLFViPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0'@; put 'aGlzLnBvc2l0aW9uPVRkWyJib3R0b20tbGVmdCJdLHRoaXMuX2N1cnJlbnRWaWV3PSJEQVlWSUVXIn1nZXQgaXNEYXlWaWV3KCl7cmV0dXJuIkRBWVZJRVciPT09dGhpcy5fY3VycmVudFZpZXd9Z2V0IGlzWWVhclZpZXcoKXtyZXR1cm4iWUVBUlZJRVciPT09dGhpcy5fY3VycmVudFZpZXd9'@; put 'Z2V0IGlzTW9udGhWaWV3KCl7cmV0dXJuIk1PTlRIVklFVyI9PT10aGlzLl9jdXJyZW50Vmlld31jaGFuZ2VUb01vbnRoVmlldygpe3RoaXMuX2N1cnJlbnRWaWV3PSJNT05USFZJRVcifWNoYW5nZVRvWWVhclZpZXcoKXt0aGlzLl9jdXJyZW50Vmlldz0iWUVBUlZJRVcifWNoYW5nZVRvRGF5'@; put 'Vmlldygpe3RoaXMuX2N1cnJlbnRWaWV3PSJEQVlWSUVXIn19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCksU2RlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0'@; put 'b3IoYSxkLGgsZix2LE0pe3RoaXMuX2xvY2FsZUhlbHBlclNlcnZpY2U9YSx0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2U9ZCx0aGlzLl9kYXRlcGlja2VyRm9jdXNTZXJ2aWNlPWgsdGhpcy5fZWxSZWY9Zix0aGlzLl92aWV3TWFuYWdlclNlcnZpY2U9dix0aGlzLmNvbW1vblN0cmluZ3M9'@; put 'TSx0aGlzLl9mb2N1c2VkTW9udGhJbmRleD10aGlzLmNhbGVuZGFyTW9udGhJbmRleH1nZXQgbW9udGhOYW1lcygpe3JldHVybiB0aGlzLl9sb2NhbGVIZWxwZXJTZXJ2aWNlLmxvY2FsZU1vbnRoc1dpZGV9Z2V0IGNhbGVuZGFyTW9udGhJbmRleCgpe3JldHVybiB0aGlzLl9kYXRlTmF2aWdh'@; put 'dGlvblNlcnZpY2UuZGlzcGxheWVkQ2FsZW5kYXIubW9udGh9Z2V0IGNhbGVuZGFyRW5kTW9udGhJbmRleCgpe3JldHVybiB0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWRFbmREYXk/Lm1vbnRofWdldCB5ZWFyQXR0clN0cmluZygpe3JldHVybiB0aGlzLmNvbW1vblN0cmlu'@; put 'Z3MucGFyc2UodGhpcy5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlclNlbGVjdFllYXJUZXh0LHtDQUxFTkRBUl9ZRUFSOnRoaXMuY2FsZW5kYXJZZWFyLnRvU3RyaW5nKCl9KX1nZXQgY2FsZW5kYXJZZWFyKCl7cmV0dXJuIHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5kaXNwbGF5'@; put 'ZWRDYWxlbmRhci55ZWFyfWdldCBjdXJyZW50Q2FsZW5kYXJZZWFyKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpfWdldCBjdXJyZW50Q2FsZW5kYXJNb250aCgpe3JldHVybihuZXcgRGF0ZSkuZ2V0TW9udGgoKX1nZXRJc1JhbmdlU3RhcnRNb250aChhKXtyZXR1cm4gdGhpcy5f'@; put 'ZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmlzUmFuZ2VQaWNrZXImJnRoaXMuY2FsZW5kYXJZZWFyPT09dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVkRGF5Py55ZWFyJiZhPT09dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVkRGF5Py5tb250aH1nZXRJc1Jhbmdl'@; put 'RW5kTW9udGgoYSl7cmV0dXJuIHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5pc1JhbmdlUGlja2VyJiZ0aGlzLmNhbGVuZGFyWWVhcj09PXRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5zZWxlY3RlZEVuZERheT8ueWVhciYmYT09PXRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5z'@; put 'ZWxlY3RlZEVuZERheT8ubW9udGh9Y2hhbmdlVG9ZZWFyVmlldygpe3RoaXMuX3ZpZXdNYW5hZ2VyU2VydmljZS5jaGFuZ2VUb1llYXJWaWV3KCl9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5fZGF0ZXBpY2tlckZvY3VzU2VydmljZS5mb2N1c0NlbGwodGhpcy5fZWxSZWYpfW9uS2V5RG93bihh'@; put 'KXtpZihhKXtjb25zdCBkPUwyKGEua2V5KTtkPT09cGEuQXJyb3dVcCYmdGhpcy5fZm9jdXNlZE1vbnRoSW5kZXg+MT8oYS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2ZvY3VzZWRNb250aEluZGV4LT0yLHRoaXMuX2RhdGVwaWNrZXJGb2N1c1NlcnZpY2UuZm9jdXNDZWxsKHRoaXMuX2VsUmVm'@; put 'KSk6ZD09PXBhLkFycm93RG93biYmdGhpcy5fZm9jdXNlZE1vbnRoSW5kZXg8MTA/KGEucHJldmVudERlZmF1bHQoKSx0aGlzLl9mb2N1c2VkTW9udGhJbmRleCs9Mix0aGlzLl9kYXRlcGlja2VyRm9jdXNTZXJ2aWNlLmZvY3VzQ2VsbCh0aGlzLl9lbFJlZikpOmQ9PT1wYS5BcnJvd1JpZ2h0'@; put 'JiZ0aGlzLl9mb2N1c2VkTW9udGhJbmRleDwxMT8oYS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2ZvY3VzZWRNb250aEluZGV4KyssdGhpcy5fZGF0ZXBpY2tlckZvY3VzU2VydmljZS5mb2N1c0NlbGwodGhpcy5fZWxSZWYpKTpkPT09cGEuQXJyb3dMZWZ0JiZ0aGlzLl9mb2N1c2VkTW9udGhJ'@; put 'bmRleD4wJiYoYS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2ZvY3VzZWRNb250aEluZGV4LS0sdGhpcy5fZGF0ZXBpY2tlckZvY3VzU2VydmljZS5mb2N1c0NlbGwodGhpcy5fZWxSZWYpKX19aXNTZWxlY3RlZChhKXtyZXR1cm4gdGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVk'@; put 'RGF5Py55ZWFyPT09dGhpcy5jYWxlbmRhclllYXImJmE9PT10aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWREYXk/Lm1vbnRofHx0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWRFbmREYXk/LnllYXI9PT10aGlzLmNhbGVuZGFyWWVhciYmYT09PXRoaXMuY2Fs'@; put 'ZW5kYXJFbmRNb250aEluZGV4fW9uSG92ZXIoYSl7dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmhvdmVyZWRNb250aD1hfWNoYW5nZU1vbnRoKGEpe3RoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5jaGFuZ2VNb250aChhKSx0aGlzLl92aWV3TWFuYWdlclNlcnZpY2UuY2hhbmdlVG9E'@; put 'YXlWaWV3KCl9Z2V0VGFiSW5kZXgoYSl7cmV0dXJuIGE9PT10aGlzLl9mb2N1c2VkTW9udGhJbmRleD8wOi0xfW5leHRZZWFyKCl7dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLm1vdmVUb05leHRZZWFyKCl9cHJldmlvdXNZZWFyKCl7dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLm1v'@; put 'dmVUb1ByZXZpb3VzWWVhcigpfWN1cnJlbnRZZWFyKCl7dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLm1vdmVUb0N1cnJlbnRNb250aCgpfWlzSW5SYW5nZShhKXtyZXR1cm4hIXRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5pc1JhbmdlUGlja2VyJiYodGhpcy5fZGF0ZU5hdmlnYXRp'@; put 'b25TZXJ2aWNlLnNlbGVjdGVkRGF5JiZ0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWRFbmREYXk/dGhpcy5jYWxlbmRhclllYXI9PT10aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWREYXkueWVhciYmYT50aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2Vs'@; put 'ZWN0ZWREYXkubW9udGgmJnRoaXMuY2FsZW5kYXJZZWFyPT09dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVkRW5kRGF5LnllYXImJmE8dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVkRW5kRGF5Lm1vbnRofHx0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uu'@; put 'c2VsZWN0ZWREYXkueWVhciE9PXRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5zZWxlY3RlZEVuZERheS55ZWFyJiZ0aGlzLmNhbGVuZGFyWWVhcj09PXRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5zZWxlY3RlZERheS55ZWFyJiZhPnRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5z'@; put 'ZWxlY3RlZERheS5tb250aHx8dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVkRGF5LnllYXIhPT10aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWRFbmREYXkueWVhciYmdGhpcy5jYWxlbmRhclllYXI9PT10aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2Vs'@; put 'ZWN0ZWRFbmREYXkueWVhciYmYTx0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWRFbmREYXkubW9udGh8fHRoaXMuY2FsZW5kYXJZZWFyPnRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5zZWxlY3RlZERheS55ZWFyJiZ0aGlzLmNhbGVuZGFyWWVhcjx0aGlzLl9kYXRlTmF2'@; put 'aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWRFbmREYXkueWVhcjohKCF0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWREYXl8fHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5zZWxlY3RlZEVuZERheSkmJih0aGlzLmNhbGVuZGFyWWVhcj09PXRoaXMuX2RhdGVOYXZpZ2F0aW9u'@; put 'U2VydmljZS5zZWxlY3RlZERheS55ZWFyJiZhPnRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5zZWxlY3RlZERheS5tb250aCYmYTx0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuaG92ZXJlZE1vbnRofHx0aGlzLmNhbGVuZGFyWWVhcj50aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uu'@; put 'c2VsZWN0ZWREYXkueWVhciYmYTx0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuaG92ZXJlZE1vbnRoKSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKCRlKEt4KSwkZShFaCksJGUoX20pLCRlKFFpKSwkZShVYiksJGUodG8pKX0sYy5cdTAyNzVj'@; put 'bXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLW1vbnRocGlja2VyIl1dLGhvc3RBdHRyczpbInJvbGUiLCJhcHBsaWNhdGlvbiJdLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MSZhJiZGdCgia2V5ZG93biIsZnVuY3Rpb24oZil7cmV0dXJuIGQub25LZXlEb3du'@; put 'KGYpfSksMiZhJiZUcigibW9udGhwaWNrZXIiLCEwKX0sZGVjbHM6MTMsdmFyczoxMCxjb25zdHM6W1sxLCJjYWxlbmRhci1oZWFkZXIiLCJpbi1tb250aHBpY2tlciJdLFsxLCJ5ZWFyLXZpZXctc3dpdGNoZXIiXSxbInR5cGUiLCJidXR0b24iLDEsImNhbGVuZGFyLWJ0biIsInllYXJwaWNr'@; put 'ZXItdHJpZ2dlciIsMywiY2xpY2siXSxbMSwiY2FsZW5kYXItc3dpdGNoZXJzIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJjYWxlbmRhci1idG4iLCJzd2l0Y2hlciIsMywiY2xpY2siXSxbInNoYXBlIiwiYW5nbGUiLCJkaXJlY3Rpb24iLCJsZWZ0Il0sWyJzaGFwZSIsImV2ZW50Il0sWyJzaGFw'@; put 'ZSIsImFuZ2xlIiwiZGlyZWN0aW9uIiwicmlnaHQiXSxbMSwibW9udGhzIl0sWyJ0eXBlIiwiYnV0dG9uIiwiY2xhc3MiLCJjYWxlbmRhci1idG4gbW9udGgiLDMsImlzLXNlbGVjdGVkIiwiaXMtc3RhcnQtcmFuZ2UiLCJpcy1lbmQtcmFuZ2UiLCJpbi1yYW5nZSIsImlzLXRvZGF5IiwiY2xp'@; put 'Y2siLCJtb3VzZWVudGVyIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbInR5cGUiLCJidXR0b24iLDEsImNhbGVuZGFyLWJ0biIsIm1vbnRoIiwzLCJjbGljayIsIm1vdXNlZW50ZXIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihkZSgwLCJkaXYiLDApKDEsImRpdiIsMSkoMiwiYnV0'@; put 'dG9uIiwyKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQuY2hhbmdlVG9ZZWFyVmlldygpfSksT2UoMyksaGUoKSgpLGRlKDQsImRpdiIsMykoNSwiYnV0dG9uIiw0KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQucHJldmlvdXNZZWFyKCl9KSxXdCg2LCJjZHMtaWNvbiIs'@; put 'NSksaGUoKSxkZSg3LCJidXR0b24iLDQpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5jdXJyZW50WWVhcigpfSksV3QoOCwiY2RzLWljb24iLDYpLGhlKCksZGUoOSwiYnV0dG9uIiw0KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQubmV4dFllYXIoKX0pLFd0KDEwLCJj'@; put 'ZHMtaWNvbiIsNyksaGUoKSgpKCksZGUoMTEsImRpdiIsOCksZ3QoMTIsV05lLDIsMTIsImJ1dHRvbiIsOSksaGUoKSksMiZhJiYoZmUoMiksaHIoImFyaWEtbGFiZWwiLGQueWVhckF0dHJTdHJpbmcpKCJ0aXRsZSIsZC55ZWFyQXR0clN0cmluZyksZmUoKSxMcigiICIsZC5jYWxlbmRhclll'@; put 'YXIsIiAiKSxmZSgyKSxocigiYXJpYS1sYWJlbCIsZC5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlclByZXZpb3VzTW9udGgpLGZlKCksaHIoInRpdGxlIixkLmNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyUHJldmlvdXNNb250aCksZmUoKSxocigiYXJpYS1sYWJlbCIsZC5jb21t'@; put 'b25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlckN1cnJlbnRNb250aCksZmUoKSxocigidGl0bGUiLGQuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJDdXJyZW50TW9udGgpLGZlKCksaHIoImFyaWEtbGFiZWwiLGQuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJOZXh0TW9udGgpLGZl'@; put 'KCksaHIoInRpdGxlIixkLmNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyTmV4dE1vbnRoKSxmZSgyKSxNZSgibmdGb3JPZiIsZC5tb250aE5hbWVzKSl9LGRlcGVuZGVuY2llczpbUXMsZW9dLGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpO2NsYXNzIFh4e2NvbnN0cnVjdG9yKGwpe3RoaXMu'@; put 'eWVhcj1sLHRoaXMueWVhclJhbmdlPVtdLHRoaXMuZ2VuZXJhdGVZZWFyUmFuZ2UoKX1nZXQgbWlkZGxlWWVhcigpe3JldHVybiB0aGlzLnllYXJSYW5nZVtNYXRoLmZsb29yKHRoaXMueWVhclJhbmdlLmxlbmd0aC8yKV19bmV4dERlY2FkZSgpe3JldHVybiBuZXcgWHgodGhpcy55ZWFyKzEw'@; put 'KX1wcmV2aW91c0RlY2FkZSgpe3JldHVybiBuZXcgWHgodGhpcy55ZWFyLTEwKX1jdXJyZW50RGVjYWRlKCl7cmV0dXJuIG5ldyBYeCgobmV3IERhdGUpLmdldEZ1bGxZZWFyKCkpfWluUmFuZ2UobCl7cmV0dXJuIHRoaXMueWVhclJhbmdlLmluZGV4T2YobCk+LTF9Z2VuZXJhdGVZZWFyUmFu'@; put 'Z2UoKXtjb25zdCBhPXRoaXMueWVhci10aGlzLnllYXIlMTA7dGhpcy55ZWFyUmFuZ2U9dGhpcy5nZW5lcmF0ZVJhbmdlKGEsYSsxMCl9Z2VuZXJhdGVSYW5nZShsLGEpe3JldHVybiBBcnJheS5mcm9tKHtsZW5ndGg6YS1sfSwoZCxoKT0+aCtsKX19bGV0IHhkZT0oKCk9PntjbGFzcyBje2Nv'@; put 'bnN0cnVjdG9yKGEsZCxoLGYsdil7dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlPWEsdGhpcy5fdmlld01hbmFnZXJTZXJ2aWNlPWQsdGhpcy5fZGF0ZXBpY2tlckZvY3VzU2VydmljZT1oLHRoaXMuX2VsUmVmPWYsdGhpcy5jb21tb25TdHJpbmdzPXYsdGhpcy55ZWFyUmFuZ2VNb2RlbD1u'@; put 'ZXcgWHgodGhpcy5jYWxlbmRhclllYXIpLHRoaXMuX2ZvY3VzZWRZZWFyPXRoaXMuY2FsZW5kYXJZZWFyfWdldCBzZWxlY3RlZFN0YXJ0WWVhcigpe3JldHVybiB0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWREYXk/LnllYXJ9Z2V0IHNlbGVjdGVkRW5kWWVhcigpe3JldHVy'@; put 'biB0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWRFbmREYXk/LnllYXJ9Z2V0IGNhbGVuZGFyWWVhcigpe3JldHVybiB0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuZGlzcGxheWVkQ2FsZW5kYXIueWVhcn1pc0N1cnJlbnRDYWxlbmRhclllYXIoYSl7cmV0dXJuIGE9PT0o'@; put 'bmV3IERhdGUpLmdldEZ1bGxZZWFyKCl9Z2V0SXNSYW5nZVN0YXJ0WWVhcihhKXtyZXR1cm4gdGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmlzUmFuZ2VQaWNrZXImJmE9PT10aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWREYXk/LnllYXJ9Z2V0SXNSYW5nZUVuZFllYXIo'@; put 'YSl7cmV0dXJuIHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5pc1JhbmdlUGlja2VyJiZhPT09dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVkRW5kRGF5Py55ZWFyfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuX2RhdGVwaWNrZXJGb2N1c1NlcnZpY2UuZm9jdXNDZWxsKHRo'@; put 'aXMuX2VsUmVmKX1vbktleURvd24oYSl7aWYoYSl7Y29uc3QgZD1MMihhLmtleSk7ZD09PXBhLkFycm93VXA/KGEucHJldmVudERlZmF1bHQoKSx0aGlzLmluY3JlbWVudEZvY3VzWWVhckJ5KC0yKSk6ZD09PXBhLkFycm93RG93bj8oYS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaW5jcmVtZW50'@; put 'Rm9jdXNZZWFyQnkoMikpOmQ9PT1wYS5BcnJvd1JpZ2h0PyhhLnByZXZlbnREZWZhdWx0KCksdGhpcy5pbmNyZW1lbnRGb2N1c1llYXJCeSgxKSk6ZD09PXBhLkFycm93TGVmdCYmKGEucHJldmVudERlZmF1bHQoKSx0aGlzLmluY3JlbWVudEZvY3VzWWVhckJ5KC0xKSl9fWNoYW5nZVllYXIo'@; put 'YSl7dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmNoYW5nZVllYXIoYSksdGhpcy5fdmlld01hbmFnZXJTZXJ2aWNlLmNoYW5nZVRvRGF5VmlldygpfW9uSG92ZXIoYSl7dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmhvdmVyZWRZZWFyPWF9cHJldmlvdXNEZWNhZGUoKXt0aGlzLnll'@; put 'YXJSYW5nZU1vZGVsPXRoaXMueWVhclJhbmdlTW9kZWwucHJldmlvdXNEZWNhZGUoKX1jdXJyZW50RGVjYWRlKCl7dGhpcy55ZWFyUmFuZ2VNb2RlbC5pblJhbmdlKHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS50b2RheS55ZWFyKXx8KHRoaXMueWVhclJhbmdlTW9kZWw9dGhpcy55ZWFy'@; put 'UmFuZ2VNb2RlbC5jdXJyZW50RGVjYWRlKCkpLHRoaXMuX2RhdGVwaWNrZXJGb2N1c1NlcnZpY2UuZm9jdXNDZWxsKHRoaXMuX2VsUmVmKX1uZXh0RGVjYWRlKCl7dGhpcy55ZWFyUmFuZ2VNb2RlbD10aGlzLnllYXJSYW5nZU1vZGVsLm5leHREZWNhZGUoKX1nZXRUYWJJbmRleChhKXtyZXR1'@; put 'cm4gdGhpcy55ZWFyUmFuZ2VNb2RlbC5pblJhbmdlKHRoaXMuX2ZvY3VzZWRZZWFyKXx8KHRoaXMuX2ZvY3VzZWRZZWFyPXRoaXMueWVhclJhbmdlTW9kZWwuaW5SYW5nZSh0aGlzLmNhbGVuZGFyWWVhcik/dGhpcy5jYWxlbmRhclllYXI6dGhpcy55ZWFyUmFuZ2VNb2RlbC5pblJhbmdlKHRo'@; put 'aXMuc2VsZWN0ZWRFbmRZZWFyKT90aGlzLnNlbGVjdGVkRW5kWWVhcjp0aGlzLnllYXJSYW5nZU1vZGVsLm1pZGRsZVllYXIpLHRoaXMuX2ZvY3VzZWRZZWFyPT09YT8wOi0xfWlzSW5SYW5nZShhKXtyZXR1cm4hIXRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5pc1JhbmdlUGlja2VyJiYo'@; put 'dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVkRGF5Py55ZWFyJiZ0aGlzLnNlbGVjdGVkRW5kWWVhcj9hPnRoaXMuc2VsZWN0ZWRTdGFydFllYXImJmE8dGhpcy5zZWxlY3RlZEVuZFllYXI6ISghdGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVkRGF5Py55ZWFy'@; put 'fHx0aGlzLnNlbGVjdGVkRW5kWWVhcikmJmE+dGhpcy5zZWxlY3RlZFN0YXJ0WWVhciYmYTx0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuaG92ZXJlZFllYXIpfWNoYW5nZVRvRGF5Vmlldygpe3RoaXMuX3ZpZXdNYW5hZ2VyU2VydmljZS5jaGFuZ2VUb0RheVZpZXcoKX1pbmNyZW1lbnRG'@; put 'b2N1c1llYXJCeShhKXt0aGlzLl9mb2N1c2VkWWVhcj10aGlzLl9mb2N1c2VkWWVhcithLHRoaXMueWVhclJhbmdlTW9kZWwuaW5SYW5nZSh0aGlzLl9mb2N1c2VkWWVhcil8fCh0aGlzLnllYXJSYW5nZU1vZGVsPWE+MD90aGlzLnllYXJSYW5nZU1vZGVsLm5leHREZWNhZGUoKTp0aGlzLnll'@; put 'YXJSYW5nZU1vZGVsLnByZXZpb3VzRGVjYWRlKCkpLHRoaXMuX2RhdGVwaWNrZXJGb2N1c1NlcnZpY2UuZm9jdXNDZWxsKHRoaXMuX2VsUmVmKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoJGUoRWgpLCRlKFViKSwkZShfbSksJGUoUWkpLCRlKHRv'@; put 'KSl9LGMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci15ZWFycGlja2VyIl1dLGhvc3RBdHRyczpbInJvbGUiLCJhcHBsaWNhdGlvbiJdLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MSZhJiZGdCgia2V5ZG93biIsZnVuY3Rpb24oZil7cmV0dXJu'@; put 'IGQub25LZXlEb3duKGYpfSksMiZhJiZUcigieWVhcnBpY2tlciIsITApfSxkZWNsczoxMyx2YXJzOjksY29uc3RzOltbMSwiY2FsZW5kYXItaGVhZGVyIl0sWzEsImNhbGVuZGFyLXBpY2tlcnMiXSxbInR5cGUiLCJidXR0b24iLDEsImNhbGVuZGFyLWJ0biIsInllYXJwaWNrZXItdHJpZ2dl'@; put 'ciIsInllYXItcmFuZ2UiLDMsImNsaWNrIl0sWzEsInllYXItc3dpdGNoZXJzIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJjYWxlbmRhci1idG4iLCJzd2l0Y2hlciIsMywiY2xpY2siXSxbInNoYXBlIiwiYW5nbGUiLCJkaXJlY3Rpb24iLCJsZWZ0Il0sWyJzaGFwZSIsImV2ZW50Il0sWyJzaGFw'@; put 'ZSIsImFuZ2xlIiwiZGlyZWN0aW9uIiwicmlnaHQiXSxbMSwieWVhcnMiXSxbInR5cGUiLCJidXR0b24iLCJjbGFzcyIsImNhbGVuZGFyLWJ0biB5ZWFyIiwzLCJpcy1zZWxlY3RlZCIsImlzLXN0YXJ0LXJhbmdlIiwiaXMtZW5kLXJhbmdlIiwiaW4tcmFuZ2UiLCJpcy10b2RheSIsImNsaWNr'@; put 'IiwibW91c2VlbnRlciIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJjYWxlbmRhci1idG4iLCJ5ZWFyIiwzLCJjbGljayIsIm1vdXNlZW50ZXIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihkZSgwLCJkaXYiLDApKDEsImRpdiIsMSkoMiwiYnV0dG9u'@; put 'IiwyKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQuY2hhbmdlVG9EYXlWaWV3KCl9KSxPZSgzKSxoZSgpKCksZGUoNCwiZGl2IiwzKSg1LCJidXR0b24iLDQpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5wcmV2aW91c0RlY2FkZSgpfSksV3QoNiwiY2RzLWljb24iLDUp'@; put 'LGhlKCksZGUoNywiYnV0dG9uIiw0KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQuY3VycmVudERlY2FkZSgpfSksV3QoOCwiY2RzLWljb24iLDYpLGhlKCksZGUoOSwiYnV0dG9uIiw0KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQubmV4dERlY2FkZSgpfSksV3QoMTAs'@; put 'ImNkcy1pY29uIiw3KSxoZSgpKCkoKSxkZSgxMSwiZGl2Iiw4KSxndCgxMixZTmUsMiwxMiwiYnV0dG9uIiw5KSxoZSgpKSwyJmEmJihmZSgzKSxCdSgiICIsZC55ZWFyUmFuZ2VNb2RlbC55ZWFyUmFuZ2VbMF0sIiAtICIsZC55ZWFyUmFuZ2VNb2RlbC55ZWFyUmFuZ2VbZC55ZWFyUmFuZ2VN'@; put 'b2RlbC55ZWFyUmFuZ2UubGVuZ3RoLTFdLCIgIiksZmUoMiksaHIoImFyaWEtbGFiZWwiLGQuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJQcmV2aW91c0RlY2FkZSksZmUoKSxocigidGl0bGUiLGQuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJQcmV2aW91c0RlY2FkZSksZmUo'@; put 'KSxocigiYXJpYS1sYWJlbCIsZC5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlckN1cnJlbnREZWNhZGUpLGZlKCksaHIoInRpdGxlIixkLmNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyQ3VycmVudERlY2FkZSksZmUoKSxocigiYXJpYS1sYWJlbCIsZC5jb21tb25TdHJpbmdzLmtl'@; put 'eXMuZGF0ZXBpY2tlck5leHREZWNhZGUpLGZlKCksaHIoInRpdGxlIixkLmNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyTmV4dERlY2FkZSksZmUoMiksTWUoIm5nRm9yT2YiLGQueWVhclJhbmdlTW9kZWwueWVhclJhbmdlKSl9LGRlcGVuZGVuY2llczpbUXMsZW9dLGVuY2Fwc3VsYXRp'@; put 'b246Mn0pLGN9KSgpLEVkZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYpe3RoaXMuX3ZpZXdNYW5hZ2VyU2VydmljZT1hLHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZT1kLHRoaXMuX2xvY2FsZUhlbHBlclNlcnZpY2U9aCx0aGlzLmNvbW1vblN0cmluZ3M9Zn1nZXQgbW9u'@; put 'dGhBdHRyU3RyaW5nKCl7cmV0dXJuIHRoaXMuY29tbW9uU3RyaW5ncy5wYXJzZSh0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyU2VsZWN0TW9udGhUZXh0LHtDQUxFTkRBUl9NT05USDp0aGlzLmNhbGVuZGFyTW9udGh9KX1nZXQgeWVhckF0dHJTdHJpbmcoKXtyZXR1cm4gdGhp'@; put 'cy5jb21tb25TdHJpbmdzLnBhcnNlKHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJTZWxlY3RZZWFyVGV4dCx7Q0FMRU5EQVJfWUVBUjp0aGlzLmNhbGVuZGFyWWVhci50b1N0cmluZygpfSl9Z2V0IGNhbGVuZGFyTW9udGgoKXtyZXR1cm4gdGhpcy5fbG9jYWxlSGVscGVyU2Vy'@; put 'dmljZS5sb2NhbGVNb250aHNBYmJyZXZpYXRlZFt0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuZGlzcGxheWVkQ2FsZW5kYXIubW9udGhdfWdldCBjYWxlbmRhclllYXIoKXtyZXR1cm4gdGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmRpc3BsYXllZENhbGVuZGFyLnllYXJ9Y2hhbmdl'@; put 'VG9Nb250aFZpZXcoKXt0aGlzLl92aWV3TWFuYWdlclNlcnZpY2UuY2hhbmdlVG9Nb250aFZpZXcoKX1jaGFuZ2VUb1llYXJWaWV3KCl7dGhpcy5fdmlld01hbmFnZXJTZXJ2aWNlLmNoYW5nZVRvWWVhclZpZXcoKX1uZXh0TW9udGgoKXt0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UubW92'@; put 'ZVRvTmV4dE1vbnRoKCl9cHJldmlvdXNNb250aCgpe3RoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5tb3ZlVG9QcmV2aW91c01vbnRoKCl9Y3VycmVudE1vbnRoKCl7dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLm1vdmVUb0N1cnJlbnRNb250aCgpfX1yZXR1cm4gYy5cdTAyNzVmYWM9'@; put 'ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZShVYiksJGUoRWgpLCRlKEt4KSwkZSh0bykpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItZGF5cGlja2VyIl1dLGhvc3RBdHRyczpbInJvbGUiLCJhcHBsaWNhdGlvbiJdLGhvc3RWYXJzOjIsaG9zdEJpbmRp'@; put 'bmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZUcigiZGF5cGlja2VyIiwhMCl9LGRlY2xzOjE4LHZhcnM6MTQsY29uc3RzOltbMSwiY2xyLXNyLW9ubHkiXSxbMSwiY2FsZW5kYXItaGVhZGVyIl0sWzEsImNhbGVuZGFyLXBpY2tlcnMiXSxbInR5cGUiLCJidXR0b24iLDEsImNhbGVuZGFyLWJ0biIs'@; put 'Im1vbnRocGlja2VyLXRyaWdnZXIiLDMsImNsaWNrIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJjYWxlbmRhci1idG4iLCJ5ZWFycGlja2VyLXRyaWdnZXIiLDMsImNsaWNrIl0sWzEsImNhbGVuZGFyLXN3aXRjaGVycyJdLFsidHlwZSIsImJ1dHRvbiIsMSwiY2FsZW5kYXItYnRuIiwic3dpdGNo'@; put 'ZXIiLDMsImNsaWNrIl0sWyJzaGFwZSIsImFuZ2xlIiwiZGlyZWN0aW9uIiwibGVmdCJdLFsic2hhcGUiLCJldmVudCJdLFsic2hhcGUiLCJhbmdsZSIsImRpcmVjdGlvbiIsInJpZ2h0Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoZGUoMCwiZGl2IiwwKSxPZSgxKSxoZSgpLGRl'@; put 'KDIsImRpdiIsMSkoMywiZGl2IiwyKSg0LCJidXR0b24iLDMpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5jaGFuZ2VUb01vbnRoVmlldygpfSksT2UoNSksaGUoKSxkZSg2LCJidXR0b24iLDQpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5jaGFuZ2VUb1llYXJWaWV3'@; put 'KCl9KSxPZSg3KSxoZSgpKCksZGUoOCwiZGl2Iiw1KSg5LCJidXR0b24iLDYpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5wcmV2aW91c01vbnRoKCl9KSxXdCgxMCwiY2RzLWljb24iLDcpLGhlKCksZGUoMTEsImJ1dHRvbiIsNiksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVy'@; put 'biBkLmN1cnJlbnRNb250aCgpfSksV3QoMTIsImNkcy1pY29uIiw4KSxoZSgpLGRlKDEzLCJidXR0b24iLDYpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5uZXh0TW9udGgoKX0pLFd0KDE0LCJjZHMtaWNvbiIsOSksaGUoKSgpKCksV3QoMTUsImNsci1jYWxlbmRhciIpLGRlKDE2'@; put 'LCJkaXYiLDApLE9lKDE3KSxoZSgpKSwyJmEmJihmZSgpLFNyKGQuY29tbW9uU3RyaW5ncy5rZXlzLm1vZGFsQ29udGVudFN0YXJ0KSxmZSgzKSxocigiYXJpYS1sYWJlbCIsZC5tb250aEF0dHJTdHJpbmcpKCJ0aXRsZSIsZC5tb250aEF0dHJTdHJpbmcpLGZlKCksTHIoIiAiLGQuY2FsZW5k'@; put 'YXJNb250aCwiICIpLGZlKCksaHIoImFyaWEtbGFiZWwiLGQueWVhckF0dHJTdHJpbmcpKCJ0aXRsZSIsZC55ZWFyQXR0clN0cmluZyksZmUoKSxMcigiICIsZC5jYWxlbmRhclllYXIsIiAiKSxmZSgyKSxocigiYXJpYS1sYWJlbCIsZC5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlclBy'@; put 'ZXZpb3VzTW9udGgpLGZlKCksaHIoInRpdGxlIixkLmNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyUHJldmlvdXNNb250aCksZmUoKSxocigiYXJpYS1sYWJlbCIsZC5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlckN1cnJlbnRNb250aCksZmUoKSxocigidGl0bGUiLGQuY29tbW9u'@; put 'U3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJDdXJyZW50TW9udGgpLGZlKCksaHIoImFyaWEtbGFiZWwiLGQuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJOZXh0TW9udGgpLGZlKCksaHIoInRpdGxlIixkLmNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyTmV4dE1vbnRoKSxmZSgzKSxT'@; put 'cihkLmNvbW1vblN0cmluZ3Mua2V5cy5tb2RhbENvbnRlbnRFbmQpKX0sZGVwZW5kZW5jaWVzOltlbyxfZGVdLGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLFRkZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYpe3RoaXMuY29tbW9uU3RyaW5ncz1hLHRoaXMudG9nZ2xlU2Vydmlj'@; put 'ZT1kLHRoaXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlPWgsdGhpcy5kYXRlRm9ybUNvbnRyb2xTZXJ2aWNlPWZ9YXBwbHkoKXt0aGlzLmRhdGVOYXZpZ2F0aW9uU2VydmljZS5pc1JhbmdlUGlja2VyJiZ0aGlzLmRhdGVOYXZpZ2F0aW9uU2VydmljZS5zZWxlY3RlZERheSYmdGhpcy5kYXRlTmF2'@; put 'aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWRFbmREYXk/KHRoaXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLm5vdGlmeVNlbGVjdGVkRGF5Q2hhbmdlZCh7c3RhcnREYXRlOnRoaXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVkRGF5LGVuZERhdGU6dGhpcy5kYXRlTmF2aWdhdGlvblNlcnZp'@; put 'Y2Uuc2VsZWN0ZWRFbmREYXl9KSx0aGlzLmRhdGVGb3JtQ29udHJvbFNlcnZpY2UubWFya0FzRGlydHkoKSk6IXRoaXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmlzUmFuZ2VQaWNrZXImJnRoaXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVkRGF5JiYodGhpcy5kYXRlTmF2aWdhdGlv'@; put 'blNlcnZpY2Uubm90aWZ5U2VsZWN0ZWREYXlDaGFuZ2VkKHRoaXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVkRGF5KSx0aGlzLmRhdGVGb3JtQ29udHJvbFNlcnZpY2UubWFya0FzRGlydHkoKSksdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW49ITF9Y2FuY2VsKCl7dGhpcy5kYXRlTmF2'@; put 'aWdhdGlvblNlcnZpY2UucmVzZXRTZWxlY3RlZERheSgpLHRoaXMudG9nZ2xlU2VydmljZS5vcGVuPSExfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZSh0byksJGUoc2MpLCRlKEVoKSwkZSh6YikpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNl'@; put 'bGVjdG9yczpbWyJjbHItZGF0ZXBpY2tlci1hY3Rpb25zIl1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZUcigiZGF0ZXBpY2tlci1hY3Rpb25zIiwhMCl9LGRlY2xzOjQsdmFyczoyLGNvbnN0czpbWzEsImJ0biIsImJ0bi1vdXRsaW5lIiwzLCJjbGljayJd'@; put 'LFsxLCJidG4iLCJidG4tcHJpbWFyeSIsMywiY2xpY2siXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihkZSgwLCJidXR0b24iLDApLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5jYW5jZWwoKX0pLE9lKDEpLGhlKCksZGUoMiwiYnV0dG9uIiwxKSxGdCgiY2xpY2siLGZ1'@; put 'bmN0aW9uKCl7cmV0dXJuIGQuYXBwbHkoKX0pLE9lKDMpLGhlKCkpLDImYSYmKGZlKCksU3IoZC5jb21tb25TdHJpbmdzLmtleXMuY2FuY2VsKSxmZSgyKSxTcihkLmNvbW1vblN0cmluZ3Mua2V5cy5hcHBseSkpfSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxBZGU9KCgpPT57Y2xhc3MgY3tj'@; put 'b25zdHJ1Y3RvcihhLGQsaCxmKXt0aGlzLmNvbW1vblN0cmluZ3M9YSx0aGlzLnZpZXdNYW5hZ2VyU2VydmljZT1kLHRoaXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlPWgsdGhpcy5kYXRlSU9TZXJ2aWNlPWZ9Z2V0IGlzTW9udGhWaWV3KCl7cmV0dXJuIHRoaXMudmlld01hbmFnZXJTZXJ2aWNl'@; put 'LmlzTW9udGhWaWV3fWdldCBpc1llYXJWaWV3KCl7cmV0dXJuIHRoaXMudmlld01hbmFnZXJTZXJ2aWNlLmlzWWVhclZpZXd9Z2V0IGlzRGF5Vmlldygpe3JldHVybiB0aGlzLnZpZXdNYW5hZ2VyU2VydmljZS5pc0RheVZpZXd9Z2V0IGhhc1JhbmdlT3B0aW9ucygpe3JldHVybiEhdGhpcy5k'@; put 'YXRlTmF2aWdhdGlvblNlcnZpY2U/LmlzUmFuZ2VQaWNrZXImJiEhdGhpcy5kYXRlUmFuZ2VPcHRpb25zPy5sZW5ndGh9Z2V0IGhhc0FjdGlvbkJ1dHRvbnMoKXtyZXR1cm4gdGhpcy5kYXRlTmF2aWdhdGlvblNlcnZpY2UuaGFzQWN0aW9uQnV0dG9uc31nZXQgZGF0ZVJhbmdlT3B0aW9ucygp'@; put 'e3JldHVybiB0aGlzLmRhdGVJT1NlcnZpY2UuZ2V0UmFuZ2VPcHRpb25zKCl9b25SYW5nZU9wdGlvblNlbGVjdChhKXtjb25zdCBkPXRoaXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmNvbnZlcnREYXRlVG9EYXlNb2RlbChhPy52YWx1ZVswXSksaD10aGlzLmRhdGVOYXZpZ2F0aW9uU2Vydmlj'@; put 'ZS5jb252ZXJ0RGF0ZVRvRGF5TW9kZWwoYT8udmFsdWVbMV0pO3RoaXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLm5vdGlmeVNlbGVjdGVkRGF5Q2hhbmdlZCh7c3RhcnREYXRlOmQsZW5kRGF0ZTpofSx7ZW1pdEV2ZW50OiF0aGlzLmhhc0FjdGlvbkJ1dHRvbnN9KSx0aGlzLmRhdGVOYXZpZ2F0'@; put 'aW9uU2VydmljZS5tb3ZlVG9TcGVjaWZpY01vbnRoKGQpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZSh0byksJGUoVWIpLCRlKEVoKSwkZShsZykpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItZGF0ZXBpY2tlci12'@; put 'aWV3LW1hbmFnZXIiXV0saG9zdEF0dHJzOlsicm9sZSIsImRpYWxvZyJdLGhvc3RWYXJzOjgsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiYoaHIoImFyaWEtbW9kYWwiLCEwKSgiYXJpYS1sYWJlbCIsZC5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlckRpYWxvZ0xhYmVsKSxU'@; put 'cigiZGF0ZXBpY2tlciIsITApKCJoYXMtcmFuZ2Utb3B0aW9uIixkLmhhc1JhbmdlT3B0aW9ucykoImhhcy1hY3Rpb24tYnV0dG9ucyIsZC5oYXNBY3Rpb25CdXR0b25zKSl9LGZlYXR1cmVzOlt1YShbX21dKV0sZGVjbHM6Myx2YXJzOjIsY29uc3RzOltbImNhbGVuZGFyVmlldyIsIiJdLFs0'@; put 'LCJuZ0lmIiwibmdJZkVsc2UiXSxbMSwiY2xyLWRhdGUtcmFuZ2UtcGlja2VyLW5hdiJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiZGF0ZXBpY2tlci12aWV3LW1hbmFnZXIiXSxbNCwibmdUZW1wbGF0ZU91dGxldCJdLFsiY2xyVmVydGljYWxOYXZMaW5rIiwiIiwiaHJlZiIsImphdmFz'@; put 'Y3JpcHQ6dm9pZCgwKSIsInRhYmluZGV4IiwiMCIsMywia2V5dXAuZW50ZXIiLCJjbGljayJdLFs0LCJuZ0lmIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7aWYoMSZhJiZndCgwLEtOZSw1LDIsIm5nLWNvbnRhaW5lciIsMSkoMSxlVmUsNCw0LCJuZy10ZW1wbGF0ZSIsbnVsbCwwLGdjKSwy'@; put 'JmEpe2NvbnN0IGg9ZGEoMik7TWUoIm5nSWYiLGQuaGFzUmFuZ2VPcHRpb25zKSgibmdJZkVsc2UiLGgpfX0sZGVwZW5kZW5jaWVzOltRcyxiYSxCMSxyRyxhRyxTZGUseGRlLEVkZSxUZGVdLGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLHF4PSgoKT0+e2NsYXNzIGMgZXh0ZW5kcyB3N3tjb25z'@; put 'dHJ1Y3RvcihhLGQsaCxmLHYsTSxJLEcscmUsdWUseWUsRWUsQmUsR2Upe2lmKHN1cGVyKEdlLEVlLHllLEJlKSx0aGlzLnJlbmRlcmVyPWEsdGhpcy5lbGVtPWQsdGhpcy50b2dnbGVTZXJ2aWNlPWgsdGhpcy5kYXRlTmF2aWdhdGlvblNlcnZpY2U9Zix0aGlzLmRhdGVwaWNrZXJFbmFibGVk'@; put 'U2VydmljZT12LHRoaXMuZGF0ZUZvcm1Db250cm9sU2VydmljZT1NLHRoaXMuZGF0ZUlPU2VydmljZT1JLHRoaXMuY29tbW9uU3RyaW5ncz1HLHRoaXMudmlld01hbmFnZXJTZXJ2aWNlPXVlLHRoaXMuY29udHJvbENsYXNzU2VydmljZT15ZSx0aGlzLmxheW91dFNlcnZpY2U9RWUsdGhpcy5u'@; put 'Z0NvbnRyb2xTZXJ2aWNlPUJlLHRoaXMuaWZDb250cm9sU3RhdGVTZXJ2aWNlPUdlLHRoaXMuZm9jdXM9ITEsdGhpcy5zdWJzY3JpcHRpb25zLnB1c2gocmUuZm9jdXNDaGFuZ2Uuc3Vic2NyaWJlKHN0PT57dGhpcy5mb2N1cz1zdH0pKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChoLm9wZW5D'@; put 'aGFuZ2Uuc3Vic2NyaWJlKCgpPT57TS5tYXJrQXNUb3VjaGVkKCl9KSksZil7Y29uc3Qgc3Q9ZC5uYXRpdmVFbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKTtmLmhhc0FjdGlvbkJ1dHRvbnM9Zi5pc1JhbmdlUGlja2VyPSJjbHItZGF0ZS1yYW5nZS1jb250YWluZXIiPT09c3R9fXNldCBz'@; put 'aG93QWN0aW9uQnV0dG9ucyhhKXt0aGlzLmRhdGVOYXZpZ2F0aW9uU2VydmljZS5pc1JhbmdlUGlja2VyJiYhYT9jb25zb2xlLmVycm9yKCJFcnJvciEgVGhlIGRhdGUgcmFuZ2UgcGlja2VyIHJlcXVpcmVzIGFjdGlvbiBidXR0b25zLCBbc2hvd0FjdGlvbkJ1dHRvbnNdIGNhbm5vdCBiZSB0'@; put 'dXJuZWQgb2ZmLiIpOnRoaXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmhhc0FjdGlvbkJ1dHRvbnM9YX1zZXQgY2xyUG9zaXRpb24oYSl7YSYmVGRbYV0mJih0aGlzLnZpZXdNYW5hZ2VyU2VydmljZS5wb3NpdGlvbj1UZFthXSl9c2V0IHJhbmdlT3B0aW9ucyhhKXt0aGlzLmRhdGVJT1NlcnZp'@; put 'Y2Uuc2V0UmFuZ2VPcHRpb25zKGEpfXNldCBtaW4oYSl7dGhpcy5kYXRlTmF2aWdhdGlvblNlcnZpY2UuaXNSYW5nZVBpY2tlcj8odGhpcy5kYXRlSU9TZXJ2aWNlLnNldE1pbkRhdGUoYSksdGhpcy5jbHJTdGFydERhdGVJbnB1dD8udHJpZ2dlckNvbnRyb2xJbnB1dFZhbGlkYXRpb24oKSx0'@; put 'aGlzLmNsckVuZERhdGVJbnB1dD8udHJpZ2dlckNvbnRyb2xJbnB1dFZhbGlkYXRpb24oKSk6Y29uc29sZS5lcnJvcigiRXJyb3IhIFRoZSBkYXRlIGNvbnRhaW5lciBbbWluXSBpbnB1dCBvbmx5IHdvcmtzIGZvciBkYXRlIHJhbmdlIHBpY2tlcnMuIFVzZSB0aGUgbmF0aXZlIGBtaW5gIGF0'@; put 'dHJpYnV0ZS9wcm9wZXJ0eSBmb3Igc2luZ2xlLWRhdGUgaW5wdXRzLiIpfXNldCBtYXgoYSl7dGhpcy5kYXRlTmF2aWdhdGlvblNlcnZpY2UuaXNSYW5nZVBpY2tlcj8odGhpcy5kYXRlSU9TZXJ2aWNlLnNldE1heERhdGUoYSksdGhpcy5jbHJTdGFydERhdGVJbnB1dD8udHJpZ2dlckNvbnRy'@; put 'b2xJbnB1dFZhbGlkYXRpb24oKSx0aGlzLmNsckVuZERhdGVJbnB1dD8udHJpZ2dlckNvbnRyb2xJbnB1dFZhbGlkYXRpb24oKSk6Y29uc29sZS5lcnJvcigiRXJyb3IhIFRoZSBkYXRlIGNvbnRhaW5lciBbbWF4XSBpbnB1dCBvbmx5IHdvcmtzIGZvciBkYXRlIHJhbmdlIHBpY2tlcnMuIFVz'@; put 'ZSB0aGUgbmF0aXZlIGBtYXhgIGF0dHJpYnV0ZS9wcm9wZXJ0eSBmb3Igc2luZ2xlLWRhdGUgaW5wdXRzLiIpfXNldCBhY3Rpb25CdXR0b24oYSl7dGhpcy50b2dnbGVCdXR0b249YX1nZXQgcG9wb3ZlclBvc2l0aW9uKCl7cmV0dXJuIHRoaXMudmlld01hbmFnZXJTZXJ2aWNlLnBvc2l0aW9u'@; put 'fWdldCBvcGVuKCl7cmV0dXJuIHRoaXMudG9nZ2xlU2VydmljZS5vcGVufWdldCBpc0VuYWJsZWQoKXtyZXR1cm4gdGhpcy5kYXRlcGlja2VyRW5hYmxlZFNlcnZpY2UuaXNFbmFibGVkfWdldCBpc0lucHV0RGF0ZURpc2FibGVkKCl7cmV0dXJuIHRoaXMuY29udHJvbCYmdGhpcy5jb250cm9s'@; put 'LmRpc2FibGVkfHx0aGlzLmRhdGVGb3JtQ29udHJvbFNlcnZpY2UmJnRoaXMuZGF0ZUZvcm1Db250cm9sU2VydmljZS5kaXNhYmxlZH1nZXQgaXNSYW5nZVBpY2tlcigpe3JldHVybiB0aGlzLmRhdGVOYXZpZ2F0aW9uU2VydmljZS5pc1JhbmdlUGlja2VyfW5nQWZ0ZXJWaWV3SW5pdCgpe3Ro'@; put 'aXMuZGF0ZVJhbmdlU3RydWN0dXJhbENoZWNrcygpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMudG9nZ2xlU2VydmljZS5vcGVuQ2hhbmdlLnN1YnNjcmliZShhPT57YT90aGlzLmluaXRpYWxpemVDYWxlbmRhcigpOih0aGlzLnRvZ2dsZUJ1dHRvbi5uYXRpdmVFbGVtZW50LmZvY3Vz'@; put 'KCksdGhpcy5kYXRlTmF2aWdhdGlvblNlcnZpY2UucmVzZXRTZWxlY3RlZERheSgpKX0pKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmxpc3RlbkZvckRhdGVDaGFuZ2VzKCkpfWdldFRvZ2dsZUJ1dHRvbkxhYmVsKGEpe2lmKGEpe2NvbnN0IGQ9dGhpcy5kYXRlSU9TZXJ2aWNlLnRv'@; put 'TG9jYWxlRGlzcGxheUZvcm1hdFN0cmluZyhhLnRvRGF0ZSgpKTtyZXR1cm4gdGhpcy5jb21tb25TdHJpbmdzLnBhcnNlKHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJUb2dnbGVDaGFuZ2VEYXRlTGFiZWwse1NFTEVDVEVEX0RBVEU6ZH0pfXJldHVybiB0aGlzLmNvbW1vblN0'@; put 'cmluZ3Mua2V5cy5kYXRlcGlja2VyVG9nZ2xlQ2hvb3NlRGF0ZUxhYmVsfWxpc3RlbkZvckRhdGVDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVkRGF5Q2hhbmdlLnBpcGUoVDIodGhpcy5kYXRlTmF2aWdhdGlvblNlcnZpY2Uuc2VsZWN0ZWREYXkp'@; put 'KS5zdWJzY3JpYmUoYT0+e2lmKHRoaXMuaXNFbmFibGVkKXtjb25zdCBkPXRoaXMuZ2V0VG9nZ2xlQnV0dG9uTGFiZWwoYSksaD10aGlzLnRvZ2dsZUJ1dHRvbi5uYXRpdmVFbGVtZW50O3RoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGgsImFyaWEtbGFiZWwiLGQpLHRoaXMucmVuZGVyZXIu'@; put 'c2V0QXR0cmlidXRlKGgsInRpdGxlIixkKX19KX1pbml0aWFsaXplQ2FsZW5kYXIoKXt0aGlzLmRhdGVOYXZpZ2F0aW9uU2VydmljZS5pbml0aWFsaXplQ2FsZW5kYXIoKX1kYXRlUmFuZ2VTdHJ1Y3R1cmFsQ2hlY2tzKCl7dGhpcy5kYXRlTmF2aWdhdGlvblNlcnZpY2UuaXNSYW5nZVBpY2tl'@; put 'ciYmKHRoaXMuY2xyRGF0ZUlucHV0JiZjb25zb2xlLmVycm9yKCJFcnJvciEgY2xyLWRhdGUtcmFuZ2UtY29udGFpbmVyIG11c3QgY29udGFpbiBjbHJTdGFydERhdGUgYW5kIGNsckVuZERhdGUgaW5wdXRzIiksdGhpcy5jbHJTdGFydERhdGVJbnB1dHx8Y29uc29sZS5lcnJvcigiRXJyb3Ih'@; put 'IGNsci1kYXRlLXJhbmdlLWNvbnRhaW5lciBtdXN0IGNvbnRhaW4gY2xyU3RhcnREYXRlIGlucHV0IiksdGhpcy5jbHJFbmREYXRlSW5wdXR8fGNvbnNvbGUuZXJyb3IoIkVycm9yISBjbHItZGF0ZS1yYW5nZS1jb250YWluZXIgbXVzdCBjb250YWluIGNsckVuZERhdGUgaW5wdXQiKSl9fXJl'@; put 'dHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKCRlKEVzKSwkZShRaSksJGUoc2MpLCRlKEVoKSwkZSh0TyksJGUoemIpLCRlKGxnKSwkZSh0byksJGUoVmIpLCRlKFViKSwkZShEZCksJGUoTXAsOCksJGUoaDEpLCRlKGtkKSl9LGMuXHUwMjc1Y21wPU5yKHt0'@; put 'eXBlOmMsc2VsZWN0b3JzOltbImNsci1kYXRlLWNvbnRhaW5lciJdLFsiY2xyLWRhdGUtcmFuZ2UtY29udGFpbmVyIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGEsZCxoKXtpZigxJmEmJihhcyhoLG5PLDUpLGFzKGgsQ2RlLDUpLGFzKGgsd2RlLDUpKSwyJmEpe2xldCBmO3lpKGY9Ymko'@; put 'KSkmJihkLmNsckRhdGVJbnB1dD1mLmZpcnN0KSx5aShmPWJpKCkpJiYoZC5jbHJTdGFydERhdGVJbnB1dD1mLmZpcnN0KSx5aShmPWJpKCkpJiYoZC5jbHJFbmREYXRlSW5wdXQ9Zi5maXJzdCl9fSx2aWV3UXVlcnk6ZnVuY3Rpb24oYSxkKXtpZigxJmEmJkZhKHRWZSw1KSwyJmEpe2xldCBo'@; put 'O3lpKGg9YmkoKSkmJihkLmFjdGlvbkJ1dHRvbj1oLmZpcnN0KX19LGhvc3RWYXJzOjgsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZUcigiY2xyLWRhdGUtY29udGFpbmVyIiwhMCkoImNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQiLGQuaXNJbnB1dERhdGVEaXNhYmxlZCkoImNs'@; put 'ci1mb3JtLWNvbnRyb2wiLCEwKSgiY2xyLXJvdyIsZC5hZGRHcmlkKCkpfSxpbnB1dHM6e3Nob3dBY3Rpb25CdXR0b25zOiJzaG93QWN0aW9uQnV0dG9ucyIsY2xyUG9zaXRpb246ImNsclBvc2l0aW9uIixyYW5nZU9wdGlvbnM6InJhbmdlT3B0aW9ucyIsbWluOiJtaW4iLG1heDoibWF4In0s'@; put 'ZmVhdHVyZXM6W3VhKFtNaCxLeCxEZCxWYixoMSxsZyxFaCx0Tyx6YixVYixrZF0pLHlkKFthZ10pLENhXSxuZ0NvbnRlbnRTZWxlY3RvcnM6clZlLGRlY2xzOjE0LHZhcnM6MTUsY29uc3RzOltbImFjdGlvbkJ1dHRvbiIsIiJdLFs0LCJuZ0lmIl0sWzEsImNsci1jb250cm9sLWNvbnRhaW5l'@; put 'ciIsMywibmdDbGFzcyJdLFsiY2xyUG9wb3ZlckFuY2hvciIsIiIsMSwiY2xyLWlucHV0LXdyYXBwZXIiXSxbMSwiY2xyLWlucHV0LWdyb3VwIl0sWyJ0eXBlIiwiYnV0dG9uIiwiY2xyUG9wb3Zlck9wZW5DbG9zZUJ1dHRvbiIsIiIsImNsYXNzIiwiY2xyLWlucHV0LWdyb3VwLWljb24tYWN0'@; put 'aW9uIiwzLCJkaXNhYmxlZCIsNCwibmdJZiJdLFsiY2RrVHJhcEZvY3VzIiwiIiw0LCJjbHJQb3BvdmVyQ29udGVudCIsImNsclBvcG92ZXJDb250ZW50QXQiLCJjbHJQb3BvdmVyQ29udGVudE91dHNpZGVDbGlja1RvQ2xvc2UiLCJjbHJQb3BvdmVyQ29udGVudFNjcm9sbFRvQ2xvc2UiXSxb'@; put 'ImNsYXNzIiwiY2xyLXZhbGlkYXRlLWljb24iLCJzaGFwZSIsImV4Y2xhbWF0aW9uLWNpcmNsZSIsInN0YXR1cyIsImRhbmdlciIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsNCwibmdJZiJdLFsiY2xhc3MiLCJjbHItdmFsaWRhdGUtaWNvbiIsInNoYXBlIiwiY2hlY2stY2lyY2xlIiwic3RhdHVz'@; put 'Iiwic3VjY2VzcyIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsNCwibmdJZiJdLFsxLCJkYXRlLXJhbmdlLXNlcGFyYXRvciJdLFsidHlwZSIsImJ1dHRvbiIsImNsclBvcG92ZXJPcGVuQ2xvc2VCdXR0b24iLCIiLDEsImNsci1pbnB1dC1ncm91cC1pY29uLWFjdGlvbiIsMywiZGlzYWJsZWQiXSxb'@; put 'InN0YXR1cyIsImluZm8iLCJzaGFwZSIsImNhbGVuZGFyIl0sWyJjZGtUcmFwRm9jdXMiLCIiXSxbInNoYXBlIiwiZXhjbGFtYXRpb24tY2lyY2xlIiwic3RhdHVzIiwiZGFuZ2VyIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJjbHItdmFsaWRhdGUtaWNvbiJdLFsic2hhcGUiLCJjaGVjay1j'@; put 'aXJjbGUiLCJzdGF0dXMiLCJzdWNjZXNzIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJjbHItdmFsaWRhdGUtaWNvbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKHNhKG5WZSksV3IoMCksZ3QoMSxpVmUsMSwwLCJsYWJlbCIsMSksZGUoMiwiZGl2IiwyKSgzLCJkaXYiLDMpKDQs'@; put 'ImRpdiIsNCksZ3QoNSxhVmUsNSwwLCJuZy1jb250YWluZXIiLDEpLFdyKDYsMSksZ3QoNyxzVmUsMywxLCJidXR0b24iLDUpKDgsb1ZlLDEsMCwiY2xyLWRhdGVwaWNrZXItdmlldy1tYW5hZ2VyIiw2KSxoZSgpLGd0KDksbFZlLDEsMCwiY2RzLWljb24iLDcpKDEwLGNWZSwxLDAsImNkcy1p'@; put 'Y29uIiw4KSxoZSgpLGd0KDExLHVWZSwxLDAsIm5nLWNvbnRlbnQiLDEpKDEyLGRWZSwxLDAsIm5nLWNvbnRlbnQiLDEpKDEzLGhWZSwxLDAsIm5nLWNvbnRlbnQiLDEpLGhlKCkpLDImYSYmKGZlKCksTWUoIm5nSWYiLCFkLmxhYmVsJiZkLmFkZEdyaWQoKSksZmUoKSxNZSgibmdDbGFzcyIs'@; put 'ZC5jb250cm9sQ2xhc3MoKSksZmUoMiksVHIoImNsci1mb2N1cyIsZC5mb2N1cyksZmUoKSxNZSgibmdJZiIsZC5pc1JhbmdlUGlja2VyKSxmZSgyKSxNZSgibmdJZiIsZC5pc0VuYWJsZWQpLGZlKCksTWUoImNsclBvcG92ZXJDb250ZW50IixkLm9wZW4pKCJjbHJQb3BvdmVyQ29udGVudEF0'@; put 'IixkLnBvcG92ZXJQb3NpdGlvbikoImNsclBvcG92ZXJDb250ZW50T3V0c2lkZUNsaWNrVG9DbG9zZSIsITApKCJjbHJQb3BvdmVyQ29udGVudFNjcm9sbFRvQ2xvc2UiLCEwKSxmZSgpLE1lKCJuZ0lmIixkLnNob3dJbnZhbGlkKSxmZSgpLE1lKCJuZ0lmIixkLnNob3dWYWxpZCksZmUoKSxN'@; put 'ZSgibmdJZiIsZC5zaG93SGVscGVyKSxmZSgpLE1lKCJuZ0lmIixkLnNob3dJbnZhbGlkKSxmZSgpLE1lKCJuZ0lmIixkLnNob3dWYWxpZCkpfSxkZXBlbmRlbmNpZXM6W3Z1LGJhLEJiLEJ4LFV4LHp4LGVvLGNvLEFkZV0sZW5jYXBzdWxhdGlvbjoyfSksY30pKCksZEc9KCgpPT57Y2xhc3Mg'@; put 'Y3tjb25zdHJ1Y3RvcihhKXt0aGlzLmRhdGVJT1NlcnZpY2U9YX12YWxpZGF0ZShhKXtpZih0aGlzLmRhdGVJT1NlcnZpY2Upe2NvbnN0IGQ9dGhpcy5kYXRlSU9TZXJ2aWNlLmdldERhdGVWYWx1ZUZyb21EYXRlU3RyaW5nKGEudmFsdWUpLGg9dGhpcy5kYXRlSU9TZXJ2aWNlLmRpc2FibGVk'@; put 'RGF0ZXMubWluRGF0ZS50b0RhdGUoKSxmPXRoaXMuZGF0ZUlPU2VydmljZS5kaXNhYmxlZERhdGVzLm1heERhdGUudG9EYXRlKCk7aWYoZCYmZDxoKXJldHVybnttaW46e21pbjpoLnRvTG9jYWxlRGF0ZVN0cmluZygpLGFjdHVhbDpkLnRvTG9jYWxlRGF0ZVN0cmluZygpfX07aWYoZCYmZD5m'@; put 'KXJldHVybnttYXg6e21heDpmLnRvTG9jYWxlRGF0ZVN0cmluZygpLGFjdHVhbDpkLnRvTG9jYWxlRGF0ZVN0cmluZygpfX19cmV0dXJuIG51bGx9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKCRlKGxnLDgpKX0sYy5cdTAyNzVkaXI9RXIoe3R5cGU6'@; put 'YyxzZWxlY3RvcnM6W1siIiwiY2xyRGF0ZSIsIiJdLFsiIiwiY2xyU3RhcnREYXRlIiwiIl0sWyIiLCJjbHJFbmREYXRlIiwiIl1dLGZlYXR1cmVzOlt1YShbe3Byb3ZpZGU6dTAsdXNlRXhpc3Rpbmc6YyxtdWx0aTohMH1dKV19KSxjfSkoKSxPWmU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rv'@; put 'cigpe0VvLmFkZEljb25zKGJoLF9oLENiLCRPZSxLT2UpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9QWkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPUFyKHtpbXBvcnRzOltMYSxRTCxXeCxGMixaeCxUbyxudSxtZGVdfSksY30p'@; put 'KCk7bmV3IFN0KCJDbHJGaWxlTWVzc2FnZXNUZW1wbGF0ZUNvbnRleHQiKTtsZXQgRlplPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXtFby5hZGRJY29ucyhYT2UpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9QWkoe3R5'@; put 'cGU6Y30pLGMuXHUwMjc1aW5qPUFyKHtpbXBvcnRzOltMYSxUbyxudSxudV19KSxjfSkoKSxrZGU9KCgpPT57Y2xhc3MgYyBleHRlbmRzIHc3e2NvbnN0cnVjdG9yKGEsZCxoLGYsdil7c3VwZXIodixkLGEsaCksdGhpcy5pZkNvbnRyb2xTdGF0ZVNlcnZpY2U9dix0aGlzLmZvY3VzPSExLHRo'@; put 'aXMuc3Vic2NyaXB0aW9ucy5wdXNoKGYuZm9jdXNDaGFuZ2Uuc3Vic2NyaWJlKE09PnRoaXMuZm9jdXM9TSkpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZShEZCksJGUoTXAsOCksJGUoaDEpLCRlKFZiKSwkZShrZCkpfSxjLlx1MDI3NWNtcD1O'@; put 'cih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItbnVtYmVyLWlucHV0LWNvbnRhaW5lciJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihhLGQsaCl7aWYoMSZhJiZhcyhoLERkZSw1KSwyJmEpe2xldCBmO3lpKGY9YmkoKSkmJihkLmlucHV0PWYuZmlyc3QpfX0saG9zdFZhcnM6OCxob3N0Qmlu'@; put 'ZGluZ3M6ZnVuY3Rpb24oYSxkKXsyJmEmJlRyKCJjbHItZm9ybS1jb250cm9sIiwhMCkoImNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQiLG51bGw9PWQuY29udHJvbD9udWxsOmQuY29udHJvbC5kaXNhYmxlZCkoImNsci1mb3JtLWNvbnRyb2wtcmVhZG9ubHkiLGQuaW5wdXQucmVhZG9ubHkp'@; put 'KCJjbHItcm93IixkLmFkZEdyaWQoKSl9LGZlYXR1cmVzOlt1YShbVmIsa2QsaDEsTWgsRGRdKSxDYV0sbmdDb250ZW50U2VsZWN0b3JzOnZWZSxkZWNsczoxNyx2YXJzOjExLGNvbnN0czpbWzQsIm5nSWYiXSxbMSwiY2xyLWNvbnRyb2wtY29udGFpbmVyIiwzLCJuZ0NsYXNzIl0sWzEsImNs'@; put 'ci1udW1iZXItaW5wdXQtd3JhcHBlciJdLFsxLCJjbHItaW5wdXQtZ3JvdXAiXSxbMSwiY2xyLWlucHV0LWdyb3VwLWFjdGlvbnMiXSxbInR5cGUiLCJidXR0b24iLDEsImNsci1pbnB1dC1ncm91cC1pY29uLWFjdGlvbiIsMywiY2xpY2siLCJkaXNhYmxlZCJdLFsic2hhcGUiLCJtaW51cyIs'@; put 'InNpemUiLCJzbSJdLFsxLCJjbHItbnVtYmVyLWlucHV0LXNlcGFyYXRvciJdLFsic2hhcGUiLCJwbHVzIiwic2l6ZSIsInNtIl0sWyJjbGFzcyIsImNsci12YWxpZGF0ZS1pY29uIiwic2hhcGUiLCJleGNsYW1hdGlvbi1jaXJjbGUiLCJzdGF0dXMiLCJkYW5nZXIiLCJhcmlhLWhpZGRlbiIs'@; put 'InRydWUiLDQsIm5nSWYiXSxbImNsYXNzIiwiY2xyLXZhbGlkYXRlLWljb24iLCJzaGFwZSIsImNoZWNrLWNpcmNsZSIsInN0YXR1cyIsInN1Y2Nlc3MiLCJhcmlhLWhpZGRlbiIsInRydWUiLDQsIm5nSWYiXSxbInNoYXBlIiwiZXhjbGFtYXRpb24tY2lyY2xlIiwic3RhdHVzIiwiZGFuZ2Vy'@; put 'IiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJjbHItdmFsaWRhdGUtaWNvbiJdLFsic2hhcGUiLCJjaGVjay1jaXJjbGUiLCJzdGF0dXMiLCJzdWNjZXNzIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJjbHItdmFsaWRhdGUtaWNvbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKHNh'@; put 'KG1WZSksV3IoMCksZ3QoMSx5VmUsMSwwLCJsYWJlbCIsMCksZGUoMiwiZGl2IiwxKSgzLCJkaXYiLDIpKDQsImRpdiIsMyksV3IoNSwxKSxkZSg2LCJkaXYiLDQpKDcsImJ1dHRvbiIsNSksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBkLmlucHV0LnN0ZXBEb3duKCl9KSxXdCg4LCJj'@; put 'ZHMtaWNvbiIsNiksaGUoKSxXdCg5LCJkaXYiLDcpLGRlKDEwLCJidXR0b24iLDUpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5pbnB1dC5zdGVwVXAoKX0pLFd0KDExLCJjZHMtaWNvbiIsOCksaGUoKSgpKCksZ3QoMTIsYlZlLDEsMCwiY2RzLWljb24iLDkpKDEzLF9WZSwxLDAs'@; put 'ImNkcy1pY29uIiwxMCksaGUoKSxndCgxNCx3VmUsMSwwLCJuZy1jb250ZW50IiwwKSgxNSxDVmUsMSwwLCJuZy1jb250ZW50IiwwKSgxNixTVmUsMSwwLCJuZy1jb250ZW50IiwwKSxoZSgpKSwyJmEmJihmZSgpLE1lKCJuZ0lmIiwhZC5sYWJlbCYmZC5hZGRHcmlkKCkpLGZlKCksTWUoIm5n'@; put 'Q2xhc3MiLGQuY29udHJvbENsYXNzKCkpLGZlKDIpLFRyKCJjbHItZm9jdXMiLGQuZm9jdXMpLGZlKDMpLE1lKCJkaXNhYmxlZCIsbnVsbD09ZC5jb250cm9sP251bGw6ZC5jb250cm9sLmRpc2FibGVkKSxmZSgzKSxNZSgiZGlzYWJsZWQiLG51bGw9PWQuY29udHJvbD9udWxsOmQuY29udHJv'@; put 'bC5kaXNhYmxlZCksZmUoMiksTWUoIm5nSWYiLGQuc2hvd0ludmFsaWQpLGZlKCksTWUoIm5nSWYiLGQuc2hvd1ZhbGlkKSxmZSgpLE1lKCJuZ0lmIixkLnNob3dIZWxwZXIpLGZlKCksTWUoIm5nSWYiLGQuc2hvd0ludmFsaWQpLGZlKCksTWUoIm5nSWYiLGQuc2hvd1ZhbGlkKSl9LGRlcGVu'@; put 'ZGVuY2llczpbdnUsYmEsZW8sY29dLGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLERkZT0oKCk9PntjbGFzcyBjIGV4dGVuZHMgQzd7Y29uc3RydWN0b3IoYSxkLGgsZix2LE0pe2lmKHN1cGVyKGQsa2RlLGgsZix2LE0pLHRoaXMuZm9jdXNTZXJ2aWNlPWEsdGhpcy5jb250cm9sPWYsdGhpcy5l'@; put 'bD1NLHRoaXMuaW5kZXg9MSwhYSl0aHJvdyBuZXcgRXJyb3IoImNsck51bWJlcklucHV0IHJlcXVpcmVzIGJlaW5nIHdyYXBwZWQgaW4gPGNsci1udW1iZXItaW5wdXQtY29udGFpbmVyPiIpfWdldCByZWFkb25seSgpe3JldHVybiBudWxsIT09dGhpcy5lbC5uYXRpdmVFbGVtZW50LmdldEF0'@; put 'dHJpYnV0ZSgicmVhZG9ubHkiKX10cmlnZ2VyRm9jdXMoKXshdGhpcy5yZWFkb25seSYmdGhpcy5mb2N1c1NlcnZpY2UmJih0aGlzLmZvY3VzU2VydmljZS5mb2N1c2VkPSEwKX10cmlnZ2VyVmFsaWRhdGlvbigpe3RoaXMucmVhZG9ubHl8fChzdXBlci50cmlnZ2VyVmFsaWRhdGlvbigpLHRo'@; put 'aXMuZm9jdXNTZXJ2aWNlJiYodGhpcy5mb2N1c1NlcnZpY2UuZm9jdXNlZD0hMSkpfXN0ZXBVcCgpe3RoaXMuZWwubmF0aXZlRWxlbWVudC5zdGVwVXAoKSx0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImlucHV0Iix7YnViYmxlczohMCxjYW5jZWxhYmxl'@; put 'OiEwfSkpLHRoaXMuY29udHJvbC5jb250cm9sLm1hcmtBbGxBc1RvdWNoZWQoKX1zdGVwRG93bigpe3RoaXMuZWwubmF0aXZlRWxlbWVudC5zdGVwRG93bigpLHRoaXMuZWwubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiaW5wdXQiLHtidWJibGVzOiEwLGNhbmNlbGFi'@; put 'bGU6ITB9KSksdGhpcy5jb250cm9sLmNvbnRyb2wubWFya0FsbEFzVG91Y2hlZCgpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZShWYiw4KSwkZShUcyksJGUoRG8pLCRlKHUxLDEwKSwkZShFcyksJGUoUWkpKX0sYy5cdTAyNzVkaXI9RXIoe3R5'@; put 'cGU6YyxzZWxlY3RvcnM6W1siaW5wdXQiLCJ0eXBlIiwibnVtYmVyIiwiY2xyTnVtYmVySW5wdXQiLCIiXV0saG9zdFZhcnM6NCxob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsxJmEmJkZ0KCJmb2N1cyIsZnVuY3Rpb24oKXtyZXR1cm4gZC50cmlnZ2VyRm9jdXMoKX0pKCJibHVyIixmdW5j'@; put 'dGlvbigpe3JldHVybiBkLnRyaWdnZXJWYWxpZGF0aW9uKCl9KSwyJmEmJlRyKCJjbHItaW5wdXQiLCEwKSgiY2xyLW51bWJlci1pbnB1dCIsITApfSxmZWF0dXJlczpbQ2FdfSksY30pKCksSFplPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXtFby5hZGRJY29ucyhiaCxfaCxxT2UsSk9l'@; put 'KX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1Bcih7aW1wb3J0czpbTGEsa2MsVG8sbnUsbnVdfSksY30pKCk7bmV3IFN0KHZvaWQgMCk7bGV0IEJaZT0oKCk9PntjbGFzcyBje2Nv'@; put 'bnN0cnVjdG9yKCl7RW8uYWRkSWNvbnMoUU9lLGVQZSxiaCxfaCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9QXIoe2ltcG9ydHM6W0xhLGtjLFRvLG51LG51XX0pLGN9KSgpLGhH'@; put 'PSgoKT0+e2NsYXNzIGN7bmdPbkluaXQoKXt0aGlzLmxhYmVsJiZ0aGlzLmxhYmVsLmRpc2FibGVHcmlkKCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItcmFkaW8td3JhcHBl'@; put 'ciJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihhLGQsaCl7aWYoMSZhJiZhcyhoLGNvLDcpLDImYSl7bGV0IGY7eWkoZj1iaSgpKSYmKGQubGFiZWw9Zi5maXJzdCl9fSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmVHIoImNsci1yYWRpby13cmFwcGVyIiwh'@; put 'MCl9LGZlYXR1cmVzOlt1YShbTWhdKV0sbmdDb250ZW50U2VsZWN0b3JzOnhWZSxkZWNsczozLHZhcnM6MSxjb25zdHM6W1s0LCJuZ0lmIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoc2EoTVZlKSxXcigwKSxXcigxLDEpLGd0KDIsRVZlLDEsMCwibGFiZWwiLDApKSwyJmEmJihm'@; put 'ZSgyKSxNZSgibmdJZiIsIWQubGFiZWwpKX0sZGVwZW5kZW5jaWVzOltiYSxjb10sZW5jYXBzdWxhdGlvbjoyfSksY30pKCksZkc9KCgpPT57Y2xhc3MgYyBleHRlbmRzIEM3e2NvbnN0cnVjdG9yKGEsZCxoLGYsdil7c3VwZXIoYSxoRyxkLGgsZix2KX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1'@; put 'bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoJGUoVHMpLCRlKERvKSwkZSh1MSwxMCksJGUoRXMpLCRlKFFpKSl9LGMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsImNsclJhZGlvIiwiIl1dLGZlYXR1cmVzOltDYV19KSxjfSkoKSxqWmU9KCgpPT57Y2xhc3MgYyBleHRl'@; put 'bmRzIHc3e2NvbnN0cnVjdG9yKGEsZCxoLGYpe3N1cGVyKGYsYSxkLGgpLHRoaXMubGF5b3V0U2VydmljZT1hLHRoaXMuY29udHJvbENsYXNzU2VydmljZT1kLHRoaXMubmdDb250cm9sU2VydmljZT1oLHRoaXMuaWZDb250cm9sU3RhdGVTZXJ2aWNlPWYsdGhpcy5pbmxpbmU9ITEsdGhpcy5f'@; put 'Z2VuZXJhdGVkSWQ9X3UoKX1nZXQgY2xySW5saW5lKCl7cmV0dXJuIHRoaXMuaW5saW5lfXNldCBjbHJJbmxpbmUoYSl7dGhpcy5pbmxpbmU9InN0cmluZyI9PXR5cGVvZiBhPyJmYWxzZSIhPT1hOiEhYX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLnNldEFyaWFSb2xlcygpLHRoaXMuc2V0'@; put 'QXJpYUxhYmVsbGVkQnkoKX1zZXRBcmlhUm9sZXMoKXt0aGlzLnJvbGU9dGhpcy5yYWRpb3MubGVuZ3RoPyJyYWRpb2dyb3VwIjpudWxsfXNldEFyaWFMYWJlbGxlZEJ5KCl7Y29uc3QgYT10aGlzLmdyb3VwTGFiZWw/Lm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpO2E/dGhpcy5h'@; put 'cmlhTGFiZWxsZWRCeT10aGlzLnJhZGlvcy5sZW5ndGg/YTpudWxsOih0aGlzLmdyb3VwTGFiZWw/Lm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJpZCIsdGhpcy5fZ2VuZXJhdGVkSWQpLHRoaXMuYXJpYUxhYmVsbGVkQnk9dGhpcy5yYWRpb3MubGVuZ3RoP3RoaXMuX2dlbmVyYXRlZElk'@; put 'Om51bGwpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZShNcCw4KSwkZShEZCksJGUoaDEpLCRlKGtkKSl9LGMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1yYWRpby1jb250YWluZXIiXV0sY29udGVudFF1ZXJpZXM6ZnVu'@; put 'Y3Rpb24oYSxkLGgpe2lmKDEmYSYmKGFzKGgsY28sNyxRaSksYXMoaCxmRyw1KSksMiZhKXtsZXQgZjt5aShmPWJpKCkpJiYoZC5ncm91cExhYmVsPWYuZmlyc3QpLHlpKGY9YmkoKSkmJihkLnJhZGlvcz1mKX19LGhvc3RWYXJzOjgsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiYo'@; put 'aHIoInJvbGUiLGQucm9sZSkoImFyaWEtbGFiZWxsZWRieSIsZC5hcmlhTGFiZWxsZWRCeSksVHIoImNsci1mb3JtLWNvbnRyb2wiLCEwKSgiY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCIsbnVsbD09ZC5jb250cm9sP251bGw6ZC5jb250cm9sLmRpc2FibGVkKSgiY2xyLXJvdyIsZC5hZGRH'@; put 'cmlkKCkpKX0saW5wdXRzOntjbHJJbmxpbmU6ImNscklubGluZSJ9LGZlYXR1cmVzOlt1YShbaDEsa2QsRGQscDddKSxDYV0sbmdDb250ZW50U2VsZWN0b3JzOkFWZSxkZWNsczo2LHZhcnM6Nixjb25zdHM6W1s0LCJuZ0lmIl0sWzEsImNsci1jb250cm9sLWNvbnRhaW5lciIsMywibmdDbGFz'@; put 'cyJdLFsiY2xhc3MiLCJjbHItc3VidGV4dC13cmFwcGVyIiw0LCJuZ0lmIl0sWzEsImNsci1zdWJ0ZXh0LXdyYXBwZXIiXSxbImNsYXNzIiwiY2xyLXZhbGlkYXRlLWljb24iLCJzaGFwZSIsImV4Y2xhbWF0aW9uLWNpcmNsZSIsInN0YXR1cyIsImRhbmdlciIsImFyaWEtaGlkZGVuIiwidHJ1'@; put 'ZSIsNCwibmdJZiJdLFsiY2xhc3MiLCJjbHItdmFsaWRhdGUtaWNvbiIsInNoYXBlIiwiY2hlY2stY2lyY2xlIiwic3RhdHVzIiwic3VjY2VzcyIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsNCwibmdJZiJdLFsic2hhcGUiLCJleGNsYW1hdGlvbi1jaXJjbGUiLCJzdGF0dXMiLCJkYW5nZXIiLCJh'@; put 'cmlhLWhpZGRlbiIsInRydWUiLDEsImNsci12YWxpZGF0ZS1pY29uIl0sWyJzaGFwZSIsImNoZWNrLWNpcmNsZSIsInN0YXR1cyIsInN1Y2Nlc3MiLCJhcmlhLWhpZGRlbiIsInRydWUiLDEsImNsci12YWxpZGF0ZS1pY29uIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoc2EoVFZl'@; put 'KSxXcigwKSxndCgxLGtWZSwxLDAsImxhYmVsIiwwKSxkZSgyLCJkaXYiLDEpLFdyKDMsMSksZ3QoNCxEVmUsMiwwLCJkaXYiLDIpKDUsUFZlLDUsNCwiZGl2IiwyKSxoZSgpKSwyJmEmJihmZSgpLE1lKCJuZ0lmIiwhZC5sYWJlbCYmZC5hZGRHcmlkKCkpLGZlKCksVHIoImNsci1jb250cm9s'@; put 'LWlubGluZSIsZC5jbHJJbmxpbmUpLE1lKCJuZ0NsYXNzIixkLmNvbnRyb2xDbGFzcygpKSxmZSgyKSxNZSgibmdJZiIsZC5zaG93SGVscGVyKSxmZSgpLE1lKCJuZ0lmIixkLnNob3dWYWxpZHx8ZC5zaG93SW52YWxpZCkpfSxkZXBlbmRlbmNpZXM6W3Z1LGJhLGNvLGVvXSxlbmNhcHN1bGF0'@; put 'aW9uOjJ9KSxjfSkoKSx6WmU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe0VvLmFkZEljb25zKGJoLF9oKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1Bcih7aW1wb3J0czpb'@; put 'TGEsbnUsV3gsVG8sbnVdfSksY30pKCksVVplPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXtFby5hZGRJY29ucyhiaCxfaCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9QXIo'@; put 'e2ltcG9ydHM6W0xhLG51LFd4LFRvLG51XX0pLGN9KSgpLFpiPSgoKT0+e2NsYXNzIGMgZXh0ZW5kcyB3N3tjb25zdHJ1Y3RvcihhLGQsaCxmKXtzdXBlcihmLGEsZCxoKSx0aGlzLmxheW91dFNlcnZpY2U9YSx0aGlzLmNvbnRyb2xDbGFzc1NlcnZpY2U9ZCx0aGlzLm5nQ29udHJvbFNlcnZp'@; put 'Y2U9aCx0aGlzLmlmQ29udHJvbFN0YXRlU2VydmljZT1mLHRoaXMubXVsdGk9ITF9bmdPbkluaXQoKXt0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLm5nQ29udHJvbFNlcnZpY2UuY29udHJvbENoYW5nZXMuc3Vic2NyaWJlKGE9PnthJiYodGhpcy5tdWx0aT1hLnZhbHVlQWNjZXNzb3Ig'@; put 'aW5zdGFuY2VvZiB3eCx0aGlzLmNvbnRyb2w9YSl9KSl9d3JhcHBlckNsYXNzKCl7cmV0dXJuIHRoaXMubXVsdGk/ImNsci1tdWx0aXNlbGVjdC13cmFwcGVyIjoiY2xyLXNlbGVjdC13cmFwcGVyIn19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoJGUo'@; put 'TXAsOCksJGUoRGQpLCRlKGgxKSwkZShrZCkpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItc2VsZWN0LWNvbnRhaW5lciJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihhLGQsaCl7aWYoMSZhJiZhcyhoLHd4LDUpLDImYSl7bGV0IGY7eWkoZj1iaSgpKSYmKGQu'@; put 'bXVsdGlwbGU9Zi5maXJzdCl9fSxob3N0VmFyczo2LGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmVHIoImNsci1mb3JtLWNvbnRyb2wiLCEwKSgiY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCIsbnVsbD09ZC5jb250cm9sP251bGw6ZC5jb250cm9sLmRpc2FibGVkKSgiY2xyLXJv'@; put 'dyIsZC5hZGRHcmlkKCkpfSxmZWF0dXJlczpbdWEoW2tkLGgxLE1oLERkXSksQ2FdLG5nQ29udGVudFNlbGVjdG9yczpIVmUsZGVjbHM6MTAsdmFyczo4LGNvbnN0czpbWzQsIm5nSWYiXSxbMSwiY2xyLWNvbnRyb2wtY29udGFpbmVyIiwzLCJuZ0NsYXNzIl0sWzMsIm5nQ2xhc3MiXSxbImNs'@; put 'YXNzIiwiY2xyLXZhbGlkYXRlLWljb24iLCJzaGFwZSIsImV4Y2xhbWF0aW9uLWNpcmNsZSIsInN0YXR1cyIsImRhbmdlciIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsNCwibmdJZiJdLFsiY2xhc3MiLCJjbHItdmFsaWRhdGUtaWNvbiIsInNoYXBlIiwiY2hlY2stY2lyY2xlIiwic3RhdHVzIiwi'@; put 'c3VjY2VzcyIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsNCwibmdJZiJdLFsic2hhcGUiLCJleGNsYW1hdGlvbi1jaXJjbGUiLCJzdGF0dXMiLCJkYW5nZXIiLCJhcmlhLWhpZGRlbiIsInRydWUiLDEsImNsci12YWxpZGF0ZS1pY29uIl0sWyJzaGFwZSIsImNoZWNrLWNpcmNsZSIsInN0YXR1cyIs'@; put 'InN1Y2Nlc3MiLCJhcmlhLWhpZGRlbiIsInRydWUiLDEsImNsci12YWxpZGF0ZS1pY29uIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoc2EoRlZlKSxXcigwKSxndCgxLE5WZSwxLDAsImxhYmVsIiwwKSxkZSgyLCJkaXYiLDEpKDMsImRpdiIsMiksV3IoNCwxKSxndCg1LFZWZSwx'@; put 'LDAsImNkcy1pY29uIiwzKSg2LEJWZSwxLDAsImNkcy1pY29uIiw0KSxoZSgpLGd0KDcsalZlLDEsMCwibmctY29udGVudCIsMCkoOCx6VmUsMSwwLCJuZy1jb250ZW50IiwwKSg5LFVWZSwxLDAsIm5nLWNvbnRlbnQiLDApLGhlKCkpLDImYSYmKGZlKCksTWUoIm5nSWYiLCFkLmxhYmVsJiZk'@; put 'LmFkZEdyaWQoKSksZmUoKSxNZSgibmdDbGFzcyIsZC5jb250cm9sQ2xhc3MoKSksZmUoKSxNZSgibmdDbGFzcyIsZC53cmFwcGVyQ2xhc3MoKSksZmUoMiksTWUoIm5nSWYiLGQuc2hvd0ludmFsaWQpLGZlKCksTWUoIm5nSWYiLGQuc2hvd1ZhbGlkKSxmZSgpLE1lKCJuZ0lmIixkLnNob3dI'@; put 'ZWxwZXIpLGZlKCksTWUoIm5nSWYiLGQuc2hvd0ludmFsaWQpLGZlKCksTWUoIm5nSWYiLGQuc2hvd1ZhbGlkKSl9LGRlcGVuZGVuY2llczpbdnUsYmEsZW8sY29dLGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLEU3PSgoKT0+e2NsYXNzIGMgZXh0ZW5kcyBDN3tjb25zdHJ1Y3RvcihhLGQsaCxm'@; put 'LHYpe3N1cGVyKGEsWmIsZCxoLGYsdiksdGhpcy5pbmRleD0xfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZShUcyksJGUoRG8pLCRlKHUxLDEwKSwkZShFcyksJGUoUWkpKX0sYy5cdTAyNzVkaXI9RXIoe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwi'@; put 'Y2xyU2VsZWN0IiwiIl1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZUcigiY2xyLXNlbGVjdCIsITApfSxmZWF0dXJlczpbQ2FdfSksY30pKCksWlplPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXtFby5hZGRJY29ucyhiaCxfaCl9fXJldHVybiBjLlx1'@; put 'MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9QXIoe2ltcG9ydHM6W0xhLGtjLFRvLG51LG51XX0pLGN9KSgpLElkZT0oKCk9PntjbGFzcyBjIGV4dGVuZHMgdzd7fXJldHVybiBjLlx1MDI3NWZhYz0oKCk9'@; put 'PntsZXQgbDtyZXR1cm4gZnVuY3Rpb24oZCl7cmV0dXJuKGx8fChsPVVvKGMpKSkoZHx8Yyl9fSkoKSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItdGV4dGFyZWEtY29udGFpbmVyIl1dLGhvc3RWYXJzOjYsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZU'@; put 'cigiY2xyLWZvcm0tY29udHJvbCIsITApKCJjbHItZm9ybS1jb250cm9sLWRpc2FibGVkIixudWxsPT1kLmNvbnRyb2w/bnVsbDpkLmNvbnRyb2wuZGlzYWJsZWQpKCJjbHItcm93IixkLmFkZEdyaWQoKSl9LGZlYXR1cmVzOlt1YShba2QsaDEsTWgsRGRdKSxDYV0sbmdDb250ZW50U2VsZWN0'@; put 'b3JzOldWZSxkZWNsczoxMCx2YXJzOjcsY29uc3RzOltbNCwibmdJZiJdLFsxLCJjbHItY29udHJvbC1jb250YWluZXIiLDMsIm5nQ2xhc3MiXSxbMSwiY2xyLXRleHRhcmVhLXdyYXBwZXIiXSxbImNsYXNzIiwiY2xyLXZhbGlkYXRlLWljb24iLCJzaGFwZSIsImV4Y2xhbWF0aW9uLWNpcmNs'@; put 'ZSIsInN0YXR1cyIsImRhbmdlciIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsNCwibmdJZiJdLFsiY2xhc3MiLCJjbHItdmFsaWRhdGUtaWNvbiIsInNoYXBlIiwiY2hlY2stY2lyY2xlIiwic3RhdHVzIiwic3VjY2VzcyIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsNCwibmdJZiJdLFsic2hhcGUiLCJl'@; put 'eGNsYW1hdGlvbi1jaXJjbGUiLCJzdGF0dXMiLCJkYW5nZXIiLCJhcmlhLWhpZGRlbiIsInRydWUiLDEsImNsci12YWxpZGF0ZS1pY29uIl0sWyJzaGFwZSIsImNoZWNrLWNpcmNsZSIsInN0YXR1cyIsInN1Y2Nlc3MiLCJhcmlhLWhpZGRlbiIsInRydWUiLDEsImNsci12YWxpZGF0ZS1pY29u'@; put 'Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoc2EoWlZlKSxXcigwKSxndCgxLFlWZSwxLDAsImxhYmVsIiwwKSxkZSgyLCJkaXYiLDEpKDMsImRpdiIsMiksV3IoNCwxKSxndCg1LEdWZSwxLDAsImNkcy1pY29uIiwzKSg2LCRWZSwxLDAsImNkcy1pY29uIiw0KSxoZSgpLGd0KDcs'@; put 'S1ZlLDEsMCwibmctY29udGVudCIsMCkoOCxYVmUsMSwwLCJuZy1jb250ZW50IiwwKSg5LHFWZSwxLDAsIm5nLWNvbnRlbnQiLDApLGhlKCkpLDImYSYmKGZlKCksTWUoIm5nSWYiLCFkLmxhYmVsJiZkLmFkZEdyaWQoKSksZmUoKSxNZSgibmdDbGFzcyIsZC5jb250cm9sQ2xhc3MoKSksZmUo'@; put 'MyksTWUoIm5nSWYiLGQuc2hvd0ludmFsaWQpLGZlKCksTWUoIm5nSWYiLGQuc2hvd1ZhbGlkKSxmZSgpLE1lKCJuZ0lmIixkLnNob3dIZWxwZXIpLGZlKCksTWUoIm5nSWYiLGQuc2hvd0ludmFsaWQpLGZlKCksTWUoIm5nSWYiLGQuc2hvd1ZhbGlkKSl9LGRlcGVuZGVuY2llczpbdnUsYmEs'@; put 'ZW8sY29dLGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLHJPPSgoKT0+e2NsYXNzIGMgZXh0ZW5kcyBDN3tjb25zdHJ1Y3RvcihhLGQsaCxmLHYpe3N1cGVyKGEsSWRlLGQsaCxmLHYpLHRoaXMuaW5kZXg9MX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyko'@; put 'JGUoVHMpLCRlKERvKSwkZSh1MSwxMCksJGUoRXMpLCRlKFFpKSl9LGMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsImNsclRleHRhcmVhIiwiIl1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZUcigiY2xyLXRleHRhcmVhIiwhMCl9LGZl'@; put 'YXR1cmVzOltDYV19KSxjfSkoKSxXWmU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe0VvLmFkZEljb25zKGJoLF9oKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1Bcih7aW1w'@; put 'b3J0czpbTGEsa2MsVG8sbnUsbnVdfSksY30pKCksUmRlPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9QXIoe2ltcG9ydHM6W0xhLG51LCRVZSxRVWUsT1pl'@; put 'LEZaZSxkZGUsQlplLHpaZSxaWmUsV1plLFVaZSxlWmUsSFplXX0pLGN9KSgpLExkZT0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9QWkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPUFyKHtpbXBvcnRzOltM'@; put 'YV19KSxjfSkoKSxZWmU9KCgpPT57Y2xhc3MgYyBleHRlbmRzIElZe2NvbnN0cnVjdG9yKGEsZCxoLGYsdixNLEksRyxyZSl7c3VwZXIoYSxkLGgsZix2LE0sSSxHLHJlKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoJGUoUWkpLCRlKERZLDgpLCRl'@; put 'KG1vLDgpLCRlKEdhKSwkZShUcyksJGUoa1ksOCksJGUoZG0pLCRlKFZMKSwkZSh4bykpfSxjLlx1MDI3NWRpcj1Fcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJjZGtEcmFnIiwiIl1dLGZlYXR1cmVzOltDYV19KSxjfSkoKSxHWmU9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFj'@; put 'PWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1Bcih7fSksY30pKCksJFplPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD1BaSh7'@; put 'dHlwZTpjfSksYy5cdTAyNzVpbmo9QXIoe2ltcG9ydHM6W0xhXX0pLGN9KSgpO2NsYXNzIGlPe31sZXQgSng9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMubmJDaGFuZ2VzPTAsdGhpcy5fY2hhbmdlPW5ldyBHbn1nZXQgY2hhbmdlKCl7cmV0dXJuIHRoaXMuX2NoYW5nZS5hc09i'@; put 'c2VydmFibGUoKX1jaGFuZ2VTdGFydCgpe3RoaXMubmJDaGFuZ2VzKyt9Y2hhbmdlRG9uZSgpezA9PS0tdGhpcy5uYkNoYW5nZXMmJnRoaXMuX2NoYW5nZS5uZXh0KCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9cm4oe3Rv'@; put 'a2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpLHdtPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5zdGF0ZURlYm91bmNlcj1hLHRoaXMuYWN0aXZhdGVkPSExLHRoaXMuX3NpemU9MCx0aGlzLl9jdXJyZW50PTEsdGhpcy5fY2hhbmdlPW5ldyBHbix0aGlzLnByZXZl'@; put 'bnRFbWl0PSExLHRoaXMuX3NpemVDaGFuZ2U9bmV3IEdufWdldCBzaXplKCl7cmV0dXJuIHRoaXMuX3NpemV9c2V0IHNpemUoYSl7Y29uc3QgZD10aGlzLl9zaXplO2EhPT1kJiYodGhpcy5wcmV2ZW50RW1pdHx8dGhpcy5zdGF0ZURlYm91bmNlci5jaGFuZ2VTdGFydCgpLHRoaXMuX3NpemU9'@; put 'YSx0aGlzLl9jdXJyZW50PTA9PT1hPzE6TWF0aC5mbG9vcihkL2EqKHRoaXMuX2N1cnJlbnQtMSkpKzEsdGhpcy5wcmV2ZW50RW1pdHx8KHRoaXMuX2NoYW5nZS5uZXh0KHRoaXMuX2N1cnJlbnQpLHRoaXMuX3NpemVDaGFuZ2UubmV4dCh0aGlzLl9zaXplKSx0aGlzLnN0YXRlRGVib3VuY2Vy'@; put 'LmNoYW5nZURvbmUoKSkpLHRoaXMucHJldmVudEVtaXQ9ITF9Z2V0IHRvdGFsSXRlbXMoKXtyZXR1cm4gdGhpcy5fdG90YWxJdGVtc3x8MH1zZXQgdG90YWxJdGVtcyhhKXt0aGlzLl90b3RhbEl0ZW1zPWEsdGhpcy5jdXJyZW50PnRoaXMubGFzdCYmKHRoaXMuY3VycmVudD10aGlzLmxhc3Qp'@; put 'fWdldCBsYXN0KCl7cmV0dXJuIHRoaXMuX2xhc3Q/dGhpcy5fbGFzdDp0aGlzLnNpemU+MCYmdGhpcy50b3RhbEl0ZW1zP01hdGguY2VpbCh0aGlzLnRvdGFsSXRlbXMvdGhpcy5zaXplKToxfXNldCBsYXN0KGEpe3RoaXMuX2xhc3Q9YX1nZXQgY2hhbmdlKCl7cmV0dXJuIHRoaXMuX2NoYW5n'@; put 'ZS5hc09ic2VydmFibGUoKX1nZXQgc2l6ZUNoYW5nZSgpe3JldHVybiB0aGlzLl9zaXplQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpfWdldCBjdXJyZW50KCl7cmV0dXJuIHRoaXMuX2N1cnJlbnR9c2V0IGN1cnJlbnQoYSl7YSE9PXRoaXMuX2N1cnJlbnQmJih0aGlzLnN0YXRlRGVib3VuY2VyLmNo'@; put 'YW5nZVN0YXJ0KCksdGhpcy5fY3VycmVudD1hLHRoaXMuX2NoYW5nZS5uZXh0KGEpLHRoaXMuc3RhdGVEZWJvdW5jZXIuY2hhbmdlRG9uZSgpKX1nZXQgZmlyc3RJdGVtKCl7cmV0dXJuIDA9PT10aGlzLl90b3RhbEl0ZW1zPy0xOjA9PT10aGlzLnNpemU/MDoodGhpcy5jdXJyZW50LTEpKnRo'@; put 'aXMuc2l6ZX1nZXQgbGFzdEl0ZW0oKXtpZigwPT09dGhpcy5fdG90YWxJdGVtcylyZXR1cm4tMTtpZigwPT09dGhpcy5zaXplKXJldHVybiB0aGlzLnRvdGFsSXRlbXMtMTtsZXQgYT10aGlzLmN1cnJlbnQqdGhpcy5zaXplLTE7cmV0dXJuIHRoaXMudG90YWxJdGVtcyYmKGE9TWF0aC5taW4o'@; put 'YSx0aGlzLnRvdGFsSXRlbXMtMSkpLGF9cHJldmlvdXMoKXt0aGlzLmN1cnJlbnQ+MSYmdGhpcy5jdXJyZW50LS19bmV4dCgpe3RoaXMuY3VycmVudDx0aGlzLmxhc3QmJnRoaXMuY3VycmVudCsrfXJlc2V0UGFnZVNpemUoYT0hMSl7dGhpcy5wcmV2ZW50RW1pdD1hLHRoaXMuc2l6ZT0wfX1y'@; put 'ZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKShDcihKeCkpfSxjLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpLGNnPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkKXt0aGlzLl9wYWdlPWEsdGhpcy5zdGF0'@; put 'ZURlYm91bmNlcj1kLHRoaXMuX2NoYW5nZT1uZXcgR24sdGhpcy5fYWxsPVtdfWdldCBjaGFuZ2UoKXtyZXR1cm4gdGhpcy5fY2hhbmdlLmFzT2JzZXJ2YWJsZSgpfWhhc0FjdGl2ZUZpbHRlcnMoKXtmb3IoY29uc3R7ZmlsdGVyOmF9b2YgdGhpcy5fYWxsKWlmKGEmJmEuaXNBY3RpdmUoKSly'@; put 'ZXR1cm4hMDtyZXR1cm4hMX1nZXRBY3RpdmVGaWx0ZXJzKCl7Y29uc3QgYT1bXTtmb3IoY29uc3R7ZmlsdGVyOmR9b2YgdGhpcy5fYWxsKWQmJmQuaXNBY3RpdmUoKSYmYS5wdXNoKGQpO3JldHVybiBhfWFkZChhKXtjb25zdCBkPWEuY2hhbmdlcy5zdWJzY3JpYmUoKCk9PnRoaXMucmVzZXRQ'@; put 'YWdlQW5kRW1pdEZpbHRlckNoYW5nZShbYV0pKTtsZXQgaD0hMTtjb25zdCBmPW5ldyBhTyhhLCgpPT57aWYoaClyZXR1cm47ZC51bnN1YnNjcmliZSgpO2NvbnN0IHY9dGhpcy5fYWxsLmZpbmRJbmRleChNPT5NLmZpbHRlcj09PWEpO3Y+PTAmJnRoaXMuX2FsbC5zcGxpY2UodiwxKSxhLmlz'@; put 'QWN0aXZlKCkmJnRoaXMucmVzZXRQYWdlQW5kRW1pdEZpbHRlckNoYW5nZShbXSksaD0hMH0pO3JldHVybiB0aGlzLl9hbGwucHVzaChmKSxhLmlzQWN0aXZlKCkmJnRoaXMucmVzZXRQYWdlQW5kRW1pdEZpbHRlckNoYW5nZShbYV0pLGZ9YWNjZXB0cyhhKXtmb3IoY29uc3R7ZmlsdGVyOmR9'@; put 'b2YgdGhpcy5fYWxsKWlmKGQmJmQuaXNBY3RpdmUoKSYmIWQuYWNjZXB0cyhhKSlyZXR1cm4hMTtyZXR1cm4hMH1yZXNldFBhZ2VBbmRFbWl0RmlsdGVyQ2hhbmdlKGEpe3RoaXMuc3RhdGVEZWJvdW5jZXIuY2hhbmdlU3RhcnQoKSx0aGlzLl9wYWdlLmN1cnJlbnQ9MSx0aGlzLl9jaGFuZ2Uu'@; put 'bmV4dChhKSx0aGlzLnN0YXRlRGVib3VuY2VyLmNoYW5nZURvbmUoKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoQ3Iod20pLENyKEp4KSl9LGMuXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCk7Y2xhc3Mg'@; put 'YU97Y29uc3RydWN0b3IobCxhKXt0aGlzLmZpbHRlcj1sLHRoaXMudW5yZWdpc3Rlcj1hfX1sZXQgc089KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLmZpbHRlcnM9YX1nZXQgZmlsdGVyKCl7cmV0dXJuIHRoaXMucmVnaXN0ZXJlZCYmdGhpcy5yZWdpc3RlcmVkLmZpbHRlcn1u'@; put 'Z09uRGVzdHJveSgpe3RoaXMuZGVsZXRlRmlsdGVyKCl9c2V0RmlsdGVyKGEpe3RoaXMuZGVsZXRlRmlsdGVyKCksYSBpbnN0YW5jZW9mIGFPP3RoaXMucmVnaXN0ZXJlZD1hOmEmJih0aGlzLnJlZ2lzdGVyZWQ9dGhpcy5maWx0ZXJzLmFkZChhKSl9ZGVsZXRlRmlsdGVyKCl7dGhpcy5yZWdp'@; put 'c3RlcmVkJiYodGhpcy5yZWdpc3RlcmVkLnVucmVnaXN0ZXIoKSxkZWxldGUgdGhpcy5yZWdpc3RlcmVkKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoJGUoY2cpKX0sYy5cdTAyNzVkaXI9RXIoe3R5cGU6Y30pLGN9KSgpO2NsYXNzIE9kZXtjb25z'@; put 'dHJ1Y3RvcihsKXt0aGlzLnV0aWxzPWx9a2V5VXAobCl7Y29uc3QgYT10aGlzLnV0aWxzLmNyZWF0ZU5leHRDZWxsQ29vcmRzKGwpO2lmKDA9PT1sLnkpcmV0dXJuIGE7YS55PWwueS0xO2NvbnN0IGQ9dGhpcy51dGlscy5pc0FjdGlvbkNlbGwobCk7cmV0dXJuIHRoaXMudXRpbHMuaXNTaW5n'@; put 'bGVDZWxsRXhwYW5kZWRSb3coYS55KSYmIWQmJnRoaXMudXRpbHMuaXNEZXRhaWxzUm93KGEueSk/YS54PTA6dGhpcy51dGlscy5pc0RldGFpbHNSb3coYS55KSYmKGQ/YS55PWEueS0xOmEueD1hLngtdGhpcy51dGlscy5hY3Rpb25DZWxsQ291bnQobC55KSksYX1rZXlEb3duKGwpe2NvbnN0'@; put 'IGE9dGhpcy51dGlscy5jcmVhdGVOZXh0Q2VsbENvb3JkcyhsKTtpZihsLnk+PSh0aGlzLnV0aWxzLnJvd3M/dGhpcy51dGlscy5yb3dzLmxlbmd0aC0xOjApKXJldHVybiBhO2NvbnN0IGg9dGhpcy51dGlscy5pc0FjdGlvbkNlbGwobCk7cmV0dXJuIGEueT1sLnkrMSwhaCYmdGhpcy51dGls'@; put 'cy5pc1Jvd1JlcGxhY2VkKGEueSkmJihhLnk9YS55KzEsYS54PXRoaXMudXRpbHMuaXNTaW5nbGVDZWxsRXhwYW5kZWRSb3coYS55KT8wOmEueC10aGlzLnV0aWxzLmFjdGlvbkNlbGxDb3VudChsLnkpKSxhfWtleUxlZnQobCl7Y29uc3QgYT10aGlzLnV0aWxzLmNyZWF0ZU5leHRDZWxsQ29v'@; put 'cmRzKGwpO3JldHVybiAwPT09bC54fHwoYS54PWwueC0xKSxhfWtleVJpZ2h0KGwpe2NvbnN0IGE9dGhpcy51dGlscy5jcmVhdGVOZXh0Q2VsbENvb3JkcyhsKSxkPXRoaXMudXRpbHMucm93cz8ubGVuZ3RoLTE/dGhpcy51dGlscy5nZXRDZWxsc0ZvclJvdygwKS5sZW5ndGgtMTowO3JldHVy'@; put 'biBhLng9bC54PGQ/YS54KzE6YS54LGF9a2V5RW5kKGwsYSl7Y29uc3QgZD10aGlzLnV0aWxzLmNyZWF0ZU5leHRDZWxsQ29vcmRzKGwpLGg9dGhpcy51dGlscy5yb3dzP3RoaXMudXRpbHMucm93cy5sZW5ndGgtMTowO3JldHVybiBkLng9aD90aGlzLnV0aWxzLmdldENlbGxzRm9yUm93KDAp'@; put 'Lmxlbmd0aC0xOjAsYSYmKGQueT1oLHRoaXMudXRpbHMuaXNEZXRhaWxzUm93KGQueSkmJihkLng9dGhpcy51dGlscy5nZXRDZWxsc0ZvclJvdyhkLnkpLmxlbmd0aC0xKSksZH1rZXlIb21lKGwsYSl7Y29uc3QgZD10aGlzLnV0aWxzLmNyZWF0ZU5leHRDZWxsQ29vcmRzKGwpO3JldHVybiBk'@; put 'Lng9MCxhJiYoZC55PTApLGR9a2V5UGFnZVVwKGwpe2NvbnN0IGE9dGhpcy51dGlscy5jcmVhdGVOZXh0Q2VsbENvb3JkcyhsKSxkPXRoaXMudXRpbHMuaXRlbXNQZXJQYWdlO3JldHVybiBhLnk9bC55LWQ+MD9sLnktZCsxOjEsdGhpcy51dGlscy5pc0FjdGlvbkNlbGwobCk/dGhpcy51dGls'@; put 'cy5pc0RldGFpbHNSb3coYS55KSYmKGEueT1hLnktMSk6dGhpcy51dGlscy5pc0RldGFpbHNSb3coYS55KT9hLng9dGhpcy51dGlscy5pc1NpbmdsZUNlbGxFeHBhbmRlZFJvdyhhLnkpPzA6YS54LXRoaXMudXRpbHMuYWN0aW9uQ2VsbENvdW50KGwueSk6dGhpcy51dGlscy5pc1Jvd1JlcGxh'@; put 'Y2VkKGEueSkmJihhLnk9YS55KzEsYS54PXRoaXMudXRpbHMuaXNTaW5nbGVDZWxsRXhwYW5kZWRSb3coYS55KT8wOmEueC10aGlzLnV0aWxzLmFjdGlvbkNlbGxDb3VudChsLnkpKSxhfWtleVBhZ2VEb3duKGwpe2NvbnN0IGE9dGhpcy51dGlscy5jcmVhdGVOZXh0Q2VsbENvb3JkcyhsKSxk'@; put 'PXRoaXMudXRpbHMucm93cz90aGlzLnV0aWxzLnJvd3MubGVuZ3RoLTE6MCxoPXRoaXMudXRpbHMuaXRlbXNQZXJQYWdlO3JldHVybiBhLnk9bC55K2g+PWQ/ZDpsLnkraCx0aGlzLnV0aWxzLmlzQWN0aW9uQ2VsbChsKSYmdGhpcy51dGlscy5pc0RldGFpbHNSb3coYS55KT9hLnk9YS55LTE6'@; put 'dGhpcy51dGlscy5pc0RldGFpbHNSb3coYS55KSYmdGhpcy51dGlscy5pc1NpbmdsZUNlbGxFeHBhbmRlZFJvdyhhLnkpP2EueD0wOnRoaXMudXRpbHMuaXNEZXRhaWxzUm93KGEueSk/YS54PWEueC10aGlzLnV0aWxzLmFjdGlvbkNlbGxDb3VudChsLnkpOnRoaXMudXRpbHMuaXNSb3dSZXBs'@; put 'YWNlZChhLnkpJiYoYS55PWEueSsxLGEueD10aGlzLnV0aWxzLmlzU2luZ2xlQ2VsbEV4cGFuZGVkUm93KGEueSk/MDphLngtdGhpcy51dGlscy5hY3Rpb25DZWxsQ291bnQobC55KSksYX19Y2xhc3MgUGRlIGV4dGVuZHMgT2Rle2NvbnN0cnVjdG9yKGwpe3N1cGVyKGwpfWtleVVwKGwpe2Nv'@; put 'bnN0IGE9dGhpcy51dGlscy5jcmVhdGVOZXh0Q2VsbENvb3JkcyhsKTtpZigwPT09bC55KXJldHVybiBhO2lmKGEueT1sLnktMSx0aGlzLnV0aWxzLmlzQWN0aW9uQ2VsbChsKSl0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhhLnkpJiZhLnk+MCYmKGEueT1hLnktMSk7ZWxzZSBzd2l0Y2godGhp'@; put 'cy51dGlscy5pc1Jvd1JlcGxhY2VkKGwueSkmJihhLnk9YS55LTEpLCEwKXtjYXNlIHRoaXMudXRpbHMuaXNEZXRhaWxzUm93KGEueSk6YS54PTA7YnJlYWs7Y2FzZSExPT09dGhpcy51dGlscy5pc0RldGFpbHNSb3cobC55KTphLng9bC54O2JyZWFrO2RlZmF1bHQ6YS54PXRoaXMudXRpbHMu'@; put 'YWN0aW9uQ2VsbENvdW50KGEueSl9cmV0dXJuIGF9a2V5RG93bihsKXtjb25zdCBhPXRoaXMudXRpbHMuY3JlYXRlTmV4dENlbGxDb29yZHMobCksZD10aGlzLnV0aWxzLnJvd3M/dGhpcy51dGlscy5yb3dzLmxlbmd0aC0xOjA7cmV0dXJuIGwueT49ZHx8KGEueT1sLnkrMSx0aGlzLnV0aWxz'@; put 'LmlzQWN0aW9uQ2VsbChsKT9hLnk9YS55PGQ/YS55KzE6YS55Oih0aGlzLnV0aWxzLmlzUm93UmVwbGFjZWQoYS55KSYmKGEueT1hLnkrMSksYS54PXRoaXMudXRpbHMuaXNEZXRhaWxzUm93KGEueSk/MDp0aGlzLnV0aWxzLmFjdGlvbkNlbGxDb3VudChhLnkpKSksYX1rZXlMZWZ0KGwpe2Nv'@; put 'bnN0IGE9dGhpcy51dGlscy5jcmVhdGVOZXh0Q2VsbENvb3JkcyhsKTtyZXR1cm4gdGhpcy51dGlscy5pc0RldGFpbHNSb3cobC55KXx8dGhpcy51dGlscy5pc1Jvd1JlcGxhY2VkKGwueSk/KDAhPT1sLng/YS54PWwueC0xOnRoaXMudXRpbHMuaXNBY3Rpb25DZWxsKGwpfHwoYS55PWwueS0x'@; put 'LGEueD10aGlzLnV0aWxzLmFjdGlvbkNlbGxDb3VudChhLnkpLTEpLGEpOnN1cGVyLmtleUxlZnQobCl9a2V5UmlnaHQobCl7Y29uc3QgYT10aGlzLnV0aWxzLmNyZWF0ZU5leHRDZWxsQ29vcmRzKGwpO2lmKCF0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhsLnkpJiYhdGhpcy51dGlscy5pc1Jv'@; put 'd1JlcGxhY2VkKGwueSkpcmV0dXJuIHN1cGVyLmtleVJpZ2h0KGwpO2NvbnN0IGQ9dGhpcy51dGlscy5yb3dzPy5sZW5ndGgtMT90aGlzLnV0aWxzLmdldENlbGxzRm9yUm93KDApLmxlbmd0aC0xOjA7cmV0dXJuIGwueD49ZHx8KHRoaXMudXRpbHMuaXNBY3Rpb25DZWxsKGwpJiZsLng9PT10'@; put 'aGlzLnV0aWxzLmFjdGlvbkNlbGxDb3VudChsLngpLTEmJnRoaXMudXRpbHMuaXNSb3dSZXBsYWNlZChsLnkpJiYhdGhpcy51dGlscy5pc0RldGFpbHNSb3cobC55KT8oYS55PWwueSsxLGEueD0wKTphLng9bC54KzEpLGF9a2V5RW5kKGwsYSl7Y29uc3QgZD10aGlzLnV0aWxzLmNyZWF0ZU5l'@; put 'eHRDZWxsQ29vcmRzKGwpO3JldHVybiF0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhsLnkpJiYhdGhpcy51dGlscy5pc1Jvd1JlcGxhY2VkKGwueSl8fGE/c3VwZXIua2V5RW5kKGwsYSk6KGQueD10aGlzLnV0aWxzLmdldENlbGxzRm9yUm93KGwueSkubGVuZ3RoLTEsZCl9a2V5SG9tZShsLGEp'@; put 'e2NvbnN0IGQ9dGhpcy51dGlscy5jcmVhdGVOZXh0Q2VsbENvb3JkcyhsKTtyZXR1cm4gdGhpcy51dGlscy5pc0RldGFpbHNSb3cobC55KXx8dGhpcy51dGlscy5pc1Jvd1JlcGxhY2VkKGwueSk/KGQueD0wLGQueT1sLnktMSxhJiYoZC55PTApLGQpOnN1cGVyLmtleUhvbWUobCxhKX1rZXlQ'@; put 'YWdlVXAobCl7Y29uc3QgYT10aGlzLnV0aWxzLmNyZWF0ZU5leHRDZWxsQ29vcmRzKGwpLGQ9dGhpcy51dGlscy5pdGVtc1BlclBhZ2U7cmV0dXJuIGEueT1sLnktZD4wP2wueS1kKzE6MSx0aGlzLnV0aWxzLmlzQWN0aW9uQ2VsbChsKT90aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhhLnkpJiYo'@; put 'YS55PWEueS0xKTp0aGlzLnV0aWxzLmlzUm93UmVwbGFjZWQoYS55KT90aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhhLnkpfHwoYS55PWEueSsxLGEueD0wKTp0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhsLnkpP3RoaXMudXRpbHMuaXNEZXRhaWxzUm93KGwueSkmJih0aGlzLnV0aWxzLmlzRGV0'@; put 'YWlsc1JvdyhhLnkpfHwoYS54PXRoaXMudXRpbHMuYWN0aW9uQ2VsbENvdW50KGEueSkpKTp0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhhLnkpJiYoYS54PTApLGF9a2V5UGFnZURvd24obCl7Y29uc3QgYT10aGlzLnV0aWxzLmNyZWF0ZU5leHRDZWxsQ29vcmRzKGwpLGQ9dGhpcy51dGlscy5y'@; put 'b3dzP3RoaXMudXRpbHMucm93cy5sZW5ndGgtMTowLGg9dGhpcy51dGlscy5pdGVtc1BlclBhZ2U7cmV0dXJuIGEueT1sLnkraD49ZD9kOmwueStoLHRoaXMudXRpbHMuaXNBY3Rpb25DZWxsKGwpP3RoaXMudXRpbHMuaXNEZXRhaWxzUm93KGEueSkmJihhLnk9YS55LTEpOnRoaXMudXRpbHMu'@; put 'aXNSb3dSZXBsYWNlZChhLnkpP2EueTxkJiYhdGhpcy51dGlscy5pc0RldGFpbHNSb3coYS55KSYmKGEueT1hLnkrMSk6dGhpcy51dGlscy5pc0RldGFpbHNSb3cobC55KSYmIXRoaXMudXRpbHMuaXNEZXRhaWxzUm93KGEueSk/YS54PWwueCt0aGlzLnV0aWxzLmFjdGlvbkNlbGxDb3VudChh'@; put 'LnkpOnRoaXMudXRpbHMuaXNEZXRhaWxzUm93KGEueSkmJihhLng9MCksYX19Y2xhc3MgS1plIGV4dGVuZHMgUGRle2NvbnN0cnVjdG9yKGwpe3N1cGVyKGwpfWtleVVwKGwpe2NvbnN0IGE9dGhpcy51dGlscy5jcmVhdGVOZXh0Q2VsbENvb3JkcyhsKTtpZigwPT09bC55KXJldHVybiBhO2lm'@; put 'KGEueT1sLnktMSx0aGlzLnV0aWxzLmlzU2luZ2xlQ2VsbEV4cGFuZGVkUm93KGEueSkpcmV0dXJuIHN1cGVyLmtleVVwKGwpO2NvbnN0IGQ9dGhpcy51dGlscy5pc0FjdGlvbkNlbGwobCk7cmV0dXJuIGQmJnRoaXMudXRpbHMuaXNEZXRhaWxzUm93KGEueSk/YS55PWEueS0xOnRoaXMudXRp'@; put 'bHMuaXNSb3dSZXBsYWNlZChhLnkpPyhhLnk9YS55LTEsdGhpcy51dGlscy5pc0RldGFpbHNSb3coYS55KXx8KGEueD1sLngrdGhpcy51dGlscy5hY3Rpb25DZWxsQ291bnQoYS55KSkpOnRoaXMudXRpbHMuaXNEZXRhaWxzUm93KGwueSkmJiF0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhhLnkp'@; put 'P2EueD1sLngrdGhpcy51dGlscy5hY3Rpb25DZWxsQ291bnQoYS55KTohZCYmdGhpcy51dGlscy5pc0RldGFpbHNSb3coYS55KSYmKGEueD1sLngtdGhpcy51dGlscy5hY3Rpb25DZWxsQ291bnQobC55KSksYX1rZXlEb3duKGwpe2NvbnN0IGE9dGhpcy51dGlscy5jcmVhdGVOZXh0Q2VsbENv'@; put 'b3JkcyhsKSxkPXRoaXMudXRpbHMucm93cz90aGlzLnV0aWxzLnJvd3MubGVuZ3RoLTE6MCxoPWQ/dGhpcy51dGlscy5nZXRDZWxsc0ZvclJvdygwKS5sZW5ndGgtMTowO3JldHVybiBsLnk+PWQ/YTooYS55PWwueSsxLHRoaXMudXRpbHMuaXNTaW5nbGVDZWxsRXhwYW5kZWRSb3coYS55KT9z'@; put 'dXBlci5rZXlEb3duKGwpOih0aGlzLnV0aWxzLmlzQWN0aW9uQ2VsbChsKXx8dGhpcy51dGlscy5pc1Jvd1JlcGxhY2VkKGEueSk/YS55PWEueTxkP2EueSsxOmEueS0xOmEueD10aGlzLnV0aWxzLmdldENlbGxzRm9yUm93KGwueSkubGVuZ3RoPmg/bC54LXRoaXMudXRpbHMuYWN0aW9uQ2Vs'@; put 'bENvdW50KGwueSk6bC54K3RoaXMudXRpbHMuYWN0aW9uQ2VsbENvdW50KGEueSksYSkpfWtleUxlZnQobCl7cmV0dXJuIHN1cGVyLmtleUxlZnQobCl9a2V5UmlnaHQobCl7cmV0dXJuIHN1cGVyLmtleVJpZ2h0KGwpfWtleUVuZChsLGEpe3JldHVybiBzdXBlci5rZXlFbmQobCxhKX1rZXlI'@; put 'b21lKGwsYSl7cmV0dXJuIHN1cGVyLmtleUhvbWUobCxhKX1rZXlQYWdlVXAobCl7Y29uc3QgYT10aGlzLnV0aWxzLmNyZWF0ZU5leHRDZWxsQ29vcmRzKGwpLGQ9dGhpcy51dGlscy5pdGVtc1BlclBhZ2U7cmV0dXJuIGEueT1sLnktZD4wP2wueS1kKzE6MSx0aGlzLnV0aWxzLmlzU2luZ2xl'@; put 'Q2VsbEV4cGFuZGVkUm93KGEueSk/c3VwZXIua2V5UGFnZVVwKGwpOih0aGlzLnV0aWxzLmlzQWN0aW9uQ2VsbChsKT90aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhhLnkpJiYoYS55PWEueS0xKTp0aGlzLnV0aWxzLmlzUm93UmVwbGFjZWQoYS55KT90aGlzLnV0aWxzLmlzRGV0YWlsc1Jvdyhh'@; put 'LnkpfHwoYS55PWEueSsxLGEueD1sLngrdGhpcy51dGlscy5hY3Rpb25DZWxsQ291bnQoYS55KSk6dGhpcy51dGlscy5pc0RldGFpbHNSb3cobC55KSYmIXRoaXMudXRpbHMuaXNEZXRhaWxzUm93KGEueSk/YS54PWwueCt0aGlzLnV0aWxzLmFjdGlvbkNlbGxDb3VudChhLnkpOnRoaXMudXRp'@; put 'bHMuaXNEZXRhaWxzUm93KGEueSkmJihhLng9bC54LXRoaXMudXRpbHMuYWN0aW9uQ2VsbENvdW50KGwueSkpLGEpfWtleVBhZ2VEb3duKGwpe2NvbnN0IGE9dGhpcy51dGlscy5jcmVhdGVOZXh0Q2VsbENvb3JkcyhsKSxkPXRoaXMudXRpbHMucm93cz90aGlzLnV0aWxzLnJvd3MubGVuZ3Ro'@; put 'LTE6MCxoPXRoaXMudXRpbHMuaXRlbXNQZXJQYWdlO3JldHVybiBhLnk9bC55K2g+PWQ/ZDpsLnkraCx0aGlzLnV0aWxzLmlzU2luZ2xlQ2VsbEV4cGFuZGVkUm93KGEueSk/c3VwZXIua2V5UGFnZURvd24obCk6KHRoaXMudXRpbHMuaXNBY3Rpb25DZWxsKGwpP3RoaXMudXRpbHMuaXNEZXRh'@; put 'aWxzUm93KGEueSkmJihhLnk9YS55LTEpOnRoaXMudXRpbHMuaXNSb3dSZXBsYWNlZChhLnkpJiYhdGhpcy51dGlscy5pc0RldGFpbHNSb3coYS55KT9hLnk8ZCYmKGEueT1hLnkrMSxhLng9bC54K3RoaXMudXRpbHMuYWN0aW9uQ2VsbENvdW50KGEueSkpOnRoaXMudXRpbHMuaXNEZXRhaWxz'@; put 'Um93KGwueSkmJiF0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhhLnkpP2EueD1sLngrdGhpcy51dGlscy5hY3Rpb25DZWxsQ291bnQoYS55KTp0aGlzLnV0aWxzLmlzRGV0YWlsc1JvdyhhLnkpJiYoYS54PWwueC10aGlzLnV0aWxzLmFjdGlvbkNlbGxDb3VudChsLnkpKSxhKX19Y2xhc3MgWFpl'@; put 'e2NvbnN0cnVjdG9yKGwsYSl7dGhpcy5ob3N0PWwsdGhpcy5jb25maWc9YX1nZXQgZ3JpZCgpe3JldHVybiB0aGlzLmhvc3Q/LnF1ZXJ5U2VsZWN0b3IodGhpcy5jb25maWcua2V5R3JpZCl9Z2V0IHJvd3MoKXtyZXR1cm4gdGhpcy5ob3N0Py5xdWVyeVNlbGVjdG9yQWxsKHRoaXMuY29uZmln'@; put 'LmtleUdyaWRSb3dzKX1nZXQgY2VsbHMoKXtyZXR1cm4gdGhpcy5ob3N0Py5xdWVyeVNlbGVjdG9yQWxsKHRoaXMuY29uZmlnLmtleUdyaWRDZWxscyl9Z2V0IGN1cnJlbnRDZWxsQ29vcmRpbmF0ZXMoKXtjb25zdCBsPXRoaXMuY2VsbHM/QXJyYXkuZnJvbSh0aGlzLmNlbGxzKS5maW5kKGg9'@; put 'PiIwIj09PWguZ2V0QXR0cmlidXRlKCJ0YWJpbmRleCIpKTpudWxsLGE9bD9sLmNsb3Nlc3QodGhpcy5jb25maWcua2V5R3JpZFJvd3MpOm51bGw7cmV0dXJue3g6YSYmbD9BcnJheS5mcm9tKGEucXVlcnlTZWxlY3RvckFsbCh0aGlzLmNvbmZpZy5rZXlHcmlkQ2VsbHMpKS5pbmRleE9mKGwp'@; put 'OjAseTphJiZsJiZ0aGlzLnJvd3M/QXJyYXkuZnJvbSh0aGlzLnJvd3MpLmluZGV4T2YoYSk6MH19Z2V0IGl0ZW1zUGVyUGFnZSgpe3JldHVybiBNYXRoLmZsb29yKHRoaXMuaG9zdD8ucXVlcnlTZWxlY3RvcigiLmRhdGFncmlkIikuY2xpZW50SGVpZ2h0L3RoaXMucm93c1swXS5jbGllbnRI'@; put 'ZWlnaHQpLTF8fDB9Z2V0TmV4dEl0ZW1Db29yZGluYXRlKGwpe2NvbnN0IGE9dGhpcy5jdXJyZW50Q2VsbENvb3JkaW5hdGVzLGQ9dGhpcy5nZXROYXZTdHJhdGVneShhKTtzd2l0Y2gobC5rZXkpe2Nhc2UgcGEuQXJyb3dVcDpyZXR1cm4gZC5rZXlVcChhKTtjYXNlIHBhLkFycm93RG93bjpy'@; put 'ZXR1cm4gZC5rZXlEb3duKGEpO2Nhc2UicnRsIj09PXRoaXMuaG9zdC5kaXI/cGEuQXJyb3dSaWdodDpwYS5BcnJvd0xlZnQ6cmV0dXJuIGQua2V5TGVmdChhKTtjYXNlInJ0bCI9PT10aGlzLmhvc3QuZGlyP3BhLkFycm93TGVmdDpwYS5BcnJvd1JpZ2h0OnJldHVybiBkLmtleVJpZ2h0KGEp'@; put 'O2Nhc2UgcGEuSG9tZTpyZXR1cm4gZC5rZXlIb21lKGEsbC5jdHJsS2V5KTtjYXNlIHBhLkVuZDpyZXR1cm4gZC5rZXlFbmQoYSxsLmN0cmxLZXkpO2Nhc2UgcGEuUGFnZVVwOnJldHVybiBkLmtleVBhZ2VVcChhKTtjYXNlIHBhLlBhZ2VEb3duOnJldHVybiBkLmtleVBhZ2VEb3duKGEpO2Rl'@; put 'ZmF1bHQ6cmV0dXJuIGF9fWdldENlbGxzRm9yUm93KGwpe3JldHVybiB0aGlzLnJvd3NbbF0ucXVlcnlTZWxlY3RvckFsbCh0aGlzLmNvbmZpZy5rZXlHcmlkQ2VsbHMpfWlzRXhwYW5kZWRSb3cobCl7Y29uc3QgYT10aGlzLnJvd3NbbF0ucXVlcnlTZWxlY3RvcigiLmRhdGFncmlkLXJvdy1k'@; put 'ZXRhaWwiKTtyZXR1cm4hIWEmJiJub25lIiE9PWEuc3R5bGUuZGlzcGxheX1pc0RldGFpbHNSb3cobCl7cmV0dXJuIHRoaXMucm93c1tsXS5jbGFzc0xpc3QuY29udGFpbnMoImRhdGFncmlkLXJvdy1kZXRhaWwiKX1pc1Jvd1JlcGxhY2VkKGwpe3JldHVybiEhdGhpcy5yb3dzW2xdLmNsb3Nl'@; put 'c3QoImNsci1kZy1yb3cuZGF0YWdyaWQtcm93LXJlcGxhY2VkIil9aXNTaW5nbGVDZWxsRXhwYW5kZWRSb3cobCl7cmV0dXJuIDE9PT10aGlzLnJvd3NbbF0/LnF1ZXJ5U2VsZWN0b3JBbGwodGhpcy5jb25maWcua2V5R3JpZENlbGxzKS5sZW5ndGh9YWN0aW9uQ2VsbENvdW50KGwpe3JldHVy'@; put 'biB0aGlzLmFjdGlvbkNlbGxzQXNBcnJheShsKS5sZW5ndGh9YWN0aW9uQ2VsbHNBc0FycmF5KGwpe3JldHVybiBBcnJheS5mcm9tKHRoaXMucm93c1tsXS5xdWVyeVNlbGVjdG9yQWxsKCIuZGF0YWdyaWQtcm93LXN0aWNreSAuZGF0YWdyaWQtY2VsbCwgLmRhdGFncmlkLXJvdy1zdGlja3kg'@; put 'LmRhdGFncmlkLWNvbHVtbiIpKX1pc0FjdGlvbkNlbGwobCl7cmV0dXJuISF0aGlzLmFjdGlvbkNlbGxzQXNBcnJheShsLnkpW2wueF19Y3JlYXRlTmV4dENlbGxDb29yZHMobCl7cmV0dXJue3g6bC54LHk6bC55fX1nZXROYXZTdHJhdGVneShsKXtzd2l0Y2goITApe2Nhc2UgdGhpcy5pc1Np'@; put 'bmdsZUNlbGxFeHBhbmRlZFJvdyhsLnkpOnJldHVybiBuZXcgUGRlKHRoaXMpO2Nhc2UgdGhpcy5pc0RldGFpbHNSb3cobC55KTpjYXNlIHRoaXMuaXNFeHBhbmRlZFJvdyhsLnkpOnJldHVybiBuZXcgS1plKHRoaXMpO2RlZmF1bHQ6cmV0dXJuIG5ldyBPZGUodGhpcyl9fX1jb25zdCBGZGU9'@; put 'WyJhW2hyZWZdIiwiYXJlYVtocmVmXSIsImlucHV0Om5vdChbZGlzYWJsZWRdKSIsImJ1dHRvbjpub3QoW2Rpc2FibGVkXSkiLCJzZWxlY3Q6bm90KFtkaXNhYmxlZF0pIiwidGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pIiwiaWZyYW1lIiwib2JqZWN0IiwiZW1iZWQiLCJbY29udGVudGVkaXRh'@; put 'YmxlPXRydWVdIiwiW3JvbGU9YnV0dG9uXTpub3QoW2Rpc2FibGVkXSkiXTtmdW5jdGlvbiBKWmUoYyl7Y29uc3QgbD1GZGUuam9pbigiLCIpO3JldHVybiBjLm1hdGNoZXMobCl9bGV0IG9PPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy56b25lPWEsdGhpcy5za2lwSXRlbUZv'@; put 'Y3VzPSExLHRoaXMubGlzdGVuZXJzQWRkZWQ9ITEsdGhpcy5kZXN0cm95JD1uZXcgR24sdGhpcy5fYWN0aXZlQ2VsbD1udWxsLHRoaXMuY29uZmlnPXtrZXlHcmlkUm93czonW3JvbGU9cm93XTpub3QoLmRhdGFncmlkLXBsYWNlaG9sZGVyKTpub3QoW3N0eWxlKj0iZGlzcGxheTogbm9uZSJd'@; put 'KScsa2V5R3JpZENlbGxzOiJbcm9sZT1ncmlkY2VsbF06bm90KC5kYXRhZ3JpZC1oaWRkZW4tY29sdW1uKTpub3QoLmRhdGFncmlkLXBsYWNlaG9sZGVyLWNvbnRlbnQpLCBbcm9sZT1jb2x1bW5oZWFkZXJdOm5vdCguZGF0YWdyaWQtaGlkZGVuLWNvbHVtbik6bm90KC5kYXRhZ3JpZC1wbGFj'@; put 'ZWhvbGRlci1jb250ZW50KSwgLmRhdGFncmlkLWRldGFpbC1jYXJldCIsa2V5R3JpZDoiW3JvbGU9Z3JpZF0ifX1uZ09uRGVzdHJveSgpe3RoaXMuZGVzdHJveSQubmV4dCgpLHRoaXMuZGVzdHJveSQuY29tcGxldGUoKX1hZGRMaXN0ZW5lcnMoKXt0aGlzLmxpc3RlbmVyc0FkZGVkfHwodGhp'@; put 'cy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57eGQodGhpcy5rZXlOYXZVdGlscy5ncmlkLCJtb3VzZWRvd24iKS5waXBlKEgwKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoYT0+e2lmKDE9PT1hLmJ1dHRvbnMmJiFhLmN0cmxLZXkpe2NvbnN0IGQ9dGhpcy5rZXlOYXZVdGlscy5jZWxs'@; put 'cz9BcnJheS5mcm9tKHRoaXMua2V5TmF2VXRpbHMuY2VsbHMpLmZpbmQoaD0+aD09PWEudGFyZ2V0fHxoPT09YS50YXJnZXQuY2xvc2VzdCh0aGlzLmNvbmZpZy5rZXlHcmlkQ2VsbHMpKTpudWxsO2QmJnRoaXMuc2V0QWN0aXZlQ2VsbChkLHtrZWVwRm9jdXM6SlplKGEudGFyZ2V0KX0pfX0p'@; put 'LHhkKHRoaXMua2V5TmF2VXRpbHMuZ3JpZCwid2hlZWwiKS5waXBlKEgwKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCk9Pnt0aGlzLnJlbW92ZUFjdGl2ZUNlbGwoKX0pLHhkKHRoaXMua2V5TmF2VXRpbHMuZ3JpZCwiZm9jdXNvdXQiKS5waXBlKHVtKDApLEgwKHRoaXMuZGVzdHJveSQp'@; put 'KS5zdWJzY3JpYmUoKCk9Pnt0aGlzLmtleU5hdlV0aWxzLmdyaWQuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCl8fHRoaXMucmVtb3ZlQWN0aXZlQ2VsbCgpfSkseGQodGhpcy5rZXlOYXZVdGlscy5ncmlkLCJrZXlkb3duIikucGlwZShIMCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2Ny'@; put 'aWJlKGE9PntpZigoIWEudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygiZHJhZy1oYW5kbGUiKXx8YS5rZXkhPT1wYS5BcnJvd0xlZnQmJmEua2V5IT09cGEuQXJyb3dSaWdodCkmJihhLmtleT09PXBhLkFycm93VXB8fGEua2V5PT09cGEuQXJyb3dEb3dufHxhLmtleT09PXBhLkFycm93TGVm'@; put 'dHx8YS5rZXk9PT1wYS5BcnJvd1JpZ2h0fHxhLmtleT09PXBhLkVuZHx8YS5rZXk9PT1wYS5Ib21lfHxhLmtleT09PXBhLlBhZ2VVcHx8YS5rZXk9PT1wYS5QYWdlRG93bikpe2NvbnN0IGQ9dGhpcy5rZXlOYXZVdGlscy5nZXROZXh0SXRlbUNvb3JkaW5hdGUoYSksaD10aGlzLmtleU5hdlV0'@; put 'aWxzLnJvd3M/QXJyYXkuZnJvbSh0aGlzLmtleU5hdlV0aWxzLmdldENlbGxzRm9yUm93KGQueSkpW2QueF06bnVsbDtoJiZ0aGlzLnNldEFjdGl2ZUNlbGwoaCksYS5wcmV2ZW50RGVmYXVsdCgpfX0pfSksdGhpcy5saXN0ZW5lcnNBZGRlZD0hMCl9aW5pdGlhbGl6ZUtleUdyaWQoYSl7dGhp'@; put 'cy5rZXlOYXZVdGlscz1uZXcgWFplKGEsdGhpcy5jb25maWcpLHRoaXMuYWRkTGlzdGVuZXJzKCksdGhpcy5yZXNldEtleUdyaWQoKX1yZXNldEtleUdyaWQoKXt0aGlzLmtleU5hdlV0aWxzLmNlbGxzPy5mb3JFYWNoKGQ9PmQuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIi0xIikpLCh0aGlz'@; put 'LmtleU5hdlV0aWxzLmNlbGxzP3RoaXMua2V5TmF2VXRpbHMuY2VsbHNbMF06bnVsbCk/LnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIil9cmVtb3ZlQWN0aXZlQ2VsbCgpe3RoaXMuX2FjdGl2ZUNlbGw9bnVsbH1nZXRBY3RpdmVDZWxsKCl7cmV0dXJuIHRoaXMuX2FjdGl2ZUNlbGx9c2V0'@; put 'QWN0aXZlQ2VsbChhLHtrZWVwRm9jdXM6ZH09e2tlZXBGb2N1czohMX0pe2NvbnN0IGg9dGhpcy5rZXlOYXZVdGlscy5jZWxscz9BcnJheS5mcm9tKHRoaXMua2V5TmF2VXRpbHMuY2VsbHMpLmZpbmQoZj0+IjAiPT09Zi5nZXRBdHRyaWJ1dGUoInRhYmluZGV4IikpOm51bGw7aWYoaCYmaC5z'@; put 'ZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiLTEiKSxhLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIiksdGhpcy5fYWN0aXZlQ2VsbD1hLCF0aGlzLnNraXBJdGVtRm9jdXMmJiFkKXtsZXQgZjtpZigiY29sdW1uaGVhZGVyIj09PWEuZ2V0QXR0cmlidXRlKCJyb2xlIikpZj1hO2Vsc2V7Y29u'@; put 'c3Qgdj1mdW5jdGlvbiBxWmUoYyl7Y29uc3QgYT1bLi4uRmRlLCdbdGFiaW5kZXg9IjAiXTpub3QoW2Rpc2FibGVkXSknXS5qb2luKCIsIik7cmV0dXJuIEFycmF5LmZyb20oYy5xdWVyeVNlbGVjdG9yQWxsKGEpKX0oYSk7Zj12Lmxlbmd0aD92WzBdOmF9Zi5mb2N1cygpfX19cmV0dXJuIGMu'@; put 'XHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoQ3IoR2EpKX0sYy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSxReD0oKCk9PntjbGFzcyBjIGV4dGVuZHMgc097Y29uc3RydWN0b3IoYSxkLGgsZix2LE0pe3N1cGVyKGEpLHRo'@; put 'aXMuY29tbW9uU3RyaW5ncz1kLHRoaXMuc21hcnRUb2dnbGVTZXJ2aWNlPWgsdGhpcy5wbGF0Zm9ybUlkPWYsdGhpcy5lbGVtZW50UmVmPXYsdGhpcy5rZXlOYXZpZ2F0aW9uPU0sdGhpcy5vcGVuQ2hhbmdlPW5ldyBLcighMSksdGhpcy5hcmlhRXhwYW5kZWQ9ITEsdGhpcy5wb3BvdmVySWQ9'@; put 'X3UoKSx0aGlzLnNtYXJ0UG9zaXRpb249e2F4aXM6ZDEuVkVSVElDQUwsc2lkZTpPMi5BRlRFUixhbmNob3I6T28uRU5ELGNvbnRlbnQ6T28uRU5EfSx0aGlzLl9vcGVuPSExLHRoaXMuc3Vicz1bXSx0aGlzLnN1YnMucHVzaChoLm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKEk9Pnt0aGlzLm9wZW49'@; put 'SSx0aGlzLmFyaWFFeHBhbmRlZD1JfSkpfWdldCBvcGVuKCl7cmV0dXJuIHRoaXMuX29wZW59c2V0IG9wZW4oYSl7dGhpcy5vcGVuIT09KGE9ISFhKSYmKHRoaXMuc21hcnRUb2dnbGVTZXJ2aWNlLm9wZW49YSx0aGlzLm9wZW5DaGFuZ2UuZW1pdChhKSwhYSYmZWwodGhpcy5wbGF0Zm9ybUlk'@; put 'KSYmdGhpcy5hbmNob3IubmF0aXZlRWxlbWVudC5mb2N1cygpLHRoaXMua2V5TmF2aWdhdGlvbiYmKHRoaXMua2V5TmF2aWdhdGlvbi5za2lwSXRlbUZvY3VzPWEpLHRoaXMuX29wZW49YSl9c2V0IGN1c3RvbUZpbHRlcihhKXt0aGlzLnNldEZpbHRlcihhKX1nZXQgYWN0aXZlKCl7cmV0dXJu'@; put 'ISF0aGlzLmZpbHRlciYmdGhpcy5maWx0ZXIuaXNBY3RpdmUoKX1uZ09uQ2hhbmdlcygpe3NldFRpbWVvdXQoKCk9Pnt0aGlzLnNldFRvZ2dsZUJ1dHRvbkFyaWFMYWJlbCgpfSl9bmdPbkRlc3Ryb3koKXtzdXBlci5uZ09uRGVzdHJveSgpLHRoaXMuc3Vicy5mb3JFYWNoKGE9PmEudW5zdWJz'@; put 'Y3JpYmUoKSl9c2V0VG9nZ2xlQnV0dG9uQXJpYUxhYmVsKCl7Y29uc3QgaD10aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudD8uY2xvc2VzdCgiY2xyLWRnLWNvbHVtbiIpPy5xdWVyeVNlbGVjdG9yKCIuZGF0YWdyaWQtY29sdW1uLXRpdGxlIik/LnRleHRDb250ZW50LnRyaW0oKS50b0xv'@; put 'Y2FsZUxvd2VyQ2FzZSgpO3RoaXMudG9nZ2xlQnV0dG9uQXJpYUxhYmVsPXRoaXMuY29tbW9uU3RyaW5ncy5wYXJzZSh0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5kYXRhZ3JpZEZpbHRlckFyaWFMYWJlbCx7Q09MVU1OOmh8fCIifSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXty'@; put 'ZXR1cm4gbmV3KGF8fGMpKCRlKGNnKSwkZSh0byksJGUoc2MpLCRlKGlzKSwkZShRaSksJGUob08sOCkpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItZGctZmlsdGVyIl1dLHZpZXdRdWVyeTpmdW5jdGlvbihhLGQpe2lmKDEmYSYmRmEoSlZlLDUsUWkpLDImYSl7'@; put 'bGV0IGg7eWkoaD1iaSgpKSYmKGQuYW5jaG9yPWguZmlyc3QpfX0saW5wdXRzOntvcGVuOltWbi5Ob25lLCJjbHJEZ0ZpbHRlck9wZW4iLCJvcGVuIl0sY3VzdG9tRmlsdGVyOltWbi5Ob25lLCJjbHJEZ0ZpbHRlciIsImN1c3RvbUZpbHRlciJdfSxvdXRwdXRzOntvcGVuQ2hhbmdlOiJjbHJE'@; put 'Z0ZpbHRlck9wZW5DaGFuZ2UifSxmZWF0dXJlczpbdWEoW3twcm92aWRlOmlPLHVzZUV4aXN0aW5nOmN9XSksQ2EsYmxdLG5nQ29udGVudFNlbGVjdG9yczp5cyxkZWNsczo0LHZhcnM6MTMsY29uc3RzOltbImFuY2hvciIsIiJdLFsidHlwZSIsImJ1dHRvbiIsImNsclBvcG92ZXJBbmNob3Ii'@; put 'LCIiLCJjbHJQb3BvdmVyT3BlbkNsb3NlQnV0dG9uIiwiIiwxLCJkYXRhZ3JpZC1maWx0ZXItdG9nZ2xlIl0sWyJzb2xpZCIsIiJdLFsiY2xhc3MiLCJkYXRhZ3JpZC1maWx0ZXIiLCJjZGtUcmFwRm9jdXMiLCIiLCJyb2xlIiwiZGlhbG9nIiwzLCJpZCIsNCwiY2xyUG9wb3ZlckNvbnRlbnQi'@; put 'LCJjbHJQb3BvdmVyQ29udGVudEF0IiwiY2xyUG9wb3ZlckNvbnRlbnRPdXRzaWRlQ2xpY2tUb0Nsb3NlIiwiY2xyUG9wb3ZlckNvbnRlbnRTY3JvbGxUb0Nsb3NlIl0sWyJjZGtUcmFwRm9jdXMiLCIiLCJyb2xlIiwiZGlhbG9nIiwxLCJkYXRhZ3JpZC1maWx0ZXIiLDMsImlkIl0sWzEsImRh'@; put 'dGFncmlkLWZpbHRlci1jbG9zZS13cmFwcGVyIl0sWyJ0eXBlIiwiYnV0dG9uIiwiY2xyUG9wb3ZlckNsb3NlQnV0dG9uIiwiIiwxLCJjbG9zZSJdLFsic2hhcGUiLCJ3aW5kb3ctY2xvc2UiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihzYSgpLGRlKDAsImJ1dHRvbiIsMSwwKSxX'@; put 'dCgyLCJjZHMtaWNvbiIsMiksaGUoKSxndCgzLFFWZSw1LDMsImRpdiIsMykpLDImYSYmKFRyKCJkYXRhZ3JpZC1maWx0ZXItb3BlbiIsZC5vcGVuKSgiZGF0YWdyaWQtZmlsdGVyZWQiLGQuYWN0aXZlKSxocigiYXJpYS1sYWJlbCIsZC50b2dnbGVCdXR0b25BcmlhTGFiZWwpKCJhcmlhLWV4'@; put 'cGFuZGVkIixkLmFyaWFFeHBhbmRlZCkoImFyaWEtY29udHJvbHMiLGQucG9wb3ZlcklkKSxmZSgyKSxocigic3RhdHVzIixkLmFjdGl2ZT8iaW5mbyI6bnVsbCkoInNoYXBlIixkLmFjdGl2ZT8iZmlsdGVyLWdyaWQtY2lyY2xlIjoiZmlsdGVyLWdyaWQiKSxmZSgpLE1lKCJjbHJQb3BvdmVy'@; put 'Q29udGVudCIsZC5vcGVuKSgiY2xyUG9wb3ZlckNvbnRlbnRBdCIsZC5zbWFydFBvc2l0aW9uKSgiY2xyUG9wb3ZlckNvbnRlbnRPdXRzaWRlQ2xpY2tUb0Nsb3NlIiwhMCkoImNsclBvcG92ZXJDb250ZW50U2Nyb2xsVG9DbG9zZSIsITApKX0sZGVwZW5kZW5jaWVzOltCYixlbyxCeCxVMWUs'@; put 'VXgsenhdLGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpO2NsYXNzIHBHe2NvbnN0cnVjdG9yKGwpe3RoaXMucHJvcD1sLGwuaW5kZXhPZigiLiIpPj0wJiYodGhpcy5zcGxpdFByb3A9bC5zcGxpdCgiLiIpKX1nZXRQcm9wVmFsdWUobCl7aWYodGhpcy5zcGxpdFByb3Ape2xldCBhPWw7Zm9yKGNv'@; put 'bnN0IGQgb2YgdGhpcy5zcGxpdFByb3Ape2lmKG51bGw9PT1hfHx0eXBlb2YgYT4idSJ8fHR5cGVvZiBhW2RdPiJ1IilyZXR1cm47YT1hW2RdfXJldHVybiBhfXJldHVybiBsW3RoaXMucHJvcF19fWNsYXNzIGxPe2NvbnN0cnVjdG9yKGwsYT0hMSl7dGhpcy5wcm9wPWwsdGhpcy5leGFjdD1h'@; put 'LHRoaXMubmVzdGVkUHJvcD1uZXcgcEcobCl9YWNjZXB0cyhsLGEsZCl7Y29uc3QgaD10aGlzLm5lc3RlZFByb3AuZ2V0UHJvcFZhbHVlKGwpO3JldHVybiEodm9pZCAwPT09aHx8bnVsbCE9PWEmJigibnVtYmVyIiE9dHlwZW9mIGh8fGg8YSl8fG51bGwhPT1kJiYoIm51bWJlciIhPXR5cGVv'@; put 'ZiBofHxoPmQpKX19Y2xhc3MgVDd7Y29uc3RydWN0b3IobCl7dGhpcy5maWx0ZXJGbj1sLHRoaXMuX2NoYW5nZXM9bmV3IEduLHRoaXMuX2xvdz1udWxsLHRoaXMuX2hpZ2g9bnVsbH1nZXQgY2hhbmdlcygpe3JldHVybiB0aGlzLl9jaGFuZ2VzLmFzT2JzZXJ2YWJsZSgpfWdldCB2YWx1ZSgp'@; put 'e3JldHVyblt0aGlzLl9sb3csdGhpcy5faGlnaF19c2V0IHZhbHVlKGwpe2NvbnN0IGE9bFswXSxkPWxbMV07KGEhPT10aGlzLl9sb3d8fGQhPT10aGlzLl9oaWdoKSYmKHRoaXMuX2xvdz1hLHRoaXMuX2hpZ2g9ZCx0aGlzLl9jaGFuZ2VzLm5leHQoW3RoaXMuX2xvdyx0aGlzLl9oaWdoXSkp'@; put 'fWdldCBsb3coKXtyZXR1cm4gdGhpcy5fbG93fXNldCBsb3cobCl7bCE9PXRoaXMuX2xvdyYmKHRoaXMuX2xvdz1sLHRoaXMuX2NoYW5nZXMubmV4dChbdGhpcy5fbG93LHRoaXMuX2hpZ2hdKSl9Z2V0IGhpZ2goKXtyZXR1cm4gdGhpcy5faGlnaH1zZXQgaGlnaChsKXtsIT09dGhpcy5faGln'@; put 'aCYmKHRoaXMuX2hpZ2g9bCx0aGlzLl9jaGFuZ2VzLm5leHQoW3RoaXMuX2xvdyx0aGlzLl9oaWdoXSkpfWdldCBzdGF0ZSgpe3JldHVybiB0aGlzLmZpbHRlckZuIGluc3RhbmNlb2YgbE8/e3Byb3BlcnR5OnRoaXMuZmlsdGVyRm4ucHJvcCxsb3c6dGhpcy5fbG93LGhpZ2g6dGhpcy5faGln'@; put 'aH06dGhpc31pc0FjdGl2ZSgpe3JldHVybiBudWxsIT09dGhpcy5fbG93fHxudWxsIT09dGhpcy5oaWdofWFjY2VwdHMobCl7cmV0dXJuIHRoaXMuZmlsdGVyRm4uYWNjZXB0cyhsLHRoaXMuX2xvdyx0aGlzLl9oaWdoKX1lcXVhbHMobCl7cmV0dXJuIGwgaW5zdGFuY2VvZiBUNyYmKGwuZmls'@; put 'dGVyRm4gaW5zdGFuY2VvZiBsTz90aGlzLmZpbHRlckZuIGluc3RhbmNlb2YgbE8mJmwuZmlsdGVyRm4ucHJvcD09PXRoaXMuZmlsdGVyRm4ucHJvcCYmbC5sb3c9PT10aGlzLl9sb3cmJmwuaGlnaD09PXRoaXMuX2hpZ2g6bD09PXRoaXMpfX1sZXQgSGRlPSgoKT0+e2NsYXNzIGMgZXh0ZW5k'@; put 'cyBzT3tjb25zdHJ1Y3RvcihhLGQsaCxmLHYpe3N1cGVyKGEpLHRoaXMuZG9tQWRhcHRlcj1kLHRoaXMuY29tbW9uU3RyaW5ncz1oLHRoaXMucG9wb3ZlclRvZ2dsZVNlcnZpY2U9Zix0aGlzLm5nWm9uZT12LHRoaXMuZmlsdGVyVmFsdWVDaGFuZ2U9bmV3IEtyLHRoaXMub3Blbj0hMSx0aGlz'@; put 'LnN1YnNjcmlwdGlvbnM9W119Z2V0IHZhbHVlKCl7cmV0dXJuW3RoaXMuZmlsdGVyLmxvdyx0aGlzLmZpbHRlci5oaWdoXX1zZXQgdmFsdWUoYSl7dGhpcy5maWx0ZXImJkFycmF5LmlzQXJyYXkoYSk/YSYmKGFbMF0hPT10aGlzLmZpbHRlci5sb3d8fGFbMV0hPT10aGlzLmZpbHRlci5oaWdo'@; put 'KSYmKHRoaXMuZmlsdGVyLmxvdz0ibnVtYmVyIj09dHlwZW9mIGFbMF0/YVswXTpudWxsLHRoaXMuZmlsdGVyLmhpZ2g9Im51bWJlciI9PXR5cGVvZiBhWzFdP2FbMV06bnVsbCx0aGlzLmZpbHRlclZhbHVlQ2hhbmdlLmVtaXQoYSkpOnRoaXMuaW5pdEZpbHRlclZhbHVlcz1hfXNldCBjdXN0'@; put 'b21OdW1lcmljRmlsdGVyKGEpe3RoaXMuc2V0RmlsdGVyKGEgaW5zdGFuY2VvZiBhTz9hOm5ldyBUNyhhKSksdGhpcy5pbml0RmlsdGVyVmFsdWVzJiYodGhpcy52YWx1ZT10aGlzLmluaXRGaWx0ZXJWYWx1ZXMsZGVsZXRlIHRoaXMuaW5pdEZpbHRlclZhbHVlcyl9Z2V0IG1heFBsYWNlaG9s'@; put 'ZGVyVmFsdWUoKXtyZXR1cm4gdGhpcy5tYXhQbGFjZWhvbGRlcnx8dGhpcy5jb21tb25TdHJpbmdzLmtleXMubWF4VmFsdWV9Z2V0IG1pblBsYWNlaG9sZGVyVmFsdWUoKXtyZXR1cm4gdGhpcy5taW5QbGFjZWhvbGRlcnx8dGhpcy5jb21tb25TdHJpbmdzLmtleXMubWluVmFsdWV9Z2V0IGZy'@; put 'b21MYWJlbFZhbHVlKCl7cmV0dXJuIHRoaXMuZnJvbUxhYmVsfHx0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5mcm9tTGFiZWx9Z2V0IHRvTGFiZWxWYWx1ZSgpe3JldHVybiB0aGlzLnRvTGFiZWx8fHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLnRvTGFiZWx9Z2V0IGxvdygpe3JldHVybiJudW1i'@; put 'ZXIiPT10eXBlb2YgdGhpcy5maWx0ZXIubG93JiZpc0Zpbml0ZSh0aGlzLmZpbHRlci5sb3cpP3RoaXMuZmlsdGVyLmxvdzpudWxsfXNldCBsb3coYSl7Im51bWJlciI9PXR5cGVvZiBhJiZhIT09dGhpcy5maWx0ZXIubG93Pyh0aGlzLmZpbHRlci5sb3c9YSx0aGlzLmZpbHRlclZhbHVlQ2hh'@; put 'bmdlLmVtaXQoW3RoaXMuZmlsdGVyLmxvdyx0aGlzLmZpbHRlci5oaWdoXSkpOiJudW1iZXIiIT10eXBlb2YgYSYmKHRoaXMuZmlsdGVyLmxvdz1udWxsLHRoaXMuZmlsdGVyVmFsdWVDaGFuZ2UuZW1pdChbdGhpcy5maWx0ZXIubG93LHRoaXMuZmlsdGVyLmhpZ2hdKSl9Z2V0IGhpZ2goKXty'@; put 'ZXR1cm4ibnVtYmVyIj09dHlwZW9mIHRoaXMuZmlsdGVyLmhpZ2gmJmlzRmluaXRlKHRoaXMuZmlsdGVyLmhpZ2gpP3RoaXMuZmlsdGVyLmhpZ2g6bnVsbH1zZXQgaGlnaChhKXsibnVtYmVyIj09dHlwZW9mIGEmJmEhPT10aGlzLmZpbHRlci5oaWdoPyh0aGlzLmZpbHRlci5oaWdoPWEsdGhp'@; put 'cy5maWx0ZXJWYWx1ZUNoYW5nZS5lbWl0KFt0aGlzLmZpbHRlci5sb3csdGhpcy5maWx0ZXIuaGlnaF0pKToibnVtYmVyIiE9dHlwZW9mIGEmJih0aGlzLmZpbHRlci5oaWdoPW51bGwsdGhpcy5maWx0ZXJWYWx1ZUNoYW5nZS5lbWl0KFt0aGlzLmZpbHRlci5sb3csdGhpcy5maWx0ZXIuaGln'@; put 'aF0pKX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnBvcG92ZXJUb2dnbGVTZXJ2aWNlLm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKGE9Pnt0aGlzLm9wZW49YSx0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3JlcXVlc3RBbmltYXRpb25GcmFt'@; put 'ZSgoKT0+e3RoaXMuZG9tQWRhcHRlci5mb2N1cyh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQpfSl9KX0pKX1uZ09uRGVzdHJveSgpe3N1cGVyLm5nT25EZXN0cm95KCksdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goYT0+e2EudW5zdWJzY3JpYmUoKX0pfX1yZXR1cm4gYy5cdTAyNzVmYWM9'@; put 'ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZShjZyksJGUocG0pLCRlKHRvKSwkZShzYyksJGUoR2EpKX0sYy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLWRnLW51bWVyaWMtZmlsdGVyIl1dLHZpZXdRdWVyeTpmdW5jdGlvbihhLGQpe2lmKDEmYSYmKEZhKGVC'@; put 'ZSw1KSxGYShReCw1KSksMiZhKXtsZXQgaDt5aShoPWJpKCkpJiYoZC5pbnB1dD1oLmZpcnN0KSx5aShoPWJpKCkpJiYoZC5maWx0ZXJDb250YWluZXI9aC5maXJzdCl9fSxpbnB1dHM6e21pblBsYWNlaG9sZGVyOltWbi5Ob25lLCJjbHJGaWx0ZXJNaW5QbGFjZWhvbGRlciIsIm1pblBsYWNl'@; put 'aG9sZGVyIl0sbWF4UGxhY2Vob2xkZXI6W1ZuLk5vbmUsImNsckZpbHRlck1heFBsYWNlaG9sZGVyIiwibWF4UGxhY2Vob2xkZXIiXSxmcm9tTGFiZWw6W1ZuLk5vbmUsImNsckZpbHRlckZyb21MYWJlbCIsImZyb21MYWJlbCJdLHRvTGFiZWw6W1ZuLk5vbmUsImNsckZpbHRlclRvTGFiZWwi'@; put 'LCJ0b0xhYmVsIl0sdmFsdWU6W1ZuLk5vbmUsImNsckZpbHRlclZhbHVlIiwidmFsdWUiXSxjdXN0b21OdW1lcmljRmlsdGVyOltWbi5Ob25lLCJjbHJEZ051bWVyaWNGaWx0ZXIiLCJjdXN0b21OdW1lcmljRmlsdGVyIl19LG91dHB1dHM6e2ZpbHRlclZhbHVlQ2hhbmdlOiJjbHJGaWx0ZXJW'@; put 'YWx1ZUNoYW5nZSJ9LGZlYXR1cmVzOlt1YShbe3Byb3ZpZGU6aU8sdXNlRXhpc3Rpbmc6Y31dKSxDYV0sZGVjbHM6MTIsdmFyczoxMCxjb25zdHM6W1siaW5wdXRfbG93IiwiIl0sWyJpbnB1dF9oaWdoIiwiIl0sWzMsImNsckRnRmlsdGVyT3BlbkNoYW5nZSIsImNsckRnRmlsdGVyIiwiY2xy'@; put 'RGdGaWx0ZXJPcGVuIl0sWzEsImRhdGFncmlkLW51bWVyaWMtZmlsdGVyLWZvcm0iXSxbMSwiY2xyLWNvbnRyb2wtbGFiZWwiXSxbImNsck51bWJlcklucHV0IiwiIiwidHlwZSIsIm51bWJlciIsImF1dG9jb21wbGV0ZSIsIm9mZiIsIm5hbWUiLCJsb3ciLDEsImRhdGFncmlkLW51bWVyaWMt'@; put 'ZmlsdGVyLWlucHV0IiwzLCJuZ01vZGVsQ2hhbmdlIiwibmdNb2RlbCIsInBsYWNlaG9sZGVyIl0sWyJjbHJOdW1iZXJJbnB1dCIsIiIsInR5cGUiLCJudW1iZXIiLCJhdXRvY29tcGxldGUiLCJvZmYiLCJuYW1lIiwiaGlnaCIsMSwiZGF0YWdyaWQtbnVtZXJpYy1maWx0ZXItaW5wdXQiLDMs'@; put 'Im5nTW9kZWxDaGFuZ2UiLCJuZ01vZGVsIiwicGxhY2Vob2xkZXIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXtpZigxJmEpe2NvbnN0IGg9T24oKTtkZSgwLCJjbHItZGctZmlsdGVyIiwyKSxwaSgiY2xyRGdGaWx0ZXJPcGVuQ2hhbmdlIixmdW5jdGlvbih2KXtyZXR1cm4gd3QoaCksZ2ko'@; put 'ZC5vcGVuLHYpfHwoZC5vcGVuPXYpLEN0KHYpfSksZGUoMSwiZGl2IiwzKSgyLCJjbHItbnVtYmVyLWlucHV0LWNvbnRhaW5lciIpKDMsImxhYmVsIiw0KSxPZSg0KSxoZSgpLGRlKDUsImlucHV0Iiw1LDApLHBpKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih2KXtyZXR1cm4gd3QoaCksZ2ko'@; put 'ZC5sb3csdil8fChkLmxvdz12KSxDdCh2KX0pLGhlKCkoKSxkZSg3LCJjbHItbnVtYmVyLWlucHV0LWNvbnRhaW5lciIpKDgsImxhYmVsIiw0KSxPZSg5KSxoZSgpLGRlKDEwLCJpbnB1dCIsNiwxKSxwaSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24odil7cmV0dXJuIHd0KGgpLGdpKGQuaGln'@; put 'aCx2KXx8KGQuaGlnaD12KSxDdCh2KX0pLGhlKCkoKSgpKCl9MiZhJiYoTWUoImNsckRnRmlsdGVyIixkLnJlZ2lzdGVyZWQpLGZpKCJjbHJEZ0ZpbHRlck9wZW4iLGQub3BlbiksZmUoNCksU3IoZC5mcm9tTGFiZWxWYWx1ZSksZmUoKSxmaSgibmdNb2RlbCIsZC5sb3cpLE1lKCJwbGFjZWhv'@; put 'bGRlciIsZC5taW5QbGFjZWhvbGRlclZhbHVlKSxocigiYXJpYS1sYWJlbCIsZC5taW5QbGFjZWhvbGRlclZhbHVlKSxmZSg0KSxTcihkLnRvTGFiZWxWYWx1ZSksZmUoKSxmaSgibmdNb2RlbCIsZC5oaWdoKSxNZSgicGxhY2Vob2xkZXIiLGQubWF4UGxhY2Vob2xkZXJWYWx1ZSksaHIoImFy'@; put 'aWEtbGFiZWwiLGQubWF4UGxhY2Vob2xkZXJWYWx1ZSkpfSxkZXBlbmRlbmNpZXM6W2NvLERkZSxrZGUsR2wsd0wsdGwsV28sUXhdLGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpO2NsYXNzIGNPe2NvbnN0cnVjdG9yKGwsYT0hMSl7dGhpcy5wcm9wPWwsdGhpcy5leGFjdD1hLHRoaXMubmVzdGVk'@; put 'UHJvcD1uZXcgcEcobCl9YWNjZXB0cyhsLGEpe2NvbnN0IGQ9dGhpcy5uZXN0ZWRQcm9wLmdldFByb3BWYWx1ZShsKTtyZXR1cm4hKHR5cGVvZiBkPiJ1IikmJih0aGlzLmV4YWN0PygiIitkKS50b0xvd2VyQ2FzZSgpPT09YTooIiIrZCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKGEpPj0wKX19'@; put 'Y2xhc3MgQTd7Y29uc3RydWN0b3IobCl7dGhpcy5maWx0ZXJGbj1sLHRoaXMuX2NoYW5nZXM9bmV3IEduLHRoaXMuX2xvd2VyQ2FzZVZhbHVlPSIiLHRoaXMuX3Jhd1ZhbHVlPSIifWdldCBjaGFuZ2VzKCl7cmV0dXJuIHRoaXMuX2NoYW5nZXMuYXNPYnNlcnZhYmxlKCl9Z2V0IGxvd2VyQ2Fz'@; put 'ZVZhbHVlKCl7cmV0dXJuIHRoaXMuX2xvd2VyQ2FzZVZhbHVlfWdldCBzdGF0ZSgpe3JldHVybiB0aGlzLmZpbHRlckZuIGluc3RhbmNlb2YgY08/e3Byb3BlcnR5OnRoaXMuZmlsdGVyRm4ucHJvcCx2YWx1ZTp0aGlzLnZhbHVlfTp0aGlzfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLl9yYXdW'@; put 'YWx1ZX1zZXQgdmFsdWUobCl7bHx8KGw9IiIpLGwhPT10aGlzLl9yYXdWYWx1ZSYmKHRoaXMuX3Jhd1ZhbHVlPWwsdGhpcy5fbG93ZXJDYXNlVmFsdWU9bC50b0xvd2VyQ2FzZSgpLnRyaW0oKSx0aGlzLl9jaGFuZ2VzLm5leHQobCkpfWlzQWN0aXZlKCl7cmV0dXJuISF0aGlzLnZhbHVlfWFj'@; put 'Y2VwdHMobCl7cmV0dXJuIHRoaXMuZmlsdGVyRm4uYWNjZXB0cyhsLHRoaXMubG93ZXJDYXNlVmFsdWUpfWVxdWFscyhsKXtyZXR1cm4gbCBpbnN0YW5jZW9mIEE3JiYobC5maWx0ZXJGbiBpbnN0YW5jZW9mIGNPP3RoaXMuZmlsdGVyRm4gaW5zdGFuY2VvZiBjTyYmbC5maWx0ZXJGbi5wcm9w'@; put 'PT09dGhpcy5maWx0ZXJGbi5wcm9wJiZsLnZhbHVlPT09dGhpcy52YWx1ZTpsPT09dGhpcyl9fWxldCBXYj0oKCk9PntjbGFzcyBjIGV4dGVuZHMgc097Y29uc3RydWN0b3IoYSxkLGgsZix2LE0sSSl7c3VwZXIoYSksdGhpcy5kb21BZGFwdGVyPWQsdGhpcy5jb21tb25TdHJpbmdzPWgsdGhp'@; put 'cy5zbWFydFRvZ2dsZVNlcnZpY2U9Zix0aGlzLmVsZW1lbnRSZWY9dix0aGlzLmNkcj1NLHRoaXMubmdab25lPUksdGhpcy5maWx0ZXJWYWx1ZUNoYW5nZT1uZXcgS3IsdGhpcy5vcGVuPSExLHRoaXMubGFiZWxWYWx1ZT0iIix0aGlzLnN1YnM9W119c2V0IGN1c3RvbVN0cmluZ0ZpbHRlcihh'@; put 'KXt0aGlzLnNldEZpbHRlcihhIGluc3RhbmNlb2YgYU8/YTpuZXcgQTcoYSkpLHRoaXMuaW5pdEZpbHRlclZhbHVlJiYodGhpcy52YWx1ZT10aGlzLmluaXRGaWx0ZXJWYWx1ZSxkZWxldGUgdGhpcy5pbml0RmlsdGVyVmFsdWUpfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLmZpbHRlci52YWx1'@; put 'ZX1zZXQgdmFsdWUoYSl7dGhpcy5maWx0ZXImJiJzdHJpbmciPT10eXBlb2YgYT8oYXx8KGE9IiIpLGEhPT10aGlzLmZpbHRlci52YWx1ZSYmKHRoaXMuZmlsdGVyLnZhbHVlPWEsdGhpcy5maWx0ZXJWYWx1ZUNoYW5nZS5lbWl0KGEpKSk6dGhpcy5pbml0RmlsdGVyVmFsdWU9YX1nZXQgcGxh'@; put 'Y2Vob2xkZXJWYWx1ZSgpe3JldHVybiB0aGlzLnBsYWNlaG9sZGVyfHx0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5maWx0ZXJJdGVtc31uZ0FmdGVyVmlld0luaXQoKXt0aGlzLnN1YnMucHVzaCh0aGlzLnNtYXJ0VG9nZ2xlU2VydmljZS5vcGVuQ2hhbmdlLnN1YnNjcmliZShhPT57dGhpcy5v'@; put 'cGVuPWEsdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PntyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmRvbUFkYXB0ZXIuZm9jdXModGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50KX0pfSl9KSl9bmdPbkNoYW5nZXMoKXtzZXRUaW1lb3V0KCgpPT57dGhpcy5zZXRGaWx0'@; put 'ZXJMYWJlbCgpLHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpfSl9bmdPbkRlc3Ryb3koKXtzdXBlci5uZ09uRGVzdHJveSgpLHRoaXMuc3Vicy5mb3JFYWNoKGE9PmEudW5zdWJzY3JpYmUoKSl9c2V0RmlsdGVyTGFiZWwoKXtpZih0aGlzLmxhYmVsKXJldHVybiB2b2lkKHRoaXMubGFiZWxWYWx1'@; put 'ZT10aGlzLmxhYmVsKTtjb25zdCBkPXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Py5jbG9zZXN0KCJjbHItZGctY29sdW1uIik/LnF1ZXJ5U2VsZWN0b3IoIi5kYXRhZ3JpZC1jb2x1bW4tdGl0bGUiKTt0aGlzLmxhYmVsVmFsdWU9dGhpcy5jb21tb25TdHJpbmdzLnBhcnNlKHRoaXMu'@; put 'Y29tbW9uU3RyaW5ncy5rZXlzLmRhdGFncmlkRmlsdGVyTGFiZWwse0NPTFVNTjpkPy50ZXh0Q29udGVudC50cmltKCl8fCIifSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKCRlKGNnKSwkZShwbSksJGUodG8pLCRlKHNjKSwkZShRaSksJGUoeG8p'@; put 'LCRlKEdhKSl9LGMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1kZy1zdHJpbmctZmlsdGVyIl1dLHZpZXdRdWVyeTpmdW5jdGlvbihhLGQpe2lmKDEmYSYmKEZhKHRCZSw1KSxGYShReCw1KSksMiZhKXtsZXQgaDt5aShoPWJpKCkpJiYoZC5pbnB1dD1oLmZpcnN0KSx5'@; put 'aShoPWJpKCkpJiYoZC5maWx0ZXJDb250YWluZXI9aC5maXJzdCl9fSxpbnB1dHM6e3BsYWNlaG9sZGVyOltWbi5Ob25lLCJjbHJGaWx0ZXJQbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIl0sbGFiZWw6W1ZuLk5vbmUsImNsckZpbHRlckxhYmVsIiwibGFiZWwiXSxjdXN0b21TdHJpbmdGaWx0'@; put 'ZXI6W1ZuLk5vbmUsImNsckRnU3RyaW5nRmlsdGVyIiwiY3VzdG9tU3RyaW5nRmlsdGVyIl0sdmFsdWU6W1ZuLk5vbmUsImNsckZpbHRlclZhbHVlIiwidmFsdWUiXX0sb3V0cHV0czp7ZmlsdGVyVmFsdWVDaGFuZ2U6ImNsckZpbHRlclZhbHVlQ2hhbmdlIn0sZmVhdHVyZXM6W3VhKFt7cHJv'@; put 'dmlkZTppTyx1c2VFeGlzdGluZzpjfV0pLENhLGJsXSxkZWNsczo2LHZhcnM6Nixjb25zdHM6W1siaW5wdXQiLCIiXSxbMywiY2xyRGdGaWx0ZXJPcGVuQ2hhbmdlIiwiY2xyRGdGaWx0ZXIiLCJjbHJEZ0ZpbHRlck9wZW4iXSxbInR5cGUiLCJ0ZXh0IiwiYXV0b2NvbXBsZXRlIiwib2ZmIiwi'@; put 'bmFtZSIsInNlYXJjaCIsImNscklucHV0IiwiIiwzLCJuZ01vZGVsQ2hhbmdlIiwibmdNb2RlbCIsInBsYWNlaG9sZGVyIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7aWYoMSZhKXtjb25zdCBoPU9uKCk7ZGUoMCwiY2xyLWRnLWZpbHRlciIsMSkscGkoImNsckRnRmlsdGVyT3BlbkNoYW5n'@; put 'ZSIsZnVuY3Rpb24odil7cmV0dXJuIHd0KGgpLGdpKGQub3Blbix2KXx8KGQub3Blbj12KSxDdCh2KX0pLGRlKDEsImNsci1pbnB1dC1jb250YWluZXIiKSgyLCJsYWJlbCIpLE9lKDMpLGhlKCksZGUoNCwiaW5wdXQiLDIsMCkscGkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHYpe3JldHVy'@; put 'biB3dChoKSxnaShkLnZhbHVlLHYpfHwoZC52YWx1ZT12KSxDdCh2KX0pLGhlKCkoKSgpfTImYSYmKE1lKCJjbHJEZ0ZpbHRlciIsZC5yZWdpc3RlcmVkKSxmaSgiY2xyRGdGaWx0ZXJPcGVuIixkLm9wZW4pLGZlKDMpLFNyKGQubGFiZWxWYWx1ZSksZmUoKSxmaSgibmdNb2RlbCIsZC52YWx1'@; put 'ZSksTWUoInBsYWNlaG9sZGVyIixkLnBsYWNlaG9sZGVyVmFsdWUpLGhyKCJhcmlhLWxhYmVsIixkLnBsYWNlaG9sZGVyVmFsdWUpKX0sZGVwZW5kZW5jaWVzOltjbyxZMSxxTCxHbCx0bCxXbyxReF0sZW5jYXBzdWxhdGlvbjoyfSksY30pKCksQ209KCgpPT57Y2xhc3MgYyBleHRlbmRzIEFi'@; put 'e31yZXR1cm4gYy5cdTAyNzVmYWM9KCgpPT57bGV0IGw7cmV0dXJuIGZ1bmN0aW9uKGQpe3JldHVybihsfHwobD1VbyhjKSkpKGR8fGMpfX0pKCksYy5cdTAyNzVkaXI9RXIoe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLWRhdGFncmlkIl1dLGZlYXR1cmVzOltDYV19KSxjfSkoKSxZYj0oKCk9'@; put 'PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5hY3Rpb25hYmxlQ291bnQ9MH1nZXQgaGFzQWN0aW9uYWJsZVJvdygpe3JldHVybiB0aGlzLmFjdGlvbmFibGVDb3VudD4wfXJlZ2lzdGVyKCl7dGhpcy5hY3Rpb25hYmxlQ291bnQrK311bnJlZ2lzdGVyKCl7dGhpcy5hY3Rpb25hYmxlQ291'@; put 'bnQtLX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCksazc9KCgpPT57Y2xhc3MgYyBleHRlbmRzIGtie2NvbnN0cnVjdG9yKGEsZCxoKXtpZighZCl0aHJv'@; put 'dyBuZXcgRXJyb3IoImNsci1kZy1yb3cgc2hvdWxkIG9ubHkgYmUgdXNlZCBpbnNpZGUgb2YgYSBjbHItZGF0YWdyaWQiKTtzdXBlcihhLGQpLHRoaXMucm93QWN0aW9ucz1ofWdldCBmbGF2b3IoKXtyZXR1cm4gdGhpcy5yb3dBY3Rpb25zLmhhc0FjdGlvbmFibGVSb3d9fXJldHVybiBjLlx1'@; put 'MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKCRlKHhvKSwkZShDbSw4KSwkZShZYikpfSxjLlx1MDI3NWRpcj1Fcih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItZGF0YWdyaWQiXSxbImNsci1kZy1yb3ciXV0sZmVhdHVyZXM6W0NhXX0pLGN9KSgpLE5kZT0oKCk9PntjbGFz'@; put 'cyBje2NvbnN0cnVjdG9yKGEpe3RoaXMucGxhdGZvcm1JZD1hLHRoaXMubW9kYWxTdGFjaz1bXSx0aGlzLmtleVVwRXZlbnRMaXN0ZW5lcj10aGlzLm9uS2V5VXAuYmluZCh0aGlzKX10cmFja01vZGFsT3BlbihhKXshMT09PXRoaXMubW9kYWxTdGFjay5pbmNsdWRlcyhhKSYmdGhpcy5tb2Rh'@; put 'bFN0YWNrLnVuc2hpZnQoYSksZWwodGhpcy5wbGF0Zm9ybUlkKSYmZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsdGhpcy5rZXlVcEV2ZW50TGlzdGVuZXIpfXRyYWNrTW9kYWxDbG9zZShhKXtjb25zdCBkPXRoaXMubW9kYWxTdGFjay5pbmRleE9mKGEpO2Q+LTEmJnRo'@; put 'aXMubW9kYWxTdGFjay5zcGxpY2UoZCwxKSwwPT09dGhpcy5tb2RhbFN0YWNrLmxlbmd0aCYmZWwodGhpcy5wbGF0Zm9ybUlkKSYmZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXl1cCIsdGhpcy5rZXlVcEV2ZW50TGlzdGVuZXIpfW9uS2V5VXAoYSl7dGhpcy5tb2RhbFN0'@; put 'YWNrLmxlbmd0aCYmTDIoYS5rZXkpPT09cGEuRXNjYXBlJiYoZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCksdGhpcy5tb2RhbFN0YWNrWzBdLmNsb3NlKCkpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKShDcihpcykpfSxjLlx1MDI3NXByb3Y9'@; put 'cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pLGN9KSgpLHQzPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5tb2RhbFN0YWNrU2VydmljZT1hLHRoaXMucHJldmVudFNjcm9sbD0hMSx0aGlzLnRvZ2dsZVN0YXRlPSExLHRoaXMuX2Vu'@; put 'YWJsZWQ9ITEsdGhpcy5fc3RhdGU9bmV3IEpyKHRoaXMudG9nZ2xlU3RhdGUpfWdldCBlbmFibGVkKCl7cmV0dXJuIHRoaXMuX2VuYWJsZWR9c2V0IGVuYWJsZWQoYSl7dGhpcy5fZW5hYmxlZD1hfWdldCBwcmV2ZW50Rm9jdXNTY3JvbGwoKXtyZXR1cm4gdGhpcy5wcmV2ZW50U2Nyb2xsfXNl'@; put 'dCBwcmV2ZW50Rm9jdXNTY3JvbGwoYSl7dGhpcy5wcmV2ZW50U2Nyb2xsPWF9Z2V0IHN0YXRlKCl7cmV0dXJuIHRoaXMuY2FjaGV9Z2V0IHN0YXRlQ2hhbmdlKCl7cmV0dXJuIHRoaXMuX3N0YXRlLmFzT2JzZXJ2YWJsZSgpfWdldCBpc09wZW4oKXtyZXR1cm4hMD09PXRoaXMudG9nZ2xlU3Rh'@; put 'dGV9b3BlbihhLGQpe3RoaXMuY2FjaGU9YSx0aGlzLmJ1dHRvbj1kLHRoaXMudG9nZ2xlU3RhdGU9ITAsdGhpcy5fc3RhdGUubmV4dCh0aGlzLnRvZ2dsZVN0YXRlKSx0aGlzLm1vZGFsU3RhY2tTZXJ2aWNlLnRyYWNrTW9kYWxPcGVuKHRoaXMpfWNsb3NlKCl7dGhpcy50b2dnbGVTdGF0ZT0h'@; put 'MSx0aGlzLnJldHVybkZvY3VzKCksdGhpcy5fc3RhdGUubmV4dCh0aGlzLnRvZ2dsZVN0YXRlKSx0aGlzLm1vZGFsU3RhY2tTZXJ2aWNlLnRyYWNrTW9kYWxDbG9zZSh0aGlzKX1yZXR1cm5Gb2N1cygpe3RoaXMuYnV0dG9uJiYodGhpcy5idXR0b24uZm9jdXMoe3ByZXZlbnRTY3JvbGw6dGhp'@; put 'cy5wcmV2ZW50Rm9jdXNTY3JvbGx9KSx0aGlzLmJ1dHRvbj1udWxsKX10b2dnbGUoYSxkKXt0aGlzLmlzUm93T3BlbihhKXx8IWE/dGhpcy5jbG9zZSgpOnRoaXMub3BlbihhLGQpfWlzUm93T3BlbihhKXtyZXR1cm4hKCF0aGlzLnRvZ2dsZVN0YXRlfHx0aGlzLmNhY2hlIT09YSl9fXJldHVy'@; put 'biBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKENyKE5kZSkpfSxjLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpLEdiPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5kZXRhaWxTZXJ2aWNlPWEsdGhpcy5l'@; put 'eHBhbmRhYmxlQ291bnQ9MH1nZXQgaGFzRXhwYW5kYWJsZVJvdygpe3JldHVybiF0aGlzLmRldGFpbFNlcnZpY2UuZW5hYmxlZCYmdGhpcy5leHBhbmRhYmxlQ291bnQ+MH1yZWdpc3Rlcigpe3RoaXMuZXhwYW5kYWJsZUNvdW50Kyt9dW5yZWdpc3Rlcigpe3RoaXMuZXhwYW5kYWJsZUNvdW50'@; put 'LS19fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKENyKHQzKSl9LGMuXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCksRDc9KCgpPT57Y2xhc3MgYyBleHRlbmRzIGtie2NvbnN0cnVjdG9yKGEsZCxoKXtpZigh'@; put 'ZCl0aHJvdyBuZXcgRXJyb3IoImNsci1kZy1yb3cgc2hvdWxkIG9ubHkgYmUgdXNlZCBpbnNpZGUgb2YgYSBjbHItZGF0YWdyaWQiKTtzdXBlcihhLGQpLHRoaXMuZXhwYW5kYWJsZUNvdW50PWh9Z2V0IGZsYXZvcigpe3JldHVybiB0aGlzLmV4cGFuZGFibGVDb3VudC5oYXNFeHBhbmRhYmxl'@; put 'Um93fX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZSh4byksJGUoQ20sOCksJGUoR2IpKX0sYy5cdTAyNzVkaXI9RXIoe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLWRhdGFncmlkIl0sWyJjbHItZGctcm93Il1dLGZlYXR1cmVzOltDYV19KSxjfSko'@; put 'KTtjbGFzcyB1T3tjb25zdHJ1Y3RvcihsKXt0aGlzLnByb3A9bCx0aGlzLm5lc3RlZFByb3A9bmV3IHBHKGwpfWNvbXBhcmUobCxhKXtsZXQgZD10aGlzLm5lc3RlZFByb3AuZ2V0UHJvcFZhbHVlKGwpLGg9dGhpcy5uZXN0ZWRQcm9wLmdldFByb3BWYWx1ZShhKTtyZXR1cm4ic3RyaW5nIj09'@; put 'dHlwZW9mIGQmJihkPWQudG9Mb3dlckNhc2UoKSksInN0cmluZyI9PXR5cGVvZiBoJiYoaD1oLnRvTG93ZXJDYXNlKCkpLHR5cGVvZiBkPiJ1Inx8bnVsbD09PWQ/dHlwZW9mIGg+InUifHxudWxsPT09aD8wOjE6dHlwZW9mIGg+InUifHxudWxsPT09aHx8ZDxoPy0xOmQ+aD8xOjB9fXZhciBU'@; put 'aD1mdW5jdGlvbihjKXtyZXR1cm4gY1tjLlVOU09SVEVEPTBdPSJVTlNPUlRFRCIsY1tjLkFTQz0xXT0iQVNDIixjW2MuREVTQz0tMV09IkRFU0MiLGN9KFRofHx7fSk7Y29uc3QgJGI9ImRhdGFncmlkLWZpeGVkLXdpZHRoIixlRT0iZGF0YWdyaWQtaGlkZGVuLWNvbHVtbiI7bGV0IGdHPSgo'@; put 'KT0+e2NsYXNzIGN7bmdBZnRlclZpZXdJbml0KCl7dGhpcy5jb2x1bW5WaWV3PXRoaXMudGVtcGxhdGVSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KG51bGwpfW5nT25EZXN0cm95KCl7dGhpcy5jb2x1bW5WaWV3LmRlc3Ryb3koKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVy'@; put 'biBuZXcoYXx8Yyl9LGMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImRnLXdyYXBwZWQtY29sdW1uIl1dLHZpZXdRdWVyeTpmdW5jdGlvbihhLGQpe2lmKDEmYSYmRmEobkJlLDUpLDImYSl7bGV0IGg7eWkoaD1iaSgpKSYmKGQudGVtcGxhdGVSZWY9aC5maXJzdCl9fSxuZ0Nv'@; put 'bnRlbnRTZWxlY3RvcnM6eXMsZGVjbHM6Mix2YXJzOjAsY29uc3RzOltbImNvbHVtblBvcnRhbCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKHNhKCksZ3QoMCxyQmUsMSwwLCJuZy10ZW1wbGF0ZSIsbnVsbCwwLGdjKSl9LGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLGRPPSgo'@; put 'KT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5zdGF0ZURlYm91bmNlcj1hLHRoaXMuX3JldmVyc2U9ITEsdGhpcy5fY2hhbmdlPW5ldyBHbn1nZXQgY29tcGFyYXRvcigpe3JldHVybiB0aGlzLl9jb21wYXJhdG9yfXNldCBjb21wYXJhdG9yKGEpe3RoaXMuc3RhdGVEZWJvdW5jZXIu'@; put 'Y2hhbmdlU3RhcnQoKSx0aGlzLl9jb21wYXJhdG9yPWEsdGhpcy5lbWl0Q2hhbmdlKCksdGhpcy5zdGF0ZURlYm91bmNlci5jaGFuZ2VEb25lKCl9Z2V0IHJldmVyc2UoKXtyZXR1cm4gdGhpcy5fcmV2ZXJzZX1zZXQgcmV2ZXJzZShhKXt0aGlzLnN0YXRlRGVib3VuY2VyLmNoYW5nZVN0YXJ0'@; put 'KCksdGhpcy5fcmV2ZXJzZT1hLHRoaXMuZW1pdENoYW5nZSgpLHRoaXMuc3RhdGVEZWJvdW5jZXIuY2hhbmdlRG9uZSgpfWdldCBjaGFuZ2UoKXtyZXR1cm4gdGhpcy5fY2hhbmdlLmFzT2JzZXJ2YWJsZSgpfXRvZ2dsZShhLGQpe3RoaXMuc3RhdGVEZWJvdW5jZXIuY2hhbmdlU3RhcnQoKSx0'@; put 'aGlzLmNvbXBhcmF0b3I9PT1hP3RoaXMuX3JldmVyc2U9dHlwZW9mIGQ8InUiJiZkfHwhdGhpcy5fcmV2ZXJzZToodGhpcy5fY29tcGFyYXRvcj1hLHRoaXMuX3JldmVyc2U9dHlwZW9mIGQ8InUiJiZkKSx0aGlzLmVtaXRDaGFuZ2UoKSx0aGlzLnN0YXRlRGVib3VuY2VyLmNoYW5nZURvbmUo'@; put 'KX1jbGVhcigpe3RoaXMuY29tcGFyYXRvcj1udWxsfWNvbXBhcmUoYSxkKXtyZXR1cm4odGhpcy5yZXZlcnNlPy0xOjEpKnRoaXMuY29tcGFyYXRvci5jb21wYXJlKGEsZCl9ZW1pdENoYW5nZSgpe3RoaXMuX2NoYW5nZS5uZXh0KHRoaXMpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24o'@; put 'YSl7cmV0dXJuIG5ldyhhfHxjKShDcihKeCkpfSxjLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpO3ZhciBuMz1mdW5jdGlvbihjKXtyZXR1cm4gY1tjLkFMSUdOX0NPTFVNTlM9MF09IkFMSUdOX0NPTFVNTlMiLGNbYy5DQUxDVUxBVEVfTU9ERV9P'@; put 'Tj0xXT0iQ0FMQ1VMQVRFX01PREVfT04iLGNbYy5DQUxDVUxBVEVfTU9ERV9PRkY9Ml09IkNBTENVTEFURV9NT0RFX09GRiIsY1tjLkNMRUFSX1dJRFRIUz0zXT0iQ0xFQVJfV0lEVEhTIixjW2MuQ09NUFVURV9DT0xVTU5fV0lEVEhTPTRdPSJDT01QVVRFX0NPTFVNTl9XSURUSFMiLGN9KG4z'@; put 'fHx7fSk7bGV0IEk3PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLl9yZW5kZXJTdGVwPW5ldyBHbix0aGlzLmFscmVhZHlTaXplZD0hMX1nZXQgcmVuZGVyU3RlcCgpe3JldHVybiB0aGlzLl9yZW5kZXJTdGVwLmFzT2JzZXJ2YWJsZSgpfWZpbHRlclJlbmRlclN0ZXBzKGEpe3Jl'@; put 'dHVybiB0aGlzLnJlbmRlclN0ZXAucGlwZShXbChkPT5hPT09ZCkpfXJlc2l6ZSgpe3RoaXMuX3JlbmRlclN0ZXAubmV4dChuMy5DQUxDVUxBVEVfTU9ERV9PTiksdGhpcy5hbHJlYWR5U2l6ZWQmJnRoaXMuX3JlbmRlclN0ZXAubmV4dChuMy5DTEVBUl9XSURUSFMpLHRoaXMuX3JlbmRlclN0'@; put 'ZXAubmV4dChuMy5DT01QVVRFX0NPTFVNTl9XSURUSFMpLHRoaXMuX3JlbmRlclN0ZXAubmV4dChuMy5BTElHTl9DT0xVTU5TKSx0aGlzLmFscmVhZHlTaXplZD0hMCx0aGlzLl9yZW5kZXJTdGVwLm5leHQobjMuQ0FMQ1VMQVRFX01PREVfT0ZGKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0'@; put 'aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCksbUc9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCl7dGhpcy5lbD1hLHRoaXMuZG9tQWRhcHRlcj1kLHRoaXMub3JnYW5pemVyPWgsdGhpcy5f'@; put 'cmVzaXplZEJ5PTB9Z2V0IHJlc2l6ZWRCeSgpe3JldHVybiB0aGlzLl9yZXNpemVkQnl9Z2V0IG1pbkNvbHVtbldpZHRoKCl7cmV0dXJuIHRoaXMuZG9tQWRhcHRlci5taW5XaWR0aCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpfHw5Nn1nZXQgbWF4UmVzaXplUmFuZ2UoKXtyZXR1cm4gdGhpcy53'@; put 'aWR0aEJlZm9yZVJlc2l6ZS10aGlzLm1pbkNvbHVtbldpZHRofWdldCB3aWR0aEFmdGVyUmVzaXplKCl7cmV0dXJuIHRoaXMud2lkdGhCZWZvcmVSZXNpemUrdGhpcy5fcmVzaXplZEJ5fXN0YXJ0UmVzaXplKCl7dGhpcy5fcmVzaXplZEJ5PTAsdGhpcy5pc1dpdGhpbk1heFJlc2l6ZVJhbmdl'@; put 'PSEwLHRoaXMud2lkdGhCZWZvcmVSZXNpemU9dGhpcy5kb21BZGFwdGVyLmNsaWVudFJlY3QodGhpcy5lbC5uYXRpdmVFbGVtZW50KS53aWR0aH1lbmRSZXNpemUoKXt0aGlzLm9yZ2FuaXplci5yZXNpemUoKX1jYWxjdWxhdGVSZXNpemUoYSl7YTwtdGhpcy5tYXhSZXNpemVSYW5nZT8odGhp'@; put 'cy5fcmVzaXplZEJ5PS10aGlzLm1heFJlc2l6ZVJhbmdlLHRoaXMuaXNXaXRoaW5NYXhSZXNpemVSYW5nZT0hMSk6KHRoaXMuX3Jlc2l6ZWRCeT1hLHRoaXMuaXNXaXRoaW5NYXhSZXNpemVSYW5nZT0hMCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMp'@; put 'KENyKFFpKSxDcihwbSksQ3IoSTcpKX0sYy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSx2Rz0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMucGxhdGZvcm1JZD1hfWdldCB0YWJsZVJlZigpe3JldHVybiB0aGlzLl90YWJsZVJlZn1z'@; put 'ZXQgdGFibGVSZWYoYSl7dGhpcy5fdGFibGVSZWY9YX1zZXQgdGFibGUoYSl7ZWwodGhpcy5wbGF0Zm9ybUlkKSYmYS5uYXRpdmVFbGVtZW50JiYodGhpcy50YWJsZVJlZj1hLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigiLmRhdGFncmlkLXRhYmxlIikpfWdldENvbHVtbkRyYWdIZWln'@; put 'aHQoKXtyZXR1cm4gdGhpcy50YWJsZVJlZj9gJHt0aGlzLnRhYmxlUmVmLmNsaWVudEhlaWdodH1weGA6bnVsbH19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoQ3IoaXMpKX0sYy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVm'@; put 'YWN9KSxjfSkoKSxCZGU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmLHYsTSl7dGhpcy5jb2x1bW5SZXNpemVyU2VydmljZT1hLHRoaXMucmVuZGVyZXI9ZCx0aGlzLm5nWm9uZT1oLHRoaXMudGFibGVTaXplU2VydmljZT1mLHRoaXMuY29tbW9uU3RyaW5nPXYsdGhpcy5kb2N1'@; put 'bWVudD1NLHRoaXMuY29sdW1uU2VwYXJhdG9ySWQ9X3UoKSx0aGlzLnJlc2l6ZVN0YXJ0ZWRPbktleURvd249ITEsdGhpcy51bmxpc3RlbmVycz1bXX1nZXQgZGVzY3JpcHRpb25JZCgpe3JldHVybmAke3RoaXMuY29sdW1uU2VwYXJhdG9ySWR9LWFyaWEtZGVzY3JpYmVkYnlgfWdldCByZXNp'@; put 'emVUcmFja2VyRWwoKXtyZXR1cm4gdGhpcy5yZXNpemVUcmFja2VyUmVmLm5hdGl2ZUVsZW1lbnR9Z2V0IGNvbHVtbkhhbmRsZUVsKCl7cmV0dXJuIHRoaXMuY29sdW1uSGFuZGxlUmVmLm5hdGl2ZUVsZW1lbnR9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3Vs'@; put 'YXIoKCk9Pnt0aGlzLnVubGlzdGVuZXJzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5jb2x1bW5IYW5kbGVFbCwia2V5ZG93biIsYT0+e3RoaXMuc2hvd1RyYWNrZXJPbkZpcnN0S2V5RG93bihhKSx0aGlzLm1vdmVUcmFja2VyT25LZXlEb3duKGEpfSkpLHRoaXMudW5saXN0ZW5l'@; put 'cnMucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmNvbHVtbkhhbmRsZUVsLCJrZXl1cCIsYT0+e3RoaXMuaGlkZVRyYWNrZXJPbktleVVwKGEpfSkpfSl9bmdPbkRlc3Ryb3koKXt0aGlzLnVubGlzdGVuZXJzLmZvckVhY2goYT0+YSgpKX1zaG93VHJhY2tlcigpe3RoaXMuY29sdW1u'@; put 'UmVzaXplclNlcnZpY2Uuc3RhcnRSZXNpemUoKTtjb25zdCBhPXRoaXMudGFibGVTaXplU2VydmljZS5nZXRDb2x1bW5EcmFnSGVpZ2h0KCk7dGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnJlc2l6ZVRyYWNrZXJFbCwiaGVpZ2h0IixhKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMu'@; put 'cmVzaXplVHJhY2tlckVsLCJkaXNwbGF5IiwiYmxvY2siKX1tb3ZlVHJhY2tlcihhKXt0aGlzLmNvbHVtblJlc2l6ZXJTZXJ2aWNlLmNhbGN1bGF0ZVJlc2l6ZShhKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucmVzaXplVHJhY2tlckVsLCJ0cmFuc2Zvcm0iLGB0cmFuc2xhdGVYKCR7'@; put 'dGhpcy5jb2x1bW5SZXNpemVyU2VydmljZS5yZXNpemVkQnl9cHgpYCksdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmRvY3VtZW50LmJvZHksImN1cnNvciIsImNvbC1yZXNpemUiKSx0aGlzLnJlZEZsYWdUcmFja2VyKCl9aGlkZVRyYWNrZXIoKXt0aGlzLmNvbHVtblJlc2l6ZXJTZXJ2'@; put 'aWNlLmVuZFJlc2l6ZSgpLHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5yZXNpemVUcmFja2VyRWwsImRpc3BsYXkiLCJub25lIiksdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnJlc2l6ZVRyYWNrZXJFbCwidHJhbnNmb3JtIiwidHJhbnNsYXRlWCgwcHgpIiksdGhpcy5yZW5kZXJl'@; put 'ci5zZXRTdHlsZSh0aGlzLmNvbHVtbkhhbmRsZUVsLCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGVYKDBweCkiKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZG9jdW1lbnQuYm9keSwiY3Vyc29yIiwiYXV0byIpfXNob3dUcmFja2VyT25GaXJzdEtleURvd24oYSl7IXRoaXMucmVzaXplU3Rh'@; put 'cnRlZE9uS2V5RG93biYmKHRoaXMuaXNBcnJvd0xlZnRLZXlFdmVudChhKXx8dGhpcy5pc0Fycm93UmlnaHRLZXlFdmVudChhKSkmJih0aGlzLnJlc2l6ZVN0YXJ0ZWRPbktleURvd249ITAsdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnJlc2l6ZVRyYWNrZXJFbCwib24tYXJyb3cta2V5'@; put 'LXJlc2l6ZSIpLHRoaXMuc2hvd1RyYWNrZXIoKSl9bW92ZVRyYWNrZXJPbktleURvd24oYSl7dGhpcy5pc0Fycm93TGVmdEtleUV2ZW50KGEpPyhhLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMubW92ZVRyYWNrZXIodGhpcy5jb2x1bW5SZXNpemVyU2VydmljZS5yZXNpemVkQnktMTIpKTp0aGlz'@; put 'LmlzQXJyb3dSaWdodEtleUV2ZW50KGEpJiYoYS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLm1vdmVUcmFja2VyKHRoaXMuY29sdW1uUmVzaXplclNlcnZpY2UucmVzaXplZEJ5KzEyKSl9aGlkZVRyYWNrZXJPbktleVVwKGEpe3RoaXMucmVzaXplU3RhcnRlZE9uS2V5RG93biYmKHRoaXMuaXNB'@; put 'cnJvd0xlZnRLZXlFdmVudChhKXx8dGhpcy5pc0Fycm93UmlnaHRLZXlFdmVudChhKSkmJih0aGlzLnJlc2l6ZVN0YXJ0ZWRPbktleURvd249ITEsdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnJlc2l6ZVRyYWNrZXJFbCwib24tYXJyb3cta2V5LXJlc2l6ZSIpLHRoaXMuaGlkZVRy'@; put 'YWNrZXIoKSx0aGlzLmNvbHVtbkhhbmRsZUVsLmZvY3VzKCkpfXJlZEZsYWdUcmFja2VyKCl7dGhpcy5pc1dpdGhpbk1heFJlc2l6ZVJhbmdlIT09dGhpcy5jb2x1bW5SZXNpemVyU2VydmljZS5pc1dpdGhpbk1heFJlc2l6ZVJhbmdlJiYodGhpcy5pc1dpdGhpbk1heFJlc2l6ZVJhbmdlPXRo'@; put 'aXMuY29sdW1uUmVzaXplclNlcnZpY2UuaXNXaXRoaW5NYXhSZXNpemVSYW5nZSx0aGlzLmlzV2l0aGluTWF4UmVzaXplUmFuZ2U/dGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnJlc2l6ZVRyYWNrZXJFbCwiZXhjZWVkZWQtbWF4Iik6dGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlz'@; put 'LnJlc2l6ZVRyYWNrZXJFbCwiZXhjZWVkZWQtbWF4IikpfWlzQXJyb3dMZWZ0S2V5RXZlbnQoYSl7cmV0dXJuIEwyKGEua2V5KT09PXBhLkFycm93TGVmdH1pc0Fycm93UmlnaHRLZXlFdmVudChhKXtyZXR1cm4gTDIoYS5rZXkpPT09cGEuQXJyb3dSaWdodH19cmV0dXJuIGMuXHUwMjc1ZmFj'@; put 'PWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoJGUobUcpLCRlKEVzKSwkZShHYSksJGUodkcpLCRlKHRvKSwkZShtbykpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItZGctY29sdW1uLXNlcGFyYXRvciJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oYSxkKXtpZigx'@; put 'JmEmJihGYShpQmUsNSksRmEoYUJlLDUpKSwyJmEpe2xldCBoO3lpKGg9YmkoKSkmJihkLnJlc2l6ZVRyYWNrZXJSZWY9aC5maXJzdCkseWkoaD1iaSgpKSYmKGQuY29sdW1uSGFuZGxlUmVmPWguZmlyc3QpfX0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsyJmEmJlRy'@; put 'KCJkYXRhZ3JpZC1jb2x1bW4tc2VwYXJhdG9yIiwhMCl9LGRlY2xzOjYsdmFyczo0LGNvbnN0czpbWyJjb2x1bW5IYW5kbGUiLCIiXSxbInJlc2l6ZVRyYWNrZXIiLCIiXSxbInR5cGUiLCJidXR0b24iLCJjZGtEcmFnIiwiIiwiY2RrRHJhZ0xvY2tBeGlzIiwieCIsMSwiZGF0YWdyaWQtY29s'@; put 'dW1uLWhhbmRsZSIsMywiY2RrRHJhZ1N0YXJ0ZWQiLCJjZGtEcmFnTW92ZWQiLCJjZGtEcmFnRW5kZWQiXSxbMSwiY2xyLXNyLW9ubHkiXSxbMSwiZGF0YWdyaWQtY29sdW1uLXJlc2l6ZS10cmFja2VyIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7aWYoMSZhKXtjb25zdCBoPU9uKCk7ZGUo'@; put 'MCwiYnV0dG9uIiwyLDApLEZ0KCJjZGtEcmFnU3RhcnRlZCIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoaCksQ3QoZC5zaG93VHJhY2tlcigpKX0pKCJjZGtEcmFnTW92ZWQiLGZ1bmN0aW9uKHYpe3JldHVybiB3dChoKSxDdChkLm1vdmVUcmFja2VyKHYuZGlzdGFuY2UueCkpfSkoImNka0RyYWdF'@; put 'bmRlZCIsZnVuY3Rpb24odil7cmV0dXJuIHd0KGgpLGQuaGlkZVRyYWNrZXIoKSxDdCh2LnNvdXJjZS5fZHJhZ1JlZi5yZXNldCgpKX0pLGhlKCksZGUoMiwic3BhbiIsMyksT2UoMyksaGUoKSxXdCg0LCJkaXYiLDQsMSl9MiZhJiYoaHIoImFyaWEtbGFiZWwiLGQuY29tbW9uU3RyaW5nLmtl'@; put 'eXMuY29sdW1uU2VwYXJhdG9yQXJpYUxhYmVsKSgiYXJpYS1kZXNjcmliZWRieSIsZC5kZXNjcmlwdGlvbklkKSxmZSgyKSxocigiaWQiLGQuZGVzY3JpcHRpb25JZCksZmUoKSxMcigiICIsZC5jb21tb25TdHJpbmcua2V5cy5jb2x1bW5TZXBhcmF0b3JEZXNjcmlwdGlvbiwiICIpKX0sZGVw'@; put 'ZW5kZW5jaWVzOltZWmVdLGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLFI3PSgoKT0+e2NsYXNzIGMgZXh0ZW5kcyBzT3tjb25zdHJ1Y3RvcihhLGQsaCxmLHYsTSl7c3VwZXIoaCksdGhpcy5lbD1hLHRoaXMuX3NvcnQ9ZCx0aGlzLnZjcj1mLHRoaXMuZGV0YWlsU2VydmljZT12LHRoaXMuY2hh'@; put 'bmdlRGV0ZWN0b3JSZWY9TSx0aGlzLnNvcnRPcmRlckNoYW5nZT1uZXcgS3IsdGhpcy5maWx0ZXJWYWx1ZUNoYW5nZT1uZXcgS3IsdGhpcy5jdXN0b21GaWx0ZXI9ITEsdGhpcy5fY29sVHlwZT0ic3RyaW5nIix0aGlzLl9zb3J0T3JkZXI9VGguVU5TT1JURUQsdGhpcy5zdWJzY3JpcHRpb25z'@; put 'PVtdLHRoaXMuX3Nob3dTZXBhcmF0b3I9ITAsdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5saXN0ZW5Gb3JTb3J0aW5nQ2hhbmdlcygpKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmxpc3RlbkZvckRldGFpbFBhbmVDaGFuZ2VzKCkpfWdldCBpc0hpZGRlbigpe3JldHVybiB0'@; put 'aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKGVFKX1nZXQgc2hvd1NlcGFyYXRvcigpe3JldHVybiB0aGlzLl9zaG93U2VwYXJhdG9yfXNldCBzaG93U2VwYXJhdG9yKGEpe3RoaXMuX3Nob3dTZXBhcmF0b3I9YSx0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JD'@; put 'aGVjaygpfWdldCBjb2xUeXBlKCl7cmV0dXJuIHRoaXMuX2NvbFR5cGV9c2V0IGNvbFR5cGUoYSl7dGhpcy5fY29sVHlwZT1hfWdldCBmaWVsZCgpe3JldHVybiB0aGlzLl9maWVsZH1zZXQgZmllbGQoYSl7InN0cmluZyI9PXR5cGVvZiBhJiYodGhpcy5fZmllbGQ9YSx0aGlzLl9zb3J0Qnl8'@; put 'fCh0aGlzLl9zb3J0Qnk9bmV3IHVPKGEpKSl9Z2V0IHNvcnRCeSgpe3JldHVybiB0aGlzLl9zb3J0Qnl9c2V0IHNvcnRCeShhKXsic3RyaW5nIj09dHlwZW9mIGE/dGhpcy5fc29ydEJ5PW5ldyB1TyhhKTphP3RoaXMuX3NvcnRCeT1hOnRoaXMuZmllbGQ/dGhpcy5fc29ydEJ5PW5ldyB1Tyh0'@; put 'aGlzLmZpZWxkKTpkZWxldGUgdGhpcy5fc29ydEJ5fWdldCBzb3J0T3JkZXIoKXtyZXR1cm4gdGhpcy5fc29ydE9yZGVyfXNldCBzb3J0T3JkZXIoYSl7aWYoISh0eXBlb2YgYT4idSIpJiZ0aGlzLl9zb3J0T3JkZXIhPT1hKXN3aXRjaChhKXtjYXNlIFRoLkFTQzp0aGlzLnNvcnQoITEpO2Jy'@; put 'ZWFrO2Nhc2UgVGguREVTQzp0aGlzLnNvcnQoITApO2JyZWFrO2RlZmF1bHQ6dGhpcy5fc29ydC5jbGVhcigpfX1zZXQgdXBkYXRlRmlsdGVyVmFsdWUoYSl7dGhpcy5maWx0ZXI/dGhpcy5maWx0ZXIgaW5zdGFuY2VvZiBBNz8oKCFhfHwic3RyaW5nIiE9dHlwZW9mIGEpJiYoYT0iIiksYSE9'@; put 'PXRoaXMuZmlsdGVyLnZhbHVlJiYodGhpcy5maWx0ZXIudmFsdWU9YSkpOnRoaXMuZmlsdGVyIGluc3RhbmNlb2YgVDcmJigoIWF8fCEoYSBpbnN0YW5jZW9mIEFycmF5KSkmJihhPVtudWxsLG51bGxdKSwyPT09YS5sZW5ndGgmJihhWzBdIT09dGhpcy5maWx0ZXIudmFsdWVbMF18fGFbMV0h'@; put 'PT10aGlzLmZpbHRlci52YWx1ZVsxXSkmJih0aGlzLmZpbHRlci52YWx1ZT1hKSk6dGhpcy5pbml0RmlsdGVyVmFsdWU9YX1zZXQgcHJvamVjdGVkRmlsdGVyKGEpe2EmJih0aGlzLmRlbGV0ZUZpbHRlcigpLHRoaXMuY3VzdG9tRmlsdGVyPSEwKX1nZXQgc29ydGFibGUoKXtyZXR1cm4hIXRo'@; put 'aXMuX3NvcnRCeX1nZXQgYXJpYVNvcnQoKXtzd2l0Y2godGhpcy5fc29ydE9yZGVyKXtjYXNlIFRoLkFTQzpyZXR1cm4iYXNjZW5kaW5nIjtjYXNlIFRoLkRFU0M6cmV0dXJuImRlc2NlbmRpbmciO2RlZmF1bHQ6cmV0dXJuIm5vbmUifX1nZXQgc29ydERpcmVjdGlvbigpe3JldHVybiB0aGlz'@; put 'Ll9zb3J0RGlyZWN0aW9ufWdldCBmaWx0ZXJWYWx1ZSgpe3JldHVybiB0aGlzLmZpbHRlciBpbnN0YW5jZW9mIEE3fHx0aGlzLmZpbHRlciBpbnN0YW5jZW9mIFQ3P3RoaXMuZmlsdGVyLnZhbHVlOm51bGx9c2V0IGZpbHRlclZhbHVlKGEpeyh0aGlzLmZpbHRlciBpbnN0YW5jZW9mIEE3fHx0'@; put 'aGlzLmZpbHRlciBpbnN0YW5jZW9mIFQ3KSYmKHRoaXMudXBkYXRlRmlsdGVyVmFsdWU9YSx0aGlzLmZpbHRlclZhbHVlQ2hhbmdlLmVtaXQodGhpcy5maWx0ZXIudmFsdWUpKX1nZXQgX3ZpZXcoKXtyZXR1cm4gdGhpcy53cmFwcGVkSW5qZWN0b3IuZ2V0KGdHLHRoaXMudmNyKS5jb2x1bW5W'@; put 'aWV3fW5nT25Jbml0KCl7dGhpcy53cmFwcGVkSW5qZWN0b3I9bmV3IFhMKGdHLHRoaXMudmNyKX1uZ09uQ2hhbmdlcyhhKXthLmNvbFR5cGUmJmEuY29sVHlwZS5jdXJyZW50VmFsdWUmJmEuY29sVHlwZS5jdXJyZW50VmFsdWUhPT1hLmNvbFR5cGUucHJldmlvdXNWYWx1ZSYmIXRoaXMuY3Vz'@; put 'dG9tRmlsdGVyJiYhdGhpcy5maWx0ZXImJnRoaXMuY29sVHlwZSYmdGhpcy5maWVsZCYmdGhpcy5zZXR1cERlZmF1bHRGaWx0ZXIodGhpcy5maWVsZCx0aGlzLmNvbFR5cGUpLGEuZmllbGQmJmEuZmllbGQuY3VycmVudFZhbHVlJiZhLmZpZWxkLmN1cnJlbnRWYWx1ZSE9PWEuZmllbGQucHJl'@; put 'dmlvdXNWYWx1ZSYmIXRoaXMuY3VzdG9tRmlsdGVyJiZ0aGlzLmNvbFR5cGUmJnRoaXMuc2V0dXBEZWZhdWx0RmlsdGVyKHRoaXMuZmllbGQsdGhpcy5jb2xUeXBlKX1uZ09uRGVzdHJveSgpe3N1cGVyLm5nT25EZXN0cm95KCksdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goYT0+YS51bnN1'@; put 'YnNjcmliZSgpKX1zb3J0KGEpe3RoaXMuc29ydGFibGUmJih0aGlzLl9zb3J0LnRvZ2dsZSh0aGlzLl9zb3J0QnksYSksdGhpcy5fc29ydE9yZGVyPXRoaXMuX3NvcnQucmV2ZXJzZT9UaC5ERVNDOlRoLkFTQyx0aGlzLl9zb3J0RGlyZWN0aW9uPXRoaXMuX3NvcnRPcmRlcj09PVRoLkRFU0M/'@; put 'ImRvd24iOiJ1cCIsdGhpcy5zb3J0T3JkZXJDaGFuZ2UuZW1pdCh0aGlzLl9zb3J0T3JkZXIpKX1saXN0ZW5Gb3JEZXRhaWxQYW5lQ2hhbmdlcygpe3JldHVybiB0aGlzLmRldGFpbFNlcnZpY2Uuc3RhdGVDaGFuZ2Uuc3Vic2NyaWJlKGE9Pnt0aGlzLnNob3dTZXBhcmF0b3IhPT0hYSYmKHRo'@; put 'aXMuc2hvd1NlcGFyYXRvcj0hYSl9KX1saXN0ZW5Gb3JTb3J0aW5nQ2hhbmdlcygpe3JldHVybiB0aGlzLl9zb3J0LmNoYW5nZS5zdWJzY3JpYmUoYT0+e3RoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCksdGhpcy5zb3J0T3JkZXIhPT1UaC5VTlNPUlRFRCYmYS5jb21wYXJh'@; put 'dG9yIT09dGhpcy5fc29ydEJ5JiYodGhpcy5fc29ydE9yZGVyPVRoLlVOU09SVEVELHRoaXMuc29ydE9yZGVyQ2hhbmdlLmVtaXQodGhpcy5fc29ydE9yZGVyKSx0aGlzLl9zb3J0RGlyZWN0aW9uPW51bGwpfSl9c2V0dXBEZWZhdWx0RmlsdGVyKGEsZCl7Im51bWJlciI9PT1kP3RoaXMuc2V0'@; put 'RmlsdGVyKG5ldyBUNyhuZXcgbE8oYSkpKToic3RyaW5nIj09PWQmJnRoaXMuc2V0RmlsdGVyKG5ldyBBNyhuZXcgY08oYSkpKSx0aGlzLmZpbHRlciYmdGhpcy5pbml0RmlsdGVyVmFsdWUmJih0aGlzLnVwZGF0ZUZpbHRlclZhbHVlPXRoaXMuaW5pdEZpbHRlclZhbHVlLGRlbGV0ZSB0aGlz'@; put 'LmluaXRGaWx0ZXJWYWx1ZSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKCRlKFFpKSwkZShkTyksJGUoY2cpLCRlKFRzKSwkZSh0MyksJGUoeG8pKX0sYy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLWRnLWNvbHVtbiJdXSxj'@; put 'b250ZW50UXVlcmllczpmdW5jdGlvbihhLGQsaCl7aWYoMSZhJiZhcyhoLGlPLDUpLDImYSl7bGV0IGY7eWkoZj1iaSgpKSYmKGQucHJvamVjdGVkRmlsdGVyPWYuZmlyc3QpfX0saG9zdEF0dHJzOlsicm9sZSIsImNvbHVtbmhlYWRlciJdLGhvc3RWYXJzOjMsaG9zdEJpbmRpbmdzOmZ1bmN0'@; put 'aW9uKGEsZCl7MiZhJiYoaHIoImFyaWEtc29ydCIsZC5hcmlhU29ydCksVHIoImRhdGFncmlkLWNvbHVtbiIsITApKX0saW5wdXRzOntmaWx0ZXJTdHJpbmdQbGFjZWhvbGRlcjpbVm4uTm9uZSwiY2xyRmlsdGVyU3RyaW5nUGxhY2Vob2xkZXIiLCJmaWx0ZXJTdHJpbmdQbGFjZWhvbGRlciJd'@; put 'LGZpbHRlck51bWJlck1heFBsYWNlaG9sZGVyOltWbi5Ob25lLCJjbHJGaWx0ZXJOdW1iZXJNYXhQbGFjZWhvbGRlciIsImZpbHRlck51bWJlck1heFBsYWNlaG9sZGVyIl0sZmlsdGVyTnVtYmVyTWluUGxhY2Vob2xkZXI6W1ZuLk5vbmUsImNsckZpbHRlck51bWJlck1pblBsYWNlaG9sZGVy'@; put 'IiwiZmlsdGVyTnVtYmVyTWluUGxhY2Vob2xkZXIiXSxjb2xUeXBlOltWbi5Ob25lLCJjbHJEZ0NvbFR5cGUiLCJjb2xUeXBlIl0sZmllbGQ6W1ZuLk5vbmUsImNsckRnRmllbGQiLCJmaWVsZCJdLHNvcnRCeTpbVm4uTm9uZSwiY2xyRGdTb3J0QnkiLCJzb3J0QnkiXSxzb3J0T3JkZXI6W1Zu'@; put 'Lk5vbmUsImNsckRnU29ydE9yZGVyIiwic29ydE9yZGVyIl0sdXBkYXRlRmlsdGVyVmFsdWU6W1ZuLk5vbmUsImNsckZpbHRlclZhbHVlIiwidXBkYXRlRmlsdGVyVmFsdWUiXX0sb3V0cHV0czp7c29ydE9yZGVyQ2hhbmdlOiJjbHJEZ1NvcnRPcmRlckNoYW5nZSIsZmlsdGVyVmFsdWVDaGFu'@; put 'Z2U6ImNsckZpbHRlclZhbHVlQ2hhbmdlIn0sZmVhdHVyZXM6W3lkKFthZ10pLENhLGJsXSxuZ0NvbnRlbnRTZWxlY3RvcnM6b0JlLGRlY2xzOjksdmFyczo1LGNvbnN0czpbWyJjb2x1bW5UaXRsZSIsIiJdLFsxLCJkYXRhZ3JpZC1jb2x1bW4tZmxleCJdLFsiY2xhc3MiLCJkYXRhZ3JpZC1j'@; put 'b2x1bW4tdGl0bGUiLCJ0eXBlIiwiYnV0dG9uIiwzLCJjbGljayIsNCwibmdJZiJdLFszLCJjbHJGaWx0ZXJQbGFjZWhvbGRlciIsImNsckRnU3RyaW5nRmlsdGVyIiwiY2xyRmlsdGVyVmFsdWUiLCJjbHJGaWx0ZXJWYWx1ZUNoYW5nZSIsNCwibmdJZiJdLFszLCJjbHJGaWx0ZXJNYXhQbGFj'@; put 'ZWhvbGRlciIsImNsckZpbHRlck1pblBsYWNlaG9sZGVyIiwiY2xyRGdOdW1lcmljRmlsdGVyIiwiY2xyRmlsdGVyVmFsdWUiLCJjbHJGaWx0ZXJWYWx1ZUNoYW5nZSIsNCwibmdJZiJdLFsiY2xhc3MiLCJkYXRhZ3JpZC1jb2x1bW4tdGl0bGUiLDQsIm5nSWYiXSxbNCwibmdJZiJdLFsidHlw'@; put 'ZSIsImJ1dHRvbiIsMSwiZGF0YWdyaWQtY29sdW1uLXRpdGxlIiwzLCJjbGljayJdLFs0LCJuZ1RlbXBsYXRlT3V0bGV0Il0sWyJzaGFwZSIsImFycm93IiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwiY2xhc3MiLCJzb3J0LWljb24iLDQsIm5nSWYiXSxbInNoYXBlIiwiYXJyb3ciLCJhcmlhLWhp'@; put 'ZGRlbiIsInRydWUiLDEsInNvcnQtaWNvbiJdLFszLCJjbHJGaWx0ZXJWYWx1ZUNoYW5nZSIsImNsckZpbHRlclBsYWNlaG9sZGVyIiwiY2xyRGdTdHJpbmdGaWx0ZXIiLCJjbHJGaWx0ZXJWYWx1ZSJdLFszLCJjbHJGaWx0ZXJWYWx1ZUNoYW5nZSIsImNsckZpbHRlck1heFBsYWNlaG9sZGVy'@; put 'IiwiY2xyRmlsdGVyTWluUGxhY2Vob2xkZXIiLCJjbHJEZ051bWVyaWNGaWx0ZXIiLCJjbHJGaWx0ZXJWYWx1ZSJdLFsxLCJkYXRhZ3JpZC1jb2x1bW4tdGl0bGUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihzYShzQmUpLGRlKDAsImRpdiIsMSksZ3QoMSx1QmUsMywyLCJidXR0'@; put 'b24iLDIpLFdyKDIpLGd0KDMsZEJlLDEsMywiY2xyLWRnLXN0cmluZy1maWx0ZXIiLDMpKDQsaEJlLDEsNCwiY2xyLWRnLW51bWVyaWMtZmlsdGVyIiw0KSg1LGZCZSwxLDAsIm5nLXRlbXBsYXRlIixudWxsLDAsZ2MpKDcsZ0JlLDIsMSwic3BhbiIsNSkoOCxtQmUsMSwwLCJjbHItZGctY29s'@; put 'dW1uLXNlcGFyYXRvciIsNiksaGUoKSksMiZhJiYoZmUoKSxNZSgibmdJZiIsZC5zb3J0YWJsZSksZmUoMiksTWUoIm5nSWYiLGQuZmllbGQmJiFkLmN1c3RvbUZpbHRlciYmInN0cmluZyI9PWQuY29sVHlwZSksZmUoKSxNZSgibmdJZiIsZC5maWVsZCYmIWQuY3VzdG9tRmlsdGVyJiYibnVt'@; put 'YmVyIj09ZC5jb2xUeXBlKSxmZSgzKSxNZSgibmdJZiIsIWQuc29ydGFibGUpLGZlKCksTWUoIm5nSWYiLGQuc2hvd1NlcGFyYXRvcikpfSxkZXBlbmRlbmNpZXM6W2JhLEIxLGVvLEJkZSxIZGUsV2JdLGVuY2Fwc3VsYXRpb246MixjaGFuZ2VEZXRlY3Rpb246MH0pLGN9KSgpLHVnPSgoKT0+'@; put 'e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgpe3RoaXMuX2ZpbHRlcnM9YSx0aGlzLl9zb3J0PWQsdGhpcy5fcGFnZT1oLHRoaXMubG9hZGluZz0hMSx0aGlzLl9zbWFydD0hMSx0aGlzLl9kaXNwbGF5ZWQ9W10sdGhpcy5fY2hhbmdlPW5ldyBHbix0aGlzLl9hbGxDaGFuZ2VzPW5ldyBHbix0'@; put 'aGlzLnRyYWNrQnk9Zj0+Zn1nZXQgc21hcnQoKXtyZXR1cm4gdGhpcy5fc21hcnR9Z2V0IGFsbCgpe3JldHVybiB0aGlzLl9hbGx9c2V0IGFsbChhKXt0aGlzLl9hbGw9YSx0aGlzLmVtaXRBbGxDaGFuZ2VzKGEpLHRoaXMuc21hcnQ/dGhpcy5fZmlsdGVySXRlbXMoKToodGhpcy5fZGlzcGxh'@; put 'eWVkPWEsdGhpcy5lbWl0Q2hhbmdlKCkpfWdldCBkaXNwbGF5ZWQoKXtyZXR1cm4gdGhpcy5fZGlzcGxheWVkfWdldCBjaGFuZ2UoKXtyZXR1cm4gdGhpcy5fY2hhbmdlLmFzT2JzZXJ2YWJsZSgpfWdldCBhbGxDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuX2FsbENoYW5nZXMuYXNPYnNlcnZhYmxl'@; put 'KCl9Z2V0IHVuaW5pdGlhbGl6ZWQoKXtyZXR1cm4hdGhpcy5fYWxsfWRlc3Ryb3koKXt0aGlzLl9maWx0ZXJzU3ViJiZ0aGlzLl9maWx0ZXJzU3ViLnVuc3Vic2NyaWJlKCksdGhpcy5fc29ydFN1YiYmdGhpcy5fc29ydFN1Yi51bnN1YnNjcmliZSgpLHRoaXMuX3BhZ2VTdWImJnRoaXMuX3Bh'@; put 'Z2VTdWIudW5zdWJzY3JpYmUoKX1zbWFydGVuRG93bigpe3RoaXMuX3NtYXJ0PSExLHRoaXMuZGVzdHJveSgpfXNtYXJ0ZW5VcCgpe3RoaXMuX3NtYXJ0PSEwLHRoaXMuX2ZpbHRlcnNTdWI9dGhpcy5fZmlsdGVycy5jaGFuZ2Uuc3Vic2NyaWJlKCgpPT50aGlzLl9maWx0ZXJJdGVtcygpKSx0'@; put 'aGlzLl9zb3J0U3ViPXRoaXMuX3NvcnQuY2hhbmdlLnN1YnNjcmliZSgoKT0+e3RoaXMuX3NvcnQuY29tcGFyYXRvcj90aGlzLl9zb3J0SXRlbXMoKTp0aGlzLl9maWx0ZXJJdGVtcygpfSksdGhpcy5fcGFnZVN1Yj10aGlzLl9wYWdlLmNoYW5nZS5zdWJzY3JpYmUoKCk9PnRoaXMuX2NoYW5n'@; put 'ZVBhZ2UoKSl9cmVmcmVzaCgpe3RoaXMuc21hcnQmJnRoaXMuX2ZpbHRlckl0ZW1zKCl9ZW1pdENoYW5nZSgpe3RoaXMuX2NoYW5nZS5uZXh0KHRoaXMuZGlzcGxheWVkKX1lbWl0QWxsQ2hhbmdlcyhhKXt0aGlzLl9hbGxDaGFuZ2VzLm5leHQoYSl9X2ZpbHRlckl0ZW1zKCl7dGhpcy51bmlu'@; put 'aXRpYWxpemVkfHwodGhpcy5fZmlsdGVyZWQ9dGhpcy5fZmlsdGVycy5oYXNBY3RpdmVGaWx0ZXJzKCk/dGhpcy5fYWxsLmZpbHRlcihhPT50aGlzLl9maWx0ZXJzLmFjY2VwdHMoYSkpOnRoaXMuX2FsbC5zbGljZSgpLHRoaXMuX3BhZ2UudG90YWxJdGVtcz10aGlzLl9maWx0ZXJlZC5sZW5n'@; put 'dGgsdGhpcy5fc29ydEl0ZW1zKCkpfV9zb3J0SXRlbXMoKXt0aGlzLnVuaW5pdGlhbGl6ZWR8fCh0aGlzLl9zb3J0LmNvbXBhcmF0b3ImJnRoaXMuX2ZpbHRlcmVkLnNvcnQoKGEsZCk9PnRoaXMuX3NvcnQuY29tcGFyZShhLGQpKSx0aGlzLl9jaGFuZ2VQYWdlKCkpfV9jaGFuZ2VQYWdlKCl7'@; put 'dGhpcy51bmluaXRpYWxpemVkfHx0aGlzLl9wYWdlLmFjdGl2YXRlZCYmMD09PXRoaXMuX3BhZ2Uuc2l6ZXx8KHRoaXMuX2Rpc3BsYXllZD10aGlzLl9wYWdlLnNpemU+MD90aGlzLl9maWx0ZXJlZC5zbGljZSh0aGlzLl9wYWdlLmZpcnN0SXRlbSx0aGlzLl9wYWdlLmxhc3RJdGVtKzEpOnRo'@; put 'aXMuX2ZpbHRlcmVkLHRoaXMuZW1pdENoYW5nZSgpKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoQ3IoY2cpLENyKGRPKSxDcih3bSkpfSxjLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpLEtiPSgoKT0+'@; put 'e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZil7dGhpcy50ZW1wbGF0ZT1hLHRoaXMuZGlmZmVycz1kLHRoaXMuaXRlbXM9aCx0aGlzLmRpZmZlcj1udWxsLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSxoLnNtYXJ0ZW5VcCgpLHRoaXMuaXRlcmFibGVQcm94eT1uZXcgUXMoZixhLGQpLHRoaXMu'@; put 'c3Vic2NyaXB0aW9ucy5wdXNoKGguY2hhbmdlLnN1YnNjcmliZSh2PT57dGhpcy5pdGVyYWJsZVByb3h5Lm5nRm9yT2Y9dix0aGlzLml0ZXJhYmxlUHJveHkubmdEb0NoZWNrKCl9KSl9c2V0IHJhd0l0ZW1zKGEpe3RoaXMuX3Jhd0l0ZW1zPWF8fFtdfXNldCB0cmFja0J5KGEpe3RoaXMuaXRl'@; put 'cmFibGVQcm94eS5uZ0ZvclRyYWNrQnk9YX1zdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZChhLGQpe3JldHVybiEwfW5nRG9DaGVjaygpe3RoaXMuZGlmZmVyfHwodGhpcy5kaWZmZXI9dGhpcy5kaWZmZXJzLmZpbmQodGhpcy5fcmF3SXRlbXMpLmNyZWF0ZSh0aGlzLml0ZXJhYmxlUHJv'@; put 'eHkubmdGb3JUcmFja0J5KSksdGhpcy5kaWZmZXImJnRoaXMuZGlmZmVyLmRpZmYodGhpcy5fcmF3SXRlbXMpJiYodGhpcy5pdGVtcy5hbGw9dGhpcy5fcmF3SXRlbXMpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goYT0+YS51bnN1YnNjcmliZSgpKX19cmV0dXJu'@; put 'IGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoJGUod2wpLCRlKHE1KSwkZSh1ZyksJGUoVHMpKX0sYy5cdTAyNzVkaXI9RXIoe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwiY2xyRGdJdGVtcyIsIiIsImNsckRnSXRlbXNPZiIsIiJdXSxpbnB1dHM6e3Jhd0l0ZW1zOltW'@; put 'bi5Ob25lLCJjbHJEZ0l0ZW1zT2YiLCJyYXdJdGVtcyJdLHRyYWNrQnk6W1ZuLk5vbmUsImNsckRnSXRlbXNUcmFja0J5IiwidHJhY2tCeSJdfX0pLGN9KSgpLHlHPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5pdGVtcz1hfWdldCBlbXB0eURhdGFncmlkKCl7cmV0dXJuISh0'@; put 'aGlzLml0ZW1zLmxvYWRpbmd8fHRoaXMuaXRlbXMuZGlzcGxheWVkJiYwIT09dGhpcy5pdGVtcy5kaXNwbGF5ZWQubGVuZ3RoKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoJGUodWcpKX0sYy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6'@; put 'W1siY2xyLWRnLXBsYWNlaG9sZGVyIl1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZUcigiZGF0YWdyaWQtcGxhY2Vob2xkZXItY29udGFpbmVyIiwhMCl9LG5nQ29udGVudFNlbGVjdG9yczp5cyxkZWNsczo0LHZhcnM6NCxjb25zdHM6W1sxLCJkYXRhZ3Jp'@; put 'ZC1wbGFjZWhvbGRlciJdLFsiY2xhc3MiLCJkYXRhZ3JpZC1wbGFjZWhvbGRlci1pbWFnZSIsNCwibmdJZiJdLFsxLCJkYXRhZ3JpZC1wbGFjZWhvbGRlci1jb250ZW50Il0sWzQsIm5nSWYiXSxbMSwiZGF0YWdyaWQtcGxhY2Vob2xkZXItaW1hZ2UiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxk'@; put 'KXsxJmEmJihzYSgpLGRlKDAsImRpdiIsMCksZ3QoMSx2QmUsMSwwLCJkaXYiLDEpLGRlKDIsInNwYW4iLDIpLGd0KDMseUJlLDEsMCwibmctY29udGVudCIsMyksaGUoKSgpKSwyJmEmJihUcigiZGF0YWdyaWQtZW1wdHkiLGQuZW1wdHlEYXRhZ3JpZCksZmUoKSxNZSgibmdJZiIsZC5lbXB0'@; put 'eURhdGFncmlkKSxmZSgyKSxNZSgibmdJZiIsZC5lbXB0eURhdGFncmlkKSl9LGRlcGVuZGVuY2llczpbYmFdLGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLGJHPSgoKT0+e2NsYXNzIGN7bmdBZnRlclZpZXdJbml0KCl7dGhpcy5jZWxsVmlldz10aGlzLnRlbXBsYXRlUmVmLmNyZWF0ZUVtYmVk'@; put 'ZGVkVmlldyhudWxsKX1uZ09uRGVzdHJveSgpe3RoaXMuY2VsbFZpZXcuZGVzdHJveSgpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1siZGctd3JhcHBlZC1jZWxsIl1dLHZpZXdRdWVy'@; put 'eTpmdW5jdGlvbihhLGQpe2lmKDEmYSYmRmEoYkJlLDUpLDImYSl7bGV0IGg7eWkoaD1iaSgpKSYmKGQudGVtcGxhdGVSZWY9aC5maXJzdCl9fSxuZ0NvbnRlbnRTZWxlY3RvcnM6eXMsZGVjbHM6Mix2YXJzOjAsY29uc3RzOltbImNlbGxQb3J0YWwiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24o'@; put 'YSxkKXsxJmEmJihzYSgpLGd0KDAsX0JlLDEsMCwibmctdGVtcGxhdGUiLG51bGwsMCxnYykpfSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxyMz0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMudmNyPWF9Z2V0IF92aWV3KCl7cmV0dXJuIHRoaXMud3JhcHBlZEluamVjdG9yLmdl'@; put 'dChiRyx0aGlzLnZjcikuY2VsbFZpZXd9bmdPbkluaXQoKXt0aGlzLndyYXBwZWRJbmplY3Rvcj1uZXcgWEwoYkcsdGhpcy52Y3IpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZShUcykpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9y'@; put 'czpbWyJjbHItZGctY2VsbCJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihhLGQsaCl7aWYoMSZhJiZhcyhoLEtMLDQpLDImYSl7bGV0IGY7eWkoZj1iaSgpKSYmKGQuc2lnbnBvc3Q9Zil9fSxob3N0QXR0cnM6WyJyb2xlIiwiZ3JpZGNlbGwiXSxob3N0VmFyczo0LGhvc3RCaW5kaW5nczpm'@; put 'dW5jdGlvbihhLGQpezImYSYmVHIoImRhdGFncmlkLWNlbGwiLCEwKSgiZGF0YWdyaWQtc2lnbnBvc3QtdHJpZ2dlciIsZC5zaWducG9zdC5sZW5ndGg+MCl9LG5nQ29udGVudFNlbGVjdG9yczp5cyxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKHNhKCksV3Io'@; put 'MCkpfSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxqZGU9MCx0RT0oKCk9PntjbGFzcyBjIGV4dGVuZHMgVzF7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuZXhwYW5kYWJsZUlkPSIiLHRoaXMuX3JlcGxhY2U9bmV3IEpyKCExKSx0aGlzLl9hbmltYXRlPW5ldyBHbixqZGUrKyx0aGlzLmV4'@; put 'cGFuZGFibGVJZD0iY2xyLWRnLWV4cGFuZGFibGUtcm93LSIramRlfWdldCBleHBhbmRlZCgpe3JldHVybiB0aGlzLl9leHBhbmRlZH1zZXQgZXhwYW5kZWQoYSl7KGE9ISFhKSE9PXRoaXMuX2V4cGFuZGVkJiYodGhpcy5fZXhwYW5kZWQ9YSx0aGlzLl9hbmltYXRlLm5leHQoKSx0aGlzLl9l'@; put 'eHBhbmRDaGFuZ2UubmV4dChhKSl9Z2V0IHJlcGxhY2UoKXtyZXR1cm4gdGhpcy5fcmVwbGFjZS5hc09ic2VydmFibGUoKX1nZXQgYW5pbWF0ZSgpe3JldHVybiB0aGlzLl9hbmltYXRlLmFzT2JzZXJ2YWJsZSgpfWxvYWRpbmdTdGF0ZUNoYW5nZShhKXtzdXBlci5sb2FkaW5nU3RhdGVDaGFu'@; put 'Z2UoYSksYSE9PVoxLkxPQURJTkcmJnRoaXMuX2FuaW1hdGUubmV4dCgpfXNldFJlcGxhY2UoYSl7dGhpcy5fcmVwbGFjZS5uZXh0KGEpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5c'@; put 'dTAyNzVmYWN9KSxjfSkoKTt2YXIgWGI9ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5ESVNQTEFZPTBdPSJESVNQTEFZIixjW2MuQ0FMQ1VMQVRFPTFdPSJDQUxDVUxBVEUiLGN9KFhifHx7fSksZGw9ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5Ob25lPTBdPSJOb25lIixjW2MuU2luZ2xlPTFdPSJT'@; put 'aW5nbGUiLGNbYy5NdWx0aT0yXT0iTXVsdGkiLGN9KGRsfHx7fSk7bGV0IF9HPSgoKT0+e2NsYXNzIGN7bmdBZnRlclZpZXdJbml0KCl7dGhpcy5yb3dWaWV3PXRoaXMudGVtcGxhdGVSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KG51bGwpfW5nT25EZXN0cm95KCl7dGhpcy5yb3dWaWV3LmRlc3Ry'@; put 'b3koKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImRnLXdyYXBwZWQtcm93Il1dLHZpZXdRdWVyeTpmdW5jdGlvbihhLGQpe2lmKDEmYSYmRmEod0JlLDUpLDImYSl7bGV0IGg7eWko'@; put 'aD1iaSgpKSYmKGQudGVtcGxhdGVSZWY9aC5maXJzdCl9fSxuZ0NvbnRlbnRTZWxlY3RvcnM6eXMsZGVjbHM6Mix2YXJzOjAsY29uc3RzOltbInJvd1BvcnRhbCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKHNhKCksZ3QoMCxDQmUsMSwwLCJuZy10ZW1wbGF0ZSIsbnVsbCww'@; put 'LGdjKSl9LGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLGVXZT0wLHFiPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkKXt0aGlzLl9pdGVtcz1hLHRoaXMucHJlc2VydmVTZWxlY3Rpb249ITEsdGhpcy5zaGlmdFByZXNzZWQ9ITEsdGhpcy5yb3dTZWxlY3Rpb25Nb2RlPSExLHRoaXMucHJl'@; put 'dlNlbGVjdGlvblJlZnM9W10sdGhpcy5sb2NrZWRSZWZzPVtdLHRoaXMudmFsdWVDb2xsZWN0b3I9bmV3IEduLHRoaXMuX3NlbGVjdGlvblR5cGU9ZGwuTm9uZSx0aGlzLl9jaGFuZ2U9bmV3IEduLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLmlkPSJjbHItZGctc2VsZWN0aW9uIitlV2Ur'@; put 'Kyx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChkLmNoYW5nZS5zdWJzY3JpYmUoKCk9PnshdGhpcy5fc2VsZWN0YWJsZXx8dGhpcy5wcmVzZXJ2ZVNlbGVjdGlvbnx8dGhpcy5jbGVhclNlbGVjdGlvbigpfSkpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGEuYWxsQ2hhbmdlcy5zdWJzY3JpYmUo'@; put 'aD0+e2NvbnN0IGY9W107c3dpdGNoKHRoaXMuc2VsZWN0aW9uVHlwZSl7Y2FzZSBkbC5Ob25lOmJyZWFrO2Nhc2UgZGwuU2luZ2xlOntsZXQgdixNPSExO3RoaXMuY3VycmVudFNpbmdsZSYmIXRoaXMucHJldlNpbmdsZVNlbGVjdGlvblJlZiYmKHRoaXMucHJldlNpbmdsZVNlbGVjdGlvblJl'@; put 'Zj1hLnRyYWNrQnkodGhpcy5jdXJyZW50U2luZ2xlKSksaC5mb3JFYWNoKEk9Pntjb25zdCBHPWEudHJhY2tCeShJKTt0aGlzLnByZXZTaW5nbGVTZWxlY3Rpb25SZWY9PT1HJiYodj1JLE09ITApLHRoaXMubG9ja2VkUmVmcy5pbmRleE9mKEcpPi0xJiZmLnB1c2goRyl9KSxhLnNtYXJ0JiYh'@; put 'diYmKE09ITApLHNldFRpbWVvdXQoKCk9PntNJiYodGhpcy5jdXJyZW50U2luZ2xlPXYpfSwwKTticmVha31jYXNlIGRsLk11bHRpOntsZXQgdj10aGlzLmN1cnJlbnQuc2xpY2UoKSxNPSExO3RoaXMuY3VycmVudC5sZW5ndGg+MCYmdGhpcy5wcmV2U2VsZWN0aW9uUmVmcy5sZW5ndGghPT10'@; put 'aGlzLmN1cnJlbnQubGVuZ3RoJiYodGhpcy5wcmV2U2VsZWN0aW9uUmVmcz1bXSx0aGlzLmN1cnJlbnQuZm9yRWFjaChJPT57dGhpcy5wcmV2U2VsZWN0aW9uUmVmcy5wdXNoKGEudHJhY2tCeShJKSl9KSksaC5mb3JFYWNoKEk9Pntjb25zdCBHPWEudHJhY2tCeShJKTt0aGlzLmxvY2tlZFJl'@; put 'ZnMuaW5kZXhPZihHKT4tMSYmZi5wdXNoKEcpfSksdi5sZW5ndGg+MCYmKGguZm9yRWFjaChJPT57Y29uc3QgRz1hLnRyYWNrQnkoSSkscmU9dGhpcy5wcmV2U2VsZWN0aW9uUmVmcy5pbmRleE9mKEcpO3JlPi0xJiYodltyZV09SSxNPSEwKX0pLGEuc21hcnQmJih2PXYuZmlsdGVyKEk9Pmgu'@; put 'aW5kZXhPZihJKT4tMSksdGhpcy5jdXJyZW50Lmxlbmd0aCE9PXYubGVuZ3RoJiYoTT0hMCkpLHNldFRpbWVvdXQoKCk9PntNJiYodGhpcy5jdXJyZW50PXYpfSwwKSk7YnJlYWt9fXRoaXMubG9ja2VkUmVmcz1mfSkpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMudmFsdWVDb2xsZWN0'@; put 'b3IucGlwZSh1bSgwKSkuc3Vic2NyaWJlKCgpPT50aGlzLmVtaXRDaGFuZ2UoKSkpfWdldCBzZWxlY3Rpb25UeXBlKCl7cmV0dXJuIHRoaXMuX3NlbGVjdGlvblR5cGV9c2V0IHNlbGVjdGlvblR5cGUoYSl7YSE9PXRoaXMuc2VsZWN0aW9uVHlwZSYmKHRoaXMuX3NlbGVjdGlvblR5cGU9YSxh'@; put 'PT09ZGwuTm9uZT9kZWxldGUgdGhpcy5jdXJyZW50OnRoaXMudXBkYXRlQ3VycmVudChbXSwhMSkpfWdldCBjdXJyZW50KCl7cmV0dXJuIHRoaXMuX2N1cnJlbnR9c2V0IGN1cnJlbnQoYSl7dGhpcy51cGRhdGVDdXJyZW50KGEsITApfWdldCBjdXJyZW50U2luZ2xlKCl7cmV0dXJuIHRoaXMu'@; put 'X2N1cnJlbnRTaW5nbGV9c2V0IGN1cnJlbnRTaW5nbGUoYSl7YSE9PXRoaXMuX2N1cnJlbnRTaW5nbGUmJih0aGlzLl9jdXJyZW50U2luZ2xlPWEsYSYmKHRoaXMucHJldlNpbmdsZVNlbGVjdGlvblJlZj10aGlzLl9pdGVtcy50cmFja0J5KGEpKSx0aGlzLmVtaXRDaGFuZ2UoKSl9Z2V0IGNo'@; put 'YW5nZSgpe3JldHVybiB0aGlzLl9jaGFuZ2UuYXNPYnNlcnZhYmxlKCl9Z2V0IF9zZWxlY3RhYmxlKCl7cmV0dXJuIHRoaXMuX3NlbGVjdGlvblR5cGU9PT1kbC5NdWx0aXx8dGhpcy5fc2VsZWN0aW9uVHlwZT09PWRsLlNpbmdsZX1jbGVhclNlbGVjdGlvbigpe3RoaXMuX2N1cnJlbnQ9W10s'@; put 'dGhpcy5wcmV2U2VsZWN0aW9uUmVmcz1bXSx0aGlzLnByZXZTaW5nbGVTZWxlY3Rpb25SZWY9bnVsbCx0aGlzLl9jdXJyZW50U2luZ2xlPW51bGwsdGhpcy5lbWl0Q2hhbmdlKCl9ZGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGE9PmEudW5zdWJzY3JpYmUoKSl9dXBkYXRl'@; put 'Q3VycmVudChhLGQpe3RoaXMuX2N1cnJlbnQ9YSxkJiZ0aGlzLnZhbHVlQ29sbGVjdG9yLm5leHQoYSl9aXNTZWxlY3RlZChhKXtyZXR1cm4gdGhpcy5fc2VsZWN0aW9uVHlwZT09PWRsLlNpbmdsZT90aGlzLmN1cnJlbnRTaW5nbGU9PT1hOnRoaXMuX3NlbGVjdGlvblR5cGU9PT1kbC5NdWx0'@; put 'aSYmdGhpcy5jdXJyZW50LmluZGV4T2YoYSk+PTB9c2V0U2VsZWN0ZWQoYSxkKXtjb25zdCBoPXRoaXMuY3VycmVudD90aGlzLmN1cnJlbnQuaW5kZXhPZihhKTotMTtzd2l0Y2godGhpcy5fc2VsZWN0aW9uVHlwZSl7Y2FzZSBkbC5Ob25lOmNhc2UgZGwuU2luZ2xlOmJyZWFrO2Nhc2UgZGwu'@; put 'TXVsdGk6aD49MCYmIWQ/dGhpcy5kZXNlbGVjdEl0ZW0oaCk6aDwwJiZkJiZ0aGlzLnNlbGVjdEl0ZW0oYSl9fWlzQWxsU2VsZWN0ZWQoKXtpZih0aGlzLl9zZWxlY3Rpb25UeXBlIT09ZGwuTXVsdGl8fCF0aGlzLl9pdGVtcy5kaXNwbGF5ZWQpcmV0dXJuITE7Y29uc3QgYT10aGlzLl9pdGVt'@; put 'cy5kaXNwbGF5ZWQuZmlsdGVyKGY9PiExPT09dGhpcy5pc0xvY2tlZChmKSk7cmV0dXJuIShhLmxlbmd0aDwxKSYmYS5maWx0ZXIoZj0+dGhpcy5jdXJyZW50LmluZGV4T2YoZik+LTEpLmxlbmd0aD09PWEubGVuZ3RofWxvY2tJdGVtKGEsZCl7aWYodGhpcy5jYW5JdEJlTG9ja2VkKCkpe2Nv'@; put 'bnN0IGg9dGhpcy5faXRlbXMudHJhY2tCeShhKTshMD09PWQ/dGhpcy5sb2NrZWRSZWZzLnB1c2goaCk6dGhpcy5sb2NrZWRSZWZzPXRoaXMubG9ja2VkUmVmcy5maWx0ZXIoZj0+aCE9PWYpfX1pc0xvY2tlZChhKXtpZih0aGlzLmNhbkl0QmVMb2NrZWQoKSl7Y29uc3QgZD10aGlzLl9pdGVt'@; put 'cy50cmFja0J5KGEpO3JldHVybiB0aGlzLmxvY2tlZFJlZnMuaW5kZXhPZihkKT4tMX1yZXR1cm4hMX10b2dnbGVBbGwoKXt0aGlzLl9zZWxlY3Rpb25UeXBlPT09ZGwuTm9uZXx8dGhpcy5fc2VsZWN0aW9uVHlwZT09PWRsLlNpbmdsZXx8KHRoaXMuaXNBbGxTZWxlY3RlZCgpP3RoaXMuX2l0'@; put 'ZW1zLmRpc3BsYXllZC5mb3JFYWNoKGE9Pntjb25zdCBkPXRoaXMuY3VycmVudC5pbmRleE9mKGEpO2Q+LTEmJiExPT09dGhpcy5pc0xvY2tlZChhKSYmdGhpcy5kZXNlbGVjdEl0ZW0oZCl9KTp0aGlzLl9pdGVtcy5kaXNwbGF5ZWQuZm9yRWFjaChhPT57dGhpcy5jdXJyZW50LmluZGV4T2Yo'@; put 'YSk8MCYmITE9PT10aGlzLmlzTG9ja2VkKGEpJiZ0aGlzLnNlbGVjdEl0ZW0oYSl9KSl9c2VsZWN0SXRlbShhKXt0aGlzLmN1cnJlbnQ9dGhpcy5jdXJyZW50LmNvbmNhdChhKSx0aGlzLnByZXZTZWxlY3Rpb25SZWZzLnB1c2godGhpcy5faXRlbXMudHJhY2tCeShhKSl9ZGVzZWxlY3RJdGVt'@; put 'KGEpe2lmKHRoaXMuY3VycmVudD10aGlzLmN1cnJlbnQuc2xpY2UoMCxhKS5jb25jYXQodGhpcy5jdXJyZW50LnNsaWNlKGErMSkpLGE8dGhpcy5wcmV2U2VsZWN0aW9uUmVmcy5sZW5ndGgpe2NvbnN0IGQ9dGhpcy5wcmV2U2VsZWN0aW9uUmVmcy5zcGxpY2UoYSwxKTt0aGlzLmxvY2tlZFJl'@; put 'ZnM9dGhpcy5sb2NrZWRSZWZzLmZpbHRlcihoPT5oIT09ZFswXSl9fWNhbkl0QmVMb2NrZWQoKXtyZXR1cm4gdGhpcy5fc2VsZWN0aW9uVHlwZSE9PWRsLk5vbmV9ZW1pdENoYW5nZSgpe3RoaXMuX3NlbGVjdGlvblR5cGU9PT1kbC5TaW5nbGU/dGhpcy5fY2hhbmdlLm5leHQodGhpcy5jdXJy'@; put 'ZW50U2luZ2xlKTp0aGlzLl9zZWxlY3Rpb25UeXBlPT09ZGwuTXVsdGkmJnRoaXMuX2NoYW5nZS5uZXh0KHRoaXMuY3VycmVudCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKENyKHVnKSxDcihjZykpfSxjLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMs'@; put 'ZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpLHdHPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5fdmlldz1uZXcgSnIoWGIuRElTUExBWSksdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGEuZmlsdGVyUmVuZGVyU3RlcHMobjMuQ0FMQ1VM'@; put 'QVRFX01PREVfT04pLnN1YnNjcmliZSgoKT0+dGhpcy5fdmlldy5uZXh0KFhiLkNBTENVTEFURSkpKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChhLmZpbHRlclJlbmRlclN0ZXBzKG4zLkNBTENVTEFURV9NT0RFX09GRikuc3Vic2NyaWJlKCgpPT50aGlzLl92aWV3Lm5leHQoWGIuRElTUExB'@; put 'WSkpKX1nZXQgdmlldygpe3JldHVybiB0aGlzLl92aWV3LmFzT2JzZXJ2YWJsZSgpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goYT0+YS51bnN1YnNjcmliZSgpKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoQ3IoSTcp'@; put 'KX0sYy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSxDRz0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMuc2VsZWN0aW9uPWF9b25TZWxlY3Rpb25DZWxsQ2xpY2soYSl7dGhpcy5zZWxlY3Rpb24ucm93U2VsZWN0aW9uTW9kZXx8IkxB'@; put 'QkVMIiE9PWEudGFyZ2V0LnRhZ05hbWUmJiJJTlBVVCIhPT1hLnRhcmdldC50YWdOYW1lJiZhLnRhcmdldC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpPy5jbGljaygpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZShxYikpfSxjLlx1MDI3NWRpcj1F'@; put 'cih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLDgsImRhdGFncmlkLXNlbGVjdCJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsxJmEmJkZ0KCJjbGljayIsZnVuY3Rpb24oZil7cmV0dXJuIGQub25TZWxlY3Rpb25DZWxsQ2xpY2soZil9KX19KSxjfSkoKSx4cD0oKCk9PntjbGFzcyBje2Nv'@; put 'bnN0cnVjdG9yKGEsZCxoKXt0aGlzLmVsPWEsdGhpcy5yZW5kZXJlcj1kLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChoLmZpbHRlclJlbmRlclN0ZXBzKG4zLkNMRUFSX1dJRFRIUykuc3Vic2NyaWJlKCgpPT50aGlzLmNsZWFyV2lkdGgoKSkpfW5nT25E'@; put 'ZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goYT0+YS51bnN1YnNjcmliZSgpKSx0aGlzLnN0YXRlU3Vic2NyaXB0aW9uJiZ0aGlzLnN0YXRlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9cmVzZXRTdGF0ZShhKXt0aGlzLnNldFdpZHRoKGEpLHRoaXMuc2V0SGlkZGVuKGEp'@; put 'fXNldFdpZHRoKGEpe2Euc3RyaWN0V2lkdGg/dGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsJGIpOnRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCRiKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZl'@; put 'RWxlbWVudCwid2lkdGgiLGEud2lkdGgrInB4Iil9c2V0SGlkZGVuKGEpe2EuaGlkZGVuP3RoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LGVFKTp0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCxlRSl9Y2xlYXJXaWR0aCgp'@; put 'e3RoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCRiKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwid2lkdGgiLG51bGwpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZShR'@; put 'aSksJGUoRXMpLCRlKEk3KSl9LGMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1kZy1jZWxsIl1dfSksY30pKCksaE89MCxTbT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYsdixNLEksRyxyZSx1ZSx5ZSxFZSl7dGhpcy5zZWxlY3Rpb249YSx0aGlzLnJv'@; put 'd0FjdGlvblNlcnZpY2U9ZCx0aGlzLmdsb2JhbEV4cGFuZGFibGU9aCx0aGlzLmV4cGFuZD1mLHRoaXMuZGV0YWlsU2VydmljZT12LHRoaXMuZGlzcGxheU1vZGU9TSx0aGlzLnZjcj1JLHRoaXMuY29tbW9uU3RyaW5ncz11ZSx0aGlzLml0ZW1zPXllLHRoaXMuZG9jdW1lbnQ9RWUsdGhpcy5z'@; put 'ZWxlY3RlZENoYW5nZWQ9bmV3IEtyKCExKSx0aGlzLmV4cGFuZGVkQ2hhbmdlPW5ldyBLcighMSksdGhpcy5kZXRhaWxEaXNhYmxlZD0hMSx0aGlzLmRldGFpbEhpZGRlbj0hMSx0aGlzLnNrZWxldG9uTG9hZGluZz0hMSx0aGlzLmRpc3BsYXlDZWxscz0hMSx0aGlzLmV4cGFuZEFuaW1hdGlv'@; put 'blRyaWdnZXI9ITEsdGhpcy5TRUxFQ1RJT05fVFlQRT1kbCx0aGlzLml0ZW1DaGFuZ2VzPW5ldyBNeCgxKSx0aGlzLl9zZWxlY3RlZD0hMSx0aGlzLl9kZXRhaWxPcGVuTGFiZWw9IiIsdGhpcy5fZGV0YWlsQ2xvc2VMYWJlbD0iIix0aGlzLl9yb3dTZWxlY3Rpb25MYWJlbD0iIix0aGlzLnN1'@; put 'YnNjcmlwdGlvbnM9W10sdGhpcy5fc2VsZWN0YWJsZT0hMCxoTysrLHRoaXMuaWQ9ImNsci1kZy1yb3ciK2hPLHRoaXMucmFkaW9JZD0iY2xyLWRnLXJvdy1yZCIraE8sdGhpcy5jaGVja2JveElkPSJjbHItZGctcm93LWNiIitoTyx0aGlzLmV4cGFuZGFibGVJZD1mLmV4cGFuZGFibGVJZCx0'@; put 'aGlzLnN1YnNjcmlwdGlvbnMucHVzaChYOChmLnJlcGxhY2UsZi5leHBhbmRDaGFuZ2UpLnN1YnNjcmliZSgoW0JlLEdlXSk9PntCZSYmR2U/KHRoaXMucmVwbGFjZWQ9ITAsRy5hZGRDbGFzcyhyZS5uYXRpdmVFbGVtZW50LCJkYXRhZ3JpZC1yb3ctcmVwbGFjZWQiKSk6KHRoaXMucmVwbGFj'@; put 'ZWQ9ITEsRy5yZW1vdmVDbGFzcyhyZS5uYXRpdmVFbGVtZW50LCJkYXRhZ3JpZC1yb3ctcmVwbGFjZWQiKSl9KSl9Z2V0IGl0ZW0oKXtyZXR1cm4gdGhpcy5faXRlbX1zZXQgaXRlbShhKXt0aGlzLl9pdGVtPWEsdGhpcy5pdGVtQ2hhbmdlcy5uZXh0KGEpLHRoaXMuY2xyRGdTZWxlY3RhYmxl'@; put 'PXRoaXMuX3NlbGVjdGFibGV9Z2V0IGNsckRnU2VsZWN0YWJsZSgpe3JldHVybiF0aGlzLnNlbGVjdGlvbi5pc0xvY2tlZCh0aGlzLml0ZW0pfXNldCBjbHJEZ1NlbGVjdGFibGUoYSl7dGhpcy5pdGVtJiZ0aGlzLnNlbGVjdGlvbi5sb2NrSXRlbSh0aGlzLml0ZW0sImZhbHNlIj09PWF8fCEx'@; put 'PT09YSksdGhpcy5fc2VsZWN0YWJsZT1hfWdldCBzZWxlY3RlZCgpe3JldHVybiB0aGlzLnNlbGVjdGlvbi5zZWxlY3Rpb25UeXBlPT09ZGwuTm9uZT90aGlzLl9zZWxlY3RlZDp0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkKHRoaXMuaXRlbSl9c2V0IHNlbGVjdGVkKGEpe3RoaXMuc2VsZWN0'@; put 'aW9uLnNlbGVjdGlvblR5cGU9PT1kbC5Ob25lP3RoaXMuX3NlbGVjdGVkPWE6KGEmJnRoaXMuc2VsZWN0aW9uLnNlbGVjdGlvblR5cGU9PT1kbC5NdWx0aT90aGlzLnJhbmdlU2VsZWN0KCk6dGhpcy5zZWxlY3Rpb24ucmFuZ2VTdGFydD1udWxsLHRoaXMuc2VsZWN0aW9uLnNldFNlbGVjdGVk'@; put 'KHRoaXMuaXRlbSxhKSl9Z2V0IGV4cGFuZGVkKCl7cmV0dXJuIHRoaXMuZXhwYW5kLmV4cGFuZGVkfXNldCBleHBhbmRlZChhKXt0aGlzLmV4cGFuZC5leHBhbmRlZD1hfWdldCBjbHJEZ0RldGFpbE9wZW5MYWJlbCgpe3JldHVybiB0aGlzLl9kZXRhaWxPcGVuTGFiZWw/dGhpcy5fZGV0YWls'@; put 'T3BlbkxhYmVsOnRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLm9wZW59c2V0IGNsckRnRGV0YWlsT3BlbkxhYmVsKGEpe3RoaXMuX2RldGFpbE9wZW5MYWJlbD1hfWdldCBjbHJEZ0RldGFpbENsb3NlTGFiZWwoKXtyZXR1cm4gdGhpcy5fZGV0YWlsQ2xvc2VMYWJlbD90aGlzLl9kZXRhaWxDbG9z'@; put 'ZUxhYmVsOnRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmNsb3NlfXNldCBjbHJEZ0RldGFpbENsb3NlTGFiZWwoYSl7dGhpcy5fZGV0YWlsQ2xvc2VMYWJlbD1hfWdldCBjbHJEZ1Jvd1NlbGVjdGlvbkxhYmVsKCl7cmV0dXJuIHRoaXMuX3Jvd1NlbGVjdGlvbkxhYmVsP3RoaXMuX3Jvd1NlbGVj'@; put 'dGlvbkxhYmVsOnRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLnNlbGVjdH1zZXQgY2xyRGdSb3dTZWxlY3Rpb25MYWJlbChhKXt0aGlzLl9yb3dTZWxlY3Rpb25MYWJlbD1hfWdldCBfdmlldygpe3JldHVybiB0aGlzLndyYXBwZWRJbmplY3Rvci5nZXQoX0csdGhpcy52Y3IpLnJvd1ZpZXd9bmdP'@; put 'bkluaXQoKXt0aGlzLndyYXBwZWRJbmplY3Rvcj1uZXcgWEwoX0csdGhpcy52Y3IpLHRoaXMuc2VsZWN0aW9uLmxvY2tJdGVtKHRoaXMuaXRlbSwhMT09PXRoaXMuY2xyRGdTZWxlY3RhYmxlKX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLmRnQ2VsbHMuY2hhbmdlcy5zdWJzY3JpYmUoKCk9'@; put 'Pnt0aGlzLmRnQ2VsbHMuZm9yRWFjaChhPT57YS5fdmlldy5kZXN0cm95ZWR8fHRoaXMuX3Njcm9sbGFibGVDZWxscy5pbnNlcnQoYS5fdmlldyl9KX0pfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuZGlzcGxheU1vZGUudmlldy5zdWJzY3JpYmUoYT0+'@; put 'e2ZvcihsZXQgZD10aGlzLl9zY3JvbGxhYmxlQ2VsbHMubGVuZ3RoO2Q+MDtkLS0pdGhpcy5fc2Nyb2xsYWJsZUNlbGxzLmRldGFjaCgpO2ZvcihsZXQgZD10aGlzLl9jYWxjdWxhdGVkQ2VsbHMubGVuZ3RoO2Q+MDtkLS0pdGhpcy5fY2FsY3VsYXRlZENlbGxzLmRldGFjaCgpO2E9PT1YYi5D'@; put 'QUxDVUxBVEU/KHRoaXMuZGlzcGxheUNlbGxzPSExLHRoaXMuZGdDZWxscy5mb3JFYWNoKGQ9PntkLl92aWV3LmRlc3Ryb3llZHx8dGhpcy5fY2FsY3VsYXRlZENlbGxzLmluc2VydChkLl92aWV3KX0pKToodGhpcy5kaXNwbGF5Q2VsbHM9ITAsdGhpcy5kZ0NlbGxzLmZvckVhY2goZD0+e2Qu'@; put 'X3ZpZXcuZGVzdHJveWVkfHx0aGlzLl9zY3JvbGxhYmxlQ2VsbHMuaW5zZXJ0KGQuX3ZpZXcpfSkpfSksdGhpcy5leHBhbmQuYW5pbWF0ZS5zdWJzY3JpYmUoKCk9Pnt0aGlzLmV4cGFuZEFuaW1hdGlvblRyaWdnZXI9IXRoaXMuZXhwYW5kQW5pbWF0aW9uVHJpZ2dlcn0pKX1uZ09uRGVzdHJv'@; put 'eSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGE9PmEudW5zdWJzY3JpYmUoKSl9dG9nZ2xlKGE9IXRoaXMuc2VsZWN0ZWQpe2EhPT10aGlzLnNlbGVjdGVkJiYodGhpcy5zZWxlY3RlZD1hLHRoaXMuc2VsZWN0ZWRDaGFuZ2VkLmVtaXQoYSkpfXRvZ2dsZUV4cGFuZCgpe3RoaXMuZXhw'@; put 'YW5kLmV4cGFuZGFibGUmJih0aGlzLmV4cGFuZEFuaW1hdGlvbi51cGRhdGVTdGFydEhlaWdodCgpLHRoaXMuZXhwYW5kZWQ9IXRoaXMuZXhwYW5kZWQsdGhpcy5leHBhbmRlZENoYW5nZS5lbWl0KHRoaXMuZXhwYW5kZWQpKX1jbGVhclJhbmdlcyhhKXthLnNoaWZ0S2V5JiYodGhpcy5kb2N1'@; put 'bWVudC5nZXRTZWxlY3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMoKSwtMSE9PXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIkZpcmVmb3giKSYmKGEucHJldmVudERlZmF1bHQoKSx0aGlzLnRvZ2dsZSghMCkpKX1zZWxlY3RSb3coYT0hdGhpcy5zZWxlY3RlZCxkKXsiTEFCRUwi'@; put 'IT09ZC50YXJnZXQudGFnTmFtZSYmKHRoaXMuc2VsZWN0aW9uLnNlbGVjdGlvblR5cGU9PT10aGlzLlNFTEVDVElPTl9UWVBFLlNpbmdsZT90aGlzLnNlbGVjdGlvbi5jdXJyZW50U2luZ2xlPXRoaXMuaXRlbTp0aGlzLnRvZ2dsZShhKSl9cmFuZ2VTZWxlY3QoKXtjb25zdCBhPXRoaXMuaXRl'@; put 'bXMuZGlzcGxheWVkO2lmKCFhKXJldHVybjtjb25zdCBkPWEuaW5kZXhPZih0aGlzLnNlbGVjdGlvbi5yYW5nZVN0YXJ0KTtpZih0aGlzLnNlbGVjdGlvbi5yYW5nZVN0YXJ0JiZ0aGlzLnNlbGVjdGlvbi5jdXJyZW50LmluY2x1ZGVzKHRoaXMuc2VsZWN0aW9uLnJhbmdlU3RhcnQpJiZ0aGlz'@; put 'LnNlbGVjdGlvbi5zaGlmdFByZXNzZWQmJi0xIT09ZCl7Y29uc3QgaD1hLmluZGV4T2YodGhpcy5pdGVtKSxmPW5ldyBTZXQodGhpcy5zZWxlY3Rpb24uY3VycmVudC5jb25jYXQoYS5zbGljZShNYXRoLm1pbihkLGgpLE1hdGgubWF4KGQsaCkrMSkpKTt0aGlzLnNlbGVjdGlvbi5jbGVhclNl'@; put 'bGVjdGlvbigpLHRoaXMuc2VsZWN0aW9uLmN1cnJlbnQucHVzaCguLi5mKX1lbHNlIHRoaXMuc2VsZWN0aW9uLnJhbmdlU3RhcnQ9dGhpcy5pdGVtfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZShxYiksJGUoWWIpLCRlKEdiKSwkZSh0RSksJGUo'@; put 'dDMpLCRlKHdHKSwkZShUcyksJGUoRXMpLCRlKFFpKSwkZSh0byksJGUodWcpLCRlKG1vKSl9LGMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1kZy1yb3ciXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oYSxkLGgpe2lmKDEmYSYmYXMoaCxyMyw0KSwyJmEpe2xldCBm'@; put 'O3lpKGY9YmkoKSkmJihkLmRnQ2VsbHM9Zil9fSx2aWV3UXVlcnk6ZnVuY3Rpb24oYSxkKXtpZigxJmEmJihGYShVTCw1KSxGYShTQmUsNSksRmEoTUJlLDUsVHMpLEZhKHhCZSw1LFRzKSxGYShFQmUsNSxUcykpLDImYSl7bGV0IGg7eWkoaD1iaSgpKSYmKGQuZXhwYW5kQW5pbWF0aW9uPWgu'@; put 'Zmlyc3QpLHlpKGg9YmkoKSkmJihkLmRldGFpbEJ1dHRvbj1oLmZpcnN0KSx5aShoPWJpKCkpJiYoZC5fc3RpY2t5Q2VsbHM9aC5maXJzdCkseWkoaD1iaSgpKSYmKGQuX3Njcm9sbGFibGVDZWxscz1oLmZpcnN0KSx5aShoPWJpKCkpJiYoZC5fY2FsY3VsYXRlZENlbGxzPWguZmlyc3QpfX0s'@; put 'aG9zdEF0dHJzOlsicm9sZSIsInJvd2dyb3VwIl0saG9zdFZhcnM6Nyxob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsyJmEmJihocigiYXJpYS1vd25zIixkLmlkKSxUcigiZGF0YWdyaWQtcm93IiwhMCkoImRhdGFncmlkLXJvdy1za2VsZXRvbiIsZC5za2VsZXRvbkxvYWRpbmcpKCJkYXRh'@; put 'Z3JpZC1zZWxlY3RlZCIsZC5zZWxlY3RlZCkpfSxpbnB1dHM6e2RldGFpbERpc2FibGVkOltWbi5Ob25lLCJjbHJEZ0RldGFpbERpc2FibGVkIiwiZGV0YWlsRGlzYWJsZWQiXSxkZXRhaWxIaWRkZW46W1ZuLk5vbmUsImNsckRnRGV0YWlsSGlkZGVuIiwiZGV0YWlsSGlkZGVuIl0sc2tlbGV0'@; put 'b25Mb2FkaW5nOltWbi5Ob25lLCJjbHJEZ1NrZWxldG9uTG9hZGluZyIsInNrZWxldG9uTG9hZGluZyJdLGl0ZW06W1ZuLk5vbmUsImNsckRnSXRlbSIsIml0ZW0iXSxjbHJEZ1NlbGVjdGFibGU6ImNsckRnU2VsZWN0YWJsZSIsc2VsZWN0ZWQ6W1ZuLk5vbmUsImNsckRnU2VsZWN0ZWQiLCJz'@; put 'ZWxlY3RlZCJdLGV4cGFuZGVkOltWbi5Ob25lLCJjbHJEZ0V4cGFuZGVkIiwiZXhwYW5kZWQiXSxjbHJEZ0RldGFpbE9wZW5MYWJlbDoiY2xyRGdEZXRhaWxPcGVuTGFiZWwiLGNsckRnRGV0YWlsQ2xvc2VMYWJlbDoiY2xyRGdEZXRhaWxDbG9zZUxhYmVsIixjbHJEZ1Jvd1NlbGVjdGlvbkxh'@; put 'YmVsOiJjbHJEZ1Jvd1NlbGVjdGlvbkxhYmVsIn0sb3V0cHV0czp7c2VsZWN0ZWRDaGFuZ2VkOiJjbHJEZ1NlbGVjdGVkQ2hhbmdlIixleHBhbmRlZENoYW5nZToiY2xyRGdFeHBhbmRlZENoYW5nZSJ9LGZlYXR1cmVzOlt1YShbdEUse3Byb3ZpZGU6VzEsdXNlRXhpc3Rpbmc6dEV9LHtwcm92'@; put 'aWRlOlB4LHVzZUV4aXN0aW5nOnRFfV0pXSxuZ0NvbnRlbnRTZWxlY3RvcnM6QUJlLGRlY2xzOjksdmFyczozLGNvbnN0czpbWyJkZXRhaWwiLCIiXSxbInJvd0NvbnRlbnQiLCIiXSxbImNhbGN1bGF0ZWRDZWxscyIsIiJdLFsic3RpY2t5Q2VsbHMiLCIiXSxbInNjcm9sbGFibGVDZWxscyIs'@; put 'IiJdLFsiZGV0YWlsQnV0dG9uIiwiIl0sWyJjbGFzcyIsImRhdGFncmlkLXJvdy1jbGlja2FibGUiLDMsIm1vdXNlZG93biIsImNsaWNrIiw0LCJuZ0lmIl0sWzMsImNsckV4cGFuZFRyaWdnZXIiLDQsIm5nSWYiXSxbNCwibmdJZiJdLFsxLCJkYXRhZ3JpZC1yb3ctY2xpY2thYmxlIiwzLCJt'@; put 'b3VzZWRvd24iLCJjbGljayJdLFszLCJjbHJFeHBhbmRUcmlnZ2VyIl0sWzMsIm5nVGVtcGxhdGVPdXRsZXQiXSxbInJvbGUiLCJyb3ciLDEsImRhdGFncmlkLXJvdy1tYXN0ZXIiLCJkYXRhZ3JpZC1yb3ctZmxleCIsMywiaWQiXSxbMSwiZGF0YWdyaWQtcm93LXN0aWNreSJdLFsiY2xhc3Mi'@; put 'LCJkYXRhZ3JpZC1zZWxlY3QgZGF0YWdyaWQtZml4ZWQtY29sdW1uIGRhdGFncmlkLWNlbGwiLCJyb2xlIiwiZ3JpZGNlbGwiLDMsIm5nQ2xhc3MiLDQsIm5nSWYiXSxbImNsYXNzIiwiZGF0YWdyaWQtcm93LWFjdGlvbnMgZGF0YWdyaWQtZml4ZWQtY29sdW1uIGRhdGFncmlkLWNlbGwiLCJy'@; put 'b2xlIiwiZ3JpZGNlbGwiLDQsIm5nSWYiXSxbImNsYXNzIiwiZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldCBkYXRhZ3JpZC1maXhlZC1jb2x1bW4gZGF0YWdyaWQtY2VsbCIsInJvbGUiLCJncmlkY2VsbCIsNCwibmdJZiJdLFsiY2xhc3MiLCJkYXRhZ3JpZC1kZXRhaWwtY2FyZXQgZGF0YWdy'@; put 'aWQtZml4ZWQtY29sdW1uIGRhdGFncmlkLWNlbGwiLCJyb2xlIiwiZ3JpZGNlbGwiLDQsIm5nSWYiXSxbMSwiZGF0YWdyaWQtcm93LXNjcm9sbGFibGUiLDMsIm5nQ2xhc3MiXSxbMSwiZGF0YWdyaWQtc2Nyb2xsaW5nLWNlbGxzIl0sWyJjbGFzcyIsInNrZWxldG9uLWxvYWRpbmciLDQsIm5n'@; put 'SWYiXSxbInJvbGUiLCJncmlkY2VsbCIsMSwiZGF0YWdyaWQtc2VsZWN0IiwiZGF0YWdyaWQtZml4ZWQtY29sdW1uIiwiZGF0YWdyaWQtY2VsbCIsMywibmdDbGFzcyJdLFsxLCJjbHItY2hlY2tib3gtd3JhcHBlciJdLFsidGFiaW5kZXgiLCItMSIsInR5cGUiLCJjaGVja2JveCIsMywibmdN'@; put 'b2RlbENoYW5nZSIsIm5nTW9kZWwiLCJpZCIsImRpc2FibGVkIl0sWzEsImNsci1jb250cm9sLWxhYmVsIiwiY2xyLWNvbC1udWxsIiwzLCJjbGljayIsImZvciJdLFsxLCJjbHItc3Itb25seSJdLFsidGFiaW5kZXgiLCItMSIsInR5cGUiLCJyYWRpbyIsImNsclJhZGlvIiwiIiwzLCJuZ01v'@; put 'ZGVsQ2hhbmdlIiwiaWQiLCJuYW1lIiwidmFsdWUiLCJuZ01vZGVsIiwiY2hlY2tlZCIsImRpc2FibGVkIl0sWzEsImNsci1jb250cm9sLWxhYmVsIiwiY2xyLWNvbC1udWxsIiwzLCJmb3IiXSxbInJvbGUiLCJncmlkY2VsbCIsMSwiZGF0YWdyaWQtcm93LWFjdGlvbnMiLCJkYXRhZ3JpZC1m'@; put 'aXhlZC1jb2x1bW4iLCJkYXRhZ3JpZC1jZWxsIl0sWyJyb2xlIiwiZ3JpZGNlbGwiLDEsImRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQiLCJkYXRhZ3JpZC1maXhlZC1jb2x1bW4iLCJkYXRhZ3JpZC1jZWxsIl0sWyJ0YWJpbmRleCIsIi0xIiwidHlwZSIsImJ1dHRvbiIsImNsYXNzIiwiZGF0'@; put 'YWdyaWQtZXhwYW5kYWJsZS1jYXJldC1idXR0b24iLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJjbHJTbWFsbCIsIiIsNCwibmdJZiJdLFsidGFiaW5kZXgiLCItMSIsInR5cGUiLCJidXR0b24iLDEsImRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQtYnV0dG9uIiwzLCJjbGljayJdLFsic2hhcGUi'@; put 'LCJhbmdsZSIsMSwiZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldC1pY29uIl0sWyJjbHJTbWFsbCIsIiJdLFsicm9sZSIsImdyaWRjZWxsIiwxLCJkYXRhZ3JpZC1kZXRhaWwtY2FyZXQiLCJkYXRhZ3JpZC1maXhlZC1jb2x1bW4iLCJkYXRhZ3JpZC1jZWxsIl0sWyJ0YWJpbmRleCIsIi0xIiwi'@; put 'dHlwZSIsImJ1dHRvbiIsImNsYXNzIiwiZGF0YWdyaWQtZGV0YWlsLWNhcmV0LWJ1dHRvbiIsImFyaWEtaGFzcG9wdXAiLCJkaWFsb2ciLDMsImRpc2FibGVkIiwiaXMtb3BlbiIsImNsaWNrIiw0LCJuZ0lmIl0sWyJ0YWJpbmRleCIsIi0xIiwidHlwZSIsImJ1dHRvbiIsImFyaWEtaGFzcG9w'@; put 'dXAiLCJkaWFsb2ciLDEsImRhdGFncmlkLWRldGFpbC1jYXJldC1idXR0b24iLDMsImNsaWNrIiwiZGlzYWJsZWQiXSxbInNoYXBlIiwiYW5nbGUtZG91YmxlIiwxLCJkYXRhZ3JpZC1kZXRhaWwtY2FyZXQtaWNvbiJdLFsxLCJza2VsZXRvbi1sb2FkaW5nIl1dLHRlbXBsYXRlOmZ1bmN0aW9u'@; put 'KGEsZCl7MSZhJiYoc2EoVEJlKSxndCgwLE9CZSwzLDIsImRpdiIsNikoMSxGQmUsMiwyLCJjbHItZXhwYW5kYWJsZS1hbmltYXRpb24iLDcpKDIsTkJlLDEsMSxudWxsLDgpKDMsVkJlLDEsMCwibmctdGVtcGxhdGUiLG51bGwsMCxnYykoNSxlamUsMTcsMTQsIm5nLXRlbXBsYXRlIixudWxs'@; put 'LDEsZ2MpLExsKDcsbnVsbCwyKSksMiZhJiYoTWUoIm5nSWYiLGQuc2VsZWN0aW9uLnJvd1NlbGVjdGlvbk1vZGUpLGZlKCksTWUoIm5nSWYiLCFkLnNlbGVjdGlvbi5yb3dTZWxlY3Rpb25Nb2RlJiZkLmV4cGFuZC5leHBhbmRhYmxlKSxmZSgpLE1lKCJuZ0lmIiwhZC5zZWxlY3Rpb24ucm93'@; put 'U2VsZWN0aW9uTW9kZSYmIWQuZXhwYW5kLmV4cGFuZGFibGUpKX0sZGVwZW5kZW5jaWVzOlt2dSxiYSxCMSxlbyxjbyxmRyxoRyxHbCxNZCxDTCx0bCxXbyxVTCxSZCxyMyxDRyx4cF0sZW5jYXBzdWxhdGlvbjoyfSksY30pKCk7dmFyIEcxPWZ1bmN0aW9uKGMpe3JldHVybiBjW2MuV0lEVEg9'@; put 'MF09IldJRFRIIixjW2MuSElEREVOPTFdPSJISURERU4iLGNbYy5JTklUSUFMSVpFPTJdPSJJTklUSUFMSVpFIixjfShHMXx8e30pO2NvbnN0IHRXZT1PYmplY3Qua2V5cyhHMSkubWFwKGM9PkcxW2NdKS5maWx0ZXIoYz0+Yz09PXBhcnNlSW50KGMsMTApJiZjIT09RzEuSU5JVElBTElaRSk7'@; put 'bGV0IGRnPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt0aGlzLmNvbHVtbnM9W10sdGhpcy5jb2x1bW5zU3RhdGVDaGFuZ2U9bmV3IEpyKG51bGwpLHRoaXMuX2NhY2hlPVtdfWdldCBjb2x1bW5TdGF0ZXMoKXtyZXR1cm4gdGhpcy5jb2x1bW5zLm1hcChhPT5hLnZhbHVlKX1nZXQgaGFz'@; put 'SGlkZWFibGVDb2x1bW5zKCl7cmV0dXJuIHRoaXMuY29sdW1uU3RhdGVzLmZpbHRlcihhPT5hLmhpZGVhYmxlKS5sZW5ndGg+MH1nZXQgdmlzaWJsZUNvbHVtbnMoKXtyZXR1cm4gdGhpcy5jb2x1bW5TdGF0ZXMuZmlsdGVyKGE9PiFhLmhpZGRlbil9Y2FjaGUoKXt0aGlzLl9jYWNoZT10aGlz'@; put 'LmNvbHVtbnMubWFwKGE9Pntjb25zdCBkPXsuLi5hLnZhbHVlfTtyZXR1cm4gZGVsZXRlIGQuY2hhbmdlcyxkfSl9aGFzQ2FjaGUoKXtyZXR1cm4hIXRoaXMuX2NhY2hlLmxlbmd0aH1yZXNldFRvTGFzdENhY2hlKCl7dGhpcy5fY2FjaGUuZm9yRWFjaCgoYSxkKT0+e2NvbnN0IGg9ey4uLmEs'@; put 'Y2hhbmdlczp0V2V9O3RoaXMuY29sdW1uc1tkXS5uZXh0KGgpLHRoaXMuY29sdW1uc1N0YXRlQ2hhbmdlLm5leHQoaCl9KSx0aGlzLl9jYWNoZT1bXX1lbWl0U3RhdGVDaGFuZ2VBdChhLGQpe3RoaXMuY29sdW1uc1thXSYmdGhpcy5lbWl0U3RhdGVDaGFuZ2UodGhpcy5jb2x1bW5zW2FdLGQp'@; put 'fWVtaXRTdGF0ZUNoYW5nZShhLGQpe2NvbnN0IGg9ey4uLmEudmFsdWUsLi4uZH07YS5uZXh0KGgpLHRoaXMuY29sdW1uc1N0YXRlQ2hhbmdlLm5leHQoaCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMs'@; put 'ZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpO2NvbnN0IG5XZT17aXRlbVNpemU6MzIsbWluQnVmZmVyUHg6MjAwLG1heEJ1ZmZlclB4OjQwMH07bGV0IHpkZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYsdixNLEksRyxyZSx1ZSx5ZSxFZSxCZSl7dGhpcy5jaGFuZ2VEZXRl'@; put 'Y3RvclJlZj1hLHRoaXMuaXRlcmFibGVEaWZmZXJzPWQsdGhpcy5pdGVtcz1oLHRoaXMubmdab25lPWYsdGhpcy5yZW5kZXJlcjI9dix0aGlzLnRlbXBsYXRlUmVmPU0sdGhpcy52aWV3Q29udGFpbmVyUmVmPUksdGhpcy5kaXJlY3Rpb25hbGl0eT1HLHRoaXMuc2Nyb2xsRGlzcGF0Y2hlcj1y'@; put 'ZSx0aGlzLnZpZXdwb3J0UnVsZXI9dWUsdGhpcy5kYXRhZ3JpZD15ZSx0aGlzLmNvbHVtbnNTZXJ2aWNlPUVlLHRoaXMuaW5qZWN0b3I9QmUsdGhpcy5yZW5kZXJlZFJhbmdlQ2hhbmdlPW5ldyBLcix0aGlzLnBlcnNpc3RJdGVtcz0hMCx0aGlzLl9jZGtGaXhlZFNpemVWaXJ0dWFsU2Nyb2xs'@; put 'SW5wdXRzPXsuLi5uV2V9LHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLnRvcEluZGV4PTAsdGhpcy5tdXRhdGlvbkNoYW5nZXM9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoR2U9PntHZS5mb3JFYWNoKHN0PT57c3QudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygiZGF0YWdyaWQtY29tcGFjdCIp'@; put 'JiZ0aGlzLml0ZW1TaXplPjI0JiYodGhpcy5pdGVtU2l6ZT0yNCl9KX0pLHRoaXMudmlld1JlcGVhdGVyPW5ldyBlMWUsdGhpcy5jZGtWaXJ0dWFsRm9ySW5wdXRzPXtjZGtWaXJ0dWFsRm9yVHJhY2tCeTpHZT0+R2V9LGguc21hcnRlblVwKCkseWUuZGV0YWlsU2VydmljZS5wcmV2ZW50Rm9j'@; put 'dXNTY3JvbGw9ITAsdGhpcy5kYXRhZ3JpZEVsZW1lbnRSZWY9eWUuZWwsdGhpcy5jZGtWaXJ0dWFsRm9yVGVtcGxhdGVDYWNoZVNpemU9MjAsdGhpcy5tdXRhdGlvbkNoYW5nZXMub2JzZXJ2ZSh0aGlzLmRhdGFncmlkRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LHthdHRyaWJ1dGVGaWx0ZXI6'@; put 'WyJjbGFzcyJdLGF0dHJpYnV0ZU9sZFZhbHVlOiEwfSksdGhpcy52aXJ0dWFsU2Nyb2xsU3RyYXRlZ3k9bmV3IGpGZSh0aGlzLl9jZGtGaXhlZFNpemVWaXJ0dWFsU2Nyb2xsSW5wdXRzLml0ZW1TaXplLHRoaXMuX2Nka0ZpeGVkU2l6ZVZpcnR1YWxTY3JvbGxJbnB1dHMubWluQnVmZmVyUHgs'@; put 'dGhpcy5fY2RrRml4ZWRTaXplVmlydHVhbFNjcm9sbElucHV0cy5tYXhCdWZmZXJQeCl9Z2V0IGNka1ZpcnR1YWxGb3JPZigpe3JldHVybiB0aGlzLmNka1ZpcnR1YWxGb3JJbnB1dHMuY2RrVmlydHVhbEZvck9mfXNldCBjZGtWaXJ0dWFsRm9yT2YoYSl7dGhpcy5jZGtWaXJ0dWFsRm9ySW5w'@; put 'dXRzLmNka1ZpcnR1YWxGb3JPZj1hLHRoaXMuaXRlbXMuYWxsPWEsdGhpcy51cGRhdGVDZGtWaXJ0dWFsRm9ySW5wdXRzKCl9Z2V0IGNka1ZpcnR1YWxGb3JUcmFja0J5KCl7cmV0dXJuIHRoaXMuY2RrVmlydHVhbEZvcklucHV0cy5jZGtWaXJ0dWFsRm9yVHJhY2tCeX1zZXQgY2RrVmlydHVh'@; put 'bEZvclRyYWNrQnkoYSl7dGhpcy5jZGtWaXJ0dWFsRm9ySW5wdXRzLmNka1ZpcnR1YWxGb3JUcmFja0J5PWEsdGhpcy51cGRhdGVDZGtWaXJ0dWFsRm9ySW5wdXRzKCl9Z2V0IGNka1ZpcnR1YWxGb3JUZW1wbGF0ZSgpe3JldHVybiB0aGlzPy5jZGtWaXJ0dWFsRm9ySW5wdXRzPy5jZGtWaXJ0'@; put 'dWFsRm9yVGVtcGxhdGV9c2V0IGNka1ZpcnR1YWxGb3JUZW1wbGF0ZShhKXt0aGlzLmNka1ZpcnR1YWxGb3JJbnB1dHMuY2RrVmlydHVhbEZvclRlbXBsYXRlPWEsdGhpcy51cGRhdGVDZGtWaXJ0dWFsRm9ySW5wdXRzKCl9Z2V0IGNka1ZpcnR1YWxGb3JUZW1wbGF0ZUNhY2hlU2l6ZSgpe3Jl'@; put 'dHVybiB0aGlzLmNka1ZpcnR1YWxGb3JJbnB1dHMuY2RrVmlydHVhbEZvclRlbXBsYXRlQ2FjaGVTaXplfXNldCBjZGtWaXJ0dWFsRm9yVGVtcGxhdGVDYWNoZVNpemUoYSl7dGhpcy5jZGtWaXJ0dWFsRm9ySW5wdXRzLmNka1ZpcnR1YWxGb3JUZW1wbGF0ZUNhY2hlU2l6ZT1kNyhhKSx0aGlz'@; put 'LnVwZGF0ZUNka1ZpcnR1YWxGb3JJbnB1dHMoKX1nZXQgaXRlbVNpemUoKXtyZXR1cm4gdGhpcy5fY2RrRml4ZWRTaXplVmlydHVhbFNjcm9sbElucHV0cy5pdGVtU2l6ZX1zZXQgaXRlbVNpemUoYSl7dGhpcy5fY2RrRml4ZWRTaXplVmlydHVhbFNjcm9sbElucHV0cy5pdGVtU2l6ZT1kNyhh'@; put 'KSx0aGlzLnVwZGF0ZUZpeGVkU2l6ZVZpcnR1YWxTY3JvbGxJbnB1dHMoKX1nZXQgbWluQnVmZmVyUHgoKXtyZXR1cm4gdGhpcy5fY2RrRml4ZWRTaXplVmlydHVhbFNjcm9sbElucHV0cy5taW5CdWZmZXJQeH1zZXQgbWluQnVmZmVyUHgoYSl7dGhpcy5fY2RrRml4ZWRTaXplVmlydHVhbFNj'@; put 'cm9sbElucHV0cy5taW5CdWZmZXJQeD1kNyhhKSx0aGlzLnVwZGF0ZUZpeGVkU2l6ZVZpcnR1YWxTY3JvbGxJbnB1dHMoKX1nZXQgbWF4QnVmZmVyUHgoKXtyZXR1cm4gdGhpcy5fY2RrRml4ZWRTaXplVmlydHVhbFNjcm9sbElucHV0cy5tYXhCdWZmZXJQeH1zZXQgbWF4QnVmZmVyUHgoYSl7'@; put 'dGhpcy5fY2RrRml4ZWRTaXplVmlydHVhbFNjcm9sbElucHV0cy5tYXhCdWZmZXJQeD1kNyhhKSx0aGlzLnVwZGF0ZUZpeGVkU2l6ZVZpcnR1YWxTY3JvbGxJbnB1dHMoKX1zZXQgZGF0YVJhbmdlKGEpe2EmJih0aGlzLml0ZW1zLnNtYXJ0JiZ0aGlzLml0ZW1zLnNtYXJ0ZW5Eb3duKCksdGhp'@; put 'cy50b3RhbEl0ZW1zPWEudG90YWwsdGhpcy51cGRhdGVEYXRhUmFuZ2UoYS5za2lwLGEuZGF0YSkpfWdldCB0b3RhbEl0ZW1zKCl7cmV0dXJuIHRoaXMuX3RvdGFsSXRlbXN9c2V0IHRvdGFsSXRlbXMoYSl7dGhpcy5fdG90YWxJdGVtcz1hfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuaW5qZWN0'@; put 'b3IucnVuSW5Db250ZXh0KCgpPT57dGhpcy52aXJ0dWFsU2Nyb2xsVmlld3BvcnQ9dGhpcy5jcmVhdGVWaXJ0dWFsU2Nyb2xsVmlld3BvcnRGb3JEYXRhZ3JpZCh0aGlzLmNoYW5nZURldGVjdG9yUmVmLHRoaXMubmdab25lLHRoaXMucmVuZGVyZXIyLHRoaXMuZGlyZWN0aW9uYWxpdHksdGhp'@; put 'cy5zY3JvbGxEaXNwYXRjaGVyLHRoaXMudmlld3BvcnRSdWxlcix0aGlzLmRhdGFncmlkRWxlbWVudFJlZix0aGlzLnZpcnR1YWxTY3JvbGxTdHJhdGVneSksdGhpcy5jZGtWaXJ0dWFsRm9yPWZ1bmN0aW9uIGlXZShjLGwsYSxkLGgsZil7aWYoKyRpZS5tYWpvcjwxOSlyZXR1cm4gbmV3IExM'@; put 'KGMsbCxhLGQsaCxmKTt7Y29uc3Qgdj1Eby5jcmVhdGUoe3BhcmVudDpoaShxbCkscHJvdmlkZXJzOlt7cHJvdmlkZTpFYix1c2VWYWx1ZTpofV19KTtyZXR1cm4gRG8uY3JlYXRlKHtwYXJlbnQ6dixwcm92aWRlcnM6W3twcm92aWRlOlRzLHVzZVZhbHVlOmN9LHtwcm92aWRlOndsLHVzZVZh'@; put 'bHVlOmx9LHtwcm92aWRlOnE1LHVzZVZhbHVlOmF9LHtwcm92aWRlOk1ZLHVzZVZhbHVlOmR9LHtwcm92aWRlOkdhLHVzZVZhbHVlOmZ9LHtwcm92aWRlOkxMLHVzZUNsYXNzOkxMfV19KS5nZXQoTEwpfX0odGhpcy52aWV3Q29udGFpbmVyUmVmLHRoaXMudGVtcGxhdGVSZWYsdGhpcy5pdGVy'@; put 'YWJsZURpZmZlcnMsdGhpcy52aWV3UmVwZWF0ZXIsdGhpcy52aXJ0dWFsU2Nyb2xsVmlld3BvcnQsdGhpcy5uZ1pvbmUpLHRoaXMudmlydHVhbFNjcm9sbFZpZXdwb3J0Lm5nT25Jbml0KCl9KSx0aGlzLmdyaWRSb2xlRWxlbWVudD10aGlzLmRhdGFncmlkRWxlbWVudFJlZi5uYXRpdmVFbGVt'@; put 'ZW50LnF1ZXJ5U2VsZWN0b3IoJ1tyb2xlPSJncmlkIl0nKSx0aGlzLnVwZGF0ZUNka1ZpcnR1YWxGb3JJbnB1dHMoKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLml0ZW1zLmNoYW5nZS5zdWJzY3JpYmUoYT0+e3RoaXMuaXRlbXMuc21hcnQmJih0aGlzLmNka1ZpcnR1YWxGb3IuY2Rr'@; put 'VmlydHVhbEZvck9mPWEpfSksdGhpcy5jZGtWaXJ0dWFsRm9yLmRhdGFTdHJlYW0uc3Vic2NyaWJlKGE9Pnt0aGlzLnVwZGF0ZUFyaWFSb3dDb3VudChhLmxlbmd0aCl9KSx0aGlzLnZpcnR1YWxTY3JvbGxWaWV3cG9ydC5zY3JvbGxlZEluZGV4Q2hhbmdlLnN1YnNjcmliZShhPT57dGhpcy50'@; put 'b3BJbmRleD1hfSksdGhpcy52aXJ0dWFsU2Nyb2xsVmlld3BvcnQucmVuZGVyZWRSYW5nZVN0cmVhbS5zdWJzY3JpYmUoYT0+e3RoaXMucmVuZGVyZWRSYW5nZUNoYW5nZS5lbWl0KGEpfSksdGhpcy5kYXRhZ3JpZC5yZWZyZXNoLnN1YnNjcmliZShhPT57YS5maWx0ZXJzJiZ0aGlzLnNjcm9s'@; put 'bFRvSW5kZXgoMCl9KSx0aGlzLmNvbHVtbnNTZXJ2aWNlLmNvbHVtbnNTdGF0ZUNoYW5nZS5zdWJzY3JpYmUoKCk9Pnt0aGlzLnZpZXdSZXBlYXRlci5kZXRhY2goKX0pKX1uZ0RvQ2hlY2soKXt0aGlzLmNka1ZpcnR1YWxGb3I/Lm5nRG9DaGVjaygpLHRoaXMudXBkYXRlQXJpYVJvd0luZGV4'@; put 'ZXMoKX1uZ09uRGVzdHJveSgpe3RoaXMuY2RrVmlydHVhbEZvcj8ubmdPbkRlc3Ryb3koKSx0aGlzLnZpcnR1YWxTY3JvbGxWaWV3cG9ydD8ubmdPbkRlc3Ryb3koKSx0aGlzLm11dGF0aW9uQ2hhbmdlcz8uZGlzY29ubmVjdCgpLHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGE9PnthLnVu'@; put 'c3Vic2NyaWJlKCl9KX1zY3JvbGxVcChhLGQ9ImF1dG8iKXt0aGlzLnNjcm9sbFRvSW5kZXgodGhpcy50b3BJbmRleC1hLGQpfXNjcm9sbERvd24oYSxkPSJhdXRvIil7dGhpcy5zY3JvbGxUb0luZGV4KHRoaXMudG9wSW5kZXgrYSxkKX1zY3JvbGxUb0luZGV4KGEsZD0iYXV0byIpe3RoaXMu'@; put 'dmlydHVhbFNjcm9sbFZpZXdwb3J0Py5zY3JvbGxUb0luZGV4KGEsZCl9dXBkYXRlRGF0YVJhbmdlKGEsZCl7bGV0IGg9dGhpcy5jZGtWaXJ0dWFsRm9yT2Y7KCF0aGlzLnBlcnNpc3RJdGVtc3x8IWh8fGg/Lmxlbmd0aCE9PXRoaXMudG90YWxJdGVtcykmJihoPUFycmF5KHRoaXMudG90YWxJ'@; put 'dGVtcykpLGguc3BsaWNlKGEsZC5sZW5ndGgsLi4uZCksdGhpcy5jZGtWaXJ0dWFsRm9yT2Y9QXJyYXkuZnJvbShoKX11cGRhdGVDZGtWaXJ0dWFsRm9ySW5wdXRzKCl7aWYodGhpcy5jZGtWaXJ0dWFsRm9yKWZvcihjb25zdCBhIG9mIE9iamVjdC5rZXlzKHRoaXMuY2RrVmlydHVhbEZvcklu'@; put 'cHV0cykpdGhpcy5jZGtWaXJ0dWFsRm9yW2FdIT09dGhpcy5jZGtWaXJ0dWFsRm9ySW5wdXRzW2FdJiYodGhpcy5jZGtWaXJ0dWFsRm9yW2FdPXRoaXMuY2RrVmlydHVhbEZvcklucHV0c1thXSl9dXBkYXRlRml4ZWRTaXplVmlydHVhbFNjcm9sbElucHV0cygpe3RoaXMudmlydHVhbFNjcm9s'@; put 'bFN0cmF0ZWd5JiZ0aGlzLnZpcnR1YWxTY3JvbGxTdHJhdGVneS51cGRhdGVJdGVtQW5kQnVmZmVyU2l6ZSh0aGlzLl9jZGtGaXhlZFNpemVWaXJ0dWFsU2Nyb2xsSW5wdXRzLml0ZW1TaXplLHRoaXMuX2Nka0ZpeGVkU2l6ZVZpcnR1YWxTY3JvbGxJbnB1dHMubWluQnVmZmVyUHgsdGhpcy5f'@; put 'Y2RrRml4ZWRTaXplVmlydHVhbFNjcm9sbElucHV0cy5tYXhCdWZmZXJQeCl9dXBkYXRlQXJpYVJvd0NvdW50KGEpe3RoaXMuZ3JpZFJvbGVFbGVtZW50Py5zZXRBdHRyaWJ1dGUoImFyaWEtcm93Y291bnQiLGEudG9TdHJpbmcoKSl9dXBkYXRlQXJpYVJvd0luZGV4ZXMoKXtmb3IobGV0IGE9'@; put 'MDthPHRoaXMudmlld0NvbnRhaW5lclJlZi5sZW5ndGg7YSsrKXtjb25zdCBkPXRoaXMudmlld0NvbnRhaW5lclJlZi5nZXQoYSk7ZC5yb290Tm9kZXMuZmluZChNPT4iQ0xSLURHLVJPVyI9PT1NLnRhZ05hbWUpPy5xdWVyeVNlbGVjdG9yKCdbcm9sZT0icm93Il0nKT8uc2V0QXR0cmlidXRl'@; put 'KCJhcmlhLXJvd2luZGV4IiwoZC5jb250ZXh0LmluZGV4KzEpLnRvU3RyaW5nKCkpfX1jcmVhdGVWaXJ0dWFsU2Nyb2xsVmlld3BvcnRGb3JEYXRhZ3JpZChhLGQsaCxmLHYsTSxJLEcpe2NvbnN0IHJlPUkubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCIuZGF0YWdyaWQiKSx1ZT1JLm5h'@; put 'dGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigiLmRhdGFncmlkLXRhYmxlIikseWU9SS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5kYXRhZ3JpZC1yb3dzIik7bGV0IEJlPTAsR2U9MDtmdW5jdGlvbiBzdCgpe3llLnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlWSgke0JlfXB4KWAs'@; put 'eWUuc3R5bGUuaGVpZ2h0PUdlLUJlKyJweCJ9Y29uc3QgcHQ9ZnVuY3Rpb24gcldlKGMsbCxhLGQsaCxmLHYsTSxJKXtyZXR1cm4rJGllLm1ham9yPDE5P25ldyBFYihjLGwsYSxoLGYsdixNLEkpOkRvLmNyZWF0ZSh7cGFyZW50OmhpKHFsKSxwcm92aWRlcnM6W3twcm92aWRlOlFpLHVzZVZh'@; put 'bHVlOmN9LHtwcm92aWRlOnhvLHVzZVZhbHVlOmx9LHtwcm92aWRlOkdhLHVzZVZhbHVlOmF9LHtwcm92aWRlOkVzLHVzZVZhbHVlOmR9LHtwcm92aWRlOnQxZSx1c2VWYWx1ZTpofSx7cHJvdmlkZTpkbSx1c2VWYWx1ZTpmfSx7cHJvdmlkZTp4Yix1c2VWYWx1ZTp2fSx7cHJvdmlkZTpSTCx1'@; put 'c2VWYWx1ZTpNfSx7cHJvdmlkZTppMWUsdXNlVmFsdWU6SX0se3Byb3ZpZGU6RWIsdXNlQ2xhc3M6RWJ9XX0pLmdldChFYil9KHtuYXRpdmVFbGVtZW50OnJlfSxhLGQsaCxHLGYsdixNLG51bGwpO3JldHVybiBwdC5fY29udGVudFdyYXBwZXI9e25hdGl2ZUVsZW1lbnQ6e3N0eWxlOntzZXQg'@; put 'dHJhbnNmb3JtKGR0KXtCZT12b2lkIDA9PT1kdD8wOisvdHJhbnNsYXRlWVwoKFswLTldKylweFwpLy5leGVjKGR0KT8uWzFdLHN0KCl9fX19LHB0LnNldFRvdGFsQ29udGVudFNpemU9ZHQ9PntHZT1kdCx1ZS5zdHlsZS5oZWlnaHQ9YCR7R2V9cHhgLHN0KCl9LHB0fX1yZXR1cm4gYy5cdTAy'@; put 'NzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZSh4byksJGUocTUpLCRlKHVnKSwkZShHYSksJGUoRXMpLCRlKHdsKSwkZShUcyksJGUoZG0pLCRlKHhiKSwkZShSTCksJGUod28oKCk9PnhtKSksJGUoZGcpLCRlKHFsKSl9LGMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsc2VsZWN0'@; put 'b3JzOltbIiIsImNsclZpcnR1YWxTY3JvbGwiLCIiXSxbIiIsIkNsclZpcnR1YWxTY3JvbGwiLCIiXV0saW5wdXRzOntwZXJzaXN0SXRlbXM6W1ZuLk5vbmUsImNsclZpcnR1YWxQZXJzaXN0SXRlbXMiLCJwZXJzaXN0SXRlbXMiXSxjZGtWaXJ0dWFsRm9yT2Y6W1ZuLk5vbmUsImNsclZpcnR1'@; put 'YWxSb3dzT2YiLCJjZGtWaXJ0dWFsRm9yT2YiXSxjZGtWaXJ0dWFsRm9yVHJhY2tCeTpbVm4uTm9uZSwiY2xyVmlydHVhbFJvd3NUcmFja0J5IiwiY2RrVmlydHVhbEZvclRyYWNrQnkiXSxjZGtWaXJ0dWFsRm9yVGVtcGxhdGU6W1ZuLk5vbmUsImNsclZpcnR1YWxSb3dzVGVtcGxhdGUiLCJj'@; put 'ZGtWaXJ0dWFsRm9yVGVtcGxhdGUiXSxjZGtWaXJ0dWFsRm9yVGVtcGxhdGVDYWNoZVNpemU6W1ZuLk5vbmUsImNsclZpcnR1YWxSb3dzVGVtcGxhdGVDYWNoZVNpemUiLCJjZGtWaXJ0dWFsRm9yVGVtcGxhdGVDYWNoZVNpemUiXSxpdGVtU2l6ZTpbVm4uTm9uZSwiY2xyVmlydHVhbFJvd3NJ'@; put 'dGVtU2l6ZSIsIml0ZW1TaXplIl0sbWluQnVmZmVyUHg6W1ZuLk5vbmUsImNsclZpcnR1YWxSb3dzTWluQnVmZmVyUHgiLCJtaW5CdWZmZXJQeCJdLG1heEJ1ZmZlclB4OltWbi5Ob25lLCJjbHJWaXJ0dWFsUm93c01heEJ1ZmZlclB4IiwibWF4QnVmZmVyUHgiXSxkYXRhUmFuZ2U6W1ZuLk5v'@; put 'bmUsImNsclZpcnR1YWxEYXRhUmFuZ2UiLCJkYXRhUmFuZ2UiXX0sb3V0cHV0czp7cmVuZGVyZWRSYW5nZUNoYW5nZToicmVuZGVyZWRSYW5nZUNoYW5nZSJ9LGZlYXR1cmVzOlt1YShbdWddKV19KSxjfSkoKSxVZGU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmKXt0aGlzLmZp'@; put 'bHRlcnM9YSx0aGlzLnNvcnQ9ZCx0aGlzLnBhZ2U9aCx0aGlzLmRlYm91bmNlcj1mLHRoaXMuY2hhbmdlPXRoaXMuZGVib3VuY2VyLmNoYW5nZS5waXBlKFByKCgpPT50aGlzLnN0YXRlKSl9Z2V0IHN0YXRlKCl7Y29uc3QgYT17fTt0aGlzLnBhZ2Uuc2l6ZT4wJiYoYS5wYWdlPXtmcm9tOnRo'@; put 'aXMucGFnZS5maXJzdEl0ZW0sdG86dGhpcy5wYWdlLmxhc3RJdGVtLHNpemU6dGhpcy5wYWdlLnNpemUsY3VycmVudDp0aGlzLnBhZ2UuY3VycmVudH0pLHRoaXMuc29ydC5jb21wYXJhdG9yJiYoYS5zb3J0PXRoaXMuc29ydC5jb21wYXJhdG9yIGluc3RhbmNlb2YgdU8/e2J5OnRoaXMuc29y'@; put 'dC5jb21wYXJhdG9yLnByb3AscmV2ZXJzZTp0aGlzLnNvcnQucmV2ZXJzZX06e2J5OnRoaXMuc29ydC5jb21wYXJhdG9yLHJldmVyc2U6dGhpcy5zb3J0LnJldmVyc2V9KTtjb25zdCBkPXRoaXMuZmlsdGVycy5nZXRBY3RpdmVGaWx0ZXJzKCk7aWYoZC5sZW5ndGg+MCl7YS5maWx0ZXJzPVtd'@; put 'O2Zvcihjb25zdCBoIG9mIGQpYS5maWx0ZXJzLnB1c2goaC5zdGF0ZT9oLnN0YXRlOmgpfXJldHVybiBhfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKShDcihjZyksQ3IoZE8pLENyKHdtKSxDcihKeCkpfSxjLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMs'@; put 'ZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpLE1tPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5jb2x1bW5zU2VydmljZT1hLHRoaXMuc3Vic2NyaXB0aW9ucz1bXX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLnNldENlbGxzU3RhdGUoKSx0aGlzLnN1YnNjcmlwdGlvbnMu'@; put 'cHVzaCh0aGlzLmNlbGxzLmNoYW5nZXMuc3Vic2NyaWJlKCgpPT57dGhpcy5zZXRDZWxsc1N0YXRlKCl9KSl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChhPT5hLnVuc3Vic2NyaWJlKCkpfXNldENlbGxzU3RhdGUoKXt0aGlzLmNlbGxzLmxlbmd0aD09PXRoaXMu'@; put 'Y29sdW1uc1NlcnZpY2UuY29sdW1ucy5sZW5ndGgmJnRoaXMuY2VsbHMuZm9yRWFjaCgoYSxkKT0+e3RoaXMuY29sdW1uc1NlcnZpY2UuY29sdW1uc1tkXSYmYS5yZXNldFN0YXRlKHRoaXMuY29sdW1uc1NlcnZpY2UuY29sdW1uc1tkXS52YWx1ZSl9KX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1'@; put 'bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoJGUoZGcpKX0sYy5cdTAyNzVkaXI9RXIoe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLWRnLXJvdyJdLFsiY2xyLWRnLXJvdy1kZXRhaWwiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oYSxkLGgpe2lmKDEmYSYmKGFzKGgsYyw1KSxhcyhoLHhw'@; put 'LDQpKSwyJmEpe2xldCBmO3lpKGY9YmkoKSkmJihkLmV4cGFuZGFibGVSb3c9Zi5maXJzdCkseWkoZj1iaSgpKSYmKGQuY2VsbHM9Zil9fX0pLGN9KSgpLHhtPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZix2LE0sSSxHLHJlLHVlLHllLEVlLEJlLEdlLHN0KXt0aGlzLm9yZ2Fu'@; put 'aXplcj1hLHRoaXMuaXRlbXM9ZCx0aGlzLmV4cGFuZGFibGVSb3dzPWgsdGhpcy5zZWxlY3Rpb249Zix0aGlzLnJvd0FjdGlvblNlcnZpY2U9dix0aGlzLnN0YXRlUHJvdmlkZXI9TSx0aGlzLmRpc3BsYXlNb2RlPUksdGhpcy5yZW5kZXJlcj1HLHRoaXMuZGV0YWlsU2VydmljZT1yZSx0aGlz'@; put 'LmRvY3VtZW50PXVlLHRoaXMuZWw9eWUsdGhpcy5wYWdlPUVlLHRoaXMuY29tbW9uU3RyaW5ncz1CZSx0aGlzLmtleU5hdmlnYXRpb249R2UsdGhpcy56b25lPXN0LHRoaXMuY2xyRGdTaW5nbGVTZWxlY3Rpb25BcmlhTGFiZWw9dGhpcy5jb21tb25TdHJpbmdzLmtleXMuc2luZ2xlU2VsZWN0'@; put 'aW9uQXJpYUxhYmVsLHRoaXMuY2xyRGdTaW5nbGVBY3Rpb25hYmxlQXJpYUxhYmVsPXRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLnNpbmdsZUFjdGlvbmFibGVBcmlhTGFiZWwsdGhpcy5jbHJEZXRhaWxFeHBhbmRhYmxlQXJpYUxhYmVsPXRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmRldGFpbEV4'@; put 'cGFuZGFibGVBcmlhTGFiZWwsdGhpcy5jbHJEZ0Rpc2FibGVQYWdlRm9jdXM9ITEsdGhpcy5zZWxlY3RlZENoYW5nZWQ9bmV3IEtyKCExKSx0aGlzLnNpbmdsZVNlbGVjdGVkQ2hhbmdlZD1uZXcgS3IoITEpLHRoaXMucmVmcmVzaD1uZXcgS3IoITEpLHRoaXMuY3VzdG9tU2VsZWN0QWxsRW5h'@; put 'YmxlZD0hMSx0aGlzLmN1c3RvbVNlbGVjdEFsbD1uZXcgS3IsdGhpcy5TRUxFQ1RJT05fVFlQRT1kbCx0aGlzLl9zdWJzY3JpcHRpb25zPVtdO2NvbnN0IHB0PV91KCk7dGhpcy5zZWxlY3RBbGxJZD0iY2xyLWRnLXNlbGVjdC1hbGwtIitwdCxyZS5pZD1wdH1nZXQgbG9hZGluZygpe3JldHVy'@; put 'biB0aGlzLml0ZW1zLmxvYWRpbmd9c2V0IGxvYWRpbmcoYSl7dGhpcy5pdGVtcy5sb2FkaW5nPWF9c2V0IHNlbGVjdGVkKGEpe3RoaXMuc2VsZWN0aW9uLnNlbGVjdGlvblR5cGU9YT9kbC5NdWx0aTpkbC5Ob25lLHRoaXMuc2VsZWN0aW9uLnVwZGF0ZUN1cnJlbnQoYSwhMSl9c2V0IHNpbmds'@; put 'ZVNlbGVjdGVkKGEpe3RoaXMuc2VsZWN0aW9uLnNlbGVjdGlvblR5cGU9ZGwuU2luZ2xlLGE/dGhpcy5zZWxlY3Rpb24uY3VycmVudFNpbmdsZT1hOnRoaXMuc2VsZWN0aW9uLmN1cnJlbnRTaW5nbGUmJih0aGlzLnNlbGVjdGlvbi5jdXJyZW50U2luZ2xlPW51bGwpfXNldCBjbHJEZ1ByZXNl'@; put 'cnZlU2VsZWN0aW9uKGEpe3RoaXMuc2VsZWN0aW9uLnByZXNlcnZlU2VsZWN0aW9uPWF9c2V0IHJvd1NlbGVjdGlvbk1vZGUoYSl7dGhpcy5zZWxlY3Rpb24ucm93U2VsZWN0aW9uTW9kZT1hfXNldCB0cmFja0J5KGEpe3RoaXMuaXRlbXMudHJhY2tCeT1hfWdldCBhbGxTZWxlY3RlZCgpe3Jl'@; put 'dHVybiB0aGlzLnNlbGVjdGlvbi5pc0FsbFNlbGVjdGVkKCl9c2V0IGFsbFNlbGVjdGVkKGEpe3RoaXMuY3VzdG9tU2VsZWN0QWxsRW5hYmxlZD90aGlzLmN1c3RvbVNlbGVjdEFsbC5lbWl0KGEpOnRoaXMuc2VsZWN0aW9uLnRvZ2dsZUFsbCgpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMu'@; put 'aXRlbXMuc21hcnR8fCh0aGlzLml0ZW1zLmFsbD10aGlzLnJvd3MubWFwKGQ9PmQuaXRlbSkpO2NvbnN0IGE9dGhpcy5yb3dzLmNoYW5nZXMucGlwZShqMShkPT54eChkcyhkLm1hcChoPT5oLml0ZW0pKSxYOChkLm1hcChoPT5oLml0ZW1DaGFuZ2VzKSkucGlwZSh1bSgwKSkpKSk7dGhpcy5f'@; put 'c3Vic2NyaXB0aW9ucy5wdXNoKGEuc3Vic2NyaWJlKGQ9Pnt0aGlzLml0ZW1zLnNtYXJ0fHwodGhpcy5pdGVtcy5hbGw9ZCl9KSx0aGlzLnJvd3MuY2hhbmdlcy5zdWJzY3JpYmUoKCk9Pntmb3IobGV0IGQ9dGhpcy5fZGlzcGxheWVkUm93cy5sZW5ndGgtMTtkPj0wO2QtLSl0aGlzLl9kaXNw'@; put 'bGF5ZWRSb3dzLmdldChkKS5kZXN0cm95ZWQmJnRoaXMuX2Rpc3BsYXllZFJvd3MucmVtb3ZlKGQpO2lmKHRoaXMucm93cy5mb3JFYWNoKGQ9Pnt0aGlzLl9kaXNwbGF5ZWRSb3dzLmluc2VydChkLl92aWV3KX0pLHRoaXMudXBkYXRlRGV0YWlsU3RhdGUoKSx0aGlzLnZpcnR1YWxTY3JvbGwp'@; put 'e2NvbnN0IGQ9dGhpcy5rZXlOYXZpZ2F0aW9uLmdldEFjdGl2ZUNlbGwoKTtkJiZ0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PntzZXRUaW1lb3V0KCgpPT50aGlzLmtleU5hdmlnYXRpb24uc2V0QWN0aXZlQ2VsbChkKSl9KX19KSl9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5rZXlO'@; put 'YXZpZ2F0aW9uLmluaXRpYWxpemVLZXlHcmlkKHRoaXMuZWwubmF0aXZlRWxlbWVudCksdGhpcy51cGRhdGVEZXRhaWxTdGF0ZSgpLHRoaXMucmVmcmVzaC5lbWl0KHRoaXMuc3RhdGVQcm92aWRlci5zdGF0ZSksdGhpcy5fc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuc3RhdGVQcm92aWRlci5j'@; put 'aGFuZ2Uuc3Vic2NyaWJlKGE9PnRoaXMucmVmcmVzaC5lbWl0KGEpKSx0aGlzLnNlbGVjdGlvbi5jaGFuZ2Uuc3Vic2NyaWJlKGE9Pnt0aGlzLnNlbGVjdGlvbi5zZWxlY3Rpb25UeXBlPT09ZGwuU2luZ2xlP3RoaXMuc2luZ2xlU2VsZWN0ZWRDaGFuZ2VkLmVtaXQoYSk6dGhpcy5zZWxlY3Rp'@; put 'b24uc2VsZWN0aW9uVHlwZT09PWRsLk11bHRpJiZ0aGlzLnNlbGVjdGVkQ2hhbmdlZC5lbWl0KGEpfSksdGhpcy5wYWdlLmNoYW5nZS5zdWJzY3JpYmUoKCk9Pnt0aGlzLmtleU5hdmlnYXRpb24ucmVzZXRLZXlHcmlkKCksdGhpcy5jbHJEZ0Rpc2FibGVQYWdlRm9jdXN8fHRoaXMuZGF0YWdy'@; put 'aWRUYWJsZS5uYXRpdmVFbGVtZW50LmZvY3VzKCl9KSx0aGlzLmRpc3BsYXlNb2RlLnZpZXcuc3Vic2NyaWJlKGE9Pntmb3IobGV0IGQ9dGhpcy5fcHJvamVjdGVkRGlzcGxheUNvbHVtbnMubGVuZ3RoO2Q+MDtkLS0pdGhpcy5fcHJvamVjdGVkRGlzcGxheUNvbHVtbnMuZGV0YWNoKCk7Zm9y'@; put 'KGxldCBkPXRoaXMuX3Byb2plY3RlZENhbGN1bGF0aW9uQ29sdW1ucy5sZW5ndGg7ZD4wO2QtLSl0aGlzLl9wcm9qZWN0ZWRDYWxjdWxhdGlvbkNvbHVtbnMuZGV0YWNoKCk7Zm9yKGxldCBkPXRoaXMuX2NhbGN1bGF0aW9uUm93cy5sZW5ndGg7ZD4wO2QtLSl0aGlzLl9jYWxjdWxhdGlvblJv'@; put 'd3MuZGV0YWNoKCk7Zm9yKGxldCBkPXRoaXMuX2Rpc3BsYXllZFJvd3MubGVuZ3RoO2Q+MDtkLS0pdGhpcy5fZGlzcGxheWVkUm93cy5kZXRhY2goKTthPT09WGIuRElTUExBWT8odGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsImRhdGFncmlkLWNhbGN1'@; put 'bGF0ZS1tb2RlIiksdGhpcy5jb2x1bW5zLmZvckVhY2goZD0+e3RoaXMuX3Byb2plY3RlZERpc3BsYXlDb2x1bW5zLmluc2VydChkLl92aWV3KX0pLHRoaXMucm93cy5mb3JFYWNoKGQ9Pnt0aGlzLl9kaXNwbGF5ZWRSb3dzLmluc2VydChkLl92aWV3KX0pKToodGhpcy5yZW5kZXJlci5hZGRD'@; put 'bGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsImRhdGFncmlkLWNhbGN1bGF0ZS1tb2RlIiksdGhpcy5jb2x1bW5zLmZvckVhY2goZD0+e3RoaXMuX3Byb2plY3RlZENhbGN1bGF0aW9uQ29sdW1ucy5pbnNlcnQoZC5fdmlldyl9KSx0aGlzLnJvd3MuZm9yRWFjaChkPT57dGhpcy5fY2FsY3Vs'@; put 'YXRpb25Sb3dzLmluc2VydChkLl92aWV3KX0pKX0pKSx0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0aGlzLl9zdWJzY3JpcHRpb25zLnB1c2goeGQodGhpcy5kb2N1bWVudC5ib2R5LCJrZXlkb3duIikuc3Vic2NyaWJlKGE9PnsiU2hpZnQiPT09YS5rZXkmJih0aGlzLnNlbGVj'@; put 'dGlvbi5zaGlmdFByZXNzZWQ9ITApfSkseGQodGhpcy5kb2N1bWVudC5ib2R5LCJrZXl1cCIpLnN1YnNjcmliZShhPT57IlNoaWZ0Ij09PWEua2V5JiYodGhpcy5zZWxlY3Rpb24uc2hpZnRQcmVzc2VkPSExKX0pKX0pfW5nT25EZXN0cm95KCl7dGhpcy5fc3Vic2NyaXB0aW9ucy5mb3JFYWNo'@; put 'KGE9PmEudW5zdWJzY3JpYmUoKSl9dG9nZ2xlQWxsU2VsZWN0ZWQoYSl7YS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuc2VsZWN0QWxsQ2hlY2tib3g/Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKX1yZXNpemUoKXt0aGlzLm9yZ2FuaXplci5yZXNpemUoKX11cGRhdGVEZXRhaWxTdGF0ZSgpe2lmKHRo'@; put 'aXMuZGV0YWlsU2VydmljZS5zdGF0ZSYmdGhpcy5kZXRhaWxTZXJ2aWNlLmlzT3Blbil7Y29uc3QgYT10aGlzLnJvd3MuZmluZChkPT50aGlzLml0ZW1zLnRyYWNrQnkoZC5pdGVtKT09PXRoaXMuaXRlbXMudHJhY2tCeSh0aGlzLmRldGFpbFNlcnZpY2Uuc3RhdGUpKTthP3RoaXMuZGV0YWls'@; put 'U2VydmljZS5vcGVuKGEuaXRlbSxhLmRldGFpbEJ1dHRvbi5uYXRpdmVFbGVtZW50KTp0aGlzLnZpcnR1YWxTY3JvbGx8fHNldFRpbWVvdXQoKCk9Pnt0aGlzLmRldGFpbFNlcnZpY2UuY2xvc2UoKX0pfX1kYXRhQ2hhbmdlZCgpe3RoaXMuaXRlbXMucmVmcmVzaCgpfX1yZXR1cm4gYy5cdTAy'@; put 'NzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZShJNyksJGUodWcpLCRlKEdiKSwkZShxYiksJGUoWWIpLCRlKFVkZSksJGUod0cpLCRlKEVzKSwkZSh0MyksJGUobW8pLCRlKFFpKSwkZSh3bSksJGUodG8pLCRlKG9PKSwkZShHYSkpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpj'@; put 'LHNlbGVjdG9yczpbWyJjbHItZGF0YWdyaWQiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oYSxkLGgpe2lmKDEmYSYmKGFzKGgsemRlLDUpLGFzKGgsS2IsNSksYXMoaCx5Ryw1KSxhcyhoLFI3LDQpLGFzKGgsU20sNCkpLDImYSl7bGV0IGY7eWkoZj1iaSgpKSYmKGQudmlydHVhbFNjcm9s'@; put 'bD1mLmZpcnN0KSx5aShmPWJpKCkpJiYoZC5pdGVyYXRvcj1mLmZpcnN0KSx5aShmPWJpKCkpJiYoZC5wbGFjZWhvbGRlcj1mLmZpcnN0KSx5aShmPWJpKCkpJiYoZC5jb2x1bW5zPWYpLHlpKGY9YmkoKSkmJihkLnJvd3M9Zil9fSx2aWV3UXVlcnk6ZnVuY3Rpb24oYSxkKXtpZigxJmEmJihG'@; put 'YSh0amUsNSxRaSksRmEobmplLDUsUWkpLEZhKHJqZSw1LFRzKSxGYShpamUsNSxUcyksRmEoYWplLDUsVHMpLEZhKHNqZSw1LFRzKSxGYShvamUsNSxUcyksRmEobGplLDUpKSwyJmEpe2xldCBoO3lpKGg9YmkoKSkmJihkLmRhdGFncmlkPWguZmlyc3QpLHlpKGg9YmkoKSkmJihkLmRhdGFn'@; put 'cmlkVGFibGU9aC5maXJzdCkseWkoaD1iaSgpKSYmKGQuc2Nyb2xsYWJsZUNvbHVtbnM9aC5maXJzdCkseWkoaD1iaSgpKSYmKGQuX3Byb2plY3RlZERpc3BsYXlDb2x1bW5zPWguZmlyc3QpLHlpKGg9YmkoKSkmJihkLl9wcm9qZWN0ZWRDYWxjdWxhdGlvbkNvbHVtbnM9aC5maXJzdCkseWko'@; put 'aD1iaSgpKSYmKGQuX2Rpc3BsYXllZFJvd3M9aC5maXJzdCkseWkoaD1iaSgpKSYmKGQuX2NhbGN1bGF0aW9uUm93cz1oLmZpcnN0KSx5aShoPWJpKCkpJiYoZC5zZWxlY3RBbGxDaGVja2JveD1oLmZpcnN0KX19LGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZU'@; put 'cigiZGF0YWdyaWQtaG9zdCIsITApKCJkYXRhZ3JpZC1kZXRhaWwtb3BlbiIsZC5kZXRhaWxTZXJ2aWNlLmlzT3Blbil9LGlucHV0czp7bG9hZGluZ01vcmVJdGVtczpbVm4uTm9uZSwiY2xyTG9hZGluZ01vcmVJdGVtcyIsImxvYWRpbmdNb3JlSXRlbXMiXSxjbHJEZ1NpbmdsZVNlbGVjdGlv'@; put 'bkFyaWFMYWJlbDoiY2xyRGdTaW5nbGVTZWxlY3Rpb25BcmlhTGFiZWwiLGNsckRnU2luZ2xlQWN0aW9uYWJsZUFyaWFMYWJlbDoiY2xyRGdTaW5nbGVBY3Rpb25hYmxlQXJpYUxhYmVsIixjbHJEZXRhaWxFeHBhbmRhYmxlQXJpYUxhYmVsOiJjbHJEZXRhaWxFeHBhbmRhYmxlQXJpYUxhYmVs'@; put 'IixjbHJEZ0Rpc2FibGVQYWdlRm9jdXM6ImNsckRnRGlzYWJsZVBhZ2VGb2N1cyIsY3VzdG9tU2VsZWN0QWxsRW5hYmxlZDpbVm4uTm9uZSwiY2xyRGdDdXN0b21TZWxlY3RBbGxFbmFibGVkIiwiY3VzdG9tU2VsZWN0QWxsRW5hYmxlZCJdLGxvYWRpbmc6W1ZuLk5vbmUsImNsckRnTG9hZGlu'@; put 'ZyIsImxvYWRpbmciXSxzZWxlY3RlZDpbVm4uTm9uZSwiY2xyRGdTZWxlY3RlZCIsInNlbGVjdGVkIl0sc2luZ2xlU2VsZWN0ZWQ6W1ZuLk5vbmUsImNsckRnU2luZ2xlU2VsZWN0ZWQiLCJzaW5nbGVTZWxlY3RlZCJdLGNsckRnUHJlc2VydmVTZWxlY3Rpb246ImNsckRnUHJlc2VydmVTZWxl'@; put 'Y3Rpb24iLHJvd1NlbGVjdGlvbk1vZGU6W1ZuLk5vbmUsImNsckRnUm93U2VsZWN0aW9uIiwicm93U2VsZWN0aW9uTW9kZSJdLHRyYWNrQnk6W1ZuLk5vbmUsImNsckRnSXRlbXNUcmFja0J5IiwidHJhY2tCeSJdfSxvdXRwdXRzOntzZWxlY3RlZENoYW5nZWQ6ImNsckRnU2VsZWN0ZWRDaGFu'@; put 'Z2UiLHNpbmdsZVNlbGVjdGVkQ2hhbmdlZDoiY2xyRGdTaW5nbGVTZWxlY3RlZENoYW5nZSIscmVmcmVzaDoiY2xyRGdSZWZyZXNoIixjdXN0b21TZWxlY3RBbGw6ImNsckRnQ3VzdG9tU2VsZWN0QWxsIn0sZmVhdHVyZXM6W3VhKFtxYixkTyxjZyx3bSx1ZyxJNyxZYixHYixKeCx0MyxVZGUs'@; put 'dkcsZGcsd0csb09dKV0sbmdDb250ZW50U2VsZWN0b3JzOnVqZSxkZWNsczozNSx2YXJzOjksY29uc3RzOltbImRhdGFncmlkIiwiIl0sWyJkYXRhZ3JpZFRhYmxlIiwiIl0sWyJwcm9qZWN0ZWREaXNwbGF5Q29sdW1ucyIsIiJdLFsiZGlzcGxheWVkUm93cyIsIiJdLFsicHJvamVjdGVkQ2Fs'@; put 'Y3VsYXRpb25Db2x1bW5zIiwiIl0sWyJjYWxjdWxhdGlvblJvd3MiLCIiXSxbInNlbGVjdEFsbENoZWNrYm94IiwiIl0sWzEsImRhdGFncmlkLW91dGVyLXdyYXBwZXIiXSxbMSwiZGF0YWdyaWQtaW5uZXItd3JhcHBlciJdLFsxLCJkYXRhZ3JpZCJdLFsxLCJkYXRhZ3JpZC10YWJsZS13cmFw'@; put 'cGVyIl0sWyJyb2xlIiwiZ3JpZCIsInRhYmluZGV4IiwiLTEiLDEsImRhdGFncmlkLXRhYmxlIl0sWyJyb2xlIiwicm93Z3JvdXAiLDEsImRhdGFncmlkLWhlYWRlciJdLFsicm9sZSIsInJvdyIsMSwiZGF0YWdyaWQtcm93Il0sWzEsImRhdGFncmlkLXJvdy1tYXN0ZXIiLCJkYXRhZ3JpZC1y'@; put 'b3ctZmxleCJdLFsxLCJkYXRhZ3JpZC1yb3ctc3RpY2t5Il0sWyJyb2xlIiwiY29sdW1uaGVhZGVyIiwiY2xhc3MiLCJkYXRhZ3JpZC1jb2x1bW4gZGF0YWdyaWQtc2VsZWN0IGRhdGFncmlkLWZpeGVkLWNvbHVtbiIsMywia2V5ZG93bi5zcGFjZSIsNCwibmdJZiJdLFsicm9sZSIsImNvbHVt'@; put 'bmhlYWRlciIsImNsYXNzIiwiZGF0YWdyaWQtY29sdW1uIGRhdGFncmlkLXNlbGVjdCBkYXRhZ3JpZC1maXhlZC1jb2x1bW4iLDQsIm5nSWYiXSxbInJvbGUiLCJjb2x1bW5oZWFkZXIiLCJjbGFzcyIsImRhdGFncmlkLWNvbHVtbiBkYXRhZ3JpZC1yb3ctYWN0aW9ucyBkYXRhZ3JpZC1maXhl'@; put 'ZC1jb2x1bW4iLDQsIm5nSWYiXSxbInJvbGUiLCJjb2x1bW5oZWFkZXIiLCJjbGFzcyIsImRhdGFncmlkLWNvbHVtbiBkYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0IGRhdGFncmlkLWZpeGVkLWNvbHVtbiIsNCwibmdJZiJdLFsxLCJkYXRhZ3JpZC1yb3ctc2Nyb2xsYWJsZSJdLFsicm9sZSIs'@; put 'InByZXNlbnRhdGlvbiIsMSwiZGF0YWdyaWQtcm93cyJdLFsiY2xhc3MiLCJkYXRhZ3JpZC1yb3ctbG9hZGluZyIsNCwibmdJZiJdLFs0LCJuZ0lmIl0sWyJjbGFzcyIsImRhdGFncmlkLXNwaW5uZXIiLDQsIm5nSWYiXSxbMSwiZGF0YWdyaWQtY2FsY3VsYXRpb24tdGFibGUiXSxbMSwiZGF0'@; put 'YWdyaWQtY2FsY3VsYXRpb24taGVhZGVyIl0sWyJyb2xlIiwiY29sdW1uaGVhZGVyIiwxLCJkYXRhZ3JpZC1jb2x1bW4iLCJkYXRhZ3JpZC1zZWxlY3QiLCJkYXRhZ3JpZC1maXhlZC1jb2x1bW4iLDMsImtleWRvd24uc3BhY2UiXSxbImNsYXNzIiwiY2xyLWNoZWNrYm94LXdyYXBwZXIiLDQs'@; put 'Im5nSWYiXSxbMSwiZGF0YWdyaWQtY29sdW1uLXNlcGFyYXRvciJdLFsxLCJjbHItY2hlY2tib3gtd3JhcHBlciJdLFsidHlwZSIsImNoZWNrYm94IiwidGFiaW5kZXgiLCItMSIsMywibmdNb2RlbENoYW5nZSIsImlkIiwibmdNb2RlbCJdLFsxLCJjbHItY29udHJvbC1sYWJlbCIsImNsci1j'@; put 'b2wtbnVsbCIsMywiZm9yIl0sWzEsImNsci1zci1vbmx5Il0sWyJyb2xlIiwiY29sdW1uaGVhZGVyIiwxLCJkYXRhZ3JpZC1jb2x1bW4iLCJkYXRhZ3JpZC1zZWxlY3QiLCJkYXRhZ3JpZC1maXhlZC1jb2x1bW4iXSxbInJvbGUiLCJjb2x1bW5oZWFkZXIiLDEsImRhdGFncmlkLWNvbHVtbiIs'@; put 'ImRhdGFncmlkLXJvdy1hY3Rpb25zIiwiZGF0YWdyaWQtZml4ZWQtY29sdW1uIl0sWyJyb2xlIiwiY29sdW1uaGVhZGVyIiwxLCJkYXRhZ3JpZC1jb2x1bW4iLCJkYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0IiwiZGF0YWdyaWQtZml4ZWQtY29sdW1uIl0sWzEsImRhdGFncmlkLXJvdy1sb2Fk'@; put 'aW5nIl0sWyJjbHJNZWRpdW0iLCIiXSxbMSwiZGF0YWdyaWQtc3Bpbm5lciJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKHNhKGNqZSksV3IoMCksZGUoMSwiZGl2Iiw3KSgyLCJkaXYiLDgpKDMsImRpdiIsOSwwKSg1LCJkaXYiLDEwKSg2LCJkaXYiLDExLDEpKDgsImRpdiIsMTIp'@; put 'KDksImRpdiIsMTMpKDEwLCJkaXYiLDE0KSgxMSwiZGl2IiwxNSksZ3QoMTIsaGplLDMsMSwiZGl2IiwxNikoMTMsZmplLDQsMSwiZGl2IiwxNykoMTQscGplLDQsMSwiZGl2IiwxOCkoMTUsZ2plLDQsMSwiZGl2IiwxOSksaGUoKSxkZSgxNiwiZGl2IiwyMCksTGwoMTcsbnVsbCwyKSxoZSgp'@; put 'KCkoKSgpLGRlKDE5LCJkaXYiLDIxKSxndCgyMCxtamUsNSwxLCJjbHItZGctcm93IiwyMiksTGwoMjEsbnVsbCwzKSxndCgyMyx2amUsNSwxLCJjbHItZGctcm93IiwyMiksV3IoMjQsMSksZ3QoMjUseWplLDEsMCwiY2xyLWRnLXBsYWNlaG9sZGVyIiwyMyksaGUoKSgpKCkoKSxXcigyNiwy'@; put 'KSxndCgyNyxiamUsMywwLCJkaXYiLDI0KSxoZSgpLFdyKDI4LDMpLGhlKCksZGUoMjksImRpdiIsMjUpKDMwLCJkaXYiLDI2KSxMbCgzMSxudWxsLDQpLGhlKCksTGwoMzMsbnVsbCw1KSxoZSgpKSwyJmEmJihmZSgzKSxocigiYXJpYS1oaWRkZW4iLCEhZC5kZXRhaWxTZXJ2aWNlLmlzT3Bl'@; put 'bnx8bnVsbCksZmUoOSksTWUoIm5nSWYiLGQuc2VsZWN0aW9uLnNlbGVjdGlvblR5cGU9PT1kLlNFTEVDVElPTl9UWVBFLk11bHRpKSxmZSgpLE1lKCJuZ0lmIixkLnNlbGVjdGlvbi5zZWxlY3Rpb25UeXBlPT09ZC5TRUxFQ1RJT05fVFlQRS5TaW5nbGUpLGZlKCksTWUoIm5nSWYiLGQucm93'@; put 'QWN0aW9uU2VydmljZS5oYXNBY3Rpb25hYmxlUm93KSxmZSgpLE1lKCJuZ0lmIixkLmV4cGFuZGFibGVSb3dzLmhhc0V4cGFuZGFibGVSb3d8fGQuZGV0YWlsU2VydmljZS5lbmFibGVkKSxmZSg1KSxNZSgibmdJZiIsZC5sb2FkaW5nTW9yZUl0ZW1zKSxmZSgzKSxNZSgibmdJZiIsZC5sb2Fk'@; put 'aW5nTW9yZUl0ZW1zKSxmZSgyKSxNZSgibmdJZiIsIWQucGxhY2Vob2xkZXIpLGZlKDIpLE1lKCJuZ0lmIixkLmxvYWRpbmcpKX0sZGVwZW5kZW5jaWVzOltiYSxjbyxNZCx0bCxXbyxSZCxyMyx5RyxTbSxDRyx4cCxNbSxrNyxEN10sZW5jYXBzdWxhdGlvbjoyfSksY30pKCk7Y29uc3QgbFdl'@; put 'PWM9PmM7bGV0IFpkZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCl7dGhpcy5jb21tb25TdHJpbmdzPWEsdGhpcy5jb2x1bW5zU2VydmljZT1kLHRoaXMuYWxsU2VsZWN0ZWQ9bmV3IEtyfWdldCBjbHJBbGxTZWxlY3RlZCgpe3JldHVybiB0aGlzLmFsbFNlbGVjdGVkLmFzT2JzZXJ2'@; put 'YWJsZSgpfWdldCBhbGxIaWRlYWJsZXNWaXNpYmxlKCl7cmV0dXJuIDA9PT10aGlzLmhpZGVhYmxlQ29sdW1ucygpLmZpbHRlcihhPT5hLnZhbHVlLmhpZGRlbikubGVuZ3RofXNlbGVjdEFsbCgpe3RoaXMuaGlkZWFibGVDb2x1bW5zKCkuZm9yRWFjaChhPT50aGlzLmNvbHVtbnNTZXJ2aWNl'@; put 'LmVtaXRTdGF0ZUNoYW5nZShhLHtoaWRkZW46ITEsY2hhbmdlczpbRzEuSElEREVOXX0pKSx0aGlzLmFsbFNlbGVjdGVkLm5leHQoITApfWhpZGVhYmxlQ29sdW1ucygpe3JldHVybiB0aGlzLmNvbHVtbnNTZXJ2aWNlLmNvbHVtbnMuZmlsdGVyKGE9PmEudmFsdWUuaGlkZWFibGUpfX1yZXR1'@; put 'cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZSh0byksJGUoZGcpKX0sYy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLWRnLWNvbHVtbi10b2dnbGUtYnV0dG9uIl1dLG91dHB1dHM6e2NsckFsbFNlbGVjdGVkOiJjbHJBbGxTZWxlY3Rl'@; put 'ZCJ9LGRlY2xzOjIsdmFyczoyLGNvbnN0czpbWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tbGluayIsInN3aXRjaC1idXR0b24iLDMsImNsaWNrIiwiZGlzYWJsZWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihkZSgwLCJidXR0b24iLDApLEZ0KCJjbGlj'@; put 'ayIsZnVuY3Rpb24oKXtyZXR1cm4gZC5zZWxlY3RBbGwoKX0pLE9lKDEpLGhlKCkpLDImYSYmKE1lKCJkaXNhYmxlZCIsZC5hbGxIaWRlYWJsZXNWaXNpYmxlKSxmZSgpLExyKCIgIixkLmNvbW1vblN0cmluZ3Mua2V5cy5zZWxlY3RBbGwsIiAiKSl9LGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgp'@; put 'LFdkZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoKXt0aGlzLmNvbW1vblN0cmluZ3M9YSx0aGlzLmNvbHVtbnNTZXJ2aWNlPWQsdGhpcy5wb3BvdmVySWQ9X3UoKSx0aGlzLm9wZW5TdGF0ZT0hMSx0aGlzLnNtYXJ0UG9zaXRpb249e2F4aXM6ZDEuVkVSVElDQUwsc2lkZTpPMi5C'@; put 'RUZPUkUsYW5jaG9yOk9vLlNUQVJULGNvbnRlbnQ6T28uU1RBUlR9LHRoaXMudHJhY2tCeUZuPWxXZSx0aGlzLnN1YnNjcmlwdGlvbj1oLm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKGY9PnRoaXMub3BlblN0YXRlPWYpfWdldCBhbGxDb2x1bW5zVmlzaWJsZSgpe3JldHVybiB0aGlzLl9hbGxDb2x1'@; put 'bW5zVmlzaWJsZX1zZXQgYWxsQ29sdW1uc1Zpc2libGUoYSl7dGhpcy5fYWxsQ29sdW1uc1Zpc2libGU9YX1nZXQgaGlkZWFibGVDb2x1bW5TdGF0ZXMoKXtyZXR1cm4gdGhpcy5jb2x1bW5zU2VydmljZS5jb2x1bW5zLmZpbHRlcihkPT5kLnZhbHVlLmhpZGVhYmxlKS5tYXAoZD0+ZC52YWx1'@; put 'ZSl9Z2V0IGhhc09ubHlPbmVWaXNpYmxlQ29sdW1uKCl7cmV0dXJuIHRoaXMuY29sdW1uc1NlcnZpY2UuY29sdW1ucy5sZW5ndGgtdGhpcy5oaWRlYWJsZUNvbHVtblN0YXRlcy5sZW5ndGg9PTAmJjE9PT10aGlzLmhpZGVhYmxlQ29sdW1uU3RhdGVzLmZpbHRlcihkPT4hZC5oaWRkZW4pLmxl'@; put 'bmd0aH1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9dG9nZ2xlQ29sdW1uU3RhdGUoYSxkKXtjb25zdCBoPXRoaXMuY29sdW1uc1NlcnZpY2UuY29sdW1ucy5maWx0ZXIoZj0+Zi52YWx1ZT09PWEpWzBdO3RoaXMuY29sdW1uc1NlcnZpY2UuZW1pdFN0YXRl'@; put 'Q2hhbmdlKGgse2hpZGRlbjpkLGNoYW5nZXM6W0cxLkhJRERFTl19KX10b2dnbGVTd2l0Y2hQYW5lbCgpe3RoaXMub3BlblN0YXRlPSF0aGlzLm9wZW5TdGF0ZX1hbGxDb2x1bW5zU2VsZWN0ZWQoKXt0aGlzLmFsbFNlbGVjdGVkRWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCl9fXJldHVy'@; put 'biBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKCRlKHRvKSwkZShkZyksJGUoc2MpKX0sYy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLWRnLWNvbHVtbi10b2dnbGUiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGEsZCl7aWYoMSZhJiZGYSh3amUs'@; put 'NSxRaSksMiZhKXtsZXQgaDt5aShoPWJpKCkpJiYoZC5hbGxTZWxlY3RlZEVsZW1lbnQ9aC5maXJzdCl9fSxob3N0VmFyczo0LGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmVHIoImNvbHVtbi1zd2l0Y2gtd3JhcHBlciIsITApKCJhY3RpdmUiLGQub3BlblN0YXRlKX0sZmVhdHVy'@; put 'ZXM6W3lkKFthZ10pXSxkZWNsczozLHZhcnM6OCxjb25zdHM6W1siYWxsU2VsZWN0ZWQiLCIiXSxbInJvbGUiLCJidXR0b24iLCJ0eXBlIiwiYnV0dG9uIiwiY2xyUG9wb3ZlckFuY2hvciIsIiIsImNsclBvcG92ZXJPcGVuQ2xvc2VCdXR0b24iLCIiLDEsImJ0biIsImJ0bi1zbSIsImNvbHVt'@; put 'bi10b2dnbGUtLWFjdGlvbiJdLFsiY2xhc3MiLCJjb2x1bW4tc3dpdGNoIiwicm9sZSIsImRpYWxvZyIsImNka1RyYXBGb2N1cyIsIiIsMywiaWQiLDQsImNsclBvcG92ZXJDb250ZW50IiwiY2xyUG9wb3ZlckNvbnRlbnRBdCIsImNsclBvcG92ZXJDb250ZW50T3V0c2lkZUNsaWNrVG9DbG9z'@; put 'ZSIsImNsclBvcG92ZXJDb250ZW50U2Nyb2xsVG9DbG9zZSJdLFsicm9sZSIsImRpYWxvZyIsImNka1RyYXBGb2N1cyIsIiIsMSwiY29sdW1uLXN3aXRjaCIsMywiaWQiXSxbMSwic3dpdGNoLWhlYWRlciJdLFsidGFiaW5kZXgiLCItMSIsMSwiY2xyLXNyLW9ubHkiXSxbImNsclBvcG92ZXJD'@; put 'bG9zZUJ1dHRvbiIsIiIsInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1saW5rIiwidG9nZ2xlLXN3aXRjaC1jbG9zZS1idXR0b24iXSxbInNoYXBlIiwid2luZG93LWNsb3NlIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIl0sWzEsImNsci1zci1vbmx5Il0sWzEsInN3aXRjaC1j'@; put 'b250ZW50IiwibGlzdC11bnN0eWxlZCJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiLCJuZ0ZvclRyYWNrQnkiXSxbMSwic3dpdGNoLWZvb3RlciJdLFszLCJjbHJBbGxTZWxlY3RlZCJdLFsiY2xyQ2hlY2tib3giLCIiLCJ0eXBlIiwiY2hlY2tib3giLDMsIm5nTW9kZWxDaGFuZ2UiLCJkaXNhYmxl'@; put 'ZCIsIm5nTW9kZWwiXSxbMywibmdUZW1wbGF0ZU91dGxldCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKGRlKDAsImJ1dHRvbiIsMSksT2UoMSksaGUoKSxndCgyLE1qZSwxNSw5LCJkaXYiLDIpKSwyJmEmJihocigiYXJpYS1jb250cm9scyIsZC5wb3BvdmVySWQpKCJhcmlhLWV4'@; put 'cGFuZGVkIixkLm9wZW5TdGF0ZSkoImFyaWEtaGFzcG9wdXAiLCJtZW51IiksZmUoKSxMcigiICIsZC5jb21tb25TdHJpbmdzLmtleXMucGlja0NvbHVtbnMsIiAiKSxmZSgpLE1lKCJjbHJQb3BvdmVyQ29udGVudCIsZC5vcGVuU3RhdGUpKCJjbHJQb3BvdmVyQ29udGVudEF0IixkLnNtYXJ0'@; put 'UG9zaXRpb24pKCJjbHJQb3BvdmVyQ29udGVudE91dHNpZGVDbGlja1RvQ2xvc2UiLCEwKSgiY2xyUG9wb3ZlckNvbnRlbnRTY3JvbGxUb0Nsb3NlIiwhMCkpfSxkZXBlbmRlbmNpZXM6W1FzLEIxLEJiLGVvLGNvLElkLHhoLE1kLHRsLFdvLEJ4LFUxZSxVeCx6eCxaZGVdLGVuY2Fwc3VsYXRp'@; put 'b246Mn0pLGN9KSgpLEdkZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMuZXhwYW5kYWJsZVJvd3NDb3VudD1hLGEmJmEucmVnaXN0ZXIoKX1uZ09uRGVzdHJveSgpe3RoaXMuZXhwYW5kYWJsZVJvd3NDb3VudCYmdGhpcy5leHBhbmRhYmxlUm93c0NvdW50LnVucmVnaXN0ZXIo'@; put 'KX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoJGUoR2IsOCkpfSxjLlx1MDI3NWRpcj1Fcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJjbHJJZkV4cGFuZGVkIiwiIl1dfSksY30pKCksZk89KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxm'@; put 'KXt0aGlzLnNlbGVjdGlvbj1hLHRoaXMuZGV0YWlsU2VydmljZT1kLHRoaXMuY29sdW1uc1NlcnZpY2U9aCx0aGlzLmNvbW1vblN0cmluZ3M9Zix0aGlzLlNFTEVDVElPTl9UWVBFPWRsfWdldCBoYXNIaWRlYWJsZUNvbHVtbnMoKXtyZXR1cm4gdGhpcy5jb2x1bW5zU2VydmljZS5oYXNIaWRl'@; put 'YWJsZUNvbHVtbnN9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKCRlKHFiKSwkZSh0MyksJGUoZGcpLCRlKHRvKSl9LGMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1kZy1mb290ZXIiXV0saG9zdFZhcnM6Mixob3N0QmluZGlu'@; put 'Z3M6ZnVuY3Rpb24oYSxkKXsyJmEmJlRyKCJkYXRhZ3JpZC1mb290ZXIiLCEwKX0sbmdDb250ZW50U2VsZWN0b3JzOlRqZSxkZWNsczozLHZhcnM6Mixjb25zdHM6W1s0LCJuZ0lmIl0sWzEsImNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQiXSxbMSwiZGF0YWdyaWQtZm9vdGVyLXNlbGVjdCJd'@; put 'LFsiY2xyQ2hlY2tib3giLCIiLCJ0eXBlIiwiY2hlY2tib3giLCJjaGVja2VkIiwiY2hlY2tlZCIsImRpc2FibGVkIiwiIl0sWzEsImNsci1zci1vbmx5Il0sWzEsImRhdGFncmlkLWZvb3Rlci1kZXNjcmlwdGlvbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKHNhKEVqZSksZ3Qo'@; put 'MCxBamUsOCwyLCJuZy1jb250YWluZXIiLDApKDEsRGplLDQsMSwibmctY29udGFpbmVyIiwwKSxXcigyKSksMiZhJiYoTWUoIm5nSWYiLGQuc2VsZWN0aW9uLnNlbGVjdGlvblR5cGU9PT1kLlNFTEVDVElPTl9UWVBFLk11bHRpJiZkLnNlbGVjdGlvbi5jdXJyZW50Lmxlbmd0aD4wKSxmZSgp'@; put 'LE1lKCJuZ0lmIiwhZC5kZXRhaWxTZXJ2aWNlLmlzT3BlbikpfSxkZXBlbmRlbmNpZXM6W2JhLGNvLElkLHhoLFdkZV0sZW5jYXBzdWxhdGlvbjoyfSksY30pKCk7Y29uc3QgU0c9bmV3IFN0KCJDT0xVTU5fU1RBVEUiKSxoV2U9e3Byb3ZpZGU6U0csdXNlRmFjdG9yeTpmdW5jdGlvbiBkV2Uo'@; put 'KXtyZXR1cm4gbmV3IEpyKHtjaGFuZ2VzOltdfSl9fTtsZXQgbkU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLnBhZ2U9YSx0aGlzLnBhZ2VTaXplT3B0aW9uc0lkPV91KCl9bmdPbkluaXQoKXsoIXRoaXMucGFnZVNpemVPcHRpb25zfHwwPT09dGhpcy5wYWdlU2l6ZU9wdGlv'@; put 'bnMubGVuZ3RoKSYmKHRoaXMucGFnZVNpemVPcHRpb25zPVt0aGlzLnBhZ2Uuc2l6ZV0pfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZSh3bSkpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItZGctcGFnZS1zaXplIl1d'@; put 'LGlucHV0czp7cGFnZVNpemVPcHRpb25zOltWbi5Ob25lLCJjbHJQYWdlU2l6ZU9wdGlvbnMiLCJwYWdlU2l6ZU9wdGlvbnMiXSxwYWdlU2l6ZU9wdGlvbnNJZDpbVm4uTm9uZSwiY2xyUGFnZVNpemVPcHRpb25zSWQiLCJwYWdlU2l6ZU9wdGlvbnNJZCJdfSxuZ0NvbnRlbnRTZWxlY3RvcnM6'@; put 'eXMsZGVjbHM6NSx2YXJzOjYsY29uc3RzOltbMywiZm9yIl0sWzEsImNsci1zZWxlY3Qtd3JhcHBlciJdLFszLCJuZ01vZGVsQ2hhbmdlIiwiaWQiLCJuZ01vZGVsIl0sWzMsIm5nVmFsdWUiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFszLCJuZ1ZhbHVlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEs'@; put 'ZCl7MSZhJiYoc2EoKSxkZSgwLCJsYWJlbCIsMCksV3IoMSksaGUoKSxkZSgyLCJkaXYiLDEpKDMsInNlbGVjdCIsMikscGkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGYpe3JldHVybiBnaShkLnBhZ2Uuc2l6ZSxmKXx8KGQucGFnZS5zaXplPWYpLGZ9KSxndCg0LElqZSwyLDIsIm9wdGlv'@; put 'biIsMyksaGUoKSgpKSwyJmEmJihNZSgiZm9yIixkLnBhZ2VTaXplT3B0aW9uc0lkKSxmZSgzKSxUcigiY2xyLXBhZ2Utc2l6ZS1zZWxlY3QiLCEwKSxNZSgiaWQiLGQucGFnZVNpemVPcHRpb25zSWQpLGZpKCJuZ01vZGVsIixkLnBhZ2Uuc2l6ZSksZmUoKSxNZSgibmdGb3JPZiIsZC5wYWdl'@; put 'U2l6ZU9wdGlvbnMpKX0sZGVwZW5kZW5jaWVzOltRcyxjbyxEMixJMixrMix0bCxXb10sZW5jYXBzdWxhdGlvbjoyfSksY30pKCkscE89KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCl7dGhpcy5wYWdlPWEsdGhpcy5jb21tb25TdHJpbmdzPWQsdGhpcy5kZXRhaWxTZXJ2aWNlPWgs'@; put 'dGhpcy5jdXJyZW50Q2hhbmdlZD1uZXcgS3IoITEpLGEuYWN0aXZhdGVkPSEwfWdldCBwYWdlU2l6ZSgpe3JldHVybiB0aGlzLnBhZ2Uuc2l6ZX1zZXQgcGFnZVNpemUoYSl7Im51bWJlciI9PXR5cGVvZiBhJiYodGhpcy5wYWdlLnNpemU9YSl9Z2V0IHRvdGFsSXRlbXMoKXtyZXR1cm4gdGhp'@; put 'cy5wYWdlLnRvdGFsSXRlbXN9c2V0IHRvdGFsSXRlbXMoYSl7Im51bWJlciI9PXR5cGVvZiBhJiYodGhpcy5wYWdlLnRvdGFsSXRlbXM9YSl9Z2V0IGxhc3RQYWdlKCl7cmV0dXJuIHRoaXMucGFnZS5sYXN0fXNldCBsYXN0UGFnZShhKXsibnVtYmVyIj09dHlwZW9mIGEmJih0aGlzLnBhZ2Uu'@; put 'bGFzdD1hKX1nZXQgY3VycmVudFBhZ2UoKXtyZXR1cm4gdGhpcy5wYWdlLmN1cnJlbnR9c2V0IGN1cnJlbnRQYWdlKGEpeyJudW1iZXIiPT10eXBlb2YgYSYmKHRoaXMucGFnZS5jdXJyZW50PWEpfWdldCBmaXJzdEl0ZW0oKXtyZXR1cm4gdGhpcy5wYWdlLmZpcnN0SXRlbX1nZXQgbGFzdEl0'@; put 'ZW0oKXtyZXR1cm4gdGhpcy5wYWdlLmxhc3RJdGVtfWdldCBtaWRkbGVQYWdlcygpe2NvbnN0IGE9W107cmV0dXJuIHRoaXMucGFnZS5jdXJyZW50PjEmJmEucHVzaCh0aGlzLnBhZ2UuY3VycmVudC0xKSxhLnB1c2godGhpcy5wYWdlLmN1cnJlbnQpLHRoaXMucGFnZS5jdXJyZW50PHRoaXMu'@; put 'cGFnZS5sYXN0JiZhLnB1c2godGhpcy5wYWdlLmN1cnJlbnQrMSksYX1uZ09uSW5pdCgpe3RoaXMucGFnZS5zaXplfHwodGhpcy5wYWdlLnNpemU9MTApLHRoaXMuX3BhZ2VTdWJzY3JpcHRpb249dGhpcy5wYWdlLmNoYW5nZS5zdWJzY3JpYmUoYT0+dGhpcy5jdXJyZW50Q2hhbmdlZC5lbWl0'@; put 'KGEpKX1uZ09uRGVzdHJveSgpe3RoaXMucGFnZS5yZXNldFBhZ2VTaXplKCEwKSx0aGlzLl9wYWdlU3Vic2NyaXB0aW9uJiZ0aGlzLl9wYWdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9cHJldmlvdXMoKXt0aGlzLnBhZ2UucHJldmlvdXMoKX1uZXh0KCl7dGhpcy5wYWdlLm5leHQoKX12'@; put 'ZXJpZnlDdXJyZW50UGFnZShhKXtwYXJzZUludChhLnRhcmdldC52YWx1ZSwxMCkhPT10aGlzLnBhZ2UuY3VycmVudCYmKGEudGFyZ2V0LnZhbHVlPXRoaXMucGFnZS5jdXJyZW50KX11cGRhdGVDdXJyZW50UGFnZShhKXtjb25zdCBkPXBhcnNlSW50KGEudGFyZ2V0LnZhbHVlLDEwKTtpc05h'@; put 'TihkKXx8KHRoaXMucGFnZS5jdXJyZW50PWQ8MT8xOmQ+dGhpcy5wYWdlLmxhc3Q/dGhpcy5wYWdlLmxhc3Q6ZCksdGhpcy5jdXJyZW50UGFnZUlucHV0UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWU9dGhpcy5wYWdlLmN1cnJlbnQudG9TdHJpbmcoKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0'@; put 'aW9uKGEpe3JldHVybiBuZXcoYXx8YykoJGUod20pLCRlKHRvKSwkZSh0MykpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItZGctcGFnaW5hdGlvbiJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihhLGQsaCl7aWYoMSZhJiZhcyhoLG5FLDUpLDImYSl7bGV0IGY7'@; put 'eWkoZj1iaSgpKSYmKGQuX3BhZ2VTaXplQ29tcG9uZW50PWYuZmlyc3QpfX0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGEsZCl7aWYoMSZhJiZGYShSamUsNSksMiZhKXtsZXQgaDt5aShoPWJpKCkpJiYoZC5jdXJyZW50UGFnZUlucHV0UmVmPWguZmlyc3QpfX0saG9zdFZhcnM6Mixob3N0QmluZGlu'@; put 'Z3M6ZnVuY3Rpb24oYSxkKXsyJmEmJlRyKCJwYWdpbmF0aW9uIiwhMCl9LGlucHV0czp7ZGlzYWJsZUN1cnJlbnRQYWdlSW5wdXQ6W1ZuLk5vbmUsImNsckRnUGFnZUlucHV0RGlzYWJsZWQiLCJkaXNhYmxlQ3VycmVudFBhZ2VJbnB1dCJdLHBhZ2VTaXplOltWbi5Ob25lLCJjbHJEZ1BhZ2VT'@; put 'aXplIiwicGFnZVNpemUiXSx0b3RhbEl0ZW1zOltWbi5Ob25lLCJjbHJEZ1RvdGFsSXRlbXMiLCJ0b3RhbEl0ZW1zIl0sbGFzdFBhZ2U6W1ZuLk5vbmUsImNsckRnTGFzdFBhZ2UiLCJsYXN0UGFnZSJdLGN1cnJlbnRQYWdlOltWbi5Ob25lLCJjbHJEZ1BhZ2UiLCJjdXJyZW50UGFnZSJdfSxv'@; put 'dXRwdXRzOntjdXJyZW50Q2hhbmdlZDoiY2xyRGdQYWdlQ2hhbmdlIn0sbmdDb250ZW50U2VsZWN0b3JzOk9qZSxkZWNsczoyLHZhcnM6Mixjb25zdHM6W1sicmVhZE9ubHkiLCIiXSxbImN1cnJlbnRQYWdlSW5wdXQiLCIiXSxbNCwibmdJZiJdLFsiY2xhc3MiLCJwYWdpbmF0aW9uLXNpemUi'@; put 'LDQsIm5nSWYiXSxbMSwicGFnaW5hdGlvbi1kZXNjcmlwdGlvbiJdLFsiY2xhc3MiLCJwYWdpbmF0aW9uLWxpc3QiLDQsIm5nSWYiXSxbMSwicGFnaW5hdGlvbi1zaXplIl0sWzEsInBhZ2luYXRpb24tbGlzdCJdLFsidHlwZSIsImJ1dHRvbiIsMSwicGFnaW5hdGlvbi1maXJzdCIsMywiY2xp'@; put 'Y2siLCJkaXNhYmxlZCJdLFsxLCJjbHItc3Itb25seSJdLFsic2hhcGUiLCJzdGVwLWZvcndhcmQtMiIsImRpcmVjdGlvbiIsImRvd24iXSxbInR5cGUiLCJidXR0b24iLDEsInBhZ2luYXRpb24tcHJldmlvdXMiLDMsImNsaWNrIiwiZGlzYWJsZWQiXSxbInNoYXBlIiwiYW5nbGUiLCJkaXJl'@; put 'Y3Rpb24iLCJsZWZ0Il0sWyJ0eXBlIiwidGV4dCIsImNsYXNzIiwicGFnaW5hdGlvbi1jdXJyZW50IGNsci1pbnB1dCIsMywic2l6ZSIsInZhbHVlIiwia2V5ZG93bi5lbnRlciIsImJsdXIiLDQsIm5nSWYiLCJuZ0lmRWxzZSJdLFsidHlwZSIsImJ1dHRvbiIsMSwicGFnaW5hdGlvbi1uZXh0'@; put 'IiwzLCJjbGljayIsImRpc2FibGVkIl0sWyJzaGFwZSIsImFuZ2xlIiwiZGlyZWN0aW9uIiwicmlnaHQiXSxbInR5cGUiLCJidXR0b24iLDEsInBhZ2luYXRpb24tbGFzdCIsMywiY2xpY2siLCJkaXNhYmxlZCJdLFsic2hhcGUiLCJzdGVwLWZvcndhcmQtMiIsImRpcmVjdGlvbiIsInVwIl0s'@; put 'WyJ0eXBlIiwidGV4dCIsMSwicGFnaW5hdGlvbi1jdXJyZW50IiwiY2xyLWlucHV0IiwzLCJrZXlkb3duLmVudGVyIiwiYmx1ciIsInNpemUiLCJ2YWx1ZSJdLFsxLCJwYWdpbmF0aW9uLWRlc2NyaXB0aW9uLWNvbXBhY3QiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihzYShMamUp'@; put 'LGd0KDAsVmplLDUsMiwibmctY29udGFpbmVyIiwyKSgxLEJqZSwxNCwxMCwibmctY29udGFpbmVyIiwyKSksMiZhJiYoTWUoIm5nSWYiLCFkLmRldGFpbFNlcnZpY2UuaXNPcGVuKSxmZSgpLE1lKCJuZ0lmIixkLmRldGFpbFNlcnZpY2UuaXNPcGVuKSl9LGRlcGVuZGVuY2llczpbYmEsZW9d'@; put 'LGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLEw3PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZix2LE0sSSl7dGhpcy5lbD1hLHRoaXMucmVuZGVyZXI9ZCx0aGlzLmRvbUFkYXB0ZXI9Zix0aGlzLmNvbHVtblJlc2l6ZXJTZXJ2aWNlPXYsdGhpcy5jb2x1bW5zU2VydmljZT1NLHRo'@; put 'aXMuY29sdW1uU3RhdGU9SSx0aGlzLnJlc2l6ZUVtaXR0ZXI9bmV3IEtyLHRoaXMud2lkdGhTZXQ9ITEsdGhpcy5hdXRvU2V0PSExLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChoLmZpbHRlclJlbmRlclN0ZXBzKG4zLkNMRUFSX1dJRFRIUykuc3Vic2Ny'@; put 'aWJlKCgpPT50aGlzLmNsZWFyV2lkdGgoKSkpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goYT0+YS51bnN1YnNjcmliZSgpKX1nZXRDb2x1bW5XaWR0aFN0YXRlKCl7Y29uc3QgYT10aGlzLmRldGVjdFN0cmljdFdpZHRoKCk7cmV0dXJue3dpZHRoOnRoaXMuY29t'@; put 'cHV0ZVdpZHRoKGEpLHN0cmljdFdpZHRoOmF9fXNldENvbHVtblN0YXRlKGEpe3RoaXMuY29sdW1uc1NlcnZpY2UuY29sdW1uc1thXT10aGlzLmNvbHVtblN0YXRlfXNldFdpZHRoKGEpe2Euc3RyaWN0V2lkdGg/KHRoaXMuY29sdW1uUmVzaXplclNlcnZpY2UucmVzaXplZEJ5JiYodGhpcy5y'@; put 'ZXNpemVFbWl0dGVyLmVtaXQoYS53aWR0aCksdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIndpZHRoIixhLndpZHRoKyJweCIpLHRoaXMud2lkdGhTZXQ9ITEpLHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCRiKSx0aGlz'@; put 'LmF1dG9TZXQ9ITEpOih0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwkYiksdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIndpZHRoIixhLndpZHRoKyJweCIpLHRoaXMud2lkdGhTZXQ9ITAsdGhpcy5hdXRvU2V0PSEw'@; put 'KX1zZXRIaWRkZW4oYSl7YS5oaWRkZW4/dGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsZUUpOnRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LGVFKX1jbGVhcldpZHRoKCl7dGhpcy53aWR0aFNldCYmIXRoaXMuY29sdW1u'@; put 'UmVzaXplclNlcnZpY2UucmVzaXplZEJ5JiZ0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwid2lkdGgiLG51bGwpLHRoaXMuYXV0b1NldCYmdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsJGIpfWRldGVjdFN0cmljdFdp'@; put 'ZHRoKCl7cmV0dXJuIHRoaXMuY29sdW1uUmVzaXplclNlcnZpY2UucmVzaXplZEJ5P3RoaXMuY29sdW1uUmVzaXplclNlcnZpY2Uud2lkdGhBZnRlclJlc2l6ZTp0aGlzLmF1dG9TZXQ/MDp0aGlzLmRvbUFkYXB0ZXIudXNlckRlZmluZWRXaWR0aCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpfWNv'@; put 'bXB1dGVXaWR0aChhKXtsZXQgZD1hO3JldHVybiBkfHwoZD10aGlzLmRvbUFkYXB0ZXIuc2Nyb2xsV2lkdGgodGhpcy5lbC5uYXRpdmVFbGVtZW50KSksZH19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoJGUoUWkpLCRlKEVzKSwkZShJNyksJGUocG0p'@; put 'LCRlKG1HKSwkZShkZyksJGUoU0cpKX0sYy5cdTAyNzVkaXI9RXIoe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLWRnLWNvbHVtbiJdXSxvdXRwdXRzOntyZXNpemVFbWl0dGVyOiJjbHJEZ0NvbHVtblJlc2l6ZSJ9LGZlYXR1cmVzOlt1YShbbUcsaFdlXSldfSksY30pKCksbVdlPSgoKT0+e2Ns'@; put 'YXNzIGN7dXNlckRlZmluZWRXaWR0aChhKXtyZXR1cm4gMH1zY3JvbGxCYXJXaWR0aChhKXtyZXR1cm4gMH1zY3JvbGxXaWR0aChhKXtyZXR1cm4gMH1jb21wdXRlZEhlaWdodChhKXtyZXR1cm4gMH1jbGllbnRSZWN0KGEpe3JldHVybnt0b3A6MCxib3R0b206MCxsZWZ0OjAscmlnaHQ6MCx3'@; put 'aWR0aDowLGhlaWdodDowfX1taW5XaWR0aChhKXtyZXR1cm4gMH1mb2N1cyhhKXt9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhY30pLGN9KSgpO2NvbnN0IHZXZT1jPT5l'@; put 'bChjKT9uZXcgcG06bmV3IG1XZTtsZXQgSmI9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmLHYsTSxJLEcscmUsdWUseWUsRWUpe3RoaXMuZGF0YWdyaWQ9YSx0aGlzLm9yZ2FuaXplcj1kLHRoaXMuaXRlbXM9aCx0aGlzLnBhZ2U9Zix0aGlzLmVsPXYsdGhpcy5yZW5kZXJlcj1N'@; put 'LHRoaXMudGFibGVTaXplU2VydmljZT1HLHRoaXMuY29sdW1uc1NlcnZpY2U9cmUsdGhpcy5uZ1pvbmU9dWUsdGhpcy5rZXlOYXZpZ2F0aW9uPXllLHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWY9RWUsdGhpcy5faGVpZ2h0U2V0PSExLHRoaXMuc2hvdWxkU3RhYmlsaXplQ29sdW1ucz0hMCx0aGlz'@; put 'LnN1YnNjcmlwdGlvbnM9W10sdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlcj1udWxsLHRoaXMuY29sdW1uc1NpemVzU3RhYmxlPSExLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGQuZmlsdGVyUmVuZGVyU3RlcHMobjMuQ09NUFVURV9DT0xVTU5fV0lEVEhTKS5zdWJzY3JpYmUoKCk9PnRoaXMu'@; put 'Y29tcHV0ZUhlYWRlcnNXaWR0aCgpKSksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goZi5zaXplQ2hhbmdlLnN1YnNjcmliZSgoKT0+e3RoaXMuX2hlaWdodFNldCYmdGhpcy5yZXNldERhdGFncmlkSGVpZ2h0KCl9KSksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goSS5zdGF0ZUNoYW5nZS5zdWJz'@; put 'Y3JpYmUoQmU9PnRoaXMudG9nZ2xlRGV0YWlsUGFuZShCZSkpKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChoLmNoYW5nZS5zdWJzY3JpYmUoKCk9PnRoaXMuc2hvdWxkU3RhYmlsaXplQ29sdW1ucz0hMCkpfW5nT25Jbml0KCl7dGhpcy5jb2x1bW5zU2VydmljZS5jb2x1bW5zU3RhdGVDaGFu'@; put 'Z2Uuc3Vic2NyaWJlKGE9PnRoaXMuY29sdW1uU3RhdGVDaGFuZ2VkKGEpKSxudWxsPT09dGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFBhcmVudCYmKHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXI9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChbYV0pPT57KHRoaXMuZWwubmF0aXZlRWxl'@; put 'bWVudC5vZmZzZXRQYXJlbnR8fGEuaXNJbnRlcnNlY3RpbmcpJiZ0aGlzLmNvbHVtbnNTaXplc1N0YWJsZSYmKHRoaXMuY29sdW1uc1NpemVzU3RhYmxlPSExLHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCksdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlci5kaXNjb25uZWN0'@; put 'KCkpfSksdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlci5vYnNlcnZlKHRoaXMuZWwubmF0aXZlRWxlbWVudCkpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuc2V0dXBDb2x1bW5zKCksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5oZWFkZXJzLmNoYW5nZXMuc3Vic2NyaWJlKCgpPT57'@; put 'dGhpcy5zZXR1cENvbHVtbnMoKSx0aGlzLmNvbHVtbnNTaXplc1N0YWJsZT0hMSx0aGlzLnN0YWJpbGl6ZUNvbHVtbnMoKX0pKX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLnRhYmxlU2l6ZVNlcnZpY2UudGFibGU9dGhpcy5lbH1uZ0FmdGVyVmlld0NoZWNrZWQoKXt0aGlzLnNob3VsZFN0YWJp'@; put 'bGl6ZUNvbHVtbnMmJnRoaXMuc3RhYmlsaXplQ29sdW1ucygpLHRoaXMuc2hvdWxkQ29tcHV0ZUhlaWdodCgpJiZ0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3NldFRpbWVvdXQoKCk9Pnt0aGlzLmNvbXB1dGVEYXRhZ3JpZEhlaWdodCgpfSl9KX1uZ09uRGVzdHJveSgpe3Ro'@; put 'aXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGE9PmEudW5zdWJzY3JpYmUoKSksdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlcj8uZGlzY29ubmVjdCgpfXRvZ2dsZURldGFpbFBhbmUoYSl7dGhpcy5oZWFkZXJzJiYoYSYmIXRoaXMuY29sdW1uc1NlcnZpY2UuaGFzQ2FjaGUoKT8odGhpcy5jb2x1'@; put 'bW5zU2VydmljZS5jYWNoZSgpLHRoaXMuY29sdW1uc1NlcnZpY2UudmlzaWJsZUNvbHVtbnMuZm9yRWFjaCgoZCxoKT0+e2g+MCYmdGhpcy5jb2x1bW5zU2VydmljZS5lbWl0U3RhdGVDaGFuZ2VBdChkLmNvbHVtbkluZGV4LHtjaGFuZ2VzOltHMS5ISURERU5dLGhpZGRlbjphfSl9KSk6YXx8'@; put 'dGhpcy5jb2x1bW5zU2VydmljZS5yZXNldFRvTGFzdENhY2hlKCkpfXNldHVwQ29sdW1ucygpe3RoaXMuaGVhZGVycy5mb3JFYWNoKChhLGQpPT5hLnNldENvbHVtblN0YXRlKGQpKSx0aGlzLmNvbHVtbnNTZXJ2aWNlLmNvbHVtbnMuc3BsaWNlKHRoaXMuaGVhZGVycy5sZW5ndGgpLHRoaXMu'@; put 'Y29sdW1uc1NlcnZpY2UuY29sdW1ucy5mb3JFYWNoKChhLGQpPT57dGhpcy5jb2x1bW5zU2VydmljZS5lbWl0U3RhdGVDaGFuZ2UoYSx7Y2hhbmdlczpbRzEuSU5JVElBTElaRV0sY29sdW1uSW5kZXg6ZH0pfSl9c2hvdWxkQ29tcHV0ZUhlaWdodCgpe3JldHVybiF0aGlzLl9oZWlnaHRTZXQm'@; put 'JnRoaXMucGFnZS5zaXplPjAmJnRoaXMuaXRlbXMuZGlzcGxheWVkLmxlbmd0aD09PXRoaXMucGFnZS5zaXplfWNvbXB1dGVEYXRhZ3JpZEhlaWdodCgpe2NvbnN0IGE9d2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50KS5oZWlnaHQ7dGhpcy5yZW5kZXJlci5z'@; put 'ZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsImhlaWdodCIsYSksdGhpcy5faGVpZ2h0U2V0PSEwfXJlc2V0RGF0YWdyaWRIZWlnaHQoKXt0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwiaGVpZ2h0IiwiIiksdGhpcy5faGVpZ2h0U2V0PSExfWNvbXB1'@; put 'dGVIZWFkZXJzV2lkdGgoKXtjb25zdCBhPXRoaXMuaGVhZGVycy5sZW5ndGgsZD10aGlzLmhlYWRlcnMubWFwKGY9PmYuZ2V0Q29sdW1uV2lkdGhTdGF0ZSgpKTtsZXQgaD0hMDt0aGlzLmhlYWRlcnMuZm9yRWFjaCgoZix2KT0+e2NvbnN0IE09e2NoYW5nZXM6W0cxLldJRFRIXSwuLi5kW3Zd'@; put 'fTtNLnN0cmljdFdpZHRofHwoaD0hMSksYT09PXYrMSYmaCYmKE0uc3RyaWN0V2lkdGg9MCksdGhpcy5jb2x1bW5zU2VydmljZS5lbWl0U3RhdGVDaGFuZ2VBdCh2LE0pfSl9Y29sdW1uU3RhdGVDaGFuZ2VkKGEpe2lmKCF0aGlzLmhlYWRlcnN8fG51bGw9PWEuY29sdW1uSW5kZXgpcmV0dXJu'@; put 'O2NvbnN0IGQ9YS5jb2x1bW5JbmRleDthLmNoYW5nZXMmJmEuY2hhbmdlcy5sZW5ndGgmJmEuY2hhbmdlcy5mb3JFYWNoKGg9Pntzd2l0Y2goaCl7Y2FzZSBHMS5XSURUSDp0aGlzLmhlYWRlcnMuZ2V0KGQpLnNldFdpZHRoKGEpLHRoaXMucm93cy5mb3JFYWNoKGY9PntmPy5jZWxscy5sZW5n'@; put 'dGg9PT10aGlzLmNvbHVtbnNTZXJ2aWNlLmNvbHVtbnMubGVuZ3RoJiYoZi5jZWxscy5nZXQoZCkuc2V0V2lkdGgoYSksZi5leHBhbmRhYmxlUm93Py5jZWxscy5nZXQoZCk/LnNldFdpZHRoKGEpKX0pO2JyZWFrO2Nhc2UgRzEuSElEREVOOnRoaXMuaGVhZGVycy5nZXQoZCkuc2V0SGlkZGVu'@; put 'KGEpLHRoaXMucm93cy5mb3JFYWNoKGY9PntmLmNlbGxzJiZmLmNlbGxzLmxlbmd0aCYmKGYuY2VsbHMuZ2V0KGQpLnNldEhpZGRlbihhKSxmLmV4cGFuZGFibGVSb3c/LmNlbGxzLmdldChkKT8uc2V0SGlkZGVuKGEpKX0pLHRoaXMudXBkYXRlQ29sdW1uU2VwYXJhdG9yc1Zpc2liaWxpdHko'@; put 'KSx0aGlzLmtleU5hdmlnYXRpb24ucmVzZXRLZXlHcmlkKCk7YnJlYWs7Y2FzZSBHMS5JTklUSUFMSVpFOmEuaGlkZWFibGUmJmEuaGlkZGVuJiYodGhpcy5oZWFkZXJzLmdldChkKS5zZXRIaWRkZW4oYSksdGhpcy5yb3dzLmZvckVhY2goZj0+e2Yuc2V0Q2VsbHNTdGF0ZSgpLGYuZXhwYW5k'@; put 'YWJsZVJvdz8uc2V0Q2VsbHNTdGF0ZSgpfSkpfX0pfXN0YWJpbGl6ZUNvbHVtbnMoKXt0aGlzLmNvbHVtbnNTaXplc1N0YWJsZXx8dGhpcy5pdGVtcy5kaXNwbGF5ZWQubGVuZ3RoPjAmJih0aGlzLm9yZ2FuaXplci5yZXNpemUoKSx0aGlzLmNvbHVtbnNTaXplc1N0YWJsZT0hMCl9dXBkYXRl'@; put 'Q29sdW1uU2VwYXJhdG9yc1Zpc2liaWxpdHkoKXtjb25zdCBhPXRoaXMuZGF0YWdyaWQuY29sdW1ucy5maWx0ZXIoZD0+IWQuaXNIaWRkZW4pO2EuZm9yRWFjaCgoZCxoKT0+e2g9PT1hLmxlbmd0aC0xP2Quc2hvd1NlcGFyYXRvcj0hMTpkLnNob3dTZXBhcmF0b3J8fChkLnNob3dTZXBhcmF0'@; put 'b3I9ITApfSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKCRlKHhtKSwkZShJNyksJGUodWcpLCRlKHdtKSwkZShRaSksJGUoRXMpLCRlKHQzKSwkZSh2RyksJGUoZGcpLCRlKEdhKSwkZShvTyksJGUoeG8pKX0sYy5cdTAyNzVkaXI9RXIoe3R5cGU6'@; put 'YyxzZWxlY3RvcnM6W1siY2xyLWRhdGFncmlkIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGEsZCxoKXtpZigxJmEmJihhcyhoLEw3LDQpLGFzKGgsTW0sNCkpLDImYSl7bGV0IGY7eWkoZj1iaSgpKSYmKGQuaGVhZGVycz1mKSx5aShmPWJpKCkpJiYoZC5yb3dzPWYpfX0sZmVhdHVyZXM6'@; put 'W3VhKFt7cHJvdmlkZTpwbSx1c2VGYWN0b3J5OnZXZSxkZXBzOltpc119XSldfSksY30pKCkseVdlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXtFby5hZGRJY29ucyh0UGUsblBlLEN4LHJQZSxOMGUsaVBlLFYwZSxhUGUsc1BlKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEp'@; put 'e3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1Bcih7aW1wb3J0czpbTGEsR1plLFFMLFRvLFJkZSxrYyxWWSxGMiwkWmUsTGRlLEhiLFp4LFhZXX0pLGN9KSgpLCRkZT0oKCk9PntjbGFzcyBje31yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rp'@; put 'b24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVkaXI9RXIoe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLXN0YWNrLWNvbnRlbnQiXV19KSxjfSkoKSxNRz0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5fZ2VuZXJhdGVkSWQ9bnVsbCx0aGlzLl9pZD1udWxsfWdldCBpZCgp'@; put 'e3JldHVybiB0aGlzLl9pZH1zZXQgaWQoYSl7dGhpcy5faWQ9InN0cmluZyI9PXR5cGVvZiBhJiYiIiE9PWE/YTp0aGlzLl9nZW5lcmF0ZWRJZCsiIn1uZ09uSW5pdCgpe3RoaXMuX2dlbmVyYXRlZElkPSJjbHItc3RhY2stbGFiZWwtIitfdSgpLHRoaXMuaWR8fCh0aGlzLl9pZD10aGlzLl9n'@; put 'ZW5lcmF0ZWRJZCsiIil9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItc3RhY2stbGFiZWwiXV0saG9zdFZhcnM6MSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsyJmEmJmhy'@; put 'KCJpZCIsZC5pZCl9LGlucHV0czp7aWQ6ImlkIn0sbmdDb250ZW50U2VsZWN0b3JzOnlzLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoc2EoKSxXcigwKSl9LGVuY2Fwc3VsYXRpb246Mn0pLGN9KSgpLEtkZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEs'@; put 'ZCl7dGhpcy5wYXJlbnQ9YSx0aGlzLmNvbW1vblN0cmluZ3M9ZCx0aGlzLmV4cGFuZGVkPSExLHRoaXMuZXhwYW5kYWJsZT0hMSx0aGlzLmV4cGFuZGVkQ2hhbmdlPW5ldyBLcighMSksdGhpcy5mb2N1c2VkPSExLHRoaXMudW5pcXVlSWQ9X3UoKSx0aGlzLl9jaGFuZ2VkQ2hpbGRyZW49MCx0'@; put 'aGlzLl9mdWxseUluaXRpYWxpemVkPSExLHRoaXMuX2NoYW5nZWQ9ITEsYSYmYS5hZGRDaGlsZCgpfXNldCBzZXRDaGFuZ2VkVmFsdWUoYSl7dGhpcy5fY2hhbmdlZD1hLHRoaXMucGFyZW50JiZ0aGlzLl9mdWxseUluaXRpYWxpemVkJiYoYT90aGlzLnBhcmVudC5fY2hhbmdlZENoaWxkcmVu'@; put 'Kys6dGhpcy5wYXJlbnQuX2NoYW5nZWRDaGlsZHJlbi0tKX1nZXQgZ2V0Q2hhbmdlZFZhbHVlKCl7cmV0dXJuIHRoaXMuX2NoYW5nZWR8fHRoaXMuX2NoYW5nZWRDaGlsZHJlbj4wJiYhdGhpcy5leHBhbmRlZH1nZXQgb25TdGFja0xhYmVsRm9jdXMoKXtyZXR1cm4gdGhpcy5leHBhbmRhYmxl'@; put 'JiYhdGhpcy5leHBhbmRlZCYmdGhpcy5mb2N1c2VkfWdldCBsYWJlbGxlZEJ5SWQoKXtyZXR1cm4gdGhpcy5zdGFja0Jsb2NrVGl0bGUuaWR9Z2V0IGhlYWRpbmdMZXZlbCgpe3JldHVybiB0aGlzLmFyaWFMZXZlbD90aGlzLmFyaWFMZXZlbCsiIjp0aGlzLnBhcmVudD8iNCI6IjMifWdldCBj'@; put 'YXJldERpcmVjdGlvbigpe3JldHVybiB0aGlzLmV4cGFuZGVkPyJkb3duIjoicmlnaHQifWdldCByb2xlKCl7cmV0dXJuIHRoaXMuZXhwYW5kYWJsZT8iYnV0dG9uIjpudWxsfWdldCB0YWJJbmRleCgpe3JldHVybiB0aGlzLmV4cGFuZGFibGU/IjAiOm51bGx9Z2V0IGFyaWFFeHBhbmRlZCgp'@; put 'e3JldHVybiB0aGlzLmV4cGFuZGFibGU/dGhpcy5leHBhbmRlZD8idHJ1ZSI6ImZhbHNlIjpudWxsfW5nT25Jbml0KCl7dGhpcy5fZnVsbHlJbml0aWFsaXplZD0hMH1hZGRDaGlsZCgpe3RoaXMuZXhwYW5kYWJsZT0hMH10b2dnbGVFeHBhbmQoYSl7WGRlKGEpfHx0aGlzLmV4cGFuZGFibGUm'@; put 'Jih0aGlzLmV4cGFuZGVkPSF0aGlzLmV4cGFuZGVkLHRoaXMuZXhwYW5kZWRDaGFuZ2UuZW1pdCh0aGlzLmV4cGFuZGVkKSl9Z2V0U3RhY2tDaGlsZHJlbklkKCl7cmV0dXJuIHRoaXMuZXhwYW5kZWQ/YGNsci1zdGFjay1jaGlsZHJlbi0ke3RoaXMudW5pcXVlSWR9YDpudWxsfXByZXZlbnRE'@; put 'ZWZhdWx0SWZOb3RJbnB1dEV2ZW50KGEpe1hkZShhKXx8YS5wcmV2ZW50RGVmYXVsdCgpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZShjLDEyKSwkZSh0bykpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItc3RhY2st'@; put 'YmxvY2siXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oYSxkLGgpe2lmKDEmYSYmYXMoaCxNRyw1KSwyJmEpe2xldCBmO3lpKGY9YmkoKSkmJihkLnN0YWNrQmxvY2tUaXRsZT1mLmZpcnN0KX19LGhvc3RWYXJzOjEyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmKGhyKCJyb2xl'@; put 'IiwiaGVhZGluZyIpKCJhcmlhLWxldmVsIixkLmhlYWRpbmdMZXZlbCksVHIoInN0YWNrLWJsb2NrIiwhMCkoInN0YWNrLWJsb2NrLWV4cGFuZGVkIixkLmV4cGFuZGVkKSgic3RhY2stYmxvY2stZXhwYW5kYWJsZSIsZC5leHBhbmRhYmxlKSgic3RhY2stYmxvY2stY2hhbmdlZCIsZC5nZXRD'@; put 'aGFuZ2VkVmFsdWUpKCJvbi1mb2N1cyIsZC5vblN0YWNrTGFiZWxGb2N1cykpfSxpbnB1dHM6e2V4cGFuZGVkOltWbi5Ob25lLCJjbHJTYkV4cGFuZGVkIiwiZXhwYW5kZWQiXSxleHBhbmRhYmxlOltWbi5Ob25lLCJjbHJTYkV4cGFuZGFibGUiLCJleHBhbmRhYmxlIl0sYXJpYUxldmVsOltW'@; put 'bi5Ob25lLCJjbHJTdGFja1ZpZXdMZXZlbCIsImFyaWFMZXZlbCJdLHNldENoYW5nZWRWYWx1ZTpbVm4uTm9uZSwiY2xyU2JOb3RpZnlDaGFuZ2UiLCJzZXRDaGFuZ2VkVmFsdWUiXX0sb3V0cHV0czp7ZXhwYW5kZWRDaGFuZ2U6ImNsclNiRXhwYW5kZWRDaGFuZ2UifSxuZ0NvbnRlbnRTZWxl'@; put 'Y3RvcnM6V2plLGRlY2xzOjksdmFyczo5LGNvbnN0czpbWzEsInN0YWNrLWJsb2NrLWxhYmVsIiwzLCJjbGljayIsImtleXVwLmVudGVyIiwia2V5dXAuc3BhY2UiLCJrZXlkb3duLnNwYWNlIiwiZm9jdXMiLCJibHVyIiwiaWQiXSxbInNoYXBlIiwiYW5nbGUiLCJjbGFzcyIsInN0YWNrLWJs'@; put 'b2NrLWNhcmV0Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNsci1zci1vbmx5Iiw0LCJuZ0lmIl0sWzEsInN0YWNrLXZpZXcta2V5Il0sWzEsInN0YWNrLWJsb2NrLWNvbnRlbnQiXSxbMSwic3RhY2stY2hpbGRyZW4iLDMsImNsckV4cGFuZFRyaWdnZXIiXSxbInJvbGUiLCJyZWdpb24iLDMsImhl'@; put 'aWdodCIsNCwibmdJZiJdLFsic2hhcGUiLCJhbmdsZSIsMSwic3RhY2stYmxvY2stY2FyZXQiXSxbMSwiY2xyLXNyLW9ubHkiXSxbInJvbGUiLCJyZWdpb24iXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihzYShaamUpLGRlKDAsImRpdiIsMCksRnQoImNsaWNrIixmdW5jdGlvbihm'@; put 'KXtyZXR1cm4gZC50b2dnbGVFeHBhbmQoZil9KSgia2V5dXAuZW50ZXIiLGZ1bmN0aW9uKGYpe3JldHVybiBkLnRvZ2dsZUV4cGFuZChmKX0pKCJrZXl1cC5zcGFjZSIsZnVuY3Rpb24oZil7cmV0dXJuIGQudG9nZ2xlRXhwYW5kKGYpfSkoImtleWRvd24uc3BhY2UiLGZ1bmN0aW9uKGYpe3Jl'@; put 'dHVybiBkLnByZXZlbnREZWZhdWx0SWZOb3RJbnB1dEV2ZW50KGYpfSkoImZvY3VzIixmdW5jdGlvbigpe3JldHVybiBkLmZvY3VzZWQ9ITB9KSgiYmx1ciIsZnVuY3Rpb24oKXtyZXR1cm4gZC5mb2N1c2VkPSExfSksZ3QoMSxZamUsMSwxLCJjZHMtaWNvbiIsMSkoMixHamUsMiwxLCJzcGFu'@; put 'IiwyKSxkZSgzLCJkaXYiLDMpLFdyKDQpLGhlKCksZGUoNSwiZGl2Iiw0KSxXcig2LDEpLGhlKCkoKSxkZSg3LCJjbHItZXhwYW5kYWJsZS1hbmltYXRpb24iLDUpLGd0KDgsJGplLDIsNCwiZGl2Iiw2KSxoZSgpKSwyJmEmJihNZSgiaWQiLGQudW5pcXVlSWQpLGhyKCJyb2xlIixkLnJvbGUp'@; put 'KCJ0YWJpbmRleCIsZC50YWJJbmRleCkoImFyaWEtZXhwYW5kZWQiLGQuYXJpYUV4cGFuZGVkKSgiYXJpYS1jb250cm9scyIsZC5nZXRTdGFja0NoaWxkcmVuSWQoKSksZmUoKSxNZSgibmdJZiIsZC5leHBhbmRhYmxlKSxmZSgpLE1lKCJuZ0lmIixkLmdldENoYW5nZWRWYWx1ZSksZmUoNSks'@; put 'TWUoImNsckV4cGFuZFRyaWdnZXIiLGQuZXhwYW5kZWQpLGZlKCksTWUoIm5nSWYiLGQuZXhwYW5kZWQpKX0sZGVwZW5kZW5jaWVzOltiYSxlbyxVTF0sZW5jYXBzdWxhdGlvbjoyfSksY30pKCk7ZnVuY3Rpb24gWGRlKGMpe2NvbnN0IGw9Yz8udGFyZ2V0O3JldHVybiEhbD8udGFnTmFtZSYm'@; put 'WyJJTlBVVCIsIlRFWFRBUkVBIiwiQlVUVE9OIiwiQSIsIlNFTEVDVCIsIk9QVElPTiJdLmluY2x1ZGVzKGwudGFnTmFtZSl9bGV0IHhHPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpj'@; put 'LHNlbGVjdG9yczpbWyJjbHItc3RhY2stdmlldyJdXSxuZ0NvbnRlbnRTZWxlY3RvcnM6WGplLGRlY2xzOjMsdmFyczowLGNvbnN0czpbWzEsInN0YWNrLXZpZXciXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihzYShLamUpLFdyKDApLGRlKDEsImRpdiIsMCksV3IoMiwxKSxoZSgp'@; put 'KX0sZW5jYXBzdWxhdGlvbjoyfSksY30pKCksX1dlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXtFby5hZGRJY29ucyhDYil9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9QXIo'@; put 'e2ltcG9ydHM6W0xhLGtjLFRvLExkZV19KSxjfSkoKSxPNz0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5zZWxlY3RhYmxlPSExLHRoaXMuZWFnZXI9ITAsdGhpcy5jaGlsZHJlbkZldGNoZWQ9bmV3IEdufX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5l'@; put 'dyhhfHxjKX0sYy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKTtjb25zdCBxZGU9e3Byb3ZpZGU6TzcsdXNlRmFjdG9yeTpmdW5jdGlvbiB3V2UoYyl7cmV0dXJuIGN8fG5ldyBPN30sZGVwczpbW25ldyBSMSxuZXcgdWQsTzddXX07bGV0IEpkZT0o'@; put 'KCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCl7dGhpcy5mZWF0dXJlc1NlcnZpY2U9YSx0aGlzLmV4cGFuZFNlcnZpY2U9ZCxkJiYodGhpcy5zdWJzY3JpcHRpb249ZC5leHBhbmRDaGFuZ2Uuc3Vic2NyaWJlKGg9PnshaCYmdGhpcy5wYXJlbnQmJiFhLmVhZ2VyJiZhLnJlY3Vyc2lvbiYm'@; put 'dGhpcy5wYXJlbnQuY2xlYXJDaGlsZHJlbigpfSkpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuc2V0QXJpYVJvbGVzKCl9c2hvdWxkUmVuZGVyKCl7cmV0dXJuIHRoaXMuZmVhdHVyZXNTZXJ2aWNlLnJlY3Vyc2lvbiYmKHRoaXMuZmVhdHVyZXNTZXJ2aWNlLmVhZ2VyfHwhdGhpcy5leHBh'@; put 'bmRTZXJ2aWNlfHx0aGlzLmV4cGFuZFNlcnZpY2UuZXhwYW5kZWQpfWdldENvbnRleHQoYSl7cmV0dXJueyRpbXBsaWNpdDphLm1vZGVsLGNsck1vZGVsOmF9fW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb24mJnRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9c2V0QXJpYVJv'@; put 'bGVzKCl7dGhpcy5yb2xlPXRoaXMucGFyZW50PyJncm91cCI6bnVsbH19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoJGUoTzcpLCRlKFcxLDgpKX0sYy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1siY2xyLXJlY3Vyc2l2ZS1jaGlsZHJl'@; put 'biJdXSxob3N0VmFyczoxLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmaHIoInJvbGUiLGQucm9sZSl9LGlucHV0czp7cGFyZW50OiJwYXJlbnQiLGNoaWxkcmVuOiJjaGlsZHJlbiJ9LGRlY2xzOjEsdmFyczoxLGNvbnN0czpbWzQsIm5nSWYiXSxbNCwibmdGb3IiLCJuZ0Zvck9m'@; put 'Il0sWzQsIm5nVGVtcGxhdGVPdXRsZXQiLCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmZ3QoMCx0emUsMiwxLCJuZy1jb250YWluZXIiLDApLDImYSYmTWUoIm5nSWYiLGQuc2hvdWxkUmVuZGVyKCkpfSxkZXBlbmRlbmNpZXM6W1FzLGJh'@; put 'LEIxXSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKTt2YXIgV3U9ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5VTlNFTEVDVEVEPTBdPSJVTlNFTEVDVEVEIixjW2MuU0VMRUNURUQ9MV09IlNFTEVDVEVEIixjW2MuSU5ERVRFUk1JTkFURT0yXT0iSU5ERVRFUk1JTkFURSIsY30oV3V8fHt9KTtjbGFz'@; put 'cyBRZGV7Y29uc3RydWN0b3IoKXt0aGlzLmxvYWRpbmckPW5ldyBKcighMSksdGhpcy5zZWxlY3RlZD1uZXcgSnIoV3UuVU5TRUxFQ1RFRCksdGhpcy5fbG9hZGluZz0hMX1nZXQgbG9hZGluZygpe3JldHVybiB0aGlzLl9sb2FkaW5nfXNldCBsb2FkaW5nKGwpe3RoaXMuX2xvYWRpbmc9bCx0'@; put 'aGlzLmxvYWRpbmckLm5leHQobCl9Z2V0IGRpc2FibGVkKCl7cmV0dXJuISghdGhpcy5fZGlzYWJsZWQmJiF0aGlzLnBhcmVudD8uZGlzYWJsZWQpfXNldCBkaXNhYmxlZChsKXt0aGlzLl9kaXNhYmxlZD1sfWRlc3Ryb3koKXt0aGlzLnNlbGVjdGVkLmNvbXBsZXRlKCl9c2V0U2VsZWN0ZWQo'@; put 'bCxhLGQpe2whPT10aGlzLnNlbGVjdGVkLnZhbHVlJiYodGhpcy5zZWxlY3RlZC5uZXh0KGwpLGQmJmwhPT1XdS5JTkRFVEVSTUlOQVRFJiZ0aGlzLmNoaWxkcmVuJiZ0aGlzLmNoaWxkcmVuLmZvckVhY2goaD0+e2guZGlzYWJsZWR8fGguc2V0U2VsZWN0ZWQobCwhMSwhMCl9KSxhJiZ0aGlz'@; put 'LnBhcmVudCYmdGhpcy5wYXJlbnQuX3VwZGF0ZVNlbGVjdGlvbkZyb21DaGlsZHJlbigpKX10b2dnbGVTZWxlY3Rpb24obCl7dGhpcy5kaXNhYmxlZHx8dGhpcy5zZXRTZWxlY3RlZCh0aGlzLnNlbGVjdGVkLnZhbHVlPT09V3UuU0VMRUNURUQ/V3UuVU5TRUxFQ1RFRDpXdS5TRUxFQ1RFRCwh'@; put 'MCxsKX1fdXBkYXRlU2VsZWN0aW9uRnJvbUNoaWxkcmVuKCl7Y29uc3QgbD10aGlzLmNvbXB1dGVTZWxlY3Rpb25TdGF0ZUZyb21DaGlsZHJlbigpO2whPT10aGlzLnNlbGVjdGVkLnZhbHVlJiYodGhpcy5zZWxlY3RlZC5uZXh0KGwpLHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5fdXBkYXRl'@; put 'U2VsZWN0aW9uRnJvbUNoaWxkcmVuKCkpfWNvbXB1dGVTZWxlY3Rpb25TdGF0ZUZyb21DaGlsZHJlbigpe2xldCBsPSExLGE9ITE7Zm9yKGNvbnN0IGQgb2YgdGhpcy5jaGlsZHJlbilzd2l0Y2goZC5zZWxlY3RlZC52YWx1ZSl7Y2FzZSBXdS5JTkRFVEVSTUlOQVRFOmlmKGQuZGlzYWJsZWQp'@; put 'Y29udGludWU7cmV0dXJuIFd1LklOREVURVJNSU5BVEU7Y2FzZSBXdS5TRUxFQ1RFRDppZihsPSEwLGEpcmV0dXJuIFd1LklOREVURVJNSU5BVEU7YnJlYWs7ZGVmYXVsdDppZihhPSEwLGwpcmV0dXJuIFd1LklOREVURVJNSU5BVEV9cmV0dXJuIGw/YT9XdS5VTlNFTEVDVEVEOld1LlNFTEVD'@; put 'VEVEOld1LlVOU0VMRUNURUR9fWNsYXNzIGdPIGV4dGVuZHMgUWRle2NvbnN0cnVjdG9yKGwsYSxkLGgpe3N1cGVyKCksdGhpcy5nZXRDaGlsZHJlbj1kLHRoaXMuZmVhdHVyZXNTZXJ2aWNlPWgsdGhpcy5jaGlsZHJlbkZldGNoZWQ9ITEsdGhpcy5fY2hpbGRyZW49W10sdGhpcy5tb2RlbD1s'@; put 'LHRoaXMucGFyZW50PWF9Z2V0IGNoaWxkcmVuKCl7cmV0dXJuIHRoaXMuZmV0Y2hDaGlsZHJlbigpLHRoaXMuX2NoaWxkcmVufXNldCBjaGlsZHJlbihsKXt0aGlzLl9jaGlsZHJlbj1sfWRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbiYmdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUo'@; put 'KSxzdXBlci5kZXN0cm95KCl9Y2xlYXJDaGlsZHJlbigpe3RoaXMuX2NoaWxkcmVuLmZvckVhY2gobD0+bC5kZXN0cm95KCkpLGRlbGV0ZSB0aGlzLl9jaGlsZHJlbix0aGlzLmNoaWxkcmVuRmV0Y2hlZD0hMX1mZXRjaENoaWxkcmVuKCl7aWYodGhpcy5jaGlsZHJlbkZldGNoZWQpcmV0dXJu'@; put 'O2NvbnN0IGw9dGhpcy5nZXRDaGlsZHJlbih0aGlzLm1vZGVsKTshZnVuY3Rpb24gQ1dlKGMpe3JldHVybiBjJiYiZnVuY3Rpb24iPT10eXBlb2YgYy50aGVufShsKT9XTShsKT8odGhpcy5sb2FkaW5nPSEwLHRoaXMuc3Vic2NyaXB0aW9uPWwuc3Vic2NyaWJlKGE9Pnt0aGlzLl9jaGlsZHJl'@; put 'bj10aGlzLndyYXBDaGlsZHJlbihhKSx0aGlzLmxvYWRpbmc9ITF9KSk6dGhpcy5fY2hpbGRyZW49bD90aGlzLndyYXBDaGlsZHJlbihsKTpbXToodGhpcy5sb2FkaW5nPSEwLGwudGhlbihhPT57dGhpcy5fY2hpbGRyZW49dGhpcy53cmFwQ2hpbGRyZW4oYSksdGhpcy5sb2FkaW5nPSExfSkp'@; put 'LHRoaXMuY2hpbGRyZW5GZXRjaGVkPSEwLHRoaXMuZmVhdHVyZXNTZXJ2aWNlJiZ0aGlzLmZlYXR1cmVzU2VydmljZS5jaGlsZHJlbkZldGNoZWQubmV4dCgpfXdyYXBDaGlsZHJlbihsKXtyZXR1cm4gbC5tYXAoYT0+bmV3IGdPKGEsdGhpcyx0aGlzLmdldENoaWxkcmVuLHRoaXMuZmVhdHVy'@; put 'ZXNTZXJ2aWNlKSl9fWxldCBlaGU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCl7dGhpcy50ZW1wbGF0ZT1hLHRoaXMuZmVhdHVyZXNTZXJ2aWNlPWQsdGhpcy5jZHI9aH1uZ09uQ2hhbmdlcygpe2xldCBhO2E9QXJyYXkuaXNBcnJheSh0aGlzLm5vZGVzKT90aGlzLm5vZGVzLm1h'@; put 'cChkPT5uZXcgZ08oZCxudWxsLHRoaXMuZ2V0Q2hpbGRyZW4sdGhpcy5mZWF0dXJlc1NlcnZpY2UpKTpbbmV3IGdPKHRoaXMubm9kZXMsbnVsbCx0aGlzLmdldENoaWxkcmVuLHRoaXMuZmVhdHVyZXNTZXJ2aWNlKV0sdGhpcy5jaGlsZHJlbkZldGNoU3Vic2NyaXB0aW9ufHwodGhpcy5jaGls'@; put 'ZHJlbkZldGNoU3Vic2NyaXB0aW9uPXRoaXMuZmVhdHVyZXNTZXJ2aWNlLmNoaWxkcmVuRmV0Y2hlZC5waXBlKHVtKDApKS5zdWJzY3JpYmUoKCk9Pnt0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCl9KSksdGhpcy5mZWF0dXJlc1NlcnZpY2UucmVjdXJzaW9uPXt0ZW1wbGF0ZTp0aGlzLnRlbXBs'@; put 'YXRlLHJvb3Q6YX19bmdPbkRlc3Ryb3koKXt0aGlzLmNoaWxkcmVuRmV0Y2hTdWJzY3JpcHRpb24mJnRoaXMuY2hpbGRyZW5GZXRjaFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKSgkZSh3bCksJGUoTzcp'@; put 'LCRlKHhvKSl9LGMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsImNsclJlY3Vyc2l2ZUZvciIsIiIsImNsclJlY3Vyc2l2ZUZvck9mIiwiIl1dLGlucHV0czp7bm9kZXM6W1ZuLk5vbmUsImNsclJlY3Vyc2l2ZUZvck9mIiwibm9kZXMiXSxnZXRDaGlsZHJlbjpbVm4uTm9u'@; put 'ZSwiY2xyUmVjdXJzaXZlRm9yR2V0Q2hpbGRyZW4iLCJnZXRDaGlsZHJlbiJdfSxmZWF0dXJlczpbYmxdfSksY30pKCksRUc9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2ZvY3VzUmVxdWVzdD1uZXcgR24sdGhpcy5fZm9jdXNDaGFuZ2U9bmV3IEdufWdldCBmb2N1c1JlcXVl'@; put 'c3QoKXtyZXR1cm4gdGhpcy5fZm9jdXNSZXF1ZXN0LmFzT2JzZXJ2YWJsZSgpfWdldCBmb2N1c0NoYW5nZSgpe3JldHVybiB0aGlzLl9mb2N1c0NoYW5nZS5hc09ic2VydmFibGUoKX1mb2N1c05vZGUoYSl7YSYmdGhpcy5fZm9jdXNSZXF1ZXN0Lm5leHQoYS5ub2RlSWQpfWJyb2FkY2FzdEZv'@; put 'Y3VzZWROb2RlKGEpe3RoaXMuZm9jdXNlZE5vZGVJZCE9PWEmJih0aGlzLmZvY3VzZWROb2RlSWQ9YSx0aGlzLl9mb2N1c0NoYW5nZS5uZXh0KGEpKX1mb2N1c1BhcmVudChhKXthJiZ0aGlzLmZvY3VzTm9kZShhLnBhcmVudCl9Zm9jdXNGaXJzdFZpc2libGVOb2RlKCl7dGhpcy5mb2N1c05v'@; put 'ZGUodGhpcy5yb290Tm9kZU1vZGVscyYmdGhpcy5yb290Tm9kZU1vZGVsc1swXSl9Zm9jdXNMYXN0VmlzaWJsZU5vZGUoKXt0aGlzLmZvY3VzTm9kZSh0aGlzLmZpbmRMYXN0VmlzaWJsZUluVHJlZSgpKX1mb2N1c05vZGVBYm92ZShhKXt0aGlzLmZvY3VzTm9kZSh0aGlzLmZpbmROb2RlQWJv'@; put 'dmUoYSkpfWZvY3VzTm9kZUJlbG93KGEpe3RoaXMuZm9jdXNOb2RlKHRoaXMuZmluZE5vZGVCZWxvdyhhKSl9Zm9jdXNOb2RlU3RhcnRzV2l0aChhLGQpe3RoaXMuZm9jdXNOb2RlKHRoaXMuZmluZENsb3Nlc3ROb2RlU3RhcnRzV2l0aChhLGQpKX1maW5kU2libGluZ3MoYSl7cmV0dXJuIGEu'@; put 'cGFyZW50P2EucGFyZW50LmNoaWxkcmVuOnRoaXMucm9vdE5vZGVNb2RlbHN9ZmluZExhc3RWaXNpYmxlSW5Ob2RlKGEpe2lmKCFhKXJldHVybiBudWxsO2lmKGEuZXhwYW5kZWQmJmEuY2hpbGRyZW4ubGVuZ3RoPjApe2NvbnN0IGQ9YS5jaGlsZHJlbjtyZXR1cm4gdGhpcy5maW5kTGFzdFZp'@; put 'c2libGVJbk5vZGUoZFtkLmxlbmd0aC0xXSl9cmV0dXJuIGF9ZmluZE5leHRGb2N1c2FibGUoYSl7aWYoIWEpcmV0dXJuIG51bGw7Y29uc3QgZD10aGlzLmZpbmRTaWJsaW5ncyhhKSxoPWQuaW5kZXhPZihhKTtyZXR1cm4gaDxkLmxlbmd0aC0xP2RbaCsxXTpoPT09ZC5sZW5ndGgtMT90aGlz'@; put 'LmZpbmROZXh0Rm9jdXNhYmxlKGEucGFyZW50KTpudWxsfWZpbmRMYXN0VmlzaWJsZUluVHJlZSgpe3JldHVybiB0aGlzLmZpbmRMYXN0VmlzaWJsZUluTm9kZSh0aGlzLnJvb3ROb2RlTW9kZWxzJiZ0aGlzLnJvb3ROb2RlTW9kZWxzLmxlbmd0aCYmdGhpcy5yb290Tm9kZU1vZGVsc1t0aGlz'@; put 'LnJvb3ROb2RlTW9kZWxzLmxlbmd0aC0xXSl9ZmluZE5vZGVBYm92ZShhKXtpZighYSlyZXR1cm4gbnVsbDtjb25zdCBkPXRoaXMuZmluZFNpYmxpbmdzKGEpLGg9ZC5pbmRleE9mKGEpO3JldHVybiAwPT09aD9hLnBhcmVudDpoPjA/dGhpcy5maW5kTGFzdFZpc2libGVJbk5vZGUoZFtoLTFd'@; put 'KTpudWxsfWZpbmROb2RlQmVsb3coYSl7cmV0dXJuIGE/YS5leHBhbmRlZCYmYS5jaGlsZHJlbi5sZW5ndGg+MD9hLmNoaWxkcmVuWzBdOnRoaXMuZmluZE5leHRGb2N1c2FibGUoYSk6bnVsbH1maW5kRGVzY2VuZGVudE5vZGVTdGFydHNXaXRoKGEsZCl7aWYoZC5leHBhbmRlZCYmZC5jaGls'@; put 'ZHJlbi5sZW5ndGg+MClmb3IoY29uc3QgaCBvZiBkLmNoaWxkcmVuKXtjb25zdCBmPXRoaXMuZmluZE5vZGVTdGFydHNXaXRoKGEsaCk7aWYoZilyZXR1cm4gZn1yZXR1cm4gbnVsbH1maW5kU2libGluZ05vZGVTdGFydHNXaXRoKGEsZCl7Y29uc3QgaD10aGlzLmZpbmRTaWJsaW5ncyhkKTtm'@; put 'b3IobGV0IHY9aC5pbmRleE9mKGQpKzE7djxoLmxlbmd0aDt2Kyspe2NvbnN0IEk9dGhpcy5maW5kTm9kZVN0YXJ0c1dpdGgoYSxoW3ZdKTtpZihJKXJldHVybiBJfXJldHVybiBudWxsfWZpbmRSb290Tm9kZVN0YXJ0c1dpdGgoYSxkKXtmb3IoY29uc3QgaCBvZiB0aGlzLnJvb3ROb2RlTW9k'@; put 'ZWxzKXtpZihkLnBhcmVudCYmZC5wYXJlbnQ9PT1oKWNvbnRpbnVlO2NvbnN0IGY9dGhpcy5maW5kTm9kZVN0YXJ0c1dpdGgoYSxoKTtpZihmKXJldHVybiBmfXJldHVybiBudWxsfWZpbmROb2RlU3RhcnRzV2l0aChhLGQpe3JldHVybiBkP2QudGV4dENvbnRlbnQuc3RhcnRzV2l0aChhKT9k'@; put 'OnRoaXMuZmluZERlc2NlbmRlbnROb2RlU3RhcnRzV2l0aChhLGQpOm51bGx9ZmluZENsb3Nlc3ROb2RlU3RhcnRzV2l0aChhLGQpe2lmKCFkKXJldHVybiBudWxsO2NvbnN0IGg9dGhpcy5maW5kRGVzY2VuZGVudE5vZGVTdGFydHNXaXRoKGEsZCk7aWYoaClyZXR1cm4gaDtjb25zdCBmPXRo'@; put 'aXMuZmluZFNpYmxpbmdOb2RlU3RhcnRzV2l0aChhLGQpO3JldHVybiBmfHwodGhpcy5maW5kUm9vdE5vZGVTdGFydHNXaXRoKGEsZCl8fHRoaXMuZmluZE5vZGVTdGFydHNXaXRoKGEsZC5wYXJlbnQpKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9'@; put 'LGMuXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCk7Y2xhc3MgU1dlIGV4dGVuZHMgUWRle2NvbnN0cnVjdG9yKGwpe3N1cGVyKCksdGhpcy5wYXJlbnQ9bCxsJiZsLl9hZGRDaGlsZCh0aGlzKSx0aGlzLmNoaWxkcmVuPVtdfWRlc3Ryb3koKXt0aGlz'@; put 'LnBhcmVudCYmdGhpcy5wYXJlbnQuX3JlbW92ZUNoaWxkKHRoaXMpLHN1cGVyLmRlc3Ryb3koKX1fYWRkQ2hpbGQobCl7dGhpcy5jaGlsZHJlbi5wdXNoKGwpfV9yZW1vdmVDaGlsZChsKXtjb25zdCBhPXRoaXMuY2hpbGRyZW4uaW5kZXhPZihsKTthPi0xJiZ0aGlzLmNoaWxkcmVuLnNwbGlj'@; put 'ZShhLDEpfX1sZXQgaGc9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLmVsPWF9Z2V0IGFjdGl2ZSgpe3JldHVybiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJhY3RpdmUiKX1hY3RpdmF0ZSgpe3RoaXMuZWwubmF0aXZlRWxlbWVudCYmdGhpcy5l'@; put 'bC5uYXRpdmVFbGVtZW50LmNsaWNrJiZ0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xpY2soKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoJGUoUWkpKX0sYy5cdTAyNzVkaXI9RXIoe3R5cGU6YyxzZWxlY3RvcnM6W1siIiw4LCJjbHItdHJlZW5vZGUt'@; put 'bGluayJdXX0pLGN9KSgpLFBkPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZix2LE0sSSxHKXt0aGlzLnBsYXRmb3JtSWQ9YSx0aGlzLmZlYXR1cmVzU2VydmljZT1oLHRoaXMuZXhwYW5kU2VydmljZT1mLHRoaXMuY29tbW9uU3RyaW5ncz12LHRoaXMuZm9jdXNNYW5hZ2VyPU0s'@; put 'dGhpcy5lbGVtZW50UmVmPUksdGhpcy5zZWxlY3RlZENoYW5nZT1uZXcgS3IoITEpLHRoaXMuZXhwYW5kZWRDaGFuZ2U9bmV3IEtyLHRoaXMuU1RBVEVTPVd1LHRoaXMuaXNNb2RlbExvYWRpbmc9ITEsdGhpcy5ub2RlSWQ9X3UoKSx0aGlzLmNvbnRlbnRDb250YWluZXJUYWJpbmRleD0tMSx0'@; put 'aGlzLnNraXBFbWl0Q2hhbmdlPSExLHRoaXMudHlwZUFoZWFkS2V5QnVmZmVyPSIiLHRoaXMudHlwZUFoZWFkS2V5RXZlbnQ9bmV3IEduLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLl9tb2RlbD1oLnJlY3Vyc2lvbj9HLnZpZXc/Ry52aWV3LmNvbnRleHQuY2xyTW9kZWw6Ry5fbFZpZXdb'@; put 'OF0uY2xyTW9kZWw6bmV3IFNXZShkP2QuX21vZGVsOm51bGwpLHRoaXMuX21vZGVsLm5vZGVJZD10aGlzLm5vZGVJZH1nZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5fbW9kZWwuZGlzYWJsZWR9c2V0IGRpc2FibGVkKGEpe3RoaXMuX21vZGVsLmRpc2FibGVkPWF9Z2V0IHNlbGVjdGVkKCl7'@; put 'cmV0dXJuIHRoaXMuX21vZGVsLnNlbGVjdGVkLnZhbHVlfXNldCBzZWxlY3RlZChhKXt0aGlzLmZlYXR1cmVzU2VydmljZS5zZWxlY3RhYmxlPSEwLChudWxsPT09YXx8dHlwZW9mIGE+InUiKSYmKGE9V3UuVU5TRUxFQ1RFRCksImJvb2xlYW4iPT10eXBlb2YgYSYmKGE9YT9XdS5TRUxFQ1RF'@; put 'RDpXdS5VTlNFTEVDVEVEKSx0aGlzLnNraXBFbWl0Q2hhbmdlPSEwLHRoaXMuX21vZGVsLnNldFNlbGVjdGVkKGEsdGhpcy5mZWF0dXJlc1NlcnZpY2UuZWFnZXIsdGhpcy5mZWF0dXJlc1NlcnZpY2UuZWFnZXIpLHRoaXMuc2tpcEVtaXRDaGFuZ2U9ITF9Z2V0IGV4cGFuZGVkKCl7cmV0dXJu'@; put 'IHRoaXMuZXhwYW5kU2VydmljZS5leHBhbmRlZH1zZXQgZXhwYW5kZWQoYSl7dGhpcy5leHBhbmRTZXJ2aWNlLmV4cGFuZGVkPWF9c2V0IGNsckZvclR5cGVBaGVhZChhKXt0aGlzLl9tb2RlbC50ZXh0Q29udGVudD10aGUoYXx8dGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGV4dENv'@; put 'bnRlbnQpfWdldCBhcmlhU2VsZWN0ZWQoKXtyZXR1cm4gdGhpcy5pc1NlbGVjdGFibGUoKT90aGlzLl9tb2RlbC5zZWxlY3RlZC52YWx1ZT09PVd1LlNFTEVDVEVEOiEhdGhpcy50cmVlTm9kZUxpbms/LmFjdGl2ZXx8bnVsbH1nZXQgdHJlZU5vZGVMaW5rKCl7cmV0dXJuIHRoaXMudHJlZU5v'@; put 'ZGVMaW5rTGlzdCYmdGhpcy50cmVlTm9kZUxpbmtMaXN0LmZpcnN0fWdldCBpc1BhcmVudCgpe3JldHVybiB0aGlzLl9tb2RlbC5jaGlsZHJlbiYmdGhpcy5fbW9kZWwuY2hpbGRyZW4ubGVuZ3RoPjB9bmdPbkluaXQoKXt0aGlzLl9tb2RlbC5leHBhbmRlZD10aGlzLmV4cGFuZGVkLHRoaXMu'@; put 'X21vZGVsLmRpc2FibGVkPXRoaXMuZGlzYWJsZWQsdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5fbW9kZWwuc2VsZWN0ZWQucGlwZShXbCgoKT0+IXRoaXMuc2tpcEVtaXRDaGFuZ2UpKS5zdWJzY3JpYmUoYT0+e3RoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdChhKX0pKSx0aGlzLnN1YnNj'@; put 'cmlwdGlvbnMucHVzaCh0aGlzLmV4cGFuZFNlcnZpY2UuZXhwYW5kQ2hhbmdlLnN1YnNjcmliZShhPT57dGhpcy5leHBhbmRlZENoYW5nZS5lbWl0KGEpLHRoaXMuX21vZGVsLmV4cGFuZGVkPWF9KSksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5mb2N1c01hbmFnZXIuZm9jdXNSZXF1'@; put 'ZXN0LnN1YnNjcmliZShhPT57dGhpcy5ub2RlSWQ9PT1hJiZ0aGlzLmZvY3VzVHJlZU5vZGUoKX0pLHRoaXMuZm9jdXNNYW5hZ2VyLmZvY3VzQ2hhbmdlLnN1YnNjcmliZShhPT57dGhpcy5jaGVja1RhYkluZGV4KGEpfSkpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuX21vZGVsLmxv'@; put 'YWRpbmckLnBpcGUodW0oMCkpLnN1YnNjcmliZShhPT50aGlzLmlzTW9kZWxMb2FkaW5nPWEpKX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnR5cGVBaGVhZEtleUV2ZW50LnBpcGUodW0oMjAwKSkuc3Vic2NyaWJlKGE9Pnt0aGlzLmZvY3VzTWFu'@; put 'YWdlci5mb2N1c05vZGVTdGFydHNXaXRoKGEsdGhpcy5fbW9kZWwpLHRoaXMudHlwZUFoZWFkS2V5QnVmZmVyPSIifSkpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuX21vZGVsLnRleHRDb250ZW50fHwodGhpcy5fbW9kZWwudGV4dENvbnRlbnQ9dGhlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVF'@; put 'bGVtZW50LnRleHRDb250ZW50KSl9bmdPbkRlc3Ryb3koKXt0aGlzLl9tb2RlbC5kZXN0cm95KCksdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goYT0+YS51bnN1YnNjcmliZSgpKX1pc0V4cGFuZGFibGUoKXtyZXR1cm4gdHlwZW9mIHRoaXMuZXhwYW5kYWJsZTwidSI/dGhpcy5leHBhbmRh'@; put 'YmxlOiEhdGhpcy5leHBhbmRTZXJ2aWNlLmV4cGFuZGFibGV8fHRoaXMuaXNQYXJlbnR9aXNTZWxlY3RhYmxlKCl7cmV0dXJuIHRoaXMuZmVhdHVyZXNTZXJ2aWNlLnNlbGVjdGFibGV9Zm9jdXNUcmVlTm9kZSgpe2NvbnN0IGE9dGhpcy5jb250ZW50Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7'@; put 'ZWwodGhpcy5wbGF0Zm9ybUlkKSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWEmJih0aGlzLnNldFRhYkluZGV4KDApLGEuZm9jdXMoKSxhLnNjcm9sbEludG9WaWV3KHtibG9jazoibmVhcmVzdCIsaW5saW5lOiJuZWFyZXN0In0pKX1icm9hZGNhc3RGb2N1c09uQ29udGFpbmVyKCl7dGhp'@; put 'cy5mb2N1c01hbmFnZXIuYnJvYWRjYXN0Rm9jdXNlZE5vZGUodGhpcy5ub2RlSWQpfW9uS2V5RG93bihhKXtzd2l0Y2goRlkoYSksTDIoYS5rZXkpKXtjYXNlIHBhLkFycm93VXA6dGhpcy5mb2N1c01hbmFnZXIuZm9jdXNOb2RlQWJvdmUodGhpcy5fbW9kZWwpO2JyZWFrO2Nhc2UgcGEuQXJy'@; put 'b3dEb3duOnRoaXMuZm9jdXNNYW5hZ2VyLmZvY3VzTm9kZUJlbG93KHRoaXMuX21vZGVsKTticmVhaztjYXNlIHBhLkFycm93UmlnaHQ6dGhpcy5leHBhbmRPckZvY3VzRmlyc3RDaGlsZCgpO2JyZWFrO2Nhc2UgcGEuQXJyb3dMZWZ0OnRoaXMuY29sbGFwc2VPckZvY3VzUGFyZW50KCk7YnJl'@; put 'YWs7Y2FzZSBwYS5Ib21lOmEucHJldmVudERlZmF1bHQoKSx0aGlzLmZvY3VzTWFuYWdlci5mb2N1c0ZpcnN0VmlzaWJsZU5vZGUoKTticmVhaztjYXNlIHBhLkVuZDphLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c01hbmFnZXIuZm9jdXNMYXN0VmlzaWJsZU5vZGUoKTticmVhaztjYXNl'@; put 'IHBhLkVudGVyOnRoaXMudG9nZ2xlRXhwYW5kT3JUcmlnZ2VyRGVmYXVsdCgpO2JyZWFrO2Nhc2UgcGEuU3BhY2U6Y2FzZSBwYS5TcGFjZWJhcjphLnByZXZlbnREZWZhdWx0KCksdGhpcy50b2dnbGVFeHBhbmRPclRyaWdnZXJEZWZhdWx0KCk7YnJlYWs7ZGVmYXVsdDppZih0aGlzLl9tb2Rl'@; put 'bC50ZXh0Q29udGVudCYmZnVuY3Rpb24gZFVlKGMpe2NvbnN0IGw9Yy5rZXk7cmV0dXJuIGwudG9Mb3dlckNhc2UoKSE9PWwudG9VcHBlckNhc2UoKXx8bD49IjAiJiZsPD0iOSJ9KGEpKXJldHVybiB0aGlzLnR5cGVBaGVhZEtleUJ1ZmZlcis9YS5rZXksdm9pZCB0aGlzLnR5cGVBaGVhZEtl'@; put 'eUV2ZW50Lm5leHQodGhpcy50eXBlQWhlYWRLZXlCdWZmZXIpfXRoaXMudHlwZUFoZWFkS2V5QnVmZmVyPSIifXNldFRhYkluZGV4KGEpe3RoaXMuY29udGVudENvbnRhaW5lclRhYmluZGV4PWEsdGhpcy5jb250ZW50Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJ0YWJp'@; put 'bmRleCIsYS50b1N0cmluZygpKX1jaGVja1RhYkluZGV4KGEpe2VsKHRoaXMucGxhdGZvcm1JZCkmJnRoaXMubm9kZUlkIT09YSYmLTEhPT10aGlzLmNvbnRlbnRDb250YWluZXJUYWJpbmRleCYmdGhpcy5zZXRUYWJJbmRleCgtMSl9dG9nZ2xlRXhwYW5kT3JUcmlnZ2VyRGVmYXVsdCgpe3Ro'@; put 'aXMuZGlzYWJsZWR8fCh0aGlzLmlzRXhwYW5kYWJsZSgpJiYhdGhpcy5pc1NlbGVjdGFibGUoKT90aGlzLmV4cGFuZFNlcnZpY2UuZXhwYW5kZWQ9IXRoaXMuZXhwYW5kZWQ6dGhpcy50cmlnZ2VyRGVmYXVsdEFjdGlvbigpKX1leHBhbmRPckZvY3VzRmlyc3RDaGlsZCgpe3RoaXMuZGlzYWJs'@; put 'ZWR8fCh0aGlzLmV4cGFuZGVkP3RoaXMuaXNQYXJlbnQmJnRoaXMuZm9jdXNNYW5hZ2VyLmZvY3VzTm9kZUJlbG93KHRoaXMuX21vZGVsKTp0aGlzLmlzRXhwYW5kYWJsZSgpJiYodGhpcy5leHBhbmRTZXJ2aWNlLmV4cGFuZGVkPSEwKSl9Y29sbGFwc2VPckZvY3VzUGFyZW50KCl7dGhpcy5k'@; put 'aXNhYmxlZHx8KHRoaXMuZXhwYW5kZWQ/dGhpcy5leHBhbmRTZXJ2aWNlLmV4cGFuZGVkPSExOnRoaXMuZm9jdXNNYW5hZ2VyLmZvY3VzUGFyZW50KHRoaXMuX21vZGVsKSl9dHJpZ2dlckRlZmF1bHRBY3Rpb24oKXt0aGlzLnRyZWVOb2RlTGluaz90aGlzLnRyZWVOb2RlTGluay5hY3RpdmF0'@; put 'ZSgpOnRoaXMuaXNTZWxlY3RhYmxlKCkmJnRoaXMuX21vZGVsLnRvZ2dsZVNlbGVjdGlvbih0aGlzLmZlYXR1cmVzU2VydmljZS5lYWdlcil9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKCRlKGlzKSwkZShjLDEyKSwkZShPNyksJGUoVzEpLCRlKHRv'@; put 'KSwkZShFRyksJGUoUWkpLCRlKERvKSl9LGMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci10cmVlLW5vZGUiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oYSxkLGgpe2lmKDEmYSYmYXMoaCxoZyw0KSwyJmEpe2xldCBmO3lpKGY9YmkoKSkmJihkLnRyZWVOb2RlTGlu'@; put 'a0xpc3Q9Zil9fSx2aWV3UXVlcnk6ZnVuY3Rpb24oYSxkKXtpZigxJmEmJkZhKG56ZSw3LFFpKSwyJmEpe2xldCBoO3lpKGg9YmkoKSkmJihkLmNvbnRlbnRDb250YWluZXI9aC5maXJzdCl9fSxob3N0VmFyczo0LGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmVHIoImNsci10cmVl'@; put 'LW5vZGUiLCEwKSgiZGlzYWJsZWQiLGQuX21vZGVsLmRpc2FibGVkKX0saW5wdXRzOntleHBhbmRhYmxlOltWbi5Ob25lLCJjbHJFeHBhbmRhYmxlIiwiZXhwYW5kYWJsZSJdLGRpc2FibGVkOltWbi5Ob25lLCJjbHJEaXNhYmxlZCIsImRpc2FibGVkIl0sc2VsZWN0ZWQ6W1ZuLk5vbmUsImNs'@; put 'clNlbGVjdGVkIiwic2VsZWN0ZWQiXSxleHBhbmRlZDpbVm4uTm9uZSwiY2xyRXhwYW5kZWQiLCJleHBhbmRlZCJdLGNsckZvclR5cGVBaGVhZDoiY2xyRm9yVHlwZUFoZWFkIn0sb3V0cHV0czp7c2VsZWN0ZWRDaGFuZ2U6ImNsclNlbGVjdGVkQ2hhbmdlIixleHBhbmRlZENoYW5nZToiY2xy'@; put 'RXhwYW5kZWRDaGFuZ2UifSxmZWF0dXJlczpbdWEoW3FkZSxXMSx7cHJvdmlkZTpQeCx1c2VFeGlzdGluZzpXMX1dKV0sbmdDb250ZW50U2VsZWN0b3JzOml6ZSxkZWNsczoxMix2YXJzOjEyLGNvbnN0czpbWyJjb250ZW50Q29udGFpbmVyIiwiIl0sWyJ0cmVlbm9kZUNvbnRlbnQiLCIiXSxb'@; put 'InJvbGUiLCJ0cmVlaXRlbSIsInRhYmluZGV4IiwiLTEiLDEsImNsci10cmVlLW5vZGUtY29udGVudC1jb250YWluZXIiLDMsImtleWRvd24iLCJmb2N1cyJdLFsiYXJpYS1oaWRkZW4iLCJ0cnVlIiwidHlwZSIsImJ1dHRvbiIsInRhYmluZGV4IiwiLTEiLCJjbGFzcyIsImNsci10cmVlbm9k'@; put 'ZS1jYXJldCIsMywiZGlzYWJsZWQiLCJjbGljayIsImZvY3VzIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNsci10cmVlbm9kZS1zcGlubmVyLWNvbnRhaW5lciIsNCwibmdJZiJdLFsiY2xhc3MiLCJjbHItY2hlY2tib3gtd3JhcHBlciBjbHItdHJlZW5vZGUtY2hlY2tib3giLDQsIm5nSWYiXSxb'@; put 'ImNsYXNzIiwiY2xyLXRyZWVub2RlLWNvbnRlbnQiLDMsIm1vdXNldXAiLDQsIm5nSWYiXSxbMSwiY2xyLXRyZWVub2RlLWNoaWxkcmVuIl0sWzMsInBhcmVudCJdLFsiYXJpYS1oaWRkZW4iLCJ0cnVlIiwidHlwZSIsImJ1dHRvbiIsInRhYmluZGV4IiwiLTEiLDEsImNsci10cmVlbm9kZS1j'@; put 'YXJldCIsMywiY2xpY2siLCJmb2N1cyIsImRpc2FibGVkIl0sWyJzaGFwZSIsImFuZ2xlIiwxLCJjbHItdHJlZW5vZGUtY2FyZXQtaWNvbiJdLFsxLCJjbHItdHJlZW5vZGUtc3Bpbm5lci1jb250YWluZXIiXSxbMSwiY2xyLXRyZWVub2RlLXNwaW5uZXIiLCJzcGlubmVyIl0sWzEsImNsci1j'@; put 'aGVja2JveC13cmFwcGVyIiwiY2xyLXRyZWVub2RlLWNoZWNrYm94Il0sWyJhcmlhLWhpZGRlbiIsInRydWUiLCJ0eXBlIiwiY2hlY2tib3giLCJ0YWJpbmRleCIsIi0xIiwxLCJjbHItY2hlY2tib3giLDMsImNoYW5nZSIsImZvY3VzIiwiaWQiLCJkaXNhYmxlZCIsImNoZWNrZWQiLCJpbmRl'@; put 'dGVybWluYXRlIl0sWzEsImNsci1jb250cm9sLWxhYmVsIiwzLCJmb3IiXSxbMywibmdUZW1wbGF0ZU91dGxldCJdLFsxLCJjbHItdHJlZW5vZGUtY29udGVudCIsMywibW91c2V1cCJdLFsiY2xhc3MiLCJjbHItc3Itb25seSIsNCwibmdJZiJdLFsxLCJjbHItc3Itb25seSJdXSx0ZW1wbGF0'@; put 'ZTpmdW5jdGlvbihhLGQpe2lmKDEmYSl7Y29uc3QgaD1PbigpO3NhKHJ6ZSksZGUoMCwiZGl2IiwyLDApLEZ0KCJrZXlkb3duIixmdW5jdGlvbih2KXtyZXR1cm4gd3QoaCksQ3QoZC5vbktleURvd24odikpfSkoImZvY3VzIixmdW5jdGlvbigpe3JldHVybiB3dChoKSxDdChkLmJyb2FkY2Fz'@; put 'dEZvY3VzT25Db250YWluZXIoKSl9KSxndCgyLGF6ZSwyLDIsImJ1dHRvbiIsMykoMyxzemUsMiwwLCJkaXYiLDQpKDQsb3plLDQsNiwiZGl2Iiw1KSg1LGx6ZSwyLDEsImRpdiIsNikoNix1emUsMiwxLCJuZy10ZW1wbGF0ZSIsbnVsbCwxLGdjKSxoZSgpLGRlKDgsImRpdiIsNyksV3IoOSks'@; put 'V3IoMTAsMSksV3QoMTEsImNsci1yZWN1cnNpdmUtY2hpbGRyZW4iLDgpLGhlKCl9MiZhJiYoVHIoImNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQiLGQuZGlzYWJsZWQpLGhyKCJhcmlhLWRpc2FibGVkIixkLmRpc2FibGVkKSgiYXJpYS1leHBhbmRlZCIsZC5pc0V4cGFuZGFibGUoKT9kLmV4'@; put 'cGFuZGVkOm51bGwpKCJhcmlhLXNlbGVjdGVkIixkLmFyaWFTZWxlY3RlZCksZmUoMiksTWUoIm5nSWYiLGQuaXNFeHBhbmRhYmxlKCkmJiFkLmlzTW9kZWxMb2FkaW5nJiYhZC5leHBhbmRTZXJ2aWNlLmxvYWRpbmcpLGZlKCksTWUoIm5nSWYiLGQuZXhwYW5kU2VydmljZS5sb2FkaW5nfHxk'@; put 'LmlzTW9kZWxMb2FkaW5nKSxmZSgpLE1lKCJuZ0lmIixkLmZlYXR1cmVzU2VydmljZS5zZWxlY3RhYmxlKSxmZSgpLE1lKCJuZ0lmIiwhZC5mZWF0dXJlc1NlcnZpY2Uuc2VsZWN0YWJsZSksZmUoMyksTWUoIkB0b2dnbGVDaGlsZHJlbkFuaW0iLGQuZXhwYW5kU2VydmljZS5leHBhbmRlZD8i'@; put 'ZXhwYW5kZWQiOiJjb2xsYXBzZWQiKSxocigicm9sZSIsZC5pc0V4cGFuZGFibGUoKSYmIWQuZmVhdHVyZXNTZXJ2aWNlLnJlY3Vyc2lvbj8iZ3JvdXAiOm51bGwpLGZlKDMpLE1lKCJwYXJlbnQiLGQuX21vZGVsKSl9LGRlcGVuZGVuY2llczpbYmEsQjEsZW8sSmRlXSxlbmNhcHN1bGF0aW9u'@; put 'OjIsZGF0YTp7YW5pbWF0aW9uOlt3aCgidG9nZ2xlQ2hpbGRyZW5BbmltIixbdHUoImNvbGxhcHNlZCA9PiBleHBhbmRlZCIsW2xvKHtoZWlnaHQ6MH0pLHcwKDIwMCxsbyh7aGVpZ2h0OiIqIn0pKV0pLHR1KCJleHBhbmRlZCA9PiBjb2xsYXBzZWQiLFtsbyh7aGVpZ2h0OiIqIn0pLHcwKDIw'@; put 'MCxsbyh7aGVpZ2h0OjB9KSldKSxUTCgiZXhwYW5kZWQiLGxvKHtoZWlnaHQ6IioiLCJvdmVyZmxvdy15IjoidmlzaWJsZSJ9KSksVEwoImNvbGxhcHNlZCIsbG8oe2hlaWdodDowfSkpXSldfX0pLGN9KSgpO2Z1bmN0aW9uIHRoZShjKXtyZXR1cm4gYy50b0xvY2FsZUxvd2VyQ2FzZSgpLnRy'@; put 'aW0oKX1sZXQgQWg9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmLHYpe3RoaXMuZmVhdHVyZXNTZXJ2aWNlPWEsdGhpcy5mb2N1c01hbmFnZXJTZXJ2aWNlPWQsdGhpcy5yZW5kZXJlcj1oLHRoaXMuZWw9Zix0aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5faXNNdWx0aVNlbGVj'@; put 'dGFibGU9ITE7Y29uc3QgTT12LnJ1bk91dHNpZGVBbmd1bGFyKCgpPT54ZChmLm5hdGl2ZUVsZW1lbnQsImZvY3VzaW4iKS5zdWJzY3JpYmUoST0+e0kudGFyZ2V0PT09Zi5uYXRpdmVFbGVtZW50JiYoZC5mb2N1c0ZpcnN0VmlzaWJsZU5vZGUoKSxoLnJlbW92ZUF0dHJpYnV0ZShmLm5hdGl2'@; put 'ZUVsZW1lbnQsInRhYmluZGV4IikpfSkpO3RoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKE0pfXNldCBsYXp5KGEpe3RoaXMuZmVhdHVyZXNTZXJ2aWNlLmVhZ2VyPSFhfWdldCBpc011bHRpU2VsZWN0YWJsZSgpe3JldHVybiB0aGlzLl9pc011bHRpU2VsZWN0YWJsZX1uZ0FmdGVyQ29udGVudElu'@; put 'aXQoKXt0aGlzLnNldFJvb3ROb2RlcygpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMucm9vdE5vZGVzLmNoYW5nZXMuc3Vic2NyaWJlKCgpPT57dGhpcy5zZXRNdWx0aVNlbGVjdGFibGUoKSx0aGlzLnNldFJvb3ROb2RlcygpfSkpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRp'@; put 'b25zLmZvckVhY2goYT0+YS51bnN1YnNjcmliZSgpKX1zZXRNdWx0aVNlbGVjdGFibGUoKXt0aGlzLmZlYXR1cmVzU2VydmljZS5zZWxlY3RhYmxlJiZ0aGlzLnJvb3ROb2Rlcy5sZW5ndGg+MD8odGhpcy5faXNNdWx0aVNlbGVjdGFibGU9ITAsdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUo'@; put 'dGhpcy5lbC5uYXRpdmVFbGVtZW50LCJhcmlhLW11bHRpc2VsZWN0YWJsZSIsInRydWUiKSk6KHRoaXMuX2lzTXVsdGlTZWxlY3RhYmxlPSExLHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwiYXJpYS1tdWx0aXNlbGVjdGFibGUiKSl9c2V0Um9v'@; put 'dE5vZGVzKCl7dGhpcy5mb2N1c01hbmFnZXJTZXJ2aWNlLnJvb3ROb2RlTW9kZWxzPXRoaXMucm9vdE5vZGVzLm1hcChhPT5hLl9tb2RlbCkuZmlsdGVyKGE9PiFhLnBhcmVudCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKCRlKE83KSwkZShFRyks'@; put 'JGUoRXMpLCRlKFFpKSwkZShHYSkpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItdHJlZSJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihhLGQsaCl7aWYoMSZhJiZhcyhoLFBkLDQpLDImYSl7bGV0IGY7eWkoZj1iaSgpKSYmKGQucm9vdE5vZGVzPWYpfX0saG9z'@; put 'dEF0dHJzOlsidGFiaW5kZXgiLCIwIl0saG9zdFZhcnM6MSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oYSxkKXsyJmEmJmhyKCJyb2xlIiwidHJlZSIpfSxpbnB1dHM6e2xhenk6W1ZuLk5vbmUsImNsckxhenkiLCJsYXp5Il19LGZlYXR1cmVzOlt1YShbcWRlLEVHXSldLG5nQ29udGVudFNlbGVj'@; put 'dG9yczp5cyxkZWNsczoyLHZhcnM6MSxjb25zdHM6W1szLCJjaGlsZHJlbiIsNCwibmdJZiJdLFszLCJjaGlsZHJlbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKHNhKCksV3IoMCksZ3QoMSxkemUsMSwxLCJjbHItcmVjdXJzaXZlLWNoaWxkcmVuIiwwKSksMiZhJiYoZmUoKSxN'@; put 'ZSgibmdJZiIsZC5mZWF0dXJlc1NlcnZpY2UucmVjdXJzaW9uKSl9LGRlcGVuZGVuY2llczpbYmEsSmRlXSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxFV2U9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe0VvLmFkZEljb25zKENiKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEp'@; put 'e3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1Bcih7aW1wb3J0czpbTGEsVG8sVlldfSksY30pKCksVFdlPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1v'@; put 'ZD1BaSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9QXIoe2ltcG9ydHM6W3lXZSxfV2UsRVdlXX0pLGN9KSgpO2NvbnN0IEFXZT1bImluZm8iLCJ3YXJuaW5nIiwiZGFuZ2VyIiwic3VjY2VzcyIsIm5ldXRyYWwiLCJ1bmtub3duIiwibG9hZGluZyJdO2xldCBURz0oKCk9PntjbGFzcyBje2NvbnN0'@; put 'cnVjdG9yKGEpe3RoaXMuY29tbW9uU3RyaW5ncz1hLHRoaXMuZGVmYXVsdEljb25TaGFwZT0iaW5mby1zdGFuZGFyZCIsdGhpcy5fYWxlcnRJY29uU2hhcGU9IiIsdGhpcy5fYWxlcnRUeXBlPSJpbmZvIn1nZXQgYWxlcnRUeXBlKCl7cmV0dXJuIHRoaXMuX2FsZXJ0VHlwZX1zZXQgYWxlcnRU'@; put 'eXBlKGEpe0FXZS5pbmRleE9mKGEpPi0xJiYodGhpcy5fYWxlcnRUeXBlPWEpfWdldCBhbGVydEljb25TaGFwZSgpe3JldHVybiIiPT09dGhpcy5fYWxlcnRJY29uU2hhcGU/dGhpcy5pY29uSW5mb0Zyb21UeXBlKHRoaXMuX2FsZXJ0VHlwZSkuc2hhcGU6dGhpcy5fYWxlcnRJY29uU2hhcGV9'@; put 'c2V0IGFsZXJ0SWNvblNoYXBlKGEpe2E/YSE9PXRoaXMuX2FsZXJ0SWNvblNoYXBlJiYodGhpcy5fYWxlcnRJY29uU2hhcGU9YSk6dGhpcy5fYWxlcnRJY29uU2hhcGU9IiJ9Z2V0IGFsZXJ0SWNvblRpdGxlKCl7cmV0dXJuIHRoaXMuaWNvbkluZm9Gcm9tVHlwZSh0aGlzLl9hbGVydFR5cGUp'@; put 'LnRpdGxlfWljb25JbmZvRnJvbVR5cGUoYSl7Y29uc3QgZD17c2hhcGU6IiIsY3NzQ2xhc3M6IiIsdGl0bGU6IiJ9O3N3aXRjaChhKXtjYXNlIndhcm5pbmciOmQuc2hhcGU9Indhcm5pbmctc3RhbmRhcmQiLGQuY3NzQ2xhc3M9ImFsZXJ0LXdhcm5pbmciLGQudGl0bGU9dGhpcy5jb21tb25T'@; put 'dHJpbmdzLmtleXMud2FybmluZzticmVhaztjYXNlImRhbmdlciI6ZC5zaGFwZT0iZXJyb3Itc3RhbmRhcmQiLGQuY3NzQ2xhc3M9ImFsZXJ0LWRhbmdlciIsZC50aXRsZT10aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5kYW5nZXI7YnJlYWs7Y2FzZSJzdWNjZXNzIjpkLnNoYXBlPSJzdWNjZXNz'@; put 'LXN0YW5kYXJkIixkLmNzc0NsYXNzPSJhbGVydC1zdWNjZXNzIixkLnRpdGxlPXRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLnN1Y2Nlc3M7YnJlYWs7Y2FzZSJuZXV0cmFsIjpkLnNoYXBlPSJub3RlIixkLmNzc0NsYXNzPSJhbGVydC1uZXV0cmFsIixkLnRpdGxlPXRoaXMuY29tbW9uU3RyaW5n'@; put 'cy5rZXlzLm5ldXRyYWw7YnJlYWs7Y2FzZSJ1bmtub3duIjpkLnNoYXBlPSJoZWxwIixkLmNzc0NsYXNzPSJhbGVydC1uZXV0cmFsIixkLnRpdGxlPXRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLnVua25vd247YnJlYWs7Y2FzZSJsb2FkaW5nIjpkLnNoYXBlPSJsb2FkaW5nIixkLmNzc0NsYXNz'@; put 'PSJhbGVydC1uZXV0cmFsIixkLnRpdGxlPXRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLnVua25vd247YnJlYWs7ZGVmYXVsdDpkLnNoYXBlPXRoaXMuZGVmYXVsdEljb25TaGFwZSxkLmNzc0NsYXNzPSJhbGVydC1pbmZvIixkLnRpdGxlPXRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmluZm99cmV0'@; put 'dXJuIGR9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKENyKHRvKSl9LGMuXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSksY30pKCksbU89KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuX2NoYW5nZT1uZXcg'@; put 'R259Z2V0IGNoYW5nZXMoKXtyZXR1cm4gdGhpcy5fY2hhbmdlLmFzT2JzZXJ2YWJsZSgpfWdldCBjdXJyZW50KCl7cmV0dXJuIHRoaXMuX2N1cnJlbnR9c2V0IGN1cnJlbnQoYSl7YSE9PXRoaXMuX2N1cnJlbnQmJih0aGlzLl9jdXJyZW50PWEsdGhpcy5fY2hhbmdlLm5leHQoYSkpfWdldCBh'@; put 'Y3RpdmVBbGVydHMoKXtyZXR1cm4gdGhpcy5hbGxBbGVydHMmJnRoaXMuYWxsQWxlcnRzLmZpbHRlcihhPT4hYS5fY2xvc2VkKX1nZXQgY3VycmVudEFsZXJ0KCl7cmV0dXJuIHRoaXMuYWN0aXZlQWxlcnRzJiZ0aGlzLmFjdGl2ZUFsZXJ0c1t0aGlzLmN1cnJlbnRdfXNldCBjdXJyZW50QWxl'@; put 'cnQoYSl7dGhpcy5jdXJyZW50PXRoaXMuYWN0aXZlQWxlcnRzLmluZGV4T2YoYSl9Z2V0IGNvdW50KCl7cmV0dXJuIHRoaXMuYWN0aXZlQWxlcnRzJiZ0aGlzLmFjdGl2ZUFsZXJ0cy5sZW5ndGh8fDB9bWFuYWdlKGEpe3RoaXMuc3Vic2NyaXB0aW9uJiZ0aGlzLnN1YnNjcmlwdGlvbi51bnN1'@; put 'YnNjcmliZSgpLHRoaXMuYWxsQWxlcnRzPWEsdGhpcy5jdXJyZW50PSJudW1iZXIiPT10eXBlb2YgdGhpcy5fY3VycmVudD90aGlzLl9jdXJyZW50OjAsdGhpcy5fY2hhbmdlLm5leHQodGhpcy5jdXJyZW50KSx0aGlzLnN1YnNjcmlwdGlvbj10aGlzLmFsbEFsZXJ0cy5jaGFuZ2VzLnN1YnNj'@; put 'cmliZSgoKT0+e3RoaXMuY3VycmVudD49dGhpcy5hbGxBbGVydHMubGVuZ3RoJiYodGhpcy5jdXJyZW50PU1hdGgubWF4KDAsdGhpcy5hbGxBbGVydHMubGVuZ3RoLTEpKX0pfW5leHQoKXt0aGlzLl9jdXJyZW50PXRoaXMuY3VycmVudD09PXRoaXMuYWN0aXZlQWxlcnRzLmxlbmd0aC0xPzA6'@; put 'dGhpcy5jdXJyZW50KzEsdGhpcy5fY2hhbmdlLm5leHQodGhpcy5fY3VycmVudCl9cHJldmlvdXMoKXswIT09dGhpcy5hY3RpdmVBbGVydHMubGVuZ3RoJiYodGhpcy5fY3VycmVudD0wPT09dGhpcy5jdXJyZW50P3RoaXMuYWN0aXZlQWxlcnRzLmxlbmd0aC0xOnRoaXMuY3VycmVudC0xLHRo'@; put 'aXMuX2NoYW5nZS5uZXh0KHRoaXMuX2N1cnJlbnQpKX1vcGVuKCl7MCE9PXRoaXMuYWN0aXZlQWxlcnRzLmxlbmd0aCYmKHRoaXMuY3VycmVudEFsZXJ0fHwodGhpcy5fY3VycmVudD0wKSx0aGlzLl9jaGFuZ2UubmV4dCh0aGlzLl9jdXJyZW50KSl9Y2xvc2UoYSl7MCE9PXRoaXMuYWN0aXZl'@; put 'QWxlcnRzLmxlbmd0aCYmKGEmJih0aGlzLl9jdXJyZW50PU1hdGgubWF4KDAsdGhpcy5jdXJyZW50LTEpKSx0aGlzLl9jaGFuZ2UubmV4dCh0aGlzLl9jdXJyZW50KSl9ZGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9uJiZ0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfX1yZXR1cm4g'@; put 'Yy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSxyRT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYsdixNKXt0aGlzLmljb25TZXJ2aWNlPWEsdGhpcy5jZHI9'@; put 'ZCx0aGlzLm11bHRpQWxlcnRTZXJ2aWNlPWgsdGhpcy5jb21tb25TdHJpbmdzPWYsdGhpcy5yZW5kZXJlcj12LHRoaXMuaG9zdEVsZW1lbnQ9TSx0aGlzLmlzU21hbGw9ITEsdGhpcy5jbG9zYWJsZT0hMCx0aGlzLmlzQXBwTGV2ZWw9ITEsdGhpcy5jbHJDbG9zZUJ1dHRvbkFyaWFMYWJlbD10'@; put 'aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5hbGVydENsb3NlQnV0dG9uQXJpYUxhYmVsLHRoaXMuX2Nsb3NlZENoYW5nZWQ9bmV3IEtyKCExKSx0aGlzLl9jbG9zZWQ9ITEsdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMuX2lzTGlnaHR3ZWlnaHQ9ITF9Z2V0IGlzTGlnaHR3ZWlnaHQoKXtyZXR1'@; put 'cm4gdGhpcy5faXNMaWdodHdlaWdodH1zZXQgaXNMaWdodHdlaWdodChhKXt0aGlzLl9pc0xpZ2h0d2VpZ2h0PWEsdGhpcy5jb25maWdBbGVydFR5cGUodGhpcy5fb3JpZ0FsZXJ0VHlwZSl9Z2V0IGFsZXJ0VHlwZSgpe3JldHVybiB0aGlzLmljb25TZXJ2aWNlLmFsZXJ0VHlwZX1zZXQgYWxl'@; put 'cnRUeXBlKGEpe3RoaXMuX29yaWdBbGVydFR5cGU9YSx0aGlzLmNvbmZpZ0FsZXJ0VHlwZShhKX1zZXQgYWxlcnRJY29uU2hhcGUoYSl7dGhpcy5pY29uU2VydmljZS5hbGVydEljb25TaGFwZT1hfXNldCBjbG9zZWQoYSl7YSYmIXRoaXMuX2Nsb3NlZD90aGlzLmNsb3NlKCk6IWEmJnRoaXMu'@; put 'X2Nsb3NlZCYmdGhpcy5vcGVuKCl9Z2V0IGFsZXJ0Q2xhc3MoKXtyZXR1cm4gdGhpcy5pY29uU2VydmljZS5pY29uSW5mb0Zyb21UeXBlKHRoaXMuaWNvblNlcnZpY2UuYWxlcnRUeXBlKS5jc3NDbGFzc31nZXQgaGlkZGVuKCl7cmV0dXJuIHRoaXMuX2hpZGRlbn1zZXQgaGlkZGVuKGEpe2Eh'@; put 'PT10aGlzLl9oaWRkZW4mJih0aGlzLl9oaWRkZW49YSx0aGlzLl9oaWRkZW4/dGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsImFsZXJ0LWhpZGRlbiIpOnRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5ob3N0RWxlbWVudC5uYXRpdmVF'@; put 'bGVtZW50LCJhbGVydC1oaWRkZW4iKSx0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCkpfW5nT25Jbml0KCl7dGhpcy5tdWx0aUFsZXJ0U2VydmljZSYmdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jaGFuZ2VzLnN1YnNjcmliZSgoKT0+e3RoaXMuaGlkZGVu'@; put 'PXRoaXMubXVsdGlBbGVydFNlcnZpY2UuY3VycmVudEFsZXJ0IT09dGhpc30pKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGE9PmEudW5zdWJzY3JpYmUoKSl9Y29uZmlnQWxlcnRUeXBlKGEpe3RoaXMuaWNvblNlcnZpY2UuYWxlcnRUeXBlPWF9b3Blbigpe3Ro'@; put 'aXMuX2Nsb3NlZD0hMSx0aGlzLm11bHRpQWxlcnRTZXJ2aWNlJiZ0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLm9wZW4oKSx0aGlzLl9jbG9zZWRDaGFuZ2VkLmVtaXQoITEpfWNsb3NlKCl7aWYoIXRoaXMuY2xvc2FibGUpcmV0dXJuO2NvbnN0IGE9dGhpcy5tdWx0aUFsZXJ0U2VydmljZT8uY3Vy'@; put 'cmVudEFsZXJ0PT09dGhpczt0aGlzLl9jbG9zZWQ9ITAsdGhpcy5tdWx0aUFsZXJ0U2VydmljZT8uYWN0aXZlQWxlcnRzJiZ0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmNsb3NlKGEpLHRoaXMuX2Nsb3NlZENoYW5nZWQuZW1pdCghMCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXty'@; put 'ZXR1cm4gbmV3KGF8fGMpKCRlKFRHKSwkZSh4byksJGUobU8sOCksJGUodG8pLCRlKEVzKSwkZShRaSkpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItYWxlcnQiXV0saW5wdXRzOntpc1NtYWxsOltWbi5Ob25lLCJjbHJBbGVydFNpemVTbWFsbCIsImlzU21hbGwi'@; put 'XSxjbG9zYWJsZTpbVm4uTm9uZSwiY2xyQWxlcnRDbG9zYWJsZSIsImNsb3NhYmxlIl0saXNBcHBMZXZlbDpbVm4uTm9uZSwiY2xyQWxlcnRBcHBMZXZlbCIsImlzQXBwTGV2ZWwiXSxjbHJDbG9zZUJ1dHRvbkFyaWFMYWJlbDoiY2xyQ2xvc2VCdXR0b25BcmlhTGFiZWwiLGlzTGlnaHR3ZWln'@; put 'aHQ6W1ZuLk5vbmUsImNsckFsZXJ0TGlnaHR3ZWlnaHQiLCJpc0xpZ2h0d2VpZ2h0Il0sYWxlcnRUeXBlOltWbi5Ob25lLCJjbHJBbGVydFR5cGUiLCJhbGVydFR5cGUiXSxhbGVydEljb25TaGFwZTpbVm4uTm9uZSwiY2xyQWxlcnRJY29uIiwiYWxlcnRJY29uU2hhcGUiXSxjbG9zZWQ6W1Zu'@; put 'Lk5vbmUsImNsckFsZXJ0Q2xvc2VkIiwiY2xvc2VkIl19LG91dHB1dHM6e19jbG9zZWRDaGFuZ2VkOiJjbHJBbGVydENsb3NlZENoYW5nZSJ9LGZlYXR1cmVzOlt1YShbVEddKV0sbmdDb250ZW50U2VsZWN0b3JzOnlzLGRlY2xzOjEsdmFyczoxLGNvbnN0czpbWyJjbGFzcyIsImFsZXJ0Iiwz'@; put 'LCJuZ0NsYXNzIiwiYWxlcnQtc20iLCJhbGVydC1saWdodHdlaWdodCIsImFsZXJ0LWFwcC1sZXZlbCIsNCwibmdJZiJdLFsxLCJhbGVydCIsMywibmdDbGFzcyJdLFsxLCJhbGVydC1pdGVtcyJdLFsidHlwZSIsImJ1dHRvbiIsImNsYXNzIiwiY2xvc2UiLDMsImNsaWNrIiw0LCJuZ0lmIl0s'@; put 'WyJ0eXBlIiwiYnV0dG9uIiwxLCJjbG9zZSIsMywiY2xpY2siXSxbInNoYXBlIiwid2luZG93LWNsb3NlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoc2EoKSxndCgwLGZ6ZSw0LDgsImRpdiIsMCkpLDImYSYmTWUoIm5nSWYiLCFkLl9jbG9zZWQpfSxkZXBlbmRlbmNpZXM6W3Z1'@; put 'LGJhLGVvXSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxuaGU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLmljb25TZXJ2aWNlPWF9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKCRlKFRHKSl9LGMuXHUwMjc1Y21wPU5yKHt0eXBlOmMs'@; put 'c2VsZWN0b3JzOltbImNsci1hbGVydC1pdGVtIl1dLGhvc3RBdHRyczpbMSwiYWxlcnQtaXRlbSJdLG5nQ29udGVudFNlbGVjdG9yczp5cyxkZWNsczo0LHZhcnM6Mixjb25zdHM6W1sxLCJhbGVydC1pY29uLXdyYXBwZXIiXSxbImNsYXNzIiwiYWxlcnQtc3Bpbm5lciIsImNscklubGluZSIs'@; put 'IiIsNCwibmdJZiJdLFsiY2xhc3MiLCJhbGVydC1pY29uIiwicm9sZSIsImltZyIsNCwibmdJZiJdLFsiY2xySW5saW5lIiwiIiwxLCJhbGVydC1zcGlubmVyIl0sWyJyb2xlIiwiaW1nIiwxLCJhbGVydC1pY29uIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoc2EoKSxkZSgwLCJk'@; put 'aXYiLDApLGd0KDEscHplLDEsMCwiY2xyLXNwaW5uZXIiLDEpKDIsZ3plLDEsMiwiY2RzLWljb24iLDIpLGhlKCksV3IoMykpLDImYSYmKGZlKCksTWUoIm5nSWYiLCJsb2FkaW5nIj09PWQuaWNvblNlcnZpY2UuYWxlcnRJY29uU2hhcGUpLGZlKCksTWUoIm5nSWYiLCJsb2FkaW5nIiE9PWQu'@; put 'aWNvblNlcnZpY2UuYWxlcnRJY29uU2hhcGUpKX0sZGVwZW5kZW5jaWVzOltiYSxlbyxSZF0sZW5jYXBzdWxhdGlvbjoyfSksY30pKCksaUU9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1ZGlyPUVyKHt0eXBl'@; put 'OmMsc2VsZWN0b3JzOltbIiIsOCwiYWxlcnQtdGV4dCJdXX0pLGN9KSgpLHJoZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCl7dGhpcy5tdWx0aUFsZXJ0U2VydmljZT1hLHRoaXMuY29tbW9uU3RyaW5ncz1kLHRoaXMuY3VycmVudEFsZXJ0Q2hhbmdlPW5ldyBLcighMSksdGhpcy5j'@; put 'dXJyZW50QWxlcnRJbmRleENoYW5nZT1uZXcgS3J9Z2V0IGN1cnJlbnRBbGVydCgpe3JldHVybiB0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmN1cnJlbnRBbGVydH1zZXQgY3VycmVudEFsZXJ0KGEpe2EmJih0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmN1cnJlbnRBbGVydD1hKX1nZXQgY3VycmVu'@; put 'dEFsZXJ0SW5kZXgoKXtyZXR1cm4gdGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50fXNldCBjdXJyZW50QWxlcnRJbmRleChhKXt0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmN1cnJlbnQ9YX1nZXQgcHJldmlvdXNBbGVydEFyaWFMYWJlbCgpe2NvbnN0IGE9dGhpcy5jdXJyZW50QWxlcnRJ'@; put 'bmRleCsxO3JldHVybiB0aGlzLmNvbW1vblN0cmluZ3MucGFyc2UodGhpcy5jb21tb25TdHJpbmdzLmtleXMuYWxlcnRQcmV2aW91c0FsZXJ0QXJpYUxhYmVsLHtDVVJSRU5UOigxPT09YT90aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmNvdW50OmEtMSkudG9TdHJpbmcoKSxDT1VOVDp0aGlzLm11'@; put 'bHRpQWxlcnRTZXJ2aWNlLmNvdW50LnRvU3RyaW5nKCl9KX1nZXQgbmV4dEFsZXJ0QXJpYUxhYmVsKCl7Y29uc3QgYT10aGlzLmN1cnJlbnRBbGVydEluZGV4KzE7cmV0dXJuIHRoaXMuY29tbW9uU3RyaW5ncy5wYXJzZSh0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5hbGVydE5leHRBbGVydEFy'@; put 'aWFMYWJlbCx7Q1VSUkVOVDooYT09PXRoaXMubXVsdGlBbGVydFNlcnZpY2UuY291bnQ/MTphKzEpLnRvU3RyaW5nKCksQ09VTlQ6dGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jb3VudC50b1N0cmluZygpfSl9bmdPbkluaXQoKXt0aGlzLm11bHRpQWxlcnRTZXJ2aWNlQ2hhbmdlcz10aGlzLm11'@; put 'bHRpQWxlcnRTZXJ2aWNlLmNoYW5nZXMuc3Vic2NyaWJlKGE9Pnt0aGlzLmN1cnJlbnRBbGVydEluZGV4Q2hhbmdlLmVtaXQoYSksdGhpcy5jdXJyZW50QWxlcnRDaGFuZ2UuZW1pdCh0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmFjdGl2ZUFsZXJ0c1thXSl9KX1uZ09uRGVzdHJveSgpe3RoaXMu'@; put 'bXVsdGlBbGVydFNlcnZpY2VDaGFuZ2VzLnVuc3Vic2NyaWJlKCl9cGFnZVVwKCl7dGhpcy5tdWx0aUFsZXJ0U2VydmljZS5uZXh0KCl9cGFnZURvd24oKXt0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLnByZXZpb3VzKCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3'@; put 'KGF8fGMpKCRlKG1PKSwkZSh0bykpfSxjLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJjbHItYWxlcnRzLXBhZ2VyIl1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZUcigiYWxlcnRzLXBhZ2VyIiwhMCl9LGlucHV0czp7Y3VycmVudEFsZXJ0'@; put 'OltWbi5Ob25lLCJjbHJDdXJyZW50QWxlcnQiLCJjdXJyZW50QWxlcnQiXSxjdXJyZW50QWxlcnRJbmRleDpbVm4uTm9uZSwiY2xyQ3VycmVudEFsZXJ0SW5kZXgiLCJjdXJyZW50QWxlcnRJbmRleCJdfSxvdXRwdXRzOntjdXJyZW50QWxlcnRDaGFuZ2U6ImNsckN1cnJlbnRBbGVydENoYW5n'@; put 'ZSIsY3VycmVudEFsZXJ0SW5kZXhDaGFuZ2U6ImNsckN1cnJlbnRBbGVydEluZGV4Q2hhbmdlIn0sZGVjbHM6OSx2YXJzOjYsY29uc3RzOltbMSwiYWxlcnRzLXBhZ2VyLWNvbnRyb2wiXSxbMSwiYWxlcnRzLXBhZ2UtZG93biJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYWxlcnRzLXBhZ2VyLWJ1'@; put 'dHRvbiIsMywiY2xpY2siXSxbInNoYXBlIiwiYW5nbGUiLCJkaXJlY3Rpb24iLCJsZWZ0Il0sWzEsImFsZXJ0cy1wYWdlci10ZXh0Il0sWzEsImFsZXJ0cy1wYWdlLXVwIl0sWyJzaGFwZSIsImFuZ2xlIiwiZGlyZWN0aW9uIiwicmlnaHQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEm'@; put 'JihkZSgwLCJkaXYiLDApKDEsImRpdiIsMSkoMiwiYnV0dG9uIiwyKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQucGFnZURvd24oKX0pLFd0KDMsImNkcy1pY29uIiwzKSxoZSgpKCksZGUoNCwiZGl2Iiw0KSxPZSg1KSxoZSgpLGRlKDYsImRpdiIsNSkoNywiYnV0dG9uIiwyKSxG'@; put 'dCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGQucGFnZVVwKCl9KSxXdCg4LCJjZHMtaWNvbiIsNiksaGUoKSgpKCkpLDImYSYmKGZlKDIpLGhyKCJhcmlhLWxhYmVsIixkLnByZXZpb3VzQWxlcnRBcmlhTGFiZWwpLGZlKCksaHIoInRpdGxlIixkLmNvbW1vblN0cmluZ3Mua2V5cy5wcmV2'@; put 'aW91cyksZmUoMiksQnUoIiIsZC5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50KzEsIiAvICIsZC5tdWx0aUFsZXJ0U2VydmljZS5jb3VudCwiIiksZmUoMiksaHIoImFyaWEtbGFiZWwiLGQubmV4dEFsZXJ0QXJpYUxhYmVsKSxmZSgpLGhyKCJ0aXRsZSIsZC5jb21tb25TdHJpbmdzLmtleXMu'@; put 'bmV4dCkpfSxkZXBlbmRlbmNpZXM6W2VvXSxlbmNhcHN1bGF0aW9uOjJ9KSxjfSkoKSxpaGU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLm11bHRpQWxlcnRTZXJ2aWNlPWEsdGhpcy5jdXJyZW50QWxlcnRDaGFuZ2U9bmV3IEtyKCExKSx0aGlzLmN1cnJlbnRBbGVydEluZGV4'@; put 'Q2hhbmdlPW5ldyBLcighMSksdGhpcy5zdWJzY3JpcHRpb25zPVtdfXNldCBhbGxBbGVydHMoYSl7dGhpcy5tdWx0aUFsZXJ0U2VydmljZS5tYW5hZ2UoYSl9c2V0IF9pbnB1dEN1cnJlbnRJbmRleChhKXtOdW1iZXIuaXNJbnRlZ2VyKGEpJiZhPj0wJiYodGhpcy5tdWx0aUFsZXJ0U2Vydmlj'@; put 'ZS5jdXJyZW50PWEpfWdldCBjdXJyZW50QWxlcnRJbmRleCgpe3JldHVybiB0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmN1cnJlbnR9c2V0IGN1cnJlbnRBbGVydEluZGV4KGEpe3RoaXMubXVsdGlBbGVydFNlcnZpY2UuY3VycmVudD1hfWdldCBjdXJyZW50QWxlcnQoKXtyZXR1cm4gdGhpcy5t'@; put 'dWx0aUFsZXJ0U2VydmljZS5jdXJyZW50QWxlcnR9c2V0IGN1cnJlbnRBbGVydChhKXthJiYodGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50QWxlcnQ9YSl9Z2V0IGFsZXJ0cygpe3JldHVybiB0aGlzLmFsbEFsZXJ0cy5maWx0ZXIoYT0+ITE9PT1hLmhpZGRlbil9Z2V0IGN1cnJlbnRB'@; put 'bGVydFR5cGUoKXtyZXR1cm4gdGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50QWxlcnQ/dGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50QWxlcnQuYWxlcnRUeXBlOiIifW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubXVsdGlBbGVydFNl'@; put 'cnZpY2UuY2hhbmdlcy5zdWJzY3JpYmUoYT0+e3RoaXMuY3VycmVudEFsZXJ0SW5kZXhDaGFuZ2UubmV4dChhKSx0aGlzLmN1cnJlbnRBbGVydENoYW5nZS5uZXh0KHRoaXMubXVsdGlBbGVydFNlcnZpY2UuY3VycmVudEFsZXJ0KX0pKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9u'@; put 'cy5mb3JFYWNoKGE9PmEudW5zdWJzY3JpYmUoKSksdGhpcy5tdWx0aUFsZXJ0U2VydmljZS5kZXN0cm95KCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKCRlKG1PKSl9LGMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImNsci1hbGVy'@; put 'dHMiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oYSxkLGgpe2lmKDEmYSYmYXMoaCxyRSw0KSwyJmEpe2xldCBmO3lpKGY9YmkoKSkmJihkLmFsbEFsZXJ0cz1mKX19LGhvc3RWYXJzOjEyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihhLGQpezImYSYmVHIoImFsZXJ0cyIsITApKCJhbGVydC1k'@; put 'YW5nZXIiLCJkYW5nZXIiPT1kLmN1cnJlbnRBbGVydFR5cGUpKCJhbGVydC1pbmZvIiwiaW5mbyI9PWQuY3VycmVudEFsZXJ0VHlwZSkoImFsZXJ0LXN1Y2Nlc3MiLCJzdWNjZXNzIj09ZC5jdXJyZW50QWxlcnRUeXBlKSgiYWxlcnQtd2FybmluZyIsIndhcm5pbmciPT1kLmN1cnJlbnRBbGVy'@; put 'dFR5cGUpKCJhbGVydC1uZXV0cmFsIiwibmV1dHJhbCI9PWQuY3VycmVudEFsZXJ0VHlwZSl9LGlucHV0czp7X2lucHV0Q3VycmVudEluZGV4OltWbi5Ob25lLCJjbHJDdXJyZW50QWxlcnRJbmRleCIsIl9pbnB1dEN1cnJlbnRJbmRleCJdLGN1cnJlbnRBbGVydDpbVm4uTm9uZSwiY2xyQ3Vy'@; put 'cmVudEFsZXJ0IiwiY3VycmVudEFsZXJ0Il19LG91dHB1dHM6e2N1cnJlbnRBbGVydENoYW5nZToiY2xyQ3VycmVudEFsZXJ0Q2hhbmdlIixjdXJyZW50QWxlcnRJbmRleENoYW5nZToiY2xyQ3VycmVudEFsZXJ0SW5kZXhDaGFuZ2UifSxmZWF0dXJlczpbdWEoW21PXSldLG5nQ29udGVudFNl'@; put 'bGVjdG9yczp2emUsZGVjbHM6Myx2YXJzOjEsY29uc3RzOltbMSwiYWxlcnRzLXdyYXBwZXIiXSxbMywiY2xyQ3VycmVudEFsZXJ0SW5kZXgiLDQsIm5nSWYiXSxbMywiY2xyQ3VycmVudEFsZXJ0SW5kZXgiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXsxJmEmJihzYShtemUpLGRlKDAsImRp'@; put 'diIsMCksZ3QoMSx5emUsMSwxLCJjbHItYWxlcnRzLXBhZ2VyIiwxKSxXcigyKSxoZSgpKSwyJmEmJihmZSgpLE1lKCJuZ0lmIixkLm11bHRpQWxlcnRTZXJ2aWNlLmNvdW50PjEpKX0sZGVwZW5kZW5jaWVzOltiYSxyaGVdLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV17ZGlzcGxheTpibG9j'@; put 'a30iXX0pLGN9KSgpLGFoZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7RW8uYWRkSWNvbnMoZFksb1BlLGxQZSxjUGUsaFksdVBlLEN4KX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9KSxjLlx1MDI3'@; put 'NWluaj1Bcih7aW1wb3J0czpbTGEsVG8selksSGJdfSksY30pKCksa1dlPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9QXIoe2ltcG9ydHM6W2FoZV19KSxj'@; put 'fSkoKSxzaGU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLl9kb2N1bWVudD1hfXN0b3BTY3JvbGxpbmcoKXt0aGlzLl9kb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoIm5vLXNjcm9sbGluZyIpfXJlc3VtZVNjcm9sbGluZygpe3RoaXMuX2RvY3VtZW50LmJvZHkuY2xhc3NM'@; put 'aXN0LmNvbnRhaW5zKCJuby1zY3JvbGxpbmciKSYmdGhpcy5fZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCJuby1zY3JvbGxpbmciKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoQ3IobW8pKX0sYy5cdTAyNzVwcm92PXJuKHt0b2tlbjpj'@; put 'LGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KSxjfSkoKSxvaGU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuZmFkZU1vdmU9ImZhZGVEb3duIix0aGlzLmJhY2tkcm9wPSEwfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVwcm92'@; put 'PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxjfSkoKSxydT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYpe3RoaXMuX3Njcm9sbGluZ1NlcnZpY2U9YSx0aGlzLmNvbW1vblN0cmluZ3M9ZCx0aGlzLm1vZGFsU3RhY2tTZXJ2aWNl'@; put 'PWgsdGhpcy5jb25maWd1cmF0aW9uPWYsdGhpcy5tb2RhbElkPV91KCksdGhpcy5fb3Blbj0hMSx0aGlzLl9vcGVuQ2hhbmdlZD1uZXcgS3IoITEpLHRoaXMuY2xvc2FibGU9ITAsdGhpcy5jbG9zZUJ1dHRvbkFyaWFMYWJlbD10aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5jbG9zZSx0aGlzLnNp'@; put 'emU9Im1kIix0aGlzLnN0YXRpY0JhY2tkcm9wPSEwLHRoaXMuc2tpcEFuaW1hdGlvbj0hMSx0aGlzLnN0b3BDbG9zZT0hMSx0aGlzLmFsdENsb3NlPW5ldyBLcighMSksdGhpcy5ieXBhc3NTY3JvbGxTZXJ2aWNlPSExfWdldCBmYWRlTW92ZSgpe3JldHVybiB0aGlzLnNraXBBbmltYXRpb24/'@; put 'IiI6dGhpcy5jb25maWd1cmF0aW9uLmZhZGVNb3ZlfXNldCBmYWRlTW92ZShhKXt0aGlzLmNvbmZpZ3VyYXRpb24uZmFkZU1vdmU9YX1nZXQgYmFja2Ryb3AoKXtyZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uLmJhY2tkcm9wfW5nT25DaGFuZ2VzKGEpeyF0aGlzLmJ5cGFzc1Njcm9sbFNlcnZp'@; put 'Y2UmJmEmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLCJfb3BlbiIpJiYoYS5fb3Blbi5jdXJyZW50VmFsdWU/KHRoaXMuX3Njcm9sbGluZ1NlcnZpY2Uuc3RvcFNjcm9sbGluZygpLHRoaXMubW9kYWxTdGFja1NlcnZpY2UudHJhY2tNb2RhbE9wZW4odGhpcykpOnRo'@; put 'aXMuX3Njcm9sbGluZ1NlcnZpY2UucmVzdW1lU2Nyb2xsaW5nKCkpfW5nT25EZXN0cm95KCl7dGhpcy5fc2Nyb2xsaW5nU2VydmljZS5yZXN1bWVTY3JvbGxpbmcoKX1vcGVuKCl7dGhpcy5fb3Blbnx8KHRoaXMuX29wZW49ITAsdGhpcy5fb3BlbkNoYW5nZWQuZW1pdCghMCksdGhpcy5tb2Rh'@; put 'bFN0YWNrU2VydmljZS50cmFja01vZGFsT3Blbih0aGlzKSl9YmFja2Ryb3BDbGljaygpe3RoaXMuc3RhdGljQmFja2Ryb3A/dGhpcy50aXRsZS5uYXRpdmVFbGVtZW50LmZvY3VzKCk6dGhpcy5jbG9zZSgpfWNsb3NlKCl7dGhpcy5zdG9wQ2xvc2U/dGhpcy5hbHRDbG9zZS5lbWl0KCExKToh'@; put 'dGhpcy5jbG9zYWJsZXx8IXRoaXMuX29wZW58fCh0aGlzLl9vcGVuPSExKX1mYWRlRG9uZShhKXsidm9pZCI9PT1hLnRvU3RhdGUmJih0aGlzLl9vcGVuQ2hhbmdlZC5lbWl0KCExKSx0aGlzLm1vZGFsU3RhY2tTZXJ2aWNlLnRyYWNrTW9kYWxDbG9zZSh0aGlzKSl9c2Nyb2xsVG9wKCl7dGhp'@; put 'cy5ib2R5RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbFRvKDAsMCl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpKCRlKHNoZSksJGUodG8pLCRlKE5kZSksJGUob2hlKSl9LGMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImNs'@; put 'ci1tb2RhbCJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihhLGQsaCl7aWYoMSZhJiZhcyhoLGJ6ZSw1KSwyJmEpe2xldCBmO3lpKGY9YmkoKSkmJihkLm1vZGFsQ29udGVudFRlbXBsYXRlPWYuZmlyc3QpfX0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGEsZCl7aWYoMSZhJiYoRmEoUjFlLDUpLEZh'@; put 'KEwxZSw1KSksMiZhKXtsZXQgaDt5aShoPWJpKCkpJiYoZC50aXRsZT1oLmZpcnN0KSx5aShoPWJpKCkpJiYoZC5ib2R5RWxlbWVudFJlZj1oLmZpcnN0KX19LGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGEsZCl7MiZhJiZUcigib3BlbiIsZC5fb3Blbil9LGlucHV0czp7X29w'@; put 'ZW46W1ZuLk5vbmUsImNsck1vZGFsT3BlbiIsIl9vcGVuIl0sY2xvc2FibGU6W1ZuLk5vbmUsImNsck1vZGFsQ2xvc2FibGUiLCJjbG9zYWJsZSJdLGNsb3NlQnV0dG9uQXJpYUxhYmVsOltWbi5Ob25lLCJjbHJNb2RhbENsb3NlQnV0dG9uQXJpYUxhYmVsIiwiY2xvc2VCdXR0b25BcmlhTGFi'@; put 'ZWwiXSxzaXplOltWbi5Ob25lLCJjbHJNb2RhbFNpemUiLCJzaXplIl0sc3RhdGljQmFja2Ryb3A6W1ZuLk5vbmUsImNsck1vZGFsU3RhdGljQmFja2Ryb3AiLCJzdGF0aWNCYWNrZHJvcCJdLHNraXBBbmltYXRpb246W1ZuLk5vbmUsImNsck1vZGFsU2tpcEFuaW1hdGlvbiIsInNraXBBbmlt'@; put 'YXRpb24iXSxzdG9wQ2xvc2U6W1ZuLk5vbmUsImNsck1vZGFsUHJldmVudENsb3NlIiwic3RvcENsb3NlIl0sbGFiZWxsZWRCeTpbVm4uTm9uZSwiY2xyTW9kYWxMYWJlbGxlZEJ5SWQiLCJsYWJlbGxlZEJ5Il0sYnlwYXNzU2Nyb2xsU2VydmljZTpbVm4uTm9uZSwiY2xyTW9kYWxPdmVycmlk'@; put 'ZVNjcm9sbFNlcnZpY2UiLCJieXBhc3NTY3JvbGxTZXJ2aWNlIl19LG91dHB1dHM6e19vcGVuQ2hhbmdlZDoiY2xyTW9kYWxPcGVuQ2hhbmdlIixhbHRDbG9zZToiY2xyTW9kYWxBbHRlcm5hdGVDbG9zZSJ9LGZlYXR1cmVzOlt1YShbXSxbc2hlXSksYmxdLG5nQ29udGVudFNlbGVjdG9yczp3'@; put 'emUsZGVjbHM6Mix2YXJzOjIsY29uc3RzOltbInRpdGxlIiwiIl0sWyJib2R5IiwiIl0sWyJjbGFzcyIsIm1vZGFsIiwzLCJtb2RhbC1mdWxsLXNjcmVlbiIsNCwibmdJZiJdLFsiY2xhc3MiLCJtb2RhbC1iYWNrZHJvcCIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMywiY2xpY2siLDQsIm5nSWYi'@; put 'XSxbMSwibW9kYWwiXSxbImNka1RyYXBGb2N1cyIsIiIsInJvbGUiLCJkaWFsb2ciLCJhcmlhLW1vZGFsIiwidHJ1ZSIsMSwibW9kYWwtZGlhbG9nIiwzLCJjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZSJdLFsxLCJjbHItc3Itb25seSJdLFsiY2xhc3MiLCJtb2RhbC1jb250ZW50LXdyYXBwZXIi'@; put 'LDQsIm5nSWYiLCJuZ0lmRWxzZSJdLFsxLCJtb2RhbC1jb250ZW50LXdyYXBwZXIiXSxbMSwibW9kYWwtY29udGVudCJdLFsxLCJtb2RhbC1oZWFkZXItLWFjY2Vzc2libGUiXSxbImNka0ZvY3VzSW5pdGlhbCIsIiIsInRhYmluZGV4IiwiLTEiLDEsIm1vZGFsLXRpdGxlLXdyYXBwZXIiLDMs'@; put 'ImlkIl0sWyJ0eXBlIiwiYnV0dG9uIiwiY2xhc3MiLCJjbG9zZSIsMywiY2xpY2siLDQsIm5nSWYiXSxbMSwibW9kYWwtYm9keS13cmFwcGVyIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJjbG9zZSIsMywiY2xpY2siXSxbInNoYXBlIiwid2luZG93LWNsb3NlIl0sWyJhcmlhLWhpZGRlbiIsInRy'@; put 'dWUiLDEsIm1vZGFsLWJhY2tkcm9wIiwzLCJjbGljayJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihhLGQpezEmYSYmKHNhKF96ZSksZ3QoMCxNemUsNywxNiwiZGl2IiwyKSgxLHh6ZSwxLDEsImRpdiIsMykpLDImYSYmKE1lKCJuZ0lmIixkLl9vcGVuKSxmZSgpLE1lKCJuZ0lmIixkLmJhY2tkcm9w'@; put 'KSl9LGRlcGVuZGVuY2llczpbYmEsQmIsZW9dLGVuY2Fwc3VsYXRpb246MixkYXRhOnthbmltYXRpb246W3doKCJmYWRlTW92ZSIsW3R1KCIqID0+IGZhZGVEb3duIixbbG8oe29wYWNpdHk6MCx0cmFuc2Zvcm06InRyYW5zbGF0ZSgwLCAtMjUlKSJ9KSx3MCgiMC4ycyBlYXNlLWluLW91dCIp'@; put 'XSksdHUoImZhZGVEb3duID0+ICoiLFt3MCgiMC4ycyBlYXNlLWluLW91dCIsbG8oe29wYWNpdHk6MCx0cmFuc2Zvcm06InRyYW5zbGF0ZSgwLCAtMjUlKSJ9KSldKSx0dSgiKiA9PiBmYWRlTGVmdCIsW2xvKHtvcGFjaXR5OjAsdHJhbnNmb3JtOiJ0cmFuc2xhdGUoMjUlLCAwKSJ9KSx3MCgi'@; put 'MC4ycyBlYXNlLWluLW91dCIpXSksdHUoImZhZGVMZWZ0ID0+ICoiLFt3MCgiMC4ycyBlYXNlLWluLW91dCIsbG8oe29wYWNpdHk6MCx0cmFuc2Zvcm06InRyYW5zbGF0ZSgyNSUsIDApIn0pKV0pXSksd2goImZhZGUiLFt0dSgidm9pZCA9PiAqIixbbG8oe29wYWNpdHk6MH0pLHcwKCIwLjJz'@; put 'IGVhc2UtaW4tb3V0Iixsbyh7b3BhY2l0eTouODV9KSldKSx0dSgiKiA9PiB2b2lkIixbdzAoIjAuMnMgZWFzZS1pbi1vdXQiLGxvKHtvcGFjaXR5OjB9KSldKV0pXX19KSxjfSkoKSxZdT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoKXt0aGlzLnJlbmRlcmVyPWEsdGhpcy5ob3N0'@; put 'PWQsdGhpcy50YWJpbmRleD0iMCIsdGhpcy51bmxpc3RlbmVycz1bXSxoLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57dGhpcy5vYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIoKCk9PnRoaXMuYWRkT3JSZW1vdmVUYWJJbmRleCgpKSx0aGlzLm9ic2VydmVyLm9ic2VydmUoZC5uYXRpdmVFbGVt'@; put 'ZW50KSx0aGlzLnVubGlzdGVuZXJzLnB1c2goYS5saXN0ZW4oZC5uYXRpdmVFbGVtZW50LCJtb3VzZXVwIiwoKT0+e3RoaXMuYWRkT3JSZW1vdmVUYWJJbmRleCgpfSksYS5saXN0ZW4oZC5uYXRpdmVFbGVtZW50LCJtb3VzZWRvd24iLCgpPT57dGhpcy5yZW1vdmVUYWJJbmRleCgpfSkpfSl9'@; put 'bmdPbkRlc3Ryb3koKXtmb3IoO3RoaXMudW5saXN0ZW5lcnMubGVuZ3RoOyl0aGlzLnVubGlzdGVuZXJzLnBvcCgpKCk7dGhpcy5vYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy5vYnNlcnZlcj1udWxsfWFkZFRhYkluZGV4KCl7dGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5ob3N0'@; put 'Lm5hdGl2ZUVsZW1lbnQsInRhYmluZGV4Iix0aGlzLnRhYmluZGV4KX1yZW1vdmVUYWJJbmRleCgpe3RoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50LCJ0YWJpbmRleCIpfWFkZE9yUmVtb3ZlVGFiSW5kZXgoKXtjb25zdCBhPXRoaXMuaG9zdC5u'@; put 'YXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ7YSYmYS5jbGllbnRIZWlnaHQ8YS5zY3JvbGxIZWlnaHQ/dGhpcy5hZGRUYWJJbmRleCgpOnRoaXMucmVtb3ZlVGFiSW5kZXgoKX19cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8YykoJGUoRXMpLCRlKFFpKSwk'@; put 'ZShHYSkpfSxjLlx1MDI3NWRpcj1Fcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLDgsIm1vZGFsLWJvZHkiXV19KSxjfSkoKSx2Tz0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7RW8uYWRkSWNvbnMoQ3gpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxj'@; put 'KX0sYy5cdTAyNzVtb2Q9QWkoe3R5cGU6Y30pLGMuXHUwMjc1aW5qPUFyKHtpbXBvcnRzOltMYSxRTCxUbyxUb119KSxjfSkoKSxEV2U9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9'@; put 'KSxjLlx1MDI3NWluaj1Bcih7aW1wb3J0czpbTGEsUUwsVG8sdk8sdk8sVG9dfSksY30pKCksSVdlPSgoKT0+e2NsYXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9QXIoe2lt'@; put 'cG9ydHM6W0xhXX0pLGN9KSgpLExXZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7RW8uYWRkSWNvbnMoZFBlLGhQZSxkWSxoWSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9'@; put 'QXIoe2ltcG9ydHM6W0xhLFRvLEhiLFRvLEhiXX0pLGN9KSgpLE5XZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7RW8uYWRkSWNvbnMoZFksaFkpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVtb2Q9QWkoe3R5cGU6Y30pLGMu'@; put 'XHUwMjc1aW5qPUFyKHtpbXBvcnRzOltMYSx2TyxhaGVdfSksY30pKCksQjA9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1Bcih7aW1wb3J0czpba1dlLFRX'@; put 'ZSxUbyx2TyxWWSxGMixaTCxTVWUsUmRlLGJaZSx6VWUsTldlLERXZSx1VWUsSGIsSVdlLFp4LExXZV19KSxjfSkoKSxWV2U9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQpe3RoaXMuc2FzU2VydmljZT1hLHRoaXMubG9nZ2VyU2VydmljZT1kLHRoaXMuX3N1YnNjcmlwdGlvbj1uZXcg'@; put 'SnQsdGhpcy5sb2FkaW5nPSExLHRoaXMuYWxlcnRDbG9zZWQ9ITAsdGhpcy5kYXRhPXt1c2VyOm51bGwscGFzczpudWxsfX1uZ09uSW5pdCgpeyJSZWRpcmVjdGVkIiE9PXRoaXMuc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpLmxvZ2luTWVjaGFuaXNtJiYodGhpcy5fc3Vic2NyaXB0aW9u'@; put 'PXRoaXMuc2FzU2VydmljZS5zaG91bGRMb2dpbi5zdWJzY3JpYmUoZD0+e3RoaXMuaXNBY3RpdmU9ZDtsZXQgaD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJib2R5Iik7aCYmKGQ/aC5jbGFzc0xpc3QuYWRkKCJzaG91bGQtbG9naW4iKTpoLmNsYXNzTGlzdC5yZW1vdmUoInNob3VsZC1sb2dp'@; put 'biIpKX0pKX1uZ09uRGVzdHJveSgpe3RoaXMuX3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfXN1Ym1pdCgpe3RoaXMubG9hZGluZ3x8KHRoaXMubG9hZGluZz0hMCx0aGlzLmRhdGEudXNlciYmdGhpcy5kYXRhLnBhc3MmJnRoaXMuc2FzU2VydmljZS5sb2dpbih0aGlzLmRhdGEudXNlcix0'@; put 'aGlzLmRhdGEucGFzcykudGhlbihhPT57dGhpcy5sb2FkaW5nPSExLGF8fCh0aGlzLmVycm9yTXNnPSJVc2VybmFtZSBvciBwYXNzd29yZCBpbnZhbGlkIix0aGlzLmFsZXJ0Q2xvc2VkPSExKX0sYT0+e3RoaXMubG9nZ2VyU2VydmljZS5sb2coYSksdGhpcy5sb2FkaW5nPSExLHRoaXMuZXJy'@; put 'b3JNc2c9YSx0aGlzLmFsZXJ0Q2xvc2VkPSExfSkpfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpKCRlKFZvKSwkZShTZCkpfX1zdGF0aWN7dGhpcy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1siYXBwLWxvZ2luIl1dLGRlY2xzOjIw'@; put 'LHZhcnM6OSxjb25zdHM6W1sxLCJsb2dpbi1zaWRlYmFyLXdyYXBwZXIiXSxbMSwibG9naW4tc2lkZWJhciIsInNpZGVCYXJQcm9wcyJdLFsic3JjIiwiL1NBU0pvYkV4ZWN1dGlvbj9fRklMRT0vUHVibGljL2FwcC9kY3BsYWNlaG9sZGVyL3NlcnZpY2VzL3dlYi9pbWFnZXMvZGF0YWNvbnRy'@; put 'b2xsZXIuc3ZnIiwiYWx0IiwiZGF0YWNvbnRyb2xsZXIgbG9nbyIsMSwibG9naW4tbG9nbyJdLFsxLCJsb2dpbiIsMywibmdTdWJtaXQiXSxbMSwidGl0bGUiXSxbMSwid2VsY29tZSJdLFsxLCJoaW50Il0sWzEsImxvZ2luLWdyb3VwIl0sWyJjbHJJbnB1dCIsIiIsIm5hbWUiLCJ1c2VyIiwi'@; put 'dHlwZSIsInRleHQiLCJwbGFjZWhvbGRlciIsIlVzZXJuYW1lIiwxLCJ1c2VybmFtZSIsMywibmdNb2RlbENoYW5nZSIsIm5nTW9kZWwiXSxbImNscklucHV0IiwiIiwibmFtZSIsInBhc3MiLCJ0eXBlIiwicGFzc3dvcmQiLCJwbGFjZWhvbGRlciIsIlBhc3N3b3JkIiwxLCJwYXNzd29yZCIs'@; put 'MywibmdNb2RlbENoYW5nZSIsIm5nTW9kZWwiXSxbMywiY2xyQWxlcnRDbG9zZWRDaGFuZ2UiLCJjbHJBbGVydFR5cGUiLCJjbHJBbGVydENsb3NlZCJdLFsiY2xyLWFsZXJ0LWl0ZW0iLCIiLDEsImFsZXJ0LWl0ZW0iXSxbMSwiYWxlcnQtdGV4dCJdLFsidHlwZSIsInN1Ym1pdCIsMSwiYnRu'@; put 'IiwiYnRuLXNtIiwiYnRuLXN1Y2Nlc3MiLDMsImNsckxvYWRpbmciLCJkaXNhYmxlZCJdLFsxLCJvdmVybGF5Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGQsaCl7MSZkJiYoZGUoMCwiZGl2IiwwKSgxLCJkaXYiLDEpLFd0KDIsImltZyIsMiksZGUoMywiZm9ybSIsMyksRnQoIm5nU3VibWl0Iixm'@; put 'dW5jdGlvbigpe3JldHVybiBoLnN1Ym1pdCgpfSksZGUoNCwibGFiZWwiLDQpKDUsImgzIiw1KSxPZSg2LCJXZWxjb21lIHRvIiksaGUoKSxPZSg3LCIgRGF0YSBDb250cm9sbGVyICIpLGRlKDgsImg0Iiw2KSxPZSg5LCJDYXB0dXJlLCBSZXZpZXcsIGFuZCBBcHByb3ZlIiksaGUoKSgpLGRl'@; put 'KDEwLCJkaXYiLDcpKDExLCJpbnB1dCIsOCkscGkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHYpe3JldHVybiBnaShoLmRhdGEudXNlcix2KXx8KGguZGF0YS51c2VyPXYpLHZ9KSxoZSgpLGRlKDEyLCJpbnB1dCIsOSkscGkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHYpe3JldHVybiBn'@; put 'aShoLmRhdGEucGFzcyx2KXx8KGguZGF0YS5wYXNzPXYpLHZ9KSxoZSgpLGRlKDEzLCJjbHItYWxlcnQiLDEwKSxwaSgiY2xyQWxlcnRDbG9zZWRDaGFuZ2UiLGZ1bmN0aW9uKHYpe3JldHVybiBnaShoLmFsZXJ0Q2xvc2VkLHYpfHwoaC5hbGVydENsb3NlZD12KSx2fSksZGUoMTQsImRpdiIs'@; put 'MTEpKDE1LCJzcGFuIiwxMiksT2UoMTYpLGhlKCkoKSgpLGRlKDE3LCJidXR0b24iLDEzKSxPZSgxOCwiIExvZyBpbiAiKSxoZSgpKCkoKSgpLFd0KDE5LCJkaXYiLDE0KSxoZSgpKSwyJmQmJihUcigiYWN0aXZlIixoLmlzQWN0aXZlKSxmZSgxMSksZmkoIm5nTW9kZWwiLGguZGF0YS51c2Vy'@; put 'KSxmZSgpLGZpKCJuZ01vZGVsIixoLmRhdGEucGFzcyksZmUoKSxNZSgiY2xyQWxlcnRUeXBlIiwiYWxlcnQtZGFuZ2VyIiksZmkoImNsckFsZXJ0Q2xvc2VkIixoLmFsZXJ0Q2xvc2VkKSxmZSgzKSxTcihoLmVycm9yTXNnKSxmZSgpLE1lKCJjbHJMb2FkaW5nIixoLmxvYWRpbmcpKCJkaXNh'@; put 'YmxlZCIsaC5sb2FkaW5nKSl9LGRlcGVuZGVuY2llczpbbDcsR2wsdGwsczcsV28sd3AsckUsaUUsVjAsSDIsY28sWTFdLGVuY2Fwc3VsYXRpb246Mn0pfX1yZXR1cm4gY30pKCk7ZnVuY3Rpb24gQldlKGMsbCl7MSZjJiYoZGUoMCwic3BhbiIsMTApLE9lKDEsImxvYWRpbmciKSxoZSgpKX1m'@; put 'dW5jdGlvbiBqV2UoYyxsKXsxJmMmJihkZSgwLCJzcGFuIiwxMSksT2UoMSwibG9hZGVkIiksaGUoKSl9ZnVuY3Rpb24geldlKGMsbCl7MSZjJiYoZGUoMCwic3BhbiIsMTIpLE9lKDEsImZhaWxlZCIpLGhlKCkpfWZ1bmN0aW9uIFVXZShjLGwpe2lmKDEmYyYmKGRlKDAsInAiKSgxLCJjb2Rl'@; put 'IiksT2UoMiksaGUoKSxPZSgzLCIgXHhhMCAiKSxndCg0LEJXZSwyLDAsInNwYW4iLDcpKDUsaldlLDIsMCwic3BhbiIsOCkoNix6V2UsMiwwLCJzcGFuIiw5KSxoZSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7ZmUoMiksU3IoYS5wcm9ncmFtKSxmZSgyKSxNZSgibmdJZiIsYS5ydW5u'@; put 'aW5nKSxmZSgpLE1lKCJuZ0lmIiwhYS5ydW5uaW5nJiZhLnN1Y2Nlc3NmdWwpLGZlKCksTWUoIm5nSWYiLCFhLnJ1bm5pbmcmJiFhLnN1Y2Nlc3NmdWwpfX1mdW5jdGlvbiBaV2UoYyxsKXtpZigxJmMmJihkZSgwLCJjbHItc2lnbnBvc3QtY29udGVudCIsNSksZ3QoMSxVV2UsNyw0LCJwIiw2'@; put 'KSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoKTtNZSgiY2xyUG9zaXRpb24iLCJib3R0b20tbWlkZGxlIiksZmUoKSxNZSgibmdGb3JPZiIsYS5yZXF1ZXN0cyl9fWxldCBXV2U9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMubG9hZGluZz0hMSx0aGlzLnJlcXVlc3RzPVtdLHRoaXMu'@; put 'X2xvYWRpbmdTdWI9bmV3IEp0fW5nT25Jbml0KCl7fW5nT25EZXN0cm95KCl7dGhpcy5fbG9hZGluZ1N1Yi51bnN1YnNjcmliZSgpfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpfX1zdGF0aWN7dGhpcy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxl'@; put 'Y3RvcnM6W1siYXBwLWxvYWRpbmctaW5kaWNhdG9yIl1dLGRlY2xzOjYsdmFyczo2LGNvbnN0czpbWzEsImxvYWRpbmctaW5kaWNhdG9yIl0sWyJjbHJTaWducG9zdFRyaWdnZXIiLCIiLDEsInNwaW5uZXIiLCJzcGlubmVyLXNtIiwic3Bpbm5lci1pbnZlcnNlIl0sWyJjbHJTaWducG9zdFRy'@; put 'aWdnZXIiLCIiLCJzaGFwZSIsImNoZWNrIiwic2l6ZSIsIjIwIiwxLCJpcy1pbmZvIl0sWyJjbHJTaWducG9zdFRyaWdnZXIiLCIiLCJzaGFwZSIsImVycm9yIiwic2l6ZSIsIjI0IiwxLCJpcy1lcnJvciJdLFszLCJjbHJQb3NpdGlvbiIsNCwiY2xySWZPcGVuIl0sWzMsImNsclBvc2l0aW9u'@; put 'Il0sWzQsIm5nRm9yIiwibmdGb3JPZiJdLFsiY2xhc3MiLCJydW5uaW5nIiw0LCJuZ0lmIl0sWyJjbGFzcyIsInN1Y2Nlc3MiLDQsIm5nSWYiXSxbImNsYXNzIiwiZmFpbCIsNCwibmdJZiJdLFsxLCJydW5uaW5nIl0sWzEsInN1Y2Nlc3MiXSxbMSwiZmFpbCJdXSx0ZW1wbGF0ZTpmdW5jdGlv'@; put 'bihkLGgpezEmZCYmKGRlKDAsImRpdiIsMCkoMSwiY2xyLXNpZ25wb3N0IiksV3QoMiwic3BhbiIsMSkoMywiY2xyLWljb24iLDIpKDQsImNsci1pY29uIiwzKSxndCg1LFpXZSwyLDIsImNsci1zaWducG9zdC1jb250ZW50Iiw0KSxoZSgpKCkpLDImZCYmKGZlKDIpLE4xKCJkaXNwbGF5Iixo'@; put 'LmxvYWRpbmc/ImlubGluZS1ibG9jayI6Im5vbmUiKSxmZSgpLE4xKCJkaXNwbGF5IiwhaC5sb2FkaW5nJiZoLnJlcXVlc3RzLmxlbmd0aD4wJiZoLnJlcXVlc3RzWzBdLnN1Y2Nlc3NmdWw/ImlubGluZS1ibG9jayI6Im5vbmUiKSxmZSgpLE4xKCJkaXNwbGF5IiwhaC5sb2FkaW5nJiZoLnJl'@; put 'cXVlc3RzLmxlbmd0aD4wJiYhaC5yZXF1ZXN0c1swXS5zdWNjZXNzZnVsPyJpbmxpbmUtYmxvY2siOiJub25lIikpfSxkZXBlbmRlbmNpZXM6W1FzLGJhLE9sLFAyLEtMLHNkZSwkTF0sZW5jYXBzdWxhdGlvbjoyfSl9fXJldHVybiBjfSkoKTtmdW5jdGlvbiBZV2UoYyxsKXtpZigxJmMpe2Nv'@; put 'bnN0IGE9T24oKTtkZSgwLCJjZHMtaWNvbiIsMTIpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoKS50b2dnbGVEYXJrTW9kZSghMCkpfSksaGUoKX19ZnVuY3Rpb24gR1dlKGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiY2RzLWljb24iLDEzKSxGdCgi'@; put 'Y2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKCkudG9nZ2xlRGFya01vZGUoITEpKX0pLGhlKCl9fWZ1bmN0aW9uICRXZShjLGwpe2lmKDEmYyYmKGRlKDAsInNwYW4iKSxXdCgxLCJpbWciLDE0KSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoKTtmZSgpLHlNKCJzcmMiLGEuZ2V0'@; put 'UGljdHVyZVVybCgpLEtDKX19ZnVuY3Rpb24gS1dlKGMsbCl7aWYoMSZjJiYoZGUoMCwic3BhbiIsMTUpLE9lKDEpLGhlKCkpLDImYyl7Y29uc3QgYT1MZSgpO1RyKCJoaWRkZW4iLDA9PT1hLmZhaWxlZFJlcXMubGVuZ3RoKSxmZSgpLFNyKGEuZmFpbGVkUmVxcy5sZW5ndGgpfX1mdW5jdGlv'@; put 'biBYV2UoYyxsKXtpZigxJmMmJihkZSgwLCJzcGFuIiwxNiksT2UoMSksaGUoKSksMiZjKXtjb25zdCBhPUxlKCk7VHIoImhpZGRlbiIsMD09PWEuZGVidWdMb2dzLmxlbmd0aCksZmUoKSxTcihhLmRlYnVnTG9ncy5sZW5ndGgpfX1mdW5jdGlvbiBxV2UoYyxsKXsxJmMmJld0KDAsImNsci1p'@; put 'Y29uIiwxNyl9ZnVuY3Rpb24gSldlKGMsbCl7MSZjJiYoYWkoMCksZGUoMSwiYSIsMjgpKDIsInNwYW4iLDI5KSxPZSgzLCJEb2N1bWVudGF0aW9uIiksaGUoKSgpLHNpKCkpfWZ1bmN0aW9uIFFXZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImNsci1kcm9wZG93bi1tZW51Iiwx'@; put 'OCkoMSwiZGl2IiwxOSwwKSgzLCJjbHItdG9nZ2xlLWNvbnRhaW5lciIsMjApLEZ0KCJjbGljayIsZnVuY3Rpb24oaCl7d3QoYSk7Y29uc3QgZj1kYSgyKTtyZXR1cm4gQ3QoTGUoKS5vbkRlYnVnUm93Q2xpY2soaCxmKSl9KSxkZSg0LCJjbHItdG9nZ2xlLXdyYXBwZXIiKSg1LCJpbnB1dCIs'@; put 'MjEpLHBpKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihoKXt3dChhKTtjb25zdCBmPUxlKCk7cmV0dXJuIGdpKGYuc2FzanNDb25maWcuZGVidWcsaCl8fChmLnNhc2pzQ29uZmlnLmRlYnVnPWgpLEN0KGgpfSksRnQoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0'@; put 'KExlKCkub25EZWJ1Z01vZGVDaGFuZ2UoKSl9KSxoZSgpLGRlKDYsImxhYmVsIiksT2UoNywiRGVidWcgTW9kZSIpLGhlKCkoKSgpKCksZGUoOCwiYSIsMjIpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoKS5vcGVuUmVxdWVzdHNNb2RhbCgpKX0pLGRlKDksInNw'@; put 'YW4iKSxPZSgxMCwiU0FTIFJlcXVlc3RzIiksaGUoKSgpLGd0KDExLEpXZSw0LDAsIm5nLWNvbnRhaW5lciIsNyksV3QoMTIsImRpdiIsMjMpLGRlKDEzLCJhIiwyNCkoMTQsInNwYW4iKSxPZSgxNSwiU3lzdGVtIiksaGUoKSgpLGRlKDE2LCJhIiwyNSksRnQoImNsaWNrIixmdW5jdGlvbiho'@; put 'KXtyZXR1cm4gd3QoYSksQ3QoTGUoKS5sb2dvdXQoaCkpfSksZGUoMTcsInNwYW4iKSxPZSgxOCwiTG9nIE91dCIpLGhlKCksV3QoMTksImNsci1pY29uIiwyNiksaGUoKSxkZSgyMCwiZGl2IiwyNykoMjEsInNwYW4iKSxPZSgyMiksaGUoKSgpKCl9aWYoMiZjKXtjb25zdCBhPUxlKCk7ZmUo'@; put 'NSksZmkoIm5nTW9kZWwiLGEuc2FzanNDb25maWcuZGVidWcpLGZlKDYpLE1lKCJuZ0lmIiwhYS5pc0RlcGxveVBhZ2UpLGZlKDExKSxMcigidiIsYS5jb21taXRWZXIsIiIpfX1sZXQgZVllPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZil7dGhpcy51c2VyU2VydmljZT1hLHRo'@; put 'aXMuc2FzU2VydmljZT1kLHRoaXMuZXZlbnRTZXJ2aWNlPWgsdGhpcy5yb3V0ZXI9Zix0aGlzLnVzZXJOYW1lPSJOb3QgbG9nZ2VkIGluIix0aGlzLnJlcVN1Yj1uZXcgSnQsdGhpcy51c2VyU3ViPW5ldyBKdCx0aGlzLmFwcExvZ3M9W10sdGhpcy5kZWJ1Z0xvZ3M9W10sdGhpcy5mYWlsZWRS'@; put 'ZXFzPVtdLHRoaXMuc2FzRXJyb3JzPVtdLHRoaXMuaXNWaXlhPSExLHRoaXMuc2FzanNDb25maWc9bmV3IHloLlNBU2pzQ29uZmlnLHRoaXMucmVxdWVzdHNDb3VudD0wLHRoaXMuY29tbWl0VmVyPSIiLHRoaXMuZGFya01vZGU9dGhpcy5ldmVudFNlcnZpY2UuZGFya01vZGV9bmdPbkluaXQo'@; put 'KXt0aGlzLnVzZXJTdWI9dGhpcy51c2VyU2VydmljZS51c2VyQ2hhbmdlLnN1YnNjcmliZShhPT57dGhpcy51c2VyTmFtZT1hLnVzZXJuYW1lfSksdGhpcy5zYXNqc0NvbmZpZz10aGlzLnNhc1NlcnZpY2UuZ2V0U2FzanNDb25maWcoKSwiU0FTVklZQSI9PT10aGlzLnNhc2pzQ29uZmlnLnNl'@; put 'cnZlclR5cGUmJih0aGlzLmlzVml5YT0hMCksdGhpcy5jb21taXRWZXI9InY3LjIuMSIucmVwbGFjZSgidiIsIiIpKyIuZ2VmMTAxNWYifW5nT25EZXN0cm95KCl7dGhpcy5yZXFTdWIudW5zdWJzY3JpYmUoKSx0aGlzLnVzZXJTdWIudW5zdWJzY3JpYmUoKX10b2dnbGVEYXJrTW9kZShhKXt0'@; put 'aGlzLmV2ZW50U2VydmljZS50b2dnbGVEYXJrTW9kZShhKX1vcGVuUmVxdWVzdHNNb2RhbCgpe3RoaXMuZXZlbnRTZXJ2aWNlLm9wZW5SZXF1ZXN0c01vZGFsKCl9b25EZWJ1Z01vZGVDaGFuZ2UoYSl7dGhpcy5zYXNqc0NvbmZpZyYmdGhpcy5zYXNTZXJ2aWNlLnNldERlYnVnU3RhdGUodGhp'@; put 'cy5zYXNqc0NvbmZpZy5kZWJ1Zyl9b25EZWJ1Z1Jvd0NsaWNrKGEsZCl7YS5zdG9wUHJvcGFnYXRpb24oKSxKbi51c2VyRHJvcGRvd25Db25maWcuY2xvc2VPbkRlYnVnQ2xpY2smJnNldFRpbWVvdXQoKCk9PntkLmNsaWNrKCl9LDMwMCl9bG9nb3V0KGEpe2EucHJldmVudERlZmF1bHQoKTt0'@; put 'cnl7dGhpcy5zYXNTZXJ2aWNlLmxvZ291dCgpfWNhdGNoKGQpe2NvbnNvbGUuZXJyb3IoZCl9fWdldFBpY3R1cmVVcmwoKXtyZXR1cm5gJHt0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybH0vaWRlbnRpdGllcy91c2Vycy8ke3RoaXMudXNlck5hbWV9L2F2YXRhci9jb250ZW50YH1nZXQgaXNE'@; put 'ZXBsb3lQYWdlKCl7cmV0dXJuIHRoaXMucm91dGVyLnVybC5pbmNsdWRlcygiZGVwbG95Iil9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUoTVcpLCRlKFZvKSwkZShtYyksJGUoTG8pKX19c3RhdGlje3RoaXMuXHUwMjc1Y21wPU5yKHt0eXBl'@; put 'OmMsc2VsZWN0b3JzOltbImFwcC1oZWFkZXItYWN0aW9ucyJdXSxkZWNsczoxNCx2YXJzOjcsY29uc3RzOltbImRyb3Bkb3duSXRlbURlYnVnIiwiIl0sWzEsImhlYWRlci1hY3Rpb25zIl0sWzEsImQtZmxleCIsImNsci1hbGlnbi1pdGVtcy1jZW50ZXIiXSxbInNpemUiLCJtZCIsImNsYXNz'@; put 'IiwidGhlbWUtdG9nZ2xlLWljb24gY3Vyc29yLXBvaW50ZXIiLCJzaGFwZSIsIm1vb24iLCJpbnZlcnNlIiwiZmFsc2UiLCJzb2xpZCIsImZhbHNlIiwzLCJjbGljayIsNCwibmdJZiJdLFsic2l6ZSIsIm1kIiwiY2xhc3MiLCJ0aGVtZS10b2dnbGUtaWNvbiBjdXJzb3ItcG9pbnRlciIsInNo'@; put 'YXBlIiwic3VuIiwiaW52ZXJzZSIsImZhbHNlIiwic29saWQiLCJmYWxzZSIsMywiY2xpY2siLDQsIm5nSWYiXSxbMSwiYXBwLW5hdi1kcm9wZG93biJdLFsiY2xyRHJvcGRvd25Ub2dnbGUiLCIiLDEsIm5hdi10ZXh0IiwiY29sb3Itd2hpdGUiLCJ1c2VyLW5hdi10b2dnbGUiXSxbNCwibmdJ'@; put 'ZiJdLFsiY2xhc3MiLCJiYWRnZSBiYWRnZS1kYW5nZXIiLDMsImhpZGRlbiIsNCwibmdJZiJdLFsiY2xhc3MiLCJiYWRnZSBiYWRnZS1pbmZvIiwzLCJoaWRkZW4iLDQsIm5nSWYiXSxbInNoYXBlIiwiY2FyZXQgZG93biIsNCwibmdJZiJdLFsiY2xyUG9zaXRpb24iLCJib3R0b20tcmlnaHQi'@; put 'LDQsImNscklmT3BlbiJdLFsic2l6ZSIsIm1kIiwic2hhcGUiLCJtb29uIiwiaW52ZXJzZSIsImZhbHNlIiwic29saWQiLCJmYWxzZSIsMSwidGhlbWUtdG9nZ2xlLWljb24iLCJjdXJzb3ItcG9pbnRlciIsMywiY2xpY2siXSxbInNpemUiLCJtZCIsInNoYXBlIiwic3VuIiwiaW52ZXJzZSIs'@; put 'ImZhbHNlIiwic29saWQiLCJmYWxzZSIsMSwidGhlbWUtdG9nZ2xlLWljb24iLCJjdXJzb3ItcG9pbnRlciIsMywiY2xpY2siXSxbImFsdCIsInByb2ZpbGUgcGljdHVyZSIsMSwiYXZhdGFyLWltZyIsMywic3JjIl0sWzEsImJhZGdlIiwiYmFkZ2UtZGFuZ2VyIl0sWzEsImJhZGdlIiwiYmFk'@; put 'Z2UtaW5mbyJdLFsic2hhcGUiLCJjYXJldCBkb3duIl0sWyJjbHJQb3NpdGlvbiIsImJvdHRvbS1yaWdodCJdLFsiY2xyRHJvcGRvd25JdGVtIiwiIiwxLCJkZWJ1Zy1zd2l0Y2gtaXRlbSJdLFsxLCJ0b2dnbGUtc3dpdGNoIiwzLCJjbGljayJdLFsiaWQiLCJkZWJ1Zy10b2dnbGUxIiwidHlw'@; put 'ZSIsImNoZWNrYm94IiwiY2xyVG9nZ2xlIiwiIiwzLCJuZ01vZGVsQ2hhbmdlIiwibmdNb2RlbCJdLFsiY2xyRHJvcGRvd25JdGVtIiwiIiwzLCJjbGljayJdLFsxLCJzZXBhcmF0b3IiXSxbImhyZWYiLCIuLi4iLCJyb3V0ZXJMaW5rIiwiL3N5c3RlbSIsImNsckRyb3Bkb3duSXRlbSIsIiJd'@; put 'LFsiaHJlZiIsIi4uLiIsImNsckRyb3Bkb3duSXRlbSIsIiIsMywiY2xpY2siXSxbInNoYXBlIiwibG9nb3V0IiwxLCJjbHItbG9nb3V0Il0sWzEsImNvcHlSaWdodCJdLFsidGFyZ2V0IiwiX2JsYW5rIiwiaHJlZiIsImh0dHBzOi8vZG9jcy5kYXRhY29udHJvbGxlci5pbyIsImNsckRyb3Bk'@; put 'b3duSXRlbSIsIiJdLFsxLCJkcm9wZG93bi10ZXh0Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGQsaCl7MSZkJiYoZGUoMCwiZGl2IiwxKSgxLCJkaXYiLDIpLGd0KDIsWVdlLDEsMCwiY2RzLWljb24iLDMpKDMsR1dlLDEsMCwiY2RzLWljb24iLDQpLGhlKCksV3QoNCwiYXBwLWxvYWRpbmctaW5k'@; put 'aWNhdG9yIiksZGUoNSwiY2xyLWRyb3Bkb3duIiw1KSg2LCJidXR0b24iLDYpKDcsInNwYW4iKSxPZSg4KSxoZSgpLGd0KDksJFdlLDIsMSwic3BhbiIsNykoMTAsS1dlLDIsMywic3BhbiIsOCkoMTEsWFdlLDIsMywic3BhbiIsOSkoMTIscVdlLDEsMCwiY2xyLWljb24iLDEwKSxoZSgpLGd0'@; put 'KDEzLFFXZSwyMywzLCJjbHItZHJvcGRvd24tbWVudSIsMTEpLGhlKCkoKSksMiZkJiYoZmUoMiksTWUoIm5nSWYiLCFoLmRhcmtNb2RlLnZhbHVlKSxmZSgpLE1lKCJuZ0lmIiwhIWguZGFya01vZGUudmFsdWUpLGZlKDUpLFNyKGgudXNlck5hbWUpLGZlKCksTWUoIm5nSWYiLCJOb3QgbG9n'@; put 'Z2VkIGluIiE9PWgudXNlck5hbWUmJmguaXNWaXlhKSxmZSgpLE1lKCJuZ0lmIiwhaC5zYXNqc0NvbmZpZy5kZWJ1ZyksZmUoKSxNZSgibmdJZiIsaC5zYXNqc0NvbmZpZy5kZWJ1ZyksZmUoKSxNZSgibmdJZiIsIWguaXNWaXlhKSl9LGRlcGVuZGVuY2llczpbYmEsTWQsdGwsV28sbDEsT2ws'@; put 'ZW8sUDIsY28sSWQsRmIseGgsc2csZzcsbTcsUGIsV1dlXSxlbmNhcHN1bGF0aW9uOjJ9KX19cmV0dXJuIGN9KSgpLHdoZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5hbGVydHM9bmV3IEdufXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8'@; put 'fGMpfX1zdGF0aWN7dGhpcy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KX19cmV0dXJuIGN9KSgpO2Z1bmN0aW9uIHRZZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImNsci1hbGVydCIsMikscGkoImNsckFsZXJ0Q2xvc2VkQ2hhbmdlIixmdW5j'@; put 'dGlvbihoKXtjb25zdCBmPXd0KGEpLiRpbXBsaWNpdDtyZXR1cm4gZ2koZi5jbG9zZWQsaCl8fChmLmNsb3NlZD1oKSxDdChoKX0pLEZ0KCJjbHJBbGVydENsb3NlZENoYW5nZSIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoMikub25BbGVydENsb3NlKCkpfSksZGUoMSwiZGl2Iiwz'@; put 'KSgyLCJzcGFuIiw0KSxPZSgzKSxoZSgpKCkoKX1pZigyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7TWUoImNsckFsZXJ0VHlwZSIsYS50eXBlKSgiY2xyQWxlcnRBcHBMZXZlbCIsITApLGZpKCJjbHJBbGVydENsb3NlZCIsYS5jbG9zZWQpLGZlKDMpLExyKCIgIixhLm1lc3NhZ2UsIiAiKX19'@; put 'ZnVuY3Rpb24gblllKGMsbCl7aWYoMSZjJiYoZGUoMCwiY2xyLWFsZXJ0cyIpLGd0KDEsdFllLDQsNCwiY2xyLWFsZXJ0IiwxKSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoKTtmZSgpLE1lKCJuZ0Zvck9mIixhLmFsZXJ0cyl9fWxldCByWWU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0'@; put 'aGlzLl9hbGVydHNTZXJ2aWNlPWEsdGhpcy5hbGVydHM9W10sdGhpcy5oYXNPcGVuQWxlcnQ9ITEsdGhpcy5hbGVydHNTdWI9bmV3IEp0fW5nT25Jbml0KCl7dGhpcy5hbGVydHNTdWI9dGhpcy5fYWxlcnRzU2VydmljZS5hbGVydHMuc3Vic2NyaWJlKGE9Pnt0aGlzLmFsZXJ0cy5wdXNoKGEp'@; put 'LHRoaXMuaGFzT3BlbkFsZXJ0PSEwLGEuZXJyJiZjb25zb2xlLmVycm9yKGEuZXJyKX0pfW9uQWxlcnRDbG9zZSgpe3RoaXMuaGFzT3BlbkFsZXJ0PXRoaXMuYWxlcnRzLnNvbWUoYT0+IWEuY2xvc2VkKX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxj'@; put 'KSgkZSh3aGUpKX19c3RhdGlje3RoaXMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImFwcC1hbGVydHMiXV0sZGVjbHM6MSx2YXJzOjEsY29uc3RzOltbNCwibmdJZiJdLFszLCJjbHJBbGVydFR5cGUiLCJjbHJBbGVydEFwcExldmVsIiwiY2xyQWxlcnRDbG9zZWQiLCJjbHJB'@; put 'bGVydENsb3NlZENoYW5nZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzMsImNsckFsZXJ0Q2xvc2VkQ2hhbmdlIiwiY2xyQWxlcnRUeXBlIiwiY2xyQWxlcnRBcHBMZXZlbCIsImNsckFsZXJ0Q2xvc2VkIl0sWzEsImFsZXJ0LWl0ZW0iXSxbMSwiYWxlcnQtdGV4dCJdXSx0ZW1wbGF0ZTpmdW5j'@; put 'dGlvbihkLGgpezEmZCYmZ3QoMCxuWWUsMiwxLCJjbHItYWxlcnRzIiwwKSwyJmQmJk1lKCJuZ0lmIixoLmhhc09wZW5BbGVydCl9LGRlcGVuZGVuY2llczpbUXMsYmEsckUsaWhlLGlFXSxlbmNhcHN1bGF0aW9uOjJ9KX19cmV0dXJuIGN9KSgpLHlPPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0'@; put 'b3IoKXt0aGlzLmNsYXNzZXM9IiJ9bmdPbkluaXQoKXt9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJjb250YWN0LWxpbmsiXV0saW5wdXRzOntjbGFzc2VzOiJj'@; put 'bGFzc2VzIn0sZGVjbHM6Mix2YXJzOjMsY29uc3RzOltbImhyZWYiLCJtYWlsdG86c3VwcG9ydEBkYXRhY29udHJvbGxlci5pbz9zdWJqZWN0PUxpY2VuY2UiLDMsIm5nQ2xhc3MiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZCxoKXsxJmQmJihkZSgwLCJhIiwwKSxPZSgxLCJzdXBwb3J0QGRhdGFj'@; put 'b250cm9sbGVyLmlvIiksaGUoKSksMiZkJiYoVHIoInVuc2V0IiwiIiE9PWguY2xhc3NlcyksTWUoIm5nQ2xhc3MiLGguY2xhc3NlcykpfSxkZXBlbmRlbmNpZXM6W3Z1XSxlbmNhcHN1bGF0aW9uOjJ9KX19cmV0dXJuIGN9KSgpLENoZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhp'@; put 'cy5vcHRpb25zU3ViamVjdCQ9bmV3IEduLHRoaXMucmVzdWx0Q2hhbmdlJD1uZXcgR259b3BlbihhKXtyZXR1cm4gdGhpcy5vcHRpb25zU3ViamVjdCQubmV4dCh7b3BlbjohMCwuLi5hfSksdGhpcy5yZXN1bHRDaGFuZ2UkPW5ldyBHbix0aGlzLnJlc3VsdENoYW5nZSQuYXNPYnNlcnZhYmxl'@; put 'KCl9Y2xvc2UoYSl7dGhpcy5vcHRpb25zU3ViamVjdCQubmV4dCh7b3BlbjohMX0pLHRoaXMucmVzdWx0Q2hhbmdlJC5uZXh0KHtwYXNzd29yZDphfSksdGhpcy5yZXN1bHRDaGFuZ2UkLmNvbXBsZXRlKCl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8'@; put 'Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pfX1yZXR1cm4gY30pKCk7ZnVuY3Rpb24gaVllKGMsbCl7MSZjJiYoZGUoMCwicCIsMTMpLE9lKDEsIiBTb3JyeSB0aGF0IGRpZG4ndCB3b3JrLCB0cnkg'@; put 'YWdhaW4uICIpLGhlKCkpfWZ1bmN0aW9uIGFZZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImRpdiIsMikoMSwiY2xyLW1vZGFsIiwzKSgyLCJoMyIsNCksT2UoMywiIFBhc3N3b3JkIFByb3RlY3RlZCBGaWxlICIpLGhlKCksZGUoNCwiZGl2Iiw1KSg1LCJwIiw2KSxPZSg2LCJQ'@; put 'bGVhc2UgZW50ZXIgcGFzc3dvcmQ6IiksaGUoKSxkZSg3LCJpbnB1dCIsNywwKSxwaSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oaCl7d3QoYSk7Y29uc3QgZj1MZSgpO3JldHVybiBnaShmLnBhc3N3b3JkSW5wdXQsaCl8fChmLnBhc3N3b3JkSW5wdXQ9aCksQ3QoaCl9KSxoZSgpKCksZGUo'@; put 'OSwiZGl2Iiw4KSgxMCwiZGl2IiksZ3QoMTEsaVllLDIsMCwicCIsOSksaGUoKSxkZSgxMiwiZGl2IiwxMCkoMTMsImJ1dHRvbiIsMTEpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoKS5jbG9zZSgpKX0pLE9lKDE0LCIgQ2FuY2VsICIpLGhlKCksZGUoMTUsImJ1'@; put 'dHRvbiIsMTIpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPWRhKDgpO3JldHVybiBDdChMZSgpLmNsb3NlKGgudmFsdWUpKX0pLE9lKDE2LCIgVW5sb2NrICIpLGhlKCkoKSgpKCkoKX1pZigyJmMpe2NvbnN0IGE9bC5uZ0lmLGQ9ZGEoOCksaD1MZSgpO2ZlKCksTWUoImNs'@; put 'ck1vZGFsT3BlbiIsYS5vcGVuKSgiY2xyTW9kYWxTaXplIiwibWQiKSgiY2xyTW9kYWxDbG9zYWJsZSIsITEpLGZlKDYpLGZpKCJuZ01vZGVsIixoLnBhc3N3b3JkSW5wdXQpLGZlKDQpLE1lKCJuZ0lmIixhLmVycm9yKSxmZSg0KSxNZSgiZGlzYWJsZWQiLGQudmFsdWUubGVuZ3RoPDEpfX1s'@; put 'ZXQgc1llPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5leGNlbFBhc3N3b3JkTW9kYWxTZXJ2aWNlPWEsdGhpcy5vcHRpb25zJD10aGlzLmV4Y2VsUGFzc3dvcmRNb2RhbFNlcnZpY2Uub3B0aW9uc1N1YmplY3QkLHRoaXMuZmlsZVVubG9ja0Vycm9yPSExLHRoaXMucGFzc3dv'@; put 'cmRJbnB1dD0iIn1jbG9zZShhKXt0aGlzLnBhc3N3b3JkSW5wdXQ9IiIsdGhpcy5leGNlbFBhc3N3b3JkTW9kYWxTZXJ2aWNlLmNsb3NlKGEpfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpKCRlKENoZSkpfX1zdGF0aWN7dGhpcy5cdTAyNzVjbXA9'@; put 'TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1siYXBwLWV4Y2VsLXBhc3N3b3JkLW1vZGFsIl1dLGRlY2xzOjIsdmFyczozLGNvbnN0czpbWyJmaWxlUGFzc3dvcmRJbnB1dCIsIiJdLFsiY2xhc3MiLCJleGNlbC1wYXNzd29yZC1yb290Iiw0LCJuZ0lmIl0sWzEsImV4Y2VsLXBhc3N3b3JkLXJvb3Qi'@; put 'XSxbMywiY2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxTaXplIiwiY2xyTW9kYWxDbG9zYWJsZSJdLFsxLCJtb2RhbC10aXRsZSIsImNlbnRlciIsInRleHQtY2VudGVyIiwiY29sb3ItZGFya2VyLWdyYXkiXSxbMSwibW9kYWwtYm9keSIsImQtZmxleCIsImNsci1qdXN0aWZ5LWNvbnRlbnQtY2Vu'@; put 'dGVyIl0sWzEsIm0tMCJdLFsiZGF0YS1scGlnbm9yZSIsInRydWUiLCJhdXRvY29tcGxldGUiLCJvZmYiLCJpZCIsImZpbGVQYXNzd29yZElucHV0IiwidHlwZSIsInRleHQiLDEsImNsci1pbnB1dCIsImRpc2FibGUtcGFzc3dvcmQtbWFuYWdlciIsMywibmdNb2RlbENoYW5nZSIsIm5nTW9k'@; put 'ZWwiXSxbMSwibW9kYWwtZm9vdGVyIl0sWyJjbGFzcyIsIm0tMCBjb2xvci1yZWQiLDQsIm5nSWYiXSxbMSwiYnV0dG9ucyJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLW91dGxpbmUiLDMsImNsaWNrIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20i'@; put 'LCJidG4tc3VjY2Vzcy1vdXRsaW5lIiwzLCJjbGljayIsImRpc2FibGVkIl0sWzEsIm0tMCIsImNvbG9yLXJlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihkLGgpezEmZCYmKGd0KDAsYVllLDE3LDYsImRpdiIsMSksUW8oMSwiYXN5bmMiKSksMiZkJiZNZSgibmdJZiIsQWMoMSwxLGgub3B0aW9u'@; put 'cyQpKX0sZGVwZW5kZW5jaWVzOltiYSxHbCx0bCxXbyxydSxZdSxJTV0sZW5jYXBzdWxhdGlvbjoyfSl9fXJldHVybiBjfSkoKSxzRT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5maWxlT3Zlcj0hMSx0aGlzLmZpbGVEcm9wcGVkPW5ldyBLcix0aGlzLmZpbGVEcmFnZ2VkT3Zl'@; put 'cj1uZXcgS3J9b25EcmFnT3ZlcihhKXthLnByZXZlbnREZWZhdWx0KCksYS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmNvbnRhaW5zRmlsZXMoYSkmJiF0aGlzLmZpbGVPdmVyJiYodGhpcy5maWxlT3Zlcj0hMCx0aGlzLmZpbGVEcmFnZ2VkT3Zlci5lbWl0KCkpfW9uRHJhZ0xlYXZlKGEpe2Eu'@; put 'cHJldmVudERlZmF1bHQoKSxhLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuZmlsZU92ZXI9ITF9b25kcm9wKGEpe2EucHJldmVudERlZmF1bHQoKSxhLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuZmlsZU92ZXI9ITE7Y29uc3QgZD1hLmRhdGFUcmFuc2Zlci5maWxlcztkLmxlbmd0aD4wJiZ0aGlz'@; put 'LmZpbGVEcm9wcGVkLmVtaXQoZCl9Y29udGFpbnNGaWxlcyhhKXtpZihhJiZhLmRhdGFUcmFuc2ZlciYmYS5kYXRhVHJhbnNmZXIudHlwZXMpZm9yKGxldCBkPTA7ZDxhLmRhdGFUcmFuc2Zlci50eXBlcy5sZW5ndGg7ZCsrKWlmKCJGaWxlcyI9PWEuZGF0YVRyYW5zZmVyLnR5cGVzW2RdKXJl'@; put 'dHVybiEwfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpfX1zdGF0aWN7dGhpcy5cdTAyNzVkaXI9RXIoe3R5cGU6YyxzZWxlY3RvcnM6W1siIiwiYXBwRHJhZ05kcm9wIiwiIl1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGQsaCl7'@; put 'MSZkJiZGdCgiZHJhZ292ZXIiLGZ1bmN0aW9uKHYpe3JldHVybiBoLm9uRHJhZ092ZXIodil9KSgiZHJhZ2xlYXZlIixmdW5jdGlvbih2KXtyZXR1cm4gaC5vbkRyYWdMZWF2ZSh2KX0pKCJkcm9wIixmdW5jdGlvbih2KXtyZXR1cm4gaC5vbmRyb3Aodil9KSwyJmQmJlRyKCJmaWxlb3ZlciIs'@; put 'aC5maWxlT3Zlcil9LG91dHB1dHM6e2ZpbGVEcm9wcGVkOiJmaWxlRHJvcHBlZCIsZmlsZURyYWdnZWRPdmVyOiJmaWxlRHJhZ2dlZE92ZXIifX0pfX1yZXR1cm4gY30pKCk7Y29uc3QgU2hlPSgpPT5bXTtmdW5jdGlvbiBvWWUoYyxsKXsxJmMmJihkZSgwLCJwIiw2KSxPZSgxLCJObyByZXF1'@; put 'ZXN0cyBtYWRlIiksaGUoKSl9ZnVuY3Rpb24gbFllKGMsbCl7MSZjJiYoZGUoMCwic3BhbiIpLFd0KDEsImNsci1pY29uIiwxMyksaGUoKSl9ZnVuY3Rpb24gY1llKGMsbCl7MSZjJiYoZGUoMCwic3BhbiIpLFd0KDEsImNsci1pY29uIiwxNCksaGUoKSl9ZnVuY3Rpb24gdVllKGMsbCl7aWYo'@; put 'MSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiY2xyLXRyZWUtbm9kZSIsMjIpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtjb25zdCBoPXd0KGEpLiRpbXBsaWNpdCxmPUxlKDMpLmluZGV4O3JldHVybiBDdChMZSgyKS5nb1RvTG9nTGluZShoLCJyZXF1ZXN0XyIrZiwiZXJyb3IiKSl9KSxkZSgxLCJi'@; put 'dXR0b24iLDIzKSxPZSgyKSxoZSgpKCl9aWYoMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O2ZlKDIpLExyKCIgIixhLCIgIil9fWZ1bmN0aW9uIGRZZShjLGwpe2lmKDEmYyYmKGRlKDAsImNsci10cmVlLW5vZGUiLDE5KSxXdCgxLCJjbHItaWNvbiIsMjApLE9lKDIpLGd0KDMsdVllLDMsMSwi'@; put 'Y2xyLXRyZWUtbm9kZSIsMjEpLGhlKCkpLDImYyl7Y29uc3QgYT1MZSgyKS4kaW1wbGljaXQ7ZmUoMiksTHIoIiBFcnJvcnMgKCIsYS5sb2dFcnJvcnMubGVuZ3RoLCIpICIpLGZlKCksTWUoIm5nRm9yT2YiLGEubG9nRXJyb3JzfHxabygyLFNoZSkpfX1mdW5jdGlvbiBoWWUoYyxsKXtpZigx'@; put 'JmMpe2NvbnN0IGE9T24oKTtkZSgwLCJjbHItdHJlZS1ub2RlIiwyMiksRnQoImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IGg9d3QoYSkuJGltcGxpY2l0LGY9TGUoMykuaW5kZXg7cmV0dXJuIEN0KExlKDIpLmdvVG9Mb2dMaW5lKGgsInJlcXVlc3RfIitmLCJ3YXJuaW5nIikpfSksZGUoMSwi'@; put 'YnV0dG9uIiwyMyksT2UoMiksaGUoKSgpfWlmKDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtmZSgyKSxMcigiICIsYSwiICIpfX1mdW5jdGlvbiBmWWUoYyxsKXtpZigxJmMmJihkZSgwLCJjbHItdHJlZS1ub2RlIiwxOSksV3QoMSwiY2xyLWljb24iLDI0KSxPZSgyKSxndCgzLGhZZSwzLDEs'@; put 'ImNsci10cmVlLW5vZGUiLDIxKSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoMikuJGltcGxpY2l0O2ZlKDIpLExyKCIgV2FybmluZ3MgKCIsYS5sb2dXYXJuaW5ncy5sZW5ndGgsIikgIiksZmUoKSxNZSgibmdGb3JPZiIsYS5sb2dXYXJuaW5nc3x8Wm8oMixTaGUpKX19ZnVuY3Rpb24gcFllKGMs'@; put 'bCl7MSZjJiZXdCgwLCJkaXYiLDI1KSwyJmMmJk1lKCJpbm5lckhUTUwiLExlKDIpLiRpbXBsaWNpdC5sb2dGaWxlLFY0KX1mdW5jdGlvbiBnWWUoYyxsKXsxJmMmJld0KDAsImRpdiIsMjYpLDImYyYmTWUoInRleHRDb250ZW50IixMZSgyKS4kaW1wbGljaXQubG9nRmlsZSl9ZnVuY3Rpb24g'@; put 'bVllKGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiYnV0dG9uIiwyNyksRnQoImNsaWNrIixmdW5jdGlvbigpe3d0KGEpO2NvbnN0IGg9TGUoMikuJGltcGxpY2l0O3JldHVybiBDdChMZSgyKS5kb3dubG9hZExvZyhoLmxvZ0ZpbGUpKX0pLE9lKDEsIiBEb3dubG9hZCAiKSxoZSgp'@; put 'fX1mdW5jdGlvbiB2WWUoYyxsKXtpZigxJmMmJihkZSgwLCJjbHItdGFiLWNvbnRlbnQiKSgxLCJjbHItdHJlZSIpLGd0KDIsZFllLDQsMywiY2xyLXRyZWUtbm9kZSIsMTUpKDMsZlllLDQsMywiY2xyLXRyZWUtbm9kZSIsMTUpLGhlKCksZ3QoNCxwWWUsMSwxLCJkaXYiLDE2KSg1LGdZZSwx'@; put 'LDEsImRpdiIsMTcpKDYsbVllLDIsMCwiYnV0dG9uIiwxOCksaGUoKSksMiZjKXtjb25zdCBhPUxlKCkuJGltcGxpY2l0LGQ9TGUoMik7ZmUoMiksTWUoIm5nSWYiLGEubG9nRXJyb3JzKSxmZSgpLE1lKCJuZ0lmIixhLmxvZ1dhcm5pbmdzKSxmZSgpLE1lKCJuZ0lmIiwiU0FTVklZQSIhPT1k'@; put 'LnNlcnZlclR5cGUpLGZlKCksTWUoIm5nSWYiLCJTQVNWSVlBIj09PWQuc2VydmVyVHlwZSksZmUoKSxNZSgibmdJZiIsKG51bGw9PWEubG9nRmlsZT9udWxsOmEubG9nRmlsZS5sZW5ndGgpPjApfX1mdW5jdGlvbiB5WWUoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJidXR0b24i'@; put 'LDI3KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7d3QoYSk7Y29uc3QgaD1MZSgyKS4kaW1wbGljaXQ7cmV0dXJuIEN0KExlKDIpLmRvd25sb2FkU291cmNlQ29kZShoLnNvdXJjZUNvZGUpKX0pLE9lKDEsIiBEb3dubG9hZCAiKSxoZSgpfX1mdW5jdGlvbiBiWWUoYyxsKXtpZigxJmMmJihkZSgw'@; put 'LCJjbHItdGFiLWNvbnRlbnQiKSgxLCJkaXYiLDI4KSxPZSgyKSxoZSgpLGd0KDMseVllLDIsMCwiYnV0dG9uIiwxOCksaGUoKSksMiZjKXtjb25zdCBhPUxlKCkuJGltcGxpY2l0O2ZlKDIpLFNyKGEuc291cmNlQ29kZSksZmUoKSxNZSgibmdJZiIsKG51bGw9PWEuc291cmNlQ29kZT9udWxs'@; put 'OmEuc291cmNlQ29kZS5sZW5ndGgpPjApfX1mdW5jdGlvbiBfWWUoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJidXR0b24iLDI3KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7d3QoYSk7Y29uc3QgaD1MZSgyKS4kaW1wbGljaXQ7cmV0dXJuIEN0KExlKDIpLmRvd25sb2FkR2VuZXJh'@; put 'dGVkQ29kZShoLmdlbmVyYXRlZENvZGUpKX0pLE9lKDEsIiBEb3dubG9hZCAiKSxoZSgpfX1mdW5jdGlvbiB3WWUoYyxsKXtpZigxJmMmJihkZSgwLCJjbHItdGFiLWNvbnRlbnQiKSgxLCJkaXYiLDI4KSxPZSgyKSxoZSgpLGd0KDMsX1llLDIsMCwiYnV0dG9uIiwxOCksaGUoKSksMiZjKXtj'@; put 'b25zdCBhPUxlKCkuJGltcGxpY2l0O2ZlKDIpLExyKCIgIixhLmdlbmVyYXRlZENvZGUsIiAiKSxmZSgpLE1lKCJuZ0lmIiwobnVsbD09YS5nZW5lcmF0ZWRDb2RlP251bGw6YS5nZW5lcmF0ZWRDb2RlLmxlbmd0aCk+MCl9fWZ1bmN0aW9uIENZZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1Pbigp'@; put 'O2RlKDAsImRpdiIsMzQpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtjb25zdCBoPXd0KGEpLiRpbXBsaWNpdDtyZXR1cm4gQ3QoTGUoMykuJGltcGxpY2l0LnNlbGVjdGVkVGFibGU9aC5rZXkpfSksT2UoMSksaGUoKX1pZigyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7VHIoInNlbGVjdGVkIixM'@; put 'ZSgzKS4kaW1wbGljaXQuc2VsZWN0ZWRUYWJsZT09PWEua2V5KSxmZSgpLExyKCIgIixhLmtleSwiICIpfX1mdW5jdGlvbiBTWWUoYyxsKXtpZigxJmMmJihkZSgwLCJjbHItZHJvcGRvd24tbWVudSIpLGd0KDEsQ1llLDIsMywiZGl2IiwzMyksUW8oMiwia2V5dmFsdWUiKSxoZSgpKSwyJmMp'@; put 'e2NvbnN0IGE9TGUoMikuJGltcGxpY2l0O2ZlKCksTWUoIm5nRm9yT2YiLEFjKDIsMSxhLlNBU1dPUkspKX19ZnVuY3Rpb24gTVllKGMsbCl7aWYoMSZjJiYoZGUoMCwicCIsMzgpKDEsInN0cm9uZyIpLE9lKDIpLGhlKCkoKSksMiZjKXtjb25zdCBhPUxlKDMpLiRpbXBsaWNpdDtmZSgyKSxM'@; put 'cigiIixhLnNlbGVjdGVkVGFibGUsIiAoZmlyc3QgMTAgcm93cykgIil9fWZ1bmN0aW9uIHhZZShjLGwpe2lmKDEmYyYmKGRlKDAsInRoIiksT2UoMSksaGUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O2ZlKCksTHIoIiAiLGEua2V5LCIgIil9fWZ1bmN0aW9uIEVZZShjLGwpe2lmKDEm'@; put 'YyYmKGRlKDAsInRkIiksT2UoMSksaGUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0LGQ9TGUoKS4kaW1wbGljaXQ7ZmUoKSxMcigiICIsZFthLmtleV0sIiAiKX19ZnVuY3Rpb24gVFllKGMsbCl7aWYoMSZjJiYoZGUoMCwidHIiKSxndCgxLEVZZSwyLDEsInRkIiw0MCksUW8oMiwia2V5'@; put 'dmFsdWUiKSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoNCkuJGltcGxpY2l0O2ZlKCksTWUoIm5nRm9yT2YiLEFjKDIsMSxhLlNBU1dPUktbYS5zZWxlY3RlZFRhYmxlXS5maXJzdDEwcm93c1swXSkpfX1mdW5jdGlvbiBBWWUoYyxsKXtpZigxJmMmJihkZSgwLCJ0YWJsZSIsMzkpKDEsInRoZWFk'@; put 'IikoMiwidHIiKSxndCgzLHhZZSwyLDEsInRoIiw0MCksUW8oNCwia2V5dmFsdWUiKSxoZSgpKCksZGUoNSwidGJvZHkiKSxndCg2LFRZZSwzLDMsInRyIiw0MCksaGUoKSgpKSwyJmMpe2NvbnN0IGE9TGUoMykuJGltcGxpY2l0O2ZlKDMpLE1lKCJuZ0Zvck9mIixBYyg0LDIsYS5TQVNXT1JL'@; put 'W2Euc2VsZWN0ZWRUYWJsZV0uZmlyc3QxMHJvd3NbMF0pKSxmZSgzKSxNZSgibmdGb3JPZiIsYS5TQVNXT1JLW2Euc2VsZWN0ZWRUYWJsZV0uZmlyc3QxMHJvd3MpfX1mdW5jdGlvbiBrWWUoYyxsKXtpZigxJmMmJihkZSgwLCJjbHItdGFiLWNvbnRlbnQiKSxndCgxLE1ZZSwzLDEsInAiLDM1'@; put 'KSxkZSgyLCJkaXYiLDM2KSxndCgzLEFZZSw3LDQsInRhYmxlIiwzNyksaGUoKSgpKSwyJmMpe2NvbnN0IGE9TGUoMikuJGltcGxpY2l0O2ZlKCksTWUoIm5nSWYiLGEuc2VsZWN0ZWRUYWJsZSksZmUoMiksTWUoIm5nSWYiLGEuc2VsZWN0ZWRUYWJsZSl9fWZ1bmN0aW9uIERZZShjLGwpe2lm'@; put 'KDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImNsci10YWIiKSgxLCJjbHItZHJvcGRvd24iLDI5KSgyLCJidXR0b24iLDMwKSxPZSgzLCIgU0FTIFdvcmsgVGFibGVzICIpLFd0KDQsImNsci1pY29uIiwzMSksaGUoKSxndCg1LFNZZSwzLDMsImNsci1kcm9wZG93bi1tZW51IiwzMiksaGUoKSxn'@; put 'dCg2LGtZZSw0LDIsIm5nLXRlbXBsYXRlIiwxMikscGkoImNscklmQWN0aXZlQ2hhbmdlIixmdW5jdGlvbihoKXt3dChhKTtjb25zdCBmPUxlKDMpO3JldHVybiBnaShmLnRhYmxlc0FjdGl2ZSxoKXx8KGYudGFibGVzQWN0aXZlPWgpLEN0KGgpfSksaGUoKX1pZigyJmMpe2NvbnN0IGE9TGUo'@; put 'Myk7ZmUoKSxNZSgiY2xyQ2xvc2VNZW51T25JdGVtQ2xpY2siLCEwKSxmZSg1KSxmaSgiY2xySWZBY3RpdmUiLGEudGFibGVzQWN0aXZlKX19ZnVuY3Rpb24gSVllKGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiY2xyLXN0YWNrLWJsb2NrIiw4KSgxLCJjbHItc3RhY2stbGFiZWwi'@; put 'KSxPZSgyKSxkZSgzLCJzcGFuIiw5KSxndCg0LGxZZSwyLDAsInNwYW4iLDUpKDUsY1llLDIsMCwic3BhbiIsNSksaGUoKSgpLGRlKDYsImNsci1zdGFjay1jb250ZW50IiksT2UoNyksaGUoKSxkZSg4LCJjbHItc3RhY2stYmxvY2siLDEwKSg5LCJjbHItc3RhY2stY29udGVudCIpKDEwLCJj'@; put 'bHItdGFicyIpKDExLCJjbHItdGFiIikoMTIsImJ1dHRvbiIsMTEpLE9lKDEzLCJTQVMgTG9nIiksaGUoKSxndCgxNCx2WWUsNyw1LCJuZy10ZW1wbGF0ZSIsMTIpLHBpKCJjbHJJZkFjdGl2ZUNoYW5nZSIsZnVuY3Rpb24oaCl7d3QoYSk7Y29uc3QgZj1MZSgyKTtyZXR1cm4gZ2koZi5zYXNM'@; put 'b2dBY3RpdmUsaCl8fChmLnNhc0xvZ0FjdGl2ZT1oKSxDdChoKX0pLGhlKCksZGUoMTUsImNsci10YWIiKSgxNiwiYnV0dG9uIiwxMSksT2UoMTcsIlNBUyBTb3VyY2UgQ29kZSIpLGhlKCksZ3QoMTgsYlllLDQsMiwibmctdGVtcGxhdGUiLDEyKSxwaSgiY2xySWZBY3RpdmVDaGFuZ2UiLGZ1'@; put 'bmN0aW9uKGgpe3d0KGEpO2NvbnN0IGY9TGUoMik7cmV0dXJuIGdpKGYuc2FzU291cmNlQ29kZUFjdGl2ZSxoKXx8KGYuc2FzU291cmNlQ29kZUFjdGl2ZT1oKSxDdChoKX0pLGhlKCksZGUoMTksImNsci10YWIiKSgyMCwiYnV0dG9uIiwxMSksT2UoMjEsIlNBUyBHZW5lcmF0ZWQgQ29kZSIp'@; put 'LGhlKCksZ3QoMjIsd1llLDQsMiwibmctdGVtcGxhdGUiLDEyKSxwaSgiY2xySWZBY3RpdmVDaGFuZ2UiLGZ1bmN0aW9uKGgpe3d0KGEpO2NvbnN0IGY9TGUoMik7cmV0dXJuIGdpKGYuc2FzR2VuZXJhdGVkQ29kZUFjdGl2ZSxoKXx8KGYuc2FzR2VuZXJhdGVkQ29kZUFjdGl2ZT1oKSxDdCho'@; put 'KX0pLGhlKCksZ3QoMjMsRFllLDcsMiwiY2xyLXRhYiIsNSksaGUoKSgpKCkoKX1pZigyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQsZD1sLmluZGV4LGg9TGUoMik7TWUoImlkIiwicmVxdWVzdF8iK2QpKCJjbHJTdGFja1ZpZXdMZXZlbCIsMSksZmUoMiksTHIoIiAiLGEuc2VydmljZUxpbmss'@; put 'IiAiKSxmZSgyKSxNZSgibmdJZiIsKG51bGw9PWEubG9nV2FybmluZ3M/bnVsbDphLmxvZ1dhcm5pbmdzLmxlbmd0aCk+MCksZmUoKSxNZSgibmdJZiIsKG51bGw9PWEubG9nRXJyb3JzP251bGw6YS5sb2dFcnJvcnMubGVuZ3RoKT4wKSxmZSgyKSxTcihhLnBhcnNlZFRpbWVzdGFtcCksZmUo'@; put 'NyksZmkoImNscklmQWN0aXZlIixoLnNhc0xvZ0FjdGl2ZSksZmUoNCksZmkoImNscklmQWN0aXZlIixoLnNhc1NvdXJjZUNvZGVBY3RpdmUpLGZlKDQpLGZpKCJjbHJJZkFjdGl2ZSIsaC5zYXNHZW5lcmF0ZWRDb2RlQWN0aXZlKSxmZSgpLE1lKCJuZ0lmIixhLlNBU1dPUkspfX1mdW5jdGlv'@; put 'biBSWWUoYyxsKXtpZigxJmMmJihkZSgwLCJjbHItc3RhY2stdmlldyIpLGd0KDEsSVllLDI0LDEwLCJjbHItc3RhY2stYmxvY2siLDcpLGhlKCkpLDImYyl7Y29uc3QgYT1MZSgpO2ZlKCksTWUoIm5nRm9yT2YiLGEuc2FzanNSZXF1ZXN0cyl9fWxldCBMWWU9KCgpPT57Y2xhc3MgY3tnZXQg'@; put 'b3BlbmVkKCl7cmV0dXJuIHRoaXMuX29wZW5lZH1zZXQgb3BlbmVkKGEpe3RoaXMuX29wZW5lZD1hLGEmJnRoaXMubW9kYWxPcGVuZWQoKSx0aGlzLmxvZ2dlclNlcnZpY2UubG9nKHRoaXMuc2FzanNSZXF1ZXN0cyl9Y29uc3RydWN0b3IoYSxkLGgpe3RoaXMuc2FzU2VydmljZT1hLHRoaXMu'@; put 'bG9nZ2VyU2VydmljZT1kLHRoaXMuaGVscGVyU2VydmljZT1oLHRoaXMuX29wZW5lZD0hMSx0aGlzLm9wZW5lZENoYW5nZT1uZXcgS3IsdGhpcy5zYXNMb2dBY3RpdmU9ITAsdGhpcy5zYXNTb3VyY2VDb2RlQWN0aXZlPSExLHRoaXMuc2FzR2VuZXJhdGVkQ29kZUFjdGl2ZT0hMSx0aGlzLnRh'@; put 'Ymxlc0FjdGl2ZT0hMSx0aGlzLnNhc2pzQ29uZmlnPXRoaXMuc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpLHRoaXMuc2FzanNSZXF1ZXN0cz1bXSx0aGlzLnNhc2pzQ29uZmlnPXRoaXMuc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpLHRoaXMuc2VydmVyVHlwZT10aGlzLnNhc1NlcnZp'@; put 'Y2UuZ2V0U2VydmVyVHlwZSgpfW5nT25Jbml0KCl7fXBhcnNlTG9nVGltZXN0YW1wKGEpe3JldHVybmAke3RoaXMuZm9ybWF0VGltZXN0YW1wKGEpfSAke3RoaXMudGltZXN0YW1wRnJvbU5vdyhhKX1gfWN1dEFwcExvYyhhKXtyZXR1cm4gYS5yZXBsYWNlKHRoaXMuc2FzanNDb25maWcuYXBw'@; put 'TG9jKyIvIiwiIil9Zm9ybWF0VGltZXN0YW1wKGEpe3JldHVybiBQcyhhKS5mb3JtYXQoKT9QcyhhKS5mb3JtYXQoImRkZGQsIE1NTU0gRG8gWVlZWSwgaDptbTpzcyBhIik6YX10aW1lc3RhbXBGcm9tTm93KGEpe3JldHVybiBQcyhhKS5mb3JtYXQoKT9gICgke1BzKGEpLmZyb21Ob3coKX0p'@; put 'YDoiIn1tb2RhbE9wZW5DaGFuZ2UoYSl7dGhpcy5vcGVuZWQ9YSx0aGlzLm9wZW5lZENoYW5nZS5lbWl0KHRoaXMub3BlbmVkKX1tb2RhbE9wZW5lZCgpe3RoaXMuc2FzanNSZXF1ZXN0cz10aGlzLnNhc1NlcnZpY2UuZ2V0U2FzUmVxdWVzdHMoKTtmb3IobGV0IGEgb2YgdGhpcy5zYXNqc1Jl'@; put 'cXVlc3RzKXRoaXMucGFyc2VFcnJvcnNBbmRXYXJuaW5ncyhhKSxhLnNlcnZpY2VMaW5rPXRoaXMuY3V0QXBwTG9jKGEuc2VydmljZUxpbmspLGEucGFyc2VkVGltZXN0YW1wPXRoaXMucGFyc2VMb2dUaW1lc3RhbXAoYS50aW1lc3RhbXApfWdvVG9Mb2dMaW5lKGEsZCxoKXtjb25zdCBmPWRv'@; put 'Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke2R9IC5sb2ctd3JhcHBlci5zYXNsb2dgKTtpZihmKWlmKCJTQVNWSVlBIj09PXRoaXMuc2VydmVyVHlwZSl7Y29uc3QgTT0oZi50ZXh0Q29udGVudHx8IiIpLnNwbGl0KCJcbiIpO2xldCBJPS0xO2ZvcihsZXQgeWU9MDt5ZTxNLmxlbmd0aDt5ZSsr'@; put 'KWlmKE1beWVdLmluY2x1ZGVzKGEpKXtJPXllO2JyZWFrfWlmKC0xPT09SSlyZXR1cm47Y29uc3QgRz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtHLmNsYXNzTmFtZT0idGVtcC1saW5lLWhlaWdodC1jYWxjIixHLnRleHRDb250ZW50PSJYIixmLmFwcGVuZENoaWxkKEcpO2NvbnN0'@; put 'IHJlPUcuY2xpZW50SGVpZ2h0O2YucmVtb3ZlQ2hpbGQoRyksZi5zY3JvbGxUb3A9cmUqSTtjb25zdCB1ZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt1ZS5jbGFzc05hbWU9ImxpbmUtaGlnaGxpZ2h0LW92ZXJsYXkgIisoImVycm9yIj09PWg/ImVycm9yLWhpZ2hsaWdodCI6Indh'@; put 'cm5pbmctaGlnaGxpZ2h0IiksdWUuY2xhc3NMaXN0LmFkZCgidGVtcC1oZWlnaHQtc2V0dGVyIiksZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCItLWxpbmUtaGVpZ2h0IixgJHtyZX1weGApLHVlLmNsYXNzTGlzdC5hZGQoImxpbmUtcG9zaXRpb24tc2V0dGVy'@; put 'IiksZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCItLWxpbmUtdG9wIixyZSpJKyJweCIpLGYuYXBwZW5kQ2hpbGQodWUpLHNldFRpbWVvdXQoKCk9PntmLmNvbnRhaW5zKHVlKSYmZi5yZW1vdmVDaGlsZCh1ZSl9LDNlMyl9ZWxzZXtjb25zdCB2PWRvY3VtZW50'@; put 'LnF1ZXJ5U2VsZWN0b3JBbGwoYCMke2R9IC5sb2ctd3JhcHBlci5zYXNsb2cgZm9udGApO2ZvcihsZXQgTSBvZiBBcnJheS5mcm9tKHYpKWlmKE0udGV4dENvbnRlbnQ/LmluY2x1ZGVzKGEpKXtmLnNjcm9sbFRvcD1NLm9mZnNldFRvcC1mLm9mZnNldFRvcCxNLmNsYXNzTGlzdC5hZGQoImhp'@; put 'Z2hsaWdodGVkLWxpbmUiKSxzZXRUaW1lb3V0KCgpPT57TS5jbGFzc0xpc3QucmVtb3ZlKCJoaWdobGlnaHRlZC1saW5lIil9LDNlMyk7YnJlYWt9fX1wYXJzZUVycm9yc0FuZFdhcm5pbmdzKGEpe3ZhciBkPXRoaXM7cmV0dXJuIFEoZnVuY3Rpb24qKCl7aWYoIWF8fCFhLmxvZ0ZpbGV8fCJz'@; put 'dHJpbmciIT10eXBlb2YgYS5sb2dGaWxlfHx2b2lkIDAhPT1hLmxvZ0Vycm9yc3x8dm9pZCAwIT09YS5sb2dXYXJuaW5ncylyZXR1cm47bGV0IGg9W10sZj1bXSx2PWEubG9nRmlsZS5zcGxpdCgiXG4iKSxNPVsuLi52XTtmb3IobGV0IEk9MDtJPHYubGVuZ3RoO0krKyl7aWYoLzwuKj5FUlJP'@; put 'Ui9nbS50ZXN0KHZbSV0pKXtsZXQgRz12W0ldLnN1YnN0cmluZyh2W0ldLmluZGV4T2YoIkUiKSx2W0ldLmxlbmd0aC0xKTtoLnB1c2goRyl9ZWxzZS9eRVJST1IvZ20udGVzdCh2W0ldKSYmKGgucHVzaCh2W0ldKSwiU0FTVklZQSIhPT1kLnNlcnZlclR5cGUmJih2W0ldPSc8Zm9udCBjbGFz'@; put 'cz0iZXJyb3ItbGluZSI+Jyt2W0ldKyI8L2ZvbnQ+IikpO2lmKC88Lio+V0FSTklORy9nbS50ZXN0KHZbSV0pKXtsZXQgRz12W0ldLnN1YnN0cmluZyh2W0ldLmluZGV4T2YoIlciKSx2W0ldLmxlbmd0aC0xKTtmLnB1c2goRyl9ZWxzZS9eV0FSTklORy9nbS50ZXN0KHZbSV0pJiYoZi5wdXNo'@; put 'KHZbSV0pLCJTQVNWSVlBIiE9PWQuc2VydmVyVHlwZSYmKHZbSV09Jzxmb250IGNsYXNzPSJ3YXJuaW5nLWxpbmUiPicrdltJXSsiPC9mb250PiIpKX1kLmxvZ2dlclNlcnZpY2UubG9nKGYpLCJTQVNWSVlBIj09PWQuc2VydmVyVHlwZSYmKGEub3JpZ2luYWxMb2dGaWxlPU0uam9pbigiXG4i'@; put 'KSxhLmxvZ0ZpbGVMaW5lTWFwPXt9LGguZm9yRWFjaChJPT57Zm9yKGxldCBHPTA7RzxNLmxlbmd0aDtHKyspaWYoTVtHXS5pbmNsdWRlcyhJKSl7YS5sb2dGaWxlTGluZU1hcC5lcnJvcnN8fChhLmxvZ0ZpbGVMaW5lTWFwLmVycm9ycz17fSksYS5sb2dGaWxlTGluZU1hcC5lcnJvcnNbSV09'@; put 'RzticmVha319KSxmLmZvckVhY2goST0+e2ZvcihsZXQgRz0wO0c8TS5sZW5ndGg7RysrKWlmKE1bR10uaW5jbHVkZXMoSSkpe2EubG9nRmlsZUxpbmVNYXAud2FybmluZ3N8fChhLmxvZ0ZpbGVMaW5lTWFwLndhcm5pbmdzPXt9KSxhLmxvZ0ZpbGVMaW5lTWFwLndhcm5pbmdzW0ldPUc7YnJl'@; put 'YWt9fSkpLGEubG9nRmlsZT12LmpvaW4oIlxuIiksYS5sb2dFcnJvcnM9aCxhLmxvZ1dhcm5pbmdzPWZ9KSgpfWRvd25sb2FkTG9nKGEpe2NvbnN0IGQ9KG5ldyBEYXRlKS52YWx1ZU9mKCk7dGhpcy5oZWxwZXJTZXJ2aWNlLmRvd25sb2FkVGV4dEZpbGUoYGxvZ0ZpbGUtJHtkfWAsYSl9ZG93'@; put 'bmxvYWRTb3VyY2VDb2RlKGEpe2NvbnN0IGQ9KG5ldyBEYXRlKS52YWx1ZU9mKCk7dGhpcy5oZWxwZXJTZXJ2aWNlLmRvd25sb2FkVGV4dEZpbGUoYHNvdXJjZUNvZGUtJHtkfWAsYSl9ZG93bmxvYWRHZW5lcmF0ZWRDb2RlKGEpe2NvbnN0IGQ9KG5ldyBEYXRlKS52YWx1ZU9mKCk7dGhpcy5o'@; put 'ZWxwZXJTZXJ2aWNlLmRvd25sb2FkVGV4dEZpbGUoYGdlbmVyYXRlZENvZGUtJHtkfWAsYSl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUoVm8pLCRlKFNkKSwkZShidSkpfX1zdGF0aWN7dGhpcy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxl'@; put 'Y3RvcnM6W1siYXBwLXJlcXVlc3RzLW1vZGFsIl1dLGlucHV0czp7b3BlbmVkOiJvcGVuZWQifSxvdXRwdXRzOntvcGVuZWRDaGFuZ2U6Im9wZW5lZENoYW5nZSJ9LGRlY2xzOjgsdmFyczo0LGNvbnN0czpbWyJjbHJNb2RhbFNpemUiLCJ4bCIsMSwicmVxdWVzdHMtbW9kYWwiLDMsImNsck1v'@; put 'ZGFsT3BlbkNoYW5nZSIsImNsck1vZGFsT3BlbiJdLFsxLCJtb2RhbC10aXRsZSJdLFsxLCJtdC0wIiwiZC1pbmxpbmUtYmxvY2siXSxbMSwibW9kYWwtYm9keSIsImgtNzB2aCJdLFsiY2xhc3MiLCJuby1yZXFzIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbMSwibm8tcmVxcyJdLFszLCJpZCIs'@; put 'ImNsclN0YWNrVmlld0xldmVsIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMywiaWQiLCJjbHJTdGFja1ZpZXdMZXZlbCJdLFsxLCJtbC0xMCJdLFsxLCJjb250ZW50Il0sWyJjbHJUYWJMaW5rIiwiIl0sWzMsImNscklmQWN0aXZlQ2hhbmdlIiwiY2xySWZBY3RpdmUiXSxbInNoYXBlIiwiZXhj'@; put 'bGFtYXRpb24tY2lyY2xlIiwxLCJtYi01IiwiY29sb3ItZ3JlZW4iXSxbInNoYXBlIiwiZXhjbGFtYXRpb24tdHJpYW5nbGUiLDEsIm1iLTUiLCJjb2xvci1yZWQiXSxbImNsYXNzIiwiZXJyLWxpbmtzIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImxvZy13cmFwcGVyIHNhc2xvZyIsMywiaW5uZXJI'@; put 'VE1MIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImxvZy13cmFwcGVyIHNhc2xvZyB2aXlhIiwzLCJ0ZXh0Q29udGVudCIsNCwibmdJZiJdLFsidHlwZSIsImJ1dHRvbiIsImNsYXNzIiwiYnRuIGJ0bi1saW5rIiwzLCJjbGljayIsNCwibmdJZiJdLFsxLCJlcnItbGlua3MiXSxbInNoYXBlIiwiZXhj'@; put 'bGFtYXRpb24tdHJpYW5nbGUiLDEsImNvbG9yLXJlZCJdLFszLCJjbGljayIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzMsImNsaWNrIl0sWzEsImNsci10cmVlbm9kZS1saW5rIl0sWyJzaGFwZSIsImV4Y2xhbWF0aW9uLWNpcmNsZSIsMSwiY29sb3ItZ3JlZW4iXSxbMSwibG9nLXdyYXBwZXIi'@; put 'LCJzYXNsb2ciLDMsImlubmVySFRNTCJdLFsxLCJsb2ctd3JhcHBlciIsInNhc2xvZyIsInZpeWEiLDMsInRleHRDb250ZW50Il0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tbGluayIsMywiY2xpY2siXSxbMSwibG9nLXdyYXBwZXIiXSxbImNsclRhYkxpbmsiLCIiLDEsIndvcmst'@; put 'dGFibGVzLWRyb3Bkb3duIiwzLCJjbHJDbG9zZU1lbnVPbkl0ZW1DbGljayJdLFsiY2xyRHJvcGRvd25UcmlnZ2VyIiwiIl0sWyJzaGFwZSIsImNhcmV0IGRvd24iXSxbNCwiY2xySWZPcGVuIl0sWyJjbGFzcyIsImRyb3Bkb3duLWl0ZW0iLCJjbHJEcm9wZG93bkl0ZW0iLCIiLDMsInNlbGVj'@; put 'dGVkIiwiY2xpY2siLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsiY2xyRHJvcGRvd25JdGVtIiwiIiwxLCJkcm9wZG93bi1pdGVtIiwzLCJjbGljayJdLFsiY2xhc3MiLCJtdC0xMCIsNCwibmdJZiJdLFsxLCJtaW4taC01MHZoIl0sWyJjbGFzcyIsInRhYmxlIG10LTEwIiw0LCJuZ0lmIl0sWzEs'@; put 'Im10LTEwIl0sWzEsInRhYmxlIiwibXQtMTAiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGQsaCl7MSZkJiYoZGUoMCwiY2xyLW1vZGFsIiwwKSxGdCgiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbih2KXtyZXR1cm4gaC5tb2RhbE9wZW5DaGFuZ2Uodil9'@; put 'KSxkZSgxLCJoMyIsMSksT2UoMiwiIFJlcXVlc3QgSGlzdG9yeSAiKSxkZSgzLCJwIiwyKSxPZSg0KSxoZSgpKCksZGUoNSwiZGl2IiwzKSxndCg2LG9ZZSwyLDAsInAiLDQpKDcsUlllLDIsMSwiY2xyLXN0YWNrLXZpZXciLDUpLGhlKCkoKSksMiZkJiYoTWUoImNsck1vZGFsT3BlbiIsaC5v'@; put 'cGVuZWQpLGZlKDQpLExyKCJBcHAgTG9jYXRpb246ICIsaC5zYXNqc0NvbmZpZy5hcHBMb2MsIiIpLGZlKDIpLE1lKCJuZ0lmIiwobnVsbD09aC5zYXNqc1JlcXVlc3RzP251bGw6aC5zYXNqc1JlcXVlc3RzLmxlbmd0aCk8MSksZmUoKSxNZSgibmdJZiIsaC5vcGVuZWQmJihudWxsPT1oLnNh'@; put 'c2pzUmVxdWVzdHM/bnVsbDpoLnNhc2pzUmVxdWVzdHMubGVuZ3RoKT4wKSl9LGRlcGVuZGVuY2llczpbUXMsYmEseEcsS2RlLE1HLCRkZSxBaCxQZCxoZyxPbCxydSxZdSxMYixQMix2bSxibSx4Nyx5bSxtbSxTNyxzZyxnNyxtNyxQYix4Ul0sZW5jYXBzdWxhdGlvbjoyfSl9fXJldHVybiBj'@; put 'fSkoKTtjbGFzcyBPWWV7Y29uc3RydWN0b3IoKXt0aGlzLnNhc1NlcnZpY2U9bnVsbCx0aGlzLm1lc3NhZ2U9IiIsdGhpcy5kZXRhaWxzPW5ldyBNaGV9fWNsYXNzIE1oZXt9ZnVuY3Rpb24gUFllKGMsbCl7aWYoMSZjJiYoZGUoMCwicCIsOCksT2UoMSwiIFNBUyBTZXJ2aWNlOiAiKSxkZSgy'@; put 'LCJzdHJvbmciKSxPZSgzKSxoZSgpKCkpLDImYyl7Y29uc3QgYT1MZSgpO2ZlKDMpLFNyKGEuZGF0YS5zYXNTZXJ2aWNlKX19ZnVuY3Rpb24gRlllKGMsbCl7aWYoMSZjJiYoZGUoMCwiZGl2Iiw5KSgxLCJwIikoMiwic3Ryb25nIiksT2UoMywiU1lTV0FSTklOR1RFWFQ6IiksaGUoKSxPZSg0'@; put 'KSxoZSgpLGRlKDUsInAiKSg2LCJzdHJvbmciKSxPZSg3LCJTWVNFUlJPUlRFWFQ6IiksaGUoKSxPZSg4KSxoZSgpLGRlKDksInAiKSgxMCwic3Ryb25nIiksT2UoMTEsIk1BQzoiKSxoZSgpLE9lKDEyKSxoZSgpKCkpLDImYyl7Y29uc3QgYT1MZSgpO2ZlKDQpLExyKCIgIixhLmRhdGEuZGV0'@; put 'YWlscy5TWVNXQVJOSU5HVEVYVCwiIiksZmUoNCksTHIoIiAiLGEuZGF0YS5kZXRhaWxzLlNZU0VSUk9SVEVYVCwiIiksZmUoNCksTHIoIiAiLGEuZGF0YS5kZXRhaWxzLk1BQywiIil9fWZ1bmN0aW9uIEhZZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImJ1dHRvbiIsMTApLEZ0'@; put 'KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoKS5vcGVuQ29uZmlndXJhdG9yKCkpfSksT2UoMSwiIE9wZW4gY29uZmlndXJhdG9yICIpLGhlKCl9fWZ1bmN0aW9uIE5ZZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImJ1dHRvbiIsMTApLEZ0KCJjbGljayIs'@; put 'ZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoKS5vcGVuUmVxdWVzdHNNb2RhbCgpKX0pLE9lKDEsIiBPcGVuIHJlcXVlc3RzIG1vZGFsICIpLGhlKCl9fWZ1bmN0aW9uIFZZZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImJ1dHRvbiIsMTApLEZ0KCJjbGljayIsZnVuY3Rp'@; put 'b24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoKS5kb3dubG9hZExvZygpKX0pLE9lKDEsIiBEb3dubG9hZCBsb2cgIiksaGUoKX19ZnVuY3Rpb24gQlllKGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiYnV0dG9uIiwxMCksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxD'@; put 'dChMZSgpLmNsb3NlQWJvcnRNb2RhbCgpKX0pLE9lKDEsIiBDbG9zZSAiKSxoZSgpfX1mdW5jdGlvbiBqWWUoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJidXR0b24iLDEwKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKCkucmVsb2FkKCkpfSksT2Uo'@; put 'MSwiIFJlbG9hZCAiKSxoZSgpfX1sZXQgelllPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZil7dGhpcy5oZWxwZXJTZXJ2aWNlPWEsdGhpcy5ldmVudFNlcnZpY2U9ZCx0aGlzLnNhc1NlcnZpY2U9aCx0aGlzLnJvdXRlcj1mLHRoaXMub25Db25maXJtTW9kYWxDbGljaz1uZXcg'@; put 'S3IsdGhpcy5kYXRhPW5ldyBPWWUsdGhpcy5mb3JjZVJlbG9hZD0hMSx0aGlzLm1vZGFsRW5hYmxlZD0hMCx0aGlzLmRlZmF1bHREYXRhPXttb2RhbFRpdGxlOiJBYm9ydCBNZXNzYWdlIixzYXNTZXJ2aWNlOm51bGwsbWVzc2FnZToiIixkZXRhaWxzOm5ldyBNaGV9fW5nT25Jbml0KCl7bGV0'@; put 'IGE9ey4uLnRoaXMuZGVmYXVsdERhdGEsLi4udGhpcy5kYXRhfTt0aGlzLmRhdGE9YX1zaG93Q29uZmlndXJhdG9yQnV0dG9uKGEpe2NvbnN0IGQ9dGhpcy5zYXNTZXJ2aWNlLmdldFNhc2pzQ29uZmlnKCk7cmV0dXJuIGE/LmluY2x1ZGVzKCJzdGFydHVwc2VydmljZSIpJiZkLnNlcnZlclR5'@; put 'cGU9PT1OMC5ZLlNhczl9Y2xvc2VBYm9ydE1vZGFsKCl7dGhpcy5vbkNvbmZpcm1Nb2RhbENsaWNrLmVtaXQoKX1vcGVuQ29uZmlndXJhdG9yKCl7dGhpcy5ldmVudFNlcnZpY2Uuc3RhcnR1cERhdGFMb2FkZWQoKSx0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvZGVwbG95IiksdGhpcy5j'@; put 'bG9zZUFib3J0TW9kYWwoKX1kb3dubG9hZExvZygpe3RoaXMuaGVscGVyU2VydmljZS5kb3dubG9hZFRleHRGaWxlKGAke3RoaXMuZGF0YS5zYXNTZXJ2aWNlfS1MT0dgLHRoaXMuZGF0YS5kZXRhaWxzPy5MT0d8fCJFcnJvciBwYXJzaW5nIHRoZSBsb2ciKX1vcGVuUmVxdWVzdHNNb2RhbCgp'@; put 'e3RoaXMuZXZlbnRTZXJ2aWNlLm9wZW5SZXF1ZXN0c01vZGFsKCl9cmVsb2FkKCl7bG9jYXRpb24ucmVsb2FkKCl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUoYnUpLCRlKG1jKSwkZShWbyksJGUoTG8pKX19c3RhdGlje3RoaXMuXHUwMjc1'@; put 'Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImFwcC1pbmZvLW1vZGFsIl1dLGlucHV0czp7ZGF0YToiZGF0YSIsZm9yY2VSZWxvYWQ6ImZvcmNlUmVsb2FkIn0sb3V0cHV0czp7b25Db25maXJtTW9kYWxDbGljazoib25Db25maXJtTW9kYWxDbGljayJ9LGRlY2xzOjEzLHZhcnM6MTIsY29u'@; put 'c3RzOltbImFwcERyYWdOZHJvcCIsIiIsMSwiY2xyLWFib3J0LW1vZGFsIiwzLCJjbHJNb2RhbE9wZW5DaGFuZ2UiLCJjbHJNb2RhbE9wZW4iLCJjbHJNb2RhbFNpemUiLCJjbHJNb2RhbENsb3NhYmxlIl0sWzEsIm1vZGFsLXRpdGxlIl0sWyJjbGFzcyIsInNhc1NlcnZpY2UgbXQtMCIsNCwi'@; put 'bmdJZiJdLFsxLCJtb2RhbC1ib2R5Il0sWzEsImFib3J0TXNnIiwzLCJpbm5lckhUTUwiXSxbImNsYXNzIiwic3lzdGV4dCIsNCwibmdJZiJdLFsxLCJtb2RhbC1mb290ZXIiXSxbInR5cGUiLCJidXR0b24iLCJjbGFzcyIsImJ0biBidG4tcHJpbWFyeSIsMywiY2xpY2siLDQsIm5nSWYiXSxb'@; put 'MSwic2FzU2VydmljZSIsIm10LTAiXSxbMSwic3lzdGV4dCJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXByaW1hcnkiLDMsImNsaWNrIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGQsaCl7MSZkJiYoZGUoMCwiY2xyLW1vZGFsIiwwKSxwaSgiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5j'@; put 'dGlvbih2KXtyZXR1cm4gZ2koaC5tb2RhbEVuYWJsZWQsdil8fChoLm1vZGFsRW5hYmxlZD12KSx2fSksZGUoMSwiaDMiLDEpLE9lKDIpLGd0KDMsUFllLDQsMSwicCIsMiksaGUoKSxkZSg0LCJkaXYiLDMpLFd0KDUsImRpdiIsNCksZ3QoNixGWWUsMTMsMywiZGl2Iiw1KSxoZSgpLGRlKDcs'@; put 'ImRpdiIsNiksZ3QoOCxIWWUsMiwwLCJidXR0b24iLDcpKDksTlllLDIsMCwiYnV0dG9uIiw3KSgxMCxWWWUsMiwwLCJidXR0b24iLDcpKDExLEJZZSwyLDAsImJ1dHRvbiIsNykoMTIsalllLDIsMCwiYnV0dG9uIiw3KSxoZSgpKCkpLDImZCYmKGZpKCJjbHJNb2RhbE9wZW4iLGgubW9kYWxF'@; put 'bmFibGVkKSxNZSgiY2xyTW9kYWxTaXplIiwieGwiKSgiY2xyTW9kYWxDbG9zYWJsZSIsIWguZm9yY2VSZWxvYWQpLGZlKDIpLExyKCIgIixoLmRhdGEubW9kYWxUaXRsZSwiICIpLGZlKCksTWUoIm5nSWYiLGguZGF0YS5zYXNTZXJ2aWNlJiZoLmRhdGEuc2FzU2VydmljZS5sZW5ndGg+MCks'@; put 'ZmUoMiksTWUoImlubmVySFRNTCIsaC5kYXRhLm1lc3NhZ2UsVjQpLGZlKCksTWUoIm5nSWYiLG51bGwhPT1oLmRhdGEuZGV0YWlscyksZmUoMiksTWUoIm5nSWYiLGguc2hvd0NvbmZpZ3VyYXRvckJ1dHRvbihoLmRhdGEuc2FzU2VydmljZSkpLGZlKCksTWUoIm5nSWYiLG51bGwhPT1oLmRh'@; put 'dGEuZGV0YWlscyksZmUoKSxNZSgibmdJZiIsKG51bGw9PWguZGF0YS5kZXRhaWxzP251bGw6aC5kYXRhLmRldGFpbHMuTE9HKSYmKG51bGw9PWguZGF0YS5kZXRhaWxzfHxudWxsPT1oLmRhdGEuZGV0YWlscy5MT0c/bnVsbDpoLmRhdGEuZGV0YWlscy5MT0cudHJpbSgpLmxlbmd0aCk+MCks'@; put 'ZmUoKSxNZSgibmdJZiIsIWguZm9yY2VSZWxvYWQpLGZlKCksTWUoIm5nSWYiLGguZm9yY2VSZWxvYWQpKX0sZGVwZW5kZW5jaWVzOltiYSxydSxZdSxzRV0sZW5jYXBzdWxhdGlvbjoyfSl9fXJldHVybiBjfSkoKTtjb25zdCBVWWU9KCk9PlsiLyJdLHhoZT0oKT0+WyIvdmlldyJdLEVoZT0o'@; put 'KT0+WyIvaG9tZSJdLGtHPSgpPT5bIi9yZXZpZXcvc3VibWl0dGVkIl0sWlllPSgpPT5bIi9yZXZpZXcvYXBwcm92ZSJdLFdZZT0oKT0+WyIvcmV2aWV3L2hpc3RvcnkiXTtmdW5jdGlvbiBZWWUoYyxsKXsxJmMmJihhaSgwKSxkZSgxLCJkaXYiLDE3KSgyLCJkaXYiLDE4KSgzLCJkaXYiLDE5'@; put 'KSxXdCg0LCJjZHMtaWNvbiIsMjApLGhlKCksZGUoNSwiZGl2IiwyMSksT2UoNiwiIERhdGEgQ29udHJvbGxlciAoRlJFRSBUaWVyKSAtIHRvIHVwZ3JhZGUgY29udGFjdCAiKSxXdCg3LCJjb250YWN0LWxpbmsiLDIyKSxoZSgpKCkoKSxkZSg4LCJhIiwyMyksT2UoOSwiVXBkYXRlIExpY2Vu'@; put 'Y2UgS2V5IiksaGUoKSxzaSgpKX1mdW5jdGlvbiBHWWUoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTthaSgwKSxkZSgxLCJkaXYiLDE3KSgyLCJkaXYiLDE4KSgzLCJkaXYiLDE5KSxXdCg0LCJjZHMtaWNvbiIsMjApLGhlKCksZGUoNSwiZGl2IiwyMSksT2UoNiwiIERhdGEgQ29udHJvbGxl'@; put 'ciAoRlJFRSBUaWVyKSAtIFByb2JsZW0gd2l0aCBsaWNlbmNlICIpLGhlKCkoKSgpLGRlKDcsImEiLDI0KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7d3QoYSk7Y29uc3QgaD1MZSgzKTtyZXR1cm4gQ3QoaC5saWNlbmNlUHJvYmxlbURldGFpbHMoaC5saWNlbmNlUHJvYmxlbS52YWx1ZSkpfSks'@; put 'T2UoOCwiTW9yZSBkZXRhaWxzIiksaGUoKSxzaSgpfX1mdW5jdGlvbiAkWWUoYyxsKXtpZigxJmMmJihkZSgwLCJkaXYiLDE2KSxndCgxLFlZZSwxMCwwLCJuZy1jb250YWluZXIiLDEpKDIsR1llLDksMCwibmctY29udGFpbmVyIiwxKSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoMik7ZmUoKSxN'@; put 'ZSgibmdJZiIsbnVsbD09PWEubGljZW5jZVByb2JsZW0udmFsdWUpLGZlKCksTWUoIm5nSWYiLG51bGwhPT1hLmxpY2VuY2VQcm9ibGVtLnZhbHVlKX19ZnVuY3Rpb24gS1llKGMsbCl7MSZjJiYoZGUoMCwiYSIsMjMpLE9lKDEsIlVwZGF0ZSBMaWNlbmNlIEtleSIpLGhlKCkpfWZ1bmN0aW9u'@; put 'IFhZZShjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIsMjUpKDEsImRpdiIsMTcpKDIsImRpdiIsMTgpKDMsImRpdiIsMTkpLFd0KDQsImNkcy1pY29uIiwyMCksaGUoKSxkZSg1LCJkaXYiLDIxKSxPZSg2KSxXdCg3LCJjb250YWN0LWxpbmsiLDIyKSxPZSg4KSxoZSgpKCkoKSxndCg5LEtZZSwy'@; put 'LDAsImEiLDI2KSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoMik7ZmUoNiksQnUoIiBUaGlzIGxpY2Vuc2Uga2V5IHdpbGwgZXhwaXJlIGluICIsYS5saWNlbnNlRXhwaXJpbmdEYXlzLCIgIiwxPT09YS5saWNlbnNlRXhwaXJpbmdEYXlzPyJkYXkiOiJkYXlzIiwiLiBQbGVhc2UgY29udGFjdCAi'@; put 'KSxmZSgyKSxMcigiIG9yIHlvdXIgcmVzZWxsZXIgdG8gYXJyYW5nZSBhZGRpdGlvbmFsIGxpY2VuY2UgZm9yIHNpdGUgaWQgIixhLnN5c3NpdGUuZ2V0VmFsdWUoKSwiLiAiKSxmZSgpLE1lKCJuZ0lmIiwhYS5mcmVlVGllckJhbm5lcil9fWZ1bmN0aW9uIHFZZShjLGwpezEmYyYmKGRlKDAs'@; put 'ImEiLDIzKSxPZSgxLCJVcGRhdGUgTGljZW5jZSBLZXkiKSxoZSgpKX1mdW5jdGlvbiBKWWUoYyxsKXtpZigxJmMmJihkZSgwLCJkaXYiLDI1KSgxLCJkaXYiLDE3KSgyLCJkaXYiLDE4KSgzLCJkaXYiLDE5KSxXdCg0LCJjZHMtaWNvbiIsMjApLGhlKCksZGUoNSwiZGl2IiwyMSksT2UoNiwi'@; put 'IFRoZSByZWdpc3RlcmVkIG51bWJlciBvZiB1c2VycyBleGNlZWRzIHRoZSBsaW1pdCBzcGVjaWZpZWQgZm9yIHlvdXIgbGljZW5zZS4gUGxlYXNlIGNvbnRhY3QgIiksV3QoNywiY29udGFjdC1saW5rIiwyMiksT2UoOCksaGUoKSgpKCksZ3QoOSxxWWUsMiwwLCJhIiwyNiksaGUoKSksMiZj'@; put 'KXtjb25zdCBhPUxlKDIpO2ZlKDgpLExyKCIgb3IgeW91ciByZXNlbGxlciB0byBhcnJhbmdlIGFkZGl0aW9uYWwgbGljZW5jZSBmb3Igc2l0ZSBpZCAiLGEuc3lzc2l0ZS5nZXRWYWx1ZSgpLCIuICIpLGZlKCksTWUoIm5nSWYiLCFhLmxpY2Vuc2VFeHBpcmluZ0RheXMmJiFhLmZyZWVUaWVy'@; put 'QmFubmVyKX19ZnVuY3Rpb24gUVllKGMsbCl7aWYoMSZjJiYoYWkoMCksZ3QoMSwkWWUsMywyLCJkaXYiLDE0KSgyLFhZZSwxMCw0LCJkaXYiLDE1KSgzLEpZZSwxMCwyLCJkaXYiLDE1KSxzaSgpKSwyJmMpe2NvbnN0IGE9TGUoKTtmZSgpLE1lKCJuZ0lmIixhLmZyZWVUaWVyQmFubmVyJiYo'@; put 'IWEubGljZW5zZUV4cGlyaW5nRGF5c3x8YS5saWNlbnNlRXhwaXJpbmdEYXlzPDApKSxmZSgpLE1lKCJuZ0lmIixhLmxpY2Vuc2VFeHBpcmluZ0RheXMmJiFhLmZyZWVUaWVyQmFubmVyKSxmZSgpLE1lKCJuZ0lmIixhLmFwcE92ZXJDYXBhY2l0eSl9fWZ1bmN0aW9uIGVHZShjLGwpe2lmKDEm'@; put 'Yyl7Y29uc3QgYT1PbigpO2RlKDAsImRpdiIsMjcpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoKS50b2dnbGVTaWRlYmFyKCkpfSksV3QoMSwiY2xyLWljb24iLDI4KSxoZSgpfX1mdW5jdGlvbiB0R2UoYyxsKXsxJmMmJihkZSgwLCJhIiwyOSksV3QoMSwiaW1n'@; put 'IiwzMCkoMiwiaW1nIiwzMSksaGUoKSksMiZjJiZNZSgicm91dGVyTGluayIsWm8oMSxVWWUpKX1mdW5jdGlvbiBuR2UoYyxsKXsxJmMmJihkZSgwLCJhIiksV3QoMSwic3BhbiIsMzIpLGhlKCkpfWZ1bmN0aW9uIHJHZShjLGwpezEmYyYmKGRlKDAsImNsci1kcm9wZG93bi1tZW51Iiw0MCko'@; put 'MSwiYSIsNDEpLE9lKDIsIlZJRVciKSxoZSgpLGRlKDMsImEiLDQxKSxPZSg0LCJMT0FEIiksaGUoKSxkZSg1LCJhIiw0MSksT2UoNiwiUkVWSUVXIiksaGUoKSgpKSwyJmMmJihmZSgpLE1lKCJyb3V0ZXJMaW5rIixabygzLHhoZSkpLGZlKDIpLE1lKCJyb3V0ZXJMaW5rIixabyg0LEVoZSkp'@; put 'LGZlKDIpLE1lKCJyb3V0ZXJMaW5rIixabyg1LGtHKSkpfWZ1bmN0aW9uIGlHZShjLGwpe2lmKDEmYyYmKGFpKDApLGRlKDEsImRpdiIsMzMpKDIsImNsci1kcm9wZG93biIpKDMsImJ1dHRvbiIsMzQpLE9lKDQsIiBNZW51ICIpLGhlKCksZ3QoNSxyR2UsNyw2LCJjbHItZHJvcGRvd24tbWVu'@; put 'dSIsMzUpLGhlKCkoKSxkZSg2LCJkaXYiLDM2KSg3LCJhIiwzNyksT2UoOCwiVklFVyIpLGhlKCksZGUoOSwiYSIsMzgpLE9lKDEwLCJMT0FEIiksaGUoKSxkZSgxMSwiYSIsMzkpLE9lKDEyLCJSRVZJRVciKSxoZSgpKCksc2koKSksMiZjKXtjb25zdCBhPUxlKCk7ZmUoNyksTWUoInJvdXRl'@; put 'ckxpbmsiLFpvKDcseGhlKSksZmUoMiksVHIoImFjdGl2ZSIsYS5yb3V0ZXIudXJsLmluY2x1ZGVzKCJlZGl0b3IiKXx8YS5yb3V0ZXIudXJsLmluY2x1ZGVzKCJlZGl0LXJlY29yZCIpfHxhLnJvdXRlci51cmwuaW5jbHVkZXMoImhvbWUiKSksTWUoInJvdXRlckxpbmsiLFpvKDgsRWhlKSks'@; put 'ZmUoMiksVHIoImFjdGl2ZSIsYS5yb3V0ZXIudXJsLmluY2x1ZGVzKCJzdWJtaXR0ZWQiKXx8YS5yb3V0ZXIudXJsLmluY2x1ZGVzKCJhcHByb3ZlIil8fGEucm91dGVyLnVybC5pbmNsdWRlcygiaGlzdG9yeSIpKSxNZSgicm91dGVyTGluayIsWm8oOSxrRykpfX1mdW5jdGlvbiBhR2UoYyxs'@; put 'KXtpZigxJmMmJihkZSgwLCJuYXYiLDQyKSgxLCJ1bCIsNDMpKDIsImxpIiw0NCkoMywiYSIsMzcpLE9lKDQsIlNVQk1JVCIpLGhlKCkoKSxkZSg1LCJsaSIsNDQpKDYsImEiLDM3KSxPZSg3LCJBUFBST1ZFIiksaGUoKSgpLGRlKDgsImxpIiw0NCkoOSwiYSIsMzcpLE9lKDEwLCJISVNUT1JZ'@; put 'IiksaGUoKSgpKCkoKSksMiZjKXtjb25zdCBhPUxlKCk7ZmUoMyksTWUoInJvdXRlckxpbmsiLFpvKDUsa0cpKSxmZSgzKSxUcigiYWN0aXZlIixhLnJvdXRlci51cmwuaW5jbHVkZXMoImFwcHJvdmUiKSksTWUoInJvdXRlckxpbmsiLFpvKDYsWlllKSksZmUoMyksTWUoInJvdXRlckxpbmsi'@; put 'LFpvKDcsV1llKSl9fWZ1bmN0aW9uIHNHZShjLGwpezEmYyYmV3QoMCwiYXBwLWFsZXJ0cyIpfWZ1bmN0aW9uIG9HZShjLGwpezEmYyYmV3QoMCwicm91dGVyLW91dGxldCIpfWZ1bmN0aW9uIGxHZShjLGwpezEmYyYmV3QoMCwiYXBwLWFsZXJ0cyIpfWZ1bmN0aW9uIGNHZShjLGwpe2lmKDEm'@; put 'Yyl7Y29uc3QgYT1PbigpO2RlKDAsImFwcC1pbmZvLW1vZGFsIiw0NSksRnQoIm9uQ29uZmlybU1vZGFsQ2xpY2siLGZ1bmN0aW9uKCl7Y29uc3QgaD13dChhKS4kaW1wbGljaXQ7cmV0dXJuIEN0KExlKCkuY2xvc2VBYm9ydE1vZGFsKGguaWQpKX0pLGhlKCl9aWYoMiZjKXtjb25zdCBhPWwu'@; put 'JGltcGxpY2l0LGQ9TGUoKTtNZSgiZGF0YSIsYSkoImZvcmNlUmVsb2FkIiwhZC5zdGFydHVwRGF0YUxvYWRlZCYmMT09PWQuc2FzanNBYm9ydHMubGVuZ3RoKX19ZnVuY3Rpb24gdUdlKGMsbCl7MSZjJiYoZGUoMCwiZGl2Iiw0OSksV3QoMSwiZGl2Iiw1MCkoMiwiZGl2Iiw1MSkoMywiZGl2'@; put 'Iiw1MiksaGUoKSl9ZnVuY3Rpb24gZEdlKGMsbCl7aWYoMSZjJiYoZGUoMCwiZGl2Iiw0NiksV3QoMSwiaW1nIiw0NyksZ3QoMix1R2UsNCwwLCJkaXYiLDQ4KSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoKTtmZSgyKSxNZSgibmdJZiIsbnVsbD09PWEuYXBwQWN0aXZlKX19RW8uYWRkSWNvbnMo'@; put 'WyJtb29uIix7b3V0bGluZTonPHBhdGggZD0iTTE4LjExIDMyLjAwMDNDMTAuMzMgMzIuMDAwMyA0IDI1LjcyMDMgNCAxNy45OTAzQzQgMTAuMjYwMyAxMC4wMyA0LjIwMDMgMTcuNzMgNC4wMDAzQzE4LjE1IDMuOTkwMyAxOC41MiA0LjIzMDMgMTguNjggNC42MTAzQzE4Ljg0IDQuOTkwMyAx'@; put 'OC43NSA1LjQzMDMgMTguNDYgNS43MjAzQzE2LjY5IDcuNDUwMyAxNS43MSA5Ljc2MDMgMTUuNzEgMTIuMjEwM0MxNS43MSAxNy4yNDAzIDE5LjgzIDIxLjMzMDMgMjQuOTEgMjEuMzMwM0MyNi45IDIxLjMzMDMgMjguOCAyMC43MDAzIDMwLjQxIDE5LjUxMDNDMzAuNzQgMTkuMjcwMyAzMS4x'@; put 'OSAxOS4yNTAzIDMxLjUzIDE5LjQ2MDNDMzEuODggMTkuNjgwMyAzMi4wNiAyMC4wODAzIDMxLjk5IDIwLjQ5MDNDMzAuNzggMjcuMTYwMyAyNC45NCAzMi4wMDAzIDE4LjExIDMyLjAwMDNaTTE1LjQzIDYuMjkwM0M5Ljk5IDcuNDgwMyA2IDEyLjI0MDMgNiAxNy45OTAzQzYgMjQuNjEwMyAx'@; put 'MS40MyAzMC4wMDAzIDE4LjExIDMwLjAwMDNDMjMuMTYgMzAuMDAwMyAyNy41OCAyNi45MjAzIDI5LjM3IDIyLjQwMDNDMjcuOTcgMjMuMDEwMyAyNi40NiAyMy4zMjAzIDI0LjkxIDIzLjMyMDNDMTguNzQgMjMuMzIwMyAxMy43MSAxOC4zMzAzIDEzLjcxIDEyLjIwMDNDMTMuNzEgMTAuMDcw'@; put 'MyAxNC4zMSA4LjAzMDMgMTUuNDMgNi4yODAzVjYuMjkwM1oiLz4nLHNvbGlkOic8cGF0aCBkPSJNMTguMTEgMzIuMDAwM0MxMC4zMyAzMi4wMDAzIDQgMjUuNzIwMyA0IDE3Ljk5MDNDNCAxMC4yNjAzIDEwLjAzIDQuMjAwMyAxNy43MyA0LjAwMDNDMTguMTUgMy45OTAzIDE4LjUyIDQuMjMw'@; put 'MyAxOC42OCA0LjYxMDNDMTguODQgNC45OTAzIDE4Ljc1IDUuNDMwMyAxOC40NiA1LjcyMDNDMTYuNjkgNy40NTAzIDE1LjcxIDkuNzYwMyAxNS43MSAxMi4yMTAzQzE1LjcxIDE3LjI0MDMgMTkuODMgMjEuMzMwMyAyNC45MSAyMS4zMzAzQzI2LjkgMjEuMzMwMyAyOC44IDIwLjcwMDMgMzAu'@; put 'NDEgMTkuNTEwM0MzMC43NCAxOS4yNzAzIDMxLjE5IDE5LjI1MDMgMzEuNTMgMTkuNDYwM0MzMS44OCAxOS42ODAzIDMyLjA2IDIwLjA4MDMgMzEuOTkgMjAuNDkwM0MzMC43OCAyNy4xNjAzIDI0Ljk0IDMyLjAwMDMgMTguMTEgMzIuMDAwM1oiLz4nfV0sWyJzdW4iLHtvdXRsaW5lOic8cGF0'@; put 'aCBkPSJNOC44MSAxMC4yMkM5LjAxIDEwLjQyIDkuMjYgMTAuNTEgOS41MiAxMC41MUM5Ljc4IDEwLjUxIDEwLjAzIDEwLjQxIDEwLjIzIDEwLjIyQzEwLjYyIDkuODMgMTAuNjIgOS4yIDEwLjIzIDguODFMOC4xMSA2LjY5QzcuNzIgNi4zIDcuMDkgNi4zIDYuNyA2LjY5QzYuMzEgNy4wOCA2'@; put 'LjMxIDcuNzEgNi43IDguMUw4LjgyIDEwLjIySDguODFaTTcgMThDNyAxNy40NSA2LjU1IDE3IDYgMTdIM0MyLjQ1IDE3IDIgMTcuNDUgMiAxOEMyIDE4LjU1IDIuNDUgMTkgMyAxOUg2QzYuNTUgMTkgNyAxOC41NSA3IDE4Wk0xOCA3QzE4LjU1IDcgMTkgNi41NSAxOSA2VjNDMTkgMi40NSAx'@; put 'OC41NSAyIDE4IDJDMTcuNDUgMiAxNyAyLjQ1IDE3IDNWNkMxNyA2LjU1IDE3LjQ1IDcgMTggN1pNMjYuNDkgMTAuNTFDMjYuNzUgMTAuNTEgMjcgMTAuNDEgMjcuMiAxMC4yMkwyOS4zMiA4LjFDMjkuNzEgNy43MSAyOS43MSA3LjA4IDI5LjMyIDYuNjlDMjguOTMgNi4zIDI4LjMgNi4zIDI3'@; put 'LjkxIDYuNjlMMjUuNzkgOC44MUMyNS40IDkuMiAyNS40IDkuODMgMjUuNzkgMTAuMjJDMjUuOTkgMTAuNDIgMjYuMjQgMTAuNTEgMjYuNSAxMC41MUgyNi40OVpNOC44MSAyNS43OEw2LjY5IDI3LjlDNi4zIDI4LjI5IDYuMyAyOC45MiA2LjY5IDI5LjMxQzYuODkgMjkuNTEgNy4xNCAyOS42'@; put 'IDcuNCAyOS42QzcuNjYgMjkuNiA3LjkxIDI5LjUgOC4xMSAyOS4zMUwxMC4yMyAyNy4xOUMxMC42MiAyNi44IDEwLjYyIDI2LjE3IDEwLjIzIDI1Ljc4QzkuODQgMjUuMzkgOS4yMSAyNS4zOSA4LjgyIDI1Ljc4SDguODFaTTMzIDE3SDMwQzI5LjQ1IDE3IDI5IDE3LjQ1IDI5IDE4QzI5IDE4'@; put 'LjU1IDI5LjQ1IDE5IDMwIDE5SDMzQzMzLjU1IDE5IDM0IDE4LjU1IDM0IDE4QzM0IDE3LjQ1IDMzLjU1IDE3IDMzIDE3Wk0xOCA5QzEzLjA0IDkgOSAxMy4wNCA5IDE4QzkgMjIuOTYgMTMuMDQgMjcgMTggMjdDMjIuOTYgMjcgMjcgMjIuOTYgMjcgMThDMjcgMTMuMDQgMjIuOTYgOSAxOCA5'@; put 'Wk0xOCAyNUMxNC4xNCAyNSAxMSAyMS44NiAxMSAxOEMxMSAxNC4xNCAxNC4xNCAxMSAxOCAxMUMyMS44NiAxMSAyNSAxNC4xNCAyNSAxOEMyNSAyMS44NiAyMS44NiAyNSAxOCAyNVpNMjcuMTkgMjUuNzhDMjYuOCAyNS4zOSAyNi4xNyAyNS4zOSAyNS43OCAyNS43OEMyNS4zOSAyNi4xNyAy'@; put 'NS4zOSAyNi44IDI1Ljc4IDI3LjE5TDI3LjkgMjkuMzFDMjguMSAyOS41MSAyOC4zNSAyOS42IDI4LjYxIDI5LjZDMjguODcgMjkuNiAyOS4xMiAyOS41IDI5LjMyIDI5LjMxQzI5LjcxIDI4LjkyIDI5LjcxIDI4LjI5IDI5LjMyIDI3LjlMMjcuMiAyNS43OEgyNy4xOVpNMTggMjlDMTcuNDUg'@; put 'MjkgMTcgMjkuNDUgMTcgMzBWMzNDMTcgMzMuNTUgMTcuNDUgMzQgMTggMzRDMTguNTUgMzQgMTkgMzMuNTUgMTkgMzNWMzBDMTkgMjkuNDUgMTguNTUgMjkgMTggMjlaIi8+Jyxzb2xpZDonPHBhdGggZD0iTTguODEgMjUuNzhMNi42OSAyNy45QzYuMyAyOC4yOSA2LjMgMjguOTIgNi42OSAy'@; put 'OS4zMUM2Ljg5IDI5LjUxIDcuMTQgMjkuNiA3LjQgMjkuNkM3LjY2IDI5LjYgNy45MSAyOS41IDguMTEgMjkuMzFMMTAuMjMgMjcuMTlDMTAuNjIgMjYuOCAxMC42MiAyNi4xNyAxMC4yMyAyNS43OEM5Ljg0IDI1LjM5IDkuMjEgMjUuMzkgOC44MiAyNS43OEg4LjgxWk03IDE4QzcgMTcuNDUg'@; put 'Ni41NSAxNyA2IDE3SDNDMi40NSAxNyAyIDE3LjQ1IDIgMThDMiAxOC41NSAyLjQ1IDE5IDMgMTlINkM2LjU1IDE5IDcgMTguNTUgNyAxOFpNOC44MSAxMC4yMkM5LjAxIDEwLjQyIDkuMjYgMTAuNTEgOS41MiAxMC41MUM5Ljc4IDEwLjUxIDEwLjAzIDEwLjQxIDEwLjIzIDEwLjIyQzEwLjYy'@; put 'IDkuODMgMTAuNjIgOS4yIDEwLjIzIDguODFMOC4xMSA2LjY5QzcuNzIgNi4zIDcuMDkgNi4zIDYuNyA2LjY5QzYuMzEgNy4wOCA2LjMxIDcuNzEgNi43IDguMUw4LjgyIDEwLjIySDguODFaTTI2LjQ5IDEwLjUxQzI2Ljc1IDEwLjUxIDI3IDEwLjQxIDI3LjIgMTAuMjJMMjkuMzIgOC4xQzI5'@; put 'LjcxIDcuNzEgMjkuNzEgNy4wOCAyOS4zMiA2LjY5QzI4LjkzIDYuMyAyOC4zIDYuMyAyNy45MSA2LjY5TDI1Ljc5IDguODFDMjUuNCA5LjIgMjUuNCA5LjgzIDI1Ljc5IDEwLjIyQzI1Ljk5IDEwLjQyIDI2LjI0IDEwLjUxIDI2LjUgMTAuNTFIMjYuNDlaTTE4IDdDMTguNTUgNyAxOSA2LjU1'@; put 'IDE5IDZWM0MxOSAyLjQ1IDE4LjU1IDIgMTggMkMxNy40NSAyIDE3IDIuNDUgMTcgM1Y2QzE3IDYuNTUgMTcuNDUgNyAxOCA3Wk0xOCAyOUMxNy40NSAyOSAxNyAyOS40NSAxNyAzMFYzM0MxNyAzMy41NSAxNy40NSAzNCAxOCAzNEMxOC41NSAzNCAxOSAzMy41NSAxOSAzM1YzMEMxOSAyOS40'@; put 'NSAxOC41NSAyOSAxOCAyOVpNMzMgMTdIMzBDMjkuNDUgMTcgMjkgMTcuNDUgMjkgMThDMjkgMTguNTUgMjkuNDUgMTkgMzAgMTlIMzNDMzMuNTUgMTkgMzQgMTguNTUgMzQgMThDMzQgMTcuNDUgMzMuNTUgMTcgMzMgMTdaTTI3LjE5IDI1Ljc4QzI2LjggMjUuMzkgMjYuMTcgMjUuMzkgMjUu'@; put 'NzggMjUuNzhDMjUuMzkgMjYuMTcgMjUuMzkgMjYuOCAyNS43OCAyNy4xOUwyNy45IDI5LjMxQzI4LjEgMjkuNTEgMjguMzUgMjkuNiAyOC42MSAyOS42QzI4Ljg3IDI5LjYgMjkuMTIgMjkuNSAyOS4zMiAyOS4zMUMyOS43MSAyOC45MiAyOS43MSAyOC4yOSAyOS4zMiAyNy45TDI3LjIgMjUu'@; put 'NzhIMjcuMTlaTTE4IDlDMTMuMDQgOSA5IDEzLjA0IDkgMThDOSAyMi45NiAxMy4wNCAyNyAxOCAyN0MyMi45NiAyNyAyNyAyMi45NiAyNyAxOEMyNyAxMy4wNCAyMi45NiA5IDE4IDlaIi8+J31dLFsiZXhjbGFtYXRpb24tdHJpYW5nbGUiLHtvdXRsaW5lOic8cGF0aCBkPSJNMTcuOTk0MyAy'@; put 'MC44QzE4LjU0NCAyMC44IDE4Ljk5MzggMjAuMzUgMTguOTkzOCAxOS44VjE0QzE4Ljk5MzggMTMuNDUgMTguNTQ0IDEzIDE3Ljk5NDMgMTNDMTcuNDQ0NSAxMyAxNi45OTQ3IDEzLjQ1IDE2Ljk5NDcgMTRWMTkuOEMxNi45OTQ3IDIwLjM1IDE3LjQ0NDUgMjAuOCAxNy45OTQzIDIwLjhaTTE4'@; put 'Ljg0MzkgMjIuOTVDMTguNzIzOSAyMi44NCAxOC41OTQgMjIuNzUgMTguNDU0MSAyMi42OUMxOC4xNjQyIDIyLjU3IDE3LjgyNDMgMjIuNTcgMTcuNTM0NSAyMi42OUMxNy4zOTQ1IDIyLjc1IDE3LjI2NDYgMjIuODQgMTcuMTQ0NiAyMi45NUMxNi45MjQ3IDIzLjE4IDE2Ljc5NDggMjMuNDgg'@; put 'MTYuNzk0OCAyMy44QzE2Ljc5NDggMjQuMTIgMTYuOTI0NyAyNC40MiAxNy4xNDQ2IDI0LjY1QzE3LjI2NDYgMjQuNzYgMTcuMzk0NSAyNC44NSAxNy41MzQ1IDI0LjkxQzE3LjY4NDQgMjQuOTcgMTcuODM0MyAyNSAxNy45OTQzIDI1QzE4LjE1NDIgMjUgMTguMzA0MSAyNC45NyAxOC40NTQx'@; put 'IDI0LjkxQzE4LjU5NCAyNC44NSAxOC43MjM5IDI0Ljc2IDE4Ljg0MzkgMjQuNjVDMTkuMDYzOCAyNC40MiAxOS4xOTM3IDI0LjEyIDE5LjE5MzcgMjMuOEMxOS4xOTM3IDIzLjY0IDE5LjE2MzcgMjMuNDkgMTkuMTAzOCAyMy4zNEMxOS4wNDM4IDIzLjIgMTguOTUzOCAyMy4wNiAxOC44NDM5'@; put 'IDIyLjk1Wk0zMC41OTg2IDI1LjQzTDIwLjY2MzEgNy41N0MyMC4xMTMzIDYuNTkgMTkuMTIzOCA2IDE3Ljk5NDMgNkMxNi44NjQ4IDYgMTUuODc1MiA2LjU5IDE1LjMyNTQgNy41N0w1LjM4OTg4IDI1LjQzQzQuODUwMTIgMjYuMzkgNC44NzAxMSAyNy41MyA1LjQxOTg3IDI4LjQ4QzUuOTY5'@; put 'NjIgMjkuNDMgNi45NTkxOCAzMCA4LjA1ODY5IDMwSDI3LjkyOThDMjkuMDI5MyAzMCAzMC4wMDg5IDI5LjQzIDMwLjU2ODYgMjguNDhDMzEuMTI4NCAyNy41MyAzMS4xMzg0IDI2LjM5IDMwLjU5ODYgMjUuNDNaTTI4Ljg0OTQgMjcuNDdDMjguNzU5NSAyNy42MyAyOC40Nzk2IDI4IDI3Ljkz'@; put 'OTggMjhIOC4wNTg2OUM3LjUwODk0IDI4IDcuMjM5MDYgMjcuNjMgNy4xNDkxIDI3LjQ3QzcuMDU5MTQgMjcuMzEgNi44NjkyMiAyNi44OSA3LjE0OTEgMjYuNDFMMTcuMDY0NyA4LjU1QzE3LjMzNDYgOC4wNiAxNy44MDQzIDggMTcuOTg0MyA4QzE4LjE2NDIgOCAxOC42MzQgOC4wNSAxOC45'@; put 'MDM5IDguNTVMMjguODM5NCAyNi40MUMyOS4xMDkzIDI2Ljg5IDI4LjkxOTQgMjcuMzEgMjguODI5NCAyNy40N0gyOC44NDk0WiIvPicsc29saWQ6JzxwYXRoIGQ9Ik0zMC41OTg2IDI1LjQzTDIwLjY2MzEgNy41N0MyMC4xMTMzIDYuNTkgMTkuMTIzOCA2IDE3Ljk5NDMgNkMxNi44NjQ4IDYg'@; put 'MTUuODc1MiA2LjU5IDE1LjMyNTQgNy41N0w1LjM4OTg4IDI1LjQzQzQuODUwMTIgMjYuMzkgNC44NzAxMSAyNy41MyA1LjQxOTg3IDI4LjQ4QzUuOTY5NjIgMjkuNDMgNi45NTkxOCAzMCA4LjA1ODY5IDMwSDI3LjkyOThDMjkuMDI5MyAzMCAzMC4wMDg5IDI5LjQzIDMwLjU2ODYgMjguNDhD'@; put 'MzEuMTI4NCAyNy41MyAzMS4xMzg0IDI2LjM5IDMwLjU5ODYgMjUuNDNaTTE2Ljc5NDggMTMuNUMxNi43OTQ4IDEyLjg0IDE3LjMzNDYgMTIuMyAxNy45OTQzIDEyLjNDMTguNjU0IDEyLjMgMTkuMTkzNyAxMi44NCAxOS4xOTM3IDEzLjVWMTkuM0MxOS4xOTM3IDE5Ljk2IDE4LjY1NCAyMC41'@; put 'IDE3Ljk5NDMgMjAuNUMxNy4zMzQ2IDIwLjUgMTYuNzk0OCAxOS45NiAxNi43OTQ4IDE5LjNWMTMuNVpNMTguOTczOCAyNUMxOC44MzM5IDI1LjEzIDE4LjY4NCAyNS4yMyAxOC41MjQgMjUuM0MxOC4zNDQxIDI1LjM3IDE4LjE3NDIgMjUuNDEgMTcuOTk0MyAyNS40MUMxNy44MTQzIDI1LjQx'@; put 'IDE3LjYzNDQgMjUuMzggMTcuNDU0NSAyNS4zQzE3LjMwNDYgMjUuMjMgMTcuMTU0NiAyNS4xMyAxNi45OTQ3IDI0Ljk5QzE2LjczNDggMjQuNzIgMTYuNTg0OSAyNC4zNyAxNi41ODQ5IDI0QzE2LjU4NDkgMjMuNjMgMTYuNzI0OCAyMy4yOSAxNi45OTQ3IDIzQzE3LjEzNDYgMjIuODcgMTcu'@; put 'Mjg0NiAyMi43NyAxNy40NDQ1IDIyLjdDMTcuNjE0NCAyMi42MyAxNy43OTQzIDIyLjU5IDE3Ljk4NDMgMjIuNTlDMTguMTc0MiAyMi41OSAxOC4zNTQxIDIyLjYzIDE4LjUyNCAyMi43QzE4LjY3NCAyMi43NyAxOC44MjM5IDIyLjg3IDE4Ljk3MzggMjNDMTkuMDkzOCAyMy4xMiAxOS4yMDM3'@; put 'IDIzLjI4IDE5LjI3MzcgMjMuNDZDMTkuMzQzNyAyMy42NCAxOS4zODM2IDIzLjgxIDE5LjM4MzYgMjMuOTlDMTkuMzgzNiAyNC4zNSAxOS4yNDM3IDI0LjcgMTguOTYzOCAyNC45OUwxOC45NzM4IDI1WiIvPid9XSxbInRhYmxlIix7b3V0bGluZTonPHBhdGggZD0iTTMzIDE4QzMzLjU1IDE4'@; put 'IDM0IDE3LjU1IDM0IDE3QzM0IDE2LjQ1IDMzLjU1IDE2IDMzIDE2SDI4VjhIMzNDMzMuNTUgOCAzNCA3LjU1IDM0IDdDMzQgNi40NSAzMy41NSA2IDMzIDZIOFYzQzggMi40NSA3LjU1IDIgNyAyQzYuNDUgMiA2IDIuNDUgNiAzVjZIM0MyLjQ1IDYgMiA2LjQ1IDIgN0MyIDcuNTUgMi40NSA4'@; put 'IDMgOEg2VjMzQzYgMzMuNTUgNi40NSAzNCA3IDM0QzcuNTUgMzQgOCAzMy41NSA4IDMzVjI4SDE2VjMzQzE2IDMzLjU1IDE2LjQ1IDM0IDE3IDM0QzE3LjU1IDM0IDE4IDMzLjU1IDE4IDMzVjI4SDI2VjMzQzI2IDMzLjU1IDI2LjQ1IDM0IDI3IDM0QzI3LjU1IDM0IDI4IDMzLjU1IDI4IDMz'@; put 'VjI4SDMzQzMzLjU1IDI4IDM0IDI3LjU1IDM0IDI3QzM0IDI2LjQ1IDMzLjU1IDI2IDMzIDI2SDI4VjE4SDMzWk0xNiAyNkg4VjE4SDE2VjI2Wk0xNiAxNkg4VjhIMTZWMTZaTTI2IDI2SDE4VjE4SDI2VjI2Wk0yNiAxNkgxOFY4SDI2VjE2WiIvPid9XSxbInRyYXNoIix7b3V0bGluZTonPHBh'@; put 'dGggZD0iTTI3Ljk4IDMxQzI4IDMxLjI1IDI3LjkyIDMxLjQ5IDI3Ljc2IDMxLjY4QzI3LjYgMzEuODcgMjcuMzcgMzEuOTggMjcuMTIgMzJIOC44NUM4LjYgMzEuOTggOC4zNyAzMS44NyA4LjIxIDMxLjY4QzguMDUgMzEuNDkgNy45NyAzMS4yNSA3Ljk5IDMxVjExLjAzSDUuOTdWMzFDNS45'@; put 'NSAzMS43OCA2LjI0IDMyLjUzIDYuNzggMzMuMDlDNy4zMiAzMy42NSA4LjA2IDMzLjk4IDguODUgMzRIMjcuMTJDMjcuOSAzMy45OCAyOC42NSAzMy42NiAyOS4xOSAzMy4wOUMyOS43MyAzMi41MiAzMC4wMiAzMS43NyAzMCAzMVYxMS4wM0gyNy45OFYzMVpNMTMgMTIuOThWMjcuOThIMTUu'@; put 'MDJWMTIuOThIMTNaTTE1IDRIMjFWNkgyM1Y0QzIzIDIuOSAyMi4xIDIgMjEgMkgxNUMxMy45IDIgMTMgMi45IDEzIDRWNkgxNVY0Wk0zMC45OSA2Ljk4SDUuMDFDNC40NSA2Ljk4IDQgNy40MyA0IDcuOThDNCA4LjUzIDQuNDUgOC45OCA1LjAxIDguOThIMzAuOTlDMzEuNTUgOC45OCAzMiA4'@; put 'LjUzIDMyIDcuOThDMzIgNy40MyAzMS41NSA2Ljk4IDMwLjk5IDYuOThaTTIwLjk4IDEyLjk4VjI3Ljk4SDIzVjEyLjk4SDIwLjk4WiIvPicsc29saWQ6JzxwYXRoIGQ9Ik0xNSA0SDIxVjZIMjNWNEMyMyAyLjkgMjIuMSAyIDIxIDJIMTVDMTMuOSAyIDEzIDIuOSAxMyA0VjZIMTVWNFpNMzAu'@; put 'OTkgNi45OEg1LjAxQzQuNDUgNi45OCA0IDcuNDMgNCA3Ljk4QzQgOC41MyA0LjQ1IDguOTggNS4wMSA4Ljk4SDMwLjk5QzMxLjU1IDguOTggMzIgOC41MyAzMiA3Ljk4QzMyIDcuNDMgMzEuNTUgNi45OCAzMC45OSA2Ljk4Wk01Ljk3IDExLjAzVjMxQzUuOTUgMzEuNzggNi4yNCAzMi41MyA2'@; put 'Ljc4IDMzLjA5QzcuMzIgMzMuNjUgOC4wNiAzMy45OCA4Ljg1IDM0SDI3LjEyQzI3LjkgMzMuOTggMjguNjUgMzMuNjYgMjkuMTkgMzMuMDlDMjkuNzMgMzIuNTIgMzAuMDIgMzEuNzcgMzAgMzFWMTEuMDNINS45N1pNMjAuNzkgMjguODJWMTVIMjMuMjFWMjlIMjAuNzlWMjguODJaTTEyLjgx'@; put 'IDI4LjgyVjE1SDE1LjIzVjI5SDEyLjgxVjI4LjgyWiIvPid9XSxbInByb2Nlc3Mtb24tdm0iLHtvdXRsaW5lOic8cGF0aCBkPSJNMTIgMTQuNTAwMVYyNC41MDAxQzEyIDI1LjA1MDEgMTIuNDUgMjUuNTAwMSAxMyAyNS41MDAxSDIzQzIzLjU1IDI1LjUwMDEgMjQgMjUuMDUwMSAyNCAyNC41'@; put 'MDAxVjE0LjUwMDFDMjQgMTMuOTUwMSAyMy41NSAxMy41MDAxIDIzIDEzLjUwMDFIMTNDMTIuNDUgMTMuNTAwMSAxMiAxMy45NTAxIDEyIDE0LjUwMDFaTTE0IDE1LjUwMDFIMjJWMjMuNTAwMUgxNFYxNS41MDAxWk01LjI2IDIyLjI4MDFDNS44MSAyMi4yMDAxIDYuMTkgMjEuNzAwMSA2LjEx'@; put 'IDIxLjE1MDFDNi4wMyAyMC42MTAxIDYgMjAuMDUwMSA2IDE5LjQ5MDFDNiAxMy40MTAxIDEwLjU1IDguMzkwMDYgMTYuNDcgNy42MTAwNkwxNi4yOSA3Ljc5MDA2QzE1LjkgOC4xODAwNiAxNS45IDguODEwMDYgMTYuMjkgOS4yMDAwNkMxNi40OSA5LjQwMDA2IDE2Ljc0IDkuNDkwMDYgMTcg'@; put 'OS40OTAwNkMxNy4yNiA5LjQ5MDA2IDE3LjUxIDkuMzkwMDYgMTcuNzEgOS4yMDAwNkwyMC40MiA2LjQ5MDA2TDE3LjcxIDMuNzkwMDZDMTcuMzIgMy40MDAwNiAxNi42OSAzLjQwMDA2IDE2LjMgMy43OTAwNkMxNS45MSA0LjE4MDA2IDE1LjkxIDQuODEwMDYgMTYuMyA1LjIwMDA2TDE2LjY2'@; put 'IDUuNTYwMDZDOS41NiA2LjI1MDA2IDQgMTIuMjMwMSA0IDE5LjUwMDFDNCAyMC4xNTAxIDQuMDQgMjAuODAwMSA0LjEzIDIxLjQzMDFDNC4yIDIxLjkzMDEgNC42MyAyMi4yOTAxIDUuMTIgMjIuMjkwMUM1LjE2IDIyLjI5MDEgNS4yMSAyMi4yOTAxIDUuMjYgMjIuMjkwMVYyMi4yODAxWk0y'@; put 'My42NyAzMC4wNzAxQzIxLjk0IDMxLjAwMDEgMTkuOTggMzEuNDkwMSAxOCAzMS40OTAxQzE0LjMgMzEuNDkwMSAxMC44MyAyOS43NjAxIDguNTcgMjYuOTAwMUw4LjgzIDI2Ljk0MDFDOS4zOCAyNy4wNDAxIDkuODkgMjYuNjYwMSA5Ljk4IDI2LjEyMDFDMTAuMDcgMjUuNTgwMSA5LjcgMjUu'@; put 'MDYwMSA5LjE2IDI0Ljk3MDFMNS4zOCAyNC4zNDAxTDQuNzUgMjguMTIwMUM0LjY2IDI4LjY2MDEgNS4wMyAyOS4xODAxIDUuNTcgMjkuMjcwMUM1LjYzIDI5LjI3MDEgNS42OCAyOS4yODAxIDUuNzQgMjkuMjgwMUM2LjIyIDI5LjI4MDEgNi42NCAyOC45MzAxIDYuNzMgMjguNDUwMUw2Ljgy'@; put 'IDI3LjkyMDFDOS40NSAzMS40MDAxIDEzLjU5IDMzLjUwMDEgMTggMzMuNTAwMUMyMC4zMSAzMy41MDAxIDIyLjYgMzIuOTMwMSAyNC42MiAzMS44NDAxQzI1LjExIDMxLjU4MDEgMjUuMjkgMzAuOTcwMSAyNS4wMyAzMC40OTAxQzI0Ljc3IDMwLjAwMDEgMjQuMTYgMjkuODIwMSAyMy42OCAz'@; put 'MC4wODAxTDIzLjY3IDMwLjA3MDFaTTMwLjA5IDI2LjgzMDFMMjkuOSAyNi44NjAxQzMxLjI2IDI0LjY2MDEgMzIgMjIuMTIwMSAzMiAxOS40OTAxQzMyIDEzLjkwMDEgMjguNjggOC44NTAwNiAyMy41NSA2LjYzMDA2QzIzLjA0IDYuNDEwMDYgMjIuNDYgNi42NDAwNiAyMi4yNCA3LjE1MDA2'@; put 'QzIyLjAyIDcuNjYwMDYgMjIuMjUgOC4yNTAwNiAyMi43NiA4LjQ2MDA2QzI3LjE2IDEwLjM2MDEgMzAuMDEgMTQuNjkwMSAzMC4wMSAxOS40ODAxQzMwLjAxIDIxLjgwMDEgMjkuMzQgMjQuMDQwMSAyOC4xIDI1Ljk2MDFMMjcuOTkgMjUuMzIwMUMyNy45IDI0Ljc4MDEgMjcuMzkgMjQuNDAw'@; put 'MSAyNi44NCAyNC41MDAxQzI2LjMgMjQuNTkwMSAyNS45MyAyNS4xMDAxIDI2LjAyIDI1LjY1MDFMMjYuNjQgMjkuNDMwMUwzMC40MiAyOC44MTAxQzMwLjk2IDI4LjcyMDEgMzEuMzMgMjguMjEwMSAzMS4yNCAyNy42NjAxQzMxLjE1IDI3LjEyMDEgMzAuNjQgMjYuNzQwMSAzMC4wOSAyNi44'@; put 'NDAxVjI2LjgzMDFaIi8+J31dKTtsZXQgaEdlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZix2LE0sSSxHLHJlKXt0aGlzLmFwcFNlcnZpY2U9YSx0aGlzLmxpY2VuY2VTZXJ2aWNlPWQsdGhpcy5yb3V0ZXI9aCx0aGlzLnJvdXRlPWYsdGhpcy5sb2NhdGlvbj12LHRoaXMuZXZl'@; put 'bnRTZXJ2aWNlPU0sdGhpcy5hcHBTdG9yZVNlcnZpY2U9SSx0aGlzLmNkcj1HLHRoaXMuZWxlbWVudFJlZj1yZSx0aGlzLmxpY2Vuc2VFeHBpcmluZ0RheXM9bnVsbCx0aGlzLnNhc2pzQWJvcnRzPVtdLHRoaXMuZWRpdG9yQWN0aXZlPSExLHRoaXMuYXBwcm92ZUFjdGl2ZT0hMSx0aGlzLmZy'@; put 'ZWVUaWVyQmFubmVyPXRoaXMubGljZW5jZVNlcnZpY2UuaXNBcHBGcmVlVGllci52YWx1ZSx0aGlzLmxpY2VuY2VQcm9ibGVtPXRoaXMubGljZW5jZVNlcnZpY2UubGljZW5jZVByb2JsZW0sdGhpcy5hcHBPdmVyQ2FwYWNpdHk9ITEsdGhpcy5hcHBBY3RpdmU9bnVsbCx0aGlzLnJlcXVlc3Rz'@; put 'TW9kYWw9ITEsdGhpcy5zaG93UmVnaXN0cmF0aW9uPSEwLHRoaXMuc3RhcnR1cERhdGFMb2FkZWQ9ITEsdGhpcy5kZW1vTGltaXROb3RpY2U9e29wZW46ITEsZmVhdHVyZU5hbWU6IiJ9LHRoaXMuc3lzc2l0ZT10aGlzLmFwcFNlcnZpY2Uuc3lzc2l0ZSx0aGlzLmxpY2VuY2VTdGF0ZT10aGlz'@; put 'LmxpY2VuY2VTZXJ2aWNlLmxpY2VuY2VTdGF0ZSx0aGlzLnBhcnNlRGNBZGFwdGVyU2V0dGluZ3MoKSx3aW5kb3cuYXBwaW5mbz0oKT0+e2NvbnNvbGUudGFibGUoeyJBZGFwdGVyIHZlcnNpb24iOiI0LjEyLjIiLCJBcHAgdmVyc2lvbiI6InY3LjIuMSIucmVwbGFjZSgidiIsIiIpLCJCdWls'@; put 'ZCB0aW1lc3RhbXAiOlBzKHBhcnNlSW50KCIxNzU0Njc0NTEwMzI1IikpLmZvcm1hdCgiREQtTU1NLVlZWVkgSEg6TU0iKSwiLi4uIjoiLi4uIn0pfSx0aGlzLnN1YnNjcmliZVRvTGljZW5zZUV2ZW50cygpLHRoaXMuY29tbWl0VmVyPSJ2Ny4yLjEiLnJlcGxhY2UoInYiLCIiKSsiLmdlZjEw'@; put 'MTVmIixoLmV2ZW50cy5zdWJzY3JpYmUodWU9PntpZih0aGlzLnJvdXRlVXJsPXRoaXMucm91dGVyLnVybCx0eXBlb2YgdGhpcy5yb3V0ZVVybDwidSImJnRoaXMucm91dGVVcmwubGVuZ3RoPjQpe2xldCB5ZT10aGlzLnJvdXRlVXJsLnNwbGl0KCIvIilbMV07ImVkaXRvciI9PT15ZT8odGhp'@; put 'cy5lcnJUb3A9ITAsdGhpcy5lZGl0b3JBY3RpdmU9ITAsdGhpcy5hcHByb3ZlQWN0aXZlPSExKToiaG9tZSI9PT15ZT8odGhpcy5lcnJUb3A9ITEsdGhpcy5lZGl0b3JBY3RpdmU9ITAsdGhpcy5hcHByb3ZlQWN0aXZlPSExKToodGhpcy5lcnJUb3A9ITAsdGhpcy5lZGl0b3JBY3RpdmU9ITEp'@; put 'LEpuLnJvb3RQYXJhbT15ZX10eXBlb2YgdGhpcy5yb3V0ZVVybDwidSImJnRoaXMucm91dGVVcmwubGVuZ3RoPjYmJih0aGlzLmFwcHJvdmVBY3RpdmU9ISF0aGlzLnJvdXRlVXJsLmluY2x1ZGVzKCJhcHByb3ZlRGV0Iil8fCEhdGhpcy5yb3V0ZVVybC5pbmNsdWRlcygidG9hcHByb3ZlIikp'@; put 'fSksdGhpcy5zdWJzY3JpYmVUb1Nob3dBYm9ydE1vZGFsKCksdGhpcy5zdWJzY3JpYmVUb1JlcXVlc3RzTW9kYWwoKSx0aGlzLnN1YnNjcmliZVRvU3RhcnR1cERhdGEoKSx0aGlzLnN1YnNjcmliZVRvQXBwQWN0aXZlKCksdGhpcy5zdWJzY3JpYmVUb0RlbW9MaW1pdE1vZGFsKCksd2luZG93'@; put 'LmZyYW1lRWxlbWVudCYmKHdpbmRvdy5mcmFtZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJzdHlsZSIsImhlaWdodDoxMDAlO3dpZHRoOjEwMCU7cG9zaXRpb246YWJzb2x1dGUiKSx3aW5kb3cuZnJhbWVFbGVtZW50LnNldEF0dHJpYnV0ZSgiYWxsb3dmdWxsc2NyZWVuIiwiIiksd2luZG93LmZy'@; put 'YW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoImZyYW1lYm9yZGVyIiwiMCIpLHdpbmRvdy5mcmFtZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJtYXJnaW5oZWlnaHQiLCIwIiksd2luZG93LmZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1hcmdpbndpZHRoIiwiMCIpLHdpbmRvdy5mcmFtZUVsZW1l'@; put 'bnQuc2V0QXR0cmlidXRlKCJzY3JvbGxpbmciLCJhdXRvIiksd2luZG93LmZvY3VzKCkpfXBhcnNlRGNBZGFwdGVyU2V0dGluZ3MoKXtjb25zdCBhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInNhc2pzIik7aWYoIWEpcmV0dXJuIHRoaXMubGljZW5jZVNlcnZpY2UuZGVhY3RpdmF0ZUFwcCgp'@; put 'LHZvaWQgc2V0VGltZW91dCgoKT0+e3RoaXMuZXZlbnRTZXJ2aWNlLnNob3dBYm9ydE1vZGFsKG51bGwsIlBsZWFzZSBtYWtlIHN1cmUgJ1NBU0pTJyB0YWcgd2l0aCBjb25maWcgYXR0cmlidXRlcyBpcyBhZGRlZCB0byBpbmRleC5odG1sIixudWxsLCJTQVNqcyBDb25maWcgbm90IGZvdW5k'@; put 'Iil9KTtjb25zdCBkPWY9PmEuZ2V0QXR0cmlidXRlKGYpfHx2b2lkIDAsaD17c2VydmVyVXJsOmQoInNlcnZlclVybCIpfHwiIixhcHBMb2M6ZCgiYXBwTG9jIil8fCIiLHNlcnZlclR5cGU6ZCgic2VydmVyVHlwZSIpLGxvZ2luTWVjaGFuaXNtOmQoImxvZ2luTWVjaGFuaXNtIil8fCIiLGFk'@; put 'bWluR3JvdXA6ZCgiYWRtaW5Hcm91cCIpfHwiIixkY1BhdGg6ZCgiZGNQYXRoIil8fCIiLGRlYnVnOiJ0cnVlIj09PWQoImRlYnVnIil8fCExLHVzZUNvbXB1dGVBcGk6dGhpcy5wYXJzZUNvbXB1dGVBcGkoZCgidXNlQ29tcHV0ZUFwaSIpKSxjb250ZXh0TmFtZTpkKCJjb250ZXh0TmFtZSIp'@; put 'fHwiIixob3RMaWNlbmNlS2V5OmQoImhvdExpY2VuY2VLZXkiKXx8IiJ9O3RoaXMuZGNBZGFwdGVyU2V0dGluZ3M9aCx0aGlzLmFwcFN0b3JlU2VydmljZS5zZXREY0FkYXB0ZXJTZXR0aW5ncyhoKSx0aGlzLmFwcFNlcnZpY2Uuc2FzU2VydmljZUluaXQoKX1saWNlbmNlUHJvYmxlbURldGFp'@; put 'bHMoYSl7dGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChhKX1wYXJzZUNvbXB1dGVBcGkoYSl7cmV0dXJuIHZvaWQgMD09PWF8fCJ1bmRlZmluZWQiPT09YXx8Im51bGwiPT09YT9udWxsOiJ0cnVlIj09PWF8fCExfXN1YnNjcmliZVRvRGVtb0xpbWl0TW9kYWwoKXt0aGlzLmV2ZW50U2Vydmlj'@; put 'ZS5vbkRlbW9MaW1pdE1vZGFsU2hvdy5zdWJzY3JpYmUoYT0+e3RoaXMuZGVtb0xpbWl0Tm90aWNlPXtvcGVuOiEwLGZlYXR1cmVOYW1lOmF9fSl9c3Vic2NyaWJlVG9MaWNlbnNlRXZlbnRzKCl7dGhpcy5saWNlbmNlU2VydmljZS5pc0FwcEZyZWVUaWVyLnN1YnNjcmliZShhPT57dGhpcy5m'@; put 'cmVlVGllckJhbm5lcj1hfSksdGhpcy5saWNlbmNlU2VydmljZS5saWNlbnNlRXhwaXJlc0luRGF5cy5zdWJzY3JpYmUoYT0+e2EmJmE8PTE0JiYodGhpcy5saWNlbnNlRXhwaXJpbmdEYXlzPWEpfSksdGhpcy5saWNlbmNlU2VydmljZS5pc0FwcE92ZXJDYXBhY2l0eS5zdWJzY3JpYmUoYT0+'@; put 'e3RoaXMuYXBwT3ZlckNhcGFjaXR5PWF9KX1zdWJzY3JpYmVUb0FwcEFjdGl2ZSgpe3RoaXMubGljZW5jZVNlcnZpY2UuaXNBcHBBY3RpdmF0ZWQuc3Vic2NyaWJlKGE9Pnt0aGlzLmFwcEFjdGl2ZT1hfSl9c3Vic2NyaWJlVG9TaG93QWJvcnRNb2RhbCgpe3RoaXMuZXZlbnRTZXJ2aWNlLm9u'@; put 'U2hvd0Fib3J0TW9kYWwuc3Vic2NyaWJlKGE9PnthLmlkPXRoaXMuc2FzanNBYm9ydHMubGVuZ3RoKzEsdGhpcy5zYXNqc0Fib3J0cy5wdXNoKGEpLHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKX0pfXN1YnNjcmliZVRvU3RhcnR1cERhdGEoKXt0aGlzLmV2ZW50U2VydmljZS5vblN0YXJ0dXBE'@; put 'YXRhTG9hZGVkLnN1YnNjcmliZSgoKT0+e3RoaXMuc3RhcnR1cERhdGFMb2FkZWQ9ITB9KX1zdWJzY3JpYmVUb1JlcXVlc3RzTW9kYWwoKXt0aGlzLmV2ZW50U2VydmljZS5vblJlcXVlc3RzTW9kYWxPcGVuLnN1YnNjcmliZShhPT57dGhpcy5yZXF1ZXN0c01vZGFsPSEwfSl9Y2xvc2VBYm9y'@; put 'dE1vZGFsKGEpe2xldCBkPXRoaXMuc2FzanNBYm9ydHMuZmluZEluZGV4KGg9PmguaWQ9PT1hKTt0aGlzLnNhc2pzQWJvcnRzLnNwbGljZShkLDEpfXRvZ2dsZVNpZGViYXIoKXt0aGlzLmV2ZW50U2VydmljZS50b2dnbGVTaWRlYmFyKCl9aXNNYWluUm91dGUoYSl7cmV0dXJuIHRoaXMucm91'@; put 'dGVyLnVybC5pbmNsdWRlcyhhKX1vcGVuTGljZW5jaW5nUGFnZSgpe3RoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9saWNlbnNpbmcvdXBkYXRlIil9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUodUwpLCRlKGMxKSwkZShMbyksJGUoeXUp'@; put 'LCRlKHBoKSwkZShtYyksJGUoUTgpLCRlKHhvKSwkZShRaSkpfX1zdGF0aWN7dGhpcy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1sibXktYXBwIl1dLGRlY2xzOjI2LHZhcnM6MTcsY29uc3RzOltbMSwibWFpbi1jb250YWluZXIiXSxbNCwibmdJZiJdLFsxLCJhcHAtaGVhZGVy'@; put 'Il0sWyJ0eXBlIiwiYnV0dG9uIiwiY2xhc3MiLCJjdXJzb3ItcG9pbnRlciBzZWxlY3Qtbm9uZSBtbC0xMCBkLWZsZXggY2xyLWp1c3RpZnktY29udGVudC1jZW50ZXIgY2xyLWFsaWduLWl0ZW1zLWNlbnRlciIsMywiY2xpY2siLDQsIm5nSWYiXSxbMSwibG9nbyIsImQtZmxleCIsImNsci1h'@; put 'bGlnbi1pdGVtcy1jZW50ZXIiXSxbImhyZWYiLCIjIiwiY2xhc3MiLCJuYXYtbGluayIsMywicm91dGVyTGluayIsNCwibmdJZiJdLFsiY2xhc3MiLCJzdWJuYXYiLDQsIm5nSWYiXSxbMywib3BlbmVkQ2hhbmdlIiwib3BlbmVkIl0sWzMsImRhdGEiLCJmb3JjZVJlbG9hZCIsIm9uQ29uZmly'@; put 'bU1vZGFsQ2xpY2siLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsiYXBwRHJhZ05kcm9wIiwiIiwxLCJwb3NpdGlvbi1yZWxhdGl2ZSIsMywiY2xyTW9kYWxPcGVuQ2hhbmdlIiwiY2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxDbG9zYWJsZSIsImNsck1vZGFsU2l6ZSJdLFsxLCJtb2RhbC10aXRsZSJd'@; put 'LFsic2l6ZSIsIjIwIiwic2hhcGUiLCJsb2NrIl0sWzEsIm1vZGFsLWJvZHkiXSxbImNsYXNzIiwiYXBwLWxvYWRpbmciLDQsIm5nSWYiXSxbImNsYXNzIiwiYWxlcnQgYWxlcnQtYXBwLWxldmVsIGFsZXJ0LXdhcm5pbmciLCJpZCIsImRlbW8tYmFubmVyIiwicm9sZSIsImFsZXJ0Iiw0LCJu'@; put 'Z0lmIl0sWyJjbGFzcyIsImFsZXJ0IGFsZXJ0LWFwcC1sZXZlbCBhbGVydC1kYW5nZXIiLCJpZCIsImRlbW8tYmFubmVyIiwicm9sZSIsImFsZXJ0Iiw0LCJuZ0lmIl0sWyJpZCIsImRlbW8tYmFubmVyIiwicm9sZSIsImFsZXJ0IiwxLCJhbGVydCIsImFsZXJ0LWFwcC1sZXZlbCIsImFsZXJ0'@; put 'LXdhcm5pbmciXSxbMSwiYWxlcnQtaXRlbXMiXSxbMSwiYWxlcnQtaXRlbSIsInN0YXRpYyJdLFsxLCJhbGVydC1pY29uLXdyYXBwZXIiXSxbInNoYXBlIiwid2FybmluZy1zdGFuZGFyZCIsMSwiYWxlcnQtaWNvbiJdLFsxLCJhbGVydC10ZXh0Il0sWyJjbGFzc2VzIiwiY29sb3Itd2hpdGUi'@; put 'XSxbInJvdXRlckxpbmsiLCIvbGljZW5zaW5nL3VwZGF0ZSIsMSwidXBkYXRlLWtleSJdLFsxLCJ1cGRhdGUta2V5IiwiY3Vyc29yLXBvaW50ZXIiLDMsImNsaWNrIl0sWyJpZCIsImRlbW8tYmFubmVyIiwicm9sZSIsImFsZXJ0IiwxLCJhbGVydCIsImFsZXJ0LWFwcC1sZXZlbCIsImFsZXJ0'@; put 'LWRhbmdlciJdLFsicm91dGVyTGluayIsIi9saWNlbnNpbmcvdXBkYXRlIiwiY2xhc3MiLCJ1cGRhdGUta2V5Iiw0LCJuZ0lmIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJjdXJzb3ItcG9pbnRlciIsInNlbGVjdC1ub25lIiwibWwtMTAiLCJkLWZsZXgiLCJjbHItanVzdGlmeS1jb250ZW50LWNl'@; put 'bnRlciIsImNsci1hbGlnbi1pdGVtcy1jZW50ZXIiLDMsImNsaWNrIl0sWyJzaXplIiwiMjQiLCJzaGFwZSIsInRyZWUtdmlldyJdLFsiaHJlZiIsIiMiLDEsIm5hdi1saW5rIiwzLCJyb3V0ZXJMaW5rIl0sWyJzcmMiLCIvU0FTSm9iRXhlY3V0aW9uP19GSUxFPS9QdWJsaWMvYXBwL2RjcGxh'@; put 'Y2Vob2xkZXIvc2VydmljZXMvd2ViL2ltYWdlcy9kYy1sb2dvLnN2ZyIsImFsdCIsImRhdGFjb250cm9sbGVyIGxvZ28gd2l0aG91dCB0ZXh0IiwxLCJ3aXRob3V0LXRleHQiLCJkLWJsb2NrIiwiZC1tZC1ub25lIl0sWyJzcmMiLCIvU0FTSm9iRXhlY3V0aW9uP19GSUxFPS9QdWJsaWMvYXBw'@; put 'L2RjcGxhY2Vob2xkZXIvc2VydmljZXMvd2ViL2ltYWdlcy9kYXRhY29udHJvbGxlci5zdmciLCJhbHQiLCJkYXRhY29udHJvbGxlciBsb2dvIiwxLCJ3aXRoLXRleHQiLCJkLW5vbmUiLCJkLW1kLWJsb2NrIl0sWzEsImNsci1pY29uIiwiaGVhZGVyLWxvZ28iLCJtbC0xMCJdLFsxLCJoZWFk'@; put 'ZXItbmF2IiwiZC1mbGV4IiwiZC1zbS1ub25lIl0sWyJjbHJEcm9wZG93blRyaWdnZXIiLCIiLCJhcmlhLWxhYmVsIiwidG9nZ2xlIHNldHRpbmdzIG1lbnUiLDEsIm5hdi1pY29uIiwiY29sb3Itd2hpdGUtaSJdLFsiY2xyUG9zaXRpb24iLCJib3R0b20tbGVmdCIsNCwiY2xySWZPcGVuIl0s'@; put 'WzEsImhlYWRlci1uYXYiLCJkLW5vbmUiLCJkLXNtLWZsZXgiXSxbInJvdXRlckxpbmtBY3RpdmUiLCJhY3RpdmUiLDEsIm5hdi1saW5rIiwibmF2LXRleHQiLDMsInJvdXRlckxpbmsiXSxbMSwibmF2LWxpbmsiLCJuYXYtdGV4dCIsMywicm91dGVyTGluayJdLFsxLCJuYXYtbGluayIsIm5h'@; put 'di10ZXh0IiwiY3Vyc29yLXBvaW50ZXIiLDMsInJvdXRlckxpbmsiXSxbImNsclBvc2l0aW9uIiwiYm90dG9tLWxlZnQiXSxbImNsckRyb3Bkb3duSXRlbSIsIiIsMywicm91dGVyTGluayJdLFsxLCJzdWJuYXYiXSxbMSwibmF2Il0sWzEsIm5hdi1pdGVtIl0sWzMsIm9uQ29uZmlybU1vZGFs'@; put 'Q2xpY2siLCJkYXRhIiwiZm9yY2VSZWxvYWQiXSxbMSwiYXBwLWxvYWRpbmciXSxbInNyYyIsIi9TQVNKb2JFeGVjdXRpb24/X0ZJTEU9L1B1YmxpYy9hcHAvZGNwbGFjZWhvbGRlci9zZXJ2aWNlcy93ZWIvaW1hZ2VzL2RhdGFjb250cm9sbGVyLnN2ZyIsImFsdCIsImRhdGFjb250cm9sbGVy'@; put 'IGxvZ28iLDEsImxvYWRpbmctbG9nbyJdLFsiY2xhc3MiLCJzbGlkZXIiLDQsIm5nSWYiXSxbMSwic2xpZGVyIl0sWzEsImxpbmUiXSxbMSwic3VibGluZSIsImluYyJdLFsxLCJzdWJsaW5lIiwiZGVjIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGQsaCl7MSZkJiYoZGUoMCwiZGl2IiwwKSxndCgx'@; put 'LFFZZSw0LDMsIm5nLWNvbnRhaW5lciIsMSksZGUoMiwiaGVhZGVyIiwyKSxndCgzLGVHZSwyLDAsImRpdiIsMyksZGUoNCwiZGl2Iiw0KSxndCg1LHRHZSwzLDIsImEiLDUpKDYsbkdlLDIsMCwiYSIsMSksaGUoKSxndCg3LGlHZSwxMywxMCwibmctY29udGFpbmVyIiwxKSxXdCg4LCJhcHAt'@; put 'aGVhZGVyLWFjdGlvbnMiKSxoZSgpLGd0KDksYUdlLDExLDgsIm5hdiIsNikoMTAsc0dlLDEsMCwiYXBwLWFsZXJ0cyIsMSksZGUoMTEsImFwcC1yZXF1ZXN0cy1tb2RhbCIsNykscGkoIm9wZW5lZENoYW5nZSIsZnVuY3Rpb24odil7cmV0dXJuIGdpKGgucmVxdWVzdHNNb2RhbCx2KXx8KGgu'@; put 'cmVxdWVzdHNNb2RhbD12KSx2fSksaGUoKSxXdCgxMiwiYXBwLWV4Y2VsLXBhc3N3b3JkLW1vZGFsIiksZ3QoMTMsb0dlLDEsMCwicm91dGVyLW91dGxldCIsMSksV3QoMTQsImFwcC1sb2dpbiIpLGd0KDE1LGxHZSwxLDAsImFwcC1hbGVydHMiLDEpKDE2LGNHZSwxLDIsImFwcC1pbmZvLW1v'@; put 'ZGFsIiw4KSxkZSgxNywiY2xyLW1vZGFsIiw5KSxwaSgiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbih2KXtyZXR1cm4gZ2koaC5kZW1vTGltaXROb3RpY2Uub3Blbix2KXx8KGguZGVtb0xpbWl0Tm90aWNlLm9wZW49diksdn0pLGRlKDE4LCJoMyIsMTApLE9lKDE5KSxXdCgyMCwiY2xy'@; put 'LWljb24iLDExKSxoZSgpLGRlKDIxLCJkaXYiLDEyKSxPZSgyMiwiIENvbnRhY3QgIiksV3QoMjMsImNvbnRhY3QtbGluayIpLE9lKDI0KSxoZSgpKCkoKSxndCgyNSxkR2UsMywxLCJkaXYiLDEzKSksMiZkJiYoZmUoKSxNZSgibmdJZiIsIWgucm91dGVyLnVybC5pbmNsdWRlcygibGljZW5z'@; put 'aW5nIikpLGZlKDIpLE1lKCJuZ0lmIixoLmlzTWFpblJvdXRlKCJ2aWV3Iil8fGguaXNNYWluUm91dGUoImhvbWUiKSYmIWgucm91dGVyLnVybC5pbmNsdWRlcygibGljZW5zaW5nIikpLGZlKDIpLE1lKCJuZ0lmIiwhaC5yb3V0ZXIudXJsLmluY2x1ZGVzKCJkZXBsb3kiKSksZmUoKSxNZSgi'@; put 'bmdJZiIsaC5yb3V0ZXIudXJsLmluY2x1ZGVzKCJkZXBsb3kiKSksZmUoKSxNZSgibmdJZiIsIWgucm91dGVyLnVybC5pbmNsdWRlcygiZGVwbG95IikmJiFoLnJvdXRlci51cmwuaW5jbHVkZXMoImxpY2Vuc2luZyIpKSxmZSgyKSxNZSgibmdJZiIsaC5yb3V0ZXIudXJsLmluY2x1ZGVzKCJz'@; put 'dWJtaXR0ZWQiKXx8aC5yb3V0ZXIudXJsLmluY2x1ZGVzKCJhcHByb3ZlIil8fGgucm91dGVyLnVybC5pbmNsdWRlcygiaGlzdG9yeSIpKSxmZSgpLE1lKCJuZ0lmIiwhaC5lcnJUb3ApLGZlKCksZmkoIm9wZW5lZCIsaC5yZXF1ZXN0c01vZGFsKSxmZSgyKSxNZSgibmdJZiIsaC5zdGFydHVw'@; put 'RGF0YUxvYWRlZCksZmUoMiksTWUoIm5nSWYiLGguZXJyVG9wKSxmZSgpLE1lKCJuZ0Zvck9mIixoLnNhc2pzQWJvcnRzKSxmZSgpLGZpKCJjbHJNb2RhbE9wZW4iLGguZGVtb0xpbWl0Tm90aWNlLm9wZW4pLE1lKCJjbHJNb2RhbENsb3NhYmxlIiwhMCkoImNsck1vZGFsU2l6ZSIsImxnIiks'@; put 'ZmUoMiksTHIoIiBMb2NrZWQgRmVhdHVyZSAoIixoLmRlbW9MaW1pdE5vdGljZS5mZWF0dXJlTmFtZSwiKSAiKSxmZSg1KSxMcigiIHdpdGggeW91ciBzaXRlIGlkICgiLGguc3lzc2l0ZS52YWx1ZSwiKSB0byBhY3RpdmF0ZSEgIiksZmUoKSxNZSgibmdJZiIsIWguc3RhcnR1cERhdGFMb2Fk'@; put 'ZWQpKX0sZGVwZW5kZW5jaWVzOltRcyxiYSxuZyxsMSx1YixWV2UsZVllLHJZZSx5TyxzWWUsaUUsT2wsZW8scnUsWXUsUDIsc2csZzcsbTcsUGIsc0UsTFllLHpZZV0sZW5jYXBzdWxhdGlvbjoyfSl9fXJldHVybiBjfSkoKTtmdW5jdGlvbiBUaGUoYyl7cmV0dXJuIG5ldyBucigzZTMsITEp'@; put 'fWZ1bmN0aW9uIFRtKGMpe3N3aXRjaChjLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBuZXcgRXg7Y2FzZSAxOnJldHVybiBjWzBdO2RlZmF1bHQ6cmV0dXJuIG5ldyB6MGUoYyl9fWZ1bmN0aW9uIEFoZShjLGwsYT1uZXcgTWFwLGQ9bmV3IE1hcCl7Y29uc3QgaD1bXSxmPVtdO2xldCB2PS0xLE09'@; put 'bnVsbDtpZihsLmZvckVhY2goST0+e2NvbnN0IEc9SS5nZXQoIm9mZnNldCIpLHJlPUc9PXYsdWU9cmUmJk18fG5ldyBNYXA7SS5mb3JFYWNoKCh5ZSxFZSk9PntsZXQgQmU9RWUsR2U9eWU7aWYoIm9mZnNldCIhPT1FZSlzd2l0Y2goQmU9Yy5ub3JtYWxpemVQcm9wZXJ0eU5hbWUoQmUsaCks'@; put 'R2Upe2Nhc2UiISI6R2U9YS5nZXQoRWUpO2JyZWFrO2Nhc2Ugcmc6R2U9ZC5nZXQoRWUpO2JyZWFrO2RlZmF1bHQ6R2U9Yy5ub3JtYWxpemVTdHlsZVZhbHVlKEVlLEJlLEdlLGgpfXVlLnNldChCZSxHZSl9KSxyZXx8Zi5wdXNoKHVlKSxNPXVlLHY9R30pLGgubGVuZ3RoKXRocm93IGZ1bmN0'@; put 'aW9uIFBHZShjKXtyZXR1cm4gbmV3IG5yKDM1MDIsITEpfSgpO3JldHVybiBmfWZ1bmN0aW9uIERHKGMsbCxhLGQpe3N3aXRjaChsKXtjYXNlInN0YXJ0IjpjLm9uU3RhcnQoKCk9PmQoYSYmSUcoYSwic3RhcnQiLGMpKSk7YnJlYWs7Y2FzZSJkb25lIjpjLm9uRG9uZSgoKT0+ZChhJiZJRyhh'@; put 'LCJkb25lIixjKSkpO2JyZWFrO2Nhc2UiZGVzdHJveSI6Yy5vbkRlc3Ryb3koKCk9PmQoYSYmSUcoYSwiZGVzdHJveSIsYykpKX19ZnVuY3Rpb24gSUcoYyxsLGEpe2NvbnN0IGY9UkcoYy5lbGVtZW50LGMudHJpZ2dlck5hbWUsYy5mcm9tU3RhdGUsYy50b1N0YXRlLGx8fGMucGhhc2VOYW1l'@; put 'LGEudG90YWxUaW1lPz9jLnRvdGFsVGltZSwhIWEuZGlzYWJsZWQpLHY9Yy5fZGF0YTtyZXR1cm4gbnVsbCE9diYmKGYuX2RhdGE9diksZn1mdW5jdGlvbiBSRyhjLGwsYSxkLGg9IiIsZj0wLHYpe3JldHVybntlbGVtZW50OmMsdHJpZ2dlck5hbWU6bCxmcm9tU3RhdGU6YSx0b1N0YXRlOmQs'@; put 'cGhhc2VOYW1lOmgsdG90YWxUaW1lOmYsZGlzYWJsZWQ6ISF2fX1mdW5jdGlvbiBraChjLGwsYSl7bGV0IGQ9Yy5nZXQobCk7cmV0dXJuIGR8fGMuc2V0KGwsZD1hKSxkfWZ1bmN0aW9uIGtoZShjKXtjb25zdCBsPWMuaW5kZXhPZigiOiIpO3JldHVybltjLnN1YnN0cmluZygxLGwpLGMuc2xp'@; put 'Y2UobCsxKV19Y29uc3QgR0dlPXR5cGVvZiBkb2N1bWVudD4idSI/bnVsbDpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7ZnVuY3Rpb24gTEcoYyl7Y29uc3QgbD1jLnBhcmVudE5vZGV8fGMuaG9zdHx8bnVsbDtyZXR1cm4gbD09PUdHZT9udWxsOmx9bGV0IFA3PW51bGwsRGhlPSExO2Z1bmN0'@; put 'aW9uIEloZShjLGwpe2Zvcig7bDspe2lmKGw9PT1jKXJldHVybiEwO2w9TEcobCl9cmV0dXJuITF9ZnVuY3Rpb24gUmhlKGMsbCxhKXtpZihhKXJldHVybiBBcnJheS5mcm9tKGMucXVlcnlTZWxlY3RvckFsbChsKSk7Y29uc3QgZD1jLnF1ZXJ5U2VsZWN0b3IobCk7cmV0dXJuIGQ/W2RdOltd'@; put 'fWxldCBPRz0oKCk9PntjbGFzcyBje3ZhbGlkYXRlU3R5bGVQcm9wZXJ0eShhKXtyZXR1cm4gZnVuY3Rpb24gS0dlKGMpe1A3fHwoUDc9ZnVuY3Rpb24gWEdlKCl7cmV0dXJuIHR5cGVvZiBkb2N1bWVudDwidSI/ZG9jdW1lbnQuYm9keTpudWxsfSgpfHx7fSxEaGU9ISFQNy5zdHlsZSYmIldl'@; put 'YmtpdEFwcGVhcmFuY2UiaW4gUDcuc3R5bGUpO2xldCBsPSEwO3JldHVybiBQNy5zdHlsZSYmIWZ1bmN0aW9uICRHZShjKXtyZXR1cm4iZWJraXQiPT1jLnN1YnN0cmluZygxLDYpfShjKSYmKGw9YyBpbiBQNy5zdHlsZSwhbCYmRGhlJiYobD0iV2Via2l0IitjLmNoYXJBdCgwKS50b1VwcGVy'@; put 'Q2FzZSgpK2Muc2xpY2UoMSlpbiBQNy5zdHlsZSkpLGx9KGEpfW1hdGNoZXNFbGVtZW50KGEsZCl7cmV0dXJuITF9Y29udGFpbnNFbGVtZW50KGEsZCl7cmV0dXJuIEloZShhLGQpfWdldFBhcmVudEVsZW1lbnQoYSl7cmV0dXJuIExHKGEpfXF1ZXJ5KGEsZCxoKXtyZXR1cm4gUmhlKGEsZCxo'@; put 'KX1jb21wdXRlU3R5bGUoYSxkLGgpe3JldHVybiBofHwiIn1hbmltYXRlKGEsZCxoLGYsdixNPVtdLEkpe3JldHVybiBuZXcgRXgoaCxmKX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKX19c3RhdGlje3RoaXMuXHUwMjc1cHJvdj1ybih7dG9rZW46'@; put 'YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSl9fXJldHVybiBjfSkoKTtjbGFzcyBQR3tzdGF0aWN7dGhpcy5OT09QPW5ldyBPR319Y2xhc3MgRkd7fWNvbnN0IEpHZT0xZTMsSEc9Im5nLWVudGVyIixiTz0ibmctbGVhdmUiLF9PPSJuZy10cmlnZ2VyIix3Tz0iLm5nLXRyaWdnZXIiLE9oZT0ibmct'@; put 'YW5pbWF0aW5nIixORz0iLm5nLWFuaW1hdGluZyI7ZnVuY3Rpb24gZmcoYyl7aWYoIm51bWJlciI9PXR5cGVvZiBjKXJldHVybiBjO2NvbnN0IGw9Yy5tYXRjaCgvXigtP1tcLlxkXSspKG0/cykvKTtyZXR1cm4hbHx8bC5sZW5ndGg8Mj8wOlZHKHBhcnNlRmxvYXQobFsxXSksbFsyXSl9ZnVu'@; put 'Y3Rpb24gVkcoYyxsKXtyZXR1cm4icyI9PT1sP2MqSkdlOmN9ZnVuY3Rpb24gQ08oYyxsLGEpe3JldHVybiBjLmhhc093blByb3BlcnR5KCJkdXJhdGlvbiIpP2M6ZnVuY3Rpb24gZSRlKGMsbCxhKXtsZXQgaCxmPTAsdj0iIjtpZigic3RyaW5nIj09dHlwZW9mIGMpe2NvbnN0IE09Yy5tYXRj'@; put 'aCgvXigtP1tcLlxkXSspKG0/cykoPzpccysoLT9bXC5cZF0rKShtP3MpKT8oPzpccysoWy1hLXpdKyg/OlwoLis/XCkpPykpPyQvaSk7aWYobnVsbD09PU0pcmV0dXJuIGwucHVzaChUaGUoKSkse2R1cmF0aW9uOjAsZGVsYXk6MCxlYXNpbmc6IiJ9O2g9VkcocGFyc2VGbG9hdChNWzFdKSxN'@; put 'WzJdKTtjb25zdCBJPU1bM107bnVsbCE9SSYmKGY9VkcocGFyc2VGbG9hdChJKSxNWzRdKSk7Y29uc3QgRz1NWzVdO0cmJih2PUcpfWVsc2UgaD1jO2lmKCFhKXtsZXQgTT0hMSxJPWwubGVuZ3RoO2g8MCYmKGwucHVzaChmdW5jdGlvbiBmR2UoKXtyZXR1cm4gbmV3IG5yKDMxMDAsITEpfSgp'@; put 'KSxNPSEwKSxmPDAmJihsLnB1c2goZnVuY3Rpb24gcEdlKCl7cmV0dXJuIG5ldyBucigzMTAxLCExKX0oKSksTT0hMCksTSYmbC5zcGxpY2UoSSwwLFRoZSgpKX1yZXR1cm57ZHVyYXRpb246aCxkZWxheTpmLGVhc2luZzp2fX0oYyxsLGEpfWZ1bmN0aW9uIEVwKGMsbCxhKXtsLmZvckVhY2go'@; put 'KGQsaCk9Pntjb25zdCBmPWpHKGgpO2EmJiFhLmhhcyhoKSYmYS5zZXQoaCxjLnN0eWxlW2ZdKSxjLnN0eWxlW2ZdPWR9KX1mdW5jdGlvbiBGNyhjLGwpe2wuZm9yRWFjaCgoYSxkKT0+e2NvbnN0IGg9akcoZCk7Yy5zdHlsZVtoXT0iIn0pfWZ1bmN0aW9uIG9FKGMpe3JldHVybiBBcnJheS5p'@; put 'c0FycmF5KGMpPzE9PWMubGVuZ3RoP2NbMF06ZnVuY3Rpb24gTVBlKGMsbD1udWxsKXtyZXR1cm57dHlwZTprcy5TZXF1ZW5jZSxzdGVwczpjLG9wdGlvbnM6bH19KGMpOmN9Y29uc3QgQkc9bmV3IFJlZ0V4cCgie3tcXHMqKC4rPylcXHMqfX0iLCJnIik7ZnVuY3Rpb24gRmhlKGMpe2xldCBs'@; put 'PVtdO2lmKCJzdHJpbmciPT10eXBlb2YgYyl7bGV0IGE7Zm9yKDthPUJHLmV4ZWMoYyk7KWwucHVzaChhWzFdKTtCRy5sYXN0SW5kZXg9MH1yZXR1cm4gbH1mdW5jdGlvbiBsRShjLGwsYSl7Y29uc3QgZD1gJHtjfWAsaD1kLnJlcGxhY2UoQkcsKGYsdik9PntsZXQgTT1sW3ZdO3JldHVybiBu'@; put 'dWxsPT1NJiYoYS5wdXNoKGZ1bmN0aW9uIG1HZShjKXtyZXR1cm4gbmV3IG5yKDMwMDMsITEpfSgpKSxNPSIiKSxNLnRvU3RyaW5nKCl9KTtyZXR1cm4gaD09ZD9jOmh9Y29uc3QgciRlPS8tKyhbYS16MC05XSkvZztmdW5jdGlvbiBqRyhjKXtyZXR1cm4gYy5yZXBsYWNlKHIkZSwoLi4ubCk9'@; put 'PmxbMV0udG9VcHBlckNhc2UoKSl9ZnVuY3Rpb24gRGgoYyxsLGEpe3N3aXRjaChsLnR5cGUpe2Nhc2Uga3MuVHJpZ2dlcjpyZXR1cm4gYy52aXNpdFRyaWdnZXIobCxhKTtjYXNlIGtzLlN0YXRlOnJldHVybiBjLnZpc2l0U3RhdGUobCxhKTtjYXNlIGtzLlRyYW5zaXRpb246cmV0dXJuIGMu'@; put 'dmlzaXRUcmFuc2l0aW9uKGwsYSk7Y2FzZSBrcy5TZXF1ZW5jZTpyZXR1cm4gYy52aXNpdFNlcXVlbmNlKGwsYSk7Y2FzZSBrcy5Hcm91cDpyZXR1cm4gYy52aXNpdEdyb3VwKGwsYSk7Y2FzZSBrcy5BbmltYXRlOnJldHVybiBjLnZpc2l0QW5pbWF0ZShsLGEpO2Nhc2Uga3MuS2V5ZnJhbWVz'@; put 'OnJldHVybiBjLnZpc2l0S2V5ZnJhbWVzKGwsYSk7Y2FzZSBrcy5TdHlsZTpyZXR1cm4gYy52aXNpdFN0eWxlKGwsYSk7Y2FzZSBrcy5SZWZlcmVuY2U6cmV0dXJuIGMudmlzaXRSZWZlcmVuY2UobCxhKTtjYXNlIGtzLkFuaW1hdGVDaGlsZDpyZXR1cm4gYy52aXNpdEFuaW1hdGVDaGlsZChs'@; put 'LGEpO2Nhc2Uga3MuQW5pbWF0ZVJlZjpyZXR1cm4gYy52aXNpdEFuaW1hdGVSZWYobCxhKTtjYXNlIGtzLlF1ZXJ5OnJldHVybiBjLnZpc2l0UXVlcnkobCxhKTtjYXNlIGtzLlN0YWdnZXI6cmV0dXJuIGMudmlzaXRTdGFnZ2VyKGwsYSk7ZGVmYXVsdDp0aHJvdyBmdW5jdGlvbiB2R2UoYyl7'@; put 'cmV0dXJuIG5ldyBucigzMDA0LCExKX0oKX19ZnVuY3Rpb24gekcoYyxsKXtyZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUoYylbbF19Y29uc3QgcyRlPW5ldyBTZXQoWyJ3aWR0aCIsImhlaWdodCIsIm1pbldpZHRoIiwibWluSGVpZ2h0IiwibWF4V2lkdGgiLCJtYXhIZWlnaHQiLCJs'@; put 'ZWZ0IiwidG9wIiwiYm90dG9tIiwicmlnaHQiLCJmb250U2l6ZSIsIm91dGxpbmVXaWR0aCIsIm91dGxpbmVPZmZzZXQiLCJwYWRkaW5nVG9wIiwicGFkZGluZ0xlZnQiLCJwYWRkaW5nQm90dG9tIiwicGFkZGluZ1JpZ2h0IiwibWFyZ2luVG9wIiwibWFyZ2luTGVmdCIsIm1hcmdpbkJvdHRv'@; put 'bSIsIm1hcmdpblJpZ2h0IiwiYm9yZGVyUmFkaXVzIiwiYm9yZGVyV2lkdGgiLCJib3JkZXJUb3BXaWR0aCIsImJvcmRlckxlZnRXaWR0aCIsImJvcmRlclJpZ2h0V2lkdGgiLCJib3JkZXJCb3R0b21XaWR0aCIsInRleHRJbmRlbnQiLCJwZXJzcGVjdGl2ZSJdKTtjbGFzcyBIaGUgZXh0ZW5k'@; put 'cyBGR3tub3JtYWxpemVQcm9wZXJ0eU5hbWUobCxhKXtyZXR1cm4gakcobCl9bm9ybWFsaXplU3R5bGVWYWx1ZShsLGEsZCxoKXtsZXQgZj0iIjtjb25zdCB2PWQudG9TdHJpbmcoKS50cmltKCk7aWYocyRlLmhhcyhhKSYmMCE9PWQmJiIwIiE9PWQpaWYoIm51bWJlciI9PXR5cGVvZiBkKWY9'@; put 'InB4IjtlbHNle2NvbnN0IE09ZC5tYXRjaCgvXlsrLV0/W1xkXC5dKyhbYS16XSopJC8pO00mJjA9PU1bMV0ubGVuZ3RoJiZoLnB1c2goZnVuY3Rpb24geUdlKGMsbCl7cmV0dXJuIG5ldyBucigzMDA1LCExKX0oKSl9cmV0dXJuIHYrZn19Y29uc3QgU089IioiO2NvbnN0IE1PPW5ldyBTZXQo'@; put 'WyJ0cnVlIiwiMSJdKSx4Tz1uZXcgU2V0KFsiZmFsc2UiLCIwIl0pO2Z1bmN0aW9uIE5oZShjLGwpe2NvbnN0IGE9TU8uaGFzKGMpfHx4Ty5oYXMoYyksZD1NTy5oYXMobCl8fHhPLmhhcyhsKTtyZXR1cm4oaCxmKT0+e2xldCB2PWM9PVNPfHxjPT1oLE09bD09U098fGw9PWY7cmV0dXJuIXYm'@; put 'JmEmJiJib29sZWFuIj09dHlwZW9mIGgmJih2PWg/TU8uaGFzKGMpOnhPLmhhcyhjKSksIU0mJmQmJiJib29sZWFuIj09dHlwZW9mIGYmJihNPWY/TU8uaGFzKGwpOnhPLmhhcyhsKSksdiYmTX19Y29uc3QgdSRlPW5ldyBSZWdFeHAoInMqOnNlbGZzKiw/IiwiZyIpO2Z1bmN0aW9uIFVHKGMs'@; put 'bCxhLGQpe3JldHVybiBuZXcgZCRlKGMpLmJ1aWxkKGwsYSxkKX1jbGFzcyBkJGV7Y29uc3RydWN0b3IobCl7dGhpcy5fZHJpdmVyPWx9YnVpbGQobCxhLGQpe2NvbnN0IGg9bmV3IHAkZShhKTtyZXR1cm4gdGhpcy5fcmVzZXRDb250ZXh0U3R5bGVUaW1pbmdTdGF0ZShoKSxEaCh0aGlzLG9F'@; put 'KGwpLGgpfV9yZXNldENvbnRleHRTdHlsZVRpbWluZ1N0YXRlKGwpe2wuY3VycmVudFF1ZXJ5U2VsZWN0b3I9IiIsbC5jb2xsZWN0ZWRTdHlsZXM9bmV3IE1hcCxsLmNvbGxlY3RlZFN0eWxlcy5zZXQoIiIsbmV3IE1hcCksbC5jdXJyZW50VGltZT0wfXZpc2l0VHJpZ2dlcihsLGEpe2xldCBk'@; put 'PWEucXVlcnlDb3VudD0wLGg9YS5kZXBDb3VudD0wO2NvbnN0IGY9W10sdj1bXTtyZXR1cm4iQCI9PWwubmFtZS5jaGFyQXQoMCkmJmEuZXJyb3JzLnB1c2goZnVuY3Rpb24gYkdlKCl7cmV0dXJuIG5ldyBucigzMDA2LCExKX0oKSksbC5kZWZpbml0aW9ucy5mb3JFYWNoKE09PntpZih0aGlz'@; put 'Ll9yZXNldENvbnRleHRTdHlsZVRpbWluZ1N0YXRlKGEpLE0udHlwZT09a3MuU3RhdGUpe2NvbnN0IEk9TSxHPUkubmFtZTtHLnRvU3RyaW5nKCkuc3BsaXQoL1xzKixccyovKS5mb3JFYWNoKHJlPT57SS5uYW1lPXJlLGYucHVzaCh0aGlzLnZpc2l0U3RhdGUoSSxhKSl9KSxJLm5hbWU9R31l'@; put 'bHNlIGlmKE0udHlwZT09a3MuVHJhbnNpdGlvbil7Y29uc3QgST10aGlzLnZpc2l0VHJhbnNpdGlvbihNLGEpO2QrPUkucXVlcnlDb3VudCxoKz1JLmRlcENvdW50LHYucHVzaChJKX1lbHNlIGEuZXJyb3JzLnB1c2goZnVuY3Rpb24gX0dlKCl7cmV0dXJuIG5ldyBucigzMDA3LCExKX0oKSl9'@; put 'KSx7dHlwZTprcy5UcmlnZ2VyLG5hbWU6bC5uYW1lLHN0YXRlczpmLHRyYW5zaXRpb25zOnYscXVlcnlDb3VudDpkLGRlcENvdW50Omgsb3B0aW9uczpudWxsfX12aXNpdFN0YXRlKGwsYSl7Y29uc3QgZD10aGlzLnZpc2l0U3R5bGUobC5zdHlsZXMsYSksaD1sLm9wdGlvbnMmJmwub3B0aW9u'@; put 'cy5wYXJhbXN8fG51bGw7aWYoZC5jb250YWluc0R5bmFtaWNTdHlsZXMpe2NvbnN0IGY9bmV3IFNldCx2PWh8fHt9O2Quc3R5bGVzLmZvckVhY2goTT0+e00gaW5zdGFuY2VvZiBNYXAmJk0uZm9yRWFjaChJPT57RmhlKEkpLmZvckVhY2goRz0+e3YuaGFzT3duUHJvcGVydHkoRyl8fGYuYWRk'@; put 'KEcpfSl9KX0pLGYuc2l6ZSYmYS5lcnJvcnMucHVzaChmdW5jdGlvbiB3R2UoYyxsKXtyZXR1cm4gbmV3IG5yKDMwMDgsITEpfSgwLGYudmFsdWVzKCkpKX1yZXR1cm57dHlwZTprcy5TdGF0ZSxuYW1lOmwubmFtZSxzdHlsZTpkLG9wdGlvbnM6aD97cGFyYW1zOmh9Om51bGx9fXZpc2l0VHJh'@; put 'bnNpdGlvbihsLGEpe2EucXVlcnlDb3VudD0wLGEuZGVwQ291bnQ9MDtjb25zdCBkPURoKHRoaXMsb0UobC5hbmltYXRpb24pLGEpLGg9ZnVuY3Rpb24gbyRlKGMsbCl7Y29uc3QgYT1bXTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGM/Yy5zcGxpdCgvXHMqLFxzKi8pLmZvckVhY2goZD0+ZnVu'@; put 'Y3Rpb24gbCRlKGMsbCxhKXtpZigiOiI9PWNbMF0pe2NvbnN0IEk9ZnVuY3Rpb24gYyRlKGMsbCl7c3dpdGNoKGMpe2Nhc2UiOmVudGVyIjpyZXR1cm4idm9pZCA9PiAqIjtjYXNlIjpsZWF2ZSI6cmV0dXJuIiogPT4gdm9pZCI7Y2FzZSI6aW5jcmVtZW50IjpyZXR1cm4oYSxkKT0+cGFyc2VG'@; put 'bG9hdChkKT5wYXJzZUZsb2F0KGEpO2Nhc2UiOmRlY3JlbWVudCI6cmV0dXJuKGEsZCk9PnBhcnNlRmxvYXQoZCk8cGFyc2VGbG9hdChhKTtkZWZhdWx0OnJldHVybiBsLnB1c2goZnVuY3Rpb24gSUdlKGMpe3JldHVybiBuZXcgbnIoMzAxNiwhMSl9KCkpLCIqID0+ICoifX0oYyxhKTtpZigi'@; put 'ZnVuY3Rpb24iPT10eXBlb2YgSSlyZXR1cm4gdm9pZCBsLnB1c2goSSk7Yz1JfWNvbnN0IGQ9Yy5tYXRjaCgvXihcKnxbLVx3XSspXHMqKDw/Wz0tXT4pXHMqKFwqfFstXHddKykkLyk7aWYobnVsbD09ZHx8ZC5sZW5ndGg8NClyZXR1cm4gYS5wdXNoKGZ1bmN0aW9uIERHZShjKXtyZXR1cm4g'@; put 'bmV3IG5yKDMwMTUsITEpfSgpKSxsO2NvbnN0IGg9ZFsxXSxmPWRbMl0sdj1kWzNdO2wucHVzaChOaGUoaCx2KSksIjwiPT1mWzBdJiYoaCE9U098fHYhPVNPKSYmbC5wdXNoKE5oZSh2LGgpKX0oZCxhLGwpKTphLnB1c2goYyksYX0obC5leHByLGEuZXJyb3JzKTtyZXR1cm57dHlwZTprcy5U'@; put 'cmFuc2l0aW9uLG1hdGNoZXJzOmgsYW5pbWF0aW9uOmQscXVlcnlDb3VudDphLnF1ZXJ5Q291bnQsZGVwQ291bnQ6YS5kZXBDb3VudCxvcHRpb25zOkg3KGwub3B0aW9ucyl9fXZpc2l0U2VxdWVuY2UobCxhKXtyZXR1cm57dHlwZTprcy5TZXF1ZW5jZSxzdGVwczpsLnN0ZXBzLm1hcChkPT5E'@; put 'aCh0aGlzLGQsYSkpLG9wdGlvbnM6SDcobC5vcHRpb25zKX19dmlzaXRHcm91cChsLGEpe2NvbnN0IGQ9YS5jdXJyZW50VGltZTtsZXQgaD0wO2NvbnN0IGY9bC5zdGVwcy5tYXAodj0+e2EuY3VycmVudFRpbWU9ZDtjb25zdCBNPURoKHRoaXMsdixhKTtyZXR1cm4gaD1NYXRoLm1heChoLGEu'@; put 'Y3VycmVudFRpbWUpLE19KTtyZXR1cm4gYS5jdXJyZW50VGltZT1oLHt0eXBlOmtzLkdyb3VwLHN0ZXBzOmYsb3B0aW9uczpINyhsLm9wdGlvbnMpfX12aXNpdEFuaW1hdGUobCxhKXtjb25zdCBkPWZ1bmN0aW9uIG0kZShjLGwpe2lmKGMuaGFzT3duUHJvcGVydHkoImR1cmF0aW9uIikpcmV0'@; put 'dXJuIGM7aWYoIm51bWJlciI9PXR5cGVvZiBjKXJldHVybiBaRyhDTyhjLGwpLmR1cmF0aW9uLDAsIiIpO2NvbnN0IGE9YztpZihhLnNwbGl0KC9ccysvKS5zb21lKGY9PiJ7Ij09Zi5jaGFyQXQoMCkmJiJ7Ij09Zi5jaGFyQXQoMSkpKXtjb25zdCBmPVpHKDAsMCwiIik7cmV0dXJuIGYuZHlu'@; put 'YW1pYz0hMCxmLnN0clZhbHVlPWEsZn1jb25zdCBoPUNPKGEsbCk7cmV0dXJuIFpHKGguZHVyYXRpb24saC5kZWxheSxoLmVhc2luZyl9KGwudGltaW5ncyxhLmVycm9ycyk7YS5jdXJyZW50QW5pbWF0ZVRpbWluZ3M9ZDtsZXQgaCxmPWwuc3R5bGVzP2wuc3R5bGVzOmxvKHt9KTtpZihmLnR5'@; put 'cGU9PWtzLktleWZyYW1lcyloPXRoaXMudmlzaXRLZXlmcmFtZXMoZixhKTtlbHNle2xldCB2PWwuc3R5bGVzLE09ITE7aWYoIXYpe009ITA7Y29uc3QgRz17fTtkLmVhc2luZyYmKEcuZWFzaW5nPWQuZWFzaW5nKSx2PWxvKEcpfWEuY3VycmVudFRpbWUrPWQuZHVyYXRpb24rZC5kZWxheTtj'@; put 'b25zdCBJPXRoaXMudmlzaXRTdHlsZSh2LGEpO0kuaXNFbXB0eVN0ZXA9TSxoPUl9cmV0dXJuIGEuY3VycmVudEFuaW1hdGVUaW1pbmdzPW51bGwse3R5cGU6a3MuQW5pbWF0ZSx0aW1pbmdzOmQsc3R5bGU6aCxvcHRpb25zOm51bGx9fXZpc2l0U3R5bGUobCxhKXtjb25zdCBkPXRoaXMuX21h'@; put 'a2VTdHlsZUFzdChsLGEpO3JldHVybiB0aGlzLl92YWxpZGF0ZVN0eWxlQXN0KGQsYSksZH1fbWFrZVN0eWxlQXN0KGwsYSl7Y29uc3QgZD1bXSxoPUFycmF5LmlzQXJyYXkobC5zdHlsZXMpP2wuc3R5bGVzOltsLnN0eWxlc107Zm9yKGxldCBNIG9mIGgpInN0cmluZyI9PXR5cGVvZiBNP009'@; put 'PT1yZz9kLnB1c2goTSk6YS5lcnJvcnMucHVzaChuZXcgbnIoMzAwMiwhMSkpOmQucHVzaChuZXcgTWFwKE9iamVjdC5lbnRyaWVzKE0pKSk7bGV0IGY9ITEsdj1udWxsO3JldHVybiBkLmZvckVhY2goTT0+e2lmKE0gaW5zdGFuY2VvZiBNYXAmJihNLmhhcygiZWFzaW5nIikmJih2PU0uZ2V0'@; put 'KCJlYXNpbmciKSxNLmRlbGV0ZSgiZWFzaW5nIikpLCFmKSlmb3IobGV0IEkgb2YgTS52YWx1ZXMoKSlpZihJLnRvU3RyaW5nKCkuaW5kZXhPZigie3siKT49MCl7Zj0hMDticmVha319KSx7dHlwZTprcy5TdHlsZSxzdHlsZXM6ZCxlYXNpbmc6dixvZmZzZXQ6bC5vZmZzZXQsY29udGFpbnNE'@; put 'eW5hbWljU3R5bGVzOmYsb3B0aW9uczpudWxsfX1fdmFsaWRhdGVTdHlsZUFzdChsLGEpe2NvbnN0IGQ9YS5jdXJyZW50QW5pbWF0ZVRpbWluZ3M7bGV0IGg9YS5jdXJyZW50VGltZSxmPWEuY3VycmVudFRpbWU7ZCYmZj4wJiYoZi09ZC5kdXJhdGlvbitkLmRlbGF5KSxsLnN0eWxlcy5mb3JF'@; put 'YWNoKHY9Pnsic3RyaW5nIiE9dHlwZW9mIHYmJnYuZm9yRWFjaCgoTSxJKT0+e2NvbnN0IEc9YS5jb2xsZWN0ZWRTdHlsZXMuZ2V0KGEuY3VycmVudFF1ZXJ5U2VsZWN0b3IpLHJlPUcuZ2V0KEkpO2xldCB1ZT0hMDtyZSYmKGYhPWgmJmY+PXJlLnN0YXJ0VGltZSYmaDw9cmUuZW5kVGltZSYm'@; put 'KGEuZXJyb3JzLnB1c2goZnVuY3Rpb24gU0dlKGMsbCxhLGQsaCl7cmV0dXJuIG5ldyBucigzMDEwLCExKX0oKSksdWU9ITEpLGY9cmUuc3RhcnRUaW1lKSx1ZSYmRy5zZXQoSSx7c3RhcnRUaW1lOmYsZW5kVGltZTpofSksYS5vcHRpb25zJiZmdW5jdGlvbiBuJGUoYyxsLGEpe2NvbnN0IGQ9'@; put 'bC5wYXJhbXN8fHt9LGg9RmhlKGMpO2gubGVuZ3RoJiZoLmZvckVhY2goZj0+e2QuaGFzT3duUHJvcGVydHkoZil8fGEucHVzaChmdW5jdGlvbiBnR2UoYyl7cmV0dXJuIG5ldyBucigzMDAxLCExKX0oKSl9KX0oTSxhLm9wdGlvbnMsYS5lcnJvcnMpfSl9KX12aXNpdEtleWZyYW1lcyhsLGEp'@; put 'e2NvbnN0IGQ9e3R5cGU6a3MuS2V5ZnJhbWVzLHN0eWxlczpbXSxvcHRpb25zOm51bGx9O2lmKCFhLmN1cnJlbnRBbmltYXRlVGltaW5ncylyZXR1cm4gYS5lcnJvcnMucHVzaChmdW5jdGlvbiBNR2UoKXtyZXR1cm4gbmV3IG5yKDMwMTEsITEpfSgpKSxkO2xldCBmPTA7Y29uc3Qgdj1bXTts'@; put 'ZXQgTT0hMSxJPSExLEc9MDtjb25zdCByZT1sLnN0ZXBzLm1hcChwdD0+e2NvbnN0IGR0PXRoaXMuX21ha2VTdHlsZUFzdChwdCxhKTtsZXQgcXQ9bnVsbCE9ZHQub2Zmc2V0P2R0Lm9mZnNldDpmdW5jdGlvbiBnJGUoYyl7aWYoInN0cmluZyI9PXR5cGVvZiBjKXJldHVybiBudWxsO2xldCBs'@; put 'PW51bGw7aWYoQXJyYXkuaXNBcnJheShjKSljLmZvckVhY2goYT0+e2lmKGEgaW5zdGFuY2VvZiBNYXAmJmEuaGFzKCJvZmZzZXQiKSl7Y29uc3QgZD1hO2w9cGFyc2VGbG9hdChkLmdldCgib2Zmc2V0IikpLGQuZGVsZXRlKCJvZmZzZXQiKX19KTtlbHNlIGlmKGMgaW5zdGFuY2VvZiBNYXAm'@; put 'JmMuaGFzKCJvZmZzZXQiKSl7Y29uc3QgYT1jO2w9cGFyc2VGbG9hdChhLmdldCgib2Zmc2V0IikpLGEuZGVsZXRlKCJvZmZzZXQiKX1yZXR1cm4gbH0oZHQuc3R5bGVzKSxtbj0wO3JldHVybiBudWxsIT1xdCYmKGYrKyxtbj1kdC5vZmZzZXQ9cXQpLEk9SXx8bW48MHx8bW4+MSxNPU18fG1u'@; put 'PEcsRz1tbix2LnB1c2gobW4pLGR0fSk7SSYmYS5lcnJvcnMucHVzaChmdW5jdGlvbiB4R2UoKXtyZXR1cm4gbmV3IG5yKDMwMTIsITEpfSgpKSxNJiZhLmVycm9ycy5wdXNoKGZ1bmN0aW9uIEVHZSgpe3JldHVybiBuZXcgbnIoMzIwMCwhMSl9KCkpO2NvbnN0IHVlPWwuc3RlcHMubGVuZ3Ro'@; put 'O2xldCB5ZT0wO2Y+MCYmZjx1ZT9hLmVycm9ycy5wdXNoKGZ1bmN0aW9uIFRHZSgpe3JldHVybiBuZXcgbnIoMzIwMiwhMSl9KCkpOjA9PWYmJih5ZT0xLyh1ZS0xKSk7Y29uc3QgRWU9dWUtMSxCZT1hLmN1cnJlbnRUaW1lLEdlPWEuY3VycmVudEFuaW1hdGVUaW1pbmdzLHN0PUdlLmR1cmF0'@; put 'aW9uO3JldHVybiByZS5mb3JFYWNoKChwdCxkdCk9Pntjb25zdCBxdD15ZT4wP2R0PT1FZT8xOnllKmR0OnZbZHRdLG1uPXF0KnN0O2EuY3VycmVudFRpbWU9QmUrR2UuZGVsYXkrbW4sR2UuZHVyYXRpb249bW4sdGhpcy5fdmFsaWRhdGVTdHlsZUFzdChwdCxhKSxwdC5vZmZzZXQ9cXQsZC5z'@; put 'dHlsZXMucHVzaChwdCl9KSxkfXZpc2l0UmVmZXJlbmNlKGwsYSl7cmV0dXJue3R5cGU6a3MuUmVmZXJlbmNlLGFuaW1hdGlvbjpEaCh0aGlzLG9FKGwuYW5pbWF0aW9uKSxhKSxvcHRpb25zOkg3KGwub3B0aW9ucyl9fXZpc2l0QW5pbWF0ZUNoaWxkKGwsYSl7cmV0dXJuIGEuZGVwQ291bnQr'@; put 'Kyx7dHlwZTprcy5BbmltYXRlQ2hpbGQsb3B0aW9uczpINyhsLm9wdGlvbnMpfX12aXNpdEFuaW1hdGVSZWYobCxhKXtyZXR1cm57dHlwZTprcy5BbmltYXRlUmVmLGFuaW1hdGlvbjp0aGlzLnZpc2l0UmVmZXJlbmNlKGwuYW5pbWF0aW9uLGEpLG9wdGlvbnM6SDcobC5vcHRpb25zKX19dmlz'@; put 'aXRRdWVyeShsLGEpe2NvbnN0IGQ9YS5jdXJyZW50UXVlcnlTZWxlY3RvcixoPWwub3B0aW9uc3x8e307YS5xdWVyeUNvdW50KyssYS5jdXJyZW50UXVlcnk9bDtjb25zdFtmLHZdPWZ1bmN0aW9uIGgkZShjKXtjb25zdCBsPSEhYy5zcGxpdCgvXHMqLFxzKi8pLmZpbmQoYT0+IjpzZWxmIj09'@; put 'YSk7cmV0dXJuIGwmJihjPWMucmVwbGFjZSh1JGUsIiIpKSxjPWMucmVwbGFjZSgvQFwqL2csd08pLnJlcGxhY2UoL0BcdysvZyxhPT53TysiLSIrYS5zbGljZSgxKSkucmVwbGFjZSgvOmFuaW1hdGluZy9nLE5HKSxbYyxsXX0obC5zZWxlY3Rvcik7YS5jdXJyZW50UXVlcnlTZWxlY3Rvcj1k'@; put 'Lmxlbmd0aD9kKyIgIitmOmYsa2goYS5jb2xsZWN0ZWRTdHlsZXMsYS5jdXJyZW50UXVlcnlTZWxlY3RvcixuZXcgTWFwKTtjb25zdCBNPURoKHRoaXMsb0UobC5hbmltYXRpb24pLGEpO3JldHVybiBhLmN1cnJlbnRRdWVyeT1udWxsLGEuY3VycmVudFF1ZXJ5U2VsZWN0b3I9ZCx7dHlwZTpr'@; put 'cy5RdWVyeSxzZWxlY3RvcjpmLGxpbWl0OmgubGltaXR8fDAsb3B0aW9uYWw6ISFoLm9wdGlvbmFsLGluY2x1ZGVTZWxmOnYsYW5pbWF0aW9uOk0sb3JpZ2luYWxTZWxlY3RvcjpsLnNlbGVjdG9yLG9wdGlvbnM6SDcobC5vcHRpb25zKX19dmlzaXRTdGFnZ2VyKGwsYSl7YS5jdXJyZW50UXVl'@; put 'cnl8fGEuZXJyb3JzLnB1c2goZnVuY3Rpb24gQUdlKCl7cmV0dXJuIG5ldyBucigzMDEzLCExKX0oKSk7Y29uc3QgZD0iZnVsbCI9PT1sLnRpbWluZ3M/e2R1cmF0aW9uOjAsZGVsYXk6MCxlYXNpbmc6ImZ1bGwifTpDTyhsLnRpbWluZ3MsYS5lcnJvcnMsITApO3JldHVybnt0eXBlOmtzLlN0'@; put 'YWdnZXIsYW5pbWF0aW9uOkRoKHRoaXMsb0UobC5hbmltYXRpb24pLGEpLHRpbWluZ3M6ZCxvcHRpb25zOm51bGx9fX1jbGFzcyBwJGV7Y29uc3RydWN0b3IobCl7dGhpcy5lcnJvcnM9bCx0aGlzLnF1ZXJ5Q291bnQ9MCx0aGlzLmRlcENvdW50PTAsdGhpcy5jdXJyZW50VHJhbnNpdGlvbj1u'@; put 'dWxsLHRoaXMuY3VycmVudFF1ZXJ5PW51bGwsdGhpcy5jdXJyZW50UXVlcnlTZWxlY3Rvcj1udWxsLHRoaXMuY3VycmVudEFuaW1hdGVUaW1pbmdzPW51bGwsdGhpcy5jdXJyZW50VGltZT0wLHRoaXMuY29sbGVjdGVkU3R5bGVzPW5ldyBNYXAsdGhpcy5vcHRpb25zPW51bGwsdGhpcy51bnN1'@; put 'cHBvcnRlZENTU1Byb3BlcnRpZXNGb3VuZD1uZXcgU2V0fX1mdW5jdGlvbiBINyhjKXtyZXR1cm4gYz8oYz17Li4uY30pLnBhcmFtcyYmKGMucGFyYW1zPWZ1bmN0aW9uIGYkZShjKXtyZXR1cm4gYz97Li4uY306bnVsbH0oYy5wYXJhbXMpKTpjPXt9LGN9ZnVuY3Rpb24gWkcoYyxsLGEpe3Jl'@; put 'dHVybntkdXJhdGlvbjpjLGRlbGF5OmwsZWFzaW5nOmF9fWZ1bmN0aW9uIFdHKGMsbCxhLGQsaCxmLHY9bnVsbCxNPSExKXtyZXR1cm57dHlwZToxLGVsZW1lbnQ6YyxrZXlmcmFtZXM6bCxwcmVTdHlsZVByb3BzOmEscG9zdFN0eWxlUHJvcHM6ZCxkdXJhdGlvbjpoLGRlbGF5OmYsdG90YWxU'@; put 'aW1lOmgrZixlYXNpbmc6dixzdWJUaW1lbGluZTpNfX1jbGFzcyBFT3tjb25zdHJ1Y3Rvcigpe3RoaXMuX21hcD1uZXcgTWFwfWdldChsKXtyZXR1cm4gdGhpcy5fbWFwLmdldChsKXx8W119YXBwZW5kKGwsYSl7bGV0IGQ9dGhpcy5fbWFwLmdldChsKTtkfHx0aGlzLl9tYXAuc2V0KGwsZD1b'@; put 'XSksZC5wdXNoKC4uLmEpfWhhcyhsKXtyZXR1cm4gdGhpcy5fbWFwLmhhcyhsKX1jbGVhcigpe3RoaXMuX21hcC5jbGVhcigpfX1jb25zdCBiJGU9bmV3IFJlZ0V4cCgiOmVudGVyIiwiZyIpLHckZT1uZXcgUmVnRXhwKCI6bGVhdmUiLCJnIik7ZnVuY3Rpb24gWUcoYyxsLGEsZCxoLGY9bmV3'@; put 'IE1hcCx2PW5ldyBNYXAsTSxJLEc9W10pe3JldHVybihuZXcgQyRlKS5idWlsZEtleWZyYW1lcyhjLGwsYSxkLGgsZix2LE0sSSxHKX1jbGFzcyBDJGV7YnVpbGRLZXlmcmFtZXMobCxhLGQsaCxmLHYsTSxJLEcscmU9W10pe0c9R3x8bmV3IEVPO2NvbnN0IHVlPW5ldyBHRyhsLGEsRyxoLGYs'@; put 'cmUsW10pO3VlLm9wdGlvbnM9STtjb25zdCB5ZT1JLmRlbGF5P2ZnKEkuZGVsYXkpOjA7dWUuY3VycmVudFRpbWVsaW5lLmRlbGF5TmV4dFN0ZXAoeWUpLHVlLmN1cnJlbnRUaW1lbGluZS5zZXRTdHlsZXMoW3ZdLG51bGwsdWUuZXJyb3JzLEkpLERoKHRoaXMsZCx1ZSk7Y29uc3QgRWU9dWUu'@; put 'dGltZWxpbmVzLmZpbHRlcihCZT0+QmUuY29udGFpbnNBbmltYXRpb24oKSk7aWYoRWUubGVuZ3RoJiZNLnNpemUpe2xldCBCZTtmb3IobGV0IEdlPUVlLmxlbmd0aC0xO0dlPj0wO0dlLS0pe2NvbnN0IHN0PUVlW0dlXTtpZihzdC5lbGVtZW50PT09YSl7QmU9c3Q7YnJlYWt9fUJlJiYhQmUu'@; put 'YWxsb3dPbmx5VGltZWxpbmVTdHlsZXMoKSYmQmUuc2V0U3R5bGVzKFtNXSxudWxsLHVlLmVycm9ycyxJKX1yZXR1cm4gRWUubGVuZ3RoP0VlLm1hcChCZT0+QmUuYnVpbGRLZXlmcmFtZXMoKSk6W1dHKGEsW10sW10sW10sMCx5ZSwiIiwhMSldfXZpc2l0VHJpZ2dlcihsLGEpe312aXNpdFN0'@; put 'YXRlKGwsYSl7fXZpc2l0VHJhbnNpdGlvbihsLGEpe312aXNpdEFuaW1hdGVDaGlsZChsLGEpe2NvbnN0IGQ9YS5zdWJJbnN0cnVjdGlvbnMuZ2V0KGEuZWxlbWVudCk7aWYoZCl7Y29uc3QgaD1hLmNyZWF0ZVN1YkNvbnRleHQobC5vcHRpb25zKSxmPWEuY3VycmVudFRpbWVsaW5lLmN1cnJl'@; put 'bnRUaW1lLHY9dGhpcy5fdmlzaXRTdWJJbnN0cnVjdGlvbnMoZCxoLGgub3B0aW9ucyk7ZiE9diYmYS50cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUodil9YS5wcmV2aW91c05vZGU9bH12aXNpdEFuaW1hdGVSZWYobCxhKXtjb25zdCBkPWEuY3JlYXRlU3ViQ29udGV4dChsLm9wdGlvbnMpO2Qu'@; put 'dHJhbnNmb3JtSW50b05ld1RpbWVsaW5lKCksdGhpcy5fYXBwbHlBbmltYXRpb25SZWZEZWxheXMoW2wub3B0aW9ucyxsLmFuaW1hdGlvbi5vcHRpb25zXSxhLGQpLHRoaXMudmlzaXRSZWZlcmVuY2UobC5hbmltYXRpb24sZCksYS50cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUoZC5jdXJyZW50'@; put 'VGltZWxpbmUuY3VycmVudFRpbWUpLGEucHJldmlvdXNOb2RlPWx9X2FwcGx5QW5pbWF0aW9uUmVmRGVsYXlzKGwsYSxkKXtmb3IoY29uc3QgaCBvZiBsKXtjb25zdCBmPWg/LmRlbGF5O2lmKGYpe2NvbnN0IHY9Im51bWJlciI9PXR5cGVvZiBmP2Y6ZmcobEUoZixoPy5wYXJhbXM/P3t9LGEu'@; put 'ZXJyb3JzKSk7ZC5kZWxheU5leHRTdGVwKHYpfX19X3Zpc2l0U3ViSW5zdHJ1Y3Rpb25zKGwsYSxkKXtsZXQgZj1hLmN1cnJlbnRUaW1lbGluZS5jdXJyZW50VGltZTtjb25zdCB2PW51bGwhPWQuZHVyYXRpb24/ZmcoZC5kdXJhdGlvbik6bnVsbCxNPW51bGwhPWQuZGVsYXk/ZmcoZC5kZWxh'@; put 'eSk6bnVsbDtyZXR1cm4gMCE9PXYmJmwuZm9yRWFjaChJPT57Y29uc3QgRz1hLmFwcGVuZEluc3RydWN0aW9uVG9UaW1lbGluZShJLHYsTSk7Zj1NYXRoLm1heChmLEcuZHVyYXRpb24rRy5kZWxheSl9KSxmfXZpc2l0UmVmZXJlbmNlKGwsYSl7YS51cGRhdGVPcHRpb25zKGwub3B0aW9ucywh'@; put 'MCksRGgodGhpcyxsLmFuaW1hdGlvbixhKSxhLnByZXZpb3VzTm9kZT1sfXZpc2l0U2VxdWVuY2UobCxhKXtjb25zdCBkPWEuc3ViQ29udGV4dENvdW50O2xldCBoPWE7Y29uc3QgZj1sLm9wdGlvbnM7aWYoZiYmKGYucGFyYW1zfHxmLmRlbGF5KSYmKGg9YS5jcmVhdGVTdWJDb250ZXh0KGYp'@; put 'LGgudHJhbnNmb3JtSW50b05ld1RpbWVsaW5lKCksbnVsbCE9Zi5kZWxheSkpe2gucHJldmlvdXNOb2RlLnR5cGU9PWtzLlN0eWxlJiYoaC5jdXJyZW50VGltZWxpbmUuc25hcHNob3RDdXJyZW50U3R5bGVzKCksaC5wcmV2aW91c05vZGU9VE8pO2NvbnN0IHY9ZmcoZi5kZWxheSk7aC5kZWxh'@; put 'eU5leHRTdGVwKHYpfWwuc3RlcHMubGVuZ3RoJiYobC5zdGVwcy5mb3JFYWNoKHY9PkRoKHRoaXMsdixoKSksaC5jdXJyZW50VGltZWxpbmUuYXBwbHlTdHlsZXNUb0tleWZyYW1lKCksaC5zdWJDb250ZXh0Q291bnQ+ZCYmaC50cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUoKSksYS5wcmV2aW91'@; put 'c05vZGU9bH12aXNpdEdyb3VwKGwsYSl7Y29uc3QgZD1bXTtsZXQgaD1hLmN1cnJlbnRUaW1lbGluZS5jdXJyZW50VGltZTtjb25zdCBmPWwub3B0aW9ucyYmbC5vcHRpb25zLmRlbGF5P2ZnKGwub3B0aW9ucy5kZWxheSk6MDtsLnN0ZXBzLmZvckVhY2godj0+e2NvbnN0IE09YS5jcmVhdGVT'@; put 'dWJDb250ZXh0KGwub3B0aW9ucyk7ZiYmTS5kZWxheU5leHRTdGVwKGYpLERoKHRoaXMsdixNKSxoPU1hdGgubWF4KGgsTS5jdXJyZW50VGltZWxpbmUuY3VycmVudFRpbWUpLGQucHVzaChNLmN1cnJlbnRUaW1lbGluZSl9KSxkLmZvckVhY2godj0+YS5jdXJyZW50VGltZWxpbmUubWVyZ2VU'@; put 'aW1lbGluZUNvbGxlY3RlZFN0eWxlcyh2KSksYS50cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUoaCksYS5wcmV2aW91c05vZGU9bH1fdmlzaXRUaW1pbmcobCxhKXtpZihsLmR5bmFtaWMpe2NvbnN0IGQ9bC5zdHJWYWx1ZTtyZXR1cm4gQ08oYS5wYXJhbXM/bEUoZCxhLnBhcmFtcyxhLmVycm9y'@; put 'cyk6ZCxhLmVycm9ycyl9cmV0dXJue2R1cmF0aW9uOmwuZHVyYXRpb24sZGVsYXk6bC5kZWxheSxlYXNpbmc6bC5lYXNpbmd9fXZpc2l0QW5pbWF0ZShsLGEpe2NvbnN0IGQ9YS5jdXJyZW50QW5pbWF0ZVRpbWluZ3M9dGhpcy5fdmlzaXRUaW1pbmcobC50aW1pbmdzLGEpLGg9YS5jdXJyZW50'@; put 'VGltZWxpbmU7ZC5kZWxheSYmKGEuaW5jcmVtZW50VGltZShkLmRlbGF5KSxoLnNuYXBzaG90Q3VycmVudFN0eWxlcygpKTtjb25zdCBmPWwuc3R5bGU7Zi50eXBlPT1rcy5LZXlmcmFtZXM/dGhpcy52aXNpdEtleWZyYW1lcyhmLGEpOihhLmluY3JlbWVudFRpbWUoZC5kdXJhdGlvbiksdGhp'@; put 'cy52aXNpdFN0eWxlKGYsYSksaC5hcHBseVN0eWxlc1RvS2V5ZnJhbWUoKSksYS5jdXJyZW50QW5pbWF0ZVRpbWluZ3M9bnVsbCxhLnByZXZpb3VzTm9kZT1sfXZpc2l0U3R5bGUobCxhKXtjb25zdCBkPWEuY3VycmVudFRpbWVsaW5lLGg9YS5jdXJyZW50QW5pbWF0ZVRpbWluZ3M7IWgmJmQu'@; put 'aGFzQ3VycmVudFN0eWxlUHJvcGVydGllcygpJiZkLmZvcndhcmRGcmFtZSgpO2NvbnN0IGY9aCYmaC5lYXNpbmd8fGwuZWFzaW5nO2wuaXNFbXB0eVN0ZXA/ZC5hcHBseUVtcHR5U3RlcChmKTpkLnNldFN0eWxlcyhsLnN0eWxlcyxmLGEuZXJyb3JzLGEub3B0aW9ucyksYS5wcmV2aW91c05v'@; put 'ZGU9bH12aXNpdEtleWZyYW1lcyhsLGEpe2NvbnN0IGQ9YS5jdXJyZW50QW5pbWF0ZVRpbWluZ3MsaD1hLmN1cnJlbnRUaW1lbGluZS5kdXJhdGlvbixmPWQuZHVyYXRpb24sTT1hLmNyZWF0ZVN1YkNvbnRleHQoKS5jdXJyZW50VGltZWxpbmU7TS5lYXNpbmc9ZC5lYXNpbmcsbC5zdHlsZXMu'@; put 'Zm9yRWFjaChJPT57TS5mb3J3YXJkVGltZSgoSS5vZmZzZXR8fDApKmYpLE0uc2V0U3R5bGVzKEkuc3R5bGVzLEkuZWFzaW5nLGEuZXJyb3JzLGEub3B0aW9ucyksTS5hcHBseVN0eWxlc1RvS2V5ZnJhbWUoKX0pLGEuY3VycmVudFRpbWVsaW5lLm1lcmdlVGltZWxpbmVDb2xsZWN0ZWRTdHls'@; put 'ZXMoTSksYS50cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUoaCtmKSxhLnByZXZpb3VzTm9kZT1sfXZpc2l0UXVlcnkobCxhKXtjb25zdCBkPWEuY3VycmVudFRpbWVsaW5lLmN1cnJlbnRUaW1lLGg9bC5vcHRpb25zfHx7fSxmPWguZGVsYXk/ZmcoaC5kZWxheSk6MDtmJiYoYS5wcmV2aW91c05v'@; put 'ZGUudHlwZT09PWtzLlN0eWxlfHwwPT1kJiZhLmN1cnJlbnRUaW1lbGluZS5oYXNDdXJyZW50U3R5bGVQcm9wZXJ0aWVzKCkpJiYoYS5jdXJyZW50VGltZWxpbmUuc25hcHNob3RDdXJyZW50U3R5bGVzKCksYS5wcmV2aW91c05vZGU9VE8pO2xldCB2PWQ7Y29uc3QgTT1hLmludm9rZVF1ZXJ5'@; put 'KGwuc2VsZWN0b3IsbC5vcmlnaW5hbFNlbGVjdG9yLGwubGltaXQsbC5pbmNsdWRlU2VsZiwhIWgub3B0aW9uYWwsYS5lcnJvcnMpO2EuY3VycmVudFF1ZXJ5VG90YWw9TS5sZW5ndGg7bGV0IEk9bnVsbDtNLmZvckVhY2goKEcscmUpPT57YS5jdXJyZW50UXVlcnlJbmRleD1yZTtjb25zdCB1'@; put 'ZT1hLmNyZWF0ZVN1YkNvbnRleHQobC5vcHRpb25zLEcpO2YmJnVlLmRlbGF5TmV4dFN0ZXAoZiksRz09PWEuZWxlbWVudCYmKEk9dWUuY3VycmVudFRpbWVsaW5lKSxEaCh0aGlzLGwuYW5pbWF0aW9uLHVlKSx1ZS5jdXJyZW50VGltZWxpbmUuYXBwbHlTdHlsZXNUb0tleWZyYW1lKCksdj1N'@; put 'YXRoLm1heCh2LHVlLmN1cnJlbnRUaW1lbGluZS5jdXJyZW50VGltZSl9KSxhLmN1cnJlbnRRdWVyeUluZGV4PTAsYS5jdXJyZW50UXVlcnlUb3RhbD0wLGEudHJhbnNmb3JtSW50b05ld1RpbWVsaW5lKHYpLEkmJihhLmN1cnJlbnRUaW1lbGluZS5tZXJnZVRpbWVsaW5lQ29sbGVjdGVkU3R5'@; put 'bGVzKEkpLGEuY3VycmVudFRpbWVsaW5lLnNuYXBzaG90Q3VycmVudFN0eWxlcygpKSxhLnByZXZpb3VzTm9kZT1sfXZpc2l0U3RhZ2dlcihsLGEpe2NvbnN0IGQ9YS5wYXJlbnRDb250ZXh0LGg9YS5jdXJyZW50VGltZWxpbmUsZj1sLnRpbWluZ3Msdj1NYXRoLmFicyhmLmR1cmF0aW9uKSxN'@; put 'PXYqKGEuY3VycmVudFF1ZXJ5VG90YWwtMSk7bGV0IEk9diphLmN1cnJlbnRRdWVyeUluZGV4O3N3aXRjaChmLmR1cmF0aW9uPDA/InJldmVyc2UiOmYuZWFzaW5nKXtjYXNlInJldmVyc2UiOkk9TS1JO2JyZWFrO2Nhc2UiZnVsbCI6ST1kLmN1cnJlbnRTdGFnZ2VyVGltZX1jb25zdCByZT1h'@; put 'LmN1cnJlbnRUaW1lbGluZTtJJiZyZS5kZWxheU5leHRTdGVwKEkpO2NvbnN0IHVlPXJlLmN1cnJlbnRUaW1lO0RoKHRoaXMsbC5hbmltYXRpb24sYSksYS5wcmV2aW91c05vZGU9bCxkLmN1cnJlbnRTdGFnZ2VyVGltZT1oLmN1cnJlbnRUaW1lLXVlKyhoLnN0YXJ0VGltZS1kLmN1cnJlbnRU'@; put 'aW1lbGluZS5zdGFydFRpbWUpfX1jb25zdCBUTz17fTtjbGFzcyBHR3tjb25zdHJ1Y3RvcihsLGEsZCxoLGYsdixNLEkpe3RoaXMuX2RyaXZlcj1sLHRoaXMuZWxlbWVudD1hLHRoaXMuc3ViSW5zdHJ1Y3Rpb25zPWQsdGhpcy5fZW50ZXJDbGFzc05hbWU9aCx0aGlzLl9sZWF2ZUNsYXNzTmFt'@; put 'ZT1mLHRoaXMuZXJyb3JzPXYsdGhpcy50aW1lbGluZXM9TSx0aGlzLnBhcmVudENvbnRleHQ9bnVsbCx0aGlzLmN1cnJlbnRBbmltYXRlVGltaW5ncz1udWxsLHRoaXMucHJldmlvdXNOb2RlPVRPLHRoaXMuc3ViQ29udGV4dENvdW50PTAsdGhpcy5vcHRpb25zPXt9LHRoaXMuY3VycmVudFF1'@; put 'ZXJ5SW5kZXg9MCx0aGlzLmN1cnJlbnRRdWVyeVRvdGFsPTAsdGhpcy5jdXJyZW50U3RhZ2dlclRpbWU9MCx0aGlzLmN1cnJlbnRUaW1lbGluZT1JfHxuZXcgQU8odGhpcy5fZHJpdmVyLGEsMCksTS5wdXNoKHRoaXMuY3VycmVudFRpbWVsaW5lKX1nZXQgcGFyYW1zKCl7cmV0dXJuIHRoaXMu'@; put 'b3B0aW9ucy5wYXJhbXN9dXBkYXRlT3B0aW9ucyhsLGEpe2lmKCFsKXJldHVybjtjb25zdCBkPWw7bGV0IGg9dGhpcy5vcHRpb25zO251bGwhPWQuZHVyYXRpb24mJihoLmR1cmF0aW9uPWZnKGQuZHVyYXRpb24pKSxudWxsIT1kLmRlbGF5JiYoaC5kZWxheT1mZyhkLmRlbGF5KSk7Y29uc3Qg'@; put 'Zj1kLnBhcmFtcztpZihmKXtsZXQgdj1oLnBhcmFtczt2fHwodj10aGlzLm9wdGlvbnMucGFyYW1zPXt9KSxPYmplY3Qua2V5cyhmKS5mb3JFYWNoKE09PnsoIWF8fCF2Lmhhc093blByb3BlcnR5KE0pKSYmKHZbTV09bEUoZltNXSx2LHRoaXMuZXJyb3JzKSl9KX19X2NvcHlPcHRpb25zKCl7'@; put 'Y29uc3QgbD17fTtpZih0aGlzLm9wdGlvbnMpe2NvbnN0IGE9dGhpcy5vcHRpb25zLnBhcmFtcztpZihhKXtjb25zdCBkPWwucGFyYW1zPXt9O09iamVjdC5rZXlzKGEpLmZvckVhY2goaD0+e2RbaF09YVtoXX0pfX1yZXR1cm4gbH1jcmVhdGVTdWJDb250ZXh0KGw9bnVsbCxhLGQpe2NvbnN0'@; put 'IGg9YXx8dGhpcy5lbGVtZW50LGY9bmV3IEdHKHRoaXMuX2RyaXZlcixoLHRoaXMuc3ViSW5zdHJ1Y3Rpb25zLHRoaXMuX2VudGVyQ2xhc3NOYW1lLHRoaXMuX2xlYXZlQ2xhc3NOYW1lLHRoaXMuZXJyb3JzLHRoaXMudGltZWxpbmVzLHRoaXMuY3VycmVudFRpbWVsaW5lLmZvcmsoaCxkfHww'@; put 'KSk7cmV0dXJuIGYucHJldmlvdXNOb2RlPXRoaXMucHJldmlvdXNOb2RlLGYuY3VycmVudEFuaW1hdGVUaW1pbmdzPXRoaXMuY3VycmVudEFuaW1hdGVUaW1pbmdzLGYub3B0aW9ucz10aGlzLl9jb3B5T3B0aW9ucygpLGYudXBkYXRlT3B0aW9ucyhsKSxmLmN1cnJlbnRRdWVyeUluZGV4PXRo'@; put 'aXMuY3VycmVudFF1ZXJ5SW5kZXgsZi5jdXJyZW50UXVlcnlUb3RhbD10aGlzLmN1cnJlbnRRdWVyeVRvdGFsLGYucGFyZW50Q29udGV4dD10aGlzLHRoaXMuc3ViQ29udGV4dENvdW50KyssZn10cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUobCl7cmV0dXJuIHRoaXMucHJldmlvdXNOb2RlPVRP'@; put 'LHRoaXMuY3VycmVudFRpbWVsaW5lPXRoaXMuY3VycmVudFRpbWVsaW5lLmZvcmsodGhpcy5lbGVtZW50LGwpLHRoaXMudGltZWxpbmVzLnB1c2godGhpcy5jdXJyZW50VGltZWxpbmUpLHRoaXMuY3VycmVudFRpbWVsaW5lfWFwcGVuZEluc3RydWN0aW9uVG9UaW1lbGluZShsLGEsZCl7Y29u'@; put 'c3QgaD17ZHVyYXRpb246YT8/bC5kdXJhdGlvbixkZWxheTp0aGlzLmN1cnJlbnRUaW1lbGluZS5jdXJyZW50VGltZSsoZD8/MCkrbC5kZWxheSxlYXNpbmc6IiJ9LGY9bmV3IFMkZSh0aGlzLl9kcml2ZXIsbC5lbGVtZW50LGwua2V5ZnJhbWVzLGwucHJlU3R5bGVQcm9wcyxsLnBvc3RTdHls'@; put 'ZVByb3BzLGgsbC5zdHJldGNoU3RhcnRpbmdLZXlmcmFtZSk7cmV0dXJuIHRoaXMudGltZWxpbmVzLnB1c2goZiksaH1pbmNyZW1lbnRUaW1lKGwpe3RoaXMuY3VycmVudFRpbWVsaW5lLmZvcndhcmRUaW1lKHRoaXMuY3VycmVudFRpbWVsaW5lLmR1cmF0aW9uK2wpfWRlbGF5TmV4dFN0ZXAo'@; put 'bCl7bD4wJiZ0aGlzLmN1cnJlbnRUaW1lbGluZS5kZWxheU5leHRTdGVwKGwpfWludm9rZVF1ZXJ5KGwsYSxkLGgsZix2KXtsZXQgTT1bXTtpZihoJiZNLnB1c2godGhpcy5lbGVtZW50KSxsLmxlbmd0aD4wKXtsPShsPWwucmVwbGFjZShiJGUsIi4iK3RoaXMuX2VudGVyQ2xhc3NOYW1lKSku'@; put 'cmVwbGFjZSh3JGUsIi4iK3RoaXMuX2xlYXZlQ2xhc3NOYW1lKTtsZXQgRz10aGlzLl9kcml2ZXIucXVlcnkodGhpcy5lbGVtZW50LGwsMSE9ZCk7MCE9PWQmJihHPWQ8MD9HLnNsaWNlKEcubGVuZ3RoK2QsRy5sZW5ndGgpOkcuc2xpY2UoMCxkKSksTS5wdXNoKC4uLkcpfXJldHVybiFmJiYw'@; put 'PT1NLmxlbmd0aCYmdi5wdXNoKGZ1bmN0aW9uIGtHZShjKXtyZXR1cm4gbmV3IG5yKDMwMTQsITEpfSgpKSxNfX1jbGFzcyBBT3tjb25zdHJ1Y3RvcihsLGEsZCxoKXt0aGlzLl9kcml2ZXI9bCx0aGlzLmVsZW1lbnQ9YSx0aGlzLnN0YXJ0VGltZT1kLHRoaXMuX2VsZW1lbnRUaW1lbGluZVN0'@; put 'eWxlc0xvb2t1cD1oLHRoaXMuZHVyYXRpb249MCx0aGlzLmVhc2luZz1udWxsLHRoaXMuX3ByZXZpb3VzS2V5ZnJhbWU9bmV3IE1hcCx0aGlzLl9jdXJyZW50S2V5ZnJhbWU9bmV3IE1hcCx0aGlzLl9rZXlmcmFtZXM9bmV3IE1hcCx0aGlzLl9zdHlsZVN1bW1hcnk9bmV3IE1hcCx0aGlzLl9s'@; put 'b2NhbFRpbWVsaW5lU3R5bGVzPW5ldyBNYXAsdGhpcy5fcGVuZGluZ1N0eWxlcz1uZXcgTWFwLHRoaXMuX2JhY2tGaWxsPW5ldyBNYXAsdGhpcy5fY3VycmVudEVtcHR5U3RlcEtleWZyYW1lPW51bGwsdGhpcy5fZWxlbWVudFRpbWVsaW5lU3R5bGVzTG9va3VwfHwodGhpcy5fZWxlbWVudFRp'@; put 'bWVsaW5lU3R5bGVzTG9va3VwPW5ldyBNYXApLHRoaXMuX2dsb2JhbFRpbWVsaW5lU3R5bGVzPXRoaXMuX2VsZW1lbnRUaW1lbGluZVN0eWxlc0xvb2t1cC5nZXQoYSksdGhpcy5fZ2xvYmFsVGltZWxpbmVTdHlsZXN8fCh0aGlzLl9nbG9iYWxUaW1lbGluZVN0eWxlcz10aGlzLl9sb2NhbFRp'@; put 'bWVsaW5lU3R5bGVzLHRoaXMuX2VsZW1lbnRUaW1lbGluZVN0eWxlc0xvb2t1cC5zZXQoYSx0aGlzLl9sb2NhbFRpbWVsaW5lU3R5bGVzKSksdGhpcy5fbG9hZEtleWZyYW1lKCl9Y29udGFpbnNBbmltYXRpb24oKXtzd2l0Y2godGhpcy5fa2V5ZnJhbWVzLnNpemUpe2Nhc2UgMDpyZXR1cm4h'@; put 'MTtjYXNlIDE6cmV0dXJuIHRoaXMuaGFzQ3VycmVudFN0eWxlUHJvcGVydGllcygpO2RlZmF1bHQ6cmV0dXJuITB9fWhhc0N1cnJlbnRTdHlsZVByb3BlcnRpZXMoKXtyZXR1cm4gdGhpcy5fY3VycmVudEtleWZyYW1lLnNpemU+MH1nZXQgY3VycmVudFRpbWUoKXtyZXR1cm4gdGhpcy5zdGFy'@; put 'dFRpbWUrdGhpcy5kdXJhdGlvbn1kZWxheU5leHRTdGVwKGwpe2NvbnN0IGE9MT09PXRoaXMuX2tleWZyYW1lcy5zaXplJiZ0aGlzLl9wZW5kaW5nU3R5bGVzLnNpemU7dGhpcy5kdXJhdGlvbnx8YT8odGhpcy5mb3J3YXJkVGltZSh0aGlzLmN1cnJlbnRUaW1lK2wpLGEmJnRoaXMuc25hcHNo'@; put 'b3RDdXJyZW50U3R5bGVzKCkpOnRoaXMuc3RhcnRUaW1lKz1sfWZvcmsobCxhKXtyZXR1cm4gdGhpcy5hcHBseVN0eWxlc1RvS2V5ZnJhbWUoKSxuZXcgQU8odGhpcy5fZHJpdmVyLGwsYXx8dGhpcy5jdXJyZW50VGltZSx0aGlzLl9lbGVtZW50VGltZWxpbmVTdHlsZXNMb29rdXApfV9sb2Fk'@; put 'S2V5ZnJhbWUoKXt0aGlzLl9jdXJyZW50S2V5ZnJhbWUmJih0aGlzLl9wcmV2aW91c0tleWZyYW1lPXRoaXMuX2N1cnJlbnRLZXlmcmFtZSksdGhpcy5fY3VycmVudEtleWZyYW1lPXRoaXMuX2tleWZyYW1lcy5nZXQodGhpcy5kdXJhdGlvbiksdGhpcy5fY3VycmVudEtleWZyYW1lfHwodGhp'@; put 'cy5fY3VycmVudEtleWZyYW1lPW5ldyBNYXAsdGhpcy5fa2V5ZnJhbWVzLnNldCh0aGlzLmR1cmF0aW9uLHRoaXMuX2N1cnJlbnRLZXlmcmFtZSkpfWZvcndhcmRGcmFtZSgpe3RoaXMuZHVyYXRpb24rPTEsdGhpcy5fbG9hZEtleWZyYW1lKCl9Zm9yd2FyZFRpbWUobCl7dGhpcy5hcHBseVN0'@; put 'eWxlc1RvS2V5ZnJhbWUoKSx0aGlzLmR1cmF0aW9uPWwsdGhpcy5fbG9hZEtleWZyYW1lKCl9X3VwZGF0ZVN0eWxlKGwsYSl7dGhpcy5fbG9jYWxUaW1lbGluZVN0eWxlcy5zZXQobCxhKSx0aGlzLl9nbG9iYWxUaW1lbGluZVN0eWxlcy5zZXQobCxhKSx0aGlzLl9zdHlsZVN1bW1hcnkuc2V0'@; put 'KGwse3RpbWU6dGhpcy5jdXJyZW50VGltZSx2YWx1ZTphfSl9YWxsb3dPbmx5VGltZWxpbmVTdHlsZXMoKXtyZXR1cm4gdGhpcy5fY3VycmVudEVtcHR5U3RlcEtleWZyYW1lIT09dGhpcy5fY3VycmVudEtleWZyYW1lfWFwcGx5RW1wdHlTdGVwKGwpe2wmJnRoaXMuX3ByZXZpb3VzS2V5ZnJh'@; put 'bWUuc2V0KCJlYXNpbmciLGwpO2ZvcihsZXRbYSxkXW9mIHRoaXMuX2dsb2JhbFRpbWVsaW5lU3R5bGVzKXRoaXMuX2JhY2tGaWxsLnNldChhLGR8fHJnKSx0aGlzLl9jdXJyZW50S2V5ZnJhbWUuc2V0KGEscmcpO3RoaXMuX2N1cnJlbnRFbXB0eVN0ZXBLZXlmcmFtZT10aGlzLl9jdXJyZW50'@; put 'S2V5ZnJhbWV9c2V0U3R5bGVzKGwsYSxkLGgpe2EmJnRoaXMuX3ByZXZpb3VzS2V5ZnJhbWUuc2V0KCJlYXNpbmciLGEpO2NvbnN0IGY9aCYmaC5wYXJhbXN8fHt9LHY9ZnVuY3Rpb24gTSRlKGMsbCl7Y29uc3QgYT1uZXcgTWFwO2xldCBkO3JldHVybiBjLmZvckVhY2goaD0+e2lmKCIqIj09'@; put 'PWgpe2Q/Pz1sLmtleXMoKTtmb3IobGV0IGYgb2YgZClhLnNldChmLHJnKX1lbHNlIGZvcihsZXRbZix2XW9mIGgpYS5zZXQoZix2KX0pLGF9KGwsdGhpcy5fZ2xvYmFsVGltZWxpbmVTdHlsZXMpO2ZvcihsZXRbTSxJXW9mIHYpe2NvbnN0IEc9bEUoSSxmLGQpO3RoaXMuX3BlbmRpbmdTdHls'@; put 'ZXMuc2V0KE0sRyksdGhpcy5fbG9jYWxUaW1lbGluZVN0eWxlcy5oYXMoTSl8fHRoaXMuX2JhY2tGaWxsLnNldChNLHRoaXMuX2dsb2JhbFRpbWVsaW5lU3R5bGVzLmdldChNKT8/cmcpLHRoaXMuX3VwZGF0ZVN0eWxlKE0sRyl9fWFwcGx5U3R5bGVzVG9LZXlmcmFtZSgpezAhPXRoaXMuX3Bl'@; put 'bmRpbmdTdHlsZXMuc2l6ZSYmKHRoaXMuX3BlbmRpbmdTdHlsZXMuZm9yRWFjaCgobCxhKT0+e3RoaXMuX2N1cnJlbnRLZXlmcmFtZS5zZXQoYSxsKX0pLHRoaXMuX3BlbmRpbmdTdHlsZXMuY2xlYXIoKSx0aGlzLl9sb2NhbFRpbWVsaW5lU3R5bGVzLmZvckVhY2goKGwsYSk9Pnt0aGlzLl9j'@; put 'dXJyZW50S2V5ZnJhbWUuaGFzKGEpfHx0aGlzLl9jdXJyZW50S2V5ZnJhbWUuc2V0KGEsbCl9KSl9c25hcHNob3RDdXJyZW50U3R5bGVzKCl7Zm9yKGxldFtsLGFdb2YgdGhpcy5fbG9jYWxUaW1lbGluZVN0eWxlcyl0aGlzLl9wZW5kaW5nU3R5bGVzLnNldChsLGEpLHRoaXMuX3VwZGF0ZVN0'@; put 'eWxlKGwsYSl9Z2V0RmluYWxLZXlmcmFtZSgpe3JldHVybiB0aGlzLl9rZXlmcmFtZXMuZ2V0KHRoaXMuZHVyYXRpb24pfWdldCBwcm9wZXJ0aWVzKCl7Y29uc3QgbD1bXTtmb3IobGV0IGEgaW4gdGhpcy5fY3VycmVudEtleWZyYW1lKWwucHVzaChhKTtyZXR1cm4gbH1tZXJnZVRpbWVsaW5l'@; put 'Q29sbGVjdGVkU3R5bGVzKGwpe2wuX3N0eWxlU3VtbWFyeS5mb3JFYWNoKChhLGQpPT57Y29uc3QgaD10aGlzLl9zdHlsZVN1bW1hcnkuZ2V0KGQpOyghaHx8YS50aW1lPmgudGltZSkmJnRoaXMuX3VwZGF0ZVN0eWxlKGQsYS52YWx1ZSl9KX1idWlsZEtleWZyYW1lcygpe3RoaXMuYXBwbHlT'@; put 'dHlsZXNUb0tleWZyYW1lKCk7Y29uc3QgbD1uZXcgU2V0LGE9bmV3IFNldCxkPTE9PT10aGlzLl9rZXlmcmFtZXMuc2l6ZSYmMD09PXRoaXMuZHVyYXRpb247bGV0IGg9W107dGhpcy5fa2V5ZnJhbWVzLmZvckVhY2goKE0sSSk9Pntjb25zdCBHPW5ldyBNYXAoWy4uLnRoaXMuX2JhY2tGaWxs'@; put 'LC4uLk1dKTtHLmZvckVhY2goKHJlLHVlKT0+eyIhIj09PXJlP2wuYWRkKHVlKTpyZT09PXJnJiZhLmFkZCh1ZSl9KSxkfHxHLnNldCgib2Zmc2V0IixJL3RoaXMuZHVyYXRpb24pLGgucHVzaChHKX0pO2NvbnN0IGY9Wy4uLmwudmFsdWVzKCldLHY9Wy4uLmEudmFsdWVzKCldO2lmKGQpe2Nv'@; put 'bnN0IE09aFswXSxJPW5ldyBNYXAoTSk7TS5zZXQoIm9mZnNldCIsMCksSS5zZXQoIm9mZnNldCIsMSksaD1bTSxJXX1yZXR1cm4gV0codGhpcy5lbGVtZW50LGgsZix2LHRoaXMuZHVyYXRpb24sdGhpcy5zdGFydFRpbWUsdGhpcy5lYXNpbmcsITEpfX1jbGFzcyBTJGUgZXh0ZW5kcyBBT3tj'@; put 'b25zdHJ1Y3RvcihsLGEsZCxoLGYsdixNPSExKXtzdXBlcihsLGEsdi5kZWxheSksdGhpcy5rZXlmcmFtZXM9ZCx0aGlzLnByZVN0eWxlUHJvcHM9aCx0aGlzLnBvc3RTdHlsZVByb3BzPWYsdGhpcy5fc3RyZXRjaFN0YXJ0aW5nS2V5ZnJhbWU9TSx0aGlzLnRpbWluZ3M9e2R1cmF0aW9uOnYu'@; put 'ZHVyYXRpb24sZGVsYXk6di5kZWxheSxlYXNpbmc6di5lYXNpbmd9fWNvbnRhaW5zQW5pbWF0aW9uKCl7cmV0dXJuIHRoaXMua2V5ZnJhbWVzLmxlbmd0aD4xfWJ1aWxkS2V5ZnJhbWVzKCl7bGV0IGw9dGhpcy5rZXlmcmFtZXMse2RlbGF5OmEsZHVyYXRpb246ZCxlYXNpbmc6aH09dGhpcy50'@; put 'aW1pbmdzO2lmKHRoaXMuX3N0cmV0Y2hTdGFydGluZ0tleWZyYW1lJiZhKXtjb25zdCBmPVtdLHY9ZCthLE09YS92LEk9bmV3IE1hcChsWzBdKTtJLnNldCgib2Zmc2V0IiwwKSxmLnB1c2goSSk7Y29uc3QgRz1uZXcgTWFwKGxbMF0pO0cuc2V0KCJvZmZzZXQiLGpoZShNKSksZi5wdXNoKEcp'@; put 'O2NvbnN0IHJlPWwubGVuZ3RoLTE7Zm9yKGxldCB1ZT0xO3VlPD1yZTt1ZSsrKXtsZXQgeWU9bmV3IE1hcChsW3VlXSk7Y29uc3QgRWU9eWUuZ2V0KCJvZmZzZXQiKTt5ZS5zZXQoIm9mZnNldCIsamhlKChhK0VlKmQpL3YpKSxmLnB1c2goeWUpfWQ9dixhPTAsaD0iIixsPWZ9cmV0dXJuIFdH'@; put 'KHRoaXMuZWxlbWVudCxsLHRoaXMucHJlU3R5bGVQcm9wcyx0aGlzLnBvc3RTdHlsZVByb3BzLGQsYSxoLCEwKX19ZnVuY3Rpb24gamhlKGMsbD0zKXtjb25zdCBhPU1hdGgucG93KDEwLGwtMSk7cmV0dXJuIE1hdGgucm91bmQoYyphKS9hfWZ1bmN0aW9uIHpoZShjLGwsYSxkLGgsZix2LE0s'@; put 'SSxHLHJlLHVlLHllKXtyZXR1cm57dHlwZTowLGVsZW1lbnQ6Yyx0cmlnZ2VyTmFtZTpsLGlzUmVtb3ZhbFRyYW5zaXRpb246aCxmcm9tU3RhdGU6YSxmcm9tU3R5bGVzOmYsdG9TdGF0ZTpkLHRvU3R5bGVzOnYsdGltZWxpbmVzOk0scXVlcmllZEVsZW1lbnRzOkkscHJlU3R5bGVQcm9wczpH'@; put 'LHBvc3RTdHlsZVByb3BzOnJlLHRvdGFsVGltZTp1ZSxlcnJvcnM6eWV9fWNvbnN0ICRHPXt9O2NsYXNzIFVoZXtjb25zdHJ1Y3RvcihsLGEsZCl7dGhpcy5fdHJpZ2dlck5hbWU9bCx0aGlzLmFzdD1hLHRoaXMuX3N0YXRlU3R5bGVzPWR9bWF0Y2gobCxhLGQsaCl7cmV0dXJuIGZ1bmN0aW9u'@; put 'IHgkZShjLGwsYSxkLGgpe3JldHVybiBjLnNvbWUoZj0+ZihsLGEsZCxoKSl9KHRoaXMuYXN0Lm1hdGNoZXJzLGwsYSxkLGgpfWJ1aWxkU3R5bGVzKGwsYSxkKXtsZXQgaD10aGlzLl9zdGF0ZVN0eWxlcy5nZXQoIioiKTtyZXR1cm4gdm9pZCAwIT09bCYmKGg9dGhpcy5fc3RhdGVTdHlsZXMu'@; put 'Z2V0KGw/LnRvU3RyaW5nKCkpfHxoKSxoP2guYnVpbGRTdHlsZXMoYSxkKTpuZXcgTWFwfWJ1aWxkKGwsYSxkLGgsZix2LE0sSSxHLHJlKXtjb25zdCB1ZT1bXSx5ZT10aGlzLmFzdC5vcHRpb25zJiZ0aGlzLmFzdC5vcHRpb25zLnBhcmFtc3x8JEcsQmU9dGhpcy5idWlsZFN0eWxlcyhkLE0m'@; put 'Jk0ucGFyYW1zfHwkRyx1ZSksR2U9SSYmSS5wYXJhbXN8fCRHLHN0PXRoaXMuYnVpbGRTdHlsZXMoaCxHZSx1ZSkscHQ9bmV3IFNldCxkdD1uZXcgTWFwLHF0PW5ldyBNYXAsbW49InZvaWQiPT09aCx3bj17cGFyYW1zOlpoZShHZSx5ZSksZGVsYXk6dGhpcy5hc3Qub3B0aW9ucz8uZGVsYXl9'@; put 'LGhuPXJlP1tdOllHKGwsYSx0aGlzLmFzdC5hbmltYXRpb24sZix2LEJlLHN0LHduLEcsdWUpO2xldCBNbj0wO3JldHVybiBobi5mb3JFYWNoKE1yPT57TW49TWF0aC5tYXgoTXIuZHVyYXRpb24rTXIuZGVsYXksTW4pfSksdWUubGVuZ3RoP3poZShhLHRoaXMuX3RyaWdnZXJOYW1lLGQsaCxt'@; put 'bixCZSxzdCxbXSxbXSxkdCxxdCxNbix1ZSk6KGhuLmZvckVhY2goTXI9Pntjb25zdCBrcj1Nci5lbGVtZW50LHFuPWtoKGR0LGtyLG5ldyBTZXQpO01yLnByZVN0eWxlUHJvcHMuZm9yRWFjaChxcj0+cW4uYWRkKHFyKSk7Y29uc3QgZ3I9a2gocXQsa3IsbmV3IFNldCk7TXIucG9zdFN0eWxl'@; put 'UHJvcHMuZm9yRWFjaChxcj0+Z3IuYWRkKHFyKSksa3IhPT1hJiZwdC5hZGQoa3IpfSksemhlKGEsdGhpcy5fdHJpZ2dlck5hbWUsZCxoLG1uLEJlLHN0LGhuLFsuLi5wdC52YWx1ZXMoKV0sZHQscXQsTW4pKX19ZnVuY3Rpb24gWmhlKGMsbCl7Y29uc3QgYT17Li4ubH07cmV0dXJuIE9iamVj'@; put 'dC5lbnRyaWVzKGMpLmZvckVhY2goKFtkLGhdKT0+e251bGwhPWgmJihhW2RdPWgpfSksYX1jbGFzcyBFJGV7Y29uc3RydWN0b3IobCxhLGQpe3RoaXMuc3R5bGVzPWwsdGhpcy5kZWZhdWx0UGFyYW1zPWEsdGhpcy5ub3JtYWxpemVyPWR9YnVpbGRTdHlsZXMobCxhKXtjb25zdCBkPW5ldyBN'@; put 'YXAsaD1aaGUobCx0aGlzLmRlZmF1bHRQYXJhbXMpO3JldHVybiB0aGlzLnN0eWxlcy5zdHlsZXMuZm9yRWFjaChmPT57InN0cmluZyIhPXR5cGVvZiBmJiZmLmZvckVhY2goKHYsTSk9Pnt2JiYodj1sRSh2LGgsYSkpO2NvbnN0IEk9dGhpcy5ub3JtYWxpemVyLm5vcm1hbGl6ZVByb3BlcnR5'@; put 'TmFtZShNLGEpO3Y9dGhpcy5ub3JtYWxpemVyLm5vcm1hbGl6ZVN0eWxlVmFsdWUoTSxJLHYsYSksZC5zZXQoTSx2KX0pfSksZH19Y2xhc3MgQSRle2NvbnN0cnVjdG9yKGwsYSxkKXt0aGlzLm5hbWU9bCx0aGlzLmFzdD1hLHRoaXMuX25vcm1hbGl6ZXI9ZCx0aGlzLnRyYW5zaXRpb25GYWN0'@; put 'b3JpZXM9W10sdGhpcy5zdGF0ZXM9bmV3IE1hcCxhLnN0YXRlcy5mb3JFYWNoKGg9Pnt0aGlzLnN0YXRlcy5zZXQoaC5uYW1lLG5ldyBFJGUoaC5zdHlsZSxoLm9wdGlvbnMmJmgub3B0aW9ucy5wYXJhbXN8fHt9LGQpKX0pLFdoZSh0aGlzLnN0YXRlcywidHJ1ZSIsIjEiKSxXaGUodGhpcy5z'@; put 'dGF0ZXMsImZhbHNlIiwiMCIpLGEudHJhbnNpdGlvbnMuZm9yRWFjaChoPT57dGhpcy50cmFuc2l0aW9uRmFjdG9yaWVzLnB1c2gobmV3IFVoZShsLGgsdGhpcy5zdGF0ZXMpKX0pLHRoaXMuZmFsbGJhY2tUcmFuc2l0aW9uPWZ1bmN0aW9uIGskZShjLGwsYSl7cmV0dXJuIG5ldyBVaGUoYyx7'@; put 'dHlwZTprcy5UcmFuc2l0aW9uLGFuaW1hdGlvbjp7dHlwZTprcy5TZXF1ZW5jZSxzdGVwczpbXSxvcHRpb25zOm51bGx9LG1hdGNoZXJzOlsodixNKT0+ITBdLG9wdGlvbnM6bnVsbCxxdWVyeUNvdW50OjAsZGVwQ291bnQ6MH0sbCl9KGwsdGhpcy5zdGF0ZXMpfWdldCBjb250YWluc1F1ZXJp'@; put 'ZXMoKXtyZXR1cm4gdGhpcy5hc3QucXVlcnlDb3VudD4wfW1hdGNoVHJhbnNpdGlvbihsLGEsZCxoKXtyZXR1cm4gdGhpcy50cmFuc2l0aW9uRmFjdG9yaWVzLmZpbmQodj0+di5tYXRjaChsLGEsZCxoKSl8fG51bGx9bWF0Y2hTdHlsZXMobCxhLGQpe3JldHVybiB0aGlzLmZhbGxiYWNrVHJh'@; put 'bnNpdGlvbi5idWlsZFN0eWxlcyhsLGEsZCl9fWZ1bmN0aW9uIFdoZShjLGwsYSl7Yy5oYXMobCk/Yy5oYXMoYSl8fGMuc2V0KGEsYy5nZXQobCkpOmMuaGFzKGEpJiZjLnNldChsLGMuZ2V0KGEpKX1jb25zdCBEJGU9bmV3IEVPO2NsYXNzIEkkZXtjb25zdHJ1Y3RvcihsLGEsZCl7dGhpcy5i'@; put 'b2R5Tm9kZT1sLHRoaXMuX2RyaXZlcj1hLHRoaXMuX25vcm1hbGl6ZXI9ZCx0aGlzLl9hbmltYXRpb25zPW5ldyBNYXAsdGhpcy5fcGxheWVyc0J5SWQ9bmV3IE1hcCx0aGlzLnBsYXllcnM9W119cmVnaXN0ZXIobCxhKXtjb25zdCBkPVtdLGY9VUcodGhpcy5fZHJpdmVyLGEsZCxbXSk7aWYo'@; put 'ZC5sZW5ndGgpdGhyb3cgZnVuY3Rpb24gRkdlKGMpe3JldHVybiBuZXcgbnIoMzUwMywhMSl9KCk7dGhpcy5fYW5pbWF0aW9ucy5zZXQobCxmKX1fYnVpbGRQbGF5ZXIobCxhLGQpe2NvbnN0IGg9bC5lbGVtZW50LGY9QWhlKHRoaXMuX25vcm1hbGl6ZXIsbC5rZXlmcmFtZXMsYSxkKTtyZXR1'@; put 'cm4gdGhpcy5fZHJpdmVyLmFuaW1hdGUoaCxmLGwuZHVyYXRpb24sbC5kZWxheSxsLmVhc2luZyxbXSwhMCl9Y3JlYXRlKGwsYSxkPXt9KXtjb25zdCBoPVtdLGY9dGhpcy5fYW5pbWF0aW9ucy5nZXQobCk7bGV0IHY7Y29uc3QgTT1uZXcgTWFwO2lmKGY/KHY9WUcodGhpcy5fZHJpdmVyLGEs'@; put 'ZixIRyxiTyxuZXcgTWFwLG5ldyBNYXAsZCxEJGUsaCksdi5mb3JFYWNoKHJlPT57Y29uc3QgdWU9a2goTSxyZS5lbGVtZW50LG5ldyBNYXApO3JlLnBvc3RTdHlsZVByb3BzLmZvckVhY2goeWU9PnVlLnNldCh5ZSxudWxsKSl9KSk6KGgucHVzaChmdW5jdGlvbiBIR2UoKXtyZXR1cm4gbmV3'@; put 'IG5yKDMzMDAsITEpfSgpKSx2PVtdKSxoLmxlbmd0aCl0aHJvdyBmdW5jdGlvbiBOR2UoYyl7cmV0dXJuIG5ldyBucigzNTA0LCExKX0oKTtNLmZvckVhY2goKHJlLHVlKT0+e3JlLmZvckVhY2goKHllLEVlKT0+e3JlLnNldChFZSx0aGlzLl9kcml2ZXIuY29tcHV0ZVN0eWxlKHVlLEVlLHJn'@; put 'KSl9KX0pO2NvbnN0IEc9VG0odi5tYXAocmU9Pntjb25zdCB1ZT1NLmdldChyZS5lbGVtZW50KTtyZXR1cm4gdGhpcy5fYnVpbGRQbGF5ZXIocmUsbmV3IE1hcCx1ZSl9KSk7cmV0dXJuIHRoaXMuX3BsYXllcnNCeUlkLnNldChsLEcpLEcub25EZXN0cm95KCgpPT50aGlzLmRlc3Ryb3kobCkp'@; put 'LHRoaXMucGxheWVycy5wdXNoKEcpLEd9ZGVzdHJveShsKXtjb25zdCBhPXRoaXMuX2dldFBsYXllcihsKTthLmRlc3Ryb3koKSx0aGlzLl9wbGF5ZXJzQnlJZC5kZWxldGUobCk7Y29uc3QgZD10aGlzLnBsYXllcnMuaW5kZXhPZihhKTtkPj0wJiZ0aGlzLnBsYXllcnMuc3BsaWNlKGQsMSl9'@; put 'X2dldFBsYXllcihsKXtjb25zdCBhPXRoaXMuX3BsYXllcnNCeUlkLmdldChsKTtpZighYSl0aHJvdyBmdW5jdGlvbiBWR2UoYyl7cmV0dXJuIG5ldyBucigzMzAxLCExKX0oKTtyZXR1cm4gYX1saXN0ZW4obCxhLGQsaCl7Y29uc3QgZj1SRyhhLCIiLCIiLCIiKTtyZXR1cm4gREcodGhpcy5f'@; put 'Z2V0UGxheWVyKGwpLGQsZixoKSwoKT0+e319Y29tbWFuZChsLGEsZCxoKXtpZigicmVnaXN0ZXIiPT1kKXJldHVybiB2b2lkIHRoaXMucmVnaXN0ZXIobCxoWzBdKTtpZigiY3JlYXRlIj09ZClyZXR1cm4gdm9pZCB0aGlzLmNyZWF0ZShsLGEsaFswXXx8e30pO2NvbnN0IGY9dGhpcy5fZ2V0'@; put 'UGxheWVyKGwpO3N3aXRjaChkKXtjYXNlInBsYXkiOmYucGxheSgpO2JyZWFrO2Nhc2UicGF1c2UiOmYucGF1c2UoKTticmVhaztjYXNlInJlc2V0IjpmLnJlc2V0KCk7YnJlYWs7Y2FzZSJyZXN0YXJ0IjpmLnJlc3RhcnQoKTticmVhaztjYXNlImZpbmlzaCI6Zi5maW5pc2goKTticmVhaztj'@; put 'YXNlImluaXQiOmYuaW5pdCgpO2JyZWFrO2Nhc2Uic2V0UG9zaXRpb24iOmYuc2V0UG9zaXRpb24ocGFyc2VGbG9hdChoWzBdKSk7YnJlYWs7Y2FzZSJkZXN0cm95Ijp0aGlzLmRlc3Ryb3kobCl9fX1jb25zdCBZaGU9Im5nLWFuaW1hdGUtcXVldWVkIixLRz0ibmctYW5pbWF0ZS1kaXNhYmxl'@; put 'ZCIsRiRlPVtdLEdoZT17bmFtZXNwYWNlSWQ6IiIsc2V0Rm9yUmVtb3ZhbDohMSxzZXRGb3JNb3ZlOiExLGhhc0FuaW1hdGlvbjohMSxyZW1vdmVkQmVmb3JlUXVlcmllZDohMX0sSCRlPXtuYW1lc3BhY2VJZDoiIixzZXRGb3JNb3ZlOiExLHNldEZvclJlbW92YWw6ITEsaGFzQW5pbWF0aW9u'@; put 'OiExLHJlbW92ZWRCZWZvcmVRdWVyaWVkOiEwfSxpMz0iX19uZ19yZW1vdmVkIjtjbGFzcyBYR3tnZXQgcGFyYW1zKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5wYXJhbXN9Y29uc3RydWN0b3IobCxhPSIiKXt0aGlzLm5hbWVzcGFjZUlkPWE7Y29uc3QgZD1sJiZsLmhhc093blByb3BlcnR5KCJ2'@; put 'YWx1ZSIpO2lmKHRoaXMudmFsdWU9ZnVuY3Rpb24gaiRlKGMpe3JldHVybiBjPz9udWxsfShkP2wudmFsdWU6bCksZCl7Y29uc3R7dmFsdWU6ZiwuLi52fT1sO3RoaXMub3B0aW9ucz12fWVsc2UgdGhpcy5vcHRpb25zPXt9O3RoaXMub3B0aW9ucy5wYXJhbXN8fCh0aGlzLm9wdGlvbnMucGFy'@; put 'YW1zPXt9KX1hYnNvcmJPcHRpb25zKGwpe2NvbnN0IGE9bC5wYXJhbXM7aWYoYSl7Y29uc3QgZD10aGlzLm9wdGlvbnMucGFyYW1zO09iamVjdC5rZXlzKGEpLmZvckVhY2goaD0+e251bGw9PWRbaF0mJihkW2hdPWFbaF0pfSl9fX1jb25zdCBjRT0idm9pZCIscUc9bmV3IFhHKGNFKTtjbGFz'@; put 'cyBOJGV7Y29uc3RydWN0b3IobCxhLGQpe3RoaXMuaWQ9bCx0aGlzLmhvc3RFbGVtZW50PWEsdGhpcy5fZW5naW5lPWQsdGhpcy5wbGF5ZXJzPVtdLHRoaXMuX3RyaWdnZXJzPW5ldyBNYXAsdGhpcy5fcXVldWU9W10sdGhpcy5fZWxlbWVudExpc3RlbmVycz1uZXcgTWFwLHRoaXMuX2hvc3RD'@; put 'bGFzc05hbWU9Im5nLXRucy0iK2wsTjIoYSx0aGlzLl9ob3N0Q2xhc3NOYW1lKX1saXN0ZW4obCxhLGQsaCl7aWYoIXRoaXMuX3RyaWdnZXJzLmhhcyhhKSl0aHJvdyBmdW5jdGlvbiBCR2UoYyxsKXtyZXR1cm4gbmV3IG5yKDMzMDIsITEpfSgpO2lmKG51bGw9PWR8fDA9PWQubGVuZ3RoKXRo'@; put 'cm93IGZ1bmN0aW9uIGpHZShjKXtyZXR1cm4gbmV3IG5yKDMzMDMsITEpfSgpO2lmKCFmdW5jdGlvbiB6JGUoYyl7cmV0dXJuInN0YXJ0Ij09Y3x8ImRvbmUiPT1jfShkKSl0aHJvdyBmdW5jdGlvbiB6R2UoYyxsKXtyZXR1cm4gbmV3IG5yKDM0MDAsITEpfSgpO2NvbnN0IGY9a2godGhpcy5f'@; put 'ZWxlbWVudExpc3RlbmVycyxsLFtdKSx2PXtuYW1lOmEscGhhc2U6ZCxjYWxsYmFjazpofTtmLnB1c2godik7Y29uc3QgTT1raCh0aGlzLl9lbmdpbmUuc3RhdGVzQnlFbGVtZW50LGwsbmV3IE1hcCk7cmV0dXJuIE0uaGFzKGEpfHwoTjIobCxfTyksTjIobCxfTysiLSIrYSksTS5zZXQoYSxx'@; put 'RykpLCgpPT57dGhpcy5fZW5naW5lLmFmdGVyRmx1c2goKCk9Pntjb25zdCBJPWYuaW5kZXhPZih2KTtJPj0wJiZmLnNwbGljZShJLDEpLHRoaXMuX3RyaWdnZXJzLmhhcyhhKXx8TS5kZWxldGUoYSl9KX19cmVnaXN0ZXIobCxhKXtyZXR1cm4hdGhpcy5fdHJpZ2dlcnMuaGFzKGwpJiYodGhp'@; put 'cy5fdHJpZ2dlcnMuc2V0KGwsYSksITApfV9nZXRUcmlnZ2VyKGwpe2NvbnN0IGE9dGhpcy5fdHJpZ2dlcnMuZ2V0KGwpO2lmKCFhKXRocm93IGZ1bmN0aW9uIFVHZShjKXtyZXR1cm4gbmV3IG5yKDM0MDEsITEpfSgpO3JldHVybiBhfXRyaWdnZXIobCxhLGQsaD0hMCl7Y29uc3QgZj10aGlz'@; put 'Ll9nZXRUcmlnZ2VyKGEpLHY9bmV3IEpHKHRoaXMuaWQsYSxsKTtsZXQgTT10aGlzLl9lbmdpbmUuc3RhdGVzQnlFbGVtZW50LmdldChsKTtNfHwoTjIobCxfTyksTjIobCxfTysiLSIrYSksdGhpcy5fZW5naW5lLnN0YXRlc0J5RWxlbWVudC5zZXQobCxNPW5ldyBNYXApKTtsZXQgST1NLmdl'@; put 'dChhKTtjb25zdCBHPW5ldyBYRyhkLHRoaXMuaWQpO2lmKCEoZCYmZC5oYXNPd25Qcm9wZXJ0eSgidmFsdWUiKSkmJkkmJkcuYWJzb3JiT3B0aW9ucyhJLm9wdGlvbnMpLE0uc2V0KGEsRyksSXx8KEk9cUcpLEcudmFsdWUhPT1jRSYmSS52YWx1ZT09PUcudmFsdWUpe2lmKCFmdW5jdGlvbiBX'@; put 'JGUoYyxsKXtjb25zdCBhPU9iamVjdC5rZXlzKGMpLGQ9T2JqZWN0LmtleXMobCk7aWYoYS5sZW5ndGghPWQubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgaD0wO2g8YS5sZW5ndGg7aCsrKXtjb25zdCBmPWFbaF07aWYoIWwuaGFzT3duUHJvcGVydHkoZil8fGNbZl0hPT1sW2ZdKXJldHVybiEx'@; put 'fXJldHVybiEwfShJLnBhcmFtcyxHLnBhcmFtcykpe2NvbnN0IEdlPVtdLHN0PWYubWF0Y2hTdHlsZXMoSS52YWx1ZSxJLnBhcmFtcyxHZSkscHQ9Zi5tYXRjaFN0eWxlcyhHLnZhbHVlLEcucGFyYW1zLEdlKTtHZS5sZW5ndGg/dGhpcy5fZW5naW5lLnJlcG9ydEVycm9yKEdlKTp0aGlzLl9l'@; put 'bmdpbmUuYWZ0ZXJGbHVzaCgoKT0+e0Y3KGwsc3QpLEVwKGwscHQpfSl9cmV0dXJufWNvbnN0IHllPWtoKHRoaXMuX2VuZ2luZS5wbGF5ZXJzQnlFbGVtZW50LGwsW10pO3llLmZvckVhY2goR2U9PntHZS5uYW1lc3BhY2VJZD09dGhpcy5pZCYmR2UudHJpZ2dlck5hbWU9PWEmJkdlLnF1ZXVl'@; put 'ZCYmR2UuZGVzdHJveSgpfSk7bGV0IEVlPWYubWF0Y2hUcmFuc2l0aW9uKEkudmFsdWUsRy52YWx1ZSxsLEcucGFyYW1zKSxCZT0hMTtpZighRWUpe2lmKCFoKXJldHVybjtFZT1mLmZhbGxiYWNrVHJhbnNpdGlvbixCZT0hMH1yZXR1cm4gdGhpcy5fZW5naW5lLnRvdGFsUXVldWVkUGxheWVy'@; put 'cysrLHRoaXMuX3F1ZXVlLnB1c2goe2VsZW1lbnQ6bCx0cmlnZ2VyTmFtZTphLHRyYW5zaXRpb246RWUsZnJvbVN0YXRlOkksdG9TdGF0ZTpHLHBsYXllcjp2LGlzRmFsbGJhY2tUcmFuc2l0aW9uOkJlfSksQmV8fChOMihsLFloZSksdi5vblN0YXJ0KCgpPT57dF8obCxZaGUpfSkpLHYub25E'@; put 'b25lKCgpPT57bGV0IEdlPXRoaXMucGxheWVycy5pbmRleE9mKHYpO0dlPj0wJiZ0aGlzLnBsYXllcnMuc3BsaWNlKEdlLDEpO2NvbnN0IHN0PXRoaXMuX2VuZ2luZS5wbGF5ZXJzQnlFbGVtZW50LmdldChsKTtpZihzdCl7bGV0IHB0PXN0LmluZGV4T2Yodik7cHQ+PTAmJnN0LnNwbGljZShw'@; put 'dCwxKX19KSx0aGlzLnBsYXllcnMucHVzaCh2KSx5ZS5wdXNoKHYpLHZ9ZGVyZWdpc3RlcihsKXt0aGlzLl90cmlnZ2Vycy5kZWxldGUobCksdGhpcy5fZW5naW5lLnN0YXRlc0J5RWxlbWVudC5mb3JFYWNoKGE9PmEuZGVsZXRlKGwpKSx0aGlzLl9lbGVtZW50TGlzdGVuZXJzLmZvckVhY2go'@; put 'KGEsZCk9Pnt0aGlzLl9lbGVtZW50TGlzdGVuZXJzLnNldChkLGEuZmlsdGVyKGg9PmgubmFtZSE9bCkpfSl9Y2xlYXJFbGVtZW50Q2FjaGUobCl7dGhpcy5fZW5naW5lLnN0YXRlc0J5RWxlbWVudC5kZWxldGUobCksdGhpcy5fZWxlbWVudExpc3RlbmVycy5kZWxldGUobCk7Y29uc3QgYT10'@; put 'aGlzLl9lbmdpbmUucGxheWVyc0J5RWxlbWVudC5nZXQobCk7YSYmKGEuZm9yRWFjaChkPT5kLmRlc3Ryb3koKSksdGhpcy5fZW5naW5lLnBsYXllcnNCeUVsZW1lbnQuZGVsZXRlKGwpKX1fc2lnbmFsUmVtb3ZhbEZvcklubmVyVHJpZ2dlcnMobCxhKXtjb25zdCBkPXRoaXMuX2VuZ2luZS5k'@; put 'cml2ZXIucXVlcnkobCx3TywhMCk7ZC5mb3JFYWNoKGg9PntpZihoW2kzXSlyZXR1cm47Y29uc3QgZj10aGlzLl9lbmdpbmUuZmV0Y2hOYW1lc3BhY2VzQnlFbGVtZW50KGgpO2Yuc2l6ZT9mLmZvckVhY2godj0+di50cmlnZ2VyTGVhdmVBbmltYXRpb24oaCxhLCExLCEwKSk6dGhpcy5jbGVh'@; put 'ckVsZW1lbnRDYWNoZShoKX0pLHRoaXMuX2VuZ2luZS5hZnRlckZsdXNoQW5pbWF0aW9uc0RvbmUoKCk9PmQuZm9yRWFjaChoPT50aGlzLmNsZWFyRWxlbWVudENhY2hlKGgpKSl9dHJpZ2dlckxlYXZlQW5pbWF0aW9uKGwsYSxkLGgpe2NvbnN0IGY9dGhpcy5fZW5naW5lLnN0YXRlc0J5RWxl'@; put 'bWVudC5nZXQobCksdj1uZXcgTWFwO2lmKGYpe2NvbnN0IE09W107aWYoZi5mb3JFYWNoKChJLEcpPT57aWYodi5zZXQoRyxJLnZhbHVlKSx0aGlzLl90cmlnZ2Vycy5oYXMoRykpe2NvbnN0IHJlPXRoaXMudHJpZ2dlcihsLEcsY0UsaCk7cmUmJk0ucHVzaChyZSl9fSksTS5sZW5ndGgpcmV0'@; put 'dXJuIHRoaXMuX2VuZ2luZS5tYXJrRWxlbWVudEFzUmVtb3ZlZCh0aGlzLmlkLGwsITAsYSx2KSxkJiZUbShNKS5vbkRvbmUoKCk9PnRoaXMuX2VuZ2luZS5wcm9jZXNzTGVhdmVOb2RlKGwpKSwhMH1yZXR1cm4hMX1wcmVwYXJlTGVhdmVBbmltYXRpb25MaXN0ZW5lcnMobCl7Y29uc3QgYT10'@; put 'aGlzLl9lbGVtZW50TGlzdGVuZXJzLmdldChsKSxkPXRoaXMuX2VuZ2luZS5zdGF0ZXNCeUVsZW1lbnQuZ2V0KGwpO2lmKGEmJmQpe2NvbnN0IGg9bmV3IFNldDthLmZvckVhY2goZj0+e2NvbnN0IHY9Zi5uYW1lO2lmKGguaGFzKHYpKXJldHVybjtoLmFkZCh2KTtjb25zdCBJPXRoaXMuX3Ry'@; put 'aWdnZXJzLmdldCh2KS5mYWxsYmFja1RyYW5zaXRpb24sRz1kLmdldCh2KXx8cUcscmU9bmV3IFhHKGNFKSx1ZT1uZXcgSkcodGhpcy5pZCx2LGwpO3RoaXMuX2VuZ2luZS50b3RhbFF1ZXVlZFBsYXllcnMrKyx0aGlzLl9xdWV1ZS5wdXNoKHtlbGVtZW50OmwsdHJpZ2dlck5hbWU6dix0cmFu'@; put 'c2l0aW9uOkksZnJvbVN0YXRlOkcsdG9TdGF0ZTpyZSxwbGF5ZXI6dWUsaXNGYWxsYmFja1RyYW5zaXRpb246ITB9KX0pfX1yZW1vdmVOb2RlKGwsYSl7Y29uc3QgZD10aGlzLl9lbmdpbmU7aWYobC5jaGlsZEVsZW1lbnRDb3VudCYmdGhpcy5fc2lnbmFsUmVtb3ZhbEZvcklubmVyVHJpZ2dl'@; put 'cnMobCxhKSx0aGlzLnRyaWdnZXJMZWF2ZUFuaW1hdGlvbihsLGEsITApKXJldHVybjtsZXQgaD0hMTtpZihkLnRvdGFsQW5pbWF0aW9ucyl7Y29uc3QgZj1kLnBsYXllcnMubGVuZ3RoP2QucGxheWVyc0J5UXVlcmllZEVsZW1lbnQuZ2V0KGwpOltdO2lmKGYmJmYubGVuZ3RoKWg9ITA7ZWxz'@; put 'ZXtsZXQgdj1sO2Zvcig7dj12LnBhcmVudE5vZGU7KWlmKGQuc3RhdGVzQnlFbGVtZW50LmdldCh2KSl7aD0hMDticmVha319fWlmKHRoaXMucHJlcGFyZUxlYXZlQW5pbWF0aW9uTGlzdGVuZXJzKGwpLGgpZC5tYXJrRWxlbWVudEFzUmVtb3ZlZCh0aGlzLmlkLGwsITEsYSk7ZWxzZXtjb25z'@; put 'dCBmPWxbaTNdOyghZnx8Zj09PUdoZSkmJihkLmFmdGVyRmx1c2goKCk9PnRoaXMuY2xlYXJFbGVtZW50Q2FjaGUobCkpLGQuZGVzdHJveUlubmVyQW5pbWF0aW9ucyhsKSxkLl9vblJlbW92YWxDb21wbGV0ZShsLGEpKX19aW5zZXJ0Tm9kZShsLGEpe04yKGwsdGhpcy5faG9zdENsYXNzTmFt'@; put 'ZSl9ZHJhaW5RdWV1ZWRUcmFuc2l0aW9ucyhsKXtjb25zdCBhPVtdO3JldHVybiB0aGlzLl9xdWV1ZS5mb3JFYWNoKGQ9Pntjb25zdCBoPWQucGxheWVyO2lmKGguZGVzdHJveWVkKXJldHVybjtjb25zdCBmPWQuZWxlbWVudCx2PXRoaXMuX2VsZW1lbnRMaXN0ZW5lcnMuZ2V0KGYpO3YmJnYu'@; put 'Zm9yRWFjaChNPT57aWYoTS5uYW1lPT1kLnRyaWdnZXJOYW1lKXtjb25zdCBJPVJHKGYsZC50cmlnZ2VyTmFtZSxkLmZyb21TdGF0ZS52YWx1ZSxkLnRvU3RhdGUudmFsdWUpO0kuX2RhdGE9bCxERyhkLnBsYXllcixNLnBoYXNlLEksTS5jYWxsYmFjayl9fSksaC5tYXJrZWRGb3JEZXN0cm95'@; put 'P3RoaXMuX2VuZ2luZS5hZnRlckZsdXNoKCgpPT57aC5kZXN0cm95KCl9KTphLnB1c2goZCl9KSx0aGlzLl9xdWV1ZT1bXSxhLnNvcnQoKGQsaCk9Pntjb25zdCBmPWQudHJhbnNpdGlvbi5hc3QuZGVwQ291bnQsdj1oLnRyYW5zaXRpb24uYXN0LmRlcENvdW50O3JldHVybiAwPT1mfHwwPT12'@; put 'P2Ytdjp0aGlzLl9lbmdpbmUuZHJpdmVyLmNvbnRhaW5zRWxlbWVudChkLmVsZW1lbnQsaC5lbGVtZW50KT8xOi0xfSl9ZGVzdHJveShsKXt0aGlzLnBsYXllcnMuZm9yRWFjaChhPT5hLmRlc3Ryb3koKSksdGhpcy5fc2lnbmFsUmVtb3ZhbEZvcklubmVyVHJpZ2dlcnModGhpcy5ob3N0RWxl'@; put 'bWVudCxsKX19Y2xhc3MgViRle19vblJlbW92YWxDb21wbGV0ZShsLGEpe3RoaXMub25SZW1vdmFsQ29tcGxldGUobCxhKX1jb25zdHJ1Y3RvcihsLGEsZCxoKXt0aGlzLmJvZHlOb2RlPWwsdGhpcy5kcml2ZXI9YSx0aGlzLl9ub3JtYWxpemVyPWQsdGhpcy5zY2hlZHVsZXI9aCx0aGlzLnBs'@; put 'YXllcnM9W10sdGhpcy5uZXdIb3N0RWxlbWVudHM9bmV3IE1hcCx0aGlzLnBsYXllcnNCeUVsZW1lbnQ9bmV3IE1hcCx0aGlzLnBsYXllcnNCeVF1ZXJpZWRFbGVtZW50PW5ldyBNYXAsdGhpcy5zdGF0ZXNCeUVsZW1lbnQ9bmV3IE1hcCx0aGlzLmRpc2FibGVkTm9kZXM9bmV3IFNldCx0aGlz'@; put 'LnRvdGFsQW5pbWF0aW9ucz0wLHRoaXMudG90YWxRdWV1ZWRQbGF5ZXJzPTAsdGhpcy5fbmFtZXNwYWNlTG9va3VwPXt9LHRoaXMuX25hbWVzcGFjZUxpc3Q9W10sdGhpcy5fZmx1c2hGbnM9W10sdGhpcy5fd2hlblF1aWV0Rm5zPVtdLHRoaXMubmFtZXNwYWNlc0J5SG9zdEVsZW1lbnQ9bmV3'@; put 'IE1hcCx0aGlzLmNvbGxlY3RlZEVudGVyRWxlbWVudHM9W10sdGhpcy5jb2xsZWN0ZWRMZWF2ZUVsZW1lbnRzPVtdLHRoaXMub25SZW1vdmFsQ29tcGxldGU9KGYsdik9Pnt9fWdldCBxdWV1ZWRQbGF5ZXJzKCl7Y29uc3QgbD1bXTtyZXR1cm4gdGhpcy5fbmFtZXNwYWNlTGlzdC5mb3JFYWNo'@; put 'KGE9PnthLnBsYXllcnMuZm9yRWFjaChkPT57ZC5xdWV1ZWQmJmwucHVzaChkKX0pfSksbH1jcmVhdGVOYW1lc3BhY2UobCxhKXtjb25zdCBkPW5ldyBOJGUobCxhLHRoaXMpO3JldHVybiB0aGlzLmJvZHlOb2RlJiZ0aGlzLmRyaXZlci5jb250YWluc0VsZW1lbnQodGhpcy5ib2R5Tm9kZSxh'@; put 'KT90aGlzLl9iYWxhbmNlTmFtZXNwYWNlTGlzdChkLGEpOih0aGlzLm5ld0hvc3RFbGVtZW50cy5zZXQoYSxkKSx0aGlzLmNvbGxlY3RFbnRlckVsZW1lbnQoYSkpLHRoaXMuX25hbWVzcGFjZUxvb2t1cFtsXT1kfV9iYWxhbmNlTmFtZXNwYWNlTGlzdChsLGEpe2NvbnN0IGQ9dGhpcy5fbmFt'@; put 'ZXNwYWNlTGlzdCxoPXRoaXMubmFtZXNwYWNlc0J5SG9zdEVsZW1lbnQ7aWYoZC5sZW5ndGgtMT49MCl7bGV0IHY9ITEsTT10aGlzLmRyaXZlci5nZXRQYXJlbnRFbGVtZW50KGEpO2Zvcig7TTspe2NvbnN0IEk9aC5nZXQoTSk7aWYoSSl7Y29uc3QgRz1kLmluZGV4T2YoSSk7ZC5zcGxpY2Uo'@; put 'RysxLDAsbCksdj0hMDticmVha31NPXRoaXMuZHJpdmVyLmdldFBhcmVudEVsZW1lbnQoTSl9dnx8ZC51bnNoaWZ0KGwpfWVsc2UgZC5wdXNoKGwpO3JldHVybiBoLnNldChhLGwpLGx9cmVnaXN0ZXIobCxhKXtsZXQgZD10aGlzLl9uYW1lc3BhY2VMb29rdXBbbF07cmV0dXJuIGR8fChkPXRo'@; put 'aXMuY3JlYXRlTmFtZXNwYWNlKGwsYSkpLGR9cmVnaXN0ZXJUcmlnZ2VyKGwsYSxkKXtsZXQgaD10aGlzLl9uYW1lc3BhY2VMb29rdXBbbF07aCYmaC5yZWdpc3RlcihhLGQpJiZ0aGlzLnRvdGFsQW5pbWF0aW9ucysrfWRlc3Ryb3kobCxhKXtsJiYodGhpcy5hZnRlckZsdXNoKCgpPT57fSks'@; put 'dGhpcy5hZnRlckZsdXNoQW5pbWF0aW9uc0RvbmUoKCk9Pntjb25zdCBkPXRoaXMuX2ZldGNoTmFtZXNwYWNlKGwpO3RoaXMubmFtZXNwYWNlc0J5SG9zdEVsZW1lbnQuZGVsZXRlKGQuaG9zdEVsZW1lbnQpO2NvbnN0IGg9dGhpcy5fbmFtZXNwYWNlTGlzdC5pbmRleE9mKGQpO2g+PTAmJnRo'@; put 'aXMuX25hbWVzcGFjZUxpc3Quc3BsaWNlKGgsMSksZC5kZXN0cm95KGEpLGRlbGV0ZSB0aGlzLl9uYW1lc3BhY2VMb29rdXBbbF19KSl9X2ZldGNoTmFtZXNwYWNlKGwpe3JldHVybiB0aGlzLl9uYW1lc3BhY2VMb29rdXBbbF19ZmV0Y2hOYW1lc3BhY2VzQnlFbGVtZW50KGwpe2NvbnN0IGE9'@; put 'bmV3IFNldCxkPXRoaXMuc3RhdGVzQnlFbGVtZW50LmdldChsKTtpZihkKWZvcihsZXQgaCBvZiBkLnZhbHVlcygpKWlmKGgubmFtZXNwYWNlSWQpe2NvbnN0IGY9dGhpcy5fZmV0Y2hOYW1lc3BhY2UoaC5uYW1lc3BhY2VJZCk7ZiYmYS5hZGQoZil9cmV0dXJuIGF9dHJpZ2dlcihsLGEsZCxo'@; put 'KXtpZihrTyhhKSl7Y29uc3QgZj10aGlzLl9mZXRjaE5hbWVzcGFjZShsKTtpZihmKXJldHVybiBmLnRyaWdnZXIoYSxkLGgpLCEwfXJldHVybiExfWluc2VydE5vZGUobCxhLGQsaCl7aWYoIWtPKGEpKXJldHVybjtjb25zdCBmPWFbaTNdO2lmKGYmJmYuc2V0Rm9yUmVtb3ZhbCl7Zi5zZXRG'@; put 'b3JSZW1vdmFsPSExLGYuc2V0Rm9yTW92ZT0hMDtjb25zdCB2PXRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50cy5pbmRleE9mKGEpO3Y+PTAmJnRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50cy5zcGxpY2UodiwxKX1pZihsKXtjb25zdCB2PXRoaXMuX2ZldGNoTmFtZXNwYWNlKGwpO3YmJnYu'@; put 'aW5zZXJ0Tm9kZShhLGQpfWgmJnRoaXMuY29sbGVjdEVudGVyRWxlbWVudChhKX1jb2xsZWN0RW50ZXJFbGVtZW50KGwpe3RoaXMuY29sbGVjdGVkRW50ZXJFbGVtZW50cy5wdXNoKGwpfW1hcmtFbGVtZW50QXNEaXNhYmxlZChsLGEpe2E/dGhpcy5kaXNhYmxlZE5vZGVzLmhhcyhsKXx8KHRo'@; put 'aXMuZGlzYWJsZWROb2Rlcy5hZGQobCksTjIobCxLRykpOnRoaXMuZGlzYWJsZWROb2Rlcy5oYXMobCkmJih0aGlzLmRpc2FibGVkTm9kZXMuZGVsZXRlKGwpLHRfKGwsS0cpKX1yZW1vdmVOb2RlKGwsYSxkKXtpZihrTyhhKSl7dGhpcy5zY2hlZHVsZXI/Lm5vdGlmeSgpO2NvbnN0IGg9bD90'@; put 'aGlzLl9mZXRjaE5hbWVzcGFjZShsKTpudWxsO2g/aC5yZW1vdmVOb2RlKGEsZCk6dGhpcy5tYXJrRWxlbWVudEFzUmVtb3ZlZChsLGEsITEsZCk7Y29uc3QgZj10aGlzLm5hbWVzcGFjZXNCeUhvc3RFbGVtZW50LmdldChhKTtmJiZmLmlkIT09bCYmZi5yZW1vdmVOb2RlKGEsZCl9ZWxzZSB0'@; put 'aGlzLl9vblJlbW92YWxDb21wbGV0ZShhLGQpfW1hcmtFbGVtZW50QXNSZW1vdmVkKGwsYSxkLGgsZil7dGhpcy5jb2xsZWN0ZWRMZWF2ZUVsZW1lbnRzLnB1c2goYSksYVtpM109e25hbWVzcGFjZUlkOmwsc2V0Rm9yUmVtb3ZhbDpoLGhhc0FuaW1hdGlvbjpkLHJlbW92ZWRCZWZvcmVRdWVy'@; put 'aWVkOiExLHByZXZpb3VzVHJpZ2dlcnNWYWx1ZXM6Zn19bGlzdGVuKGwsYSxkLGgsZil7cmV0dXJuIGtPKGEpP3RoaXMuX2ZldGNoTmFtZXNwYWNlKGwpLmxpc3RlbihhLGQsaCxmKTooKT0+e319X2J1aWxkSW5zdHJ1Y3Rpb24obCxhLGQsaCxmKXtyZXR1cm4gbC50cmFuc2l0aW9uLmJ1aWxk'@; put 'KHRoaXMuZHJpdmVyLGwuZWxlbWVudCxsLmZyb21TdGF0ZS52YWx1ZSxsLnRvU3RhdGUudmFsdWUsZCxoLGwuZnJvbVN0YXRlLm9wdGlvbnMsbC50b1N0YXRlLm9wdGlvbnMsYSxmKX1kZXN0cm95SW5uZXJBbmltYXRpb25zKGwpe2xldCBhPXRoaXMuZHJpdmVyLnF1ZXJ5KGwsd08sITApO2Eu'@; put 'Zm9yRWFjaChkPT50aGlzLmRlc3Ryb3lBY3RpdmVBbmltYXRpb25zRm9yRWxlbWVudChkKSksMCE9dGhpcy5wbGF5ZXJzQnlRdWVyaWVkRWxlbWVudC5zaXplJiYoYT10aGlzLmRyaXZlci5xdWVyeShsLE5HLCEwKSxhLmZvckVhY2goZD0+dGhpcy5maW5pc2hBY3RpdmVRdWVyaWVkQW5pbWF0'@; put 'aW9uT25FbGVtZW50KGQpKSl9ZGVzdHJveUFjdGl2ZUFuaW1hdGlvbnNGb3JFbGVtZW50KGwpe2NvbnN0IGE9dGhpcy5wbGF5ZXJzQnlFbGVtZW50LmdldChsKTthJiZhLmZvckVhY2goZD0+e2QucXVldWVkP2QubWFya2VkRm9yRGVzdHJveT0hMDpkLmRlc3Ryb3koKX0pfWZpbmlzaEFjdGl2'@; put 'ZVF1ZXJpZWRBbmltYXRpb25PbkVsZW1lbnQobCl7Y29uc3QgYT10aGlzLnBsYXllcnNCeVF1ZXJpZWRFbGVtZW50LmdldChsKTthJiZhLmZvckVhY2goZD0+ZC5maW5pc2goKSl9d2hlblJlbmRlcmluZ0RvbmUoKXtyZXR1cm4gbmV3IFByb21pc2UobD0+e2lmKHRoaXMucGxheWVycy5sZW5n'@; put 'dGgpcmV0dXJuIFRtKHRoaXMucGxheWVycykub25Eb25lKCgpPT5sKCkpO2woKX0pfXByb2Nlc3NMZWF2ZU5vZGUobCl7Y29uc3QgYT1sW2kzXTtpZihhJiZhLnNldEZvclJlbW92YWwpe2lmKGxbaTNdPUdoZSxhLm5hbWVzcGFjZUlkKXt0aGlzLmRlc3Ryb3lJbm5lckFuaW1hdGlvbnMobCk7'@; put 'Y29uc3QgZD10aGlzLl9mZXRjaE5hbWVzcGFjZShhLm5hbWVzcGFjZUlkKTtkJiZkLmNsZWFyRWxlbWVudENhY2hlKGwpfXRoaXMuX29uUmVtb3ZhbENvbXBsZXRlKGwsYS5zZXRGb3JSZW1vdmFsKX1sLmNsYXNzTGlzdD8uY29udGFpbnMoS0cpJiZ0aGlzLm1hcmtFbGVtZW50QXNEaXNhYmxl'@; put 'ZChsLCExKSx0aGlzLmRyaXZlci5xdWVyeShsLCIubmctYW5pbWF0ZS1kaXNhYmxlZCIsITApLmZvckVhY2goZD0+e3RoaXMubWFya0VsZW1lbnRBc0Rpc2FibGVkKGQsITEpfSl9Zmx1c2gobD0tMSl7bGV0IGE9W107aWYodGhpcy5uZXdIb3N0RWxlbWVudHMuc2l6ZSYmKHRoaXMubmV3SG9z'@; put 'dEVsZW1lbnRzLmZvckVhY2goKGQsaCk9PnRoaXMuX2JhbGFuY2VOYW1lc3BhY2VMaXN0KGQsaCkpLHRoaXMubmV3SG9zdEVsZW1lbnRzLmNsZWFyKCkpLHRoaXMudG90YWxBbmltYXRpb25zJiZ0aGlzLmNvbGxlY3RlZEVudGVyRWxlbWVudHMubGVuZ3RoKWZvcihsZXQgZD0wO2Q8dGhpcy5j'@; put 'b2xsZWN0ZWRFbnRlckVsZW1lbnRzLmxlbmd0aDtkKyspTjIodGhpcy5jb2xsZWN0ZWRFbnRlckVsZW1lbnRzW2RdLCJuZy1zdGFyLWluc2VydGVkIik7aWYodGhpcy5fbmFtZXNwYWNlTGlzdC5sZW5ndGgmJih0aGlzLnRvdGFsUXVldWVkUGxheWVyc3x8dGhpcy5jb2xsZWN0ZWRMZWF2ZUVs'@; put 'ZW1lbnRzLmxlbmd0aCkpe2NvbnN0IGQ9W107dHJ5e2E9dGhpcy5fZmx1c2hBbmltYXRpb25zKGQsbCl9ZmluYWxseXtmb3IobGV0IGg9MDtoPGQubGVuZ3RoO2grKylkW2hdKCl9fWVsc2UgZm9yKGxldCBkPTA7ZDx0aGlzLmNvbGxlY3RlZExlYXZlRWxlbWVudHMubGVuZ3RoO2QrKyl0aGlz'@; put 'LnByb2Nlc3NMZWF2ZU5vZGUodGhpcy5jb2xsZWN0ZWRMZWF2ZUVsZW1lbnRzW2RdKTtpZih0aGlzLnRvdGFsUXVldWVkUGxheWVycz0wLHRoaXMuY29sbGVjdGVkRW50ZXJFbGVtZW50cy5sZW5ndGg9MCx0aGlzLmNvbGxlY3RlZExlYXZlRWxlbWVudHMubGVuZ3RoPTAsdGhpcy5fZmx1c2hG'@; put 'bnMuZm9yRWFjaChkPT5kKCkpLHRoaXMuX2ZsdXNoRm5zPVtdLHRoaXMuX3doZW5RdWlldEZucy5sZW5ndGgpe2NvbnN0IGQ9dGhpcy5fd2hlblF1aWV0Rm5zO3RoaXMuX3doZW5RdWlldEZucz1bXSxhLmxlbmd0aD9UbShhKS5vbkRvbmUoKCk9PntkLmZvckVhY2goaD0+aCgpKX0pOmQuZm9y'@; put 'RWFjaChoPT5oKCkpfX1yZXBvcnRFcnJvcihsKXt0aHJvdyBmdW5jdGlvbiBaR2UoYyl7cmV0dXJuIG5ldyBucigzNDAyLCExKX0oKX1fZmx1c2hBbmltYXRpb25zKGwsYSl7Y29uc3QgZD1uZXcgRU8saD1bXSxmPW5ldyBNYXAsdj1bXSxNPW5ldyBNYXAsST1uZXcgTWFwLEc9bmV3IE1hcCxy'@; put 'ZT1uZXcgU2V0O3RoaXMuZGlzYWJsZWROb2Rlcy5mb3JFYWNoKHRyPT57cmUuYWRkKHRyKTtjb25zdCBCcj10aGlzLmRyaXZlci5xdWVyeSh0ciwiLm5nLWFuaW1hdGUtcXVldWVkIiwhMCk7Zm9yKGxldCBZcj0wO1lyPEJyLmxlbmd0aDtZcisrKXJlLmFkZChCcltZcl0pfSk7Y29uc3QgdWU9'@; put 'dGhpcy5ib2R5Tm9kZSx5ZT1BcnJheS5mcm9tKHRoaXMuc3RhdGVzQnlFbGVtZW50LmtleXMoKSksRWU9WGhlKHllLHRoaXMuY29sbGVjdGVkRW50ZXJFbGVtZW50cyksQmU9bmV3IE1hcDtsZXQgR2U9MDtFZS5mb3JFYWNoKCh0cixCcik9Pntjb25zdCBZcj1IRytHZSsrO0JlLnNldChCcixZ'@; put 'ciksdHIuZm9yRWFjaCh3aT0+TjIod2ksWXIpKX0pO2NvbnN0IHN0PVtdLHB0PW5ldyBTZXQsZHQ9bmV3IFNldDtmb3IobGV0IHRyPTA7dHI8dGhpcy5jb2xsZWN0ZWRMZWF2ZUVsZW1lbnRzLmxlbmd0aDt0cisrKXtjb25zdCBCcj10aGlzLmNvbGxlY3RlZExlYXZlRWxlbWVudHNbdHJdLFly'@; put 'PUJyW2kzXTtZciYmWXIuc2V0Rm9yUmVtb3ZhbCYmKHN0LnB1c2goQnIpLHB0LmFkZChCciksWXIuaGFzQW5pbWF0aW9uP3RoaXMuZHJpdmVyLnF1ZXJ5KEJyLCIubmctc3Rhci1pbnNlcnRlZCIsITApLmZvckVhY2god2k9PnB0LmFkZCh3aSkpOmR0LmFkZChCcikpfWNvbnN0IHF0PW5ldyBN'@; put 'YXAsbW49WGhlKHllLEFycmF5LmZyb20ocHQpKTttbi5mb3JFYWNoKCh0cixCcik9Pntjb25zdCBZcj1iTytHZSsrO3F0LnNldChCcixZciksdHIuZm9yRWFjaCh3aT0+TjIod2ksWXIpKX0pLGwucHVzaCgoKT0+e0VlLmZvckVhY2goKHRyLEJyKT0+e2NvbnN0IFlyPUJlLmdldChCcik7dHIu'@; put 'Zm9yRWFjaCh3aT0+dF8od2ksWXIpKX0pLG1uLmZvckVhY2goKHRyLEJyKT0+e2NvbnN0IFlyPXF0LmdldChCcik7dHIuZm9yRWFjaCh3aT0+dF8od2ksWXIpKX0pLHN0LmZvckVhY2godHI9Pnt0aGlzLnByb2Nlc3NMZWF2ZU5vZGUodHIpfSl9KTtjb25zdCB3bj1bXSxobj1bXTtmb3IobGV0'@; put 'IHRyPXRoaXMuX25hbWVzcGFjZUxpc3QubGVuZ3RoLTE7dHI+PTA7dHItLSl0aGlzLl9uYW1lc3BhY2VMaXN0W3RyXS5kcmFpblF1ZXVlZFRyYW5zaXRpb25zKGEpLmZvckVhY2goWXI9Pntjb25zdCB3aT1Zci5wbGF5ZXIsQmk9WXIuZWxlbWVudDtpZih3bi5wdXNoKHdpKSx0aGlzLmNvbGxl'@; put 'Y3RlZEVudGVyRWxlbWVudHMubGVuZ3RoKXtjb25zdCAkbj1CaVtpM107aWYoJG4mJiRuLnNldEZvck1vdmUpe2lmKCRuLnByZXZpb3VzVHJpZ2dlcnNWYWx1ZXMmJiRuLnByZXZpb3VzVHJpZ2dlcnNWYWx1ZXMuaGFzKFlyLnRyaWdnZXJOYW1lKSl7Y29uc3QgYXI9JG4ucHJldmlvdXNUcmln'@; put 'Z2Vyc1ZhbHVlcy5nZXQoWXIudHJpZ2dlck5hbWUpLEdyPXRoaXMuc3RhdGVzQnlFbGVtZW50LmdldChZci5lbGVtZW50KTtpZihHciYmR3IuaGFzKFlyLnRyaWdnZXJOYW1lKSl7Y29uc3QgR3Q9R3IuZ2V0KFlyLnRyaWdnZXJOYW1lKTtHdC52YWx1ZT1hcixHci5zZXQoWXIudHJpZ2dlck5h'@; put 'bWUsR3QpfX1yZXR1cm4gdm9pZCB3aS5kZXN0cm95KCl9fWNvbnN0IGhhPSF1ZXx8IXRoaXMuZHJpdmVyLmNvbnRhaW5zRWxlbWVudCh1ZSxCaSksbWE9cXQuZ2V0KEJpKSx2dD1CZS5nZXQoQmkpLHh0PXRoaXMuX2J1aWxkSW5zdHJ1Y3Rpb24oWXIsZCx2dCxtYSxoYSk7aWYoeHQuZXJyb3Jz'@; put 'JiZ4dC5lcnJvcnMubGVuZ3RoKXJldHVybiB2b2lkIGhuLnB1c2goeHQpO2lmKGhhKXJldHVybiB3aS5vblN0YXJ0KCgpPT5GNyhCaSx4dC5mcm9tU3R5bGVzKSksd2kub25EZXN0cm95KCgpPT5FcChCaSx4dC50b1N0eWxlcykpLHZvaWQgaC5wdXNoKHdpKTtpZihZci5pc0ZhbGxiYWNrVHJh'@; put 'bnNpdGlvbilyZXR1cm4gd2kub25TdGFydCgoKT0+RjcoQmkseHQuZnJvbVN0eWxlcykpLHdpLm9uRGVzdHJveSgoKT0+RXAoQmkseHQudG9TdHlsZXMpKSx2b2lkIGgucHVzaCh3aSk7Y29uc3QgJHQ9W107eHQudGltZWxpbmVzLmZvckVhY2goJG49Pnskbi5zdHJldGNoU3RhcnRpbmdLZXlm'@; put 'cmFtZT0hMCx0aGlzLmRpc2FibGVkTm9kZXMuaGFzKCRuLmVsZW1lbnQpfHwkdC5wdXNoKCRuKX0pLHh0LnRpbWVsaW5lcz0kdCxkLmFwcGVuZChCaSx4dC50aW1lbGluZXMpLHYucHVzaCh7aW5zdHJ1Y3Rpb246eHQscGxheWVyOndpLGVsZW1lbnQ6Qml9KSx4dC5xdWVyaWVkRWxlbWVudHMu'@; put 'Zm9yRWFjaCgkbj0+a2goTSwkbixbXSkucHVzaCh3aSkpLHh0LnByZVN0eWxlUHJvcHMuZm9yRWFjaCgoJG4sYXIpPT57aWYoJG4uc2l6ZSl7bGV0IEdyPUkuZ2V0KGFyKTtHcnx8SS5zZXQoYXIsR3I9bmV3IFNldCksJG4uZm9yRWFjaCgoR3QsYm4pPT5Hci5hZGQoYm4pKX19KSx4dC5wb3N0'@; put 'U3R5bGVQcm9wcy5mb3JFYWNoKCgkbixhcik9PntsZXQgR3I9Ry5nZXQoYXIpO0dyfHxHLnNldChhcixHcj1uZXcgU2V0KSwkbi5mb3JFYWNoKChHdCxibik9PkdyLmFkZChibikpfSl9KTtpZihobi5sZW5ndGgpe2NvbnN0IHRyPVtdO2huLmZvckVhY2goQnI9Pnt0ci5wdXNoKGZ1bmN0aW9u'@; put 'IFdHZShjLGwpe3JldHVybiBuZXcgbnIoMzUwNSwhMSl9KCkpfSksd24uZm9yRWFjaChCcj0+QnIuZGVzdHJveSgpKSx0aGlzLnJlcG9ydEVycm9yKHRyKX1jb25zdCBNbj1uZXcgTWFwLE1yPW5ldyBNYXA7di5mb3JFYWNoKHRyPT57Y29uc3QgQnI9dHIuZWxlbWVudDtkLmhhcyhCcikmJihN'@; put 'ci5zZXQoQnIsQnIpLHRoaXMuX2JlZm9yZUFuaW1hdGlvbkJ1aWxkKHRyLnBsYXllci5uYW1lc3BhY2VJZCx0ci5pbnN0cnVjdGlvbixNbikpfSksaC5mb3JFYWNoKHRyPT57Y29uc3QgQnI9dHIuZWxlbWVudDt0aGlzLl9nZXRQcmV2aW91c1BsYXllcnMoQnIsITEsdHIubmFtZXNwYWNlSWQs'@; put 'dHIudHJpZ2dlck5hbWUsbnVsbCkuZm9yRWFjaCh3aT0+e2toKE1uLEJyLFtdKS5wdXNoKHdpKSx3aS5kZXN0cm95KCl9KX0pO2NvbnN0IGtyPXN0LmZpbHRlcih0cj0+SmhlKHRyLEksRykpLHFuPW5ldyBNYXA7S2hlKHFuLHRoaXMuZHJpdmVyLGR0LEcscmcpLmZvckVhY2godHI9PntKaGUo'@; put 'dHIsSSxHKSYma3IucHVzaCh0cil9KTtjb25zdCBxcj1uZXcgTWFwO0VlLmZvckVhY2goKHRyLEJyKT0+e0toZShxcix0aGlzLmRyaXZlcixuZXcgU2V0KHRyKSxJLCIhIil9KSxrci5mb3JFYWNoKHRyPT57Y29uc3QgQnI9cW4uZ2V0KHRyKSxZcj1xci5nZXQodHIpO3FuLnNldCh0cixuZXcg'@; put 'TWFwKFsuLi5Ccj8uZW50cmllcygpPz9bXSwuLi5Zcj8uZW50cmllcygpPz9bXV0pKX0pO2NvbnN0IF9pPVtdLFBuPVtdLFVyPXt9O3YuZm9yRWFjaCh0cj0+e2NvbnN0e2VsZW1lbnQ6QnIscGxheWVyOllyLGluc3RydWN0aW9uOndpfT10cjtpZihkLmhhcyhCcikpe2lmKHJlLmhhcyhCcikp'@; put 'cmV0dXJuIFlyLm9uRGVzdHJveSgoKT0+RXAoQnIsd2kudG9TdHlsZXMpKSxZci5kaXNhYmxlZD0hMCxZci5vdmVycmlkZVRvdGFsVGltZSh3aS50b3RhbFRpbWUpLHZvaWQgaC5wdXNoKFlyKTtsZXQgQmk9VXI7aWYoTXIuc2l6ZT4xKXtsZXQgbWE9QnI7Y29uc3QgdnQ9W107Zm9yKDttYT1t'@; put 'YS5wYXJlbnROb2RlOyl7Y29uc3QgeHQ9TXIuZ2V0KG1hKTtpZih4dCl7Qmk9eHQ7YnJlYWt9dnQucHVzaChtYSl9dnQuZm9yRWFjaCh4dD0+TXIuc2V0KHh0LEJpKSl9Y29uc3QgaGE9dGhpcy5fYnVpbGRBbmltYXRpb24oWXIubmFtZXNwYWNlSWQsd2ksTW4sZixxcixxbik7aWYoWXIuc2V0'@; put 'UmVhbFBsYXllcihoYSksQmk9PT1VcilfaS5wdXNoKFlyKTtlbHNle2NvbnN0IG1hPXRoaXMucGxheWVyc0J5RWxlbWVudC5nZXQoQmkpO21hJiZtYS5sZW5ndGgmJihZci5wYXJlbnRQbGF5ZXI9VG0obWEpKSxoLnB1c2goWXIpfX1lbHNlIEY3KEJyLHdpLmZyb21TdHlsZXMpLFlyLm9uRGVz'@; put 'dHJveSgoKT0+RXAoQnIsd2kudG9TdHlsZXMpKSxQbi5wdXNoKFlyKSxyZS5oYXMoQnIpJiZoLnB1c2goWXIpfSksUG4uZm9yRWFjaCh0cj0+e2NvbnN0IEJyPWYuZ2V0KHRyLmVsZW1lbnQpO2lmKEJyJiZCci5sZW5ndGgpe2NvbnN0IFlyPVRtKEJyKTt0ci5zZXRSZWFsUGxheWVyKFlyKX19'@; put 'KSxoLmZvckVhY2godHI9Pnt0ci5wYXJlbnRQbGF5ZXI/dHIuc3luY1BsYXllckV2ZW50cyh0ci5wYXJlbnRQbGF5ZXIpOnRyLmRlc3Ryb3koKX0pO2ZvcihsZXQgdHI9MDt0cjxzdC5sZW5ndGg7dHIrKyl7Y29uc3QgQnI9c3RbdHJdLFlyPUJyW2kzXTtpZih0XyhCcixiTyksWXImJllyLmhh'@; put 'c0FuaW1hdGlvbiljb250aW51ZTtsZXQgd2k9W107aWYoTS5zaXplKXtsZXQgaGE9TS5nZXQoQnIpO2hhJiZoYS5sZW5ndGgmJndpLnB1c2goLi4uaGEpO2xldCBtYT10aGlzLmRyaXZlci5xdWVyeShCcixORywhMCk7Zm9yKGxldCB2dD0wO3Z0PG1hLmxlbmd0aDt2dCsrKXtsZXQgeHQ9TS5n'@; put 'ZXQobWFbdnRdKTt4dCYmeHQubGVuZ3RoJiZ3aS5wdXNoKC4uLnh0KX19Y29uc3QgQmk9d2kuZmlsdGVyKGhhPT4haGEuZGVzdHJveWVkKTtCaS5sZW5ndGg/VSRlKHRoaXMsQnIsQmkpOnRoaXMucHJvY2Vzc0xlYXZlTm9kZShCcil9cmV0dXJuIHN0Lmxlbmd0aD0wLF9pLmZvckVhY2godHI9'@; put 'Pnt0aGlzLnBsYXllcnMucHVzaCh0ciksdHIub25Eb25lKCgpPT57dHIuZGVzdHJveSgpO2NvbnN0IEJyPXRoaXMucGxheWVycy5pbmRleE9mKHRyKTt0aGlzLnBsYXllcnMuc3BsaWNlKEJyLDEpfSksdHIucGxheSgpfSksX2l9YWZ0ZXJGbHVzaChsKXt0aGlzLl9mbHVzaEZucy5wdXNoKGwp'@; put 'fWFmdGVyRmx1c2hBbmltYXRpb25zRG9uZShsKXt0aGlzLl93aGVuUXVpZXRGbnMucHVzaChsKX1fZ2V0UHJldmlvdXNQbGF5ZXJzKGwsYSxkLGgsZil7bGV0IHY9W107aWYoYSl7Y29uc3QgTT10aGlzLnBsYXllcnNCeVF1ZXJpZWRFbGVtZW50LmdldChsKTtNJiYodj1NKX1lbHNle2NvbnN0'@; put 'IE09dGhpcy5wbGF5ZXJzQnlFbGVtZW50LmdldChsKTtpZihNKXtjb25zdCBJPSFmfHxmPT1jRTtNLmZvckVhY2goRz0+e0cucXVldWVkfHwhSSYmRy50cmlnZ2VyTmFtZSE9aHx8di5wdXNoKEcpfSl9fXJldHVybihkfHxoKSYmKHY9di5maWx0ZXIoTT0+IShkJiZkIT1NLm5hbWVzcGFjZUlk'@; put 'fHxoJiZoIT1NLnRyaWdnZXJOYW1lKSkpLHZ9X2JlZm9yZUFuaW1hdGlvbkJ1aWxkKGwsYSxkKXtjb25zdCBmPWEuZWxlbWVudCx2PWEuaXNSZW1vdmFsVHJhbnNpdGlvbj92b2lkIDA6bCxNPWEuaXNSZW1vdmFsVHJhbnNpdGlvbj92b2lkIDA6YS50cmlnZ2VyTmFtZTtmb3IoY29uc3QgSSBv'@; put 'ZiBhLnRpbWVsaW5lcyl7Y29uc3QgRz1JLmVsZW1lbnQscmU9RyE9PWYsdWU9a2goZCxHLFtdKTt0aGlzLl9nZXRQcmV2aW91c1BsYXllcnMoRyxyZSx2LE0sYS50b1N0YXRlKS5mb3JFYWNoKEVlPT57Y29uc3QgQmU9RWUuZ2V0UmVhbFBsYXllcigpO0JlLmJlZm9yZURlc3Ryb3kmJkJlLmJl'@; put 'Zm9yZURlc3Ryb3koKSxFZS5kZXN0cm95KCksdWUucHVzaChFZSl9KX1GNyhmLGEuZnJvbVN0eWxlcyl9X2J1aWxkQW5pbWF0aW9uKGwsYSxkLGgsZix2KXtjb25zdCBNPWEudHJpZ2dlck5hbWUsST1hLmVsZW1lbnQsRz1bXSxyZT1uZXcgU2V0LHVlPW5ldyBTZXQseWU9YS50aW1lbGluZXMu'@; put 'bWFwKEJlPT57Y29uc3QgR2U9QmUuZWxlbWVudDtyZS5hZGQoR2UpO2NvbnN0IHN0PUdlW2kzXTtpZihzdCYmc3QucmVtb3ZlZEJlZm9yZVF1ZXJpZWQpcmV0dXJuIG5ldyBFeChCZS5kdXJhdGlvbixCZS5kZWxheSk7Y29uc3QgcHQ9R2UhPT1JLGR0PWZ1bmN0aW9uIFokZShjKXtjb25zdCBs'@; put 'PVtdO3JldHVybiBxaGUoYyxsKSxsfSgoZC5nZXQoR2UpfHxGJGUpLm1hcChNbj0+TW4uZ2V0UmVhbFBsYXllcigpKSkuZmlsdGVyKE1uPT4hIU1uLmVsZW1lbnQmJk1uLmVsZW1lbnQ9PT1HZSkscXQ9Zi5nZXQoR2UpLG1uPXYuZ2V0KEdlKSx3bj1BaGUodGhpcy5fbm9ybWFsaXplcixCZS5r'@; put 'ZXlmcmFtZXMscXQsbW4pLGhuPXRoaXMuX2J1aWxkUGxheWVyKEJlLHduLGR0KTtpZihCZS5zdWJUaW1lbGluZSYmaCYmdWUuYWRkKEdlKSxwdCl7Y29uc3QgTW49bmV3IEpHKGwsTSxHZSk7TW4uc2V0UmVhbFBsYXllcihobiksRy5wdXNoKE1uKX1yZXR1cm4gaG59KTtHLmZvckVhY2goQmU9'@; put 'PntraCh0aGlzLnBsYXllcnNCeVF1ZXJpZWRFbGVtZW50LEJlLmVsZW1lbnQsW10pLnB1c2goQmUpLEJlLm9uRG9uZSgoKT0+ZnVuY3Rpb24gQiRlKGMsbCxhKXtsZXQgZD1jLmdldChsKTtpZihkKXtpZihkLmxlbmd0aCl7Y29uc3QgaD1kLmluZGV4T2YoYSk7ZC5zcGxpY2UoaCwxKX0wPT1k'@; put 'Lmxlbmd0aCYmYy5kZWxldGUobCl9cmV0dXJuIGR9KHRoaXMucGxheWVyc0J5UXVlcmllZEVsZW1lbnQsQmUuZWxlbWVudCxCZSkpfSkscmUuZm9yRWFjaChCZT0+TjIoQmUsT2hlKSk7Y29uc3QgRWU9VG0oeWUpO3JldHVybiBFZS5vbkRlc3Ryb3koKCk9PntyZS5mb3JFYWNoKEJlPT50XyhC'@; put 'ZSxPaGUpKSxFcChJLGEudG9TdHlsZXMpfSksdWUuZm9yRWFjaChCZT0+e2toKGgsQmUsW10pLnB1c2goRWUpfSksRWV9X2J1aWxkUGxheWVyKGwsYSxkKXtyZXR1cm4gYS5sZW5ndGg+MD90aGlzLmRyaXZlci5hbmltYXRlKGwuZWxlbWVudCxhLGwuZHVyYXRpb24sbC5kZWxheSxsLmVhc2lu'@; put 'ZyxkKTpuZXcgRXgobC5kdXJhdGlvbixsLmRlbGF5KX19Y2xhc3MgSkd7Y29uc3RydWN0b3IobCxhLGQpe3RoaXMubmFtZXNwYWNlSWQ9bCx0aGlzLnRyaWdnZXJOYW1lPWEsdGhpcy5lbGVtZW50PWQsdGhpcy5fcGxheWVyPW5ldyBFeCx0aGlzLl9jb250YWluc1JlYWxQbGF5ZXI9ITEsdGhp'@; put 'cy5fcXVldWVkQ2FsbGJhY2tzPW5ldyBNYXAsdGhpcy5kZXN0cm95ZWQ9ITEsdGhpcy5wYXJlbnRQbGF5ZXI9bnVsbCx0aGlzLm1hcmtlZEZvckRlc3Ryb3k9ITEsdGhpcy5kaXNhYmxlZD0hMSx0aGlzLnF1ZXVlZD0hMCx0aGlzLnRvdGFsVGltZT0wfXNldFJlYWxQbGF5ZXIobCl7dGhpcy5f'@; put 'Y29udGFpbnNSZWFsUGxheWVyfHwodGhpcy5fcGxheWVyPWwsdGhpcy5fcXVldWVkQ2FsbGJhY2tzLmZvckVhY2goKGEsZCk9PnthLmZvckVhY2goaD0+REcobCxkLHZvaWQgMCxoKSl9KSx0aGlzLl9xdWV1ZWRDYWxsYmFja3MuY2xlYXIoKSx0aGlzLl9jb250YWluc1JlYWxQbGF5ZXI9ITAs'@; put 'dGhpcy5vdmVycmlkZVRvdGFsVGltZShsLnRvdGFsVGltZSksdGhpcy5xdWV1ZWQ9ITEpfWdldFJlYWxQbGF5ZXIoKXtyZXR1cm4gdGhpcy5fcGxheWVyfW92ZXJyaWRlVG90YWxUaW1lKGwpe3RoaXMudG90YWxUaW1lPWx9c3luY1BsYXllckV2ZW50cyhsKXtjb25zdCBhPXRoaXMuX3BsYXll'@; put 'cjthLnRyaWdnZXJDYWxsYmFjayYmbC5vblN0YXJ0KCgpPT5hLnRyaWdnZXJDYWxsYmFjaygic3RhcnQiKSksbC5vbkRvbmUoKCk9PnRoaXMuZmluaXNoKCkpLGwub25EZXN0cm95KCgpPT50aGlzLmRlc3Ryb3koKSl9X3F1ZXVlRXZlbnQobCxhKXtraCh0aGlzLl9xdWV1ZWRDYWxsYmFja3Ms'@; put 'bCxbXSkucHVzaChhKX1vbkRvbmUobCl7dGhpcy5xdWV1ZWQmJnRoaXMuX3F1ZXVlRXZlbnQoImRvbmUiLGwpLHRoaXMuX3BsYXllci5vbkRvbmUobCl9b25TdGFydChsKXt0aGlzLnF1ZXVlZCYmdGhpcy5fcXVldWVFdmVudCgic3RhcnQiLGwpLHRoaXMuX3BsYXllci5vblN0YXJ0KGwpfW9u'@; put 'RGVzdHJveShsKXt0aGlzLnF1ZXVlZCYmdGhpcy5fcXVldWVFdmVudCgiZGVzdHJveSIsbCksdGhpcy5fcGxheWVyLm9uRGVzdHJveShsKX1pbml0KCl7dGhpcy5fcGxheWVyLmluaXQoKX1oYXNTdGFydGVkKCl7cmV0dXJuIXRoaXMucXVldWVkJiZ0aGlzLl9wbGF5ZXIuaGFzU3RhcnRlZCgp'@; put 'fXBsYXkoKXshdGhpcy5xdWV1ZWQmJnRoaXMuX3BsYXllci5wbGF5KCl9cGF1c2UoKXshdGhpcy5xdWV1ZWQmJnRoaXMuX3BsYXllci5wYXVzZSgpfXJlc3RhcnQoKXshdGhpcy5xdWV1ZWQmJnRoaXMuX3BsYXllci5yZXN0YXJ0KCl9ZmluaXNoKCl7dGhpcy5fcGxheWVyLmZpbmlzaCgpfWRl'@; put 'c3Ryb3koKXt0aGlzLmRlc3Ryb3llZD0hMCx0aGlzLl9wbGF5ZXIuZGVzdHJveSgpfXJlc2V0KCl7IXRoaXMucXVldWVkJiZ0aGlzLl9wbGF5ZXIucmVzZXQoKX1zZXRQb3NpdGlvbihsKXt0aGlzLnF1ZXVlZHx8dGhpcy5fcGxheWVyLnNldFBvc2l0aW9uKGwpfWdldFBvc2l0aW9uKCl7cmV0'@; put 'dXJuIHRoaXMucXVldWVkPzA6dGhpcy5fcGxheWVyLmdldFBvc2l0aW9uKCl9dHJpZ2dlckNhbGxiYWNrKGwpe2NvbnN0IGE9dGhpcy5fcGxheWVyO2EudHJpZ2dlckNhbGxiYWNrJiZhLnRyaWdnZXJDYWxsYmFjayhsKX19ZnVuY3Rpb24ga08oYyl7cmV0dXJuIGMmJjE9PT1jLm5vZGVUeXBl'@; put 'fWZ1bmN0aW9uICRoZShjLGwpe2NvbnN0IGE9Yy5zdHlsZS5kaXNwbGF5O3JldHVybiBjLnN0eWxlLmRpc3BsYXk9bD8/Im5vbmUiLGF9ZnVuY3Rpb24gS2hlKGMsbCxhLGQsaCl7Y29uc3QgZj1bXTthLmZvckVhY2goST0+Zi5wdXNoKCRoZShJKSkpO2NvbnN0IHY9W107ZC5mb3JFYWNoKChJ'@; put 'LEcpPT57Y29uc3QgcmU9bmV3IE1hcDtJLmZvckVhY2godWU9Pntjb25zdCB5ZT1sLmNvbXB1dGVTdHlsZShHLHVlLGgpO3JlLnNldCh1ZSx5ZSksKCF5ZXx8MD09eWUubGVuZ3RoKSYmKEdbaTNdPUgkZSx2LnB1c2goRykpfSksYy5zZXQoRyxyZSl9KTtsZXQgTT0wO3JldHVybiBhLmZvckVh'@; put 'Y2goST0+JGhlKEksZltNKytdKSksdn1mdW5jdGlvbiBYaGUoYyxsKXtjb25zdCBhPW5ldyBNYXA7aWYoYy5mb3JFYWNoKE09PmEuc2V0KE0sW10pKSwwPT1sLmxlbmd0aClyZXR1cm4gYTtjb25zdCBoPW5ldyBTZXQobCksZj1uZXcgTWFwO2Z1bmN0aW9uIHYoTSl7aWYoIU0pcmV0dXJuIDE7'@; put 'bGV0IEk9Zi5nZXQoTSk7aWYoSSlyZXR1cm4gSTtjb25zdCBHPU0ucGFyZW50Tm9kZTtyZXR1cm4gST1hLmhhcyhHKT9HOmguaGFzKEcpPzE6dihHKSxmLnNldChNLEkpLEl9cmV0dXJuIGwuZm9yRWFjaChNPT57Y29uc3QgST12KE0pOzEhPT1JJiZhLmdldChJKS5wdXNoKE0pfSksYX1mdW5j'@; put 'dGlvbiBOMihjLGwpe2MuY2xhc3NMaXN0Py5hZGQobCl9ZnVuY3Rpb24gdF8oYyxsKXtjLmNsYXNzTGlzdD8ucmVtb3ZlKGwpfWZ1bmN0aW9uIFUkZShjLGwsYSl7VG0oYSkub25Eb25lKCgpPT5jLnByb2Nlc3NMZWF2ZU5vZGUobCkpfWZ1bmN0aW9uIHFoZShjLGwpe2ZvcihsZXQgYT0wO2E8'@; put 'Yy5sZW5ndGg7YSsrKXtjb25zdCBkPWNbYV07ZCBpbnN0YW5jZW9mIHowZT9xaGUoZC5wbGF5ZXJzLGwpOmwucHVzaChkKX19ZnVuY3Rpb24gSmhlKGMsbCxhKXtjb25zdCBkPWEuZ2V0KGMpO2lmKCFkKXJldHVybiExO2xldCBoPWwuZ2V0KGMpO3JldHVybiBoP2QuZm9yRWFjaChmPT5oLmFk'@; put 'ZChmKSk6bC5zZXQoYyxkKSxhLmRlbGV0ZShjKSwhMH1jbGFzcyB1RXtjb25zdHJ1Y3RvcihsLGEsZCxoKXt0aGlzLl9kcml2ZXI9YSx0aGlzLl9ub3JtYWxpemVyPWQsdGhpcy5fdHJpZ2dlckNhY2hlPXt9LHRoaXMub25SZW1vdmFsQ29tcGxldGU9KGYsdik9Pnt9LHRoaXMuX3RyYW5zaXRp'@; put 'b25FbmdpbmU9bmV3IFYkZShsLmJvZHksYSxkLGgpLHRoaXMuX3RpbWVsaW5lRW5naW5lPW5ldyBJJGUobC5ib2R5LGEsZCksdGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5vblJlbW92YWxDb21wbGV0ZT0oZix2KT0+dGhpcy5vblJlbW92YWxDb21wbGV0ZShmLHYpfXJlZ2lzdGVyVHJpZ2dlcihs'@; put 'LGEsZCxoLGYpe2NvbnN0IHY9bCsiLSIraDtsZXQgTT10aGlzLl90cmlnZ2VyQ2FjaGVbdl07aWYoIU0pe2NvbnN0IEk9W10scmU9VUcodGhpcy5fZHJpdmVyLGYsSSxbXSk7aWYoSS5sZW5ndGgpdGhyb3cgZnVuY3Rpb24gT0dlKGMsbCl7cmV0dXJuIG5ldyBucigzNDA0LCExKX0oKTtNPWZ1'@; put 'bmN0aW9uIFQkZShjLGwsYSl7cmV0dXJuIG5ldyBBJGUoYyxsLGEpfShoLHJlLHRoaXMuX25vcm1hbGl6ZXIpLHRoaXMuX3RyaWdnZXJDYWNoZVt2XT1NfXRoaXMuX3RyYW5zaXRpb25FbmdpbmUucmVnaXN0ZXJUcmlnZ2VyKGEsaCxNKX1yZWdpc3RlcihsLGEpe3RoaXMuX3RyYW5zaXRpb25F'@; put 'bmdpbmUucmVnaXN0ZXIobCxhKX1kZXN0cm95KGwsYSl7dGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5kZXN0cm95KGwsYSl9b25JbnNlcnQobCxhLGQsaCl7dGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5pbnNlcnROb2RlKGwsYSxkLGgpfW9uUmVtb3ZlKGwsYSxkKXt0aGlzLl90cmFuc2l0aW9uRW5n'@; put 'aW5lLnJlbW92ZU5vZGUobCxhLGQpfWRpc2FibGVBbmltYXRpb25zKGwsYSl7dGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5tYXJrRWxlbWVudEFzRGlzYWJsZWQobCxhKX1wcm9jZXNzKGwsYSxkLGgpe2lmKCJAIj09ZC5jaGFyQXQoMCkpe2NvbnN0W2Ysdl09a2hlKGQpO3RoaXMuX3RpbWVsaW5l'@; put 'RW5naW5lLmNvbW1hbmQoZixhLHYsaCl9ZWxzZSB0aGlzLl90cmFuc2l0aW9uRW5naW5lLnRyaWdnZXIobCxhLGQsaCl9bGlzdGVuKGwsYSxkLGgsZil7aWYoIkAiPT1kLmNoYXJBdCgwKSl7Y29uc3RbdixNXT1raGUoZCk7cmV0dXJuIHRoaXMuX3RpbWVsaW5lRW5naW5lLmxpc3Rlbih2LGEs'@; put 'TSxmKX1yZXR1cm4gdGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5saXN0ZW4obCxhLGQsaCxmKX1mbHVzaChsPS0xKXt0aGlzLl90cmFuc2l0aW9uRW5naW5lLmZsdXNoKGwpfWdldCBwbGF5ZXJzKCl7cmV0dXJuWy4uLnRoaXMuX3RyYW5zaXRpb25FbmdpbmUucGxheWVycywuLi50aGlzLl90aW1l'@; put 'bGluZUVuZ2luZS5wbGF5ZXJzXX13aGVuUmVuZGVyaW5nRG9uZSgpe3JldHVybiB0aGlzLl90cmFuc2l0aW9uRW5naW5lLndoZW5SZW5kZXJpbmdEb25lKCl9YWZ0ZXJGbHVzaEFuaW1hdGlvbnNEb25lKGwpe3RoaXMuX3RyYW5zaXRpb25FbmdpbmUuYWZ0ZXJGbHVzaEFuaW1hdGlvbnNEb25l'@; put 'KGwpfX1jbGFzcyBkRXtzdGF0aWN7dGhpcy5pbml0aWFsU3R5bGVzQnlFbGVtZW50PW5ldyBXZWFrTWFwfWNvbnN0cnVjdG9yKGwsYSxkKXt0aGlzLl9lbGVtZW50PWwsdGhpcy5fc3RhcnRTdHlsZXM9YSx0aGlzLl9lbmRTdHlsZXM9ZCx0aGlzLl9zdGF0ZT0wO2xldCBoPWRFLmluaXRpYWxT'@; put 'dHlsZXNCeUVsZW1lbnQuZ2V0KGwpO2h8fGRFLmluaXRpYWxTdHlsZXNCeUVsZW1lbnQuc2V0KGwsaD1uZXcgTWFwKSx0aGlzLl9pbml0aWFsU3R5bGVzPWh9c3RhcnQoKXt0aGlzLl9zdGF0ZTwxJiYodGhpcy5fc3RhcnRTdHlsZXMmJkVwKHRoaXMuX2VsZW1lbnQsdGhpcy5fc3RhcnRTdHls'@; put 'ZXMsdGhpcy5faW5pdGlhbFN0eWxlcyksdGhpcy5fc3RhdGU9MSl9ZmluaXNoKCl7dGhpcy5zdGFydCgpLHRoaXMuX3N0YXRlPDImJihFcCh0aGlzLl9lbGVtZW50LHRoaXMuX2luaXRpYWxTdHlsZXMpLHRoaXMuX2VuZFN0eWxlcyYmKEVwKHRoaXMuX2VsZW1lbnQsdGhpcy5fZW5kU3R5bGVz'@; put 'KSx0aGlzLl9lbmRTdHlsZXM9bnVsbCksdGhpcy5fc3RhdGU9MSl9ZGVzdHJveSgpe3RoaXMuZmluaXNoKCksdGhpcy5fc3RhdGU8MyYmKGRFLmluaXRpYWxTdHlsZXNCeUVsZW1lbnQuZGVsZXRlKHRoaXMuX2VsZW1lbnQpLHRoaXMuX3N0YXJ0U3R5bGVzJiYoRjcodGhpcy5fZWxlbWVudCx0'@; put 'aGlzLl9zdGFydFN0eWxlcyksdGhpcy5fZW5kU3R5bGVzPW51bGwpLHRoaXMuX2VuZFN0eWxlcyYmKEY3KHRoaXMuX2VsZW1lbnQsdGhpcy5fZW5kU3R5bGVzKSx0aGlzLl9lbmRTdHlsZXM9bnVsbCksRXAodGhpcy5fZWxlbWVudCx0aGlzLl9pbml0aWFsU3R5bGVzKSx0aGlzLl9zdGF0ZT0z'@; put 'KX19ZnVuY3Rpb24gUUcoYyl7bGV0IGw9bnVsbDtyZXR1cm4gYy5mb3JFYWNoKChhLGQpPT57KGZ1bmN0aW9uIEckZShjKXtyZXR1cm4iZGlzcGxheSI9PT1jfHwicG9zaXRpb24iPT09Y30pKGQpJiYobD1sfHxuZXcgTWFwLGwuc2V0KGQsYSkpfSksbH1jbGFzcyBRaGV7Y29uc3RydWN0b3Io'@; put 'bCxhLGQsaCl7dGhpcy5lbGVtZW50PWwsdGhpcy5rZXlmcmFtZXM9YSx0aGlzLm9wdGlvbnM9ZCx0aGlzLl9zcGVjaWFsU3R5bGVzPWgsdGhpcy5fb25Eb25lRm5zPVtdLHRoaXMuX29uU3RhcnRGbnM9W10sdGhpcy5fb25EZXN0cm95Rm5zPVtdLHRoaXMuX2luaXRpYWxpemVkPSExLHRoaXMu'@; put 'X2ZpbmlzaGVkPSExLHRoaXMuX3N0YXJ0ZWQ9ITEsdGhpcy5fZGVzdHJveWVkPSExLHRoaXMuX29yaWdpbmFsT25Eb25lRm5zPVtdLHRoaXMuX29yaWdpbmFsT25TdGFydEZucz1bXSx0aGlzLnRpbWU9MCx0aGlzLnBhcmVudFBsYXllcj1udWxsLHRoaXMuY3VycmVudFNuYXBzaG90PW5ldyBN'@; put 'YXAsdGhpcy5fZHVyYXRpb249ZC5kdXJhdGlvbix0aGlzLl9kZWxheT1kLmRlbGF5fHwwLHRoaXMudGltZT10aGlzLl9kdXJhdGlvbit0aGlzLl9kZWxheX1fb25GaW5pc2goKXt0aGlzLl9maW5pc2hlZHx8KHRoaXMuX2ZpbmlzaGVkPSEwLHRoaXMuX29uRG9uZUZucy5mb3JFYWNoKGw9Pmwo'@; put 'KSksdGhpcy5fb25Eb25lRm5zPVtdKX1pbml0KCl7dGhpcy5fYnVpbGRQbGF5ZXIoKSx0aGlzLl9wcmVwYXJlUGxheWVyQmVmb3JlU3RhcnQoKX1fYnVpbGRQbGF5ZXIoKXtpZih0aGlzLl9pbml0aWFsaXplZClyZXR1cm47dGhpcy5faW5pdGlhbGl6ZWQ9ITA7Y29uc3QgbD10aGlzLmtleWZy'@; put 'YW1lczt0aGlzLmRvbVBsYXllcj10aGlzLl90cmlnZ2VyV2ViQW5pbWF0aW9uKHRoaXMuZWxlbWVudCxsLHRoaXMub3B0aW9ucyksdGhpcy5fZmluYWxLZXlmcmFtZT1sLmxlbmd0aD9sW2wubGVuZ3RoLTFdOm5ldyBNYXA7Y29uc3QgYT0oKT0+dGhpcy5fb25GaW5pc2goKTt0aGlzLmRvbVBs'@; put 'YXllci5hZGRFdmVudExpc3RlbmVyKCJmaW5pc2giLGEpLHRoaXMub25EZXN0cm95KCgpPT57dGhpcy5kb21QbGF5ZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZmluaXNoIixhKX0pfV9wcmVwYXJlUGxheWVyQmVmb3JlU3RhcnQoKXt0aGlzLl9kZWxheT90aGlzLl9yZXNldERvbVBsYXllclN0'@; put 'YXRlKCk6dGhpcy5kb21QbGF5ZXIucGF1c2UoKX1fY29udmVydEtleWZyYW1lc1RvT2JqZWN0KGwpe2NvbnN0IGE9W107cmV0dXJuIGwuZm9yRWFjaChkPT57YS5wdXNoKE9iamVjdC5mcm9tRW50cmllcyhkKSl9KSxhfV90cmlnZ2VyV2ViQW5pbWF0aW9uKGwsYSxkKXtyZXR1cm4gbC5hbmlt'@; put 'YXRlKHRoaXMuX2NvbnZlcnRLZXlmcmFtZXNUb09iamVjdChhKSxkKX1vblN0YXJ0KGwpe3RoaXMuX29yaWdpbmFsT25TdGFydEZucy5wdXNoKGwpLHRoaXMuX29uU3RhcnRGbnMucHVzaChsKX1vbkRvbmUobCl7dGhpcy5fb3JpZ2luYWxPbkRvbmVGbnMucHVzaChsKSx0aGlzLl9vbkRvbmVG'@; put 'bnMucHVzaChsKX1vbkRlc3Ryb3kobCl7dGhpcy5fb25EZXN0cm95Rm5zLnB1c2gobCl9cGxheSgpe3RoaXMuX2J1aWxkUGxheWVyKCksdGhpcy5oYXNTdGFydGVkKCl8fCh0aGlzLl9vblN0YXJ0Rm5zLmZvckVhY2gobD0+bCgpKSx0aGlzLl9vblN0YXJ0Rm5zPVtdLHRoaXMuX3N0YXJ0ZWQ9'@; put 'ITAsdGhpcy5fc3BlY2lhbFN0eWxlcyYmdGhpcy5fc3BlY2lhbFN0eWxlcy5zdGFydCgpKSx0aGlzLmRvbVBsYXllci5wbGF5KCl9cGF1c2UoKXt0aGlzLmluaXQoKSx0aGlzLmRvbVBsYXllci5wYXVzZSgpfWZpbmlzaCgpe3RoaXMuaW5pdCgpLHRoaXMuX3NwZWNpYWxTdHlsZXMmJnRoaXMu'@; put 'X3NwZWNpYWxTdHlsZXMuZmluaXNoKCksdGhpcy5fb25GaW5pc2goKSx0aGlzLmRvbVBsYXllci5maW5pc2goKX1yZXNldCgpe3RoaXMuX3Jlc2V0RG9tUGxheWVyU3RhdGUoKSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fZmluaXNoZWQ9ITEsdGhpcy5fc3RhcnRlZD0hMSx0aGlzLl9vblN0'@; put 'YXJ0Rm5zPXRoaXMuX29yaWdpbmFsT25TdGFydEZucyx0aGlzLl9vbkRvbmVGbnM9dGhpcy5fb3JpZ2luYWxPbkRvbmVGbnN9X3Jlc2V0RG9tUGxheWVyU3RhdGUoKXt0aGlzLmRvbVBsYXllciYmdGhpcy5kb21QbGF5ZXIuY2FuY2VsKCl9cmVzdGFydCgpe3RoaXMucmVzZXQoKSx0aGlzLnBs'@; put 'YXkoKX1oYXNTdGFydGVkKCl7cmV0dXJuIHRoaXMuX3N0YXJ0ZWR9ZGVzdHJveSgpe3RoaXMuX2Rlc3Ryb3llZHx8KHRoaXMuX2Rlc3Ryb3llZD0hMCx0aGlzLl9yZXNldERvbVBsYXllclN0YXRlKCksdGhpcy5fb25GaW5pc2goKSx0aGlzLl9zcGVjaWFsU3R5bGVzJiZ0aGlzLl9zcGVjaWFs'@; put 'U3R5bGVzLmRlc3Ryb3koKSx0aGlzLl9vbkRlc3Ryb3lGbnMuZm9yRWFjaChsPT5sKCkpLHRoaXMuX29uRGVzdHJveUZucz1bXSl9c2V0UG9zaXRpb24obCl7dm9pZCAwPT09dGhpcy5kb21QbGF5ZXImJnRoaXMuaW5pdCgpLHRoaXMuZG9tUGxheWVyLmN1cnJlbnRUaW1lPWwqdGhpcy50aW1l'@; put 'fWdldFBvc2l0aW9uKCl7cmV0dXJuKyh0aGlzLmRvbVBsYXllci5jdXJyZW50VGltZT8/MCkvdGhpcy50aW1lfWdldCB0b3RhbFRpbWUoKXtyZXR1cm4gdGhpcy5fZGVsYXkrdGhpcy5fZHVyYXRpb259YmVmb3JlRGVzdHJveSgpe2NvbnN0IGw9bmV3IE1hcDt0aGlzLmhhc1N0YXJ0ZWQoKSYm'@; put 'dGhpcy5fZmluYWxLZXlmcmFtZS5mb3JFYWNoKChkLGgpPT57Im9mZnNldCIhPT1oJiZsLnNldChoLHRoaXMuX2ZpbmlzaGVkP2Q6ekcodGhpcy5lbGVtZW50LGgpKX0pLHRoaXMuY3VycmVudFNuYXBzaG90PWx9dHJpZ2dlckNhbGxiYWNrKGwpe2NvbnN0IGE9InN0YXJ0Ij09PWw/dGhpcy5f'@; put 'b25TdGFydEZuczp0aGlzLl9vbkRvbmVGbnM7YS5mb3JFYWNoKGQ9PmQoKSksYS5sZW5ndGg9MH19Y2xhc3MgZTJle3ZhbGlkYXRlU3R5bGVQcm9wZXJ0eShsKXtyZXR1cm4hMH12YWxpZGF0ZUFuaW1hdGFibGVTdHlsZVByb3BlcnR5KGwpe3JldHVybiEwfW1hdGNoZXNFbGVtZW50KGwsYSl7'@; put 'cmV0dXJuITF9Y29udGFpbnNFbGVtZW50KGwsYSl7cmV0dXJuIEloZShsLGEpfWdldFBhcmVudEVsZW1lbnQobCl7cmV0dXJuIExHKGwpfXF1ZXJ5KGwsYSxkKXtyZXR1cm4gUmhlKGwsYSxkKX1jb21wdXRlU3R5bGUobCxhLGQpe3JldHVybiB6RyhsLGEpfWFuaW1hdGUobCxhLGQsaCxmLHY9'@; put 'W10pe2NvbnN0IEk9e2R1cmF0aW9uOmQsZGVsYXk6aCxmaWxsOjA9PWg/ImJvdGgiOiJmb3J3YXJkcyJ9O2YmJihJLmVhc2luZz1mKTtjb25zdCBHPW5ldyBNYXAscmU9di5maWx0ZXIoRWU9PkVlIGluc3RhbmNlb2YgUWhlKTsoZnVuY3Rpb24gaSRlKGMsbCl7cmV0dXJuIDA9PT1jfHwwPT09'@; put 'bH0pKGQsaCkmJnJlLmZvckVhY2goRWU9PntFZS5jdXJyZW50U25hcHNob3QuZm9yRWFjaCgoQmUsR2UpPT5HLnNldChHZSxCZSkpfSk7bGV0IHVlPWZ1bmN0aW9uIHQkZShjKXtyZXR1cm4gYy5sZW5ndGg/Y1swXWluc3RhbmNlb2YgTWFwP2M6Yy5tYXAobD0+bmV3IE1hcChPYmplY3QuZW50'@; put 'cmllcyhsKSkpOltdfShhKS5tYXAoRWU9Pm5ldyBNYXAoRWUpKTt1ZT1mdW5jdGlvbiBhJGUoYyxsLGEpe2lmKGEuc2l6ZSYmbC5sZW5ndGgpe2xldCBkPWxbMF0saD1bXTtpZihhLmZvckVhY2goKGYsdik9PntkLmhhcyh2KXx8aC5wdXNoKHYpLGQuc2V0KHYsZil9KSxoLmxlbmd0aClmb3Io'@; put 'bGV0IGY9MTtmPGwubGVuZ3RoO2YrKyl7bGV0IHY9bFtmXTtoLmZvckVhY2goTT0+di5zZXQoTSx6RyhjLE0pKSl9fXJldHVybiBsfShsLHVlLEcpO2NvbnN0IHllPWZ1bmN0aW9uIFkkZShjLGwpe2xldCBhPW51bGwsZD1udWxsO3JldHVybiBBcnJheS5pc0FycmF5KGwpJiZsLmxlbmd0aD8o'@; put 'YT1RRyhsWzBdKSxsLmxlbmd0aD4xJiYoZD1RRyhsW2wubGVuZ3RoLTFdKSkpOmwgaW5zdGFuY2VvZiBNYXAmJihhPVFHKGwpKSxhfHxkP25ldyBkRShjLGEsZCk6bnVsbH0obCx1ZSk7cmV0dXJuIG5ldyBRaGUobCx1ZSxJLHllKX19Y29uc3QgdDJlPSJALmRpc2FibGVkIjtjbGFzcyBuMmV7'@; put 'Y29uc3RydWN0b3IobCxhLGQsaCl7dGhpcy5uYW1lc3BhY2VJZD1sLHRoaXMuZGVsZWdhdGU9YSx0aGlzLmVuZ2luZT1kLHRoaXMuX29uRGVzdHJveT1oLHRoaXMuXHUwMjc1dHlwZT0wfWdldCBkYXRhKCl7cmV0dXJuIHRoaXMuZGVsZWdhdGUuZGF0YX1kZXN0cm95Tm9kZShsKXt0aGlzLmRl'@; put 'bGVnYXRlLmRlc3Ryb3lOb2RlPy4obCl9ZGVzdHJveSgpe3RoaXMuZW5naW5lLmRlc3Ryb3kodGhpcy5uYW1lc3BhY2VJZCx0aGlzLmRlbGVnYXRlKSx0aGlzLmVuZ2luZS5hZnRlckZsdXNoQW5pbWF0aW9uc0RvbmUoKCk9PntxdWV1ZU1pY3JvdGFzaygoKT0+e3RoaXMuZGVsZWdhdGUuZGVz'@; put 'dHJveSgpfSl9KSx0aGlzLl9vbkRlc3Ryb3k/LigpfWNyZWF0ZUVsZW1lbnQobCxhKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZS5jcmVhdGVFbGVtZW50KGwsYSl9Y3JlYXRlQ29tbWVudChsKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZS5jcmVhdGVDb21tZW50KGwpfWNyZWF0ZVRleHQobCl7cmV0dXJu'@; put 'IHRoaXMuZGVsZWdhdGUuY3JlYXRlVGV4dChsKX1hcHBlbmRDaGlsZChsLGEpe3RoaXMuZGVsZWdhdGUuYXBwZW5kQ2hpbGQobCxhKSx0aGlzLmVuZ2luZS5vbkluc2VydCh0aGlzLm5hbWVzcGFjZUlkLGEsbCwhMSl9aW5zZXJ0QmVmb3JlKGwsYSxkLGg9ITApe3RoaXMuZGVsZWdhdGUuaW5z'@; put 'ZXJ0QmVmb3JlKGwsYSxkKSx0aGlzLmVuZ2luZS5vbkluc2VydCh0aGlzLm5hbWVzcGFjZUlkLGEsbCxoKX1yZW1vdmVDaGlsZChsLGEsZCl7dGhpcy5lbmdpbmUub25SZW1vdmUodGhpcy5uYW1lc3BhY2VJZCxhLHRoaXMuZGVsZWdhdGUpfXNlbGVjdFJvb3RFbGVtZW50KGwsYSl7cmV0dXJu'@; put 'IHRoaXMuZGVsZWdhdGUuc2VsZWN0Um9vdEVsZW1lbnQobCxhKX1wYXJlbnROb2RlKGwpe3JldHVybiB0aGlzLmRlbGVnYXRlLnBhcmVudE5vZGUobCl9bmV4dFNpYmxpbmcobCl7cmV0dXJuIHRoaXMuZGVsZWdhdGUubmV4dFNpYmxpbmcobCl9c2V0QXR0cmlidXRlKGwsYSxkLGgpe3RoaXMu'@; put 'ZGVsZWdhdGUuc2V0QXR0cmlidXRlKGwsYSxkLGgpfXJlbW92ZUF0dHJpYnV0ZShsLGEsZCl7dGhpcy5kZWxlZ2F0ZS5yZW1vdmVBdHRyaWJ1dGUobCxhLGQpfWFkZENsYXNzKGwsYSl7dGhpcy5kZWxlZ2F0ZS5hZGRDbGFzcyhsLGEpfXJlbW92ZUNsYXNzKGwsYSl7dGhpcy5kZWxlZ2F0ZS5y'@; put 'ZW1vdmVDbGFzcyhsLGEpfXNldFN0eWxlKGwsYSxkLGgpe3RoaXMuZGVsZWdhdGUuc2V0U3R5bGUobCxhLGQsaCl9cmVtb3ZlU3R5bGUobCxhLGQpe3RoaXMuZGVsZWdhdGUucmVtb3ZlU3R5bGUobCxhLGQpfXNldFByb3BlcnR5KGwsYSxkKXsiQCI9PWEuY2hhckF0KDApJiZhPT10MmU/dGhp'@; put 'cy5kaXNhYmxlQW5pbWF0aW9ucyhsLCEhZCk6dGhpcy5kZWxlZ2F0ZS5zZXRQcm9wZXJ0eShsLGEsZCl9c2V0VmFsdWUobCxhKXt0aGlzLmRlbGVnYXRlLnNldFZhbHVlKGwsYSl9bGlzdGVuKGwsYSxkKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZS5saXN0ZW4obCxhLGQpfWRpc2FibGVBbmltYXRp'@; put 'b25zKGwsYSl7dGhpcy5lbmdpbmUuZGlzYWJsZUFuaW1hdGlvbnMobCxhKX19Y2xhc3MgJCRlIGV4dGVuZHMgbjJle2NvbnN0cnVjdG9yKGwsYSxkLGgsZil7c3VwZXIoYSxkLGgsZiksdGhpcy5mYWN0b3J5PWwsdGhpcy5uYW1lc3BhY2VJZD1hfXNldFByb3BlcnR5KGwsYSxkKXsiQCI9PWEu'@; put 'Y2hhckF0KDApPyIuIj09YS5jaGFyQXQoMSkmJmE9PXQyZT90aGlzLmRpc2FibGVBbmltYXRpb25zKGwsZD12b2lkIDA9PT1kfHwhIWQpOnRoaXMuZW5naW5lLnByb2Nlc3ModGhpcy5uYW1lc3BhY2VJZCxsLGEuc2xpY2UoMSksZCk6dGhpcy5kZWxlZ2F0ZS5zZXRQcm9wZXJ0eShsLGEsZCl9'@; put 'bGlzdGVuKGwsYSxkKXtpZigiQCI9PWEuY2hhckF0KDApKXtjb25zdCBoPWZ1bmN0aW9uIEskZShjKXtzd2l0Y2goYyl7Y2FzZSJib2R5IjpyZXR1cm4gZG9jdW1lbnQuYm9keTtjYXNlImRvY3VtZW50IjpyZXR1cm4gZG9jdW1lbnQ7Y2FzZSJ3aW5kb3ciOnJldHVybiB3aW5kb3c7ZGVmYXVs'@; put 'dDpyZXR1cm4gY319KGwpO2xldCBmPWEuc2xpY2UoMSksdj0iIjtyZXR1cm4iQCIhPWYuY2hhckF0KDApJiYoW2Ysdl09ZnVuY3Rpb24gWCRlKGMpe2NvbnN0IGw9Yy5pbmRleE9mKCIuIik7cmV0dXJuW2Muc3Vic3RyaW5nKDAsbCksYy5zbGljZShsKzEpXX0oZikpLHRoaXMuZW5naW5lLmxp'@; put 'c3Rlbih0aGlzLm5hbWVzcGFjZUlkLGgsZix2LE09Pnt0aGlzLmZhY3Rvcnkuc2NoZWR1bGVMaXN0ZW5lckNhbGxiYWNrKE0uX2RhdGF8fC0xLGQsTSl9KX1yZXR1cm4gdGhpcy5kZWxlZ2F0ZS5saXN0ZW4obCxhLGQpfX1jbGFzcyBxJGV7Y29uc3RydWN0b3IobCxhLGQpe3RoaXMuZGVsZWdh'@; put 'dGU9bCx0aGlzLmVuZ2luZT1hLHRoaXMuX3pvbmU9ZCx0aGlzLl9jdXJyZW50SWQ9MCx0aGlzLl9taWNyb3Rhc2tJZD0xLHRoaXMuX2FuaW1hdGlvbkNhbGxiYWNrc0J1ZmZlcj1bXSx0aGlzLl9yZW5kZXJlckNhY2hlPW5ldyBNYXAsdGhpcy5fY2RSZWN1ckRlcHRoPTAsYS5vblJlbW92YWxD'@; put 'b21wbGV0ZT0oaCxmKT0+e2NvbnN0IHY9Zj8ucGFyZW50Tm9kZShoKTt2JiZmLnJlbW92ZUNoaWxkKHYsaCl9fWNyZWF0ZVJlbmRlcmVyKGwsYSl7Y29uc3QgaD10aGlzLmRlbGVnYXRlLmNyZWF0ZVJlbmRlcmVyKGwsYSk7aWYoIWx8fCFhPy5kYXRhPy5hbmltYXRpb24pe2NvbnN0IEc9dGhp'@; put 'cy5fcmVuZGVyZXJDYWNoZTtsZXQgcmU9Ry5nZXQoaCk7cmV0dXJuIHJlfHwocmU9bmV3IG4yZSgiIixoLHRoaXMuZW5naW5lLCgpPT5HLmRlbGV0ZShoKSksRy5zZXQoaCxyZSkpLHJlfWNvbnN0IGY9YS5pZCx2PWEuaWQrIi0iK3RoaXMuX2N1cnJlbnRJZDt0aGlzLl9jdXJyZW50SWQrKyx0'@; put 'aGlzLmVuZ2luZS5yZWdpc3Rlcih2LGwpO2NvbnN0IE09Rz0+e0FycmF5LmlzQXJyYXkoRyk/Ry5mb3JFYWNoKE0pOnRoaXMuZW5naW5lLnJlZ2lzdGVyVHJpZ2dlcihmLHYsbCxHLm5hbWUsRyl9O3JldHVybiBhLmRhdGEuYW5pbWF0aW9uLmZvckVhY2goTSksbmV3ICQkZSh0aGlzLHYsaCx0'@; put 'aGlzLmVuZ2luZSl9YmVnaW4oKXt0aGlzLl9jZFJlY3VyRGVwdGgrKyx0aGlzLmRlbGVnYXRlLmJlZ2luJiZ0aGlzLmRlbGVnYXRlLmJlZ2luKCl9X3NjaGVkdWxlQ291bnRUYXNrKCl7cXVldWVNaWNyb3Rhc2soKCk9Pnt0aGlzLl9taWNyb3Rhc2tJZCsrfSl9c2NoZWR1bGVMaXN0ZW5lckNh'@; put 'bGxiYWNrKGwsYSxkKXtpZihsPj0wJiZsPHRoaXMuX21pY3JvdGFza0lkKXJldHVybiB2b2lkIHRoaXMuX3pvbmUucnVuKCgpPT5hKGQpKTtjb25zdCBoPXRoaXMuX2FuaW1hdGlvbkNhbGxiYWNrc0J1ZmZlcjswPT1oLmxlbmd0aCYmcXVldWVNaWNyb3Rhc2soKCk9Pnt0aGlzLl96b25lLnJ1'@; put 'bigoKT0+e2guZm9yRWFjaChmPT57Y29uc3RbdixNXT1mO3YoTSl9KSx0aGlzLl9hbmltYXRpb25DYWxsYmFja3NCdWZmZXI9W119KX0pLGgucHVzaChbYSxkXSl9ZW5kKCl7dGhpcy5fY2RSZWN1ckRlcHRoLS0sMD09dGhpcy5fY2RSZWN1ckRlcHRoJiZ0aGlzLl96b25lLnJ1bk91dHNpZGVB'@; put 'bmd1bGFyKCgpPT57dGhpcy5fc2NoZWR1bGVDb3VudFRhc2soKSx0aGlzLmVuZ2luZS5mbHVzaCh0aGlzLl9taWNyb3Rhc2tJZCl9KSx0aGlzLmRlbGVnYXRlLmVuZCYmdGhpcy5kZWxlZ2F0ZS5lbmQoKX13aGVuUmVuZGVyaW5nRG9uZSgpe3JldHVybiB0aGlzLmVuZ2luZS53aGVuUmVuZGVy'@; put 'aW5nRG9uZSgpfX1sZXQgSiRlPSgoKT0+e2NsYXNzIGMgZXh0ZW5kcyB1RXtjb25zdHJ1Y3RvcihhLGQsaCl7c3VwZXIoYSxkLGgsaGkocHkse29wdGlvbmFsOiEwfSkpfW5nT25EZXN0cm95KCl7dGhpcy5mbHVzaCgpfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4g'@; put 'bmV3KGR8fGMpKENyKG1vKSxDcihQRyksQ3IoRkcpKX19c3RhdGlje3RoaXMuXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSl9fXJldHVybiBjfSkoKTtjb25zdCByMmU9W3twcm92aWRlOkZHLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gUSRlKCl7cmV0dXJuIG5ldyBI'@; put 'aGV9fSx7cHJvdmlkZTp1RSx1c2VDbGFzczpKJGV9LHtwcm92aWRlOng4LHVzZUZhY3Rvcnk6ZnVuY3Rpb24gZUtlKGMsbCxhKXtyZXR1cm4gbmV3IHEkZShjLGwsYSl9LGRlcHM6W2ZaLHVFLEdhXX1dLGUkPVt7cHJvdmlkZTpQRyx1c2VGYWN0b3J5OigpPT5uZXcgZTJlfSx7cHJvdmlkZTpW'@; put 'ayx1c2VWYWx1ZToiQnJvd3NlckFuaW1hdGlvbnMifSwuLi5yMmVdLGkyZT1be3Byb3ZpZGU6UEcsdXNlQ2xhc3M6T0d9LHtwcm92aWRlOlZrLHVzZVZhbHVlOiJOb29wQW5pbWF0aW9ucyJ9LC4uLnIyZV07bGV0IHRLZT0oKCk9PntjbGFzcyBje3N0YXRpYyB3aXRoQ29uZmlnKGEpe3JldHVy'@; put 'bntuZ01vZHVsZTpjLHByb3ZpZGVyczphLmRpc2FibGVBbmltYXRpb25zP2kyZTplJH19c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSl9c3RhdGlje3RoaXMuXHUwMjc1aW5qPUFyKHtw'@; put 'cm92aWRlcnM6ZSQsaW1wb3J0czpbSHNlXX0pfX1yZXR1cm4gY30pKCksbktlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt9bmdPbkluaXQoKXt9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NWNtcD1Ocih7'@; put 'dHlwZTpjLHNlbGVjdG9yczpbWyJhcHAtbm90LWZvdW5kIl1dLGhvc3RBdHRyczpbMSwiY29udGVudC1jb250YWluZXIiXSxkZWNsczozLHZhcnM6MCxjb25zdHM6W1sxLCJjb250ZW50LWFyZWEiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZCxoKXsxJmQmJihkZSgwLCJkaXYiLDApKDEsInAiKSxP'@; put 'ZSgyLCI0MDQgLSBOb3QgRm91bmQiKSxoZSgpKCkpfSxlbmNhcHN1bGF0aW9uOjJ9KX19cmV0dXJuIGN9KSgpLGEyZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7fWRvd25sb2FkRmlsZShhLGQsaD0idHh0Iil7bGV0IGY9bmV3IEJsb2IoW2FdLHt0eXBlOiJ0ZXh0L3BsYWluIn0pO2lm'@; put 'KG5hdmlnYXRvci5hcHBWZXJzaW9uLnRvU3RyaW5nKCkuaW5kZXhPZigiLk5FVCIpPjApd2luZG93Lm5hdmlnYXRvci5tc1NhdmVCbG9iKGYsYCR7ZH0uJHtofWApO2Vsc2V7bGV0IHY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO3YuaHJlZj0iZGF0YTp0ZXh0L3BsYWluLCIrZW5jb2Rl'@; put 'VVJJQ29tcG9uZW50KGEpLHYuZG93bmxvYWQ9YCR7ZH0uJHtofWAsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2KSx2LmNsaWNrKCksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh2KX19cmVhZEZpbGUoYSl7cmV0dXJuIG5ldyBQcm9taXNlKChkLGgpPT57bGV0IGY9bmV3IEZpbGVSZWFk'@; put 'ZXI7Zi5vbmxvYWQ9KCk9PntmLnJlc3VsdCYmZChKU09OLnBhcnNlKGYucmVzdWx0LnRvU3RyaW5nKCkpKX0sZi5yZWFkQXNUZXh0KGEpfSl9Y2xlYXJVcGxvYWRJbnB1dChhKXthLnRhcmdldC52YWx1ZT0iIn1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhk'@; put 'fHxjKX19c3RhdGlje3RoaXMuXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSl9fXJldHVybiBjfSkoKTt2YXIgcGc9Yig1OTQ4KTtjb25zdCB0JD1mdW5jdGlvbiBpS2UoYyl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBjfHx5Yihj'@; put 'KSYmIltvYmplY3QgU3ltYm9sXSI9PXBiKGMpfTt2YXIgYUtlPS9cLnxcWyg/OlteW1xdXSp8KFsiJ10pKD86KD8hXDEpW15cXF18XFwuKSo/XDEpXF0vLHNLZT0vXlx3KiQvO2Z1bmN0aW9uIG4kKGMsbCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGN8fG51bGwhPWwmJiJmdW5jdGlvbiIhPXR5'@; put 'cGVvZiBsKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgZnVuY3Rpb24iKTt2YXIgYT1mdW5jdGlvbigpe3ZhciBkPWFyZ3VtZW50cyxoPWw/bC5hcHBseSh0aGlzLGQpOmRbMF0sZj1hLmNhY2hlO2lmKGYuaGFzKGgpKXJldHVybiBmLmdldChoKTt2YXIgdj1jLmFwcGx5KHRoaXMs'@; put 'ZCk7cmV0dXJuIGEuY2FjaGU9Zi5zZXQoaCx2KXx8Zix2fTtyZXR1cm4gYS5jYWNoZT1uZXcobiQuQ2FjaGV8fExXKSxhfW4kLkNhY2hlPUxXO2NvbnN0IHVLZT1uJDt2YXIgcEtlPS9bXi5bXF1dK3xcWyg/OigtP1xkKyg/OlwuXGQrKT8pfChbIiddKSgoPzooPyFcMilbXlxcXXxcXC4pKj8p'@; put 'XDIpXF18KD89KD86XC58XFtcXSkoPzpcLnxcW1xdfCQpKS9nLGdLZT0vXFwoXFwpPy9nLG1LZT1mdW5jdGlvbiBoS2UoYyl7dmFyIGw9dUtlKGMsZnVuY3Rpb24oZCl7cmV0dXJuIDUwMD09PWEuc2l6ZSYmYS5jbGVhcigpLGR9KSxhPWwuY2FjaGU7cmV0dXJuIGx9KGZ1bmN0aW9uKGMpe3Zh'@; put 'ciBsPVtdO3JldHVybiA0Nj09PWMuY2hhckNvZGVBdCgwKSYmbC5wdXNoKCIiKSxjLnJlcGxhY2UocEtlLGZ1bmN0aW9uKGEsZCxoLGYpe2wucHVzaChoP2YucmVwbGFjZShnS2UsIiQxIik6ZHx8YSl9KSxsfSk7Y29uc3QgdktlPW1LZTt2YXIgczJlPW9tP29tLnByb3RvdHlwZTp2b2lkIDAs'@; put 'bzJlPXMyZT9zMmUudG9TdHJpbmc6dm9pZCAwO2NvbnN0IHdLZT1mdW5jdGlvbiBsMmUoYyl7aWYoInN0cmluZyI9PXR5cGVvZiBjKXJldHVybiBjO2lmKGJiKGMpKXJldHVybiBmdW5jdGlvbiB5S2UoYyxsKXtmb3IodmFyIGE9LTEsZD1udWxsPT1jPzA6Yy5sZW5ndGgsaD1BcnJheShkKTsr'@; put 'K2E8ZDspaFthXT1sKGNbYV0sYSxjKTtyZXR1cm4gaH0oYyxsMmUpKyIiO2lmKHQkKGMpKXJldHVybiBvMmU/bzJlLmNhbGwoYyk6IiI7dmFyIGw9YysiIjtyZXR1cm4iMCI9PWwmJjEvYz09LTEvMD8iLTAiOmx9LHhLZT1mdW5jdGlvbiBNS2UoYyxsKXtyZXR1cm4gYmIoYyk/YzpmdW5jdGlv'@; put 'biBvS2UoYyxsKXtpZihiYihjKSlyZXR1cm4hMTt2YXIgYT10eXBlb2YgYztyZXR1cm4hKCJudW1iZXIiIT1hJiYic3ltYm9sIiE9YSYmImJvb2xlYW4iIT1hJiZudWxsIT1jJiYhdCQoYykpfHxzS2UudGVzdChjKXx8IWFLZS50ZXN0KGMpfHxudWxsIT1sJiZjIGluIE9iamVjdChsKX0oYyxs'@; put 'KT9bY106dktlKGZ1bmN0aW9uIENLZShjKXtyZXR1cm4gbnVsbD09Yz8iIjp3S2UoYyl9KGMpKX0sQUtlPWZ1bmN0aW9uIFRLZShjKXtpZigic3RyaW5nIj09dHlwZW9mIGN8fHQkKGMpKXJldHVybiBjO3ZhciBsPWMrIiI7cmV0dXJuIjAiPT1sJiYxL2M9PS0xLzA/Ii0wIjpsfSx5Yz1mdW5j'@; put 'dGlvbiBJS2UoYyxsLGEpe3ZhciBkPW51bGw9PWM/dm9pZCAwOmZ1bmN0aW9uIGtLZShjLGwpe2Zvcih2YXIgYT0wLGQ9KGw9eEtlKGwsYykpLmxlbmd0aDtudWxsIT1jJiZhPGQ7KWM9Y1tBS2UobFthKytdKV07cmV0dXJuIGEmJmE9PWQ/Yzp2b2lkIDB9KGMsbCk7cmV0dXJuIHZvaWQgMD09'@; put 'PWQ/YTpkfTtsZXQgSWg9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCl7dGhpcy5zYXNTZXJ2aWNlPWEsdGhpcy5oZWxwZXJTZXJ2aWNlPWQsdGhpcy5sb2dnZXJTZXJ2aWNlPWgsdGhpcy5yZXNwb25zZT1uZXcgR24sdGhpcy5jaGFuZ2VkVGFibGU9bmV3IEduLHRoaXMuZGV0YWls'@; put 'cz1uZXcgR24sdGhpcy5kaWZmcz1uZXcgR24sdGhpcy5jb2x1bW5zPW5ldyBHbix0aGlzLnZhbHVlcz1uZXcgR24sdGhpcy5maWx0ZXI9bmV3IEduLHRoaXMucXVlcnk9bmV3IEduLHRoaXMuc3VibWl0dERldGFpbD1uZXcgR24sdGhpcy5yZW1vdmVRdWVyeT1uZXcgR24sdGhpcy5zZXRTdWJt'@; put 'aXQ9bmV3IEduLHRoaXMuc2V0U3VibWl0TGlzdD1uZXcgR259Y2FsbFNlcnZpY2UoYSxkLGgsZil7dmFyIHY9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXtjb25zdCBNPXt9O3JldHVybiBNW2RdPVthXSx7ZGF0YTooeWllbGQgdi5zYXNTZXJ2aWNlLnJlcXVlc3QoaCxNKSkuYWRhcHRlclJl'@; put 'c3BvbnNlLGxpYmRzOmZ9fSkoKX11cGRhdGVUYWJsZShhLGQsaCxmLHYsTSxJKXt2YXIgRz10aGlzO3JldHVybiBRKGZ1bmN0aW9uKigpe2xldCByZT17anNkYXRhOmR9O2lmKHYpe2xldCB5ZT1HLnBhcnNlRm9ybWF0cyh2KTtyZS4kanNkYXRhPXtmb3JtYXRzOnllfX1yZXR1cm4gcmVbaF09'@; put 'W2FdLHlpZWxkIEcuc2FzU2VydmljZS5yZXF1ZXN0KGYscmUsSSx7c3VwcHJlc3NFcnJvckFib3J0TW9kYWw6TSxzdXBwcmVzc1N1Y2Nlc3NBYm9ydE1vZGFsOk19KX0pKCl9Z2V0QXBwcm92YWxzKGEsZCxoKXt2YXIgZj10aGlzO3JldHVybiBRKGZ1bmN0aW9uKigpe2xldCB2PXt9O3JldHVy'@; put 'biB2W2RdPVthXSwoeWllbGQgZi5zYXNTZXJ2aWNlLnJlcXVlc3QoaCx2KSkuYWRhcHRlclJlc3BvbnNlfSkoKX1zZW5kRGV0YWlscyhhLGQsaCl7dmFyIGY9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXtsZXQgdj1PYmplY3QuYXNzaWduKHtzdWI6ITB9LGEpO2Yuc3VibWl0dERldGFpbC5u'@; put 'ZXh0KHtkYXRhOmhbZF0sdmlld0RhdGE6dn0pfSkoKX1nZXRTdWJtaXR0cygpe3ZhciBhPXRoaXM7cmV0dXJuIFEoZnVuY3Rpb24qKCl7cmV0dXJuKHlpZWxkIGEuc2FzU2VydmljZS5yZXF1ZXN0KCJlZGl0b3JzL2dldHN1Ym1pdHMiLG51bGwpKS5hZGFwdGVyUmVzcG9uc2V9KSgpfXZpZXdM'@; put 'aWJzKCl7dmFyIGE9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXtyZXR1cm4oeWllbGQgYS5zYXNTZXJ2aWNlLnJlcXVlc3QoInB1YmxpYy92aWV3bGlicyIsbnVsbCkpLmFkYXB0ZXJSZXNwb25zZX0pKCl9cmVmcmVzaExpYkluZm8oYSl7dmFyIGQ9dGhpcztyZXR1cm4gUShmdW5jdGlvbioo'@; put 'KXtjb25zdCBoPXtsaWIycmVmcmVzaDpbe2xpYnJlZjphfV19O3JldHVybih5aWVsZCBkLnNhc1NlcnZpY2UucmVxdWVzdCgicHVibGljL3JlZnJlc2hsaWJpbmZvIixoKSkuYWRhcHRlclJlc3BvbnNlfSkoKX12aWV3VGFibGVzKGEpe3ZhciBkPXRoaXM7cmV0dXJuIFEoZnVuY3Rpb24qKCl7'@; put 'bGV0IGg9e1NBU0NvbnRyb2xUYWJsZTpbe01QTElCOmF9XX07cmV0dXJuKHlpZWxkIGQuc2FzU2VydmljZS5yZXF1ZXN0KCJwdWJsaWMvdmlld3RhYmxlcyIsaCkpLmFkYXB0ZXJSZXNwb25zZX0pKCl9dmlld0RhdGEoYSxkKXt2YXIgaD10aGlzO3JldHVybiBRKGZ1bmN0aW9uKigpe2xldCBm'@; put 'PXtTQVNDb250cm9sVGFibGU6W3tMSUJEUzphLEZJTFRFUl9SSzpkfV19O3JldHVybih5aWVsZCBoLnNhc1NlcnZpY2UucmVxdWVzdCgicHVibGljL3ZpZXdkYXRhIixmKSkuYWRhcHRlclJlc3BvbnNlfSkoKX12aWV3RGF0YVNlYXJjaChhKXt2YXIgZD10aGlzO3JldHVybiBRKGZ1bmN0aW9u'@; put 'KihoLGY9ITEsdixNKXtsZXQgRz17U0FTQ29udHJvbFRhYmxlOlt7U0VBUkNIVFlQRTpoLmxlbmd0aD4wP2Y/Ik5VTSI6IkNIQVIiOiJOT05FIixTRUFSQ0hWQUw6aCxMSUJEUzp2LEZJTFRFUl9SSzpNfV19O3JldHVybih5aWVsZCBkLnNhc1NlcnZpY2UucmVxdWVzdCgicHVibGljL3ZpZXdk'@; put 'YXRhIixHKSkuYWRhcHRlclJlc3BvbnNlfSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWdldFhMTWFwUnVsZXMoYSl7dmFyIGQ9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXtjb25zdCBoPXtnZXR4bG1hcHNfaW46W3tYTE1BUF9JRDphfV19O3JldHVybih5aWVsZCBkLnNhc1NlcnZpY2UucmVx'@; put 'dWVzdCgiZWRpdG9ycy9nZXR4bG1hcHMiLGgpKS5hZGFwdGVyUmVzcG9uc2V9KSgpfXNob3dEaWZmcyhhLGQsaCl7dmFyIGY9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXtsZXQgdj17fTtyZXR1cm4gdltkXT1bYV0sKHlpZWxkIGYuc2FzU2VydmljZS5yZXF1ZXN0KGgsdix7dXNlQ29tcHV0'@; put 'ZUFwaTpudWxsfSkpLmFkYXB0ZXJSZXNwb25zZX0pKCl9cmVqZWN0aW5nKGEsZCxoKXt2YXIgZj10aGlzO3JldHVybiBRKGZ1bmN0aW9uKigpe2xldCB2PXt9O3JldHVybiB2W2RdPVthXSwoeWllbGQgZi5zYXNTZXJ2aWNlLnJlcXVlc3QoaCx2LHt1c2VDb21wdXRlQXBpOm51bGx9KSkuYWRh'@; put 'cHRlclJlc3BvbnNlfSkoKX1hcHByb3ZlVGFibGUoYSxkLGgpe3ZhciBmPXRoaXM7cmV0dXJuIFEoZnVuY3Rpb24qKCl7bGV0IHY9e307cmV0dXJuIHZbZF09W2FdLCh5aWVsZCBmLnNhc1NlcnZpY2UucmVxdWVzdChoLHYpKS5hZGFwdGVyUmVzcG9uc2V9KSgpfWdldEhpc3RvcnkoYSxkLGgp'@; put 'e3ZhciBmPXRoaXM7cmV0dXJuIFEoZnVuY3Rpb24qKCl7bGV0IHY9e307cmV0dXJuIHZbZF09W2FdLCh5aWVsZCBmLnNhc1NlcnZpY2UucmVxdWVzdChoLHYpKS5hZGFwdGVyUmVzcG9uc2V9KSgpfXNldFF1ZXJ5VmFyaWFibGVzKGEsZCl7dGhpcy5jb2x1bW5zLm5leHQoe2RhdGE6e2NvbHM6'@; put 'ZH0sbGliZHM6YX0pfWdldENoYW5nZUluZm8oYSl7dmFyIGQ9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXtsZXQgZj17U0FTQ29udHJvbFRhYmxlOlt7VEFCTEU6YX1dfTtyZXR1cm4oeWllbGQgZC5zYXNTZXJ2aWNlLnJlcXVlc3QoInB1YmxpYy9nZXRjaGFuZ2VpbmZvIixmKSkuYWRhcHRl'@; put 'clJlc3BvbnNlfSkoKX1nZXRRdWVyeVZhbHVlcyhhLGQsaCxmLHYpe3ZhciBNPXRoaXM7cmV0dXJuIFEoZnVuY3Rpb24qKCl7bGV0IEk9e2l3YW50Olt7bGliZHM6ZCxjb2w6YSwuLi5mJiZ7U1RBUlRST1c6Zn0sLi4udiYme1JPV1M6dn19XX07cmV0dXJuIGgubGVuZ3RoPjAmJihJLkZJTFRF'@; put 'UlFVRVJZPWgpLCh5aWVsZCBNLnNhc1NlcnZpY2UucmVxdWVzdCgicHVibGljL2dldGNvbHZhbHMiLEkpLmNhdGNoKEc9Pnt0aHJvdyBHfSkpLmFkYXB0ZXJSZXNwb25zZX0pKCl9c2F2ZVF1ZXJ5KGEsZCl7dmFyIGg9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXtsZXQgZj17aXdhbnQ6W3tm'@; put 'aWx0ZXJfdGFibGU6YX1dLGZpbHRlcnF1ZXJ5OmR9O2NvbnN0IHY9eWllbGQgaC5zYXNTZXJ2aWNlLnJlcXVlc3QoInB1YmxpYy92YWxpZGF0ZWZpbHRlciIsZik7cmV0dXJuIGguZmlsdGVyLm5leHQodiksdi5hZGFwdGVyUmVzcG9uc2V9KSgpfW9wZW5UYWJsZShhKXt2YXIgZD10aGlzO3Jl'@; put 'dHVybiBRKGZ1bmN0aW9uKigpe2xldCBoPXtpd2FudDpbe3RhYmxlX2lkOmF9XX07cmV0dXJuKHlpZWxkIGQuc2FzU2VydmljZS5yZXF1ZXN0KCJhdWRpdG9ycy9nZXRzdGFnZXRhYmxlIixoKSkuYWRhcHRlclJlc3BvbnNlfSkoKX1jaGVja09wZXJhdG9yKGEsZCxoKXtsZXQgZjtzd2l0Y2go'@; put 'YSl7Y2FzZSJCRVRXRUVOIjpkIGluc3RhbmNlb2YgQXJyYXkmJigiIiE9PWRbMF0mJiIiIT09ZFsxXT9mPWRbMF0rIiBBTkQgIitkWzFdOiIiIT09ZFswXSYmIiI9PT1kWzFdPyhkWzFdPSIuIixmPWRbMF0rIiBBTkQgIitkWzFdKToiIj09PWRbMF0mJiIiIT09ZFsxXT8oZFswXT0iLiIsZj1k'@; put 'WzBdKyIgQU5EICIrZFsxXSk6KGRbMF09Ii4iLGRbMV09Ii4iLGY9ZFswXSsiIEFORCAiK2RbMV0pKTticmVhaztjYXNlIklOIjpjYXNlIk5PVCBJTiI6bGV0IE09W107aWYodHlwZW9mIGQ8InUiKWZvcihsZXQgST0wO0k8ZC5sZW5ndGg7SSsrKSEwPT09ZFtJXS5jaGVja2VkJiYoImNoYXIi'@; put 'PT09aD8oInN0cmluZyI9PXR5cGVvZiBkW0ldLnZhbCYmKGRbSV0udmFsPWRbSV0udmFsLnJlcGxhY2UoIiciLCInJyIpKSxNLnB1c2goIiciK2RbSV0udmFsKyInIikpOihudWxsPT09ZFtJXS52YWwmJihkW0ldLnZhbD0iLiIpLE0ucHVzaChkW0ldLnZhbCkpKTtkPSIoIitNKyIpIjticmVh'@; put 'aztjYXNlIkNPTlRBSU5TIjphPSI/IjticmVhaztjYXNlIk5PVCBFUVVBTCI6YT0ibmUifXJldHVybiJudW0iPT09aCYmbnVsbD09PWQmJihkPSIuIiksIlBsZWFzZSBzZWxlY3QgdmFsdWUiPT09ZCYmKGQ9IiIpLC0xIT09WyI9IiwiPiIsIjwiLCI8PSIsIj49IiwibmUiXS5pbmRleE9mKGEp'@; put 'JiYibnVtIj09PWgmJiIiPT09ZCYmKGQ9Ii4iKSwiQkVUV0VFTiI9PT1hP3t2YWx1ZTpmLG9wZXJhdG9yOmF9Ont2YWx1ZTpkLG9wZXJhdG9yOmF9fXdoZXJlQ2xhdXNlQ3JlYXRvcihhLGQsaCl7bGV0IEksdWUsZj0iIixHPSIiLHJlPVtdO2ZvcihsZXQgRWU9MDtFZTxhLnF1ZXJ5T2JqLmxl'@; put 'bmd0aDtFZSsrKXtsZXQgQmU9IiIsR2U9YS5xdWVyeU9ialtFZV07Zm9yKGxldCBzdD0wO3N0PEdlLmVsZW1lbnRzLmxlbmd0aDtzdCsrKXtsZXQgZHQscHQ9R2UuZWxlbWVudHNbc3RdO0k9c3Q8R2UuZWxlbWVudHMubGVuZ3RoLTE/R2UuY2xhdXNlTG9naWM6IiI7Zm9yKGxldCBNcj0wO01y'@; put 'PHB0LnZhbHVlcy5sZW5ndGg7TXIrKyl7aWYoInN0cmluZyI9PXR5cGVvZiBwdC52YWx1ZSYmIm51bWJlciI9PXR5cGVvZiBwdC52YWx1ZXNbTXJdLmZvcm1hdHRlZClwdC52YWx1ZT09PUpTT04uc3RyaW5naWZ5KHB0LnZhbHVlc1tNcl0uZm9ybWF0dGVkKSYmKGR0PXB0LnZhbHVlc1tNcl0u'@; put 'dW5mb3JtYXR0ZWQpO2Vsc2V7bGV0IHFuPSJudW1iZXIiIT10eXBlb2YgcHQudmFsdWVzW01yXS5mb3JtYXR0ZWQmJm51bGwhPT1wdC52YWx1ZXNbTXJdLmZvcm1hdHRlZD9wdC52YWx1ZXNbTXJdLmZvcm1hdHRlZC50cmltKCk6cHQudmFsdWVzW01yXS5mb3JtYXR0ZWQ7cHQudmFsdWU9PT1x'@; put 'biYmKGR0PXB0LnZhbHVlc1tNcl0udW5mb3JtYXR0ZWQpfSJQbGVhc2Ugc2VsZWN0IHZhbHVlIj09PXB0LnZhbHVlJiYtMSE9PVsiPSIsIj4iLCI8IiwiPD0iLCI+PSIsIm5lIl0uaW5kZXhPZihwdC5vcGVyYXRvcikmJihkdD0iIiksKCJDT05UQUlOUyI9PT1wdC5vcGVyYXRvcnx8IkxJS0Ui'@; put 'PT09cHQub3BlcmF0b3J8fCJCRUdJTlNfV0lUSCI9PT1wdC5vcGVyYXRvcikmJihkdD1wdC52YWx1ZSl9aWYoZHR8fChkdD1wdC52YWx1ZSkscHQudmFsdWUgaW5zdGFuY2VvZiBBcnJheSYmIkJFVFdFRU4iPT09cHQub3BlcmF0b3Ipe2R0PVtdLGR0LnB1c2gocHQudmFsdWVbMF0pLGR0LnB1'@; put 'c2gocHQudmFsdWVbMV0pO2ZvcihsZXQgTXI9MDtNcjxwdC52YWx1ZXMubGVuZ3RoO01yKyspZHRbMF09PT1wdC52YWx1ZXNbTXJdLmZvcm1hdHRlZCYmKGR0WzBdPXB0LnZhbHVlc1tNcl0udW5mb3JtYXR0ZWQpLGR0WzFdPT09cHQudmFsdWVzW01yXS5mb3JtYXR0ZWQmJihkdFsxXT1wdC52'@; put 'YWx1ZXNbTXJdLnVuZm9ybWF0dGVkKX1pZihwdC52YWx1ZSBpbnN0YW5jZW9mIEFycmF5JiYoIklOIj09PXB0Lm9wZXJhdG9yfHwiTk9UIElOIj09PXB0Lm9wZXJhdG9yKSl7ZHQ9W10sZHQ9cHQudmFsdWU7Zm9yKGxldCBNcj0wO01yPHB0LnZhbHVlcy5sZW5ndGg7TXIrKylkdFtNcl0mJmR0'@; put 'W01yXS52YWw9PT1wdC52YWx1ZXNbTXJdLmZvcm1hdHRlZCYmKGR0W01yXS52YWw9cHQudmFsdWVzW01yXS51bmZvcm1hdHRlZCl9bGV0IHF0PXB0LnR5cGU7Y29uc3QgbW49cHQudmFsdWVWYXJpYWJsZTtsZXQgTW4sd249bnVsbD09PXB0LnZhcmlhYmxlPyIiOnB0LnZhcmlhYmxlLGhuPW51'@; put 'bGw9PT1wdC5vcGVyYXRvcj8iIjpwdC5vcGVyYXRvcjtNbj10aGlzLmNoZWNrT3BlcmF0b3IoaG4sZHQscXQpLnZhbHVlLCJzdHJpbmciPT10eXBlb2YgTW4mJiIoIiE9PU1uWzBdJiYoTW49TW4ucmVwbGFjZSgiJyIsIicnIikpLGhuPXRoaXMuY2hlY2tPcGVyYXRvcihobixNbixxdCkub3Bl'@; put 'cmF0b3IsImNoYXIiPT09cXQmJiJJTiIhPT1obiYmIk5PVCBJTiIhPT1obj8odHlwZW9mIE1uPiJ1IiYmKE1uPSIiKSxNbj1tbj8iICIrTW4rIiAiOiIgJyIrTW4rIicgIixCZT1CZSsiICIrd24rIiAiK2huK01uK0kpOigibnVtIj09PXF0JiZ0eXBlb2YgTW4+InUiJiYoTW49Ii4iKSxNbj10'@; put 'eXBlb2YgTW4+InUiPyIiOiIgIitNbisiICIsQmU9QmUrIiAiK3duKyIgIitobitNbitJKX1yZS5wdXNoKEJlKX1HPSIiO2ZvcihsZXQgRWU9MDtFZTxyZS5sZW5ndGg7RWUrKyl1ZT1FZTxyZS5sZW5ndGgtMT9kOiIiLEc9MT09PXJlLmxlbmd0aD9yZVswXTpHKyIgKCIrcmVbRWVdKyIpICIr'@; put 'dWU7cmV0dXJuIGY9Ry5zdWJzdHIoMSkuc2xpY2UoMCwtMSksRz0iV0hFUkUiK0crIjsiLHRoaXMucXVlcnkubmV4dCh7d2hlcmVDbGF1c2U6RyxzdHJpbmc6ZixvYmo6YSxsaWJkczpofSkse3doZXJlQ2xhdXNlOkcsc3RyaW5nOmZ9fWNyZWF0ZUZpbHRlclF1ZXJ5VGFibGUoYSl7Y29uc3Qg'@; put 'ZD1bXTtyZXR1cm4gYS5maWx0ZXJHcm91cHMuZm9yRWFjaCgoaCxmKT0+e2guZmlsdGVyQ2xhdXNlcy5mb3JFYWNoKHY9PntsZXQgTT0iIjsiQkVUV0VFTiI9PT12Lm9wZXJhdG9yP009YCR7di52YWx1ZVswXX0gQU5EICR7di52YWx1ZVsxXX1gOiJJTiI9PT12Lm9wZXJhdG9yfHwiTk9UIElO'@; put 'Ij09PXYub3BlcmF0b3I/KHYudmFsdWUuZm9yRWFjaChJPT57aWYoSS5jaGVja2VkKXtjb25zdCBHPUkudmFsOyJzdHJpbmciIT10eXBlb2YgR3x8KDAscGcuaXNTcGVjaWFsTWlzc2luZykoRykmJiJjaGFyIiE9PXYudHlwZT9NLmxlbmd0aD4wP00rPWAsJHtHfWA6TT1gKCR7R31gOk0ubGVu'@; put 'Z3RoPjA/TSs9YCwnJHtHLnJlcGxhY2UoLycvZywiJyciKX0nYDpNPWAoJyR7Ry5yZXBsYWNlKC8nL2csIicnIil9J2B9fSksTS5sZW5ndGg+MCYmKE0rPSIpIikpOiIiPT09di52YWx1ZT9NPSJjaGFyIj09PXYudHlwZT8iJyAnIjoiLiI6ImNoYXIiPT09di50eXBlJiYhdi52YWx1ZVZhcmlh'@; put 'YmxlJiYoTT1gJyR7di52YWx1ZS5yZXBsYWNlKC8nL2csIicnIil9J2ApLGQucHVzaCh7R1JPVVBfTE9HSUM6YS5ncm91cExvZ2ljLFNVQkdST1VQX0xPR0lDOmguY2xhdXNlTG9naWN8fCJBTkQiLFNVQkdST1VQX0lEOmYsVkFSSUFCTEVfTk06di52YXJpYWJsZSxPUEVSQVRPUl9OTTp2Lm9w'@; put 'ZXJhdG9yLFJBV19WQUxVRTpNfHx2LnZhbHVlfSl9KX0pLGR9aW5pdGlhbGl6ZUdsb2JhbEZpbHRlckNsYXVzZShhLGQpe2NvbnN0IGg9e3F1ZXJ5T2JqOltdLGNsYXVzZUxvZ2ljOltdLGdyb3VwTG9naWM6eWMoSm4sYSkuZmlsdGVyLnF1ZXJ5WzBdLkdST1VQX0xPR0lDfTt5YyhKbixhKS5m'@; put 'aWx0ZXIuY2xhdXNlcz10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKGgpLHljKEpuLGEpLmZpbHRlci5ncm91cExvZ2ljPXljKEpuLGEpLmZpbHRlci5xdWVyeVswXS5HUk9VUF9MT0dJQztsZXQgZj0iIix2PXtlbGVtZW50czpbXX0sTT0wO3ljKEpuLGEpLmZpbHRlci5xdWVyeS5mb3JF'@; put 'YWNoKEk9Pntjb25zdCBHPXt9O2ZvcihsZXQgcmU9MDtyZTxkLmxlbmd0aDtyZSsrKWlmKGRbcmVdLk5BTUU9PT1JLlZBUklBQkxFX05NKXtpZihmPUkuU1VCR1JPVVBfTE9HSUMsRy5kZHR5cGU9ZFtyZV0uRERUWVBFLEcudHlwZT1kW3JlXS5UWVBFLEcub3BlcmF0b3JzPSJudW0iPT09ZFty'@; put 'ZV0uVFlQRT9Kbi5vcGVyYXRvcnMubnVtT3BlcmF0b3JzOkpuLm9wZXJhdG9ycy5jaGFyT3BlcmF0b3JzLEcubG9naWM9bnVsbCxHLm9wZXJhdG9yPUkuT1BFUkFUT1JfTk0sRy52YXJpYWJsZT1JLlZBUklBQkxFX05NLCJjaGFyIj09PWRbcmVdLlRZUEUpaWYoIklOIj09PUkuT1BFUkFUT1Jf'@; put 'Tk18fCJOT1QgSU4iPT09SS5PUEVSQVRPUl9OTSl7Y29uc3QgdWU9W10sRWU9SS5SQVdfVkFMVUUuc2xpY2UoMSwtMSkuc3BsaXQoIicsJyIpOzE9PT1FZS5sZW5ndGg/dWUucHVzaCh7Y2hlY2tlZDohMCx2YWw6RWVbMF0uc2xpY2UoMSwtMSkucmVwbGFjZSgvJycvZywiJyIpfSk6RWUuZm9y'@; put 'RWFjaCgoQmUsR2UpPT57dWUucHVzaCgwPT09R2U/e2NoZWNrZWQ6ITAsdmFsOkJlLnNsaWNlKDEpLnJlcGxhY2UoLycnL2csIiciKX06R2U9PT1FZS5sZW5ndGgtMT97Y2hlY2tlZDohMCx2YWw6QmUuc2xpY2UoMCwtMSkucmVwbGFjZSgvJycvZywiJyIpfTp7Y2hlY2tlZDohMCx2YWw6QmUu'@; put 'cmVwbGFjZSgvJycvZywiJyIpfSl9KSxHLnZhbHVlPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUodWUpfWVsc2UgRy52YWx1ZT1JLlJBV19WQUxVRS5zbGljZSgxLC0xKS5yZXBsYWNlKC8nJy9nLCInIik7ZWxzZSBpZigiSU4iPT09SS5PUEVSQVRPUl9OTXx8Ik5PVCBJTiI9PT1JLk9Q'@; put 'RVJBVE9SX05NKXtjb25zdCB1ZT1bXTtJLlJBV19WQUxVRS5zbGljZSgxLC0xKS5zcGxpdCgiLCIpLmZvckVhY2goKEJlLEdlKT0+e3VlLnB1c2goe2NoZWNrZWQ6ITAsdmFsOkJlfSl9KSxHLnZhbHVlPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUodWUpfWVsc2UgaWYoIkJFVFdFRU4i'@; put 'PT09SS5PUEVSQVRPUl9OTSl7Y29uc3QgdWU9SS5SQVdfVkFMVUUuc3BsaXQoIiBBTkQgIik7Ry52YWx1ZT11ZX1lbHNlIEcudmFsdWU9SS5SQVdfVkFMVUU7Ry52YWx1ZXM9W10sTT09PUkuU1VCR1JPVVBfSUR8fCh5YyhKbixhKS5maWx0ZXIuY2xhdXNlcy5xdWVyeU9iai5wdXNoKHRoaXMu'@; put 'aGVscGVyU2VydmljZS5kZWVwQ2xvbmUodikpLHljKEpuLGEpLmZpbHRlci5jbGF1c2VzLnF1ZXJ5T2JqW01dLmNsYXVzZUxvZ2ljPWYseWMoSm4sYSkuZmlsdGVyLmNsYXVzZXMucXVlcnlPYmpbTV0uaW52YWxpZENsYXVzZT0hMSxNKyssdi5lbGVtZW50cz1bXSksdi5lbGVtZW50cy5wdXNo'@; put 'KHRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUoRykpO2JyZWFrfX0pLHYuZWxlbWVudHMubGVuZ3RoPjAmJih5YyhKbixhKS5maWx0ZXIuY2xhdXNlcy5xdWVyeU9iai5wdXNoKHRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUodikpLHljKEpuLGEpLmZpbHRlci5jbGF1c2VzLnF1ZXJ5'@; put 'T2JqW01dLmNsYXVzZUxvZ2ljPWYseWMoSm4sYSkuZmlsdGVyLmNsYXVzZXMucXVlcnlPYmpbTV0uaW52YWxpZENsYXVzZT0hMSkseWMoSm4sYSkuZmlsdGVyLnF1ZXJ5PVtdfXJlbW92ZUNsYXVzZSgpe3ZhciBhPXRoaXM7cmV0dXJuIFEoZnVuY3Rpb24qKCl7cmV0dXJuIGEucmVtb3ZlUXVl'@; put 'cnkubmV4dCghMCksITB9KSgpfXNwZWNDb252ZXJzaW9uKGEpe2xldCBkPXt9LGg9W107aWYoaD1hLm1hcChmdW5jdGlvbihmKXtyZXR1cm4gZi5OQU1FLnRvVXBwZXJDYXNlKCl9KSxhIGluc3RhbmNlb2YgQXJyYXkpZm9yKGxldCBmPTA7ZjxoLmxlbmd0aDtmKyspZFtoW2ZdXT0xPT09YVtm'@; put 'XS5UWVBFP3tjb2xUeXBlOiJudW0iLGNvbExlbmd0aDphW2ZdLkxFTkdUSH06e2NvbFR5cGU6InN0cmluZyIsY29sTGVuZ3RoOmFbZl0uTEVOR1RIfTtyZXR1cm4gZH1zZXRTdWJtaXRSZWFkeSgpe3RoaXMuc2V0U3VibWl0Lm5leHQoITApfXBhcnNlRm9ybWF0cyhhKXtjb25zdCBkPXt9LGg9'@; put 'YS52YXJzO2ZvcihsZXQgZiBvZiBPYmplY3Qua2V5cyhoKSl7Y29uc3Qgdj1oW2ZdLnR5cGUsTT1oW2ZdLmxlbmd0aDsibnVtIj09PXY/ZFtmXT0iYmVzdC4iOiJjaGFyIj09PXYmJihkW2ZdPWAkY2hhciR7TX0uYCl9cmV0dXJuIGR9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQp'@; put 'e3JldHVybiBuZXcoZHx8YykoQ3IoVm8pLENyKGJ1KSxDcihTZCkpfX1zdGF0aWN7dGhpcy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWN9KX19cmV0dXJuIGN9KSgpO2Z1bmN0aW9uIFJLZShjLGwpezEmYyYmKGFpKDApLGRlKDEsInNwYW4iLDIxKSxPZSgyLCIg'@; put 'TG9hZGluZy4uLiAiKSxoZSgpLGRlKDMsInAiKSxPZSg0LCJEZXBsb3lpbmcuLi4iKSxoZSgpLHNpKCkpfWZ1bmN0aW9uIExLZShjLGwpezEmYyYmV3QoMCwiY2xyLWljb24iLDMyKX1mdW5jdGlvbiBPS2UoYyxsKXsxJmMmJld0KDAsImNsci1pY29uIiwzMyl9ZnVuY3Rpb24gUEtlKGMsbCl7'@; put 'aWYoMSZjJiYoZGUoMCwiZGl2IiwzMCksZ3QoMSxMS2UsMSwwLCJjbHItaWNvbiIsMzEpKDIsT0tlLDEsMCwiY2xyLWljb24iLDI3KSxkZSgzLCJwIiksT2UoNCwiRGVwbG95IFNBUyBKb2JzIiksaGUoKSgpKSwyJmMpe2NvbnN0IGE9TGUoMyk7ZmUoKSxNZSgibmdJZiIsITA9PT1hLmF1dG9E'@; put 'ZXBsb3lTdGF0dXMuZGVwbG95U2VydmljZVBhY2spLGZlKCksTWUoIm5nSWYiLCEhYS5hdXRvRGVwbG95U3RhdHVzLmRlcGxveVNlcnZpY2VQYWNrKX19ZnVuY3Rpb24gRktlKGMsbCl7MSZjJiZXdCgwLCJjbHItaWNvbiIsMzIpfWZ1bmN0aW9uIEhLZShjLGwpezEmYyYmV3QoMCwiY2xyLWlj'@; put 'b24iLDMzKX1mdW5jdGlvbiBOS2UoYyxsKXtpZigxJmMmJihkZSgwLCJkaXYiLDMwKSxndCgxLEZLZSwxLDAsImNsci1pY29uIiwzMSkoMixIS2UsMSwwLCJjbHItaWNvbiIsMjcpLGRlKDMsInAiKSxPZSg0LCJDcmVhdGUgZGF0YWJhc2UiKSxoZSgpKCkpLDImYyl7Y29uc3QgYT1MZSgzKTtm'@; put 'ZSgpLE1lKCJuZ0lmIixhLmF1dG9EZXBsb3lTdGF0dXMucnVuTWFrZURhdGEpLGZlKCksTWUoIm5nSWYiLCExPT09YS5hdXRvRGVwbG95U3RhdHVzLnJ1bk1ha2VEYXRhKX19ZnVuY3Rpb24gVktlKGMsbCl7MSZjJiZXdCgwLCJjbHItaWNvbiIsMzMpfWZ1bmN0aW9uIEJLZShjLGwpe2lmKDEm'@; put 'Yyl7Y29uc3QgYT1PbigpO2FpKDApLGRlKDEsInAiLDIyKSxPZSgyLCJEb25lIiksaGUoKSxXdCgzLCJociIsMjMpLGd0KDQsUEtlLDUsMiwiZGl2IiwyNCkoNSxOS2UsNSwyLCJkaXYiLDI0KSxXdCg2LCJociIsMjMpLGRlKDcsImRpdiIsMjUpKDgsImJ1dHRvbiIsMjYpLEZ0KCJjbGljayIs'@; put 'ZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoMikubmF2aWdhdGVUb0hvbWUoKSl9KSxndCg5LFZLZSwxLDAsImNsci1pY29uIiwyNyksT2UoMTAsIiBMQVVOQ0ggIiksaGUoKSxkZSgxMSwiYnV0dG9uIiwyOCksRnQoImNsaWNrIixmdW5jdGlvbigpe3d0KGEpO2NvbnN0IGg9TGUoMik7'@; put 'cmV0dXJuIEN0KGguZG93bmxvYWRGaWxlKGgubWFrZURhdGFSZXNwb25zZSwiY3JlYXRlLWRhdGFiYXNlLWxvZyIsInR4dCIpKX0pLE9lKDEyLCIgRG93bmxvYWQgbG9nICIpLGhlKCkoKSxXdCgxMywiaHIiLDIzKSxkZSgxNCwiZGl2IiwyNSkoMTUsImJ1dHRvbiIsMjkpLEZ0KCJjbGljayIs'@; put 'ZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKDIpO3JldHVybiBoLmF1dG9kZXBsb3lpbmc9ITEsQ3QoaC5hdXRvZGVwbG95RG9uZT0hMSl9KSxPZSgxNiwiIENsb3NlICIpLGhlKCksZGUoMTcsImJ1dHRvbiIsMjkpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUo'@; put 'Mikub3BlblNhc1JlcXVlc3RzTW9kYWwoKSl9KSxPZSgxOCwiIFNBUyBSZXF1ZXN0cyAiKSxoZSgpKCksc2koKX1pZigyJmMpe2NvbnN0IGE9TGUoMik7ZmUoNCksTWUoIm5nSWYiLG51bGwhPT1hLmF1dG9EZXBsb3lTdGF0dXMuZGVwbG95U2VydmljZVBhY2spLGZlKCksTWUoIm5nSWYiLG51'@; put 'bGwhPT1hLmF1dG9EZXBsb3lTdGF0dXMucnVuTWFrZURhdGEpLGZlKDQpLE1lKCJuZ0lmIiwhMT09PWEuYXV0b0RlcGxveVN0YXR1cy5kZXBsb3lTZXJ2aWNlUGFja3x8ITE9PT1hLmF1dG9EZXBsb3lTdGF0dXMucnVuTWFrZURhdGEpfX1mdW5jdGlvbiBqS2UoYyxsKXtpZigxJmMmJihkZSgw'@; put 'LCJkaXYiLDE5KSgxLCJkaXYiLDIwKSxndCgyLFJLZSw1LDAsIm5nLWNvbnRhaW5lciIsMTIpKDMsQktlLDE5LDMsIm5nLWNvbnRhaW5lciIsMTIpLGhlKCkoKSksMiZjKXtjb25zdCBhPUxlKCk7ZmUoMiksTWUoIm5nSWYiLCFhLmF1dG9kZXBsb3lEb25lKSxmZSgpLE1lKCJuZ0lmIixhLmF1'@; put 'dG9kZXBsb3lEb25lKX19ZnVuY3Rpb24gektlKGMsbCl7aWYoMSZjJiYoZGUoMCwib3B0aW9uIiwzNiksT2UoMSksaGUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O01lKCJ2YWx1ZSIsYS5pZCksZmUoKSxMcigiICIsYS5uYW1lLCIgIil9fWZ1bmN0aW9uIFVLZShjLGwpe2lmKDEmYyl7'@; put 'Y29uc3QgYT1PbigpO2RlKDAsInNlbGVjdCIsMzQpLHBpKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihoKXt3dChhKTtjb25zdCBmPUxlKCk7cmV0dXJuIGdpKGYuc2VsZWN0ZWRBZG1pbkdyb3VwLGgpfHwoZi5zZWxlY3RlZEFkbWluR3JvdXA9aCksQ3QoaCl9KSxndCgxLHpLZSwyLDIsIm9w'@; put 'dGlvbiIsMzUpLGhlKCl9aWYoMiZjKXtjb25zdCBhPUxlKCk7ZmkoIm5nTW9kZWwiLGEuc2VsZWN0ZWRBZG1pbkdyb3VwKSxmZSgpLE1lKCJuZ0Zvck9mIixhLmFkbWluR3JvdXBzKX19ZnVuY3Rpb24gWktlKGMsbCl7MSZjJiZXdCgwLCJjbHItc3Bpbm5lciIsMzcpfWZ1bmN0aW9uIFdLZShj'@; put 'LGwpe2lmKDEmYyYmKGRlKDAsIm9wdGlvbiIsMzYpLE9lKDEpLGhlKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtNZSgidmFsdWUiLGEuaWQpLGZlKCksTHIoIiAiLGEubmFtZSwiICIpfX1mdW5jdGlvbiBZS2UoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJzZWxlY3QiLDM0'@; put 'KSxGdCgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oaCl7cmV0dXJuIHd0KGEpLEN0KExlKCkub25Db21wdXRlQ29udGV4dENoYW5nZShoKSl9KSxwaSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oaCl7d3QoYSk7Y29uc3QgZj1MZSgpO3JldHVybiBnaShmLnNlbGVjdGVkQ29tcHV0ZUNvbnRl'@; put 'eHQsaCl8fChmLnNlbGVjdGVkQ29tcHV0ZUNvbnRleHQ9aCksQ3QoaCl9KSxndCgxLFdLZSwyLDIsIm9wdGlvbiIsMzUpLGhlKCl9aWYoMiZjKXtjb25zdCBhPUxlKCk7ZmkoIm5nTW9kZWwiLGEuc2VsZWN0ZWRDb21wdXRlQ29udGV4dCksZmUoKSxNZSgibmdGb3JPZiIsYS5jb21wdXRlQ29u'@; put 'dGV4dHMpfX1mdW5jdGlvbiBHS2UoYyxsKXsxJmMmJld0KDAsImNsci1zcGlubmVyIiwzNyl9ZnVuY3Rpb24gJEtlKGMsbCl7aWYoMSZjJiYoYWkoMCksZGUoMSwibGFiZWwiLDIpLE9lKDIsIlJ1bm5pbmcgYXMgdXNlcjoiKSxoZSgpLGRlKDMsImRpdiIsMykoNCwiZGl2Iiw0KSg1LCJwIiw1'@; put 'KSxPZSg2KSxoZSgpKCkoKSxzaSgpKSwyJmMpe2NvbnN0IGE9TGUoKTtmZSg2KSxTcihhLnJ1bm5pbmdBc1VzZXIpfX1sZXQgS0tlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZix2LE0pe3RoaXMuZXZlbnRTZXJ2aWNlPWEsdGhpcy5kZXBsb3lTZXJ2aWNlPWQsdGhpcy5zYXNT'@; put 'ZXJ2aWNlPWgsdGhpcy5zYXNWaXlhU2VydmljZT1mLHRoaXMubG9nZ2VyU2VydmljZT12LHRoaXMuaGVscGVyU2VydmljZT1NLHRoaXMuc2FzSnNDb25maWc9bmV3IHloLlNBU2pzQ29uZmlnLHRoaXMuYXBwTG9jPSIiLHRoaXMuZGNQYXRoPSIiLHRoaXMuc2VsZWN0ZWRBZG1pbkdyb3VwPSIi'@; put 'LHRoaXMub25OYXZpZ2F0ZVRvSG9tZT1uZXcgS3IsdGhpcy5zZWxlY3RlZENvbXB1dGVDb250ZXh0PSIiLHRoaXMubWFrZURhdGFSZXNwb25zZT0iIix0aGlzLmpzb25GaWxlPW51bGwsdGhpcy5hdXRvZGVwbG95aW5nPSExLHRoaXMuYXV0b2RlcGxveURvbmU9ITEsdGhpcy5yZWNyZWF0ZURh'@; put 'dGFiYXNlTW9kYWw9ITEsdGhpcy5pc1N1Ym1pdHRpbmdKc29uPSExLHRoaXMuaXNKc29uU3VibWl0dGVkPSExLHRoaXMucmVjcmVhdGVEYXRhYmFzZT0hMCx0aGlzLmNyZWF0ZURhdGFiYXNlTG9hZGluZz0hMSx0aGlzLmFkbWluR3JvdXBzTG9hZGluZz0hMSx0aGlzLmN1cnJlbnRVc2VySW5m'@; put 'b0xvYWRpbmc9ITEsdGhpcy5jb21wdXRlQ29udGV4dHNMb2FkaW5nPSExLHRoaXMuYWRtaW5Hcm91cHM9W10sdGhpcy5jdXJyZW50VXNlckluZm89bnVsbCx0aGlzLmNvbXB1dGVDb250ZXh0cz1bXSx0aGlzLmF1dG9EZXBsb3lTdGF0dXM9e2RlcGxveVNlcnZpY2VQYWNrOm51bGwscnVuTWFr'@; put 'ZURhdGE6bnVsbH0sdGhpcy5zYXNqc0NvbmZpZz10aGlzLnNhc1NlcnZpY2UuZ2V0U2FzanNDb25maWcoKSx0aGlzLmRlcGxveUluTmV3V2luZG93PSEwfW5nT25Jbml0KCl7dGhpcy5sb2FkRGF0YSgpfWxvYWREYXRhKCl7dmFyIGE9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXt5aWVsZCBh'@; put 'LmdldEFkbWluR3JvdXBzKCkseWllbGQgYS5nZXRDb21wdXRlQ29udGV4dHMoKSx5aWVsZCBhLmdldEN1cnJlbnRVc2VyKCksc2V0VGltZW91dCgoKT0+e2Euc2VsZWN0ZWRDb21wdXRlQ29udGV4dCYmYS5vbkNvbXB1dGVDb250ZXh0Q2hhbmdlKGEuc2VsZWN0ZWRDb21wdXRlQ29udGV4dCl9'@; put 'LDUwMCl9KSgpfWdldENvbXB1dGVDb250ZXh0cygpe3ZhciBhPXRoaXM7cmV0dXJuIFEoZnVuY3Rpb24qKCl7cmV0dXJuIG5ldyBQcm9taXNlKChkLGgpPT57YS5jb21wdXRlQ29udGV4dHNMb2FkaW5nPSEwLGEuc2FzVml5YVNlcnZpY2UuZ2V0Q29tcHV0ZUNvbnRleHRzKCkuc3Vic2NyaWJl'@; put 'KGY9PnthLmNvbXB1dGVDb250ZXh0c0xvYWRpbmc9ITE7Y29uc3Qgdj1mLml0ZW1zLmZpbmQoTT0+IlNBUyBKb2IgRXhlY3V0aW9uIGNvbXB1dGUgY29udGV4dCI9PT1NLm5hbWUpO3YmJihhLnNlbGVjdGVkQ29tcHV0ZUNvbnRleHQ9di5pZCksYS5jb21wdXRlQ29udGV4dHM9Zi5pdGVtcyxk'@; put 'KCl9LGY9PntoKGYpfSl9KX0pKCl9Z2V0Q3VycmVudFVzZXIoKXt2YXIgYT10aGlzO3JldHVybiBRKGZ1bmN0aW9uKigpe3JldHVybiBuZXcgUHJvbWlzZSgoZCxoKT0+e2EuY3VycmVudFVzZXJJbmZvTG9hZGluZz0hMCxhLnNhc1ZpeWFTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCkuc3Vic2Ny'@; put 'aWJlKGY9PnthLmN1cnJlbnRVc2VySW5mb0xvYWRpbmc9ITEsYS5jdXJyZW50VXNlckluZm89ZixhLmRjUGF0aD1gL2V4cG9ydC92aXlhL2hvbWVzLyR7Zi5pZH1gLGQoKX0sZj0+e2NvbnNvbGUuZXJyb3IoIkVycm9yIHdoaWxlIGdldHRpbmcgY3VycmVudCB1c2VyIixmKSxoKGYpfSl9KX0p'@; put 'KCl9Z2V0QWRtaW5Hcm91cHMoKXt2YXIgYT10aGlzO3JldHVybiBRKGZ1bmN0aW9uKigpe3JldHVybiBuZXcgUHJvbWlzZSgoZCxoKT0+e2EuYWRtaW5Hcm91cHNMb2FkaW5nPSEwLGEuc2FzVml5YVNlcnZpY2UuZ2V0QWRtaW5Hcm91cHMoKS5zdWJzY3JpYmUoZj0+e2EuYWRtaW5Hcm91cHNM'@; put 'b2FkaW5nPSExLGEuYWRtaW5Hcm91cHM9Zi5pdGVtcy5tYXAodj0+KHtpZDp2LmlkLG5hbWU6di5uYW1lfSkpLGQoKX0pfSl9KSgpfW9uQ29tcHV0ZUNvbnRleHRDaGFuZ2UoYSl7dmFyIGQ9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXtkLnNhc1ZpeWFTZXJ2aWNlLmdldENvbXB1dGVDb250'@; put 'ZXh0QnlJZChhKS5zdWJzY3JpYmUoaD0+e2QucnVubmluZ0FzVXNlcj1oLmF0dHJpYnV0ZXMmJmguYXR0cmlidXRlcy5ydW5TZXJ2ZXJBcz9oLmF0dHJpYnV0ZXMucnVuU2VydmVyQXM6ZC5jdXJyZW50VXNlckluZm8/LmlkfHwidW5rbm93biJ9KX0pKCl9Z2V0Q29tcHV0ZUNvbnRleHROYW1l'@; put 'KGEpe3JldHVybiB0aGlzLmNvbXB1dGVDb250ZXh0cy5maW5kKGQ9PmQuaWQ9PT1hKT8ubmFtZXx8dm9pZCAwfWV4ZWN1dGVKc29uKCl7dmFyIGE9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXthLmlzU3VibWl0dGluZ0pzb249ITA7dHJ5e3lpZWxkIGEuc2FzSnMuZGVwbG95U2VydmljZVBh'@; put 'Y2soYS5qc29uRmlsZSxhLmRjQWRhcHRlclNldHRpbmdzPy5hcHBMb2Msdm9pZCAwLHZvaWQgMCwhMCksYS5hdXRvRGVwbG95U3RhdHVzLmRlcGxveVNlcnZpY2VQYWNrPSEwLGEuaXNKc29uU3VibWl0dGVkPSEwfWNhdGNoKGQpe2xldCBoPSIiO3JldHVybiBoPSJzdHJpbmciIT10eXBlb2Yg'@; put 'ZC5tZXNzYWdlP0pTT04uc3RyaW5naWZ5KGQpLnJlcGxhY2UoL1xcL2dtLCIiKTpkLm1lc3NhZ2UsYS5hdXRvRGVwbG95U3RhdHVzLmRlcGxveVNlcnZpY2VQYWNrPSExLGEuZXZlbnRTZXJ2aWNlLnNob3dJbmZvTW9kYWwoIkRlcGxveSBlcnJvciIsYEV4Y2VwdGlvbjogXG4gJHsiIiE9PWg/'@; put 'aDpkfWApLGEuYXV0b2RlcGxveWluZz0hMSx2b2lkKGEuYXV0b2RlcGxveURvbmU9ITEpfWEuaXNTdWJtaXR0aW5nSnNvbj0hMX0pKCl9cnVuQXV0b0RlcGxveSgpe3ZhciBhPXRoaXM7cmV0dXJuIFEoZnVuY3Rpb24qKGQ9ITEpe2EuZGVwbG95SW5OZXdXaW5kb3d8fChhLmF1dG9kZXBsb3lp'@; put 'bmc9ITApLGQmJmEuZXhlY3V0ZUpzb24oKSxhLnJlY3JlYXRlRGF0YWJhc2U/YS5jcmVhdGVEYXRhYmFzZSgpOmEuZGVwbG95SW5OZXdXaW5kb3d8fChhLmF1dG9kZXBsb3lEb25lPSEwKX0pLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1jcmVhdGVEYXRhYmFzZSgpe2xldCBhPXtmcm9tanM6W3tB'@; put 'RE1JTjp0aGlzLnNlbGVjdGVkQWRtaW5Hcm91cCxEQ1BBVEg6dGhpcy5kY1BhdGh9XX0sZD10aGlzLnNhc0pzQ29uZmlnLmNvbnRleHROYW1lO2lmKHRoaXMuc2VsZWN0ZWRDb21wdXRlQ29udGV4dC5sZW5ndGgmJnRoaXMuY29tcHV0ZUNvbnRleHRzLmxlbmd0aCl7Y29uc3QgZj10aGlzLmdl'@; put 'dENvbXB1dGVDb250ZXh0TmFtZSh0aGlzLnNlbGVjdGVkQ29tcHV0ZUNvbnRleHQpO2YmJihkPWYpfWxldCBoPXt1c2VDb21wdXRlQXBpOm51bGwsY29udGV4dE5hbWU6ZCxkZWJ1ZzohMH07dGhpcy5kZXBsb3lJbk5ld1dpbmRvdz90aGlzLnJ1bk1ha2VkYXRhSW5OZXdXaW5kb3coe2NvbnRl'@; put 'eHROYW1lOmQsYWRtaW46dGhpcy5zZWxlY3RlZEFkbWluR3JvdXAsZGNQYXRoOnRoaXMuZGNQYXRofSk6dGhpcy5zYXNKcy5yZXF1ZXN0KCJzZXJ2aWNlcy9hZG1pbi9tYWtlZGF0YSIsYSxoLCgpPT57dGhpcy5zYXNTZXJ2aWNlLnNob3VsZExvZ2luLm5leHQoITApfSkudGhlbihmPT57dGhp'@; put 'cy5hdXRvZGVwbG95RG9uZT0hMDt0cnl7dGhpcy5tYWtlRGF0YVJlc3BvbnNlPUpTT04uc3RyaW5naWZ5KGYpfWNhdGNoe3RoaXMubWFrZURhdGFSZXNwb25zZT1mfXRoaXMuYXV0b0RlcGxveVN0YXR1cy5ydW5NYWtlRGF0YT0hIShmLnJlc3VsdCYmZi5yZXN1bHQubGVuZ3RoPjApLHR5cGVv'@; put 'ZiBmLnNhc2pzQWJvcnQ8InUiJiZ0aGlzLmV2ZW50U2VydmljZS5zaG93QWJvcnRNb2RhbCgibWFrZWRhdGEiLGYuc2FzanNBYm9ydFswXS5NU0cse1NZU1dBUk5JTkdURVhUOmYuU1lTV0FSTklOR1RFWFQsU1lTRVJST1JURVhUOmYuU1lTRVJST1JURVhULE1BQzpmLnNhc2pzQWJvcnRbMF0u'@; put 'TUFDfSksdGhpcy5oZWxwZXJTZXJ2aWNlLmlzU3RyZWFtaW5nVml5YSgpJiZ0aGlzLnVwZGF0ZUluZGV4SHRtbENvbXB1dGVDb250ZXh0KCl9KS5jYXRjaChmPT57dGhpcy5ldmVudFNlcnZpY2Uuc2hvd0Fib3J0TW9kYWwoIm1ha2VkYXRhIixKU09OLnN0cmluZ2lmeShmKSksdGhpcy5hdXRv'@; put 'RGVwbG95U3RhdHVzLnJ1bk1ha2VEYXRhPSExLHRoaXMuYXV0b2RlcGxveURvbmU9ITA7dHJ5e3RoaXMubWFrZURhdGFSZXNwb25zZT1KU09OLnN0cmluZ2lmeShmKX1jYXRjaHt0aGlzLm1ha2VEYXRhUmVzcG9uc2U9Zn19KX1ydW5NYWtlZGF0YUluTmV3V2luZG93KGEpe2xldCBkPXRoaXMu'@; put 'c2FzanNDb25maWcuc2VydmVyVXJsLGg9dGhpcy5zYXNqc0NvbmZpZy5hcHBMb2M7Y29uc3QgZj10aGlzLnNhc1NlcnZpY2UuZ2V0RXhlY3V0aW9uUGF0aCgpO3dpbmRvdy5vcGVuKGQrZisiLz9fcHJvZ3JhbT0iK2grIi9zZXJ2aWNlcy9hZG1pbi9tYWtlZGF0YSIrYCZfY29udGV4dG5hbWU9'@; put 'JHthLmNvbnRleHROYW1lfWArYCZhZG1pbj0ke2EuYWRtaW59YCtgJmRjcGF0aD0ke2EuZGNQYXRofSZfZGVidWc9MTMxYCl9dXBkYXRlSW5kZXhIdG1sQ29tcHV0ZUNvbnRleHQoKXt2YXIgYT10aGlzO3JldHVybiBRKGZ1bmN0aW9uKigpe2NvbnN0IGQ9bG9jYXRpb24uc2VhcmNoLnNwbGl0'@; put 'KCIvIikucG9wKCksaD1kPy5pbmNsdWRlcygiLiIpP2Q6dm9pZCAwO2lmKCFoKXJldHVybiB2b2lkIGEuZXZlbnRTZXJ2aWNlLnNob3dBYm9ydE1vZGFsKG51bGwsIldlIGNvdWxkIG5vdCBmaWd1cmUgb3V0IHRoZSBmaWxlIG5hbWUgb2YgYGluZGV4Lmh0bWxgIGJhc2VkIG9uIHRoZSB1cmwu'@; put 'Iik7Y29uc3QgZj15aWVsZCBhLnNhc1NlcnZpY2UuZ2V0RmlsZUNvbnRlbnQoYCR7YS5hcHBMb2N9L3NlcnZpY2VzYCxoKTtpZighZilyZXR1cm4gdm9pZCBhLmxvZ2dlclNlcnZpY2UuZXJyb3IoYEZhaWxlZCB0byBnZXQgJHtofSBhdCAke2EuYXBwTG9jfS9zZXJ2aWNlc2ApO2NvbnN0IHY9'@; put 'YS5nZXRDb21wdXRlQ29udGV4dE5hbWUoYS5zZWxlY3RlZENvbXB1dGVDb250ZXh0KTtpZighdilyZXR1cm4gdm9pZCBhLmxvZ2dlclNlcnZpY2UuZXJyb3IoYENvbXB1dGUgY29udGV4dCBuYW1lIG5vdCBmb3VuZCBmb3IgSUQ6ICR7YS5zZWxlY3RlZENvbXB1dGVDb250ZXh0fSB8IExpc3Q6'@; put 'ICR7SlNPTi5zdHJpbmdpZnkoYS5jb21wdXRlQ29udGV4dHMpfWApO2NvbnN0IE09Zi5yZXBsYWNlKC9jb250ZXh0bmFtZT0iW14iXSoiL2csYGNvbnRleHRuYW1lPSIke3Z9ImApO3lpZWxkIGEuc2FzU2VydmljZS51cGRhdGVGaWxlQ29udGVudChgJHthLmFwcExvY30vc2VydmljZXNgLGgs'@; put 'TSkuY2F0Y2goST0+e2EubG9nZ2VyU2VydmljZS5lcnJvcihgRmFpbGVkIHRvIHVwZGF0ZSBEYXRhQ29udHJvbGxlci5odG1sOiAke0l9YCl9KX0pKCl9ZG93bmxvYWRGaWxlKGEsZCxoPSJ0eHQiKXt0aGlzLmRlcGxveVNlcnZpY2UuZG93bmxvYWRGaWxlKGEsZCxoKX1vbkpzb25GaWxlQ2hh'@; put 'bmdlKGEpe3ZhciBkPXRoaXM7cmV0dXJuIFEoZnVuY3Rpb24qKCl7bGV0IGg9YS50YXJnZXQuZmlsZXNbMF07ZC5qc29uRmlsZT15aWVsZCBkLmRlcGxveVNlcnZpY2UucmVhZEZpbGUoaCl9KSgpfXJlY3JlYXRlRGF0YWJhc2VDbGlja2VkKGEpeyEwPT09YS50YXJnZXQuY2hlY2tlZCYmKHRo'@; put 'aXMucmVjcmVhdGVEYXRhYmFzZU1vZGFsPSEwKX1jbGVhclVwbG9hZElucHV0KGEpe3RoaXMuZGVwbG95U2VydmljZS5jbGVhclVwbG9hZElucHV0KGEpfW9wZW5TYXNSZXF1ZXN0c01vZGFsKCl7dGhpcy5ldmVudFNlcnZpY2Uub3BlblJlcXVlc3RzTW9kYWwoKX1uYXZpZ2F0ZVRvSG9tZSgp'@; put 'e3RoaXMub25OYXZpZ2F0ZVRvSG9tZS5lbWl0KCl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUobWMpLCRlKGEyZSksJGUoVm8pLCRlKElXKSwkZShTZCksJGUoYnUpKX19c3RhdGlje3RoaXMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0'@; put 'b3JzOltbImFwcC1hdXRvbWF0aWMtZGVwbG95Il1dLGlucHV0czp7c2FzSnM6InNhc0pzIixzYXNKc0NvbmZpZzoic2FzSnNDb25maWciLGRjQWRhcHRlclNldHRpbmdzOiJkY0FkYXB0ZXJTZXR0aW5ncyIsYXBwTG9jOiJhcHBMb2MiLGRjUGF0aDoiZGNQYXRoIixzZWxlY3RlZEFkbWluR3Jv'@; put 'dXA6InNlbGVjdGVkQWRtaW5Hcm91cCJ9LG91dHB1dHM6e29uTmF2aWdhdGVUb0hvbWU6Im9uTmF2aWdhdGVUb0hvbWUifSxkZWNsczo0NCx2YXJzOjExLGNvbnN0czpbWyJjbGFzcyIsImF1dG8tZGVwbG95Iiw0LCJuZ0lmIl0sWzEsInRleHQtY2VudGVyIiwibXktMTUiXSxbImZvciIsImRj'@; put 'bG9jIiwxLCJtdC0yMCIsImNsci1jb250cm9sLWxhYmVsIl0sWzEsIm1iLTEwIiwiY2xyLWNvbnRyb2wtY29udGFpbmVyIl0sWzEsImNsci1pbnB1dC13cmFwcGVyIl0sWzEsIm10LTAiXSxbMSwibWItMTAiLCJjbHItY29udHJvbC1jb250YWluZXIiLCJkYy1sb2MtaW5wdXQtd3JhcHBlciJd'@; put 'LFsxLCJjbHItaW5wdXQtd3JhcHBlciIsInNtYWxsLW10Il0sWyJjbHJJbnB1dCIsIiIsIm5hbWUiLCJkY2xvYyIsMywibmdNb2RlbENoYW5nZSIsIm5nTW9kZWwiXSxbImNsclNlbGVjdCIsIiIsIm5hbWUiLCJvcHRpb25zIiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSIsNCwibmdJZiJd'@; put 'LFsiY2xySW5saW5lIiwiIiwiY2xhc3MiLCJzcGlubmVyLXNtIiw0LCJuZ0lmIl0sWyJmb3IiLCJjb21wdXRlQ29udGV4dCIsMSwibXQtMjAiLCJjbHItY29udHJvbC1sYWJlbCJdLFs0LCJuZ0lmIl0sWzEsImJ0bi1hdXRvZGVwbG95IiwiYnRuIiwiYnRuLXByaW1hcnkiLCJkLWlubGluZS1i'@; put 'bG9jayIsIm1yLTEwIiwzLCJjbGljayJdLFszLCJjbHJNb2RhbE9wZW5DaGFuZ2UiLCJjbHJNb2RhbE9wZW4iLCJjbHJNb2RhbENsb3NhYmxlIl0sWzEsIm1vZGFsLXRpdGxlIl0sWzEsIm1vZGFsLWJvZHkiXSxbMSwibW9kYWwtZm9vdGVyIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJi'@; put 'dG4tc20iLCJidG4tcHJpbWFyeSIsMywiY2xpY2siXSxbMSwiYXV0by1kZXBsb3kiXSxbMSwic3Bpbm5lci1ib3giXSxbMSwic3Bpbm5lciIsInNwaW5uZXItbWQiXSxbMSwibS0wIiwiYWxpZ24tc2VsZi1zdGFydCJdLFsxLCJ3LTEwMCJdLFsiY2xhc3MiLCJkZXBsb3ktc3RhdHVzLXJvdyIs'@; put 'NCwibmdJZiJdLFsxLCJidXR0b25zIl0sWzEsImJ0biIsImJ0bi1wcmltYXJ5IiwibXQtMTUiLCJtci0wIiwzLCJjbGljayJdLFsiY2xhc3MiLCJkZXBsb3ktZXJyb3IiLCJzaGFwZSIsInRpbWVzLWNpcmNsZSIsNCwibmdJZiJdLFsxLCJidG4iLCJidG4tcHJpbWFyeS1vdXRsaW5lIiwibXQt'@; put 'MTUiLCJtci0wIiwzLCJjbGljayJdLFsxLCJidG4iLCJidG4tcHJpbWFyeS1vdXRsaW5lIiwibXQtMTUiLCJtci0wIiwiYWxpZ24tc2VsZi1lbmQiLDMsImNsaWNrIl0sWzEsImRlcGxveS1zdGF0dXMtcm93Il0sWyJjbGFzcyIsImRlcGxveS1zdWNjZXNzIiwic2hhcGUiLCJzdWNjZXNzLXN0'@; put 'YW5kYXJkIiw0LCJuZ0lmIl0sWyJzaGFwZSIsInN1Y2Nlc3Mtc3RhbmRhcmQiLDEsImRlcGxveS1zdWNjZXNzIl0sWyJzaGFwZSIsInRpbWVzLWNpcmNsZSIsMSwiZGVwbG95LWVycm9yIl0sWyJjbHJTZWxlY3QiLCIiLCJuYW1lIiwib3B0aW9ucyIsMywibmdNb2RlbENoYW5nZSIsIm5nTW9k'@; put 'ZWwiXSxbMywidmFsdWUiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFszLCJ2YWx1ZSJdLFsiY2xySW5saW5lIiwiIiwxLCJzcGlubmVyLXNtIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGQsaCl7MSZkJiYoZ3QoMCxqS2UsNCwyLCJkaXYiLDApLGRlKDEsImg0IiwxKSxPZSgyLCJWaXlhIERlcGxveSIp'@; put 'LGhlKCksV3QoMywiaHIiKSxkZSg0LCJsYWJlbCIsMiksT2UoNSwiQXBwIExvYyIpLGhlKCksZGUoNiwiZGl2IiwzKSg3LCJkaXYiLDQpKDgsInAiLDUpLE9lKDkpLGhlKCkoKSgpLGRlKDEwLCJsYWJlbCIsMiksT2UoMTEsIkRDIExvYyIpLGhlKCksZGUoMTIsImRpdiIsNikoMTMsImRpdiIs'@; put 'NykoMTQsImlucHV0Iiw4KSxwaSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24odil7cmV0dXJuIGdpKGguZGNQYXRoLHYpfHwoaC5kY1BhdGg9diksdn0pLGhlKCkoKSgpLGRlKDE1LCJsYWJlbCIsMiksT2UoMTYsIlNBUyBBZG1pbiBncm91cCIpLGhlKCksZGUoMTcsImRpdiIsMykoMTgsImRp'@; put 'diIsNyksZ3QoMTksVUtlLDIsMiwic2VsZWN0Iiw5KSgyMCxaS2UsMSwwLCJjbHItc3Bpbm5lciIsMTApLGhlKCkoKSxkZSgyMSwibGFiZWwiLDExKSxPZSgyMiwiQ29tcHV0ZSBDb250ZXh0IiksaGUoKSxkZSgyMywiZGl2IiwzKSgyNCwiZGl2Iiw3KSxndCgyNSxZS2UsMiwyLCJzZWxlY3Qi'@; put 'LDkpKDI2LEdLZSwxLDAsImNsci1zcGlubmVyIiwxMCksaGUoKSgpLGd0KDI3LCRLZSw3LDEsIm5nLWNvbnRhaW5lciIsMTIpLFd0KDI4LCJociIpLGRlKDI5LCJidXR0b24iLDEzKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGgucnVuQXV0b0RlcGxveSgpfSksT2UoMzAsIiBEZXBs'@; put 'b3lcbiIpLGhlKCksZGUoMzEsImNsci1tb2RhbCIsMTQpLHBpKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKHYpe3JldHVybiBnaShoLnJlY3JlYXRlRGF0YWJhc2VNb2RhbCx2KXx8KGgucmVjcmVhdGVEYXRhYmFzZU1vZGFsPXYpLHZ9KSxkZSgzMiwiaDMiLDE1KSxPZSgzMywiV2Fy'@; put 'bmluZyIpLGhlKCksZGUoMzQsImRpdiIsMTYpLE9lKDM1LCIgVGhpcyBhY3Rpb24gd2lsbCByZWNyZWF0ZSB0aGUgZGF0YWJhc2UgKGlmIGl0IGV4aXN0cykuIEZvciBhbiBpbml0aWFsIGRlcGxveW1lbnQsIHRoaXMgaXMgZXhwZWN0ZWQuIElmIHRoaXMgaXMgYSByZS1kZXBsb3ltZW50LCB5'@; put 'b3Ugd2lsbCBsb3NlIGFueSBleGlzdGluZyB0YWJsZXMgaW4gIiksZGUoMzYsInN0cm9uZyIpLE9lKDM3KSxoZSgpLE9lKDM4LCIuICIpLGhlKCksZGUoMzksImRpdiIsMTcpKDQwLCJidXR0b24iLDE4KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGgucmVjcmVhdGVEYXRhYmFzZU1v'@; put 'ZGFsPSExLGgucmVjcmVhdGVEYXRhYmFzZT0hMX0pLE9lKDQxLCIgQ2FuY2VsICIpLGhlKCksZGUoNDIsImJ1dHRvbiIsMTgpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaC5yZWNyZWF0ZURhdGFiYXNlTW9kYWw9ITEsaC5yZWNyZWF0ZURhdGFiYXNlPSEwfSksT2UoNDMsIiBPayAi'@; put 'KSxoZSgpKCkoKSksMiZkJiYoTWUoIm5nSWYiLGguYXV0b2RlcGxveWluZyksZmUoOSksU3IoaC5hcHBMb2MpLGZlKDUpLGZpKCJuZ01vZGVsIixoLmRjUGF0aCksZmUoNSksTWUoIm5nSWYiLCFoLmFkbWluR3JvdXBzTG9hZGluZyksZmUoKSxNZSgibmdJZiIsaC5hZG1pbkdyb3Vwc0xvYWRp'@; put 'bmcpLGZlKDUpLE1lKCJuZ0lmIiwhaC5jb21wdXRlQ29udGV4dHNMb2FkaW5nKSxmZSgpLE1lKCJuZ0lmIixoLmNvbXB1dGVDb250ZXh0c0xvYWRpbmcpLGZlKCksTWUoIm5nSWYiLGgucnVubmluZ0FzVXNlciksZmUoNCksZmkoImNsck1vZGFsT3BlbiIsaC5yZWNyZWF0ZURhdGFiYXNlTW9k'@; put 'YWwpLE1lKCJjbHJNb2RhbENsb3NhYmxlIiwhMSksZmUoNiksU3IoaC5kY1BhdGgpKX0sZGVwZW5kZW5jaWVzOltRcyxiYSxEMixJMixHbCxrMix0bCxXbyxPbCxydSxZdSxjbyxZMSxFNyxSZF0sZW5jYXBzdWxhdGlvbjoyfSl9fXJldHVybiBjfSkoKTtjb25zdCByJD0oKT0+KHtzdGFuZGFs'@; put 'b25lOiEwfSk7ZnVuY3Rpb24gWEtlKGMsbCl7MSZjJiYoZGUoMCwiZGl2Iiw2KSgxLCJwIiw3KSxPZSgyLCJQbGVhc2UgbG9nIGluIGZpcnN0IiksaGUoKSxkZSgzLCJsYWJlbCIsOCksT2UoNCwiVXNlcm5hbWUiKSxoZSgpLGRlKDUsImRpdiIsOSkoNiwiZGl2IiwxMCksV3QoNywiaW5wdXQi'@; put 'LDExKSxoZSgpKCksZGUoOCwibGFiZWwiLDEyKSxPZSg5LCJQYXNzd29yZCIpLGhlKCksZGUoMTAsImRpdiIsOSkoMTEsImRpdiIsMTApLFd0KDEyLCJpbnB1dCIsMTMpLGhlKCkoKSxkZSgxMywiYnV0dG9uIiwxNCksT2UoMTQsIkxvZyBpbiIpLGhlKCkoKSl9ZnVuY3Rpb24gcUtlKGMsbCl7'@; put 'aWYoMSZjJiYoZGUoMCwib3B0aW9uIiwzNiksT2UoMSksaGUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O01lKCJ2YWx1ZSIsYS5pZCksZmUoKSxMcigiICIsYS5uYW1lLCIgIil9fWZ1bmN0aW9uIEpLZShjLGwpe2lmKDEmYyYmKGRlKDAsInNwYW4iKSxPZSgxKSxoZSgpKSwyJmMpe2Nv'@; put 'bnN0IGE9TGUoKS4kaW1wbGljaXQ7ZmUoKSxMcigiKCAiLGEuYXR0cmlidXRlcy5zeXNVc2VySWQsIiApIil9fWZ1bmN0aW9uIFFLZShjLGwpe2lmKDEmYyYmKGRlKDAsIm9wdGlvbiIsMzYpLE9lKDEpLGd0KDIsSktlLDIsMSwic3BhbiIsNSksUW8oMywianNvbiIpLGhlKCkpLDImYyl7Y29u'@; put 'c3QgYT1sLiRpbXBsaWNpdDtNZSgidmFsdWUiLGEubmFtZSksZmUoKSxMcigiICIsYS5uYW1lLCIgIiksZmUoKSxNZSgibmdJZiIsInt9IiE9QWMoMywzLGEuYXR0cmlidXRlcykpfX1mdW5jdGlvbiBlWGUoYyxsKXsxJmMmJihkZSgwLCJzcGFuIiksT2UoMSwiSlNPTiBTdWJtaXR0ZWQgU3Vj'@; put 'Y2Vzc2Z1bGx5IiksaGUoKSl9ZnVuY3Rpb24gdFhlKGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiYnV0dG9uIiwzNyksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgyKS5kb3dubG9hZFNhc1ByZWNvZGVGaWxlKCkpfSksV3QoMSwiY2xyLWljb24iLDM4'@; put 'KSxoZSgpfX1mdW5jdGlvbiBuWGUoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTthaSgwKSxkZSgxLCJwIiwzOSksT2UoMiwiRmlsZSBleGVjdXRlIGNvbXBsZXRlZCIpLGhlKCksV3QoMywiaHIiKSxkZSg0LCJkaXYiKSg1LCJidXR0b24iLDQwKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7d3Qo'@; put 'YSk7Y29uc3QgaD1MZSgyKTtyZXR1cm4gQ3QoaC5kb3dubG9hZEZpbGUoaC5qb2JMb2csImV4ZWN1dGUtc2NyaXB0LWxvZyIsInR4dCIpKX0pLE9lKDYsIiBEb3dubG9hZCBsb2cgIiksaGUoKSgpLHNpKCl9fWZ1bmN0aW9uIHJYZShjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIsNDQpLE9lKDEp'@; put 'LGhlKCkpLDImYyl7Y29uc3QgYT1MZSgzKTtmZSgpLExyKCIgIixhLm1ha2VEYXRhUmVzcG9uc2UsIiAiKX19ZnVuY3Rpb24gaVhlKGMsbCl7MSZjJiYoYWkoMCksZGUoMSwic3BhbiIsMjUpLE9lKDIsIiBWYWxpZGF0aW5nIGRlcGxveS4uLiAiKSxoZSgpLGRlKDMsInNwYW4iKSxPZSg0LCIg'@; put 'VmFsaWRhdGluZyBkZXBsb3kuLi4gIiksaGUoKSxzaSgpKX1mdW5jdGlvbiBhWGUoYyxsKXsxJmMmJihhaSgwKSxXdCgxLCJjbHItaWNvbiIsNDYpLGRlKDIsInNwYW4iKSxPZSgzLCIgVmFsaWRhdGlvbiBmYWlsZWQgIiksaGUoKSxzaSgpKX1mdW5jdGlvbiBzWGUoYyxsKXsxJmMmJihhaSgw'@; put 'KSxXdCgxLCJjbHItaWNvbiIsNDcpLGRlKDIsInNwYW4iKSxPZSgzLCIgVmFsaWRhdGlvbiBzdWNjZWVkZWQgIiksaGUoKSxzaSgpKX1mdW5jdGlvbiBvWGUoYyxsKXtpZigxJmMmJihkZSgwLCJkaXYiLDQ1KSxndCgxLGlYZSw1LDAsIm5nLWNvbnRhaW5lciIsNSkoMixhWGUsNCwwLCJuZy1j'@; put 'b250YWluZXIiLDUpKDMsc1hlLDQsMCwibmctY29udGFpbmVyIiw1KSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoMyk7ZmUoKSxNZSgibmdJZiIsYS5pc1ZhbGlkYXRpbmcpLGZlKCksTWUoIm5nSWYiLCFhLmlzVmFsaWRhdGluZyYmImVycm9yIj09PWEudmFsaWRhdGlvblN0YXRlKSxmZSgpLE1l'@; put 'KCJuZ0lmIiwhYS5pc1ZhbGlkYXRpbmcmJiJzdWNjZXNzIj09PWEudmFsaWRhdGlvblN0YXRlKX19ZnVuY3Rpb24gbFhlKGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7YWkoMCksZGUoMSwicCIsMzkpLE9lKDIsIkNyZWF0ZSBEYXRhYmFzZSBDb21wbGV0ZWQiKSxoZSgpLFd0KDMsImhyIiks'@; put 'Z3QoNCxyWGUsMiwxLCJkaXYiLDQxKSxkZSg1LCJidXR0b24iLDQyKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKDIpLm5hdmlnYXRlVG9Ib21lKCkpfSksT2UoNiwiIExldCdzIGdldCBzdGFydGVkICIpLGhlKCksZGUoNywiYnV0dG9uIiw0MiksRnQoImNsaWNr'@; put 'IixmdW5jdGlvbigpe3d0KGEpO2NvbnN0IGg9TGUoMik7cmV0dXJuIEN0KGguZG93bmxvYWRGaWxlKGgubWFrZURhdGFSZXNwb25zZSwiY3JlYXRlLWRhdGFiYXNlLWxvZyIsInR4dCIpKX0pLE9lKDgsIiBEb3dubG9hZCBsb2cgIiksaGUoKSxkZSg5LCJidXR0b24iLDQyKSxGdCgiY2xpY2si'@; put 'LGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKDIpLnZhbGlkYXRlRGVwbG95KCkpfSksT2UoMTAsIiBWYWxpZGF0ZSAiKSxoZSgpLGd0KDExLG9YZSw0LDMsImRpdiIsNDMpLHNpKCl9aWYoMiZjKXtjb25zdCBhPUxlKDIpO2ZlKDQpLE1lKCJuZ0lmIixhLm1ha2VEYXRhUmVzcG9uc2Uu'@; put 'bGVuZ3RoPjApLGZlKDcpLE1lKCJuZ0lmIiwibm9uZSIhPT1hLnZhbGlkYXRpb25TdGF0ZXx8YS5pc1ZhbGlkYXRpbmcpfX1mdW5jdGlvbiBjWGUoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTthaSgwKSxkZSgxLCJmb3JtIikoMiwiZGl2IiwxNSkoMywibGFiZWwiLDE2KSxPZSg0LCJBZG1p'@; put 'biBncm91cCIpLGhlKCksZGUoNSwiZGl2IiwxNykoNiwiZGl2IiwxOCkoNywic2VsZWN0IiwxOSkscGkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe3d0KGEpO2NvbnN0IGY9TGUoKTtyZXR1cm4gZ2koZi5zZWxlY3RlZEFkbWluR3JvdXAsaCl8fChmLnNlbGVjdGVkQWRtaW5Hcm91cD1o'@; put 'KSxDdChoKX0pLGd0KDgscUtlLDIsMiwib3B0aW9uIiwyMCksaGUoKSgpKCkoKSxkZSg5LCJkaXYiLDE1KSgxMCwiZGl2IikoMTEsImxhYmVsIiwxNiksT2UoMTIsIkNvbnRleHQiKSxoZSgpLGRlKDEzLCJkaXYiLDE3KSgxNCwiZGl2IiwxOCkoMTUsInNlbGVjdCIsMjEpLHBpKCJuZ01vZGVs'@; put 'Q2hhbmdlIixmdW5jdGlvbihoKXt3dChhKTtjb25zdCBmPUxlKCk7cmV0dXJuIGdpKGYuc2VsZWN0ZWRDb250ZXh0LGgpfHwoZi5zZWxlY3RlZENvbnRleHQ9aCksQ3QoaCl9KSxndCgxNixRS2UsNCw1LCJvcHRpb24iLDIwKSxoZSgpKCkoKSxkZSgxNywiYnV0dG9uIiwyMiksRnQoImNsaWNr'@; put 'IixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgpLmV4ZWN1dGFibGVDb250ZXh0KCkpfSksV3QoMTgsImNsci1pY29uIiwyMyksaGUoKSgpLGRlKDE5LCJkaXYiLDI0KSgyMCwic3BhbiIsMjUpLE9lKDIxLCIgTG9hZGluZyBjb250ZXh0cy4uLiAiKSxoZSgpLGRlKDIyLCJzcGFuIiks'@; put 'T2UoMjMsIiBMb2FkaW5nIGNvbnRleHRzLi4uICIpLGhlKCkoKSxkZSgyNCwibGFiZWwiLDI2KSxPZSgyNSwiREMgTG9jIiksaGUoKSxkZSgyNiwiZGl2Iiw5KSgyNywiZGl2IiwxMCkoMjgsImlucHV0IiwyNykscGkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe3d0KGEpO2NvbnN0IGY9'@; put 'TGUoKTtyZXR1cm4gZ2koZi5kY1BhdGgsaCl8fChmLmRjUGF0aD1oKSxDdChoKX0pLEZ0KCJmb2N1c291dCIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoKS5zYXZlRGNQYXRoKCkpfSksaGUoKSgpKCksZGUoMjksInAiLDI4KSxPZSgzMCwiIFNlbGVjdCBKU09OIGZpbGUgdG8gdXBs'@; put 'b2FkIChqc29uIGJ1aWxkIGZpbGUgcHJlbG9hZGVkKTogIiksaGUoKSxkZSgzMSwiZGl2IiwyOSkoMzIsImlucHV0IiwzMCksRnQoImNsaWNrIixmdW5jdGlvbihoKXtyZXR1cm4gd3QoYSksQ3QoTGUoKS5jbGVhclVwbG9hZElucHV0KGgpKX0pKCJjaGFuZ2UiLGZ1bmN0aW9uKGgpe3JldHVy'@; put 'biB3dChhKSxDdChMZSgpLm9uSnNvbkZpbGVDaGFuZ2UoaCkpfSksaGUoKSgpLGRlKDMzLCJkaXYiLDMxKSgzNCwiYnV0dG9uIiwzMiksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgpLmV4ZWN1dGVKc29uKCkpfSksT2UoMzUsIiBTVUJNSVQgSlNPTiAiKSxoZSgp'@; put 'LGd0KDM2LGVYZSwyLDAsInNwYW4iLDUpLGhlKCksZGUoMzcsInAiLDI4KSxPZSgzOCwiU2VsZWN0IFNBUyBmaWxlIHRvIHVwbG9hZDoiKSxoZSgpLGRlKDM5LCJkaXYiLDI5KSg0MCwiaW5wdXQiLDMwKSxGdCgiY2xpY2siLGZ1bmN0aW9uKGgpe3JldHVybiB3dChhKSxDdChMZSgpLmNsZWFy'@; put 'VXBsb2FkSW5wdXQoaCkpfSkoImNoYW5nZSIsZnVuY3Rpb24oaCl7d3QoYSk7Y29uc3QgZj1MZSgpO3JldHVybiBmLm9uU2FzRmlsZUNoYW5nZShoKSxDdChmLmRvd25sb2FkRmlsZUJ0bj0hMCl9KSxoZSgpLGd0KDQxLHRYZSwyLDAsImJ1dHRvbiIsMzMpLGhlKCksZGUoNDIsImRpdiIsMzEp'@; put 'KDQzLCJidXR0b24iLDM0KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKCkuZXhlY3V0ZVNBUygpKX0pLE9lKDQ0LCIgU1VCTUlUICIpLGhlKCkoKSgpLGd0KDQ1LG5YZSw3LDAsIm5nLWNvbnRhaW5lciIsNSksZGUoNDYsImJ1dHRvbiIsMzUpLEZ0KCJjbGljayIs'@; put 'ZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoKS5jcmVhdGVEYXRhYmFzZSgpKX0pLE9lKDQ3LCIgQ3JlYXRlIERhdGFiYXNlICIpLGhlKCksZ3QoNDgsbFhlLDEyLDIsIm5nLWNvbnRhaW5lciIsNSksaGUoKSxzaSgpfWlmKDImYyl7Y29uc3QgYT1MZSgpO2ZlKDcpLGZpKCJuZ01vZGVs'@; put 'IixhLnNlbGVjdGVkQWRtaW5Hcm91cCksTWUoIm5nTW9kZWxPcHRpb25zIixabygxOSxyJCkpLGZlKCksTWUoIm5nRm9yT2YiLGEuYWRtaW5Hcm91cHMpLGZlKDIpLFRyKCJoaWRkZW4iLGEuY29udGV4dHNMb2FkaW5nKSxmZSg1KSxmaSgibmdNb2RlbCIsYS5zZWxlY3RlZENvbnRleHQpLE1l'@; put 'KCJuZ01vZGVsT3B0aW9ucyIsWm8oMjAsciQpKSxmZSgpLE1lKCJuZ0Zvck9mIixhLmFsbENvbnRleHRzKSxmZSgzKSxUcigiaGlkZGVuIiwhYS5jb250ZXh0c0xvYWRpbmcpLGZlKDkpLGZpKCJuZ01vZGVsIixhLmRjUGF0aCksTWUoIm5nTW9kZWxPcHRpb25zIixabygyMSxyJCkpLGZlKDYp'@; put 'LE1lKCJjbHJMb2FkaW5nIixhLmlzU3VibWl0dGluZ0pzb24pLGZlKDIpLE1lKCJuZ0lmIixhLmlzSnNvblN1Ym1pdHRlZCksZmUoNSksTWUoIm5nSWYiLGEuZG93bmxvYWRGaWxlQnRuKSxmZSgyKSxNZSgiY2xyTG9hZGluZyIsYS5leGVjdXRpbmdTY3JpcHQpLGZlKDIpLE1lKCJuZ0lmIixh'@; put 'LmpvYkxvZy5sZW5ndGg+MCksZmUoKSxNZSgiY2xyTG9hZGluZyIsYS5jcmVhdGVEYXRhYmFzZUxvYWRpbmcpLGZlKDIpLE1lKCJuZ0lmIixhLm1ha2VEYXRhUmVzcG9uc2UubGVuZ3RoPjApfX1sZXQgdVhlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZil7dGhpcy5zYXNTZXJ2'@; put 'aWNlPWEsdGhpcy5ldmVudFNlcnZpY2U9ZCx0aGlzLmxvZ2dlclNlcnZpY2U9aCx0aGlzLmRlcGxveVNlcnZpY2U9Zix0aGlzLnNhc0pzQ29uZmlnPW5ldyB5aC5TQVNqc0NvbmZpZyx0aGlzLm9uTmF2aWdhdGVUb0hvbWU9bmV3IEtyLHRoaXMubmVlZHNMb2dpbj0hMSx0aGlzLmFkbWluR3Jv'@; put 'dXBzPVtdLHRoaXMuYWxsQ29udGV4dHM9W10sdGhpcy5hcHBMb2M9IiIsdGhpcy5kY1BhdGg9IiIsdGhpcy5zZWxlY3RlZEFkbWluR3JvdXA9IiIsdGhpcy5zZWxlY3RlZENvbnRleHQ9IiIsdGhpcy5qb2JMb2c9IiIsdGhpcy5tYWtlRGF0YVJlc3BvbnNlPSIiLHRoaXMubGluZXNPZkNvZGU9'@; put 'W10sdGhpcy5maWxlTmFtZT0iIix0aGlzLnByZWxvYWRlZEZpbGU9ITAsdGhpcy5leGVjdXRlU0FTRW5hYmxlZD0hMSx0aGlzLmNvbnRleHRzTG9hZGluZz0hMSx0aGlzLmNyZWF0ZURhdGFiYXNlTG9hZGluZz0hMSx0aGlzLmV4ZWN1dGluZ1NjcmlwdD0hMSx0aGlzLmRvd25sb2FkRmlsZUJ0'@; put 'bj0hMSx0aGlzLmlzVmFsaWRhdGluZz0hMSx0aGlzLmpzb25GaWxlPW51bGwsdGhpcy5pc1N1Ym1pdHRpbmdKc29uPSExLHRoaXMuaXNKc29uU3VibWl0dGVkPSExLHRoaXMudmFsaWRhdGlvblN0YXRlPSJub25lIn1uZ09uSW5pdCgpe31leGVjdXRhYmxlQ29udGV4dCgpe3JldHVybiBRKGZ1'@; put 'bmN0aW9uKigpe30pKCl9Y2xlYXJVcGxvYWRJbnB1dChhKXt0aGlzLmRlcGxveVNlcnZpY2UuY2xlYXJVcGxvYWRJbnB1dChhKX1vblNhc0ZpbGVDaGFuZ2UoYSl7dGhpcy5wcmVsb2FkZWRGaWxlPSExO2xldCBkPWEudGFyZ2V0LmZpbGVzWzBdO3RoaXMuZmlsZU5hbWU9ZC5uYW1lO2xldCBo'@; put 'PW5ldyBGaWxlUmVhZGVyO2gub25sb2FkPSgpPT57aC5yZXN1bHQmJih0aGlzLmxpbmVzT2ZDb2RlPWgucmVzdWx0LnNwbGl0KCJcbiIpLHRoaXMubGluZXNPZkNvZGU9dGhpcy5saW5lc09mQ29kZS5maWx0ZXIoZj0+IiIhPT1mJiZudWxsIT09ZiksdGhpcy5leGVjdXRlU0FTRW5hYmxlZD0h'@; put 'MCx0aGlzLmFkZFByZWNvZGVMaW5lcygpKX0saC5yZWFkQXNUZXh0KGQpfW9uSnNvbkZpbGVDaGFuZ2UoYSl7dmFyIGQ9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXtsZXQgaD1hLnRhcmdldC5maWxlc1swXTtkLmpzb25GaWxlPXlpZWxkIGQuZGVwbG95U2VydmljZS5yZWFkRmlsZShoKX0p'@; put 'KCl9YWRkUHJlY29kZUxpbmVzKCl7dGhpcy5saW5lc09mQ29kZS51bnNoaWZ0KGAlbGV0IGNvbnRleHQ9JHt0aGlzLnNlbGVjdGVkQ29udGV4dH07YCxgJWxldCBhcHBMb2M9JHt0aGlzLmFwcExvY307YCxgJWxldCBhZG1pbj0ke3RoaXMuc2VsZWN0ZWRBZG1pbkdyb3VwfTtgLGAlbGV0IGRj'@; put 'cGF0aD0ke3RoaXMuZGNQYXRofTtgKX1kb3dubG9hZFNhc1ByZWNvZGVGaWxlKCl7bGV0IGE9dGhpcy5saW5lc09mQ29kZS5qb2luKCJcbiIpLGQ9dGhpcy5maWxlTmFtZS5zcGxpdCgiLiIpWzBdO3RoaXMuZG93bmxvYWRGaWxlKGEsZCwic2FzIil9ZG93bmxvYWRGaWxlKGEsZCxoPSJ0eHQi'@; put 'KXt0aGlzLmRlcGxveVNlcnZpY2UuZG93bmxvYWRGaWxlKGEsZCxoKX1zYXZlRGNQYXRoKCl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oImRlcGxveV9kY19sb2MiLHRoaXMuZGNQYXRoKX1leGVjdXRlSnNvbigpe3ZhciBhPXRoaXM7cmV0dXJuIFEoZnVuY3Rpb24qKCl7YS5pc1N1Ym1pdHRpbmdK'@; put 'c29uPSEwO3RyeXt5aWVsZCBhLnNhc0pzLmRlcGxveVNlcnZpY2VQYWNrKGEuanNvbkZpbGUsYS5kY0FkYXB0ZXJTZXR0aW5ncz8uYXBwTG9jfHwiIix2b2lkIDAsdm9pZCAwLCEwKSxhLmlzSnNvblN1Ym1pdHRlZD0hMH1jYXRjaChkKXtsZXQgaD0iIjtyZXR1cm4gaD0ic3RyaW5nIiE9dHlw'@; put 'ZW9mIGQubWVzc2FnZT9KU09OLnN0cmluZ2lmeShkKS5yZXBsYWNlKC9cXC9nbSwiIik6ZC5tZXNzYWdlLHZvaWQgYS5ldmVudFNlcnZpY2Uuc2hvd0luZm9Nb2RhbCgiRGVwbG95IGVycm9yIixgRXhjZXB0aW9uOiBcbiAkeyIiIT09aD9oOmR9YCl9YS5pc1N1Ym1pdHRpbmdKc29uPSExfSko'@; put 'KX1leGVjdXRlU0FTKCl7dmFyIGE9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXthLmV4ZWN1dGluZ1NjcmlwdD0hMCxhLmpvYkxvZz0iIixhLm1ha2VEYXRhUmVzcG9uc2U9IiI7dHJ5e2xldCBkPXlpZWxkIGEuc2FzSnMuZXhlY3V0ZVNjcmlwdCh7ZmlsZU5hbWU6YS5maWxlTmFtZSxsaW5l'@; put 'c09mQ29kZTphLmxpbmVzT2ZDb2RlLGNvbnRleHROYW1lOmEuc2VsZWN0ZWRDb250ZXh0fSk7YS5sb2dnZXJTZXJ2aWNlLmxvZyhkKSwic3RyaW5nIj09dHlwZW9mIGQubG9nJiYoZC5sb2c9SlNPTi5wYXJzZShkLmxvZykpLCJlcnJvciI9PT1kLmpvYlN0YXR1cz9hbGVydCgiRXJyb3IhIik6'@; put 'YS5qb2JMb2c9ZC5sb2cuaXRlbXM/ZC5sb2cuaXRlbXMubWFwKGg9PmgubGluZSkuam9pbigiXG4iKTpKU09OLnN0cmluZ2lmeShkLmxvZyksYS5leGVjdXRpbmdTY3JpcHQ9ITF9Y2F0Y2h7YS5leGVjdXRpbmdTY3JpcHQ9ITF9fSkoKX1jcmVhdGVEYXRhYmFzZShhPSEwKXtpZihhKXtsZXQg'@; put 'Zj10aGlzLnNhc1NlcnZpY2UuZ2V0U2FzanNDb25maWcoKS5zZXJ2ZXJVcmwrIi9TQVNKb2JFeGVjdXRpb24vP19wcm9ncmFtPSIrdGhpcy5kY0FkYXB0ZXJTZXR0aW5ncz8uYXBwTG9jfHwiL2FkbWluL21ha2VkYXRhJkFETUlOPSIrdGhpcy5zZWxlY3RlZEFkbWluR3JvdXArIiZEQ1BBVEg9'@; put 'Iit0aGlzLmRjUGF0aCsiJl9kZWJ1Zz0xMzEiO3dpbmRvdy5vcGVuKGYsIl9ibGFuayIpfWVsc2UgdGhpcy5jcmVhdGVEYXRhYmFzZUxvYWRpbmc9ITAsdGhpcy5zYXNKcy5yZXF1ZXN0KCJzZXJ2aWNlcy9hZG1pbi9tYWtlZGF0YSIse2Zyb21qczpbe0FETUlOOnRoaXMuc2VsZWN0ZWRBZG1p'@; put 'bkdyb3VwLERDUEFUSDp0aGlzLmRjUGF0aH1dfSx7dXNlQ29tcHV0ZUFwaTpudWxsLGNvbnRleHROYW1lOnRoaXMuc2FzSnNDb25maWcuY29udGV4dE5hbWUsZGVidWc6ITB9LCgpPT57dGhpcy5zYXNTZXJ2aWNlLnNob3VsZExvZ2luLm5leHQoITApfSkudGhlbihmPT57dHJ5e3RoaXMubWFr'@; put 'ZURhdGFSZXNwb25zZT1KU09OLnN0cmluZ2lmeShmKX1jYXRjaHt0aGlzLm1ha2VEYXRhUmVzcG9uc2U9Zn10aGlzLmNyZWF0ZURhdGFiYXNlTG9hZGluZz0hMX0pLmNhdGNoKGY9Pnt0aGlzLmNyZWF0ZURhdGFiYXNlTG9hZGluZz0hMTt0cnl7dGhpcy5tYWtlRGF0YVJlc3BvbnNlPUpTT04u'@; put 'c3RyaW5naWZ5KGYpfWNhdGNoe3RoaXMubWFrZURhdGFSZXNwb25zZT1mfX0pfW5hdmlnYXRlVG9Ib21lKCl7dGhpcy5vbk5hdmlnYXRlVG9Ib21lLmVtaXQoKX12YWxpZGF0ZURlcGxveSgpe3RoaXMuaXNWYWxpZGF0aW5nPSEwLHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJwdWJsaWMvc3Rh'@; put 'cnR1cHNlcnZpY2UiLG51bGwpLnRoZW4oYT0+e3RoaXMubG9nZ2VyU2VydmljZS5sb2coYS5hZGFwdGVyUmVzcG9uc2UpLHRoaXMudmFsaWRhdGlvblN0YXRlPWEuYWRhcHRlclJlc3BvbnNlLnNhc2xpYnM/InN1Y2Nlc3MiOiJlcnJvciIsdGhpcy5pc1ZhbGlkYXRpbmc9ITF9KS5jYXRjaChh'@; put 'PT57dGhpcy5pc1ZhbGlkYXRpbmc9ITEsdGhpcy52YWxpZGF0aW9uU3RhdGU9ImVycm9yIn0pfWRlbGV0ZUtleXMoKXtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiZGVwbG95X2RjX2xvYyIpfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpKCRlKFZv'@; put 'KSwkZShtYyksJGUoU2QpLCRlKGEyZSkpfX1zdGF0aWN7dGhpcy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1siYXBwLW1hbnVhbC1kZXBsb3kiXV0saW5wdXRzOntzYXNKczoic2FzSnMiLHNhc0pzQ29uZmlnOiJzYXNKc0NvbmZpZyIsZGNBZGFwdGVyU2V0dGluZ3M6ImRjQWRh'@; put 'cHRlclNldHRpbmdzIn0sb3V0cHV0czp7b25OYXZpZ2F0ZVRvSG9tZToib25OYXZpZ2F0ZVRvSG9tZSJ9LGRlY2xzOjksdmFyczozLGNvbnN0czpbWzEsImNhcmQtaGVhZGVyIiwicG9zaXRpb24tcmVsYXRpdmUiXSxbMSwiZC1pbmxpbmUtYmxvY2siLCJtbC0xMCIsIm1iLTEwIiwibXQtMCJd'@; put 'LFsxLCJidG4iLCJidG4tcHJpbWFyeSIsImNsZWFyLW1lbW9yeS1idXR0b24iLCJwb3NpdGlvbi1hYnNvbHV0ZSIsMywiY2xpY2siXSxbMSwiY2FyZC1ibG9jayJdLFsiaWQiLCJsb2dpbkZvcm0iLCJjbGFzcyIsImQtbm9uZSIsNCwibmdJZiJdLFs0LCJuZ0lmIl0sWyJpZCIsImxvZ2luRm9y'@; put 'bSIsMSwiZC1ub25lIl0sWzEsIm1iLTEwIl0sWyJmb3IiLCJ1c2VybmFtZSIsMSwiY2xyLWNvbnRyb2wtbGFiZWwiXSxbMSwibWItMTAiLCJjbHItY29udHJvbC1jb250YWluZXIiXSxbMSwiY2xyLWlucHV0LXdyYXBwZXIiXSxbInR5cGUiLCJ0ZXh0IiwiaWQiLCJ1c2VybmFtZSIsMSwiY2xy'@; put 'LWlucHV0Il0sWyJmb3IiLCJwYXNzd29yZCIsMSwiY2xyLWNvbnRyb2wtbGFiZWwiXSxbInR5cGUiLCJwYXNzd29yZCIsImlkIiwicGFzc3dvcmQiLDEsImNsci1pbnB1dCJdLFsiaWQiLCJsb2dpbkJ0biIsMSwiYnRuIiwiYnRuLXByaW1hcnkiLCJkLW5vbmUiXSxbMSwiY2xyLWZvcm0tY29u'@; put 'dHJvbCJdLFsiZm9yIiwic2VsZWN0LWZ1bGwiLDEsImNsci1jb250cm9sLWxhYmVsIl0sWzEsImNsci1jb250cm9sLWNvbnRhaW5lciJdLFsxLCJjbHItc2VsZWN0LXdyYXBwZXIiXSxbIm5hbWUiLCJzZWxlY3RlZEFkbWluR3JvdXAiLCJpZCIsImFkbWluR3JvdXBzU2VsZWN0IiwxLCJjbHIt'@; put 'c2VsZWN0IiwzLCJuZ01vZGVsQ2hhbmdlIiwibmdNb2RlbCIsIm5nTW9kZWxPcHRpb25zIl0sWzMsInZhbHVlIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbIm5hbWUiLCJzZWxlY3RlZENvbnRleHQiLDEsImNsci1zZWxlY3QiLDMsIm5nTW9kZWxDaGFuZ2UiLCJuZ01vZGVsIiwibmdNb2RlbE9w'@; put 'dGlvbnMiXSxbInR5cGUiLCJidXR0b24iLCJpZCIsImNvbnRleHRzLWJ0biIsMSwiYnRuIiwiYnRuLWljb24iLDMsImNsaWNrIl0sWyJzaGFwZSIsInBsYXkiXSxbMSwiZC1mbGV4Il0sWzEsInNwaW5uZXIiLCJzcGlubmVyLWlubGluZSIsIm1yLTEwIl0sWyJmb3IiLCJkY2xvYyIsMSwibXQt'@; put 'MjAiLCJjbHItY29udHJvbC1sYWJlbCJdLFsibmFtZSIsImRjUGF0aCIsInR5cGUiLCJ0ZXh0IiwiaWQiLCJkY2xvYyIsMSwiY2xyLWlucHV0IiwzLCJuZ01vZGVsQ2hhbmdlIiwiZm9jdXNvdXQiLCJuZ01vZGVsIiwibmdNb2RlbE9wdGlvbnMiXSxbMSwibXQtMTAiXSxbMSwiZC1mbGV4Iiwi'@; put 'ZmxleC1jb2x1bW4iXSxbInR5cGUiLCJmaWxlIiwzLCJjbGljayIsImNoYW5nZSJdLFsxLCJtdC0yMCIsImQtZmxleCIsImFsaWduLWl0ZW1zLWNlbnRlciJdLFsiaWQiLCIiLDEsIm10LTAiLDMsImNsaWNrIiwiY2xyTG9hZGluZyJdLFsiY2xhc3MiLCJidG4gYnRuLXNtIGJ0bi1pY29uIG1p'@; put 'bi13LTAgdy00MCIsMywiY2xpY2siLDQsIm5nSWYiXSxbImlkIiwiZGVwbG95IiwxLCJtdC0wIiwzLCJjbGljayIsImNsckxvYWRpbmciXSxbMSwiYnRuIiwiYnRuLXByaW1hcnkiLCJtdC0xMCIsMywiY2xpY2siLCJjbHJMb2FkaW5nIl0sWzMsInZhbHVlIl0sWzEsImJ0biIsImJ0bi1zbSIs'@; put 'ImJ0bi1pY29uIiwibWluLXctMCIsInctNDAiLDMsImNsaWNrIl0sWyJzaGFwZSIsImRvd25sb2FkIl0sWzEsIm1iLTAiLCJtdC0xMCJdLFsxLCJidG4iLCJidG4tcHJpbWFyeSIsIm10LTAiLCJtci0yMCIsMywiY2xpY2siXSxbImNsYXNzIiwibG9nLXdyYXBwZXIiLDQsIm5nSWYiXSxbMSwi'@; put 'YnRuIiwiYnRuLXByaW1hcnkiLCJtdC0xNSIsMywiY2xpY2siXSxbImNsYXNzIiwidmFsaWRhdGlvbi1iYXIiLDQsIm5nSWYiXSxbMSwibG9nLXdyYXBwZXIiXSxbMSwidmFsaWRhdGlvbi1iYXIiXSxbInNoYXBlIiwiZXhjbGFtYXRpb24tY2lyY2xlIiwxLCJpcy1lcnJvciJdLFsic2hhcGUi'@; put 'LCJjaGVjay1jaXJjbGUiLDEsImlzLXN1Y2Nlc3MiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZCxoKXsxJmQmJihkZSgwLCJkaXYiLDApLE9lKDEsIiBDb25maWd1cmF0b3IgIiksZGUoMiwicCIsMSksT2UoMyksaGUoKSxkZSg0LCJidXR0b24iLDIpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1'@; put 'cm4gaC5kZWxldGVLZXlzKCl9KSxPZSg1LCIgQ2xlYXIgbWVtb3J5ICIpLGhlKCkoKSxkZSg2LCJkaXYiLDMpLGd0KDcsWEtlLDE1LDAsImRpdiIsNCkoOCxjWGUsNDksMjIsIm5nLWNvbnRhaW5lciIsNSksaGUoKSksMiZkJiYoZmUoMyksTHIoIkFwcCBMb2NhdGlvbjogIixoLmFwcExvYywi'@; put 'IiksZmUoNCksTWUoIm5nSWYiLGgubmVlZHNMb2dpbiksZmUoKSxNZSgibmdJZiIsIWgubmVlZHNMb2dpbikpfSxkZXBlbmRlbmNpZXM6W1FzLGJhLGw3LEQyLEkyLEdsLGsyLHRsLHM3LFdvLHdwLE9sLFYwLEgyLGNvLGlaXSxlbmNhcHN1bGF0aW9uOjJ9KX19cmV0dXJuIGN9KSgpO2Z1bmN0'@; put 'aW9uIGRYZShjLGwpezEmYyYmKGRlKDAsImRpdiIsMTUpLFd0KDEsInByb2dyZXNzIiksaGUoKSl9ZnVuY3Rpb24gaFhlKGMsbCl7aWYoMSZjJiYoZGUoMCwib3B0aW9uIiwxNiksT2UoMSksaGUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O01lKCJ2YWx1ZSIsYS5HUk9VUE5BTUUpLGZl'@; put 'KCksQnUoIiAiLGEuR1JPVVBOQU1FLCIgLSAiLGEuR1JPVVBERVNDLCIgIil9fWxldCBmWGU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCl7dGhpcy5zYXNTZXJ2aWNlPWEsdGhpcy5zYXNqc1NlcnZpY2U9ZCx0aGlzLmxvY2F0aW9uPWgsdGhpcy5zYXNKc0NvbmZpZz1uZXcgeWgu'@; put 'U0FTanNDb25maWcsdGhpcy5vbk5hdmlnYXRlVG9Ib21lPW5ldyBLcix0aGlzLmRjRGlyZWN0b3J5PSIiLHRoaXMuZGNBZG1pbkdyb3VwPSJEQ0RFRkFVTFQiLHRoaXMuTUVUQVBFUlNPTj0ibi9hIix0aGlzLk1FVEFVU0VSPSJuL2EiLHRoaXMuU1lTVVNFUklEPSJuL2EiLHRoaXMuU1lTSE9T'@; put 'VE5BTUU9Im4vYSIsdGhpcy5TWVNWTE9ORz0ibi9hIix0aGlzLmRjQWRtaW5Hcm91cExpc3Q9W10sdGhpcy5sb2FkaW5nPSExLHRoaXMuc2hvd0xvZ291dD0hMSx0aGlzLnRtcERpcmVjdG9yaWVzPXtsaW51eDoiL3RtcC9EYXRhQ29udHJvbGxlciIsd2luZG93czoiQzpcXERhdGFDb250cm9s'@; put 'bGVyIn19bmdPbkluaXQoKXt0aGlzLmdldFVzZXJHcm91cHMoKSx0aGlzLmdldFNlcnZlckluZm8oKX1nZXRTZXJ2ZXJJbmZvKCl7dGhpcy5zYXNqc1NlcnZpY2UuZ2V0U2VydmVySW5mbygpLnN1YnNjcmliZShhPT57ImRlc2t0b3AiIT09YS5tb2RlJiYodGhpcy5zaG93TG9nb3V0PSEwKX0p'@; put 'fWdldFVzZXJHcm91cHMoKXt0aGlzLmxvYWRpbmc9ITAsdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInVzZXJuYXYvdXNlcmdyb3Vwc2J5bWVtYmVyIixudWxsKS50aGVuKGE9Pnt0aGlzLk1FVEFQRVJTT049YS5hZGFwdGVyUmVzcG9uc2UuTUZfR0VUVVNFUix0aGlzLlNZU1VTRVJJRD1hLmFk'@; put 'YXB0ZXJSZXNwb25zZS5TWVNVU0VSSUQsdGhpcy5TWVNIT1NUTkFNRT1hLmFkYXB0ZXJSZXNwb25zZS5TWVNIT1NUTkFNRSx0aGlzLlNZU1ZMT05HPWEuYWRhcHRlclJlc3BvbnNlLlNZU1ZMT05HLHRoaXMuZGNEaXJlY3Rvcnk9dGhpcy50bXBEaXJlY3Rvcmllc1tbIkwiLCJIIiwiQSIsIlMi'@; put 'XS5pbmNsdWRlcyhhLmFkYXB0ZXJSZXNwb25zZS5TWVNTQ1BMLnN1YnN0cmluZygwLDEpKT8ibGludXgiOiJ3aW5kb3dzIl0sdGhpcy5kY0FkbWluR3JvdXBMaXN0PWEuYWRhcHRlclJlc3BvbnNlLmdyb3Vwcyx0aGlzLmRjQWRtaW5Hcm91cD10aGlzLmRjQWRtaW5Hcm91cExpc3RbMF0uR1JP'@; put 'VVBOQU1FLHRoaXMubG9hZGluZz0hMX0sYT0+e3RoaXMubG9hZGluZz0hMX0pfW1ha2VEYXRhKCl7bGV0IGQ9dGhpcy5zYXNTZXJ2aWNlLmdldEV4ZWN1dGlvblBhdGgoKTtjb25zdCBoPXRoaXMuc2FzSnNDb25maWcuYXBwTG9jO2xldCBmPXRoaXMuc2FzSnNDb25maWcuc2VydmVyVXJsLHY9'@; put 'dGhpcy5kY0RpcmVjdG9yeTt0aGlzLnNhc0pzQ29uZmlnLnNlcnZlclR5cGU9PT1OMC5ZLlNhc2pzP3RoaXMuc2FzU2VydmljZS5zYXNqc01ha2VkYXRhQ2hlY2tpbmcoKS50aGVuKEk9PntJJiYodGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUoIi8iKSxsb2NhdGlvbi5yZWxvYWQoKSl9KTp0'@; put 'aGlzLnNhc0pzQ29uZmlnLnNlcnZlclR5cGU9PT1OMC5ZLlNhczkmJihmPSIiLGQ9d2luZG93LmxvY2F0aW9uLm9yaWdpbitkKyIvIix2PWVuY29kZVVSSUNvbXBvbmVudCh0aGlzLmRjRGlyZWN0b3J5KSksd2luZG93Lm9wZW4oYCR7Znx8IiJ9JHtkfT9fcHJvZ3JhbT0ke2h9L3NlcnZpY2Vz'@; put 'L2FkbWluL21ha2VkYXRhJmFkbWluPSR7dGhpcy5kY0FkbWluR3JvdXB9JnBhdGg9JHt2fSBgLCJfYmxhbmsiKX1sb2dvdXQoKXt0aGlzLnNhc1NlcnZpY2UubG9nb3V0KCl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUoVm8pLCRlKEtjZSks'@; put 'JGUocGgpKX19c3RhdGlje3RoaXMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImFwcC1zYXNqcy1jb25maWd1cmF0b3IiXV0saW5wdXRzOntzYXNKczoic2FzSnMiLHNhc0pzQ29uZmlnOiJzYXNKc0NvbmZpZyIsZGNBZGFwdGVyU2V0dGluZ3M6ImRjQWRhcHRlclNldHRpbmdz'@; put 'In0sb3V0cHV0czp7b25OYXZpZ2F0ZVRvSG9tZToib25OYXZpZ2F0ZVRvSG9tZSJ9LGRlY2xzOjQ0LHZhcnM6MTAsY29uc3RzOltbImNsYXNzIiwidGhpblByb2dyZXNzIHByb2dyZXNTdGF0aWMgcHJvZ3Jlc3MgbG9vcCIsNCwibmdJZiJdLFsxLCJ0ZXh0LWNlbnRlciIsIm15LTE1Il0sWzEs'@; put 'ImxpZ2h0Il0sWzEsIm0tMCJdLFsxLCJtLTAiLCJtdC0xMCJdLFsxLCJtdC0yMCIsImNsci1jb250cm9sLWxhYmVsIl0sWzEsIm1iLTEwIiwiY2xyLWNvbnRyb2wtY29udGFpbmVyIl0sWzEsImNsci1pbnB1dC13cmFwcGVyIl0sWyJwbGFjZWhvbGRlciIsIlR5cGUgaW4gZGlyZWN0b3J5Iiwx'@; put 'LCJjbHItaW5wdXQiLDMsIm5nTW9kZWxDaGFuZ2UiLCJuZ01vZGVsIl0sWzEsIm1iLTEwIiwibXQtMCIsInctNTB2dyJdLFsiY2xyU2VsZWN0IiwiIiwzLCJuZ01vZGVsQ2hhbmdlIiwibmdNb2RlbCJdLFszLCJ2YWx1ZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImNsci1mbGV4Il0sWzEs'@; put 'ImJ0biIsImJ0bi1zdWNjZXNzIiwibXQtMTUiLCJ0ZXh0LWNlbnRlciIsMywiY2xpY2siXSxbMSwiY2FyZC10ZXh0IiwicGItMTAiXSxbMSwidGhpblByb2dyZXNzIiwicHJvZ3Jlc1N0YXRpYyIsInByb2dyZXNzIiwibG9vcCJdLFszLCJ2YWx1ZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihkLGgp'@; put 'ezEmZCYmKGd0KDAsZFhlLDIsMCwiZGl2IiwwKSxkZSgxLCJoNCIsMSksT2UoMiwiU2FzanMgRGVwbG95IiksaGUoKSxXdCgzLCJociIsMiksZGUoNCwicCIsMyksT2UoNSwiIFRvIGNvbmZpZ3VyZSBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YTksIHBsZWFzZSBwcm92aWRlIHRoZSBmb2xs'@; put 'b3dpbmcgZGV0YWlsczpcbiIpLGhlKCksZGUoNiwicCIsNCksT2UoNywiIFBsZWFzZSBzcGVjaWZ5IGEgcGh5c2ljYWwgZGlyZWN0b3J5IChvbiB0aGUgIiksZGUoOCwic3Ryb25nIiksT2UoOSksaGUoKSxPZSgxMCwiIGNvbXB1dGUgc2VydmVyKSBiZWxvdywgdG8gd2hpY2ggdXNlciAiKSxk'@; put 'ZSgxMSwic3Ryb25nIiksT2UoMTIpLGhlKCksT2UoMTMsIiBjYW4gd3JpdGUsIG9uIGJlaGFsZiBvZiBEYXRhIENvbnRyb2xsZXIuXG4iKSxoZSgpLGRlKDE0LCJsYWJlbCIsNSksT2UoMTUsIkRDIFN0YWdpbmcgRGlyZWN0b3J5IiksaGUoKSxkZSgxNiwiZGl2Iiw2KSgxNywiZGl2Iiw3KSgx'@; put 'OCwiaW5wdXQiLDgpLHBpKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih2KXtyZXR1cm4gZ2koaC5kY0RpcmVjdG9yeSx2KXx8KGguZGNEaXJlY3Rvcnk9diksdn0pLGhlKCkoKSgpLGRlKDE5LCJwIiw0KSxPZSgyMCwiIEJlbG93IGFyZSB0aGUgbGlzdCBvZiBncm91cHMgdG8gd2hpY2ggeW91'@; put 'IGJlbG9uZy4gVGhlIGdyb3VwIHlvdSBzZWxlY3Qgd2lsbCBiZWNvbWUgdGhlIERhdGEgQ29udHJvbGxlciBBZG1pbiBHcm91cCwgYW5kIGV2ZXJ5b25lIGluIGl0IHdpbGwgaGF2ZSB1bnJlc3RyaWN0ZWQgYWNjZXNzIHRvIERhdGEgQ29udHJvbGxlci5cbiIpLGhlKCksZGUoMjEsImxhYmVs'@; put 'Iiw1KSxPZSgyMiwiRGF0YSBDb250cm9sbGVyIEFkbWluIGdyb3VwIiksaGUoKSxkZSgyMywiY2xyLXNlbGVjdC1jb250YWluZXIiLDkpKDI0LCJzZWxlY3QiLDEwKSxwaSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24odil7cmV0dXJuIGdpKGguZGNBZG1pbkdyb3VwLHYpfHwoaC5kY0FkbWlu'@; put 'R3JvdXA9diksdn0pLGd0KDI1LGhYZSwyLDMsIm9wdGlvbiIsMTEpLGhlKCkoKSxkZSgyNiwicCIsNCksT2UoMjcsIiBOb3csIGNyZWF0ZSB0aGUgdGFyZ2V0IGRpcmVjdG9yeSBhbmQgZGVwbG95IHRoZSBjb250cm9sIGxpYnJhcnkgdXNpbmcgdGhlIGFkbWluIGdyb3VwIHNlbGVjdGVkIGFi'@; put 'b3ZlOlxuIiksaGUoKSxkZSgyOCwiZGl2IiwxMikoMjksImJ1dHRvbiIsMTMpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaC5tYWtlRGF0YSgpfSksT2UoMzAsIiBTVUJNSVQgIiksaGUoKSgpLFd0KDMxLCJociIsMiksZGUoMzIsImRpdiIsMTQpKDMzLCJwIiksT2UoMzQsIllvdSBh'@; put 'cmUgY29ubmVjdGVkIHdpdGggdGhlIGZvbGxvd2luZyBjcmVkZW50aWFsczoiKSxoZSgpLGRlKDM1LCJ1bCIpKDM2LCJsaSIpLE9lKDM3KSxoZSgpLGRlKDM4LCJsaSIpLE9lKDM5KSxoZSgpLGRlKDQwLCJsaSIpLE9lKDQxKSxoZSgpLGRlKDQyLCJsaSIpLE9lKDQzKSxoZSgpKCkoKSksMiZk'@; put 'JiYoTWUoIm5nSWYiLGgubG9hZGluZyksZmUoOSksTHIoIiAiLGguU1lTSE9TVE5BTUUsIiIpLGZlKDMpLFNyKGguU1lTVVNFUklEKSxmZSg2KSxmaSgibmdNb2RlbCIsaC5kY0RpcmVjdG9yeSksZmUoNiksZmkoIm5nTW9kZWwiLGguZGNBZG1pbkdyb3VwKSxmZSgpLE1lKCJuZ0Zvck9mIixo'@; put 'LmRjQWRtaW5Hcm91cExpc3QpLGZlKDEyKSxMcigiTUVUQVBFUlNPTjogIixoLk1FVEFQRVJTT04sIiIpLGZlKDIpLExyKCJTWVNVU0VSSUQ6ICIsaC5TWVNVU0VSSUQsIiIpLGZlKDIpLExyKCJTWVNIT1NUTkFNRTogIixoLlNZU0hPU1ROQU1FLCIiKSxmZSgyKSxMcigiU1lTVkxPTkc6ICIs'@; put 'aC5TWVNWTE9ORywiIikpfSxkZXBlbmRlbmNpZXM6W1FzLGJhLEQyLEkyLEdsLGsyLHRsLFdvLGNvLEU3LFpiXSxlbmNhcHN1bGF0aW9uOjJ9KX19cmV0dXJuIGN9KSgpO2Z1bmN0aW9uIHBYZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImRpdiIsNCkoMSwiZGl2Iiw1KSxPZSgy'@; put 'LCJUZXJtcyBhbmQgQ29uZGl0aW9ucyIpLGhlKCksZGUoMywiZGl2Iiw2KSg0LCJkaXYiLDcpKDUsInAiLDgpLE9lKDYsIiBUaGUgRGVtbyB2ZXJzaW9uIG9mIERhdGEgQ29udHJvbGxlciBpcyBmcmVlIGZvciBFVkFMVUFUSU9OIHB1cnBvc2VzIG9ubHkuIEJlZm9yZSBwcm9jZWVkaW5nIHdp'@; put 'dGggY29uZmlndXJhdGlvbiwgcGxlYXNlIGNvbmZpcm0gdGhhdCB5b3UgaGF2ZSByZWFkLCB1bmRlcnN0b29kLCBhbmQgYWdyZWVkIHRvIHRoZSAiKSxkZSg3LCJhIiw5KSxPZSg4LCJEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YTkgRXZhbHVhdGlvbiBBZ3JlZW1lbnQiKSxoZSgpLE9lKDks'@; put 'Ii4gIiksaGUoKSgpLFd0KDEwLCJociIsMTApLGRlKDExLCJjbHItY2hlY2tib3gtd3JhcHBlciIpKDEyLCJpbnB1dCIsMTEpLEZ0KCJjaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKCkudGVybXNBZ3JlZUNoYW5nZSgpKX0pLGhlKCksZGUoMTMsImxhYmVsIiksT2UoMTQs'@; put 'IkkgaGF2ZSByZWFkIGFuZCBhZ3JlZSB0byB0aGUgdGVybXMgb2YgdGhlICIpLGRlKDE1LCJhIiw5KSxPZSgxNiwiRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGE5IEV2YWx1YXRpb24gQWdyZWVtZW50IiksaGUoKSgpKCkoKSgpfX1mdW5jdGlvbiBnWGUoYyxsKXtpZigxJmMpe2NvbnN0IGE9'@; put 'T24oKTtkZSgwLCJkaXYiLDE2KSgxLCJhcHAtYXV0b21hdGljLWRlcGxveSIsMTcpLEZ0KCJvbk5hdmlnYXRlVG9Ib21lIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgzKS5vbk5hdmlnYXRlVG9Ib21lKCkpfSksaGUoKSgpfWlmKDImYyl7Y29uc3QgYT1MZSgzKTtmZSgpLE1lKCJz'@; put 'YXNKcyIsYS5zYXNKcykoInNhc0pzQ29uZmlnIixhLnNhc0pzQ29uZmlnKSgiZGNBZGFwdGVyU2V0dGluZ3MiLGEuZGNBZGFwdGVyU2V0dGluZ3MpKCJhcHBMb2MiLGEuYXBwTG9jKSgiZGNQYXRoIixhLmRjUGF0aCkoInNlbGVjdGVkQWRtaW5Hcm91cCIsYS5zZWxlY3RlZEFkbWluR3JvdXAp'@; put 'fX1mdW5jdGlvbiBtWGUoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJkaXYiLDE4KSgxLCJhcHAtbWFudWFsLWRlcGxveSIsMTkpLEZ0KCJvbk5hdmlnYXRlVG9Ib21lIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgzKS5vbk5hdmlnYXRlVG9Ib21lKCkpfSksaGUoKSgp'@; put 'fWlmKDImYyl7Y29uc3QgYT1MZSgzKTtmZSgpLE1lKCJzYXNKcyIsYS5zYXNKcykoInNhc0pzQ29uZmlnIixhLnNhc0pzQ29uZmlnKSgiZGNBZGFwdGVyU2V0dGluZ3MiLGEuZGNBZGFwdGVyU2V0dGluZ3MpfX1mdW5jdGlvbiB2WGUoYyxsKXtpZigxJmMmJihhaSgwKSxndCgxLGdYZSwyLDYs'@; put 'ImRpdiIsMTQpKDIsbVhlLDIsMywiZGl2IiwxNSksc2koKSksMiZjKXtjb25zdCBhPUxlKDIpO2ZlKCksTWUoIm5nSWYiLGEuYXV0b2RlcGxveSksZmUoKSxNZSgibmdJZiIsIWEuYXV0b2RlcGxveSl9fWZ1bmN0aW9uIHlYZShjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2FpKDApLGRlKDEs'@; put 'ImRpdiIsMTYpKDIsImFwcC1zYXNqcy1jb25maWd1cmF0b3IiLDE5KSxGdCgib25OYXZpZ2F0ZVRvSG9tZSIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoMikub25OYXZpZ2F0ZVRvSG9tZSgpKX0pLGhlKCkoKSxzaSgpfWlmKDImYyl7Y29uc3QgYT1MZSgyKTtmZSgyKSxNZSgic2Fz'@; put 'SnMiLGEuc2FzSnMpKCJzYXNKc0NvbmZpZyIsYS5zYXNKc0NvbmZpZykoImRjQWRhcHRlclNldHRpbmdzIixhLmRjQWRhcHRlclNldHRpbmdzKX19ZnVuY3Rpb24gYlhlKGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7YWkoMCksZGUoMSwiZGl2IiwxNikoMiwiYXBwLXNhc2pzLWNvbmZpZ3Vy'@; put 'YXRvciIsMTkpLEZ0KCJvbk5hdmlnYXRlVG9Ib21lIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgyKS5vbk5hdmlnYXRlVG9Ib21lKCkpfSksaGUoKSgpLHNpKCl9aWYoMiZjKXtjb25zdCBhPUxlKDIpO2ZlKDIpLE1lKCJzYXNKcyIsYS5zYXNKcykoInNhc0pzQ29uZmlnIixhLnNh'@; put 'c0pzQ29uZmlnKSgiZGNBZGFwdGVyU2V0dGluZ3MiLGEuZGNBZGFwdGVyU2V0dGluZ3MpfX1mdW5jdGlvbiBfWGUoYyxsKXtpZigxJmMmJihhaSgwLDEyKSxndCgxLHZYZSwzLDIsIm5nLWNvbnRhaW5lciIsMTMpKDIseVhlLDMsMywibmctY29udGFpbmVyIiwxMykoMyxiWGUsMywzLCJuZy1j'@; put 'b250YWluZXIiLDEzKSxzaSgpKSwyJmMpe2NvbnN0IGE9TGUoKTtNZSgibmdTd2l0Y2giLCEwKSxmZSgpLE1lKCJuZ1N3aXRjaENhc2UiLGEuc2FzSnNDb25maWcuc2VydmVyVHlwZT09PWEuU2VydmVyVHlwZS5TYXNWaXlhKSxmZSgpLE1lKCJuZ1N3aXRjaENhc2UiLGEuc2FzSnNDb25maWcu'@; put 'c2VydmVyVHlwZT09PWEuU2VydmVyVHlwZS5TYXNqcyksZmUoKSxNZSgibmdTd2l0Y2hDYXNlIixhLnNhc0pzQ29uZmlnLnNlcnZlclR5cGU9PT1hLlNlcnZlclR5cGUuU2FzOSl9fWxldCBjMmU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmKXt0aGlzLmFwcFN0b3JlU2Vydmlj'@; put 'ZT1hLHRoaXMuc2FzU2VydmljZT1kLHRoaXMubG9nZ2VyU2VydmljZT1oLHRoaXMucm91dGVyPWYsdGhpcy5zdGVwPTAsdGhpcy5hZG1pbkdyb3Vwcz1bXSx0aGlzLmNsaWVudF9pZD0iIix0aGlzLmNsaWVudF9zZWNyZXQ9IiIsdGhpcy5hcHBMb2M9IiIsdGhpcy5kY1BhdGg9IiIsdGhpcy5z'@; put 'ZWxlY3RlZEFkbWluR3JvdXA9IiIsdGhpcy5hdXRvZGVwbG95PSEwLHRoaXMuanNvbkZpbGU9bnVsbCx0aGlzLnNhc0pzQ29uZmlnPW5ldyB5aC5TQVNqc0NvbmZpZyx0aGlzLlNlcnZlclR5cGU9TjAuWSx0aGlzLmRjQWRhcHRlclNldHRpbmdzPXRoaXMuYXBwU3RvcmVTZXJ2aWNlLmdldERj'@; put 'QWRhcHRlclNldHRpbmdzKCksdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCJtYW51YWxkZXBsb3kiKSYmKHRoaXMuYXV0b2RlcGxveT0hMSksdGhpcy5zYXNKcz10aGlzLnNhc1NlcnZpY2UuZ2V0U2FzanNJbnN0YW5jZSgpLHRoaXMuc2FzSnNDb25maWc9dGhpcy5zYXNTZXJ2aWNlLmdldFNh'@; put 'c2pzQ29uZmlnKCksdGhpcy5hcHBMb2M9dGhpcy5kY0FkYXB0ZXJTZXR0aW5ncz8uYXBwTG9jfHwiIix0aGlzLmNsaWVudF9pZD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiZGVwbG95X2NsaWVudF9pZCIpfHwiIix0aGlzLmNsaWVudF9zZWNyZXQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oImRlcGxv'@; put 'eV9zZWNyZXRfa2V5Iil8fCIiLHRoaXMuZGNQYXRoPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJkZXBsb3lfZGNfbG9jIil8fCIifW5nT25Jbml0KCl7dGhpcy5zZXREZXBsb3lEZWZhdWx0cygpfXNldERlcGxveURlZmF1bHRzKCl7dGhpcy5kY1BhdGg9dGhpcy5kY0FkYXB0ZXJTZXR0aW5ncz8u'@; put 'ZGNQYXRofHwiIix0aGlzLnNlbGVjdGVkQWRtaW5Hcm91cD10aGlzLmRjQWRhcHRlclNldHRpbmdzPy5hZG1pbkdyb3VwfHwiIix0aGlzLnNlbGVjdGVkQWRtaW5Hcm91cHx8KHRoaXMuc2VsZWN0ZWRBZG1pbkdyb3VwPSJTQVNBZG1pbmlzdHJhdG9ycyIpfXRlcm1zQWdyZWVDaGFuZ2UoKXt0'@; put 'aGlzLmF1dG9kZXBsb3l8fHRoaXMuZ2V0QWRtaW5Hcm91cHMoKSx0aGlzLnN0ZXArK31nZXRBZG1pbkdyb3Vwcygpe2ZldGNoKHRoaXMuc2FzSnNDb25maWcuc2VydmVyVXJsKyIvaWRlbnRpdGllcy9ncm91cHM/c29ydEJ5PW5hbWUmbGltaXQ9NTAwMCIse2hlYWRlcnM6e0FjY2VwdDoiYXBw'@; put 'bGljYXRpb24vanNvbiJ9fSkudGhlbihhPT5hLnRleHQoKSkudGhlbihhPT57bGV0IGQ7dHJ5e2Q9SlNPTi5wYXJzZShhKX1jYXRjaChoKXtjb25zb2xlLmVycm9yKGgpfWQmJih0aGlzLmFkbWluR3JvdXBzPWQuaXRlbXMsdGhpcy5zZWxlY3RlZEFkbWluR3JvdXA9dGhpcy5hZG1pbkdyb3Vw'@; put 'c1swXS5pZCl9KX1vbk5hdmlnYXRlVG9Ib21lKCl7d2luZG93Lm9wZW4obG9jYXRpb24uaHJlZi5zcGxpdCgiIyIpWzBdLCJfYmxhbmsiKX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKSgkZShROCksJGUoVm8pLCRlKFNkKSwkZShMbykpfX1zdGF0'@; put 'aWN7dGhpcy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1siYXBwLWRlcGxveSJdXSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6NCx2YXJzOjIsY29uc3RzOltbMSwiY29udGVudC1hcmVhIiwicG9zaXRpb24tcmVsYXRpdmUiXSxbMSwiY2xyLXJvdyJd'@; put 'LFsiaWQiLCJUQ1MiLCJjbGFzcyIsImNhcmQiLDQsIm5nSWYiXSxbMywibmdTd2l0Y2giLDQsIm5nSWYiXSxbImlkIiwiVENTIiwxLCJjYXJkIl0sWzEsImNhcmQtaGVhZGVyIl0sWzEsImNhcmQtYmxvY2siXSxbMSwiY2FyZC10ZXh0Il0sWzEsIm10LTAiXSxbImhyZWYiLCJodHRwczovL2Rv'@; put 'Y3MuZGF0YWNvbnRyb2xsZXIuaW8vZXZhbHVhdGlvbi1saWNlbmNlLWFncmVlbWVudCIsInRhcmdldCIsIl9ibGFuayJdLFsxLCJsaWdodCJdLFsiY2xyQ2hlY2tib3giLCIiLCJ0eXBlIiwiY2hlY2tib3giLDMsImNoYW5nZSJdLFszLCJuZ1N3aXRjaCJdLFs0LCJuZ1N3aXRjaENhc2UiXSxb'@; put 'ImNsYXNzIiwiYXV0b2RlcGxveS1zZWN0aW9uIGNhcmQiLDQsIm5nSWYiXSxbImlkIiwibWFpbmJvZHkiLCJjbGFzcyIsImNhcmQiLDQsIm5nSWYiXSxbMSwiYXV0b2RlcGxveS1zZWN0aW9uIiwiY2FyZCJdLFszLCJvbk5hdmlnYXRlVG9Ib21lIiwic2FzSnMiLCJzYXNKc0NvbmZpZyIsImRj'@; put 'QWRhcHRlclNldHRpbmdzIiwiYXBwTG9jIiwiZGNQYXRoIiwic2VsZWN0ZWRBZG1pbkdyb3VwIl0sWyJpZCIsIm1haW5ib2R5IiwxLCJjYXJkIl0sWzMsIm9uTmF2aWdhdGVUb0hvbWUiLCJzYXNKcyIsInNhc0pzQ29uZmlnIiwiZGNBZGFwdGVyU2V0dGluZ3MiXV0sdGVtcGxhdGU6ZnVuY3Rp'@; put 'b24oZCxoKXsxJmQmJihkZSgwLCJkaXYiLDApKDEsImRpdiIsMSksZ3QoMixwWGUsMTcsMCwiZGl2IiwyKSxoZSgpLGd0KDMsX1hlLDQsNCwibmctY29udGFpbmVyIiwzKSxoZSgpKSwyJmQmJihmZSgyKSxNZSgibmdJZiIsMD09PWguc3RlcCksZmUoKSxNZSgibmdJZiIsaC5zdGVwPjApKX0s'@; put 'ZGVwZW5kZW5jaWVzOltiYSx4MixkcCxjbyxJZCx4aCxLS2UsdVhlLGZYZV0sZW5jYXBzdWxhdGlvbjoyfSl9fXJldHVybiBjfSkoKTtjb25zdCB3WGU9W3twYXRoOiIiLGNvbXBvbmVudDpjMmV9LHtwYXRoOiJtYW51YWxkZXBsb3kiLGNvbXBvbmVudDpjMmV9XTtsZXQgQ1hlPSgoKT0+e2Ns'@; put 'YXNzIGN7c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSl9c3RhdGlje3RoaXMuXHUwMjc1aW5qPUFyKHtpbXBvcnRzOltCYy5mb3JDaGlsZCh3WGUpLEJjXX0pfX1yZXR1cm4gY30pKCks'@; put 'U1hlPSgoKT0+e2NsYXNzIGN7c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSl9c3RhdGlje3RoaXMuXHUwMjc1aW5qPUFyKHtpbXBvcnRzOltMYSxrYyxCMCxDWGVdfSl9fXJldHVybiBj'@; put 'fSkoKTtiKDQ5NTM3KSxiKDc3NTI1KSxiKDU3NzIpLGIoNjk4NzUpLGIoMTYwOTMpLGIoOTU2MDgpLGIoMTY0OTMpLGIoNjE5MzQpLGIoMTAxMDEpLGIoMjY4ODkpLGIoNDMyODcpLGIoNjU3NDUpLGIoMjk3MDgpLGIoNjUxMTcpLGIoMTAzNjMpO2NvbnN0e2VudHJpZXM6dTJlLHNldFByb3Rv'@; put 'dHlwZU9mOmQyZSxpc0Zyb3plbjpNWGUsZ2V0UHJvdG90eXBlT2Y6eFhlLGdldE93blByb3BlcnR5RGVzY3JpcHRvcjpFWGV9PU9iamVjdDtsZXR7ZnJlZXplOiQxLHNlYWw6VjIsY3JlYXRlOmgyZX09T2JqZWN0LHthcHBseTppJCxjb25zdHJ1Y3Q6YSR9PXR5cGVvZiBSZWZsZWN0PCJ1IiYm'@; put 'UmVmbGVjdDskMXx8KCQxPWZ1bmN0aW9uKGwpe3JldHVybiBsfSksVjJ8fChWMj1mdW5jdGlvbihsKXtyZXR1cm4gbH0pLGkkfHwoaSQ9ZnVuY3Rpb24obCxhLGQpe3JldHVybiBsLmFwcGx5KGEsZCl9KSxhJHx8KGEkPWZ1bmN0aW9uKGwsYSl7cmV0dXJuIG5ldyBsKC4uLmEpfSk7Y29uc3Qg'@; put 'SU89WDEoQXJyYXkucHJvdG90eXBlLmZvckVhY2gpLFRYZT1YMShBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YpLGYyZT1YMShBcnJheS5wcm90b3R5cGUucG9wKSxoRT1YMShBcnJheS5wcm90b3R5cGUucHVzaCksQVhlPVgxKEFycmF5LnByb3RvdHlwZS5zcGxpY2UpLFJPPVgxKFN0cmlu'@; put 'Zy5wcm90b3R5cGUudG9Mb3dlckNhc2UpLHMkPVgxKFN0cmluZy5wcm90b3R5cGUudG9TdHJpbmcpLHAyZT1YMShTdHJpbmcucHJvdG90eXBlLm1hdGNoKSxmRT1YMShTdHJpbmcucHJvdG90eXBlLnJlcGxhY2UpLGtYZT1YMShTdHJpbmcucHJvdG90eXBlLmluZGV4T2YpLERYZT1YMShTdHJp'@; put 'bmcucHJvdG90eXBlLnRyaW0pLGEzPVgxKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpLEsxPVgxKFJlZ0V4cC5wcm90b3R5cGUudGVzdCkscEU9ZnVuY3Rpb24gSVhlKGMpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgbD1hcmd1bWVudHMubGVuZ3RoLGE9bmV3IEFycmF5KGwp'@; put 'LGQ9MDtkPGw7ZCsrKWFbZF09YXJndW1lbnRzW2RdO3JldHVybiBhJChjLGEpfX0oVHlwZUVycm9yKTtmdW5jdGlvbiBYMShjKXtyZXR1cm4gZnVuY3Rpb24obCl7bCBpbnN0YW5jZW9mIFJlZ0V4cCYmKGwubGFzdEluZGV4PTApO2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFy'@; put 'cmF5KGE+MT9hLTE6MCksaD0xO2g8YTtoKyspZFtoLTFdPWFyZ3VtZW50c1toXTtyZXR1cm4gaSQoYyxsLGQpfX1mdW5jdGlvbiB2byhjLGwpe2xldCBhPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpSTztkMmUmJmQyZShjLG51bGwpO2xl'@; put 'dCBkPWwubGVuZ3RoO2Zvcig7ZC0tOyl7bGV0IGg9bFtkXTtpZigic3RyaW5nIj09dHlwZW9mIGgpe2NvbnN0IGY9YShoKTtmIT09aCYmKE1YZShsKXx8KGxbZF09ZiksaD1mKX1jW2hdPSEwfXJldHVybiBjfWZ1bmN0aW9uIFJYZShjKXtmb3IobGV0IGw9MDtsPGMubGVuZ3RoO2wrKylhMyhj'@; put 'LGwpfHwoY1tsXT1udWxsKTtyZXR1cm4gY31mdW5jdGlvbiBnZyhjKXtjb25zdCBsPWgyZShudWxsKTtmb3IoY29uc3RbYSxkXW9mIHUyZShjKSlhMyhjLGEpJiYobFthXT1BcnJheS5pc0FycmF5KGQpP1JYZShkKTpkJiYib2JqZWN0Ij09dHlwZW9mIGQmJmQuY29uc3RydWN0b3I9PT1PYmpl'@; put 'Y3Q/Z2coZCk6ZCk7cmV0dXJuIGx9ZnVuY3Rpb24gZ0UoYyxsKXtmb3IoO251bGwhPT1jOyl7Y29uc3QgZD1FWGUoYyxsKTtpZihkKXtpZihkLmdldClyZXR1cm4gWDEoZC5nZXQpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBkLnZhbHVlKXJldHVybiBYMShkLnZhbHVlKX1jPXhYZShjKX1yZXR1'@; put 'cm4gZnVuY3Rpb24gYSgpe3JldHVybiBudWxsfX1jb25zdCBnMmU9JDEoWyJhIiwiYWJiciIsImFjcm9ueW0iLCJhZGRyZXNzIiwiYXJlYSIsImFydGljbGUiLCJhc2lkZSIsImF1ZGlvIiwiYiIsImJkaSIsImJkbyIsImJpZyIsImJsaW5rIiwiYmxvY2txdW90ZSIsImJvZHkiLCJiciIsImJ1'@; put 'dHRvbiIsImNhbnZhcyIsImNhcHRpb24iLCJjZW50ZXIiLCJjaXRlIiwiY29kZSIsImNvbCIsImNvbGdyb3VwIiwiY29udGVudCIsImRhdGEiLCJkYXRhbGlzdCIsImRkIiwiZGVjb3JhdG9yIiwiZGVsIiwiZGV0YWlscyIsImRmbiIsImRpYWxvZyIsImRpciIsImRpdiIsImRsIiwiZHQiLCJl'@; put 'bGVtZW50IiwiZW0iLCJmaWVsZHNldCIsImZpZ2NhcHRpb24iLCJmaWd1cmUiLCJmb250IiwiZm9vdGVyIiwiZm9ybSIsImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiIsImhlYWQiLCJoZWFkZXIiLCJoZ3JvdXAiLCJociIsImh0bWwiLCJpIiwiaW1nIiwiaW5wdXQiLCJpbnMiLCJrYmQi'@; put 'LCJsYWJlbCIsImxlZ2VuZCIsImxpIiwibWFpbiIsIm1hcCIsIm1hcmsiLCJtYXJxdWVlIiwibWVudSIsIm1lbnVpdGVtIiwibWV0ZXIiLCJuYXYiLCJub2JyIiwib2wiLCJvcHRncm91cCIsIm9wdGlvbiIsIm91dHB1dCIsInAiLCJwaWN0dXJlIiwicHJlIiwicHJvZ3Jlc3MiLCJxIiwicnAi'@; put 'LCJydCIsInJ1YnkiLCJzIiwic2FtcCIsInNlY3Rpb24iLCJzZWxlY3QiLCJzaGFkb3ciLCJzbWFsbCIsInNvdXJjZSIsInNwYWNlciIsInNwYW4iLCJzdHJpa2UiLCJzdHJvbmciLCJzdHlsZSIsInN1YiIsInN1bW1hcnkiLCJzdXAiLCJ0YWJsZSIsInRib2R5IiwidGQiLCJ0ZW1wbGF0ZSIs'@; put 'InRleHRhcmVhIiwidGZvb3QiLCJ0aCIsInRoZWFkIiwidGltZSIsInRyIiwidHJhY2siLCJ0dCIsInUiLCJ1bCIsInZhciIsInZpZGVvIiwid2JyIl0pLG8kPSQxKFsic3ZnIiwiYSIsImFsdGdseXBoIiwiYWx0Z2x5cGhkZWYiLCJhbHRnbHlwaGl0ZW0iLCJhbmltYXRlY29sb3IiLCJhbmlt'@; put 'YXRlbW90aW9uIiwiYW5pbWF0ZXRyYW5zZm9ybSIsImNpcmNsZSIsImNsaXBwYXRoIiwiZGVmcyIsImRlc2MiLCJlbGxpcHNlIiwiZmlsdGVyIiwiZm9udCIsImciLCJnbHlwaCIsImdseXBocmVmIiwiaGtlcm4iLCJpbWFnZSIsImxpbmUiLCJsaW5lYXJncmFkaWVudCIsIm1hcmtlciIsIm1h'@; put 'c2siLCJtZXRhZGF0YSIsIm1wYXRoIiwicGF0aCIsInBhdHRlcm4iLCJwb2x5Z29uIiwicG9seWxpbmUiLCJyYWRpYWxncmFkaWVudCIsInJlY3QiLCJzdG9wIiwic3R5bGUiLCJzd2l0Y2giLCJzeW1ib2wiLCJ0ZXh0IiwidGV4dHBhdGgiLCJ0aXRsZSIsInRyZWYiLCJ0c3BhbiIsInZpZXci'@; put 'LCJ2a2VybiJdKSxsJD0kMShbImZlQmxlbmQiLCJmZUNvbG9yTWF0cml4IiwiZmVDb21wb25lbnRUcmFuc2ZlciIsImZlQ29tcG9zaXRlIiwiZmVDb252b2x2ZU1hdHJpeCIsImZlRGlmZnVzZUxpZ2h0aW5nIiwiZmVEaXNwbGFjZW1lbnRNYXAiLCJmZURpc3RhbnRMaWdodCIsImZlRHJvcFNo'@; put 'YWRvdyIsImZlRmxvb2QiLCJmZUZ1bmNBIiwiZmVGdW5jQiIsImZlRnVuY0ciLCJmZUZ1bmNSIiwiZmVHYXVzc2lhbkJsdXIiLCJmZUltYWdlIiwiZmVNZXJnZSIsImZlTWVyZ2VOb2RlIiwiZmVNb3JwaG9sb2d5IiwiZmVPZmZzZXQiLCJmZVBvaW50TGlnaHQiLCJmZVNwZWN1bGFyTGlnaHRp'@; put 'bmciLCJmZVNwb3RMaWdodCIsImZlVGlsZSIsImZlVHVyYnVsZW5jZSJdKSxMWGU9JDEoWyJhbmltYXRlIiwiY29sb3ItcHJvZmlsZSIsImN1cnNvciIsImRpc2NhcmQiLCJmb250LWZhY2UiLCJmb250LWZhY2UtZm9ybWF0IiwiZm9udC1mYWNlLW5hbWUiLCJmb250LWZhY2Utc3JjIiwiZm9u'@; put 'dC1mYWNlLXVyaSIsImZvcmVpZ25vYmplY3QiLCJoYXRjaCIsImhhdGNocGF0aCIsIm1lc2giLCJtZXNoZ3JhZGllbnQiLCJtZXNocGF0Y2giLCJtZXNocm93IiwibWlzc2luZy1nbHlwaCIsInNjcmlwdCIsInNldCIsInNvbGlkY29sb3IiLCJ1bmtub3duIiwidXNlIl0pLGMkPSQxKFsibWF0'@; put 'aCIsIm1lbmNsb3NlIiwibWVycm9yIiwibWZlbmNlZCIsIm1mcmFjIiwibWdseXBoIiwibWkiLCJtbGFiZWxlZHRyIiwibW11bHRpc2NyaXB0cyIsIm1uIiwibW8iLCJtb3ZlciIsIm1wYWRkZWQiLCJtcGhhbnRvbSIsIm1yb290IiwibXJvdyIsIm1zIiwibXNwYWNlIiwibXNxcnQiLCJtc3R5'@; put 'bGUiLCJtc3ViIiwibXN1cCIsIm1zdWJzdXAiLCJtdGFibGUiLCJtdGQiLCJtdGV4dCIsIm10ciIsIm11bmRlciIsIm11bmRlcm92ZXIiLCJtcHJlc2NyaXB0cyJdKSxPWGU9JDEoWyJtYWN0aW9uIiwibWFsaWduZ3JvdXAiLCJtYWxpZ25tYXJrIiwibWxvbmdkaXYiLCJtc2NhcnJpZXMiLCJt'@; put 'c2NhcnJ5IiwibXNncm91cCIsIm1zdGFjayIsIm1zbGluZSIsIm1zcm93Iiwic2VtYW50aWNzIiwiYW5ub3RhdGlvbiIsImFubm90YXRpb24teG1sIiwibXByZXNjcmlwdHMiLCJub25lIl0pLG0yZT0kMShbIiN0ZXh0Il0pLHYyZT0kMShbImFjY2VwdCIsImFjdGlvbiIsImFsaWduIiwiYWx0'@; put 'IiwiYXV0b2NhcGl0YWxpemUiLCJhdXRvY29tcGxldGUiLCJhdXRvcGljdHVyZWlucGljdHVyZSIsImF1dG9wbGF5IiwiYmFja2dyb3VuZCIsImJnY29sb3IiLCJib3JkZXIiLCJjYXB0dXJlIiwiY2VsbHBhZGRpbmciLCJjZWxsc3BhY2luZyIsImNoZWNrZWQiLCJjaXRlIiwiY2xhc3MiLCJj'@; put 'bGVhciIsImNvbG9yIiwiY29scyIsImNvbHNwYW4iLCJjb250cm9scyIsImNvbnRyb2xzbGlzdCIsImNvb3JkcyIsImNyb3Nzb3JpZ2luIiwiZGF0ZXRpbWUiLCJkZWNvZGluZyIsImRlZmF1bHQiLCJkaXIiLCJkaXNhYmxlZCIsImRpc2FibGVwaWN0dXJlaW5waWN0dXJlIiwiZGlzYWJsZXJl'@; put 'bW90ZXBsYXliYWNrIiwiZG93bmxvYWQiLCJkcmFnZ2FibGUiLCJlbmN0eXBlIiwiZW50ZXJrZXloaW50IiwiZmFjZSIsImZvciIsImhlYWRlcnMiLCJoZWlnaHQiLCJoaWRkZW4iLCJoaWdoIiwiaHJlZiIsImhyZWZsYW5nIiwiaWQiLCJpbnB1dG1vZGUiLCJpbnRlZ3JpdHkiLCJpc21hcCIs'@; put 'ImtpbmQiLCJsYWJlbCIsImxhbmciLCJsaXN0IiwibG9hZGluZyIsImxvb3AiLCJsb3ciLCJtYXgiLCJtYXhsZW5ndGgiLCJtZWRpYSIsIm1ldGhvZCIsIm1pbiIsIm1pbmxlbmd0aCIsIm11bHRpcGxlIiwibXV0ZWQiLCJuYW1lIiwibm9uY2UiLCJub3NoYWRlIiwibm92YWxpZGF0ZSIsIm5v'@; put 'd3JhcCIsIm9wZW4iLCJvcHRpbXVtIiwicGF0dGVybiIsInBsYWNlaG9sZGVyIiwicGxheXNpbmxpbmUiLCJwb3BvdmVyIiwicG9wb3ZlcnRhcmdldCIsInBvcG92ZXJ0YXJnZXRhY3Rpb24iLCJwb3N0ZXIiLCJwcmVsb2FkIiwicHViZGF0ZSIsInJhZGlvZ3JvdXAiLCJyZWFkb25seSIsInJl'@; put 'bCIsInJlcXVpcmVkIiwicmV2IiwicmV2ZXJzZWQiLCJyb2xlIiwicm93cyIsInJvd3NwYW4iLCJzcGVsbGNoZWNrIiwic2NvcGUiLCJzZWxlY3RlZCIsInNoYXBlIiwic2l6ZSIsInNpemVzIiwic3BhbiIsInNyY2xhbmciLCJzdGFydCIsInNyYyIsInNyY3NldCIsInN0ZXAiLCJzdHlsZSIs'@; put 'InN1bW1hcnkiLCJ0YWJpbmRleCIsInRpdGxlIiwidHJhbnNsYXRlIiwidHlwZSIsInVzZW1hcCIsInZhbGlnbiIsInZhbHVlIiwid2lkdGgiLCJ3cmFwIiwieG1sbnMiLCJzbG90Il0pLHUkPSQxKFsiYWNjZW50LWhlaWdodCIsImFjY3VtdWxhdGUiLCJhZGRpdGl2ZSIsImFsaWdubWVudC1i'@; put 'YXNlbGluZSIsImFtcGxpdHVkZSIsImFzY2VudCIsImF0dHJpYnV0ZW5hbWUiLCJhdHRyaWJ1dGV0eXBlIiwiYXppbXV0aCIsImJhc2VmcmVxdWVuY3kiLCJiYXNlbGluZS1zaGlmdCIsImJlZ2luIiwiYmlhcyIsImJ5IiwiY2xhc3MiLCJjbGlwIiwiY2xpcHBhdGh1bml0cyIsImNsaXAtcGF0'@; put 'aCIsImNsaXAtcnVsZSIsImNvbG9yIiwiY29sb3ItaW50ZXJwb2xhdGlvbiIsImNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycyIsImNvbG9yLXByb2ZpbGUiLCJjb2xvci1yZW5kZXJpbmciLCJjeCIsImN5IiwiZCIsImR4IiwiZHkiLCJkaWZmdXNlY29uc3RhbnQiLCJkaXJlY3Rpb24iLCJk'@; put 'aXNwbGF5IiwiZGl2aXNvciIsImR1ciIsImVkZ2Vtb2RlIiwiZWxldmF0aW9uIiwiZW5kIiwiZXhwb25lbnQiLCJmaWxsIiwiZmlsbC1vcGFjaXR5IiwiZmlsbC1ydWxlIiwiZmlsdGVyIiwiZmlsdGVydW5pdHMiLCJmbG9vZC1jb2xvciIsImZsb29kLW9wYWNpdHkiLCJmb250LWZhbWlseSIs'@; put 'ImZvbnQtc2l6ZSIsImZvbnQtc2l6ZS1hZGp1c3QiLCJmb250LXN0cmV0Y2giLCJmb250LXN0eWxlIiwiZm9udC12YXJpYW50IiwiZm9udC13ZWlnaHQiLCJmeCIsImZ5IiwiZzEiLCJnMiIsImdseXBoLW5hbWUiLCJnbHlwaHJlZiIsImdyYWRpZW50dW5pdHMiLCJncmFkaWVudHRyYW5zZm9y'@; put 'bSIsImhlaWdodCIsImhyZWYiLCJpZCIsImltYWdlLXJlbmRlcmluZyIsImluIiwiaW4yIiwiaW50ZXJjZXB0IiwiayIsImsxIiwiazIiLCJrMyIsIms0Iiwia2VybmluZyIsImtleXBvaW50cyIsImtleXNwbGluZXMiLCJrZXl0aW1lcyIsImxhbmciLCJsZW5ndGhhZGp1c3QiLCJsZXR0ZXIt'@; put 'c3BhY2luZyIsImtlcm5lbG1hdHJpeCIsImtlcm5lbHVuaXRsZW5ndGgiLCJsaWdodGluZy1jb2xvciIsImxvY2FsIiwibWFya2VyLWVuZCIsIm1hcmtlci1taWQiLCJtYXJrZXItc3RhcnQiLCJtYXJrZXJoZWlnaHQiLCJtYXJrZXJ1bml0cyIsIm1hcmtlcndpZHRoIiwibWFza2NvbnRlbnR1'@; put 'bml0cyIsIm1hc2t1bml0cyIsIm1heCIsIm1hc2siLCJtZWRpYSIsIm1ldGhvZCIsIm1vZGUiLCJtaW4iLCJuYW1lIiwibnVtb2N0YXZlcyIsIm9mZnNldCIsIm9wZXJhdG9yIiwib3BhY2l0eSIsIm9yZGVyIiwib3JpZW50Iiwib3JpZW50YXRpb24iLCJvcmlnaW4iLCJvdmVyZmxvdyIsInBh'@; put 'aW50LW9yZGVyIiwicGF0aCIsInBhdGhsZW5ndGgiLCJwYXR0ZXJuY29udGVudHVuaXRzIiwicGF0dGVybnRyYW5zZm9ybSIsInBhdHRlcm51bml0cyIsInBvaW50cyIsInByZXNlcnZlYWxwaGEiLCJwcmVzZXJ2ZWFzcGVjdHJhdGlvIiwicHJpbWl0aXZldW5pdHMiLCJyIiwicngiLCJyeSIs'@; put 'InJhZGl1cyIsInJlZngiLCJyZWZ5IiwicmVwZWF0Y291bnQiLCJyZXBlYXRkdXIiLCJyZXN0YXJ0IiwicmVzdWx0Iiwicm90YXRlIiwic2NhbGUiLCJzZWVkIiwic2hhcGUtcmVuZGVyaW5nIiwic2xvcGUiLCJzcGVjdWxhcmNvbnN0YW50Iiwic3BlY3VsYXJleHBvbmVudCIsInNwcmVhZG1l'@; put 'dGhvZCIsInN0YXJ0b2Zmc2V0Iiwic3RkZGV2aWF0aW9uIiwic3RpdGNodGlsZXMiLCJzdG9wLWNvbG9yIiwic3RvcC1vcGFjaXR5Iiwic3Ryb2tlLWRhc2hhcnJheSIsInN0cm9rZS1kYXNob2Zmc2V0Iiwic3Ryb2tlLWxpbmVjYXAiLCJzdHJva2UtbGluZWpvaW4iLCJzdHJva2UtbWl0ZXJs'@; put 'aW1pdCIsInN0cm9rZS1vcGFjaXR5Iiwic3Ryb2tlIiwic3Ryb2tlLXdpZHRoIiwic3R5bGUiLCJzdXJmYWNlc2NhbGUiLCJzeXN0ZW1sYW5ndWFnZSIsInRhYmluZGV4IiwidGFibGV2YWx1ZXMiLCJ0YXJnZXR4IiwidGFyZ2V0eSIsInRyYW5zZm9ybSIsInRyYW5zZm9ybS1vcmlnaW4iLCJ0'@; put 'ZXh0LWFuY2hvciIsInRleHQtZGVjb3JhdGlvbiIsInRleHQtcmVuZGVyaW5nIiwidGV4dGxlbmd0aCIsInR5cGUiLCJ1MSIsInUyIiwidW5pY29kZSIsInZhbHVlcyIsInZpZXdib3giLCJ2aXNpYmlsaXR5IiwidmVyc2lvbiIsInZlcnQtYWR2LXkiLCJ2ZXJ0LW9yaWdpbi14IiwidmVydC1v'@; put 'cmlnaW4teSIsIndpZHRoIiwid29yZC1zcGFjaW5nIiwid3JhcCIsIndyaXRpbmctbW9kZSIsInhjaGFubmVsc2VsZWN0b3IiLCJ5Y2hhbm5lbHNlbGVjdG9yIiwieCIsIngxIiwieDIiLCJ4bWxucyIsInkiLCJ5MSIsInkyIiwieiIsInpvb21hbmRwYW4iXSkseTJlPSQxKFsiYWNjZW50Iiwi'@; put 'YWNjZW50dW5kZXIiLCJhbGlnbiIsImJldmVsbGVkIiwiY2xvc2UiLCJjb2x1bW5zYWxpZ24iLCJjb2x1bW5saW5lcyIsImNvbHVtbnNwYW4iLCJkZW5vbWFsaWduIiwiZGVwdGgiLCJkaXIiLCJkaXNwbGF5IiwiZGlzcGxheXN0eWxlIiwiZW5jb2RpbmciLCJmZW5jZSIsImZyYW1lIiwiaGVp'@; put 'Z2h0IiwiaHJlZiIsImlkIiwibGFyZ2VvcCIsImxlbmd0aCIsImxpbmV0aGlja25lc3MiLCJsc3BhY2UiLCJscXVvdGUiLCJtYXRoYmFja2dyb3VuZCIsIm1hdGhjb2xvciIsIm1hdGhzaXplIiwibWF0aHZhcmlhbnQiLCJtYXhzaXplIiwibWluc2l6ZSIsIm1vdmFibGVsaW1pdHMiLCJub3Rh'@; put 'dGlvbiIsIm51bWFsaWduIiwib3BlbiIsInJvd2FsaWduIiwicm93bGluZXMiLCJyb3dzcGFjaW5nIiwicm93c3BhbiIsInJzcGFjZSIsInJxdW90ZSIsInNjcmlwdGxldmVsIiwic2NyaXB0bWluc2l6ZSIsInNjcmlwdHNpemVtdWx0aXBsaWVyIiwic2VsZWN0aW9uIiwic2VwYXJhdG9yIiwi'@; put 'c2VwYXJhdG9ycyIsInN0cmV0Y2h5Iiwic3Vic2NyaXB0c2hpZnQiLCJzdXBzY3JpcHRzaGlmdCIsInN5bW1ldHJpYyIsInZvZmZzZXQiLCJ3aWR0aCIsInhtbG5zIl0pLExPPSQxKFsieGxpbms6aHJlZiIsInhtbDppZCIsInhsaW5rOnRpdGxlIiwieG1sOnNwYWNlIiwieG1sbnM6eGxpbmsi'@; put 'XSksUFhlPVYyKC9ce1x7W1x3XFddKnxbXHdcV10qXH1cfS9nbSksRlhlPVYyKC88JVtcd1xXXSp8W1x3XFddKiU+L2dtKSxIWGU9VjIoL1wkXHtbXHdcV10qL2dtKSxOWGU9VjIoL15kYXRhLVtcLVx3Llx1MDBCNy1cdUZGRkZdKyQvKSxWWGU9VjIoL15hcmlhLVtcLVx3XSskLyksYjJlPVYy'@; put 'KC9eKD86KD86KD86ZnxodCl0cHM/fG1haWx0b3x0ZWx8Y2FsbHRvfHNtc3xjaWR8eG1wcHxtYXRyaXgpOnxbXmEtel18W2EteisuXC1dKyg/OlteYS16Ky5cLTpdfCQpKS9pKSxCWGU9VjIoL14oPzpcdytzY3JpcHR8ZGF0YSk6L2kpLGpYZT1WMigvW1x1MDAwMC1cdTAwMjBcdTAwQTBcdTE2'@; put 'ODBcdTE4MEVcdTIwMDAtXHUyMDI5XHUyMDVGXHUzMDAwXS9nKSxfMmU9VjIoL15odG1sJC9pKSx6WGU9VjIoL15bYS16XVsuXHddKigtWy5cd10rKSskL2kpO3ZhciB3MmU9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsQVJJQV9BVFRSOlZYZSxBVFRSX1dISVRFU1BBQ0U6alhlLENV'@; put 'U1RPTV9FTEVNRU5UOnpYZSxEQVRBX0FUVFI6TlhlLERPQ1RZUEVfTkFNRTpfMmUsRVJCX0VYUFI6RlhlLElTX0FMTE9XRURfVVJJOmIyZSxJU19TQ1JJUFRfT1JfREFUQTpCWGUsTVVTVEFDSEVfRVhQUjpQWGUsVE1QTElUX0VYUFI6SFhlfSk7dmFyIFdYZT1mdW5jdGlvbiBTMmUoKXtsZXQg'@; put 'Yz1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dHlwZW9mIHdpbmRvdz4idSI/bnVsbDp3aW5kb3c7Y29uc3QgbD1scz0+UzJlKGxzKTtpZihsLnZlcnNpb249IjMuMi42IixsLnJlbW92ZWQ9W10sIWN8fCFjLmRvY3VtZW50fHw5IT09Yy5k'@; put 'b2N1bWVudC5ub2RlVHlwZXx8IWMuRWxlbWVudClyZXR1cm4gbC5pc1N1cHBvcnRlZD0hMSxsO2xldHtkb2N1bWVudDphfT1jO2NvbnN0IGQ9YSxoPWQuY3VycmVudFNjcmlwdCx7RG9jdW1lbnRGcmFnbWVudDpmLEhUTUxUZW1wbGF0ZUVsZW1lbnQ6dixOb2RlOk0sRWxlbWVudDpJLE5vZGVG'@; put 'aWx0ZXI6RyxOYW1lZE5vZGVNYXA6cmU9Yy5OYW1lZE5vZGVNYXB8fGMuTW96TmFtZWRBdHRyTWFwLEhUTUxGb3JtRWxlbWVudDp1ZSxET01QYXJzZXI6eWUsdHJ1c3RlZFR5cGVzOkVlfT1jLEJlPUkucHJvdG90eXBlLEdlPWdFKEJlLCJjbG9uZU5vZGUiKSxzdD1nRShCZSwicmVtb3ZlIiks'@; put 'cHQ9Z0UoQmUsIm5leHRTaWJsaW5nIiksZHQ9Z0UoQmUsImNoaWxkTm9kZXMiKSxxdD1nRShCZSwicGFyZW50Tm9kZSIpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB2KXtjb25zdCBscz1hLmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7bHMuY29udGVudCYmbHMuY29udGVudC5vd25lckRvY3Vt'@; put 'ZW50JiYoYT1scy5jb250ZW50Lm93bmVyRG9jdW1lbnQpfWxldCBtbix3bj0iIjtjb25zdHtpbXBsZW1lbnRhdGlvbjpobixjcmVhdGVOb2RlSXRlcmF0b3I6TW4sY3JlYXRlRG9jdW1lbnRGcmFnbWVudDpNcixnZXRFbGVtZW50c0J5VGFnTmFtZTprcn09YSx7aW1wb3J0Tm9kZTpxbn09ZDts'@; put 'ZXQgZ3I9e2FmdGVyU2FuaXRpemVBdHRyaWJ1dGVzOltdLGFmdGVyU2FuaXRpemVFbGVtZW50czpbXSxhZnRlclNhbml0aXplU2hhZG93RE9NOltdLGJlZm9yZVNhbml0aXplQXR0cmlidXRlczpbXSxiZWZvcmVTYW5pdGl6ZUVsZW1lbnRzOltdLGJlZm9yZVNhbml0aXplU2hhZG93RE9NOltd'@; put 'LHVwb25TYW5pdGl6ZUF0dHJpYnV0ZTpbXSx1cG9uU2FuaXRpemVFbGVtZW50OltdLHVwb25TYW5pdGl6ZVNoYWRvd05vZGU6W119O2wuaXNTdXBwb3J0ZWQ9ImZ1bmN0aW9uIj09dHlwZW9mIHUyZSYmImZ1bmN0aW9uIj09dHlwZW9mIHF0JiZobiYmdm9pZCAwIT09aG4uY3JlYXRlSFRNTERv'@; put 'Y3VtZW50O2NvbnN0e01VU1RBQ0hFX0VYUFI6cXIsRVJCX0VYUFI6X2ksVE1QTElUX0VYUFI6UG4sREFUQV9BVFRSOlVyLEFSSUFfQVRUUjp0cixJU19TQ1JJUFRfT1JfREFUQTpCcixBVFRSX1dISVRFU1BBQ0U6WXIsQ1VTVE9NX0VMRU1FTlQ6d2l9PXcyZTtsZXR7SVNfQUxMT1dFRF9VUkk6'@; put 'Qml9PXcyZSxoYT1udWxsO2NvbnN0IG1hPXZvKHt9LFsuLi5nMmUsLi4ubyQsLi4ubCQsLi4uYyQsLi4ubTJlXSk7bGV0IHZ0PW51bGw7Y29uc3QgeHQ9dm8oe30sWy4uLnYyZSwuLi51JCwuLi55MmUsLi4uTE9dKTtsZXQgJHQ9T2JqZWN0LnNlYWwoaDJlKG51bGwse3RhZ05hbWVDaGVjazp7'@; put 'd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiExLGVudW1lcmFibGU6ITAsdmFsdWU6bnVsbH0sYXR0cmlidXRlTmFtZUNoZWNrOnt3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITEsZW51bWVyYWJsZTohMCx2YWx1ZTpudWxsfSxhbGxvd0N1c3RvbWl6ZWRCdWlsdEluRWxlbWVudHM6e3dyaXRh'@; put 'YmxlOiEwLGNvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiEwLHZhbHVlOiExfX0pKSxZbj1udWxsLCRuPW51bGwsYXI9ITAsR3I9ITAsR3Q9ITEsYm49ITAseG49ITEsSW49ITAsWG49ITEsTm49ITEsdnI9ITEsV249ITEsZnI9ITEsRHI9ITEsT3I9ITAsdWk9ITEsWmk9ITAsRHM9ITEsdW89'@; put 'e30sV3M9bnVsbDtjb25zdCBTcz12byh7fSxbImFubm90YXRpb24teG1sIiwiYXVkaW8iLCJjb2xncm91cCIsImRlc2MiLCJmb3JlaWdub2JqZWN0IiwiaGVhZCIsImlmcmFtZSIsIm1hdGgiLCJtaSIsIm1uIiwibW8iLCJtcyIsIm10ZXh0Iiwibm9lbWJlZCIsIm5vZnJhbWVzIiwibm9zY3Jp'@; put 'cHQiLCJwbGFpbnRleHQiLCJzY3JpcHQiLCJzdHlsZSIsInN2ZyIsInRlbXBsYXRlIiwidGhlYWQiLCJ0aXRsZSIsInZpZGVvIiwieG1wIl0pO2xldCBNcz1udWxsO2NvbnN0IGZvPXZvKHt9LFsiYXVkaW8iLCJ2aWRlbyIsImltZyIsInNvdXJjZSIsImltYWdlIiwidHJhY2siXSk7bGV0IHgw'@; put 'PW51bGw7Y29uc3QgWWg9dm8oe30sWyJhbHQiLCJjbGFzcyIsImZvciIsImlkIiwibGFiZWwiLCJuYW1lIiwicGF0dGVybiIsInBsYWNlaG9sZGVyIiwicm9sZSIsInN1bW1hcnkiLCJ0aXRsZSIsInZhbHVlIiwic3R5bGUiLCJ4bWxucyJdKSxRZD0iaHR0cDovL3d3dy53My5vcmcvMTk5OC9N'@; put 'YXRoL01hdGhNTCIsRGM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix0Yz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI7bGV0ICRvPXRjLCRsPSExLGtvPW51bGw7Y29uc3Qgb2Q9dm8oe30sW1FkLERjLHRjXSxzJCk7bGV0IHRzPXZvKHt9LFsibWkiLCJtbyIsIm1uIiwibXMi'@; put 'LCJtdGV4dCJdKSxxZz12byh7fSxbImFubm90YXRpb24teG1sIl0pO2NvbnN0IFJ3PXZvKHt9LFsidGl0bGUiLCJzdHlsZSIsImZvbnQiLCJhIiwic2NyaXB0Il0pO2xldCBydj1udWxsO2NvbnN0IEp0ZT1bImFwcGxpY2F0aW9uL3hodG1sK3htbCIsInRleHQvaHRtbCJdO2xldCBKdT1udWxs'@; put 'LE02PW51bGw7Y29uc3QgekE9YS5jcmVhdGVFbGVtZW50KCJmb3JtIiksWXQ9ZnVuY3Rpb24obXIpe3JldHVybiBtciBpbnN0YW5jZW9mIFJlZ0V4cHx8bXIgaW5zdGFuY2VvZiBGdW5jdGlvbn0sRTE9ZnVuY3Rpb24oKXtsZXQgbXI9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1'@; put 'bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9O2lmKCFNNnx8TTYhPT1tcil7aWYoKCFtcnx8Im9iamVjdCIhPXR5cGVvZiBtcikmJihtcj17fSksbXI9Z2cobXIpLHJ2PS0xPT09SnRlLmluZGV4T2YobXIuUEFSU0VSX01FRElBX1RZUEUpPyJ0ZXh0L2h0bWwiOm1yLlBBUlNFUl9NRURJQV9UWVBF'@; put 'LEp1PSJhcHBsaWNhdGlvbi94aHRtbCt4bWwiPT09cnY/cyQ6Uk8saGE9YTMobXIsIkFMTE9XRURfVEFHUyIpP3ZvKHt9LG1yLkFMTE9XRURfVEFHUyxKdSk6bWEsdnQ9YTMobXIsIkFMTE9XRURfQVRUUiIpP3ZvKHt9LG1yLkFMTE9XRURfQVRUUixKdSk6eHQsa289YTMobXIsIkFMTE9XRURf'@; put 'TkFNRVNQQUNFUyIpP3ZvKHt9LG1yLkFMTE9XRURfTkFNRVNQQUNFUyxzJCk6b2QseDA9YTMobXIsIkFERF9VUklfU0FGRV9BVFRSIik/dm8oZ2coWWgpLG1yLkFERF9VUklfU0FGRV9BVFRSLEp1KTpZaCxNcz1hMyhtciwiQUREX0RBVEFfVVJJX1RBR1MiKT92byhnZyhmbyksbXIuQUREX0RB'@; put 'VEFfVVJJX1RBR1MsSnUpOmZvLFdzPWEzKG1yLCJGT1JCSURfQ09OVEVOVFMiKT92byh7fSxtci5GT1JCSURfQ09OVEVOVFMsSnUpOlNzLFluPWEzKG1yLCJGT1JCSURfVEFHUyIpP3ZvKHt9LG1yLkZPUkJJRF9UQUdTLEp1KTpnZyh7fSksJG49YTMobXIsIkZPUkJJRF9BVFRSIik/dm8oe30s'@; put 'bXIuRk9SQklEX0FUVFIsSnUpOmdnKHt9KSx1bz0hIWEzKG1yLCJVU0VfUFJPRklMRVMiKSYmbXIuVVNFX1BST0ZJTEVTLGFyPSExIT09bXIuQUxMT1dfQVJJQV9BVFRSLEdyPSExIT09bXIuQUxMT1dfREFUQV9BVFRSLEd0PW1yLkFMTE9XX1VOS05PV05fUFJPVE9DT0xTfHwhMSxibj0hMSE9'@; put 'PW1yLkFMTE9XX1NFTEZfQ0xPU0VfSU5fQVRUUix4bj1tci5TQUZFX0ZPUl9URU1QTEFURVN8fCExLEluPSExIT09bXIuU0FGRV9GT1JfWE1MLFhuPW1yLldIT0xFX0RPQ1VNRU5UfHwhMSxXbj1tci5SRVRVUk5fRE9NfHwhMSxmcj1tci5SRVRVUk5fRE9NX0ZSQUdNRU5UfHwhMSxEcj1tci5S'@; put 'RVRVUk5fVFJVU1RFRF9UWVBFfHwhMSx2cj1tci5GT1JDRV9CT0RZfHwhMSxPcj0hMSE9PW1yLlNBTklUSVpFX0RPTSx1aT1tci5TQU5JVElaRV9OQU1FRF9QUk9QU3x8ITEsWmk9ITEhPT1tci5LRUVQX0NPTlRFTlQsRHM9bXIuSU5fUExBQ0V8fCExLEJpPW1yLkFMTE9XRURfVVJJX1JFR0VY'@; put 'UHx8YjJlLCRvPW1yLk5BTUVTUEFDRXx8dGMsdHM9bXIuTUFUSE1MX1RFWFRfSU5URUdSQVRJT05fUE9JTlRTfHx0cyxxZz1tci5IVE1MX0lOVEVHUkFUSU9OX1BPSU5UU3x8cWcsJHQ9bXIuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkd8fHt9LG1yLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HJiZZ'@; put 'dChtci5DVVNUT01fRUxFTUVOVF9IQU5ETElORy50YWdOYW1lQ2hlY2spJiYoJHQudGFnTmFtZUNoZWNrPW1yLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLnRhZ05hbWVDaGVjayksbXIuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcmJll0KG1yLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLmF0dHJp'@; put 'YnV0ZU5hbWVDaGVjaykmJigkdC5hdHRyaWJ1dGVOYW1lQ2hlY2s9bXIuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcuYXR0cmlidXRlTmFtZUNoZWNrKSxtci5DVVNUT01fRUxFTUVOVF9IQU5ETElORyYmImJvb2xlYW4iPT10eXBlb2YgbXIuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcuYWxsb3dD'@; put 'dXN0b21pemVkQnVpbHRJbkVsZW1lbnRzJiYoJHQuYWxsb3dDdXN0b21pemVkQnVpbHRJbkVsZW1lbnRzPW1yLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLmFsbG93Q3VzdG9taXplZEJ1aWx0SW5FbGVtZW50cykseG4mJihHcj0hMSksZnImJihXbj0hMCksdW8mJihoYT12byh7fSxtMmUpLHZ0'@; put 'PVtdLCEwPT09dW8uaHRtbCYmKHZvKGhhLGcyZSksdm8odnQsdjJlKSksITA9PT11by5zdmcmJih2byhoYSxvJCksdm8odnQsdSQpLHZvKHZ0LExPKSksITA9PT11by5zdmdGaWx0ZXJzJiYodm8oaGEsbCQpLHZvKHZ0LHUkKSx2byh2dCxMTykpLCEwPT09dW8ubWF0aE1sJiYodm8oaGEsYyQp'@; put 'LHZvKHZ0LHkyZSksdm8odnQsTE8pKSksbXIuQUREX1RBR1MmJihoYT09PW1hJiYoaGE9Z2coaGEpKSx2byhoYSxtci5BRERfVEFHUyxKdSkpLG1yLkFERF9BVFRSJiYodnQ9PT14dCYmKHZ0PWdnKHZ0KSksdm8odnQsbXIuQUREX0FUVFIsSnUpKSxtci5BRERfVVJJX1NBRkVfQVRUUiYmdm8o'@; put 'eDAsbXIuQUREX1VSSV9TQUZFX0FUVFIsSnUpLG1yLkZPUkJJRF9DT05URU5UUyYmKFdzPT09U3MmJihXcz1nZyhXcykpLHZvKFdzLG1yLkZPUkJJRF9DT05URU5UUyxKdSkpLFppJiYoaGFbIiN0ZXh0Il09ITApLFhuJiZ2byhoYSxbImh0bWwiLCJoZWFkIiwiYm9keSJdKSxoYS50YWJsZSYm'@; put 'KHZvKGhhLFsidGJvZHkiXSksZGVsZXRlIFluLnRib2R5KSxtci5UUlVTVEVEX1RZUEVTX1BPTElDWSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG1yLlRSVVNURURfVFlQRVNfUE9MSUNZLmNyZWF0ZUhUTUwpdGhyb3cgcEUoJ1RSVVNURURfVFlQRVNfUE9MSUNZIGNvbmZpZ3VyYXRpb24gb3B0'@; put 'aW9uIG11c3QgcHJvdmlkZSBhICJjcmVhdGVIVE1MIiBob29rLicpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBtci5UUlVTVEVEX1RZUEVTX1BPTElDWS5jcmVhdGVTY3JpcHRVUkwpdGhyb3cgcEUoJ1RSVVNURURfVFlQRVNfUE9MSUNZIGNvbmZpZ3VyYXRpb24gb3B0aW9uIG11c3QgcHJvdmlk'@; put 'ZSBhICJjcmVhdGVTY3JpcHRVUkwiIGhvb2suJyk7bW49bXIuVFJVU1RFRF9UWVBFU19QT0xJQ1ksd249bW4uY3JlYXRlSFRNTCgiIil9ZWxzZSB2b2lkIDA9PT1tbiYmKG1uPWZ1bmN0aW9uKGwsYSl7aWYoIm9iamVjdCIhPXR5cGVvZiBsfHwiZnVuY3Rpb24iIT10eXBlb2YgbC5jcmVhdGVQ'@; put 'b2xpY3kpcmV0dXJuIG51bGw7bGV0IGQ9bnVsbDtjb25zdCBoPSJkYXRhLXR0LXBvbGljeS1zdWZmaXgiO2EmJmEuaGFzQXR0cmlidXRlKGgpJiYoZD1hLmdldEF0dHJpYnV0ZShoKSk7Y29uc3QgZj0iZG9tcHVyaWZ5IisoZD8iIyIrZDoiIik7dHJ5e3JldHVybiBsLmNyZWF0ZVBvbGljeShm'@; put 'LHtjcmVhdGVIVE1MOnY9PnYsY3JlYXRlU2NyaXB0VVJMOnY9PnZ9KX1jYXRjaHtyZXR1cm4gY29uc29sZS53YXJuKCJUcnVzdGVkVHlwZXMgcG9saWN5ICIrZisiIGNvdWxkIG5vdCBiZSBjcmVhdGVkLiIpLG51bGx9fShFZSxoKSksbnVsbCE9PW1uJiYic3RyaW5nIj09dHlwZW9mIHduJiYo'@; put 'd249bW4uY3JlYXRlSFRNTCgiIikpOyQxJiYkMShtciksTTY9bXJ9fSxnbD12byh7fSxbLi4ubyQsLi4ubCQsLi4uTFhlXSksS049dm8oe30sWy4uLmMkLC4uLk9YZV0pLFowPWZ1bmN0aW9uKG1yKXtoRShsLnJlbW92ZWQse2VsZW1lbnQ6bXJ9KTt0cnl7cXQobXIpLnJlbW92ZUNoaWxkKG1y'@; put 'KX1jYXRjaHtzdChtcil9fSx4Nj1mdW5jdGlvbihtcixlYSl7dHJ5e2hFKGwucmVtb3ZlZCx7YXR0cmlidXRlOmVhLmdldEF0dHJpYnV0ZU5vZGUobXIpLGZyb206ZWF9KX1jYXRjaHtoRShsLnJlbW92ZWQse2F0dHJpYnV0ZTpudWxsLGZyb206ZWF9KX1pZihlYS5yZW1vdmVBdHRyaWJ1dGUo'@; put 'bXIpLCJpcyI9PT1tcilpZihXbnx8ZnIpdHJ5e1owKGVhKX1jYXRjaHt9ZWxzZSB0cnl7ZWEuc2V0QXR0cmlidXRlKG1yLCIiKX1jYXRjaHt9fSxYTj1mdW5jdGlvbihtcil7bGV0IGVhPW51bGwsemE9bnVsbDtpZih2ciltcj0iPHJlbW92ZT48L3JlbW92ZT4iK21yO2Vsc2V7Y29uc3Qga3U9'@; put 'cDJlKG1yLC9eW1xyXG5cdCBdKy8pO3phPWt1JiZrdVswXX0iYXBwbGljYXRpb24veGh0bWwreG1sIj09PXJ2JiYkbz09PXRjJiYobXI9JzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48L2hlYWQ+PGJvZHk+JyttcisiPC9ib2R5PjwvaHRtbD4iKTtj'@; put 'b25zdCB1Yz1tbj9tbi5jcmVhdGVIVE1MKG1yKTptcjtpZigkbz09PXRjKXRyeXtlYT0obmV3IHllKS5wYXJzZUZyb21TdHJpbmcodWMscnYpfWNhdGNoe31pZighZWF8fCFlYS5kb2N1bWVudEVsZW1lbnQpe2VhPWhuLmNyZWF0ZURvY3VtZW50KCRvLCJ0ZW1wbGF0ZSIsbnVsbCk7dHJ5e2Vh'@; put 'LmRvY3VtZW50RWxlbWVudC5pbm5lckhUTUw9JGw/d246dWN9Y2F0Y2h7fX1jb25zdCBFMD1lYS5ib2R5fHxlYS5kb2N1bWVudEVsZW1lbnQ7cmV0dXJuIG1yJiZ6YSYmRTAuaW5zZXJ0QmVmb3JlKGEuY3JlYXRlVGV4dE5vZGUoemEpLEUwLmNoaWxkTm9kZXNbMF18fG51bGwpLCRvPT09dGM/'@; put 'a3IuY2FsbChlYSxYbj8iaHRtbCI6ImJvZHkiKVswXTpYbj9lYS5kb2N1bWVudEVsZW1lbnQ6RTB9LHFOPWZ1bmN0aW9uKG1yKXtyZXR1cm4gTW4uY2FsbChtci5vd25lckRvY3VtZW50fHxtcixtcixHLlNIT1dfRUxFTUVOVHxHLlNIT1dfQ09NTUVOVHxHLlNIT1dfVEVYVHxHLlNIT1dfUFJP'@; put 'Q0VTU0lOR19JTlNUUlVDVElPTnxHLlNIT1dfQ0RBVEFfU0VDVElPTixudWxsKX0sVUE9ZnVuY3Rpb24obXIpe3JldHVybiBtciBpbnN0YW5jZW9mIHVlJiYoInN0cmluZyIhPXR5cGVvZiBtci5ub2RlTmFtZXx8InN0cmluZyIhPXR5cGVvZiBtci50ZXh0Q29udGVudHx8ImZ1bmN0aW9uIiE9'@; put 'dHlwZW9mIG1yLnJlbW92ZUNoaWxkfHwhKG1yLmF0dHJpYnV0ZXMgaW5zdGFuY2VvZiByZSl8fCJmdW5jdGlvbiIhPXR5cGVvZiBtci5yZW1vdmVBdHRyaWJ1dGV8fCJmdW5jdGlvbiIhPXR5cGVvZiBtci5zZXRBdHRyaWJ1dGV8fCJzdHJpbmciIT10eXBlb2YgbXIubmFtZXNwYWNlVVJJfHwi'@; put 'ZnVuY3Rpb24iIT10eXBlb2YgbXIuaW5zZXJ0QmVmb3JlfHwiZnVuY3Rpb24iIT10eXBlb2YgbXIuaGFzQ2hpbGROb2Rlcyl9LEpOPWZ1bmN0aW9uKG1yKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgTSYmbXIgaW5zdGFuY2VvZiBNfTtmdW5jdGlvbiBUMShscyxtcixlYSl7SU8obHMsemE9'@; put 'Pnt6YS5jYWxsKGwsbXIsZWEsTTYpfSl9Y29uc3QgUU49ZnVuY3Rpb24obXIpe2xldCBlYT1udWxsO2lmKFQxKGdyLmJlZm9yZVNhbml0aXplRWxlbWVudHMsbXIsbnVsbCksVUEobXIpKXJldHVybiBaMChtciksITA7Y29uc3QgemE9SnUobXIubm9kZU5hbWUpO2lmKFQxKGdyLnVwb25TYW5p'@; put 'dGl6ZUVsZW1lbnQsbXIse3RhZ05hbWU6emEsYWxsb3dlZFRhZ3M6aGF9KSxJbiYmbXIuaGFzQ2hpbGROb2RlcygpJiYhSk4obXIuZmlyc3RFbGVtZW50Q2hpbGQpJiZLMSgvPFsvXHchXS9nLG1yLmlubmVySFRNTCkmJksxKC88Wy9cdyFdL2csbXIudGV4dENvbnRlbnQpfHw3PT09bXIubm9k'@; put 'ZVR5cGV8fEluJiY4PT09bXIubm9kZVR5cGUmJksxKC88Wy9cd10vZyxtci5kYXRhKSlyZXR1cm4gWjAobXIpLCEwO2lmKCFoYVt6YV18fFluW3phXSl7aWYoIVluW3phXSYmdFYoemEpJiYoJHQudGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgUmVnRXhwJiZLMSgkdC50YWdOYW1lQ2hlY2ssemEp'@; put 'fHwkdC50YWdOYW1lQ2hlY2sgaW5zdGFuY2VvZiBGdW5jdGlvbiYmJHQudGFnTmFtZUNoZWNrKHphKSkpcmV0dXJuITE7aWYoWmkmJiFXc1t6YV0pe2NvbnN0IHVjPXF0KG1yKXx8bXIucGFyZW50Tm9kZSxFMD1kdChtcil8fG1yLmNoaWxkTm9kZXM7aWYoRTAmJnVjKWZvcihsZXQgQTE9RTAu'@; put 'bGVuZ3RoLTE7QTE+PTA7LS1BMSl7Y29uc3QgVDM9R2UoRTBbQTFdLCEwKTtUMy5fX3JlbW92YWxDb3VudD0obXIuX19yZW1vdmFsQ291bnR8fDApKzEsdWMuaW5zZXJ0QmVmb3JlKFQzLHB0KG1yKSl9fXJldHVybiBaMChtciksITB9cmV0dXJuIG1yIGluc3RhbmNlb2YgSSYmIWZ1bmN0aW9u'@; put 'KG1yKXtsZXQgZWE9cXQobXIpOyghZWF8fCFlYS50YWdOYW1lKSYmKGVhPXtuYW1lc3BhY2VVUkk6JG8sdGFnTmFtZToidGVtcGxhdGUifSk7Y29uc3QgemE9Uk8obXIudGFnTmFtZSksdWM9Uk8oZWEudGFnTmFtZSk7cmV0dXJuISFrb1ttci5uYW1lc3BhY2VVUkldJiYobXIubmFtZXNwYWNl'@; put 'VVJJPT09RGM/ZWEubmFtZXNwYWNlVVJJPT09dGM/InN2ZyI9PT16YTplYS5uYW1lc3BhY2VVUkk9PT1RZD8ic3ZnIj09PXphJiYoImFubm90YXRpb24teG1sIj09PXVjfHx0c1t1Y10pOiEhZ2xbemFdOm1yLm5hbWVzcGFjZVVSST09PVFkP2VhLm5hbWVzcGFjZVVSST09PXRjPyJtYXRoIj09'@; put 'PXphOmVhLm5hbWVzcGFjZVVSST09PURjPyJtYXRoIj09PXphJiZxZ1t1Y106ISFLTlt6YV06bXIubmFtZXNwYWNlVVJJPT09dGM/IShlYS5uYW1lc3BhY2VVUkk9PT1EYyYmIXFnW3VjXXx8ZWEubmFtZXNwYWNlVVJJPT09UWQmJiF0c1t1Y10pJiYhS05bemFdJiYoUndbemFdfHwhZ2xbemFd'@; put 'KTohKCJhcHBsaWNhdGlvbi94aHRtbCt4bWwiIT09cnZ8fCFrb1ttci5uYW1lc3BhY2VVUkldKSl9KG1yKXx8KCJub3NjcmlwdCI9PT16YXx8Im5vZW1iZWQiPT09emF8fCJub2ZyYW1lcyI9PT16YSkmJksxKC88XC9ubyhzY3JpcHR8ZW1iZWR8ZnJhbWVzKS9pLG1yLmlubmVySFRNTCk/KFow'@; put 'KG1yKSwhMCk6KHhuJiYzPT09bXIubm9kZVR5cGUmJihlYT1tci50ZXh0Q29udGVudCxJTyhbcXIsX2ksUG5dLHVjPT57ZWE9ZkUoZWEsdWMsIiAiKX0pLG1yLnRleHRDb250ZW50IT09ZWEmJihoRShsLnJlbW92ZWQse2VsZW1lbnQ6bXIuY2xvbmVOb2RlKCl9KSxtci50ZXh0Q29udGVudD1l'@; put 'YSkpLFQxKGdyLmFmdGVyU2FuaXRpemVFbGVtZW50cyxtcixudWxsKSwhMSl9LGVWPWZ1bmN0aW9uKG1yLGVhLHphKXtpZihPciYmKCJpZCI9PT1lYXx8Im5hbWUiPT09ZWEpJiYoemEgaW4gYXx8emEgaW4gekEpKXJldHVybiExO2lmKCghR3J8fCRuW2VhXXx8IUsxKFVyLGVhKSkmJighYXJ8'@; put 'fCFLMSh0cixlYSkpKWlmKCF2dFtlYV18fCRuW2VhXSl7aWYoISh0VihtcikmJigkdC50YWdOYW1lQ2hlY2sgaW5zdGFuY2VvZiBSZWdFeHAmJksxKCR0LnRhZ05hbWVDaGVjayxtcil8fCR0LnRhZ05hbWVDaGVjayBpbnN0YW5jZW9mIEZ1bmN0aW9uJiYkdC50YWdOYW1lQ2hlY2sobXIpKSYm'@; put 'KCR0LmF0dHJpYnV0ZU5hbWVDaGVjayBpbnN0YW5jZW9mIFJlZ0V4cCYmSzEoJHQuYXR0cmlidXRlTmFtZUNoZWNrLGVhKXx8JHQuYXR0cmlidXRlTmFtZUNoZWNrIGluc3RhbmNlb2YgRnVuY3Rpb24mJiR0LmF0dHJpYnV0ZU5hbWVDaGVjayhlYSkpfHwiaXMiPT09ZWEmJiR0LmFsbG93Q3Vz'@; put 'dG9taXplZEJ1aWx0SW5FbGVtZW50cyYmKCR0LnRhZ05hbWVDaGVjayBpbnN0YW5jZW9mIFJlZ0V4cCYmSzEoJHQudGFnTmFtZUNoZWNrLHphKXx8JHQudGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgRnVuY3Rpb24mJiR0LnRhZ05hbWVDaGVjayh6YSkpKSlyZXR1cm4hMX1lbHNlIGlmKCF4MFtl'@; put 'YV0mJiFLMShCaSxmRSh6YSxZciwiIikpJiYoInNyYyIhPT1lYSYmInhsaW5rOmhyZWYiIT09ZWEmJiJocmVmIiE9PWVhfHwic2NyaXB0Ij09PW1yfHwwIT09a1hlKHphLCJkYXRhOiIpfHwhTXNbbXJdKSYmKCFHdHx8SzEoQnIsZkUoemEsWXIsIiIpKSkmJnphKXJldHVybiExO3JldHVybiEw'@; put 'fSx0Vj1mdW5jdGlvbihtcil7cmV0dXJuImFubm90YXRpb24teG1sIiE9PW1yJiZwMmUobXIsd2kpfSxuVj1mdW5jdGlvbihtcil7VDEoZ3IuYmVmb3JlU2FuaXRpemVBdHRyaWJ1dGVzLG1yLG51bGwpO2NvbnN0e2F0dHJpYnV0ZXM6ZWF9PW1yO2lmKCFlYXx8VUEobXIpKXJldHVybjtjb25z'@; put 'dCB6YT17YXR0ck5hbWU6IiIsYXR0clZhbHVlOiIiLGtlZXBBdHRyOiEwLGFsbG93ZWRBdHRyaWJ1dGVzOnZ0LGZvcmNlS2VlcEF0dHI6dm9pZCAwfTtsZXQgdWM9ZWEubGVuZ3RoO2Zvcig7dWMtLTspe2NvbnN0IEUwPWVhW3VjXSx7bmFtZTprdSxuYW1lc3BhY2VVUkk6QTEsdmFsdWU6VDN9'@; put 'PUUwLEU2PUp1KGt1KSxaQT1UMztsZXQgVDA9InZhbHVlIj09PWt1P1pBOkRYZShaQSk7aWYoemEuYXR0ck5hbWU9RTYsemEuYXR0clZhbHVlPVQwLHphLmtlZXBBdHRyPSEwLHphLmZvcmNlS2VlcEF0dHI9dm9pZCAwLFQxKGdyLnVwb25TYW5pdGl6ZUF0dHJpYnV0ZSxtcix6YSksVDA9emEu'@; put 'YXR0clZhbHVlLHVpJiYoImlkIj09PUU2fHwibmFtZSI9PT1FNikmJih4NihrdSxtciksVDA9InVzZXItY29udGVudC0iK1QwKSxJbiYmSzEoLygoLS0hP3xdKT4pfDxcLyhzdHlsZXx0aXRsZSkvaSxUMCkpe3g2KGt1LG1yKTtjb250aW51ZX1pZih6YS5mb3JjZUtlZXBBdHRyKWNvbnRpbnVl'@; put 'O2lmKCF6YS5rZWVwQXR0cil7eDYoa3UsbXIpO2NvbnRpbnVlfWlmKCFibiYmSzEoL1wvPi9pLFQwKSl7eDYoa3UsbXIpO2NvbnRpbnVlfXhuJiZJTyhbcXIsX2ksUG5dLE93PT57VDA9ZkUoVDAsT3csIiAiKX0pO2NvbnN0IHJWPUp1KG1yLm5vZGVOYW1lKTtpZihlVihyVixFNixUMCkpe2lm'@; put 'KG1uJiYib2JqZWN0Ij09dHlwZW9mIEVlJiYiZnVuY3Rpb24iPT10eXBlb2YgRWUuZ2V0QXR0cmlidXRlVHlwZSYmIUExKXN3aXRjaChFZS5nZXRBdHRyaWJ1dGVUeXBlKHJWLEU2KSl7Y2FzZSJUcnVzdGVkSFRNTCI6VDA9bW4uY3JlYXRlSFRNTChUMCk7YnJlYWs7Y2FzZSJUcnVzdGVkU2Ny'@; put 'aXB0VVJMIjpUMD1tbi5jcmVhdGVTY3JpcHRVUkwoVDApfWlmKFQwIT09WkEpdHJ5e0ExP21yLnNldEF0dHJpYnV0ZU5TKEExLGt1LFQwKTptci5zZXRBdHRyaWJ1dGUoa3UsVDApLFVBKG1yKT9aMChtcik6ZjJlKGwucmVtb3ZlZCl9Y2F0Y2h7eDYoa3UsbXIpfX1lbHNlIHg2KGt1LG1yKX1U'@; put 'MShnci5hZnRlclNhbml0aXplQXR0cmlidXRlcyxtcixudWxsKX0sZW5lPWZ1bmN0aW9uIGxzKG1yKXtsZXQgZWE9bnVsbDtjb25zdCB6YT1xTihtcik7Zm9yKFQxKGdyLmJlZm9yZVNhbml0aXplU2hhZG93RE9NLG1yLG51bGwpO2VhPXphLm5leHROb2RlKCk7KVQxKGdyLnVwb25TYW5pdGl6'@; put 'ZVNoYWRvd05vZGUsZWEsbnVsbCksUU4oZWEpLG5WKGVhKSxlYS5jb250ZW50IGluc3RhbmNlb2YgZiYmbHMoZWEuY29udGVudCk7VDEoZ3IuYWZ0ZXJTYW5pdGl6ZVNoYWRvd0RPTSxtcixudWxsKX07cmV0dXJuIGwuc2FuaXRpemU9ZnVuY3Rpb24obHMpe2xldCBtcj1hcmd1bWVudHMubGVu'@; put 'Z3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sZWE9bnVsbCx6YT1udWxsLHVjPW51bGwsRTA9bnVsbDtpZigkbD0hbHMsJGwmJihscz0iXHgzYyEtLVx4M2UiKSwic3RyaW5nIiE9dHlwZW9mIGxzJiYhSk4obHMpKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgbHMu'@; put 'dG9TdHJpbmcpdGhyb3cgcEUoInRvU3RyaW5nIGlzIG5vdCBhIGZ1bmN0aW9uIik7aWYoInN0cmluZyIhPXR5cGVvZihscz1scy50b1N0cmluZygpKSl0aHJvdyBwRSgiZGlydHkgaXMgbm90IGEgc3RyaW5nLCBhYm9ydGluZyIpfWlmKCFsLmlzU3VwcG9ydGVkKXJldHVybiBscztpZihObnx8'@; put 'RTEobXIpLGwucmVtb3ZlZD1bXSwic3RyaW5nIj09dHlwZW9mIGxzJiYoRHM9ITEpLERzKXtpZihscy5ub2RlTmFtZSl7Y29uc3QgVDM9SnUobHMubm9kZU5hbWUpO2lmKCFoYVtUM118fFluW1QzXSl0aHJvdyBwRSgicm9vdCBub2RlIGlzIGZvcmJpZGRlbiBhbmQgY2Fubm90IGJlIHNhbml0'@; put 'aXplZCBpbi1wbGFjZSIpfX1lbHNlIGlmKGxzIGluc3RhbmNlb2YgTSllYT1YTigiXHgzYyEtLS0tXHgzZSIpLHphPWVhLm93bmVyRG9jdW1lbnQuaW1wb3J0Tm9kZShscywhMCksMT09PXphLm5vZGVUeXBlJiYiQk9EWSI9PT16YS5ub2RlTmFtZXx8IkhUTUwiPT09emEubm9kZU5hbWU/ZWE9'@; put 'emE6ZWEuYXBwZW5kQ2hpbGQoemEpO2Vsc2V7aWYoIVduJiYheG4mJiFYbiYmLTE9PT1scy5pbmRleE9mKCI8IikpcmV0dXJuIG1uJiZEcj9tbi5jcmVhdGVIVE1MKGxzKTpscztpZihlYT1YTihscyksIWVhKXJldHVybiBXbj9udWxsOkRyP3duOiIifWVhJiZ2ciYmWjAoZWEuZmlyc3RDaGls'@; put 'ZCk7Y29uc3Qga3U9cU4oRHM/bHM6ZWEpO2Zvcig7dWM9a3UubmV4dE5vZGUoKTspUU4odWMpLG5WKHVjKSx1Yy5jb250ZW50IGluc3RhbmNlb2YgZiYmZW5lKHVjLmNvbnRlbnQpO2lmKERzKXJldHVybiBscztpZihXbil7aWYoZnIpZm9yKEUwPU1yLmNhbGwoZWEub3duZXJEb2N1bWVudCk7'@; put 'ZWEuZmlyc3RDaGlsZDspRTAuYXBwZW5kQ2hpbGQoZWEuZmlyc3RDaGlsZCk7ZWxzZSBFMD1lYTtyZXR1cm4odnQuc2hhZG93cm9vdHx8dnQuc2hhZG93cm9vdG1vZGUpJiYoRTA9cW4uY2FsbChkLEUwLCEwKSksRTB9bGV0IEExPVhuP2VhLm91dGVySFRNTDplYS5pbm5lckhUTUw7cmV0dXJu'@; put 'IFhuJiZoYVsiIWRvY3R5cGUiXSYmZWEub3duZXJEb2N1bWVudCYmZWEub3duZXJEb2N1bWVudC5kb2N0eXBlJiZlYS5vd25lckRvY3VtZW50LmRvY3R5cGUubmFtZSYmSzEoXzJlLGVhLm93bmVyRG9jdW1lbnQuZG9jdHlwZS5uYW1lKSYmKEExPSI8IURPQ1RZUEUgIitlYS5vd25lckRvY3Vt'@; put 'ZW50LmRvY3R5cGUubmFtZSsiPlxuIitBMSkseG4mJklPKFtxcixfaSxQbl0sVDM9PntBMT1mRShBMSxUMywiICIpfSksbW4mJkRyP21uLmNyZWF0ZUhUTUwoQTEpOkExfSxsLnNldENvbmZpZz1mdW5jdGlvbigpe0UxKGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBd'@; put 'P2FyZ3VtZW50c1swXTp7fSksTm49ITB9LGwuY2xlYXJDb25maWc9ZnVuY3Rpb24oKXtNNj1udWxsLE5uPSExfSxsLmlzVmFsaWRBdHRyaWJ1dGU9ZnVuY3Rpb24obHMsbXIsZWEpe002fHxFMSh7fSk7Y29uc3QgemE9SnUobHMpLHVjPUp1KG1yKTtyZXR1cm4gZVYoemEsdWMsZWEpfSxsLmFk'@; put 'ZEhvb2s9ZnVuY3Rpb24obHMsbXIpeyJmdW5jdGlvbiI9PXR5cGVvZiBtciYmaEUoZ3JbbHNdLG1yKX0sbC5yZW1vdmVIb29rPWZ1bmN0aW9uKGxzLG1yKXtpZih2b2lkIDAhPT1tcil7Y29uc3QgZWE9VFhlKGdyW2xzXSxtcik7cmV0dXJuLTE9PT1lYT92b2lkIDA6QVhlKGdyW2xzXSxlYSwx'@; put 'KVswXX1yZXR1cm4gZjJlKGdyW2xzXSl9LGwucmVtb3ZlSG9va3M9ZnVuY3Rpb24obHMpe2dyW2xzXT1bXX0sbC5yZW1vdmVBbGxIb29rcz1mdW5jdGlvbigpe2dyPXthZnRlclNhbml0aXplQXR0cmlidXRlczpbXSxhZnRlclNhbml0aXplRWxlbWVudHM6W10sYWZ0ZXJTYW5pdGl6ZVNoYWRv'@; put 'd0RPTTpbXSxiZWZvcmVTYW5pdGl6ZUF0dHJpYnV0ZXM6W10sYmVmb3JlU2FuaXRpemVFbGVtZW50czpbXSxiZWZvcmVTYW5pdGl6ZVNoYWRvd0RPTTpbXSx1cG9uU2FuaXRpemVBdHRyaWJ1dGU6W10sdXBvblNhbml0aXplRWxlbWVudDpbXSx1cG9uU2FuaXRpemVTaGFkb3dOb2RlOltdfX0s'@; put 'bH0oKTtmdW5jdGlvbiBNMmUoYyl7Y29uc3QgbD1jLmxlbmd0aDtsZXQgYT0wO2Zvcig7YTxsOyljW2FdPVtjW2FdXSxhKz0xfWZ1bmN0aW9uIGQkKGMsbCl7Y29uc3QgYT1sLmxlbmd0aDtsZXQgZD0wO2Zvcig7ZDxhOyljLnB1c2gobFtkXSksZCs9MX1mdW5jdGlvbiB2RShjKXtjb25zdCBs'@; put 'PVtdO2lmKCFjfHwwPT09Yy5sZW5ndGh8fCFjWzBdfHwwPT09Y1swXS5sZW5ndGgpcmV0dXJuIGw7Y29uc3QgYT1jLmxlbmd0aCxkPWNbMF0ubGVuZ3RoO2ZvcihsZXQgaD0wO2g8YTtoKyspZm9yKGxldCBmPTA7ZjxkO2YrKylsW2ZdfHwobFtmXT1bXSksbFtmXVtoXT1jW2hdW2ZdO3JldHVy'@; put 'biBsfWZ1bmN0aW9uIEd1KGMsbCxhLGQpe2xldCBoPS0xLGY9Yyx2PWE7QXJyYXkuaXNBcnJheShjKXx8KGY9QXJyYXkuZnJvbShjKSk7Y29uc3QgTT1mLmxlbmd0aDtmb3IoZCYmTSYmKGgrPTEsdj1mW2hdKSxoKz0xO2g8TTspdj1sKHYsZltoXSxoLGYpLGgrPTE7cmV0dXJuIHZ9ZnVuY3Rp'@; put 'b24gQW0oYyxsKXtsZXQgYT0wLGQ9YztBcnJheS5pc0FycmF5KGMpfHwoZD1BcnJheS5mcm9tKGMpKTtjb25zdCBoPWQubGVuZ3RoLGY9W107bGV0IHY9LTE7Zm9yKDthPGg7KXtjb25zdCBNPWRbYV07bChNLGEsZCkmJih2Kz0xLGZbdl09TSksYSs9MX1yZXR1cm4gZn1mdW5jdGlvbiB5byhj'@; put 'LGwpe2xldCBhPTAsZD1jO0FycmF5LmlzQXJyYXkoYyl8fChkPUFycmF5LmZyb20oYykpO2NvbnN0IGg9ZC5sZW5ndGgsZj1bXTtsZXQgdj0tMTtmb3IoO2E8aDspdis9MSxmW3ZdPWwoZFthXSxhLGQpLGErPTE7cmV0dXJuIGZ9ZnVuY3Rpb24gS24oYyxsKXtsZXQgYT0wLGQ9YztBcnJheS5p'@; put 'c0FycmF5KGMpfHwoZD1BcnJheS5mcm9tKGMpKTtjb25zdCBoPWQubGVuZ3RoO2Zvcig7YTxoJiYhMSE9PWwoZFthXSxhLGQpOylhKz0xO3JldHVybiBjfWZ1bmN0aW9uIHgyZShjKXtyZXR1cm4gR3UoYywobCxhKT0+bCthLDApfWZ1bmN0aW9uIFlYZShjKXtyZXR1cm4gR3UoYywobCxhKT0+'@; put 'bD5hP2w6YSxBcnJheS5pc0FycmF5KGMpP2NbMF06dm9pZCAwKX1mdW5jdGlvbiBHWGUoYyl7cmV0dXJuIEd1KGMsKGwsYSk9Pmw8YT9sOmEsQXJyYXkuaXNBcnJheShjKT9jWzBdOnZvaWQgMCl9ZnVuY3Rpb24gJFhlKGMpe3JldHVybiBjLmxlbmd0aD94MmUoYykvYy5sZW5ndGg6MH1mdW5j'@; put 'dGlvbiBFMmUoYyl7cmV0dXJuIEd1KGMsKGwsYSk9PmwuY29uY2F0KEFycmF5LmlzQXJyYXkoYSk/RTJlKGEpOmEpLFtdKX1mdW5jdGlvbiBUMmUoYyl7Y29uc3QgbD1bXTtyZXR1cm4gS24oYyxhPT57LTE9PT1sLmluZGV4T2YoYSkmJmwucHVzaChhKX0pLGx9ZnVuY3Rpb24gaCQoKXtmb3Io'@; put 'dmFyIGM9YXJndW1lbnRzLmxlbmd0aCxsPW5ldyBBcnJheShjKSxhPTA7YTxjO2ErKylsW2FdPWFyZ3VtZW50c1thXTtjb25zdFtkLC4uLmhdPVsuLi5sXTtsZXQgZj1kO3JldHVybiBLbihoLHY9PntmPWYuZmlsdGVyKE09PiF2LmluY2x1ZGVzKE0pKX0pLGZ9ZnVuY3Rpb24gS1hlKCl7Zm9y'@; put 'KHZhciBjPWFyZ3VtZW50cy5sZW5ndGgsbD1uZXcgQXJyYXkoYyksYT0wO2E8YzthKyspbFthXT1hcmd1bWVudHNbYV07Y29uc3RbZCwuLi5oXT1bLi4ubF07bGV0IGY9ZDtyZXR1cm4gS24oaCx2PT57Zj1mLmZpbHRlcihNPT52LmluY2x1ZGVzKE0pKX0pLGZ9ZnVuY3Rpb24gWFhlKCl7Zm9y'@; put 'KHZhciBjPWFyZ3VtZW50cy5sZW5ndGgsbD1uZXcgQXJyYXkoYyksYT0wO2E8YzthKyspbFthXT1hcmd1bWVudHNbYV07Y29uc3RbZCwuLi5oXT1bLi4ubF0sZj1uZXcgU2V0KGQpO3JldHVybiBLbihoLHY9PntLbih2LE09PntmLmhhcyhNKXx8Zi5hZGQoTSl9KX0pLEFycmF5LmZyb20oZil9'@; put 'ZnVuY3Rpb24gZiQoYyl7cmV0dXJuIGMuc3BsaXQoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOiIgIil9ZnVuY3Rpb24gaGwoYyl7Zm9yKHZhciBsPWFyZ3VtZW50cy5sZW5ndGgsYT1uZXcgQXJyYXkobD4xP2wtMTowKSxkPTE7ZDxsO2Qr'@; put 'KylhW2QtMV09YXJndW1lbnRzW2RdO3JldHVybiBHdShjLChmLHYsTSk9PmYrdi5yZXBsYWNlKC9ccj9cblxzKi9nLCIiKSsoYVtNXT9hW01dOiIiKSwiIikudHJpbSgpfWZ1bmN0aW9uIG9jKGMpe2xldCBsO3N3aXRjaCh0eXBlb2YgYyl7Y2FzZSJzdHJpbmciOmNhc2UibnVtYmVyIjpsPWAk'@; put 'e2N9YDticmVhaztjYXNlIm9iamVjdCI6bD1udWxsPT09Yz8iIjpjLnRvU3RyaW5nKCk7YnJlYWs7Y2FzZSJ1bmRlZmluZWQiOmw9IiI7YnJlYWs7ZGVmYXVsdDpsPWMudG9TdHJpbmcoKX1yZXR1cm4gbH1mdW5jdGlvbiBIYShjKXtyZXR1cm4gdHlwZW9mIGM8InUifWZ1bmN0aW9uIGJjKGMp'@; put 'e3JldHVybiB0eXBlb2YgYz4idSJ9ZnVuY3Rpb24gamMoYyl7cmV0dXJuIG51bGw9PT1jfHwiIj09PWN8fGJjKGMpfWZ1bmN0aW9uIEEyZShjKXtyZXR1cm4iW29iamVjdCBSZWdFeHBdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChjKX1jb25zdCB5RT0ibGVuZ3RoIixiRT1j'@; put 'PT5wYXJzZUludChjLDE2KSxrMmU9Yz0+cGFyc2VJbnQoYywxMCksT089KGMsbCxhKT0+Yy5zdWJzdHIobCxhKSxfRT1jPT5jLmNvZGVQb2ludEF0KDApLTY1LHAkPWM9PmAke2N9YC5yZXBsYWNlKC9cLS9nLCIiKSxxWGU9Yz0+YkUoT08ocCQoYyksYkUoIjEyIiksX0UoIkYiKSkpLyhiRShP'@; put 'TyhwJChjKSxfRSgiQiIpLH5+IVtdW3lFXSkpfHw5KSxKWGU9KCk9PnR5cGVvZiBsb2NhdGlvbjwidSImJi9eKFthLXowLTlcLV0rXC4pP1x4NjhceDYxXHg2RVx4NjRceDczXHg2Rlx4NkVceDc0XHg2MVx4NjJceDZDXHg2NVx4MkVceDYzXHg2Rlx4NkQkL2kudGVzdChsb2NhdGlvbi5ob3N0'@; put 'KTtsZXQgRDJlPSExO2NvbnN0IEkyZT17aW52YWxpZDooKT0+aGxgCiAgICBUaGUgbGljZW5zZSBrZXkgZm9yIEhhbmRzb250YWJsZSBpcyBpbnZhbGlkLlx4MjAKICAgIElmIHlvdSBuZWVkIGFueSBoZWxwLCBjb250YWN0IHVzIGF0IHN1cHBvcnRAaGFuZHNvbnRhYmxlLmNvbS5gLGV4cGly'@; put 'ZWQ6Yz0+e2xldHtrZXlWYWxpZGl0eURhdGU6bCxob3RWZXJzaW9uOmF9PWM7cmV0dXJuIGhsYAogICAgVGhlIGxpY2Vuc2Uga2V5IGZvciBIYW5kc29udGFibGUgZXhwaXJlZCBvbiAke2x9LCBhbmQgaXMgbm90IHZhbGlkIGZvciB0aGUgaW5zdGFsbGVkXHgyMAogICAgdmVyc2lvbiAke2F9'@; put 'LiBSZW5ldyB5b3VyIGxpY2Vuc2Uga2V5IGF0IGhhbmRzb250YWJsZS5jb20gb3IgZG93bmdyYWRlIHRvIGEgdmVyc2lvbiByZWxlYXNlZCBwcmlvclx4MjAKICAgIHRvICR7bH0uIElmIHlvdSBuZWVkIGFueSBoZWxwLCBjb250YWN0IHVzIGF0IHNhbGVzQGhhbmRzb250YWJsZS5jb20uYH0s'@; put 'bWlzc2luZzooKT0+aGxgCiAgICBUaGUgbGljZW5zZSBrZXkgZm9yIEhhbmRzb250YWJsZSBpcyBtaXNzaW5nLiBVc2UgeW91ciBwdXJjaGFzZWQga2V5IHRvIGFjdGl2YXRlIHRoZSBwcm9kdWN0Llx4MjAKICAgIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gYWN0aXZhdGUgSGFuZHNvbnRhYmxl'@; put 'IHRvIHVzZSBmb3Igbm9uLWNvbW1lcmNpYWwgcHVycG9zZXMgYnlceDIwCiAgICBwYXNzaW5nIHRoZSBrZXk6ICdub24tY29tbWVyY2lhbC1hbmQtZXZhbHVhdGlvbicuIElmIHlvdSBuZWVkIGFueSBoZWxwLCBjb250YWN0XHgyMAogICAgdXMgYXQgc3VwcG9ydEBoYW5kc29udGFibGUuY29t'@; put 'LmAsbm9uX2NvbW1lcmNpYWw6KCk9PiIifSxSMmU9e2ludmFsaWQ6KCk9PmhsYAogICAgVGhlIGxpY2Vuc2Uga2V5IGZvciBIYW5kc29udGFibGUgaXMgaW52YWxpZC5ceDIwCiAgICA8YSBocmVmPSJodHRwczovL2hhbmRzb250YWJsZS5jb20vZG9jcy90dXRvcmlhbC1saWNlbnNlLWtleS5o'@; put 'dG1sIiB0YXJnZXQ9Il9ibGFuayI+UmVhZCBtb3JlPC9hPiBvbiBob3cgdG9ceDIwCiAgICBpbnN0YWxsIGl0IHByb3Blcmx5IG9yIGNvbnRhY3QgdXMgYXQgPGEgaHJlZj0ibWFpbHRvOnN1cHBvcnRAaGFuZHNvbnRhYmxlLmNvbSI+c3VwcG9ydEBoYW5kc29udGFibGUuY29tPC9hPi5gLGV4'@; put 'cGlyZWQ6Yz0+e2xldHtrZXlWYWxpZGl0eURhdGU6bCxob3RWZXJzaW9uOmF9PWM7cmV0dXJuIGhsYAogICAgVGhlIGxpY2Vuc2Uga2V5IGZvciBIYW5kc29udGFibGUgZXhwaXJlZCBvbiAke2x9LCBhbmQgaXMgbm90IHZhbGlkIGZvciB0aGUgaW5zdGFsbGVkXHgyMAogICAgdmVyc2lvbiAk'@; put 'e2F9LiA8YSBocmVmPSJodHRwczovL2hhbmRzb250YWJsZS5jb20vcHJpY2luZyIgdGFyZ2V0PSJfYmxhbmsiPlJlbmV3PC9hPiB5b3VyXHgyMAogICAgbGljZW5zZSBrZXkgb3IgZG93bmdyYWRlIHRvIGEgdmVyc2lvbiByZWxlYXNlZCBwcmlvciB0byAke2x9LiBJZiB5b3UgbmVlZCBhbnlc'@; put 'eDIwCiAgICBoZWxwLCBjb250YWN0IHVzIGF0IDxhIGhyZWY9Im1haWx0bzpzYWxlc0BoYW5kc29udGFibGUuY29tIj5zYWxlc0BoYW5kc29udGFibGUuY29tPC9hPi5gfSxtaXNzaW5nOigpPT5obGAKICAgIFRoZSBsaWNlbnNlIGtleSBmb3IgSGFuZHNvbnRhYmxlIGlzIG1pc3NpbmcuIFVz'@; put 'ZSB5b3VyIHB1cmNoYXNlZCBrZXkgdG8gYWN0aXZhdGUgdGhlIHByb2R1Y3QuXHgyMAogICAgQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBhY3RpdmF0ZSBIYW5kc29udGFibGUgdG8gdXNlIGZvciBub24tY29tbWVyY2lhbCBwdXJwb3NlcyBieVx4MjAKICAgIHBhc3NpbmcgdGhlIGtleTogJ25v'@; put 'bi1jb21tZXJjaWFsLWFuZC1ldmFsdWF0aW9uJy5ceDIwCiAgICA8YSBocmVmPSJodHRwczovL2hhbmRzb250YWJsZS5jb20vZG9jcy90dXRvcmlhbC1saWNlbnNlLWtleS5odG1sIiB0YXJnZXQ9Il9ibGFuayI+UmVhZCBtb3JlPC9hPiBhYm91dCBpdCBpblx4MjAKICAgIHRoZSBkb2N1bWVu'@; put 'dGF0aW9uIG9yIGNvbnRhY3QgdXMgYXQgPGEgaHJlZj0ibWFpbHRvOnN1cHBvcnRAaGFuZHNvbnRhYmxlLmNvbSI+c3VwcG9ydEBoYW5kc29udGFibGUuY29tPC9hPi5gLG5vbl9jb21tZXJjaWFsOigpPT4iIn07ZnVuY3Rpb24gTDJlKGMsbCl7Y29uc3QgYT0hamMoYyksZD0ic3RyaW5nIj09'@; put 'dHlwZW9mIGMmJiJub24tY29tbWVyY2lhbC1hbmQtZXZhbHVhdGlvbiI9PT1jLnRvTG93ZXJDYXNlKCksaD0iMTYuMC4xIjtsZXQgZix2PSJpbnZhbGlkIixNPSJpbnZhbGlkIjtjb25zdCBJPWZ1bmN0aW9uIFFYZShjKXtsZXQgbD1bXVt5RV0sYT1sO2lmKGNbeUVdIT09X0UoIloiKSlyZXR1'@; put 'cm4hMTtmb3IobGV0IGQ9IiIsaD0iQjxINFArIi5zcGxpdCgiIiksZj1fRShoLnNoaWZ0KCkpO2Y7Zj1fRShoLnNoaWZ0KCl8fCJBIikpLS1mPCIiW3lFXT9hfD0oazJlKGAke2syZShiRShkKSsoYkUoT08oYyxNYXRoLmFicyhmKSwyKSkrW10pLnBhZFN0YXJ0KDIsIjAiKSl9YCklOTd8fDIp'@; put 'Pj4xOmQ9T08oYyxmLGY/MT09PWhbeUVdPzk6ODo2KTtyZXR1cm4gYT09PWx9KGM9cCQoY3x8IiIpKTtpZihhfHxkfHxJKWlmKEkpe2NvbnN0IEc9UHMoIjEwLzA3LzIwMjUiLCJERC9NTS9ZWVlZIikscmU9TWF0aC5mbG9vcihHLnRvRGF0ZSgpLmdldFRpbWUoKS84NjRlNSksdWU9cVhlKGMp'@; put 'O2Y9UHMoODY0ZTUqKHVlKzEpLCJ4IikuZm9ybWF0KCJNTU1NIERELCBZWVlZIikscmU+dWU/KHY9ImV4cGlyZWQiLE09ImV4cGlyZWQiKToodj0idmFsaWQiLE09InZhbGlkIil9ZWxzZSBkPyh2PSJub25fY29tbWVyY2lhbCIsTT0idmFsaWQiKToodj0iaW52YWxpZCIsTT0iaW52YWxpZCIp'@; put 'O2Vsc2Ugdj0ibWlzc2luZyIsTT0ibWlzc2luZyI7aWYoSlhlKCkmJih2PSJ2YWxpZCIsTT0idmFsaWQiKSwhRDJlJiYidmFsaWQiIT09diYmKEkyZVt2XSh7a2V5VmFsaWRpdHlEYXRlOmYsaG90VmVyc2lvbjpofSkmJmNvbnNvbGVbIm5vbl9jb21tZXJjaWFsIj09PXY/ImluZm8iOiJ3YXJu'@; put 'Il0oSTJlW3ZdKHtrZXlWYWxpZGl0eURhdGU6Zixob3RWZXJzaW9uOmh9KSksRDJlPSEwKSwidmFsaWQiIT09TSYmbCYmUjJlW01dKHtrZXlWYWxpZGl0eURhdGU6Zixob3RWZXJzaW9uOmh9KSl7Y29uc3QgcmU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmUuY2xhc3NOYW1lPSJo'@; put 'YW5kc29udGFibGUgaG90LWRpc3BsYXktbGljZW5zZS1pbmZvIixyZS5pbm5lckhUTUw9UjJlW01dKHtrZXlWYWxpZGl0eURhdGU6Zixob3RWZXJzaW9uOmh9KSxsLmFwcGVuZENoaWxkKHJlKX19ZnVuY3Rpb24gZjEoYyl7cmV0dXJuIGNbMF0udG9VcHBlckNhc2UoKStjLnN1YnN0cigxKX1m'@; put 'dW5jdGlvbiBlcWUoKXtjb25zdCBjPVtdO2Zvcih2YXIgbD1hcmd1bWVudHMubGVuZ3RoLGE9bmV3IEFycmF5KGwpLGQ9MDtkPGw7ZCsrKWFbZF09YXJndW1lbnRzW2RdO2xldCBoPWEubGVuZ3RoO2Zvcig7aDspe2gtPTE7Y29uc3QgZj1vYyhhW2hdKS50b0xvd2VyQ2FzZSgpOy0xPT09Yy5p'@; put 'bmRleE9mKGYpJiZjLnB1c2goZil9cmV0dXJuIDE9PT1jLmxlbmd0aH1mdW5jdGlvbiBnJCgpe2Z1bmN0aW9uIGMoKXtyZXR1cm4gTWF0aC5mbG9vcig2NTUzNiooMStNYXRoLnJhbmRvbSgpKSkudG9TdHJpbmcoMTYpLnN1YnN0cmluZygxKX1yZXR1cm4gYygpK2MoKStjKCkrYygpfWZ1bmN0'@; put 'aW9uIG0kKGMpe3JldHVybi9eKFswLTldWzAtOV0/JSQpfCheMTAwJSQpLy50ZXN0KGMpfWZ1bmN0aW9uIHYkKGMpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtyZXR1cm5gJHtjfWAucmVwbGFjZSgvKD86XFwpP1xbKFte'@; put 'W1xdXSspXS9nLChhLGQpPT4iXFwiPT09YS5jaGFyQXQoMCk/YS5zdWJzdHIoMSxhLmxlbmd0aC0xKTp2b2lkIDA9PT1sW2RdPyIiOmxbZF0pfWZ1bmN0aW9uIHkkKGMpe3JldHVybiBQTyhgJHtjfWAse0FMTE9XRURfVEFHUzpbXX0pfWZ1bmN0aW9uIFBPKGMsbCl7cmV0dXJuIFdYZS5zYW5p'@; put 'dGl6ZShjLGwpfWNvbnN0IGttPWM9PlsidGFiaW5kZXgiLGNdLGRxZT0oKT0+WyJyb2xlIiwiY2hlY2tib3giXSxuXz1jPT5bImFyaWEtbGFiZWwiLGNdLE43PSgpPT5bImFyaWEtaGlkZGVuIiwidHJ1ZSJdLEgyZT1jPT5bImFyaWEtaGFzcG9wdXAiLGNdLE4yZT1jPT5bImFyaWEtcm93Y291'@; put 'bnQiLGNdLEZPPWM9PlsiYXJpYS1jb2xjb3VudCIsY10sVjJlPWM9PlsiYXJpYS1yb3dpbmRleCIsY10sYiQ9Yz0+WyJhcmlhLWNvbGluZGV4IixjXSxCMj1jPT5bImFyaWEtZXhwYW5kZWQiLGNdLEIyZT0oKT0+WyJhcmlhLXJlYWRvbmx5IiwidHJ1ZSJdLGoyZT0oKT0+WyJhcmlhLWludmFs'@; put 'aWQiLCJ0cnVlIl0sejJlPWM9PlsiYXJpYS1jaGVja2VkIixjXSxicWU9Yz0+WyJhcmlhLWNvbnRyb2xzIixjXSx3cWU9Yz0+WyJhcmlhLWxpdmUiLGNdLENxZT1jPT5bImFyaWEtcmVsZXZhbnQiLGNdLFNxZT1jPT5bImFyaWEtc2V0c2l6ZSIsY10sTXFlPWM9PlsiYXJpYS1wb3NpbnNldCIs'@; put 'Y107ZnVuY3Rpb24gcl8oYyl7bGV0IGw7cmV0dXJuIEFycmF5LmlzQXJyYXkoYyk/bD1jLmxlbmd0aD9uZXcgQXJyYXkoYy5sZW5ndGgpLmZpbGwobnVsbCk6W106KGw9e30scXMoYywoYSxkKT0+eyJfX2NoaWxkcmVuIiE9PWQmJihsW2RdPWEmJiJvYmplY3QiPT10eXBlb2YgYSYmIUFycmF5'@; put 'LmlzQXJyYXkoYSk/cl8oYSk6QXJyYXkuaXNBcnJheShhKT9hLmxlbmd0aCYmIm9iamVjdCI9PXR5cGVvZiBhWzBdJiYhQXJyYXkuaXNBcnJheShhWzBdKT9bcl8oYVswXSldOltdOm51bGwpfSkpLGx9ZnVuY3Rpb24gVTJlKGMsbCl7cmV0dXJuIGwucHJvdG90eXBlLmNvbnN0cnVjdG9yPWws'@; put 'Yy5wcm90b3R5cGU9bmV3IGwsYy5wcm90b3R5cGUuY29uc3RydWN0b3I9YyxjfWZ1bmN0aW9uIHd1KGMsbCxhKXtjb25zdCBkPUFycmF5LmlzQXJyYXkoYSk7cmV0dXJuIHFzKGwsKGgsZik9PnsoITE9PT1kfHxhLmluY2x1ZGVzKGYpKSYmKGNbZl09aCl9KSxjfWZ1bmN0aW9uIHdFKGMsbCl7'@; put 'cXMobCwoYSxkKT0+e2xbZF0mJiJvYmplY3QiPT10eXBlb2YgbFtkXT8oY1tkXXx8KGNbZF09QXJyYXkuaXNBcnJheShsW2RdKT9bXToiW29iamVjdCBEYXRlXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobFtkXSk/bFtkXTp7fSksd0UoY1tkXSxsW2RdKSk6Y1tkXT1sW2Rd'@; put 'fSl9ZnVuY3Rpb24gcDEoYyl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBjP0pTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYykpOmN9ZnVuY3Rpb24gczMoYyl7Y29uc3QgbD17fTtyZXR1cm4gcXMoYywoYSxkKT0+e2xbZF09YX0pLGx9ZnVuY3Rpb24geGwoYyl7Yy5NSVhJTlN8fChjLk1JWElO'@; put 'Uz1bXSk7Zm9yKHZhciBsPWFyZ3VtZW50cy5sZW5ndGgsYT1uZXcgQXJyYXkobD4xP2wtMTowKSxkPTE7ZDxsO2QrKylhW2QtMV09YXJndW1lbnRzW2RdO3JldHVybiBLbihhLGg9PntjLk1JWElOUy5wdXNoKGguTUlYSU5fTkFNRSkscXMoaCwoZix2KT0+e2lmKHZvaWQgMCE9PWMucHJvdG90'@; put 'eXBlW3ZdKXRocm93IG5ldyBFcnJvcihgTWl4aW4gY29uZmxpY3QuIFByb3BlcnR5ICcke3Z9JyBhbHJlYWR5IGV4aXN0IGFuZCBjYW5ub3QgYmUgb3ZlcndyaXR0ZW4uYCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGYpYy5wcm90b3R5cGVbdl09ZjtlbHNle2NvbnN0IEk9ZnVuY3Rpb24ocmUp'@; put 'e2NvbnN0IHVlPWBfJHtyZX1gO3JldHVybiBmdW5jdGlvbih5ZSl7dGhpc1t1ZV09eWV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoYy5wcm90b3R5cGUsdix7Z2V0OmZ1bmN0aW9uKHJlLHVlKXtjb25zdCB5ZT1gXyR7cmV9YDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09dGhp'@; put 'c1t5ZV0mJih0aGlzW3llXT0oQmU9PntsZXQgR2U9QmU7cmV0dXJuKEFycmF5LmlzQXJyYXkoR2UpfHxYcyhHZSkpJiYoR2U9cDEoR2UpKSxHZX0pKHVlKSksdGhpc1t5ZV19fSh2LGYpLHNldDpJKHYpLGNvbmZpZ3VyYWJsZTohMH0pfX0pfSksY31mdW5jdGlvbiBITyhjLGwpe3JldHVybiBK'@; put 'U09OLnN0cmluZ2lmeShjKT09PUpTT04uc3RyaW5naWZ5KGwpfWZ1bmN0aW9uIFhzKGMpe3JldHVybiJbb2JqZWN0IE9iamVjdF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGMpfWZ1bmN0aW9uIFRwKGMsbCxhLGQpe2QudmFsdWU9YSxkLndyaXRhYmxlPSExIT09ZC53cml0'@; put 'YWJsZSxkLmVudW1lcmFibGU9ITEhPT1kLmVudW1lcmFibGUsZC5jb25maWd1cmFibGU9ITEhPT1kLmNvbmZpZ3VyYWJsZSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLGQpfWZ1bmN0aW9uIHFzKGMsbCl7Zm9yKGNvbnN0IGEgaW4gYylpZigoIWMuaGFzT3duUHJvcGVydHl8fGMuaGFzT3du'@; put 'UHJvcGVydHkmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjLGEpKSYmITE9PT1sKGNbYV0sYSxjKSlicmVhaztyZXR1cm4gY31mdW5jdGlvbiBaMmUoYyxsKXtjb25zdCBhPWwuc3BsaXQoIi4iKTtsZXQgZD1jO3JldHVybiBxcyhhLGg9PntpZihkPWRbaF0sdm9pZCAw'@; put 'PT09ZClyZXR1cm4gZD12b2lkIDAsITF9KSxkfWZ1bmN0aW9uIE5PKGMsbCxhKXtpZigic3RyaW5nIiE9dHlwZW9mIGwpcmV0dXJuO2NvbnN0IGQ9bC5zcGxpdCgiLiIpO2xldCBoPWM7ZC5mb3JFYWNoKChmLHYpPT57Il9fcHJvdG9fXyI9PT1mfHwiY29uc3RydWN0b3IiPT09Znx8InByb3Rv'@; put 'dHlwZSI9PT1mfHwodiE9PWQubGVuZ3RoLTE/KEN1KGgsZil8fChoW2ZdPXt9KSxoPWhbZl0pOmhbZl09YSl9KX1mdW5jdGlvbiBWTyhjKXtpZighWHMoYykpcmV0dXJuIDA7Y29uc3QgbD1mdW5jdGlvbihhKXtsZXQgZD0wO3JldHVybiBYcyhhKT9xcyhhLChoLGYpPT57Il9fY2hpbGRyZW4i'@; put 'IT09ZiYmKGQrPWwoaCkpfSk6ZCs9MSxkfTtyZXR1cm4gbChjKX1mdW5jdGlvbiBGZChjKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06InZhbHVlIjtjb25zdCBhPWBfJHtsfWAsZD17X3RvdWNoZWQ6ITEsW2FdOmMsaXNUb3Vj'@; put 'aGVkKCl7cmV0dXJuIHRoaXMuX3RvdWNoZWR9fTtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsbCx7Z2V0KCl7cmV0dXJuIHRoaXNbYV19LHNldChoKXt0aGlzLl90b3VjaGVkPSEwLHRoaXNbYV09aH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxkfWZ1bmN0aW9uIEN1'@; put 'KGMsbCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjLGwpfWZ1bmN0aW9uIENFKGMpe3JldHVybiB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGMpfWZ1bmN0aW9uIFNFKGMpe3dpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShjKX1mdW5jdGlvbiB3'@; put 'JCgpe3JldHVybiJvbnRvdWNoc3RhcnQiaW4gd2luZG93fWZ1bmN0aW9uIFcyZSgpe3JldHVybiB0eXBlb2Ygd2luZG93PCJ1In1sZXQgaV87ZnVuY3Rpb24gWTJlKGMpe3JldHVybiBpX3x8KGlfPSJvYmplY3QiPT10eXBlb2YgSW50bD9uZXcgSW50bC5Db2xsYXRvcihjLGFyZ3VtZW50cy5s'@; put 'ZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSkuY29tcGFyZToiZnVuY3Rpb24iPT10eXBlb2YgU3RyaW5nLnByb3RvdHlwZS5sb2NhbGVDb21wYXJlPyhhLGQpPT5gJHthfWAubG9jYWxlQ29tcGFyZShkKTooYSxkKT0+YT09PWQ/MDphPmQ/LTE6MSxpXyl9'@; put 'Yig5NTQ5Myk7Y29uc3QgajI9Yz0+e2NvbnN0IGw9e3ZhbHVlOiExLHRlc3Q6KGEsZCk9PntsLnZhbHVlPWMoYSxkKX19O3JldHVybiBsfSx2Zz17Y2hyb21lOmoyKChjLGwpPT4vQ2hyb21lLy50ZXN0KGMpJiYvR29vZ2xlLy50ZXN0KGwpKSxjaHJvbWVXZWJLaXQ6ajIoYz0+L0NyaU9TLy50'@; put 'ZXN0KGMpKSxlZGdlOmoyKGM9Pi9FZGdlLy50ZXN0KGMpKSxlZGdlV2ViS2l0OmoyKGM9Pi9FZGdpT1MvLnRlc3QoYykpLGZpcmVmb3g6ajIoYz0+L0ZpcmVmb3gvLnRlc3QoYykpLGZpcmVmb3hXZWJLaXQ6ajIoYz0+L0Z4aU9TLy50ZXN0KGMpKSxtb2JpbGU6ajIoYz0+L0FuZHJvaWR8d2Vi'@; put 'T1N8aVBob25lfGlQYWR8aVBvZHxCbGFja0JlcnJ5fElFTW9iaWxlfE9wZXJhIE1pbmkvaS50ZXN0KGMpKSxzYWZhcmk6ajIoKGMsbCk9Pi9TYWZhcmkvLnRlc3QoYykmJi9BcHBsZSBDb21wdXRlci8udGVzdChsKSl9LGFfPXttYWM6ajIoYz0+L15NYWMvLnRlc3QoYykpLHdpbjpqMihjPT4v'@; put 'Xldpbi8udGVzdChjKSksbGludXg6ajIoYz0+L15MaW51eC8udGVzdChjKSksaW9zOmoyKGM9Pi9pUGhvbmV8aVBhZHxpUG9kL2kudGVzdChjKSl9O2Z1bmN0aW9uIEcyZSgpe2xldHt1c2VyQWdlbnQ6Yz1uYXZpZ2F0b3IudXNlckFnZW50LHZlbmRvcjpsPW5hdmlnYXRvci52ZW5kb3J9PWFy'@; put 'Z3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTtxcyh2ZyxhPT57bGV0e3Rlc3Q6ZH09YTtkKGMsbCl9KX1mdW5jdGlvbiAkMmUoKXtsZXR7cGxhdGZvcm06Yz1uYXZpZ2F0b3IucGxhdGZvcm19PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAw'@; put 'IT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTtxcyhhXyxsPT57bGV0e3Rlc3Q6YX09bDthKGMpfSl9ZnVuY3Rpb24gQyQoKXtyZXR1cm4gdmcuY2hyb21lLnZhbHVlfWZ1bmN0aW9uIEsyZSgpe3JldHVybiB2Zy5jaHJvbWVXZWJLaXQudmFsdWV9ZnVuY3Rpb24gQk8oKXtyZXR1cm4g'@; put 'dmcuZmlyZWZveC52YWx1ZX1mdW5jdGlvbiBYMmUoKXtyZXR1cm4gdmcuZmlyZWZveFdlYktpdC52YWx1ZX1mdW5jdGlvbiBzXygpe3JldHVybiB2Zy5zYWZhcmkudmFsdWV9ZnVuY3Rpb24gcTJlKCl7cmV0dXJuIHZnLmVkZ2UudmFsdWV9ZnVuY3Rpb24geHFlKCl7cmV0dXJuIHZnLmVkZ2VX'@; put 'ZWJLaXQudmFsdWV9ZnVuY3Rpb24gbzMoKXtyZXR1cm4gdmcubW9iaWxlLnZhbHVlfWZ1bmN0aW9uIFMkKCl7cmV0dXJuIGFfLmlvcy52YWx1ZX1mdW5jdGlvbiBNJCgpe2xldHttYXhUb3VjaFBvaW50czpjfT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1'@; put 'bWVudHNbMF06bmF2aWdhdG9yO3JldHVybiBjPjImJmFfLm1hYy52YWx1ZX1mdW5jdGlvbiBqTygpe3JldHVybiBhXy53aW4udmFsdWV9ZnVuY3Rpb24gek8oKXtyZXR1cm4gYV8ubWFjLnZhbHVlfWZ1bmN0aW9uIEVxZSgpe3JldHVybiBhXy5saW51eC52YWx1ZX1mdW5jdGlvbiBKMmUoYyl7'@; put 'bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjAsYT0tMSxkPW51bGwsaD1jO2Zvcig7bnVsbCE9PWg7KXtpZihhPT09bCl7ZD1oO2JyZWFrfWguaG9zdCYmaC5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERT9o'@; put 'PWguaG9zdDooYSs9MSxoPWgucGFyZW50Tm9kZSl9cmV0dXJuIGR9ZnVuY3Rpb24gTUUoYyxsKXtjb25zdCBhPWMuY2xvc2VzdCgiLmhhbmRzb250YWJsZSIpO3JldHVybiEhYSYmKGEucGFyZW50Tm9kZT09PWx8fGE9PT1sKX1mdW5jdGlvbiBRMmUoYyl7cmV0dXJuIE9iamVjdC5nZXRQcm90'@; put 'b3R5cGVPZihjLnBhcmVudCkmJmMuZnJhbWVFbGVtZW50fWZ1bmN0aW9uIFY3KGMpe3JldHVybiBRMmUoYykmJmMucGFyZW50fWZ1bmN0aW9uIFRxZShjKXtyZXR1cm4hIU9iamVjdC5nZXRQcm90b3R5cGVPZihjLnBhcmVudCl9ZnVuY3Rpb24gRG0oYyl7bGV0IGw9YXJndW1lbnRzLmxlbmd0'@; put 'aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOltdLGE9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDA7Y29uc3R7RUxFTUVOVF9OT0RFOmQsRE9DVU1FTlRfRlJBR01FTlRfTk9ERTpofT1Ob2RlO2xldCBmPWM7Zm9yKDtudWxsIT1mJiZmIT09YTsp'@; put 'e2NvbnN0e25vZGVUeXBlOnYsbm9kZU5hbWU6TX09ZjtpZih2PT09ZCYmKGwuaW5jbHVkZXMoTSl8fGwuaW5jbHVkZXMoZikpKXJldHVybiBmO2NvbnN0e2hvc3Q6SX09ZjtmPUkmJnY9PT1oP0k6Zi5wYXJlbnROb2RlfXJldHVybiBudWxsfWZ1bmN0aW9uIHhFKGMsbCxhKXtjb25zdCBkPVtd'@; put 'O2xldCBoPWM7Zm9yKDtoJiYoaD1EbShoLGwsYSksaCYmKCFhfHxhLmNvbnRhaW5zKGgpKSk7KWQucHVzaChoKSxoPWguaG9zdCYmaC5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERT9oLmhvc3Q6aC5wYXJlbnROb2RlO2NvbnN0IGY9ZC5sZW5ndGg7cmV0dXJuIGY/ZFtm'@; put 'LTFdOm51bGx9ZnVuY3Rpb24gZWZlKGMsbCl7Y29uc3QgYT17ZWxlbWVudDp2b2lkIDAsY2xhc3NOYW1lczpbXX07bGV0IGQ9Yztmb3IoO251bGwhPT1kJiZkIT09Yy5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmIWEuZWxlbWVudDspe2lmKCJzdHJpbmciPT10eXBlb2YgbCYmZC5j'@; put 'bGFzc0xpc3QuY29udGFpbnMobCkpYS5lbGVtZW50PWQsYS5jbGFzc05hbWVzLnB1c2gobCk7ZWxzZSBpZihsIGluc3RhbmNlb2YgUmVnRXhwKXtjb25zdCBoPUFycmF5LmZyb20oZC5jbGFzc0xpc3QpLmZpbHRlcihmPT5sLnRlc3QoZikpO2gubGVuZ3RoJiYoYS5lbGVtZW50PWQsYS5jbGFz'@; put 'c05hbWVzLnB1c2goLi4uaCkpfWQ9ZC5wYXJlbnRFbGVtZW50fXJldHVybiBhfWZ1bmN0aW9uIEltKGMsbCl7bGV0IGE9Yy5wYXJlbnROb2RlLGQ9W107Zm9yKCJzdHJpbmciPT10eXBlb2YgbD9kPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGMuZGVmYXVsdFZpZXc/Yy5xdWVyeVNlbGVj'@; put 'dG9yQWxsKGwpOmMub3duZXJEb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGwpLDApOmQucHVzaChsKTtudWxsIT09YTspe2lmKGQuaW5kZXhPZihhKT4tMSlyZXR1cm4hMDthPWEucGFyZW50Tm9kZX1yZXR1cm4hMX1mdW5jdGlvbiB0ZmUoYyl7bGV0IGw9MCxhPWM7aWYoYS5wcmV2aW91c1Np'@; put 'YmxpbmcpZm9yKDthPWEucHJldmlvdXNTaWJsaW5nOylsKz0xO3JldHVybiBsfWZ1bmN0aW9uIFJtKGMsbCxhKXtjb25zdCBkPWEucGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yKGAuaHRfY2xvbmVfJHtjfWApO3JldHVybiBkP2QuY29udGFpbnMobCk6bnVsbH1mdW5jdGlvbiBuZmUoYyl7'@; put 'cmV0dXJuIGMmJmMubGVuZ3RoP2MuZmlsdGVyKGw9PiEhbCk6W119ZnVuY3Rpb24gcmZlKGMsbCl7aWYoIWN8fCFjLmxlbmd0aClyZXR1cm4gbD97cmVnZXhGcmVlOltdLHJlZ2V4ZXM6W119OltdO2NvbnN0IGE9W10sZD1bXTtyZXR1cm4gZC5wdXNoKC4uLmMuZmlsdGVyKGg9Pntjb25zdCBm'@; put 'PWggaW5zdGFuY2VvZiBSZWdFeHA7cmV0dXJuIGYmJmwmJmEucHVzaChoKSwhZn0pKSxsP3tyZWdleEZyZWU6ZCxyZWdleGVzOmF9OmR9ZnVuY3Rpb24gZ3MoYyxsKXtyZXR1cm4gdm9pZCAwIT09Yy5jbGFzc0xpc3QmJiJzdHJpbmciPT10eXBlb2YgbCYmIiIhPT1sJiZjLmNsYXNzTGlzdC5j'@; put 'b250YWlucyhsKX1mdW5jdGlvbiBFaShjLGwpeyJzdHJpbmciPT10eXBlb2YgbCYmKGw9bC5zcGxpdCgiICIpKSwobD1uZmUobCkpLmxlbmd0aD4wJiZjLmNsYXNzTGlzdC5hZGQoLi4ubCl9ZnVuY3Rpb24gaHMoYyxsKXsic3RyaW5nIj09dHlwZW9mIGw/bD1sLnNwbGl0KCIgIik6bCBpbnN0'@; put 'YW5jZW9mIFJlZ0V4cCYmKGw9W2xdKTtsZXR7cmVnZXhGcmVlOmEscmVnZXhlczpkfT1yZmUobCwhMCk7YT1uZmUoYSksYS5sZW5ndGg+MCYmYy5jbGFzc0xpc3QucmVtb3ZlKC4uLmEpLGQuZm9yRWFjaChoPT57Yy5jbGFzc0xpc3QuZm9yRWFjaChmPT57aC50ZXN0KGYpJiZjLmNsYXNzTGlz'@; put 'dC5yZW1vdmUoZil9KX0pfWZ1bmN0aW9uIG1zKGMpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpbXSxhPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwO0FycmF5LmlzQXJyYXkobCl8fChsPVtbbCxhXV0p'@; put 'LGwuZm9yRWFjaChkPT57QXJyYXkuaXNBcnJheShkKSYmIiIhPT1kWzBdJiZjLnNldEF0dHJpYnV0ZSguLi5kKX0pfWZ1bmN0aW9uIEI3KGMpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpbXTsic3RyaW5nIj09dHlwZW9mIGw/'@; put 'bD1sLnNwbGl0KCIgIik6bCBpbnN0YW5jZW9mIFJlZ0V4cCYmKGw9W2xdKTtjb25zdHtyZWdleEZyZWU6YSxyZWdleGVzOmR9PXJmZShsLCEwKTthLmZvckVhY2goaD0+eyIiIT09aCYmYy5yZW1vdmVBdHRyaWJ1dGUoaCl9KSxkLmZvckVhY2goaD0+e2MuZ2V0QXR0cmlidXRlTmFtZXMoKS5m'@; put 'b3JFYWNoKGY9PntoLnRlc3QoZikmJmMucmVtb3ZlQXR0cmlidXRlKGYpfSl9KX1mdW5jdGlvbiB4JChjKXtpZigzPT09Yy5ub2RlVHlwZSljLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYyk7ZWxzZSBpZihbIlRBQkxFIiwiVEhFQUQiLCJUQk9EWSIsIlRGT09UIiwiVFIiXS5pbmRleE9mKGMu'@; put 'bm9kZU5hbWUpPi0xKXtjb25zdCBsPWMuY2hpbGROb2Rlcztmb3IobGV0IGE9bC5sZW5ndGgtMTthPj0wO2EtLSl4JChsW2FdKX19ZnVuY3Rpb24gQXAoYyl7bGV0IGw7Zm9yKDtsPWMubGFzdENoaWxkOyljLnJlbW92ZUNoaWxkKGwpfVcyZSgpJiYoRzJlKCksJDJlKCkpO2NvbnN0IGlmZT0v'@; put 'KDwoLiopPnwmKC4qKTspLztmdW5jdGlvbiBqNyhjLGwpe2xldCBhPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl07aWZlLnRlc3QobCk/Yy5pbm5lckhUTUw9YT9QTyhsKTpsOkxtKGMsbCl9ZnVuY3Rpb24gTG0oYyxsKXtjb25zdCBh'@; put 'PWMuZmlyc3RDaGlsZDthJiYzPT09YS5ub2RlVHlwZSYmbnVsbD09PWEubmV4dFNpYmxpbmc/YS50ZXh0Q29udGVudD1sOihBcChjKSxjLmFwcGVuZENoaWxkKGMub3duZXJEb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShsKSkpfWZ1bmN0aW9uIHo3KGMpe2NvbnN0IGw9Yy5vd25lckRvY3VtZW50'@; put 'LmRvY3VtZW50RWxlbWVudCxhPWMub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztsZXQgZD1jO2Zvcig7ZCE9PWw7KXtpZihudWxsPT09ZClyZXR1cm4hMTtpZihkLm5vZGVUeXBlPT09Tm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFKXtpZihkLmhvc3Qpe2lmKGQuaG9zdC5pbXBsKXJldHVy'@; put 'biB6NyhkLmhvc3QuaW1wbCk7aWYoZC5ob3N0KXJldHVybiB6NyhkLmhvc3QpO3Rocm93IG5ldyBFcnJvcigiTG9zdCBpbiBXZWIgQ29tcG9uZW50cyB3b3JsZCIpfXJldHVybiExfWlmKCJub25lIj09PWEuZ2V0Q29tcHV0ZWRTdHlsZShkKS5kaXNwbGF5KXJldHVybiExO2Q9ZC5wYXJlbnRO'@; put 'b2RlfXJldHVybiEwfWZ1bmN0aW9uIGFmZShjKXtjb25zdCBhPWMub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztsZXQgZD1jO2Zvcig7ZC5wYXJlbnROb2RlOyl7aWYoIjBweCI9PT1kLnN0eWxlLmhlaWdodHx8IjAiPT09ZC5zdHlsZS5oZWlnaHQpcmV0dXJuImhpZGRlbiI9PT1hLmdldENv'@; put 'bXB1dGVkU3R5bGUoZCkub3ZlcmZsb3c7ZD1kLnBhcmVudE5vZGV9cmV0dXJuITF9ZnVuY3Rpb24gajAoYyl7Y29uc3QgbD1jLm93bmVyRG9jdW1lbnQsYT1sLmRlZmF1bHRWaWV3LGQ9bC5kb2N1bWVudEVsZW1lbnQ7bGV0IGYsdixNLGg9Yztmb3IoZj1oLm9mZnNldExlZnQsdj1oLm9mZnNl'@; put 'dFRvcCxNPWg7KGg9aC5vZmZzZXRQYXJlbnQpJiZoIT09bC5ib2R5JiYib2Zmc2V0TGVmdCJpbiBoOylmKz1oLm9mZnNldExlZnQsdis9aC5vZmZzZXRUb3AsTT1oO3JldHVybiBNJiYiZml4ZWQiPT09TS5zdHlsZS5wb3NpdGlvbiYmKGYrPWEucGFnZVhPZmZzZXR8fGQuc2Nyb2xsTGVmdCx2'@; put 'Kz1hLnBhZ2VZT2Zmc2V0fHxkLnNjcm9sbFRvcCkse2xlZnQ6Zix0b3A6dn19ZnVuY3Rpb24gRSQoKXtyZXR1cm4oYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOndpbmRvdykuc2Nyb2xsWX1mdW5jdGlvbiBVTygpe3JldHVybihhcmd1bWVu'@; put 'dHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06d2luZG93KS5zY3JvbGxYfWZ1bmN0aW9uIFpPKGMpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp3aW5kb3c7cmV0dXJuIGM9PT1sP0UkKGwp'@; put 'OmMuc2Nyb2xsVG9wfWZ1bmN0aW9uIFQkKGMpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp3aW5kb3c7cmV0dXJuIGM9PT1sP1VPKGwpOmMuc2Nyb2xsTGVmdH1mdW5jdGlvbiBFRShjKXtsZXQgbD1jLm93bmVyRG9jdW1lbnQs'@; put 'YT1sP2wuZGVmYXVsdFZpZXc6dm9pZCAwO2x8fChsPWMuZG9jdW1lbnQ/Yy5kb2N1bWVudDpjLGE9bC5kZWZhdWx0Vmlldyk7Y29uc3QgZD1bImF1dG8iLCJzY3JvbGwiXTtsZXQgaD1jLnBhcmVudE5vZGU7Zm9yKDtoJiZoLnN0eWxlJiZsLmJvZHkhPT1oOyl7bGV0e292ZXJmbG93OmYsb3Zl'@; put 'cmZsb3dYOnYsb3ZlcmZsb3dZOk19PWguc3R5bGU7aWYoW2YsdixNXS5pbmNsdWRlcygic2Nyb2xsIikpcmV0dXJuIGg7aWYoKHtvdmVyZmxvdzpmLG92ZXJmbG93WDp2LG92ZXJmbG93WTpNfT1hLmdldENvbXB1dGVkU3R5bGUoaCkpLGQuaW5jbHVkZXMoZil8fGQuaW5jbHVkZXModil8fGQu'@; put 'aW5jbHVkZXMoTSl8fGguY2xpZW50SGVpZ2h0PD1oLnNjcm9sbEhlaWdodCsxJiYoZC5pbmNsdWRlcyhNKXx8ZC5pbmNsdWRlcyhmKSl8fGguY2xpZW50V2lkdGg8PWguc2Nyb2xsV2lkdGgrMSYmKGQuaW5jbHVkZXModil8fGQuaW5jbHVkZXMoZikpKXJldHVybiBoO2g9aC5wYXJlbnROb2Rl'@; put 'fXJldHVybiBhfWZ1bmN0aW9uIHNmZShjKXtyZXR1cm4gYy5zY3JvbGxIZWlnaHQtYy5jbGllbnRIZWlnaHR9ZnVuY3Rpb24gb2ZlKGMpe3JldHVybiBjLnNjcm9sbFdpZHRoLWMuY2xpZW50V2lkdGh9ZnVuY3Rpb24gb18oYyl7Y29uc3QgbD1jLm93bmVyRG9jdW1lbnQsYT1sLmRlZmF1bHRW'@; put 'aWV3O2xldCBkPWMucGFyZW50Tm9kZTtmb3IoO2QmJmQuc3R5bGUmJmwuYm9keSE9PWQ7KXtpZigidmlzaWJsZSIhPT1kLnN0eWxlLm92ZXJmbG93JiYiIiE9PWQuc3R5bGUub3ZlcmZsb3cpcmV0dXJuIGQ7Y29uc3QgaD1hLmdldENvbXB1dGVkU3R5bGUoZCksZj1bInNjcm9sbCIsImhpZGRl'@; put 'biIsImF1dG8iXSx2PWguZ2V0UHJvcGVydHlWYWx1ZSgib3ZlcmZsb3ciKSxNPWguZ2V0UHJvcGVydHlWYWx1ZSgib3ZlcmZsb3cteSIpLEk9aC5nZXRQcm9wZXJ0eVZhbHVlKCJvdmVyZmxvdy14Iik7aWYoZi5pbmNsdWRlcyh2KXx8Zi5pbmNsdWRlcyhNKXx8Zi5pbmNsdWRlcyhJKSlyZXR1'@; put 'cm4gZDtkPWQucGFyZW50Tm9kZX1yZXR1cm4gYX1mdW5jdGlvbiBURShjLGwpe2xldCBhPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp3aW5kb3c7aWYoIWMpcmV0dXJuO2lmKGM9PT1hKXJldHVybiJ3aWR0aCI9PT1sP2Ake2EuaW5uZXJX'@; put 'aWR0aH1weGA6ImhlaWdodCI9PT1sP2Ake2EuaW5uZXJIZWlnaHR9cHhgOnZvaWQgMDtjb25zdCBkPWMuc3R5bGVbbF07aWYoIiIhPT1kJiZ2b2lkIDAhPT1kKXJldHVybiBkO2NvbnN0IGg9YS5nZXRDb21wdXRlZFN0eWxlKGMpO3JldHVybiIiIT09aFtsXSYmdm9pZCAwIT09aFtsXT9oW2xd'@; put 'OnZvaWQgMH1mdW5jdGlvbiBBcWUoYyxsKXtjb25zdHtzZWxlY3RvclRleHQ6YX09bDtsZXQgZD0hMTtyZXR1cm4gbC50eXBlPT09Q1NTUnVsZS5TVFlMRV9SVUxFJiZhJiYoYy5tc01hdGNoZXNTZWxlY3Rvcj9kPWMubXNNYXRjaGVzU2VsZWN0b3IoYSk6Yy5tYXRjaGVzJiYoZD1jLm1hdGNo'@; put 'ZXMoYSkpKSxkfWZ1bmN0aW9uIGl1KGMpe3JldHVybiBjLm9mZnNldFdpZHRofWZ1bmN0aW9uIFN1KGMpe3JldHVybiBjLm9mZnNldEhlaWdodH1mdW5jdGlvbiBsXyhjKXtyZXR1cm4gYy5jbGllbnRIZWlnaHR8fGMuaW5uZXJIZWlnaHR9ZnVuY3Rpb24gQSQoYyl7cmV0dXJuIGMuY2xpZW50'@; put 'V2lkdGh8fGMuaW5uZXJXaWR0aH1mdW5jdGlvbiBrcWUoYyxsLGEpe2MuYWRkRXZlbnRMaXN0ZW5lcihsLGEsITEpfWZ1bmN0aW9uIERxZShjLGwsYSl7Yy5yZW1vdmVFdmVudExpc3RlbmVyKGwsYSwhMSl9ZnVuY3Rpb24gayQoYyl7cmV0dXJuIGMuc2VsZWN0aW9uU3RhcnQ/Yy5zZWxlY3Rp'@; put 'b25TdGFydDowfWZ1bmN0aW9uIGxmZShjKXtyZXR1cm4gYy5zZWxlY3Rpb25FbmQ/Yy5zZWxlY3Rpb25FbmQ6MH1mdW5jdGlvbiBJcWUoKXtsZXQgYz1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06d2luZG93O2NvbnN0IGw9Yy5kb2N1bWVu'@; put 'dDtsZXQgYT0iIjtyZXR1cm4gYy5nZXRTZWxlY3Rpb24/YT1jLmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk6bC5zZWxlY3Rpb24mJiJDb250cm9sIiE9PWwuc2VsZWN0aW9uLnR5cGUmJihhPWwuc2VsZWN0aW9uLmNyZWF0ZVJhbmdlKCkudGV4dCksYX1mdW5jdGlvbiBEJCgpe2xldCBjPWFy'@; put 'Z3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp3aW5kb3c7Yy5nZXRTZWxlY3Rpb24mJihjLmdldFNlbGVjdGlvbigpLmVtcHR5P2MuZ2V0U2VsZWN0aW9uKCkuZW1wdHkoKTpjLmdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcyYmYy5nZXRT'@; put 'ZWxlY3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMoKSl9ZnVuY3Rpb24gQUUoYyxsLGEpe2lmKHZvaWQgMD09PWEmJihhPWwpLGMuc2V0U2VsZWN0aW9uUmFuZ2Upe2MuZm9jdXMoKTt0cnl7Yy5zZXRTZWxlY3Rpb25SYW5nZShsLGEpfWNhdGNoe2NvbnN0IGg9Yy5wYXJlbnROb2RlLGY9aC5zdHls'@; put 'ZS5kaXNwbGF5O2guc3R5bGUuZGlzcGxheT0iYmxvY2siLGMuc2V0U2VsZWN0aW9uUmFuZ2UobCxhKSxoLnN0eWxlLmRpc3BsYXk9Zn19fWxldCBJJDtmdW5jdGlvbiBSJCgpe2xldCBjPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpkb2N1'@; put 'bWVudDtyZXR1cm4gak8oKT9OdW1iZXIuaXNJbnRlZ2VyKGMuZGVmYXVsdFZpZXcuZGV2aWNlUGl4ZWxSYXRpb3x8MSk/MDoyOjB9ZnVuY3Rpb24gZDAoKXtsZXQgYz1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06ZG9jdW1lbnQ7cmV0dXJu'@; put 'IHZvaWQgMD09PUkkJiYoSSQ9ZnVuY3Rpb24gUnFlKCl7bGV0IGM9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOmRvY3VtZW50O2NvbnN0IGw9Yy5jcmVhdGVFbGVtZW50KCJkaXYiKTtsLnN0eWxlLmhlaWdodD0iMjAwcHgiLGwuc3R5bGUu'@; put 'd2lkdGg9IjEwMCUiO2NvbnN0IGE9Yy5jcmVhdGVFbGVtZW50KCJkaXYiKTtzXygpJiYhbzMoKSYmYS5jbGFzc0xpc3QuYWRkKCJodFNjcm9sbGJhclNhZmFyaVRlc3QiKSxhLnN0eWxlLmJveFNpemluZz0iY29udGVudC1ib3giLGEuc3R5bGUuaGVpZ2h0PSIxNTBweCIsYS5zdHlsZS5sZWZ0'@; put 'PSIwcHgiLGEuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsYS5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLGEuc3R5bGUudG9wPSIwcHgiLGEuc3R5bGUud2lkdGg9IjIwMHB4IixhLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIsYS5hcHBlbmRDaGlsZChsKSwoYy5ib2R5fHxjLmRvY3VtZW50'@; put 'RWxlbWVudCkuYXBwZW5kQ2hpbGQoYSk7Y29uc3QgZD1sLm9mZnNldFdpZHRoO2Euc3R5bGUub3ZlcmZsb3c9InNjcm9sbCI7bGV0IGg9bC5vZmZzZXRXaWR0aDtyZXR1cm4gZD09PWgmJihoPWEuY2xpZW50V2lkdGgpLChjLmJvZHl8fGMuZG9jdW1lbnRFbGVtZW50KS5yZW1vdmVDaGlsZChh'@; put 'KSxkLWgrUiQoYyl9KGMpKSxJJH1mdW5jdGlvbiBMJChjKXtyZXR1cm4gYyBpbnN0YW5jZW9mIFdpbmRvdz9jLmRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0PmMuaW5uZXJIZWlnaHQ6Yy5vZmZzZXRXaWR0aCE9PWMuY2xpZW50V2lkdGh9ZnVuY3Rpb24gTyQoYyl7cmV0dXJuIGMgaW5zdGFu'@; put 'Y2VvZiBXaW5kb3c/Yy5kb2N1bWVudC5ib2R5LnNjcm9sbFdpZHRoPmMuaW5uZXJXaWR0aDpjLm9mZnNldEhlaWdodCE9PWMuY2xpZW50SGVpZ2h0fWZ1bmN0aW9uIFdPKGMsbCxhKXtjLnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlM2QoJHtsfSwke2F9LDApYH1mdW5jdGlvbiBMcWUoYyl7'@; put 'bGV0IGw7cmV0dXJuIGMuc3R5bGUudHJhbnNmb3JtJiYiIiE9PShsPWMuc3R5bGUudHJhbnNmb3JtKT9bInRyYW5zZm9ybSIsbF06LTF9ZnVuY3Rpb24ga0UoYyl7Yy5zdHlsZS50cmFuc2Zvcm0mJiIiIT09Yy5zdHlsZS50cmFuc2Zvcm0mJihjLnN0eWxlLnRyYW5zZm9ybT0iIil9ZnVuY3Rp'@; put 'b24gREUoYyl7cmV0dXJuIGMmJihbIklOUFVUIiwiU0VMRUNUIiwiVEVYVEFSRUEiXS5pbmRleE9mKGMubm9kZU5hbWUpPi0xfHwidHJ1ZSI9PT1jLmNvbnRlbnRFZGl0YWJsZSl9ZnVuY3Rpb24gWU8oYyl7cmV0dXJuIERFKGMpJiYhMT09PWMuaGFzQXR0cmlidXRlKCJkYXRhLWhvdC1pbnB1'@; put 'dCIpfWZ1bmN0aW9uIE9xZShjKXtZTyhjLm93bmVyRG9jdW1lbnQuYWN0aXZlRWxlbWVudCl8fGMuc2VsZWN0KCl9ZnVuY3Rpb24gUCQoYyl7cmV0dXJuIWMucGFyZW50Tm9kZX1mdW5jdGlvbiBjZmUoYyxsKXtuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKGQsaCk9PntkLmZvckVhY2goZj0+'@; put 'e2YuaXNJbnRlcnNlY3RpbmcmJm51bGwhPT1jLm9mZnNldFBhcmVudCYmKGwoKSxoLnVub2JzZXJ2ZShjKSl9KX0se3Jvb3Q6Yy5vd25lckRvY3VtZW50LmJvZHl9KS5vYnNlcnZlKGMpfWZ1bmN0aW9uIEYkKGMpe2xldCBsPSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVu'@; put 'dHNbMV0pfHxhcmd1bWVudHNbMV0sYT0hKGFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdO2NvbnN0IGQ9Yy5vd25lckRvY3VtZW50LGg9ZC5jcmVhdGVSYW5nZSgpLGY9ZC5kZWZhdWx0Vmlldy5nZXRTZWxlY3Rpb24oKTttcyhjLCJjb250'@; put 'ZW50ZWRpdGFibGUiLCEwKSxhJiZtcyhjLC4uLk43KCkpLGwmJkVpKGMsImludmlzaWJsZVNlbGVjdGlvbiIpLGguc2VsZWN0Tm9kZUNvbnRlbnRzKGMpLGYucmVtb3ZlQWxsUmFuZ2VzKCksZi5hZGRSYW5nZShoKX1mdW5jdGlvbiBIJChjKXtsZXQgbD0hKGFyZ3VtZW50cy5sZW5ndGg+MSYm'@; put 'dm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdO2NvbnN0IGE9Yy5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldFNlbGVjdGlvbigpO2MuaGFzQXR0cmlidXRlKCJhcmlhLWhpZGRlbiIpJiZjLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iKSxhLnJlbW92ZUFsbFJh'@; put 'bmdlcygpLGwmJmhzKGMsImludmlzaWJsZVNlbGVjdGlvbiIpLGMucmVtb3ZlQXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKX1mdW5jdGlvbiB1ZmUoYyxsKXtsZXQgYT0hKGFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdO0YkKGMsYSks'@; put 'bCgpLEgkKGMsYSl9ZnVuY3Rpb24ga3AoYyl7dmFyIGw7Y29uc3QgYT1udWxsPT1jfHxudWxsPT09KGw9Yy5vd25lckRvY3VtZW50KXx8dm9pZCAwPT09bD92b2lkIDA6bC5kZWZhdWx0Vmlldy5FbGVtZW50O3JldHVybiEhKGEmJm51bGwhPT1hJiZjIGluc3RhbmNlb2YgYSl9ZnVuY3Rpb24g'@; put 'ZmwoYyl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGN9ZnVuY3Rpb24gZGZlKGMpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToyMDAsYT0wO2NvbnN0IGQ9e2xhc3RDYWxsVGhyb3R0bGVkOiEwfTtsZXQgaD1udWxsO3JldHVy'@; put 'biBmdW5jdGlvbiBmKCl7Zm9yKHZhciB2PWFyZ3VtZW50cy5sZW5ndGgsTT1uZXcgQXJyYXkodiksST0wO0k8djtJKyspTVtJXT1hcmd1bWVudHNbSV07Y29uc3QgRz1EYXRlLm5vdygpO2xldCByZT0hMTtkLmxhc3RDYWxsVGhyb3R0bGVkPSEwLGF8fChhPUcscmU9ITApO2NvbnN0IHVlPWwt'@; put 'KEctYSk7cmV0dXJuIHJlPyhkLmxhc3RDYWxsVGhyb3R0bGVkPSExLGMuYXBwbHkodGhpcyxNKSk6KGgmJmNsZWFyVGltZW91dChoKSxoPXNldFRpbWVvdXQoKCk9PntkLmxhc3RDYWxsVGhyb3R0bGVkPSExLGMuYXBwbHkodGhpcyxNKSxhPTAsaD12b2lkIDB9LHVlKSksZH19ZnVuY3Rpb24g'@; put 'UHFlKGMpe2xldCBhPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXToxMDtjb25zdCBkPWRmZShjLGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToyMDApO2xldCBoPWE7ZnVuY3Rpb24gdigp'@; put 'e2Zvcih2YXIgTT1hcmd1bWVudHMubGVuZ3RoLEk9bmV3IEFycmF5KE0pLEc9MDtHPE07RysrKUlbR109YXJndW1lbnRzW0ddO3JldHVybiBoPyhoLT0xLGMuYXBwbHkodGhpcyxJKSk6ZC5hcHBseSh0aGlzLEkpfXJldHVybiB2LmNsZWFySGl0cz1mdW5jdGlvbiBmKCl7aD1hfSx2fWZ1bmN0'@; put 'aW9uIElFKGMpe2xldCBkLGw9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjIwMCxhPW51bGw7cmV0dXJuIGZ1bmN0aW9uIGgoKXtmb3IodmFyIGY9YXJndW1lbnRzLmxlbmd0aCx2PW5ldyBBcnJheShmKSxNPTA7TTxmO00rKyl2W01dPWFy'@; put 'Z3VtZW50c1tNXTtyZXR1cm4gYSYmY2xlYXJUaW1lb3V0KGEpLGE9c2V0VGltZW91dCgoKT0+e2Q9Yy5hcHBseSh0aGlzLHYpfSxsKSxkfX1mdW5jdGlvbiBGcWUoKXtmb3IodmFyIGM9YXJndW1lbnRzLmxlbmd0aCxsPW5ldyBBcnJheShjKSxhPTA7YTxjO2ErKylsW2FdPWFyZ3VtZW50c1th'@; put 'XTtjb25zdFtkLC4uLmhdPWw7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciB2PWFyZ3VtZW50cy5sZW5ndGgsTT1uZXcgQXJyYXkodiksST0wO0k8djtJKyspTVtJXT1hcmd1bWVudHNbSV07cmV0dXJuIEd1KGgsKEcscmUpPT5yZShHKSxkLmFwcGx5KHRoaXMsTSkpfX1mdW5jdGlvbiBOJChj'@; put 'KXtmb3IodmFyIGw9YXJndW1lbnRzLmxlbmd0aCxhPW5ldyBBcnJheShsPjE/bC0xOjApLGQ9MTtkPGw7ZCsrKWFbZC0xXT1hcmd1bWVudHNbZF07cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBmPWFyZ3VtZW50cy5sZW5ndGgsdj1uZXcgQXJyYXkoZiksTT0wO008ZjtNKyspdltNXT1hcmd1'@; put 'bWVudHNbTV07cmV0dXJuIGMuYXBwbHkodGhpcyxhLmNvbmNhdCh2KSl9fWZ1bmN0aW9uIGhmZShjKXtjb25zdCBsPWMubGVuZ3RoO3JldHVybiBmdW5jdGlvbiBhKGQpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgZj1hcmd1bWVudHMubGVuZ3RoLHY9bmV3IEFycmF5KGYpLE09MDtNPGY7'@; put 'TSsrKXZbTV09YXJndW1lbnRzW01dO2NvbnN0IEk9ZC5jb25jYXQodik7bGV0IEc7cmV0dXJuIEc9SS5sZW5ndGg+PWw/Yy5hcHBseSh0aGlzLEkpOmEoSSksR319KFtdKX1mdW5jdGlvbiBIcWUoYyl7Y29uc3QgbD1jLmxlbmd0aDtyZXR1cm4gZnVuY3Rpb24gYShkKXtyZXR1cm4gZnVuY3Rp'@; put 'b24oKXtmb3IodmFyIGY9YXJndW1lbnRzLmxlbmd0aCx2PW5ldyBBcnJheShmKSxNPTA7TTxmO00rKyl2W01dPWFyZ3VtZW50c1tNXTtjb25zdCBJPWQuY29uY2F0KHYucmV2ZXJzZSgpKTtsZXQgRztyZXR1cm4gRz1JLmxlbmd0aD49bD9jLmFwcGx5KHRoaXMsSSk6YShJKSxHfX0oW10pfWZ1'@; put 'bmN0aW9uIEdPKGMsbCxhLGQsaCxmLHYsTSl7cmV0dXJuIEhhKE0pP2MuY2FsbChsLGEsZCxoLGYsdixNKTpIYSh2KT9jLmNhbGwobCxhLGQsaCxmLHYpOkhhKGYpP2MuY2FsbChsLGEsZCxoLGYpOkhhKGgpP2MuY2FsbChsLGEsZCxoKTpIYShkKT9jLmNhbGwobCxhLGQpOkhhKGEpP2MuY2Fs'@; put 'bChsLGEpOmMuY2FsbChsKX1jb25zdCAkYT17QUxUOjE4LEFSUk9XX0RPV046NDAsQVJST1dfTEVGVDozNyxBUlJPV19SSUdIVDozOSxBUlJPV19VUDozOCxBVURJT19ET1dOOkJPKCk/MTgyOjE3NCxBVURJT19NVVRFOkJPKCk/MTgxOjE3MyxBVURJT19VUDpCTygpPzE4MzoxNzUsQkFDS1NQ'@; put 'QUNFOjgsQ0FQU19MT0NLOjIwLENPTU1BOjE4OCxDT01NQU5EX0xFRlQ6OTEsQ09NTUFORF9SSUdIVDo5MyxDT01NQU5EX0ZJUkVGT1g6MjI0LENPTlRST0w6MTcsREVMRVRFOjQ2LEVORDozNSxFTlRFUjoxMyxFU0NBUEU6MjcsRjE6MTEyLEYyOjExMyxGMzoxMTQsRjQ6MTE1LEY1OjExNixG'@; put 'NjoxMTcsRjc6MTE4LEY4OjExOSxGOToxMjAsRjEwOjEyMSxGMTE6MTIyLEYxMjoxMjMsRjEzOjEyNCxGMTQ6MTI1LEYxNToxMjYsRjE2OjEyNyxGMTc6MTI4LEYxODoxMjksRjE5OjEzMCxIT01FOjM2LElOU0VSVDo0NSxNRURJQV9ORVhUOjE3NixNRURJQV9QTEFZX1BBVVNFOjE3OSxNRURJ'@; put 'QV9QUkVWOjE3NyxNRURJQV9TVE9QOjE3OCxOVUxMOjAsTlVNX0xPQ0s6MTQ0LFBBR0VfRE9XTjozNCxQQUdFX1VQOjMzLFBBVVNFOjE5LFBFUklPRDoxOTAsU0NST0xMX0xPQ0s6MTQ1LFNISUZUOjE2LFNQQUNFOjMyLFRBQjo5LEE6NjUsQzo2NyxEOjY4LEY6NzAsTDo3NixPOjc5LFA6ODAs'@; put 'Uzo4MyxWOjg2LFg6ODgsWTo4OSxaOjkwfSxOcWU9WyRhLkFMVCwkYS5BUlJPV19ET1dOLCRhLkFSUk9XX0xFRlQsJGEuQVJST1dfUklHSFQsJGEuQVJST1dfVVAsJGEuQVVESU9fRE9XTiwkYS5BVURJT19NVVRFLCRhLkFVRElPX1VQLCRhLkJBQ0tTUEFDRSwkYS5DQVBTX0xPQ0ssJGEuREVM'@; put 'RVRFLCRhLkVORCwkYS5FTlRFUiwkYS5FU0NBUEUsJGEuRjEsJGEuRjIsJGEuRjMsJGEuRjQsJGEuRjUsJGEuRjYsJGEuRjcsJGEuRjgsJGEuRjksJGEuRjEwLCRhLkYxMSwkYS5GMTIsJGEuRjEzLCRhLkYxNCwkYS5GMTUsJGEuRjE2LCRhLkYxNywkYS5GMTgsJGEuRjE5LCRhLkhPTUUsJGEu'@; put 'SU5TRVJULCRhLk1FRElBX05FWFQsJGEuTUVESUFfUExBWV9QQVVTRSwkYS5NRURJQV9QUkVWLCRhLk1FRElBX1NUT1AsJGEuTlVMTCwkYS5OVU1fTE9DSywkYS5QQUdFX0RPV04sJGEuUEFHRV9VUCwkYS5QQVVTRSwkYS5TQ1JPTExfTE9DSywkYS5TSElGVCwkYS5UQUJdO2Z1bmN0aW9uIGZm'@; put 'ZShjKXtyZXR1cm4gMzI9PT1jfHxjPj00OCYmYzw9NTd8fGM+PTk2JiZjPD0xMTF8fGM+PTE4NiYmYzw9MTkyfHxjPj0yMTkmJmM8PTIyMnx8Yz49MjI2fHxjPj02NSYmYzw9OTB9ZnVuY3Rpb24gViQoYyl7cmV0dXJuIE5xZS5pbmNsdWRlcyhjKX1mdW5jdGlvbiBWcWUoYyl7Y29uc3QgbD1b'@; put 'XTtyZXR1cm4gek8oKT9sLnB1c2goJGEuQ09NTUFORF9MRUZULCRhLkNPTU1BTkRfUklHSFQsJGEuQ09NTUFORF9GSVJFRk9YKTpsLnB1c2goJGEuQ09OVFJPTCksbC5pbmNsdWRlcyhjKX1mdW5jdGlvbiBwZmUoYyl7cmV0dXJuWyRhLkNPTlRST0wsJGEuQ09NTUFORF9MRUZULCRhLkNPTU1B'@; put 'TkRfUklHSFQsJGEuQ09NTUFORF9GSVJFRk9YXS5pbmNsdWRlcyhjKX1mdW5jdGlvbiBjXyhjLGwpe2NvbnN0IGE9bC5zcGxpdCgifCIpO2xldCBkPSExO3JldHVybiBLbihhLGg9PntpZihjPT09JGFbaF0pcmV0dXJuIGQ9ITAsITF9KSxkfWZ1bmN0aW9uIHoyKGMpe2MuaXNJbW1lZGlhdGVQ'@; put 'cm9wYWdhdGlvbkVuYWJsZWQ9ITEsYy5jYW5jZWxCdWJibGU9ITB9ZnVuY3Rpb24gT20oYyl7cmV0dXJuITE9PT1jLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25FbmFibGVkfWZ1bmN0aW9uIFBtKGMpe3JldHVybiAyPT09Yy5idXR0b259ZnVuY3Rpb24gJE8oYyl7cmV0dXJuIDA9PT1jLmJ1dHRv'@; put 'bn1mdW5jdGlvbiBnZmUoYyl7cmV0dXJuIGMgaW5zdGFuY2VvZiBUb3VjaEV2ZW50fWZ1bmN0aW9uIG1mZShjLGwpe2NvbnN0IGE9e3g6Yy5vZmZzZXRYLHk6Yy5vZmZzZXRZfTtsZXQgZD1jLnRhcmdldDtpZigha3AobCl8fGQhPT1sJiZkLmNvbnRhaW5zKGwpKXJldHVybiBhO2Zvcig7ZCE9'@; put 'PWw7KWEueCs9ZC5vZmZzZXRMZWZ0LGEueSs9ZC5vZmZzZXRUb3AsZD1kLm9mZnNldFBhcmVudDtyZXR1cm4gYX1mdW5jdGlvbiBZbygpe0hhKGNvbnNvbGUpJiZjb25zb2xlLndhcm4oLi4uYXJndW1lbnRzKX1mdW5jdGlvbiBCJCgpe0hhKGNvbnNvbGUpJiZjb25zb2xlLmVycm9yKC4uLmFy'@; put 'Z3VtZW50cyl9Y29uc3QgVTc9WyJhZnRlckNlbGxNZXRhUmVzZXQiLCJhZnRlckNoYW5nZSIsImFmdGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucyIsImJlZm9yZUNvbnRleHRNZW51U2V0SXRlbXMiLCJhZnRlckRyb3Bkb3duTWVudURlZmF1bHRPcHRpb25zIiwiYmVmb3JlRHJvcGRvd25N'@; put 'ZW51U2V0SXRlbXMiLCJhZnRlckNvbnRleHRNZW51SGlkZSIsImJlZm9yZUNvbnRleHRNZW51U2hvdyIsImFmdGVyQ29udGV4dE1lbnVTaG93IiwiYWZ0ZXJDb3B5TGltaXQiLCJiZWZvcmVDcmVhdGVDb2wiLCJhZnRlckNvbHVtblNlcXVlbmNlQ2hhbmdlIiwiYWZ0ZXJDcmVhdGVDb2wiLCJi'@; put 'ZWZvcmVDcmVhdGVSb3ciLCJhZnRlckNyZWF0ZVJvdyIsImFmdGVyRGVzZWxlY3QiLCJhZnRlckRlc3Ryb3kiLCJhZnRlckRvY3VtZW50S2V5RG93biIsImFmdGVyRHJhd1NlbGVjdGlvbiIsImJlZm9yZVJlbW92ZUNlbGxDbGFzc05hbWVzIiwiYmVmb3JlQ29tcG9zaXRpb25TdGFydCIsImFm'@; put 'dGVyR2V0Q2VsbE1ldGEiLCJhZnRlckdldENvbEhlYWRlciIsImFmdGVyR2V0Um93SGVhZGVyIiwiYWZ0ZXJJbml0IiwiYWZ0ZXJMb2FkRGF0YSIsImFmdGVyVXBkYXRlRGF0YSIsImFmdGVyTW9tZW50dW1TY3JvbGwiLCJhZnRlck9uQ2VsbENvcm5lck1vdXNlRG93biIsImFmdGVyT25DZWxs'@; put 'Q29ybmVyRGJsQ2xpY2siLCJhZnRlck9uQ2VsbE1vdXNlRG93biIsImFmdGVyT25DZWxsTW91c2VVcCIsImFmdGVyT25DZWxsQ29udGV4dE1lbnUiLCJhZnRlck9uQ2VsbE1vdXNlT3ZlciIsImFmdGVyT25DZWxsTW91c2VPdXQiLCJhZnRlclJlbW92ZUNvbCIsImFmdGVyUmVtb3ZlUm93Iiwi'@; put 'YmVmb3JlUmVuZGVyZXIiLCJhZnRlclJlbmRlcmVyIiwiYWZ0ZXJSb3dTZXF1ZW5jZUNoYW5nZSIsImJlZm9yZVZpZXdwb3J0U2Nyb2xsVmVydGljYWxseSIsImJlZm9yZVZpZXdwb3J0U2Nyb2xsSG9yaXpvbnRhbGx5IiwiYmVmb3JlVmlld3BvcnRTY3JvbGwiLCJhZnRlclNjcm9sbEhvcml6'@; put 'b250YWxseSIsImFmdGVyU2Nyb2xsVmVydGljYWxseSIsImFmdGVyU2Nyb2xsIiwiYWZ0ZXJTZWxlY3Rpb24iLCJhZnRlclNlbGVjdGlvbkJ5UHJvcCIsImFmdGVyU2VsZWN0aW9uRW5kIiwiYWZ0ZXJTZWxlY3Rpb25FbmRCeVByb3AiLCJhZnRlclNlbGVjdGlvbkZvY3VzU2V0IiwiYmVmb3Jl'@; put 'U2VsZWN0Q29sdW1ucyIsImFmdGVyU2VsZWN0Q29sdW1ucyIsImJlZm9yZVNlbGVjdFJvd3MiLCJhZnRlclNlbGVjdFJvd3MiLCJhZnRlclNldENlbGxNZXRhIiwiYWZ0ZXJSZW1vdmVDZWxsTWV0YSIsImFmdGVyU2V0RGF0YUF0Q2VsbCIsImFmdGVyU2V0RGF0YUF0Um93UHJvcCIsImFmdGVy'@; put 'U2V0U291cmNlRGF0YUF0Q2VsbCIsImFmdGVyU2V0VGhlbWUiLCJhZnRlclVwZGF0ZVNldHRpbmdzIiwiYWZ0ZXJWYWxpZGF0ZSIsImJlZm9yZUxhbmd1YWdlQ2hhbmdlIiwiYWZ0ZXJMYW5ndWFnZUNoYW5nZSIsImJlZm9yZUF1dG9maWxsIiwiYWZ0ZXJBdXRvZmlsbCIsImJlZm9yZUNlbGxB'@; put 'bGlnbm1lbnQiLCJiZWZvcmVDaGFuZ2UiLCJiZWZvcmVDaGFuZ2VSZW5kZXIiLCJiZWZvcmVEcmF3Qm9yZGVycyIsImJlZm9yZUdldENlbGxNZXRhIiwiYmVmb3JlUmVtb3ZlQ2VsbE1ldGEiLCJiZWZvcmVJbml0IiwiYmVmb3JlSW5pdFdhbGtvbnRhYmxlIiwiYmVmb3JlTG9hZERhdGEiLCJi'@; put 'ZWZvcmVVcGRhdGVEYXRhIiwiYmVmb3JlS2V5RG93biIsImJlZm9yZU9uQ2VsbE1vdXNlRG93biIsImJlZm9yZU9uQ2VsbE1vdXNlVXAiLCJiZWZvcmVPbkNlbGxDb250ZXh0TWVudSIsImJlZm9yZU9uQ2VsbE1vdXNlT3ZlciIsImJlZm9yZU9uQ2VsbE1vdXNlT3V0IiwiYmVmb3JlUmVtb3Zl'@; put 'Q29sIiwiYmVmb3JlUmVtb3ZlUm93IiwiYmVmb3JlVmlld1JlbmRlciIsImFmdGVyVmlld1JlbmRlciIsImJlZm9yZVJlbmRlciIsImFmdGVyUmVuZGVyIiwiYmVmb3JlUm93V3JhcCIsImJlZm9yZUNvbHVtbldyYXAiLCJiZWZvcmVTZXRDZWxsTWV0YSIsImJlZm9yZVNlbGVjdGlvbkZvY3Vz'@; put 'U2V0IiwiYmVmb3JlU2V0UmFuZ2VTdGFydE9ubHkiLCJiZWZvcmVTZXRSYW5nZVN0YXJ0IiwiYmVmb3JlU2V0UmFuZ2VFbmQiLCJiZWZvcmVTZWxlY3Rpb25IaWdobGlnaHRTZXQiLCJiZWZvcmVUb3VjaFNjcm9sbCIsImJlZm9yZVZhbGlkYXRlIiwiYmVmb3JlVmFsdWVSZW5kZXIiLCJjb25z'@; put 'dHJ1Y3QiLCJpbml0IiwibW9kaWZ5Q29sSGVhZGVyIiwibW9kaWZ5Q29sV2lkdGgiLCJtb2RpZnlGaWx0ZXJzTXVsdGlTZWxlY3RWYWx1ZSIsIm1vZGlmeUZvY3VzZWRFbGVtZW50IiwibW9kaWZ5Um93SGVhZGVyIiwibW9kaWZ5Um93SGVpZ2h0IiwibW9kaWZ5Um93SGVpZ2h0QnlPdmVybGF5'@; put 'TmFtZSIsIm1vZGlmeURhdGEiLCJtb2RpZnlTb3VyY2VEYXRhIiwibW9kaWZ5Um93RGF0YSIsIm1vZGlmeUdldENlbGxDb29yZHMiLCJtb2RpZnlHZXRDb29yZHNFbGVtZW50IiwibW9kaWZ5Rm9jdXNPblRhYk5hdmlnYXRpb24iLCJiZWZvcmVIaWdobGlnaHRpbmdSb3dIZWFkZXIiLCJiZWZv'@; put 'cmVIaWdobGlnaHRpbmdDb2x1bW5IZWFkZXIiLCJwZXJzaXN0ZW50U3RhdGVMb2FkIiwicGVyc2lzdGVudFN0YXRlUmVzZXQiLCJwZXJzaXN0ZW50U3RhdGVTYXZlIiwiYmVmb3JlQ29sdW1uU29ydCIsImFmdGVyQ29sdW1uU29ydCIsIm1vZGlmeUF1dG9maWxsUmFuZ2UiLCJtb2RpZnlDb3B5'@; put 'YWJsZVJhbmdlIiwiYmVmb3JlQ3V0IiwiYWZ0ZXJDdXQiLCJiZWZvcmVDb3B5IiwiYWZ0ZXJDb3B5IiwiYmVmb3JlUGFzdGUiLCJhZnRlclBhc3RlIiwiYmVmb3JlQ29sdW1uRnJlZXplIiwiYWZ0ZXJDb2x1bW5GcmVlemUiLCJiZWZvcmVDb2x1bW5Nb3ZlIiwiYWZ0ZXJDb2x1bW5Nb3ZlIiwi'@; put 'YmVmb3JlQ29sdW1uVW5mcmVlemUiLCJhZnRlckNvbHVtblVuZnJlZXplIiwiYmVmb3JlUm93TW92ZSIsImFmdGVyUm93TW92ZSIsImJlZm9yZUNvbHVtblJlc2l6ZSIsImFmdGVyQ29sdW1uUmVzaXplIiwiYmVmb3JlUm93UmVzaXplIiwiYWZ0ZXJSb3dSZXNpemUiLCJhZnRlckdldENvbHVt'@; put 'bkhlYWRlclJlbmRlcmVycyIsImFmdGVyR2V0Um93SGVhZGVyUmVuZGVyZXJzIiwiYmVmb3JlU3RyZXRjaGluZ0NvbHVtbldpZHRoIiwiYmVmb3JlRmlsdGVyIiwiYWZ0ZXJGaWx0ZXIiLCJhZnRlckZvcm11bGFzVmFsdWVzVXBkYXRlIiwiYWZ0ZXJOYW1lZEV4cHJlc3Npb25BZGRlZCIsImFm'@; put 'dGVyTmFtZWRFeHByZXNzaW9uUmVtb3ZlZCIsImFmdGVyU2hlZXRBZGRlZCIsImFmdGVyU2hlZXRSZW5hbWVkIiwiYWZ0ZXJTaGVldFJlbW92ZWQiLCJtb2RpZnlDb2x1bW5IZWFkZXJIZWlnaHQiLCJtb2RpZnlDb2x1bW5IZWFkZXJWYWx1ZSIsImJlZm9yZVVuZG8iLCJiZWZvcmVVbmRvU3Rh'@; put 'Y2tDaGFuZ2UiLCJhZnRlclVuZG8iLCJhZnRlclVuZG9TdGFja0NoYW5nZSIsImJlZm9yZVJlZG8iLCJiZWZvcmVSZWRvU3RhY2tDaGFuZ2UiLCJhZnRlclJlZG8iLCJhZnRlclJlZG9TdGFja0NoYW5nZSIsIm1vZGlmeVJvd0hlYWRlcldpZHRoIiwibW9kaWZ5VHJhbnNmb3JtRm9jdXMiLCJt'@; put 'b2RpZnlUcmFuc2Zvcm1TdGFydCIsIm1vZGlmeVRyYW5zZm9ybUVuZCIsImFmdGVyTW9kaWZ5VHJhbnNmb3JtRm9jdXMiLCJhZnRlck1vZGlmeVRyYW5zZm9ybVN0YXJ0IiwiYWZ0ZXJNb2RpZnlUcmFuc2Zvcm1FbmQiLCJhZnRlclZpZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlIiwiYWZ0'@; put 'ZXJWaWV3cG9ydENvbHVtbkNhbGN1bGF0b3JPdmVycmlkZSIsImFmdGVyUGx1Z2luc0luaXRpYWxpemVkIiwiYmVmb3JlSGlkZVJvd3MiLCJhZnRlckhpZGVSb3dzIiwiYmVmb3JlVW5oaWRlUm93cyIsImFmdGVyVW5oaWRlUm93cyIsImJlZm9yZUhpZGVDb2x1bW5zIiwiYWZ0ZXJIaWRlQ29s'@; put 'dW1ucyIsImJlZm9yZVVuaGlkZUNvbHVtbnMiLCJhZnRlclVuaGlkZUNvbHVtbnMiLCJiZWZvcmVUcmltUm93IiwiYWZ0ZXJUcmltUm93IiwiYmVmb3JlVW50cmltUm93IiwiYWZ0ZXJVbnRyaW1Sb3ciLCJiZWZvcmVEcm9wZG93bk1lbnVTaG93IiwiYWZ0ZXJEcm9wZG93bk1lbnVTaG93Iiwi'@; put 'YWZ0ZXJEcm9wZG93bk1lbnVIaWRlIiwiYmVmb3JlQWRkQ2hpbGQiLCJhZnRlckFkZENoaWxkIiwiYmVmb3JlRGV0YWNoQ2hpbGQiLCJhZnRlckRldGFjaENoaWxkIiwiYmVmb3JlQmVnaW5FZGl0aW5nIiwiYWZ0ZXJCZWdpbkVkaXRpbmciLCJiZWZvcmVNZXJnZUNlbGxzIiwiYWZ0ZXJNZXJn'@; put 'ZUNlbGxzIiwiYmVmb3JlVW5tZXJnZUNlbGxzIiwiYWZ0ZXJVbm1lcmdlQ2VsbHMiLCJhZnRlckxpc3RlbiIsImFmdGVyVW5saXN0ZW4iLCJhZnRlclJlZnJlc2hEaW1lbnNpb25zIiwiYmVmb3JlUmVmcmVzaERpbWVuc2lvbnMiLCJiZWZvcmVDb2x1bW5Db2xsYXBzZSIsImFmdGVyQ29sdW1u'@; put 'Q29sbGFwc2UiLCJiZWZvcmVDb2x1bW5FeHBhbmQiLCJhZnRlckNvbHVtbkV4cGFuZCIsIm1vZGlmeUF1dG9Db2x1bW5TaXplU2VlZCJdLGokPW5ldyBNYXAoW1sibW9kaWZ5Um93IiwiOC4wLjAiXSxbIm1vZGlmeUNvbCIsIjguMC4wIl0sWyJ1bm1vZGlmeVJvdyIsIjguMC4wIl0sWyJ1bm1v'@; put 'ZGlmeUNvbCIsIjguMC4wIl0sWyJza2lwTGVuZ3RoQ2FjaGUiLCI4LjAuMCJdLFsiaGlkZGVuQ29sdW1uIiwiOC4wLjAiXSxbImhpZGRlblJvdyIsIjguMC4wIl1dKSx6JD1uZXcgTWFwKFtbXV0pO2Z1bmN0aW9uIFUkKGMsbCxhKXt2ZmUoYyxsKSxsLnNldChjLGEpfWZ1bmN0aW9uIHZmZShj'@; put 'LGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9ZnVuY3Rpb24geWZlKGMsbCxhKXtyZXR1cm4gYy5zZXQoS08oYyxsKSxhKSxhfWZ1bmN0aW9uIHowKGMsbCl7'@; put 'cmV0dXJuIGMuZ2V0KEtPKGMsbCkpfWZ1bmN0aW9uIEtPKGMsbCxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhsKSlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzP2w6YTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGVsZW1lbnQgaXMgbm90IHByZXNlbnQgb24g'@; put 'dGhpcyBvYmplY3QiKX1iKDIzMDEyKSxiKDgxMjYwKTt2YXIgUmg9bmV3IFdlYWtNYXAsdV89bmV3IFdlYWtNYXAsWiQ9bmV3IFdlYWtNYXAsVyQ9bmV3IFdlYWtTZXQ7Y2xhc3MgYmZle2NvbnN0cnVjdG9yKCl7KGZ1bmN0aW9uIEJxZShjLGwpe3ZmZShjLGwpLGwuYWRkKGMpfSkodGhpcyxX'@; put 'JCksVSQodGhpcyxSaCxuZXcgTWFwKSxVJCh0aGlzLHVfLG5ldyBNYXApLFUkKHRoaXMsWiQsbmV3IFNldCksVTcuZm9yRWFjaChsPT5LTyhXJCx0aGlzLF9mZSkuY2FsbCh0aGlzLGwpKX1nZXRIb29rcyhsKXt2YXIgYTtyZXR1cm4gbnVsbCE9PShhPXowKFJoLHRoaXMpLmdldChsKSkmJnZv'@; put 'aWQgMCE9PWE/YTpbXX1hZGQobCxhKXtsZXQgZD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e307ejAoUmgsdGhpcykuaGFzKGwpfHwoS08oVyQsdGhpcyxfZmUpLmNhbGwodGhpcyxsKSxVNy5wdXNoKGwpKTtjb25zdCBoPXowKFJoLHRo'@; put 'aXMpLmdldChsKTtpZihoLmZpbmQoRz0+Ry5jYWxsYmFjaz09PWEpKXJldHVybjtjb25zdCBmPU51bWJlci5pc0ludGVnZXIoZC5vcmRlckluZGV4KT9kLm9yZGVySW5kZXg6MCx2PSEhZC5ydW5PbmNlLE09ISFkLmluaXRpYWxIb29rO2xldCBJPSExO2lmKE0pe2NvbnN0IEc9aC5maW5kKHJl'@; put 'PT5yZS5pbml0aWFsSG9vayk7RyYmKEcuY2FsbGJhY2s9YSxJPSEwKX1pZighSSl7aC5wdXNoKHtjYWxsYmFjazphLG9yZGVySW5kZXg6ZixydW5PbmNlOnYsaW5pdGlhbEhvb2s6TSxza2lwOiExfSk7bGV0IEc9ejAoWiQsdGhpcykuaGFzKGwpOyFHJiYwIT09ZiYmKEc9ITAsejAoWiQsdGhp'@; put 'cykuYWRkKGwpKSxHJiZoLmxlbmd0aD4xJiZ6MChSaCx0aGlzKS5zZXQobCxoLnRvU29ydGVkKChyZSx1ZSk9PnJlLm9yZGVySW5kZXgtdWUub3JkZXJJbmRleCkpfX1oYXMobCl7cmV0dXJuIHowKFJoLHRoaXMpLmhhcyhsKSYmejAoUmgsdGhpcykuZ2V0KGwpLmxlbmd0aD4wfXJlbW92ZShs'@; put 'LGEpe2lmKCF6MChSaCx0aGlzKS5oYXMobCkpcmV0dXJuITE7Y29uc3QgZD16MChSaCx0aGlzKS5nZXQobCksaD1kLmZpbmQoZj0+Zi5jYWxsYmFjaz09PWEpO2lmKGgpe2xldCBmPXowKHVfLHRoaXMpLmdldChsKTtyZXR1cm4gaC5za2lwPSEwLGYrPTEsZj4xMDAmJih6MChSaCx0aGlzKS5z'@; put 'ZXQobCxkLmZpbHRlcih2PT4hdi5za2lwKSksZj0wKSx6MCh1Xyx0aGlzKS5zZXQobCxmKSwhMH1yZXR1cm4hMX1kZXN0cm95KCl7ejAoUmgsdGhpcykuY2xlYXIoKSx6MCh1Xyx0aGlzKS5jbGVhcigpLHlmZShSaCx0aGlzLG51bGwpLHlmZSh1Xyx0aGlzLG51bGwpfX1mdW5jdGlvbiBfZmUo'@; put 'Yyl7ejAoUmgsdGhpcykuc2V0KGMsW10pLHowKHVfLHRoaXMpLnNldChjLDApfWNvbnN0IFdxZT1obGBUaGUgcGx1Z2luIGhvb2sgIltob29rTmFtZV0iIHdhcyByZW1vdmVkIGluIEhhbmRzb250YWJsZSBbcmVtb3ZlZEluVmVyc2lvbl0uXHgyMAogIFBsZWFzZSBjb25zdWx0IHJlbGVhc2Ug'@; put 'bm90ZXMgaHR0cHM6Ly9naXRodWIuY29tL2hhbmRzb250YWJsZS9oYW5kc29udGFibGUvcmVsZWFzZXMvdGFnL1tyZW1vdmVkSW5WZXJzaW9uXSB0b1x4MjAKICBsZWFybiBhYm91dCB0aGUgbWlncmF0aW9uIHBhdGguYDtjbGFzcyBNYXtjb25zdHJ1Y3RvcigpeyFmdW5jdGlvbiB6cWUoYyxs'@; put 'LGEpe3JldHVybihsPWZ1bmN0aW9uIFVxZShjKXt2YXIgbD1mdW5jdGlvbiBacWUoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJv'@; put 'YmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBl'@; put 'b2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfSh0aGlzLCJnbG9iYWxCdWNrZXQiLG5ldyBiZmUpfXN0YXRpYyBnZXRTaW5nbGV0b24oKXtyZXR1'@; put 'cm4gZnVuY3Rpb24gR3FlKCl7cmV0dXJuIFlxZX0oKX1nZXRCdWNrZXQoKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06bnVsbDtyZXR1cm4gbD8obC5wbHVnaW5Ib29rQnVja2V0fHwobC5wbHVnaW5Ib29rQnVja2V0PW5ldyBi'@; put 'ZmUpLGwucGx1Z2luSG9va0J1Y2tldCk6dGhpcy5nbG9iYWxCdWNrZXR9YWRkKGwsYSl7bGV0IGQ9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOm51bGwsaD1hcmd1bWVudHMubGVuZ3RoPjM/YXJndW1lbnRzWzNdOnZvaWQgMDtyZXR1cm4g'@; put 'QXJyYXkuaXNBcnJheShhKT9LbihhLGY9PnRoaXMuYWRkKGwsZixkKSk6KGokLmhhcyhsKSYmWW8odiQoV3FlLHtob29rTmFtZTpsLHJlbW92ZWRJblZlcnNpb246aiQuZ2V0KGwpfSkpLHokLmhhcyhsKSYmWW8oeiQuZ2V0KGwpKSx0aGlzLmdldEJ1Y2tldChkKS5hZGQobCxhLHtvcmRlcklu'@; put 'ZGV4OmgscnVuT25jZTohMX0pKSx0aGlzfW9uY2UobCxhKXtsZXQgZD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06bnVsbCxoPWFyZ3VtZW50cy5sZW5ndGg+Mz9hcmd1bWVudHNbM106dm9pZCAwO3JldHVybiBBcnJheS5pc0FycmF5KGEp'@; put 'P0tuKGEsZj0+dGhpcy5vbmNlKGwsZixkKSk6dGhpcy5nZXRCdWNrZXQoZCkuYWRkKGwsYSx7b3JkZXJJbmRleDpoLHJ1bk9uY2U6ITB9KSx0aGlzfWFkZEFzRml4ZWQobCxhKXtsZXQgZD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06bnVs'@; put 'bDtyZXR1cm4gQXJyYXkuaXNBcnJheShhKT9LbihhLGg9PnRoaXMuYWRkQXNGaXhlZChsLGgsZCkpOnRoaXMuZ2V0QnVja2V0KGQpLmFkZChsLGEse2luaXRpYWxIb29rOiEwfSksdGhpc31yZW1vdmUobCxhKXtyZXR1cm4gdGhpcy5nZXRCdWNrZXQoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lk'@; put 'IDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOm51bGwpLnJlbW92ZShsLGEpfWhhcyhsKXtyZXR1cm4gdGhpcy5nZXRCdWNrZXQoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm51bGwpLmhhcyhsKX1ydW4obCxhLGQsaCxmLHYsTSxJ'@; put 'KXt7Y29uc3QgRz10aGlzLmdldEJ1Y2tldCgpLmdldEhvb2tzKGEpLHJlPUc/Ry5sZW5ndGg6MDtsZXQgdWU9MDtpZihyZSlmb3IoO3VlPHJlOyl7aWYoIUdbdWVdfHxHW3VlXS5za2lwKXt1ZSs9MTtjb250aW51ZX1jb25zdCB5ZT1HTyhHW3VlXS5jYWxsYmFjayxsLGQsaCxmLHYsTSxJKTt2'@; put 'b2lkIDAhPT15ZSYmKGQ9eWUpLEdbdWVdJiZHW3VlXS5ydW5PbmNlJiZ0aGlzLnJlbW92ZShhLEdbdWVdLmNhbGxiYWNrKSx1ZSs9MX19e2NvbnN0IEc9dGhpcy5nZXRCdWNrZXQobCkuZ2V0SG9va3MoYSkscmU9Rz9HLmxlbmd0aDowO2xldCB1ZT0wO2lmKHJlKWZvcig7dWU8cmU7KXtpZigh'@; put 'R1t1ZV18fEdbdWVdLnNraXApe3VlKz0xO2NvbnRpbnVlfWNvbnN0IHllPUdPKEdbdWVdLmNhbGxiYWNrLGwsZCxoLGYsdixNLEkpO3ZvaWQgMCE9PXllJiYoZD15ZSksR1t1ZV0mJkdbdWVdLnJ1bk9uY2UmJnRoaXMucmVtb3ZlKGEsR1t1ZV0uY2FsbGJhY2ssbCksdWUrPTF9fXJldHVybiBk'@; put 'fWRlc3Ryb3koKXt0aGlzLmdldEJ1Y2tldChhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06bnVsbCkuZGVzdHJveSgpfXJlZ2lzdGVyKGwpe3RoaXMuaXNSZWdpc3RlcmVkKGwpfHxVNy5wdXNoKGwpfWRlcmVnaXN0ZXIobCl7dGhpcy5pc1Jl'@; put 'Z2lzdGVyZWQobCkmJlU3LnNwbGljZShVNy5pbmRleE9mKGwpLDEpfWlzRGVwcmVjYXRlZChsKXtyZXR1cm4geiQuaGFzKGwpfHxqJC5oYXMobCl9aXNSZWdpc3RlcmVkKGwpe3JldHVybiBVNy5pbmRleE9mKGwpPj0wfWdldFJlZ2lzdGVyZWQoKXtyZXR1cm4gVTd9fWNvbnN0IFlxZT1uZXcg'@; put 'TWEsWjc9bmV3IE1hcDtmdW5jdGlvbiBVMigpe2xldCBjPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiY29tbW9uIjtaNy5oYXMoYyl8fFo3LnNldChjLG5ldyBNYXApO2NvbnN0IGw9WjcuZ2V0KGMpO3JldHVybntyZWdpc3RlcjpmdW5j'@; put 'dGlvbiBhKEksRyl7bC5zZXQoSSxHKX0sZ2V0SXRlbTpmdW5jdGlvbiBkKEkpe3JldHVybiBsLmdldChJKX0saGFzSXRlbTpmdW5jdGlvbiBoKEkpe3JldHVybiBsLmhhcyhJKX0sZ2V0TmFtZXM6ZnVuY3Rpb24gZigpe3JldHVyblsuLi5sLmtleXMoKV19LGdldFZhbHVlczpmdW5jdGlvbiB2'@; put 'KCl7cmV0dXJuWy4uLmwudmFsdWVzKCldfSxjbGVhcjpmdW5jdGlvbiBNKCl7WjcuZGVsZXRlKGMpLGwuY2xlYXIoKX19fWZ1bmN0aW9uICRxZShjLGwpe3ZhciBhO3JldHVybiBudWxsPT1aN3x8bnVsbD09PShhPVo3LmdldChjLmd1aWQpKXx8dm9pZCAwPT09YT92b2lkIDA6YS5nZXQobCl9'@; put 'Y29uc3QgWSQ9bmV3IFdlYWtNYXAse3JlZ2lzdGVyOktxZSxnZXRJdGVtOndmZSxoYXNJdGVtOkNmZSxnZXROYW1lczpYcWV9PVUyKCJlZGl0b3JzIik7ZnVuY3Rpb24gcXFlKGMpe2NvbnN0IGw9e30sYT1jO3RoaXMuZ2V0Q29uc3RydWN0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gY30sdGhpcy5n'@; put 'ZXRJbnN0YW5jZT1mdW5jdGlvbihkKXtyZXR1cm4gZC5ndWlkIGluIGx8fChsW2QuZ3VpZF09bmV3IGEoZCkpLGxbZC5ndWlkXX0sTWEuZ2V0U2luZ2xldG9uKCkuYWRkKCJhZnRlckRlc3Ryb3kiLGZ1bmN0aW9uKCl7bFt0aGlzLmd1aWRdPW51bGx9KX1mdW5jdGlvbiBTZmUoYyxsKXtsZXQg'@; put 'YTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYylZJC5nZXQoYyl8fEhkKG51bGwsYyksYT1ZJC5nZXQoYyk7ZWxzZXtpZigic3RyaW5nIiE9dHlwZW9mIGMpdGhyb3cgRXJyb3IoJ09ubHkgc3RyaW5ncyBhbmQgZnVuY3Rpb25zIGNhbiBiZSBwYXNzZWQgYXMgImVkaXRvciIgcGFyYW1ldGVyJyk7'@; put 'YT13ZmUoYyl9aWYoIWEpdGhyb3cgRXJyb3IoYE5vIGVkaXRvciByZWdpc3RlcmVkIHVuZGVyIG5hbWUgIiR7Y30iYCk7cmV0dXJuIGEuZ2V0SW5zdGFuY2UobCl9ZnVuY3Rpb24gWE8oYyl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGMpcmV0dXJuIGM7aWYoIUNmZShjKSl0aHJvdyBFcnJvcihg'@; put 'Tm8gcmVnaXN0ZXJlZCBlZGl0b3IgZm91bmQgdW5kZXIgIiR7Y30iIG5hbWVgKTtyZXR1cm4gd2ZlKGMpLmdldENvbnN0cnVjdG9yKCl9ZnVuY3Rpb24gSGQoYyxsKXtjJiYic3RyaW5nIiE9dHlwZW9mIGMmJihjPShsPWMpLkVESVRPUl9UWVBFKTtjb25zdCBhPW5ldyBxcWUobCk7InN0cmlu'@; put 'ZyI9PXR5cGVvZiBjJiZLcWUoYyxhKSxZJC5zZXQobCxhKX1sZXQgcU89MDtjb25zdCBaMj1jbGFzcyB0SmV7Y29uc3RydWN0b3IoKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06bnVsbDsoZnVuY3Rpb24gSnFlKGMsbCxhKXty'@; put 'ZXR1cm4obD1mdW5jdGlvbiBRcWUoYyl7dmFyIGw9ZnVuY3Rpb24gZUplKGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0'@; put 'IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/'@; put 'bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY30pKHRoaXMsImNvbnRleHQiLHZvaWQgMCksdGhpcy5jb250ZXh0PWx8fHRoaXMsdGhpcy5jb250ZXh0LmV2'@; put 'ZW50TGlzdGVuZXJzfHwodGhpcy5jb250ZXh0LmV2ZW50TGlzdGVuZXJzPVtdKX1hZGRFdmVudExpc3RlbmVyKGwsYSxkKXtsZXQgaD1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXSYmYXJndW1lbnRzWzNdO2Z1bmN0aW9uIGYodil7ZC5jYWxsKHRoaXMsZnVuY3Rp'@; put 'b24gbkplKGMpe2NvbnN0IGw9Yy5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb247cmV0dXJuIGMuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uPWZ1bmN0aW9uKCl7bC5hcHBseSh0aGlzKSx6Mih0aGlzKX0sY30odikpfXJldHVybiB0aGlzLmNvbnRleHQuZXZlbnRMaXN0ZW5lcnMucHVzaCh7ZWxl'@; put 'bWVudDpsLGV2ZW50OmEsY2FsbGJhY2s6ZCxjYWxsYmFja1Byb3h5OmYsb3B0aW9uczpoLGV2ZW50TWFuYWdlcjp0aGlzfSksbC5hZGRFdmVudExpc3RlbmVyKGEsZixoKSxxTys9MSwoKT0+e3RoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihsLGEsZCl9fXJlbW92ZUV2ZW50TGlzdGVuZXIobCxh'@; put 'LGQpe2xldCB2LGg9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10mJmFyZ3VtZW50c1szXSxmPXRoaXMuY29udGV4dC5ldmVudExpc3RlbmVycy5sZW5ndGg7Zm9yKDtmOylpZihmLT0xLHY9dGhpcy5jb250ZXh0LmV2ZW50TGlzdGVuZXJzW2ZdLHYuZXZlbnQ9PT1h'@; put 'JiZ2LmVsZW1lbnQ9PT1sKXtpZihkJiZkIT09di5jYWxsYmFja3x8aCYmdi5ldmVudE1hbmFnZXIhPT10aGlzKWNvbnRpbnVlO3RoaXMuY29udGV4dC5ldmVudExpc3RlbmVycy5zcGxpY2UoZiwxKSx2LmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih2LmV2ZW50LHYuY2FsbGJhY2tQcm94'@; put 'eSx2Lm9wdGlvbnMpLHFPLT0xfX1jbGVhckV2ZW50cygpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07aWYoIXRoaXMuY29udGV4dClyZXR1cm47bGV0IGE9dGhpcy5jb250ZXh0LmV2ZW50TGlzdGVuZXJzLmxlbmd0aDtmb3Io'@; put 'O2E7KXthLT0xO2NvbnN0IGQ9dGhpcy5jb250ZXh0LmV2ZW50TGlzdGVuZXJzW2FdO2wmJmQuZXZlbnRNYW5hZ2VyIT09dGhpc3x8KHRoaXMuY29udGV4dC5ldmVudExpc3RlbmVycy5zcGxpY2UoYSwxKSxkLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihkLmV2ZW50LGQuY2FsbGJhY2tQ'@; put 'cm94eSxkLm9wdGlvbnMpLHFPLT0xKX19Y2xlYXIoKXt0aGlzLmNsZWFyRXZlbnRzKCl9ZGVzdHJveSgpe3RoaXMuY2xlYXJFdmVudHMoKSx0aGlzLmNvbnRleHQ9bnVsbH1kZXN0cm95V2l0aE93bkV2ZW50c09ubHkoKXt0aGlzLmNsZWFyRXZlbnRzKCEwKSx0aGlzLmNvbnRleHQ9bnVsbH1m'@; put 'aXJlRXZlbnQobCxhKXtsZXQgZD1sLmRvY3VtZW50LGg9bDtkfHwoZD1sLm93bmVyRG9jdW1lbnQ/bC5vd25lckRvY3VtZW50OmwsaD1kLmRlZmF1bHRWaWV3KTtjb25zdCBmPXtidWJibGVzOiEwLGNhbmNlbGFibGU6Im1vdXNlbW92ZSIhPT1hLHZpZXc6aCxkZXRhaWw6MCxzY3JlZW5YOjAs'@; put 'c2NyZWVuWTowLGNsaWVudFg6MSxjbGllbnRZOjEsY3RybEtleTohMSxhbHRLZXk6ITEsc2hpZnRLZXk6ITEsbWV0YUtleTohMSxidXR0b246MCxyZWxhdGVkVGFyZ2V0OnZvaWQgMH07bGV0IHY7ZC5jcmVhdGVFdmVudD8odj1kLmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50cyIpLHYuaW5pdE1v'@; put 'dXNlRXZlbnQoYSxmLmJ1YmJsZXMsZi5jYW5jZWxhYmxlLGYudmlldyxmLmRldGFpbCxmLnNjcmVlblgsZi5zY3JlZW5ZLGYuY2xpZW50WCxmLmNsaWVudFksZi5jdHJsS2V5LGYuYWx0S2V5LGYuc2hpZnRLZXksZi5tZXRhS2V5LGYuYnV0dG9uLGYucmVsYXRlZFRhcmdldHx8ZC5ib2R5LnBh'@; put 'cmVudE5vZGUpKTp2PWQuY3JlYXRlRXZlbnRPYmplY3QoKSxsLmRpc3BhdGNoRXZlbnQ/bC5kaXNwYXRjaEV2ZW50KHYpOmwuZmlyZUV2ZW50KGBvbiR7YX1gLHYpfX07ZnVuY3Rpb24gVzcoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIHNKZShjKXt2YXIgbD1mdW5jdGlvbiBvSmUoYyxsKXtp'@; put 'Zigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJp'@; put 'bWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6'@; put 'YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWZ1bmN0aW9uIEckKGMsbCxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhsKSlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzP2w6YTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQ'@; put 'cml2YXRlIGVsZW1lbnQgaXMgbm90IHByZXNlbnQgb24gdGhpcyBvYmplY3QiKX12YXIgSk89bmV3IFdlYWtTZXQ7Y2xhc3MgJCR7Y29uc3RydWN0b3IobCxhLGQpeyhmdW5jdGlvbiBpSmUoYyxsKXsoZnVuY3Rpb24gYUplKGMsbCl7aWYobC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigi'@; put 'Q2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGMsbCksbC5hZGQoYyl9KSh0aGlzLEpPKSxXNyh0aGlzLCJob3QiLHZvaWQgMCksVzcodGhpcywidGFibGVNZXRhIix2b2lkIDApLFc3KHRoaXMsInNlbGVjdGlvbiIsdm9p'@; put 'ZCAwKSxXNyh0aGlzLCJldmVudE1hbmFnZXIiLHZvaWQgMCksVzcodGhpcywiZGVzdHJveWVkIiwhMSksVzcodGhpcywiYWN0aXZlRWRpdG9yIix2b2lkIDApLFc3KHRoaXMsImNlbGxQcm9wZXJ0aWVzIix2b2lkIDApLHRoaXMuaG90PWwsdGhpcy50YWJsZU1ldGE9YSx0aGlzLnNlbGVjdGlv'@; put 'bj1kLHRoaXMuZXZlbnRNYW5hZ2VyPW5ldyBaMihsKSx0aGlzLmhvdC5hZGRIb29rKCJhZnRlckRvY3VtZW50S2V5RG93biIsaD0+RyQoSk8sdGhpcyxNZmUpLmNhbGwodGhpcyxoKSksdGhpcy5ob3QuYWRkSG9vaygiYmVmb3JlQ29tcG9zaXRpb25TdGFydCIsaD0+RyQoSk8sdGhpcyxNZmUp'@; put 'LmNhbGwodGhpcyxoKSksdGhpcy5ob3Qudmlldy5fd3QudXBkYXRlKCJvbkNlbGxEYmxDbGljayIsKGgsZix2KT0+RyQoSk8sdGhpcyxsSmUpLmNhbGwodGhpcyxoLGYsdikpfWdldEFjdGl2ZUVkaXRvcigpe3JldHVybiB0aGlzLmFjdGl2ZUVkaXRvcn1wcmVwYXJlRWRpdG9yKCl7dmFyIGw7'@; put 'aWYodGhpcy5hY3RpdmVFZGl0b3ImJnRoaXMuYWN0aXZlRWRpdG9yLmlzV2FpdGluZygpKXJldHVybiB2b2lkIHRoaXMuY2xvc2VFZGl0b3IoITEsITEsRz0+e0cmJnRoaXMucHJlcGFyZUVkaXRvcigpfSk7Y29uc3QgYT1udWxsPT09KGw9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3Qo'@; put 'KSl8fHZvaWQgMD09PWw/dm9pZCAwOmwuaGlnaGxpZ2h0O2lmKCFhfHxhLmlzSGVhZGVyKCkpcmV0dXJuO2NvbnN0e3JvdzpkLGNvbDpofT1hLGY9dGhpcy5ob3QucnVuSG9va3MoIm1vZGlmeUdldENlbGxDb29yZHMiLGQsaCwhMSwibWV0YSIpO2xldCB2PWQsTT1oO2lmKEFycmF5LmlzQXJy'@; put 'YXkoZikmJihbdixNXT1mKSx0aGlzLmNlbGxQcm9wZXJ0aWVzPXRoaXMuaG90LmdldENlbGxNZXRhKHYsTSksIXRoaXMuaXNDZWxsRWRpdGFibGUoKSlyZXR1cm4gdm9pZCB0aGlzLmNsZWFyQWN0aXZlRWRpdG9yKCk7Y29uc3QgST10aGlzLmhvdC5nZXRDZWxsKGQsaCwhMCk7aWYoSSl7Y29u'@; put 'c3QgRz10aGlzLmhvdC5nZXRDZWxsRWRpdG9yKHRoaXMuY2VsbFByb3BlcnRpZXMpLHJlPXRoaXMuaG90LmNvbFRvUHJvcChNKSx1ZT10aGlzLmhvdC5nZXRTb3VyY2VEYXRhQXRDZWxsKHRoaXMuaG90LnRvUGh5c2ljYWxSb3codiksTSk7dGhpcy5hY3RpdmVFZGl0b3I9U2ZlKEcsdGhpcy5o'@; put 'b3QpLHRoaXMuYWN0aXZlRWRpdG9yLnByZXBhcmUoZCxoLHJlLEksdWUsdGhpcy5jZWxsUHJvcGVydGllcyl9fWlzRWRpdG9yT3BlbmVkKCl7cmV0dXJuIHRoaXMuYWN0aXZlRWRpdG9yJiZ0aGlzLmFjdGl2ZUVkaXRvci5pc09wZW5lZCgpfW9wZW5FZGl0b3IobCxhKXtsZXQgZD1hcmd1bWVu'@; put 'dHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdO2lmKCF0aGlzLmlzQ2VsbEVkaXRhYmxlKCkpcmV0dXJuIHZvaWQgdGhpcy5jbGVhckFjdGl2ZUVkaXRvcigpO2NvbnN0IGg9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtsZXQgZj10aGlzLmhv'@; put 'dC5ydW5Ib29rcygiYmVmb3JlQmVnaW5FZGl0aW5nIixoLmhpZ2hsaWdodC5yb3csaC5oaWdobGlnaHQuY29sLGwsYSxkKTthIGluc3RhbmNlb2YgTW91c2VFdmVudCYmImJvb2xlYW4iIT10eXBlb2YgZiYmKGY9MD09PXRoaXMuaG90LnNlbGVjdGlvbi5nZXRMYXllckxldmVsKCkmJmguaXNT'@; put 'aW5nbGUoKSksITEhPT1mPyh0aGlzLmFjdGl2ZUVkaXRvcnx8KHRoaXMuaG90LnNjcm9sbFRvRm9jdXNlZENlbGwoKSx0aGlzLnByZXBhcmVFZGl0b3IoKSksdGhpcy5hY3RpdmVFZGl0b3ImJihkJiZ0aGlzLmFjdGl2ZUVkaXRvci5lbmFibGVGdWxsRWRpdE1vZGUoKSx0aGlzLmFjdGl2ZUVk'@; put 'aXRvci5iZWdpbkVkaXRpbmcobCxhKSkpOnRoaXMuY2xlYXJBY3RpdmVFZGl0b3IoKX1jbG9zZUVkaXRvcihsLGEsZCl7dGhpcy5hY3RpdmVFZGl0b3I/dGhpcy5hY3RpdmVFZGl0b3IuZmluaXNoRWRpdGluZyhsLGEsZCk6ZCYmZCghMSl9Y2xvc2VFZGl0b3JBbmRTYXZlQ2hhbmdlcyhsKXt0'@; put 'aGlzLmNsb3NlRWRpdG9yKCExLGwpfWNsb3NlRWRpdG9yQW5kUmVzdG9yZU9yaWdpbmFsVmFsdWUobCl7dGhpcy5jbG9zZUVkaXRvcighMCxsKX1jbGVhckFjdGl2ZUVkaXRvcigpe3RoaXMuYWN0aXZlRWRpdG9yPXZvaWQgMH1pc0NlbGxFZGl0YWJsZSgpe2NvbnN0IGw9dGhpcy5ob3QuZ2V0'@; put 'U2VsZWN0ZWRSYW5nZUxhc3QoKTtpZighbClyZXR1cm4hMTtjb25zdCBhPXRoaXMuaG90LmdldENlbGxFZGl0b3IodGhpcy5jZWxsUHJvcGVydGllcykse3JvdzpkLGNvbDpofT1sLmhpZ2hsaWdodCx7cm93SW5kZXhNYXBwZXI6Zixjb2x1bW5JbmRleE1hcHBlcjp2fT10aGlzLmhvdCxNPWYu'@; put 'aXNIaWRkZW4odGhpcy5ob3QudG9QaHlzaWNhbFJvdyhkKSl8fHYuaXNIaWRkZW4odGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihoKSk7cmV0dXJuISh0aGlzLmNlbGxQcm9wZXJ0aWVzLnJlYWRPbmx5fHwhYXx8TSl9bW92ZVNlbGVjdGlvbkFmdGVyRW50ZXIobCl7Y29uc3QgYT17Li4uImZ1'@; put 'bmN0aW9uIj09dHlwZW9mIHRoaXMudGFibGVNZXRhLmVudGVyTW92ZXM/dGhpcy50YWJsZU1ldGEuZW50ZXJNb3ZlcyhsKTp0aGlzLnRhYmxlTWV0YS5lbnRlck1vdmVzfTtsLnNoaWZ0S2V5JiYoYS5yb3c9LWEucm93LGEuY29sPS1hLmNvbCksdGhpcy5ob3Quc2VsZWN0aW9uLmlzTXVsdGlw'@; put 'bGUoKT90aGlzLnNlbGVjdGlvbi50cmFuc2Zvcm1Gb2N1cyhhLnJvdyxhLmNvbCk6dGhpcy5zZWxlY3Rpb24udHJhbnNmb3JtU3RhcnQoYS5yb3csYS5jb2wsITApfWRlc3Ryb3koKXt0aGlzLmRlc3Ryb3llZD0hMCx0aGlzLmV2ZW50TWFuYWdlci5kZXN0cm95KCl9fWZ1bmN0aW9uIE1mZShj'@; put 'KXtjb25zdCBsPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7aWYoIXRoaXMuaG90LmlzTGlzdGVuaW5nKCl8fCFsfHxsLmhpZ2hsaWdodC5pc0hlYWRlcigpfHxPbShjKSlyZXR1cm47Y29uc3R7a2V5Q29kZTphfT1jLGQ9KGMuY3RybEtleXx8Yy5tZXRhS2V5KSYmIWMuYWx0S2V5'@; put 'OyghdGhpcy5hY3RpdmVFZGl0b3J8fHRoaXMuYWN0aXZlRWRpdG9yJiYhdGhpcy5hY3RpdmVFZGl0b3IuaXNXYWl0aW5nKCkpJiYhViQoYSkmJiFwZmUoYSkmJiFkJiYhdGhpcy5pc0VkaXRvck9wZW5lZCgpJiZ0aGlzLm9wZW5FZGl0b3IoIiIsYyl9ZnVuY3Rpb24gbEplKGMsbCl7bC5pc0Nl'@; put 'bGwoKSYmKHRoaXMuaG90LmdldFNob3J0Y3V0TWFuYWdlcigpLmlzQ3RybFByZXNzZWQoKT90aGlzLmNsZWFyQWN0aXZlRWRpdG9yKCk6dGhpcy5vcGVuRWRpdG9yKG51bGwsYywhMCkpfWNvbnN0IHhmZT1uZXcgV2Vha01hcDskJC5nZXRJbnN0YW5jZT1mdW5jdGlvbihjLGwsYSl7bGV0IGQ9'@; put 'eGZlLmdldChjKTtyZXR1cm4gZHx8KGQ9bmV3ICQkKGMsbCxhKSx4ZmUuc2V0KGMsZCkpLGR9O2NvbnN0IGNKZT0kJDtmdW5jdGlvbiBSRShjLGwsYSl7RWZlKGMsbCksbC5zZXQoYyxhKX1mdW5jdGlvbiBFZmUoYyxsKXtpZihsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3Qg'@; put 'aW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfWZ1bmN0aW9uIGxjKGMsbCl7cmV0dXJuIGMuZ2V0KHlnKGMsbCkpfWZ1bmN0aW9uIExFKGMsbCxhKXtyZXR1cm4gYy5zZXQoeWcoYyxsKSxhKSxhfWZ1bmN0aW9uIHlnKGMsbCxhKXtpZigi'@; put 'ZnVuY3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhsKSlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzP2w6YTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGVsZW1lbnQgaXMgbm90IHByZXNlbnQgb24gdGhpcyBvYmplY3QiKX1jb25zdCBkXz1PYmplY3QuZnJlZXplKHtDRUxMOiJj'@; put 'ZWxsIixNSVhFRDoibWl4ZWQifSk7dmFyICR1PW5ldyBXZWFrTWFwLFFPPW5ldyBXZWFrTWFwLGVQPW5ldyBXZWFrTWFwLHRQPW5ldyBXZWFrTWFwLG5QPW5ldyBXZWFrTWFwLEZtPW5ldyBXZWFrU2V0O2NsYXNzIGRKZXtjb25zdHJ1Y3RvcihsKXt2YXIgYT10aGlzOyhmdW5jdGlvbiB1SmUo'@; put 'YyxsKXtFZmUoYyxsKSxsLmFkZChjKX0pKHRoaXMsRm0pLFJFKHRoaXMsJHUsdm9pZCAwKSxSRSh0aGlzLFFPLHZvaWQgMCksUkUodGhpcyxlUCwxKSxSRSh0aGlzLHRQLG51bGwpLFJFKHRoaXMsblAsbmV3IE1hcCk7Y29uc3QgZD1sLmdldFNldHRpbmdzKCk7TEUoJHUsdGhpcyxsKSxMRShR'@; put 'Tyx0aGlzLGQuaW1lRmFzdEVkaXQ/ZF8uTUlYRUQ6ZF8uQ0VMTCksbGMoJHUsdGhpcykuYWRkSG9vaygiYWZ0ZXJVcGRhdGVTZXR0aW5ncyIsZnVuY3Rpb24oKXtmb3IodmFyIGg9YXJndW1lbnRzLmxlbmd0aCxmPW5ldyBBcnJheShoKSx2PTA7djxoO3YrKylmW3ZdPWFyZ3VtZW50c1t2XTty'@; put 'ZXR1cm4geWcoRm0sYSxmSmUpLmNhbGwoYSwuLi5mKX0pLGxjKCR1LHRoaXMpLmFkZEhvb2soImFmdGVyU2VsZWN0aW9uIixmdW5jdGlvbigpe2Zvcih2YXIgaD1hcmd1bWVudHMubGVuZ3RoLGY9bmV3IEFycmF5KGgpLHY9MDt2PGg7disrKWZbdl09YXJndW1lbnRzW3ZdO3JldHVybiB5ZyhG'@; put 'bSxhLFRmZSkuY2FsbChhLC4uLmYpfSksbGMoJHUsdGhpcykuYWRkSG9vaygiYWZ0ZXJTZWxlY3Rpb25Gb2N1c1NldCIsZnVuY3Rpb24oKXtmb3IodmFyIGg9YXJndW1lbnRzLmxlbmd0aCxmPW5ldyBBcnJheShoKSx2PTA7djxoO3YrKylmW3ZdPWFyZ3VtZW50c1t2XTtyZXR1cm4geWcoRm0s'@; put 'YSxUZmUpLmNhbGwoYSwuLi5mKX0pLGxjKCR1LHRoaXMpLmFkZEhvb2soImFmdGVyU2VsZWN0aW9uRW5kIixmdW5jdGlvbigpe2Zvcih2YXIgaD1hcmd1bWVudHMubGVuZ3RoLGY9bmV3IEFycmF5KGgpLHY9MDt2PGg7disrKWZbdl09YXJndW1lbnRzW3ZdO3JldHVybiB5ZyhGbSxhLGhKZSku'@; put 'Y2FsbChhLC4uLmYpfSl9Z2V0Rm9jdXNNb2RlKCl7cmV0dXJuIGxjKFFPLHRoaXMpfXNldEZvY3VzTW9kZShsKXtPYmplY3QudmFsdWVzKGRfKS5pbmNsdWRlcyhsKT9MRShRTyx0aGlzLGwpOllvKGAiJHtsfSIgaXMgbm90IGEgdmFsaWQgZm9jdXMgbW9kZS5gKX1nZXRSZWZvY3VzRGVsYXko'@; put 'KXtyZXR1cm4gbGMoZVAsdGhpcyl9c2V0UmVmb2N1c0RlbGF5KGwpe0xFKGVQLHRoaXMsbCl9c2V0UmVmb2N1c0VsZW1lbnRHZXR0ZXIobCl7TEUodFAsdGhpcyxsKX1nZXRSZWZvY3VzRWxlbWVudCgpe3ZhciBsO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBsYyh0UCx0aGlzKT9sYyh0UCx0'@; put 'aGlzKS5jYWxsKHRoaXMpOm51bGw9PT0obD1sYygkdSx0aGlzKS5nZXRBY3RpdmVFZGl0b3IoKSl8fHZvaWQgMD09PWw/dm9pZCAwOmwuVEVYVEFSRUF9Zm9jdXNPbkhpZ2hsaWdodGVkQ2VsbChsKXtjb25zdCBhPWQ9Pnt2YXIgaCxmO2NvbnN0IHY9bnVsbD09PShoPWxjKCR1LHRoaXMpLmdl'@; put 'dFNlbGVjdGVkUmFuZ2VMYXN0KCkpfHx2b2lkIDA9PT1oP3ZvaWQgMDpoLmhpZ2hsaWdodDtpZighdilyZXR1cm47bGV0IE09bGMoJHUsdGhpcykucnVuSG9va3MoIm1vZGlmeUZvY3VzZWRFbGVtZW50Iix2LnJvdyx2LmNvbCxkKTtrcChNKXx8KE09ZCksTSYmKG51bGw9PT0oZj1sYygkdSx0'@; put 'aGlzKS5nZXRBY3RpdmVFZGl0b3IoKSl8fHZvaWQgMD09PWZ8fCFmLmlzT3BlbmVkKCkpJiZNLmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSl9O2w/YShsKTp5ZyhGbSx0aGlzLEskKS5jYWxsKHRoaXMsZD0+YShkKSl9cmVmb2N1c1RvRWRpdG9yVGV4dGFyZWEoKXt2YXIgbDtsZXQgYT1hcmd1'@; put 'bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06bGMoZVAsdGhpcyk7dmFyIGQsaDshbGMoJHUsdGhpcykuZ2V0U2V0dGluZ3MoKS5pbWVGYXN0RWRpdHx8bnVsbCE9PShsPWxjKCR1LHRoaXMpLmdldEFjdGl2ZUVkaXRvcigpKSYmdm9pZCAwIT09bCYm'@; put 'bC5pc09wZW5lZCgpfHwobnVsbD09PShkPWxjKCR1LHRoaXMpLmdldEFjdGl2ZUVkaXRvcigpKXx8dm9pZCAwPT09ZHx8bnVsbD09PShoPWQucmVmcmVzaFZhbHVlKXx8dm9pZCAwPT09aHx8aC5jYWxsKGQpLGxjKG5QLHRoaXMpLmhhcyhhKXx8bGMoblAsdGhpcykuc2V0KGEsSUUoKCk9Pnt2'@; put 'YXIgZjtsYygkdSx0aGlzKS5pc0Rlc3Ryb3llZHx8bnVsbD09PShmPXRoaXMuZ2V0UmVmb2N1c0VsZW1lbnQoKSl8fHZvaWQgMD09PWZ8fGYuc2VsZWN0KCl9LGEpKSxsYyhuUCx0aGlzKS5nZXQoYSkoKSl9fWZ1bmN0aW9uIEskKGMpe3ZhciBsO2NvbnN0IGE9bnVsbD09PShsPWxjKCR1LHRo'@; put 'aXMpLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCkpfHx2b2lkIDA9PT1sP3ZvaWQgMDpsLmhpZ2hsaWdodDtpZighYXx8IWxjKCR1LHRoaXMpLnNlbGVjdGlvbi5pc0NlbGxWaXNpYmxlKGEpKXJldHVybiB2b2lkIGMobnVsbCk7Y29uc3QgZD1sYygkdSx0aGlzKS5nZXRDZWxsKGEucm93LGEuY29s'@; put 'LCEwKTtudWxsPT09ZD9sYygkdSx0aGlzKS5hZGRIb29rT25jZSgiYWZ0ZXJTY3JvbGwiLCgpPT57YyhsYygkdSx0aGlzKS5nZXRDZWxsKGEucm93LGEuY29sLCEwKSl9KTpjKGQpfWZ1bmN0aW9uIFRmZSgpe3lnKEZtLHRoaXMsSyQpLmNhbGwodGhpcyxjPT57Y29uc3R7YWN0aXZlRWxlbWVu'@; put 'dDpsfT1sYygkdSx0aGlzKS5yb290RG9jdW1lbnQ7bCYmWU8obCkmJmwuYmx1cigpLHRoaXMuZm9jdXNPbkhpZ2hsaWdodGVkQ2VsbChjKX0pfWZ1bmN0aW9uIGhKZSgpe3lnKEZtLHRoaXMsSyQpLmNhbGwodGhpcyxjPT57dGhpcy5nZXRGb2N1c01vZGUoKT09PWRfLk1JWEVEJiYiVEQiPT09'@; put 'Yz8ubm9kZU5hbWUmJnRoaXMucmVmb2N1c1RvRWRpdG9yVGV4dGFyZWEoKX0pfWZ1bmN0aW9uIGZKZShjKXsiYm9vbGVhbiI9PXR5cGVvZiBjLmltZUZhc3RFZGl0JiZ0aGlzLnNldEZvY3VzTW9kZShjLmltZUZhc3RFZGl0P2RfLk1JWEVEOmRfLkNFTEwpfWIoMTYyMjkpLGIoNDQyMTMpO2Nv'@; put 'bnN0IEFmZT17IiZuYnNwOyI6IiAiLCImYW1wOyI6IiYiLCImbHQ7IjoiPCIsIiZndDsiOiI+In0scEplPW5ldyBSZWdFeHAoT2JqZWN0LmtleXMoQWZlKS5tYXAoYz0+YCgke2N9KWApLmpvaW4oInwiKSwiZ2kiKTtmdW5jdGlvbiBYJChjKXtjb25zdCBsPWMuaGFzQ29sSGVhZGVycygpLGE9'@; put 'Yy5oYXNSb3dIZWFkZXJzKCksZD1bbD8tMTowLGE/LTE6MCxjLmNvdW50Um93cygpLTEsYy5jb3VudENvbHMoKS0xXSxoPWMuZ2V0RGF0YSguLi5kKSxmPWgubGVuZ3RoLHY9Zj4wP2hbMF0ubGVuZ3RoOjAsTT1bIjx0YWJsZT4iLCI8L3RhYmxlPiJdLEk9bD9bIjx0aGVhZD4iLCI8L3RoZWFk'@; put 'PiJdOltdLEc9WyI8dGJvZHk+IiwiPC90Ym9keT4iXSxyZT1hPzE6MCx1ZT1sPzE6MDtmb3IobGV0IHllPTA7eWU8Zjt5ZSs9MSl7Y29uc3QgRWU9bCYmMD09PXllLEJlPVtdO2ZvcihsZXQgc3Q9MDtzdDx2O3N0Kz0xKXtjb25zdCBwdD0hRWUmJmEmJjA9PT1zdDtsZXQgZHQ9IiI7aWYoRWUp'@; put 'ZHQ9YDx0aD4ke2MuZ2V0Q29sSGVhZGVyKHN0LXJlKX08L3RoPmA7ZWxzZSBpZihwdClkdD1gPHRoPiR7Yy5nZXRSb3dIZWFkZXIoeWUtdWUpfTwvdGg+YDtlbHNle2NvbnN0IHF0PWhbeWVdW3N0XSx7aGlkZGVuOm1uLHJvd3NwYW46d24sY29sc3Bhbjpobn09Yy5nZXRDZWxsTWV0YSh5ZS11'@; put 'ZSxzdC1yZSk7aWYoIW1uKXtjb25zdCBNbj1bXTtpZih3biYmTW4ucHVzaChgcm93c3Bhbj0iJHt3bn0iYCksaG4mJk1uLnB1c2goYGNvbHNwYW49IiR7aG59ImApLGpjKHF0KSlkdD1gPHRkICR7TW4uam9pbigiICIpfT48L3RkPmA7ZWxzZXtjb25zdCBNcj1xdC50b1N0cmluZygpLnJlcGxh'@; put 'Y2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLnJlcGxhY2UoLyg8YnIoXHMqfFwvKT4oXHJcbnxcbik/fFxyXG58XG4pL2csIjxicj5cclxuIikucmVwbGFjZSgvXHgyMC9naSwiJm5ic3A7IikucmVwbGFjZSgvXHQvZ2ksIiYjOTsiKTtkdD1gPHRkICR7TW4uam9pbigiICIp'@; put 'fT4ke01yfTwvdGQ+YH19fUJlLnB1c2goZHQpfWNvbnN0IEdlPVsiPHRyPiIsLi4uQmUsIjwvdHI+Il0uam9pbigiIik7RWU/SS5zcGxpY2UoMSwwLEdlKTpHLnNwbGljZSgtMSwwLEdlKX1yZXR1cm4gTS5zcGxpY2UoMSwwLEkuam9pbigiIiksRy5qb2luKCIiKSksTS5qb2luKCIiKX1mdW5j'@; put 'dGlvbiBxJChjKXtjb25zdCBsPWMubGVuZ3RoLGE9WyI8dGFibGU+Il07Zm9yKGxldCBkPTA7ZDxsO2QrPTEpe2NvbnN0IGg9Y1tkXSxmPWgubGVuZ3RoLHY9W107MD09PWQmJmEucHVzaCgiPHRib2R5PiIpO2ZvcihsZXQgTT0wO008ZjtNKz0xKXtjb25zdCBJPWhbTV0sRz1qYyhJKT8iIjpJ'@; put 'LnRvU3RyaW5nKCkucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLnJlcGxhY2UoLyg8YnIoXHMqfFwvKT4oXHJcbnxcbik/fFxyXG58XG4pL2csIjxicj5cclxuIikucmVwbGFjZSgvXHgyMHsyLH0vZ2kscmU9PmA8c3BhbiBz'@; put 'dHlsZT0ibXNvLXNwYWNlcnVuOiB5ZXMiPiR7IiZuYnNwOyIucmVwZWF0KHJlLmxlbmd0aC0xKX0gPC9zcGFuPmApLnJlcGxhY2UoL1x0L2dpLCImIzk7Iik7di5wdXNoKGA8dGQ+JHtHfTwvdGQ+YCl9YS5wdXNoKCI8dHI+IiwuLi52LCI8L3RyPiIpLGQrMT09PWwmJmEucHVzaCgiPC90Ym9k'@; put 'eT4iKX1yZXR1cm4gYS5wdXNoKCI8L3RhYmxlPiIpLGEuam9pbigiIil9ZnVuY3Rpb24ga2ZlKGMpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpkb2N1bWVudDtjb25zdCBhPXt9LGQ9bC5jcmVhdGVEb2N1bWVudEZyYWdtZW50'@; put 'KCksaD1sLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2QuYXBwZW5kQ2hpbGQoaCk7bGV0IGY9YztpZigic3RyaW5nIj09dHlwZW9mIGYpe2NvbnN0IHF0PWYucmVwbGFjZSgvPHRkXGJbXj5dKj8+KFtcc1xTXSo/KTxcL1xzKnRkPi9nLG1uPT57Y29uc3Qgd249bW4ubWF0Y2goLzx0ZFxiW14+XSo/'@; put 'Pi9nKVswXTtyZXR1cm5gJHt3bn0ke21uLnN1YnN0cmluZyh3bi5sZW5ndGgsbW4ubGFzdEluZGV4T2YoIjwiKSkudHJpbSgpLnJlcGxhY2VBbGwoL1xuXHMrL2csIiAiKS5yZXBsYWNlQWxsKC88cC4qPz4vZywiXG4iKS5yZXBsYWNlKCJcbiIsIiIpLnJlcGxhY2VBbGwoLzxcLyguKik+XHMr'@; put 'JC9nbSwiPC8kMT4iKS5yZXBsYWNlKC8oPCg/IWJyKShbXj5dKyk+KS9naSwiIikucmVwbGFjZUFsbCgvXiZuYnNwOyQvZ20sIiIpfTwvdGQ+YH0pO2guaW5zZXJ0QWRqYWNlbnRIVE1MKCJhZnRlcmJlZ2luIixgJHtxdH1gKSxmPWgucXVlcnlTZWxlY3RvcigidGFibGUiKX1pZighZnx8IWZ1'@; put 'bmN0aW9uIGdKZShjKXtyZXR1cm4iVEFCTEUiPT09KGMmJmMubm9kZU5hbWV8fCIiKX0oZikpcmV0dXJuO2NvbnN0IHY9aC5xdWVyeVNlbGVjdG9yKCdtZXRhW25hbWUkPSJlbmVyYXRvciJdJyksTT1udWxsIT09Zi5xdWVyeVNlbGVjdG9yKCJ0Ym9keSB0aCIpLEk9Zi5xdWVyeVNlbGVjdG9y'@; put 'KCJ0ciIpLEc9ST9BcnJheS5mcm9tKEkuY2VsbHMpLnJlZHVjZSgocXQsbW4pPT5xdCttbi5jb2xTcGFuLDApLShNPzE6MCk6MCxyZT1mLnRGb290JiZBcnJheS5mcm9tKGYudEZvb3Qucm93cyl8fFtdLHVlPVtdO2xldCB5ZT0hMSxFZT0wLEJlPTA7aWYoZi50SGVhZCl7Y29uc3QgcXQ9QXJy'@; put 'YXkuZnJvbShmLnRIZWFkLnJvd3MpLmZpbHRlcihtbj0+e2NvbnN0IHduPW51bGwhPT1tbi5xdWVyeVNlbGVjdG9yKCJ0ZCIpO3JldHVybiB3biYmdWUucHVzaChtbiksIXdufSk7RWU9cXQubGVuZ3RoLHllPUVlPjAsRWU+MT9hLm5lc3RlZEhlYWRlcnM9QXJyYXkuZnJvbShxdCkucmVkdWNl'@; put 'KChtbix3bik9Pntjb25zdCBobj1BcnJheS5mcm9tKHduLmNlbGxzKS5yZWR1Y2UoKE1uLE1yLGtyKT0+e2lmKE0mJjA9PT1rcilyZXR1cm4gTW47Y29uc3R7Y29sU3Bhbjpxbixpbm5lckhUTUw6Z3J9PU1yO3JldHVybiBNbi5wdXNoKHFuPjE/e2xhYmVsOmdyLGNvbHNwYW46cW59OmdyKSxN'@; put 'bn0sW10pO3JldHVybiBtbi5wdXNoKGhuKSxtbn0sW10pOnllJiYoYS5jb2xIZWFkZXJzPUFycmF5LmZyb20ocXRbMF0uY2hpbGRyZW4pLnJlZHVjZSgobW4sd24saG4pPT4oTSYmMD09PWhufHxtbi5wdXNoKHduLmlubmVySFRNTCksbW4pLFtdKSl9dWUubGVuZ3RoJiYoYS5maXhlZFJvd3NU'@; put 'b3A9dWUubGVuZ3RoKSxyZS5sZW5ndGgmJihhLmZpeGVkUm93c0JvdHRvbT1yZS5sZW5ndGgpO2NvbnN0IEdlPVsuLi51ZSwuLi5BcnJheS5mcm9tKGYudEJvZGllcykucmVkdWNlKChxdCxtbik9PihxdC5wdXNoKC4uLkFycmF5LmZyb20obW4ucm93cykpLHF0KSxbXSksLi4ucmVdO0JlPUdl'@; put 'Lmxlbmd0aDtjb25zdCBzdD1uZXcgQXJyYXkoQmUpO2ZvcihsZXQgcXQ9MDtxdDxCZTtxdCsrKXN0W3F0XT1uZXcgQXJyYXkoRyk7Y29uc3QgcHQ9W10sZHQ9W107Zm9yKGxldCBxdD0wO3F0PEJlO3F0Kyspe2NvbnN0IHduPUFycmF5LmZyb20oR2VbcXRdLmNlbGxzKSxobj13bi5sZW5ndGg7'@; put 'Zm9yKGxldCBNbj0wO01uPGhuO01uKyspe2NvbnN0IE1yPXduW01uXSx7bm9kZU5hbWU6a3IsaW5uZXJIVE1MOnFuLHJvd1NwYW46Z3IsY29sU3Bhbjpxcn09TXIsX2k9c3RbcXRdLmZpbmRJbmRleChQbj0+dm9pZCAwPT09UG4pO2lmKCJURCI9PT1rcil7aWYoZ3I+MXx8cXI+MSl7Zm9yKGxl'@; put 'dCBCcj1xdDtCcjxxdCtncjtCcisrKWlmKEJyPEJlKWZvcihsZXQgWXI9X2k7WXI8X2krcXI7WXIrKylzdFtCcl1bWXJdPW51bGw7Y29uc3QgVXI9TXIuZ2V0QXR0cmlidXRlKCJzdHlsZSIpO1VyJiZVci5pbmNsdWRlcygibXNvLWlnbm9yZTpjb2xzcGFuIil8fHB0LnB1c2goe2NvbDpfaSxy'@; put 'b3c6cXQscm93c3Bhbjpncixjb2xzcGFuOnFyfSl9bGV0IFBuPSIiO1BuPXYmJi9leGNlbC9naS50ZXN0KHYuY29udGVudCk/cW4ucmVwbGFjZSgvW1xyXG5dW1x4MjBdezAsMn0vZywiICIpLnJlcGxhY2UoLzxicihccyp8XC8pPltcclxuXT9bXHgyMF17MCwzfS9naW0sIlxyXG4iKTpxbi5y'@; put 'ZXBsYWNlKC88YnIoXHMqfFwvKT5bXHJcbl0/L2dpbSwiXHJcbiIpLHN0W3F0XVtfaV09UG4ucmVwbGFjZShwSmUsVXI9PkFmZVtVcl0pfWVsc2UgZHQucHVzaChxbil9fXJldHVybiBwdC5sZW5ndGgmJihhLm1lcmdlQ2VsbHM9cHQpLGR0Lmxlbmd0aCYmKGEucm93SGVhZGVycz1kdCksc3Qu'@; put 'bGVuZ3RoJiYoYS5kYXRhPXN0KSxhfWZ1bmN0aW9uIGcxKGMpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpbXTtjb25zdCBhPXR5cGVvZiBjO2lmKCJudW1iZXIiPT09YSlyZXR1cm4haXNOYU4oYykmJmlzRmluaXRlKGMpO2lm'@; put 'KCJzdHJpbmciPT09YSl7aWYoMD09PWMubGVuZ3RoKXJldHVybiExO2lmKDE9PT1jLmxlbmd0aClyZXR1cm4vXGQvLnRlc3QoYyk7Y29uc3QgZD1BcnJheS5mcm9tKG5ldyBTZXQoWyIuIiwuLi5sXSkpLm1hcChoPT5gXFwke2h9YCkuam9pbigifCIpO3JldHVybiBuZXcgUmVnRXhwKGBeWyst'@; put 'XT8oKCgke2R9KT9cXGQrKCgke2R9KVxcZCspPyhlWystXT9cXGQrKT8pfCgweFthLWZcXGRdKykpJGAsImkiKS50ZXN0KGMudHJpbSgpKX1yZXR1cm4ib2JqZWN0Ij09PWEmJiEoIWN8fCJudW1iZXIiIT10eXBlb2YgYy52YWx1ZU9mKCl8fGMgaW5zdGFuY2VvZiBEYXRlKX1mdW5jdGlvbiBE'@; put 'ZmUoYyl7cmV0dXJuIGcxKGMsWyIsIl0pfWZ1bmN0aW9uIEthKGMsbCxhKXtsZXQgZD0tMTtmb3IoImZ1bmN0aW9uIj09dHlwZW9mIGw/KGE9bCxsPWMpOmQ9Yy0xOysrZDw9bCYmITEhPT1hKGQpOyk7fWZ1bmN0aW9uIEokKGMsbCxhKXtsZXQgZD1jKzE7Zm9yKCJmdW5jdGlvbiI9PXR5cGVv'@; put 'ZiBsJiYoYT1sLGw9MCk7LS1kPj1sJiYhMSE9PWEoZCk7KTt9ZnVuY3Rpb24gUSQoYyxsKXtyZXR1cm4gbD1wYXJzZUludChsLnRvU3RyaW5nKCkucmVwbGFjZSgiJSIsIiIpLDEwKSxsPWlzTmFOKGwpPzA6bCxwYXJzZUludChjKmwvMTAwLDEwKX1mdW5jdGlvbiBBbyhjLGwsYSl7cmV0dXJu'@; put 'IE1hdGgubWluKGMsbCk9PT1jP2w6TWF0aC5tYXgoYyxhKT09PWM/YTpjfWNvbnN0IElmZT1uZXcgTWFwKFtbImFzYyIsWy0xLDFdXSxbImRlc2MiLFsxLC0xXV1dKSx2SmU9Yz0+YFRoZSBwcmlvcml0eSAnJHtjfScgaXMgYWxyZWFkeSBkZWNsYXJlZCBpbiBhIG1hcC5gLHlKZT1jPT5gVGhl'@; put 'IHByaW9yaXR5ICcke2N9JyBpcyBub3QgYSBudW1iZXIuYCxfSmU9Yz0+YFRoZSBpZCAnJHtjfScgaXMgYWxyZWFkeSBkZWNsYXJlZCBpbiBhIG1hcC5gO2Z1bmN0aW9uIHJQKCl7bGV0e2Vycm9ySWRFeGlzdHM6Y309YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/'@; put 'YXJndW1lbnRzWzBdOnt9O2NvbnN0IGw9bmV3IE1hcDtmdW5jdGlvbiBNKCl7cmV0dXJuWy4uLmxdfWZ1bmN0aW9uIEkoRyl7cmV0dXJuIGwuaGFzKEcpfXJldHVybiBjPWZsKGMpP2M6X0plLHthZGRJdGVtOmZ1bmN0aW9uIGEoRyxyZSl7aWYoSShHKSl0aHJvdyBuZXcgRXJyb3IoYyhHKSk7'@; put 'bC5zZXQoRyxyZSl9LGNsZWFyOmZ1bmN0aW9uIGgoKXtsLmNsZWFyKCl9LGdldElkOmZ1bmN0aW9uIGYoRyl7Y29uc3RbcmVdPU0oKS5maW5kKHVlPT57bGV0W3llLEVlXT11ZTtyZXR1cm4gRz09PUVlJiZ5ZX0pfHxbbnVsbF07cmV0dXJuIHJlfSxnZXRJdGVtOmZ1bmN0aW9uIHYoRyl7cmV0'@; put 'dXJuIGwuZ2V0KEcpfSxnZXRJdGVtczpNLGhhc0l0ZW06SSxyZW1vdmVJdGVtOmZ1bmN0aW9uIGQoRyl7cmV0dXJuIGwuZGVsZXRlKEcpfX19Y29uc3Qgd0plPWM9PmAnJHtjfScgdmFsdWUgaXMgYWxyZWFkeSBkZWNsYXJlZCBpbiBhIHVuaXF1ZSBzZXQuYCx0Sz1jPT5gVGhlcmUgaXMgYWxy'@; put 'ZWFkeSByZWdpc3RlcmVkICIke2N9IiBwbHVnaW4uYCxSZmU9ZnVuY3Rpb24gYkplKCl7bGV0e2Vycm9yUHJpb3JpdHlFeGlzdHM6YyxlcnJvclByaW9yaXR5TmFOOmx9PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTtjb25zdCBhPW5l'@; put 'dyBNYXA7cmV0dXJuIGM9ZmwoYyk/Yzp2SmUsbD1mbChsKT9sOnlKZSx7YWRkSXRlbTpmdW5jdGlvbiBkKGYsdil7aWYoIWcxKGYpKXRocm93IG5ldyBFcnJvcihsKGYpKTtpZihhLmhhcyhmKSl0aHJvdyBuZXcgRXJyb3IoYyhmKSk7YS5zZXQoZix2KX0sZ2V0SXRlbXM6ZnVuY3Rpb24gaCgp'@; put 'e2xldCBmPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiYXNjIjtjb25zdFt2LE1dPUlmZS5nZXQoZil8fElmZS5nZXQoImFzYyIpO3JldHVyblsuLi5hXS5zb3J0KChJLEcpPT5JWzBdPEdbMF0/djpNKS5tYXAoST0+SVsxXSl9fX0oe2Vy'@; put 'cm9yUHJpb3JpdHlFeGlzdHM6Yz0+YFRoZXJlIGlzIGFscmVhZHkgcmVnaXN0ZXJlZCBwbHVnaW4gb24gcHJpb3JpdHkgIiR7Y30iLmAsZXJyb3JQcmlvcml0eU5hTjpjPT5gVGhlIHByaW9yaXR5ICIke2N9IiBpcyBub3QgYSBudW1iZXIuYH0pLExmZT1mdW5jdGlvbiBDSmUoKXtsZXR7ZXJy'@; put 'b3JJdGVtRXhpc3RzOmN9PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTtjb25zdCBsPW5ldyBTZXQ7cmV0dXJuIGM9ZmwoYyk/Yzp3SmUse2FkZEl0ZW06ZnVuY3Rpb24gYShmKXtpZihsLmhhcyhmKSl0aHJvdyBuZXcgRXJyb3IoYyhm'@; put 'KSk7bC5hZGQoZil9LGNsZWFyOmZ1bmN0aW9uIGgoKXtsLmNsZWFyKCl9LGdldEl0ZW1zOmZ1bmN0aW9uIGQoKXtyZXR1cm5bLi4ubF19fX0oe2Vycm9ySXRlbUV4aXN0czp0S30pLG5LPXJQKHtlcnJvcklkRXhpc3RzOnRLfSk7ZnVuY3Rpb24gcksoKXtyZXR1cm5bLi4uUmZlLmdldEl0ZW1z'@; put 'KCksLi4uTGZlLmdldEl0ZW1zKCldfWZ1bmN0aW9uIE9FKGMpe2NvbnN0IGw9ZjEoYyk7cmV0dXJuIG5LLmdldEl0ZW0obCl9ZnVuY3Rpb24gUG8oYyxsLGEpe1tjLGwsYV09ZnVuY3Rpb24geEplKGMsbCxhKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgYyYmKGM9KGw9YykuUExVR0lOX0tF'@; put 'WSxhPWwuUExVR0lOX1BSSU9SSVRZKSxbYyxsLGFdfShjLGwsYSksdm9pZCAwPT09T0UoYykmJmZ1bmN0aW9uIE1KZShjLGwsYSl7Y29uc3QgZD1mMShjKTtpZihuSy5oYXNJdGVtKGQpKXRocm93IG5ldyBFcnJvcih0SyhkKSk7dm9pZCAwPT09YT9MZmUuYWRkSXRlbShkKTpSZmUuYWRkSXRl'@; put 'bShhLGQpLG5LLmFkZEl0ZW0oZCxsKX0oYyxsLGEpfWNvbnN0e3JlZ2lzdGVyOkVKZSxnZXRJdGVtOlRKZSxoYXNJdGVtOk9mZSxnZXROYW1lczpBSmV9PVUyKCJyZW5kZXJlcnMiKTtmdW5jdGlvbiBpUChjKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYylyZXR1cm4gYztpZighT2ZlKGMpKXRo'@; put 'cm93IEVycm9yKGBObyByZWdpc3RlcmVkIHJlbmRlcmVyIGZvdW5kIHVuZGVyICIke2N9IiBuYW1lYCk7cmV0dXJuIFRKZShjKX1mdW5jdGlvbiBMaChjLGwpeyJzdHJpbmciIT10eXBlb2YgYyYmKGM9KGw9YykuUkVOREVSRVJfVFlQRSksRUplKGMsbCl9Y29uc3R7cmVnaXN0ZXI6a0plLGdl'@; put 'dEl0ZW06REplLGhhc0l0ZW06UGZlLGdldE5hbWVzOklKZX09VTIoInZhbGlkYXRvcnMiKTtmdW5jdGlvbiBpSyhjKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYylyZXR1cm4gYztpZighUGZlKGMpKXRocm93IEVycm9yKGBObyByZWdpc3RlcmVkIHZhbGlkYXRvciBmb3VuZCB1bmRlciAiJHtj'@; put 'fSIgbmFtZWApO3JldHVybiBESmUoYyl9ZnVuY3Rpb24gWTcoYyxsKXsic3RyaW5nIiE9dHlwZW9mIGMmJihjPShsPWMpLlZBTElEQVRPUl9UWVBFKSxrSmUoYyxsKX1mdW5jdGlvbiBEcChjLGwsYSl7KGZ1bmN0aW9uIFJKZShjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3Io'@; put 'IkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShjLGwpLGwuc2V0KGMsYSl9ZnVuY3Rpb24gSmEoYyxsKXtyZXR1cm4gYy5nZXQoRmZlKGMsbCkpfWZ1bmN0aW9uIEhtKGMsbCxhKXtyZXR1cm4gYy5zZXQoRmZlKGMsbCks'@; put 'YSksYX1mdW5jdGlvbiBGZmUoYyxsLGEpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBjP2M9PT1sOmMuaGFzKGwpKXJldHVybiBhcmd1bWVudHMubGVuZ3RoPDM/bDphO3Rocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgZWxlbWVudCBpcyBub3QgcHJlc2VudCBvbiB0aGlzIG9iamVjdCIpfXZh'@; put 'ciBXMj1uZXcgV2Vha01hcCxhSz1uZXcgV2Vha01hcCxDMD1uZXcgV2Vha01hcCxoXz1uZXcgV2Vha01hcCxhUD1uZXcgV2Vha01hcCxsMz1uZXcgV2Vha01hcCxzSz1uZXcgV2Vha01hcCxQRT1uZXcgV2Vha01hcCxHNz1uZXcgV2Vha01hcCxJcD1uZXcgV2Vha01hcDtjb25zdCBIZmU9Y2xh'@; put 'c3MgTEple2NvbnN0cnVjdG9yKGwsYSxkLGgsZix2KXtsZXQgTT1hcmd1bWVudHMubGVuZ3RoPjYmJnZvaWQgMCE9PWFyZ3VtZW50c1s2XT9hcmd1bWVudHNbNl06bnVsbDtEcCh0aGlzLFcyLHZvaWQgMCksRHAodGhpcyxhSyx2b2lkIDApLERwKHRoaXMsQzAsdm9pZCAwKSxEcCh0aGlzLGhf'@; put 'LHZvaWQgMCksRHAodGhpcyxhUCx2b2lkIDApLERwKHRoaXMsbDMsdm9pZCAwKSxEcCh0aGlzLHNLLHZvaWQgMCksRHAodGhpcyxQRSx2b2lkIDApLERwKHRoaXMsRzcsW251bGwsbnVsbF0pLERwKHRoaXMsSXAsW251bGwsbnVsbF0pLEhtKFcyLHRoaXMsZCksSG0oYUssdGhpcyxhKSxIbShD'@; put 'MCx0aGlzLGYpLEhtKGhfLHRoaXMsdiksSG0oYVAsdGhpcyxNKSxIbShsMyx0aGlzLGgpLEhtKHNLLHRoaXMsbCksdGhpcy5yZWdpc3RlckV2ZW50cygpfXJlZ2lzdGVyRXZlbnRzKCl7SmEobDMsdGhpcykuYWRkRXZlbnRMaXN0ZW5lcihKYShDMCx0aGlzKS5ob2xkZXIsImNvbnRleHRtZW51'@; put 'IixkPT50aGlzLm9uQ29udGV4dE1lbnUoZCkpLEphKGwzLHRoaXMpLmFkZEV2ZW50TGlzdGVuZXIoSmEoQzAsdGhpcykuVEFCTEUsIm1vdXNlb3ZlciIsZD0+dGhpcy5vbk1vdXNlT3ZlcihkKSksSmEobDMsdGhpcykuYWRkRXZlbnRMaXN0ZW5lcihKYShDMCx0aGlzKS5UQUJMRSwibW91c2Vv'@; put 'dXQiLGQ9PnRoaXMub25Nb3VzZU91dChkKSk7Y29uc3QgbD0oKT0+e0phKGwzLHRoaXMpLmFkZEV2ZW50TGlzdGVuZXIoSmEoQzAsdGhpcykuaG9sZGVyLCJ0b3VjaHN0YXJ0IixkPT50aGlzLm9uVG91Y2hTdGFydChkKSksSmEobDMsdGhpcykuYWRkRXZlbnRMaXN0ZW5lcihKYShDMCx0aGlz'@; put 'KS5ob2xkZXIsInRvdWNoZW5kIixkPT50aGlzLm9uVG91Y2hFbmQoZCkpLHRoaXMubW9tZW50dW1TY3JvbGxpbmd8fCh0aGlzLm1vbWVudHVtU2Nyb2xsaW5nPXt9KSxKYShsMyx0aGlzKS5hZGRFdmVudExpc3RlbmVyKEphKEMwLHRoaXMpLmhvbGRlciwic2Nyb2xsIiwoKT0+e2NsZWFyVGlt'@; put 'ZW91dCh0aGlzLm1vbWVudHVtU2Nyb2xsaW5nLl90aW1lb3V0KSx0aGlzLm1vbWVudHVtU2Nyb2xsaW5nLm9uZ29pbmd8fEphKFcyLHRoaXMpLmdldFNldHRpbmcoIm9uQmVmb3JlVG91Y2hTY3JvbGwiKSx0aGlzLm1vbWVudHVtU2Nyb2xsaW5nLm9uZ29pbmc9ITAsdGhpcy5tb21lbnR1bVNj'@; put 'cm9sbGluZy5fdGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy50b3VjaEFwcGxpZWR8fCh0aGlzLm1vbWVudHVtU2Nyb2xsaW5nLm9uZ29pbmc9ITEsSmEoVzIsdGhpcykuZ2V0U2V0dGluZygib25BZnRlck1vbWVudHVtU2Nyb2xsIikpfSwyMDApfSl9O28zKCk/bCgpOih3JCgpJiZsKCks'@; put 'KCgpPT57SmEobDMsdGhpcykuYWRkRXZlbnRMaXN0ZW5lcihKYShDMCx0aGlzKS5ob2xkZXIsIm1vdXNldXAiLGQ9PnRoaXMub25Nb3VzZVVwKGQpKSxKYShsMyx0aGlzKS5hZGRFdmVudExpc3RlbmVyKEphKEMwLHRoaXMpLmhvbGRlciwibW91c2Vkb3duIixkPT50aGlzLm9uTW91c2VEb3du'@; put 'KGQpKX0pKCkpfXNlbGVjdGVkQ2VsbFdhc1RvdWNoZWQobCl7Y29uc3QgZD10aGlzLnBhcmVudENlbGwobCkuY29vcmRzO2lmKEphKFBFLHRoaXMpJiZkKXtjb25zdFtoLGZdPVtkLnJvdyxKYShQRSx0aGlzKS5mcm9tLnJvd10sW3YsTV09W2QuY29sLEphKFBFLHRoaXMpLmZyb20uY29sXTty'@; put 'ZXR1cm4gaD09PWYmJnY9PT1NfXJldHVybiExfXBhcmVudENlbGwobCl7Y29uc3QgYT17fSxoPXhFKGwsWyJURCIsIlRIIl0sSmEoQzAsdGhpcykuVEFCTEUpO3JldHVybiBoPyhhLmNvb3Jkcz1KYShDMCx0aGlzKS5nZXRDb29yZHMoaCksYS5URD1oKTpncyhsLCJ3dEJvcmRlciIpJiZncyhs'@; put 'LCJjdXJyZW50Iik/KGEuY29vcmRzPUphKGhfLHRoaXMpLmdldEZvY3VzU2VsZWN0aW9uKCkuY2VsbFJhbmdlLmhpZ2hsaWdodCxhLlREPUphKEMwLHRoaXMpLmdldENlbGwoYS5jb29yZHMpKTpncyhsLCJ3dEJvcmRlciIpJiZncyhsLCJhcmVhIikmJkphKGhfLHRoaXMpLmdldEFyZWFTZWxl'@; put 'Y3Rpb24oKS5jZWxsUmFuZ2UmJihhLmNvb3Jkcz1KYShoXyx0aGlzKS5nZXRBcmVhU2VsZWN0aW9uKCkuY2VsbFJhbmdlLnRvLGEuVEQ9SmEoQzAsdGhpcykuZ2V0Q2VsbChhLmNvb3JkcykpLGF9b25Nb3VzZURvd24obCl7Y29uc3QgYT1KYShhSyx0aGlzKS5yb290RG9jdW1lbnQuYWN0aXZl'@; put 'RWxlbWVudCxkPU4kKEoyZSxsLnRhcmdldCksaD1sLnRhcmdldDtpZighWyJURCIsIlRIIl0uaW5jbHVkZXMoYS5ub2RlTmFtZSkmJihoPT09YXx8ZCgwKT09PWF8fGQoMSk9PT1hKSlyZXR1cm47Y29uc3QgZj10aGlzLnBhcmVudENlbGwoaCk7Z3MoaCwiY29ybmVyIik/SmEoVzIsdGhpcyku'@; put 'Z2V0U2V0dGluZygib25DZWxsQ29ybmVyTW91c2VEb3duIixsLGgpOmYuVEQmJkphKFcyLHRoaXMpLmhhcygib25DZWxsTW91c2VEb3duIikmJnRoaXMuY2FsbExpc3RlbmVyKCJvbkNlbGxNb3VzZURvd24iLGwsZi5jb29yZHMsZi5URCksKDA9PT1sLmJ1dHRvbnx8dGhpcy50b3VjaEFwcGxp'@; put 'ZWQpJiZmLlREJiYoSmEoSXAsdGhpcylbMF09Zi5URCxjbGVhclRpbWVvdXQoSmEoRzcsdGhpcylbMF0pLEphKEc3LHRoaXMpWzBdPXNldFRpbWVvdXQoKCk9PntKYShJcCx0aGlzKVswXT1udWxsfSwxZTMpKX1vbkNvbnRleHRNZW51KGwpe2lmKEphKFcyLHRoaXMpLmhhcygib25DZWxsQ29u'@; put 'dGV4dE1lbnUiKSl7Y29uc3QgYT10aGlzLnBhcmVudENlbGwobC50YXJnZXQpO2EuVEQmJnRoaXMuY2FsbExpc3RlbmVyKCJvbkNlbGxDb250ZXh0TWVudSIsbCxhLmNvb3JkcyxhLlREKX19b25Nb3VzZU92ZXIobCl7aWYoIUphKFcyLHRoaXMpLmhhcygib25DZWxsTW91c2VPdmVyIikpcmV0'@; put 'dXJuO2NvbnN0IGE9SmEoQzAsdGhpcykuVEFCTEUsZD14RShsLnRhcmdldCxbIlREIiwiVEgiXSxhKSxoPUphKGFQLHRoaXMpfHx0aGlzO2QmJmQhPT1oLmxhc3RNb3VzZU92ZXImJkltKGQsYSkmJihoLmxhc3RNb3VzZU92ZXI9ZCx0aGlzLmNhbGxMaXN0ZW5lcigib25DZWxsTW91c2VPdmVy'@; put 'IixsLEphKEMwLHRoaXMpLmdldENvb3JkcyhkKSxkKSl9b25Nb3VzZU91dChsKXtpZighSmEoVzIsdGhpcykuaGFzKCJvbkNlbGxNb3VzZU91dCIpKXJldHVybjtjb25zdCBhPUphKEMwLHRoaXMpLlRBQkxFLGQ9eEUobC50YXJnZXQsWyJURCIsIlRIIl0sYSksaD14RShsLnJlbGF0ZWRUYXJn'@; put 'ZXQsWyJURCIsIlRIIl0sYSksZj1KYShhUCx0aGlzKXx8dGhpcztkJiZkIT09aCYmSW0oZCxhKSYmKHRoaXMuY2FsbExpc3RlbmVyKCJvbkNlbGxNb3VzZU91dCIsbCxKYShDMCx0aGlzKS5nZXRDb29yZHMoZCksZCksbnVsbD09PWgmJihmLmxhc3RNb3VzZU92ZXI9bnVsbCkpfW9uTW91c2VV'@; put 'cChsKXtjb25zdCBhPXRoaXMucGFyZW50Q2VsbChsLnRhcmdldCk7YS5URCYmSmEoVzIsdGhpcykuaGFzKCJvbkNlbGxNb3VzZVVwIikmJnRoaXMuY2FsbExpc3RlbmVyKCJvbkNlbGxNb3VzZVVwIixsLGEuY29vcmRzLGEuVEQpLCgwPT09bC5idXR0b258fHRoaXMudG91Y2hBcHBsaWVkKSYm'@; put 'KGEuVEQ9PT1KYShJcCx0aGlzKVswXSYmYS5URD09PUphKElwLHRoaXMpWzFdPyhncyhsLnRhcmdldCwiY29ybmVyIik/dGhpcy5jYWxsTGlzdGVuZXIoIm9uQ2VsbENvcm5lckRibENsaWNrIixsLGEuY29vcmRzLGEuVEQpOnRoaXMuY2FsbExpc3RlbmVyKCJvbkNlbGxEYmxDbGljayIsbCxh'@; put 'LmNvb3JkcyxhLlREKSxKYShJcCx0aGlzKVswXT1udWxsLEphKElwLHRoaXMpWzFdPW51bGwpOmEuVEQ9PT1KYShJcCx0aGlzKVswXSYmKEphKElwLHRoaXMpWzFdPWEuVEQsY2xlYXJUaW1lb3V0KEphKEc3LHRoaXMpWzFdKSxKYShHNyx0aGlzKVsxXT1zZXRUaW1lb3V0KCgpPT57SmEoSXAs'@; put 'dGhpcylbMV09bnVsbH0sNTAwKSkpfW9uVG91Y2hTdGFydChsKXtIbShQRSx0aGlzLEphKGhfLHRoaXMpLmdldEZvY3VzU2VsZWN0aW9uKCkuY2VsbFJhbmdlKSx0aGlzLnRvdWNoQXBwbGllZD0hMCx0aGlzLm9uTW91c2VEb3duKGwpfW9uVG91Y2hFbmQobCl7dmFyIGE7Y29uc3QgZD1sLnRh'@; put 'cmdldCxoPW51bGw9PT0oYT10aGlzLnBhcmVudENlbGwoZCkpfHx2b2lkIDA9PT1hP3ZvaWQgMDphLmNvb3JkcyxmPUhhKGgpJiZoLnJvdz49MCYmaC5jb2w+PTA7aWYobC5jYW5jZWxhYmxlJiZmJiZKYShXMix0aGlzKS5nZXRTZXR0aW5nKCJpc0RhdGFWaWV3SW5zdGFuY2UiKSl7Y29uc3Qg'@; put 'TT1bIkEiLCJCVVRUT04iLCJJTlBVVCJdO1MkKCkmJihLMmUoKXx8WDJlKCkpJiZ0aGlzLnNlbGVjdGVkQ2VsbFdhc1RvdWNoZWQoZCkmJiFNLmluY2x1ZGVzKGQudGFnTmFtZSk/bC5wcmV2ZW50RGVmYXVsdCgpOnRoaXMuc2VsZWN0ZWRDZWxsV2FzVG91Y2hlZChkKXx8bC5wcmV2ZW50RGVm'@; put 'YXVsdCgpfXRoaXMub25Nb3VzZVVwKGwpLHRoaXMudG91Y2hBcHBsaWVkPSExfWNhbGxMaXN0ZW5lcihsLGEsZCxoKXtjb25zdCBmPUphKFcyLHRoaXMpLmdldFNldHRpbmdQdXJlKGwpO2YmJmYoYSxkLGgsSmEoc0ssdGhpcykuY2FsbCh0aGlzKSl9ZGVzdHJveSgpe2NsZWFyVGltZW91dChK'@; put 'YShHNyx0aGlzKVswXSksY2xlYXJUaW1lb3V0KEphKEc3LHRoaXMpWzFdKSxKYShsMyx0aGlzKS5kZXN0cm95KCl9fTtmdW5jdGlvbiBvSyhjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gT0plKGMpe3ZhciBsPWZ1bmN0aW9uIFBKZShjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0'@; put 'dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRp'@; put 'dmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxl'@; put 'OiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9Y29uc3QgSEplPWNsYXNzIEZKZXtjb25zdHJ1Y3RvcihsLGEsZCl7b0sodGhpcywib2Zmc2V0Iix2b2lkIDApLG9LKHRoaXMsInRvdGFsIix2b2lkIDApLG9LKHRoaXMsImNvdW50VEgiLHZvaWQgMCksdGhpcy5vZmZzZXQ9bCx0aGlzLnRvdGFs'@; put 'PWEsdGhpcy5jb3VudFRIPWR9b2Zmc2V0dGVkKGwpe3JldHVybiBsK3RoaXMub2Zmc2V0fXVuT2Zmc2V0dGVkKGwpe3JldHVybiBsLXRoaXMub2Zmc2V0fXJlbmRlcmVkVG9Tb3VyY2UobCl7cmV0dXJuIHRoaXMub2Zmc2V0dGVkKGwpfXNvdXJjZVRvUmVuZGVyZWQobCl7cmV0dXJuIHRoaXMu'@; put 'dW5PZmZzZXR0ZWQobCl9b2Zmc2V0dGVkVEgobCl7cmV0dXJuIGwtdGhpcy5jb3VudFRIfXVuT2Zmc2V0dGVkVEgobCl7cmV0dXJuIGwrdGhpcy5jb3VudFRIfXZpc2libGVSb3dIZWFkZWRDb2x1bW5Ub1NvdXJjZUNvbHVtbihsKXtyZXR1cm4gdGhpcy5yZW5kZXJlZFRvU291cmNlKHRoaXMu'@; put 'b2Zmc2V0dGVkVEgobCkpfXNvdXJjZUNvbHVtblRvVmlzaWJsZVJvd0hlYWRlZENvbHVtbihsKXtyZXR1cm4gdGhpcy51bk9mZnNldHRlZFRIKHRoaXMuc291cmNlVG9SZW5kZXJlZChsKSl9fTtmdW5jdGlvbiBsSyhjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gTkplKGMpe3ZhciBsPWZ1bmN0'@; put 'aW9uIFZKZShjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBl'@; put 'RXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVy'@; put 'dHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9Y29uc3QgakplPWNsYXNzIEJKZXtjb25zdHJ1Y3RvcihsLGEsZCl7bEsodGhpcywib2Zmc2V0Iix2b2lkIDApLGxLKHRoaXMsInRvdGFsIix2b2lkIDApLGxLKHRoaXMs'@; put 'ImNvdW50VEgiLHZvaWQgMCksdGhpcy5vZmZzZXQ9bCx0aGlzLnRvdGFsPWEsdGhpcy5jb3VudFRIPWR9b2Zmc2V0dGVkKGwpe3JldHVybiBsK3RoaXMub2Zmc2V0fXVuT2Zmc2V0dGVkKGwpe3JldHVybiBsLXRoaXMub2Zmc2V0fXJlbmRlcmVkVG9Tb3VyY2UobCl7cmV0dXJuIHRoaXMub2Zm'@; put 'c2V0dGVkKGwpfXNvdXJjZVRvUmVuZGVyZWQobCl7cmV0dXJuIHRoaXMudW5PZmZzZXR0ZWQobCl9b2Zmc2V0dGVkVEgobCl7cmV0dXJuIGwtdGhpcy5jb3VudFRIfXVuT2Zmc2V0dGVkVEgobCl7cmV0dXJuIGwrdGhpcy5jb3VudFRIfXZpc2libGVDb2xIZWFkZWRSb3dUb1NvdXJjZVJvdyhs'@; put 'KXtyZXR1cm4gdGhpcy5yZW5kZXJlZFRvU291cmNlKHRoaXMub2Zmc2V0dGVkVEgobCkpfXNvdXJjZVJvd1RvVmlzaWJsZUNvbEhlYWRlZFJvdyhsKXtyZXR1cm4gdGhpcy51bk9mZnNldHRlZFRIKHRoaXMuc291cmNlVG9SZW5kZXJlZChsKSl9fTtmdW5jdGlvbiBzUChjLGwsYSl7cmV0dXJu'@; put 'KGw9ZnVuY3Rpb24gekplKGMpe3ZhciBsPWZ1bmN0aW9uIFVKZShjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5'@; put 'cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsi'@; put 'In0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9Y2xhc3MgWkple2NvbnN0cnVjdG9yKCl7c1AodGhpcywiY3VycmVudFNpemUiLDApLHNQKHRoaXMsIm5leHRTaXpl'@; put 'IiwwKSxzUCh0aGlzLCJjdXJyZW50T2Zmc2V0IiwwKSxzUCh0aGlzLCJuZXh0T2Zmc2V0IiwwKX1zZXRTaXplKGwpe3RoaXMuY3VycmVudFNpemU9dGhpcy5uZXh0U2l6ZSx0aGlzLm5leHRTaXplPWx9c2V0T2Zmc2V0KGwpe3RoaXMuY3VycmVudE9mZnNldD10aGlzLm5leHRPZmZzZXQsdGhp'@; put 'cy5uZXh0T2Zmc2V0PWx9fWZ1bmN0aW9uIHVLKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBZSmUoYyl7dmFyIGw9ZnVuY3Rpb24gR0plKGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFy'@; put 'IGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShj'@; put 'LCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31jbGFzcyAkSmV7Y29uc3RydWN0b3IoKXt1'@; put 'Syh0aGlzLCJzaXplIixuZXcgWkplKSx1Syh0aGlzLCJ3b3JraW5nU3BhY2UiLDApLHVLKHRoaXMsInNoYXJlZFNpemUiLG51bGwpfXNldFNpemUobCl7dGhpcy5zaXplLnNldFNpemUobCl9c2V0T2Zmc2V0KGwpe3RoaXMuc2l6ZS5zZXRPZmZzZXQobCl9Z2V0Vmlld1NpemUoKXtyZXR1cm4g'@; put 'dGhpcy5zaXplfWlzU2hhcmVkKCl7cmV0dXJuIG51bGwhPT10aGlzLnNoYXJlZFNpemV9aXNQbGFjZU9uKGwpe3JldHVybiB0aGlzLndvcmtpbmdTcGFjZT09PWx9YXBwZW5kKGwpe3RoaXMud29ya2luZ1NwYWNlPTEsbC53b3JraW5nU3BhY2U9Mix0aGlzLnNoYXJlZFNpemU9bC5nZXRWaWV3'@; put 'U2l6ZSgpfXByZXBlbmQobCl7dGhpcy53b3JraW5nU3BhY2U9MixsLndvcmtpbmdTcGFjZT0xLHRoaXMuc2hhcmVkU2l6ZT1sLmdldFZpZXdTaXplKCl9fWIoMjk3NjApO2NsYXNzIFZmZXtjb25zdHJ1Y3RvcihsLGEpeyhmdW5jdGlvbiBLSmUoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIFhK'@; put 'ZShjKXt2YXIgbD1mdW5jdGlvbiBxSmUoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4g'@; put 'ZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2Jq'@; put 'ZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfSkodGhpcywib3JkZXIiLFtdKSx0aGlzLm9yZGVyPVsuLi5BcnJheShhKS5rZXlzKCldLm1hcChkPT5sK2QpfWdldCBsZW5ndGgoKXtyZXR1'@; put 'cm4gdGhpcy5vcmRlci5sZW5ndGh9aGFzKGwpe3JldHVybiB0aGlzLm9yZGVyLmluZGV4T2YobCk+LTF9Z2V0KGwpe3JldHVybiBsPHRoaXMub3JkZXIubGVuZ3RoP3RoaXMub3JkZXJbbF06LTF9cmVtb3ZlKGwpe3RoaXMub3JkZXIuc3BsaWNlKHRoaXMub3JkZXIuaW5kZXhPZihsKSwxKX1w'@; put 'cmVwZW5kKGwpe3JldHVybiB0aGlzLm9yZGVyLnVuc2hpZnQobCksdGhpcy5vcmRlci5wb3AoKX19Y2xhc3MgdFFle2NvbnN0cnVjdG9yKGwpeyhmdW5jdGlvbiBKSmUoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIFFKZShjKXt2YXIgbD1mdW5jdGlvbiBlUWUoYyxsKXtpZigib2JqZWN0IiE9'@; put 'dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3Qg'@; put 'cmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxl'@; put 'OiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfSkodGhpcywic2l6ZVNldCIsdm9pZCAwKSx0aGlzLnNpemVTZXQ9bH1kaWZmKCl7Y29uc3R7c2l6ZVNldDpsfT10aGlzLHtjdXJyZW50U2l6ZTphLG5leHRTaXplOmR9PWwuZ2V0Vmlld1NpemUoKTtsZXQgaD1NYXRo'@; put 'Lm1heChkLGEpO2lmKDA9PT1oKXJldHVybltdO2NvbnN0e2N1cnJlbnRPZmZzZXQ6ZixuZXh0T2Zmc2V0OnZ9PWwuZ2V0Vmlld1NpemUoKSxNPW5ldyBWZmUoZixhKSxJPW5ldyBWZmUodixkKSxHPVtdO2ZvcihsZXQgcmU9MDtyZTxoO3JlKyspe2NvbnN0IHVlPU0uZ2V0KHJlKSx5ZT1JLmdl'@; put 'dChyZSk7aWYoLTE9PT15ZSlHLnB1c2goWyJyZW1vdmUiLHVlXSk7ZWxzZSBpZigtMT09PXVlKSFsLmlzU2hhcmVkKCl8fGwuaXNTaGFyZWQoKSYmbC5pc1BsYWNlT24oMik/Ry5wdXNoKFsiYXBwZW5kIix5ZV0pOkcucHVzaChbInByZXBlbmQiLHllXSk7ZWxzZSBpZih5ZT51ZSlNLmhhcyh5'@; put 'ZSkmJihNLnJlbW92ZSh5ZSksZDw9TS5sZW5ndGgmJihoLT0xKSksRy5wdXNoKFsicmVwbGFjZSIseWUsdWVdKTtlbHNlIGlmKHllPHVlKXtjb25zdCBFZT1NLnByZXBlbmQoeWUpO0cucHVzaChbImluc2VydF9iZWZvcmUiLHllLHVlLEVlXSl9ZWxzZSBHLnB1c2goWyJub25lIix5ZV0pfXJl'@; put 'dHVybiBHfX1mdW5jdGlvbiBmXyhjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gblFlKGMpe3ZhciBsPWZ1bmN0aW9uIHJRZShjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2Fs'@; put 'bChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5n'@; put 'Iik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9Y2xhc3MgQmZle2NvbnN0cnVjdG9yKGwsYSl7Zl8odGhp'@; put 'cywicm9vdE5vZGUiLHZvaWQgMCksZl8odGhpcywibm9kZXNQb29sIix2b2lkIDApLGZfKHRoaXMsInNpemVTZXQiLG5ldyAkSmUpLGZfKHRoaXMsImNvbGxlY3RlZE5vZGVzIixbXSksZl8odGhpcywidmlld0RpZmZlciIsbmV3IHRRZSh0aGlzLnNpemVTZXQpKSxmXyh0aGlzLCJsZWFkcyIs'@; put 'W10pLHRoaXMucm9vdE5vZGU9bCx0aGlzLm5vZGVzUG9vbD1hfXNldFNpemUobCl7cmV0dXJuIHRoaXMuc2l6ZVNldC5zZXRTaXplKGwpLHRoaXN9c2V0T2Zmc2V0KGwpe3JldHVybiB0aGlzLnNpemVTZXQuc2V0T2Zmc2V0KGwpLHRoaXN9aXNTaGFyZWRWaWV3U2V0KCl7cmV0dXJuIHRoaXMu'@; put 'c2l6ZVNldC5pc1NoYXJlZCgpfWdldE5vZGUobCl7cmV0dXJuIGw8dGhpcy5jb2xsZWN0ZWROb2Rlcy5sZW5ndGg/dGhpcy5jb2xsZWN0ZWROb2Rlc1tsXTpudWxsfWdldEN1cnJlbnROb2RlKCl7Y29uc3QgbD10aGlzLmNvbGxlY3RlZE5vZGVzLmxlbmd0aDtyZXR1cm4gbD4wP3RoaXMuY29s'@; put 'bGVjdGVkTm9kZXNbbC0xXTpudWxsfWFwcGx5Q29tbWFuZChsKXtjb25zdHtyb290Tm9kZTphfT10aGlzLFtkLGgsZix2XT1sLE09dGhpcy5ub2Rlc1Bvb2woaCk7c3dpdGNoKHRoaXMuY29sbGVjdGVkTm9kZXMucHVzaChNKSxkKXtjYXNlInByZXBlbmQiOmEuaW5zZXJ0QmVmb3JlKE0sYS5m'@; put 'aXJzdENoaWxkKTticmVhaztjYXNlImFwcGVuZCI6YS5hcHBlbmRDaGlsZChNKTticmVhaztjYXNlImluc2VydF9iZWZvcmUiOmEuaW5zZXJ0QmVmb3JlKE0sdGhpcy5ub2Rlc1Bvb2woZikpLGEucmVtb3ZlQ2hpbGQodGhpcy5ub2Rlc1Bvb2wodikpO2JyZWFrO2Nhc2UicmVwbGFjZSI6YS5y'@; put 'ZXBsYWNlQ2hpbGQoTSx0aGlzLm5vZGVzUG9vbChmKSk7YnJlYWs7Y2FzZSJyZW1vdmUiOmEucmVtb3ZlQ2hpbGQoTSl9fXN0YXJ0KCl7dGhpcy5jb2xsZWN0ZWROb2Rlcy5sZW5ndGg9MCx0aGlzLmxlYWRzPXRoaXMudmlld0RpZmZlci5kaWZmKCl9cmVuZGVyKCl7dGhpcy5sZWFkcy5sZW5n'@; put 'dGg+MCYmdGhpcy5hcHBseUNvbW1hbmQodGhpcy5sZWFkcy5zaGlmdCgpKX1lbmQoKXtmb3IoO3RoaXMubGVhZHMubGVuZ3RoPjA7KXRoaXMuYXBwbHlDb21tYW5kKHRoaXMubGVhZHMuc2hpZnQoKSl9fWNsYXNzIGpmZSBleHRlbmRzIEJmZXtwcmVwZW5kVmlldyhsKXtyZXR1cm4gdGhpcy5z'@; put 'aXplU2V0LnByZXBlbmQobC5zaXplU2V0KSxsLnNpemVTZXQuYXBwZW5kKHRoaXMuc2l6ZVNldCksdGhpc31hcHBlbmRWaWV3KGwpe3JldHVybiB0aGlzLnNpemVTZXQuYXBwZW5kKGwuc2l6ZVNldCksbC5zaXplU2V0LnByZXBlbmQodGhpcy5zaXplU2V0KSx0aGlzfX1mdW5jdGlvbiB6ZmUo'@; put 'YyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIGlRZShjKXt2YXIgbD1mdW5jdGlvbiBhUWUoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lm'@; put 'KCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10'@; put 'eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWNsYXNzIHNRZXtjb25zdHJ1Y3RvcihsKXt6ZmUodGhpcywibm9kZVR5cGUiLHZvaWQgMCks'@; put 'emZlKHRoaXMsInBvb2wiLG5ldyBNYXApLHRoaXMubm9kZVR5cGU9bC50b1VwcGVyQ2FzZSgpfXNldFJvb3REb2N1bWVudChsKXt0aGlzLnJvb3REb2N1bWVudD1sfW9idGFpbihsLGEpe2NvbnN0IGg9Im51bWJlciI9PXR5cGVvZiBhP2Ake2x9eCR7YX1gOmwudG9TdHJpbmcoKTtpZih0aGlz'@; put 'LnBvb2wuaGFzKGgpKXJldHVybiB0aGlzLnBvb2wuZ2V0KGgpO2NvbnN0IGY9dGhpcy5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLm5vZGVUeXBlKTtyZXR1cm4gdGhpcy5wb29sLnNldChoLGYpLGZ9fWZ1bmN0aW9uIEZFKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBvUWUoYyl7'@; put 'dmFyIGw9ZnVuY3Rpb24gbFFlKGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhy'@; put 'b3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5k'@; put 'ZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31jbGFzcyBIRXtjb25zdHJ1Y3RvcihsLGEpe0ZFKHRoaXMsIm5vZGVzUG9vbCIsbnVsbCksRkUodGhpcywibm9kZVR5cGUiLHZvaWQgMCksRkUodGhp'@; put 'cywicm9vdE5vZGUiLHZvaWQgMCksRkUodGhpcywidGFibGUiLG51bGwpLEZFKHRoaXMsInJlbmRlcmVkTm9kZXMiLDApLHRoaXMubm9kZXNQb29sPSJzdHJpbmciPT10eXBlb2YgbD9uZXcgc1FlKGwpOm51bGwsdGhpcy5ub2RlVHlwZT1sLHRoaXMucm9vdE5vZGU9YX1zZXRUYWJsZShsKXt0'@; put 'aGlzLm5vZGVzUG9vbCYmdGhpcy5ub2Rlc1Bvb2wuc2V0Um9vdERvY3VtZW50KGwucm9vdERvY3VtZW50KSx0aGlzLnRhYmxlPWx9YWRqdXN0KCl7fXJlbmRlcigpe319ZnVuY3Rpb24gVWZlKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBjUWUoYyl7dmFyIGw9ZnVuY3Rpb24gdVFlKGMsbCl7'@; put 'aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1By'@; put 'aW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVl'@; put 'OmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31jbGFzcyBkUWUgZXh0ZW5kcyBIRXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCJUSCIpLFVmZSh0aGlzLCJvcmRlclZpZXdzIixuZXcgV2Vha01hcCksVWZlKHRoaXMsInNvdXJjZVJvd0luZGV4Iiww'@; put 'KX1vYnRhaW5PcmRlclZpZXcobCl7bGV0IGE7cmV0dXJuIHRoaXMub3JkZXJWaWV3cy5oYXMobCk/YT10aGlzLm9yZGVyVmlld3MuZ2V0KGwpOihhPW5ldyBqZmUobCxkPT50aGlzLm5vZGVzUG9vbC5vYnRhaW4odGhpcy5zb3VyY2VSb3dJbmRleCxkKSksdGhpcy5vcmRlclZpZXdzLnNldChs'@; put 'LGEpKSxhfXJlbmRlcigpe2NvbnN0e3Jvd3NUb1JlbmRlcjpsLHJvd0hlYWRlckZ1bmN0aW9uczphLHJvd0hlYWRlcnNDb3VudDpkLHJvd3M6aCxjZWxsczpmfT10aGlzLnRhYmxlO2ZvcihsZXQgdj0wO3Y8bDt2Kyspe2NvbnN0IE09dGhpcy50YWJsZS5yZW5kZXJlZFJvd1RvU291cmNlKHYp'@; put 'LEk9aC5nZXRSZW5kZXJlZE5vZGUodik7dGhpcy5zb3VyY2VSb3dJbmRleD1NO2NvbnN0IEc9dGhpcy5vYnRhaW5PcmRlclZpZXcoSSkscmU9Zi5vYnRhaW5PcmRlclZpZXcoSSk7Ry5hcHBlbmRWaWV3KHJlKS5zZXRTaXplKGQpLnNldE9mZnNldCgwKS5zdGFydCgpO2ZvcihsZXQgdWU9ZC0x'@; put 'O3VlPj0wO3VlLS0pe0cucmVuZGVyKCk7Y29uc3QgeWU9Ry5nZXRDdXJyZW50Tm9kZSgpO3llLmNsYXNzTmFtZT0iIix5ZS5yZW1vdmVBdHRyaWJ1dGUoInN0eWxlIiksQjcoeWUsW25ldyBSZWdFeHAoImFyaWEtKC4qKSIpLG5ldyBSZWdFeHAoInJvbGUiKV0pLHRoaXMudGFibGUuaXNBcmlh'@; put 'RW5hYmxlZCgpJiZtcyh5ZSxbWyJyb2xlIiwicm93aGVhZGVyIl0sWyJzY29wZSIsInJvdyJdLGIkKHVlKzEpLGttKC0xKV0pLGFbdWVdKE0seWUsdWUpfUcuZW5kKCl9fX1jbGFzcyBoUWUgZXh0ZW5kcyBIRXtjb25zdHJ1Y3RvcihsKXtzdXBlcihudWxsLGwpfWFkanVzdCgpe2NvbnN0e2Nv'@; put 'bHVtbkhlYWRlcnNDb3VudDpsLHJvd0hlYWRlcnNDb3VudDphfT10aGlzLnRhYmxlO2xldCBkPXRoaXMucm9vdE5vZGUuZmlyc3RDaGlsZDtpZihsKXtjb25zdHtjb2x1bW5zVG9SZW5kZXI6aH09dGhpcy50YWJsZSxmPWgrYTtmb3IobGV0IE09MCxJPWw7TTxJO00rKyl7Zm9yKGQ9dGhpcy5y'@; put 'b290Tm9kZS5jaGlsZE5vZGVzW01dLGR8fChkPXRoaXMudGFibGUucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRyIiksdGhpcy5yb290Tm9kZS5hcHBlbmRDaGlsZChkKSksdGhpcy5yZW5kZXJlZE5vZGVzPWQuY2hpbGROb2Rlcy5sZW5ndGg7dGhpcy5yZW5kZXJlZE5vZGVzPGY7KWQu'@; put 'YXBwZW5kQ2hpbGQodGhpcy50YWJsZS5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGgiKSksdGhpcy5yZW5kZXJlZE5vZGVzKz0xO2Zvcig7dGhpcy5yZW5kZXJlZE5vZGVzPmY7KWQucmVtb3ZlQ2hpbGQoZC5sYXN0Q2hpbGQpLHRoaXMucmVuZGVyZWROb2Rlcy09MX1jb25zdCB2PXRo'@; put 'aXMucm9vdE5vZGUuY2hpbGROb2Rlcy5sZW5ndGg7aWYodj5sKWZvcihsZXQgTT1sO008djtNKyspdGhpcy5yb290Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnJvb3ROb2RlLmxhc3RDaGlsZCl9ZWxzZSBkJiZBcChkKX1yZW5kZXIoKXtjb25zdHtjb2x1bW5IZWFkZXJzQ291bnQ6bH09dGhpcy50'@; put 'YWJsZTt0aGlzLnRhYmxlLmlzQXJpYUVuYWJsZWQoKSYmbXModGhpcy5yb290Tm9kZSxbWyJyb2xlIiwicm93Z3JvdXAiXV0pO2ZvcihsZXQgYT0wO2E8bDthKz0xKXtjb25zdHtjb2x1bW5IZWFkZXJGdW5jdGlvbnM6ZCxjb2x1bW5zVG9SZW5kZXI6aCxyb3dIZWFkZXJzQ291bnQ6Zn09dGhp'@; put 'cy50YWJsZSx2PXRoaXMucm9vdE5vZGUuY2hpbGROb2Rlc1thXTt0aGlzLnRhYmxlLmlzQXJpYUVuYWJsZWQoKSYmbXModixbWyJyb2xlIiwicm93Il0sVjJlKGErMSldKTtmb3IobGV0IE09LTEqZjtNPGg7TSs9MSl7Y29uc3QgST10aGlzLnRhYmxlLnJlbmRlcmVkQ29sdW1uVG9Tb3VyY2Uo'@; put 'TSksRz12LmNoaWxkTm9kZXNbTStmXTtHLmNsYXNzTmFtZT0iIixHLnJlbW92ZUF0dHJpYnV0ZSgic3R5bGUiKSxCNyhHLFtuZXcgUmVnRXhwKCJhcmlhLSguKikiKSxuZXcgUmVnRXhwKCJyb2xlIildKSx0aGlzLnRhYmxlLmlzQXJpYUVuYWJsZWQoKSYmbXMoRyxbYiQoTSsxK3RoaXMudGFi'@; put 'bGUucm93SGVhZGVyc0NvdW50KSxrbSgtMSksWyJyb2xlIiwiY29sdW1uaGVhZGVyIl0sLi4uTT49MD9bWyJzY29wZSIsImNvbCJdXTpbWyJyb2xlIiwiZ3JpZGNlbGwgYnV0dG9uIl0sbl8oIlNlbGVjdCB3aG9sZSBncmlkIildXSksZFthXShJLEcsYSl9fX19bGV0IFpmZT0hMTtjbGFzcyBm'@; put 'UWUgZXh0ZW5kcyBIRXtjb25zdHJ1Y3RvcihsKXtzdXBlcihudWxsLGwpfWFkanVzdCgpe2NvbnN0e2NvbHVtbnNUb1JlbmRlcjpsLHJvd0hlYWRlcnNDb3VudDphfT10aGlzLnRhYmxlLGQ9bCthO2Zvcig7dGhpcy5yZW5kZXJlZE5vZGVzPGQ7KXRoaXMucm9vdE5vZGUuYXBwZW5kQ2hpbGQo'@; put 'dGhpcy50YWJsZS5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY29sIikpLHRoaXMucmVuZGVyZWROb2Rlcys9MTtmb3IoO3RoaXMucmVuZGVyZWROb2Rlcz5kOyl0aGlzLnJvb3ROb2RlLnJlbW92ZUNoaWxkKHRoaXMucm9vdE5vZGUubGFzdENoaWxkKSx0aGlzLnJlbmRlcmVkTm9kZXMt'@; put 'PTF9cmVuZGVyKCl7dGhpcy5hZGp1c3QoKTtjb25zdHtjb2x1bW5zVG9SZW5kZXI6bCxyb3dIZWFkZXJzQ291bnQ6YX09dGhpcy50YWJsZTshWmZlJiZsPjFlMyYmKFpmZT0hMCxZbyhobGBQZXJmb3JtYW5jZSB0aXA6IEhhbmRzb250YWJsZSByZW5kZXJlZCBtb3JlIHRoYW4gMTAwMCB2aXNp'@; put 'YmxlIGNvbHVtbnMuXHgyMAogICAgICAgIENvbnNpZGVyIGxpbWl0aW5nIHRoZSBudW1iZXIgb2YgcmVuZGVyZWQgY29sdW1ucyBieSBzcGVjaWZ5aW5nIHRoZSB0YWJsZSB3aWR0aCBhbmQvb3JceDIwCiAgICAgICAgdHVybmluZyBvZmYgdGhlICJyZW5kZXJBbGxDb2x1bW5zIiBvcHRpb24u'@; put 'YCkpO2ZvcihsZXQgaD0wO2g8YTtoKyspe2NvbnN0IGY9dGhpcy50YWJsZS5yZW5kZXJlZENvbHVtblRvU291cmNlKGgpLHY9dGhpcy50YWJsZS5jb2x1bW5VdGlscy5nZXRIZWFkZXJXaWR0aChmKTt0aGlzLnJvb3ROb2RlLmNoaWxkTm9kZXNbaF0uc3R5bGUud2lkdGg9YCR7dn1weGB9Zm9y'@; put 'KGxldCBoPTA7aDxsO2grKyl7Y29uc3QgZj10aGlzLnRhYmxlLnJlbmRlcmVkQ29sdW1uVG9Tb3VyY2UoaCksdj10aGlzLnRhYmxlLmNvbHVtblV0aWxzLmdldFdpZHRoKGYpO3RoaXMucm9vdE5vZGUuY2hpbGROb2Rlc1toK2FdLnN0eWxlLndpZHRoPWAke3Z9cHhgfWNvbnN0IGQ9dGhpcy5y'@; put 'b290Tm9kZS5maXJzdENoaWxkO2QmJkVpKGQsInJvd0hlYWRlciIpfX1sZXQgV2ZlPSExO2NsYXNzIHZRZSBleHRlbmRzIEhFe2NvbnN0cnVjdG9yKGwpe3N1cGVyKCJUUiIsbCksZnVuY3Rpb24gcFFlKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBnUWUoYyl7dmFyIGw9ZnVuY3Rpb24gbVFl'@; put 'KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigi'@; put 'QEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGws'@; put 'e3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY30odGhpcywib3JkZXJWaWV3Iix2b2lkIDApLHRoaXMub3JkZXJWaWV3PW5ldyBCZmUobCxhPT50aGlzLm5vZGVzUG9vbC5vYnRhaW4oYSkpfWdldFJlbmRlcmVkTm9kZShsKXtyZXR1'@; put 'cm4gdGhpcy5vcmRlclZpZXcuZ2V0Tm9kZShsKX1oYXNTdGFsZUNvbnRlbnQobCl7cmV0dXJuIHRoaXMub3JkZXJWaWV3Lmhhc1N0YWxlQ29udGVudChsKX1yZW5kZXIoKXtjb25zdHtyb3dzVG9SZW5kZXI6bH09dGhpcy50YWJsZTshV2ZlJiZsPjFlMyYmKFdmZT0hMCxZbyhobGBQZXJmb3Jt'@; put 'YW5jZSB0aXA6IEhhbmRzb250YWJsZSByZW5kZXJlZCBtb3JlIHRoYW4gMTAwMCB2aXNpYmxlIHJvd3MuXHgyMAogICAgICAgIENvbnNpZGVyIGxpbWl0aW5nIHRoZSBudW1iZXIgb2YgcmVuZGVyZWQgcm93cyBieSBzcGVjaWZ5aW5nIHRoZSB0YWJsZSBoZWlnaHQgYW5kL29yXHgyMAogICAg'@; put 'ICAgIHR1cm5pbmcgb2ZmIHRoZSAicmVuZGVyQWxsUm93cyIgb3B0aW9uLmApKSx0aGlzLnRhYmxlLmlzQXJpYUVuYWJsZWQoKSYmbXModGhpcy5yb290Tm9kZSxbWyJyb2xlIiwicm93Z3JvdXAiXV0pLHRoaXMub3JkZXJWaWV3LnNldFNpemUobCkuc2V0T2Zmc2V0KHRoaXMudGFibGUucmVu'@; put 'ZGVyZWRSb3dUb1NvdXJjZSgwKSkuc3RhcnQoKTtmb3IobGV0IGg9MDtoPGw7aCsrKXt0aGlzLm9yZGVyVmlldy5yZW5kZXIoKTtjb25zdCBmPXRoaXMub3JkZXJWaWV3LmdldEN1cnJlbnROb2RlKCksdj10aGlzLnRhYmxlLnJlbmRlcmVkUm93VG9Tb3VyY2UoaCk7dmFyIGEsZDt0aGlzLnRh'@; put 'YmxlLmlzQXJpYUVuYWJsZWQoKSYmbXMoZixbWyJyb2xlIiwicm93Il0sVjJlKHYrKG51bGwhPT0oYT1udWxsPT09KGQ9dGhpcy50YWJsZS5yb3dVdGlscyl8fHZvaWQgMD09PWR8fG51bGw9PT0oZD1kLmRhdGFBY2Nlc3NPYmplY3QpfHx2b2lkIDA9PT1kP3ZvaWQgMDpkLmNvbHVtbkhlYWRl'@; put 'cnMubGVuZ3RoKSYmdm9pZCAwIT09YT9hOjApKzEpXSksKHYrMSklMj09MD9ncyhmLCJodF9fcm93X2V2ZW4iKXx8KGhzKGYsImh0X19yb3dfb2RkIiksRWkoZiwiaHRfX3Jvd19ldmVuIikpOmdzKGYsImh0X19yb3dfb2RkIil8fChocyhmLCJodF9fcm93X2V2ZW4iKSxFaShmLCJodF9fcm93'@; put 'X29kZCIpKX10aGlzLm9yZGVyVmlldy5lbmQoKX19ZnVuY3Rpb24gWWZlKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiB5UWUoYyl7dmFyIGw9ZnVuY3Rpb24gYlFlKGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYo'@; put 'dm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmlu'@; put 'ZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31jbGFzcyBfUWUg'@; put 'ZXh0ZW5kcyBIRXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCJURCIpLFlmZSh0aGlzLCJvcmRlclZpZXdzIixuZXcgV2Vha01hcCksWWZlKHRoaXMsInNvdXJjZVJvd0luZGV4IiwwKX1vYnRhaW5PcmRlclZpZXcobCl7bGV0IGE7cmV0dXJuIHRoaXMub3JkZXJWaWV3cy5oYXMobCk/YT10aGlzLm9y'@; put 'ZGVyVmlld3MuZ2V0KGwpOihhPW5ldyBqZmUobCxkPT50aGlzLm5vZGVzUG9vbC5vYnRhaW4odGhpcy5zb3VyY2VSb3dJbmRleCxkKSx0aGlzLm5vZGVUeXBlKSx0aGlzLm9yZGVyVmlld3Muc2V0KGwsYSkpLGF9cmVuZGVyKCl7Y29uc3R7cm93c1RvUmVuZGVyOmwsY29sdW1uc1RvUmVuZGVy'@; put 'OmEscm93czpkLHJvd0hlYWRlcnM6aH09dGhpcy50YWJsZTtmb3IobGV0IE09MDtNPGw7TSsrKXtjb25zdCBJPXRoaXMudGFibGUucmVuZGVyZWRSb3dUb1NvdXJjZShNKSxHPWQuZ2V0UmVuZGVyZWROb2RlKE0pO3RoaXMuc291cmNlUm93SW5kZXg9STtjb25zdCByZT10aGlzLm9idGFpbk9y'@; put 'ZGVyVmlldyhHKSx1ZT1oLm9idGFpbk9yZGVyVmlldyhHKTtyZS5wcmVwZW5kVmlldyh1ZSkuc2V0U2l6ZShhKS5zZXRPZmZzZXQoMCkuc3RhcnQoKTtmb3IobGV0IHllPTA7eWU8YTt5ZSsrKXtyZS5yZW5kZXIoKTtjb25zdCBFZT10aGlzLnRhYmxlLnJlbmRlcmVkQ29sdW1uVG9Tb3VyY2Uo'@; put 'eWUpLEJlPXJlLmdldEN1cnJlbnROb2RlKCk7dmFyIGYsdjtncyhCZSwiaGlkZSIpfHwoQmUuY2xhc3NOYW1lPSIiKSxCZS5yZW1vdmVBdHRyaWJ1dGUoInN0eWxlIiksQmUucmVtb3ZlQXR0cmlidXRlKCJkaXIiKSxCNyhCZSxbbmV3IFJlZ0V4cCgiYXJpYS0oLiopIiksbmV3IFJlZ0V4cCgi'@; put 'cm9sZSIpXSksdGhpcy50YWJsZS5jZWxsUmVuZGVyZXIoSSxFZSxCZSksdGhpcy50YWJsZS5pc0FyaWFFbmFibGVkKCkmJm1zKEJlLFsuLi5CZS5oYXNBdHRyaWJ1dGUoInJvbGUiKT9bXTpbWyJyb2xlIiwiZ3JpZGNlbGwiXV0sa20oLTEpLGIkKEVlKyhudWxsIT09KGY9bnVsbD09PSh2PXRo'@; put 'aXMudGFibGUucm93VXRpbHMpfHx2b2lkIDA9PT12fHxudWxsPT09KHY9di5kYXRhQWNjZXNzT2JqZWN0KXx8dm9pZCAwPT09dj92b2lkIDA6di5yb3dIZWFkZXJzLmxlbmd0aCkmJnZvaWQgMCE9PWY/ZjowKSsxKV0pfXJlLmVuZCgpfX19ZnVuY3Rpb24gS3UoYyxsLGEpe3JldHVybihsPWZ1'@; put 'bmN0aW9uIHdRZShjKXt2YXIgbD1mdW5jdGlvbiBDUWUoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2Yg'@; put 'ZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwp'@; put 'KWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWNsYXNzIFNRZXtjb25zdHJ1Y3RvcihsKXtsZXR7Y2VsbFJlbmRlcmVyOmEsc3R5bGVzSGFuZGxlcjpkfT1hcmd1bWVudHMu'@; put 'bGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307S3UodGhpcywicm9vdE5vZGUiLHZvaWQgMCksS3UodGhpcywicm9vdERvY3VtZW50Iix2b2lkIDApLEt1KHRoaXMsInJvd0hlYWRlcnMiLG51bGwpLEt1KHRoaXMsImNvbHVtbkhlYWRlcnMiLG51bGwpLEt1'@; put 'KHRoaXMsImNvbEdyb3VwIixudWxsKSxLdSh0aGlzLCJyb3dzIixudWxsKSxLdSh0aGlzLCJjZWxscyIsbnVsbCksS3UodGhpcywicm93RmlsdGVyIixudWxsKSxLdSh0aGlzLCJjb2x1bW5GaWx0ZXIiLG51bGwpLEt1KHRoaXMsInJvd1V0aWxzIixudWxsKSxLdSh0aGlzLCJjb2x1bW5VdGls'@; put 'cyIsbnVsbCksS3UodGhpcywicm93c1RvUmVuZGVyIiwwKSxLdSh0aGlzLCJjb2x1bW5zVG9SZW5kZXIiLDApLEt1KHRoaXMsInJvd0hlYWRlckZ1bmN0aW9ucyIsW10pLEt1KHRoaXMsInJvd0hlYWRlcnNDb3VudCIsMCksS3UodGhpcywiY29sdW1uSGVhZGVyRnVuY3Rpb25zIixbXSksS3Uo'@; put 'dGhpcywiY29sdW1uSGVhZGVyc0NvdW50IiwwKSxLdSh0aGlzLCJjZWxsUmVuZGVyZXIiLHZvaWQgMCksS3UodGhpcywiYWN0aXZlT3ZlcmxheU5hbWUiLHZvaWQgMCksS3UodGhpcywic3R5bGVzSGFuZGxlciIsdm9pZCAwKSx0aGlzLnJvb3ROb2RlPWwsdGhpcy5yb290RG9jdW1lbnQ9dGhp'@; put 'cy5yb290Tm9kZS5vd25lckRvY3VtZW50LHRoaXMuY2VsbFJlbmRlcmVyPWEsdGhpcy5zdHlsZXNIYW5kbGVyPWR9c2V0QWN0aXZlT3ZlcmxheU5hbWUobCl7dGhpcy5hY3RpdmVPdmVybGF5TmFtZT1sfXNldEF4aXNVdGlscyhsLGEpe3RoaXMucm93VXRpbHM9bCx0aGlzLmNvbHVtblV0aWxz'@; put 'PWF9c2V0Vmlld3BvcnRTaXplKGwsYSl7dGhpcy5yb3dzVG9SZW5kZXI9bCx0aGlzLmNvbHVtbnNUb1JlbmRlcj1hfXNldEZpbHRlcnMobCxhKXt0aGlzLnJvd0ZpbHRlcj1sLHRoaXMuY29sdW1uRmlsdGVyPWF9c2V0SGVhZGVyQ29udGVudFJlbmRlcmVycyhsLGEpe3RoaXMucm93SGVhZGVy'@; put 'RnVuY3Rpb25zPWwsdGhpcy5yb3dIZWFkZXJzQ291bnQ9bC5sZW5ndGgsdGhpcy5jb2x1bW5IZWFkZXJGdW5jdGlvbnM9YSx0aGlzLmNvbHVtbkhlYWRlcnNDb3VudD1hLmxlbmd0aH1zZXRSZW5kZXJlcnMoKXtsZXR7cm93SGVhZGVyczpsLGNvbHVtbkhlYWRlcnM6YSxjb2xHcm91cDpkLHJv'@; put 'd3M6aCxjZWxsczpmfT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e307bC5zZXRUYWJsZSh0aGlzKSxhLnNldFRhYmxlKHRoaXMpLGQuc2V0VGFibGUodGhpcyksaC5zZXRUYWJsZSh0aGlzKSxmLnNldFRhYmxlKHRoaXMpLHRoaXMucm93'@; put 'SGVhZGVycz1sLHRoaXMuY29sdW1uSGVhZGVycz1hLHRoaXMuY29sR3JvdXA9ZCx0aGlzLnJvd3M9aCx0aGlzLmNlbGxzPWZ9cmVuZGVyZWRSb3dUb1NvdXJjZShsKXtyZXR1cm4gdGhpcy5yb3dGaWx0ZXIucmVuZGVyZWRUb1NvdXJjZShsKX1yZW5kZXJlZENvbHVtblRvU291cmNlKGwpe3Jl'@; put 'dHVybiB0aGlzLmNvbHVtbkZpbHRlci5yZW5kZXJlZFRvU291cmNlKGwpfWlzQXJpYUVuYWJsZWQoKXtyZXR1cm4gdGhpcy5yb3dVdGlscy53dFNldHRpbmdzLmdldFNldHRpbmcoImFyaWFUYWdzIil9cmVuZGVyKCl7dGhpcy5jb2xHcm91cC5hZGp1c3QoKSx0aGlzLmNvbHVtbkhlYWRlcnMu'@; put 'YWRqdXN0KCksdGhpcy5yb3dzLmFkanVzdCgpLHRoaXMucm93SGVhZGVycy5hZGp1c3QoKSx0aGlzLmNvbHVtbkhlYWRlcnMucmVuZGVyKCksdGhpcy5yb3dzLnJlbmRlcigpLHRoaXMucm93SGVhZGVycy5yZW5kZXIoKSx0aGlzLmNlbGxzLnJlbmRlcigpLHRoaXMuY29sdW1uVXRpbHMuY2Fs'@; put 'Y3VsYXRlV2lkdGhzKCksdGhpcy5jb2xHcm91cC5yZW5kZXIoKTtjb25zdHtyb3dzVG9SZW5kZXI6bCxyb3dzOmF9PXRoaXM7Zm9yKGxldCBkPTA7ZDxsO2QrKyl7Y29uc3QgaD1hLmdldFJlbmRlcmVkTm9kZShkKSxmPXRoaXMucm93VXRpbHM7aWYoaC5maXJzdENoaWxkKXtjb25zdCB2PXRo'@; put 'aXMucmVuZGVyZWRSb3dUb1NvdXJjZShkKSxNPWYuZ2V0SGVpZ2h0QnlPdmVybGF5TmFtZSh2LHRoaXMuYWN0aXZlT3ZlcmxheU5hbWUpLEc9dGhpcy5zdHlsZXNIYW5kbGVyLmFyZUNlbGxzQm9yZGVyQm94KCk/MDoxO2guZmlyc3RDaGlsZC5zdHlsZS5oZWlnaHQ9TT9NLUcrInB4IjoiIn19'@; put 'fX1jbGFzcyBNUWV7Y29uc3RydWN0b3IoKXtsZXR7VEFCTEU6bCxUSEVBRDphLENPTEdST1VQOmQsVEJPRFk6aCxyb3dVdGlsczpmLGNvbHVtblV0aWxzOnYsY2VsbFJlbmRlcmVyOk0sc3R5bGVzSGFuZGxlcjpJfT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9h'@; put 'cmd1bWVudHNbMF06e307dGhpcy5yZW5kZXJlcj1uZXcgU1FlKGwse2NlbGxSZW5kZXJlcjpNLHN0eWxlc0hhbmRsZXI6SX0pLHRoaXMucmVuZGVyZXIuc2V0UmVuZGVyZXJzKHtyb3dIZWFkZXJzOm5ldyBkUWUsY29sdW1uSGVhZGVyczpuZXcgaFFlKGEpLGNvbEdyb3VwOm5ldyBmUWUoZCks'@; put 'cm93czpuZXcgdlFlKGgpLGNlbGxzOm5ldyBfUWV9KSx0aGlzLnJlbmRlcmVyLnNldEF4aXNVdGlscyhmLHYpfXNldEFjdGl2ZU92ZXJsYXlOYW1lKGwpe3JldHVybiB0aGlzLnJlbmRlcmVyLnNldEFjdGl2ZU92ZXJsYXlOYW1lKGwpLHRoaXN9c2V0RmlsdGVycyhsLGEpe3JldHVybiB0aGlz'@; put 'LnJlbmRlcmVyLnNldEZpbHRlcnMobCxhKSx0aGlzfXNldFZpZXdwb3J0U2l6ZShsLGEpe3JldHVybiB0aGlzLnJlbmRlcmVyLnNldFZpZXdwb3J0U2l6ZShsLGEpLHRoaXN9c2V0SGVhZGVyQ29udGVudFJlbmRlcmVycyhsLGEpe3JldHVybiB0aGlzLnJlbmRlcmVyLnNldEhlYWRlckNvbnRl'@; put 'bnRSZW5kZXJlcnMobCxhKSx0aGlzfWFkanVzdCgpe3RoaXMucmVuZGVyZXIuYWRqdXN0KCl9cmVuZGVyKCl7dGhpcy5yZW5kZXJlci5yZW5kZXIoKX19ZnVuY3Rpb24gZEsoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIHhRZShjKXt2YXIgbD1mdW5jdGlvbiBFUWUoYyxsKXtpZigib2JqZWN0'@; put 'IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11'@; put 'c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJh'@; put 'YmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWNsYXNzIFRRZXtjb25zdHJ1Y3RvcihsLGEpe2RLKHRoaXMsImRhdGFBY2Nlc3NPYmplY3QiLHZvaWQgMCksZEsodGhpcywid3RTZXR0aW5ncyIsdm9pZCAwKSxkSyh0aGlzLCJoZWFkZXJXaWR0aHMiLG5ldyBN'@; put 'YXApLHRoaXMuZGF0YUFjY2Vzc09iamVjdD1sLHRoaXMud3RTZXR0aW5ncz1hfWdldFdpZHRoKGwpe3JldHVybiB0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiY29sdW1uV2lkdGgiLGwpfHx0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZGVmYXVsdENvbHVtbldpZHRoIil9Z2V0SGVh'@; put 'ZGVySGVpZ2h0KGwpe2xldCBhPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJzdHlsZXNIYW5kbGVyIikuZ2V0RGVmYXVsdFJvd0hlaWdodCgpO2NvbnN0IGQ9dGhpcy5kYXRhQWNjZXNzT2JqZWN0Lnd0Vmlld3BvcnQub3ZlcnNpemVkQ29sdW1uSGVhZGVyc1tsXTtyZXR1cm4gdm9pZCAw'@; put 'IT09ZCYmKGE9YT9NYXRoLm1heChhLGQpOmQpLGF9Z2V0SGVhZGVyV2lkdGgobCl7cmV0dXJuIHRoaXMuaGVhZGVyV2lkdGhzLmdldCh0aGlzLmRhdGFBY2Nlc3NPYmplY3Qud3RUYWJsZS5jb2x1bW5GaWx0ZXIuc291cmNlVG9SZW5kZXJlZChsKSl9Y2FsY3VsYXRlV2lkdGhzKCl7Y29uc3R7'@; put 'd3RTZXR0aW5nczpsfT10aGlzO2xldCBhPWwuZ2V0U2V0dGluZygicm93SGVhZGVyV2lkdGgiKTtpZihhPWwuZ2V0U2V0dGluZygib25Nb2RpZnlSb3dIZWFkZXJXaWR0aCIsYSksbnVsbCE9YSl7Y29uc3QgZD1sLmdldFNldHRpbmcoInJvd0hlYWRlcnMiKS5sZW5ndGgsaD1sLmdldFNldHRp'@; put 'bmcoImRlZmF1bHRDb2x1bW5XaWR0aCIpO2ZvcihsZXQgZj0wO2Y8ZDtmKyspe2xldCB2PUFycmF5LmlzQXJyYXkoYSk/YVtmXTphO3Y9dj8/aCx0aGlzLmhlYWRlcldpZHRocy5zZXQoZix2KX19fX1mdW5jdGlvbiBHZmUoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIEFRZShjKXt2YXIgbD1m'@; put 'dW5jdGlvbiBrUWUoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcg'@; put 'VHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVBy'@; put 'b3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWNsYXNzIERRZXtjb25zdHJ1Y3RvcihsLGEpe0dmZSh0aGlzLCJkYXRhQWNjZXNzT2JqZWN0Iix2b2lkIDApLEdmZSh0aGlzLCJ3dFNldHRpbmdzIix2b2lkIDAp'@; put 'LHRoaXMuZGF0YUFjY2Vzc09iamVjdD1sLHRoaXMud3RTZXR0aW5ncz1hfWdldEhlaWdodChsKXtsZXQgYT10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicm93SGVpZ2h0IixsKTtjb25zdCBkPXRoaXMuZGF0YUFjY2Vzc09iamVjdC53dFZpZXdwb3J0Lm92ZXJzaXplZFJvd3NbbF07cmV0'@; put 'dXJuIHZvaWQgMCE9PWQmJihhPXZvaWQgMD09PWE/ZDpNYXRoLm1heChhLGQpKSxhfWdldEhlaWdodEJ5T3ZlcmxheU5hbWUobCxhKXtsZXQgZD10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicm93SGVpZ2h0QnlPdmVybGF5TmFtZSIsbCxhKTtjb25zdCBoPXRoaXMuZGF0YUFjY2Vzc09i'@; put 'amVjdC53dFZpZXdwb3J0Lm92ZXJzaXplZFJvd3NbbF07cmV0dXJuIHZvaWQgMCE9PWgmJihkPXZvaWQgMD09PWQ/aDpNYXRoLm1heChkLGgpKSxkfX1jb25zdCAkNz0idG9wIixScD0iYm90dG9tIixLNz0iaW5saW5lX3N0YXJ0IixYNz0idG9wX2lubGluZV9zdGFydF9jb3JuZXIiLE5tPSJi'@; put 'b3R0b21faW5saW5lX3N0YXJ0X2Nvcm5lciIsJGZlPVskNyxScCxLNyxYNyxObV0sSVFlPW5ldyBNYXAoW1skNyxgaHRfY2xvbmVfJHskN31gXSxbUnAsYGh0X2Nsb25lXyR7UnB9YF0sW0s3LGBodF9jbG9uZV8ke0s3fSBodF9jbG9uZV9sZWZ0YF0sW1g3LGBodF9jbG9uZV8ke1g3fSBodF9j'@; put 'bG9uZV90b3BfbGVmdF9jb3JuZXJgXSxbTm0sYGh0X2Nsb25lXyR7Tm19IGh0X2Nsb25lX2JvdHRvbV9sZWZ0X2Nvcm5lcmBdXSk7ZnVuY3Rpb24gTHAoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIFJRZShjKXt2YXIgbD1mdW5jdGlvbiBMUWUoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8'@; put 'fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEg'@; put 'cHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZp'@; put 'Z3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWNvbnN0IGdfPWNsYXNzIE9RZXtjb25zdHJ1Y3RvcihsLGEsZCxoLGYpe0xwKHRoaXMsInd0U2V0dGluZ3MiLG51bGwpLExwKHRoaXMsImRvbUJpbmRpbmdzIix2b2lkIDApLExwKHRoaXMsIlRCT0RZIixudWxsKSxMcCh0aGlzLCJU'@; put 'SEVBRCIsbnVsbCksTHAodGhpcywiQ09MR1JPVVAiLG51bGwpLExwKHRoaXMsImhhc1RhYmxlSGVpZ2h0IiwhMCksTHAodGhpcywiaGFzVGFibGVXaWR0aCIsITApLExwKHRoaXMsImlzVGFibGVWaXNpYmxlIiwhMSksTHAodGhpcywidGFibGVPZmZzZXQiLDApLExwKHRoaXMsImhvbGRlck9m'@; put 'ZnNldCIsMCksdGhpcy5kb21CaW5kaW5ncz1kLHRoaXMuaXNNYXN0ZXI9Im1hc3RlciI9PT1mLHRoaXMubmFtZT1mLHRoaXMuZGF0YUFjY2Vzc09iamVjdD1sLHRoaXMuZmFjYWRlR2V0dGVyPWEsdGhpcy53dFNldHRpbmdzPWgsdGhpcy5pbnN0YW5jZT10aGlzLmRhdGFBY2Nlc3NPYmplY3Qu'@; put 'd290LHRoaXMud290PXRoaXMuZGF0YUFjY2Vzc09iamVjdC53b3QsdGhpcy5UQUJMRT1kLnJvb3RUYWJsZSx4JCh0aGlzLlRBQkxFKSx0aGlzLnNwcmVhZGVyPXRoaXMuY3JlYXRlU3ByZWFkZXIodGhpcy5UQUJMRSksdGhpcy5oaWRlcj10aGlzLmNyZWF0ZUhpZGVyKHRoaXMuc3ByZWFkZXIp'@; put 'LHRoaXMuaG9sZGVyPXRoaXMuY3JlYXRlSG9sZGVyKHRoaXMuaGlkZXIpLHRoaXMud3RSb290RWxlbWVudD10aGlzLmhvbGRlci5wYXJlbnROb2RlLHRoaXMuaXNNYXN0ZXImJnRoaXMuYWxpZ25PdmVybGF5c1dpdGhUcmltbWluZ0NvbnRhaW5lcigpLHRoaXMuZml4VGFibGVEb21UcmVlKCks'@; put 'dGhpcy5yb3dGaWx0ZXI9bnVsbCx0aGlzLmNvbHVtbkZpbHRlcj1udWxsLHRoaXMuY29ycmVjdEhlYWRlcldpZHRoPSExO2NvbnN0IHY9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmdQdXJlKCJyb3dIZWFkZXJXaWR0aCIpO3RoaXMud3RTZXR0aW5ncy51cGRhdGUoInJvd0hlYWRlcldpZHRo'@; put 'IiwoKT0+dGhpcy5fbW9kaWZ5Um93SGVhZGVyV2lkdGgodikpLHRoaXMucm93VXRpbHM9bmV3IERRZSh0aGlzLmRhdGFBY2Nlc3NPYmplY3QsdGhpcy53dFNldHRpbmdzKSx0aGlzLmNvbHVtblV0aWxzPW5ldyBUUWUodGhpcy5kYXRhQWNjZXNzT2JqZWN0LHRoaXMud3RTZXR0aW5ncyksdGhp'@; put 'cy50YWJsZVJlbmRlcmVyPW5ldyBNUWUoe1RBQkxFOnRoaXMuVEFCTEUsVEhFQUQ6dGhpcy5USEVBRCxDT0xHUk9VUDp0aGlzLkNPTEdST1VQLFRCT0RZOnRoaXMuVEJPRFkscm93VXRpbHM6dGhpcy5yb3dVdGlscyxjb2x1bW5VdGlsczp0aGlzLmNvbHVtblV0aWxzLGNlbGxSZW5kZXJlcjp0'@; put 'aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZ1B1cmUoImNlbGxSZW5kZXJlciIpLHN0eWxlc0hhbmRsZXI6dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInN0eWxlc0hhbmRsZXIiKX0pfWlzKGwpe3JldHVybiB0aGlzLm5hbWU9PT1sfWZpeFRhYmxlRG9tVHJlZSgpe2NvbnN0IGw9dGhpcy5k'@; put 'b21CaW5kaW5ncy5yb290RG9jdW1lbnQ7dGhpcy5UQk9EWT10aGlzLlRBQkxFLnF1ZXJ5U2VsZWN0b3IoInRib2R5IiksdGhpcy5UQk9EWXx8KHRoaXMuVEJPRFk9bC5jcmVhdGVFbGVtZW50KCJ0Ym9keSIpLHRoaXMuVEFCTEUuYXBwZW5kQ2hpbGQodGhpcy5UQk9EWSkpLHRoaXMuVEhFQUQ9'@; put 'dGhpcy5UQUJMRS5xdWVyeVNlbGVjdG9yKCJ0aGVhZCIpLHRoaXMuVEhFQUR8fCh0aGlzLlRIRUFEPWwuY3JlYXRlRWxlbWVudCgidGhlYWQiKSx0aGlzLlRBQkxFLmluc2VydEJlZm9yZSh0aGlzLlRIRUFELHRoaXMuVEJPRFkpKSx0aGlzLkNPTEdST1VQPXRoaXMuVEFCTEUucXVlcnlTZWxl'@; put 'Y3RvcigiY29sZ3JvdXAiKSx0aGlzLkNPTEdST1VQfHwodGhpcy5DT0xHUk9VUD1sLmNyZWF0ZUVsZW1lbnQoImNvbGdyb3VwIiksdGhpcy5UQUJMRS5pbnNlcnRCZWZvcmUodGhpcy5DT0xHUk9VUCx0aGlzLlRIRUFEKSl9Y3JlYXRlU3ByZWFkZXIobCl7Y29uc3QgYT1sLnBhcmVudE5vZGU7'@; put 'bGV0IGQ7cmV0dXJuKCFhfHxhLm5vZGVUeXBlIT09Tm9kZS5FTEVNRU5UX05PREV8fCFncyhhLCJ3dEhvbGRlciIpKSYmKGQ9dGhpcy5kb21CaW5kaW5ncy5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksZC5jbGFzc05hbWU9Ind0U3ByZWFkZXIiLGEmJmEuaW5zZXJ0QmVmb3Jl'@; put 'KGQsbCksZC5hcHBlbmRDaGlsZChsKSksZC5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiLHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJhcmlhVGFncyIpJiZtcyhkLFtbInJvbGUiLCJwcmVzZW50YXRpb24iXV0pLGR9Y3JlYXRlSGlkZXIobCl7Y29uc3QgYT1sLnBhcmVudE5vZGU7bGV0'@; put 'IGQ7cmV0dXJuKCFhfHxhLm5vZGVUeXBlIT09Tm9kZS5FTEVNRU5UX05PREV8fCFncyhhLCJ3dEhvbGRlciIpKSYmKGQ9dGhpcy5kb21CaW5kaW5ncy5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksZC5jbGFzc05hbWU9Ind0SGlkZXIiLGEmJmEuaW5zZXJ0QmVmb3JlKGQsbCks'@; put 'ZC5hcHBlbmRDaGlsZChsKSksdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImFyaWFUYWdzIikmJm1zKGQsW1sicm9sZSIsInByZXNlbnRhdGlvbiJdXSksZH1jcmVhdGVIb2xkZXIobCl7Y29uc3QgYT1sLnBhcmVudE5vZGU7bGV0IGQ7cmV0dXJuKCFhfHxhLm5vZGVUeXBlIT09Tm9kZS5F'@; put 'TEVNRU5UX05PREV8fCFncyhhLCJ3dEhvbGRlciIpKSYmKGQ9dGhpcy5kb21CaW5kaW5ncy5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksZC5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiLGQuY2xhc3NOYW1lPSJ3dEhvbGRlciIsdGhpcy5pc01hc3RlciYmbXMoZCxba20oLTEp'@; put 'XSksYSYmYS5pbnNlcnRCZWZvcmUoZCxsKSx0aGlzLmlzTWFzdGVyJiYoZC5wYXJlbnROb2RlLmNsYXNzTmFtZSs9Imh0X21hc3RlciBoYW5kc29udGFibGUiLGQucGFyZW50Tm9kZS5zZXRBdHRyaWJ1dGUoImRpciIsdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmdQdXJlKCJydGxNb2RlIik/'@; put 'InJ0bCI6Imx0ciIpLHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJhcmlhVGFncyIpJiZtcyhkLnBhcmVudE5vZGUsW1sicm9sZSIsInByZXNlbnRhdGlvbiJdXSkpLGQuYXBwZW5kQ2hpbGQobCkpLHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJhcmlhVGFncyIpJiZtcyhkLFtbInJv'@; put 'bGUiLCJwcmVzZW50YXRpb24iXV0pLGR9ZHJhdygpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07Y29uc3R7d3RTZXR0aW5nczphfT10aGlzLHt3dE92ZXJsYXlzOmQsd3RWaWV3cG9ydDpofT10aGlzLmRhdGFBY2Nlc3NPYmpl'@; put 'Y3QsZj1hLmdldFNldHRpbmcoInRvdGFsUm93cyIpLHY9YS5nZXRTZXR0aW5nKCJ0b3RhbENvbHVtbnMiKSxNPWEuZ2V0U2V0dGluZygicm93SGVhZGVycyIpLEk9TS5sZW5ndGgsRz1hLmdldFNldHRpbmcoImNvbHVtbkhlYWRlcnMiKSxyZT1HLmxlbmd0aDtsZXQgdWU9bDtpZih0aGlzLmlz'@; put 'TWFzdGVyJiYoZC5iZWZvcmVEcmF3KCksdGhpcy5ob2xkZXJPZmZzZXQ9ajAodGhpcy5ob2xkZXIpLHVlPWguY3JlYXRlQ2FsY3VsYXRvcnModWUpLEkmJiFhLmdldFNldHRpbmcoImZpeGVkQ29sdW1uc1N0YXJ0IikpKXtjb25zdCBFZT1kLmlubGluZVN0YXJ0T3ZlcmxheS5nZXRTY3JvbGxQ'@; put 'b3NpdGlvbigpLEJlPXRoaXMuY29ycmVjdEhlYWRlcldpZHRoO3RoaXMuY29ycmVjdEhlYWRlcldpZHRoPTAhPT1FZSxCZSE9PXRoaXMuY29ycmVjdEhlYWRlcldpZHRoJiYodWU9ITEpfWlmKHVlKXRoaXMuaXNNYXN0ZXImJmQucmVmcmVzaCghMCk7ZWxzZXt0aGlzLnRhYmxlT2Zmc2V0PXRo'@; put 'aXMuaXNNYXN0ZXI/ajAodGhpcy5UQUJMRSk6dGhpcy5kYXRhQWNjZXNzT2JqZWN0LnBhcmVudFRhYmxlT2Zmc2V0O2NvbnN0IEVlPU1hdGgubWF4KHRoaXMuZ2V0Rmlyc3RSZW5kZXJlZFJvdygpLDApLEJlPU1hdGgubWF4KHRoaXMuZ2V0Rmlyc3RSZW5kZXJlZENvbHVtbigpLDApO3RoaXMu'@; put 'cm93RmlsdGVyPW5ldyBqSmUoRWUsZixyZSksdGhpcy5jb2x1bW5GaWx0ZXI9bmV3IEhKZShCZSx2LEkpO2xldCBHZT0hMDtpZih0aGlzLmlzTWFzdGVyKXt0aGlzLmFsaWduT3ZlcmxheXNXaXRoVHJpbW1pbmdDb250YWluZXIoKTtjb25zdCBzdD17fTt0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0'@; put 'dGluZygiYmVmb3JlRHJhdyIsITAsc3QpLEdlPSEwIT09c3Quc2tpcFJlbmRlcn1HZSYmKHRoaXMudGFibGVSZW5kZXJlci5zZXRIZWFkZXJDb250ZW50UmVuZGVyZXJzKE0sRyksKHRoaXMuaXMoUnApfHx0aGlzLmlzKE5tKSkmJnRoaXMudGFibGVSZW5kZXJlci5zZXRIZWFkZXJDb250ZW50'@; put 'UmVuZGVyZXJzKE0sW10pLHRoaXMucmVzZXRPdmVyc2l6ZWRSb3dzKCksdGhpcy50YWJsZVJlbmRlcmVyLnNldEFjdGl2ZU92ZXJsYXlOYW1lKHRoaXMubmFtZSkuc2V0Vmlld3BvcnRTaXplKHRoaXMuZ2V0UmVuZGVyZWRSb3dzQ291bnQoKSx0aGlzLmdldFJlbmRlcmVkQ29sdW1uc0NvdW50'@; put 'KCkpLnNldEZpbHRlcnModGhpcy5yb3dGaWx0ZXIsdGhpcy5jb2x1bW5GaWx0ZXIpLnJlbmRlcigpLHRoaXMuaXNNYXN0ZXImJnRoaXMubWFya092ZXJzaXplZENvbHVtbkhlYWRlcnMoKSx0aGlzLmFkanVzdENvbHVtbkhlYWRlckhlaWdodHMoKSwodGhpcy5pc01hc3Rlcnx8dGhpcy5pcyhS'@; put 'cCkpJiZ0aGlzLm1hcmtPdmVyc2l6ZWRSb3dzKCksdGhpcy5pc01hc3Rlcj8odGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImV4dGVybmFsUm93Q2FsY3VsYXRvciIpfHxoLmNyZWF0ZVZpc2libGVDYWxjdWxhdG9ycygpLGQucmVmcmVzaCghMSksZC5hcHBseVRvRE9NKCksdGhpcy53dFNl'@; put 'dHRpbmdzLmdldFNldHRpbmcoIm9uRHJhdyIsITApKTp0aGlzLmlzKFJwKSYmdGhpcy5kYXRhQWNjZXNzT2JqZWN0LmNsb25lU291cmNlLnd0T3ZlcmxheXMuYWRqdXN0RWxlbWVudHNTaXplKCkpfWxldCB5ZT0hMTtyZXR1cm4gdGhpcy5pc01hc3RlciYmKHllPWQudG9wT3ZlcmxheS5yZXNl'@; put 'dEZpeGVkUG9zaXRpb24oKSxkLmJvdHRvbU92ZXJsYXkuY2xvbmUmJih5ZT1kLmJvdHRvbU92ZXJsYXkucmVzZXRGaXhlZFBvc2l0aW9uKCl8fHllKSx5ZT1kLmlubGluZVN0YXJ0T3ZlcmxheS5yZXNldEZpeGVkUG9zaXRpb24oKXx8eWUsZC50b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXkm'@; put 'JmQudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LnJlc2V0Rml4ZWRQb3NpdGlvbigpLGQuYm90dG9tSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5JiZkLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5jbG9uZSYmZC5ib3R0b21JbmxpbmVTdGFydENvcm5lck92ZXJsYXkucmVzZXRG'@; put 'aXhlZFBvc2l0aW9uKCkpLHllPyhkLnJlZnJlc2hBbGwoKSxkLmFkanVzdEVsZW1lbnRzU2l6ZSgpKTp0aGlzLmRhdGFBY2Nlc3NPYmplY3Quc2VsZWN0aW9uTWFuYWdlci5zZXRBY3RpdmVPdmVybGF5KHRoaXMuZmFjYWRlR2V0dGVyKCkpLnJlbmRlcih1ZSksdGhpcy5pc01hc3RlciYmZC5h'@; put 'ZnRlckRyYXcoKSx0aGlzLmRhdGFBY2Nlc3NPYmplY3QuZHJhd249ITAsdGhpc31tYXJrSWZPdmVyc2l6ZWRDb2x1bW5IZWFkZXIobCl7Y29uc3QgYT10aGlzLmNvbHVtbkZpbHRlci5yZW5kZXJlZFRvU291cmNlKGwpO2xldCBkPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJjb2x1bW5I'@; put 'ZWFkZXJzIikubGVuZ3RoO2NvbnN0IGg9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInN0eWxlc0hhbmRsZXIiKS5nZXREZWZhdWx0Um93SGVpZ2h0KCk7bGV0IGYsdixNO2NvbnN0IEk9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImNvbHVtbkhlYWRlckhlaWdodCIpfHxbXTtmb3Io'@; put 'O2Q7KWQtPTEsZj10aGlzLmdldENvbHVtbkhlYWRlckhlaWdodChkKSx2PXRoaXMuZ2V0Q29sdW1uSGVhZGVyKGEsZCksdiYmKE09bF8odiksKCFmJiZoPE18fGY8TSkmJih0aGlzLmRhdGFBY2Nlc3NPYmplY3Qud3RWaWV3cG9ydC5vdmVyc2l6ZWRDb2x1bW5IZWFkZXJzW2RdPU0pLEFycmF5'@; put 'LmlzQXJyYXkoSSk/bnVsbCE9SVtkXSYmKHRoaXMuZGF0YUFjY2Vzc09iamVjdC53dFZpZXdwb3J0Lm92ZXJzaXplZENvbHVtbkhlYWRlcnNbZF09SVtkXSk6aXNOYU4oSSl8fCh0aGlzLmRhdGFBY2Nlc3NPYmplY3Qud3RWaWV3cG9ydC5vdmVyc2l6ZWRDb2x1bW5IZWFkZXJzW2RdPUkpLHRo'@; put 'aXMuZGF0YUFjY2Vzc09iamVjdC53dFZpZXdwb3J0Lm92ZXJzaXplZENvbHVtbkhlYWRlcnNbZF08KElbZF18fEkpJiYodGhpcy5kYXRhQWNjZXNzT2JqZWN0Lnd0Vmlld3BvcnQub3ZlcnNpemVkQ29sdW1uSGVhZGVyc1tkXT1JW2RdfHxJKSl9YWRqdXN0Q29sdW1uSGVhZGVySGVpZ2h0cygp'@; put 'e2NvbnN0e3d0U2V0dGluZ3M6bH09dGhpcyxhPXRoaXMuVEhFQUQuY2hpbGROb2RlcyxkPXRoaXMuZGF0YUFjY2Vzc09iamVjdC53dFZpZXdwb3J0Lm92ZXJzaXplZENvbHVtbkhlYWRlcnM7Zm9yKGxldCBmPTAsdj1sLmdldFNldHRpbmcoImNvbHVtbkhlYWRlcnMiKS5sZW5ndGg7Zjx2O2Yr'@; put 'KylpZihkW2ZdKXtpZighYVtmXXx8MD09PWFbZl0uY2hpbGROb2Rlcy5sZW5ndGgpcmV0dXJuO2FbZl0uY2hpbGROb2Rlc1swXS5zdHlsZS5oZWlnaHQ9YCR7ZFtmXX1weGB9fXJlc2V0T3ZlcnNpemVkUm93cygpe2NvbnN0e3d0U2V0dGluZ3M6bH09dGhpcyx7d3RWaWV3cG9ydDphfT10aGlz'@; put 'LmRhdGFBY2Nlc3NPYmplY3Q7aWYoKHRoaXMuaXNNYXN0ZXJ8fHRoaXMuaXMoUnApKSYmIWwuZ2V0U2V0dGluZygiZXh0ZXJuYWxSb3dDYWxjdWxhdG9yIikpe2NvbnN0IGQ9dGhpcy5nZXRSZW5kZXJlZFJvd3NDb3VudCgpO2ZvcihsZXQgaD0wO2g8ZDtoKyspe2NvbnN0IGY9dGhpcy5yb3dG'@; put 'aWx0ZXIucmVuZGVyZWRUb1NvdXJjZShoKTthLm92ZXJzaXplZFJvd3MmJmEub3ZlcnNpemVkUm93c1tmXSYmKGEub3ZlcnNpemVkUm93c1tmXT12b2lkIDApfX19Z2V0Q2VsbChsKXtsZXQgYT1sLnJvdyxkPWwuY29sO2NvbnN0IGg9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoIm9uTW9k'@; put 'aWZ5R2V0Q2VsbENvb3JkcyIsYSxkLCF0aGlzLmlzTWFzdGVyLCJyZW5kZXIiKTtpZihoJiZBcnJheS5pc0FycmF5KGgpJiYoW2EsZF09aCksdGhpcy5pc1Jvd0JlZm9yZVJlbmRlcmVkUm93cyhhKSlyZXR1cm4tMTtpZih0aGlzLmlzUm93QWZ0ZXJSZW5kZXJlZFJvd3MoYSkpcmV0dXJuLTI7'@; put 'aWYodGhpcy5pc0NvbHVtbkJlZm9yZVJlbmRlcmVkQ29sdW1ucyhkKSlyZXR1cm4tMztpZih0aGlzLmlzQ29sdW1uQWZ0ZXJSZW5kZXJlZENvbHVtbnMoZCkpcmV0dXJuLTQ7Y29uc3QgZj10aGlzLmdldFJvdyhhKTtpZighZiYmYT49MCl0aHJvdyBuZXcgRXJyb3IoIlRSIHdhcyBleHBlY3Rl'@; put 'ZCB0byBiZSByZW5kZXJlZCBidXQgaXMgbm90Iik7Y29uc3Qgdj1mLmNoaWxkTm9kZXNbdGhpcy5jb2x1bW5GaWx0ZXIuc291cmNlQ29sdW1uVG9WaXNpYmxlUm93SGVhZGVkQ29sdW1uKGQpXTtpZighdiYmZD49MCl0aHJvdyBuZXcgRXJyb3IoIlREIG9yIFRIIHdhcyBleHBlY3RlZCB0byBi'@; put 'ZSByZW5kZXJlZCBidXQgaXMgbm90Iik7cmV0dXJuIHZ9Z2V0Um93KGwpe2xldCBhPW51bGwsZD1udWxsO3ZhciBoLGY7cmV0dXJuIGw8MD8oYT1udWxsPT09KGg9dGhpcy5yb3dGaWx0ZXIpfHx2b2lkIDA9PT1oP3ZvaWQgMDpoLnNvdXJjZVJvd1RvVmlzaWJsZUNvbEhlYWRlZFJvdyhsKSxk'@; put 'PXRoaXMuVEhFQUQpOihhPW51bGw9PT0oZj10aGlzLnJvd0ZpbHRlcil8fHZvaWQgMD09PWY/dm9pZCAwOmYuc291cmNlVG9SZW5kZXJlZChsKSxkPXRoaXMuVEJPRFkpLHZvaWQgMCE9PWEmJnZvaWQgMCE9PWQmJiEoZC5jaGlsZE5vZGVzLmxlbmd0aDxhKzEpJiZkLmNoaWxkTm9kZXNbYV19'@; put 'Z2V0Q29sdW1uSGVhZGVyKGwpe2NvbnN0IGQ9dGhpcy5USEVBRC5jaGlsZE5vZGVzW2FyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowXTtyZXR1cm4gZD8uY2hpbGROb2Rlc1t0aGlzLmNvbHVtbkZpbHRlci5zb3VyY2VDb2x1bW5Ub1Zpc2li'@; put 'bGVSb3dIZWFkZWRDb2x1bW4obCldfWdldENvbHVtbkhlYWRlcnMobCl7Y29uc3QgYT1bXSxkPXRoaXMuY29sdW1uRmlsdGVyLnNvdXJjZUNvbHVtblRvVmlzaWJsZVJvd0hlYWRlZENvbHVtbihsKTtyZXR1cm4gdGhpcy5USEVBRC5jaGlsZE5vZGVzLmZvckVhY2goaD0+e2NvbnN0IGY9aC5j'@; put 'aGlsZE5vZGVzW2RdO2YmJmEucHVzaChmKX0pLGF9Z2V0Um93SGVhZGVyKGwpe2xldCBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO2lmKGE+PXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJyb3dIZWFkZXJzIikubGVuZ3RoKXJl'@; put 'dHVybjtjb25zdCBoPXRoaXMucm93RmlsdGVyLnNvdXJjZVRvUmVuZGVyZWQobCksZj1oPDA/dGhpcy5yb3dGaWx0ZXIuc291cmNlUm93VG9WaXNpYmxlQ29sSGVhZGVkUm93KGwpOmgsTT0oaDwwP3RoaXMuVEhFQUQ6dGhpcy5UQk9EWSkuY2hpbGROb2Rlc1tmXTtyZXR1cm4gTT8uY2hpbGRO'@; put 'b2Rlc1thXX1nZXRSb3dIZWFkZXJzKGwpe2NvbnN0IGE9W10sZD10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicm93SGVhZGVycyIpLmxlbmd0aDtmb3IobGV0IGg9MDtoPGQ7aCsrKXtjb25zdCBmPXRoaXMuVEJPRFkuY2hpbGROb2Rlc1t0aGlzLnJvd0ZpbHRlci5zb3VyY2VUb1JlbmRl'@; put 'cmVkKGwpXSx2PWY/LmNoaWxkTm9kZXNbaF07diYmYS5wdXNoKHYpfXJldHVybiBhfWdldENvb3JkcyhsKXtsZXQgYT1sO2lmKCJURCIhPT1hLm5vZGVOYW1lJiYiVEgiIT09YS5ub2RlTmFtZSYmKGE9RG0oYSxbIlREIiwiVEgiXSkpLG51bGw9PT1hKXJldHVybiBudWxsO2NvbnN0IGQ9YS5w'@; put 'YXJlbnROb2RlO2lmKCFkKXJldHVybiBudWxsO2NvbnN0IGg9ZC5wYXJlbnROb2RlO2xldCBmPXRmZShkKSx2PWEuY2VsbEluZGV4O1JtKFg3LGEsdGhpcy53dFJvb3RFbGVtZW50KXx8Um0oJDcsYSx0aGlzLnd0Um9vdEVsZW1lbnQpPyJUSEVBRCI9PT1oLm5vZGVOYW1lJiYoZi09aC5jaGls'@; put 'ZE5vZGVzLmxlbmd0aCk6Um0oTm0sYSx0aGlzLnd0Um9vdEVsZW1lbnQpfHxSbShScCxhLHRoaXMud3RSb290RWxlbWVudCk/Zj10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIiktaC5jaGlsZE5vZGVzLmxlbmd0aCtmOmg9PT10aGlzLlRIRUFEP2Y9dGhpcy5yb3dGaWx0'@; put 'ZXIudmlzaWJsZUNvbEhlYWRlZFJvd1RvU291cmNlUm93KGYpOnRoaXMucm93RmlsdGVyJiYoZj10aGlzLnJvd0ZpbHRlci5yZW5kZXJlZFRvU291cmNlKGYpKSxSbShYNyxhLHRoaXMud3RSb290RWxlbWVudCl8fFJtKEs3LGEsdGhpcy53dFJvb3RFbGVtZW50KXx8Um0oTm0sYSx0aGlzLnd0'@; put 'Um9vdEVsZW1lbnQpP3Y9dGhpcy5jb2x1bW5GaWx0ZXIub2Zmc2V0dGVkVEgodik6dGhpcy5jb2x1bW5GaWx0ZXImJih2PXRoaXMuY29sdW1uRmlsdGVyLnZpc2libGVSb3dIZWFkZWRDb2x1bW5Ub1NvdXJjZUNvbHVtbih2KSk7Y29uc3QgTT10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygi'@; put 'b25Nb2RpZnlHZXRDb29yZHNFbGVtZW50IixmLHYpO3JldHVybiBNJiZBcnJheS5pc0FycmF5KE0pJiYoW2Ysdl09TSksdGhpcy53b3QuY3JlYXRlQ2VsbENvb3JkcyhmLHYpfW1hcmtPdmVyc2l6ZWRSb3dzKCl7aWYodGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImV4dGVybmFsUm93Q2Fs'@; put 'Y3VsYXRvciIpKXJldHVybjtsZXQgbD10aGlzLlRCT0RZLmNoaWxkTm9kZXMubGVuZ3RoO2NvbnN0IGE9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInN0eWxlc0hhbmRsZXIiKSxkPWwqYS5nZXREZWZhdWx0Um93SGVpZ2h0KCksaD1sXyh0aGlzLlRCT0RZKS0xLGY9YS5hcmVDZWxsc0Jv'@; put 'cmRlckJveCgpLHY9Zj9TdTpsXyxNPWY/MDoxLEk9Zj8xOjA7bGV0IEcscmUsdWUseWUsRWU7aWYoZCE9PWh8fHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmaXhlZFJvd3NCb3R0b20iKSlmb3IoO2w7KXtsLT0xLHVlPXRoaXMucm93RmlsdGVyLnJlbmRlcmVkVG9Tb3VyY2UobCksRz10'@; put 'aGlzLmdldFJvd0hlaWdodCh1ZSkseWU9dGhpcy5nZXRUckZvclJvdyh1ZSksRWU9eWUucXVlcnlTZWxlY3RvcigidGgiKTtjb25zdCBCZT0wPT09dWU/STowO3JlPUVlP3YoRWUpOnYoeWUpLU0sKCFHJiZhLmdldERlZmF1bHRSb3dIZWlnaHQoKTxyZS1CZXx8RzxyZSkmJihmfHwocmUrPTEp'@; put 'LHRoaXMuZGF0YUFjY2Vzc09iamVjdC53dFZpZXdwb3J0Lm92ZXJzaXplZFJvd3NbdWVdPXJlKX19Z2V0VHJGb3JSb3cobCl7cmV0dXJuIHRoaXMuVEJPRFkuY2hpbGROb2Rlc1t0aGlzLnJvd0ZpbHRlci5zb3VyY2VUb1JlbmRlcmVkKGwpXX1pc0NvbHVtbkhlYWRlclJlbmRlcmVkKGwpe2lm'@; put 'KGw+PTApcmV0dXJuITE7Y29uc3QgZD10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicm93SGVhZGVycyIpLmxlbmd0aDtyZXR1cm4gTWF0aC5hYnMobCk8PWR9aXNSb3dIZWFkZXJSZW5kZXJlZChsKXtpZihsPj0wKXJldHVybiExO2NvbnN0IGQ9dGhpcy53dFNldHRpbmdzLmdldFNldHRp'@; put 'bmcoImNvbHVtbkhlYWRlcnMiKS5sZW5ndGg7cmV0dXJuIE1hdGguYWJzKGwpPD1kfWlzUm93QmVmb3JlUmVuZGVyZWRSb3dzKGwpe2NvbnN0IGE9dGhpcy5nZXRGaXJzdFJlbmRlcmVkUm93KCk7cmV0dXJuIGw8MCYmYTw9MD8hdGhpcy5pc1Jvd0hlYWRlclJlbmRlcmVkKGwpOmw8YX1pc1Jv'@; put 'd0FmdGVyUmVuZGVyZWRSb3dzKGwpe3JldHVybiBsPnRoaXMuZ2V0TGFzdFJlbmRlcmVkUm93KCl9aXNDb2x1bW5CZWZvcmVSZW5kZXJlZENvbHVtbnMobCl7Y29uc3QgYT10aGlzLmdldEZpcnN0UmVuZGVyZWRDb2x1bW4oKTtyZXR1cm4gbDwwJiZhPD0wPyF0aGlzLmlzQ29sdW1uSGVhZGVy'@; put 'UmVuZGVyZWQobCk6bDxhfWlzQ29sdW1uQWZ0ZXJSZW5kZXJlZENvbHVtbnMobCl7cmV0dXJuIHRoaXMuY29sdW1uRmlsdGVyJiZsPnRoaXMuZ2V0TGFzdFJlbmRlcmVkQ29sdW1uKCl9aXNDb2x1bW5BZnRlclZpZXdwb3J0KGwpe3JldHVybiB0aGlzLmNvbHVtbkZpbHRlciYmbD50aGlzLmdl'@; put 'dExhc3RWaXNpYmxlQ29sdW1uKCl9aXNSb3dBZnRlclZpZXdwb3J0KGwpe3JldHVybiB0aGlzLnJvd0ZpbHRlciYmbD50aGlzLmdldExhc3RWaXNpYmxlUm93KCl9aXNDb2x1bW5CZWZvcmVWaWV3cG9ydChsKXtyZXR1cm4gdGhpcy5jb2x1bW5GaWx0ZXImJnRoaXMuY29sdW1uRmlsdGVyLnNv'@; put 'dXJjZVRvUmVuZGVyZWQobCk8MCYmbD49MH1pc0xhc3RSb3dGdWxseVZpc2libGUoKXtyZXR1cm4gdGhpcy5nZXRMYXN0VmlzaWJsZVJvdygpPT09dGhpcy5nZXRMYXN0UmVuZGVyZWRSb3coKX1pc0xhc3RDb2x1bW5GdWxseVZpc2libGUoKXtyZXR1cm4gdGhpcy5nZXRMYXN0VmlzaWJsZUNv'@; put 'bHVtbigpPT09dGhpcy5nZXRMYXN0UmVuZGVyZWRDb2x1bW4oKX1hbGxSb3dzSW5WaWV3cG9ydCgpe3JldHVybiB0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIik9PT10aGlzLmdldFZpc2libGVSb3dzQ291bnQoKX1hbGxDb2x1bW5zSW5WaWV3cG9ydCgpe3JldHVybiB0'@; put 'aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxDb2x1bW5zIik9PT10aGlzLmdldFZpc2libGVDb2x1bW5zQ291bnQoKX1nZXRSb3dIZWlnaHQobCl7cmV0dXJuIHRoaXMucm93VXRpbHMuZ2V0SGVpZ2h0KGwpfWdldENvbHVtbkhlYWRlckhlaWdodChsKXtyZXR1cm4gdGhpcy5jb2x1'@; put 'bW5VdGlscy5nZXRIZWFkZXJIZWlnaHQobCl9Z2V0Q29sdW1uV2lkdGgobCl7cmV0dXJuIHRoaXMuY29sdW1uVXRpbHMuZ2V0V2lkdGgobCl9aGFzRGVmaW5lZFNpemUoKXtyZXR1cm4gdGhpcy5oYXNUYWJsZUhlaWdodCYmdGhpcy5oYXNUYWJsZVdpZHRofWdldFdpZHRoKCl7cmV0dXJuIGl1'@; put 'KHRoaXMuVEFCTEUpfWdldEhlaWdodCgpe3JldHVybiBTdSh0aGlzLlRBQkxFKX1nZXRUb3RhbFdpZHRoKCl7Y29uc3QgbD1pdSh0aGlzLmhpZGVyKTtyZXR1cm4gMCE9PWw/bDp0aGlzLmdldFdpZHRoKCl9Z2V0VG90YWxIZWlnaHQoKXtjb25zdCBsPVN1KHRoaXMuaGlkZXIpO3JldHVybiAw'@; put 'IT09bD9sOnRoaXMuZ2V0SGVpZ2h0KCl9aXNWaXNpYmxlKCl7cmV0dXJuIHo3KHRoaXMuVEFCTEUpfV9tb2RpZnlSb3dIZWFkZXJXaWR0aChsKXtsZXQgYT1mbChsKT9sKCk6bnVsbDtyZXR1cm4gQXJyYXkuaXNBcnJheShhKT8oYT1bLi4uYV0sYVthLmxlbmd0aC0xXT10aGlzLl9jb3JyZWN0'@; put 'Um93SGVhZGVyV2lkdGgoYVthLmxlbmd0aC0xXSkpOmE9dGhpcy5fY29ycmVjdFJvd0hlYWRlcldpZHRoKGEpLGF9X2NvcnJlY3RSb3dIZWFkZXJXaWR0aChsKXtsZXQgYT1sO3JldHVybiJudW1iZXIiIT10eXBlb2YgbCYmKGE9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImRlZmF1bHRD'@; put 'b2x1bW5XaWR0aCIpKSx0aGlzLmNvcnJlY3RIZWFkZXJXaWR0aCYmKGErPTEpLGF9fSxLZmU9e2dldEZpcnN0UmVuZGVyZWRSb3coKXtyZXR1cm4gMD09PXRoaXMuZ2V0UmVuZGVyZWRSb3dzQ291bnQoKT8tMTowfSxnZXRGaXJzdFZpc2libGVSb3coKXtyZXR1cm4gdGhpcy5nZXRGaXJzdFJl'@; put 'bmRlcmVkUm93KCl9LGdldEZpcnN0UGFydGlhbGx5VmlzaWJsZVJvdygpe3JldHVybiB0aGlzLmdldEZpcnN0UmVuZGVyZWRSb3coKX0sZ2V0TGFzdFJlbmRlcmVkUm93KCl7cmV0dXJuIHRoaXMuZ2V0UmVuZGVyZWRSb3dzQ291bnQoKS0xfSxnZXRMYXN0VmlzaWJsZVJvdygpe3JldHVybiB0'@; put 'aGlzLmdldExhc3RSZW5kZXJlZFJvdygpfSxnZXRMYXN0UGFydGlhbGx5VmlzaWJsZVJvdygpe3JldHVybiB0aGlzLmdldExhc3RSZW5kZXJlZFJvdygpfSxnZXRSZW5kZXJlZFJvd3NDb3VudCgpe3JldHVybiBNYXRoLm1pbih0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dz'@; put 'IiksdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkUm93c1RvcCIpKX0sZ2V0VmlzaWJsZVJvd3NDb3VudCgpe3JldHVybiB0aGlzLmdldFJlbmRlcmVkUm93c0NvdW50KCl9LGdldENvbHVtbkhlYWRlcnNDb3VudCgpe3JldHVybiB0aGlzLmRhdGFBY2Nlc3NPYmplY3QuY29sdW1u'@; put 'SGVhZGVycy5sZW5ndGh9fTtUcChLZmUsIk1JWElOX05BTUUiLCJzdGlja3lSb3dzVG9wIix7d3JpdGFibGU6ITEsZW51bWVyYWJsZTohMX0pO2NvbnN0IFhmZT1LZmUscWZlPXtnZXRGaXJzdFJlbmRlcmVkQ29sdW1uKCl7Y29uc3QgYz10aGlzLmRhdGFBY2Nlc3NPYmplY3Quc3RhcnRDb2x1'@; put 'bW5SZW5kZXJlZDtyZXR1cm4gbnVsbD09PWM/LTE6Y30sZ2V0Rmlyc3RWaXNpYmxlQ29sdW1uKCl7Y29uc3QgYz10aGlzLmRhdGFBY2Nlc3NPYmplY3Quc3RhcnRDb2x1bW5WaXNpYmxlO3JldHVybiBudWxsPT09Yz8tMTpjfSxnZXRGaXJzdFBhcnRpYWxseVZpc2libGVDb2x1bW4oKXtjb25z'@; put 'dCBjPXRoaXMuZGF0YUFjY2Vzc09iamVjdC5zdGFydENvbHVtblBhcnRpYWxseVZpc2libGU7cmV0dXJuIG51bGw9PT1jPy0xOmN9LGdldExhc3RSZW5kZXJlZENvbHVtbigpe2NvbnN0IGM9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LmVuZENvbHVtblJlbmRlcmVkO3JldHVybiBudWxsPT09Yz8t'@; put 'MTpjfSxnZXRMYXN0VmlzaWJsZUNvbHVtbigpe2NvbnN0IGM9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LmVuZENvbHVtblZpc2libGU7cmV0dXJuIG51bGw9PT1jPy0xOmN9LGdldExhc3RQYXJ0aWFsbHlWaXNpYmxlQ29sdW1uKCl7Y29uc3QgYz10aGlzLmRhdGFBY2Nlc3NPYmplY3QuZW5kQ29s'@; put 'dW1uUGFydGlhbGx5VmlzaWJsZTtyZXR1cm4gbnVsbD09PWM/LTE6Y30sZ2V0UmVuZGVyZWRDb2x1bW5zQ291bnQoKXtyZXR1cm4gdGhpcy5kYXRhQWNjZXNzT2JqZWN0LmNvdW50Q29sdW1uc1JlbmRlcmVkfSxnZXRWaXNpYmxlQ29sdW1uc0NvdW50KCl7cmV0dXJuIHRoaXMuZGF0YUFjY2Vz'@; put 'c09iamVjdC5jb3VudENvbHVtbnNWaXNpYmxlfSxnZXRSb3dIZWFkZXJzQ291bnQoKXtyZXR1cm4gdGhpcy5kYXRhQWNjZXNzT2JqZWN0LnJvd0hlYWRlcnMubGVuZ3RofX07VHAocWZlLCJNSVhJTl9OQU1FIiwiY2FsY3VsYXRlZENvbHVtbnMiLHt3cml0YWJsZTohMSxlbnVtZXJhYmxlOiEx'@; put 'fSk7Y29uc3QgaEs9cWZlO2NsYXNzIGZLIGV4dGVuZHMgZ197Y29uc3RydWN0b3IobCxhLGQsaCl7c3VwZXIobCxhLGQsaCwkNyl9fXhsKGZLLFhmZSkseGwoZkssaEspO2NvbnN0IEhRZT1mSztmdW5jdGlvbiBvUChjLGwsYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGM/Yz09PWw6Yy5oYXMo'@; put 'bCkpcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mz9sOmE7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBlbGVtZW50IGlzIG5vdCBwcmVzZW50IG9uIHRoaXMgb2JqZWN0Iil9dmFyIE5FPW5ldyBXZWFrU2V0O2Z1bmN0aW9uIEpmZShjKXtjb25zdHt3dFNldHRpbmdzOmwsaW5saW5lU3Rh'@; put 'cnRPdmVybGF5OmEsd3RUYWJsZTpkLHd0Vmlld3BvcnQ6aCx0b3RhbENvbHVtbnM6Zixyb290V2luZG93OnZ9PXRoaXMuZGF0YUFjY2Vzc09iamVjdDtpZihhLm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50PT09dil7bGV0IEk9bnVsbDtpZihsLmdldFNldHRpbmcoInJ0bE1vZGUiKSl7Y29u'@; put 'c3QgcmU9ZC5UQUJMRS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtJPU1hdGguYWJzKHJlLnJpZ2h0LXRoaXMuZGF0YUFjY2Vzc09iamVjdC5yb290V2luZG93LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRXaWR0aCl9ZWxzZSBJPWowKGQud3RSb290RWxlbWVudCkubGVmdDtjb25z'@; put 'dCBHPU1hdGguYWJzKFQkKHYsdikpO2lmKEk+Ryl7Y29uc3QgcmU9QSQodik7bGV0IHVlPWguZ2V0Um93SGVhZGVyV2lkdGgoKTtmb3IobGV0IHllPTE7eWU8PWY7eWUrKylpZih1ZSs9YS5zdW1DZWxsU2l6ZXMoeWUtMSx5ZSksSSt1ZS1HPj1yZSl7Yz15ZS0yO2JyZWFrfX19cmV0dXJuIGN9'@; put 'ZnVuY3Rpb24gUWZlKGMpe2NvbnN0e3RvcE92ZXJsYXk6bCx3dFRhYmxlOmEsd3RWaWV3cG9ydDpkLHRvdGFsUm93czpoLHJvb3RXaW5kb3c6Zn09dGhpcy5kYXRhQWNjZXNzT2JqZWN0O2lmKGwubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQ9PT1mKXtjb25zdCB2PWowKGEud3RSb290RWxl'@; put 'bWVudCksTT1aTyhmLGYpO2lmKHYudG9wPk0pe2NvbnN0IEk9bF8oZik7bGV0IEc9ZC5nZXRDb2x1bW5IZWFkZXJIZWlnaHQoKTtmb3IobGV0IHJlPTE7cmU8PWg7cmUrKylpZihHKz1sLnN1bUNlbGxTaXplcyhyZS0xLHJlKSx2LnRvcCtHLU0+PUkpe2M9cmUtMjticmVha319fXJldHVybiBj'@; put 'fWNvbnN0IFpRZT1jbGFzcyBVUWV7Y29uc3RydWN0b3IobCl7KGZ1bmN0aW9uIE5RZShjLGwpeyhmdW5jdGlvbiBWUWUoYyxsKXtpZihsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9i'@; put 'amVjdCIpfSkoYyxsKSxsLmFkZChjKX0pKHRoaXMsTkUpLGZ1bmN0aW9uIEJRZShjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24galFlKGMpe3ZhciBsPWZ1bmN0aW9uIHpRZShjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVd'@; put 'O2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9T'@; put 'dHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9KHRoaXMs'@; put 'ImRhdGFBY2Nlc3NPYmplY3QiLHZvaWQgMCksdGhpcy5kYXRhQWNjZXNzT2JqZWN0PWx9c2Nyb2xsVmlld3BvcnQobCxhLGQpe2lmKGwuY29sPDB8fGwucm93PDApcmV0dXJuITE7Y29uc3QgaD10aGlzLnNjcm9sbFZpZXdwb3J0SG9yaXpvbnRhbGx5KGwuY29sLGEpLGY9dGhpcy5zY3JvbGxW'@; put 'aWV3cG9ydFZlcnRpY2FsbHkobC5yb3csZCk7cmV0dXJuIGh8fGZ9c2Nyb2xsVmlld3BvcnRIb3Jpem9udGFsbHkobCl7bGV0IGE9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOiJhdXRvIjtjb25zdHtkcmF3bjpkLHRvdGFsQ29sdW1uczpo'@; put 'fT10aGlzLmRhdGFBY2Nlc3NPYmplY3Q7aWYoIWQpcmV0dXJuITE7Y29uc3QgZj1GZChhKTtpZihsPXRoaXMuZGF0YUFjY2Vzc09iamVjdC53dFNldHRpbmdzLmdldFNldHRpbmcoIm9uQmVmb3JlVmlld3BvcnRTY3JvbGxIb3Jpem9udGFsbHkiLGwsZiksIU51bWJlci5pc0ludGVnZXIobCl8'@; put 'fGw8MHx8bD5oKXJldHVybiExO2E9Zi52YWx1ZTtjb25zdHtmaXhlZENvbHVtbnNTdGFydDp2LGlubGluZVN0YXJ0T3ZlcmxheTpNfT10aGlzLmRhdGFBY2Nlc3NPYmplY3QsST0iYXV0byI9PT1hO2lmKEkmJmw8dilyZXR1cm4hMTtjb25zdCBHPXRoaXMuZ2V0Rmlyc3RWaXNpYmxlQ29sdW1u'@; put 'KCkscmU9dGhpcy5nZXRMYXN0VmlzaWJsZUNvbHVtbigpO2xldCB1ZT0hMTtyZXR1cm4oSSYmKGw8R3x8bD5yZSl8fCFJKSYmKHVlPU0uc2Nyb2xsVG8obCxJP2w+PXRoaXMuZ2V0TGFzdFBhcnRpYWxseVZpc2libGVDb2x1bW4oKToiZW5kIj09PWEpKSx1ZX1zY3JvbGxWaWV3cG9ydFZlcnRp'@; put 'Y2FsbHkobCl7bGV0IGE9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOiJhdXRvIjtjb25zdHtkcmF3bjpkLHRvdGFsUm93czpofT10aGlzLmRhdGFBY2Nlc3NPYmplY3Q7aWYoIWQpcmV0dXJuITE7Y29uc3QgZj1GZChhKTtpZihsPXRoaXMu'@; put 'ZGF0YUFjY2Vzc09iamVjdC53dFNldHRpbmdzLmdldFNldHRpbmcoIm9uQmVmb3JlVmlld3BvcnRTY3JvbGxWZXJ0aWNhbGx5IixsLGYpLCFOdW1iZXIuaXNJbnRlZ2VyKGwpfHxsPDB8fGw+aClyZXR1cm4hMTthPWYudmFsdWU7Y29uc3R7Zml4ZWRSb3dzQm90dG9tOnYsZml4ZWRSb3dzVG9w'@; put 'Ok0sdG9wT3ZlcmxheTpJfT10aGlzLmRhdGFBY2Nlc3NPYmplY3QsRz0iYXV0byI9PT1hO2lmKEcmJihsPE18fGw+aC12LTEpKXJldHVybiExO2NvbnN0IHJlPXRoaXMuZ2V0Rmlyc3RWaXNpYmxlUm93KCksdWU9dGhpcy5nZXRMYXN0VmlzaWJsZVJvdygpO2xldCB5ZT0hMTtyZXR1cm4oRyYm'@; put 'KGw8cmV8fGw+dWUpfHwhRykmJih5ZT1JLnNjcm9sbFRvKGwsRz9sPj10aGlzLmdldExhc3RQYXJ0aWFsbHlWaXNpYmxlUm93KCk6ImJvdHRvbSI9PT1hKSkseWV9Z2V0Rmlyc3RWaXNpYmxlUm93KCl7cmV0dXJuIHRoaXMuZGF0YUFjY2Vzc09iamVjdC53dFRhYmxlLmdldEZpcnN0VmlzaWJs'@; put 'ZVJvdygpfWdldExhc3RWaXNpYmxlUm93KCl7cmV0dXJuIG9QKE5FLHRoaXMsUWZlKS5jYWxsKHRoaXMsdGhpcy5kYXRhQWNjZXNzT2JqZWN0Lnd0VGFibGUuZ2V0TGFzdFZpc2libGVSb3coKSl9Z2V0Rmlyc3RQYXJ0aWFsbHlWaXNpYmxlUm93KCl7cmV0dXJuIHRoaXMuZGF0YUFjY2Vzc09i'@; put 'amVjdC53dFRhYmxlLmdldEZpcnN0UGFydGlhbGx5VmlzaWJsZVJvdygpfWdldExhc3RQYXJ0aWFsbHlWaXNpYmxlUm93KCl7cmV0dXJuIG9QKE5FLHRoaXMsUWZlKS5jYWxsKHRoaXMsdGhpcy5kYXRhQWNjZXNzT2JqZWN0Lnd0VGFibGUuZ2V0TGFzdFBhcnRpYWxseVZpc2libGVSb3coKSl9'@; put 'Z2V0Rmlyc3RWaXNpYmxlQ29sdW1uKCl7cmV0dXJuIHRoaXMuZGF0YUFjY2Vzc09iamVjdC53dFRhYmxlLmdldEZpcnN0VmlzaWJsZUNvbHVtbigpfWdldExhc3RWaXNpYmxlQ29sdW1uKCl7cmV0dXJuIG9QKE5FLHRoaXMsSmZlKS5jYWxsKHRoaXMsdGhpcy5kYXRhQWNjZXNzT2JqZWN0Lnd0'@; put 'VGFibGUuZ2V0TGFzdFZpc2libGVDb2x1bW4oKSl9Z2V0Rmlyc3RQYXJ0aWFsbHlWaXNpYmxlQ29sdW1uKCl7cmV0dXJuIHRoaXMuZGF0YUFjY2Vzc09iamVjdC53dFRhYmxlLmdldEZpcnN0UGFydGlhbGx5VmlzaWJsZUNvbHVtbigpfWdldExhc3RQYXJ0aWFsbHlWaXNpYmxlQ29sdW1uKCl7'@; put 'cmV0dXJuIG9QKE5FLHRoaXMsSmZlKS5jYWxsKHRoaXMsdGhpcy5kYXRhQWNjZXNzT2JqZWN0Lnd0VGFibGUuZ2V0TGFzdFBhcnRpYWxseVZpc2libGVDb2x1bW4oKSl9fTtmdW5jdGlvbiBlM2UoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIEdRZShjKXt2YXIgbD1mdW5jdGlvbiAkUWUoYyxs'@; put 'KXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRv'@; put 'UHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFs'@; put 'dWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWZ1bmN0aW9uIG1fKGMsbCl7cmV0dXJuIGMuZ2V0KG4zZShjLGwpKX1mdW5jdGlvbiB0M2UoYyxsLGEpe3JldHVybiBjLnNldChuM2UoYyxsKSxhKSxhfWZ1bmN0aW9uIG4zZShjLGwsYSl7'@; put 'aWYoImZ1bmN0aW9uIj09dHlwZW9mIGM/Yz09PWw6Yy5oYXMobCkpcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mz9sOmE7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBlbGVtZW50IGlzIG5vdCBwcmVzZW50IG9uIHRoaXMgb2JqZWN0Iil9dmFyIGJnPW5ldyBXZWFrTWFwO2NsYXNzIGxQ'@; put 'e2NvbnN0cnVjdG9yKGwsYSl7bGV0IGQ9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXTtlM2UodGhpcywicm93IixudWxsKSxlM2UodGhpcywiY29sIixudWxsKSxmdW5jdGlvbiBXUWUoYyxsLGEpeyhmdW5jdGlvbiBZUWUoYyxsKXtpZihs'@; put 'LmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfSkoYyxsKSxsLnNldChjLGEpfSh0aGlzLGJnLCExKSx0M2UoYmcsdGhpcyxkKSx0eXBlb2YgbDwidSImJnR5cGVvZiBhPCJ1'@; put 'IiYmKHRoaXMucm93PWwsdGhpcy5jb2w9YSl9aXNWYWxpZChsKXtjb25zdHtjb3VudFJvd3M6YSxjb3VudENvbHM6ZCxjb3VudFJvd0hlYWRlcnM6aCxjb3VudENvbEhlYWRlcnM6Zn09e2NvdW50Um93czowLGNvdW50Q29sczowLGNvdW50Um93SGVhZGVyczowLGNvdW50Q29sSGVhZGVyczow'@; put 'LC4uLmx9O3JldHVybiEoIU51bWJlci5pc0ludGVnZXIodGhpcy5yb3cpfHwhTnVtYmVyLmlzSW50ZWdlcih0aGlzLmNvbCl8fHRoaXMucm93PC1mfHx0aGlzLmNvbDwtaHx8dGhpcy5yb3c+PWF8fHRoaXMuY29sPj1kKX1pc0VxdWFsKGwpe3JldHVybiBsPT09dGhpc3x8dGhpcy5yb3c9PT1s'@; put 'LnJvdyYmdGhpcy5jb2w9PT1sLmNvbH1pc0hlYWRlcigpe3JldHVybiF0aGlzLmlzQ2VsbCgpfWlzQ2VsbCgpe3JldHVybiB0aGlzLnJvdz49MCYmdGhpcy5jb2w+PTB9aXNSdGwoKXtyZXR1cm4gbV8oYmcsdGhpcyl9aXNTb3V0aEVhc3RPZihsKXtyZXR1cm4gdGhpcy5yb3c+PWwucm93JiYo'@; put 'bV8oYmcsdGhpcyk/dGhpcy5jb2w8PWwuY29sOnRoaXMuY29sPj1sLmNvbCl9aXNOb3J0aFdlc3RPZihsKXtyZXR1cm4gdGhpcy5yb3c8PWwucm93JiYobV8oYmcsdGhpcyk/dGhpcy5jb2w+PWwuY29sOnRoaXMuY29sPD1sLmNvbCl9aXNTb3V0aFdlc3RPZihsKXtyZXR1cm4gdGhpcy5yb3c+'@; put 'PWwucm93JiYobV8oYmcsdGhpcyk/dGhpcy5jb2w+PWwuY29sOnRoaXMuY29sPD1sLmNvbCl9aXNOb3J0aEVhc3RPZihsKXtyZXR1cm4gdGhpcy5yb3c8PWwucm93JiYobV8oYmcsdGhpcyk/dGhpcy5jb2w8PWwuY29sOnRoaXMuY29sPj1sLmNvbCl9bm9ybWFsaXplKCl7cmV0dXJuIHRoaXMu'@; put 'cm93PW51bGw9PT10aGlzLnJvdz90aGlzLnJvdzpNYXRoLm1heCh0aGlzLnJvdywwKSx0aGlzLmNvbD1udWxsPT09dGhpcy5jb2w/dGhpcy5jb2w6TWF0aC5tYXgodGhpcy5jb2wsMCksdGhpc31hc3NpZ24obCl7cmV0dXJuIE51bWJlci5pc0ludGVnZXIobD8ucm93KSYmKHRoaXMucm93PWwu'@; put 'cm93KSxOdW1iZXIuaXNJbnRlZ2VyKGw/LmNvbCkmJih0aGlzLmNvbD1sLmNvbCksbCBpbnN0YW5jZW9mIGxQJiZ0M2UoYmcsdGhpcyxsLmlzUnRsKCkpLHRoaXN9Y2xvbmUoKXtyZXR1cm4gbmV3IGxQKHRoaXMucm93LHRoaXMuY29sLG1fKGJnLHRoaXMpKX10b09iamVjdCgpe3JldHVybnty'@; put 'b3c6dGhpcy5yb3csY29sOnRoaXMuY29sfX19Y29uc3QgY1A9bFA7ZnVuY3Rpb24gcEsoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIHFRZShjKXt2YXIgbD1mdW5jdGlvbiBKUWUoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0'@; put 'aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09'@; put 'PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWZ1'@; put 'bmN0aW9uIFkyKGMsbCl7cmV0dXJuIGMuZ2V0KHIzZShjLGwpKX1mdW5jdGlvbiByM2UoYyxsLGEpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBjP2M9PT1sOmMuaGFzKGwpKXJldHVybiBhcmd1bWVudHMubGVuZ3RoPDM/bDphO3Rocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgZWxlbWVudCBp'@; put 'cyBub3QgcHJlc2VudCBvbiB0aGlzIG9iamVjdCIpfXZhciBOZD1uZXcgV2Vha01hcDtjbGFzcyBnS3tjb25zdHJ1Y3RvcihsKXtsZXQgYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06bCxkPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAw'@; put 'IT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpsLGg9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10mJmFyZ3VtZW50c1szXTtwSyh0aGlzLCJoaWdobGlnaHQiLG51bGwpLHBLKHRoaXMsImZyb20iLG51bGwpLHBLKHRoaXMsInRvIixudWxsKSxmdW5jdGlvbiBL'@; put 'UWUoYyxsLGEpeyhmdW5jdGlvbiBYUWUoYyxsKXtpZihsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfSkoYyxsKSxsLnNldChjLGEpfSh0aGlzLE5kLCExKSx0aGlzLmhp'@; put 'Z2hsaWdodD1sLmNsb25lKCksdGhpcy5mcm9tPWEuY2xvbmUoKSx0aGlzLnRvPWQuY2xvbmUoKSxmdW5jdGlvbiBRUWUoYyxsLGEpe2Muc2V0KHIzZShjLGwpLGEpfShOZCx0aGlzLGgpfXNldEhpZ2hsaWdodChsKXtyZXR1cm4gdGhpcy5oaWdobGlnaHQ9bC5jbG9uZSgpLHRoaXN9c2V0RnJv'@; put 'bShsKXtyZXR1cm4gdGhpcy5mcm9tPWwuY2xvbmUoKSx0aGlzfXNldFRvKGwpe3JldHVybiB0aGlzLnRvPWwuY2xvbmUoKSx0aGlzfW5vcm1hbGl6ZSgpe3JldHVybiB0aGlzLmhpZ2hsaWdodC5ub3JtYWxpemUoKSx0aGlzLmZyb20ubm9ybWFsaXplKCksdGhpcy50by5ub3JtYWxpemUoKSx0'@; put 'aGlzfWlzVmFsaWQobCl7cmV0dXJuIHRoaXMuZnJvbS5pc1ZhbGlkKGwpJiZ0aGlzLnRvLmlzVmFsaWQobCl9aXNTaW5nbGUoKXtyZXR1cm4gdGhpcy5pc1NpbmdsZUNlbGwoKXx8dGhpcy5pc1NpbmdsZUhlYWRlcigpfWlzU2luZ2xlQ2VsbCgpe3JldHVybiB0aGlzLmZyb20ucm93Pj0wJiZ0'@; put 'aGlzLmZyb20ucm93PT09dGhpcy50by5yb3cmJnRoaXMuZnJvbS5jb2w+PTAmJnRoaXMuZnJvbS5jb2w9PT10aGlzLnRvLmNvbH1pc1NpbmdsZUhlYWRlcigpe3JldHVybih0aGlzLmZyb20ucm93PDB8fHRoaXMuZnJvbS5jb2w8MCkmJnRoaXMuZnJvbS5yb3c9PT10aGlzLnRvLnJvdyYmdGhp'@; put 'cy5mcm9tLmNvbD09PXRoaXMudG8uY29sfWlzSGVhZGVyKCl7cmV0dXJuISghdGhpcy5mcm9tLmlzSGVhZGVyKCl8fCF0aGlzLnRvLmlzSGVhZGVyKCkpfHx0aGlzLmZyb20uY29sPDAmJnRoaXMudG8uY29sPDB8fHRoaXMuZnJvbS5yb3c8MCYmdGhpcy50by5yb3c8MH1jb250YWluc0hlYWRl'@; put 'cnMoKXtyZXR1cm4gdGhpcy5mcm9tLmlzSGVhZGVyKCl8fHRoaXMudG8uaXNIZWFkZXIoKX1nZXRPdXRlckhlaWdodCgpe3JldHVybiBNYXRoLm1heCh0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KS1NYXRoLm1pbih0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KSsxfWdldE91dGVyV2lkdGgo'@; put 'KXtyZXR1cm4gTWF0aC5tYXgodGhpcy5mcm9tLmNvbCx0aGlzLnRvLmNvbCktTWF0aC5taW4odGhpcy5mcm9tLmNvbCx0aGlzLnRvLmNvbCkrMX1nZXRIZWlnaHQoKXtpZih0aGlzLmZyb20ucm93PDAmJnRoaXMudG8ucm93PDApcmV0dXJuIDA7Y29uc3QgbD1NYXRoLm1heCh0aGlzLmZyb20u'@; put 'cm93LDApLGE9TWF0aC5tYXgodGhpcy50by5yb3csMCk7cmV0dXJuIE1hdGgubWF4KGwsYSktTWF0aC5taW4obCxhKSsxfWdldFdpZHRoKCl7aWYodGhpcy5mcm9tLmNvbDwwJiZ0aGlzLnRvLmNvbDwwKXJldHVybiAwO2NvbnN0IGw9TWF0aC5tYXgodGhpcy5mcm9tLmNvbCwwKSxhPU1hdGgu'@; put 'bWF4KHRoaXMudG8uY29sLDApO3JldHVybiBNYXRoLm1heChsLGEpLU1hdGgubWluKGwsYSkrMX1nZXRDZWxsc0NvdW50KCl7cmV0dXJuIHRoaXMuZ2V0V2lkdGgoKSp0aGlzLmdldEhlaWdodCgpfWluY2x1ZGVzKGwpe2NvbnN0e3JvdzphLGNvbDpkfT1sLGg9dGhpcy5nZXRPdXRlclRvcFN0'@; put 'YXJ0Q29ybmVyKCksZj10aGlzLmdldE91dGVyQm90dG9tRW5kQ29ybmVyKCk7cmV0dXJuIGgucm93PD1hJiZmLnJvdz49YSYmaC5jb2w8PWQmJmYuY29sPj1kfWluY2x1ZGVzUmFuZ2UobCl7cmV0dXJuIHRoaXMuaW5jbHVkZXMobC5nZXRPdXRlclRvcFN0YXJ0Q29ybmVyKCkpJiZ0aGlzLmlu'@; put 'Y2x1ZGVzKGwuZ2V0T3V0ZXJCb3R0b21FbmRDb3JuZXIoKSl9aXNFcXVhbChsKXtyZXR1cm4gTWF0aC5taW4odGhpcy5mcm9tLnJvdyx0aGlzLnRvLnJvdyk9PT1NYXRoLm1pbihsLmZyb20ucm93LGwudG8ucm93KSYmTWF0aC5tYXgodGhpcy5mcm9tLnJvdyx0aGlzLnRvLnJvdyk9PT1NYXRo'@; put 'Lm1heChsLmZyb20ucm93LGwudG8ucm93KSYmTWF0aC5taW4odGhpcy5mcm9tLmNvbCx0aGlzLnRvLmNvbCk9PT1NYXRoLm1pbihsLmZyb20uY29sLGwudG8uY29sKSYmTWF0aC5tYXgodGhpcy5mcm9tLmNvbCx0aGlzLnRvLmNvbCk9PT1NYXRoLm1heChsLmZyb20uY29sLGwudG8uY29sKX1v'@; put 'dmVybGFwcyhsKXtyZXR1cm4gbC5pc1NvdXRoRWFzdE9mKHRoaXMuZ2V0T3V0ZXJUb3BMZWZ0Q29ybmVyKCkpJiZsLmlzTm9ydGhXZXN0T2YodGhpcy5nZXRPdXRlckJvdHRvbVJpZ2h0Q29ybmVyKCkpfWlzU291dGhFYXN0T2YobCl7cmV0dXJuIHRoaXMuZ2V0T3V0ZXJUb3BMZWZ0Q29ybmVy'@; put 'KCkuaXNTb3V0aEVhc3RPZihsKXx8dGhpcy5nZXRPdXRlckJvdHRvbVJpZ2h0Q29ybmVyKCkuaXNTb3V0aEVhc3RPZihsKX1pc05vcnRoV2VzdE9mKGwpe3JldHVybiB0aGlzLmdldE91dGVyVG9wTGVmdENvcm5lcigpLmlzTm9ydGhXZXN0T2YobCl8fHRoaXMuZ2V0T3V0ZXJCb3R0b21SaWdo'@; put 'dENvcm5lcigpLmlzTm9ydGhXZXN0T2YobCl9aXNPdmVybGFwcGluZ0hvcml6b250YWxseShsKXtyZXR1cm4gdGhpcy5nZXRPdXRlclRvcEVuZENvcm5lcigpLmNvbD49bC5nZXRPdXRlclRvcFN0YXJ0Q29ybmVyKCkuY29sJiZ0aGlzLmdldE91dGVyVG9wRW5kQ29ybmVyKCkuY29sPD1sLmdl'@; put 'dE91dGVyVG9wRW5kQ29ybmVyKCkuY29sfHx0aGlzLmdldE91dGVyVG9wU3RhcnRDb3JuZXIoKS5jb2w8PWwuZ2V0T3V0ZXJUb3BFbmRDb3JuZXIoKS5jb2wmJnRoaXMuZ2V0T3V0ZXJUb3BTdGFydENvcm5lcigpLmNvbD49bC5nZXRPdXRlclRvcFN0YXJ0Q29ybmVyKCkuY29sfWlzT3Zlcmxh'@; put 'cHBpbmdWZXJ0aWNhbGx5KGwpe3JldHVybiB0aGlzLmdldE91dGVyQm90dG9tU3RhcnRDb3JuZXIoKS5yb3c+PWwuZ2V0T3V0ZXJUb3BSaWdodENvcm5lcigpLnJvdyYmdGhpcy5nZXRPdXRlckJvdHRvbVN0YXJ0Q29ybmVyKCkucm93PD1sLmdldE91dGVyQm90dG9tU3RhcnRDb3JuZXIoKS5y'@; put 'b3d8fHRoaXMuZ2V0T3V0ZXJUb3BFbmRDb3JuZXIoKS5yb3c8PWwuZ2V0T3V0ZXJCb3R0b21TdGFydENvcm5lcigpLnJvdyYmdGhpcy5nZXRPdXRlclRvcEVuZENvcm5lcigpLnJvdz49bC5nZXRPdXRlclRvcFJpZ2h0Q29ybmVyKCkucm93fWV4cGFuZChsKXtjb25zdCBhPXRoaXMuZ2V0T3V0'@; put 'ZXJUb3BTdGFydENvcm5lcigpLGQ9dGhpcy5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpO3JldHVybihsLnJvdzxhLnJvd3x8bC5jb2w8YS5jb2x8fGwucm93PmQucm93fHxsLmNvbD5kLmNvbCkmJih0aGlzLmZyb209dGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhNYXRoLm1pbihhLnJvdyxsLnJv'@; put 'dyksTWF0aC5taW4oYS5jb2wsbC5jb2wpKSx0aGlzLnRvPXRoaXMuX2NyZWF0ZUNlbGxDb29yZHMoTWF0aC5tYXgoZC5yb3csbC5yb3cpLE1hdGgubWF4KGQuY29sLGwuY29sKSksITApfWV4cGFuZEJ5UmFuZ2UobCl7bGV0IGE9IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3Vt'@; put 'ZW50c1sxXSl8fGFyZ3VtZW50c1sxXTtpZih0aGlzLmluY2x1ZGVzUmFuZ2UobCl8fCF0aGlzLm92ZXJsYXBzKGwpKXJldHVybiExO2NvbnN0IGQ9dGhpcy5nZXRPdXRlclRvcFN0YXJ0Q29ybmVyKCksaD10aGlzLmdldE91dGVyQm90dG9tRW5kQ29ybmVyKCksZj10aGlzLmdldERpcmVjdGlv'@; put 'bigpLHY9bC5nZXRPdXRlclRvcFN0YXJ0Q29ybmVyKCksTT1sLmdldE91dGVyQm90dG9tRW5kQ29ybmVyKCksST1NYXRoLm1pbihkLnJvdyx2LnJvdyksRz1NYXRoLm1pbihkLmNvbCx2LmNvbCkscmU9TWF0aC5tYXgoaC5yb3csTS5yb3cpLHVlPU1hdGgubWF4KGguY29sLE0uY29sKSx5ZT10'@; put 'aGlzLl9jcmVhdGVDZWxsQ29vcmRzKEksRyksRWU9dGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhyZSx1ZSk7cmV0dXJuIHRoaXMuZnJvbT15ZSx0aGlzLnRvPUVlLHRoaXMuc2V0RGlyZWN0aW9uKGYpLGEmJih0aGlzLmhpZ2hsaWdodC5yb3c9PT10aGlzLmdldE91dGVyQm90dG9tUmlnaHRDb3Ju'@; put 'ZXIoKS5yb3cmJiJOLVMiPT09dGhpcy5nZXRWZXJ0aWNhbERpcmVjdGlvbigpJiZ0aGlzLmZsaXBEaXJlY3Rpb25WZXJ0aWNhbGx5KCksdGhpcy5oaWdobGlnaHQuY29sPT09dGhpcy5nZXRPdXRlclRvcFJpZ2h0Q29ybmVyKCkuY29sJiYiVy1FIj09PXRoaXMuZ2V0SG9yaXpvbnRhbERpcmVj'@; put 'dGlvbigpJiZ0aGlzLmZsaXBEaXJlY3Rpb25Ib3Jpem9udGFsbHkoKSksITB9Z2V0RGlyZWN0aW9uKCl7cmV0dXJuIHRoaXMuZnJvbS5pc05vcnRoV2VzdE9mKHRoaXMudG8pPyJOVy1TRSI6dGhpcy5mcm9tLmlzTm9ydGhFYXN0T2YodGhpcy50byk/Ik5FLVNXIjp0aGlzLmZyb20uaXNTb3V0'@; put 'aEVhc3RPZih0aGlzLnRvKT8iU0UtTlciOnRoaXMuZnJvbS5pc1NvdXRoV2VzdE9mKHRoaXMudG8pPyJTVy1ORSI6dm9pZCAwfXNldERpcmVjdGlvbihsKXtzd2l0Y2gobCl7Y2FzZSJOVy1TRSI6W3RoaXMuZnJvbSx0aGlzLnRvXT1bdGhpcy5nZXRPdXRlclRvcExlZnRDb3JuZXIoKSx0aGlz'@; put 'LmdldE91dGVyQm90dG9tUmlnaHRDb3JuZXIoKV07YnJlYWs7Y2FzZSJORS1TVyI6W3RoaXMuZnJvbSx0aGlzLnRvXT1bdGhpcy5nZXRPdXRlclRvcFJpZ2h0Q29ybmVyKCksdGhpcy5nZXRPdXRlckJvdHRvbUxlZnRDb3JuZXIoKV07YnJlYWs7Y2FzZSJTRS1OVyI6W3RoaXMuZnJvbSx0aGlz'@; put 'LnRvXT1bdGhpcy5nZXRPdXRlckJvdHRvbVJpZ2h0Q29ybmVyKCksdGhpcy5nZXRPdXRlclRvcExlZnRDb3JuZXIoKV07YnJlYWs7Y2FzZSJTVy1ORSI6W3RoaXMuZnJvbSx0aGlzLnRvXT1bdGhpcy5nZXRPdXRlckJvdHRvbUxlZnRDb3JuZXIoKSx0aGlzLmdldE91dGVyVG9wUmlnaHRDb3Ju'@; put 'ZXIoKV19fWdldFZlcnRpY2FsRGlyZWN0aW9uKCl7cmV0dXJuWyJORS1TVyIsIk5XLVNFIl0uaW5kZXhPZih0aGlzLmdldERpcmVjdGlvbigpKT4tMT8iTi1TIjoiUy1OIn1nZXRIb3Jpem9udGFsRGlyZWN0aW9uKCl7cmV0dXJuWyJOVy1TRSIsIlNXLU5FIl0uaW5kZXhPZih0aGlzLmdldERp'@; put 'cmVjdGlvbigpKT4tMT8iVy1FIjoiRS1XIn1mbGlwRGlyZWN0aW9uVmVydGljYWxseSgpe3N3aXRjaCh0aGlzLmdldERpcmVjdGlvbigpKXtjYXNlIk5XLVNFIjp0aGlzLnNldERpcmVjdGlvbigiU1ctTkUiKTticmVhaztjYXNlIk5FLVNXIjp0aGlzLnNldERpcmVjdGlvbigiU0UtTlciKTti'@; put 'cmVhaztjYXNlIlNFLU5XIjp0aGlzLnNldERpcmVjdGlvbigiTkUtU1ciKTticmVhaztjYXNlIlNXLU5FIjp0aGlzLnNldERpcmVjdGlvbigiTlctU0UiKX19ZmxpcERpcmVjdGlvbkhvcml6b250YWxseSgpe3N3aXRjaCh0aGlzLmdldERpcmVjdGlvbigpKXtjYXNlIk5XLVNFIjp0aGlzLnNl'@; put 'dERpcmVjdGlvbigiTkUtU1ciKTticmVhaztjYXNlIk5FLVNXIjp0aGlzLnNldERpcmVjdGlvbigiTlctU0UiKTticmVhaztjYXNlIlNFLU5XIjp0aGlzLnNldERpcmVjdGlvbigiU1ctTkUiKTticmVhaztjYXNlIlNXLU5FIjp0aGlzLnNldERpcmVjdGlvbigiU0UtTlciKX19Z2V0VG9wU3Rh'@; put 'cnRDb3JuZXIoKXtyZXR1cm4gdGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhNYXRoLm1pbih0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KSxNYXRoLm1pbih0aGlzLmZyb20uY29sLHRoaXMudG8uY29sKSkubm9ybWFsaXplKCl9Z2V0VG9wTGVmdENvcm5lcigpe3JldHVybiBZMihOZCx0aGlzKT90'@; put 'aGlzLmdldFRvcEVuZENvcm5lcigpOnRoaXMuZ2V0VG9wU3RhcnRDb3JuZXIoKX1nZXRCb3R0b21FbmRDb3JuZXIoKXtyZXR1cm4gdGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhNYXRoLm1heCh0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KSxNYXRoLm1heCh0aGlzLmZyb20uY29sLHRoaXMudG8u'@; put 'Y29sKSkubm9ybWFsaXplKCl9Z2V0Qm90dG9tUmlnaHRDb3JuZXIoKXtyZXR1cm4gWTIoTmQsdGhpcyk/dGhpcy5nZXRCb3R0b21TdGFydENvcm5lcigpOnRoaXMuZ2V0Qm90dG9tRW5kQ29ybmVyKCl9Z2V0VG9wRW5kQ29ybmVyKCl7cmV0dXJuIHRoaXMuX2NyZWF0ZUNlbGxDb29yZHMoTWF0'@; put 'aC5taW4odGhpcy5mcm9tLnJvdyx0aGlzLnRvLnJvdyksTWF0aC5tYXgodGhpcy5mcm9tLmNvbCx0aGlzLnRvLmNvbCkpLm5vcm1hbGl6ZSgpfWdldFRvcFJpZ2h0Q29ybmVyKCl7cmV0dXJuIFkyKE5kLHRoaXMpP3RoaXMuZ2V0VG9wU3RhcnRDb3JuZXIoKTp0aGlzLmdldFRvcEVuZENvcm5l'@; put 'cigpfWdldEJvdHRvbVN0YXJ0Q29ybmVyKCl7cmV0dXJuIHRoaXMuX2NyZWF0ZUNlbGxDb29yZHMoTWF0aC5tYXgodGhpcy5mcm9tLnJvdyx0aGlzLnRvLnJvdyksTWF0aC5taW4odGhpcy5mcm9tLmNvbCx0aGlzLnRvLmNvbCkpLm5vcm1hbGl6ZSgpfWdldEJvdHRvbUxlZnRDb3JuZXIoKXty'@; put 'ZXR1cm4gWTIoTmQsdGhpcyk/dGhpcy5nZXRCb3R0b21FbmRDb3JuZXIoKTp0aGlzLmdldEJvdHRvbVN0YXJ0Q29ybmVyKCl9Z2V0T3V0ZXJUb3BTdGFydENvcm5lcigpe3JldHVybiB0aGlzLl9jcmVhdGVDZWxsQ29vcmRzKE1hdGgubWluKHRoaXMuZnJvbS5yb3csdGhpcy50by5yb3cpLE1h'@; put 'dGgubWluKHRoaXMuZnJvbS5jb2wsdGhpcy50by5jb2wpKX1nZXRPdXRlclRvcExlZnRDb3JuZXIoKXtyZXR1cm4gWTIoTmQsdGhpcyk/dGhpcy5nZXRPdXRlclRvcEVuZENvcm5lcigpOnRoaXMuZ2V0T3V0ZXJUb3BTdGFydENvcm5lcigpfWdldE91dGVyQm90dG9tRW5kQ29ybmVyKCl7cmV0'@; put 'dXJuIHRoaXMuX2NyZWF0ZUNlbGxDb29yZHMoTWF0aC5tYXgodGhpcy5mcm9tLnJvdyx0aGlzLnRvLnJvdyksTWF0aC5tYXgodGhpcy5mcm9tLmNvbCx0aGlzLnRvLmNvbCkpfWdldE91dGVyQm90dG9tUmlnaHRDb3JuZXIoKXtyZXR1cm4gWTIoTmQsdGhpcyk/dGhpcy5nZXRPdXRlckJvdHRv'@; put 'bVN0YXJ0Q29ybmVyKCk6dGhpcy5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpfWdldE91dGVyVG9wRW5kQ29ybmVyKCl7cmV0dXJuIHRoaXMuX2NyZWF0ZUNlbGxDb29yZHMoTWF0aC5taW4odGhpcy5mcm9tLnJvdyx0aGlzLnRvLnJvdyksTWF0aC5tYXgodGhpcy5mcm9tLmNvbCx0aGlzLnRv'@; put 'LmNvbCkpfWdldE91dGVyVG9wUmlnaHRDb3JuZXIoKXtyZXR1cm4gWTIoTmQsdGhpcyk/dGhpcy5nZXRPdXRlclRvcFN0YXJ0Q29ybmVyKCk6dGhpcy5nZXRPdXRlclRvcEVuZENvcm5lcigpfWdldE91dGVyQm90dG9tU3RhcnRDb3JuZXIoKXtyZXR1cm4gdGhpcy5fY3JlYXRlQ2VsbENvb3Jk'@; put 'cyhNYXRoLm1heCh0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KSxNYXRoLm1pbih0aGlzLmZyb20uY29sLHRoaXMudG8uY29sKSl9Z2V0T3V0ZXJCb3R0b21MZWZ0Q29ybmVyKCl7cmV0dXJuIFkyKE5kLHRoaXMpP3RoaXMuZ2V0T3V0ZXJCb3R0b21FbmRDb3JuZXIoKTp0aGlzLmdldE91dGVy'@; put 'Qm90dG9tU3RhcnRDb3JuZXIoKX1pc0Nvcm5lcihsKXtyZXR1cm4gbC5pc0VxdWFsKHRoaXMuZ2V0T3V0ZXJUb3BMZWZ0Q29ybmVyKCkpfHxsLmlzRXF1YWwodGhpcy5nZXRPdXRlclRvcFJpZ2h0Q29ybmVyKCkpfHxsLmlzRXF1YWwodGhpcy5nZXRPdXRlckJvdHRvbUxlZnRDb3JuZXIoKSl8'@; put 'fGwuaXNFcXVhbCh0aGlzLmdldE91dGVyQm90dG9tUmlnaHRDb3JuZXIoKSl9Z2V0T3Bwb3NpdGVDb3JuZXIobCl7cmV0dXJuIGwgaW5zdGFuY2VvZiBjUCYmKGwuaXNFcXVhbCh0aGlzLmdldE91dGVyQm90dG9tRW5kQ29ybmVyKCkpP3RoaXMuZ2V0T3V0ZXJUb3BTdGFydENvcm5lcigpOmwu'@; put 'aXNFcXVhbCh0aGlzLmdldE91dGVyVG9wU3RhcnRDb3JuZXIoKSk/dGhpcy5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpOmwuaXNFcXVhbCh0aGlzLmdldE91dGVyVG9wRW5kQ29ybmVyKCkpP3RoaXMuZ2V0T3V0ZXJCb3R0b21TdGFydENvcm5lcigpOmwuaXNFcXVhbCh0aGlzLmdldE91dGVy'@; put 'Qm90dG9tU3RhcnRDb3JuZXIoKSk/dGhpcy5nZXRPdXRlclRvcEVuZENvcm5lcigpOnZvaWQgMCl9Z2V0Qm9yZGVyc1NoYXJlZFdpdGgobCl7aWYoIXRoaXMuaW5jbHVkZXNSYW5nZShsKSlyZXR1cm5bXTtjb25zdCBhX3RvcD1NYXRoLm1pbih0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KSxh'@; put 'X2JvdHRvbT1NYXRoLm1heCh0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KSxhX2xlZnQ9TWF0aC5taW4odGhpcy5mcm9tLmNvbCx0aGlzLnRvLmNvbCksYV9yaWdodD1NYXRoLm1heCh0aGlzLmZyb20uY29sLHRoaXMudG8uY29sKSxkX3RvcD1NYXRoLm1pbihsLmZyb20ucm93LGwudG8ucm93'@; put 'KSxkX2JvdHRvbT1NYXRoLm1heChsLmZyb20ucm93LGwudG8ucm93KSxkX2xlZnQ9TWF0aC5taW4obC5mcm9tLmNvbCxsLnRvLmNvbCksZF9yaWdodD1NYXRoLm1heChsLmZyb20uY29sLGwudG8uY29sKSxoPVtdO3JldHVybiBhX3RvcD09PWRfdG9wJiZoLnB1c2goInRvcCIpLGFfcmlnaHQ9'@; put 'PT1kX3JpZ2h0JiZoLnB1c2goWTIoTmQsdGhpcyk/ImxlZnQiOiJyaWdodCIpLGFfYm90dG9tPT09ZF9ib3R0b20mJmgucHVzaCgiYm90dG9tIiksYV9sZWZ0PT09ZF9sZWZ0JiZoLnB1c2goWTIoTmQsdGhpcyk/InJpZ2h0IjoibGVmdCIpLGh9Z2V0SW5uZXIoKXtjb25zdCBsPXRoaXMuZ2V0'@; put 'T3V0ZXJUb3BTdGFydENvcm5lcigpLGE9dGhpcy5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpLGQ9W107Zm9yKGxldCBoPWwucm93O2g8PWEucm93O2grKylmb3IobGV0IGY9bC5jb2w7Zjw9YS5jb2w7ZisrKSh0aGlzLmZyb20ucm93IT09aHx8dGhpcy5mcm9tLmNvbCE9PWYpJiYodGhpcy50'@; put 'by5yb3chPT1ofHx0aGlzLnRvLmNvbCE9PWYpJiZkLnB1c2godGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhoLGYpKTtyZXR1cm4gZH1nZXRBbGwoKXtjb25zdCBsPXRoaXMuZ2V0T3V0ZXJUb3BTdGFydENvcm5lcigpLGE9dGhpcy5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpLGQ9W107Zm9yKGxl'@; put 'dCBoPWwucm93O2g8PWEucm93O2grKylmb3IobGV0IGY9bC5jb2w7Zjw9YS5jb2w7ZisrKWQucHVzaChsLnJvdz09PWgmJmwuY29sPT09Zj9sOmEucm93PT09aCYmYS5jb2w9PT1mP2E6dGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhoLGYpKTtyZXR1cm4gZH1mb3JBbGwobCl7Y29uc3QgYT10aGlz'@; put 'LmdldE91dGVyVG9wU3RhcnRDb3JuZXIoKSxkPXRoaXMuZ2V0T3V0ZXJCb3R0b21FbmRDb3JuZXIoKTtmb3IobGV0IGg9YS5yb3c7aDw9ZC5yb3c7aCsrKWZvcihsZXQgZj1hLmNvbDtmPD1kLmNvbDtmKyspaWYoITE9PT1sKGgsZikpcmV0dXJufWNsb25lKCl7cmV0dXJuIG5ldyBnSyh0aGlz'@; put 'LmhpZ2hsaWdodCx0aGlzLmZyb20sdGhpcy50byxZMihOZCx0aGlzKSl9dG9PYmplY3QoKXtyZXR1cm57ZnJvbTp0aGlzLmZyb20udG9PYmplY3QoKSx0bzp0aGlzLnRvLnRvT2JqZWN0KCl9fV9jcmVhdGVDZWxsQ29vcmRzKGwsYSl7cmV0dXJuIG5ldyBjUChsLGEsWTIoTmQsdGhpcykpfX1j'@; put 'b25zdCBtSz1nSztmdW5jdGlvbiBHMihjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gZWV0KGMpe3ZhciBsPWZ1bmN0aW9uIHRldChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEu'@; put 'Y2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3Ry'@; put 'aW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9Y2xhc3Mgdkt7Z2V0IGV2ZW50TWFuYWdlcigpe3Jl'@; put 'dHVybiBuZXcgWjIodGhpcyl9Y29uc3RydWN0b3IobCxhKXtHMih0aGlzLCJ3dFRhYmxlIix2b2lkIDApLEcyKHRoaXMsInd0U2Nyb2xsIix2b2lkIDApLEcyKHRoaXMsInd0Vmlld3BvcnQiLHZvaWQgMCksRzIodGhpcywid3RPdmVybGF5cyIsdm9pZCAwKSxHMih0aGlzLCJzZWxlY3Rpb25N'@; put 'YW5hZ2VyIix2b2lkIDApLEcyKHRoaXMsInd0RXZlbnQiLHZvaWQgMCksRzIodGhpcywiZ3VpZCIsYHd0XyR7ZyQoKX1gKSxHMih0aGlzLCJkcmF3SW50ZXJydXB0ZWQiLCExKSxHMih0aGlzLCJkcmF3biIsITEpLEcyKHRoaXMsImFjdGl2ZU92ZXJsYXlOYW1lIiwibWFzdGVyIiksRzIodGhp'@; put 'cywiZG9tQmluZGluZ3MiLHZvaWQgMCksRzIodGhpcywid3RTZXR0aW5ncyIsdm9pZCAwKSx0aGlzLmRvbUJpbmRpbmdzPXtyb290VGFibGU6bCxyb290RG9jdW1lbnQ6bC5vd25lckRvY3VtZW50LHJvb3RXaW5kb3c6bC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fSx0aGlzLnd0U2V0dGlu'@; put 'Z3M9YSx0aGlzLnd0U2Nyb2xsPW5ldyBaUWUodGhpcy5jcmVhdGVTY3JvbGxEYW8oKSl9ZmluZE9yaWdpbmFsSGVhZGVycygpe2NvbnN0IGw9W107aWYodGhpcy53dFRhYmxlLlRIRUFELmNoaWxkTm9kZXMubGVuZ3RoJiZ0aGlzLnd0VGFibGUuVEhFQUQuY2hpbGROb2Rlc1swXS5jaGlsZE5v'@; put 'ZGVzLmxlbmd0aCl7Zm9yKGxldCBhPTAsZD10aGlzLnd0VGFibGUuVEhFQUQuY2hpbGROb2Rlc1swXS5jaGlsZE5vZGVzLmxlbmd0aDthPGQ7YSsrKWwucHVzaCh0aGlzLnd0VGFibGUuVEhFQUQuY2hpbGROb2Rlc1swXS5jaGlsZE5vZGVzW2FdLmlubmVySFRNTCk7dGhpcy53dFNldHRpbmdz'@; put 'LmdldFNldHRpbmcoImNvbHVtbkhlYWRlcnMiKS5sZW5ndGh8fHRoaXMud3RTZXR0aW5ncy51cGRhdGUoImNvbHVtbkhlYWRlcnMiLFtmdW5jdGlvbihhLGQpe0xtKGQsbFthXSl9XSl9fWNyZWF0ZUNlbGxDb29yZHMobCxhKXtyZXR1cm4gbmV3IGNQKGwsYSx0aGlzLnd0U2V0dGluZ3MuZ2V0'@; put 'U2V0dGluZygicnRsTW9kZSIpKX1jcmVhdGVDZWxsUmFuZ2UobCxhLGQpe3JldHVybiBuZXcgbUsobCxhLGQsdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInJ0bE1vZGUiKSl9ZHJhdygpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVu'@; put 'dHNbMF07cmV0dXJuIHRoaXMuZHJhd0ludGVycnVwdGVkPSExLCF0aGlzLnd0VGFibGUuaXNWaXNpYmxlKCl8fGFmZSh0aGlzLnd0VGFibGUud3RSb290RWxlbWVudC5wYXJlbnROb2RlKT90aGlzLmRyYXdJbnRlcnJ1cHRlZD0hMDp0aGlzLnd0VGFibGUuZHJhdyhsKSx0aGlzfWdldENlbGwo'@; put 'bCl7aWYoIShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdKSlyZXR1cm4gdGhpcy53dFRhYmxlLmdldENlbGwobCk7Y29uc3QgZD10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIiksaD10aGlzLnd0U2V0dGluZ3MuZ2V0'@; put 'U2V0dGluZygiZml4ZWRSb3dzVG9wIiksZj10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIiksdj10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRDb2x1bW5zU3RhcnQiKTtpZihsLnJvdzxoJiZsLmNvbDx2KXJldHVybiB0aGlzLnd0T3ZlcmxheXMu'@; put 'dG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LmNsb25lLnd0VGFibGUuZ2V0Q2VsbChsKTtpZihsLnJvdzxoKXJldHVybiB0aGlzLnd0T3ZlcmxheXMudG9wT3ZlcmxheS5jbG9uZS53dFRhYmxlLmdldENlbGwobCk7aWYobC5jb2w8diYmbC5yb3c+PWQtZil7aWYodGhpcy53dE92ZXJsYXlz'@; put 'LmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheSYmdGhpcy53dE92ZXJsYXlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5jbG9uZSlyZXR1cm4gdGhpcy53dE92ZXJsYXlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5jbG9uZS53dFRhYmxlLmdldENlbGwobCl9'@; put 'ZWxzZXtpZihsLmNvbDx2KXJldHVybiB0aGlzLnd0T3ZlcmxheXMuaW5saW5lU3RhcnRPdmVybGF5LmNsb25lLnd0VGFibGUuZ2V0Q2VsbChsKTtpZihsLnJvdzxkJiZsLnJvdz49ZC1mJiZ0aGlzLnd0T3ZlcmxheXMuYm90dG9tT3ZlcmxheSYmdGhpcy53dE92ZXJsYXlzLmJvdHRvbU92ZXJs'@; put 'YXkuY2xvbmUpcmV0dXJuIHRoaXMud3RPdmVybGF5cy5ib3R0b21PdmVybGF5LmNsb25lLnd0VGFibGUuZ2V0Q2VsbChsKX1yZXR1cm4gdGhpcy53dFRhYmxlLmdldENlbGwobCl9c2Nyb2xsVmlld3BvcnQobCxhLGQpe3JldHVybiB0aGlzLnd0U2Nyb2xsLnNjcm9sbFZpZXdwb3J0KGwsYSxk'@; put 'KX1zY3JvbGxWaWV3cG9ydEhvcml6b250YWxseShsLGEpe3JldHVybiB0aGlzLnd0U2Nyb2xsLnNjcm9sbFZpZXdwb3J0SG9yaXpvbnRhbGx5KGwsYSl9c2Nyb2xsVmlld3BvcnRWZXJ0aWNhbGx5KGwsYSl7cmV0dXJuIHRoaXMud3RTY3JvbGwuc2Nyb2xsVmlld3BvcnRWZXJ0aWNhbGx5KGws'@; put 'YSl9Z2V0Vmlld3BvcnQoKXtyZXR1cm5bdGhpcy53dFRhYmxlLmdldEZpcnN0VmlzaWJsZVJvdygpLHRoaXMud3RUYWJsZS5nZXRGaXJzdFZpc2libGVDb2x1bW4oKSx0aGlzLnd0VGFibGUuZ2V0TGFzdFZpc2libGVSb3coKSx0aGlzLnd0VGFibGUuZ2V0TGFzdFZpc2libGVDb2x1bW4oKV19'@; put 'ZGVzdHJveSgpe3RoaXMud3RPdmVybGF5cy5kZXN0cm95KCksdGhpcy53dEV2ZW50LmRlc3Ryb3koKX1jcmVhdGVTY3JvbGxEYW8oKXtjb25zdCBsPXRoaXM7cmV0dXJue2dldCBkcmF3bigpe3JldHVybiBsLmRyYXdufSxnZXQgdG9wT3ZlcmxheSgpe3JldHVybiBsLnd0T3ZlcmxheXMudG9w'@; put 'T3ZlcmxheX0sZ2V0IGlubGluZVN0YXJ0T3ZlcmxheSgpe3JldHVybiBsLnd0T3ZlcmxheXMuaW5saW5lU3RhcnRPdmVybGF5fSxnZXQgd3RUYWJsZSgpe3JldHVybiBsLnd0VGFibGV9LGdldCB3dFZpZXdwb3J0KCl7cmV0dXJuIGwud3RWaWV3cG9ydH0sZ2V0IHd0U2V0dGluZ3MoKXtyZXR1'@; put 'cm4gbC53dFNldHRpbmdzfSxnZXQgcm9vdFdpbmRvdygpe3JldHVybiBsLmRvbUJpbmRpbmdzLnJvb3RXaW5kb3d9LGdldCB0b3RhbFJvd3MoKXtyZXR1cm4gbC53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsUm93cyIpfSxnZXQgdG90YWxDb2x1bW5zKCl7cmV0dXJuIGwud3RTZXR0aW5n'@; put 'cy5nZXRTZXR0aW5nKCJ0b3RhbENvbHVtbnMiKX0sZ2V0IGZpeGVkUm93c1RvcCgpe3JldHVybiBsLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRSb3dzVG9wIil9LGdldCBmaXhlZFJvd3NCb3R0b20oKXtyZXR1cm4gbC53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkUm93c0JvdHRv'@; put 'bSIpfSxnZXQgZml4ZWRDb2x1bW5zU3RhcnQoKXtyZXR1cm4gbC53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkQ29sdW1uc1N0YXJ0Iil9fX1nZXRUYWJsZURhbygpe2NvbnN0IGw9dGhpcztyZXR1cm57Z2V0IHdvdCgpe3JldHVybiBsfSxnZXQgcGFyZW50VGFibGVPZmZzZXQoKXtyZXR1'@; put 'cm4gbC5jbG9uZVNvdXJjZS53dFRhYmxlLnRhYmxlT2Zmc2V0fSxnZXQgY2xvbmVTb3VyY2UoKXtyZXR1cm4gbC5jbG9uZVNvdXJjZX0sZ2V0IHdvcmtzcGFjZVdpZHRoKCl7cmV0dXJuIGwud3RWaWV3cG9ydC5nZXRXb3Jrc3BhY2VXaWR0aCgpfSxnZXQgd3RWaWV3cG9ydCgpe3JldHVybiBs'@; put 'Lnd0Vmlld3BvcnR9LGdldCB3dE92ZXJsYXlzKCl7cmV0dXJuIGwud3RPdmVybGF5c30sZ2V0IHNlbGVjdGlvbk1hbmFnZXIoKXtyZXR1cm4gbC5zZWxlY3Rpb25NYW5hZ2VyfSxnZXQgZHJhd24oKXtyZXR1cm4gbC5kcmF3bn0sc2V0IGRyYXduKGEpe2wuZHJhd249YX0sZ2V0IHd0VGFibGUo'@; put 'KXtyZXR1cm4gbC53dFRhYmxlfSxnZXQgc3RhcnRDb2x1bW5SZW5kZXJlZCgpe3JldHVybiBsLnd0Vmlld3BvcnQuY29sdW1uc1JlbmRlckNhbGN1bGF0b3Iuc3RhcnRDb2x1bW59LGdldCBzdGFydENvbHVtblZpc2libGUoKXtyZXR1cm4gbC53dFZpZXdwb3J0LmNvbHVtbnNWaXNpYmxlQ2Fs'@; put 'Y3VsYXRvci5zdGFydENvbHVtbn0sZ2V0IHN0YXJ0Q29sdW1uUGFydGlhbGx5VmlzaWJsZSgpe3JldHVybiBsLnd0Vmlld3BvcnQuY29sdW1uc1BhcnRpYWxseVZpc2libGVDYWxjdWxhdG9yLnN0YXJ0Q29sdW1ufSxnZXQgZW5kQ29sdW1uUmVuZGVyZWQoKXtyZXR1cm4gbC53dFZpZXdwb3J0'@; put 'LmNvbHVtbnNSZW5kZXJDYWxjdWxhdG9yLmVuZENvbHVtbn0sZ2V0IGVuZENvbHVtblZpc2libGUoKXtyZXR1cm4gbC53dFZpZXdwb3J0LmNvbHVtbnNWaXNpYmxlQ2FsY3VsYXRvci5lbmRDb2x1bW59LGdldCBlbmRDb2x1bW5QYXJ0aWFsbHlWaXNpYmxlKCl7cmV0dXJuIGwud3RWaWV3cG9y'@; put 'dC5jb2x1bW5zUGFydGlhbGx5VmlzaWJsZUNhbGN1bGF0b3IuZW5kQ29sdW1ufSxnZXQgY291bnRDb2x1bW5zUmVuZGVyZWQoKXtyZXR1cm4gbC53dFZpZXdwb3J0LmNvbHVtbnNSZW5kZXJDYWxjdWxhdG9yLmNvdW50fSxnZXQgY291bnRDb2x1bW5zVmlzaWJsZSgpe3JldHVybiBsLnd0Vmll'@; put 'd3BvcnQuY29sdW1uc1Zpc2libGVDYWxjdWxhdG9yLmNvdW50fSxnZXQgc3RhcnRSb3dSZW5kZXJlZCgpe3JldHVybiBsLnd0Vmlld3BvcnQucm93c1JlbmRlckNhbGN1bGF0b3Iuc3RhcnRSb3d9LGdldCBzdGFydFJvd1Zpc2libGUoKXtyZXR1cm4gbC53dFZpZXdwb3J0LnJvd3NWaXNpYmxl'@; put 'Q2FsY3VsYXRvci5zdGFydFJvd30sZ2V0IHN0YXJ0Um93UGFydGlhbGx5VmlzaWJsZSgpe3JldHVybiBsLnd0Vmlld3BvcnQucm93c1BhcnRpYWxseVZpc2libGVDYWxjdWxhdG9yLnN0YXJ0Um93fSxnZXQgZW5kUm93UmVuZGVyZWQoKXtyZXR1cm4gbC53dFZpZXdwb3J0LnJvd3NSZW5kZXJD'@; put 'YWxjdWxhdG9yLmVuZFJvd30sZ2V0IGVuZFJvd1Zpc2libGUoKXtyZXR1cm4gbC53dFZpZXdwb3J0LnJvd3NWaXNpYmxlQ2FsY3VsYXRvci5lbmRSb3d9LGdldCBlbmRSb3dQYXJ0aWFsbHlWaXNpYmxlKCl7cmV0dXJuIGwud3RWaWV3cG9ydC5yb3dzUGFydGlhbGx5VmlzaWJsZUNhbGN1bGF0'@; put 'b3IuZW5kUm93fSxnZXQgY291bnRSb3dzUmVuZGVyZWQoKXtyZXR1cm4gbC53dFZpZXdwb3J0LnJvd3NSZW5kZXJDYWxjdWxhdG9yLmNvdW50fSxnZXQgY291bnRSb3dzVmlzaWJsZSgpe3JldHVybiBsLnd0Vmlld3BvcnQucm93c1Zpc2libGVDYWxjdWxhdG9yLmNvdW50fSxnZXQgY29sdW1u'@; put 'SGVhZGVycygpe3JldHVybiBsLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiY29sdW1uSGVhZGVycyIpfSxnZXQgcm93SGVhZGVycygpe3JldHVybiBsLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicm93SGVhZGVycyIpfX19fWZ1bmN0aW9uIGkzZShjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gbmV0'@; put 'KGMpe3ZhciBsPWZ1bmN0aW9uIHJldChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBk'@; put 'O3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmpl'@; put 'Y3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9Y2xhc3MgaWV0IGV4dGVuZHMgdkt7Y29uc3RydWN0b3IobCxhLGQpe3N1cGVyKGwsYSksaTNlKHRoaXMsImNsb25lU291cmNlIix2b2lkIDAp'@; put 'LGkzZSh0aGlzLCJjbG9uZU92ZXJsYXkiLHZvaWQgMCk7Y29uc3QgaD10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZmFjYWRlIix0aGlzKTt0aGlzLmNsb25lU291cmNlPWQuc291cmNlLHRoaXMuY2xvbmVPdmVybGF5PWQub3ZlcmxheSx0aGlzLnd0VGFibGU9dGhpcy5jbG9uZU92ZXJs'@; put 'YXkuY3JlYXRlVGFibGUodGhpcy5nZXRUYWJsZURhbygpLGgsdGhpcy5kb21CaW5kaW5ncyx0aGlzLnd0U2V0dGluZ3MpLHRoaXMud3RWaWV3cG9ydD1kLnZpZXdwb3J0LHRoaXMuc2VsZWN0aW9uTWFuYWdlcj1kLnNlbGVjdGlvbk1hbmFnZXIsdGhpcy53dEV2ZW50PW5ldyBIZmUoaCx0aGlz'@; put 'LmRvbUJpbmRpbmdzLHRoaXMud3RTZXR0aW5ncyx0aGlzLmV2ZW50TWFuYWdlcix0aGlzLnd0VGFibGUsdGhpcy5zZWxlY3Rpb25NYW5hZ2VyLGQuZXZlbnQpLHRoaXMuZmluZE9yaWdpbmFsSGVhZGVycygpfX1jbGFzcyBWRXtjb25zdHJ1Y3RvcihsLGEsZCxoLGYpeyhmdW5jdGlvbiBhZXQo'@; put 'YyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIHNldChjKXt2YXIgbD1mdW5jdGlvbiBvZXQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lm'@; put 'KCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10'@; put 'eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfSkodGhpcywid3RTZXR0aW5ncyIsbnVsbCksVHAodGhpcywid290IixsLHt3cml0YWJsZToh'@; put 'MX0pLHRoaXMuZG9tQmluZGluZ3M9Zix0aGlzLmZhY2FkZUdldHRlcj1hLHRoaXMud3RTZXR0aW5ncz1oO2NvbnN0e1RBQkxFOnYsaGlkZXI6TSxzcHJlYWRlcjpJLGhvbGRlcjpHLHd0Um9vdEVsZW1lbnQ6cmV9PXRoaXMud290Lnd0VGFibGU7dGhpcy5pbnN0YW5jZT10aGlzLndvdCx0aGlz'@; put 'LnR5cGU9ZCx0aGlzLm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50PW51bGwsdGhpcy5UQUJMRT12LHRoaXMuaGlkZXI9TSx0aGlzLnNwcmVhZGVyPUksdGhpcy5ob2xkZXI9Ryx0aGlzLnd0Um9vdEVsZW1lbnQ9cmUsdGhpcy50cmltbWluZ0NvbnRhaW5lcj1vXyh0aGlzLmhpZGVyLnBhcmVu'@; put 'dE5vZGUucGFyZW50Tm9kZSksdGhpcy5uZWVkRnVsbFJlbmRlcj10aGlzLnNob3VsZEJlUmVuZGVyZWQoKSx0aGlzLmNsb25lPXRoaXMubWFrZUNsb25lKCl9aGFzUmVuZGVyaW5nU3RhdGVDaGFuZ2VkKCl7cmV0dXJuIHRoaXMubmVlZEZ1bGxSZW5kZXIhPT10aGlzLnNob3VsZEJlUmVuZGVy'@; put 'ZWQoKX11cGRhdGVTdGF0ZU9mUmVuZGVyaW5nKGwpeyJiZWZvcmUiPT09bCYmdGhpcy5zaG91bGRCZVJlbmRlcmVkKCk/dGhpcy5uZWVkRnVsbFJlbmRlcj0hMDoiYWZ0ZXIiPT09bCYmIXRoaXMuc2hvdWxkQmVSZW5kZXJlZCgpJiYodGhpcy5uZWVkRnVsbFJlbmRlcj0hMSl9c2hvdWxkQmVS'@; put 'ZW5kZXJlZCgpe3JldHVybiEwfXVwZGF0ZVRyaW1taW5nQ29udGFpbmVyKCl7dGhpcy50cmltbWluZ0NvbnRhaW5lcj1vXyh0aGlzLmhpZGVyLnBhcmVudE5vZGUucGFyZW50Tm9kZSl9dXBkYXRlTWFpblNjcm9sbGFibGVFbGVtZW50KCl7Y29uc3R7d3RUYWJsZTpsfT10aGlzLndvdCx7cm9v'@; put 'dFdpbmRvdzphfT10aGlzLmRvbUJpbmRpbmdzO3RoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQ9ImhpZGRlbiI9PT1hLmdldENvbXB1dGVkU3R5bGUobC53dFJvb3RFbGVtZW50LnBhcmVudE5vZGUpLmdldFByb3BlcnR5VmFsdWUoIm92ZXJmbG93Iik/dGhpcy53b3Qud3RUYWJsZS5o'@; put 'b2xkZXI6RUUobC5UQUJMRSl9Z2V0UmVsYXRpdmVDZWxsUG9zaXRpb24obCxhLGQpe2lmKCExPT09dGhpcy5jbG9uZS53dFRhYmxlLmhvbGRlci5jb250YWlucyhsKSlyZXR1cm4gdm9pZCBZbyhgVGhlIHByb3ZpZGVkIGVsZW1lbnQgaXMgbm90IGEgY2hpbGQgb2YgdGhlICR7dGhpcy50eXBl'@; put 'fSBvdmVybGF5YCk7Y29uc3QgaD10aGlzLm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50PT09dGhpcy5kb21CaW5kaW5ncy5yb290V2luZG93LGY9ZDx0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRDb2x1bW5zU3RhcnQiKSx2PWE8dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmco'@; put 'ImZpeGVkUm93c1RvcCIpLE09YT49dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsUm93cyIpLXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmaXhlZFJvd3NCb3R0b20iKSxJPXRoaXMuY2xvbmUud3RUYWJsZS5zcHJlYWRlcixHPXtzdGFydDp0aGlzLmdldFJlbGF0aXZlU3Rh'@; put 'cnRQb3NpdGlvbihJKSx0b3A6SS5vZmZzZXRUb3B9LHJlPXtzdGFydDp0aGlzLmdldFJlbGF0aXZlU3RhcnRQb3NpdGlvbihsKSx0b3A6bC5vZmZzZXRUb3B9O2xldCB1ZT1udWxsO3JldHVybiB1ZT1oP3RoaXMuZ2V0UmVsYXRpdmVDZWxsUG9zaXRpb25XaXRoaW5XaW5kb3codixmLHJlLEcp'@; put 'OnRoaXMuZ2V0UmVsYXRpdmVDZWxsUG9zaXRpb25XaXRoaW5Ib2xkZXIodixNLGYscmUsRyksdWV9Z2V0UmVsYXRpdmVTdGFydFBvc2l0aW9uKGwpe3JldHVybiB0aGlzLmlzUnRsKCk/bC5vZmZzZXRQYXJlbnQub2Zmc2V0V2lkdGgtbC5vZmZzZXRMZWZ0LWwub2Zmc2V0V2lkdGg6bC5vZmZz'@; put 'ZXRMZWZ0fWdldFJlbGF0aXZlQ2VsbFBvc2l0aW9uV2l0aGluV2luZG93KGwsYSxkLGgpe2NvbnN0IGY9dGhpcy53b3Qud3RUYWJsZS53dFJvb3RFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2xldCB2PTAsTT0wO2lmKGEpe2xldCBJPWYubGVmdDt0aGlzLmlzUnRsKCkmJihJPXRo'@; put 'aXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdy5pbm5lcldpZHRoLShmLmxlZnQrZi53aWR0aCtkMCgpKSksdj1JPD0wPy0xKkk6MH1lbHNlIHY9aC5zdGFydDtyZXR1cm4gTT1sP3RoaXMuY2xvbmUud3RUYWJsZS5UQUJMRS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AtZi50b3A6aC50b3As'@; put 'e3N0YXJ0OmQuc3RhcnQrdix0b3A6ZC50b3ArTX19Z2V0UmVsYXRpdmVDZWxsUG9zaXRpb25XaXRoaW5Ib2xkZXIobCxhLGQsaCxmKXtjb25zdCB2X2hvcml6b250YWw9dGhpcy53b3Qud3RPdmVybGF5cy5pbmxpbmVTdGFydE92ZXJsYXkuZ2V0U2Nyb2xsUG9zaXRpb24oKSx2X3ZlcnRpY2Fs'@; put 'PXRoaXMud290Lnd0T3ZlcmxheXMudG9wT3ZlcmxheS5nZXRTY3JvbGxQb3NpdGlvbigpO2xldCBNPTAsST0wO2lmKGR8fChNPXZfaG9yaXpvbnRhbC1mLnN0YXJ0KSxhKXtjb25zdCBHPXRoaXMud290Lnd0VGFibGUud3RSb290RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtJPS0x'@; put 'KnRoaXMuY2xvbmUud3RUYWJsZS5UQUJMRS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3ArRy50b3B9ZWxzZSBsfHwoST12X3ZlcnRpY2FsLWYudG9wKTtyZXR1cm57c3RhcnQ6aC5zdGFydC1NLHRvcDpoLnRvcC1JfX1tYWtlQ2xvbmUoKXtpZigtMT09PSRmZS5pbmRleE9mKHRoaXMudHlw'@; put 'ZSkpdGhyb3cgbmV3IEVycm9yKGBDbG9uZSB0eXBlICIke3RoaXMudHlwZX0iIGlzIG5vdCBzdXBwb3J0ZWQuYCk7Y29uc3R7d3RUYWJsZTpsLHd0U2V0dGluZ3M6YX09dGhpcy53b3Qse3Jvb3REb2N1bWVudDpkLHJvb3RXaW5kb3c6aH09dGhpcy5kb21CaW5kaW5ncyxmPWQuY3JlYXRlRWxl'@; put 'bWVudCgiZGl2Iiksdj1kLmNyZWF0ZUVsZW1lbnQoInRhYmxlIiksTT1sLnd0Um9vdEVsZW1lbnQucGFyZW50Tm9kZTtmLmNsYXNzTmFtZT1gJHtJUWUuZ2V0KHRoaXMudHlwZSl9IGhhbmRzb250YWJsZWAsZi5zZXRBdHRyaWJ1dGUoImRpciIsdGhpcy5pc1J0bCgpPyJydGwiOiJsdHIiKSxm'@; put 'LnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsZi5zdHlsZS50b3A9MCxmLnN0eWxlLm92ZXJmbG93PSJ2aXNpYmxlIix0aGlzLmlzUnRsKCk/Zi5zdHlsZS5yaWdodD0wOmYuc3R5bGUubGVmdD0wLGEuZ2V0U2V0dGluZygiYXJpYVRhZ3MiKSYmbXMoZixbWyJyb2xlIiwicHJlc2VudGF0aW9u'@; put 'Il1dKSx2LmNsYXNzTmFtZT1sLlRBQkxFLmNsYXNzTmFtZSxsLlRBQkxFLmdldEF0dHJpYnV0ZSgicm9sZSIpJiZ2LnNldEF0dHJpYnV0ZSgicm9sZSIsbC5UQUJMRS5nZXRBdHRyaWJ1dGUoInJvbGUiKSksZi5hcHBlbmRDaGlsZCh2KSxNLmFwcGVuZENoaWxkKGYpO2NvbnN0IEc9dGhpcy53'@; put 'dFNldHRpbmdzLmdldFNldHRpbmcoInByZXZlbnRPdmVyZmxvdyIpO3JldHVybiB0aGlzLm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50PSEwPT09R3x8Imhvcml6b250YWwiPT09RyYmdGhpcy50eXBlPT09JDd8fCJ2ZXJ0aWNhbCI9PT1HJiZ0aGlzLnR5cGU9PT1LNz9oOiJoaWRkZW4iPT09'@; put 'aC5nZXRDb21wdXRlZFN0eWxlKE0pLmdldFByb3BlcnR5VmFsdWUoIm92ZXJmbG93Iik/bC5ob2xkZXI6RUUobC5UQUJMRSksbmV3IGlldCh2LHRoaXMud3RTZXR0aW5ncyx7c291cmNlOnRoaXMud290LG92ZXJsYXk6dGhpcyx2aWV3cG9ydDp0aGlzLndvdC53dFZpZXdwb3J0LGV2ZW50OnRo'@; put 'aXMud290Lnd0RXZlbnQsc2VsZWN0aW9uTWFuYWdlcjp0aGlzLndvdC5zZWxlY3Rpb25NYW5hZ2VyfSl9cmVmcmVzaCgpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07aWYodGhpcy5uZWVkRnVsbFJlbmRlcil7Y29uc3QgYT10'@; put 'aGlzLmNsb25lLmNsb25lU291cmNlO2EuYWN0aXZlT3ZlcmxheU5hbWU9dGhpcy5jbG9uZS53dFRhYmxlLm5hbWUsdGhpcy5jbG9uZS5kcmF3KGwpLGEuYWN0aXZlT3ZlcmxheU5hbWU9Im1hc3RlciJ9fXJlc2V0KCl7Y29uc3QgbD10aGlzLmNsb25lLnd0VGFibGUuaG9sZGVyO1tsLnN0eWxl'@; put 'LHRoaXMuY2xvbmUud3RUYWJsZS5oaWRlci5zdHlsZSxsLnBhcmVudE5vZGUuc3R5bGVdLmZvckVhY2godj0+e3Yud2lkdGg9IiIsdi5oZWlnaHQ9IiJ9KX1pc1J0bCgpe3JldHVybiB0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicnRsTW9kZSIpfWRlc3Ryb3koKXt0aGlzLmNsb25lLmV2'@; put 'ZW50TWFuYWdlci5kZXN0cm95KCl9fWNvbnN0IHlLPWM9Pntjb25zdCBsPWMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJzdHlsZXNIYW5kbGVyIik7aWYobC5pc0NsYXNzaWNUaGVtZSgpKXJldHVybiBPYmplY3QuZnJlZXplKHt3aWR0aDo2LGhlaWdodDo2LGJvcmRlcldpZHRoOjEsYm9yZGVy'@; put 'U3R5bGU6InNvbGlkIixib3JkZXJDb2xvcjoiI0ZGRiJ9KTtjb25zdCBhPWwuZ2V0Q1NTVmFyaWFibGVWYWx1ZSgiY2VsbC1hdXRvZmlsbC1zaXplIiksZD1sLmdldENTU1ZhcmlhYmxlVmFsdWUoImNlbGwtYXV0b2ZpbGwtYm9yZGVyLXdpZHRoIiksaD1sLmdldENTU1ZhcmlhYmxlVmFsdWUo'@; put 'ImNlbGwtYXV0b2ZpbGwtYm9yZGVyLWNvbG9yIik7cmV0dXJuIE9iamVjdC5mcmVlemUoe3dpZHRoOmEsaGVpZ2h0OmEsYm9yZGVyV2lkdGg6ZCxib3JkZXJTdHlsZToic29saWQiLGJvcmRlckNvbG9yOmh9KX07Y2xhc3MgaGV0IGV4dGVuZHMgVkV7Y29uc3RydWN0b3IobCxhLGQsaCl7c3Vw'@; put 'ZXIobCxhLCQ3LGQsaCksZnVuY3Rpb24gY2V0KGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiB1ZXQoYyl7dmFyIGw9ZnVuY3Rpb24gZGV0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFy'@; put 'IGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShj'@; put 'LCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY30odGhpcywiY2FjaGVkRml4ZWRSb3dzVG9w'@; put 'IiwtMSksdGhpcy5jYWNoZWRGaXhlZFJvd3NUb3A9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkUm93c1RvcCIpfWNyZWF0ZVRhYmxlKCl7Zm9yKHZhciBsPWFyZ3VtZW50cy5sZW5ndGgsYT1uZXcgQXJyYXkobCksZD0wO2Q8bDtkKyspYVtkXT1hcmd1bWVudHNbZF07cmV0dXJu'@; put 'IG5ldyBIUWUoLi4uYSl9c2hvdWxkQmVSZW5kZXJlZCgpe3JldHVybiB0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygic2hvdWxkUmVuZGVyVG9wT3ZlcmxheSIpfXJlc2V0Rml4ZWRQb3NpdGlvbigpe2lmKCF0aGlzLm5lZWRGdWxsUmVuZGVyfHwhdGhpcy5zaG91bGRCZVJlbmRlcmVkKCl8'@; put 'fCF0aGlzLndvdC53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlKXJldHVybiExO2NvbnN0IGw9dGhpcy5jbG9uZS53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlLHtyb290V2luZG93OmF9PXRoaXMuZG9tQmluZGluZ3MsZD10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicHJldmVudE92ZXJm'@; put 'bG93Iik7bGV0IGg9MCxmPSExO2lmKHRoaXMudHJpbW1pbmdDb250YWluZXIhPT1hfHxkJiYidmVydGljYWwiPT09ZCloPXRoaXMuZ2V0U2Nyb2xsUG9zaXRpb24oKSxrRShsKTtlbHNle2NvbnN0e3d0VGFibGU6TX09dGhpcy53b3QsST1NLmhpZGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp'@; put 'O2Y9TWF0aC5jZWlsKEkuYm90dG9tKT09PWwub2Zmc2V0SGVpZ2h0LGg9dGhpcy5nZXRPdmVybGF5T2Zmc2V0KCksV08obCwiMHB4IixgJHtofXB4YCl9Y29uc3Qgdj10aGlzLmFkanVzdEhlYWRlckJvcmRlcnNQb3NpdGlvbihoLGYpO3JldHVybiB0aGlzLmFkanVzdEVsZW1lbnRzU2l6ZSgp'@; put 'LHZ9c2V0U2Nyb2xsUG9zaXRpb24obCl7Y29uc3R7cm9vdFdpbmRvdzphfT10aGlzLmRvbUJpbmRpbmdzLGQ9dGhpcy5tYWluVGFibGVTY3JvbGxhYmxlRWxlbWVudDtsZXQgaD0hMTtpZihkPT09YSYmbCE9PWEuc2Nyb2xsWSl7Y29uc3QgZj1hLnNjcm9sbFk7YS5zY3JvbGxUbyhVTyhhKSxs'@; put 'KSxoPWYhPT1hLnNjcm9sbFl9ZWxzZSBpZihsIT09ZC5zY3JvbGxUb3Ape2NvbnN0IGY9ZC5zY3JvbGxUb3A7ZC5zY3JvbGxUb3A9bCxoPWYhPT1kLnNjcm9sbFRvcH1yZXR1cm4gaH1vblNjcm9sbCgpe3RoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJvblNjcm9sbEhvcml6b250YWxseSIp'@; put 'fXN1bUNlbGxTaXplcyhsLGEpe2NvbnN0IGQ9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInN0eWxlc0hhbmRsZXIiKS5nZXREZWZhdWx0Um93SGVpZ2h0KCk7bGV0IGg9bCxmPTA7Zm9yKDtoPGE7KXtjb25zdCB2PXRoaXMud290Lnd0VGFibGUuZ2V0Um93SGVpZ2h0KGgpO2YrPXZvaWQg'@; put 'MD09PXY/ZDp2LGgrPTF9cmV0dXJuIGZ9YWRqdXN0RWxlbWVudHNTaXplKCl7dGhpcy51cGRhdGVUcmltbWluZ0NvbnRhaW5lcigpLHRoaXMubmVlZEZ1bGxSZW5kZXImJih0aGlzLmFkanVzdFJvb3RFbGVtZW50U2l6ZSgpLHRoaXMuYWRqdXN0Um9vdENoaWxkcmVuU2l6ZSgpKX1hZGp1c3RS'@; put 'b290RWxlbWVudFNpemUoKXtjb25zdHt3dFRhYmxlOmwsd3RWaWV3cG9ydDphfT10aGlzLndvdCx7cm9vdERvY3VtZW50OmQscm9vdFdpbmRvdzpofT10aGlzLmRvbUJpbmRpbmdzLHY9dGhpcy5jbG9uZS53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlLnN0eWxlLE09dGhpcy53dFNldHRpbmdz'@; put 'LmdldFNldHRpbmcoInByZXZlbnRPdmVyZmxvdyIpO2lmKHRoaXMudHJpbW1pbmdDb250YWluZXIhPT1ofHwiaG9yaXpvbnRhbCI9PT1NKXtsZXQgRz1hLmdldFdvcmtzcGFjZVdpZHRoKCk7YS5oYXNWZXJ0aWNhbFNjcm9sbCgpJiYoRy09ZDAoZCkpLEc9TWF0aC5taW4oRyxsLnd0Um9vdEVs'@; put 'ZW1lbnQuc2Nyb2xsV2lkdGgpLHYud2lkdGg9YCR7R31weGB9ZWxzZSB2LndpZHRoPSIiO3RoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIuc3R5bGUud2lkdGg9di53aWR0aDtsZXQgST1TdSh0aGlzLmNsb25lLnd0VGFibGUuVEFCTEUpO2wuaGFzRGVmaW5lZFNpemUoKXx8KEk9MCksdi5oZWln'@; put 'aHQ9YCR7SX1weGB9YWRqdXN0Um9vdENoaWxkcmVuU2l6ZSgpe2NvbnN0e2hvbGRlcjpsfT10aGlzLmNsb25lLnd0VGFibGUsYT15Syh0aGlzLndvdCksZD10aGlzLndvdC5zZWxlY3Rpb25NYW5hZ2VyLmdldEZvY3VzU2VsZWN0aW9uKCk/cGFyc2VJbnQoYS5oZWlnaHQsMTApLzI6MDt0aGlz'@; put 'LmNsb25lLnd0VGFibGUuaGlkZXIuc3R5bGUud2lkdGg9dGhpcy5oaWRlci5zdHlsZS53aWR0aCxsLnN0eWxlLndpZHRoPWwucGFyZW50Tm9kZS5zdHlsZS53aWR0aCxsLnN0eWxlLmhlaWdodD1gJHtwYXJzZUludChsLnBhcmVudE5vZGUuc3R5bGUuaGVpZ2h0LDEwKStkfXB4YH1hcHBseVRv'@; put 'RE9NKCl7Y29uc3QgbD10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIik7aWYoIm51bWJlciI9PXR5cGVvZiB0aGlzLndvdC53dFZpZXdwb3J0LnJvd3NSZW5kZXJDYWxjdWxhdG9yLnN0YXJ0UG9zaXRpb24pdGhpcy5zcHJlYWRlci5zdHlsZS50b3A9YCR7dGhpcy53b3Qu'@; put 'd3RWaWV3cG9ydC5yb3dzUmVuZGVyQ2FsY3VsYXRvci5zdGFydFBvc2l0aW9ufXB4YDtlbHNle2lmKDAhPT1sKXRocm93IG5ldyBFcnJvcigiSW5jb3JyZWN0IHZhbHVlIG9mIHRoZSByb3dzUmVuZGVyQ2FsY3VsYXRvciIpO3RoaXMuc3ByZWFkZXIuc3R5bGUudG9wPSIwIn10aGlzLnNwcmVh'@; put 'ZGVyLnN0eWxlLmJvdHRvbT0iIix0aGlzLm5lZWRGdWxsUmVuZGVyJiZ0aGlzLnN5bmNPdmVybGF5T2Zmc2V0KCl9c3luY092ZXJsYXlPZmZzZXQoKXtjb25zdCBsPXRoaXMuaXNSdGwoKT8icmlnaHQiOiJsZWZ0Iix7c3ByZWFkZXI6YX09dGhpcy5jbG9uZS53dFRhYmxlO2Euc3R5bGVbbF09'@; put 'Im51bWJlciI9PXR5cGVvZiB0aGlzLndvdC53dFZpZXdwb3J0LmNvbHVtbnNSZW5kZXJDYWxjdWxhdG9yLnN0YXJ0UG9zaXRpb24/YCR7dGhpcy53b3Qud3RWaWV3cG9ydC5jb2x1bW5zUmVuZGVyQ2FsY3VsYXRvci5zdGFydFBvc2l0aW9ufXB4YDoiIn1zY3JvbGxUbyhsLGEpe2NvbnN0e3dv'@; put 'dDpkLHd0U2V0dGluZ3M6aH09dGhpcyx2PShkLmNsb25lU291cmNlP2QuY2xvbmVTb3VyY2U6ZCkud3RUYWJsZS5ob2xkZXIsTT1oLmdldFNldHRpbmcoImNvbHVtbkhlYWRlcnMiKSxHPTA9PT1oLmdldFNldHRpbmcoImZpeGVkUm93c1RvcCIpJiZNLmxlbmd0aD4wJiYhZ3Modi5wYXJlbnRO'@; put 'b2RlLCJpbm5lckJvcmRlclRvcCIpPzE6MDtsZXQgcmU9dGhpcy5nZXRUYWJsZVBhcmVudE9mZnNldCgpLHVlPTA7aWYoYSYmdGhpcy53b3Qud3RUYWJsZS5nZXRSb3dIZWlnaHQobCk+dGhpcy53b3Qud3RWaWV3cG9ydC5nZXRWaWV3cG9ydEhlaWdodCgpJiYoYT0hMSksYSYmdi5vZmZzZXRI'@; put 'ZWlnaHQhPT12LmNsaWVudEhlaWdodCYmKHVlPWQwKHRoaXMuZG9tQmluZGluZ3Mucm9vdERvY3VtZW50KSksYSl7Y29uc3QgeWU9aC5nZXRTZXR0aW5nKCJmaXhlZFJvd3NCb3R0b20iKSxFZT1oLmdldFNldHRpbmcoInRvdGFsUm93cyIpO3JlKz10aGlzLnN1bUNlbGxTaXplcygwLGwrMSks'@; put 'cmUtPWQud3RWaWV3cG9ydC5nZXRWaWV3cG9ydEhlaWdodCgpLXRoaXMuc3VtQ2VsbFNpemVzKEVlLXllLEVlKSxyZSs9MSxyZSs9R31lbHNlIHJlKz10aGlzLnN1bUNlbGxTaXplcyhoLmdldFNldHRpbmcoImZpeGVkUm93c1RvcCIpLGwpO3JldHVybiByZSs9dWUsc2ZlKHRoaXMubWFpblRh'@; put 'YmxlU2Nyb2xsYWJsZUVsZW1lbnQpPT09cmUtRyYmRz4wJiZ0aGlzLndvdC53dE92ZXJsYXlzLmV4cGFuZEhpZGVyVmVydGljYWxseUJ5KEcpLHRoaXMuc2V0U2Nyb2xsUG9zaXRpb24ocmUpfWdldFRhYmxlUGFyZW50T2Zmc2V0KCl7cmV0dXJuIHRoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVs'@; put 'ZW1lbnQ9PT10aGlzLmRvbUJpbmRpbmdzLnJvb3RXaW5kb3c/dGhpcy53b3Qud3RUYWJsZS5ob2xkZXJPZmZzZXQudG9wOjB9Z2V0U2Nyb2xsUG9zaXRpb24oKXtyZXR1cm4gWk8odGhpcy5tYWluVGFibGVTY3JvbGxhYmxlRWxlbWVudCx0aGlzLmRvbUJpbmRpbmdzLnJvb3RXaW5kb3cpfWdl'@; put 'dE92ZXJsYXlPZmZzZXQoKXtjb25zdHtyb290V2luZG93Omx9PXRoaXMuZG9tQmluZGluZ3MsYT10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicHJldmVudE92ZXJmbG93Iik7bGV0IGQ9MDtpZih0aGlzLnRyaW1taW5nQ29udGFpbmVyPT09bCYmKCFhfHwidmVydGljYWwiIT09YSkpe2Nv'@; put 'bnN0IHY9dGhpcy53b3Qud3RUYWJsZS5nZXRUb3RhbEhlaWdodCgpLXRoaXMuY2xvbmUud3RUYWJsZS5nZXRUb3RhbEhlaWdodCgpO2Q9TWF0aC5tYXgodGhpcy5nZXRTY3JvbGxQb3NpdGlvbigpLXRoaXMuZ2V0VGFibGVQYXJlbnRPZmZzZXQoKSwwKSxkPnYmJihkPTApfXJldHVybiBkfWFk'@; put 'anVzdEhlYWRlckJvcmRlcnNQb3NpdGlvbihsKXtsZXQgYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdO2NvbnN0e3d0U2V0dGluZ3M6ZH09dGhpcyxoPXRoaXMud290Lnd0VGFibGUuaG9sZGVyLnBhcmVudE5vZGUsZj1kLmdldFNldHRp'@; put 'bmcoInRvdGFsQ29sdW1ucyIpLHY9Imhvcml6b250YWwiPT09ZC5nZXRTZXR0aW5nKCJwcmV2ZW50T3ZlcmZsb3ciKTtmP2hzKGgsImVtcHR5Q29sdW1ucyIpOkVpKGgsImVtcHR5Q29sdW1ucyIpO2xldCBNPSExO2lmKCFhJiYhdil7Y29uc3QgST1kLmdldFNldHRpbmcoImZpeGVkUm93c1Rv'@; put 'cCIpLEc9dGhpcy5jYWNoZWRGaXhlZFJvd3NUb3AhPT1JLHJlPWQuZ2V0U2V0dGluZygiY29sdW1uSGVhZGVycyIpO2lmKChHfHwwPT09SSkmJnJlLmxlbmd0aD4wKXtjb25zdCB1ZT1ncyhoLCJpbm5lckJvcmRlclRvcCIpO3RoaXMuY2FjaGVkRml4ZWRSb3dzVG9wPWQuZ2V0U2V0dGluZygi'@; put 'Zml4ZWRSb3dzVG9wIiksbHx8MD09PWQuZ2V0U2V0dGluZygidG90YWxSb3dzIik/KEVpKGgsImlubmVyQm9yZGVyVG9wIiksTT0hdWUpOihocyhoLCJpbm5lckJvcmRlclRvcCIpLE09dWUpfX1yZXR1cm4gTX19Y29uc3QgYTNlPXtnZXRGaXJzdFJlbmRlcmVkUm93KCl7Y29uc3QgYz10aGlz'@; put 'LmdldFJlbmRlcmVkUm93c0NvdW50KCk7cmV0dXJuIDA9PT1jPy0xOnRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJ0b3RhbFJvd3MiKS1jfSxnZXRGaXJzdFZpc2libGVSb3coKXtyZXR1cm4gdGhpcy5nZXRGaXJzdFJlbmRlcmVkUm93KCl9LGdldEZpcnN0UGFydGlhbGx5VmlzaWJsZVJv'@; put 'dygpe3JldHVybiB0aGlzLmdldEZpcnN0UmVuZGVyZWRSb3coKX0sZ2V0TGFzdFJlbmRlcmVkUm93KCl7cmV0dXJuIDA9PT10aGlzLmdldFJlbmRlcmVkUm93c0NvdW50KCk/LTE6dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsUm93cyIpLTF9LGdldExhc3RWaXNpYmxlUm93KCl7'@; put 'cmV0dXJuIHRoaXMuZ2V0TGFzdFJlbmRlcmVkUm93KCl9LGdldExhc3RQYXJ0aWFsbHlWaXNpYmxlUm93KCl7cmV0dXJuIHRoaXMuZ2V0TGFzdFJlbmRlcmVkUm93KCl9LGdldFJlbmRlcmVkUm93c0NvdW50KCl7cmV0dXJuIE1hdGgubWluKHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJ0'@; put 'b3RhbFJvd3MiKSx0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIikpfSxnZXRWaXNpYmxlUm93c0NvdW50KCl7cmV0dXJuIHRoaXMuZ2V0UmVuZGVyZWRSb3dzQ291bnQoKX0sZ2V0Q29sdW1uSGVhZGVyc0NvdW50OigpPT4wfTtUcChhM2UsIk1JWElOX05BTUUi'@; put 'LCJzdGlja3lSb3dzQm90dG9tIix7d3JpdGFibGU6ITEsZW51bWVyYWJsZTohMX0pO2NvbnN0IHMzZT1hM2U7Y2xhc3MgYksgZXh0ZW5kcyBnX3tjb25zdHJ1Y3RvcihsLGEsZCxoKXtzdXBlcihsLGEsZCxoLFJwKX19eGwoYkssczNlKSx4bChiSyxoSyk7Y29uc3QgcGV0PWJLO2NsYXNzIHll'@; put 'dCBleHRlbmRzIFZFe2NvbnN0cnVjdG9yKGwsYSxkLGgpe3N1cGVyKGwsYSxScCxkLGgpLGZ1bmN0aW9uIGdldChjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gbWV0KGMpe3ZhciBsPWZ1bmN0aW9uIHZldChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tT'@; put 'eW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0'@; put 'dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEw'@; put 'fSk6Y1tsXT1hLGN9KHRoaXMsImNhY2hlZEZpeGVkUm93c0JvdHRvbSIsLTEpLHRoaXMuY2FjaGVkRml4ZWRSb3dzQm90dG9tPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmaXhlZFJvd3NCb3R0b20iKX1jcmVhdGVUYWJsZSgpe2Zvcih2YXIgbD1hcmd1bWVudHMubGVuZ3RoLGE9bmV3'@; put 'IEFycmF5KGwpLGQ9MDtkPGw7ZCsrKWFbZF09YXJndW1lbnRzW2RdO3JldHVybiBuZXcgcGV0KC4uLmEpfXNob3VsZEJlUmVuZGVyZWQoKXtyZXR1cm4gdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInNob3VsZFJlbmRlckJvdHRvbU92ZXJsYXkiKX1yZXNldEZpeGVkUG9zaXRpb24oKXtp'@; put 'ZighdGhpcy5uZWVkRnVsbFJlbmRlcnx8IXRoaXMuc2hvdWxkQmVSZW5kZXJlZCgpfHwhdGhpcy53b3Qud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZSlyZXR1cm4hMTtjb25zdHtyb290V2luZG93Omx9PXRoaXMuZG9tQmluZGluZ3MsYT10aGlzLmNsb25lLnd0VGFibGUuaG9sZGVyLnBhcmVu'@; put 'dE5vZGU7YS5zdHlsZS50b3A9IiI7bGV0IGQ9MDtjb25zdCBoPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJwcmV2ZW50T3ZlcmZsb3ciKTt0aGlzLnRyaW1taW5nQ29udGFpbmVyIT09bHx8aCYmInZlcnRpY2FsIj09PWg/KGQ9dGhpcy5nZXRTY3JvbGxQb3NpdGlvbigpLHRoaXMucmVw'@; put 'b3NpdGlvbk92ZXJsYXkoKSk6KGQ9dGhpcy5nZXRPdmVybGF5T2Zmc2V0KCksYS5zdHlsZS5ib3R0b209YCR7ZH1weGApO2NvbnN0IGY9dGhpcy5hZGp1c3RIZWFkZXJCb3JkZXJzUG9zaXRpb24oZCk7cmV0dXJuIHRoaXMuYWRqdXN0RWxlbWVudHNTaXplKCksZn1yZXBvc2l0aW9uT3Zlcmxh'@; put 'eSgpe2NvbnN0e3d0VGFibGU6bCx3dFZpZXdwb3J0OmF9PXRoaXMud290LHtyb290RG9jdW1lbnQ6ZH09dGhpcy5kb21CaW5kaW5ncyxoPXRoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZTtsZXQgZj0wO2EuaGFzVmVydGljYWxTY3JvbGwoKXx8KGYrPWEuZ2V0V29ya3NwYWNl'@; put 'SGVpZ2h0KCktbC5nZXRUb3RhbEhlaWdodCgpKSxhLmhhc1ZlcnRpY2FsU2Nyb2xsKCkmJmEuaGFzSG9yaXpvbnRhbFNjcm9sbCgpJiYoZis9ZDAoZCkpLGguc3R5bGUuYm90dG9tPWAke2Z9cHhgfXNldFNjcm9sbFBvc2l0aW9uKGwpe2NvbnN0e3Jvb3RXaW5kb3c6YX09dGhpcy5kb21CaW5k'@; put 'aW5ncyxkPXRoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQ7bGV0IGg9ITE7aWYoZD09PWEmJmwhPT1hLnNjcm9sbFkpe2NvbnN0IGY9YS5zY3JvbGxZO2Euc2Nyb2xsVG8oVU8oYSksdG9wKSxoPWYhPT1hLnNjcm9sbFl9ZWxzZSBpZihsIT09ZC5zY3JvbGxUb3Ape2NvbnN0IGY9ZC5z'@; put 'Y3JvbGxUb3A7ZC5zY3JvbGxUb3A9bCxoPWYhPT1kLnNjcm9sbFRvcH1yZXR1cm4gaH1vblNjcm9sbCgpe3RoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJvblNjcm9sbEhvcml6b250YWxseSIpfXN1bUNlbGxTaXplcyhsLGEpe2NvbnN0e3d0VGFibGU6ZCx3dFNldHRpbmdzOmh9PXRoaXMu'@; put 'd290LGY9aC5nZXRTZXR0aW5nKCJzdHlsZXNIYW5kbGVyIikuZ2V0RGVmYXVsdFJvd0hlaWdodCgpO2xldCB2PWwsTT0wO2Zvcig7djxhOyl7Y29uc3QgST1kLmdldFJvd0hlaWdodCh2KTtNKz12b2lkIDA9PT1JP2Y6SSx2Kz0xfXJldHVybiBNfWFkanVzdEVsZW1lbnRzU2l6ZSgpe3RoaXMu'@; put 'dXBkYXRlVHJpbW1pbmdDb250YWluZXIoKSx0aGlzLm5lZWRGdWxsUmVuZGVyJiYodGhpcy5hZGp1c3RSb290RWxlbWVudFNpemUoKSx0aGlzLmFkanVzdFJvb3RDaGlsZHJlblNpemUoKSl9YWRqdXN0Um9vdEVsZW1lbnRTaXplKCl7Y29uc3R7d3RUYWJsZTpsLHd0Vmlld3BvcnQ6YX09dGhp'@; put 'cy53b3Qse3Jvb3REb2N1bWVudDpkLHJvb3RXaW5kb3c6aH09dGhpcy5kb21CaW5kaW5ncyx2PXRoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZS5zdHlsZSxNPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJwcmV2ZW50T3ZlcmZsb3ciKTtpZih0aGlzLnRyaW1taW5nQ29u'@; put 'dGFpbmVyIT09aHx8Imhvcml6b250YWwiPT09TSl7bGV0IEc9YS5nZXRXb3Jrc3BhY2VXaWR0aCgpO2EuaGFzVmVydGljYWxTY3JvbGwoKSYmKEctPWQwKGQpKSxHPU1hdGgubWluKEcsbC53dFJvb3RFbGVtZW50LnNjcm9sbFdpZHRoKSx2LndpZHRoPWAke0d9cHhgfWVsc2Ugdi53aWR0aD0i'@; put 'Ijt0aGlzLmNsb25lLnd0VGFibGUuaG9sZGVyLnN0eWxlLndpZHRoPXYud2lkdGg7bGV0IEk9U3UodGhpcy5jbG9uZS53dFRhYmxlLlRBQkxFKTtsLmhhc0RlZmluZWRTaXplKCl8fChJPTApLHYuaGVpZ2h0PWAke0l9cHhgfWFkanVzdFJvb3RDaGlsZHJlblNpemUoKXtjb25zdHtob2xkZXI6'@; put 'bH09dGhpcy5jbG9uZS53dFRhYmxlO3RoaXMuY2xvbmUud3RUYWJsZS5oaWRlci5zdHlsZS53aWR0aD10aGlzLmhpZGVyLnN0eWxlLndpZHRoLGwuc3R5bGUud2lkdGg9bC5wYXJlbnROb2RlLnN0eWxlLndpZHRoLGwuc3R5bGUuaGVpZ2h0PWwucGFyZW50Tm9kZS5zdHlsZS5oZWlnaHR9YXBw'@; put 'bHlUb0RPTSgpe2NvbnN0IGw9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsUm93cyIpO2lmKCJudW1iZXIiPT10eXBlb2YgdGhpcy53b3Qud3RWaWV3cG9ydC5yb3dzUmVuZGVyQ2FsY3VsYXRvci5zdGFydFBvc2l0aW9uKXRoaXMuc3ByZWFkZXIuc3R5bGUudG9wPWAke3RoaXMu'@; put 'd290Lnd0Vmlld3BvcnQucm93c1JlbmRlckNhbGN1bGF0b3Iuc3RhcnRQb3NpdGlvbn1weGA7ZWxzZXtpZigwIT09bCl0aHJvdyBuZXcgRXJyb3IoIkluY29ycmVjdCB2YWx1ZSBvZiB0aGUgcm93c1JlbmRlckNhbGN1bGF0b3IiKTt0aGlzLnNwcmVhZGVyLnN0eWxlLnRvcD0iMCJ9dGhpcy5z'@; put 'cHJlYWRlci5zdHlsZS5ib3R0b209IiIsdGhpcy5uZWVkRnVsbFJlbmRlciYmdGhpcy5zeW5jT3ZlcmxheU9mZnNldCgpfXN5bmNPdmVybGF5T2Zmc2V0KCl7Y29uc3QgbD10aGlzLmlzUnRsKCk/InJpZ2h0IjoibGVmdCIse3NwcmVhZGVyOmF9PXRoaXMuY2xvbmUud3RUYWJsZTthLnN0eWxl'@; put 'W2xdPSJudW1iZXIiPT10eXBlb2YgdGhpcy53b3Qud3RWaWV3cG9ydC5jb2x1bW5zUmVuZGVyQ2FsY3VsYXRvci5zdGFydFBvc2l0aW9uP2Ake3RoaXMud290Lnd0Vmlld3BvcnQuY29sdW1uc1JlbmRlckNhbGN1bGF0b3Iuc3RhcnRQb3NpdGlvbn1weGA6IiJ9c2Nyb2xsVG8obCxhKXtsZXQg'@; put 'ZD10aGlzLmdldFRhYmxlUGFyZW50T2Zmc2V0KCk7Y29uc3QgZj0odGhpcy53b3QuY2xvbmVTb3VyY2U/dGhpcy53b3QuY2xvbmVTb3VyY2U6dGhpcy53b3QpLnd0VGFibGUuaG9sZGVyO2xldCB2PTA7YSYmZi5vZmZzZXRIZWlnaHQhPT1mLmNsaWVudEhlaWdodCYmKHY9ZDAodGhpcy5kb21C'@; put 'aW5kaW5ncy5yb290RG9jdW1lbnQpKSxhPyhkKz10aGlzLnN1bUNlbGxTaXplcygwLGwrMSksZC09dGhpcy53b3Qud3RWaWV3cG9ydC5nZXRWaWV3cG9ydEhlaWdodCgpLGQrPTEpOmQrPXRoaXMuc3VtQ2VsbFNpemVzKHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmaXhlZFJvd3NCb3R0'@; put 'b20iKSxsKSxkKz12LHRoaXMuc2V0U2Nyb2xsUG9zaXRpb24oZCl9Z2V0VGFibGVQYXJlbnRPZmZzZXQoKXtyZXR1cm4gdGhpcy5tYWluVGFibGVTY3JvbGxhYmxlRWxlbWVudD09PXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdz90aGlzLndvdC53dFRhYmxlLmhvbGRlck9mZnNldC50b3A6'@; put 'MH1nZXRTY3JvbGxQb3NpdGlvbigpe3JldHVybiBaTyh0aGlzLm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50LHRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyl9Z2V0T3ZlcmxheU9mZnNldCgpe2NvbnN0e3Jvb3RXaW5kb3c6bH09dGhpcy5kb21CaW5kaW5ncyxhPXRoaXMud3RTZXR0aW5n'@; put 'cy5nZXRTZXR0aW5nKCJwcmV2ZW50T3ZlcmZsb3ciKTtsZXQgZD0wO2lmKHRoaXMudHJpbW1pbmdDb250YWluZXI9PT1sJiYoIWF8fCJ2ZXJ0aWNhbCIhPT1hKSl7Y29uc3QgaD10aGlzLndvdC53dFRhYmxlLmdldFRvdGFsSGVpZ2h0KCksdj1oLXRoaXMuY2xvbmUud3RUYWJsZS5nZXRUb3Rh'@; put 'bEhlaWdodCgpLE09dGhpcy5kb21CaW5kaW5ncy5yb290RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDtkPU1hdGgubWF4KHRoaXMuZ2V0VGFibGVQYXJlbnRPZmZzZXQoKS10aGlzLmdldFNjcm9sbFBvc2l0aW9uKCktTStoLDApLGQ+diYmKGQ9MCl9cmV0dXJuIGR9YWRq'@; put 'dXN0SGVhZGVyQm9yZGVyc1Bvc2l0aW9uKGwpe2NvbnN0IGE9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkUm93c0JvdHRvbSIpLGQ9dGhpcy5jYWNoZWRGaXhlZFJvd3NCb3R0b20hPT1hLGg9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImNvbHVtbkhlYWRlcnMiKTtsZXQg'@; put 'Zj0hMTtpZigoZHx8MD09PWEpJiZoLmxlbmd0aD4wKXtjb25zdCB2PXRoaXMud290Lnd0VGFibGUuaG9sZGVyLnBhcmVudE5vZGUsTT1ncyh2LCJpbm5lckJvcmRlckJvdHRvbSIpO3RoaXMuY2FjaGVkRml4ZWRSb3dzQm90dG9tPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmaXhlZFJv'@; put 'd3NCb3R0b20iKSxsfHwwPT09dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsUm93cyIpPyhFaSh2LCJpbm5lckJvcmRlckJvdHRvbSIpLGY9IU0pOihocyh2LCJpbm5lckJvcmRlckJvdHRvbSIpLGY9TSl9cmV0dXJuIGZ9fWNvbnN0IG8zZT17Z2V0Rmlyc3RSZW5kZXJlZFJvdygp'@; put 'e2NvbnN0IGM9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LnN0YXJ0Um93UmVuZGVyZWQ7cmV0dXJuIG51bGw9PT1jPy0xOmN9LGdldEZpcnN0VmlzaWJsZVJvdygpe2NvbnN0IGM9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LnN0YXJ0Um93VmlzaWJsZTtyZXR1cm4gbnVsbD09PWM/LTE6Y30sZ2V0Rmly'@; put 'c3RQYXJ0aWFsbHlWaXNpYmxlUm93KCl7Y29uc3QgYz10aGlzLmRhdGFBY2Nlc3NPYmplY3Quc3RhcnRSb3dQYXJ0aWFsbHlWaXNpYmxlO3JldHVybiBudWxsPT09Yz8tMTpjfSxnZXRMYXN0UmVuZGVyZWRSb3coKXtjb25zdCBjPXRoaXMuZGF0YUFjY2Vzc09iamVjdC5lbmRSb3dSZW5kZXJl'@; put 'ZDtyZXR1cm4gbnVsbD09PWM/LTE6Y30sZ2V0TGFzdFZpc2libGVSb3coKXtjb25zdCBjPXRoaXMuZGF0YUFjY2Vzc09iamVjdC5lbmRSb3dWaXNpYmxlO3JldHVybiBudWxsPT09Yz8tMTpjfSxnZXRMYXN0UGFydGlhbGx5VmlzaWJsZVJvdygpe2NvbnN0IGM9dGhpcy5kYXRhQWNjZXNzT2Jq'@; put 'ZWN0LmVuZFJvd1BhcnRpYWxseVZpc2libGU7cmV0dXJuIG51bGw9PT1jPy0xOmN9LGdldFJlbmRlcmVkUm93c0NvdW50KCl7cmV0dXJuIHRoaXMuZGF0YUFjY2Vzc09iamVjdC5jb3VudFJvd3NSZW5kZXJlZH0sZ2V0VmlzaWJsZVJvd3NDb3VudCgpe3JldHVybiB0aGlzLmRhdGFBY2Nlc3NP'@; put 'YmplY3QuY291bnRSb3dzVmlzaWJsZX0sZ2V0Q29sdW1uSGVhZGVyc0NvdW50KCl7cmV0dXJuIHRoaXMuZGF0YUFjY2Vzc09iamVjdC5jb2x1bW5IZWFkZXJzLmxlbmd0aH19O1RwKG8zZSwiTUlYSU5fTkFNRSIsImNhbGN1bGF0ZWRSb3dzIix7d3JpdGFibGU6ITEsZW51bWVyYWJsZTohMX0p'@; put 'O2NvbnN0IGwzZT1vM2UsYzNlPXtnZXRGaXJzdFJlbmRlcmVkQ29sdW1uKCl7cmV0dXJuIDA9PT10aGlzLmdldFJlbmRlcmVkQ29sdW1uc0NvdW50KCk/LTE6MH0sZ2V0Rmlyc3RWaXNpYmxlQ29sdW1uKCl7cmV0dXJuIHRoaXMuZ2V0Rmlyc3RSZW5kZXJlZENvbHVtbigpfSxnZXRGaXJzdFBh'@; put 'cnRpYWxseVZpc2libGVDb2x1bW4oKXtyZXR1cm4gdGhpcy5nZXRGaXJzdFJlbmRlcmVkQ29sdW1uKCl9LGdldExhc3RSZW5kZXJlZENvbHVtbigpe3JldHVybiB0aGlzLmdldFJlbmRlcmVkQ29sdW1uc0NvdW50KCktMX0sZ2V0TGFzdFZpc2libGVDb2x1bW4oKXtyZXR1cm4gdGhpcy5nZXRM'@; put 'YXN0UmVuZGVyZWRDb2x1bW4oKX0sZ2V0TGFzdFBhcnRpYWxseVZpc2libGVDb2x1bW4oKXtyZXR1cm4gdGhpcy5nZXRMYXN0UmVuZGVyZWRDb2x1bW4oKX0sZ2V0UmVuZGVyZWRDb2x1bW5zQ291bnQoKXtyZXR1cm4gTWF0aC5taW4odGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFs'@; put 'Q29sdW1ucyIpLHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmaXhlZENvbHVtbnNTdGFydCIpKX0sZ2V0VmlzaWJsZUNvbHVtbnNDb3VudCgpe3JldHVybiB0aGlzLmdldFJlbmRlcmVkQ29sdW1uc0NvdW50KCl9LGdldFJvd0hlYWRlcnNDb3VudCgpe3JldHVybiB0aGlzLmRhdGFBY2Nl'@; put 'c3NPYmplY3Qucm93SGVhZGVycy5sZW5ndGh9fTtUcChjM2UsIk1JWElOX05BTUUiLCJzdGlja3lDb2x1bW5zU3RhcnQiLHt3cml0YWJsZTohMSxlbnVtZXJhYmxlOiExfSk7Y29uc3QgX0s9YzNlO2NsYXNzIHdLIGV4dGVuZHMgZ197Y29uc3RydWN0b3IobCxhLGQsaCl7c3VwZXIobCxhLGQs'@; put 'aCxLNyl9fXhsKHdLLGwzZSkseGwod0ssX0spO2NvbnN0IHdldD13SztjbGFzcyBDZXQgZXh0ZW5kcyBWRXtjb25zdHJ1Y3RvcihsLGEsZCxoKXtzdXBlcihsLGEsSzcsZCxoKX1jcmVhdGVUYWJsZSgpe2Zvcih2YXIgbD1hcmd1bWVudHMubGVuZ3RoLGE9bmV3IEFycmF5KGwpLGQ9MDtkPGw7'@; put 'ZCsrKWFbZF09YXJndW1lbnRzW2RdO3JldHVybiBuZXcgd2V0KC4uLmEpfXNob3VsZEJlUmVuZGVyZWQoKXtyZXR1cm4gdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInNob3VsZFJlbmRlcklubGluZVN0YXJ0T3ZlcmxheSIpfXJlc2V0Rml4ZWRQb3NpdGlvbigpe2NvbnN0e3d0VGFibGU6'@; put 'bH09dGhpcy53b3Q7aWYoIXRoaXMubmVlZEZ1bGxSZW5kZXJ8fCF0aGlzLnNob3VsZEJlUmVuZGVyZWQoKXx8IWwuaG9sZGVyLnBhcmVudE5vZGUpcmV0dXJuITE7Y29uc3R7cm9vdFdpbmRvdzphfT10aGlzLmRvbUJpbmRpbmdzLGQ9dGhpcy5jbG9uZS53dFRhYmxlLmhvbGRlci5wYXJlbnRO'@; put 'b2RlLGg9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInByZXZlbnRPdmVyZmxvdyIpO2xldCBmPTA7dGhpcy50cmltbWluZ0NvbnRhaW5lciE9PWF8fGgmJiJob3Jpem9udGFsIj09PWg/KGY9dGhpcy5nZXRTY3JvbGxQb3NpdGlvbigpLGtFKGQpKTooZj10aGlzLmdldE92ZXJsYXlPZmZz'@; put 'ZXQoKSoodGhpcy5pc1J0bCgpPy0xOjEpLFdPKGQsYCR7Zn1weGAsIjBweCIpKTtjb25zdCB2PXRoaXMuYWRqdXN0SGVhZGVyQm9yZGVyc1Bvc2l0aW9uKGYpO3JldHVybiB0aGlzLmFkanVzdEVsZW1lbnRzU2l6ZSgpLHZ9c2V0U2Nyb2xsUG9zaXRpb24obCl7Y29uc3R7cm9vdFdpbmRvdzph'@; put 'fT10aGlzLmRvbUJpbmRpbmdzO2xldCBkPSExO3RoaXMuaXNSdGwoKSYmKGw9LWwpO2NvbnN0IGg9dGhpcy5tYWluVGFibGVTY3JvbGxhYmxlRWxlbWVudDtpZihoPT09YSYmbCE9PWEuc2Nyb2xsWCl7Y29uc3QgZj1hLnNjcm9sbFg7YS5zY3JvbGxUbyhsLEUkKGEpKSxkPWYhPT1hLnNjcm9s'@; put 'bFh9ZWxzZSBpZihsIT09aC5zY3JvbGxMZWZ0KXtjb25zdCBmPWguc2Nyb2xsTGVmdDtoLnNjcm9sbExlZnQ9bCxkPWYhPT1oLnNjcm9sbExlZnR9cmV0dXJuIGR9b25TY3JvbGwoKXt0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygib25TY3JvbGxWZXJ0aWNhbGx5Iil9c3VtQ2VsbFNpemVz'@; put 'KGwsYSl7Y29uc3QgZD10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZGVmYXVsdENvbHVtbldpZHRoIik7bGV0IGg9bCxmPTA7Zm9yKDtoPGE7KWYrPXRoaXMud290Lnd0VGFibGUuZ2V0Q29sdW1uV2lkdGgoaCl8fGQsaCs9MTtyZXR1cm4gZn1hZGp1c3RFbGVtZW50c1NpemUoKXt0aGlz'@; put 'LnVwZGF0ZVRyaW1taW5nQ29udGFpbmVyKCksdGhpcy5uZWVkRnVsbFJlbmRlciYmKHRoaXMuYWRqdXN0Um9vdEVsZW1lbnRTaXplKCksdGhpcy5hZGp1c3RSb290Q2hpbGRyZW5TaXplKCkpfWFkanVzdFJvb3RFbGVtZW50U2l6ZSgpe2NvbnN0e3d0VGFibGU6bCx3dFZpZXdwb3J0OmF9PXRo'@; put 'aXMud290LHtyb290RG9jdW1lbnQ6ZCxyb290V2luZG93Omh9PXRoaXMuZG9tQmluZGluZ3Msdj10aGlzLmNsb25lLnd0VGFibGUuaG9sZGVyLnBhcmVudE5vZGUuc3R5bGUsTT10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicHJldmVudE92ZXJmbG93Iik7aWYodGhpcy50cmltbWluZ0Nv'@; put 'bnRhaW5lciE9PWh8fCJ2ZXJ0aWNhbCI9PT1NKXtsZXQgRz1hLmdldFdvcmtzcGFjZUhlaWdodCgpO2EuaGFzSG9yaXpvbnRhbFNjcm9sbCgpJiYoRy09ZDAoZCkpLEc9TWF0aC5taW4oRyxsLnd0Um9vdEVsZW1lbnQuc2Nyb2xsSGVpZ2h0KSx2LmhlaWdodD1gJHtHfXB4YH1lbHNlIHYuaGVp'@; put 'Z2h0PSIiO3RoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIuc3R5bGUuaGVpZ2h0PXYuaGVpZ2h0O2NvbnN0IEk9aXUodGhpcy5jbG9uZS53dFRhYmxlLlRBQkxFKTt2LndpZHRoPWAke0l9cHhgfWFkanVzdFJvb3RDaGlsZHJlblNpemUoKXtjb25zdHtob2xkZXI6bH09dGhpcy5jbG9uZS53dFRh'@; put 'YmxlLGE9eUsodGhpcy53b3QpLGQ9dGhpcy53b3Quc2VsZWN0aW9uTWFuYWdlci5nZXRGb2N1c1NlbGVjdGlvbigpP3BhcnNlSW50KGEud2lkdGgsMTApLzI6MDt0aGlzLmNsb25lLnd0VGFibGUuaGlkZXIuc3R5bGUuaGVpZ2h0PXRoaXMuaGlkZXIuc3R5bGUuaGVpZ2h0LGwuc3R5bGUuaGVp'@; put 'Z2h0PWwucGFyZW50Tm9kZS5zdHlsZS5oZWlnaHQsbC5zdHlsZS53aWR0aD1gJHtwYXJzZUludChsLnBhcmVudE5vZGUuc3R5bGUud2lkdGgsMTApK2R9cHhgfWFwcGx5VG9ET00oKXtjb25zdCBsPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJ0b3RhbENvbHVtbnMiKSxhPXRoaXMuaXNS'@; put 'dGwoKT8icmlnaHQiOiJsZWZ0IjtpZigibnVtYmVyIj09dHlwZW9mIHRoaXMud290Lnd0Vmlld3BvcnQuY29sdW1uc1JlbmRlckNhbGN1bGF0b3Iuc3RhcnRQb3NpdGlvbil0aGlzLnNwcmVhZGVyLnN0eWxlW2FdPWAke3RoaXMud290Lnd0Vmlld3BvcnQuY29sdW1uc1JlbmRlckNhbGN1bGF0'@; put 'b3Iuc3RhcnRQb3NpdGlvbn1weGA7ZWxzZXtpZigwIT09bCl0aHJvdyBuZXcgRXJyb3IoIkluY29ycmVjdCB2YWx1ZSBvZiB0aGUgY29sdW1uc1JlbmRlckNhbGN1bGF0b3IiKTt0aGlzLnNwcmVhZGVyLnN0eWxlW2FdPSIwIn10aGlzLmlzUnRsKCk/dGhpcy5zcHJlYWRlci5zdHlsZS5sZWZ0'@; put 'PSIiOnRoaXMuc3ByZWFkZXIuc3R5bGUucmlnaHQ9IiIsdGhpcy5uZWVkRnVsbFJlbmRlciYmdGhpcy5zeW5jT3ZlcmxheU9mZnNldCgpfXN5bmNPdmVybGF5T2Zmc2V0KCl7dGhpcy5jbG9uZS53dFRhYmxlLnNwcmVhZGVyLnN0eWxlLnRvcD0ibnVtYmVyIj09dHlwZW9mIHRoaXMud290Lnd0'@; put 'Vmlld3BvcnQucm93c1JlbmRlckNhbGN1bGF0b3Iuc3RhcnRQb3NpdGlvbj9gJHt0aGlzLndvdC53dFZpZXdwb3J0LnJvd3NSZW5kZXJDYWxjdWxhdG9yLnN0YXJ0UG9zaXRpb259cHhgOiIifXNjcm9sbFRvKGwsYSl7Y29uc3R7d3RTZXR0aW5nczpkfT10aGlzLGg9ZC5nZXRTZXR0aW5nKCJy'@; put 'b3dIZWFkZXJzIiksZj1kLmdldFNldHRpbmcoImZpeGVkQ29sdW1uc1N0YXJ0IiksTT0odGhpcy53b3QuY2xvbmVTb3VyY2U/dGhpcy53b3QuY2xvbmVTb3VyY2U6dGhpcy53b3QpLnd0VGFibGUuaG9sZGVyLEk9MD09PWYmJmgubGVuZ3RoPjAmJiFncyhNLnBhcmVudE5vZGUsImlubmVyQm9y'@; put 'ZGVySW5saW5lU3RhcnQiKT8xOjA7bGV0IEc9dGhpcy5nZXRUYWJsZVBhcmVudE9mZnNldCgpLHJlPTA7cmV0dXJuIGEmJnRoaXMud290Lnd0VGFibGUuZ2V0Q29sdW1uV2lkdGgobCk+dGhpcy53b3Qud3RWaWV3cG9ydC5nZXRWaWV3cG9ydFdpZHRoKCkmJihhPSExKSxhJiZNLm9mZnNldFdp'@; put 'ZHRoIT09TS5jbGllbnRXaWR0aCYmKHJlPWQwKHRoaXMuZG9tQmluZGluZ3Mucm9vdERvY3VtZW50KSksYT8oRys9dGhpcy5zdW1DZWxsU2l6ZXMoMCxsKzEpLEctPXRoaXMud290Lnd0Vmlld3BvcnQuZ2V0Vmlld3BvcnRXaWR0aCgpLEcrPUkpOkcrPXRoaXMuc3VtQ2VsbFNpemVzKHRoaXMu'@; put 'd3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmaXhlZENvbHVtbnNTdGFydCIpLGwpLEcrPXJlLG9mZSh0aGlzLm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50KT09PUctSSYmST4wJiZ0aGlzLndvdC53dE92ZXJsYXlzLmV4cGFuZEhpZGVySG9yaXpvbnRhbGx5QnkoSSksdGhpcy5zZXRTY3JvbGxQ'@; put 'b3NpdGlvbihHKX1nZXRUYWJsZVBhcmVudE9mZnNldCgpe2xldCBhPTA7cmV0dXJuIXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJwcmV2ZW50T3ZlcmZsb3ciKSYmdGhpcy50cmltbWluZ0NvbnRhaW5lcj09PXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyYmKGE9dGhpcy53b3Qud3RU'@; put 'YWJsZS5ob2xkZXJPZmZzZXQubGVmdCksYX1nZXRTY3JvbGxQb3NpdGlvbigpe3JldHVybiBNYXRoLmFicyhUJCh0aGlzLm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50LHRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdykpfWdldE92ZXJsYXlPZmZzZXQoKXtjb25zdHtyb290V2luZG93Omx9'@; put 'PXRoaXMuZG9tQmluZGluZ3MsYT10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicHJldmVudE92ZXJmbG93Iik7bGV0IGQ9MDtyZXR1cm4gdGhpcy50cmltbWluZ0NvbnRhaW5lciE9PWx8fGEmJiJob3Jpem9udGFsIj09PWF8fChkPXRoaXMuaXNSdGwoKT9NYXRoLmFicyhNYXRoLm1pbih0'@; put 'aGlzLmdldFRhYmxlUGFyZW50T2Zmc2V0KCktdGhpcy5nZXRTY3JvbGxQb3NpdGlvbigpLDApKTpNYXRoLm1heCh0aGlzLmdldFNjcm9sbFBvc2l0aW9uKCktdGhpcy5nZXRUYWJsZVBhcmVudE9mZnNldCgpLDApLGQ+dGhpcy53b3Qud3RUYWJsZS5nZXRUb3RhbFdpZHRoKCktdGhpcy5jbG9u'@; put 'ZS53dFRhYmxlLmdldFRvdGFsV2lkdGgoKSYmKGQ9MCkpLGR9YWRqdXN0SGVhZGVyQm9yZGVyc1Bvc2l0aW9uKGwpe2NvbnN0e3d0U2V0dGluZ3M6YX09dGhpcyxkPXRoaXMud290Lnd0VGFibGUuaG9sZGVyLnBhcmVudE5vZGUsaD1hLmdldFNldHRpbmcoInJvd0hlYWRlcnMiKSxmPWEuZ2V0'@; put 'U2V0dGluZygiZml4ZWRDb2x1bW5zU3RhcnQiKSx2PWEuZ2V0U2V0dGluZygidG90YWxSb3dzIiksTT0idmVydGljYWwiPT09YS5nZXRTZXR0aW5nKCJwcmV2ZW50T3ZlcmZsb3ciKTt2P2hzKGQsImVtcHR5Um93cyIpOkVpKGQsImVtcHR5Um93cyIpO2xldCBJPSExO2lmKCFNKWlmKGYmJiFo'@; put 'Lmxlbmd0aClFaShkLCJpbm5lckJvcmRlckxlZnQgaW5uZXJCb3JkZXJJbmxpbmVTdGFydCIpO2Vsc2UgaWYoIWYmJmgubGVuZ3RoKXtjb25zdCBHPWdzKGQsImlubmVyQm9yZGVySW5saW5lU3RhcnQiKTtsPyhFaShkLCJpbm5lckJvcmRlckxlZnQgaW5uZXJCb3JkZXJJbmxpbmVTdGFydCIp'@; put 'LEk9IUcpOihocyhkLCJpbm5lckJvcmRlckxlZnQgaW5uZXJCb3JkZXJJbmxpbmVTdGFydCIpLEk9Ryl9cmV0dXJuIEl9fWNsYXNzIENLIGV4dGVuZHMgZ197Y29uc3RydWN0b3IobCxhLGQsaCl7c3VwZXIobCxhLGQsaCxYNyl9fXhsKENLLFhmZSkseGwoQ0ssX0spO2NvbnN0IE1ldD1DSztm'@; put 'dW5jdGlvbiB1M2UoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIHhldChjKXt2YXIgbD1mdW5jdGlvbiBFZXQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwi'@; put 'ZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVy'@; put 'biJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWNsYXNzIFRldCBleHRlbmRzIFZFe2NvbnN0cnVjdG9yKGwsYSxkLGgs'@; put 'Zix2KXtzdXBlcihsLGEsWDcsZCxoKSx1M2UodGhpcywidG9wT3ZlcmxheSIsdm9pZCAwKSx1M2UodGhpcywiaW5saW5lU3RhcnRPdmVybGF5Iix2b2lkIDApLHRoaXMudG9wT3ZlcmxheT1mLHRoaXMuaW5saW5lU3RhcnRPdmVybGF5PXZ9Y3JlYXRlVGFibGUoKXtmb3IodmFyIGw9YXJndW1l'@; put 'bnRzLmxlbmd0aCxhPW5ldyBBcnJheShsKSxkPTA7ZDxsO2QrKylhW2RdPWFyZ3VtZW50c1tkXTtyZXR1cm4gbmV3IE1ldCguLi5hKX1zaG91bGRCZVJlbmRlcmVkKCl7cmV0dXJuIHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJzaG91bGRSZW5kZXJUb3BPdmVybGF5IikmJnRoaXMud3RT'@; put 'ZXR0aW5ncy5nZXRTZXR0aW5nKCJzaG91bGRSZW5kZXJJbmxpbmVTdGFydE92ZXJsYXkiKX1yZXNldEZpeGVkUG9zaXRpb24oKXtpZih0aGlzLnVwZGF0ZVRyaW1taW5nQ29udGFpbmVyKCksIXRoaXMud290Lnd0VGFibGUuaG9sZGVyLnBhcmVudE5vZGUpcmV0dXJuITE7Y29uc3QgbD10aGlz'@; put 'LmNsb25lLnd0VGFibGUuaG9sZGVyLnBhcmVudE5vZGU7dGhpcy50cmltbWluZ0NvbnRhaW5lcj09PXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdz9XTyhsLHRoaXMuaW5saW5lU3RhcnRPdmVybGF5LmdldE92ZXJsYXlPZmZzZXQoKSoodGhpcy5pc1J0bCgpPy0xOjEpKyJweCIsYCR7dGhp'@; put 'cy50b3BPdmVybGF5LmdldE92ZXJsYXlPZmZzZXQoKX1weGApOmtFKGwpO2xldCBhPVN1KHRoaXMuY2xvbmUud3RUYWJsZS5UQUJMRSk7Y29uc3QgZD1pdSh0aGlzLmNsb25lLnd0VGFibGUuVEFCTEUpO3JldHVybiB0aGlzLndvdC53dFRhYmxlLmhhc0RlZmluZWRTaXplKCl8fChhPTApLGwu'@; put 'c3R5bGUuaGVpZ2h0PWAke2F9cHhgLGwuc3R5bGUud2lkdGg9YCR7ZH1weGAsITF9fWNsYXNzIFNLIGV4dGVuZHMgZ197Y29uc3RydWN0b3IobCxhLGQsaCl7c3VwZXIobCxhLGQsaCxObSl9fXhsKFNLLHMzZSkseGwoU0ssX0spO2NvbnN0IEFldD1TSztjbGFzcyBrZXQgZXh0ZW5kcyBWRXtj'@; put 'b25zdHJ1Y3RvcihsLGEsZCxoLGYsdil7c3VwZXIobCxhLE5tLGQsaCksdGhpcy5ib3R0b21PdmVybGF5PWYsdGhpcy5pbmxpbmVTdGFydE92ZXJsYXk9dn1jcmVhdGVUYWJsZSgpe2Zvcih2YXIgbD1hcmd1bWVudHMubGVuZ3RoLGE9bmV3IEFycmF5KGwpLGQ9MDtkPGw7ZCsrKWFbZF09YXJn'@; put 'dW1lbnRzW2RdO3JldHVybiBuZXcgQWV0KC4uLmEpfXNob3VsZEJlUmVuZGVyZWQoKXtyZXR1cm4gdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInNob3VsZFJlbmRlckJvdHRvbU92ZXJsYXkiKSYmdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInNob3VsZFJlbmRlcklubGluZVN0YXJ0'@; put 'T3ZlcmxheSIpfXJlc2V0Rml4ZWRQb3NpdGlvbigpe2NvbnN0e3dvdDpsfT10aGlzO2lmKHRoaXMudXBkYXRlVHJpbW1pbmdDb250YWluZXIoKSwhbC53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlKXJldHVybiExO2NvbnN0IGE9dGhpcy5jbG9uZS53dFRhYmxlLmhvbGRlci5wYXJlbnROb2Rl'@; put 'O2lmKGEuc3R5bGUudG9wPSIiLHRoaXMudHJpbW1pbmdDb250YWluZXI9PT10aGlzLmRvbUJpbmRpbmdzLnJvb3RXaW5kb3cpe2NvbnN0IGY9dGhpcy5pbmxpbmVTdGFydE92ZXJsYXkuZ2V0T3ZlcmxheU9mZnNldCgpLHY9dGhpcy5ib3R0b21PdmVybGF5LmdldE92ZXJsYXlPZmZzZXQoKTth'@; put 'LnN0eWxlW3RoaXMuaXNSdGwoKT8icmlnaHQiOiJsZWZ0Il09YCR7Zn1weGAsYS5zdHlsZS5ib3R0b209YCR7dn1weGB9ZWxzZSBrRShhKSx0aGlzLnJlcG9zaXRpb25PdmVybGF5KCk7bGV0IGQ9U3UodGhpcy5jbG9uZS53dFRhYmxlLlRBQkxFKTtjb25zdCBoPWl1KHRoaXMuY2xvbmUud3RU'@; put 'YWJsZS5UQUJMRSk7cmV0dXJuIHRoaXMud290Lnd0VGFibGUuaGFzRGVmaW5lZFNpemUoKXx8KGQ9MCksYS5zdHlsZS5oZWlnaHQ9YCR7ZH1weGAsYS5zdHlsZS53aWR0aD1gJHtofXB4YCwhMX1yZXBvc2l0aW9uT3ZlcmxheSgpe2NvbnN0e3d0VGFibGU6bCx3dFZpZXdwb3J0OmF9PXRoaXMu'@; put 'd290LHtyb290RG9jdW1lbnQ6ZH09dGhpcy5kb21CaW5kaW5ncyxoPXRoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZTtsZXQgZj0wO2EuaGFzVmVydGljYWxTY3JvbGwoKXx8KGYrPWEuZ2V0V29ya3NwYWNlSGVpZ2h0KCktbC5nZXRUb3RhbEhlaWdodCgpKSxhLmhhc1ZlcnRp'@; put 'Y2FsU2Nyb2xsKCkmJmEuaGFzSG9yaXpvbnRhbFNjcm9sbCgpJiYoZis9ZDAoZCkpLGguc3R5bGUuYm90dG9tPWAke2Z9cHhgfX1mdW5jdGlvbiB1UChjLGwsYSl7KGZ1bmN0aW9uIERldChjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRo'@; put 'ZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShjLGwpLGwuc2V0KGMsYSl9ZnVuY3Rpb24gX2coYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIElldChjKXt2YXIgbD1mdW5jdGlvbiBSZXQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBj'@; put 'O3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZh'@; put 'bHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3'@; put 'cml0YWJsZTohMH0pOmNbbF09YSxjfWZ1bmN0aW9uIHE3KGMsbCxhKXtyZXR1cm4gYy5zZXQoZDNlKGMsbCksYSksYX1mdW5jdGlvbiB3ZyhjLGwpe3JldHVybiBjLmdldChkM2UoYyxsKSl9ZnVuY3Rpb24gZDNlKGMsbCxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhs'@; put 'KSlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzP2w6YTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGVsZW1lbnQgaXMgbm90IHByZXNlbnQgb24gdGhpcyBvYmplY3QiKX12YXIgdl89bmV3IFdlYWtNYXAsZFA9bmV3IFdlYWtNYXAseV89bmV3IFdlYWtNYXAsaFA9bmV3IFdlYWtNYXA7'@; put 'Y29uc3QgT2V0PWNsYXNzIExldHtjb25zdHJ1Y3RvcihsLGEsZCxoLGYsdil7X2codGhpcywid290IixudWxsKSx1UCh0aGlzLHZfLFtdKSxfZyh0aGlzLCJ0b3BPdmVybGF5IixudWxsKSxfZyh0aGlzLCJib3R0b21PdmVybGF5IixudWxsKSxfZyh0aGlzLCJpbmxpbmVTdGFydE92ZXJsYXki'@; put 'LG51bGwpLF9nKHRoaXMsInRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheSIsbnVsbCksX2codGhpcywiYm90dG9tSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5IixudWxsKSxfZyh0aGlzLCJicm93c2VyTGluZUhlaWdodCIsdm9pZCAwKSxfZyh0aGlzLCJ3dFNldHRpbmdzIixudWxsKSx1UCh0'@; put 'aGlzLGRQLCExKSx1UCh0aGlzLHlfLDApLHVQKHRoaXMsaFAsbnVsbCksX2codGhpcywicmVzaXplT2JzZXJ2ZXIiLG5ldyBSZXNpemVPYnNlcnZlcihyZT0+e0NFKCgpPT57IUFycmF5LmlzQXJyYXkocmUpfHwhcmUubGVuZ3RofHwocTcoeV8sdGhpcyx3Zyh5Xyx0aGlzKSsxKSwxMDA9PT13'@; put 'Zyh5Xyx0aGlzKSYmKFlvKCJUaGUgUmVzaXplT2JzZXJ2ZXIgY2FsbGJhY2sgd2FzIGZpcmVkIHRvbyBtYW55IHRpbWVzIGluIGRpcmVjdCBzdWNjZXNzaW9uLlxuVGhpcyBtYXkgYmUgZHVlIHRvIGFuIGluZmluaXRlIGxvb3AgY2F1c2VkIGJ5IHNldHRpbmcgYSBkeW5hbWljIGhlaWdodC93'@; put 'aWR0aCAoZm9yIGV4YW1wbGUsIHdpdGggdGhlIGBkdmhgIHVuaXRzKSB0byBhIEhhbmRzb250YWJsZSBjb250YWluZXIncyBwYXJlbnQuIFxuVGhlIG9ic2VydmVyIHdpbGwgYmUgZGlzY29ubmVjdGVkLiIpLHRoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpKSxudWxsIT09d2coaFAs'@; put 'dGhpcykmJmNsZWFyVGltZW91dCh3ZyhoUCx0aGlzKSkscTcoaFAsdGhpcyxzZXRUaW1lb3V0KCgpPT57cTcoeV8sdGhpcywwKX0sMTAwKSksdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoIm9uQ29udGFpbmVyRWxlbWVudFJlc2l6ZSIpKX0pfSkpLHRoaXMud290PWwsdGhpcy53dFNldHRp'@; put 'bmdzPWgsdGhpcy5kb21CaW5kaW5ncz1kLHRoaXMuZmFjYWRlR2V0dGVyPWEsdGhpcy53dFRhYmxlPXY7Y29uc3R7cm9vdERvY3VtZW50Ok0scm9vdFdpbmRvdzpJfT10aGlzLmRvbUJpbmRpbmdzO3RoaXMuaW5zdGFuY2U9dGhpcy53b3QsdGhpcy5ldmVudE1hbmFnZXI9Zix0aGlzLnNjcm9s'@; put 'bGJhclNpemU9ZDAoTSk7Y29uc3QgRz0iaGlkZGVuIj09PUkuZ2V0Q29tcHV0ZWRTdHlsZSh2Lnd0Um9vdEVsZW1lbnQucGFyZW50Tm9kZSkuZ2V0UHJvcGVydHlWYWx1ZSgib3ZlcmZsb3ciKTt0aGlzLnNjcm9sbGFibGVFbGVtZW50PUc/di5ob2xkZXI6RUUodi5UQUJMRSksdGhpcy5pbml0'@; put 'T3ZlcmxheXMoKSx0aGlzLmRlc3Ryb3llZD0hMSx0aGlzLmtleVByZXNzZWQ9ITEsdGhpcy5zcHJlYWRlckxhc3RTaXplPXt3aWR0aDpudWxsLGhlaWdodDpudWxsfSx0aGlzLnZlcnRpY2FsU2Nyb2xsaW5nPSExLHRoaXMuaG9yaXpvbnRhbFNjcm9sbGluZz0hMSx0aGlzLmluaXRCcm93c2Vy'@; put 'TGluZUhlaWdodCgpLHRoaXMucmVnaXN0ZXJMaXN0ZW5lcnMoKSx0aGlzLmxhc3RTY3JvbGxYPUkuc2Nyb2xsWCx0aGlzLmxhc3RTY3JvbGxZPUkuc2Nyb2xsWX1nZXRPdmVybGF5cygpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNb'@; put 'MF07Y29uc3QgYT1bLi4ud2codl8sdGhpcyldO3JldHVybiBsJiZhLnB1c2godGhpcy53dFRhYmxlKSxhfWluaXRCcm93c2VyTGluZUhlaWdodCgpe2NvbnN0e3Jvb3RXaW5kb3c6bCxyb290RG9jdW1lbnQ6YX09dGhpcy5kb21CaW5kaW5ncyxkPWwuZ2V0Q29tcHV0ZWRTdHlsZShhLmJvZHkp'@; put 'LGg9cGFyc2VJbnQoZC5saW5lSGVpZ2h0LDEwKSxmPTEuMipwYXJzZUludChkLmZvbnRTaXplLDEwKTt0aGlzLmJyb3dzZXJMaW5lSGVpZ2h0PWh8fGZ9aW5pdE92ZXJsYXlzKCl7Y29uc3QgbD1bdGhpcy53b3QsdGhpcy5mYWNhZGVHZXR0ZXIsdGhpcy53dFNldHRpbmdzLHRoaXMuZG9tQmlu'@; put 'ZGluZ3NdO3RoaXMudG9wT3ZlcmxheT1uZXcgaGV0KC4uLmwpLHRoaXMuYm90dG9tT3ZlcmxheT1uZXcgeWV0KC4uLmwpLHRoaXMuaW5saW5lU3RhcnRPdmVybGF5PW5ldyBDZXQoLi4ubCksdGhpcy50b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXk9bmV3IFRldCguLi5sLHRoaXMudG9wT3Zl'@; put 'cmxheSx0aGlzLmlubGluZVN0YXJ0T3ZlcmxheSksdGhpcy5ib3R0b21JbmxpbmVTdGFydENvcm5lck92ZXJsYXk9bmV3IGtldCguLi5sLHRoaXMuYm90dG9tT3ZlcmxheSx0aGlzLmlubGluZVN0YXJ0T3ZlcmxheSkscTcodl8sdGhpcyxbdGhpcy50b3BPdmVybGF5LHRoaXMuYm90dG9tT3Zl'@; put 'cmxheSx0aGlzLmlubGluZVN0YXJ0T3ZlcmxheSx0aGlzLnRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheSx0aGlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheV0pfWJlZm9yZURyYXcoKXtxNyhkUCx0aGlzLHdnKHZfLHRoaXMpLnJlZHVjZSgobCxhKT0+YS5oYXNSZW5kZXJpbmdT'@; put 'dGF0ZUNoYW5nZWQoKXx8bCwhMSkpLHdnKHZfLHRoaXMpLmZvckVhY2gobD0+bC51cGRhdGVTdGF0ZU9mUmVuZGVyaW5nKCJiZWZvcmUiKSl9YWZ0ZXJEcmF3KCl7dGhpcy5zeW5jU2Nyb2xsV2l0aE1hc3RlcigpLHdnKHZfLHRoaXMpLmZvckVhY2gobD0+e2NvbnN0IGE9bC5oYXNSZW5kZXJp'@; put 'bmdTdGF0ZUNoYW5nZWQoKTtsLnVwZGF0ZVN0YXRlT2ZSZW5kZXJpbmcoImFmdGVyIiksYSYmIWwubmVlZEZ1bGxSZW5kZXImJmwucmVzZXQoKX0pfXJlZnJlc2hBbGwoKXtpZih0aGlzLndvdC5kcmF3bil7aWYoIXRoaXMud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZSlyZXR1cm4gdm9pZCB0'@; put 'aGlzLmRlc3Ryb3koKTt0aGlzLndvdC5kcmF3KCEwKSx0aGlzLnZlcnRpY2FsU2Nyb2xsaW5nJiZ0aGlzLmlubGluZVN0YXJ0T3ZlcmxheS5vblNjcm9sbCgpLHRoaXMuaG9yaXpvbnRhbFNjcm9sbGluZyYmdGhpcy50b3BPdmVybGF5Lm9uU2Nyb2xsKCksdGhpcy52ZXJ0aWNhbFNjcm9sbGlu'@; put 'Zz0hMSx0aGlzLmhvcml6b250YWxTY3JvbGxpbmc9ITF9fXJlZ2lzdGVyTGlzdGVuZXJzKCl7Y29uc3R7cm9vdERvY3VtZW50Omwscm9vdFdpbmRvdzphfT10aGlzLmRvbUJpbmRpbmdzLHttYWluVGFibGVTY3JvbGxhYmxlRWxlbWVudDpkfT10aGlzLnRvcE92ZXJsYXkse21haW5UYWJsZVNj'@; put 'cm9sbGFibGVFbGVtZW50Omh9PXRoaXMuaW5saW5lU3RhcnRPdmVybGF5O3RoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIobC5kb2N1bWVudEVsZW1lbnQsImtleWRvd24iLHVlPT50aGlzLm9uS2V5RG93bih1ZSkpLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIo'@; put 'bC5kb2N1bWVudEVsZW1lbnQsImtleXVwIiwoKT0+dGhpcy5vbktleVVwKCkpLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIobCwidmlzaWJpbGl0eWNoYW5nZSIsKCk9PnRoaXMub25LZXlVcCgpKSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGQsInNjcm9s'@; put 'bCIsdWU9PnRoaXMub25UYWJsZVNjcm9sbCh1ZSkse3Bhc3NpdmU6ITB9KSxkIT09aCYmdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihoLCJzY3JvbGwiLHVlPT50aGlzLm9uVGFibGVTY3JvbGwodWUpLHtwYXNzaXZlOiEwfSk7Y29uc3QgZj1hLmRldmljZVBpeGVsUmF0aW8m'@; put 'JmEuZGV2aWNlUGl4ZWxSYXRpbz4xLHY9dGhpcy5zY3JvbGxhYmxlRWxlbWVudD09PWEsTT10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicHJldmVudFdoZWVsIiksST17cGFzc2l2ZTp2fTtsZXQgcmU7KE18fGZ8fCFDJCgpKSYmdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5l'@; put 'cih0aGlzLnd0VGFibGUud3RSb290RWxlbWVudCwid2hlZWwiLHVlPT50aGlzLm9uQ2xvbmVXaGVlbCh1ZSxNKSxJKSxbdGhpcy50b3BPdmVybGF5LHRoaXMuYm90dG9tT3ZlcmxheSx0aGlzLmlubGluZVN0YXJ0T3ZlcmxheSx0aGlzLnRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheSx0aGlz'@; put 'LmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheV0uZm9yRWFjaCh1ZT0+e3RoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodWUuY2xvbmUud3RUYWJsZS5ob2xkZXIsIndoZWVsIix5ZT0+dGhpcy5vbkNsb25lV2hlZWwoeWUsTSksSSl9KSx0aGlzLmV2ZW50TWFuYWdlci5h'@; put 'ZGRFdmVudExpc3RlbmVyKGEsInJlc2l6ZSIsKCk9PntDRSgoKT0+e2NsZWFyVGltZW91dChyZSksdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoIm9uV2luZG93UmVzaXplIikscmU9c2V0VGltZW91dCgoKT0+e3E3KHlfLHRoaXMsMCl9LDIwMCl9KX0pLHZ8fHRoaXMucmVzaXplT2JzZXJ2'@; put 'ZXIub2JzZXJ2ZSh0aGlzLnd0VGFibGUud3RSb290RWxlbWVudC5wYXJlbnRFbGVtZW50KX1vblRhYmxlU2Nyb2xsKGwpe2NvbnN0IGE9dGhpcy5kb21CaW5kaW5ncy5yb290V2luZG93LGQ9dGhpcy5pbmxpbmVTdGFydE92ZXJsYXkubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQsaD10aGlz'@; put 'LnRvcE92ZXJsYXkubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQsZj1sLnRhcmdldDt0aGlzLmtleVByZXNzZWQmJihoIT09YSYmZiE9PWEmJiFsLnRhcmdldC5jb250YWlucyhoKXx8ZCE9PWEmJmYhPT1hJiYhbC50YXJnZXQuY29udGFpbnMoZCkpfHx0aGlzLnN5bmNTY3JvbGxQb3NpdGlv'@; put 'bnMobCl9b25DbG9uZVdoZWVsKGwsYSl7Y29uc3R7cm9vdFdpbmRvdzpkfT10aGlzLmRvbUJpbmRpbmdzLGg9dGhpcy5pbmxpbmVTdGFydE92ZXJsYXkubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQsZj10aGlzLnRvcE92ZXJsYXkubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQsdj1sLnRh'@; put 'cmdldCxNPWYhPT1kJiZ2IT09ZCYmIXYuY29udGFpbnMoZiksST1oIT09ZCYmdiE9PWQmJiF2LmNvbnRhaW5zKGgpO2lmKHRoaXMua2V5UHJlc3NlZCYmKE18fEkpfHx0aGlzLnNjcm9sbGFibGVFbGVtZW50PT09ZClyZXR1cm47Y29uc3QgRz10aGlzLnRyYW5zbGF0ZU1vdXNlV2hlZWxUb1Nj'@; put 'cm9sbChsKTsoYXx8dGhpcy5zY3JvbGxhYmxlRWxlbWVudCE9PWQmJkcpJiZsLnByZXZlbnREZWZhdWx0KCl9b25LZXlEb3duKGwpe3RoaXMua2V5UHJlc3NlZD1jXyhsLmtleUNvZGUsIkFSUk9XX1VQfEFSUk9XX1JJR0hUfEFSUk9XX0RPV058QVJST1dfTEVGVCIpfW9uS2V5VXAoKXt0aGlz'@; put 'LmtleVByZXNzZWQ9ITF9dHJhbnNsYXRlTW91c2VXaGVlbFRvU2Nyb2xsKGwpe2xldCBhPWlzTmFOKGwuZGVsdGFZKT8tMSpsLndoZWVsRGVsdGFZOmwuZGVsdGFZLGQ9aXNOYU4obC5kZWx0YVgpPy0xKmwud2hlZWxEZWx0YVg6bC5kZWx0YVg7MT09PWwuZGVsdGFNb2RlJiYoZCs9ZCp0aGlz'@; put 'LmJyb3dzZXJMaW5lSGVpZ2h0LGErPWEqdGhpcy5icm93c2VyTGluZUhlaWdodCk7Y29uc3QgaD10aGlzLnNjcm9sbFZlcnRpY2FsbHkoYSksZj10aGlzLnNjcm9sbEhvcml6b250YWxseShkKTtyZXR1cm4gaHx8Zn1zY3JvbGxWZXJ0aWNhbGx5KGwpe2NvbnN0IGE9dGhpcy5zY3JvbGxhYmxl'@; put 'RWxlbWVudC5zY3JvbGxUb3A7cmV0dXJuIHRoaXMuc2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsVG9wKz1sLGEhPT10aGlzLnNjcm9sbGFibGVFbGVtZW50LnNjcm9sbFRvcH1zY3JvbGxIb3Jpem9udGFsbHkobCl7Y29uc3QgYT10aGlzLnNjcm9sbGFibGVFbGVtZW50LnNjcm9sbExlZnQ7cmV0'@; put 'dXJuIHRoaXMuc2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsTGVmdCs9bCxhIT09dGhpcy5zY3JvbGxhYmxlRWxlbWVudC5zY3JvbGxMZWZ0fXN5bmNTY3JvbGxQb3NpdGlvbnMoKXtpZih0aGlzLmRlc3Ryb3llZClyZXR1cm47Y29uc3QgbD10aGlzLnRvcE92ZXJsYXkuY2xvbmUud3RUYWJsZS5o'@; put 'b2xkZXIsYT10aGlzLmlubGluZVN0YXJ0T3ZlcmxheS5jbG9uZS53dFRhYmxlLmhvbGRlcjtsZXQgZD10aGlzLnNjcm9sbGFibGVFbGVtZW50LnNjcm9sbExlZnQsaD10aGlzLnNjcm9sbGFibGVFbGVtZW50LnNjcm9sbFRvcDtpZih0aGlzLndvdC53dFZpZXdwb3J0LmlzSG9yaXpvbnRhbGx5'@; put 'U2Nyb2xsYWJsZUJ5V2luZG93KCkmJihkPXRoaXMuc2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsWCksdGhpcy53b3Qud3RWaWV3cG9ydC5pc1ZlcnRpY2FsbHlTY3JvbGxhYmxlQnlXaW5kb3coKSYmKGg9dGhpcy5zY3JvbGxhYmxlRWxlbWVudC5zY3JvbGxZKSx0aGlzLmhvcml6b250YWxTY3Jv'@; put 'bGxpbmc9dGhpcy5sYXN0U2Nyb2xsWCE9PWQsdGhpcy52ZXJ0aWNhbFNjcm9sbGluZz10aGlzLmxhc3RTY3JvbGxZIT09aCx0aGlzLmxhc3RTY3JvbGxYPWQsdGhpcy5sYXN0U2Nyb2xsWT1oLHRoaXMuaG9yaXpvbnRhbFNjcm9sbGluZyl7bC5zY3JvbGxMZWZ0PWQ7Y29uc3QgZj10aGlzLmJv'@; put 'dHRvbU92ZXJsYXkubmVlZEZ1bGxSZW5kZXI/dGhpcy5ib3R0b21PdmVybGF5LmNsb25lLnd0VGFibGUuaG9sZGVyOm51bGw7ZiYmKGYuc2Nyb2xsTGVmdD1kKX10aGlzLnZlcnRpY2FsU2Nyb2xsaW5nJiYoYS5zY3JvbGxUb3A9aCksdGhpcy5yZWZyZXNoQWxsKCl9c3luY1Njcm9sbFdpdGhN'@; put 'YXN0ZXIoKXtpZighd2coZFAsdGhpcykpcmV0dXJuO2NvbnN0IGw9dGhpcy50b3BPdmVybGF5Lm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50LHtzY3JvbGxMZWZ0OmEsc2Nyb2xsVG9wOmR9PWw7dGhpcy50b3BPdmVybGF5Lm5lZWRGdWxsUmVuZGVyJiYodGhpcy50b3BPdmVybGF5LmNsb25l'@; put 'Lnd0VGFibGUuaG9sZGVyLnNjcm9sbExlZnQ9YSksdGhpcy5ib3R0b21PdmVybGF5Lm5lZWRGdWxsUmVuZGVyJiYodGhpcy5ib3R0b21PdmVybGF5LmNsb25lLnd0VGFibGUuaG9sZGVyLnNjcm9sbExlZnQ9YSksdGhpcy5pbmxpbmVTdGFydE92ZXJsYXkubmVlZEZ1bGxSZW5kZXImJih0aGlz'@; put 'LmlubGluZVN0YXJ0T3ZlcmxheS5jbG9uZS53dFRhYmxlLmhvbGRlci5zY3JvbGxUb3A9ZCkscTcoZFAsdGhpcywhMSl9dXBkYXRlTWFpblNjcm9sbGFibGVFbGVtZW50cygpe3RoaXMuZXZlbnRNYW5hZ2VyLmNsZWFyRXZlbnRzKCEwKSx0aGlzLmlubGluZVN0YXJ0T3ZlcmxheS51cGRhdGVN'@; put 'YWluU2Nyb2xsYWJsZUVsZW1lbnQoKSx0aGlzLnRvcE92ZXJsYXkudXBkYXRlTWFpblNjcm9sbGFibGVFbGVtZW50KCksdGhpcy5ib3R0b21PdmVybGF5Lm5lZWRGdWxsUmVuZGVyJiZ0aGlzLmJvdHRvbU92ZXJsYXkudXBkYXRlTWFpblNjcm9sbGFibGVFbGVtZW50KCk7Y29uc3R7d3RUYWJs'@; put 'ZTpsfT10aGlzLHtyb290V2luZG93OmF9PXRoaXMuZG9tQmluZGluZ3M7dGhpcy5zY3JvbGxhYmxlRWxlbWVudD0iaGlkZGVuIj09PWEuZ2V0Q29tcHV0ZWRTdHlsZShsLnd0Um9vdEVsZW1lbnQucGFyZW50Tm9kZSkuZ2V0UHJvcGVydHlWYWx1ZSgib3ZlcmZsb3ciKT9sLmhvbGRlcjpFRShs'@; put 'LlRBQkxFKSx0aGlzLnJlZ2lzdGVyTGlzdGVuZXJzKCl9ZGVzdHJveSgpe3RoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMuZXZlbnRNYW5hZ2VyLmRlc3Ryb3koKSx0aGlzLnRvcE92ZXJsYXkuZGVzdHJveSgpLHRoaXMuYm90dG9tT3ZlcmxheS5jbG9uZSYmdGhpcy5ib3R0'@; put 'b21PdmVybGF5LmRlc3Ryb3koKSx0aGlzLmlubGluZVN0YXJ0T3ZlcmxheS5kZXN0cm95KCksdGhpcy50b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXkmJnRoaXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LmRlc3Ryb3koKSx0aGlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3Zlcmxh'@; put 'eSYmdGhpcy5ib3R0b21JbmxpbmVTdGFydENvcm5lck92ZXJsYXkuY2xvbmUmJnRoaXMuYm90dG9tSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LmRlc3Ryb3koKSx0aGlzLmRlc3Ryb3llZD0hMH1yZWZyZXNoKCl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNb'@; put 'MF0mJmFyZ3VtZW50c1swXTt0aGlzLnVwZGF0ZUxhc3RTcHJlYWRlclNpemUoKSYmdGhpcy5hZGp1c3RFbGVtZW50c1NpemUoKSx0aGlzLmJvdHRvbU92ZXJsYXkuY2xvbmUmJnRoaXMuYm90dG9tT3ZlcmxheS5yZWZyZXNoKGwpLHRoaXMuaW5saW5lU3RhcnRPdmVybGF5LnJlZnJlc2gobCks'@; put 'dGhpcy50b3BPdmVybGF5LnJlZnJlc2gobCksdGhpcy50b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXkmJnRoaXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LnJlZnJlc2gobCksdGhpcy5ib3R0b21JbmxpbmVTdGFydENvcm5lck92ZXJsYXkmJnRoaXMuYm90dG9tSW5saW5lU3RhcnRD'@; put 'b3JuZXJPdmVybGF5LmNsb25lJiZ0aGlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5yZWZyZXNoKGwpfXVwZGF0ZUxhc3RTcHJlYWRlclNpemUoKXtjb25zdCBsPXRoaXMud3RUYWJsZS5zcHJlYWRlcixhPWwuY2xpZW50V2lkdGgsZD1sLmNsaWVudEhlaWdodCxoPWEhPT10aGlz'@; put 'LnNwcmVhZGVyTGFzdFNpemUud2lkdGh8fGQhPT10aGlzLnNwcmVhZGVyTGFzdFNpemUuaGVpZ2h0O3JldHVybiBoJiYodGhpcy5zcHJlYWRlckxhc3RTaXplLndpZHRoPWEsdGhpcy5zcHJlYWRlckxhc3RTaXplLmhlaWdodD1kKSxofWFkanVzdEVsZW1lbnRzU2l6ZSgpe2NvbnN0e3d0Vmll'@; put 'd3BvcnQ6bH09dGhpcy53b3Qse3d0VGFibGU6YX09dGhpcyx7cm9vdFdpbmRvdzpkfT10aGlzLmRvbUJpbmRpbmdzLGg9dGhpcy5zY3JvbGxhYmxlRWxlbWVudD09PWQsZj10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxDb2x1bW5zIiksdj10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0'@; put 'dGluZygidG90YWxSb3dzIiksTT1sLmdldFJvd0hlYWRlcldpZHRoKCksRz1sLmdldENvbHVtbkhlYWRlckhlaWdodCgpK3RoaXMudG9wT3ZlcmxheS5zdW1DZWxsU2l6ZXMoMCx2KSsxLHJlPU0rdGhpcy5pbmxpbmVTdGFydE92ZXJsYXkuc3VtQ2VsbFNpemVzKDAsZikseWU9YS5oaWRlci5z'@; put 'dHlsZSxHZT0oKCk9PiFoJiZ0aGlzLnNjcm9sbGFibGVFbGVtZW50LnNjcm9sbFRvcD5NYXRoLm1heCgwLEctYS5ob2xkZXIuY2xpZW50SGVpZ2h0KSkoKT8xOjAsc3Q9KCgpPT4haCYmdGhpcy5zY3JvbGxhYmxlRWxlbWVudC5zY3JvbGxMZWZ0Pk1hdGgubWF4KDAscmUtYS5ob2xkZXIuY2xp'@; put 'ZW50V2lkdGgpKSgpPzE6MDt5ZS53aWR0aD1gJHtyZStzdH1weGAseWUuaGVpZ2h0PWAke0crR2V9cHhgLHRoaXMudG9wT3ZlcmxheS5hZGp1c3RFbGVtZW50c1NpemUoKSx0aGlzLmlubGluZVN0YXJ0T3ZlcmxheS5hZGp1c3RFbGVtZW50c1NpemUoKSx0aGlzLmJvdHRvbU92ZXJsYXkuYWRq'@; put 'dXN0RWxlbWVudHNTaXplKCl9ZXhwYW5kSGlkZXJWZXJ0aWNhbGx5QnkobCl7Y29uc3R7d3RUYWJsZTphfT10aGlzO2EuaGlkZXIuc3R5bGUuaGVpZ2h0PWAke3BhcnNlSW50KGEuaGlkZXIuc3R5bGUuaGVpZ2h0LDEwKStsfXB4YH1leHBhbmRIaWRlckhvcml6b250YWxseUJ5KGwpe2NvbnN0'@; put 'e3d0VGFibGU6YX09dGhpczthLmhpZGVyLnN0eWxlLndpZHRoPWAke3BhcnNlSW50KGEuaGlkZXIuc3R5bGUud2lkdGgsMTApK2x9cHhgfWFwcGx5VG9ET00oKXt0aGlzLnd0VGFibGUuaXNWaXNpYmxlKCkmJih0aGlzLnRvcE92ZXJsYXkuYXBwbHlUb0RPTSgpLHRoaXMuYm90dG9tT3Zlcmxh'@; put 'eS5jbG9uZSYmdGhpcy5ib3R0b21PdmVybGF5LmFwcGx5VG9ET00oKSx0aGlzLmlubGluZVN0YXJ0T3ZlcmxheS5hcHBseVRvRE9NKCkpfWdldFBhcmVudE92ZXJsYXkobCl7aWYoIWwpcmV0dXJuIG51bGw7bGV0IGQ9bnVsbDtyZXR1cm4gS24oW3RoaXMudG9wT3ZlcmxheSx0aGlzLmlubGlu'@; put 'ZVN0YXJ0T3ZlcmxheSx0aGlzLmJvdHRvbU92ZXJsYXksdGhpcy50b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXksdGhpcy5ib3R0b21JbmxpbmVTdGFydENvcm5lck92ZXJsYXldLGg9PntoJiZoLmNsb25lJiZoLmNsb25lLnd0VGFibGUuVEFCTEUuY29udGFpbnMobCkmJihkPWguY2xvbmUp'@; put 'fSksZH1zeW5jT3ZlcmxheVRhYmxlQ2xhc3NOYW1lcygpe2NvbnN0IGw9dGhpcy53dFRhYmxlLlRBQkxFO0tuKFt0aGlzLnRvcE92ZXJsYXksdGhpcy5pbmxpbmVTdGFydE92ZXJsYXksdGhpcy5ib3R0b21PdmVybGF5LHRoaXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LHRoaXMuYm90'@; put 'dG9tSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5XSxkPT57ZCYmKGQuY2xvbmUud3RUYWJsZS5UQUJMRS5jbGFzc05hbWU9bC5jbGFzc05hbWUpfSl9fTtmdW5jdGlvbiBoM2UoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIFBldChjKXt2YXIgbD1mdW5jdGlvbiBGZXQoYyxsKXtpZigib2JqZWN0'@; put 'IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11'@; put 'c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJh'@; put 'YmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWNsYXNzIEhldHtjb25zdHJ1Y3RvcihsKXtoM2UodGhpcywic2V0dGluZ3MiLHt9KSxoM2UodGhpcywiZGVmYXVsdHMiLE9iamVjdC5mcmVlemUodGhpcy5nZXREZWZhdWx0cygpKSkscXModGhpcy5kZWZhdWx0'@; put 'cywoYSxkKT0+e2lmKHZvaWQgMCE9PWxbZF0pdGhpcy5zZXR0aW5nc1tkXT1sW2RdO2Vsc2V7aWYodm9pZCAwPT09YSl0aHJvdyBuZXcgRXJyb3IoYEEgcmVxdWlyZWQgc2V0dGluZyAiJHtkfSIgd2FzIG5vdCBwcm92aWRlZGApO3RoaXMuc2V0dGluZ3NbZF09YX19KX1nZXREZWZhdWx0cygp'@; put 'e3JldHVybntmYWNhZGU6dm9pZCAwLHRhYmxlOnZvaWQgMCxpc0RhdGFWaWV3SW5zdGFuY2U6ITAsZXh0ZXJuYWxSb3dDYWxjdWxhdG9yOiExLGN1cnJlbnRSb3dDbGFzc05hbWU6bnVsbCxjdXJyZW50Q29sdW1uQ2xhc3NOYW1lOm51bGwscHJldmVudE92ZXJmbG93OigpPT4hMSxwcmV2ZW50'@; put 'V2hlZWw6ITEsZGF0YTp2b2lkIDAsZml4ZWRDb2x1bW5zU3RhcnQ6MCxmaXhlZFJvd3NUb3A6MCxmaXhlZFJvd3NCb3R0b206MCxzaG91bGRSZW5kZXJJbmxpbmVTdGFydE92ZXJsYXk6KCk9PnRoaXMuZ2V0U2V0dGluZygiZml4ZWRDb2x1bW5zU3RhcnQiKT4wfHx0aGlzLmdldFNldHRpbmco'@; put 'InJvd0hlYWRlcnMiKS5sZW5ndGg+MCxzaG91bGRSZW5kZXJUb3BPdmVybGF5OigpPT50aGlzLmdldFNldHRpbmcoImZpeGVkUm93c1RvcCIpPjB8fHRoaXMuZ2V0U2V0dGluZygiY29sdW1uSGVhZGVycyIpLmxlbmd0aD4wLHNob3VsZFJlbmRlckJvdHRvbU92ZXJsYXk6KCk9PnRoaXMuZ2V0'@; put 'U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIik+MCxtaW5TcGFyZVJvd3M6MCxyb3dIZWFkZXJzOigpPT5bXSxjb2x1bW5IZWFkZXJzOigpPT5bXSx0b3RhbFJvd3M6dm9pZCAwLHRvdGFsQ29sdW1uczp2b2lkIDAsY2VsbFJlbmRlcmVyOihsLGEsZCk9PntMbShkLHRoaXMuZ2V0U2V0dGluZygi'@; put 'ZGF0YSIsbCxhKT8/IiIpfSxjb2x1bW5XaWR0aCgpe30scm93SGVpZ2h0KCl7fSxyb3dIZWlnaHRCeU92ZXJsYXlOYW1lKCl7fSxkZWZhdWx0Q29sdW1uV2lkdGg6NTAsc2VsZWN0aW9uczpudWxsLGhpZGVCb3JkZXJPbk1vdXNlRG93bk92ZXI6ITEsdmlld3BvcnRSb3dDYWxjdWxhdG9yT3Zl'@; put 'cnJpZGU6bnVsbCx2aWV3cG9ydENvbHVtbkNhbGN1bGF0b3JPdmVycmlkZTpudWxsLHZpZXdwb3J0Um93UmVuZGVyaW5nVGhyZXNob2xkOm51bGwsdmlld3BvcnRDb2x1bW5SZW5kZXJpbmdUaHJlc2hvbGQ6bnVsbCxvbkNlbGxNb3VzZURvd246bnVsbCxvbkNlbGxDb250ZXh0TWVudTpudWxs'@; put 'LG9uQ2VsbE1vdXNlT3ZlcjpudWxsLG9uQ2VsbE1vdXNlT3V0Om51bGwsb25DZWxsTW91c2VVcDpudWxsLG9uQ2VsbERibENsaWNrOm51bGwsb25DZWxsQ29ybmVyTW91c2VEb3duOm51bGwsb25DZWxsQ29ybmVyRGJsQ2xpY2s6bnVsbCxiZWZvcmVEcmF3Om51bGwsb25EcmF3Om51bGwsb25C'@; put 'ZWZvcmVSZW1vdmVDZWxsQ2xhc3NOYW1lczpudWxsLG9uQWZ0ZXJEcmF3U2VsZWN0aW9uOm51bGwsb25CZWZvcmVEcmF3Qm9yZGVyczpudWxsLG9uQmVmb3JlVmlld3BvcnRTY3JvbGxIb3Jpem9udGFsbHk6bD0+bCxvbkJlZm9yZVZpZXdwb3J0U2Nyb2xsVmVydGljYWxseTpsPT5sLG9uU2Ny'@; put 'b2xsSG9yaXpvbnRhbGx5Om51bGwsb25TY3JvbGxWZXJ0aWNhbGx5Om51bGwsb25CZWZvcmVUb3VjaFNjcm9sbDpudWxsLG9uQWZ0ZXJNb21lbnR1bVNjcm9sbDpudWxsLG9uTW9kaWZ5Um93SGVhZGVyV2lkdGg6bnVsbCxvbk1vZGlmeUdldENlbGxDb29yZHM6bnVsbCxvbk1vZGlmeUdldENv'@; put 'b3Jkc0VsZW1lbnQ6bnVsbCxvbk1vZGlmeUdldENvb3JkczpudWxsLG9uQmVmb3JlSGlnaGxpZ2h0aW5nUm93SGVhZGVyOmw9Pmwsb25CZWZvcmVIaWdobGlnaHRpbmdDb2x1bW5IZWFkZXI6bD0+bCxvbldpbmRvd1Jlc2l6ZTpudWxsLG9uQ29udGFpbmVyRWxlbWVudFJlc2l6ZTpudWxsLHJl'@; put 'bmRlckFsbENvbHVtbnM6ITEscmVuZGVyQWxsUm93czohMSxncm91cHM6ITEscm93SGVhZGVyV2lkdGg6bnVsbCxjb2x1bW5IZWFkZXJIZWlnaHQ6bnVsbCxoZWFkZXJDbGFzc05hbWU6bnVsbCxydGxNb2RlOiExLGFyaWFUYWdzOiEwLHN0eWxlc0hhbmRsZXI6bnVsbH19dXBkYXRlKGwsYSl7'@; put 'cmV0dXJuIHZvaWQgMD09PWE/cXMobCwoZCxoKT0+e3RoaXMuc2V0dGluZ3NbaF09ZH0pOnRoaXMuc2V0dGluZ3NbbF09YSx0aGlzfWdldFNldHRpbmcobCxhLGQsaCxmKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5zZXR0aW5nc1tsXT90aGlzLnNldHRpbmdzW2xdKGEsZCxoLGYp'@; put 'OnZvaWQgMCE9PWEmJkFycmF5LmlzQXJyYXkodGhpcy5zZXR0aW5nc1tsXSk/dGhpcy5zZXR0aW5nc1tsXVthXTp0aGlzLnNldHRpbmdzW2xdfWdldFNldHRpbmdQdXJlKGwpe3JldHVybiB0aGlzLnNldHRpbmdzW2xdfWhhcyhsKXtyZXR1cm4hIXRoaXMuc2V0dGluZ3NbbF19fWNsYXNzIE1L'@; put 'IGV4dGVuZHMgZ197Y29uc3RydWN0b3IobCxhLGQsaCl7c3VwZXIobCxhLGQsaCwibWFzdGVyIil9YWxpZ25PdmVybGF5c1dpdGhUcmltbWluZ0NvbnRhaW5lcigpe2NvbnN0IGw9b18odGhpcy53dFJvb3RFbGVtZW50KSx7cm9vdFdpbmRvdzphfT10aGlzLmRvbUJpbmRpbmdzO2lmKGw9PT1h'@; put 'KXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJwcmV2ZW50T3ZlcmZsb3ciKXx8KHRoaXMuaG9sZGVyLnN0eWxlLm92ZXJmbG93PSJ2aXNpYmxlIix0aGlzLnd0Um9vdEVsZW1lbnQuc3R5bGUub3ZlcmZsb3c9InZpc2libGUiKTtlbHNle2NvbnN0IGQ9bC5wYXJlbnRFbGVtZW50LGg9VEUo'@; put 'bCwiaGVpZ2h0IixhKSxmPVRFKGwsIm92ZXJmbG93IixhKSx2PXRoaXMuaG9sZGVyLnN0eWxlLHtzY3JvbGxXaWR0aDpNLHNjcm9sbEhlaWdodDpJfT1sO2xldCBHPWwub2Zmc2V0V2lkdGgscmU9bC5vZmZzZXRIZWlnaHQ7aWYoZCYmWyJhdXRvIiwiaGlkZGVuIiwic2Nyb2xsIl0uaW5jbHVk'@; put 'ZXMoZikpe2NvbnN0IHllPWwuY2xvbmVOb2RlKCExKTt5ZS5zdHlsZS5vdmVyZmxvdz0iYXV0byIseWUuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixsLm5leHRFbGVtZW50U2libGluZz9kLmluc2VydEJlZm9yZSh5ZSxsLm5leHRFbGVtZW50U2libGluZyk6ZC5hcHBlbmRDaGlsZCh5ZSk7'@; put 'Y29uc3QgRWU9cGFyc2VJbnQoYS5nZXRDb21wdXRlZFN0eWxlKHllKS5oZWlnaHQsMTApO2QucmVtb3ZlQ2hpbGQoeWUpLDA9PT1FZSYmKHJlPTApfXJlPU1hdGgubWluKHJlLEkpLHYuaGVpZ2h0PSJhdXRvIj09PWg/ImF1dG8iOmAke3JlfXB4YCxHPU1hdGgubWluKEcsTSksdi53aWR0aD1g'@; put 'JHtHfXB4YCx2Lm92ZXJmbG93PSIiLHRoaXMuaGFzVGFibGVIZWlnaHQ9ImF1dG8iPT09di5oZWlnaHR8fHJlPjAsdGhpcy5oYXNUYWJsZVdpZHRoPUc+MH10aGlzLmlzVGFibGVWaXNpYmxlPXo3KHRoaXMuVEFCTEUpfW1hcmtPdmVyc2l6ZWRDb2x1bW5IZWFkZXJzKCl7Y29uc3R7d3RTZXR0'@; put 'aW5nczpsfT10aGlzLHt3dFZpZXdwb3J0OmF9PXRoaXMuZGF0YUFjY2Vzc09iamVjdCxkPSJtYXN0ZXIiLGY9bC5nZXRTZXR0aW5nKCJjb2x1bW5IZWFkZXJzIikubGVuZ3RoO2lmKGYmJiFhLmhhc092ZXJzaXplZENvbHVtbkhlYWRlcnNNYXJrZWRbZF0pe2NvbnN0IE09bC5nZXRTZXR0aW5n'@; put 'KCJyb3dIZWFkZXJzIikubGVuZ3RoLEk9dGhpcy5nZXRSZW5kZXJlZENvbHVtbnNDb3VudCgpO2ZvcihsZXQgRz0wO0c8ZjtHKyspZm9yKGxldCByZT0tMSpNO3JlPEk7cmUrKyl0aGlzLm1hcmtJZk92ZXJzaXplZENvbHVtbkhlYWRlcihyZSk7YS5oYXNPdmVyc2l6ZWRDb2x1bW5IZWFkZXJz'@; put 'TWFya2VkW2RdPSEwfX19eGwoTUssbDNlKSx4bChNSyxoSyk7Y29uc3QgTmV0PU1LO2Z1bmN0aW9uIEJFKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBWZXQoYyl7dmFyIGw9ZnVuY3Rpb24gQmV0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJv'@; put 'bC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4o'@; put 'InN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpj'@; put 'W2xdPWEsY31jbGFzcyBqZXR7Y29uc3RydWN0b3IoKXtCRSh0aGlzLCJjb3VudCIsMCksQkUodGhpcywic3RhcnRSb3ciLDApLEJFKHRoaXMsImVuZFJvdyIsMCksQkUodGhpcywic3RhcnRQb3NpdGlvbiIsMCksQkUodGhpcywiaXNWaXNpYmxlSW5UcmltbWluZ0NvbnRhaW5lciIsITApfWlu'@; put 'aXRpYWxpemUobCl7bGV0e3RvdGFsUm93czphfT1sO3RoaXMuY291bnQ9YSx0aGlzLmVuZFJvdz10aGlzLmNvdW50LTF9cHJvY2Vzcygpe31maW5hbGl6ZSgpe319ZnVuY3Rpb24gakUoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIHpldChjKXt2YXIgbD1mdW5jdGlvbiBVZXQoYyxsKXtpZigi'@; put 'b2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0'@; put 'aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxl'@; put 'bnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWIoMzkwOTIpLGIoMTQzNjApO2NsYXNzIGYzZXtjb25zdHJ1Y3Rvcigpe2pFKHRoaXMsImNvdW50IiwwKSxqRSh0aGlzLCJzdGFydFJvdyIsbnVsbCksakUodGhpcywiZW5kUm93IixudWxsKSxqRSh0'@; put 'aGlzLCJzdGFydFBvc2l0aW9uIixudWxsKSxqRSh0aGlzLCJpc1Zpc2libGVJblRyaW1taW5nQ29udGFpbmVyIiwhMSl9aW5pdGlhbGl6ZSgpe31wcm9jZXNzKGwsYSl7Y29uc3R7dG90YWxDYWxjdWxhdGVkSGVpZ2h0OmQsemVyb0Jhc2VkU2Nyb2xsT2Zmc2V0OmgsaW5uZXJWaWV3cG9ydEhl'@; put 'aWdodDpmfT1hO2Q8PWgmJih0aGlzLnN0YXJ0Um93PWwpLGQ+PWgmJmQ8PWYmJm51bGw9PT10aGlzLnN0YXJ0Um93JiYodGhpcy5zdGFydFJvdz1sKSx0aGlzLmVuZFJvdz1sfWZpbmFsaXplKGwpe3ZhciBhO2NvbnN0e3Njcm9sbE9mZnNldDpkLHZpZXdwb3J0SGVpZ2h0OmgsaG9yaXpvbnRh'@; put 'bFNjcm9sbGJhckhlaWdodDpmLHRvdGFsUm93czp2LG5lZWRSZXZlcnNlOk0sc3RhcnRQb3NpdGlvbnM6SSxyb3dIZWlnaHQ6R309bDtpZih0aGlzLmVuZFJvdz09PXYtMSYmTSlmb3IodGhpcy5zdGFydFJvdz10aGlzLmVuZFJvdzt0aGlzLnN0YXJ0Um93PjA7KXtjb25zdCB1ZT1JW3RoaXMu'@; put 'ZW5kUm93XStHLUlbdGhpcy5zdGFydFJvdy0xXTtpZih0aGlzLnN0YXJ0Um93LT0xLHVlPj1oLWYpYnJlYWt9dGhpcy5zdGFydFBvc2l0aW9uPW51bGwhPT0oYT1JW3RoaXMuc3RhcnRSb3ddKSYmdm9pZCAwIT09YT9hOm51bGwsdGhpcy5pc1Zpc2libGVJblRyaW1taW5nQ29udGFpbmVyPSEo'@; put 'ZCtoLWY8MHx8ZD5JLmF0KC0xKStHKSx2PHRoaXMuZW5kUm93JiYodGhpcy5lbmRSb3c9di0xKSxudWxsIT09dGhpcy5zdGFydFJvdyYmKHRoaXMuY291bnQ9dGhpcy5lbmRSb3ctdGhpcy5zdGFydFJvdysxKX19ZnVuY3Rpb24gcDNlKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBaZXQoYyl7'@; put 'dmFyIGw9ZnVuY3Rpb24gV2V0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhy'@; put 'b3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5k'@; put 'ZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31jbGFzcyBZZXQgZXh0ZW5kcyBmM2V7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHAzZSh0aGlzLCJyb3dTdGFydE9mZnNldCIsMCks'@; put 'cDNlKHRoaXMsInJvd0VuZE9mZnNldCIsMCl9ZmluYWxpemUobCl7dmFyIGE7c3VwZXIuZmluYWxpemUobCk7Y29uc3R7b3ZlcnJpZGVGbjpkLHRvdGFsUm93czpoLHN0YXJ0UG9zaXRpb25zOmZ9PWw7aWYobnVsbCE9PXRoaXMuc3RhcnRSb3cmJiJmdW5jdGlvbiI9PXR5cGVvZiBkKXtjb25z'@; put 'dCB2PXRoaXMuc3RhcnRSb3csTT10aGlzLmVuZFJvdztkKHRoaXMpLHRoaXMucm93U3RhcnRPZmZzZXQ9di10aGlzLnN0YXJ0Um93LHRoaXMucm93RW5kT2Zmc2V0PXRoaXMuZW5kUm93LU19dGhpcy5zdGFydFJvdzwwJiYodGhpcy5zdGFydFJvdz0wKSx0aGlzLnN0YXJ0UG9zaXRpb249bnVs'@; put 'bCE9PShhPWZbdGhpcy5zdGFydFJvd10pJiZ2b2lkIDAhPT1hP2E6bnVsbCxoPHRoaXMuZW5kUm93JiYodGhpcy5lbmRSb3c9aC0xKSxudWxsIT09dGhpcy5zdGFydFJvdyYmKHRoaXMuY291bnQ9dGhpcy5lbmRSb3ctdGhpcy5zdGFydFJvdysxKX19ZnVuY3Rpb24gekUoYyxsLGEpe3JldHVy'@; put 'bihsPWZ1bmN0aW9uIEdldChjKXt2YXIgbD1mdW5jdGlvbiAkZXQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10'@; put 'eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwr'@; put 'IiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWNsYXNzIEtldHtjb25zdHJ1Y3Rvcigpe3pFKHRoaXMsImNvdW50IiwwKSx6RSh0aGlzLCJzdGFydFJvdyIsbnVs'@; put 'bCksekUodGhpcywiZW5kUm93IixudWxsKSx6RSh0aGlzLCJzdGFydFBvc2l0aW9uIixudWxsKSx6RSh0aGlzLCJpc1Zpc2libGVJblRyaW1taW5nQ29udGFpbmVyIiwhMSl9aW5pdGlhbGl6ZSgpe31wcm9jZXNzKGwsYSl7Y29uc3R7dG90YWxDYWxjdWxhdGVkSGVpZ2h0OmQsemVyb0Jhc2Vk'@; put 'U2Nyb2xsT2Zmc2V0OmgsaW5uZXJWaWV3cG9ydEhlaWdodDpmLHJvd0hlaWdodDp2fT1hO2Q+PWgmJmQrdjw9ZiYmKG51bGw9PT10aGlzLnN0YXJ0Um93JiYodGhpcy5zdGFydFJvdz1sKSx0aGlzLmVuZFJvdz1sKX1maW5hbGl6ZShsKXt2YXIgYTtjb25zdHtzY3JvbGxPZmZzZXQ6ZCx2aWV3'@; put 'cG9ydEhlaWdodDpoLGhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQ6Zix0b3RhbFJvd3M6dixuZWVkUmV2ZXJzZTpNLHN0YXJ0UG9zaXRpb25zOkkscm93SGVpZ2h0Okd9PWw7aWYodGhpcy5lbmRSb3c9PT12LTEmJk0pZm9yKHRoaXMuc3RhcnRSb3c9dGhpcy5lbmRSb3c7dGhpcy5zdGFydFJv'@; put 'dz4wOyl7Y29uc3QgeWU9SVt0aGlzLmVuZFJvd10rRy1JW3RoaXMuc3RhcnRSb3ctMV07aWYoeWU8PWgtZiYmKHRoaXMuc3RhcnRSb3ctPTEpLHllPj1oLWYpYnJlYWt9dGhpcy5zdGFydFBvc2l0aW9uPW51bGwhPT0oYT1JW3RoaXMuc3RhcnRSb3ddKSYmdm9pZCAwIT09YT9hOm51bGw7Y29u'@; put 'c3QgcmU9ZCtoLWYsdWU9bnVsbD09PXRoaXMuc3RhcnRSb3c/MDpsLmdldFJvd0hlaWdodCh0aGlzLnN0YXJ0Um93KTt0aGlzLmlzVmlzaWJsZUluVHJpbW1pbmdDb250YWluZXI9IShyZTx1ZXx8ZD5JLmF0KC0xKSksdjx0aGlzLmVuZFJvdyYmKHRoaXMuZW5kUm93PXYtMSksbnVsbCE9PXRo'@; put 'aXMuc3RhcnRSb3cmJih0aGlzLmNvdW50PXRoaXMuZW5kUm93LXRoaXMuc3RhcnRSb3crMSl9fWZ1bmN0aW9uIFVFKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBYZXQoYyl7dmFyIGw9ZnVuY3Rpb24gcWV0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1j'@; put 'W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1y'@; put 'ZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6'@; put 'ITB9KTpjW2xdPWEsY31jbGFzcyBKZXR7Y29uc3RydWN0b3IoKXtVRSh0aGlzLCJjb3VudCIsMCksVUUodGhpcywic3RhcnRDb2x1bW4iLDApLFVFKHRoaXMsImVuZENvbHVtbiIsMCksVUUodGhpcywic3RhcnRQb3NpdGlvbiIsMCksVUUodGhpcywiaXNWaXNpYmxlSW5UcmltbWluZ0NvbnRh'@; put 'aW5lciIsITApfWluaXRpYWxpemUobCl7bGV0e3RvdGFsQ29sdW1uczphfT1sO3RoaXMuY291bnQ9YSx0aGlzLmVuZENvbHVtbj10aGlzLmNvdW50LTF9cHJvY2Vzcygpe31maW5hbGl6ZSgpe319ZnVuY3Rpb24gWkUoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIFFldChjKXt2YXIgbD1mdW5j'@; put 'dGlvbiBldHQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlw'@; put 'ZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3Bl'@; put 'cnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWNsYXNzIGczZXtjb25zdHJ1Y3Rvcigpe1pFKHRoaXMsImNvdW50IiwwKSxaRSh0aGlzLCJzdGFydENvbHVtbiIsbnVsbCksWkUodGhpcywiZW5kQ29sdW1uIixudWxs'@; put 'KSxaRSh0aGlzLCJzdGFydFBvc2l0aW9uIixudWxsKSxaRSh0aGlzLCJpc1Zpc2libGVJblRyaW1taW5nQ29udGFpbmVyIiwhMSl9aW5pdGlhbGl6ZSgpe31wcm9jZXNzKGwsYSl7Y29uc3R7dG90YWxDYWxjdWxhdGVkV2lkdGg6ZCx6ZXJvQmFzZWRTY3JvbGxPZmZzZXQ6aCx2aWV3cG9ydFdp'@; put 'ZHRoOmZ9PWE7ZDw9aCYmKHRoaXMuc3RhcnRDb2x1bW49bCksZD49aCYmZDw9aCsoaD4wP2YrMTpmKSYmbnVsbD09dGhpcy5zdGFydENvbHVtbiYmKHRoaXMuc3RhcnRDb2x1bW49bCksdGhpcy5lbmRDb2x1bW49bH1maW5hbGl6ZShsKXt2YXIgYTtjb25zdHtzY3JvbGxPZmZzZXQ6ZCx2aWV3'@; put 'cG9ydFdpZHRoOmgsaW5saW5lU3RhcnRPZmZzZXQ6Zix6ZXJvQmFzZWRTY3JvbGxPZmZzZXQ6dix0b3RhbENvbHVtbnM6TSxuZWVkUmV2ZXJzZTpJLHN0YXJ0UG9zaXRpb25zOkcsY29sdW1uV2lkdGg6cmV9PWw7aWYodGhpcy5lbmRDb2x1bW49PT1NLTEmJkkpZm9yKHRoaXMuc3RhcnRDb2x1'@; put 'bW49dGhpcy5lbmRDb2x1bW47dGhpcy5zdGFydENvbHVtbj4wOyl7Y29uc3QgRWU9R1t0aGlzLmVuZENvbHVtbl0rcmUtR1t0aGlzLnN0YXJ0Q29sdW1uLTFdO2lmKHRoaXMuc3RhcnRDb2x1bW4tPTEsRWU+aClicmVha310aGlzLnN0YXJ0UG9zaXRpb249bnVsbCE9PShhPUdbdGhpcy5zdGFy'@; put 'dENvbHVtbl0pJiZ2b2lkIDAhPT1hP2E6bnVsbCx0aGlzLmlzVmlzaWJsZUluVHJpbW1pbmdDb250YWluZXI9IShkK2gtKHY+MD9oKzE6aCk8LTEqZnx8ZD5HLmF0KC0xKStyZXx8LTEqZC1oPjApLE08dGhpcy5lbmRDb2x1bW4mJih0aGlzLmVuZENvbHVtbj1NLTEpLG51bGwhPT10aGlzLnN0'@; put 'YXJ0Q29sdW1uJiYodGhpcy5jb3VudD10aGlzLmVuZENvbHVtbi10aGlzLnN0YXJ0Q29sdW1uKzEpfX1mdW5jdGlvbiBtM2UoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIHR0dChjKXt2YXIgbD1mdW5jdGlvbiBudHQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3Zh'@; put 'ciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVl'@; put 'LiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0'@; put 'YWJsZTohMH0pOmNbbF09YSxjfWNsYXNzIHJ0dCBleHRlbmRzIGczZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksbTNlKHRoaXMsImNvbHVtblN0YXJ0T2Zmc2V0IiwwKSxtM2UodGhpcywiY29sdW1uRW5kT2Zmc2V0IiwwKX1maW5hbGl6ZShsKXt2YXIgYTtzdXBlci5maW5h'@; put 'bGl6ZShsKTtjb25zdHtvdmVycmlkZUZuOmQsdG90YWxDb2x1bW5zOmgsc3RhcnRQb3NpdGlvbnM6Zn09bDtpZihudWxsIT09dGhpcy5zdGFydENvbHVtbiYmImZ1bmN0aW9uIj09dHlwZW9mIGQpe2NvbnN0IHY9dGhpcy5zdGFydENvbHVtbixNPXRoaXMuZW5kQ29sdW1uO2QodGhpcyksdGhp'@; put 'cy5jb2x1bW5TdGFydE9mZnNldD12LXRoaXMuc3RhcnRDb2x1bW4sdGhpcy5jb2x1bW5FbmRPZmZzZXQ9dGhpcy5lbmRDb2x1bW4tTX10aGlzLnN0YXJ0Q29sdW1uPDAmJih0aGlzLnN0YXJ0Q29sdW1uPTApLHRoaXMuc3RhcnRQb3NpdGlvbj1udWxsIT09KGE9Zlt0aGlzLnN0YXJ0Q29sdW1u'@; put 'XSkmJnZvaWQgMCE9PWE/YTpudWxsLGg8dGhpcy5lbmRDb2x1bW4mJih0aGlzLmVuZENvbHVtbj1oLTEpLG51bGwhPT10aGlzLnN0YXJ0Q29sdW1uJiYodGhpcy5jb3VudD10aGlzLmVuZENvbHVtbi10aGlzLnN0YXJ0Q29sdW1uKzEpfX1mdW5jdGlvbiBXRShjLGwsYSl7cmV0dXJuKGw9ZnVu'@; put 'Y3Rpb24gaXR0KGMpe3ZhciBsPWZ1bmN0aW9uIGF0dChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBk'@; put 'KXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkp'@; put 'aW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9Y2xhc3Mgc3R0e2NvbnN0cnVjdG9yKCl7V0UodGhpcywiY291bnQiLDApLFdFKHRoaXMsInN0YXJ0Q29sdW1uIixudWxsKSxX'@; put 'RSh0aGlzLCJlbmRDb2x1bW4iLG51bGwpLFdFKHRoaXMsInN0YXJ0UG9zaXRpb24iLG51bGwpLFdFKHRoaXMsImlzVmlzaWJsZUluVHJpbW1pbmdDb250YWluZXIiLCExKX1pbml0aWFsaXplKCl7fXByb2Nlc3MobCxhKXtjb25zdHt0b3RhbENhbGN1bGF0ZWRXaWR0aDpkLHplcm9CYXNlZFNj'@; put 'cm9sbE9mZnNldDpoLHZpZXdwb3J0V2lkdGg6Zixjb2x1bW5XaWR0aDp2fT1hO2Q+PWgmJmQrdjw9aCsoaD4wP2YrMTpmKSYmKG51bGw9PXRoaXMuc3RhcnRDb2x1bW4mJih0aGlzLnN0YXJ0Q29sdW1uPWwpLHRoaXMuZW5kQ29sdW1uPWwpfWZpbmFsaXplKGwpe3ZhciBhO2NvbnN0e3Njcm9s'@; put 'bE9mZnNldDpkLHZpZXdwb3J0V2lkdGg6aCxpbmxpbmVTdGFydE9mZnNldDpmLHplcm9CYXNlZFNjcm9sbE9mZnNldDp2LHRvdGFsQ29sdW1uczpNLG5lZWRSZXZlcnNlOkksc3RhcnRQb3NpdGlvbnM6Ryxjb2x1bW5XaWR0aDpyZX09bDtpZih0aGlzLmVuZENvbHVtbj09PU0tMSYmSSlmb3Io'@; put 'dGhpcy5zdGFydENvbHVtbj10aGlzLmVuZENvbHVtbjt0aGlzLnN0YXJ0Q29sdW1uPjA7KXtjb25zdCBCZT1HW3RoaXMuZW5kQ29sdW1uXStyZS1HW3RoaXMuc3RhcnRDb2x1bW4tMV07aWYoQmU8PWgmJih0aGlzLnN0YXJ0Q29sdW1uLT0xKSxCZT49aClicmVha310aGlzLnN0YXJ0UG9zaXRp'@; put 'b249bnVsbCE9PShhPUdbdGhpcy5zdGFydENvbHVtbl0pJiZ2b2lkIDAhPT1hP2E6bnVsbDtjb25zdCB5ZT1kK2gtKHY+MD9oKzE6aCksRWU9bnVsbD09PXRoaXMuc3RhcnRDb2x1bW4/MDpsLmdldENvbHVtbldpZHRoKHRoaXMuc3RhcnRDb2x1bW4pO3RoaXMuaXNWaXNpYmxlSW5UcmltbWlu'@; put 'Z0NvbnRhaW5lcj0hKHllPC0xKmZ8fGQ+Ry5hdCgtMSl8fC0xKmQtaD4tMSpFZSksTTx0aGlzLmVuZENvbHVtbiYmKHRoaXMuZW5kQ29sdW1uPU0tMSksbnVsbCE9PXRoaXMuc3RhcnRDb2x1bW4mJih0aGlzLmNvdW50PXRoaXMuZW5kQ29sdW1uLXRoaXMuc3RhcnRDb2x1bW4rMSl9fWZ1bmN0'@; put 'aW9uIHYzZShjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gb3R0KGMpe3ZhciBsPWZ1bmN0aW9uIGx0dChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZh'@; put 'dWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5'@; put 'bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9Y2xhc3MgeTNle2NvbnN0cnVjdG9yKGwpe3YzZSh0aGlzLCJjYWxjdWxhdGlv'@; put 'blR5cGVzIixbXSksdjNlKHRoaXMsImNhbGN1bGF0aW9uUmVzdWx0cyIsbmV3IE1hcCksdGhpcy5jYWxjdWxhdGlvblR5cGVzPWx9X2luaXRpYWxpemUobCl7dGhpcy5jYWxjdWxhdGlvblR5cGVzLmZvckVhY2goYT0+e2xldFtkLGhdPWE7dGhpcy5jYWxjdWxhdGlvblJlc3VsdHMuc2V0KGQs'@; put 'aCksaC5pbml0aWFsaXplKGwpfSl9X3Byb2Nlc3MobCxhKXt0aGlzLmNhbGN1bGF0aW9uVHlwZXMuZm9yRWFjaChkPT57bGV0WyxoXT1kO3JldHVybiBoLnByb2Nlc3MobCxhKX0pfV9maW5hbGl6ZShsKXt0aGlzLmNhbGN1bGF0aW9uVHlwZXMuZm9yRWFjaChhPT57bGV0WyxkXT1hO3JldHVy'@; put 'biBkLmZpbmFsaXplKGwpfSl9Z2V0UmVzdWx0c0ZvcihsKXtyZXR1cm4gdGhpcy5jYWxjdWxhdGlvblJlc3VsdHMuZ2V0KGwpfX1mdW5jdGlvbiAkMihjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gY3R0KGMpe3ZhciBsPWZ1bmN0aW9uIHV0dChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8'@; put 'IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBw'@; put 'cmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmln'@; put 'dXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9Y2xhc3MgZHR0IGV4dGVuZHMgeTNle2NvbnN0cnVjdG9yKGwpe2xldHtjYWxjdWxhdGlvblR5cGVzOmEsdmlld3BvcnRIZWlnaHQ6ZCxzY3JvbGxPZmZzZXQ6aCx0b3RhbFJvd3M6ZixkZWZhdWx0Um93SGVpZ2h0OnYscm93SGVpZ2h0'@; put 'Rm46TSxvdmVycmlkZUZuOkksaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodDpHfT1sO3N1cGVyKGEpLCQyKHRoaXMsInZpZXdwb3J0SGVpZ2h0IiwwKSwkMih0aGlzLCJzY3JvbGxPZmZzZXQiLDApLCQyKHRoaXMsInplcm9CYXNlZFNjcm9sbE9mZnNldCIsMCksJDIodGhpcywidG90YWxSb3dz'@; put 'IiwwKSwkMih0aGlzLCJyb3dIZWlnaHRGbiIsbnVsbCksJDIodGhpcywicm93SGVpZ2h0IiwwKSwkMih0aGlzLCJvdmVycmlkZUZuIixudWxsKSwkMih0aGlzLCJob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0IiwwKSwkMih0aGlzLCJpbm5lclZpZXdwb3J0SGVpZ2h0IiwwKSwkMih0aGlzLCJ0'@; put 'b3RhbENhbGN1bGF0ZWRIZWlnaHQiLDApLCQyKHRoaXMsInN0YXJ0UG9zaXRpb25zIixbXSksJDIodGhpcywibmVlZFJldmVyc2UiLCEwKSx0aGlzLmRlZmF1bHRIZWlnaHQ9dix0aGlzLnZpZXdwb3J0SGVpZ2h0PWQsdGhpcy5zY3JvbGxPZmZzZXQ9aCx0aGlzLnplcm9CYXNlZFNjcm9sbE9m'@; put 'ZnNldD1NYXRoLm1heChoLDApLHRoaXMudG90YWxSb3dzPWYsdGhpcy5yb3dIZWlnaHRGbj1NLHRoaXMub3ZlcnJpZGVGbj1JLHRoaXMuaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodD1HPz8wLHRoaXMuaW5uZXJWaWV3cG9ydEhlaWdodD10aGlzLnplcm9CYXNlZFNjcm9sbE9mZnNldCt0aGlz'@; put 'LnZpZXdwb3J0SGVpZ2h0LXRoaXMuaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCx0aGlzLmNhbGN1bGF0ZSgpfWNhbGN1bGF0ZSgpe3RoaXMuX2luaXRpYWxpemUodGhpcyk7Zm9yKGxldCBsPTA7bDx0aGlzLnRvdGFsUm93cztsKyspaWYodGhpcy5yb3dIZWlnaHQ9dGhpcy5nZXRSb3dIZWln'@; put 'aHQobCksdGhpcy5fcHJvY2VzcyhsLHRoaXMpLHRoaXMuc3RhcnRQb3NpdGlvbnMucHVzaCh0aGlzLnRvdGFsQ2FsY3VsYXRlZEhlaWdodCksdGhpcy50b3RhbENhbGN1bGF0ZWRIZWlnaHQrPXRoaXMucm93SGVpZ2h0LHRoaXMudG90YWxDYWxjdWxhdGVkSGVpZ2h0Pj10aGlzLmlubmVyVmll'@; put 'd3BvcnRIZWlnaHQpe3RoaXMubmVlZFJldmVyc2U9ITE7YnJlYWt9dGhpcy5fZmluYWxpemUodGhpcyl9Z2V0Um93SGVpZ2h0KGwpe2NvbnN0IGE9dGhpcy5yb3dIZWlnaHRGbihsKTtyZXR1cm4gaXNOYU4oYSk/dGhpcy5kZWZhdWx0SGVpZ2h0OmF9fWZ1bmN0aW9uIGMzKGMsbCxhKXtyZXR1'@; put 'cm4obD1mdW5jdGlvbiBodHQoYyl7dmFyIGw9ZnVuY3Rpb24gZnR0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9'@; put 'dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDps'@; put 'KyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31jb25zdCBiXz01MDtjbGFzcyBwdHQgZXh0ZW5kcyB5M2V7Y29uc3RydWN0b3IobCl7bGV0e2NhbGN1bGF0aW9u'@; put 'VHlwZXM6YSx2aWV3cG9ydFdpZHRoOmQsc2Nyb2xsT2Zmc2V0OmgsdG90YWxDb2x1bW5zOmYsY29sdW1uV2lkdGhGbjp2LG92ZXJyaWRlRm46TSxpbmxpbmVTdGFydE9mZnNldDpJfT1sO3N1cGVyKGEpLGMzKHRoaXMsInZpZXdwb3J0V2lkdGgiLDApLGMzKHRoaXMsInNjcm9sbE9mZnNldCIs'@; put 'MCksYzModGhpcywiemVyb0Jhc2VkU2Nyb2xsT2Zmc2V0IiwwKSxjMyh0aGlzLCJ0b3RhbENvbHVtbnMiLDApLGMzKHRoaXMsImNvbHVtbldpZHRoRm4iLG51bGwpLGMzKHRoaXMsImNvbHVtbldpZHRoIiwwKSxjMyh0aGlzLCJvdmVycmlkZUZuIixudWxsKSxjMyh0aGlzLCJpbmxpbmVTdGFy'@; put 'dE9mZnNldCIsMCksYzModGhpcywidG90YWxDYWxjdWxhdGVkV2lkdGgiLDApLGMzKHRoaXMsInN0YXJ0UG9zaXRpb25zIixbXSksYzModGhpcywibmVlZFJldmVyc2UiLCEwKSx0aGlzLnZpZXdwb3J0V2lkdGg9ZCx0aGlzLnNjcm9sbE9mZnNldD1oLHRoaXMuemVyb0Jhc2VkU2Nyb2xsT2Zm'@; put 'c2V0PU1hdGgubWF4KGgsMCksdGhpcy50b3RhbENvbHVtbnM9Zix0aGlzLmNvbHVtbldpZHRoRm49dix0aGlzLm92ZXJyaWRlRm49TSx0aGlzLmlubGluZVN0YXJ0T2Zmc2V0PUksdGhpcy5jYWxjdWxhdGUoKX1jYWxjdWxhdGUoKXt0aGlzLl9pbml0aWFsaXplKHRoaXMpO2ZvcihsZXQgbD0w'@; put 'O2w8dGhpcy50b3RhbENvbHVtbnM7bCsrKWlmKHRoaXMuY29sdW1uV2lkdGg9dGhpcy5nZXRDb2x1bW5XaWR0aChsKSx0aGlzLl9wcm9jZXNzKGwsdGhpcyksdGhpcy5zdGFydFBvc2l0aW9ucy5wdXNoKHRoaXMudG90YWxDYWxjdWxhdGVkV2lkdGgpLHRoaXMudG90YWxDYWxjdWxhdGVkV2lk'@; put 'dGgrPXRoaXMuY29sdW1uV2lkdGgsdGhpcy50b3RhbENhbGN1bGF0ZWRXaWR0aD49dGhpcy56ZXJvQmFzZWRTY3JvbGxPZmZzZXQrdGhpcy52aWV3cG9ydFdpZHRoKXt0aGlzLm5lZWRSZXZlcnNlPSExO2JyZWFrfXRoaXMuX2ZpbmFsaXplKHRoaXMpfWdldENvbHVtbldpZHRoKGwpe2NvbnN0'@; put 'IGE9dGhpcy5jb2x1bW5XaWR0aEZuKGwpO3JldHVybiBpc05hTihhKT9iXzphfX1jb25zdCBtdHQ9Y2xhc3MgZ3R0e2NvbnN0cnVjdG9yKGwsYSxkLGgsZil7dGhpcy5kYXRhQWNjZXNzT2JqZWN0PWwsdGhpcy53b3Q9bC53b3QsdGhpcy5pbnN0YW5jZT10aGlzLndvdCx0aGlzLmRvbUJpbmRp'@; put 'bmdzPWEsdGhpcy53dFNldHRpbmdzPWQsdGhpcy53dFRhYmxlPWYsdGhpcy5vdmVyc2l6ZWRSb3dzPVtdLHRoaXMub3ZlcnNpemVkQ29sdW1uSGVhZGVycz1bXSx0aGlzLmhhc092ZXJzaXplZENvbHVtbkhlYWRlcnNNYXJrZWQ9e30sdGhpcy5jbGllbnRIZWlnaHQ9MCx0aGlzLnJvd0hlYWRl'@; put 'cldpZHRoPU5hTix0aGlzLnJvd3NWaXNpYmxlQ2FsY3VsYXRvcj1udWxsLHRoaXMuY29sdW1uc1Zpc2libGVDYWxjdWxhdG9yPW51bGwsdGhpcy5yb3dzQ2FsY3VsYXRvclR5cGVzPW5ldyBNYXAoW1sicmVuZGVyZWQiLCgpPT50aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicmVuZGVyQWxs'@; put 'Um93cyIpP25ldyBqZXQ6bmV3IFlldF0sWyJmdWxseVZpc2libGUiLCgpPT5uZXcgS2V0XSxbInBhcnRpYWxseVZpc2libGUiLCgpPT5uZXcgZjNlXV0pLHRoaXMuY29sdW1uc0NhbGN1bGF0b3JUeXBlcz1uZXcgTWFwKFtbInJlbmRlcmVkIiwoKT0+dGhpcy53dFNldHRpbmdzLmdldFNldHRp'@; put 'bmcoInJlbmRlckFsbENvbHVtbnMiKT9uZXcgSmV0Om5ldyBydHRdLFsiZnVsbHlWaXNpYmxlIiwoKT0+bmV3IHN0dF0sWyJwYXJ0aWFsbHlWaXNpYmxlIiwoKT0+bmV3IGczZV1dKSx0aGlzLmV2ZW50TWFuYWdlcj1oLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5k'@; put 'b21CaW5kaW5ncy5yb290V2luZG93LCJyZXNpemUiLCgpPT57dGhpcy5jbGllbnRIZWlnaHQ9dGhpcy5nZXRXb3Jrc3BhY2VIZWlnaHQoKX0pfWdldFdvcmtzcGFjZUhlaWdodCgpe2NvbnN0IGE9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LnRvcE92ZXJsYXlUcmltbWluZ0NvbnRhaW5lcjtsZXQg'@; put 'ZD0wO3JldHVybiBkPWE9PT10aGlzLmRvbUJpbmRpbmdzLnJvb3RXaW5kb3c/dGhpcy5kb21CaW5kaW5ncy5yb290RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDpTdShhKT4wJiZhLmNsaWVudEhlaWdodD4wP2EuY2xpZW50SGVpZ2h0OjEvMCxkfWdldFZpZXdwb3J0SGVp'@; put 'Z2h0KCl7bGV0IGw9dGhpcy5nZXRXb3Jrc3BhY2VIZWlnaHQoKTtpZihsPT09MS8wKXJldHVybiBsO2NvbnN0IGE9dGhpcy5nZXRDb2x1bW5IZWFkZXJIZWlnaHQoKTtyZXR1cm4gYT4wJiYobC09YSksbH1nZXRXb3Jrc3BhY2VXaWR0aCgpe2NvbnN0e3Jvb3REb2N1bWVudDpsLHJvb3RXaW5k'@; put 'b3c6YX09dGhpcy5kb21CaW5kaW5ncyxkPXRoaXMuZGF0YUFjY2Vzc09iamVjdC5pbmxpbmVTdGFydE92ZXJsYXlUcmltbWluZ0NvbnRhaW5lcjtsZXQgaDtpZihkPT09YSl7Y29uc3QgZj10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxDb2x1bW5zIik7aD10aGlzLnd0VGFibGUu'@; put 'aG9sZGVyLm9mZnNldFdpZHRoLHRoaXMuZ2V0Um93SGVhZGVyV2lkdGgoKSt0aGlzLnN1bUNvbHVtbldpZHRocygwLGYpPmgmJihoPWwuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKX1lbHNlIGg9ZC5jbGllbnRXaWR0aDtyZXR1cm4gaH1nZXRWaWV3cG9ydFdpZHRoKCl7Y29uc3QgbD10'@; put 'aGlzLmdldFdvcmtzcGFjZVdpZHRoKCk7aWYobD09PTEvMClyZXR1cm4gbDtjb25zdCBhPXRoaXMuZ2V0Um93SGVhZGVyV2lkdGgoKTtyZXR1cm4gYT4wP2wtYTpsfWhhc1ZlcnRpY2FsU2Nyb2xsKCl7aWYodGhpcy5pc1ZlcnRpY2FsbHlTY3JvbGxhYmxlQnlXaW5kb3coKSl7Y29uc3QgZj10'@; put 'aGlzLmRvbUJpbmRpbmdzLnJvb3REb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7cmV0dXJuIGYuc2Nyb2xsSGVpZ2h0PmYuY2xpZW50SGVpZ2h0fWNvbnN0e2hvbGRlcjpsLGhpZGVyOmF9PXRoaXMud3RUYWJsZSxoPWEub2Zmc2V0SGVpZ2h0O3JldHVybiBsLmNsaWVudEhlaWdodDxofHxoPnRo'@; put 'aXMuZ2V0V29ya3NwYWNlSGVpZ2h0KCl9aGFzSG9yaXpvbnRhbFNjcm9sbCgpe2lmKHRoaXMuaXNWZXJ0aWNhbGx5U2Nyb2xsYWJsZUJ5V2luZG93KCkpe2NvbnN0IGY9dGhpcy5kb21CaW5kaW5ncy5yb290RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O3JldHVybiBmLnNjcm9sbFdpZHRoPmYu'@; put 'Y2xpZW50V2lkdGh9Y29uc3R7aG9sZGVyOmwsaGlkZXI6YX09dGhpcy53dFRhYmxlLGg9YS5vZmZzZXRXaWR0aDtyZXR1cm4gbC5jbGllbnRXaWR0aDxofHxoPnRoaXMuZ2V0V29ya3NwYWNlV2lkdGgoKX1pc1ZlcnRpY2FsbHlTY3JvbGxhYmxlQnlXaW5kb3coKXtyZXR1cm4gdGhpcy5kYXRh'@; put 'QWNjZXNzT2JqZWN0LnRvcE92ZXJsYXlUcmltbWluZ0NvbnRhaW5lcj09PXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvd31pc0hvcml6b250YWxseVNjcm9sbGFibGVCeVdpbmRvdygpe3JldHVybiB0aGlzLmRhdGFBY2Nlc3NPYmplY3QuaW5saW5lU3RhcnRPdmVybGF5VHJpbW1pbmdDb250'@; put 'YWluZXI9PT10aGlzLmRvbUJpbmRpbmdzLnJvb3RXaW5kb3d9c3VtQ29sdW1uV2lkdGhzKGwsYSl7bGV0IGQ9MCxoPWw7Zm9yKDtoPGE7KWQrPXRoaXMud3RUYWJsZS5nZXRDb2x1bW5XaWR0aChoKSxoKz0xO3JldHVybiBkfWdldFdvcmtzcGFjZU9mZnNldCgpe3JldHVybiBqMCh0aGlzLnd0'@; put 'VGFibGUuaG9sZGVyKX1nZXRDb2x1bW5IZWFkZXJIZWlnaHQoKXtyZXR1cm4gdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImNvbHVtbkhlYWRlcnMiKS5sZW5ndGg/aXNOYU4odGhpcy5jb2x1bW5IZWFkZXJIZWlnaHQpJiYodGhpcy5jb2x1bW5IZWFkZXJIZWlnaHQ9U3UodGhpcy53dFRh'@; put 'YmxlLlRIRUFEKSk6dGhpcy5jb2x1bW5IZWFkZXJIZWlnaHQ9MCx0aGlzLmNvbHVtbkhlYWRlckhlaWdodH1nZXRSb3dIZWFkZXJXaWR0aCgpe2NvbnN0IGw9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInJvd0hlYWRlcldpZHRoIiksYT10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygi'@; put 'cm93SGVhZGVycyIpO2lmKGwpe3RoaXMucm93SGVhZGVyV2lkdGg9MDtmb3IobGV0IGQ9MCxoPWEubGVuZ3RoO2Q8aDtkKyspdGhpcy5yb3dIZWFkZXJXaWR0aCs9bFtkXXx8bH1pZihpc05hTih0aGlzLnJvd0hlYWRlcldpZHRoKSlpZihhLmxlbmd0aCl7bGV0IGQ9dGhpcy53dFRhYmxlLlRB'@; put 'QkxFLnF1ZXJ5U2VsZWN0b3IoIlRIIik7dGhpcy5yb3dIZWFkZXJXaWR0aD0wO2ZvcihsZXQgaD0wLGY9YS5sZW5ndGg7aDxmO2grKylkPyh0aGlzLnJvd0hlYWRlcldpZHRoKz1pdShkKSxkPWQubmV4dFNpYmxpbmcpOnRoaXMucm93SGVhZGVyV2lkdGgrPTUwfWVsc2UgdGhpcy5yb3dIZWFk'@; put 'ZXJXaWR0aD0wO3JldHVybiB0aGlzLnJvd0hlYWRlcldpZHRoPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJvbk1vZGlmeVJvd0hlYWRlcldpZHRoIix0aGlzLnJvd0hlYWRlcldpZHRoKXx8dGhpcy5yb3dIZWFkZXJXaWR0aCx0aGlzLnJvd0hlYWRlcldpZHRofWNyZWF0ZVJvd3NDYWxj'@; put 'dWxhdG9yKCl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOlsicmVuZGVyZWQiLCJmdWxseVZpc2libGUiLCJwYXJ0aWFsbHlWaXNpYmxlIl07Y29uc3R7d3RTZXR0aW5nczphLHd0VGFibGU6ZH09dGhpcztsZXQgZix2LGg9dGhp'@; put 'cy5nZXRWaWV3cG9ydEhlaWdodCgpO3RoaXMucm93SGVhZGVyV2lkdGg9TmFOO2xldCBNPXRoaXMuZGF0YUFjY2Vzc09iamVjdC50b3BTY3JvbGxQb3NpdGlvbi10aGlzLmRhdGFBY2Nlc3NPYmplY3QudG9wUGFyZW50T2Zmc2V0O2NvbnN0IEk9YS5nZXRTZXR0aW5nKCJmaXhlZFJvd3NUb3Ai'@; put 'KSxHPWEuZ2V0U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIikscmU9YS5nZXRTZXR0aW5nKCJ0b3RhbFJvd3MiKTtyZXR1cm4gSSYmTT49MCYmKHY9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LnRvcE92ZXJsYXkuc3VtQ2VsbFNpemVzKDAsSSksTSs9dixoLT12KSxHJiZ0aGlzLmRhdGFBY2Nlc3NP'@; put 'YmplY3QuYm90dG9tT3ZlcmxheS5jbG9uZSYmKHY9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LmJvdHRvbU92ZXJsYXkuc3VtQ2VsbFNpemVzKHJlLUcscmUpLGgtPXYpLGY9ZC5ob2xkZXIuY2xpZW50SGVpZ2h0PT09ZC5ob2xkZXIub2Zmc2V0SGVpZ2h0PzA6ZDAodGhpcy5kb21CaW5kaW5ncy5y'@; put 'b290RG9jdW1lbnQpLG5ldyBkdHQoe2NhbGN1bGF0aW9uVHlwZXM6bC5tYXAodWU9Plt1ZSx0aGlzLnJvd3NDYWxjdWxhdG9yVHlwZXMuZ2V0KHVlKSgpXSksdmlld3BvcnRIZWlnaHQ6aCxzY3JvbGxPZmZzZXQ6TSx0b3RhbFJvd3M6YS5nZXRTZXR0aW5nKCJ0b3RhbFJvd3MiKSxkZWZhdWx0'@; put 'Um93SGVpZ2h0OmEuZ2V0U2V0dGluZygic3R5bGVzSGFuZGxlciIpLmdldERlZmF1bHRSb3dIZWlnaHQoKSxyb3dIZWlnaHRGbjp1ZT0+ZC5nZXRSb3dIZWlnaHQodWUpLG92ZXJyaWRlRm46YS5nZXRTZXR0aW5nUHVyZSgidmlld3BvcnRSb3dDYWxjdWxhdG9yT3ZlcnJpZGUiKSxob3Jpem9u'@; put 'dGFsU2Nyb2xsYmFySGVpZ2h0OmZ9KX1jcmVhdGVDb2x1bW5zQ2FsY3VsYXRvcigpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpbInJlbmRlcmVkIiwiZnVsbHlWaXNpYmxlIiwicGFydGlhbGx5VmlzaWJsZSJdO2NvbnN0e3d0'@; put 'U2V0dGluZ3M6YSx3dFRhYmxlOmR9PXRoaXM7bGV0IGg9dGhpcy5nZXRWaWV3cG9ydFdpZHRoKCksZj1NYXRoLmFicyh0aGlzLmRhdGFBY2Nlc3NPYmplY3QuaW5saW5lU3RhcnRTY3JvbGxQb3NpdGlvbiktdGhpcy5kYXRhQWNjZXNzT2JqZWN0LmlubGluZVN0YXJ0UGFyZW50T2Zmc2V0O3Ro'@; put 'aXMuY29sdW1uSGVhZGVySGVpZ2h0PU5hTjtjb25zdCB2PWEuZ2V0U2V0dGluZygiZml4ZWRDb2x1bW5zU3RhcnQiKTtpZih2JiZmPj0wKXtjb25zdCBNPXRoaXMuZGF0YUFjY2Vzc09iamVjdC5pbmxpbmVTdGFydE92ZXJsYXkuc3VtQ2VsbFNpemVzKDAsdik7Zis9TSxoLT1NfXJldHVybiBk'@; put 'LmhvbGRlci5jbGllbnRXaWR0aCE9PWQuaG9sZGVyLm9mZnNldFdpZHRoJiYoaC09ZDAodGhpcy5kb21CaW5kaW5ncy5yb290RG9jdW1lbnQpKSxuZXcgcHR0KHtjYWxjdWxhdGlvblR5cGVzOmwubWFwKE09PltNLHRoaXMuY29sdW1uc0NhbGN1bGF0b3JUeXBlcy5nZXQoTSkoKV0pLHZpZXdw'@; put 'b3J0V2lkdGg6aCxzY3JvbGxPZmZzZXQ6Zix0b3RhbENvbHVtbnM6YS5nZXRTZXR0aW5nKCJ0b3RhbENvbHVtbnMiKSxjb2x1bW5XaWR0aEZuOk09PmQuZ2V0Q29sdW1uV2lkdGgoTSksb3ZlcnJpZGVGbjphLmdldFNldHRpbmdQdXJlKCJ2aWV3cG9ydENvbHVtbkNhbGN1bGF0b3JPdmVycmlk'@; put 'ZSIpLGlubGluZVN0YXJ0T2Zmc2V0OnRoaXMuZGF0YUFjY2Vzc09iamVjdC5pbmxpbmVTdGFydFBhcmVudE9mZnNldH0pfWNyZWF0ZUNhbGN1bGF0b3JzKCl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXTtjb25zdHt3dFNldHRp'@; put 'bmdzOmF9PXRoaXMsZD10aGlzLmNyZWF0ZVJvd3NDYWxjdWxhdG9yKCksaD10aGlzLmNyZWF0ZUNvbHVtbnNDYWxjdWxhdG9yKCk7aWYobCYmIWEuZ2V0U2V0dGluZygicmVuZGVyQWxsUm93cyIpKXtjb25zdCBmPWQuZ2V0UmVzdWx0c0ZvcigiZnVsbHlWaXNpYmxlIik7bD10aGlzLmFyZUFs'@; put 'bFByb3Bvc2VkVmlzaWJsZVJvd3NBbHJlYWR5UmVuZGVyZWQoZil9aWYobCYmIWEuZ2V0U2V0dGluZygicmVuZGVyQWxsQ29sdW1ucyIpKXtjb25zdCBmPWguZ2V0UmVzdWx0c0ZvcigiZnVsbHlWaXNpYmxlIik7bD10aGlzLmFyZUFsbFByb3Bvc2VkVmlzaWJsZUNvbHVtbnNBbHJlYWR5UmVu'@; put 'ZGVyZWQoZil9cmV0dXJuIGx8fCh0aGlzLnJvd3NSZW5kZXJDYWxjdWxhdG9yPWQuZ2V0UmVzdWx0c0ZvcigicmVuZGVyZWQiKSx0aGlzLmNvbHVtbnNSZW5kZXJDYWxjdWxhdG9yPWguZ2V0UmVzdWx0c0ZvcigicmVuZGVyZWQiKSksdGhpcy5yb3dzVmlzaWJsZUNhbGN1bGF0b3I9ZC5nZXRS'@; put 'ZXN1bHRzRm9yKCJmdWxseVZpc2libGUiKSx0aGlzLmNvbHVtbnNWaXNpYmxlQ2FsY3VsYXRvcj1oLmdldFJlc3VsdHNGb3IoImZ1bGx5VmlzaWJsZSIpLHRoaXMucm93c1BhcnRpYWxseVZpc2libGVDYWxjdWxhdG9yPWQuZ2V0UmVzdWx0c0ZvcigicGFydGlhbGx5VmlzaWJsZSIpLHRoaXMu'@; put 'Y29sdW1uc1BhcnRpYWxseVZpc2libGVDYWxjdWxhdG9yPWguZ2V0UmVzdWx0c0ZvcigicGFydGlhbGx5VmlzaWJsZSIpLGx9Y3JlYXRlVmlzaWJsZUNhbGN1bGF0b3JzKCl7Y29uc3QgbD10aGlzLmNyZWF0ZVJvd3NDYWxjdWxhdG9yKFsiZnVsbHlWaXNpYmxlIiwicGFydGlhbGx5VmlzaWJs'@; put 'ZSJdKSxhPXRoaXMuY3JlYXRlQ29sdW1uc0NhbGN1bGF0b3IoWyJmdWxseVZpc2libGUiLCJwYXJ0aWFsbHlWaXNpYmxlIl0pO3RoaXMucm93c1Zpc2libGVDYWxjdWxhdG9yPWwuZ2V0UmVzdWx0c0ZvcigiZnVsbHlWaXNpYmxlIiksdGhpcy5jb2x1bW5zVmlzaWJsZUNhbGN1bGF0b3I9YS5n'@; put 'ZXRSZXN1bHRzRm9yKCJmdWxseVZpc2libGUiKSx0aGlzLnJvd3NQYXJ0aWFsbHlWaXNpYmxlQ2FsY3VsYXRvcj1sLmdldFJlc3VsdHNGb3IoInBhcnRpYWxseVZpc2libGUiKSx0aGlzLmNvbHVtbnNQYXJ0aWFsbHlWaXNpYmxlQ2FsY3VsYXRvcj1hLmdldFJlc3VsdHNGb3IoInBhcnRpYWxs'@; put 'eVZpc2libGUiKX1hcmVBbGxQcm9wb3NlZFZpc2libGVSb3dzQWxyZWFkeVJlbmRlcmVkKGwpe2lmKCF0aGlzLnJvd3NWaXNpYmxlQ2FsY3VsYXRvcilyZXR1cm4hMTtsZXR7c3RhcnRSb3c6YSxlbmRSb3c6ZH09bDtpZihudWxsPT09YSYmbnVsbD09PWQpe2lmKCFsLmlzVmlzaWJsZUluVHJp'@; put 'bW1pbmdDb250YWluZXIpcmV0dXJuITA7YT10aGlzLnJvd3NQYXJ0aWFsbHlWaXNpYmxlQ2FsY3VsYXRvci5zdGFydFJvdyxkPXRoaXMucm93c1BhcnRpYWxseVZpc2libGVDYWxjdWxhdG9yLmVuZFJvd31jb25zdHtzdGFydFJvdzpoLGVuZFJvdzpmLHJvd1N0YXJ0T2Zmc2V0OnYscm93RW5k'@; put 'T2Zmc2V0Ok19PXRoaXMucm93c1JlbmRlckNhbGN1bGF0b3IsST10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIiktMSxHPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJ2aWV3cG9ydFJvd1JlbmRlcmluZ1RocmVzaG9sZCIpO3JldHVybiBOdW1iZXIuaXNJbnRlZ2Vy'@; put 'KEcpJiZHPjA/KGE9TWF0aC5tYXgoMCxhLU1hdGgubWluKHYsRykpLGQ9TWF0aC5taW4oSSxkK01hdGgubWluKE0sRykpKToiYXV0byI9PT1HJiYoYT1NYXRoLm1heCgwLGEtTWF0aC5jZWlsKHYvMikpLGQ9TWF0aC5taW4oSSxkK01hdGguY2VpbChNLzIpKSksIShhPGh8fGE9PT1oJiZhPjB8'@; put 'fGQ+Znx8ZD09PWYmJmQ8SSl9YXJlQWxsUHJvcG9zZWRWaXNpYmxlQ29sdW1uc0FscmVhZHlSZW5kZXJlZChsKXtpZighdGhpcy5jb2x1bW5zVmlzaWJsZUNhbGN1bGF0b3IpcmV0dXJuITE7bGV0e3N0YXJ0Q29sdW1uOmEsZW5kQ29sdW1uOmR9PWw7aWYobnVsbD09PWEmJm51bGw9PT1kKXtp'@; put 'ZighbC5pc1Zpc2libGVJblRyaW1taW5nQ29udGFpbmVyKXJldHVybiEwO2E9dGhpcy5jb2x1bW5zUGFydGlhbGx5VmlzaWJsZUNhbGN1bGF0b3Iuc3RhcnRDb2x1bW4sZD10aGlzLmNvbHVtbnNQYXJ0aWFsbHlWaXNpYmxlQ2FsY3VsYXRvci5lbmRDb2x1bW59Y29uc3R7c3RhcnRDb2x1bW46'@; put 'aCxlbmRDb2x1bW46Zixjb2x1bW5TdGFydE9mZnNldDp2LGNvbHVtbkVuZE9mZnNldDpNfT10aGlzLmNvbHVtbnNSZW5kZXJDYWxjdWxhdG9yLEk9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsQ29sdW1ucyIpLTEsRz10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidmlld3Bv'@; put 'cnRDb2x1bW5SZW5kZXJpbmdUaHJlc2hvbGQiKTtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihHKSYmRz4wPyhhPU1hdGgubWF4KDAsYS1NYXRoLm1pbih2LEcpKSxkPU1hdGgubWluKEksZCtNYXRoLm1pbihNLEcpKSk6ImF1dG8iPT09RyYmKGE9TWF0aC5tYXgoMCxhLU1hdGguY2VpbCh2LzIp'@; put 'KSxkPU1hdGgubWluKEksZCtNYXRoLmNlaWwoTS8yKSkpLCEoYTxofHxhPT09aCYmYT4wfHxkPmZ8fGQ9PT1mJiZkPEkpfXJlc2V0SGFzT3ZlcnNpemVkQ29sdW1uSGVhZGVyc01hcmtlZCgpe3FzKHRoaXMuaGFzT3ZlcnNpemVkQ29sdW1uSGVhZGVyc01hcmtlZCwobCxhLGQpPT57ZFthXT12'@; put 'b2lkIDB9KX19O2Z1bmN0aW9uIGIzZShjLGwsYSl7XzNlKGMsbCksbC5zZXQoYyxhKX1mdW5jdGlvbiBfM2UoYyxsKXtpZihsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIp'@; put 'fWZ1bmN0aW9uIHpjKGMsbCl7cmV0dXJuIGMuZ2V0KFlFKGMsbCkpfWZ1bmN0aW9uIHczZShjLGwsYSl7cmV0dXJuIGMuc2V0KFlFKGMsbCksYSksYX1mdW5jdGlvbiBZRShjLGwsYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGM/Yz09PWw6Yy5oYXMobCkpcmV0dXJuIGFyZ3VtZW50cy5sZW5n'@; put 'dGg8Mz9sOmE7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBlbGVtZW50IGlzIG5vdCBwcmVzZW50IG9uIHRoaXMgb2JqZWN0Iil9Yig5MzkwOSk7dmFyIHUzPW5ldyBXZWFrTWFwLG0xPW5ldyBXZWFrTWFwLGZQPW5ldyBXZWFrU2V0O2NsYXNzIHl0dHtjb25zdHJ1Y3RvcigpeyhmdW5j'@; put 'dGlvbiB2dHQoYyxsKXtfM2UoYyxsKSxsLmFkZChjKX0pKHRoaXMsZlApLGIzZSh0aGlzLHUzLHZvaWQgMCksYjNlKHRoaXMsbTEsdm9pZCAwKX1zZXRBY3RpdmVPdmVybGF5KGwpe3JldHVybiB3M2UobTEsdGhpcyxsKSx0aGlzfXNldEFjdGl2ZVNlbGVjdGlvbihsKXtyZXR1cm4gdzNlKHUz'@; put 'LHRoaXMsbCksdGhpc31zY2FuKCl7Y29uc3QgbD16Yyh1Myx0aGlzKS5zZXR0aW5ncy5zZWxlY3Rpb25UeXBlLGE9bmV3IFNldDtyZXR1cm4iYWN0aXZlLWhlYWRlciI9PT1sPyh0aGlzLnNjYW5Db2x1bW5zSW5IZWFkZXJzUmFuZ2UoZD0+YS5hZGQoZCkpLHRoaXMuc2NhblJvd3NJbkhlYWRl'@; put 'cnNSYW5nZShkPT5hLmFkZChkKSkpOiJhcmVhIj09PWw/dGhpcy5zY2FuQ2VsbHNSYW5nZShkPT5hLmFkZChkKSk6ImZvY3VzIj09PWw/KHRoaXMuc2NhbkNvbHVtbnNJbkhlYWRlcnNSYW5nZShkPT5hLmFkZChkKSksdGhpcy5zY2FuUm93c0luSGVhZGVyc1JhbmdlKGQ9PmEuYWRkKGQpKSx0'@; put 'aGlzLnNjYW5DZWxsc1JhbmdlKGQ9PmEuYWRkKGQpKSk6ImZpbGwiPT09bD90aGlzLnNjYW5DZWxsc1JhbmdlKGQ9PmEuYWRkKGQpKToiaGVhZGVyIj09PWw/KHRoaXMuc2NhbkNvbHVtbnNJbkhlYWRlcnNSYW5nZShkPT5hLmFkZChkKSksdGhpcy5zY2FuUm93c0luSGVhZGVyc1JhbmdlKGQ9'@; put 'PmEuYWRkKGQpKSk6InJvdyI9PT1sPyh0aGlzLnNjYW5Sb3dzSW5IZWFkZXJzUmFuZ2UoZD0+YS5hZGQoZCkpLHRoaXMuc2NhblJvd3NJbkNlbGxzUmFuZ2UoZD0+YS5hZGQoZCkpKToiY29sdW1uIj09PWwmJih0aGlzLnNjYW5Db2x1bW5zSW5IZWFkZXJzUmFuZ2UoZD0+YS5hZGQoZCkpLHRo'@; put 'aXMuc2NhbkNvbHVtbnNJbkNlbGxzUmFuZ2UoZD0+YS5hZGQoZCkpKSxhfXNjYW5Db2x1bW5zSW5IZWFkZXJzUmFuZ2UobCl7Y29uc3RbYSxkLGgsZl09emModTMsdGhpcykuZ2V0Q29ybmVycygpLHt3dFRhYmxlOnZ9PXpjKG0xLHRoaXMpLE09di5nZXRSZW5kZXJlZENvbHVtbnNDb3VudCgp'@; put 'LEk9di5nZXRDb2x1bW5IZWFkZXJzQ291bnQoKTtsZXQgRz0wO2ZvcihsZXQgcmU9LXYuZ2V0Um93SGVhZGVyc0NvdW50KCk7cmU8TTtyZSsrKXtjb25zdCB1ZT12LmNvbHVtbkZpbHRlci5yZW5kZXJlZFRvU291cmNlKHJlKTtpZighKHVlPGR8fHVlPmYpKXtmb3IobGV0IHllPS1JO3llPDA7'@; put 'eWUrKyl7aWYoeWU8YXx8eWU+aCljb250aW51ZTtjb25zdCBFZT15ZStJO2xldCBCZT12LmdldENvbHVtbkhlYWRlcih1ZSxFZSk7Y29uc3QgR2U9emMobTEsdGhpcykuZ2V0U2V0dGluZygib25CZWZvcmVIaWdobGlnaHRpbmdDb2x1bW5IZWFkZXIiLHVlLEVlLHtzZWxlY3Rpb25UeXBlOnpj'@; put 'KHUzLHRoaXMpLnNldHRpbmdzLnNlbGVjdGlvblR5cGUsY29sdW1uQ3Vyc29yOkcsc2VsZWN0aW9uV2lkdGg6Zi1kKzF9KTtudWxsIT09R2UmJihHZSE9PXVlJiYoQmU9di5nZXRDb2x1bW5IZWFkZXIoR2UsRWUpKSxsKEJlKSl9Rys9MX19fXNjYW5Sb3dzSW5IZWFkZXJzUmFuZ2UobCl7Y29u'@; put 'c3RbYSxkLGgsZl09emModTMsdGhpcykuZ2V0Q29ybmVycygpLHt3dFRhYmxlOnZ9PXpjKG0xLHRoaXMpLE09di5nZXRSZW5kZXJlZFJvd3NDb3VudCgpLEk9di5nZXRSb3dIZWFkZXJzQ291bnQoKTtsZXQgRz0wO2ZvcihsZXQgcmU9LXYuZ2V0Q29sdW1uSGVhZGVyc0NvdW50KCk7cmU8TTty'@; put 'ZSsrKXtjb25zdCB1ZT12LnJvd0ZpbHRlci5yZW5kZXJlZFRvU291cmNlKHJlKTtpZighKHVlPGF8fHVlPmgpKXtmb3IobGV0IHllPS1JO3llPDA7eWUrKyl7aWYoeWU8ZHx8eWU+Ziljb250aW51ZTtjb25zdCBFZT15ZStJO2xldCBCZT12LmdldFJvd0hlYWRlcih1ZSxFZSk7Y29uc3QgR2U9'@; put 'emMobTEsdGhpcykuZ2V0U2V0dGluZygib25CZWZvcmVIaWdobGlnaHRpbmdSb3dIZWFkZXIiLHVlLEVlLHtzZWxlY3Rpb25UeXBlOnpjKHUzLHRoaXMpLnNldHRpbmdzLnNlbGVjdGlvblR5cGUscm93Q3Vyc29yOkcsc2VsZWN0aW9uSGVpZ2h0OmgtYSsxfSk7bnVsbCE9PUdlJiYoR2UhPT11'@; put 'ZSYmKEJlPXYuZ2V0Um93SGVhZGVyKEdlLEVlKSksbChCZSkpfUcrPTF9fX1zY2FuQ2VsbHNSYW5nZShsKXtjb25zdHt3dFRhYmxlOmF9PXpjKG0xLHRoaXMpO1lFKGZQLHRoaXMsYnR0KS5jYWxsKHRoaXMsKGQsaCk9Pntjb25zdCBmPWEuZ2V0Q2VsbCh6YyhtMSx0aGlzKS5jcmVhdGVDZWxs'@; put 'Q29vcmRzKGQsaCkpLHY9emMobTEsdGhpcykuZ2V0U2V0dGluZygib25BZnRlckRyYXdTZWxlY3Rpb24iLGQsaCx6Yyh1Myx0aGlzKS5zZXR0aW5ncy5sYXllckxldmVsKTsic3RyaW5nIj09dHlwZW9mIHYmJkVpKGYsdiksbChmKX0pfXNjYW5Sb3dzSW5DZWxsc1JhbmdlKGwpe2NvbnN0W2Es'@; put 'LGRdPXpjKHUzLHRoaXMpLmdldENvcm5lcnMoKSx7d3RUYWJsZTpofT16YyhtMSx0aGlzKTtZRShmUCx0aGlzLEMzZSkuY2FsbCh0aGlzLChmLHYpPT57aWYoZj49YSYmZjw9ZCl7Y29uc3QgTT1oLmdldENlbGwoemMobTEsdGhpcykuY3JlYXRlQ2VsbENvb3JkcyhmLHYpKTtsKE0pfX0pfXNj'@; put 'YW5Db2x1bW5zSW5DZWxsc1JhbmdlKGwpe2NvbnN0WyxhLCxkXT16Yyh1Myx0aGlzKS5nZXRDb3JuZXJzKCkse3d0VGFibGU6aH09emMobTEsdGhpcyk7WUUoZlAsdGhpcyxDM2UpLmNhbGwodGhpcywoZix2KT0+e2lmKHY+PWEmJnY8PWQpe2NvbnN0IE09aC5nZXRDZWxsKHpjKG0xLHRoaXMp'@; put 'LmNyZWF0ZUNlbGxDb29yZHMoZix2KSk7bChNKX19KX19ZnVuY3Rpb24gYnR0KGMpe2xldFtsLGEsZCxoXT16Yyh1Myx0aGlzKS5nZXRDb3JuZXJzKCk7aWYobDwwJiZkPDB8fGE8MCYmaDwwKXJldHVybjtjb25zdHt3dFRhYmxlOmZ9PXpjKG0xLHRoaXMpLHY9bCE9PWR8fGEhPT1oO2lmKGE9'@; put 'TWF0aC5tYXgoYSwwKSxoPU1hdGgubWF4KGgsMCksbD1NYXRoLm1heChsLDApLGQ9TWF0aC5tYXgoZCwwKSx2KXtpZihhPU1hdGgubWF4KGEsZi5nZXRGaXJzdFJlbmRlcmVkQ29sdW1uKCkpLGg9TWF0aC5taW4oaCxmLmdldExhc3RSZW5kZXJlZENvbHVtbigpKSxsPU1hdGgubWF4KGwsZi5n'@; put 'ZXRGaXJzdFJlbmRlcmVkUm93KCkpLGQ9TWF0aC5taW4oZCxmLmdldExhc3RSZW5kZXJlZFJvdygpKSxoPGF8fGQ8bClyZXR1cm59ZWxzZSBpZigha3AoZi5nZXRDZWxsKHpjKG0xLHRoaXMpLmNyZWF0ZUNlbGxDb29yZHMobCxhKSkpKXJldHVybjtmb3IobGV0IE09bDtNPD1kO00rPTEpZm9y'@; put 'KGxldCBJPWE7STw9aDtJKz0xKWMoTSxJKX1mdW5jdGlvbiBDM2UoYyl7Y29uc3R7d3RUYWJsZTpsfT16YyhtMSx0aGlzKSxhPWwuZ2V0UmVuZGVyZWRSb3dzQ291bnQoKSxkPWwuZ2V0UmVuZGVyZWRDb2x1bW5zQ291bnQoKTtmb3IobGV0IGg9MDtoPGE7aCs9MSl7Y29uc3QgZj1sLnJvd0Zp'@; put 'bHRlci5yZW5kZXJlZFRvU291cmNlKGgpO2ZvcihsZXQgdj0wO3Y8ZDt2Kz0xKWMoZixsLmNvbHVtbkZpbHRlci5yZW5kZXJlZFRvU291cmNlKHYpKX19Y29uc3QgUzNlPWNsYXNzIF90dHtjb25zdHJ1Y3RvcihsLGEpe2EmJih0aGlzLmV2ZW50TWFuYWdlcj1sLmV2ZW50TWFuYWdlcix0aGlz'@; put 'Lmluc3RhbmNlPWwsdGhpcy53b3Q9bCx0aGlzLnNldHRpbmdzPWEsdGhpcy5tb3VzZURvd249ITEsdGhpcy5tYWluPW51bGwsdGhpcy50b3A9bnVsbCx0aGlzLmJvdHRvbT1udWxsLHRoaXMuc3RhcnQ9bnVsbCx0aGlzLmVuZD1udWxsLHRoaXMudG9wU3R5bGU9bnVsbCx0aGlzLmJvdHRvbVN0'@; put 'eWxlPW51bGwsdGhpcy5zdGFydFN0eWxlPW51bGwsdGhpcy5lbmRTdHlsZT1udWxsLHRoaXMuY29ybmVyRGVmYXVsdFN0eWxlPXlLKHRoaXMuaW5zdGFuY2UpLHRoaXMuY29ybmVyQ2VudGVyUG9pbnRPZmZzZXQ9LU1hdGguY2VpbChwYXJzZUludCh0aGlzLmNvcm5lckRlZmF1bHRTdHlsZS53'@; put 'aWR0aCwxMCkvMiksdGhpcy5jb3JuZXI9bnVsbCx0aGlzLmNvcm5lclN0eWxlPW51bGwsdGhpcy5jcmVhdGVCb3JkZXJzKGEpLHRoaXMucmVnaXN0ZXJMaXN0ZW5lcnMoKSl9cmVnaXN0ZXJMaXN0ZW5lcnMoKXtjb25zdCBsPXRoaXMud290LnJvb3REb2N1bWVudC5ib2R5O3RoaXMuZXZlbnRN'@; put 'YW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIobCwibW91c2Vkb3duIiwoKT0+dGhpcy5vbk1vdXNlRG93bigpKSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGwsIm1vdXNldXAiLCgpPT50aGlzLm9uTW91c2VVcCgpKTtmb3IobGV0IGE9MCxkPXRoaXMubWFpbi5jaGlsZE5vZGVz'@; put 'Lmxlbmd0aDthPGQ7YSsrKXRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5tYWluLmNoaWxkTm9kZXNbYV0sIm1vdXNlZW50ZXIiLGY9PnRoaXMub25Nb3VzZUVudGVyKGYsdGhpcy5tYWluLmNoaWxkTm9kZXNbYV0pKX1vbk1vdXNlRG93bigpe3RoaXMubW91c2VEb3du'@; put 'PSEwfW9uTW91c2VVcCgpe3RoaXMubW91c2VEb3duPSExfW9uTW91c2VFbnRlcihsLGEpe2lmKCF0aGlzLm1vdXNlRG93bnx8IXRoaXMud290LmdldFNldHRpbmcoImhpZGVCb3JkZXJPbk1vdXNlRG93bk92ZXIiKSlyZXR1cm47bC5wcmV2ZW50RGVmYXVsdCgpLHoyKGwpO2NvbnN0IGQ9dGhp'@; put 'cyxoPXRoaXMud290LnJvb3REb2N1bWVudC5ib2R5LGY9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTthLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoaCwibW91c2Vtb3ZlIixmdW5jdGlvbiBNKEkpeyhmdW5jdGlvbiB2KEkpe2lmKEku'@; put 'Y2xpZW50WTxNYXRoLmZsb29yKGYudG9wKXx8SS5jbGllbnRZPk1hdGguY2VpbChmLnRvcCtmLmhlaWdodCl8fEkuY2xpZW50WDxNYXRoLmZsb29yKGYubGVmdCl8fEkuY2xpZW50WD5NYXRoLmNlaWwoZi5sZWZ0K2Yud2lkdGgpKXJldHVybiEwfSkoSSkmJihkLmV2ZW50TWFuYWdlci5yZW1v'@; put 'dmVFdmVudExpc3RlbmVyKGgsIm1vdXNlbW92ZSIsTSksYS5zdHlsZS5kaXNwbGF5PSJibG9jayIpfSl9Y3JlYXRlQm9yZGVycyhsKXtjb25zdHtyb290RG9jdW1lbnQ6YX09dGhpcy53b3Q7dGhpcy5tYWluPWEuY3JlYXRlRWxlbWVudCgiZGl2Iik7Y29uc3QgZD1bInRvcCIsInN0YXJ0Iiwi'@; put 'Ym90dG9tIiwiZW5kIiwiY29ybmVyIl07bGV0IGg9dGhpcy5tYWluLnN0eWxlO2gucG9zaXRpb249ImFic29sdXRlIixoLnRvcD0wLGgubGVmdD0wO2ZvcihsZXQgTT0wO008NTtNKyspe2NvbnN0IEk9ZFtNXSxHPWEuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ry5jbGFzc05hbWU9YHd0Qm9yZGVy'@; put 'ICR7dGhpcy5zZXR0aW5ncy5jbGFzc05hbWV8fCIifWAsdGhpcy5zZXR0aW5nc1tJXSYmdGhpcy5zZXR0aW5nc1tJXS5oaWRlJiYoRy5jbGFzc05hbWUrPSIgaGlkZGVuIiksaD1HLnN0eWxlLGguYmFja2dyb3VuZENvbG9yPXRoaXMuc2V0dGluZ3NbSV0mJnRoaXMuc2V0dGluZ3NbSV0uY29s'@; put 'b3I/dGhpcy5zZXR0aW5nc1tJXS5jb2xvcjpsLmJvcmRlci5jb2xvcixoLmhlaWdodD10aGlzLnNldHRpbmdzW0ldJiZ0aGlzLnNldHRpbmdzW0ldLndpZHRoP2Ake3RoaXMuc2V0dGluZ3NbSV0ud2lkdGh9cHhgOmAke2wuYm9yZGVyLndpZHRofXB4YCxoLndpZHRoPXRoaXMuc2V0dGluZ3Nb'@; put 'SV0mJnRoaXMuc2V0dGluZ3NbSV0ud2lkdGg/YCR7dGhpcy5zZXR0aW5nc1tJXS53aWR0aH1weGA6YCR7bC5ib3JkZXIud2lkdGh9cHhgLHRoaXMubWFpbi5hcHBlbmRDaGlsZChHKX10aGlzLnRvcD10aGlzLm1haW4uY2hpbGROb2Rlc1swXSx0aGlzLnN0YXJ0PXRoaXMubWFpbi5jaGlsZE5v'@; put 'ZGVzWzFdLHRoaXMuYm90dG9tPXRoaXMubWFpbi5jaGlsZE5vZGVzWzJdLHRoaXMuZW5kPXRoaXMubWFpbi5jaGlsZE5vZGVzWzNdLHRoaXMudG9wU3R5bGU9dGhpcy50b3Auc3R5bGUsdGhpcy5zdGFydFN0eWxlPXRoaXMuc3RhcnQuc3R5bGUsdGhpcy5ib3R0b21TdHlsZT10aGlzLmJvdHRv'@; put 'bS5zdHlsZSx0aGlzLmVuZFN0eWxlPXRoaXMuZW5kLnN0eWxlLHRoaXMuY29ybmVyPXRoaXMubWFpbi5jaGlsZE5vZGVzWzRdLHRoaXMuY29ybmVyLmNsYXNzTmFtZSs9IiBjb3JuZXIiLHRoaXMuY29ybmVyU3R5bGU9dGhpcy5jb3JuZXIuc3R5bGUsdGhpcy5jb3JuZXJTdHlsZS53aWR0aD1g'@; put 'JHt0aGlzLmNvcm5lckRlZmF1bHRTdHlsZS53aWR0aH1weGAsdGhpcy5jb3JuZXJTdHlsZS5oZWlnaHQ9YCR7dGhpcy5jb3JuZXJEZWZhdWx0U3R5bGUuaGVpZ2h0fXB4YCx0aGlzLmNvcm5lclN0eWxlLmJvcmRlcj1bYCR7dGhpcy5jb3JuZXJEZWZhdWx0U3R5bGUuYm9yZGVyV2lkdGh9cHhg'@; put 'LHRoaXMuY29ybmVyRGVmYXVsdFN0eWxlLmJvcmRlclN0eWxlLHRoaXMuY29ybmVyRGVmYXVsdFN0eWxlLmJvcmRlckNvbG9yXS5qb2luKCIgIiksbzMoKSYmdGhpcy5pbnN0YW5jZS5nZXRTZXR0aW5nKCJpc0RhdGFWaWV3SW5zdGFuY2UiKSYmdGhpcy5jcmVhdGVNdWx0aXBsZVNlbGVjdG9y'@; put 'SGFuZGxlcygpLHRoaXMuZGlzYXBwZWFyKCk7Y29uc3R7d3RUYWJsZTpmfT10aGlzLndvdDtsZXQgdj1mLmJvcmRlcnNIb2xkZXI7dnx8KHY9YS5jcmVhdGVFbGVtZW50KCJkaXYiKSx2LmNsYXNzTmFtZT0iaHRCb3JkZXJzIixmLmJvcmRlcnNIb2xkZXI9dixmLnNwcmVhZGVyLmFwcGVuZENo'@; put 'aWxkKHYpKSx2LmFwcGVuZENoaWxkKHRoaXMubWFpbil9Y3JlYXRlTXVsdGlwbGVTZWxlY3RvckhhbmRsZXMoKXtjb25zdHtyb290RG9jdW1lbnQ6bCx3dFNldHRpbmdzOmF9PXRoaXMud290LGQ9YS5nZXRTZXR0aW5nKCJzdHlsZXNIYW5kbGVyIiksaD1kLmdldENTU1ZhcmlhYmxlVmFsdWUo'@; put 'ImNlbGwtbW9iaWxlLWhhbmRsZS1zaXplIiksZj1kLmdldENTU1ZhcmlhYmxlVmFsdWUoImNlbGwtbW9iaWxlLWhhbmRsZS1ib3JkZXItcmFkaXVzIiksdj1kLmdldENTU1ZhcmlhYmxlVmFsdWUoImNlbGwtbW9iaWxlLWhhbmRsZS1iYWNrZ3JvdW5kLWNvbG9yIiksTT1kLmdldENTU1Zhcmlh'@; put 'YmxlVmFsdWUoImNlbGwtbW9iaWxlLWhhbmRsZS1ib3JkZXItd2lkdGgiKSxJPWQuZ2V0Q1NTVmFyaWFibGVWYWx1ZSgiY2VsbC1tb2JpbGUtaGFuZGxlLWJvcmRlci1jb2xvciIpO3RoaXMuc2VsZWN0aW9uSGFuZGxlcz17dG9wOmwuY3JlYXRlRWxlbWVudCgiRElWIiksdG9wSGl0QXJlYTps'@; put 'LmNyZWF0ZUVsZW1lbnQoIkRJViIpLGJvdHRvbTpsLmNyZWF0ZUVsZW1lbnQoIkRJViIpLGJvdHRvbUhpdEFyZWE6bC5jcmVhdGVFbGVtZW50KCJESVYiKX0sdGhpcy5zZWxlY3Rpb25IYW5kbGVzLnRvcC5jbGFzc05hbWU9InRvcFNlbGVjdGlvbkhhbmRsZSB0b3BMZWZ0U2VsZWN0aW9uSGFu'@; put 'ZGxlIix0aGlzLnNlbGVjdGlvbkhhbmRsZXMudG9wSGl0QXJlYS5jbGFzc05hbWU9InRvcFNlbGVjdGlvbkhhbmRsZS1IaXRBcmVhIHRvcExlZnRTZWxlY3Rpb25IYW5kbGUtSGl0QXJlYSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVzLmJvdHRvbS5jbGFzc05hbWU9ImJvdHRvbVNlbGVjdGlvbkhh'@; put 'bmRsZSBib3R0b21SaWdodFNlbGVjdGlvbkhhbmRsZSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVzLmJvdHRvbUhpdEFyZWEuY2xhc3NOYW1lPSJib3R0b21TZWxlY3Rpb25IYW5kbGUtSGl0QXJlYSBib3R0b21SaWdodFNlbGVjdGlvbkhhbmRsZS1IaXRBcmVhIix0aGlzLnNlbGVjdGlvbkhhbmRs'@; put 'ZXMuc3R5bGVzPXt0b3A6dGhpcy5zZWxlY3Rpb25IYW5kbGVzLnRvcC5zdHlsZSx0b3BIaXRBcmVhOnRoaXMuc2VsZWN0aW9uSGFuZGxlcy50b3BIaXRBcmVhLnN0eWxlLGJvdHRvbTp0aGlzLnNlbGVjdGlvbkhhbmRsZXMuYm90dG9tLnN0eWxlLGJvdHRvbUhpdEFyZWE6dGhpcy5zZWxlY3Rp'@; put 'b25IYW5kbGVzLmJvdHRvbUhpdEFyZWEuc3R5bGV9LHFzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLGhlaWdodDoiNDBweCIsd2lkdGg6IjQwcHgiLCJib3JkZXItcmFkaXVzIjpgJHtwYXJzZUludCg0MC8xLjUsMTApfXB4YH0sKEVlLEJlKT0+e3RoaXMuc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMu'@; put 'Ym90dG9tSGl0QXJlYVtCZV09RWUsdGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy50b3BIaXRBcmVhW0JlXT1FZX0pLHFzKGQuaXNDbGFzc2ljVGhlbWUoKT97cG9zaXRpb246ImFic29sdXRlIixoZWlnaHQ6IjEwcHgiLHdpZHRoOiIxMHB4IiwiYm9yZGVyLXJhZGl1cyI6YCR7cGFyc2VJ'@; put 'bnQoMTAvMS41LDEwKX1weGAsYmFja2dyb3VuZDoiI0Y1RjVGRiIsYm9yZGVyOiIxcHggc29saWQgIzQyODVjOCJ9Ontwb3NpdGlvbjoiYWJzb2x1dGUiLGhlaWdodDpgJHtofXB4YCx3aWR0aDpgJHtofXB4YCwiYm9yZGVyLXJhZGl1cyI6YCR7Zn1weGAsYmFja2dyb3VuZDpgJHt2fWAsYm9y'@; put 'ZGVyOmAke019cHggc29saWQgJHtJfWB9LChFZSxCZSk9Pnt0aGlzLnNlbGVjdGlvbkhhbmRsZXMuc3R5bGVzLmJvdHRvbVtCZV09RWUsdGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy50b3BbQmVdPUVlfSksdGhpcy5tYWluLmFwcGVuZENoaWxkKHRoaXMuc2VsZWN0aW9uSGFuZGxlcy50'@; put 'b3ApLHRoaXMubWFpbi5hcHBlbmRDaGlsZCh0aGlzLnNlbGVjdGlvbkhhbmRsZXMuYm90dG9tKSx0aGlzLm1haW4uYXBwZW5kQ2hpbGQodGhpcy5zZWxlY3Rpb25IYW5kbGVzLnRvcEhpdEFyZWEpLHRoaXMubWFpbi5hcHBlbmRDaGlsZCh0aGlzLnNlbGVjdGlvbkhhbmRsZXMuYm90dG9tSGl0'@; put 'QXJlYSl9aXNQYXJ0UmFuZ2UobCxhKXtjb25zdCBkPXRoaXMud290LnNlbGVjdGlvbk1hbmFnZXIuZ2V0QXJlYVNlbGVjdGlvbigpO3JldHVybiEoIWQuY2VsbFJhbmdlfHxsPT09ZC5jZWxsUmFuZ2UudG8ucm93JiZhPT09ZC5jZWxsUmFuZ2UudG8uY29sKX11cGRhdGVNdWx0aXBsZVNlbGVj'@; put 'dGlvbkhhbmRsZXNQb3NpdGlvbihsLGEsZCxoLGYsdil7Y29uc3QgST10aGlzLndvdC53dFNldHRpbmdzLmdldFNldHRpbmcoInJ0bE1vZGUiKT8icmlnaHQiOiJsZWZ0Iix7dG9wOkcsdG9wSGl0QXJlYTpyZSxib3R0b206dWUsYm90dG9tSGl0QXJlYTp5ZX09dGhpcy5zZWxlY3Rpb25IYW5k'@; put 'bGVzLnN0eWxlcyxFZT1wYXJzZUludChHLmJvcmRlcldpZHRoLDEwKSxCZT1wYXJzZUludChHLndpZHRoLDEwKSxHZT1wYXJzZUludChyZS53aWR0aCwxMCksc3Q9dGhpcy53b3Qud3RUYWJsZS5nZXRXaWR0aCgpLHB0PXRoaXMud290Lnd0VGFibGUuZ2V0SGVpZ2h0KCk7Ry50b3A9YCR7cGFy'@; put 'c2VJbnQoZC1CZS0xLDEwKX1weGAsR1tJXT1gJHtwYXJzZUludChoLUJlLTEsMTApfXB4YCxyZS50b3A9YCR7cGFyc2VJbnQoZC1HZS80KjMsMTApfXB4YCxyZVtJXT1gJHtwYXJzZUludChoLUdlLzQqMywxMCl9cHhgO2NvbnN0IGR0PU1hdGgubWluKHBhcnNlSW50KGgrZiwxMCksc3QtQmUt'@; put 'MipFZSkscXQ9TWF0aC5taW4ocGFyc2VJbnQoaCtmLUdlLzQsMTApLHN0LUdlLTIqRWUpO3VlW0ldPWAke2R0fXB4YCx5ZVtJXT1gJHtxdH1weGA7Y29uc3QgbW49TWF0aC5taW4ocGFyc2VJbnQoZCt2LDEwKSxwdC1CZS0yKkVlKSx3bj1NYXRoLm1pbihwYXJzZUludChkK3YtR2UvNCwxMCks'@; put 'cHQtR2UtMipFZSk7dWUudG9wPWAke21ufXB4YCx5ZS50b3A9YCR7d259cHhgLHRoaXMuc2V0dGluZ3MuYm9yZGVyLmNvcm5lclZpc2libGUmJnRoaXMuc2V0dGluZ3MuYm9yZGVyLmNvcm5lclZpc2libGUoKT8oRy5kaXNwbGF5PSJibG9jayIscmUuZGlzcGxheT0iYmxvY2siLHRoaXMuaXNQ'@; put 'YXJ0UmFuZ2UobCxhKT8odWUuZGlzcGxheT0ibm9uZSIseWUuZGlzcGxheT0ibm9uZSIpOih1ZS5kaXNwbGF5PSJibG9jayIseWUuZGlzcGxheT0iYmxvY2siKSk6KEcuZGlzcGxheT0ibm9uZSIsdWUuZGlzcGxheT0ibm9uZSIscmUuZGlzcGxheT0ibm9uZSIseWUuZGlzcGxheT0ibm9uZSIp'@; put 'LGw9PT10aGlzLndvdC53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkUm93c1RvcCIpfHxhPT09dGhpcy53b3Qud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmaXhlZENvbHVtbnNTdGFydCIpPyhHLnpJbmRleD0iOTk5OSIscmUuekluZGV4PSI5OTk5Iik6KEcuekluZGV4PSIiLHJlLnpJbmRl'@; put 'eD0iIil9YXBwZWFyKGwpe2lmKHRoaXMuZGlzYWJsZWQpcmV0dXJuO2xldFthLGQsaCxmXT1sO2lmKGE8MCYmaDwwfHxkPDAmJmY8MClyZXR1cm4gdm9pZCB0aGlzLmRpc2FwcGVhcigpO2NvbnN0e3d0VGFibGU6dixyb290RG9jdW1lbnQ6TSxyb290V2luZG93Okl9PXRoaXMud290LEc9YSE9'@; put 'PWh8fGQhPT1mLHJlPXRoaXMud290Lnd0U2V0dGluZ3MuZ2V0U2V0dGluZygic3R5bGVzSGFuZGxlciIpLmlzQ2xhc3NpY1RoZW1lKCksdWU9di5nZXRGaXJzdFJlbmRlcmVkUm93KCkseWU9di5nZXRMYXN0UmVuZGVyZWRSb3coKSxFZT12LmdldEZpcnN0UmVuZGVyZWRDb2x1bW4oKSxCZT12'@; put 'LmdldExhc3RSZW5kZXJlZENvbHVtbigpO2lmKEVlPDAmJkJlPDB8fHVlPDAmJnllPDApcmV0dXJuIHZvaWQgdGhpcy5kaXNhcHBlYXIoKTtsZXQgR2U7aWYoRyl7aWYoZD1NYXRoLm1heChkLEVlKSxmPU1hdGgubWluKGYsQmUpLGE9TWF0aC5tYXgoYSx1ZSksaD1NYXRoLm1pbihoLHllKSxm'@; put 'PGR8fGg8YSlyZXR1cm4gdm9pZCB0aGlzLmRpc2FwcGVhcigpO0dlPXYuZ2V0Q2VsbCh0aGlzLndvdC5jcmVhdGVDZWxsQ29vcmRzKGEsZCkpfWVsc2UgaWYoR2U9di5nZXRDZWxsKHRoaXMud290LmNyZWF0ZUNlbGxDb29yZHMoYSxkKSksIWtwKEdlKSlyZXR1cm4gdm9pZCB0aGlzLmRpc2Fw'@; put 'cGVhcigpO2NvbnN0IHN0PUc/di5nZXRDZWxsKHRoaXMud290LmNyZWF0ZUNlbGxDb29yZHMoaCxmKSk6R2UscHQ9ajAoR2UpLGR0PUc/ajAoc3QpOnB0LHF0PWowKHYuVEFCTEUpLG1uPXB0LnRvcCx3bj1wdC5sZWZ0LGhuPXRoaXMud290Lnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicnRsTW9k'@; put 'ZSIpO2xldCBNbj0wLE1yPTA7aWYoaG4pe2NvbnN0IFlyPWl1KHYuVEFCTEUpLHdpPWl1KEdlKTtNcj13bit3aS1kdC5sZWZ0LE1uPUkuaW5uZXJXaWR0aC13bi13aS0oSS5pbm5lcldpZHRoLXF0LmxlZnQtWXIpLTF9ZWxzZSBNcj1kdC5sZWZ0K2l1KHN0KS13bixNbj13bi1xdC5sZWZ0LTE7'@; put 'aWYodGhpcy5pc0VudGlyZUNvbHVtblNlbGVjdGVkKGEsaCkpe2NvbnN0IHdpPXRoaXMuZ2V0RGltZW5zaW9uc0Zyb21IZWFkZXIoImNvbHVtbnMiLGQsZixhLHF0KTtsZXQgQmk9bnVsbDt3aSYmKFtCaSxNbixNcl09d2kpLEJpJiYoR2U9QmkpfWxldCBrcj1tbi1xdC50b3AtMSxxbj1kdC50'@; put 'b3ArU3Uoc3QpLW1uO2lmKHRoaXMuaXNFbnRpcmVSb3dTZWxlY3RlZChkLGYpKXtjb25zdCB3aT10aGlzLmdldERpbWVuc2lvbnNGcm9tSGVhZGVyKCJyb3dzIixhLGgsZCxxdCk7bGV0IEJpPW51bGw7d2kmJihbQmksa3IscW5dPXdpKSxCaSYmKEdlPUJpKX1jb25zdCBncj1JLmdldENvbXB1'@; put 'dGVkU3R5bGUoR2UpO3BhcnNlSW50KGdyLmJvcmRlclRvcFdpZHRoLDEwKT4wJiYoa3IrPTEscW49cW4+MD9xbi0xOjApLHBhcnNlSW50KGdyW2huPyJib3JkZXJSaWdodFdpZHRoIjoiYm9yZGVyTGVmdFdpZHRoIl0sMTApPjAmJihNbis9MSxNcj1Ncj4wP01yLTE6MCk7Y29uc3QgcXI9aG4/'@; put 'InJpZ2h0IjoibGVmdCIsX2k9TWF0aC5jZWlsKHRoaXMuc2V0dGluZ3MuYm9yZGVyLndpZHRoLzIpO3RoaXMudG9wU3R5bGUudG9wPWAke2tyfXB4YCx0aGlzLnRvcFN0eWxlW3FyXT1gJHtNbn1weGAsdGhpcy50b3BTdHlsZS53aWR0aD1gJHtNcitfaX1weGAsdGhpcy50b3BTdHlsZS5kaXNw'@; put 'bGF5PSJibG9jayIsdGhpcy5zdGFydFN0eWxlLnRvcD1gJHtrcn1weGAsdGhpcy5zdGFydFN0eWxlW3FyXT1gJHtNbn1weGAsdGhpcy5zdGFydFN0eWxlLmhlaWdodD1gJHtxbitfaX1weGAsdGhpcy5zdGFydFN0eWxlLmRpc3BsYXk9ImJsb2NrIix0aGlzLmJvdHRvbVN0eWxlLnRvcD1gJHtr'@; put 'citxbi1wYXJzZUludCh0aGlzLmJvdHRvbVN0eWxlLmhlaWdodCwxMCkrX2l9cHhgLHRoaXMuYm90dG9tU3R5bGVbcXJdPWAke01ufXB4YCx0aGlzLmJvdHRvbVN0eWxlLndpZHRoPWAke01yK19pfXB4YCx0aGlzLmJvdHRvbVN0eWxlLmRpc3BsYXk9ImJsb2NrIix0aGlzLmVuZFN0eWxlLnRv'@; put 'cD1gJHtrcn1weGAsdGhpcy5lbmRTdHlsZVtxcl09YCR7TW4rTXItcGFyc2VJbnQodGhpcy5lbmRTdHlsZS53aWR0aCwxMCkrX2l9cHhgLHRoaXMuZW5kU3R5bGUuaGVpZ2h0PWAke3FuK19pfXB4YCx0aGlzLmVuZFN0eWxlLmRpc3BsYXk9ImJsb2NrIjtsZXQgUG49dGhpcy5zZXR0aW5ncy5i'@; put 'b3JkZXIuY29ybmVyVmlzaWJsZTtQbj0iZnVuY3Rpb24iPT10eXBlb2YgUG4/UG4odGhpcy5zZXR0aW5ncy5sYXllckxldmVsKTpQbjtjb25zdCBVcj10aGlzLndvdC5nZXRTZXR0aW5nKCJvbk1vZGlmeUdldENlbGxDb29yZHMiLGgsZiwhMSwicmVuZGVyIik7bGV0W3RyLEJyXT1baCxmXTtp'@; put 'ZihVciYmQXJyYXkuaXNBcnJheShVcikmJihbLCx0cixCcl09VXIpLG8zKCl8fCFQbnx8dGhpcy5pc1BhcnRSYW5nZSh0cixCcikpdGhpcy5jb3JuZXJTdHlsZS5kaXNwbGF5PSJub25lIjtlbHNle3RoaXMuY29ybmVyU3R5bGUudG9wPWtyK3FuK3RoaXMuY29ybmVyQ2VudGVyUG9pbnRPZmZz'@; put 'ZXQtdGhpcy5jb3JuZXJEZWZhdWx0U3R5bGUuYm9yZGVyV2lkdGgrInB4Iix0aGlzLmNvcm5lclN0eWxlW3FyXT1NbitNcit0aGlzLmNvcm5lckNlbnRlclBvaW50T2Zmc2V0LXRoaXMuY29ybmVyRGVmYXVsdFN0eWxlLmJvcmRlcldpZHRoKyJweCIsdGhpcy5jb3JuZXJTdHlsZS5ib3JkZXJS'@; put 'aWdodFdpZHRoPWAke3RoaXMuY29ybmVyRGVmYXVsdFN0eWxlLmJvcmRlcldpZHRofXB4YCx0aGlzLmNvcm5lclN0eWxlLmJvcmRlckxlZnRXaWR0aD1gJHt0aGlzLmNvcm5lckRlZmF1bHRTdHlsZS5ib3JkZXJXaWR0aH1weGAsdGhpcy5jb3JuZXJTdHlsZS5ib3JkZXJCb3R0b21XaWR0aD1g'@; put 'JHt0aGlzLmNvcm5lckRlZmF1bHRTdHlsZS5ib3JkZXJXaWR0aH1weGAsdGhpcy5jb3JuZXJTdHlsZS53aWR0aD10aGlzLmNvcm5lckRlZmF1bHRTdHlsZS53aWR0aCx0aGlzLmNvcm5lclN0eWxlLmRpc3BsYXk9Im5vbmUiO2xldCBZcj1vXyh2LlRBQkxFKTtjb25zdCB3aT1Zcj09PUk7d2km'@; put 'JihZcj1NLmRvY3VtZW50RWxlbWVudCk7Y29uc3QgQmk9cGFyc2VJbnQodGhpcy5jb3JuZXJEZWZhdWx0U3R5bGUuYm9yZGVyV2lkdGgsMTApLTEsaGE9TWF0aC5jZWlsKHBhcnNlSW50KHRoaXMuY29ybmVyRGVmYXVsdFN0eWxlLndpZHRoLDEwKS8yKSxtYT1NYXRoLmNlaWwocGFyc2VJbnQo'@; put 'dGhpcy5jb3JuZXJEZWZhdWx0U3R5bGUuaGVpZ2h0LDEwKS8yKTtpZihmPT09dGhpcy53b3QuZ2V0U2V0dGluZygidG90YWxDb2x1bW5zIiktMSl7Y29uc3QgdnQ9d2k/c3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdDpzdC5vZmZzZXRMZWZ0O2xldCB4dD0hMSwkdD0wO2lmKGhuPygk'@; put 'dD12dC1wYXJzZUludCh0aGlzLmNvcm5lckRlZmF1bHRTdHlsZS53aWR0aCwxMCkvMix4dD0kdDwwKTooJHQ9dnQraXUoc3QpK3BhcnNlSW50KHRoaXMuY29ybmVyRGVmYXVsdFN0eWxlLndpZHRoLDEwKS8yLHh0PSR0Pj1BJChZcikpLHh0KXtjb25zdCBZbj1NYXRoLmZsb29yKE1uK01yK3Ro'@; put 'aXMuY29ybmVyQ2VudGVyUG9pbnRPZmZzZXQtaGEtQmkpO3JlPyh0aGlzLmNvcm5lclN0eWxlW3FyXT1gJHtZbn1weGAsdGhpcy5jb3JuZXJTdHlsZVtobj8iYm9yZGVyTGVmdFdpZHRoIjoiYm9yZGVyUmlnaHRXaWR0aCJdPTApOnRoaXMuY29ybmVyU3R5bGVbcXJdPVluLTErInB4In19aWYo'@; put 'aD09PXRoaXMud290LmdldFNldHRpbmcoInRvdGFsUm93cyIpLTEmJih3aT9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A6c3Qub2Zmc2V0VG9wKStTdShzdCkrcGFyc2VJbnQodGhpcy5jb3JuZXJEZWZhdWx0U3R5bGUuaGVpZ2h0LDEwKS8yPj1sXyhZcikpe2NvbnN0IFluPU1hdGgu'@; put 'Zmxvb3Ioa3IrcW4rdGhpcy5jb3JuZXJDZW50ZXJQb2ludE9mZnNldC1tYS1CaSk7cmU/KHRoaXMuY29ybmVyU3R5bGUudG9wPWAke1lufXB4YCx0aGlzLmNvcm5lclN0eWxlLmJvcmRlckJvdHRvbVdpZHRoPTApOnRoaXMuY29ybmVyU3R5bGUudG9wPVluLTErInB4In10aGlzLmNvcm5lclN0'@; put 'eWxlLmRpc3BsYXk9ImJsb2NrIn1vMygpJiZ0aGlzLmluc3RhbmNlLmdldFNldHRpbmcoImlzRGF0YVZpZXdJbnN0YW5jZSIpJiZ0aGlzLnVwZGF0ZU11bHRpcGxlU2VsZWN0aW9uSGFuZGxlc1Bvc2l0aW9uKGgsZixrcixNbixNcixxbil9aXNFbnRpcmVDb2x1bW5TZWxlY3RlZChsLGEpe3Jl'@; put 'dHVybiBsPT09dGhpcy53b3Qud3RUYWJsZS5nZXRGaXJzdFJlbmRlcmVkUm93KCkmJmE9PT10aGlzLndvdC53dFRhYmxlLmdldExhc3RSZW5kZXJlZFJvdygpfWlzRW50aXJlUm93U2VsZWN0ZWQobCxhKXtyZXR1cm4gbD09PXRoaXMud290Lnd0VGFibGUuZ2V0Rmlyc3RSZW5kZXJlZENvbHVt'@; put 'bigpJiZhPT09dGhpcy53b3Qud3RUYWJsZS5nZXRMYXN0UmVuZGVyZWRDb2x1bW4oKX1nZXREaW1lbnNpb25zRnJvbUhlYWRlcihsLGEsZCxoLGYpe2NvbnN0e3d0VGFibGU6dn09dGhpcy53b3QsTT12Lnd0Um9vdEVsZW1lbnQucGFyZW50Tm9kZTtsZXQgST1udWxsLEc9bnVsbCxyZT1udWxs'@; put 'LHVlPW51bGwseWU9bnVsbCxFZT1udWxsLEJlPW51bGwsR2U9bnVsbDtzd2l0Y2gobCl7Y2FzZSJyb3dzIjpJPWZ1bmN0aW9uKCl7cmV0dXJuIHYuZ2V0Um93SGVhZGVyKC4uLmFyZ3VtZW50cyl9LEc9ZnVuY3Rpb24oKXtyZXR1cm4gU3UoLi4uYXJndW1lbnRzKX0scmU9Imh0X19zZWxlY3Rp'@; put 'b24tLXJvd3MiLEVlPSJ0b3AiO2JyZWFrO2Nhc2UiY29sdW1ucyI6ST1mdW5jdGlvbigpe3JldHVybiB2LmdldENvbHVtbkhlYWRlciguLi5hcmd1bWVudHMpfSxHPWZ1bmN0aW9uKCl7cmV0dXJuIGl1KC4uLmFyZ3VtZW50cyl9LHJlPSJodF9fc2VsZWN0aW9uLS1jb2x1bW5zIixFZT0ibGVm'@; put 'dCJ9aWYoTS5jbGFzc0xpc3QuY29udGFpbnMocmUpKXtjb25zdCBzdD10aGlzLndvdC5nZXRTZXR0aW5nKCJjb2x1bW5IZWFkZXJzIikubGVuZ3RoO2lmKEJlPUkoYSxzdC1oKSxHZT1JKGQsc3QtaCksIUJlfHwhR2UpcmV0dXJuITE7Y29uc3QgcHQ9ajAoQmUpLGR0PWowKEdlKTtyZXR1cm4g'@; put 'QmUmJkdlJiYodWU9cHRbRWVdLWZbRWVdLTEseWU9ZHRbRWVdK0coR2UpLXB0W0VlXSksW0JlLHVlLHllXX1yZXR1cm4hMX1jaGFuZ2VCb3JkZXJTdHlsZShsLGEpe2NvbnN0IGQ9dGhpc1tsXS5zdHlsZSxoPWFbbF07IWh8fGguaGlkZT9FaSh0aGlzW2xdLCJoaWRkZW4iKTooZ3ModGhpc1ts'@; put 'XSwiaGlkZGVuIikmJmhzKHRoaXNbbF0sImhpZGRlbiIpLGQuYmFja2dyb3VuZENvbG9yPWguY29sb3IsKCJ0b3AiPT09bHx8ImJvdHRvbSI9PT1sKSYmKGQuaGVpZ2h0PWAke2gud2lkdGh9cHhgKSwoInN0YXJ0Ij09PWx8fCJlbmQiPT09bCkmJihkLndpZHRoPWAke2gud2lkdGh9cHhgKSl9'@; put 'Y2hhbmdlQm9yZGVyVG9EZWZhdWx0U3R5bGUobCl7Y29uc3QgZD10aGlzW2xdLnN0eWxlO2QuYmFja2dyb3VuZENvbG9yPSIjMDAwIixkLndpZHRoPSIxcHgiLGQuaGVpZ2h0PSIxcHgifXRvZ2dsZUhpZGRlbkNsYXNzKGwsYSl7dGhpcy5jaGFuZ2VCb3JkZXJUb0RlZmF1bHRTdHlsZShsKSxh'@; put 'P0VpKHRoaXNbbF0sImhpZGRlbiIpOmhzKHRoaXNbbF0sImhpZGRlbiIpfWRpc2FwcGVhcigpe3RoaXMudG9wU3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5ib3R0b21TdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLnN0YXJ0U3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5lbmRTdHlsZS5kaXNw'@; put 'bGF5PSJub25lIix0aGlzLmNvcm5lclN0eWxlLmRpc3BsYXk9Im5vbmUiLG8zKCkmJnRoaXMuaW5zdGFuY2UuZ2V0U2V0dGluZygiaXNEYXRhVmlld0luc3RhbmNlIikmJih0aGlzLnNlbGVjdGlvbkhhbmRsZXMuc3R5bGVzLnRvcC5kaXNwbGF5PSJub25lIix0aGlzLnNlbGVjdGlvbkhhbmRs'@; put 'ZXMuc3R5bGVzLnRvcEhpdEFyZWEuZGlzcGxheT0ibm9uZSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy5ib3R0b20uZGlzcGxheT0ibm9uZSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy5ib3R0b21IaXRBcmVhLmRpc3BsYXk9Im5vbmUiKX1kZXN0cm95KCl7dGhpcy5ldmVu'@; put 'dE1hbmFnZXIuZGVzdHJveVdpdGhPd25FdmVudHNPbmx5KCksdGhpcy5tYWluLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5tYWluKX19O2Z1bmN0aW9uIF9fKGMsbCxhKXtNM2UoYyxsKSxsLnNldChjLGEpfWZ1bmN0aW9uIE0zZShjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBl'@; put 'RXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9ZnVuY3Rpb24gbm8oYyxsKXtyZXR1cm4gYy5nZXQoeEsoYyxsKSl9ZnVuY3Rpb24geDNlKGMsbCxhKXtyZXR1cm4gYy5zZXQoeEsoYyxsKSxhKSxhfWZ1bmN0aW9u'@; put 'IHhLKGMsbCxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhsKSlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzP2w6YTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGVsZW1lbnQgaXMgbm90IHByZXNlbnQgb24gdGhpcyBvYmplY3QiKX12YXIgdjE9bmV3IFdlYWtN'@; put 'YXAsVmQ9bmV3IFdlYWtNYXAsRUs9bmV3IFdlYWtNYXAsR0U9bmV3IFdlYWtNYXAsVEs9bmV3IFdlYWtNYXAsSjc9bmV3IFdlYWtNYXAsRTNlPW5ldyBXZWFrU2V0O2NsYXNzIEN0dHtjb25zdHJ1Y3RvcihsKXsoZnVuY3Rpb24gd3R0KGMsbCl7TTNlKGMsbCksbC5hZGQoYyl9KSh0aGlzLEUz'@; put 'ZSksX18odGhpcyx2MSx2b2lkIDApLF9fKHRoaXMsVmQsdm9pZCAwKSxfXyh0aGlzLEVLLG5ldyB5dHQpLF9fKHRoaXMsR0UsbmV3IFdlYWtNYXApLF9fKHRoaXMsVEssbmV3IFdlYWtTZXQpLF9fKHRoaXMsSjcsbmV3IE1hcCkseDNlKFZkLHRoaXMsbCl9c2V0QWN0aXZlT3ZlcmxheShsKXty'@; put 'ZXR1cm4geDNlKHYxLHRoaXMsbCksbm8oRUssdGhpcykuc2V0QWN0aXZlT3ZlcmxheShubyh2MSx0aGlzKSksbm8oR0UsdGhpcykuaGFzKG5vKHYxLHRoaXMpKXx8bm8oR0UsdGhpcykuc2V0KG5vKHYxLHRoaXMpLG5ldyBTZXQpLHRoaXN9Z2V0Rm9jdXNTZWxlY3Rpb24oKXtyZXR1cm4gbnVs'@; put 'bCE9PW5vKFZkLHRoaXMpP25vKFZkLHRoaXMpLmdldEZvY3VzKCk6bnVsbH1nZXRBcmVhU2VsZWN0aW9uKCl7cmV0dXJuIG51bGwhPT1ubyhWZCx0aGlzKT9ubyhWZCx0aGlzKS5jcmVhdGVMYXllcmVkQXJlYSgpOm51bGx9Z2V0Qm9yZGVySW5zdGFuY2UobCl7aWYoIWwuc2V0dGluZ3MuYm9y'@; put 'ZGVyKXJldHVybiBudWxsO2lmKG5vKEo3LHRoaXMpLmhhcyhsKSl7Y29uc3QgZD1ubyhKNyx0aGlzKS5nZXQobCk7aWYoZC5oYXMobm8odjEsdGhpcykpKXJldHVybiBkLmdldChubyh2MSx0aGlzKSk7Y29uc3QgaD1uZXcgUzNlKG5vKHYxLHRoaXMpLGwuc2V0dGluZ3MpO3JldHVybiBkLnNl'@; put 'dChubyh2MSx0aGlzKSxoKSxofWNvbnN0IGE9bmV3IFMzZShubyh2MSx0aGlzKSxsLnNldHRpbmdzKTtyZXR1cm4gbm8oSjcsdGhpcykuc2V0KGwsbmV3IE1hcChbW25vKHYxLHRoaXMpLGFdXSkpLGF9Z2V0Qm9yZGVySW5zdGFuY2VzKGwpe3ZhciBhLGQ7cmV0dXJuIEFycmF5LmZyb20obnVs'@; put 'bCE9PShhPW51bGw9PT0oZD1ubyhKNyx0aGlzKS5nZXQobCkpfHx2b2lkIDA9PT1kP3ZvaWQgMDpkLnZhbHVlcygpKSYmdm9pZCAwIT09YT9hOltdKX1kZXN0cm95Qm9yZGVycyhsKXtubyhKNyx0aGlzKS5nZXQobCkuZm9yRWFjaChhPT5hLmRlc3Ryb3koKSksbm8oSjcsdGhpcykuZGVsZXRl'@; put 'KGwpfXJlbmRlcihsKXtpZihudWxsPT09bm8oVmQsdGhpcykpcmV0dXJuO2wmJnhLKEUzZSx0aGlzLFN0dCkuY2FsbCh0aGlzKTtjb25zdCBhPUFycmF5LmZyb20obm8oVmQsdGhpcykpLGQ9bmV3IE1hcCxoPW5ldyBNYXA7Zm9yKGxldCBmPTA7ZjxhLmxlbmd0aDtmKyspe2NvbnN0IHY9YVtm'@; put 'XSx7Y2xhc3NOYW1lOk0saGVhZGVyQXR0cmlidXRlczpJLGNyZWF0ZUxheWVyczpHLHNlbGVjdGlvblR5cGU6cmV9PXYuc2V0dGluZ3M7bm8oVEssdGhpcykuaGFzKHYpfHwobm8oVEssdGhpcykuYWRkKHYpLHYuYWRkTG9jYWxIb29rKCJkZXN0cm95IiwoKT0+dGhpcy5kZXN0cm95Qm9yZGVy'@; put 'cyh2KSkpO2NvbnN0IHVlPXRoaXMuZ2V0Qm9yZGVySW5zdGFuY2Uodik7aWYodi5pc0VtcHR5KCkpe3VlPy5kaXNhcHBlYXIoKTtjb250aW51ZX1NJiZubyhFSyx0aGlzKS5zZXRBY3RpdmVTZWxlY3Rpb24odikuc2NhbigpLmZvckVhY2goQmU9PntpZihkLmhhcyhCZSkpe2NvbnN0IEdlPWQu'@; put 'Z2V0KEJlKTtHZS5oYXMoTSkmJiEwPT09Rz9HZS5zZXQoTSxHZS5nZXQoTSkrMSk6R2Uuc2V0KE0sMSl9ZWxzZSBkLnNldChCZSxuZXcgTWFwKFtbTSwxXV0pKTtJJiYoaC5oYXMoQmUpfHxoLnNldChCZSxbXSksIlRIIj09PUJlLm5vZGVOYW1lJiZoLmdldChCZSkucHVzaCguLi5JKSl9KTtj'@; put 'b25zdCB5ZT12LmdldENvcm5lcnMoKTtubyh2MSx0aGlzKS5nZXRTZXR0aW5nKCJvbkJlZm9yZURyYXdCb3JkZXJzIix5ZSxyZSksdWU/LmFwcGVhcih5ZSl9ZC5mb3JFYWNoKChmLHYpPT57dmFyIE07Y29uc3QgST1BcnJheS5mcm9tKGYpLm1hcChHPT57bGV0W3JlLHVlXT1HO3JldHVybiAx'@; put 'PT09dWU/cmU6W3JlLC4uLkFycmF5LmZyb20oe2xlbmd0aDp1ZS0xfSwoeWUsRWUpPT5gJHtyZX0tJHtFZSsxfWApXX0pLmZsYXQoKTtJLmZvckVhY2goRz0+bm8oR0UsdGhpcykuZ2V0KG5vKHYxLHRoaXMpKS5hZGQoRykpLEVpKHYsSSksIlREIj09PXYubm9kZU5hbWUmJkFycmF5LmlzQXJy'@; put 'YXkobnVsbD09PShNPW5vKFZkLHRoaXMpLm9wdGlvbnMpfHx2b2lkIDA9PT1NP3ZvaWQgMDpNLmNlbGxBdHRyaWJ1dGVzKSYmbXModixubyhWZCx0aGlzKS5vcHRpb25zLmNlbGxBdHRyaWJ1dGVzKX0pLEFycmF5LmZyb20oaC5rZXlzKCkpLmZvckVhY2goZj0+e21zKGYsWy4uLmguZ2V0KGYp'@; put 'XSl9KX19ZnVuY3Rpb24gU3R0KCl7Y29uc3QgYz1ubyhHRSx0aGlzKS5nZXQobm8odjEsdGhpcykpLGw9bm8odjEsdGhpcykud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJvbkJlZm9yZVJlbW92ZUNlbGxDbGFzc05hbWVzIik7aWYoQXJyYXkuaXNBcnJheShsKSlmb3IobGV0IGE9MDthPGwubGVu'@; put 'Z3RoO2ErKyljLmFkZChsW2FdKTtjLmZvckVhY2goYT0+e3ZhciBkLGg7Y29uc3QgZj1ubyh2MSx0aGlzKS53dFRhYmxlLlRBQkxFLnF1ZXJ5U2VsZWN0b3JBbGwoYC4ke2F9YCk7bGV0IHY9W107QXJyYXkuaXNBcnJheShudWxsPT09KGQ9bm8oVmQsdGhpcykub3B0aW9ucyl8fHZvaWQgMD09'@; put 'PWQ/dm9pZCAwOmQuY2VsbEF0dHJpYnV0ZXMpJiYodj1ubyhWZCx0aGlzKS5vcHRpb25zLmNlbGxBdHRyaWJ1dGVzLm1hcChNPT5NWzBdKSksQXJyYXkuaXNBcnJheShudWxsPT09KGg9bm8oVmQsdGhpcykub3B0aW9ucyl8fHZvaWQgMD09PWg/dm9pZCAwOmguaGVhZGVyQXR0cmlidXRlcykm'@; put 'Jih2PVsuLi52LC4uLm5vKFZkLHRoaXMpLm9wdGlvbnMuaGVhZGVyQXR0cmlidXRlcy5tYXAoTT0+TVswXSldKTtmb3IobGV0IE09MCxJPWYubGVuZ3RoO008STtNKyspaHMoZltNXSxhKSxCNyhmW01dLHYpfSksYy5jbGVhcigpfWNsYXNzIE10dCBleHRlbmRzIHZLe2NvbnN0cnVjdG9yKGws'@; put 'YSl7c3VwZXIobCxuZXcgSGV0KGEpKTtjb25zdCBkPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmYWNhZGUiLHRoaXMpO3RoaXMud3RUYWJsZT1uZXcgTmV0KHRoaXMuZ2V0VGFibGVEYW8oKSxkLHRoaXMuZG9tQmluZGluZ3MsdGhpcy53dFNldHRpbmdzKSx0aGlzLnd0Vmlld3BvcnQ9'@; put 'bmV3IG10dCh0aGlzLmdldFZpZXdwb3J0RGFvKCksdGhpcy5kb21CaW5kaW5ncyx0aGlzLnd0U2V0dGluZ3MsdGhpcy5ldmVudE1hbmFnZXIsdGhpcy53dFRhYmxlKSx0aGlzLnNlbGVjdGlvbk1hbmFnZXI9bmV3IEN0dCh0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygic2VsZWN0aW9ucyIp'@; put 'KSx0aGlzLnd0RXZlbnQ9bmV3IEhmZShkLHRoaXMuZG9tQmluZGluZ3MsdGhpcy53dFNldHRpbmdzLHRoaXMuZXZlbnRNYW5hZ2VyLHRoaXMud3RUYWJsZSx0aGlzLnNlbGVjdGlvbk1hbmFnZXIpLHRoaXMud3RPdmVybGF5cz1uZXcgT2V0KHRoaXMsZCx0aGlzLmRvbUJpbmRpbmdzLHRoaXMu'@; put 'd3RTZXR0aW5ncyx0aGlzLmV2ZW50TWFuYWdlcix0aGlzLnd0VGFibGUpLHRoaXMuZXhwb3J0U2V0dGluZ3NBc0NsYXNzTmFtZXMoKSx0aGlzLmZpbmRPcmlnaW5hbEhlYWRlcnMoKX1leHBvcnRTZXR0aW5nc0FzQ2xhc3NOYW1lcygpe2NvbnN0IGE9W10sZD1bXTtxcyh7cm93SGVhZGVyczoi'@; put 'aHRSb3dIZWFkZXJzIixjb2x1bW5IZWFkZXJzOiJodENvbHVtbkhlYWRlcnMifSwoaCxmKT0+e3RoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKGYpLmxlbmd0aCYmZC5wdXNoKGgpLGEucHVzaChoKX0pLGhzKHRoaXMud3RUYWJsZS53dFJvb3RFbGVtZW50LnBhcmVudE5vZGUsYSksRWkodGhp'@; put 'cy53dFRhYmxlLnd0Um9vdEVsZW1lbnQucGFyZW50Tm9kZSxkKX1nZXRPdmVybGF5QnlOYW1lKGwpe3ZhciBhO2lmKCEkZmUuaW5jbHVkZXMobCkpcmV0dXJuIG51bGw7Y29uc3QgZD1sLnJlcGxhY2UoL18oW2Etel0pL2csaD0+aFsxXS50b1VwcGVyQ2FzZSgpKTtyZXR1cm4gbnVsbCE9PShh'@; put 'PXRoaXMud3RPdmVybGF5c1tgJHtkfU92ZXJsYXlgXSkmJnZvaWQgMCE9PWE/YTpudWxsfWdldFZpZXdwb3J0RGFvKCl7Y29uc3QgbD10aGlzO3JldHVybntnZXQgd290KCl7cmV0dXJuIGx9LGdldCB0b3BPdmVybGF5VHJpbW1pbmdDb250YWluZXIoKXtyZXR1cm4gbC53dE92ZXJsYXlzLnRv'@; put 'cE92ZXJsYXkudHJpbW1pbmdDb250YWluZXJ9LGdldCBpbmxpbmVTdGFydE92ZXJsYXlUcmltbWluZ0NvbnRhaW5lcigpe3JldHVybiBsLnd0T3ZlcmxheXMuaW5saW5lU3RhcnRPdmVybGF5LnRyaW1taW5nQ29udGFpbmVyfSxnZXQgdG9wU2Nyb2xsUG9zaXRpb24oKXtyZXR1cm4gbC53dE92'@; put 'ZXJsYXlzLnRvcE92ZXJsYXkuZ2V0U2Nyb2xsUG9zaXRpb24oKX0sZ2V0IHRvcFBhcmVudE9mZnNldCgpe3JldHVybiBsLnd0T3ZlcmxheXMudG9wT3ZlcmxheS5nZXRUYWJsZVBhcmVudE9mZnNldCgpfSxnZXQgaW5saW5lU3RhcnRTY3JvbGxQb3NpdGlvbigpe3JldHVybiBsLnd0T3Zlcmxh'@; put 'eXMuaW5saW5lU3RhcnRPdmVybGF5LmdldFNjcm9sbFBvc2l0aW9uKCl9LGdldCBpbmxpbmVTdGFydFBhcmVudE9mZnNldCgpe3JldHVybiBsLnd0T3ZlcmxheXMuaW5saW5lU3RhcnRPdmVybGF5LmdldFRhYmxlUGFyZW50T2Zmc2V0KCl9LGdldCB0b3BPdmVybGF5KCl7cmV0dXJuIGwud3RP'@; put 'dmVybGF5cy50b3BPdmVybGF5fSxnZXQgaW5saW5lU3RhcnRPdmVybGF5KCl7cmV0dXJuIGwud3RPdmVybGF5cy5pbmxpbmVTdGFydE92ZXJsYXl9LGdldCBib3R0b21PdmVybGF5KCl7cmV0dXJuIGwud3RPdmVybGF5cy5ib3R0b21PdmVybGF5fX19fWNsYXNzIEFLe2NvbnN0cnVjdG9yKGwp'@; put 'e2wgaW5zdGFuY2VvZiB2Sz90aGlzLl93b3Q9bDp0aGlzLl9pbml0RnJvbVNldHRpbmdzKGwpfV9pbml0RnJvbVNldHRpbmdzKGwpe2wuZmFjYWRlPWE9Pntjb25zdCBkPW5ldyBBSyhhKTtyZXR1cm4oKT0+ZH0sdGhpcy5fd290PW5ldyBNdHQobC50YWJsZSxsKX1nZXQgZ3VpZCgpe3JldHVy'@; put 'biB0aGlzLl93b3QuZ3VpZH1nZXQgcm9vdERvY3VtZW50KCl7cmV0dXJuIHRoaXMuX3dvdC5kb21CaW5kaW5ncy5yb290RG9jdW1lbnR9Z2V0IHJvb3RXaW5kb3coKXtyZXR1cm4gdGhpcy5fd290LmRvbUJpbmRpbmdzLnJvb3RXaW5kb3d9Z2V0IHd0U2V0dGluZ3MoKXtyZXR1cm4gdGhpcy5f'@; put 'd290Lnd0U2V0dGluZ3N9Z2V0IGNsb25lU291cmNlKCl7cmV0dXJuIHRoaXMuX3dvdC5jbG9uZVNvdXJjZX1nZXQgY2xvbmVPdmVybGF5KCl7cmV0dXJuIHRoaXMuX3dvdC5jbG9uZU92ZXJsYXl9Z2V0IHNlbGVjdGlvbk1hbmFnZXIoKXtyZXR1cm4gdGhpcy5fd290LnNlbGVjdGlvbk1hbmFn'@; put 'ZXJ9Z2V0IHd0Vmlld3BvcnQoKXtyZXR1cm4gdGhpcy5fd290Lnd0Vmlld3BvcnR9Z2V0IHd0T3ZlcmxheXMoKXtyZXR1cm4gdGhpcy5fd290Lnd0T3ZlcmxheXN9Z2V0IHd0VGFibGUoKXtyZXR1cm4gdGhpcy5fd290Lnd0VGFibGV9Z2V0IHd0RXZlbnQoKXtyZXR1cm4gdGhpcy5fd290Lnd0'@; put 'RXZlbnR9Z2V0IHd0U2Nyb2xsKCl7cmV0dXJuIHRoaXMuX3dvdC53dFNjcm9sbH1nZXQgZHJhd24oKXtyZXR1cm4gdGhpcy5fd290LmRyYXdufXNldCBkcmF3bihsKXt0aGlzLl93b3QuZHJhd249bH1nZXQgYWN0aXZlT3ZlcmxheU5hbWUoKXtyZXR1cm4gdGhpcy5fd290LmFjdGl2ZU92ZXJs'@; put 'YXlOYW1lfWdldCBkcmF3SW50ZXJydXB0ZWQoKXtyZXR1cm4gdGhpcy5fd290LmRyYXdJbnRlcnJ1cHRlZH1zZXQgZHJhd0ludGVycnVwdGVkKGwpe3RoaXMuX3dvdC5kcmF3SW50ZXJydXB0ZWQ9bH1nZXQgbGFzdE1vdXNlT3Zlcigpe3JldHVybiB0aGlzLl93b3QubGFzdE1vdXNlT3Zlcn1z'@; put 'ZXQgbGFzdE1vdXNlT3ZlcihsKXt0aGlzLl93b3QubGFzdE1vdXNlT3Zlcj1sfWdldCBtb21lbnR1bVNjcm9sbGluZygpe3JldHVybiB0aGlzLl93b3QubW9tZW50dW1TY3JvbGxpbmd9c2V0IG1vbWVudHVtU2Nyb2xsaW5nKGwpe3RoaXMuX3dvdC5tb21lbnR1bVNjcm9sbGluZz1sfWdldCB0'@; put 'b3VjaEFwcGxpZWQoKXtyZXR1cm4gdGhpcy5fd290LnRvdWNoQXBwbGllZH1zZXQgdG91Y2hBcHBsaWVkKGwpe3RoaXMuX3dvdC50b3VjaEFwcGxpZWQ9bH1nZXQgZG9tQmluZGluZ3MoKXtyZXR1cm4gdGhpcy5fd290LmRvbUJpbmRpbmdzfWdldCBldmVudExpc3RlbmVycygpe3JldHVybiB0'@; put 'aGlzLl93b3QuZXZlbnRMaXN0ZW5lcnN9c2V0IGV2ZW50TGlzdGVuZXJzKGwpe3RoaXMuX3dvdC5ldmVudExpc3RlbmVycz1sfWdldCBldmVudE1hbmFnZXIoKXtyZXR1cm4gdGhpcy5fd290LmV2ZW50TWFuYWdlcn1jcmVhdGVDZWxsQ29vcmRzKGwsYSl7cmV0dXJuIHRoaXMuX3dvdC5jcmVh'@; put 'dGVDZWxsQ29vcmRzKGwsYSl9Y3JlYXRlQ2VsbFJhbmdlKGwsYSxkKXtyZXR1cm4gdGhpcy5fd290LmNyZWF0ZUNlbGxSYW5nZShsLGEsZCl9ZHJhdygpe3JldHVybiB0aGlzLl93b3QuZHJhdyhhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBd'@; put 'KSx0aGlzfWdldENlbGwobCl7cmV0dXJuIHRoaXMuX3dvdC5nZXRDZWxsKGwsYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXSl9c2Nyb2xsVmlld3BvcnQobCxhLGQpe3JldHVybiB0aGlzLl93b3Quc2Nyb2xsVmlld3BvcnQobCxhLGQpfXNj'@; put 'cm9sbFZpZXdwb3J0SG9yaXpvbnRhbGx5KGwsYSl7cmV0dXJuIHRoaXMuX3dvdC5zY3JvbGxWaWV3cG9ydEhvcml6b250YWxseShsLGEpfXNjcm9sbFZpZXdwb3J0VmVydGljYWxseShsLGEpe3JldHVybiB0aGlzLl93b3Quc2Nyb2xsVmlld3BvcnRWZXJ0aWNhbGx5KGwsYSl9Z2V0Vmlld3Bv'@; put 'cnQoKXtyZXR1cm4gdGhpcy5fd290LmdldFZpZXdwb3J0KCl9Z2V0T3ZlcmxheU5hbWUoKXtyZXR1cm4gdGhpcy5fd290LmNsb25lT3ZlcmxheT90aGlzLl93b3QuY2xvbmVPdmVybGF5LnR5cGU6Im1hc3RlciJ9Z2V0T3ZlcmxheUJ5TmFtZShsKXtyZXR1cm4gdGhpcy5fd290LmdldE92ZXJs'@; put 'YXlCeU5hbWUobCl9ZXhwb3J0U2V0dGluZ3NBc0NsYXNzTmFtZXMoKXtyZXR1cm4gdGhpcy5fd290LmV4cG9ydFNldHRpbmdzQXNDbGFzc05hbWVzKCl9dXBkYXRlKGwsYSl7cmV0dXJuIHRoaXMuX3dvdC53dFNldHRpbmdzLnVwZGF0ZShsLGEpLHRoaXN9Z2V0U2V0dGluZyhsLGEsZCxoLGYp'@; put 'e3JldHVybiB0aGlzLl93b3Qud3RTZXR0aW5ncy5nZXRTZXR0aW5nKGwsYSxkLGgsZil9aGFzU2V0dGluZyhsKXtyZXR1cm4gdGhpcy5fd290Lnd0U2V0dGluZ3MuaGFzU2V0dGluZyhsKX1kZXN0cm95KCl7dGhpcy5fd290LmRlc3Ryb3koKX19ZnVuY3Rpb24gVDNlKGMpe2xldHtpc1NoaWZ0'@; put 'S2V5OmwsaXNMZWZ0Q2xpY2s6YSxpc1JpZ2h0Q2xpY2s6ZCxjb29yZHM6aCxzZWxlY3Rpb246Zixjb250cm9sbGVyOnYsY2VsbENvb3Jkc0ZhY3Rvcnk6TX09Yztjb25zdCBJPWYuaXNTZWxlY3RlZCgpP2YuZ2V0U2VsZWN0ZWRSYW5nZSgpLmN1cnJlbnQoKTpudWxsLEc9Zi5pc1NlbGVjdGVk'@; put 'QnlDb3JuZXIoKSxyZT1mLmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigpO2lmKGYubWFya1NvdXJjZSgibW91c2UiKSxsJiZJKWgucm93Pj0wJiZoLmNvbD49MCYmIXYuY2VsbD9mLnNldFJhbmdlRW5kKGgpOihHfHxyZSkmJmgucm93Pj0wJiZoLmNvbD49MCYmIXYuY2VsbD9mLnNldFJhbmdlRW5k'@; put 'KE0oaC5yb3csaC5jb2wpKTpHJiZoLnJvdzwwJiYhdi5jb2x1bW4/Zi5zZXRSYW5nZUVuZChNKEkudG8ucm93LGguY29sKSk6cmUmJmguY29sPDAmJiF2LnJvdz9mLnNldFJhbmdlRW5kKE0oaC5yb3csSS50by5jb2wpKTooIUcmJiFyZSYmaC5jb2w8MHx8RyYmaC5jb2w8MCkmJiF2LnJvdz9m'@; put 'LnNlbGVjdFJvd3MoTWF0aC5tYXgoSS5mcm9tLnJvdywwKSxoLnJvdyxoLmNvbCk6KCFHJiYhcmUmJmgucm93PDB8fHJlJiZoLnJvdzwwKSYmIXYuY29sdW1uJiZmLnNlbGVjdENvbHVtbnMoTWF0aC5tYXgoSS5mcm9tLmNvbCwwKSxoLmNvbCxoLnJvdyk7ZWxzZXtjb25zdCB1ZT0hZi5pbklu'@; put 'U2VsZWN0aW9uKGgpLHllPWF8fGQmJnVlO2gucm93PDAmJmguY29sPj0wJiYhdi5jb2x1bW4/eWUmJmYuc2VsZWN0Q29sdW1ucyhoLmNvbCxoLmNvbCxoLnJvdyk6aC5jb2w8MCYmaC5yb3c+PTAmJiF2LnJvdz95ZSYmZi5zZWxlY3RSb3dzKGgucm93LGgucm93LGguY29sKTpoLmNvbD49MCYm'@; put 'aC5yb3c+PTAmJiF2LmNlbGw/eWUmJmYuc2V0UmFuZ2VTdGFydChoKTpoLmNvbDwwJiZoLnJvdzwwJiZmLnNlbGVjdEFsbCghMCwhMCx7ZGlzYWJsZUhlYWRlcnNIaWdobGlnaHQ6ITAsZm9jdXNQb3NpdGlvbjp7cm93OjAsY29sOjB9fSl9Zi5tYXJrRW5kU291cmNlKCl9ZnVuY3Rpb24gQTNl'@; put 'KGMpe2xldHtpc0xlZnRDbGljazpsLHNlbGVjdGlvbjphLGNlbGxSYW5nZU1hcHBlcjpkfT1jO2lmKCFsfHwibXVsdGlwbGUiIT09YS5zZXR0aW5ncy5zZWxlY3Rpb25Nb2RlKXJldHVybjtjb25zdCBoPWEuZ2V0U2VsZWN0ZWRSYW5nZSgpLGY9aC5jbG9uZSgpLm1hcChNPT5kLnRvUmVuZGVy'@; put 'YWJsZShNKSksdj1mLmN1cnJlbnQoKTtpZihmLnNpemUoKT4xJiYhdi5pc0hlYWRlcigpJiYhYS5pc011bHRpcGxlKHYpKXtjb25zdCBNPWYuZmluZEFsbCh2KTtNLmxlbmd0aD09PWYuc2l6ZSgpPyhoLnBvcCgpLGEucmVmcmVzaCgpKTpNLmxlbmd0aD4xJiYoaC5yZW1vdmVMYXllcnMoTS5t'@; put 'YXAoST0+e2xldHtsYXllcjpHfT1JO3JldHVybiBHfSkpLGEucmVmcmVzaCgpKX19Y29uc3QgRXR0PW5ldyBNYXAoW1sidG91Y2hzdGFydCIsVDNlXSxbInRvdWNoZW5kIixBM2VdLFsibW91c2Vkb3duIixUM2VdLFsibW91c2VvdmVyIixmdW5jdGlvbiB4dHQoYyl7bGV0e2lzTGVmdENsaWNr'@; put 'OmwsY29vcmRzOmEsc2VsZWN0aW9uOmQsY29udHJvbGxlcjpoLGNlbGxDb29yZHNGYWN0b3J5OmZ9PWM7aWYoIWwpcmV0dXJuO2NvbnN0IHY9ZC5pc1NlbGVjdGVkQnlSb3dIZWFkZXIoKSxNPWQuaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCksST1kLnRhYmxlUHJvcHMuY291bnRDb2xzKCks'@; put 'Rz1kLnRhYmxlUHJvcHMuY291bnRSb3dzKCk7ZC5tYXJrU291cmNlKCJtb3VzZSIpLE0mJiFoLmNvbHVtbj9kLnNldFJhbmdlRW5kKGYoRy0xLGEuY29sKSk6diYmIWgucm93P2Quc2V0UmFuZ2VFbmQoZihhLnJvdyxJLTEpKTpoLmNlbGx8fGQuc2V0UmFuZ2VFbmQoYSksZC5tYXJrRW5kU291'@; put 'cmNlKCl9XSxbIm1vdXNldXAiLEEzZV1dKTtmdW5jdGlvbiBrSyhjLGwpe0V0dC5nZXQoYy50eXBlKSh7aXNTaGlmdEtleTpjLnNoaWZ0S2V5LGlzTGVmdENsaWNrOiRPKGMpfHwidG91Y2hzdGFydCI9PT1jLnR5cGUsaXNSaWdodENsaWNrOlBtKGMpLC4uLmx9KX1jb25zdCBrM2U9bmV3IFdl'@; put 'YWtNYXAsREs9U3ltYm9sKCJyb290SW5zdGFuY2UiKTtmdW5jdGlvbiB3XyhjKXtyZXR1cm4gazNlLmhhcyhjKX1mdW5jdGlvbiBWbShjLGwsYSl7RDNlKGMsbCksbC5zZXQoYyxhKX1mdW5jdGlvbiBEM2UoYyxsKXtpZihsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5p'@; put 'dGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfWZ1bmN0aW9uIEJtKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBEdHQoYyl7dmFyIGw9ZnVuY3Rpb24gSXR0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1j'@; put 'W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1y'@; put 'ZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6'@; put 'ITB9KTpjW2xdPWEsY31mdW5jdGlvbiBNdShjLGwpe3JldHVybiBjLmdldChDXyhjLGwpKX1mdW5jdGlvbiBCZChjLGwsYSl7cmV0dXJuIGMuc2V0KENfKGMsbCksYSksYX1mdW5jdGlvbiBDXyhjLGwsYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGM/Yz09PWw6Yy5oYXMobCkpcmV0dXJuIGFy'@; put 'Z3VtZW50cy5sZW5ndGg8Mz9sOmE7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBlbGVtZW50IGlzIG5vdCBwcmVzZW50IG9uIHRoaXMgb2JqZWN0Iil9dmFyIElLPW5ldyBXZWFrTWFwLHBQPW5ldyBXZWFrTWFwLGdQPW5ldyBXZWFrTWFwLENnPW5ldyBXZWFrTWFwLGQzPW5ldyBXZWFr'@; put 'TWFwLFJLPW5ldyBXZWFrTWFwLExLPW5ldyBXZWFrTWFwLFNfPW5ldyBXZWFrTWFwLCRFPW5ldyBXZWFrU2V0O2Z1bmN0aW9uIEkzZSgpe3JldHVybiBwYXJzZUludCh0aGlzLmhvdC5yb290RWxlbWVudC5nZXRBdHRyaWJ1dGUoRk8oKVswXSksMTApfWZ1bmN0aW9uIEx0dChjKXtjb25zdCBs'@; put 'PUNfKCRFLHRoaXMsSTNlKS5jYWxsKHRoaXMpK2M7bXModGhpcy5ob3Qucm9vdEVsZW1lbnQsLi4uRk8obCkpfWZ1bmN0aW9uIE90dCgpe2NvbnN0IGM9dGhpcy5ob3Qucm9vdEVsZW1lbnQ7dGhpcy5oYXNWZXJ0aWNhbFNjcm9sbCgpP0VpKGMsImh0SGFzU2Nyb2xsWSIpOmhzKGMsImh0SGFz'@; put 'U2Nyb2xsWSIpLHRoaXMuaGFzSG9yaXpvbnRhbFNjcm9sbCgpP0VpKGMsImh0SGFzU2Nyb2xsWCIpOmhzKGMsImh0SGFzU2Nyb2xsWCIpfWNvbnN0IFB0dD1jbGFzcyBSdHR7Y29uc3RydWN0b3IobCl7KGZ1bmN0aW9uIGt0dChjLGwpe0QzZShjLGwpLGwuYWRkKGMpfSkodGhpcywkRSksQm0o'@; put 'dGhpcywiaG90Iix2b2lkIDApLEJtKHRoaXMsImV2ZW50TWFuYWdlciIsdm9pZCAwKSxCbSh0aGlzLCJzZXR0aW5ncyIsdm9pZCAwKSxCbSh0aGlzLCJUSEVBRCIsdm9pZCAwKSxCbSh0aGlzLCJUQk9EWSIsdm9pZCAwKSxCbSh0aGlzLCJfd3QiLHZvaWQgMCksQm0odGhpcywiYWN0aXZlV3Qi'@; put 'LHZvaWQgMCksVm0odGhpcyxJSywwKSxWbSh0aGlzLHBQLDApLEJtKHRoaXMsInBvc3Rwb25lZEFkanVzdEVsZW1lbnRzU2l6ZSIsITEpLFZtKHRoaXMsZ1AsITEpLFZtKHRoaXMsQ2csdm9pZCAwKSxWbSh0aGlzLGQzLHZvaWQgMCksVm0odGhpcyxSSywwKSxWbSh0aGlzLExLLDApLFZtKHRo'@; put 'aXMsU18sbnVsbCksdGhpcy5ob3Q9bCx0aGlzLmV2ZW50TWFuYWdlcj1uZXcgWjIodGhpcy5ob3QpLHRoaXMuc2V0dGluZ3M9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKSx0aGlzLmNyZWF0ZUVsZW1lbnRzKCksdGhpcy5yZWdpc3RlckV2ZW50cygpLHRoaXMuaW5pdGlhbGl6ZVdhbGtvbnRhYmxl'@; put 'KCl9cmVuZGVyKCl7aWYoIXRoaXMuaG90LmlzUmVuZGVyU3VzcGVuZGVkKCkpe2NvbnN0IGw9dGhpcy5ob3QuZm9yY2VGdWxsUmVuZGVyO3RoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVSZW5kZXIiLGwpLHRoaXMucG9zdHBvbmVkQWRqdXN0RWxlbWVudHNTaXplJiYodGhpcy5wb3N0cG9uZWRB'@; put 'ZGp1c3RFbGVtZW50c1NpemU9ITEsdGhpcy5hZGp1c3RFbGVtZW50c1NpemUoKSksdGhpcy5fd3QuZHJhdyghbCksQ18oJEUsdGhpcyxPdHQpLmNhbGwodGhpcyksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyUmVuZGVyIixsKSx0aGlzLmhvdC5mb3JjZUZ1bGxSZW5kZXI9ITF9fWFkanVzdEVs'@; put 'ZW1lbnRzU2l6ZSgpe3RoaXMuaG90LmlzUmVuZGVyU3VzcGVuZGVkKCk/dGhpcy5wb3N0cG9uZWRBZGp1c3RFbGVtZW50c1NpemU9ITA6dGhpcy5fd3Qud3RPdmVybGF5cy5hZGp1c3RFbGVtZW50c1NpemUoKX1nZXRDZWxsQXRDb29yZHMobCxhKXtjb25zdCBkPXRoaXMuX3d0LmdldENlbGwo'@; put 'bCxhKTtyZXR1cm4gZDwwP251bGw6ZH1zY3JvbGxWaWV3cG9ydChsLGEsZCl7cmV0dXJuIHRoaXMuX3d0LnNjcm9sbFZpZXdwb3J0KGwsYSxkKX1zY3JvbGxWaWV3cG9ydEhvcml6b250YWxseShsLGEpe3JldHVybiB0aGlzLl93dC5zY3JvbGxWaWV3cG9ydEhvcml6b250YWxseShsLGEpfXNj'@; put 'cm9sbFZpZXdwb3J0VmVydGljYWxseShsLGEpe3JldHVybiB0aGlzLl93dC5zY3JvbGxWaWV3cG9ydFZlcnRpY2FsbHkobCxhKX1jcmVhdGVFbGVtZW50cygpe2NvbnN0e3Jvb3RFbGVtZW50Omwscm9vdERvY3VtZW50OmF9PXRoaXMuaG90LGQ9bC5nZXRBdHRyaWJ1dGUoInN0eWxlIik7ZCYm'@; put 'bC5zZXRBdHRyaWJ1dGUoImRhdGEtb3JpZ2luYWxzdHlsZSIsZCksRWkobCwiaGFuZHNvbnRhYmxlIiksQmQoZDMsdGhpcyxhLmNyZWF0ZUVsZW1lbnQoIlRBQkxFIikpLEVpKE11KGQzLHRoaXMpLCJodENvcmUiKSx0aGlzLmhvdC5nZXRTZXR0aW5ncygpLnRhYmxlQ2xhc3NOYW1lJiZFaShN'@; put 'dShkMyx0aGlzKSx0aGlzLmhvdC5nZXRTZXR0aW5ncygpLnRhYmxlQ2xhc3NOYW1lKSx0aGlzLnNldHRpbmdzLmFyaWFUYWdzJiYobXMoTXUoZDMsdGhpcyksW1sicm9sZSIsInByZXNlbnRhdGlvbiJdXSksbXMobCxbWyJyb2xlIiwidHJlZWdyaWQiXSxOMmUoLTEpLEZPKHRoaXMuaG90LmNv'@; put 'dW50Q29scygpKSxbImFyaWEtbXVsdGlzZWxlY3RhYmxlIiwidHJ1ZSJdXSkpLHRoaXMuVEhFQUQ9YS5jcmVhdGVFbGVtZW50KCJUSEVBRCIpLE11KGQzLHRoaXMpLmFwcGVuZENoaWxkKHRoaXMuVEhFQUQpLHRoaXMuVEJPRFk9YS5jcmVhdGVFbGVtZW50KCJUQk9EWSIpLE11KGQzLHRoaXMp'@; put 'LmFwcGVuZENoaWxkKHRoaXMuVEJPRFkpLHRoaXMuaG90LnRhYmxlPU11KGQzLHRoaXMpLHRoaXMuaG90LmNvbnRhaW5lci5pbnNlcnRCZWZvcmUoTXUoZDMsdGhpcyksdGhpcy5ob3QuY29udGFpbmVyLmZpcnN0Q2hpbGQpfXJlZ2lzdGVyRXZlbnRzKCl7Y29uc3R7cm9vdEVsZW1lbnQ6bCxy'@; put 'b290RG9jdW1lbnQ6YSxzZWxlY3Rpb246ZCxyb290V2luZG93Omh9PXRoaXMuaG90LGY9YS5kb2N1bWVudEVsZW1lbnQ7dGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihsLCJtb3VzZWRvd24iLE09PntCZChnUCx0aGlzLCEwKSx0aGlzLmlzVGV4dFNlbGVjdGlvbkFsbG93ZWQo'@; put 'TS50YXJnZXQpfHwoRCQoaCksTS5wcmV2ZW50RGVmYXVsdCgpLGguZm9jdXMoKSl9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGwsIm1vdXNldXAiLCgpPT57QmQoZ1AsdGhpcywhMSl9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGwsIm1vdXNlbW92'@; put 'ZSIsTT0+e011KGdQLHRoaXMpJiYhdGhpcy5pc1RleHRTZWxlY3Rpb25BbGxvd2VkKE0udGFyZ2V0KSYmKHRoaXMuc2V0dGluZ3MuZnJhZ21lbnRTZWxlY3Rpb24mJkQkKGgpLE0ucHJldmVudERlZmF1bHQoKSl9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGYsImtleXVw'@; put 'IixNPT57ZC5pc0luUHJvZ3Jlc3MoKSYmIU0uc2hpZnRLZXkmJmQuZmluaXNoKCl9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGYsIm1vdXNldXAiLE09PntkLmlzSW5Qcm9ncmVzcygpJiYkTyhNKSYmZC5maW5pc2goKSxCZChDZyx0aGlzLCExKTtjb25zdCBJPVlPKGEu'@; put 'YWN0aXZlRWxlbWVudCk7REUoYS5hY3RpdmVFbGVtZW50KSYmIUl8fChJfHwhZC5pc1NlbGVjdGVkKCkmJiFkLmlzU2VsZWN0ZWRCeUFueUhlYWRlcigpJiYhbC5jb250YWlucyhNLnRhcmdldCkmJiFQbShNKSkmJnRoaXMuaG90LnVubGlzdGVuKCl9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRF'@; put 'dmVudExpc3RlbmVyKGYsImNvbnRleHRtZW51IixNPT57ZC5pc0luUHJvZ3Jlc3MoKSYmUG0oTSkmJihkLmZpbmlzaCgpLEJkKENnLHRoaXMsITEpKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoZiwidG91Y2hlbmQiLCgpPT57ZC5pc0luUHJvZ3Jlc3MoKSYmZC5maW5p'@; put 'c2goKSxCZChDZyx0aGlzLCExKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoZiwibW91c2Vkb3duIixNPT57Y29uc3QgST1NLnRhcmdldCxHPU0ueHx8TS5jbGllbnRYLHJlPU0ueXx8TS5jbGllbnRZO2xldCB1ZT1NLnRhcmdldDtpZihNdShDZyx0aGlzKXx8IWx8fCF0'@; put 'aGlzLmhvdC52aWV3KXJldHVybjtjb25zdHtob2xkZXI6eWV9PXRoaXMuX3d0Lnd0VGFibGU7aWYodWU9PT15ZSl7Y29uc3QgQmU9ZDAoYSk7aWYoYS5lbGVtZW50RnJvbVBvaW50KEcrQmUscmUpIT09eWV8fGEuZWxlbWVudEZyb21Qb2ludChHLHJlK0JlKSE9PXllKXJldHVybn1lbHNlIGZv'@; put 'cig7dWUhPT1mOyl7aWYobnVsbD09PXVlKXtpZihNLmlzVGFyZ2V0V2ViQ29tcG9uZW50KWJyZWFrO3JldHVybn1pZih1ZT09PWwpcmV0dXJuO3VlPXVlLnBhcmVudE5vZGV9KCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLnNldHRpbmdzLm91dHNpZGVDbGlja0Rlc2VsZWN0cz90aGlzLnNldHRp'@; put 'bmdzLm91dHNpZGVDbGlja0Rlc2VsZWN0cyhJKTp0aGlzLnNldHRpbmdzLm91dHNpZGVDbGlja0Rlc2VsZWN0cyk/dGhpcy5ob3QuZGVzZWxlY3RDZWxsKCk6dGhpcy5ob3QuZGVzdHJveUVkaXRvcighMSwhMSl9KTtsZXQgdj1WNyhoKTtmb3IoO251bGwhPT12Oyl0aGlzLmV2ZW50TWFuYWdl'@; put 'ci5hZGRFdmVudExpc3RlbmVyKHYuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCJjbGljayIsKCk9Pnt0aGlzLmhvdC51bmxpc3RlbigpfSksdj1WNyh2KTt0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKE11KGQzLHRoaXMpLCJzZWxlY3RzdGFydCIsTT0+e3RoaXMuc2V0dGlu'@; put 'Z3MuZnJhZ21lbnRTZWxlY3Rpb258fERFKE0udGFyZ2V0KXx8TS5wcmV2ZW50RGVmYXVsdCgpfSl9dHJhbnNsYXRlRnJvbVJlbmRlcmFibGVUb1Zpc3VhbENvb3JkcyhsKXtsZXR7cm93OmEsY29sOmR9PWw7cmV0dXJuIHRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKC4uLnRoaXMudHJhbnNs'@; put 'YXRlRnJvbVJlbmRlcmFibGVUb1Zpc3VhbEluZGV4KGEsZCkpfXRyYW5zbGF0ZUZyb21SZW5kZXJhYmxlVG9WaXN1YWxJbmRleChsLGEpe2xldCBkPWw+PTA/dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChsKTpsLGg9YT49MD90aGlzLmhvdC5j'@; put 'b2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KGEpOmE7cmV0dXJuIG51bGw9PT1kJiYoZD1sKSxudWxsPT09aCYmKGg9YSksW2QsaF19Y291bnRSZW5kZXJhYmxlSW5kZXhlcyhsLGEpe2NvbnN0IGQ9TWF0aC5taW4obC5nZXROb3RUcmltbWVkSW5kZXhlc0xl'@; put 'bmd0aCgpLGEpLGg9bC5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoZC0xLC0xKTtyZXR1cm4gbnVsbD09PWg/MDpsLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoaCkrMX1jb3VudFJlbmRlcmFibGVDb2x1bW5zKCl7cmV0dXJuIHRoaXMuY291bnRSZW5kZXJhYmxlSW5kZXhlcyh0aGlz'@; put 'LmhvdC5jb2x1bW5JbmRleE1hcHBlcix0aGlzLnNldHRpbmdzLm1heENvbHMpfWNvdW50UmVuZGVyYWJsZVJvd3MoKXtyZXR1cm4gdGhpcy5jb3VudFJlbmRlcmFibGVJbmRleGVzKHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLHRoaXMuc2V0dGluZ3MubWF4Um93cyl9Y291bnROb3RIaWRkZW5S'@; put 'b3dJbmRleGVzKGwsYSl7cmV0dXJuIHRoaXMuY291bnROb3RIaWRkZW5JbmRleGVzKGwsYSx0aGlzLmhvdC5yb3dJbmRleE1hcHBlcix0aGlzLmNvdW50UmVuZGVyYWJsZVJvd3MoKSl9Y291bnROb3RIaWRkZW5Db2x1bW5JbmRleGVzKGwsYSl7cmV0dXJuIHRoaXMuY291bnROb3RIaWRkZW5J'@; put 'bmRleGVzKGwsYSx0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlcix0aGlzLmNvdW50UmVuZGVyYWJsZUNvbHVtbnMoKSl9Y291bnROb3RIaWRkZW5JbmRleGVzKGwsYSxkLGgpe2lmKGlzTmFOKGwpfHxsPDApcmV0dXJuIDA7Y29uc3QgZj1kLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChsLGEp'@; put 'LHY9ZC5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KGYpO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKHYpKXJldHVybiAwO2xldCBNPTA7cmV0dXJuIGE8MD9NPXYrMTphPjAmJihNPWgtdiksTX1jb3VudE5vdEhpZGRlbkZpeGVkQ29sdW1uc1N0YXJ0KCl7Y29uc3QgbD10aGlzLmhvdC5jb3Vu'@; put 'dENvbHMoKSxhPU1hdGgubWluKHBhcnNlSW50KHRoaXMuc2V0dGluZ3MuZml4ZWRDb2x1bW5zU3RhcnQsMTApLGwpLTE7cmV0dXJuIHRoaXMuY291bnROb3RIaWRkZW5Db2x1bW5JbmRleGVzKGEsLTEpfWNvdW50Tm90SGlkZGVuRml4ZWRSb3dzVG9wKCl7Y29uc3QgbD10aGlzLmhvdC5jb3Vu'@; put 'dFJvd3MoKSxhPU1hdGgubWluKHBhcnNlSW50KHRoaXMuc2V0dGluZ3MuZml4ZWRSb3dzVG9wLDEwKSxsKS0xO3JldHVybiB0aGlzLmNvdW50Tm90SGlkZGVuUm93SW5kZXhlcyhhLC0xKX1jb3VudE5vdEhpZGRlbkZpeGVkUm93c0JvdHRvbSgpe2NvbnN0IGw9dGhpcy5ob3QuY291bnRSb3dz'@; put 'KCksYT1NYXRoLm1heChsLXBhcnNlSW50KHRoaXMuc2V0dGluZ3MuZml4ZWRSb3dzQm90dG9tLDEwKSwwKTtyZXR1cm4gdGhpcy5jb3VudE5vdEhpZGRlblJvd0luZGV4ZXMoYSwxKX1jb3VudFJlbmRlcmFibGVDb2x1bW5zSW5SYW5nZShsLGEpe2xldCBkPTA7Zm9yKGxldCBoPWw7aDw9YTto'@; put 'KyspbnVsbCE9PXRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoaCkmJihkKz0xKTtyZXR1cm4gZH1jb3VudFJlbmRlcmFibGVSb3dzSW5SYW5nZShsLGEpe2xldCBkPTA7Zm9yKGxldCBoPWw7aDw9YTtoKyspbnVsbCE9PXRoaXMuaG90LnJv'@; put 'd0luZGV4TWFwcGVyLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoaCkmJihkKz0xKTtyZXR1cm4gZH1hZGRDbGFzc05hbWVUb0xpY2Vuc2VFbGVtZW50KGwpe3ZhciBhO2NvbnN0IGQ9bnVsbD09PShhPXRoaXMuaG90LnJvb3RFbGVtZW50LnBhcmVudE5vZGUpfHx2b2lkIDA9PT1hP3Zv'@; put 'aWQgMDphLnF1ZXJ5U2VsZWN0b3IoIi5ob3QtZGlzcGxheS1saWNlbnNlLWluZm8iKTtkJiZFaShkLGwpfXJlbW92ZUNsYXNzTmFtZUZyb21MaWNlbnNlRWxlbWVudChsKXt2YXIgYTtjb25zdCBkPW51bGw9PT0oYT10aGlzLmhvdC5yb290RWxlbWVudC5wYXJlbnROb2RlKXx8dm9pZCAwPT09'@; put 'YT92b2lkIDA6YS5xdWVyeVNlbGVjdG9yKCIuaG90LWRpc3BsYXktbGljZW5zZS1pbmZvIik7ZCYmaHMoZCxsKX1pc01haW5UYWJsZU5vdEZ1bGx5Q292ZXJlZEJ5T3ZlcmxheXMoKXtjb25zdCBsPXRoaXMuY291bnROb3RIaWRkZW5GaXhlZFJvd3NUb3AoKSt0aGlzLmNvdW50Tm90SGlkZGVu'@; put 'Rml4ZWRSb3dzQm90dG9tKCksYT10aGlzLmNvdW50Tm90SGlkZGVuRml4ZWRDb2x1bW5zU3RhcnQoKTtyZXR1cm4gdGhpcy5ob3QuY291bnRSZW5kZXJlZFJvd3MoKT5sJiZ0aGlzLmhvdC5jb3VudFJlbmRlcmVkQ29scygpPmF9aW5pdGlhbGl6ZVdhbGtvbnRhYmxlKCl7Y29uc3QgbD17YXJp'@; put 'YVRhZ3M6dGhpcy5zZXR0aW5ncy5hcmlhVGFncyxydGxNb2RlOnRoaXMuaG90LmlzUnRsKCksZXh0ZXJuYWxSb3dDYWxjdWxhdG9yOnRoaXMuaG90LmdldFBsdWdpbigiYXV0b1Jvd1NpemUiKSYmdGhpcy5ob3QuZ2V0UGx1Z2luKCJhdXRvUm93U2l6ZSIpLmlzRW5hYmxlZCgpLHRhYmxlOk11'@; put 'KGQzLHRoaXMpLGlzRGF0YVZpZXdJbnN0YW5jZTooKT0+d18odGhpcy5ob3QpLHByZXZlbnRPdmVyZmxvdzooKT0+dGhpcy5zZXR0aW5ncy5wcmV2ZW50T3ZlcmZsb3cscHJldmVudFdoZWVsOigpPT50aGlzLnNldHRpbmdzLnByZXZlbnRXaGVlbCx2aWV3cG9ydENvbHVtblJlbmRlcmluZ1Ro'@; put 'cmVzaG9sZDooKT0+dGhpcy5zZXR0aW5ncy52aWV3cG9ydENvbHVtblJlbmRlcmluZ1RocmVzaG9sZCx2aWV3cG9ydFJvd1JlbmRlcmluZ1RocmVzaG9sZDooKT0+dGhpcy5zZXR0aW5ncy52aWV3cG9ydFJvd1JlbmRlcmluZ1RocmVzaG9sZCxkYXRhOihmLHYpPT50aGlzLmhvdC5nZXREYXRh'@; put 'QXRDZWxsKC4uLnRoaXMudHJhbnNsYXRlRnJvbVJlbmRlcmFibGVUb1Zpc3VhbEluZGV4KGYsdikpLHRvdGFsUm93czooKT0+dGhpcy5jb3VudFJlbmRlcmFibGVSb3dzKCksdG90YWxDb2x1bW5zOigpPT50aGlzLmNvdW50UmVuZGVyYWJsZUNvbHVtbnMoKSxmaXhlZENvbHVtbnNTdGFydDoo'@; put 'KT0+dGhpcy5jb3VudE5vdEhpZGRlbkZpeGVkQ29sdW1uc1N0YXJ0KCksZml4ZWRSb3dzVG9wOigpPT50aGlzLmNvdW50Tm90SGlkZGVuRml4ZWRSb3dzVG9wKCksZml4ZWRSb3dzQm90dG9tOigpPT50aGlzLmNvdW50Tm90SGlkZGVuRml4ZWRSb3dzQm90dG9tKCksc2hvdWxkUmVuZGVySW5s'@; put 'aW5lU3RhcnRPdmVybGF5OigpPT50aGlzLnNldHRpbmdzLmZpeGVkQ29sdW1uc1N0YXJ0PjB8fGwucm93SGVhZGVycygpLmxlbmd0aD4wLHNob3VsZFJlbmRlclRvcE92ZXJsYXk6KCk9PnRoaXMuc2V0dGluZ3MuZml4ZWRSb3dzVG9wPjB8fGwuY29sdW1uSGVhZGVycygpLmxlbmd0aD4wLHNo'@; put 'b3VsZFJlbmRlckJvdHRvbU92ZXJsYXk6KCk9PnRoaXMuc2V0dGluZ3MuZml4ZWRSb3dzQm90dG9tPjAsbWluU3BhcmVSb3dzOigpPT50aGlzLnNldHRpbmdzLm1pblNwYXJlUm93cyxyZW5kZXJBbGxSb3dzOnRoaXMuc2V0dGluZ3MucmVuZGVyQWxsUm93cyxyZW5kZXJBbGxDb2x1bW5zOnRo'@; put 'aXMuc2V0dGluZ3MucmVuZGVyQWxsQ29sdW1ucyxyb3dIZWFkZXJzOigpPT57Y29uc3QgZj1bXTtyZXR1cm4gdGhpcy5ob3QuaGFzUm93SGVhZGVycygpJiZmLnB1c2goKHYsTSk9Pntjb25zdCBJPXY+PTA/dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJ'@; put 'bmRleCh2KTp2O3RoaXMuYXBwZW5kUm93SGVhZGVyKEksTSl9KSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJHZXRSb3dIZWFkZXJSZW5kZXJlcnMiLGYpLEJkKHBQLHRoaXMsZi5sZW5ndGgpLHRoaXMuaG90LmdldFNldHRpbmdzKCkuYXJpYVRhZ3MmJkNfKCRFLHRoaXMsSTNlKS5jYWxsKHRo'@; put 'aXMpPT09dGhpcy5ob3QuY291bnRDb2xzKCkmJkNfKCRFLHRoaXMsTHR0KS5jYWxsKHRoaXMsTXUocFAsdGhpcykpLGZ9LGNvbHVtbkhlYWRlcnM6KCk9Pntjb25zdCBmPVtdO3JldHVybiB0aGlzLmhvdC5oYXNDb2xIZWFkZXJzKCkmJmYucHVzaCgodixNKT0+e2NvbnN0IEk9dj49MD90aGlz'@; put 'LmhvdC5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KHYpOnY7dGhpcy5hcHBlbmRDb2xIZWFkZXIoSSxNKX0pLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckdldENvbHVtbkhlYWRlclJlbmRlcmVycyIsZiksQmQoSUssdGhpcyxmLmxlbmd0aCksZn0sY29s'@; put 'dW1uV2lkdGg6Zj0+e2NvbnN0IHY9dGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChmKTtyZXR1cm4gdGhpcy5ob3QuZ2V0Q29sV2lkdGgobnVsbD09PXY/Zjp2KX0scm93SGVpZ2h0OmY9Pntjb25zdCB2PXRoaXMuaG90LnJvd0luZGV4TWFw'@; put 'cGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoZik7cmV0dXJuIHRoaXMuaG90LmdldFJvd0hlaWdodChudWxsPT09dj9mOnYpfSxyb3dIZWlnaHRCeU92ZXJsYXlOYW1lOihmLHYpPT57Y29uc3QgTT10aGlzLmhvdC5yb3dJbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJs'@; put 'ZUluZGV4KGYpLEk9bnVsbD09PU0/ZjpNO3JldHVybiB0aGlzLmhvdC5ydW5Ib29rcygibW9kaWZ5Um93SGVpZ2h0QnlPdmVybGF5TmFtZSIsdGhpcy5ob3QuZ2V0Um93SGVpZ2h0KEkpLEksdil9LGNlbGxSZW5kZXJlcjooZix2LE0pPT57Y29uc3RbSSxHXT10aGlzLnRyYW5zbGF0ZUZyb21S'@; put 'ZW5kZXJhYmxlVG9WaXN1YWxJbmRleChmLHYpLHJlPXRoaXMuaG90LnJ1bkhvb2tzKCJtb2RpZnlHZXRDZWxsQ29vcmRzIixJLEcsITEsIm1ldGEiKTtsZXQgdWU9SSx5ZT1HO0FycmF5LmlzQXJyYXkocmUpJiYoW3VlLHllXT1yZSk7Y29uc3QgRWU9dGhpcy5ob3QuZ2V0Q2VsbE1ldGEodWUs'@; put 'eWUpLEJlPXRoaXMuaG90LmNvbFRvUHJvcCh5ZSk7bGV0IEdlPXRoaXMuaG90LmdldERhdGFBdFJvd1Byb3AodWUsQmUpO3RoaXMuaG90Lmhhc0hvb2soImJlZm9yZVZhbHVlUmVuZGVyIikmJihHZT10aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlVmFsdWVSZW5kZXIiLEdlLEVlKSksdGhpcy5o'@; put 'b3QucnVuSG9va3MoImJlZm9yZVJlbmRlcmVyIixNLEksRyxCZSxHZSxFZSksdGhpcy5ob3QuZ2V0Q2VsbFJlbmRlcmVyKEVlKSh0aGlzLmhvdCxNLEksRyxCZSxHZSxFZSksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyUmVuZGVyZXIiLE0sSSxHLEJlLEdlLEVlKX0sc2VsZWN0aW9uczp0aGlz'@; put 'LmhvdC5zZWxlY3Rpb24uaGlnaGxpZ2h0LGhpZGVCb3JkZXJPbk1vdXNlRG93bk92ZXI6KCk9PnRoaXMuc2V0dGluZ3MuZnJhZ21lbnRTZWxlY3Rpb24sb25XaW5kb3dSZXNpemU6KCk9Pnt0aGlzLmhvdCYmIXRoaXMuaG90LmlzRGVzdHJveWVkJiZ0aGlzLmhvdC5yZWZyZXNoRGltZW5zaW9u'@; put 'cygpfSxvbkNvbnRhaW5lckVsZW1lbnRSZXNpemU6KCk9Pnt0aGlzLmhvdCYmIXRoaXMuaG90LmlzRGVzdHJveWVkJiZ6Nyh0aGlzLmhvdC5yb290RWxlbWVudCkmJnRoaXMuaG90LnJlZnJlc2hEaW1lbnNpb25zKCl9LG9uQ2VsbE1vdXNlRG93bjooZix2LE0sSSk9Pntjb25zdCBHPXRoaXMu'@; put 'dHJhbnNsYXRlRnJvbVJlbmRlcmFibGVUb1Zpc3VhbENvb3Jkcyh2KSxyZT17cm93OiExLGNvbHVtbjohMSxjZWxsOiExfTt0aGlzLmhvdC5saXN0ZW4oKSx0aGlzLmFjdGl2ZVd0PUksQmQoQ2csdGhpcywhMCksQmQoU18sdGhpcyx7eDpmLmNsaWVudFgseTpmLmNsaWVudFl9KSx0aGlzLmhv'@; put 'dC5ydW5Ib29rcygiYmVmb3JlT25DZWxsTW91c2VEb3duIixmLEcsTSxyZSksIU9tKGYpJiYoa0soZix7Y29vcmRzOkcsc2VsZWN0aW9uOnRoaXMuaG90LnNlbGVjdGlvbixjb250cm9sbGVyOnJlLGNlbGxDb29yZHNGYWN0b3J5Oih1ZSx5ZSk9PnRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRz'@; put 'KHVlLHllKX0pLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlck9uQ2VsbE1vdXNlRG93biIsZixHLE0pLHRoaXMuYWN0aXZlV3Q9dGhpcy5fd3QpfSxvbkNlbGxDb250ZXh0TWVudTooZix2LE0sSSk9Pntjb25zdCBHPXRoaXMudHJhbnNsYXRlRnJvbVJlbmRlcmFibGVUb1Zpc3VhbENvb3Jkcyh2'@; put 'KTt0aGlzLmFjdGl2ZVd0PUksQmQoQ2csdGhpcywhMSksdGhpcy5ob3Quc2VsZWN0aW9uLmlzSW5Qcm9ncmVzcygpJiZ0aGlzLmhvdC5zZWxlY3Rpb24uZmluaXNoKCksdGhpcy5ob3QucnVuSG9va3MoImJlZm9yZU9uQ2VsbENvbnRleHRNZW51IixmLEcsTSksIU9tKGYpJiYodGhpcy5ob3Qu'@; put 'cnVuSG9va3MoImFmdGVyT25DZWxsQ29udGV4dE1lbnUiLGYsRyxNKSx0aGlzLmFjdGl2ZVd0PXRoaXMuX3d0KX0sb25DZWxsTW91c2VPdXQ6KGYsdixNLEkpPT57Y29uc3QgRz10aGlzLnRyYW5zbGF0ZUZyb21SZW5kZXJhYmxlVG9WaXN1YWxDb29yZHModik7dGhpcy5hY3RpdmVXdD1JLHRo'@; put 'aXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVPbkNlbGxNb3VzZU91dCIsZixHLE0pLCFPbShmKSYmKHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlck9uQ2VsbE1vdXNlT3V0IixmLEcsTSksdGhpcy5hY3RpdmVXdD10aGlzLl93dCl9LG9uQ2VsbE1vdXNlT3ZlcjooZix2LE0sSSk9Pntjb25zdCBHPXRo'@; put 'aXMudHJhbnNsYXRlRnJvbVJlbmRlcmFibGVUb1Zpc3VhbENvb3Jkcyh2KSxyZT17cm93OiExLGNvbHVtbjohMSxjZWxsOiExfTt0aGlzLmFjdGl2ZVd0PUksdGhpcy5ob3QucnVuSG9va3MoImJlZm9yZU9uQ2VsbE1vdXNlT3ZlciIsZixHLE0scmUpLCFPbShmKSYmKE11KENnLHRoaXMpJiYo'@; put 'IU11KFNfLHRoaXMpfHxNdShTXyx0aGlzKS54IT09Zi5jbGllbnRYfHxNdShTXyx0aGlzKS55IT09Zi5jbGllbnRZKSYma0soZix7Y29vcmRzOkcsc2VsZWN0aW9uOnRoaXMuaG90LnNlbGVjdGlvbixjb250cm9sbGVyOnJlLGNlbGxDb29yZHNGYWN0b3J5Oih1ZSx5ZSk9PnRoaXMuaG90Ll9j'@; put 'cmVhdGVDZWxsQ29vcmRzKHVlLHllKX0pLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlck9uQ2VsbE1vdXNlT3ZlciIsZixHLE0pLHRoaXMuYWN0aXZlV3Q9dGhpcy5fd3QsQmQoU18sdGhpcyxudWxsKSl9LG9uQ2VsbE1vdXNlVXA6KGYsdixNLEkpPT57Y29uc3QgRz10aGlzLnRyYW5zbGF0ZUZy'@; put 'b21SZW5kZXJhYmxlVG9WaXN1YWxDb29yZHModik7dGhpcy5hY3RpdmVXdD1JLHRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVPbkNlbGxNb3VzZVVwIixmLEcsTSksIU9tKGYpJiYhdGhpcy5ob3QuaXNEZXN0cm95ZWQmJihrSyhmLHtjb29yZHM6RyxzZWxlY3Rpb246dGhpcy5ob3Quc2VsZWN0'@; put 'aW9uLGNlbGxSYW5nZU1hcHBlcjokcWUodGhpcy5ob3QsImNlbGxSYW5nZU1hcHBlciIpfSksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyT25DZWxsTW91c2VVcCIsZixHLE0pLHRoaXMuYWN0aXZlV3Q9dGhpcy5fd3QpfSxvbkNlbGxDb3JuZXJNb3VzZURvd246Zj0+e2YucHJldmVudERlZmF1'@; put 'bHQoKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJPbkNlbGxDb3JuZXJNb3VzZURvd24iLGYpfSxvbkNlbGxDb3JuZXJEYmxDbGljazpmPT57Zi5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlck9uQ2VsbENvcm5lckRibENsaWNrIixmKX0sYmVmb3JlRHJhdzooZix2'@; put 'KT0+dGhpcy5iZWZvcmVSZW5kZXIoZix2KSxvbkRyYXc6Zj0+dGhpcy5hZnRlclJlbmRlcihmKSxvbkJlZm9yZVZpZXdwb3J0U2Nyb2xsVmVydGljYWxseTooZix2KT0+e2NvbnN0IE09dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIsST1mPDA7bGV0IEc9ZjtyZXR1cm4gSXx8KEc9TS5nZXRWaXN1'@; put 'YWxGcm9tUmVuZGVyYWJsZUluZGV4KGYpLG51bGwhPT1HKT8oRz10aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlVmlld3BvcnRTY3JvbGxWZXJ0aWNhbGx5IixHLHYpLHRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVWaWV3cG9ydFNjcm9sbCIpLEk/RzpNLmdldFJlbmRlcmFibGVGcm9tVmlzdWFs'@; put 'SW5kZXgoRykpOmZ9LG9uQmVmb3JlVmlld3BvcnRTY3JvbGxIb3Jpem9udGFsbHk6KGYsdik9Pntjb25zdCBNPXRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLEk9ZjwwO2xldCBHPWY7cmV0dXJuIEl8fChHPU0uZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChmKSxudWxsIT09Ryk/KEc9'@; put 'dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZVZpZXdwb3J0U2Nyb2xsSG9yaXpvbnRhbGx5IixHLHYpLHRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVWaWV3cG9ydFNjcm9sbCIpLEk/RzpNLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoRykpOmZ9LG9uU2Nyb2xsVmVydGljYWxseTooKT0+'@; put 'e3RoaXMuaG90LnJ1bkhvb2tzKCJhZnRlclNjcm9sbFZlcnRpY2FsbHkiKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJTY3JvbGwiKX0sb25TY3JvbGxIb3Jpem9udGFsbHk6KCk9Pnt0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJTY3JvbGxIb3Jpem9udGFsbHkiKSx0aGlzLmhvdC5ydW5Ib29r'@; put 'cygiYWZ0ZXJTY3JvbGwiKX0sb25CZWZvcmVSZW1vdmVDZWxsQ2xhc3NOYW1lczooKT0+dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZVJlbW92ZUNlbGxDbGFzc05hbWVzIiksb25CZWZvcmVIaWdobGlnaHRpbmdSb3dIZWFkZXI6KGYsdixNKT0+e2NvbnN0IEk9dGhpcy5ob3Qucm93SW5kZXhN'@; put 'YXBwZXIsRz1mPDA7bGV0IHJlPWY7R3x8KHJlPUkuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChmKSk7Y29uc3QgdWU9dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUhpZ2hsaWdodGluZ1Jvd0hlYWRlciIscmUsdixNKTtyZXR1cm4gRz91ZTpJLmdldFJlbmRlcmFibGVGcm9tVmlzdWFs'@; put 'SW5kZXgoSS5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgodWUsMSkpfSxvbkJlZm9yZUhpZ2hsaWdodGluZ0NvbHVtbkhlYWRlcjooZix2LE0pPT57Y29uc3QgST10aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlcixHPWY8MDtsZXQgcmU9ZjtHfHwocmU9SS5nZXRWaXN1YWxGcm9tUmVuZGVyYWJs'@; put 'ZUluZGV4KGYpKTtjb25zdCB1ZT10aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlSGlnaGxpZ2h0aW5nQ29sdW1uSGVhZGVyIixyZSx2LE0pO3JldHVybiBHP3VlOkkuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChJLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCh1ZSwxKSl9LG9uQWZ0ZXJE'@; put 'cmF3U2VsZWN0aW9uOihmLHYsTSk9PntsZXQgSTtjb25zdFtHLHJlXT10aGlzLnRyYW5zbGF0ZUZyb21SZW5kZXJhYmxlVG9WaXN1YWxJbmRleChmLHYpLHVlPXRoaXMuaG90LnNlbGVjdGlvbi5nZXRTZWxlY3RlZFJhbmdlKCk7aWYodWUuc2l6ZSgpPjApe2NvbnN0IEVlPXVlLnBlZWtCeUlu'@; put 'ZGV4KE0/PzApO0k9W0VlLmZyb20ucm93LEVlLmZyb20uY29sLEVlLnRvLnJvdyxFZS50by5jb2xdfXJldHVybiB0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJEcmF3U2VsZWN0aW9uIixHLHJlLEksTSl9LG9uQmVmb3JlRHJhd0JvcmRlcnM6KGYsdik9Pntjb25zdFtNLEksRyxyZV09Zix1ZT1b'@; put 'dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChNKSx0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KEkpLHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5k'@; put 'ZXgoRyksdGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChyZSldO3JldHVybiB0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlRHJhd0JvcmRlcnMiLHVlLHYpfSxvbkJlZm9yZVRvdWNoU2Nyb2xsOigpPT50aGlzLmhvdC5ydW5Ib29rcygiYmVm'@; put 'b3JlVG91Y2hTY3JvbGwiKSxvbkFmdGVyTW9tZW50dW1TY3JvbGw6KCk9PnRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlck1vbWVudHVtU2Nyb2xsIiksb25Nb2RpZnlSb3dIZWFkZXJXaWR0aDpmPT50aGlzLmhvdC5ydW5Ib29rcygibW9kaWZ5Um93SGVhZGVyV2lkdGgiLGYpLG9uTW9kaWZ5R2V0'@; put 'Q2VsbENvb3JkczooZix2LE0sSSk9Pntjb25zdCBHPXRoaXMuaG90LnJvd0luZGV4TWFwcGVyLHJlPXRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLHVlPXY+PTA/cmUuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleCh2KTp2LHllPWY+PTA/Ry5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUlu'@; put 'ZGV4KGYpOmYsRWU9dGhpcy5ob3QucnVuSG9va3MoIm1vZGlmeUdldENlbGxDb29yZHMiLHllLHVlLE0sSSk7aWYoQXJyYXkuaXNBcnJheShFZSkpe2NvbnN0W0JlLEdlLHN0LHB0XT1FZTtyZXR1cm5bQmU+PTA/Ry5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEcuZ2V0TmVhcmVzdE5v'@; put 'dEhpZGRlbkluZGV4KEJlLDEpKTpCZSxHZT49MD9yZS5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KHJlLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChHZSwxKSk6R2Usc3Q+PTA/Ry5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEcuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KHN0'@; put 'LC0xKSk6c3QscHQ+PTA/cmUuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChyZS5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgocHQsLTEpKTpwdF19fSxvbk1vZGlmeUdldENvb3Jkc0VsZW1lbnQ6KGYsdik9Pntjb25zdCBNPXRoaXMuaG90LnJvd0luZGV4TWFwcGVyLEk9dGhpcy5ob3Qu'@; put 'Y29sdW1uSW5kZXhNYXBwZXIsRz12Pj0wP0kuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleCh2KTp2LHJlPWY+PTA/TS5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KGYpOmYsdWU9dGhpcy5ob3QucnVuSG9va3MoIm1vZGlmeUdldENvb3Jkc0VsZW1lbnQiLHJlLEcpO2lmKEFycmF5'@; put 'LmlzQXJyYXkodWUpKXtjb25zdFt5ZSxFZV09dWU7cmV0dXJuW3llPj0wP00uZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChNLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCh5ZSwxKSk6eWUsRWU+PTA/SS5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEkuZ2V0TmVhcmVzdE5vdEhp'@; put 'ZGRlbkluZGV4KEVlLDEpKTpFZV19fSx2aWV3cG9ydFJvd0NhbGN1bGF0b3JPdmVycmlkZTpmPT57bGV0IHY9dGhpcy5zZXR0aW5ncy52aWV3cG9ydFJvd1JlbmRlcmluZ09mZnNldDtpZigiYXV0byI9PT12JiZ0aGlzLnNldHRpbmdzLmZpeGVkUm93c1RvcCYmKHY9MTApLHY+MHx8ImF1dG8i'@; put 'PT09dil7Y29uc3QgTT10aGlzLmNvdW50UmVuZGVyYWJsZVJvd3MoKSxJPWYuc3RhcnRSb3csRz1mLmVuZFJvdztpZigibnVtYmVyIj09dHlwZW9mIHYpZi5zdGFydFJvdz1NYXRoLm1heChJLXYsMCksZi5lbmRSb3c9TWF0aC5taW4oRyt2LE0tMSk7ZWxzZSBpZigiYXV0byI9PT12KXtjb25z'@; put 'dCByZT1NYXRoLm1heCgxLE1hdGguY2VpbChHL00qMTIpKTtmLnN0YXJ0Um93PU1hdGgubWF4KEktcmUsMCksZi5lbmRSb3c9TWF0aC5taW4oRytyZSxNLTEpfX10aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJWaWV3cG9ydFJvd0NhbGN1bGF0b3JPdmVycmlkZSIsZil9LHZpZXdwb3J0Q29sdW1u'@; put 'Q2FsY3VsYXRvck92ZXJyaWRlOmY9PntsZXQgdj10aGlzLnNldHRpbmdzLnZpZXdwb3J0Q29sdW1uUmVuZGVyaW5nT2Zmc2V0O2lmKCJhdXRvIj09PXYmJnRoaXMuc2V0dGluZ3MuZml4ZWRDb2x1bW5zU3RhcnQmJih2PTEwKSx2PjB8fCJhdXRvIj09PXYpe2NvbnN0IE09dGhpcy5jb3VudFJl'@; put 'bmRlcmFibGVDb2x1bW5zKCksST1mLnN0YXJ0Q29sdW1uLEc9Zi5lbmRDb2x1bW47aWYoIm51bWJlciI9PXR5cGVvZiB2JiYoZi5zdGFydENvbHVtbj1NYXRoLm1heChJLXYsMCksZi5lbmRDb2x1bW49TWF0aC5taW4oRyt2LE0tMSkpLCJhdXRvIj09PXYpe2NvbnN0IHJlPU1hdGgubWF4KDEs'@; put 'TWF0aC5jZWlsKEcvTSo2KSk7Zi5zdGFydENvbHVtbj1NYXRoLm1heChJLXJlLDApLGYuZW5kQ29sdW1uPU1hdGgubWluKEcrcmUsTS0xKX19dGhpcy5ob3QucnVuSG9va3MoImFmdGVyVmlld3BvcnRDb2x1bW5DYWxjdWxhdG9yT3ZlcnJpZGUiLGYpfSxyb3dIZWFkZXJXaWR0aDooKT0+dGhp'@; put 'cy5zZXR0aW5ncy5yb3dIZWFkZXJXaWR0aCxjb2x1bW5IZWFkZXJIZWlnaHQ6KCk9Pntjb25zdCBmPXRoaXMuaG90LnJ1bkhvb2tzKCJtb2RpZnlDb2x1bW5IZWFkZXJIZWlnaHQiKTtyZXR1cm4gdGhpcy5zZXR0aW5ncy5jb2x1bW5IZWFkZXJIZWlnaHR8fGZ9LHN0eWxlc0hhbmRsZXI6KCk9'@; put 'PnRoaXMuaG90LnN0eWxlc0hhbmRsZXJ9O3RoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVJbml0V2Fsa29udGFibGUiLGwpLHRoaXMuX3d0PW5ldyBBSyhsKSx0aGlzLmFjdGl2ZVd0PXRoaXMuX3d0O2NvbnN0IGE9dGhpcy5fd3Qud3RUYWJsZS5zcHJlYWRlcix7d2lkdGg6ZCxoZWlnaHQ6aH09'@; put 'dGhpcy5ob3Qucm9vdEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5zZXRMYXN0U2l6ZShkLGgpLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoYSwibW91c2Vkb3duIixmPT57Zi50YXJnZXQ9PT1hJiYzPT09Zi53aGljaCYmZi5zdG9wUHJvcGFnYXRpb24o'@; put 'KX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoYSwiY29udGV4dG1lbnUiLGY9PntmLnRhcmdldD09PWEmJjM9PT1mLndoaWNoJiZmLnN0b3BQcm9wYWdhdGlvbigpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLmhvdC5yb290RG9jdW1lbnQu'@; put 'ZG9jdW1lbnRFbGVtZW50LCJjbGljayIsKCk9Pnt0aGlzLnNldHRpbmdzLm9ic2VydmVET01WaXNpYmlsaXR5JiZ0aGlzLl93dC5kcmF3SW50ZXJydXB0ZWQmJnRoaXMuaG90LnJlbmRlcigpfSl9aXNUZXh0U2VsZWN0aW9uQWxsb3dlZChsKXtpZihERShsKSlyZXR1cm4hMDtjb25zdCBhPUlt'@; put 'KGwsdGhpcy5fd3Qud3RUYWJsZS5zcHJlYWRlcik7cmV0dXJuISEoITA9PT10aGlzLnNldHRpbmdzLmZyYWdtZW50U2VsZWN0aW9uJiZhfHwiY2VsbCI9PT10aGlzLnNldHRpbmdzLmZyYWdtZW50U2VsZWN0aW9uJiZ0aGlzLmlzU2VsZWN0ZWRPbmx5Q2VsbCgpJiZhfHwhdGhpcy5zZXR0aW5n'@; put 'cy5mcmFnbWVudFNlbGVjdGlvbiYmdGhpcy5pc0NlbGxFZGl0ZWQoKSYmdGhpcy5pc1NlbGVjdGVkT25seUNlbGwoKSl9aXNNb3VzZURvd24oKXtyZXR1cm4gTXUoQ2csdGhpcyl9aXNTZWxlY3RlZE9ubHlDZWxsKCl7dmFyIGwsYTtyZXR1cm4gbnVsbCE9PShsPW51bGw9PT0oYT10aGlzLmhv'@; put 'dC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpKXx8dm9pZCAwPT09YT92b2lkIDA6YS5pc1NpbmdsZUNlbGwoKSkmJnZvaWQgMCE9PWwmJmx9aXNDZWxsRWRpdGVkKCl7Y29uc3QgbD10aGlzLmhvdC5nZXRBY3RpdmVFZGl0b3IoKTtyZXR1cm4gbCYmbC5pc09wZW5lZCgpfWJlZm9yZVJlbmRlcihs'@; put 'LGEpe2wmJnRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVWaWV3UmVuZGVyIix0aGlzLmhvdC5mb3JjZUZ1bGxSZW5kZXIsYSl9YWZ0ZXJSZW5kZXIobCl7bCYmdGhpcy5ob3QucnVuSG9va3MoImFmdGVyVmlld1JlbmRlciIsdGhpcy5ob3QuZm9yY2VGdWxsUmVuZGVyKX1hcHBlbmRSb3dIZWFk'@; put 'ZXIobCxhKXtpZihhLmZpcnN0Q2hpbGQpe2NvbnN0IGQ9YS5maXJzdENoaWxkO2lmKCFncyhkLCJyZWxhdGl2ZSIpKXJldHVybiBBcChhKSx2b2lkIHRoaXMuYXBwZW5kUm93SGVhZGVyKGwsYSk7dGhpcy51cGRhdGVDZWxsSGVhZGVyKGQucXVlcnlTZWxlY3RvcigiLnJvd0hlYWRlciIpLGws'@; put 'dGhpcy5ob3QuZ2V0Um93SGVhZGVyKX1lbHNle2NvbnN0e3Jvb3REb2N1bWVudDpkLGdldFJvd0hlYWRlcjpofT10aGlzLmhvdCxmPWQuY3JlYXRlRWxlbWVudCgiZGl2Iiksdj1kLmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtmLmNsYXNzTmFtZT0icmVsYXRpdmUiLHYuY2xhc3NOYW1lPSJyb3dI'@; put 'ZWFkZXIiLHRoaXMudXBkYXRlQ2VsbEhlYWRlcih2LGwsaCksZi5hcHBlbmRDaGlsZCh2KSxhLmFwcGVuZENoaWxkKGYpfXRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckdldFJvd0hlYWRlciIsbCxhKX1hcHBlbmRDb2xIZWFkZXIobCxhKXtsZXQgZD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQg'@; put 'MCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06dGhpcy5ob3QuZ2V0Q29sSGVhZGVyLGg9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOjA7Y29uc3QgZj0oKT0+e2NvbnN0IHY9bD49MD90aGlzLmhvdC5nZXRDb2x1bW5NZXRhKGwpLmhl'@; put 'YWRlckNsYXNzTmFtZTpudWxsO3JldHVybiB2P3Yuc3BsaXQoIiAiKTpbXX07aWYoYS5maXJzdENoaWxkKXtjb25zdCB2PWEuZmlyc3RDaGlsZDtncyh2LCJyZWxhdGl2ZSIpPyh0aGlzLnVwZGF0ZUNlbGxIZWFkZXIodi5xdWVyeVNlbGVjdG9yKCIuY29sSGVhZGVyIiksbCxkLGgpLHYuY2xh'@; put 'c3NOYW1lPSIiLEVpKHYsWyJyZWxhdGl2ZSIsLi4uZigpXSkpOihBcChhKSx0aGlzLmFwcGVuZENvbEhlYWRlcihsLGEsZCxoKSl9ZWxzZXtjb25zdHtyb290RG9jdW1lbnQ6dn09dGhpcy5ob3QsTT12LmNyZWF0ZUVsZW1lbnQoImRpdiIpLEk9di5jcmVhdGVFbGVtZW50KCJzcGFuIiksRz1m'@; put 'KCk7TS5jbGFzc0xpc3QuYWRkKCJyZWxhdGl2ZSIsLi4uRyksSS5jbGFzc05hbWU9ImNvbEhlYWRlciIsdGhpcy5zZXR0aW5ncy5hcmlhVGFncyYmKG1zKE0sInJvbGUiLCJwcmVzZW50YXRpb24iKSxtcyhJLCJyb2xlIiwicHJlc2VudGF0aW9uIikpLHRoaXMudXBkYXRlQ2VsbEhlYWRlcihJ'@; put 'LGwsZCxoKSxNLmFwcGVuZENoaWxkKEkpLGEuYXBwZW5kQ2hpbGQoTSl9dGhpcy5ob3QucnVuSG9va3MoImFmdGVyR2V0Q29sSGVhZGVyIixsLGEsaCl9dXBkYXRlQ2VsbEhlYWRlcihsLGEsZCl7bGV0IGg9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1l'@; put 'bnRzWzNdOjAsZj1hO2NvbnN0IHY9dGhpcy5fd3Qud3RPdmVybGF5cy5nZXRQYXJlbnRPdmVybGF5KGwpfHx0aGlzLl93dDtsLnBhcmVudE5vZGUmJihncyhsLCJjb2xIZWFkZXIiKT9mPXYud3RUYWJsZS5jb2x1bW5GaWx0ZXIuc291cmNlVG9SZW5kZXJlZChhKTpncyhsLCJyb3dIZWFkZXIi'@; put 'KSYmKGY9di53dFRhYmxlLnJvd0ZpbHRlci5zb3VyY2VUb1JlbmRlcmVkKGEpKSksZj4tMT9qNyhsLGQoYSxoKSk6KExtKGwsIlx4YTAiKSxFaShsLCJjb3JuZXJIZWFkZXIiKSl9bWF4aW11bVZpc2libGVFbGVtZW50V2lkdGgobCl7Y29uc3QgZD10aGlzLl93dC53dFZpZXdwb3J0LmdldFdv'@; put 'cmtzcGFjZVdpZHRoKCktbDtyZXR1cm4gZD4wP2Q6MH1tYXhpbXVtVmlzaWJsZUVsZW1lbnRIZWlnaHQobCl7Y29uc3QgZD10aGlzLl93dC53dFZpZXdwb3J0LmdldFdvcmtzcGFjZUhlaWdodCgpLWw7cmV0dXJuIGQ+MD9kOjB9c2V0TGFzdFNpemUobCxhKXtCZChSSyx0aGlzLGwpLEJkKExL'@; put 'LHRoaXMsYSl9Z2V0TGFzdFNpemUoKXtyZXR1cm57d2lkdGg6TXUoUkssdGhpcyksaGVpZ2h0Ok11KExLLHRoaXMpfX1nZXRGaXJzdFJlbmRlcmVkVmlzaWJsZVJvdygpe2lmKCF0aGlzLl93dC53dFZpZXdwb3J0LnJvd3NSZW5kZXJDYWxjdWxhdG9yKXJldHVybiBudWxsO2NvbnN0IGw9dGhp'@; put 'cy5ob3Qucm93SW5kZXhNYXBwZXIsYT1sLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgodGhpcy5fd3Qud3RUYWJsZS5nZXRGaXJzdFJlbmRlcmVkUm93KCkpO3JldHVybiBsLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChhPz8wLDEpfWdldExhc3RSZW5kZXJlZFZpc2libGVSb3coKXtp'@; put 'ZighdGhpcy5fd3Qud3RWaWV3cG9ydC5yb3dzUmVuZGVyQ2FsY3VsYXRvcilyZXR1cm4gbnVsbDtjb25zdCBsPXRoaXMuaG90LnJvd0luZGV4TWFwcGVyLGE9bC5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KHRoaXMuX3d0Lnd0VGFibGUuZ2V0TGFzdFJlbmRlcmVkUm93KCkpO3JldHVy'@; put 'biBsLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChhPz90aGlzLmhvdC5jb3VudFJvd3MoKS0xLC0xKX1nZXRGaXJzdFJlbmRlcmVkVmlzaWJsZUNvbHVtbigpe2lmKCF0aGlzLl93dC53dFZpZXdwb3J0LmNvbHVtbnNSZW5kZXJDYWxjdWxhdG9yKXJldHVybiBudWxsO2NvbnN0IGw9dGhpcy5o'@; put 'b3QuY29sdW1uSW5kZXhNYXBwZXIsYT1sLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgodGhpcy5fd3Qud3RUYWJsZS5nZXRGaXJzdFJlbmRlcmVkQ29sdW1uKCkpO3JldHVybiBsLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChhPz8wLDEpfWdldExhc3RSZW5kZXJlZFZpc2libGVDb2x1'@; put 'bW4oKXtpZighdGhpcy5fd3Qud3RWaWV3cG9ydC5jb2x1bW5zUmVuZGVyQ2FsY3VsYXRvcilyZXR1cm4gbnVsbDtjb25zdCBsPXRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLGE9bC5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KHRoaXMuX3d0Lnd0VGFibGUuZ2V0TGFzdFJlbmRlcmVk'@; put 'Q29sdW1uKCkpO3JldHVybiBsLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChhPz90aGlzLmhvdC5jb3VudENvbHMoKS0xLC0xKX1nZXRGaXJzdEZ1bGx5VmlzaWJsZVJvdygpe3JldHVybiB0aGlzLmhvdC5yb3dJbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KHRoaXMu'@; put 'X3d0Lnd0U2Nyb2xsLmdldEZpcnN0VmlzaWJsZVJvdygpKX1nZXRMYXN0RnVsbHlWaXNpYmxlUm93KCl7cmV0dXJuIHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgodGhpcy5fd3Qud3RTY3JvbGwuZ2V0TGFzdFZpc2libGVSb3coKSl9Z2V0Rmly'@; put 'c3RGdWxseVZpc2libGVDb2x1bW4oKXtyZXR1cm4gdGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleCh0aGlzLl93dC53dFNjcm9sbC5nZXRGaXJzdFZpc2libGVDb2x1bW4oKSl9Z2V0TGFzdEZ1bGx5VmlzaWJsZUNvbHVtbigpe3JldHVybiB0'@; put 'aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KHRoaXMuX3d0Lnd0U2Nyb2xsLmdldExhc3RWaXNpYmxlQ29sdW1uKCkpfWdldEZpcnN0UGFydGlhbGx5VmlzaWJsZVJvdygpe3JldHVybiB0aGlzLmhvdC5yb3dJbmRleE1hcHBlci5nZXRWaXN1'@; put 'YWxGcm9tUmVuZGVyYWJsZUluZGV4KHRoaXMuX3d0Lnd0U2Nyb2xsLmdldEZpcnN0UGFydGlhbGx5VmlzaWJsZVJvdygpKX1nZXRMYXN0UGFydGlhbGx5VmlzaWJsZVJvdygpe3JldHVybiB0aGlzLmhvdC5yb3dJbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KHRoaXMu'@; put 'X3d0Lnd0U2Nyb2xsLmdldExhc3RQYXJ0aWFsbHlWaXNpYmxlUm93KCkpfWdldEZpcnN0UGFydGlhbGx5VmlzaWJsZUNvbHVtbigpe3JldHVybiB0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KHRoaXMuX3d0Lnd0U2Nyb2xsLmdldEZpcnN0'@; put 'UGFydGlhbGx5VmlzaWJsZUNvbHVtbigpKX1nZXRMYXN0UGFydGlhbGx5VmlzaWJsZUNvbHVtbigpe3JldHVybiB0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KHRoaXMuX3d0Lnd0U2Nyb2xsLmdldExhc3RQYXJ0aWFsbHlWaXNpYmxlQ29s'@; put 'dW1uKCkpfWdldENvbHVtbkhlYWRlcnNDb3VudCgpe3JldHVybiBNdShJSyx0aGlzKX1nZXRSb3dIZWFkZXJzQ291bnQoKXtyZXR1cm4gTXUocFAsdGhpcyl9Z2V0Vmlld3BvcnRXaWR0aCgpe3JldHVybiB0aGlzLl93dC53dFZpZXdwb3J0LmdldFZpZXdwb3J0V2lkdGgoKX1nZXRXb3Jrc3Bh'@; put 'Y2VXaWR0aCgpe3JldHVybiB0aGlzLl93dC53dFZpZXdwb3J0LmdldFdvcmtzcGFjZVdpZHRoKCl9Z2V0Vmlld3BvcnRIZWlnaHQoKXtyZXR1cm4gdGhpcy5fd3Qud3RWaWV3cG9ydC5nZXRWaWV3cG9ydEhlaWdodCgpfWdldFdvcmtzcGFjZUhlaWdodCgpe3JldHVybiB0aGlzLl93dC53dFZp'@; put 'ZXdwb3J0LmdldFdvcmtzcGFjZUhlaWdodCgpfWdldEVsZW1lbnRPdmVybGF5TmFtZShsKXt2YXIgYTtyZXR1cm4obnVsbCE9PShhPXRoaXMuX3d0Lnd0T3ZlcmxheXMuZ2V0UGFyZW50T3ZlcmxheShsKSkmJnZvaWQgMCE9PWE/YTp0aGlzLl93dCkud3RUYWJsZS5uYW1lfWdldE92ZXJsYXlC'@; put 'eU5hbWUobCl7cmV0dXJuIHRoaXMuX3d0LmdldE92ZXJsYXlCeU5hbWUobCl9Z2V0QWN0aXZlT3ZlcmxheU5hbWUoKXtyZXR1cm4gdGhpcy5fd3QuYWN0aXZlT3ZlcmxheU5hbWV9aXNWaXNpYmxlKCl7cmV0dXJuIHRoaXMuX3d0Lnd0VGFibGUuaXNWaXNpYmxlKCl9aGFzVmVydGljYWxTY3Jv'@; put 'bGwoKXtyZXR1cm4gdGhpcy5fd3Qud3RWaWV3cG9ydC5oYXNWZXJ0aWNhbFNjcm9sbCgpfWhhc0hvcml6b250YWxTY3JvbGwoKXtyZXR1cm4gdGhpcy5fd3Qud3RWaWV3cG9ydC5oYXNIb3Jpem9udGFsU2Nyb2xsKCl9Z2V0VGFibGVXaWR0aCgpe3JldHVybiB0aGlzLl93dC53dFRhYmxlLmdl'@; put 'dFdpZHRoKCl9Z2V0VGFibGVIZWlnaHQoKXtyZXR1cm4gdGhpcy5fd3Qud3RUYWJsZS5nZXRIZWlnaHQoKX1nZXRUYWJsZU9mZnNldCgpe3JldHVybiB0aGlzLl93dC53dFZpZXdwb3J0LmdldFdvcmtzcGFjZU9mZnNldCgpfWdldFJvd0hlYWRlcldpZHRoKCl7cmV0dXJuIHRoaXMuX3d0Lnd0'@; put 'Vmlld3BvcnQuZ2V0Um93SGVhZGVyV2lkdGgoKX1nZXRDb2x1bW5IZWFkZXJIZWlnaHQoKXtyZXR1cm4gdGhpcy5fd3Qud3RWaWV3cG9ydC5nZXRDb2x1bW5IZWFkZXJIZWlnaHQoKX1pc1ZlcnRpY2FsbHlTY3JvbGxhYmxlQnlXaW5kb3coKXtyZXR1cm4gdGhpcy5fd3Qud3RWaWV3cG9ydC5p'@; put 'c1ZlcnRpY2FsbHlTY3JvbGxhYmxlQnlXaW5kb3coKX1pc0hvcml6b250YWxseVNjcm9sbGFibGVCeVdpbmRvdygpe3JldHVybiB0aGlzLl93dC53dFZpZXdwb3J0LmlzSG9yaXpvbnRhbGx5U2Nyb2xsYWJsZUJ5V2luZG93KCl9ZGVzdHJveSgpe3RoaXMuX3d0LmRlc3Ryb3koKSx0aGlzLmV2'@; put 'ZW50TWFuYWdlci5kZXN0cm95KCl9fTtiKDEzOTA4KTtjb25zdCBSM2U9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIixPSz1SM2UubGVuZ3RoO2Z1bmN0aW9uIG1QKGMpe2xldCBkLGw9YysxLGE9IiI7Zm9yKDtsPjA7KWQ9KGwtMSklT0ssYT1TdHJpbmcuZnJvbUNoYXJDb2RlKDY1K2Qp'@; put 'K2EsbD1wYXJzZUludCgobC1kKS9PSywxMCk7cmV0dXJuIGF9ZnVuY3Rpb24gRnR0KGMpe2xldCBsPTA7aWYoYylmb3IobGV0IGE9MCxkPWMubGVuZ3RoLTE7YTxjLmxlbmd0aDthKz0xLGQtPTEpbCs9T0sqKmQqKFIzZS5pbmRleE9mKGNbYV0pKzEpO3JldHVybiBsLT0xLGx9ZnVuY3Rpb24g'@; put 'SHR0KCl7bGV0IGM9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOjEwMCxsPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTo0O2NvbnN0IGE9W107bGV0IGQsaDtmb3IoZD0wO2Q8YztkKysp'@; put 'e2NvbnN0IGY9W107Zm9yKGg9MDtoPGw7aCsrKWYucHVzaChtUChoKSsoZCsxKSk7YS5wdXNoKGYpfXJldHVybiBhfWZ1bmN0aW9uIE50dCgpe2xldCBjPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToxMDAsbD1hcmd1bWVudHMubGVuZ3Ro'@; put 'PjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06NDtjb25zdCBhPVtdO2xldCBkLGg7Zm9yKGQ9MDtkPGM7ZCsrKXtjb25zdCBmPXt9O2ZvcihoPTA7aDxsO2grKylmW2Bwcm9wJHtofWBdPW1QKGgpKyhkKzEpO2EucHVzaChmKX1yZXR1cm4gYX1mdW5jdGlvbiBWdHQoYyxs'@; put 'KXtjb25zdCBhPVtdO2xldCBkO2ZvcihsZXQgaD0wO2g8YztoKyspe2Q9W107Zm9yKGxldCBmPTA7ZjxsO2YrKylkLnB1c2goIiIpO2EucHVzaChkKX1yZXR1cm4gYX1mdW5jdGlvbiBQSyhjKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVu'@; put 'dHNbMV06MCxhPWM7Y29uc3QgZD1bXTtyZXR1cm4oIUFycmF5LmlzQXJyYXkoYyl8fCFBcnJheS5pc0FycmF5KGNbMF0pKSYmKGE9W2NdKSxhLmZvckVhY2goKGgsZik9PntBcnJheS5pc0FycmF5KGgpP2guZm9yRWFjaCgodixNKT0+e2QucHVzaChbZitsLE0sdl0pfSk6T2JqZWN0LmtleXMo'@; put 'aCkuZm9yRWFjaCh2PT57ZC5wdXNoKFtmK2wsdixoW3ZdXSl9KX0pLGR9ZnVuY3Rpb24gRksoYyl7bGV0IGw9MDtyZXR1cm4gQXJyYXkuaXNBcnJheShjKSYmKGNbMF0mJkFycmF5LmlzQXJyYXkoY1swXSk/bD1jWzBdLmxlbmd0aDpjWzBdJiZYcyhjWzBdKSYmKGw9Vk8oY1swXSkpKSxsfWZ1'@; put 'bmN0aW9uIEwzZShjKXtyZXR1cm4hIShBcnJheS5pc0FycmF5KGMpJiZjLmxlbmd0aCYmYy5ldmVyeShsPT5BcnJheS5pc0FycmF5KGwpKSl9ZnVuY3Rpb24gTzNlKGMpe3JldHVybiEhKEFycmF5LmlzQXJyYXkoYykmJmMubGVuZ3RoJiZjLmV2ZXJ5KGw9PiJvYmplY3QiPT10eXBlb2YgbCYm'@; put 'IUFycmF5LmlzQXJyYXkobCkmJm51bGwhPT1sKSl9ZnVuY3Rpb24gS0UoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIEJ0dChjKXt2YXIgbD1mdW5jdGlvbiBqdHQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2'@; put 'b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5n'@; put 'Ok51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWNvbnN0IFV0dD1j'@; put 'bGFzcyB6dHR7Y29uc3RydWN0b3IobCl7bGV0IGE9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOltdO0tFKHRoaXMsImhvdCIsdm9pZCAwKSxLRSh0aGlzLCJkYXRhIix2b2lkIDApLEtFKHRoaXMsImRhdGFUeXBlIiwiYXJyYXkiKSxLRSh0'@; put 'aGlzLCJjb2xUb1Byb3AiLCgpPT57fSksS0UodGhpcywicHJvcFRvQ29sIiwoKT0+e30pLHRoaXMuaG90PWwsdGhpcy5kYXRhPWF9bW9kaWZ5Um93RGF0YShsKXtsZXQgYTtyZXR1cm4gdGhpcy5ob3QuaGFzSG9vaygibW9kaWZ5Um93RGF0YSIpJiYoYT10aGlzLmhvdC5ydW5Ib29rcygibW9k'@; put 'aWZ5Um93RGF0YSIsbCkpLHZvaWQgMD09PWF8fE51bWJlci5pc0ludGVnZXIoYSk/dGhpcy5kYXRhW2xdOmF9Z2V0RGF0YSgpe3JldHVybiB0aGlzLmRhdGEmJjAhPT10aGlzLmRhdGEubGVuZ3RoP3RoaXMuZ2V0QnlSYW5nZShudWxsLG51bGwsYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAh'@; put 'PT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXSk6dGhpcy5kYXRhfXNldERhdGEobCl7dGhpcy5kYXRhPWx9Z2V0QXRDb2x1bW4obCl7Y29uc3QgYT1bXTtyZXR1cm4gS24odGhpcy5kYXRhLChkLGgpPT57Y29uc3QgZj10aGlzLmdldEF0Q2VsbChoLGwpO2EucHVzaChmKX0pLGF9Z2V0QXRS'@; put 'b3cobCxhLGQpe2xldCBoPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdJiZhcmd1bWVudHNbM107Y29uc3QgZj12b2lkIDA9PT1hJiZ2b2lkIDA9PT1kLHtkYXRhRG90Tm90YXRpb246dn09dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKTtsZXQgTT1udWxsLEk9bnVsbDtp'@; put 'ZihNPXRoaXMubW9kaWZ5Um93RGF0YShsKSxBcnJheS5pc0FycmF5KE0pKUk9W10sZj9NLmZvckVhY2goKEcscmUpPT57SVtyZV09dGhpcy5nZXRBdFBoeXNpY2FsQ2VsbChsLHJlLE0pfSk6S2EoYSxkLEc9PntJW0ctYV09dGhpcy5nZXRBdFBoeXNpY2FsQ2VsbChsLEcsTSl9KTtlbHNlIGlm'@; put 'KFhzKE0pfHxmbChNKSlpZihJPWg/W106e30sIWZ8fGgpe2NvbnN0IHJlPXRoaXMuY291bnRGaXJzdFJvd0tleXMoKS0xO0thKDAscmUsdWU9Pntjb25zdCB5ZT10aGlzLmNvbFRvUHJvcCh1ZSk7aWYodWU+PShhfHwwKSYmdWU8PShkfHxyZSkmJiFOdW1iZXIuaXNJbnRlZ2VyKHllKSl7Y29u'@; put 'c3QgRWU9dGhpcy5nZXRBdFBoeXNpY2FsQ2VsbChsLHllLE0pO2g/SS5wdXNoKEVlKTp2P05PKEkseWUsRWUpOklbeWVdPUVlfX0pfWVsc2UgcXMoTSwoRyxyZSk9Pntjb25zdCB1ZT10aGlzLmdldEF0UGh5c2ljYWxDZWxsKGwscmUsTSk7dj9OTyhJLHJlLHVlKTpJW3JlXT11ZX0pO3JldHVy'@; put 'biBJfXNldEF0Q2VsbChsLGEsZCl7aWYoIShsPj10aGlzLmNvdW50Um93cygpfHxhPj10aGlzLmNvdW50Rmlyc3RSb3dLZXlzKCkpKXtpZih0aGlzLmhvdC5oYXNIb29rKCJtb2RpZnlTb3VyY2VEYXRhIikpe2NvbnN0IGg9RmQoZCk7dGhpcy5ob3QucnVuSG9va3MoIm1vZGlmeVNvdXJjZURh'@; put 'dGEiLGwsYSxoLCJzZXQiKSxoLmlzVG91Y2hlZCgpJiYoZD1oLnZhbHVlKX1bIl9fcHJvdG9fXyIsImNvbnN0cnVjdG9yIiwicHJvdG90eXBlIl0uaW5jbHVkZXMobCl8fChOdW1iZXIuaXNJbnRlZ2VyKGEpP3RoaXMuZGF0YVtsXVthXT1kOk5PKHRoaXMuZGF0YVtsXSxhLGQpKX19Z2V0QXRQ'@; put 'aHlzaWNhbENlbGwobCxhLGQpe2xldCBoPW51bGw7aWYoZClpZigic3RyaW5nIj09dHlwZW9mIGEpe2NvbnN0e2RhdGFEb3ROb3RhdGlvbjpmfT10aGlzLmhvdC5nZXRTZXR0aW5ncygpO2g9Zj9aMmUoZCxhKTpkW2FdfWVsc2UgaD0iZnVuY3Rpb24iPT10eXBlb2YgYT9hKGQpOmRbYV07aWYo'@; put 'dGhpcy5ob3QuaGFzSG9vaygibW9kaWZ5U291cmNlRGF0YSIpKXtjb25zdCBmPUZkKGgpO3RoaXMuaG90LnJ1bkhvb2tzKCJtb2RpZnlTb3VyY2VEYXRhIixsLGEsZiwiZ2V0IiksZi5pc1RvdWNoZWQoKSYmKGg9Zi52YWx1ZSl9cmV0dXJuIGh9Z2V0QXRDZWxsKGwsYSl7Y29uc3QgZD10aGlz'@; put 'Lm1vZGlmeVJvd0RhdGEobCk7cmV0dXJuIHRoaXMuZ2V0QXRQaHlzaWNhbENlbGwobCx0aGlzLmNvbFRvUHJvcChhKSxkKX1nZXRCeVJhbmdlKCl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOm51bGwsYT1hcmd1bWVudHMubGVu'@; put 'Z3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06bnVsbCxkPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl0saD0hMSxmPW51bGwsdj1udWxsLE09bnVsbCxJPW51bGw7bnVsbD09PWx8fG51bGw9PT1hPyhoPSEwLGY9'@; put 'MCxNPXRoaXMuY291bnRSb3dzKCktMSk6KGY9TWF0aC5taW4obC5yb3csYS5yb3cpLHY9TWF0aC5taW4obC5jb2wsYS5jb2wpLE09TWF0aC5tYXgobC5yb3csYS5yb3cpLEk9TWF0aC5tYXgobC5jb2wsYS5jb2wpKTtjb25zdCBHPVtdO3JldHVybiBLYShmLE0scmU9PntHLnB1c2goaD90aGlz'@; put 'LmdldEF0Um93KHJlLHZvaWQgMCx2b2lkIDAsZCk6dGhpcy5nZXRBdFJvdyhyZSx2LEksZCkpfSksR31jb3VudFJvd3MoKXtpZih0aGlzLmhvdC5oYXNIb29rKCJtb2RpZnlTb3VyY2VMZW5ndGgiKSl7Y29uc3QgbD10aGlzLmhvdC5ydW5Ib29rcygibW9kaWZ5U291cmNlTGVuZ3RoIik7aWYo'@; put 'TnVtYmVyLmlzSW50ZWdlcihsKSlyZXR1cm4gbH1yZXR1cm4gdGhpcy5kYXRhLmxlbmd0aH1jb3VudEZpcnN0Um93S2V5cygpe3JldHVybiBGSyh0aGlzLmRhdGEpfWRlc3Ryb3koKXt0aGlzLmRhdGE9bnVsbCx0aGlzLmhvdD1udWxsfX07YigyMDI5MSk7Y29uc3QgUDNlPXtfbG9jYWxIb29r'@; put 'czpPYmplY3QuY3JlYXRlKG51bGwpLGFkZExvY2FsSG9vayhjLGwpe3JldHVybiB0aGlzLl9sb2NhbEhvb2tzW2NdfHwodGhpcy5fbG9jYWxIb29rc1tjXT1bXSksdGhpcy5fbG9jYWxIb29rc1tjXS5wdXNoKGwpLHRoaXN9LHJ1bkxvY2FsSG9va3MoYyxsLGEsZCxoLGYsdil7aWYodGhpcy5f'@; put 'bG9jYWxIb29rc1tjXSl7Y29uc3QgTT10aGlzLl9sb2NhbEhvb2tzW2NdLmxlbmd0aDtmb3IobGV0IEk9MDtJPE07SSsrKUdPKHRoaXMuX2xvY2FsSG9va3NbY11bSV0sdGhpcyxsLGEsZCxoLGYsdil9fSxjbGVhckxvY2FsSG9va3MoKXtyZXR1cm4gdGhpcy5fbG9jYWxIb29rcz17fSx0aGlz'@; put 'fX07VHAoUDNlLCJNSVhJTl9OQU1FIiwibG9jYWxIb29rcyIse3dyaXRhYmxlOiExLGVudW1lcmFibGU6ITF9KTtjb25zdCB5MT1QM2U7ZnVuY3Rpb24gRjNlKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBXdHQoYyl7dmFyIGw9ZnVuY3Rpb24gWXR0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVv'@; put 'ZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVy'@; put 'biBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxj'@; put 'b25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31jbGFzcyBRN3tjb25zdHJ1Y3Rvcigpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpudWxsO0YzZSh0aGlzLCJpbmRleGVkVmFsdWVzIixbXSksRjNlKHRoaXMs'@; put 'ImluaXRWYWx1ZU9yRm4iLHZvaWQgMCksdGhpcy5pbml0VmFsdWVPckZuPWx9Z2V0VmFsdWVzKCl7cmV0dXJuIHRoaXMuaW5kZXhlZFZhbHVlc31nZXRWYWx1ZUF0SW5kZXgobCl7Y29uc3QgYT10aGlzLmluZGV4ZWRWYWx1ZXM7aWYobDxhLmxlbmd0aClyZXR1cm4gYVtsXX1zZXRWYWx1ZXMo'@; put 'bCl7dGhpcy5pbmRleGVkVmFsdWVzPWwuc2xpY2UoKSx0aGlzLnJ1bkxvY2FsSG9va3MoImNoYW5nZSIpfXNldFZhbHVlQXRJbmRleChsLGEpe3JldHVybiBsPHRoaXMuaW5kZXhlZFZhbHVlcy5sZW5ndGgmJih0aGlzLmluZGV4ZWRWYWx1ZXNbbF09YSx0aGlzLnJ1bkxvY2FsSG9va3MoImNo'@; put 'YW5nZSIpLCEwKX1jbGVhcigpe3RoaXMuc2V0RGVmYXVsdFZhbHVlcygpfWdldExlbmd0aCgpe3JldHVybiB0aGlzLmdldFZhbHVlcygpLmxlbmd0aH1zZXREZWZhdWx0VmFsdWVzKCl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBd'@; put 'OnRoaXMuaW5kZXhlZFZhbHVlcy5sZW5ndGg7dGhpcy5pbmRleGVkVmFsdWVzLmxlbmd0aD0wLGZsKHRoaXMuaW5pdFZhbHVlT3JGbik/S2EobC0xLGE9PnRoaXMuaW5kZXhlZFZhbHVlcy5wdXNoKHRoaXMuaW5pdFZhbHVlT3JGbihhKSkpOkthKGwtMSwoKT0+dGhpcy5pbmRleGVkVmFsdWVz'@; put 'LnB1c2godGhpcy5pbml0VmFsdWVPckZuKSksdGhpcy5ydW5Mb2NhbEhvb2tzKCJjaGFuZ2UiKX1pbml0KGwpe3JldHVybiB0aGlzLnNldERlZmF1bHRWYWx1ZXMobCksdGhpcy5ydW5Mb2NhbEhvb2tzKCJpbml0IiksdGhpc31pbnNlcnQoKXt0aGlzLnJ1bkxvY2FsSG9va3MoImNoYW5nZSIp'@; put 'fXJlbW92ZSgpe3RoaXMucnVuTG9jYWxIb29rcygiY2hhbmdlIil9ZGVzdHJveSgpe3RoaXMuY2xlYXJMb2NhbEhvb2tzKCksdGhpcy5pbmRleGVkVmFsdWVzPW51bGwsdGhpcy5pbml0VmFsdWVPckZuPW51bGx9fWZ1bmN0aW9uIEhLKGMsbCxhKXtyZXR1cm5bLi4uYy5zbGljZSgwLGwpLC4u'@; put 'LmEsLi4uYy5zbGljZShsKV19ZnVuY3Rpb24gWEUoYyxsKXtyZXR1cm4gQW0oYyxhPT4hMT09PWwuaW5jbHVkZXMoYSkpfWZ1bmN0aW9uIE5LKGMsbCl7cmV0dXJuIHlvKGMsYT0+YS1sLmZpbHRlcihkPT5kPGEpLmxlbmd0aCl9ZnVuY3Rpb24gVksoYyxsKXtjb25zdCBhPWxbMF0sZD1sLmxl'@; put 'bmd0aDtyZXR1cm4geW8oYyxoPT5oPj1hP2grZDpoKX14bChRNyx5MSk7Y2xhc3MgSDNlIGV4dGVuZHMgUTd7Y29uc3RydWN0b3IoKXtzdXBlcihsPT5sKX1pbnNlcnQobCxhKXtjb25zdCBkPVZLKHRoaXMuaW5kZXhlZFZhbHVlcyxhKTt0aGlzLmluZGV4ZWRWYWx1ZXM9SEsoZCxsLGEpLHN1'@; put 'cGVyLmluc2VydChsLGEpfXJlbW92ZShsKXtjb25zdCBhPVhFKHRoaXMuaW5kZXhlZFZhbHVlcyxsKTt0aGlzLmluZGV4ZWRWYWx1ZXM9TksoYSxsKSxzdXBlci5yZW1vdmUobCl9fWZ1bmN0aW9uIEJLKGMsbCxhLGQpe2NvbnN0IGg9YS5sZW5ndGg/YVswXTp2b2lkIDA7cmV0dXJuWy4uLmMu'@; put 'c2xpY2UoMCxoKSwuLi5hLm1hcCgoZix2KT0+ZmwoZCk/ZChmLHYpOmQpLC4uLnZvaWQgMD09PWg/W106Yy5zbGljZShoKV19ZnVuY3Rpb24gaksoYyxsKXtyZXR1cm4gQW0oYywoYSxkKT0+ITE9PT1sLmluY2x1ZGVzKGQpKX1jbGFzcyBqbSBleHRlbmRzIFE3e2luc2VydChsLGEpe3RoaXMu'@; put 'aW5kZXhlZFZhbHVlcz1CSyh0aGlzLmluZGV4ZWRWYWx1ZXMsMCxhLHRoaXMuaW5pdFZhbHVlT3JGbiksc3VwZXIuaW5zZXJ0KGwsYSl9cmVtb3ZlKGwpe3RoaXMuaW5kZXhlZFZhbHVlcz1qSyh0aGlzLmluZGV4ZWRWYWx1ZXMsbCksc3VwZXIucmVtb3ZlKGwpfX1jbGFzcyB2UCBleHRlbmRz'@; put 'IGpte2NvbnN0cnVjdG9yKCl7c3VwZXIoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXSl9Z2V0SGlkZGVuSW5kZXhlcygpe3JldHVybiBHdSh0aGlzLmdldFZhbHVlcygpLChsLGEsZCk9PihhJiZsLnB1c2goZCksbCksW10pfX1jbGFzcyB5'@; put 'UCBleHRlbmRzIFE3e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxmdW5jdGlvbiBHdHQoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uICR0dChjKXt2YXIgbD1mdW5jdGlvbiBLdHQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9s'@; put 'LnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigi'@; put 'c3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNb'@; put 'bF09YSxjfSh0aGlzLCJvcmRlck9mSW5kZXhlcyIsW10pfWdldFZhbHVlcygpe3JldHVybiB0aGlzLm9yZGVyT2ZJbmRleGVzLm1hcChsPT50aGlzLmluZGV4ZWRWYWx1ZXNbbF0pfXNldFZhbHVlcyhsKXt0aGlzLm9yZGVyT2ZJbmRleGVzPVsuLi5BcnJheShsLmxlbmd0aCkua2V5cygpXSxz'@; put 'dXBlci5zZXRWYWx1ZXMobCl9c2V0VmFsdWVBdEluZGV4KGwsYSl7bGV0IGQ9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnRoaXMub3JkZXJPZkluZGV4ZXMubGVuZ3RoO3JldHVybiBsPHRoaXMuaW5kZXhlZFZhbHVlcy5sZW5ndGgmJih0'@; put 'aGlzLmluZGV4ZWRWYWx1ZXNbbF09YSwhMT09PXRoaXMub3JkZXJPZkluZGV4ZXMuaW5jbHVkZXMobCkmJnRoaXMub3JkZXJPZkluZGV4ZXMuc3BsaWNlKGQsMCxsKSx0aGlzLnJ1bkxvY2FsSG9va3MoImNoYW5nZSIpLCEwKX1jbGVhclZhbHVlKGwpe3RoaXMub3JkZXJPZkluZGV4ZXM9WEUo'@; put 'dGhpcy5vcmRlck9mSW5kZXhlcyxbbF0pLGZsKHRoaXMuaW5pdFZhbHVlT3JGbik/c3VwZXIuc2V0VmFsdWVBdEluZGV4KGwsdGhpcy5pbml0VmFsdWVPckZuKGwpKTpzdXBlci5zZXRWYWx1ZUF0SW5kZXgobCx0aGlzLmluaXRWYWx1ZU9yRm4pfWdldExlbmd0aCgpe3JldHVybiB0aGlzLm9y'@; put 'ZGVyT2ZJbmRleGVzLmxlbmd0aH1zZXREZWZhdWx0VmFsdWVzKCl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMuaW5kZXhlZFZhbHVlcy5sZW5ndGg7dGhpcy5vcmRlck9mSW5kZXhlcy5sZW5ndGg9MCxzdXBlci5zZXRE'@; put 'ZWZhdWx0VmFsdWVzKGwpfWluc2VydChsLGEpe3RoaXMuaW5kZXhlZFZhbHVlcz1CSyh0aGlzLmluZGV4ZWRWYWx1ZXMsMCxhLHRoaXMuaW5pdFZhbHVlT3JGbiksdGhpcy5vcmRlck9mSW5kZXhlcz1WSyh0aGlzLm9yZGVyT2ZJbmRleGVzLGEpLHN1cGVyLmluc2VydChsLGEpfXJlbW92ZShs'@; put 'KXt0aGlzLmluZGV4ZWRWYWx1ZXM9aksodGhpcy5pbmRleGVkVmFsdWVzLGwpLHRoaXMub3JkZXJPZkluZGV4ZXM9WEUodGhpcy5vcmRlck9mSW5kZXhlcyxsKSx0aGlzLm9yZGVyT2ZJbmRleGVzPU5LKHRoaXMub3JkZXJPZkluZGV4ZXMsbCksc3VwZXIucmVtb3ZlKGwpfWdldEVudHJpZXMo'@; put 'KXtyZXR1cm4gdGhpcy5vcmRlck9mSW5kZXhlcy5tYXAobD0+W2wsdGhpcy5nZXRWYWx1ZUF0SW5kZXgobCldKX19Y2xhc3MgcUUgZXh0ZW5kcyBqbXtjb25zdHJ1Y3Rvcigpe3N1cGVyKGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0pfWdl'@; put 'dFRyaW1tZWRJbmRleGVzKCl7cmV0dXJuIEd1KHRoaXMuZ2V0VmFsdWVzKCksKGwsYSxkKT0+KGEmJmwucHVzaChkKSxsKSxbXSl9fWNvbnN0IE4zZT1uZXcgTWFwKFtbImhpZGluZyIsdlBdLFsiaW5kZXgiLFE3XSxbImxpbmtlZFBoeXNpY2FsSW5kZXhUb1ZhbHVlIix5UF0sWyJwaHlzaWNh'@; put 'bEluZGV4VG9WYWx1ZSIsam1dLFsidHJpbW1pbmciLHFFXV0pO2xldCB6Sz0wO2NsYXNzIFVLe2NvbnN0cnVjdG9yKCl7IWZ1bmN0aW9uIHF0dChjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gSnR0KGMpe3ZhciBsPWZ1bmN0aW9uIFF0dChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMp'@; put 'cmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmlt'@; put 'aXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJh'@; put 'YmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9KHRoaXMsImNvbGxlY3Rpb24iLG5ldyBNYXApfXJlZ2lzdGVyKGwsYSl7ITE9PT10aGlzLmNvbGxlY3Rpb24uaGFzKGwpJiYodGhpcy5jb2xsZWN0aW9uLnNldChsLGEpLGEuYWRkTG9jYWxIb29rKCJjaGFuZ2UiLCgpPT50aGlzLnJ1bkxv'@; put 'Y2FsSG9va3MoImNoYW5nZSIsYSkpLHpLKz0xKX11bnJlZ2lzdGVyKGwpe2NvbnN0IGE9dGhpcy5jb2xsZWN0aW9uLmdldChsKTtIYShhKSYmKGEuZGVzdHJveSgpLHRoaXMuY29sbGVjdGlvbi5kZWxldGUobCksdGhpcy5ydW5Mb2NhbEhvb2tzKCJjaGFuZ2UiLGEpLHpLLT0xKX11bnJlZ2lz'@; put 'dGVyQWxsKCl7dGhpcy5jb2xsZWN0aW9uLmZvckVhY2goKGwsYSk9PnRoaXMudW5yZWdpc3RlcihhKSksdGhpcy5jb2xsZWN0aW9uLmNsZWFyKCl9Z2V0KGwpe3JldHVybiBiYyhsKT9BcnJheS5mcm9tKHRoaXMuY29sbGVjdGlvbi52YWx1ZXMoKSk6dGhpcy5jb2xsZWN0aW9uLmdldChsKX1n'@; put 'ZXRMZW5ndGgoKXtyZXR1cm4gdGhpcy5jb2xsZWN0aW9uLnNpemV9cmVtb3ZlRnJvbUV2ZXJ5KGwpe3RoaXMuY29sbGVjdGlvbi5mb3JFYWNoKGE9PnthLnJlbW92ZShsKX0pfWluc2VydFRvRXZlcnkobCxhKXt0aGlzLmNvbGxlY3Rpb24uZm9yRWFjaChkPT57ZC5pbnNlcnQobCxhKX0pfWlu'@; put 'aXRFdmVyeShsKXt0aGlzLmNvbGxlY3Rpb24uZm9yRWFjaChhPT57YS5pbml0KGwpfSl9fWZ1bmN0aW9uIFpLKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiB0bnQoYyl7dmFyIGw9ZnVuY3Rpb24gbm50KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5'@; put 'bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1'@; put 'cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9'@; put 'KTpjW2xdPWEsY314bChVSyx5MSk7Y2xhc3MgVjNlIGV4dGVuZHMgVUt7Y29uc3RydWN0b3IobCxhKXtzdXBlcigpLFpLKHRoaXMsIm1lcmdlZFZhbHVlc0NhY2hlIixbXSksWksodGhpcywiYWdncmVnYXRpb25GdW5jdGlvbiIsdm9pZCAwKSxaSyh0aGlzLCJmYWxsYmFja1ZhbHVlIix2b2lk'@; put 'IDApLHRoaXMuYWdncmVnYXRpb25GdW5jdGlvbj1sLHRoaXMuZmFsbGJhY2tWYWx1ZT1hfWdldE1lcmdlZFZhbHVlcygpe2lmKCEwPT09KCEoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0pfHxhcmd1bWVudHNbMF0pKXJldHVybiB0aGlzLm1lcmdlZFZhbHVlc0Nh'@; put 'Y2hlO2lmKDA9PT10aGlzLmdldExlbmd0aCgpKXJldHVybltdO2NvbnN0IGE9eW8odGhpcy5nZXQoKSxmPT5mLmdldFZhbHVlcygpKSxkPVtdLGg9SGEoYVswXSkmJmFbMF0ubGVuZ3RofHwwO2ZvcihsZXQgZj0wO2Y8aDtmKz0xKXtjb25zdCB2PVtdO2ZvcihsZXQgTT0wO008dGhpcy5nZXRM'@; put 'ZW5ndGgoKTtNKz0xKXYucHVzaChhW01dW2ZdKTtkLnB1c2godil9cmV0dXJuIHlvKGQsdGhpcy5hZ2dyZWdhdGlvbkZ1bmN0aW9uKX1nZXRNZXJnZWRWYWx1ZUF0SW5kZXgobCxhKXtjb25zdCBkPXRoaXMuZ2V0TWVyZ2VkVmFsdWVzKGEpW2xdO3JldHVybiBIYShkKT9kOnRoaXMuZmFsbGJh'@; put 'Y2tWYWx1ZX11cGRhdGVDYWNoZSgpe3RoaXMubWVyZ2VkVmFsdWVzQ2FjaGU9dGhpcy5nZXRNZXJnZWRWYWx1ZXMoITEpfX1mdW5jdGlvbiBCM2UoYyxsLGEpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBjP2M9PT1sOmMuaGFzKGwpKXJldHVybiBhcmd1bWVudHMubGVuZ3RoPDM/bDphO3Rocm93'@; put 'IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgZWxlbWVudCBpcyBub3QgcHJlc2VudCBvbiB0aGlzIG9iamVjdCIpfXZhciBXSz1uZXcgV2Vha01hcDtjbGFzcyBqM2V7Y29uc3RydWN0b3IoKXshZnVuY3Rpb24gcm50KGMsbCxhKXsoZnVuY3Rpb24gaW50KGMsbCl7aWYobC5oYXMoYykpdGhyb3cg'@; put 'bmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGMsbCksbC5zZXQoYyxhKX0odGhpcyxXSyxbXSl9c3Vic2NyaWJlKGwpe3JldHVybiB0aGlzLmFkZExvY2FsSG9vaygiY2hhbmdlIixsKSx0aGlz'@; put 'Ll93cml0ZShmdW5jdGlvbiBzbnQoYyxsKXtyZXR1cm4gYy5nZXQoQjNlKGMsbCkpfShXSyx0aGlzKSksdGhpc311bnN1YnNjcmliZSgpe3JldHVybiB0aGlzLnJ1bkxvY2FsSG9va3MoInVuc3Vic2NyaWJlIiksdGhpcy5jbGVhckxvY2FsSG9va3MoKSx0aGlzfV93cml0ZShsKXtyZXR1cm4g'@; put 'bC5sZW5ndGg+MCYmdGhpcy5ydW5Mb2NhbEhvb2tzKCJjaGFuZ2UiLGwpLHRoaXN9X3dyaXRlSW5pdGlhbENoYW5nZXMobCl7IWZ1bmN0aW9uIGFudChjLGwsYSl7Yy5zZXQoQjNlKGMsbCksYSl9KFdLLHRoaXMsbCl9fWZ1bmN0aW9uIHozZShjLGwpe2NvbnN0IGE9W107bGV0IGQ9MCxoPTA7'@; put 'Zm9yKDtkPGMubGVuZ3RoJiZoPGwubGVuZ3RoO2QrKyxoKyspY1tkXSE9PWxbaF0mJmEucHVzaCh7b3A6InJlcGxhY2UiLGluZGV4Omgsb2xkVmFsdWU6Y1tkXSxuZXdWYWx1ZTpsW2hdfSk7Zm9yKDtkPGwubGVuZ3RoO2QrKylhLnB1c2goe29wOiJpbnNlcnQiLGluZGV4OmQsb2xkVmFsdWU6'@; put 'dm9pZCAwLG5ld1ZhbHVlOmxbZF19KTtmb3IoO2g8Yy5sZW5ndGg7aCsrKWEucHVzaCh7b3A6InJlbW92ZSIsaW5kZXg6aCxvbGRWYWx1ZTpjW2hdLG5ld1ZhbHVlOnZvaWQgMH0pO3JldHVybiBhfWZ1bmN0aW9uIEpFKGMsbCxhKXsoZnVuY3Rpb24gb250KGMsbCl7aWYobC5oYXMoYykpdGhy'@; put 'b3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGMsbCksbC5zZXQoYyxhKX1mdW5jdGlvbiBLMihjLGwpe3JldHVybiBjLmdldChVM2UoYyxsKSl9ZnVuY3Rpb24gYlAoYyxsLGEpe3JldHVy'@; put 'biBjLnNldChVM2UoYyxsKSxhKSxhfWZ1bmN0aW9uIFUzZShjLGwsYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGM/Yz09PWw6Yy5oYXMobCkpcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mz9sOmE7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBlbGVtZW50IGlzIG5vdCBwcmVzZW50IG9u'@; put 'IHRoaXMgb2JqZWN0Iil9eGwoajNlLHkxKTt2YXIgX1A9bmV3IFdlYWtNYXAsUUU9bmV3IFdlYWtNYXAsd1A9bmV3IFdlYWtNYXAsQ1A9bmV3IFdlYWtNYXAsU1A9bmV3IFdlYWtNYXA7Y2xhc3MgbG50e2NvbnN0cnVjdG9yKCl7bGV0e2luaXRpYWxJbmRleFZhbHVlOmx9PWFyZ3VtZW50cy5s'@; put 'ZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTtKRSh0aGlzLF9QLG5ldyBTZXQpLEpFKHRoaXMsUUUsW10pLEpFKHRoaXMsd1AsW10pLEpFKHRoaXMsQ1AsITEpLEpFKHRoaXMsU1AsITEpLGJQKFNQLHRoaXMsbD8/ITEpfWNyZWF0ZU9ic2VydmVyKCl7Y29u'@; put 'c3QgbD1uZXcgajNlO3JldHVybiBLMihfUCx0aGlzKS5hZGQobCksbC5hZGRMb2NhbEhvb2soInVuc3Vic2NyaWJlIiwoKT0+e0syKF9QLHRoaXMpLmRlbGV0ZShsKX0pLGwuX3dyaXRlSW5pdGlhbENoYW5nZXMoejNlKEsyKFFFLHRoaXMpLEsyKHdQLHRoaXMpKSksbH1lbWl0KGwpe2xldCBh'@; put 'PUsyKHdQLHRoaXMpOyghSzIoQ1AsdGhpcyl8fEsyKFFFLHRoaXMpLmxlbmd0aCE9PWwubGVuZ3RoKSYmKDA9PT1sLmxlbmd0aD9sPW5ldyBBcnJheShhLmxlbmd0aCkuZmlsbChLMihTUCx0aGlzKSk6YlAoUUUsdGhpcyxuZXcgQXJyYXkobC5sZW5ndGgpLmZpbGwoSzIoU1AsdGhpcykpKSxL'@; put 'MihDUCx0aGlzKXx8KGJQKENQLHRoaXMsITApLGE9SzIoUUUsdGhpcykpKTtjb25zdCBkPXozZShhLGwpO0syKF9QLHRoaXMpLmZvckVhY2goaD0+aC5fd3JpdGUoZCkpLGJQKHdQLHRoaXMsbCl9fWZ1bmN0aW9uIHExKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBjbnQoYyl7dmFyIGw9ZnVu'@; put 'Y3Rpb24gdW50KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5'@; put 'cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9w'@; put 'ZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31jbGFzcyBZS3tjb25zdHJ1Y3Rvcigpe3ExKHRoaXMsImluZGV4ZXNTZXF1ZW5jZSIsbmV3IEgzZSkscTEodGhpcywidHJpbW1pbmdNYXBzQ29sbGVjdGlvbiIsbmV3'@; put 'IFYzZShsPT5sLnNvbWUoYT0+ITA9PT1hKSwhMSkpLHExKHRoaXMsImhpZGluZ01hcHNDb2xsZWN0aW9uIixuZXcgVjNlKGw9Pmwuc29tZShhPT4hMD09PWEpLCExKSkscTEodGhpcywidmFyaW91c01hcHNDb2xsZWN0aW9uIixuZXcgVUspLHExKHRoaXMsImhpZGluZ0NoYW5nZXNPYnNlcnZh'@; put 'YmxlIixuZXcgbG50KHtpbml0aWFsSW5kZXhWYWx1ZTohMX0pKSxxMSh0aGlzLCJub3RUcmltbWVkSW5kZXhlc0NhY2hlIixbXSkscTEodGhpcywibm90SGlkZGVuSW5kZXhlc0NhY2hlIixbXSkscTEodGhpcywiaXNCYXRjaGVkIiwhMSkscTEodGhpcywiaW5kZXhlc1NlcXVlbmNlQ2hhbmdl'@; put 'ZCIsITEpLHExKHRoaXMsImluZGV4ZXNDaGFuZ2VTb3VyY2UiLHZvaWQgMCkscTEodGhpcywidHJpbW1lZEluZGV4ZXNDaGFuZ2VkIiwhMSkscTEodGhpcywiaGlkZGVuSW5kZXhlc0NoYW5nZWQiLCExKSxxMSh0aGlzLCJyZW5kZXJhYmxlUGh5c2ljYWxJbmRleGVzQ2FjaGUiLFtdKSxxMSh0'@; put 'aGlzLCJmcm9tUGh5c2ljYWxUb1Zpc3VhbEluZGV4ZXNDYWNoZSIsbmV3IE1hcCkscTEodGhpcywiZnJvbVZpc3VhbFRvUmVuZGVyYWJsZUluZGV4ZXNDYWNoZSIsbmV3IE1hcCksdGhpcy5pbmRleGVzU2VxdWVuY2UuYWRkTG9jYWxIb29rKCJjaGFuZ2UiLCgpPT57dGhpcy5pbmRleGVzU2Vx'@; put 'dWVuY2VDaGFuZ2VkPSEwLHRoaXMudXBkYXRlQ2FjaGUoKSx0aGlzLnJ1bkxvY2FsSG9va3MoImluZGV4ZXNTZXF1ZW5jZUNoYW5nZSIsdGhpcy5pbmRleGVzQ2hhbmdlU291cmNlKSx0aGlzLnJ1bkxvY2FsSG9va3MoImNoYW5nZSIsdGhpcy5pbmRleGVzU2VxdWVuY2UsbnVsbCl9KSx0aGlz'@; put 'LnRyaW1taW5nTWFwc0NvbGxlY3Rpb24uYWRkTG9jYWxIb29rKCJjaGFuZ2UiLGw9Pnt0aGlzLnRyaW1tZWRJbmRleGVzQ2hhbmdlZD0hMCx0aGlzLnVwZGF0ZUNhY2hlKCksdGhpcy5ydW5Mb2NhbEhvb2tzKCJjaGFuZ2UiLGwsdGhpcy50cmltbWluZ01hcHNDb2xsZWN0aW9uKX0pLHRoaXMu'@; put 'aGlkaW5nTWFwc0NvbGxlY3Rpb24uYWRkTG9jYWxIb29rKCJjaGFuZ2UiLGw9Pnt0aGlzLmhpZGRlbkluZGV4ZXNDaGFuZ2VkPSEwLHRoaXMudXBkYXRlQ2FjaGUoKSx0aGlzLnJ1bkxvY2FsSG9va3MoImNoYW5nZSIsbCx0aGlzLmhpZGluZ01hcHNDb2xsZWN0aW9uKX0pLHRoaXMudmFyaW91'@; put 'c01hcHNDb2xsZWN0aW9uLmFkZExvY2FsSG9vaygiY2hhbmdlIixsPT57dGhpcy5ydW5Mb2NhbEhvb2tzKCJjaGFuZ2UiLGwsdGhpcy52YXJpb3VzTWFwc0NvbGxlY3Rpb24pfSl9c3VzcGVuZE9wZXJhdGlvbnMoKXt0aGlzLmlzQmF0Y2hlZD0hMH1yZXN1bWVPcGVyYXRpb25zKCl7dGhpcy5p'@; put 'c0JhdGNoZWQ9ITEsdGhpcy51cGRhdGVDYWNoZSgpfWNyZWF0ZUNoYW5nZXNPYnNlcnZlcihsKXtpZigiaGlkaW5nIiE9PWwpdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBpbmRleCBtYXAgdHlwZSAiJHtsfSIuYCk7cmV0dXJuIHRoaXMuaGlkaW5nQ2hhbmdlc09ic2VydmFibGUuY3Jl'@; put 'YXRlT2JzZXJ2ZXIoKX1jcmVhdGVBbmRSZWdpc3RlckluZGV4TWFwKGwsYSxkKXtyZXR1cm4gdGhpcy5yZWdpc3Rlck1hcChsLGZ1bmN0aW9uIFh0dChjKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06bnVsbDtpZighTjNlLmhh'@; put 'cyhjKSl0aHJvdyBuZXcgRXJyb3IoYFRoZSBwcm92aWRlZCBtYXAgdHlwZSAoIiR7Y30iKSBkb2VzIG5vdCBleGlzdC5gKTtyZXR1cm4gbmV3KE4zZS5nZXQoYykpKGwpfShhLGQpKX1yZWdpc3Rlck1hcChsLGEpe2lmKHRoaXMudHJpbW1pbmdNYXBzQ29sbGVjdGlvbi5nZXQobCl8fHRoaXMu'@; put 'aGlkaW5nTWFwc0NvbGxlY3Rpb24uZ2V0KGwpfHx0aGlzLnZhcmlvdXNNYXBzQ29sbGVjdGlvbi5nZXQobCkpdGhyb3cgRXJyb3IoYE1hcCB3aXRoIG5hbWUgIiR7bH0iIGhhcyBiZWVuIGFscmVhZHkgcmVnaXN0ZXJlZC5gKTthIGluc3RhbmNlb2YgcUU/dGhpcy50cmltbWluZ01hcHNDb2xs'@; put 'ZWN0aW9uLnJlZ2lzdGVyKGwsYSk6YSBpbnN0YW5jZW9mIHZQP3RoaXMuaGlkaW5nTWFwc0NvbGxlY3Rpb24ucmVnaXN0ZXIobCxhKTp0aGlzLnZhcmlvdXNNYXBzQ29sbGVjdGlvbi5yZWdpc3RlcihsLGEpO2NvbnN0IGQ9dGhpcy5nZXROdW1iZXJPZkluZGV4ZXMoKTtyZXR1cm4gZD4wJiZh'@; put 'LmluaXQoZCksYX11bnJlZ2lzdGVyTWFwKGwpe3RoaXMudHJpbW1pbmdNYXBzQ29sbGVjdGlvbi51bnJlZ2lzdGVyKGwpLHRoaXMuaGlkaW5nTWFwc0NvbGxlY3Rpb24udW5yZWdpc3RlcihsKSx0aGlzLnZhcmlvdXNNYXBzQ29sbGVjdGlvbi51bnJlZ2lzdGVyKGwpfXVucmVnaXN0ZXJBbGwo'@; put 'KXt0aGlzLnRyaW1taW5nTWFwc0NvbGxlY3Rpb24udW5yZWdpc3RlckFsbCgpLHRoaXMuaGlkaW5nTWFwc0NvbGxlY3Rpb24udW5yZWdpc3RlckFsbCgpLHRoaXMudmFyaW91c01hcHNDb2xsZWN0aW9uLnVucmVnaXN0ZXJBbGwoKX1nZXRQaHlzaWNhbEZyb21WaXN1YWxJbmRleChsKXtjb25z'@; put 'dCBhPXRoaXMubm90VHJpbW1lZEluZGV4ZXNDYWNoZVtsXTtyZXR1cm4gSGEoYSk/YTpudWxsfWdldFBoeXNpY2FsRnJvbVJlbmRlcmFibGVJbmRleChsKXtjb25zdCBhPXRoaXMucmVuZGVyYWJsZVBoeXNpY2FsSW5kZXhlc0NhY2hlW2xdO3JldHVybiBIYShhKT9hOm51bGx9Z2V0VmlzdWFs'@; put 'RnJvbVBoeXNpY2FsSW5kZXgobCl7Y29uc3QgYT10aGlzLmZyb21QaHlzaWNhbFRvVmlzdWFsSW5kZXhlc0NhY2hlLmdldChsKTtyZXR1cm4gSGEoYSk/YTpudWxsfWdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgobCl7cmV0dXJuIHRoaXMuZ2V0VmlzdWFsRnJvbVBoeXNpY2FsSW5kZXgo'@; put 'dGhpcy5nZXRQaHlzaWNhbEZyb21SZW5kZXJhYmxlSW5kZXgobCkpfWdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgobCl7Y29uc3QgYT10aGlzLmZyb21WaXN1YWxUb1JlbmRlcmFibGVJbmRleGVzQ2FjaGUuZ2V0KGwpO3JldHVybiBIYShhKT9hOm51bGx9Z2V0TmVhcmVzdE5vdEhpZGRl'@; put 'bkluZGV4KGwsYSl7bGV0IGQ9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXTtpZihudWxsPT09dGhpcy5nZXRQaHlzaWNhbEZyb21WaXN1YWxJbmRleChsKSlyZXR1cm4gbnVsbDtpZih0aGlzLmZyb21WaXN1YWxUb1JlbmRlcmFibGVJbmRl'@; put 'eGVzQ2FjaGUuaGFzKGwpKXJldHVybiBsO2NvbnN0IGY9QXJyYXkuZnJvbSh0aGlzLmZyb21WaXN1YWxUb1JlbmRlcmFibGVJbmRleGVzQ2FjaGUua2V5cygpKTtsZXQgdj0tMTtyZXR1cm4gdj1hPjA/Zi5maW5kSW5kZXgoTT0+TT5sKTpmLnJldmVyc2UoKS5maW5kSW5kZXgoTT0+TTxsKSwt'@; put 'MT09PXY/ZD90aGlzLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChsLC1hLCExKTpudWxsOmZbdl19aW5pdFRvTGVuZ3RoKCl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMuZ2V0TnVtYmVyT2ZJbmRleGVzKCk7dGhpcy5u'@; put 'b3RUcmltbWVkSW5kZXhlc0NhY2hlPVsuLi5uZXcgQXJyYXkobCkua2V5cygpXSx0aGlzLm5vdEhpZGRlbkluZGV4ZXNDYWNoZT1bLi4ubmV3IEFycmF5KGwpLmtleXMoKV0sdGhpcy5zdXNwZW5kT3BlcmF0aW9ucygpLHRoaXMuaW5kZXhlc0NoYW5nZVNvdXJjZT0iaW5pdCIsdGhpcy5pbmRl'@; put 'eGVzU2VxdWVuY2UuaW5pdChsKSx0aGlzLmluZGV4ZXNDaGFuZ2VTb3VyY2U9dm9pZCAwLHRoaXMudHJpbW1pbmdNYXBzQ29sbGVjdGlvbi5pbml0RXZlcnkobCksdGhpcy5yZXN1bWVPcGVyYXRpb25zKCksdGhpcy5zdXNwZW5kT3BlcmF0aW9ucygpLHRoaXMuaGlkaW5nTWFwc0NvbGxlY3Rp'@; put 'b24uaW5pdEV2ZXJ5KGwpLHRoaXMudmFyaW91c01hcHNDb2xsZWN0aW9uLmluaXRFdmVyeShsKSx0aGlzLnJlc3VtZU9wZXJhdGlvbnMoKSx0aGlzLnJ1bkxvY2FsSG9va3MoImluaXQiKX1maXRUb0xlbmd0aChsKXtjb25zdCBhPXRoaXMuZ2V0TnVtYmVyT2ZJbmRleGVzKCk7aWYobDxhKXtj'@; put 'b25zdCBkPVsuLi5BcnJheSh0aGlzLmdldE51bWJlck9mSW5kZXhlcygpLWwpLmtleXMoKV0ubWFwKGg9PmgrbCk7dGhpcy5yZW1vdmVJbmRleGVzKGQpfWVsc2UgdGhpcy5pbnNlcnRJbmRleGVzKGEsbC1hKX1nZXRJbmRleGVzU2VxdWVuY2UoKXtyZXR1cm4gdGhpcy5pbmRleGVzU2VxdWVu'@; put 'Y2UuZ2V0VmFsdWVzKCl9c2V0SW5kZXhlc1NlcXVlbmNlKGwpe3ZvaWQgMD09PXRoaXMuaW5kZXhlc0NoYW5nZVNvdXJjZSYmKHRoaXMuaW5kZXhlc0NoYW5nZVNvdXJjZT0idXBkYXRlIiksdGhpcy5pbmRleGVzU2VxdWVuY2Uuc2V0VmFsdWVzKGwpLCJ1cGRhdGUiPT09dGhpcy5pbmRleGVz'@; put 'Q2hhbmdlU291cmNlJiYodGhpcy5pbmRleGVzQ2hhbmdlU291cmNlPXZvaWQgMCl9Z2V0Tm90VHJpbW1lZEluZGV4ZXMoKXtyZXR1cm4hMD09PSghKGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdKXx8YXJndW1lbnRzWzBdKT90aGlzLm5vdFRyaW1tZWRJbmRleGVz'@; put 'Q2FjaGU6dGhpcy5nZXRJbmRleGVzU2VxdWVuY2UoKS5maWx0ZXIoZD0+ITE9PT10aGlzLmlzVHJpbW1lZChkKSl9Z2V0Tm90VHJpbW1lZEluZGV4ZXNMZW5ndGgoKXtyZXR1cm4gdGhpcy5nZXROb3RUcmltbWVkSW5kZXhlcygpLmxlbmd0aH1nZXROb3RIaWRkZW5JbmRleGVzKCl7cmV0dXJu'@; put 'ITA9PT0oIShhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSl8fGFyZ3VtZW50c1swXSk/dGhpcy5ub3RIaWRkZW5JbmRleGVzQ2FjaGU6dGhpcy5nZXRJbmRleGVzU2VxdWVuY2UoKS5maWx0ZXIoZD0+ITE9PT10aGlzLmlzSGlkZGVuKGQpKX1nZXROb3RIaWRkZW5J'@; put 'bmRleGVzTGVuZ3RoKCl7cmV0dXJuIHRoaXMuZ2V0Tm90SGlkZGVuSW5kZXhlcygpLmxlbmd0aH1nZXRSZW5kZXJhYmxlSW5kZXhlcygpe3JldHVybiEwPT09KCEoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0pfHxhcmd1bWVudHNbMF0pP3RoaXMucmVuZGVyYWJs'@; put 'ZVBoeXNpY2FsSW5kZXhlc0NhY2hlOnRoaXMuZ2V0Tm90VHJpbW1lZEluZGV4ZXMoKS5maWx0ZXIoZD0+ITE9PT10aGlzLmlzSGlkZGVuKGQpKX1nZXRSZW5kZXJhYmxlSW5kZXhlc0xlbmd0aCgpe3JldHVybiB0aGlzLmdldFJlbmRlcmFibGVJbmRleGVzKCkubGVuZ3RofWdldE51bWJlck9m'@; put 'SW5kZXhlcygpe3JldHVybiB0aGlzLmdldEluZGV4ZXNTZXF1ZW5jZSgpLmxlbmd0aH1tb3ZlSW5kZXhlcyhsLGEpeyJudW1iZXIiPT10eXBlb2YgbCYmKGw9W2xdKTtjb25zdCBkPXlvKGwsRz0+dGhpcy5nZXRQaHlzaWNhbEZyb21WaXN1YWxJbmRleChHKSksaD10aGlzLmdldE5vdFRyaW1t'@; put 'ZWRJbmRleGVzTGVuZ3RoKCksZj1sLmxlbmd0aCx2PVhFKHRoaXMuZ2V0SW5kZXhlc1NlcXVlbmNlKCksZCksTT12LmZpbHRlcihHPT4hMT09PXRoaXMuaXNUcmltbWVkKEcpKTtsZXQgST12LmluZGV4T2YoTVtNLmxlbmd0aC0xXSkrMTthK2Y8aCYmKEk9di5pbmRleE9mKE1bYV0pKSx0aGlz'@; put 'LmluZGV4ZXNDaGFuZ2VTb3VyY2U9Im1vdmUiLHRoaXMuc2V0SW5kZXhlc1NlcXVlbmNlKEhLKHYsSSxkKSksdGhpcy5pbmRleGVzQ2hhbmdlU291cmNlPXZvaWQgMH1pc1RyaW1tZWQobCl7cmV0dXJuIHRoaXMudHJpbW1pbmdNYXBzQ29sbGVjdGlvbi5nZXRNZXJnZWRWYWx1ZUF0SW5kZXgo'@; put 'bCl9aXNIaWRkZW4obCl7cmV0dXJuIHRoaXMuaGlkaW5nTWFwc0NvbGxlY3Rpb24uZ2V0TWVyZ2VkVmFsdWVBdEluZGV4KGwpfWluc2VydEluZGV4ZXMobCxhKXtsZXQgZD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06InN0YXJ0Ijtjb25z'@; put 'dCBoPXRoaXMuZ2V0Tm90VHJpbW1lZEluZGV4ZXMoKVtsXSxmPUhhKGgpP2g6dGhpcy5nZXROdW1iZXJPZkluZGV4ZXMoKSx2PXRoaXMuZ2V0SW5kZXhlc1NlcXVlbmNlKCkuaW5jbHVkZXMoaCk/dGhpcy5nZXRJbmRleGVzU2VxdWVuY2UoKS5pbmRleE9mKGgpOnRoaXMuZ2V0TnVtYmVyT2ZJ'@; put 'bmRleGVzKCksTT15byhuZXcgQXJyYXkoYSkuZmlsbChmKSwoRyxyZSk9PkcrcmUpO3RoaXMuc3VzcGVuZE9wZXJhdGlvbnMoKSx0aGlzLmluZGV4ZXNDaGFuZ2VTb3VyY2U9Imluc2VydCIsdGhpcy5pbmRleGVzU2VxdWVuY2UuaW5zZXJ0KHYsTSksdGhpcy5pbmRleGVzQ2hhbmdlU291cmNl'@; put 'PXZvaWQgMDtjb25zdCBJPSJlbmQiPT09ZD9NLm1hcChHPT5HKzEpOk07dGhpcy50cmltbWluZ01hcHNDb2xsZWN0aW9uLmluc2VydFRvRXZlcnkodixJKSx0aGlzLmhpZGluZ01hcHNDb2xsZWN0aW9uLmluc2VydFRvRXZlcnkodixJKSx0aGlzLnZhcmlvdXNNYXBzQ29sbGVjdGlvbi5pbnNl'@; put 'cnRUb0V2ZXJ5KHYsSSksdGhpcy5yZXN1bWVPcGVyYXRpb25zKCl9cmVtb3ZlSW5kZXhlcyhsKXt0aGlzLnN1c3BlbmRPcGVyYXRpb25zKCksdGhpcy5pbmRleGVzQ2hhbmdlU291cmNlPSJyZW1vdmUiLHRoaXMuaW5kZXhlc1NlcXVlbmNlLnJlbW92ZShsKSx0aGlzLmluZGV4ZXNDaGFuZ2VT'@; put 'b3VyY2U9dm9pZCAwLHRoaXMudHJpbW1pbmdNYXBzQ29sbGVjdGlvbi5yZW1vdmVGcm9tRXZlcnkobCksdGhpcy5oaWRpbmdNYXBzQ29sbGVjdGlvbi5yZW1vdmVGcm9tRXZlcnkobCksdGhpcy52YXJpb3VzTWFwc0NvbGxlY3Rpb24ucmVtb3ZlRnJvbUV2ZXJ5KGwpLHRoaXMucmVzdW1lT3Bl'@; put 'cmF0aW9ucygpfXVwZGF0ZUNhY2hlKCl7KCEwPT09KGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0pfHwhMT09PXRoaXMuaXNCYXRjaGVkJiYhMD09PSh0aGlzLmluZGV4ZXNTZXF1ZW5jZUNoYW5nZWR8fHRoaXMudHJpbW1lZEluZGV4ZXND'@; put 'aGFuZ2VkfHx0aGlzLmhpZGRlbkluZGV4ZXNDaGFuZ2VkKSkmJih0aGlzLnRyaW1taW5nTWFwc0NvbGxlY3Rpb24udXBkYXRlQ2FjaGUoKSx0aGlzLmhpZGluZ01hcHNDb2xsZWN0aW9uLnVwZGF0ZUNhY2hlKCksdGhpcy5ub3RUcmltbWVkSW5kZXhlc0NhY2hlPXRoaXMuZ2V0Tm90VHJpbW1l'@; put 'ZEluZGV4ZXMoITEpLHRoaXMubm90SGlkZGVuSW5kZXhlc0NhY2hlPXRoaXMuZ2V0Tm90SGlkZGVuSW5kZXhlcyghMSksdGhpcy5yZW5kZXJhYmxlUGh5c2ljYWxJbmRleGVzQ2FjaGU9dGhpcy5nZXRSZW5kZXJhYmxlSW5kZXhlcyghMSksdGhpcy5jYWNoZUZyb21QaHlzaWNhbFRvVmlzdWFs'@; put 'SW5kZXhlcygpLHRoaXMuY2FjaGVGcm9tVmlzdWFsVG9SZW5kZXJhYmxlSW5kZXhlcygpLHRoaXMuaGlkZGVuSW5kZXhlc0NoYW5nZWQmJnRoaXMuaGlkaW5nQ2hhbmdlc09ic2VydmFibGUuZW1pdCh0aGlzLmhpZGluZ01hcHNDb2xsZWN0aW9uLmdldE1lcmdlZFZhbHVlcygpKSx0aGlzLnJ1'@; put 'bkxvY2FsSG9va3MoImNhY2hlVXBkYXRlZCIse2luZGV4ZXNTZXF1ZW5jZUNoYW5nZWQ6dGhpcy5pbmRleGVzU2VxdWVuY2VDaGFuZ2VkLHRyaW1tZWRJbmRleGVzQ2hhbmdlZDp0aGlzLnRyaW1tZWRJbmRleGVzQ2hhbmdlZCxoaWRkZW5JbmRleGVzQ2hhbmdlZDp0aGlzLmhpZGRlbkluZGV4'@; put 'ZXNDaGFuZ2VkfSksdGhpcy5pbmRleGVzU2VxdWVuY2VDaGFuZ2VkPSExLHRoaXMudHJpbW1lZEluZGV4ZXNDaGFuZ2VkPSExLHRoaXMuaGlkZGVuSW5kZXhlc0NoYW5nZWQ9ITEpfWNhY2hlRnJvbVBoeXNpY2FsVG9WaXN1YWxJbmRleGVzKCl7Y29uc3QgbD10aGlzLmdldE5vdFRyaW1tZWRJ'@; put 'bmRleGVzTGVuZ3RoKCk7dGhpcy5mcm9tUGh5c2ljYWxUb1Zpc3VhbEluZGV4ZXNDYWNoZS5jbGVhcigpO2ZvcihsZXQgYT0wO2E8bDthKz0xKXtjb25zdCBkPXRoaXMuZ2V0UGh5c2ljYWxGcm9tVmlzdWFsSW5kZXgoYSk7dGhpcy5mcm9tUGh5c2ljYWxUb1Zpc3VhbEluZGV4ZXNDYWNoZS5z'@; put 'ZXQoZCxhKX19Y2FjaGVGcm9tVmlzdWFsVG9SZW5kZXJhYmxlSW5kZXhlcygpe2NvbnN0IGw9dGhpcy5nZXRSZW5kZXJhYmxlSW5kZXhlc0xlbmd0aCgpO3RoaXMuZnJvbVZpc3VhbFRvUmVuZGVyYWJsZUluZGV4ZXNDYWNoZS5jbGVhcigpO2ZvcihsZXQgYT0wO2E8bDthKz0xKXtjb25zdCBk'@; put 'PXRoaXMuZ2V0UGh5c2ljYWxGcm9tUmVuZGVyYWJsZUluZGV4KGEpLGg9dGhpcy5nZXRWaXN1YWxGcm9tUGh5c2ljYWxJbmRleChkKTt0aGlzLmZyb21WaXN1YWxUb1JlbmRlcmFibGVJbmRleGVzQ2FjaGUuc2V0KGgsYSl9fX1mdW5jdGlvbiBaM2UoYyl7Y29uc3QgYT0vXihbYS16QS1aXXsy'@; put 'fSktKFthLXpBLVpdezJ9KSQvLmV4ZWMoYyk7cmV0dXJuIGE/YCR7YVsxXS50b0xvd2VyQ2FzZSgpfS0ke2FbMl0udG9VcHBlckNhc2UoKX1gOmN9ZnVuY3Rpb24gVzNlKGMpe0hhKGMpJiZCJChobGBMYW5ndWFnZSB3aXRoIGNvZGUgIiR7Y30iIHdhcyBub3QgZm91bmQuIFlvdSBzaG91bGQg'@; put 'cmVnaXN0ZXIgcGFydGljdWxhciBsYW5ndWFnZVx4MjAKICAgIGJlZm9yZSB1c2luZyBpdC4gUmVhZCBtb3JlIGFib3V0IHRoaXMgaXNzdWUgYXQ6IGh0dHBzOi8vZG9jcy5oYW5kc29udGFibGUuY29tL2kxOG4vbWlzc2luZy1sYW5ndWFnZS1jb2RlLmApfXhsKFlLLHkxKTtjb25zdHtyZWdp'@; put 'c3RlcjpmbnQsZ2V0VmFsdWVzOnBudH09VTIoInBocmFzZUZvcm1hdHRlcnMiKTshZnVuY3Rpb24gZ250KGMsbCl7Zm50KGMsbCl9KCJwbHVyYWxpemUiLGZ1bmN0aW9uIGhudChjLGwpe3JldHVybiBBcnJheS5pc0FycmF5KGMpJiZOdW1iZXIuaXNJbnRlZ2VyKGwpP2NbbF06Y30pO2NvbnN0'@; put 'IFkzZT0iQ29udGV4dE1lbnU6aXRlbXMiLEdLPWAke1kzZX0ubm9JdGVtc2AsJEs9YCR7WTNlfS5pbnNlcnRSb3dBYm92ZWAsS0s9YCR7WTNlfS5pbnNlcnRSb3dCZWxvd2AsWEs9YCR7WTNlfS5pbnNlcnRDb2x1bW5PblRoZUxlZnRgLHFLPWAke1kzZX0uaW5zZXJ0Q29sdW1uT25UaGVSaWdo'@; put 'dGAsSks9YCR7WTNlfS5yZW1vdmVSb3dgLFFLPWAke1kzZX0ucmVtb3ZlQ29sdW1uYCxlWD1gJHtZM2V9LnVuZG9gLHRYPWAke1kzZX0ucmVkb2AsTVA9YCR7WTNlfS5yZWFkT25seWAsblg9YCR7WTNlfS5jbGVhckNvbHVtbmAsclg9YCR7WTNlfS5jb3B5YCxpWD1gJHtZM2V9LmNvcHlXaXRo'@; put 'SGVhZGVyc2AsYVg9YCR7WTNlfS5jb3B5V2l0aEdyb3VwSGVhZGVyc2Asc1g9YCR7WTNlfS5jb3B5SGVhZGVyc09ubHlgLG9YPWAke1kzZX0uY3V0YCxsWD1gJHtZM2V9LmZyZWV6ZUNvbHVtbmAsY1g9YCR7WTNlfS51bmZyZWV6ZUNvbHVtbmAsdVg9YCR7WTNlfS5tZXJnZUNlbGxzYCxkWD1g'@; put 'JHtZM2V9LnVubWVyZ2VDZWxsc2AsaFg9YCR7WTNlfS5hZGRDb21tZW50YCxmWD1gJHtZM2V9LmVkaXRDb21tZW50YCxwWD1gJHtZM2V9LnJlbW92ZUNvbW1lbnRgLGdYPWAke1kzZX0ucmVhZE9ubHlDb21tZW50YCxtWD1gJHtZM2V9LmFsaWduYCx2WD1gJHtZM2V9LmFsaWduLmxlZnRgLHlY'@; put 'PWAke1kzZX0uYWxpZ24uY2VudGVyYCxiWD1gJHtZM2V9LmFsaWduLnJpZ2h0YCxfWD1gJHtZM2V9LmFsaWduLmp1c3RpZnlgLHdYPWAke1kzZX0uYWxpZ24udG9wYCxDWD1gJHtZM2V9LmFsaWduLm1pZGRsZWAsU1g9YCR7WTNlfS5hbGlnbi5ib3R0b21gLE1YPWAke1kzZX0uYm9yZGVyc2As'@; put 'eFg9YCR7WTNlfS5ib3JkZXJzLnRvcGAsRVg9YCR7WTNlfS5ib3JkZXJzLnJpZ2h0YCxUWD1gJHtZM2V9LmJvcmRlcnMuYm90dG9tYCxBWD1gJHtZM2V9LmJvcmRlcnMubGVmdGAsa1g9YCR7WTNlfS5ib3JkZXJzLnJlbW92ZWAsRFg9YCR7WTNlfS5uZXN0ZWRIZWFkZXJzLmluc2VydENoaWxk'@; put 'Um93YCxJWD1gJHtZM2V9Lm5lc3RlZEhlYWRlcnMuZGV0YWNoRnJvbVBhcmVudGAsUlg9YCR7WTNlfS5oaWRlQ29sdW1uYCxMWD1gJHtZM2V9LnNob3dDb2x1bW5gLE9YPWAke1kzZX0uaGlkZVJvd2AsUFg9YCR7WTNlfS5zaG93Um93YCxKMT0iRmlsdGVyczoiLFVjPWAke0oxfWNvbmRpdGlv'@; put 'bnNgLHhQPWAke1VjfS5ub25lYCxGWD1gJHtVY30uaXNFbXB0eWAsSFg9YCR7VWN9LmlzTm90RW1wdHlgLE5YPWAke1VjfS5pc0VxdWFsVG9gLFZYPWAke1VjfS5pc05vdEVxdWFsVG9gLEJYPWAke1VjfS5iZWdpbnNXaXRoYCxqWD1gJHtVY30uZW5kc1dpdGhgLHpYPWAke1VjfS5jb250YWlu'@; put 'c2AsVVg9YCR7VWN9LmRvZXNOb3RDb250YWluYCx2bnQ9YCR7VWN9LmJ5VmFsdWVgLFpYPWAke1VjfS5ncmVhdGVyVGhhbmAsV1g9YCR7VWN9LmdyZWF0ZXJUaGFuT3JFcXVhbFRvYCxZWD1gJHtVY30ubGVzc1RoYW5gLEdYPWAke1VjfS5sZXNzVGhhbk9yRXF1YWxUb2AsJFg9YCR7VWN9Lmlz'@; put 'QmV0d2VlbmAsS1g9YCR7VWN9LmlzTm90QmV0d2VlbmAsWFg9YCR7VWN9LmFmdGVyYCxxWD1gJHtVY30uYmVmb3JlYCxKWD1gJHtVY30udG9kYXlgLFFYPWAke1VjfS50b21vcnJvd2AsZXE9YCR7VWN9Lnllc3RlcmRheWAsdHE9YCR7SjF9bGFiZWxzLmZpbHRlckJ5Q29uZGl0aW9uYCxucT1g'@; put 'JHtKMX1sYWJlbHMuZmlsdGVyQnlWYWx1ZWAscnE9YCR7SjF9bGFiZWxzLmNvbmp1bmN0aW9uYCxFUD1gJHtKMX1sYWJlbHMuZGlzanVuY3Rpb25gLFRQPWAke0oxfXZhbHVlcy5ibGFua0NlbGxzYCxpcT1gJHtKMX1idXR0b25zLnNlbGVjdEFsbGAsYXE9YCR7SjF9YnV0dG9ucy5jbGVhcmAs'@; put 'c3E9YCR7SjF9YnV0dG9ucy5va2Asb3E9YCR7SjF9YnV0dG9ucy5jYW5jZWxgLGxxPWAke0oxfWJ1dHRvbnMucGxhY2Vob2xkZXIuc2VhcmNoYCxjcT1gJHtKMX1idXR0b25zLnBsYWNlaG9sZGVyLnZhbHVlYCx1cT1gJHtKMX1idXR0b25zLnBsYWNlaG9sZGVyLnNlY29uZFZhbHVlYCxkcT0i'@; put 'Q2hlY2tib3hSZW5kZXJlcjoiLGhxPWAke2RxfWNoZWNrZWRgLGZxPWAke2RxfXVuY2hlY2tlZGAsRzNlPXtsYW5ndWFnZUNvZGU6ImVuLVVTIixbR0tdOiJObyBhdmFpbGFibGUgb3B0aW9ucyIsWyRLXToiSW5zZXJ0IHJvdyBhYm92ZSIsW0tLXToiSW5zZXJ0IHJvdyBiZWxvdyIsW1hLXToi'@; put 'SW5zZXJ0IGNvbHVtbiBsZWZ0IixbcUtdOiJJbnNlcnQgY29sdW1uIHJpZ2h0IixbSktdOlsiUmVtb3ZlIHJvdyIsIlJlbW92ZSByb3dzIl0sW1FLXTpbIlJlbW92ZSBjb2x1bW4iLCJSZW1vdmUgY29sdW1ucyJdLFtlWF06IlVuZG8iLFt0WF06IlJlZG8iLFtNUF06IlJlYWQgb25seSIsW25Y'@; put 'XToiQ2xlYXIgY29sdW1uIixbbVhdOiJBbGlnbm1lbnQiLFt2WF06IkxlZnQiLFt5WF06IkNlbnRlciIsW2JYXToiUmlnaHQiLFtfWF06Ikp1c3RpZnkiLFt3WF06IlRvcCIsW0NYXToiTWlkZGxlIixbU1hdOiJCb3R0b20iLFtsWF06IkZyZWV6ZSBjb2x1bW4iLFtjWF06IlVuZnJlZXplIGNv'@; put 'bHVtbiIsW01YXToiQm9yZGVycyIsW3hYXToiVG9wIixbRVhdOiJSaWdodCIsW1RYXToiQm90dG9tIixbQVhdOiJMZWZ0Iixba1hdOiJSZW1vdmUgYm9yZGVyKHMpIixbaFhdOiJBZGQgY29tbWVudCIsW2ZYXToiRWRpdCBjb21tZW50IixbcFhdOiJEZWxldGUgY29tbWVudCIsW2dYXToiUmVh'@; put 'ZC1vbmx5IGNvbW1lbnQiLFt1WF06Ik1lcmdlIGNlbGxzIixbZFhdOiJVbm1lcmdlIGNlbGxzIixbclhdOiJDb3B5IixbaVhdOlsiQ29weSB3aXRoIGhlYWRlciIsIkNvcHkgd2l0aCBoZWFkZXJzIl0sW2FYXTpbIkNvcHkgd2l0aCBncm91cCBoZWFkZXIiLCJDb3B5IHdpdGggZ3JvdXAgaGVh'@; put 'ZGVycyJdLFtzWF06WyJDb3B5IGhlYWRlciBvbmx5IiwiQ29weSBoZWFkZXJzIG9ubHkiXSxbb1hdOiJDdXQiLFtEWF06Ikluc2VydCBjaGlsZCByb3ciLFtJWF06IkRldGFjaCBmcm9tIHBhcmVudCIsW1JYXTpbIkhpZGUgY29sdW1uIiwiSGlkZSBjb2x1bW5zIl0sW0xYXTpbIlNob3cgY29s'@; put 'dW1uIiwiU2hvdyBjb2x1bW5zIl0sW09YXTpbIkhpZGUgcm93IiwiSGlkZSByb3dzIl0sW1BYXTpbIlNob3cgcm93IiwiU2hvdyByb3dzIl0sW3hQXToiTm9uZSIsW0ZYXToiSXMgZW1wdHkiLFtIWF06IklzIG5vdCBlbXB0eSIsW05YXToiSXMgZXF1YWwgdG8iLFtWWF06IklzIG5vdCBlcXVh'@; put 'bCB0byIsW0JYXToiQmVnaW5zIHdpdGgiLFtqWF06IkVuZHMgd2l0aCIsW3pYXToiQ29udGFpbnMiLFtVWF06IkRvZXMgbm90IGNvbnRhaW4iLFtaWF06IkdyZWF0ZXIgdGhhbiIsW1dYXToiR3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIixbWVhdOiJMZXNzIHRoYW4iLFtHWF06Ikxlc3MgdGhh'@; put 'biBvciBlcXVhbCB0byIsWyRYXToiSXMgYmV0d2VlbiIsW0tYXToiSXMgbm90IGJldHdlZW4iLFtYWF06IkFmdGVyIixbcVhdOiJCZWZvcmUiLFtKWF06IlRvZGF5IixbUVhdOiJUb21vcnJvdyIsW2VxXToiWWVzdGVyZGF5IixbVFBdOiJCbGFuayBjZWxscyIsW3RxXToiRmlsdGVyIGJ5IGNv'@; put 'bmRpdGlvbiIsW25xXToiRmlsdGVyIGJ5IHZhbHVlIixbcnFdOiJBbmQiLFtFUF06Ik9yIixbaXFdOiJTZWxlY3QgYWxsIixbYXFdOiJDbGVhciIsW3NxXToiT0siLFtvcV06IkNhbmNlbCIsW2xxXToiU2VhcmNoIixbY3FdOiJWYWx1ZSIsW3VxXToiU2Vjb25kIHZhbHVlIixbaHFdOiJDaGVj'@; put 'a2VkIixbZnFdOiJVbmNoZWNrZWQifSx5bnQ9VyxwcT1HM2UubGFuZ3VhZ2VDb2RlLHtyZWdpc3RlcjpibnQsZ2V0SXRlbTokM2UsaGFzSXRlbTpfbnQsZ2V0VmFsdWVzOndudH09VTIoImxhbmd1YWdlc0RpY3Rpb25hcmllcyIpO2Z1bmN0aW9uIEszZShjLGwpe2xldCBhPWMsZD1sO3JldHVy'@; put 'biBYcyhjKSYmKGQ9YyxhPWQubGFuZ3VhZ2VDb2RlKSxmdW5jdGlvbiBDbnQoYyxsKXtjIT09cHEmJmZ1bmN0aW9uIGRudChjLGwpe3FzKGwsKGEsZCk9PntiYyhjW2RdKSYmKGNbZF09YSl9KX0obCwkM2UocHEpKX0oYSxkKSxibnQoYSxwMShkKSkscDEoZCl9ZnVuY3Rpb24gWDNlKGMpe3Jl'@; put 'dHVybiBncShjKT9wMSgkM2UoYykpOm51bGx9ZnVuY3Rpb24gZ3EoYyl7cmV0dXJuIF9udChjKX1mdW5jdGlvbiBxM2UoYyxsLGEpe2NvbnN0IGQ9WDNlKGMpO2lmKG51bGw9PT1kKXJldHVybiBudWxsO2NvbnN0IGg9ZFtsXTtpZihiYyhoKSlyZXR1cm4gbnVsbDtjb25zdCBmPWZ1bmN0aW9u'@; put 'IE1udChjLGwpe2xldCBhPWM7cmV0dXJuIEtuKGZ1bmN0aW9uIG1udCgpe3JldHVybiBwbnQoKX0oKSxkPT57YT1kKGMsbCl9KSxhfShoLGEpO3JldHVybiBBcnJheS5pc0FycmF5KGYpP2ZbMF06Zn1LM2UoRzNlKTtjb25zdCBKM2U9ImFjdGl2ZS1oZWFkZXIiLG1xPSJoZWFkZXIiLHZxPSJh'@; put 'cmVhIixBUD0iZm9jdXMiO2NsYXNzIFEzZXtjb25zdHJ1Y3RvcihsLGEpe3RoaXMuc2V0dGluZ3M9bCx0aGlzLmNlbGxSYW5nZT1hfHxudWxsfWlzRW1wdHkoKXtyZXR1cm4gbnVsbD09PXRoaXMuY2VsbFJhbmdlfWFkZChsKXtyZXR1cm4gdGhpcy5pc0VtcHR5KCk/dGhpcy5jZWxsUmFuZ2U9'@; put 'dGhpcy5zZXR0aW5ncy5jcmVhdGVDZWxsUmFuZ2UobCk6dGhpcy5jZWxsUmFuZ2UuZXhwYW5kKGwpLHRoaXN9cmVwbGFjZShsLGEpe2lmKCF0aGlzLmlzRW1wdHkoKSl7aWYodGhpcy5jZWxsUmFuZ2UuZnJvbS5pc0VxdWFsKGwpKXJldHVybiB0aGlzLmNlbGxSYW5nZS5mcm9tPWEsITA7aWYo'@; put 'dGhpcy5jZWxsUmFuZ2UudG8uaXNFcXVhbChsKSlyZXR1cm4gdGhpcy5jZWxsUmFuZ2UudG89YSwhMH1yZXR1cm4hMX1jbGVhcigpe3JldHVybiB0aGlzLmNlbGxSYW5nZT1udWxsLHRoaXN9Z2V0Q29ybmVycygpe2NvbnN0IGw9dGhpcy5jZWxsUmFuZ2UuZ2V0T3V0ZXJUb3BTdGFydENvcm5l'@; put 'cigpLGE9dGhpcy5jZWxsUmFuZ2UuZ2V0T3V0ZXJCb3R0b21FbmRDb3JuZXIoKTtyZXR1cm5bbC5yb3csbC5jb2wsYS5yb3csYS5jb2xdfWRlc3Ryb3koKXt0aGlzLnJ1bkxvY2FsSG9va3MoImRlc3Ryb3kiKX19eGwoUTNlLHkxKTtjb25zdCBEbnQ9UTNlO2NvbnN0IFNnPWNsYXNzIE9udCBl'@; put 'eHRlbmRzIERudHtjb25zdHJ1Y3RvcihsLGEpe3N1cGVyKGwsbnVsbCksZnVuY3Rpb24gSW50KGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBSbnQoYyl7dmFyIGw9ZnVuY3Rpb24gTG50KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1By'@; put 'aW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmlu'@; put 'ZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEs'@; put 'Y30odGhpcywidmlzdWFsQ2VsbFJhbmdlIixudWxsKSx0aGlzLnZpc3VhbENlbGxSYW5nZT1hfHxudWxsLHRoaXMuY29tbWl0KCl9YWRkKGwpe3JldHVybiBudWxsPT09dGhpcy52aXN1YWxDZWxsUmFuZ2U/dGhpcy52aXN1YWxDZWxsUmFuZ2U9dGhpcy5zZXR0aW5ncy5jcmVhdGVDZWxsUmFu'@; put 'Z2UobCk6dGhpcy52aXN1YWxDZWxsUmFuZ2UuZXhwYW5kKGwpLHRoaXN9Y2xlYXIoKXtyZXR1cm4gdGhpcy52aXN1YWxDZWxsUmFuZ2U9bnVsbCxzdXBlci5jbGVhcigpfXRyaW1Ub1Zpc2libGVDZWxsc1JhbmdlT25seShsKXtsZXR7ZnJvbTphLHRvOmR9PWwsaD10aGlzLmdldE5lYXJlc3RO'@; put 'b3RIaWRkZW5Db29yZHMoYSwxKSxmPXRoaXMuZ2V0TmVhcmVzdE5vdEhpZGRlbkNvb3JkcyhkLC0xKTtyZXR1cm4gbnVsbD09PWh8fG51bGw9PT1mP251bGw6KChoLnJvdz5mLnJvd3x8aC5jb2w+Zi5jb2wpJiYoaD1hLGY9ZCksdGhpcy5zZXR0aW5ncy5jcmVhdGVDZWxsUmFuZ2UoaCxoLGYp'@; put 'KX1nZXROZWFyZXN0Tm90SGlkZGVuQ29vcmRzKGwsYSl7bGV0IGQ9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOmE7Y29uc3QgaD10aGlzLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCh0aGlzLnNldHRpbmdzLnJvd0luZGV4TWFwcGVyLGwu'@; put 'cm93LGEpO2lmKG51bGw9PT1oKXJldHVybiBudWxsO2NvbnN0IGY9dGhpcy5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgodGhpcy5zZXR0aW5ncy5jb2x1bW5JbmRleE1hcHBlcixsLmNvbCxkKTtyZXR1cm4gbnVsbD09PWY/bnVsbDp0aGlzLnNldHRpbmdzLmNyZWF0ZUNlbGxDb29yZHMoaCxm'@; put 'KX1nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgobCxhLGQpe3JldHVybiBhPDA/YTpsLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChhLGQpfWNvbW1pdCgpe2lmKG51bGw9PT10aGlzLnZpc3VhbENlbGxSYW5nZSlyZXR1cm4gdGhpcztjb25zdCBsPXRoaXMudHJpbVRvVmlzaWJsZUNlbGxzUmFu'@; put 'Z2VPbmx5KHRoaXMudmlzdWFsQ2VsbFJhbmdlKTtyZXR1cm4gdGhpcy5jZWxsUmFuZ2U9bnVsbD09PWw/bnVsbDp0aGlzLmNyZWF0ZVJlbmRlcmFibGVDZWxsUmFuZ2UobC5mcm9tLGwudG8pLHRoaXN9c3luY1dpdGgobCl7Y29uc3QgYT1sLmZyb20uY2xvbmUoKS5ub3JtYWxpemUoKSxkPSJO'@; put 'LVMiPT09bC5nZXRWZXJ0aWNhbERpcmVjdGlvbigpPzE6LTEsaD0iVy1FIj09PWwuZ2V0SG9yaXpvbnRhbERpcmVjdGlvbigpPzE6LTEsZj10aGlzLnNldHRpbmdzLnZpc3VhbFRvUmVuZGVyYWJsZUNvb3Jkcyh0aGlzLnZpc3VhbENlbGxSYW5nZS5oaWdobGlnaHQpO2xldCB2PW51bGw7aWYo'@; put 'KG51bGw9PT1mfHxudWxsPT09Zi5jb2x8fG51bGw9PT1mLnJvdykmJih2PXRoaXMuZ2V0TmVhcmVzdE5vdEhpZGRlbkNvb3JkcyhhLGQsaCkpLG51bGwhPT12JiZsLm92ZXJsYXBzKHYpKXtjb25zdCBNPWwuaGlnaGxpZ2h0LmNsb25lKCk7aWYoTS5yb3c+PTAmJihNLnJvdz12LnJvdyksTS5j'@; put 'b2w+PTAmJihNLmNvbD12LmNvbCksbnVsbD09PXRoaXMuY2VsbFJhbmdlKXtjb25zdCBJPXRoaXMuc2V0dGluZ3MudmlzdWFsVG9SZW5kZXJhYmxlQ29vcmRzKE0pO3RoaXMuY2VsbFJhbmdlPXRoaXMuc2V0dGluZ3MuY3JlYXRlQ2VsbFJhbmdlKEkpfWwuc2V0SGlnaGxpZ2h0KE0pfXJldHVy'@; put 'biJmb2N1cyI9PT10aGlzLnNldHRpbmdzLnNlbGVjdGlvblR5cGUmJm51bGwhPT1mJiZudWxsPT09diYmbC5zZXRIaWdobGlnaHQodGhpcy52aXN1YWxDZWxsUmFuZ2UuaGlnaGxpZ2h0KSx0aGlzfWdldENvcm5lcnMoKXtjb25zdHtmcm9tOmwsdG86YX09dGhpcy5jZWxsUmFuZ2U7cmV0dXJu'@; put 'W01hdGgubWluKGwucm93LGEucm93KSxNYXRoLm1pbihsLmNvbCxhLmNvbCksTWF0aC5tYXgobC5yb3csYS5yb3cpLE1hdGgubWF4KGwuY29sLGEuY29sKV19Z2V0VmlzdWFsQ29ybmVycygpe2NvbnN0IGw9dGhpcy5zZXR0aW5ncy5yZW5kZXJhYmxlVG9WaXN1YWxDb29yZHModGhpcy5jZWxs'@; put 'UmFuZ2UuZ2V0VG9wU3RhcnRDb3JuZXIoKSksYT10aGlzLnNldHRpbmdzLnJlbmRlcmFibGVUb1Zpc3VhbENvb3Jkcyh0aGlzLmNlbGxSYW5nZS5nZXRCb3R0b21FbmRDb3JuZXIoKSk7cmV0dXJuW2wucm93LGwuY29sLGEucm93LGEuY29sXX1jcmVhdGVSZW5kZXJhYmxlQ2VsbFJhbmdlKGws'@; put 'YSl7Y29uc3QgZD10aGlzLnNldHRpbmdzLnZpc3VhbFRvUmVuZGVyYWJsZUNvb3JkcyhsKSxoPXRoaXMuc2V0dGluZ3MudmlzdWFsVG9SZW5kZXJhYmxlQ29vcmRzKGEpO3JldHVybiBudWxsPT09ZC5yb3d8fG51bGw9PT1kLmNvbHx8bnVsbD09PWgucm93fHxudWxsPT09aC5jb2w/bnVsbDp0'@; put 'aGlzLnNldHRpbmdzLmNyZWF0ZUNlbGxSYW5nZShkLGQsaCl9fTtmdW5jdGlvbiB5cShjKXtsZXR7YWN0aXZlSGVhZGVyQ2xhc3NOYW1lOmwsLi4uYX09YztyZXR1cm4gbmV3IFNnKHtjbGFzc05hbWU6bCwuLi5hLHNlbGVjdGlvblR5cGU6SjNlfSl9ZnVuY3Rpb24gUG50KGMpe2xldHthcmVh'@; put 'Q29ybmVyVmlzaWJsZTpsLC4uLmF9PWM7cmV0dXJuIG5ldyBTZyh7Y2xhc3NOYW1lOiJhcmVhIixjcmVhdGVMYXllcnM6ITAsYm9yZGVyOnt3aWR0aDoxLGNvbG9yOiIjNGI4OWZmIixjb3JuZXJWaXNpYmxlOmx9LC4uLmEsc2VsZWN0aW9uVHlwZTp2cX0pfWZ1bmN0aW9uIEZudChjKXtsZXR7'@; put 'Li4ubH09YztyZXR1cm4gbmV3IFNnKHtjbGFzc05hbWU6ImhpZ2hsaWdodCIsLi4ubCxzZWxlY3Rpb25UeXBlOnZxfSl9ZnVuY3Rpb24gSG50KGMpe2xldHtjb2x1bW5DbGFzc05hbWU6bCwuLi5hfT1jO3JldHVybiBuZXcgU2coe2NsYXNzTmFtZTpsLC4uLmEsc2VsZWN0aW9uVHlwZToiY29s'@; put 'dW1uIn0pfWZ1bmN0aW9uIGVwZShjKXtsZXR7aGVhZGVyQ2xhc3NOYW1lOmwsLi4uYX09YztyZXR1cm4gbmV3IFNnKHtjbGFzc05hbWU6bCwuLi5hLHNlbGVjdGlvblR5cGU6bXF9KX1mdW5jdGlvbiBqbnQoYyl7bGV0e3Jvd0NsYXNzTmFtZTpsLC4uLmF9PWM7cmV0dXJuIG5ldyBTZyh7Y2xh'@; put 'c3NOYW1lOmwsLi4uYSxzZWxlY3Rpb25UeXBlOiJyb3cifSl9ZnVuY3Rpb24gamQoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIFpudChjKXt2YXIgbD1mdW5jdGlvbiBXbnQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZl'@; put 'XTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/'@; put 'U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWZ1bmN0'@; put 'aW9uIE1nKGMsbCxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhsKSlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzP2w6YTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGVsZW1lbnQgaXMgbm90IHByZXNlbnQgb24gdGhpcyBvYmplY3QiKX12YXIgT3A9bmV3IFdl'@; put 'YWtTZXQ7Y2xhc3MgWW50e2NvbnN0cnVjdG9yKGwpeyhmdW5jdGlvbiB6bnQoYyxsKXsoZnVuY3Rpb24gVW50KGMsbCl7aWYobC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3Qi'@; put 'KX0pKGMsbCksbC5hZGQoYyl9KSh0aGlzLE9wKSxqZCh0aGlzLCJvcHRpb25zIix2b2lkIDApLGpkKHRoaXMsImxheWVyTGV2ZWwiLDApLGpkKHRoaXMsImZvY3VzIix2b2lkIDApLGpkKHRoaXMsImZpbGwiLHZvaWQgMCksamQodGhpcywibGF5ZXJlZEFyZWFzIixuZXcgTWFwKSxqZCh0aGlz'@; put 'LCJhcmVhcyIsbmV3IE1hcCksamQodGhpcywicm93SGVhZGVycyIsbmV3IE1hcCksamQodGhpcywiY29sdW1uSGVhZGVycyIsbmV3IE1hcCksamQodGhpcywiYWN0aXZlUm93SGVhZGVycyIsbmV3IE1hcCksamQodGhpcywiYWN0aXZlQ29sdW1uSGVhZGVycyIsbmV3IE1hcCksamQodGhpcywi'@; put 'YWN0aXZlQ29ybmVySGVhZGVycyIsbmV3IE1hcCksamQodGhpcywicm93SGlnaGxpZ2h0cyIsbmV3IE1hcCksamQodGhpcywiY29sdW1uSGlnaGxpZ2h0cyIsbmV3IE1hcCksamQodGhpcywiY3VzdG9tU2VsZWN0aW9ucyIsW10pLHRoaXMub3B0aW9ucz1sLHRoaXMuZm9jdXM9ZnVuY3Rpb24g'@; put 'Tm50KGMpe2xldHtjZWxsQ29ybmVyVmlzaWJsZTpsLC4uLmF9PWM7cmV0dXJuIG5ldyBTZyh7Y2xhc3NOYW1lOiJjdXJyZW50IixoZWFkZXJBdHRyaWJ1dGVzOltbImFyaWEtc2VsZWN0ZWQiLCJ0cnVlIl1dLGJvcmRlcjp7d2lkdGg6Mixjb2xvcjoiIzRiODlmZiIsY29ybmVyVmlzaWJsZTps'@; put 'fSwuLi5hLHNlbGVjdGlvblR5cGU6QVB9KX0obCksdGhpcy5maWxsPWZ1bmN0aW9uIEJudChjKXtsZXR7Li4ubH09YztyZXR1cm4gbmV3IFNnKHtjbGFzc05hbWU6ImZpbGwiLGJvcmRlcjp7d2lkdGg6MSxjb2xvcjoiI2ZmMDAwMCJ9LC4uLmwsc2VsZWN0aW9uVHlwZToiZmlsbCJ9KX0obCl9'@; put 'aXNFbmFibGVkRm9yKGwsYSl7bGV0IGQ9bDtsPT09QVAmJihkPSJjdXJyZW50Iik7bGV0IGg9dGhpcy5vcHRpb25zLmRpc2FibGVkQ2VsbFNlbGVjdGlvbihhLnJvdyxhLmNvbCk7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBoJiYoaD1baF0pLCExPT09aHx8QXJyYXkuaXNBcnJheShoKSYmIWgu'@; put 'aW5jbHVkZXMoZCl9dXNlTGF5ZXJMZXZlbCgpe3JldHVybiB0aGlzLmxheWVyTGV2ZWw9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOjAsdGhpc31nZXRGb2N1cygpe3JldHVybiB0aGlzLmZvY3VzfWdldEZpbGwoKXtyZXR1cm4gdGhpcy5m'@; put 'aWxsfWNyZWF0ZUxheWVyZWRBcmVhKCl7cmV0dXJuIE1nKE9wLHRoaXMseGcpLmNhbGwodGhpcyx0aGlzLmxheWVyZWRBcmVhcyxQbnQpfWdldExheWVyZWRBcmVhcygpe3JldHVyblsuLi50aGlzLmxheWVyZWRBcmVhcy52YWx1ZXMoKV19Y3JlYXRlQXJlYSgpe3JldHVybiBNZyhPcCx0aGlz'@; put 'LHhnKS5jYWxsKHRoaXMsdGhpcy5hcmVhcyxGbnQpfWdldEFyZWFzKCl7cmV0dXJuWy4uLnRoaXMuYXJlYXMudmFsdWVzKCldfWNyZWF0ZVJvd0hlYWRlcigpe3JldHVybiBNZyhPcCx0aGlzLHhnKS5jYWxsKHRoaXMsdGhpcy5yb3dIZWFkZXJzLGVwZSl9Z2V0Um93SGVhZGVycygpe3JldHVy'@; put 'blsuLi50aGlzLnJvd0hlYWRlcnMudmFsdWVzKCldfWNyZWF0ZUNvbHVtbkhlYWRlcigpe3JldHVybiBNZyhPcCx0aGlzLHhnKS5jYWxsKHRoaXMsdGhpcy5jb2x1bW5IZWFkZXJzLGVwZSl9Z2V0Q29sdW1uSGVhZGVycygpe3JldHVyblsuLi50aGlzLmNvbHVtbkhlYWRlcnMudmFsdWVzKCld'@; put 'fWNyZWF0ZUFjdGl2ZVJvd0hlYWRlcigpe3JldHVybiBNZyhPcCx0aGlzLHhnKS5jYWxsKHRoaXMsdGhpcy5hY3RpdmVSb3dIZWFkZXJzLHlxKX1nZXRBY3RpdmVSb3dIZWFkZXJzKCl7cmV0dXJuWy4uLnRoaXMuYWN0aXZlUm93SGVhZGVycy52YWx1ZXMoKV19Y3JlYXRlQWN0aXZlQ29sdW1u'@; put 'SGVhZGVyKCl7cmV0dXJuIE1nKE9wLHRoaXMseGcpLmNhbGwodGhpcyx0aGlzLmFjdGl2ZUNvbHVtbkhlYWRlcnMseXEpfWdldEFjdGl2ZUNvbHVtbkhlYWRlcnMoKXtyZXR1cm5bLi4udGhpcy5hY3RpdmVDb2x1bW5IZWFkZXJzLnZhbHVlcygpXX1jcmVhdGVBY3RpdmVDb3JuZXJIZWFkZXIo'@; put 'KXtyZXR1cm4gTWcoT3AsdGhpcyx4ZykuY2FsbCh0aGlzLHRoaXMuYWN0aXZlQ29ybmVySGVhZGVycyx5cSl9Z2V0QWN0aXZlQ29ybmVySGVhZGVycygpe3JldHVyblsuLi50aGlzLmFjdGl2ZUNvcm5lckhlYWRlcnMudmFsdWVzKCldfWNyZWF0ZVJvd0hpZ2hsaWdodCgpe3JldHVybiBNZyhP'@; put 'cCx0aGlzLHhnKS5jYWxsKHRoaXMsdGhpcy5yb3dIaWdobGlnaHRzLGpudCl9Z2V0Um93SGlnaGxpZ2h0cygpe3JldHVyblsuLi50aGlzLnJvd0hpZ2hsaWdodHMudmFsdWVzKCldfWNyZWF0ZUNvbHVtbkhpZ2hsaWdodCgpe3JldHVybiBNZyhPcCx0aGlzLHhnKS5jYWxsKHRoaXMsdGhpcy5j'@; put 'b2x1bW5IaWdobGlnaHRzLEhudCl9Z2V0Q29sdW1uSGlnaGxpZ2h0cygpe3JldHVyblsuLi50aGlzLmNvbHVtbkhpZ2hsaWdodHMudmFsdWVzKCldfWdldEN1c3RvbVNlbGVjdGlvbnMoKXtyZXR1cm5bLi4udGhpcy5jdXN0b21TZWxlY3Rpb25zLnZhbHVlcygpXX1hZGRDdXN0b21TZWxlY3Rp'@; put 'b24obCl7dGhpcy5jdXN0b21TZWxlY3Rpb25zLnB1c2goZnVuY3Rpb24gVm50KGMpe2xldHtib3JkZXI6bCx2aXN1YWxDZWxsUmFuZ2U6YSwuLi5kfT1jO3JldHVybiBuZXcgU2coey4uLmwsLi4uZCxzZWxlY3Rpb25UeXBlOiJjdXN0b20tc2VsZWN0aW9uIn0sYSl9KHsuLi50aGlzLm9wdGlv'@; put 'bnMsLi4ubH0pKX1jbGVhcigpe3RoaXMuZm9jdXMuY2xlYXIoKSx0aGlzLmZpbGwuY2xlYXIoKSxLbih0aGlzLmFyZWFzLnZhbHVlcygpLGw9PntsLmNsZWFyKCl9KSxLbih0aGlzLmxheWVyZWRBcmVhcy52YWx1ZXMoKSxsPT57bC5jbGVhcigpfSksS24odGhpcy5yb3dIZWFkZXJzLnZhbHVl'@; put 'cygpLGw9PntsLmNsZWFyKCl9KSxLbih0aGlzLmNvbHVtbkhlYWRlcnMudmFsdWVzKCksbD0+e2wuY2xlYXIoKX0pLEtuKHRoaXMuYWN0aXZlUm93SGVhZGVycy52YWx1ZXMoKSxsPT57bC5jbGVhcigpfSksS24odGhpcy5hY3RpdmVDb2x1bW5IZWFkZXJzLnZhbHVlcygpLGw9PntsLmNsZWFy'@; put 'KCl9KSxLbih0aGlzLmFjdGl2ZUNvcm5lckhlYWRlcnMudmFsdWVzKCksbD0+e2wuY2xlYXIoKX0pLEtuKHRoaXMucm93SGlnaGxpZ2h0cy52YWx1ZXMoKSxsPT57bC5jbGVhcigpfSksS24odGhpcy5jb2x1bW5IaWdobGlnaHRzLnZhbHVlcygpLGw9PntsLmNsZWFyKCl9KX1bU3ltYm9sLml0'@; put 'ZXJhdG9yXSgpe3JldHVyblt0aGlzLmZvY3VzLHRoaXMuZmlsbCwuLi50aGlzLmFyZWFzLnZhbHVlcygpLC4uLnRoaXMubGF5ZXJlZEFyZWFzLnZhbHVlcygpLC4uLnRoaXMucm93SGVhZGVycy52YWx1ZXMoKSwuLi50aGlzLmNvbHVtbkhlYWRlcnMudmFsdWVzKCksLi4udGhpcy5hY3RpdmVS'@; put 'b3dIZWFkZXJzLnZhbHVlcygpLC4uLnRoaXMuYWN0aXZlQ29sdW1uSGVhZGVycy52YWx1ZXMoKSwuLi50aGlzLmFjdGl2ZUNvcm5lckhlYWRlcnMudmFsdWVzKCksLi4udGhpcy5yb3dIaWdobGlnaHRzLnZhbHVlcygpLC4uLnRoaXMuY29sdW1uSGlnaGxpZ2h0cy52YWx1ZXMoKSwuLi50aGlz'@; put 'LmN1c3RvbVNlbGVjdGlvbnNdW1N5bWJvbC5pdGVyYXRvcl0oKX19ZnVuY3Rpb24geGcoYyxsKXtjb25zdCBhPXRoaXMubGF5ZXJMZXZlbDtpZihjLmhhcyhhKSlyZXR1cm4gYy5nZXQoYSk7Y29uc3QgZD1sKHtsYXllckxldmVsOmEsLi4udGhpcy5vcHRpb25zfSk7cmV0dXJuIGMuc2V0KGEs'@; put 'ZCksZH1jb25zdCBHbnQ9WW50O2Z1bmN0aW9uIHRwZShjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gJG50KGMpe3ZhciBsPWZ1bmN0aW9uIEtudChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEp'@; put 'e3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShj'@; put 'KX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9Y2xhc3MgYnF7Y29uc3RydWN0b3Io'@; put 'bCl7dHBlKHRoaXMsInJhbmdlcyIsW10pLHRwZSh0aGlzLCJjcmVhdGVDZWxsUmFuZ2UiLHZvaWQgMCksdGhpcy5jcmVhdGVDZWxsUmFuZ2U9bH1pc0VtcHR5KCl7cmV0dXJuIDA9PT10aGlzLnNpemUoKX1zZXQobCl7cmV0dXJuIHRoaXMuY2xlYXIoKSx0aGlzLnJhbmdlcy5wdXNoKHRoaXMu'@; put 'Y3JlYXRlQ2VsbFJhbmdlKGwpKSx0aGlzfWFkZChsKXtyZXR1cm4gdGhpcy5yYW5nZXMucHVzaCh0aGlzLmNyZWF0ZUNlbGxSYW5nZShsKSksdGhpc31wb3AoKXtyZXR1cm4gdGhpcy5yYW5nZXMucG9wKCl9Y3VycmVudCgpe3JldHVybiB0aGlzLnBlZWtCeUluZGV4KHRoaXMuc2l6ZSgpLTEp'@; put 'fXByZXZpb3VzKCl7cmV0dXJuIHRoaXMucGVla0J5SW5kZXgodGhpcy5zaXplKCktMil9aW5jbHVkZXMobCl7bGV0IGE9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOigpPT4hMDtyZXR1cm4gdGhpcy5yYW5nZXMuc29tZSgoZCxoKT0+ZC5p'@; put 'bmNsdWRlcyhsKSYmYShkLGgpKX1maW5kQWxsKGwpe2NvbnN0IGE9W107cmV0dXJuIHRoaXMucmFuZ2VzLmZvckVhY2goKGQsaCk9PntkLmlzRXF1YWwobCkmJmEucHVzaCh7cmFuZ2U6ZCxsYXllcjpofSl9KSxhfXJlbW92ZShsKXtyZXR1cm4gdGhpcy5yYW5nZXM9dGhpcy5yYW5nZXMuZmls'@; put 'dGVyKGE9PiFsLnNvbWUoZD0+ZC5pc0VxdWFsKGEpKSksdGhpc31yZW1vdmVMYXllcnMobCl7cmV0dXJuIHRoaXMucmFuZ2VzPXRoaXMucmFuZ2VzLmZpbHRlcigoYSxkKT0+IWwuaW5jbHVkZXMoZCkpLHRoaXN9Y2xlYXIoKXtyZXR1cm4gdGhpcy5yYW5nZXMubGVuZ3RoPTAsdGhpc31zaXpl'@; put 'KCl7cmV0dXJuIHRoaXMucmFuZ2VzLmxlbmd0aH1jbG9uZSgpe2NvbnN0IGw9bmV3IGJxKHRoaXMuY3JlYXRlQ2VsbFJhbmdlKTtyZXR1cm4gbC5yYW5nZXM9dGhpcy5yYW5nZXMubWFwKGE9PmEuY2xvbmUoKSksbH1tYXAobCl7cmV0dXJuIHRoaXMucmFuZ2VzPXRoaXMucmFuZ2VzLm1hcCgo'@; put 'YSxkKT0+bChhLGQpKSx0aGlzfXBlZWtCeUluZGV4KCl7bGV0IGEsbD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MDtyZXR1cm4gbD49MCYmbDx0aGlzLnNpemUoKSYmKGE9dGhpcy5yYW5nZXNbbF0pLGF9W1N5bWJvbC5pdGVyYXRvcl0o'@; put 'KXtyZXR1cm4gdGhpcy5yYW5nZXNbU3ltYm9sLml0ZXJhdG9yXSgpfX1jb25zdCBYbnQ9YnE7ZnVuY3Rpb24gX3EoYyxsLGEpe25wZShjLGwpLGwuc2V0KGMsYSl9ZnVuY3Rpb24gbnBlKGMsbCl7aWYobC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhl'@; put 'IHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX1mdW5jdGlvbiBCbyhjLGwpe3JldHVybiBjLmdldChYdShjLGwpKX1mdW5jdGlvbiBrUChjLGwsYSl7cmV0dXJuIGMuc2V0KFh1KGMsbCksYSksYX1mdW5jdGlvbiBYdShjLGwsYSl7aWYoImZ1bmN0aW9uIj09dHlw'@; put 'ZW9mIGM/Yz09PWw6Yy5oYXMobCkpcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mz9sOmE7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBlbGVtZW50IGlzIG5vdCBwcmVzZW50IG9uIHRoaXMgb2JqZWN0Iil9dmFyIERQPW5ldyBXZWFrTWFwLGNjPW5ldyBXZWFrTWFwLGgzPW5ldyBXZWFr'@; put 'TWFwLGgwPW5ldyBXZWFrU2V0O2NsYXNzIHJwZXtjb25zdHJ1Y3RvcihsLGEpeyhmdW5jdGlvbiBxbnQoYyxsKXtucGUoYyxsKSxsLmFkZChjKX0pKHRoaXMsaDApLF9xKHRoaXMsRFAsdm9pZCAwKSxfcSh0aGlzLGNjLHZvaWQgMCksX3EodGhpcyxoMyx7eDowLHk6MH0pLGtQKERQLHRoaXMs'@; put 'bCksa1AoY2MsdGhpcyxhKX10cmFuc2Zvcm1TdGFydChsLGEpe2xldCBkPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl07Y29uc3QgaD1CbyhjYyx0aGlzKS5jcmVhdGVDZWxsQ29vcmRzKGwsYSk7bGV0IGY9Qm8oRFAsdGhpcykuY3VycmVu'@; put 'dCgpLmhpZ2hsaWdodDtjb25zdCB2PUJvKGNjLHRoaXMpLnZpc3VhbFRvUmVuZGVyYWJsZUNvb3JkcyhmKTtsZXQgTT0wLEk9MDtpZih0aGlzLnJ1bkxvY2FsSG9va3MoImJlZm9yZVRyYW5zZm9ybVN0YXJ0IixoKSxudWxsIT09di5yb3cmJm51bGwhPT12LmNvbCl7Y29uc3R7d2lkdGg6Ryxo'@; put 'ZWlnaHQ6cmV9PVh1KGgwLHRoaXMsYXBlKS5jYWxsKHRoaXMpLHtyb3c6dWUsY29sOnllfT1YdShoMCx0aGlzLHNwZSkuY2FsbCh0aGlzLGYpLEVlPUJvKGNjLHRoaXMpLmZpeGVkUm93c0JvdHRvbSgpLEJlPUJvKGNjLHRoaXMpLm1pblNwYXJlUm93cygpLEdlPUJvKGNjLHRoaXMpLm1pblNw'@; put 'YXJlQ29scygpLHN0PUJvKGNjLHRoaXMpLmF1dG9XcmFwUm93KCkscHQ9Qm8oY2MsdGhpcykuYXV0b1dyYXBDb2woKSxkdD1CbyhjYyx0aGlzKS5jcmVhdGVDZWxsQ29vcmRzKHVlK2gucm93LHllK2guY29sKTtpZihkdC5yb3c+PXJlKXtjb25zdCB3bj1GZChkJiZCZT4wJiYwPT09RWUpLGhu'@; put 'PWR0LmNvbCsxLE1uPUJvKGNjLHRoaXMpLmNyZWF0ZUNlbGxDb29yZHMoZHQucm93LXJlLGhuPj1HP2huLUc6aG4pO3RoaXMucnVuTG9jYWxIb29rcygiYmVmb3JlQ29sdW1uV3JhcCIsd24sWHUoaDAsdGhpcyxNXykuY2FsbCh0aGlzLE1uKSxobj49Ryksd24udmFsdWU/dGhpcy5ydW5Mb2Nh'@; put 'bEhvb2tzKCJpbnNlcnRSb3dSZXF1aXJlIixCbyhjYyx0aGlzKS5jb3VudFJlbmRlcmFibGVSb3dzKCkpOnB0JiZkdC5hc3NpZ24oTW4pfWVsc2UgaWYoZHQucm93PDApe2NvbnN0IHduPUZkKHB0KSxobj1kdC5jb2wtMSxNbj1CbyhjYyx0aGlzKS5jcmVhdGVDZWxsQ29vcmRzKHJlK2R0LnJv'@; put 'dyxobjwwP0craG46aG4pO3RoaXMucnVuTG9jYWxIb29rcygiYmVmb3JlQ29sdW1uV3JhcCIsd24sWHUoaDAsdGhpcyxNXykuY2FsbCh0aGlzLE1uKSxobjwwKSxwdCYmZHQuYXNzaWduKE1uKX1pZihkdC5jb2w+PUcpe2NvbnN0IHduPUZkKGQmJkdlPjApLGhuPWR0LnJvdysxLE1uPUJvKGNj'@; put 'LHRoaXMpLmNyZWF0ZUNlbGxDb29yZHMoaG4+PXJlP2huLXJlOmhuLGR0LmNvbC1HKTt0aGlzLnJ1bkxvY2FsSG9va3MoImJlZm9yZVJvd1dyYXAiLHduLFh1KGgwLHRoaXMsTV8pLmNhbGwodGhpcyxNbiksaG4+PXJlKSx3bi52YWx1ZT90aGlzLnJ1bkxvY2FsSG9va3MoImluc2VydENvbFJl'@; put 'cXVpcmUiLEJvKGNjLHRoaXMpLmNvdW50UmVuZGVyYWJsZUNvbHVtbnMoKSk6c3QmJmR0LmFzc2lnbihNbil9ZWxzZSBpZihkdC5jb2w8MCl7Y29uc3Qgd249RmQoc3QpLGhuPWR0LnJvdy0xLE1uPUJvKGNjLHRoaXMpLmNyZWF0ZUNlbGxDb29yZHMoaG48MD9yZStobjpobixHK2R0LmNvbCk7'@; put 'dGhpcy5ydW5Mb2NhbEhvb2tzKCJiZWZvcmVSb3dXcmFwIix3bixYdShoMCx0aGlzLE1fKS5jYWxsKHRoaXMsTW4pLGhuPDApLHN0JiZkdC5hc3NpZ24oTW4pfWNvbnN0e3Jvd0RpcjpxdCxjb2xEaXI6bW59PVh1KGgwLHRoaXMsaXBlKS5jYWxsKHRoaXMsZHQpO009cXQsST1tbixmPVh1KGgw'@; put 'LHRoaXMsTV8pLmNhbGwodGhpcyxkdCl9cmV0dXJuIHRoaXMucnVuTG9jYWxIb29rcygiYWZ0ZXJUcmFuc2Zvcm1TdGFydCIsZixNLEkpLGZ9dHJhbnNmb3JtRW5kKGwsYSl7Y29uc3QgZD1CbyhjYyx0aGlzKS5jcmVhdGVDZWxsQ29vcmRzKGwsYSksaD1CbyhEUCx0aGlzKS5jdXJyZW50KCks'@; put 'Zj1CbyhjYyx0aGlzKS52aXN1YWxUb1JlbmRlcmFibGVDb29yZHMoaC5oaWdobGlnaHQpLHY9WHUoaDAsdGhpcyx3cSkuY2FsbCh0aGlzLGgudG8ucm93LGguZnJvbS5yb3cpLE09WHUoaDAsdGhpcyxDcSkuY2FsbCh0aGlzLGgudG8uY29sLGguZnJvbS5jb2wpLEk9aC50by5jbG9uZSgpO2xl'@; put 'dCBHPTAscmU9MDtpZih0aGlzLnJ1bkxvY2FsSG9va3MoImJlZm9yZVRyYW5zZm9ybUVuZCIsZCksbnVsbCE9PWYucm93JiZudWxsIT09Zi5jb2wmJm51bGwhPT12JiZudWxsIT09TSl7Y29uc3R7cm93OnVlLGNvbDp5ZX09WHUoaDAsdGhpcyxzcGUpLmNhbGwodGhpcyxoLmhpZ2hsaWdodCks'@; put 'RWU9Qm8oY2MsdGhpcykuY3JlYXRlQ2VsbENvb3Jkcyh2K2Qucm93LE0rZC5jb2wpLEJlPWguZ2V0VG9wU3RhcnRDb3JuZXIoKSxHZT1oLmdldFRvcEVuZENvcm5lcigpLHN0PWguZ2V0Qm90dG9tRW5kQ29ybmVyKCk7aWYoZC5jb2w8MCYmTT49eWUmJkVlLmNvbDx5ZSl7Y29uc3QgbW49RWUu'@; put 'Y29sLXllO0VlLmNvbD1YdShoMCx0aGlzLENxKS5jYWxsKHRoaXMsQmUuY29sLEdlLmNvbCkrbW59ZWxzZSBpZihkLmNvbD4wJiZNPD15ZSYmRWUuY29sPnllKXtjb25zdCBtbj1YdShoMCx0aGlzLENxKS5jYWxsKHRoaXMsR2UuY29sLEJlLmNvbCksd249TWF0aC5tYXgoRWUuY29sLW1uLDEp'@; put 'O0VlLmNvbD1tbit3bn1pZihkLnJvdzwwJiZ2Pj11ZSYmRWUucm93PHVlKXtjb25zdCBtbj1FZS5yb3ctdWU7RWUucm93PVh1KGgwLHRoaXMsd3EpLmNhbGwodGhpcyxCZS5yb3csc3Qucm93KSttbn1lbHNlIGlmKGQucm93PjAmJnY8PXVlJiZFZS5yb3c+dWUpe2NvbnN0IG1uPVh1KGgwLHRo'@; put 'aXMsd3EpLmNhbGwodGhpcyxzdC5yb3csQmUucm93KSx3bj1NYXRoLm1heChFZS5yb3ctbW4sMSk7RWUucm93PW1uK3dufWNvbnN0e3Jvd0RpcjpwdCxjb2xEaXI6ZHR9PVh1KGgwLHRoaXMsaXBlKS5jYWxsKHRoaXMsRWUpO0c9cHQscmU9ZHQ7Y29uc3QgcXQ9WHUoaDAsdGhpcyxNXykuY2Fs'@; put 'bCh0aGlzLEVlKTswPT09ZC5yb3cmJjAhPT1kLmNvbD9JLmNvbD1xdC5jb2w6MCE9PWQucm93JiYwPT09ZC5jb2w/SS5yb3c9cXQucm93OihJLnJvdz1xdC5yb3csSS5jb2w9cXQuY29sKX1yZXR1cm4gdGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlclRyYW5zZm9ybUVuZCIsSSxHLHJlKSxJfXNl'@; put 'dE9mZnNldFNpemUobCl7bGV0e3g6YSx5OmR9PWw7a1AoaDMsdGhpcyx7eDphLHk6ZH0pfXJlc2V0T2Zmc2V0U2l6ZSgpe2tQKGgzLHRoaXMse3g6MCx5OjB9KX19ZnVuY3Rpb24gaXBlKGMpe2NvbnN0e3dpZHRoOmwsaGVpZ2h0OmF9PVh1KGgwLHRoaXMsYXBlKS5jYWxsKHRoaXMpO2xldCBk'@; put 'PTAsaD0wO3JldHVybiBjLnJvdzwwPyhkPS0xLGMucm93PTApOmMucm93PjAmJmMucm93Pj1hJiYoZD0xLGMucm93PWEtMSksYy5jb2w8MD8oaD0tMSxjLmNvbD0wKTpjLmNvbD4wJiZjLmNvbD49bCYmKGg9MSxjLmNvbD1sLTEpLHtyb3dEaXI6ZCxjb2xEaXI6aH19ZnVuY3Rpb24gYXBlKCl7'@; put 'cmV0dXJue3dpZHRoOkJvKGgzLHRoaXMpLngrQm8oY2MsdGhpcykuY291bnRSZW5kZXJhYmxlQ29sdW1ucygpLGhlaWdodDpCbyhoMyx0aGlzKS55K0JvKGNjLHRoaXMpLmNvdW50UmVuZGVyYWJsZVJvd3MoKX19ZnVuY3Rpb24gd3EoYyxsKXtjb25zdCBhPUJvKGNjLHRoaXMpLmZpbmRGaXJz'@; put 'dE5vbkhpZGRlblJlbmRlcmFibGVSb3coYyxsKTtyZXR1cm4gbnVsbD09PWE/bnVsbDpCbyhoMyx0aGlzKS55K2F9ZnVuY3Rpb24gQ3EoYyxsKXtjb25zdCBhPUJvKGNjLHRoaXMpLmZpbmRGaXJzdE5vbkhpZGRlblJlbmRlcmFibGVDb2x1bW4oYyxsKTtyZXR1cm4gbnVsbD09PWE/bnVsbDpC'@; put 'byhoMyx0aGlzKS54K2F9ZnVuY3Rpb24gc3BlKGMpe2NvbnN0e3JvdzpsLGNvbDphfT1CbyhjYyx0aGlzKS52aXN1YWxUb1JlbmRlcmFibGVDb29yZHMoYyk7aWYobnVsbD09PWx8fG51bGw9PT1hKXRocm93IG5ldyBFcnJvcigiUmVuZGVyYWJsZSBjb29yZHMgYXJlIG5vdCB2aXNpYmxlLiIp'@; put 'O3JldHVybiBCbyhjYyx0aGlzKS5jcmVhdGVDZWxsQ29vcmRzKEJvKGgzLHRoaXMpLnkrbCxCbyhoMyx0aGlzKS54K2EpfWZ1bmN0aW9uIE1fKGMpe2NvbnN0IGw9Yy5jbG9uZSgpO3JldHVybiBsLmNvbD1jLmNvbC1CbyhoMyx0aGlzKS54LGwucm93PWMucm93LUJvKGgzLHRoaXMpLnksQm8o'@; put 'Y2MsdGhpcykucmVuZGVyYWJsZVRvVmlzdWFsQ29vcmRzKGwpfXhsKHJwZSx5MSk7Y29uc3Qgb3BlPXJwZSxKbnQ9WzMsMl0sUW50PVtbIm51bWJlciJdLFsibnVtYmVyIiwic3RyaW5nIl0sWyJudW1iZXIiLCJ1bmRlZmluZWQiXSxbIm51bWJlciIsInN0cmluZyIsInVuZGVmaW5lZCJdXSxN'@; put 'cT1TeW1ib2woInJvb3QiKSxjcGU9U3ltYm9sKCJjaGlsZCIpO2Z1bmN0aW9uIHhfKGMpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpNcTtpZihsIT09TXEmJmwhPT1jcGUpdGhyb3cgbmV3IEVycm9yKCJUaGUgc2Vjb25kIGFy'@; put 'Z3VtZW50IGlzIHVzZWQgaW50ZXJuYWxseSBvbmx5IGFuZCBjYW5ub3QgYmUgb3ZlcndyaXR0ZW4uIik7Y29uc3QgYT1BcnJheS5pc0FycmF5KGMpLGQ9bD09PU1xO2xldCBoPTA7aWYoYSl7Y29uc3QgZj1jWzBdOzA9PT1jLmxlbmd0aD9oPTE6ZCYmZiBpbnN0YW5jZW9mIG1LP2g9MzpkJiZB'@; put 'cnJheS5pc0FycmF5KGYpP2g9eF8oZixjcGUpOmMubGVuZ3RoPj0yJiZjLmxlbmd0aDw9NCYmIWMuc29tZSgoTSxJKT0+IVFudFtJXS5pbmNsdWRlcyh0eXBlb2YgTSkpJiYoaD0yKX1yZXR1cm4gaH1mdW5jdGlvbiBlVChjKXtsZXR7Y3JlYXRlQ2VsbENvb3JkczpsLGNyZWF0ZUNlbGxSYW5n'@; put 'ZTphLGtlZXBEaXJlY3Rpb246ZD0hMSxwcm9wVG9Db2w6aH09YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O2lmKCFKbnQuaW5jbHVkZXMoYykpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBzZWxlY3Rpb24gcmFuZ2VzIHNjaGVt'@; put 'YSB0eXBlIHdhcyBwcm92aWRlZC4iKTtyZXR1cm4gZnVuY3Rpb24oZil7Y29uc3Qgdj0zPT09YztsZXQgTT12P2YuZnJvbS5yb3c6ZlswXSxJPXY/Zi5mcm9tLmNvbDpmWzFdLEc9dj9mLnRvLnJvdzpmWzJdLHJlPXY/Zi50by5jb2w6ZlszXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgaCYmKCJz'@; put 'dHJpbmciPT10eXBlb2YgSSYmKEk9aChJKSksInN0cmluZyI9PXR5cGVvZiByZSYmKHJlPWgocmUpKSksYmMoRykmJihHPU0pLGJjKHJlKSYmKHJlPUkpLCFkKXtjb25zdCBFZT1NLEJlPUksR2U9RyxzdD1yZTtNPU1hdGgubWluKEVlLEdlKSxJPU1hdGgubWluKEJlLHN0KSxHPU1hdGgubWF4'@; put 'KEVlLEdlKSxyZT1NYXRoLm1heChCZSxzdCl9Y29uc3QgdWU9bChNLEkpLHllPWwoRyxyZSk7cmV0dXJuIGEodWUsdWUseWUpfX1mdW5jdGlvbiBFXyhjLGwsYSl7KGZ1bmN0aW9uIG5ydChjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRo'@; put 'ZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShjLGwpLGwuc2V0KGMsYSl9ZnVuY3Rpb24gZTkoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIHJydChjKXt2YXIgbD1mdW5jdGlvbiBpcnQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBj'@; put 'O3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZh'@; put 'bHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3'@; put 'cml0YWJsZTohMH0pOmNbbF09YSxjfWZ1bmN0aW9uIF9jKGMsbCl7cmV0dXJuIGMuZ2V0KHVwZShjLGwpKX1mdW5jdGlvbiBQcChjLGwsYSl7cmV0dXJuIGMuc2V0KHVwZShjLGwpLGEpLGF9ZnVuY3Rpb24gdXBlKGMsbCxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhs'@; put 'KSlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzP2w6YTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGVsZW1lbnQgaXMgbm90IHByZXNlbnQgb24gdGhpcyBvYmplY3QiKX12YXIgYjE9bmV3IFdlYWtNYXAsdDk9bmV3IFdlYWtNYXAsTFA9bmV3IFdlYWtNYXAsdFQ9bmV3IFdlYWtNYXAs'@; put 'T1A9bmV3IFdlYWtNYXAsblQ9bmV3IFdlYWtNYXA7Y2xhc3MgZHBle2NvbnN0cnVjdG9yKGwsYSl7dmFyIGQ9dGhpcztlOSh0aGlzLCJzZXR0aW5ncyIsdm9pZCAwKSxlOSh0aGlzLCJ0YWJsZVByb3BzIix2b2lkIDApLGU5KHRoaXMsImluUHJvZ3Jlc3MiLCExKSxlOSh0aGlzLCJzZWxlY3Rl'@; put 'ZFJhbmdlIixuZXcgWG50KChoLGYsdik9PnRoaXMudGFibGVQcm9wcy5jcmVhdGVDZWxsUmFuZ2UoaCxmLHYpKSksZTkodGhpcywiaGlnaGxpZ2h0Iix2b2lkIDApLEVfKHRoaXMsYjEsdm9pZCAwKSxFXyh0aGlzLHQ5LHZvaWQgMCksZTkodGhpcywic2VsZWN0ZWRCeVJvd0hlYWRlciIsbmV3'@; put 'IFNldCksZTkodGhpcywic2VsZWN0ZWRCeUNvbHVtbkhlYWRlciIsbmV3IFNldCksRV8odGhpcyxMUCwhMSksRV8odGhpcyx0VCwhMSksRV8odGhpcyxPUCwidW5rbm93biIpLEVfKHRoaXMsblQsLTEpLHRoaXMuc2V0dGluZ3M9bCx0aGlzLnRhYmxlUHJvcHM9YSx0aGlzLmhpZ2hsaWdodD1u'@; put 'ZXcgR250KHtoZWFkZXJDbGFzc05hbWU6bC5jdXJyZW50SGVhZGVyQ2xhc3NOYW1lLGFjdGl2ZUhlYWRlckNsYXNzTmFtZTpsLmFjdGl2ZUhlYWRlckNsYXNzTmFtZSxyb3dDbGFzc05hbWU6bC5jdXJyZW50Um93Q2xhc3NOYW1lLGNvbHVtbkNsYXNzTmFtZTpsLmN1cnJlbnRDb2xDbGFzc05h'@; put 'bWUsY2VsbEF0dHJpYnV0ZXM6W1siYXJpYS1zZWxlY3RlZCIsInRydWUiXV0scm93SW5kZXhNYXBwZXI6dGhpcy50YWJsZVByb3BzLnJvd0luZGV4TWFwcGVyLGNvbHVtbkluZGV4TWFwcGVyOnRoaXMudGFibGVQcm9wcy5jb2x1bW5JbmRleE1hcHBlcixkaXNhYmxlZENlbGxTZWxlY3Rpb246'@; put 'KGgsZik9PnRoaXMudGFibGVQcm9wcy5pc0Rpc2FibGVkQ2VsbFNlbGVjdGlvbihoLGYpLGNlbGxDb3JuZXJWaXNpYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIGQuaXNDZWxsQ29ybmVyVmlzaWJsZSguLi5hcmd1bWVudHMpfSxhcmVhQ29ybmVyVmlzaWJsZTpmdW5jdGlvbigpe3JldHVybiBkLmlz'@; put 'QXJlYUNvcm5lclZpc2libGUoLi4uYXJndW1lbnRzKX0sdmlzdWFsVG9SZW5kZXJhYmxlQ29vcmRzOmg9PnRoaXMudGFibGVQcm9wcy52aXN1YWxUb1JlbmRlcmFibGVDb29yZHMoaCkscmVuZGVyYWJsZVRvVmlzdWFsQ29vcmRzOmg9PnRoaXMudGFibGVQcm9wcy5yZW5kZXJhYmxlVG9WaXN1'@; put 'YWxDb29yZHMoaCksY3JlYXRlQ2VsbENvb3JkczooaCxmKT0+dGhpcy50YWJsZVByb3BzLmNyZWF0ZUNlbGxDb29yZHMoaCxmKSxjcmVhdGVDZWxsUmFuZ2U6KGgsZix2KT0+dGhpcy50YWJsZVByb3BzLmNyZWF0ZUNlbGxSYW5nZShoLGYsdil9KSxQcChiMSx0aGlzLG5ldyBvcGUodGhpcy5z'@; put 'ZWxlY3RlZFJhbmdlLHtyb3dJbmRleE1hcHBlcjp0aGlzLnRhYmxlUHJvcHMucm93SW5kZXhNYXBwZXIsY29sdW1uSW5kZXhNYXBwZXI6dGhpcy50YWJsZVByb3BzLmNvbHVtbkluZGV4TWFwcGVyLGNvdW50UmVuZGVyYWJsZVJvd3M6KCk9PnRoaXMudGFibGVQcm9wcy5jb3VudFJlbmRlcmFi'@; put 'bGVSb3dzKCksY291bnRSZW5kZXJhYmxlQ29sdW1uczooKT0+dGhpcy50YWJsZVByb3BzLmNvdW50UmVuZGVyYWJsZUNvbHVtbnMoKSx2aXN1YWxUb1JlbmRlcmFibGVDb29yZHM6aD0+dGhpcy50YWJsZVByb3BzLnZpc3VhbFRvUmVuZGVyYWJsZUNvb3JkcyhoKSxyZW5kZXJhYmxlVG9WaXN1'@; put 'YWxDb29yZHM6aD0+dGhpcy50YWJsZVByb3BzLnJlbmRlcmFibGVUb1Zpc3VhbENvb3JkcyhoKSxmaW5kRmlyc3ROb25IaWRkZW5SZW5kZXJhYmxlUm93OmZ1bmN0aW9uKCl7cmV0dXJuIGQudGFibGVQcm9wcy5maW5kRmlyc3ROb25IaWRkZW5SZW5kZXJhYmxlUm93KC4uLmFyZ3VtZW50cyl9'@; put 'LGZpbmRGaXJzdE5vbkhpZGRlblJlbmRlcmFibGVDb2x1bW46ZnVuY3Rpb24oKXtyZXR1cm4gZC50YWJsZVByb3BzLmZpbmRGaXJzdE5vbkhpZGRlblJlbmRlcmFibGVDb2x1bW4oLi4uYXJndW1lbnRzKX0sY3JlYXRlQ2VsbENvb3JkczooaCxmKT0+dGhpcy50YWJsZVByb3BzLmNyZWF0ZUNl'@; put 'bGxDb29yZHMoaCxmKSxmaXhlZFJvd3NCb3R0b206KCk9PmwuZml4ZWRSb3dzQm90dG9tLG1pblNwYXJlUm93czooKT0+bC5taW5TcGFyZVJvd3MsbWluU3BhcmVDb2xzOigpPT5sLm1pblNwYXJlQ29scyxhdXRvV3JhcFJvdzooKT0+bC5hdXRvV3JhcFJvdyxhdXRvV3JhcENvbDooKT0+bC5h'@; put 'dXRvV3JhcENvbH0pKSxQcCh0OSx0aGlzLG5ldyBvcGUodGhpcy5zZWxlY3RlZFJhbmdlLHtyb3dJbmRleE1hcHBlcjp0aGlzLnRhYmxlUHJvcHMucm93SW5kZXhNYXBwZXIsY29sdW1uSW5kZXhNYXBwZXI6dGhpcy50YWJsZVByb3BzLmNvbHVtbkluZGV4TWFwcGVyLGNvdW50UmVuZGVyYWJs'@; put 'ZVJvd3M6KCk9Pntjb25zdCBoPXRoaXMuc2VsZWN0ZWRSYW5nZS5jdXJyZW50KCk7cmV0dXJuIHRoaXMudGFibGVQcm9wcy5jb3VudFJlbmRlcmFibGVSb3dzSW5SYW5nZSgwLGguZ2V0T3V0ZXJCb3R0b21FbmRDb3JuZXIoKS5yb3cpfSxjb3VudFJlbmRlcmFibGVDb2x1bW5zOigpPT57Y29u'@; put 'c3QgaD10aGlzLnNlbGVjdGVkUmFuZ2UuY3VycmVudCgpO3JldHVybiB0aGlzLnRhYmxlUHJvcHMuY291bnRSZW5kZXJhYmxlQ29sdW1uc0luUmFuZ2UoMCxoLmdldE91dGVyQm90dG9tRW5kQ29ybmVyKCkuY29sKX0sdmlzdWFsVG9SZW5kZXJhYmxlQ29vcmRzOmg9PnRoaXMudGFibGVQcm9w'@; put 'cy52aXN1YWxUb1JlbmRlcmFibGVDb29yZHMoaCkscmVuZGVyYWJsZVRvVmlzdWFsQ29vcmRzOmg9PnRoaXMudGFibGVQcm9wcy5yZW5kZXJhYmxlVG9WaXN1YWxDb29yZHMoaCksZmluZEZpcnN0Tm9uSGlkZGVuUmVuZGVyYWJsZVJvdzpmdW5jdGlvbigpe3JldHVybiBkLnRhYmxlUHJvcHMu'@; put 'ZmluZEZpcnN0Tm9uSGlkZGVuUmVuZGVyYWJsZVJvdyguLi5hcmd1bWVudHMpfSxmaW5kRmlyc3ROb25IaWRkZW5SZW5kZXJhYmxlQ29sdW1uOmZ1bmN0aW9uKCl7cmV0dXJuIGQudGFibGVQcm9wcy5maW5kRmlyc3ROb25IaWRkZW5SZW5kZXJhYmxlQ29sdW1uKC4uLmFyZ3VtZW50cyl9LGNy'@; put 'ZWF0ZUNlbGxDb29yZHM6KGgsZik9PnRoaXMudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKGgsZiksZml4ZWRSb3dzQm90dG9tOigpPT4wLG1pblNwYXJlUm93czooKT0+MCxtaW5TcGFyZUNvbHM6KCk9PjAsYXV0b1dyYXBSb3c6KCk9PiEwLGF1dG9XcmFwQ29sOigpPT4hMH0pKSxfYyhi'@; put 'MSx0aGlzKS5hZGRMb2NhbEhvb2soImJlZm9yZVRyYW5zZm9ybVN0YXJ0IixmdW5jdGlvbigpe2Zvcih2YXIgaD1hcmd1bWVudHMubGVuZ3RoLGY9bmV3IEFycmF5KGgpLHY9MDt2PGg7disrKWZbdl09YXJndW1lbnRzW3ZdO3JldHVybiBkLnJ1bkxvY2FsSG9va3MoImJlZm9yZU1vZGlmeVRy'@; put 'YW5zZm9ybVN0YXJ0IiwuLi5mKX0pLF9jKGIxLHRoaXMpLmFkZExvY2FsSG9vaygiYWZ0ZXJUcmFuc2Zvcm1TdGFydCIsZnVuY3Rpb24oKXtmb3IodmFyIGg9YXJndW1lbnRzLmxlbmd0aCxmPW5ldyBBcnJheShoKSx2PTA7djxoO3YrKylmW3ZdPWFyZ3VtZW50c1t2XTtyZXR1cm4gZC5ydW5M'@; put 'b2NhbEhvb2tzKCJhZnRlck1vZGlmeVRyYW5zZm9ybVN0YXJ0IiwuLi5mKX0pLF9jKGIxLHRoaXMpLmFkZExvY2FsSG9vaygiYmVmb3JlVHJhbnNmb3JtRW5kIixmdW5jdGlvbigpe2Zvcih2YXIgaD1hcmd1bWVudHMubGVuZ3RoLGY9bmV3IEFycmF5KGgpLHY9MDt2PGg7disrKWZbdl09YXJn'@; put 'dW1lbnRzW3ZdO3JldHVybiBkLnJ1bkxvY2FsSG9va3MoImJlZm9yZU1vZGlmeVRyYW5zZm9ybUVuZCIsLi4uZil9KSxfYyhiMSx0aGlzKS5hZGRMb2NhbEhvb2soImFmdGVyVHJhbnNmb3JtRW5kIixmdW5jdGlvbigpe2Zvcih2YXIgaD1hcmd1bWVudHMubGVuZ3RoLGY9bmV3IEFycmF5KGgp'@; put 'LHY9MDt2PGg7disrKWZbdl09YXJndW1lbnRzW3ZdO3JldHVybiBkLnJ1bkxvY2FsSG9va3MoImFmdGVyTW9kaWZ5VHJhbnNmb3JtRW5kIiwuLi5mKX0pLF9jKGIxLHRoaXMpLmFkZExvY2FsSG9vaygiaW5zZXJ0Um93UmVxdWlyZSIsZnVuY3Rpb24oKXtmb3IodmFyIGg9YXJndW1lbnRzLmxl'@; put 'bmd0aCxmPW5ldyBBcnJheShoKSx2PTA7djxoO3YrKylmW3ZdPWFyZ3VtZW50c1t2XTtyZXR1cm4gZC5ydW5Mb2NhbEhvb2tzKCJpbnNlcnRSb3dSZXF1aXJlIiwuLi5mKX0pLF9jKGIxLHRoaXMpLmFkZExvY2FsSG9vaygiaW5zZXJ0Q29sUmVxdWlyZSIsZnVuY3Rpb24oKXtmb3IodmFyIGg9'@; put 'YXJndW1lbnRzLmxlbmd0aCxmPW5ldyBBcnJheShoKSx2PTA7djxoO3YrKylmW3ZdPWFyZ3VtZW50c1t2XTtyZXR1cm4gZC5ydW5Mb2NhbEhvb2tzKCJpbnNlcnRDb2xSZXF1aXJlIiwuLi5mKX0pLF9jKGIxLHRoaXMpLmFkZExvY2FsSG9vaygiYmVmb3JlUm93V3JhcCIsZnVuY3Rpb24oKXtm'@; put 'b3IodmFyIGg9YXJndW1lbnRzLmxlbmd0aCxmPW5ldyBBcnJheShoKSx2PTA7djxoO3YrKylmW3ZdPWFyZ3VtZW50c1t2XTtyZXR1cm4gZC5ydW5Mb2NhbEhvb2tzKCJiZWZvcmVSb3dXcmFwIiwuLi5mKX0pLF9jKGIxLHRoaXMpLmFkZExvY2FsSG9vaygiYmVmb3JlQ29sdW1uV3JhcCIsZnVu'@; put 'Y3Rpb24oKXtmb3IodmFyIGg9YXJndW1lbnRzLmxlbmd0aCxmPW5ldyBBcnJheShoKSx2PTA7djxoO3YrKylmW3ZdPWFyZ3VtZW50c1t2XTtyZXR1cm4gZC5ydW5Mb2NhbEhvb2tzKCJiZWZvcmVDb2x1bW5XcmFwIiwuLi5mKX0pLF9jKHQ5LHRoaXMpLmFkZExvY2FsSG9vaygiYmVmb3JlVHJh'@; put 'bnNmb3JtU3RhcnQiLGZ1bmN0aW9uKCl7Zm9yKHZhciBoPWFyZ3VtZW50cy5sZW5ndGgsZj1uZXcgQXJyYXkoaCksdj0wO3Y8aDt2KyspZlt2XT1hcmd1bWVudHNbdl07cmV0dXJuIGQucnVuTG9jYWxIb29rcygiYmVmb3JlTW9kaWZ5VHJhbnNmb3JtRm9jdXMiLC4uLmYpfSksX2ModDksdGhp'@; put 'cykuYWRkTG9jYWxIb29rKCJhZnRlclRyYW5zZm9ybVN0YXJ0IixmdW5jdGlvbigpe2Zvcih2YXIgaD1hcmd1bWVudHMubGVuZ3RoLGY9bmV3IEFycmF5KGgpLHY9MDt2PGg7disrKWZbdl09YXJndW1lbnRzW3ZdO3JldHVybiBkLnJ1bkxvY2FsSG9va3MoImFmdGVyTW9kaWZ5VHJhbnNmb3Jt'@; put 'Rm9jdXMiLC4uLmYpfSl9Z2V0U2VsZWN0ZWRSYW5nZSgpe3JldHVybiB0aGlzLnNlbGVjdGVkUmFuZ2V9bWFya1NvdXJjZShsKXtQcChPUCx0aGlzLGwpfW1hcmtFbmRTb3VyY2UoKXtQcChPUCx0aGlzLCJ1bmtub3duIil9Z2V0U2VsZWN0aW9uU291cmNlKCl7cmV0dXJuIF9jKE9QLHRoaXMp'@; put 'fXNldEV4cGVjdGVkTGF5ZXJzKGwpe1BwKG5ULHRoaXMsbCl9YmVnaW4oKXt0aGlzLmluUHJvZ3Jlc3M9ITB9ZmluaXNoKCl7dGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlclNlbGVjdGlvbkZpbmlzaGVkIixBcnJheS5mcm9tKHRoaXMuc2VsZWN0ZWRSYW5nZSkpLHRoaXMuaW5Qcm9ncmVzcz0h'@; put 'MSxQcChuVCx0aGlzLC0xKX1pc0luUHJvZ3Jlc3MoKXtyZXR1cm4gdGhpcy5pblByb2dyZXNzfXNldFJhbmdlU3RhcnQobCxhKXtsZXQgZD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLGg9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAh'@; put 'PT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOmw7Y29uc3QgZj0ibXVsdGlwbGUiPT09dGhpcy5zZXR0aW5ncy5zZWxlY3Rpb25Nb2RlLHY9YmMoYSk/dGhpcy50YWJsZVByb3BzLmdldFNob3J0Y3V0TWFuYWdlcigpLmlzQ3RybFByZXNzZWQoKTphLE09bC5jbG9uZSgpO1BwKExQLHRoaXMs'@; put 'ITEpLHRoaXMucnVuTG9jYWxIb29rcygiYmVmb3JlU2V0UmFuZ2VTdGFydCIrKGQ/Ik9ubHkiOiIiKSxNKSwoIWZ8fGYmJiF2JiZiYyhhKSkmJnRoaXMuc2VsZWN0ZWRSYW5nZS5jbGVhcigpLHRoaXMuc2VsZWN0ZWRSYW5nZS5hZGQoTSkuY3VycmVudCgpLnNldEhpZ2hsaWdodChoLmNsb25l'@; put 'KCkpLDA9PT10aGlzLmdldExheWVyTGV2ZWwoKSYmKHRoaXMuc2VsZWN0ZWRCeVJvd0hlYWRlci5jbGVhcigpLHRoaXMuc2VsZWN0ZWRCeUNvbHVtbkhlYWRlci5jbGVhcigpKSxkfHx0aGlzLnNldFJhbmdlRW5kKGwpfXNldFJhbmdlU3RhcnRPbmx5KGwsYSl7dGhpcy5zZXRSYW5nZVN0YXJ0'@; put 'KGwsYSwhMCxhcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06bCl9c2V0UmFuZ2VFbmQobCl7aWYodGhpcy5zZWxlY3RlZFJhbmdlLmlzRW1wdHkoKSlyZXR1cm47Y29uc3QgYT1sLmNsb25lKCksZD10aGlzLnRhYmxlUHJvcHMuY291bnRSb3dz'@; put 'KCksaD10aGlzLnRhYmxlUHJvcHMuY291bnRDb2xzKCksZj10aGlzLnNlbGVjdGVkUmFuZ2UuY3VycmVudCgpLmNsb25lKCkuc2V0VG8obCkuaXNTaW5nbGVIZWFkZXIoKTtpZigoZD4wfHxoPjApJiYoMD09PWQmJmEuY29sPDAmJiFmfHwwPT09aCYmYS5yb3c8MCYmIWYpKXJldHVybjt0aGlz'@; put 'LnJ1bkxvY2FsSG9va3MoImJlZm9yZVNldFJhbmdlRW5kIixhKSx0aGlzLmJlZ2luKCk7Y29uc3Qgdj10aGlzLnNlbGVjdGVkUmFuZ2UuY3VycmVudCgpO2lmKHRoaXMuc2V0dGluZ3MubmF2aWdhYmxlSGVhZGVyc3x8di5oaWdobGlnaHQubm9ybWFsaXplKCksInNpbmdsZSI9PT10aGlzLnNl'@; put 'dHRpbmdzLnNlbGVjdGlvbk1vZGUpdi5zZXRGcm9tKHYuaGlnaGxpZ2h0KSx2LnNldFRvKHYuaGlnaGxpZ2h0KTtlbHNle2NvbnN0IEk9di5nZXRIb3Jpem9udGFsRGlyZWN0aW9uKCksRz12LmdldFZlcnRpY2FsRGlyZWN0aW9uKCkscmU9dGhpcy5pc011bHRpcGxlKCk7di5zZXRUbyhhKSxy'@; put 'ZSYmKEkhPT12LmdldEhvcml6b250YWxEaXJlY3Rpb24oKXx8MT09PXYuZ2V0V2lkdGgoKSYmIXYuaW5jbHVkZXModi5oaWdobGlnaHQpKSYmdi5mcm9tLmFzc2lnbih7Y29sOnYuaGlnaGxpZ2h0LmNvbH0pLHJlJiYoRyE9PXYuZ2V0VmVydGljYWxEaXJlY3Rpb24oKXx8MT09PXYuZ2V0SGVp'@; put 'Z2h0KCkmJiF2LmluY2x1ZGVzKHYuaGlnaGxpZ2h0KSkmJnYuZnJvbS5hc3NpZ24oe3Jvdzp2LmhpZ2hsaWdodC5yb3d9KX1kPjAmJmg+MCYmKCF0aGlzLnNldHRpbmdzLm5hdmlnYWJsZUhlYWRlcnN8fHRoaXMuc2V0dGluZ3MubmF2aWdhYmxlSGVhZGVycyYmIXYuaXNTaW5nbGVIZWFkZXIo'@; put 'KSkmJnYudG8ubm9ybWFsaXplKCksdGhpcy5ydW5Mb2NhbEhvb2tzKCJiZWZvcmVIaWdobGlnaHRTZXQiKSx0aGlzLnNldFJhbmdlRm9jdXModGhpcy5zZWxlY3RlZFJhbmdlLmN1cnJlbnQoKS5oaWdobGlnaHQpLHRoaXMuYXBwbHlBbmRDb21taXQoKTtjb25zdCBNPS0xPT09X2MoblQsdGhp'@; put 'cyl8fHRoaXMuc2VsZWN0ZWRSYW5nZS5zaXplKCk9PT1fYyhuVCx0aGlzKTt0aGlzLnJ1bkxvY2FsSG9va3MoImFmdGVyU2V0UmFuZ2VFbmQiLGwsTSl9YXBwbHlBbmRDb21taXQoKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06'@; put 'dGhpcy5zZWxlY3RlZFJhbmdlLmN1cnJlbnQoKSxhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLmdldExheWVyTGV2ZWwoKTtjb25zdCBkPXRoaXMudGFibGVQcm9wcy5jb3VudFJvd3MoKSxoPXRoaXMudGFibGVQcm9wcy5jb3Vu'@; put 'dENvbHMoKTthPHRoaXMuaGlnaGxpZ2h0LmxheWVyTGV2ZWwmJihLbih0aGlzLmhpZ2hsaWdodC5nZXRBcmVhcygpLEJlPT57QmUuY2xlYXIoKX0pLEtuKHRoaXMuaGlnaGxpZ2h0LmdldExheWVyZWRBcmVhcygpLEJlPT57QmUuY2xlYXIoKX0pLEtuKHRoaXMuaGlnaGxpZ2h0LmdldFJvd0hl'@; put 'YWRlcnMoKSxCZT0+e0JlLmNsZWFyKCl9KSxLbih0aGlzLmhpZ2hsaWdodC5nZXRDb2x1bW5IZWFkZXJzKCksQmU9PntCZS5jbGVhcigpfSksS24odGhpcy5oaWdobGlnaHQuZ2V0QWN0aXZlUm93SGVhZGVycygpLEJlPT57QmUuY2xlYXIoKX0pLEtuKHRoaXMuaGlnaGxpZ2h0LmdldEFjdGl2'@; put 'ZUNvbHVtbkhlYWRlcnMoKSxCZT0+e0JlLmNsZWFyKCl9KSxLbih0aGlzLmhpZ2hsaWdodC5nZXRBY3RpdmVDb3JuZXJIZWFkZXJzKCksQmU9PntCZS5jbGVhcigpfSksS24odGhpcy5oaWdobGlnaHQuZ2V0Um93SGlnaGxpZ2h0cygpLEJlPT57QmUuY2xlYXIoKX0pLEtuKHRoaXMuaGlnaGxp'@; put 'Z2h0LmdldENvbHVtbkhpZ2hsaWdodHMoKSxCZT0+e0JlLmNsZWFyKCl9KSksdGhpcy5oaWdobGlnaHQudXNlTGF5ZXJMZXZlbChhKTtjb25zdCBmPXRoaXMuaGlnaGxpZ2h0LmNyZWF0ZUFyZWEoKSx2PXRoaXMuaGlnaGxpZ2h0LmNyZWF0ZUxheWVyZWRBcmVhKCksTT10aGlzLmhpZ2hsaWdo'@; put 'dC5jcmVhdGVSb3dIZWFkZXIoKSxJPXRoaXMuaGlnaGxpZ2h0LmNyZWF0ZUNvbHVtbkhlYWRlcigpLEc9dGhpcy5oaWdobGlnaHQuY3JlYXRlQWN0aXZlUm93SGVhZGVyKCkscmU9dGhpcy5oaWdobGlnaHQuY3JlYXRlQWN0aXZlQ29sdW1uSGVhZGVyKCksdWU9dGhpcy5oaWdobGlnaHQuY3Jl'@; put 'YXRlQWN0aXZlQ29ybmVySGVhZGVyKCkseWU9dGhpcy5oaWdobGlnaHQuY3JlYXRlUm93SGlnaGxpZ2h0KCksRWU9dGhpcy5oaWdobGlnaHQuY3JlYXRlQ29sdW1uSGlnaGxpZ2h0KCk7aWYoZi5jbGVhcigpLHYuY2xlYXIoKSxNLmNsZWFyKCksSS5jbGVhcigpLEcuY2xlYXIoKSxyZS5jbGVh'@; put 'cigpLHVlLmNsZWFyKCkseWUuY2xlYXIoKSxFZS5jbGVhcigpLHRoaXMuaGlnaGxpZ2h0LmlzRW5hYmxlZEZvcih2cSxsLmhpZ2hsaWdodCkmJih0aGlzLmlzTXVsdGlwbGUoKXx8YT49MSkmJihmLmFkZChsLmZyb20pLmFkZChsLnRvKS5jb21taXQoKSx2LmFkZChsLmZyb20pLmFkZChsLnRv'@; put 'KS5jb21taXQoKSwxPT09YSkpe2NvbnN0IEJlPXRoaXMuc2VsZWN0ZWRSYW5nZS5wcmV2aW91cygpO3RoaXMuaGlnaGxpZ2h0LnVzZUxheWVyTGV2ZWwoYS0xKSx0aGlzLmhpZ2hsaWdodC5jcmVhdGVBcmVhKCkuYWRkKEJlLmZyb20pLmNvbW1pdCgpLnN5bmNXaXRoKEJlKSx0aGlzLmhpZ2hs'@; put 'aWdodC5jcmVhdGVMYXllcmVkQXJlYSgpLmFkZChCZS5mcm9tKS5jb21taXQoKS5zeW5jV2l0aChCZSksdGhpcy5oaWdobGlnaHQudXNlTGF5ZXJMZXZlbChhKX1pZih0aGlzLmhpZ2hsaWdodC5pc0VuYWJsZWRGb3IobXEsbC5oaWdobGlnaHQpKXtpZighbC5pc1NpbmdsZUhlYWRlcigpKXtj'@; put 'b25zdCBzdD10aGlzLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3JkcyhNYXRoLm1heChsLmZyb20ucm93LDApLC0xKSxwdD10aGlzLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3JkcyhsLnRvLnJvdywtMSksZHQ9dGhpcy50YWJsZVByb3BzLmNyZWF0ZUNlbGxDb29yZHMoLTEsTWF0aC5tYXgo'@; put 'bC5mcm9tLmNvbCwwKSkscXQ9dGhpcy50YWJsZVByb3BzLmNyZWF0ZUNlbGxDb29yZHMoLTEsbC50by5jb2wpOyJzaW5nbGUiPT09dGhpcy5zZXR0aW5ncy5zZWxlY3Rpb25Nb2RlPyhNLmFkZChzdCkuY29tbWl0KCksSS5hZGQoZHQpLmNvbW1pdCgpLHllLmFkZChzdCkuY29tbWl0KCksRWUu'@; put 'YWRkKGR0KS5jb21taXQoKSk6KE0uYWRkKHN0KS5hZGQocHQpLmNvbW1pdCgpLEkuYWRkKGR0KS5hZGQocXQpLmNvbW1pdCgpLHllLmFkZChzdCkuYWRkKHB0KS5jb21taXQoKSxFZS5hZGQoZHQpLmFkZChxdCkuY29tbWl0KCkpfWNvbnN0IEJlPSFfYyh0VCx0aGlzKSYmdGhpcy5pc0VudGly'@; put 'ZVJvd1NlbGVjdGVkKCkmJihoPjAmJmg9PT1sLmdldFdpZHRoKCl8fDA9PT1oJiZ0aGlzLmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigpKSxHZT0hX2ModFQsdGhpcykmJnRoaXMuaXNFbnRpcmVDb2x1bW5TZWxlY3RlZCgpJiYoZD4wJiZkPT09bC5nZXRIZWlnaHQoKXx8MD09PWQmJnRoaXMuaXNT'@; put 'ZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCkpO0JlJiZHLmFkZCh0aGlzLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3JkcyhNYXRoLm1heChsLmZyb20ucm93LDApLE1hdGgubWluKC10aGlzLnRhYmxlUHJvcHMuY291bnRSb3dIZWFkZXJzKCksLTEpKSkuYWRkKHRoaXMudGFibGVQcm9wcy5jcmVh'@; put 'dGVDZWxsQ29vcmRzKE1hdGgubWF4KGwudG8ucm93LDApLC0xKSkuY29tbWl0KCksR2UmJnJlLmFkZCh0aGlzLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3JkcyhNYXRoLm1pbigtdGhpcy50YWJsZVByb3BzLmNvdW50Q29sSGVhZGVycygpLC0xKSxNYXRoLm1heChsLmZyb20uY29sLDApKSku'@; put 'YWRkKHRoaXMudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKC0xLE1hdGgubWF4KGwudG8uY29sLDApKSkuY29tbWl0KCksQmUmJkdlJiZ1ZS5hZGQodGhpcy50YWJsZVByb3BzLmNyZWF0ZUNlbGxDb29yZHMoLXRoaXMudGFibGVQcm9wcy5jb3VudENvbEhlYWRlcnMoKSwtdGhpcy50YWJs'@; put 'ZVByb3BzLmNvdW50Um93SGVhZGVycygpKSkuYWRkKHRoaXMudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKC0xLC0xKSkuY29tbWl0KCl9fXNldFJhbmdlRm9jdXMobCl7aWYodGhpcy5zZWxlY3RlZFJhbmdlLmlzRW1wdHkoKSlyZXR1cm47Y29uc3QgYT10aGlzLnNlbGVjdGVkUmFuZ2Uu'@; put 'Y3VycmVudCgpO3RoaXMuaW5Qcm9ncmVzc3x8dGhpcy5ydW5Mb2NhbEhvb2tzKCJiZWZvcmVTZXRGb2N1cyIsbCk7Y29uc3QgZD10aGlzLmhpZ2hsaWdodC5nZXRGb2N1cygpO2QuY2xlYXIoKSxhLnNldEhpZ2hsaWdodChsKSx0aGlzLmluUHJvZ3Jlc3N8fHRoaXMucnVuTG9jYWxIb29rcygi'@; put 'YmVmb3JlSGlnaGxpZ2h0U2V0IiksdGhpcy5oaWdobGlnaHQuaXNFbmFibGVkRm9yKEFQLGEuaGlnaGxpZ2h0KSYmZC5hZGQoYS5oaWdobGlnaHQpLmNvbW1pdCgpLnN5bmNXaXRoKGEpLHRoaXMuaW5Qcm9ncmVzc3x8KFBwKExQLHRoaXMsITApLHRoaXMucnVuTG9jYWxIb29rcygiYWZ0ZXJT'@; put 'ZXRGb2N1cyIsYS5oaWdobGlnaHQpKX10cmFuc2Zvcm1TdGFydChsLGEpe2xldCBkPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl07dGhpcy5zZXR0aW5ncy5uYXZpZ2FibGVIZWFkZXJzP19jKGIxLHRoaXMpLnNldE9mZnNldFNpemUoe3g6'@; put 'dGhpcy50YWJsZVByb3BzLmNvdW50Um93SGVhZGVycygpLHk6dGhpcy50YWJsZVByb3BzLmNvdW50Q29sSGVhZGVycygpfSk6X2MoYjEsdGhpcykucmVzZXRPZmZzZXRTaXplKCksdGhpcy5zZXRSYW5nZVN0YXJ0KF9jKGIxLHRoaXMpLnRyYW5zZm9ybVN0YXJ0KGwsYSxkKSl9dHJhbnNmb3Jt'@; put 'RW5kKGwsYSl7dGhpcy5zZXR0aW5ncy5uYXZpZ2FibGVIZWFkZXJzP19jKGIxLHRoaXMpLnNldE9mZnNldFNpemUoe3g6dGhpcy50YWJsZVByb3BzLmNvdW50Um93SGVhZGVycygpLHk6dGhpcy50YWJsZVByb3BzLmNvdW50Q29sSGVhZGVycygpfSk6X2MoYjEsdGhpcykucmVzZXRPZmZzZXRT'@; put 'aXplKCksdGhpcy5zZXRSYW5nZUVuZChfYyhiMSx0aGlzKS50cmFuc2Zvcm1FbmQobCxhKSl9dHJhbnNmb3JtRm9jdXMobCxhKXtjb25zdCBkPXRoaXMuc2VsZWN0ZWRSYW5nZS5jdXJyZW50KCkse3JvdzpoLGNvbDpmfT1kLmdldE91dGVyVG9wU3RhcnRDb3JuZXIoKSx2PXRoaXMudGFibGVQ'@; put 'cm9wcy5jb3VudFJlbmRlcmFibGVDb2x1bW5zSW5SYW5nZSgwLGYtMSksTT10aGlzLnRhYmxlUHJvcHMuY291bnRSZW5kZXJhYmxlUm93c0luUmFuZ2UoMCxoLTEpO2QuaGlnaGxpZ2h0LmlzSGVhZGVyKCk/X2ModDksdGhpcykuc2V0T2Zmc2V0U2l6ZSh7eDpmPDA/TWF0aC5hYnMoZik6LXYs'@; put 'eTpoPDA/TWF0aC5hYnMoaCk6LU19KTpfYyh0OSx0aGlzKS5zZXRPZmZzZXRTaXplKHt4OmY8MD8wOi12LHk6aDwwPzA6LU19KTtjb25zdCBJPV9jKHQ5LHRoaXMpLnRyYW5zZm9ybVN0YXJ0KGwsYSk7dGhpcy5zZXRSYW5nZUZvY3VzKEkubm9ybWFsaXplKCkpfXNoaWZ0Um93cyhsLGEpe2lm'@; put 'KCF0aGlzLmlzU2VsZWN0ZWQoKSlyZXR1cm47Y29uc3QgZD10aGlzLnNlbGVjdGVkUmFuZ2UuY3VycmVudCgpO2lmKHRoaXMuaXNTZWxlY3RlZEJ5Q29ybmVyKCkpdGhpcy5zZWxlY3RBbGwoITAsITAse2Rpc2FibGVIZWFkZXJzSGlnaGxpZ2h0OiEwfSk7ZWxzZSBpZih0aGlzLmlzU2VsZWN0'@; put 'ZWRCeUNvbHVtbkhlYWRlcigpfHxkLmdldE91dGVyVG9wU3RhcnRDb3JuZXIoKS5yb3c+PWwpe2NvbnN0e2Zyb206aCx0bzpmLGhpZ2hsaWdodDp2fT1kLE09dGhpcy50YWJsZVByb3BzLmNvdW50Um93cygpLEk9dGhpcy5pc1NlbGVjdGVkQnlSb3dIZWFkZXIoKSxHPXRoaXMuaXNTZWxlY3Rl'@; put 'ZEJ5Q29sdW1uSGVhZGVyKCkscmU9Rz8tMTowLHVlPUc/MDphO3RoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpLnBvcCgpO2NvbnN0IHllPXRoaXMudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKEFvKGgucm93K3VlLHJlLE0tMSksaC5jb2wpLEVlPXRoaXMudGFibGVQcm9wcy5jcmVhdGVDZWxs'@; put 'Q29vcmRzKEFvKGYucm93K2EscmUsTS0xKSxmLmNvbCk7dGhpcy5tYXJrU291cmNlKCJzaGlmdCIpLHYucm93Pj1sP3RoaXMuc2V0UmFuZ2VTdGFydE9ubHkoeWUsITAsdGhpcy50YWJsZVByb3BzLmNyZWF0ZUNlbGxDb29yZHMoQW8odi5yb3crYSwwLE0tMSksdi5jb2wpKTp0aGlzLnNldFJh'@; put 'bmdlU3RhcnRPbmx5KHllLCEwKSxJJiZ0aGlzLnNlbGVjdGVkQnlSb3dIZWFkZXIuYWRkKHRoaXMuZ2V0TGF5ZXJMZXZlbCgpKSxHJiZ0aGlzLnNlbGVjdGVkQnlDb2x1bW5IZWFkZXIuYWRkKHRoaXMuZ2V0TGF5ZXJMZXZlbCgpKSx0aGlzLnNldFJhbmdlRW5kKEVlKSx0aGlzLm1hcmtFbmRT'@; put 'b3VyY2UoKX19c2hpZnRDb2x1bW5zKGwsYSl7aWYoIXRoaXMuaXNTZWxlY3RlZCgpKXJldHVybjtjb25zdCBkPXRoaXMuc2VsZWN0ZWRSYW5nZS5jdXJyZW50KCk7aWYodGhpcy5pc1NlbGVjdGVkQnlDb3JuZXIoKSl0aGlzLnNlbGVjdEFsbCghMCwhMCx7ZGlzYWJsZUhlYWRlcnNIaWdobGln'@; put 'aHQ6ITB9KTtlbHNlIGlmKHRoaXMuaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCl8fGQuZ2V0T3V0ZXJUb3BTdGFydENvcm5lcigpLmNvbD49bCl7Y29uc3R7ZnJvbTpoLHRvOmYsaGlnaGxpZ2h0OnZ9PWQsTT10aGlzLnRhYmxlUHJvcHMuY291bnRDb2xzKCksST10aGlzLmlzU2VsZWN0ZWRCeVJv'@; put 'd0hlYWRlcigpLEc9dGhpcy5pc1NlbGVjdGVkQnlDb2x1bW5IZWFkZXIoKSxyZT1JPy0xOjAsdWU9ST8wOmE7dGhpcy5nZXRTZWxlY3RlZFJhbmdlKCkucG9wKCk7Y29uc3QgeWU9dGhpcy50YWJsZVByb3BzLmNyZWF0ZUNlbGxDb29yZHMoaC5yb3csQW8oaC5jb2wrdWUscmUsTS0xKSksRWU9'@; put 'dGhpcy50YWJsZVByb3BzLmNyZWF0ZUNlbGxDb29yZHMoZi5yb3csQW8oZi5jb2wrYSxyZSxNLTEpKTt0aGlzLm1hcmtTb3VyY2UoInNoaWZ0Iiksdi5jb2w+PWw/dGhpcy5zZXRSYW5nZVN0YXJ0T25seSh5ZSwhMCx0aGlzLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3Jkcyh2LnJvdyxBbyh2'@; put 'LmNvbCthLDAsTS0xKSkpOnRoaXMuc2V0UmFuZ2VTdGFydE9ubHkoeWUsITApLEkmJnRoaXMuc2VsZWN0ZWRCeVJvd0hlYWRlci5hZGQodGhpcy5nZXRMYXllckxldmVsKCkpLEcmJnRoaXMuc2VsZWN0ZWRCeUNvbHVtbkhlYWRlci5hZGQodGhpcy5nZXRMYXllckxldmVsKCkpLHRoaXMuc2V0'@; put 'UmFuZ2VFbmQoRWUpLHRoaXMubWFya0VuZFNvdXJjZSgpfX1nZXRMYXllckxldmVsKCl7cmV0dXJuIHRoaXMuc2VsZWN0ZWRSYW5nZS5zaXplKCktMX1pc1NlbGVjdGVkKCl7cmV0dXJuIXRoaXMuc2VsZWN0ZWRSYW5nZS5pc0VtcHR5KCl9aXNNdWx0aXBsZSgpe2xldCBsPWFyZ3VtZW50cy5s'@; put 'ZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLnNlbGVjdGVkUmFuZ2UuY3VycmVudCgpO2lmKCF0aGlzLmlzU2VsZWN0ZWQoKSlyZXR1cm4hMTtjb25zdCBhPUZkKCFsLmlzU2luZ2xlKCkpO3JldHVybiB0aGlzLnJ1bkxvY2FsSG9va3MoImFmdGVySXNN'@; put 'dWx0aXBsZVNlbGVjdGlvbiIsYSksYS52YWx1ZX1pc0ZvY3VzU2VsZWN0aW9uQ2hhbmdlZCgpe3JldHVybiB0aGlzLmlzU2VsZWN0ZWQoKSYmX2MoTFAsdGhpcyl9aXNTZWxlY3RlZEJ5Um93SGVhZGVyKCl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/'@; put 'YXJndW1lbnRzWzBdOnRoaXMuZ2V0TGF5ZXJMZXZlbCgpO3JldHVybiF0aGlzLmlzU2VsZWN0ZWRCeUNvcm5lcihsKSYmKC0xPT09bD90aGlzLnNlbGVjdGVkQnlSb3dIZWFkZXIuc2l6ZT4wOnRoaXMuc2VsZWN0ZWRCeVJvd0hlYWRlci5oYXMobCkpfWlzRW50aXJlUm93U2VsZWN0ZWQoKXts'@; put 'ZXQgbD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5nZXRMYXllckxldmVsKCk7Y29uc3QgYT1oPT57Y29uc3R7Y29sOmZ9PWguZ2V0T3V0ZXJUb3BTdGFydENvcm5lcigpLHY9dGhpcy50YWJsZVByb3BzLmNvdW50Um93SGVhZGVy'@; put 'cygpLE09dGhpcy50YWJsZVByb3BzLmNvdW50Q29scygpO3JldHVybih2PjAmJmY8MHx8MD09PXYpJiZoLmdldFdpZHRoKCk9PT1NfTtpZigtMT09PWwpcmV0dXJuIEFycmF5LmZyb20odGhpcy5zZWxlY3RlZFJhbmdlKS5zb21lKGg9PmEoaCkpO2NvbnN0IGQ9dGhpcy5zZWxlY3RlZFJhbmdl'@; put 'LnBlZWtCeUluZGV4KGwpO3JldHVybiEhZCYmYShkKX1pc1NlbGVjdGVkQnlDb2x1bW5IZWFkZXIoKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5nZXRMYXllckxldmVsKCk7cmV0dXJuIXRoaXMuaXNTZWxlY3RlZEJ5'@; put 'Q29ybmVyKCkmJigtMT09PWw/dGhpcy5zZWxlY3RlZEJ5Q29sdW1uSGVhZGVyLnNpemU+MDp0aGlzLnNlbGVjdGVkQnlDb2x1bW5IZWFkZXIuaGFzKGwpKX1pc0VudGlyZUNvbHVtblNlbGVjdGVkKCl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJn'@; put 'dW1lbnRzWzBdOnRoaXMuZ2V0TGF5ZXJMZXZlbCgpO2NvbnN0IGE9aD0+e2NvbnN0e3JvdzpmfT1oLmdldE91dGVyVG9wU3RhcnRDb3JuZXIoKSx2PXRoaXMudGFibGVQcm9wcy5jb3VudENvbEhlYWRlcnMoKSxNPXRoaXMudGFibGVQcm9wcy5jb3VudFJvd3MoKTtyZXR1cm4odj4wJiZmPDB8'@; put 'fDA9PT12KSYmaC5nZXRIZWlnaHQoKT09PU19O2lmKC0xPT09bClyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnNlbGVjdGVkUmFuZ2UpLnNvbWUoaD0+YShoKSk7Y29uc3QgZD10aGlzLnNlbGVjdGVkUmFuZ2UucGVla0J5SW5kZXgobCk7cmV0dXJuISFkJiZhKGQpfWlzU2VsZWN0ZWRCeUFueUhl'@; put 'YWRlcigpe3JldHVybiB0aGlzLmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigtMSl8fHRoaXMuaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKC0xKXx8dGhpcy5pc1NlbGVjdGVkQnlDb3JuZXIoKX1pc1NlbGVjdGVkQnlDb3JuZXIoKXtyZXR1cm4gdGhpcy5zZWxlY3RlZEJ5Q29sdW1uSGVhZGVyLmhh'@; put 'cyh0aGlzLmdldExheWVyTGV2ZWwoKSkmJnRoaXMuc2VsZWN0ZWRCeVJvd0hlYWRlci5oYXModGhpcy5nZXRMYXllckxldmVsKCkpfWluSW5TZWxlY3Rpb24obCl7cmV0dXJuIHRoaXMuc2VsZWN0ZWRSYW5nZS5pbmNsdWRlcyhsKX1pc0NlbGxDb3JuZXJWaXNpYmxlKCl7cmV0dXJuIHRoaXMu'@; put 'c2V0dGluZ3MuZmlsbEhhbmRsZSYmIXRoaXMudGFibGVQcm9wcy5pc0VkaXRvck9wZW5lZCgpJiYhdGhpcy5pc011bHRpcGxlKCl9aXNDZWxsVmlzaWJsZShsKXtjb25zdCBhPXRoaXMudGFibGVQcm9wcy52aXN1YWxUb1JlbmRlcmFibGVDb29yZHMobCk7cmV0dXJuIG51bGwhPT1hLnJvdyYm'@; put 'bnVsbCE9PWEuY29sfWlzQXJlYUNvcm5lclZpc2libGUobCl7cmV0dXJuKCFOdW1iZXIuaXNJbnRlZ2VyKGwpfHxsPT09dGhpcy5nZXRMYXllckxldmVsKCkpJiZ0aGlzLnNldHRpbmdzLmZpbGxIYW5kbGUmJiF0aGlzLnRhYmxlUHJvcHMuaXNFZGl0b3JPcGVuZWQoKSYmdGhpcy5pc011bHRp'@; put 'cGxlKCl9Y2xlYXIoKXt0aGlzLnNlbGVjdGVkUmFuZ2UuY2xlYXIoKSx0aGlzLmhpZ2hsaWdodC5jbGVhcigpfWRlc2VsZWN0KCl7dGhpcy5pc1NlbGVjdGVkKCkmJih0aGlzLmluUHJvZ3Jlc3M9ITEsdGhpcy5jbGVhcigpLHRoaXMucnVuTG9jYWxIb29rcygiYWZ0ZXJEZXNlbGVjdCIpKX1z'@; put 'ZWxlY3RBbGwoKXt2YXIgbDtsZXQgYT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdLGQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXSxoPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAw'@; put 'IT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7Zm9jdXNQb3NpdGlvbjohMSxkaXNhYmxlSGVhZGVyc0hpZ2hsaWdodDohMX07Y29uc3QgZj10aGlzLnRhYmxlUHJvcHMuY291bnRSb3dzKCksdj10aGlzLnRhYmxlUHJvcHMuY291bnRDb2xzKCksTT10aGlzLnRhYmxlUHJvcHMuY291bnRS'@; put 'b3dIZWFkZXJzKCksST10aGlzLnRhYmxlUHJvcHMuY291bnRDb2xIZWFkZXJzKCksRz1kPy1JOjAscmU9YT8tTTowO2lmKDA9PT1HJiYwPT09cmUmJigwPT09Znx8MD09PXYpKXJldHVybjtsZXQgdWU9bnVsbD09PShsPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpLmN1cnJlbnQoKSl8fHZvaWQg'@; put 'MD09PWw/dm9pZCAwOmwuaGlnaGxpZ2h0O2NvbnN0e2ZvY3VzUG9zaXRpb246eWUsZGlzYWJsZUhlYWRlcnNIaWdobGlnaHQ6RWV9PWg7UHAodFQsdGhpcyxFZSkseWUmJk51bWJlci5pc0ludGVnZXIoeWU/LnJvdykmJk51bWJlci5pc0ludGVnZXIoeWU/LmNvbCkmJih1ZT10aGlzLnRhYmxl'@; put 'UHJvcHMuY3JlYXRlQ2VsbENvb3JkcyhBbyh5ZS5yb3csRyxmLTEpLEFvKHllLmNvbCxyZSx2LTEpKSk7Y29uc3QgQmU9dGhpcy50YWJsZVByb3BzLmNyZWF0ZUNlbGxDb29yZHMoRyxyZSksR2U9dGhpcy50YWJsZVByb3BzLmNyZWF0ZUNlbGxDb29yZHMoZi0xLHYtMSk7dGhpcy5jbGVhcigp'@; put 'LHRoaXMuc2V0UmFuZ2VTdGFydE9ubHkoQmUsdm9pZCAwLHVlKSxyZTwwJiZ0aGlzLnNlbGVjdGVkQnlSb3dIZWFkZXIuYWRkKHRoaXMuZ2V0TGF5ZXJMZXZlbCgpKSxHPDAmJnRoaXMuc2VsZWN0ZWRCeUNvbHVtbkhlYWRlci5hZGQodGhpcy5nZXRMYXllckxldmVsKCkpLHRoaXMuc2V0UmFu'@; put 'Z2VFbmQoR2UpLHRoaXMuZmluaXNoKCksUHAodFQsdGhpcywhMSl9c2VsZWN0Q2VsbHMobCl7dmFyIGE9dGhpcztjb25zdCBkPXhfKGwpO2lmKDE9PT1kKXJldHVybiExO2lmKDA9PT1kKXRocm93IG5ldyBFcnJvcihobGBVbnN1cHBvcnRlZCBmb3JtYXQgb2YgdGhlIHNlbGVjdGlvbiByYW5n'@; put 'ZXMgd2FzIHBhc3NlZC4gVG8gc2VsZWN0IGNlbGxzIHBhc3NceDIwCiAgICAgICAgdGhlIGNvb3JkaW5hdGVzIGFzIGFuIGFycmF5IG9mIGFycmF5cyAoW1tyb3dTdGFydCwgY29sdW1uU3RhcnQvY29sdW1uUHJvcFN0YXJ0LCByb3dFbmQsXHgyMAogICAgICAgIGNvbHVtbkVuZC9jb2x1bW5Q'@; put 'cm9wRW5kXV0pIG9yIGFzIGFuIGFycmF5IG9mIENlbGxSYW5nZSBvYmplY3RzLmApO2NvbnN0IGg9ZVQoZCx7Y3JlYXRlQ2VsbENvb3JkczpmdW5jdGlvbigpe3JldHVybiBhLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3JkcyguLi5hcmd1bWVudHMpfSxjcmVhdGVDZWxsUmFuZ2U6ZnVuY3Rp'@; put 'b24oKXtyZXR1cm4gYS50YWJsZVByb3BzLmNyZWF0ZUNlbGxSYW5nZSguLi5hcmd1bWVudHMpfSxwcm9wVG9Db2w6ST0+dGhpcy50YWJsZVByb3BzLnByb3BUb0NvbChJKSxrZWVwRGlyZWN0aW9uOiEwfSksZj10aGlzLnNldHRpbmdzLm5hdmlnYWJsZUhlYWRlcnMsdj17Y291bnRSb3dzOnRo'@; put 'aXMudGFibGVQcm9wcy5jb3VudFJvd3MoKSxjb3VudENvbHM6dGhpcy50YWJsZVByb3BzLmNvdW50Q29scygpLGNvdW50Um93SGVhZGVyczpmP3RoaXMudGFibGVQcm9wcy5jb3VudFJvd0hlYWRlcnMoKTowLGNvdW50Q29sSGVhZGVyczpmP3RoaXMudGFibGVQcm9wcy5jb3VudENvbEhlYWRl'@; put 'cnMoKTowfSxNPSFsLnNvbWUoST0+e2NvbnN0IEc9aChJKSxyZT1HLmlzVmFsaWQodik7cmV0dXJuIShyZSYmIUcuY29udGFpbnNIZWFkZXJzKCl8fHJlJiZHLmNvbnRhaW5zSGVhZGVycygpJiZHLmlzU2luZ2xlSGVhZGVyKCkpfSk7cmV0dXJuIE0mJih0aGlzLmNsZWFyKCksdGhpcy5zZXRF'@; put 'eHBlY3RlZExheWVycyhsLmxlbmd0aCksS24obCxJPT57Y29uc3R7ZnJvbTpHLHRvOnJlfT1oKEkpO3RoaXMuc2V0UmFuZ2VTdGFydE9ubHkoRy5jbG9uZSgpLCExKSx0aGlzLnNldFJhbmdlRW5kKHJlLmNsb25lKCkpfSksdGhpcy5maW5pc2goKSksTX1zZWxlY3RDb2x1bW5zKGwpe2xldCBh'@; put 'PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpsLGQ9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOjA7Y29uc3QgaD0ic3RyaW5nIj09dHlwZW9mIGw/dGhpcy50YWJsZVByb3BzLnByb3BU'@; put 'b0NvbChsKTpsLGY9InN0cmluZyI9PXR5cGVvZiBhP3RoaXMudGFibGVQcm9wcy5wcm9wVG9Db2woYSk6YSx2PXRoaXMudGFibGVQcm9wcy5jb3VudFJvd3MoKSxNPXRoaXMudGFibGVQcm9wcy5jb3VudENvbHMoKSxJPXRoaXMudGFibGVQcm9wcy5jb3VudENvbEhlYWRlcnMoKSxHPTA9PT1J'@; put 'PzA6LUkscmU9dGhpcy50YWJsZVByb3BzLmNyZWF0ZUNlbGxDb29yZHMoRyxoKSx1ZT10aGlzLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3Jkcyh2LTEsZikseWU9dGhpcy50YWJsZVByb3BzLmNyZWF0ZUNlbGxSYW5nZShyZSxyZSx1ZSkuaXNWYWxpZCh7Y291bnRSb3dzOnYsY291bnRDb2xz'@; put 'Ok0sY291bnRSb3dIZWFkZXJzOjAsY291bnRDb2xIZWFkZXJzOkl9KTtpZih5ZSl7bGV0IEVlPTAsQmU9MDtOdW1iZXIuaXNJbnRlZ2VyKGQ/LnJvdykmJk51bWJlci5pc0ludGVnZXIoZD8uY29sKT8oRWU9QW8oZC5yb3csRyx2LTEpLEJlPUFvKGQuY29sLE1hdGgubWluKGgsZiksTWF0aC5t'@; put 'YXgoaCxmKSkpOihFZT1BbyhkLEcsdi0xKSxCZT1oKTtjb25zdCBHZT10aGlzLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3JkcyhFZSxCZSksc3Q9MD09PUk/MDpBbyhHZS5yb3csRywtMSkscHQ9di0xLGR0PXRoaXMudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKHN0LGgpLHF0PXRoaXMu'@; put 'dGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKHB0LGYpO3RoaXMucnVuTG9jYWxIb29rcygiYmVmb3JlU2VsZWN0Q29sdW1ucyIsZHQscXQsR2UpLGR0LnJvdz1zdCxxdC5yb3c9cHQsdGhpcy5zZXRSYW5nZVN0YXJ0T25seShkdCx2b2lkIDAsR2UpLHRoaXMuc2VsZWN0ZWRCeUNvbHVtbkhl'@; put 'YWRlci5hZGQodGhpcy5nZXRMYXllckxldmVsKCkpLHRoaXMuc2V0UmFuZ2VFbmQocXQpLHRoaXMucnVuTG9jYWxIb29rcygiYWZ0ZXJTZWxlY3RDb2x1bW5zIixkdCxxdCxHZSksdGhpcy5maW5pc2goKX1yZXR1cm4geWV9c2VsZWN0Um93cyhsKXtsZXQgYT1hcmd1bWVudHMubGVuZ3RoPjEm'@; put 'JnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06bCxkPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTowO2NvbnN0IGg9dGhpcy50YWJsZVByb3BzLmNvdW50Um93cygpLGY9dGhpcy50YWJsZVByb3BzLmNvdW50Q29scygpLHY9'@; put 'dGhpcy50YWJsZVByb3BzLmNvdW50Um93SGVhZGVycygpLE09MD09PXY/MDotdixJPXRoaXMudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKGwsTSksRz10aGlzLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3JkcyhhLGYtMSkscmU9dGhpcy50YWJsZVByb3BzLmNyZWF0ZUNlbGxSYW5nZShJ'@; put 'LEksRykuaXNWYWxpZCh7Y291bnRSb3dzOmgsY291bnRDb2xzOmYsY291bnRSb3dIZWFkZXJzOnYsY291bnRDb2xIZWFkZXJzOjB9KTtpZihyZSl7bGV0IHVlPTAseWU9MDtOdW1iZXIuaXNJbnRlZ2VyKGQ/LnJvdykmJk51bWJlci5pc0ludGVnZXIoZD8uY29sKT8odWU9QW8oZC5yb3csTWF0'@; put 'aC5taW4obCxhKSxNYXRoLm1heChsLGEpKSx5ZT1BbyhkLmNvbCxNLGYtMSkpOih1ZT1sLHllPUFvKGQsTSxmLTEpKTtjb25zdCBFZT10aGlzLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3Jkcyh1ZSx5ZSksQmU9MD09PXY/MDpBbyhFZS5jb2wsTSwtMSksR2U9Zi0xLHN0PXRoaXMudGFibGVQ'@; put 'cm9wcy5jcmVhdGVDZWxsQ29vcmRzKGwsQmUpLHB0PXRoaXMudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKGEsR2UpO3RoaXMucnVuTG9jYWxIb29rcygiYmVmb3JlU2VsZWN0Um93cyIsc3QscHQsRWUpLHN0LmNvbD1CZSxwdC5jb2w9R2UsdGhpcy5zZXRSYW5nZVN0YXJ0T25seShzdCx2'@; put 'b2lkIDAsRWUpLHRoaXMuc2VsZWN0ZWRCeVJvd0hlYWRlci5hZGQodGhpcy5nZXRMYXllckxldmVsKCkpLHRoaXMuc2V0UmFuZ2VFbmQocHQpLHRoaXMucnVuTG9jYWxIb29rcygiYWZ0ZXJTZWxlY3RSb3dzIixzdCxwdCxFZSksdGhpcy5maW5pc2goKX1yZXR1cm4gcmV9cmVmcmVzaCgpe2lm'@; put 'KCF0aGlzLmlzU2VsZWN0ZWQoKSlyZXR1cm47Y29uc3QgbD10aGlzLnRhYmxlUHJvcHMuY291bnRSb3dzKCksYT10aGlzLnRhYmxlUHJvcHMuY291bnRDb2xzKCk7aWYoMD09PWx8fDA9PT1hKXJldHVybiB2b2lkIHRoaXMuZGVzZWxlY3QoKTtjb25zdCBkPXRoaXMuc2VsZWN0ZWRSYW5nZS5y'@; put 'YW5nZXMubWFwKHY9PnYuY2xvbmUoKSk7dGhpcy5tYXJrU291cmNlKCJyZWZyZXNoIik7Y29uc3QgaD1uZXcgU2V0KHRoaXMuc2VsZWN0ZWRCeVJvd0hlYWRlciksZj1uZXcgU2V0KHRoaXMuc2VsZWN0ZWRCeUNvbHVtbkhlYWRlcik7dGhpcy5jbGVhcigpLHRoaXMuc2V0RXhwZWN0ZWRMYXll'@; put 'cnMoZC5sZW5ndGgpLGQuZm9yRWFjaCh2PT57Y29uc3R7ZnJvbTpNLHRvOkksaGlnaGxpZ2h0Okd9PXYscmU9bC0xLHVlPWEtMTtHLmFzc2lnbih7cm93OkFvKEcucm93LHRoaXMuc2V0dGluZ3MubmF2aWdhYmxlSGVhZGVycz8tMS8wOjAscmUpLGNvbDpBbyhHLmNvbCx0aGlzLnNldHRpbmdz'@; put 'Lm5hdmlnYWJsZUhlYWRlcnM/LTEvMDowLHVlKX0pLE0uYXNzaWduKHtyb3c6QW8oTS5yb3csLTEvMCxyZSksY29sOkFvKE0uY29sLC0xLzAsdWUpfSksSS5hc3NpZ24oe3JvdzpBbyhJLnJvdywtMS8wLHJlKSxjb2w6QW8oSS5jb2wsLTEvMCx1ZSl9KSx0aGlzLnNldFJhbmdlU3RhcnRPbmx5'@; put 'KE0sITAsRyksdGhpcy5zZXRSYW5nZUVuZChJKX0pLHRoaXMuc2VsZWN0ZWRCeVJvd0hlYWRlcj1oLHRoaXMuc2VsZWN0ZWRCeUNvbHVtbkhlYWRlcj1mLHRoaXMuZmluaXNoKCksdGhpcy5tYXJrRW5kU291cmNlKCl9Y29tbWl0KCl7aWYodGhpcy5oaWdobGlnaHQuZ2V0Q3VzdG9tU2VsZWN0'@; put 'aW9ucygpLmZvckVhY2goaD0+e2guY29tbWl0KCl9KSwhdGhpcy5pc1NlbGVjdGVkKCkpcmV0dXJuO2NvbnN0IGE9dGhpcy5nZXRMYXllckxldmVsKCksZD10aGlzLnNlbGVjdGVkUmFuZ2UuY3VycmVudCgpO3RoaXMuaGlnaGxpZ2h0LmlzRW5hYmxlZEZvcihBUCxkLmhpZ2hsaWdodCkmJnRo'@; put 'aXMuaGlnaGxpZ2h0LmdldEZvY3VzKCkuY29tbWl0KCkuc3luY1dpdGgoZCk7Zm9yKGxldCBoPTA7aDx0aGlzLnNlbGVjdGVkUmFuZ2Uuc2l6ZSgpO2grPTEpe3RoaXMuaGlnaGxpZ2h0LnVzZUxheWVyTGV2ZWwoaCk7Y29uc3QgZj10aGlzLmhpZ2hsaWdodC5jcmVhdGVBcmVhKCksdj10aGlz'@; put 'LmhpZ2hsaWdodC5jcmVhdGVMYXllcmVkQXJlYSgpLE09dGhpcy5oaWdobGlnaHQuY3JlYXRlUm93SGVhZGVyKCksST10aGlzLmhpZ2hsaWdodC5jcmVhdGVDb2x1bW5IZWFkZXIoKSxHPXRoaXMuaGlnaGxpZ2h0LmNyZWF0ZUFjdGl2ZVJvd0hlYWRlcigpLHJlPXRoaXMuaGlnaGxpZ2h0LmNy'@; put 'ZWF0ZUFjdGl2ZUNvbHVtbkhlYWRlcigpLHVlPXRoaXMuaGlnaGxpZ2h0LmNyZWF0ZUFjdGl2ZUNvcm5lckhlYWRlcigpLHllPXRoaXMuaGlnaGxpZ2h0LmNyZWF0ZVJvd0hpZ2hsaWdodCgpLEVlPXRoaXMuaGlnaGxpZ2h0LmNyZWF0ZUNvbHVtbkhpZ2hsaWdodCgpO2YuY29tbWl0KCksdi5j'@; put 'b21taXQoKSxNLmNvbW1pdCgpLEkuY29tbWl0KCksRy5jb21taXQoKSxyZS5jb21taXQoKSx1ZS5jb21taXQoKSx5ZS5jb21taXQoKSxFZS5jb21taXQoKX10aGlzLmhpZ2hsaWdodC51c2VMYXllckxldmVsKGEpfX14bChkcGUseTEpO2NvbnN0IGFydD1kcGUse3JlZ2lzdGVyOnNydCxnZXRJ'@; put 'dGVtOm9ydCxoYXNJdGVtOmhwZSxnZXROYW1lczpscnR9PVUyKCJjZWxsVHlwZXMiKTtmdW5jdGlvbiB4cShjKXtpZighaHBlKGMpKXRocm93IEVycm9yKGBZb3UgZGVjbGFyZWQgY2VsbCB0eXBlICIke2N9IiBhcyBhIHN0cmluZyB0aGF0IGlzIG5vdCBtYXBwZWQgdG8gYSBrbm93biBvYmpl'@; put 'Y3QuXG4gICAgICAgICAgICAgICAgIENlbGwgdHlwZSBtdXN0IGJlIGFuIG9iamVjdCBvciBhIHN0cmluZyBtYXBwZWQgdG8gYW4gb2JqZWN0IHJlZ2lzdGVyZWQgYnlcbiAgICAgICAgICAgICAgICAgIkhhbmRzb250YWJsZS5jZWxsVHlwZXMucmVnaXN0ZXJDZWxsVHlwZSIgbWV0aG9kYCk7'@; put 'cmV0dXJuIG9ydChjKX1mdW5jdGlvbiBYMihjLGwpeyJzdHJpbmciIT10eXBlb2YgYyYmKGM9KGw9YykuQ0VMTF9UWVBFKTtjb25zdHtlZGl0b3I6YSxyZW5kZXJlcjpkLHZhbGlkYXRvcjpofT1sO2EmJkhkKGMsYSksZCYmTGgoYyxkKSxoJiZZNyhjLGgpLHNydChjLGwpfWZ1bmN0aW9uIFBQ'@; put 'KGMsbCl7bGV0IGE9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOmM7Y29uc3QgZD0ic3RyaW5nIj09dHlwZW9mIGwudHlwZT94cShsLnR5cGUpOmwudHlwZTtpZihjLl9hdXRvbWF0aWNhbGx5QXNzaWduZWRNZXRhUHJvcHMmJnFzKGwsKGYs'@; put 'dik9PntjLl9hdXRvbWF0aWNhbGx5QXNzaWduZWRNZXRhUHJvcHMuZGVsZXRlKHYpfSksIVhzKGQpKXJldHVybjthPT09YyYmIWMuX2F1dG9tYXRpY2FsbHlBc3NpZ25lZE1ldGFQcm9wcyYmKGMuX2F1dG9tYXRpY2FsbHlBc3NpZ25lZE1ldGFQcm9wcz1uZXcgU2V0KTtjb25zdCBoPXt9O3Fz'@; put 'KGQsKGYsdik9Pnt2YXIgTTsoZnVuY3Rpb24gY3J0KGMsbCl7dmFyIGE7cmV0dXJuIkNFTExfVFlQRSIhPT1jJiYoKG51bGw9PT0oYT1sLl9hdXRvbWF0aWNhbGx5QXNzaWduZWRNZXRhUHJvcHMpfHx2b2lkIDA9PT1hP3ZvaWQgMDphLmhhcyhjKSl8fCFDdShsLGMpKX0pKHYsYSkmJihoW3Zd'@; put 'PWYsbnVsbD09PShNPWMuX2F1dG9tYXRpY2FsbHlBc3NpZ25lZE1ldGFQcm9wcyl8fHZvaWQgMD09PU18fE0uYWRkKHYpKX0pLHd1KGMsaCl9ZnVuY3Rpb24gRlAoYyl7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoYykmJmM+PTB9ZnVuY3Rpb24gSFAoYyxsKXtpZighYygpKXRocm93IG5ldyBF'@; put 'cnJvcihgQXNzZXJ0aW9uIGZhaWxlZDogJHtsfWApfWZ1bmN0aW9uIE5QKGMpe3JldHVybiBudWxsPT1jfWNvbnN0IGZwZT0oKT0+KHtfYXV0b21hdGljYWxseUFzc2lnbmVkTWV0YVByb3BzOnZvaWQgMCxhY3RpdmVIZWFkZXJDbGFzc05hbWU6Imh0X19hY3RpdmVfaGlnaGxpZ2h0IixhbGxv'@; put 'd0VtcHR5OiEwLGFsbG93SHRtbDohMSxhbGxvd0luc2VydENvbHVtbjohMCxhbGxvd0luc2VydFJvdzohMCxhbGxvd0ludmFsaWQ6ITAsYWxsb3dSZW1vdmVDb2x1bW46ITAsYWxsb3dSZW1vdmVSb3c6ITAsYXJpYVRhZ3M6ITAsYXV0b0NvbHVtblNpemU6dm9pZCAwLGF1dG9Sb3dTaXplOnZv'@; put 'aWQgMCxhdXRvV3JhcENvbDohMSxhdXRvV3JhcFJvdzohMSxiaW5kUm93c1dpdGhIZWFkZXJzOnZvaWQgMCxjZWxsOltdLGNlbGxzOnZvaWQgMCxjaGVja2VkVGVtcGxhdGU6dm9pZCAwLGNsYXNzTmFtZTp2b2lkIDAsY29sSGVhZGVyczpudWxsLGNvbGxhcHNpYmxlQ29sdW1uczp2b2lkIDAs'@; put 'Y29sdW1uSGVhZGVySGVpZ2h0OnZvaWQgMCxjb2x1bW5zOnZvaWQgMCxjb2x1bW5Tb3J0aW5nOnZvaWQgMCxjb2x1bW5TdW1tYXJ5OnZvaWQgMCxjb2xXaWR0aHM6dm9pZCAwLGNvbW1lbnRlZENlbGxDbGFzc05hbWU6Imh0Q29tbWVudENlbGwiLGNvbW1lbnRzOiExLGNvbnRleHRNZW51OnZv'@; put 'aWQgMCxjb3B5YWJsZTohMCxjb3B5UGFzdGU6ITAsY29ycmVjdEZvcm1hdDohMSxjdXJyZW50Q29sQ2xhc3NOYW1lOnZvaWQgMCxjdXJyZW50SGVhZGVyQ2xhc3NOYW1lOiJodF9faGlnaGxpZ2h0IixjdXJyZW50Um93Q2xhc3NOYW1lOnZvaWQgMCxjdXN0b21Cb3JkZXJzOiExLGRhdGE6dm9p'@; put 'ZCAwLGRhdGFEb3ROb3RhdGlvbjohMCxkYXRhU2NoZW1hOnZvaWQgMCxkYXRlRm9ybWF0OiJERC9NTS9ZWVlZIix0aW1lRm9ybWF0OiJoOm1tOnNzIGEiLGRhdGVQaWNrZXJDb25maWc6dm9pZCAwLGRlZmF1bHREYXRlOnZvaWQgMCxkaXNhYmxlVmlzdWFsU2VsZWN0aW9uOiExLGRyYWdUb1Nj'@; put 'cm9sbDohMCxkcm9wZG93bk1lbnU6dm9pZCAwLGVkaXRvcjp2b2lkIDAsZW50ZXJCZWdpbnNFZGl0aW5nOiEwLGVudGVyTW92ZXM6e2NvbDowLHJvdzoxfSxmaWxsSGFuZGxlOnthdXRvSW5zZXJ0Um93OiExfSxmaWx0ZXI6ITAsZmlsdGVyaW5nQ2FzZVNlbnNpdGl2ZTohMSxmaWx0ZXJzOnZv'@; put 'aWQgMCxmaXhlZENvbHVtbnNMZWZ0OjAsZml4ZWRDb2x1bW5zU3RhcnQ6MCxmaXhlZFJvd3NCb3R0b206MCxmaXhlZFJvd3NUb3A6MCxmb3JtdWxhczp2b2lkIDAsZnJhZ21lbnRTZWxlY3Rpb246ITEsaGVhZGVyQ2xhc3NOYW1lOnZvaWQgMCxoZWlnaHQ6dm9pZCAwLGhpZGRlbkNvbHVtbnM6'@; put 'dm9pZCAwLGhpZGRlblJvd3M6dm9pZCAwLGludmFsaWRDZWxsQ2xhc3NOYW1lOiJodEludmFsaWQiLGltZUZhc3RFZGl0OiExLGlzRW1wdHlDb2woYyl7bGV0IGwsYSxkO2ZvcihsPTAsYT10aGlzLmNvdW50Um93cygpO2w8YTtsKyspaWYoZD10aGlzLmdldERhdGFBdENlbGwobCxjKSwhMT09'@; put 'PWpjKGQpKXJldHVybiExO3JldHVybiEwfSxpc0VtcHR5Um93KGMpe2xldCBsLGEsZCxoO2ZvcihsPTAsYT10aGlzLmNvdW50Q29scygpO2w8YTtsKyspaWYoZD10aGlzLmdldERhdGFBdENlbGwoYyxsKSwhMT09PWpjKGQpKXJldHVybiJvYmplY3QiPT10eXBlb2YgZCYmKGg9dGhpcy5nZXRD'@; put 'ZWxsTWV0YShjLGwpLEhPKHRoaXMuZ2V0U2NoZW1hKClbaC5wcm9wXSxkKSk7cmV0dXJuITB9LGxhYmVsOnZvaWQgMCxsYW5ndWFnZToiZW4tVVMiLGxheW91dERpcmVjdGlvbjoiaW5oZXJpdCIsbGljZW5zZUtleTp2b2lkIDAsbG9jYWxlOiJlbi1VUyIsbWFudWFsQ29sdW1uRnJlZXplOnZv'@; put 'aWQgMCxtYW51YWxDb2x1bW5Nb3ZlOnZvaWQgMCxtYW51YWxDb2x1bW5SZXNpemU6dm9pZCAwLG1hbnVhbFJvd01vdmU6dm9pZCAwLG1hbnVhbFJvd1Jlc2l6ZTp2b2lkIDAsbWF4Q29sczoxLzAsbWF4Um93czoxLzAsbWVyZ2VDZWxsczohMSxtaW5Db2xzOjAsbWluUm93czowLG1pblNwYXJl'@; put 'Q29sczowLG1pblNwYXJlUm93czowLG11bHRpQ29sdW1uU29ydGluZzp2b2lkIDAsbmF2aWdhYmxlSGVhZGVyczohMSx0YWJOYXZpZ2F0aW9uOiEwLG5lc3RlZEhlYWRlcnM6dm9pZCAwLG5lc3RlZFJvd3M6dm9pZCAwLG5vV29yZFdyYXBDbGFzc05hbWU6Imh0Tm9XcmFwIixudW1lcmljRm9y'@; put 'bWF0OnZvaWQgMCxvYnNlcnZlRE9NVmlzaWJpbGl0eTohMCxvdXRzaWRlQ2xpY2tEZXNlbGVjdHM6ITAscGVyc2lzdGVudFN0YXRlOnZvaWQgMCxwbGFjZWhvbGRlcjp2b2lkIDAscGxhY2Vob2xkZXJDZWxsQ2xhc3NOYW1lOiJodFBsYWNlaG9sZGVyIixwcmV2ZW50T3ZlcmZsb3c6ITEscHJl'@; put 'dmVudFdoZWVsOiExLHJlYWRPbmx5OiExLHJlYWRPbmx5Q2VsbENsYXNzTmFtZToiaHREaW1tZWQiLHJlbmRlckFsbFJvd3M6ITEscmVuZGVyQWxsQ29sdW1uczohMSxyZW5kZXJlcjp2b2lkIDAscm93SGVhZGVyczp2b2lkIDAscm93SGVhZGVyV2lkdGg6dm9pZCAwLHJvd0hlaWdodHM6dm9p'@; put 'ZCAwLHNlYXJjaDohMSxzZWxlY3Rpb25Nb2RlOiJtdWx0aXBsZSIsc2VsZWN0T3B0aW9uczp2b2lkIDAsc2tpcENvbHVtbk9uUGFzdGU6ITEsc2tpcFJvd09uUGFzdGU6ITEsc29ydEJ5UmVsZXZhbmNlOiEwLHNvdXJjZTp2b2lkIDAsc3RhcnRDb2xzOjUsc3RhcnRSb3dzOjUsc3RyZXRjaEg6'@; put 'Im5vbmUiLHN0cmljdDp2b2lkIDAsdGFibGVDbGFzc05hbWU6dm9pZCAwLHRleHRFbGxpcHNpczohMSx0aGVtZU5hbWU6dm9pZCAwLHRhYk1vdmVzOntyb3c6MCxjb2w6MX0sdGl0bGU6dm9pZCAwLHRyaW1Ecm9wZG93bjohMCx0cmltUm93czp2b2lkIDAsdHJpbVdoaXRlc3BhY2U6ITAsdHlw'@; put 'ZToidGV4dCIsdW5jaGVja2VkVGVtcGxhdGU6dm9pZCAwLHVuZG86ITAsdmFsaWRhdG9yOnZvaWQgMCx2aWV3cG9ydENvbHVtblJlbmRlcmluZ09mZnNldDoiYXV0byIsdmlld3BvcnRSb3dSZW5kZXJpbmdPZmZzZXQ6ImF1dG8iLHZpZXdwb3J0Q29sdW1uUmVuZGVyaW5nVGhyZXNob2xkOjAs'@; put 'dmlld3BvcnRSb3dSZW5kZXJpbmdUaHJlc2hvbGQ6MCx2aXNpYmxlUm93czoxMCx3aWR0aDp2b2lkIDAsd29yZFdyYXA6ITB9KTtmdW5jdGlvbiBwcGUoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIGRydChjKXt2YXIgbD1mdW5jdGlvbiBocnQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8'@; put 'fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEg'@; put 'cHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZp'@; put 'Z3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWNsYXNzIHBydHtjb25zdHJ1Y3RvcihsKXtwcGUodGhpcywibWV0YUN0b3IiLGNsYXNze30pLHBwZSh0aGlzLCJtZXRhIix2b2lkIDApLHRoaXMubWV0YT10aGlzLm1ldGFDdG9yLnByb3RvdHlwZSx3dSh0aGlzLm1ldGEsZnBlKCkp'@; put 'LHRoaXMubWV0YS5pbnN0YW5jZT1sfWdldE1ldGFDb25zdHJ1Y3Rvcigpe3JldHVybiB0aGlzLm1ldGFDdG9yfWdldE1ldGEoKXtyZXR1cm4gdGhpcy5tZXRhfXVwZGF0ZU1ldGEobCl7dmFyIGE7d3UodGhpcy5tZXRhLGwpLFBQKHRoaXMubWV0YSx7Li4ubCx0eXBlOm51bGwhPT0oYT1sLnR5'@; put 'cGUpJiZ2b2lkIDAhPT1hP2E6dGhpcy5tZXRhLnR5cGV9LGwpfX1jbGFzcyB5cnR7Y29uc3RydWN0b3IobCl7IWZ1bmN0aW9uIGdydChjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gbXJ0KGMpe3ZhciBsPWZ1bmN0aW9uIHZydChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJu'@; put 'IGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUg'@; put 'dmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEw'@; put 'LHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9KHRoaXMsIm1ldGEiLHZvaWQgMCk7Y29uc3QgYT1sLmdldE1ldGFDb25zdHJ1Y3RvcigpO3RoaXMubWV0YT1uZXcgYX1nZXRNZXRhKCl7cmV0dXJuIHRoaXMubWV0YX11cGRhdGVNZXRhKGwpe3d1KHRoaXMubWV0YSxsKSxQUCh0aGlzLm1ldGEsbCxs'@; put 'KX19ZnVuY3Rpb24gVlAoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIGJydChjKXt2YXIgbD1mdW5jdGlvbiBfcnQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxs'@; put 'fHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3Jl'@; put 'dHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWNsYXNzIEJQe2NvbnN0cnVjdG9yKGwpe1ZQKHRoaXMsInZhbHVl'@; put 'RmFjdG9yeSIsdm9pZCAwKSxWUCh0aGlzLCJkYXRhIixbXSksVlAodGhpcywiaW5kZXgiLFtdKSxWUCh0aGlzLCJob2xlcyIsbmV3IFNldCksdGhpcy52YWx1ZUZhY3Rvcnk9bH1vYnRhaW4obCl7SFAoKCk9PkZQKGwpLCJFeHBlY3RpbmcgYW4gdW5zaWduZWQgbnVtYmVyLiIpO2NvbnN0IGE9'@; put 'dGhpcy5fZ2V0U3RvcmFnZUluZGV4QnlLZXkobCk7bGV0IGQ7aWYoYT49MClkPXRoaXMuZGF0YVthXSx2b2lkIDA9PT1kJiYoZD10aGlzLnZhbHVlRmFjdG9yeShsKSx0aGlzLmRhdGFbYV09ZCk7ZWxzZSBpZihkPXRoaXMudmFsdWVGYWN0b3J5KGwpLHRoaXMuaG9sZXMuc2l6ZT4wKXtjb25z'@; put 'dCBoPXRoaXMuaG9sZXMudmFsdWVzKCkubmV4dCgpLnZhbHVlO3RoaXMuaG9sZXMuZGVsZXRlKGgpLHRoaXMuZGF0YVtoXT1kLHRoaXMuaW5kZXhbbF09aH1lbHNlIHRoaXMuZGF0YS5wdXNoKGQpLHRoaXMuaW5kZXhbbF09dGhpcy5kYXRhLmxlbmd0aC0xO3JldHVybiBkfWluc2VydChsKXts'@; put 'ZXQgYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MTtIUCgoKT0+RlAobCl8fE5QKGwpLCJFeHBlY3RpbmcgYW4gdW5zaWduZWQgbnVtYmVyIG9yIG51bGwvdW5kZWZpbmVkIGFyZ3VtZW50LiIpO2NvbnN0IGQ9W10saD10aGlzLmRhdGEu'@; put 'bGVuZ3RoO2ZvcihsZXQgdj0wO3Y8YTt2KyspZC5wdXNoKGgrdiksdGhpcy5kYXRhLnB1c2godm9pZCAwKTtjb25zdCBmPU5QKGwpP3RoaXMuaW5kZXgubGVuZ3RoOmw7dGhpcy5pbmRleD1bLi4udGhpcy5pbmRleC5zbGljZSgwLGYpLC4uLmQsLi4udGhpcy5pbmRleC5zbGljZShmKV19cmVt'@; put 'b3ZlKGwpe2xldCBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToxO0hQKCgpPT5GUChsKXx8TlAobCksIkV4cGVjdGluZyBhbiB1bnNpZ25lZCBudW1iZXIgb3IgbnVsbC91bmRlZmluZWQgYXJndW1lbnQuIik7Y29uc3QgZD10aGlzLmlu'@; put 'ZGV4LnNwbGljZShOUChsKT90aGlzLmluZGV4Lmxlbmd0aC1hOmwsYSk7Zm9yKGxldCBoPTA7aDxkLmxlbmd0aDtoKyspe2NvbnN0IGY9ZFtoXTsibnVtYmVyIj09dHlwZW9mIGYmJnRoaXMuaG9sZXMuYWRkKGYpfX1zaXplKCl7cmV0dXJuIHRoaXMuZGF0YS5sZW5ndGgtdGhpcy5ob2xlcy5z'@; put 'aXplfXZhbHVlcygpe3JldHVybiB0aGlzLmRhdGEuZmlsdGVyKChsLGEpPT52b2lkIDAhPT1sJiYhdGhpcy5ob2xlcy5oYXMoYSkpW1N5bWJvbC5pdGVyYXRvcl0oKX1lbnRyaWVzKCl7Y29uc3QgbD1bXTtmb3IobGV0IGQ9MDtkPHRoaXMuZGF0YS5sZW5ndGg7ZCsrKXtjb25zdCBoPXRoaXMu'@; put 'X2dldEtleUJ5U3RvcmFnZUluZGV4KGQpOy0xIT09aCYmdm9pZCAwIT09dGhpcy5kYXRhW2RdJiZsLnB1c2goW2gsdGhpcy5kYXRhW2RdXSl9bGV0IGE9MDtyZXR1cm57bmV4dDooKT0+e2lmKGE8bC5sZW5ndGgpe2NvbnN0IGQ9bFthXTtyZXR1cm4gYSs9MSx7dmFsdWU6ZCxkb25lOiExfX1y'@; put 'ZXR1cm57ZG9uZTohMH19fX1jbGVhcigpe3RoaXMuZGF0YT1bXSx0aGlzLmluZGV4PVtdLHRoaXMuaG9sZXMuY2xlYXIoKX1fZ2V0U3RvcmFnZUluZGV4QnlLZXkobCl7cmV0dXJuIHRoaXMuaW5kZXgubGVuZ3RoPmw/dGhpcy5pbmRleFtsXTotMX1fZ2V0S2V5QnlTdG9yYWdlSW5kZXgobCl7'@; put 'cmV0dXJuIHRoaXMuaW5kZXguaW5kZXhPZihsKX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiB0aGlzLmVudHJpZXMoKX19ZnVuY3Rpb24gZ3BlKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiB3cnQoYyl7dmFyIGw9ZnVuY3Rpb24gQ3J0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwh'@; put 'YylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHBy'@; put 'aW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1'@; put 'cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31jb25zdCBTcnQ9WyJkYXRhIiwid2lkdGgiXTtjbGFzcyBNcnR7Y29uc3RydWN0b3IobCl7Z3BlKHRoaXMsImdsb2JhbE1ldGEiLHZvaWQgMCksZ3BlKHRoaXMsIm1ldGFzIixuZXcgQlAoKCk9PnRoaXMuX2NyZWF0ZU1ldGEoKSkpLHRo'@; put 'aXMuZ2xvYmFsTWV0YT1sLHRoaXMubWV0YXM9bmV3IEJQKCgpPT50aGlzLl9jcmVhdGVNZXRhKCkpfXVwZGF0ZU1ldGEobCxhKXtjb25zdCBkPXRoaXMuZ2V0TWV0YShsKTt3dShkLGEpLFBQKGQsYSl9Y3JlYXRlQ29sdW1uKGwsYSl7dGhpcy5tZXRhcy5pbnNlcnQobCxhKX1yZW1vdmVDb2x1'@; put 'bW4obCxhKXt0aGlzLm1ldGFzLnJlbW92ZShsLGEpfWdldE1ldGEobCl7cmV0dXJuIHRoaXMubWV0YXMub2J0YWluKGwpfWdldE1ldGFDb25zdHJ1Y3RvcihsKXtyZXR1cm4gdGhpcy5tZXRhcy5vYnRhaW4obCkuY29uc3RydWN0b3J9Y2xlYXJDYWNoZSgpe3RoaXMubWV0YXMuY2xlYXIoKX1f'@; put 'Y3JlYXRlTWV0YSgpe3JldHVybiBmdW5jdGlvbiB1cnQoYyl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOltdO2Z1bmN0aW9uIGEoKXt9VTJlKGEsYyk7Zm9yKGxldCBkPTA7ZDxsLmxlbmd0aDtkKyspYS5wcm90b3R5cGVbbFtk'@; put 'XV09dm9pZCAwO3JldHVybiBhfSh0aGlzLmdsb2JhbE1ldGEuZ2V0TWV0YUNvbnN0cnVjdG9yKCksU3J0KS5wcm90b3R5cGV9fWZ1bmN0aW9uIG1wZShjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24geHJ0KGMpe3ZhciBsPWZ1bmN0aW9uIEVydChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8'@; put 'IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBw'@; put 'cmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmln'@; put 'dXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9Y2xhc3MgVHJ0e2NvbnN0cnVjdG9yKGwpe21wZSh0aGlzLCJjb2x1bW5NZXRhIix2b2lkIDApLG1wZSh0aGlzLCJtZXRhcyIsbmV3IEJQKCgpPT50aGlzLl9jcmVhdGVSb3coKSkpLHRoaXMuY29sdW1uTWV0YT1sfXVwZGF0ZU1ldGEo'@; put 'bCxhLGQpe2NvbnN0IGg9dGhpcy5nZXRNZXRhKGwsYSk7d3UoaCxkKSxQUChoLGQpfWNyZWF0ZVJvdyhsLGEpe3RoaXMubWV0YXMuaW5zZXJ0KGwsYSl9Y3JlYXRlQ29sdW1uKGwsYSl7Zm9yKGxldCBkPTA7ZDx0aGlzLm1ldGFzLnNpemUoKTtkKyspdGhpcy5tZXRhcy5vYnRhaW4oZCkuaW5z'@; put 'ZXJ0KGwsYSl9cmVtb3ZlUm93KGwsYSl7dGhpcy5tZXRhcy5yZW1vdmUobCxhKX1yZW1vdmVDb2x1bW4obCxhKXtmb3IobGV0IGQ9MDtkPHRoaXMubWV0YXMuc2l6ZSgpO2QrKyl0aGlzLm1ldGFzLm9idGFpbihkKS5yZW1vdmUobCxhKX1nZXRNZXRhKGwsYSxkKXtjb25zdCBoPXRoaXMubWV0'@; put 'YXMub2J0YWluKGwpLm9idGFpbihhKTtyZXR1cm4gdm9pZCAwPT09ZD9oOmhbZF19c2V0TWV0YShsLGEsZCxoKXt2YXIgZjtjb25zdCB2PXRoaXMubWV0YXMub2J0YWluKGwpLm9idGFpbihhKTtudWxsPT09KGY9di5fYXV0b21hdGljYWxseUFzc2lnbmVkTWV0YVByb3BzKXx8dm9pZCAwPT09'@; put 'Znx8Zi5kZWxldGUoZCksdltkXT1ofXJlbW92ZU1ldGEobCxhLGQpe2RlbGV0ZSB0aGlzLm1ldGFzLm9idGFpbihsKS5vYnRhaW4oYSlbZF19Z2V0TWV0YXMoKXtjb25zdCBsPVtdLGE9QXJyYXkuZnJvbSh0aGlzLm1ldGFzLnZhbHVlcygpKTtmb3IobGV0IGQ9MDtkPGEubGVuZ3RoO2QrKylI'@; put 'YShhW2RdKSYmbC5wdXNoKC4uLmFbZF0udmFsdWVzKCkpO3JldHVybiBsfWdldE1ldGFzQXRSb3cobCl7SFAoKCk9PkZQKGwpLCJFeHBlY3RpbmcgYW4gdW5zaWduZWQgbnVtYmVyLiIpO2NvbnN0IGE9bmV3IE1hcCh0aGlzLm1ldGFzKTtyZXR1cm4gYS5oYXMobCk/QXJyYXkuZnJvbShhLmdl'@; put 'dChsKS52YWx1ZXMoKSk6W119Y2xlYXJDYWNoZSgpe3RoaXMubWV0YXMuY2xlYXIoKX1fY3JlYXRlUm93KCl7cmV0dXJuIG5ldyBCUChsPT50aGlzLl9jcmVhdGVNZXRhKGwpKX1fY3JlYXRlTWV0YShsKXtyZXR1cm4gbmV3KHRoaXMuY29sdW1uTWV0YS5nZXRNZXRhQ29uc3RydWN0b3IobCkp'@; put 'fX1jbGFzcyB2cGV7Y29uc3RydWN0b3IobCl7bGV0IGE9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LGQ9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOltdO3RoaXMuaG90PWwsdGhp'@; put 'cy5nbG9iYWxNZXRhPW5ldyBwcnQobCksdGhpcy50YWJsZU1ldGE9bmV3IHlydCh0aGlzLmdsb2JhbE1ldGEpLHRoaXMuY29sdW1uTWV0YT1uZXcgTXJ0KHRoaXMuZ2xvYmFsTWV0YSksdGhpcy5jZWxsTWV0YT1uZXcgVHJ0KHRoaXMuY29sdW1uTWV0YSksZC5mb3JFYWNoKGg9Pm5ldyBoKHRo'@; put 'aXMpKSx0aGlzLmdsb2JhbE1ldGEudXBkYXRlTWV0YShhKX1nZXRHbG9iYWxNZXRhKCl7cmV0dXJuIHRoaXMuZ2xvYmFsTWV0YS5nZXRNZXRhKCl9dXBkYXRlR2xvYmFsTWV0YShsKXt0aGlzLmdsb2JhbE1ldGEudXBkYXRlTWV0YShsKX1nZXRUYWJsZU1ldGEoKXtyZXR1cm4gdGhpcy50YWJs'@; put 'ZU1ldGEuZ2V0TWV0YSgpfXVwZGF0ZVRhYmxlTWV0YShsKXt0aGlzLnRhYmxlTWV0YS51cGRhdGVNZXRhKGwpfWdldENvbHVtbk1ldGEobCl7cmV0dXJuIHRoaXMuY29sdW1uTWV0YS5nZXRNZXRhKGwpfXVwZGF0ZUNvbHVtbk1ldGEobCxhKXt0aGlzLmNvbHVtbk1ldGEudXBkYXRlTWV0YShs'@; put 'LGEpfWdldENlbGxNZXRhKGwsYSxkKXtjb25zdCBoPXRoaXMuY2VsbE1ldGEuZ2V0TWV0YShsLGEpO3JldHVybiBoLnZpc3VhbFJvdz1kLnZpc3VhbFJvdyxoLnZpc3VhbENvbD1kLnZpc3VhbENvbHVtbixoLnJvdz1sLGguY29sPWEsZC5za2lwTWV0YUV4dGVuc2lvbnx8dGhpcy5ydW5Mb2Nh'@; put 'bEhvb2tzKCJhZnRlckdldENlbGxNZXRhIixoKSxofWdldENlbGxNZXRhS2V5VmFsdWUobCxhLGQpe2lmKCJzdHJpbmciIT10eXBlb2YgZCl0aHJvdyBuZXcgRXJyb3IoIlRoZSBwYXNzZWQgY2VsbCBtZXRhIG9iamVjdCBrZXkgaXMgbm90IGEgc3RyaW5nIik7cmV0dXJuIHRoaXMuY2VsbE1l'@; put 'dGEuZ2V0TWV0YShsLGEsZCl9c2V0Q2VsbE1ldGEobCxhLGQsaCl7dGhpcy5jZWxsTWV0YS5zZXRNZXRhKGwsYSxkLGgpfXVwZGF0ZUNlbGxNZXRhKGwsYSxkKXt0aGlzLmNlbGxNZXRhLnVwZGF0ZU1ldGEobCxhLGQpfXJlbW92ZUNlbGxNZXRhKGwsYSxkKXt0aGlzLmNlbGxNZXRhLnJlbW92'@; put 'ZU1ldGEobCxhLGQpfWdldENlbGxzTWV0YSgpe3JldHVybiB0aGlzLmNlbGxNZXRhLmdldE1ldGFzKCl9Z2V0Q2VsbHNNZXRhQXRSb3cobCl7cmV0dXJuIHRoaXMuY2VsbE1ldGEuZ2V0TWV0YXNBdFJvdyhsKX1jcmVhdGVSb3cobCl7dGhpcy5jZWxsTWV0YS5jcmVhdGVSb3cobCxhcmd1bWVu'@; put 'dHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MSl9cmVtb3ZlUm93KGwpe3RoaXMuY2VsbE1ldGEucmVtb3ZlUm93KGwsYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjEpfWNyZWF0ZUNvbHVtbihsKXts'@; put 'ZXQgYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MTt0aGlzLmNlbGxNZXRhLmNyZWF0ZUNvbHVtbihsLGEpLHRoaXMuY29sdW1uTWV0YS5jcmVhdGVDb2x1bW4obCxhKX1yZW1vdmVDb2x1bW4obCl7bGV0IGE9YXJndW1lbnRzLmxlbmd0'@; put 'aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjE7dGhpcy5jZWxsTWV0YS5yZW1vdmVDb2x1bW4obCxhKSx0aGlzLmNvbHVtbk1ldGEucmVtb3ZlQ29sdW1uKGwsYSl9Y2xlYXJDZWxsc0NhY2hlKCl7dGhpcy5jZWxsTWV0YS5jbGVhckNhY2hlKCl9Y2xlYXJDYWNoZSgp'@; put 'e3RoaXMuY2VsbE1ldGEuY2xlYXJDYWNoZSgpLHRoaXMuY29sdW1uTWV0YS5jbGVhckNhY2hlKCl9fWZ1bmN0aW9uIHlwZShjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gQXJ0KGMpe3ZhciBsPWZ1bmN0aW9uIGtydChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFy'@; put 'IGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUu'@; put 'Iil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRh'@; put 'YmxlOiEwfSk6Y1tsXT1hLGN9eGwodnBlLHkxKTtjbGFzcyBEcnR7Y29uc3RydWN0b3IobCl7dmFyIGE9dGhpczt5cGUodGhpcywibWV0YU1hbmFnZXIiLHZvaWQgMCkseXBlKHRoaXMsIm1ldGFTeW5jTWVtbyIsbmV3IE1hcCksdGhpcy5tZXRhTWFuYWdlcj1sLGwuYWRkTG9jYWxIb29rKCJh'@; put 'ZnRlckdldENlbGxNZXRhIixmdW5jdGlvbigpe3JldHVybiBhLmV4dGVuZENlbGxNZXRhKC4uLmFyZ3VtZW50cyl9KSxNYS5nZXRTaW5nbGV0b24oKS5hZGQoImJlZm9yZVJlbmRlciIsZD0+e2QmJnRoaXMubWV0YVN5bmNNZW1vLmNsZWFyKCl9LHRoaXMubWV0YU1hbmFnZXIuaG90KX1leHRl'@; put 'bmRDZWxsTWV0YShsKXt2YXIgYTtjb25zdHtyb3c6ZCxjb2w6aH09bDtpZihudWxsIT09KGE9dGhpcy5tZXRhU3luY01lbW8uZ2V0KGQpKSYmdm9pZCAwIT09YSYmYS5oYXMoaCkpcmV0dXJuO2NvbnN0e3Zpc3VhbFJvdzpmLHZpc3VhbENvbDp2fT1sLE09dGhpcy5tZXRhTWFuYWdlci5ob3Qs'@; put 'ST1NLmNvbFRvUHJvcCh2KTtsLnByb3A9SSxNLnJ1bkhvb2tzKCJiZWZvcmVHZXRDZWxsTWV0YSIsZix2LGwpO2NvbnN0IEc9Q3UobCwidHlwZSIpP2wudHlwZTpudWxsO2xldCByZT1mbChsLmNlbGxzKT9sLmNlbGxzKGQsaCxJKTpudWxsO2lmKEcpaWYocmUpe3ZhciB1ZTtyZS50eXBlPW51'@; put 'bGwhPT0odWU9cmUudHlwZSkmJnZvaWQgMCE9PXVlP3VlOkd9ZWxzZSByZT17dHlwZTpHfTtyZSYmdGhpcy5tZXRhTWFuYWdlci51cGRhdGVDZWxsTWV0YShkLGgscmUpLE0ucnVuSG9va3MoImFmdGVyR2V0Q2VsbE1ldGEiLGYsdixsKSx0aGlzLm1ldGFTeW5jTWVtby5oYXMoZCl8fHRoaXMu'@; put 'bWV0YVN5bmNNZW1vLnNldChkLG5ldyBTZXQpLHRoaXMubWV0YVN5bmNNZW1vLmdldChkKS5hZGQoaCl9fWZ1bmN0aW9uIEVxKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBMcnQoYyl7dmFyIGw9ZnVuY3Rpb24gT3J0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2'@; put 'YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1'@; put 'ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3Jp'@; put 'dGFibGU6ITB9KTpjW2xdPWEsY312YXIgYnBlPW5ldyBXZWFrTWFwO2NsYXNzIEhydHtjb25zdHJ1Y3RvcihsKXtFcSh0aGlzLCJtZXRhTWFuYWdlciIsdm9pZCAwKSxFcSh0aGlzLCJ1c2FnZVRyYWNrZXIiLG5ldyBTZXQpLEVxKHRoaXMsInByb3BEZXNjcmlwdG9ycyIsbmV3IE1hcChbWyJh'@; put 'cmlhVGFncyIse2luaXRPbmx5OiEwfV0sWyJmaXhlZENvbHVtbnNMZWZ0Iix7dGFyZ2V0OiJmaXhlZENvbHVtbnNTdGFydCIsb25DaGFuZ2UoYSl7aWYodGhpcy5tZXRhTWFuYWdlci5ob3QuaXNSdGwoKSYmImZpeGVkQ29sdW1uc0xlZnQiPT09YSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBgZml4'@; put 'ZWRDb2x1bW5zTGVmdGAgaXMgbm90IHN1cHBvcnRlZCBmb3IgUlRMLiBQbGVhc2UgdXNlIG9wdGlvbiBgZml4ZWRDb2x1bW5zU3RhcnRgLiIpO2lmKHRoaXMudXNhZ2VUcmFja2VyLmhhcygiZml4ZWRDb2x1bW5zTGVmdCIpJiZ0aGlzLnVzYWdlVHJhY2tlci5oYXMoImZpeGVkQ29sdW1uc1N0'@; put 'YXJ0IikpdGhyb3cgbmV3IEVycm9yKCJUaGUgYGZpeGVkQ29sdW1uc0xlZnRgIGFuZCBgZml4ZWRDb2x1bW5zU3RhcnRgIHNob3VsZCBub3QgYmUgdXNlZCB0b2dldGhlci4gUGxlYXNlIHVzZSBvbmx5IHRoZSBvcHRpb24gYGZpeGVkQ29sdW1uc1N0YXJ0YC4iKX19XSxbImxheW91dERpcmVj'@; put 'dGlvbiIse2luaXRPbmx5OiEwfV0sWyJyZW5kZXJBbGxDb2x1bW5zIix7aW5pdE9ubHk6ITB9XSxbInJlbmRlckFsbFJvd3MiLHtpbml0T25seTohMH1dXSkpLGZ1bmN0aW9uIElydChjLGwsYSl7KGZ1bmN0aW9uIFJydChjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNh'@; put 'bm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShjLGwpLGwuc2V0KGMsYSl9KHRoaXMsYnBlLChhLGQsaCk9PntpZighaCl0aHJvdyBuZXcgRXJyb3IoYFRoZSBcYCR7YX1cYCBvcHRpb24gY2FuIG5vdCBiZSB1cGRhdGVkIGFm'@; put 'dGVyIHRoZSBIYW5kc29udGFibGUgaXMgaW5pdGlhbGl6ZWQuYCl9KSx0aGlzLm1ldGFNYW5hZ2VyPWwsdGhpcy5leHRlbmRNZXRhUHJvcHMoKX1leHRlbmRNZXRhUHJvcHMoKXt0aGlzLnByb3BEZXNjcmlwdG9ycy5mb3JFYWNoKChsLGEpPT57Y29uc3R7aW5pdE9ubHk6ZCx0YXJnZXQ6aCxv'@; put 'bkNoYW5nZTpmfT1sLHY9InN0cmluZyI9PXR5cGVvZiBoLE09dj9oOmEsST1gXyR7TX1gO3RoaXMubWV0YU1hbmFnZXIuZ2xvYmFsTWV0YS5tZXRhW0ldPXRoaXMubWV0YU1hbmFnZXIuZ2xvYmFsTWV0YS5tZXRhW01dLGY/KHRoaXMuaW5zdGFsbFByb3BXYXRjaGVyKGEsSSxmKSx2JiZ0aGlz'@; put 'Lmluc3RhbGxQcm9wV2F0Y2hlcihoLEksZikpOmQmJih0aGlzLmluc3RhbGxQcm9wV2F0Y2hlcihhLEksZnVuY3Rpb24gUHJ0KGMsbCl7cmV0dXJuIGMuZ2V0KGZ1bmN0aW9uIEZydChjLGwsYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGM/Yz09PWw6Yy5oYXMobCkpcmV0dXJuIGFyZ3VtZW50'@; put 'cy5sZW5ndGg8Mz9sOmE7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBlbGVtZW50IGlzIG5vdCBwcmVzZW50IG9uIHRoaXMgb2JqZWN0Iil9KGMsbCkpfShicGUsdGhpcykpLHRoaXMubWV0YU1hbmFnZXIuZ2xvYmFsTWV0YS5tZXRhLl9pbml0T25seVNldHRpbmdzfHwodGhpcy5tZXRh'@; put 'TWFuYWdlci5nbG9iYWxNZXRhLm1ldGEuX2luaXRPbmx5U2V0dGluZ3M9W10pLHRoaXMubWV0YU1hbmFnZXIuZ2xvYmFsTWV0YS5tZXRhLl9pbml0T25seVNldHRpbmdzLnB1c2goYSkpfSl9aW5zdGFsbFByb3BXYXRjaGVyKGwsYSxkKXtjb25zdCBoPXRoaXM7T2JqZWN0LmRlZmluZVByb3Bl'@; put 'cnR5KHRoaXMubWV0YU1hbmFnZXIuZ2xvYmFsTWV0YS5tZXRhLGwse2dldCgpe3JldHVybiB0aGlzW2FdfSxzZXQoZil7Y29uc3Qgdj0haC51c2FnZVRyYWNrZXIuaGFzKGwpO2gudXNhZ2VUcmFja2VyLmFkZChsKSxkLmNhbGwoaCxsLGYsdiksdGhpc1thXT1mfSxlbnVtZXJhYmxlOiEwLGNv'@; put 'bmZpZ3VyYWJsZTohMH0pfX1jb25zdCBfcGU9L14oXHJcbnxcblxyfFxyfFxuKS8sTnJ0PS9eW15cdFxyXG5dKy8sd3BlPS9eXHQvO2Z1bmN0aW9uIHJUKGMpe2xldCBsLGEsZCxoLHYsZj0iIjtmb3IobD0wLGE9Yy5sZW5ndGg7bDxhO2wrPTEpe2ZvcihoPWNbbF0ubGVuZ3RoLGQ9MDtkPGg7'@; put 'ZCs9MSlkPjAmJihmKz0iXHQiKSx2PWNbbF1bZF0sInN0cmluZyI9PXR5cGVvZiB2P3YuaW5kZXhPZigiXG4iKT4tMT9mKz1gIiR7di5yZXBsYWNlKC8iL2csJyIiJyl9ImA6Zis9djpmKz1udWxsPT12PyIiOnY7bCE9PWEtMSYmKGYrPSJcbiIpfXJldHVybiBmfWZ1bmN0aW9uIG45KGMsbCxh'@; put 'KXtyZXR1cm4obD1mdW5jdGlvbiBCcnQoYyl7dmFyIGw9ZnVuY3Rpb24ganJ0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2Jq'@; put 'ZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9m'@; put 'IGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31jbGFzcyBUX3tzdGF0aWMgZ2V0IERFU1RJTkFUSU9OX1JFTkRFUkVSKCl7cmV0dXJuIDF9c3RhdGlj'@; put 'IGdldCBERVNUSU5BVElPTl9DTElQQk9BUkRfR0VORVJBVE9SKCl7cmV0dXJuIDJ9Y29uc3RydWN0b3IobCxhLGQpe245KHRoaXMsImhvdCIsdm9pZCAwKSxuOSh0aGlzLCJtZXRhTWFuYWdlciIsdm9pZCAwKSxuOSh0aGlzLCJ0YWJsZU1ldGEiLHZvaWQgMCksbjkodGhpcywiZGF0YVNvdXJj'@; put 'ZSIsdm9pZCAwKSxuOSh0aGlzLCJkdWNrU2NoZW1hIix2b2lkIDApLG45KHRoaXMsImNvbFRvUHJvcENhY2hlIix2b2lkIDApLG45KHRoaXMsInByb3BUb0NvbENhY2hlIix2b2lkIDApLHRoaXMuaG90PWwsdGhpcy5tZXRhTWFuYWdlcj1kLHRoaXMudGFibGVNZXRhPWQuZ2V0VGFibGVNZXRh'@; put 'KCksdGhpcy5kYXRhU291cmNlPWEsdGhpcy5yZWZyZXNoRHVja1NjaGVtYSgpLHRoaXMuY3JlYXRlTWFwKCl9Y3JlYXRlTWFwKCl7Y29uc3QgbD10aGlzLmdldFNjaGVtYSgpO2lmKHR5cGVvZiBsPiJ1Iil0aHJvdyBuZXcgRXJyb3IoInRyeWluZyB0byBjcmVhdGUgYGNvbHVtbnNgIGRlZmlu'@; put 'aXRpb24gYnV0IHlvdSBkaWRuJ3QgcHJvdmlkZSBgc2NoZW1hYCBub3IgYGRhdGFgIik7Y29uc3QgYT10aGlzLnRhYmxlTWV0YS5jb2x1bW5zO2xldCBkO2lmKHRoaXMuY29sVG9Qcm9wQ2FjaGU9W10sdGhpcy5wcm9wVG9Db2xDYWNoZT1uZXcgTWFwLGEpe2xldCBoPTAsZj0wLHY9ITE7aWYo'@; put 'ImZ1bmN0aW9uIj09dHlwZW9mIGEpe2NvbnN0IE09Vk8obCk7aD1NPjA/TTp0aGlzLmNvdW50Rmlyc3RSb3dLZXlzKCksdj0hMH1lbHNlIGg9TWF0aC5taW4odGhpcy50YWJsZU1ldGEubWF4Q29scyxhLmxlbmd0aCk7Zm9yKGQ9MDtkPGg7ZCsrKXtjb25zdCBNPXY/YShkKTphW2RdO2lmKFhz'@; put 'KE0pKXtpZih0eXBlb2YgTS5kYXRhPCJ1Iil7Y29uc3QgST12P2Y6ZDt0aGlzLmNvbFRvUHJvcENhY2hlW0ldPU0uZGF0YSx0aGlzLnByb3BUb0NvbENhY2hlLnNldChNLmRhdGEsSSl9Zis9MX19fWVsc2UgdGhpcy5yZWN1cnNpdmVEdWNrQ29sdW1ucyhsKX1jb3VudEZpcnN0Um93S2V5cygp'@; put 'e3JldHVybiBGSyh0aGlzLmRhdGFTb3VyY2UpfXJlY3Vyc2l2ZUR1Y2tDb2x1bW5zKGwsYSxkKXtsZXQgdixoPWEsZj1kO3JldHVybiB0eXBlb2YgaD4idSImJihoPTAsZj0iIiksIm9iamVjdCI9PXR5cGVvZiBsJiYhQXJyYXkuaXNBcnJheShsKSYmcXMobCwoTSxJKT0+e251bGw9PT1NPyh2'@; put 'PWYrSSx0aGlzLmNvbFRvUHJvcENhY2hlLnB1c2godiksdGhpcy5wcm9wVG9Db2xDYWNoZS5zZXQodixoKSxoKz0xKTpoPXRoaXMucmVjdXJzaXZlRHVja0NvbHVtbnMoTSxoLGAke0l9LmApfSksaH1jb2xUb1Byb3AobCl7aWYoITE9PT1OdW1iZXIuaXNJbnRlZ2VyKGwpKXJldHVybiBsO2Nv'@; put 'bnN0IGE9dGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihsKTtyZXR1cm4gbnVsbD09PWE/bDp0aGlzLmNvbFRvUHJvcENhY2hlJiZIYSh0aGlzLmNvbFRvUHJvcENhY2hlW2FdKT90aGlzLmNvbFRvUHJvcENhY2hlW2FdOmF9cHJvcFRvQ29sKGwpe2NvbnN0IGE9dGhpcy5wcm9wVG9Db2xDYWNo'@; put 'ZS5nZXQobCk7aWYoSGEoYSkpcmV0dXJuIHRoaXMuaG90LnRvVmlzdWFsQ29sdW1uKGEpO2NvbnN0IGQ9dGhpcy5ob3QudG9WaXN1YWxDb2x1bW4obCk7cmV0dXJuIG51bGw9PT1kP2w6ZH1nZXRTY2hlbWEoKXtjb25zdCBsPXRoaXMudGFibGVNZXRhLmRhdGFTY2hlbWE7cmV0dXJuIGw/ImZ1'@; put 'bmN0aW9uIj09dHlwZW9mIGw/bCgpOmw6dGhpcy5kdWNrU2NoZW1hfWNyZWF0ZUR1Y2tTY2hlbWEoKXtyZXR1cm4gdGhpcy5kYXRhU291cmNlJiZ0aGlzLmRhdGFTb3VyY2VbMF0/cl8odGhpcy5kYXRhU291cmNlWzBdKTp7fX1yZWZyZXNoRHVja1NjaGVtYSgpe3RoaXMuZHVja1NjaGVtYT10'@; put 'aGlzLmNyZWF0ZUR1Y2tTY2hlbWEoKX1jcmVhdGVSb3cobCl7bGV0IGE9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjEse3NvdXJjZTpkLG1vZGU6aD0iYWJvdmUifT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1sy'@; put 'XT9hcmd1bWVudHNbMl06e307Y29uc3QgZj10aGlzLmhvdC5jb3VudFNvdXJjZVJvd3MoKTtsZXQgdj1mLE09MCxJPWw7aWYoKCJudW1iZXIiIT10eXBlb2YgSXx8ST49ZikmJihJPWYpLEk8dGhpcy5ob3QuY291bnRSb3dzKCkmJih2PXRoaXMuaG90LnRvUGh5c2ljYWxSb3coSSkpLCExPT09'@; put 'dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUNyZWF0ZVJvdyIsSSxhLGQpfHxudWxsPT09dilyZXR1cm57ZGVsdGE6MH07Y29uc3QgcmU9dGhpcy50YWJsZU1ldGEubWF4Um93cyx1ZT10aGlzLmdldFNjaGVtYSgpLmxlbmd0aCx5ZT1bXTtmb3IoO008YSYmZitNPHJlOyl7bGV0IEJlPW51bGw7'@; put 'ImFycmF5Ij09PXRoaXMuaG90LmRhdGFUeXBlP3RoaXMudGFibGVNZXRhLmRhdGFTY2hlbWE/QmU9cDEodGhpcy5nZXRTY2hlbWEoKSk6KEJlPVtdLEthKHVlLTEsKCk9PkJlLnB1c2gobnVsbCkpKToiZnVuY3Rpb24iPT09dGhpcy5ob3QuZGF0YVR5cGU/QmU9dGhpcy50YWJsZU1ldGEuZGF0'@; put 'YVNjaGVtYShJK00pOihCZT17fSx3RShCZSx0aGlzLmdldFNjaGVtYSgpKSkseWUucHVzaChCZSksTSs9MX10aGlzLmhvdC5yb3dJbmRleE1hcHBlci5pbnNlcnRJbmRleGVzKEksTSksImJlbG93Ij09PWgmJih2PU1hdGgubWluKHYrMSxmKSksdGhpcy5zcGxpY2VEYXRhKHYsMCx5ZSk7Y29u'@; put 'c3QgRWU9dGhpcy5ob3QudG9WaXN1YWxSb3codik7cmV0dXJuIHRoaXMuaG90LmNvdW50U291cmNlUm93cygpPT09eWUubGVuZ3RoJiZ0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5pbml0VG9MZW5ndGgodGhpcy5ob3QuZ2V0SW5pdGlhbENvbHVtbkNvdW50KCkpLE0+MCYmKG51bGw9PWw/'@; put 'dGhpcy5tZXRhTWFuYWdlci5jcmVhdGVSb3cobnVsbCxNKToiYXV0byIhPT1kJiZ0aGlzLm1ldGFNYW5hZ2VyLmNyZWF0ZVJvdyh2LGEpKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJDcmVhdGVSb3ciLEVlLE0sZCkse2RlbHRhOk0sc3RhcnRQaHlzaWNhbEluZGV4OnZ9fWNyZWF0ZUNvbChs'@; put 'KXtsZXQgYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MSx7c291cmNlOmQsbW9kZTpoPSJzdGFydCJ9PWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fTtpZighdGhpcy5ob3QuaXND'@; put 'b2x1bW5Nb2RpZmljYXRpb25BbGxvd2VkKCkpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgY3JlYXRlIG5ldyBjb2x1bW4uIFdoZW4gZGF0YSBzb3VyY2UgaW4gYW4gb2JqZWN0LCB5b3UgY2FuIG9ubHkgaGF2ZSBhcyBtdWNoIGNvbHVtbnMgYXMgZGVmaW5lZCBpbiBmaXJzdCBkYXRhIHJvdywg'@; put 'ZGF0YSBzY2hlbWEgb3IgaW4gdGhlICdjb2x1bW5zJyBzZXR0aW5nLklmIHlvdSB3YW50IHRvIGJlIGFibGUgdG8gYWRkIG5ldyBjb2x1bW5zLCB5b3UgaGF2ZSB0byB1c2UgYXJyYXkgZGF0YXNvdXJjZS4iKTtjb25zdCBmPXRoaXMuZGF0YVNvdXJjZSx2PXRoaXMudGFibGVNZXRhLm1heENv'@; put 'bHMsTT10aGlzLmhvdC5jb3VudFNvdXJjZUNvbHMoKSxJPXRoaXMuaG90LmNvdW50Q29scygpLEc9dGhpcy5ob3QuY291bnRTb3VyY2VSb3dzKCkscmU9Im51bWJlciI9PXR5cGVvZiBsJiZsPD1NP2w6STtpZighMT09PXRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVDcmVhdGVDb2wiLHJlLGEs'@; put 'ZCkpcmV0dXJue2RlbHRhOjB9O2NvbnN0IHVlPXJlPEk/dGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihyZSk6TSx5ZT0iZW5kIj09PWg/TWF0aC5taW4odWUrMSxNKTp1ZTtsZXQgRWU9MDtmb3IobGV0IEJlPXllO0VlPGEmJkkrRWU8djtCZSsrKXtpZigibnVtYmVyIiE9dHlwZW9mIHJlfHxy'@; put 'ZT49SStFZSlpZihHPjApZm9yKGxldCBHZT0wO0dlPEc7R2UrPTEpdHlwZW9mIGZbR2VdPiJ1IiYmKGZbR2VdPVtdKSxmW0dlXS5wdXNoKG51bGwpO2Vsc2UgZi5wdXNoKFtudWxsXSk7ZWxzZSBmb3IobGV0IEdlPTA7R2U8RztHZSsrKWZbR2VdLnNwbGljZShCZSwwLG51bGwpO0VlKz0xfXJl'@; put 'dHVybiBFZT4wJiYobnVsbD09bD90aGlzLm1ldGFNYW5hZ2VyLmNyZWF0ZUNvbHVtbihudWxsLEVlKToiYXV0byIhPT1kJiZ0aGlzLm1ldGFNYW5hZ2VyLmNyZWF0ZUNvbHVtbih5ZSxhKSksdGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIuaW5zZXJ0SW5kZXhlcyhyZSxFZSxoKSx0aGlzLmhv'@; put 'dC5ydW5Ib29rcygiYWZ0ZXJDcmVhdGVDb2wiLHRoaXMuaG90LnRvVmlzdWFsQ29sdW1uKHllKSxFZSxkKSx0aGlzLnJlZnJlc2hEdWNrU2NoZW1hKCkse2RlbHRhOkVlLHN0YXJ0UGh5c2ljYWxJbmRleDp5ZX19cmVtb3ZlUm93KGwpe2xldCBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAw'@; put 'IT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToxLGQ9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsaD1OdW1iZXIuaXNJbnRlZ2VyKGwpP2w6LWE7Y29uc3QgZj10aGlzLnZpc3VhbFJvd3NUb1BoeXNpY2FsKGgsYSksdj10aGlzLmhvdC5jb3VudFNvdXJjZVJvd3Mo'@; put 'KTtpZihoPSh2K2gpJXYsITE9PT10aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlUmVtb3ZlUm93IixoLGYubGVuZ3RoLGYsZCkpcmV0dXJuITE7Y29uc3QgST1mLmxlbmd0aDtpZih0aGlzLmZpbHRlckRhdGEoaCxJLGYpLGg8dGhpcy5ob3QuY291bnRSb3dzKCkpe3RoaXMuaG90LnJvd0luZGV4'@; put 'TWFwcGVyLnJlbW92ZUluZGV4ZXMoZik7Y29uc3QgcmU9SGEodGhpcy50YWJsZU1ldGEuY29sdW1ucyl8fEhhKHRoaXMudGFibGVNZXRhLmRhdGFTY2hlbWEpfHx0aGlzLnRhYmxlTWV0YS5jb2xIZWFkZXJzOzA9PT10aGlzLmhvdC5yb3dJbmRleE1hcHBlci5nZXROb3RUcmltbWVkSW5kZXhl'@; put 'c0xlbmd0aCgpJiYhcmUmJnRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLnNldEluZGV4ZXNTZXF1ZW5jZShbXSl9cmV0dXJuIGYuc2xpY2UoMCkuc29ydCgocmUsdWUpPT51ZS1yZSkuZm9yRWFjaChyZT0+e3RoaXMubWV0YU1hbmFnZXIucmVtb3ZlUm93KHJlLDEpfSksdGhpcy5ob3QucnVu'@; put 'SG9va3MoImFmdGVyUmVtb3ZlUm93IixoLEksZixkKSwhMH1yZW1vdmVDb2wobCl7bGV0IGE9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjEsZD1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMDtpZigib2JqZWN0Ij09'@; put 'PXRoaXMuaG90LmRhdGFUeXBlfHx0aGlzLnRhYmxlTWV0YS5jb2x1bW5zKXRocm93IG5ldyBFcnJvcigiY2Fubm90IHJlbW92ZSBjb2x1bW4gd2l0aCBvYmplY3QgZGF0YSBzb3VyY2Ugb3IgY29sdW1ucyBvcHRpb24gc3BlY2lmaWVkIik7bGV0IGg9Im51bWJlciIhPXR5cGVvZiBsPy1hOmw7'@; put 'aD0odGhpcy5ob3QuY291bnRDb2xzKCkraCkldGhpcy5ob3QuY291bnRDb2xzKCk7Y29uc3QgZj10aGlzLnZpc3VhbENvbHVtbnNUb1BoeXNpY2FsKGgsYSksdj1mLnNsaWNlKDApLnNvcnQoKHVlLHllKT0+eWUtdWUpO2lmKCExPT09dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZVJlbW92ZUNv'@; put 'bCIsaCxhLGYsZCkpcmV0dXJuITE7bGV0IEk9ITA7Y29uc3QgRz12Lmxlbmd0aCxyZT10aGlzLmRhdGFTb3VyY2U7Zm9yKGxldCB1ZT0wO3VlPEc7dWUrKylJJiZmWzBdIT09Zlt1ZV0tdWUmJihJPSExKTtpZihJKWZvcihsZXQgdWU9MCx5ZT10aGlzLmhvdC5jb3VudFNvdXJjZVJvd3MoKTt1'@; put 'ZTx5ZTt1ZSsrKXJlW3VlXS5zcGxpY2UoZlswXSxhKSwwPT09dWUmJnRoaXMubWV0YU1hbmFnZXIucmVtb3ZlQ29sdW1uKGZbMF0sYSk7ZWxzZSBmb3IobGV0IHVlPTAseWU9dGhpcy5ob3QuY291bnRTb3VyY2VSb3dzKCk7dWU8eWU7dWUrKylmb3IobGV0IEVlPTA7RWU8RztFZSsrKXJlW3Vl'@; put 'XS5zcGxpY2UodltFZV0sMSksMD09PXVlJiZ0aGlzLm1ldGFNYW5hZ2VyLnJlbW92ZUNvbHVtbih2W0VlXSwxKTtyZXR1cm4gaDx0aGlzLmhvdC5jb3VudENvbHMoKSYmKHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLnJlbW92ZUluZGV4ZXMoZiksIXRoaXMudGFibGVNZXRhLnJvd0hlYWRl'@; put 'cnMmJjA9PT10aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5nZXROb3RUcmltbWVkSW5kZXhlc0xlbmd0aCgpJiZ0aGlzLmhvdC5yb3dJbmRleE1hcHBlci5zZXRJbmRleGVzU2VxdWVuY2UoW10pKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJSZW1vdmVDb2wiLGgsYSxmLGQpLHRoaXMucmVm'@; put 'cmVzaER1Y2tTY2hlbWEoKSwhMH1zcGxpY2VDb2wobCxhLGQpe2NvbnN0IGg9dGhpcy5ob3QuZ2V0RGF0YUF0Q29sKGwpLGY9aC5zbGljZShhLGErZCksdj1oLnNsaWNlKGErZCk7Zm9yKHZhciBNPWFyZ3VtZW50cy5sZW5ndGgsST1uZXcgQXJyYXkoTT4zP00tMzowKSxHPTM7RzxNO0crKylJ'@; put 'W0ctM109YXJndW1lbnRzW0ddO2QkKEksdik7bGV0IHJlPTA7Zm9yKDtyZTxkOylJLnB1c2gobnVsbCkscmUrPTE7cmV0dXJuIE0yZShJKSx0aGlzLmhvdC5wb3B1bGF0ZUZyb21BcnJheShhLGwsSSxudWxsLG51bGwsInNwbGljZUNvbCIpLGZ9c3BsaWNlUm93KGwsYSxkKXtjb25zdCBoPXRo'@; put 'aXMuaG90LmdldFNvdXJjZURhdGFBdFJvdyhsKSxmPWguc2xpY2UoYSxhK2QpLHY9aC5zbGljZShhK2QpO2Zvcih2YXIgTT1hcmd1bWVudHMubGVuZ3RoLEk9bmV3IEFycmF5KE0+Mz9NLTM6MCksRz0zO0c8TTtHKyspSVtHLTNdPWFyZ3VtZW50c1tHXTtkJChJLHYpO2xldCByZT0wO2Zvcig7'@; put 'cmU8ZDspSS5wdXNoKG51bGwpLHJlKz0xO3JldHVybiB0aGlzLmhvdC5wb3B1bGF0ZUZyb21BcnJheShsLGEsW0ldLG51bGwsbnVsbCwic3BsaWNlUm93IiksZn1zcGxpY2VEYXRhKGwsYSxkKXtpZighMSE9PXRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVEYXRhU3BsaWNlIixsLGEsZCkpe2Nv'@; put 'bnN0IGY9Wy4uLnRoaXMuZGF0YVNvdXJjZS5zbGljZSgwLGwpLC4uLmQsLi4udGhpcy5kYXRhU291cmNlLnNsaWNlKGwpXTt0aGlzLmRhdGFTb3VyY2UubGVuZ3RoPTAsZi5mb3JFYWNoKHY9PnRoaXMuZGF0YVNvdXJjZS5wdXNoKHYpKX19ZmlsdGVyRGF0YShsLGEsZCl7bGV0IGg9dGhpcy5o'@; put 'b3QucnVuSG9va3MoImZpbHRlckRhdGEiLGwsYSxkKTshMT09PUFycmF5LmlzQXJyYXkoaCkmJihoPXRoaXMuZGF0YVNvdXJjZS5maWx0ZXIoKGYsdik9Pi0xPT09ZC5pbmRleE9mKHYpKSksdGhpcy5kYXRhU291cmNlLmxlbmd0aD0wLEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KHRoaXMu'@; put 'ZGF0YVNvdXJjZSxoKX1nZXQobCxhKXtjb25zdCBkPXRoaXMuaG90LnRvUGh5c2ljYWxSb3cobCk7bGV0IGg9dGhpcy5kYXRhU291cmNlW2RdO2NvbnN0IGY9dGhpcy5ob3QucnVuSG9va3MoIm1vZGlmeVJvd0RhdGEiLGQpO2g9aXNOYU4oZik/ZjpoO2NvbnN0e2RhdGFEb3ROb3RhdGlvbjp2'@; put 'fT10aGlzLmhvdC5nZXRTZXR0aW5ncygpO2xldCBNPW51bGw7aWYoaCYmaC5oYXNPd25Qcm9wZXJ0eSYmQ3UoaCxhKSlNPWhbYV07ZWxzZSBpZih2JiYic3RyaW5nIj09dHlwZW9mIGEmJmEuaW5kZXhPZigiLiIpPi0xKXtsZXQgST1oO2lmKCFJKXJldHVybiBudWxsO2NvbnN0IEc9YS5zcGxp'@; put 'dCgiLiIpO2ZvcihsZXQgcmU9MCx1ZT1HLmxlbmd0aDtyZTx1ZTtyZSsrKWlmKEk9SVtHW3JlXV0sdHlwZW9mIEk+InUiKXJldHVybiBudWxsO009SX1lbHNlImZ1bmN0aW9uIj09dHlwZW9mIGEmJihNPWEodGhpcy5kYXRhU291cmNlLnNsaWNlKGQsZCsxKVswXSkpO2lmKHRoaXMuaG90Lmhh'@; put 'c0hvb2soIm1vZGlmeURhdGEiKSl7Y29uc3QgST1GZChNKTt0aGlzLmhvdC5ydW5Ib29rcygibW9kaWZ5RGF0YSIsbCx0aGlzLnByb3BUb0NvbChhKSxJLCJnZXQiKSxJLmlzVG91Y2hlZCgpJiYoTT1JLnZhbHVlKX1yZXR1cm4gTX1nZXRDb3B5YWJsZShsLGEpe3JldHVybiB0aGlzLmhvdC5n'@; put 'ZXRDZWxsTWV0YShsLHRoaXMucHJvcFRvQ29sKGEpKS5jb3B5YWJsZT90aGlzLmdldChsLGEpOiIifXNldChsLGEsZCl7Y29uc3QgaD10aGlzLmhvdC50b1BoeXNpY2FsUm93KGwpO2xldCBmPWQsdj10aGlzLmRhdGFTb3VyY2VbaF07Y29uc3QgTT10aGlzLmhvdC5ydW5Ib29rcygibW9kaWZ5'@; put 'Um93RGF0YSIsaCk7aWYodj1pc05hTihNKT9NOnYsdGhpcy5ob3QuaGFzSG9vaygibW9kaWZ5RGF0YSIpKXtjb25zdCBHPUZkKGYpO3RoaXMuaG90LnJ1bkhvb2tzKCJtb2RpZnlEYXRhIixsLHRoaXMucHJvcFRvQ29sKGEpLEcsInNldCIpLEcuaXNUb3VjaGVkKCkmJihmPUcudmFsdWUpfWNv'@; put 'bnN0e2RhdGFEb3ROb3RhdGlvbjpJfT10aGlzLmhvdC5nZXRTZXR0aW5ncygpO2lmKHYmJnYuaGFzT3duUHJvcGVydHkmJkN1KHYsYSkpdlthXT1mO2Vsc2UgaWYoSSYmInN0cmluZyI9PXR5cGVvZiBhJiZhLmluZGV4T2YoIi4iKT4tMSl7bGV0IHVlLEc9dixyZT0wO2NvbnN0IHllPWEuc3Bs'@; put 'aXQoIi4iKTtmb3IocmU9MCx1ZT15ZS5sZW5ndGgtMTtyZTx1ZTtyZSsrKXtpZigiX19wcm90b19fIj09PXllW3JlXXx8ImNvbnN0cnVjdG9yIj09PXllW3JlXXx8InByb3RvdHlwZSI9PT15ZVtyZV0pcmV0dXJuO3R5cGVvZiBHW3llW3JlXV0+InUiJiYoR1t5ZVtyZV1dPXt9KSxHPUdbeWVb'@; put 'cmVdXX1HW3llW3JlXV09Zn1lbHNlIGlmKCJmdW5jdGlvbiI9PXR5cGVvZiBhKWEodGhpcy5kYXRhU291cmNlLnNsaWNlKGgsaCsxKVswXSxmKTtlbHNle2lmKCJfX3Byb3RvX18iPT09YXx8ImNvbnN0cnVjdG9yIj09PWF8fCJwcm90b3R5cGUiPT09YSlyZXR1cm47dlthXT1mfX12aXN1YWxS'@; put 'b3dzVG9QaHlzaWNhbChsLGEpe2NvbnN0IGQ9dGhpcy5ob3QuY291bnRTb3VyY2VSb3dzKCksaD1bXTtsZXQgTSxmPShkK2wpJWQsdj1hO2Zvcig7ZjxkJiZ2OylNPXRoaXMuaG90LnRvUGh5c2ljYWxSb3coZiksaC5wdXNoKE0pLHYtPTEsZis9MTtyZXR1cm4gaH12aXN1YWxDb2x1bW5zVG9Q'@; put 'aHlzaWNhbChsLGEpe2NvbnN0IGQ9dGhpcy5ob3QuY291bnRDb2xzKCksaD1bXTtsZXQgZj0oZCtsKSVkLHY9YTtmb3IoO2Y8ZCYmdjspe2NvbnN0IE09dGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihmKTtoLnB1c2goTSksdi09MSxmKz0xfXJldHVybiBofWNsZWFyKCl7Zm9yKGxldCBsPTA7'@; put 'bDx0aGlzLmhvdC5jb3VudFNvdXJjZVJvd3MoKTtsKyspZm9yKGxldCBhPTA7YTx0aGlzLmhvdC5jb3VudENvbHMoKTthKyspdGhpcy5zZXQobCx0aGlzLmNvbFRvUHJvcChhKSwiIil9Z2V0TGVuZ3RoKCl7Y29uc3QgbD10aGlzLnRhYmxlTWV0YS5tYXhSb3dzO2xldCBhO2E9bDwwfHwwPT09'@; put 'bD8wOmx8fDEvMDtjb25zdCBkPXRoaXMuaG90LnJvd0luZGV4TWFwcGVyLmdldE5vdFRyaW1tZWRJbmRleGVzTGVuZ3RoKCk7cmV0dXJuIE1hdGgubWluKGQsYSl9Z2V0QWxsKCl7Y29uc3QgbD17cm93OjAsY29sOjB9LGE9e3JvdzpNYXRoLm1heCh0aGlzLmhvdC5jb3VudFJvd3MoKS0xLDAp'@; put 'LGNvbDpNYXRoLm1heCh0aGlzLmhvdC5jb3VudENvbHMoKS0xLDApfTtyZXR1cm4gbC5yb3ctYS5yb3chPTB8fHRoaXMuaG90LmNvdW50U291cmNlUm93cygpP3RoaXMuZ2V0UmFuZ2UobCxhLFRfLkRFU1RJTkFUSU9OX1JFTkRFUkVSKTpbXX1jb3VudENhY2hlZENvbHVtbnMoKXtyZXR1cm4g'@; put 'dGhpcy5jb2xUb1Byb3BDYWNoZS5sZW5ndGh9Z2V0UmFuZ2UobCxhLGQpe2NvbnN0IGg9W107bGV0IGYsdixNO2NvbnN0IEk9dGhpcy50YWJsZU1ldGEubWF4Um93cyxHPXRoaXMudGFibGVNZXRhLm1heENvbHM7aWYoMD09PUl8fDA9PT1HKXJldHVybltdO2NvbnN0IHJlPWQ9PT1UXy5ERVNU'@; put 'SU5BVElPTl9DTElQQk9BUkRfR0VORVJBVE9SP3RoaXMuZ2V0Q29weWFibGU6dGhpcy5nZXQsdWU9TWF0aC5taW4oTWF0aC5tYXgoSS0xLDApLE1hdGgubWF4KGwucm93LGEucm93KSkseWU9TWF0aC5taW4oTWF0aC5tYXgoRy0xLDApLE1hdGgubWF4KGwuY29sLGEuY29sKSk7Zm9yKGY9TWF0'@; put 'aC5taW4obC5yb3csYS5yb3cpO2Y8PXVlO2YrKyl7TT1bXTtjb25zdCBFZT1mPj0wP3RoaXMuaG90LnRvUGh5c2ljYWxSb3coZik6Zjtmb3Iodj1NYXRoLm1pbihsLmNvbCxhLmNvbCk7djw9eWUmJm51bGwhPT1FZTt2KyspTS5wdXNoKHJlLmNhbGwodGhpcyxmLHRoaXMuY29sVG9Qcm9wKHYp'@; put 'KSk7bnVsbCE9PUVlJiZoLnB1c2goTSl9cmV0dXJuIGh9Z2V0VGV4dChsLGEpe3JldHVybiByVCh0aGlzLmdldFJhbmdlKGwsYSxUXy5ERVNUSU5BVElPTl9SRU5ERVJFUikpfWdldENvcHlhYmxlVGV4dChsLGEpe3JldHVybiByVCh0aGlzLmdldFJhbmdlKGwsYSxUXy5ERVNUSU5BVElPTl9D'@; put 'TElQQk9BUkRfR0VORVJBVE9SKSl9ZGVzdHJveSgpe3RoaXMuaG90PW51bGwsdGhpcy5tZXRhTWFuYWdlcj1udWxsLHRoaXMuZGF0YVNvdXJjZT1udWxsLHRoaXMuZHVja1NjaGVtYT1udWxsLHRoaXMuY29sVG9Qcm9wQ2FjaGUubGVuZ3RoPTAsdGhpcy5wcm9wVG9Db2xDYWNoZS5jbGVhcigp'@; put 'LHRoaXMucHJvcFRvQ29sQ2FjaGU9dm9pZCAwfX1jb25zdCB6cnQ9VF87ZnVuY3Rpb24gQ3BlKGMsbCxhLGQpe2NvbnN0e2hvdEluc3RhbmNlOmgsZGF0YU1hcDpmLGRhdGFTb3VyY2U6dixpbnRlcm5hbFNvdXJjZTpNLHNvdXJjZTpJLG1ldGFNYW5hZ2VyOkcsZmlyc3RSdW46cmV9PWQsdWU9'@; put 'ZjEoTSkseWU9aC5nZXRTZXR0aW5ncygpO2guZGF0YVR5cGU9QXJyYXkuaXNBcnJheSh5ZS5kYXRhU2NoZW1hKT8iYXJyYXkiOmZsKHllLmRhdGFTY2hlbWEpPyJmdW5jdGlvbiI6Im9iamVjdCIsZiYmZi5kZXN0cm95KCksYz1oLnJ1bkhvb2tzKGBiZWZvcmUke3VlfWAsYyxyZSxJKTtjb25z'@; put 'dCBFZT1uZXcgenJ0KGgsYyxHKTtpZihsKEVlKSwib2JqZWN0Ij09dHlwZW9mIGMmJm51bGwhPT1jKWMucHVzaCYmYy5zcGxpY2V8fChjPVtjXSk7ZWxzZXtpZihudWxsIT09Yyl0aHJvdyBuZXcgRXJyb3IoYCR7TX0gb25seSBhY2NlcHRzIGFycmF5IG9mIG9iamVjdHMgb3IgYXJyYXkgb2Yg'@; put 'YXJyYXlzICgke3R5cGVvZiBjfSBnaXZlbilgKTt7Y29uc3QgQmU9RWUuZ2V0U2NoZW1hKCk7Yz1bXTtsZXQgR2Usc3Q9MCxwdD0wO2ZvcihzdD0wLHB0PXllLnN0YXJ0Um93cztzdDxwdDtzdCsrKWlmKCJvYmplY3QiIT09aC5kYXRhVHlwZSYmImZ1bmN0aW9uIiE9PWguZGF0YVR5cGV8fCF5'@; put 'ZS5kYXRhU2NoZW1hKWlmKCJhcnJheSI9PT1oLmRhdGFUeXBlKUdlPXAxKEJlWzBdKSxjLnB1c2goR2UpO2Vsc2V7R2U9W107Zm9yKGxldCBkdD0wLHF0PXllLnN0YXJ0Q29scztkdDxxdDtkdCsrKUdlLnB1c2gobnVsbCk7Yy5wdXNoKEdlKX1lbHNlIEdlPXAxKEJlKSxjLnB1c2goR2UpfX1B'@; put 'cnJheS5pc0FycmF5KGNbMF0pJiYoaC5kYXRhVHlwZT0iYXJyYXkiKSx5ZS5kYXRhPWMsRWUuZGF0YVNvdXJjZT1jLHYuZGF0YT1jLHYuZGF0YVR5cGU9aC5kYXRhVHlwZSx2LmNvbFRvUHJvcD1FZS5jb2xUb1Byb3AuYmluZChFZSksdi5wcm9wVG9Db2w9RWUucHJvcFRvQ29sLmJpbmQoRWUp'@; put 'LHYuY291bnRDYWNoZWRDb2x1bW5zPUVlLmNvdW50Q2FjaGVkQ29sdW1ucy5iaW5kKEVlKSxhKEVlKSxoLnJ1bkhvb2tzKGBhZnRlciR7dWV9YCxjLHJlLEkpLHJlfHwoaC5ydW5Ib29rcygiYWZ0ZXJDaGFuZ2UiLG51bGwsTSksaC5yZW5kZXIoKSksaC5nZXRTZXR0aW5ncygpLmFyaWFUYWdz'@; put 'JiZtcyhoLnJvb3RFbGVtZW50LFtOMmUoLTEpLEZPKGguY291bnRDb2xzKCkrKGgudmlldz9oLmNvdW50Um93SGVhZGVycygpOjApKV0pfWZ1bmN0aW9uIEFfKGMpe2twKGMpJiZjLnNjcm9sbEludG9WaWV3KHtibG9jazoibmVhcmVzdCIsaW5saW5lOiJuZWFyZXN0In0pfWZ1bmN0aW9uIGpQ'@; put 'KGMpe2NvbnN0e3NlbGVjdGlvbjpsLHZpZXc6YX09YyxkPWMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxoPWwuZ2V0U2VsZWN0aW9uU291cmNlKCksZj1hLmdldEZpcnN0RnVsbHlWaXNpYmxlQ29sdW1uKCksdj1hLmdldExhc3RGdWxseVZpc2libGVDb2x1bW4oKSxNPWQuZ2V0VG9wU3RhcnRD'@; put 'b3JuZXIoKS5jb2wsST1kLmdldEJvdHRvbUVuZENvcm5lcigpLmNvbCxHPU08PWYscmU9ST49dix1ZT1hLmdldEZpcnN0RnVsbHlWaXNpYmxlUm93KCkseWU9YS5nZXRMYXN0RnVsbHlWaXNpYmxlUm93KCksRWU9ZC5nZXRUb3BTdGFydENvcm5lcigpLnJvdyxCZT1kLmdldEJvdHRvbUVuZENv'@; put 'cm5lcigpLnJvdyxHZT1FZTw9dWUsc3Q9QmU+PXllO3JldHVybntnZXRDb21wdXRlZENvbHVtblRhcmdldDpwdD0+Im1vdXNlIj09PWh8fCJrZXlib2FyZCI9PT1oP3B0LmNvbDpHJiZyZT9kLmhpZ2hsaWdodC5jb2w6Rz9NOnJlP0k6cHQuY29sLGdldENvbXB1dGVkUm93VGFyZ2V0OnB0PT4i'@; put 'bW91c2UiPT09aHx8ImtleWJvYXJkIj09PWg/cHQucm93OkdlJiZzdD9kLmhpZ2hsaWdodC5yb3c6R2U/RWU6c3Q/QmU6cHQucm93fX1jb25zdCBTcGU9ImdyaWREZWZhdWx0Iix6bT0iZWRpdG9yTWFuYWdlci5oYW5kbGluZ0VkaXRvciI7ZnVuY3Rpb24gTXBlKGMpe2NvbnN0IGE9Yy5yb290'@; put 'RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTtyZXR1cm4gYS50eXBlPSJ0ZXh0IixhLm5hbWU9Il9faHRGb2N1c0NhdGNoZXIiLGEuY2xhc3NMaXN0LmFkZCgiaHRGb2N1c0NhdGNoZXIiKSxjLmdldFNldHRpbmdzKCkuYXJpYVRhZ3MmJm1zKGEsW25fKCJGb2N1cyBjYXRjaGVyIild'@; put 'KSxhfWZ1bmN0aW9uIFRxKGMpe2NvbnN0e3Jvd0luZGV4TWFwcGVyOmwsY29sdW1uSW5kZXhNYXBwZXI6YX09Yyx7bmF2aWdhYmxlSGVhZGVyczpkfT1jLmdldFNldHRpbmdzKCk7bGV0IGg9ZCYmYy5jb3VudENvbEhlYWRlcnMoKT4wPy1jLmNvdW50Q29sSGVhZGVycygpOjAsZj1kJiZjLmNv'@; put 'dW50Um93SGVhZGVycygpPjA/LWMuY291bnRSb3dIZWFkZXJzKCk6MDtyZXR1cm4gMD09PWgmJihoPWwuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChoKSksMD09PWYmJihmPWEuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChmKSksbnVsbD09PWh8fG51bGw9PT1mP251bGw6Yy5f'@; put 'Y3JlYXRlQ2VsbENvb3JkcyhoLGYpfWZ1bmN0aW9uIEFxKGMpe3ZhciBsLGE7Y29uc3R7cm93SW5kZXhNYXBwZXI6ZCxjb2x1bW5JbmRleE1hcHBlcjpofT1jLHtuYXZpZ2FibGVIZWFkZXJzOmZ9PWMuZ2V0U2V0dGluZ3MoKTtsZXQgdj1kLmdldFJlbmRlcmFibGVJbmRleGVzTGVuZ3RoKCkt'@; put 'MSxNPWguZ2V0UmVuZGVyYWJsZUluZGV4ZXNMZW5ndGgoKS0xO2lmKHY8MCl7aWYoIWZ8fDA9PT1jLmNvdW50Q29sSGVhZGVycygpKXJldHVybiBudWxsO3Y9LTF9aWYoTTwwKXtpZighZnx8MD09PWMuY291bnRDb2xIZWFkZXJzKCkpcmV0dXJuIG51bGw7TT0tMX1yZXR1cm4gYy5fY3JlYXRl'@; put 'Q2VsbENvb3JkcyhudWxsIT09KGw9ZC5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KHYpKSYmdm9pZCAwIT09bD9sOnYsbnVsbCE9PShhPWguZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChNKSkmJnZvaWQgMCE9PWE/YTpNKX1jb25zdCB4cGU9bmV3IE1hcChbWyIgIiwic3BhY2Ui'@; put 'XSxbInNwYWNlYmFyIiwic3BhY2UiXSxbInNjcm9sbCIsInNjcm9sbGxvY2siXSxbImRlbCIsImRlbGV0ZSJdLFsiZXNjIiwiZXNjYXBlIl0sWyJtZWRpYW5leHR0cmFjayIsIm1lZGlhdHJhY2tuZXh0Il0sWyJtZWRpYXByZXZpb3VzdHJhY2siLCJtZWRpYXRyYWNrcHJldmlvdXMiXSxbInZv'@; put 'bHVtZXVwIiwiYXVkaW92b2x1bWV1cCJdLFsidm9sdW1lZG93biIsImF1ZGlvdm9sdW1lZG93biJdLFsidm9sdW1lbXV0ZSIsImF1ZGlvdm9sdW1lbXV0ZSJdLFsibXVsdGlwbHkiLCIqIl0sWyJhZGQiLCIrIl0sWyJkaXZpZGUiLCIvIl0sWyJzdWJ0cmFjdCIsIi0iXSxbImxlZnQiLCJhcnJv'@; put 'd2xlZnQiXSxbInJpZ2h0IiwiYXJyb3dyaWdodCJdLFsidXAiLCJhcnJvd3VwIl0sWyJkb3duIiwiYXJyb3dkb3duIl1dKSx6UD1jPT5jLm1hcChsPT57Y29uc3QgYT1sLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHhwZS5oYXMoYSk/eHBlLmdldChhKTphfSkuc29ydCgpLmpvaW4oIisiKSxFcGU9'@; put 'bmV3IE1hcChbWzk2LCJudW1wYWQwIl0sWzk3LCJudW1wYWQxIl0sWzk4LCJudW1wYWQyIl0sWzk5LCJudW1wYWQzIl0sWzEwMCwibnVtcGFkNCJdLFsxMDEsIm51bXBhZDUiXSxbMTAyLCJudW1wYWQ2Il0sWzEwMywibnVtcGFkNyJdLFsxMDQsIm51bXBhZDgiXSxbMTA1LCJudW1wYWQ5Il0s'@; put 'WzEwNiwibXVsdGlwbHkiXSxbMTA3LCJhZGQiXSxbMTA4LCJkZWNpbWFsIl0sWzEwOSwic3VidHJhY3QiXSxbMTEwLCJkZWNpbWFsIl0sWzExMSwiZGl2aWRlIl0sWzExMiwiZjEiXSxbMTEzLCJmMiJdLFsxMTQsImYzIl0sWzExNSwiZjQiXSxbMTE2LCJmNSJdLFsxMTcsImY2Il0sWzExOCwi'@; put 'ZjciXSxbMTE5LCJmOCJdLFsxMjAsImY5Il0sWzEyMSwiZjEwIl0sWzEyMiwiZjExIl0sWzEyMywiZjEyIl0sWzE4Niwic2VtaWNvbG9uIl0sWzE4NywiZXF1YWwiXSxbMTg4LCJjb21tYSJdLFsxODksIm1pbnVzIl0sWzE5MCwicGVyaW9kIl0sWzE5MSwic2xhc2giXSxbMTkyLCJiYWNrcXVv'@; put 'dGUiXSxbMjE5LCJicmFja2V0bGVmdCJdLFsyMjAsImJhY2tzbGFzaCJdLFsyMjEsImJyYWNrZXRyaWdodCJdLFsyMjIsInF1b3RlIl1dKSxrcT1jPT57bGV0e3doaWNoOmwsa2V5OmF9PWM7aWYoRXBlLmhhcyhsKSlyZXR1cm4gRXBlLmdldChsKTtjb25zdCBkPVN0cmluZy5mcm9tQ2hhckNv'@; put 'ZGUobCkudG9Mb3dlckNhc2UoKTtyZXR1cm4vXlthLXowLTldJC8udGVzdChkKT9kOmEudG9Mb3dlckNhc2UoKX0sVHBlPVN5bWJvbCgic2hvcnRjdXQtY29udGV4dCIpO2Z1bmN0aW9uIEFwZShjKXtyZXR1cm4gWHMoYykmJmMuX19raW5kT2Y9PT1UcGV9Y29uc3Qgcml0PVsibWV0YSIsImFs'@; put 'dCIsInNoaWZ0IiwiY29udHJvbCJdLGlUPWZ1bmN0aW9uIG5pdCgpe2NvbnN0IGM9bmV3IFNldDtyZXR1cm57cHJlc3MobCl7Yy5hZGQobCl9LHJlbGVhc2UobCl7Yy5kZWxldGUobCl9LHJlbGVhc2VBbGwoKXtjLmNsZWFyKCl9LGlzUHJlc3NlZDpsPT5jLmhhcyhsKX19KCksYVQ9W107bGV0'@; put 'IFVQPTA7Y29uc3QgYWl0PWM9PntsZXR7b3duZXJXaW5kb3c6bCxoYW5kbGVFdmVudDphLGJlZm9yZUtleURvd246ZCxhZnRlcktleURvd246aH09Yztjb25zdCBmPXJQKHtlcnJvcklkRXhpc3RzOkJlPT5gVGhlICIke0JlfSIgY29udGV4dCBuYW1lIGlzIGFscmVhZHkgcmVnaXN0ZXJlZC5g'@; put 'fSk7bGV0IHY9ImdyaWQiO2NvbnN0IEk9KCk9PnYsRz1CZT0+Zi5nZXRJdGVtKEJlKTtsZXQgdWU9ITE7Y29uc3QgeWU9ZnVuY3Rpb24oQmUsR2Upe2xldCBzdD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06SSgpO2NvbnN0IHB0PUFwZShz'@; put 'dCk/c3Q6RyhzdCk7bGV0IGR0PSExO2lmKCFwdC5oYXNTaG9ydGN1dChHZSkpcmV0dXJuIGR0O2NvbnN0IHF0PXB0LmdldFNob3J0Y3V0cyhHZSk7Zm9yKGxldCBtbj0wO21uPHF0Lmxlbmd0aDttbisrKXtjb25zdHtjYWxsYmFjazp3bixydW5Pbmx5SWY6aG4scHJldmVudERlZmF1bHQ6TW4s'@; put 'c3RvcFByb3BhZ2F0aW9uOk1yLGNhcHR1cmVDdHJsOmtyLGZvcndhcmRUb0NvbnRleHQ6cW59PXF0W21uXTtpZighMD09PWhuKEJlKSl7aWYodWU9a3IsZHQ9ITE9PT13bihCZSxHZSksdWU9ITEsTW4mJkJlLnByZXZlbnREZWZhdWx0KCksTXImJih6MihCZSksQmUuc3RvcFByb3BhZ2F0aW9u'@; put 'KCkpLGR0KWJyZWFrO3FuJiZ5ZShCZSxHZSxxbil9fXJldHVybiBkdH0sRWU9ZnVuY3Rpb24gaWl0KGMsbCxhLGQsaCl7Y29uc3QgZj1FZT0+cml0LmluY2x1ZGVzKEVlKSx2PWZ1bmN0aW9uKEVlKXtsZXQgQmU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFy'@; put 'Z3VtZW50c1sxXTtjb25zdCBHZT1bXTtyZXR1cm4gRWUuYWx0S2V5JiZHZS5wdXNoKCJhbHQiKSxCZSYmKEVlLmN0cmxLZXl8fEVlLm1ldGFLZXkpP0dlLnB1c2goImNvbnRyb2wvbWV0YSIpOihFZS5jdHJsS2V5JiZHZS5wdXNoKCJjb250cm9sIiksRWUubWV0YUtleSYmR2UucHVzaCgibWV0'@; put 'YSIpKSxFZS5zaGlmdEtleSYmR2UucHVzaCgic2hpZnQiKSxHZX0sTT1FZT0+e2lmKCExPT09bChFZSl8fCExPT09YShFZSl8fDIyOT09PUVlLmtleUNvZGV8fCJzdHJpbmciIT10eXBlb2YgRWUua2V5fHxPbShFZSkpcmV0dXJuO2NvbnN0IEdlPWtxKEVlKTtsZXQgc3Q9W107ZihHZSl8fChz'@; put 'dD12KEVlKSk7Y29uc3QgcHQ9W0dlXS5jb25jYXQoc3QpOyFoKEVlLHB0KSYmKHpPKCkmJnN0LmluY2x1ZGVzKCJtZXRhIil8fCF6TygpJiZzdC5pbmNsdWRlcygiY29udHJvbCIpKSYmaChFZSxbR2VdLmNvbmNhdCh2KEVlLCEwKSkpLGQoRWUpfSxJPUVlPT57aWYoInN0cmluZyI9PXR5cGVv'@; put 'ZiBFZS5rZXkpe2NvbnN0IEJlPWtxKEVlKTtmKEJlKSYmaVQucHJlc3MoQmUpfX0sRz1FZT0+e2lmKCJzdHJpbmciPT10eXBlb2YgRWUua2V5KXtjb25zdCBCZT1rcShFZSk7ZihCZSkmJmlULnJlbGVhc2UoQmUpfX0scmU9KCk9PntpVC5yZWxlYXNlQWxsKCl9O3JldHVybnttb3VudDooKT0+'@; put 'e2xldCBFZT1jO2ZvcihVUCs9MTtFZTspMT09PVVQJiYoRWUuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLEkpLGFULnB1c2goe2V2ZW50OiJrZXlkb3duIixsaXN0ZW5lcjpJfSksRWUuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFkZEV2ZW50'@; put 'TGlzdGVuZXIoImtleXVwIixHKSxhVC5wdXNoKHtldmVudDoia2V5dXAiLGxpc3RlbmVyOkd9KSksRWUuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLE0pLEVlLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJibHVy'@; put 'IixyZSksRWU9VjcoRWUpfSx1bm1vdW50OigpPT57bGV0IEVlPWM7Zm9yKFVQLT0xO0VlOyl7aWYoMD09PVVQKXtmb3IobGV0IEJlPTA7QmU8YVQubGVuZ3RoO0JlKyspe2NvbnN0e2V2ZW50OkdlLGxpc3RlbmVyOnN0fT1hVFtCZV07RWUuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnJlbW92'@; put 'ZUV2ZW50TGlzdGVuZXIoR2Usc3QpfWFULmxlbmd0aD0wfUVlLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixNKSxFZS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYmx1ciIscmUpLEVlPVY3KEVlKX19'@; put 'LGlzUHJlc3NlZDpFZT0+aVQuaXNQcmVzc2VkKEVlKSxyZWxlYXNlUHJlc3NlZEtleXM6KCk9PmlULnJlbGVhc2VBbGwoKX19KGwsYSxkLGgseWUpO3JldHVybiBFZS5tb3VudCgpLHthZGRDb250ZXh0OkJlPT57Y29uc3QgR2U9KGM9Pntjb25zdCBsPXJQKHtlcnJvcklkRXhpc3RzOkk9PmBU'@; put 'aGUgIiR7SX0iIHNob3J0Y3V0IGlzIGFscmVhZHkgcmVnaXN0ZXJlZCBpbiB0aGUgIiR7Y30iIGNvbnRleHQuYH0pLGE9ZnVuY3Rpb24oKXtsZXR7a2V5czpJLGNhbGxiYWNrOkcsZ3JvdXA6cmUscnVuT25seUlmOnVlPSgoKT0+ITApLGNhcHR1cmVDdHJsOnllPSExLHByZXZlbnREZWZhdWx0'@; put 'OkVlPSEwLHN0b3BQcm9wYWdhdGlvbjpCZT0hMSxyZWxhdGl2ZVRvR3JvdXA6R2UscG9zaXRpb246c3QsZm9yd2FyZFRvQ29udGV4dDpwdH09YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9O2lmKGJjKHJlKSl0aHJvdyBuZXcgRXJyb3Io'@; put 'IllvdSBuZWVkIHRvIGRlZmluZSB0aGUgc2hvcnRjdXQncyBncm91cC4iKTtpZighMT09PWZsKEcpKXRocm93IG5ldyBFcnJvcigiVGhlIHNob3J0Y3V0J3MgY2FsbGJhY2sgbmVlZHMgdG8gYmUgYSBmdW5jdGlvbi4iKTtpZighMT09PUFycmF5LmlzQXJyYXkoSSkpdGhyb3cgbmV3IEVycm9y'@; put 'KGhsYFBhc3MgdGhlIHNob3J0Y3V0XCdzIGtleXMgYXMgYW4gYXJyYXkgb2YgYXJyYXlzLFx4MjAKICAgICAgdXNpbmcgdGhlIEtleWJvYXJkRXZlbnQua2V5IHByb3BlcnRpZXM6XHgyMAogICAgICBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvS2V5'@; put 'Ym9hcmRFdmVudC9rZXkvS2V5X1ZhbHVlcy5gKTtjb25zdCBkdD17Y2FsbGJhY2s6Ryxncm91cDpyZSxydW5Pbmx5SWY6dWUsY2FwdHVyZUN0cmw6eWUscHJldmVudERlZmF1bHQ6RWUsc3RvcFByb3BhZ2F0aW9uOkJlfTtIYShHZSkmJihkdC5yZWxhdGl2ZVRvR3JvdXA9R2UsZHQucG9zaXRp'@; put 'b249c3QpLEFwZShwdCkmJihkdC5mb3J3YXJkVG9Db250ZXh0PXB0KSxJLmZvckVhY2gocXQ9Pntjb25zdCBtbj16UChxdCk7aWYobC5oYXNJdGVtKG1uKSl7Y29uc3QgaG49bC5nZXRJdGVtKG1uKTtsZXQgTW49aG4uZmluZEluZGV4KE1yPT5Nci5ncm91cD09PUdlKTstMSE9PU1uPyJiZWZv'@; put 'cmUiPT09c3Q/TW4tPTE6TW4rPTE6TW49aG4ubGVuZ3RoLGhuLnNwbGljZShNbiwwLGR0KX1lbHNlIGwuYWRkSXRlbShtbixbZHRdKX0pfSxoPUk9Pntjb25zdCBHPXpQKEkpO2wucmVtb3ZlSXRlbShHKX07cmV0dXJue19fa2luZE9mOlRwZSxhZGRTaG9ydGN1dDphLGFkZFNob3J0Y3V0czpm'@; put 'dW5jdGlvbihJKXtsZXQgRz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307SS5mb3JFYWNoKHJlPT57cXMoRywodWUseWUpPT57ITE9PT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocmUseWUpJiYocmVbeWVdPUdb'@; put 'eWVdKX0pLGEocmUpfSl9LGdldFNob3J0Y3V0czpJPT57Y29uc3QgRz16UChJKSxyZT1sLmdldEl0ZW0oRyk7cmV0dXJuIEhhKHJlKT9yZS5zbGljZSgpOltdfSxoYXNTaG9ydGN1dDpJPT57Y29uc3QgRz16UChJKTtyZXR1cm4gbC5oYXNJdGVtKEcpfSxyZW1vdmVTaG9ydGN1dHNCeUtleXM6'@; put 'aCxyZW1vdmVTaG9ydGN1dHNCeUdyb3VwOkk9PntsLmdldEl0ZW1zKCkuZm9yRWFjaChyZT0+e2xldFt1ZSx5ZV09cmU7Y29uc3QgRWU9eWUuZmlsdGVyKEJlPT5CZS5ncm91cCE9PUkpOzA9PT1FZS5sZW5ndGg/aCgoYz0+Yy5zcGxpdCgiKyIpKSh1ZSkpOih5ZS5sZW5ndGg9MCx5ZS5wdXNo'@; put 'KC4uLkVlKSl9KX19fSkoQmUpO3JldHVybiBmLmFkZEl0ZW0oQmUsR2UpLEdlfSxnZXRBY3RpdmVDb250ZXh0TmFtZTpJLGdldENvbnRleHQ6RyxzZXRBY3RpdmVDb250ZXh0TmFtZTpCZT0+e2lmKCFmLmhhc0l0ZW0oQmUpKXRocm93IG5ldyBFcnJvcihobGBZb3UndmUgdHJpZWQgdG8gYWN0'@; put 'aXZhdGUgdGhlICIke0JlfSIgc2hvcnRjdXQgY29udGV4dFx4MjAKICAgICAgICB0aGF0IGRvZXMgbm90IGV4aXN0LiBCZWZvcmUgYWN0aXZhdGlvbiwgcmVnaXN0ZXIgdGhlIGNvbnRleHQgdXNpbmcgdGhlICJhZGRDb250ZXh0IiBtZXRob2QuYCk7dj1CZX0saXNDdHJsUHJlc3NlZDooKT0+'@; put 'IXVlJiYoRWUuaXNQcmVzc2VkKCJjb250cm9sIil8fEVlLmlzUHJlc3NlZCgibWV0YSIpKSxyZWxlYXNlUHJlc3NlZEtleXM6KCk9PkVlLnJlbGVhc2VQcmVzc2VkS2V5cygpLGRlc3Ryb3k6KCk9PkVlLnVubW91bnQoKX19LHNpdD17bmFtZToiZWRpdG9yQ2xvc2VBbmRTYXZlIixjYWxsYmFj'@; put 'ayhjKXtjLl9nZXRFZGl0b3JNYW5hZ2VyKCkuY2xvc2VFZGl0b3JBbmRTYXZlQ2hhbmdlcygpfX0sa3BlPXtfaG9va3NTdG9yYWdlOk9iamVjdC5jcmVhdGUobnVsbCksYWRkSG9vayhjLGwpe3JldHVybiB0aGlzLl9ob29rc1N0b3JhZ2VbY118fCh0aGlzLl9ob29rc1N0b3JhZ2VbY109W10p'@; put 'LHRoaXMuaG90LmFkZEhvb2soYyxsKSx0aGlzLl9ob29rc1N0b3JhZ2VbY10ucHVzaChsKSx0aGlzfSxyZW1vdmVIb29rc0J5S2V5KGMpe0tuKHRoaXMuX2hvb2tzU3RvcmFnZVtjXXx8W10sbD0+e3RoaXMuaG90LnJlbW92ZUhvb2soYyxsKX0pfSxjbGVhckhvb2tzKCl7cXModGhpcy5faG9v'@; put 'a3NTdG9yYWdlLChjLGwpPT50aGlzLnJlbW92ZUhvb2tzQnlLZXkobCkpLHRoaXMuX2hvb2tzU3RvcmFnZT17fX19O1RwKGtwZSwiTUlYSU5fTkFNRSIsImhvb2tzUmVmUmVnaXN0ZXJlciIse3dyaXRhYmxlOiExLGVudW1lcmFibGU6ITF9KTtjb25zdCBsaXQ9a3BlO2Z1bmN0aW9uIGYzKGMs'@; put 'bCxhKXtyZXR1cm4obD1mdW5jdGlvbiBjaXQoYyl7dmFyIGw9ZnVuY3Rpb24gdWl0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigi'@; put 'b2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlw'@; put 'ZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31jb25zdCBhdT1PYmplY3QuZnJlZXplKHtWSVJHSU46IlNUQVRFX1ZJUkdJTiIsRURJVElORzoi'@; put 'U1RBVEVfRURJVElORyIsV0FJVElORzoiU1RBVEVfV0FJVElORyIsRklOSVNIRUQ6IlNUQVRFX0ZJTklTSEVEIn0pO2NsYXNzIGtfe3N0YXRpYyBnZXQgRURJVE9SX1RZUEUoKXtyZXR1cm4iYmFzZSJ9Y29uc3RydWN0b3IobCl7ZjModGhpcywiaG90Iix2b2lkIDApLGYzKHRoaXMsInN0YXRl'@; put 'IixhdS5WSVJHSU4pLGYzKHRoaXMsIl9vcGVuZWQiLCExKSxmMyh0aGlzLCJfZnVsbEVkaXRNb2RlIiwhMSksZjModGhpcywiX2Nsb3NlQ2FsbGJhY2siLG51bGwpLGYzKHRoaXMsIlREIixudWxsKSxmMyh0aGlzLCJyb3ciLG51bGwpLGYzKHRoaXMsImNvbCIsbnVsbCksZjModGhpcywicHJv'@; put 'cCIsbnVsbCksZjModGhpcywib3JpZ2luYWxWYWx1ZSIsbnVsbCksZjModGhpcywiY2VsbFByb3BlcnRpZXMiLG51bGwpLHRoaXMuaG90PWwsdGhpcy5pbml0KCl9X2ZpcmVDYWxsYmFja3MobCl7dGhpcy5fY2xvc2VDYWxsYmFjayYmKHRoaXMuX2Nsb3NlQ2FsbGJhY2sobCksdGhpcy5fY2xv'@; put 'c2VDYWxsYmFjaz1udWxsKX1pbml0KCl7fWdldFZhbHVlKCl7dGhyb3cgRXJyb3IoIkVkaXRvciBnZXRWYWx1ZSgpIG1ldGhvZCB1bmltcGxlbWVudGVkIil9c2V0VmFsdWUoKXt0aHJvdyBFcnJvcigiRWRpdG9yIHNldFZhbHVlKCkgbWV0aG9kIHVuaW1wbGVtZW50ZWQiKX1vcGVuKCl7dGhy'@; put 'b3cgRXJyb3IoIkVkaXRvciBvcGVuKCkgbWV0aG9kIHVuaW1wbGVtZW50ZWQiKX1jbG9zZSgpe3Rocm93IEVycm9yKCJFZGl0b3IgY2xvc2UoKSBtZXRob2QgdW5pbXBsZW1lbnRlZCIpfXByZXBhcmUobCxhLGQsaCxmLHYpe3RoaXMuVEQ9aCx0aGlzLnJvdz1sLHRoaXMuY29sPWEsdGhpcy5w'@; put 'cm9wPWQsdGhpcy5vcmlnaW5hbFZhbHVlPWYsdGhpcy5jZWxsUHJvcGVydGllcz12LHRoaXMuc3RhdGU9dGhpcy5pc09wZW5lZCgpP3RoaXMuc3RhdGU6YXUuVklSR0lOfWV4dGVuZCgpe3JldHVybiBjbGFzcyBleHRlbmRzIHRoaXMuY29uc3RydWN0b3J7fX1zYXZlVmFsdWUobCxhKXtsZXQg'@; put 'ZCxoLGYsdjtpZihhKXtjb25zdCBJPXRoaXMuaG90LmdldFNlbGVjdGVkTGFzdCgpO2Q9TWF0aC5tYXgoTWF0aC5taW4oSVswXSxJWzJdKSwwKSxoPU1hdGgubWF4KE1hdGgubWluKElbMV0sSVszXSksMCksZj1NYXRoLm1heChJWzBdLElbMl0pLHY9TWF0aC5tYXgoSVsxXSxJWzNdKX1lbHNl'@; put 'W2QsaCxmLHZdPVt0aGlzLnJvdyx0aGlzLmNvbCxudWxsLG51bGxdO2NvbnN0IE09dGhpcy5ob3QucnVuSG9va3MoIm1vZGlmeUdldENlbGxDb29yZHMiLGQsaCwhMSwibWV0YSIpO0FycmF5LmlzQXJyYXkoTSkmJihbZCxoXT1NKSx0aGlzLmhvdC5wb3B1bGF0ZUZyb21BcnJheShkLGgsbCxm'@; put 'LHYsImVkaXQiKX1iZWdpbkVkaXRpbmcobCxhKXtpZih0aGlzLnN0YXRlIT09YXUuVklSR0lOKXJldHVybjtjb25zdCBkPXRoaXMuaG90LGg9ZC5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KHRoaXMucm93KSxmPWQuY29sdW1uSW5kZXhNYXBwZXIuZ2V0UmVu'@; put 'ZGVyYWJsZUZyb21WaXN1YWxJbmRleCh0aGlzLmNvbCksdj0oKT0+e2lmKHRoaXMuc3RhdGU9YXUuRURJVElORyx0aGlzLmlzSW5GdWxsRWRpdE1vZGUoKSl7Y29uc3QgST0ic3RyaW5nIj09dHlwZW9mIGw/bDpvYyh0aGlzLm9yaWdpbmFsVmFsdWUpO3RoaXMuc2V0VmFsdWUoSSl9dGhpcy5v'@; put 'cGVuKGEpLHRoaXMuX29wZW5lZD0hMCx0aGlzLmZvY3VzKCksZC52aWV3LnJlbmRlcigpLGQucnVuSG9va3MoImFmdGVyQmVnaW5FZGl0aW5nIix0aGlzLnJvdyx0aGlzLmNvbCl9O3RoaXMuaG90LmFkZEhvb2tPbmNlKCJhZnRlclNjcm9sbCIsdiksZC52aWV3LnNjcm9sbFZpZXdwb3J0KGQu'@; put 'X2NyZWF0ZUNlbGxDb29yZHMoaCxmKSl8fCh0aGlzLmhvdC5yZW1vdmVIb29rKCJhZnRlclNjcm9sbCIsdiksdigpKX1maW5pc2hFZGl0aW5nKGwsYSxkKXtsZXQgaDtpZihkKXtjb25zdCBmPXRoaXMuX2Nsb3NlQ2FsbGJhY2s7dGhpcy5fY2xvc2VDYWxsYmFjaz12PT57ZiYmZih2KSxkKHYp'@; put 'LHRoaXMuaG90LnZpZXcucmVuZGVyKCl9fWlmKCF0aGlzLmlzV2FpdGluZygpKXtpZih0aGlzLnN0YXRlPT09YXUuVklSR0lOKXJldHVybiB2b2lkIHRoaXMuaG90Ll9yZWdpc3RlclRpbWVvdXQoKCk9Pnt0aGlzLl9maXJlQ2FsbGJhY2tzKCEwKX0pO2lmKHRoaXMuc3RhdGU9PT1hdS5FRElU'@; put 'SU5HKXtpZihsKXJldHVybiB0aGlzLmNhbmNlbENoYW5nZXMoKSx2b2lkIHRoaXMuaG90LnZpZXcucmVuZGVyKCk7Y29uc3QgZj10aGlzLmdldFZhbHVlKCk7aD10aGlzLmNlbGxQcm9wZXJ0aWVzLnRyaW1XaGl0ZXNwYWNlP1tbInN0cmluZyI9PXR5cGVvZiBmP1N0cmluZy5wcm90b3R5cGUu'@; put 'dHJpbS5jYWxsKGZ8fCIiKTpmXV06W1tmXV0sdGhpcy5zdGF0ZT1hdS5XQUlUSU5HLHRoaXMuc2F2ZVZhbHVlKGgsYSksdGhpcy5ob3QuZ2V0Q2VsbFZhbGlkYXRvcih0aGlzLmNlbGxQcm9wZXJ0aWVzKT90aGlzLmhvdC5hZGRIb29rT25jZSgicG9zdEFmdGVyVmFsaWRhdGUiLHY9Pnt0aGlz'@; put 'LnN0YXRlPWF1LkZJTklTSEVELHRoaXMuZGlzY2FyZEVkaXRvcih2KX0pOih0aGlzLnN0YXRlPWF1LkZJTklTSEVELHRoaXMuZGlzY2FyZEVkaXRvcighMCkpfX19Y2FuY2VsQ2hhbmdlcygpe3RoaXMuc3RhdGU9YXUuRklOSVNIRUQsdGhpcy5kaXNjYXJkRWRpdG9yKCl9ZGlzY2FyZEVkaXRv'@; put 'cihsKXt0aGlzLnN0YXRlPT09YXUuRklOSVNIRUQmJighMT09PWwmJiEwIT09dGhpcy5jZWxsUHJvcGVydGllcy5hbGxvd0ludmFsaWQ/KHRoaXMuaG90LnNlbGVjdENlbGwodGhpcy5yb3csdGhpcy5jb2wpLHRoaXMuZm9jdXMoKSx0aGlzLnN0YXRlPWF1LkVESVRJTkcsdGhpcy5fZmlyZUNh'@; put 'bGxiYWNrcyghMSkpOih0aGlzLmNsb3NlKCksdGhpcy5fb3BlbmVkPSExLHRoaXMuX2Z1bGxFZGl0TW9kZT0hMSx0aGlzLnN0YXRlPWF1LlZJUkdJTix0aGlzLl9maXJlQ2FsbGJhY2tzKCEwKSx0aGlzLmhvdC5nZXRTaG9ydGN1dE1hbmFnZXIoKS5zZXRBY3RpdmVDb250ZXh0TmFtZSgiZ3Jp'@; put 'ZCIpKSl9ZW5hYmxlRnVsbEVkaXRNb2RlKCl7dGhpcy5fZnVsbEVkaXRNb2RlPSEwfWlzSW5GdWxsRWRpdE1vZGUoKXtyZXR1cm4gdGhpcy5fZnVsbEVkaXRNb2RlfWlzT3BlbmVkKCl7cmV0dXJuIHRoaXMuX29wZW5lZH1pc1dhaXRpbmcoKXtyZXR1cm4gdGhpcy5zdGF0ZT09PWF1LldBSVRJ'@; put 'Tkd9Z2V0RWRpdGVkQ2VsbFJlY3QoKXt2YXIgbDtjb25zdCBhPXRoaXMuZ2V0RWRpdGVkQ2VsbCgpO2lmKCFhKXJldHVybjtjb25zdHt3dE92ZXJsYXlzOmQsd3RWaWV3cG9ydDpofT10aGlzLmhvdC52aWV3Ll93dCxmPXRoaXMuaG90LnJvb3RXaW5kb3csdj1qMChhKSxNPWl1KGEpLEk9ajAo'@; put 'dGhpcy5ob3Qucm9vdEVsZW1lbnQpLEc9aXUodGhpcy5ob3Qucm9vdEVsZW1lbnQpLHJlPWQudG9wT3ZlcmxheS5ob2xkZXIsdWU9ZC5pbmxpbmVTdGFydE92ZXJsYXkuaG9sZGVyLHllPXJlIT09Zj9yZS5zY3JvbGxUb3A6MCxFZT11ZSE9PWY/dWUuc2Nyb2xsTGVmdDowLEJlPWYuaW5uZXJX'@; put 'aWR0aC1JLmxlZnQtRyx7d3RUYWJsZTpHZX09bnVsbCE9PShsPWQuZ2V0UGFyZW50T3ZlcmxheShhKSkmJnZvaWQgMCE9PWw/bDp0aGlzLmhvdC52aWV3Ll93dCxzdD1HZS5uYW1lLHB0PVsibWFzdGVyIiwiaW5saW5lX3N0YXJ0Il0uaW5jbHVkZXMoc3QpP3llOjAsZHQ9WyJtYXN0ZXIiLCJ0'@; put 'b3AiLCJib3R0b20iXS5pbmNsdWRlcyhzdCk/RWU6MDtsZXQgbW49di50b3AtSS50b3AtKHYudG9wPT09SS50b3A/MDoxKS1wdCx3bj0wO3duPXRoaXMuaG90LmlzUnRsKCk/Zi5pbm5lcldpZHRoLXYubGVmdC1NLUJlLTErZHQ6di5sZWZ0LUkubGVmdC0xLWR0LFsidG9wIiwidG9wX2lubGlu'@; put 'ZV9zdGFydF9jb3JuZXIiXS5pbmNsdWRlcyhzdCkmJihtbis9ZC50b3BPdmVybGF5LmdldE92ZXJsYXlPZmZzZXQoKSksWyJpbmxpbmVfc3RhcnQiLCJ0b3BfaW5saW5lX3N0YXJ0X2Nvcm5lciJdLmluY2x1ZGVzKHN0KSYmKHduKz1NYXRoLmFicyhkLmlubGluZVN0YXJ0T3ZlcmxheS5nZXRP'@; put 'dmVybGF5T2Zmc2V0KCkpKTtjb25zdCBobj10aGlzLmhvdC5oYXNDb2xIZWFkZXJzKCksTW49dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleCh0aGlzLnJvdyksTXI9dGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIuZ2V0UmVuZGVyYWJsZUZyb21W'@; put 'aXN1YWxJbmRleCh0aGlzLmNvbCkscW49dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIuZ2V0UmVuZGVyYWJsZUluZGV4ZXNMZW5ndGgoKS10aGlzLmhvdC52aWV3Ll93dC5nZXRTZXR0aW5nKCJmaXhlZFJvd3NCb3R0b20iKTsoaG4mJk1uPD0wfHxNbj09PXFuKSYmKG1uKz0xKSxNcjw9MCYmKHdu'@; put 'Kz0xKTtjb25zdCBncj1oLnJvd3NSZW5kZXJDYWxjdWxhdG9yLnN0YXJ0UG9zaXRpb24scXI9aC5jb2x1bW5zUmVuZGVyQ2FsY3VsYXRvci5zdGFydFBvc2l0aW9uLF9pPU1hdGguYWJzKGQuaW5saW5lU3RhcnRPdmVybGF5LmdldFNjcm9sbFBvc2l0aW9uKCkpLFBuPWQudG9wT3ZlcmxheS5n'@; put 'ZXRTY3JvbGxQb3NpdGlvbigpLFVyPWQwKHRoaXMuaG90LnJvb3REb2N1bWVudCk7bGV0IHRyPWEub2Zmc2V0VG9wO2lmKFsiaW5saW5lX3N0YXJ0IiwibWFzdGVyIl0uaW5jbHVkZXMoc3QpJiYodHIrPWdyLVBuKSxbImJvdHRvbSIsImJvdHRvbV9pbmxpbmVfc3RhcnRfY29ybmVyIl0uaW5j'@; put 'bHVkZXMoc3QpKXtjb25zdHt3dFZpZXdwb3J0OmFyLHd0VGFibGU6R3J9PWQuYm90dG9tT3ZlcmxheS5jbG9uZTt0cis9YXIuZ2V0V29ya3NwYWNlSGVpZ2h0KCktR3IuZ2V0SGVpZ2h0KCktVXJ9bGV0IEJyPWEub2Zmc2V0TGVmdDt0aGlzLmhvdC5pc1J0bCgpPyhCcj1Ccj49MD9HZS5nZXRX'@; put 'aWR0aCgpLWEub2Zmc2V0TGVmdDpNYXRoLmFicyhCciksQnIrPXFyLV9pLU0pOlsidG9wIiwibWFzdGVyIiwiYm90dG9tIl0uaW5jbHVkZXMoc3QpJiYoQnIrPXFyLV9pKTtjb25zdCBZcj1mLmdldENvbXB1dGVkU3R5bGUodGhpcy5URCksd2k9dGhpcy5ob3QuaXNSdGwoKT8iYm9yZGVyUmln'@; put 'aHRXaWR0aCI6ImJvcmRlckxlZnRXaWR0aCIsQmk9cGFyc2VJbnQoWXJbd2ldLDEwKT4wPzA6MSxoYT1wYXJzZUludChZci5ib3JkZXJUb3BXaWR0aCwxMCk+MD8wOjEsbWE9aXUoYSkrQmksdnQ9U3UoYSkraGEseHQ9TCQocmUpP1VyOjAsJHQ9TyQodWUpP1VyOjAsWW49dGhpcy5ob3Qudmll'@; put 'dy5tYXhpbXVtVmlzaWJsZUVsZW1lbnRXaWR0aChCcikteHQrQmk7cmV0dXJue3RvcDptbixzdGFydDp3bixoZWlnaHQ6dnQsbWF4SGVpZ2h0Ok1hdGgubWF4KHRoaXMuaG90LnZpZXcubWF4aW11bVZpc2libGVFbGVtZW50SGVpZ2h0KHRyKS0kdCtoYSx0aGlzLmhvdC5zdHlsZXNIYW5kbGVy'@; put 'LmdldERlZmF1bHRSb3dIZWlnaHQoKSksd2lkdGg6bWEsbWF4V2lkdGg6WW59fWdldEVkaXRlZENlbGxzTGF5ZXJDbGFzcygpe3N3aXRjaCh0aGlzLmNoZWNrRWRpdG9yU2VjdGlvbigpKXtjYXNlImlubGluZS1zdGFydCI6cmV0dXJuImh0X2Nsb25lX2xlZnQgaHRfY2xvbmVfaW5saW5lX3N0'@; put 'YXJ0IjtjYXNlImJvdHRvbSI6cmV0dXJuImh0X2Nsb25lX2JvdHRvbSI7Y2FzZSJib3R0b20taW5saW5lLXN0YXJ0LWNvcm5lciI6cmV0dXJuImh0X2Nsb25lX2JvdHRvbV9sZWZ0X2Nvcm5lciBodF9jbG9uZV9ib3R0b21faW5saW5lX3N0YXJ0X2Nvcm5lciI7Y2FzZSJ0b3AiOnJldHVybiJo'@; put 'dF9jbG9uZV90b3AiO2Nhc2UidG9wLWlubGluZS1zdGFydC1jb3JuZXIiOnJldHVybiJodF9jbG9uZV90b3BfbGVmdF9jb3JuZXIgaHRfY2xvbmVfdG9wX2lubGluZV9zdGFydF9jb3JuZXIiO2RlZmF1bHQ6cmV0dXJuImh0X2Nsb25lX21hc3RlciJ9fWdldEVkaXRlZENlbGwoKXtyZXR1cm4g'@; put 'dGhpcy5ob3QuZ2V0Q2VsbCh0aGlzLnJvdyx0aGlzLmNvbCwhMCl9Y2hlY2tFZGl0b3JTZWN0aW9uKCl7Y29uc3QgbD10aGlzLmhvdC5jb3VudFJvd3MoKTtsZXQgYT0iIjtyZXR1cm4gdGhpcy5yb3c8dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5maXhlZFJvd3NUb3A/YT10aGlzLmNvbDx0aGlz'@; put 'LmhvdC5nZXRTZXR0aW5ncygpLmZpeGVkQ29sdW1uc1N0YXJ0PyJ0b3AtaW5saW5lLXN0YXJ0LWNvcm5lciI6InRvcCI6dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5maXhlZFJvd3NCb3R0b20mJnRoaXMucm93Pj1sLXRoaXMuaG90LmdldFNldHRpbmdzKCkuZml4ZWRSb3dzQm90dG9tP2E9dGhp'@; put 'cy5jb2w8dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5maXhlZENvbHVtbnNTdGFydD8iYm90dG9tLWlubGluZS1zdGFydC1jb3JuZXIiOiJib3R0b20iOnRoaXMuY29sPHRoaXMuaG90LmdldFNldHRpbmdzKCkuZml4ZWRDb2x1bW5zU3RhcnQmJihhPSJpbmxpbmUtc3RhcnQiKSxhfX14bChrXyxs'@; put 'aXQpO2NvbnN0IGhpdD17bmFtZToiZWRpdG9yQ2xvc2VBbmRTYXZlQnlBcnJvd0tleXMiLGNhbGxiYWNrKGMsbCxhKXtjb25zdCBkPWMuX2dldEVkaXRvck1hbmFnZXIoKSxoPWQuZ2V0QWN0aXZlRWRpdG9yKCk7aC5pc0luRnVsbEVkaXRNb2RlKCkmJmguc3RhdGU9PT1hdS5FRElUSU5HfHwo'@; put 'ZC5jbG9zZUVkaXRvckFuZFNhdmVDaGFuZ2VzKCksYy5nZXRTZWxlY3RlZCgpJiYoYS5pbmNsdWRlcygiYXJyb3dkb3duIik/Yy5zZWxlY3Rpb24udHJhbnNmb3JtU3RhcnQoMSwwKTphLmluY2x1ZGVzKCJhcnJvd3VwIik/Yy5zZWxlY3Rpb24udHJhbnNmb3JtU3RhcnQoLTEsMCk6YS5pbmNs'@; put 'dWRlcygiYXJyb3dsZWZ0Iik/Yy5zZWxlY3Rpb24udHJhbnNmb3JtU3RhcnQoMCwtMSpjLmdldERpcmVjdGlvbkZhY3RvcigpKTphLmluY2x1ZGVzKCJhcnJvd3JpZ2h0IikmJmMuc2VsZWN0aW9uLnRyYW5zZm9ybVN0YXJ0KDAsYy5nZXREaXJlY3Rpb25GYWN0b3IoKSkpLGwucHJldmVudERl'@; put 'ZmF1bHQoKSl9fSxmaXQ9e25hbWU6ImVkaXRvckNsb3NlQW5kU2F2ZUJ5RW50ZXIiLGNhbGxiYWNrKGMsbCl7Y29uc3QgYT1jLl9nZXRFZGl0b3JNYW5hZ2VyKCk7YS5jbG9zZUVkaXRvckFuZFNhdmVDaGFuZ2VzKGwuY3RybEtleXx8bC5tZXRhS2V5KSxhLm1vdmVTZWxlY3Rpb25BZnRlckVu'@; put 'dGVyKGwpfX0scGl0PXtuYW1lOiJlZGl0b3JDbG9zZVdpdGhvdXRTYXZpbmciLGNhbGxiYWNrKGMpe2NvbnN0IGw9Yy5fZ2V0RWRpdG9yTWFuYWdlcigpO2wuY2xvc2VFZGl0b3JBbmRSZXN0b3JlT3JpZ2luYWxWYWx1ZShjLmdldFNob3J0Y3V0TWFuYWdlcigpLmlzQ3RybFByZXNzZWQoKSks'@; put 'bC5hY3RpdmVFZGl0b3IuZm9jdXMoKX19LGdpdD17bmFtZToiZWRpdG9yRmFzdE9wZW4iLGNhbGxiYWNrKGMsbCl7Y29uc3R7aGlnaGxpZ2h0OmF9PWMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTthLmlzSGVhZGVyKCl8fGMuX2dldEVkaXRvck1hbmFnZXIoKS5vcGVuRWRpdG9yKG51bGwsbCwh'@; put 'MCl9fSxtaXQ9e25hbWU6ImVkaXRvck9wZW4iLGNhbGxiYWNrKGMsbCxhKXtjb25zdCBkPWMuX2dldEVkaXRvck1hbmFnZXIoKSxoPWMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSx7aGlnaGxpZ2h0OmZ9PWg7aWYoYy5zZWxlY3Rpb24uaXNNdWx0aXBsZSgpJiYhaC5pc0hlYWRlcigpJiZjLmNv'@; put 'dW50UmVuZGVyZWRDb2xzKCk+MCYmYy5jb3VudFJlbmRlcmVkUm93cygpPjApe2NvbnN0IHY9Yy5nZXRTZXR0aW5ncygpLE09ImZ1bmN0aW9uIj09dHlwZW9mIHYuZW50ZXJNb3Zlcz92LmVudGVyTW92ZXMobCk6di5lbnRlck1vdmVzO2EuaW5jbHVkZXMoInNoaWZ0Iik/Yy5zZWxlY3Rpb24u'@; put 'dHJhbnNmb3JtRm9jdXMoLU0ucm93LC1NLmNvbCk6Yy5zZWxlY3Rpb24udHJhbnNmb3JtRm9jdXMoTS5yb3csTS5jb2wpfWVsc2UgZi5pc0hlYWRlcigpfHwoYy5nZXRTZXR0aW5ncygpLmVudGVyQmVnaW5zRWRpdGluZz9kLmNlbGxQcm9wZXJ0aWVzLnJlYWRPbmx5P2QubW92ZVNlbGVjdGlv'@; put 'bkFmdGVyRW50ZXIobCk6ZC5vcGVuRWRpdG9yKG51bGwsbCwhMCk6ZC5tb3ZlU2VsZWN0aW9uQWZ0ZXJFbnRlcihsKSx6MihsKSl9fSx5aXQ9e25hbWU6ImV4dGVuZENlbGxzU2VsZWN0aW9uRG93biIsY2FsbGJhY2soYyl7Y29uc3R7c2VsZWN0aW9uOmx9PWMse2hpZ2hsaWdodDphfT1jLmdl'@; put 'dFNlbGVjdGVkUmFuZ2VMYXN0KCk7IWwuaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCkmJiFsLmlzU2VsZWN0ZWRCeUNvcm5lcigpJiYoYS5pc0NlbGwoKXx8YS5pc0hlYWRlcigpJiZsLmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigpKSYmKGwubWFya1NvdXJjZSgia2V5Ym9hcmQiKSxsLnRyYW5z'@; put 'Zm9ybUVuZCgxLDApLGwubWFya0VuZFNvdXJjZSgpKX19LGJpdD17bmFtZToiZXh0ZW5kQ2VsbHNTZWxlY3Rpb25Eb3duQnlWaWV3cG9ydEhlaWdodCIsY2FsbGJhY2soYyl7Y29uc3R7c2VsZWN0aW9uOmwscm93SW5kZXhNYXBwZXI6YX09Yyx7dG86ZH09Yy5nZXRTZWxlY3RlZFJhbmdlTGFz'@; put 'dCgpLGg9TWF0aC5taW4oZC5yb3crYy5jb3VudFZpc2libGVSb3dzKCksYy5jb3VudFJvd3MoKS0xKSxmPWEuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KGgsLTEpO2lmKG51bGwhPT1mKXtjb25zdCB2PWMuX2NyZWF0ZUNlbGxDb29yZHMoZixkLmNvbCksTT1kLnJvdy1jLmdldEZpcnN0RnVs'@; put 'bHlWaXNpYmxlUm93KCksST1NYXRoLm1pbih2LnJvdy1NLGMuY291bnRSb3dzKCktMSk7bC5tYXJrU291cmNlKCJrZXlib2FyZCIpLGwuc2V0UmFuZ2VFbmQodiksbC5tYXJrRW5kU291cmNlKCksYy5zY3JvbGxWaWV3cG9ydFRvKHtyb3c6SSx2ZXJ0aWNhbFNuYXA6InRvcCIsaG9yaXpvbnRh'@; put 'bFNuYXA6InN0YXJ0In0pfX19LF9pdD17bmFtZToiZXh0ZW5kQ2VsbHNTZWxlY3Rpb25MZWZ0IixjYWxsYmFjayhjKXtjb25zdHtzZWxlY3Rpb246bH09Yyx7aGlnaGxpZ2h0OmF9PWMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTshbC5pc1NlbGVjdGVkQnlSb3dIZWFkZXIoKSYmIWwuaXNTZWxl'@; put 'Y3RlZEJ5Q29ybmVyKCkmJihhLmlzQ2VsbCgpfHxhLmlzSGVhZGVyKCkmJmwuaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCkpJiYobC5tYXJrU291cmNlKCJrZXlib2FyZCIpLGwudHJhbnNmb3JtRW5kKDAsLTEqYy5nZXREaXJlY3Rpb25GYWN0b3IoKSksbC5tYXJrRW5kU291cmNlKCkpfX0s'@; put 'd2l0PXtuYW1lOiJleHRlbmRDZWxsc1NlbGVjdGlvblJpZ2h0IixjYWxsYmFjayhjKXtjb25zdHtzZWxlY3Rpb246bH09Yyx7aGlnaGxpZ2h0OmF9PWMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTshbC5pc1NlbGVjdGVkQnlSb3dIZWFkZXIoKSYmIWwuaXNTZWxlY3RlZEJ5Q29ybmVyKCkmJihh'@; put 'LmlzQ2VsbCgpfHxhLmlzSGVhZGVyKCkmJmwuaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCkpJiYobC5tYXJrU291cmNlKCJrZXlib2FyZCIpLGwudHJhbnNmb3JtRW5kKDAsYy5nZXREaXJlY3Rpb25GYWN0b3IoKSksbC5tYXJrRW5kU291cmNlKCkpfX0sQ2l0PXtuYW1lOiJleHRlbmRDZWxs'@; put 'c1NlbGVjdGlvblRvQ29sdW1ucyIsY2FsbGJhY2soYyl7Y29uc3R7c2VsZWN0aW9uOmx9PWMse2hpZ2hsaWdodDphLGZyb206ZCx0bzpofT1jLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7bC5tYXJrU291cmNlKCJrZXlib2FyZCIpLGwuaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCk/bC5zZWxlY3RB'@; put 'bGwoITAsITApOmMuc2VsZWN0Q29sdW1ucyhkLmNvbCxoLmNvbCxhKSxsLm1hcmtFbmRTb3VyY2UoKX19LFNpdD17bmFtZToiZXh0ZW5kQ2VsbHNTZWxlY3Rpb25Ub01vc3RCb3R0b20iLGNhbGxiYWNrKGMpe2NvbnN0e3NlbGVjdGlvbjpsLHJvd0luZGV4TWFwcGVyOmF9PWMse2hpZ2hsaWdo'@; put 'dDpkLGZyb206aCx0bzpmfT1jLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksdj1kLmlzSGVhZGVyKCkmJmwuaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCk7aWYoZC5pc0NlbGwoKXx8dil7Y29uc3QgTT1hLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChjLmNvdW50Um93cygpLTEsLTEpLEk9aC5jbG9u'@; put 'ZSgpO0kucm93PWQucm93LGwubWFya1NvdXJjZSgia2V5Ym9hcmQiKSxsLnNldFJhbmdlU3RhcnQoSSx2b2lkIDAsITEsZC5jbG9uZSgpKSx2JiZsLnNlbGVjdGVkQnlSb3dIZWFkZXIuYWRkKGwuZ2V0TGF5ZXJMZXZlbCgpKSxsLnNldFJhbmdlRW5kKGMuX2NyZWF0ZUNlbGxDb29yZHMoTSxm'@; put 'LmNvbCkpLGwubWFya0VuZFNvdXJjZSgpfX19LE1pdD17bmFtZToiZXh0ZW5kQ2VsbHNTZWxlY3Rpb25Ub01vc3RJbmxpbmVFbmQiLGNhbGxiYWNrKGMpe2NvbnN0e3NlbGVjdGlvbjpsLGNvbHVtbkluZGV4TWFwcGVyOmF9PWMse2hpZ2hsaWdodDpkLGZyb206aCx0bzpmfT1jLmdldFNlbGVj'@; put 'dGVkUmFuZ2VMYXN0KCk7aWYoIWwuaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCkmJiFsLmlzU2VsZWN0ZWRCeUNvcm5lcigpJiZkLmlzQ2VsbCgpKXtjb25zdCB2PWEuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KGMuY291bnRDb2xzKCktMSwtMSksTT1oLmNsb25lKCk7TS5jb2w9ZC5jb2wsbC5t'@; put 'YXJrU291cmNlKCJrZXlib2FyZCIpLGwuc2V0UmFuZ2VTdGFydChNLHZvaWQgMCwhMSxkLmNsb25lKCkpLGwuc2V0UmFuZ2VFbmQoYy5fY3JlYXRlQ2VsbENvb3JkcyhmLnJvdyx2KSksbC5tYXJrRW5kU291cmNlKCl9fX0seGl0PXtuYW1lOiJleHRlbmRDZWxsc1NlbGVjdGlvblRvTW9zdElu'@; put 'bGluZVN0YXJ0IixjYWxsYmFjayhjKXtjb25zdHtzZWxlY3Rpb246bCxjb2x1bW5JbmRleE1hcHBlcjphfT1jLHtoaWdobGlnaHQ6ZCxmcm9tOmgsdG86Zn09Yy5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpO2lmKCFsLmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigpJiYhbC5pc1NlbGVjdGVkQnlDb3Ju'@; put 'ZXIoKSYmZC5pc0NlbGwoKSl7Y29uc3Qgdj1wYXJzZUludChjLmdldFNldHRpbmdzKCkuZml4ZWRDb2x1bW5zU3RhcnQsMTApLE09YS5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgodiwxKSxJPWguY2xvbmUoKTtJLmNvbD1kLmNvbCxsLm1hcmtTb3VyY2UoImtleWJvYXJkIiksbC5zZXRSYW5n'@; put 'ZVN0YXJ0KEksdm9pZCAwLCExLGQuY2xvbmUoKSksbC5zZXRSYW5nZUVuZChjLl9jcmVhdGVDZWxsQ29vcmRzKGYucm93LE0pKSxsLm1hcmtFbmRTb3VyY2UoKX19fSxFaXQ9e25hbWU6ImV4dGVuZENlbGxzU2VsZWN0aW9uVG9Nb3N0TGVmdCIsY2FsbGJhY2soYyl7Y29uc3R7c2VsZWN0aW9u'@; put 'OmwsY29sdW1uSW5kZXhNYXBwZXI6YX09Yyx7aGlnaGxpZ2h0OmQsZnJvbTpoLHRvOmZ9PWMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSx2PWQuaXNIZWFkZXIoKSYmbC5pc1NlbGVjdGVkQnlDb2x1bW5IZWFkZXIoKTtpZihkLmlzQ2VsbCgpfHx2KXtjb25zdCBNPWEuZ2V0TmVhcmVzdE5vdEhp'@; put 'ZGRlbkluZGV4KC4uLmMuaXNSdGwoKT9bYy5jb3VudENvbHMoKS0xLC0xXTpbMCwxXSksST1oLmNsb25lKCk7SS5jb2w9ZC5jb2wsbC5tYXJrU291cmNlKCJrZXlib2FyZCIpLGwuc2V0UmFuZ2VTdGFydChJLHZvaWQgMCwhMSxkLmNsb25lKCkpLHYmJmwuc2VsZWN0ZWRCeUNvbHVtbkhlYWRl'@; put 'ci5hZGQobC5nZXRMYXllckxldmVsKCkpLGwuc2V0UmFuZ2VFbmQoYy5fY3JlYXRlQ2VsbENvb3JkcyhmLnJvdyxNKSksbC5tYXJrRW5kU291cmNlKCl9fX0sVGl0PXtuYW1lOiJleHRlbmRDZWxsc1NlbGVjdGlvblRvTW9zdFJpZ2h0IixjYWxsYmFjayhjKXtjb25zdHtzZWxlY3Rpb246bCxj'@; put 'b2x1bW5JbmRleE1hcHBlcjphfT1jLHtoaWdobGlnaHQ6ZCxmcm9tOmgsdG86Zn09Yy5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLHY9ZC5pc0hlYWRlcigpJiZsLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigpO2lmKGQuaXNDZWxsKCl8fHYpe2NvbnN0IE09YS5nZXROZWFyZXN0Tm90SGlkZGVu'@; put 'SW5kZXgoLi4uYy5pc1J0bCgpP1swLDFdOltjLmNvdW50Q29scygpLTEsLTFdKSxJPWguY2xvbmUoKTtJLmNvbD1kLmNvbCxsLm1hcmtTb3VyY2UoImtleWJvYXJkIiksbC5zZXRSYW5nZVN0YXJ0KEksdm9pZCAwLCExLGQuY2xvbmUoKSksdiYmbC5zZWxlY3RlZEJ5Q29sdW1uSGVhZGVyLmFk'@; put 'ZChsLmdldExheWVyTGV2ZWwoKSksbC5zZXRSYW5nZUVuZChjLl9jcmVhdGVDZWxsQ29vcmRzKGYucm93LE0pKSxsLm1hcmtFbmRTb3VyY2UoKX19fSxBaXQ9e25hbWU6ImV4dGVuZENlbGxzU2VsZWN0aW9uVG9Nb3N0VG9wIixjYWxsYmFjayhjKXtjb25zdHtzZWxlY3Rpb246bCxyb3dJbmRl'@; put 'eE1hcHBlcjphfT1jLHtoaWdobGlnaHQ6ZCxmcm9tOmgsdG86Zn09Yy5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLHY9ZC5pc0hlYWRlcigpJiZsLmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigpO2lmKGQuaXNDZWxsKCl8fHYpe2NvbnN0IE09YS5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoMCwxKSxJ'@; put 'PWguY2xvbmUoKTtJLnJvdz1kLnJvdyxsLm1hcmtTb3VyY2UoImtleWJvYXJkIiksbC5zZXRSYW5nZVN0YXJ0KEksdm9pZCAwLCExLGQuY2xvbmUoKSksdiYmbC5zZWxlY3RlZEJ5Um93SGVhZGVyLmFkZChsLmdldExheWVyTGV2ZWwoKSksbC5zZXRSYW5nZUVuZChjLl9jcmVhdGVDZWxsQ29v'@; put 'cmRzKE0sZi5jb2wpKSxsLm1hcmtFbmRTb3VyY2UoKX19fSxraXQ9e25hbWU6ImV4dGVuZENlbGxzU2VsZWN0aW9uVG9Sb3dzIixjYWxsYmFjayhjKXtjb25zdHtzZWxlY3Rpb246bH09Yyx7aGlnaGxpZ2h0OmEsZnJvbTpkLHRvOmh9PWMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtsLm1hcmtT'@; put 'b3VyY2UoImtleWJvYXJkIiksbC5pc1NlbGVjdGVkQnlDb2x1bW5IZWFkZXIoKT9sLnNlbGVjdEFsbCghMCwhMCk6Yy5zZWxlY3RSb3dzKGQucm93LGgucm93LGEpLGwubWFya0VuZFNvdXJjZSgpfX0sRGl0PXtuYW1lOiJleHRlbmRDZWxsc1NlbGVjdGlvblVwIixjYWxsYmFjayhjKXtjb25z'@; put 'dHtzZWxlY3Rpb246bH09Yyx7aGlnaGxpZ2h0OmF9PWMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTshbC5pc1NlbGVjdGVkQnlDb2x1bW5IZWFkZXIoKSYmIWwuaXNTZWxlY3RlZEJ5Q29ybmVyKCkmJihhLmlzQ2VsbCgpfHxhLmlzSGVhZGVyKCkmJmwuaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCkp'@; put 'JiYobC5tYXJrU291cmNlKCJrZXlib2FyZCIpLGwudHJhbnNmb3JtRW5kKC0xLDApLGwubWFya0VuZFNvdXJjZSgpKX19LElpdD17bmFtZToiZXh0ZW5kQ2VsbHNTZWxlY3Rpb25VcEJ5Vmlld3BvcnRIZWlnaHQiLGNhbGxiYWNrKGMpe2NvbnN0e3NlbGVjdGlvbjpsLHJvd0luZGV4TWFwcGVy'@; put 'OmF9PWMse3RvOmR9PWMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxoPU1hdGgubWF4KGQucm93LWMuY291bnRWaXNpYmxlUm93cygpLDApLGY9YS5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoaCwxKTtpZihudWxsIT09Zil7Y29uc3Qgdj1jLl9jcmVhdGVDZWxsQ29vcmRzKGYsZC5jb2wpLE09'@; put 'ZC5yb3ctYy5nZXRGaXJzdEZ1bGx5VmlzaWJsZVJvdygpLEk9TWF0aC5tYXgodi5yb3ctTSwwKTtsLm1hcmtTb3VyY2UoImtleWJvYXJkIiksbC5zZXRSYW5nZUVuZCh2KSxsLm1hcmtFbmRTb3VyY2UoKSxjLnNjcm9sbFZpZXdwb3J0VG8oe3JvdzpJLHZlcnRpY2FsU25hcDoidG9wIixob3Jp'@; put 'em9udGFsU25hcDoic3RhcnQifSl9fX0sTGl0PXtuYW1lOiJtb3ZlQ2VsbFNlbGVjdGlvbkRvd24iLGNhbGxiYWNrKGMpe2xldHtzZWxlY3Rpb246bH09YztsLm1hcmtTb3VyY2UoImtleWJvYXJkIiksbC50cmFuc2Zvcm1TdGFydCgxLDApLGwubWFya0VuZFNvdXJjZSgpfX0sT2l0PXtuYW1l'@; put 'OiJtb3ZlQ2VsbFNlbGVjdGlvbkRvd25CeVZpZXdwb3J0SGVpZ2h0IixjYWxsYmFjayhjKXtjb25zdHtzZWxlY3Rpb246bH09Yyx7bmF2aWdhYmxlSGVhZGVyczphfT1jLmdldFNldHRpbmdzKCksZD1hP2MuY291bnRDb2xIZWFkZXJzKCk6MCx7cm93Omh9PWMuZ2V0U2VsZWN0ZWRSYW5nZUxh'@; put 'c3QoKS5oaWdobGlnaHQ7bGV0IGY9Yy5jb3VudFZpc2libGVSb3dzKCkrZDtmPTA9PT1mPzE6ZixoPT09Yy5jb3VudFJvd3MoKS0xP2Y9MTpoK2Y+Yy5jb3VudFJvd3MoKSYmKGY9Yy5jb3VudFJvd3MoKS1oLTEpLGwubWFya1NvdXJjZSgia2V5Ym9hcmQiKSxsLnRyYW5zZm9ybVN0YXJ0KGYs'@; put 'MCksbC5tYXJrRW5kU291cmNlKCksYy5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLmhpZ2hsaWdodC5yb3c8MCYmYy5zY3JvbGxWaWV3cG9ydFRvKHtyb3c6MH0pfX0sUGl0PXtuYW1lOiJtb3ZlQ2VsbFNlbGVjdGlvbklubGluZUVuZCIsY2FsbGJhY2soYyxsKXtjb25zdHtzZWxlY3Rpb246YX09'@; put 'YyxkPWMuZ2V0U2V0dGluZ3MoKSxoPWMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxmPSJmdW5jdGlvbiI9PXR5cGVvZiBkLnRhYk1vdmVzP2QudGFiTW92ZXMobCk6ZC50YWJNb3ZlczthLm1hcmtTb3VyY2UoImtleWJvYXJkIiksYS5pc011bHRpcGxlKCkmJiFoLmlzSGVhZGVyKCkmJmMuY291'@; put 'bnRSZW5kZXJlZENvbHMoKT4wJiZjLmNvdW50UmVuZGVyZWRSb3dzKCk+MD9hLnRyYW5zZm9ybUZvY3VzKC1mLnJvdywtZi5jb2wpOmEudHJhbnNmb3JtU3RhcnQoLWYucm93LC1mLmNvbCksYS5tYXJrRW5kU291cmNlKCl9fSxGaXQ9e25hbWU6Im1vdmVDZWxsU2VsZWN0aW9uSW5saW5lU3Rh'@; put 'cnQiLGNhbGxiYWNrKGMsbCl7Y29uc3R7c2VsZWN0aW9uOmF9PWMsZD1jLmdldFNldHRpbmdzKCksaD1jLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksZj0iZnVuY3Rpb24iPT10eXBlb2YgZC50YWJNb3Zlcz9kLnRhYk1vdmVzKGwpOmQudGFiTW92ZXM7YS5tYXJrU291cmNlKCJrZXlib2FyZCIp'@; put 'LGEuaXNNdWx0aXBsZSgpJiYhaC5pc0hlYWRlcigpJiZjLmNvdW50UmVuZGVyZWRDb2xzKCk+MCYmYy5jb3VudFJlbmRlcmVkUm93cygpPjA/YS50cmFuc2Zvcm1Gb2N1cyhmLnJvdyxmLmNvbCk6YS50cmFuc2Zvcm1TdGFydChmLnJvdyxmLmNvbCksYS5tYXJrRW5kU291cmNlKCl9fSxIaXQ9'@; put 'e25hbWU6Im1vdmVDZWxsU2VsZWN0aW9uTGVmdCIsY2FsbGJhY2soYyl7Y29uc3R7c2VsZWN0aW9uOmx9PWM7bC5tYXJrU291cmNlKCJrZXlib2FyZCIpLGwudHJhbnNmb3JtU3RhcnQoMCwtMSpjLmdldERpcmVjdGlvbkZhY3RvcigpKSxsLm1hcmtFbmRTb3VyY2UoKX19LE5pdD17bmFtZToi'@; put 'bW92ZUNlbGxTZWxlY3Rpb25SaWdodCIsY2FsbGJhY2soYyl7Y29uc3R7c2VsZWN0aW9uOmx9PWM7bC5tYXJrU291cmNlKCJrZXlib2FyZCIpLGwudHJhbnNmb3JtU3RhcnQoMCxjLmdldERpcmVjdGlvbkZhY3RvcigpKSxsLm1hcmtFbmRTb3VyY2UoKX19LFZpdD17bmFtZToibW92ZUNlbGxT'@; put 'ZWxlY3Rpb25Ub01vc3RCb3R0b20iLGNhbGxiYWNrKGMpe2NvbnN0e3NlbGVjdGlvbjpsfT1jLHtjb2w6YX09Yy5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLmhpZ2hsaWdodDtsZXQgZD1jLnJvd0luZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChjLmNvdW50Um93cygpLTEsLTEp'@; put 'O251bGw9PT1kJiYoZD0tMSksbC5zZXRSYW5nZVN0YXJ0KGMuX2NyZWF0ZUNlbGxDb29yZHMoZCxhKSl9fSxCaXQ9e25hbWU6Im1vdmVDZWxsU2VsZWN0aW9uVG9Nb3N0Qm90dG9tSW5saW5lRW5kIixjYWxsYmFjayhjKXtjb25zdHtzZWxlY3Rpb246bCxyb3dJbmRleE1hcHBlcjphLGNvbHVt'@; put 'bkluZGV4TWFwcGVyOmR9PWMsaD1wYXJzZUludChjLmdldFNldHRpbmdzKCkuZml4ZWRSb3dzQm90dG9tLDEwKSxmPWEuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KGMuY291bnRSb3dzKCktaC0xLC0xKSx2PWQuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KGMuY291bnRDb2xzKCktMSwtMSk7'@; put 'bC5tYXJrU291cmNlKCJrZXlib2FyZCIpLGwuc2V0UmFuZ2VTdGFydChjLl9jcmVhdGVDZWxsQ29vcmRzKGYsdikpLGwubWFya0VuZFNvdXJjZSgpfX0saml0PXtuYW1lOiJtb3ZlQ2VsbFNlbGVjdGlvblRvTW9zdElubGluZUVuZCIsY2FsbGJhY2soYyl7Y29uc3R7c2VsZWN0aW9uOmwsY29s'@; put 'dW1uSW5kZXhNYXBwZXI6YX09YztsLm1hcmtTb3VyY2UoImtleWJvYXJkIiksbC5zZXRSYW5nZVN0YXJ0KGMuX2NyZWF0ZUNlbGxDb29yZHMoYy5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLmhpZ2hsaWdodC5yb3csYS5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoYy5jb3VudENvbHMoKS0xLC0x'@; put 'KSkpLGwubWFya0VuZFNvdXJjZSgpfX0seml0PXtuYW1lOiJtb3ZlQ2VsbFNlbGVjdGlvblRvTW9zdElubGluZVN0YXJ0IixjYWxsYmFjayhjKXtjb25zdHtzZWxlY3Rpb246bCxjb2x1bW5JbmRleE1hcHBlcjphfT1jLGQ9cGFyc2VJbnQoYy5nZXRTZXR0aW5ncygpLmZpeGVkQ29sdW1uc1N0'@; put 'YXJ0LDEwKSxoPWMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKS5oaWdobGlnaHQucm93LGY9YS5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoZCwxKTtsLm1hcmtTb3VyY2UoImtleWJvYXJkIiksbC5zZXRSYW5nZVN0YXJ0KGMuX2NyZWF0ZUNlbGxDb29yZHMoaCxmKSksbC5tYXJrRW5kU291cmNl'@; put 'KCl9fSxVaXQ9e25hbWU6Im1vdmVDZWxsU2VsZWN0aW9uVG9Nb3N0TGVmdCIsY2FsbGJhY2soYyl7Y29uc3R7c2VsZWN0aW9uOmwsY29sdW1uSW5kZXhNYXBwZXI6YX09YyxkPWMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKS5oaWdobGlnaHQucm93O2xldCBoPWEuZ2V0TmVhcmVzdE5vdEhpZGRl'@; put 'bkluZGV4KC4uLmMuaXNSdGwoKT9bYy5jb3VudENvbHMoKS0xLC0xXTpbMCwxXSk7bnVsbD09PWgmJihoPWMuaXNSdGwoKT8tMTotYy5jb3VudFJvd0hlYWRlcnMoKSksbC5tYXJrU291cmNlKCJrZXlib2FyZCIpLGwuc2V0UmFuZ2VTdGFydChjLl9jcmVhdGVDZWxsQ29vcmRzKGQsaCkpLGwu'@; put 'bWFya0VuZFNvdXJjZSgpfX0sWml0PXtuYW1lOiJtb3ZlQ2VsbFNlbGVjdGlvblRvTW9zdFJpZ2h0IixjYWxsYmFjayhjKXtjb25zdHtzZWxlY3Rpb246bCxjb2x1bW5JbmRleE1hcHBlcjphfT1jLHtyb3c6ZH09Yy5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLmhpZ2hsaWdodDtsZXQgaD1hLmdl'@; put 'dE5lYXJlc3ROb3RIaWRkZW5JbmRleCguLi5jLmlzUnRsKCk/WzAsMV06W2MuY291bnRDb2xzKCktMSwtMV0pO251bGw9PT1oJiYoaD1jLmlzUnRsKCk/LWMuY291bnRSb3dIZWFkZXJzKCk6LTEpLGwubWFya1NvdXJjZSgia2V5Ym9hcmQiKSxsLnNldFJhbmdlU3RhcnQoYy5fY3JlYXRlQ2Vs'@; put 'bENvb3JkcyhkLGgpKSxsLm1hcmtFbmRTb3VyY2UoKX19LFdpdD17bmFtZToibW92ZUNlbGxTZWxlY3Rpb25Ub01vc3RUb3AiLGNhbGxiYWNrKGMpe2NvbnN0e3NlbGVjdGlvbjpsfT1jLHtjb2w6YX09Yy5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLmhpZ2hsaWdodDtsZXQgZD1jLnJvd0luZGV4'@; put 'TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCgwLDEpO251bGw9PT1kJiYoZD0tYy5jb3VudENvbEhlYWRlcnMoKSksbC5tYXJrU291cmNlKCJrZXlib2FyZCIpLGwuc2V0UmFuZ2VTdGFydChjLl9jcmVhdGVDZWxsQ29vcmRzKGQsYSkpLGwubWFya0VuZFNvdXJjZSgpfX0sWWl0PXtu'@; put 'YW1lOiJtb3ZlQ2VsbFNlbGVjdGlvblRvTW9zdFRvcElubGluZVN0YXJ0IixjYWxsYmFjayhjKXtjb25zdHtzZWxlY3Rpb246bCxyb3dJbmRleE1hcHBlcjphLGNvbHVtbkluZGV4TWFwcGVyOmR9PWMsaD1wYXJzZUludChjLmdldFNldHRpbmdzKCkuZml4ZWRSb3dzVG9wLDEwKSxmPXBhcnNl'@; put 'SW50KGMuZ2V0U2V0dGluZ3MoKS5maXhlZENvbHVtbnNTdGFydCwxMCksdj1hLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChoLDEpLE09ZC5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoZiwxKTtsLm1hcmtTb3VyY2UoImtleWJvYXJkIiksbC5zZXRSYW5nZVN0YXJ0KGMuX2NyZWF0ZUNlbGxD'@; put 'b29yZHModixNKSksbC5tYXJrRW5kU291cmNlKCl9fSxHaXQ9e25hbWU6Im1vdmVDZWxsU2VsZWN0aW9uVXAiLGNhbGxiYWNrKGMpe2xldHtzZWxlY3Rpb246bH09YztsLm1hcmtTb3VyY2UoImtleWJvYXJkIiksbC50cmFuc2Zvcm1TdGFydCgtMSwwKSxsLm1hcmtFbmRTb3VyY2UoKX19LCRp'@; put 'dD17bmFtZToibW92ZUNlbGxTZWxlY3Rpb25VcEJ5Vmlld3BvcnRIaWdodCIsY2FsbGJhY2soYyl7Y29uc3R7c2VsZWN0aW9uOmx9PWMse25hdmlnYWJsZUhlYWRlcnM6YX09Yy5nZXRTZXR0aW5ncygpLGQ9YT9jLmNvdW50Q29sSGVhZGVycygpOjAse3JvdzpofT1jLmdldFNlbGVjdGVkUmFu'@; put 'Z2VMYXN0KCkuaGlnaGxpZ2h0O2xldCBmPWMuY291bnRWaXNpYmxlUm93cygpK2Q7Zj0wPT09Zj8tMTotZixoPT09LWQ/Zj0tMTpoK2Y8ZCYmKGY9LShoK2QpKSxsLm1hcmtTb3VyY2UoImtleWJvYXJkIiksbC50cmFuc2Zvcm1TdGFydChmLDApLGwubWFya0VuZFNvdXJjZSgpLGMuZ2V0U2Vs'@; put 'ZWN0ZWRSYW5nZUxhc3QoKS5oaWdobGlnaHQucm93PDAmJmMuc2Nyb2xsVmlld3BvcnRUbyh7cm93OjB9KX19LFhpdD17bmFtZToiZW1wdHlTZWxlY3RlZENlbGxzIixjYWxsYmFjayhjKXtjLmVtcHR5U2VsZWN0ZWRDZWxscygpLGMuX2dldEVkaXRvck1hbmFnZXIoKS5wcmVwYXJlRWRpdG9y'@; put 'KCl9fSxxaXQ9e25hbWU6InNjcm9sbFRvRm9jdXNlZENlbGwiLGNhbGxiYWNrKGMpe2NvbnN0e2hpZ2hsaWdodDpsfT1jLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksYT1jLmdldEZpcnN0RnVsbHlWaXNpYmxlUm93KCktMSxkPWMuZ2V0Rmlyc3RGdWxseVZpc2libGVDb2x1bW4oKS0xLGg9Yy5n'@; put 'ZXRMYXN0RnVsbHlWaXNpYmxlUm93KCkrMSxmPWMuZ2V0TGFzdEZ1bGx5VmlzaWJsZUNvbHVtbigpKzEsdj1jLl9jcmVhdGVDZWxsQ29vcmRzKGEsZCksTT1jLl9jcmVhdGVDZWxsQ29vcmRzKGgsZik7aWYoIWMuX2NyZWF0ZUNlbGxSYW5nZSh2LHYsTSkuaW5jbHVkZXMobCkmJihsLnJvdz49'@; put 'MHx8bC5jb2w+PTApKXtjb25zdCBHPXt9O2lmKGwuY29sPj0wKXtjb25zdCByZT1NYXRoLmZsb29yKGMuY291bnRWaXNpYmxlQ29scygpLzIpO0cuY29sPU1hdGgubWF4KGwuY29sLXJlLDApfWlmKGwucm93Pj0wKXtjb25zdCByZT1NYXRoLmZsb29yKGMuY291bnRWaXNpYmxlUm93cygpLzIp'@; put 'O0cucm93PU1hdGgubWF4KGwucm93LXJlLDApfWMuc2Nyb2xsVmlld3BvcnRUbyh7Li4uRyx2ZXJ0aWNhbFNuYXA6InRvcCIsaG9yaXpvbnRhbFNuYXA6InN0YXJ0In0pfX19LEppdD17bmFtZToic2VsZWN0QWxsQ2VsbHMiLGNhbGxiYWNrKGMpe2xldHtzZWxlY3Rpb246bH09YztsLm1hcmtT'@; put 'b3VyY2UoImtleWJvYXJkIiksbC5zZWxlY3RBbGwoITAsITAse2Rpc2FibGVIZWFkZXJzSGlnaGxpZ2h0OiEwfSksbC5tYXJrRW5kU291cmNlKCl9fSxRaXQ9e25hbWU6InNlbGVjdEFsbENlbGxzQW5kSGVhZGVycyIsY2FsbGJhY2soYyl7bGV0e3NlbGVjdGlvbjpsfT1jO2wubWFya1NvdXJj'@; put 'ZSgia2V5Ym9hcmQiKSxsLnNlbGVjdEFsbCghMCwhMCx7ZGlzYWJsZUhlYWRlcnNIaWdobGlnaHQ6ITF9KSxsLm1hcmtFbmRTb3VyY2UoKX19LGVhdD17bmFtZToicG9wdWxhdGVTZWxlY3RlZENlbGxzRGF0YSIsY2FsbGJhY2soYyl7Y29uc3QgbD1jLmdldFNlbGVjdGVkUmFuZ2UoKSx7cm93'@; put 'OmEsY29sOmR9PWxbbC5sZW5ndGgtMV0uaGlnaGxpZ2h0Lm5vcm1hbGl6ZSgpLGg9Yy5nZXREYXRhQXRDZWxsKGEsZCksZj1uZXcgTWFwO2ZvcihsZXQgdj0wO3Y8bC5sZW5ndGg7disrKWxbdl0uZm9yQWxsKChNLEkpPT57aWYoTT49MCYmST49MCYmKE0hPT1hfHxJIT09ZCkpe2NvbnN0e3Jl'@; put 'YWRPbmx5Okd9PWMuZ2V0Q2VsbE1ldGEoTSxJKTtHfHxmLnNldChgJHtNfXgke0l9YCxbTSxJLGhdKX19KTtjLnNldERhdGFBdENlbGwoQXJyYXkuZnJvbShmLnZhbHVlcygpKSl9fSx0YXQ9Wy4uLmZ1bmN0aW9uIHZpdCgpe3JldHVybltzaXQsaGl0LGZpdCxwaXQsZ2l0LG1pdF19KCksLi4u'@; put 'ZnVuY3Rpb24gUml0KCl7cmV0dXJuW3lpdCxiaXQsX2l0LHdpdCxDaXQsU2l0LE1pdCx4aXQsRWl0LFRpdCxBaXQsa2l0LERpdCxJaXRdfSgpLC4uLmZ1bmN0aW9uIEtpdCgpe3JldHVybltMaXQsT2l0LFBpdCxGaXQsSGl0LE5pdCxWaXQsQml0LGppdCx6aXQsVWl0LFppdCxXaXQsWWl0LEdp'@; put 'dCwkaXRdfSgpLFhpdCxxaXQsSml0LFFpdCxlYXRdO2Z1bmN0aW9uIERwZShjKXtjb25zdCBsPXt9O3JldHVybiB0YXQuZm9yRWFjaChhPT57bGV0e25hbWU6ZCxjYWxsYmFjazpofT1hO2xbZF09ZnVuY3Rpb24oKXtmb3IodmFyIGY9YXJndW1lbnRzLmxlbmd0aCx2PW5ldyBBcnJheShmKSxN'@; put 'PTA7TTxmO00rKyl2W01dPWFyZ3VtZW50c1tNXTtyZXR1cm4gaChjLC4uLnYpfX0pLGx9ZnVuY3Rpb24gbmF0KGMpe2NvbnN0IGw9Yy5nZXRTaG9ydGN1dE1hbmFnZXIoKS5hZGRDb250ZXh0KCJlZGl0b3IiKSxhPURwZShjKSxkPXtncm91cDp6bX07bC5hZGRTaG9ydGN1dHMoW3trZXlzOltb'@; put 'IkVudGVyIl0sWyJFbnRlciIsIlNoaWZ0Il1dLGNhbGxiYWNrOihoLGYpPT5hLmVkaXRvckNsb3NlQW5kU2F2ZUJ5RW50ZXIoaCxmKX0se2tleXM6W1siRW50ZXIiLCJDb250cm9sL01ldGEiXSxbIkVudGVyIiwiQ29udHJvbC9NZXRhIiwiU2hpZnQiXV0sY2FwdHVyZUN0cmw6ITAsY2FsbGJh'@; put 'Y2s6KGgsZik9PmEuZWRpdG9yQ2xvc2VBbmRTYXZlQnlFbnRlcihoLGYpfSx7a2V5czpbWyJUYWIiXSxbIlRhYiIsIlNoaWZ0Il0sWyJQYWdlRG93biJdLFsiUGFnZVVwIl1dLGZvcndhcmRUb0NvbnRleHQ6Yy5nZXRTaG9ydGN1dE1hbmFnZXIoKS5nZXRDb250ZXh0KCJncmlkIiksY2FsbGJh'@; put 'Y2s6KGgsZik9PmEuZWRpdG9yQ2xvc2VBbmRTYXZlKGgsZil9LHtrZXlzOltbIkFycm93RG93biJdLFsiQXJyb3dVcCJdLFsiQXJyb3dMZWZ0Il0sWyJBcnJvd1JpZ2h0Il1dLHByZXZlbnREZWZhdWx0OiExLGNhbGxiYWNrOihoLGYpPT5hLmVkaXRvckNsb3NlQW5kU2F2ZUJ5QXJyb3dLZXlz'@; put 'KGgsZil9LHtrZXlzOltbIkVzY2FwZSJdLFsiRXNjYXBlIiwiQ29udHJvbC9NZXRhIl1dLGNhbGxiYWNrOigpPT5hLmVkaXRvckNsb3NlV2l0aG91dFNhdmluZygpfV0sZCl9ZnVuY3Rpb24gcmF0KGMpe2NvbnN0IGw9Yy5nZXRTaG9ydGN1dE1hbmFnZXIoKS5hZGRDb250ZXh0KCJncmlkIiks'@; put 'YT1EcGUoYyksZD17cnVuT25seUlmOigpPT57Y29uc3R7bmF2aWdhYmxlSGVhZGVyczpofT1jLmdldFNldHRpbmdzKCk7cmV0dXJuIEhhKGMuZ2V0U2VsZWN0ZWQoKSkmJihofHwhaCYmYy5jb3VudFJlbmRlcmVkUm93cygpPjAmJmMuY291bnRSZW5kZXJlZENvbHMoKT4wKX0sZ3JvdXA6U3Bl'@; put 'fTtsLmFkZFNob3J0Y3V0cyhbe2tleXM6W1siRjIiXV0sY2FsbGJhY2s6aD0+YS5lZGl0b3JGYXN0T3BlbihoKX0se2tleXM6W1siRW50ZXIiXSxbIkVudGVyIiwiU2hpZnQiXV0sY2FsbGJhY2s6KGgsZik9PmEuZWRpdG9yT3BlbihoLGYpfSx7a2V5czpbWyJCYWNrc3BhY2UiXSxbIkRlbGV0'@; put 'ZSJdXSxjYWxsYmFjazooKT0+YS5lbXB0eVNlbGVjdGVkQ2VsbHMoKX1dLHtncm91cDp6bSxydW5Pbmx5SWY6KCk9PkhhKGMuZ2V0U2VsZWN0ZWQoKSl9KSxsLmFkZFNob3J0Y3V0cyhbe2tleXM6W1siQ29udHJvbC9NZXRhIiwiQSJdXSxjYWxsYmFjazooKT0+YS5zZWxlY3RBbGxDZWxscygp'@; put 'LHJ1bk9ubHlJZjooKT0+e3ZhciBoO3JldHVybiEobnVsbCE9PShoPWMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSkmJnZvaWQgMCE9PWgmJmguaGlnaGxpZ2h0LmlzSGVhZGVyKCkpfX0se2tleXM6W1siQ29udHJvbC9NZXRhIiwiQSJdXSxjYWxsYmFjazooKT0+e30scnVuT25seUlmOigpPT57'@; put 'dmFyIGg7cmV0dXJuIG51bGw9PT0oaD1jLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCkpfHx2b2lkIDA9PT1oP3ZvaWQgMDpoLmhpZ2hsaWdodC5pc0hlYWRlcigpfSxwcmV2ZW50RGVmYXVsdDohMH0se2tleXM6W1siQ29udHJvbC9NZXRhIiwiU2hpZnQiLCJTcGFjZSJdXSxjYWxsYmFjazooKT0+'@; put 'YS5zZWxlY3RBbGxDZWxsc0FuZEhlYWRlcnMoKX0se2tleXM6W1siQ29udHJvbC9NZXRhIiwiRW50ZXIiXV0sY2FsbGJhY2s6KCk9PmEucG9wdWxhdGVTZWxlY3RlZENlbGxzRGF0YSgpLHJ1bk9ubHlJZjooKT0+e3ZhciBoLGY7cmV0dXJuIShudWxsIT09KGg9Yy5nZXRTZWxlY3RlZFJhbmdl'@; put 'TGFzdCgpKSYmdm9pZCAwIT09aCYmaC5oaWdobGlnaHQuaXNIZWFkZXIoKSkmJihudWxsPT09KGY9Yy5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpKXx8dm9pZCAwPT09Zj92b2lkIDA6Zi5nZXRDZWxsc0NvdW50KCkpPjF9fSx7a2V5czpbWyJDb250cm9sIiwiU3BhY2UiXV0sY2FwdHVyZUN0cmw6'@; put 'ITAsY2FsbGJhY2s6KCk9PmEuZXh0ZW5kQ2VsbHNTZWxlY3Rpb25Ub0NvbHVtbnMoKX0se2tleXM6W1siU2hpZnQiLCJTcGFjZSJdXSxzdG9wUHJvcGFnYXRpb246ITAsY2FsbGJhY2s6KCk9PmEuZXh0ZW5kQ2VsbHNTZWxlY3Rpb25Ub1Jvd3MoKX0se2tleXM6W1siQXJyb3dVcCJdXSxjYWxs'@; put 'YmFjazooKT0+YS5tb3ZlQ2VsbFNlbGVjdGlvblVwKCl9LHtrZXlzOltbIkFycm93VXAiLCJDb250cm9sL01ldGEiXV0sY2FwdHVyZUN0cmw6ITAsY2FsbGJhY2s6KCk9PmEubW92ZUNlbGxTZWxlY3Rpb25Ub01vc3RUb3AoKX0se2tleXM6W1siQXJyb3dVcCIsIlNoaWZ0Il1dLGNhbGxiYWNr'@; put 'OigpPT5hLmV4dGVuZENlbGxzU2VsZWN0aW9uVXAoKX0se2tleXM6W1siQXJyb3dVcCIsIlNoaWZ0IiwiQ29udHJvbC9NZXRhIl1dLGNhcHR1cmVDdHJsOiEwLGNhbGxiYWNrOigpPT5hLmV4dGVuZENlbGxzU2VsZWN0aW9uVG9Nb3N0VG9wKCkscnVuT25seUlmOigpPT4hKGMuc2VsZWN0aW9u'@; put 'LmlzU2VsZWN0ZWRCeUNvcm5lcigpfHxjLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb2x1bW5IZWFkZXIoKSl9LHtrZXlzOltbIkFycm93RG93biJdXSxjYWxsYmFjazooKT0+YS5tb3ZlQ2VsbFNlbGVjdGlvbkRvd24oKX0se2tleXM6W1siQXJyb3dEb3duIiwiQ29udHJvbC9NZXRhIl1dLGNh'@; put 'cHR1cmVDdHJsOiEwLGNhbGxiYWNrOigpPT5hLm1vdmVDZWxsU2VsZWN0aW9uVG9Nb3N0Qm90dG9tKCl9LHtrZXlzOltbIkFycm93RG93biIsIlNoaWZ0Il1dLGNhbGxiYWNrOigpPT5hLmV4dGVuZENlbGxzU2VsZWN0aW9uRG93bigpfSx7a2V5czpbWyJBcnJvd0Rvd24iLCJTaGlmdCIsIkNv'@; put 'bnRyb2wvTWV0YSJdXSxjYXB0dXJlQ3RybDohMCxjYWxsYmFjazooKT0+YS5leHRlbmRDZWxsc1NlbGVjdGlvblRvTW9zdEJvdHRvbSgpLHJ1bk9ubHlJZjooKT0+IShjLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKXx8Yy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVy'@; put 'KCkpfSx7a2V5czpbWyJBcnJvd0xlZnQiXV0sY2FsbGJhY2s6KCk9PmEubW92ZUNlbGxTZWxlY3Rpb25MZWZ0KCl9LHtrZXlzOltbIkFycm93TGVmdCIsIkNvbnRyb2wvTWV0YSJdXSxjYXB0dXJlQ3RybDohMCxjYWxsYmFjazooKT0+YS5tb3ZlQ2VsbFNlbGVjdGlvblRvTW9zdExlZnQoKX0s'@; put 'e2tleXM6W1siQXJyb3dMZWZ0IiwiU2hpZnQiXV0sY2FsbGJhY2s6KCk9PmEuZXh0ZW5kQ2VsbHNTZWxlY3Rpb25MZWZ0KCl9LHtrZXlzOltbIkFycm93TGVmdCIsIlNoaWZ0IiwiQ29udHJvbC9NZXRhIl1dLGNhcHR1cmVDdHJsOiEwLGNhbGxiYWNrOigpPT5hLmV4dGVuZENlbGxzU2VsZWN0'@; put 'aW9uVG9Nb3N0TGVmdCgpLHJ1bk9ubHlJZjooKT0+IShjLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKXx8Yy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCkpfSx7a2V5czpbWyJBcnJvd1JpZ2h0Il1dLGNhbGxiYWNrOigpPT5hLm1vdmVDZWxsU2VsZWN0aW9uUmlnaHQo'@; put 'KX0se2tleXM6W1siQXJyb3dSaWdodCIsIkNvbnRyb2wvTWV0YSJdXSxjYXB0dXJlQ3RybDohMCxjYWxsYmFjazooKT0+YS5tb3ZlQ2VsbFNlbGVjdGlvblRvTW9zdFJpZ2h0KCl9LHtrZXlzOltbIkFycm93UmlnaHQiLCJTaGlmdCJdXSxjYWxsYmFjazooKT0+YS5leHRlbmRDZWxsc1NlbGVj'@; put 'dGlvblJpZ2h0KCl9LHtrZXlzOltbIkFycm93UmlnaHQiLCJTaGlmdCIsIkNvbnRyb2wvTWV0YSJdXSxjYXB0dXJlQ3RybDohMCxjYWxsYmFjazooKT0+YS5leHRlbmRDZWxsc1NlbGVjdGlvblRvTW9zdFJpZ2h0KCkscnVuT25seUlmOigpPT4hKGMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNv'@; put 'cm5lcigpfHxjLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlSb3dIZWFkZXIoKSl9LHtrZXlzOltbIkhvbWUiXV0sY2FwdHVyZUN0cmw6ITAsY2FsbGJhY2s6KCk9PmEubW92ZUNlbGxTZWxlY3Rpb25Ub01vc3RJbmxpbmVTdGFydCgpLHJ1bk9ubHlJZjooKT0+Yy52aWV3LmlzTWFpblRhYmxlTm90'@; put 'RnVsbHlDb3ZlcmVkQnlPdmVybGF5cygpfSx7a2V5czpbWyJIb21lIiwiU2hpZnQiXV0sY2FsbGJhY2s6KCk9PmEuZXh0ZW5kQ2VsbHNTZWxlY3Rpb25Ub01vc3RJbmxpbmVTdGFydCgpfSx7a2V5czpbWyJIb21lIiwiQ29udHJvbC9NZXRhIl1dLGNhcHR1cmVDdHJsOiEwLGNhbGxiYWNrOigp'@; put 'PT5hLm1vdmVDZWxsU2VsZWN0aW9uVG9Nb3N0VG9wSW5saW5lU3RhcnQoKSxydW5Pbmx5SWY6KCk9PmMudmlldy5pc01haW5UYWJsZU5vdEZ1bGx5Q292ZXJlZEJ5T3ZlcmxheXMoKX0se2tleXM6W1siRW5kIl1dLGNhcHR1cmVDdHJsOiEwLGNhbGxiYWNrOigpPT5hLm1vdmVDZWxsU2VsZWN0'@; put 'aW9uVG9Nb3N0SW5saW5lRW5kKCkscnVuT25seUlmOigpPT5jLnZpZXcuaXNNYWluVGFibGVOb3RGdWxseUNvdmVyZWRCeU92ZXJsYXlzKCl9LHtrZXlzOltbIkVuZCIsIlNoaWZ0Il1dLGNhbGxiYWNrOigpPT5hLmV4dGVuZENlbGxzU2VsZWN0aW9uVG9Nb3N0SW5saW5lRW5kKCl9LHtrZXlz'@; put 'OltbIkVuZCIsIkNvbnRyb2wvTWV0YSJdXSxjYXB0dXJlQ3RybDohMCxjYWxsYmFjazooKT0+YS5tb3ZlQ2VsbFNlbGVjdGlvblRvTW9zdEJvdHRvbUlubGluZUVuZCgpLHJ1bk9ubHlJZjooKT0+Yy52aWV3LmlzTWFpblRhYmxlTm90RnVsbHlDb3ZlcmVkQnlPdmVybGF5cygpfSx7a2V5czpb'@; put 'WyJQYWdlVXAiXV0sY2FsbGJhY2s6KCk9PmEubW92ZUNlbGxTZWxlY3Rpb25VcEJ5Vmlld3BvcnRIaWdodCgpfSx7a2V5czpbWyJQYWdlVXAiLCJTaGlmdCJdXSxjYWxsYmFjazooKT0+YS5leHRlbmRDZWxsc1NlbGVjdGlvblVwQnlWaWV3cG9ydEhlaWdodCgpfSx7a2V5czpbWyJQYWdlRG93'@; put 'biJdXSxjYWxsYmFjazooKT0+YS5tb3ZlQ2VsbFNlbGVjdGlvbkRvd25CeVZpZXdwb3J0SGVpZ2h0KCl9LHtrZXlzOltbIlBhZ2VEb3duIiwiU2hpZnQiXV0sY2FsbGJhY2s6KCk9PmEuZXh0ZW5kQ2VsbHNTZWxlY3Rpb25Eb3duQnlWaWV3cG9ydEhlaWdodCgpfSx7a2V5czpbWyJUYWIiXV0s'@; put 'cHJldmVudERlZmF1bHQ6ITEsY2FsbGJhY2s6aD0+YS5tb3ZlQ2VsbFNlbGVjdGlvbklubGluZVN0YXJ0KGgpfSx7a2V5czpbWyJTaGlmdCIsIlRhYiJdXSxwcmV2ZW50RGVmYXVsdDohMSxjYWxsYmFjazpoPT5hLm1vdmVDZWxsU2VsZWN0aW9uSW5saW5lRW5kKGgpfSx7a2V5czpbWyJDb250'@; put 'cm9sL01ldGEiLCJCYWNrc3BhY2UiXV0sY2FsbGJhY2s6KCk9PmEuc2Nyb2xsVG9Gb2N1c2VkQ2VsbCgpfV0sZCl9ZnVuY3Rpb24gSXBlKGMpe2NvbnN0e2NsYXNzTmFtZXM6bH09ZWZlKGMsL2h0LXRoZW1lLVthLXpBLVowLTlfLV0rLyk7cmV0dXJuIGwucG9wKCl9ZnVuY3Rpb24gcjkoYyxs'@; put 'LGEpe1JwZShjLGwpLGwuc2V0KGMsYSl9ZnVuY3Rpb24gUnBlKGMsbCl7aWYobC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX1mdW5jdGlvbiBfMShjLGwpe3JldHVybiBj'@; put 'LmdldChwMyhjLGwpKX1mdW5jdGlvbiBxMihjLGwsYSl7cmV0dXJuIGMuc2V0KHAzKGMsbCksYSksYX1mdW5jdGlvbiBwMyhjLGwsYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGM/Yz09PWw6Yy5oYXMobCkpcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mz9sOmE7dGhyb3cgbmV3IFR5cGVFcnJv'@; put 'cigiUHJpdmF0ZSBlbGVtZW50IGlzIG5vdCBwcmVzZW50IG9uIHRoaXMgb2JqZWN0Iil9dmFyIGk5PW5ldyBXZWFrTWFwLFpQPW5ldyBXZWFrTWFwLERxPW5ldyBXZWFrTWFwLElxPW5ldyBXZWFrTWFwLFVtPW5ldyBXZWFrTWFwLHNUPW5ldyBXZWFrTWFwLG9UPW5ldyBXZWFrTWFwLEZwPW5l'@; put 'dyBXZWFrU2V0O2NsYXNzIHNhdHtjb25zdHJ1Y3RvcihsLGEpeyhmdW5jdGlvbiBhYXQoYyxsKXtScGUoYyxsKSxsLmFkZChjKX0pKHRoaXMsRnApLHI5KHRoaXMsaTksdm9pZCAwKSxyOSh0aGlzLFpQLHZvaWQgMCkscjkodGhpcyxEcSx2b2lkIDApLHI5KHRoaXMsSXEsdm9pZCAwKSxyOSh0'@; put 'aGlzLFVtLCEwKSxyOSh0aGlzLHNULHt9KSxyOSh0aGlzLG9ULHt9KSxxMihaUCx0aGlzLGwpLHEyKElxLHRoaXMsYSl9aXNDbGFzc2ljVGhlbWUoKXtyZXR1cm4gXzEoVW0sdGhpcyl9Z2V0Q1NTVmFyaWFibGVWYWx1ZShsKXt2YXIgYTtpZihfMShVbSx0aGlzKSlyZXR1cm4gbnVsbDtpZihf'@; put 'MShzVCx0aGlzKVtgLS1odC0ke2x9YF0pcmV0dXJuIF8xKHNULHRoaXMpW2AtLWh0LSR7bH1gXTtjb25zdCBkPW51bGwhPT0oYT1wMyhGcCx0aGlzLGNhdCkuY2FsbCh0aGlzLGAtLWh0LSR7bH1gKSkmJnZvaWQgMCE9PWE/YTpwMyhGcCx0aGlzLE9wZSkuY2FsbCh0aGlzLGAtLWh0LSR7bH1g'@; put 'KTtyZXR1cm4gbnVsbCE9PWQ/KF8xKHNULHRoaXMpW2AtLWh0LSR7bH1gXT1kLGQpOnZvaWQgMH1nZXRTdHlsZUZvclREKGwpe3ZhciBhO3JldHVybiBudWxsPT09KGE9XzEob1QsdGhpcykpfHx2b2lkIDA9PT1hP3ZvaWQgMDphLnRkW2xdfWdldERlZmF1bHRSb3dIZWlnaHQoKXtyZXR1cm4g'@; put 'XzEoVW0sdGhpcyk/MjM6cDMoRnAsdGhpcyxvYXQpLmNhbGwodGhpcyl8fDIzfWFyZUNlbGxzQm9yZGVyQm94KCl7cmV0dXJuImJvcmRlci1ib3giPT09dGhpcy5nZXRTdHlsZUZvclREKCJib3gtc2l6aW5nIil9dXNlVGhlbWUobCl7aWYoIWwpcmV0dXJuIHEyKGk5LHRoaXMsdm9pZCAwKSxx'@; put 'MihVbSx0aGlzLCEwKSx2b2lkIHAzKEZwLHRoaXMsUnEpLmNhbGwodGhpcyk7aWYobCYmbCE9PV8xKGk5LHRoaXMpKXtpZighL2h0LXRoZW1lLS4qLy50ZXN0KGwpKXJldHVybiBZbyhgSW52YWxpZCB0aGVtZSBuYW1lOiAke2x9LiBQbGVhc2UgcHJvdmlkZSBhIHZhbGlkIHRoZW1lIG5hbWUu'@; put 'YCkscTIoaTksdGhpcyx2b2lkIDApLHEyKFVtLHRoaXMsITEpLHZvaWQgcDMoRnAsdGhpcyxScSkuY2FsbCh0aGlzKTtfMShpOSx0aGlzKSYmcDMoRnAsdGhpcyx1YXQpLmNhbGwodGhpcykscTIoaTksdGhpcyxsKSxxMihVbSx0aGlzLCExKSxwMyhGcCx0aGlzLFJxKS5jYWxsKHRoaXMpfX1n'@; put 'ZXRUaGVtZU5hbWUoKXtyZXR1cm4gXzEoaTksdGhpcyl9fWZ1bmN0aW9uIG9hdCgpe2NvbnN0IGM9dGhpcy5nZXRDU1NWYXJpYWJsZVZhbHVlKCJsaW5lLWhlaWdodCIpLGw9dGhpcy5nZXRDU1NWYXJpYWJsZVZhbHVlKCJjZWxsLXZlcnRpY2FsLXBhZGRpbmciKSxhPU1hdGguY2VpbChwYXJz'@; put 'ZUZsb2F0KHRoaXMuZ2V0U3R5bGVGb3JURCgiYm9yZGVyLWJvdHRvbS13aWR0aCIpKSk7cmV0dXJuIG51bGw9PT1jfHxudWxsPT09bHx8aXNOYU4oYSk/bnVsbDpjKzIqbCthfWZ1bmN0aW9uIFJxKCl7dGhpcy5pc0NsYXNzaWNUaGVtZSgpfHxxMihEcSx0aGlzLGdldENvbXB1dGVkU3R5bGUo'@; put 'XzEoWlAsdGhpcykpKTtjb25zdCBjPXAzKEZwLHRoaXMsbGF0KS5jYWxsKHRoaXMsWyJib3gtc2l6aW5nIiwiYm9yZGVyLWJvdHRvbS13aWR0aCJdKTtfMShvVCx0aGlzKS50ZD17Li4uXzEob1QsdGhpcykudGQsImJveC1zaXppbmciOmNbImJveC1zaXppbmciXSwiYm9yZGVyLWJvdHRvbS13'@; put 'aWR0aCI6Y1siYm9yZGVyLWJvdHRvbS13aWR0aCJdfX1mdW5jdGlvbiBsYXQoYyl7Y29uc3QgbD1fMShJcSx0aGlzKSxhPV8xKFpQLHRoaXMpLGQ9bC5jcmVhdGVFbGVtZW50KCJ0YWJsZSIpLGg9bC5jcmVhdGVFbGVtZW50KCJ0Ym9keSIpLGY9bC5jcmVhdGVFbGVtZW50KCJ0ciIpLHY9bC5j'@; put 'cmVhdGVFbGVtZW50KCJ0ciIpLE09bC5jcmVhdGVFbGVtZW50KCJ0ZCIpO3YuYXBwZW5kQ2hpbGQoTSksaC5hcHBlbmRDaGlsZChmKSxoLmFwcGVuZENoaWxkKHYpLGQuYXBwZW5kQ2hpbGQoaCksYS5hcHBlbmRDaGlsZChkKTtjb25zdCBJPWdldENvbXB1dGVkU3R5bGUoTSksRz17fTtyZXR1'@; put 'cm4gYy5mb3JFYWNoKHJlPT57R1tyZV09SS5nZXRQcm9wZXJ0eVZhbHVlKHJlKX0pLGEucmVtb3ZlQ2hpbGQoZCksR31mdW5jdGlvbiBjYXQoYyl7Y29uc3QgbD1NYXRoLmNlaWwocGFyc2VGbG9hdChwMyhGcCx0aGlzLE9wZSkuY2FsbCh0aGlzLGMpKSk7cmV0dXJuIE51bWJlci5pc05hTihs'@; put 'KT9udWxsOmx9ZnVuY3Rpb24gT3BlKGMpe2NvbnN0IGw9XzEoRHEsdGhpcykuZ2V0UHJvcGVydHlWYWx1ZShjKTtyZXR1cm4iIj09PWw/bnVsbDpsfWZ1bmN0aW9uIHVhdCgpe3EyKG9ULHRoaXMse30pLHEyKHNULHRoaXMse30pLHEyKFVtLHRoaXMsITApfWZ1bmN0aW9uIFBwZShjLGwsYSl7'@; put 'RnBlKGMsbCksbC5zZXQoYyxhKX1mdW5jdGlvbiBGcGUoYyxsKXtpZihsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfWZ1bmN0aW9uIEhwZShjLGwpe3JldHVybiBjLmdl'@; put 'dChEXyhjLGwpKX1mdW5jdGlvbiBOcGUoYyxsLGEpe3JldHVybiBjLnNldChEXyhjLGwpLGEpLGF9ZnVuY3Rpb24gRF8oYyxsLGEpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBjP2M9PT1sOmMuaGFzKGwpKXJldHVybiBhcmd1bWVudHMubGVuZ3RoPDM/bDphO3Rocm93IG5ldyBUeXBlRXJyb3Io'@; put 'IlByaXZhdGUgZWxlbWVudCBpcyBub3QgcHJlc2VudCBvbiB0aGlzIG9iamVjdCIpfXZhciBMcT1uZXcgV2Vha01hcCxPcT1uZXcgV2Vha01hcCxsVD1uZXcgV2Vha1NldDtjbGFzcyBoYXR7Y29uc3RydWN0b3IobCl7bGV0e3Jvd0luZGV4TWFwcGVyOmEsY29sdW1uSW5kZXhNYXBwZXI6ZH09'@; put 'bDsoZnVuY3Rpb24gZGF0KGMsbCl7RnBlKGMsbCksbC5hZGQoYyl9KSh0aGlzLGxUKSxQcGUodGhpcyxMcSx2b2lkIDApLFBwZSh0aGlzLE9xLHZvaWQgMCksTnBlKExxLHRoaXMsYSksTnBlKE9xLHRoaXMsZCl9dG9SZW5kZXJhYmxlKGwpe2NvbnN0IGE9Ik4tUyI9PT1sLmdldFZlcnRpY2Fs'@; put 'RGlyZWN0aW9uKCk/MTotMSxkPSJXLUUiPT09bC5nZXRIb3Jpem9udGFsRGlyZWN0aW9uKCk/MTotMSxoPURfKGxULHRoaXMsVnBlKS5jYWxsKHRoaXMsbC5mcm9tLGEsZCk7aWYobnVsbD09PWgpcmV0dXJuIG51bGw7Y29uc3QgZj1EXyhsVCx0aGlzLFZwZSkuY2FsbCh0aGlzLGwudG8sLWEs'@; put 'LWQpO2lmKG51bGw9PT1mKXJldHVybiBudWxsO2NvbnN0IHY9bC5jbG9uZSgpO3JldHVybiB2LmZyb209aCx2LnRvPWYsdi5pbmNsdWRlcyhsLmhpZ2hsaWdodCl8fCh2LmhpZ2hsaWdodD1oKSx2fX1mdW5jdGlvbiBWcGUoYyxsKXtsZXQgYT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9'@; put 'PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06bDtjb25zdCBkPURfKGxULHRoaXMsQnBlKS5jYWxsKHRoaXMsSHBlKExxLHRoaXMpLGMucm93LGwpO2lmKG51bGw9PT1kKXJldHVybiBudWxsO2NvbnN0IGg9RF8obFQsdGhpcyxCcGUpLmNhbGwodGhpcyxIcGUoT3EsdGhpcyksYy5jb2wsYSk7'@; put 'cmV0dXJuIG51bGw9PT1oP251bGw6Yy5jbG9uZSgpLmFzc2lnbih7cm93OmQsY29sOmh9KX1mdW5jdGlvbiBCcGUoYyxsLGEpe3JldHVybiBsPDA/bDpjLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChsLGEpfWxldCBQcT1udWxsO2NvbnN0IEZxPW5ldyBNYXA7ZnVuY3Rpb24ganBlKGMsbCl7'@; put 'dmFyIGEsZD10aGlzO2xldCBoPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl0sZj10aGlzO2NvbnN0IHY9bmV3IFoyKGYpO2xldCBNLEksRyxyZSx1ZSx5ZSxFZT0hMDsoZnVuY3Rpb24gQXR0KGMpe3JldHVybiBjPT09REt9KShoKSYmZnVu'@; put 'Y3Rpb24gVHR0KGMpe2szZS5zZXQoYywhMCl9KHRoaXMpLHRoaXMucm9vdENvbnRhaW5lcj1jLHRoaXMucm9vdFdyYXBwZXJFbGVtZW50PXZvaWQgMCx0aGlzLnJvb3RQb3J0YWxFbGVtZW50PXZvaWQgMCx0aGlzLnJvb3RFbGVtZW50PXdfKHRoaXMpP2Mub3duZXJEb2N1bWVudC5jcmVhdGVF'@; put 'bGVtZW50KCJkaXYiKTpjLHRoaXMucm9vdERvY3VtZW50PWMub3duZXJEb2N1bWVudCx0aGlzLnJvb3RXaW5kb3c9dGhpcy5yb290RG9jdW1lbnQuZGVmYXVsdFZpZXcsd18odGhpcykmJih0aGlzLnJvb3RXcmFwcGVyRWxlbWVudD10aGlzLnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk'@; put 'aXYiKSx0aGlzLnJvb3RQb3J0YWxFbGVtZW50PXRoaXMucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLEVpKHRoaXMucm9vdEVsZW1lbnQsImh0LXdyYXBwZXIiKSxFaSh0aGlzLnJvb3RXcmFwcGVyRWxlbWVudCwiaHQtcm9vdC13cmFwcGVyIiksdGhpcy5yb290V3JhcHBlckVs'@; put 'ZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5yb290RWxlbWVudCksdGhpcy5yb290Q29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMucm9vdFdyYXBwZXJFbGVtZW50KSxFaSh0aGlzLnJvb3RQb3J0YWxFbGVtZW50LCJodC1wb3J0YWwiKSx0aGlzLnJvb3REb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk'@; put 'KHRoaXMucm9vdFBvcnRhbEVsZW1lbnQpKSx0aGlzLmlzRGVzdHJveWVkPSExLHRoaXMucmVuZGVyU3VzcGVuZGVkQ291bnRlcj0wLHRoaXMuZXhlY3V0aW9uU3VzcGVuZGVkQ291bnRlcj0wO2NvbnN0IEJlPW51bGwhPT0oYT1sPy5sYXlvdXREaXJlY3Rpb24pJiZ2b2lkIDAhPT1hP2E6Imlu'@; put 'aGVyaXQiLEdlPVsicnRsIiwibHRyIl0uaW5jbHVkZXMoQmUpP0JlOnRoaXMucm9vdFdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMucm9vdEVsZW1lbnQpLmRpcmVjdGlvbjt0aGlzLnJvb3RFbGVtZW50LnNldEF0dHJpYnV0ZSgiZGlyIixHZSksdGhpcy5pc1J0bD1mdW5jdGlvbigpe3Jl'@; put 'dHVybiJydGwiPT09R2V9LHRoaXMuaXNMdHI9ZnVuY3Rpb24oKXtyZXR1cm4hZi5pc1J0bCgpfSx0aGlzLmdldERpcmVjdGlvbkZhY3Rvcj1mdW5jdGlvbigpe3JldHVybiBmLmlzTHRyKCk/MTotMX0sdGhpcy5zdHlsZXNIYW5kbGVyPW5ldyBzYXQoZi5yb290RWxlbWVudCxmLnJvb3REb2N1'@; put 'bWVudCksbC5sYW5ndWFnZT1mdW5jdGlvbiB4bnQoYyl7bGV0IGw9WjNlKGMpO3JldHVybiBncShsKXx8KGw9cHEsVzNlKGMpKSxsfShsLmxhbmd1YWdlKTtjb25zdCBzdD1PYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMobCkuZmlsdGVyKHZ0PT57bGV0W3h0XT12dDtyZXR1cm4h'@; put 'KE1hLmdldFNpbmdsZXRvbigpLmlzUmVnaXN0ZXJlZCh4dCl8fE1hLmdldFNpbmdsZXRvbigpLmlzRGVwcmVjYXRlZCh4dCkpfSkpLHB0PW5ldyB2cGUoZixzdCxbRHJ0LEhydF0pLGR0PXB0LmdldFRhYmxlTWV0YSgpLHF0PXB0LmdldEdsb2JhbE1ldGEoKSxtbj1yUCgpO3RoaXMuY29udGFp'@; put 'bmVyPXRoaXMucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMucm9vdEVsZW1lbnQuaW5zZXJ0QmVmb3JlKHRoaXMuY29udGFpbmVyLHRoaXMucm9vdEVsZW1lbnQuZmlyc3RDaGlsZCksd18odGhpcykmJkwyZShsLmxpY2Vuc2VLZXksdGhpcy5yb290V3JhcHBlckVsZW1l'@; put 'bnQpLHRoaXMuZ3VpZD1gaHRfJHtnJCgpfWAsRnEuc2V0KHRoaXMuZ3VpZCx0aGlzKSx0aGlzLmNvbHVtbkluZGV4TWFwcGVyPW5ldyBZSyx0aGlzLnJvd0luZGV4TWFwcGVyPW5ldyBZSyx0aGlzLmNvbHVtbkluZGV4TWFwcGVyLmFkZExvY2FsSG9vaygiaW5kZXhlc1NlcXVlbmNlQ2hhbmdl'@; put 'Iix2dD0+e2YucnVuSG9va3MoImFmdGVyQ29sdW1uU2VxdWVuY2VDaGFuZ2UiLHZ0KX0pLHRoaXMucm93SW5kZXhNYXBwZXIuYWRkTG9jYWxIb29rKCJpbmRleGVzU2VxdWVuY2VDaGFuZ2UiLHZ0PT57Zi5ydW5Ib29rcygiYWZ0ZXJSb3dTZXF1ZW5jZUNoYW5nZSIsdnQpfSksdi5hZGRFdmVu'@; put 'dExpc3RlbmVyKHRoaXMucm9vdERvY3VtZW50LmRvY3VtZW50RWxlbWVudCwiY29tcG9zaXRpb25zdGFydCIsdnQ9PntmLnJ1bkhvb2tzKCJiZWZvcmVDb21wb3NpdGlvblN0YXJ0Iix2dCl9KSxJPW5ldyBVdHQoZik7Y29uc3Qgd249VTIodGhpcy5ndWlkKTt3bi5yZWdpc3RlcigiY2VsbFJh'@; put 'bmdlTWFwcGVyIixuZXcgaGF0KHtyb3dJbmRleE1hcHBlcjp0aGlzLnJvd0luZGV4TWFwcGVyLGNvbHVtbkluZGV4TWFwcGVyOnRoaXMuY29sdW1uSW5kZXhNYXBwZXJ9KSksKCF0aGlzLnJvb3RFbGVtZW50LmlkfHwiaHRfIj09PXRoaXMucm9vdEVsZW1lbnQuaWQuc3Vic3RyaW5nKDAsMykp'@; put 'JiYodGhpcy5yb290RWxlbWVudC5pZD10aGlzLmd1aWQpO2xldCBxbj1uZXcgYXJ0KGR0LHtyb3dJbmRleE1hcHBlcjpmLnJvd0luZGV4TWFwcGVyLGNvbHVtbkluZGV4TWFwcGVyOmYuY29sdW1uSW5kZXhNYXBwZXIsY291bnRDb2xzOigpPT5mLmNvdW50Q29scygpLGNvdW50Um93czooKT0+'@; put 'Zi5jb3VudFJvd3MoKSxwcm9wVG9Db2w6dnQ9Pk0ucHJvcFRvQ29sKHZ0KSxpc0VkaXRvck9wZW5lZDooKT0+ISFmLmdldEFjdGl2ZUVkaXRvcigpJiZmLmdldEFjdGl2ZUVkaXRvcigpLmlzT3BlbmVkKCksY291bnRSZW5kZXJhYmxlQ29sdW1uczooKT0+dGhpcy52aWV3LmNvdW50UmVuZGVy'@; put 'YWJsZUNvbHVtbnMoKSxjb3VudFJlbmRlcmFibGVSb3dzOigpPT50aGlzLnZpZXcuY291bnRSZW5kZXJhYmxlUm93cygpLGNvdW50Um93SGVhZGVyczooKT0+dGhpcy5jb3VudFJvd0hlYWRlcnMoKSxjb3VudENvbEhlYWRlcnM6KCk9PnRoaXMuY291bnRDb2xIZWFkZXJzKCksY291bnRSZW5k'@; put 'ZXJhYmxlUm93c0luUmFuZ2U6ZnVuY3Rpb24oKXtyZXR1cm4gZC52aWV3LmNvdW50UmVuZGVyYWJsZVJvd3NJblJhbmdlKC4uLmFyZ3VtZW50cyl9LGNvdW50UmVuZGVyYWJsZUNvbHVtbnNJblJhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuIGQudmlldy5jb3VudFJlbmRlcmFibGVDb2x1bW5zSW5S'@; put 'YW5nZSguLi5hcmd1bWVudHMpfSxnZXRTaG9ydGN1dE1hbmFnZXI6KCk9PmYuZ2V0U2hvcnRjdXRNYW5hZ2VyKCksY3JlYXRlQ2VsbENvb3JkczoodnQseHQpPT5mLl9jcmVhdGVDZWxsQ29vcmRzKHZ0LHh0KSxjcmVhdGVDZWxsUmFuZ2U6KHZ0LHh0LCR0KT0+Zi5fY3JlYXRlQ2VsbFJhbmdl'@; put 'KHZ0LHh0LCR0KSx2aXN1YWxUb1JlbmRlcmFibGVDb29yZHM6dnQ9Pntjb25zdHtyb3c6eHQsY29sOiR0fT12dDtyZXR1cm4gZi5fY3JlYXRlQ2VsbENvb3Jkcyh4dD49MD9mLnJvd0luZGV4TWFwcGVyLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoeHQpOnh0LCR0Pj0wP2YuY29sdW1u'@; put 'SW5kZXhNYXBwZXIuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleCgkdCk6JHQpfSxyZW5kZXJhYmxlVG9WaXN1YWxDb29yZHM6dnQ9Pntjb25zdHtyb3c6eHQsY29sOiR0fT12dDtyZXR1cm4gZi5fY3JlYXRlQ2VsbENvb3Jkcyh4dD49MD9mLnJvd0luZGV4TWFwcGVyLmdldFZpc3VhbEZy'@; put 'b21SZW5kZXJhYmxlSW5kZXgoeHQpOnh0LCR0Pj0wP2YuY29sdW1uSW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleCgkdCk6JHQpfSxmaW5kRmlyc3ROb25IaWRkZW5SZW5kZXJhYmxlUm93Oih2dCx4dCk9Pntjb25zdCAkdD14dD52dD8xOi0xLFluPU1hdGgubWluKHZ0'@; put 'LHh0KSwkbj1NYXRoLm1heCh2dCx4dCksYXI9Zi5yb3dJbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgodnQsJHQpO3JldHVybiBudWxsPT09YXJ8fDE9PT0kdCYmYXI+JG58fC0xPT09JHQmJmFyPFluP251bGw6YXI+PTA/Zi5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxl'@; put 'RnJvbVZpc3VhbEluZGV4KGFyKTphcn0sZmluZEZpcnN0Tm9uSGlkZGVuUmVuZGVyYWJsZUNvbHVtbjoodnQseHQpPT57Y29uc3QgJHQ9eHQ+dnQ/MTotMSxZbj1NYXRoLm1pbih2dCx4dCksJG49TWF0aC5tYXgodnQseHQpLGFyPWYuY29sdW1uSW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhp'@; put 'ZGRlbkluZGV4KHZ0LCR0KTtyZXR1cm4gbnVsbD09PWFyfHwxPT09JHQmJmFyPiRufHwtMT09PSR0JiZhcjxZbj9udWxsOmFyPj0wP2YuY29sdW1uSW5kZXhNYXBwZXIuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChhcik6YXJ9LGlzRGlzYWJsZWRDZWxsU2VsZWN0aW9uOih2dCx4dCk9'@; put 'PnZ0PDB8fHh0PDA/Zi5nZXRTZXR0aW5ncygpLmRpc2FibGVWaXN1YWxTZWxlY3Rpb246Zi5nZXRDZWxsTWV0YSh2dCx4dCkuZGlzYWJsZVZpc3VhbFNlbGVjdGlvbn0pO3RoaXMuc2VsZWN0aW9uPXFuO2NvbnN0IGdyPXZ0PT57bGV0e2hpZGRlbkluZGV4ZXNDaGFuZ2VkOnh0fT12dDt0aGlz'@; put 'LmZvcmNlRnVsbFJlbmRlcj0hMCx4dCYmdGhpcy5zZWxlY3Rpb24uY29tbWl0KCl9O2Z1bmN0aW9uIF9pKHZ0LHh0KXtjb25zdCAkdD0iY2xhc3NOYW1lIj09PXZ0P2Yucm9vdEVsZW1lbnQ6Zi50YWJsZTtpZihFZSlFaSgkdCx4dCk7ZWxzZXtsZXQgWW49W10sJG49W107cXRbdnRdJiYoWW49'@; put 'QXJyYXkuaXNBcnJheShxdFt2dF0pP3F0W3Z0XTpmJChxdFt2dF0pKSx4dCYmKCRuPUFycmF5LmlzQXJyYXkoeHQpP3h0OmYkKHh0KSk7Y29uc3QgYXI9aCQoWW4sJG4pLEdyPWgkKCRuLFluKTthci5sZW5ndGgmJmhzKCR0LGFyKSxHci5sZW5ndGgmJkVpKCR0LEdyKX1xdFt2dF09eHR9ZnVu'@; put 'Y3Rpb24gUG4oKXtsZXQgdnQ9ITE7cmV0dXJue3ZhbGlkYXRvcnNJblF1ZXVlOjAsdmFsaWQ6ITAsYWRkVmFsaWRhdG9yVG9RdWV1ZSgpe3RoaXMudmFsaWRhdG9yc0luUXVldWUrPTEsdnQ9ITF9LHJlbW92ZVZhbGlkYXRvckZvcm1RdWV1ZSgpe3RoaXMudmFsaWRhdG9yc0luUXVldWU9dGhp'@; put 'cy52YWxpZGF0b3JzSW5RdWV1ZS0xPDA/MDp0aGlzLnZhbGlkYXRvcnNJblF1ZXVlLTEsdGhpcy5jaGVja0lmUXVldWVJc0VtcHR5KCl9LG9uUXVldWVFbXB0eSgpe30sY2hlY2tJZlF1ZXVlSXNFbXB0eSgpezA9PT10aGlzLnZhbGlkYXRvcnNJblF1ZXVlJiYhMT09PXZ0JiYodnQ9ITAsdGhp'@; put 'cy5vblF1ZXVlRW1wdHkodGhpcy52YWxpZCkpfX19ZnVuY3Rpb24gVXIodnQpe2NvbnN0IHh0PXZ0LnJlcGxhY2UoIiwiLCIuIik7cmV0dXJuITE9PT1pc05hTihwYXJzZUZsb2F0KHh0KSk/cGFyc2VGbG9hdCh4dCk6dnR9ZnVuY3Rpb24gdHIodnQseHQsJHQpe2lmKCF2dC5sZW5ndGgpcmV0'@; put 'dXJuIHZvaWQgJHQoKTtjb25zdCBZbj1mLmdldEFjdGl2ZUVkaXRvcigpLCRuPW5ldyBQbjtsZXQgYXI9ITA7JG4ub25RdWV1ZUVtcHR5PSgpPT57WW4mJmFyJiZZbi5jYW5jZWxDaGFuZ2VzKCksJHQoKX07Zm9yKGxldCBHcj12dC5sZW5ndGgtMTtHcj49MDtHci0tKXtjb25zdFtHdCxibl09'@; put 'dnRbR3JdLHhuPU0ucHJvcFRvQ29sKGJuKTtsZXQgSW47SW49TnVtYmVyLmlzSW50ZWdlcih4bik/Zi5nZXRDZWxsTWV0YShHdCx4bik6ey4uLk9iamVjdC5nZXRQcm90b3R5cGVPZihkdCksLi4uZHR9LGYuZ2V0Q2VsbFZhbGlkYXRvcihJbikmJigkbi5hZGRWYWxpZGF0b3JUb1F1ZXVlKCks'@; put 'Zi52YWxpZGF0ZUNlbGwodnRbR3JdWzNdLEluLGZ1bmN0aW9uKFhuLE5uKXtyZXR1cm4gZnVuY3Rpb24odnIpe2lmKCJib29sZWFuIiE9dHlwZW9mIHZyKXRocm93IG5ldyBFcnJvcigiVmFsaWRhdGlvbiBlcnJvcjogcmVzdWx0IGlzIG5vdCBib29sZWFuIik7ITE9PT12ciYmITE9PT1Obi5h'@; put 'bGxvd0ludmFsaWQmJihhcj0hMSx2dC5zcGxpY2UoWG4sMSksTm4udmFsaWQ9ITApLCRuLnJlbW92ZVZhbGlkYXRvckZvcm1RdWV1ZSgpfX0oR3IsSW4pLHh0KSl9JG4uY2hlY2tJZlF1ZXVlSXNFbXB0eSgpfWZ1bmN0aW9uIEJyKHZ0LHh0KXtmb3IobGV0IFluPXZ0Lmxlbmd0aC0xO1luPj0w'@; put 'O1luLS0pe2xldCAkbj0hMTtpZihudWxsIT09dnRbWW5dKXtpZihudWxsIT12dFtZbl1bMl18fG51bGwhPXZ0W1luXVszXSl7aWYoZHQuYWxsb3dJbnNlcnRSb3cpZm9yKDt2dFtZbl1bMF0+Zi5jb3VudFJvd3MoKS0xOyl7Y29uc3R7ZGVsdGE6YXJ9PU0uY3JlYXRlUm93KHZvaWQgMCx2b2lk'@; put 'IDAse3NvdXJjZToiYXV0byJ9KTtpZigwPT09YXIpeyRuPSEwO2JyZWFrfX1pZigiYXJyYXkiPT09Zi5kYXRhVHlwZSYmKCFkdC5jb2x1bW5zfHwwPT09ZHQuY29sdW1ucy5sZW5ndGgpJiZkdC5hbGxvd0luc2VydENvbHVtbilmb3IoO00ucHJvcFRvQ29sKHZ0W1luXVsxXSk+Zi5jb3VudENv'@; put 'bHMoKS0xOyl7Y29uc3R7ZGVsdGE6YXJ9PU0uY3JlYXRlQ29sKHZvaWQgMCx2b2lkIDAse3NvdXJjZToiYXV0byJ9KTtpZigwPT09YXIpeyRuPSEwO2JyZWFrfX0kbnx8TS5zZXQodnRbWW5dWzBdLHZ0W1luXVsxXSx2dFtZbl1bM10pfX1lbHNlIHZ0LnNwbGljZShZbiwxKX1pZih2dC5sZW5n'@; put 'dGg+MCl7Ry5hZGp1c3RSb3dzQW5kQ29scygpLGYucnVuSG9va3MoImJlZm9yZUNoYW5nZVJlbmRlciIsdnQseHQpLHJlLmNsb3NlRWRpdG9yKCksZi5yZW5kZXIoKSxyZS5wcmVwYXJlRWRpdG9yKCksZi52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSgpLGYucnVuSG9va3MoImFmdGVyQ2hhbmdl'@; put 'Iix2dCx4dHx8ImVkaXQiKTtjb25zdCBZbj1mLmdldEFjdGl2ZUVkaXRvcigpO1luJiZIYShZbi5yZWZyZXNoVmFsdWUpJiZZbi5yZWZyZXNoVmFsdWUoKX1lbHNlIGYucmVuZGVyKCl9ZnVuY3Rpb24gWXIodnQseHQsJHQpe3JldHVybiBBcnJheS5pc0FycmF5KHZ0KT92dDpbW3Z0LHh0LCR0'@; put 'XV19ZnVuY3Rpb24gd2kodnQseHQpe2NvbnN0ICR0PWYucnVuSG9va3MoImJlZm9yZUNoYW5nZSIsdnQseHR8fCJlZGl0IiksWW49dnQuZmlsdGVyKGFyPT5udWxsIT09YXIpO3ZhciAkbjtpZighMT09PSR0fHwwPT09WW4ubGVuZ3RoKXJldHVybiBudWxsPT09KCRuPWYuZ2V0QWN0aXZlRWRp'@; put 'dG9yKCkpfHx2b2lkIDA9PT0kbnx8JG4uY2FuY2VsQ2hhbmdlcygpLFtdO2ZvcihsZXQgYXI9WW4ubGVuZ3RoLTE7YXI+PTA7YXItLSl7Y29uc3RbR3IsR3QsLGJuXT1Zblthcl0seG49TS5wcm9wVG9Db2woR3QpO2xldCBJbjtJbj1OdW1iZXIuaXNJbnRlZ2VyKHhuKT9mLmdldENlbGxNZXRh'@; put 'KEdyLHhuKTp7Li4uT2JqZWN0LmdldFByb3RvdHlwZU9mKGR0KSwuLi5kdH07Y29uc3R7dHlwZTpYbixjaGVja2VkVGVtcGxhdGU6Tm4sdW5jaGVja2VkVGVtcGxhdGU6dnJ9PUluO2lmKCJudW1lcmljIj09PVhuJiYic3RyaW5nIj09dHlwZW9mIGJuJiZEZmUoYm4pJiYoWW5bYXJdWzNdPVVy'@; put 'KGJuKSksImNoZWNrYm94Ij09PVhuKXtjb25zdCBXbj1vYyhibiksZnI9V249PT1vYyhObiksRHI9V249PT1vYyh2cik7KGZyfHxEcikmJihZblthcl1bM109ZnI/Tm46dnIpfX1yZXR1cm4gWW59dGhpcy5jb2x1bW5JbmRleE1hcHBlci5hZGRMb2NhbEhvb2soImNhY2hlVXBkYXRlZCIsZ3Ip'@; put 'LHRoaXMucm93SW5kZXhNYXBwZXIuYWRkTG9jYWxIb29rKCJjYWNoZVVwZGF0ZWQiLGdyKSx0aGlzLnNlbGVjdGlvbi5hZGRMb2NhbEhvb2soImFmdGVyU2V0UmFuZ2VFbmQiLCh2dCx4dCk9Pntjb25zdCAkdD1GZCghMSksWW49dGhpcy5zZWxlY3Rpb24uZ2V0U2VsZWN0ZWRSYW5nZSgpLHtm'@; put 'cm9tOiRuLHRvOmFyfT1Zbi5jdXJyZW50KCksR3I9WW4uc2l6ZSgpLTE7dGhpcy5ydW5Ib29rcygiYWZ0ZXJTZWxlY3Rpb24iLCRuLnJvdywkbi5jb2wsYXIucm93LGFyLmNvbCwkdCxHciksdGhpcy5ydW5Ib29rcygiYWZ0ZXJTZWxlY3Rpb25CeVByb3AiLCRuLnJvdyxmLmNvbFRvUHJvcCgk'@; put 'bi5jb2wpLGFyLnJvdyxmLmNvbFRvUHJvcChhci5jb2wpLCR0LEdyKSx4dCYmKCEkdC5pc1RvdWNoZWQoKXx8JHQuaXNUb3VjaGVkKCkmJiEkdC52YWx1ZSkmJnllLnNjcm9sbFRvKHZ0KTtjb25zdCBHdD1xbi5pc1NlbGVjdGVkQnlSb3dIZWFkZXIoKSxibj1xbi5pc1NlbGVjdGVkQnlDb2x1'@; put 'bW5IZWFkZXIoKTtHdCYmYm4/RWkodGhpcy5yb290RWxlbWVudCxbImh0X19zZWxlY3Rpb24tLXJvd3MiLCJodF9fc2VsZWN0aW9uLS1jb2x1bW5zIl0pOkd0Pyhocyh0aGlzLnJvb3RFbGVtZW50LCJodF9fc2VsZWN0aW9uLS1jb2x1bW5zIiksRWkodGhpcy5yb290RWxlbWVudCwiaHRfX3Nl'@; put 'bGVjdGlvbi0tcm93cyIpKTpibj8oaHModGhpcy5yb290RWxlbWVudCwiaHRfX3NlbGVjdGlvbi0tcm93cyIpLEVpKHRoaXMucm9vdEVsZW1lbnQsImh0X19zZWxlY3Rpb24tLWNvbHVtbnMiKSk6aHModGhpcy5yb290RWxlbWVudCxbImh0X19zZWxlY3Rpb24tLXJvd3MiLCJodF9fc2VsZWN0'@; put 'aW9uLS1jb2x1bW5zIl0pLFsic2hpZnQiLCJyZWZyZXNoIl0uaW5jbHVkZXMocW4uZ2V0U2VsZWN0aW9uU291cmNlKCkpfHxyZS5jbG9zZUVkaXRvcihudWxsKSwicmVmcmVzaCIhPT1xbi5nZXRTZWxlY3Rpb25Tb3VyY2UoKSYmKGYudmlldy5yZW5kZXIoKSxyZS5wcmVwYXJlRWRpdG9yKCkp'@; put 'fSksdGhpcy5zZWxlY3Rpb24uYWRkTG9jYWxIb29rKCJiZWZvcmVTZXRGb2N1cyIsdnQ9Pnt0aGlzLnJ1bkhvb2tzKCJiZWZvcmVTZWxlY3Rpb25Gb2N1c1NldCIsdnQucm93LHZ0LmNvbCl9KSx0aGlzLnNlbGVjdGlvbi5hZGRMb2NhbEhvb2soImFmdGVyU2V0Rm9jdXMiLHZ0PT57Y29uc3Qg'@; put 'eHQ9RmQoITEpO3RoaXMucnVuSG9va3MoImFmdGVyU2VsZWN0aW9uRm9jdXNTZXQiLHZ0LnJvdyx2dC5jb2wseHQpLCgheHQuaXNUb3VjaGVkKCl8fHh0LmlzVG91Y2hlZCgpJiYheHQudmFsdWUpJiZ5ZS5zY3JvbGxUbyh2dCkscmUuY2xvc2VFZGl0b3IoKSxmLnZpZXcucmVuZGVyKCkscmUu'@; put 'cHJlcGFyZUVkaXRvcigpfSksdGhpcy5zZWxlY3Rpb24uYWRkTG9jYWxIb29rKCJhZnRlclNlbGVjdGlvbkZpbmlzaGVkIix2dD0+e2NvbnN0IHh0PXZ0Lmxlbmd0aC0xLHtmcm9tOiR0LHRvOllufT12dFt4dF07dGhpcy5ydW5Ib29rcygiYWZ0ZXJTZWxlY3Rpb25FbmQiLCR0LnJvdywkdC5j'@; put 'b2wsWW4ucm93LFluLmNvbCx4dCksdGhpcy5ydW5Ib29rcygiYWZ0ZXJTZWxlY3Rpb25FbmRCeVByb3AiLCR0LnJvdyxmLmNvbFRvUHJvcCgkdC5jb2wpLFluLnJvdyxmLmNvbFRvUHJvcChZbi5jb2wpLHh0KSwicmVmcmVzaCI9PT1xbi5nZXRTZWxlY3Rpb25Tb3VyY2UoKSYmKGYudmlldy5y'@; put 'ZW5kZXIoKSxyZS5wcmVwYXJlRWRpdG9yKCkpfSksdGhpcy5zZWxlY3Rpb24uYWRkTG9jYWxIb29rKCJhZnRlcklzTXVsdGlwbGVTZWxlY3Rpb24iLHZ0PT57Y29uc3QgeHQ9dGhpcy5ydW5Ib29rcygiYWZ0ZXJJc011bHRpcGxlU2VsZWN0aW9uIix2dC52YWx1ZSk7dnQudmFsdWUmJih2dC52'@; put 'YWx1ZT14dCl9KSx0aGlzLnNlbGVjdGlvbi5hZGRMb2NhbEhvb2soImFmdGVyRGVzZWxlY3QiLCgpPT57cmUuY2xvc2VFZGl0b3IoKSxmLnZpZXcucmVuZGVyKCksaHModGhpcy5yb290RWxlbWVudCxbImh0X19zZWxlY3Rpb24tLXJvd3MiLCJodF9fc2VsZWN0aW9uLS1jb2x1bW5zIl0pLHRo'@; put 'aXMucnVuSG9va3MoImFmdGVyRGVzZWxlY3QiKX0pLHRoaXMuc2VsZWN0aW9uLmFkZExvY2FsSG9vaygiYmVmb3JlSGlnaGxpZ2h0U2V0IiwoKT0+dGhpcy5ydW5Ib29rcygiYmVmb3JlU2VsZWN0aW9uSGlnaGxpZ2h0U2V0IikpLmFkZExvY2FsSG9vaygiYmVmb3JlU2V0UmFuZ2VTdGFydCIs'@; put 'ZnVuY3Rpb24oKXtmb3IodmFyIHZ0PWFyZ3VtZW50cy5sZW5ndGgseHQ9bmV3IEFycmF5KHZ0KSwkdD0wOyR0PHZ0OyR0KyspeHRbJHRdPWFyZ3VtZW50c1skdF07cmV0dXJuIGQucnVuSG9va3MoImJlZm9yZVNldFJhbmdlU3RhcnQiLC4uLnh0KX0pLmFkZExvY2FsSG9vaygiYmVmb3JlU2V0'@; put 'UmFuZ2VTdGFydE9ubHkiLGZ1bmN0aW9uKCl7Zm9yKHZhciB2dD1hcmd1bWVudHMubGVuZ3RoLHh0PW5ldyBBcnJheSh2dCksJHQ9MDskdDx2dDskdCsrKXh0WyR0XT1hcmd1bWVudHNbJHRdO3JldHVybiBkLnJ1bkhvb2tzKCJiZWZvcmVTZXRSYW5nZVN0YXJ0T25seSIsLi4ueHQpfSkuYWRk'@; put 'TG9jYWxIb29rKCJiZWZvcmVTZXRSYW5nZUVuZCIsZnVuY3Rpb24oKXtmb3IodmFyIHZ0PWFyZ3VtZW50cy5sZW5ndGgseHQ9bmV3IEFycmF5KHZ0KSwkdD0wOyR0PHZ0OyR0KyspeHRbJHRdPWFyZ3VtZW50c1skdF07cmV0dXJuIGQucnVuSG9va3MoImJlZm9yZVNldFJhbmdlRW5kIiwuLi54'@; put 'dCl9KS5hZGRMb2NhbEhvb2soImJlZm9yZVNlbGVjdENvbHVtbnMiLGZ1bmN0aW9uKCl7Zm9yKHZhciB2dD1hcmd1bWVudHMubGVuZ3RoLHh0PW5ldyBBcnJheSh2dCksJHQ9MDskdDx2dDskdCsrKXh0WyR0XT1hcmd1bWVudHNbJHRdO3JldHVybiBkLnJ1bkhvb2tzKCJiZWZvcmVTZWxlY3RD'@; put 'b2x1bW5zIiwuLi54dCl9KS5hZGRMb2NhbEhvb2soImFmdGVyU2VsZWN0Q29sdW1ucyIsZnVuY3Rpb24oKXtmb3IodmFyIHZ0PWFyZ3VtZW50cy5sZW5ndGgseHQ9bmV3IEFycmF5KHZ0KSwkdD0wOyR0PHZ0OyR0KyspeHRbJHRdPWFyZ3VtZW50c1skdF07cmV0dXJuIGQucnVuSG9va3MoImFm'@; put 'dGVyU2VsZWN0Q29sdW1ucyIsLi4ueHQpfSkuYWRkTG9jYWxIb29rKCJiZWZvcmVTZWxlY3RSb3dzIixmdW5jdGlvbigpe2Zvcih2YXIgdnQ9YXJndW1lbnRzLmxlbmd0aCx4dD1uZXcgQXJyYXkodnQpLCR0PTA7JHQ8dnQ7JHQrKyl4dFskdF09YXJndW1lbnRzWyR0XTtyZXR1cm4gZC5ydW5I'@; put 'b29rcygiYmVmb3JlU2VsZWN0Um93cyIsLi4ueHQpfSkuYWRkTG9jYWxIb29rKCJhZnRlclNlbGVjdFJvd3MiLGZ1bmN0aW9uKCl7Zm9yKHZhciB2dD1hcmd1bWVudHMubGVuZ3RoLHh0PW5ldyBBcnJheSh2dCksJHQ9MDskdDx2dDskdCsrKXh0WyR0XT1hcmd1bWVudHNbJHRdO3JldHVybiBk'@; put 'LnJ1bkhvb2tzKCJhZnRlclNlbGVjdFJvd3MiLC4uLnh0KX0pLmFkZExvY2FsSG9vaygiYmVmb3JlTW9kaWZ5VHJhbnNmb3JtU3RhcnQiLGZ1bmN0aW9uKCl7Zm9yKHZhciB2dD1hcmd1bWVudHMubGVuZ3RoLHh0PW5ldyBBcnJheSh2dCksJHQ9MDskdDx2dDskdCsrKXh0WyR0XT1hcmd1bWVu'@; put 'dHNbJHRdO3JldHVybiBkLnJ1bkhvb2tzKCJtb2RpZnlUcmFuc2Zvcm1TdGFydCIsLi4ueHQpfSkuYWRkTG9jYWxIb29rKCJhZnRlck1vZGlmeVRyYW5zZm9ybVN0YXJ0IixmdW5jdGlvbigpe2Zvcih2YXIgdnQ9YXJndW1lbnRzLmxlbmd0aCx4dD1uZXcgQXJyYXkodnQpLCR0PTA7JHQ8dnQ7'@; put 'JHQrKyl4dFskdF09YXJndW1lbnRzWyR0XTtyZXR1cm4gZC5ydW5Ib29rcygiYWZ0ZXJNb2RpZnlUcmFuc2Zvcm1TdGFydCIsLi4ueHQpfSkuYWRkTG9jYWxIb29rKCJiZWZvcmVNb2RpZnlUcmFuc2Zvcm1Gb2N1cyIsZnVuY3Rpb24oKXtmb3IodmFyIHZ0PWFyZ3VtZW50cy5sZW5ndGgseHQ9'@; put 'bmV3IEFycmF5KHZ0KSwkdD0wOyR0PHZ0OyR0KyspeHRbJHRdPWFyZ3VtZW50c1skdF07cmV0dXJuIGQucnVuSG9va3MoIm1vZGlmeVRyYW5zZm9ybUZvY3VzIiwuLi54dCl9KS5hZGRMb2NhbEhvb2soImFmdGVyTW9kaWZ5VHJhbnNmb3JtRm9jdXMiLGZ1bmN0aW9uKCl7Zm9yKHZhciB2dD1h'@; put 'cmd1bWVudHMubGVuZ3RoLHh0PW5ldyBBcnJheSh2dCksJHQ9MDskdDx2dDskdCsrKXh0WyR0XT1hcmd1bWVudHNbJHRdO3JldHVybiBkLnJ1bkhvb2tzKCJhZnRlck1vZGlmeVRyYW5zZm9ybUZvY3VzIiwuLi54dCl9KS5hZGRMb2NhbEhvb2soImJlZm9yZU1vZGlmeVRyYW5zZm9ybUVuZCIs'@; put 'ZnVuY3Rpb24oKXtmb3IodmFyIHZ0PWFyZ3VtZW50cy5sZW5ndGgseHQ9bmV3IEFycmF5KHZ0KSwkdD0wOyR0PHZ0OyR0KyspeHRbJHRdPWFyZ3VtZW50c1skdF07cmV0dXJuIGQucnVuSG9va3MoIm1vZGlmeVRyYW5zZm9ybUVuZCIsLi4ueHQpfSkuYWRkTG9jYWxIb29rKCJhZnRlck1vZGlm'@; put 'eVRyYW5zZm9ybUVuZCIsZnVuY3Rpb24oKXtmb3IodmFyIHZ0PWFyZ3VtZW50cy5sZW5ndGgseHQ9bmV3IEFycmF5KHZ0KSwkdD0wOyR0PHZ0OyR0KyspeHRbJHRdPWFyZ3VtZW50c1skdF07cmV0dXJuIGQucnVuSG9va3MoImFmdGVyTW9kaWZ5VHJhbnNmb3JtRW5kIiwuLi54dCl9KS5hZGRM'@; put 'b2NhbEhvb2soImJlZm9yZVJvd1dyYXAiLGZ1bmN0aW9uKCl7Zm9yKHZhciB2dD1hcmd1bWVudHMubGVuZ3RoLHh0PW5ldyBBcnJheSh2dCksJHQ9MDskdDx2dDskdCsrKXh0WyR0XT1hcmd1bWVudHNbJHRdO3JldHVybiBkLnJ1bkhvb2tzKCJiZWZvcmVSb3dXcmFwIiwuLi54dCl9KS5hZGRM'@; put 'b2NhbEhvb2soImJlZm9yZUNvbHVtbldyYXAiLGZ1bmN0aW9uKCl7Zm9yKHZhciB2dD1hcmd1bWVudHMubGVuZ3RoLHh0PW5ldyBBcnJheSh2dCksJHQ9MDskdDx2dDskdCsrKXh0WyR0XT1hcmd1bWVudHNbJHRdO3JldHVybiBkLnJ1bkhvb2tzKCJiZWZvcmVDb2x1bW5XcmFwIiwuLi54dCl9'@; put 'KS5hZGRMb2NhbEhvb2soImluc2VydFJvd1JlcXVpcmUiLHZ0PT50aGlzLmFsdGVyKCJpbnNlcnRfcm93X2Fib3ZlIix2dCwxLCJhdXRvIikpLmFkZExvY2FsSG9vaygiaW5zZXJ0Q29sUmVxdWlyZSIsdnQ9PnRoaXMuYWx0ZXIoImluc2VydF9jb2xfc3RhcnQiLHZ0LDEsImF1dG8iKSksRz17'@; put 'YWx0ZXIodnQseHQpe2xldCAkdD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MSxZbj1hcmd1bWVudHMubGVuZ3RoPjM/YXJndW1lbnRzWzNdOnZvaWQgMCwkbj1hcmd1bWVudHMubGVuZ3RoPjQ/YXJndW1lbnRzWzRdOnZvaWQgMDtjb25z'@; put 'dCBhcj1Hcj0+e2lmKDA9PT1Hci5sZW5ndGgpcmV0dXJuW107Y29uc3QgR3Q9Wy4uLkdyXTtyZXR1cm4gR3Quc29ydCgoeG4sSW4pPT57bGV0W1huXT14bixbTm5dPUluO3JldHVybiBYbj09PU5uPzA6WG4+Tm4/MTotMX0pLEd1KEd0LCh4bixJbik9PntsZXRbWG4sTm5dPUluO2NvbnN0IHZy'@; put 'PXhuW3huLmxlbmd0aC0xXSxbV24sZnJdPXZyLERyPVduK2ZyO2lmKFhuPD1Ecil7Y29uc3QgT3I9TWF0aC5tYXgoTm4tKERyLVhuKSwwKTt2clsxXSs9T3J9ZWxzZSB4bi5wdXNoKFtYbixObl0pO3JldHVybiB4bn0sW0d0WzBdXSl9O3N3aXRjaCh2dCl7Y2FzZSJpbnNlcnRfcm93X2JlbG93'@; put 'IjpjYXNlImluc2VydF9yb3dfYWJvdmUiOmNvbnN0IEdyPWYuY291bnRTb3VyY2VSb3dzKCk7aWYoZHQubWF4Um93cz09PUdyKXJldHVybjtjb25zdCBHdD0iaW5zZXJ0X3Jvd19iZWxvdyI9PT12dD8iYmVsb3ciOiJhYm92ZSI7eHQ9eHQ/PygiYmVsb3ciPT09R3Q/R3I6MCk7Y29uc3R7ZGVs'@; put 'dGE6Ym4sc3RhcnRQaHlzaWNhbEluZGV4OnhufT1NLmNyZWF0ZVJvdyh4dCwkdCx7c291cmNlOlluLG1vZGU6R3R9KTtxbi5zaGlmdFJvd3MoZi50b1Zpc3VhbFJvdyh4biksYm4pO2JyZWFrO2Nhc2UiaW5zZXJ0X2NvbF9zdGFydCI6Y2FzZSJpbnNlcnRfY29sX2VuZCI6Y29uc3QgSW49Imlu'@; put 'c2VydF9jb2xfZW5kIj09PXZ0PyJlbmQiOiJzdGFydCI7eHQ9eHQ/PygiZW5kIj09PUluP2YuY291bnRTb3VyY2VDb2xzKCk6MCk7Y29uc3R7ZGVsdGE6WG4sc3RhcnRQaHlzaWNhbEluZGV4Ok5ufT1NLmNyZWF0ZUNvbCh4dCwkdCx7c291cmNlOlluLG1vZGU6SW59KTtpZihYbil7aWYoQXJy'@; put 'YXkuaXNBcnJheShkdC5jb2xIZWFkZXJzKSl7Y29uc3QgZnI9W2YudG9WaXN1YWxDb2x1bW4oTm4pLDBdO2ZyLmxlbmd0aCs9WG4sQXJyYXkucHJvdG90eXBlLnNwbGljZS5hcHBseShkdC5jb2xIZWFkZXJzLGZyKX1xbi5zaGlmdENvbHVtbnMoZi50b1Zpc3VhbENvbHVtbihObiksWG4pfWJy'@; put 'ZWFrO2Nhc2UicmVtb3ZlX3JvdyI6Y29uc3QgdnI9ZnI9PntsZXQgRHI9MDtLbihmcixPcj0+e2xldFt1aSxFYV09T3I7Y29uc3QgWmk9amModWkpP2YuY291bnRSb3dzKCktMTpNYXRoLm1heCh1aS1EciwwKTtpZihOdW1iZXIuaXNJbnRlZ2VyKHVpKSYmKHVpPU1hdGgubWF4KHVpLURyLDAp'@; put 'KSwhTS5yZW1vdmVSb3codWksRWEsWW4pKXJldHVybjtpZihxbi5pc1NlbGVjdGVkKCkpe2NvbnN0e3JvdzpNc309Zi5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLmhpZ2hsaWdodDtNcz49dWkmJk1zPD11aStFYS0xJiZyZS5jbG9zZUVkaXRvcighMCl9Y29uc3QgdW89Zi5jb3VudFJvd3MoKSxX'@; put 'cz1kdC5maXhlZFJvd3NUb3A7V3M+PVppKzEmJihkdC5maXhlZFJvd3NUb3AtPU1hdGgubWluKEVhLFdzLVppKSk7Y29uc3QgU3M9ZHQuZml4ZWRSb3dzQm90dG9tO2lmKFNzJiZaaT49dW8tU3MmJihkdC5maXhlZFJvd3NCb3R0b20tPU1hdGgubWluKEVhLFNzKSksMD09PXVvKXFuLmRlc2Vs'@; put 'ZWN0KCk7ZWxzZSBpZigiQ29udGV4dE1lbnUucmVtb3ZlUm93Ij09PVluKXtjb25zdCBNcz1xbi5nZXRTZWxlY3RlZFJhbmdlKCksZm89TXMucG9wKCk7TXMuY2xlYXIoKS5zZXQoZm8uZnJvbSkuY3VycmVudCgpLnNldFRvKGZvLnRvKSxxbi5yZWZyZXNoKCl9ZWxzZSBxbi5zaGlmdFJvd3Mo'@; put 'dWksLUVhKTtEcis9RWF9KX07QXJyYXkuaXNBcnJheSh4dCk/dnIoYXIoeHQpKTp2cihbW3h0LCR0XV0pO2JyZWFrO2Nhc2UicmVtb3ZlX2NvbCI6Y29uc3QgV249ZnI9PntsZXQgRHI9MDtLbihmcixPcj0+e2xldFt1aSxFYV09T3I7Y29uc3QgWmk9amModWkpP2YuY291bnRDb2xzKCktMTpN'@; put 'YXRoLm1heCh1aS1EciwwKTtsZXQgRHM9Zi50b1BoeXNpY2FsQ29sdW1uKFppKTtpZihOdW1iZXIuaXNJbnRlZ2VyKHVpKSYmKHVpPU1hdGgubWF4KHVpLURyLDApKSwhTS5yZW1vdmVDb2wodWksRWEsWW4pKXJldHVybjtpZihxbi5pc1NlbGVjdGVkKCkpe2NvbnN0e2NvbDpNc309Zi5nZXRT'@; put 'ZWxlY3RlZFJhbmdlTGFzdCgpLmhpZ2hsaWdodDtNcz49dWkmJk1zPD11aStFYS0xJiZyZS5jbG9zZUVkaXRvcighMCl9aWYoMD09PWYuY291bnRDb2xzKCkpcW4uZGVzZWxlY3QoKTtlbHNlIGlmKCJDb250ZXh0TWVudS5yZW1vdmVDb2x1bW4iPT09WW4pe2NvbnN0IE1zPXFuLmdldFNlbGVj'@; put 'dGVkUmFuZ2UoKSxmbz1Ncy5wb3AoKTtNcy5jbGVhcigpLnNldChmby5mcm9tKS5jdXJyZW50KCkuc2V0VG8oZm8udG8pLHFuLnJlZnJlc2goKX1lbHNlIHFuLnNoaWZ0Q29sdW1ucyh1aSwtRWEpO2NvbnN0IFNzPWR0LmZpeGVkQ29sdW1uc1N0YXJ0O1NzPj1aaSsxJiYoZHQuZml4ZWRDb2x1'@; put 'bW5zU3RhcnQtPU1hdGgubWluKEVhLFNzLVppKSksQXJyYXkuaXNBcnJheShkdC5jb2xIZWFkZXJzKSYmKHR5cGVvZiBEcz4idSImJihEcz0tMSksZHQuY29sSGVhZGVycy5zcGxpY2UoRHMsRWEpKSxEcis9RWF9KX07QXJyYXkuaXNBcnJheSh4dCk/V24oYXIoeHQpKTpXbihbW3h0LCR0XV0p'@; put 'O2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBUaGVyZSBpcyBubyBzdWNoIGFjdGlvbiAiJHt2dH0iYCl9JG58fEcuYWRqdXN0Um93c0FuZENvbHMoKSxmLnZpZXcucmVuZGVyKCksZi52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSgpfSxhZGp1c3RSb3dzQW5kQ29scygpe2NvbnN0IHZ0'@; put 'PWR0Lm1pblJvd3MseHQ9ZHQubWluU3BhcmVSb3dzLCR0PWR0Lm1pbkNvbHMsWW49ZHQubWluU3BhcmVDb2xzO2lmKHZ0KXtjb25zdCAkbj1mLmNvdW50Um93cygpOyRuPHZ0JiZNLmNyZWF0ZVJvdygkbix2dC0kbix7c291cmNlOiJhdXRvIn0pfWlmKHh0KXtjb25zdCAkbj1mLmNvdW50RW1w'@; put 'dHlSb3dzKCEwKTtpZigkbjx4dCl7Y29uc3QgR3I9TWF0aC5taW4oeHQtJG4sZHQubWF4Um93cy1mLmNvdW50U291cmNlUm93cygpKTtNLmNyZWF0ZVJvdyhmLmNvdW50Um93cygpLEdyLHtzb3VyY2U6ImF1dG8ifSl9fXtsZXQgJG47KCR0fHxZbikmJigkbj1mLmNvdW50RW1wdHlDb2xzKCEw'@; put 'KSk7bGV0IGFyPWYuY291bnRDb2xzKCk7aWYoJHQmJiFkdC5jb2x1bW5zJiZhcjwkdCl7Y29uc3QgR3I9JHQtYXI7JG4rPUdyLE0uY3JlYXRlQ29sKGFyLEdyLHtzb3VyY2U6ImF1dG8ifSl9aWYoWW4mJiFkdC5jb2x1bW5zJiYiYXJyYXkiPT09Zi5kYXRhVHlwZSYmJG48WW4pe2FyPWYuY291'@; put 'bnRDb2xzKCk7Y29uc3QgR3Q9TWF0aC5taW4oWW4tJG4sZHQubWF4Q29scy1hcik7TS5jcmVhdGVDb2woYXIsR3Qse3NvdXJjZToiYXV0byJ9KX19fSxwb3B1bGF0ZUZyb21BcnJheSh2dCx4dCwkdCxZbiwkbil7bGV0IGFyLEdyLEd0LGJuO2NvbnN0IHhuPVtdLEluPXt9LFhuPVtdLE5uPXZ0'@; put 'LnJvdyx2cj12dC5jb2w7aWYoR3I9eHQubGVuZ3RoLDA9PT1HcilyZXR1cm4hMTtsZXQgV249MCxmcj0wO3N3aXRjaChYcygkdCkmJihXbj0kdC5jb2wtdnIrMSxmcj0kdC5yb3ctTm4rMSksJG4pe2Nhc2Uic2hpZnRfZG93biI6Y29uc3QgRHI9dkUoeHQpLE9yPURyLmxlbmd0aCx1aT1NYXRo'@; put 'Lm1heChPcixXbiksRWE9Zi5nZXREYXRhKCkuc2xpY2UoTm4pLFppPXZFKEVhKS5zbGljZSh2cix2cit1aSk7Zm9yKEd0PTA7R3Q8dWk7R3QrPTEpaWYoR3Q8T3Ipe2Zvcihhcj0wLEdyPURyW0d0XS5sZW5ndGg7YXI8ZnItR3I7YXIrPTEpRHJbR3RdLnB1c2goRHJbR3RdW2FyJUdyXSk7WG4u'@; put 'cHVzaChEcltHdF0uY29uY2F0KEd0PFppLmxlbmd0aD9aaVtHdF06bmV3IEFycmF5KEVhLmxlbmd0aCkuZmlsbChudWxsKSkpfWVsc2UgWG4ucHVzaChEcltHdCVPcl0uY29uY2F0KFppW0d0XSkpO2YucG9wdWxhdGVGcm9tQXJyYXkoTm4sdnIsdkUoWG4pKTticmVhaztjYXNlInNoaWZ0X3Jp'@; put 'Z2h0Ijpjb25zdCBEcz14dC5sZW5ndGgsdW89TWF0aC5tYXgoRHMsZnIpLFdzPWYuZ2V0RGF0YSgpLnNsaWNlKE5uKS5tYXAodGM9PnRjLnNsaWNlKHZyKSk7Zm9yKGFyPTA7YXI8dW87YXIrPTEpaWYoYXI8RHMpe2ZvcihHdD0wLGJuPXh0W2FyXS5sZW5ndGg7R3Q8V24tYm47R3QrPTEpeHRb'@; put 'YXJdLnB1c2goeHRbYXJdW0d0JWJuXSk7aWYoYXI8V3MubGVuZ3RoKWZvcihsZXQgdGM9MDt0YzxXc1thcl0ubGVuZ3RoO3RjKz0xKXh0W2FyXS5wdXNoKFdzW2FyXVt0Y10pO2Vsc2UgeHRbYXJdLnB1c2goLi4ubmV3IEFycmF5KFdzWzBdLmxlbmd0aCkuZmlsbChudWxsKSl9ZWxzZSB4dC5w'@; put 'dXNoKHh0W2FyJUdyXS5zbGljZSgwLHVvKS5jb25jYXQoV3NbYXJdKSk7Zi5wb3B1bGF0ZUZyb21BcnJheShObix2cix4dCk7YnJlYWs7ZGVmYXVsdDpJbi5yb3c9dnQucm93LEluLmNvbD12dC5jb2w7bGV0IHgwLFNzPTAsTXM9MCxmbz0hMDtjb25zdCBZaD1mdW5jdGlvbigkbyl7bGV0ICRs'@; put 'PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpudWxsO2NvbnN0IGtvPXh0WyRvJXh0Lmxlbmd0aF07cmV0dXJuIG51bGwhPT0kbD9rb1skbCVrby5sZW5ndGhdOmtvfSxRZD14dC5sZW5ndGgsRGM9JHQ/JHQucm93LXZ0LnJvdysxOjA7Zm9y'@; put 'KEdyPSR0P0RjOk1hdGgubWF4KFFkLERjKSxhcj0wO2FyPEdyJiYhKCR0JiZJbi5yb3c+JHQucm93JiZEYz5RZHx8IWR0LmFsbG93SW5zZXJ0Um93JiZJbi5yb3c+Zi5jb3VudFJvd3MoKS0xfHxJbi5yb3c+PWR0Lm1heFJvd3MpO2FyKyspe2NvbnN0IHRjPWFyLVNzLCRvPVloKHRjKS5sZW5n'@; put 'dGgsJGw9JHQ/JHQuY29sLXZ0LmNvbCsxOjA7aWYoYm49JHQ/JGw6TWF0aC5tYXgoJG8sJGwpLEluLmNvbD12dC5jb2wseDA9Zi5nZXRDZWxsTWV0YShJbi5yb3csSW4uY29sKSwiQ29weVBhc3RlLnBhc3RlIiE9PVluJiYiQXV0b2ZpbGwuZmlsbCIhPT1Zbnx8IXgwLnNraXBSb3dPblBhc3Rl'@; put 'KXtmb3IoTXM9MCxHdD0wO0d0PGJuJiYhKCR0JiZJbi5jb2w+JHQuY29sJiYkbD4kb3x8IWR0LmFsbG93SW5zZXJ0Q29sdW1uJiZJbi5jb2w+Zi5jb3VudENvbHMoKS0xfHxJbi5jb2w+PWR0Lm1heENvbHMpO0d0Kyspe2lmKHgwPWYuZ2V0Q2VsbE1ldGEoSW4ucm93LEluLmNvbCksKCJDb3B5'@; put 'UGFzdGUucGFzdGUiPT09WW58fCJBdXRvZmlsbC5maWxsIj09PVluKSYmeDAuc2tpcENvbHVtbk9uUGFzdGUpe01zKz0xLEluLmNvbCs9MSxibis9MTtjb250aW51ZX1pZih4MC5yZWFkT25seSYmIlVuZG9SZWRvLnVuZG8iIT09WW4pe0luLmNvbCs9MTtjb250aW51ZX1sZXQgb2Q9WWgodGMs'@; put 'R3QtTXMpLHRzPWYuZ2V0RGF0YUF0Q2VsbChJbi5yb3csSW4uY29sKTtpZihudWxsIT09b2QmJiJvYmplY3QiPT10eXBlb2Ygb2QpaWYoQXJyYXkuaXNBcnJheShvZCkmJm51bGw9PT10cyYmKHRzPVtdKSxudWxsPT09dHN8fCJvYmplY3QiIT10eXBlb2YgdHMpZm89ITE7ZWxzZXtjb25zdCBx'@; put 'Zz1yXyhBcnJheS5pc0FycmF5KHRzKT90czp0c1swXXx8dHMpLFJ3PXJfKEFycmF5LmlzQXJyYXkob2QpP29kOm9kWzBdfHxvZCk7SE8ocWcsUncpfHxBcnJheS5pc0FycmF5KHFnKSYmQXJyYXkuaXNBcnJheShSdyk/b2Q9cDEob2QpOmZvPSExfWVsc2UgbnVsbCE9PXRzJiYib2JqZWN0Ij09'@; put 'dHlwZW9mIHRzJiYoZm89ITEpO2ZvJiZ4bi5wdXNoKFtJbi5yb3csSW4uY29sLG9kXSksZm89ITAsSW4uY29sKz0xfUluLnJvdys9MX1lbHNlIFNzKz0xLEluLnJvdys9MSxHcis9MX1mLnNldERhdGFBdENlbGwoeG4sbnVsbCxudWxsLFlufHwicG9wdWxhdGVGcm9tQXJyYXkiKX19fSx0aGlz'@; put 'LmluaXQ9ZnVuY3Rpb24oKXtJLnNldERhdGEoZHQuZGF0YSksZi5ydW5Ib29rcygiYmVmb3JlSW5pdCIpLChvMygpfHxNJCgpKSYmRWkoZi5yb290RWxlbWVudCwibW9iaWxlIiksdGhpcy51cGRhdGVTZXR0aW5ncyhsLCEwKSx0aGlzLnZpZXc9bmV3IFB0dCh0aGlzKTtjb25zdCB2dD1kdC50'@; put 'aGVtZU5hbWV8fElwZShmLnJvb3RDb250YWluZXIpO2YudXNlVGhlbWUodnQpLHJlPWNKZS5nZXRJbnN0YW5jZShmLGR0LHFuKSx5ZT1mdW5jdGlvbiBYcnQoYyl7Y29uc3R7c2VsZWN0aW9uOmx9PWM7bGV0IGE9ITEsZD0hMTtyZXR1cm57cmVzdW1lKCl7ZD0hMX0sc3VzcGVuZCgpe2Q9ITB9'@; put 'LHNraXBOZXh0U2Nyb2xsQ3ljbGUoKXthPSEwfSxzY3JvbGxUbyhoKXt2YXIgZjtpZihhfHxkKXJldHVybiB2b2lkKGE9ITEpO2xldCB2O2wuaXNGb2N1c1NlbGVjdGlvbkNoYW5nZWQoKT92PWZ1bmN0aW9uIFdydChjKXtyZXR1cm4gbD0+e2Muc2Nyb2xsVmlld3BvcnRUbyhsLnRvT2JqZWN0'@; put 'KCksKCk9Pntjb25zdHtyb3c6YSxjb2w6ZH09Yy5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLmhpZ2hsaWdodDtBXyhjLmdldENlbGwoYSxkLCEwKSl9KX19KGMpOmwuaXNTZWxlY3RlZEJ5Q29ybmVyKCk/dj0oKT0+e306bC5pc1NlbGVjdGVkQnlSb3dIZWFkZXIoKT92PWZ1bmN0aW9uICRydChj'@; put 'KXtyZXR1cm4gbD0+e2NvbnN0IGE9alAoYykuZ2V0Q29tcHV0ZWRSb3dUYXJnZXQobCk7Yy5zY3JvbGxWaWV3cG9ydFRvKHtyb3c6YX0sKCk9Pntjb25zdCBkPSEhYy5nZXRTZXR0aW5ncygpLnJvd0hlYWRlcnM7QV8oYy5nZXRDZWxsKGEsZD8tMTowLCEwKSl9KX19KGMpOmwuaXNTZWxlY3Rl'@; put 'ZEJ5Q29sdW1uSGVhZGVyKCk/dj1mdW5jdGlvbiBVcnQoYyl7cmV0dXJuIGw9Pntjb25zdCBhPWpQKGMpLmdldENvbXB1dGVkQ29sdW1uVGFyZ2V0KGwpO2Muc2Nyb2xsVmlld3BvcnRUbyh7Y29sOmF9LCgpPT57Y29uc3QgZD0hIWMuZ2V0U2V0dGluZ3MoKS5jb2xIZWFkZXJzO0FfKGMuZ2V0'@; put 'Q2VsbChkPy0xOjAsYSwhMCkpfSl9fShjKToxPT09bC5nZXRTZWxlY3RlZFJhbmdlKCkuc2l6ZSgpJiZsLmlzTXVsdGlwbGUoKT92PWZ1bmN0aW9uIFlydChjKXtyZXR1cm4gbD0+e2NvbnN0IGE9alAoYyksZD17cm93OmEuZ2V0Q29tcHV0ZWRSb3dUYXJnZXQobCksY29sOmEuZ2V0Q29tcHV0'@; put 'ZWRDb2x1bW5UYXJnZXQobCl9O2Muc2Nyb2xsVmlld3BvcnRUbyhkLCgpPT57Y29uc3R7cm93OmgsY29sOmZ9PWQ7QV8oYy5nZXRDZWxsKGgsZiwhMCkpfSl9fShjKToxIT09bC5nZXRTZWxlY3RlZFJhbmdlKCkuc2l6ZSgpfHxsLmlzTXVsdGlwbGUoKT9sLmdldFNlbGVjdGVkUmFuZ2UoKS5z'@; put 'aXplKCk+MSYmKHY9ZnVuY3Rpb24gR3J0KGMpe3JldHVybiBsPT57Y29uc3QgYT1qUChjKSxkPXtyb3c6YS5nZXRDb21wdXRlZFJvd1RhcmdldChsKSxjb2w6YS5nZXRDb21wdXRlZENvbHVtblRhcmdldChsKX07Yy5zY3JvbGxWaWV3cG9ydFRvKGQsKCk9Pntjb25zdHtyb3c6aCxjb2w6Zn09'@; put 'ZDtBXyhjLmdldENlbGwoaCxmLCEwKSl9KX19KGMpKTp2PWZ1bmN0aW9uIEtydChjKXtyZXR1cm4gbD0+e2NvbnN0IGE9Yy5zZWxlY3Rpb24uZ2V0U2VsZWN0aW9uU291cmNlKCkse3JvdzpkLGNvbDpofT1sLGY9KCk9PntBXyhjLmdldENlbGwoZCxoLCEwKSl9O2lmKGQ8MCYmaD49MCljLnNj'@; put 'cm9sbFZpZXdwb3J0VG8oe2NvbDpofSxmKTtlbHNlIGlmKGg8MCYmZD49MCljLnNjcm9sbFZpZXdwb3J0VG8oe3JvdzpkfSxmKTtlbHNle2lmKCJtb3VzZSI9PT1hJiYoaD09PWMudmlldy5nZXRMYXN0UGFydGlhbGx5VmlzaWJsZUNvbHVtbigpfHxkPT09Yy52aWV3LmdldExhc3RQYXJ0aWFs'@; put 'bHlWaXNpYmxlUm93KCkpKXJldHVybjtjLnNjcm9sbFZpZXdwb3J0VG8oe3JvdzpkLGNvbDpofSxmKX19fShjKSxudWxsPT09KGY9dil8fHZvaWQgMD09PWZ8fGYoaCl9fX0oZiksdWU9bmV3IGRKZShmKSx3Xyh0aGlzKSYmZnVuY3Rpb24gSnJ0KGMpe2NvbnN0IGw9ZnVuY3Rpb24gUXJ0KGMp'@; put 'e3JldHVybiBsPT57aWYoIWwpcmV0dXJuIG51bGw7Y29uc3QgYT1UcShjKSxkPUFxKGMpO3JldHVybiBsLmNvbDxhLmNvbCYmKGwuY29sPWEuY29sKSxsLmNvbD5kLmNvbCYmKGwuY29sPWQuY29sKSxsLnJvdzxhLnJvdyYmKGwucm93PWEucm93KSxsLnJvdz5kLnJvdyYmKGwucm93PWQucm93'@; put 'KSxsfX0oYyk7bGV0IGE7Y29uc3R7YWN0aXZhdGU6ZCxkZWFjdGl2YXRlOmh9PWZ1bmN0aW9uIHFydChjKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307Y29uc3QgYT1jLnJvb3RFbGVtZW50LGQ9TXBlKGMpLGg9TXBlKGMp'@; put 'O3JldHVybiBkLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoKT0+bD8ub25Gb2N1c0Zyb21Ub3AoKSksaC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKCk9Pmw/Lm9uRm9jdXNGcm9tQm90dG9tKCkpLGEuYmVmb3JlKGQpLGEuYWZ0ZXIoaCkse2FjdGl2YXRlKCl7Yy5fcmVnaXN0ZXJUaW1l'@; put 'b3V0KCgpPT57ZC50YWJJbmRleD0wLGgudGFiSW5kZXg9MH0sMTApfSxkZWFjdGl2YXRlKCl7Yy5fcmVnaXN0ZXJUaW1lb3V0KCgpPT57ZC50YWJJbmRleD0tMSxoLnRhYkluZGV4PS0xfSwxMCl9fX0oYyx7b25Gb2N1c0Zyb21Ub3AoKXt2YXIgdWU7Y29uc3QgeWU9bnVsbCE9PSh1ZT1sKGEp'@; put 'KSYmdm9pZCAwIT09dWU/dWU6VHEoYyk7eWUmJihjLnJ1bkhvb2tzKCJtb2RpZnlGb2N1c09uVGFiTmF2aWdhdGlvbiIsImZyb21fYWJvdmUiLHllKSxjLnNlbGVjdENlbGwoeWUucm93LHllLmNvbCkpLGMubGlzdGVuKCl9LG9uRm9jdXNGcm9tQm90dG9tKCl7dmFyIHVlO2NvbnN0IHllPW51'@; put 'bGwhPT0odWU9bChhKSkmJnZvaWQgMCE9PXVlP3VlOkFxKGMpO3llJiYoYy5ydW5Ib29rcygibW9kaWZ5Rm9jdXNPblRhYk5hdmlnYXRpb24iLCJmcm9tX2JlbG93Iix5ZSksYy5zZWxlY3RDZWxsKHllLnJvdyx5ZS5jb2wpKSxjLmxpc3RlbigpfX0pLGY9e3dyYXBwZWQ6ITEsZmxpcHBlZDoh'@; put 'MX07bGV0IHY9ITAsTT0hMSxJPSExO2MuYWRkSG9vaygiYWZ0ZXJMaXN0ZW4iLCgpPT5oKCkpLGMuYWRkSG9vaygiYWZ0ZXJVbmxpc3RlbiIsKCk9PmQoKSksYy5hZGRIb29rKCJhZnRlclNlbGVjdGlvbiIsKHVlLHllLEVlLEJlLEdlKT0+e3ZhciBzdDtNJiYoZi53cmFwcGVkJiZmLmZsaXBw'@; put 'ZWR8fEkpJiYoST0hMSxHZS52YWx1ZT0hMCksdiYmKGE9bnVsbD09PShzdD1jLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCkpfHx2b2lkIDA9PT1zdD92b2lkIDA6c3QuaGlnaGxpZ2h0KX0pLGMuYWRkSG9vaygiYmVmb3JlUm93V3JhcCIsKHVlLHllLEVlKT0+e2Yud3JhcHBlZD0hMCxmLmZsaXBw'@; put 'ZWQ9RWV9KTtjb25zdCByZT17a2V5czpbWyJUYWIiXSxbIlNoaWZ0IiwiVGFiIl1dLHByZXZlbnREZWZhdWx0OiExLHN0b3BQcm9wYWdhdGlvbjohMSxyZWxhdGl2ZVRvR3JvdXA6U3BlLGdyb3VwOiJmb2N1c0NhdGNoZXIifTtjLmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImdy'@; put 'aWQiKS5hZGRTaG9ydGN1dHMoW3suLi5yZSxjYWxsYmFjazooKT0+e2NvbnN0e3RhYk5hdmlnYXRpb246dWV9PWMuZ2V0U2V0dGluZ3MoKTtNPSEwLGMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSYmIXVlJiYodj0hMSksdWV8fChJPSEwKX0scG9zaXRpb246ImJlZm9yZSJ9LHsuLi5yZSxjYWxs'@; put 'YmFjazp1ZT0+e2NvbnN0e3RhYk5hdmlnYXRpb246eWUsYXV0b1dyYXBSb3c6RWV9PWMuZ2V0U2V0dGluZ3MoKTtpZihNPSExLHY9ITAsIXllfHwhYy5zZWxlY3Rpb24uaXNTZWxlY3RlZCgpfHxFZSYmZi53cmFwcGVkJiZmLmZsaXBwZWR8fCFFZSYmZi53cmFwcGVkKXJldHVybiBFZSYmZi53'@; put 'cmFwcGVkJiZmLmZsaXBwZWQmJihhPXVlLnNoaWZ0S2V5P1RxKGMpOkFxKGMpKSxmdW5jdGlvbiBHKCl7Zi53cmFwcGVkPSExLGYuZmxpcHBlZD0hMSxjLmRlc2VsZWN0Q2VsbCgpLGMudW5saXN0ZW4oKX0oKSwhMTt1ZS5wcmV2ZW50RGVmYXVsdCgpfSxwb3NpdGlvbjoiYWZ0ZXIifV0pfShm'@; put 'KSxmLnJ1bkhvb2tzKCJpbml0IiksdGhpcy5yZW5kZXIoKSxFZSYmbnVsbD09PWYucm9vdEVsZW1lbnQub2Zmc2V0UGFyZW50JiZjZmUoZi5yb290RWxlbWVudCwoKT0+e2Yudmlldy5fd3Qud3RPdmVybGF5cy51cGRhdGVMYXN0U3ByZWFkZXJTaXplKCksZi5yZW5kZXIoKSxmLnZpZXcuYWRq'@; put 'dXN0RWxlbWVudHNTaXplKCl9KSwib2JqZWN0Ij09dHlwZW9mIEVlJiYoZi5ydW5Ib29rcygiYWZ0ZXJDaGFuZ2UiLEVlWzBdLEVlWzFdKSxFZT0hMSksZi5ydW5Ib29rcygiYWZ0ZXJJbml0Iil9LHRoaXMuX2NyZWF0ZUNlbGxDb29yZHM9ZnVuY3Rpb24odnQseHQpe3JldHVybiBmLnZpZXcu'@; put 'X3d0LmNyZWF0ZUNlbGxDb29yZHModnQseHQpfSx0aGlzLl9jcmVhdGVDZWxsUmFuZ2U9ZnVuY3Rpb24odnQseHQsJHQpe3JldHVybiBmLnZpZXcuX3d0LmNyZWF0ZUNlbGxSYW5nZSh2dCx4dCwkdCl9LHRoaXMudmFsaWRhdGVDZWxsPWZ1bmN0aW9uKHZ0LHh0LCR0LFluKXtsZXQgJG49Zi5n'@; put 'ZXRDZWxsVmFsaWRhdG9yKHh0KTtmdW5jdGlvbiBhcihHcil7aWYoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJiFhcmd1bWVudHNbMV18fCEwPT09eHQuaGlkZGVuKXJldHVybiB2b2lkICR0KEdyKTtjb25zdCBibj14dC52aXN1YWxDb2wseG49eHQudmlzdWFs'@; put 'Um93LEluPWYuZ2V0Q2VsbCh4bixibiwhMCk7aWYoSW4mJiJUSCIhPT1Jbi5ub2RlTmFtZSl7Y29uc3QgWG49Zi5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KHhuKSxObj1mLmNvbHVtbkluZGV4TWFwcGVyLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgo'@; put 'Ym4pO2Yudmlldy5fd3QuZ2V0U2V0dGluZygiY2VsbFJlbmRlcmVyIixYbixObixJbil9JHQoR3IpfUEyZSgkbikmJigkbj1mdW5jdGlvbihHcil7cmV0dXJuIGZ1bmN0aW9uKEd0LGJuKXtibihHci50ZXN0KEd0KSl9fSgkbikpLGZsKCRuKT8odnQ9Zi5ydW5Ib29rcygiYmVmb3JlVmFsaWRh'@; put 'dGUiLHZ0LHh0LnZpc3VhbFJvdyx4dC5wcm9wLFluKSxmLl9yZWdpc3RlckltbWVkaWF0ZSgoKT0+eyRuLmNhbGwoeHQsdnQsR3I9PntmJiYoR3I9Zi5ydW5Ib29rcygiYWZ0ZXJWYWxpZGF0ZSIsR3IsdnQseHQudmlzdWFsUm93LHh0LnByb3AsWW4pLHh0LnZhbGlkPUdyLGFyKEdyKSxmLnJ1'@; put 'bkhvb2tzKCJwb3N0QWZ0ZXJWYWxpZGF0ZSIsR3IsdnQseHQudmlzdWFsUm93LHh0LnByb3AsWW4pKX0pfSkpOmYuX3JlZ2lzdGVySW1tZWRpYXRlKCgpPT57eHQudmFsaWQ9ITAsYXIoeHQudmFsaWQsITEpfSl9LHRoaXMuc2V0RGF0YUF0Q2VsbD1mdW5jdGlvbih2dCx4dCwkdCxZbil7Y29u'@; put 'c3QgJG49WXIodnQseHQsJHQpLGFyPVtdO2xldCBHdCxibix4bixHcj1Zbjtmb3IoR3Q9MCxibj0kbi5sZW5ndGg7R3Q8Ym47R3QrKyl7aWYoIm9iamVjdCIhPXR5cGVvZiAkbltHdF0pdGhyb3cgbmV3IEVycm9yKCJNZXRob2QgYHNldERhdGFBdENlbGxgIGFjY2VwdHMgcm93IG51bWJlciBv'@; put 'ciBjaGFuZ2VzIGFycmF5IG9mIGFycmF5cyBhcyBpdHMgZmlyc3QgcGFyYW1ldGVyIik7aWYoIm51bWJlciIhPXR5cGVvZiAkbltHdF1bMV0pdGhyb3cgbmV3IEVycm9yKCJNZXRob2QgYHNldERhdGFBdENlbGxgIGFjY2VwdHMgcm93IGFuZCBjb2x1bW4gbnVtYmVyIGFzIGl0cyBwYXJhbWV0'@; put 'ZXJzLiBJZiB5b3Ugd2FudCB0byB1c2Ugb2JqZWN0IHByb3BlcnR5IG5hbWUsIHVzZSBtZXRob2QgYHNldERhdGFBdFJvd1Byb3BgIik7eG49JG5bR3RdWzFdPj10aGlzLmNvdW50Q29scygpPyRuW0d0XVsxXTpNLmNvbFRvUHJvcCgkbltHdF1bMV0pLGFyLnB1c2goWyRuW0d0XVswXSx4bixJ'@; put 'LmdldEF0Q2VsbCh0aGlzLnRvUGh5c2ljYWxSb3coJG5bR3RdWzBdKSwkbltHdF1bMV0pLCRuW0d0XVsyXV0pfSFHciYmIm9iamVjdCI9PXR5cGVvZiB2dCYmKEdyPXh0KTtjb25zdCBJbj13aShhcixHcik7Zi5ydW5Ib29rcygiYWZ0ZXJTZXREYXRhQXRDZWxsIixJbixHciksdHIoSW4sR3Is'@; put 'KCk9PntCcihJbixHcil9KX0sdGhpcy5zZXREYXRhQXRSb3dQcm9wPWZ1bmN0aW9uKHZ0LHh0LCR0LFluKXtjb25zdCAkbj1Zcih2dCx4dCwkdCksYXI9W107bGV0IEd0LGJuLEdyPVluO2ZvcihHdD0wLGJuPSRuLmxlbmd0aDtHdDxibjtHdCsrKWFyLnB1c2goWyRuW0d0XVswXSwkbltHdF1b'@; put 'MV0sSS5nZXRBdENlbGwodGhpcy50b1BoeXNpY2FsUm93KCRuW0d0XVswXSksJG5bR3RdWzFdKSwkbltHdF1bMl1dKTshR3ImJiJvYmplY3QiPT10eXBlb2YgdnQmJihHcj14dCk7Y29uc3QgeG49d2koYXIsWW4pO2YucnVuSG9va3MoImFmdGVyU2V0RGF0YUF0Um93UHJvcCIseG4sR3IpLHRy'@; put 'KHhuLEdyLCgpPT57QnIoeG4sR3IpfSl9LHRoaXMubGlzdGVuPWZ1bmN0aW9uKCl7ZiYmIWYuaXNMaXN0ZW5pbmcoKSYmKEZxLmZvckVhY2godnQ9PntmIT09dnQmJnZ0LnVubGlzdGVuKCl9KSxQcT1mLmd1aWQsZi5ydW5Ib29rcygiYWZ0ZXJMaXN0ZW4iKSl9LHRoaXMudW5saXN0ZW49ZnVu'@; put 'Y3Rpb24oKXt0aGlzLmlzTGlzdGVuaW5nKCkmJihQcT1udWxsLGYucnVuSG9va3MoImFmdGVyVW5saXN0ZW4iKSl9LHRoaXMuaXNMaXN0ZW5pbmc9ZnVuY3Rpb24oKXtyZXR1cm4gUHE9PT1mLmd1aWR9LHRoaXMuZGVzdHJveUVkaXRvcj1mdW5jdGlvbigpe2xldCB4dD0hKGFyZ3VtZW50cy5s'@; put 'ZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdO3JlLmNsb3NlRWRpdG9yKGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0pLGYudmlldy5yZW5kZXIoKSx4dCYmcW4uaXNTZWxlY3RlZCgpJiZyZS5wcmVwYXJl'@; put 'RWRpdG9yKCl9LHRoaXMucG9wdWxhdGVGcm9tQXJyYXk9ZnVuY3Rpb24odnQseHQsJHQsWW4sJG4sYXIsR3Ipe2lmKCJvYmplY3QiIT10eXBlb2YgJHR8fCJvYmplY3QiIT10eXBlb2YgJHRbMF0pdGhyb3cgbmV3IEVycm9yKCJwb3B1bGF0ZUZyb21BcnJheSBwYXJhbWV0ZXIgYGlucHV0YCBt'@; put 'dXN0IGJlIGFuIGFycmF5IG9mIGFycmF5cyIpO2NvbnN0IEd0PSJudW1iZXIiPT10eXBlb2YgWW4/Zi5fY3JlYXRlQ2VsbENvb3JkcyhZbiwkbik6bnVsbDtyZXR1cm4gRy5wb3B1bGF0ZUZyb21BcnJheShmLl9jcmVhdGVDZWxsQ29vcmRzKHZ0LHh0KSwkdCxHdCxhcixHcil9LHRoaXMuc3Bs'@; put 'aWNlQ29sPWZ1bmN0aW9uKHZ0LHh0LCR0KXtmb3IodmFyIFluPWFyZ3VtZW50cy5sZW5ndGgsJG49bmV3IEFycmF5KFluPjM/WW4tMzowKSxhcj0zO2FyPFluO2FyKyspJG5bYXItM109YXJndW1lbnRzW2FyXTtyZXR1cm4gTS5zcGxpY2VDb2wodnQseHQsJHQsLi4uJG4pfSx0aGlzLnNwbGlj'@; put 'ZVJvdz1mdW5jdGlvbih2dCx4dCwkdCl7Zm9yKHZhciBZbj1hcmd1bWVudHMubGVuZ3RoLCRuPW5ldyBBcnJheShZbj4zP1luLTM6MCksYXI9MzthcjxZbjthcisrKSRuW2FyLTNdPWFyZ3VtZW50c1thcl07cmV0dXJuIE0uc3BsaWNlUm93KHZ0LHh0LCR0LC4uLiRuKX0sdGhpcy5nZXRTZWxl'@; put 'Y3RlZD1mdW5jdGlvbigpe2lmKHFuLmlzU2VsZWN0ZWQoKSlyZXR1cm4geW8ocW4uZ2V0U2VsZWN0ZWRSYW5nZSgpLHZ0PT57bGV0e2Zyb206eHQsdG86JHR9PXZ0O3JldHVyblt4dC5yb3cseHQuY29sLCR0LnJvdywkdC5jb2xdfSl9LHRoaXMuZ2V0U2VsZWN0ZWRMYXN0PWZ1bmN0aW9uKCl7'@; put 'Y29uc3QgdnQ9dGhpcy5nZXRTZWxlY3RlZCgpO2xldCB4dDtyZXR1cm4gdnQmJnZ0Lmxlbmd0aD4wJiYoeHQ9dnRbdnQubGVuZ3RoLTFdKSx4dH0sdGhpcy5nZXRTZWxlY3RlZFJhbmdlPWZ1bmN0aW9uKCl7aWYocW4uaXNTZWxlY3RlZCgpKXJldHVybiBBcnJheS5mcm9tKHFuLmdldFNlbGVj'@; put 'dGVkUmFuZ2UoKSl9LHRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3Q9ZnVuY3Rpb24oKXtjb25zdCB2dD10aGlzLmdldFNlbGVjdGVkUmFuZ2UoKTtsZXQgeHQ7cmV0dXJuIHZ0JiZ2dC5sZW5ndGg+MCYmKHh0PXZ0W3Z0Lmxlbmd0aC0xXSkseHR9LHRoaXMuZW1wdHlTZWxlY3RlZENlbGxzPWZ1'@; put 'bmN0aW9uKHZ0KXtpZighcW4uaXNTZWxlY3RlZCgpfHwwPT09dGhpcy5jb3VudFJvd3MoKXx8MD09PXRoaXMuY291bnRDb2xzKCkpcmV0dXJuO2NvbnN0IHh0PVtdO0tuKHFuLmdldFNlbGVjdGVkUmFuZ2UoKSwkdD0+e2lmKCR0LmlzU2luZ2xlSGVhZGVyKCkpcmV0dXJuO2NvbnN0IFluPSR0'@; put 'LmdldFRvcFN0YXJ0Q29ybmVyKCksJG49JHQuZ2V0Qm90dG9tRW5kQ29ybmVyKCk7S2EoWW4ucm93LCRuLnJvdyxhcj0+e0thKFluLmNvbCwkbi5jb2wsR3I9Pnt0aGlzLmdldENlbGxNZXRhKGFyLEdyKS5yZWFkT25seXx8eHQucHVzaChbYXIsR3IsbnVsbF0pfSl9KX0pLHh0Lmxlbmd0aD4w'@; put 'JiZ0aGlzLnNldERhdGFBdENlbGwoeHQsdnQpfSx0aGlzLmlzUmVuZGVyU3VzcGVuZGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVuZGVyU3VzcGVuZGVkQ291bnRlcj4wfSx0aGlzLnN1c3BlbmRSZW5kZXI9ZnVuY3Rpb24oKXt0aGlzLnJlbmRlclN1c3BlbmRlZENvdW50ZXIrPTF9LHRo'@; put 'aXMucmVzdW1lUmVuZGVyPWZ1bmN0aW9uKCl7Y29uc3QgdnQ9dGhpcy5yZW5kZXJTdXNwZW5kZWRDb3VudGVyLTE7dGhpcy5yZW5kZXJTdXNwZW5kZWRDb3VudGVyPU1hdGgubWF4KHZ0LDApLCF0aGlzLmlzUmVuZGVyU3VzcGVuZGVkKCkmJnZ0PT09dGhpcy5yZW5kZXJTdXNwZW5kZWRDb3Vu'@; put 'dGVyJiZmLnZpZXcucmVuZGVyKCl9LHRoaXMucmVuZGVyPWZ1bmN0aW9uKCl7dGhpcy52aWV3JiYodGhpcy5mb3JjZUZ1bGxSZW5kZXI9ITAsdGhpcy5pc1JlbmRlclN1c3BlbmRlZCgpfHxmLnZpZXcucmVuZGVyKCkpfSx0aGlzLmJhdGNoUmVuZGVyPWZ1bmN0aW9uKHZ0KXt0aGlzLnN1c3Bl'@; put 'bmRSZW5kZXIoKTtjb25zdCB4dD12dCgpO3JldHVybiB0aGlzLnJlc3VtZVJlbmRlcigpLHh0fSx0aGlzLmlzRXhlY3V0aW9uU3VzcGVuZGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXhlY3V0aW9uU3VzcGVuZGVkQ291bnRlcj4wfSx0aGlzLnN1c3BlbmRFeGVjdXRpb249ZnVuY3Rpb24o'@; put 'KXt0aGlzLmV4ZWN1dGlvblN1c3BlbmRlZENvdW50ZXIrPTEsdGhpcy5jb2x1bW5JbmRleE1hcHBlci5zdXNwZW5kT3BlcmF0aW9ucygpLHRoaXMucm93SW5kZXhNYXBwZXIuc3VzcGVuZE9wZXJhdGlvbnMoKX0sdGhpcy5yZXN1bWVFeGVjdXRpb249ZnVuY3Rpb24oKXtsZXQgdnQ9YXJndW1l'@; put 'bnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXTtjb25zdCB4dD10aGlzLmV4ZWN1dGlvblN1c3BlbmRlZENvdW50ZXItMTt0aGlzLmV4ZWN1dGlvblN1c3BlbmRlZENvdW50ZXI9TWF0aC5tYXgoeHQsMCksKCF0aGlzLmlzRXhlY3V0aW9uU3VzcGVuZGVk'@; put 'KCkmJnh0PT09dGhpcy5leGVjdXRpb25TdXNwZW5kZWRDb3VudGVyfHx2dCkmJih0aGlzLmNvbHVtbkluZGV4TWFwcGVyLnJlc3VtZU9wZXJhdGlvbnMoKSx0aGlzLnJvd0luZGV4TWFwcGVyLnJlc3VtZU9wZXJhdGlvbnMoKSl9LHRoaXMuYmF0Y2hFeGVjdXRpb249ZnVuY3Rpb24odnQpe2xl'@; put 'dCB4dD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdO3RoaXMuc3VzcGVuZEV4ZWN1dGlvbigpO2NvbnN0ICR0PXZ0KCk7cmV0dXJuIHRoaXMucmVzdW1lRXhlY3V0aW9uKHh0KSwkdH0sdGhpcy5iYXRjaD1mdW5jdGlvbih2dCl7dGhpcy5z'@; put 'dXNwZW5kUmVuZGVyKCksdGhpcy5zdXNwZW5kRXhlY3V0aW9uKCk7Y29uc3QgeHQ9dnQoKTtyZXR1cm4gdGhpcy5yZXN1bWVFeGVjdXRpb24oKSx0aGlzLnJlc3VtZVJlbmRlcigpLHh0fSx0aGlzLnJlZnJlc2hEaW1lbnNpb25zPWZ1bmN0aW9uKCl7aWYoIWYudmlldylyZXR1cm47Y29uc3Qg'@; put 'dnQ9Zi52aWV3LHt3aWR0aDp4dCxoZWlnaHQ6JHR9PXZ0LmdldExhc3RTaXplKCkse3dpZHRoOlluLGhlaWdodDokbn09Zi5yb290RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxhcj1ZbiE9PXh0fHwkbiE9PSR0OyExIT09Zi5ydW5Ib29rcygiYmVmb3JlUmVmcmVzaERpbWVuc2lv'@; put 'bnMiLHt3aWR0aDp4dCxoZWlnaHQ6JHR9LHt3aWR0aDpZbixoZWlnaHQ6JG59LGFyKSYmKChhcnx8dnQuX3d0Lnd0T3ZlcmxheXMuc2Nyb2xsYWJsZUVsZW1lbnQ9PT1mLnJvb3RXaW5kb3cpJiYodnQuc2V0TGFzdFNpemUoWW4sJG4pLGYucmVuZGVyKCksdnQuYWRqdXN0RWxlbWVudHNTaXpl'@; put 'KCkpLGYucnVuSG9va3MoImFmdGVyUmVmcmVzaERpbWVuc2lvbnMiLHt3aWR0aDp4dCxoZWlnaHQ6JHR9LHt3aWR0aDpZbixoZWlnaHQ6JG59LGFyKSl9LHRoaXMudXBkYXRlRGF0YT1mdW5jdGlvbih2dCx4dCl7Q3BlKHZ0LCR0PT57TT0kdH0sJHQ9PntNPSR0LGYuY29sdW1uSW5kZXhNYXBw'@; put 'ZXIuZml0VG9MZW5ndGgodGhpcy5nZXRJbml0aWFsQ29sdW1uQ291bnQoKSksZi5yb3dJbmRleE1hcHBlci5maXRUb0xlbmd0aCh0aGlzLmNvdW50U291cmNlUm93cygpKSxHLmFkanVzdFJvd3NBbmRDb2xzKCkscW4ucmVmcmVzaCgpfSx7aG90SW5zdGFuY2U6ZixkYXRhTWFwOk0sZGF0YVNv'@; put 'dXJjZTpJLGludGVybmFsU291cmNlOiJ1cGRhdGVEYXRhIixzb3VyY2U6eHQsbWV0YU1hbmFnZXI6cHQsZmlyc3RSdW46RWV9KX0sdGhpcy5sb2FkRGF0YT1mdW5jdGlvbih2dCx4dCl7Q3BlKHZ0LCR0PT57TT0kdH0sKCk9PntwdC5jbGVhckNlbGxzQ2FjaGUoKSxmLmluaXRJbmRleE1hcHBl'@; put 'cnMoKSxHLmFkanVzdFJvd3NBbmRDb2xzKCkscW4ucmVmcmVzaCgpLEVlJiYoRWU9W251bGwsImxvYWREYXRhIl0pfSx7aG90SW5zdGFuY2U6ZixkYXRhTWFwOk0sZGF0YVNvdXJjZTpJLGludGVybmFsU291cmNlOiJsb2FkRGF0YSIsc291cmNlOnh0LG1ldGFNYW5hZ2VyOnB0LGZpcnN0UnVu'@; put 'OkVlfSl9LHRoaXMuZ2V0SW5pdGlhbENvbHVtbkNvdW50PWZ1bmN0aW9uKCl7Y29uc3QgdnQ9ZHQuY29sdW1ucztsZXQgeHQ9MDtpZihBcnJheS5pc0FycmF5KHZ0KSl4dD12dC5sZW5ndGg7ZWxzZSBpZihmbCh2dCkpaWYoImFycmF5Ij09PWYuZGF0YVR5cGUpe2NvbnN0ICR0PXRoaXMuY291'@; put 'bnRTb3VyY2VDb2xzKCk7Zm9yKGxldCBZbj0wO1luPCR0O1luKz0xKXZ0KFluKSYmKHh0Kz0xKX1lbHNlKCJvYmplY3QiPT09Zi5kYXRhVHlwZXx8ImZ1bmN0aW9uIj09PWYuZGF0YVR5cGUpJiYoeHQ9TS5jb2xUb1Byb3BDYWNoZS5sZW5ndGgpO2Vsc2UgaWYoSGEoZHQuZGF0YVNjaGVtYSkp'@; put 'e2NvbnN0ICR0PU0uZ2V0U2NoZW1hKCk7eHQ9QXJyYXkuaXNBcnJheSgkdCk/JHQubGVuZ3RoOlZPKCR0KX1lbHNlIHh0PXRoaXMuY291bnRTb3VyY2VDb2xzKCk7cmV0dXJuIHh0fSx0aGlzLmluaXRJbmRleE1hcHBlcnM9ZnVuY3Rpb24oKXt0aGlzLmNvbHVtbkluZGV4TWFwcGVyLmluaXRU'@; put 'b0xlbmd0aCh0aGlzLmdldEluaXRpYWxDb2x1bW5Db3VudCgpKSx0aGlzLnJvd0luZGV4TWFwcGVyLmluaXRUb0xlbmd0aCh0aGlzLmNvdW50U291cmNlUm93cygpKX0sdGhpcy5nZXREYXRhPWZ1bmN0aW9uKHZ0LHh0LCR0LFluKXtyZXR1cm4gYmModnQpP00uZ2V0QWxsKCk6TS5nZXRSYW5n'@; put 'ZShmLl9jcmVhdGVDZWxsQ29vcmRzKHZ0LHh0KSxmLl9jcmVhdGVDZWxsQ29vcmRzKCR0LFluKSxNLkRFU1RJTkFUSU9OX1JFTkRFUkVSKX0sdGhpcy5nZXRDb3B5YWJsZVRleHQ9ZnVuY3Rpb24odnQseHQsJHQsWW4pe3JldHVybiBNLmdldENvcHlhYmxlVGV4dChmLl9jcmVhdGVDZWxsQ29v'@; put 'cmRzKHZ0LHh0KSxmLl9jcmVhdGVDZWxsQ29vcmRzKCR0LFluKSl9LHRoaXMuZ2V0Q29weWFibGVEYXRhPWZ1bmN0aW9uKHZ0LHh0KXtyZXR1cm4gTS5nZXRDb3B5YWJsZSh2dCxNLmNvbFRvUHJvcCh4dCkpfSx0aGlzLmdldFNjaGVtYT1mdW5jdGlvbigpe3JldHVybiBNLmdldFNjaGVtYSgp'@; put 'fSx0aGlzLnVwZGF0ZVNldHRpbmdzPWZ1bmN0aW9uKHZ0KXtsZXQgeHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXTtjb25zdCAkdD0oRWU/Zi5sb2FkRGF0YTpmLnVwZGF0ZURhdGEpLmJpbmQodGhpcyk7bGV0ICRuLGFyLFluPSExO2lm'@; put 'KEhhKHZ0LnJvd3MpKXRocm93IG5ldyBFcnJvcignVGhlICJyb3dzIiBzZXR0aW5nIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuIERvIHlvdSBtZWFuIHN0YXJ0Um93cywgbWluUm93cyBvciBtYXhSb3dzPycpO2lmKEhhKHZ0LmNvbHMpKXRocm93IG5ldyBFcnJvcignVGhlICJjb2xzIiBzZXR0'@; put 'aW5nIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuIERvIHlvdSBtZWFuIHN0YXJ0Q29scywgbWluQ29scyBvciBtYXhDb2xzPycpO2lmKEhhKHZ0LmdhbnR0Q2hhcnQpKXRocm93IG5ldyBFcnJvcignU2luY2UgOC4wLjAgdGhlICJnYW50dENoYXJ0IiBzZXR0aW5nIGlzIG5vIGxvbmdlciBzdXBw'@; put 'b3J0ZWQuJyk7Zm9yKCRuIGluIHZ0Lmxhbmd1YWdlJiZmdW5jdGlvbiBxcih2dCl7Y29uc3QgeHQ9WjNlKHZ0KTtncSh4dCk/KGYucnVuSG9va3MoImJlZm9yZUxhbmd1YWdlQ2hhbmdlIix4dCkscXQubGFuZ3VhZ2U9eHQsZi5ydW5Ib29rcygiYWZ0ZXJMYW5ndWFnZUNoYW5nZSIseHQpKTpX'@; put 'M2UodnQpfSh2dC5sYW5ndWFnZSksdnQpaWYoImRhdGEiIT09JG4mJiJsYW5ndWFnZSIhPT0kbilpZigiY2xhc3NOYW1lIj09PSRuKV9pKCJjbGFzc05hbWUiLHZ0LmNsYXNzTmFtZSk7ZWxzZSBpZigidGFibGVDbGFzc05hbWUiPT09JG4mJmYudGFibGUpX2koInRhYmxlQ2xhc3NOYW1lIix2'@; put 'dC50YWJsZUNsYXNzTmFtZSksZi52aWV3Ll93dC53dE92ZXJsYXlzLnN5bmNPdmVybGF5VGFibGVDbGFzc05hbWVzKCk7ZWxzZSBpZihNYS5nZXRTaW5nbGV0b24oKS5pc1JlZ2lzdGVyZWQoJG4pfHxNYS5nZXRTaW5nbGV0b24oKS5pc0RlcHJlY2F0ZWQoJG4pKXtjb25zdCBJbj12dFskbl07'@; put 'ZmwoSW4pPyhNYS5nZXRTaW5nbGV0b24oKS5hZGRBc0ZpeGVkKCRuLEluLGYpLGR0WyRuXT1Jbik6QXJyYXkuaXNBcnJheShJbikmJihNYS5nZXRTaW5nbGV0b24oKS5hZGQoJG4sSW4sZiksZHRbJG5dPUluKX1lbHNlIXh0JiZDdSh2dCwkbikmJihxdFskbl09dnRbJG5dKTt2b2lkIDA9PT12'@; put 'dC5kYXRhJiZ2b2lkIDA9PT1kdC5kYXRhPyR0KG51bGwsInVwZGF0ZVNldHRpbmdzIik6dm9pZCAwIT09dnQuZGF0YT8kdCh2dC5kYXRhLCJ1cGRhdGVTZXR0aW5ncyIpOnZvaWQgMCE9PXZ0LmNvbHVtbnMmJihNLmNyZWF0ZU1hcCgpLGYuaW5pdEluZGV4TWFwcGVycygpKTtjb25zdCBHcj1m'@; put 'LmNvdW50Q29scygpLEd0PWR0LmNvbHVtbnM7aWYoR3QmJmZsKEd0KSYmKFluPSEwKSwodm9pZCAwIT09dnQuY2VsbHx8dm9pZCAwIT09dnQuY2VsbHN8fHZvaWQgMCE9PXZ0LmNvbHVtbnMpJiZwdC5jbGVhckNhY2hlKCksR3I+MClmb3IoJG49MCxhcj0wOyRuPEdyOyRuKyspe2lmKEd0KXtj'@; put 'b25zdCBJbj1Zbj9HdCgkbik6R3RbYXJdO0luJiZwdC51cGRhdGVDb2x1bW5NZXRhKGFyLEluKX1hcis9MX1IYSh2dC5jZWxsKSYmcXModnQuY2VsbCxJbj0+e2Yuc2V0Q2VsbE1ldGFPYmplY3QoSW4ucm93LEluLmNvbCxJbil9KSxmLnJ1bkhvb2tzKCJhZnRlckNlbGxNZXRhUmVzZXQiKTts'@; put 'ZXQgYm49Zi5yb290RWxlbWVudC5zdHlsZS5oZWlnaHQ7IiIhPT1ibiYmKGJuPXBhcnNlSW50KGYucm9vdEVsZW1lbnQuc3R5bGUuaGVpZ2h0LDEwKSk7bGV0IHhuPXZ0LmhlaWdodDtpZihmbCh4bikmJih4bj14bigpKSx4dCYmZi5yb290RWxlbWVudC5nZXRBdHRyaWJ1dGUoInN0eWxlIikm'@; put 'JmYucm9vdEVsZW1lbnQuc2V0QXR0cmlidXRlKCJkYXRhLWluaXRpYWxzdHlsZSIsZi5yb290RWxlbWVudC5nZXRBdHRyaWJ1dGUoInN0eWxlIikpLG51bGw9PT14bil7Y29uc3QgSW49Zi5yb290RWxlbWVudC5nZXRBdHRyaWJ1dGUoImRhdGEtaW5pdGlhbHN0eWxlIik7SW4mJihJbi5pbmRl'@; put 'eE9mKCJoZWlnaHQiKT4tMXx8SW4uaW5kZXhPZigib3ZlcmZsb3ciKT4tMSk/Zi5yb290RWxlbWVudC5zZXRBdHRyaWJ1dGUoInN0eWxlIixJbik6KGYucm9vdEVsZW1lbnQuc3R5bGUuaGVpZ2h0PSIiLGYucm9vdEVsZW1lbnQuc3R5bGUub3ZlcmZsb3c9IiIpfWVsc2Ugdm9pZCAwIT09eG4m'@; put 'JihmLnJvb3RFbGVtZW50LnN0eWxlLmhlaWdodD1pc05hTih4bik/YCR7eG59YDpgJHt4bn1weGAsZi5yb290RWxlbWVudC5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIik7aWYodHlwZW9mIHZ0LndpZHRoPCJ1Iil7bGV0IEluPXZ0LndpZHRoO2ZsKEluKSYmKEluPUluKCkpLGYucm9vdEVsZW1l'@; put 'bnQuc3R5bGUud2lkdGg9aXNOYU4oSW4pP2Ake0lufWA6YCR7SW59cHhgfWlmKCF4dCl7aWYoZi52aWV3KXtmLnZpZXcuX3d0Lnd0Vmlld3BvcnQucmVzZXRIYXNPdmVyc2l6ZWRDb2x1bW5IZWFkZXJzTWFya2VkKCksZi52aWV3Ll93dC5leHBvcnRTZXR0aW5nc0FzQ2xhc3NOYW1lcygpO2Nv'@; put 'bnN0IEluPWYuZ2V0Q3VycmVudFRoZW1lTmFtZSgpO0N1KHZ0LCJ0aGVtZU5hbWUiKSYmSW4hPT12dC50aGVtZU5hbWUmJmYudXNlVGhlbWUodnQudGhlbWVOYW1lKX1mLnJ1bkhvb2tzKCJhZnRlclVwZGF0ZVNldHRpbmdzIix2dCl9Ry5hZGp1c3RSb3dzQW5kQ29scygpLGYudmlldyYmIUVl'@; put 'JiYoZi5yZW5kZXIoKSxmLnZpZXcuX3d0Lnd0T3ZlcmxheXMuYWRqdXN0RWxlbWVudHNTaXplKCkpLCF4dCYmZi52aWV3JiYoIiI9PT1ibnx8IiI9PT14bnx8dm9pZCAwPT09eG4pJiZibiE9PXhuJiZmLnZpZXcuX3d0Lnd0T3ZlcmxheXMudXBkYXRlTWFpblNjcm9sbGFibGVFbGVtZW50cygp'@; put 'fSx0aGlzLmdldFZhbHVlPWZ1bmN0aW9uKCl7Y29uc3QgdnQ9Zi5nZXRTZWxlY3RlZExhc3QoKTtpZihkdC5nZXRWYWx1ZSl7aWYoZmwoZHQuZ2V0VmFsdWUpKXJldHVybiBkdC5nZXRWYWx1ZS5jYWxsKGYpO2lmKHZ0KXJldHVybiBmLmdldERhdGEoKVt2dFswXVswXV1bZHQuZ2V0VmFsdWVd'@; put 'fWVsc2UgaWYodnQpcmV0dXJuIGYuZ2V0RGF0YUF0Q2VsbCh2dFswXSx2dFsxXSl9LHRoaXMuZ2V0U2V0dGluZ3M9ZnVuY3Rpb24oKXtyZXR1cm4gZHR9LHRoaXMuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLnNlbGVjdEFsbCgpLHRoaXMuZW1wdHlTZWxlY3RlZENlbGxzKCl9LHRoaXMuYWx0ZXI9'@; put 'ZnVuY3Rpb24odnQseHQsJHQsWW4sJG4pe0cuYWx0ZXIodnQseHQsJHQsWW4sJG4pfSx0aGlzLmdldENlbGw9ZnVuY3Rpb24odnQseHQpe2xldCAkdD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLFluPXh0LCRuPXZ0O2lmKHh0Pj0wKXtp'@; put 'Zih0aGlzLmNvbHVtbkluZGV4TWFwcGVyLmlzSGlkZGVuKHRoaXMudG9QaHlzaWNhbENvbHVtbih4dCkpKXJldHVybiBudWxsO1luPXRoaXMuY29sdW1uSW5kZXhNYXBwZXIuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleCh4dCl9aWYodnQ+PTApe2lmKHRoaXMucm93SW5kZXhNYXBwZXIu'@; put 'aXNIaWRkZW4odGhpcy50b1BoeXNpY2FsUm93KHZ0KSkpcmV0dXJuIG51bGw7JG49dGhpcy5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KHZ0KX1yZXR1cm4gbnVsbD09PSRufHxudWxsPT09WW58fHZvaWQgMD09PSRufHx2b2lkIDA9PT1Zbj9udWxsOmYudmll'@; put 'dy5nZXRDZWxsQXRDb29yZHMoZi5fY3JlYXRlQ2VsbENvb3JkcygkbixZbiksJHQpfSx0aGlzLmdldENvb3Jkcz1mdW5jdGlvbih2dCl7Y29uc3QgeHQ9dGhpcy52aWV3Ll93dC53dFRhYmxlLmdldENvb3Jkcyh2dCk7aWYobnVsbD09PXh0KXJldHVybiBudWxsO2NvbnN0e3JvdzokdCxjb2w6'@; put 'WW59PXh0O2xldCAkbj0kdCxhcj1ZbjtyZXR1cm4gJHQ+PTAmJigkbj10aGlzLnJvd0luZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoJHQpKSxZbj49MCYmKGFyPXRoaXMuY29sdW1uSW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChZbikpLGYu'@; put 'X2NyZWF0ZUNlbGxDb29yZHMoJG4sYXIpfSx0aGlzLmNvbFRvUHJvcD1mdW5jdGlvbih2dCl7cmV0dXJuIE0uY29sVG9Qcm9wKHZ0KX0sdGhpcy5wcm9wVG9Db2w9ZnVuY3Rpb24odnQpe3JldHVybiBNLnByb3BUb0NvbCh2dCl9LHRoaXMudG9WaXN1YWxSb3c9dnQ9PnRoaXMucm93SW5kZXhN'@; put 'YXBwZXIuZ2V0VmlzdWFsRnJvbVBoeXNpY2FsSW5kZXgodnQpLHRoaXMudG9WaXN1YWxDb2x1bW49dnQ9PnRoaXMuY29sdW1uSW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVBoeXNpY2FsSW5kZXgodnQpLHRoaXMudG9QaHlzaWNhbFJvdz12dD0+dGhpcy5yb3dJbmRleE1hcHBlci5nZXRQaHlz'@; put 'aWNhbEZyb21WaXN1YWxJbmRleCh2dCksdGhpcy50b1BoeXNpY2FsQ29sdW1uPXZ0PT50aGlzLmNvbHVtbkluZGV4TWFwcGVyLmdldFBoeXNpY2FsRnJvbVZpc3VhbEluZGV4KHZ0KSx0aGlzLmdldERhdGFBdENlbGw9ZnVuY3Rpb24odnQseHQpe3JldHVybiBNLmdldCh2dCxNLmNvbFRvUHJv'@; put 'cCh4dCkpfSx0aGlzLmdldERhdGFBdFJvd1Byb3A9ZnVuY3Rpb24odnQseHQpe3JldHVybiBNLmdldCh2dCx4dCl9LHRoaXMuZ2V0RGF0YUF0Q29sPWZ1bmN0aW9uKHZ0KXtjb25zdCB4dD1bXSwkdD1NLmdldFJhbmdlKGYuX2NyZWF0ZUNlbGxDb29yZHMoMCx2dCksZi5fY3JlYXRlQ2VsbENv'@; put 'b3JkcyhkdC5kYXRhLmxlbmd0aC0xLHZ0KSxNLkRFU1RJTkFUSU9OX1JFTkRFUkVSKTtmb3IobGV0IFluPTA7WW48JHQubGVuZ3RoO1luKz0xKWZvcihsZXQgJG49MDskbjwkdFtZbl0ubGVuZ3RoOyRuKz0xKXh0LnB1c2goJHRbWW5dWyRuXSk7cmV0dXJuIHh0fSx0aGlzLmdldERhdGFBdFBy'@; put 'b3A9ZnVuY3Rpb24odnQpe2NvbnN0IHh0PVtdLCR0PU0uZ2V0UmFuZ2UoZi5fY3JlYXRlQ2VsbENvb3JkcygwLE0ucHJvcFRvQ29sKHZ0KSksZi5fY3JlYXRlQ2VsbENvb3JkcyhkdC5kYXRhLmxlbmd0aC0xLE0ucHJvcFRvQ29sKHZ0KSksTS5ERVNUSU5BVElPTl9SRU5ERVJFUik7Zm9yKGxl'@; put 'dCBZbj0wO1luPCR0Lmxlbmd0aDtZbis9MSlmb3IobGV0ICRuPTA7JG48JHRbWW5dLmxlbmd0aDskbis9MSl4dC5wdXNoKCR0W1luXVskbl0pO3JldHVybiB4dH0sdGhpcy5nZXRTb3VyY2VEYXRhPWZ1bmN0aW9uKHZ0LHh0LCR0LFluKXtsZXQgJG47cmV0dXJuICRuPXZvaWQgMD09PXZ0P0ku'@; put 'Z2V0RGF0YSgpOkkuZ2V0QnlSYW5nZShmLl9jcmVhdGVDZWxsQ29vcmRzKHZ0LHh0KSxmLl9jcmVhdGVDZWxsQ29vcmRzKCR0LFluKSksJG59LHRoaXMuZ2V0U291cmNlRGF0YUFycmF5PWZ1bmN0aW9uKHZ0LHh0LCR0LFluKXtsZXQgJG47cmV0dXJuICRuPXZvaWQgMD09PXZ0P0kuZ2V0RGF0'@; put 'YSghMCk6SS5nZXRCeVJhbmdlKGYuX2NyZWF0ZUNlbGxDb29yZHModnQseHQpLGYuX2NyZWF0ZUNlbGxDb29yZHMoJHQsWW4pLCEwKSwkbn0sdGhpcy5nZXRTb3VyY2VEYXRhQXRDb2w9ZnVuY3Rpb24odnQpe3JldHVybiBJLmdldEF0Q29sdW1uKHZ0KX0sdGhpcy5zZXRTb3VyY2VEYXRhQXRD'@; put 'ZWxsPWZ1bmN0aW9uKHZ0LHh0LCR0LFluKXtjb25zdCAkbj1Zcih2dCx4dCwkdCksYXI9dGhpcy5oYXNIb29rKCJhZnRlclNldFNvdXJjZURhdGFBdENlbGwiKSxHcj1bXTthciYmS24oJG4sYm49PntsZXRbeG4sSW4sWG5dPWJuO0dyLnB1c2goW3huLEluLEkuZ2V0QXRDZWxsKHhuLEluKSxY'@; put 'bl0pfSksS24oJG4sYm49PntsZXRbeG4sSW4sWG5dPWJuO0kuc2V0QXRDZWxsKHhuLEluLFhuKX0pLGFyJiZ0aGlzLnJ1bkhvb2tzKCJhZnRlclNldFNvdXJjZURhdGFBdENlbGwiLEdyLFluKSx0aGlzLnJlbmRlcigpO2NvbnN0IEd0PWYuZ2V0QWN0aXZlRWRpdG9yKCk7R3QmJkhhKEd0LnJl'@; put 'ZnJlc2hWYWx1ZSkmJkd0LnJlZnJlc2hWYWx1ZSgpfSx0aGlzLmdldFNvdXJjZURhdGFBdFJvdz1mdW5jdGlvbih2dCl7cmV0dXJuIEkuZ2V0QXRSb3codnQpfSx0aGlzLmdldFNvdXJjZURhdGFBdENlbGw9ZnVuY3Rpb24odnQseHQpe3JldHVybiBJLmdldEF0Q2VsbCh2dCx4dCl9LHRoaXMu'@; put 'Z2V0RGF0YUF0Um93PWZ1bmN0aW9uKHZ0KXtyZXR1cm4gTS5nZXRSYW5nZShmLl9jcmVhdGVDZWxsQ29vcmRzKHZ0LDApLGYuX2NyZWF0ZUNlbGxDb29yZHModnQsdGhpcy5jb3VudENvbHMoKS0xKSxNLkRFU1RJTkFUSU9OX1JFTkRFUkVSKVswXXx8W119LHRoaXMuZ2V0RGF0YVR5cGU9ZnVu'@; put 'Y3Rpb24odnQseHQsJHQsWW4pe2NvbnN0ICRuPXZvaWQgMD09PXZ0P1swLDAsdGhpcy5jb3VudFJvd3MoKSx0aGlzLmNvdW50Q29scygpXTpbdnQseHQsJHQsWW5dLFthcixHcl09JG47bGV0WywsR3QsYm5dPSRuLHhuPW51bGwsSW49bnVsbDt2b2lkIDA9PT1HdCYmKEd0PWFyKSx2b2lkIDA9'@; put 'PT1ibiYmKGJuPUdyKTtsZXQgWG49Im1peGVkIjtyZXR1cm4gS2EoTWF0aC5tYXgoTWF0aC5taW4oYXIsR3QpLDApLE1hdGgubWF4KGFyLEd0KSxObj0+e2xldCB2cj0hMDtyZXR1cm4gS2EoTWF0aC5tYXgoTWF0aC5taW4oR3IsYm4pLDApLE1hdGgubWF4KEdyLGJuKSxXbj0+KEluPXRoaXMu'@; put 'Z2V0Q2VsbE1ldGEoTm4sV24pLnR5cGUseG4/dnI9eG49PT1Jbjp4bj1Jbix2cikpLFhuPXZyP0luOiJtaXhlZCIsdnJ9KSxYbn0sdGhpcy5yZW1vdmVDZWxsTWV0YT1mdW5jdGlvbih2dCx4dCwkdCl7Y29uc3RbWW4sJG5dPVt0aGlzLnRvUGh5c2ljYWxSb3codnQpLHRoaXMudG9QaHlzaWNh'@; put 'bENvbHVtbih4dCldO2xldCBhcj1wdC5nZXRDZWxsTWV0YUtleVZhbHVlKFluLCRuLCR0KTshMSE9PWYucnVuSG9va3MoImJlZm9yZVJlbW92ZUNlbGxNZXRhIix2dCx4dCwkdCxhcikmJihwdC5yZW1vdmVDZWxsTWV0YShZbiwkbiwkdCksZi5ydW5Ib29rcygiYWZ0ZXJSZW1vdmVDZWxsTWV0'@; put 'YSIsdnQseHQsJHQsYXIpKSxhcj1udWxsfSx0aGlzLnNwbGljZUNlbGxzTWV0YT1mdW5jdGlvbih2dCl7bGV0IHh0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO2Zvcih2YXIgJHQ9YXJndW1lbnRzLmxlbmd0aCxZbj1uZXcgQXJyYXko'@; put 'JHQ+Mj8kdC0yOjApLCRuPTI7JG48JHQ7JG4rKylZblskbi0yXT1hcmd1bWVudHNbJG5dO2lmKFluLmxlbmd0aD4wJiYhQXJyYXkuaXNBcnJheShZblswXSkpdGhyb3cgbmV3IEVycm9yKCJUaGUgM3JkIGFyZ3VtZW50IChjZWxsTWV0YVJvd3MpIGhhcyB0byBiZSBwYXNzZWQgYXMgYW4gYXJy'@; put 'YXkgb2YgY2VsbCBtZXRhIG9iamVjdHMgYXJyYXkuIik7eHQ+MCYmcHQucmVtb3ZlUm93KHRoaXMudG9QaHlzaWNhbFJvdyh2dCkseHQpLFluLmxlbmd0aD4wJiZLbihZbi5yZXZlcnNlKCksYXI9PntwdC5jcmVhdGVSb3codGhpcy50b1BoeXNpY2FsUm93KHZ0KSksS24oYXIsKEdyLEd0KT0+'@; put 'dGhpcy5zZXRDZWxsTWV0YU9iamVjdCh2dCxHdCxHcikpfSksZi5yZW5kZXIoKX0sdGhpcy5zZXRDZWxsTWV0YU9iamVjdD1mdW5jdGlvbih2dCx4dCwkdCl7Im9iamVjdCI9PXR5cGVvZiAkdCYmcXMoJHQsKFluLCRuKT0+e3RoaXMuc2V0Q2VsbE1ldGEodnQseHQsJG4sWW4pfSl9LHRoaXMu'@; put 'c2V0Q2VsbE1ldGE9ZnVuY3Rpb24odnQseHQsJHQsWW4pe2lmKCExPT09Zi5ydW5Ib29rcygiYmVmb3JlU2V0Q2VsbE1ldGEiLHZ0LHh0LCR0LFluKSlyZXR1cm47bGV0IGFyPXZ0LEdyPXh0O3Z0PHRoaXMuY291bnRSb3dzKCkmJihhcj10aGlzLnRvUGh5c2ljYWxSb3codnQpKSx4dDx0aGlz'@; put 'LmNvdW50Q29scygpJiYoR3I9dGhpcy50b1BoeXNpY2FsQ29sdW1uKHh0KSkscHQuc2V0Q2VsbE1ldGEoYXIsR3IsJHQsWW4pLGYucnVuSG9va3MoImFmdGVyU2V0Q2VsbE1ldGEiLHZ0LHh0LCR0LFluKX0sdGhpcy5nZXRDZWxsc01ldGE9ZnVuY3Rpb24oKXtyZXR1cm4gcHQuZ2V0Q2VsbHNN'@; put 'ZXRhKCl9LHRoaXMuZ2V0Q2VsbE1ldGE9ZnVuY3Rpb24odnQseHQpe2xldCAkdD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e3NraXBNZXRhRXh0ZW5zaW9uOiExfSxZbj10aGlzLnRvUGh5c2ljYWxSb3codnQpLCRuPXRoaXMudG9QaHlz'@; put 'aWNhbENvbHVtbih4dCk7cmV0dXJuIG51bGw9PT1ZbiYmKFluPXZ0KSxudWxsPT09JG4mJigkbj14dCkscHQuZ2V0Q2VsbE1ldGEoWW4sJG4se3Zpc3VhbFJvdzp2dCx2aXN1YWxDb2x1bW46eHQsLi4uJHR9KX0sdGhpcy5nZXRDb2x1bW5NZXRhPWZ1bmN0aW9uKHZ0KXtyZXR1cm4gcHQuZ2V0'@; put 'Q29sdW1uTWV0YSh0aGlzLnRvUGh5c2ljYWxDb2x1bW4odnQpKX0sdGhpcy5nZXRDZWxsTWV0YUF0Um93PWZ1bmN0aW9uKHZ0KXtyZXR1cm4gcHQuZ2V0Q2VsbHNNZXRhQXRSb3codnQpfSx0aGlzLmlzQ29sdW1uTW9kaWZpY2F0aW9uQWxsb3dlZD1mdW5jdGlvbigpe3JldHVybiEoIm9iamVj'@; put 'dCI9PT1mLmRhdGFUeXBlfHxkdC5jb2x1bW5zKX0sdGhpcy5nZXRDZWxsUmVuZGVyZXI9ZnVuY3Rpb24odnQseHQpe2NvbnN0ICR0PSJudW1iZXIiPT10eXBlb2YgdnQ/Zi5nZXRDZWxsTWV0YSh2dCx4dCkucmVuZGVyZXI6dnQucmVuZGVyZXI7cmV0dXJuInN0cmluZyI9PXR5cGVvZiAkdD9p'@; put 'UCgkdCk6YmMoJHQpP2lQKCJ0ZXh0Iik6JHR9LHRoaXMuZ2V0Q2VsbEVkaXRvcj1mdW5jdGlvbih2dCx4dCl7Y29uc3QgJHQ9Im51bWJlciI9PXR5cGVvZiB2dD9mLmdldENlbGxNZXRhKHZ0LHh0KS5lZGl0b3I6dnQuZWRpdG9yO3JldHVybiJzdHJpbmciPT10eXBlb2YgJHQ/WE8oJHQpOmJj'@; put 'KCR0KT9YTygidGV4dCIpOiR0fSx0aGlzLmdldENlbGxWYWxpZGF0b3I9ZnVuY3Rpb24odnQseHQpe2NvbnN0ICR0PSJudW1iZXIiPT10eXBlb2YgdnQ/Zi5nZXRDZWxsTWV0YSh2dCx4dCkudmFsaWRhdG9yOnZ0LnZhbGlkYXRvcjtyZXR1cm4ic3RyaW5nIj09dHlwZW9mICR0P2lLKCR0KTok'@; put 'dH0sdGhpcy52YWxpZGF0ZUNlbGxzPWZ1bmN0aW9uKHZ0KXt0aGlzLl92YWxpZGF0ZUNlbGxzKHZ0KX0sdGhpcy52YWxpZGF0ZVJvd3M9ZnVuY3Rpb24odnQseHQpe2lmKCFBcnJheS5pc0FycmF5KHZ0KSl0aHJvdyBuZXcgRXJyb3IoInZhbGlkYXRlUm93cyBwYXJhbWV0ZXIgYHJvd3NgIG11'@; put 'c3QgYmUgYW4gYXJyYXkiKTt0aGlzLl92YWxpZGF0ZUNlbGxzKHh0LHZ0KX0sdGhpcy52YWxpZGF0ZUNvbHVtbnM9ZnVuY3Rpb24odnQseHQpe2lmKCFBcnJheS5pc0FycmF5KHZ0KSl0aHJvdyBuZXcgRXJyb3IoInZhbGlkYXRlQ29sdW1ucyBwYXJhbWV0ZXIgYGNvbHVtbnNgIG11c3QgYmUg'@; put 'YW4gYXJyYXkiKTt0aGlzLl92YWxpZGF0ZUNlbGxzKHh0LHZvaWQgMCx2dCl9LHRoaXMuX3ZhbGlkYXRlQ2VsbHM9ZnVuY3Rpb24odnQseHQsJHQpe2NvbnN0IFluPW5ldyBQbjt2dCYmKFluLm9uUXVldWVFbXB0eT12dCk7bGV0ICRuPWYuY291bnRSb3dzKCktMTtmb3IoOyRuPj0wOyl7aWYo'@; put 'dm9pZCAwIT09eHQmJi0xPT09eHQuaW5kZXhPZigkbikpeyRuLT0xO2NvbnRpbnVlfWxldCBhcj1mLmNvdW50Q29scygpLTE7Zm9yKDthcj49MDspdm9pZCAwPT09JHR8fC0xIT09JHQuaW5kZXhPZihhcik/KFluLmFkZFZhbGlkYXRvclRvUXVldWUoKSxmLnZhbGlkYXRlQ2VsbChmLmdldERh'@; put 'dGFBdENlbGwoJG4sYXIpLGYuZ2V0Q2VsbE1ldGEoJG4sYXIpLEdyPT57aWYoImJvb2xlYW4iIT10eXBlb2YgR3IpdGhyb3cgbmV3IEVycm9yKCJWYWxpZGF0aW9uIGVycm9yOiByZXN1bHQgaXMgbm90IGJvb2xlYW4iKTshMT09PUdyJiYoWW4udmFsaWQ9ITEpLFluLnJlbW92ZVZhbGlkYXRv'@; put 'ckZvcm1RdWV1ZSgpfSwidmFsaWRhdGVDZWxscyIpLGFyLT0xKTphci09MTskbi09MX1Zbi5jaGVja0lmUXVldWVJc0VtcHR5KCl9LHRoaXMuZ2V0Um93SGVhZGVyPWZ1bmN0aW9uKHZ0KXtsZXQgeHQ9ZHQucm93SGVhZGVycywkdD12dDtyZXR1cm4gdm9pZCAwIT09JHQmJigkdD1mLnJ1bkhv'@; put 'b2tzKCJtb2RpZnlSb3dIZWFkZXIiLCR0KSksdm9pZCAwPT09JHQ/KHh0PVtdLEthKGYuY291bnRSb3dzKCktMSxZbj0+e3h0LnB1c2goZi5nZXRSb3dIZWFkZXIoWW4pKX0pKTpBcnJheS5pc0FycmF5KHh0KSYmdm9pZCAwIT09eHRbJHRdP3h0PXh0WyR0XTpmbCh4dCk/eHQ9eHQoJHQpOnh0'@; put 'JiYic3RyaW5nIiE9dHlwZW9mIHh0JiYibnVtYmVyIiE9dHlwZW9mIHh0JiYoeHQ9JHQrMSkseHR9LHRoaXMuaGFzUm93SGVhZGVycz1mdW5jdGlvbigpe3JldHVybiEhZHQucm93SGVhZGVyc30sdGhpcy5oYXNDb2xIZWFkZXJzPWZ1bmN0aW9uKCl7aWYobnVsbCE9ZHQuY29sSGVhZGVycyly'@; put 'ZXR1cm4hIWR0LmNvbEhlYWRlcnM7Zm9yKGxldCB2dD0wLHh0PWYuY291bnRDb2xzKCk7dnQ8eHQ7dnQrKylpZihmLmdldENvbEhlYWRlcih2dCkpcmV0dXJuITA7cmV0dXJuITF9LHRoaXMuZ2V0Q29sSGVhZGVyPWZ1bmN0aW9uKHZ0KXtsZXQgeHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lk'@; put 'IDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOi0xO2NvbnN0ICR0PWYucnVuSG9va3MoIm1vZGlmeUNvbEhlYWRlciIsdnQpO2lmKHZvaWQgMD09PSR0KXtjb25zdCBHdD1bXSxibj1mLmNvdW50Q29scygpO2ZvcihsZXQgeG49MDt4bjxibjt4bisrKUd0LnB1c2goZi5nZXRDb2xIZWFk'@; put 'ZXIoeG4pKTtyZXR1cm4gR3R9bGV0IFluPWR0LmNvbEhlYWRlcnM7Y29uc3QgYXI9Zi50b1BoeXNpY2FsQ29sdW1uKCR0KSxHcj1mdW5jdGlvbihHdCl7Y29uc3QgYm49W10seG49Zi5jb3VudENvbHMoKTtsZXQgSW49MDtmb3IoO0luPHhuO0luKyspZmwoZHQuY29sdW1ucykmJmR0LmNvbHVt'@; put 'bnMoSW4pJiZibi5wdXNoKEluKTtyZXR1cm4gYm5bR3RdfShhcik7cmV0dXJuITE9PT1kdC5jb2xIZWFkZXJzP1luPW51bGw6ZHQuY29sdW1ucyYmZmwoZHQuY29sdW1ucykmJmR0LmNvbHVtbnMoR3IpJiZkdC5jb2x1bW5zKEdyKS50aXRsZT9Zbj1kdC5jb2x1bW5zKEdyKS50aXRsZTpkdC5j'@; put 'b2x1bW5zJiZkdC5jb2x1bW5zW2FyXSYmZHQuY29sdW1uc1thcl0udGl0bGU/WW49ZHQuY29sdW1uc1thcl0udGl0bGU6QXJyYXkuaXNBcnJheShkdC5jb2xIZWFkZXJzKSYmdm9pZCAwIT09ZHQuY29sSGVhZGVyc1thcl0/WW49ZHQuY29sSGVhZGVyc1thcl06ZmwoZHQuY29sSGVhZGVycyk/'@; put 'WW49ZHQuY29sSGVhZGVycyhhcik6ZHQuY29sSGVhZGVycyYmInN0cmluZyIhPXR5cGVvZiBkdC5jb2xIZWFkZXJzJiYibnVtYmVyIiE9dHlwZW9mIGR0LmNvbEhlYWRlcnMmJihZbj1tUCgkdCkpLFluPWYucnVuSG9va3MoIm1vZGlmeUNvbHVtbkhlYWRlclZhbHVlIixZbix2dCx4dCksWW59'@; put 'LHRoaXMuX2dldENvbFdpZHRoRnJvbVNldHRpbmdzPWZ1bmN0aW9uKHZ0KXtsZXQgeHQ7aWYodnQ+PTAmJih4dD1mLmdldENlbGxNZXRhKDAsdnQpLndpZHRoKSwodm9pZCAwPT09eHR8fHh0PT09ZHQud2lkdGgpJiYoeHQ9ZHQuY29sV2lkdGhzKSxudWxsIT14dCl7c3dpdGNoKHR5cGVvZiB4'@; put 'dCl7Y2FzZSJvYmplY3QiOnh0PXh0W3Z0XTticmVhaztjYXNlImZ1bmN0aW9uIjp4dD14dCh2dCl9InN0cmluZyI9PXR5cGVvZiB4dCYmKHh0PXBhcnNlSW50KHh0LDEwKSl9cmV0dXJuIHh0fSx0aGlzLmdldENvbFdpZHRoPWZ1bmN0aW9uKHZ0LHh0KXtsZXQgJHQ9Zi5fZ2V0Q29sV2lkdGhG'@; put 'cm9tU2V0dGluZ3ModnQpO3JldHVybiAkdD1mLnJ1bkhvb2tzKCJtb2RpZnlDb2xXaWR0aCIsJHQsdnQseHQpLHZvaWQgMD09PSR0JiYoJHQ9Yl8pLCR0fSx0aGlzLl9nZXRSb3dIZWlnaHRGcm9tU2V0dGluZ3M9ZnVuY3Rpb24odnQpe2NvbnN0IHh0PWYuc3R5bGVzSGFuZGxlci5nZXREZWZh'@; put 'dWx0Um93SGVpZ2h0KCk7bGV0ICR0PWR0LnJvd0hlaWdodHM7aWYobnVsbCE9JHQpe3N3aXRjaCh0eXBlb2YgJHQpe2Nhc2Uib2JqZWN0IjokdD0kdFt2dF07YnJlYWs7Y2FzZSJmdW5jdGlvbiI6JHQ9JHQodnQpfSJzdHJpbmciPT10eXBlb2YgJHQmJigkdD1wYXJzZUludCgkdCwxMCkpfXJl'@; put 'dHVybiBudWxsIT0kdCYmJHQ8eHQ/eHQ6JHR9LHRoaXMuZ2V0Um93SGVpZ2h0PWZ1bmN0aW9uKHZ0LHh0KXtsZXQgJHQ9Zi5fZ2V0Um93SGVpZ2h0RnJvbVNldHRpbmdzKHZ0KTtyZXR1cm4gJHQ9Zi5ydW5Ib29rcygibW9kaWZ5Um93SGVpZ2h0IiwkdCx2dCx4dCksJHR9LHRoaXMuY291bnRT'@; put 'b3VyY2VSb3dzPWZ1bmN0aW9uKCl7cmV0dXJuIEkuY291bnRSb3dzKCl9LHRoaXMuY291bnRTb3VyY2VDb2xzPWZ1bmN0aW9uKCl7cmV0dXJuIEkuY291bnRGaXJzdFJvd0tleXMoKX0sdGhpcy5jb3VudFJvd3M9ZnVuY3Rpb24oKXtyZXR1cm4gTS5nZXRMZW5ndGgoKX0sdGhpcy5jb3VudENv'@; put 'bHM9ZnVuY3Rpb24oKXtjb25zdCB2dD1kdC5tYXhDb2xzLHh0PXRoaXMuY29sdW1uSW5kZXhNYXBwZXIuZ2V0Tm90VHJpbW1lZEluZGV4ZXNMZW5ndGgoKTtyZXR1cm4gTWF0aC5taW4odnQseHQpfSx0aGlzLmNvdW50UmVuZGVyZWRSb3dzPWZ1bmN0aW9uKCl7cmV0dXJuIGYudmlldy5fd3Qu'@; put 'ZHJhd24/Zi52aWV3Ll93dC53dFRhYmxlLmdldFJlbmRlcmVkUm93c0NvdW50KCk6LTF9LHRoaXMuY291bnRWaXNpYmxlUm93cz1mdW5jdGlvbigpe3JldHVybiBmLnZpZXcuX3d0LmRyYXduP2Yudmlldy5fd3Qud3RUYWJsZS5nZXRWaXNpYmxlUm93c0NvdW50KCk6LTF9LHRoaXMuY291bnRS'@; put 'ZW5kZXJlZENvbHM9ZnVuY3Rpb24oKXtyZXR1cm4gZi52aWV3Ll93dC5kcmF3bj9mLnZpZXcuX3d0Lnd0VGFibGUuZ2V0UmVuZGVyZWRDb2x1bW5zQ291bnQoKTotMX0sdGhpcy5jb3VudFZpc2libGVDb2xzPWZ1bmN0aW9uKCl7cmV0dXJuIGYudmlldy5fd3QuZHJhd24/Zi52aWV3Ll93dC53'@; put 'dFRhYmxlLmdldFZpc2libGVDb2x1bW5zQ291bnQoKTotMX0sdGhpcy5jb3VudFJvd0hlYWRlcnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52aWV3LmdldFJvd0hlYWRlcnNDb3VudCgpfSx0aGlzLmNvdW50Q29sSGVhZGVycz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZpZXcuZ2V0Q29sdW1u'@; put 'SGVhZGVyc0NvdW50KCl9LHRoaXMuY291bnRFbXB0eVJvd3M9ZnVuY3Rpb24oKXtsZXQgdnQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXSx4dD0wO3JldHVybiBKJChmLmNvdW50Um93cygpLTEsJHQ9PntpZihmLmlzRW1wdHlSb3coJHQp'@; put 'KXh0Kz0xO2Vsc2UgaWYoITA9PT12dClyZXR1cm4hMX0pLHh0fSx0aGlzLmNvdW50RW1wdHlDb2xzPWZ1bmN0aW9uKCl7bGV0IHZ0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0seHQ9MDtyZXR1cm4gSiQoZi5jb3VudENvbHMoKS0xLCR0'@; put 'PT57aWYoZi5pc0VtcHR5Q29sKCR0KSl4dCs9MTtlbHNlIGlmKCEwPT09dnQpcmV0dXJuITF9KSx4dH0sdGhpcy5pc0VtcHR5Um93PWZ1bmN0aW9uKHZ0KXtyZXR1cm4gZHQuaXNFbXB0eVJvdy5jYWxsKGYsdnQpfSx0aGlzLmlzRW1wdHlDb2w9ZnVuY3Rpb24odnQpe3JldHVybiBkdC5pc0Vt'@; put 'cHR5Q29sLmNhbGwoZix2dCl9LHRoaXMuc2VsZWN0Q2VsbD1mdW5jdGlvbih2dCx4dCwkdCxZbil7bGV0ICRuPSEoYXJndW1lbnRzLmxlbmd0aD40JiZ2b2lkIDAhPT1hcmd1bWVudHNbNF0pfHxhcmd1bWVudHNbNF0sYXI9IShhcmd1bWVudHMubGVuZ3RoPjUmJnZvaWQgMCE9PWFyZ3VtZW50'@; put 'c1s1XSl8fGFyZ3VtZW50c1s1XTtyZXR1cm4hYmModnQpJiYhYmMoeHQpJiZ0aGlzLnNlbGVjdENlbGxzKFtbdnQseHQsJHQsWW5dXSwkbixhcil9LHRoaXMuc2VsZWN0Q2VsbHM9ZnVuY3Rpb24oKXtsZXQgdnQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJn'@; put 'dW1lbnRzWzBdOltbXV0sJHQ9IShhcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSl8fGFyZ3VtZW50c1syXTshMT09PSghKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdKSYmeWUuc3VzcGVuZCgpO2NvbnN0IFlu'@; put 'PXFuLnNlbGVjdENlbGxzKHZ0KTtyZXR1cm4gWW4mJiR0JiZmLmxpc3RlbigpLHllLnJlc3VtZSgpLFlufSx0aGlzLnNlbGVjdENvbHVtbnM9ZnVuY3Rpb24odnQpe3JldHVybiBxbi5zZWxlY3RDb2x1bW5zKHZ0LGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2Fy'@; put 'Z3VtZW50c1sxXTp2dCxhcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCl9LHRoaXMuc2VsZWN0Um93cz1mdW5jdGlvbih2dCl7cmV0dXJuIHFuLnNlbGVjdFJvd3ModnQsYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnZ0'@; put 'LGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sdGhpcy5kZXNlbGVjdENlbGw9ZnVuY3Rpb24oKXtxbi5kZXNlbGVjdCgpfSx0aGlzLnNlbGVjdEFsbD1mdW5jdGlvbigpe2xldCB2dD0hKGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdKXx8'@; put 'YXJndW1lbnRzWzBdLHh0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp2dCwkdD1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMDt5ZS5za2lwTmV4dFNjcm9sbEN5Y2xlKCkscW4uc2VsZWN0QWxsKHZ0LHh0LCR0KX07'@; put 'Y29uc3QgQmk9KHZ0LHh0KT0+dnQuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KHh0LDEsITApO3RoaXMuc2Nyb2xsVmlld3BvcnRUbz1mdW5jdGlvbih2dCx4dCl7dmFyICR0OyJudW1iZXIiPT10eXBlb2YgdnQmJih2dD17cm93OmFyZ3VtZW50c1swXSxjb2w6YXJndW1lbnRzWzFdLHZlcnRp'@; put 'Y2FsU25hcDphcmd1bWVudHNbMl0/ImJvdHRvbSI6InRvcCIsaG9yaXpvbnRhbFNuYXA6YXJndW1lbnRzWzNdPyJlbmQiOiJzdGFydCIsY29uc2lkZXJIaWRkZW5JbmRleGVzOm51bGw9PT0oJHQ9YXJndW1lbnRzWzRdKXx8dm9pZCAwPT09JHR8fCR0fSk7Y29uc3R7cm93OlluLGNvbDokbixj'@; put 'b25zaWRlckhpZGRlbkluZGV4ZXM6YXJ9PXZ0Pz97fTtsZXQgR3I9WW4sR3Q9JG47aWYoZmwoeHQpJiZ0aGlzLmFkZEhvb2tPbmNlKCJhZnRlclNjcm9sbCIseHQpLHZvaWQgMD09PWFyfHxhcil7Y29uc3QgWG49TnVtYmVyLmlzSW50ZWdlcihZbikmJlluPj0wLE5uPU51bWJlci5pc0ludGVn'@; put 'ZXIoJG4pJiYkbj49MCx2cj1Ybj9CaSh0aGlzLnJvd0luZGV4TWFwcGVyLFluKTp2b2lkIDAsV249Tm4/QmkodGhpcy5jb2x1bW5JbmRleE1hcHBlciwkbik6dm9pZCAwO2lmKG51bGw9PT12cnx8bnVsbD09PVduKXJldHVybiExO0dyPVhuP2Yucm93SW5kZXhNYXBwZXIuZ2V0UmVuZGVyYWJs'@; put 'ZUZyb21WaXN1YWxJbmRleCh2cik6WW4sR3Q9Tm4/Zi5jb2x1bW5JbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KFduKTokbn1jb25zdCBibj1OdW1iZXIuaXNJbnRlZ2VyKEdyKSx4bj1OdW1iZXIuaXNJbnRlZ2VyKEd0KTtsZXQgSW49ITE7cmV0dXJuIGJuJiZHcj49'@; put 'MCYmeG4mJkd0Pj0wP0luPWYudmlldy5zY3JvbGxWaWV3cG9ydChmLl9jcmVhdGVDZWxsQ29vcmRzKEdyLEd0KSx2dC5ob3Jpem9udGFsU25hcCx2dC52ZXJ0aWNhbFNuYXApOmJuJiZHcj49MCYmKHhuJiZHdDwwfHwheG4pP0luPWYudmlldy5zY3JvbGxWaWV3cG9ydFZlcnRpY2FsbHkoR3Is'@; put 'dnQudmVydGljYWxTbmFwKTp4biYmR3Q+PTAmJihibiYmR3I8MHx8IWJuKSYmKEluPWYudmlldy5zY3JvbGxWaWV3cG9ydEhvcml6b250YWxseShHdCx2dC5ob3Jpem9udGFsU25hcCkpLGZsKHh0KSYmKEluP3RoaXMudmlldy5yZW5kZXIoKToodGhpcy5yZW1vdmVIb29rKCJhZnRlclNjcm9s'@; put 'bCIseHQpLHRoaXMuX3JlZ2lzdGVyTWljcm90YXNrKCgpPT54dCgpKSkpLElufSx0aGlzLnNjcm9sbFRvRm9jdXNlZENlbGw9ZnVuY3Rpb24odnQpe2lmKCF0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkKCkpcmV0dXJuITE7ZmwodnQpJiZ0aGlzLmFkZEhvb2tPbmNlKCJhZnRlclNjcm9sbCIs'@; put 'dnQpO2NvbnN0e2hpZ2hsaWdodDp4dH09dGhpcy5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLCR0PXRoaXMuc2Nyb2xsVmlld3BvcnRUbyh4dC50b09iamVjdCgpKTtyZXR1cm4gJHQ/dGhpcy52aWV3LnJlbmRlcigpOmZsKHZ0KSYmKHRoaXMucmVtb3ZlSG9vaygiYWZ0ZXJTY3JvbGwiLHZ0KSx0'@; put 'aGlzLl9yZWdpc3Rlck1pY3JvdGFzaygoKT0+dnQoKSkpLCR0fSx0aGlzLmRlc3Ryb3k9ZnVuY3Rpb24oKXtmLl9jbGVhclRpbWVvdXRzKCksZi5fY2xlYXJJbW1lZGlhdGVzKCksZi52aWV3JiZmLnZpZXcuZGVzdHJveSgpLEkmJkkuZGVzdHJveSgpLEk9bnVsbCx0aGlzLmdldFNob3J0Y3V0'@; put 'TWFuYWdlcigpLmRlc3Ryb3koKSx3bi5jbGVhcigpLHB0LmNsZWFyQ2FjaGUoKSxGcS5kZWxldGUodGhpcy5ndWlkKSx2LmRlc3Ryb3koKSxyZSYmcmUuZGVzdHJveSgpLGYucm9vdENvbnRhaW5lciYmQXAoZi5yb290Q29udGFpbmVyKSxmLnJvb3RQb3J0YWxFbGVtZW50JiZmLnJvb3RQb3J0'@; put 'YWxFbGVtZW50LnJlbW92ZSgpLGYuYmF0Y2hFeGVjdXRpb24oKCk9PntmLnJvd0luZGV4TWFwcGVyLnVucmVnaXN0ZXJBbGwoKSxmLmNvbHVtbkluZGV4TWFwcGVyLnVucmVnaXN0ZXJBbGwoKSxtbi5nZXRJdGVtcygpLmZvckVhY2godnQ9PntsZXRbLHh0XT12dDt4dC5kZXN0cm95KCl9KSxt'@; put 'bi5jbGVhcigpLGYucnVuSG9va3MoImFmdGVyRGVzdHJveSIpfSwhMCksTWEuZ2V0U2luZ2xldG9uKCkuZGVzdHJveShmKSxxcyhmLCh2dCx4dCwkdCk9PntmbCh2dCk/JHRbeHRdPWZ1bmN0aW9uIGhhKHZ0KXtyZXR1cm4oKT0+e3Rocm93IG5ldyBFcnJvcihgVGhlICIke3Z0fSIgbWV0aG9k'@; put 'IGNhbm5vdCBiZSBjYWxsZWQgYmVjYXVzZSB0aGlzIEhhbmRzb250YWJsZSBpbnN0YW5jZSBoYXMgYmVlbiBkZXN0cm95ZWRgKX19KHh0KToiZ3VpZCIhPT14dCYmKCR0W3h0XT1udWxsKX0pLGYuaXNEZXN0cm95ZWQ9ITAsTSYmTS5kZXN0cm95KCksTT1udWxsLEc9bnVsbCxxbj1udWxsLHJl'@; put 'PW51bGwsZj1udWxsfSx0aGlzLmdldEFjdGl2ZUVkaXRvcj1mdW5jdGlvbigpe3JldHVybiByZS5nZXRBY3RpdmVFZGl0b3IoKX0sdGhpcy5nZXRGaXJzdFJlbmRlcmVkVmlzaWJsZVJvdz1mdW5jdGlvbigpe3JldHVybiBmLnZpZXcuZ2V0Rmlyc3RSZW5kZXJlZFZpc2libGVSb3coKX0sdGhp'@; put 'cy5nZXRMYXN0UmVuZGVyZWRWaXNpYmxlUm93PWZ1bmN0aW9uKCl7cmV0dXJuIGYudmlldy5nZXRMYXN0UmVuZGVyZWRWaXNpYmxlUm93KCl9LHRoaXMuZ2V0Rmlyc3RSZW5kZXJlZFZpc2libGVDb2x1bW49ZnVuY3Rpb24oKXtyZXR1cm4gZi52aWV3LmdldEZpcnN0UmVuZGVyZWRWaXNpYmxl'@; put 'Q29sdW1uKCl9LHRoaXMuZ2V0TGFzdFJlbmRlcmVkVmlzaWJsZUNvbHVtbj1mdW5jdGlvbigpe3JldHVybiBmLnZpZXcuZ2V0TGFzdFJlbmRlcmVkVmlzaWJsZUNvbHVtbigpfSx0aGlzLmdldEZpcnN0RnVsbHlWaXNpYmxlUm93PWZ1bmN0aW9uKCl7cmV0dXJuIGYudmlldy5nZXRGaXJzdEZ1'@; put 'bGx5VmlzaWJsZVJvdygpfSx0aGlzLmdldExhc3RGdWxseVZpc2libGVSb3c9ZnVuY3Rpb24oKXtyZXR1cm4gZi52aWV3LmdldExhc3RGdWxseVZpc2libGVSb3coKX0sdGhpcy5nZXRGaXJzdEZ1bGx5VmlzaWJsZUNvbHVtbj1mdW5jdGlvbigpe3JldHVybiBmLnZpZXcuZ2V0Rmlyc3RGdWxs'@; put 'eVZpc2libGVDb2x1bW4oKX0sdGhpcy5nZXRMYXN0RnVsbHlWaXNpYmxlQ29sdW1uPWZ1bmN0aW9uKCl7cmV0dXJuIGYudmlldy5nZXRMYXN0RnVsbHlWaXNpYmxlQ29sdW1uKCl9LHRoaXMuZ2V0Rmlyc3RQYXJ0aWFsbHlWaXNpYmxlUm93PWZ1bmN0aW9uKCl7cmV0dXJuIGYudmlldy5nZXRG'@; put 'aXJzdFBhcnRpYWxseVZpc2libGVSb3coKX0sdGhpcy5nZXRMYXN0UGFydGlhbGx5VmlzaWJsZVJvdz1mdW5jdGlvbigpe3JldHVybiBmLnZpZXcuZ2V0TGFzdFBhcnRpYWxseVZpc2libGVSb3coKX0sdGhpcy5nZXRGaXJzdFBhcnRpYWxseVZpc2libGVDb2x1bW49ZnVuY3Rpb24oKXtyZXR1'@; put 'cm4gZi52aWV3LmdldEZpcnN0UGFydGlhbGx5VmlzaWJsZUNvbHVtbigpfSx0aGlzLmdldExhc3RQYXJ0aWFsbHlWaXNpYmxlQ29sdW1uPWZ1bmN0aW9uKCl7cmV0dXJuIGYudmlldy5nZXRMYXN0UGFydGlhbGx5VmlzaWJsZUNvbHVtbigpfSx0aGlzLmdldFBsdWdpbj1mdW5jdGlvbih2dCl7'@; put 'cmV0dXJuIG1uLmdldEl0ZW0oZjEodnQpKX0sdGhpcy5nZXRQbHVnaW5OYW1lPWZ1bmN0aW9uKHZ0KXtyZXR1cm4gdnQ9PT10aGlzLnVuZG9SZWRvP3RoaXMudW5kb1JlZG8uY29uc3RydWN0b3IuUExVR0lOX0tFWTptbi5nZXRJZCh2dCl9LHRoaXMuZ2V0SW5zdGFuY2U9ZnVuY3Rpb24oKXty'@; put 'ZXR1cm4gZn0sdGhpcy5hZGRIb29rPWZ1bmN0aW9uKHZ0LHh0LCR0KXtNYS5nZXRTaW5nbGV0b24oKS5hZGQodnQseHQsZiwkdCl9LHRoaXMuaGFzSG9vaz1mdW5jdGlvbih2dCl7cmV0dXJuIE1hLmdldFNpbmdsZXRvbigpLmhhcyh2dCxmKXx8TWEuZ2V0U2luZ2xldG9uKCkuaGFzKHZ0KX0s'@; put 'dGhpcy5hZGRIb29rT25jZT1mdW5jdGlvbih2dCx4dCwkdCl7TWEuZ2V0U2luZ2xldG9uKCkub25jZSh2dCx4dCxmLCR0KX0sdGhpcy5yZW1vdmVIb29rPWZ1bmN0aW9uKHZ0LHh0KXtNYS5nZXRTaW5nbGV0b24oKS5yZW1vdmUodnQseHQsZil9LHRoaXMucnVuSG9va3M9ZnVuY3Rpb24odnQs'@; put 'eHQsJHQsWW4sJG4sYXIsR3Ipe3JldHVybiBNYS5nZXRTaW5nbGV0b24oKS5ydW4oZix2dCx4dCwkdCxZbiwkbixhcixHcil9LHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZT1mdW5jdGlvbih2dCx4dCl7cmV0dXJuIHEzZShkdC5sYW5ndWFnZSx2dCx4dCl9LHRoaXMudG9IVE1MPSgpPT5YJCh0'@; put 'aGlzKSx0aGlzLnRvVGFibGVFbGVtZW50PSgpPT57Y29uc3QgdnQ9dGhpcy5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHZ0Lmluc2VydEFkamFjZW50SFRNTCgiYWZ0ZXJiZWdpbiIsWCQodGhpcykpLHZ0LmZpcnN0RWxlbWVudENoaWxkfSx0aGlzLnRpbWVvdXRz'@; put 'PVtdLHRoaXMudXNlVGhlbWU9dnQ9Pntjb25zdCB4dD0hIUVlO3RoaXMuc3R5bGVzSGFuZGxlci51c2VUaGVtZSh2dCk7Y29uc3QgJHQ9dGhpcy5zdHlsZXNIYW5kbGVyLmdldFRoZW1lTmFtZSgpO3dfKHRoaXMpJiYoaHModGhpcy5yb290V3JhcHBlckVsZW1lbnQsL2h0LXRoZW1lLS4qL2cp'@; put 'LGhzKHRoaXMucm9vdFBvcnRhbEVsZW1lbnQsL2h0LXRoZW1lLS4qL2cpLCR0JiYoRWkodGhpcy5yb290V3JhcHBlckVsZW1lbnQsJHQpLEVpKHRoaXMucm9vdFBvcnRhbEVsZW1lbnQsJHQpLGdldENvbXB1dGVkU3R5bGUodGhpcy5yb290V3JhcHBlckVsZW1lbnQpLmdldFByb3BlcnR5VmFs'@; put 'dWUoIi0taHQtbGluZS1oZWlnaHQiKXx8WW8oYFRoZSAiJHskdH0iIHRoZW1lIGlzIGVuYWJsZWQsIGJ1dCBpdHMgc3R5bGVzaGVldHMgYXJlIG1pc3Npbmcgb3Igbm90IGltcG9ydGVkIGNvcnJlY3RseS4gICAgICAgICAgICAgSW1wb3J0IHRoZSBjb3JyZWN0IENTUyBmaWxlcyBpbiBvcmRl'@; put 'ciB0byB1c2UgdGhhdCB0aGVtZS5gKSkpLHh0fHwoZi5yZW5kZXIoKSxmLnNjcm9sbFZpZXdwb3J0VG8oMCwwKSxJcGUodGhpcy5yb290Q29udGFpbmVyKSYmKGhzKHRoaXMucm9vdENvbnRhaW5lciwvaHQtdGhlbWUtLiovZyksJHQmJkVpKHRoaXMucm9vdENvbnRhaW5lciwkdCkpKSx0aGlz'@; put 'LnJ1bkhvb2tzKCJhZnRlclNldFRoZW1lIiwkdCx4dCl9LHRoaXMuZ2V0Q3VycmVudFRoZW1lTmFtZT0oKT0+dGhpcy5zdHlsZXNIYW5kbGVyLmdldFRoZW1lTmFtZSgpLHRoaXMuZ2V0VGFibGVIZWlnaHQ9KCk9PnRoaXMucm9vdEVsZW1lbnQub2Zmc2V0SGVpZ2h0LHRoaXMuZ2V0VGFibGVX'@; put 'aWR0aD0oKT0+dGhpcy5yb290RWxlbWVudC5vZmZzZXRXaWR0aCx0aGlzLl9yZWdpc3RlclRpbWVvdXQ9ZnVuY3Rpb24odnQpe2xldCAkdD12dDsiZnVuY3Rpb24iPT10eXBlb2YgJHQmJigkdD1zZXRUaW1lb3V0KCR0LGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFd'@; put 'P2FyZ3VtZW50c1sxXTowKSksdGhpcy50aW1lb3V0cy5wdXNoKCR0KX0sdGhpcy5fY2xlYXJUaW1lb3V0cz1mdW5jdGlvbigpe0tuKHRoaXMudGltZW91dHMsdnQ9PntjbGVhclRpbWVvdXQodnQpfSl9LHRoaXMuaW1tZWRpYXRlcz1bXSx0aGlzLl9yZWdpc3RlckltbWVkaWF0ZT1mdW5jdGlv'@; put 'bih2dCl7dGhpcy5pbW1lZGlhdGVzLnB1c2goc2V0SW1tZWRpYXRlKHZ0KSl9LHRoaXMuX2NsZWFySW1tZWRpYXRlcz1mdW5jdGlvbigpe0tuKHRoaXMuaW1tZWRpYXRlcyx2dD0+e2NsZWFySW1tZWRpYXRlKHZ0KX0pfSx0aGlzLl9yZWdpc3Rlck1pY3JvdGFzaz1mdW5jdGlvbih2dCl7dGhp'@; put 'cy5yb290V2luZG93LnF1ZXVlTWljcm90YXNrKCgpPT57dGhpcy5pc0Rlc3Ryb3llZHx8dnQoKX0pfSx0aGlzLl9nZXRFZGl0b3JNYW5hZ2VyPWZ1bmN0aW9uKCl7cmV0dXJuIHJlfTtjb25zdCBtYT1haXQoe2hhbmRsZUV2ZW50OigpPT5mLmlzTGlzdGVuaW5nKCksYmVmb3JlS2V5RG93bjp2'@; put 'dD0+dGhpcy5ydW5Ib29rcygiYmVmb3JlS2V5RG93biIsdnQpLGFmdGVyS2V5RG93bjp2dD0+e3RoaXMuaXNEZXN0cm95ZWR8fGYucnVuSG9va3MoImFmdGVyRG9jdW1lbnRLZXlEb3duIix2dCl9LG93bmVyV2luZG93OnRoaXMucm9vdFdpbmRvd30pO3RoaXMuYWRkSG9vaygiYmVmb3JlT25D'@; put 'ZWxsTW91c2VEb3duIix2dD0+eyExPT09dnQuY3RybEtleSYmITE9PT12dC5tZXRhS2V5JiZtYS5yZWxlYXNlUHJlc3NlZEtleXMoKX0pLHRoaXMuZ2V0U2hvcnRjdXRNYW5hZ2VyPWZ1bmN0aW9uKCl7cmV0dXJuIG1hfSx0aGlzLmdldEZvY3VzTWFuYWdlcj1mdW5jdGlvbigpe3JldHVybiB1'@; put 'ZX0scksoKS5mb3JFYWNoKHZ0PT57Y29uc3QgeHQ9T0UodnQpO21uLmFkZEl0ZW0odnQsbmV3IHh0KHRoaXMpKX0pLGZ1bmN0aW9uIGlhdChjKXtbcmF0LG5hdF0uZm9yRWFjaChsPT5sKGMpKX0oZiksbWEuc2V0QWN0aXZlQ29udGV4dE5hbWUoImdyaWQiKSxNYS5nZXRTaW5nbGV0b24oKS5y'@; put 'dW4oZiwiY29uc3RydWN0Iil9ZnVuY3Rpb24genBlKGMsbCxhKXtjLmFkZEV2ZW50TGlzdGVuZXIobCxhLCExKX1mdW5jdGlvbiBVcGUoYyxsLGEpe2MucmVtb3ZlRXZlbnRMaXN0ZW5lcihsLGEsITEpfWZ1bmN0aW9uIFdQKGMpe3JldHVybiBjLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcu'@; put 'Z2V0Q29tcHV0ZWRTdHlsZShjKX1mdW5jdGlvbiBacGUoYyl7Y29uc3QgYT17bWluSGVpZ2h0OjIwMCxtYXhIZWlnaHQ6MzAwLG1pbldpZHRoOjEwMCxtYXhXaWR0aDozMDAsdGV4dENvbnRlbnQ6dWU9PnVlLnZhbHVlLC4uLmFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRz'@; put 'WzFdP2FyZ3VtZW50c1sxXTp7fX0sZD1jLmJvZHksaD1jLmNyZWF0ZVRleHROb2RlKCIiKSxmPWMuY3JlYXRlRWxlbWVudCgic3BhbiIpO2xldCB2O2Z1bmN0aW9uIE0oKXt2YXIgdWUseWU7aC50ZXh0Q29udGVudD1hLnRleHRDb250ZW50KHYpLGYuc3R5bGUucG9zaXRpb249ImFic29sdXRl'@; put 'IixmLnN0eWxlLmZvbnRTaXplPVdQKHYpLmZvbnRTaXplLGYuc3R5bGUuZm9udEZhbWlseT1XUCh2KS5mb250RmFtaWx5LGYuc3R5bGUud2hpdGVTcGFjZT0icHJlIixkLmFwcGVuZENoaWxkKGYpO2NvbnN0IEVlPXBhcnNlSW50KChudWxsPT09KHVlPVdQKHYpKXx8dm9pZCAwPT09dWU/dm9p'@; put 'ZCAwOnVlLnBhZGRpbmdJbmxpbmVTdGFydCl8fDAsMTApLEJlPXBhcnNlSW50KChudWxsPT09KHllPVdQKHYpKXx8dm9pZCAwPT09eWU/dm9pZCAwOnllLnBhZGRpbmdJbmxpbmVFbmQpfHwwLDEwKSxHZT1mLmNsaWVudFdpZHRoK0VlK0JlKzE7ZC5yZW1vdmVDaGlsZChmKTtjb25zdCBzdD12'@; put 'LnN0eWxlO3N0LmhlaWdodD1gJHthLm1pbkhlaWdodH1weGAsc3Qud2lkdGg9YS5taW5XaWR0aD5HZT9gJHthLm1pbldpZHRofXB4YDpHZT5hLm1heFdpZHRoP2Ake2EubWF4V2lkdGh9cHhgOmAke0dlfXB4YDtjb25zdCBwdD12LnNjcm9sbEhlaWdodD92LnNjcm9sbEhlaWdodC0xOjA7YS5t'@; put 'aW5IZWlnaHQ+cHQ/c3QuaGVpZ2h0PWAke2EubWluSGVpZ2h0fXB4YDphLm1heEhlaWdodDxwdD8oc3QuaGVpZ2h0PWAke2EubWF4SGVpZ2h0fXB4YCxzdC5vdmVyZmxvd1k9InZpc2libGUiKTpzdC5oZWlnaHQ9YCR7cHR9cHhgfWZ1bmN0aW9uIEkoKXtjLmRlZmF1bHRWaWV3LnNldFRpbWVv'@; put 'dXQoTSwwKX1yZXR1cm57aW5pdDpmdW5jdGlvbiByZSh1ZSx5ZSl7bGV0IEVlPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl07dj11ZSxmdW5jdGlvbiBHKHVlKXtpZih1ZSYmdWUubWluSGVpZ2h0KWlmKCJpbmhlcml0Ij09PXVlLm1pbkhl'@; put 'aWdodClhLm1pbkhlaWdodD12LmNsaWVudEhlaWdodDtlbHNle2NvbnN0IHllPXBhcnNlSW50KHVlLm1pbkhlaWdodCwxMCk7aXNOYU4oeWUpfHwoYS5taW5IZWlnaHQ9eWUpfWlmKHVlJiZ1ZS5tYXhIZWlnaHQpaWYoImluaGVyaXQiPT09dWUubWF4SGVpZ2h0KWEubWF4SGVpZ2h0PXYuY2xp'@; put 'ZW50SGVpZ2h0O2Vsc2V7Y29uc3QgeWU9cGFyc2VJbnQodWUubWF4SGVpZ2h0LDEwKTtpc05hTih5ZSl8fChhLm1heEhlaWdodD15ZSl9aWYodWUmJnVlLm1pbldpZHRoKWlmKCJpbmhlcml0Ij09PXVlLm1pbldpZHRoKWEubWluV2lkdGg9di5jbGllbnRXaWR0aDtlbHNle2NvbnN0IHllPXBh'@; put 'cnNlSW50KHVlLm1pbldpZHRoLDEwKTtpc05hTih5ZSl8fChhLm1pbldpZHRoPXllKX1pZih1ZSYmdWUubWF4V2lkdGgpaWYoImluaGVyaXQiPT09dWUubWF4V2lkdGgpYS5tYXhXaWR0aD12LmNsaWVudFdpZHRoO2Vsc2V7Y29uc3QgeWU9cGFyc2VJbnQodWUubWF4V2lkdGgsMTApO2lzTmFO'@; put 'KHllKXx8KGEubWF4V2lkdGg9eWUpfWYuZmlyc3RDaGlsZHx8KGYuY2xhc3NOYW1lPSJhdXRvUmVzaXplIixmLnN0eWxlLmRpc3BsYXk9ImlubGluZS1ibG9jayIsZi5hcHBlbmRDaGlsZChoKSl9KHllKSwiVEVYVEFSRUEiPT09di5ub2RlTmFtZSYmKHYuc3R5bGUucmVzaXplPSJub25lIix2'@; put 'LnN0eWxlLmhlaWdodD1gJHthLm1pbkhlaWdodH1weGAsdi5zdHlsZS5taW5XaWR0aD1gJHthLm1pbldpZHRofXB4YCx2LnN0eWxlLm1heFdpZHRoPWAke2EubWF4V2lkdGh9cHhgLHYuc3R5bGUub3ZlcmZsb3dZPSJoaWRkZW4iKSxFZSYmKHpwZSh2LCJpbnB1dCIsTSksenBlKHYsImtleWRv'@; put 'd24iLEkpKSxNKCl9LHJlc2l6ZTpNLHVuT2JzZXJ2ZSgpe1VwZSh2LCJpbnB1dCIsTSksVXBlKHYsImtleWRvd24iLEkpfX19ZnVuY3Rpb24gV3BlKGMsbCl7Y29uc3QgYT1rJChsKSxkPWwudmFsdWUuc3BsaXQoIlxuIik7bGV0IGg9YSxmPTA7Zm9yKGxldCB2PTA7djxkLmxlbmd0aDt2Kysp'@; put 'ezAhPT12JiYoZis9ZFt2LTFdLmxlbmd0aCsxKTtjb25zdCBJPWYrZFt2XS5sZW5ndGg7aWYoImhvbWUiPT09Yz9oPWY6ImVuZCI9PT1jJiYoaD1JKSxhPD1JKWJyZWFrfUFFKGwsaCl9ZnVuY3Rpb24gYTkoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIGZhdChjKXt2YXIgbD1mdW5jdGlvbiBw'@; put 'YXQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9y'@; put 'KCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMs'@; put 'bCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWNvbnN0IFlQPSJodF9lZGl0b3JfaGlkZGVuIixZcGU9InRleHRFZGl0b3IiO2NsYXNzIHM5IGV4dGVuZHMga197c3RhdGljIGdldCBFRElUT1JfVFlQRSgpe3JldHVybiJ0ZXh0'@; put 'In1jb25zdHJ1Y3RvcihsKXtzdXBlcihsKSxhOSh0aGlzLCJldmVudE1hbmFnZXIiLG5ldyBaMih0aGlzKSksYTkodGhpcywiYXV0b1Jlc2l6ZSIsWnBlKHRoaXMuaG90LnJvb3REb2N1bWVudCkpLGE5KHRoaXMsIlRFWFRBUkVBIix2b2lkIDApLGE5KHRoaXMsInRleHRhcmVhU3R5bGUiLHZv'@; put 'aWQgMCksYTkodGhpcywiVEVYVEFSRUFfUEFSRU5UIix2b2lkIDApLGE5KHRoaXMsInRleHRhcmVhUGFyZW50U3R5bGUiLHZvaWQgMCksYTkodGhpcywibGF5ZXJDbGFzcyIsdm9pZCAwKSx0aGlzLmV2ZW50TWFuYWdlcj1uZXcgWjIodGhpcyksdGhpcy5jcmVhdGVFbGVtZW50cygpLHRoaXMu'@; put 'YmluZEV2ZW50cygpLHRoaXMuaG90LmFkZEhvb2tPbmNlKCJhZnRlckRlc3Ryb3kiLCgpPT50aGlzLmRlc3Ryb3koKSl9Z2V0VmFsdWUoKXtyZXR1cm4gdGhpcy5URVhUQVJFQS52YWx1ZX1zZXRWYWx1ZShsKXt0aGlzLlRFWFRBUkVBLnZhbHVlPWx9b3Blbigpe3RoaXMuX29wZW5lZD0hMCx0'@; put 'aGlzLnJlZnJlc2hEaW1lbnNpb25zKCksdGhpcy5zaG93RWRpdGFibGVFbGVtZW50KCksdGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuc2V0QWN0aXZlQ29udGV4dE5hbWUoImVkaXRvciIpLHRoaXMucmVnaXN0ZXJTaG9ydGN1dHMoKX1jbG9zZSgpe3RoaXMuX29wZW5lZD0hMSx0aGlz'@; put 'LmF1dG9SZXNpemUudW5PYnNlcnZlKCksTUUodGhpcy5ob3Qucm9vdERvY3VtZW50LmFjdGl2ZUVsZW1lbnQsdGhpcy5ob3Qucm9vdEVsZW1lbnQpJiZ0aGlzLmhvdC5saXN0ZW4oKSx0aGlzLmhpZGVFZGl0YWJsZUVsZW1lbnQoKSx0aGlzLnVucmVnaXN0ZXJTaG9ydGN1dHMoKX1wcmVwYXJl'@; put 'KGwsYSxkLGgsZix2KXtjb25zdCBNPXRoaXMuc3RhdGU7aWYoc3VwZXIucHJlcGFyZShsLGEsZCxoLGYsdiksIXYucmVhZE9ubHkpe3RoaXMucmVmcmVzaERpbWVuc2lvbnMoITApO2NvbnN0e2FsbG93SW52YWxpZDpJfT12O0kmJiF0aGlzLmlzT3BlbmVkKCkmJih0aGlzLlRFWFRBUkVBLnZh'@; put 'bHVlPSIiKSxNIT09YXUuRklOSVNIRUQmJiF0aGlzLmlzT3BlbmVkKCkmJnRoaXMuaGlkZUVkaXRhYmxlRWxlbWVudCgpfX1iZWdpbkVkaXRpbmcobCxhKXt0aGlzLnN0YXRlPT09YXUuVklSR0lOJiYodGhpcy5URVhUQVJFQS52YWx1ZT0iIixzdXBlci5iZWdpbkVkaXRpbmcobCxhKSl9Zm9j'@; put 'dXMoKXt0aGlzLlRFWFRBUkVBLnNlbGVjdCgpLEFFKHRoaXMuVEVYVEFSRUEsdGhpcy5URVhUQVJFQS52YWx1ZS5sZW5ndGgpfWNyZWF0ZUVsZW1lbnRzKCl7Y29uc3R7cm9vdERvY3VtZW50Omx9PXRoaXMuaG90O3RoaXMuVEVYVEFSRUE9bC5jcmVhdGVFbGVtZW50KCJURVhUQVJFQSIpLG1z'@; put 'KHRoaXMuVEVYVEFSRUEsW1siZGF0YS1ob3QtaW5wdXQiLCIiXSxrbSgtMSldKSxFaSh0aGlzLlRFWFRBUkVBLCJoYW5kc29udGFibGVJbnB1dCIpLHRoaXMudGV4dGFyZWFTdHlsZT10aGlzLlRFWFRBUkVBLnN0eWxlLHRoaXMudGV4dGFyZWFTdHlsZS53aWR0aD0wLHRoaXMudGV4dGFyZWFT'@; put 'dHlsZS5oZWlnaHQ9MCx0aGlzLnRleHRhcmVhU3R5bGUub3ZlcmZsb3dZPSJ2aXNpYmxlIix0aGlzLlRFWFRBUkVBX1BBUkVOVD1sLmNyZWF0ZUVsZW1lbnQoIkRJViIpLEVpKHRoaXMuVEVYVEFSRUFfUEFSRU5ULCJoYW5kc29udGFibGVJbnB1dEhvbGRlciIpLGdzKHRoaXMuVEVYVEFSRUFf'@; put 'UEFSRU5ULHRoaXMubGF5ZXJDbGFzcykmJmhzKHRoaXMuVEVYVEFSRUFfUEFSRU5ULHRoaXMubGF5ZXJDbGFzcyksRWkodGhpcy5URVhUQVJFQV9QQVJFTlQsWVApLHRoaXMudGV4dGFyZWFQYXJlbnRTdHlsZT10aGlzLlRFWFRBUkVBX1BBUkVOVC5zdHlsZSx0aGlzLlRFWFRBUkVBX1BBUkVO'@; put 'VC5hcHBlbmRDaGlsZCh0aGlzLlRFWFRBUkVBKSx0aGlzLmhvdC5yb290RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLlRFWFRBUkVBX1BBUkVOVCl9aGlkZUVkaXRhYmxlRWxlbWVudCgpe3EyZSgpJiYodGhpcy50ZXh0YXJlYVN0eWxlLnRleHRJbmRlbnQ9Ii05OTk5OXB4IiksdGhpcy50ZXh0'@; put 'YXJlYVN0eWxlLm92ZXJmbG93WT0idmlzaWJsZSIsdGhpcy50ZXh0YXJlYVBhcmVudFN0eWxlLm9wYWNpdHk9IjAiLHRoaXMudGV4dGFyZWFQYXJlbnRTdHlsZS5oZWlnaHQ9IjFweCIsaHModGhpcy5URVhUQVJFQV9QQVJFTlQsdGhpcy5sYXllckNsYXNzKSxFaSh0aGlzLlRFWFRBUkVBX1BB'@; put 'UkVOVCxZUCl9c2hvd0VkaXRhYmxlRWxlbWVudCgpe3RoaXMudGV4dGFyZWFQYXJlbnRTdHlsZS5oZWlnaHQ9IiIsdGhpcy50ZXh0YXJlYVBhcmVudFN0eWxlLm92ZXJmbG93PSIiLHRoaXMudGV4dGFyZWFQYXJlbnRTdHlsZS5wb3NpdGlvbj0iIix0aGlzLnRleHRhcmVhUGFyZW50U3R5bGVb'@; put 'dGhpcy5ob3QuaXNSdGwoKT8ibGVmdCI6InJpZ2h0Il09ImF1dG8iLHRoaXMudGV4dGFyZWFQYXJlbnRTdHlsZS5vcGFjaXR5PSIxIix0aGlzLnRleHRhcmVhU3R5bGUudGV4dEluZGVudD0iIjtjb25zdCBsPXRoaXMuVEVYVEFSRUFfUEFSRU5ULmNoaWxkTm9kZXM7bGV0IGE9ITE7S2EobC5s'@; put 'ZW5ndGgtMSxkPT57aWYoZ3MobFtkXSwiaGFuZHNvbnRhYmxlRWRpdG9yIikpcmV0dXJuIGE9ITAsITF9KSxncyh0aGlzLlRFWFRBUkVBX1BBUkVOVCxZUCkmJmhzKHRoaXMuVEVYVEFSRUFfUEFSRU5ULFlQKSxhPyh0aGlzLmxheWVyQ2xhc3M9Imh0X2VkaXRvcl92aXNpYmxlIixFaSh0aGlz'@; put 'LlRFWFRBUkVBX1BBUkVOVCx0aGlzLmxheWVyQ2xhc3MpKToodGhpcy5sYXllckNsYXNzPXRoaXMuZ2V0RWRpdGVkQ2VsbHNMYXllckNsYXNzKCksRWkodGhpcy5URVhUQVJFQV9QQVJFTlQsdGhpcy5sYXllckNsYXNzKSl9cmVmcmVzaFZhbHVlKCl7Y29uc3QgbD10aGlzLmhvdC50b1BoeXNp'@; put 'Y2FsUm93KHRoaXMucm93KSxhPXRoaXMuaG90LmdldFNvdXJjZURhdGFBdENlbGwobCx0aGlzLmNvbCk7dGhpcy5vcmlnaW5hbFZhbHVlPWEsdGhpcy5zZXRWYWx1ZShhKSx0aGlzLnJlZnJlc2hEaW1lbnNpb25zKCl9cmVmcmVzaERpbWVuc2lvbnMoKXtsZXQgbD1hcmd1bWVudHMubGVuZ3Ro'@; put 'PjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdO2lmKHRoaXMuc3RhdGUhPT1hdS5FRElUSU5HJiYhbClyZXR1cm47aWYodGhpcy5URD10aGlzLmdldEVkaXRlZENlbGwoKSwhdGhpcy5URClyZXR1cm4gdm9pZChsfHx0aGlzLmNsb3NlKCkpO2NvbnN0e3RvcDphLHN0YXJ0'@; put 'OmQsd2lkdGg6aCxtYXhXaWR0aDpmLGhlaWdodDp2LG1heEhlaWdodDpNfT10aGlzLmdldEVkaXRlZENlbGxSZWN0KCk7dGhpcy50ZXh0YXJlYVBhcmVudFN0eWxlLnRvcD1gJHthfXB4YCx0aGlzLnRleHRhcmVhUGFyZW50U3R5bGVbdGhpcy5ob3QuaXNSdGwoKT8icmlnaHQiOiJsZWZ0Il09'@; put 'YCR7ZH1weGAsdGhpcy5zaG93RWRpdGFibGVFbGVtZW50KCk7Y29uc3QgST10aGlzLmhvdC5yb290V2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5URCk7dGhpcy5URVhUQVJFQS5zdHlsZS5mb250U2l6ZT1JLmZvbnRTaXplLHRoaXMuVEVYVEFSRUEuc3R5bGUuZm9udEZhbWlseT1JLmZv'@; put 'bnRGYW1pbHksdGhpcy5URVhUQVJFQS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9dGhpcy5URC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IsdGhpcy5hdXRvUmVzaXplLmluaXQodGhpcy5URVhUQVJFQSx7bWluV2lkdGg6TWF0aC5taW4oaCxmKSxtaW5IZWlnaHQ6TWF0aC5taW4odixNKSxtYXhXaWR0'@; put 'aDpmLG1heEhlaWdodDpNfSwhMCl9YmluZEV2ZW50cygpe1MkKCkmJnRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5URVhUQVJFQSwiZm9jdXNvdXQiLCgpPT50aGlzLmZpbmlzaEVkaXRpbmcoITEpKSx0aGlzLmFkZEhvb2soImFmdGVyU2Nyb2xsSG9yaXpvbnRhbGx5'@; put 'IiwoKT0+dGhpcy5yZWZyZXNoRGltZW5zaW9ucygpKSx0aGlzLmFkZEhvb2soImFmdGVyU2Nyb2xsVmVydGljYWxseSIsKCk9PnRoaXMucmVmcmVzaERpbWVuc2lvbnMoKSksdGhpcy5hZGRIb29rKCJhZnRlckNvbHVtblJlc2l6ZSIsKCk9Pnt0aGlzLnJlZnJlc2hEaW1lbnNpb25zKCksdGhp'@; put 'cy5zdGF0ZT09PWF1LkVESVRJTkcmJnRoaXMuZm9jdXMoKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJSb3dSZXNpemUiLCgpPT57dGhpcy5yZWZyZXNoRGltZW5zaW9ucygpLHRoaXMuc3RhdGU9PT1hdS5FRElUSU5HJiZ0aGlzLmZvY3VzKCl9KX1hbGxvd0tleUV2ZW50UHJvcGFnYXRpb24oKXt9'@; put 'ZGVzdHJveSgpe3RoaXMuZXZlbnRNYW5hZ2VyLmRlc3Ryb3koKSx0aGlzLmNsZWFySG9va3MoKX1yZWdpc3RlclNob3J0Y3V0cygpe2NvbnN0IGE9dGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZWRpdG9yIiksaD0oKT0+e3RoaXMuaG90LnJvb3REb2N1bWVudC5l'@; put 'eGVjQ29tbWFuZCgiaW5zZXJ0VGV4dCIsITEsIlxuIil9O2EuYWRkU2hvcnRjdXRzKFt7a2V5czpbWyJDb250cm9sIiwiRW50ZXIiXV0sY2FsbGJhY2s6KCk9PihoKCksITEpLHJ1bk9ubHlJZjpmPT4hdGhpcy5ob3Quc2VsZWN0aW9uLmlzTXVsdGlwbGUoKSYmIWYuYWx0S2V5fSx7a2V5czpb'@; put 'WyJNZXRhIiwiRW50ZXIiXV0sY2FsbGJhY2s6KCk9PihoKCksITEpLHJ1bk9ubHlJZjooKT0+IXRoaXMuaG90LnNlbGVjdGlvbi5pc011bHRpcGxlKCl9LHtrZXlzOltbIkFsdCIsIkVudGVyIl1dLGNhbGxiYWNrOigpPT4oaCgpLCExKX0se2tleXM6W1siSG9tZSJdXSxjYWxsYmFjazooZix2'@; put 'KT0+e2xldFtNXT12O1dwZShNLHRoaXMuVEVYVEFSRUEpfX0se2tleXM6W1siRW5kIl1dLGNhbGxiYWNrOihmLHYpPT57bGV0W01dPXY7V3BlKE0sdGhpcy5URVhUQVJFQSl9fV0se3J1bk9ubHlJZjooKT0+SGEodGhpcy5ob3QuZ2V0U2VsZWN0ZWQoKSksZ3JvdXA6WXBlfSl9dW5yZWdpc3Rl'@; put 'clNob3J0Y3V0cygpe3RoaXMuaG90LmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImVkaXRvciIpLnJlbW92ZVNob3J0Y3V0c0J5R3JvdXAoWXBlKX19Y29uc3QgeWF0PSJodFRleHRFbGxpcHNpcyI7ZnVuY3Rpb24gY1QoYyxsLGEsZCxoLGYsdil7Y29uc3QgTT12LmFyaWFUYWdz'@; put 'LEk9W10sRz1bXSxyZT1bXSx1ZT1bXTt2LmNsYXNzTmFtZSYmRWkobCx2LmNsYXNzTmFtZSksdi5yZWFkT25seT8oSS5wdXNoKHYucmVhZE9ubHlDZWxsQ2xhc3NOYW1lKSxNJiZ1ZS5wdXNoKEIyZSgpKSk6TSYmcmUucHVzaChCMmUoKVswXSksITE9PT12LnZhbGlkJiZ2LmludmFsaWRDZWxs'@; put 'Q2xhc3NOYW1lPyhJLnB1c2godi5pbnZhbGlkQ2VsbENsYXNzTmFtZSksTSYmdWUucHVzaChqMmUoKSkpOihHLnB1c2godi5pbnZhbGlkQ2VsbENsYXNzTmFtZSksTSYmcmUucHVzaChqMmUoKVswXSkpLCExPT09di53b3JkV3JhcCYmdi5ub1dvcmRXcmFwQ2xhc3NOYW1lJiZJLnB1c2godi5u'@; put 'b1dvcmRXcmFwQ2xhc3NOYW1lKSwhZiYmdi5wbGFjZWhvbGRlciYmSS5wdXNoKHYucGxhY2Vob2xkZXJDZWxsQ2xhc3NOYW1lKSx2LnRleHRFbGxpcHNpcyYmSS5wdXNoKHlhdCksaHMobCxHKSxFaShsLEkpLEI3KGwscmUpLG1zKGwsdWUpfWZ1bmN0aW9uIEVnKGMsbCxhLGQsaCxmLHYpe2NU'@; put 'LmFwcGx5KHRoaXMsW2MsbCxhLGQsaCxmLHZdKTtsZXQgTT1mOyFNJiZ2LnBsYWNlaG9sZGVyJiYoTT12LnBsYWNlaG9sZGVyKSxNPW9jKE0pLHYudHJpbVdoaXRlc3BhY2UmJihNPU0udHJpbSgpKSxMbShsLE0pfWNULlJFTkRFUkVSX1RZUEU9ImJhc2UiLEVnLlJFTkRFUkVSX1RZUEU9InRl'@; put 'eHQiO2NvbnN0IEdwZT17Q0VMTF9UWVBFOiJ0ZXh0IixlZGl0b3I6czkscmVuZGVyZXI6RWd9O2Z1bmN0aW9uIGczKGMsbCl7Y29uc3QgYT1uZXcganBlKGMsbHx8e30sREspO3JldHVybiBhLmluaXQoKSxhfVgyKEdwZSksZzMuZWRpdG9ycz17QmFzZUVkaXRvcjprX30sZzMuQ29yZT1mdW5j'@; put 'dGlvbihjKXtyZXR1cm4gbmV3IGpwZShjLGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxESyl9LGczLkRlZmF1bHRTZXR0aW5ncz1mcGUoKSxnMy5ob29rcz1NYS5nZXRTaW5nbGV0b24oKSxnMy5DZWxsQ29vcmRzPWNQLGczLkNlbGxS'@; put 'YW5nZT1tSyxnMy5wYWNrYWdlTmFtZT0iaGFuZHNvbnRhYmxlIixnMy5idWlsZERhdGU9IjEwLzA3LzIwMjUgMTA6NTk6MDEiLGczLnZlcnNpb249IjE2LjAuMSIsZzMubGFuZ3VhZ2VzPXtkaWN0aW9uYXJ5S2V5czp5bnQsZ2V0TGFuZ3VhZ2VEaWN0aW9uYXJ5OlgzZSxnZXRMYW5ndWFnZXNE'@; put 'aWN0aW9uYXJpZXM6ZnVuY3Rpb24gU250KCl7cmV0dXJuIHdudCgpfSxyZWdpc3Rlckxhbmd1YWdlRGljdGlvbmFyeTpLM2UsZ2V0VHJhbnNsYXRlZFBocmFzZTpxM2V9O2NvbnN0IHJvPWczO2Z1bmN0aW9uICRwZShjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gX2F0KGMpe3ZhciBsPWZ1bmN0'@; put 'aW9uIHdhdChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBl'@; put 'RXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVy'@; put 'dHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9Y29uc3QgS3BlPSJoYW5kc29udGFibGVFZGl0b3IiO2NsYXNzIEhxIGV4dGVuZHMgczl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLCRwZSh0aGlzLCJp'@; put 'c0ZsaXBwZWRWZXJ0aWNhbGx5IiwhMSksJHBlKHRoaXMsImlzRmxpcHBlZEhvcml6b250YWxseSIsITEpfXN0YXRpYyBnZXQgRURJVE9SX1RZUEUoKXtyZXR1cm4iaGFuZHNvbnRhYmxlIn1vcGVuKCl7c3VwZXIub3BlbigpO2NvbnN0IGw9dGhpcy5odENvbnRhaW5lci5zdHlsZTt0aGlzLmh0'@; put 'RWRpdG9yJiYodGhpcy5odEVkaXRvci5kZXN0cm95KCksbC53aWR0aD0iIixsLmhlaWdodD0iIixsLm92ZXJmbG93PSIiKSwibm9uZSI9PT1sLmRpc3BsYXkmJihsLmRpc3BsYXk9IiIpLHRoaXMuaHRFZGl0b3I9bmV3IHRoaXMuaG90LmNvbnN0cnVjdG9yKHRoaXMuaHRDb250YWluZXIsdGhp'@; put 'cy5odE9wdGlvbnMpLHRoaXMuaHRFZGl0b3IuaW5pdCgpLHRoaXMuaHRFZGl0b3Iucm9vdEVsZW1lbnQuc3R5bGUuZGlzcGxheT0iIix0aGlzLmNlbGxQcm9wZXJ0aWVzLnN0cmljdD90aGlzLmh0RWRpdG9yLnNlbGVjdENlbGwoMCwwKTp0aGlzLmh0RWRpdG9yLmRlc2VsZWN0Q2VsbCgpLEFF'@; put 'KHRoaXMuVEVYVEFSRUEsMCx0aGlzLlRFWFRBUkVBLnZhbHVlLmxlbmd0aCksdGhpcy5odEVkaXRvci51cGRhdGVTZXR0aW5ncyh7d2lkdGg6dGhpcy5nZXRUYXJnZXREcm9wZG93bldpZHRoKCksaGVpZ2h0OnRoaXMuZ2V0VGFyZ2V0RHJvcGRvd25IZWlnaHQoKX0pLHRoaXMucmVmcmVzaERp'@; put 'bWVuc2lvbnMoKSx0aGlzLmZsaXBEcm9wZG93blZlcnRpY2FsbHlJZk5lZWRlZCgpLHRoaXMuZmxpcERyb3Bkb3duSG9yaXpvbnRhbGx5SWZOZWVkZWQoKX1jbG9zZSgpe3RoaXMuaHRFZGl0b3ImJih0aGlzLmh0RWRpdG9yLnJvb3RFbGVtZW50LnN0eWxlLmRpc3BsYXk9Im5vbmUiKSx0aGlz'@; put 'LnJlbW92ZUhvb2tzQnlLZXkoImJlZm9yZUtleURvd24iKSxzdXBlci5jbG9zZSgpfXByZXBhcmUobCxhLGQsaCxmLHYpe3N1cGVyLnByZXBhcmUobCxhLGQsaCxmLHYpO2NvbnN0IE09dGhpcyxJPXtzdGFydFJvd3M6MCxzdGFydENvbHM6MCxtaW5Sb3dzOjAsbWluQ29sczowLGNsYXNzTmFt'@; put 'ZToibGlzdGJveCIsY29weVBhc3RlOiExLGF1dG9Db2x1bW5TaXplOiExLGF1dG9Sb3dTaXplOiExLHJlYWRPbmx5OiEwLGZpbGxIYW5kbGU6ITEsYXV0b1dyYXBDb2w6ITEsYXV0b1dyYXBSb3c6ITEsYXJpYVRhZ3M6ITEsdGhlbWVOYW1lOnRoaXMuaG90LmdldEN1cnJlbnRUaGVtZU5hbWUo'@; put 'KSxhZnRlck9uQ2VsbE1vdXNlRG93bihHLHJlKXtjb25zdCB1ZT10aGlzLmdldFNvdXJjZURhdGEocmUucm93LHJlLmNvbCk7dm9pZCAwIT09dWUmJk0uc2V0VmFsdWUodWUpLE0uaG90LmRlc3Ryb3lFZGl0b3IoKX0scHJldmVudFdoZWVsOiEwLGxheW91dERpcmVjdGlvbjp0aGlzLmhvdC5p'@; put 'c1J0bCgpPyJydGwiOiJsdHIifTt0aGlzLmNlbGxQcm9wZXJ0aWVzLmhhbmRzb250YWJsZSYmd3UoSSx2LmhhbmRzb250YWJsZSksdGhpcy5odE9wdGlvbnM9SX1iZWdpbkVkaXRpbmcobCxhKXtjb25zdCBkPXRoaXMuaG90LmdldFNldHRpbmdzKCkub25CZWdpbkVkaXRpbmc7ZCYmITE9PT1k'@; put 'KCl8fHN1cGVyLmJlZ2luRWRpdGluZyhsLGEpfWNyZWF0ZUVsZW1lbnRzKCl7c3VwZXIuY3JlYXRlRWxlbWVudHMoKTtjb25zdCBsPXRoaXMuaG90LnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTtsLmNsYXNzTmFtZT0iaGFuZHNvbnRhYmxlRWRpdG9yIix0aGlzLlRFWFRBUkVB'@; put 'X1BBUkVOVC5hcHBlbmRDaGlsZChsKSx0aGlzLmh0Q29udGFpbmVyPWwsdGhpcy5hc3NpZ25Ib29rcygpfWZpbmlzaEVkaXRpbmcobCxhLGQpe2lmKHRoaXMuaHRFZGl0b3ImJnRoaXMuaHRFZGl0b3IuaXNMaXN0ZW5pbmcoKSYmdGhpcy5ob3QubGlzdGVuKCksdGhpcy5odEVkaXRvciYmdGhp'@; put 'cy5odEVkaXRvci5nZXRTZWxlY3RlZExhc3QoKSl7Y29uc3QgaD10aGlzLmh0RWRpdG9yLmdldFZhbHVlKCk7dm9pZCAwIT09aCYmdGhpcy5zZXRWYWx1ZShoKX1zdXBlci5maW5pc2hFZGl0aW5nKGwsYSxkKX1mbGlwRHJvcGRvd25WZXJ0aWNhbGx5SWZOZWVkZWQoKXtjb25zdHt2aWV3Omx9'@; put 'PXRoaXMuaG90LGE9dGhpcy5nZXRFZGl0ZWRDZWxsUmVjdCgpO2xldCBkPWEudG9wO2lmKGwuaXNWZXJ0aWNhbGx5U2Nyb2xsYWJsZUJ5V2luZG93KCkpe2NvbnN0IE09bC5nZXRUYWJsZU9mZnNldCgpLnRvcC10aGlzLmhvdC5yb290V2luZG93LnNjcm9sbFk7ZD1NYXRoLm1heChkK00sMCl9'@; put 'Y29uc3QgaD10aGlzLmdldERyb3Bkb3duSGVpZ2h0KCksZj1sLmdldFdvcmtzcGFjZUhlaWdodCgpLWQtYS5oZWlnaHQsdj1oPmYmJmQ+ZithLmhlaWdodDtyZXR1cm4gdj90aGlzLmZsaXBEcm9wZG93blZlcnRpY2FsbHkoKTp0aGlzLnVuZmxpcERyb3Bkb3duVmVydGljYWxseSgpLHtpc0Zs'@; put 'aXBwZWQ6dixzcGFjZUFib3ZlOmQsc3BhY2VCZWxvdzpmfX1mbGlwRHJvcGRvd25WZXJ0aWNhbGx5KCl7Y29uc3QgbD10aGlzLmh0RWRpdG9yLnJvb3RFbGVtZW50LnN0eWxlO2wucG9zaXRpb249ImFic29sdXRlIixsLnRvcD0tdGhpcy5nZXREcm9wZG93bkhlaWdodCgpKyJweCIsdGhpcy5p'@; put 'c0ZsaXBwZWRWZXJ0aWNhbGx5PSEwfXVuZmxpcERyb3Bkb3duVmVydGljYWxseSgpe2NvbnN0IGw9dGhpcy5odEVkaXRvci5yb290RWxlbWVudC5zdHlsZTtsLnBvc2l0aW9uPSJhYnNvbHV0ZSIsbC50b3A9IiIsdGhpcy5pc0ZsaXBwZWRWZXJ0aWNhbGx5PSExfWZsaXBEcm9wZG93bkhvcml6'@; put 'b250YWxseUlmTmVlZGVkKCl7Y29uc3R7dmlldzpsfT10aGlzLmhvdCxhPXRoaXMuZ2V0RWRpdGVkQ2VsbFJlY3QoKTtsZXQgZD1hLnN0YXJ0K2Eud2lkdGg7aWYobC5pc0hvcml6b250YWxseVNjcm9sbGFibGVCeVdpbmRvdygpKXtjb25zdCBNPWwuZ2V0VGFibGVPZmZzZXQoKS5sZWZ0LXRo'@; put 'aXMuaG90LnJvb3RXaW5kb3cuc2Nyb2xsWDtkPU1hdGgubWF4KGQrTSwwKX1jb25zdCBoPXRoaXMuZ2V0RHJvcGRvd25XaWR0aCgpLGY9bC5nZXRXb3Jrc3BhY2VXaWR0aCgpLWQrYS53aWR0aCx2PWg+ZiYmZD5mO3JldHVybiB2P3RoaXMuZmxpcERyb3Bkb3duSG9yaXpvbnRhbGx5KCk6dGhp'@; put 'cy51bmZsaXBEcm9wZG93bkhvcml6b250YWxseSgpLHtpc0ZsaXBwZWQ6dixzcGFjZUlubGluZVN0YXJ0OmQsc3BhY2VJbmxpbmVFbmQ6Zn19ZmxpcERyb3Bkb3duSG9yaXpvbnRhbGx5KCl7Y29uc3QgbD10aGlzLmh0RWRpdG9yLnJvb3RFbGVtZW50LnN0eWxlLHt3aWR0aDphfT10aGlzLmdl'@; put 'dEVkaXRlZENlbGxSZWN0KCk7bC5wb3NpdGlvbj0iYWJzb2x1dGUiLGxbdGhpcy5ob3QuaXNSdGwoKT8icmlnaHQiOiJsZWZ0Il09LSh0aGlzLmdldERyb3Bkb3duV2lkdGgoKS1hKSsicHgiLHRoaXMuaXNGbGlwcGVkSG9yaXpvbnRhbGx5PSEwfXVuZmxpcERyb3Bkb3duSG9yaXpvbnRhbGx5'@; put 'KCl7Y29uc3QgbD10aGlzLmh0RWRpdG9yLnJvb3RFbGVtZW50LnN0eWxlO2wucG9zaXRpb249ImFic29sdXRlIixsW3RoaXMuaG90LmlzUnRsKCk/InJpZ2h0IjoibGVmdCJdPSIiLHRoaXMuaXNGbGlwcGVkSG9yaXpvbnRhbGx5PSExfWdldERyb3Bkb3duSGVpZ2h0KCl7cmV0dXJuIHRoaXMu'@; put 'aHRFZGl0b3IuZ2V0VGFibGVIZWlnaHQoKX1nZXREcm9wZG93bldpZHRoKCl7cmV0dXJuIHRoaXMuaHRFZGl0b3IuZ2V0VGFibGVXaWR0aCgpfWdldFRhcmdldERyb3Bkb3duV2lkdGgoKXtyZXR1cm4gdGhpcy5odEVkaXRvci52aWV3LmdldFRhYmxlV2lkdGgoKX1nZXRUYXJnZXREcm9wZG93'@; put 'bkhlaWdodCgpe3JldHVybiB0aGlzLmh0RWRpdG9yLnZpZXcuZ2V0VGFibGVIZWlnaHQoKSsxfWFzc2lnbkhvb2tzKCl7dGhpcy5ob3QuYWRkSG9vaygiYWZ0ZXJEZXN0cm95IiwoKT0+e3ZhciBsO251bGw9PT0obD10aGlzLmh0RWRpdG9yKXx8dm9pZCAwPT09bHx8bC5kZXN0cm95KCl9KSx0'@; put 'aGlzLmhvdC5hZGRIb29rKCJhZnRlclNldFRoZW1lIiwobCxhKT0+e2F8fHRoaXMuY2xvc2UoKX0pfXJlZ2lzdGVyU2hvcnRjdXRzKCl7Y29uc3QgYT10aGlzLmhvdC5nZXRTaG9ydGN1dE1hbmFnZXIoKS5nZXRDb250ZXh0KCJlZGl0b3IiKTtzdXBlci5yZWdpc3RlclNob3J0Y3V0cygpO2Nv'@; put 'bnN0IGg9KGYsdik9Pntjb25zdCBNPXRoaXMuaHRFZGl0b3I7aWYodm9pZCAwIT09ZiYmKGY8MHx8dGhpcy5pc0ZsaXBwZWRWZXJ0aWNhbGx5JiZmPk0uY291bnRSb3dzKCktMT9NLmRlc2VsZWN0Q2VsbCgpOk0uc2VsZWN0Q2VsbChmLDApLE0uZ2V0RGF0YSgpLmxlbmd0aCkpcmV0dXJuIHYu'@; put 'cHJldmVudERlZmF1bHQoKSx6Mih2KSx0aGlzLmhvdC5saXN0ZW4oKSx0aGlzLlRFWFRBUkVBLmZvY3VzKCksITF9O2EuYWRkU2hvcnRjdXRzKFt7a2V5czpbWyJBcnJvd1VwIl1dLGNhbGxiYWNrOmY9Pntjb25zdCB2PXRoaXMuaHRFZGl0b3I7bGV0IE0sSTtyZXR1cm4hdi5nZXRTZWxlY3Rl'@; put 'ZExhc3QoKSYmdGhpcy5pc0ZsaXBwZWRWZXJ0aWNhbGx5P009di5jb3VudFJvd3MoKS0xOnYuZ2V0U2VsZWN0ZWRMYXN0KCkmJih0aGlzLmlzRmxpcHBlZFZlcnRpY2FsbHk/KEk9di5nZXRTZWxlY3RlZExhc3QoKVswXSxNPU1hdGgubWF4KDAsSS0xKSk6KEk9di5nZXRTZWxlY3RlZExhc3Qo'@; put 'KVswXSxNPUktMSkpLGgoTSxmKX0scHJldmVudERlZmF1bHQ6ITF9LHtrZXlzOltbIkFycm93RG93biJdXSxjYWxsYmFjazpmPT57Y29uc3Qgdj10aGlzLmh0RWRpdG9yO2xldCBNLEk7aWYodi5nZXRTZWxlY3RlZExhc3QoKXx8dGhpcy5pc0ZsaXBwZWRWZXJ0aWNhbGx5KXtpZih2LmdldFNl'@; put 'bGVjdGVkTGFzdCgpKWlmKHRoaXMuaXNGbGlwcGVkVmVydGljYWxseSlNPXYuZ2V0U2VsZWN0ZWRMYXN0KClbMF0rMTtlbHNlIGlmKCF0aGlzLmlzRmxpcHBlZFZlcnRpY2FsbHkpe2NvbnN0IEc9di5jb3VudFJvd3MoKS0xO0k9di5nZXRTZWxlY3RlZExhc3QoKVswXSxNPU1hdGgubWluKEcs'@; put 'SSsxKX19ZWxzZSBNPTA7cmV0dXJuIGgoTSxmKX0scHJldmVudERlZmF1bHQ6ITF9XSx7Z3JvdXA6S3BlLHJlbGF0aXZlVG9Hcm91cDp6bSxwb3NpdGlvbjoiYmVmb3JlIn0pfXVucmVnaXN0ZXJTaG9ydGN1dHMoKXtzdXBlci51bnJlZ2lzdGVyU2hvcnRjdXRzKCksdGhpcy5ob3QuZ2V0U2hv'@; put 'cnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZWRpdG9yIikucmVtb3ZlU2hvcnRjdXRzQnlHcm91cChLcGUpfX1mdW5jdGlvbiBYcGUoYyxsLGEpe3FwZShjLGwpLGwuc2V0KGMsYSl9ZnVuY3Rpb24gcXBlKGMsbCl7aWYobC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGlu'@; put 'aXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX1mdW5jdGlvbiBHUChjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gTWF0KGMpe3ZhciBsPWZ1bmN0aW9uIHhhdChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9'@; put 'Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9'@; put 'cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxl'@; put 'OiEwfSk6Y1tsXT1hLGN9ZnVuY3Rpb24gTnEoYyxsKXtyZXR1cm4gYy5nZXQoVnEoYyxsKSl9ZnVuY3Rpb24gVnEoYyxsLGEpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBjP2M9PT1sOmMuaGFzKGwpKXJldHVybiBhcmd1bWVudHMubGVuZ3RoPDM/bDphO3Rocm93IG5ldyBUeXBlRXJyb3IoIlBy'@; put 'aXZhdGUgZWxlbWVudCBpcyBub3QgcHJlc2VudCBvbiB0aGlzIG9iamVjdCIpfXZhciBCcT1uZXcgV2Vha01hcCxKcGU9bmV3IFdlYWtNYXAsanE9bmV3IFdlYWtTZXQ7Y2xhc3MgenEgZXh0ZW5kcyBIcXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksZnVuY3Rpb24gU2F0KGMs'@; put 'bCl7cXBlKGMsbCksbC5hZGQoYyl9KHRoaXMsanEpLEdQKHRoaXMsInF1ZXJ5IixudWxsKSxHUCh0aGlzLCJzdHJpcHBlZENob2ljZXMiLFtdKSxHUCh0aGlzLCJyYXdDaG9pY2VzIixbXSksWHBlKHRoaXMsQnEsdGhpcy5ob3QuZ3VpZC5zbGljZSgwLDkpKSxYcGUodGhpcyxKcGUsSUUoKCk9'@; put 'Pnt0aGlzLmZvY3VzKCl9LDEwMCkpLEdQKHRoaXMsInNvcnRCeVJlbGV2YW5jZSIsZnVuY3Rpb24obCxhLGQpe2NvbnN0IGg9W10sZj1bXSx2PWwubGVuZ3RoO2xldCBJLEcscmUsdWUsTT1hLmxlbmd0aDtpZigwPT09dil7Zm9yKHJlPTA7cmU8TTtyZSsrKWYucHVzaChyZSk7cmV0dXJuIGZ9'@; put 'Zm9yKHJlPTA7cmU8TTtyZSsrKXtpZihHPXkkKG9jKGFbcmVdKSksZCl1ZT1HLmluZGV4T2YobCk7ZWxzZXtjb25zdCB5ZT10aGlzLmNlbGxQcm9wZXJ0aWVzLmxvY2FsZTt1ZT1HLnRvTG9jYWxlTG93ZXJDYXNlKHllKS5pbmRleE9mKGwudG9Mb2NhbGVMb3dlckNhc2UoeWUpKX0tMSE9PXVl'@; put 'JiYoST1HLmxlbmd0aC11ZS12LGgucHVzaCh7YmFzZUluZGV4OnJlLGluZGV4OnVlLGNoYXJzTGVmdDpJLHZhbHVlOkd9KSl9Zm9yKGguc29ydCgoeWUsRWUpPT57aWYoLTE9PT1FZS5pbmRleClyZXR1cm4tMTtpZigtMT09PXllLmluZGV4KXJldHVybiAxO2lmKHllLmluZGV4PEVlLmluZGV4'@; put 'KXJldHVybi0xO2lmKEVlLmluZGV4PHllLmluZGV4KXJldHVybiAxO2lmKHllLmluZGV4PT09RWUuaW5kZXgpe2lmKHllLmNoYXJzTGVmdDxFZS5jaGFyc0xlZnQpcmV0dXJuLTE7aWYoeWUuY2hhcnNMZWZ0PkVlLmNoYXJzTGVmdClyZXR1cm4gMX1yZXR1cm4gMH0pLHJlPTAsTT1oLmxlbmd0'@; put 'aDtyZTxNO3JlKyspZi5wdXNoKGhbcmVdLmJhc2VJbmRleCk7cmV0dXJuIGZ9KX1zdGF0aWMgZ2V0IEVESVRPUl9UWVBFKCl7cmV0dXJuImF1dG9jb21wbGV0ZSJ9Z2V0VmFsdWUoKXtjb25zdCBsPXRoaXMucmF3Q2hvaWNlcy5maW5kKGE9PnRoaXMuc3RyaXBWYWx1ZUlmTmVlZGVkKGEpPT09'@; put 'dGhpcy5URVhUQVJFQS52YWx1ZSk7cmV0dXJuIEhhKGwpP2w6dGhpcy5URVhUQVJFQS52YWx1ZX1jcmVhdGVFbGVtZW50cygpe3N1cGVyLmNyZWF0ZUVsZW1lbnRzKCksRWkodGhpcy5odENvbnRhaW5lciwiYXV0b2NvbXBsZXRlRWRpdG9yIiksRWkodGhpcy5odENvbnRhaW5lciwtMT09PXRo'@; put 'aXMuaG90LnJvb3RXaW5kb3cubmF2aWdhdG9yLnBsYXRmb3JtLmluZGV4T2YoIk1hYyIpPyIiOiJodE1hY1Njcm9sbCIpLHRoaXMuaG90LmdldFNldHRpbmdzKCkuYXJpYVRhZ3MmJm1zKHRoaXMuVEVYVEFSRUEsW1sidHlwZSIsInRleHQiXSxbInJvbGUiLCJjb21ib2JveCJdLEgyZSgibGlz'@; put 'dGJveCIpLFsiYXJpYS1hdXRvY29tcGxldGUiLCJsaXN0Il1dKX1wcmVwYXJlKGwsYSxkLGgsZix2KXtzdXBlci5wcmVwYXJlKGwsYSxkLGgsZix2KSx0aGlzLmhvdC5nZXRTZXR0aW5ncygpLmFyaWFUYWdzJiZtcyh0aGlzLlRFWFRBUkVBLFtCMigiZmFsc2UiKSxicWUoYCR7TnEoQnEsdGhp'@; put 'cyl9LWxpc3Rib3gtJHtsfS0ke2F9YCldKX1vcGVuKCl7c3VwZXIub3BlbigpO2NvbnN0IGw9dm9pZCAwPT09dGhpcy5jZWxsUHJvcGVydGllcy50cmltRHJvcGRvd258fHRoaXMuY2VsbFByb3BlcnRpZXMudHJpbURyb3Bkb3duLGE9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5hcmlhVGFncyxk'@; put 'PUFycmF5LmlzQXJyYXkodGhpcy5jZWxsUHJvcGVydGllcy5zb3VyY2UpP3RoaXMuY2VsbFByb3BlcnRpZXMuc291cmNlOm51bGwsaD1kPy5sZW5ndGgse3JvdzpmLGNvbDp2fT10aGlzO3RoaXMuc2hvd0VkaXRhYmxlRWxlbWVudCgpLHRoaXMuZm9jdXMoKSx0aGlzLmFkZEhvb2soImJlZm9y'@; put 'ZUtleURvd24iLE09PnRoaXMub25CZWZvcmVLZXlEb3duKE0pKSx0aGlzLmh0RWRpdG9yLmFkZEhvb2soImFmdGVyU2Nyb2xsIixOcShKcGUsdGhpcykpLHRoaXMuaHRFZGl0b3IudXBkYXRlU2V0dGluZ3Moe2NvbFdpZHRoczpsP1tpdSh0aGlzLlRFWFRBUkVBKS0yXTp2b2lkIDAsYXV0b0Nv'@; put 'bHVtblNpemU6ITAscmVuZGVyZXI6KE0sSSxHLHJlLHVlLHllLEVlKT0+e0VnKE0sSSxHLHJlLHVlLHllLEVlKTtjb25zdHtmaWx0ZXJpbmdDYXNlU2Vuc2l0aXZlOkJlLGFsbG93SHRtbDpHZSxsb2NhbGU6c3R9PXRoaXMuY2VsbFByb3BlcnRpZXMscHQ9dGhpcy5xdWVyeTtsZXQgcXQsbW4s'@; put 'ZHQ9b2MoeWUpO2R0JiYhR2UmJihxdD0hMD09PUJlP2R0LmluZGV4T2YocHQpOmR0LnRvTG9jYWxlTG93ZXJDYXNlKHN0KS5pbmRleE9mKHB0LnRvTG9jYWxlTG93ZXJDYXNlKHN0KSksLTEhPT1xdCYmKG1uPWR0LnN1YnN0cihxdCxwdC5sZW5ndGgpLGR0PWR0LnJlcGxhY2UobW4sYDxzdHJv'@; put 'bmc+JHttbn08L3N0cm9uZz5gKSkpLGEmJm1zKEksW1sicm9sZSIsIm9wdGlvbiJdLC4uLmQ/W1NxZShoKV06W10sLi4uZD9bTXFlKGQuaW5kZXhPZih5ZSkrMSldOltdLFsiaWQiLGAke3RoaXMuaHRFZGl0b3Iucm9vdEVsZW1lbnQuaWR9XyR7R30tJHtyZX1gXV0pLEkuaW5uZXJIVE1MPWR0'@; put 'fSxhZnRlclNlbGVjdGlvbkVuZDooTSxJKT0+e2lmKGEpe2NvbnN0IEc9dWU9Pnttcyh1ZSxbWyJhcmlhLXNlbGVjdGVkIiwidHJ1ZSJdXSksbXModGhpcy5URVhUQVJFQSwuLi4oYz0+WyJhcmlhLWFjdGl2ZWRlc2NlbmRhbnQiLGNdKSh1ZS5pZCkpfSxyZT10aGlzLmh0RWRpdG9yLmdldENl'@; put 'bGwoTSxJLCEwKTtudWxsIT09cmU/RyhyZSk6dGhpcy5odEVkaXRvci5hZGRIb29rT25jZSgiYWZ0ZXJTY3JvbGxWZXJ0aWNhbGx5IiwoKT0+e2NvbnN0IHVlPXRoaXMuaHRFZGl0b3IuZ2V0Q2VsbChNLEksITApO0codWUpfSl9fX0pLGEmJihtcyh0aGlzLmh0RWRpdG9yLnZpZXcuX3d0Lnd0'@; put 'T3ZlcmxheXMud3RUYWJsZS5UQUJMRSwicm9sZSIsInByZXNlbnRhdGlvbiIpLG1zKHRoaXMuaHRFZGl0b3Iucm9vdEVsZW1lbnQsW1sicm9sZSIsImxpc3Rib3giXSx3cWUoInBvbGl0ZSIpLENxZSgidGV4dCIpLFsiaWQiLGAke05xKEJxLHRoaXMpfS1saXN0Ym94LSR7Zn0tJHt2fWBdXSks'@; put 'bXModGhpcy5URVhUQVJFQSwuLi5CMigidHJ1ZSIpKSksdGhpcy5ob3QuX3JlZ2lzdGVyVGltZW91dCgoKT0+e3RoaXMucXVlcnlDaG9pY2VzKHRoaXMuVEVYVEFSRUEudmFsdWUpfSl9Y2xvc2UoKXt0aGlzLnJlbW92ZUhvb2tzQnlLZXkoImJlZm9yZUtleURvd24iKSxzdXBlci5jbG9zZSgp'@; put 'LHRoaXMuaG90LmdldFNldHRpbmdzKCkuYXJpYVRhZ3MmJm1zKHRoaXMuVEVYVEFSRUEsW0IyKCJmYWxzZSIpXSl9ZGlzY2FyZEVkaXRvcihsKXtzdXBlci5kaXNjYXJkRWRpdG9yKGwpLHRoaXMuaG90LnZpZXcucmVuZGVyKCl9cXVlcnlDaG9pY2VzKGwpe2NvbnN0IGE9dGhpcy5jZWxsUHJv'@; put 'cGVydGllcy5zb3VyY2U7dGhpcy5xdWVyeT1sLCJmdW5jdGlvbiI9PXR5cGVvZiBhP2EuY2FsbCh0aGlzLmNlbGxQcm9wZXJ0aWVzLGwsZD0+e3RoaXMucmF3Q2hvaWNlcz1kLHRoaXMudXBkYXRlQ2hvaWNlc0xpc3QodGhpcy5zdHJpcFZhbHVlc0lmTmVlZGVkKGQpKX0pOkFycmF5LmlzQXJy'@; put 'YXkoYSk/KHRoaXMucmF3Q2hvaWNlcz1hLHRoaXMudXBkYXRlQ2hvaWNlc0xpc3QodGhpcy5zdHJpcFZhbHVlc0lmTmVlZGVkKGEpKSk6dGhpcy51cGRhdGVDaG9pY2VzTGlzdChbXSl9dXBkYXRlQ2hvaWNlc0xpc3QobCl7Y29uc3QgYT1rJCh0aGlzLlRFWFRBUkVBKSxkPWxmZSh0aGlzLlRF'@; put 'WFRBUkVBKSxoPXRoaXMuY2VsbFByb3BlcnRpZXMuc29ydEJ5UmVsZXZhbmNlLGY9dGhpcy5jZWxsUHJvcGVydGllcy5maWx0ZXI7bGV0IHY9bnVsbCxNPW51bGwsST1sO2gmJih2PXRoaXMuc29ydEJ5UmVsZXZhbmNlKHRoaXMuc3RyaXBWYWx1ZUlmTmVlZGVkKHRoaXMuZ2V0VmFsdWUoKSks'@; put 'SSx0aGlzLmNlbGxQcm9wZXJ0aWVzLmZpbHRlcmluZ0Nhc2VTZW5zaXRpdmUpKTtjb25zdCBHPUFycmF5LmlzQXJyYXkodik/di5sZW5ndGg6MDtpZighMT09PWYpRyYmKE09dlswXSk7ZWxzZXtjb25zdCByZT1bXTtmb3IobGV0IHVlPTAseWU9SS5sZW5ndGg7dWU8eWUmJiEoaCYmRzw9dWUp'@; put 'O3VlKyspcmUucHVzaChHP0lbdlt1ZV1dOklbdWVdKTtNPTAsST1yZX10aGlzLnN0cmlwcGVkQ2hvaWNlcz1JLHRoaXMuaHRFZGl0b3Iucm9vdEVsZW1lbnQuc3R5bGUuZGlzcGxheT0wPT09SS5sZW5ndGg/Im5vbmUiOiIiLHRoaXMuaHRFZGl0b3IubG9hZERhdGEodkUoW0ldKSksSS5sZW5n'@; put 'dGg+MCYmKHRoaXMudXBkYXRlRHJvcGRvd25EaW1lbnNpb25zKCksdGhpcy5mbGlwRHJvcGRvd25WZXJ0aWNhbGx5SWZOZWVkZWQoKSwhMD09PXRoaXMuY2VsbFByb3BlcnRpZXMuc3RyaWN0JiZ0aGlzLmhpZ2hsaWdodEJlc3RNYXRjaGluZ0Nob2ljZShNKSksdGhpcy5ob3QubGlzdGVuKCks'@; put 'QUUodGhpcy5URVhUQVJFQSxhLGE9PT1kP3ZvaWQgMDpkKX1mbGlwRHJvcGRvd25WZXJ0aWNhbGx5SWZOZWVkZWQoKXtjb25zdCBsPXN1cGVyLmZsaXBEcm9wZG93blZlcnRpY2FsbHlJZk5lZWRlZCgpLHtpc0ZsaXBwZWQ6YSxzcGFjZUFib3ZlOmQsc3BhY2VCZWxvdzpofT1sO3JldHVybiB0'@; put 'aGlzLmxpbWl0RHJvcGRvd25JZk5lZWRlZChhP2Q6aCksbH1saW1pdERyb3Bkb3duSWZOZWVkZWQobCl7Y29uc3QgYT10aGlzLmdldERyb3Bkb3duSGVpZ2h0KCk7aWYoYT5sKXtsZXQgZD0wLGg9MCxmPW51bGw7ZG97aD10aGlzLmh0RWRpdG9yLnN0eWxlc0hhbmRsZXIuZ2V0RGVmYXVsdFJv'@; put 'd0hlaWdodCgpLGQrPWh9d2hpbGUoZDxsKTtmPWQtaCx0aGlzLmlzRmxpcHBlZFZlcnRpY2FsbHkmJih0aGlzLmh0RWRpdG9yLnJvb3RFbGVtZW50LnN0eWxlLnRvcD1wYXJzZUludCh0aGlzLmh0RWRpdG9yLnJvb3RFbGVtZW50LnN0eWxlLnRvcCwxMCkrYS1mKyJweCIpLHRoaXMuc2V0RHJv'@; put 'cGRvd25IZWlnaHQoZC1oKX19dXBkYXRlRHJvcGRvd25EaW1lbnNpb25zKCl7Y29uc3QgbD1SJCgpLGE9dGhpcy5nZXRUYXJnZXRFZGl0b3JXaWR0aCgpK2wsZD10aGlzLmdldFRhcmdldEVkaXRvckhlaWdodCgpK2w7dGhpcy5odEVkaXRvci51cGRhdGVTZXR0aW5ncyh7d2lkdGg6YSxoZWln'@; put 'aHQ6ZH0pLFZxKGpxLHRoaXMsUXBlKS5jYWxsKHRoaXMpLHRoaXMuaHRFZGl0b3Iudmlldy5fd3Qud3RUYWJsZS5hbGlnbk92ZXJsYXlzV2l0aFRyaW1taW5nQ29udGFpbmVyKCl9c2V0RHJvcGRvd25IZWlnaHQobCl7dGhpcy5odEVkaXRvci51cGRhdGVTZXR0aW5ncyh7aGVpZ2h0Omx9KSxW'@; put 'cShqcSx0aGlzLFFwZSkuY2FsbCh0aGlzKSx0aGlzLmh0RWRpdG9yLnZpZXcuX3d0Lnd0VGFibGUuYWxpZ25PdmVybGF5c1dpdGhUcmltbWluZ0NvbnRhaW5lcigpfWhpZ2hsaWdodEJlc3RNYXRjaGluZ0Nob2ljZShsKXsibnVtYmVyIj09dHlwZW9mIGw/dGhpcy5odEVkaXRvci5zZWxlY3RD'@; put 'ZWxsKGwsMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCwhMSk6dGhpcy5odEVkaXRvci5kZXNlbGVjdENlbGwoKX1nZXRUYXJnZXRFZGl0b3JIZWlnaHQoKXtsZXQgbD0wO2lmKCF0aGlzLmhvdC5nZXRDdXJyZW50VGhlbWVOYW1lKCkpe2NvbnN0IGg9dGhpcy5ob3Qucm9vdFdpbmRvdy5nZXRDb21w'@; put 'dXRlZFN0eWxlKHRoaXMuaHRDb250YWluZXIucXVlcnlTZWxlY3RvcigiLmh0Q29yZSIpKTtsPXBhcnNlSW50KGguYm9yZGVyVG9wV2lkdGgsMTApK3BhcnNlSW50KGguYm9yZGVyQm90dG9tV2lkdGgsMTApfWNvbnN0IGE9TWF0aC5taW4odGhpcy5jZWxsUHJvcGVydGllcy52aXNpYmxlUm93'@; put 'cyx0aGlzLnN0cmlwcGVkQ2hvaWNlcy5sZW5ndGgpO3JldHVybiBBcnJheS5mcm9tKHtsZW5ndGg6YX0sKGgsZik9PmYpLnJlZHVjZSgoaCxmKT0+aCsodGhpcy5ob3Quc3R5bGVzSGFuZGxlci5nZXREZWZhdWx0Um93SGVpZ2h0KCkrKDA9PT1mPzE6MCkpLDApK2x9Z2V0VGFyZ2V0RWRpdG9y'@; put 'V2lkdGgoKXtsZXQgbD0wO2lmKCF0aGlzLmhvdC5nZXRDdXJyZW50VGhlbWVOYW1lKCkpe2NvbnN0IGE9dGhpcy5ob3Qucm9vdFdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuaHRDb250YWluZXIucXVlcnlTZWxlY3RvcigiLmh0Q29yZSIpKTtsPXBhcnNlSW50KGEuYm9yZGVySW5saW5l'@; put 'U3RhcnRXaWR0aCwxMCkrcGFyc2VJbnQoYS5ib3JkZXJJbmxpbmVFbmRXaWR0aCwxMCl9cmV0dXJuIHRoaXMuaHRFZGl0b3IuZ2V0Q29sV2lkdGgoMCkrbH1zdHJpcFZhbHVlSWZOZWVkZWQobCl7cmV0dXJuIHRoaXMuc3RyaXBWYWx1ZXNJZk5lZWRlZChbbF0pWzBdfXN0cmlwVmFsdWVzSWZO'@; put 'ZWVkZWQobCl7Y29uc3R7YWxsb3dIdG1sOmF9PXRoaXMuY2VsbFByb3BlcnRpZXMsZD15byhsLGY9Pm9jKGYpKTtyZXR1cm4geW8oZCxmPT5hP2Y6eSQoZikpfWFsbG93S2V5RXZlbnRQcm9wYWdhdGlvbihsKXtjb25zdCBhPXRoaXMuaHRFZGl0b3IuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxk'@; put 'X3Jvdz1hP2EuZnJvbS5yb3c6LTE7bGV0IGg9ITE7cmV0dXJuIGw9PT0kYS5BUlJPV19ET1dOJiZkX3Jvdz4wJiZkX3Jvdzx0aGlzLmh0RWRpdG9yLmNvdW50Um93cygpLTEmJihoPSEwKSxsPT09JGEuQVJST1dfVVAmJmRfcm93Pi0xJiYoaD0hMCksaH1vbkJlZm9yZUtleURvd24obCl7aWYo'@; put 'ZmZlKGwua2V5Q29kZSl8fGwua2V5Q29kZT09PSRhLkJBQ0tTUEFDRXx8bC5rZXlDb2RlPT09JGEuREVMRVRFfHxsLmtleUNvZGU9PT0kYS5JTlNFUlQpe2xldCBhPTEwO2lmKGwua2V5Q29kZT09PSRhLkMmJihsLmN0cmxLZXl8fGwubWV0YUtleSkpcmV0dXJuO3RoaXMuaXNPcGVuZWQoKXx8'@; put 'KGErPTEwKSx0aGlzLmh0RWRpdG9yJiZ0aGlzLmhvdC5fcmVnaXN0ZXJUaW1lb3V0KCgpPT57dGhpcy5xdWVyeUNob2ljZXModGhpcy5URVhUQVJFQS52YWx1ZSl9LGEpfX19ZnVuY3Rpb24gUXBlKCl7dGhpcy5odEVkaXRvci52aWV3Lmhhc1ZlcnRpY2FsU2Nyb2xsKCkmJnRoaXMuaHRFZGl0'@; put 'b3IudXBkYXRlU2V0dGluZ3Moe3dpZHRoOnRoaXMuZ2V0VGFyZ2V0RWRpdG9yV2lkdGgoKStkMCh0aGlzLmhvdC5yb290RG9jdW1lbnQpfSl9Y2xhc3MgZTRlIGV4dGVuZHMga197c3RhdGljIGdldCBFRElUT1JfVFlQRSgpe3JldHVybiJjaGVja2JveCJ9YmVnaW5FZGl0aW5nKGwsYSl7aWYo'@; put 'YSYmIm1vdXNldXAiPT09YS50eXBlJiYiVEQiPT09YS50YXJnZXQubm9kZU5hbWUpe2NvbnN0IGQ9dGhpcy5URC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPSJjaGVja2JveCJdJyk7Z3MoZCwiaHRCYWRWYWx1ZSIpfHxkLmNsaWNrKCl9fWZpbmlzaEVkaXRpbmcoKXt9aW5pdCgpe31vcGVu'@; put 'KCl7fWNsb3NlKCl7fWdldFZhbHVlKCl7fXNldFZhbHVlKCl7fWZvY3VzKCl7fX1jb25zdCBabT0oKT0+d2luZG93LEoyPSgpPT53aW5kb3cuZG9jdW1lbnQsVXE9KGMsbCk9PndpbmRvdy5zZXRUaW1lb3V0KGMsbCksSHA9ZnVuY3Rpb24oYyxsLGEsZCl7Yy5hZGRFdmVudExpc3RlbmVyKGws'@; put 'YSwhIWQpfSxUZz1mdW5jdGlvbihjLGwsYSxkKXtjLnJlbW92ZUV2ZW50TGlzdGVuZXIobCxhLCEhZCl9LE9oPWZ1bmN0aW9uKGMsbCl7cmV0dXJuLTEhPT0oIiAiK2MuY2xhc3NOYW1lKyIgIikuaW5kZXhPZigiICIrbCsiICIpfSxacT1mdW5jdGlvbihjLGwpe09oKGMsbCl8fChjLmNsYXNz'@; put 'TmFtZT0iIj09PWMuY2xhc3NOYW1lP2w6Yy5jbGFzc05hbWUrIiAiK2wpfSxXcT1mdW5jdGlvbihjLGwpe2MuY2xhc3NOYW1lPWZ1bmN0aW9uKGMpe3JldHVybiBjLnRyaW0/Yy50cmltKCk6Yy5yZXBsYWNlKC9eXHMrfFxzKyQvZywiIil9KCgiICIrYy5jbGFzc05hbWUrIiAiKS5yZXBsYWNl'@; put 'KCIgIitsKyIgIiwiICIpKX0sWXE9ZnVuY3Rpb24oYyl7cmV0dXJuL0FycmF5Ly50ZXN0KE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChjKSl9LFBoPWZ1bmN0aW9uKGMpe3JldHVybi9EYXRlLy50ZXN0KE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChjKSkmJiFpc05hTihj'@; put 'LmdldFRpbWUoKSl9LGthdD1mdW5jdGlvbihjKXtsZXQgbD1jLmdldERheSgpO3JldHVybiAwPT09bHx8Nj09PWx9LERhdD1mdW5jdGlvbihjKXtyZXR1cm4gYyU0PT0wJiZjJTEwMCE9MHx8YyU0MDA9PTB9LHQ0ZT1mdW5jdGlvbihjLGwpe3JldHVyblszMSxEYXQoYyk/Mjk6MjgsMzEsMzAs'@; put 'MzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdW2xdfSwkUD1mdW5jdGlvbihjKXtQaChjKSYmYy5zZXRIb3VycygwLDAsMCwwKX0sS1A9ZnVuY3Rpb24oYyxsKXtyZXR1cm4gYy5nZXRUaW1lKCk9PT1sLmdldFRpbWUoKX0sWFA9ZnVuY3Rpb24oYyxsLGEpe2xldCBkLGg7Zm9yKGQgaW4gbCloPXZv'@; put 'aWQgMCE9PWNbZF0saCYmIm9iamVjdCI9PXR5cGVvZiBsW2RdJiZudWxsIT09bFtkXSYmdm9pZCAwPT09bFtkXS5ub2RlTmFtZT9QaChsW2RdKT9hJiYoY1tkXT1uZXcgRGF0ZShsW2RdLmdldFRpbWUoKSkpOllxKGxbZF0pP2EmJihjW2RdPWxbZF0uc2xpY2UoMCkpOmNbZF09WFAoe30sbFtk'@; put 'XSxhKTooYXx8IWgpJiYoY1tkXT1sW2RdKTtyZXR1cm4gY30sbjRlPWZ1bmN0aW9uKGMsbCxhKXtsZXQgZD1KMigpLmNyZWF0ZUV2ZW50KCJIVE1MRXZlbnRzIik7ZC5pbml0RXZlbnQobCwhMCwhMSksZD1YUChkLGEpLGMuZGlzcGF0Y2hFdmVudChkKX0scjRlPWZ1bmN0aW9uKGMpe3JldHVy'@; put 'biBjLm1vbnRoPDAmJihjLnllYXItPU1hdGguY2VpbChNYXRoLmFicyhjLm1vbnRoKS8xMiksYy5tb250aCs9MTIpLGMubW9udGg+MTEmJihjLnllYXIrPU1hdGguZmxvb3IoTWF0aC5hYnMoYy5tb250aCkvMTIpLGMubW9udGgtPTEyKSxjfSxOcD17ZmllbGQ6bnVsbCxib3VuZDp2b2lkIDAs'@; put 'YXJpYUxhYmVsOiJVc2UgdGhlIGFycm93IGtleXMgdG8gcGljayBhIGRhdGUiLHBvc2l0aW9uOiJib3R0b20gbGVmdCIscmVwb3NpdGlvbjohMCxmb3JtYXQ6IllZWVktTU0tREQiLHRvU3RyaW5nOm51bGwscGFyc2U6bnVsbCxkZWZhdWx0RGF0ZTpudWxsLHNldERlZmF1bHREYXRlOiExLGZp'@; put 'cnN0RGF5OjAsZmlyc3RXZWVrT2ZZZWFyTWluRGF5czo0LGZvcm1hdFN0cmljdDohMSxtaW5EYXRlOm51bGwsbWF4RGF0ZTpudWxsLHllYXJSYW5nZToxMCxzaG93V2Vla051bWJlcjohMSxwaWNrV2hvbGVXZWVrOiExLG1pblllYXI6MCxtYXhZZWFyOjk5OTksbWluTW9udGg6dm9pZCAwLG1h'@; put 'eE1vbnRoOnZvaWQgMCxzdGFydFJhbmdlOm51bGwsZW5kUmFuZ2U6bnVsbCxpc1JUTDohMSx5ZWFyU3VmZml4OiIiLHNob3dNb250aEFmdGVyWWVhcjohMSxzaG93RGF5c0luTmV4dEFuZFByZXZpb3VzTW9udGhzOiExLGVuYWJsZVNlbGVjdGlvbkRheXNJbk5leHRBbmRQcmV2aW91c01vbnRo'@; put 'czohMSxudW1iZXJPZk1vbnRoczoxLG1haW5DYWxlbmRhcjoibGVmdCIsY29udGFpbmVyOnZvaWQgMCxibHVyRmllbGRPblNlbGVjdDohMCxpMThuOntwcmV2aW91c01vbnRoOiJQcmV2aW91cyBNb250aCIsbmV4dE1vbnRoOiJOZXh0IE1vbnRoIixtb250aHM6WyJKYW51YXJ5IiwiRmVicnVh'@; put 'cnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLHdlZWtkYXlzOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5Iiwi'@; put 'U2F0dXJkYXkiXSx3ZWVrZGF5c1Nob3J0OlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il19LHRoZW1lOm51bGwsZXZlbnRzOltdLG9uU2VsZWN0Om51bGwsb25PcGVuOm51bGwsb25DbG9zZTpudWxsLG9uRHJhdzpudWxsLGtleWJvYXJkSW5wdXQ6ITB9LGk0ZT1m'@; put 'dW5jdGlvbihjLGwsYSl7Zm9yKGwrPWMuZmlyc3REYXk7bD49NzspbC09NztyZXR1cm4gYT9jLmkxOG4ud2Vla2RheXNTaG9ydFtsXTpjLmkxOG4ud2Vla2RheXNbbF19LElhdD1mdW5jdGlvbihjKXtsZXQgbD1bXSxhPSJmYWxzZSI7aWYoYy5pc0VtcHR5KXtpZighYy5zaG93RGF5c0luTmV4'@; put 'dEFuZFByZXZpb3VzTW9udGhzKXJldHVybic8dGQgY2xhc3M9ImlzLWVtcHR5Ij48L3RkPic7bC5wdXNoKCJpcy1vdXRzaWRlLWN1cnJlbnQtbW9udGgiKSxjLmVuYWJsZVNlbGVjdGlvbkRheXNJbk5leHRBbmRQcmV2aW91c01vbnRoc3x8bC5wdXNoKCJpcy1zZWxlY3Rpb24tZGlzYWJsZWQi'@; put 'KX1yZXR1cm4gYy5pc0Rpc2FibGVkJiZsLnB1c2goImlzLWRpc2FibGVkIiksYy5pc1RvZGF5JiZsLnB1c2goImlzLXRvZGF5IiksYy5pc1NlbGVjdGVkJiYobC5wdXNoKCJpcy1zZWxlY3RlZCIpLGE9InRydWUiKSxjLmhhc0V2ZW50JiZsLnB1c2goImhhcy1ldmVudCIpLGMuaXNJblJhbmdl'@; put 'JiZsLnB1c2goImlzLWlucmFuZ2UiKSxjLmlzU3RhcnRSYW5nZSYmbC5wdXNoKCJpcy1zdGFydHJhbmdlIiksYy5pc0VuZFJhbmdlJiZsLnB1c2goImlzLWVuZHJhbmdlIiksJzx0ZCBkYXRhLWRheT0iJytjLmRheSsnIiBjbGFzcz0iJytsLmpvaW4oIiAiKSsnIiBhcmlhLXNlbGVjdGVkPSIn'@; put 'K2ErJyI+PGJ1dHRvbiBjbGFzcz0icGlrYS1idXR0b24gcGlrYS1kYXkiIHR5cGU9ImJ1dHRvbiIgZGF0YS1waWthLXllYXI9IicrYy55ZWFyKyciIGRhdGEtcGlrYS1tb250aD0iJytjLm1vbnRoKyciIGRhdGEtcGlrYS1kYXk9IicrYy5kYXkrJyI+JytjLmRheSsiPC9idXR0b24+PC90ZD4i'@; put 'fSxMYXQ9ZnVuY3Rpb24oYyxsLGEsZCxoKXtsZXQgZj1uZXcgRGF0ZShkLGEsbCk7cmV0dXJuJzx0ZCBjbGFzcz0icGlrYS13ZWVrIj4nKyhjLmhhc01vbWVudD9jLm1vbWVudChmKS5pc29XZWVrKCk6ZnVuY3Rpb24oYyxsKXtjLnNldEhvdXJzKDAsMCwwLDApO2xldCBhPWMuZ2V0RGF0ZSgp'@; put 'LGQ9Yy5nZXREYXkoKSxoPWwsZj1oLTEsTT1mdW5jdGlvbih5ZSl7cmV0dXJuKHllKzctMSklN307Yy5zZXREYXRlKGErZi1NKGQpKTtsZXQgST1uZXcgRGF0ZShjLmdldEZ1bGxZZWFyKCksMCxoKSxyZT0oYy5nZXRUaW1lKCktSS5nZXRUaW1lKCkpLzg2NGU1O3JldHVybiAxK01hdGgucm91'@; put 'bmQoKHJlLWYrTShJLmdldERheSgpKSkvNyl9KGYsaCkpKyI8L3RkPiJ9LE9hdD1mdW5jdGlvbihjLGwsYSxkKXtyZXR1cm4nPHRyIGNsYXNzPSJwaWthLXJvdycrKGE/IiBwaWNrLXdob2xlLXdlZWsiOiIiKSsoZD8iIGlzLXNlbGVjdGVkIjoiIikrJyI+JysobD9jLnJldmVyc2UoKTpjKS5q'@; put 'b2luKCIiKSsiPC90cj4ifSxIYXQ9ZnVuY3Rpb24oYyxsLGEsZCxoLGYpe2xldCB2LE0sSSxFZSxCZSxHPWMuX28scmU9YT09PUcubWluWWVhcix1ZT1hPT09Ry5tYXhZZWFyLHllPSc8ZGl2IGlkPSInK2YrJyIgY2xhc3M9InBpa2EtdGl0bGUiIHJvbGU9ImhlYWRpbmciIGFyaWEtbGl2ZT0i'@; put 'cG9saXRlIj4nLEdlPSEwLHN0PSEwO2ZvcihJPVtdLHY9MDt2PDEyO3YrKylJLnB1c2goJzxvcHRpb24gdmFsdWU9IicrKGE9PT1oP3YtbDoxMit2LWwpKyciJysodj09PWQ/JyBzZWxlY3RlZD0ic2VsZWN0ZWQiJzoiIikrKHJlJiZ2PEcubWluTW9udGh8fHVlJiZ2PkcubWF4TW9udGg/JyBk'@; put 'aXNhYmxlZD0iZGlzYWJsZWQiJzoiIikrIj4iK0cuaTE4bi5tb250aHNbdl0rIjwvb3B0aW9uPiIpO2ZvcihFZT0nPGRpdiBjbGFzcz0icGlrYS1sYWJlbCI+JytHLmkxOG4ubW9udGhzW2RdKyc8c2VsZWN0IGNsYXNzPSJwaWthLXNlbGVjdCBwaWthLXNlbGVjdC1tb250aCIgdGFiaW5kZXg9'@; put 'Ii0xIj4nK0kuam9pbigiIikrIjwvc2VsZWN0PjwvZGl2PiIsWXEoRy55ZWFyUmFuZ2UpPyh2PUcueWVhclJhbmdlWzBdLE09Ry55ZWFyUmFuZ2VbMV0rMSk6KHY9YS1HLnllYXJSYW5nZSxNPTErYStHLnllYXJSYW5nZSksST1bXTt2PE0mJnY8PUcubWF4WWVhcjt2Kyspdj49Ry5taW5ZZWFy'@; put 'JiZJLnB1c2goJzxvcHRpb24gdmFsdWU9IicrdisnIicrKHY9PT1hPycgc2VsZWN0ZWQ9InNlbGVjdGVkIic6IiIpKyI+Iit2KyI8L29wdGlvbj4iKTtyZXR1cm4gQmU9JzxkaXYgY2xhc3M9InBpa2EtbGFiZWwiPicrYStHLnllYXJTdWZmaXgrJzxzZWxlY3QgY2xhc3M9InBpa2Etc2VsZWN0'@; put 'IHBpa2Etc2VsZWN0LXllYXIiIHRhYmluZGV4PSItMSI+JytJLmpvaW4oIiIpKyI8L3NlbGVjdD48L2Rpdj4iLHllKz1HLnNob3dNb250aEFmdGVyWWVhcj9CZStFZTpFZStCZSxyZSYmKDA9PT1kfHxHLm1pbk1vbnRoPj1kKSYmKEdlPSExKSx1ZSYmKDExPT09ZHx8Ry5tYXhNb250aDw9ZCkm'@; put 'JihzdD0hMSksMD09PWwmJih5ZSs9JzxidXR0b24gY2xhc3M9InBpa2EtcHJldicrKEdlPyIiOiIgaXMtZGlzYWJsZWQiKSsnIiB0eXBlPSJidXR0b24iPicrRy5pMThuLnByZXZpb3VzTW9udGgrIjwvYnV0dG9uPiIpLGw9PT1jLl9vLm51bWJlck9mTW9udGhzLTEmJih5ZSs9JzxidXR0b24g'@; put 'Y2xhc3M9InBpa2EtbmV4dCcrKHN0PyIiOiIgaXMtZGlzYWJsZWQiKSsnIiB0eXBlPSJidXR0b24iPicrRy5pMThuLm5leHRNb250aCsiPC9idXR0b24+IikseWUrIjwvZGl2PiJ9O2Z1bmN0aW9uIEdxKGMpe2xldCBsPXRoaXMsYT1sLmNvbmZpZyhjKTtsLl9vbk1vdXNlRG93bj1mdW5jdGlv'@; put 'bihoKXtpZighbC5fdilyZXR1cm47bGV0IGY9KGg9aHx8Wm0oKS5ldmVudCkudGFyZ2V0fHxoLnNyY0VsZW1lbnQ7aWYoZilpZihPaChmLCJpcy1kaXNhYmxlZCIpfHwoIU9oKGYsInBpa2EtYnV0dG9uIil8fE9oKGYsImlzLWVtcHR5Iil8fE9oKGYucGFyZW50Tm9kZSwiaXMtZGlzYWJsZWQi'@; put 'KT9PaChmLCJwaWthLXByZXYiKT9sLnByZXZNb250aCgpOk9oKGYsInBpa2EtbmV4dCIpJiZsLm5leHRNb250aCgpOihsLnNldERhdGUobmV3IERhdGUoZi5nZXRBdHRyaWJ1dGUoImRhdGEtcGlrYS15ZWFyIiksZi5nZXRBdHRyaWJ1dGUoImRhdGEtcGlrYS1tb250aCIpLGYuZ2V0QXR0cmli'@; put 'dXRlKCJkYXRhLXBpa2EtZGF5IikpKSxhLmJvdW5kJiZVcShmdW5jdGlvbigpe2wuaGlkZSgpLGEuYmx1ckZpZWxkT25TZWxlY3QmJmEuZmllbGQmJmEuZmllbGQuYmx1cigpfSwxMDApKSksT2goZiwicGlrYS1zZWxlY3QiKSlsLl9jPSEwO2Vsc2V7aWYoIWgucHJldmVudERlZmF1bHQpcmV0'@; put 'dXJuIGgucmV0dXJuVmFsdWU9ITEsITE7aC5wcmV2ZW50RGVmYXVsdCgpfX0sbC5fb25DaGFuZ2U9ZnVuY3Rpb24oaCl7bGV0IGY9KGg9aHx8Wm0oKS5ldmVudCkudGFyZ2V0fHxoLnNyY0VsZW1lbnQ7ZiYmKE9oKGYsInBpa2Etc2VsZWN0LW1vbnRoIik/bC5nb3RvTW9udGgoZi52YWx1ZSk6'@; put 'T2goZiwicGlrYS1zZWxlY3QteWVhciIpJiZsLmdvdG9ZZWFyKGYudmFsdWUpKX0sbC5fb25LZXlDaGFuZ2U9ZnVuY3Rpb24oaCl7aWYoaD1ofHxabSgpLmV2ZW50LGwuaXNWaXNpYmxlKCkpc3dpdGNoKGgua2V5Q29kZSl7Y2FzZSAxMzpjYXNlIDI3OmEuZmllbGQmJmEuZmllbGQuYmx1cigp'@; put 'O2JyZWFrO2Nhc2UgMzc6bC5hZGp1c3REYXRlKCJzdWJ0cmFjdCIsMSk7YnJlYWs7Y2FzZSAzODpsLmFkanVzdERhdGUoInN1YnRyYWN0Iiw3KTticmVhaztjYXNlIDM5OmwuYWRqdXN0RGF0ZSgiYWRkIiwxKTticmVhaztjYXNlIDQwOmwuYWRqdXN0RGF0ZSgiYWRkIiw3KTticmVhaztjYXNl'@; put 'IDg6Y2FzZSA0NjpsLnNldERhdGUobnVsbCl9fSxsLl9wYXJzZUZpZWxkVmFsdWU9ZnVuY3Rpb24oKXtpZihhLnBhcnNlKXJldHVybiBhLnBhcnNlKGEuZmllbGQudmFsdWUsYS5mb3JtYXQpO2lmKHRoaXMuaGFzTW9tZW50KXtsZXQgaD10aGlzLm1vbWVudChhLmZpZWxkLnZhbHVlLGEuZm9y'@; put 'bWF0LGEuZm9ybWF0U3RyaWN0KTtyZXR1cm4gaCYmaC5pc1ZhbGlkKCk/aC50b0RhdGUoKTpudWxsfXJldHVybiBuZXcgRGF0ZShEYXRlLnBhcnNlKGEuZmllbGQudmFsdWUpKX0sbC5fb25JbnB1dENoYW5nZT1mdW5jdGlvbihoKXtsZXQgZjtoLmZpcmVkQnkhPT1sJiYoZj1sLl9wYXJzZUZp'@; put 'ZWxkVmFsdWUoKSxQaChmKSYmbC5zZXREYXRlKGYpLGwuX3Z8fGwuc2hvdygpKX0sbC5fb25JbnB1dEZvY3VzPWZ1bmN0aW9uKCl7bC5zaG93KCl9LGwuX29uSW5wdXRDbGljaz1mdW5jdGlvbigpe2wuc2hvdygpfSxsLl9vbklucHV0Qmx1cj1mdW5jdGlvbigpe2xldCBoPUoyKCkuYWN0aXZl'@; put 'RWxlbWVudDtkb3tpZihPaChoLCJwaWthLXNpbmdsZSIpKXJldHVybn13aGlsZShoPWgucGFyZW50Tm9kZSk7bC5fY3x8KGwuX2I9VXEoZnVuY3Rpb24oKXtsLmhpZGUoKX0sNTApKSxsLl9jPSExfSxsLl9vbkNsaWNrPWZ1bmN0aW9uKGgpe2xldCBmPShoPWh8fFptKCkuZXZlbnQpLnRhcmdl'@; put 'dHx8aC5zcmNFbGVtZW50LHY9ZjtpZihmKXshaGFzRXZlbnRMaXN0ZW5lcnMmJk9oKGYsInBpa2Etc2VsZWN0IikmJihmLm9uY2hhbmdlfHwoZi5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwicmV0dXJuOyIpLEhwKGYsImNoYW5nZSIsbC5fb25DaGFuZ2UpKSk7ZG97aWYoT2godiwicGlrYS1z'@; put 'aW5nbGUiKXx8dj09PWEudHJpZ2dlcilyZXR1cm59d2hpbGUodj12LnBhcmVudE5vZGUpO2wuX3YmJmYhPT1hLnRyaWdnZXImJnYhPT1hLnRyaWdnZXImJmwuaGlkZSgpfX0sbC5lbD1KMigpLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGwuZWwuY2xhc3NOYW1lPSJwaWthLXNpbmdsZSIrKGEuaXNS'@; put 'VEw/IiBpcy1ydGwiOiIiKSsoYS50aGVtZT8iICIrYS50aGVtZToiIiksSHAobC5lbCwibW91c2Vkb3duIixsLl9vbk1vdXNlRG93biwhMCksSHAobC5lbCwidG91Y2hlbmQiLGwuX29uTW91c2VEb3duLCEwKSxIcChsLmVsLCJjaGFuZ2UiLGwuX29uQ2hhbmdlKSxhLmtleWJvYXJkSW5wdXQm'@; put 'JkhwKEoyKCksImtleWRvd24iLGwuX29uS2V5Q2hhbmdlKSxhLmZpZWxkJiYoYS5jb250YWluZXI/YS5jb250YWluZXIuYXBwZW5kQ2hpbGQobC5lbCk6YS5ib3VuZD9KMigpLmJvZHkuYXBwZW5kQ2hpbGQobC5lbCk6YS5maWVsZC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShsLmVsLGEuZmll'@; put 'bGQubmV4dFNpYmxpbmcpLEhwKGEuZmllbGQsImNoYW5nZSIsbC5fb25JbnB1dENoYW5nZSksYS5kZWZhdWx0RGF0ZXx8KGEuZGVmYXVsdERhdGU9bC5fcGFyc2VGaWVsZFZhbHVlKCksYS5zZXREZWZhdWx0RGF0ZT0hMCkpO2xldCBkPWEuZGVmYXVsdERhdGU7UGgoZCk/YS5zZXREZWZhdWx0'@; put 'RGF0ZT9sLnNldERhdGUoZCwhMCk6bC5nb3RvRGF0ZShkKTpsLmdvdG9EYXRlKG5ldyBEYXRlKSxhLmJvdW5kPyh0aGlzLmhpZGUoKSxsLmVsLmNsYXNzTmFtZSs9IiBpcy1ib3VuZCIsSHAoYS50cmlnZ2VyLCJjbGljayIsbC5fb25JbnB1dENsaWNrKSxIcChhLnRyaWdnZXIsImZvY3VzIixs'@; put 'Ll9vbklucHV0Rm9jdXMpLEhwKGEudHJpZ2dlciwiYmx1ciIsbC5fb25JbnB1dEJsdXIpKTp0aGlzLnNob3coKX1mdW5jdGlvbiBhNGUoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIGphdChjKXt2YXIgbD1mdW5jdGlvbiB6YXQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVy'@; put 'biBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZl'@; put 'IHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZToh'@; put 'MCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWZ1bmN0aW9uICRxKGMsbCxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhsKSlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzP2w6YTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGVsZW1lbnQgaXMgbm90IHByZXNlbnQg'@; put 'b24gdGhpcyBvYmplY3QiKX1HcS5wcm90b3R5cGU9e2NvbmZpZzpmdW5jdGlvbihjKXt0aGlzLl9vfHwodGhpcy5fbz1YUCh7fSxOcCwhMCkpO2xldCBsPVhQKHRoaXMuX28sYywhMCk7bC5pc1JUTD0hIWwuaXNSVEwsbC5maWVsZD1sLmZpZWxkJiZsLmZpZWxkLm5vZGVOYW1lP2wuZmllbGQ6'@; put 'bnVsbCxsLnRoZW1lPSJzdHJpbmciPT10eXBlb2YgbC50aGVtZSYmbC50aGVtZT9sLnRoZW1lOm51bGwsbC5ib3VuZD0hISh2b2lkIDAhPT1sLmJvdW5kP2wuZmllbGQmJmwuYm91bmQ6bC5maWVsZCksbC50cmlnZ2VyPWwudHJpZ2dlciYmbC50cmlnZ2VyLm5vZGVOYW1lP2wudHJpZ2dlcjps'@; put 'LmZpZWxkLGwuZGlzYWJsZVdlZWtlbmRzPSEhbC5kaXNhYmxlV2Vla2VuZHMsbC5kaXNhYmxlRGF5Rm49ImZ1bmN0aW9uIj09dHlwZW9mIGwuZGlzYWJsZURheUZuP2wuZGlzYWJsZURheUZuOm51bGw7bGV0IGE9cGFyc2VJbnQobC5udW1iZXJPZk1vbnRocywxMCl8fDE7aWYobC5udW1iZXJP'@; put 'Zk1vbnRocz1hPjQ/NDphLFBoKGwubWluRGF0ZSl8fChsLm1pbkRhdGU9ITEpLFBoKGwubWF4RGF0ZSl8fChsLm1heERhdGU9ITEpLGwubWluRGF0ZSYmbC5tYXhEYXRlJiZsLm1heERhdGU8bC5taW5EYXRlJiYobC5tYXhEYXRlPWwubWluRGF0ZT0hMSksbC5taW5EYXRlJiZ0aGlzLnNldE1p'@; put 'bkRhdGUobC5taW5EYXRlKSxsLm1heERhdGUmJnRoaXMuc2V0TWF4RGF0ZShsLm1heERhdGUpLFlxKGwueWVhclJhbmdlKSl7bGV0IGQ9KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpLTEwO2wueWVhclJhbmdlWzBdPXBhcnNlSW50KGwueWVhclJhbmdlWzBdLDEwKXx8ZCxsLnllYXJSYW5nZVsx'@; put 'XT1wYXJzZUludChsLnllYXJSYW5nZVsxXSwxMCl8fGR9ZWxzZSBsLnllYXJSYW5nZT1NYXRoLmFicyhwYXJzZUludChsLnllYXJSYW5nZSwxMCkpfHxOcC55ZWFyUmFuZ2UsbC55ZWFyUmFuZ2U+MTAwJiYobC55ZWFyUmFuZ2U9MTAwKTtyZXR1cm4gbH0sdG9TdHJpbmc6ZnVuY3Rpb24oYyl7'@; put 'cmV0dXJuIGM9Y3x8dGhpcy5fby5mb3JtYXQsUGgodGhpcy5fZCk/dGhpcy5fby50b1N0cmluZz90aGlzLl9vLnRvU3RyaW5nKHRoaXMuX2QsYyk6dGhpcy5oYXNNb21lbnQ/dGhpcy5tb21lbnQodGhpcy5fZCkuZm9ybWF0KGMpOnRoaXMuX2QudG9EYXRlU3RyaW5nKCk6IiJ9LGdldE1vbWVu'@; put 'dDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhhc01vbWVudD90aGlzLm1vbWVudCh0aGlzLl9kKTpudWxsfSxzZXRNb21lbnQ6ZnVuY3Rpb24oYyxsKXt0aGlzLmhhc01vbWVudCYmdGhpcy5tb21lbnQuaXNNb21lbnQoYykmJnRoaXMuc2V0RGF0ZShjLnRvRGF0ZSgpLGwpfSx1c2VNb21lbnQ6'@; put 'ZnVuY3Rpb24oYyl7dGhpcy5oYXNNb21lbnQ9ITAsdGhpcy5tb21lbnQ9Y30sZ2V0RGF0ZTpmdW5jdGlvbigpe3JldHVybiBQaCh0aGlzLl9kKT9uZXcgRGF0ZSh0aGlzLl9kLmdldFRpbWUoKSk6bnVsbH0sc2V0RGF0ZTpmdW5jdGlvbihjLGwpe2lmKCFjKXJldHVybiB0aGlzLl9kPW51bGws'@; put 'dGhpcy5fby5maWVsZCYmKHRoaXMuX28uZmllbGQudmFsdWU9IiIsbjRlKHRoaXMuX28uZmllbGQsImNoYW5nZSIse2ZpcmVkQnk6dGhpc30pKSx0aGlzLmRyYXcoKTtpZigic3RyaW5nIj09dHlwZW9mIGMmJihjPW5ldyBEYXRlKERhdGUucGFyc2UoYykpKSwhUGgoYykpcmV0dXJuO2xldCBh'@; put 'PXRoaXMuX28ubWluRGF0ZSxkPXRoaXMuX28ubWF4RGF0ZTtQaChhKSYmYzxhP2M9YTpQaChkKSYmYz5kJiYoYz1kKSx0aGlzLl9kPW5ldyBEYXRlKGMuZ2V0VGltZSgpKSwkUCh0aGlzLl9kKSx0aGlzLmdvdG9EYXRlKHRoaXMuX2QpLHRoaXMuX28uZmllbGQmJih0aGlzLl9vLmZpZWxkLnZh'@; put 'bHVlPXRoaXMudG9TdHJpbmcoKSxuNGUodGhpcy5fby5maWVsZCwiY2hhbmdlIix7ZmlyZWRCeTp0aGlzfSkpLCFsJiYiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5fby5vblNlbGVjdCYmdGhpcy5fby5vblNlbGVjdC5jYWxsKHRoaXMsdGhpcy5nZXREYXRlKCkpfSxjbGVhcjpmdW5jdGlvbigp'@; put 'e3RoaXMuc2V0RGF0ZShudWxsKX0sZ290b0RhdGU6ZnVuY3Rpb24oYyl7bGV0IGw9ITA7aWYoUGgoYykpe2lmKHRoaXMuY2FsZW5kYXJzKXtsZXQgYT1uZXcgRGF0ZSh0aGlzLmNhbGVuZGFyc1swXS55ZWFyLHRoaXMuY2FsZW5kYXJzWzBdLm1vbnRoLDEpLGQ9bmV3IERhdGUodGhpcy5jYWxl'@; put 'bmRhcnNbdGhpcy5jYWxlbmRhcnMubGVuZ3RoLTFdLnllYXIsdGhpcy5jYWxlbmRhcnNbdGhpcy5jYWxlbmRhcnMubGVuZ3RoLTFdLm1vbnRoLDEpLGg9Yy5nZXRUaW1lKCk7ZC5zZXRNb250aChkLmdldE1vbnRoKCkrMSksZC5zZXREYXRlKGQuZ2V0RGF0ZSgpLTEpLGw9aDxhLmdldFRpbWUo'@; put 'KXx8ZC5nZXRUaW1lKCk8aH1sJiYodGhpcy5jYWxlbmRhcnM9W3ttb250aDpjLmdldE1vbnRoKCkseWVhcjpjLmdldEZ1bGxZZWFyKCl9XSwicmlnaHQiPT09dGhpcy5fby5tYWluQ2FsZW5kYXImJih0aGlzLmNhbGVuZGFyc1swXS5tb250aCs9MS10aGlzLl9vLm51bWJlck9mTW9udGhzKSks'@; put 'dGhpcy5hZGp1c3RDYWxlbmRhcnMoKX19LGFkanVzdERhdGU6ZnVuY3Rpb24oYyxsKXtsZXQgaCxhPXRoaXMuZ2V0RGF0ZSgpfHxuZXcgRGF0ZSxkPTI0KnBhcnNlSW50KGwpKjYwKjYwKjFlMzsiYWRkIj09PWM/aD1uZXcgRGF0ZShhLnZhbHVlT2YoKStkKToic3VidHJhY3QiPT09YyYmKGg9'@; put 'bmV3IERhdGUoYS52YWx1ZU9mKCktZCkpLHRoaXMuc2V0RGF0ZShoKX0sYWRqdXN0Q2FsZW5kYXJzOmZ1bmN0aW9uKCl7dGhpcy5jYWxlbmRhcnNbMF09cjRlKHRoaXMuY2FsZW5kYXJzWzBdKTtmb3IobGV0IGM9MTtjPHRoaXMuX28ubnVtYmVyT2ZNb250aHM7YysrKXRoaXMuY2FsZW5kYXJz'@; put 'W2NdPXI0ZSh7bW9udGg6dGhpcy5jYWxlbmRhcnNbMF0ubW9udGgrYyx5ZWFyOnRoaXMuY2FsZW5kYXJzWzBdLnllYXJ9KTt0aGlzLmRyYXcoKX0sZ290b1RvZGF5OmZ1bmN0aW9uKCl7dGhpcy5nb3RvRGF0ZShuZXcgRGF0ZSl9LGdvdG9Nb250aDpmdW5jdGlvbihjKXtpc05hTihjKXx8KHRo'@; put 'aXMuY2FsZW5kYXJzWzBdLm1vbnRoPXBhcnNlSW50KGMsMTApLHRoaXMuYWRqdXN0Q2FsZW5kYXJzKCkpfSxuZXh0TW9udGg6ZnVuY3Rpb24oKXt0aGlzLmNhbGVuZGFyc1swXS5tb250aCsrLHRoaXMuYWRqdXN0Q2FsZW5kYXJzKCl9LHByZXZNb250aDpmdW5jdGlvbigpe3RoaXMuY2FsZW5k'@; put 'YXJzWzBdLm1vbnRoLS0sdGhpcy5hZGp1c3RDYWxlbmRhcnMoKX0sZ290b1llYXI6ZnVuY3Rpb24oYyl7aXNOYU4oYyl8fCh0aGlzLmNhbGVuZGFyc1swXS55ZWFyPXBhcnNlSW50KGMsMTApLHRoaXMuYWRqdXN0Q2FsZW5kYXJzKCkpfSxzZXRNaW5EYXRlOmZ1bmN0aW9uKGMpe2MgaW5zdGFu'@; put 'Y2VvZiBEYXRlPygkUChjKSx0aGlzLl9vLm1pbkRhdGU9Yyx0aGlzLl9vLm1pblllYXI9Yy5nZXRGdWxsWWVhcigpLHRoaXMuX28ubWluTW9udGg9Yy5nZXRNb250aCgpKToodGhpcy5fby5taW5EYXRlPU5wLm1pbkRhdGUsdGhpcy5fby5taW5ZZWFyPU5wLm1pblllYXIsdGhpcy5fby5taW5N'@; put 'b250aD1OcC5taW5Nb250aCx0aGlzLl9vLnN0YXJ0UmFuZ2U9TnAuc3RhcnRSYW5nZSksdGhpcy5kcmF3KCl9LHNldE1heERhdGU6ZnVuY3Rpb24oYyl7YyBpbnN0YW5jZW9mIERhdGU/KCRQKGMpLHRoaXMuX28ubWF4RGF0ZT1jLHRoaXMuX28ubWF4WWVhcj1jLmdldEZ1bGxZZWFyKCksdGhp'@; put 'cy5fby5tYXhNb250aD1jLmdldE1vbnRoKCkpOih0aGlzLl9vLm1heERhdGU9TnAubWF4RGF0ZSx0aGlzLl9vLm1heFllYXI9TnAubWF4WWVhcix0aGlzLl9vLm1heE1vbnRoPU5wLm1heE1vbnRoLHRoaXMuX28uZW5kUmFuZ2U9TnAuZW5kUmFuZ2UpLHRoaXMuZHJhdygpfSxzZXRTdGFydFJh'@; put 'bmdlOmZ1bmN0aW9uKGMpe3RoaXMuX28uc3RhcnRSYW5nZT1jfSxzZXRFbmRSYW5nZTpmdW5jdGlvbihjKXt0aGlzLl9vLmVuZFJhbmdlPWN9LGRyYXc6ZnVuY3Rpb24oYyl7aWYoIXRoaXMuX3YmJiFjKXJldHVybjtsZXQgTSxsPXRoaXMuX28sYT1sLm1pblllYXIsZD1sLm1heFllYXIsaD1s'@; put 'Lm1pbk1vbnRoLGY9bC5tYXhNb250aCx2PSIiO3RoaXMuX3k8PWEmJih0aGlzLl95PWEsIWlzTmFOKGgpJiZ0aGlzLl9tPGgmJih0aGlzLl9tPWgpKSx0aGlzLl95Pj1kJiYodGhpcy5feT1kLCFpc05hTihmKSYmdGhpcy5fbT5mJiYodGhpcy5fbT1mKSk7Zm9yKGxldCBJPTA7STxsLm51bWJl'@; put 'ck9mTW9udGhzO0krKylNPSJwaWthLXRpdGxlLSIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikucmVwbGFjZSgvW15hLXpdKy9nLCIiKS5zdWJzdHIoMCwyKSx2Kz0nPGRpdiBjbGFzcz0icGlrYS1sZW5kYXIiPicrSGF0KHRoaXMsSSx0aGlzLmNhbGVuZGFyc1tJXS55ZWFyLHRoaXMuY2Fs'@; put 'ZW5kYXJzW0ldLm1vbnRoLHRoaXMuY2FsZW5kYXJzWzBdLnllYXIsTSkrdGhpcy5yZW5kZXIodGhpcy5jYWxlbmRhcnNbSV0ueWVhcix0aGlzLmNhbGVuZGFyc1tJXS5tb250aCxNKSsiPC9kaXY+Ijt0aGlzLmVsLmlubmVySFRNTD12LGwuYm91bmQmJiJoaWRkZW4iIT09bC5maWVsZC50eXBl'@; put 'JiZVcShmdW5jdGlvbigpe2wudHJpZ2dlci5mb2N1cygpfSwxKSwiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5fby5vbkRyYXcmJnRoaXMuX28ub25EcmF3KHRoaXMpLGwuYm91bmQmJmwuZmllbGQuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixsLmFyaWFMYWJlbCl9LGFkanVzdFBvc2l0aW9u'@; put 'OmZ1bmN0aW9uKCl7bGV0IGMsbCxhLGQsaCxmLHYsTSxJLEcscmU7dGhpcy5fby5jb250YWluZXJ8fCh0aGlzLmVsLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsYz10aGlzLl9vLnRyaWdnZXIsbD10aGlzLmVsLm9mZnNldFdpZHRoLGE9dGhpcy5lbC5vZmZzZXRIZWlnaHQsZD1abSgpLmlu'@; put 'bmVyV2lkdGh8fEoyKCkuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoLGg9Wm0oKS5pbm5lckhlaWdodHx8SjIoKS5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0LGY9SjIoKS5ib2R5LnNjcm9sbFRvcHx8SjIoKS5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wLEc9ITAscmU9ITAsST1j'@; put 'LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHY9SS5sZWZ0K1ptKCkucGFnZVhPZmZzZXQsTT1JLmJvdHRvbStabSgpLnBhZ2VZT2Zmc2V0LCh0aGlzLl9vLnJlcG9zaXRpb24mJnYrbD5kfHx0aGlzLl9vLnBvc2l0aW9uLmluZGV4T2YoInJpZ2h0Iik+LTEmJnYtbCtjLm9mZnNldFdpZHRoPjAp'@; put 'JiYodj12LWwrYy5vZmZzZXRXaWR0aCxHPSExKSwodGhpcy5fby5yZXBvc2l0aW9uJiZNK2E+aCtmfHx0aGlzLl9vLnBvc2l0aW9uLmluZGV4T2YoInRvcCIpPi0xJiZNLWEtYy5vZmZzZXRIZWlnaHQ+MCkmJihNPU0tYS1jLm9mZnNldEhlaWdodCxyZT0hMSksdjwwJiYodj0wKSxNPDAmJihN'@; put 'PTApLHRoaXMuZWwuc3R5bGUubGVmdD12KyJweCIsdGhpcy5lbC5zdHlsZS50b3A9TSsicHgiLFpxKHRoaXMuZWwsRz8ibGVmdC1hbGlnbmVkIjoicmlnaHQtYWxpZ25lZCIpLFpxKHRoaXMuZWwscmU/ImJvdHRvbS1hbGlnbmVkIjoidG9wLWFsaWduZWQiKSxXcSh0aGlzLmVsLEc/InJpZ2h0'@; put 'LWFsaWduZWQiOiJsZWZ0LWFsaWduZWQiKSxXcSh0aGlzLmVsLHJlPyJ0b3AtYWxpZ25lZCI6ImJvdHRvbS1hbGlnbmVkIikpfSxyZW5kZXI6ZnVuY3Rpb24oYyxsLGEpe2xldCBkPXRoaXMuX28saD1uZXcgRGF0ZSxmPXQ0ZShjLGwpLHY9bmV3IERhdGUoYyxsLDEpLmdldERheSgpLE09W10s'@; put 'ST1bXTskUChoKSxkLmZpcnN0RGF5PjAmJih2LT1kLmZpcnN0RGF5LHY8MCYmKHYrPTcpKTtsZXQgRz0wPT09bD8xMTpsLTEscmU9MTE9PT1sPzA6bCsxLHVlPTA9PT1sP2MtMTpjLHllPTExPT09bD9jKzE6YyxFZT10NGUodWUsRyksQmU9Zit2LEdlPUJlO2Zvcig7R2U+NzspR2UtPTc7QmUr'@; put 'PTctR2U7bGV0IHN0PSExO2ZvcihsZXQgcHQ9MCxkdD0wO3B0PEJlO3B0Kyspe2xldCBxdD1uZXcgRGF0ZShjLGwscHQtdisxKSxtbj0hIVBoKHRoaXMuX2QpJiZLUChxdCx0aGlzLl9kKSx3bj1LUChxdCxoKSxobj0tMSE9PWQuZXZlbnRzLmluZGV4T2YocXQudG9EYXRlU3RyaW5nKCkpLE1u'@; put 'PXB0PHZ8fHB0Pj1mK3YsTXI9cHQtdisxLGtyPWwscW49Yyxncj1kLnN0YXJ0UmFuZ2UmJktQKGQuc3RhcnRSYW5nZSxxdCkscXI9ZC5lbmRSYW5nZSYmS1AoZC5lbmRSYW5nZSxxdCksX2k9ZC5zdGFydFJhbmdlJiZkLmVuZFJhbmdlJiZkLnN0YXJ0UmFuZ2U8cXQmJnF0PGQuZW5kUmFuZ2Us'@; put 'UG49ZC5taW5EYXRlJiZxdDxkLm1pbkRhdGV8fGQubWF4RGF0ZSYmcXQ+ZC5tYXhEYXRlfHxkLmRpc2FibGVXZWVrZW5kcyYma2F0KHF0KXx8ZC5kaXNhYmxlRGF5Rm4mJmQuZGlzYWJsZURheUZuKHF0KTtNbiYmKHB0PHY/KE1yPUVlK01yLGtyPUcscW49dWUpOihNci09Zixrcj1yZSxxbj15'@; put 'ZSkpLGQucGlja1dob2xlV2VlayYmbW4mJihzdD0hMCksSS5wdXNoKElhdCh7ZGF5Ok1yLG1vbnRoOmtyLHllYXI6cW4saGFzRXZlbnQ6aG4saXNTZWxlY3RlZDptbixpc1RvZGF5OnduLGlzRGlzYWJsZWQ6UG4saXNFbXB0eTpNbixpc1N0YXJ0UmFuZ2U6Z3IsaXNFbmRSYW5nZTpxcixpc0lu'@; put 'UmFuZ2U6X2ksc2hvd0RheXNJbk5leHRBbmRQcmV2aW91c01vbnRoczpkLnNob3dEYXlzSW5OZXh0QW5kUHJldmlvdXNNb250aHMsZW5hYmxlU2VsZWN0aW9uRGF5c0luTmV4dEFuZFByZXZpb3VzTW9udGhzOmQuZW5hYmxlU2VsZWN0aW9uRGF5c0luTmV4dEFuZFByZXZpb3VzTW9udGhzfSkp'@; put 'LDc9PSsrZHQmJihkLnNob3dXZWVrTnVtYmVyJiZJLnVuc2hpZnQoTGF0KHRoaXMscHQtdixsLGMsZC5maXJzdFdlZWtPZlllYXJNaW5EYXlzKSksTS5wdXNoKE9hdChJLGQuaXNSVEwsZC5waWNrV2hvbGVXZWVrLHN0KSksST1bXSxkdD0wLHN0PSExKX1yZXR1cm4gZnVuY3Rpb24oYyxsLGEp'@; put 'e3JldHVybic8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGlrYS10YWJsZSIgcm9sZT0iZ3JpZCIgYXJpYS1sYWJlbGxlZGJ5PSInK2ErJyI+JytmdW5jdGlvbihjKXtsZXQgbCxhPVtdO2ZvcihjLnNob3dXZWVrTnVtYmVyJiZhLnB1c2goIjx0aD48L3Ro'@; put 'PiIpLGw9MDtsPDc7bCsrKWEucHVzaCgnPHRoIHNjb3BlPSJjb2wiPjxhYmJyIHRpdGxlPSInK2k0ZShjLGwpKyciPicraTRlKGMsbCwhMCkrIjwvYWJicj48L3RoPiIpO3JldHVybiI8dGhlYWQ+PHRyPiIrKGMuaXNSVEw/YS5yZXZlcnNlKCk6YSkuam9pbigiIikrIjwvdHI+PC90aGVhZD4i'@; put 'fShjKStmdW5jdGlvbihjKXtyZXR1cm4iPHRib2R5PiIrYy5qb2luKCIiKSsiPC90Ym9keT4ifShsKSsiPC90YWJsZT4ifShkLE0sYSl9LGlzVmlzaWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl92fSxzaG93OmZ1bmN0aW9uKCl7dGhpcy5pc1Zpc2libGUoKXx8KHRoaXMuX3Y9ITAsdGhp'@; put 'cy5kcmF3KCksV3EodGhpcy5lbCwiaXMtaGlkZGVuIiksdGhpcy5fby5ib3VuZCYmKEhwKEoyKCksImNsaWNrIix0aGlzLl9vbkNsaWNrKSx0aGlzLmFkanVzdFBvc2l0aW9uKCkpLCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLl9vLm9uT3BlbiYmdGhpcy5fby5vbk9wZW4uY2FsbCh0aGlzKSl9'@; put 'LGhpZGU6ZnVuY3Rpb24oKXtsZXQgYz10aGlzLl92OyExIT09YyYmKHRoaXMuX28uYm91bmQmJlRnKEoyKCksImNsaWNrIix0aGlzLl9vbkNsaWNrKSx0aGlzLl9vLmNvbnRhaW5lcnx8KHRoaXMuZWwuc3R5bGUucG9zaXRpb249InN0YXRpYyIsdGhpcy5lbC5zdHlsZS5sZWZ0PSJhdXRvIix0'@; put 'aGlzLmVsLnN0eWxlLnRvcD0iYXV0byIpLFpxKHRoaXMuZWwsImlzLWhpZGRlbiIpLHRoaXMuX3Y9ITEsdm9pZCAwIT09YyYmImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMuX28ub25DbG9zZSYmdGhpcy5fby5vbkNsb3NlLmNhbGwodGhpcykpfSxkZXN0cm95OmZ1bmN0aW9uKCl7bGV0IGM9dGhp'@; put 'cy5fbzt0aGlzLmhpZGUoKSxUZyh0aGlzLmVsLCJtb3VzZWRvd24iLHRoaXMuX29uTW91c2VEb3duLCEwKSxUZyh0aGlzLmVsLCJ0b3VjaGVuZCIsdGhpcy5fb25Nb3VzZURvd24sITApLFRnKHRoaXMuZWwsImNoYW5nZSIsdGhpcy5fb25DaGFuZ2UpLGMua2V5Ym9hcmRJbnB1dCYmVGcoSjIo'@; put 'KSwia2V5ZG93biIsdGhpcy5fb25LZXlDaGFuZ2UpLGMuZmllbGQmJihUZyhjLmZpZWxkLCJjaGFuZ2UiLHRoaXMuX29uSW5wdXRDaGFuZ2UpLGMuYm91bmQmJihUZyhjLnRyaWdnZXIsImNsaWNrIix0aGlzLl9vbklucHV0Q2xpY2spLFRnKGMudHJpZ2dlciwiZm9jdXMiLHRoaXMuX29uSW5w'@; put 'dXRGb2N1cyksVGcoYy50cmlnZ2VyLCJibHVyIix0aGlzLl9vbklucHV0Qmx1cikpKSx0aGlzLmVsLnBhcmVudE5vZGUmJnRoaXMuZWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmVsKX19O2NvbnN0IHM0ZT0iZGF0ZSIsbzRlPSJkYXRlRWRpdG9yIjt2YXIgcVA9bmV3IFdlYWtTZXQ7'@; put 'Y2xhc3MgbDRlIGV4dGVuZHMgczl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGZ1bmN0aW9uIFZhdChjLGwpeyhmdW5jdGlvbiBCYXQoYyxsKXtpZihsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1l'@; put 'bnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfSkoYyxsKSxsLmFkZChjKX0odGhpcyxxUCksYTRlKHRoaXMsInBhcmVudERlc3Ryb3llZCIsITEpLGE0ZSh0aGlzLCIkZGF0ZVBpY2tlciIsbnVsbCl9c3RhdGljIGdldCBFRElUT1JfVFlQRSgpe3JldHVybiBzNGV9aW5pdCgpe2lmKCJmdW5jdGlv'@; put 'biIhPXR5cGVvZiBQcyl0aHJvdyBuZXcgRXJyb3IoIllvdSBuZWVkIHRvIGluY2x1ZGUgbW9tZW50LmpzIHRvIHlvdXIgcHJvamVjdC4iKTtzdXBlci5pbml0KCksdGhpcy5ob3QuYWRkSG9vaygiYWZ0ZXJEZXN0cm95IiwoKT0+e3RoaXMucGFyZW50RGVzdHJveWVkPSEwLHRoaXMuZGVzdHJv'@; put 'eUVsZW1lbnRzKCl9KSx0aGlzLmhvdC5hZGRIb29rKCJhZnRlclNldFRoZW1lIiwobCxhKT0+e2F8fHRoaXMuY2xvc2UoKX0pfWNyZWF0ZUVsZW1lbnRzKCl7c3VwZXIuY3JlYXRlRWxlbWVudHMoKSx0aGlzLmRhdGVQaWNrZXI9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQo'@; put 'IkRJViIpLHRoaXMuZGF0ZVBpY2tlclN0eWxlPXRoaXMuZGF0ZVBpY2tlci5zdHlsZSx0aGlzLmRhdGVQaWNrZXJTdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHRoaXMuZGF0ZVBpY2tlclN0eWxlLnRvcD0wLHRoaXMuZGF0ZVBpY2tlclN0eWxlLmxlZnQ9MCx0aGlzLmRhdGVQaWNrZXJTdHls'@; put 'ZS56SW5kZXg9OTk5OSx0aGlzLmRhdGVQaWNrZXIuc2V0QXR0cmlidXRlKCJkaXIiLHRoaXMuaG90LmlzUnRsKCk/InJ0bCI6Imx0ciIpLEVpKHRoaXMuZGF0ZVBpY2tlciwiaHREYXRlcGlja2VySG9sZGVyIiksdGhpcy5ob3Qucm9vdFBvcnRhbEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5k'@; put 'YXRlUGlja2VyKSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHRoaXMuZGF0ZVBpY2tlciwibW91c2Vkb3duIixsPT57Z3MobC50YXJnZXQsInBpa2EtZGF5IikmJnRoaXMuaGlkZURhdGVwaWNrZXIoKSxsLnN0b3BQcm9wYWdhdGlvbigpfSl9ZGVzdHJveUVsZW1lbnRzKCl7'@; put 'Y29uc3QgbD10aGlzLmRhdGVQaWNrZXIucGFyZW50Tm9kZTt0aGlzLiRkYXRlUGlja2VyJiZ0aGlzLiRkYXRlUGlja2VyLmRlc3Ryb3koKSxsJiZsLnJlbW92ZUNoaWxkKHRoaXMuZGF0ZVBpY2tlcil9cHJlcGFyZShsLGEsZCxoLGYsdil7c3VwZXIucHJlcGFyZShsLGEsZCxoLGYsdil9b3Bl'@; put 'bigpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpudWxsO2NvbnN0IGQ9dGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZWRpdG9yIik7dGhpcy5zaG93RGF0ZXBpY2tlcihsKSxzdXBlci5vcGVuKCks'@; put 'ZC5hZGRTaG9ydGN1dHMoW3trZXlzOltbIkFycm93TGVmdCJdXSxjYWxsYmFjazooKT0+e3RoaXMuJGRhdGVQaWNrZXIuYWRqdXN0RGF0ZSgic3VidHJhY3QiLDEpfX0se2tleXM6W1siQXJyb3dSaWdodCJdXSxjYWxsYmFjazooKT0+e3RoaXMuJGRhdGVQaWNrZXIuYWRqdXN0RGF0ZSgiYWRk'@; put 'IiwxKX19LHtrZXlzOltbIkFycm93VXAiXV0sY2FsbGJhY2s6KCk9Pnt0aGlzLiRkYXRlUGlja2VyLmFkanVzdERhdGUoInN1YnRyYWN0Iiw3KX19LHtrZXlzOltbIkFycm93RG93biJdXSxjYWxsYmFjazooKT0+e3RoaXMuJGRhdGVQaWNrZXIuYWRqdXN0RGF0ZSgiYWRkIiw3KX19XSx7Z3Jv'@; put 'dXA6bzRlfSl9Y2xvc2UoKXt2YXIgbDtudWxsIT09KGw9dGhpcy4kZGF0ZVBpY2tlcikmJnZvaWQgMCE9PWwmJmwuZGVzdHJveSYmdGhpcy4kZGF0ZVBpY2tlci5kZXN0cm95KCksdGhpcy5ob3QuX3JlZ2lzdGVyVGltZW91dCgoKT0+e2NvbnN0IGg9dGhpcy5ob3QuX2dldEVkaXRvck1hbmFn'@; put 'ZXIoKTtoLmNsb3NlRWRpdG9yKCksdGhpcy5ob3Qudmlldy5yZW5kZXIoKSxoLnByZXBhcmVFZGl0b3IoKX0pLHRoaXMuaG90LmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImVkaXRvciIpLnJlbW92ZVNob3J0Y3V0c0J5R3JvdXAobzRlKSxzdXBlci5jbG9zZSgpfWZpbmlzaEVk'@; put 'aXRpbmcoKXtzdXBlci5maW5pc2hFZGl0aW5nKGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0sYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXSl9c2hvd0RhdGVwaWNrZXIobCl7Y29uc3Qg'@; put 'YT0kcShxUCx0aGlzLEtxKS5jYWxsKHRoaXMpLGQ9dGhpcy5ob3Qudmlldy5pc01vdXNlRG93bigpLGg9ISFsJiZWJChsLmtleUNvZGUpO2xldCBmO3RoaXMuZGF0ZVBpY2tlci5zdHlsZS5kaXNwbGF5PSJibG9jayIsdGhpcy4kZGF0ZVBpY2tlcj1uZXcgR3EodGhpcy5nZXREYXRlUGlja2Vy'@; put 'Q29uZmlnKCkpLCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLiRkYXRlUGlja2VyLnVzZU1vbWVudCYmdGhpcy4kZGF0ZVBpY2tlci51c2VNb21lbnQoUHMpLHRoaXMuJGRhdGVQaWNrZXIuX29uSW5wdXRGb2N1cz1mdW5jdGlvbigpe30sdGhpcy5vcmlnaW5hbFZhbHVlPyhmPXRoaXMub3JpZ2lu'@; put 'YWxWYWx1ZSxQcyhmLGEsITApLmlzVmFsaWQoKSYmdGhpcy4kZGF0ZVBpY2tlci5zZXRNb21lbnQoUHMoZixhKSwhMCksdGhpcy5nZXRWYWx1ZSgpIT09dGhpcy5vcmlnaW5hbFZhbHVlJiZ0aGlzLnNldFZhbHVlKHRoaXMub3JpZ2luYWxWYWx1ZSksIWgmJiFkJiZ0aGlzLnNldFZhbHVlKCIi'@; put 'KSk6dGhpcy5jZWxsUHJvcGVydGllcy5kZWZhdWx0RGF0ZT8oZj10aGlzLmNlbGxQcm9wZXJ0aWVzLmRlZmF1bHREYXRlLFBzKGYsYSwhMCkuaXNWYWxpZCgpJiZ0aGlzLiRkYXRlUGlja2VyLnNldE1vbWVudChQcyhmLGEpLCEwKSwhaCYmIWQmJnRoaXMuc2V0VmFsdWUoIiIpKTp0aGlzLiRk'@; put 'YXRlUGlja2VyLmdvdG9Ub2RheSgpfWhpZGVEYXRlcGlja2VyKCl7dGhpcy5kYXRlUGlja2VyU3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy4kZGF0ZVBpY2tlci5oaWRlKCl9Z2V0RGF0ZVBpY2tlckNvbmZpZygpe3ZhciBsO2NvbnN0IGE9dGhpcy5URVhUQVJFQSxkPXt9O3RoaXMuY2VsbFBy'@; put 'b3BlcnRpZXMmJnRoaXMuY2VsbFByb3BlcnRpZXMuZGF0ZVBpY2tlckNvbmZpZyYmd0UoZCx0aGlzLmNlbGxQcm9wZXJ0aWVzLmRhdGVQaWNrZXJDb25maWcpO2NvbnN0IGg9ZC5vblNlbGVjdCxmPWQub25DbG9zZTtyZXR1cm4gZC5maWVsZD1hLGQudHJpZ2dlcj1hLGQuY29udGFpbmVyPXRo'@; put 'aXMuZGF0ZVBpY2tlcixkLmJvdW5kPSExLGQua2V5Ym9hcmRJbnB1dD0hMSxkLmZvcm1hdD1udWxsIT09KGw9ZC5mb3JtYXQpJiZ2b2lkIDAhPT1sP2w6JHEocVAsdGhpcyxLcSkuY2FsbCh0aGlzKSxkLnJlcG9zaXRpb249ZC5yZXBvc2l0aW9ufHwhMSxkLmlzUlRMPSExLGQub25TZWxlY3Q9'@; put 'dj0+e2xldCBNPXY7aXNOYU4oTS5nZXRUaW1lKCkpfHwoTT1QcyhNKS5mb3JtYXQoJHEocVAsdGhpcyxLcSkuY2FsbCh0aGlzKSkpLHRoaXMuc2V0VmFsdWUoTSksaCYmaCgpLG8zKCkmJnRoaXMuaGlkZURhdGVwaWNrZXIoKX0sZC5vbkNsb3NlPSgpPT57dGhpcy5wYXJlbnREZXN0cm95ZWR8'@; put 'fHRoaXMuZmluaXNoRWRpdGluZyghMSksZiYmZigpfSxkfXJlZnJlc2hEaW1lbnNpb25zKGwpe3ZhciBhO2lmKHN1cGVyLnJlZnJlc2hEaW1lbnNpb25zKGwpLHRoaXMuc3RhdGUhPT1hdS5FRElUSU5HKXJldHVybjtpZih0aGlzLlREPXRoaXMuZ2V0RWRpdGVkQ2VsbCgpLCF0aGlzLlREKXJl'@; put 'dHVybiB2b2lkIHRoaXMuaGlkZURhdGVwaWNrZXIoKTtjb25zdHtyb3dJbmRleE1hcHBlcjpkLGNvbHVtbkluZGV4TWFwcGVyOmh9PXRoaXMuaG90LHt3dE92ZXJsYXlzOmZ9PXRoaXMuaG90LnZpZXcuX3d0LHt3dFRhYmxlOnZ9PW51bGwhPT0oYT1mLmdldFBhcmVudE92ZXJsYXkodGhpcy5U'@; put 'RCkpJiZ2b2lkIDAhPT1hP2E6dGhpcy5ob3Qudmlldy5fd3QsTT1kLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgodi5nZXRGaXJzdFBhcnRpYWxseVZpc2libGVSb3coKSksST1kLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgodi5nZXRMYXN0UGFydGlhbGx5VmlzaWJsZVJvdygp'@; put 'KSxHPWguZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleCh2LmdldEZpcnN0UGFydGlhbGx5VmlzaWJsZUNvbHVtbigpKSxyZT1oLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgodi5nZXRMYXN0UGFydGlhbGx5VmlzaWJsZUNvbHVtbigpKTtpZih0aGlzLnJvdz49TSYmdGhpcy5yb3c8'@; put 'PUkmJnRoaXMuY29sPj1HJiZ0aGlzLmNvbDw9cmUpe2NvbnN0IHVlPXRoaXMuVEQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5kYXRlUGlja2VyU3R5bGUudG9wPWAke3RoaXMuaG90LnJvb3RXaW5kb3cucGFnZVlPZmZzZXQrdWUudG9wK1N1KHRoaXMuVEQpfXB4YDtsZXQgeWU9dGhp'@; put 'cy5ob3Qucm9vdFdpbmRvdy5wYWdlWE9mZnNldDt0aGlzLmhvdC5pc1J0bCgpP3llKz11ZS5yaWdodC1pdSh0aGlzLmRhdGVQaWNrZXIpOnllKz11ZS5sZWZ0LHRoaXMuZGF0ZVBpY2tlclN0eWxlLmxlZnQ9YCR7eWV9cHhgfWVsc2UgdGhpcy5oaWRlRGF0ZXBpY2tlcigpfX1mdW5jdGlvbiBL'@; put 'cSgpe3ZhciBjO3JldHVybiBudWxsIT09KGM9dGhpcy5jZWxsUHJvcGVydGllcy5kYXRlRm9ybWF0KSYmdm9pZCAwIT09Yz9jOiJERC9NTS9ZWVlZIn1jbGFzcyBjNGUgZXh0ZW5kcyB6cXtzdGF0aWMgZ2V0IEVESVRPUl9UWVBFKCl7cmV0dXJuImRyb3Bkb3duIn1wcmVwYXJlKGwsYSxkLGgs'@; put 'Zix2KXt2LmZpbHRlcj0hMSx2LnN0cmljdD0hMCxzdXBlci5wcmVwYXJlKGwsYSxkLGgsZix2KX19Y2xhc3MgdTRlIGV4dGVuZHMgczl7c3RhdGljIGdldCBFRElUT1JfVFlQRSgpe3JldHVybiJudW1lcmljIn19Y2xhc3MgZDRlIGV4dGVuZHMgczl7Y29uc3RydWN0b3IoKXtzdXBlciguLi5h'@; put 'cmd1bWVudHMpLGZ1bmN0aW9uIFlhdChjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gR2F0KGMpe3ZhciBsPWZ1bmN0aW9uICRhdChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEu'@; put 'Y2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3Ry'@; put 'aW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9KHRoaXMsImF1dG9SZXNpemUiLFpwZSh0aGlzLmhv'@; put 'dC5yb290RG9jdW1lbnQse3RleHRDb250ZW50Omw9PiJcdTIwMjIiLnJlcGVhdChsLnZhbHVlLmxlbmd0aCl9KSl9c3RhdGljIGdldCBFRElUT1JfVFlQRSgpe3JldHVybiJwYXNzd29yZCJ9Y3JlYXRlRWxlbWVudHMoKXtzdXBlci5jcmVhdGVFbGVtZW50cygpLHRoaXMuVEVYVEFSRUE9dGhp'@; put 'cy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IiksdGhpcy5URVhUQVJFQS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJwYXNzd29yZCIpLHRoaXMuVEVYVEFSRUEuc2V0QXR0cmlidXRlKCJkYXRhLWhvdC1pbnB1dCIsIiIpLHRoaXMuVEVYVEFSRUEuY2xhc3NOYW1lPSJoYW5k'@; put 'c29udGFibGVJbnB1dCIsdGhpcy50ZXh0YXJlYVN0eWxlPXRoaXMuVEVYVEFSRUEuc3R5bGUsdGhpcy50ZXh0YXJlYVN0eWxlLndpZHRoPTAsdGhpcy50ZXh0YXJlYVN0eWxlLmhlaWdodD0wLEFwKHRoaXMuVEVYVEFSRUFfUEFSRU5UKSx0aGlzLlRFWFRBUkVBLnNldEF0dHJpYnV0ZSguLi5r'@; put 'bSgtMSkpLHRoaXMuVEVYVEFSRUFfUEFSRU5ULmFwcGVuZENoaWxkKHRoaXMuVEVYVEFSRUEpfX1jb25zdCBYcT0iaHRfZWRpdG9yX3Zpc2libGUiLGg0ZT0ic2VsZWN0RWRpdG9yIjtjbGFzcyBmNGUgZXh0ZW5kcyBrX3tzdGF0aWMgZ2V0IEVESVRPUl9UWVBFKCl7cmV0dXJuInNlbGVjdCJ9'@; put 'aW5pdCgpe3RoaXMuc2VsZWN0V3JhcHBlcj10aGlzLmhvdC5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5zZWxlY3Q9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLHRoaXMuc2VsZWN0LnNldEF0dHJpYnV0ZSgiZGF0YS1ob3QtaW5w'@; put 'dXQiLCJ0cnVlIiksdGhpcy5zZWxlY3RXcmFwcGVyLnN0eWxlLmRpc3BsYXk9Im5vbmUiO2NvbnN0IGw9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpLGE9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5hcmlhVGFncztsLmNsYXNzTmFtZT0iaHRBdXRvY29tcGxldGVB'@; put 'cnJvdyIsYSYmbC5zZXRBdHRyaWJ1dGUoLi4uTjcoKSksbC5hcHBlbmRDaGlsZCh0aGlzLmhvdC5yb290RG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlx1MjViYyIpKSxFaSh0aGlzLnNlbGVjdFdyYXBwZXIsImh0U2VsZWN0RWRpdG9yIiksdGhpcy5zZWxlY3RXcmFwcGVyLmFwcGVuZENoaWxk'@; put 'KHRoaXMuc2VsZWN0KSx0aGlzLnNlbGVjdFdyYXBwZXIuaW5zZXJ0QmVmb3JlKGwsdGhpcy5zZWxlY3RXcmFwcGVyLmZpcnN0Q2hpbGQpLHRoaXMuaG90LnJvb3RFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuc2VsZWN0V3JhcHBlciksdGhpcy5yZWdpc3Rlckhvb2tzKCl9Z2V0VmFsdWUoKXty'@; put 'ZXR1cm4gdGhpcy5zZWxlY3QudmFsdWV9c2V0VmFsdWUobCl7dGhpcy5zZWxlY3QudmFsdWU9bH1vcGVuKCl7dGhpcy5fb3BlbmVkPSEwLHRoaXMucmVmcmVzaERpbWVuc2lvbnMoKSx0aGlzLnNlbGVjdFdyYXBwZXIuc3R5bGUuZGlzcGxheT0iIix0aGlzLmhvdC5nZXRTaG9ydGN1dE1hbmFn'@; put 'ZXIoKS5zZXRBY3RpdmVDb250ZXh0TmFtZSgiZWRpdG9yIiksdGhpcy5yZWdpc3RlclNob3J0Y3V0cygpfWNsb3NlKCl7dGhpcy5fb3BlbmVkPSExLHRoaXMuc2VsZWN0V3JhcHBlci5zdHlsZS5kaXNwbGF5PSJub25lIixncyh0aGlzLnNlbGVjdFdyYXBwZXIsWHEpJiZocyh0aGlzLnNlbGVj'@; put 'dFdyYXBwZXIsWHEpLHRoaXMudW5yZWdpc3RlclNob3J0Y3V0cygpLHRoaXMuY2xlYXJIb29rcygpfWZvY3VzKCl7dGhpcy5zZWxlY3QuZm9jdXMoKX1yZWdpc3Rlckhvb2tzKCl7dGhpcy5hZGRIb29rKCJhZnRlclNjcm9sbEhvcml6b250YWxseSIsKCk9PnRoaXMucmVmcmVzaERpbWVuc2lv'@; put 'bnMoKSksdGhpcy5hZGRIb29rKCJhZnRlclNjcm9sbFZlcnRpY2FsbHkiLCgpPT50aGlzLnJlZnJlc2hEaW1lbnNpb25zKCkpLHRoaXMuYWRkSG9vaygiYWZ0ZXJDb2x1bW5SZXNpemUiLCgpPT50aGlzLnJlZnJlc2hEaW1lbnNpb25zKCkpLHRoaXMuYWRkSG9vaygiYWZ0ZXJSb3dSZXNpemUi'@; put 'LCgpPT50aGlzLnJlZnJlc2hEaW1lbnNpb25zKCkpfXByZXBhcmUobCxhLGQsaCxmLHYpe3N1cGVyLnByZXBhcmUobCxhLGQsaCxmLHYpO2NvbnN0IE09dGhpcy5jZWxsUHJvcGVydGllcy5zZWxlY3RPcHRpb25zO2xldCBJO0k9dGhpcy5wcmVwYXJlT3B0aW9ucygiZnVuY3Rpb24iPT10eXBl'@; put 'b2YgTT9NKHRoaXMucm93LHRoaXMuY29sLHRoaXMucHJvcCk6TSksQXAodGhpcy5zZWxlY3QpLHFzKEksKEcscmUpPT57Y29uc3QgdWU9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpO3VlLnZhbHVlPXJlLGo3KHVlLEcpLHRoaXMuc2VsZWN0LmFwcGVuZENo'@; put 'aWxkKHVlKX0pfXByZXBhcmVPcHRpb25zKGwpe2xldCBhPXt9O2lmKEFycmF5LmlzQXJyYXkobCkpZm9yKGxldCBkPTAsaD1sLmxlbmd0aDtkPGg7ZCsrKWFbbFtkXV09bFtkXTtlbHNlIm9iamVjdCI9PXR5cGVvZiBsJiYoYT1sKTtyZXR1cm4gYX1yZWZyZXNoVmFsdWUoKXtjb25zdCBsPXRo'@; put 'aXMuaG90LmdldFNvdXJjZURhdGFBdENlbGwodGhpcy5yb3csdGhpcy5wcm9wKTt0aGlzLm9yaWdpbmFsVmFsdWU9bCx0aGlzLnNldFZhbHVlKGwpLHRoaXMucmVmcmVzaERpbWVuc2lvbnMoKX1yZWZyZXNoRGltZW5zaW9ucygpe2lmKHRoaXMuc3RhdGUhPT1hdS5FRElUSU5HKXJldHVybjtp'@; put 'Zih0aGlzLlREPXRoaXMuZ2V0RWRpdGVkQ2VsbCgpLCF0aGlzLlREKXJldHVybiB2b2lkIHRoaXMuY2xvc2UoKTtjb25zdHt0b3A6bCxzdGFydDphLHdpZHRoOmQsaGVpZ2h0Omh9PXRoaXMuZ2V0RWRpdGVkQ2VsbFJlY3QoKSxmPXRoaXMuc2VsZWN0V3JhcHBlci5zdHlsZTtmLmhlaWdodD1g'@; put 'JHtofXB4YCxmLndpZHRoPWAke2R9cHhgLGYudG9wPWAke2x9cHhgLGZbdGhpcy5ob3QuaXNSdGwoKT8icmlnaHQiOiJsZWZ0Il09YCR7YX1weGAsZi5tYXJnaW49IjBweCIsRWkodGhpcy5zZWxlY3RXcmFwcGVyLFhxKX1yZWdpc3RlclNob3J0Y3V0cygpe2NvbnN0IGE9dGhpcy5ob3QuZ2V0'@; put 'U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZWRpdG9yIiksZD17Z3JvdXA6aDRlfTt0aGlzLmlzSW5GdWxsRWRpdE1vZGUoKSYmYS5hZGRTaG9ydGN1dHMoW3trZXlzOltbIkFycm93VXAiXV0sY2FsbGJhY2s6KCk9Pntjb25zdCBoPXRoaXMuc2VsZWN0LnNlbGVjdGVkSW5kZXgtMTto'@; put 'Pj0wJiYodGhpcy5zZWxlY3RbaF0uc2VsZWN0ZWQ9ITApfX0se2tleXM6W1siQXJyb3dEb3duIl1dLGNhbGxiYWNrOigpPT57Y29uc3QgaD10aGlzLnNlbGVjdC5zZWxlY3RlZEluZGV4KzE7aDw9dGhpcy5zZWxlY3QubGVuZ3RoLTEmJih0aGlzLnNlbGVjdFtoXS5zZWxlY3RlZD0hMCl9fV0s'@; put 'ZCl9dW5yZWdpc3RlclNob3J0Y3V0cygpe3RoaXMuaG90LmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImVkaXRvciIpLnJlbW92ZVNob3J0Y3V0c0J5R3JvdXAoaDRlKX19Y2xhc3MgcDRlIGV4dGVuZHMgczl7c3RhdGljIGdldCBFRElUT1JfVFlQRSgpe3JldHVybiJ0aW1lIn1w'@; put 'cmVwYXJlKGwsYSxkLGgsZix2KXtzdXBlci5wcmVwYXJlKGwsYSxkLGgsZix2KSx0aGlzLlRFWFRBUkVBLmRpcj0ibHRyIn19ZnVuY3Rpb24gcXEoYyxsLGEsZCxoLGYsdil7Y1QuYXBwbHkodGhpcyxbYyxsLGEsZCxoLGYsdl0pLGo3KGwsZj8/IiIsITEpfWZ1bmN0aW9uIElfKGMsbCxhLGQs'@; put 'aCxmLHYpe2NvbnN0e3Jvb3REb2N1bWVudDpNfT1jLEk9di5hbGxvd0h0bWw/cXE6RWcsRz1NLmNyZWF0ZUVsZW1lbnQoIkRJViIpLHJlPWMuZ2V0U2V0dGluZ3MoKS5hcmlhVGFncztpZihHLmNsYXNzTmFtZT0iaHRBdXRvY29tcGxldGVBcnJvdyIscmUmJkcuc2V0QXR0cmlidXRlKC4uLk43'@; put 'KCkpLEcuYXBwZW5kQ2hpbGQoTS5jcmVhdGVUZXh0Tm9kZSgiXHUyNWJjIikpLEkuYXBwbHkodGhpcyxbYyxsLGEsZCxoLGYsdl0pLGwuZmlyc3RDaGlsZHx8bC5hcHBlbmRDaGlsZChNLmNyZWF0ZVRleHROb2RlKCJceGEwIikpLGwuaW5zZXJ0QmVmb3JlKEcsbC5maXJzdENoaWxkKSxFaShs'@; put 'LCJodEF1dG9jb21wbGV0ZSIpLCFjLmFjQXJyb3dMaXN0ZW5lcil7Y29uc3QgdWU9bmV3IFoyKGMpO2MuYWNBcnJvd0xpc3RlbmVyPWZ1bmN0aW9uKHllKXtncyh5ZS50YXJnZXQsImh0QXV0b2NvbXBsZXRlQXJyb3ciKSYmYy52aWV3Ll93dC5nZXRTZXR0aW5nKCJvbkNlbGxEYmxDbGljayIs'@; put 'bnVsbCxjLl9jcmVhdGVDZWxsQ29vcmRzKGEsZCksbCl9LHVlLmFkZEV2ZW50TGlzdGVuZXIoYy5yb290RWxlbWVudCwibW91c2Vkb3duIixjLmFjQXJyb3dMaXN0ZW5lciksYy5hZGRIb29rT25jZSgiYWZ0ZXJEZXN0cm95IiwoKT0+e3VlLmRlc3Ryb3koKX0pfX1mdW5jdGlvbiBKcShjLGws'@; put 'YSxkLGgsZix2KXtJXy5hcHBseSh0aGlzLFtjLGwsYSxkLGgsZix2XSl9cXEuUkVOREVSRVJfVFlQRT0iaHRtbCIsSV8uUkVOREVSRVJfVFlQRT0iYXV0b2NvbXBsZXRlIixKcS5SRU5ERVJFUl9UWVBFPSJkcm9wZG93biI7Y29uc3QgZzRlPW5ldyBXZWFrTWFwLG00ZT1uZXcgV2Vha01hcCxu'@; put 'c3Q9Imh0QmFkVmFsdWUiLFJfPSJkYXRhLXJvdyIsTF89ImRhdGEtY29sIixyc3Q9ImNoZWNrYm94UmVuZGVyZXIiO2Z1bmN0aW9uIFFxKGMsbCxhLGQsaCxmLHYpe2NvbnN0e3Jvb3REb2N1bWVudDpNfT1jLEk9Yy5nZXRTZXR0aW5ncygpLmFyaWFUYWdzO2NULmFwcGx5KHRoaXMsW2MsbCxh'@; put 'LGQsaCxmLHZdKSxmdW5jdGlvbiBpc3QoYyl7bGV0IGw9bTRlLmdldChjKTtpZighbCl7Y29uc3R7cm9vdEVsZW1lbnQ6YX09YztsPW5ldyBaMihjKSxsLmFkZEV2ZW50TGlzdGVuZXIoYSwiY2xpY2siLGQ9PmZ1bmN0aW9uIGxzdChjLGwpe2NvbnN0e3RhcmdldDphfT1jO2lmKCFlSihhKXx8'@; put 'IWEuaGFzQXR0cmlidXRlKFJfKXx8IWEuaGFzQXR0cmlidXRlKExfKSlyZXR1cm47Y29uc3QgZD1wYXJzZUludChhLmdldEF0dHJpYnV0ZShSXyksMTApLGg9cGFyc2VJbnQoYS5nZXRBdHRyaWJ1dGUoTF8pLDEwKTtsLmdldENlbGxNZXRhKGQsaCkucmVhZE9ubHkmJmMucHJldmVudERlZmF1'@; put 'bHQoKX0oZCxjKSksbC5hZGRFdmVudExpc3RlbmVyKGEsIm1vdXNldXAiLGQ9PmZ1bmN0aW9uIG9zdChjLGwpe2NvbnN0e3RhcmdldDphfT1jO2VKKGEpJiYoIWEuaGFzQXR0cmlidXRlKFJfKXx8IWEuaGFzQXR0cmlidXRlKExfKXx8c2V0VGltZW91dChsLmxpc3RlbiwxMCkpfShkLGMpKSxs'@; put 'LmFkZEV2ZW50TGlzdGVuZXIoYSwiY2hhbmdlIixkPT5mdW5jdGlvbiBjc3QoYyxsKXtjb25zdHt0YXJnZXQ6YX09YztpZighZUooYSl8fCFhLmhhc0F0dHJpYnV0ZShSXyl8fCFhLmhhc0F0dHJpYnV0ZShMXykpcmV0dXJuO2NvbnN0IGQ9cGFyc2VJbnQoYS5nZXRBdHRyaWJ1dGUoUl8pLDEw'@; put 'KSxoPXBhcnNlSW50KGEuZ2V0QXR0cmlidXRlKExfKSwxMCksZj1sLmdldENlbGxNZXRhKGQsaCk7aWYoIWYucmVhZE9ubHkpe2xldCB2PW51bGw7dj1jLnRhcmdldC5jaGVja2VkP3ZvaWQgMD09PWYudW5jaGVja2VkVGVtcGxhdGV8fGYuY2hlY2tlZFRlbXBsYXRlOnZvaWQgMCE9PWYudW5j'@; put 'aGVja2VkVGVtcGxhdGUmJmYudW5jaGVja2VkVGVtcGxhdGUsbC5zZXREYXRhQXRDZWxsKGQsaCx2KX19KGQsYykpLG00ZS5zZXQoYyxsKX19KGMpO2xldCBHPWZ1bmN0aW9uIGFzdChjKXtjb25zdCBsPWMuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTtyZXR1cm4gbC5jbGFzc05hbWU9Imh0Q2hl'@; put 'Y2tib3hSZW5kZXJlcklucHV0IixsLnR5cGU9ImNoZWNrYm94IixsLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCItMSIpLGwuY2xvbmVOb2RlKCExKX0oTSk7Y29uc3QgcmU9di5sYWJlbDtsZXQgdWU9ITE7aWYodHlwZW9mIHYuY2hlY2tlZFRlbXBsYXRlPiJ1IiYmKHYuY2hlY2tlZFRlbXBs'@; put 'YXRlPSEwKSx0eXBlb2Ygdi51bmNoZWNrZWRUZW1wbGF0ZT4idSImJih2LnVuY2hlY2tlZFRlbXBsYXRlPSExKSxBcChsKSxmPT09di5jaGVja2VkVGVtcGxhdGV8fG9jKGYpLnRvTG9jYWxlTG93ZXJDYXNlKHYubG9jYWxlKT09PW9jKHYuY2hlY2tlZFRlbXBsYXRlKS50b0xvY2FsZUxvd2Vy'@; put 'Q2FzZSh2LmxvY2FsZSk/Ry5jaGVja2VkPSEwOmY9PT12LnVuY2hlY2tlZFRlbXBsYXRlfHxvYyhmKS50b0xvY2FsZUxvd2VyQ2FzZSh2LmxvY2FsZSk9PT1vYyh2LnVuY2hlY2tlZFRlbXBsYXRlKS50b0xvY2FsZUxvd2VyQ2FzZSh2LmxvY2FsZSk/Ry5jaGVja2VkPSExOmpjKGYpP0VpKEcs'@; put 'Im5vVmFsdWUiKTooRy5zdHlsZS5kaXNwbGF5PSJub25lIixFaShHLG5zdCksdWU9ITApLG1zKEcsW1tSXyxhXSxbTF8sZF1dKSxJJiZtcyhHLFtuXyhjLmdldFRyYW5zbGF0ZWRQaHJhc2UoRy5jaGVja2VkP2hxOmZxKSksejJlKEcuY2hlY2tlZCksZHFlKCldKSwhdWUmJnJlKXtsZXQgR2U9'@; put 'IiI7aWYocmUudmFsdWUpR2U9ImZ1bmN0aW9uIj09dHlwZW9mIHJlLnZhbHVlP3JlLnZhbHVlLmNhbGwodGhpcyxhLGQsaCxmKTpyZS52YWx1ZTtlbHNlIGlmKHJlLnByb3BlcnR5KXtjb25zdCBwdD1jLmdldERhdGFBdFJvd1Byb3AoYSxyZS5wcm9wZXJ0eSk7R2U9bnVsbCE9PXB0P3B0OiIi'@; put 'fWNvbnN0IHN0PWZ1bmN0aW9uIHNzdChjLGwsYSl7Y29uc3QgZD1jLmNyZWF0ZUVsZW1lbnQoImxhYmVsIik7ZC5jbGFzc05hbWU9Imh0Q2hlY2tib3hSZW5kZXJlckxhYmVsICIrKGE/ImZ1bGxXaWR0aCI6IiIpO2NvbnN0IGg9Yy5jcmVhdGVUZXh0Tm9kZShsKTtpZihhKXtjb25zdCBmPWMu'@; put 'Y3JlYXRlRWxlbWVudCgic3BhbiIpO2YuYXBwZW5kQ2hpbGQoaCksZC5hcHBlbmRDaGlsZChmKX1lbHNlIGQuYXBwZW5kQ2hpbGQoaCk7cmV0dXJuIGQuY2xvbmVOb2RlKCEwKX0oTSxHZSwhMCE9PXJlLnNlcGFyYXRlZCk7ImJlZm9yZSI9PT1yZS5wb3NpdGlvbj9yZS5zZXBhcmF0ZWQ/KGwu'@; put 'YXBwZW5kQ2hpbGQoc3QpLGwuYXBwZW5kQ2hpbGQoRykpOihzdC5hcHBlbmRDaGlsZChHKSxHPXN0KTooIXJlLnBvc2l0aW9ufHwiYWZ0ZXIiPT09cmUucG9zaXRpb24pJiYocmUuc2VwYXJhdGVkPyhsLmFwcGVuZENoaWxkKEcpLGwuYXBwZW5kQ2hpbGQoc3QpKTooc3QuaW5zZXJ0QmVmb3Jl'@; put 'KEcsc3QuZmlyc3RDaGlsZCksRz1zdCkpfWZ1bmN0aW9uIEVlKCl7bGV0IEdlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07Y29uc3Qgc3Q9Yy5nZXRTZWxlY3RlZFJhbmdlKCkscHQ9W10sZHQ9bmV3IE1hcDtsZXQgcXQ9W10sbW49MDtp'@; put 'ZihzdCl7Zm9yKGxldCB3bj0wO3duPHN0Lmxlbmd0aDt3bisrKXtjb25zdHtyb3c6aG4sY29sOk1ufT1zdFt3bl0uZ2V0VG9wU3RhcnRDb3JuZXIoKSx7cm93Ok1yLGNvbDprcn09c3Rbd25dLmdldEJvdHRvbUVuZENvcm5lcigpO2ZvcihsZXQgcW49aG47cW48PU1yO3FuKz0xKWZvcihsZXQg'@; put 'Z3I9TW47Z3I8PWtyO2dyKz0xKXtjb25zdCBxcj1jLmdldENlbGxNZXRhKHFuLGdyKTtpZihxci5oaWRkZW4pY29udGludWU7Y29uc3QgX2k9e2NoZWNrZWRUZW1wbGF0ZTpxci5jaGVja2VkVGVtcGxhdGUsdW5jaGVja2VkVGVtcGxhdGU6cXIudW5jaGVja2VkVGVtcGxhdGV9O2lmKCJjaGVj'@; put 'a2JveCIhPT1xci50eXBlKXshMD09PUdlJiYhcXIucmVhZE9ubHkmJihkdC5oYXMocHQubGVuZ3RoKT9kdC5zZXQocHQubGVuZ3RoLFsuLi5kdC5nZXQocHQubGVuZ3RoKSxbcW4sZ3IsbnVsbF1dKTpkdC5zZXQocHQubGVuZ3RoLFtbcW4sZ3IsbnVsbF1dKSk7Y29udGludWV9aWYoITA9PT1x'@; put 'ci5yZWFkT25seSljb250aW51ZTt0eXBlb2YgcXIuY2hlY2tlZFRlbXBsYXRlPiJ1IiYmKHFyLmNoZWNrZWRUZW1wbGF0ZT0hMCksdHlwZW9mIHFyLnVuY2hlY2tlZFRlbXBsYXRlPiJ1IiYmKHFyLnVuY2hlY2tlZFRlbXBsYXRlPSExKTtjb25zdCBQbj1jLmdldERhdGFBdENlbGwocW4sZ3Ip'@; put 'OyExPT09R2U/W3FyLmNoZWNrZWRUZW1wbGF0ZSxxci5jaGVja2VkVGVtcGxhdGUudG9TdHJpbmcoKV0uaW5jbHVkZXMoUG4pP3F0LnB1c2goW3FuLGdyLHFyLnVuY2hlY2tlZFRlbXBsYXRlLF9pXSk6W3FyLnVuY2hlY2tlZFRlbXBsYXRlLHFyLnVuY2hlY2tlZFRlbXBsYXRlLnRvU3RyaW5n'@; put 'KCksbnVsbCx2b2lkIDBdLmluY2x1ZGVzKFBuKSYmcXQucHVzaChbcW4sZ3IscXIuY2hlY2tlZFRlbXBsYXRlLF9pXSk6cXQucHVzaChbcW4sZ3IscXIudW5jaGVja2VkVGVtcGxhdGUsX2ldKSxtbis9MX1wdC5wdXNoKG1uKSxtbj0wfXF0PXF0LmV2ZXJ5KHduPT57bGV0WywsaG5dPXduO3Jl'@; put 'dHVybiBobj09PXF0WzBdWzJdfSk/cXQubWFwKHduPT57bGV0W2huLE1uLE1yXT13bjtyZXR1cm5baG4sTW4sTXJdfSk6cXQubWFwKHduPT57bGV0W2huLE1uLCxNcl09d247cmV0dXJuW2huLE1uLE1yLmNoZWNrZWRUZW1wbGF0ZV19KSxxdC5sZW5ndGg+MCYmcHQuZm9yRWFjaCgod24saG4p'@; put 'PT57bGV0IE1uPXF0LnNwbGljZSgwLHduKTtkdC5zaXplJiZkdC5oYXMoaG4pJiYoTW49Wy4uLk1uLC4uLmR0LmdldChobildKSxjLnNldERhdGFBdENlbGwoTW4pfSl9fWZ1bmN0aW9uIEJlKCl7Y29uc3QgR2U9Yy5nZXRTZWxlY3RlZFJhbmdlKCk7aWYoR2Upe2ZvcihsZXQgc3Q9MDtzdDxH'@; put 'ZS5sZW5ndGg7c3QrKyl7Y29uc3QgcHQ9R2Vbc3RdLmdldFRvcFN0YXJ0Q29ybmVyKCksZHQ9R2Vbc3RdLmdldEJvdHRvbUVuZENvcm5lcigpO2ZvcihsZXQgcXQ9cHQucm93O3F0PD1kdC5yb3c7cXQrKylmb3IobGV0IG1uPXB0LmNvbDttbjw9ZHQuY29sO21uKyspe2lmKGMuZ2V0Q2VsbE1l'@; put 'dGEocXQsbW4pLnJlYWRPbmx5KWNvbnRpbnVlO2NvbnN0IGhuPWMuZ2V0Q2VsbChxdCxtbik7aWYoa3AoaG4pJiZobi5xdWVyeVNlbGVjdG9yQWxsKCJpbnB1dFt0eXBlPWNoZWNrYm94XSIpLmxlbmd0aD4wKXJldHVybiEwfX1yZXR1cm4hMX19KCFyZXx8cmUmJiFyZS5zZXBhcmF0ZWQpJiZs'@; put 'LmFwcGVuZENoaWxkKEcpLHVlJiZsLmFwcGVuZENoaWxkKE0uY3JlYXRlVGV4dE5vZGUoIiNiYWQtdmFsdWUjIikpLGc0ZS5oYXMoYyl8fChnNGUuc2V0KGMsITApLGZ1bmN0aW9uIHllKCl7Yy5nZXRTaG9ydGN1dE1hbmFnZXIoKS5nZXRDb250ZXh0KCJncmlkIikuYWRkU2hvcnRjdXRzKFt7'@; put 'a2V5czpbWyJzcGFjZSJdXSxjYWxsYmFjazooKT0+KEVlKCksIUJlKCkpLHJ1bk9ubHlJZjooKT0+e3ZhciBkdDtyZXR1cm4gbnVsbD09PShkdD1jLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCkpfHx2b2lkIDA9PT1kdD92b2lkIDA6ZHQuaGlnaGxpZ2h0LmlzQ2VsbCgpfX0se2tleXM6W1siZW50'@; put 'ZXIiXV0sY2FsbGJhY2s6KCk9PihFZSgpLCFCZSgpKSxydW5Pbmx5SWY6KCk9Pntjb25zdCBkdD1jLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7cmV0dXJuIGMuZ2V0U2V0dGluZ3MoKS5lbnRlckJlZ2luc0VkaXRpbmcmJmR0Py5oaWdobGlnaHQuaXNDZWxsKCkmJiFjLnNlbGVjdGlvbi5pc011'@; put 'bHRpcGxlKCl9fSx7a2V5czpbWyJkZWxldGUiXSxbImJhY2tzcGFjZSJdXSxjYWxsYmFjazooKT0+KEVlKCEwKSwhQmUoKSkscnVuT25seUlmOigpPT57dmFyIGR0O3JldHVybiBudWxsPT09KGR0PWMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSl8fHZvaWQgMD09PWR0P3ZvaWQgMDpkdC5oaWdo'@; put 'bGlnaHQuaXNDZWxsKCl9fV0se2dyb3VwOnJzdCxyZWxhdGl2ZVRvR3JvdXA6em0scG9zaXRpb246ImJlZm9yZSJ9KX0oKSl9ZnVuY3Rpb24gZUooYyl7cmV0dXJuIklOUFVUIj09PWMudGFnTmFtZSYmImNoZWNrYm94Ij09PWMuZ2V0QXR0cmlidXRlKCJ0eXBlIil9ZnVuY3Rpb24gdEooYyxs'@; put 'LGEsZCxoLGYsdil7SV8uYXBwbHkodGhpcyxbYyxsLGEsZCxoLGYsdl0pfU1hLmdldFNpbmdsZXRvbigpLmFkZCgibW9kaWZ5QXV0b0NvbHVtblNpemVTZWVkIixmdW5jdGlvbihjLGwsYSl7Y29uc3R7bGFiZWw6ZCx0eXBlOmgscm93OmYsY29sdW1uOnYscHJvcDpNfT1sO2lmKCJjaGVja2Jv'@; put 'eCI9PT1oKXtpZihkKXtjb25zdHt2YWx1ZTpJLHByb3BlcnR5Okd9PWQ7bGV0IHJlPWE7aWYoSSlyZT0iZnVuY3Rpb24iPT10eXBlb2YgST9JKGYsdixNLGEpOkk7ZWxzZSBpZihHKXtjb25zdCB1ZT10aGlzLmdldERhdGFBdFJvd1Byb3AoZixHKTtyZT1udWxsIT09dWU/dWU6YX1jPXJlfXJl'@; put 'dHVybiBjfX0pLFFxLlJFTkRFUkVSX1RZUEU9ImNoZWNrYm94Iix0Si5SRU5ERVJFUl9UWVBFPSJoYW5kc29udGFibGUiO3ZhciBuSix5NGUsckosYjRlLGlKLHc0ZSxkc3Q9dHlwZW9mIGdsb2JhbFRoaXM8InUiP2dsb2JhbFRoaXM6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93OnR5cGVvZiBn'@; put 'bG9iYWw8InUiP2dsb2JhbDp0eXBlb2Ygc2VsZjwidSI/c2VsZjp7fTtmdW5jdGlvbiBoc3QoYyl7cmV0dXJuIGMmJmMuX19lc01vZHVsZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGMsImRlZmF1bHQiKT9jLmRlZmF1bHQ6Y31mdW5jdGlvbiBfNGUoKXtpZihiNGUp'@; put 'cmV0dXJuIHJKO2I0ZT0xO2NvbnN0IGM9W3trZXk6IlppQiIsZmFjdG9yOk1hdGgucG93KDEwMjQsNyl9LHtrZXk6IlpCIixmYWN0b3I6TWF0aC5wb3coMWUzLDcpfSx7a2V5OiJZaUIiLGZhY3RvcjpNYXRoLnBvdygxMDI0LDgpfSx7a2V5OiJZQiIsZmFjdG9yOk1hdGgucG93KDFlMyw4KX0s'@; put 'e2tleToiVGlCIixmYWN0b3I6TWF0aC5wb3coMTAyNCw0KX0se2tleToiVEIiLGZhY3RvcjpNYXRoLnBvdygxZTMsNCl9LHtrZXk6IlBpQiIsZmFjdG9yOk1hdGgucG93KDEwMjQsNSl9LHtrZXk6IlBCIixmYWN0b3I6TWF0aC5wb3coMWUzLDUpfSx7a2V5OiJNaUIiLGZhY3RvcjpNYXRoLnBv'@; put 'dygxMDI0LDIpfSx7a2V5OiJNQiIsZmFjdG9yOk1hdGgucG93KDFlMywyKX0se2tleToiS2lCIixmYWN0b3I6TWF0aC5wb3coMTAyNCwxKX0se2tleToiS0IiLGZhY3RvcjpNYXRoLnBvdygxZTMsMSl9LHtrZXk6IkdpQiIsZmFjdG9yOk1hdGgucG93KDEwMjQsMyl9LHtrZXk6IkdCIixmYWN0'@; put 'b3I6TWF0aC5wb3coMWUzLDMpfSx7a2V5OiJFaUIiLGZhY3RvcjpNYXRoLnBvdygxMDI0LDYpfSx7a2V5OiJFQiIsZmFjdG9yOk1hdGgucG93KDFlMyw2KX0se2tleToiQiIsZmFjdG9yOjF9XTtmdW5jdGlvbiBsKEkpe3JldHVybiBJLnJlcGxhY2UoL1stL1xcXiQqKz8uKCl8W1xde31dL2cs'@; put 'IlxcJCYiKX1mdW5jdGlvbiBhKEksRyxyZSx1ZSx5ZSxFZSxCZSl7aWYoIWlzTmFOKCtJKSlyZXR1cm4rSTtsZXQgR2U9IiIsc3Q9SS5yZXBsYWNlKC8oXlteKF0qKVwoKC4qKVwpKFteKV0qJCkvLCIkMSQyJDMiKTtpZihzdCE9PUkpcmV0dXJuLTEqYShzdCxHLHJlLHVlLHllLEVlKTtmb3Io'@; put 'bGV0IGhuPTA7aG48Yy5sZW5ndGg7aG4rKyl7bGV0IE1uPWNbaG5dO2lmKEdlPUkucmVwbGFjZShSZWdFeHAoYChbMC05IF0pKCR7TW4ua2V5fSkkYCksIiQxIiksR2UhPT1JKXJldHVybiBhKEdlLEcscmUsdWUseWUsRWUpKk1uLmZhY3Rvcn1pZihHZT1JLnJlcGxhY2UoIiUiLCIiKSxHZSE9'@; put 'PUkpcmV0dXJuIGEoR2UsRyxyZSx1ZSx5ZSxFZSkvMTAwO2xldCBwdD1wYXJzZUZsb2F0KEkpO2lmKGlzTmFOKHB0KSlyZXR1cm47bGV0IGR0PXVlKHB0KTtpZihkdCYmIi4iIT09ZHQmJihHZT1JLnJlcGxhY2UobmV3IFJlZ0V4cChgJHtsKGR0KX0kYCksIiIpLEdlIT09SSkpcmV0dXJuIGEo'@; put 'R2UsRyxyZSx1ZSx5ZSxFZSk7bGV0IHF0PXt9O09iamVjdC5rZXlzKEVlKS5mb3JFYWNoKGhuPT57cXRbRWVbaG5dXT1obn0pO2xldCBtbj1PYmplY3Qua2V5cyhxdCkuc29ydCgpLnJldmVyc2UoKSx3bj1tbi5sZW5ndGg7Zm9yKGxldCBobj0wO2huPHduO2huKyspe2xldCBNbj1tbltobl0s'@; put 'TXI9cXRbTW5dO2lmKEdlPUkucmVwbGFjZShNbiwiIiksR2UhPT1JKXtsZXQga3I7c3dpdGNoKE1yKXtjYXNlInRob3VzYW5kIjprcj1NYXRoLnBvdygxMCwzKTticmVhaztjYXNlIm1pbGxpb24iOmtyPU1hdGgucG93KDEwLDYpO2JyZWFrO2Nhc2UiYmlsbGlvbiI6a3I9TWF0aC5wb3coMTAs'@; put 'OSk7YnJlYWs7Y2FzZSJ0cmlsbGlvbiI6a3I9TWF0aC5wb3coMTAsMTIpfXJldHVybiBhKEdlLEcscmUsdWUseWUsRWUpKmtyfX19ZnVuY3Rpb24gaChJLEcscmU9IiIsdWUseWUsRWUsQmUpe2lmKCIiPT09SSlyZXR1cm47aWYoST09PXllKXJldHVybiAwO2xldCBHZT1mdW5jdGlvbiBkKEks'@; put 'RyxyZSl7bGV0IHVlPUkucmVwbGFjZShyZSwiIik7cmV0dXJuIHVlPXVlLnJlcGxhY2UobmV3IFJlZ0V4cChgKFswLTldKSR7bChHLnRob3VzYW5kcyl9KFswLTldKWAsImciKSwiJDEkMiIpLHVlPXVlLnJlcGxhY2UoRy5kZWNpbWFsLCIuIiksdWV9KEksRyxyZSk7cmV0dXJuIGEoR2UsRyxy'@; put 'ZSx1ZSx5ZSxFZSl9cmV0dXJuIHJKPXt1bmZvcm1hdDpmdW5jdGlvbiBNKEksRyl7Y29uc3QgcmU9bEooKTtsZXQgc3QsdWU9cmUuY3VycmVudERlbGltaXRlcnMoKSx5ZT1yZS5jdXJyZW50Q3VycmVuY3koKS5zeW1ib2wsRWU9cmUuY3VycmVudE9yZGluYWwoKSxCZT1yZS5nZXRaZXJvRm9y'@; put 'bWF0KCksR2U9cmUuY3VycmVudEFiYnJldmlhdGlvbnMoKTtpZigic3RyaW5nIj09dHlwZW9mIEkpc3Q9ZnVuY3Rpb24gZihJLEcpe2lmKCFJLmluZGV4T2YoIjoiKXx8IjoiPT09Ry50aG91c2FuZHMpcmV0dXJuITE7bGV0IHVlPUkuc3BsaXQoIjoiKTtpZigzIT09dWUubGVuZ3RoKXJldHVy'@; put 'biExO2xldCBFZT0rdWVbMV0sQmU9K3VlWzJdO3JldHVybiFpc05hTigrdWVbMF0pJiYhaXNOYU4oRWUpJiYhaXNOYU4oQmUpfShJLHVlKT9mdW5jdGlvbiB2KEkpe2xldCBHPUkuc3BsaXQoIjoiKTtyZXR1cm4rR1syXSs2MCorR1sxXSszNjAwKitHWzBdfShJKTpoKEksdWUseWUsRWUsQmUs'@; put 'R2UpO2Vsc2V7aWYoIm51bWJlciIhPXR5cGVvZiBJKXJldHVybjtzdD1JfWlmKHZvaWQgMCE9PXN0KXJldHVybiBzdH19fWZ1bmN0aW9uIGFKKCl7aWYodzRlKXJldHVybiBpSjt3NGU9MTtsZXQgYz1fNGUoKTtjb25zdCBsPS9eW2Etel17MiwzfSgtW2EtekEtWl17NH0pPygtKFtBLVpdezJ9'@; put 'fFswLTldezN9KSk/JC8sRz17b3V0cHV0Ont0eXBlOiJzdHJpbmciLHZhbGlkVmFsdWVzOlsiY3VycmVuY3kiLCJwZXJjZW50IiwiYnl0ZSIsInRpbWUiLCJvcmRpbmFsIiwibnVtYmVyIl19LGJhc2U6e3R5cGU6InN0cmluZyIsdmFsaWRWYWx1ZXM6WyJkZWNpbWFsIiwiYmluYXJ5IiwiZ2Vu'@; put 'ZXJhbCJdLHJlc3RyaWN0aW9uOihzdCxwdCk9PiJieXRlIj09PXB0Lm91dHB1dCxtZXNzYWdlOiJgYmFzZWAgbXVzdCBiZSBwcm92aWRlZCBvbmx5IHdoZW4gdGhlIG91dHB1dCBpcyBgYnl0ZWAiLG1hbmRhdG9yeTpzdD0+ImJ5dGUiPT09c3Qub3V0cHV0fSxjaGFyYWN0ZXJpc3RpYzp7dHlw'@; put 'ZToibnVtYmVyIixyZXN0cmljdGlvbjpzdD0+c3Q+PTAsbWVzc2FnZToidmFsdWUgbXVzdCBiZSBwb3NpdGl2ZSJ9LHByZWZpeDoic3RyaW5nIixwb3N0Zml4OiJzdHJpbmciLGZvcmNlQXZlcmFnZTp7dHlwZToic3RyaW5nIix2YWxpZFZhbHVlczpbInRyaWxsaW9uIiwiYmlsbGlvbiIsIm1p'@; put 'bGxpb24iLCJ0aG91c2FuZCJdfSxhdmVyYWdlOiJib29sZWFuIixsb3dQcmVjaXNpb246e3R5cGU6ImJvb2xlYW4iLHJlc3RyaWN0aW9uOihzdCxwdCk9PiEwPT09cHQuYXZlcmFnZSxtZXNzYWdlOiJgbG93UHJlY2lzaW9uYCBtdXN0IGJlIHByb3ZpZGVkIG9ubHkgd2hlbiB0aGUgb3B0aW9u'@; put 'IGBhdmVyYWdlYCBpcyBzZXQifSxjdXJyZW5jeVBvc2l0aW9uOnt0eXBlOiJzdHJpbmciLHZhbGlkVmFsdWVzOlsicHJlZml4IiwiaW5maXgiLCJwb3N0Zml4Il19LGN1cnJlbmN5U3ltYm9sOiJzdHJpbmciLHRvdGFsTGVuZ3RoOnt0eXBlOiJudW1iZXIiLHJlc3RyaWN0aW9uczpbe3Jlc3Ry'@; put 'aWN0aW9uOnN0PT5zdD49MCxtZXNzYWdlOiJ2YWx1ZSBtdXN0IGJlIHBvc2l0aXZlIn0se3Jlc3RyaWN0aW9uOihzdCxwdCk9PiFwdC5leHBvbmVudGlhbCxtZXNzYWdlOiJgdG90YWxMZW5ndGhgIGlzIGluY29tcGF0aWJsZSB3aXRoIGBleHBvbmVudGlhbGAifV19LG1hbnRpc3NhOnt0eXBl'@; put 'OiJudW1iZXIiLHJlc3RyaWN0aW9uOnN0PT5zdD49MCxtZXNzYWdlOiJ2YWx1ZSBtdXN0IGJlIHBvc2l0aXZlIn0sb3B0aW9uYWxNYW50aXNzYToiYm9vbGVhbiIsdHJpbU1hbnRpc3NhOiJib29sZWFuIixyb3VuZGluZ0Z1bmN0aW9uOiJmdW5jdGlvbiIsb3B0aW9uYWxDaGFyYWN0ZXJpc3Rp'@; put 'YzoiYm9vbGVhbiIsdGhvdXNhbmRTZXBhcmF0ZWQ6ImJvb2xlYW4iLHNwYWNlU2VwYXJhdGVkOiJib29sZWFuIixzcGFjZVNlcGFyYXRlZEN1cnJlbmN5OiJib29sZWFuIixzcGFjZVNlcGFyYXRlZEFiYnJldmlhdGlvbjoiYm9vbGVhbiIsYWJicmV2aWF0aW9uczp7dHlwZToib2JqZWN0Iixj'@; put 'aGlsZHJlbjp7dGhvdXNhbmQ6InN0cmluZyIsbWlsbGlvbjoic3RyaW5nIixiaWxsaW9uOiJzdHJpbmciLHRyaWxsaW9uOiJzdHJpbmcifX0sbmVnYXRpdmU6e3R5cGU6InN0cmluZyIsdmFsaWRWYWx1ZXM6WyJzaWduIiwicGFyZW50aGVzaXMiXX0sZm9yY2VTaWduOiJib29sZWFuIixleHBv'@; put 'bmVudGlhbDp7dHlwZToiYm9vbGVhbiJ9LHByZWZpeFN5bWJvbDp7dHlwZToiYm9vbGVhbiIscmVzdHJpY3Rpb246KHN0LHB0KT0+InBlcmNlbnQiPT09cHQub3V0cHV0LG1lc3NhZ2U6ImBwcmVmaXhTeW1ib2xgIGNhbiBiZSBwcm92aWRlZCBvbmx5IHdoZW4gdGhlIG91dHB1dCBpcyBgcGVy'@; put 'Y2VudGAifX0scmU9e2xhbmd1YWdlVGFnOnt0eXBlOiJzdHJpbmciLG1hbmRhdG9yeTohMCxyZXN0cmljdGlvbjpzdD0+c3QubWF0Y2gobCksbWVzc2FnZToidGhlIGxhbmd1YWdlIHRhZyBtdXN0IGZvbGxvdyB0aGUgQkNQIDQ3IHNwZWNpZmljYXRpb24gKHNlZSBodHRwczovL3Rvb2xzLmll'@; put 'ZnQub3JnL2h0bWwvYmNwNDcpIn0sZGVsaW1pdGVyczp7dHlwZToib2JqZWN0IixjaGlsZHJlbjp7dGhvdXNhbmRzOiJzdHJpbmciLGRlY2ltYWw6InN0cmluZyIsdGhvdXNhbmRzU2l6ZToibnVtYmVyIn0sbWFuZGF0b3J5OiEwfSxhYmJyZXZpYXRpb25zOnt0eXBlOiJvYmplY3QiLGNoaWxk'@; put 'cmVuOnt0aG91c2FuZDp7dHlwZToic3RyaW5nIixtYW5kYXRvcnk6ITB9LG1pbGxpb246e3R5cGU6InN0cmluZyIsbWFuZGF0b3J5OiEwfSxiaWxsaW9uOnt0eXBlOiJzdHJpbmciLG1hbmRhdG9yeTohMH0sdHJpbGxpb246e3R5cGU6InN0cmluZyIsbWFuZGF0b3J5OiEwfX0sbWFuZGF0b3J5'@; put 'OiEwfSxzcGFjZVNlcGFyYXRlZDoiYm9vbGVhbiIsc3BhY2VTZXBhcmF0ZWRDdXJyZW5jeToiYm9vbGVhbiIsb3JkaW5hbDp7dHlwZToiZnVuY3Rpb24iLG1hbmRhdG9yeTohMH0sYnl0ZXM6e3R5cGU6Im9iamVjdCIsY2hpbGRyZW46e2JpbmFyeVN1ZmZpeGVzOiJvYmplY3QiLGRlY2ltYWxT'@; put 'dWZmaXhlczoib2JqZWN0In19LGN1cnJlbmN5Ont0eXBlOiJvYmplY3QiLGNoaWxkcmVuOntzeW1ib2w6InN0cmluZyIscG9zaXRpb246InN0cmluZyIsY29kZToic3RyaW5nIn0sbWFuZGF0b3J5OiEwfSxkZWZhdWx0czoiZm9ybWF0IixvcmRpbmFsRm9ybWF0OiJmb3JtYXQiLGJ5dGVGb3Jt'@; put 'YXQ6ImZvcm1hdCIscGVyY2VudGFnZUZvcm1hdDoiZm9ybWF0IixjdXJyZW5jeUZvcm1hdDoiZm9ybWF0Iix0aW1lRGVmYXVsdHM6ImZvcm1hdCIsZm9ybWF0czp7dHlwZToib2JqZWN0IixjaGlsZHJlbjp7Zm91ckRpZ2l0czp7dHlwZToiZm9ybWF0IixtYW5kYXRvcnk6ITB9LGZ1bGxXaXRo'@; put 'VHdvRGVjaW1hbHM6e3R5cGU6ImZvcm1hdCIsbWFuZGF0b3J5OiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7dHlwZToiZm9ybWF0IixtYW5kYXRvcnk6ITB9LGZ1bGxXaXRoTm9EZWNpbWFsczp7dHlwZToiZm9ybWF0IixtYW5kYXRvcnk6ITB9fX19O2Z1bmN0aW9uIHllKHN0'@; put 'KXtyZXR1cm4gdm9pZCAwIT09Yy51bmZvcm1hdChzdCl9ZnVuY3Rpb24gRWUoc3QscHQsZHQscXQ9ITEpe2xldCBtbj1PYmplY3Qua2V5cyhzdCkubWFwKHduPT57aWYoIXB0W3duXSlyZXR1cm4gY29uc29sZS5lcnJvcihgJHtkdH0gSW52YWxpZCBrZXk6ICR7d259YCksITE7bGV0IGhuPXN0'@; put 'W3duXSxNbj1wdFt3bl07aWYoInN0cmluZyI9PXR5cGVvZiBNbiYmKE1uPXt0eXBlOk1ufSksImZvcm1hdCI9PT1Nbi50eXBlKXtpZighRWUoaG4sRyxgW1ZhbGlkYXRlICR7d259XWAsITApKXJldHVybiExfWVsc2UgaWYodHlwZW9mIGhuIT09TW4udHlwZSlyZXR1cm4gY29uc29sZS5lcnJv'@; put 'cihgJHtkdH0gJHt3bn0gdHlwZSBtaXNtYXRjaGVkOiAiJHtNbi50eXBlfSIgZXhwZWN0ZWQsICIke3R5cGVvZiBobn0iIHByb3ZpZGVkYCksITE7aWYoTW4ucmVzdHJpY3Rpb25zJiZNbi5yZXN0cmljdGlvbnMubGVuZ3RoKXtsZXQgTXI9TW4ucmVzdHJpY3Rpb25zLmxlbmd0aDtmb3IobGV0'@; put 'IGtyPTA7a3I8TXI7a3IrKyl7bGV0e3Jlc3RyaWN0aW9uOnFuLG1lc3NhZ2U6Z3J9PU1uLnJlc3RyaWN0aW9uc1trcl07aWYoIXFuKGhuLHN0KSlyZXR1cm4gY29uc29sZS5lcnJvcihgJHtkdH0gJHt3bn0gaW52YWxpZCB2YWx1ZTogJHtncn1gKSwhMX19cmV0dXJuIE1uLnJlc3RyaWN0aW9u'@; put 'JiYhTW4ucmVzdHJpY3Rpb24oaG4sc3QpPyhjb25zb2xlLmVycm9yKGAke2R0fSAke3dufSBpbnZhbGlkIHZhbHVlOiAke01uLm1lc3NhZ2V9YCksITEpOk1uLnZhbGlkVmFsdWVzJiYtMT09PU1uLnZhbGlkVmFsdWVzLmluZGV4T2YoaG4pPyhjb25zb2xlLmVycm9yKGAke2R0fSAke3dufSBp'@; put 'bnZhbGlkIHZhbHVlOiBtdXN0IGJlIGFtb25nICR7SlNPTi5zdHJpbmdpZnkoTW4udmFsaWRWYWx1ZXMpfSwgIiR7aG59IiBwcm92aWRlZGApLCExKTohKE1uLmNoaWxkcmVuJiYhRWUoaG4sTW4uY2hpbGRyZW4sYFtWYWxpZGF0ZSAke3dufV1gKSl9KTtyZXR1cm4gcXR8fG1uLnB1c2goLi4u'@; put 'T2JqZWN0LmtleXMocHQpLm1hcCh3bj0+e2xldCBobj1wdFt3bl07aWYoInN0cmluZyI9PXR5cGVvZiBobiYmKGhuPXt0eXBlOmhufSksaG4ubWFuZGF0b3J5KXtsZXQgTW49aG4ubWFuZGF0b3J5O2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBNbiYmKE1uPU1uKHN0KSksTW4mJnZvaWQgMD09PXN0'@; put 'W3duXSlyZXR1cm4gY29uc29sZS5lcnJvcihgJHtkdH0gTWlzc2luZyBtYW5kYXRvcnkga2V5ICIke3dufSJgKSwhMX1yZXR1cm4hMH0pKSxtbi5yZWR1Y2UoKHduLGhuKT0+d24mJmhuLCEwKX1mdW5jdGlvbiBCZShzdCl7cmV0dXJuIEVlKHN0LEcsIltWYWxpZGF0ZSBmb3JtYXRdIil9cmV0'@; put 'dXJuIGlKPXt2YWxpZGF0ZTpmdW5jdGlvbiB1ZShzdCxwdCl7bGV0IGR0PXllKHN0KSxxdD1CZShwdCk7cmV0dXJuIGR0JiZxdH0sdmFsaWRhdGVGb3JtYXQ6QmUsdmFsaWRhdGVJbnB1dDp5ZSx2YWxpZGF0ZUxhbmd1YWdlOmZ1bmN0aW9uIEdlKHN0KXtyZXR1cm4gRWUoc3QscmUsIltWYWxp'@; put 'ZGF0ZSBsYW5ndWFnZV0iKX19fXZhciBvSixDNGUsc0o9e3BhcnNlRm9ybWF0OmZ1bmN0aW9uIGtzdChjLGw9e30pe3JldHVybiJzdHJpbmciIT10eXBlb2YgYz9jOihjPWZ1bmN0aW9uIHBzdChjLGwpe2xldCBhPWMubWF0Y2goL157KFtefV0qKX0vKTtyZXR1cm4gYT8obC5wcmVmaXg9YVsx'@; put 'XSxjLnNsaWNlKGFbMF0ubGVuZ3RoKSk6Y30oYyxsKSxjPWZ1bmN0aW9uIGdzdChjLGwpe2xldCBhPWMubWF0Y2goL3soW159XSopfSQvKTtyZXR1cm4gYT8obC5wb3N0Zml4PWFbMV0sYy5zbGljZSgwLC1hWzBdLmxlbmd0aCkpOmN9KGMsbCksZnVuY3Rpb24gbXN0KGMsbCl7aWYoLTE9PT1j'@; put 'LmluZGV4T2YoIiQiKSl7aWYoLTE9PT1jLmluZGV4T2YoIiUiKSlyZXR1cm4tMSE9PWMuaW5kZXhPZigiYmQiKT8obC5vdXRwdXQ9ImJ5dGUiLHZvaWQobC5iYXNlPSJnZW5lcmFsIikpOi0xIT09Yy5pbmRleE9mKCJiIik/KGwub3V0cHV0PSJieXRlIix2b2lkKGwuYmFzZT0iYmluYXJ5Iikp'@; put 'Oi0xIT09Yy5pbmRleE9mKCJkIik/KGwub3V0cHV0PSJieXRlIix2b2lkKGwuYmFzZT0iZGVjaW1hbCIpKTp2b2lkKC0xPT09Yy5pbmRleE9mKCI6Iik/LTEhPT1jLmluZGV4T2YoIm8iKSYmKGwub3V0cHV0PSJvcmRpbmFsIik6bC5vdXRwdXQ9InRpbWUiKTtsLm91dHB1dD0icGVyY2VudCJ9'@; put 'ZWxzZSBsLm91dHB1dD0iY3VycmVuY3kifShjLGwpLGZ1bmN0aW9uIGJzdChjLGwpe2xldCBhPWMubWF0Y2goL1sxLTldK1swLTldKi8pO2EmJihsLnRvdGFsTGVuZ3RoPSthWzBdKX0oYyxsKSxmdW5jdGlvbiBfc3QoYyxsKXtsZXQgZD1jLnNwbGl0KCIuIilbMF0ubWF0Y2goLzArLyk7ZCYm'@; put 'KGwuY2hhcmFjdGVyaXN0aWM9ZFswXS5sZW5ndGgpfShjLGwpLGZ1bmN0aW9uIEVzdChjLGwpe2lmKC0xIT09Yy5pbmRleE9mKCIuIikpe2xldCBhPWMuc3BsaXQoIi4iKVswXTtsLm9wdGlvbmFsQ2hhcmFjdGVyaXN0aWM9LTE9PT1hLmluZGV4T2YoIjAiKX19KGMsbCksZnVuY3Rpb24gU3N0'@; put 'KGMsbCl7LTEhPT1jLmluZGV4T2YoImEiKSYmKGwuYXZlcmFnZT0hMCl9KGMsbCksZnVuY3Rpb24gTXN0KGMsbCl7LTEhPT1jLmluZGV4T2YoIksiKT9sLmZvcmNlQXZlcmFnZT0idGhvdXNhbmQiOi0xIT09Yy5pbmRleE9mKCJNIik/bC5mb3JjZUF2ZXJhZ2U9Im1pbGxpb24iOi0xIT09Yy5p'@; put 'bmRleE9mKCJCIik/bC5mb3JjZUF2ZXJhZ2U9ImJpbGxpb24iOi0xIT09Yy5pbmRleE9mKCJUIikmJihsLmZvcmNlQXZlcmFnZT0idHJpbGxpb24iKX0oYyxsKSxmdW5jdGlvbiB3c3QoYyxsKXtsZXQgYT1jLnNwbGl0KCIuIilbMV07aWYoYSl7bGV0IGQ9YS5tYXRjaCgvMCsvKTtkJiYobC5t'@; put 'YW50aXNzYT1kWzBdLmxlbmd0aCl9fShjLGwpLGZ1bmN0aW9uIHhzdChjLGwpe2MubWF0Y2goL1xbXC5dLyk/bC5vcHRpb25hbE1hbnRpc3NhPSEwOmMubWF0Y2goL1wuLykmJihsLm9wdGlvbmFsTWFudGlzc2E9ITEpfShjLGwpLGZ1bmN0aW9uIENzdChjLGwpe2NvbnN0IGE9Yy5zcGxpdCgi'@; put 'LiIpWzFdO2EmJihsLnRyaW1NYW50aXNzYT0tMSE9PWEuaW5kZXhPZigiWyIpKX0oYyxsKSxmdW5jdGlvbiB2c3QoYyxsKXstMSE9PWMuaW5kZXhPZigiLCIpJiYobC50aG91c2FuZFNlcGFyYXRlZD0hMCl9KGMsbCksZnVuY3Rpb24geXN0KGMsbCl7LTEhPT1jLmluZGV4T2YoIiAiKSYmKGwu'@; put 'c3BhY2VTZXBhcmF0ZWQ9ITAsbC5zcGFjZVNlcGFyYXRlZEN1cnJlbmN5PSEwLChsLmF2ZXJhZ2V8fGwuZm9yY2VBdmVyYWdlKSYmKGwuc3BhY2VTZXBhcmF0ZWRBYmJyZXZpYXRpb249ITApKX0oYyxsKSxmdW5jdGlvbiBUc3QoYyxsKXtjLm1hdGNoKC9eXCs/XChbXildKlwpJC8pJiYobC5u'@; put 'ZWdhdGl2ZT0icGFyZW50aGVzaXMiKSxjLm1hdGNoKC9eXCs/LS8pJiYobC5uZWdhdGl2ZT0ic2lnbiIpfShjLGwpLGZ1bmN0aW9uIEFzdChjLGwpe2MubWF0Y2goL15cKy8pJiYobC5mb3JjZVNpZ249ITApfShjLGwpLGwpfX07ZnVuY3Rpb24gbEooKXtpZihDNGUpcmV0dXJuIG9KO0M0ZT0x'@; put 'O2NvbnN0IGM9ZnVuY3Rpb24gZnN0KCl7cmV0dXJuIHk0ZXx8KHk0ZT0xLG5KPXtsYW5ndWFnZVRhZzoiZW4tVVMiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiLCIsZGVjaW1hbDoiLiJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJrIixtaWxsaW9uOiJtIixiaWxsaW9uOiJiIix0cmlsbGlv'@; put 'bjoidCJ9LHNwYWNlU2VwYXJhdGVkOiExLG9yZGluYWw6ZnVuY3Rpb24oYyl7bGV0IGw9YyUxMDtyZXR1cm4gMT09fn4oYyUxMDAvMTApPyJ0aCI6MT09PWw/InN0IjoyPT09bD8ibmQiOjM9PT1sPyJyZCI6InRoIn0sYnl0ZXM6e2JpbmFyeVN1ZmZpeGVzOlsiQiIsIktpQiIsIk1pQiIsIkdp'@; put 'QiIsIlRpQiIsIlBpQiIsIkVpQiIsIlppQiIsIllpQiJdLGRlY2ltYWxTdWZmaXhlczpbIkIiLCJLQiIsIk1CIiwiR0IiLCJUQiIsIlBCIiwiRUIiLCJaQiIsIllCIl19LGN1cnJlbmN5OntzeW1ib2w6IiQiLHBvc2l0aW9uOiJwcmVmaXgiLGNvZGU6IlVTRCJ9LGN1cnJlbmN5Rm9ybWF0Ont0'@; put 'aG91c2FuZFNlcGFyYXRlZDohMCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLHNwYWNlU2VwYXJhdGVkQ3VycmVuY3k6ITB9LGZvcm1hdHM6e2ZvdXJEaWdpdHM6e3RvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e291dHB1dDoiY3Vy'@; put 'cmVuY3kiLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjJ9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5Ont0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYToyfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1h'@; put 'bnRpc3NhOjB9fX0pLG5KfSgpLGw9YUooKSxhPXNKO2xldCBoLGQ9e30sZj17fSx2PW51bGwsTT17fTtmdW5jdGlvbiBJKHJlKXtoPXJlfWZ1bmN0aW9uIEcoKXtyZXR1cm4gZltoXX1yZXR1cm4gZC5sYW5ndWFnZXM9KCk9Pk9iamVjdC5hc3NpZ24oe30sZiksZC5jdXJyZW50TGFuZ3VhZ2U9'@; put 'KCk9PmgsZC5jdXJyZW50Qnl0ZXM9KCk9PkcoKS5ieXRlc3x8e30sZC5jdXJyZW50Q3VycmVuY3k9KCk9PkcoKS5jdXJyZW5jeSxkLmN1cnJlbnRBYmJyZXZpYXRpb25zPSgpPT5HKCkuYWJicmV2aWF0aW9ucyxkLmN1cnJlbnREZWxpbWl0ZXJzPSgpPT5HKCkuZGVsaW1pdGVycyxkLmN1cnJl'@; put 'bnRPcmRpbmFsPSgpPT5HKCkub3JkaW5hbCxkLmN1cnJlbnREZWZhdWx0cz0oKT0+T2JqZWN0LmFzc2lnbih7fSxHKCkuZGVmYXVsdHMsTSksZC5jdXJyZW50T3JkaW5hbERlZmF1bHRGb3JtYXQ9KCk9Pk9iamVjdC5hc3NpZ24oe30sZC5jdXJyZW50RGVmYXVsdHMoKSxHKCkub3JkaW5hbEZv'@; put 'cm1hdCksZC5jdXJyZW50Qnl0ZURlZmF1bHRGb3JtYXQ9KCk9Pk9iamVjdC5hc3NpZ24oe30sZC5jdXJyZW50RGVmYXVsdHMoKSxHKCkuYnl0ZUZvcm1hdCksZC5jdXJyZW50UGVyY2VudGFnZURlZmF1bHRGb3JtYXQ9KCk9Pk9iamVjdC5hc3NpZ24oe30sZC5jdXJyZW50RGVmYXVsdHMoKSxH'@; put 'KCkucGVyY2VudGFnZUZvcm1hdCksZC5jdXJyZW50Q3VycmVuY3lEZWZhdWx0Rm9ybWF0PSgpPT5PYmplY3QuYXNzaWduKHt9LGQuY3VycmVudERlZmF1bHRzKCksRygpLmN1cnJlbmN5Rm9ybWF0KSxkLmN1cnJlbnRUaW1lRGVmYXVsdEZvcm1hdD0oKT0+T2JqZWN0LmFzc2lnbih7fSxkLmN1'@; put 'cnJlbnREZWZhdWx0cygpLEcoKS50aW1lRm9ybWF0KSxkLnNldERlZmF1bHRzPXJlPT57cmU9YS5wYXJzZUZvcm1hdChyZSksbC52YWxpZGF0ZUZvcm1hdChyZSkmJihNPXJlKX0sZC5nZXRaZXJvRm9ybWF0PSgpPT52LGQuc2V0WmVyb0Zvcm1hdD1yZT0+dj0ic3RyaW5nIj09dHlwZW9mIHJl'@; put 'P3JlOm51bGwsZC5oYXNaZXJvRm9ybWF0PSgpPT5udWxsIT09dixkLmxhbmd1YWdlRGF0YT1yZT0+e2lmKHJlKXtpZihmW3JlXSlyZXR1cm4gZltyZV07dGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHRhZyAiJHtyZX0iYCl9cmV0dXJuIEcoKX0sZC5yZWdpc3Rlckxhbmd1YWdlPShyZSx1ZT0h'@; put 'MSk9PntpZighbC52YWxpZGF0ZUxhbmd1YWdlKHJlKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgbGFuZ3VhZ2UgZGF0YSIpO2ZbcmUubGFuZ3VhZ2VUYWddPXJlLHVlJiZJKHJlLmxhbmd1YWdlVGFnKX0sZC5zZXRMYW5ndWFnZT0ocmUsdWU9Yy5sYW5ndWFnZVRhZyk9PntpZighZltyZV0p'@; put 'e2xldCB5ZT1yZS5zcGxpdCgiLSIpWzBdLEVlPU9iamVjdC5rZXlzKGYpLmZpbmQoQmU9PkJlLnNwbGl0KCItIilbMF09PT15ZSk7cmV0dXJuIGZbRWVdP3ZvaWQgSShFZSk6dm9pZCBJKHVlKX1JKHJlKX0sZC5yZWdpc3Rlckxhbmd1YWdlKGMpLGg9Yy5sYW5ndWFnZVRhZyxvSj1kfXZhciBT'@; put 'NGU9e2V4cG9ydHM6e319OyFmdW5jdGlvbihjKXshZnVuY3Rpb24obCl7dmFyIGEsZD0vXi0/KD86XGQrKD86XC5cZCopP3xcLlxkKykoPzplWystXT9cZCspPyQvaSxoPU1hdGguY2VpbCxmPU1hdGguZmxvb3Isdj0iW0JpZ051bWJlciBFcnJvcl0gIixNPXYrIk51bWJlciBwcmltaXRpdmUg'@; put 'aGFzIG1vcmUgdGhhbiAxNSBzaWduaWZpY2FudCBkaWdpdHM6ICIsST0xZTE0LEc9MTQscmU9OTAwNzE5OTI1NDc0MDk5MSx1ZT1bMSwxMCwxMDAsMWUzLDFlNCwxZTUsMWU2LDFlNywxZTgsMWU5LDFlMTAsMWUxMSwxZTEyLDFlMTNdLHllPTFlNyxFZT0xZTk7ZnVuY3Rpb24gR2UoaG4pe3Zh'@; put 'ciBNbj0wfGhuO3JldHVybiBobj4wfHxobj09PU1uP01uOk1uLTF9ZnVuY3Rpb24gc3QoaG4pe2Zvcih2YXIgTW4sTXIsa3I9MSxxbj1obi5sZW5ndGgsZ3I9aG5bMF0rIiI7a3I8cW47KXtmb3IoTW49aG5ba3IrK10rIiIsTXI9Ry1Nbi5sZW5ndGg7TXItLTtNbj0iMCIrTW4pO2dyKz1Nbn1m'@; put 'b3IocW49Z3IubGVuZ3RoOzQ4PT09Z3IuY2hhckNvZGVBdCgtLXFuKTspO3JldHVybiBnci5zbGljZSgwLHFuKzF8fDEpfWZ1bmN0aW9uIHB0KGhuLE1uKXt2YXIgTXIsa3IscW49aG4uYyxncj1Nbi5jLHFyPWhuLnMsX2k9TW4ucyxQbj1obi5lLFVyPU1uLmU7aWYoIXFyfHwhX2kpcmV0dXJu'@; put 'IG51bGw7aWYoa3I9Z3ImJiFnclswXSwoTXI9cW4mJiFxblswXSl8fGtyKXJldHVybiBNcj9rcj8wOi1faTpxcjtpZihxciE9X2kpcmV0dXJuIHFyO2lmKE1yPXFyPDAsa3I9UG49PVVyLCFxbnx8IWdyKXJldHVybiBrcj8wOiFxbl5Ncj8xOi0xO2lmKCFrcilyZXR1cm4gUG4+VXJeTXI/MTot'@; put 'MTtmb3IoX2k9KFBuPXFuLmxlbmd0aCk8KFVyPWdyLmxlbmd0aCk/UG46VXIscXI9MDtxcjxfaTtxcisrKWlmKHFuW3FyXSE9Z3JbcXJdKXJldHVybiBxbltxcl0+Z3JbcXJdXk1yPzE6LTE7cmV0dXJuIFBuPT1Vcj8wOlBuPlVyXk1yPzE6LTF9ZnVuY3Rpb24gZHQoaG4sTW4sTXIsa3Ipe2lm'@; put 'KGhuPE1ufHxobj5Ncnx8aG4hPT1mKGhuKSl0aHJvdyBFcnJvcih2Kyhrcnx8IkFyZ3VtZW50IikrKCJudW1iZXIiPT10eXBlb2YgaG4/aG48TW58fGhuPk1yPyIgb3V0IG9mIHJhbmdlOiAiOiIgbm90IGFuIGludGVnZXI6ICI6IiBub3QgYSBwcmltaXRpdmUgbnVtYmVyOiAiKStTdHJpbmco'@; put 'aG4pKX1mdW5jdGlvbiBxdChobil7dmFyIE1uPWhuLmMubGVuZ3RoLTE7cmV0dXJuIEdlKGhuLmUvRyk9PU1uJiZobi5jW01uXSUyIT0wfWZ1bmN0aW9uIG1uKGhuLE1uKXtyZXR1cm4oaG4ubGVuZ3RoPjE/aG4uY2hhckF0KDApKyIuIitobi5zbGljZSgxKTpobikrKE1uPDA/ImUiOiJlKyIp'@; put 'K01ufWZ1bmN0aW9uIHduKGhuLE1uLE1yKXt2YXIga3IscW47aWYoTW48MCl7Zm9yKHFuPU1yKyIuIjsrK01uO3FuKz1Ncik7aG49cW4raG59ZWxzZSBpZigrK01uPihrcj1obi5sZW5ndGgpKXtmb3IocW49TXIsTW4tPWtyOy0tTW47cW4rPU1yKTtobis9cW59ZWxzZSBNbjxrciYmKGhuPWhu'@; put 'LnNsaWNlKDAsTW4pKyIuIitobi5zbGljZShNbikpO3JldHVybiBobn1hPWZ1bmN0aW9uIEJlKGhuKXt2YXIgTW4sTXIsa3IsR3QsYm4scW49eHQucHJvdG90eXBlPXtjb25zdHJ1Y3Rvcjp4dCx0b1N0cmluZzpudWxsLHZhbHVlT2Y6bnVsbH0sZ3I9bmV3IHh0KDEpLHFyPTIwLF9pPTQsUG49'@; put 'LTcsVXI9MjEsdHI9LTFlNyxCcj0xZTcsWXI9ITEsd2k9MSxCaT0wLGhhPXtwcmVmaXg6IiIsZ3JvdXBTaXplOjMsc2Vjb25kYXJ5R3JvdXBTaXplOjAsZ3JvdXBTZXBhcmF0b3I6IiwiLGRlY2ltYWxTZXBhcmF0b3I6Ii4iLGZyYWN0aW9uR3JvdXBTaXplOjAsZnJhY3Rpb25Hcm91cFNlcGFy'@; put 'YXRvcjoiXHhhMCIsc3VmZml4OiIifSxtYT0iMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iix2dD0hMDtmdW5jdGlvbiB4dChHdCxibil7dmFyIHhuLEluLFhuLE5uLHZyLFduLGZyLERyLE9yPXRoaXM7aWYoIShPciBpbnN0YW5jZW9mIHh0KSlyZXR1cm4gbmV3IHh0KEd0'@; put 'LGJuKTtpZihudWxsPT1ibil7aWYoR3QmJiEwPT09R3QuX2lzQmlnTnVtYmVyKXJldHVybiBPci5zPUd0LnMsdm9pZCghR3QuY3x8R3QuZT5Ccj9Pci5jPU9yLmU9bnVsbDpHdC5lPHRyP09yLmM9W09yLmU9MF06KE9yLmU9R3QuZSxPci5jPUd0LmMuc2xpY2UoKSkpO2lmKChXbj0ibnVtYmVy'@; put 'Ij09dHlwZW9mIEd0KSYmMCpHdD09MCl7aWYoT3Iucz0xL0d0PDA/KEd0PS1HdCwtMSk6MSxHdD09PX5+R3Qpe2ZvcihObj0wLHZyPUd0O3ZyPj0xMDt2ci89MTAsTm4rKyk7cmV0dXJuIHZvaWQoTm4+QnI/T3IuYz1Pci5lPW51bGw6KE9yLmU9Tm4sT3IuYz1bR3RdKSl9RHI9U3RyaW5nKEd0'@; put 'KX1lbHNle2lmKCFkLnRlc3QoRHI9U3RyaW5nKEd0KSkpcmV0dXJuIGtyKE9yLERyLFduKTtPci5zPTQ1PT1Eci5jaGFyQ29kZUF0KDApPyhEcj1Eci5zbGljZSgxKSwtMSk6MX0oTm49RHIuaW5kZXhPZigiLiIpKT4tMSYmKERyPURyLnJlcGxhY2UoIi4iLCIiKSksKHZyPURyLnNlYXJjaCgv'@; put 'ZS9pKSk+MD8oTm48MCYmKE5uPXZyKSxObis9K0RyLnNsaWNlKHZyKzEpLERyPURyLnN1YnN0cmluZygwLHZyKSk6Tm48MCYmKE5uPURyLmxlbmd0aCl9ZWxzZXtpZihkdChibiwyLG1hLmxlbmd0aCwiQmFzZSIpLDEwPT1ibiYmdnQpcmV0dXJuIGFyKE9yPW5ldyB4dChHdCkscXIrT3IuZSsx'@; put 'LF9pKTtpZihEcj1TdHJpbmcoR3QpLFduPSJudW1iZXIiPT10eXBlb2YgR3Qpe2lmKDAqR3QhPTApcmV0dXJuIGtyKE9yLERyLFduLGJuKTtpZihPci5zPTEvR3Q8MD8oRHI9RHIuc2xpY2UoMSksLTEpOjEseHQuREVCVUcmJkRyLnJlcGxhY2UoL14wXC4wKnxcLi8sIiIpLmxlbmd0aD4xNSl0'@; put 'aHJvdyBFcnJvcihNK0d0KX1lbHNlIE9yLnM9NDU9PT1Eci5jaGFyQ29kZUF0KDApPyhEcj1Eci5zbGljZSgxKSwtMSk6MTtmb3IoeG49bWEuc2xpY2UoMCxibiksTm49dnI9MCxmcj1Eci5sZW5ndGg7dnI8ZnI7dnIrKylpZih4bi5pbmRleE9mKEluPURyLmNoYXJBdCh2cikpPDApe2lmKCIu'@; put 'Ij09SW4pe2lmKHZyPk5uKXtObj1mcjtjb250aW51ZX19ZWxzZSBpZighWG4mJihEcj09RHIudG9VcHBlckNhc2UoKSYmKERyPURyLnRvTG93ZXJDYXNlKCkpfHxEcj09RHIudG9Mb3dlckNhc2UoKSYmKERyPURyLnRvVXBwZXJDYXNlKCkpKSl7WG49ITAsdnI9LTEsTm49MDtjb250aW51ZX1y'@; put 'ZXR1cm4ga3IoT3IsU3RyaW5nKEd0KSxXbixibil9V249ITEsKE5uPShEcj1NcihEcixibiwxMCxPci5zKSkuaW5kZXhPZigiLiIpKT4tMT9Ecj1Eci5yZXBsYWNlKCIuIiwiIik6Tm49RHIubGVuZ3RofWZvcih2cj0wOzQ4PT09RHIuY2hhckNvZGVBdCh2cik7dnIrKyk7Zm9yKGZyPURyLmxl'@; put 'bmd0aDs0OD09PURyLmNoYXJDb2RlQXQoLS1mcik7KTtpZihEcj1Eci5zbGljZSh2ciwrK2ZyKSl7aWYoZnItPXZyLFduJiZ4dC5ERUJVRyYmZnI+MTUmJihHdD5yZXx8R3QhPT1mKEd0KSkpdGhyb3cgRXJyb3IoTStPci5zKkd0KTtpZigoTm49Tm4tdnItMSk+QnIpT3IuYz1Pci5lPW51bGw7'@; put 'ZWxzZSBpZihObjx0cilPci5jPVtPci5lPTBdO2Vsc2V7aWYoT3IuZT1ObixPci5jPVtdLHZyPShObisxKSVHLE5uPDAmJih2cis9RyksdnI8ZnIpe2Zvcih2ciYmT3IuYy5wdXNoKCtEci5zbGljZSgwLHZyKSksZnItPUc7dnI8ZnI7KU9yLmMucHVzaCgrRHIuc2xpY2UodnIsdnIrPUcpKTt2'@; put 'cj1HLShEcj1Eci5zbGljZSh2cikpLmxlbmd0aH1lbHNlIHZyLT1mcjtmb3IoO3ZyLS07RHIrPSIwIik7T3IuYy5wdXNoKCtEcil9fWVsc2UgT3IuYz1bT3IuZT0wXX1mdW5jdGlvbiAkdChHdCxibix4bixJbil7dmFyIFhuLE5uLHZyLFduLGZyO2lmKG51bGw9PXhuP3huPV9pOmR0KHhuLDAs'@; put 'OCksIUd0LmMpcmV0dXJuIEd0LnRvU3RyaW5nKCk7aWYoWG49R3QuY1swXSx2cj1HdC5lLG51bGw9PWJuKWZyPXN0KEd0LmMpLGZyPTE9PUlufHwyPT1JbiYmKHZyPD1Qbnx8dnI+PVVyKT9tbihmcix2cik6d24oZnIsdnIsIjAiKTtlbHNlIGlmKE5uPShHdD1hcihuZXcgeHQoR3QpLGJuLHhu'@; put 'KSkuZSxXbj0oZnI9c3QoR3QuYykpLmxlbmd0aCwxPT1Jbnx8Mj09SW4mJihibjw9Tm58fE5uPD1Qbikpe2Zvcig7V248Ym47ZnIrPSIwIixXbisrKTtmcj1tbihmcixObil9ZWxzZSBpZihibi09dnIsZnI9d24oZnIsTm4sIjAiKSxObisxPlduKXtpZigtLWJuPjApZm9yKGZyKz0iLiI7Ym4t'@; put 'LTtmcis9IjAiKTt9ZWxzZSBpZigoYm4rPU5uLVduKT4wKWZvcihObisxPT1XbiYmKGZyKz0iLiIpO2JuLS07ZnIrPSIwIik7cmV0dXJuIEd0LnM8MCYmWG4/Ii0iK2ZyOmZyfWZ1bmN0aW9uIFluKEd0LGJuKXtmb3IodmFyIHhuLEluLFhuPTEsTm49bmV3IHh0KEd0WzBdKTtYbjxHdC5sZW5n'@; put 'dGg7WG4rKykoIShJbj1uZXcgeHQoR3RbWG5dKSkuc3x8KHhuPXB0KE5uLEluKSk9PT1ibnx8MD09PXhuJiZObi5zPT09Ym4pJiYoTm49SW4pO3JldHVybiBObn1mdW5jdGlvbiAkbihHdCxibix4bil7Zm9yKHZhciBJbj0xLFhuPWJuLmxlbmd0aDshYm5bLS1Ybl07Ym4ucG9wKCkpO2ZvcihY'@; put 'bj1iblswXTtYbj49MTA7WG4vPTEwLEluKyspO3JldHVybih4bj1Jbit4bipHLTEpPkJyP0d0LmM9R3QuZT1udWxsOnhuPHRyP0d0LmM9W0d0LmU9MF06KEd0LmU9eG4sR3QuYz1ibiksR3R9ZnVuY3Rpb24gYXIoR3QsYm4seG4sSW4pe3ZhciBYbixObix2cixXbixmcixEcixPcix1aT1HdC5j'@; put 'LEVhPXVlO2lmKHVpKXtlOntmb3IoWG49MSxXbj11aVswXTtXbj49MTA7V24vPTEwLFhuKyspO2lmKChObj1ibi1Ybik8MClObis9Ryxmcj11aVtEcj0wXSxPcj1mKGZyL0VhW1huLSh2cj1ibiktMV0lMTApO2Vsc2UgaWYoKERyPWgoKE5uKzEpL0cpKT49dWkubGVuZ3RoKXtpZighSW4pYnJl'@; put 'YWsgZTtmb3IoO3VpLmxlbmd0aDw9RHI7dWkucHVzaCgwKSk7ZnI9T3I9MCxYbj0xLHZyPShObiU9RyktRysxfWVsc2V7Zm9yKGZyPVduPXVpW0RyXSxYbj0xO1duPj0xMDtXbi89MTAsWG4rKyk7T3I9KHZyPShObiU9RyktRytYbik8MD8wOmYoZnIvRWFbWG4tdnItMV0lMTApfWlmKEluPUlu'@; put 'fHxibjwwfHxudWxsIT11aVtEcisxXXx8KHZyPDA/ZnI6ZnIlRWFbWG4tdnItMV0pLEluPXhuPDQ/KE9yfHxJbikmJigwPT14bnx8eG49PShHdC5zPDA/MzoyKSk6T3I+NXx8NT09T3ImJig0PT14bnx8SW58fDY9PXhuJiYoTm4+MD92cj4wP2ZyL0VhW1huLXZyXTowOnVpW0RyLTFdKSUxMCYx'@; put 'fHx4bj09KEd0LnM8MD84OjcpKSxibjwxfHwhdWlbMF0pcmV0dXJuIHVpLmxlbmd0aD0wLEluPyh1aVswXT1FYVsoRy0oYm4tPUd0LmUrMSklRyklR10sR3QuZT0tYm58fDApOnVpWzBdPUd0LmU9MCxHdDtpZigwPT1Obj8odWkubGVuZ3RoPURyLFduPTEsRHItLSk6KHVpLmxlbmd0aD1Ecisx'@; put 'LFduPUVhW0ctTm5dLHVpW0RyXT12cj4wP2YoZnIvRWFbWG4tdnJdJUVhW3ZyXSkqV246MCksSW4pZm9yKDs7KXtpZigwPT1Ecil7Zm9yKE5uPTEsdnI9dWlbMF07dnI+PTEwO3ZyLz0xMCxObisrKTtmb3IodnI9dWlbMF0rPVduLFduPTE7dnI+PTEwO3ZyLz0xMCxXbisrKTtObiE9V24mJihH'@; put 'dC5lKyssdWlbMF09PUkmJih1aVswXT0xKSk7YnJlYWt9aWYodWlbRHJdKz1Xbix1aVtEcl0hPUkpYnJlYWs7dWlbRHItLV09MCxXbj0xfWZvcihObj11aS5sZW5ndGg7MD09PXVpWy0tTm5dO3VpLnBvcCgpKTt9R3QuZT5Ccj9HdC5jPUd0LmU9bnVsbDpHdC5lPHRyJiYoR3QuYz1bR3QuZT0w'@; put 'XSl9cmV0dXJuIEd0fWZ1bmN0aW9uIEdyKEd0KXt2YXIgYm4seG49R3QuZTtyZXR1cm4gbnVsbD09PXhuP0d0LnRvU3RyaW5nKCk6KGJuPXN0KEd0LmMpLGJuPXhuPD1Qbnx8eG4+PVVyP21uKGJuLHhuKTp3bihibix4biwiMCIpLEd0LnM8MD8iLSIrYm46Ym4pfXJldHVybiB4dC5jbG9uZT1C'@; put 'ZSx4dC5ST1VORF9VUD0wLHh0LlJPVU5EX0RPV049MSx4dC5ST1VORF9DRUlMPTIseHQuUk9VTkRfRkxPT1I9Myx4dC5ST1VORF9IQUxGX1VQPTQseHQuUk9VTkRfSEFMRl9ET1dOPTUseHQuUk9VTkRfSEFMRl9FVkVOPTYseHQuUk9VTkRfSEFMRl9DRUlMPTcseHQuUk9VTkRfSEFMRl9GTE9P'@; put 'Uj04LHh0LkVVQ0xJRD05LHh0LmNvbmZpZz14dC5zZXQ9ZnVuY3Rpb24oR3Qpe3ZhciBibix4bjtpZihudWxsIT1HdCl7aWYoIm9iamVjdCIhPXR5cGVvZiBHdCl0aHJvdyBFcnJvcih2KyJPYmplY3QgZXhwZWN0ZWQ6ICIrR3QpO2lmKEd0Lmhhc093blByb3BlcnR5KGJuPSJERUNJTUFMX1BM'@; put 'QUNFUyIpJiYoZHQoeG49R3RbYm5dLDAsRWUsYm4pLHFyPXhuKSxHdC5oYXNPd25Qcm9wZXJ0eShibj0iUk9VTkRJTkdfTU9ERSIpJiYoZHQoeG49R3RbYm5dLDAsOCxibiksX2k9eG4pLEd0Lmhhc093blByb3BlcnR5KGJuPSJFWFBPTkVOVElBTF9BVCIpJiYoKHhuPUd0W2JuXSkmJnhuLnBv'@; put 'cD8oZHQoeG5bMF0sLUVlLDAsYm4pLGR0KHhuWzFdLDAsRWUsYm4pLFBuPXhuWzBdLFVyPXhuWzFdKTooZHQoeG4sLUVlLEVlLGJuKSxQbj0tKFVyPXhuPDA/LXhuOnhuKSkpLEd0Lmhhc093blByb3BlcnR5KGJuPSJSQU5HRSIpKWlmKCh4bj1HdFtibl0pJiZ4bi5wb3ApZHQoeG5bMF0sLUVl'@; put 'LC0xLGJuKSxkdCh4blsxXSwxLEVlLGJuKSx0cj14blswXSxCcj14blsxXTtlbHNle2lmKGR0KHhuLC1FZSxFZSxibiksIXhuKXRocm93IEVycm9yKHYrYm4rIiBjYW5ub3QgYmUgemVybzogIit4bik7dHI9LShCcj14bjwwPy14bjp4bil9aWYoR3QuaGFzT3duUHJvcGVydHkoYm49IkNSWVBU'@; put 'TyIpKXtpZigoeG49R3RbYm5dKSE9PSEheG4pdGhyb3cgRXJyb3IoditibisiIG5vdCB0cnVlIG9yIGZhbHNlOiAiK3huKTtpZih4bil7aWYoISh0eXBlb2YgY3J5cHRvPCJ1IiYmY3J5cHRvJiYoY3J5cHRvLmdldFJhbmRvbVZhbHVlc3x8Y3J5cHRvLnJhbmRvbUJ5dGVzKSkpdGhyb3cgWXI9'@; put 'IXhuLEVycm9yKHYrImNyeXB0byB1bmF2YWlsYWJsZSIpO1lyPXhufWVsc2UgWXI9eG59aWYoR3QuaGFzT3duUHJvcGVydHkoYm49Ik1PRFVMT19NT0RFIikmJihkdCh4bj1HdFtibl0sMCw5LGJuKSx3aT14biksR3QuaGFzT3duUHJvcGVydHkoYm49IlBPV19QUkVDSVNJT04iKSYmKGR0KHhu'@; put 'PUd0W2JuXSwwLEVlLGJuKSxCaT14biksR3QuaGFzT3duUHJvcGVydHkoYm49IkZPUk1BVCIpKXtpZigib2JqZWN0IiE9dHlwZW9mKHhuPUd0W2JuXSkpdGhyb3cgRXJyb3IoditibisiIG5vdCBhbiBvYmplY3Q6ICIreG4pO2hhPXhufWlmKEd0Lmhhc093blByb3BlcnR5KGJuPSJBTFBIQUJF'@; put 'VCIpKXtpZigic3RyaW5nIiE9dHlwZW9mKHhuPUd0W2JuXSl8fC9eLj8kfFsrXC0uXHNdfCguKS4qXDEvLnRlc3QoeG4pKXRocm93IEVycm9yKHYrYm4rIiBpbnZhbGlkOiAiK3huKTt2dD0iMDEyMzQ1Njc4OSI9PXhuLnNsaWNlKDAsMTApLG1hPXhufX1yZXR1cm57REVDSU1BTF9QTEFDRVM6'@; put 'cXIsUk9VTkRJTkdfTU9ERTpfaSxFWFBPTkVOVElBTF9BVDpbUG4sVXJdLFJBTkdFOlt0cixCcl0sQ1JZUFRPOllyLE1PRFVMT19NT0RFOndpLFBPV19QUkVDSVNJT046QmksRk9STUFUOmhhLEFMUEhBQkVUOm1hfX0seHQuaXNCaWdOdW1iZXI9ZnVuY3Rpb24oR3Qpe2lmKCFHdHx8ITAhPT1H'@; put 'dC5faXNCaWdOdW1iZXIpcmV0dXJuITE7aWYoIXh0LkRFQlVHKXJldHVybiEwO3ZhciBibix4bixJbj1HdC5jLFhuPUd0LmUsTm49R3QucztlOmlmKCJbb2JqZWN0IEFycmF5XSI9PXt9LnRvU3RyaW5nLmNhbGwoSW4pKXtpZigoMT09PU5ufHwtMT09PU5uKSYmWG4+PS1FZSYmWG48PUVlJiZY'@; put 'bj09PWYoWG4pKXtpZigwPT09SW5bMF0pe2lmKDA9PT1YbiYmMT09PUluLmxlbmd0aClyZXR1cm4hMDticmVhayBlfWlmKChibj0oWG4rMSklRyk8MSYmKGJuKz1HKSxTdHJpbmcoSW5bMF0pLmxlbmd0aD09Ym4pe2Zvcihibj0wO2JuPEluLmxlbmd0aDtibisrKWlmKCh4bj1Jbltibl0pPDB8'@; put 'fHhuPj1JfHx4biE9PWYoeG4pKWJyZWFrIGU7aWYoMCE9PXhuKXJldHVybiEwfX19ZWxzZSBpZihudWxsPT09SW4mJm51bGw9PT1YbiYmKG51bGw9PT1Obnx8MT09PU5ufHwtMT09PU5uKSlyZXR1cm4hMDt0aHJvdyBFcnJvcih2KyJJbnZhbGlkIEJpZ051bWJlcjogIitHdCl9LHh0Lm1heGlt'@; put 'dW09eHQubWF4PWZ1bmN0aW9uKCl7cmV0dXJuIFluKGFyZ3VtZW50cywtMSl9LHh0Lm1pbmltdW09eHQubWluPWZ1bmN0aW9uKCl7cmV0dXJuIFluKGFyZ3VtZW50cywxKX0seHQucmFuZG9tPShHdD05MDA3MTk5MjU0NzQwOTkyLGJuPU1hdGgucmFuZG9tKCkqR3QmMjA5NzE1MT9mdW5jdGlv'@; put 'bigpe3JldHVybiBmKE1hdGgucmFuZG9tKCkqR3QpfTpmdW5jdGlvbigpe3JldHVybiA4Mzg4NjA4KigxMDczNzQxODI0Kk1hdGgucmFuZG9tKCl8MCkrKDgzODg2MDgqTWF0aC5yYW5kb20oKXwwKX0sZnVuY3Rpb24oeG4pe3ZhciBJbixYbixObix2cixXbixmcj0wLERyPVtdLE9yPW5ldyB4'@; put 'dChncik7aWYobnVsbD09eG4/eG49cXI6ZHQoeG4sMCxFZSksdnI9aCh4bi9HKSxZcilpZihjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKXtmb3IoSW49Y3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDMyQXJyYXkodnIqPTIpKTtmcjx2cjspKFduPTEzMTA3MipJbltmcl0rKEluW2ZyKzFd'@; put 'Pj4+MTEpKT49OWUxNT8oWG49Y3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDMyQXJyYXkoMikpLEluW2ZyXT1YblswXSxJbltmcisxXT1YblsxXSk6KERyLnB1c2goV24lMWUxNCksZnIrPTIpO2ZyPXZyLzJ9ZWxzZXtpZighY3J5cHRvLnJhbmRvbUJ5dGVzKXRocm93IFlyPSExLEVy'@; put 'cm9yKHYrImNyeXB0byB1bmF2YWlsYWJsZSIpO2ZvcihJbj1jcnlwdG8ucmFuZG9tQnl0ZXModnIqPTcpO2ZyPHZyOykoV249MjgxNDc0OTc2NzEwNjU2KigzMSZJbltmcl0pKzEwOTk1MTE2Mjc3NzYqSW5bZnIrMV0rNDI5NDk2NzI5NipJbltmcisyXSsxNjc3NzIxNipJbltmciszXSsoSW5b'@; put 'ZnIrNF08PDE2KSsoSW5bZnIrNV08PDgpK0luW2ZyKzZdKT49OWUxNT9jcnlwdG8ucmFuZG9tQnl0ZXMoNykuY29weShJbixmcik6KERyLnB1c2goV24lMWUxNCksZnIrPTcpO2ZyPXZyLzd9aWYoIVlyKWZvcig7ZnI8dnI7KShXbj1ibigpKTw5ZTE1JiYoRHJbZnIrK109V24lMWUxNCk7Zm9y'@; put 'KHZyPURyWy0tZnJdLHhuJT1HLHZyJiZ4biYmKERyW2ZyXT1mKHZyLyhXbj11ZVtHLXhuXSkpKlduKTswPT09RHJbZnJdO0RyLnBvcCgpLGZyLS0pO2lmKGZyPDApRHI9W05uPTBdO2Vsc2V7Zm9yKE5uPS0xOzA9PT1EclswXTtEci5zcGxpY2UoMCwxKSxObi09Ryk7Zm9yKGZyPTEsV249RHJb'@; put 'MF07V24+PTEwO1duLz0xMCxmcisrKTtmcjxHJiYoTm4tPUctZnIpfXJldHVybiBPci5lPU5uLE9yLmM9RHIsT3J9KSx4dC5zdW09ZnVuY3Rpb24oKXtmb3IodmFyIEd0PTEsYm49YXJndW1lbnRzLHhuPW5ldyB4dChiblswXSk7R3Q8Ym4ubGVuZ3RoOyl4bj14bi5wbHVzKGJuW0d0KytdKTty'@; put 'ZXR1cm4geG59LE1yPWZ1bmN0aW9uKCl7dmFyIEd0PSIwMTIzNDU2Nzg5IjtmdW5jdGlvbiBibih4bixJbixYbixObil7Zm9yKHZhciB2cixmcixXbj1bMF0sRHI9MCxPcj14bi5sZW5ndGg7RHI8T3I7KXtmb3IoZnI9V24ubGVuZ3RoO2ZyLS07V25bZnJdKj1Jbik7Zm9yKFduWzBdKz1Obi5p'@; put 'bmRleE9mKHhuLmNoYXJBdChEcisrKSksdnI9MDt2cjxXbi5sZW5ndGg7dnIrKylXblt2cl0+WG4tMSYmKG51bGw9PVduW3ZyKzFdJiYoV25bdnIrMV09MCksV25bdnIrMV0rPVduW3ZyXS9YbnwwLFduW3ZyXSU9WG4pfXJldHVybiBXbi5yZXZlcnNlKCl9cmV0dXJuIGZ1bmN0aW9uKHhuLElu'@; put 'LFhuLE5uLHZyKXt2YXIgV24sZnIsRHIsT3IsdWksRWEsWmksRHMsdW89eG4uaW5kZXhPZigiLiIpLFdzPXFyLFNzPV9pO2Zvcih1bz49MCYmKE9yPUJpLEJpPTAseG49eG4ucmVwbGFjZSgiLiIsIiIpLEVhPShEcz1uZXcgeHQoSW4pKS5wb3coeG4ubGVuZ3RoLXVvKSxCaT1PcixEcy5jPWJu'@; put 'KHduKHN0KEVhLmMpLEVhLmUsIjAiKSwxMCxYbixHdCksRHMuZT1Ecy5jLmxlbmd0aCksRHI9T3I9KFppPWJuKHhuLEluLFhuLHZyPyhXbj1tYSxHdCk6KFduPUd0LG1hKSkpLmxlbmd0aDswPT1aaVstLU9yXTtaaS5wb3AoKSk7aWYoIVppWzBdKXJldHVybiBXbi5jaGFyQXQoMCk7aWYodW88'@; put 'MD8tLURyOihFYS5jPVppLEVhLmU9RHIsRWEucz1ObixaaT0oRWE9TW4oRWEsRHMsV3MsU3MsWG4pKS5jLHVpPUVhLnIsRHI9RWEuZSksdW89WmlbZnI9RHIrV3MrMV0sT3I9WG4vMix1aT11aXx8ZnI8MHx8bnVsbCE9WmlbZnIrMV0sdWk9U3M8ND8obnVsbCE9dW98fHVpKSYmKDA9PVNzfHxT'@; put 'cz09KEVhLnM8MD8zOjIpKTp1bz5Pcnx8dW89PU9yJiYoND09U3N8fHVpfHw2PT1TcyYmMSZaaVtmci0xXXx8U3M9PShFYS5zPDA/ODo3KSksZnI8MXx8IVppWzBdKXhuPXVpP3duKFduLmNoYXJBdCgxKSwtV3MsV24uY2hhckF0KDApKTpXbi5jaGFyQXQoMCk7ZWxzZXtpZihaaS5sZW5ndGg9'@; put 'ZnIsdWkpZm9yKC0tWG47KytaaVstLWZyXT5YbjspWmlbZnJdPTAsZnJ8fCgrK0RyLFppPVsxXS5jb25jYXQoWmkpKTtmb3IoT3I9WmkubGVuZ3RoOyFaaVstLU9yXTspO2Zvcih1bz0wLHhuPSIiO3VvPD1Pcjt4bis9V24uY2hhckF0KFppW3VvKytdKSk7eG49d24oeG4sRHIsV24uY2hhckF0'@; put 'KDApKX1yZXR1cm4geG59fSgpLE1uPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gR3QoSW4sWG4sTm4pe3ZhciB2cixXbixmcixEcixPcj0wLHVpPUluLmxlbmd0aCxFYT1YbiV5ZSxaaT1Ybi95ZXwwO2ZvcihJbj1Jbi5zbGljZSgpO3VpLS07KU9yPSgoV249RWEqKGZyPUluW3VpXSV5ZSkrKHZyPVpp'@; put 'KmZyKyhEcj1Jblt1aV0veWV8MCkqRWEpJXllKnllK09yKS9ObnwwKSsodnIveWV8MCkrWmkqRHIsSW5bdWldPVduJU5uO3JldHVybiBPciYmKEluPVtPcl0uY29uY2F0KEluKSksSW59ZnVuY3Rpb24gYm4oSW4sWG4sTm4sdnIpe3ZhciBXbixmcjtpZihObiE9dnIpZnI9Tm4+dnI/MTotMTtl'@; put 'bHNlIGZvcihXbj1mcj0wO1duPE5uO1duKyspaWYoSW5bV25dIT1YbltXbl0pe2ZyPUluW1duXT5YbltXbl0/MTotMTticmVha31yZXR1cm4gZnJ9ZnVuY3Rpb24geG4oSW4sWG4sTm4sdnIpe2Zvcih2YXIgV249MDtObi0tOylJbltObl0tPVduLEluW05uXT0oV249SW5bTm5dPFhuW05uXT8x'@; put 'OjApKnZyK0luW05uXS1YbltObl07Zm9yKDshSW5bMF0mJkluLmxlbmd0aD4xO0luLnNwbGljZSgwLDEpKTt9cmV0dXJuIGZ1bmN0aW9uKEluLFhuLE5uLHZyLFduKXt2YXIgZnIsRHIsT3IsdWksRWEsWmksRHMsdW8sV3MsU3MsTXMsZm8seDAsWWgsUWQsRGMsdGMsJG89SW4ucz09WG4ucz8x'@; put 'Oi0xLCRsPUluLmMsa289WG4uYztpZighKCRsJiYkbFswXSYma28mJmtvWzBdKSlyZXR1cm4gbmV3IHh0KEluLnMmJlhuLnMmJigkbD8ha298fCRsWzBdIT1rb1swXTprbyk/JGwmJjA9PSRsWzBdfHwha28/MCokbzokby8wOk5hTik7Zm9yKFdzPSh1bz1uZXcgeHQoJG8pKS5jPVtdLCRvPU5u'@; put 'KyhEcj1Jbi5lLVhuLmUpKzEsV258fChXbj1JLERyPUdlKEluLmUvRyktR2UoWG4uZS9HKSwkbz0kby9HfDApLE9yPTA7a29bT3JdPT0oJGxbT3JdfHwwKTtPcisrKTtpZihrb1tPcl0+KCRsW09yXXx8MCkmJkRyLS0sJG88MClXcy5wdXNoKDEpLHVpPSEwO2Vsc2V7Zm9yKFloPSRsLmxlbmd0'@; put 'aCxEYz1rby5sZW5ndGgsT3I9MCwkbys9MiwoRWE9ZihXbi8oa29bMF0rMSkpKT4xJiYoa289R3Qoa28sRWEsV24pLCRsPUd0KCRsLEVhLFduKSxEYz1rby5sZW5ndGgsWWg9JGwubGVuZ3RoKSx4MD1EYyxNcz0oU3M9JGwuc2xpY2UoMCxEYykpLmxlbmd0aDtNczxEYztTc1tNcysrXT0wKTt0'@; put 'Yz1rby5zbGljZSgpLHRjPVswXS5jb25jYXQodGMpLFFkPWtvWzBdLGtvWzFdPj1Xbi8yJiZRZCsrO2Rve2lmKEVhPTAsKGZyPWJuKGtvLFNzLERjLE1zKSk8MCl7aWYoZm89U3NbMF0sRGMhPU1zJiYoZm89Zm8qV24rKFNzWzFdfHwwKSksKEVhPWYoZm8vUWQpKT4xKWZvcihFYT49V24mJihF'@; put 'YT1Xbi0xKSxEcz0oWmk9R3Qoa28sRWEsV24pKS5sZW5ndGgsTXM9U3MubGVuZ3RoOzE9PWJuKFppLFNzLERzLE1zKTspRWEtLSx4bihaaSxEYzxEcz90YzprbyxEcyxXbiksRHM9WmkubGVuZ3RoLGZyPTE7ZWxzZSAwPT1FYSYmKGZyPUVhPTEpLERzPShaaT1rby5zbGljZSgpKS5sZW5ndGg7'@; put 'aWYoRHM8TXMmJihaaT1bMF0uY29uY2F0KFppKSkseG4oU3MsWmksTXMsV24pLE1zPVNzLmxlbmd0aCwtMT09ZnIpZm9yKDtibihrbyxTcyxEYyxNcyk8MTspRWErKyx4bihTcyxEYzxNcz90YzprbyxNcyxXbiksTXM9U3MubGVuZ3RofWVsc2UgMD09PWZyJiYoRWErKyxTcz1bMF0pO1dzW09y'@; put 'KytdPUVhLFNzWzBdP1NzW01zKytdPSRsW3gwXXx8MDooU3M9WyRsW3gwXV0sTXM9MSl9d2hpbGUoKHgwKys8WWh8fG51bGwhPVNzWzBdKSYmJG8tLSk7dWk9bnVsbCE9U3NbMF0sV3NbMF18fFdzLnNwbGljZSgwLDEpfWlmKFduPT1JKXtmb3IoT3I9MSwkbz1Xc1swXTskbz49MTA7JG8vPTEw'@; put 'LE9yKyspO2FyKHVvLE5uKyh1by5lPU9yK0RyKkctMSkrMSx2cix1aSl9ZWxzZSB1by5lPURyLHVvLnI9K3VpO3JldHVybiB1b319KCksa3I9ZnVuY3Rpb24oKXt2YXIgR3Q9L14oLT8pMChbeGJvXSkoPz1cd1tcdy5dKiQpL2ksYm49L14oW14uXSspXC4kLyx4bj0vXlwuKFteLl0rKSQvLElu'@; put 'PS9eLT8oSW5maW5pdHl8TmFOKSQvLFhuPS9eXHMqXCsoPz1bXHcuXSl8XlxzK3xccyskL2c7cmV0dXJuIGZ1bmN0aW9uKE5uLHZyLFduLGZyKXt2YXIgRHIsT3I9V24/dnI6dnIucmVwbGFjZShYbiwiIik7aWYoSW4udGVzdChPcikpTm4ucz1pc05hTihPcik/bnVsbDpPcjwwPy0xOjE7ZWxz'@; put 'ZXtpZighV24mJihPcj1Pci5yZXBsYWNlKEd0LGZ1bmN0aW9uKHVpLEVhLFppKXtyZXR1cm4gRHI9IngiPT0oWmk9WmkudG9Mb3dlckNhc2UoKSk/MTY6ImIiPT1aaT8yOjgsZnImJmZyIT1Ecj91aTpFYX0pLGZyJiYoRHI9ZnIsT3I9T3IucmVwbGFjZShibiwiJDEiKS5yZXBsYWNlKHhuLCIw'@; put 'LiQxIikpLHZyIT1PcikpcmV0dXJuIG5ldyB4dChPcixEcik7aWYoeHQuREVCVUcpdGhyb3cgRXJyb3IodisiTm90IGEiKyhmcj8iIGJhc2UgIitmcjoiIikrIiBudW1iZXI6ICIrdnIpO05uLnM9bnVsbH1Obi5jPU5uLmU9bnVsbH19KCkscW4uYWJzb2x1dGVWYWx1ZT1xbi5hYnM9ZnVuY3Rp'@; put 'b24oKXt2YXIgR3Q9bmV3IHh0KHRoaXMpO3JldHVybiBHdC5zPDAmJihHdC5zPTEpLEd0fSxxbi5jb21wYXJlZFRvPWZ1bmN0aW9uKEd0LGJuKXtyZXR1cm4gcHQodGhpcyxuZXcgeHQoR3QsYm4pKX0scW4uZGVjaW1hbFBsYWNlcz1xbi5kcD1mdW5jdGlvbihHdCxibil7dmFyIHhuLEluLFhu'@; put 'O2lmKG51bGwhPUd0KXJldHVybiBkdChHdCwwLEVlKSxudWxsPT1ibj9ibj1faTpkdChibiwwLDgpLGFyKG5ldyB4dCh0aGlzKSxHdCt0aGlzLmUrMSxibik7aWYoISh4bj10aGlzLmMpKXJldHVybiBudWxsO2lmKEluPSgoWG49eG4ubGVuZ3RoLTEpLUdlKHRoaXMuZS9HKSkqRyxYbj14bltY'@; put 'bl0pZm9yKDtYbiUxMD09MDtYbi89MTAsSW4tLSk7cmV0dXJuIEluPDAmJihJbj0wKSxJbn0scW4uZGl2aWRlZEJ5PXFuLmRpdj1mdW5jdGlvbihHdCxibil7cmV0dXJuIE1uKHRoaXMsbmV3IHh0KEd0LGJuKSxxcixfaSl9LHFuLmRpdmlkZWRUb0ludGVnZXJCeT1xbi5pZGl2PWZ1bmN0aW9u'@; put 'KEd0LGJuKXtyZXR1cm4gTW4odGhpcyxuZXcgeHQoR3QsYm4pLDAsMSl9LHFuLmV4cG9uZW50aWF0ZWRCeT1xbi5wb3c9ZnVuY3Rpb24oR3QsYm4pe3ZhciB4bixJbixYbixObixXbixmcixEcixPcix1aT10aGlzO2lmKChHdD1uZXcgeHQoR3QpKS5jJiYhR3QuaXNJbnRlZ2VyKCkpdGhyb3cg'@; put 'RXJyb3IodisiRXhwb25lbnQgbm90IGFuIGludGVnZXI6ICIrR3IoR3QpKTtpZihudWxsIT1ibiYmKGJuPW5ldyB4dChibikpLFduPUd0LmU+MTQsIXVpLmN8fCF1aS5jWzBdfHwxPT11aS5jWzBdJiYhdWkuZSYmMT09dWkuYy5sZW5ndGh8fCFHdC5jfHwhR3QuY1swXSlyZXR1cm4gT3I9bmV3'@; put 'IHh0KE1hdGgucG93KCtHcih1aSksV24/R3QucyooMi1xdChHdCkpOitHcihHdCkpKSxibj9Pci5tb2QoYm4pOk9yO2lmKGZyPUd0LnM8MCxibil7aWYoYm4uYz8hYm4uY1swXTohYm4ucylyZXR1cm4gbmV3IHh0KE5hTik7KEluPSFmciYmdWkuaXNJbnRlZ2VyKCkmJmJuLmlzSW50ZWdlcigp'@; put 'KSYmKHVpPXVpLm1vZChibikpfWVsc2V7aWYoR3QuZT45JiYodWkuZT4wfHx1aS5lPC0xfHwoMD09dWkuZT91aS5jWzBdPjF8fFduJiZ1aS5jWzFdPj0yNGU3OnVpLmNbMF08OGUxM3x8V24mJnVpLmNbMF08PTk5OTk5NzVlNykpKXJldHVybiBObj11aS5zPDAmJnF0KEd0KT8tMDowLHVpLmU+'@; put 'LTEmJihObj0xL05uKSxuZXcgeHQoZnI/MS9ObjpObik7QmkmJihObj1oKEJpL0crMikpfWZvcihXbj8oeG49bmV3IHh0KC41KSxmciYmKEd0LnM9MSksRHI9cXQoR3QpKTpEcj0oWG49TWF0aC5hYnMoK0dyKEd0KSkpJTIsT3I9bmV3IHh0KGdyKTs7KXtpZihEcil7aWYoIShPcj1Pci50aW1l'@; put 'cyh1aSkpLmMpYnJlYWs7Tm4/T3IuYy5sZW5ndGg+Tm4mJihPci5jLmxlbmd0aD1Obik6SW4mJihPcj1Pci5tb2QoYm4pKX1pZihYbil7aWYoMD09PShYbj1mKFhuLzIpKSlicmVhaztEcj1YbiUyfWVsc2UgaWYoYXIoR3Q9R3QudGltZXMoeG4pLEd0LmUrMSwxKSxHdC5lPjE0KURyPXF0KEd0'@; put 'KTtlbHNle2lmKDA9PShYbj0rR3IoR3QpKSlicmVhaztEcj1YbiUyfXVpPXVpLnRpbWVzKHVpKSxObj91aS5jJiZ1aS5jLmxlbmd0aD5ObiYmKHVpLmMubGVuZ3RoPU5uKTpJbiYmKHVpPXVpLm1vZChibikpfXJldHVybiBJbj9PcjooZnImJihPcj1nci5kaXYoT3IpKSxibj9Pci5tb2QoYm4p'@; put 'Ok5uP2FyKE9yLEJpLF9pLHZvaWQgMCk6T3IpfSxxbi5pbnRlZ2VyVmFsdWU9ZnVuY3Rpb24oR3Qpe3ZhciBibj1uZXcgeHQodGhpcyk7cmV0dXJuIG51bGw9PUd0P0d0PV9pOmR0KEd0LDAsOCksYXIoYm4sYm4uZSsxLEd0KX0scW4uaXNFcXVhbFRvPXFuLmVxPWZ1bmN0aW9uKEd0LGJuKXty'@; put 'ZXR1cm4gMD09PXB0KHRoaXMsbmV3IHh0KEd0LGJuKSl9LHFuLmlzRmluaXRlPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmN9LHFuLmlzR3JlYXRlclRoYW49cW4uZ3Q9ZnVuY3Rpb24oR3QsYm4pe3JldHVybiBwdCh0aGlzLG5ldyB4dChHdCxibikpPjB9LHFuLmlzR3JlYXRlclRoYW5PckVx'@; put 'dWFsVG89cW4uZ3RlPWZ1bmN0aW9uKEd0LGJuKXtyZXR1cm4gMT09PShibj1wdCh0aGlzLG5ldyB4dChHdCxibikpKXx8MD09PWJufSxxbi5pc0ludGVnZXI9ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuYyYmR2UodGhpcy5lL0cpPnRoaXMuYy5sZW5ndGgtMn0scW4uaXNMZXNzVGhhbj1xbi5s'@; put 'dD1mdW5jdGlvbihHdCxibil7cmV0dXJuIHB0KHRoaXMsbmV3IHh0KEd0LGJuKSk8MH0scW4uaXNMZXNzVGhhbk9yRXF1YWxUbz1xbi5sdGU9ZnVuY3Rpb24oR3QsYm4pe3JldHVybi0xPT09KGJuPXB0KHRoaXMsbmV3IHh0KEd0LGJuKSkpfHwwPT09Ym59LHFuLmlzTmFOPWZ1bmN0aW9uKCl7'@; put 'cmV0dXJuIXRoaXMuc30scW4uaXNOZWdhdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnM8MH0scW4uaXNQb3NpdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnM+MH0scW4uaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmMmJjA9PXRoaXMuY1swXX0scW4ubWludXM9ZnVuY3Rp'@; put 'b24oR3QsYm4pe3ZhciB4bixJbixYbixObix2cj10aGlzLFduPXZyLnM7aWYoYm49KEd0PW5ldyB4dChHdCxibikpLnMsIVdufHwhYm4pcmV0dXJuIG5ldyB4dChOYU4pO2lmKFduIT1ibilyZXR1cm4gR3Qucz0tYm4sdnIucGx1cyhHdCk7dmFyIGZyPXZyLmUvRyxEcj1HdC5lL0csT3I9dnIu'@; put 'Yyx1aT1HdC5jO2lmKCFmcnx8IURyKXtpZighT3J8fCF1aSlyZXR1cm4gT3I/KEd0LnM9LWJuLEd0KTpuZXcgeHQodWk/dnI6TmFOKTtpZighT3JbMF18fCF1aVswXSlyZXR1cm4gdWlbMF0/KEd0LnM9LWJuLEd0KTpuZXcgeHQoT3JbMF0/dnI6Mz09X2k/LTA6MCl9aWYoZnI9R2UoZnIpLERy'@; put 'PUdlKERyKSxPcj1Pci5zbGljZSgpLFduPWZyLURyKXtmb3IoKE5uPVduPDApPyhXbj0tV24sWG49T3IpOihEcj1mcixYbj11aSksWG4ucmV2ZXJzZSgpLGJuPVduO2JuLS07WG4ucHVzaCgwKSk7WG4ucmV2ZXJzZSgpfWVsc2UgZm9yKEluPShObj0oV249T3IubGVuZ3RoKTwoYm49dWkubGVu'@; put 'Z3RoKSk/V246Ym4sV249Ym49MDtibjxJbjtibisrKWlmKE9yW2JuXSE9dWlbYm5dKXtObj1Pcltibl08dWlbYm5dO2JyZWFrfWlmKE5uJiYoWG49T3IsT3I9dWksdWk9WG4sR3Qucz0tR3QucyksKGJuPShJbj11aS5sZW5ndGgpLSh4bj1Pci5sZW5ndGgpKT4wKWZvcig7Ym4tLTtPclt4bisr'@; put 'XT0wKTtmb3IoYm49SS0xO0luPlduOyl7aWYoT3JbLS1Jbl08dWlbSW5dKXtmb3IoeG49SW47eG4mJiFPclstLXhuXTtPclt4bl09Ym4pOy0tT3JbeG5dLE9yW0luXSs9SX1PcltJbl0tPXVpW0luXX1mb3IoOzA9PU9yWzBdO09yLnNwbGljZSgwLDEpLC0tRHIpO3JldHVybiBPclswXT8kbihH'@; put 'dCxPcixEcik6KEd0LnM9Mz09X2k/LTE6MSxHdC5jPVtHdC5lPTBdLEd0KX0scW4ubW9kdWxvPXFuLm1vZD1mdW5jdGlvbihHdCxibil7dmFyIHhuLEluLFhuPXRoaXM7cmV0dXJuIEd0PW5ldyB4dChHdCxibiksIVhuLmN8fCFHdC5zfHxHdC5jJiYhR3QuY1swXT9uZXcgeHQoTmFOKTohR3Qu'@; put 'Y3x8WG4uYyYmIVhuLmNbMF0/bmV3IHh0KFhuKTooOT09d2k/KEluPUd0LnMsR3Qucz0xLHhuPU1uKFhuLEd0LDAsMyksR3Qucz1Jbix4bi5zKj1Jbik6eG49TW4oWG4sR3QsMCx3aSksIShHdD1Ybi5taW51cyh4bi50aW1lcyhHdCkpKS5jWzBdJiYxPT13aSYmKEd0LnM9WG4ucyksR3QpfSxx'@; put 'bi5tdWx0aXBsaWVkQnk9cW4udGltZXM9ZnVuY3Rpb24oR3QsYm4pe3ZhciB4bixJbixYbixObix2cixXbixmcixEcixPcix1aSxFYSxaaSxEcyx1byxXcyxTcz10aGlzLE1zPVNzLmMsZm89KEd0PW5ldyB4dChHdCxibikpLmM7aWYoIShNcyYmZm8mJk1zWzBdJiZmb1swXSkpcmV0dXJuIVNz'@; put 'LnN8fCFHdC5zfHxNcyYmIU1zWzBdJiYhZm98fGZvJiYhZm9bMF0mJiFNcz9HdC5jPUd0LmU9R3Qucz1udWxsOihHdC5zKj1Tcy5zLE1zJiZmbz8oR3QuYz1bMF0sR3QuZT0wKTpHdC5jPUd0LmU9bnVsbCksR3Q7Zm9yKEluPUdlKFNzLmUvRykrR2UoR3QuZS9HKSxHdC5zKj1Tcy5zLChmcj1N'@; put 'cy5sZW5ndGgpPCh1aT1mby5sZW5ndGgpJiYoRHM9TXMsTXM9Zm8sZm89RHMsWG49ZnIsZnI9dWksdWk9WG4pLFhuPWZyK3VpLERzPVtdO1huLS07RHMucHVzaCgwKSk7Zm9yKHVvPUksV3M9eWUsWG49dWk7LS1Ybj49MDspe2Zvcih4bj0wLEVhPWZvW1huXSVXcyxaaT1mb1tYbl0vV3N8MCxO'@; put 'bj1YbisodnI9ZnIpO05uPlhuOyl4bj0oKERyPUVhKihEcj1Nc1stLXZyXSVXcykrKFduPVppKkRyKyhPcj1Nc1t2cl0vV3N8MCkqRWEpJVdzKldzK0RzW05uXSt4bikvdW98MCkrKFduL1dzfDApK1ppKk9yLERzW05uLS1dPURyJXVvO0RzW05uXT14bn1yZXR1cm4geG4/KytJbjpEcy5zcGxp'@; put 'Y2UoMCwxKSwkbihHdCxEcyxJbil9LHFuLm5lZ2F0ZWQ9ZnVuY3Rpb24oKXt2YXIgR3Q9bmV3IHh0KHRoaXMpO3JldHVybiBHdC5zPS1HdC5zfHxudWxsLEd0fSxxbi5wbHVzPWZ1bmN0aW9uKEd0LGJuKXt2YXIgeG4sSW49dGhpcyxYbj1Jbi5zO2lmKGJuPShHdD1uZXcgeHQoR3QsYm4pKS5z'@; put 'LCFYbnx8IWJuKXJldHVybiBuZXcgeHQoTmFOKTtpZihYbiE9Ym4pcmV0dXJuIEd0LnM9LWJuLEluLm1pbnVzKEd0KTt2YXIgTm49SW4uZS9HLHZyPUd0LmUvRyxXbj1Jbi5jLGZyPUd0LmM7aWYoIU5ufHwhdnIpe2lmKCFXbnx8IWZyKXJldHVybiBuZXcgeHQoWG4vMCk7aWYoIVduWzBdfHwh'@; put 'ZnJbMF0pcmV0dXJuIGZyWzBdP0d0Om5ldyB4dChXblswXT9JbjowKlhuKX1pZihObj1HZShObiksdnI9R2UodnIpLFduPVduLnNsaWNlKCksWG49Tm4tdnIpe2ZvcihYbj4wPyh2cj1Obix4bj1mcik6KFhuPS1Ybix4bj1XbikseG4ucmV2ZXJzZSgpO1huLS07eG4ucHVzaCgwKSk7eG4ucmV2'@; put 'ZXJzZSgpfWZvcigoWG49V24ubGVuZ3RoKS0oYm49ZnIubGVuZ3RoKTwwJiYoeG49ZnIsZnI9V24sV249eG4sYm49WG4pLFhuPTA7Ym47KVhuPShXblstLWJuXT1Xbltibl0rZnJbYm5dK1huKS9JfDAsV25bYm5dPUk9PT1Xbltibl0/MDpXbltibl0lSTtyZXR1cm4gWG4mJihXbj1bWG5dLmNv'@; put 'bmNhdChXbiksKyt2ciksJG4oR3QsV24sdnIpfSxxbi5wcmVjaXNpb249cW4uc2Q9ZnVuY3Rpb24oR3QsYm4pe3ZhciB4bixJbixYbjtpZihudWxsIT1HdCYmR3QhPT0hIUd0KXJldHVybiBkdChHdCwxLEVlKSxudWxsPT1ibj9ibj1faTpkdChibiwwLDgpLGFyKG5ldyB4dCh0aGlzKSxHdCxi'@; put 'bik7aWYoISh4bj10aGlzLmMpKXJldHVybiBudWxsO2lmKEluPShYbj14bi5sZW5ndGgtMSkqRysxLFhuPXhuW1huXSl7Zm9yKDtYbiUxMD09MDtYbi89MTAsSW4tLSk7Zm9yKFhuPXhuWzBdO1huPj0xMDtYbi89MTAsSW4rKyk7fXJldHVybiBHdCYmdGhpcy5lKzE+SW4mJihJbj10aGlzLmUr'@; put 'MSksSW59LHFuLnNoaWZ0ZWRCeT1mdW5jdGlvbihHdCl7cmV0dXJuIGR0KEd0LC1yZSxyZSksdGhpcy50aW1lcygiMWUiK0d0KX0scW4uc3F1YXJlUm9vdD1xbi5zcXJ0PWZ1bmN0aW9uKCl7dmFyIEd0LGJuLHhuLEluLFhuLE5uPXRoaXMsdnI9Tm4uYyxXbj1Obi5zLGZyPU5uLmUsRHI9cXIr'@; put 'NCxPcj1uZXcgeHQoIjAuNSIpO2lmKDEhPT1Xbnx8IXZyfHwhdnJbMF0pcmV0dXJuIG5ldyB4dCghV258fFduPDAmJighdnJ8fHZyWzBdKT9OYU46dnI/Tm46MS8wKTtpZigwPT0oV249TWF0aC5zcXJ0KCtHcihObikpKXx8V249PTEvMD8oKChibj1zdCh2cikpLmxlbmd0aCtmciklMj09MCYm'@; put 'KGJuKz0iMCIpLFduPU1hdGguc3FydCgrYm4pLGZyPUdlKChmcisxKS8yKS0oZnI8MHx8ZnIlMikseG49bmV3IHh0KGJuPVduPT0xLzA/IjVlIitmcjooYm49V24udG9FeHBvbmVudGlhbCgpKS5zbGljZSgwLGJuLmluZGV4T2YoImUiKSsxKStmcikpOnhuPW5ldyB4dChXbisiIikseG4uY1sw'@; put 'XSlmb3IoKFduPShmcj14bi5lKStEcik8MyYmKFduPTApOzspaWYoeG49T3IudGltZXMoKFhuPXhuKS5wbHVzKE1uKE5uLFhuLERyLDEpKSksc3QoWG4uYykuc2xpY2UoMCxXbik9PT0oYm49c3QoeG4uYykpLnNsaWNlKDAsV24pKXtpZih4bi5lPGZyJiYtLVduLCI5OTk5IiE9KGJuPWJuLnNs'@; put 'aWNlKFduLTMsV24rMSkpJiYoSW58fCI0OTk5IiE9Ym4pKXsoIStibnx8IStibi5zbGljZSgxKSYmIjUiPT1ibi5jaGFyQXQoMCkpJiYoYXIoeG4seG4uZStxcisyLDEpLEd0PSF4bi50aW1lcyh4bikuZXEoTm4pKTticmVha31pZighSW4mJihhcihYbixYbi5lK3FyKzIsMCksWG4udGltZXMo'@; put 'WG4pLmVxKE5uKSkpe3huPVhuO2JyZWFrfURyKz00LFduKz00LEluPTF9cmV0dXJuIGFyKHhuLHhuLmUrcXIrMSxfaSxHdCl9LHFuLnRvRXhwb25lbnRpYWw9ZnVuY3Rpb24oR3QsYm4pe3JldHVybiBudWxsIT1HdCYmKGR0KEd0LDAsRWUpLEd0KyspLCR0KHRoaXMsR3QsYm4sMSl9LHFuLnRv'@; put 'Rml4ZWQ9ZnVuY3Rpb24oR3QsYm4pe3JldHVybiBudWxsIT1HdCYmKGR0KEd0LDAsRWUpLEd0PUd0K3RoaXMuZSsxKSwkdCh0aGlzLEd0LGJuKX0scW4udG9Gb3JtYXQ9ZnVuY3Rpb24oR3QsYm4seG4pe3ZhciBJbjtpZihudWxsPT14biludWxsIT1HdCYmYm4mJiJvYmplY3QiPT10eXBlb2Yg'@; put 'Ym4/KHhuPWJuLGJuPW51bGwpOkd0JiYib2JqZWN0Ij09dHlwZW9mIEd0Pyh4bj1HdCxHdD1ibj1udWxsKTp4bj1oYTtlbHNlIGlmKCJvYmplY3QiIT10eXBlb2YgeG4pdGhyb3cgRXJyb3IodisiQXJndW1lbnQgbm90IGFuIG9iamVjdDogIit4bik7aWYoSW49dGhpcy50b0ZpeGVkKEd0LGJu'@; put 'KSx0aGlzLmMpe3ZhciBObix2cj1Jbi5zcGxpdCgiLiIpLFduPSt4bi5ncm91cFNpemUsZnI9K3huLnNlY29uZGFyeUdyb3VwU2l6ZSxEcj14bi5ncm91cFNlcGFyYXRvcnx8IiIsT3I9dnJbMF0sdWk9dnJbMV0sRWE9dGhpcy5zPDAsWmk9RWE/T3Iuc2xpY2UoMSk6T3IsRHM9WmkubGVuZ3Ro'@; put 'O2lmKGZyJiYoTm49V24sV249ZnIsZnI9Tm4sRHMtPU5uKSxXbj4wJiZEcz4wKXtmb3IoT3I9Wmkuc3Vic3RyKDAsTm49RHMlV258fFduKTtObjxEcztObis9V24pT3IrPURyK1ppLnN1YnN0cihObixXbik7ZnI+MCYmKE9yKz1EcitaaS5zbGljZShObikpLEVhJiYoT3I9Ii0iK09yKX1Jbj11'@; put 'aT9PcisoeG4uZGVjaW1hbFNlcGFyYXRvcnx8IiIpKygoZnI9K3huLmZyYWN0aW9uR3JvdXBTaXplKT91aS5yZXBsYWNlKG5ldyBSZWdFeHAoIlxcZHsiK2ZyKyJ9XFxCIiwiZyIpLCIkJiIrKHhuLmZyYWN0aW9uR3JvdXBTZXBhcmF0b3J8fCIiKSk6dWkpOk9yfXJldHVybih4bi5wcmVmaXh8'@; put 'fCIiKStJbisoeG4uc3VmZml4fHwiIil9LHFuLnRvRnJhY3Rpb249ZnVuY3Rpb24oR3Qpe3ZhciBibix4bixJbixYbixObix2cixXbixmcixEcixPcix1aSxFYSxaaT10aGlzLERzPVppLmM7aWYobnVsbCE9R3QmJighKFduPW5ldyB4dChHdCkpLmlzSW50ZWdlcigpJiYoV24uY3x8MSE9PVdu'@; put 'LnMpfHxXbi5sdChncikpKXRocm93IEVycm9yKHYrIkFyZ3VtZW50ICIrKFduLmlzSW50ZWdlcigpPyJvdXQgb2YgcmFuZ2U6ICI6Im5vdCBhbiBpbnRlZ2VyOiAiKStHcihXbikpO2lmKCFEcylyZXR1cm4gbmV3IHh0KFppKTtmb3IoYm49bmV3IHh0KGdyKSxEcj14bj1uZXcgeHQoZ3IpLElu'@; put 'PWZyPW5ldyB4dChnciksRWE9c3QoRHMpLE5uPWJuLmU9RWEubGVuZ3RoLVppLmUtMSxibi5jWzBdPXVlWyh2cj1ObiVHKTwwP0crdnI6dnJdLEd0PSFHdHx8V24uY29tcGFyZWRUbyhibik+MD9Obj4wP2JuOkRyOlduLHZyPUJyLEJyPTEvMCxXbj1uZXcgeHQoRWEpLGZyLmNbMF09MDtPcj1N'@; put 'bihXbixibiwwLDEpLDEhPShYbj14bi5wbHVzKE9yLnRpbWVzKEluKSkpLmNvbXBhcmVkVG8oR3QpOyl4bj1JbixJbj1YbixEcj1mci5wbHVzKE9yLnRpbWVzKFhuPURyKSksZnI9WG4sYm49V24ubWludXMoT3IudGltZXMoWG49Ym4pKSxXbj1YbjtyZXR1cm4gWG49TW4oR3QubWludXMoeG4p'@; put 'LEluLDAsMSksZnI9ZnIucGx1cyhYbi50aW1lcyhEcikpLHhuPXhuLnBsdXMoWG4udGltZXMoSW4pKSxmci5zPURyLnM9Wmkucyx1aT1NbihEcixJbixObio9MixfaSkubWludXMoWmkpLmFicygpLmNvbXBhcmVkVG8oTW4oZnIseG4sTm4sX2kpLm1pbnVzKFppKS5hYnMoKSk8MT9bRHIsSW5d'@; put 'Oltmcix4bl0sQnI9dnIsdWl9LHFuLnRvTnVtYmVyPWZ1bmN0aW9uKCl7cmV0dXJuK0dyKHRoaXMpfSxxbi50b1ByZWNpc2lvbj1mdW5jdGlvbihHdCxibil7cmV0dXJuIG51bGwhPUd0JiZkdChHdCwxLEVlKSwkdCh0aGlzLEd0LGJuLDIpfSxxbi50b1N0cmluZz1mdW5jdGlvbihHdCl7dmFy'@; put 'IGJuLHhuPXRoaXMsSW49eG4ucyxYbj14bi5lO3JldHVybiBudWxsPT09WG4/SW4/KGJuPSJJbmZpbml0eSIsSW48MCYmKGJuPSItIitibikpOmJuPSJOYU4iOihudWxsPT1HdD9ibj1Ybjw9UG58fFhuPj1Vcj9tbihzdCh4bi5jKSxYbik6d24oc3QoeG4uYyksWG4sIjAiKToxMD09PUd0JiZ2'@; put 'dD9ibj13bihzdCgoeG49YXIobmV3IHh0KHhuKSxxcitYbisxLF9pKSkuYykseG4uZSwiMCIpOihkdChHdCwyLG1hLmxlbmd0aCwiQmFzZSIpLGJuPU1yKHduKHN0KHhuLmMpLFhuLCIwIiksMTAsR3QsSW4sITApKSxJbjwwJiZ4bi5jWzBdJiYoYm49Ii0iK2JuKSksYm59LHFuLnZhbHVlT2Y9'@; put 'cW4udG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIEdyKHRoaXMpfSxxbi5faXNCaWdOdW1iZXI9ITAsbnVsbCE9aG4mJnh0LnNldChobikseHR9KCksYS5kZWZhdWx0PWEuQmlnTnVtYmVyPWEsYy5leHBvcnRzP2MuZXhwb3J0cz1hOihsfHwobD10eXBlb2Ygc2VsZjwidSImJnNlbGY/c2VsZjp3'@; put 'aW5kb3cpLGwuQmlnTnVtYmVyPWEpfShkc3QpfShTNGUpO3ZhciBNNGU9UzRlLmV4cG9ydHM7Y29uc3QgbTM9bEooKSxMc3Q9YUooKSxPc3Q9c0osUHN0PU00ZSxVMD17dHJpbGxpb246TWF0aC5wb3coMTAsMTIpLGJpbGxpb246TWF0aC5wb3coMTAsOSksbWlsbGlvbjpNYXRoLnBvdygxMCw2'@; put 'KSx0aG91c2FuZDpNYXRoLnBvdygxMCwzKX0sdVQ9e3RvdGFsTGVuZ3RoOjAsY2hhcmFjdGVyaXN0aWM6MCxmb3JjZUF2ZXJhZ2U6ITEsYXZlcmFnZTohMSxtYW50aXNzYTotMSxvcHRpb25hbE1hbnRpc3NhOiEwLHRob3VzYW5kU2VwYXJhdGVkOiExLHNwYWNlU2VwYXJhdGVkOiExLG5lZ2F0'@; put 'aXZlOiJzaWduIixmb3JjZVNpZ246ITEscm91bmRpbmdGdW5jdGlvbjpNYXRoLnJvdW5kLHNwYWNlU2VwYXJhdGVkQWJicmV2aWF0aW9uOiExfSx7YmluYXJ5U3VmZml4ZXM6eDRlLGRlY2ltYWxTdWZmaXhlczpKUH09bTMuY3VycmVudEJ5dGVzKCksY0o9e2dlbmVyYWw6e3NjYWxlOjEwMjQs'@; put 'c3VmZml4ZXM6SlAsbWFya2VyOiJiZCJ9LGJpbmFyeTp7c2NhbGU6MTAyNCxzdWZmaXhlczp4NGUsbWFya2VyOiJiIn0sZGVjaW1hbDp7c2NhbGU6MWUzLHN1ZmZpeGVzOkpQLG1hcmtlcjoiZCJ9fTtmdW5jdGlvbiBRUChjLGwsYSl7bGV0IGQ9bFswXSxoPU1hdGguYWJzKGMpO2lmKGg+PWEp'@; put 'e2ZvcihsZXQgZj0xO2Y8bC5sZW5ndGg7KytmKXtsZXQgdj1NYXRoLnBvdyhhLGYpLE09TWF0aC5wb3coYSxmKzEpO2lmKGg+PXYmJmg8TSl7ZD1sW2ZdLGMvPXY7YnJlYWt9fWQ9PT1sWzBdJiYoYy89TWF0aC5wb3coYSxsLmxlbmd0aC0xKSxkPWxbbC5sZW5ndGgtMV0pfXJldHVybnt2YWx1'@; put 'ZTpjLHN1ZmZpeDpkfX1mdW5jdGlvbiBlRihjKXtsZXQgbD0iIjtmb3IobGV0IGE9MDthPGM7YSsrKWwrPSIwIjtyZXR1cm4gbH1mdW5jdGlvbiBkVCh7aW5zdGFuY2U6Yyxwcm92aWRlZEZvcm1hdDpsLHN0YXRlOmE9bTMsZGVjaW1hbFNlcGFyYXRvcjpkLGRlZmF1bHRzOmg9YS5jdXJyZW50'@; put 'RGVmYXVsdHMoKX0pe2xldCBmPWMuX3ZhbHVlO2lmKDA9PT1mJiZhLmhhc1plcm9Gb3JtYXQoKSlyZXR1cm4gYS5nZXRaZXJvRm9ybWF0KCk7aWYoIWlzRmluaXRlKGYpKXJldHVybiBmLnRvU3RyaW5nKCk7bGV0IHY9T2JqZWN0LmFzc2lnbih7fSx1VCxoLGwpLE09di50b3RhbExlbmd0aCxJ'@; put 'PU0/MDp2LmNoYXJhY3RlcmlzdGljLEc9di5vcHRpb25hbENoYXJhY3RlcmlzdGljLHJlPXYuZm9yY2VBdmVyYWdlLHllPSEhTXx8ISFyZXx8di5hdmVyYWdlLEVlPU0/LTE6eWUmJnZvaWQgMD09PWwubWFudGlzc2E/MDp2Lm1hbnRpc3NhLEJlPSFNJiYodm9pZCAwPT09bC5vcHRpb25hbE1h'@; put 'bnRpc3NhPy0xPT09RWU6di5vcHRpb25hbE1hbnRpc3NhKSxHZT12LnRyaW1NYW50aXNzYSxzdD12LnRob3VzYW5kU2VwYXJhdGVkLHB0PXYuc3BhY2VTZXBhcmF0ZWQsZHQ9di5uZWdhdGl2ZSxxdD12LmZvcmNlU2lnbixtbj12LmV4cG9uZW50aWFsLHduPXYucm91bmRpbmdGdW5jdGlvbixo'@; put 'bj0iIjtpZih5ZSl7bGV0IE1yPWZ1bmN0aW9uIFlzdCh7dmFsdWU6Yyxmb3JjZUF2ZXJhZ2U6bCxsb3dQcmVjaXNpb246YT0hMCxhYmJyZXZpYXRpb25zOmQsc3BhY2VTZXBhcmF0ZWQ6aD0hMSx0b3RhbExlbmd0aDpmPTAscm91bmRpbmdGdW5jdGlvbjp2PU1hdGgucm91bmR9KXtsZXQgTT0i'@; put 'IixJPU1hdGguYWJzKGMpLEc9LTE7aWYobCYmZFtsXSYmVTBbbF0/KE09ZFtsXSxjLz1VMFtsXSk6ST49VTAudHJpbGxpb258fGEmJjE9PT12KEkvVTAudHJpbGxpb24pPyhNPWQudHJpbGxpb24sYy89VTAudHJpbGxpb24pOkk8VTAudHJpbGxpb24mJkk+PVUwLmJpbGxpb258fGEmJjE9PT12'@; put 'KEkvVTAuYmlsbGlvbik/KE09ZC5iaWxsaW9uLGMvPVUwLmJpbGxpb24pOkk8VTAuYmlsbGlvbiYmST49VTAubWlsbGlvbnx8YSYmMT09PXYoSS9VMC5taWxsaW9uKT8oTT1kLm1pbGxpb24sYy89VTAubWlsbGlvbik6KEk8VTAubWlsbGlvbiYmST49VTAudGhvdXNhbmR8fGEmJjE9PT12KEkv'@; put 'VTAudGhvdXNhbmQpKSYmKE09ZC50aG91c2FuZCxjLz1VMC50aG91c2FuZCksTSYmKE09KGg/IiAiOiIiKStNKSxmKXtsZXQgdWU9YzwwLHllPWMudG9TdHJpbmcoKS5zcGxpdCgiLiIpWzBdO0c9TWF0aC5tYXgoZi0odWU/eWUubGVuZ3RoLTE6eWUubGVuZ3RoKSwwKX1yZXR1cm57dmFsdWU6'@; put 'YyxhYmJyZXZpYXRpb246TSxtYW50aXNzYVByZWNpc2lvbjpHfX0oe3ZhbHVlOmYsZm9yY2VBdmVyYWdlOnJlLGxvd1ByZWNpc2lvbjp2Lmxvd1ByZWNpc2lvbixhYmJyZXZpYXRpb25zOmEuY3VycmVudEFiYnJldmlhdGlvbnMoKSxzcGFjZVNlcGFyYXRlZDpwdCxyb3VuZGluZ0Z1bmN0aW9u'@; put 'OnduLHRvdGFsTGVuZ3RoOk19KTtmPU1yLnZhbHVlLGhuKz1Nci5hYmJyZXZpYXRpb24sTSYmKEVlPU1yLm1hbnRpc3NhUHJlY2lzaW9uKX1pZihtbil7bGV0IE1yPWZ1bmN0aW9uIEdzdCh7dmFsdWU6YyxjaGFyYWN0ZXJpc3RpY1ByZWNpc2lvbjpsfSl7bGV0W2EsZF09Yy50b0V4cG9uZW50'@; put 'aWFsKCkuc3BsaXQoImUiKSxoPSthO3JldHVybiBsPygxPGwmJihoKj1NYXRoLnBvdygxMCxsLTEpLGQ9K2QtKGwtMSksZD1kPj0wP2ArJHtkfWA6ZCkse3ZhbHVlOmgsYWJicmV2aWF0aW9uOmBlJHtkfWB9KTp7dmFsdWU6aCxhYmJyZXZpYXRpb246YGUke2R9YH19KHt2YWx1ZTpmLGNoYXJh'@; put 'Y3RlcmlzdGljUHJlY2lzaW9uOkl9KTtmPU1yLnZhbHVlLGhuPU1yLmFiYnJldmlhdGlvbitobn1sZXQgTW49ZnVuY3Rpb24gWHN0KGMsbCxhLGQsaCxmKXtpZigtMT09PWQpcmV0dXJuIGM7bGV0IHY9ZnVuY3Rpb24gS3N0KGMsbCxhPU1hdGgucm91bmQpe3JldHVybi0xIT09Yy50b1N0cmlu'@; put 'ZygpLmluZGV4T2YoImUiKT9mdW5jdGlvbiAkc3QoYyxsKXtsZXQgYT1jLnRvU3RyaW5nKCksW2QsaF09YS5zcGxpdCgiZSIpLFtmLHY9IiJdPWQuc3BsaXQoIi4iKTtpZigraD4wKWE9Zit2K2VGKGgtdi5sZW5ndGgpO2Vsc2V7bGV0IE09Ii4iO009K2Y8MD9gLTAke019YDpgMCR7TX1gO2xl'@; put 'dCBJPShlRigtaC0xKStNYXRoLmFicyhmKSt2KS5zdWJzdHIoMCxsKTtJLmxlbmd0aDxsJiYoSSs9ZUYobC1JLmxlbmd0aCkpLGE9TStJfXJldHVybitoPjAmJmw+MCYmKGErPWAuJHtlRihsKX1gKSxhfShjLGwpOm5ldyBQc3QoYSgrYCR7Y31lKyR7bH1gKS9NYXRoLnBvdygxMCxsKSkudG9G'@; put 'aXhlZChsKX0obCxkLGYpLFtNLEk9IiJdPXYudG9TdHJpbmcoKS5zcGxpdCgiLiIpO2lmKEkubWF0Y2goL14wKyQvKSYmKGF8fGgpKXJldHVybiBNO2xldCBHPUkubWF0Y2goLzArJC8pO3JldHVybiBoJiZHP2Ake019LiR7SS50b1N0cmluZygpLnNsaWNlKDAsRy5pbmRleCl9YDp2LnRvU3Ry'@; put 'aW5nKCl9KGYudG9TdHJpbmcoKSxmLEJlLEVlLEdlLHduKTtyZXR1cm4gTW49ZnVuY3Rpb24gcXN0KGMsbCxhLGQpe2xldCBoPWMsW2Ysdl09aC50b1N0cmluZygpLnNwbGl0KCIuIik7aWYoZi5tYXRjaCgvXi0/MCQvKSYmYSlyZXR1cm4gdj9gJHtmLnJlcGxhY2UoIjAiLCIiKX0uJHt2fWA6'@; put 'Zi5yZXBsYWNlKCIwIiwiIik7Y29uc3QgTT1sPDAmJjA9PT1mLmluZGV4T2YoIi0iKTtpZihNJiYoZj1mLnNsaWNlKDEpLGg9aC5zbGljZSgxKSksZi5sZW5ndGg8ZCl7bGV0IEk9ZC1mLmxlbmd0aDtmb3IobGV0IEc9MDtHPEk7RysrKWg9YDAke2h9YH1yZXR1cm4gTSYmKGg9YC0ke2h9YCks'@; put 'aC50b1N0cmluZygpfShNbixmLEcsSSksTW49ZnVuY3Rpb24gUXN0KGMsbCxhLGQsaCl7bGV0IGY9ZC5jdXJyZW50RGVsaW1pdGVycygpLHY9Zi50aG91c2FuZHM7aD1ofHxmLmRlY2ltYWw7bGV0IE09Zi50aG91c2FuZHNTaXplfHwzLEk9Yy50b1N0cmluZygpLEc9SS5zcGxpdCgiLiIpWzBd'@; put 'LHJlPUkuc3BsaXQoIi4iKVsxXTtjb25zdCB1ZT1sPDAmJjA9PT1HLmluZGV4T2YoIi0iKTtyZXR1cm4gYSYmKHVlJiYoRz1HLnNsaWNlKDEpKSxmdW5jdGlvbiBKc3QoYyxsKXtsZXQgYT1bXSxkPTA7Zm9yKGxldCBoPWM7aD4wO2gtLSlkPT09bCYmKGEudW5zaGlmdChoKSxkPTApLGQrKzty'@; put 'ZXR1cm4gYX0oRy5sZW5ndGgsTSkuZm9yRWFjaCgoRWUsQmUpPT57Rz1HLnNsaWNlKDAsRWUrQmUpK3YrRy5zbGljZShFZStCZSl9KSx1ZSYmKEc9YC0ke0d9YCkpLEk9cmU/RytoK3JlOkcsSX0oTW4sZixzdCxhLGQpLCh5ZXx8bW4pJiYoTW49ZnVuY3Rpb24gZW90KGMsbCl7cmV0dXJuIGMr'@; put 'bH0oTW4saG4pKSwocXR8fGY8MCkmJihNbj1mdW5jdGlvbiB0b3QoYyxsLGEpe3JldHVybiAwPT09bD9jOjA9PStjP2MucmVwbGFjZSgiLSIsIiIpOmw+MD9gKyR7Y31gOiJzaWduIj09PWE/YzpgKCR7Yy5yZXBsYWNlKCItIiwiIil9KWB9KE1uLGYsZHQpKSxNbn1mdW5jdGlvbiBPXyhjLGwp'@; put 'e2lmKCFjKXJldHVybiBsO2xldCBhPU9iamVjdC5rZXlzKGMpO3JldHVybiAxPT09YS5sZW5ndGgmJiJvdXRwdXQiPT09YVswXT9sOmN9Y29uc3QgQWc9TTRlO2Z1bmN0aW9uIEU0ZShjLGwsYSl7bGV0IGQ9bmV3IEFnKGMuX3ZhbHVlKSxoPWw7cmV0dXJuIGEuaXNOdW1icm8obCkmJihoPWwu'@; put 'X3ZhbHVlKSxoPW5ldyBBZyhoKSxjLl92YWx1ZT1kLm1pbnVzKGgpLnRvTnVtYmVyKCksY31jb25zdCBWcD1sSigpLGhvdD1hSigpLGZvdD0oYz0+KHtsb2FkTGFuZ3VhZ2VzSW5Ob2RlOmw9PmZ1bmN0aW9uIElzdChjLGwpe2MuZm9yRWFjaChhPT57bGV0IGQ7dHJ5e2Q9ZnVuY3Rpb24gRHN0'@; put 'KGMpe3Rocm93IG5ldyBFcnJvcignQ291bGQgbm90IGR5bmFtaWNhbGx5IHJlcXVpcmUgIicrYysnIi4gUGxlYXNlIGNvbmZpZ3VyZSB0aGUgZHluYW1pY1JlcXVpcmVUYXJnZXRzIG9yL2FuZCBpZ25vcmVEeW5hbWljUmVxdWlyZXMgb3B0aW9uIG9mIEByb2xsdXAvcGx1Z2luLWNvbW1vbmpz'@; put 'IGFwcHJvcHJpYXRlbHkgZm9yIHRoaXMgcmVxdWlyZSBjYWxsIHRvIHdvcmsuJyl9KGAuLi9sYW5ndWFnZXMvJHthfWApfWNhdGNoe2NvbnNvbGUuZXJyb3IoYFVuYWJsZSB0byBsb2FkICIke2F9Ii4gTm8gbWF0Y2hpbmcgbGFuZ3VhZ2UgZmlsZSBmb3VuZC5gKX1kJiZsLnJlZ2lzdGVyTGFu'@; put 'Z3VhZ2UoZCl9KX0obCxjKX0pKShzdSkscG90PV80ZSgpO2xldCBvOT0oYz0+KHtmb3JtYXQ6KC4uLmwpPT5mdW5jdGlvbiBGc3QoYyxsPXt9LGEpe2lmKCJzdHJpbmciPT10eXBlb2YgbCYmKGw9T3N0LnBhcnNlRm9ybWF0KGwpKSwhTHN0LnZhbGlkYXRlRm9ybWF0KGwpKXJldHVybiJFUlJP'@; put 'UjogaW52YWxpZCBmb3JtYXQiO2xldCBoPWwucHJlZml4fHwiIixmPWwucG9zdGZpeHx8IiIsdj1mdW5jdGlvbiBIc3QoYyxsLGEpe3N3aXRjaChsLm91dHB1dCl7Y2FzZSJjdXJyZW5jeSI6cmV0dXJuIGZ1bmN0aW9uIFdzdChjLGwsYSl7Y29uc3QgZD1hLmN1cnJlbnRDdXJyZW5jeSgpO2xl'@; put 'dCB2LGg9T2JqZWN0LmFzc2lnbih7fSxsKSxmPU9iamVjdC5hc3NpZ24oe30sdVQsaCksTT0iIixJPSEhZi50b3RhbExlbmd0aHx8ISFmLmZvcmNlQXZlcmFnZXx8Zi5hdmVyYWdlLEc9aC5jdXJyZW5jeVBvc2l0aW9ufHxkLnBvc2l0aW9uLHJlPWguY3VycmVuY3lTeW1ib2x8fGQuc3ltYm9s'@; put 'O2NvbnN0IHVlPXZvaWQgMCE9PWYuc3BhY2VTZXBhcmF0ZWRDdXJyZW5jeT9mLnNwYWNlU2VwYXJhdGVkQ3VycmVuY3k6Zi5zcGFjZVNlcGFyYXRlZDt2b2lkIDA9PT1oLmxvd1ByZWNpc2lvbiYmKGgubG93UHJlY2lzaW9uPSExKSx1ZSYmKE09IiAiKSwiaW5maXgiPT09RyYmKHY9TStyZStN'@; put 'KTtsZXQgeWU9ZFQoe2luc3RhbmNlOmMscHJvdmlkZWRGb3JtYXQ6aCxzdGF0ZTphLGRlY2ltYWxTZXBhcmF0b3I6dn0pO3JldHVybiJwcmVmaXgiPT09RyYmKHllPWMuX3ZhbHVlPDAmJiJzaWduIj09PWYubmVnYXRpdmU/YC0ke019JHtyZX0ke3llLnNsaWNlKDEpfWA6Yy5fdmFsdWU+MCYm'@; put 'Zi5mb3JjZVNpZ24/YCske019JHtyZX0ke3llLnNsaWNlKDEpfWA6cmUrTSt5ZSksKCFHfHwicG9zdGZpeCI9PT1HKSYmKE09IWYuc3BhY2VTZXBhcmF0ZWRBYmJyZXZpYXRpb24mJkk/IiI6TSx5ZT15ZStNK3JlKSx5ZX0oYyxsPU9fKGwsbTMuY3VycmVudEN1cnJlbmN5RGVmYXVsdEZvcm1h'@; put 'dCgpKSxtMyk7Y2FzZSJwZXJjZW50IjpyZXR1cm4gZnVuY3Rpb24gWnN0KGMsbCxhLGQpe2xldCBoPWwucHJlZml4U3ltYm9sLGY9ZFQoe2luc3RhbmNlOmQoMTAwKmMuX3ZhbHVlKSxwcm92aWRlZEZvcm1hdDpsLHN0YXRlOmF9KSx2PU9iamVjdC5hc3NpZ24oe30sdVQsbCk7cmV0dXJuIGg/'@; put 'YCUke3Yuc3BhY2VTZXBhcmF0ZWQ/IiAiOiIifSR7Zn1gOmAke2Z9JHt2LnNwYWNlU2VwYXJhdGVkPyIgIjoiIn0lYH0oYyxsPU9fKGwsbTMuY3VycmVudFBlcmNlbnRhZ2VEZWZhdWx0Rm9ybWF0KCkpLG0zLGEpO2Nhc2UiYnl0ZSI6cmV0dXJuIGZ1bmN0aW9uIGpzdChjLGwsYSxkKXtsZXQg'@; put 'aD1sLmJhc2V8fCJiaW5hcnkiLGY9T2JqZWN0LmFzc2lnbih7fSx1VCxsKTtjb25zdHtiaW5hcnlTdWZmaXhlczp2LGRlY2ltYWxTdWZmaXhlczpNfT1hLmN1cnJlbnRCeXRlcygpO2xldCBHPXtnZW5lcmFsOntzY2FsZToxMDI0LHN1ZmZpeGVzOk18fEpQLG1hcmtlcjoiYmQifSxiaW5hcnk6'@; put 'e3NjYWxlOjEwMjQsc3VmZml4ZXM6dnx8eDRlLG1hcmtlcjoiYiJ9LGRlY2ltYWw6e3NjYWxlOjFlMyxzdWZmaXhlczpNfHxKUCxtYXJrZXI6ImQifX1baF0se3ZhbHVlOnJlLHN1ZmZpeDp1ZX09UVAoYy5fdmFsdWUsRy5zdWZmaXhlcyxHLnNjYWxlKTtyZXR1cm5gJHtkVCh7aW5zdGFuY2U6'@; put 'ZChyZSkscHJvdmlkZWRGb3JtYXQ6bCxzdGF0ZTphLGRlZmF1bHRzOmEuY3VycmVudEJ5dGVEZWZhdWx0Rm9ybWF0KCl9KX0ke2Yuc3BhY2VTZXBhcmF0ZWQ/IiAiOiIifSR7dWV9YH0oYyxsPU9fKGwsbTMuY3VycmVudEJ5dGVEZWZhdWx0Rm9ybWF0KCkpLG0zLGEpO2Nhc2UidGltZSI6cmV0'@; put 'dXJuIGw9T18obCxtMy5jdXJyZW50VGltZURlZmF1bHRGb3JtYXQoKSksZnVuY3Rpb24gVXN0KGMpe2xldCBsPU1hdGguZmxvb3IoYy5fdmFsdWUvNjAvNjApLGE9TWF0aC5mbG9vcigoYy5fdmFsdWUtNjAqbCo2MCkvNjApLGQ9TWF0aC5yb3VuZChjLl92YWx1ZS02MCpsKjYwLTYwKmEpO3Jl'@; put 'dHVybmAke2x9OiR7YTwxMD8iMCI6IiJ9JHthfToke2Q8MTA/IjAiOiIifSR7ZH1gfShjKTtjYXNlIm9yZGluYWwiOnJldHVybiBmdW5jdGlvbiB6c3QoYyxsLGEpe2xldCBkPWEuY3VycmVudE9yZGluYWwoKSxoPU9iamVjdC5hc3NpZ24oe30sdVQsbCksZj1kVCh7aW5zdGFuY2U6Yyxwcm92'@; put 'aWRlZEZvcm1hdDpsLHN0YXRlOmF9KSx2PWQoYy5fdmFsdWUpO3JldHVybmAke2Z9JHtoLnNwYWNlU2VwYXJhdGVkPyIgIjoiIn0ke3Z9YH0oYyxsPU9fKGwsbTMuY3VycmVudE9yZGluYWxEZWZhdWx0Rm9ybWF0KCkpLG0zKTtkZWZhdWx0OnJldHVybiBkVCh7aW5zdGFuY2U6Yyxwcm92aWRl'@; put 'ZEZvcm1hdDpsLG51bWJybzphfSl9fShjLGwsYSk7cmV0dXJuIHY9ZnVuY3Rpb24gbm90KGMsbCl7cmV0dXJuIGwrY30odixoKSx2PWZ1bmN0aW9uIHJvdChjLGwpe3JldHVybiBjK2x9KHYsZiksdn0oLi4ubCxjKSxnZXRCeXRlVW5pdDooLi4ubCk9PmZ1bmN0aW9uIEJzdChjKXtsZXQgbD1j'@; put 'Si5nZW5lcmFsO3JldHVybiBRUChjLl92YWx1ZSxsLnN1ZmZpeGVzLGwuc2NhbGUpLnN1ZmZpeH0oLi4ubCxjKSxnZXRCaW5hcnlCeXRlVW5pdDooLi4ubCk9PmZ1bmN0aW9uIFZzdChjKXtsZXQgbD1jSi5iaW5hcnk7cmV0dXJuIFFQKGMuX3ZhbHVlLGwuc3VmZml4ZXMsbC5zY2FsZSkuc3Vm'@; put 'Zml4fSguLi5sLGMpLGdldERlY2ltYWxCeXRlVW5pdDooLi4ubCk9PmZ1bmN0aW9uIE5zdChjKXtsZXQgbD1jSi5kZWNpbWFsO3JldHVybiBRUChjLl92YWx1ZSxsLnN1ZmZpeGVzLGwuc2NhbGUpLnN1ZmZpeH0oLi4ubCxjKSxmb3JtYXRPckRlZmF1bHQ6T199KSkoc3UpLGw5PShjPT4oe2Fk'@; put 'ZDoobCxhKT0+ZnVuY3Rpb24gYW90KGMsbCxhKXtsZXQgZD1uZXcgQWcoYy5fdmFsdWUpLGg9bDtyZXR1cm4gYS5pc051bWJybyhsKSYmKGg9bC5fdmFsdWUpLGg9bmV3IEFnKGgpLGMuX3ZhbHVlPWQucGx1cyhoKS50b051bWJlcigpLGN9KGwsYSxjKSxzdWJ0cmFjdDoobCxhKT0+RTRlKGws'@; put 'YSxjKSxtdWx0aXBseToobCxhKT0+ZnVuY3Rpb24gc290KGMsbCxhKXtsZXQgZD1uZXcgQWcoYy5fdmFsdWUpLGg9bDtyZXR1cm4gYS5pc051bWJybyhsKSYmKGg9bC5fdmFsdWUpLGg9bmV3IEFnKGgpLGMuX3ZhbHVlPWQudGltZXMoaCkudG9OdW1iZXIoKSxjfShsLGEsYyksZGl2aWRlOihs'@; put 'LGEpPT5mdW5jdGlvbiBvb3QoYyxsLGEpe2xldCBkPW5ldyBBZyhjLl92YWx1ZSksaD1sO3JldHVybiBhLmlzTnVtYnJvKGwpJiYoaD1sLl92YWx1ZSksaD1uZXcgQWcoaCksYy5fdmFsdWU9ZC5kaXZpZGVkQnkoaCkudG9OdW1iZXIoKSxjfShsLGEsYyksc2V0OihsLGEpPT5mdW5jdGlvbiBs'@; put 'b3QoYyxsLGEpe2xldCBkPWw7cmV0dXJuIGEuaXNOdW1icm8obCkmJihkPWwuX3ZhbHVlKSxjLl92YWx1ZT1kLGN9KGwsYSxjKSxkaWZmZXJlbmNlOihsLGEpPT5mdW5jdGlvbiBjb3QoYyxsLGEpe2xldCBkPWEoYy5fdmFsdWUpO3JldHVybiBFNGUoZCxsLGEpLE1hdGguYWJzKGQuX3ZhbHVl'@; put 'KX0obCxhLGMpLEJpZ051bWJlcjpBZ30pKShzdSk7Y29uc3QgZ290PXNKO2NsYXNzIFQ0ZXtjb25zdHJ1Y3RvcihsKXt0aGlzLl92YWx1ZT1sfWNsb25lKCl7cmV0dXJuIHN1KHRoaXMuX3ZhbHVlKX1mb3JtYXQobD17fSl7cmV0dXJuIG85LmZvcm1hdCh0aGlzLGwpfWZvcm1hdEN1cnJlbmN5'@; put 'KGwpe3JldHVybiJzdHJpbmciPT10eXBlb2YgbCYmKGw9Z290LnBhcnNlRm9ybWF0KGwpKSwobD1vOS5mb3JtYXRPckRlZmF1bHQobCxWcC5jdXJyZW50Q3VycmVuY3lEZWZhdWx0Rm9ybWF0KCkpKS5vdXRwdXQ9ImN1cnJlbmN5IixvOS5mb3JtYXQodGhpcyxsKX1mb3JtYXRUaW1lKGw9e30p'@; put 'e3JldHVybiBsLm91dHB1dD0idGltZSIsbzkuZm9ybWF0KHRoaXMsbCl9YmluYXJ5Qnl0ZVVuaXRzKCl7cmV0dXJuIG85LmdldEJpbmFyeUJ5dGVVbml0KHRoaXMpfWRlY2ltYWxCeXRlVW5pdHMoKXtyZXR1cm4gbzkuZ2V0RGVjaW1hbEJ5dGVVbml0KHRoaXMpfWJ5dGVVbml0cygpe3JldHVy'@; put 'biBvOS5nZXRCeXRlVW5pdCh0aGlzKX1kaWZmZXJlbmNlKGwpe3JldHVybiBsOS5kaWZmZXJlbmNlKHRoaXMsbCl9YWRkKGwpe3JldHVybiBsOS5hZGQodGhpcyxsKX1zdWJ0cmFjdChsKXtyZXR1cm4gbDkuc3VidHJhY3QodGhpcyxsKX1tdWx0aXBseShsKXtyZXR1cm4gbDkubXVsdGlwbHko'@; put 'dGhpcyxsKX1kaXZpZGUobCl7cmV0dXJuIGw5LmRpdmlkZSh0aGlzLGwpfXNldChsKXtyZXR1cm4gbDkuc2V0KHRoaXMsQTRlKGwpKX12YWx1ZSgpe3JldHVybiB0aGlzLl92YWx1ZX12YWx1ZU9mKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfX1mdW5jdGlvbiBBNGUoYyl7bGV0IGw9YztyZXR1cm4g'@; put 'c3UuaXNOdW1icm8oYyk/bD1jLl92YWx1ZToic3RyaW5nIj09dHlwZW9mIGM/bD1zdS51bmZvcm1hdChjKTppc05hTihjKSYmKGw9TmFOKSxsfWZ1bmN0aW9uIHN1KGMpe3JldHVybiBuZXcgVDRlKEE0ZShjKSl9c3UudmVyc2lvbj0iMi41LjAiLHN1LmlzTnVtYnJvPWZ1bmN0aW9uKGMpe3Jl'@; put 'dHVybiBjIGluc3RhbmNlb2YgVDRlfSxzdS5sYW5ndWFnZT1WcC5jdXJyZW50TGFuZ3VhZ2Usc3UucmVnaXN0ZXJMYW5ndWFnZT1WcC5yZWdpc3Rlckxhbmd1YWdlLHN1LnNldExhbmd1YWdlPVZwLnNldExhbmd1YWdlLHN1Lmxhbmd1YWdlcz1WcC5sYW5ndWFnZXMsc3UubGFuZ3VhZ2VEYXRh'@; put 'PVZwLmxhbmd1YWdlRGF0YSxzdS56ZXJvRm9ybWF0PVZwLnNldFplcm9Gb3JtYXQsc3UuZGVmYXVsdEZvcm1hdD1WcC5jdXJyZW50RGVmYXVsdHMsc3Uuc2V0RGVmYXVsdHM9VnAuc2V0RGVmYXVsdHMsc3UuZGVmYXVsdEN1cnJlbmN5Rm9ybWF0PVZwLmN1cnJlbnRDdXJyZW5jeURlZmF1bHRG'@; put 'b3JtYXQsc3UudmFsaWRhdGU9aG90LnZhbGlkYXRlLHN1LmxvYWRMYW5ndWFnZXNJbk5vZGU9Zm90LmxvYWRMYW5ndWFnZXNJbk5vZGUsc3UudW5mb3JtYXQ9cG90LnVuZm9ybWF0LHN1LkJpZ051bWJlcj1sOS5CaWdOdW1iZXI7dmFyIFdtPWhzdChzdSk7ZnVuY3Rpb24gazRlKGMsbCl7aWYo'@; put 'ZzEoYykpe2NvbnN0IGE9bC5udW1lcmljRm9ybWF0LGQ9YSYmYS5jdWx0dXJlfHwiLSIsaD1hJiZhLnBhdHRlcm47aWYodHlwZW9mIGQ8InUiJiYhV20ubGFuZ3VhZ2VzKClbZF0pe2NvbnN0IGY9ZC5yZXBsYWNlKCItIiwiIiksdj1XbS5hbGxMYW5ndWFnZXM/V20uYWxsTGFuZ3VhZ2VzW2Rd'@; put 'OldtW2ZdO3YmJldtLnJlZ2lzdGVyTGFuZ3VhZ2Uodil9V20uc2V0TGFuZ3VhZ2UoZCksYz1XbShjKS5mb3JtYXQoaHx8IjAiKX1yZXR1cm4gY31mdW5jdGlvbiB1SihjLGwsYSxkLGgsZix2KXtsZXQgTT1mO2lmKGcxKE0pKXtsZXQgRz1bXTtpZihBcnJheS5pc0FycmF5KHYuY2xhc3NOYW1l'@; put 'KSlHPXYuY2xhc3NOYW1lO2Vsc2V7dmFyIEk7Y29uc3QgcmU9bnVsbCE9PShJPXYuY2xhc3NOYW1lKSYmdm9pZCAwIT09ST9JOiIiO3JlLmxlbmd0aCYmKEc9cmUuc3BsaXQoIiAiKSl9TT1rNGUoTSx2KSxHLmluZGV4T2YoImh0TGVmdCIpPDAmJkcuaW5kZXhPZigiaHRDZW50ZXIiKTwwJiZH'@; put 'LmluZGV4T2YoImh0UmlnaHQiKTwwJiZHLmluZGV4T2YoImh0SnVzdGlmeSIpPDAmJkcucHVzaCgiaHRSaWdodCIpLEcuaW5kZXhPZigiaHROdW1lcmljIik8MCYmRy5wdXNoKCJodE51bWVyaWMiKSx2LmNsYXNzTmFtZT1HLmpvaW4oIiAiKSxsLmRpcj0ibHRyIn1FZyhjLGwsYSxkLGgsTSx2'@; put 'KX1mdW5jdGlvbiBkSihjLGwsYSxkLGgsZix2KXtFZy5hcHBseSh0aGlzLFtjLGwsYSxkLGgsZix2XSk7Y29uc3QgST12Lmhhc2hTeW1ib2x8fCIqIjtsZXQgRz0iIjtLYSgodi5oYXNoTGVuZ3RofHxsLmlubmVySFRNTC5sZW5ndGgpLTEsKCk9PntHKz1JfSksajcobCxHKX1mdW5jdGlvbiBo'@; put 'SihjLGwsYSxkLGgsZix2KXtFZy5hcHBseSh0aGlzLFtjLGwsYSxkLGgsZix2XSl9ZnVuY3Rpb24gZkooYyxsLGEsZCxoLGYsdil7RWcuYXBwbHkodGhpcyxbYyxsLGEsZCxoLGYsdl0pLGwuZGlyPSJsdHIifWZ1bmN0aW9uIGhUKGMsbCl7bGV0IGE9YztudWxsPT1hJiYoYT0iIiksdGhpcy5h'@; put 'bGxvd0VtcHR5JiYiIj09PWE/bCghMCk6dGhpcy5zdHJpY3QmJnRoaXMuc291cmNlPyJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLnNvdXJjZT90aGlzLnNvdXJjZShhLEQ0ZShhLGwpKTpENGUoYSxsKSh0aGlzLnNvdXJjZSk6bCghMCl9ZnVuY3Rpb24gRDRlKGMsbCl7Y29uc3QgYT1jO3JldHVy'@; put 'biBmdW5jdGlvbihkKXtsZXQgaD0hMTtmb3IobGV0IGY9MCx2PWQubGVuZ3RoO2Y8djtmKyspaWYoYT09PWRbZl0pe2g9ITA7YnJlYWt9bChoKX19ZnVuY3Rpb24gSTRlKGMpe2NvbnN0IGw9bmV3IERhdGUoYyk7cmV0dXJuIGlzTmFOKG5ldyBEYXRlKGAke2N9VDAwOjAwYCkuZ2V0RGF0ZSgp'@; put 'KT9sOm5ldyBEYXRlKGwuZ2V0VGltZSgpKzZlNCpsLmdldFRpbWV6b25lT2Zmc2V0KCkpfWZ1bmN0aW9uIHRGKGMsbCl7Y29uc3QgYT1TZmUoczRlLHRoaXMuaW5zdGFuY2UpO2xldCBkPWMsaD0hMDtudWxsPT1kJiYoZD0iIik7bGV0IGY9UHMoZCx0aGlzLmRhdGVGb3JtYXR8fGEuZGVmYXVs'@; put 'dERhdGVGb3JtYXQsITApLmlzVmFsaWQoKSx2PVBzKG5ldyBEYXRlKGQpKS5pc1ZhbGlkKCl8fGY7aWYodGhpcy5hbGxvd0VtcHR5JiYiIj09PWQmJih2PSEwLGY9ITApLHZ8fChoPSExKSwhdiYmZiYmKGg9ITApLHYmJiFmKWlmKCEwPT09dGhpcy5jb3JyZWN0Rm9ybWF0KXtjb25zdCBNPWZ1'@; put 'bmN0aW9uIE1vdChjLGwpe2NvbnN0IGE9UHMoSTRlKGMpKSxkPVBzKGMsbCksaD1jLnNlYXJjaCgvW0EtWmEtel0vZyk+LTE7bGV0IGY7cmV0dXJuIGY9YS5pc1ZhbGlkKCkmJmEuZm9ybWF0KCJ4Iik9PT1kLmZvcm1hdCgieCIpfHwhZC5pc1ZhbGlkKCl8fGg/YTpkLGYuZm9ybWF0KGwpfShk'@; put 'LHRoaXMuZGF0ZUZvcm1hdCk7dGhpcy5pbnN0YW5jZS5zZXREYXRhQXRDZWxsKHRoaXMudmlzdWFsUm93LHRoaXMudmlzdWFsQ29sLE0sImRhdGVWYWxpZGF0b3IiKSxoPSEwfWVsc2UgaD0hMTtsKGgpfWZ1bmN0aW9uIHBKKGMsbCl7aFQuYXBwbHkodGhpcyxbYyxsXSl9ZnVuY3Rpb24gZ0oo'@; put 'YyxsKXtsZXQgYT1jO251bGw9PWEmJihhPSIiKSxsKCEoIXRoaXMuYWxsb3dFbXB0eXx8IiIhPT1hKXx8IiIhPT1hJiZnMShjKSl9dUouUkVOREVSRVJfVFlQRT0ibnVtZXJpYyIsZEouUkVOREVSRVJfVFlQRT0icGFzc3dvcmQiLGhKLlJFTkRFUkVSX1RZUEU9InNlbGVjdCIsZkouUkVOREVS'@; put 'RVJfVFlQRT0idGltZSIsaFQuVkFMSURBVE9SX1RZUEU9ImF1dG9jb21wbGV0ZSIsdEYuVkFMSURBVE9SX1RZUEU9ImRhdGUiLHBKLlZBTElEQVRPUl9UWVBFPSJkcm9wZG93biIsZ0ouVkFMSURBVE9SX1RZUEU9Im51bWVyaWMiO2NvbnN0IFRvdD1bIllZWVktTU0tRERUSEg6bW06c3MuU1NT'@; put 'WiIsIlgiLCJ4Il07ZnVuY3Rpb24gbkYoYyxsKXtjb25zdCBhPXRoaXMudGltZUZvcm1hdHx8Img6bW06c3MgYSI7bGV0IGQ9ITAsaD1jO251bGw9PT1oJiYoaD0iIiksaD0vXlxkezMsfSQvLnRlc3QoaCk/cGFyc2VJbnQoaCwxMCk6aDtjb25zdCBmPS9eXGR7MSwyfSQvLnRlc3QoaCk7ZiYm'@; put 'KGgrPSI6MDAiKTtjb25zdCB2PVBzKGgsVG90LCEwKS5pc1ZhbGlkKCk/UHMoaCk6UHMoaCxhKTtsZXQgTT12LmlzVmFsaWQoKSxJPVBzKGgsYSwhMCkuaXNWYWxpZCgpJiYhZjtpZih0aGlzLmFsbG93RW1wdHkmJiIiPT09aCYmKE09ITAsST0hMCksTXx8KGQ9ITEpLCFNJiZJJiYoZD0hMCks'@; put 'TSYmIUkpaWYoITA9PT10aGlzLmNvcnJlY3RGb3JtYXQpe2NvbnN0IEc9di5mb3JtYXQoYSk7dGhpcy5pbnN0YW5jZS5zZXREYXRhQXRDZWxsKHRoaXMudmlzdWFsUm93LHRoaXMudmlzdWFsQ29sLEcsInRpbWVWYWxpZGF0b3IiKSxkPSEwfWVsc2UgZD0hMTtsKGQpfW5GLlZBTElEQVRPUl9U'@; put 'WVBFPSJ0aW1lIjtjb25zdCBEb3Q9e0NFTExfVFlQRToiYXV0b2NvbXBsZXRlIixlZGl0b3I6enEscmVuZGVyZXI6SV8sdmFsaWRhdG9yOmhUfSxJb3Q9e0NFTExfVFlQRToiY2hlY2tib3giLGVkaXRvcjplNGUscmVuZGVyZXI6UXF9O2Z1bmN0aW9uIFI0ZShjLGwsYSxkLGgsZix2KXtJXy5h'@; put 'cHBseSh0aGlzLFtjLGwsYSxkLGgsZix2XSl9UjRlLlJFTkRFUkVSX1RZUEU9ImRhdGUiO2NvbnN0IExvdD17Q0VMTF9UWVBFOiJkYXRlIixlZGl0b3I6bDRlLHJlbmRlcmVyOlI0ZSx2YWxpZGF0b3I6dEZ9LE9vdD17Q0VMTF9UWVBFOiJkcm9wZG93biIsZWRpdG9yOmM0ZSxyZW5kZXJlcjpK'@; put 'cSx2YWxpZGF0b3I6cEosZmlsdGVyOiExLHN0cmljdDohMH0sUG90PXtDRUxMX1RZUEU6ImhhbmRzb250YWJsZSIsZWRpdG9yOkhxLHJlbmRlcmVyOnRKfSxGb3Q9e0NFTExfVFlQRToibnVtZXJpYyIsZWRpdG9yOnU0ZSxyZW5kZXJlcjp1Six2YWxpZGF0b3I6Z0osZGF0YVR5cGU6Im51bWJl'@; put 'ciJ9LEhvdD17Q0VMTF9UWVBFOiJwYXNzd29yZCIsZWRpdG9yOmQ0ZSxyZW5kZXJlcjpkSixjb3B5YWJsZTohMX0sTm90PXtDRUxMX1RZUEU6InNlbGVjdCIsZWRpdG9yOmY0ZSxyZW5kZXJlcjpoSn0sVm90PXtDRUxMX1RZUEU6InRpbWUiLGVkaXRvcjpwNGUscmVuZGVyZXI6ZkosdmFsaWRh'@; put 'dG9yOm5GfTtmdW5jdGlvbiBMNGUoYyxsKXtpZihsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfWZ1bmN0aW9uIFBfKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBVb3Qo'@; put 'Yyl7dmFyIGw9ZnVuY3Rpb24gWm90KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7'@; put 'dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVj'@; put 'dC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31mdW5jdGlvbiBGXyhjLGwpe3JldHVybiBjLmdldChPNGUoYyxsKSl9ZnVuY3Rpb24gTzRlKGMsbCxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2Yg'@; put 'Yz9jPT09bDpjLmhhcyhsKSlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzP2w6YTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGVsZW1lbnQgaXMgbm90IHByZXNlbnQgb24gdGhpcyBvYmplY3QiKX1jb25zdCBQNGU9bmV3IE1hcChbWyJwbHVnaW4iLGZ1bmN0aW9uIFNKZShjKXtyZXR1'@; put 'cm4hIU9FKGMpfV0sWyJjZWxsLXR5cGUiLGhwZV0sWyJlZGl0b3IiLENmZV0sWyJyZW5kZXJlciIsT2ZlXSxbInZhbGlkYXRvciIsUGZlXV0pLEY0ZT1TeW1ib2woIm1haW5TZXR0aW5nIiksckY9W107bGV0IGM5PW51bGw7dmFyIHU5PW5ldyBXZWFrTWFwLEg0ZT1uZXcgV2Vha1NldDtjbGFz'@; put 'cyBGb3tzdGF0aWMgZ2V0IFBMVUdJTl9LRVkoKXtyZXR1cm4iYmFzZSJ9c3RhdGljIGdldCBTRVRUSU5HX0tFWVMoKXtyZXR1cm5bdGhpcy5QTFVHSU5fS0VZXX1zdGF0aWMgZ2V0IERFRkFVTFRfU0VUVElOR1MoKXtyZXR1cm57fX1jb25zdHJ1Y3RvcihsKXsoZnVuY3Rpb24gam90KGMsbCl7'@; put 'TDRlKGMsbCksbC5hZGQoYyl9KSh0aGlzLEg0ZSksUF8odGhpcywiZXZlbnRNYW5hZ2VyIixuZXcgWjIodGhpcykpLFBfKHRoaXMsInBsdWdpbk5hbWUiLG51bGwpLFBfKHRoaXMsInBsdWdpbnNJbml0aWFsaXplZENhbGxiYWNrcyIsW10pLFBfKHRoaXMsImlzUGx1Z2luc1JlYWR5IiwhMSks'@; put 'UF8odGhpcywiZW5hYmxlZCIsITEpLFBfKHRoaXMsImluaXRpYWxpemVkIiwhMSksZnVuY3Rpb24gem90KGMsbCxhKXtMNGUoYyxsKSxsLnNldChjLGEpfSh0aGlzLHU5LHt9KSxUcCh0aGlzLCJob3QiLGwse3dyaXRhYmxlOiExfSksYzk9bnVsbCx0aGlzLmhvdC5hZGRIb29rKCJhZnRlclBs'@; put 'dWdpbnNJbml0aWFsaXplZCIsKCk9PnRoaXMub25BZnRlclBsdWdpbnNJbml0aWFsaXplZCgpKSx0aGlzLmhvdC5hZGRIb29rKCJhZnRlclVwZGF0ZVNldHRpbmdzIixhPT50aGlzLm9uVXBkYXRlU2V0dGluZ3MoYSkpLHRoaXMuaG90LmFkZEhvb2soImJlZm9yZUluaXQiLCgpPT50aGlzLmlu'@; put 'aXQoKSl9aW5pdCgpe3RoaXMucGx1Z2luTmFtZT10aGlzLmhvdC5nZXRQbHVnaW5OYW1lKHRoaXMpO2NvbnN0IGw9dGhpcy5jb25zdHJ1Y3Rvci5QTFVHSU5fREVQUyxhPUFycmF5LmlzQXJyYXkobCk/bDpbXTtpZihhLmxlbmd0aD4wKXtjb25zdCBoPVtdO2lmKGEuZm9yRWFjaChmPT57Y29u'@; put 'c3RbdixNXT1mLnNwbGl0KCI6Iik7aWYoIVA0ZS5oYXModikpdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHBsdWdpbiBkZXBlbmRlbmN5IHR5cGUgIiR7dn0iIHdhcyBmb3VuZC5gKTtQNGUuZ2V0KHYpKE0pfHxoLnB1c2goYCAtICR7TX0gKCR7dn0pYCl9KSxoLmxlbmd0aD4wKXtjb25zdCBm'@; put 'PVtgVGhlICR7dGhpcy5wbHVnaW5OYW1lfSBwbHVnaW4gcmVxdWlyZXMgdGhlIGZvbGxvd2luZyBtb2R1bGVzOlxuYCxgJHtoLmpvaW4oIlxuIil9XG5gXS5qb2luKCIiKTtyRi5wdXNoKGYpfX1pZihjOXx8KGM5PXJLKCkpLGM5LmluZGV4T2YodGhpcy5wbHVnaW5OYW1lKT49MCYmYzkuc3Bs'@; put 'aWNlKGM5LmluZGV4T2YodGhpcy5wbHVnaW5OYW1lKSwxKSx0aGlzLmhvdC5hZGRIb29rT25jZSgiYWZ0ZXJQbHVnaW5zSW5pdGlhbGl6ZWQiLCgpPT57dGhpcy5pc0VuYWJsZWQmJnRoaXMuaXNFbmFibGVkKCkmJnRoaXMuZW5hYmxlUGx1Z2luKCl9KSwwPT09YzkubGVuZ3RoKXtpZihyRi5s'@; put 'ZW5ndGg+MCl7Y29uc3QgaD1bYCR7ckYuam9pbigiXG4iKX1cbmAsIllvdSBoYXZlIHRvIGltcG9ydCBhbmQgcmVnaXN0ZXIgdGhlbSBtYW51YWxseS4iXS5qb2luKCIiKTt0aHJvdyByRi5sZW5ndGg9MCxuZXcgRXJyb3IoaCl9dGhpcy5ob3QucnVuSG9va3MoImFmdGVyUGx1Z2luc0luaXRp'@; put 'YWxpemVkIil9dGhpcy5pbml0aWFsaXplZD0hMH1lbmFibGVQbHVnaW4oKXt0aGlzLmVuYWJsZWQ9ITB9ZGlzYWJsZVBsdWdpbigpe3ZhciBsO251bGw9PT0obD10aGlzLmV2ZW50TWFuYWdlcil8fHZvaWQgMD09PWx8fGwuY2xlYXIoKSx0aGlzLmNsZWFySG9va3MoKSx0aGlzLmVuYWJsZWQ9'@; put 'ITF9Z2V0U2V0dGluZyhsKXtjb25zdCBhPXRoaXMuaG90LmdldFNldHRpbmdzKClbdGhpcy5jb25zdHJ1Y3Rvci5QTFVHSU5fS0VZXTtpZih2b2lkIDA9PT1sKXJldHVybiBhO2NvbnN0IGQ9dGhpcy5jb25zdHJ1Y3Rvci5ERUZBVUxUX1NFVFRJTkdTO3ZhciBoLGY7cmV0dXJuKEFycmF5Lmlz'@; put 'QXJyYXkoYSl8fFhzKGEpKSYmZFtGNGVdPT09bD9BcnJheS5pc0FycmF5KGEpP2E6bnVsbCE9PShoPWFbbF0pJiZ2b2lkIDAhPT1oP2g6ZFtsXTpYcyhhKSYmbnVsbCE9PShmPWFbbF0pJiZ2b2lkIDAhPT1mP2Y6ZFtsXX1hZGRIb29rKGwsYSxkKXtGXyh1OSx0aGlzKVtsXT1GXyh1OSx0aGlz'@; put 'KVtsXXx8W107Y29uc3QgaD1GXyh1OSx0aGlzKVtsXTt0aGlzLmhvdC5hZGRIb29rKGwsYSxkKSxoLnB1c2goYSksRl8odTksdGhpcylbbF09aH1yZW1vdmVIb29rcyhsKXtLbihGXyh1OSx0aGlzKVtsXXx8W10sYT0+e3RoaXMuaG90LnJlbW92ZUhvb2sobCxhKX0pfWNsZWFySG9va3MoKXtj'@; put 'b25zdCBsPUZfKHU5LHRoaXMpO3FzKGwsKGEsZCk9PnRoaXMucmVtb3ZlSG9va3MoZCkpLGwubGVuZ3RoPTB9Y2FsbE9uUGx1Z2luc1JlYWR5KGwpe3RoaXMuaXNQbHVnaW5zUmVhZHk/bCgpOnRoaXMucGx1Z2luc0luaXRpYWxpemVkQ2FsbGJhY2tzLnB1c2gobCl9b25BZnRlclBsdWdpbnNJ'@; put 'bml0aWFsaXplZCgpe0tuKHRoaXMucGx1Z2luc0luaXRpYWxpemVkQ2FsbGJhY2tzLGw9PmwoKSksdGhpcy5wbHVnaW5zSW5pdGlhbGl6ZWRDYWxsYmFja3MubGVuZ3RoPTAsdGhpcy5pc1BsdWdpbnNSZWFkeT0hMH1vblVwZGF0ZVNldHRpbmdzKGwpe2NvbnN0IGE9TzRlKEg0ZSx0aGlzLFlv'@; put 'dCkuY2FsbCh0aGlzLGwpO3RoaXMuaXNFbmFibGVkJiYodGhpcy5lbmFibGVkJiYhdGhpcy5pc0VuYWJsZWQoKSYmdGhpcy5kaXNhYmxlUGx1Z2luKCksIXRoaXMuZW5hYmxlZCYmdGhpcy5pc0VuYWJsZWQoKSYmdGhpcy5lbmFibGVQbHVnaW4oKSx0aGlzLmVuYWJsZWQmJnRoaXMuaXNFbmFi'@; put 'bGVkKCkmJmEmJnRoaXMudXBkYXRlUGx1Z2luKGwpKX11cGRhdGVQbHVnaW4oKXt9ZGVzdHJveSgpe3ZhciBsO251bGw9PT0obD10aGlzLmV2ZW50TWFuYWdlcil8fHZvaWQgMD09PWx8fGwuZGVzdHJveSgpLHRoaXMuY2xlYXJIb29rcygpLHFzKHRoaXMsKGEsZCk9PnsiaG90IiE9PWQmJih0'@; put 'aGlzW2RdPW51bGwpfSksZGVsZXRlIHRoaXMudCxkZWxldGUgdGhpcy5ob3R9fWZ1bmN0aW9uIFlvdChjKXtpZighYylyZXR1cm4hMTtjb25zdCBsPXRoaXMuY29uc3RydWN0b3IuU0VUVElOR19LRVlTO2lmKCJib29sZWFuIj09dHlwZW9mIGwpcmV0dXJuIGw7Zm9yKGxldCBhPTA7YTxsLmxl'@; put 'bmd0aDthKyspaWYodm9pZCAwIT09Y1tsW2FdXSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBkOShjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gR290KGMpe3ZhciBsPWZ1bmN0aW9uICRvdChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wu'@; put 'dG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJz'@; put 'dHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1ts'@; put 'XT1hLGN9Y29uc3QgbUo9Y2xhc3MgS290e2NvbnN0cnVjdG9yKGwpe2Q5KHRoaXMsImhvdCIsbnVsbCksZDkodGhpcywiY29udGFpbmVyIixudWxsKSxkOSh0aGlzLCJpbmplY3RlZCIsITEpLGQ5KHRoaXMsInJvd3MiLFtdKSxkOSh0aGlzLCJjb2x1bW5zIixbXSksZDkodGhpcywic2FtcGxl'@; put 'cyIsbnVsbCksZDkodGhpcywic2V0dGluZ3MiLHt1c2VIZWFkZXJzOiEwfSksdGhpcy5ob3Q9bH1hZGRSb3cobCxhKXtpZih0aGlzLmNvbHVtbnMubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiRG9lc24ndCBzdXBwb3J0IG11bHRpLWRpbWVuc2lvbmFsIHRhYmxlIik7dGhpcy5yb3dzLmxlbmd0'@; put 'aHx8KHRoaXMuY29udGFpbmVyPXRoaXMuY3JlYXRlQ29udGFpbmVyKHRoaXMuaG90LnJvb3RFbGVtZW50LmNsYXNzTmFtZSkpO2NvbnN0IGQ9e3JvdzpsfTt0aGlzLnJvd3MucHVzaChkKSx0aGlzLnNhbXBsZXM9YSx0aGlzLnRhYmxlPXRoaXMuY3JlYXRlVGFibGUodGhpcy5ob3QudGFibGUu'@; put 'Y2xhc3NOYW1lKSx0aGlzLnRhYmxlLmNvbEdyb3VwLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlQ29sR3JvdXBzQ29sKGwpKSx0aGlzLnRhYmxlLnRyLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlUm93KGwpKSwwPT09bCYmRWkodGhpcy50YWJsZS50YWJsZSwiaHRHaG9zdFRhYmxlRmlyc3RSb3ci'@; put 'KSx0aGlzLmNvbnRhaW5lci5jb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy50YWJsZS5mcmFnbWVudCksZC50YWJsZT10aGlzLnRhYmxlLnRhYmxlfWFkZENvbHVtbkhlYWRlcnNSb3cobCl7aWYobnVsbCE9dGhpcy5ob3QuZ2V0Q29sSGVhZGVyKDApKXtjb25zdCBkPXtyb3c6LTF9O3RoaXMu'@; put 'cm93cy5wdXNoKGQpLHRoaXMuY29udGFpbmVyPXRoaXMuY3JlYXRlQ29udGFpbmVyKHRoaXMuaG90LnJvb3RFbGVtZW50LmNsYXNzTmFtZSksdGhpcy5zYW1wbGVzPWwsdGhpcy50YWJsZT10aGlzLmNyZWF0ZVRhYmxlKHRoaXMuaG90LnRhYmxlLmNsYXNzTmFtZSksdGhpcy50YWJsZS5jb2xH'@; put 'cm91cC5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbEdyb3Vwc0NvbCgpKSx0aGlzLmFwcGVuZENvbHVtbkhlYWRlcnNSb3coKSx0aGlzLmNvbnRhaW5lci5jb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy50YWJsZS5mcmFnbWVudCksZC50YWJsZT10aGlzLnRhYmxlLnRhYmxlfX1hZGRDb2x1'@; put 'bW4obCxhKXtpZih0aGlzLnJvd3MubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiRG9lc24ndCBzdXBwb3J0IG11bHRpLWRpbWVuc2lvbmFsIHRhYmxlIik7dGhpcy5jb2x1bW5zLmxlbmd0aHx8KHRoaXMuY29udGFpbmVyPXRoaXMuY3JlYXRlQ29udGFpbmVyKHRoaXMuaG90LnJvb3RFbGVtZW50'@; put 'LmNsYXNzTmFtZSkpO2NvbnN0IGQ9e2NvbDpsfTt0aGlzLmNvbHVtbnMucHVzaChkKSx0aGlzLnNhbXBsZXM9YSx0aGlzLnRhYmxlPXRoaXMuY3JlYXRlVGFibGUodGhpcy5ob3QudGFibGUuY2xhc3NOYW1lKSx0aGlzLmdldFNldHRpbmcoInVzZUhlYWRlcnMiKSYmbnVsbCE9PXRoaXMuaG90'@; put 'LmdldENvbEhlYWRlcihsKSYmdGhpcy5ob3Qudmlldy5hcHBlbmRDb2xIZWFkZXIobCx0aGlzLnRhYmxlLnRoLHZvaWQgMCwtMSksdGhpcy50YWJsZS50Qm9keS5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbChsKSksdGhpcy5jb250YWluZXIuY29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMu'@; put 'dGFibGUuZnJhZ21lbnQpLGQudGFibGU9dGhpcy50YWJsZS50YWJsZX1nZXRIZWlnaHRzKGwpe3RoaXMuaW5qZWN0ZWR8fHRoaXMuaW5qZWN0VGFibGUoKSxLbih0aGlzLnJvd3MsYT0+e2NvbnN0e2hlaWdodDpkfT1hLnRhYmxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2woYS5yb3csTWF0'@; put 'aC5jZWlsKGQpKX0pfWdldFdpZHRocyhsKXt0aGlzLmluamVjdGVkfHx0aGlzLmluamVjdFRhYmxlKCksS24odGhpcy5jb2x1bW5zLGE9Pntjb25zdHt3aWR0aDpkfT1hLnRhYmxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2woYS5jb2wsTWF0aC5jZWlsKGQpKX0pfXNldFNldHRpbmdzKGwp'@; put 'e3RoaXMuc2V0dGluZ3M9bH1zZXRTZXR0aW5nKGwsYSl7dGhpcy5zZXR0aW5nc3x8KHRoaXMuc2V0dGluZ3M9e30pLHRoaXMuc2V0dGluZ3NbbF09YX1nZXRTZXR0aW5ncygpe3JldHVybiB0aGlzLnNldHRpbmdzfWdldFNldHRpbmcobCl7cmV0dXJuIHRoaXMuc2V0dGluZ3M/dGhpcy5zZXR0'@; put 'aW5nc1tsXTpudWxsfWNyZWF0ZUNvbEdyb3Vwc0NvbChsKXtjb25zdCBhPXRoaXMuaG90LnJvb3REb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7cmV0dXJuIHRoaXMuaG90Lmhhc1Jvd0hlYWRlcnMoKSYmYS5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbEVsZW1lbnQoLTEsLTEp'@; put 'KSx0aGlzLnNhbXBsZXMuZm9yRWFjaChkPT57S24oZC5zdHJpbmdzLGg9PnthLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlQ29sRWxlbWVudChoLmNvbCxsKSl9KX0pLGF9Y3JlYXRlUm93KGwpe2NvbnN0e3Jvb3REb2N1bWVudDphfT10aGlzLmhvdCxkPWEuY3JlYXRlRG9jdW1lbnRGcmFnbWVu'@; put 'dCgpLGg9YS5jcmVhdGVFbGVtZW50KCJ0aCIpO3JldHVybiB0aGlzLmhvdC5oYXNSb3dIZWFkZXJzKCkmJih0aGlzLmhvdC52aWV3LmFwcGVuZFJvd0hlYWRlcihsLGgpLGQuYXBwZW5kQ2hpbGQoaCkpLHRoaXMuc2FtcGxlcy5mb3JFYWNoKGY9PntLbihmLnN0cmluZ3Msdj0+e2NvbnN0IE09'@; put 'di5jb2wsST10aGlzLmhvdC5nZXRDZWxsTWV0YShsLE0pLEc9dGhpcy5ob3QuZ2V0Q2VsbFJlbmRlcmVyKEkpLHJlPWEuY3JlYXRlRWxlbWVudCgidGQiKTtyZS5zZXRBdHRyaWJ1dGUoImdob3N0LXRhYmxlIiwxKSxHKHRoaXMuaG90LHJlLGwsTSx0aGlzLmhvdC5jb2xUb1Byb3AoTSksdi52'@; put 'YWx1ZSxJKSxkLmFwcGVuZENoaWxkKHJlKX0pfSksZH1hcHBlbmRDb2x1bW5IZWFkZXJzUm93KCl7Y29uc3R7cm9vdERvY3VtZW50Omx9PXRoaXMuaG90LGE9bC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksZD1bXTtpZih0aGlzLmhvdC5oYXNSb3dIZWFkZXJzKCkpe2NvbnN0IGg9bC5jcmVh'@; put 'dGVFbGVtZW50KCJ0aCIpO2QucHVzaChbLTEsaF0pLGEuYXBwZW5kQ2hpbGQoaCl9dGhpcy5zYW1wbGVzLmZvckVhY2goaD0+e0tuKGguc3RyaW5ncyxmPT57Y29uc3Qgdj1mLmNvbCxNPWwuY3JlYXRlRWxlbWVudCgidGgiKTtkLnB1c2goW3YsTV0pLGEuYXBwZW5kQ2hpbGQoTSl9KX0pLHRo'@; put 'aXMudGFibGUudEhlYWQuYXBwZW5kQ2hpbGQoYSksS24oZCxoPT57Y29uc3RbZix2XT1oO3RoaXMuaG90LnZpZXcuYXBwZW5kQ29sSGVhZGVyKGYsdil9KX1jcmVhdGVDb2wobCl7Y29uc3R7cm9vdERvY3VtZW50OmF9PXRoaXMuaG90LGQ9YS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7cmV0'@; put 'dXJuIHRoaXMuc2FtcGxlcy5mb3JFYWNoKGg9PntLbihoLnN0cmluZ3MsZj0+e2NvbnN0IHY9Zi5yb3csTT10aGlzLmhvdC5nZXRDZWxsTWV0YSh2LGwpLEk9dGhpcy5ob3QuZ2V0Q2VsbFJlbmRlcmVyKE0pLEc9YS5jcmVhdGVFbGVtZW50KCJ0ZCIpLHJlPWEuY3JlYXRlRWxlbWVudCgidHIi'@; put 'KTtHLnNldEF0dHJpYnV0ZSgiZ2hvc3QtdGFibGUiLDEpLEkodGhpcy5ob3QsRyx2LGwsdGhpcy5ob3QuY29sVG9Qcm9wKGwpLGYudmFsdWUsTSkscmUuYXBwZW5kQ2hpbGQoRyksZC5hcHBlbmRDaGlsZChyZSl9KX0pLGR9Y2xlYW4oKXt0aGlzLnJvd3MubGVuZ3RoPTAsdGhpcy5yb3dzWy0x'@; put 'XT12b2lkIDAsdGhpcy5jb2x1bW5zLmxlbmd0aD0wLHRoaXMuc2FtcGxlcyYmdGhpcy5zYW1wbGVzLmNsZWFyKCksdGhpcy5zYW1wbGVzPW51bGwsdGhpcy5yZW1vdmVUYWJsZSgpfWluamVjdFRhYmxlKCl7dGhpcy5pbmplY3RlZHx8KCgoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1h'@; put 'cmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOm51bGwpfHx0aGlzLmhvdC5yb290RWxlbWVudCkuYXBwZW5kQ2hpbGQodGhpcy5jb250YWluZXIuZnJhZ21lbnQpLHRoaXMuaW5qZWN0ZWQ9ITApfXJlbW92ZVRhYmxlKCl7dGhpcy5pbmplY3RlZCYmdGhpcy5jb250YWluZXIuY29udGFpbmVyLnBh'@; put 'cmVudE5vZGUmJih0aGlzLmNvbnRhaW5lci5jb250YWluZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmNvbnRhaW5lci5jb250YWluZXIpLHRoaXMuY29udGFpbmVyPW51bGwsdGhpcy5pbmplY3RlZD0hMSl9Y3JlYXRlQ29sRWxlbWVudChsLGEpe2NvbnN0IGQ9dGhpcy5ob3Qucm9v'@; put 'dERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNvbCIpO2xldCBoPTA7YT49MCYmbD49MCYmKGg9dGhpcy5ob3QuZ2V0Q2VsbE1ldGEoYSxsKS5jb2xzcGFuKTtsZXQgZj10aGlzLmhvdC5nZXRDb2xXaWR0aChsKTtpZihoPjEpZm9yKGxldCB2PWwrMTt2PGwraDt2KyspZis9dGhpcy5ob3QuZ2V0'@; put 'Q29sV2lkdGgodik7cmV0dXJuIGQuc3R5bGUud2lkdGg9YCR7Zn1weGAsZH1jcmVhdGVUYWJsZSgpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIjtjb25zdHtyb290RG9jdW1lbnQ6YX09dGhpcy5ob3QsZD1hLmNyZWF0ZURv'@; put 'Y3VtZW50RnJhZ21lbnQoKSxoPWEuY3JlYXRlRWxlbWVudCgidGFibGUiKSxmPWEuY3JlYXRlRWxlbWVudCgidGhlYWQiKSx2PWEuY3JlYXRlRWxlbWVudCgidGJvZHkiKSxNPWEuY3JlYXRlRWxlbWVudCgiY29sZ3JvdXAiKSxJPWEuY3JlYXRlRWxlbWVudCgidHIiKSxHPWEuY3JlYXRlRWxl'@; put 'bWVudCgidGgiKTtyZXR1cm4gdGhpcy5pc1ZlcnRpY2FsKCkmJmguYXBwZW5kQ2hpbGQoTSksdGhpcy5pc0hvcml6b250YWwoKSYmKEkuYXBwZW5kQ2hpbGQoRyksZi5hcHBlbmRDaGlsZChJKSxoLnN0eWxlLnRhYmxlTGF5b3V0PSJhdXRvIixoLnN0eWxlLndpZHRoPSJhdXRvIiksaC5hcHBl'@; put 'bmRDaGlsZChmKSx0aGlzLmlzVmVydGljYWwoKSYmdi5hcHBlbmRDaGlsZChJKSxoLmFwcGVuZENoaWxkKHYpLEVpKGgsbCksZC5hcHBlbmRDaGlsZChoKSx7ZnJhZ21lbnQ6ZCx0YWJsZTpoLHRIZWFkOmYsdEJvZHk6dixjb2xHcm91cDpNLHRyOkksdGg6R319Y3JlYXRlQ29udGFpbmVyKCl7'@; put 'bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOiIiO2NvbnN0e3Jvb3REb2N1bWVudDphfT10aGlzLmhvdCxkPWEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLGg9YS5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gRWkoaCxgaHRH'@; put 'aG9zdFRhYmxlIGh0QXV0b1NpemUgJHtsLnRyaW0oKX1gKSxkLmFwcGVuZENoaWxkKGgpLHtmcmFnbWVudDpkLGNvbnRhaW5lcjpofX1pc1ZlcnRpY2FsKCl7cmV0dXJuISghdGhpcy5yb3dzLmxlbmd0aHx8dGhpcy5jb2x1bW5zLmxlbmd0aCl9aXNIb3Jpem9udGFsKCl7cmV0dXJuISghdGhp'@; put 'cy5jb2x1bW5zLmxlbmd0aHx8dGhpcy5yb3dzLmxlbmd0aCl9fTtmdW5jdGlvbiBpRihjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gWG90KGMpe3ZhciBsPWZ1bmN0aW9uIHFvdChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRp'@; put 'dmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09'@; put 'bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9Y2xh'@; put 'c3Mgdkp7c3RhdGljIGdldCBTQU1QTEVfQ09VTlQoKXtyZXR1cm4gM31jb25zdHJ1Y3RvcihsKXtpRih0aGlzLCJzYW1wbGVzIixudWxsKSxpRih0aGlzLCJkYXRhRmFjdG9yeSIsbnVsbCksaUYodGhpcywiY3VzdG9tU2FtcGxlQ291bnQiLG51bGwpLGlGKHRoaXMsImFsbG93RHVwbGljYXRl'@; put 'cyIsITEpLHRoaXMuZGF0YUZhY3Rvcnk9bH1nZXRTYW1wbGVDb3VudCgpe3JldHVybiB0aGlzLmN1c3RvbVNhbXBsZUNvdW50P3RoaXMuY3VzdG9tU2FtcGxlQ291bnQ6dkouU0FNUExFX0NPVU5UfXNldFNhbXBsZUNvdW50KGwpe3RoaXMuY3VzdG9tU2FtcGxlQ291bnQ9bH1zZXRBbGxvd0R1'@; put 'cGxpY2F0ZXMobCl7dGhpcy5hbGxvd0R1cGxpY2F0ZXM9bH1nZW5lcmF0ZVJvd1NhbXBsZXMobCxhKXtyZXR1cm4gdGhpcy5nZW5lcmF0ZVNhbXBsZXMoInJvdyIsYSxsKX1nZW5lcmF0ZUNvbHVtblNhbXBsZXMobCxhKXtyZXR1cm4gdGhpcy5nZW5lcmF0ZVNhbXBsZXMoImNvbCIsYSxsKX1n'@; put 'ZW5lcmF0ZVNhbXBsZXMobCxhLGQpe2NvbnN0IGg9bmV3IE1hcCx7ZnJvbTpmLHRvOnZ9PSJudW1iZXIiPT10eXBlb2YgZD97ZnJvbTpkLHRvOmR9OmQ7cmV0dXJuIEthKGYsdixNPT57Y29uc3QgST10aGlzLmdlbmVyYXRlU2FtcGxlKGwsYSxNKTtoLnNldChNLEkpfSksaH1nZW5lcmF0ZVNh'@; put 'bXBsZShsLGEsZCl7aWYoInJvdyIhPT1sJiYiY29sIiE9PWwpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBzYW1wbGUgdHlwZSIpO2NvbnN0IGg9bmV3IE1hcCxmPSJyb3ciPT09bD8iY29sIjoicm93Iix2PVtdO3JldHVybiBLYShhLmZyb20sYS50byxNPT57Y29uc3QgST0icm93Ij09'@; put 'PWw/dGhpcy5kYXRhRmFjdG9yeShkLE0pOnRoaXMuZGF0YUZhY3RvcnkoTSxkKTtpZighMT09PUkpcmV0dXJuO2NvbnN0e3ZhbHVlOkcsYnVuZGxlU2VlZDpyZX09SSx1ZT0ic3RyaW5nIj09dHlwZW9mIHJlJiZyZS5sZW5ndGg+MDtsZXQgeWU7eWU9dWU/cmU6WHMoRyk/YCR7T2JqZWN0Lmtl'@; put 'eXMoRykubGVuZ3RofWA6QXJyYXkuaXNBcnJheShHKT9gJHtHLmxlbmd0aH1gOmAke29jKEcpLmxlbmd0aH1gLGguaGFzKHllKXx8aC5zZXQoeWUse25lZWRlZDp0aGlzLmdldFNhbXBsZUNvdW50KCksc3RyaW5nczpbXX0pO2NvbnN0IEVlPWguZ2V0KHllKTtFZS5uZWVkZWQmJighKHYuaW5k'@; put 'ZXhPZihHKT4tMSl8fHRoaXMuYWxsb3dEdXBsaWNhdGVzfHx1ZSkmJihFZS5zdHJpbmdzLnB1c2goe3ZhbHVlOkcsW2ZdOk19KSx2LnB1c2goRyksRWUubmVlZGVkLT0xKX0pLGh9fWNvbnN0IE40ZT12SjtmdW5jdGlvbiB5SihjLGwsYSl7VjRlKGMsbCksbC5zZXQoYyxhKX1mdW5jdGlvbiBW'@; put 'NGUoYyxsKXtpZihsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfWZ1bmN0aW9uIGZUKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBRb3QoYyl7dmFyIGw9ZnVuY3Rpb24g'@; put 'ZWx0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJv'@; put 'cigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShj'@; put 'LGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31mdW5jdGlvbiBZbShjLGwpe3JldHVybiBjLmdldCh6ZChjLGwpKX1mdW5jdGlvbiBhRihjLGwsYSl7cmV0dXJuIGMuc2V0KHpkKGMsbCksYSksYX1mdW5jdGlvbiB6ZChjLGws'@; put 'YSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGM/Yz09PWw6Yy5oYXMobCkpcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mz9sOmE7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBlbGVtZW50IGlzIG5vdCBwcmVzZW50IG9uIHRoaXMgb2JqZWN0Iil9TWEuZ2V0U2luZ2xldG9uKCkucmVnaXN0'@; put 'ZXIoIm1vZGlmeUF1dG9Db2x1bW5TaXplU2VlZCIpO2NvbnN0IGJKPSJhdXRvQ29sdW1uU2l6ZSI7dmFyIF9KPW5ldyBXZWFrTWFwLEhfPW5ldyBXZWFrTWFwLE5fPW5ldyBXZWFrTWFwLEZoPW5ldyBXZWFrU2V0O2NsYXNzIHBUIGV4dGVuZHMgRm97c3RhdGljIGdldCBQTFVHSU5fS0VZKCl7'@; put 'cmV0dXJuIGJKfXN0YXRpYyBnZXQgUExVR0lOX1BSSU9SSVRZKCl7cmV0dXJuIDEwfXN0YXRpYyBnZXQgU0VUVElOR19LRVlTKCl7cmV0dXJuITB9c3RhdGljIGdldCBERUZBVUxUX1NFVFRJTkdTKCl7cmV0dXJue3VzZUhlYWRlcnM6ITAsc2FtcGxpbmdSYXRpbzpudWxsLGFsbG93U2FtcGxl'@; put 'RHVwbGljYXRlczohMX19c3RhdGljIGdldCBDQUxDVUxBVElPTl9TVEVQKCl7cmV0dXJuIDUwfXN0YXRpYyBnZXQgU1lOQ19DQUxDVUxBVElPTl9MSU1JVCgpe3JldHVybiA1MH1jb25zdHJ1Y3RvcihsKXtzdXBlcihsKSxmdW5jdGlvbiBKb3QoYyxsKXtWNGUoYyxsKSxsLmFkZChjKX0odGhp'@; put 'cyxGaCksZlQodGhpcywiZ2hvc3RUYWJsZSIsbmV3IG1KKHRoaXMuaG90KSksZlQodGhpcywic2FtcGxlc0dlbmVyYXRvciIsbmV3IE40ZSgoYSxkKT0+e2NvbnN0IGg9dGhpcy5ob3QudG9QaHlzaWNhbFJvdyhhKSxmPXRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4oZCk7aWYodGhpcy5ob3Qu'@; put 'cm93SW5kZXhNYXBwZXIuaXNIaWRkZW4oaCl8fHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmlzSGlkZGVuKGYpKXJldHVybiExO2NvbnN0IHY9dGhpcy5ob3QuZ2V0Q2VsbE1ldGEoYSxkKTtsZXQgTT0iIjt2LnNwYW5uZWR8fChNPXRoaXMuaG90LmdldERhdGFBdENlbGwoYSxkKSk7bGV0'@; put 'IEk9IiI7cmV0dXJuIHRoaXMuaG90Lmhhc0hvb2soIm1vZGlmeUF1dG9Db2x1bW5TaXplU2VlZCIpJiYoST10aGlzLmhvdC5ydW5Ib29rcygibW9kaWZ5QXV0b0NvbHVtblNpemVTZWVkIixJLHYsTSkpLHt2YWx1ZTpNLGJ1bmRsZVNlZWQ6SX19KSksZlQodGhpcywiaW5Qcm9ncmVzcyIsITEp'@; put 'LGZUKHRoaXMsIm1lYXN1cmVkQ29sdW1ucyIsMCksZlQodGhpcywiY29sdW1uV2lkdGhzTWFwIixuZXcgam0pLHlKKHRoaXMsX0osITEpLHlKKHRoaXMsSF8sW10pLHlKKHRoaXMsTl8sW10pLHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLnJlZ2lzdGVyTWFwKCJhdXRvQ29sdW1uU2l6ZSIs'@; put 'dGhpcy5jb2x1bW5XaWR0aHNNYXApLHRoaXMuYWRkSG9vaygiYmVmb3JlQ29sdW1uUmVzaXplIiwoYSxkLGgpPT56ZChGaCx0aGlzLHo0ZSkuY2FsbCh0aGlzLGEsZCxoKSl9aXNFbmFibGVkKCl7cmV0dXJuITEhPT10aGlzLmhvdC5nZXRTZXR0aW5ncygpW2JKXSYmIXRoaXMuaG90LmdldFNl'@; put 'dHRpbmdzKCkuY29sV2lkdGhzfWVuYWJsZVBsdWdpbigpe3ZhciBsPXRoaXM7aWYodGhpcy5lbmFibGVkKXJldHVybjt0aGlzLmdob3N0VGFibGUuc2V0U2V0dGluZygidXNlSGVhZGVycyIsdGhpcy5nZXRTZXR0aW5nKCJ1c2VIZWFkZXJzIikpLHRoaXMuc2FtcGxlc0dlbmVyYXRvci5zZXRB'@; put 'bGxvd0R1cGxpY2F0ZXModGhpcy5nZXRTZXR0aW5nKCJhbGxvd1NhbXBsZUR1cGxpY2F0ZXMiKSk7Y29uc3QgYT10aGlzLmdldFNldHRpbmcoInNhbXBsaW5nUmF0aW8iKTthJiYhaXNOYU4oYSkmJnRoaXMuc2FtcGxlc0dlbmVyYXRvci5zZXRTYW1wbGVDb3VudChwYXJzZUludChhLDEwKSks'@; put 'dGhpcy5hZGRIb29rKCJhZnRlckxvYWREYXRhIixmdW5jdGlvbigpe2Zvcih2YXIgZD1hcmd1bWVudHMubGVuZ3RoLGg9bmV3IEFycmF5KGQpLGY9MDtmPGQ7ZisrKWhbZl09YXJndW1lbnRzW2ZdO3JldHVybiB6ZChGaCxsLGFsdCkuY2FsbChsLC4uLmgpfSksdGhpcy5hZGRIb29rKCJiZWZv'@; put 'cmVDaGFuZ2VSZW5kZXIiLGZ1bmN0aW9uKCl7Zm9yKHZhciBkPWFyZ3VtZW50cy5sZW5ndGgsaD1uZXcgQXJyYXkoZCksZj0wO2Y8ZDtmKyspaFtmXT1hcmd1bWVudHNbZl07cmV0dXJuIHpkKEZoLGwsc2x0KS5jYWxsKGwsLi4uaCl9KSx0aGlzLmFkZEhvb2soImFmdGVyRm9ybXVsYXNWYWx1'@; put 'ZXNVcGRhdGUiLGZ1bmN0aW9uKCl7Zm9yKHZhciBkPWFyZ3VtZW50cy5sZW5ndGgsaD1uZXcgQXJyYXkoZCksZj0wO2Y8ZDtmKyspaFtmXT1hcmd1bWVudHNbZl07cmV0dXJuIHpkKEZoLGwsbGx0KS5jYWxsKGwsLi4uaCl9KSx0aGlzLmFkZEhvb2soImJlZm9yZVJlbmRlciIsKCk9PnpkKEZo'@; put 'LHRoaXMsaWx0KS5jYWxsKHRoaXMpKSx0aGlzLmFkZEhvb2soIm1vZGlmeUNvbFdpZHRoIiwoZCxoKT0+dGhpcy5nZXRDb2x1bW5XaWR0aChoLGQpKSx0aGlzLmFkZEhvb2soImluaXQiLCgpPT56ZChGaCx0aGlzLG9sdCkuY2FsbCh0aGlzKSksc3VwZXIuZW5hYmxlUGx1Z2luKCl9dXBkYXRl'@; put 'UGx1Z2luKCl7YUYoTl8sdGhpcyx0aGlzLmZpbmRDb2x1bW5zV2hlcmVIZWFkZXJXYXNDaGFuZ2VkKCkpLHN1cGVyLnVwZGF0ZVBsdWdpbigpfWRpc2FibGVQbHVnaW4oKXtzdXBlci5kaXNhYmxlUGx1Z2luKCksdGhpcy5hZGRIb29rKCJiZWZvcmVDb2x1bW5SZXNpemUiLChsLGEsZCk9Pnpk'@; put 'KEZoLHRoaXMsejRlKS5jYWxsKHRoaXMsbCxhLGQpKX1jYWxjdWxhdGVWaXNpYmxlQ29sdW1uc1dpZHRoKCl7aWYoIXRoaXMuaG90LmNvdW50Um93cygpKXJldHVybjtjb25zdCBsPXRoaXMuZ2V0Rmlyc3RWaXNpYmxlQ29sdW1uKCksYT10aGlzLmdldExhc3RWaXNpYmxlQ29sdW1uKCk7LTEh'@; put 'PT1sJiYtMSE9PWEmJnRoaXMuY2FsY3VsYXRlQ29sdW1uc1dpZHRoKHtmcm9tOmwsdG86YX0sdm9pZCAwLHRoaXMuaG90LmZvcmNlRnVsbFJlbmRlcil9Y2FsY3VsYXRlQ29sdW1uc1dpZHRoKCl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1l'@; put 'bnRzWzBdOntmcm9tOjAsdG86dGhpcy5ob3QuY291bnRDb2xzKCktMX0sYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e2Zyb206MCx0bzp0aGlzLmhvdC5jb3VudFJvd3MoKS0xfSxkPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09'@; put 'YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl07Y29uc3QgaD0ibnVtYmVyIj09dHlwZW9mIGw/e2Zyb206bCx0bzpsfTpsLGY9Im51bWJlciI9PXR5cGVvZiBhP3tmcm9tOmEsdG86YX06YTtLYShoLmZyb20saC50byx2PT57bGV0IE09dGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbih2KTtudWxs'@; put 'PT09TSYmKE09diksKGR8fG51bGw9PT10aGlzLmNvbHVtbldpZHRoc01hcC5nZXRWYWx1ZUF0SW5kZXgoTSkmJiF0aGlzLmhvdC5fZ2V0Q29sV2lkdGhGcm9tU2V0dGluZ3MoTSkpJiZ6ZChGaCx0aGlzLEI0ZSkuY2FsbCh0aGlzLHYsZil9KSx0aGlzLmdob3N0VGFibGUuY29sdW1ucy5sZW5n'@; put 'dGgmJih6ZChGaCx0aGlzLGo0ZSkuY2FsbCh0aGlzKSx0aGlzLm1lYXN1cmVkQ29sdW1ucz1oLnRvKzEsdGhpcy5naG9zdFRhYmxlLmNsZWFuKCkpfWNhbGN1bGF0ZUFsbENvbHVtbnNXaWR0aCgpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3Vt'@; put 'ZW50c1swXTp7ZnJvbTowLHRvOnRoaXMuaG90LmNvdW50Um93cygpLTF9LGE9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXSxkPTA7Y29uc3QgaD10aGlzLmhvdC5jb3VudENvbHMoKS0xO2xldCBmPW51bGw7dGhpcy5pblByb2dyZXNzPSEw'@; put 'O2NvbnN0IHY9KCk9PntpZighdGhpcy5ob3QpcmV0dXJuIFNFKGYpLHZvaWQodGhpcy5pblByb2dyZXNzPSExKTt0aGlzLmNhbGN1bGF0ZUNvbHVtbnNXaWR0aCh7ZnJvbTpkLHRvOk1hdGgubWluKGQrcFQuQ0FMQ1VMQVRJT05fU1RFUCxoKX0sbCxhKSxkPWQrcFQuQ0FMQ1VMQVRJT05fU1RF'@; put 'UCsxLGQ8aD9mPUNFKHYpOihTRShmKSx0aGlzLmluUHJvZ3Jlc3M9ITEsdGhpcy5ob3Qudmlldy5hZGp1c3RFbGVtZW50c1NpemUoKSl9LE09dGhpcy5nZXRTeW5jQ2FsY3VsYXRpb25MaW1pdCgpO00+PTAmJih0aGlzLmNhbGN1bGF0ZUNvbHVtbnNXaWR0aCh7ZnJvbTowLHRvOk19LGwsYSks'@; put 'ZD1NKzEpLGQ8aD92KCk6dGhpcy5pblByb2dyZXNzPSExfXJlY2FsY3VsYXRlQWxsQ29sdW1uc1dpZHRoKCl7dGhpcy5ob3Qudmlldy5pc1Zpc2libGUoKSYmdGhpcy5jYWxjdWxhdGVBbGxDb2x1bW5zV2lkdGgoe2Zyb206MCx0bzp0aGlzLmhvdC5jb3VudFJvd3MoKS0xfSwhMCl9Z2V0U3lu'@; put 'Y0NhbGN1bGF0aW9uTGltaXQoKXtjb25zdCBsPXRoaXMuaG90LmdldFNldHRpbmdzKClbYkpdO2xldCBhPXBULlNZTkNfQ0FMQ1VMQVRJT05fTElNSVQ7Y29uc3QgZD10aGlzLmhvdC5jb3VudENvbHMoKS0xO3JldHVybiBYcyhsKSYmKGE9bC5zeW5jTGltaXQsbSQoYSk/YT1RJChkLGEpOmE+'@; put 'Pj0wKSxNYXRoLm1pbihhLGQpfWdldENvbHVtbldpZHRoKGwsYSl7bGV0IGQ9IShhcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSl8fGFyZ3VtZW50c1syXSxoPWE7cmV0dXJuIHZvaWQgMD09PWgmJihoPXRoaXMuY29sdW1uV2lkdGhzTWFwLmdldFZhbHVlQXRJbmRl'@; put 'eCh0aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKGwpKSxkJiYibnVtYmVyIj09dHlwZW9mIGgmJihoPU1hdGgubWF4KGgsYl8pKSksaH1nZXRGaXJzdFZpc2libGVDb2x1bW4oKXt2YXIgbDtyZXR1cm4gbnVsbCE9PShsPXRoaXMuaG90LmdldEZpcnN0UmVuZGVyZWRWaXNpYmxlQ29sdW1uKCkp'@; put 'JiZ2b2lkIDAhPT1sP2w6LTF9Z2V0TGFzdFZpc2libGVDb2x1bW4oKXt2YXIgbDtyZXR1cm4gbnVsbCE9PShsPXRoaXMuaG90LmdldExhc3RSZW5kZXJlZFZpc2libGVDb2x1bW4oKSkmJnZvaWQgMCE9PWw/bDotMX1maW5kQ29sdW1uc1doZXJlSGVhZGVyV2FzQ2hhbmdlZCgpe3JldHVybiB0'@; put 'aGlzLmhvdC5nZXRDb2xIZWFkZXIoKS5yZWR1Y2UoKGQsaCxmKT0+e2NvbnN0IHY9WW0oSF8sdGhpcykubGVuZ3RoO3JldHVybih2LTE8Znx8WW0oSF8sdGhpcylbZl0hPT1oKSYmZC5wdXNoKHRoaXMuaG90LnRvVmlzdWFsQ29sdW1uKGYpKSx2LTE8Zj9ZbShIXyx0aGlzKS5wdXNoKGgpOllt'@; put 'KEhfLHRoaXMpW2ZdPWgsZH0sW10pfWNsZWFyQ2FjaGUobCl7QXJyYXkuaXNBcnJheShsKT90aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbigoKT0+e2wuZm9yRWFjaChhPT57dGhpcy5jb2x1bW5XaWR0aHNNYXAuc2V0VmFsdWVBdEluZGV4KGEsbnVsbCl9KX0sITApOnRoaXMuY29sdW1uV2lkdGhz'@; put 'TWFwLmNsZWFyKCl9aXNOZWVkUmVjYWxjdWxhdGUoKXtyZXR1cm4hIXRoaXMuY29sdW1uV2lkdGhzTWFwLmdldFZhbHVlcygpLnNsaWNlKDAsdGhpcy5tZWFzdXJlZENvbHVtbnMpLmZpbHRlcihsPT5udWxsPT09bCkubGVuZ3RofWRlc3Ryb3koKXt0aGlzLmdob3N0VGFibGUuY2xlYW4oKSxz'@; put 'dXBlci5kZXN0cm95KCl9fWZ1bmN0aW9uIHJsdChjKXtjb25zdCBsPXtmcm9tOjAsdG86dGhpcy5ob3QuY291bnRSb3dzKCktMX07Yy5mb3JFYWNoKGE9Pntjb25zdCBkPXRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4oYSk7bnVsbCE9PWQmJih0aGlzLmhvdC5fZ2V0Q29sV2lkdGhGcm9tU2V0'@; put 'dGluZ3MoZCl8fHpkKEZoLHRoaXMsQjRlKS5jYWxsKHRoaXMsYSxsKSl9KSx0aGlzLmdob3N0VGFibGUuY29sdW1ucy5sZW5ndGgmJih6ZChGaCx0aGlzLGo0ZSkuY2FsbCh0aGlzKSx0aGlzLmdob3N0VGFibGUuY2xlYW4oKSl9ZnVuY3Rpb24gQjRlKGMsbCl7dGhpcy5zYW1wbGVzR2VuZXJh'@; put 'dG9yLmdlbmVyYXRlQ29sdW1uU2FtcGxlcyhjLGwpLmZvckVhY2goKGQsaCk9PnRoaXMuZ2hvc3RUYWJsZS5hZGRDb2x1bW4oaCxkKSl9ZnVuY3Rpb24gajRlKCl7dGhpcy5ob3QuYmF0Y2hFeGVjdXRpb24oKCk9Pnt0aGlzLmdob3N0VGFibGUuZ2V0V2lkdGhzKChjLGwpPT57Y29uc3QgYT10'@; put 'aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKGMpO3RoaXMuY29sdW1uV2lkdGhzTWFwLnNldFZhbHVlQXRJbmRleChhLGwpfSl9LCEwKX1mdW5jdGlvbiBpbHQoKXt0aGlzLmNhbGN1bGF0ZVZpc2libGVDb2x1bW5zV2lkdGgoKSx0aGlzLmluUHJvZ3Jlc3N8fCh6ZChGaCx0aGlzLHJsdCkuY2Fs'@; put 'bCh0aGlzLFltKE5fLHRoaXMpKSxhRihOXyx0aGlzLFtdKSl9ZnVuY3Rpb24gYWx0KGMsbCl7bHx8dGhpcy5yZWNhbGN1bGF0ZUFsbENvbHVtbnNXaWR0aCgpfWZ1bmN0aW9uIHNsdChjKXtjb25zdCBsPWMucmVkdWNlKChhLGQpPT57bGV0WyxoXT1kO2NvbnN0IGY9dGhpcy5ob3QucHJvcFRv'@; put 'Q29sKGgpO3JldHVybiBOdW1iZXIuaXNJbnRlZ2VyKGYpJiYtMT09PWEuaW5kZXhPZihmKSYmYS5wdXNoKGYpLGF9LFtdKTtZbShOXyx0aGlzKS5wdXNoKC4uLmwpfWZ1bmN0aW9uIHo0ZShjLGwsYSl7bGV0IGQ9YztyZXR1cm4gYSYmKHRoaXMuY2FsY3VsYXRlQ29sdW1uc1dpZHRoKGwsdm9p'@; put 'ZCAwLCEwKSxkPXRoaXMuZ2V0Q29sdW1uV2lkdGgobCx2b2lkIDAsITEpKSxkfWZ1bmN0aW9uIG9sdCgpe2FGKEhfLHRoaXMsdGhpcy5ob3QuZ2V0Q29sSGVhZGVyKCkpLHRoaXMucmVjYWxjdWxhdGVBbGxDb2x1bW5zV2lkdGgoKSxhRihfSix0aGlzLCEwKX1mdW5jdGlvbiBsbHQoYyl7aWYo'@; put 'IVltKF9KLHRoaXMpKXJldHVybjtjb25zdCBsPWMucmVkdWNlKChhLGQpPT57dmFyIGg7Y29uc3QgZj1udWxsPT09KGg9ZC5hZGRyZXNzKXx8dm9pZCAwPT09aD92b2lkIDA6aC5jb2w7aWYoTnVtYmVyLmlzSW50ZWdlcihmKSl7Y29uc3Qgdj10aGlzLmhvdC50b1Zpc3VhbENvbHVtbihmKTst'@; put 'MT09PWEuaW5kZXhPZih2KSYmYS5wdXNoKHYpfXJldHVybiBhfSxbXSk7WW0oTl8sdGhpcykucHVzaCguLi5sKX1jb25zdCBoOT17aG9yaXpvbnRhbDoiaG9yaXpvbnRhbCIsdmVydGljYWw6InZlcnRpY2FsIn07ZnVuY3Rpb24gVl8oYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIGZsdChjKXt2'@; put 'YXIgbD1mdW5jdGlvbiBwbHQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJv'@; put 'dyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRl'@; put 'ZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWZ1bmN0aW9uIGdUKGMsbCxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhsKSlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzP2w6'@; put 'YTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGVsZW1lbnQgaXMgbm90IHByZXNlbnQgb24gdGhpcyBvYmplY3QiKX1NYS5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigibW9kaWZ5QXV0b2ZpbGxSYW5nZSIpLE1hLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJiZWZvcmVBdXRvZmlsbCIp'@; put 'LE1hLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckF1dG9maWxsIik7Y29uc3QgbWx0PVsiZmlsbEhhbmRsZSJdO3ZhciBCXz1uZXcgV2Vha1NldDtjbGFzcyBibHQgZXh0ZW5kcyBGb3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksZnVuY3Rpb24gZGx0KGMsbCl7KGZ1'@; put 'bmN0aW9uIGhsdChjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShjLGwpLGwuYWRkKGMpfSh0aGlzLEJfKSxWXyh0aGlzLCJhZGRpbmdTdGFydGVkIiwh'@; put 'MSksVl8odGhpcywibW91c2VEb3duT25DZWxsQ29ybmVyIiwhMSksVl8odGhpcywibW91c2VEcmFnT3V0c2lkZSIsITEpLFZfKHRoaXMsImhhbmRsZURyYWdnZWRDZWxscyIsMCksVl8odGhpcywiZGlyZWN0aW9ucyIsW10pLFZfKHRoaXMsImF1dG9JbnNlcnRSb3ciLCExKX1zdGF0aWMgZ2V0'@; put 'IFBMVUdJTl9LRVkoKXtyZXR1cm4iYXV0b2ZpbGwifXN0YXRpYyBnZXQgUExVR0lOX1BSSU9SSVRZKCl7cmV0dXJuIDIwfXN0YXRpYyBnZXQgU0VUVElOR19LRVlTKCl7cmV0dXJuWyJhdXRvZmlsbCIsLi4ubWx0XX1pc0VuYWJsZWQoKXtyZXR1cm4gdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5m'@; put 'aWxsSGFuZGxlfWVuYWJsZVBsdWdpbigpe3RoaXMuZW5hYmxlZHx8KHRoaXMubWFwU2V0dGluZ3MoKSx0aGlzLnJlZ2lzdGVyRXZlbnRzKCksdGhpcy5hZGRIb29rKCJhZnRlck9uQ2VsbENvcm5lck1vdXNlRG93biIsbD0+Z1QoQl8sdGhpcyx3bHQpLmNhbGwodGhpcyxsKSksdGhpcy5hZGRI'@; put 'b29rKCJhZnRlck9uQ2VsbENvcm5lckRibENsaWNrIixsPT5nVChCXyx0aGlzLF9sdCkuY2FsbCh0aGlzLGwpKSx0aGlzLmFkZEhvb2soImJlZm9yZU9uQ2VsbE1vdXNlT3ZlciIsKGwsYSk9PmdUKEJfLHRoaXMsQ2x0KS5jYWxsKHRoaXMsYSkpLHN1cGVyLmVuYWJsZVBsdWdpbigpKX11cGRh'@; put 'dGVQbHVnaW4oKXt0aGlzLmRpc2FibGVQbHVnaW4oKSx0aGlzLmVuYWJsZVBsdWdpbigpLHN1cGVyLnVwZGF0ZVBsdWdpbigpfWRpc2FibGVQbHVnaW4oKXt0aGlzLmNsZWFyTWFwcGVkU2V0dGluZ3MoKSxzdXBlci5kaXNhYmxlUGx1Z2luKCl9Z2V0U2VsZWN0aW9uRGF0YSgpe2NvbnN0IGw9'@; put 'dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSx7cm93OmEsY29sOmR9PWwuZ2V0VG9wU3RhcnRDb3JuZXIoKSx7cm93OmgsY29sOmZ9PWwuZ2V0Qm90dG9tRW5kQ29ybmVyKCksdj10aGlzLmhvdC5ydW5Ib29rcygibW9kaWZ5Q29weWFibGVSYW5nZSIsW3tzdGFydFJvdzphLHN0YXJ0'@; put 'Q29sOmQsZW5kUm93OmgsZW5kQ29sOmZ9XSksTT1bXSxJPVtdLEc9W107cmV0dXJuIEtuKHYscmU9Pntmb3IobGV0IHVlPXJlLnN0YXJ0Um93O3VlPD1yZS5lbmRSb3c7dWUrPTEpLTE9PT1NLmluZGV4T2YodWUpJiZNLnB1c2godWUpO2ZvcihsZXQgdWU9cmUuc3RhcnRDb2w7dWU8PXJlLmVu'@; put 'ZENvbDt1ZSs9MSktMT09PUkuaW5kZXhPZih1ZSkmJkkucHVzaCh1ZSl9KSxLbihNLHJlPT57Y29uc3QgdWU9W107S24oSSx5ZT0+e3VlLnB1c2godGhpcy5ob3QuZ2V0Q29weWFibGVEYXRhKHJlLHllKSl9KSxHLnB1c2godWUpfSksR31maWxsSW4oKXtpZih0aGlzLmhvdC5zZWxlY3Rpb24u'@; put 'aGlnaGxpZ2h0LmdldEZpbGwoKS5pc0VtcHR5KCkpcmV0dXJuITE7Y29uc3RbbCxhLGQsaF09dGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5nZXRGaWxsKCkuZ2V0VmlzdWFsQ29ybmVycygpLGY9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSx2PWYuZ2V0VG9wU3RhcnRDb3Ju'@; put 'ZXIoKSxNPWYuZ2V0Qm90dG9tRW5kQ29ybmVyKCk7dGhpcy5yZXNldFNlbGVjdGlvbk9mRHJhZ2dlZEFyZWEoKTtjb25zdCBJPVt2LnJvdyx2LmNvbCxNLnJvdyxNLmNvbF0sRz10aGlzLmhvdC5ydW5Ib29rcygibW9kaWZ5QXV0b2ZpbGxSYW5nZSIsW01hdGgubWluKHYucm93LGwpLE1hdGgu'@; put 'bWluKHYuY29sLGEpLE1hdGgubWF4KE0ucm93LGQpLE1hdGgubWF4KE0uY29sLGgpXSxJKSx7ZGlyZWN0aW9uT2ZEcmFnOnJlLHN0YXJ0T2ZEcmFnQ29vcmRzOnVlLGVuZE9mRHJhZ0Nvb3Jkczp5ZX09ZnVuY3Rpb24gY2x0KGMsbCxhKXtsZXQgZCxoLGY7cmV0dXJuIGxbMF09PT1jWzBdJiZs'@; put 'WzFdPGNbMV0/KGY9ImxlZnQiLGQ9YShsWzBdLGxbMV0pLGg9YShsWzJdLGNbMV0tMSkpOmxbMl09PT1jWzJdJiZsWzBdPT09Y1swXSYmbFszXT5jWzNdPyhmPSJyaWdodCIsZD1hKGxbMF0sY1szXSsxKSxoPWEobFsyXSxsWzNdKSk6bFswXTxjWzBdJiZsWzFdPT09Y1sxXT8oZj0idXAiLGQ9'@; put 'YShsWzBdLGxbMV0pLGg9YShjWzBdLTEsbFszXSkpOmxbMl0+Y1syXSYmbFsxXT09PWNbMV0mJihmPSJkb3duIixkPWEoY1syXSsxLGxbMV0pLGg9YShsWzJdLGxbM10pKSxkJiZkLm5vcm1hbGl6ZSgpLGgmJmgubm9ybWFsaXplKCkse2RpcmVjdGlvbk9mRHJhZzpmLHN0YXJ0T2ZEcmFnQ29v'@; put 'cmRzOmQsZW5kT2ZEcmFnQ29vcmRzOmh9fShJLEcsKEVlLEJlKT0+dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoRWUsQmUpKTtpZih1ZSYmdWUucm93Pi0xJiZ1ZS5jb2w+LTEpe2NvbnN0IEVlPXRoaXMuZ2V0U2VsZWN0aW9uRGF0YSgpLEJlPWYuY2xvbmUoKSxHZT10aGlzLmhvdC5fY3Jl'@; put 'YXRlQ2VsbFJhbmdlKHVlLHVlLHllKSxzdD10aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlQXV0b2ZpbGwiLEVlLEJlLEdlLHJlKTtpZighMT09PXN0KXJldHVybiB0aGlzLmhvdC5zZWxlY3Rpb24uaGlnaGxpZ2h0LmdldEZpbGwoKS5jbGVhcigpLHRoaXMuaG90LnJlbmRlcigpLCExO2xldCBw'@; put 'dD1zdDtjb25zdCBkdD1zdDtpZihbInVwIiwibGVmdCJdLmluZGV4T2YocmUpPi0xJiYoMSE9PWR0Lmxlbmd0aHx8MCE9PWR0WzBdLmxlbmd0aCkpaWYocHQ9W10sInVwIj09PXJlKXtjb25zdCBxdD15ZS5yb3ctdWUucm93KzEsbW49cXQlZHQubGVuZ3RoO2ZvcihsZXQgd249MDt3bjxxdDt3'@; put 'bisrKXB0LnB1c2goZHRbKHduKyhkdC5sZW5ndGgtbW4pKSVkdC5sZW5ndGhdKX1lbHNle2NvbnN0IHF0PXllLmNvbC11ZS5jb2wrMSxtbj1xdCVkdFswXS5sZW5ndGg7Zm9yKGxldCB3bj0wO3duPGR0Lmxlbmd0aDt3bisrKXtwdC5wdXNoKFtdKTtmb3IobGV0IGhuPTA7aG48cXQ7aG4rKylw'@; put 'dFt3bl0ucHVzaChkdFt3bl1bKGhuKyhkdFt3bl0ubGVuZ3RoLW1uKSklZHRbd25dLmxlbmd0aF0pfX10aGlzLmhvdC5wb3B1bGF0ZUZyb21BcnJheSh1ZS5yb3csdWUuY29sLHB0LHllLnJvdyx5ZS5jb2wsYCR7dGhpcy5wbHVnaW5OYW1lfS5maWxsYCxudWxsKSx0aGlzLnNldFNlbGVjdGlv'@; put 'bihHKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJBdXRvZmlsbCIscHQsQmUsR2UscmUpLHRoaXMuaG90LnJlbmRlcigpfWVsc2UgdGhpcy5ob3Qudmlldy5yZW5kZXIoKTtyZXR1cm4hMH1yZWR1Y2VTZWxlY3Rpb25BcmVhSWZOZWVkZWQobCl7cmV0dXJuIGwucm93PDAmJihsLnJvdz0wKSxs'@; put 'LmNvbDwwJiYobC5jb2w9MCksbH1nZXRDb29yZHNPZkRyYWdBbmREcm9wQm9yZGVycyhsKXtjb25zdCBhPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksZD1hLmdldEJvdHRvbUVuZENvcm5lcigpO2xldCBoPWw7aWYodGhpcy5kaXJlY3Rpb25zLmluY2x1ZGVzKGg5LnZlcnRpY2Fs'@; put 'KSYmdGhpcy5kaXJlY3Rpb25zLmluY2x1ZGVzKGg5Lmhvcml6b250YWwpKXtjb25zdCBmPWEuZ2V0VG9wU3RhcnRDb3JuZXIoKTsoZC5jb2w8PWwuY29sfHxmLmNvbD49bC5jb2wpJiYoaD10aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhkLnJvdyxsLmNvbCkpLChkLnJvdzxsLnJvd3x8Zi5y'@; put 'b3c+bC5yb3cpJiYoaD10aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhsLnJvdyxkLmNvbCkpfWVsc2UgaWYodGhpcy5kaXJlY3Rpb25zLmluY2x1ZGVzKGg5LnZlcnRpY2FsKSloPXRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKGwucm93LGQuY29sKTtlbHNle2lmKCF0aGlzLmRpcmVjdGlv'@; put 'bnMuaW5jbHVkZXMoaDkuaG9yaXpvbnRhbCkpcmV0dXJuO2g9dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoZC5yb3csbC5jb2wpfXJldHVybiB0aGlzLnJlZHVjZVNlbGVjdGlvbkFyZWFJZk5lZWRlZChoKX1zaG93Qm9yZGVyKGwpe2NvbnN0IGE9dGhpcy5nZXRDb29yZHNPZkRyYWdBbmRE'@; put 'cm9wQm9yZGVycyhsKTthJiZ0aGlzLnJlZHJhd0JvcmRlcnMoYSl9YWRkUm93KCl7dGhpcy5ob3QuX3JlZ2lzdGVyVGltZW91dCgoKT0+e3RoaXMuaG90LmFsdGVyKCJpbnNlcnRfcm93X2JlbG93Iix2b2lkIDAsMSxgJHt0aGlzLnBsdWdpbk5hbWV9LmZpbGxgKSx0aGlzLmFkZGluZ1N0YXJ0'@; put 'ZWQ9ITF9LDIwMCl9YWRkTmV3Um93SWZOZWVkZWQoKXtpZighdGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5nZXRGaWxsKCkuaXNFbXB0eSgpJiYhMT09PXRoaXMuYWRkaW5nU3RhcnRlZCYmdGhpcy5hdXRvSW5zZXJ0Um93KXtjb25zdCBsPXRoaXMuaG90LmdldFNlbGVjdGVkTGFzdCgp'@; put 'LGE9dGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5nZXRGaWxsKCkuZ2V0VmlzdWFsQ29ybmVycygpLGQ9dGhpcy5ob3QuY291bnRSb3dzKCk7bFsyXTxkLTEmJmFbMl09PT1kLTEmJih0aGlzLmFkZGluZ1N0YXJ0ZWQ9ITAsdGhpcy5hZGRSb3coKSl9fWdldEluZGV4T2ZMYXN0QWRqYWNl'@; put 'bnRGaWxsZWRJblJvdyhsKXtjb25zdCBhPXRoaXMuaG90LmdldERhdGEoKSxkPXRoaXMuaG90LmNvdW50Um93cygpO2xldCBoO2ZvcihsZXQgZj1sWzJdKzE7ZjxkO2YrKyl7Zm9yKGxldCBJPWxbMV07STw9bFszXTtJKyspaWYoIWpjKGFbZl1bSV0pKXJldHVybi0xO2NvbnN0IE09YVtmXVts'@; put 'WzNdKzFdOyghamMoYVtmXVtsWzFdLTFdKXx8IWpjKE0pKSYmKGg9Zil9cmV0dXJuIGh9YWRkU2VsZWN0aW9uRnJvbVN0YXJ0QXJlYVRvU3BlY2lmaWNSb3dJbmRleChsLGEpe3RoaXMuaG90LnNlbGVjdGlvbi5oaWdobGlnaHQuZ2V0RmlsbCgpLmNsZWFyKCkuYWRkKHRoaXMuaG90Ll9jcmVh'@; put 'dGVDZWxsQ29vcmRzKGxbMF0sbFsxXSkpLmFkZCh0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhhLGxbM10pKS5jb21taXQoKX1zZXRTZWxlY3Rpb24obCl7dGhpcy5ob3Quc2VsZWN0Q2VsbCguLi55byhsLGE9Pk1hdGgubWF4KGEsMCkpLCExLCExKX1zZWxlY3RBZGphY2VudCgpe2NvbnN0'@; put 'IGw9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRMYXN0KCksYT10aGlzLmdldEluZGV4T2ZMYXN0QWRqYWNlbnRGaWxsZWRJblJvdyhsKTtyZXR1cm4tMSE9PWEmJnZvaWQgMCE9PWEmJih0aGlzLmFkZFNlbGVjdGlvbkZyb21TdGFydEFyZWFUb1NwZWNpZmljUm93SW5kZXgobCxhKSwhMCl9cmVzZXRT'@; put 'ZWxlY3Rpb25PZkRyYWdnZWRBcmVhKCl7dGhpcy5oYW5kbGVEcmFnZ2VkQ2VsbHM9MCx0aGlzLmhvdC5zZWxlY3Rpb24uaGlnaGxpZ2h0LmdldEZpbGwoKS5jbGVhcigpfXJlZHJhd0JvcmRlcnMobCl7dGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5nZXRGaWxsKCkuY2xlYXIoKS5hZGQo'@; put 'dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKS5mcm9tKS5hZGQodGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKS50bykuYWRkKGwpLmNvbW1pdCgpLHRoaXMuaG90LnZpZXcucmVuZGVyKCl9Z2V0SWZNb3VzZVdhc0RyYWdnZWRPdXRzaWRlKGwpe2NvbnN0e2RvY3VtZW50RWxl'@; put 'bWVudDphfT10aGlzLmhvdC5yb290RG9jdW1lbnQsZD1qMCh0aGlzLmhvdC50YWJsZSkudG9wLSh0aGlzLmhvdC5yb290V2luZG93LnBhZ2VZT2Zmc2V0fHxhLnNjcm9sbFRvcCkrU3UodGhpcy5ob3QudGFibGUpLGg9ajAodGhpcy5ob3QudGFibGUpLmxlZnQtKHRoaXMuaG90LnJvb3RXaW5k'@; put 'b3cucGFnZVhPZmZzZXR8fGEuc2Nyb2xsTGVmdCkraXUodGhpcy5ob3QudGFibGUpO3JldHVybiBsLmNsaWVudFk+ZCYmbC5jbGllbnRYPD1ofXJlZ2lzdGVyRXZlbnRzKCl7Y29uc3R7ZG9jdW1lbnRFbGVtZW50Omx9PXRoaXMuaG90LnJvb3REb2N1bWVudDt0aGlzLmV2ZW50TWFuYWdlci5h'@; put 'ZGRFdmVudExpc3RlbmVyKGwsIm1vdXNldXAiLCgpPT5nVChCXyx0aGlzLFNsdCkuY2FsbCh0aGlzKSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihsLCJtb3VzZW1vdmUiLGE9PmdUKEJfLHRoaXMsTWx0KS5jYWxsKHRoaXMsYSkpfWNsZWFyTWFwcGVkU2V0dGluZ3MoKXt0'@; put 'aGlzLmRpcmVjdGlvbnMubGVuZ3RoPTAsdGhpcy5hdXRvSW5zZXJ0Um93PSExfW1hcFNldHRpbmdzKCl7Y29uc3QgbD1mdW5jdGlvbiB1bHQoYyl7Y29uc3QgbD17fTtyZXR1cm4hMD09PWM/KGwuZGlyZWN0aW9ucz1PYmplY3Qua2V5cyhoOSksbC5hdXRvSW5zZXJ0Um93PSEwKTpYcyhjKT8o'@; put 'bC5hdXRvSW5zZXJ0Um93PSEhSGEoYy5hdXRvSW5zZXJ0Um93KSYmYy5kaXJlY3Rpb24hPT1oOS5ob3Jpem9udGFsJiZjLmF1dG9JbnNlcnRSb3csbC5kaXJlY3Rpb25zPUhhKGMuZGlyZWN0aW9uKT9bYy5kaXJlY3Rpb25dOk9iamVjdC5rZXlzKGg5KSk6InN0cmluZyI9PXR5cGVvZiBjPyhs'@; put 'LmRpcmVjdGlvbnM9W2NdLGwuYXV0b0luc2VydFJvdz0hMCk6KGwuZGlyZWN0aW9ucz1bXSxsLmF1dG9JbnNlcnRSb3c9ITEpLGx9KHRoaXMuaG90LmdldFNldHRpbmdzKCkuZmlsbEhhbmRsZSk7dGhpcy5kaXJlY3Rpb25zPWwuZGlyZWN0aW9ucyx0aGlzLmF1dG9JbnNlcnRSb3c9bC5hdXRv'@; put 'SW5zZXJ0Um93fWRlc3Ryb3koKXtzdXBlci5kZXN0cm95KCl9fWZ1bmN0aW9uIF9sdCgpe3RoaXMuc2VsZWN0QWRqYWNlbnQoKSYmdGhpcy5maWxsSW4oKX1mdW5jdGlvbiB3bHQoKXt0aGlzLmhhbmRsZURyYWdnZWRDZWxscz0xLHRoaXMubW91c2VEb3duT25DZWxsQ29ybmVyPSEwfWZ1bmN0'@; put 'aW9uIENsdChjKXt0aGlzLm1vdXNlRG93bk9uQ2VsbENvcm5lciYmIXRoaXMuaG90LnZpZXcuaXNNb3VzZURvd24oKSYmdGhpcy5oYW5kbGVEcmFnZ2VkQ2VsbHMmJih0aGlzLmhhbmRsZURyYWdnZWRDZWxscys9MSx0aGlzLnNob3dCb3JkZXIoYyksdGhpcy5hZGROZXdSb3dJZk5lZWRlZCgp'@; put 'KX1mdW5jdGlvbiBTbHQoKXt0aGlzLmhhbmRsZURyYWdnZWRDZWxscyYmKHRoaXMuaGFuZGxlRHJhZ2dlZENlbGxzPjEmJnRoaXMuZmlsbEluKCksdGhpcy5oYW5kbGVEcmFnZ2VkQ2VsbHM9MCx0aGlzLm1vdXNlRG93bk9uQ2VsbENvcm5lcj0hMSl9ZnVuY3Rpb24gTWx0KGMpe2NvbnN0IGw9'@; put 'dGhpcy5nZXRJZk1vdXNlV2FzRHJhZ2dlZE91dHNpZGUoYyk7ITE9PT10aGlzLmFkZGluZ1N0YXJ0ZWQmJnRoaXMuaGFuZGxlRHJhZ2dlZENlbGxzPjAmJmw/KHRoaXMubW91c2VEcmFnT3V0c2lkZT0hMCx0aGlzLmFkZGluZ1N0YXJ0ZWQ9ITApOnRoaXMubW91c2VEcmFnT3V0c2lkZT0hMSx0'@; put 'aGlzLm1vdXNlRHJhZ091dHNpZGUmJnRoaXMuYXV0b0luc2VydFJvdyYmdGhpcy5hZGRSb3coKX1mdW5jdGlvbiBaNGUoYyxsLGEpe1c0ZShjLGwpLGwuc2V0KGMsYSl9ZnVuY3Rpb24gVzRlKGMsbCl7aWYobC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUg'@; put 'dGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX1mdW5jdGlvbiBqXyhjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gRWx0KGMpe3ZhciBsPWZ1bmN0aW9uIFRsdChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wu'@; put 'dG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJz'@; put 'dHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1ts'@; put 'XT1hLGN9ZnVuY3Rpb24gWTRlKGMsbCxhKXtyZXR1cm4gYy5zZXQoQnAoYyxsKSxhKSxhfWZ1bmN0aW9uIHNGKGMsbCl7cmV0dXJuIGMuZ2V0KEJwKGMsbCkpfWZ1bmN0aW9uIEJwKGMsbCxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhsKSlyZXR1cm4gYXJndW1lbnRz'@; put 'Lmxlbmd0aDwzP2w6YTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGVsZW1lbnQgaXMgbm90IHByZXNlbnQgb24gdGhpcyBvYmplY3QiKX1jb25zdCB3Sj0iYXV0b1Jvd1NpemUiO3ZhciBtVD1uZXcgV2Vha01hcCxDSj1uZXcgV2Vha01hcCxrZz1uZXcgV2Vha1NldDtjbGFzcyB2VCBl'@; put 'eHRlbmRzIEZve3N0YXRpYyBnZXQgUExVR0lOX0tFWSgpe3JldHVybiB3Sn1zdGF0aWMgZ2V0IFBMVUdJTl9QUklPUklUWSgpe3JldHVybiA0MH1zdGF0aWMgZ2V0IFNFVFRJTkdfS0VZUygpe3JldHVybiEwfXN0YXRpYyBnZXQgREVGQVVMVF9TRVRUSU5HUygpe3JldHVybnt1c2VIZWFkZXJz'@; put 'OiEwLHNhbXBsaW5nUmF0aW86bnVsbCxhbGxvd1NhbXBsZUR1cGxpY2F0ZXM6ITF9fXN0YXRpYyBnZXQgQ0FMQ1VMQVRJT05fU1RFUCgpe3JldHVybiA1MH1zdGF0aWMgZ2V0IFNZTkNfQ0FMQ1VMQVRJT05fTElNSVQoKXtyZXR1cm4gNTAwfWNvbnN0cnVjdG9yKGwpe3N1cGVyKGwpLGZ1bmN0'@; put 'aW9uIHhsdChjLGwpe1c0ZShjLGwpLGwuYWRkKGMpfSh0aGlzLGtnKSxqXyh0aGlzLCJoZWFkZXJIZWlnaHQiLG51bGwpLGpfKHRoaXMsImdob3N0VGFibGUiLG5ldyBtSih0aGlzLmhvdCkpLGpfKHRoaXMsInNhbXBsZXNHZW5lcmF0b3IiLG5ldyBONGUoKGEsZCk9Pntjb25zdCBoPXRoaXMu'@; put 'aG90LnRvUGh5c2ljYWxSb3coYSksZj10aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKGQpO2lmKHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLmlzSGlkZGVuKGgpfHx0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5pc0hpZGRlbihmKXx8YT49MCYmZD49MCYmdGhpcy5ob3QuZ2V0Q2VsbE1ldGEo'@; put 'YSxkKS5oaWRkZW4pcmV0dXJuITE7bGV0IHY7cmV0dXJuIGE+PTA/dj10aGlzLmhvdC5nZXREYXRhQXRDZWxsKGEsZCk6LTE9PT1hJiYodj10aGlzLmhvdC5nZXRDb2xIZWFkZXIoZCkpLHt2YWx1ZTp2fX0pKSxqXyh0aGlzLCJpblByb2dyZXNzIiwhMSksal8odGhpcywibWVhc3VyZWRSb3dz'@; put 'IiwwKSxqXyh0aGlzLCJyb3dIZWlnaHRzTWFwIixuZXcgam0pLFo0ZSh0aGlzLG1ULFtdKSxaNGUodGhpcyxDSiwhMSksdGhpcy5ob3Qucm93SW5kZXhNYXBwZXIucmVnaXN0ZXJNYXAoImF1dG9Sb3dTaXplIix0aGlzLnJvd0hlaWdodHNNYXApLHRoaXMuYWRkSG9vaygiYmVmb3JlUm93UmVz'@; put 'aXplIiwoYSxkLGgpPT5CcChrZyx0aGlzLEc0ZSkuY2FsbCh0aGlzLGEsZCxoKSl9aXNFbmFibGVkKCl7Y29uc3QgbD10aGlzLmhvdC5nZXRTZXR0aW5ncygpW3dKXTtyZXR1cm4hMD09PWx8fFhzKGwpfWVuYWJsZVBsdWdpbigpe3ZhciBsPXRoaXM7aWYodGhpcy5lbmFibGVkKXJldHVybjt0'@; put 'aGlzLnNhbXBsZXNHZW5lcmF0b3Iuc2V0QWxsb3dEdXBsaWNhdGVzKHRoaXMuZ2V0U2V0dGluZygiYWxsb3dTYW1wbGVEdXBsaWNhdGVzIikpO2NvbnN0IGE9dGhpcy5nZXRTZXR0aW5nKCJzYW1wbGluZ1JhdGlvIik7YSYmIWlzTmFOKGEpJiZ0aGlzLnNhbXBsZXNHZW5lcmF0b3Iuc2V0U2Ft'@; put 'cGxlQ291bnQocGFyc2VJbnQoYSwxMCkpLHRoaXMuYWRkSG9vaygiYWZ0ZXJMb2FkRGF0YSIsZnVuY3Rpb24oKXtmb3IodmFyIGQ9YXJndW1lbnRzLmxlbmd0aCxoPW5ldyBBcnJheShkKSxmPTA7ZjxkO2YrKyloW2ZdPWFyZ3VtZW50c1tmXTtyZXR1cm4gQnAoa2csbCxSbHQpLmNhbGwobCwu'@; put 'Li5oKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlQ2hhbmdlUmVuZGVyIixmdW5jdGlvbigpe2Zvcih2YXIgZD1hcmd1bWVudHMubGVuZ3RoLGg9bmV3IEFycmF5KGQpLGY9MDtmPGQ7ZisrKWhbZl09YXJndW1lbnRzW2ZdO3JldHVybiBCcChrZyxsLExsdCkuY2FsbChsLC4uLmgpfSksdGhpcy5h'@; put 'ZGRIb29rKCJiZWZvcmVDb2x1bW5SZXNpemUiLCgpPT50aGlzLnJlY2FsY3VsYXRlQWxsUm93c0hlaWdodCgpKSx0aGlzLmFkZEhvb2soImFmdGVyRm9ybXVsYXNWYWx1ZXNVcGRhdGUiLGZ1bmN0aW9uKCl7Zm9yKHZhciBkPWFyZ3VtZW50cy5sZW5ndGgsaD1uZXcgQXJyYXkoZCksZj0wO2Y8'@; put 'ZDtmKyspaFtmXT1hcmd1bWVudHNbZl07cmV0dXJuIEJwKGtnLGwsUGx0KS5jYWxsKGwsLi4uaCl9KSx0aGlzLmFkZEhvb2soImJlZm9yZVJlbmRlciIsKCk9PkJwKGtnLHRoaXMsSWx0KS5jYWxsKHRoaXMpKSx0aGlzLmFkZEhvb2soIm1vZGlmeVJvd0hlaWdodCIsKGQsaCk9PnRoaXMuZ2V0'@; put 'Um93SGVpZ2h0KGgsZCkpLHRoaXMuYWRkSG9vaygiaW5pdCIsKCk9PkJwKGtnLHRoaXMsT2x0KS5jYWxsKHRoaXMpKSx0aGlzLmFkZEhvb2soIm1vZGlmeUNvbHVtbkhlYWRlckhlaWdodCIsKCk9PnRoaXMuZ2V0Q29sdW1uSGVhZGVySGVpZ2h0KCkpLHN1cGVyLmVuYWJsZVBsdWdpbigpfWRp'@; put 'c2FibGVQbHVnaW4oKXt0aGlzLmhlYWRlckhlaWdodD1udWxsLHN1cGVyLmRpc2FibGVQbHVnaW4oKSx0aGlzLmFkZEhvb2soImJlZm9yZVJvd1Jlc2l6ZSIsKGwsYSxkKT0+QnAoa2csdGhpcyxHNGUpLmNhbGwodGhpcyxsLGEsZCkpfWNhbGN1bGF0ZVZpc2libGVSb3dzSGVpZ2h0KCl7aWYo'@; put 'IXRoaXMuaG90LmNvdW50Q29scygpKXJldHVybjtjb25zdCBsPXRoaXMuZ2V0Rmlyc3RWaXNpYmxlUm93KCksYT10aGlzLmdldExhc3RWaXNpYmxlUm93KCk7LTEhPT1sJiYtMSE9PWEmJnRoaXMuY2FsY3VsYXRlUm93c0hlaWdodCh7ZnJvbTpsLHRvOmF9LHZvaWQgMCx0aGlzLmhvdC5mb3Jj'@; put 'ZUZ1bGxSZW5kZXIpfWNhbGN1bGF0ZVJvd3NIZWlnaHQoKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e2Zyb206MCx0bzp0aGlzLmhvdC5jb3VudFJvd3MoKS0xfSxhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJn'@; put 'dW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7ZnJvbTowLHRvOnRoaXMuaG90LmNvdW50Q29scygpLTF9LGQ9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXTtjb25zdCBoPSJudW1iZXIiPT10eXBlb2YgbD97ZnJvbTpsLHRvOmx9OmwsZj0ibnVt'@; put 'YmVyIj09dHlwZW9mIGE/e2Zyb206YSx0bzphfTphO2lmKG51bGwhPT10aGlzLmhvdC5nZXRDb2xIZWFkZXIoMCkpe2NvbnN0IHY9dGhpcy5zYW1wbGVzR2VuZXJhdG9yLmdlbmVyYXRlUm93U2FtcGxlcygtMSxmKTt0aGlzLmdob3N0VGFibGUuYWRkQ29sdW1uSGVhZGVyc1Jvdyh2LmdldCgt'@; put 'MSkpfUthKGguZnJvbSxoLnRvLHY9PntsZXQgTT10aGlzLmhvdC50b1BoeXNpY2FsUm93KHYpO251bGw9PT1NJiYoTT12KSwoZHx8bnVsbD09PXRoaXMucm93SGVpZ2h0c01hcC5nZXRWYWx1ZUF0SW5kZXgoTSkpJiZ0aGlzLnNhbXBsZXNHZW5lcmF0b3IuZ2VuZXJhdGVSb3dTYW1wbGVzKHYs'@; put 'ZikuZm9yRWFjaCgoRyxyZSk9PnRoaXMuZ2hvc3RUYWJsZS5hZGRSb3cocmUsRykpfSksdGhpcy5naG9zdFRhYmxlLnJvd3MubGVuZ3RoJiYodGhpcy5ob3QuYmF0Y2hFeGVjdXRpb24oKCk9Pnt0aGlzLmdob3N0VGFibGUuZ2V0SGVpZ2h0cygodixNKT0+e3Y8MD90aGlzLmhlYWRlckhlaWdo'@; put 'dD1NOnRoaXMucm93SGVpZ2h0c01hcC5zZXRWYWx1ZUF0SW5kZXgodGhpcy5ob3QudG9QaHlzaWNhbFJvdyh2KSxNKX0pfSwhMCksdGhpcy5tZWFzdXJlZFJvd3M9aC50bysxLHRoaXMuZ2hvc3RUYWJsZS5jbGVhbigpKX1jYWxjdWxhdGVBbGxSb3dzSGVpZ2h0KCl7bGV0IGw9YXJndW1lbnRz'@; put 'Lmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOntmcm9tOjAsdG86dGhpcy5ob3QuY291bnRDb2xzKCktMX0sYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLGQ9MDtjb25zdCBoPXRoaXMuaG90LmNvdW50'@; put 'Um93cygpLTE7bGV0IGY9bnVsbDt0aGlzLmluUHJvZ3Jlc3M9ITA7Y29uc3Qgdj0oKT0+e2lmKCF0aGlzLmhvdClyZXR1cm4gU0UoZiksdm9pZCh0aGlzLmluUHJvZ3Jlc3M9ITEpO3RoaXMuY2FsY3VsYXRlUm93c0hlaWdodCh7ZnJvbTpkLHRvOk1hdGgubWluKGQrdlQuQ0FMQ1VMQVRJT05f'@; put 'U1RFUCxoKX0sbCxhKSxkPWQrdlQuQ0FMQ1VMQVRJT05fU1RFUCsxLGQ8aD9mPUNFKHYpOihTRShmKSx0aGlzLmluUHJvZ3Jlc3M9ITEsdGhpcy5ob3Qudmlldy5hZGp1c3RFbGVtZW50c1NpemUoKSl9LE09dGhpcy5nZXRTeW5jQ2FsY3VsYXRpb25MaW1pdCgpO00+PTAmJih0aGlzLmNhbGN1'@; put 'bGF0ZVJvd3NIZWlnaHQoe2Zyb206MCx0bzpNfSxsLGEpLGQ9TSsxKSxkPGg/digpOih0aGlzLmluUHJvZ3Jlc3M9ITEsdGhpcy5ob3Qudmlldy5hZGp1c3RFbGVtZW50c1NpemUoKSl9cmVjYWxjdWxhdGVBbGxSb3dzSGVpZ2h0KCl7dGhpcy5ob3Qudmlldy5pc1Zpc2libGUoKSYmdGhpcy5j'@; put 'YWxjdWxhdGVBbGxSb3dzSGVpZ2h0KHtmcm9tOjAsdG86dGhpcy5ob3QuY291bnRDb2xzKCktMX0sITApfWdldFN5bmNDYWxjdWxhdGlvbkxpbWl0KCl7Y29uc3QgbD10aGlzLmhvdC5nZXRTZXR0aW5ncygpW3dKXTtsZXQgYT12VC5TWU5DX0NBTENVTEFUSU9OX0xJTUlUO2NvbnN0IGQ9dGhp'@; put 'cy5ob3QuY291bnRSb3dzKCktMTtyZXR1cm4gWHMobCkmJihhPWwuc3luY0xpbWl0LG0kKGEpP2E9USQoZCxhKTphPj49MCksTWF0aC5taW4oYSxkKX1nZXRSb3dIZWlnaHQobCxhKXtjb25zdCBkPWw8MD90aGlzLmhlYWRlckhlaWdodDp0aGlzLnJvd0hlaWdodHNNYXAuZ2V0VmFsdWVBdElu'@; put 'ZGV4KHRoaXMuaG90LnRvUGh5c2ljYWxSb3cobCkpO2xldCBoPWE7cmV0dXJuIG51bGwhPT1kJiZkPihhfHwwKSYmKGg9ZCksaH1nZXRDb2x1bW5IZWFkZXJIZWlnaHQoKXtyZXR1cm4gdGhpcy5oZWFkZXJIZWlnaHR9Z2V0Rmlyc3RWaXNpYmxlUm93KCl7dmFyIGw7cmV0dXJuIG51bGwhPT0o'@; put 'bD10aGlzLmhvdC5nZXRGaXJzdFJlbmRlcmVkVmlzaWJsZVJvdygpKSYmdm9pZCAwIT09bD9sOi0xfWdldExhc3RWaXNpYmxlUm93KCl7dmFyIGw7cmV0dXJuIG51bGwhPT0obD10aGlzLmhvdC5nZXRMYXN0UmVuZGVyZWRWaXNpYmxlUm93KCkpJiZ2b2lkIDAhPT1sP2w6LTF9Y2xlYXJDYWNo'@; put 'ZShsKXt0aGlzLmhlYWRlckhlaWdodD1udWxsLEFycmF5LmlzQXJyYXkobCk/dGhpcy5ob3QuYmF0Y2hFeGVjdXRpb24oKCk9PntsLmZvckVhY2goYT0+e3RoaXMucm93SGVpZ2h0c01hcC5zZXRWYWx1ZUF0SW5kZXgoYSxudWxsKX0pfSwhMCk6dGhpcy5yb3dIZWlnaHRzTWFwLmNsZWFyKCl9'@; put 'Y2xlYXJDYWNoZUJ5UmFuZ2UobCl7Y29uc3R7ZnJvbTphLHRvOmR9PSJudW1iZXIiPT10eXBlb2YgbD97ZnJvbTpsLHRvOmx9Omw7dGhpcy5ob3QuYmF0Y2hFeGVjdXRpb24oKCk9PntLYShNYXRoLm1pbihhLGQpLE1hdGgubWF4KGEsZCksaD0+e3RoaXMucm93SGVpZ2h0c01hcC5zZXRWYWx1'@; put 'ZUF0SW5kZXgoaCxudWxsKX0pfSwhMCl9aXNOZWVkUmVjYWxjdWxhdGUoKXtyZXR1cm4hIXRoaXMucm93SGVpZ2h0c01hcC5nZXRWYWx1ZXMoKS5zbGljZSgwLHRoaXMubWVhc3VyZWRSb3dzKS5maWx0ZXIobD0+bnVsbD09PWwpLmxlbmd0aH1kZXN0cm95KCl7dGhpcy5naG9zdFRhYmxlLmNs'@; put 'ZWFuKCksc3VwZXIuZGVzdHJveSgpfX1mdW5jdGlvbiBEbHQoYyl7Y29uc3QgbD17ZnJvbTowLHRvOnRoaXMuaG90LmNvdW50Q29scygpLTF9O2MuZm9yRWFjaChhPT57dGhpcy5zYW1wbGVzR2VuZXJhdG9yLmdlbmVyYXRlUm93U2FtcGxlcyhhLGwpLmZvckVhY2goKGgsZik9PnRoaXMuZ2hv'@; put 'c3RUYWJsZS5hZGRSb3coZixoKSl9KSx0aGlzLmdob3N0VGFibGUucm93cy5sZW5ndGgmJih0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbigoKT0+e3RoaXMuZ2hvc3RUYWJsZS5nZXRIZWlnaHRzKChhLGQpPT57Y29uc3QgaD10aGlzLmhvdC50b1BoeXNpY2FsUm93KGEpO3RoaXMucm93SGVpZ2h0'@; put 'c01hcC5zZXRWYWx1ZUF0SW5kZXgoaCxkKX0pfSwhMCksdGhpcy5naG9zdFRhYmxlLmNsZWFuKCkpfWZ1bmN0aW9uIElsdCgpe3RoaXMuY2FsY3VsYXRlVmlzaWJsZVJvd3NIZWlnaHQoKSx0aGlzLmluUHJvZ3Jlc3N8fChCcChrZyx0aGlzLERsdCkuY2FsbCh0aGlzLHNGKG1ULHRoaXMpKSxZ'@; put 'NGUobVQsdGhpcyxbXSkpfWZ1bmN0aW9uIEc0ZShjLGwsYSl7bGV0IGQ9YztyZXR1cm4gYSYmKHRoaXMuY2FsY3VsYXRlUm93c0hlaWdodChsLHZvaWQgMCwhMCksZD10aGlzLmdldFJvd0hlaWdodChsKSksZH1mdW5jdGlvbiBSbHQoYyxsKXtsfHx0aGlzLnJlY2FsY3VsYXRlQWxsUm93c0hl'@; put 'aWdodCgpfWZ1bmN0aW9uIExsdChjKXtjb25zdCBsPWMucmVkdWNlKChhLGQpPT57bGV0W2hdPWQ7cmV0dXJuLTE9PT1hLmluZGV4T2YoaCkmJmEucHVzaChoKSxhfSxbXSk7c0YobVQsdGhpcykucHVzaCguLi5sKX1mdW5jdGlvbiBPbHQoKXt0aGlzLnJlY2FsY3VsYXRlQWxsUm93c0hlaWdo'@; put 'dCgpLFk0ZShDSix0aGlzLCEwKX1mdW5jdGlvbiBQbHQoYyl7aWYoIXNGKENKLHRoaXMpKXJldHVybjtjb25zdCBsPWMucmVkdWNlKChhLGQpPT57dmFyIGg7Y29uc3QgZj1udWxsPT09KGg9ZC5hZGRyZXNzKXx8dm9pZCAwPT09aD92b2lkIDA6aC5yb3c7aWYoTnVtYmVyLmlzSW50ZWdlcihm'@; put 'KSl7Y29uc3Qgdj10aGlzLmhvdC50b1Zpc3VhbFJvdyhmKTstMT09PWEuaW5kZXhPZih2KSYmYS5wdXNoKHYpfXJldHVybiBhfSxbXSk7c0YobVQsdGhpcykucHVzaCguLi5sKX1jb25zdCAkNGU9bmV3IE1hcChbWyJpbmRleGVzU2VxdWVuY2UiLHtnZXRMaXN0V2l0aEluc2VydGVkSXRlbXM6'@; put 'SEssZ2V0TGlzdFdpdGhSZW1vdmVkSXRlbXM6WEV9XSxbInBoeXNpY2FsbHlJbmRleGVkIix7Z2V0TGlzdFdpdGhJbnNlcnRlZEl0ZW1zOkJLLGdldExpc3RXaXRoUmVtb3ZlZEl0ZW1zOmpLfV1dKSxLNGU9Yz0+e2lmKCExPT09JDRlLmhhcyhjKSl0aHJvdyBuZXcgRXJyb3IoYEFsdGVyIHN0'@; put 'cmF0ZWd5IHdpdGggSUQgJyR7Y30nIGRvZXMgbm90IGV4aXN0LmApO3JldHVybiAkNGUuZ2V0KGMpfSx7Z2V0TGlzdFdpdGhJbnNlcnRlZEl0ZW1zOkZsdCxnZXRMaXN0V2l0aFJlbW92ZWRJdGVtczpIbHR9PUs0ZSgicGh5c2ljYWxseUluZGV4ZWQiKSx7Z2V0TGlzdFdpdGhJbnNlcnRlZEl0'@; put 'ZW1zOkJsdCxnZXRMaXN0V2l0aFJlbW92ZWRJdGVtczpqbHR9PUs0ZSgicGh5c2ljYWxseUluZGV4ZWQiKTtjb25zdCBYNGU9ImJpbmRSb3dzV2l0aEhlYWRlcnMiLHE0ZT1uZXcgTWFwKFtbImxvb3NlIixjbGFzcyBObHQgZXh0ZW5kcyBRN3tjb25zdHJ1Y3Rvcigpe3N1cGVyKGw9PmwpfWlu'@; put 'c2VydChsLGEpe2NvbnN0IGQ9VksodGhpcy5pbmRleGVkVmFsdWVzLGEpO3RoaXMuaW5kZXhlZFZhbHVlcz1GbHQoZCxsLGEsdGhpcy5pbml0VmFsdWVPckZuKSxzdXBlci5pbnNlcnQobCxhKX1yZW1vdmUobCl7Y29uc3QgYT1IbHQodGhpcy5pbmRleGVkVmFsdWVzLGwpO3RoaXMuaW5kZXhl'@; put 'ZFZhbHVlcz1OSyhhLGwpLHN1cGVyLnJlbW92ZShsKX19XSxbInN0cmljdCIsY2xhc3Mgemx0IGV4dGVuZHMgUTd7Y29uc3RydWN0b3IoKXtzdXBlcihsPT5sKX1pbnNlcnQobCxhKXt0aGlzLmluZGV4ZWRWYWx1ZXM9Qmx0KHRoaXMuaW5kZXhlZFZhbHVlcyxsLGEsKGQsaCk9PnRoaXMuZ2V0'@; put 'TmV4dFZhbHVlKGgpKSxzdXBlci5pbnNlcnQobCxhKX1yZW1vdmUobCl7dGhpcy5pbmRleGVkVmFsdWVzPWpsdCh0aGlzLmluZGV4ZWRWYWx1ZXMsbCksc3VwZXIucmVtb3ZlKGwpfWdldE5leHRWYWx1ZShsKXtyZXR1cm4gTWF0aC5tYXgoLi4udGhpcy5nZXRWYWx1ZXMoKSkrMStsfX1dXSk7'@; put 'dmFyIEo0ZT1uZXcgV2Vha1NldDtjbGFzcyBKbHQgZXh0ZW5kcyBGb3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksZnVuY3Rpb24gWmx0KGMsbCl7KGZ1bmN0aW9uIFdsdChjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRo'@; put 'ZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShjLGwpLGwuYWRkKGMpfSh0aGlzLEo0ZSksZnVuY3Rpb24gWWx0KGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBHbHQoYyl7dmFyIGw9ZnVuY3Rpb24gJGx0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwh'@; put 'YylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHBy'@; put 'aW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1'@; put 'cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY30odGhpcywiaGVhZGVySW5kZXhlcyIsbnVsbCl9c3RhdGljIGdldCBQTFVHSU5fS0VZKCl7cmV0dXJuIFg0ZX1zdGF0aWMgZ2V0IFBMVUdJTl9QUklPUklUWSgpe3JldHVybiAyMTB9aXNFbmFibGVkKCl7cmV0dXJuISF0aGlzLmhvdC5n'@; put 'ZXRTZXR0aW5ncygpW1g0ZV19ZW5hYmxlUGx1Z2luKCl7dmFyIGw7aWYodGhpcy5lbmFibGVkKXJldHVybjtjb25zdCBhPW51bGwhPT0obD1xNGUuZ2V0KHRoaXMuZ2V0U2V0dGluZygpKSkmJnZvaWQgMCE9PWw/bDpxNGUuZ2V0KCJsb29zZSIpO3RoaXMuaGVhZGVySW5kZXhlcz10aGlzLmhv'@; put 'dC5yb3dJbmRleE1hcHBlci5yZWdpc3Rlck1hcCgiYmluZFJvd3NXaXRoSGVhZGVycyIsbmV3IGEpLHRoaXMuYWRkSG9vaygibW9kaWZ5Um93SGVhZGVyIixkPT5mdW5jdGlvbiBLbHQoYyxsLGEpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBjP2M9PT1sOmMuaGFzKGwpKXJldHVybiBhcmd1bWVu'@; put 'dHMubGVuZ3RoPDM/bDphO3Rocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgZWxlbWVudCBpcyBub3QgcHJlc2VudCBvbiB0aGlzIG9iamVjdCIpfShKNGUsdGhpcyxRbHQpLmNhbGwodGhpcyxkKSksc3VwZXIuZW5hYmxlUGx1Z2luKCl9ZGlzYWJsZVBsdWdpbigpe3RoaXMuaG90LnJvd0lu'@; put 'ZGV4TWFwcGVyLnVucmVnaXN0ZXJNYXAoImJpbmRSb3dzV2l0aEhlYWRlcnMiKSxzdXBlci5kaXNhYmxlUGx1Z2luKCl9ZGVzdHJveSgpe3N1cGVyLmRlc3Ryb3koKX19ZnVuY3Rpb24gUWx0KGMpe3JldHVybiB0aGlzLmhlYWRlckluZGV4ZXMuZ2V0VmFsdWVBdEluZGV4KHRoaXMuaG90LnRv'@; put 'UGh5c2ljYWxSb3coYykpfWZ1bmN0aW9uIFE0ZShjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9ZnVuY3Rpb24gZWdlKGMsbCxhKXtyZXR1cm4obD1mdW5j'@; put 'dGlvbiBuY3QoYyl7dmFyIGw9ZnVuY3Rpb24gcmN0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQp'@; put 'cmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlp'@; put 'biBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31mdW5jdGlvbiB0Z2UoYyxsKXtyZXR1cm4gYy5nZXQoel8oYyxsKSl9ZnVuY3Rpb24gU0ooYyxsLGEpe3JldHVybiBjLnNldCh6'@; put 'XyhjLGwpLGEpLGF9ZnVuY3Rpb24gel8oYyxsLGEpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBjP2M9PT1sOmMuaGFzKGwpKXJldHVybiBhcmd1bWVudHMubGVuZ3RoPDM/bDphO3Rocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgZWxlbWVudCBpcyBub3QgcHJlc2VudCBvbiB0aGlzIG9iamVj'@; put 'dCIpfWNvbnN0IG9GPSJjb2xsYXBzaWJsZUNvbHVtbnMiLGFjdD1bIm5lc3RlZEhlYWRlcnMiXSxVXz0iY29sbGFwc2libGVJbmRpY2F0b3IiLG5nZT1vRixyZ2U9bmV3IE1hcChbWyJjb2xsYXBzZSIse2hpZGVDb2x1bW46ITAsYmVmb3JlSG9vazoiYmVmb3JlQ29sdW1uQ29sbGFwc2UiLGFm'@; put 'dGVySG9vazoiYWZ0ZXJDb2x1bW5Db2xsYXBzZSJ9XSxbImV4cGFuZCIse2hpZGVDb2x1bW46ITEsYmVmb3JlSG9vazoiYmVmb3JlQ29sdW1uRXhwYW5kIixhZnRlckhvb2s6ImFmdGVyQ29sdW1uRXhwYW5kIn1dXSk7dmFyIFpfPW5ldyBXZWFrTWFwLHlUPW5ldyBXZWFrU2V0O2NsYXNzIHNj'@; put 'dCBleHRlbmRzIEZve2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxmdW5jdGlvbiBlY3QoYyxsKXtRNGUoYyxsKSxsLmFkZChjKX0odGhpcyx5VCksZWdlKHRoaXMsIm5lc3RlZEhlYWRlcnNQbHVnaW4iLG51bGwpLGVnZSh0aGlzLCJoZWFkZXJTdGF0ZU1hbmFnZXIiLG51bGwp'@; put 'LGZ1bmN0aW9uIHRjdChjLGwsYSl7UTRlKGMsbCksbC5zZXQoYyxhKX0odGhpcyxaXyxudWxsKX1zdGF0aWMgZ2V0IFBMVUdJTl9LRVkoKXtyZXR1cm4gb0Z9c3RhdGljIGdldCBQTFVHSU5fUFJJT1JJVFkoKXtyZXR1cm4gMjkwfXN0YXRpYyBnZXQgUExVR0lOX0RFUFMoKXtyZXR1cm5bInBs'@; put 'dWdpbjpOZXN0ZWRIZWFkZXJzIl19c3RhdGljIGdldCBTRVRUSU5HX0tFWVMoKXtyZXR1cm5bb0YsLi4uYWN0XX1pc0VuYWJsZWQoKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbb0ZdfWVuYWJsZVBsdWdpbigpe3ZhciBsPXRoaXM7aWYodGhpcy5lbmFibGVkKXJldHVybjtjb25z'@; put 'dHtuZXN0ZWRIZWFkZXJzOmF9PXRoaXMuaG90LmdldFNldHRpbmdzKCk7YXx8WW8oIllvdSBuZWVkIHRvIGNvbmZpZ3VyZSB0aGUgTmVzdGVkIEhlYWRlcnMgcGx1Z2luIGluIG9yZGVyIHRvIHVzZSBjb2xsYXBzaWJsZSBoZWFkZXJzLiIpLFNKKFpfLHRoaXMsdGhpcy5ob3QuY29sdW1uSW5k'@; put 'ZXhNYXBwZXIuY3JlYXRlQW5kUmVnaXN0ZXJJbmRleE1hcCh0aGlzLnBsdWdpbk5hbWUsImhpZGluZyIpKSx0aGlzLm5lc3RlZEhlYWRlcnNQbHVnaW49dGhpcy5ob3QuZ2V0UGx1Z2luKCJuZXN0ZWRIZWFkZXJzIiksdGhpcy5oZWFkZXJTdGF0ZU1hbmFnZXI9dGhpcy5uZXN0ZWRIZWFkZXJz'@; put 'UGx1Z2luLmdldFN0YXRlTWFuYWdlcigpLHRoaXMuYWRkSG9vaygiaW5pdCIsKCk9PnpfKHlULHRoaXMsY2N0KS5jYWxsKHRoaXMpKSx0aGlzLmFkZEhvb2soImFmdGVyTG9hZERhdGEiLGZ1bmN0aW9uKCl7Zm9yKHZhciBkPWFyZ3VtZW50cy5sZW5ndGgsaD1uZXcgQXJyYXkoZCksZj0wO2Y8'@; put 'ZDtmKyspaFtmXT1hcmd1bWVudHNbZl07cmV0dXJuIHpfKHlULGwsdWN0KS5jYWxsKGwsLi4uaCl9KSx0aGlzLmFkZEhvb2soImFmdGVyR2V0Q29sSGVhZGVyIixmdW5jdGlvbigpe2Zvcih2YXIgZD1hcmd1bWVudHMubGVuZ3RoLGg9bmV3IEFycmF5KGQpLGY9MDtmPGQ7ZisrKWhbZl09YXJn'@; put 'dW1lbnRzW2ZdO3JldHVybiB6Xyh5VCxsLG9jdCkuY2FsbChsLC4uLmgpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVPbkNlbGxNb3VzZURvd24iLChkLGgsZik9PnpfKHlULHRoaXMsbGN0KS5jYWxsKHRoaXMsZCxoLGYpKSx0aGlzLnJlZ2lzdGVyU2hvcnRjdXRzKCksc3VwZXIuZW5hYmxlUGx1'@; put 'Z2luKCksdGhpcy51cGRhdGVQbHVnaW4oKX11cGRhdGVQbHVnaW4oKXtpZih0aGlzLmhvdC52aWV3KXtpZighdGhpcy5uZXN0ZWRIZWFkZXJzUGx1Z2luLmRldGVjdGVkT3ZlcmxhcHBlZEhlYWRlcnMpe2NvbnN0e2NvbGxhcHNpYmxlQ29sdW1uczpsfT10aGlzLmhvdC5nZXRTZXR0aW5ncygp'@; put 'OyJib29sZWFuIj09dHlwZW9mIGw/dGhpcy5oZWFkZXJTdGF0ZU1hbmFnZXIubWFwU3RhdGUoYT0+KHtjb2xsYXBzaWJsZTphLm9yaWdDb2xzcGFuPjF9KSk6QXJyYXkuaXNBcnJheShsKSYmKHRoaXMuaGVhZGVyU3RhdGVNYW5hZ2VyLm1hcFN0YXRlKCgpPT4oe2NvbGxhcHNpYmxlOiExfSkp'@; put 'LHRoaXMuaGVhZGVyU3RhdGVNYW5hZ2VyLm1lcmdlU3RhdGVXaXRoKGwpKX1zdXBlci51cGRhdGVQbHVnaW4oKX19ZGlzYWJsZVBsdWdpbigpe3RoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLnVucmVnaXN0ZXJNYXAodGhpcy5wbHVnaW5OYW1lKSxTSihaXyx0aGlzLG51bGwpLHRoaXMubmVz'@; put 'dGVkSGVhZGVyc1BsdWdpbj1udWxsLHRoaXMudW5yZWdpc3RlclNob3J0Y3V0cygpLHRoaXMuY2xlYXJCdXR0b25zKCksc3VwZXIuZGlzYWJsZVBsdWdpbigpfXJlZ2lzdGVyU2hvcnRjdXRzKCl7dGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZ3JpZCIpLmFkZFNo'@; put 'b3J0Y3V0KHtrZXlzOltbIkVudGVyIl1dLGNhbGxiYWNrOigpPT57dmFyIGw7Y29uc3R7cm93OmEsY29sOmR9PXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCkuaGlnaGxpZ2h0LHtjb2xsYXBzaWJsZTpoLGlzQ29sbGFwc2VkOmYsY29sdW1uSW5kZXg6dn09bnVsbCE9PShsPXRoaXMu'@; put 'aGVhZGVyU3RhdGVNYW5hZ2VyLmdldEhlYWRlclRyZWVOb2RlRGF0YShhLGQpKSYmdm9pZCAwIT09bD9sOnt9O2lmKGgpcmV0dXJuIGY/dGhpcy5leHBhbmRTZWN0aW9uKHtyb3c6YSxjb2w6dn0pOnRoaXMuY29sbGFwc2VTZWN0aW9uKHtyb3c6YSxjb2w6dn0pLCExfSxydW5Pbmx5SWY6KCk9'@; put 'Pnt2YXIgbCxhO3JldHVybihudWxsPT09KGw9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSl8fHZvaWQgMD09PWw/dm9pZCAwOmwuaXNTaW5nbGUoKSkmJihudWxsPT09KGE9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSl8fHZvaWQgMD09PWE/dm9pZCAwOmEuaGlnaGxp'@; put 'Z2h0LmlzSGVhZGVyKCkpfSxncm91cDpuZ2UscmVsYXRpdmVUb0dyb3VwOnptLHBvc2l0aW9uOiJiZWZvcmUifSl9dW5yZWdpc3RlclNob3J0Y3V0cygpe3RoaXMuaG90LmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImdyaWQiKS5yZW1vdmVTaG9ydGN1dHNCeUdyb3VwKG5nZSl9'@; put 'Y2xlYXJCdXR0b25zKCl7aWYoIXRoaXMuaG90LnZpZXcpcmV0dXJuO2NvbnN0IGw9dGhpcy5ob3Qudmlldy5fd3QuZ2V0U2V0dGluZygiY29sdW1uSGVhZGVycyIpLmxlbmd0aCxhPXRoaXMuaG90LnZpZXcuX3d0Lnd0VGFibGUuVEhFQUQsZD10aGlzLmhvdC52aWV3Ll93dC53dE92ZXJsYXlz'@; put 'LnRvcE92ZXJsYXkuY2xvbmUud3RUYWJsZS5USEVBRCxoPXRoaXMuaG90LnZpZXcuX3d0Lnd0T3ZlcmxheXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5P3RoaXMuaG90LnZpZXcuX3d0Lnd0T3ZlcmxheXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LmNsb25lLnd0VGFibGUuVEhF'@; put 'QUQ6bnVsbCxmPWZ1bmN0aW9uKHYpe3YmJnYucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh2KX07S2EoMCxsLTEsdj0+e2NvbnN0IE09YS5jaGlsZE5vZGVzW3ZdLEk9ZC5jaGlsZE5vZGVzW3ZdLEc9aD9oLmNoaWxkTm9kZXNbdl06bnVsbDtLYSgwLE0uY2hpbGROb2Rlcy5sZW5ndGgtMSxyZT0+'@; put 'e2xldCB1ZT1NLmNoaWxkTm9kZXNbcmVdLnF1ZXJ5U2VsZWN0b3IoYC4ke1VffWApO2YodWUpLEkmJkkuY2hpbGROb2Rlc1tyZV0mJih1ZT1JLmNoaWxkTm9kZXNbcmVdLnF1ZXJ5U2VsZWN0b3IoYC4ke1VffWApLGYodWUpKSxoJiZHJiZHLmNoaWxkTm9kZXNbcmVdJiYodWU9Ry5jaGlsZE5v'@; put 'ZGVzW3JlXS5xdWVyeVNlbGVjdG9yKGAuJHtVX31gKSxmKHVlKSl9KX0pfWV4cGFuZFNlY3Rpb24obCl7dGhpcy50b2dnbGVDb2xsYXBzaWJsZVNlY3Rpb24oW2xdLCJleHBhbmQiKX1jb2xsYXBzZVNlY3Rpb24obCl7dGhpcy50b2dnbGVDb2xsYXBzaWJsZVNlY3Rpb24oW2xdLCJjb2xsYXBz'@; put 'ZSIpfXRvZ2dsZUFsbENvbGxhcHNpYmxlU2VjdGlvbnMobCl7Y29uc3QgYT10aGlzLmhlYWRlclN0YXRlTWFuYWdlci5tYXBOb2RlcyhkPT57Y29uc3R7Y29sbGFwc2libGU6aCxvcmlnQ29sc3BhbjpmLGhlYWRlckxldmVsOnYsY29sdW1uSW5kZXg6TSxpc0NvbGxhcHNlZDpJfT1kO2lmKCEw'@; put 'PT09aCYmZj4xJiYoSSYmImV4cGFuZCI9PT1sfHwhSSYmImNvbGxhcHNlIj09PWwpKXJldHVybntyb3c6dGhpcy5oZWFkZXJTdGF0ZU1hbmFnZXIubGV2ZWxUb1Jvd0Nvb3Jkcyh2KSxjb2w6TX19KTt0aGlzLnRvZ2dsZUNvbGxhcHNpYmxlU2VjdGlvbihhLGwpfWNvbGxhcHNlQWxsKCl7dGhp'@; put 'cy50b2dnbGVBbGxDb2xsYXBzaWJsZVNlY3Rpb25zKCJjb2xsYXBzZSIpfWV4cGFuZEFsbCgpe3RoaXMudG9nZ2xlQWxsQ29sbGFwc2libGVTZWN0aW9ucygiZXhwYW5kIil9dG9nZ2xlQ29sbGFwc2libGVTZWN0aW9uKGwsYSl7aWYoIXJnZS5oYXMoYSkpdGhyb3cgbmV3IEVycm9yKGBVbnN1'@; put 'cHBvcnRlZCBhY3Rpb24gaXMgcGFzc2VkICgke2F9KS5gKTtpZighQXJyYXkuaXNBcnJheShsKSlyZXR1cm47Y29uc3QgZD1BbShsLEVlPT57bGV0e3JvdzpCZX09RWU7cmV0dXJuIEJlPDB9KTtsZXQgaD1kLmxlbmd0aD4wO0tuKGQsRWU9Pnt2YXIgQmU7bGV0e3JvdzpHZSxjb2w6c3R9PUVl'@; put 'O2NvbnN0e2NvbGxhcHNpYmxlOnB0LGlzQ29sbGFwc2VkOmR0fT1udWxsIT09KEJlPXRoaXMuaGVhZGVyU3RhdGVNYW5hZ2VyLmdldEhlYWRlclNldHRpbmdzKEdlLHN0KSkmJnZvaWQgMCE9PUJlP0JlOnt9O2lmKCFwdHx8ZHQmJiJjb2xsYXBzZSI9PT1hfHwhZHQmJiJleHBhbmQiPT09YSly'@; put 'ZXR1cm4gaD0hMSwhMX0pO2NvbnN0IGY9W10sdj1bXTtoJiZLbihkLEVlPT57bGV0e3JvdzpCZSxjb2w6R2V9PUVlO2NvbnN0e2NvbHNwYW5Db21wZW5zYXRpb246c3QsYWZmZWN0ZWRDb2x1bW5zOnB0LHJvbGxiYWNrTW9kaWZpY2F0aW9uOmR0fT10aGlzLmhlYWRlclN0YXRlTWFuYWdlci50'@; put 'cmlnZ2VyTm9kZU1vZGlmaWNhdGlvbihhLEJlLEdlKTtzdD4wJiYodi5wdXNoKC4uLnB0KSxmLnB1c2goZHQpKX0pO2NvbnN0IE09dGhpcy5nZXRDb2xsYXBzZWRDb2x1bW5zKCk7bGV0IEk9W107ImNvbGxhcHNlIj09PWE/ST1UMmUoWy4uLk0sLi4udl0pOiJleHBhbmQiPT09YSYmKEk9QW0o'@; put 'TSxFZT0+IXYuaW5jbHVkZXMoRWUpKSk7Y29uc3QgRz1yZ2UuZ2V0KGEpO2lmKCExPT09dGhpcy5ob3QucnVuSG9va3MoRy5iZWZvcmVIb29rLE0sSSxoKSlyZXR1cm4gdm9pZCBLbihmLEVlPT57RWUoKX0pO3RoaXMuaG90LmJhdGNoRXhlY3V0aW9uKCgpPT57S24odixFZT0+e3RnZShaXyx0'@; put 'aGlzKS5zZXRWYWx1ZUF0SW5kZXgodGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihFZSksRy5oaWRlQ29sdW1uKX0pfSwhMCk7Y29uc3QgdWU9dGhpcy5nZXRDb2xsYXBzZWRDb2x1bW5zKCkubGVuZ3RoIT09TS5sZW5ndGgseWU9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtpZigi'@; put 'Y29sbGFwc2UiPT09YSYmdWUmJnllKXtjb25zdHtyb3c6RWUsY29sOkJlfT15ZS5oaWdobGlnaHQ7aWYoKHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLmlzSGlkZGVuKEVlKXx8dGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIuaXNIaWRkZW4oQmUpKSYmdi5pbmNsdWRlcyhCZSkpe2NvbnN0IHN0'@; put 'PUVlPj0wP3RoaXMuaG90LnJvd0luZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChFZSwxLCEwKTpFZSxwdD1CZT49MD90aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoQmUsMSwhMCk6QmU7bnVsbCE9PXN0JiZudWxsIT09cHQmJnRo'@; put 'aXMuaG90LnNlbGVjdENlbGwoc3QscHQpfX10aGlzLmhvdC5ydW5Ib29rcyhHLmFmdGVySG9vayxNLEksaCx1ZSksdGhpcy5ob3QucmVuZGVyKCksdGhpcy5ob3Qudmlldy5hZGp1c3RFbGVtZW50c1NpemUoKX1nZXRDb2xsYXBzZWRDb2x1bW5zKCl7cmV0dXJuIHRnZShaXyx0aGlzKS5nZXRI'@; put 'aWRkZW5JbmRleGVzKCl9ZGVzdHJveSgpe1NKKFpfLHRoaXMsbnVsbCksc3VwZXIuZGVzdHJveSgpfX1mdW5jdGlvbiBvY3QoYyxsLGEpe3ZhciBkO2NvbnN0e2NvbGxhcHNpYmxlOmgsb3JpZ0NvbHNwYW46Zixpc0NvbGxhcHNlZDp2fT1udWxsIT09KGQ9dGhpcy5oZWFkZXJTdGF0ZU1hbmFn'@; put 'ZXIuZ2V0SGVhZGVyU2V0dGluZ3MoYSxjKSkmJnZvaWQgMCE9PWQ/ZDp7fSxNPWgmJmY+MSYmYz49dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5maXhlZENvbHVtbnNTdGFydCxJPXRoaXMuaG90LmdldFNldHRpbmdzKCkuYXJpYVRhZ3M7bGV0IEc9bC5xdWVyeVNlbGVjdG9yKGAuJHtVX31gKTt2'@; put 'YXIgcmU7QjcobCxbQjIoIiIpWzBdXSksTT8oR3x8KEc9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLEVpKEcsVV8pLGwucXVlcnlTZWxlY3RvcigiZGl2OmZpcnN0LWNoaWxkIikuYXBwZW5kQ2hpbGQoRykpLGhzKEcsWyJjb2xsYXBzZWQiLCJleHBhbmRlZCJd'@; put 'KSx2PyhFaShHLCJjb2xsYXBzZWQiKSxMbShHLCIrIiksSSYmbXMobCwuLi5CMighMSkpKTooRWkoRywiZXhwYW5kZWQiKSxMbShHLCItIiksSSYmbXMobCwuLi5CMighMCkpKSxJJiZtcyhHLC4uLk43KCkpKTpudWxsPT09KHJlPUcpfHx2b2lkIDA9PT1yZXx8cmUucmVtb3ZlKCl9ZnVuY3Rp'@; put 'b24gbGN0KGMsbCl7Z3MoYy50YXJnZXQsVV8pJiYoZ3MoYy50YXJnZXQsImV4cGFuZGVkIik/KHRoaXMuZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChjLnRhcmdldCwibW91c2V1cCIpLHRoaXMudG9nZ2xlQ29sbGFwc2libGVTZWN0aW9uKFtsXSwiY29sbGFwc2UiKSk6Z3MoYy50YXJnZXQsImNv'@; put 'bGxhcHNlZCIpJiYodGhpcy5ldmVudE1hbmFnZXIuZmlyZUV2ZW50KGMudGFyZ2V0LCJtb3VzZXVwIiksdGhpcy50b2dnbGVDb2xsYXBzaWJsZVNlY3Rpb24oW2xdLCJleHBhbmQiKSksejIoYykpfWZ1bmN0aW9uIGNjdCgpe3RoaXMudXBkYXRlUGx1Z2luKCl9ZnVuY3Rpb24gdWN0KGMsbCl7'@; put 'bHx8dGhpcy51cGRhdGVQbHVnaW4oKX1mdW5jdGlvbiBmOShjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gZGN0KGMpe3ZhciBsPWZ1bmN0aW9uIGhjdChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9'@; put 'PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVy'@; put 'KShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9Y29uc3QgZmN0PVsic29ydEVt'@; put 'cHR5Q2VsbHMiLCJpbmRpY2F0b3IiLCJoZWFkZXJBY3Rpb24iLCJjb21wYXJlRnVuY3Rpb25GYWN0b3J5Il07Y2xhc3MgdmN0e2NvbnN0cnVjdG9yKGwsYSl7ZjkodGhpcywiaG90Iix2b2lkIDApLGY5KHRoaXMsInNvcnRpbmdTdGF0ZXMiLG5ldyB5UCksZjkodGhpcywic29ydEVtcHR5Q2Vs'@; put 'bHMiLCExKSxmOSh0aGlzLCJpbmRpY2F0b3IiLCEwKSxmOSh0aGlzLCJoZWFkZXJBY3Rpb24iLCEwKSxmOSh0aGlzLCJjb21wYXJlRnVuY3Rpb25GYWN0b3J5Iix2b2lkIDApLGY5KHRoaXMsIm1hcE5hbWUiLHZvaWQgMCksdGhpcy5ob3Q9bCx0aGlzLm1hcE5hbWU9YSx0aGlzLmhvdC5jb2x1'@; put 'bW5JbmRleE1hcHBlci5yZWdpc3Rlck1hcChhLHRoaXMuc29ydGluZ1N0YXRlcyl9dXBkYXRlQWxsQ29sdW1uc1Byb3BlcnRpZXMobCl7WHMobCkmJnFzKGwsKGEsZCk9PntmY3QuaW5jbHVkZXMoZCkmJih0aGlzW2RdPWEpfSl9Z2V0QWxsQ29sdW1uc1Byb3BlcnRpZXMoKXtjb25zdCBsPXtz'@; put 'b3J0RW1wdHlDZWxsczp0aGlzLnNvcnRFbXB0eUNlbGxzLGluZGljYXRvcjp0aGlzLmluZGljYXRvcixoZWFkZXJBY3Rpb246dGhpcy5oZWFkZXJBY3Rpb259O3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLmNvbXBhcmVGdW5jdGlvbkZhY3RvcnkmJihsLmNvbXBhcmVGdW5jdGlvbkZh'@; put 'Y3Rvcnk9dGhpcy5jb21wYXJlRnVuY3Rpb25GYWN0b3J5KSxsfWdldFNvcnRPcmRlck9mQ29sdW1uKGwpe3ZhciBhO3JldHVybiBudWxsPT09KGE9dGhpcy5zb3J0aW5nU3RhdGVzLmdldFZhbHVlQXRJbmRleCh0aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKGwpKSl8fHZvaWQgMD09PWE/dm9p'@; put 'ZCAwOmEuc29ydE9yZGVyfWdldEluZGV4T2ZDb2x1bW5JblNvcnRRdWV1ZShsKXtyZXR1cm4gbD10aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKGwpLHRoaXMuc29ydGluZ1N0YXRlcy5nZXRFbnRyaWVzKCkuZmluZEluZGV4KGE9PntsZXRbZF09YTtyZXR1cm4gZD09PWx9KX1nZXROdW1iZXJP'@; put 'ZlNvcnRlZENvbHVtbnMoKXtyZXR1cm4gdGhpcy5zb3J0aW5nU3RhdGVzLmdldExlbmd0aCgpfWlzTGlzdE9mU29ydGVkQ29sdW1uc0VtcHR5KCl7cmV0dXJuIDA9PT10aGlzLmdldE51bWJlck9mU29ydGVkQ29sdW1ucygpfWlzQ29sdW1uU29ydGVkKGwpe3JldHVybiBYcyh0aGlzLnNvcnRp'@; put 'bmdTdGF0ZXMuZ2V0VmFsdWVBdEluZGV4KHRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4obCkpKX1nZXRTb3J0U3RhdGVzKCl7cmV0dXJuIG51bGw9PT10aGlzLnNvcnRpbmdTdGF0ZXM/W106dGhpcy5zb3J0aW5nU3RhdGVzLmdldEVudHJpZXMoKS5tYXAoYT0+e2xldFtkLGhdPWE7cmV0dXJu'@; put 'e2NvbHVtbjp0aGlzLmhvdC50b1Zpc3VhbENvbHVtbihkKSwuLi5ofX0pfWdldENvbHVtblNvcnRTdGF0ZShsKXtjb25zdCBhPXRoaXMuZ2V0U29ydE9yZGVyT2ZDb2x1bW4obCk7aWYoSGEoYSkpcmV0dXJue2NvbHVtbjpsLHNvcnRPcmRlcjphfX1zZXRTb3J0U3RhdGVzKGwpe3RoaXMuc29y'@; put 'dGluZ1N0YXRlcy5jbGVhcigpO2ZvcihsZXQgYT0wO2E8bC5sZW5ndGg7YSs9MSl0aGlzLnNvcnRpbmdTdGF0ZXMuc2V0VmFsdWVBdEluZGV4KHRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4obFthXS5jb2x1bW4pLHtzb3J0T3JkZXI6bFthXS5zb3J0T3JkZXJ9KX1kZXN0cm95KCl7dGhpcy5o'@; put 'b3QuY29sdW1uSW5kZXhNYXBwZXIudW5yZWdpc3Rlck1hcCh0aGlzLm1hcE5hbWUpLHRoaXMuc29ydGluZ1N0YXRlcz1udWxsfX1mdW5jdGlvbiBpZ2UoYyxsLGEpe2NvbnN0IGQ9bC5sb2NhbGU7cmV0dXJuIGZ1bmN0aW9uKGgsZil7Y29uc3R7c29ydEVtcHR5Q2VsbHM6dn09YTtyZXR1cm4i'@; put 'c3RyaW5nIj09dHlwZW9mIGgmJihoPWgudG9Mb2NhbGVMb3dlckNhc2UoZCkpLCJzdHJpbmciPT10eXBlb2YgZiYmKGY9Zi50b0xvY2FsZUxvd2VyQ2FzZShkKSksaD09PWY/anA6amMoaCk/amMoZik/anA6diYmImFzYyI9PT1jP1pjOldjOmpjKGYpP3YmJiJhc2MiPT09Yz9XYzpaYzppc05h'@; put 'TihoKSYmIWlzTmFOKGYpPyJhc2MiPT09Yz9XYzpaYzohaXNOYU4oaCkmJmlzTmFOKGYpfHwoaXNOYU4oaCl8fGlzTmFOKGYpfHwoaD1wYXJzZUZsb2F0KGgpLGY9cGFyc2VGbG9hdChmKSksaDxmKT8iYXNjIj09PWM/WmM6V2M6aD5mPyJhc2MiPT09Yz9XYzpaYzpqcH19Y29uc3R7cmVnaXN0'@; put 'ZXI6YlQsZ2V0SXRlbTpzZ2UsaGFzSXRlbTpFY3R9PVUyKCJzb3J0aW5nLmNvbXBhcmVGdW5jdGlvbkZhY3RvcnkiKSx7cmVnaXN0ZXI6b2dlLGdldEl0ZW06VGN0fT1VMigic29ydGluZy5tYWluU29ydENvbXBhcmF0b3IiKTtmdW5jdGlvbiBsZ2UoYyl7cmV0dXJuIEVjdChjKT9zZ2UoYyk6'@; put 'c2dlKCJkZWZhdWx0Iil9YlQoImNoZWNrYm94IixmdW5jdGlvbiBfY3QoYyxsLGEpe2NvbnN0IGQ9bC5jaGVja2VkVGVtcGxhdGUsaD1sLnVuY2hlY2tlZFRlbXBsYXRlLHtzb3J0RW1wdHlDZWxsczpmfT1hO3JldHVybiBmdW5jdGlvbih2LE0pe2NvbnN0IEk9amModiksRz1qYyhNKSxyZT1J'@; put 'P2g6dix1ZT1HP2g6TSx5ZT1yZT09PWh8fHJlPT09ZCxFZT11ZT09PWh8fHVlPT09ZDtpZighMT09PWYpe2lmKEkmJiExPT09RylyZXR1cm4gV2M7aWYoITE9PT1JJiZHKXJldHVybiBaY31yZXR1cm4hMT09PXllJiZFZT8iYXNjIj09PWM/WmM6V2M6eWUmJiExPT09RWU/ImFzYyI9PT1jP1dj'@; put 'OlpjOiExPT09eWUmJiExPT09RWU/aWdlKGMsbCxhKSh2LE0pOnJlPT09aCYmdWU9PT1kPyJhc2MiPT09Yz9aYzpXYzpyZT09PWQmJnVlPT09aD8iYXNjIj09PWM/V2M6WmM6anB9fSksYlQoImRhdGUiLGZ1bmN0aW9uIENjdChjLGwsYSl7cmV0dXJuIGZnZShjLGwuZGF0ZUZvcm1hdCxhKX0p'@; put 'LGJUKCJkZWZhdWx0IixpZ2UpLGJUKCJudW1lcmljIixmdW5jdGlvbiB5Y3QoYyxsLGEpe3JldHVybiBmdW5jdGlvbihkLGgpe2NvbnN0IGY9cGFyc2VGbG9hdChkKSx2PXBhcnNlRmxvYXQoaCkse3NvcnRFbXB0eUNlbGxzOk19PWE7aWYoZj09PXZ8fGlzTmFOKGYpJiZpc05hTih2KSlyZXR1'@; put 'cm4ganA7aWYoTSl7aWYoamMoZCkpcmV0dXJuImFzYyI9PT1jP1pjOldjO2lmKGpjKGgpKXJldHVybiJhc2MiPT09Yz9XYzpaY31yZXR1cm4gaXNOYU4oZik/V2M6aXNOYU4odik/WmM6Zjx2PyJhc2MiPT09Yz9aYzpXYzpmPnY/ImFzYyI9PT1jP1djOlpjOmpwfX0pLGJUKCJ0aW1lIixmdW5j'@; put 'dGlvbiBNY3QoYyxsLGEpe3JldHVybiBmZ2UoYyxsLnRpbWVGb3JtYXQsYSl9KTtjb25zdCBqcD0wLFpjPS0xLFdjPTEsbEY9ImFzYyIsY0Y9ImRlc2MiLGNnZT0iY29sSGVhZGVyIjtmdW5jdGlvbiB1Z2UoYyl7aWYoYyE9PWNGKXJldHVybiBjPT09bEY/Y0Y6bEZ9ZnVuY3Rpb24gZGdlKGMp'@; put 'e3JldHVybiBjLnF1ZXJ5U2VsZWN0b3IoYC4ke2NnZX1gKX1mdW5jdGlvbiBoZ2UoYyxsKXtpZihjPDB8fCFsLnBhcmVudE5vZGUpcmV0dXJuITE7Y29uc3QgYT1sLnBhcmVudE5vZGUucGFyZW50Tm9kZS5jaGlsZE5vZGVzO3JldHVybiBBcnJheS5mcm9tKGEpLmluZGV4T2YobC5wYXJlbnRO'@; put 'b2RlKS1hLmxlbmd0aD09LTF9ZnVuY3Rpb24gTUooYyxsLGEpe3JldHVybi0xPT09YyYmbD49MCYmITE9PT1QbShhKX1mdW5jdGlvbiBmZ2UoYyxsLGEpe3JldHVybiBmdW5jdGlvbihkLGgpe2NvbnN0e3NvcnRFbXB0eUNlbGxzOmZ9PWE7aWYoZD09PWgpcmV0dXJuIGpwO2lmKGpjKGQpKXJl'@; put 'dHVybiBqYyhoKT9qcDpmJiYiYXNjIj09PWM/WmM6V2M7aWYoamMoaCkpcmV0dXJuIGYmJiJhc2MiPT09Yz9XYzpaYztjb25zdCB2PVBzKGQsbCksTT1QcyhoLGwpO3JldHVybiB2LmlzVmFsaWQoKT9NLmlzVmFsaWQoKT9NLmlzQWZ0ZXIodik/ImFzYyI9PT1jP1pjOldjOk0uaXNCZWZvcmUo'@; put 'dik/ImFzYyI9PT1jP1djOlpjOmpwOlpjOldjfX1jb25zdCBwZ2U9ImluZGljYXRvckRpc2FibGVkIixnZ2U9ImNvbHVtblNvcnRpbmciLG1nZT0ic29ydEFjdGlvbiIsdmdlPW5ldyBNYXAoW1tsRiwiYXNjZW5kaW5nIl0sW2NGLCJkZXNjZW5kaW5nIl1dKTtmdW5jdGlvbiB1RihjLGwsYSl7'@; put 'cmV0dXJuKGw9ZnVuY3Rpb24gVmN0KGMpe3ZhciBsPWZ1bmN0aW9uIEJjdChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVj'@; put 'dCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBs'@; put 'P2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9ZnVuY3Rpb24gV18oYyxsLGEpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBjP2M9PT1sOmMuaGFzKGwpKXJl'@; put 'dHVybiBhcmd1bWVudHMubGVuZ3RoPDM/bDphO3Rocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgZWxlbWVudCBpcyBub3QgcHJlc2VudCBvbiB0aGlzIG9iamVjdCIpfWNvbnN0IGRGPSJjb2x1bW5Tb3J0aW5nIixoRj0iYXBwZW5kIix5Z2U9ZEY7b2dlKGRGLGZ1bmN0aW9uIEZjdChjLGwp'@; put 'e3JldHVybiBmdW5jdGlvbihhLGQpe2NvbnN0WywuLi5oXT1hLFssLi4uZl09ZDtyZXR1cm4gZnVuY3Rpb24oTSl7Y29uc3QgST1jWzBdLEc9bFswXSxyZT1oWzBdLHVlPWZbMF0seWU9Ry5jb2x1bW5Tb3J0aW5nO3JldHVybih5ZS5jb21wYXJlRnVuY3Rpb25GYWN0b3J5P3llLmNvbXBhcmVG'@; put 'dW5jdGlvbkZhY3Rvcnk6bGdlKEcudHlwZSkpKEksRyx5ZSkocmUsdWUpfSgpfX0pLE1hLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJiZWZvcmVDb2x1bW5Tb3J0IiksTWEuZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyQ29sdW1uU29ydCIpO2NvbnN0IF9UPW5ldyBXZWFrTWFwO3Zh'@; put 'ciBwOT1uZXcgV2Vha1NldDtjbGFzcyBiZ2UgZXh0ZW5kcyBGb3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksZnVuY3Rpb24gSGN0KGMsbCl7KGZ1bmN0aW9uIE5jdChjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBz'@; put 'YW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShjLGwpLGwuYWRkKGMpfSh0aGlzLHA5KSx1Rih0aGlzLCJjb2x1bW5TdGF0ZXNNYW5hZ2VyIixudWxsKSx1Rih0aGlzLCJjb2x1bW5NZXRhQ2FjaGUiLG51bGwpLHVGKHRoaXMsInBsdWdpbktleSIsZEYpLHVGKHRo'@; put 'aXMsImluZGV4ZXNTZXF1ZW5jZUNhY2hlIixudWxsKX1zdGF0aWMgZ2V0IFBMVUdJTl9LRVkoKXtyZXR1cm4gZEZ9c3RhdGljIGdldCBQTFVHSU5fUFJJT1JJVFkoKXtyZXR1cm4gNTB9aXNFbmFibGVkKCl7cmV0dXJuISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpW3RoaXMucGx1Z2luS2V5XX1l'@; put 'bmFibGVQbHVnaW4oKXt2YXIgbD10aGlzO2lmKF9ULmhhcyh0aGlzLmhvdCkmJl9ULmdldCh0aGlzLmhvdCkhPT10aGlzLnBsdWdpbktleSlyZXR1cm4gdGhpcy5ob3QudXBkYXRlU2V0dGluZ3Moe1t0aGlzLnBsdWdpbktleV06ITF9KSx2b2lkIGZ1bmN0aW9uIEljdChjLGwpe1lvKGhsYFBs'@; put 'dWdpbnMgXGBjb2x1bW5Tb3J0aW5nXGAgYW5kIFxgbXVsdGlDb2x1bW5Tb3J0aW5nXGAgc2hvdWxkIG5vdCBiZSBlbmFibGVkIHNpbXVsdGFuZW91c2x5Llx4MjAKICAgIE9ubHkgXGAke2N9XGAgd2lsbCB3b3JrLiBUaGUgXGAke2x9XGAgcGx1Z2luIHdpbGwgcmVtYWluIGRpc2FibGVkLmAp'@; put 'fShfVC5nZXQodGhpcy5ob3QpLHRoaXMucGx1Z2luS2V5KTt0aGlzLmVuYWJsZWR8fChfVC5zZXQodGhpcy5ob3QsdGhpcy5wbHVnaW5LZXkpLHRoaXMuY29sdW1uU3RhdGVzTWFuYWdlcj1uZXcgdmN0KHRoaXMuaG90LGAke3RoaXMucGx1Z2luS2V5fS5zb3J0aW5nU3RhdGVzYCksdGhpcy5j'@; put 'b2x1bW5NZXRhQ2FjaGU9bmV3IGptKGE9PntsZXQgZD10aGlzLmhvdC50b1Zpc3VhbENvbHVtbihhKTtyZXR1cm4gbnVsbD09PWQmJihkPWEpLHRoaXMuZ2V0TWVyZ2VkUGx1Z2luU2V0dGluZ3MoZCl9KSx0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5yZWdpc3Rlck1hcChgJHt0aGlzLnBs'@; put 'dWdpbktleX0uY29sdW1uTWV0YWAsdGhpcy5jb2x1bW5NZXRhQ2FjaGUpLHRoaXMuYWRkSG9vaygiYWZ0ZXJHZXRDb2xIZWFkZXIiLChhLGQpPT5XXyhwOSx0aGlzLFVjdCkuY2FsbCh0aGlzLGEsZCkpLHRoaXMuYWRkSG9vaygiYmVmb3JlT25DZWxsTW91c2VEb3duIixmdW5jdGlvbigpe2Zv'@; put 'cih2YXIgYT1hcmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDtoPGE7aCsrKWRbaF09YXJndW1lbnRzW2hdO3JldHVybiBXXyhwOSxsLFdjdCkuY2FsbChsLC4uLmQpfSksdGhpcy5hZGRIb29rKCJhZnRlck9uQ2VsbE1vdXNlRG93biIsKGEsZCk9PnRoaXMub25BZnRlck9uQ2Vs'@; put 'bE1vdXNlRG93bihhLGQpKSx0aGlzLmFkZEhvb2soImFmdGVySW5pdCIsKCk9PldfKHA5LHRoaXMseEopLmNhbGwodGhpcykpLHRoaXMuYWRkSG9vaygiYWZ0ZXJMb2FkRGF0YSIsZnVuY3Rpb24oKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxkPW5ldyBBcnJheShhKSxoPTA7aDxhO2gr'@; put 'KylkW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gV18ocDksbCxaY3QpLmNhbGwobCwuLi5kKX0pLHRoaXMuaG90LnZpZXcmJldfKHA5LHRoaXMseEopLmNhbGwodGhpcyksdGhpcy5yZWdpc3RlclNob3J0Y3V0cygpLHN1cGVyLmVuYWJsZVBsdWdpbigpKX1kaXNhYmxlUGx1Z2luKCl7Y29uc3Qg'@; put 'bD0oYSxkKT0+e2NvbnN0IGg9ZGdlKGQpOyExPT09aGdlKGEsZCl8fG51bGw9PT1ofHx0aGlzLnVwZGF0ZUhlYWRlckNsYXNzZXMoaCl9O19ULmRlbGV0ZSh0aGlzLmhvdCksdGhpcy5ob3QuYWRkSG9vaygiYWZ0ZXJHZXRDb2xIZWFkZXIiLGwpLHRoaXMuaG90LmFkZEhvb2tPbmNlKCJhZnRl'@; put 'clZpZXdSZW5kZXIiLCgpPT57dGhpcy5ob3QucmVtb3ZlSG9vaygiYWZ0ZXJHZXRDb2xIZWFkZXIiLGwpfSksdGhpcy5ob3QuYmF0Y2hFeGVjdXRpb24oKCk9PntudWxsIT09dGhpcy5pbmRleGVzU2VxdWVuY2VDYWNoZSYmKHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLnNldEluZGV4ZXNTZXF1'@; put 'ZW5jZSh0aGlzLmluZGV4ZXNTZXF1ZW5jZUNhY2hlLmdldFZhbHVlcygpKSx0aGlzLmhvdC5yb3dJbmRleE1hcHBlci51bnJlZ2lzdGVyTWFwKHRoaXMucGx1Z2luS2V5KSx0aGlzLmluZGV4ZXNTZXF1ZW5jZUNhY2hlPW51bGwpfSwhMCksdGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIudW5y'@; put 'ZWdpc3Rlck1hcChgJHt0aGlzLnBsdWdpbktleX0uY29sdW1uTWV0YWApLHRoaXMuY29sdW1uU3RhdGVzTWFuYWdlci5kZXN0cm95KCksdGhpcy5jb2x1bW5NZXRhQ2FjaGU9bnVsbCx0aGlzLmNvbHVtblN0YXRlc01hbmFnZXI9bnVsbCx0aGlzLnVucmVnaXN0ZXJTaG9ydGN1dHMoKSxzdXBl'@; put 'ci5kaXNhYmxlUGx1Z2luKCl9cmVnaXN0ZXJTaG9ydGN1dHMoKXt0aGlzLmhvdC5nZXRTaG9ydGN1dE1hbmFnZXIoKS5nZXRDb250ZXh0KCJncmlkIikuYWRkU2hvcnRjdXQoe2tleXM6W1siRW50ZXIiXV0sY2FsbGJhY2s6KCk9Pntjb25zdHtoaWdobGlnaHQ6bH09dGhpcy5ob3QuZ2V0U2Vs'@; put 'ZWN0ZWRSYW5nZUxhc3QoKTtyZXR1cm4gdGhpcy5zb3J0KHRoaXMuZ2V0Q29sdW1uTmV4dENvbmZpZyhsLmNvbCkpLCExfSxydW5Pbmx5SWY6KCk9Pnt2YXIgbCxhO2NvbnN0IGQ9bnVsbD09PShsPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCkpfHx2b2lkIDA9PT1sP3ZvaWQgMDps'@; put 'LmhpZ2hsaWdodDtyZXR1cm4gZCYmKG51bGw9PT0oYT10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpKXx8dm9pZCAwPT09YT92b2lkIDA6YS5pc1NpbmdsZSgpKSYmdGhpcy5ob3Quc2VsZWN0aW9uLmlzQ2VsbFZpc2libGUoZCkmJi0xPT09ZC5yb3cmJmQuY29sPj0wfSxyZWxhdGl2'@; put 'ZVRvR3JvdXA6em0scG9zaXRpb246ImJlZm9yZSIsZ3JvdXA6eWdlfSl9dW5yZWdpc3RlclNob3J0Y3V0cygpe3RoaXMuaG90LmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImdyaWQiKS5yZW1vdmVTaG9ydGN1dHNCeUdyb3VwKHlnZSl9c29ydChsKXtjb25zdCBhPXRoaXMuZ2V0'@; put 'U29ydENvbmZpZygpLGQ9dGhpcy5nZXROb3JtYWxpemVkU29ydENvbmZpZ3MobCksaD10aGlzLmFyZVZhbGlkU29ydENvbmZpZ3MoZCk7ITEhPT10aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlQ29sdW1uU29ydCIsYSxkLGgpJiYoMD09PWEubGVuZ3RoJiZudWxsPT09dGhpcy5pbmRleGVzU2Vx'@; put 'dWVuY2VDYWNoZSYmKHRoaXMuaW5kZXhlc1NlcXVlbmNlQ2FjaGU9dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIucmVnaXN0ZXJNYXAodGhpcy5wbHVnaW5LZXksbmV3IEgzZSksdGhpcy5pbmRleGVzU2VxdWVuY2VDYWNoZS5zZXRWYWx1ZXModGhpcy5ob3Qucm93SW5kZXhNYXBwZXIuZ2V0SW5k'@; put 'ZXhlc1NlcXVlbmNlKCkpKSxoJiYodGhpcy5jb2x1bW5TdGF0ZXNNYW5hZ2VyLnNldFNvcnRTdGF0ZXMoZCksdGhpcy5zb3J0QnlQcmVzZXRTb3J0U3RhdGVzKGQpLHRoaXMuc2F2ZUFsbFNvcnRTZXR0aW5ncyhkKSksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyQ29sdW1uU29ydCIsYSxoP2Q6'@; put 'YSxoKSxoJiZ0aGlzLmhvdC5yZW5kZXIoKSl9Y2xlYXJTb3J0KCl7dGhpcy5zb3J0KFtdKX1pc1NvcnRlZCgpe3JldHVybiB0aGlzLmVuYWJsZWQmJiF0aGlzLmNvbHVtblN0YXRlc01hbmFnZXIuaXNMaXN0T2ZTb3J0ZWRDb2x1bW5zRW1wdHkoKX1nZXRTb3J0Q29uZmlnKGwpe3JldHVybiBI'@; put 'YShsKT90aGlzLmNvbHVtblN0YXRlc01hbmFnZXIuZ2V0Q29sdW1uU29ydFN0YXRlKGwpOnRoaXMuY29sdW1uU3RhdGVzTWFuYWdlci5nZXRTb3J0U3RhdGVzKCl9c2V0U29ydENvbmZpZyhsKXtjb25zdCBhPXRoaXMuZ2V0Tm9ybWFsaXplZFNvcnRDb25maWdzKGwpO3RoaXMuYXJlVmFsaWRT'@; put 'b3J0Q29uZmlncyhhKSYmdGhpcy5jb2x1bW5TdGF0ZXNNYW5hZ2VyLnNldFNvcnRTdGF0ZXMoYSl9Z2V0Tm9ybWFsaXplZFNvcnRDb25maWdzKCl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOltdO3JldHVybiBBcnJheS5pc0Fy'@; put 'cmF5KGwpP2wuc2xpY2UoMCwxKTpbbF19YXJlVmFsaWRTb3J0Q29uZmlncyhsKXtjb25zdCBhPXRoaXMuaG90LmNvdW50Q29scygpO3JldHVybiBmdW5jdGlvbiBEY3QoYyl7aWYoYy5zb21lKGE9PiExPT09ZnVuY3Rpb24ga2N0KGMpe2lmKCExPT09WHMoYykpcmV0dXJuITE7Y29uc3R7Y29s'@; put 'dW1uOmwsc29ydE9yZGVyOmF9PWM7cmV0dXJuIE51bWJlci5pc0ludGVnZXIobCkmJltsRixjRl0uaW5jbHVkZXMoYSl9KGEpKSlyZXR1cm4hMTtjb25zdCBsPWMubWFwKGE9PntsZXR7Y29sdW1uOmR9PWE7cmV0dXJuIGR9KTtyZXR1cm4gbmV3IFNldChsKS5zaXplPT09bC5sZW5ndGh9KGwp'@; put 'JiZsLmV2ZXJ5KGQ9PntsZXR7Y29sdW1uOmh9PWQ7cmV0dXJuIGg8PWEmJmg+PTB9KX1zYXZlQWxsU29ydFNldHRpbmdzKGwpe2NvbnN0IGE9dGhpcy5jb2x1bW5TdGF0ZXNNYW5hZ2VyLmdldEFsbENvbHVtbnNQcm9wZXJ0aWVzKCk7YS5pbml0aWFsQ29uZmlnPXlvKGwsaD0+e2xldHtjb2x1'@; put 'bW46ZiwuLi52fT1oO3JldHVybntjb2x1bW46dGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihmKSwuLi52fX0pLHRoaXMuaG90LnJ1bkhvb2tzKCJwZXJzaXN0ZW50U3RhdGVTYXZlIiwiY29sdW1uU29ydGluZyIsYSl9Z2V0QWxsU2F2ZWRTb3J0U2V0dGluZ3MoKXtjb25zdCBsPXt9O3RoaXMu'@; put 'aG90LnJ1bkhvb2tzKCJwZXJzaXN0ZW50U3RhdGVMb2FkIiwiY29sdW1uU29ydGluZyIsbCk7Y29uc3QgYT1sLnZhbHVlO3JldHVybiBIYShhKSYmQXJyYXkuaXNBcnJheShhLmluaXRpYWxDb25maWcpJiYoYS5pbml0aWFsQ29uZmlnPXlvKGEuaW5pdGlhbENvbmZpZyxoPT57bGV0e2NvbHVt'@; put 'bjpmLC4uLnZ9PWg7cmV0dXJue2NvbHVtbjp0aGlzLmhvdC50b1Zpc3VhbENvbHVtbihmKSwuLi52fX0pKSxhfWdldENvbHVtbk5leHRDb25maWcobCl7Y29uc3QgYT10aGlzLmNvbHVtblN0YXRlc01hbmFnZXIuZ2V0U29ydE9yZGVyT2ZDb2x1bW4obCk7aWYoSGEoYSkpe2NvbnN0IGg9dWdl'@; put 'KGEpO3JldHVybiBIYShoKT97Y29sdW1uOmwsc29ydE9yZGVyOmh9OnZvaWQgMH1jb25zdCBkPXRoaXMuaG90LmNvdW50Q29scygpO2lmKE51bWJlci5pc0ludGVnZXIobCkmJmw+PTAmJmw8ZClyZXR1cm57Y29sdW1uOmwsc29ydE9yZGVyOnVnZSgpfX1nZXROZXh0U29ydENvbmZpZyhsKXts'@; put 'ZXQgYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06aEY7Y29uc3QgZD10aGlzLmNvbHVtblN0YXRlc01hbmFnZXIuZ2V0SW5kZXhPZkNvbHVtbkluU29ydFF1ZXVlKGwpLGg9LTEhPT1kLGY9dGhpcy5nZXRTb3J0Q29uZmlnKCksdj10aGlz'@; put 'LmdldENvbHVtbk5leHRDb25maWcobCk7aWYoaCl7aWYoYmModikpcmV0dXJuWy4uLmYuc2xpY2UoMCxkKSwuLi5mLnNsaWNlKGQrMSldO2lmKGE9PT1oRilyZXR1cm5bLi4uZi5zbGljZSgwLGQpLC4uLmYuc2xpY2UoZCsxKSx2XTtpZigicmVwbGFjZSI9PT1hKXJldHVyblsuLi5mLnNsaWNl'@; put 'KDAsZCksdiwuLi5mLnNsaWNlKGQrMSldfXJldHVybiBIYSh2KT9mLmNvbmNhdCh2KTpmfWdldFBsdWdpbkNvbHVtbkNvbmZpZyhsKXtpZihYcyhsKSl7Y29uc3QgYT1sW3RoaXMucGx1Z2luS2V5XTtpZihYcyhhKSlyZXR1cm4gYX1yZXR1cm57fX1nZXRNZXJnZWRQbHVnaW5TZXR0aW5ncyhs'@; put 'KXtjb25zdCBhPXRoaXMuaG90LmdldFNldHRpbmdzKClbdGhpcy5wbHVnaW5LZXldLGQ9dGhpcy5jb2x1bW5TdGF0ZXNNYW5hZ2VyLmdldEFsbENvbHVtbnNQcm9wZXJ0aWVzKCksaD10aGlzLmhvdC5nZXRDZWxsTWV0YSgwLGwpLGY9T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpO3JldHVybiBB'@; put 'cnJheS5pc0FycmF5KGYuY29sdW1ucyk/T2JqZWN0LmFzc2lnbihkLGEsdGhpcy5nZXRQbHVnaW5Db2x1bW5Db25maWcoZi5jb2x1bW5zW2xdKSk6ZmwoZi5jb2x1bW5zKT9PYmplY3QuYXNzaWduKGQsYSx0aGlzLmdldFBsdWdpbkNvbHVtbkNvbmZpZyhmLmNvbHVtbnMobCkpKTpPYmplY3Qu'@; put 'YXNzaWduKGQsYSl9Z2V0Rmlyc3RDZWxsU2V0dGluZ3MobCl7Y29uc3QgYT10aGlzLmhvdC5nZXRDZWxsTWV0YSgwLGwpLGQ9T2JqZWN0LmNyZWF0ZShhKTtyZXR1cm4gZFt0aGlzLnBsdWdpbktleV09dGhpcy5jb2x1bW5NZXRhQ2FjaGUuZ2V0VmFsdWVBdEluZGV4KHRoaXMuaG90LnRvUGh5'@; put 'c2ljYWxDb2x1bW4obCkpLGR9Z2V0TnVtYmVyT2ZSb3dzVG9Tb3J0KGwpe2NvbnN0IGE9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKTtyZXR1cm4gYS5tYXhSb3dzPD1sP2EubWF4Um93czpsLWEubWluU3BhcmVSb3dzfXNvcnRCeVByZXNldFNvcnRTdGF0ZXMobCl7aWYodGhpcy5ob3Qucm93SW5k'@; put 'ZXhNYXBwZXIuc2V0SW5kZXhlc1NlcXVlbmNlKHRoaXMuaW5kZXhlc1NlcXVlbmNlQ2FjaGUuZ2V0VmFsdWVzKCkpLDA9PT1sLmxlbmd0aClyZXR1cm47Y29uc3QgYT1bXSxkPXRoaXMuaG90LmNvdW50Um93cygpLGg9Rz0+eW8obCxyZT0+dGhpcy5ob3QuZ2V0RGF0YUF0Q2VsbChHLHJlLmNv'@; put 'bHVtbikpO2ZvcihsZXQgRz0wO0c8dGhpcy5nZXROdW1iZXJPZlJvd3NUb1NvcnQoZCk7Rys9MSlhLnB1c2goW3RoaXMuaG90LnRvUGh5c2ljYWxSb3coRyldLmNvbmNhdChoKEcpKSk7Y29uc3QgZj15byhhLEc9PkdbMF0pOyFmdW5jdGlvbiBBY3QoYyxsKXtjb25zdCBhPVRjdChsKTtmb3Io'@; put 'dmFyIGQ9YXJndW1lbnRzLmxlbmd0aCxoPW5ldyBBcnJheShkPjI/ZC0yOjApLGY9MjtmPGQ7ZisrKWhbZi0yXT1hcmd1bWVudHNbZl07Yy5zb3J0KGEoLi4uaCkpfShhLHRoaXMucGx1Z2luS2V5LHlvKGwsRz0+Ry5zb3J0T3JkZXIpLHlvKGwsRz0+dGhpcy5nZXRGaXJzdENlbGxTZXR0aW5n'@; put 'cyhHLmNvbHVtbikpKTtmb3IobGV0IEc9YS5sZW5ndGg7RzxkO0crPTEpYS5wdXNoKFtHXS5jb25jYXQoaChHKSkpO2NvbnN0IHY9eW8oYSxHPT5HWzBdKSxNPW5ldyBNYXAoeW8oZiwoRyxyZSk9PltHLHZbcmVdXSkpLEk9eW8odGhpcy5ob3Qucm93SW5kZXhNYXBwZXIuZ2V0SW5kZXhlc1Nl'@; put 'cXVlbmNlKCksRz0+TS5oYXMoRyk/TS5nZXQoRyk6Ryk7dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIuc2V0SW5kZXhlc1NlcXVlbmNlKEkpfXNvcnRCeVNldHRpbmdzKGwpe2lmKFhzKGwpKXt0aGlzLmNvbHVtblN0YXRlc01hbmFnZXIudXBkYXRlQWxsQ29sdW1uc1Byb3BlcnRpZXMobCk7Y29u'@; put 'c3QgYT1sLmluaXRpYWxDb25maWc7KEFycmF5LmlzQXJyYXkoYSl8fFhzKGEpKSYmdGhpcy5zb3J0KGEpfWVsc2UgdGhpcy5ob3QucmVuZGVyKCl9dXBkYXRlSGVhZGVyQ2xhc3NlcyhsKXtpZihocyhsLGZ1bmN0aW9uIFBjdCgpe3JldHVybiBBcnJheS5mcm9tKHZnZS52YWx1ZXMoKSkuY29u'@; put 'Y2F0KG1nZSxwZ2UsZ2dlKX0oKSksITEhPT10aGlzLmVuYWJsZWQpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFycmF5KGE+MT9hLTE6MCksaD0xO2g8YTtoKyspZFtoLTFdPWFyZ3VtZW50c1toXTtFaShsLGZ1bmN0aW9uIE9jdChjLGwsYSxkKXtjb25zdCBoPVtnZ2VdO2lm'@; put 'KGQmJmgucHVzaChtZ2UpLCExPT09YSlyZXR1cm4gaC5wdXNoKHBnZSksaDtjb25zdCBmPWMuZ2V0U29ydE9yZGVyT2ZDb2x1bW4obCk7cmV0dXJuIEhhKGYpJiZoLnB1c2godmdlLmdldChmKSksaH0oLi4uZCkpfX1vblVwZGF0ZVNldHRpbmdzKGwpe3N1cGVyLm9uVXBkYXRlU2V0dGluZ3Mo'@; put 'bCksbnVsbCE9PXRoaXMuY29sdW1uTWV0YUNhY2hlJiZ0aGlzLmNvbHVtbk1ldGFDYWNoZS5pbml0KHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldE51bWJlck9mSW5kZXhlcygpKSxIYShsW3RoaXMucGx1Z2luS2V5XSkmJnRoaXMuc29ydEJ5U2V0dGluZ3MobFt0aGlzLnBsdWdpbktl'@; put 'eV0pfXdhc0NsaWNrYWJsZUhlYWRlckNsaWNrZWQobCxhKXtyZXR1cm4gdGhpcy5nZXRGaXJzdENlbGxTZXR0aW5ncyhhKVt0aGlzLnBsdWdpbktleV0uaGVhZGVyQWN0aW9uJiZncyhsLnRhcmdldCxjZ2UpfW9uQWZ0ZXJPbkNlbGxNb3VzZURvd24obCxhKXtpZighMSE9PU1KKGEucm93LGEu'@; put 'Y29sLGwpJiZ0aGlzLndhc0NsaWNrYWJsZUhlYWRlckNsaWNrZWQobCxhLmNvbCkpe3RoaXMuaG90LmdldFNob3J0Y3V0TWFuYWdlcigpLmlzQ3RybFByZXNzZWQoKSYmKHRoaXMuaG90LmRlc2VsZWN0Q2VsbCgpLHRoaXMuaG90LnNlbGVjdENvbHVtbnMoYS5jb2wpKTtjb25zdCBkPXRoaXMu'@; put 'aG90LmdldEFjdGl2ZUVkaXRvcigpLGg9dGhpcy5nZXRDb2x1bW5OZXh0Q29uZmlnKGEuY29sKTtudWxsIT1kJiZkLmlzT3BlbmVkKCkmJnRoaXMuaG90LmdldENlbGxWYWxpZGF0b3IoZC5yb3csZC5jb2wpP3RoaXMuaG90LmFkZEhvb2tPbmNlKCJwb3N0QWZ0ZXJWYWxpZGF0ZSIsKCk9Pnt0'@; put 'aGlzLnNvcnQoaCl9KTp0aGlzLnNvcnQoaCl9fWRlc3Ryb3koKXt2YXIgbDtudWxsPT09KGw9dGhpcy5jb2x1bW5TdGF0ZXNNYW5hZ2VyKXx8dm9pZCAwPT09bHx8bC5kZXN0cm95KCksc3VwZXIuZGVzdHJveSgpfX1mdW5jdGlvbiB4Sigpe2NvbnN0IGM9dGhpcy5nZXRBbGxTYXZlZFNvcnRT'@; put 'ZXR0aW5ncygpO2lmKFhzKGMpKXRoaXMuc29ydEJ5U2V0dGluZ3MoYyk7ZWxzZXtjb25zdCBsPXRoaXMuaG90LmdldFNldHRpbmdzKClbdGhpcy5wbHVnaW5LZXldO3RoaXMuc29ydEJ5U2V0dGluZ3MobCl9fWZ1bmN0aW9uIFVjdChjLGwpe2NvbnN0IGE9ZGdlKGwpO2lmKCExPT09aGdlKGMs'@; put 'bCl8fG51bGw9PT1hKXJldHVybjtjb25zdCBkPXRoaXMuZ2V0Rmlyc3RDZWxsU2V0dGluZ3MoYylbdGhpcy5wbHVnaW5LZXldO2lmKHRoaXMudXBkYXRlSGVhZGVyQ2xhc3NlcyhhLHRoaXMuY29sdW1uU3RhdGVzTWFuYWdlcixjLGQuaW5kaWNhdG9yLGQuaGVhZGVyQWN0aW9uKSx0aGlzLmhv'@; put 'dC5nZXRTZXR0aW5ncygpLmFyaWFUYWdzKXtjb25zdCB2PXRoaXMuY29sdW1uU3RhdGVzTWFuYWdlci5nZXRTb3J0T3JkZXJPZkNvbHVtbihjKTttcyhsLC4uLihjPT5bImFyaWEtc29ydCIsY10pKHY/YCR7dn1lbmRpbmdgOiJub25lIikpfX1mdW5jdGlvbiBaY3QoYyl7ITA9PT1jJiZ0aGlz'@; put 'LmhvdC52aWV3JiZXXyhwOSx0aGlzLHhKKS5jYWxsKHRoaXMpfWZ1bmN0aW9uIFdjdChjLGwsYSxkKXshMSE9PU1KKGwucm93LGwuY29sLGMpJiZ0aGlzLndhc0NsaWNrYWJsZUhlYWRlckNsaWNrZWQoYyxsLmNvbCkmJnRoaXMuaG90LmdldFNob3J0Y3V0TWFuYWdlcigpLmlzQ3RybFByZXNz'@; put 'ZWQoKSYmKGQuY29sdW1uPSEwKX1mdW5jdGlvbiBnOShjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gWWN0KGMpe3ZhciBsPWZ1bmN0aW9uIEdjdChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEp'@; put 'e3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShj'@; put 'KX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9Y29uc3QgS2N0PWNsYXNzICRjdHtj'@; put 'b25zdHJ1Y3RvcihsLGEpe2c5KHRoaXMsInBsdWdpbiIsdm9pZCAwKSxnOSh0aGlzLCJob3QiLHZvaWQgMCksZzkodGhpcywiZW5kcG9pbnRzIixbXSksZzkodGhpcywic2V0dGluZ3MiLHZvaWQgMCksZzkodGhpcywic2V0dGluZ3NUeXBlIiwiYXJyYXkiKSxnOSh0aGlzLCJjdXJyZW50RW5k'@; put 'cG9pbnQiLG51bGwpLGc5KHRoaXMsImNlbGxzVG9TZXRDYWNoZSIsW10pLHRoaXMucGx1Z2luPWwsdGhpcy5ob3Q9dGhpcy5wbHVnaW4uaG90LHRoaXMuc2V0dGluZ3M9YX1pbml0RW5kcG9pbnRzKCl7dGhpcy5lbmRwb2ludHM9dGhpcy5wYXJzZVNldHRpbmdzKCksdGhpcy5yZWZyZXNoQWxs'@; put 'RW5kcG9pbnRzKCl9Z2V0RW5kcG9pbnQobCl7cmV0dXJuImZ1bmN0aW9uIj09PXRoaXMuc2V0dGluZ3NUeXBlP3RoaXMuZmlsbE1pc3NpbmdFbmRwb2ludERhdGEodGhpcy5zZXR0aW5ncylbbF06dGhpcy5lbmRwb2ludHNbbF19Z2V0QWxsRW5kcG9pbnRzKCl7cmV0dXJuImZ1bmN0aW9uIj09'@; put 'PXRoaXMuc2V0dGluZ3NUeXBlP3RoaXMuZmlsbE1pc3NpbmdFbmRwb2ludERhdGEodGhpcy5zZXR0aW5ncyk6dGhpcy5lbmRwb2ludHN9ZmlsbE1pc3NpbmdFbmRwb2ludERhdGEobCl7cmV0dXJuIHRoaXMucGFyc2VTZXR0aW5ncyhsLmNhbGwodGhpcykpfXBhcnNlU2V0dGluZ3MobCl7Y29u'@; put 'c3QgYT1bXTtsZXQgZD1sO2lmKGR8fCJmdW5jdGlvbiIhPXR5cGVvZiB0aGlzLnNldHRpbmdzKXJldHVybiBkfHwoZD10aGlzLnNldHRpbmdzKSxLbihkLGg9Pntjb25zdCBmPXt9O3RoaXMuYXNzaWduU2V0dGluZyhoLGYsInJhbmdlcyIsW1swLHRoaXMuaG90LmNvdW50Um93cygpLTFdXSks'@; put 'dGhpcy5hc3NpZ25TZXR0aW5nKGgsZiwicmV2ZXJzZWRSb3dDb29yZHMiLCExKSx0aGlzLmFzc2lnblNldHRpbmcoaCxmLCJkZXN0aW5hdGlvblJvdyIsbmV3IEVycm9yKCJcbiAgICAgICAgWW91IG11c3QgcHJvdmlkZSBhIGRlc3RpbmF0aW9uIHJvdyBmb3IgdGhlIENvbHVtbiBTdW1tYXJ5'@; put 'IHBsdWdpbiBpbiBvcmRlciB0byB3b3JrIHByb3Blcmx5IVxuICAgICAgIikpLHRoaXMuYXNzaWduU2V0dGluZyhoLGYsImRlc3RpbmF0aW9uQ29sdW1uIixuZXcgRXJyb3IoIlxuICAgICAgICBZb3UgbXVzdCBwcm92aWRlIGEgZGVzdGluYXRpb24gY29sdW1uIGZvciB0aGUgQ29sdW1uIFN1'@; put 'bW1hcnkgcGx1Z2luIGluIG9yZGVyIHRvIHdvcmsgcHJvcGVybHkhXG4gICAgICAiKSksdGhpcy5hc3NpZ25TZXR0aW5nKGgsZiwic291cmNlQ29sdW1uIixoLmRlc3RpbmF0aW9uQ29sdW1uKSx0aGlzLmFzc2lnblNldHRpbmcoaCxmLCJ0eXBlIiwic3VtIiksdGhpcy5hc3NpZ25TZXR0aW5n'@; put 'KGgsZiwiZm9yY2VOdW1lcmljIiwhMSksdGhpcy5hc3NpZ25TZXR0aW5nKGgsZiwic3VwcHJlc3NEYXRhVHlwZUVycm9ycyIsITApLHRoaXMuYXNzaWduU2V0dGluZyhoLGYsImN1c3RvbUZ1bmN0aW9uIixudWxsKSx0aGlzLmFzc2lnblNldHRpbmcoaCxmLCJyZWFkT25seSIsITApLHRoaXMu'@; put 'YXNzaWduU2V0dGluZyhoLGYsInJvdW5kRmxvYXQiLCExKSxhLnB1c2goZil9KSxhO3RoaXMuc2V0dGluZ3NUeXBlPSJmdW5jdGlvbiJ9YXNzaWduU2V0dGluZyhsLGEsZCxoKXtpZigicmFuZ2VzIiE9PWR8fHZvaWQgMCE9PWxbZF0pe2lmKCJyYW5nZXMiIT09ZHx8MCE9PWxbZF0ubGVuZ3Ro'@; put 'KWlmKHZvaWQgMD09PWxbZF0pe2lmKGggaW5zdGFuY2VvZiBFcnJvcil0aHJvdyBoO2FbZF09aH1lbHNlIGFbZF09ImRlc3RpbmF0aW9uUm93Ij09PWQmJmEucmV2ZXJzZWRSb3dDb29yZHM/dGhpcy5ob3QuY291bnRSb3dzKCktbFtkXS0xOmxbZF19ZWxzZSBhW2RdPWh9cmVzZXRTZXR1cEJl'@; put 'Zm9yZVN0cnVjdHVyZUFsdGVyYXRpb24obCxhLGQpe2lmKCJmdW5jdGlvbiIhPT10aGlzLnNldHRpbmdzVHlwZSlyZXR1cm47Y29uc3QgaD1sLmluZGV4T2YoInJvdyIpPi0xPyJyb3ciOiJjb2wiLGY9dGhpcy5nZXRBbGxFbmRwb2ludHMoKTtLbihmLHY9Pnsicm93Ij09PWgmJnYuZGVzdGlu'@; put 'YXRpb25Sb3c+PWEmJigiaW5zZXJ0X3JvdyI9PT1sP3YuYWx0ZXJSb3dPZmZzZXQ9ZDoicmVtb3ZlX3JvdyI9PT1sJiYodi5hbHRlclJvd09mZnNldD0tMSpkKSksImNvbCI9PT1oJiZ2LmRlc3RpbmF0aW9uQ29sdW1uPj1hJiYoImluc2VydF9jb2wiPT09bD92LmFsdGVyQ29sdW1uT2Zmc2V0'@; put 'PWQ6InJlbW92ZV9jb2wiPT09bCYmKHYuYWx0ZXJDb2x1bW5PZmZzZXQ9LTEqZCkpfSksdGhpcy5yZXNldEFsbEVuZHBvaW50cyhmLCExKX1yZXNldFNldHVwQWZ0ZXJTdHJ1Y3R1cmVBbHRlcmF0aW9uKGwsYSxkLGgsZil7bGV0IHY9IShhcmd1bWVudHMubGVuZ3RoPjUmJnZvaWQgMCE9PWFy'@; put 'Z3VtZW50c1s1XSl8fGFyZ3VtZW50c1s1XTtpZigiZnVuY3Rpb24iPT09dGhpcy5zZXR0aW5nc1R5cGUpe2NvbnN0IHllPSgpPT4odGhpcy5ob3QucmVtb3ZlSG9vaygiYmVmb3JlVmlld1JlbmRlciIseWUpLHRoaXMucmVmcmVzaEFsbEVuZHBvaW50cygpKTtyZXR1cm4gdm9pZCB0aGlzLmhv'@; put 'dC5hZGRIb29rT25jZSgiYmVmb3JlVmlld1JlbmRlciIseWUpfWNvbnN0IE09bC5pbmRleE9mKCJyb3ciKT4tMT8icm93IjoiY29sIixJPWwuaW5kZXhPZigicmVtb3ZlIik+LTE/LTE6MSxHPXRoaXMuZ2V0QWxsRW5kcG9pbnRzKCkscmU9MD09PWwuaW5kZXhPZigibW92ZV9yb3ciKSx1ZT1h'@; put 'O0tuKEcseWU9Pnsicm93Ij09PU0mJnllLmRlc3RpbmF0aW9uUm93Pj11ZSYmKHllLmFsdGVyUm93T2Zmc2V0PUkqZCksImNvbCI9PT1NJiZ5ZS5kZXN0aW5hdGlvbkNvbHVtbj49dWUmJih5ZS5hbHRlckNvbHVtbk9mZnNldD1JKmQpfSksdGhpcy5yZXNldEFsbEVuZHBvaW50cyhHLCFyZSks'@; put 'S24oRyxyZT95ZT0+e3RoaXMuZXh0ZW5kRW5kcG9pbnRSYW5nZXMoeWUsdWUsaFswXSxoLmxlbmd0aCksdGhpcy5yZWNyZWF0ZVBoeXNpY2FsUmFuZ2VzKHllKSx0aGlzLmNsZWFyT2Zmc2V0SW5mb3JtYXRpb24oeWUpfTp5ZT0+e3RoaXMuc2hpZnRFbmRwb2ludENvb3JkaW5hdGVzKHllLHVl'@; put 'KX0pLHYmJnRoaXMucmVmcmVzaEFsbEVuZHBvaW50cygpfWNsZWFyT2Zmc2V0SW5mb3JtYXRpb24obCl7bC5hbHRlclJvd09mZnNldD12b2lkIDAsbC5hbHRlckNvbHVtbk9mZnNldD12b2lkIDB9ZXh0ZW5kRW5kcG9pbnRSYW5nZXMobCxhLGQsaCl7S24obC5yYW5nZXMsZj0+e2ZbMV0mJihh'@; put 'Pj1mWzBdJiZhPD1mWzFdP2Q+ZlsxXT9mWzFdKz1oOmQ8ZlswXSYmKGZbMF0tPWgpOmQ+PWZbMF0mJmQ8PWZbMV0mJihmWzFdLT1oLGE8PWZbMF0mJihmWzBdKz0xLGZbMV0rPTEpKSl9KX1yZWNyZWF0ZVBoeXNpY2FsUmFuZ2VzKGwpe2NvbnN0IGQ9W10saD1bXTtLbihsLnJhbmdlcyxmPT57'@; put 'Y29uc3Qgdj1bXTtpZihmWzFdKWZvcihsZXQgTT1mWzBdO008PWZbMV07TSsrKXYucHVzaCh0aGlzLmhvdC50b1BoeXNpY2FsUm93KE0pKTtlbHNlIHYucHVzaCh0aGlzLmhvdC50b1BoeXNpY2FsUm93KGZbMF0pKTtoLnB1c2godil9KSxLbihoLGY9PntsZXQgdj1bXTtLbihmLChNLEkpPT57'@; put 'MD09PUk/di5wdXNoKE0pOmZbSV0hPT1mW0ktMV0rMSYmKHYucHVzaChmW0ktMV0pLGQucHVzaCh2KSx2PVtdLHYucHVzaChNKSksST09PWYubGVuZ3RoLTEmJih2LnB1c2goTSksZC5wdXNoKHYpKX0pfSksbC5yYW5nZXM9ZH1zaGlmdEVuZHBvaW50Q29vcmRpbmF0ZXMobCxhKXtsLmFsdGVy'@; put 'Um93T2Zmc2V0JiYwIT09bC5hbHRlclJvd09mZnNldD8obC5kZXN0aW5hdGlvblJvdys9bC5hbHRlclJvd09mZnNldHx8MCxLbihsLnJhbmdlcyxkPT57S24oZCwoaCxmKT0+e2g+PWEmJihkW2ZdKz1sLmFsdGVyUm93T2Zmc2V0fHwwKX0pfSkpOmwuYWx0ZXJDb2x1bW5PZmZzZXQmJjAhPT1s'@; put 'LmFsdGVyQ29sdW1uT2Zmc2V0JiYobC5kZXN0aW5hdGlvbkNvbHVtbis9bC5hbHRlckNvbHVtbk9mZnNldHx8MCxsLnNvdXJjZUNvbHVtbis9bC5hbHRlckNvbHVtbk9mZnNldHx8MCl9cmVzZXRBbGxFbmRwb2ludHMoKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3Vt'@; put 'ZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5nZXRBbGxFbmRwb2ludHMoKSxhPSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV07bC5zb21lKGg9Pntjb25zdCB2PWguYWx0ZXJDb2x1bW5PZmZzZXR8fDA7cmV0dXJuIGguZGVzdGluYXRp'@; put 'b25Sb3crKGguYWx0ZXJSb3dPZmZzZXR8fDApPj10aGlzLmhvdC5jb3VudFJvd3MoKXx8aC5kZXN0aW5hdGlvbkNvbHVtbit2Pj10aGlzLmhvdC5jb3VudENvbHMoKX0pfHwodGhpcy5jZWxsc1RvU2V0Q2FjaGU9W10sS24obCxoPT57dGhpcy5yZXNldEVuZHBvaW50VmFsdWUoaCxhKX0pLHRo'@; put 'aXMuaG90LnNldERhdGFBdENlbGwodGhpcy5jZWxsc1RvU2V0Q2FjaGUsIkNvbHVtblN1bW1hcnkucmVzZXQiKSx0aGlzLmNlbGxzVG9TZXRDYWNoZT1bXSl9cmVmcmVzaEFsbEVuZHBvaW50cygpe3RoaXMuY2VsbHNUb1NldENhY2hlPVtdLEtuKHRoaXMuZ2V0QWxsRW5kcG9pbnRzKCksbD0+'@; put 'e3RoaXMuY3VycmVudEVuZHBvaW50PWwsdGhpcy5wbHVnaW4uY2FsY3VsYXRlKGwpLHRoaXMuc2V0RW5kcG9pbnRWYWx1ZShsLCJpbml0Iil9KSx0aGlzLmN1cnJlbnRFbmRwb2ludD1udWxsLHRoaXMuaG90LnNldERhdGFBdENlbGwodGhpcy5jZWxsc1RvU2V0Q2FjaGUsIkNvbHVtblN1bW1h'@; put 'cnkucmVzZXQiKSx0aGlzLmNlbGxzVG9TZXRDYWNoZT1bXX1yZWZyZXNoQ2hhbmdlZEVuZHBvaW50cyhsKXtjb25zdCBhPVtdO3RoaXMuY2VsbHNUb1NldENhY2hlPVtdLEtuKGwsKGQsaCxmKT0+e2Ake2RbMl18fCIifWAhPWAke2RbM119YCYmS24odGhpcy5nZXRBbGxFbmRwb2ludHMoKSwo'@; put 'dixNKT0+e3RoaXMuaG90LnByb3BUb0NvbChmW2hdWzFdKT09PXYuc291cmNlQ29sdW1uJiYtMT09PWEuaW5kZXhPZihNKSYmYS5wdXNoKE0pfSl9KSxLbihhLGQ9Pnt0aGlzLnJlZnJlc2hFbmRwb2ludCh0aGlzLmdldEVuZHBvaW50KGQpKX0pLHRoaXMuaG90LnNldERhdGFBdENlbGwodGhp'@; put 'cy5jZWxsc1RvU2V0Q2FjaGUsIkNvbHVtblN1bW1hcnkucmVzZXQiKSx0aGlzLmNlbGxzVG9TZXRDYWNoZT1bXX1yZWZyZXNoQ2VsbE1ldGFzKCl7dGhpcy5lbmRwb2ludHMuZm9yRWFjaChsPT57Y29uc3QgYT10aGlzLmhvdC50b1Zpc3VhbFJvdyhsLmRlc3RpbmF0aW9uUm93KTtpZihudWxs'@; put 'IT09YSl7Y29uc3QgZD10aGlzLmhvdC5nZXRDZWxsTWV0YShhLGwuZGVzdGluYXRpb25Db2x1bW4pO2QucmVhZE9ubHk9bC5yZWFkT25seSxkLmNsYXNzTmFtZT0iY29sdW1uU3VtbWFyeVJlc3VsdCJ9fSl9cmVmcmVzaEVuZHBvaW50KGwpe3RoaXMuY3VycmVudEVuZHBvaW50PWwsdGhpcy5w'@; put 'bHVnaW4uY2FsY3VsYXRlKGwpLHRoaXMuc2V0RW5kcG9pbnRWYWx1ZShsKSx0aGlzLmN1cnJlbnRFbmRwb2ludD1udWxsfXJlc2V0RW5kcG9pbnRWYWx1ZShsKXtsZXQgYT0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdO2NvbnN0IGg9'@; put 'bC5hbHRlckNvbHVtbk9mZnNldHx8MDt0aGlzLmNlbGxzVG9TZXRDYWNoZS5wdXNoKFt0aGlzLmhvdC50b1Zpc3VhbFJvdyhsLmRlc3RpbmF0aW9uUm93KyhhJiZsLmFsdGVyUm93T2Zmc2V0fHwwKSksdGhpcy5ob3QudG9WaXN1YWxDb2x1bW4obC5kZXN0aW5hdGlvbkNvbHVtbisoYT9oOjAp'@; put 'KSwiIl0pfXNldEVuZHBvaW50VmFsdWUobCxhKXtsZXQgZD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdO2NvbnN0IGg9dGhpcy5ob3QudG9WaXN1YWxSb3cobC5kZXN0aW5hdGlvblJvdyk7aWYobC5kZXN0aW5hdGlvblJvdz49dGhpcy5o'@; put 'b3QuY291bnRSb3dzKCl8fGwuZGVzdGluYXRpb25Db2x1bW4+PXRoaXMuaG90LmNvdW50Q29scygpKXJldHVybiB2b2lkIHRoaXMudGhyb3dPdXRPZkJvdW5kc1dhcm5pbmcoKTtjb25zdCBmPXRoaXMuaG90LnRvVmlzdWFsUm93KGwuZGVzdGluYXRpb25Sb3cpO2lmKG51bGwhPT1mKXtjb25z'@; put 'dCB2PXRoaXMuaG90LmdldENlbGxNZXRhKGYsbC5kZXN0aW5hdGlvbkNvbHVtbik7KCJpbml0Ij09PWF8fHYucmVhZE9ubHkhPT1sLnJlYWRPbmx5KSYmKHYucmVhZE9ubHk9bC5yZWFkT25seSx2LmNsYXNzTmFtZT0iY29sdW1uU3VtbWFyeVJlc3VsdCIpfWlmKCghMD09PWwucm91bmRGbG9h'@; put 'dHx8TnVtYmVyLmlzSW50ZWdlcihsLnJvdW5kRmxvYXQpKSYmIWlzTmFOKGwucmVzdWx0KSl7Y29uc3Qgdj1sLnJvdW5kRmxvYXQ7bGV0IE09MDtOdW1iZXIuaXNJbnRlZ2VyKHYpJiYoTT1NYXRoLm1pbihNYXRoLm1heCgwLHYpLDEwMCkpLGwucmVzdWx0PWwucmVzdWx0LnRvRml4ZWQoTSl9'@; put 'ZD90aGlzLmhvdC5zZXREYXRhQXRDZWxsKGgsbC5kZXN0aW5hdGlvbkNvbHVtbixsLnJlc3VsdCwiQ29sdW1uU3VtbWFyeS5zZXQiKTp0aGlzLmNlbGxzVG9TZXRDYWNoZS5wdXNoKFtoLGwuZGVzdGluYXRpb25Db2x1bW4sbC5yZXN1bHRdKSxsLmFsdGVyUm93T2Zmc2V0PXZvaWQgMCxsLmFs'@; put 'dGVyQ29sdW1uT2Zmc2V0PXZvaWQgMH10aHJvd091dE9mQm91bmRzV2FybmluZygpe1lvKCJPbmUgb2YgdGhlIENvbHVtbiBTdW1tYXJ5IHBsdWdpbnMnIGRlc3RpbmF0aW9uIHBvaW50cyB5b3UgcHJvdmlkZWQgaXMgYmV5b25kIHRoZSB0YWJsZSBib3VuZGFyaWVzISIpfX07ZnVuY3Rpb24g'@; put 'RUooYyl7cmV0dXJuIG51bGw9PWN8fGlzTmFOKGMpfWZ1bmN0aW9uIGZGKGMsbCxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhsKSlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzP2w6YTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGVsZW1lbnQgaXMgbm90IHBy'@; put 'ZXNlbnQgb24gdGhpcyBvYmplY3QiKX1jb25zdCBUSj0iY29sdW1uU3VtbWFyeSI7dmFyIHdUPW5ldyBXZWFrU2V0O2NsYXNzIG51dCBleHRlbmRzIEZve2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxmdW5jdGlvbiBYY3QoYyxsKXsoZnVuY3Rpb24gcWN0KGMsbCl7aWYobC5o'@; put 'YXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGMsbCksbC5hZGQoYyl9KHRoaXMsd1QpLGZ1bmN0aW9uIEpjdChjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gUWN0KGMpe3Zh'@; put 'ciBsPWZ1bmN0aW9uIGV1dChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93'@; put 'IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVm'@; put 'aW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9KHRoaXMsImVuZHBvaW50cyIsbnVsbCl9c3RhdGljIGdldCBQTFVHSU5fS0VZKCl7cmV0dXJuIFRKfXN0YXRpYyBnZXQgUExVR0lOX1BSSU9SSVRZKCl7'@; put 'cmV0dXJuIDIyMH1pc0VuYWJsZWQoKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbVEpdfWVuYWJsZVBsdWdpbigpe3ZhciBsPXRoaXM7dGhpcy5lbmFibGVkfHwodGhpcy5zZXR0aW5ncz10aGlzLmhvdC5nZXRTZXR0aW5ncygpW1RKXSx0aGlzLmVuZHBvaW50cz1uZXcgS2N0KHRo'@; put 'aXMsdGhpcy5zZXR0aW5ncyksdGhpcy5hZGRIb29rKCJhZnRlckluaXQiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGgsZD1uZXcgQXJyYXkoYSksaD0wO2g8YTtoKyspZFtoXT1hcmd1bWVudHNbaF07cmV0dXJuIGZGKHdULGwscnV0KS5jYWxsKGwsLi4uZCl9KSx0aGlz'@; put 'LmFkZEhvb2soImFmdGVyQ2hhbmdlIixmdW5jdGlvbigpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDtoPGE7aCsrKWRbaF09YXJndW1lbnRzW2hdO3JldHVybiBmRih3VCxsLGF1dCkuY2FsbChsLC4uLmQpfSksdGhpcy5hZGRIb29rKCJhZnRlclVwZGF0'@; put 'ZVNldHRpbmdzIixmdW5jdGlvbigpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDtoPGE7aCsrKWRbaF09YXJndW1lbnRzW2hdO3JldHVybiBmRih3VCxsLGl1dCkuY2FsbChsLC4uLmQpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVDcmVhdGVSb3ciLChhLGQs'@; put 'aCk9PnRoaXMuZW5kcG9pbnRzLnJlc2V0U2V0dXBCZWZvcmVTdHJ1Y3R1cmVBbHRlcmF0aW9uKCJpbnNlcnRfcm93IixhLGQsbnVsbCxoKSksdGhpcy5hZGRIb29rKCJiZWZvcmVDcmVhdGVDb2wiLChhLGQsaCk9PnRoaXMuZW5kcG9pbnRzLnJlc2V0U2V0dXBCZWZvcmVTdHJ1Y3R1cmVBbHRl'@; put 'cmF0aW9uKCJpbnNlcnRfY29sIixhLGQsbnVsbCxoKSksdGhpcy5hZGRIb29rKCJiZWZvcmVSZW1vdmVSb3ciLGZ1bmN0aW9uKCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGgsZD1uZXcgQXJyYXkoYSksaD0wO2g8YTtoKyspZFtoXT1hcmd1bWVudHNbaF07cmV0dXJuIGwuZW5kcG9pbnRz'@; put 'LnJlc2V0U2V0dXBCZWZvcmVTdHJ1Y3R1cmVBbHRlcmF0aW9uKCJyZW1vdmVfcm93IiwuLi5kKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlUmVtb3ZlQ29sIixmdW5jdGlvbigpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDtoPGE7aCsrKWRbaF09YXJndW1l'@; put 'bnRzW2hdO3JldHVybiBsLmVuZHBvaW50cy5yZXNldFNldHVwQmVmb3JlU3RydWN0dXJlQWx0ZXJhdGlvbigicmVtb3ZlX2NvbCIsLi4uZCl9KSx0aGlzLmFkZEhvb2soImFmdGVyQ3JlYXRlUm93IiwoYSxkLGgpPT50aGlzLmVuZHBvaW50cy5yZXNldFNldHVwQWZ0ZXJTdHJ1Y3R1cmVBbHRl'@; put 'cmF0aW9uKCJpbnNlcnRfcm93IixhLGQsbnVsbCxoKSksdGhpcy5hZGRIb29rKCJhZnRlckNyZWF0ZUNvbCIsKGEsZCxoKT0+dGhpcy5lbmRwb2ludHMucmVzZXRTZXR1cEFmdGVyU3RydWN0dXJlQWx0ZXJhdGlvbigiaW5zZXJ0X2NvbCIsYSxkLG51bGwsaCkpLHRoaXMuYWRkSG9vaygiYWZ0'@; put 'ZXJSZW1vdmVSb3ciLGZ1bmN0aW9uKCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGgsZD1uZXcgQXJyYXkoYSksaD0wO2g8YTtoKyspZFtoXT1hcmd1bWVudHNbaF07cmV0dXJuIGwuZW5kcG9pbnRzLnJlc2V0U2V0dXBBZnRlclN0cnVjdHVyZUFsdGVyYXRpb24oInJlbW92ZV9yb3ciLC4u'@; put 'LmQpfSksdGhpcy5hZGRIb29rKCJhZnRlclJlbW92ZUNvbCIsZnVuY3Rpb24oKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxkPW5ldyBBcnJheShhKSxoPTA7aDxhO2grKylkW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gbC5lbmRwb2ludHMucmVzZXRTZXR1cEFmdGVyU3RydWN0dXJlQWx0'@; put 'ZXJhdGlvbigicmVtb3ZlX2NvbCIsLi4uZCl9KSx0aGlzLmFkZEhvb2soImFmdGVyUm93TW92ZSIsZnVuY3Rpb24oKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxkPW5ldyBBcnJheShhKSxoPTA7aDxhO2grKylkW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gZkYod1QsbCxzdXQpLmNhbGwo'@; put 'bCwuLi5kKX0pLHN1cGVyLmVuYWJsZVBsdWdpbigpKX1kaXNhYmxlUGx1Z2luKCl7dGhpcy5lbmRwb2ludHM9bnVsbCx0aGlzLnNldHRpbmdzPW51bGwsdGhpcy5jdXJyZW50RW5kcG9pbnQ9bnVsbCxzdXBlci5kaXNhYmxlUGx1Z2luKCl9dXBkYXRlUGx1Z2luKCl7dGhpcy5kaXNhYmxlUGx1'@; put 'Z2luKCksdGhpcy5lbmFibGVQbHVnaW4oKSx0aGlzLmVuZHBvaW50cy5pbml0RW5kcG9pbnRzKCksc3VwZXIudXBkYXRlUGx1Z2luKCl9Y2FsY3VsYXRlKGwpe3N3aXRjaChsLnR5cGUudG9Mb3dlckNhc2UoKSl7Y2FzZSJzdW0iOmwucmVzdWx0PXRoaXMuY2FsY3VsYXRlU3VtKGwpO2JyZWFr'@; put 'O2Nhc2UibWluIjpjYXNlIm1heCI6bC5yZXN1bHQ9dGhpcy5jYWxjdWxhdGVNaW5NYXgobCxsLnR5cGUpO2JyZWFrO2Nhc2UiY291bnQiOmwucmVzdWx0PXRoaXMuY291bnRFbnRyaWVzKGwpO2JyZWFrO2Nhc2UiYXZlcmFnZSI6bC5yZXN1bHQ9dGhpcy5jYWxjdWxhdGVBdmVyYWdlKGwpO2Jy'@; put 'ZWFrO2Nhc2UiY3VzdG9tIjpsLnJlc3VsdD1sLmN1c3RvbUZ1bmN0aW9uLmNhbGwodGhpcyxsKX19Y2FsY3VsYXRlU3VtKGwpe2xldCBhPTA7cmV0dXJuIHFzKGwucmFuZ2VzLGQ9PnthKz10aGlzLmdldFBhcnRpYWxTdW0oZCxsLnNvdXJjZUNvbHVtbil9KSxhfWdldFBhcnRpYWxTdW0obCxh'@; put 'KXtsZXQgZD0wLGg9bFsxXXx8bFswXSxmPW51bGwsdj0wO2Rve2lmKGY9dGhpcy5nZXRDZWxsVmFsdWUoaCxhKSxmPUVKKGYpP251bGw6ZixudWxsIT09Zil7Y29uc3QgTT0oYCR7Zn1gLnNwbGl0KCIuIilbMV18fFtdKS5sZW5ndGh8fDE7TT52JiYodj1NKX1kKz1mfHwwLGgtPTF9d2hpbGUo'@; put 'aD49bFswXSk7cmV0dXJuIE1hdGgucm91bmQoZCoxMCoqdikvMTAqKnZ9Y2FsY3VsYXRlTWluTWF4KGwsYSl7bGV0IGQ9bnVsbDtyZXR1cm4gcXMobC5yYW5nZXMsaD0+e2NvbnN0IGY9dGhpcy5nZXRQYXJ0aWFsTWluTWF4KGgsbC5zb3VyY2VDb2x1bW4sYSk7aWYobnVsbD09PWQmJm51bGwh'@; put 'PT1mJiYoZD1mKSxudWxsIT09Zilzd2l0Y2goYSl7Y2FzZSJtaW4iOmQ9TWF0aC5taW4oZCxmKTticmVhaztjYXNlIm1heCI6ZD1NYXRoLm1heChkLGYpfX0pLG51bGw9PT1kPyJOb3QgZW5vdWdoIGRhdGEiOmR9Z2V0UGFydGlhbE1pbk1heChsLGEsZCl7bGV0IHYsaD1udWxsLGY9bFsxXXx8'@; put 'bFswXTtkb3tpZih2PXRoaXMuZ2V0Q2VsbFZhbHVlKGYsYSksdj1FSih2KT9udWxsOnYsbnVsbD09PWgpaD12O2Vsc2UgaWYobnVsbCE9PXYpc3dpdGNoKGQpe2Nhc2UibWluIjpoPU1hdGgubWluKGgsdik7YnJlYWs7Y2FzZSJtYXgiOmg9TWF0aC5tYXgoaCx2KX1mLT0xfXdoaWxlKGY+PWxb'@; put 'MF0pO3JldHVybiBofWNvdW50RW1wdHkobCxhKXtsZXQgZCxoPTAsZj1sWzFdfHxsWzBdO2Rve2Q9dGhpcy5nZXRDZWxsVmFsdWUoZixhKSxkPUVKKGQpP251bGw6ZCxudWxsPT09ZCYmKGgrPTEpLGYtPTF9d2hpbGUoZj49bFswXSk7cmV0dXJuIGh9Y291bnRFbnRyaWVzKGwpe2xldCBhPTA7'@; put 'cmV0dXJuIHFzKGwucmFuZ2VzLGg9Pntjb25zdCBmPXZvaWQgMD09PWhbMV0/MTpoWzFdLWhbMF0rMSx2PXRoaXMuY291bnRFbXB0eShoLGwuc291cmNlQ29sdW1uKTthKz1mLGEtPXZ9KSxhfWNhbGN1bGF0ZUF2ZXJhZ2UobCl7cmV0dXJuIHRoaXMuY2FsY3VsYXRlU3VtKGwpL3RoaXMuY291'@; put 'bnRFbnRyaWVzKGwpfWdldENlbGxWYWx1ZShsLGEpe2NvbnN0IGQ9dGhpcy5ob3QudG9WaXN1YWxSb3cobCksaD10aGlzLmhvdC50b1Zpc3VhbENvbHVtbihhKTtsZXQgZj10aGlzLmhvdC5nZXRTb3VyY2VEYXRhQXRDZWxsKGwsYSksdj0iIjtpZihudWxsIT09ZCYmbnVsbCE9PWgmJih2PXRo'@; put 'aXMuaG90LmdldENlbGxNZXRhKGQsaCkuY2xhc3NOYW1lfHwiIiksdi5pbmRleE9mKCJjb2x1bW5TdW1tYXJ5UmVzdWx0Iik+LTEpcmV0dXJuIG51bGw7aWYodGhpcy5lbmRwb2ludHMuY3VycmVudEVuZHBvaW50LmZvcmNlTnVtZXJpYyYmKCJzdHJpbmciPT10eXBlb2YgZiYmKGY9Zi5yZXBs'@; put 'YWNlKC8sLywiLiIpKSxmPXBhcnNlRmxvYXQoZikpLGlzTmFOKGYpJiYhdGhpcy5lbmRwb2ludHMuY3VycmVudEVuZHBvaW50LnN1cHByZXNzRGF0YVR5cGVFcnJvcnMpdGhyb3cgbmV3IEVycm9yKGhsYENvbHVtblN1bW1hcnkgcGx1Z2luOiBjZWxsIGF0ICgke2x9LCAke2F9KSBpcyBub3Qg'@; put 'aW4gYVx4MjAKICAgICAgICAgIG51bWVyaWMgZm9ybWF0LiBDYW5ub3QgZG8gdGhlIGNhbGN1bGF0aW9uLmApO3JldHVybiBmfX1mdW5jdGlvbiBydXQoKXt0aGlzLmVuZHBvaW50cy5pbml0RW5kcG9pbnRzKCl9ZnVuY3Rpb24gaXV0KGMpe3ZvaWQgMCE9PWMuY29sdW1ucyYmdGhpcy5lbmRw'@; put 'b2ludHMucmVmcmVzaENlbGxNZXRhcygpfWZ1bmN0aW9uIGF1dChjLGwpe2MmJiJDb2x1bW5TdW1tYXJ5LnJlc2V0IiE9PWwmJiJDb2x1bW5TdW1tYXJ5LnNldCIhPT1sJiYibG9hZERhdGEiIT09bCYmdGhpcy5lbmRwb2ludHMucmVmcmVzaENoYW5nZWRFbmRwb2ludHMoYyl9ZnVuY3Rpb24g'@; put 'c3V0KGMsbCl7dGhpcy5lbmRwb2ludHMucmVzZXRTZXR1cEJlZm9yZVN0cnVjdHVyZUFsdGVyYXRpb24oIm1vdmVfcm93IixjWzBdLGMubGVuZ3RoLGMsdGhpcy5wbHVnaW5OYW1lKSx0aGlzLmVuZHBvaW50cy5yZXNldFNldHVwQWZ0ZXJTdHJ1Y3R1cmVBbHRlcmF0aW9uKCJtb3ZlX3JvdyIs'@; put 'bCxjLmxlbmd0aCxjLHRoaXMucGx1Z2luTmFtZSl9ZnVuY3Rpb24gQUooYyxsLGEpe19nZShjLGwpLGwuc2V0KGMsYSl9ZnVuY3Rpb24gX2dlKGMsbCl7aWYobC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0'@; put 'd2ljZSBvbiBhbiBvYmplY3QiKX1mdW5jdGlvbiBZXyhjLGwpe3JldHVybiBjLmdldChESihjLGwpKX1mdW5jdGlvbiBrSihjLGwsYSl7cmV0dXJuIGMuc2V0KERKKGMsbCksYSksYX1mdW5jdGlvbiBESihjLGwsYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGM/Yz09PWw6Yy5oYXMobCkpcmV0'@; put 'dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mz9sOmE7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBlbGVtZW50IGlzIG5vdCBwcmVzZW50IG9uIHRoaXMgb2JqZWN0Iil9dmFyIHBGPW5ldyBXZWFrTWFwLGdGPW5ldyBXZWFrTWFwLG1GPW5ldyBXZWFrTWFwLHdnZT1uZXcgV2Vha1NldDtjbGFz'@; put 'cyBDZ2V7Y29uc3RydWN0b3IoKXsoZnVuY3Rpb24gb3V0KGMsbCl7X2dlKGMsbCksbC5hZGQoYyl9KSh0aGlzLHdnZSksQUoodGhpcyxwRiwhMCksQUoodGhpcyxnRixudWxsKSxBSih0aGlzLG1GLG5ldyBSZXNpemVPYnNlcnZlcihsPT5ESih3Z2UsdGhpcyxsdXQpLmNhbGwodGhpcyxsKSkp'@; put 'fXNldE9ic2VydmVkRWxlbWVudChsKXtrSihnRix0aGlzLGwpfXVub2JzZXJ2ZSgpe1lfKG1GLHRoaXMpLnVub2JzZXJ2ZShZXyhnRix0aGlzKSl9b2JzZXJ2ZSgpe2tKKHBGLHRoaXMsITApLFlfKG1GLHRoaXMpLm9ic2VydmUoWV8oZ0YsdGhpcykpfWRlc3Ryb3koKXtZXyhtRix0aGlzKS5k'@; put 'aXNjb25uZWN0KCl9fWZ1bmN0aW9uIGx1dChjKXshWV8ocEYsdGhpcykmJkFycmF5LmlzQXJyYXkoYykmJmMubGVuZ3RoP2MuZm9yRWFjaChsPT57bGV0e2JvcmRlckJveFNpemU6YX09bDtjb25zdHtpbmxpbmVTaXplOmQsYmxvY2tTaXplOmh9PWFbMF07dGhpcy5ydW5Mb2NhbEhvb2tzKCJy'@; put 'ZXNpemUiLGQsaCl9KTprSihwRix0aGlzLCExKX1mdW5jdGlvbiBHbShjLGwsYSl7KGZ1bmN0aW9uIGN1dChjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9'@; put 'KShjLGwpLGwuc2V0KGMsYSl9ZnVuY3Rpb24gUGwoYyxsKXtyZXR1cm4gYy5nZXQoU2dlKGMsbCkpfWZ1bmN0aW9uIHpwKGMsbCxhKXtyZXR1cm4gYy5zZXQoU2dlKGMsbCksYSksYX1mdW5jdGlvbiBTZ2UoYyxsLGEpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBjP2M9PT1sOmMuaGFzKGwpKXJl'@; put 'dHVybiBhcmd1bWVudHMubGVuZ3RoPDM/bDphO3Rocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgZWxlbWVudCBpcyBub3QgcHJlc2VudCBvbiB0aGlzIG9iamVjdCIpfXhsKENnZSx5MSk7dmFyIEdfPW5ldyBXZWFrTWFwLElKPW5ldyBXZWFrTWFwLFJKPW5ldyBXZWFrTWFwLERnPW5ldyBX'@; put 'ZWFrTWFwLCRtPW5ldyBXZWFrTWFwLEttPW5ldyBXZWFrTWFwLHZGPW5ldyBXZWFrTWFwLCRfPW5ldyBXZWFrTWFwO2NsYXNzIG05e3N0YXRpYyBnZXQgQ0xBU1NfRURJVE9SX0NPTlRBSU5FUigpe3JldHVybiJodENvbW1lbnRzQ29udGFpbmVyIn1zdGF0aWMgZ2V0IENMQVNTX0VESVRPUigp'@; put 'e3JldHVybiJodENvbW1lbnRzIn1zdGF0aWMgZ2V0IENMQVNTX0lOUFVUKCl7cmV0dXJuImh0Q29tbWVudFRleHRBcmVhIn1zdGF0aWMgZ2V0IENMQVNTX0NFTEwoKXtyZXR1cm4iaHRDb21tZW50Q2VsbCJ9Y29uc3RydWN0b3IobCxhLGQpe3ZhciBoPXRoaXM7R20odGhpcyxHXyx2b2lkIDAp'@; put 'LEdtKHRoaXMsSUosdm9pZCAwKSxHbSh0aGlzLFJKLCExKSxHbSh0aGlzLERnLG51bGwpLEdtKHRoaXMsJG0sdm9pZCAwKSxHbSh0aGlzLEttLHZvaWQgMCksR20odGhpcyx2RiwhMCksR20odGhpcywkXyxuZXcgQ2dlKSx6cChHXyx0aGlzLGwpLHpwKElKLHRoaXMsZCksenAoUkosdGhpcyxh'@; put 'KSx6cCgkbSx0aGlzLHRoaXMuY3JlYXRlRWRpdG9yKCkpLHpwKEttLHRoaXMsUGwoJG0sdGhpcykuc3R5bGUpLFBsKCRfLHRoaXMpLnNldE9ic2VydmVkRWxlbWVudCh0aGlzLmdldElucHV0RWxlbWVudCgpKSxQbCgkXyx0aGlzKS5hZGRMb2NhbEhvb2soInJlc2l6ZSIsZnVuY3Rpb24oKXtm'@; put 'b3IodmFyIGY9YXJndW1lbnRzLmxlbmd0aCx2PW5ldyBBcnJheShmKSxNPTA7TTxmO00rKyl2W01dPWFyZ3VtZW50c1tNXTtyZXR1cm4gaC5ydW5Mb2NhbEhvb2tzKCJyZXNpemUiLC4uLnYpfSksdGhpcy5oaWRlKCl9c2V0UG9zaXRpb24obCxhKXtQbChLbSx0aGlzKS5sZWZ0PWAke2x9cHhg'@; put 'LFBsKEttLHRoaXMpLnRvcD1gJHthfXB4YH1zZXRTaXplKGwsYSl7aWYobCYmYSl7Y29uc3QgZD10aGlzLmdldElucHV0RWxlbWVudCgpO2Quc3R5bGUud2lkdGg9YCR7bH1weGAsZC5zdHlsZS5oZWlnaHQ9YCR7YX1weGB9fWdldFNpemUoKXtyZXR1cm57d2lkdGg6aXUodGhpcy5nZXRJbnB1'@; put 'dEVsZW1lbnQoKSksaGVpZ2h0OlN1KHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkpfX1vYnNlcnZlU2l6ZSgpe1BsKCRfLHRoaXMpLm9ic2VydmUoKX1yZXNldFNpemUoKXtjb25zdCBsPXRoaXMuZ2V0SW5wdXRFbGVtZW50KCk7bC5zdHlsZS53aWR0aD0iIixsLnN0eWxlLmhlaWdodD0iIn1zZXRS'@; put 'ZWFkT25seVN0YXRlKGwpe3RoaXMuZ2V0SW5wdXRFbGVtZW50KCkucmVhZE9ubHk9bH1zaG93KCl7UGwoS20sdGhpcykuZGlzcGxheT0iYmxvY2siLHpwKHZGLHRoaXMsITEpfWhpZGUoKXtQbCgkXyx0aGlzKS51bm9ic2VydmUoKSxQbCh2Rix0aGlzKXx8KFBsKEttLHRoaXMpLmRpc3BsYXk9'@; put 'Im5vbmUiKSx6cCh2Rix0aGlzLCEwKX1pc1Zpc2libGUoKXtyZXR1cm4iYmxvY2siPT09UGwoS20sdGhpcykuZGlzcGxheX1zZXRWYWx1ZSgpe2NvbnN0IGE9KGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIil8fCIiO3RoaXMuZ2V0SW5w'@; put 'dXRFbGVtZW50KCkudmFsdWU9YX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLmdldElucHV0RWxlbWVudCgpLnZhbHVlfWlzRm9jdXNlZCgpe3JldHVybiBQbChHXyx0aGlzKS5hY3RpdmVFbGVtZW50PT09dGhpcy5nZXRJbnB1dEVsZW1lbnQoKX1mb2N1cygpe3RoaXMuZ2V0SW5wdXRFbGVtZW50'@; put 'KCkuZm9jdXMoKX1jcmVhdGVFZGl0b3IoKXtjb25zdCBsPVBsKEdfLHRoaXMpLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGE9UGwoR18sdGhpcykuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTtyZXR1cm4gbC5zdHlsZS5kaXNwbGF5PSJub25lIix6cChEZyx0aGlzLFBsKEdfLHRoaXMpLmNyZWF0'@; put 'ZUVsZW1lbnQoImRpdiIpKSxQbChEZyx0aGlzKS5zZXRBdHRyaWJ1dGUoImRpciIsUGwoUkosdGhpcyk/InJ0bCI6Imx0ciIpLEVpKFBsKERnLHRoaXMpLG05LkNMQVNTX0VESVRPUl9DT05UQUlORVIpLFBsKElKLHRoaXMpLmFwcGVuZENoaWxkKFBsKERnLHRoaXMpKSxFaShsLG05LkNMQVNT'@; put 'X0VESVRPUiksRWkoYSxtOS5DTEFTU19JTlBVVCksYS5zZXRBdHRyaWJ1dGUoImRhdGEtaG90LWlucHV0IiwhMCksbC5hcHBlbmRDaGlsZChhKSxQbChEZyx0aGlzKS5hcHBlbmRDaGlsZChsKSxsfWdldElucHV0RWxlbWVudCgpe3JldHVybiBQbCgkbSx0aGlzKS5xdWVyeVNlbGVjdG9yKGAu'@; put 'JHttOS5DTEFTU19JTlBVVH1gKX1nZXRFZGl0b3JFbGVtZW50KCl7cmV0dXJuIFBsKCRtLHRoaXMpfWRlc3Ryb3koKXtjb25zdCBsPVBsKERnLHRoaXMpP1BsKERnLHRoaXMpLnBhcmVudE5vZGU6bnVsbDtQbCgkbSx0aGlzKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKFBsKCRtLHRoaXMpKSx6'@; put 'cCgkbSx0aGlzLG51bGwpLHpwKEttLHRoaXMsbnVsbCksUGwoJF8sdGhpcykuZGVzdHJveSgpLGwmJmwucmVtb3ZlQ2hpbGQoUGwoRGcsdGhpcykpfX14bChtOSx5MSk7Y29uc3QgdXV0PW05O2Z1bmN0aW9uIExKKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBkdXQoYyl7dmFyIGw9ZnVuY3Rp'@; put 'b24gaHV0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVF'@; put 'cnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0'@; put 'eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31jbGFzcyBNZ2V7Y29uc3RydWN0b3IobCl7TEoodGhpcywid2FzTGFzdEFjdGlvblNob3ciLCEwKSxMSih0aGlzLCJzaG93RGVib3VuY2VkIixudWxsKSxMSih0aGlzLCJo'@; put 'aWRpbmdUaW1lciIsbnVsbCksdGhpcy51cGRhdGVEZWxheShsKX1oaWRlKCl7dGhpcy53YXNMYXN0QWN0aW9uU2hvdz0hMSx0aGlzLmhpZGluZ1RpbWVyPXNldFRpbWVvdXQoKCk9PnshMT09PXRoaXMud2FzTGFzdEFjdGlvblNob3cmJnRoaXMucnVuTG9jYWxIb29rcygiaGlkZSIpfSwyNTAp'@; put 'fXNob3cobCl7dGhpcy53YXNMYXN0QWN0aW9uU2hvdz0hMCx0aGlzLnNob3dEZWJvdW5jZWQobCl9Y2FuY2VsSGlkaW5nKCl7dGhpcy53YXNMYXN0QWN0aW9uU2hvdz0hMCxjbGVhclRpbWVvdXQodGhpcy5oaWRpbmdUaW1lciksdGhpcy5oaWRpbmdUaW1lcj1udWxsfXVwZGF0ZURlbGF5KCl7'@; put 'dGhpcy5zaG93RGVib3VuY2VkPUlFKGE9Pnt0aGlzLndhc0xhc3RBY3Rpb25TaG93JiZ0aGlzLnJ1bkxvY2FsSG9va3MoInNob3ciLGEuZnJvbS5yb3csYS5mcm9tLmNvbCl9LGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToyNTApfWRlc3Ry'@; put 'b3koKXt0aGlzLmNsZWFyTG9jYWxIb29rcygpfX14bChNZ2UseTEpO2NvbnN0IGd1dD1NZ2UsaW89Ii0tLS0tLS0tLSI7ZnVuY3Rpb24gdjkoYyxsKXtjb25zdCBhPXt9O3JldHVybiBLbihjLGQ9PntkLmZvckFsbCgoaCxmKT0+e2g+PTAmJmY+PTAmJihhW2hdfHwoYVtoXT1bXSksYVtoXVtm'@; put 'XT1sKGgsZikpfSl9KSxhfWZ1bmN0aW9uIFhtKGMsbCxhLGQsaCl7S24oYyxmPT57Zi5mb3JBbGwoKHYsTSk9Pnt2Pj0wJiZNPj0wJiZmdW5jdGlvbiB3dXQoYyxsLGEsZCxoLGYpe2NvbnN0IHY9aChjLGwpO2xldCBNPWQ7di5jbGFzc05hbWUmJihNPSJ2ZXJ0aWNhbCI9PT1hP2Z1bmN0aW9u'@; put 'IGJ1dChjLGwpe3JldHVybi0xIT09Yy5pbmRleE9mKGwpP2M6YCR7Yy5yZXBsYWNlKCJodFRvcCIsIiIpLnJlcGxhY2UoImh0TWlkZGxlIiwiIikucmVwbGFjZSgiaHRCb3R0b20iLCIiKS5yZXBsYWNlKCIgICIsIiIpfSAke2x9YH0odi5jbGFzc05hbWUsZCk6ZnVuY3Rpb24gX3V0KGMsbCl7'@; put 'cmV0dXJuLTEhPT1jLmluZGV4T2YobCk/YzpgJHtjLnJlcGxhY2UoImh0TGVmdCIsIiIpLnJlcGxhY2UoImh0Q2VudGVyIiwiIikucmVwbGFjZSgiaHRSaWdodCIsIiIpLnJlcGxhY2UoImh0SnVzdGlmeSIsIiIpLnJlcGxhY2UoIiAgIiwiIil9ICR7bH1gfSh2LmNsYXNzTmFtZSxkKSksZihj'@; put 'LGwsImNsYXNzTmFtZSIsTSl9KHYsTSxsLGEsZCxoKX0pfSl9ZnVuY3Rpb24geGdlKGMpe3JldHVybmA8c3BhbiBjbGFzcz0ic2VsZWN0ZWQiPlx1MjcxMzwvc3Bhbj4ke2N9YH1mdW5jdGlvbiB5RihjLGwpe2xldCBhPSExO3JldHVybiBBcnJheS5pc0FycmF5KGMpJiZLbihjLGQ9PihkLmZv'@; put 'ckFsbCgoaCxmKT0+e2lmKGg+PTAmJmY+PTAmJmwoaCxmKSlyZXR1cm4gYT0hMCwhMX0pLGEpKSxhfWZ1bmN0aW9uIGJGKGMsbCl7Y29uc3QgYT17dG9wOjAsbGVmdDowfTtpZihsIT09Yy5vd25lckRvY3VtZW50KXtjb25zdHtmcmFtZUVsZW1lbnQ6ZH09bC5kZWZhdWx0Vmlldyx7dG9wOmgs'@; put 'bGVmdDpmfT1kLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2EudG9wPWgsYS5sZWZ0PWZ9cmV0dXJuIGF9ZnVuY3Rpb24gS18oYyxsLGEpe0VnZShjLGwpLGwuc2V0KGMsYSl9ZnVuY3Rpb24gRWdlKGMsbCl7aWYobC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxp'@; put 'emUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX1mdW5jdGlvbiBxbShjLGwsYSl7cmV0dXJuIGMuc2V0KEhoKGMsbCksYSksYX1mdW5jdGlvbiBhbyhjLGwpe3JldHVybiBjLmdldChIaChjLGwpKX1mdW5jdGlvbiBIaChjLGwsYSl7aWYoImZ1bmN0aW9u'@; put 'Ij09dHlwZW9mIGM/Yz09PWw6Yy5oYXMobCkpcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mz9sOmE7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBlbGVtZW50IGlzIG5vdCBwcmVzZW50IG9uIHRoaXMgb2JqZWN0Iil9Y29uc3QgX0Y9ImNvbW1lbnRzIixJZz0iY29tbWVudCIsQ1Q9InZh'@; put 'bHVlIix3Rj0icmVhZE9ubHkiLFNUPV9GLE9KPWBwbHVnaW46JHtfRn1gO3ZhciBGbD1uZXcgV2Vha01hcCxVcD1uZXcgV2Vha01hcCxDRj1uZXcgV2Vha01hcCxTRj1uZXcgV2Vha01hcCxQSj1uZXcgV2Vha01hcCxNRj1uZXcgV2Vha01hcCxRMj1uZXcgV2Vha1NldDtjbGFzcyBBdXQgZXh0'@; put 'ZW5kcyBGb3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksZnVuY3Rpb24gU3V0KGMsbCl7RWdlKGMsbCksbC5hZGQoYyl9KHRoaXMsUTIpLGZ1bmN0aW9uIE11dChjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24geHV0KGMpe3ZhciBsPWZ1bmN0aW9uIEV1dChjLGwpe2lmKCJvYmpl'@; put 'Y3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUg'@; put 'bXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1l'@; put 'cmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9KHRoaXMsInJhbmdlIix7fSksS18odGhpcyxGbCxudWxsKSxLXyh0aGlzLFVwLG51bGwpLEtfKHRoaXMsQ0YsITEpLEtfKHRoaXMsU0YsITEpLEtfKHRoaXMsUEosbnVsbCksS18odGhpcyxNRiwiIil9c3Rh'@; put 'dGljIGdldCBQTFVHSU5fS0VZKCl7cmV0dXJuIF9GfXN0YXRpYyBnZXQgUExVR0lOX1BSSU9SSVRZKCl7cmV0dXJuIDYwfXN0YXRpYyBnZXQgREVGQVVMVF9TRVRUSU5HUygpe3JldHVybntkaXNwbGF5RGVsYXk6MjUwfX1pc0VuYWJsZWQoKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdz'@; put 'KClbX0ZdfWVuYWJsZVBsdWdpbigpe3ZhciBsPXRoaXM7dGhpcy5lbmFibGVkfHwoYW8oRmwsdGhpcyl8fChxbShGbCx0aGlzLG5ldyB1dXQodGhpcy5ob3Qucm9vdERvY3VtZW50LHRoaXMuaG90LmlzUnRsKCksdGhpcy5ob3Qucm9vdFBvcnRhbEVsZW1lbnQpKSxhbyhGbCx0aGlzKS5hZGRM'@; put 'b2NhbEhvb2soInJlc2l6ZSIsZnVuY3Rpb24oKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxkPW5ldyBBcnJheShhKSxoPTA7aDxhO2grKylkW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gSGgoUTIsbCxGdXQpLmNhbGwobCwuLi5kKX0pLHRoaXMuaG90LmFkZEhvb2soImFmdGVyU2V0VGhl'@; put 'bWUiLChhLGQpPT57ZHx8dGhpcy5oaWRlKCl9KSksYW8oVXAsdGhpcyl8fHFtKFVwLHRoaXMsbmV3IGd1dCh0aGlzLmdldFNldHRpbmcoImRpc3BsYXlEZWxheSIpKSksdGhpcy5hZGRIb29rKCJhZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMiLGE9PnRoaXMuYWRkVG9Db250ZXh0TWVu'@; put 'dShhKSksdGhpcy5hZGRIb29rKCJhZnRlclJlbmRlcmVyIiwoYSxkLGgsZix2LE0pPT5IaChRMix0aGlzLEx1dCkuY2FsbCh0aGlzLGEsTSkpLHRoaXMuYWRkSG9vaygiYWZ0ZXJTY3JvbGwiLCgpPT5IaChRMix0aGlzLEh1dCkuY2FsbCh0aGlzKSksdGhpcy5hZGRIb29rKCJhZnRlckJlZ2lu'@; put 'RWRpdGluZyIsKCk9PnRoaXMuaGlkZSgpKSx0aGlzLmFkZEhvb2soImFmdGVyRG9jdW1lbnRLZXlEb3duIixhPT5IaChRMix0aGlzLEFnZSkuY2FsbCh0aGlzLGEpKSx0aGlzLmFkZEhvb2soImJlZm9yZUNvbXBvc2l0aW9uU3RhcnQiLGE9PkhoKFEyLHRoaXMsQWdlKS5jYWxsKHRoaXMsYSkp'@; put 'LGFvKFVwLHRoaXMpLmFkZExvY2FsSG9vaygiaGlkZSIsKCk9PnRoaXMuaGlkZSgpKSxhbyhVcCx0aGlzKS5hZGRMb2NhbEhvb2soInNob3ciLChhLGQpPT50aGlzLnNob3dBdENlbGwoYSxkKSksdGhpcy5yZWdpc3RlclNob3J0Y3V0cygpLHRoaXMucmVnaXN0ZXJMaXN0ZW5lcnMoKSxzdXBl'@; put 'ci5lbmFibGVQbHVnaW4oKSl9dXBkYXRlUGx1Z2luKCl7YW8oVXAsdGhpcykudXBkYXRlRGVsYXkodGhpcy5nZXRTZXR0aW5nKCJkaXNwbGF5RGVsYXkiKSksc3VwZXIudXBkYXRlUGx1Z2luKCl9ZGlzYWJsZVBsdWdpbigpe3RoaXMudW5yZWdpc3RlclNob3J0Y3V0cygpLHN1cGVyLmRpc2Fi'@; put 'bGVQbHVnaW4oKX1yZWdpc3RlclNob3J0Y3V0cygpe2NvbnN0IGw9dGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCksYT1sLmdldENvbnRleHQoImdyaWQiKSxkPWwuYWRkQ29udGV4dChPSik7YS5hZGRTaG9ydGN1dCh7a2V5czpbWyJDb250cm9sIiwiQWx0IiwiTSJdXSxjYWxsYmFjazoo'@; put 'KT0+e2NvbnN0IGg9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtxbShTRix0aGlzLCEwKSx0aGlzLmhvdC5zY3JvbGxUb0ZvY3VzZWRDZWxsKCgpPT57dGhpcy5zZXRSYW5nZShoKSx0aGlzLnNob3coKSx0aGlzLmZvY3VzRWRpdG9yKCksbC5zZXRBY3RpdmVDb250ZXh0TmFtZShP'@; put 'SiksdGhpcy5ob3QuX3JlZ2lzdGVyVGltZW91dCgoKT0+e3FtKFNGLHRoaXMsITEpfSl9KX0sc3RvcFByb3BhZ2F0aW9uOiEwLHJ1bk9ubHlJZjooKT0+e3ZhciBoO3JldHVybiBudWxsPT09KGg9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSl8fHZvaWQgMD09PWg/dm9pZCAwOmgu'@; put 'aGlnaGxpZ2h0LmlzQ2VsbCgpfSxncm91cDpTVH0pLGQuYWRkU2hvcnRjdXQoe2tleXM6W1siRXNjYXBlIl1dLGNhbGxiYWNrOigpPT57YW8oRmwsdGhpcykuc2V0VmFsdWUoYW8oTUYsdGhpcykpLHRoaXMuaGlkZSgpLGwuc2V0QWN0aXZlQ29udGV4dE5hbWUoImdyaWQiKX0scnVuT25seUlm'@; put 'OigpPT5hbyhGbCx0aGlzKS5pc1Zpc2libGUoKSYmYW8oRmwsdGhpcykuaXNGb2N1c2VkKCksZ3JvdXA6U1R9KSxkLmFkZFNob3J0Y3V0KHtrZXlzOltbIkNvbnRyb2wvTWV0YSIsIkVudGVyIl1dLGNhbGxiYWNrOigpPT57dGhpcy5oaWRlKCksbC5zZXRBY3RpdmVDb250ZXh0TmFtZSgiZ3Jp'@; put 'ZCIpfSxydW5Pbmx5SWY6KCk9PmFvKEZsLHRoaXMpLmlzVmlzaWJsZSgpJiZhbyhGbCx0aGlzKS5pc0ZvY3VzZWQoKSxncm91cDpTVH0pLGQuYWRkU2hvcnRjdXQoe2tleXM6W1siU2hpZnQiLCJUYWIiXSxbIlRhYiJdXSxmb3J3YXJkVG9Db250ZXh0OmwuZ2V0Q29udGV4dCgiZ3JpZCIpLGNh'@; put 'bGxiYWNrOigpPT57YW8oRmwsdGhpcykuc2V0VmFsdWUoYW8oRmwsdGhpcykuZ2V0VmFsdWUoKSksdGhpcy5oaWRlKCksbC5zZXRBY3RpdmVDb250ZXh0TmFtZSgiZ3JpZCIpfSxncm91cDpTVH0pfXVucmVnaXN0ZXJTaG9ydGN1dHMoKXt0aGlzLmhvdC5nZXRTaG9ydGN1dE1hbmFnZXIoKS5n'@; put 'ZXRDb250ZXh0KCJncmlkIikucmVtb3ZlU2hvcnRjdXRzQnlHcm91cChTVCl9cmVnaXN0ZXJMaXN0ZW5lcnMoKXtjb25zdHtyb290RG9jdW1lbnQ6bH09dGhpcy5ob3QsYT10aGlzLmdldEVkaXRvcklucHV0RWxlbWVudCgpO3RoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIobCwi'@; put 'bW91c2VvdmVyIixkPT5IaChRMix0aGlzLEl1dCkuY2FsbCh0aGlzLGQpKSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGwsIm1vdXNlZG93biIsZD0+SGgoUTIsdGhpcyxrdXQpLmNhbGwodGhpcyxkKSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihsLCJt'@; put 'b3VzZXVwIiwoKT0+SGgoUTIsdGhpcyxSdXQpLmNhbGwodGhpcykpLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoYSwiZm9jdXMiLCgpPT5IaChRMix0aGlzLFB1dCkuY2FsbCh0aGlzKSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihhLCJibHVyIiwoKT0+'@; put 'SGgoUTIsdGhpcyxPdXQpLmNhbGwodGhpcykpLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5nZXRFZGl0b3JJbnB1dEVsZW1lbnQoKSwibW91c2Vkb3duIixkPT5IaChRMix0aGlzLER1dCkuY2FsbCh0aGlzLGQpKX1zZXRSYW5nZShsKXt0aGlzLnJhbmdlPWx9Y2xl'@; put 'YXJSYW5nZSgpe3RoaXMucmFuZ2U9e319dGFyZ2V0SXNDZWxsV2l0aENvbW1lbnQobCl7Y29uc3QgYT1EbShsLnRhcmdldCwiVEQiLCJUQk9EWSIpO3JldHVybiEhKGEmJmdzKGEsImh0Q29tbWVudENlbGwiKSYmRG0oYSxbdGhpcy5ob3Qucm9vdEVsZW1lbnRdKSl9dGFyZ2V0SXNDb21tZW50'@; put 'VGV4dEFyZWEobCl7cmV0dXJuIHRoaXMuZ2V0RWRpdG9ySW5wdXRFbGVtZW50KCk9PT1sLnRhcmdldH1zZXRDb21tZW50KGwpe2lmKCF0aGlzLnJhbmdlLmZyb20pdGhyb3cgbmV3IEVycm9yKCdCZWZvcmUgdXNpbmcgdGhpcyBtZXRob2QsIGZpcnN0IHNldCBjZWxsIHJhbmdlIChob3QuZ2V0'@; put 'UGx1Z2luKCJjb21tZW50Iikuc2V0UmFuZ2UoKSknKTtjb25zdCBhPWFvKEZsLHRoaXMpLmdldFZhbHVlKCk7bGV0IGQ9IiI7bnVsbCE9bD9kPWw6bnVsbCE9YSYmKGQ9YSksdGhpcy51cGRhdGVDb21tZW50TWV0YSh0aGlzLnJhbmdlLmZyb20ucm93LHRoaXMucmFuZ2UuZnJvbS5jb2wse1tD'@; put 'VF06ZH0pLHRoaXMuaG90LnJlbmRlcigpfXNldENvbW1lbnRBdENlbGwobCxhLGQpe3RoaXMuc2V0UmFuZ2Uoe2Zyb206dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMobCxhKX0pLHRoaXMuc2V0Q29tbWVudChkKX1yZW1vdmVDb21tZW50KCl7bGV0IGw9IShhcmd1bWVudHMubGVuZ3RoPjAm'@; put 'JnZvaWQgMCE9PWFyZ3VtZW50c1swXSl8fGFyZ3VtZW50c1swXTtpZighdGhpcy5yYW5nZS5mcm9tKXRocm93IG5ldyBFcnJvcignQmVmb3JlIHVzaW5nIHRoaXMgbWV0aG9kLCBmaXJzdCBzZXQgY2VsbCByYW5nZSAoaG90LmdldFBsdWdpbigiY29tbWVudCIpLnNldFJhbmdlKCkpJyk7dGhp'@; put 'cy5ob3Quc2V0Q2VsbE1ldGEodGhpcy5yYW5nZS5mcm9tLnJvdyx0aGlzLnJhbmdlLmZyb20uY29sLElnKSxsJiZ0aGlzLmhvdC5yZW5kZXIoKSx0aGlzLmhpZGUoKX1yZW1vdmVDb21tZW50QXRDZWxsKGwsYSl7bGV0IGQ9IShhcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50'@; put 'c1syXSl8fGFyZ3VtZW50c1syXTt0aGlzLnNldFJhbmdlKHtmcm9tOnRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKGwsYSl9KSx0aGlzLnJlbW92ZUNvbW1lbnQoZCl9Z2V0Q29tbWVudCgpe3JldHVybiB0aGlzLmdldENvbW1lbnRNZXRhKHRoaXMucmFuZ2UuZnJvbS5yb3csdGhpcy5yYW5n'@; put 'ZS5mcm9tLmNvbCxDVCl9Z2V0Q29tbWVudEF0Q2VsbChsLGEpe3JldHVybiB0aGlzLmdldENvbW1lbnRNZXRhKGwsYSxDVCl9c2hvdygpe3ZhciBsO2lmKCF0aGlzLnJhbmdlLmZyb20pdGhyb3cgbmV3IEVycm9yKCdCZWZvcmUgdXNpbmcgdGhpcyBtZXRob2QsIGZpcnN0IHNldCBjZWxsIHJh'@; put 'bmdlIChob3QuZ2V0UGx1Z2luKCJjb21tZW50Iikuc2V0UmFuZ2UoKSknKTtjb25zdHtmcm9tOntyb3c6YSxjb2w6ZH19PXRoaXMucmFuZ2U7aWYoYTwwfHxhPnRoaXMuaG90LmNvdW50U291cmNlUm93cygpLTF8fGQ8MHx8ZD50aGlzLmhvdC5jb3VudFNvdXJjZUNvbHMoKS0xKXJldHVybiEx'@; put 'O2NvbnN0IGg9dGhpcy5ob3QuZ2V0Q2VsbE1ldGEodGhpcy5yYW5nZS5mcm9tLnJvdyx0aGlzLnJhbmdlLmZyb20uY29sKTtyZXR1cm4gYW8oVXAsdGhpcykuY2FuY2VsSGlkaW5nKCksYW8oRmwsdGhpcykuc2V0VmFsdWUobnVsbCE9PShsPWhbSWddP2hbSWddW0NUXTpudWxsKSYmdm9pZCAw'@; put 'IT09bD9sOiIiKSxhbyhGbCx0aGlzKS5zaG93KCksdGhpcy5yZWZyZXNoRWRpdG9yKCEwKSwhMH1zaG93QXRDZWxsKGwsYSl7cmV0dXJuIHRoaXMuc2V0UmFuZ2Uoe2Zyb206dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMobCxhKX0pLHRoaXMuc2hvdygpfWhpZGUoKXthbyhGbCx0aGlzKS5o'@; put 'aWRlKCl9cmVmcmVzaEVkaXRvcigpe2lmKCEoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXXx8dGhpcy5yYW5nZS5mcm9tJiZhbyhGbCx0aGlzKS5pc1Zpc2libGUoKSkpcmV0dXJuO2NvbnN0e3Jvd0luZGV4TWFwcGVyOmEsY29sdW1uSW5k'@; put 'ZXhNYXBwZXI6ZH09dGhpcy5ob3Qse3JvdzpoLGNvbDpmfT10aGlzLnJhbmdlLmZyb207bGV0IHY9YS5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KGgpLE09ZC5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KGYpO2NvbnN0IEk9bnVsbD09PXY7YW8oRmwsdGhpcykuc2V0UG9zaXRp'@; put 'b24oMCwwKSxudWxsPT09diYmKHY9YS5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KGEuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KGgsLTEpKSksbnVsbD09PU0mJihNPWQuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChkLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChmLC0xKSkp'@; put 'O2NvbnN0IEc9bnVsbD09PXYscmU9bnVsbD09PU07dj12Pz8wLE09TT8/MDtjb25zdHtyb290V2luZG93OnVlLHZpZXc6e193dDp5ZX19PXRoaXMuaG90LHt3dFRhYmxlOkVlfT15ZSxCZT15ZS5nZXRDZWxsKHtyb3c6dixjb2w6TX0sITApLEdlPXRoaXMuZ2V0Q29tbWVudE1ldGEoaCxmLCJz'@; put 'dHlsZSIpO0dlP2FvKEZsLHRoaXMpLnNldFNpemUoR2Uud2lkdGgsR2UuaGVpZ2h0KTphbyhGbCx0aGlzKS5yZXNldFNpemUoKTtjb25zdCBzdD1yZT8wOkVlLmdldENvbHVtbldpZHRoKE0pLHB0PUkmJiFHP1N1KEJlKTowLHtsZWZ0OmR0LHRvcDpxdCx3aWR0aDptbixoZWlnaHQ6d259PUJl'@; put 'LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHt3aWR0aDpobixoZWlnaHQ6TW59PWFvKEZsLHRoaXMpLmdldFNpemUoKSx7aW5uZXJXaWR0aDpNcixpbm5lckhlaWdodDprcn09dGhpcy5ob3Qucm9vdFdpbmRvdyxxbj10aGlzLmhvdC5yb290RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGdyPWQw'@; put 'KHRoaXMuaG90LnJvb3REb2N1bWVudCkscXI9TCQodGhpcy5ob3Qucm9vdFdpbmRvdyk/Z3I6MCxfaT1PJCh0aGlzLmhvdC5yb290V2luZG93KT9ncjowO2xldCBQbj1kdCt1ZS5zY3JvbGxYK3N0LFVyPXF0K3VlLnNjcm9sbFkrcHQ7dGhpcy5ob3QuaXNSdGwoKSYmKFBuLT1obitzdCksdGhp'@; put 'cy5ob3QuaXNMdHIoKSYmZHQrbW4raG4+TXItcXI/UG49ZHQrdWUuc2Nyb2xsWC1obi0xOnRoaXMuaG90LmlzUnRsKCkmJlBuPC0ocW4uc2Nyb2xsV2lkdGgtcW4uY2xpZW50V2lkdGgpJiYoUG49ZHQrdWUuc2Nyb2xsWCtzdCsxKSxxdCtNbj5rci1faSYmKFVyLT1Nbi13bisxKSxhbyhGbCx0'@; put 'aGlzKS5zZXRQb3NpdGlvbihQbixVciksYW8oRmwsdGhpcykuc2V0UmVhZE9ubHlTdGF0ZSh0aGlzLmdldENvbW1lbnRNZXRhKGgsZix3RikpLGFvKEZsLHRoaXMpLm9ic2VydmVTaXplKCl9Zm9jdXNFZGl0b3IoKXthbyhGbCx0aGlzKS5mb2N1cygpfXVwZGF0ZUNvbW1lbnRNZXRhKGwsYSxk'@; put 'KXtjb25zdCBoPXRoaXMuaG90LmdldENlbGxNZXRhKGwsYSlbSWddO2xldCBmO2g/KGY9cDEoaCksd0UoZixkKSk6Zj1kLHRoaXMuaG90LnNldENlbGxNZXRhKGwsYSxJZyxmKX1nZXRDb21tZW50TWV0YShsLGEsZCl7Y29uc3QgaD10aGlzLmhvdC5nZXRDZWxsTWV0YShsLGEpO2lmKGhbSWdd'@; put 'KXJldHVybiBoW0lnXVtkXX1hZGRUb0NvbnRleHRNZW51KGwpe2wuaXRlbXMucHVzaCh7bmFtZTppb30sZnVuY3Rpb24gdnV0KGMpe3JldHVybntrZXk6ImNvbW1lbnRzQWRkRWRpdCIsbmFtZSgpe3ZhciBsO2NvbnN0IGE9bnVsbD09PShsPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSl8'@; put 'fHZvaWQgMD09PWw/dm9pZCAwOmwuaGlnaGxpZ2h0O3JldHVybiBudWxsIT1hJiZhLmlzQ2VsbCgpJiZjLmdldENvbW1lbnRBdENlbGwoYS5yb3csYS5jb2wpP3RoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShmWCk6dGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKGhYKX0sY2FsbGJhY2soKXtjb25z'@; put 'dCBsPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtjLnNldFJhbmdlKGwpLGMuc2hvdygpLGMuZm9jdXNFZGl0b3IoKX0sZGlzYWJsZWQoKXtjb25zdCBsPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtyZXR1cm4hISghbHx8bC5oaWdobGlnaHQuaXNIZWFkZXIoKXx8dGhpcy5zZWxl'@; put 'Y3Rpb24uaXNFbnRpcmVSb3dTZWxlY3RlZCgpJiZ0aGlzLnNlbGVjdGlvbi5pc0VudGlyZUNvbHVtblNlbGVjdGVkKCl8fDA9PT10aGlzLmNvdW50UmVuZGVyZWRSb3dzKCl8fDA9PT10aGlzLmNvdW50UmVuZGVyZWRDb2xzKCkpfX19KHRoaXMpLGZ1bmN0aW9uIHl1dChjKXtyZXR1cm57a2V5'@; put 'OiJjb21tZW50c1JlbW92ZSIsbmFtZSgpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UocFgpfSxjYWxsYmFjaygpe3RoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKS5mb3JBbGwoKGEsZCk9PnthPj0wJiZkPj0wJiZjLnJlbW92ZUNvbW1lbnRBdENlbGwoYSxkLCExKX0pLHRoaXMu'@; put 'cmVuZGVyKCl9LGRpc2FibGVkKCl7Y29uc3QgbD10aGlzLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7cmV0dXJuISEoIWx8fGwuaGlnaGxpZ2h0LmlzSGVhZGVyKCl8fHRoaXMuc2VsZWN0aW9uLmlzRW50aXJlUm93U2VsZWN0ZWQoKSYmdGhpcy5zZWxlY3Rpb24uaXNFbnRpcmVDb2x1bW5TZWxl'@; put 'Y3RlZCgpfHwwPT09dGhpcy5jb3VudFJlbmRlcmVkUm93cygpfHwwPT09dGhpcy5jb3VudFJlbmRlcmVkQ29scygpKX19fSh0aGlzKSxmdW5jdGlvbiBDdXQoYyl7cmV0dXJue2tleToiY29tbWVudHNSZWFkT25seSIsbmFtZSgpe2NvbnN0IGw9dGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKGdY'@; put 'KTtyZXR1cm4geUYodGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksKGQsaCk9PmMuZ2V0Q29tbWVudE1ldGEoZCxoLHdGKSk/eGdlKGwpOmx9LGNhbGxiYWNrKCl7dGhpcy5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLmZvckFsbCgoYSxkKT0+e2lmKGE+PTAmJmQ+PTApe2NvbnN0IGg9ISFjLmdldENv'@; put 'bW1lbnRNZXRhKGEsZCx3Rik7Yy51cGRhdGVDb21tZW50TWV0YShhLGQse1t3Rl06IWh9KX19KX0sZGlzYWJsZWQoKXtjb25zdCBsPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtyZXR1cm4hISghbHx8bC5oaWdobGlnaHQuaXNIZWFkZXIoKXx8IWMuZ2V0Q29tbWVudEF0Q2VsbChsLmhp'@; put 'Z2hsaWdodC5yb3csbC5oaWdobGlnaHQuY29sKXx8dGhpcy5zZWxlY3Rpb24uaXNFbnRpcmVSb3dTZWxlY3RlZCgpJiZ0aGlzLnNlbGVjdGlvbi5pc0VudGlyZUNvbHVtblNlbGVjdGVkKCl8fDA9PT10aGlzLmNvdW50UmVuZGVyZWRSb3dzKCl8fDA9PT10aGlzLmNvdW50UmVuZGVyZWRDb2xz'@; put 'KCkpfX19KHRoaXMpKX1nZXRFZGl0b3JJbnB1dEVsZW1lbnQoKXtyZXR1cm4gYW8oRmwsdGhpcykuZ2V0SW5wdXRFbGVtZW50KCl9ZGVzdHJveSgpe3ZhciBsLGE7bnVsbD09PShsPWFvKEZsLHRoaXMpKXx8dm9pZCAwPT09bHx8bC5kZXN0cm95KCksbnVsbD09PShhPWFvKFVwLHRoaXMpKXx8'@; put 'dm9pZCAwPT09YXx8YS5kZXN0cm95KCksc3VwZXIuZGVzdHJveSgpfX1mdW5jdGlvbiBrdXQoYyl7aWYodGhpcy5ob3QudmlldyYmdGhpcy5ob3Qudmlldy5fd3QmJiFhbyhDRix0aGlzKSYmIXRoaXMudGFyZ2V0SXNDb21tZW50VGV4dEFyZWEoYykpe2NvbnN0IGw9RG0oYy50YXJnZXQsIlRE'@; put 'IiwiVEJPRFkiKTtsZXQgYT1udWxsO2wmJihhPXRoaXMuaG90LmdldENvb3JkcyhsKSksKCFsfHx0aGlzLnJhbmdlLmZyb20mJmEmJih0aGlzLnJhbmdlLmZyb20ucm93IT09YS5yb3d8fHRoaXMucmFuZ2UuZnJvbS5jb2whPT1hLmNvbCkpJiZ0aGlzLmhpZGUoKX19ZnVuY3Rpb24gRHV0KGMp'@; put 'e2Muc3RvcFByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gSXV0KGMpe2NvbnN0e3Jvb3REb2N1bWVudDpsfT10aGlzLmhvdDtpZighKGFvKENGLHRoaXMpfHxhbyhGbCx0aGlzKS5pc0ZvY3VzZWQoKXx8Z3MoYy50YXJnZXQsInd0Qm9yZGVyIil8fGFvKFBKLHRoaXMpPT09Yy50YXJnZXQpJiZhbyhG'@; put 'bCx0aGlzKSlpZihxbShQSix0aGlzLGwuZWxlbWVudEZyb21Qb2ludChjLmNsaWVudFgsYy5jbGllbnRZKSksdGhpcy50YXJnZXRJc0NlbGxXaXRoQ29tbWVudChjKSl7Y29uc3QgYT10aGlzLmhvdC5fY3JlYXRlQ2VsbFJhbmdlKHRoaXMuaG90LmdldENvb3JkcyhjLnRhcmdldCkpO2FvKFVw'@; put 'LHRoaXMpLnNob3coYSl9ZWxzZSBJbShjLnRhcmdldCxsKSYmIXRoaXMudGFyZ2V0SXNDb21tZW50VGV4dEFyZWEoYykmJmFvKFVwLHRoaXMpLmhpZGUoKX1mdW5jdGlvbiBSdXQoKXtxbShDRix0aGlzLCExKX1mdW5jdGlvbiBMdXQoYyxsKXtsW0lnXSYmbFtJZ11bQ1RdJiZFaShjLGwuY29t'@; put 'bWVudGVkQ2VsbENsYXNzTmFtZSl9ZnVuY3Rpb24gT3V0KCl7cW0oTUYsdGhpcywiIiksdGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuc2V0QWN0aXZlQ29udGV4dE5hbWUoImdyaWQiKSx0aGlzLnNldENvbW1lbnQoKX1mdW5jdGlvbiBQdXQoKXtxbShNRix0aGlzLHRoaXMuZ2V0Q29t'@; put 'bWVudCgpKSx0aGlzLmhvdC5saXN0ZW4oKSx0aGlzLmhvdC5nZXRTaG9ydGN1dE1hbmFnZXIoKS5zZXRBY3RpdmVDb250ZXh0TmFtZShPSil9ZnVuY3Rpb24gRnV0KGMsbCl7dGhpcy51cGRhdGVDb21tZW50TWV0YSh0aGlzLnJhbmdlLmZyb20ucm93LHRoaXMucmFuZ2UuZnJvbS5jb2wse3N0'@; put 'eWxlOnt3aWR0aDpjLGhlaWdodDpsfX0pfWZ1bmN0aW9uIEFnZShjKXthbyhGbCx0aGlzKS5pc0ZvY3VzZWQoKSYmejIoYyl9ZnVuY3Rpb24gSHV0KCl7YW8oU0YsdGhpcyl8fHRoaXMuaGlkZSgpfWZ1bmN0aW9uIEZKKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBOdXQoYyl7dmFyIGw9ZnVu'@; put 'Y3Rpb24gVnV0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5'@; put 'cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9w'@; put 'ZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31jbGFzcyBrZ2V7Y29uc3RydWN0b3IobCl7RkoodGhpcywiaG90Iix2b2lkIDApLEZKKHRoaXMsImNvbW1hbmRzIix7fSksRkoodGhpcywiY29tbW9uQ2FsbGJhY2si'@; put 'LG51bGwpLHRoaXMuaG90PWx9cmVnaXN0ZXJDb21tYW5kKGwsYSl7dGhpcy5jb21tYW5kc1tsXT1hfXNldENvbW1vbkNhbGxiYWNrKGwpe3RoaXMuY29tbW9uQ2FsbGJhY2s9bH1leGVjdXRlKGwpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFycmF5KGE+MT9hLTE6MCksaD0x'@; put 'O2g8YTtoKyspZFtoLTFdPWFyZ3VtZW50c1toXTtjb25zdCBmPWwuc3BsaXQoIjoiKSx2PWZbMF0sTT0yPT09Zi5sZW5ndGg/ZlsxXTpudWxsO2xldCBJPXRoaXMuY29tbWFuZHNbdl07aWYoIUkpdGhyb3cgbmV3IEVycm9yKGBNZW51IGNvbW1hbmQgJyR7dn0nIG5vdCBleGlzdHMuYCk7aWYo'@; put 'TSYmSS5zdWJtZW51JiYoST1mdW5jdGlvbiBCdXQoYyxsKXtsZXQgYTtyZXR1cm4gS24obCxkPT57Y29uc3QgaD1kLmtleT9kLmtleS5zcGxpdCgiOiIpOm51bGw7aWYoQXJyYXkuaXNBcnJheShoKSYmaFsxXT09PWMpcmV0dXJuIGE9ZCwhMX0pLGF9KE0sSS5zdWJtZW51Lml0ZW1zKSksITA9'@; put 'PT1JLmRpc2FibGVkfHwiZnVuY3Rpb24iPT10eXBlb2YgSS5kaXNhYmxlZCYmITA9PT1JLmRpc2FibGVkLmNhbGwodGhpcy5ob3QpfHxDdShJLCJzdWJtZW51IikpcmV0dXJuO2NvbnN0IEc9W107ImZ1bmN0aW9uIj09dHlwZW9mIEkuY2FsbGJhY2smJkcucHVzaChJLmNhbGxiYWNrKSwiZnVu'@; put 'Y3Rpb24iPT10eXBlb2YgdGhpcy5jb21tb25DYWxsYmFjayYmRy5wdXNoKHRoaXMuY29tbW9uQ2FsbGJhY2spLGQudW5zaGlmdChmLmpvaW4oIjoiKSksS24oRyxyZT0+cmUuYXBwbHkodGhpcy5ob3QsZCkpfX1jb25zdCBlZj0iYWxpZ25tZW50Iix4Rj0iY2xlYXJfY29sdW1uIixNVD0iY29s'@; put 'X2xlZnQiLHhUPSJjb2xfcmlnaHQiLEVUPSJtYWtlX3JlYWRfb25seSIsRUY9InJlZG8iLFRUPSJyZW1vdmVfY29sIixURj0icmVtb3ZlX3JvdyIsQUY9InJvd19hYm92ZSIsa0Y9InJvd19iZWxvdyIsQVQ9Im5vX2l0ZW1zIixERj0idW5kbyIsRGdlPVtBRixrRixNVCx4VCx4RixURixUVCxE'@; put 'RixFRixFVCxlZixpbyxBVF0sSWdlPXtbaW9dOmZ1bmN0aW9uIG11dCgpe3JldHVybntuYW1lOmlvfX0sW0FUXTpmdW5jdGlvbiBxdXQoKXtyZXR1cm57a2V5OkFULG5hbWUoKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKEdLKX0sZGlzYWJsZWQ6ITAsaXNDb21tYW5kOiExfX0s'@; put 'W0FGXTpmdW5jdGlvbiBLdXQoKXtyZXR1cm57a2V5OkFGLG5hbWUoKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKCRLKX0sY2FsbGJhY2soKXtjb25zdCBjPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKS5nZXRUb3BMZWZ0Q29ybmVyKCk7dGhpcy5hbHRlcigiaW5zZXJ0X3Jv'@; put 'd19hYm92ZSIsYy5yb3csMSwiQ29udGV4dE1lbnUucm93QWJvdmUiKX0sZGlzYWJsZWQoKXtjb25zdCBjPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtyZXR1cm4hISghY3x8dGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCl8fGMuaXNTaW5nbGVIZWFkZXIoKSYm'@; put 'Yy5oaWdobGlnaHQucm93PDB8fHRoaXMuY291bnRTb3VyY2VSb3dzKCk+PXRoaXMuZ2V0U2V0dGluZ3MoKS5tYXhSb3dzKXx8ISF0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKSYmMD09PXRoaXMuY291bnRSb3dzKCl9LGhpZGRlbigpe3JldHVybiF0aGlzLmdldFNldHRpbmdz'@; put 'KCkuYWxsb3dJbnNlcnRSb3d9fX0sW2tGXTpmdW5jdGlvbiBYdXQoKXtyZXR1cm57a2V5OmtGLG5hbWUoKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKEtLKX0sY2FsbGJhY2soKXtjb25zdCBjPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKS5nZXRCb3R0b21SaWdodENvcm5l'@; put 'cigpO3RoaXMuYWx0ZXIoImluc2VydF9yb3dfYmVsb3ciLGMucm93LDEsIkNvbnRleHRNZW51LnJvd0JlbG93Iil9LGRpc2FibGVkKCl7Y29uc3QgYz10aGlzLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7cmV0dXJuISEoIWN8fHRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRl'@; put 'cigpfHxjLmlzU2luZ2xlSGVhZGVyKCkmJmMuaGlnaGxpZ2h0LnJvdzwwfHx0aGlzLmNvdW50U291cmNlUm93cygpPj10aGlzLmdldFNldHRpbmdzKCkubWF4Um93cyl9LGhpZGRlbigpe3JldHVybiF0aGlzLmdldFNldHRpbmdzKCkuYWxsb3dJbnNlcnRSb3d9fX0sW01UXTpmdW5jdGlvbiBV'@; put 'dXQoKXtyZXR1cm57a2V5Ok1ULG5hbWUoKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKFhLKX0sY2FsbGJhY2soKXtjb25zdCBjPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKS5nZXRUb3BMZWZ0Q29ybmVyKCksbD10aGlzLmlzUnRsKCk/Imluc2VydF9jb2xfZW5kIjoiaW5z'@; put 'ZXJ0X2NvbF9zdGFydCI7dGhpcy5hbHRlcihsLGMuY29sLDEsIkNvbnRleHRNZW51LmNvbHVtbkxlZnQiKX0sZGlzYWJsZWQoKXtpZighdGhpcy5pc0NvbHVtbk1vZGlmaWNhdGlvbkFsbG93ZWQoKSlyZXR1cm4hMDtjb25zdCBjPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtyZXR1cm4h'@; put 'ISghY3x8dGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCl8fGMuaXNTaW5nbGVIZWFkZXIoKSYmYy5oaWdobGlnaHQuY29sPDB8fHRoaXMuY291bnRTb3VyY2VDb2xzKCk+PXRoaXMuZ2V0U2V0dGluZ3MoKS5tYXhDb2xzKXx8ISF0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVk'@; put 'QnlDb3JuZXIoKSYmMD09PXRoaXMuY291bnRDb2xzKCl9LGhpZGRlbigpe3JldHVybiF0aGlzLmdldFNldHRpbmdzKCkuYWxsb3dJbnNlcnRDb2x1bW59fX0sW3hUXTpmdW5jdGlvbiBadXQoKXtyZXR1cm57a2V5OnhULG5hbWUoKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKHFL'@; put 'KX0sY2FsbGJhY2soKXtjb25zdCBjPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKS5nZXRUb3BSaWdodENvcm5lcigpLGw9dGhpcy5pc1J0bCgpPyJpbnNlcnRfY29sX3N0YXJ0IjoiaW5zZXJ0X2NvbF9lbmQiO3RoaXMuYWx0ZXIobCxjLmNvbCwxLCJDb250ZXh0TWVudS5jb2x1bW5SaWdo'@; put 'dCIpfSxkaXNhYmxlZCgpe2lmKCF0aGlzLmlzQ29sdW1uTW9kaWZpY2F0aW9uQWxsb3dlZCgpKXJldHVybiEwO2NvbnN0IGM9dGhpcy5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpO3JldHVybiEhKCFjfHx0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlSb3dIZWFkZXIoKXx8Yy5pc1NpbmdsZUhl'@; put 'YWRlcigpJiZjLmhpZ2hsaWdodC5jb2w8MHx8dGhpcy5jb3VudFNvdXJjZUNvbHMoKT49dGhpcy5nZXRTZXR0aW5ncygpLm1heENvbHMpfSxoaWRkZW4oKXtyZXR1cm4hdGhpcy5nZXRTZXR0aW5ncygpLmFsbG93SW5zZXJ0Q29sdW1ufX19LFt4Rl06ZnVuY3Rpb24genV0KCl7cmV0dXJue2tl'@; put 'eTp4RixuYW1lKCl7cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShuWCl9LGNhbGxiYWNrKGMsbCl7Y29uc3QgYT1sWzBdLnN0YXJ0LmNvbCxkPWxbMF0uZW5kLmNvbDt0aGlzLmNvdW50Um93cygpJiZ0aGlzLnBvcHVsYXRlRnJvbUFycmF5KDAsYSxbW251bGxdXSxNYXRoLm1heChs'@; put 'WzBdLnN0YXJ0LnJvdyxsWzBdLmVuZC5yb3cpLGQsIkNvbnRleHRNZW51LmNsZWFyQ29sdW1uIil9LGRpc2FibGVkKCl7Y29uc3QgYz10aGlzLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7aWYoIWN8fGMuaXNTaW5nbGVIZWFkZXIoKSYmYy5oaWdobGlnaHQuY29sPDB8fCF0aGlzLnNlbGVjdGlv'@; put 'bi5pc1NlbGVjdGVkQnlDb2x1bW5IZWFkZXIoKSlyZXR1cm4hMDtsZXQgbD0hMTtyZXR1cm4gYy5mb3JBbGwoKGEsZCk9PntpZihhPDB8fGQ8MClyZXR1cm4hMDtjb25zdHtyZWFkT25seTpofT10aGlzLmdldENlbGxNZXRhKGEsZCk7cmV0dXJuISFofHwobD0hMCwhMSl9KSwhbH19fSxbVEZd'@; put 'OmZ1bmN0aW9uICR1dCgpe3JldHVybntrZXk6VEYsbmFtZSgpe2NvbnN0IGM9dGhpcy5nZXRTZWxlY3RlZCgpO2xldCBsPTA7aWYoYylpZihjLmxlbmd0aD4xKWw9MTtlbHNle2NvbnN0W2EsLGRdPWNbMF07YS1kIT0wJiYobD0xKX1yZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKEpL'@; put 'LGwpfSxjYWxsYmFjaygpe3RoaXMuYWx0ZXIoInJlbW92ZV9yb3ciLGZ1bmN0aW9uIHRydChjKXtjb25zdCBsPXhfKGMuZ2V0U2VsZWN0ZWQoKSk7aWYoMD09PWx8fDE9PT1sKXJldHVybltdO2NvbnN0IGE9ZVQobCx7Y3JlYXRlQ2VsbENvb3JkczpjLl9jcmVhdGVDZWxsQ29vcmRzLmJpbmQo'@; put 'YyksY3JlYXRlQ2VsbFJhbmdlOmMuX2NyZWF0ZUNlbGxSYW5nZS5iaW5kKGMpfSksZD1uZXcgU2V0O3JldHVybiBLbihjLmdldFNlbGVjdGVkKCksdj0+e2NvbnN0e2Zyb206TSx0bzpJfT1hKHYpLEc9TWF0aC5tYXgoTS5yb3csMCk7S24oQXJyYXkuZnJvbShuZXcgQXJyYXkoSS5yb3ctRysx'@; put 'KSwodWUseWUpPT5HK3llKSx1ZT0+e2QuaGFzKHVlKXx8ZC5hZGQodWUpfSl9KSxHdShBcnJheS5mcm9tKGQpLnNvcnQoKHYsTSk9PnYtTSksKHYsTSxJLEcpPT4oMCE9PUkmJk09PT1HW0ktMV0rMT92W3YubGVuZ3RoLTFdWzFdKz0xOnYucHVzaChbTSwxXSksdiksW10pfSh0aGlzKSwxLCJD'@; put 'b250ZXh0TWVudS5yZW1vdmVSb3ciKX0sZGlzYWJsZWQoKXtjb25zdCBjPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtpZighY3x8Yy5pc1NpbmdsZUhlYWRlcigpJiZjLmhpZ2hsaWdodC5yb3c8MClyZXR1cm4hMDtjb25zdCBsPXRoaXMuY291bnRSb3dzKCk7cmV0dXJuIHRoaXMuc2Vs'@; put 'ZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5lcigpPzA9PT1sOnRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigpfHwwPT09bH0saGlkZGVuKCl7cmV0dXJuIXRoaXMuZ2V0U2V0dGluZ3MoKS5hbGxvd1JlbW92ZVJvd319fSxbVFRdOmZ1bmN0aW9uIEd1dCgpe3JldHVybntr'@; put 'ZXk6VFQsbmFtZSgpe2NvbnN0IGM9dGhpcy5nZXRTZWxlY3RlZCgpO2xldCBsPTA7aWYoYylpZihjLmxlbmd0aD4xKWw9MTtlbHNle2NvbnN0WyxhLCxkXT1jWzBdO2EtZCE9MCYmKGw9MSl9cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShRSyxsKX0sY2FsbGJhY2soKXt0aGlzLmFs'@; put 'dGVyKCJyZW1vdmVfY29sIixmdW5jdGlvbiBlcnQoYyl7Y29uc3QgbD14XyhjLmdldFNlbGVjdGVkKCkpO2lmKDA9PT1sfHwxPT09bClyZXR1cm5bXTtjb25zdCBhPWVUKGwse2NyZWF0ZUNlbGxDb29yZHM6Yy5fY3JlYXRlQ2VsbENvb3Jkcy5iaW5kKGMpLGNyZWF0ZUNlbGxSYW5nZTpjLl9j'@; put 'cmVhdGVDZWxsUmFuZ2UuYmluZChjKX0pLGQ9bmV3IFNldDtyZXR1cm4gS24oYy5nZXRTZWxlY3RlZCgpLHY9Pntjb25zdHtmcm9tOk0sdG86SX09YSh2KSxHPU1hdGgubWF4KE0uY29sLDApO0tuKEFycmF5LmZyb20obmV3IEFycmF5KEkuY29sLUcrMSksKHVlLHllKT0+Ryt5ZSksdWU9Pntk'@; put 'Lmhhcyh1ZSl8fGQuYWRkKHVlKX0pfSksR3UoQXJyYXkuZnJvbShkKS5zb3J0KCh2LE0pPT52LU0pLCh2LE0sSSxHKT0+KDAhPT1JJiZNPT09R1tJLTFdKzE/dlt2Lmxlbmd0aC0xXVsxXSs9MTp2LnB1c2goW00sMV0pLHYpLFtdKX0odGhpcyksbnVsbCwiQ29udGV4dE1lbnUucmVtb3ZlQ29s'@; put 'dW1uIil9LGRpc2FibGVkKCl7aWYoIXRoaXMuaXNDb2x1bW5Nb2RpZmljYXRpb25BbGxvd2VkKCkpcmV0dXJuITA7Y29uc3QgYz10aGlzLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7aWYoIWN8fGMuaXNTaW5nbGVIZWFkZXIoKSYmYy5oaWdobGlnaHQuY29sPDApcmV0dXJuITA7Y29uc3QgbD10'@; put 'aGlzLmNvdW50Q29scygpO3JldHVybiB0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKT8wPT09bDp0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlSb3dIZWFkZXIoKXx8MD09PWx9LGhpZGRlbigpe3JldHVybiF0aGlzLmdldFNldHRpbmdzKCkuYWxsb3dSZW1vdmVDb2x1bW59'@; put 'fX0sW0RGXTpmdW5jdGlvbiBKdXQoKXtyZXR1cm57a2V5OkRGLG5hbWUoKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKGVYKX0sY2FsbGJhY2soKXt0aGlzLmdldFBsdWdpbigidW5kb1JlZG8iKS51bmRvKCl9LGhpZGRlbigpe2NvbnN0IGM9dGhpcy5nZXRQbHVnaW4oInVuZG9S'@; put 'ZWRvIik7cmV0dXJuIWN8fCFjLmlzRW5hYmxlZCgpfSxkaXNhYmxlZCgpe3JldHVybiF0aGlzLmdldFBsdWdpbigidW5kb1JlZG8iKS5pc1VuZG9BdmFpbGFibGUoKX19fSxbRUZdOmZ1bmN0aW9uIFl1dCgpe3JldHVybntrZXk6RUYsbmFtZSgpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQ'@; put 'aHJhc2UodFgpfSxjYWxsYmFjaygpe3RoaXMuZ2V0UGx1Z2luKCJ1bmRvUmVkbyIpLnJlZG8oKX0saGlkZGVuKCl7Y29uc3QgYz10aGlzLmdldFBsdWdpbigidW5kb1JlZG8iKTtyZXR1cm4hY3x8IWMuaXNFbmFibGVkKCl9LGRpc2FibGVkKCl7cmV0dXJuIXRoaXMuZ2V0UGx1Z2luKCJ1bmRv'@; put 'UmVkbyIpLmlzUmVkb0F2YWlsYWJsZSgpfX19LFtFVF06ZnVuY3Rpb24gV3V0KCl7cmV0dXJue2tleTpFVCxjaGVja2FibGU6ITAsYXJpYUNoZWNrZWQoKXtyZXR1cm4geUYodGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksKGwsYSk9PnRoaXMuZ2V0Q2VsbE1ldGEobCxhKS5yZWFkT25seSl9LGFy'@; put 'aWFMYWJlbCgpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoTVApfSxuYW1lKCl7bGV0IGM9dGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKE1QKTtyZXR1cm4geUYodGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksKGEsZCk9PnRoaXMuZ2V0Q2VsbE1ldGEoYSxkKS5yZWFkT25seSkmJihj'@; put 'PXhnZShjKSksY30sY2FsbGJhY2soKXtjb25zdCBjPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpLGw9eUYoYywoYSxkKT0+dGhpcy5nZXRDZWxsTWV0YShhLGQpLnJlYWRPbmx5KTtLbihjLGE9PnthLmZvckFsbCgoZCxoKT0+e2Q+PTAmJmg+PTAmJnRoaXMuc2V0Q2VsbE1ldGEoZCxoLCJyZWFk'@; put 'T25seSIsIWwpfSl9KSx0aGlzLnJlbmRlcigpfSxkaXNhYmxlZCgpe2NvbnN0IGM9dGhpcy5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpO3JldHVybiEoYyYmIWMuaXNTaW5nbGVIZWFkZXIoKSYmIXRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5lcigpJiYwIT09dGhpcy5jb3VudFJvd3Mo'@; put 'KSYmMCE9PXRoaXMuY291bnRDb2xzKCkmJnRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpJiYwIT09dGhpcy5nZXRTZWxlY3RlZFJhbmdlKCkubGVuZ3RoKX19fSxbZWZdOmZ1bmN0aW9uIGp1dCgpe3JldHVybntrZXk6ZWYsbmFtZSgpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UobVgp'@; put 'fSxkaXNhYmxlZCgpe2lmKDA9PT10aGlzLmNvdW50Um93cygpfHwwPT09dGhpcy5jb3VudENvbHMoKSlyZXR1cm4hMDtjb25zdCBjPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtyZXR1cm4hKGMmJiFjLmlzU2luZ2xlSGVhZGVyKCkmJnRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpJiYhdGhp'@; put 'cy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29ybmVyKCkpfSxzdWJtZW51OntpdGVtczpbe2tleTpgJHtlZn06bGVmdGAsbmFtZSgpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UodlgpfSxjYWxsYmFjaygpe2NvbnN0IGM9dGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksbD12OShjLCho'@; put 'LGYpPT50aGlzLmdldENlbGxNZXRhKGgsZikuY2xhc3NOYW1lKSxhPSJob3Jpem9udGFsIixkPSJodExlZnQiO3RoaXMucnVuSG9va3MoImJlZm9yZUNlbGxBbGlnbm1lbnQiLGwsYyxhLGQpLFhtKGMsYSxkLChoLGYpPT50aGlzLmdldENlbGxNZXRhKGgsZiksKGgsZix2LE0pPT50aGlzLnNl'@; put 'dENlbGxNZXRhKGgsZix2LE0pKSx0aGlzLnJlbmRlcigpfSxkaXNhYmxlZDohMX0se2tleTpgJHtlZn06Y2VudGVyYCxuYW1lKCl7cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZSh5WCl9LGNhbGxiYWNrKCl7Y29uc3QgYz10aGlzLmdldFNlbGVjdGVkUmFuZ2UoKSxsPXY5KGMsKGgs'@; put 'Zik9PnRoaXMuZ2V0Q2VsbE1ldGEoaCxmKS5jbGFzc05hbWUpLGE9Imhvcml6b250YWwiLGQ9Imh0Q2VudGVyIjt0aGlzLnJ1bkhvb2tzKCJiZWZvcmVDZWxsQWxpZ25tZW50IixsLGMsYSxkKSxYbShjLGEsZCwoaCxmKT0+dGhpcy5nZXRDZWxsTWV0YShoLGYpLChoLGYsdixNKT0+dGhpcy5z'@; put 'ZXRDZWxsTWV0YShoLGYsdixNKSksdGhpcy5yZW5kZXIoKX0sZGlzYWJsZWQ6ITF9LHtrZXk6YCR7ZWZ9OnJpZ2h0YCxuYW1lKCl7cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShiWCl9LGNhbGxiYWNrKCl7Y29uc3QgYz10aGlzLmdldFNlbGVjdGVkUmFuZ2UoKSxsPXY5KGMsKGgs'@; put 'Zik9PnRoaXMuZ2V0Q2VsbE1ldGEoaCxmKS5jbGFzc05hbWUpLGE9Imhvcml6b250YWwiLGQ9Imh0UmlnaHQiO3RoaXMucnVuSG9va3MoImJlZm9yZUNlbGxBbGlnbm1lbnQiLGwsYyxhLGQpLFhtKGMsYSxkLChoLGYpPT50aGlzLmdldENlbGxNZXRhKGgsZiksKGgsZix2LE0pPT50aGlzLnNl'@; put 'dENlbGxNZXRhKGgsZix2LE0pKSx0aGlzLnJlbmRlcigpfSxkaXNhYmxlZDohMX0se2tleTpgJHtlZn06anVzdGlmeWAsbmFtZSgpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoX1gpfSxjYWxsYmFjaygpe2NvbnN0IGM9dGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksbD12OShjLCho'@; put 'LGYpPT50aGlzLmdldENlbGxNZXRhKGgsZikuY2xhc3NOYW1lKSxhPSJob3Jpem9udGFsIixkPSJodEp1c3RpZnkiO3RoaXMucnVuSG9va3MoImJlZm9yZUNlbGxBbGlnbm1lbnQiLGwsYyxhLGQpLFhtKGMsYSxkLChoLGYpPT50aGlzLmdldENlbGxNZXRhKGgsZiksKGgsZix2LE0pPT50aGlz'@; put 'LnNldENlbGxNZXRhKGgsZix2LE0pKSx0aGlzLnJlbmRlcigpfSxkaXNhYmxlZDohMX0se25hbWU6aW99LHtrZXk6YCR7ZWZ9OnRvcGAsbmFtZSgpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2Uod1gpfSxjYWxsYmFjaygpe2NvbnN0IGM9dGhpcy5nZXRTZWxlY3RlZFJhbmdlKCks'@; put 'bD12OShjLChoLGYpPT50aGlzLmdldENlbGxNZXRhKGgsZikuY2xhc3NOYW1lKSxhPSJ2ZXJ0aWNhbCIsZD0iaHRUb3AiO3RoaXMucnVuSG9va3MoImJlZm9yZUNlbGxBbGlnbm1lbnQiLGwsYyxhLGQpLFhtKGMsYSxkLChoLGYpPT50aGlzLmdldENlbGxNZXRhKGgsZiksKGgsZix2LE0pPT50'@; put 'aGlzLnNldENlbGxNZXRhKGgsZix2LE0pKSx0aGlzLnJlbmRlcigpfSxkaXNhYmxlZDohMX0se2tleTpgJHtlZn06bWlkZGxlYCxuYW1lKCl7cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShDWCl9LGNhbGxiYWNrKCl7Y29uc3QgYz10aGlzLmdldFNlbGVjdGVkUmFuZ2UoKSxsPXY5'@; put 'KGMsKGgsZik9PnRoaXMuZ2V0Q2VsbE1ldGEoaCxmKS5jbGFzc05hbWUpLGE9InZlcnRpY2FsIixkPSJodE1pZGRsZSI7dGhpcy5ydW5Ib29rcygiYmVmb3JlQ2VsbEFsaWdubWVudCIsbCxjLGEsZCksWG0oYyxhLGQsKGgsZik9PnRoaXMuZ2V0Q2VsbE1ldGEoaCxmKSwoaCxmLHYsTSk9PnRo'@; put 'aXMuc2V0Q2VsbE1ldGEoaCxmLHYsTSkpLHRoaXMucmVuZGVyKCl9LGRpc2FibGVkOiExfSx7a2V5OmAke2VmfTpib3R0b21gLG5hbWUoKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKFNYKX0sY2FsbGJhY2soKXtjb25zdCBjPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpLGw9djko'@; put 'YywoaCxmKT0+dGhpcy5nZXRDZWxsTWV0YShoLGYpLmNsYXNzTmFtZSksYT0idmVydGljYWwiLGQ9Imh0Qm90dG9tIjt0aGlzLnJ1bkhvb2tzKCJiZWZvcmVDZWxsQWxpZ25tZW50IixsLGMsYSxkKSxYbShjLGEsZCwoaCxmKT0+dGhpcy5nZXRDZWxsTWV0YShoLGYpLChoLGYsdixNKT0+dGhp'@; put 'cy5zZXRDZWxsTWV0YShoLGYsdixNKSksdGhpcy5yZW5kZXIoKX0sZGlzYWJsZWQ6ITF9XX19fX07ZnVuY3Rpb24gUmdlKCl7Y29uc3QgYz17fTtyZXR1cm4gcXMoSWdlLChsLGEpPT57Y1thXT1sKCl9KSxjfWZ1bmN0aW9uIEhKKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBRdXQoYyl7dmFy'@; put 'IGw9ZnVuY3Rpb24gZTB0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cg'@; put 'bmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZp'@; put 'bmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31jbGFzcyBMZ2V7Y29uc3RydWN0b3IobCl7bGV0IGE9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm51'@; put 'bGw7SEoodGhpcywiaG90Iix2b2lkIDApLEhKKHRoaXMsInByZWRlZmluZWRJdGVtcyIsUmdlKCkpLEhKKHRoaXMsImRlZmF1bHRPcmRlclBhdHRlcm4iLHZvaWQgMCksdGhpcy5ob3Q9bCx0aGlzLmRlZmF1bHRPcmRlclBhdHRlcm49YX1zZXRQcmVkZWZpbmVkSXRlbXMobCl7Y29uc3QgYT17'@; put 'fTt0aGlzLmRlZmF1bHRPcmRlclBhdHRlcm4ubGVuZ3RoPTAscXMobCwoZCxoKT0+e2xldCBmPSIiO2QubmFtZT09PWlvPyhhW2lvXT1kLGY9aW8pOmlzTmFOKHBhcnNlSW50KGgsMTApKT8oZC5rZXk9dm9pZCAwPT09ZC5rZXk/aDpkLmtleSxhW2hdPWQsZj1kLmtleSk6KGFbZC5rZXldPWQs'@; put 'Zj1kLmtleSksdGhpcy5kZWZhdWx0T3JkZXJQYXR0ZXJuLnB1c2goZil9KSx0aGlzLnByZWRlZmluZWRJdGVtcz1hfWdldEl0ZW1zKCl7cmV0dXJuIGZ1bmN0aW9uIHQwdCgpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpbXSxh'@; put 'PWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fTtjb25zdCBkPVtdO2xldCBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpudWxsO3JldHVybiBoJiZoLml0ZW1zP2g9aC5pdGVtczpB'@; put 'cnJheS5pc0FycmF5KGgpfHwoaD1sKSxYcyhoKT9xcyhoLChmLHYpPT57bGV0IE09YVsic3RyaW5nIj09dHlwZW9mIGY/Zjp2XTtNfHwoTT1mKSxYcyhmKT93dShNLGYpOiJzdHJpbmciPT10eXBlb2YgTSYmKE09e25hbWU6TX0pLHZvaWQgMD09PU0ua2V5JiYoTS5rZXk9diksZC5wdXNoKE0p'@; put 'fSk6S24oaCwoZix2KT0+e2xldCBNPWFbZl07IU0mJkRnZS5pbmRleE9mKGYpPj0wfHwoTXx8KE09e25hbWU6ZixrZXk6YCR7dn1gfSksWHMoZikmJnd1KE0sZiksdm9pZCAwPT09TS5rZXkmJihNLmtleT12KSxkLnB1c2goTSkpfSksZH0oYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1h'@; put 'cmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOm51bGwsdGhpcy5kZWZhdWx0T3JkZXJQYXR0ZXJuLHRoaXMucHJlZGVmaW5lZEl0ZW1zKX19ZnVuY3Rpb24gSm0oYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIG4wdChjKXt2YXIgbD1mdW5jdGlvbiByMHQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9m'@; put 'IGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJu'@; put 'IGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNv'@; put 'bmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWNsYXNzIGkwdHtjb25zdHJ1Y3RvcihsLGEpe0ptKHRoaXMsInRvcCIsdm9pZCAwKSxKbSh0aGlzLCJ0b3BSZWxhdGl2ZSIsdm9pZCAwKSxKbSh0aGlzLCJsZWZ0Iix2b2lkIDApLEptKHRoaXMsImxlZnRSZWxhdGl2ZSIsdm9p'@; put 'ZCAwKSxKbSh0aGlzLCJzY3JvbGxUb3AiLHZvaWQgMCksSm0odGhpcywic2Nyb2xsTGVmdCIsdm9pZCAwKSxKbSh0aGlzLCJjZWxsSGVpZ2h0Iix2b2lkIDApLEptKHRoaXMsImNlbGxXaWR0aCIsdm9pZCAwKTtjb25zdCBkPWEuc2Nyb2xsWSxoPWEuc2Nyb2xsWDtsZXQgZix2LE0sSSxHLHJl'@; put 'O3RoaXMucm9vdFdpbmRvdz1hLHRoaXMudHlwZT10aGlzLmdldFNvdXJjZVR5cGUobCksImxpdGVyYWwiPT09dGhpcy50eXBlPyhmPXBhcnNlSW50KGwudG9wLDEwKSxNPXBhcnNlSW50KGwubGVmdCwxMCksRz1sLmhlaWdodHx8MCxyZT1sLndpZHRofHwwLHY9ZixJPU0sZis9ZCxNKz1oKToi'@; put 'ZXZlbnQiPT09dGhpcy50eXBlJiYoZj1wYXJzZUludChsLnBhZ2VZLDEwKSxNPXBhcnNlSW50KGwucGFnZVgsMTApLEc9bC50YXJnZXQuY2xpZW50SGVpZ2h0LHJlPWwudGFyZ2V0LmNsaWVudFdpZHRoLHY9Zi1kLEk9TS1oKSx0aGlzLnRvcD1mLHRoaXMudG9wUmVsYXRpdmU9dix0aGlzLmxl'@; put 'ZnQ9TSx0aGlzLmxlZnRSZWxhdGl2ZT1JLHRoaXMuc2Nyb2xsVG9wPWQsdGhpcy5zY3JvbGxMZWZ0PWgsdGhpcy5jZWxsSGVpZ2h0PUcsdGhpcy5jZWxsV2lkdGg9cmV9Z2V0U291cmNlVHlwZShsKXtsZXQgYT0ibGl0ZXJhbCI7cmV0dXJuIGwgaW5zdGFuY2VvZiBFdmVudCYmKGE9ImV2ZW50'@; put 'IiksYX1maXRzQWJvdmUobCl7cmV0dXJuIHRoaXMudG9wUmVsYXRpdmU+PWwub2Zmc2V0SGVpZ2h0fWZpdHNCZWxvdyhsKXtyZXR1cm4gdGhpcy50b3BSZWxhdGl2ZStsLm9mZnNldEhlaWdodDw9KGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sx'@; put 'XTp0aGlzLnJvb3RXaW5kb3cuaW5uZXJIZWlnaHQpfWZpdHNPblJpZ2h0KGwpe3JldHVybiB0aGlzLmxlZnRSZWxhdGl2ZSt0aGlzLmNlbGxXaWR0aCtsLm9mZnNldFdpZHRoPD0oYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnRoaXMucm9v'@; put 'dFdpbmRvdy5pbm5lcldpZHRoKX1maXRzT25MZWZ0KGwpe3JldHVybiB0aGlzLmxlZnRSZWxhdGl2ZT49bC5vZmZzZXRXaWR0aH19ZnVuY3Rpb24ga1QoYyxsLGEpeyhmdW5jdGlvbiBhMHQoYyxsKXtpZihsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0'@; put 'aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfSkoYyxsKSxsLnNldChjLGEpfWZ1bmN0aW9uIFVzKGMsbCl7cmV0dXJuIGMuZ2V0KE9nZShjLGwpKX1mdW5jdGlvbiBJRihjLGwsYSl7cmV0dXJuIGMuc2V0KE9nZShjLGwpLGEpLGF9ZnVuY3Rpb24gT2dlKGMs'@; put 'bCxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhsKSlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzP2w6YTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGVsZW1lbnQgaXMgbm90IHByZXNlbnQgb24gdGhpcyBvYmplY3QiKX12YXIgUTE9bmV3IFdlYWtNYXAsVWQ9'@; put 'bmV3IFdlYWtNYXAsWmQ9bmV3IFdlYWtNYXAsTko9bmV3IFdlYWtNYXAsWF89bmV3IFdlYWtNYXA7Y2xhc3MgczB0e2NvbnN0cnVjdG9yKGwpe2tUKHRoaXMsUTEsdm9pZCAwKSxrVCh0aGlzLFVkLHZvaWQgMCksa1QodGhpcyxaZCx2b2lkIDApLGtUKHRoaXMsTkosITEpLGtUKHRoaXMsWF8s'@; put 'e2Fib3ZlOjAsYmVsb3c6MCxsZWZ0OjAscmlnaHQ6MH0pLElGKE5KLHRoaXMsbCl9c2V0T2Zmc2V0KGwpe2xldCBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3JldHVybiBVcyhYXyx0aGlzKVtsXT1hLHRoaXN9c2V0RWxlbWVudChs'@; put 'KXtyZXR1cm4gSUYoUTEsdGhpcyxsKSx0aGlzfXNldFBhcmVudEVsZW1lbnQobCl7cmV0dXJuIElGKFVkLHRoaXMsbCksdGhpc311cGRhdGVQb3NpdGlvbihsKXtJRihaZCx0aGlzLG5ldyBpMHQobCxVcyhRMSx0aGlzKS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3KSksVXMoTkosdGhpcyk/'@; put 'KFVzKFpkLHRoaXMpLmZpdHNCZWxvdyhVcyhRMSx0aGlzKSk/dGhpcy5zZXRQb3NpdGlvbkJlbG93Q3Vyc29yKCk6VXMoWmQsdGhpcykuZml0c0Fib3ZlKFVzKFExLHRoaXMpKT90aGlzLnNldFBvc2l0aW9uQWJvdmVDdXJzb3IoKTp0aGlzLnNldFBvc2l0aW9uQmVsb3dDdXJzb3IoKSx0aGlz'@; put 'LnVwZGF0ZUhvcml6b250YWxQb3NpdGlvbigpKToodGhpcy5zZXRQb3NpdGlvbkJlbG93Q3Vyc29yKCksdGhpcy5zZXRQb3NpdGlvbk9uUmlnaHRPZkN1cnNvcigpKX11cGRhdGVIb3Jpem9udGFsUG9zaXRpb24oKXsicnRsIj09PVVzKFExLHRoaXMpLmRpcj9VcyhaZCx0aGlzKS5maXRzT25M'@; put 'ZWZ0KFVzKFExLHRoaXMpKT90aGlzLnNldFBvc2l0aW9uT25MZWZ0T2ZDdXJzb3IoKTp0aGlzLnNldFBvc2l0aW9uT25SaWdodE9mQ3Vyc29yKCk6VXMoWmQsdGhpcykuZml0c09uUmlnaHQoVXMoUTEsdGhpcykpP3RoaXMuc2V0UG9zaXRpb25PblJpZ2h0T2ZDdXJzb3IoKTp0aGlzLnNldFBv'@; put 'c2l0aW9uT25MZWZ0T2ZDdXJzb3IoKX1zZXRQb3NpdGlvbkFib3ZlQ3Vyc29yKCl7bGV0IGw9VXMoWF8sdGhpcykuYWJvdmUrVXMoWmQsdGhpcykudG9wLVVzKFExLHRoaXMpLm9mZnNldEhlaWdodDtpZihVcyhVZCx0aGlzKSl7Y29uc3QgZD1VcyhVZCx0aGlzKS5vd25lckRvY3VtZW50LmRl'@; put 'ZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoVXMoVWQsdGhpcykucXVlcnlTZWxlY3RvcigiLmh0X21hc3RlciIpKSxoPU51bWJlci5wYXJzZUludChkLnBhZGRpbmdUb3AsMTApLGY9TnVtYmVyLnBhcnNlSW50KGQuYm9yZGVyVG9wLDEwKTtsPVVzKFpkLHRoaXMpLnRvcCtVcyhaZCx0aGlz'@; put 'KS5jZWxsSGVpZ2h0LVVzKFExLHRoaXMpLnNjcm9sbEhlaWdodCtoK2Z9VXMoUTEsdGhpcykuc3R5bGUudG9wPWAke2x9cHhgfXNldFBvc2l0aW9uQmVsb3dDdXJzb3IoKXtsZXQgbD1VcyhYXyx0aGlzKS5iZWxvdytVcyhaZCx0aGlzKS50b3ArMTtpZihVcyhVZCx0aGlzKSl7Y29uc3QgZD1V'@; put 'cyhVZCx0aGlzKS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoVXMoVWQsdGhpcykucXVlcnlTZWxlY3RvcigiLmh0X21hc3RlciIpKSxoPU51bWJlci5wYXJzZUludChkLnBhZGRpbmdUb3AsMTApLGY9TnVtYmVyLnBhcnNlSW50KGQuYm9yZGVyVG9wLDEwKTts'@; put 'PVVzKFpkLHRoaXMpLnRvcC1oLWYtMX1VcyhRMSx0aGlzKS5zdHlsZS50b3A9YCR7bH1weGB9c2V0UG9zaXRpb25PblJpZ2h0T2ZDdXJzb3IoKXtsZXQgbD1VcyhaZCx0aGlzKS5sZWZ0O2lmKFVzKFVkLHRoaXMpKXtjb25zdCBhPVVzKFVkLHRoaXMpLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZp'@; put 'ZXcsZD1OdW1iZXIucGFyc2VJbnQoYS5nZXRDb21wdXRlZFN0eWxlKFVzKFVkLHRoaXMpLnF1ZXJ5U2VsZWN0b3IoIi5odENvcmUiKSkuYm9yZGVyUmlnaHRXaWR0aCwxMCk7bCs9VXMoWmQsdGhpcykuY2VsbFdpZHRoK2R9ZWxzZSBsKz1VcyhYXyx0aGlzKS5yaWdodDtVcyhRMSx0aGlzKS5z'@; put 'dHlsZS5sZWZ0PWAke2x9cHhgfXNldFBvc2l0aW9uT25MZWZ0T2ZDdXJzb3IoKXtsZXQgbD1VcyhYXyx0aGlzKS5sZWZ0K1VzKFpkLHRoaXMpLmxlZnQtVXMoUTEsdGhpcykub2Zmc2V0V2lkdGg7aWYoVXMoVWQsdGhpcykpe2NvbnN0IGE9VXMoVWQsdGhpcykub3duZXJEb2N1bWVudC5kZWZh'@; put 'dWx0VmlldztsLT1OdW1iZXIucGFyc2VJbnQoYS5nZXRDb21wdXRlZFN0eWxlKFVzKFVkLHRoaXMpLnF1ZXJ5U2VsZWN0b3IoIi5odENvcmUiKSkuYm9yZGVyTGVmdFdpZHRoLDEwKX1VcyhRMSx0aGlzKS5zdHlsZS5sZWZ0PWAke2x9cHhgfX1mdW5jdGlvbiBQZ2UoYyl7bGV0e2luaXRpYWxQ'@; put 'YWdlOmw9LTEsc2l6ZTphPSgoKT0+MCksb25JdGVtU2VsZWN0OmQ9KCgpPT57fSksb25DbGVhcjpoPSgoKT0+e30pfT1jO2NvbnN0IGY9bmV3IFNldDtsZXQgdj1BbyhsLC0xLEdlKCktMSk7ZnVuY3Rpb24gTShwdCxkdCl7Y29uc3QgcXQ9R2UoKS0xO3JldHVybiBwdDwwJiYocHQ9cXQpLHB0'@; put 'PnF0JiYocHQ9MCksZi5oYXMocHQpPy0xOihmLmFkZChwdCksITE9PT1kKHB0LCExKSYmKHB0PU0oMT09PWR0PysrcHQ6LS1wdCxkdCkpLHB0KX1mdW5jdGlvbiBHZSgpe3JldHVybiBNYXRoLm1heChhKCksMCl9cmV0dXJue3NldEN1cnJlbnRQYWdlOmZ1bmN0aW9uIEkocHQpe3B0Pi0xJiZw'@; put 'dDxHZSgpJiYhMSE9PWQocHQsITApJiYodj1wdCl9LHNldFBhZ2VDdXJzb3JBdDpmdW5jdGlvbiBHKHB0KXtwdD4tMSYmcHQ8R2UoKSYmKHY9cHQpfSxnZXRDdXJyZW50UGFnZTpmdW5jdGlvbiByZSgpe3JldHVybiB2fSx0b0ZpcnN0SXRlbTpmdW5jdGlvbiB1ZSgpe0dlKCk+MCYmKGYuY2xl'@; put 'YXIoKSx2PU0oMCwxKSl9LHRvTGFzdEl0ZW06ZnVuY3Rpb24geWUoKXtHZSgpPjAmJihmLmNsZWFyKCksdj1NKEdlKCktMSwtMSkpfSx0b05leHRJdGVtOmZ1bmN0aW9uIEVlKCl7R2UoKT4wJiYoZi5jbGVhcigpLHY9TSgrK3YsMSkpfSx0b1ByZXZpb3VzSXRlbTpmdW5jdGlvbiBCZSgpe0dl'@; put 'KCk+MCYmKGYuY2xlYXIoKSx2PU0oLS12LC0xKSl9LGdldFNpemU6R2UsY2xlYXI6ZnVuY3Rpb24gc3QoKXtmLmNsZWFyKCksdj1sLGgoKX19fWZ1bmN0aW9uIFZKKGMpe3JldHVybiBDdShjLCJzdWJtZW51Iil9ZnVuY3Rpb24gQkooYyl7cmV0dXJuIG5ldyBSZWdFeHAoaW8sImkiKS50ZXN0'@; put 'KGMubmFtZSl9ZnVuY3Rpb24gUkYoYyxsKXtyZXR1cm4hMD09PWMuZGlzYWJsZWR8fCJmdW5jdGlvbiI9PXR5cGVvZiBjLmRpc2FibGVkJiYhMD09PWMuZGlzYWJsZWQuY2FsbChsKX1mdW5jdGlvbiBGZ2UoYyl7cmV0dXJuIEN1KGMsImRpc2FibGVTZWxlY3Rpb24iKX1mdW5jdGlvbiBIZ2Uo'@; put 'YyxsKXtjb25zdCBhPWMuc2xpY2UoMCk7Zm9yKGxldCBkPTA7ZDxhLmxlbmd0aCYmYVtkXS5uYW1lPT09bDspYS5zaGlmdCgpO3JldHVybiBhfWZ1bmN0aW9uIG0wdChjKXtyZXR1cm4hMD09PWMuY2hlY2thYmxlfWZ1bmN0aW9uIF8wdChjKXtyZXR1cm4obCxhLGQsaCxmLHYpPT57Y29uc3Qg'@; put 'TT1sLmdldFNvdXJjZURhdGFBdFJvdyhkKSxJPWMucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLEc9ImZ1bmN0aW9uIj09dHlwZW9mIHY/di5jYWxsKGMpOnYscmU9ImZ1bmN0aW9uIj09dHlwZW9mIE0uYXJpYUxhYmVsP00uYXJpYUxhYmVsLmNhbGwoYyk6TS5hcmlhTGFiZWws'@; put 'dWU9ImZ1bmN0aW9uIj09dHlwZW9mIE0uYXJpYUNoZWNrZWQ/TS5hcmlhQ2hlY2tlZC5jYWxsKGMpOk0uYXJpYUNoZWNrZWQ7aWYoQXAoYSksRWkoSSwiaHRJdGVtV3JhcHBlciIpLGMuZ2V0U2V0dGluZ3MoKS5hcmlhVGFncyl7Y29uc3QgeWU9IVJGKE0sYykmJiFGZ2UoTSkmJiFCSihNKTtt'@; put 'cyhhLFsuLi5tMHQoTSk/W1sicm9sZSIsIm1lbnVpdGVtY2hlY2tib3giXSxuXyhyZSksejJlKHVlKV06W1sicm9sZSIsIm1lbnVpdGVtIl0sbl8oRyldLC4uLnllP1trbSgtMSldOltdLC4uLlJGKE0sYyk/W1siYXJpYS1kaXNhYmxlZCIsInRydWUiXV06W10sLi4uVkooTSk/W0IyKCExKV06'@; put 'W11dKX1hLmNsYXNzTmFtZT0iIixhLmFwcGVuZENoaWxkKEkpLEJKKE0pP0VpKGEsImh0U2VwYXJhdG9yIik6ImZ1bmN0aW9uIj09dHlwZW9mIE0ucmVuZGVyZXI/KEVpKGEsImh0Q3VzdG9tTWVudVJlbmRlcmVyIiksYS5hcHBlbmRDaGlsZChNLnJlbmRlcmVyKGwsSSxkLGgsZixHKSkpOmo3'@; put 'KEksRyksUkYoTSxjKT9FaShhLCJodERpc2FibGVkIik6RmdlKE0pP0VpKGEsImh0U2VsZWN0aW9uRGlzYWJsZWQiKTpWSihNKSYmRWkoYSwiaHRTdWJtZW51Iil9fWZ1bmN0aW9uIGpKKGMsbCxhKXsoZnVuY3Rpb24gdzB0KGMsbCl7aWYobC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigi'@; put 'Q2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGMsbCksbC5zZXQoYyxhKX1mdW5jdGlvbiBacChjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gQzB0KGMpe3ZhciBsPWZ1bmN0aW9uIFMwdChjLGwpe2lmKCJvYmplY3QiIT10'@; put 'eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCBy'@; put 'ZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6'@; put 'ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9ZnVuY3Rpb24gekooYyxsLGEpe3JldHVybiBjLnNldChCZ2UoYyxsKSxhKSxhfWZ1bmN0aW9uIFFtKGMsbCl7cmV0dXJuIGMuZ2V0KEJnZShjLGwpKX1mdW5jdGlvbiBCZ2UoYyxsLGEpe2lmKCJmdW5jdGlvbiI9PXR5'@; put 'cGVvZiBjP2M9PT1sOmMuaGFzKGwpKXJldHVybiBhcmd1bWVudHMubGVuZ3RoPDM/bDphO3Rocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgZWxlbWVudCBpcyBub3QgcHJlc2VudCBvbiB0aGlzIG9iamVjdCIpfXZhciBxXz1uZXcgV2Vha01hcCxMRj1uZXcgV2Vha01hcCxPRj1uZXcgV2Vh'@; put 'a01hcDtjbGFzcyBKX3tnZXQgdGFibGVCb3JkZXJXaWR0aCgpe3JldHVybiB2b2lkIDA9PT1RbShPRix0aGlzKSYmdGhpcy5ob3RNZW51JiZ6SihPRix0aGlzLHBhcnNlSW50KHRoaXMuaG90TWVudS5yb290V2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5ob3RNZW51LnZpZXcuX3d0Lnd0'@; put 'VGFibGUuVEFCTEUpLmJvcmRlcldpZHRoLDEwKSksUW0oT0YsdGhpcyl9Y29uc3RydWN0b3IobCxhKXt2YXIgZD10aGlzO1pwKHRoaXMsImhvdCIsdm9pZCAwKSxacCh0aGlzLCJvcHRpb25zIix2b2lkIDApLFpwKHRoaXMsImV2ZW50TWFuYWdlciIsbmV3IFoyKHRoaXMpKSxacCh0aGlzLCJj'@; put 'b250YWluZXIiLHZvaWQgMCksWnAodGhpcywicG9zaXRpb25lciIsdm9pZCAwKSxacCh0aGlzLCJob3RNZW51IixudWxsKSxacCh0aGlzLCJob3RTdWJNZW51cyIse30pLFpwKHRoaXMsInBhcmVudE1lbnUiLHZvaWQgMCksWnAodGhpcywibWVudUl0ZW1zIixudWxsKSxacCh0aGlzLCJvcmln'@; put 'T3V0c2lkZUNsaWNrRGVzZWxlY3RzIixudWxsKSxqSih0aGlzLHFfLHZvaWQgMCksakoodGhpcyxMRix2b2lkIDApLGpKKHRoaXMsT0Ysdm9pZCAwKSx0aGlzLmhvdD1sLHRoaXMub3B0aW9ucz1hfHx7cGFyZW50Om51bGwsbmFtZTpudWxsLGNsYXNzTmFtZToiIixrZWVwSW5WaWV3cG9ydDoh'@; put 'MCxzdGFuZGFsb25lOiExLG1pbldpZHRoOjIxNSxjb250YWluZXI6dGhpcy5ob3Qucm9vdFBvcnRhbEVsZW1lbnR9LHRoaXMuY29udGFpbmVyPXRoaXMuY3JlYXRlQ29udGFpbmVyKHRoaXMub3B0aW9ucy5uYW1lKSx0aGlzLnBvc2l0aW9uZXI9bmV3IHMwdCh0aGlzLm9wdGlvbnMua2VlcElu'@; put 'Vmlld3BvcnQpLHRoaXMucGFyZW50TWVudT10aGlzLm9wdGlvbnMucGFyZW50fHxudWxsLHRoaXMucmVnaXN0ZXJFdmVudHMoKSx0aGlzLmlzU3ViTWVudSgpJiZ0aGlzLmFkZExvY2FsSG9vaygiYWZ0ZXJTZWxlY3Rpb25DaGFuZ2UiLGZ1bmN0aW9uKCl7Zm9yKHZhciBoPWFyZ3VtZW50cy5s'@; put 'ZW5ndGgsZj1uZXcgQXJyYXkoaCksdj0wO3Y8aDt2KyspZlt2XT1hcmd1bWVudHNbdl07cmV0dXJuIGQucGFyZW50TWVudS5ydW5Mb2NhbEhvb2tzKCJhZnRlclNlbGVjdGlvbkNoYW5nZSIsLi4uZil9KSx0aGlzLmhvdC5hZGRIb29rKCJhZnRlclNldFRoZW1lIiwoaCxmKT0+e3RoaXMub3B0'@; put 'aW9ucy5jb250YWluZXIhPT10aGlzLmhvdC5yb290UG9ydGFsRWxlbWVudCYmKGhzKHRoaXMub3B0aW9ucy5jb250YWluZXIsL2h0LXRoZW1lLS4qL2cpLEVpKHRoaXMub3B0aW9ucy5jb250YWluZXIsaCkpLGZ8fHRoaXMuY2xvc2UoKX0pfXJlZ2lzdGVyRXZlbnRzKCl7bGV0IGw9dGhpcy5o'@; put 'b3Qucm9vdFdpbmRvdztmb3IoO2w7KXRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIobC5kb2N1bWVudCwibW91c2Vkb3duIixhPT50aGlzLm9uRG9jdW1lbnRNb3VzZURvd24oYSkpLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIobC5kb2N1bWVudCwidG91Y2hz'@; put 'dGFydCIsYT0+dGhpcy5vbkRvY3VtZW50TW91c2VEb3duKGEpKSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGwuZG9jdW1lbnQsImNvbnRleHRtZW51IixhPT50aGlzLm9uRG9jdW1lbnRDb250ZXh0TWVudShhKSksbD1WNyhsKX1zZXRNZW51SXRlbXMobCl7dGhpcy5tZW51'@; put 'SXRlbXM9bH1nZXROYXZpZ2F0b3IoKXtyZXR1cm4gUW0ocV8sdGhpcyl9Z2V0S2V5Ym9hcmRTaG9ydGN1dHNDdHJsKCl7cmV0dXJuIFFtKExGLHRoaXMpfWdldFNlbGVjdGVkSXRlbSgpe3JldHVybiB0aGlzLmhhc1NlbGVjdGVkSXRlbSgpP3RoaXMuaG90TWVudS5nZXRTb3VyY2VEYXRhQXRS'@; put 'b3codGhpcy5ob3RNZW51LmdldFNlbGVjdGVkTGFzdCgpWzBdKTpudWxsfWhhc1NlbGVjdGVkSXRlbSgpe3JldHVybiBBcnJheS5pc0FycmF5KHRoaXMuaG90TWVudS5nZXRTZWxlY3RlZExhc3QoKSl9aXNTdWJNZW51KCl7cmV0dXJuIG51bGwhPT10aGlzLnBhcmVudE1lbnV9b3Blbigpe3Ro'@; put 'aXMucnVuTG9jYWxIb29rcygiYmVmb3JlT3BlbiIpLHRoaXMuY29udGFpbmVyLnJlbW92ZUF0dHJpYnV0ZSgic3R5bGUiKSx0aGlzLmNvbnRhaW5lci5zdHlsZS5kaXNwbGF5PSJibG9jayI7Y29uc3QgbD1JRShNPT50aGlzLm9wZW5TdWJNZW51KE0pLDMwMCksYT10aGlzLm9wdGlvbnMubWlu'@; put 'V2lkdGh8fDIxNTtsZXQgZD0hMSxoPUFtKHRoaXMubWVudUl0ZW1zLE09PihNLmtleT09PUFUJiYoZD0hMCksZnVuY3Rpb24gaDB0KGMsbCl7cmV0dXJuIWMuaGlkZGVufHwhKCJmdW5jdGlvbiI9PXR5cGVvZiBjLmhpZGRlbiYmYy5oaWRkZW4uY2FsbChsKSl9KE0sdGhpcy5ob3QpKSk7aWYo'@; put 'aC5sZW5ndGg8MSYmIWQpaC5wdXNoKFJnZSgpW0FUXSk7ZWxzZSBpZigwPT09aC5sZW5ndGgpcmV0dXJuO2g9ZnVuY3Rpb24gZzB0KGMpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTppbyxhPWMuc2xpY2UoMCk7cmV0dXJuIGE9'@; put 'SGdlKGEsbCksYT1mdW5jdGlvbiBmMHQoYyxsKXtsZXQgYT1jLnNsaWNlKDApO3JldHVybiBhLnJldmVyc2UoKSxhPUhnZShhLGwpLGEucmV2ZXJzZSgpLGF9KGEsbCksYT1mdW5jdGlvbiBwMHQoYyl7Y29uc3QgbD1bXTtyZXR1cm4gS24oYywoYSxkKT0+e2Q+MD9sW2wubGVuZ3RoLTFdLm5h'@; put 'bWUhPT1hLm5hbWUmJmwucHVzaChhKTpsLnB1c2goYSl9KSxsfShhKSxhfShoLGlvKTtsZXQgZj0hMTtjb25zdCB2PXtkYXRhOmgsY29sSGVhZGVyczohMSxhdXRvQ29sdW1uU2l6ZTohMCxhdXRvV3JhcFJvdzohMSxtb2RpZnlDb2xXaWR0aDpNPT5IYShNKSYmTTxhP2E6TSxhdXRvUm93U2l6'@; put 'ZTohMSxyZWFkT25seTohMCxlZGl0b3I6ITEsY29weVBhc3RlOiExLGhpZGRlblJvd3M6ITAsbWF4Q29sczoxLGNvbHVtbnM6W3tkYXRhOiJuYW1lIixyZW5kZXJlcjpfMHQodGhpcy5ob3QpfV0scmVuZGVyQWxsUm93czohMCxmcmFnbWVudFNlbGVjdGlvbjohMSxvdXRzaWRlQ2xpY2tEZXNl'@; put 'bGVjdHM6ITEsZGlzYWJsZVZpc3VhbFNlbGVjdGlvbjoiYXJlYSIsbGF5b3V0RGlyZWN0aW9uOnRoaXMuaG90LmlzUnRsKCk/InJ0bCI6Imx0ciIsYXJpYVRhZ3M6ITEsdGhlbWVOYW1lOnRoaXMuaG90LmdldEN1cnJlbnRUaGVtZU5hbWUoKSxiZWZvcmVSZWZyZXNoRGltZW5zaW9uczooKT0+'@; put 'ITEsYmVmb3JlT25DZWxsTW91c2VPdmVyOihNLEkpPT57dGhpcy5ob3RNZW51LnN0eWxlc0hhbmRsZXIuaXNDbGFzc2ljVGhlbWUoKT9RbShxXyx0aGlzKS5zZXRDdXJyZW50UGFnZShJLnJvdyk6UW0ocV8sdGhpcykuc2V0UGFnZUN1cnNvckF0KEkucm93KX0sYWZ0ZXJPbkNlbGxNb3VzZU92'@; put 'ZXI6KE0sSSk9Pnt0aGlzLmlzQWxsU3ViTWVudXNDbG9zZWQoKT9sKEkucm93KTp0aGlzLm9wZW5TdWJNZW51KEkucm93KX0sYWZ0ZXJPbkNlbGxDb250ZXh0TWVudTpNPT57TS5wcmV2ZW50RGVmYXVsdCgpLGpPKCkmJmYmJnRoaXMuaGFzU2VsZWN0ZWRJdGVtKCkmJnRoaXMuY2xvc2UoITAp'@; put 'fSxhZnRlclNlbGVjdGlvbjooTSxJLEcscmUsdWUpPT57dGhpcy5ob3RNZW51LnZpZXcuaXNNb3VzZURvd24oKSYmKHVlLnZhbHVlPSEwKSx0aGlzLnJ1bkxvY2FsSG9va3MoImFmdGVyU2VsZWN0aW9uQ2hhbmdlIix0aGlzLmdldFNlbGVjdGVkSXRlbSgpKX0sYmVmb3JlT25DZWxsTW91c2VV'@; put 'cDpNPT57dGhpcy5oYXNTZWxlY3RlZEl0ZW0oKSYmKGY9IXRoaXMuaXNDb21tYW5kUGFzc2l2ZSh0aGlzLmdldFNlbGVjdGVkSXRlbSgpKSx0aGlzLmV4ZWN1dGVDb21tYW5kKE0pKX0sYWZ0ZXJPbkNlbGxNb3VzZVVwOk09PnsoIWpPKCl8fCFQbShNKSkmJmYmJnRoaXMuaGFzU2VsZWN0ZWRJ'@; put 'dGVtKCkmJihvMygpfHxNJCgpP3RoaXMuaG90Ll9yZWdpc3RlclRpbWVvdXQoKCk9PnRoaXMuY2xvc2UoITApLDMyNSk6dGhpcy5jbG9zZSghMCkpfSxhZnRlclVubGlzdGVuOigpPT57IXRoaXMuaGFzU2VsZWN0ZWRJdGVtKCkmJnRoaXMuaXNPcGVuZWQoKSYmdGhpcy5ob3RNZW51Lmxpc3Rl'@; put 'bigpfX07dGhpcy5vcmlnT3V0c2lkZUNsaWNrRGVzZWxlY3RzPXRoaXMuaG90LmdldFNldHRpbmdzKCkub3V0c2lkZUNsaWNrRGVzZWxlY3RzLHRoaXMuaG90LmdldFNldHRpbmdzKCkub3V0c2lkZUNsaWNrRGVzZWxlY3RzPSExLHRoaXMuaG90TWVudT1uZXcgdGhpcy5ob3QuY29uc3RydWN0'@; put 'b3IodGhpcy5jb250YWluZXIsdiksdGhpcy5ob3RNZW51LmFkZEhvb2soImFmdGVySW5pdCIsKCk9PnRoaXMub25BZnRlckluaXQoKSksdGhpcy5ob3RNZW51LmluaXQoKSx6SihxXyx0aGlzLGZ1bmN0aW9uIHYwdChjKXtyZXR1cm4gUGdlKHtzaXplOigpPT5jLmNvdW50Um93cygpLG9uSXRl'@; put 'bVNlbGVjdChsLGEpe2NvbnN0IGQ9Yy5nZXRDZWxsKGwsMCk7aWYoIWR8fGZ1bmN0aW9uIGwwdChjKXtyZXR1cm4gZ3MoYywiaHRTZXBhcmF0b3IiKX0oZCl8fGZ1bmN0aW9uIHUwdChjKXtyZXR1cm4gZ3MoYywiaHREaXNhYmxlZCIpfShkKXx8ZnVuY3Rpb24gZDB0KGMpe3JldHVybiBncyhj'@; put 'LCJodFNlbGVjdGlvbkRpc2FibGVkIil9KGQpKXJldHVybiExO2Muc2VsZWN0Q2VsbChsLDAsLi4uYT9bbCwwLCExLCExXTpbXSl9LG9uQ2xlYXIoKXtjLmRlc2VsZWN0Q2VsbCgpfX0pfSh0aGlzLmhvdE1lbnUpKSx6SihMRix0aGlzLGZ1bmN0aW9uIGIwdChjKXtsZXQgbD1hcmd1bWVudHMu'@; put 'bGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06W107Y29uc3QgYT1bXTtmdW5jdGlvbiBkKEcscmUpe00ocmUpLmFkZFNob3J0Y3V0cyhHLHtncm91cDoibWVudSJ9KX1mdW5jdGlvbiBoKEcscmUpe2NvbnN0IHVlPU0ocmUpO0cuZm9yRWFjaCh5ZT0+e2xldHtr'@; put 'ZXlzOkVlfT15ZTtFZS5mb3JFYWNoKEJlPT51ZS5yZW1vdmVTaG9ydGN1dHNCeUtleXMoQmUpKX0pLGEucHVzaCh7c2hvcnRjdXRzOkcsY29udGV4dE5hbWU6cmV9KSxkKEcscmUpfWZ1bmN0aW9uIHYoRyl7cmV0dXJuIEc/YG1lbnU6JHtHfWA6Im1lbnUifWZ1bmN0aW9uIE0oRyl7dmFyIHJl'@; put 'O2NvbnN0IHVlPWMuaG90TWVudS5nZXRTaG9ydGN1dE1hbmFnZXIoKSx5ZT12KEcpO3JldHVybiBudWxsIT09KHJlPXVlLmdldENvbnRleHQoeWUpKSYmdm9pZCAwIT09cmU/cmU6dWUuYWRkQ29udGV4dCh5ZSl9cmV0dXJuIGQoZnVuY3Rpb24geTB0KGMpe2NvbnN0e2hvdDpsLGhvdE1lbnU6'@; put 'YX09YztyZXR1cm5be2tleXM6W1siQ29udHJvbC9NZXRhIiwiQSJdXSxmb3J3YXJkVG9Db250ZXh0OmwuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZ3JpZCIpLGNhbGxiYWNrOigpPT5jLmNsb3NlKCEwKX0se2tleXM6W1siVGFiIl0sWyJTaGlmdCIsIlRhYiJdXSxjYWxsYmFj'@; put 'azooZCxoKT0+e2NvbnN0IGY9bC5nZXRTZXR0aW5ncygpLHY9ImZ1bmN0aW9uIj09dHlwZW9mIGYudGFiTW92ZXM/Zi50YWJNb3ZlcyhkKTpmLnRhYk1vdmVzO2guaW5jbHVkZXMoInNoaWZ0Iik/bC5zZWxlY3Rpb24udHJhbnNmb3JtU3RhcnQoLXYucm93LC12LmNvbCk6bC5zZWxlY3Rpb24u'@; put 'dHJhbnNmb3JtU3RhcnQodi5yb3csdi5jb2wpLGMuY2xvc2UoITApfX0se2tleXM6W1siRXNjYXBlIl1dLGNhbGxiYWNrOigpPT5jLmNsb3NlKCl9LHtrZXlzOltbIkFycm93RG93biJdXSxjYWxsYmFjazooKT0+Yy5nZXROYXZpZ2F0b3IoKS50b05leHRJdGVtKCl9LHtrZXlzOltbIkFycm93'@; put 'VXAiXV0sY2FsbGJhY2s6KCk9PmMuZ2V0TmF2aWdhdG9yKCkudG9QcmV2aW91c0l0ZW0oKX0se2tleXM6W1tsLmlzUnRsKCk/IkFycm93TGVmdCI6IkFycm93UmlnaHQiXV0sY2FsbGJhY2s6KCk9Pntjb25zdCBkPWEuZ2V0U2VsZWN0ZWRMYXN0KCk7aWYoZCl7Y29uc3QgaD1jLm9wZW5TdWJN'@; put 'ZW51KGRbMF0pO2gmJmguZ2V0TmF2aWdhdG9yKCkudG9GaXJzdEl0ZW0oKX19fSx7a2V5czpbW2wuaXNSdGwoKT8iQXJyb3dSaWdodCI6IkFycm93TGVmdCJdXSxjYWxsYmFjazooKT0+e2EuZ2V0U2VsZWN0ZWRMYXN0KCkmJmMuaXNTdWJNZW51KCkmJihjLmNsb3NlKCksYy5pc1N1Yk1lbnUo'@; put 'KSYmYy5wYXJlbnRNZW51LmhvdE1lbnUubGlzdGVuKCkpfX0se2tleXM6W1siQ29udHJvbC9NZXRhIiwiQXJyb3dVcCJdLFsiSG9tZSJdXSxjYWxsYmFjazooKT0+Yy5nZXROYXZpZ2F0b3IoKS50b0ZpcnN0SXRlbSgpfSx7a2V5czpbWyJDb250cm9sL01ldGEiLCJBcnJvd0Rvd24iXSxbIkVu'@; put 'ZCJdXSxjYWxsYmFjazooKT0+Yy5nZXROYXZpZ2F0b3IoKS50b0xhc3RJdGVtKCl9LHtrZXlzOltbIkVudGVyIl0sWyJTcGFjZSJdXSxjYWxsYmFjazpkPT57Y29uc3QgaD1hLmdldFNlbGVjdGVkTGFzdCgpO2gmJihhLmdldFNvdXJjZURhdGFBdFJvdyhoWzBdKS5zdWJtZW51P2Mub3BlblN1'@; put 'Yk1lbnUoaFswXSkuZ2V0TmF2aWdhdG9yKCkudG9GaXJzdEl0ZW0oKTooYy5leGVjdXRlQ29tbWFuZChkKSxjLmNsb3NlKCEwKSkpfX0se2tleXM6W1siUGFnZVVwIl1dLGNhbGxiYWNrOigpPT57YS5nZXRTZWxlY3RlZExhc3QoKT9hLnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydCgtYS5jb3Vu'@; put 'dFZpc2libGVSb3dzKCksMCk6Yy5nZXROYXZpZ2F0b3IoKS50b0ZpcnN0SXRlbSgpfX0se2tleXM6W1siUGFnZURvd24iXV0sY2FsbGJhY2s6KCk9PnthLmdldFNlbGVjdGVkTGFzdCgpP2Euc2VsZWN0aW9uLnRyYW5zZm9ybVN0YXJ0KGEuY291bnRWaXNpYmxlUm93cygpLDApOmMuZ2V0TmF2'@; put 'aWdhdG9yKCkudG9MYXN0SXRlbSgpfX1dfShjKSksbC5mb3JFYWNoKEc9PntsZXR7c2hvcnRjdXRzOnJlLGNvbnRleHROYW1lOnVlfT1HO2gocmUsdWUpfSkse2FkZEN1c3RvbVNob3J0Y3V0czpoLGdldEN1c3RvbVNob3J0Y3V0czpmdW5jdGlvbiBmKCl7cmV0dXJuWy4uLmFdfSxnZXRDb250'@; put 'ZXh0Ok0sbGlzdGVuOmZ1bmN0aW9uIEkoRyl7Yy5ob3RNZW51LmdldFNob3J0Y3V0TWFuYWdlcigpLnNldEFjdGl2ZUNvbnRleHROYW1lKHYoRykpfX19KHRoaXMpKSxRbShMRix0aGlzKS5saXN0ZW4oKSx0aGlzLmZvY3VzKCksdGhpcy5pc1N1Yk1lbnUoKSYmdGhpcy5hZGRMb2NhbEhvb2so'@; put 'ImFmdGVyT3BlbiIsKCk9PnRoaXMucGFyZW50TWVudS5ydW5Mb2NhbEhvb2tzKCJhZnRlclN1Ym1lbnVPcGVuIix0aGlzKSksdGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlck9wZW4iLHRoaXMpfWNsb3NlKCl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0m'@; put 'JmFyZ3VtZW50c1swXTtpZih0aGlzLmlzT3BlbmVkKCkpaWYobCYmdGhpcy5pc1N1Yk1lbnUoKSl0aGlzLnBhcmVudE1lbnUuY2xvc2UoKTtlbHNlIGlmKFFtKHFfLHRoaXMpLmNsZWFyKCksdGhpcy5jbG9zZUFsbFN1Yk1lbnVzKCksdGhpcy5jb250YWluZXIuc3R5bGUuZGlzcGxheT0ibm9u'@; put 'ZSIsdGhpcy5ob3RNZW51LmRlc3Ryb3koKSx0aGlzLmhvdE1lbnU9bnVsbCx0aGlzLmhvdC5nZXRTZXR0aW5ncygpLm91dHNpZGVDbGlja0Rlc2VsZWN0cz10aGlzLm9yaWdPdXRzaWRlQ2xpY2tEZXNlbGVjdHMsdGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlckNsb3NlIiksdGhpcy5pc1N1Yk1l'@; put 'bnUoKSl7aWYodGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5hcmlhVGFncyl7Y29uc3QgYT10aGlzLnBhcmVudE1lbnUuaG90TWVudS5nZXRTZWxlY3RlZExhc3QoKTthJiZtcyh0aGlzLnBhcmVudE1lbnUuaG90TWVudS5nZXRDZWxsKGFbMF0sMCksW0IyKCExKV0pfXRoaXMucGFyZW50TWVudS5o'@; put 'b3RNZW51Lmxpc3RlbigpfX1vcGVuU3ViTWVudShsKXtpZighdGhpcy5ob3RNZW51KXJldHVybiExO2NvbnN0IGE9dGhpcy5ob3RNZW51LmdldENlbGwobCwwKTtpZih0aGlzLmNsb3NlQWxsU3ViTWVudXMoKSwhYXx8IWZ1bmN0aW9uIGMwdChjKXtyZXR1cm4gZ3MoYywiaHRTdWJtZW51Iil9'@; put 'KGEpKXJldHVybiExO2NvbnN0IGQ9dGhpcy5ob3RNZW51LmdldFNvdXJjZURhdGFBdFJvdyhsKSxoPW5ldyBKXyh0aGlzLmhvdCx7cGFyZW50OnRoaXMsbmFtZTpkLm5hbWUsY2xhc3NOYW1lOnRoaXMub3B0aW9ucy5jbGFzc05hbWUsa2VlcEluVmlld3BvcnQ6ITAsY29udGFpbmVyOnRoaXMu'@; put 'b3B0aW9ucy5jb250YWluZXJ9KTtyZXR1cm4gaC5zZXRNZW51SXRlbXMoZC5zdWJtZW51Lml0ZW1zKSxoLm9wZW4oKSxoLnNldFBvc2l0aW9uKGEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpLHRoaXMuaG90U3ViTWVudXNbZC5rZXldPWgsdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5hcmlhVGFn'@; put 'cyYmbXMoYSxbQjIoITApXSksaH1jbG9zZVN1Yk1lbnUobCl7Y29uc3QgYT10aGlzLmhvdE1lbnUuZ2V0U291cmNlRGF0YUF0Um93KGwpLGQ9dGhpcy5ob3RTdWJNZW51c1thLmtleV07aWYoZCl7ZC5kZXN0cm95KCksZGVsZXRlIHRoaXMuaG90U3ViTWVudXNbYS5rZXldO2NvbnN0IGg9dGhp'@; put 'cy5ob3RNZW51LmdldENlbGwobCwwKTt0aGlzLmhvdC5nZXRTZXR0aW5ncygpLmFyaWFUYWdzJiZtcyhoLFtCMighMSldKX19Y2xvc2VBbGxTdWJNZW51cygpe0tuKHRoaXMuaG90TWVudS5nZXREYXRhKCksKGwsYSk9PnRoaXMuY2xvc2VTdWJNZW51KGEpKX1pc0FsbFN1Yk1lbnVzQ2xvc2Vk'@; put 'KCl7cmV0dXJuIDA9PT1PYmplY3Qua2V5cyh0aGlzLmhvdFN1Yk1lbnVzKS5sZW5ndGh9Zm9jdXMoKXt0aGlzLmlzT3BlbmVkKCkmJih0aGlzLmhvdE1lbnUucm9vdEVsZW1lbnQuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KSx0aGlzLmdldEtleWJvYXJkU2hvcnRjdXRzQ3RybCgpLmxpc3Rl'@; put 'bigpLHRoaXMuaG90TWVudS5saXN0ZW4oKSl9ZGVzdHJveSgpe2NvbnN0IGw9dGhpcy5jb250YWluZXIucGFyZW50Tm9kZTt0aGlzLmNsZWFyTG9jYWxIb29rcygpLHRoaXMuY2xvc2UoKSx0aGlzLnBhcmVudE1lbnU9bnVsbCx0aGlzLmV2ZW50TWFuYWdlci5kZXN0cm95KCksbCYmbC5yZW1v'@; put 'dmVDaGlsZCh0aGlzLmNvbnRhaW5lcil9aXNPcGVuZWQoKXtyZXR1cm4gbnVsbCE9PXRoaXMuaG90TWVudX1leGVjdXRlQ29tbWFuZChsKXtpZighdGhpcy5pc09wZW5lZCgpfHwhdGhpcy5oYXNTZWxlY3RlZEl0ZW0oKSlyZXR1cm47Y29uc3QgYT10aGlzLmdldFNlbGVjdGVkSXRlbSgpO2lm'@; put 'KHRoaXMucnVuTG9jYWxIb29rcygic2VsZWN0IixhLGwpLHRoaXMuaXNDb21tYW5kUGFzc2l2ZShhKSlyZXR1cm47Y29uc3QgZD10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlKCksaD1kP2Z1bmN0aW9uIG8wdChjKXtyZXR1cm4geW8oYyxsPT4oe3N0YXJ0OmwuZ2V0VG9wU3RhcnRDb3JuZXIo'@; put 'KSxlbmQ6bC5nZXRCb3R0b21FbmRDb3JuZXIoKX0pKX0oZCk6W107dGhpcy5ydW5Mb2NhbEhvb2tzKCJleGVjdXRlQ29tbWFuZCIsYS5rZXksaCxsKSx0aGlzLmlzU3ViTWVudSgpJiZ0aGlzLnBhcmVudE1lbnUucnVuTG9jYWxIb29rcygiZXhlY3V0ZUNvbW1hbmQiLGEua2V5LGgsbCl9aXND'@; put 'b21tYW5kUGFzc2l2ZShsKXtyZXR1cm4hMT09PWwuaXNDb21tYW5kfHxCSihsKXx8UkYobCx0aGlzLmhvdCl8fFZKKGwpfXNldE9mZnNldChsKXt0aGlzLnBvc2l0aW9uZXIuc2V0T2Zmc2V0KGwsYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFd'@; put 'OjApfXNldFBvc2l0aW9uKGwpe3RoaXMuaXNTdWJNZW51KCkmJnRoaXMucG9zaXRpb25lci5zZXRQYXJlbnRFbGVtZW50KHRoaXMucGFyZW50TWVudS5jb250YWluZXIpLHRoaXMucG9zaXRpb25lci5zZXRFbGVtZW50KHRoaXMuY29udGFpbmVyKS51cGRhdGVQb3NpdGlvbihsKX11cGRhdGVN'@; put 'ZW51RGltZW5zaW9ucygpe2NvbnN0e3d0VGFibGU6bH09dGhpcy5ob3RNZW51LnZpZXcuX3d0LGE9dGhpcy5ob3RNZW51LmdldFNldHRpbmdzKCkuZGF0YSxkPWwuaGlkZXIuc3R5bGUsaD1sLmhvbGRlci5zdHlsZSxmPXBhcnNlSW50KGQud2lkdGgsMTApLHY9R3UoYSwoTSxJLEcpPT57Y29u'@; put 'c3QgdWU9dGhpcy5ob3RNZW51LmdldENlbGwoRywwKT9TdSh0aGlzLmhvdE1lbnUuZ2V0Q2VsbChHLDApKTowO3JldHVybiBNKyhJLm5hbWU9PT1pbz8xOnVlKX0sMCk7dGhpcy5ob3RNZW51LnN0eWxlc0hhbmRsZXIuaXNDbGFzc2ljVGhlbWUoKT8oaC53aWR0aD1gJHtmKzN9cHhgLGguaGVp'@; put 'Z2h0PWAke3YrM31weGApOihoLndpZHRoPWAke2Z9cHhgLGguaGVpZ2h0PWAke3Z9cHhgKSxkLmhlaWdodD1oLmhlaWdodH1jcmVhdGVDb250YWluZXIoKXtjb25zdCBhPXRoaXMub3B0aW9ucy5jb250YWluZXIub3duZXJEb2N1bWVudDtsZXQgaCxkPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9p'@; put 'ZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpudWxsO3JldHVybiBkJiYoZmwoZCkmJihkPWQuY2FsbCh0aGlzLmhvdCksZD1udWxsPT09ZHx8YmMoZCk/IiI6ZC50b1N0cmluZygpKSxkPWQucmVwbGFjZSgvW15BLVphLXowLTldL2csIl8iKSxkPWAke3RoaXMub3B0aW9ucy5jbGFz'@; put 'c05hbWV9U3ViXyR7ZH1gLGg9YS5xdWVyeVNlbGVjdG9yKGAuJHt0aGlzLm9wdGlvbnMuY2xhc3NOYW1lfS4ke2R9YCkpLGh8fChoPWEuY3JlYXRlRWxlbWVudCgiZGl2IiksRWkoaCxgaHRNZW51IGhhbmRzb250YWJsZSAke3RoaXMub3B0aW9ucy5jbGFzc05hbWV9YCksZCYmRWkoaCxkKSx0'@; put 'aGlzLm9wdGlvbnMuY29udGFpbmVyLmFwcGVuZENoaWxkKGgpKSxofW9uQWZ0ZXJJbml0KCl7dGhpcy51cGRhdGVNZW51RGltZW5zaW9ucygpLHRoaXMuaG90LmdldFNldHRpbmdzKCkuYXJpYVRhZ3MmJm1zKHRoaXMuaG90TWVudS5yb290RWxlbWVudCxbWyJyb2xlIiwibWVudSJdLGttKC0x'@; put 'KV0pfW9uRG9jdW1lbnRNb3VzZURvd24obCl7dGhpcy5pc09wZW5lZCgpJiYodGhpcy5vcHRpb25zLnN0YW5kYWxvbmUmJnRoaXMuaG90TWVudSYmIUltKGwudGFyZ2V0LHRoaXMuaG90TWVudS5yb290RWxlbWVudCl8fCh0aGlzLmlzQWxsU3ViTWVudXNDbG9zZWQoKXx8dGhpcy5pc1N1Yk1l'@; put 'bnUoKSkmJiFJbShsLnRhcmdldCwiLmh0TWVudSIpKSYmdGhpcy5jbG9zZSghMCl9b25Eb2N1bWVudENvbnRleHRNZW51KGwpe3RoaXMuaXNPcGVuZWQoKSYmZ3MobC50YXJnZXQsImh0Q29yZSIpJiZJbShsLnRhcmdldCx0aGlzLmhvdE1lbnUucm9vdEVsZW1lbnQpJiZsLnByZXZlbnREZWZh'@; put 'dWx0KCl9fWZ1bmN0aW9uIFVKKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBFMHQoYyl7dmFyIGw9ZnVuY3Rpb24gVDB0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxs'@; put 'KGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmci'@; put 'KTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31mdW5jdGlvbiBQRihjLGwsYSl7aWYoImZ1bmN0aW9uIj09'@; put 'dHlwZW9mIGM/Yz09PWw6Yy5oYXMobCkpcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mz9sOmE7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBlbGVtZW50IGlzIG5vdCBwcmVzZW50IG9uIHRoaXMgb2JqZWN0Iil9eGwoSl8seTEpO2NvbnN0IERUPSJjb250ZXh0TWVudSIsemdlPURUO01h'@; put 'LmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMiKSxNYS5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYmVmb3JlQ29udGV4dE1lbnVTaG93IiksTWEuZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyQ29udGV4dE1lbnVTaG93IiksTWEu'@; put 'Z2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyQ29udGV4dE1lbnVIaWRlIiksTWEuZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyQ29udGV4dE1lbnVFeGVjdXRlIik7dmFyIElUPW5ldyBXZWFrU2V0O2NsYXNzIEZGIGV4dGVuZHMgRm97Y29uc3RydWN0b3IoKXtzdXBlciguLi5h'@; put 'cmd1bWVudHMpLGZ1bmN0aW9uIE0wdChjLGwpeyhmdW5jdGlvbiB4MHQoYyxsKXtpZihsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfSkoYyxsKSxsLmFkZChjKX0odGhp'@; put 'cyxJVCksVUoodGhpcywiY29tbWFuZEV4ZWN1dG9yIixuZXcga2dlKHRoaXMuaG90KSksVUoodGhpcywiaXRlbXNGYWN0b3J5IixudWxsKSxVSih0aGlzLCJtZW51IixudWxsKX1zdGF0aWMgZ2V0IFBMVUdJTl9LRVkoKXtyZXR1cm4gRFR9c3RhdGljIGdldCBQTFVHSU5fUFJJT1JJVFkoKXty'@; put 'ZXR1cm4gNzB9c3RhdGljIGdldCBQTFVHSU5fREVQUygpe3JldHVyblsicGx1Z2luOkF1dG9Db2x1bW5TaXplIl19c3RhdGljIGdldCBERUZBVUxUX0lURU1TKCl7cmV0dXJuW0FGLGtGLGlvLE1ULHhULGlvLFRGLFRULGlvLERGLEVGLGlvLEVULGlvLGVmXX1pc0VuYWJsZWQoKXtyZXR1cm4h'@; put 'IXRoaXMuaG90LmdldFNldHRpbmdzKClbRFRdfWVuYWJsZVBsdWdpbigpe3ZhciBsPXRoaXM7aWYodGhpcy5lbmFibGVkKXJldHVybjtjb25zdCBhPXRoaXMuaG90LmdldFNldHRpbmdzKClbRFRdOyJmdW5jdGlvbiI9PXR5cGVvZiBhLmNhbGxiYWNrJiZ0aGlzLmNvbW1hbmRFeGVjdXRvci5z'@; put 'ZXRDb21tb25DYWxsYmFjayhhLmNhbGxiYWNrKSx0aGlzLm1lbnU9bmV3IEpfKHRoaXMuaG90LHtjbGFzc05hbWU6Imh0Q29udGV4dE1lbnUiLGtlZXBJblZpZXdwb3J0OiEwLGNvbnRhaW5lcjphLnVpQ29udGFpbmVyfHx0aGlzLmhvdC5yb290UG9ydGFsRWxlbWVudH0pLHRoaXMubWVudS5h'@; put 'ZGRMb2NhbEhvb2soImJlZm9yZU9wZW4iLCgpPT5QRihJVCx0aGlzLEQwdCkuY2FsbCh0aGlzKSksdGhpcy5tZW51LmFkZExvY2FsSG9vaygiYWZ0ZXJPcGVuIiwoKT0+UEYoSVQsdGhpcyxJMHQpLmNhbGwodGhpcykpLHRoaXMubWVudS5hZGRMb2NhbEhvb2soImFmdGVyQ2xvc2UiLCgpPT5Q'@; put 'RihJVCx0aGlzLFIwdCkuY2FsbCh0aGlzKSksdGhpcy5tZW51LmFkZExvY2FsSG9vaygiZXhlY3V0ZUNvbW1hbmQiLGZ1bmN0aW9uKCl7Zm9yKHZhciBkPWFyZ3VtZW50cy5sZW5ndGgsaD1uZXcgQXJyYXkoZCksZj0wO2Y8ZDtmKyspaFtmXT1hcmd1bWVudHNbZl07cmV0dXJuIGwuZXhlY3V0'@; put 'ZUNvbW1hbmQuY2FsbChsLC4uLmgpfSksdGhpcy5hZGRIb29rKCJhZnRlck9uQ2VsbENvbnRleHRNZW51IixkPT5QRihJVCx0aGlzLGswdCkuY2FsbCh0aGlzLGQpKSx0aGlzLnJlZ2lzdGVyU2hvcnRjdXRzKCksc3VwZXIuZW5hYmxlUGx1Z2luKCl9dXBkYXRlUGx1Z2luKCl7dGhpcy5kaXNh'@; put 'YmxlUGx1Z2luKCksdGhpcy5lbmFibGVQbHVnaW4oKSxzdXBlci51cGRhdGVQbHVnaW4oKX1kaXNhYmxlUGx1Z2luKCl7dGhpcy5jbG9zZSgpLHRoaXMubWVudSYmKHRoaXMubWVudS5kZXN0cm95KCksdGhpcy5tZW51PW51bGwpLHRoaXMudW5yZWdpc3RlclNob3J0Y3V0cygpLHN1cGVyLmRp'@; put 'c2FibGVQbHVnaW4oKX1yZWdpc3RlclNob3J0Y3V0cygpe3RoaXMuaG90LmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImdyaWQiKS5hZGRTaG9ydGN1dCh7a2V5czpbWyJDb250cm9sL01ldGEiLCJTaGlmdCIsIkJhY2tzbGFzaCJdLFsiU2hpZnQiLCJGMTAiXV0sY2FsbGJhY2s6'@; put 'KCk9Pntjb25zdHtoaWdobGlnaHQ6bH09dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTt0aGlzLmhvdC5zY3JvbGxUb0ZvY3VzZWRDZWxsKCk7Y29uc3QgYT10aGlzLmhvdC5nZXRDZWxsKGwucm93LGwuY29sLCEwKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxkPWJGKHRoaXMubWVu'@; put 'dS5jb250YWluZXIsdGhpcy5ob3Qucm9vdERvY3VtZW50KTt0aGlzLm9wZW4oe2xlZnQ6YS5sZWZ0K2QubGVmdCx0b3A6YS50b3ArZC50b3AtMSthLmhlaWdodH0se2xlZnQ6YS53aWR0aCxhYm92ZTotYS5oZWlnaHR9KSx0aGlzLm1lbnUuZ2V0TmF2aWdhdG9yKCkudG9GaXJzdEl0ZW0oKX0s'@; put 'cnVuT25seUlmOigpPT57dmFyIGw7Y29uc3QgYT1udWxsPT09KGw9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSl8fHZvaWQgMD09PWw/dm9pZCAwOmwuaGlnaGxpZ2h0O3JldHVybiBhJiZ0aGlzLmhvdC5zZWxlY3Rpb24uaXNDZWxsVmlzaWJsZShhKSYmIXRoaXMubWVudS5pc09w'@; put 'ZW5lZCgpfSxncm91cDp6Z2V9KX11bnJlZ2lzdGVyU2hvcnRjdXRzKCl7dGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZ3JpZCIpLnJlbW92ZVNob3J0Y3V0c0J5R3JvdXAoemdlKX1vcGVuKGwpe3ZhciBhO2xldCBkPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAw'@; put 'IT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7YWJvdmU6MCxiZWxvdzowLGxlZnQ6MCxyaWdodDowfTtpZihudWxsIT09KGE9dGhpcy5tZW51KSYmdm9pZCAwIT09YSYmYS5pc09wZW5lZCgpKXJldHVybjt0aGlzLnByZXBhcmVNZW51SXRlbXMoKSx0aGlzLm1lbnUub3BlbigpO2NvbnN0'@; put 'IGg9dGhpcy5tZW51LnRhYmxlQm9yZGVyV2lkdGg+MDtxcyhkLChmLHYpPT57Y29uc3QgTT1bImJlbG93IiwicmlnaHQiXS5pbmNsdWRlcyh2KT9mKzE6Zi0xO3RoaXMubWVudS5zZXRPZmZzZXQodixoP2Y6TSl9KSx0aGlzLm1lbnUuc2V0UG9zaXRpb24obCl9Y2xvc2UoKXt2YXIgbDtudWxs'@; put 'PT09KGw9dGhpcy5tZW51KXx8dm9pZCAwPT09bHx8bC5jbG9zZSgpLHRoaXMuaXRlbXNGYWN0b3J5PW51bGx9ZXhlY3V0ZUNvbW1hbmQobCl7bnVsbD09PXRoaXMuaXRlbXNGYWN0b3J5JiZ0aGlzLnByZXBhcmVNZW51SXRlbXMoKTtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxkPW5ldyBB'@; put 'cnJheShhPjE/YS0xOjApLGg9MTtoPGE7aCsrKWRbaC0xXT1hcmd1bWVudHNbaF07dGhpcy5jb21tYW5kRXhlY3V0b3IuZXhlY3V0ZShsLC4uLmQpfXByZXBhcmVNZW51SXRlbXMoKXt0aGlzLml0ZW1zRmFjdG9yeT1uZXcgTGdlKHRoaXMuaG90LEZGLkRFRkFVTFRfSVRFTVMpO2NvbnN0IGw9'@; put 'dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtEVF0sYT17aXRlbXM6dGhpcy5pdGVtc0ZhY3RvcnkuZ2V0SXRlbXMobCl9O3RoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMiLGEpLHRoaXMuaXRlbXNGYWN0b3J5LnNldFByZWRlZmluZWRJdGVtcyhhLml0ZW1z'@; put 'KTtjb25zdCBkPXRoaXMuaXRlbXNGYWN0b3J5LmdldEl0ZW1zKGwpO3RoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVDb250ZXh0TWVudVNldEl0ZW1zIixkKSx0aGlzLm1lbnUuc2V0TWVudUl0ZW1zKGQpLEtuKGQsaD0+dGhpcy5jb21tYW5kRXhlY3V0b3IucmVnaXN0ZXJDb21tYW5kKGgua2V5'@; put 'LGgpKX1kZXN0cm95KCl7dGhpcy5jbG9zZSgpLHRoaXMubWVudSYmdGhpcy5tZW51LmRlc3Ryb3koKSxzdXBlci5kZXN0cm95KCl9fWZ1bmN0aW9uIGswdChjKXtjb25zdCBsPXRoaXMuaG90LmdldFNldHRpbmdzKCksYT1sLnJvd0hlYWRlcnMsZD1sLmNvbEhlYWRlcnMsZj1jLnRhcmdldDtp'@; put 'Zih0aGlzLmNsb3NlKCksZ3MoZiwiaGFuZHNvbnRhYmxlSW5wdXQiKXx8KGMucHJldmVudERlZmF1bHQoKSxjLnN0b3BQcm9wYWdhdGlvbigpLCEoYXx8ZHx8ZnVuY3Rpb24gaChNKXtyZXR1cm4iVEQiPT09TS5ub2RlTmFtZXx8IlREIj09PU0ucGFyZW50Tm9kZS5ub2RlTmFtZX0oZil8fGdz'@; put 'KGYsImN1cnJlbnQiKSYmZ3MoZiwid3RCb3JkZXIiKSkpKXJldHVybjtjb25zdCB2PWJGKHRoaXMubWVudS5jb250YWluZXIsdGhpcy5ob3Qucm9vdERvY3VtZW50KTt0aGlzLm9wZW4oe3RvcDpjLmNsaWVudFkrdi50b3AsbGVmdDpjLmNsaWVudFgrdi5sZWZ0fSl9ZnVuY3Rpb24gRDB0KCl7'@; put 'dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUNvbnRleHRNZW51U2hvdyIsdGhpcyl9ZnVuY3Rpb24gSTB0KCl7dGhpcy5ob3QucnVuSG9va3MoImFmdGVyQ29udGV4dE1lbnVTaG93Iix0aGlzKX1mdW5jdGlvbiBSMHQoKXt0aGlzLmhvdC5saXN0ZW4oKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0'@; put 'ZXJDb250ZXh0TWVudUhpZGUiLHRoaXMpfUZGLlNFUEFSQVRPUj17bmFtZTppb307Y2xhc3MgTjB0e2NvbnN0cnVjdG9yKCl7dGhpcy5kYXRhPXt9fXNldERhdGEobCxhKXt0aGlzLmRhdGFbbF09YX1nZXREYXRhKGwpe3JldHVybiB0aGlzLmRhdGFbbF18fHZvaWQgMH19Y2xhc3MgVjB0e2Nv'@; put 'bnN0cnVjdG9yKCl7dGhpcy5jbGlwYm9hcmREYXRhPW5ldyBOMHR9cHJldmVudERlZmF1bHQoKXt9Y29tcG9zZWRQYXRoKCl7cmV0dXJuW119fWZ1bmN0aW9uIFFfKGMsbCxhKXtVZ2UoYyxsKSxsLnNldChjLGEpfWZ1bmN0aW9uIFVnZShjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBl'@; put 'RXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9ZnVuY3Rpb24gZWQoYyxsKXtyZXR1cm4gYy5nZXQodHcoYyxsKSl9ZnVuY3Rpb24gZXcoYyxsLGEpe3JldHVybiBjLnNldCh0dyhjLGwpLGEpLGF9ZnVuY3Rpb24g'@; put 'dHcoYyxsLGEpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBjP2M9PT1sOmMuaGFzKGwpKXJldHVybiBhcmd1bWVudHMubGVuZ3RoPDM/bDphO3Rocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgZWxlbWVudCBpcyBub3QgcHJlc2VudCBvbiB0aGlzIG9iamVjdCIpfXZhciBlNj1uZXcgV2Vha01h'@; put 'cCxaSj1uZXcgV2Vha01hcCxSVD1uZXcgV2Vha01hcCxXSj1uZXcgV2Vha01hcCxZSj1uZXcgV2Vha01hcCxMVD1uZXcgV2Vha01hcCxPVD1uZXcgV2Vha1NldDtjbGFzcyBqMHR7Y29uc3RydWN0b3IobCl7bGV0e2NvdW50Um93czphLGNvdW50Q29sdW1uczpkLHJvd3NMaW1pdDpoLGNvbHVt'@; put 'bnNMaW1pdDpmLGNvdW50Q29sdW1uSGVhZGVyczp2fT1sOyhmdW5jdGlvbiBCMHQoYyxsKXtVZ2UoYyxsKSxsLmFkZChjKX0pKHRoaXMsT1QpLFFfKHRoaXMsZTYsdm9pZCAwKSxRXyh0aGlzLFpKLHZvaWQgMCksUV8odGhpcyxSVCx2b2lkIDApLFFfKHRoaXMsV0osdm9pZCAwKSxRXyh0aGlz'@; put 'LFlKLHZvaWQgMCksUV8odGhpcyxMVCx2b2lkIDApLGV3KFpKLHRoaXMsYSksZXcoUlQsdGhpcyxkKSxldyhXSix0aGlzLGgpLGV3KFlKLHRoaXMsZiksZXcoTFQsdGhpcyx2KX1zZXRTZWxlY3RlZFJhbmdlKGwpe2V3KGU2LHRoaXMsbCl9Z2V0Q2VsbHNSYW5nZSgpe2lmKDA9PT1lZChaSix0'@; put 'aGlzKS5jYWxsKHRoaXMpfHwwPT09ZWQoUlQsdGhpcykuY2FsbCh0aGlzKSlyZXR1cm4gbnVsbDtjb25zdHtyb3c6bCxjb2w6YX09ZWQoZTYsdGhpcykuZ2V0VG9wU3RhcnRDb3JuZXIoKSx7cm93OmQsY29sOmh9PWVkKGU2LHRoaXMpLmdldEJvdHRvbUVuZENvcm5lcigpLGY9dHcoT1QsdGhp'@; put 'cyx6MHQpLmNhbGwodGhpcyxsLGQpLHY9dHcoT1QsdGhpcyxHSikuY2FsbCh0aGlzLGEsaCk7cmV0dXJue2lzUmFuZ2VUcmltbWVkOmQhPT1mfHxoIT09dixzdGFydFJvdzpsLHN0YXJ0Q29sOmEsZW5kUm93OmYsZW5kQ29sOnZ9fWdldE1vc3RCb3R0b21Db2x1bW5IZWFkZXJzUmFuZ2UoKXtp'@; put 'ZigwPT09ZWQoUlQsdGhpcykuY2FsbCh0aGlzKXx8MD09PWVkKExULHRoaXMpLmNhbGwodGhpcykpcmV0dXJuIG51bGw7Y29uc3R7Y29sOmx9PWVkKGU2LHRoaXMpLmdldFRvcFN0YXJ0Q29ybmVyKCkse2NvbDphfT1lZChlNix0aGlzKS5nZXRCb3R0b21FbmRDb3JuZXIoKSxkPXR3KE9ULHRo'@; put 'aXMsR0opLmNhbGwodGhpcyxsLGEpO3JldHVybntpc1JhbmdlVHJpbW1lZDphIT09ZCxzdGFydFJvdzotMSxzdGFydENvbDpsLGVuZFJvdzotMSxlbmRDb2w6ZH19Z2V0QWxsQ29sdW1uSGVhZGVyc1JhbmdlKCl7aWYoMD09PWVkKFJULHRoaXMpLmNhbGwodGhpcyl8fDA9PT1lZChMVCx0aGlz'@; put 'KS5jYWxsKHRoaXMpKXJldHVybiBudWxsO2NvbnN0e2NvbDpsfT1lZChlNix0aGlzKS5nZXRUb3BTdGFydENvcm5lcigpLHtjb2w6YX09ZWQoZTYsdGhpcykuZ2V0Qm90dG9tRW5kQ29ybmVyKCksZD10dyhPVCx0aGlzLEdKKS5jYWxsKHRoaXMsbCxhKTtyZXR1cm57aXNSYW5nZVRyaW1tZWQ6'@; put 'YSE9PWQsc3RhcnRSb3c6LWVkKExULHRoaXMpLmNhbGwodGhpcyksc3RhcnRDb2w6bCxlbmRSb3c6LTEsZW5kQ29sOmR9fX1mdW5jdGlvbiBHSihjLGwpe3JldHVybiBNYXRoLm1pbihsLE1hdGgubWF4KGMrZWQoWUosdGhpcykuY2FsbCh0aGlzKS0xLGMpKX1mdW5jdGlvbiB6MHQoYyxsKXty'@; put 'ZXR1cm4gTWF0aC5taW4obCxNYXRoLm1heChjK2VkKFdKLHRoaXMpLmNhbGwodGhpcyktMSxjKSl9ZnVuY3Rpb24gWmdlKGMpe2NvbnN0IGw9W10sYT1bXTtyZXR1cm4gS24oYyxkPT57S2EoTWF0aC5taW4oZC5zdGFydFJvdyxkLmVuZFJvdyksTWF0aC5tYXgoZC5zdGFydFJvdyxkLmVuZFJv'@; put 'dyksST0+ey0xPT09bC5pbmRleE9mKEkpJiZsLnB1c2goSSl9KSxLYShNYXRoLm1pbihkLnN0YXJ0Q29sLGQuZW5kQ29sKSxNYXRoLm1heChkLnN0YXJ0Q29sLGQuZW5kQ29sKSxJPT57LTE9PT1hLmluZGV4T2YoSSkmJmEucHVzaChJKX0pfSkse3Jvd3M6bCxjb2x1bW5zOmF9fWZ1bmN0aW9u'@; put 'IHQ2KGMsbCxhKXtXZ2UoYyxsKSxsLnNldChjLGEpfWZ1bmN0aW9uIFdnZShjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9ZnVuY3Rpb24gUFQoYyxsLGEp'@; put 'e3JldHVybihsPWZ1bmN0aW9uIFowdChjKXt2YXIgbD1mdW5jdGlvbiBXMHQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmpl'@; put 'Y3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2Yg'@; put 'bD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWZ1bmN0aW9uIFdkKGMsbCl7cmV0dXJuIGMuZ2V0KFlkKGMsbCkpfWZ1bmN0aW9uIHYzKGMsbCxhKXty'@; put 'ZXR1cm4gYy5zZXQoWWQoYyxsKSxhKSxhfWZ1bmN0aW9uIFlkKGMsbCxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhsKSlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzP2w6YTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGVsZW1lbnQgaXMgbm90IHByZXNlbnQg'@; put 'b24gdGhpcyBvYmplY3QiKX1NYS5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJDb3B5TGltaXQiKSxNYS5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigibW9kaWZ5Q29weWFibGVSYW5nZSIpLE1hLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJiZWZvcmVDdXQiKSxNYS5nZXRTaW5nbGV0'@; put 'b24oKS5yZWdpc3RlcigiYWZ0ZXJDdXQiKSxNYS5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYmVmb3JlUGFzdGUiKSxNYS5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJQYXN0ZSIpLE1hLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJiZWZvcmVDb3B5IiksTWEuZ2V0U2luZ2xldG9u'@; put 'KCkucmVnaXN0ZXIoImFmdGVyQ29weSIpO2NvbnN0ICRKPSJjb3B5UGFzdGUiLEcwdD1bImZyYWdtZW50U2VsZWN0aW9uIl0sWWdlPVsnPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJIYW5kc29udGFibGUiLz4nLCc8c3R5bGUgdHlwZT0idGV4dC9jc3MiPnRke3doaXRlLXNwYWNl'@; put 'Om5vcm1hbH1icnttc28tZGF0YS1wbGFjZW1lbnQ6c2FtZS1jZWxsfTwvc3R5bGU+J10uam9pbigiIik7dmFyIEtKPW5ldyBXZWFrTWFwLFhKPW5ldyBXZWFrTWFwLHFKPW5ldyBXZWFrTWFwLG53PW5ldyBXZWFrTWFwLEhGPW5ldyBXZWFrTWFwLE5GPW5ldyBXZWFrTWFwLHJ3PW5ldyBXZWFr'@; put 'TWFwLFZGPW5ldyBXZWFrTWFwLE5oPW5ldyBXZWFrU2V0O2NsYXNzICQwdCBleHRlbmRzIEZve2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxmdW5jdGlvbiBVMHQoYyxsKXtXZ2UoYyxsKSxsLmFkZChjKX0odGhpcyxOaCksUFQodGhpcywiY29sdW1uc0xpbWl0IiwxLzApLFBU'@; put 'KHRoaXMsInJvd3NMaW1pdCIsMS8wKSxQVCh0aGlzLCJwYXN0ZU1vZGUiLCJvdmVyd3JpdGUiKSxQVCh0aGlzLCJ1aUNvbnRhaW5lciIsdGhpcy5ob3Qucm9vdERvY3VtZW50LmJvZHkpLHQ2KHRoaXMsS0osITEpLHQ2KHRoaXMsWEosITEpLHQ2KHRoaXMscUosITEpLHQ2KHRoaXMsbncsImNl'@; put 'bGxzLW9ubHkiKSx0Nih0aGlzLEhGLCExKSx0Nih0aGlzLE5GLCExKSx0Nih0aGlzLHJ3LG5ldyBqMHQoe2NvdW50Um93czooKT0+dGhpcy5ob3QuY291bnRSb3dzKCksY291bnRDb2x1bW5zOigpPT50aGlzLmhvdC5jb3VudENvbHMoKSxyb3dzTGltaXQ6KCk9PnRoaXMucm93c0xpbWl0LGNv'@; put 'bHVtbnNMaW1pdDooKT0+dGhpcy5jb2x1bW5zTGltaXQsY291bnRDb2x1bW5IZWFkZXJzOigpPT50aGlzLmhvdC52aWV3LmdldENvbHVtbkhlYWRlcnNDb3VudCgpfSkpLHQ2KHRoaXMsVkYsITEpLFBUKHRoaXMsImNvcHlhYmxlUmFuZ2VzIixbXSl9c3RhdGljIGdldCBQTFVHSU5fS0VZKCl7'@; put 'cmV0dXJuICRKfXN0YXRpYyBnZXQgU0VUVElOR19LRVlTKCl7cmV0dXJuWyRKLC4uLkcwdF19c3RhdGljIGdldCBQTFVHSU5fUFJJT1JJVFkoKXtyZXR1cm4gODB9c3RhdGljIGdldCBERUZBVUxUX1NFVFRJTkdTKCl7cmV0dXJue3Bhc3RlTW9kZToib3ZlcndyaXRlIixyb3dzTGltaXQ6MS8w'@; put 'LGNvbHVtbnNMaW1pdDoxLzAsY29weUNvbHVtbkhlYWRlcnM6ITEsY29weUNvbHVtbkdyb3VwSGVhZGVyczohMSxjb3B5Q29sdW1uSGVhZGVyc09ubHk6ITF9fWlzRW5hYmxlZCgpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVskSl19ZW5hYmxlUGx1Z2luKCl7dmFyIGwsYSxkPXRo'@; put 'aXM7dGhpcy5lbmFibGVkfHwodGhpcy5wYXN0ZU1vZGU9bnVsbCE9PShsPXRoaXMuZ2V0U2V0dGluZygicGFzdGVNb2RlIikpJiZ2b2lkIDAhPT1sP2w6dGhpcy5wYXN0ZU1vZGUsdGhpcy5yb3dzTGltaXQ9aXNOYU4odGhpcy5nZXRTZXR0aW5nKCJyb3dzTGltaXQiKSk/dGhpcy5yb3dzTGlt'@; put 'aXQ6dGhpcy5nZXRTZXR0aW5nKCJyb3dzTGltaXQiKSx0aGlzLmNvbHVtbnNMaW1pdD1pc05hTih0aGlzLmdldFNldHRpbmcoImNvbHVtbnNMaW1pdCIpKT90aGlzLmNvbHVtbnNMaW1pdDp0aGlzLmdldFNldHRpbmcoImNvbHVtbnNMaW1pdCIpLHYzKEtKLHRoaXMsdGhpcy5nZXRTZXR0aW5n'@; put 'KCJjb3B5Q29sdW1uSGVhZGVycyIpKSx2MyhYSix0aGlzLHRoaXMuZ2V0U2V0dGluZygiY29weUNvbHVtbkdyb3VwSGVhZGVycyIpKSx2MyhxSix0aGlzLHRoaXMuZ2V0U2V0dGluZygiY29weUNvbHVtbkhlYWRlcnNPbmx5IikpLHRoaXMudWlDb250YWluZXI9bnVsbCE9PShhPXRoaXMuZ2V0'@; put 'U2V0dGluZygidWlDb250YWluZXIiKSkmJnZvaWQgMCE9PWE/YTp0aGlzLnVpQ29udGFpbmVyLHRoaXMuYWRkSG9vaygiYWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zIixoPT5ZZChOaCx0aGlzLHEwdCkuY2FsbCh0aGlzLGgpKSx0aGlzLmFkZEhvb2soImFmdGVyU2VsZWN0aW9uIixm'@; put 'dW5jdGlvbigpe2Zvcih2YXIgaD1hcmd1bWVudHMubGVuZ3RoLGY9bmV3IEFycmF5KGgpLHY9MDt2PGg7disrKWZbdl09YXJndW1lbnRzW3ZdO3JldHVybiBZZChOaCxkLEowdCkuY2FsbChkLC4uLmYpfSksdGhpcy5hZGRIb29rKCJhZnRlclNlbGVjdGlvbkVuZCIsKCk9PllkKE5oLHRoaXMs'@; put 'UTB0KS5jYWxsKHRoaXMpKSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHRoaXMuaG90LnJvb3REb2N1bWVudCwiY29weSIsZnVuY3Rpb24oKXtyZXR1cm4gZC5vbkNvcHkoLi4uYXJndW1lbnRzKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5o'@; put 'b3Qucm9vdERvY3VtZW50LCJjdXQiLGZ1bmN0aW9uKCl7cmV0dXJuIGQub25DdXQoLi4uYXJndW1lbnRzKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5ob3Qucm9vdERvY3VtZW50LCJwYXN0ZSIsZnVuY3Rpb24oKXtyZXR1cm4gZC5vblBhc3RlKC4uLmFyZ3Vt'@; put 'ZW50cyl9KSxzXygpJiYodGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLmhvdC5yb290RG9jdW1lbnQuYm9keSwibW91c2VlbnRlciIsZnVuY3Rpb24oKXtmb3IodmFyIGg9YXJndW1lbnRzLmxlbmd0aCxmPW5ldyBBcnJheShoKSx2PTA7djxoO3YrKylmW3ZdPWFyZ3Vt'@; put 'ZW50c1t2XTtyZXR1cm4gWWQoTmgsZCxlMXQpLmNhbGwoZCwuLi5mKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5ob3Qucm9vdERvY3VtZW50LmJvZHksIm1vdXNlbGVhdmUiLGZ1bmN0aW9uKCl7Zm9yKHZhciBoPWFyZ3VtZW50cy5sZW5ndGgsZj1uZXcgQXJy'@; put 'YXkoaCksdj0wO3Y8aDt2KyspZlt2XT1hcmd1bWVudHNbdl07cmV0dXJuIFlkKE5oLGQsdDF0KS5jYWxsKGQsLi4uZil9KSx0aGlzLmFkZEhvb2soImFmdGVyU2VsZWN0aW9uIiwoKT0+WWQoTmgsdGhpcyxuMXQpLmNhbGwodGhpcykpKSxzdXBlci5lbmFibGVQbHVnaW4oKSl9dXBkYXRlUGx1'@; put 'Z2luKCl7dGhpcy5kaXNhYmxlUGx1Z2luKCksdGhpcy5lbmFibGVQbHVnaW4oKSxzdXBlci51cGRhdGVQbHVnaW4oKX1kaXNhYmxlUGx1Z2luKCl7c3VwZXIuZGlzYWJsZVBsdWdpbigpfWNvcHkoKXt2Myhudyx0aGlzLGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBd'@; put 'P2FyZ3VtZW50c1swXToiY2VsbHMtb25seSIpLHYzKEhGLHRoaXMsITApLFlkKE5oLHRoaXMsR2dlKS5jYWxsKHRoaXMsImNvcHkiKX1jb3B5Q2VsbHNPbmx5KCl7dGhpcy5jb3B5KCJjZWxscy1vbmx5Iil9Y29weUNvbHVtbkhlYWRlcnNPbmx5KCl7dGhpcy5jb3B5KCJjb2x1bW4taGVhZGVy'@; put 'cy1vbmx5Iil9Y29weVdpdGhBbGxDb2x1bW5IZWFkZXJzKCl7dGhpcy5jb3B5KCJ3aXRoLWNvbHVtbi1ncm91cC1oZWFkZXJzIil9Y29weVdpdGhDb2x1bW5IZWFkZXJzKCl7dGhpcy5jb3B5KCJ3aXRoLWNvbHVtbi1oZWFkZXJzIil9Y3V0KCl7djMoTkYsdGhpcywhMCksWWQoTmgsdGhpcyxH'@; put 'Z2UpLmNhbGwodGhpcywiY3V0Iil9Z2V0UmFuZ2VkQ29weWFibGVEYXRhKGwpe3JldHVybiByVCh0aGlzLmdldFJhbmdlZERhdGEobCkpfWdldFJhbmdlZERhdGEobCl7Y29uc3QgYT1bXSx7cm93czpkLGNvbHVtbnM6aH09WmdlKGwpO3JldHVybiBLbihkLGY9Pntjb25zdCB2PVtdO0tuKGgs'@; put 'TT0+e3YucHVzaChmPDA/dGhpcy5ob3QuZ2V0Q29sSGVhZGVyKE0sZik6dGhpcy5ob3QuZ2V0Q29weWFibGVEYXRhKGYsTSkpfSksYS5wdXNoKHYpfSksYX1wYXN0ZSgpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIixhPWFy'@; put 'Z3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpsO2lmKCFsJiYhYSlyZXR1cm47Y29uc3QgZD1uZXcgVjB0O2wmJmQuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCJ0ZXh0L3BsYWluIixsKSxhJiZkLmNsaXBib2FyZERhdGEuc2V0RGF0YSgidGV4dC9o'@; put 'dG1sIixhKSx0aGlzLm9uUGFzdGUoZCl9c2V0Q29weWFibGVUZXh0KCl7Y29uc3QgbD10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpO2lmKCFsKXJldHVybjtpZihsLmlzU2luZ2xlSGVhZGVyKCkpcmV0dXJuIHZvaWQodGhpcy5jb3B5YWJsZVJhbmdlcz1bXSk7V2QocncsdGhpcyku'@; put 'c2V0U2VsZWN0ZWRSYW5nZShsKTtjb25zdCBhPW5ldyBNYXAoW1siaGVhZGVycyIsbnVsbF0sWyJjZWxscyIsbnVsbF1dKTsiY29sdW1uLWhlYWRlcnMtb25seSI9PT1XZChudyx0aGlzKT9hLnNldCgiaGVhZGVycyIsV2QocncsdGhpcykuZ2V0TW9zdEJvdHRvbUNvbHVtbkhlYWRlcnNSYW5n'@; put 'ZSgpKTooIndpdGgtY29sdW1uLWhlYWRlcnMiPT09V2QobncsdGhpcyk/YS5zZXQoImhlYWRlcnMiLFdkKHJ3LHRoaXMpLmdldE1vc3RCb3R0b21Db2x1bW5IZWFkZXJzUmFuZ2UoKSk6IndpdGgtY29sdW1uLWdyb3VwLWhlYWRlcnMiPT09V2QobncsdGhpcykmJmEuc2V0KCJoZWFkZXJzIixX'@; put 'ZChydyx0aGlzKS5nZXRBbGxDb2x1bW5IZWFkZXJzUmFuZ2UoKSksYS5zZXQoImNlbGxzIixXZChydyx0aGlzKS5nZXRDZWxsc1JhbmdlKCkpKSx0aGlzLmNvcHlhYmxlUmFuZ2VzPUFycmF5LmZyb20oYS52YWx1ZXMoKSkuZmlsdGVyKGg9Pm51bGwhPT1oKS5tYXAoaD0+e2xldHtzdGFydFJv'@; put 'dzpmLHN0YXJ0Q29sOnYsZW5kUm93Ok0sZW5kQ29sOkl9PWg7cmV0dXJue3N0YXJ0Um93OmYsc3RhcnRDb2w6dixlbmRSb3c6TSxlbmRDb2w6SX19KSx0aGlzLmNvcHlhYmxlUmFuZ2VzPXRoaXMuaG90LnJ1bkhvb2tzKCJtb2RpZnlDb3B5YWJsZVJhbmdlIix0aGlzLmNvcHlhYmxlUmFuZ2Vz'@; put 'KTtjb25zdCBkPWEuZ2V0KCJjZWxscyIpO2lmKG51bGwhPT1kJiZkLmlzUmFuZ2VUcmltbWVkKXtjb25zdHtzdGFydFJvdzpoLHN0YXJ0Q29sOmYsZW5kUm93OnYsZW5kQ29sOk19PWQ7dGhpcy5ob3QucnVuSG9va3MoImFmdGVyQ29weUxpbWl0Iix2LWgrMSxNLWYrMSx0aGlzLnJvd3NMaW1p'@; put 'dCx0aGlzLmNvbHVtbnNMaW1pdCl9fWlzRWRpdG9yT3BlbmVkKCl7dmFyIGw7cmV0dXJuIG51bGw9PT0obD10aGlzLmhvdC5nZXRBY3RpdmVFZGl0b3IoKSl8fHZvaWQgMD09PWw/dm9pZCAwOmwuaXNPcGVuZWQoKX1wb3B1bGF0ZVZhbHVlcyhsKXtsZXQgYT1hcmd1bWVudHMubGVuZ3RoPjEm'@; put 'JnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtpZighbC5sZW5ndGgpcmV0dXJuO2NvbnN0IGQ9bC5sZW5ndGgsaD1sWzBdLmxlbmd0aCxmPVtdLHtyb3c6dixjb2w6TX09YS5nZXRUb3BTdGFydENvcm5lcigpLHtyb3c6'@; put 'SSxjb2w6R309YS5nZXRCb3R0b21FbmRDb3JuZXIoKTtsZXQgcmU9dix1ZT1NLHllPXYsRWU9TTtmb3IoO2YubGVuZ3RoPGR8fHJlPD1JOyl7Y29uc3R7c2tpcFJvd09uUGFzdGU6QmUsdmlzdWFsUm93OkdlfT10aGlzLmhvdC5nZXRDZWxsTWV0YShyZSxNKTtpZihyZT1HZSsxLCEwPT09QmUp'@; put 'Y29udGludWU7eWU9R2UsdWU9TTtjb25zdCBzdD1bXSxwdD1mLmxlbmd0aCVkO2Zvcig7c3QubGVuZ3RoPGh8fHVlPD1HOyl7Y29uc3R7c2tpcENvbHVtbk9uUGFzdGU6ZHQsdmlzdWFsQ29sOnF0fT10aGlzLmhvdC5nZXRDZWxsTWV0YSh2LHVlKTsodWU9cXQrMSwhMCE9PWR0KSYmKEVlPXF0'@; put 'LHN0LnB1c2gobFtwdF1bc3QubGVuZ3RoJWhdKSl9Zi5wdXNoKHN0KX1yZXR1cm4gdjMoVkYsdGhpcywhMCksdGhpcy5ob3QucG9wdWxhdGVGcm9tQXJyYXkodixNLGYsdm9pZCAwLHZvaWQgMCwiQ29weVBhc3RlLnBhc3RlIix0aGlzLnBhc3RlTW9kZSksW3YsTSx5ZSxFZV19b25Db3B5KGwp'@; put 'e2NvbnN0IGE9bC5jb21wb3NlZFBhdGgoKVswXSxkPXRoaXMuaG90LmdldEZvY3VzTWFuYWdlcigpLmdldFJlZm9jdXNFbGVtZW50KCksaD1hPy5oYXNBdHRyaWJ1dGUoImRhdGEtaG90LWlucHV0Iik7aWYoIXRoaXMuaG90LmlzTGlzdGVuaW5nKCkmJiFXZChIRix0aGlzKXx8dGhpcy5pc0Vk'@; put 'aXRvck9wZW5lZCgpfHxrcChhKSYmKGgmJmEhPT1kfHwhaCYmYSE9PXRoaXMuaG90LnJvb3REb2N1bWVudC5ib2R5JiYhTUUoYSx0aGlzLmhvdC5yb290RWxlbWVudCkpKXJldHVybjtsLnByZXZlbnREZWZhdWx0KCksdGhpcy5zZXRDb3B5YWJsZVRleHQoKSx2MyhIRix0aGlzLCExKTtjb25z'@; put 'dCBmPXRoaXMuZ2V0UmFuZ2VkRGF0YSh0aGlzLmNvcHlhYmxlUmFuZ2VzKSx2PVlkKE5oLHRoaXMsSzB0KS5jYWxsKHRoaXMsdGhpcy5jb3B5YWJsZVJhbmdlcyk7aWYodGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUNvcHkiLGYsdGhpcy5jb3B5YWJsZVJhbmdlcyx2KSl7Y29uc3QgST1yVChm'@; put 'KTtpZihsJiZsLmNsaXBib2FyZERhdGEpe2NvbnN0IEc9cSQoZik7bC5jbGlwYm9hcmREYXRhLnNldERhdGEoInRleHQvcGxhaW4iLEkpLGwuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCJ0ZXh0L2h0bWwiLFtZZ2UsR10uam9pbigiIikpfWVsc2UgdHlwZW9mIENsaXBib2FyZEV2ZW50PiJ1IiYm'@; put 'dGhpcy5ob3Qucm9vdFdpbmRvdy5jbGlwYm9hcmREYXRhLnNldERhdGEoIlRleHQiLEkpO3RoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckNvcHkiLGYsdGhpcy5jb3B5YWJsZVJhbmdlcyx2KX12Myhudyx0aGlzLCJjZWxscy1vbmx5Iil9b25DdXQobCl7Y29uc3QgYT1sLmNvbXBvc2VkUGF0aCgp'@; put 'WzBdLGQ9dGhpcy5ob3QuZ2V0Rm9jdXNNYW5hZ2VyKCkuZ2V0UmVmb2N1c0VsZW1lbnQoKSxoPWE/Lmhhc0F0dHJpYnV0ZSgiZGF0YS1ob3QtaW5wdXQiKTtpZighdGhpcy5ob3QuaXNMaXN0ZW5pbmcoKSYmIVdkKE5GLHRoaXMpfHx0aGlzLmlzRWRpdG9yT3BlbmVkKCl8fGtwKGEpJiYoaCYm'@; put 'YSE9PWR8fCFoJiZhIT09dGhpcy5ob3Qucm9vdERvY3VtZW50LmJvZHkmJiFNRShhLHRoaXMuaG90LnJvb3RFbGVtZW50KSkpcmV0dXJuO2wucHJldmVudERlZmF1bHQoKSx0aGlzLnNldENvcHlhYmxlVGV4dCgpLHYzKE5GLHRoaXMsITEpO2NvbnN0IGY9dGhpcy5nZXRSYW5nZWREYXRhKHRo'@; put 'aXMuY29weWFibGVSYW5nZXMpO2lmKHRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVDdXQiLGYsdGhpcy5jb3B5YWJsZVJhbmdlcykpe2NvbnN0IE09clQoZik7aWYobCYmbC5jbGlwYm9hcmREYXRhKXtjb25zdCBJPXEkKGYpO2wuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCJ0ZXh0L3BsYWluIixN'@; put 'KSxsLmNsaXBib2FyZERhdGEuc2V0RGF0YSgidGV4dC9odG1sIixbWWdlLEldLmpvaW4oIiIpKX1lbHNlIHR5cGVvZiBDbGlwYm9hcmRFdmVudD4idSImJnRoaXMuaG90LnJvb3RXaW5kb3cuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCJUZXh0IixNKTt0aGlzLmhvdC5lbXB0eVNlbGVjdGVkQ2Vs'@; put 'bHMoIkNvcHlQYXN0ZS5jdXQiKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJDdXQiLGYsdGhpcy5jb3B5YWJsZVJhbmdlcyl9fW9uUGFzdGUobCl7Y29uc3QgYT1sLmNvbXBvc2VkUGF0aCgpWzBdLGQ9dGhpcy5ob3QuZ2V0Rm9jdXNNYW5hZ2VyKCkuZ2V0UmVmb2N1c0VsZW1lbnQoKSxoPWE/'@; put 'Lmhhc0F0dHJpYnV0ZSgiZGF0YS1ob3QtaW5wdXQiKTtpZighdGhpcy5ob3QuaXNMaXN0ZW5pbmcoKXx8dGhpcy5pc0VkaXRvck9wZW5lZCgpfHwhdGhpcy5ob3QuZ2V0U2VsZWN0ZWQoKXx8a3AoYSkmJihoJiZhIT09ZHx8IWgmJmEhPT10aGlzLmhvdC5yb290RG9jdW1lbnQuYm9keSYmIU1F'@; put 'KGEsdGhpcy5ob3Qucm9vdEVsZW1lbnQpKSlyZXR1cm47bGV0IGY7aWYobC5wcmV2ZW50RGVmYXVsdCgpLGwmJnR5cGVvZiBsLmNsaXBib2FyZERhdGE8InUiKXtjb25zdCByZT1QTyhsLmNsaXBib2FyZERhdGEuZ2V0RGF0YSgidGV4dC9odG1sIikse0FERF9UQUdTOlsibWV0YSJdLEFERF9B'@; put 'VFRSOlsiY29udGVudCJdLEZPUkNFX0JPRFk6ITB9KTtmPXJlJiYvKDx0YWJsZSl8KDxUQUJMRSkvZy50ZXN0KHJlKT9rZmUocmUsdGhpcy5ob3Qucm9vdERvY3VtZW50KS5kYXRhOmwuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCJ0ZXh0L3BsYWluIil9ZWxzZSB0eXBlb2YgQ2xpcGJvYXJkRXZl'@; put 'bnQ+InUiJiZ0eXBlb2YgdGhpcy5ob3Qucm9vdFdpbmRvdy5jbGlwYm9hcmREYXRhPCJ1IiYmKGY9dGhpcy5ob3Qucm9vdFdpbmRvdy5jbGlwYm9hcmREYXRhLmdldERhdGEoIlRleHQiKSk7aWYoInN0cmluZyI9PXR5cGVvZiBmJiYoZj1mdW5jdGlvbiBWcnQoYyl7Y29uc3QgbD1bWyIiXV07'@; put 'aWYoMD09PWMubGVuZ3RoKXJldHVybiBsO2xldCBoLGE9MCxkPTA7Zm9yKDtjLmxlbmd0aD4wJiZoIT09Yy5sZW5ndGg7KWlmKGg9Yy5sZW5ndGgsYy5tYXRjaCh3cGUpKWM9Yy5yZXBsYWNlKHdwZSwiIiksYSs9MSxsW2RdW2FdPSIiO2Vsc2UgaWYoYy5tYXRjaChfcGUpKWM9Yy5yZXBsYWNl'@; put 'KF9wZSwiIiksYT0wLGQrPTEsbFtkXT1bIiJdO2Vsc2V7bGV0IGY9IiI7aWYoYy5zdGFydHNXaXRoKCciJykpe2xldCB2PTAsTT0hMDtmb3IoO007KXtjb25zdCBJPWMuc2xpY2UoMCwxKTsnIic9PT1JJiYodis9MSksZis9SSwoMD09PShjPWMuc2xpY2UoMSkpLmxlbmd0aHx8Yy5tYXRjaCgv'@; put 'XltcdFxyXG5dLykmJnYlMj09MCkmJihNPSExKX1mPWYucmVwbGFjZSgvXiIvLCIiKS5yZXBsYWNlKC8iJC8sIiIpLnJlcGxhY2UoL1siXSovZyxJPT5uZXcgQXJyYXkoTWF0aC5mbG9vcihJLmxlbmd0aC8yKSkuZmlsbCgnIicpLmpvaW4oIiIpKX1lbHNle2NvbnN0IHY9Yy5tYXRjaChOcnQp'@; put 'O2Y9dj92WzBdOiIiLGM9Yy5zbGljZShmLmxlbmd0aCl9bFtkXVthXT1mfXJldHVybiBsfShmKSksdm9pZCAwPT09Znx8ZiYmMD09PWYubGVuZ3RofHwhMT09PXRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVQYXN0ZSIsZix0aGlzLmNvcHlhYmxlUmFuZ2VzKSlyZXR1cm47Y29uc3RbdixNLEks'@; put 'R109dGhpcy5wb3B1bGF0ZVZhbHVlcyhmKTt0aGlzLmhvdC5zZWxlY3RDZWxsKHYsTSxNYXRoLm1pbih0aGlzLmhvdC5jb3VudFJvd3MoKS0xLEkpLE1hdGgubWluKHRoaXMuaG90LmNvdW50Q29scygpLTEsRykpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlclBhc3RlIixmLHRoaXMuY29weWFi'@; put 'bGVSYW5nZXMpfWRlc3Ryb3koKXtzdXBlci5kZXN0cm95KCl9fWZ1bmN0aW9uIEdnZShjKXtpZihzXygpKXtjb25zdCBsPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7aWYobCl7Y29uc3R7cm93OmEsY29sOmR9PWwuaGlnaGxpZ2h0LGg9dGhpcy5ob3QuZ2V0Q2VsbChhLGQsITAp'@; put 'O2gmJnVmZShoLCgpPT57dGhpcy5ob3Qucm9vdERvY3VtZW50LmV4ZWNDb21tYW5kKGMpfSl9fWVsc2UgdGhpcy5ob3Qucm9vdERvY3VtZW50LmV4ZWNDb21tYW5kKGMpfWZ1bmN0aW9uIEswdChjKXtjb25zdHtyb3dzOmx9PVpnZShjKTtsZXQgYT0wO2ZvcihsZXQgZD0wO2Q8bC5sZW5ndGgm'@; put 'JiEobFtkXT49MCk7ZCsrKWErPTE7cmV0dXJue2NvbHVtbkhlYWRlcnNDb3VudDphfX1mdW5jdGlvbiBYMHQoKXtpZih0aGlzLmhvdC5pc0xpc3RlbmluZygpKXtjb25zdCBjPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7aWYoYyl7Y29uc3R7cm93OmwsY29sOmF9PWMuaGlnaGxp'@; put 'Z2h0LGQ9dGhpcy5ob3QuZ2V0Q2VsbChsLGEsITApO2QmJkYkKGQpfX19ZnVuY3Rpb24gJGdlKCl7aWYodGhpcy5ob3QuaXNMaXN0ZW5pbmcoKSl7Y29uc3QgYz10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpO2lmKGMpe2NvbnN0e3JvdzpsLGNvbDphfT1jLmhpZ2hsaWdodCxkPXRo'@; put 'aXMuaG90LmdldENlbGwobCxhLCEwKTtudWxsIT1kJiZkLmhhc0F0dHJpYnV0ZSgiY29udGVudGVkaXRhYmxlIikmJkgkKGQpfX19ZnVuY3Rpb24gcTB0KGMpe2MuaXRlbXMucHVzaCh7bmFtZToiLS0tLS0tLS0tIn0sZnVuY3Rpb24gTDB0KGMpe3JldHVybntrZXk6ImNvcHkiLG5hbWUoKXty'@; put 'ZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKHJYKX0sY2FsbGJhY2soKXtjLmNvcHlDZWxsc09ubHkoKX0sZGlzYWJsZWQoKXtpZigwPT09dGhpcy5jb3VudFJvd3MoKXx8MD09PXRoaXMuY291bnRDb2xzKCkpcmV0dXJuITA7Y29uc3QgbD10aGlzLmdldFNlbGVjdGVkUmFuZ2VMYXN0'@; put 'KCk7aWYoIWx8fGwuaXNTaW5nbGVIZWFkZXIoKSlyZXR1cm4hMDtjb25zdCBhPXRoaXMuZ2V0U2VsZWN0ZWQoKTtyZXR1cm4hYXx8YS5sZW5ndGg+MX0saGlkZGVuOiExfX0odGhpcykpLFdkKEtKLHRoaXMpJiZjLml0ZW1zLnB1c2goZnVuY3Rpb24gRjB0KGMpe3JldHVybntrZXk6ImNvcHlf'@; put 'd2l0aF9jb2x1bW5faGVhZGVycyIsbmFtZSgpe2NvbnN0IGw9dGhpcy5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLGE9bD9BbyhsLmdldFdpZHRoKCktMSwwLDEpOjA7cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShpWCxhKX0sY2FsbGJhY2soKXtjLmNvcHlXaXRoQ29sdW1uSGVhZGVy'@; put 'cygpfSxkaXNhYmxlZCgpe2lmKCF0aGlzLmhhc0NvbEhlYWRlcnMoKSlyZXR1cm4hMDtjb25zdCBsPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtpZighbHx8bC5pc1NpbmdsZUhlYWRlcigpKXJldHVybiEwO2NvbnN0IGE9dGhpcy5nZXRTZWxlY3RlZCgpO3JldHVybiFhfHxhLmxlbmd0'@; put 'aD4xfSxoaWRkZW46ITF9fSh0aGlzKSksV2QoWEosdGhpcykmJmMuaXRlbXMucHVzaChmdW5jdGlvbiBQMHQoYyl7cmV0dXJue2tleToiY29weV93aXRoX2NvbHVtbl9ncm91cF9oZWFkZXJzIixuYW1lKCl7Y29uc3QgbD10aGlzLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksYT1sP0FvKGwuZ2V0'@; put 'V2lkdGgoKS0xLDAsMSk6MDtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKGFYLGEpfSxjYWxsYmFjaygpe2MuY29weVdpdGhBbGxDb2x1bW5IZWFkZXJzKCl9LGRpc2FibGVkKCl7aWYoIXRoaXMuaGFzQ29sSGVhZGVycygpfHwhdGhpcy5nZXRTZXR0aW5ncygpLm5lc3RlZEhlYWRl'@; put 'cnMpcmV0dXJuITA7Y29uc3QgbD10aGlzLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7aWYoIWx8fGwuaXNTaW5nbGVIZWFkZXIoKSlyZXR1cm4hMDtjb25zdCBhPXRoaXMuZ2V0U2VsZWN0ZWQoKTtyZXR1cm4hYXx8YS5sZW5ndGg+MX0saGlkZGVuOiExfX0odGhpcykpLFdkKHFKLHRoaXMpJiZj'@; put 'Lml0ZW1zLnB1c2goZnVuY3Rpb24gTzB0KGMpe3JldHVybntrZXk6ImNvcHlfY29sdW1uX2hlYWRlcnNfb25seSIsbmFtZSgpe2NvbnN0IGw9dGhpcy5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLGE9bD9BbyhsLmdldFdpZHRoKCktMSwwLDEpOjA7cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBo'@; put 'cmFzZShzWCxhKX0sY2FsbGJhY2soKXtjLmNvcHlDb2x1bW5IZWFkZXJzT25seSgpfSxkaXNhYmxlZCgpe2lmKCF0aGlzLmhhc0NvbEhlYWRlcnMoKSlyZXR1cm4hMDtjb25zdCBsPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtpZighbHx8bC5pc1NpbmdsZUhlYWRlcigpKXJldHVybiEw'@; put 'O2NvbnN0IGE9dGhpcy5nZXRTZWxlY3RlZCgpO3JldHVybiFhfHxhLmxlbmd0aD4xfSxoaWRkZW46ITF9fSh0aGlzKSksYy5pdGVtcy5wdXNoKGZ1bmN0aW9uIEgwdChjKXtyZXR1cm57a2V5OiJjdXQiLG5hbWUoKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKG9YKX0sY2FsbGJh'@; put 'Y2soKXtjLmN1dCgpfSxkaXNhYmxlZCgpe2lmKDA9PT10aGlzLmNvdW50Um93cygpfHwwPT09dGhpcy5jb3VudENvbHMoKSlyZXR1cm4hMDtjb25zdCBsPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtpZighbHx8bC5pc1NpbmdsZUhlYWRlcigpKXJldHVybiEwO2NvbnN0IGE9dGhpcy5n'@; put 'ZXRTZWxlY3RlZCgpO3JldHVybiFhfHxhLmxlbmd0aD4xfSxoaWRkZW46ITF9fSh0aGlzKSl9ZnVuY3Rpb24gSjB0KGMsbCxhLGQsaCl7V2QoVkYsdGhpcykmJihoLnZhbHVlPSEwKSx2MyhWRix0aGlzLCExKX1mdW5jdGlvbiBRMHQoKXt0aGlzLmlzRWRpdG9yT3BlbmVkKCl8fHRoaXMuaG90'@; put 'LmdldFNldHRpbmdzKCkuZnJhZ21lbnRTZWxlY3Rpb258fHRoaXMuc2V0Q29weWFibGVUZXh0KCl9ZnVuY3Rpb24gZTF0KCl7WWQoTmgsdGhpcywkZ2UpLmNhbGwodGhpcyl9ZnVuY3Rpb24gdDF0KCl7WWQoTmgsdGhpcyxYMHQpLmNhbGwodGhpcyl9ZnVuY3Rpb24gbjF0KCl7WWQoTmgsdGhp'@; put 'cywkZ2UpLmNhbGwodGhpcyl9ZnVuY3Rpb24gS2dlKGMsbCl7cmV0dXJuYGJvcmRlcl9yb3cke2N9Y29sJHtsfWB9ZnVuY3Rpb24gSkooYyl7dmFyIGwsYTtyZXR1cm4oSGEoYy5zdGFydCl8fEhhKGMubGVmdCkpJiYoYy5zdGFydD1udWxsIT09KGw9Yy5zdGFydCkmJnZvaWQgMCE9PWw/bDpj'@; put 'LmxlZnQpLChIYShjLmVuZCl8fEhhKGMucmlnaHQpKSYmKGMuZW5kPW51bGwhPT0oYT1jLmVuZCkmJnZvaWQgMCE9PWE/YTpjLnJpZ2h0KSxkZWxldGUgYy5sZWZ0LGRlbGV0ZSBjLnJpZ2h0LGN9ZnVuY3Rpb24gSFQoYyl7cmV0dXJuIEhhKGMuc3RhcnQpJiYoYy5sZWZ0PWMuc3RhcnQpLEhh'@; put 'KGMuZW5kKSYmKGMucmlnaHQ9Yy5lbmQpLGN9ZnVuY3Rpb24gUUooYyxsKXtyZXR1cm57aWQ6S2dlKGMsbCksYm9yZGVyOnt3aWR0aDoxLGNvbG9yOiIjMDAwIixjb3JuZXJWaXNpYmxlOiExfSxyb3c6Yyxjb2w6bCx0b3A6e2hpZGU6ITB9LGJvdHRvbTp7aGlkZTohMH0sc3RhcnQ6e2hpZGU6'@; put 'ITB9LGVuZDp7aGlkZTohMH19fWZ1bmN0aW9uIExnKGMsbCl7bGV0IGE9ITE7cmV0dXJuIEtuKGMuZ2V0U2VsZWN0ZWRSYW5nZSgpLGQ9PntkLmZvckFsbCgoaCxmKT0+e2lmKGg8MHx8ZjwwKXJldHVybjtjb25zdCB2PWMuZ2V0Q2VsbE1ldGEoaCxmKS5ib3JkZXJzO2lmKHYpe2lmKCFsKXJl'@; put 'dHVybiBhPSEwLCExO2lmKCFDdSh2W2xdLCJoaWRlIil8fCExPT09dltsXS5oaWRlKXJldHVybiBhPSEwLCExfX0pfSksYX1mdW5jdGlvbiBCRihjKXtyZXR1cm5gPHNwYW4gY2xhc3M9InNlbGVjdGVkIj5cdTI3MTM8L3NwYW4+JHtjfWB9Y29uc3QgbzF0PW5ldyBNYXAoW1sibGVmdCIsInN0'@; put 'YXJ0Il0sWyJyaWdodCIsImVuZCJdXSk7ZnVuY3Rpb24gYzF0KGMpe3JldHVybntrZXk6ImJvcmRlcnM6dG9wIixuYW1lKCl7bGV0IGw9dGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKHhYKTtyZXR1cm4gTGcodGhpcywidG9wIikmJihsPUJGKGwpKSxsfSxjYWxsYmFjayhsLGEpe2NvbnN0IGQ9'@; put 'TGcodGhpcywidG9wIik7Yy5wcmVwYXJlQm9yZGVyKGEsInRvcCIsZCl9fX1mdW5jdGlvbiB1MXQoYyl7Y29uc3QgbD1jLmhvdC5pc1J0bCgpPyJzdGFydCI6ImVuZCI7cmV0dXJue2tleToiYm9yZGVyczpyaWdodCIsbmFtZSgpe2xldCBhPXRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShFWCk7'@; put 'cmV0dXJuIExnKHRoaXMsbCkmJihhPUJGKGEpKSxhfSxjYWxsYmFjayhhLGQpe2NvbnN0IGg9TGcodGhpcyxsKTtjLnByZXBhcmVCb3JkZXIoZCxsLGgpfX19ZnVuY3Rpb24gZDF0KGMpe3JldHVybntrZXk6ImJvcmRlcnM6Ym90dG9tIixuYW1lKCl7bGV0IGw9dGhpcy5nZXRUcmFuc2xhdGVk'@; put 'UGhyYXNlKFRYKTtyZXR1cm4gTGcodGhpcywiYm90dG9tIikmJihsPUJGKGwpKSxsfSxjYWxsYmFjayhsLGEpe2NvbnN0IGQ9TGcodGhpcywiYm90dG9tIik7Yy5wcmVwYXJlQm9yZGVyKGEsImJvdHRvbSIsZCl9fX1mdW5jdGlvbiBoMXQoYyl7Y29uc3QgbD1jLmhvdC5pc1J0bCgpPyJlbmQi'@; put 'OiJzdGFydCI7cmV0dXJue2tleToiYm9yZGVyczpsZWZ0IixuYW1lKCl7bGV0IGE9dGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKEFYKTtyZXR1cm4gTGcodGhpcyxsKSYmKGE9QkYoYSkpLGF9LGNhbGxiYWNrKGEsZCl7Y29uc3QgaD1MZyh0aGlzLGwpO2MucHJlcGFyZUJvcmRlcihkLGwsaCl9'@; put 'fX1mdW5jdGlvbiBmMXQoYyl7cmV0dXJue2tleToiYm9yZGVyczpub19ib3JkZXJzIixuYW1lKCl7cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShrWCl9LGNhbGxiYWNrKGwsYSl7Yy5wcmVwYXJlQm9yZGVyKGEsIm5vQm9yZGVycyIpfSxkaXNhYmxlZCgpe3JldHVybiFMZyh0aGlz'@; put 'KX19fWZ1bmN0aW9uIFhnZShjLGwsYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGM/Yz09PWw6Yy5oYXMobCkpcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mz9sOmE7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBlbGVtZW50IGlzIG5vdCBwcmVzZW50IG9uIHRoaXMgb2JqZWN0Iil9Y29u'@; put 'c3QgakY9ImN1c3RvbUJvcmRlcnMiO3ZhciBlUT1uZXcgV2Vha1NldDtjbGFzcyBfMXQgZXh0ZW5kcyBGb3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksZnVuY3Rpb24gcDF0KGMsbCl7KGZ1bmN0aW9uIGcxdChjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3Io'@; put 'IkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShjLGwpLGwuYWRkKGMpfSh0aGlzLGVRKSxmdW5jdGlvbiBtMXQoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIHYxdChjKXt2YXIgbD1mdW5jdGlvbiB5MXQoYyxsKXtpZigi'@; put 'b2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0'@; put 'aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxl'@; put 'bnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfSh0aGlzLCJzYXZlZEJvcmRlcnMiLFtdKX1zdGF0aWMgZ2V0IFBMVUdJTl9LRVkoKXtyZXR1cm4gakZ9c3RhdGljIGdldCBQTFVHSU5fUFJJT1JJVFkoKXtyZXR1cm4gOTB9aXNFbmFibGVkKCl7cmV0'@; put 'dXJuISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpW2pGXX1lbmFibGVQbHVnaW4oKXt0aGlzLmVuYWJsZWR8fCh0aGlzLmFkZEhvb2soImFmdGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucyIsbD0+WGdlKGVRLHRoaXMsdzF0KS5jYWxsKHRoaXMsbCkpLHRoaXMuYWRkSG9vaygiaW5pdCIsKCk9'@; put 'PlhnZShlUSx0aGlzLEMxdCkuY2FsbCh0aGlzKSksc3VwZXIuZW5hYmxlUGx1Z2luKCkpfWRpc2FibGVQbHVnaW4oKXt0aGlzLmhpZGVCb3JkZXJzKCksc3VwZXIuZGlzYWJsZVBsdWdpbigpfXVwZGF0ZVBsdWdpbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCks'@; put 'dGhpcy5jaGFuZ2VCb3JkZXJTZXR0aW5ncygpLHN1cGVyLnVwZGF0ZVBsdWdpbigpfXNldEJvcmRlcnMobCxhKXtsZXQgZD1bInRvcCIsImJvdHRvbSIsInN0YXJ0IiwiZW5kIl0saD1udWxsO2EmJih0aGlzLmNoZWNrU2V0dGluZ3NDb2hlc2lvbihbYV0pLGQ9T2JqZWN0LmtleXMoYSksaD1K'@; put 'SihhKSk7Y29uc3Qgdj1lVCh4XyhsKSx7Y3JlYXRlQ2VsbENvb3Jkczp0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3Jkcy5iaW5kKHRoaXMuaG90KSxjcmVhdGVDZWxsUmFuZ2U6dGhpcy5ob3QuX2NyZWF0ZUNlbGxSYW5nZS5iaW5kKHRoaXMuaG90KX0pO0tuKGwsTT0+e3YoTSkuZm9yQWxsKChJ'@; put 'LEcpPT57S24oZCxyZT0+e3RoaXMucHJlcGFyZUJvcmRlckZyb21DdXN0b21BZGRlZChJLEcsaCxmdW5jdGlvbiBsMXQoYyl7dmFyIGw7cmV0dXJuIG51bGwhPT0obD1vMXQuZ2V0KGMpKSYmdm9pZCAwIT09bD9sOmN9KHJlKSl9KX0pfSksdGhpcy5ob3Qudmlldy5yZW5kZXIoKX1nZXRCb3Jk'@; put 'ZXJzKGwpe2lmKCFBcnJheS5pc0FycmF5KGwpKXJldHVybiB0aGlzLnNhdmVkQm9yZGVycztjb25zdCBkPWVUKHhfKGwpLHtjcmVhdGVDZWxsQ29vcmRzOnRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzLmJpbmQodGhpcy5ob3QpLGNyZWF0ZUNlbGxSYW5nZTp0aGlzLmhvdC5fY3JlYXRlQ2Vs'@; put 'bFJhbmdlLmJpbmQodGhpcy5ob3QpfSksaD1bXTtyZXR1cm4gS24obCxmPT57ZChmKS5mb3JBbGwoKHYsTSk9PntLbih0aGlzLnNhdmVkQm9yZGVycyxJPT57SS5yb3c9PT12JiZJLmNvbD09PU0mJmgucHVzaChIVChJKSl9KX0pfSksaH1jbGVhckJvcmRlcnMobCl7bD90aGlzLnNldEJvcmRl'@; put 'cnMobCk6KEtuKHRoaXMuc2F2ZWRCb3JkZXJzLGE9Pnt0aGlzLmNsZWFyQm9yZGVyc0Zyb21TZWxlY3Rpb25TZXR0aW5ncyhhLmlkKSx0aGlzLmNsZWFyTnVsbENlbGxSYW5nZSgpLHRoaXMuaG90LnJlbW92ZUNlbGxNZXRhKGEucm93LGEuY29sLCJib3JkZXJzIil9KSx0aGlzLnNhdmVkQm9y'@; put 'ZGVycy5sZW5ndGg9MCl9aW5zZXJ0Qm9yZGVySW50b1NldHRpbmdzKGwsYSl7dGhpcy5jaGVja1NhdmVkQm9yZGVycyhsKXx8dGhpcy5zYXZlZEJvcmRlcnMucHVzaChsKTtjb25zdCBoPXRoaXMuaG90Ll9jcmVhdGVDZWxsUmFuZ2UodGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMobC5yb3cs'@; put 'bC5jb2wpKTt0aGlzLmNoZWNrQ3VzdG9tU2VsZWN0aW9ucyhsLGgsYSl8fHRoaXMuaG90LnNlbGVjdGlvbi5oaWdobGlnaHQuYWRkQ3VzdG9tU2VsZWN0aW9uKHtib3JkZXI6bCx2aXN1YWxDZWxsUmFuZ2U6aH0pfXByZXBhcmVCb3JkZXJGcm9tQ3VzdG9tQWRkZWQobCxhLGQsaCl7Y29uc3Qg'@; put 'Zj10aGlzLmhvdC5jb3VudFJvd3MoKSx2PXRoaXMuaG90LmNvdW50Q29scygpO2lmKGw+PWZ8fGE+PXYpcmV0dXJuO2xldCBNPVFKKGwsYSk7ZCYmKE09ZnVuY3Rpb24gaTF0KGMsbCl7cmV0dXJuIEN1KGwsImJvcmRlciIpJiZsLmJvcmRlciYmKGMuYm9yZGVyPWwuYm9yZGVyKSxDdShsLCJ0'@; put 'b3AiKSYmSGEobC50b3ApJiYobC50b3A/KFhzKGwudG9wKXx8KGwudG9wPXt3aWR0aDoxLGNvbG9yOiIjMDAwIn0pLGMudG9wPWwudG9wKToobC50b3A9e2hpZGU6ITB9LGMudG9wPWwudG9wKSksQ3UobCwiYm90dG9tIikmJkhhKGwuYm90dG9tKSYmKGwuYm90dG9tPyhYcyhsLmJvdHRvbSl8'@; put 'fChsLmJvdHRvbT17d2lkdGg6MSxjb2xvcjoiIzAwMCJ9KSxjLmJvdHRvbT1sLmJvdHRvbSk6KGwuYm90dG9tPXtoaWRlOiEwfSxjLmJvdHRvbT1sLmJvdHRvbSkpLEN1KGwsInN0YXJ0IikmJkhhKGwuc3RhcnQpJiYobC5zdGFydD8oWHMobC5zdGFydCl8fChsLnN0YXJ0PXt3aWR0aDoxLGNv'@; put 'bG9yOiIjMDAwIn0pLGMuc3RhcnQ9bC5zdGFydCk6KGwuc3RhcnQ9e2hpZGU6ITB9LGMuc3RhcnQ9bC5zdGFydCkpLEN1KGwsImVuZCIpJiZIYShsLmVuZCkmJihsLmVuZD8oWHMobC5lbmQpfHwobC5lbmQ9e3dpZHRoOjEsY29sb3I6IiMwMDAifSksYy5lbmQ9bC5lbmQpOihsLmVuZD17aGlk'@; put 'ZTohMH0sYy5lbmQ9bC5lbmQpKSxjfShNLGQpLEtuKHRoaXMuaG90LnNlbGVjdGlvbi5oaWdobGlnaHQuY3VzdG9tU2VsZWN0aW9ucyxJPT57aWYoTS5pZD09PUkuc2V0dGluZ3MuaWQpcmV0dXJuIE9iamVjdC5hc3NpZ24oSS5zZXR0aW5ncyxkKSxNLmlkPUkuc2V0dGluZ3MuaWQsTS50b3A9'@; put 'SS5zZXR0aW5ncy50b3AsTS5ib3R0b209SS5zZXR0aW5ncy5ib3R0b20sTS5zdGFydD1JLnNldHRpbmdzLnN0YXJ0LE0uZW5kPUkuc2V0dGluZ3MuZW5kLCExfSkpLHRoaXMuaG90LnNldENlbGxNZXRhKGwsYSwiYm9yZGVycyIsSFQoTSkpLHRoaXMuaW5zZXJ0Qm9yZGVySW50b1NldHRpbmdz'@; put 'KE0saCl9cHJlcGFyZUJvcmRlckZyb21DdXN0b21BZGRlZFJhbmdlKGwsYSl7Y29uc3QgZD1NYXRoLm1pbihsLnRvLnJvdyx0aGlzLmhvdC5jb3VudFJvd3MoKS0xKSxoPU1hdGgubWluKGwudG8uY29sLHRoaXMuaG90LmNvdW50Q29scygpLTEpO0thKGwuZnJvbS5yb3csZCxmPT57S2EobC5m'@; put 'cm9tLmNvbCxoLHY9Pntjb25zdCBNPVFKKGYsdik7bGV0IEk9MDtmPT09bC5mcm9tLnJvdyYmQ3UoYSwidG9wIikmJihJKz0xLE0udG9wPWEudG9wKSxmPT09bC50by5yb3cmJkN1KGEsImJvdHRvbSIpJiYoSSs9MSxNLmJvdHRvbT1hLmJvdHRvbSksdj09PWwuZnJvbS5jb2wmJkN1KGEsInN0'@; put 'YXJ0IikmJihJKz0xLE0uc3RhcnQ9YS5zdGFydCksdj09PWwudG8uY29sJiZDdShhLCJlbmQiKSYmKEkrPTEsTS5lbmQ9YS5lbmQpLEk+MCYmKHRoaXMuaG90LnNldENlbGxNZXRhKGYsdiwiYm9yZGVycyIsSFQoTSkpLHRoaXMuaW5zZXJ0Qm9yZGVySW50b1NldHRpbmdzKE0pKX0pfSl9cmVt'@; put 'b3ZlQWxsQm9yZGVycyhsLGEpe2NvbnN0IGQ9S2dlKGwsYSk7dGhpcy5zcGxpY2VCb3JkZXIoZCksdGhpcy5jbGVhckJvcmRlcnNGcm9tU2VsZWN0aW9uU2V0dGluZ3MoZCksdGhpcy5jbGVhck51bGxDZWxsUmFuZ2UoKSx0aGlzLmhvdC5yZW1vdmVDZWxsTWV0YShsLGEsImJvcmRlcnMiKX1z'@; put 'ZXRCb3JkZXIobCxhLGQsaCl7bGV0IGY9dGhpcy5ob3QuZ2V0Q2VsbE1ldGEobCxhKS5ib3JkZXJzO2Y9ZiYmdm9pZCAwIT09Zi5ib3JkZXI/SkooZik6UUoobCxhKSxoPyhmW2RdPXtoaWRlOiEwfSw0PT09dGhpcy5jb3VudEhpZGUoZik/dGhpcy5yZW1vdmVBbGxCb3JkZXJzKGwsYSk6KHRo'@; put 'aXMuY2hlY2tDdXN0b21TZWxlY3Rpb25zRnJvbUNvbnRleHRNZW51KGYsZCxoKXx8dGhpcy5pbnNlcnRCb3JkZXJJbnRvU2V0dGluZ3MoZiksdGhpcy5ob3Quc2V0Q2VsbE1ldGEobCxhLCJib3JkZXJzIixIVChmKSkpKTooZltkXT17d2lkdGg6MSxjb2xvcjoiIzAwMCJ9LHRoaXMuY2hlY2tD'@; put 'dXN0b21TZWxlY3Rpb25zRnJvbUNvbnRleHRNZW51KGYsZCxoKXx8dGhpcy5pbnNlcnRCb3JkZXJJbnRvU2V0dGluZ3MoZiksdGhpcy5ob3Quc2V0Q2VsbE1ldGEobCxhLCJib3JkZXJzIixIVChmKSkpfXByZXBhcmVCb3JkZXIobCxhLGQpe0tuKGwsaD0+e2xldHtzdGFydDpmLGVuZDp2fT1o'@; put 'O2lmKGYucm93PT09di5yb3cmJmYuY29sPT09di5jb2wpIm5vQm9yZGVycyI9PT1hP3RoaXMucmVtb3ZlQWxsQm9yZGVycyhmLnJvdyxmLmNvbCk6dGhpcy5zZXRCb3JkZXIoZi5yb3csZi5jb2wsYSxkKTtlbHNlIHN3aXRjaChhKXtjYXNlIm5vQm9yZGVycyI6S2EoZi5jb2wsdi5jb2wsTT0+'@; put 'e0thKGYucm93LHYucm93LEk9Pnt0aGlzLnJlbW92ZUFsbEJvcmRlcnMoSSxNKX0pfSk7YnJlYWs7Y2FzZSJ0b3AiOkthKGYuY29sLHYuY29sLE09Pnt0aGlzLnNldEJvcmRlcihmLnJvdyxNLGEsZCl9KTticmVhaztjYXNlImJvdHRvbSI6S2EoZi5jb2wsdi5jb2wsTT0+e3RoaXMuc2V0Qm9y'@; put 'ZGVyKHYucm93LE0sYSxkKX0pO2JyZWFrO2Nhc2Uic3RhcnQiOkthKGYucm93LHYucm93LE09Pnt0aGlzLnNldEJvcmRlcihNLGYuY29sLGEsZCl9KTticmVhaztjYXNlImVuZCI6S2EoZi5yb3csdi5yb3csTT0+e3RoaXMuc2V0Qm9yZGVyKE0sdi5jb2wsYSxkKX0pfX0pfWNyZWF0ZUN1c3Rv'@; put 'bUJvcmRlcnMobCl7S24obCxhPT57Y29uc3QgZD1KSihhKTthLnJhbmdlP3RoaXMucHJlcGFyZUJvcmRlckZyb21DdXN0b21BZGRlZFJhbmdlKGEucmFuZ2UsZCk6dGhpcy5wcmVwYXJlQm9yZGVyRnJvbUN1c3RvbUFkZGVkKGEucm93LGEuY29sLGQpfSl9Y291bnRIaWRlKGwpe2NvbnN0e3Rv'@; put 'cDphLGJvdHRvbTpkLHN0YXJ0OmgsZW5kOmZ9PWw7cmV0dXJuIEd1KFthLGQsaCxmXSwoTSxJKT0+e2xldCBHPU07cmV0dXJuIEkmJkkuaGlkZSYmKEcrPTEpLEd9LDApfWNsZWFyQm9yZGVyc0Zyb21TZWxlY3Rpb25TZXR0aW5ncyhsKXtjb25zdCBhPXlvKHRoaXMuaG90LnNlbGVjdGlvbi5o'@; put 'aWdobGlnaHQuY3VzdG9tU2VsZWN0aW9ucyxkPT5kLnNldHRpbmdzLmlkKS5pbmRleE9mKGwpO2E+LTEmJnRoaXMuaG90LnNlbGVjdGlvbi5oaWdobGlnaHQuY3VzdG9tU2VsZWN0aW9uc1thXS5jbGVhcigpfWNsZWFyTnVsbENlbGxSYW5nZSgpe0tuKHRoaXMuaG90LnNlbGVjdGlvbi5oaWdo'@; put 'bGlnaHQuY3VzdG9tU2VsZWN0aW9ucywobCxhKT0+e2lmKG51bGw9PT1sLmNlbGxSYW5nZSlyZXR1cm4gdGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5jdXN0b21TZWxlY3Rpb25zW2FdLmRlc3Ryb3koKSx0aGlzLmhvdC5zZWxlY3Rpb24uaGlnaGxpZ2h0LmN1c3RvbVNlbGVjdGlvbnMu'@; put 'c3BsaWNlKGEsMSksITF9KX1oaWRlQm9yZGVycygpe0tuKHRoaXMuc2F2ZWRCb3JkZXJzLGw9Pnt0aGlzLmNsZWFyQm9yZGVyc0Zyb21TZWxlY3Rpb25TZXR0aW5ncyhsLmlkKSx0aGlzLmNsZWFyTnVsbENlbGxSYW5nZSgpfSl9c3BsaWNlQm9yZGVyKGwpe2NvbnN0IGE9eW8odGhpcy5zYXZl'@; put 'ZEJvcmRlcnMsZD0+ZC5pZCkuaW5kZXhPZihsKTthPi0xJiZ0aGlzLnNhdmVkQm9yZGVycy5zcGxpY2UoYSwxKX1jaGVja1NhdmVkQm9yZGVycyhsKXtsZXQgYT0hMTtyZXR1cm4gND09PXRoaXMuY291bnRIaWRlKGwpPyh0aGlzLnNwbGljZUJvcmRlcihsLmlkKSxhPSEwKTpLbih0aGlzLnNh'@; put 'dmVkQm9yZGVycywoaCxmKT0+e2lmKGwuaWQ9PT1oLmlkKXJldHVybiB0aGlzLnNhdmVkQm9yZGVyc1tmXT1sLGE9ITAsITF9KSxhfWNoZWNrQ3VzdG9tU2VsZWN0aW9uc0Zyb21Db250ZXh0TWVudShsLGEsZCl7bGV0IGg9ITE7cmV0dXJuIEtuKHRoaXMuaG90LnNlbGVjdGlvbi5oaWdobGln'@; put 'aHQuY3VzdG9tU2VsZWN0aW9ucyxmPT57aWYobC5pZD09PWYuc2V0dGluZ3MuaWQpcmV0dXJuIEtuKHRoaXMuaG90LnZpZXcuX3d0LnNlbGVjdGlvbk1hbmFnZXIuZ2V0Qm9yZGVySW5zdGFuY2VzKGYpLE09PntNLnRvZ2dsZUhpZGRlbkNsYXNzKGEsZCl9KSxoPSEwLCExfSksaH1jaGVja0N1'@; put 'c3RvbVNlbGVjdGlvbnMobCxhLGQpe2NvbnN0IGg9dGhpcy5jb3VudEhpZGUobCk7bGV0IGY9ITE7cmV0dXJuIDQ9PT1oPyh0aGlzLnJlbW92ZUFsbEJvcmRlcnMobC5yb3csbC5jb2wpLGY9ITApOktuKHRoaXMuaG90LnNlbGVjdGlvbi5oaWdobGlnaHQuY3VzdG9tU2VsZWN0aW9ucyx2PT57'@; put 'aWYobC5pZD09PXYuc2V0dGluZ3MuaWQpcmV0dXJuIHYudmlzdWFsQ2VsbFJhbmdlPWEsdi5jb21taXQoKSxkJiZLbih0aGlzLmhvdC52aWV3Ll93dC5zZWxlY3Rpb25NYW5hZ2VyLmdldEJvcmRlckluc3RhbmNlcyh2KSxJPT57SS5jaGFuZ2VCb3JkZXJTdHlsZShkLGwpfSksZj0hMCwhMX0p'@; put 'LGZ9Y2hhbmdlQm9yZGVyU2V0dGluZ3MoKXtjb25zdCBsPXRoaXMuaG90LmdldFNldHRpbmdzKClbakZdO2lmKEFycmF5LmlzQXJyYXkobCkpe2NvbnN0IGE9cDEobCk7dGhpcy5jaGVja1NldHRpbmdzQ29oZXNpb24oYSksYS5sZW5ndGh8fCh0aGlzLnNhdmVkQm9yZGVycz1hKSx0aGlzLmNy'@; put 'ZWF0ZUN1c3RvbUJvcmRlcnMoYSl9ZWxzZSB2b2lkIDAhPT1sJiZ0aGlzLmNyZWF0ZUN1c3RvbUJvcmRlcnModGhpcy5zYXZlZEJvcmRlcnMpfWNoZWNrU2V0dGluZ3NDb2hlc2lvbihsKXtjb25zdCBhPWZ1bmN0aW9uIGExdChjKXtyZXR1cm4gYy5zb21lKGw9PkhhKGwubGVmdCl8fEhhKGwu'@; put 'cmlnaHQpKX0obCksZD1mdW5jdGlvbiBzMXQoYyl7cmV0dXJuIGMuc29tZShsPT5IYShsLnN0YXJ0KXx8SGEobC5lbmQpKX0obCk7aWYoYSYmZCl0aHJvdyBuZXcgRXJyb3IoJ1RoZSAibGVmdCIvInJpZ2h0IiBhbmQgInN0YXJ0Ii8iZW5kIiBvcHRpb25zIHNob3VsZCBub3QgYmUgdXNlZCB0'@; put 'b2dldGhlci4gUGxlYXNlIHVzZSBvbmx5IHRoZSBvcHRpb24gInN0YXJ0Ii8iZW5kIi4nKTtpZih0aGlzLmhvdC5pc1J0bCgpJiZhKXRocm93IG5ldyBFcnJvcignVGhlICJsZWZ0Ii8icmlnaHQiIHByb3BlcnRpZXMgYXJlIG5vdCBzdXBwb3J0ZWQgZm9yIFJUTC4gUGxlYXNlIHVzZSBvcHRp'@; put 'b24gInN0YXJ0Ii8iZW5kIi4nKX1kZXN0cm95KCl7c3VwZXIuZGVzdHJveSgpfX1mdW5jdGlvbiB3MXQoYyl7dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtqRl0mJmMuaXRlbXMucHVzaCh7bmFtZToiLS0tLS0tLS0tIn0se2tleToiYm9yZGVycyIsbmFtZSgpe3JldHVybiB0aGlzLmdldFRyYW5z'@; put 'bGF0ZWRQaHJhc2UoTVgpfSxkaXNhYmxlZCgpe2NvbnN0IGw9dGhpcy5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpO3JldHVybiEobCYmIWwuaXNTaW5nbGVIZWFkZXIoKSl8fHRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5lcigpfSxzdWJtZW51OntpdGVtczpbYzF0KHRoaXMpLHUxdCh0'@; put 'aGlzKSxkMXQodGhpcyksaDF0KHRoaXMpLGYxdCh0aGlzKV19fSl9ZnVuY3Rpb24gQzF0KCl7dGhpcy5jaGFuZ2VCb3JkZXJTZXR0aW5ncygpfWZ1bmN0aW9uIHRRKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiB4MXQoYyl7dmFyIGw9ZnVuY3Rpb24gRTF0KGMsbCl7aWYoIm9iamVjdCIhPXR5'@; put 'cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJl'@; put 'dHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZToh'@; put 'MCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31mdW5jdGlvbiBxZ2UoYyxsLGEpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBjP2M9PT1sOmMuaGFzKGwpKXJldHVybiBhcmd1bWVudHMubGVuZ3RoPDM/bDphO3Rocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgZWxlbWVu'@; put 'dCBpcyBub3QgcHJlc2VudCBvbiB0aGlzIG9iamVjdCIpfWNvbnN0IEpnZT0iZHJhZ1RvU2Nyb2xsIjt2YXIgblE9bmV3IFdlYWtTZXQ7Y2xhc3MgQTF0IGV4dGVuZHMgRm97Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGZ1bmN0aW9uIFMxdChjLGwpeyhmdW5jdGlvbiBNMXQo'@; put 'YyxsKXtpZihsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfSkoYyxsKSxsLmFkZChjKX0odGhpcyxuUSksdFEodGhpcywiYm91bmRhcmllcyIsbnVsbCksdFEodGhpcywi'@; put 'Y2FsbGJhY2siLG51bGwpLHRRKHRoaXMsImxpc3RlbmluZyIsITEpfXN0YXRpYyBnZXQgUExVR0lOX0tFWSgpe3JldHVybiBKZ2V9c3RhdGljIGdldCBQTFVHSU5fUFJJT1JJVFkoKXtyZXR1cm4gMTAwfWlzRW5hYmxlZCgpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtKZ2VdfWVu'@; put 'YWJsZVBsdWdpbigpe3RoaXMuZW5hYmxlZHx8KHRoaXMuYWRkSG9vaygiYWZ0ZXJPbkNlbGxNb3VzZURvd24iLGw9PnFnZShuUSx0aGlzLFFnZSkuY2FsbCh0aGlzLGwpKSx0aGlzLmFkZEhvb2soImFmdGVyT25DZWxsQ29ybmVyTW91c2VEb3duIixsPT5xZ2UoblEsdGhpcyxRZ2UpLmNhbGwo'@; put 'dGhpcyxsKSksdGhpcy5yZWdpc3RlckV2ZW50cygpLHN1cGVyLmVuYWJsZVBsdWdpbigpKX11cGRhdGVQbHVnaW4oKXt0aGlzLmRpc2FibGVQbHVnaW4oKSx0aGlzLmVuYWJsZVBsdWdpbigpLHN1cGVyLnVwZGF0ZVBsdWdpbigpfWRpc2FibGVQbHVnaW4oKXt0aGlzLnVucmVnaXN0ZXJFdmVu'@; put 'dHMoKSxzdXBlci5kaXNhYmxlUGx1Z2luKCl9c2V0Qm91bmRhcmllcygpe3RoaXMuYm91bmRhcmllcz1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e2xlZnQ6MCxyaWdodDp0aGlzLmhvdC5yb290V2luZG93LmlubmVyV2lkdGgsdG9wOjAs'@; put 'Ym90dG9tOnRoaXMuaG90LnJvb3RXaW5kb3cuaW5uZXJIZWlnaHR9fXNldENhbGxiYWNrKGwpe3RoaXMuY2FsbGJhY2s9bH1jaGVjayhsLGEpe2xldCBkPTAsaD0wO2E8dGhpcy5ib3VuZGFyaWVzLnRvcD9oPWEtdGhpcy5ib3VuZGFyaWVzLnRvcDphPnRoaXMuYm91bmRhcmllcy5ib3R0b20m'@; put 'JihoPWEtdGhpcy5ib3VuZGFyaWVzLmJvdHRvbSksbDx0aGlzLmJvdW5kYXJpZXMubGVmdD9kPWwtdGhpcy5ib3VuZGFyaWVzLmxlZnQ6bD50aGlzLmJvdW5kYXJpZXMucmlnaHQmJihkPWwtdGhpcy5ib3VuZGFyaWVzLnJpZ2h0KSx0aGlzLmNhbGxiYWNrKGQsaCl9bGlzdGVuKCl7dGhpcy5s'@; put 'aXN0ZW5pbmc9ITB9dW5saXN0ZW4oKXt0aGlzLmxpc3RlbmluZz0hMX1pc0xpc3RlbmluZygpe3JldHVybiB0aGlzLmxpc3RlbmluZ31yZWdpc3RlckV2ZW50cygpe2NvbnN0e3Jvb3RXaW5kb3c6bH09dGhpcy5ob3Q7bGV0IGE9bDtmb3IoO2E7KXRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50'@; put 'TGlzdGVuZXIoYS5kb2N1bWVudCwiY29udGV4dG1lbnUiLCgpPT50aGlzLnVubGlzdGVuKCkpLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoYS5kb2N1bWVudCwibW91c2V1cCIsKCk9PnRoaXMudW5saXN0ZW4oKSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5l'@; put 'cihhLmRvY3VtZW50LCJtb3VzZW1vdmUiLGQ9PnRoaXMub25Nb3VzZU1vdmUoZCkpLGE9VjcoYSl9dW5yZWdpc3RlckV2ZW50cygpe3RoaXMuZXZlbnRNYW5hZ2VyLmNsZWFyKCl9b25Nb3VzZU1vdmUobCl7dGhpcy5pc0xpc3RlbmluZygpJiZ0aGlzLmNoZWNrKGwuY2xpZW50WCxsLmNsaWVu'@; put 'dFkpfWRlc3Ryb3koKXtzdXBlci5kZXN0cm95KCl9fWZ1bmN0aW9uIFFnZShjKXtpZihQbShjKSlyZXR1cm47Y29uc3QgbD10aGlzLmhvdC52aWV3Ll93dC53dE92ZXJsYXlzLnRvcE92ZXJsYXkubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQ7dGhpcy5zZXRCb3VuZGFyaWVzKGwhPT10aGlz'@; put 'LmhvdC5yb290V2luZG93P2wuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6dm9pZCAwKSx0aGlzLnNldENhbGxiYWNrKChhLGQpPT57dmFyIGgsZjtjb25zdCB2PW51bGwhPT0oaD1sLnNjcm9sbExlZnQpJiZ2b2lkIDAhPT1oP2g6bC5zY3JvbGxYLE09bnVsbCE9PShmPWwuc2Nyb2xsVG9wKSYm'@; put 'dm9pZCAwIT09Zj9mOmwuc2Nyb2xsWTtsLnNjcm9sbCh2KzUwKk1hdGguc2lnbihhKSxNKzIwKk1hdGguc2lnbihkKSl9KSx0aGlzLmxpc3RlbigpfWZ1bmN0aW9uIGU1ZShjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHBy'@; put 'aXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9ZnVuY3Rpb24gclEoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIEkxdChjKXt2YXIgbD1mdW5jdGlvbiBSMXQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZl'@; put 'XTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/'@; put 'U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWZ1bmN0'@; put 'aW9uIHQ1ZShjLGwsYSl7cmV0dXJuIGMuc2V0KHRmKGMsbCksYSksYX1mdW5jdGlvbiB0ZihjLGwsYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGM/Yz09PWw6Yy5oYXMobCkpcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mz9sOmE7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBlbGVtZW50'@; put 'IGlzIG5vdCBwcmVzZW50IG9uIHRoaXMgb2JqZWN0Iil9TWEuZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyRHJvcGRvd25NZW51RGVmYXVsdE9wdGlvbnMiKSxNYS5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYmVmb3JlRHJvcGRvd25NZW51U2hvdyIpLE1hLmdldFNpbmdsZXRvbigp'@; put 'LnJlZ2lzdGVyKCJhZnRlckRyb3Bkb3duTWVudVNob3ciKSxNYS5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJEcm9wZG93bk1lbnVIaWRlIiksTWEuZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyRHJvcGRvd25NZW51RXhlY3V0ZSIpO2NvbnN0IHpGPSJkcm9wZG93bk1lbnUi'@; put 'LE5UPSJjaGFuZ2VUeXBlIixpUT16Rjt2YXIgVUY9bmV3IFdlYWtNYXAseTM9bmV3IFdlYWtTZXQ7Y2xhc3MgWkYgZXh0ZW5kcyBGb3tzdGF0aWMgZ2V0IFBMVUdJTl9LRVkoKXtyZXR1cm4gekZ9c3RhdGljIGdldCBQTFVHSU5fUFJJT1JJVFkoKXtyZXR1cm4gMjMwfXN0YXRpYyBnZXQgUExV'@; put 'R0lOX0RFUFMoKXtyZXR1cm5bInBsdWdpbjpBdXRvQ29sdW1uU2l6ZSJdfXN0YXRpYyBnZXQgREVGQVVMVF9JVEVNUygpe3JldHVybltNVCx4VCxpbyxUVCxpbyx4RixpbyxFVCxpbyxlZl19Y29uc3RydWN0b3IobCl7c3VwZXIobCksZnVuY3Rpb24gazF0KGMsbCl7ZTVlKGMsbCksbC5hZGQo'@; put 'Yyl9KHRoaXMseTMpLHJRKHRoaXMsImNvbW1hbmRFeGVjdXRvciIsbmV3IGtnZSh0aGlzLmhvdCkpLHJRKHRoaXMsIml0ZW1zRmFjdG9yeSIsbnVsbCksclEodGhpcywibWVudSIsbnVsbCksZnVuY3Rpb24gRDF0KGMsbCxhKXtlNWUoYyxsKSxsLnNldChjLGEpfSh0aGlzLFVGLCExKSx0aGlz'@; put 'LmhvdC5hZGRIb29rKCJhZnRlckdldENvbEhlYWRlciIsKGEsZCk9PnRmKHkzLHRoaXMsRjF0KS5jYWxsKHRoaXMsYSxkKSl9aXNFbmFibGVkKCl7cmV0dXJuIHRoaXMuaG90LmdldFNldHRpbmdzKClbekZdfWVuYWJsZVBsdWdpbigpe3ZhciBsPXRoaXM7aWYodGhpcy5lbmFibGVkKXJldHVy'@; put 'bjt0aGlzLml0ZW1zRmFjdG9yeT1uZXcgTGdlKHRoaXMuaG90LFpGLkRFRkFVTFRfSVRFTVMpLHRoaXMuYWRkSG9vaygiYmVmb3JlT25DZWxsTW91c2VEb3duIixmdW5jdGlvbigpe2Zvcih2YXIgaD1hcmd1bWVudHMubGVuZ3RoLGY9bmV3IEFycmF5KGgpLHY9MDt2PGg7disrKWZbdl09YXJn'@; put 'dW1lbnRzW3ZdO3JldHVybiB0Zih5MyxsLHoxdCkuY2FsbChsLC4uLmYpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVWaWV3cG9ydFNjcm9sbEhvcml6b250YWxseSIsZnVuY3Rpb24oKXtmb3IodmFyIGg9YXJndW1lbnRzLmxlbmd0aCxmPW5ldyBBcnJheShoKSx2PTA7djxoO3YrKylmW3ZdPWFy'@; put 'Z3VtZW50c1t2XTtyZXR1cm4gdGYoeTMsbCxqMXQpLmNhbGwobCwuLi5mKX0pO2NvbnN0IGE9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVt6Rl0sZD17aXRlbXM6dGhpcy5pdGVtc0ZhY3RvcnkuZ2V0SXRlbXMoYSl9O3RoaXMucmVnaXN0ZXJFdmVudHMoKSwiZnVuY3Rpb24iPT10eXBlb2YgYS5j'@; put 'YWxsYmFjayYmdGhpcy5jb21tYW5kRXhlY3V0b3Iuc2V0Q29tbW9uQ2FsbGJhY2soYS5jYWxsYmFjayksdGhpcy5yZWdpc3RlclNob3J0Y3V0cygpLHN1cGVyLmVuYWJsZVBsdWdpbigpLHRoaXMuY2FsbE9uUGx1Z2luc1JlYWR5KCgpPT57dGhpcy5ob3QucnVuSG9va3MoImFmdGVyRHJvcGRv'@; put 'd25NZW51RGVmYXVsdE9wdGlvbnMiLGQpLHRoaXMuaXRlbXNGYWN0b3J5LnNldFByZWRlZmluZWRJdGVtcyhkLml0ZW1zKTtjb25zdCBoPXRoaXMuaXRlbXNGYWN0b3J5LmdldEl0ZW1zKGEpO3RoaXMubWVudSYmdGhpcy5tZW51LmRlc3Ryb3koKSx0aGlzLm1lbnU9bmV3IEpfKHRoaXMuaG90'@; put 'LHtjbGFzc05hbWU6Imh0RHJvcGRvd25NZW51IixrZWVwSW5WaWV3cG9ydDohMCxjb250YWluZXI6YS51aUNvbnRhaW5lcnx8dGhpcy5ob3Qucm9vdFBvcnRhbEVsZW1lbnR9KSx0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlRHJvcGRvd25NZW51U2V0SXRlbXMiLGgpLHRoaXMubWVudS5zZXRN'@; put 'ZW51SXRlbXMoaCksdGhpcy5tZW51LmFkZExvY2FsSG9vaygiYmVmb3JlT3BlbiIsKCk9PnRmKHkzLHRoaXMsSDF0KS5jYWxsKHRoaXMpKSx0aGlzLm1lbnUuYWRkTG9jYWxIb29rKCJhZnRlck9wZW4iLCgpPT50Zih5Myx0aGlzLE4xdCkuY2FsbCh0aGlzKSksdGhpcy5tZW51LmFkZExvY2Fs'@; put 'SG9vaygiYWZ0ZXJTdWJtZW51T3BlbiIsZj0+dGYoeTMsdGhpcyxWMXQpLmNhbGwodGhpcyxmKSksdGhpcy5tZW51LmFkZExvY2FsSG9vaygiYWZ0ZXJDbG9zZSIsKCk9PnRmKHkzLHRoaXMsQjF0KS5jYWxsKHRoaXMpKSx0aGlzLm1lbnUuYWRkTG9jYWxIb29rKCJleGVjdXRlQ29tbWFuZCIs'@; put 'ZnVuY3Rpb24oKXtmb3IodmFyIGY9YXJndW1lbnRzLmxlbmd0aCx2PW5ldyBBcnJheShmKSxNPTA7TTxmO00rKyl2W01dPWFyZ3VtZW50c1tNXTtyZXR1cm4gbC5leGVjdXRlQ29tbWFuZC5jYWxsKGwsLi4udil9KSxLbihoLGY9PnRoaXMuY29tbWFuZEV4ZWN1dG9yLnJlZ2lzdGVyQ29tbWFu'@; put 'ZChmLmtleSxmKSl9KX11cGRhdGVQbHVnaW4oKXt0aGlzLmRpc2FibGVQbHVnaW4oKSx0aGlzLmVuYWJsZVBsdWdpbigpLHN1cGVyLnVwZGF0ZVBsdWdpbigpfWRpc2FibGVQbHVnaW4oKXt0aGlzLmNsb3NlKCksdGhpcy5tZW51JiZ0aGlzLm1lbnUuZGVzdHJveSgpLHRoaXMudW5yZWdpc3Rl'@; put 'clNob3J0Y3V0cygpLHN1cGVyLmRpc2FibGVQbHVnaW4oKX1yZWdpc3RlclNob3J0Y3V0cygpe2NvbnN0IGE9KCk9Pntjb25zdHtoaWdobGlnaHQ6ZH09dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtpZigoZC5pc0hlYWRlcigpJiYtMT09PWQucm93fHxkLmlzQ2VsbCgpKSYmZC5j'@; put 'b2w+PTApe3RoaXMuaG90LnNlbGVjdENvbHVtbnMoZC5jb2wsZC5jb2wsLTEpO2NvbnN0e2Zyb206aH09dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxmPWJGKHRoaXMubWVudS5jb250YWluZXIsdGhpcy5ob3Qucm9vdERvY3VtZW50KSx2PXRoaXMuaG90LmdldENlbGwoLTEsaC5j'@; put 'b2wsITApLnF1ZXJ5U2VsZWN0b3IoYC4ke05UfWApLE09di5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLm9wZW4oe2xlZnQ6TS5sZWZ0K2YubGVmdCx0b3A6TS50b3Ardi5vZmZzZXRIZWlnaHQrZi50b3B9LHtsZWZ0Ok0ud2lkdGgscmlnaHQ6MCxhYm92ZTowLGJlbG93OjN9KSx0aGlz'@; put 'Lm1lbnUuZ2V0TmF2aWdhdG9yKCkudG9GaXJzdEl0ZW0oKX19O3RoaXMuaG90LmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImdyaWQiKS5hZGRTaG9ydGN1dHMoW3trZXlzOltbIlNoaWZ0IiwiQWx0IiwiQXJyb3dEb3duIl0sWyJDb250cm9sL01ldGEiLCJFbnRlciJdXSxjYWxs'@; put 'YmFjazphLHJ1bk9ubHlJZjooKT0+e3ZhciBkO2NvbnN0IGg9bnVsbD09PShkPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCkpfHx2b2lkIDA9PT1kP3ZvaWQgMDpkLmhpZ2hsaWdodDtyZXR1cm4gaCYmdGhpcy5ob3Quc2VsZWN0aW9uLmlzQ2VsbFZpc2libGUoaCkmJmguaXNIZWFk'@; put 'ZXIoKSYmIXRoaXMubWVudS5pc09wZW5lZCgpfSxjYXB0dXJlQ3RybDohMCxncm91cDppUX0se2tleXM6W1siU2hpZnQiLCJBbHQiLCJBcnJvd0Rvd24iXV0sY2FsbGJhY2s6YSxydW5Pbmx5SWY6KCk9Pnt2YXIgZDtjb25zdCBoPW51bGw9PT0oZD10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdl'@; put 'TGFzdCgpKXx8dm9pZCAwPT09ZD92b2lkIDA6ZC5oaWdobGlnaHQ7cmV0dXJuIGgmJnRoaXMuaG90LnNlbGVjdGlvbi5pc0NlbGxWaXNpYmxlKGgpJiZoLmlzQ2VsbCgpJiYhdGhpcy5tZW51LmlzT3BlbmVkKCl9LGdyb3VwOmlRfV0pfXVucmVnaXN0ZXJTaG9ydGN1dHMoKXt0aGlzLmhvdC5n'@; put 'ZXRTaG9ydGN1dE1hbmFnZXIoKS5nZXRDb250ZXh0KCJncmlkIikucmVtb3ZlU2hvcnRjdXRzQnlHcm91cChpUSl9cmVnaXN0ZXJFdmVudHMoKXt0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHRoaXMuaG90LnJvb3RFbGVtZW50LCJjbGljayIsbD0+dGYoeTMsdGhpcyxQMXQp'@; put 'LmNhbGwodGhpcyxsKSl9b3BlbihsKXt2YXIgYTtsZXQgZD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e2Fib3ZlOjAsYmVsb3c6MCxsZWZ0OjAscmlnaHQ6MH07bnVsbCE9PShhPXRoaXMubWVudSkmJnZvaWQgMCE9PWEmJmEuaXNPcGVu'@; put 'ZWQoKXx8KHRoaXMubWVudS5vcGVuKCkscXMoZCwoaCxmKT0+e3RoaXMubWVudS5zZXRPZmZzZXQoZixoKX0pLHRoaXMubWVudS5zZXRQb3NpdGlvbihsKSl9Y2xvc2UoKXt2YXIgbDtudWxsPT09KGw9dGhpcy5tZW51KXx8dm9pZCAwPT09bHx8bC5jbG9zZSgpfWV4ZWN1dGVDb21tYW5kKGwp'@; put 'e2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFycmF5KGE+MT9hLTE6MCksaD0xO2g8YTtoKyspZFtoLTFdPWFyZ3VtZW50c1toXTt0aGlzLmNvbW1hbmRFeGVjdXRvci5leGVjdXRlKGwsLi4uZCl9c2V0TGlzdGVuaW5nKCl7bGV0IGw9IShhcmd1bWVudHMubGVuZ3RoPjAmJnZv'@; put 'aWQgMCE9PWFyZ3VtZW50c1swXSl8fGFyZ3VtZW50c1swXTt0aGlzLm1lbnUuaXNPcGVuZWQoKSYmKGw/dGhpcy5tZW51LmhvdE1lbnUubGlzdGVuKCk6dGhpcy5tZW51LmhvdE1lbnUudW5saXN0ZW4oKSl9ZGVzdHJveSgpe3RoaXMuY2xvc2UoKSx0aGlzLm1lbnUmJnRoaXMubWVudS5kZXN0'@; put 'cm95KCksc3VwZXIuZGVzdHJveSgpfX1mdW5jdGlvbiBuNWUoYyl7Yy5nZXRLZXlib2FyZFNob3J0Y3V0c0N0cmwoKS5hZGRDdXN0b21TaG9ydGN1dHMoW3trZXlzOltbIkNvbnRyb2wvTWV0YSIsIkEiXV0sY2FsbGJhY2s6KCk9PiExfV0pfWZ1bmN0aW9uIFAxdChjKXtpZihncyhjLnRhcmdl'@; put 'dCxOVCkpe2NvbnN0IGw9YkYodGhpcy5tZW51LmNvbnRhaW5lcix0aGlzLmhvdC5yb290RG9jdW1lbnQpLGE9Yy50YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Yy5zdG9wUHJvcGFnYXRpb24oKSx0NWUoVUYsdGhpcywhMSksdGhpcy5vcGVuKHtsZWZ0OmEubGVmdCtsLmxlZnQsdG9w'@; put 'OmEudG9wK2MudGFyZ2V0Lm9mZnNldEhlaWdodCtsLnRvcH0se2xlZnQ6YS53aWR0aCxyaWdodDowLGFib3ZlOjAsYmVsb3c6M30pfX1mdW5jdGlvbiBGMXQoYyxsKXtjb25zdCBhPWwucGFyZW50Tm9kZTtpZighYSlyZXR1cm47Y29uc3QgZD1hLnBhcmVudE5vZGUuY2hpbGROb2RlcyxoPUFy'@; put 'cmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoZCxhKTtpZihjPDB8fGghPT1kLmxlbmd0aC0xKXJldHVybjtjb25zdCBmPWwucXVlcnlTZWxlY3RvcihgLiR7TlR9YCk7aWYodGhpcy5lbmFibGVkJiZmKXJldHVybjtpZighdGhpcy5lbmFibGVkKXJldHVybiB2b2lkKGYmJmYucGFyZW50Tm9k'@; put 'ZS5yZW1vdmVDaGlsZChmKSk7Y29uc3Qgdj10aGlzLmhvdC5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7di5jbGFzc05hbWU9TlQsdi50eXBlPSJidXR0b24iLHYudGFiSW5kZXg9LTEsdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5hcmlhVGFncyYmKG1zKHYsW043KCksbl8o'@; put 'IiAiKV0pLG1zKGwsW0gyZSgibWVudSIpXSkpLHYub25jbGljaz1mdW5jdGlvbigpe3JldHVybiExfSxsLmZpcnN0Q2hpbGQuaW5zZXJ0QmVmb3JlKHYsbC5maXJzdENoaWxkLmZpcnN0Q2hpbGQpfWZ1bmN0aW9uIEgxdCgpe3RoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVEcm9wZG93bk1lbnVT'@; put 'aG93Iix0aGlzKX1mdW5jdGlvbiBOMXQoKXt0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJEcm9wZG93bk1lbnVTaG93Iix0aGlzKSx0Zih5Myx0aGlzLG41ZSkuY2FsbCh0aGlzLHRoaXMubWVudSl9ZnVuY3Rpb24gVjF0KGMpe3RmKHkzLHRoaXMsbjVlKS5jYWxsKHRoaXMsYyl9ZnVuY3Rpb24g'@; put 'QjF0KCl7dGhpcy5ob3QubGlzdGVuKCksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyRHJvcGRvd25NZW51SGlkZSIsdGhpcyl9ZnVuY3Rpb24gajF0KGMpe3JldHVybiBmdW5jdGlvbiBMMXQoYyxsKXtyZXR1cm4gYy5nZXQodGYoYyxsKSl9KFVGLHRoaXMpP251bGw6Y31mdW5jdGlvbiB6MXQo'@; put 'Yyl7Z3MoYy50YXJnZXQsTlQpJiZ0NWUoVUYsdGhpcywhMCl9ZnVuY3Rpb24gcjVlKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBVMXQoYyl7dmFyIGw9ZnVuY3Rpb24gWjF0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2'@; put 'ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1s'@; put 'P1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31aRi5T'@; put 'RVBBUkFUT1I9e25hbWU6aW99O2NvbnN0IFkxdD1jbGFzcyBXMXR7Y29uc3RydWN0b3IobCl7cjVlKHRoaXMsImhvdCIsdm9pZCAwKSxyNWUodGhpcywib3B0aW9ucyIse30pLHRoaXMuaG90PWx9c2V0T3B0aW9ucyhsKXt0aGlzLm9wdGlvbnM9bH1nZXREYXRhKCl7Y29uc3R7c3RhcnRSb3c6'@; put 'bCxzdGFydENvbDphLGVuZFJvdzpkLGVuZENvbDpofT10aGlzLl9nZXREYXRhUmFuZ2UoKSxmPXRoaXMub3B0aW9ucyx2PVtdO3JldHVybiBLYShsLGQsTT0+e2NvbnN0IEk9W107IWYuZXhwb3J0SGlkZGVuUm93cyYmdGhpcy5faXNIaWRkZW5Sb3coTSl8fChLYShhLGgsRz0+eyFmLmV4cG9y'@; put 'dEhpZGRlbkNvbHVtbnMmJnRoaXMuX2lzSGlkZGVuQ29sdW1uKEcpfHxJLnB1c2godGhpcy5ob3QuZ2V0RGF0YUF0Q2VsbChNLEcpKX0pLHYucHVzaChJKSl9KSx2fWdldFJvd0hlYWRlcnMoKXtjb25zdCBsPVtdO2lmKHRoaXMub3B0aW9ucy5yb3dIZWFkZXJzKXtjb25zdHtzdGFydFJvdzph'@; put 'LGVuZFJvdzpkfT10aGlzLl9nZXREYXRhUmFuZ2UoKSxoPXRoaXMuaG90LmdldFJvd0hlYWRlcigpO0thKGEsZCxmPT57IXRoaXMub3B0aW9ucy5leHBvcnRIaWRkZW5Sb3dzJiZ0aGlzLl9pc0hpZGRlblJvdyhmKXx8bC5wdXNoKGhbZl0pfSl9cmV0dXJuIGx9Z2V0Q29sdW1uSGVhZGVycygp'@; put 'e2NvbnN0IGw9W107aWYodGhpcy5vcHRpb25zLmNvbHVtbkhlYWRlcnMpe2NvbnN0e3N0YXJ0Q29sOmEsZW5kQ29sOmR9PXRoaXMuX2dldERhdGFSYW5nZSgpLGg9dGhpcy5ob3QuZ2V0Q29sSGVhZGVyKCk7S2EoYSxkLGY9PnshdGhpcy5vcHRpb25zLmV4cG9ydEhpZGRlbkNvbHVtbnMmJnRo'@; put 'aXMuX2lzSGlkZGVuQ29sdW1uKGYpfHxsLnB1c2goaFtmXSl9KX1yZXR1cm4gbH1fZ2V0RGF0YVJhbmdlKCl7Y29uc3QgbD10aGlzLmhvdC5jb3VudENvbHMoKS0xLGE9dGhpcy5ob3QuY291bnRSb3dzKCktMTtsZXRbZD0wLGg9MCxmPWEsdj1sXT10aGlzLm9wdGlvbnMucmFuZ2U7cmV0dXJu'@; put 'IGQ9TWF0aC5tYXgoZCwwKSxoPU1hdGgubWF4KGgsMCksZj1NYXRoLm1pbihmLGEpLHY9TWF0aC5taW4odixsKSx7c3RhcnRSb3c6ZCxzdGFydENvbDpoLGVuZFJvdzpmLGVuZENvbDp2fX1faXNIaWRkZW5Sb3cobCl7cmV0dXJuIHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLmlzSGlkZGVuKHRo'@; put 'aXMuaG90LnRvUGh5c2ljYWxSb3cobCkpfV9pc0hpZGRlbkNvbHVtbihsKXtyZXR1cm4gdGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIuaXNIaWRkZW4odGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihsKSl9fTtmdW5jdGlvbiBpNWUoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIEcxdChjKXt2'@; put 'YXIgbD1mdW5jdGlvbiAkMXQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJv'@; put 'dyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRl'@; put 'ZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWNsYXNzIGFRe3N0YXRpYyBnZXQgREVGQVVMVF9PUFRJT05TKCl7cmV0dXJue21pbWVUeXBlOiJ0ZXh0L3BsYWluIixmaWxlRXh0ZW5zaW9uOiJ0eHQi'@; put 'LGZpbGVuYW1lOiJIYW5kc29udGFibGUgW1lZWVldLVtNTV0tW0REXSIsZW5jb2Rpbmc6InV0Zi04Iixib206ITEsY29sdW1uSGVhZGVyczohMSxyb3dIZWFkZXJzOiExLGV4cG9ydEhpZGRlbkNvbHVtbnM6ITEsZXhwb3J0SGlkZGVuUm93czohMSxyYW5nZTpbXX19Y29uc3RydWN0b3IobCxh'@; put 'KXtpNWUodGhpcywiZGF0YVByb3ZpZGVyIix2b2lkIDApLGk1ZSh0aGlzLCJvcHRpb25zIix2b2lkIDApLHRoaXMuZGF0YVByb3ZpZGVyPWwsdGhpcy5vcHRpb25zPXRoaXMuX21lcmdlT3B0aW9ucyhhKSx0aGlzLmRhdGFQcm92aWRlci5zZXRPcHRpb25zKHRoaXMub3B0aW9ucyl9X21lcmdl'@; put 'T3B0aW9ucyhsKXtsZXQgYT1zMyh0aGlzLmNvbnN0cnVjdG9yLkRFRkFVTFRfT1BUSU9OUyk7Y29uc3QgZD1uZXcgRGF0ZTtyZXR1cm4gYT13dShzMyhhUS5ERUZBVUxUX09QVElPTlMpLGEpLGE9d3UoYSxsKSxhLmZpbGVuYW1lPXYkKGEuZmlsZW5hbWUse1lZWVk6ZC5nZXRGdWxsWWVhcigp'@; put 'LE1NOmAke2QuZ2V0TW9udGgoKSsxfWAucGFkU3RhcnQoMiwiMCIpLEREOmAke2QuZ2V0RGF0ZSgpfWAucGFkU3RhcnQoMiwiMCIpfSksYX19Y29uc3QgSzF0PWFRO2Z1bmN0aW9uIGE1ZShjLGwsYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGM/Yz09PWw6Yy5oYXMobCkpcmV0dXJuIGFyZ3Vt'@; put 'ZW50cy5sZW5ndGg8Mz9sOmE7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBlbGVtZW50IGlzIG5vdCBwcmVzZW50IG9uIHRoaXMgb2JqZWN0Iil9dmFyIHNRPW5ldyBXZWFrU2V0O2Z1bmN0aW9uIHNkdChjKXtyZXR1cm4gYy5zdGFydHNXaXRoKCI9Iil8fGMuc3RhcnRzV2l0aCgiKyIp'@; put 'fHxjLnN0YXJ0c1dpdGgoIi0iKXx8Yy5zdGFydHNXaXRoKCJAIil8fGMuc3RhcnRzV2l0aCgiXHQiKXx8Yy5zdGFydHNXaXRoKCJcciIpP2AnJHtjfWA6Y31mdW5jdGlvbiBvZHQoYyxsKXtyZXR1cm4gbC50ZXN0KGMpP2AnJHtjfWA6Y31jb25zdCBvUT17Y3N2OmNsYXNzIGFkdCBleHRlbmRz'@; put 'IEsxdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksZnVuY3Rpb24gWDF0KGMsbCl7KGZ1bmN0aW9uIHExdChjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4g'@; put 'b2JqZWN0Iil9KShjLGwpLGwuYWRkKGMpfSh0aGlzLHNRKX1zdGF0aWMgZ2V0IERFRkFVTFRfT1BUSU9OUygpe3JldHVybnttaW1lVHlwZToidGV4dC9jc3YiLGZpbGVFeHRlbnNpb246ImNzdiIsYm9tOiEwLGNvbHVtbkRlbGltaXRlcjoiLCIscm93RGVsaW1pdGVyOiJcclxuIixzYW5pdGl6'@; put 'ZVZhbHVlczohMX19ZXhwb3J0KCl7Y29uc3QgbD10aGlzLm9wdGlvbnMsYT10aGlzLmRhdGFQcm92aWRlci5nZXREYXRhKCk7bGV0IGQ9dGhpcy5kYXRhUHJvdmlkZXIuZ2V0Q29sdW1uSGVhZGVycygpO2NvbnN0IGg9ZC5sZW5ndGg+MCxmPXRoaXMuZGF0YVByb3ZpZGVyLmdldFJvd0hlYWRl'@; put 'cnMoKSx2PWYubGVuZ3RoPjA7bGV0IE09bC5ib20/Ilx1ZmVmZiI6IiI7cmV0dXJuIGgmJihkPXlvKGQsST0+dGhpcy5fZXNjYXBlQ2VsbChJLHtmb3JjZTohMCxzYW5pdGl6ZVZhbHVlOmwuc2FuaXRpemVWYWx1ZXN9KSksdiYmKE0rPWwuY29sdW1uRGVsaW1pdGVyKSxNKz1kLmpvaW4obC5j'@; put 'b2x1bW5EZWxpbWl0ZXIpLE0rPWwucm93RGVsaW1pdGVyKSxLbihhLChJLEcpPT57Rz4wJiYoTSs9bC5yb3dEZWxpbWl0ZXIpLHYmJihNKz10aGlzLl9lc2NhcGVDZWxsKGZbR10se3Nhbml0aXplVmFsdWU6bC5zYW5pdGl6ZVZhbHVlc30pLE0rPWwuY29sdW1uRGVsaW1pdGVyKTtjb25zdCBy'@; put 'ZT1JLm1hcCh1ZT0+dGhpcy5fZXNjYXBlQ2VsbCh1ZSx7c2FuaXRpemVWYWx1ZTpsLnNhbml0aXplVmFsdWVzfSkpLmpvaW4obC5jb2x1bW5EZWxpbWl0ZXIpO00rPXJlfSksTX1fZXNjYXBlQ2VsbChsKXtsZXR7Zm9yY2U6YT0hMSxzYW5pdGl6ZVZhbHVlOmQ9ITF9PWFyZ3VtZW50cy5sZW5n'@; put 'dGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxoPW9jKGwpO3JldHVybiIiPT09aHx8KGQmJihhPSEwKSxkIGluc3RhbmNlb2YgUmVnRXhwP2g9YTVlKHNRLHRoaXMsb2R0KS5jYWxsKHRoaXMsaCxkKToiZnVuY3Rpb24iPT10eXBlb2YgZD9oPWQoaCk6ZCYmKGg9'@; put 'YTVlKHNRLHRoaXMsc2R0KS5jYWxsKHRoaXMsaCkpLChhfHxoLmluZGV4T2YoIlxyIik+PTB8fGguaW5kZXhPZignIicpPj0wfHxoLmluZGV4T2YoIlxuIik+PTB8fGguaW5kZXhPZih0aGlzLm9wdGlvbnMuY29sdW1uRGVsaW1pdGVyKT49MCkmJihoPWgucmVwbGFjZShuZXcgUmVnRXhwKCci'@; put 'JywiZyIpLCciIicpLGg9YCIke2h9ImApKSxofX19O2NsYXNzIGZkdCBleHRlbmRzIEZve3N0YXRpYyBnZXQgUExVR0lOX0tFWSgpe3JldHVybiJleHBvcnRGaWxlIn1zdGF0aWMgZ2V0IFBMVUdJTl9QUklPUklUWSgpe3JldHVybiAyNDB9aXNFbmFibGVkKCl7cmV0dXJuITB9ZXhwb3J0QXNT'@; put 'dHJpbmcobCl7cmV0dXJuIHRoaXMuX2NyZWF0ZVR5cGVGb3JtYXR0ZXIobCxhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30pLmV4cG9ydCgpfWV4cG9ydEFzQmxvYihsKXtyZXR1cm4gdGhpcy5fY3JlYXRlQmxvYih0aGlzLl9jcmVhdGVU'@; put 'eXBlRm9ybWF0dGVyKGwsYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9KSl9ZG93bmxvYWRGaWxlKGwpe2xldCBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtjb25zdHtyb290'@; put 'RG9jdW1lbnQ6ZCxyb290V2luZG93Omh9PXRoaXMuaG90LGY9dGhpcy5fY3JlYXRlVHlwZUZvcm1hdHRlcihsLGEpLHY9dGhpcy5fY3JlYXRlQmxvYihmKSxNPWguVVJMfHxoLndlYmtpdFVSTCxJPWQuY3JlYXRlRWxlbWVudCgiYSIpLEc9YCR7Zi5vcHRpb25zLmZpbGVuYW1lfS4ke2Yub3B0'@; put 'aW9ucy5maWxlRXh0ZW5zaW9ufWA7aWYodm9pZCAwIT09SS5kb3dubG9hZCl7Y29uc3QgcmU9TS5jcmVhdGVPYmplY3RVUkwodik7SS5zdHlsZS5kaXNwbGF5PSJub25lIixJLnNldEF0dHJpYnV0ZSgiaHJlZiIscmUpLEkuc2V0QXR0cmlidXRlKCJkb3dubG9hZCIsRyksZC5ib2R5LmFwcGVu'@; put 'ZENoaWxkKEkpLEkuZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVudCgiY2xpY2siKSksZC5ib2R5LnJlbW92ZUNoaWxkKEkpLHNldFRpbWVvdXQoKCk9PntNLnJldm9rZU9iamVjdFVSTChyZSl9LDEwMCl9ZWxzZSBuYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYiYmbmF2aWdhdG9yLm1zU2F2'@; put 'ZU9yT3BlbkJsb2IodixHKX1fY3JlYXRlVHlwZUZvcm1hdHRlcihsKXtsZXQgYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307aWYoIW9RW2xdKXRocm93IG5ldyBFcnJvcihgRXhwb3J0IGZvcm1hdCB0eXBlICIke2x9IiBpcyBub3Qg'@; put 'c3VwcG9ydGVkLmApO3JldHVybiBmdW5jdGlvbiB1ZHQoYyxsLGEpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBvUVtjXT9uZXcgb1FbY10obCxhKTpudWxsfShsLG5ldyBZMXQodGhpcy5ob3QpLGEpfV9jcmVhdGVCbG9iKGwpe2xldCBhPW51bGw7cmV0dXJuIHR5cGVvZiBCbG9iPCJ1IiYm'@; put 'KGE9bmV3IEJsb2IoW2wuZXhwb3J0KCldLHt0eXBlOmAke2wub3B0aW9ucy5taW1lVHlwZX07Y2hhcnNldD0ke2wub3B0aW9ucy5lbmNvZGluZ31gfSkpLGF9fWZ1bmN0aW9uIGl3KGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBwZHQoYyl7dmFyIGw9ZnVuY3Rpb24gZ2R0KGMsbCl7aWYoIm9i'@; put 'amVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2'@; put 'ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51'@; put 'bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31jbGFzcyBWVHtjb25zdHJ1Y3RvcihsLGEpe2xldHtpZDpkLHN0YXRlbGVzczpoPSEwfT1hO2l3KHRoaXMsImhvdCIsdm9pZCAwKSxpdyh0aGlzLCJpZCIsdm9pZCAwKSxpdyh0aGlzLCJlbGVtZW50cyIs'@; put 'W10pLGl3KHRoaXMsImhpZGRlbiIsITEpLGl3KHRoaXMsInN0YXRlSWQiLCIiKSxpdyh0aGlzLCJzdGF0ZSIsdm9pZCAwKSx0aGlzLmhvdD1sLHRoaXMuaWQ9ZCx0aGlzLnN0YXRlSWQ9YEZpbHRlcnMuY29tcG9uZW50LiR7dGhpcy5pZH1gLHRoaXMuc3RhdGU9aD9udWxsOnRoaXMuaG90LmNv'@; put 'bHVtbkluZGV4TWFwcGVyLnJlZ2lzdGVyTWFwKHRoaXMuc3RhdGVJZCxuZXcgeVApfWdldEVsZW1lbnRzKCl7cmV0dXJuIHRoaXMuZWxlbWVudHN9cmVzZXQoKXtLbih0aGlzLmVsZW1lbnRzLGw9PmwucmVzZXQoKSl9aGlkZSgpe3RoaXMuaGlkZGVuPSEwfXNob3coKXt0aGlzLmhpZGRlbj0h'@; put 'MX1pc0hpZGRlbigpe3JldHVybiBudWxsPT09dGhpcy5ob3R8fHRoaXMuaGlkZGVufXJlc3RvcmVTdGF0ZShsKXt0aGlzLnN0YXRlJiZ0aGlzLnNldFN0YXRlKHRoaXMuc3RhdGUuZ2V0VmFsdWVBdEluZGV4KGwpKX1zZXRTdGF0ZSgpe3Rocm93IG5ldyBFcnJvcigiVGhlIHN0YXRlIHNldHRp'@; put 'bmcgbG9naWMgaXMgbm90IGltcGxlbWVudGVkIil9c2F2ZVN0YXRlKGwpe3RoaXMuc3RhdGUmJnRoaXMuc3RhdGUuc2V0VmFsdWVBdEluZGV4KGwsdGhpcy5nZXRTdGF0ZSgpKX1nZXRTdGF0ZSgpe3Rocm93IG5ldyBFcnJvcigiVGhlIHN0YXRlIGdhdGhlcmluZyBsb2dpYyBpcyBub3QgaW1w'@; put 'bGVtZW50ZWQiKX1kZXN0cm95KCl7dGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIudW5yZWdpc3Rlck1hcCh0aGlzLnN0YXRlSWQpLHRoaXMuY2xlYXJMb2NhbEhvb2tzKCksS24odGhpcy5lbGVtZW50cyxsPT5sLmRlc3Ryb3koKSksdGhpcy5zdGF0ZT1udWxsLHRoaXMuZWxlbWVudHM9bnVs'@; put 'bCx0aGlzLmhvdD1udWxsfX14bChWVCx5MSk7Y29uc3QgQlQ9e307ZnVuY3Rpb24gbjYoYyxsKXtpZighQlRbY10pdGhyb3cgRXJyb3IoYEZpbHRlciBjb25kaXRpb24gIiR7Y30iIGRvZXMgbm90IGV4aXN0LmApO2NvbnN0e2NvbmRpdGlvbjphLGRlc2NyaXB0b3I6ZH09QlRbY107bGV0IGg9'@; put 'bDtyZXR1cm4gZC5pbnB1dFZhbHVlc0RlY29yYXRvciYmKGg9ZC5pbnB1dFZhbHVlc0RlY29yYXRvcihoKSksZnVuY3Rpb24oZil7cmV0dXJuIGEuYXBwbHkoZi5tZXRhLmluc3RhbmNlLFtdLmNvbmNhdChbZl0sW2hdKSl9fWZ1bmN0aW9uIHk5KGMpe2lmKCFCVFtjXSl0aHJvdyBFcnJvcihg'@; put 'RmlsdGVyIGNvbmRpdGlvbiAiJHtjfSIgZG9lcyBub3QgZXhpc3QuYCk7cmV0dXJuIEJUW2NdLmRlc2NyaXB0b3J9ZnVuY3Rpb24geHUoYyxsLGEpe2Eua2V5PWMsQlRbY109e2NvbmRpdGlvbjpsLGRlc2NyaXB0b3I6YX19Y29uc3QgUzA9Im5vbmUiO3h1KFMwLGZ1bmN0aW9uIG1kdCgpe3Jl'@; put 'dHVybiEwfSx7bmFtZTp4UCxpbnB1dHNDb3VudDowLHNob3dPcGVyYXRvcnM6ITF9KTtjb25zdCBqVD0iZW1wdHkiO3h1KGpULGZ1bmN0aW9uIHZkdChjKXtyZXR1cm4gamMoYy52YWx1ZSl9LHtuYW1lOkZYLGlucHV0c0NvdW50OjAsc2hvd09wZXJhdG9yczohMH0pO2NvbnN0IFdGPSJub3Rf'@; put 'ZW1wdHkiO3h1KFdGLGZ1bmN0aW9uIHlkdChjLGwpe3JldHVybiFuNihqVCxsKShjKX0se25hbWU6SFgsaW5wdXRzQ291bnQ6MCxzaG93T3BlcmF0b3JzOiEwfSk7Y29uc3QgelQ9ImVxIjt4dSh6VCxmdW5jdGlvbiBiZHQoYyxsKXtsZXRbYV09bDtyZXR1cm4gb2MoYy52YWx1ZSkudG9Mb2Nh'@; put 'bGVMb3dlckNhc2UoYy5tZXRhLmxvY2FsZSk9PT1vYyhhKX0se25hbWU6TlgsaW5wdXRzQ291bnQ6MSxzaG93T3BlcmF0b3JzOiEwfSk7Y29uc3QgWUY9Im5lcSI7eHUoWUYsZnVuY3Rpb24gX2R0KGMsbCl7cmV0dXJuIW42KHpULGwpKGMpfSx7bmFtZTpWWCxpbnB1dHNDb3VudDoxLHNob3dP'@; put 'cGVyYXRvcnM6ITB9KSx4dSgiZ3QiLGZ1bmN0aW9uIHdkdChjLGwpe2xldFthXT1sLGQ9YTtyZXR1cm4ibnVtZXJpYyI9PT1jLm1ldGEudHlwZSYmKGQ9cGFyc2VGbG9hdChkLDEwKSksYy52YWx1ZT5kfSx7bmFtZTpaWCxpbnB1dHNDb3VudDoxLHNob3dPcGVyYXRvcnM6ITB9KSx4dSgiZ3Rl'@; put 'IixmdW5jdGlvbiBDZHQoYyxsKXtsZXRbYV09bCxkPWE7cmV0dXJuIm51bWVyaWMiPT09Yy5tZXRhLnR5cGUmJihkPXBhcnNlRmxvYXQoZCwxMCkpLGMudmFsdWU+PWR9LHtuYW1lOldYLGlucHV0c0NvdW50OjEsc2hvd09wZXJhdG9yczohMH0pLHh1KCJsdCIsZnVuY3Rpb24gU2R0KGMsbCl7'@; put 'bGV0W2FdPWwsZD1hO3JldHVybiJudW1lcmljIj09PWMubWV0YS50eXBlJiYoZD1wYXJzZUZsb2F0KGQsMTApKSxjLnZhbHVlPGR9LHtuYW1lOllYLGlucHV0c0NvdW50OjEsc2hvd09wZXJhdG9yczohMH0pLHh1KCJsdGUiLGZ1bmN0aW9uIE1kdChjLGwpe2xldFthXT1sLGQ9YTtyZXR1cm4i'@; put 'bnVtZXJpYyI9PT1jLm1ldGEudHlwZSYmKGQ9cGFyc2VGbG9hdChkLDEwKSksYy52YWx1ZTw9ZH0se25hbWU6R1gsaW5wdXRzQ291bnQ6MSxzaG93T3BlcmF0b3JzOiEwfSk7Y29uc3QgbFE9ImRhdGVfYWZ0ZXIiO3h1KGxRLGZ1bmN0aW9uIHhkdChjLGwpe2xldFthXT1sO2NvbnN0IGQ9UHMo'@; put 'Yy52YWx1ZSxjLm1ldGEuZGF0ZUZvcm1hdCksaD1QcyhhLGMubWV0YS5kYXRlRm9ybWF0KTtyZXR1cm4hKCFkLmlzVmFsaWQoKXx8IWguaXNWYWxpZCgpKSYmZC5kaWZmKGgpPj0wfSx7bmFtZTpYWCxpbnB1dHNDb3VudDoxLHNob3dPcGVyYXRvcnM6ITB9KTtjb25zdCBjUT0iZGF0ZV9iZWZv'@; put 'cmUiO3h1KGNRLGZ1bmN0aW9uIEVkdChjLGwpe2xldFthXT1sO2NvbnN0IGQ9UHMoYy52YWx1ZSxjLm1ldGEuZGF0ZUZvcm1hdCksaD1QcyhhLGMubWV0YS5kYXRlRm9ybWF0KTtyZXR1cm4hKCFkLmlzVmFsaWQoKXx8IWguaXNWYWxpZCgpKSYmZC5kaWZmKGgpPD0wfSx7bmFtZTpxWCxpbnB1'@; put 'dHNDb3VudDoxLHNob3dPcGVyYXRvcnM6ITB9KTtjb25zdCBHRj0iYmV0d2VlbiI7eHUoR0YsZnVuY3Rpb24gVGR0KGMsbCl7bGV0W2EsZF09bCxoPWEsZj1kO2lmKCJudW1lcmljIj09PWMubWV0YS50eXBlKXtjb25zdCB2PXBhcnNlRmxvYXQoaCwxMCksTT1wYXJzZUZsb2F0KGYsMTApO2g9'@; put 'TWF0aC5taW4odixNKSxmPU1hdGgubWF4KHYsTSl9ZWxzZSBpZigiZGF0ZSI9PT1jLm1ldGEudHlwZSl7Y29uc3Qgdj1uNihjUSxbZl0pLE09bjYobFEsW2hdKTtyZXR1cm4gdihjKSYmTShjKX1yZXR1cm4gYy52YWx1ZT49aCYmYy52YWx1ZTw9Zn0se25hbWU6JFgsaW5wdXRzQ291bnQ6Mixz'@; put 'aG93T3BlcmF0b3JzOiEwfSk7Y29uc3QgZDVlPSJub3RfYmV0d2VlbiI7eHUoZDVlLGZ1bmN0aW9uIEFkdChjLGwpe3JldHVybiFuNihHRixsKShjKX0se25hbWU6S1gsaW5wdXRzQ291bnQ6MixzaG93T3BlcmF0b3JzOiEwfSk7Y29uc3QgaDVlPSJiZWdpbnNfd2l0aCI7eHUoaDVlLGZ1bmN0'@; put 'aW9uIGtkdChjLGwpe2xldFthXT1sO3JldHVybiBvYyhjLnZhbHVlKS50b0xvY2FsZUxvd2VyQ2FzZShjLm1ldGEubG9jYWxlKS5zdGFydHNXaXRoKG9jKGEpKX0se25hbWU6QlgsaW5wdXRzQ291bnQ6MSxzaG93T3BlcmF0b3JzOiEwfSkseHUoImVuZHNfd2l0aCIsZnVuY3Rpb24gRGR0KGMs'@; put 'bCl7bGV0W2FdPWw7cmV0dXJuIG9jKGMudmFsdWUpLnRvTG9jYWxlTG93ZXJDYXNlKGMubWV0YS5sb2NhbGUpLmVuZHNXaXRoKG9jKGEpKX0se25hbWU6algsaW5wdXRzQ291bnQ6MSxzaG93T3BlcmF0b3JzOiEwfSk7Y29uc3QgdVE9ImNvbnRhaW5zIjt4dSh1USxmdW5jdGlvbiBJZHQoYyxs'@; put 'KXtsZXRbYV09bDtyZXR1cm4gb2MoYy52YWx1ZSkudG9Mb2NhbGVMb3dlckNhc2UoYy5tZXRhLmxvY2FsZSkuaW5kZXhPZihvYyhhKSk+PTB9LHtuYW1lOnpYLGlucHV0c0NvdW50OjEsc2hvd09wZXJhdG9yczohMH0pO2NvbnN0IHA1ZT0ibm90X2NvbnRhaW5zIjt4dShwNWUsZnVuY3Rpb24g'@; put 'UmR0KGMsbCl7cmV0dXJuIW42KHVRLGwpKGMpfSx7bmFtZTpVWCxpbnB1dHNDb3VudDoxLHNob3dPcGVyYXRvcnM6ITB9KTtjb25zdCBnNWU9ImRhdGVfdG9tb3Jyb3ciO3h1KGc1ZSxmdW5jdGlvbiBMZHQoYyl7Y29uc3QgbD1QcyhjLnZhbHVlLGMubWV0YS5kYXRlRm9ybWF0KTtyZXR1cm4h'@; put 'IWwuaXNWYWxpZCgpJiZsLmlzU2FtZShQcygpLnN1YnRyYWN0KC0xLCJkYXlzIikuc3RhcnRPZigiZGF5IiksImQiKX0se25hbWU6UVgsaW5wdXRzQ291bnQ6MH0pO2NvbnN0IG01ZT0iZGF0ZV90b2RheSI7eHUobTVlLGZ1bmN0aW9uIE9kdChjKXtjb25zdCBsPVBzKGMudmFsdWUsYy5tZXRh'@; put 'LmRhdGVGb3JtYXQpO3JldHVybiEhbC5pc1ZhbGlkKCkmJmwuaXNTYW1lKFBzKCkuc3RhcnRPZigiZGF5IiksImQiKX0se25hbWU6SlgsaW5wdXRzQ291bnQ6MH0pO2NvbnN0IHY1ZT0iZGF0ZV95ZXN0ZXJkYXkiO3h1KHY1ZSxmdW5jdGlvbiBQZHQoYyl7Y29uc3QgbD1QcyhjLnZhbHVlLGMu'@; put 'bWV0YS5kYXRlRm9ybWF0KTtyZXR1cm4hIWwuaXNWYWxpZCgpJiZsLmlzU2FtZShQcygpLnN1YnRyYWN0KDEsImRheXMiKS5zdGFydE9mKCJkYXkiKSwiZCIpfSx7bmFtZTplcSxpbnB1dHNDb3VudDowfSk7Y29uc3QgYjVlPXtudW1lcmljOltTMCxpbyxqVCxXRixpbyx6VCxZRixpbywiZ3Qi'@; put 'LCJndGUiLCJsdCIsImx0ZSIsR0YsZDVlXSx0ZXh0OltTMCxpbyxqVCxXRixpbyx6VCxZRixpbyxoNWUsImVuZHNfd2l0aCIsaW8sdVEscDVlXSxkYXRlOltTMCxpbyxqVCxXRixpbyx6VCxZRixpbyxjUSxsUSxHRixpbyxnNWUsbTVlLHY1ZV19O2Z1bmN0aW9uIFVUKGMsbCxhKXtyZXR1cm4o'@; put 'bD1mdW5jdGlvbiBWZHQoYyl7dmFyIGw9ZnVuY3Rpb24gQmR0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlw'@; put 'ZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIi'@; put 'fShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31jb25zdCBkUT0iYnVpbHQiLGhRPSJidWlsZGluZyIsXzVlPVsiY2xpY2siLCJpbnB1dCIsImtleWRvd24iLCJrZXlw'@; put 'cmVzcyIsImtleXVwIiwiZm9jdXMiLCJibHVyIiwiY2hhbmdlIl07Y2xhc3MgVmh7c3RhdGljIGdldCBERUZBVUxUUygpe3JldHVybiBzMyh7Y2xhc3NOYW1lOiIiLHZhbHVlOiIiLHRhZ05hbWU6ImRpdiIsY2hpbGRyZW46W10sd3JhcEl0OiEwfSl9Y29uc3RydWN0b3IobCxhKXtVVCh0aGlz'@; put 'LCJob3QiLHZvaWQgMCksVVQodGhpcywiZXZlbnRNYW5hZ2VyIixuZXcgWjIodGhpcykpLFVUKHRoaXMsIm9wdGlvbnMiLHZvaWQgMCksVVQodGhpcywiX2VsZW1lbnQiLHZvaWQgMCksVVQodGhpcywiYnVpbGRTdGF0ZSIsdm9pZCAwKSx0aGlzLmhvdD1sLHRoaXMub3B0aW9ucz13dShWaC5E'@; put 'RUZBVUxUUyxhKSx0aGlzLl9lbGVtZW50PXRoaXMuaG90LnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMub3B0aW9ucy53cmFwSXQ/ImRpdiI6dGhpcy5vcHRpb25zLnRhZ05hbWUpfXNldFZhbHVlKGwpe3RoaXMub3B0aW9ucy52YWx1ZT1sLHRoaXMudXBkYXRlKCl9Z2V0VmFsdWUo'@; put 'KXtyZXR1cm4gdGhpcy5vcHRpb25zLnZhbHVlfWdldCBlbGVtZW50KCl7cmV0dXJuIHRoaXMuYnVpbGRTdGF0ZT09PWhRP3RoaXMuX2VsZW1lbnQ6dGhpcy5idWlsZFN0YXRlPT09ZFE/KHRoaXMudXBkYXRlKCksdGhpcy5fZWxlbWVudCk6KHRoaXMuYnVpbGRTdGF0ZT1oUSx0aGlzLmJ1aWxk'@; put 'KCksdGhpcy5idWlsZFN0YXRlPWRRLHRoaXMuX2VsZW1lbnQpfWlzQnVpbHQoKXtyZXR1cm4gdGhpcy5idWlsZFN0YXRlPT09ZFF9dHJhbnNsYXRlSWZQb3NzaWJsZShsKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGwmJmwuc3RhcnRzV2l0aChKMSk/dGhpcy5ob3QuZ2V0VHJhbnNsYXRlZFBo'@; put 'cmFzZShsKTpsfWJ1aWxkKCl7Y29uc3QgbD0oYSxkKT0+e3RoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoYSxkLGg9PnRoaXMucnVuTG9jYWxIb29rcyhkLGgsdGhpcykpfTtpZih0aGlzLmJ1aWxkU3RhdGV8fCh0aGlzLmJ1aWxkU3RhdGU9aFEpLHRoaXMuX2VsZW1lbnQuc2V0'@; put 'QXR0cmlidXRlKCJkYXRhLWhvdC1pbnB1dCIsITApLHZvaWQgMCE9PXRoaXMub3B0aW9ucy50YWJJbmRleCYmdGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoInRhYmluZGV4Iix0aGlzLm9wdGlvbnMudGFiSW5kZXgpLHZvaWQgMCE9PXRoaXMub3B0aW9ucy5yb2xlJiZ0aGlzLl9lbGVtZW50'@; put 'LnNldEF0dHJpYnV0ZSgicm9sZSIsdGhpcy5vcHRpb25zLnJvbGUpLHRoaXMub3B0aW9ucy5jbGFzc05hbWUmJkVpKHRoaXMuX2VsZW1lbnQsdGhpcy5vcHRpb25zLmNsYXNzTmFtZSksdGhpcy5vcHRpb25zLmNoaWxkcmVuLmxlbmd0aClLbih0aGlzLm9wdGlvbnMuY2hpbGRyZW4sYT0+dGhp'@; put 'cy5fZWxlbWVudC5hcHBlbmRDaGlsZChhLmVsZW1lbnQpKTtlbHNlIGlmKHRoaXMub3B0aW9ucy53cmFwSXQpe2NvbnN0IGE9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5vcHRpb25zLnRhZ05hbWUpO2Euc2V0QXR0cmlidXRlKCJkYXRhLWhvdC1pbnB1dCIsITAp'@; put 'LHFzKHRoaXMub3B0aW9ucywoZCxoKT0+e3ZvaWQgMCE9PWFbaF0mJiJjbGFzc05hbWUiIT09aCYmInRhZ05hbWUiIT09aCYmImNoaWxkcmVuIiE9PWgmJihhW2hdPXRoaXMudHJhbnNsYXRlSWZQb3NzaWJsZShkKSl9KSx0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKGEpLEtuKF81ZSxkPT5s'@; put 'KGEsZCkpfWVsc2UgS24oXzVlLGE9PmwodGhpcy5fZWxlbWVudCxhKSl9dXBkYXRlKCl7fXJlc2V0KCl7dGhpcy5vcHRpb25zLnZhbHVlPSIiLHRoaXMudXBkYXRlKCl9c2hvdygpe3RoaXMuZWxlbWVudC5zdHlsZS5kaXNwbGF5PSIifWhpZGUoKXt0aGlzLmVsZW1lbnQuc3R5bGUuZGlzcGxh'@; put 'eT0ibm9uZSJ9Zm9jdXMoKXt9ZGVzdHJveSgpe3RoaXMuZXZlbnRNYW5hZ2VyLmRlc3Ryb3koKSx0aGlzLmV2ZW50TWFuYWdlcj1udWxsLHRoaXMuaG90PW51bGwsdGhpcy5fZWxlbWVudC5wYXJlbnROb2RlJiZ0aGlzLl9lbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5fZWxl'@; put 'bWVudCksdGhpcy5fZWxlbWVudD1udWxsfX1mdW5jdGlvbiB3NWUoYyxsKXtpZihsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfWZ1bmN0aW9uICRGKGMsbCl7cmV0dXJu'@; put 'IGMuZ2V0KGZRKGMsbCkpfWZ1bmN0aW9uIGZRKGMsbCxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhsKSlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzP2w6YTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGVsZW1lbnQgaXMgbm90IHByZXNlbnQgb24gdGhpcyBv'@; put 'YmplY3QiKX14bChWaCx5MSk7dmFyIGF3PW5ldyBXZWFrTWFwLEM1ZT1uZXcgV2Vha1NldDtjbGFzcyByNiBleHRlbmRzIFZoe3N0YXRpYyBnZXQgREVGQVVMVFMoKXtyZXR1cm4gczMoe3BsYWNlaG9sZGVyOiIiLHR5cGU6InRleHQiLHRhZ05hbWU6ImlucHV0Iix0YWJJbmRleDotMX0pfWNv'@; put 'bnN0cnVjdG9yKGwsYSl7c3VwZXIobCx3dShyNi5ERUZBVUxUUyxhKSksZnVuY3Rpb24gamR0KGMsbCl7dzVlKGMsbCksbC5hZGQoYyl9KHRoaXMsQzVlKSxmdW5jdGlvbiB6ZHQoYyxsLGEpe3c1ZShjLGwpLGwuc2V0KGMsYSl9KHRoaXMsYXcsdm9pZCAwKSx0aGlzLnJlZ2lzdGVySG9va3Mo'@; put 'KX1yZWdpc3Rlckhvb2tzKCl7dGhpcy5hZGRMb2NhbEhvb2soImtleXVwIixsPT5mUShDNWUsdGhpcyxaZHQpLmNhbGwodGhpcyxsKSl9YnVpbGQoKXtzdXBlci5idWlsZCgpO2NvbnN0IGw9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOyhmdW5jdGlvbiBVZHQo'@; put 'YyxsLGEpe2Muc2V0KGZRKGMsbCksYSl9KShhdyx0aGlzLHRoaXMuX2VsZW1lbnQuZmlyc3RDaGlsZCksRWkodGhpcy5fZWxlbWVudCwiaHRVSUlucHV0IiksRWkobCwiaHRVSUlucHV0SWNvbiIpLHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQobCksdGhpcy51cGRhdGUoKX11cGRhdGUoKXt0'@; put 'aGlzLmlzQnVpbHQoKSYmKCRGKGF3LHRoaXMpLnR5cGU9dGhpcy5vcHRpb25zLnR5cGUsJEYoYXcsdGhpcykucGxhY2Vob2xkZXI9dGhpcy50cmFuc2xhdGVJZlBvc3NpYmxlKHRoaXMub3B0aW9ucy5wbGFjZWhvbGRlciksJEYoYXcsdGhpcykudmFsdWU9dGhpcy50cmFuc2xhdGVJZlBvc3Np'@; put 'YmxlKHRoaXMub3B0aW9ucy52YWx1ZSkpfWZvY3VzKCl7dGhpcy5pc0J1aWx0KCkmJiRGKGF3LHRoaXMpLmZvY3VzKCl9fWZ1bmN0aW9uIFpkdChjKXt0aGlzLm9wdGlvbnMudmFsdWU9Yy50YXJnZXQudmFsdWV9ZnVuY3Rpb24gWlQoYyxsLGEpe1M1ZShjLGwpLGwuc2V0KGMsYSl9ZnVuY3Rp'@; put 'b24gUzVlKGMsbCl7aWYobC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX1mdW5jdGlvbiBzdyhjLGwsYSl7cmV0dXJuIGMuc2V0KFdUKGMsbCksYSksYX1mdW5jdGlvbiBZ'@; put 'YyhjLGwpe3JldHVybiBjLmdldChXVChjLGwpKX1mdW5jdGlvbiBXVChjLGwsYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGM/Yz09PWw6Yy5oYXMobCkpcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mz9sOmE7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBlbGVtZW50IGlzIG5vdCBwcmVz'@; put 'ZW50IG9uIHRoaXMgb2JqZWN0Iil9dmFyIGYwPW5ldyBXZWFrTWFwLEtGPW5ldyBXZWFrTWFwLFhGPW5ldyBXZWFrTWFwLHBRPW5ldyBXZWFrTWFwLHFGPW5ldyBXZWFrTWFwLEpGPW5ldyBXZWFrU2V0O2NsYXNzIFlUIGV4dGVuZHMgVmh7c3RhdGljIGdldCBERUZBVUxUUygpe3JldHVybiBz'@; put 'Myh7Y2xhc3NOYW1lOiJodFVJU2VsZWN0Iix3cmFwSXQ6ITEsdGFiSW5kZXg6LTF9KX1jb25zdHJ1Y3RvcihsLGEpe3N1cGVyKGwsd3UoWVQuREVGQVVMVFMsYSkpLGZ1bmN0aW9uIFdkdChjLGwpe1M1ZShjLGwpLGwuYWRkKGMpfSh0aGlzLEpGKSxaVCh0aGlzLGYwLG51bGwpLFpUKHRoaXMs'@; put 'S0YsW10pLFpUKHRoaXMsWEYsdm9pZCAwKSxaVCh0aGlzLHBRLHZvaWQgMCksWlQodGhpcyxxRix2b2lkIDApLHRoaXMucmVnaXN0ZXJIb29rcygpfWdldE1lbnUoKXtyZXR1cm4gWWMoZjAsdGhpcyl9cmVnaXN0ZXJIb29rcygpe3RoaXMuYWRkTG9jYWxIb29rKCJjbGljayIsKCk9PldUKEpG'@; put 'LHRoaXMsJGR0KS5jYWxsKHRoaXMpKX1zZXRJdGVtcyhsKXtzdyhLRix0aGlzLHRoaXMudHJhbnNsYXRlTmFtZXMobCkpLFljKGYwLHRoaXMpJiZZYyhmMCx0aGlzKS5zZXRNZW51SXRlbXMoWWMoS0YsdGhpcykpfXRyYW5zbGF0ZU5hbWVzKGwpe3JldHVybiBLbihsLGE9PnthLm5hbWU9dGhp'@; put 'cy50cmFuc2xhdGVJZlBvc3NpYmxlKGEubmFtZSl9KSxsfWJ1aWxkKCl7c3VwZXIuYnVpbGQoKSxzdyhmMCx0aGlzLG5ldyBKXyh0aGlzLmhvdCx7Y2xhc3NOYW1lOiJodFNlbGVjdFVJIGh0RmlsdGVyc0NvbmRpdGlvbnNNZW51IixrZWVwSW5WaWV3cG9ydDohMSxzdGFuZGFsb25lOiEwLGNv'@; put 'bnRhaW5lcjp0aGlzLm9wdGlvbnMubWVudUNvbnRhaW5lcn0pKSxZYyhmMCx0aGlzKS5zZXRNZW51SXRlbXMoWWMoS0YsdGhpcykpO2NvbnN0IGw9bmV3IFZoKHRoaXMuaG90LHtjbGFzc05hbWU6Imh0VUlTZWxlY3RDYXB0aW9uIn0pLGE9bmV3IFZoKHRoaXMuaG90LHtjbGFzc05hbWU6Imh0'@; put 'VUlTZWxlY3REcm9wZG93biJ9KTtzdyhYRix0aGlzLGwpLHN3KHBRLHRoaXMsbC5lbGVtZW50KSxzdyhxRix0aGlzLGEpLHRoaXMuaG90LmdldFNldHRpbmdzKCkuYXJpYVRhZ3MmJihtcyhhLmVsZW1lbnQsW043KCldKSxtcyh0aGlzLl9lbGVtZW50LFtbInJvbGUiLCJsaXN0Ym94Il1dKSks'@; put 'S24oW2wsYV0sZD0+dGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZChkLmVsZW1lbnQpKSxZYyhmMCx0aGlzKS5hZGRMb2NhbEhvb2soInNlbGVjdCIsZD0+V1QoSkYsdGhpcyxZZHQpLmNhbGwodGhpcyxkKSksWWMoZjAsdGhpcykuYWRkTG9jYWxIb29rKCJhZnRlckNsb3NlIiwoKT0+V1QoSkYs'@; put 'dGhpcyxHZHQpLmNhbGwodGhpcykpLHRoaXMudXBkYXRlKCl9dXBkYXRlKCl7aWYoIXRoaXMuaXNCdWlsdCgpKXJldHVybjtsZXQgbDtsPXRoaXMub3B0aW9ucy52YWx1ZT90aGlzLm9wdGlvbnMudmFsdWUubmFtZTpZYyhmMCx0aGlzKS5ob3QuZ2V0VHJhbnNsYXRlZFBocmFzZSh4UCksWWMo'@; put 'cFEsdGhpcykudGV4dENvbnRlbnQ9bCxzdXBlci51cGRhdGUoKX1vcGVuT3B0aW9ucygpe2NvbnN0IGw9dGhpcy5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1ljKGYwLHRoaXMpJiYoWWMoZjAsdGhpcykub3BlbigpLFljKGYwLHRoaXMpLnNldFBvc2l0aW9uKHtsZWZ0OnRoaXMu'@; put 'aG90LmlzTHRyKCk/bC5sZWZ0LTU6bC5sZWZ0LTMxLHRvcDpsLnRvcC0xLHdpZHRoOmwud2lkdGgsaGVpZ2h0OmwuaGVpZ2h0fSksWWMoZjAsdGhpcykuZ2V0TmF2aWdhdG9yKCkudG9GaXJzdEl0ZW0oKSxZYyhmMCx0aGlzKS5nZXRLZXlib2FyZFNob3J0Y3V0c0N0cmwoKS5hZGRDdXN0b21T'@; put 'aG9ydGN1dHMoW3trZXlzOltbIlRhYiJdLFsiU2hpZnQiLCJUYWIiXV0sY2FsbGJhY2s6YT0+e3RoaXMuY2xvc2VPcHRpb25zKCksdGhpcy5ydW5Mb2NhbEhvb2tzKCJ0YWJLZXlkb3duIixhKX19LHtrZXlzOltbIkNvbnRyb2wvTWV0YSIsIkEiXV0sY2FsbGJhY2s6KCk9PiExfV0pKX1jbG9z'@; put 'ZU9wdGlvbnMoKXtZYyhmMCx0aGlzKSYmWWMoZjAsdGhpcykuY2xvc2UoKX1mb2N1cygpe3RoaXMuaXNCdWlsdCgpJiZ0aGlzLmVsZW1lbnQuZm9jdXMoKX1kZXN0cm95KCl7WWMoZjAsdGhpcykmJihZYyhmMCx0aGlzKS5kZXN0cm95KCksc3coZjAsdGhpcyxudWxsKSksWWMoWEYsdGhpcykm'@; put 'JlljKFhGLHRoaXMpLmRlc3Ryb3koKSxZYyhxRix0aGlzKSYmWWMocUYsdGhpcykuZGVzdHJveSgpLHN1cGVyLmRlc3Ryb3koKX19ZnVuY3Rpb24gWWR0KGMpe2MubmFtZSE9PWlvJiYodGhpcy5vcHRpb25zLnZhbHVlPWMsdGhpcy51cGRhdGUoKSx0aGlzLnJ1bkxvY2FsSG9va3MoInNlbGVj'@; put 'dCIsdGhpcy5vcHRpb25zLnZhbHVlKSl9ZnVuY3Rpb24gR2R0KCl7dGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlckNsb3NlIil9ZnVuY3Rpb24gJGR0KCl7dGhpcy5vcGVuT3B0aW9ucygpfWZ1bmN0aW9uIE01ZShjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gcWR0KGMpe3ZhciBsPWZ1bmN0aW9u'@; put 'IEpkdChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJy'@; put 'b3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHko'@; put 'YyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9ZnVuY3Rpb24geDVlKGMsbCxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhsKSlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzP2w6YTt0aHJvdyBuZXcg'@; put 'VHlwZUVycm9yKCJQcml2YXRlIGVsZW1lbnQgaXMgbm90IHByZXNlbnQgb24gdGhpcyBvYmplY3QiKX12YXIgZ1E9bmV3IFdlYWtTZXQ7Y2xhc3MgbVEgZXh0ZW5kcyBWVHtjb25zdHJ1Y3RvcihsLGEpe3N1cGVyKGwse2lkOmEuaWQsc3RhdGVsZXNzOiExfSksZnVuY3Rpb24gS2R0KGMsbCl7'@; put 'KGZ1bmN0aW9uIFhkdChjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShjLGwpLGwuYWRkKGMpfSh0aGlzLGdRKSxNNWUodGhpcywibmFtZSIsIiIpLE01'@; put 'ZSh0aGlzLCJhZGRTZXBhcmF0b3IiLCExKSx0aGlzLm5hbWU9YS5uYW1lLHRoaXMuYWRkU2VwYXJhdG9yPWEuYWRkU2VwYXJhdG9yLHRoaXMuZWxlbWVudHMucHVzaChuZXcgWVQodGhpcy5ob3Qse21lbnVDb250YWluZXI6YS5tZW51Q29udGFpbmVyfSkpLHRoaXMuZWxlbWVudHMucHVzaChu'@; put 'ZXcgcjYodGhpcy5ob3Qse3BsYWNlaG9sZGVyOmNxfSkpLHRoaXMuZWxlbWVudHMucHVzaChuZXcgcjYodGhpcy5ob3Qse3BsYWNlaG9sZGVyOnVxfSkpLHRoaXMucmVnaXN0ZXJIb29rcygpfXJlZ2lzdGVySG9va3MoKXt0aGlzLmdldFNlbGVjdEVsZW1lbnQoKS5hZGRMb2NhbEhvb2soInNl'@; put 'bGVjdCIsbD0+eDVlKGdRLHRoaXMsUWR0KS5jYWxsKHRoaXMsbCkpLmFkZExvY2FsSG9vaygiYWZ0ZXJDbG9zZSIsKCk9PnRoaXMucnVuTG9jYWxIb29rcygiYWZ0ZXJDbG9zZSIpKS5hZGRMb2NhbEhvb2soInRhYktleWRvd24iLGw9PnRoaXMucnVuTG9jYWxIb29rcygic2VsZWN0VGFiS2V5'@; put 'ZG93biIsbCkpLEtuKHRoaXMuZ2V0SW5wdXRFbGVtZW50cygpLGw9PntsLmFkZExvY2FsSG9vaygia2V5ZG93biIsYT0+eDVlKGdRLHRoaXMsZWh0KS5jYWxsKHRoaXMsYSkpfSl9c2V0U3RhdGUobCl7aWYodGhpcy5yZXNldCgpLCFsKXJldHVybjtjb25zdCBhPXMzKGwuY29tbWFuZCk7YS5u'@; put 'YW1lLnN0YXJ0c1dpdGgoVWMpJiYoYS5uYW1lPXRoaXMuaG90LmdldFRyYW5zbGF0ZWRQaHJhc2UoYS5uYW1lKSksdGhpcy5nZXRTZWxlY3RFbGVtZW50KCkuc2V0VmFsdWUoYSksS24obC5hcmdzLChkLGgpPT57aWYoaD5hLmlucHV0c0NvdW50LTEpcmV0dXJuITE7Y29uc3QgZj10aGlzLmdl'@; put 'dElucHV0RWxlbWVudChoKTtmLnNldFZhbHVlKGQpLGZbYS5pbnB1dHNDb3VudD5oPyJzaG93IjoiaGlkZSJdKCksaHx8dGhpcy5ob3QuX3JlZ2lzdGVyVGltZW91dCgoKT0+Zi5mb2N1cygpLDEwKX0pfWdldFN0YXRlKCl7Y29uc3QgbD10aGlzLmdldFNlbGVjdEVsZW1lbnQoKS5nZXRWYWx1'@; put 'ZSgpfHx5OShTMCksYT1bXTtyZXR1cm4gS24odGhpcy5nZXRJbnB1dEVsZW1lbnRzKCksKGQsaCk9PntsLmlucHV0c0NvdW50PmgmJmEucHVzaChkLmdldFZhbHVlKCkpfSkse2NvbW1hbmQ6bCxhcmdzOmF9fXVwZGF0ZVN0YXRlKGwsYSl7Y29uc3QgZD15OShsP2wubmFtZTpTMCk7dGhpcy5z'@; put 'dGF0ZS5zZXRWYWx1ZUF0SW5kZXgoYSx7Y29tbWFuZDpkLGFyZ3M6bD9sLmFyZ3M6W119KSxsfHxLbih0aGlzLmdldElucHV0RWxlbWVudHMoKSxoPT5oLnNldFZhbHVlKG51bGwpKX1nZXRTZWxlY3RFbGVtZW50KCl7cmV0dXJuIHRoaXMuZWxlbWVudHMuZmlsdGVyKGw9PmwgaW5zdGFuY2Vv'@; put 'ZiBZVClbMF19Z2V0SW5wdXRFbGVtZW50KCl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOjA7cmV0dXJuIHRoaXMuZ2V0SW5wdXRFbGVtZW50cygpW2xdfWdldElucHV0RWxlbWVudHMoKXtyZXR1cm4gdGhpcy5lbGVtZW50cy5m'@; put 'aWx0ZXIobD0+bCBpbnN0YW5jZW9mIHI2KX1nZXRNZW51SXRlbURlc2NyaXB0b3IoKXtyZXR1cm57a2V5OnRoaXMuaWQsbmFtZTp0aGlzLm5hbWUsaXNDb21tYW5kOiExLGRpc2FibGVTZWxlY3Rpb246ITAsaGlkZGVuOigpPT50aGlzLmlzSGlkZGVuKCkscmVuZGVyZXI6KGwsYSxkLGgsZix2'@; put 'KT0+e0VpKGEucGFyZW50Tm9kZSwiaHRGaWx0ZXJzTWVudUNvbmRpdGlvbiIpLHRoaXMuYWRkU2VwYXJhdG9yJiZFaShhLnBhcmVudE5vZGUsImJvcmRlciIpO2NvbnN0IE09dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBFaShNLCJodEZpbHRlcnNN'@; put 'ZW51TGFiZWwiKSxNLnRleHRDb250ZW50PXYsYS5hcHBlbmRDaGlsZChNKSxhLnBhcmVudEVsZW1lbnQuaGFzQXR0cmlidXRlKCJnaG9zdC10YWJsZSIpfHxLbih0aGlzLmVsZW1lbnRzLEk9PmEuYXBwZW5kQ2hpbGQoSS5lbGVtZW50KSksYX19fXJlc2V0KCl7Y29uc3QgbD10aGlzLmhvdC5n'@; put 'ZXRQbHVnaW4oImZpbHRlcnMiKS5nZXRTZWxlY3RlZENvbHVtbigpO2xldCBhPVt5OShTMCldO2lmKG51bGwhPT1sKXtjb25zdHt2aXN1YWxJbmRleDpkfT1sO2E9ZnVuY3Rpb24gTmR0KGMpe2NvbnN0IGw9W107bGV0IGE9YztyZXR1cm4gYjVlW2FdfHwoYT0idGV4dCIpLEtuKGI1ZVthXSxk'@; put 'PT57bGV0IGg7aD1kPT09aW8/e25hbWU6aW99OnMzKHk5KGQpKSxsLnB1c2goaCl9KSxsfSh0aGlzLmhvdC5nZXREYXRhVHlwZSgwLGQsdGhpcy5ob3QuY291bnRSb3dzKCksZCkpfUtuKHRoaXMuZ2V0SW5wdXRFbGVtZW50cygpLGQ9PmQuaGlkZSgpKSx0aGlzLmdldFNlbGVjdEVsZW1lbnQo'@; put 'KS5zZXRJdGVtcyhhKSxzdXBlci5yZXNldCgpLHRoaXMuZ2V0U2VsZWN0RWxlbWVudCgpLnNldFZhbHVlKGFbMF0pfX1mdW5jdGlvbiBRZHQoYyl7S24odGhpcy5nZXRJbnB1dEVsZW1lbnRzKCksKGwsYSk9PntsW2MuaW5wdXRzQ291bnQ+YT8ic2hvdyI6ImhpZGUiXSgpLDA9PT1hJiZ0aGlz'@; put 'LmhvdC5fcmVnaXN0ZXJUaW1lb3V0KCgpPT5sLmZvY3VzKCksMTApfSksdGhpcy5ydW5Mb2NhbEhvb2tzKCJjaGFuZ2UiLGMpfWZ1bmN0aW9uIGVodChjKXtjXyhjLmtleUNvZGUsIkVTQ0FQRSIpJiYodGhpcy5ydW5Mb2NhbEhvb2tzKCJjYW5jZWwiKSx6MihjKSl9Y29uc3QgR1Q9e307ZnVu'@; put 'Y3Rpb24gbmh0KGMpe3JldHVybiBHVFtjXS5uYW1lfWZ1bmN0aW9uIHZRKGMsbCxhKXtHVFtjXT17bmFtZTpsLGZ1bmM6YX19Y29uc3QgaTY9ImNvbmp1bmN0aW9uIjt2UShpNixycSxmdW5jdGlvbiBpaHQoYyxsKXtyZXR1cm4gYy5ldmVyeShhPT5hLmZ1bmMobCkpfSk7Y29uc3QgUUY9ImRp'@; put 'c2p1bmN0aW9uIjt2UShRRixFUCxmdW5jdGlvbiBzaHQoYyxsKXtyZXR1cm4gYy5zb21lKGE9PmEuZnVuYyhsKSl9KTtjb25zdCB5UT0iZGlzanVuY3Rpb25XaXRoRXh0cmFDb25kaXRpb24iO2Z1bmN0aW9uIEU1ZShjLGwsYSl7KGZ1bmN0aW9uIGNodChjLGwpe2lmKGwuaGFzKGMpKXRocm93'@; put 'IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShjLGwpLGwuc2V0KGMsYSl9ZnVuY3Rpb24gJFQoYyxsKXtyZXR1cm4gYy5nZXQoQTVlKGMsbCkpfWZ1bmN0aW9uIFQ1ZShjLGwsYSl7cmV0dXJu'@; put 'IGMuc2V0KEE1ZShjLGwpLGEpLGF9ZnVuY3Rpb24gQTVlKGMsbCxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhsKSlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzP2w6YTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGVsZW1lbnQgaXMgbm90IHByZXNlbnQgb24g'@; put 'dGhpcyBvYmplY3QiKX12USh5USxFUCxmdW5jdGlvbiBsaHQoYyxsKXtpZihjLmxlbmd0aDwzKXRocm93IEVycm9yKCJPcGVyYXRpb24gZG9lc24ndCB3b3JrIG9uIGxlc3MgdGhlbiB0aHJlZSBjb25kaXRpb25zLiIpO3JldHVybiBjLnNsaWNlKDAsYy5sZW5ndGgtMSkuc29tZShhPT5hLmZ1'@; put 'bmMobCkpJiZjW2MubGVuZ3RoLTFdLmZ1bmMobCl9KTt2YXIgb3c9bmV3IFdlYWtNYXAsYlE9bmV3IFdlYWtNYXA7Y2xhc3MgZUggZXh0ZW5kcyBWaHtzdGF0aWMgZ2V0IERFRkFVTFRTKCl7cmV0dXJuIHMzKHt0eXBlOiJyYWRpbyIsdGFnTmFtZToiaW5wdXQiLGNsYXNzTmFtZToiaHRVSVJh'@; put 'ZGlvIixsYWJlbDp7fX0pfWNvbnN0cnVjdG9yKGwsYSl7c3VwZXIobCx3dShlSC5ERUZBVUxUUyxhKSksRTVlKHRoaXMsb3csdm9pZCAwKSxFNWUodGhpcyxiUSx2b2lkIDApfWJ1aWxkKCl7c3VwZXIuYnVpbGQoKTtjb25zdCBsPXRoaXMuaG90LnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50'@; put 'KCJsYWJlbCIpO2wudGV4dENvbnRlbnQ9dGhpcy50cmFuc2xhdGVJZlBvc3NpYmxlKHRoaXMub3B0aW9ucy5sYWJlbC50ZXh0Q29udGVudCksbC5odG1sRm9yPXRoaXMudHJhbnNsYXRlSWZQb3NzaWJsZSh0aGlzLm9wdGlvbnMubGFiZWwuaHRtbEZvciksVDVlKGJRLHRoaXMsbCksVDVlKG93'@; put 'LHRoaXMsdGhpcy5fZWxlbWVudC5maXJzdENoaWxkKSwkVChvdyx0aGlzKS5jaGVja2VkPXRoaXMub3B0aW9ucy5jaGVja2VkLHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQobCksdGhpcy51cGRhdGUoKX11cGRhdGUoKXt0aGlzLmlzQnVpbHQoKSYmKCRUKGJRLHRoaXMpLnRleHRDb250ZW50'@; put 'PXRoaXMudHJhbnNsYXRlSWZQb3NzaWJsZSh0aGlzLm9wdGlvbnMubGFiZWwudGV4dENvbnRlbnQpKX1pc0NoZWNrZWQoKXtyZXR1cm4hIXRoaXMuaXNCdWlsdCgpJiYkVChvdyx0aGlzKS5jaGVja2VkfXNldENoZWNrZWQoKXtsZXQgbD0hKGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09'@; put 'YXJndW1lbnRzWzBdKXx8YXJndW1lbnRzWzBdO3RoaXMuaXNCdWlsdCgpJiYoJFQob3csdGhpcykuY2hlY2tlZD1sKX1mb2N1cygpe3RoaXMuaXNCdWlsdCgpJiYkVChvdyx0aGlzKS5mb2N1cygpfX12YXIgRDVlPW5ldyBXZWFrU2V0O2NsYXNzIG1odCBleHRlbmRzIFZUe2NvbnN0cnVjdG9y'@; put 'KGwsYSl7c3VwZXIobCx7aWQ6YS5pZCxzdGF0ZWxlc3M6ITF9KSxmdW5jdGlvbiB1aHQoYyxsKXsoZnVuY3Rpb24gZGh0KGMsbCl7aWYobC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBv'@; put 'YmplY3QiKX0pKGMsbCksbC5hZGQoYyl9KHRoaXMsRDVlKSxmdW5jdGlvbiBoaHQoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIGZodChjKXt2YXIgbD1mdW5jdGlvbiBwaHQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZl'@; put 'XTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/'@; put 'U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfSh0aGlz'@; put 'LCJuYW1lIiwiIiksdGhpcy5uYW1lPWEubmFtZSx0aGlzLmJ1aWxkT3BlcmF0b3JzRWxlbWVudCgpfWdldE1lbnVJdGVtRGVzY3JpcHRvcigpe3JldHVybntrZXk6dGhpcy5pZCxuYW1lOnRoaXMubmFtZSxpc0NvbW1hbmQ6ITEsZGlzYWJsZVNlbGVjdGlvbjohMCxoaWRkZW46KCk9PnRoaXMu'@; put 'aXNIaWRkZW4oKSxyZW5kZXJlcjoobCxhKT0+KEVpKGEucGFyZW50Tm9kZSwiaHRGaWx0ZXJzTWVudU9wZXJhdG9ycyIpLEtuKHRoaXMuZWxlbWVudHMsZD0+YS5hcHBlbmRDaGlsZChkLmVsZW1lbnQpKSxhKX19YnVpbGRPcGVyYXRvcnNFbGVtZW50KCl7Y29uc3QgbD1baTYsUUZdO0tuKGws'@; put 'YT0+e2NvbnN0IGQ9bmV3IGVIKHRoaXMuaG90LHtuYW1lOiJvcGVyYXRvciIsbGFiZWw6e2h0bWxGb3I6YSx0ZXh0Q29udGVudDpuaHQoYSl9LHZhbHVlOmEsY2hlY2tlZDphPT09bFswXSxpZDphfSk7ZC5hZGRMb2NhbEhvb2soImNoYW5nZSIsaD0+ZnVuY3Rpb24gZ2h0KGMsbCxhKXtpZigi'@; put 'ZnVuY3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhsKSlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzP2w6YTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGVsZW1lbnQgaXMgbm90IHByZXNlbnQgb24gdGhpcyBvYmplY3QiKX0oRDVlLHRoaXMsdmh0KS5jYWxsKHRoaXMsaCkpLHRo'@; put 'aXMuZWxlbWVudHMucHVzaChkKX0pfXNldENoZWNrZWQobCl7aWYodGhpcy5lbGVtZW50cy5sZW5ndGg8bCl0aHJvdyBFcnJvcihobGBSYWRpbyBidXR0b24gd2l0aCBpbmRleCAke2x9IGRvZXNuJ3QgZXhpc3QuYCk7S24odGhpcy5lbGVtZW50cywoYSxkKT0+e2Euc2V0Q2hlY2tlZChkPT09'@; put 'bCl9KX1nZXRBY3RpdmVPcGVyYXRpb25JZCgpe2NvbnN0IGw9dGhpcy5lbGVtZW50cy5maW5kKGE9PmEgaW5zdGFuY2VvZiBlSCYmYS5pc0NoZWNrZWQoKSk7cmV0dXJuIGw/bC5nZXRWYWx1ZSgpOmk2fWdldFN0YXRlKCl7cmV0dXJuIHRoaXMuZ2V0QWN0aXZlT3BlcmF0aW9uSWQoKX1zZXRT'@; put 'dGF0ZShsKXt0aGlzLnJlc2V0KCksbCYmdGhpcy5nZXRBY3RpdmVPcGVyYXRpb25JZCgpIT09bCYmS24odGhpcy5lbGVtZW50cyxhPT57YS5zZXRDaGVja2VkKGEuZ2V0VmFsdWUoKT09PWwpfSl9dXBkYXRlU3RhdGUoKXtsZXQgZD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3Vt'@; put 'ZW50c1swXT9hcmd1bWVudHNbMF06aTY7ZD09PXlRJiYoZD1RRiksdGhpcy5zdGF0ZS5zZXRWYWx1ZUF0SW5kZXgoYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsZCl9cmVzZXQoKXt0aGlzLnNldENoZWNrZWQoMCl9fWZ1bmN0aW9uIHZodChjKXt0aGlzLnNldFN0YXRl'@; put 'KGMudGFyZ2V0LnZhbHVlKX1mdW5jdGlvbiBiaHQoYyxsKXtsZXQgYT1jO3JldHVybiIiPT09YSYmKGE9YCgke2x9KWApLGF9ZnVuY3Rpb24gS1QoYyl7Y29uc3QgbD1uZXcgU2V0KGMpO3JldHVybiBmdW5jdGlvbihhKXtyZXR1cm4gbC5oYXMoYSl9fWZ1bmN0aW9uIF9RKGMpe3JldHVybiBj'@; put 'Pz8iIn1mdW5jdGlvbiB3UShjKXtyZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KGMpKS5tYXAobD0+X1EobCkpLnNvcnQoKGwsYSk9PiJudW1iZXIiPT10eXBlb2YgbCYmIm51bWJlciI9PXR5cGVvZiBhP2wtYTpsPT09YT8wOmw+YT8xOi0xKX1mdW5jdGlvbiBJNWUoYyxsLGEsZCl7Y29uc3Qg'@; put 'aD1bXSxmPWM9PT1sO2xldCB2O3JldHVybiBmfHwodj1LVChsKSksYy5mb3JFYWNoKE09PntsZXQgST0hMTsoZnx8dihNKSkmJihJPSEwKTtjb25zdCBHPXtjaGVja2VkOkksdmFsdWU6TSx2aXN1YWxWYWx1ZTpiaHQoTSxhKX07ZCYmZChHKSxoLnB1c2goRyl9KSxofWZ1bmN0aW9uIENRKGMs'@; put 'bCl7cmV0dXJuIGMuZ2V0KFI1ZShjLGwpKX1mdW5jdGlvbiBSNWUoYyxsLGEpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBjP2M9PT1sOmMuaGFzKGwpKXJldHVybiBhcmd1bWVudHMubGVuZ3RoPDM/bDphO3Rocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgZWxlbWVudCBpcyBub3QgcHJlc2Vu'@; put 'dCBvbiB0aGlzIG9iamVjdCIpfVkyZSgpO3ZhciBYVD1uZXcgV2Vha01hcDtjbGFzcyBxVCBleHRlbmRzIFZoe3N0YXRpYyBnZXQgREVGQVVMVFMoKXtyZXR1cm4gczMoe2hyZWY6IiMiLHRhZ05hbWU6ImEiLHRhYkluZGV4Oi0xLHJvbGU6ImJ1dHRvbiJ9KX1jb25zdHJ1Y3RvcihsLGEpe3N1'@; put 'cGVyKGwsd3UocVQuREVGQVVMVFMsYSkpLGZ1bmN0aW9uIF9odChjLGwsYSl7KGZ1bmN0aW9uIHdodChjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShj'@; put 'LGwpLGwuc2V0KGMsYSl9KHRoaXMsWFQsdm9pZCAwKX1idWlsZCgpe3N1cGVyLmJ1aWxkKCksZnVuY3Rpb24gQ2h0KGMsbCxhKXtjLnNldChSNWUoYyxsKSxhKX0oWFQsdGhpcyx0aGlzLl9lbGVtZW50LmZpcnN0Q2hpbGQpfXVwZGF0ZSgpe3RoaXMuaXNCdWlsdCgpJiYoQ1EoWFQsdGhpcyku'@; put 'dGV4dENvbnRlbnQ9dGhpcy50cmFuc2xhdGVJZlBvc3NpYmxlKHRoaXMub3B0aW9ucy50ZXh0Q29udGVudCkpfWZvY3VzKCl7dGhpcy5pc0J1aWx0KCkmJkNRKFhULHRoaXMpLmZvY3VzKCl9YWN0aXZhdGUoKXtDUShYVCx0aGlzKS5jbGljaygpfX1mdW5jdGlvbiBsdyhjLGwsYSl7TDVlKGMs'@; put 'bCksbC5zZXQoYyxhKX1mdW5jdGlvbiBMNWUoYyxsKXtpZihsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfWZ1bmN0aW9uIFpzKGMsbCl7cmV0dXJuIGMuZ2V0KGN3KGMs'@; put 'bCkpfWZ1bmN0aW9uIGIzKGMsbCxhKXtyZXR1cm4gYy5zZXQoY3coYyxsKSxhKSxhfWZ1bmN0aW9uIGN3KGMsbCxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhsKSlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzP2w6YTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRl'@; put 'IGVsZW1lbnQgaXMgbm90IHByZXNlbnQgb24gdGhpcyBvYmplY3QiKX1jb25zdCBPNWU9Im11bHRpcGxlU2VsZWN0Lml0ZW1Cb3giO3ZhciBfMz1uZXcgV2Vha01hcCxFdT1uZXcgV2Vha01hcCxTUT1uZXcgV2Vha01hcCxPZz1uZXcgV2Vha01hcCxhNj1uZXcgV2Vha01hcCxzNj1uZXcgV2Vh'@; put 'a01hcCxKVD1uZXcgV2Vha1NldDtjbGFzcyBRVCBleHRlbmRzIFZoe3N0YXRpYyBnZXQgREVGQVVMVFMoKXtyZXR1cm4gczMoe2NsYXNzTmFtZToiaHRVSU11bHRpcGxlU2VsZWN0Iix2YWx1ZTpbXX0pfWNvbnN0cnVjdG9yKGwsYSl7c3VwZXIobCx3dShRVC5ERUZBVUxUUyxhKSksZnVuY3Rp'@; put 'b24gU2h0KGMsbCl7TDVlKGMsbCksbC5hZGQoYyl9KHRoaXMsSlQpLGx3KHRoaXMsXzMsW10pLGx3KHRoaXMsRXUsdm9pZCAwKSxsdyh0aGlzLFNRLHZvaWQgMCksbHcodGhpcyxPZyx2b2lkIDApLGx3KHRoaXMsYTYsdm9pZCAwKSxsdyh0aGlzLHM2LHZvaWQgMCksYjMoT2csdGhpcyxuZXcg'@; put 'cjYodGhpcy5ob3Qse3BsYWNlaG9sZGVyOmxxLGNsYXNzTmFtZToiaHRVSU11bHRpcGxlU2VsZWN0U2VhcmNoIn0pKSxiMyhhNix0aGlzLG5ldyBxVCh0aGlzLmhvdCx7dGV4dENvbnRlbnQ6aXEsY2xhc3NOYW1lOiJodFVJU2VsZWN0QWxsIn0pKSxiMyhzNix0aGlzLG5ldyBxVCh0aGlzLmhv'@; put 'dCx7dGV4dENvbnRlbnQ6YXEsY2xhc3NOYW1lOiJodFVJQ2xlYXJBbGwifSkpLHRoaXMucmVnaXN0ZXJIb29rcygpfWdldEl0ZW1zQm94KCl7cmV0dXJuIFpzKEV1LHRoaXMpfXJlZ2lzdGVySG9va3MoKXtacyhPZyx0aGlzKS5hZGRMb2NhbEhvb2soImtleWRvd24iLGw9PmN3KEpULHRoaXMs'@; put 'eGh0KS5jYWxsKHRoaXMsbCkpLFpzKE9nLHRoaXMpLmFkZExvY2FsSG9vaygiaW5wdXQiLGw9PmN3KEpULHRoaXMsTWh0KS5jYWxsKHRoaXMsbCkpLFpzKGE2LHRoaXMpLmFkZExvY2FsSG9vaygiY2xpY2siLGw9PmN3KEpULHRoaXMsRWh0KS5jYWxsKHRoaXMsbCkpLFpzKHM2LHRoaXMpLmFk'@; put 'ZExvY2FsSG9vaygiY2xpY2siLGw9PmN3KEpULHRoaXMsVGh0KS5jYWxsKHRoaXMsbCkpfXNldEl0ZW1zKGwpe3ZhciBhO2IzKF8zLHRoaXMsbCksbnVsbD09PShhPVpzKEV1LHRoaXMpKXx8dm9pZCAwPT09YXx8YS5sb2FkRGF0YShacyhfMyx0aGlzKSl9c2V0TG9jYWxlKGwpe2IzKFNRLHRo'@; put 'aXMsbCl9Z2V0TG9jYWxlKCl7cmV0dXJuIFpzKFNRLHRoaXMpfWdldEl0ZW1zKCl7cmV0dXJuWy4uLlpzKF8zLHRoaXMpXX1nZXRWYWx1ZSgpe3JldHVybiBmdW5jdGlvbiBraHQoYyl7Y29uc3QgbD1bXTtyZXR1cm4gYy5mb3JFYWNoKGE9PnthLmNoZWNrZWQmJmwucHVzaChhLnZhbHVlKX0p'@; put 'LGx9KFpzKF8zLHRoaXMpKX1nZXRTZWFyY2hJbnB1dEVsZW1lbnQoKXtyZXR1cm4gWnMoT2csdGhpcyl9Z2V0U2VsZWN0QWxsRWxlbWVudCgpe3JldHVybiBacyhhNix0aGlzKX1nZXRDbGVhckFsbEVsZW1lbnQoKXtyZXR1cm4gWnMoczYsdGhpcyl9aXNTZWxlY3RlZEFsbFZhbHVlcygpe3Jl'@; put 'dHVybiBacyhfMyx0aGlzKS5sZW5ndGg9PT10aGlzLmdldFZhbHVlKCkubGVuZ3RofWJ1aWxkKCl7c3VwZXIuYnVpbGQoKTtjb25zdHtyb290RG9jdW1lbnQ6bH09dGhpcy5ob3QsYT1sLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGQ9bmV3IFZoKHRoaXMuaG90LHtjbGFzc05hbWU6Imh0VUlTZWxl'@; put 'Y3Rpb25Db250cm9scyIsY2hpbGRyZW46W1pzKGE2LHRoaXMpLFpzKHM2LHRoaXMpXX0pO3RoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQoWnMoT2csdGhpcykuZWxlbWVudCksdGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZChkLmVsZW1lbnQpLHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQoYSk7'@; put 'Y29uc3QgaD1mPT57dmFyIHY7aWYoIXRoaXMuX2VsZW1lbnQpcmV0dXJuO251bGw9PT0odj1acyhFdSx0aGlzKSl8fHZvaWQgMD09PXZ8fHYuZGVzdHJveSgpLEVpKGYsImh0VUlNdWx0aXBsZVNlbGVjdEhvdCIpLGIzKEV1LHRoaXMsbmV3IHRoaXMuaG90LmNvbnN0cnVjdG9yKGYse2RhdGE6'@; put 'WnMoXzMsdGhpcyksY29sdW1uczpbe2RhdGE6ImNoZWNrZWQiLHR5cGU6ImNoZWNrYm94IixsYWJlbDp7cHJvcGVydHk6InZpc3VhbFZhbHVlIixwb3NpdGlvbjoiYWZ0ZXIifX1dLGJlZm9yZVJlbmRlcmVyOihHLHJlLHVlLHllLEVlLEJlKT0+e0cudGl0bGU9QmUuaW5zdGFuY2UuZ2V0RGF0'@; put 'YUF0Um93UHJvcChyZSxCZS5sYWJlbC5wcm9wZXJ0eSl9LGFmdGVyTGlzdGVuOigpPT57dGhpcy5ydW5Mb2NhbEhvb2tzKCJmb2N1cyIsdGhpcyl9LGJlZm9yZU9uQ2VsbE1vdXNlVXA6KCk9PntacyhFdSx0aGlzKS5saXN0ZW4oKX0sbW9kaWZ5Q29sV2lkdGg6Rz0+e2NvbnN0IHJlPVpzKEV1'@; put 'LHRoaXMpLmNvbnRhaW5lci5zY3JvbGxXaWR0aC1kMChsKTtyZXR1cm4gdm9pZCAwIT09RyYmRzxyZT9yZTpHfSxtYXhDb2xzOjEsYXV0b1dyYXBDb2w6ITAsaGVpZ2h0OjExMCxjb3B5UGFzdGU6ITEsZGlzYWJsZVZpc3VhbFNlbGVjdGlvbjoiYXJlYSIsZmlsbEhhbmRsZTohMSxmcmFnbWVu'@; put 'dFNlbGVjdGlvbjoiY2VsbCIsdGFiTW92ZXM6e3JvdzoxLGNvbDowfSx0aGVtZU5hbWU6dGhpcy5ob3QuZ2V0Q3VycmVudFRoZW1lTmFtZSgpLGxheW91dERpcmVjdGlvbjp0aGlzLmhvdC5pc1J0bCgpPyJydGwiOiJsdHIifSkpLFpzKEV1LHRoaXMpLmluaXQoKTtjb25zdCBJPVpzKEV1LHRo'@; put 'aXMpLmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImdyaWQiKTtJLnJlbW92ZVNob3J0Y3V0c0J5S2V5cyhbIlRhYiJdKSxJLnJlbW92ZVNob3J0Y3V0c0J5S2V5cyhbIlNoaWZ0IiwiVGFiIl0pLEkuYWRkU2hvcnRjdXQoe2tleXM6W1siRXNjYXBlIl1dLGNhbGxiYWNrOkc9Pnt0'@; put 'aGlzLnJ1bkxvY2FsSG9va3MoImtleWRvd24iLEcsdGhpcyl9LGdyb3VwOk81ZX0pLEkuYWRkU2hvcnRjdXQoe2tleXM6W1siVGFiIl0sWyJTaGlmdCIsIlRhYiJdXSxjYWxsYmFjazpHPT57WnMoRXUsdGhpcykuZGVzZWxlY3RDZWxsKCksdGhpcy5ydW5Mb2NhbEhvb2tzKCJrZXlkb3duIixH'@; put 'LHRoaXMpLHRoaXMucnVuTG9jYWxIb29rcygibGlzdFRhYktleWRvd24iLEcsdGhpcyl9LGdyb3VwOk81ZX0pfTtoKGEpLHRoaXMuaG90Ll9yZWdpc3RlclRpbWVvdXQoKCk9PmgoYSksMTAwKX1mb2N1cygpe3RoaXMuaXNCdWlsdCgpJiZacyhFdSx0aGlzKS5saXN0ZW4oKX1yZXNldCgpe1pz'@; put 'KE9nLHRoaXMpLnJlc2V0KCksWnMoYTYsdGhpcykucmVzZXQoKSxacyhzNix0aGlzKS5yZXNldCgpfXVwZGF0ZSgpe3RoaXMuaXNCdWlsdCgpJiYoWnMoRXUsdGhpcykubG9hZERhdGEoZnVuY3Rpb24gQWh0KGMsbCl7Y29uc3QgYT1LVChsKTtyZXR1cm4gYy5tYXAoZD0+KGQuY2hlY2tlZD1h'@; put 'KGQudmFsdWUpLGQpKX0oWnMoXzMsdGhpcyksdGhpcy5vcHRpb25zLnZhbHVlKSksc3VwZXIudXBkYXRlKCkpfWRlc3Ryb3koKXt2YXIgbDtudWxsPT09KGw9WnMoRXUsdGhpcykpfHx2b2lkIDA9PT1sfHxsLmRlc3Ryb3koKSxacyhPZyx0aGlzKS5kZXN0cm95KCksWnMoczYsdGhpcykuZGVz'@; put 'dHJveSgpLFpzKGE2LHRoaXMpLmRlc3Ryb3koKSxiMyhPZyx0aGlzLG51bGwpLGIzKHM2LHRoaXMsbnVsbCksYjMoYTYsdGhpcyxudWxsKSxiMyhFdSx0aGlzLG51bGwpLGIzKF8zLHRoaXMsbnVsbCksc3VwZXIuZGVzdHJveSgpfX1mdW5jdGlvbiBNaHQoYyl7Y29uc3QgbD1jLnRhcmdldC52'@; put 'YWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSh0aGlzLmdldExvY2FsZSgpKTtsZXQgYTthPSIiPT09bD9bLi4uWnMoXzMsdGhpcyldOlpzKF8zLHRoaXMpLmZpbHRlcihkPT5gJHtkLnZhbHVlfWAudG9Mb2NhbGVMb3dlckNhc2UodGhpcy5nZXRMb2NhbGUoKSkuaW5kZXhPZihsKT49MCksWnMoRXUs'@; put 'dGhpcykubG9hZERhdGEoYSl9ZnVuY3Rpb24geGh0KGMpe3RoaXMucnVuTG9jYWxIb29rcygia2V5ZG93biIsYyx0aGlzKSxOJChjXyxjLmtleUNvZGUpKCJBUlJPV19ET1dOIikmJihjLnByZXZlbnREZWZhdWx0KCksejIoYyksWnMoRXUsdGhpcykubGlzdGVuKCksWnMoRXUsdGhpcykuc2Vs'@; put 'ZWN0Q2VsbCgwLDApKX1mdW5jdGlvbiBFaHQoYyl7Y29uc3QgbD1bXTtjLnByZXZlbnREZWZhdWx0KCksWnMoRXUsdGhpcykuZ2V0U291cmNlRGF0YSgpLmZvckVhY2goKGEsZCk9PnthLmNoZWNrZWQ9ITAsbC5wdXNoKFBLKGEsZClbMF0pfSksWnMoRXUsdGhpcykuc2V0U291cmNlRGF0YUF0'@; put 'Q2VsbChsKX1mdW5jdGlvbiBUaHQoYyl7Y29uc3QgbD1bXTtjLnByZXZlbnREZWZhdWx0KCksWnMoRXUsdGhpcykuZ2V0U291cmNlRGF0YSgpLmZvckVhY2goKGEsZCk9PnthLmNoZWNrZWQ9ITEsbC5wdXNoKFBLKGEsZClbMF0pfSksWnMoRXUsdGhpcykuc2V0U291cmNlRGF0YUF0Q2VsbChs'@; put 'KX1jb25zdCBiOT0iYnlfdmFsdWUiO2Z1bmN0aW9uIHRIKGMsbCxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhsKSlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzP2w6YTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGVsZW1lbnQgaXMgbm90IHByZXNlbnQgb24g'@; put 'dGhpcyBvYmplY3QiKX14dShiOSxmdW5jdGlvbiBEaHQoYyxsKXtsZXRbYV09bDtyZXR1cm4gYShjLnZhbHVlKX0se25hbWU6IkJ5IHZhbHVlIixpbnB1dHNDb3VudDowLGlucHV0VmFsdWVzRGVjb3JhdG9yKGMpe2xldFtsXT1jO3JldHVybltLVChsKV19LHNob3dPcGVyYXRvcnM6ITF9KTt2'@; put 'YXIgRjVlLGVBPW5ldyBXZWFrU2V0O2NsYXNzIEZodCBleHRlbmRzIFZUe2NvbnN0cnVjdG9yKGwsYSl7c3VwZXIobCx7aWQ6YS5pZCxzdGF0ZWxlc3M6ITF9KSxmdW5jdGlvbiBJaHQoYyxsKXsoZnVuY3Rpb24gUmh0KGMsbCl7aWYobC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fu'@; put 'bm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGMsbCksbC5hZGQoYyl9KHRoaXMsZUEpLGZ1bmN0aW9uIExodChjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gT2h0KGMpe3ZhciBsPWZ1bmN0aW9uIFBodChjLGwpe2lmKCJvYmpl'@; put 'Y3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUg'@; put 'bXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1l'@; put 'cmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9KHRoaXMsIm5hbWUiLCIiKSx0aGlzLm5hbWU9YS5uYW1lLHRoaXMuZWxlbWVudHMucHVzaChuZXcgUVQodGhpcy5ob3QpKSx0aGlzLnJlZ2lzdGVySG9va3MoKX1yZWdpc3Rlckhvb2tzKCl7dGhpcy5nZXRN'@; put 'dWx0aXBsZVNlbGVjdEVsZW1lbnQoKS5hZGRMb2NhbEhvb2soImtleWRvd24iLGw9PnRIKGVBLHRoaXMsSGh0KS5jYWxsKHRoaXMsbCkpLmFkZExvY2FsSG9vaygibGlzdFRhYktleWRvd24iLGw9PnRoaXMucnVuTG9jYWxIb29rcygibGlzdFRhYktleWRvd24iLGwpKSx0aGlzLmhvdC5hZGRI'@; put 'b29rKCJtb2RpZnlGaWx0ZXJzTXVsdGlTZWxlY3RWYWx1ZSIsKGwsYSk9PnRIKGVBLHRoaXMsTmh0KS5jYWxsKHRoaXMsbCxhKSl9Z2V0RWxlbWVudHMoKXtjb25zdCBsPXRoaXMuZ2V0TXVsdGlwbGVTZWxlY3RFbGVtZW50KCk7cmV0dXJuW2wuZ2V0U2VhcmNoSW5wdXRFbGVtZW50KCksbC5n'@; put 'ZXRTZWxlY3RBbGxFbGVtZW50KCksbC5nZXRDbGVhckFsbEVsZW1lbnQoKSx0aGlzLmdldE11bHRpcGxlU2VsZWN0RWxlbWVudCgpXX1zZXRTdGF0ZShsKXtpZih0aGlzLnJlc2V0KCksbCYmbC5jb21tYW5kLmtleT09PWI5KXtjb25zdCBhPXRoaXMuZ2V0TXVsdGlwbGVTZWxlY3RFbGVtZW50'@; put 'KCk7YS5zZXRJdGVtcyhsLml0ZW1zU25hcHNob3QpLGEuc2V0VmFsdWUobC5hcmdzWzBdKSxhLnNldExvY2FsZShsLmxvY2FsZSl9fWdldFN0YXRlKCl7Y29uc3QgbD10aGlzLmdldE11bHRpcGxlU2VsZWN0RWxlbWVudCgpLGE9bC5nZXRJdGVtcygpO3JldHVybntjb21tYW5kOntrZXk6bC5p'@; put 'c1NlbGVjdGVkQWxsVmFsdWVzKCl8fCFhLmxlbmd0aD9TMDpiOX0sYXJnczpbbC5nZXRWYWx1ZSgpXSxpdGVtc1NuYXBzaG90OmF9fXVwZGF0ZVN0YXRlKGwpe2NvbnN0IGE9KGQsaCxmLHYsTSk9Pntjb25zdFtJXT1BbShoLHVlPT51ZS5uYW1lPT09YjkpLEc9e30scmU9dGhpcy5ob3QuZ2V0'@; put 'VHJhbnNsYXRlZFBocmFzZShUUCk7aWYoSSl7Y29uc3QgdWU9dihkLE0pLHllPXlvKHVlLGR0PT5kdC52YWx1ZSksRWU9bmV3IE1hcCh1ZS5tYXAoZHQ9PltkdC52YWx1ZSx0aGlzLmhvdC5nZXRDZWxsTWV0YShkdC5tZXRhLnZpc3VhbFJvdyxkdC5tZXRhLnZpc3VhbENvbCldKSksQmU9d1Eo'@; put 'eWUpO2YmJihJLmFyZ3NbMF09Zik7Y29uc3QgR2U9W10sc3Q9STVlKEJlLEkuYXJnc1swXSxyZSxkdD0+e2R0LmNoZWNrZWQmJkdlLnB1c2goZHQudmFsdWUpLHRIKGVBLHRoaXMsUDVlKS5jYWxsKHRoaXMsZHQsRWUpfSk7Ry5sb2NhbGU9dGhpcy5ob3QuZ2V0Q2VsbE1ldGEoMCxsLmVkaXRl'@; put 'ZENvbmRpdGlvblN0YWNrLmNvbHVtbikubG9jYWxlLEcuYXJncz1bR2VdLEcuY29tbWFuZD15OShiOSksRy5pdGVtc1NuYXBzaG90PXN0fWVsc2UgRy5hcmdzPVtdLEcuY29tbWFuZD15OShTMCk7dGhpcy5zdGF0ZS5zZXRWYWx1ZUF0SW5kZXgoZCxHKX07YShsLmVkaXRlZENvbmRpdGlvblN0'@; put 'YWNrLmNvbHVtbixsLmVkaXRlZENvbmRpdGlvblN0YWNrLmNvbmRpdGlvbnMsbC5jb25kaXRpb25BcmdzQ2hhbmdlLGwuZmlsdGVyZWRSb3dzRmFjdG9yeSksbC5kZXBlbmRlbnRDb25kaXRpb25TdGFja3MubGVuZ3RoJiZhKGwuZGVwZW5kZW50Q29uZGl0aW9uU3RhY2tzWzBdLmNvbHVtbixs'@; put 'LmRlcGVuZGVudENvbmRpdGlvblN0YWNrc1swXS5jb25kaXRpb25zLGwuY29uZGl0aW9uQXJnc0NoYW5nZSxsLmZpbHRlcmVkUm93c0ZhY3RvcnksbC5lZGl0ZWRDb25kaXRpb25TdGFjayl9Z2V0TXVsdGlwbGVTZWxlY3RFbGVtZW50KCl7cmV0dXJuIHRoaXMuZWxlbWVudHMuZmlsdGVyKGw9'@; put 'PmwgaW5zdGFuY2VvZiBRVClbMF19Z2V0TWVudUl0ZW1EZXNjcmlwdG9yKCl7cmV0dXJue2tleTp0aGlzLmlkLG5hbWU6dGhpcy5uYW1lLGlzQ29tbWFuZDohMSxkaXNhYmxlU2VsZWN0aW9uOiEwLGhpZGRlbjooKT0+dGhpcy5pc0hpZGRlbigpLHJlbmRlcmVyOihsLGEsZCxoLGYsdik9PntF'@; put 'aShhLnBhcmVudE5vZGUsImh0RmlsdGVyc01lbnVWYWx1ZSIpO2NvbnN0IE09dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBFaShNLCJodEZpbHRlcnNNZW51TGFiZWwiKSxNLnRleHRDb250ZW50PXYsYS5hcHBlbmRDaGlsZChNKSxhLnBhcmVudEVs'@; put 'ZW1lbnQuaGFzQXR0cmlidXRlKCJnaG9zdC10YWJsZSIpfHxLbih0aGlzLmVsZW1lbnRzLEk9PmEuYXBwZW5kQ2hpbGQoSS5lbGVtZW50KSksYX19fXJlc2V0KCl7Y29uc3QgbD10aGlzLmhvdC5nZXRUcmFuc2xhdGVkUGhyYXNlKFRQKSxhPXRoaXMuX2dldENvbHVtblZpc2libGVWYWx1ZXMo'@; put 'KSxkPWEubWFwKEk9PkkudmFsdWUpLGg9bmV3IE1hcChhLm1hcChJPT5bSS52YWx1ZSxJLm1ldGFdKSksZj13UShkKSx2PUk1ZShmLGYsbCxJPT57dEgoZUEsdGhpcyxQNWUpLmNhbGwodGhpcyxJLGgpfSk7dGhpcy5nZXRNdWx0aXBsZVNlbGVjdEVsZW1lbnQoKS5zZXRJdGVtcyh2KSxzdXBl'@; put 'ci5yZXNldCgpLHRoaXMuZ2V0TXVsdGlwbGVTZWxlY3RFbGVtZW50KCkuc2V0VmFsdWUoZik7Y29uc3QgTT10aGlzLmhvdC5nZXRQbHVnaW4oImZpbHRlcnMiKS5nZXRTZWxlY3RlZENvbHVtbigpO251bGwhPT1NJiZ0aGlzLmdldE11bHRpcGxlU2VsZWN0RWxlbWVudCgpLnNldExvY2FsZSh0'@; put 'aGlzLmhvdC5nZXRDZWxsTWV0YSgwLE0udmlzdWFsSW5kZXgpLmxvY2FsZSl9X2dldENvbHVtblZpc2libGVWYWx1ZXMoKXtjb25zdCBsPXRoaXMuaG90LmdldFBsdWdpbigiZmlsdGVycyIpLmdldFNlbGVjdGVkQ29sdW1uKCk7cmV0dXJuIG51bGw9PT1sP1tdOnlvKHRoaXMuaG90LmdldERh'@; put 'dGFBdENvbChsLnZpc3VhbEluZGV4KSwoYSxkKT0+KHt2YWx1ZTpfUShhKSxtZXRhOnRoaXMuaG90LmdldENlbGxNZXRhKGQsbC52aXN1YWxJbmRleCl9KSl9fWZ1bmN0aW9uIEhodChjKXtjXyhjLmtleUNvZGUsIkVTQ0FQRSIpJiYodGhpcy5ydW5Mb2NhbEhvb2tzKCJjYW5jZWwiKSx6Mihj'@; put 'KSl9ZnVuY3Rpb24gUDVlKGMsbCl7dGhpcy5ob3QuaGFzSG9vaygibW9kaWZ5RmlsdGVyc011bHRpU2VsZWN0VmFsdWUiKSYmKGMudmlzdWFsVmFsdWU9dGhpcy5ob3QucnVuSG9va3MoIm1vZGlmeUZpbHRlcnNNdWx0aVNlbGVjdFZhbHVlIixjLnZpc3VhbFZhbHVlLGwuZ2V0KGMudmFsdWUp'@; put 'KSl9ZnVuY3Rpb24gTmh0KGMsbCl7cmV0dXJuIm51bWVyaWMiPT09bC50eXBlP2s0ZShjLGwpOmN9dmFyIEg1ZT1uZXcgV2Vha1NldDtjbGFzcyB0QSBleHRlbmRzIFZUe3N0YXRpYyBnZXQgQlVUVE9OX09LKCl7cmV0dXJuIm9rIn1zdGF0aWMgZ2V0IEJVVFRPTl9DQU5DRUwoKXtyZXR1cm4i'@; put 'Y2FuY2VsIn1jb25zdHJ1Y3RvcihsLGEpe3N1cGVyKGwse2lkOmEuaWQsc3RhdGVsZXNzOiEwfSksZnVuY3Rpb24gVmh0KGMsbCl7KGZ1bmN0aW9uIEJodChjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxl'@; put 'bWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShjLGwpLGwuYWRkKGMpfSh0aGlzLEg1ZSksZnVuY3Rpb24gamh0KGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiB6aHQoYyl7dmFyIGw9ZnVuY3Rpb24gVWh0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1j'@; put 'W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1y'@; put 'ZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6'@; put 'ITB9KTpjW2xdPWEsY30odGhpcywibmFtZSIsIiIpLHRoaXMubmFtZT1hLm5hbWUsdGhpcy5lbGVtZW50cy5wdXNoKG5ldyByNih0aGlzLmhvdCx7dHlwZToiYnV0dG9uIix2YWx1ZTpzcSxjbGFzc05hbWU6Imh0VUlCdXR0b24gaHRVSUJ1dHRvbk9LIixpZGVudGlmaWVyOnRBLkJVVFRPTl9P'@; put 'S30pKSx0aGlzLmVsZW1lbnRzLnB1c2gobmV3IHI2KHRoaXMuaG90LHt0eXBlOiJidXR0b24iLHZhbHVlOm9xLGNsYXNzTmFtZToiaHRVSUJ1dHRvbiBodFVJQnV0dG9uQ2FuY2VsIixpZGVudGlmaWVyOnRBLkJVVFRPTl9DQU5DRUx9KSksdGhpcy5yZWdpc3Rlckhvb2tzKCl9cmVnaXN0ZXJI'@; put 'b29rcygpe0tuKHRoaXMuZWxlbWVudHMsbD0+e2wuYWRkTG9jYWxIb29rKCJjbGljayIsKGEsZCk9PmZ1bmN0aW9uIFpodChjLGwsYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGM/Yz09PWw6Yy5oYXMobCkpcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mz9sOmE7dGhyb3cgbmV3IFR5cGVFcnJv'@; put 'cigiUHJpdmF0ZSBlbGVtZW50IGlzIG5vdCBwcmVzZW50IG9uIHRoaXMgb2JqZWN0Iil9KEg1ZSx0aGlzLFdodCkuY2FsbCh0aGlzLGEsZCkpfSl9Z2V0TWVudUl0ZW1EZXNjcmlwdG9yKCl7cmV0dXJue2tleTp0aGlzLmlkLG5hbWU6dGhpcy5uYW1lLGlzQ29tbWFuZDohMSxkaXNhYmxlU2Vs'@; put 'ZWN0aW9uOiEwLGhpZGRlbjooKT0+dGhpcy5pc0hpZGRlbigpLHJlbmRlcmVyOihsLGEpPT4oRWkoYS5wYXJlbnROb2RlLCJodEZpbHRlcnNNZW51QWN0aW9uQmFyIiksS24odGhpcy5lbGVtZW50cyxkPT5hLmFwcGVuZENoaWxkKGQuZWxlbWVudCkpLGEpfX1hY2NlcHQoKXt0aGlzLnJ1bkxv'@; put 'Y2FsSG9va3MoImFjY2VwdCIpfWNhbmNlbCgpe3RoaXMucnVuTG9jYWxIb29rcygiY2FuY2VsIil9fWZ1bmN0aW9uIFdodChjLGwpe2wub3B0aW9ucy5pZGVudGlmaWVyPT09RjVlLkJVVFRPTl9PSz90aGlzLmFjY2VwdCgpOnRoaXMuY2FuY2VsKCl9ZnVuY3Rpb24gTVEoYyxsLGEpe3JldHVy'@; put 'bihsPWZ1bmN0aW9uIFlodChjKXt2YXIgbD1mdW5jdGlvbiBHaHQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10'@; put 'eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwr'@; put 'IiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfUY1ZT10QTtjb25zdCBONWU9IkNvbmRpdGlvbkNvbGxlY3Rpb24uZmlsdGVyaW5nU3RhdGVzIjtjbGFzcyBWNWV7'@; put 'Y29uc3RydWN0b3IobCl7bGV0IGE9IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXTtNUSh0aGlzLCJob3QiLHZvaWQgMCksTVEodGhpcywiaXNNYXBSZWdpc3RyYWJsZSIsdm9pZCAwKSxNUSh0aGlzLCJmaWx0ZXJpbmdTdGF0ZXMiLG5l'@; put 'dyB5UCksdGhpcy5ob3Q9bCx0aGlzLmlzTWFwUmVnaXN0cmFibGU9YSwhMD09PXRoaXMuaXNNYXBSZWdpc3RyYWJsZT90aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5yZWdpc3Rlck1hcChONWUsdGhpcy5maWx0ZXJpbmdTdGF0ZXMpOnRoaXMuZmlsdGVyaW5nU3RhdGVzLmluaXQodGhpcy5o'@; put 'b3QuY29sdW1uSW5kZXhNYXBwZXIuZ2V0TnVtYmVyT2ZJbmRleGVzKCkpfWlzRW1wdHkoKXtyZXR1cm4gMD09PXRoaXMuZ2V0RmlsdGVyZWRDb2x1bW5zKCkubGVuZ3RofWlzTWF0Y2gobCxhKXt2YXIgZDtjb25zdCBoPXRoaXMuZmlsdGVyaW5nU3RhdGVzLmdldFZhbHVlQXRJbmRleChhKSxm'@; put 'PW51bGwhPT0oZD1oPy5jb25kaXRpb25zKSYmdm9pZCAwIT09ZD9kOltdLHY9aD8ub3BlcmF0aW9uO3JldHVybiB0aGlzLmlzTWF0Y2hJbkNvbmRpdGlvbnMoZixsLHYpfWlzTWF0Y2hJbkNvbmRpdGlvbnMobCxhKXtyZXR1cm4hbC5sZW5ndGh8fGZ1bmN0aW9uIHRodChjKXtpZighR1RbY10p'@; put 'dGhyb3cgRXJyb3IoYE9wZXJhdGlvbiB3aXRoIGlkICIke2N9IiBkb2VzIG5vdCBleGlzdC5gKTtjb25zdCBsPUdUW2NdLmZ1bmM7cmV0dXJuIGZ1bmN0aW9uKGEsZCl7cmV0dXJuIGwoYSxkKX19KGFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1sy'@; put 'XTppNikobCxhKX1hZGRDb25kaXRpb24obCxhKXtsZXQgZD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06aTYsaD1hcmd1bWVudHMubGVuZ3RoPjM/YXJndW1lbnRzWzNdOnZvaWQgMDtjb25zdCBmPXRoaXMuaG90LmdldENlbGxNZXRhKDAs'@; put 'bCkubG9jYWxlLHY9YS5hcmdzLm1hcChyZT0+InN0cmluZyI9PXR5cGVvZiByZT9yZS50b0xvY2FsZUxvd2VyQ2FzZShmKTpyZSksTT1hLm5hbWV8fGEuY29tbWFuZC5rZXk7dGhpcy5ydW5Mb2NhbEhvb2tzKCJiZWZvcmVBZGQiLGwpO2NvbnN0IEk9dGhpcy5nZXRPcGVyYXRpb24obCk7aWYo'@; put 'SSl7aWYoSSE9PWQpdGhyb3cgRXJyb3IoaGxgVGhlIGNvbHVtbiBvZiBpbmRleCAke2x9IGhhcyBiZWVuIGFscmVhZHkgYXBwbGllZCB3aXRoIGEgXGAke0l9XGBceDIwCiAgICAgICAgZmlsdGVyIG9wZXJhdGlvbi4gVXNlIFxgcmVtb3ZlQ29uZGl0aW9uc1xgIHRvIGNsZWFyIHRoZSBjdXJy'@; put 'ZW50IGNvbmRpdGlvbnMgYW5kIHRoZW4gYWRkIG5ldyBvbmVzLlx4MjAKICAgICAgICBNaW5kIHRoYXQgeW91IGNhbm5vdCBtaXggZGlmZmVyZW50IHR5cGVzIG9mIG9wZXJhdGlvbnMgKGZvciBpbnN0YW5jZSwgaWYgeW91IHVzZSBcYGNvbmp1bmN0aW9uXGAsXHgyMAogICAgICAgIHVzZSBp'@; put 'dCBjb25zZXF1ZW50bHkgZm9yIGEgcGFydGljdWxhciBjb2x1bW4pLmApfWVsc2UgaWYoYmMoR1RbZF0pKXRocm93IG5ldyBFcnJvcihobGBVbmV4cGVjdGVkIG9wZXJhdGlvbiBuYW1lZCBcYCR7ZH1cYC4gUG9zc2libGUgb25lcyBhcmVceDIwCiAgICAgICAgXGBkaXNqdW5jdGlvblxgIGFu'@; put 'ZCBcYGNvbmp1bmN0aW9uXGAuYCk7Y29uc3QgRz10aGlzLmdldENvbmRpdGlvbnMobCk7MD09PUcubGVuZ3RoP3RoaXMuZmlsdGVyaW5nU3RhdGVzLnNldFZhbHVlQXRJbmRleChsLHtvcGVyYXRpb246ZCxjb25kaXRpb25zOlt7bmFtZTpNLGFyZ3M6dixmdW5jOm42KE0sdil9XX0saCk6Ry5w'@; put 'dXNoKHtuYW1lOk0sYXJnczp2LGZ1bmM6bjYoTSx2KX0pLHRoaXMucnVuTG9jYWxIb29rcygiYWZ0ZXJBZGQiLGwpfWdldENvbmRpdGlvbnMobCl7dmFyIGEsZDtyZXR1cm4gbnVsbCE9PShhPW51bGw9PT0oZD10aGlzLmZpbHRlcmluZ1N0YXRlcy5nZXRWYWx1ZUF0SW5kZXgobCkpfHx2b2lk'@; put 'IDA9PT1kP3ZvaWQgMDpkLmNvbmRpdGlvbnMpJiZ2b2lkIDAhPT1hP2E6W119Z2V0T3BlcmF0aW9uKGwpe3ZhciBhO3JldHVybiBudWxsPT09KGE9dGhpcy5maWx0ZXJpbmdTdGF0ZXMuZ2V0VmFsdWVBdEluZGV4KGwpKXx8dm9pZCAwPT09YT92b2lkIDA6YS5vcGVyYXRpb259Z2V0RmlsdGVy'@; put 'ZWRDb2x1bW5zKCl7cmV0dXJuIHRoaXMuZmlsdGVyaW5nU3RhdGVzLmdldEVudHJpZXMoKS5tYXAobD0+e2xldFthXT1sO3JldHVybiBhfSl9Z2V0Q29sdW1uU3RhY2tQb3NpdGlvbihsKXtyZXR1cm4gdGhpcy5nZXRGaWx0ZXJlZENvbHVtbnMoKS5pbmRleE9mKGwpfWV4cG9ydEFsbENvbmRp'@; put 'dGlvbnMoKXtyZXR1cm4gdGhpcy5maWx0ZXJpbmdTdGF0ZXMuZ2V0RW50cmllcygpLnJlZHVjZSgobCxhKT0+e2xldFtkLHtvcGVyYXRpb246aCxjb25kaXRpb25zOmZ9XT1hO3JldHVybiBsLnB1c2goe2NvbHVtbjpkLG9wZXJhdGlvbjpoLGNvbmRpdGlvbnM6Zi5tYXAodj0+e2xldHtuYW1l'@; put 'Ok0sYXJnczpJfT12O3JldHVybntuYW1lOk0sYXJnczpbLi4uSV19fSl9KSxsfSxbXSl9aW1wb3J0QWxsQ29uZGl0aW9ucyhsKXt0aGlzLmNsZWFuKCksbC5mb3JFYWNoKGE9PnthLmNvbmRpdGlvbnMuZm9yRWFjaChkPT50aGlzLmFkZENvbmRpdGlvbihhLmNvbHVtbixkKSl9KX1yZW1vdmVD'@; put 'b25kaXRpb25zKGwpe3RoaXMucnVuTG9jYWxIb29rcygiYmVmb3JlUmVtb3ZlIixsKSx0aGlzLmZpbHRlcmluZ1N0YXRlcy5jbGVhclZhbHVlKGwpLHRoaXMucnVuTG9jYWxIb29rcygiYWZ0ZXJSZW1vdmUiLGwpfWNsZWFuKCl7dGhpcy5ydW5Mb2NhbEhvb2tzKCJiZWZvcmVDbGVhbiIpLHRo'@; put 'aXMuZmlsdGVyaW5nU3RhdGVzLmNsZWFyKCksdGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlckNsZWFuIil9aGFzQ29uZGl0aW9ucyhsLGEpe2NvbnN0IGQ9dGhpcy5nZXRDb25kaXRpb25zKGwpO3JldHVybiBhP2Quc29tZShoPT5oLm5hbWU9PT1hKTpkLmxlbmd0aD4wfWRlc3Ryb3koKXt0aGlz'@; put 'LmlzTWFwUmVnaXN0cmFibGUmJnRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLnVucmVnaXN0ZXJNYXAoTjVlKSx0aGlzLmZpbHRlcmluZ1N0YXRlcz1udWxsLHRoaXMuY2xlYXJMb2NhbEhvb2tzKCl9fXhsKFY1ZSx5MSk7Y29uc3QgQjVlPVY1ZTtmdW5jdGlvbiBqNWUoYyxsLGEpe3JldHVy'@; put 'bihsPWZ1bmN0aW9uICRodChjKXt2YXIgbD1mdW5jdGlvbiBLaHQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10'@; put 'eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwr'@; put 'IiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWNvbnN0IHo1ZT1jbGFzcyBYaHR7Y29uc3RydWN0b3IobCl7bGV0IGE9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lk'@; put 'IDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOigpPT5bXTtqNWUodGhpcywiY29uZGl0aW9uQ29sbGVjdGlvbiIsdm9pZCAwKSxqNWUodGhpcywiY29sdW1uRGF0YUZhY3RvcnkiLHZvaWQgMCksdGhpcy5jb25kaXRpb25Db2xsZWN0aW9uPWwsdGhpcy5jb2x1bW5EYXRhRmFjdG9yeT1h'@; put 'fWZpbHRlcigpe2xldCBsPVtdO3JldHVybiBLbih0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uZ2V0RmlsdGVyZWRDb2x1bW5zKCksKGEsZCk9PntsZXQgaD10aGlzLmNvbHVtbkRhdGFGYWN0b3J5KGEpO2QmJihoPXRoaXMuX2dldEludGVyc2VjdERhdGEoaCxsKSksbD10aGlzLmZpbHRlckJ5'@; put 'Q29sdW1uKGEsaCl9KSxsfWZpbHRlckJ5Q29sdW1uKGwpe2NvbnN0IGQ9W107cmV0dXJuIEtuKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpbXSxoPT57dm9pZCAwIT09aCYmdGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmlzTWF0Y2goaCxs'@; put 'KSYmZC5wdXNoKGgpfSksZH1fZ2V0SW50ZXJzZWN0RGF0YShsLGEpe2NvbnN0IGQ9W107cmV0dXJuIEtuKGEsaD0+e2NvbnN0IGY9aC5tZXRhLnZpc3VhbFJvdzt2b2lkIDAhPT1sW2ZdJiYoZFtmXT1sW2ZdKX0pLGR9fTtmdW5jdGlvbiBfOShjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gUWh0'@; put 'KGMpe3ZhciBsPWZ1bmN0aW9uIGUydChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBk'@; put 'O3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmpl'@; put 'Y3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9ZnVuY3Rpb24geFEoYyxsLGEpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBjP2M9PT1sOmMuaGFzKGwpKXJldHVybiBhcmd1bWVudHMubGVuZ3Ro'@; put 'PDM/bDphO3Rocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgZWxlbWVudCBpcyBub3QgcHJlc2VudCBvbiB0aGlzIG9iamVjdCIpfXZhciBuSD1uZXcgV2Vha1NldDtjbGFzcyBVNWV7Y29uc3RydWN0b3IobCxhKXtsZXQgZD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50'@; put 'c1syXT9hcmd1bWVudHNbMl06KCk9PltdOyhmdW5jdGlvbiBxaHQoYyxsKXsoZnVuY3Rpb24gSmh0KGMsbCl7aWYobC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGMs'@; put 'bCksbC5hZGQoYyl9KSh0aGlzLG5IKSxfOSh0aGlzLCJob3QiLHZvaWQgMCksXzkodGhpcywiY29uZGl0aW9uQ29sbGVjdGlvbiIsdm9pZCAwKSxfOSh0aGlzLCJjb2x1bW5EYXRhRmFjdG9yeSIsdm9pZCAwKSxfOSh0aGlzLCJjaGFuZ2VzIixbXSksXzkodGhpcywiZ3JvdXBpbmciLCExKSxf'@; put 'OSh0aGlzLCJsYXRlc3RFZGl0ZWRDb2x1bW5Qb3NpdGlvbiIsLTEpLF85KHRoaXMsImxhdGVzdE9yZGVyU3RhY2siLFtdKSx0aGlzLmhvdD1sLHRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbj1hLHRoaXMuY29sdW1uRGF0YUZhY3Rvcnk9ZCx0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uYWRkTG9j'@; put 'YWxIb29rKCJiZWZvcmVSZW1vdmUiLGg9PnhRKG5ILHRoaXMsdDJ0KS5jYWxsKHRoaXMsaCkpLHRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5hZGRMb2NhbEhvb2soImFmdGVyUmVtb3ZlIixoPT50aGlzLnVwZGF0ZVN0YXRlc0F0Q29sdW1uKGgpKSx0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24u'@; put 'YWRkTG9jYWxIb29rKCJhZnRlckFkZCIsaD0+dGhpcy51cGRhdGVTdGF0ZXNBdENvbHVtbihoKSksdGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmFkZExvY2FsSG9vaygiYmVmb3JlQ2xlYW4iLCgpPT54UShuSCx0aGlzLG4ydCkuY2FsbCh0aGlzKSksdGhpcy5jb25kaXRpb25Db2xsZWN0aW9u'@; put 'LmFkZExvY2FsSG9vaygiYWZ0ZXJDbGVhbiIsKCk9PnhRKG5ILHRoaXMscjJ0KS5jYWxsKHRoaXMpKX1ncm91cENoYW5nZXMoKXt0aGlzLmdyb3VwaW5nPSEwfWZsdXNoKCl7dGhpcy5ncm91cGluZz0hMSxLbih0aGlzLmNoYW5nZXMsbD0+e3RoaXMudXBkYXRlU3RhdGVzQXRDb2x1bW4obCl9'@; put 'KSx0aGlzLmNoYW5nZXMubGVuZ3RoPTB9dXBkYXRlU3RhdGVzQXRDb2x1bW4obCxhKXt2YXIgZD10aGlzO2lmKHRoaXMuZ3JvdXBpbmcpcmV0dXJuIHZvaWQoLTE9PT10aGlzLmNoYW5nZXMuaW5kZXhPZihsKSYmdGhpcy5jaGFuZ2VzLnB1c2gobCkpO2NvbnN0IGg9dGhpcy5jb25kaXRpb25D'@; put 'b2xsZWN0aW9uLmV4cG9ydEFsbENvbmRpdGlvbnMoKTtsZXQgZj10aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uZ2V0Q29sdW1uU3RhY2tQb3NpdGlvbihsKTstMT09PWYmJihmPXRoaXMubGF0ZXN0RWRpdGVkQ29sdW1uUG9zaXRpb24pO2NvbnN0IHY9aC5zbGljZSgwLGYpLE09aC5zbGljZShm'@; put 'KTtNLmxlbmd0aCYmTVswXS5jb2x1bW49PT1sJiZNLnNoaWZ0KCk7Y29uc3QgST1oZmUoZnVuY3Rpb24ocmUsdWUpe2xldCB5ZT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06W107Y29uc3QgRWU9bmV3IEI1ZShkLmhvdCwhMSksQmU9W10u'@; put 'Y29uY2F0KHJlLHllKTtFZS5pbXBvcnRBbGxDb25kaXRpb25zKEJlKTtjb25zdCBHZT1kLmNvbHVtbkRhdGFGYWN0b3J5KHVlKTtsZXQgc3Q7c3Q9RWUuaXNFbXB0eSgpP0dlOm5ldyB6NWUoRWUsZHQ9PmQuY29sdW1uRGF0YUZhY3RvcnkoZHQpKS5maWx0ZXIoKSxzdD15byhzdCxkdD0+ZHQu'@; put 'bWV0YS52aXN1YWxSb3cpO2NvbnN0IHB0PUtUKHN0KTtyZXR1cm4gRWUuZGVzdHJveSgpLEFtKEdlLGR0PT5wdChkdC5tZXRhLnZpc3VhbFJvdykpfSkodiksRz1bXS5jb25jYXQodGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmdldENvbmRpdGlvbnMobCkpO3RoaXMucnVuTG9jYWxIb29rcygi'@; put 'dXBkYXRlIix7ZWRpdGVkQ29uZGl0aW9uU3RhY2s6e2NvbHVtbjpsLGNvbmRpdGlvbnM6R30sZGVwZW5kZW50Q29uZGl0aW9uU3RhY2tzOk0sZmlsdGVyZWRSb3dzRmFjdG9yeTpJLGNvbmRpdGlvbkFyZ3NDaGFuZ2U6YX0pfWRlc3Ryb3koKXt0aGlzLmNsZWFyTG9jYWxIb29rcygpLHFzKHRo'@; put 'aXMsKGwsYSk9Pnt0aGlzW2FdPW51bGx9KX19ZnVuY3Rpb24gdDJ0KGMpe3RoaXMubGF0ZXN0RWRpdGVkQ29sdW1uUG9zaXRpb249dGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmdldENvbHVtblN0YWNrUG9zaXRpb24oYyl9ZnVuY3Rpb24gbjJ0KCl7dGhpcy5sYXRlc3RPcmRlclN0YWNrPXRo'@; put 'aXMuY29uZGl0aW9uQ29sbGVjdGlvbi5nZXRGaWx0ZXJlZENvbHVtbnMoKX1mdW5jdGlvbiByMnQoKXtLbih0aGlzLmxhdGVzdE9yZGVyU3RhY2ssYz0+e3RoaXMudXBkYXRlU3RhdGVzQXRDb2x1bW4oYyl9KX14bChVNWUseTEpO2NvbnN0IGkydD1VNWUsbkE9ImZpbHRlcnMiO2Z1bmN0aW9u'@; put 'IEVRKGMsbCxhKXtaNWUoYyxsKSxsLnNldChjLGEpfWZ1bmN0aW9uIFo1ZShjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9ZnVuY3Rpb24gckEoYyxsLGEp'@; put 'e3JldHVybihsPWZ1bmN0aW9uIGwydChjKXt2YXIgbD1mdW5jdGlvbiBjMnQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmpl'@; put 'Y3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2Yg'@; put 'bD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWZ1bmN0aW9uIHJIKGMsbCxhKXtyZXR1cm4gYy5zZXQoR2QoYyxsKSxhKSxhfWZ1bmN0aW9uIG5mKGMs'@; put 'bCl7cmV0dXJuIGMuZ2V0KEdkKGMsbCkpfWZ1bmN0aW9uIEdkKGMsbCxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhsKSlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzP2w6YTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGVsZW1lbnQgaXMgbm90IHByZXNlbnQg'@; put 'b24gdGhpcyBvYmplY3QiKX1jb25zdCBUUT0iZmlsdGVycyIsVzVlPVRRO3ZhciBQZz1uZXcgV2Vha01hcCxBUT1uZXcgV2Vha01hcCx3OT1uZXcgV2Vha01hcCxCaD1uZXcgV2Vha1NldDtjbGFzcyBkMnQgZXh0ZW5kcyBGb3tzdGF0aWMgZ2V0IFBMVUdJTl9LRVkoKXtyZXR1cm4gVFF9c3Rh'@; put 'dGljIGdldCBQTFVHSU5fUFJJT1JJVFkoKXtyZXR1cm4gMjUwfXN0YXRpYyBnZXQgUExVR0lOX0RFUFMoKXtyZXR1cm5bInBsdWdpbjpEcm9wZG93bk1lbnUiLCJwbHVnaW46SGlkZGVuUm93cyIsImNlbGwtdHlwZTpjaGVja2JveCJdfWNvbnN0cnVjdG9yKGwpe3ZhciBhO3N1cGVyKGwpLGE9'@; put 'dGhpcyxmdW5jdGlvbiBvMnQoYyxsKXtaNWUoYyxsKSxsLmFkZChjKX0odGhpcyxCaCksckEodGhpcywiZHJvcGRvd25NZW51UGx1Z2luIixudWxsKSxyQSh0aGlzLCJjb25kaXRpb25Db2xsZWN0aW9uIixudWxsKSxyQSh0aGlzLCJjb25kaXRpb25VcGRhdGVPYnNlcnZlciIsbnVsbCksckEo'@; put 'dGhpcywiY29tcG9uZW50cyIsbmV3IE1hcChbWyJmaWx0ZXJfYnlfY29uZGl0aW9uIixudWxsXSxbImZpbHRlcl9vcGVyYXRvcnMiLG51bGxdLFsiZmlsdGVyX2J5X2NvbmRpdGlvbjIiLG51bGxdLFsiZmlsdGVyX2J5X3ZhbHVlIixudWxsXSxbImZpbHRlcl9hY3Rpb25fYmFyIixudWxsXV0p'@; put 'KSxyQSh0aGlzLCJmaWx0ZXJzUm93c01hcCIsbnVsbCksRVEodGhpcyxQZyx2b2lkIDApLEVRKHRoaXMsQVEsbmV3IFdlYWtTZXQpLEVRKHRoaXMsdzksW10pLHRoaXMuaG90LmFkZEhvb2soImFmdGVyR2V0Q29sSGVhZGVyIixmdW5jdGlvbigpe2Zvcih2YXIgZD1hcmd1bWVudHMubGVuZ3Ro'@; put 'LGg9bmV3IEFycmF5KGQpLGY9MDtmPGQ7ZisrKWhbZl09YXJndW1lbnRzW2ZdO3JldHVybiBHZChCaCxhLHkydCkuY2FsbChhLC4uLmgpfSl9aXNFbmFibGVkKCl7cmV0dXJuISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpW1RRXX1lbmFibGVQbHVnaW4oKXt2YXIgbD10aGlzO2lmKHRoaXMuZW5h'@; put 'YmxlZClyZXR1cm47dGhpcy5maWx0ZXJzUm93c01hcD10aGlzLmhvdC5yb3dJbmRleE1hcHBlci5yZWdpc3Rlck1hcCh0aGlzLnBsdWdpbk5hbWUsbmV3IHFFKSx0aGlzLmRyb3Bkb3duTWVudVBsdWdpbj10aGlzLmhvdC5nZXRQbHVnaW4oImRyb3Bkb3duTWVudSIpO2NvbnN0IGE9dGhpcy5o'@; put 'b3QuZ2V0U2V0dGluZ3MoKS5kcm9wZG93bk1lbnUsZD1hJiZhLnVpQ29udGFpbmVyfHx0aGlzLmhvdC5yb290UG9ydGFsRWxlbWVudCxoPU09PihNLmFkZExvY2FsSG9vaygiYWNjZXB0IiwoKT0+R2QoQmgsdGhpcyxZNWUpLmNhbGwodGhpcywiYWNjZXB0IikpLE0uYWRkTG9jYWxIb29rKCJj'@; put 'YW5jZWwiLCgpPT5HZChCaCx0aGlzLFk1ZSkuY2FsbCh0aGlzLCJjYW5jZWwiKSksTS5hZGRMb2NhbEhvb2soImNoYW5nZSIsST0+R2QoQmgsdGhpcyx2MnQpLmNhbGwodGhpcyxNLEkpKSxNKSxmPSgpPT5gJHt0aGlzLmhvdC5nZXRUcmFuc2xhdGVkUGhyYXNlKHRxKX06YDtpZighdGhpcy5j'@; put 'b21wb25lbnRzLmdldCgiZmlsdGVyX2J5X2NvbmRpdGlvbiIpKXtjb25zdCBNPW5ldyBtUSh0aGlzLmhvdCx7aWQ6ImZpbHRlcl9ieV9jb25kaXRpb24iLG5hbWU6ZixhZGRTZXBhcmF0b3I6ITEsbWVudUNvbnRhaW5lcjpkfSk7TS5hZGRMb2NhbEhvb2soImFmdGVyQ2xvc2UiLCgpPT5HZChC'@; put 'aCx0aGlzLEc1ZSkuY2FsbCh0aGlzKSksdGhpcy5jb21wb25lbnRzLnNldCgiZmlsdGVyX2J5X2NvbmRpdGlvbiIsaChNKSl9aWYodGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX29wZXJhdG9ycyIpfHx0aGlzLmNvbXBvbmVudHMuc2V0KCJmaWx0ZXJfb3BlcmF0b3JzIixuZXcgbWh0KHRo'@; put 'aXMuaG90LHtpZDoiZmlsdGVyX29wZXJhdG9ycyIsbmFtZToiT3BlcmF0b3JzIn0pKSwhdGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX2J5X2NvbmRpdGlvbjIiKSl7Y29uc3QgTT1uZXcgbVEodGhpcy5ob3Qse2lkOiJmaWx0ZXJfYnlfY29uZGl0aW9uMiIsbmFtZToiIixhZGRTZXBhcmF0'@; put 'b3I6ITAsbWVudUNvbnRhaW5lcjpkfSk7TS5hZGRMb2NhbEhvb2soImFmdGVyQ2xvc2UiLCgpPT5HZChCaCx0aGlzLEc1ZSkuY2FsbCh0aGlzKSksdGhpcy5jb21wb25lbnRzLnNldCgiZmlsdGVyX2J5X2NvbmRpdGlvbjIiLGgoTSkpfWlmKHRoaXMuY29tcG9uZW50cy5nZXQoImZpbHRlcl9i'@; put 'eV92YWx1ZSIpfHx0aGlzLmNvbXBvbmVudHMuc2V0KCJmaWx0ZXJfYnlfdmFsdWUiLGgobmV3IEZodCh0aGlzLmhvdCx7aWQ6ImZpbHRlcl9ieV92YWx1ZSIsbmFtZTooKT0+YCR7dGhpcy5ob3QuZ2V0VHJhbnNsYXRlZFBocmFzZShucSl9OmB9KSkpLHRoaXMuY29tcG9uZW50cy5nZXQoImZp'@; put 'bHRlcl9hY3Rpb25fYmFyIil8fHRoaXMuY29tcG9uZW50cy5zZXQoImZpbHRlcl9hY3Rpb25fYmFyIixoKG5ldyB0QSh0aGlzLmhvdCx7aWQ6ImZpbHRlcl9hY3Rpb25fYmFyIixuYW1lOiJBY3Rpb24gYmFyIn0pKSksdGhpcy5jb25kaXRpb25Db2xsZWN0aW9ufHwodGhpcy5jb25kaXRpb25D'@; put 'b2xsZWN0aW9uPW5ldyBCNWUodGhpcy5ob3QpKSx0aGlzLmNvbmRpdGlvblVwZGF0ZU9ic2VydmVyfHwodGhpcy5jb25kaXRpb25VcGRhdGVPYnNlcnZlcj1uZXcgaTJ0KHRoaXMuaG90LHRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbixNPT50aGlzLmdldERhdGFNYXBBdENvbHVtbihNKSksdGhp'@; put 'cy5jb25kaXRpb25VcGRhdGVPYnNlcnZlci5hZGRMb2NhbEhvb2soInVwZGF0ZSIsTT0+R2QoQmgsdGhpcyxiMnQpLmNhbGwodGhpcyxNKSkpLHRoaXMuY29tcG9uZW50cy5mb3JFYWNoKE09Pk0uc2hvdygpKSx0aGlzLmFkZEhvb2soImFmdGVyRHJvcGRvd25NZW51RGVmYXVsdE9wdGlvbnMi'@; put 'LGZ1bmN0aW9uKCl7Zm9yKHZhciBNPWFyZ3VtZW50cy5sZW5ndGgsST1uZXcgQXJyYXkoTSksRz0wO0c8TTtHKyspSVtHXT1hcmd1bWVudHNbR107cmV0dXJuIEdkKEJoLGwsbTJ0KS5jYWxsKGwsLi4uSSl9KSx0aGlzLmFkZEhvb2soImJlZm9yZURyb3Bkb3duTWVudVNob3ciLCgpPT5HZChC'@; put 'aCx0aGlzLGcydCkuY2FsbCh0aGlzKSksdGhpcy5hZGRIb29rKCJhZnRlckRyb3Bkb3duTWVudVNob3ciLCgpPT5HZChCaCx0aGlzLGYydCkuY2FsbCh0aGlzKSksdGhpcy5hZGRIb29rKCJhZnRlckRyb3Bkb3duTWVudUhpZGUiLCgpPT5HZChCaCx0aGlzLHAydCkuY2FsbCh0aGlzKSksdGhp'@; put 'cy5hZGRIb29rKCJhZnRlckNoYW5nZSIsTT0+R2QoQmgsdGhpcyxoMnQpLmNhbGwodGhpcyxNKSksdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5kcm9wZG93bk1lbnUmJnRoaXMuZHJvcGRvd25NZW51UGx1Z2luJiYodGhpcy5kcm9wZG93bk1lbnVQbHVnaW4uZGlzYWJsZVBsdWdpbigpLHRoaXMu'@; put 'ZHJvcGRvd25NZW51UGx1Z2luLmVuYWJsZVBsdWdpbigpKSwhbmYoUGcsdGhpcykmJnRoaXMuZHJvcGRvd25NZW51UGx1Z2luLmVuYWJsZWQpe2NvbnN0IE09W3tmb2N1czooKT0+e2NvbnN0IEc9bmYoUGcsdGhpcykuZ2V0TWVudSgpLHJlPUcuZ2V0TmF2aWdhdG9yKCksdWU9bmYoUGcsdGhp'@; put 'cykuZ2V0TGFzdE1lbnVQYWdlKCk7Ry5mb2N1cygpLHVlPjA/cmUuc2V0Q3VycmVudFBhZ2UodWUpOnJlLnRvRmlyc3RJdGVtKCl9fSwuLi5BcnJheS5mcm9tKHRoaXMuY29tcG9uZW50cykubWFwKEc9PntsZXRbLHJlXT1HO3JldHVybiByZS5nZXRFbGVtZW50cygpfSkuZmxhdCgpXTtySChQ'@; put 'Zyx0aGlzLGZ1bmN0aW9uIHMydChjLGwpe2xldCBkLGE9LTE7Y29uc3QgaD1mdW5jdGlvbiBhMnQoYyl7cmV0dXJuIFBnZSh7aW5pdGlhbFBhZ2U6MCxzaXplOigpPT5jLmxlbmd0aCxvbkl0ZW1TZWxlY3Q6KGEsZCk9Pntjb25zdCBoPWNbYV07cmV0dXJuIGggaW5zdGFuY2VvZiBRVD9kOiEo'@; put 'aC5lbGVtZW50JiYhejcoaC5lbGVtZW50KSkmJnZvaWQgaC5mb2N1cygpfX0pfShsKSxmPXVlPT4oKT0+e2QuaXNPcGVuZWQoKSYmZC5nZXRLZXlib2FyZFNob3J0Y3V0c0N0cmwoKS5saXN0ZW4obkEpLGguc2V0Q3VycmVudFBhZ2UobC5pbmRleE9mKHVlKSl9O2Z1bmN0aW9uIHYodWUpe2Nv'@; put 'bnN0IHllPWQuZ2V0S2V5Ym9hcmRTaG9ydGN1dHNDdHJsKCksRWU9dWUuZ2V0S2V5Ym9hcmRTaG9ydGN1dHNDdHJsKCk7aC5jbGVhcigpLEVlLmFkZEN1c3RvbVNob3J0Y3V0cyhbe2tleXM6W1siVGFiIl0sWyJTaGlmdCIsIlRhYiJdXSxmb3J3YXJkVG9Db250ZXh0OnllLmdldENvbnRleHQo'@; put 'bkEpLGNhbGxiYWNrOigpPT57dWUuaXNTdWJNZW51KCkmJnVlLmNsb3NlKCkseWUubGlzdGVuKG5BKX19XSksIXVlLmlzU3ViTWVudSgpJiZ5ZS5hZGRDdXN0b21TaG9ydGN1dHMoW3trZXlzOltbIlRhYiJdLFsiU2hpZnQiLCJUYWIiXV0sY2FsbGJhY2s6QmU9Pntjb25zdCBHZT1kLmdldE5h'@; put 'dmlnYXRvcigpO0dlLmdldEN1cnJlbnRQYWdlKCk+LTEmJihhPUdlLmdldEN1cnJlbnRQYWdlKCkpLEdlLmNsZWFyKCksQmUuc2hpZnRLZXk/aC50b1ByZXZpb3VzSXRlbSgpOmgudG9OZXh0SXRlbSgpfX0se2tleXM6W1siRXNjYXBlIl1dLGNhbGxiYWNrOigpPT57ZC5jbG9zZSgpfX0se2tl'@; put 'eXM6W1siRW50ZXIiXSxbIlNwYWNlIl1dLHByZXZlbnREZWZhdWx0OiExLGNhbGxiYWNrOkJlPT57Y29uc3QgR2U9bFtoLmdldEN1cnJlbnRQYWdlKCldO0dlIGluc3RhbmNlb2YgWVQmJihHZS5vcGVuT3B0aW9ucygpLEJlLnByZXZlbnREZWZhdWx0KCkpLEdlIGluc3RhbmNlb2YgcVQmJihH'@; put 'ZS5hY3RpdmF0ZSgpLEJlLnByZXZlbnREZWZhdWx0KCkpLEdlIGluc3RhbmNlb2YgVmh8fEJlLnByZXZlbnREZWZhdWx0KCl9fV0sbkEpfWZ1bmN0aW9uIEkodWUpe3VlLmFkZExvY2FsSG9vaygiYWZ0ZXJTZWxlY3Rpb25DaGFuZ2UiLHllPT57eWUua2V5LnN0YXJ0c1dpdGgoImZpbHRlcl8i'@; put 'KXx8aC5jbGVhcigpfSksdWUuYWRkTG9jYWxIb29rKCJhZnRlclN1Ym1lbnVPcGVuIix2KSx1ZS5hZGRMb2NhbEhvb2soImFmdGVyT3BlbiIsdiksZD11ZX1yZXR1cm4gbC5mb3JFYWNoKHVlPT57dWUgaW5zdGFuY2VvZiBWaCYmKHVlLmFkZExvY2FsSG9vaygiY2xpY2siLGYodWUpKSx1ZS5h'@; put 'ZGRMb2NhbEhvb2soImZvY3VzIixmKHVlKSksdWUuYWRkTG9jYWxIb29rKCJhZnRlckNsb3NlIixmKHVlKSkpfSksSShjKSx7Li4uaCxsaXN0ZW46ZnVuY3Rpb24gTSgpe2QuZm9jdXMoKSxkLmdldEtleWJvYXJkU2hvcnRjdXRzQ3RybCgpLmxpc3RlbihuQSl9LHNldE1lbnU6SSxnZXRNZW51'@; put 'OmZ1bmN0aW9uIEcoKXtyZXR1cm4gZH0sZ2V0TGFzdE1lbnVQYWdlOmZ1bmN0aW9uIHJlKCl7cmV0dXJuIGF9fX0odGhpcy5kcm9wZG93bk1lbnVQbHVnaW4ubWVudSxNKSk7Y29uc3QgST1HPT57bmYoUGcsdGhpcykubGlzdGVuKCksRy5wcmV2ZW50RGVmYXVsdCgpLGNfKEcua2V5Q29kZSwi'@; put 'VEFCIikmJihHLnNoaWZ0S2V5P25mKFBnLHRoaXMpLnRvUHJldmlvdXNJdGVtKCk6bmYoUGcsdGhpcykudG9OZXh0SXRlbSgpKX07dGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX2J5X3ZhbHVlIikuYWRkTG9jYWxIb29rKCJsaXN0VGFiS2V5ZG93biIsSSksdGhpcy5jb21wb25lbnRzLmdl'@; put 'dCgiZmlsdGVyX2J5X2NvbmRpdGlvbiIpLmFkZExvY2FsSG9vaygic2VsZWN0VGFiS2V5ZG93biIsSSl9dGhpcy5yZWdpc3RlclNob3J0Y3V0cygpLHN1cGVyLmVuYWJsZVBsdWdpbigpfWRpc2FibGVQbHVnaW4oKXt2YXIgbDt0aGlzLmVuYWJsZWQmJihudWxsIT09KGw9dGhpcy5kcm9wZG93'@; put 'bk1lbnVQbHVnaW4pJiZ2b2lkIDAhPT1sJiZsLmVuYWJsZWQmJnRoaXMuZHJvcGRvd25NZW51UGx1Z2luLm1lbnUuY2xlYXJMb2NhbEhvb2tzKCksdGhpcy5jb21wb25lbnRzLmZvckVhY2goKGEsZCk9PnthLmRlc3Ryb3koKSx0aGlzLmNvbXBvbmVudHMuc2V0KGQsbnVsbCl9KSx0aGlzLmNv'@; put 'bmRpdGlvbkNvbGxlY3Rpb24uZGVzdHJveSgpLHRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbj1udWxsLHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLnVucmVnaXN0ZXJNYXAodGhpcy5wbHVnaW5OYW1lKSksdGhpcy51bnJlZ2lzdGVyU2hvcnRjdXRzKCksc3VwZXIuZGlzYWJsZVBsdWdpbigpfXJl'@; put 'Z2lzdGVyU2hvcnRjdXRzKCl7dGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZ3JpZCIpLmFkZFNob3J0Y3V0KHtrZXlzOltbIkFsdCIsIkEiXV0sc3RvcFByb3BhZ2F0aW9uOiEwLGNhbGxiYWNrOigpPT57Y29uc3QgbD10aGlzLmhvdC5nZXRTZWxlY3RlZCgpO3Ro'@; put 'aXMuY2xlYXJDb25kaXRpb25zKCksdGhpcy5maWx0ZXIoKSxsJiZ0aGlzLmhvdC5zZWxlY3RDZWxscyhsKX0sZ3JvdXA6VzVlfSl9dW5yZWdpc3RlclNob3J0Y3V0cygpe3RoaXMuaG90LmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImdyaWQiKS5yZW1vdmVTaG9ydGN1dHNCeUdy'@; put 'b3VwKFc1ZSl9YWRkQ29uZGl0aW9uKGwsYSxkKXtsZXQgaD1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106aTY7Y29uc3QgZj10aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKGwpO3RoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5hZGRDb25kaXRp'@; put 'b24oZix7Y29tbWFuZDp7a2V5OmF9LGFyZ3M6ZH0saCl9cmVtb3ZlQ29uZGl0aW9ucyhsKXtjb25zdCBhPXRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4obCk7dGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLnJlbW92ZUNvbmRpdGlvbnMoYSl9Y2xlYXJDb25kaXRpb25zKGwpe2lmKHZvaWQgMD09'@; put 'PWwpdGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmNsZWFuKCk7ZWxzZXtjb25zdCBhPXRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4obCk7dGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLnJlbW92ZUNvbmRpdGlvbnMoYSl9fWltcG9ydENvbmRpdGlvbnMobCl7dGhpcy5jb25kaXRpb25Db2xsZWN0'@; put 'aW9uLmltcG9ydEFsbENvbmRpdGlvbnMobCl9ZXhwb3J0Q29uZGl0aW9ucygpe3JldHVybiB0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uZXhwb3J0QWxsQ29uZGl0aW9ucygpfWZpbHRlcigpe2NvbnN0e25hdmlnYWJsZUhlYWRlcnM6bH09dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKSxhPXRoaXMu'@; put 'X2NyZWF0ZURhdGFGaWx0ZXIoKSxkPSF0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uaXNFbXB0eSgpO2xldCBoPVtdO2NvbnN0IGY9dGhpcy5leHBvcnRDb25kaXRpb25zKCksdj10aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlRmlsdGVyIixmLG5mKHc5LHRoaXMpKTtpZighMSE9PXYmJmQpe2Nv'@; put 'bnN0IE09W107dGhpcy5ob3QuYmF0Y2hFeGVjdXRpb24oKCk9Pnt0aGlzLmZpbHRlcnNSb3dzTWFwLmNsZWFyKCksaD15byhhLmZpbHRlcigpLEc9PkcubWV0YS52aXN1YWxSb3cpO2NvbnN0IEk9S1QoaCk7S2EodGhpcy5ob3QuY291bnRTb3VyY2VSb3dzKCktMSxHPT57SShHKXx8TS5wdXNo'@; put 'KEcpfSksS24oTSxHPT57dGhpcy5maWx0ZXJzUm93c01hcC5zZXRWYWx1ZUF0SW5kZXgoRywhMCl9KX0sITApLCFsJiYhaC5sZW5ndGgmJnRoaXMuaG90LmRlc2VsZWN0Q2VsbCgpLHJIKHc5LHRoaXMsdGhpcy5leHBvcnRDb25kaXRpb25zKCkpfWVsc2UhMT09PXZ8fGQ/dGhpcy5pbXBvcnRD'@; put 'b25kaXRpb25zKG5mKHc5LHRoaXMpKToockgodzksdGhpcyx0aGlzLmV4cG9ydENvbmRpdGlvbnMoKSksdGhpcy5maWx0ZXJzUm93c01hcC5jbGVhcigpKTt0aGlzLmhvdC5zZWxlY3Rpb24uaXNTZWxlY3RlZCgpJiZ0aGlzLmhvdC5zZWxlY3RDZWxsKGw/LTE6MCx0aGlzLmhvdC5nZXRTZWxl'@; put 'Y3RlZFJhbmdlTGFzdCgpLmhpZ2hsaWdodC5jb2wpLCExIT09diYmKHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckZpbHRlciIsZiksdGhpcy5ob3Qudmlldy5hZGp1c3RFbGVtZW50c1NpemUoKSx0aGlzLmhvdC5yZW5kZXIoKSl9Z2V0U2VsZWN0ZWRDb2x1bW4oKXt2YXIgbDtjb25zdCBhPW51'@; put 'bGw9PT0obD10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpKXx8dm9pZCAwPT09bD92b2lkIDA6bC5oaWdobGlnaHQ7cmV0dXJuIGE/e3Zpc3VhbEluZGV4OmEuY29sLHBoeXNpY2FsSW5kZXg6dGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihhLmNvbCl9Om51bGx9Z2V0RGF0YU1hcEF0'@; put 'Q29sdW1uKGwpe2NvbnN0IGE9dGhpcy5ob3QudG9WaXN1YWxDb2x1bW4obCksZD1bXTtyZXR1cm4gS24odGhpcy5ob3QuZ2V0U291cmNlRGF0YUF0Q29sKGEpLChoLGYpPT57dmFyIHY7Y29uc3R7cm93Ok0sY29sOkksdmlzdWFsQ29sOkcsdmlzdWFsUm93OnJlLHR5cGU6dWUsaW5zdGFuY2U6'@; put 'eWUsZGF0ZUZvcm1hdDpFZSxsb2NhbGU6QmV9PXRoaXMuaG90LmdldENlbGxNZXRhKGYsYSksR2U9bnVsbCE9PSh2PXRoaXMuaG90LmdldERhdGFBdENlbGwodGhpcy5ob3QudG9WaXN1YWxSb3coZiksYSkpJiZ2b2lkIDAhPT12P3Y6aDtkLnB1c2goe21ldGE6e3JvdzpNLGNvbDpJLHZpc3Vh'@; put 'bENvbDpHLHZpc3VhbFJvdzpyZSx0eXBlOnVlLGluc3RhbmNlOnllLGRhdGVGb3JtYXQ6RWUsbG9jYWxlOkJlfSx2YWx1ZTpfUShHZSl9KX0pLGR9dXBkYXRlVmFsdWVDb21wb25lbnRDb25kaXRpb24obCl7Y29uc3QgZD13USh0aGlzLmhvdC5nZXREYXRhQXRDb2wobCkpO3RoaXMuY29uZGl0'@; put 'aW9uVXBkYXRlT2JzZXJ2ZXIudXBkYXRlU3RhdGVzQXRDb2x1bW4obCxkKX1yZXN0b3JlQ29tcG9uZW50cyhsKXt2YXIgYTtjb25zdCBkPW51bGw9PT0oYT10aGlzLmdldFNlbGVjdGVkQ29sdW1uKCkpfHx2b2lkIDA9PT1hP3ZvaWQgMDphLnBoeXNpY2FsSW5kZXg7bC5mb3JFYWNoKGg9Pnto'@; put 'LmlzSGlkZGVuKCl8fGgucmVzdG9yZVN0YXRlKGQpfSksdGhpcy51cGRhdGVEZXBlbmRlbnRDb21wb25lbnRzVmlzaWJpbGl0eSgpfWdldE9wZXJhdGlvbkJhc2VkT25Bcmd1bWVudHMobCxhLGQsaCl7bGV0IGY9bDtyZXR1cm4gZj09PVFGJiZhLmNvbW1hbmQua2V5IT09UzAmJmQuY29tbWFu'@; put 'ZC5rZXkhPT1TMCYmaC5jb21tYW5kLmtleSE9PVMwP2Y9eVE6aC5jb21tYW5kLmtleSE9PVMwJiYoYS5jb21tYW5kLmtleT09PVMwfHxkLmNvbW1hbmQua2V5PT09UzApJiYoZj1pNiksZn1zZXRMaXN0ZW5pbmdEcm9wZG93bk1lbnUoKXt0aGlzLmRyb3Bkb3duTWVudVBsdWdpbiYmdGhpcy5k'@; put 'cm9wZG93bk1lbnVQbHVnaW4uc2V0TGlzdGVuaW5nKCl9dXBkYXRlRGVwZW5kZW50Q29tcG9uZW50c1Zpc2liaWxpdHkoKXtjb25zdCBsPXRoaXMuY29tcG9uZW50cy5nZXQoImZpbHRlcl9ieV9jb25kaXRpb24iKSx7Y29tbWFuZDphfT1sLmdldFN0YXRlKCksZD1bdGhpcy5jb21wb25lbnRz'@; put 'LmdldCgiZmlsdGVyX2J5X2NvbmRpdGlvbjIiKSx0aGlzLmNvbXBvbmVudHMuZ2V0KCJmaWx0ZXJfb3BlcmF0b3JzIildO2Euc2hvd09wZXJhdG9ycz90aGlzLnNob3dDb21wb25lbnRzKC4uLmQpOnRoaXMuaGlkZUNvbXBvbmVudHMoLi4uZCl9X2NyZWF0ZURhdGFGaWx0ZXIoKXtyZXR1cm4g'@; put 'bmV3IHo1ZShhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLGE9PnRoaXMuZ2V0RGF0YU1hcEF0Q29sdW1uKGEpKX1nZXRJbmRleGVzT2ZDb21wb25lbnRzKCl7Y29uc3QgbD1bXTtpZighdGhpcy5k'@; put 'cm9wZG93bk1lbnVQbHVnaW4pcmV0dXJuIGw7Y29uc3QgYT10aGlzLmRyb3Bkb3duTWVudVBsdWdpbi5tZW51O2Zvcih2YXIgZD1hcmd1bWVudHMubGVuZ3RoLGg9bmV3IEFycmF5KGQpLGY9MDtmPGQ7ZisrKWhbZl09YXJndW1lbnRzW2ZdO3JldHVybiBLbihoLHY9PntLbihhLm1lbnVJdGVt'@; put 'cywoTSxJKT0+e00ua2V5PT09di5nZXRNZW51SXRlbURlc2NyaXB0b3IoKS5rZXkmJmwucHVzaChJKX0pfSksbH1jaGFuZ2VDb21wb25lbnRzVmlzaWJpbGl0eSgpe2xldCBsPSEoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0pfHxhcmd1bWVudHNbMF07aWYoIXRo'@; put 'aXMuZHJvcGRvd25NZW51UGx1Z2luKXJldHVybjtjb25zdCBkPXRoaXMuZHJvcGRvd25NZW51UGx1Z2luLm1lbnUuaG90TWVudSxoPWQuZ2V0UGx1Z2luKCJoaWRkZW5Sb3dzIik7Zm9yKHZhciBmPWFyZ3VtZW50cy5sZW5ndGgsdj1uZXcgQXJyYXkoZj4xP2YtMTowKSxNPTE7TTxmO00rKyl2'@; put 'W00tMV09YXJndW1lbnRzW01dO2NvbnN0IEk9dGhpcy5nZXRJbmRleGVzT2ZDb21wb25lbnRzKC4uLnYpO2w/aC5zaG93Um93cyhJKTpoLmhpZGVSb3dzKEkpLGQucmVuZGVyKCl9aGlkZUNvbXBvbmVudHMoKXtmb3IodmFyIGw9YXJndW1lbnRzLmxlbmd0aCxhPW5ldyBBcnJheShsKSxkPTA7'@; put 'ZDxsO2QrKylhW2RdPWFyZ3VtZW50c1tkXTt0aGlzLmNoYW5nZUNvbXBvbmVudHNWaXNpYmlsaXR5KCExLC4uLmEpfXNob3dDb21wb25lbnRzKCl7Zm9yKHZhciBsPWFyZ3VtZW50cy5sZW5ndGgsYT1uZXcgQXJyYXkobCksZD0wO2Q8bDtkKyspYVtkXT1hcmd1bWVudHNbZF07dGhpcy5jaGFu'@; put 'Z2VDb21wb25lbnRzVmlzaWJpbGl0eSghMCwuLi5hKX1kZXN0cm95KCl7dGhpcy5lbmFibGVkJiYodGhpcy5jb21wb25lbnRzLmZvckVhY2goKGwsYSk9PntudWxsIT09bCYmKGwuZGVzdHJveSgpLHRoaXMuY29tcG9uZW50cy5zZXQoYSxudWxsKSl9KSx0aGlzLmNvbmRpdGlvbkNvbGxlY3Rp'@; put 'b24uZGVzdHJveSgpLHRoaXMuY29uZGl0aW9uVXBkYXRlT2JzZXJ2ZXIuZGVzdHJveSgpLHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLnVucmVnaXN0ZXJNYXAodGhpcy5wbHVnaW5OYW1lKSksc3VwZXIuZGVzdHJveSgpfX1mdW5jdGlvbiBoMnQoYyl7YyYmS24oYyxsPT57Y29uc3RbLGFdPWws'@; put 'ZD10aGlzLmhvdC5wcm9wVG9Db2woYSk7dGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmhhc0NvbmRpdGlvbnMoZCkmJnRoaXMudXBkYXRlVmFsdWVDb21wb25lbnRDb25kaXRpb24oZCl9KX1mdW5jdGlvbiBmMnQoKXtjb25zdCBjPXRoaXMuZHJvcGRvd25NZW51UGx1Z2luLm1lbnU7dGhpcy5y'@; put 'ZXN0b3JlQ29tcG9uZW50cyhBcnJheS5mcm9tKHRoaXMuY29tcG9uZW50cy52YWx1ZXMoKSkpLGMudXBkYXRlTWVudURpbWVuc2lvbnMoKX1mdW5jdGlvbiBwMnQoKXt0aGlzLmNvbXBvbmVudHMuZ2V0KCJmaWx0ZXJfYnlfY29uZGl0aW9uIikuZ2V0U2VsZWN0RWxlbWVudCgpLmNsb3NlT3B0'@; put 'aW9ucygpLHRoaXMuY29tcG9uZW50cy5nZXQoImZpbHRlcl9ieV9jb25kaXRpb24yIikuZ2V0U2VsZWN0RWxlbWVudCgpLmNsb3NlT3B0aW9ucygpfWZ1bmN0aW9uIGcydCgpe2NvbnN0IGM9dGhpcy5kcm9wZG93bk1lbnVQbHVnaW4ubWVudTtuZihBUSx0aGlzKS5oYXMoYyl8fG5mKFBnLHRo'@; put 'aXMpLnNldE1lbnUoYyksbmYoQVEsdGhpcykuYWRkKGMpfWZ1bmN0aW9uIG0ydChjKXtjLml0ZW1zLnB1c2goe25hbWU6aW99KSx0aGlzLmNvbXBvbmVudHMuZm9yRWFjaChsPT57Yy5pdGVtcy5wdXNoKGwuZ2V0TWVudUl0ZW1EZXNjcmlwdG9yKCkpfSl9ZnVuY3Rpb24gWTVlKGMpe3ZhciBs'@; put 'O2lmKCJhY2NlcHQiPT09Yyl7Y29uc3QgZD10aGlzLmdldFNlbGVjdGVkQ29sdW1uKCk7dmFyIGE7aWYobnVsbD09PWQpcmV0dXJuIHZvaWQobnVsbD09PShhPXRoaXMuZHJvcGRvd25NZW51UGx1Z2luKXx8dm9pZCAwPT09YXx8YS5jbG9zZSgpKTtjb25zdHtwaHlzaWNhbEluZGV4Omh9PWQs'@; put 'Zj10aGlzLmNvbXBvbmVudHMuZ2V0KCJmaWx0ZXJfYnlfY29uZGl0aW9uIikuZ2V0U3RhdGUoKSx2PXRoaXMuY29tcG9uZW50cy5nZXQoImZpbHRlcl9ieV9jb25kaXRpb24yIikuZ2V0U3RhdGUoKSxNPXRoaXMuY29tcG9uZW50cy5nZXQoImZpbHRlcl9ieV92YWx1ZSIpLmdldFN0YXRlKCks'@; put 'ST10aGlzLmdldE9wZXJhdGlvbkJhc2VkT25Bcmd1bWVudHModGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX29wZXJhdG9ycyIpLmdldEFjdGl2ZU9wZXJhdGlvbklkKCksZix2LE0pO3RoaXMuY29uZGl0aW9uVXBkYXRlT2JzZXJ2ZXIuZ3JvdXBDaGFuZ2VzKCk7bGV0IEc9dGhpcy5jb25k'@; put 'aXRpb25Db2xsZWN0aW9uLmdldENvbHVtblN0YWNrUG9zaXRpb24oaCk7LTE9PT1HJiYoRz12b2lkIDApLHRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5yZW1vdmVDb25kaXRpb25zKGgpLGYuY29tbWFuZC5rZXkhPT1TMCYmKHRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5hZGRDb25kaXRpb24o'@; put 'aCxmLEksRyksdi5jb21tYW5kLmtleSE9PVMwJiZ0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uYWRkQ29uZGl0aW9uKGgsdixJLEcpKSxNLmNvbW1hbmQua2V5IT09UzAmJnRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5hZGRDb25kaXRpb24oaCxNLEksRyksdGhpcy5jb25kaXRpb25VcGRhdGVP'@; put 'YnNlcnZlci5mbHVzaCgpLHRoaXMuY29tcG9uZW50cy5mb3JFYWNoKHJlPT5yZS5zYXZlU3RhdGUoaCkpLHRoaXMuZmlsdGVyKCl9bnVsbD09PShsPXRoaXMuZHJvcGRvd25NZW51UGx1Z2luKXx8dm9pZCAwPT09bHx8bC5jbG9zZSgpfWZ1bmN0aW9uIHYydChjLGwpe2NvbnN0IGE9dGhpcy5k'@; put 'cm9wZG93bk1lbnVQbHVnaW4ubWVudTt0aGlzLnVwZGF0ZURlcGVuZGVudENvbXBvbmVudHNWaXNpYmlsaXR5KCksYy5jb25zdHJ1Y3Rvcj09PW1RJiYhbC5pbnB1dHNDb3VudCYmdGhpcy5zZXRMaXN0ZW5pbmdEcm9wZG93bk1lbnUoKSxhLnVwZGF0ZU1lbnVEaW1lbnNpb25zKCl9ZnVuY3Rp'@; put 'b24gRzVlKCl7dGhpcy5zZXRMaXN0ZW5pbmdEcm9wZG93bk1lbnUoKX1mdW5jdGlvbiB5MnQoYyxsLGEpe2NvbnN0IGQ9dGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihjKTt0aGlzLmVuYWJsZWQmJnRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5oYXNDb25kaXRpb25zKGQpJiZhPT09dGhpcy5o'@; put 'b3Qudmlldy5nZXRDb2x1bW5IZWFkZXJzQ291bnQoKS0xP0VpKGwsImh0RmlsdGVyc0FjdGl2ZSIpOmhzKGwsImh0RmlsdGVyc0FjdGl2ZSIpfWZ1bmN0aW9uIGIydChjKXt2YXIgbDtpZihudWxsPT09KGw9dGhpcy5kcm9wZG93bk1lbnVQbHVnaW4pfHx2b2lkIDA9PT1sfHwhbC5lbmFibGVk'@; put 'KXJldHVybjtjb25zdHtlZGl0ZWRDb25kaXRpb25TdGFjazp7Y29uZGl0aW9uczphLGNvbHVtbjpkfSxjb25kaXRpb25BcmdzQ2hhbmdlOmh9PWM7QXJyYXkuaXNBcnJheShoKSYmckgodzksdGhpcyxuZih3OSx0aGlzKS5tYXAoTT0+KE0uY29sdW1uPT09ZCYmYS5sZW5ndGg+MCYmTS5jb25k'@; put 'aXRpb25zLmZvckVhY2goST0+eyJieV92YWx1ZSI9PT1JLm5hbWUmJihJLmFyZ3M9W1suLi5oXV0pfSksTSkpKTtjb25zdCBmPWEuZmlsdGVyKE09Pk0ubmFtZT09PWI5KSx2PWEuZmlsdGVyKE09Pk0ubmFtZSE9PWI5KTtpZihmLmxlbmd0aD49Mnx8di5sZW5ndGg+PTMpWW8oaGxgVGhlIGZp'@; put 'bHRlciBjb25kaXRpb25zIGhhdmUgYmVlbiBhcHBsaWVkIHByb3Blcmx5LCBidXQgY291bGRu4oCZdCBiZSBkaXNwbGF5ZWQgdmlzdWFsbHkuXHgyMAogICAgICAgIFRoZSBvdmVyYWxsIGFtb3VudCBvZiBjb25kaXRpb25zIGV4Y2VlZCB0aGUgY2FwYWJpbGl0eSBvZiB0aGUgZHJvcGRvd24g'@; put 'bWVudS5ceDIwCiAgICAgICAgRm9yIG1vcmUgZGV0YWlscyBzZWUgdGhlIGRvY3VtZW50YXRpb24uYCk7ZWxzZXtjb25zdCBNPXRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5nZXRPcGVyYXRpb24oZCk7dGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX2J5X2NvbmRpdGlvbiIpLnVwZGF0ZVN0'@; put 'YXRlKHZbMF0sZCksdGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX2J5X2NvbmRpdGlvbjIiKS51cGRhdGVTdGF0ZSh2WzFdLGQpLHRoaXMuY29tcG9uZW50cy5nZXQoImZpbHRlcl9vcGVyYXRvcnMiKS51cGRhdGVTdGF0ZShNLGQpLHRoaXMuY29tcG9uZW50cy5nZXQoImZpbHRlcl9ieV92'@; put 'YWx1ZSIpLnVwZGF0ZVN0YXRlKGMpfX1jb25zdCAkNWU9ImludGVybmFsLXVzZS1pbi1oYW5kc29udGFibGUiLGtRPXtsaWNlbnNlS2V5OiQ1ZSx1c2VBcnJheUFyaXRobWV0aWM6ITAsdXNlQ29sdW1uSW5kZXg6ITEsdXNlU3RhdHM6ITEsZXZhbHVhdGVOdWxsVG9aZXJvOiEwLHByZWNpc2lv'@; put 'bkVwc2lsb246MWUtMTMscHJlY2lzaW9uUm91bmRpbmc6MTQsc21hcnRSb3VuZGluZzohMCxsZWFwWWVhcjE5MDA6ITEsbnVsbERhdGU6e3llYXI6MTg5OSxtb250aDoxMixkYXk6MzB9LG51bGxZZWFyOjMwLGRhdGVGb3JtYXRzOlsiREQvTU0vWVlZWSIsIkREL01NL1lZIl0sdGltZUZvcm1h'@; put 'dHM6WyJoaDptbSIsImhoOm1tOnNzLnNzcyJdLG1hdGNoV2hvbGVDZWxsOiEwLHVzZVJlZ3VsYXJFeHByZXNzaW9uczohMSx1c2VXaWxkY2FyZHM6ITAsZnVuY3Rpb25BcmdTZXBhcmF0b3I6IiwiLHRob3VzYW5kU2VwYXJhdG9yOiIiLGRlY2ltYWxTZXBhcmF0b3I6Ii4iLGxhbmd1YWdlOiJl'@; put 'bkdCIn07ZnVuY3Rpb24gSzVlKGMpe3ZhciBsO3JldHVybnttYXhDb2x1bW5zOmMubWF4Q29sdW1ucyxtYXhSb3dzOmMubWF4Um93cyxsYW5ndWFnZTpudWxsPT09KGw9Y1t3MV0pfHx2b2lkIDA9PT1sfHxudWxsPT09KGw9bC5sYW5ndWFnZSl8fHZvaWQgMD09PWw/dm9pZCAwOmwubGFuZ0Nv'@; put 'ZGV9fWZ1bmN0aW9uIFg1ZShjKXtyZXR1cm4gT2JqZWN0LmtleXMoYykucmVkdWNlKChsLGEpPT4oImh5cGVyZm9ybXVsYSIhPT1hJiYobFthXT1jW2FdKSxsKSx7fSl9ZnVuY3Rpb24gaUgoKXtjb25zdCBjPSJlbmdpbmVfcmVsYXRpb25zaGlwIixsPVUyKHcxKTtyZXR1cm4gbC5oYXNJdGVt'@; put 'KGMpfHxsLnJlZ2lzdGVyKGMsbmV3IE1hcCksbC5nZXRJdGVtKGMpfWZ1bmN0aW9uIERRKCl7Y29uc3QgYz0ic2hhcmVkX2VuZ2luZV91c2FnZSIsbD1VMih3MSk7cmV0dXJuIGwuaGFzSXRlbShjKXx8bC5yZWdpc3RlcihjLG5ldyBNYXApLGwuZ2V0SXRlbShjKX1mdW5jdGlvbiBxNWUoYyl7'@; put 'dmFyIGw7Y29uc3QgYT1pSCgpLGQ9MD09PWEuc2l6ZT9bXTpBcnJheS5mcm9tKG51bGwhPT0obD1hLmdldChjKSkmJnZvaWQgMCE9PWw/bDpbXSk7cmV0dXJuIG5ldyBNYXAoZC5tYXAoaD0+W2guZ2V0UGx1Z2luKCJmb3JtdWxhcyIpLnNoZWV0SWQsaF0pKX1mdW5jdGlvbiBKNWUoYyxsKXtp'@; put 'ZihjKXtjb25zdCBhPWlIKCksZD1hLmdldChjKSxoPURRKCksZj1oLmdldChjKTtkJiZkLmluY2x1ZGVzKGwpJiYoZC5zcGxpY2UoZC5pbmRleE9mKGwpLDEpLDA9PT1kLmxlbmd0aCYmYS5kZWxldGUoYykpLGYmJmYuaW5jbHVkZXMobC5ndWlkKSYmKGYuc3BsaWNlKGYuaW5kZXhPZihsLmd1'@; put 'aWQpLDEpLDA9PT1mLmxlbmd0aCYmKGguZGVsZXRlKGMpLGMuZGVzdHJveSgpKSl9fWNvbnN0IFE1ZT0iREQvTU0vWVlZWSI7ZnVuY3Rpb24gSVEoYyxsKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGMmJiJkYXRlIj09PWx9ZnVuY3Rpb24gZW1lKGMsbCl7cmV0dXJuIFBzKGMsbCwhMCkuaXNW'@; put 'YWxpZCgpfWZ1bmN0aW9uIHRtZShjLGwpe3JldHVybiBQcyhjLGwsITApLmZvcm1hdChRNWUpfWZ1bmN0aW9uIFIydChjLGwpe3JldHVybiBQcyhjLFE1ZSwhMCkuZm9ybWF0KGwpfWZ1bmN0aW9uIG5tZShjLGwpe2NvbnN0IGQ9bmV3IERhdGUoRGF0ZS5VVEMoMCwwLGMrLTEpKTtyZXR1cm4g'@; put 'UHMoZCkuZm9ybWF0KGwpfWZ1bmN0aW9uIFJRKGMsbCxhKXtjb25zdCBkPWZ1bmN0aW9uIE8ydChjLGwpe2NvbnN0IGE9W107cmV0dXJuIGMuZm9yRWFjaChkPT57Y29uc3QgaD17ZnJvbTpkLHRvOmx9O2EuZm9yRWFjaChmPT57Zi5mcm9tPmguZnJvbSYmZi50bzw9aC5mcm9tJiZmLmZyb20+'@; put 'Zi50byYmKGguZnJvbSs9MSl9KSxoLmZyb20+PWwmJihsKz0xKSxhLnB1c2goaCl9KSxhfShjLGZ1bmN0aW9uIEwydChjLGwsYSl7Y29uc3QgZD1BcnJheS5mcm9tKEFycmF5KGEpLmtleXMoKSkuZmlsdGVyKGY9PiExPT09Yy5pbmNsdWRlcyhmKSk7dmFyIGg7cmV0dXJuIDA9PT1sP251bGwh'@; put 'PT0oaD1kW2xdKSYmdm9pZCAwIT09aD9oOjA6ZFtsLTFdKzF9KGMsbCxhKSk7cmV0dXJuIGZ1bmN0aW9uIFAydChjKXtyZXR1cm4gYy5mb3JFYWNoKChsLGEpPT57Yy5zbGljZShhKzEpLmZvckVhY2goaD0+e2guZnJvbT5sLmZyb20mJmguZnJvbTxoLnRvJiYoaC5mcm9tLT0xKX0pfSksY30o'@; put 'ZCl9ZnVuY3Rpb24gQzkoYyxsLGEpeyhmdW5jdGlvbiBGMnQoYyxsKXtpZihsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfSkoYyxsKSxsLnNldChjLGEpfWZ1bmN0aW9u'@; put 'IHdjKGMsbCl7cmV0dXJuIGMuZ2V0KHJtZShjLGwpKX1mdW5jdGlvbiBvNihjLGwsYSl7cmV0dXJuIGMuc2V0KHJtZShjLGwpLGEpLGF9ZnVuY3Rpb24gcm1lKGMsbCxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhsKSlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzP2w6'@; put 'YTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGVsZW1lbnQgaXMgbm90IHByZXNlbnQgb24gdGhpcyBvYmplY3QiKX12YXIgaUE9bmV3IFdlYWtNYXAsbDY9bmV3IFdlYWtNYXAsamg9bmV3IFdlYWtNYXAsYUg9bmV3IFdlYWtNYXAsTFE9bmV3IFdlYWtNYXAsT1E9bmV3IFdlYWtNYXAs'@; put 'c0g9bmV3IFdlYWtNYXA7Y29uc3QgaW1lPWNsYXNzIEgydHtjb25zdHJ1Y3RvcihsLGEsZCl7QzkodGhpcyxpQSx2b2lkIDApLEM5KHRoaXMsbDYsdm9pZCAwKSxDOSh0aGlzLGpoLHZvaWQgMCksQzkodGhpcyxhSCxbXSksQzkodGhpcyxMUSxbXSksQzkodGhpcyxPUSx2b2lkIDApLEM5KHRo'@; put 'aXMsc0gsW10pLG82KGlBLHRoaXMsbCksbzYobDYsdGhpcyxhKSxvNihqaCx0aGlzLGQpfXNldFJlbW92ZWRIZkluZGV4ZXMobCl7cmV0dXJuIG82KHNILHRoaXMsbC5tYXAoYT0+e2NvbnN0IGQ9d2MobDYsdGhpcykuZ2V0VmlzdWFsRnJvbVBoeXNpY2FsSW5kZXgoYSk7cmV0dXJuIHRoaXMu'@; put 'Z2V0SGZJbmRleEZyb21WaXN1YWxJbmRleChkKX0pKSx3YyhzSCx0aGlzKX1nZXRSZW1vdmVkSGZJbmRleGVzKCl7cmV0dXJuIHdjKHNILHRoaXMpfWdldEhmSW5kZXhGcm9tVmlzdWFsSW5kZXgobCl7Y29uc3QgYT13YyhsNix0aGlzKS5nZXRJbmRleGVzU2VxdWVuY2UoKSxkPXdjKGw2LHRo'@; put 'aXMpLmdldE5vdFRyaW1tZWRJbmRleGVzKCk7cmV0dXJuIGEuaW5kZXhPZihkW2xdLGwpfXN5bmNNb3ZlcyhsKXtjb25zdCBkPWBtb3ZlJHtmMSh3YyhpQSx0aGlzKSl9c2A7d2MoamgsdGhpcykuZ2V0RW5naW5lKCkuYmF0Y2goKCk9PntsLmZvckVhY2goaD0+e2guZnJvbSE9PWgudG8mJmgu'@; put 'ZnJvbSsxIT09aC50byYmd2MoamgsdGhpcykuZ2V0RW5naW5lKClbZF0od2MoamgsdGhpcykuZ2V0U2hlZXRJZCgpLGguZnJvbSwxLGgudG8pfSl9KX1zdG9yZU1vdmVzSW5mb3JtYXRpb24obCxhLGQpeyExIT09ZCYmKG82KExRLHRoaXMsbC5tYXAoaD0+dGhpcy5nZXRIZkluZGV4RnJvbVZp'@; put 'c3VhbEluZGV4KGgpKSksbzYoT1EsdGhpcyx0aGlzLmdldEhmSW5kZXhGcm9tVmlzdWFsSW5kZXgoYSkpKX1jYWxjdWxhdGVBbmRTeW5jTW92ZXMobCxhKXtpZih3YyhqaCx0aGlzKS5pc1BlcmZvcm1pbmdVbmRvUmVkbygpfHwhMT09PWx8fCExPT09YSlyZXR1cm47Y29uc3QgZD1SUSh3YyhM'@; put 'USx0aGlzKSx3YyhPUSx0aGlzKSx3YyhsNix0aGlzKS5nZXROdW1iZXJPZkluZGV4ZXMoKSk7bnVsbD09PXdjKGpoLHRoaXMpLmdldFNoZWV0SWQoKT93YyhqaCx0aGlzKS5nZXRQb3N0cG9uZUFjdGlvbigoKT0+dGhpcy5zeW5jTW92ZXMoZCkpOnRoaXMuc3luY01vdmVzKGQpfWdldEluZGV4'@; put 'ZXNDaGFuZ2VTeW5jTWV0aG9kKCl7Y29uc3QgbD1gc2V0JHtmMSh3YyhpQSx0aGlzKSl9T3JkZXJgO3JldHVybiBhPT57aWYod2MoamgsdGhpcykuaXNQZXJmb3JtaW5nVW5kb1JlZG8oKSlyZXR1cm47Y29uc3QgZD13YyhsNix0aGlzKS5nZXRJbmRleGVzU2VxdWVuY2UoKTtpZigidXBkYXRl'@; put 'Ij09PWEmJmQubGVuZ3RoPjApe2NvbnN0IGg9d2MoYUgsdGhpcykubWFwKEk9PmQuaW5kZXhPZihJKSksZj13YyhqaCx0aGlzKS5nZXRFbmdpbmUoKS5nZXRTaGVldERpbWVuc2lvbnMod2MoamgsdGhpcykuZ2V0U2hlZXRJZCgpKTtsZXQgdjt2PSJyb3ciPT09d2MoaUEsdGhpcyk/Zi5oZWln'@; put 'aHQ6Zi53aWR0aDtmb3IobGV0IEk9aC5sZW5ndGg7STx2O0krPTEpaC5wdXNoKEkpO3djKGpoLHRoaXMpLmdldEVuZ2luZSgpW2xdKHdjKGpoLHRoaXMpLmdldFNoZWV0SWQoKSxoKX1vNihhSCx0aGlzLGQpfX1pbml0KCl7bzYoYUgsdGhpcyx3YyhsNix0aGlzKS5nZXRJbmRleGVzU2VxdWVu'@; put 'Y2UoKSl9fTtmdW5jdGlvbiBTOShjLGwsYSl7KGZ1bmN0aW9uIE4ydChjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShjLGwpLGwuc2V0KGMsYSl9ZnVu'@; put 'Y3Rpb24gRmcoYyxsKXtyZXR1cm4gYy5nZXQoYW1lKGMsbCkpfWZ1bmN0aW9uIE05KGMsbCxhKXtyZXR1cm4gYy5zZXQoYW1lKGMsbCksYSksYX1mdW5jdGlvbiBhbWUoYyxsLGEpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBjP2M9PT1sOmMuaGFzKGwpKXJldHVybiBhcmd1bWVudHMubGVuZ3Ro'@; put 'PDM/bDphO3Rocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgZWxlbWVudCBpcyBub3QgcHJlc2VudCBvbiB0aGlzIG9iamVjdCIpfXZhciBvSD1uZXcgV2Vha01hcCxsSD1uZXcgV2Vha01hcCxQUT1uZXcgV2Vha01hcCxGUT1uZXcgV2Vha01hcCxIUT1uZXcgV2Vha01hcCxOUT1uZXcgV2Vh'@; put 'a01hcCxWUT1uZXcgV2Vha01hcDtjb25zdCBCMnQ9Y2xhc3MgVjJ0e2NvbnN0cnVjdG9yKGwsYSxkKXtTOSh0aGlzLG9ILHZvaWQgMCksUzkodGhpcyxsSCx2b2lkIDApLFM5KHRoaXMsUFEsdm9pZCAwKSxTOSh0aGlzLEZRLCExKSxTOSh0aGlzLEhRLCExKSxTOSh0aGlzLE5RLG51bGwpLFM5'@; put 'KHRoaXMsVlEsbnVsbCksTTkob0gsdGhpcyxuZXcgaW1lKCJyb3ciLGwsdGhpcykpLE05KGxILHRoaXMsbmV3IGltZSgiY29sdW1uIixhLHRoaXMpKSxNOShQUSx0aGlzLGQpfWdldEZvckF4aXMobCl7cmV0dXJuIEZnKCJyb3ciPT09bD9vSDpsSCx0aGlzKX1zZXRQZXJmb3JtVW5kbyhsKXtN'@; put 'OShGUSx0aGlzLGwpfXNldFBlcmZvcm1SZWRvKGwpe005KEhRLHRoaXMsbCl9aXNQZXJmb3JtaW5nVW5kb1JlZG8oKXtyZXR1cm4gRmcoRlEsdGhpcyl8fEZnKEhRLHRoaXMpfWdldFNoZWV0SWQoKXtyZXR1cm4gRmcoVlEsdGhpcyl9Z2V0RW5naW5lKCl7cmV0dXJuIEZnKE5RLHRoaXMpfWdl'@; put 'dFBvc3Rwb25lQWN0aW9uKCl7cmV0dXJuIEZnKFBRLHRoaXMpfXNldHVwU3luY0VuZHBvaW50KGwsYSl7TTkoTlEsdGhpcyxsKSxNOShWUSx0aGlzLGEpLEZnKG9ILHRoaXMpLmluaXQoKSxGZyhsSCx0aGlzKS5pbml0KCl9fTtmdW5jdGlvbiB4OShjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24g'@; put 'ejJ0KGMpe3ZhciBsPWZ1bmN0aW9uIFUydChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVy'@; put 'biBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9P'@; put 'YmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9ZnVuY3Rpb24gQlEoYyxsLGEpe3NtZShjLGwpLGwuc2V0KGMsYSl9ZnVuY3Rpb24gc21lKGMsbCl7aWYobC5oYXMoYykpdGhyb3cgbmV3'@; put 'IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX1mdW5jdGlvbiBjNihjLGwsYSl7cmV0dXJuIGMuc2V0KGpvKGMsbCksYSksYX1mdW5jdGlvbiBFOShjLGwpe3JldHVybiBjLmdldChqbyhjLGwpKX1mdW5j'@; put 'dGlvbiBqbyhjLGwsYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGM/Yz09PWw6Yy5oYXMobCkpcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mz9sOmE7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBlbGVtZW50IGlzIG5vdCBwcmVzZW50IG9uIHRoaXMgb2JqZWN0Iil9Y29uc3QgdzE9ImZv'@; put 'cm11bGFzIixaMnQ9WyJtYXhSb3dzIiwibWF4Q29sdW1ucyIsImxhbmd1YWdlIl07TWEuZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyTmFtZWRFeHByZXNzaW9uQWRkZWQiKSxNYS5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJOYW1lZEV4cHJlc3Npb25SZW1vdmVkIiksTWEu'@; put 'Z2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyU2hlZXRBZGRlZCIpLE1hLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlclNoZWV0UmVtb3ZlZCIpLE1hLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlclNoZWV0UmVuYW1lZCIpLE1hLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVy'@; put 'KCJhZnRlckZvcm11bGFzVmFsdWVzVXBkYXRlIik7Y29uc3QgdXc9Yz0+IlVuZG9SZWRvLnVuZG8iPT09Y3x8IlVuZG9SZWRvLnJlZG8iPT09Y3x8ImF1dG8iPT09Yzt2YXIgSGc9bmV3IFdlYWtNYXAsY0g9bmV3IFdlYWtNYXAsYUE9bmV3IFdlYWtNYXAsR289bmV3IFdlYWtTZXQ7Y2xhc3Mg'@; put 'WTJ0IGV4dGVuZHMgRm97Y29uc3RydWN0b3IoKXt2YXIgbDtzdXBlciguLi5hcmd1bWVudHMpLGw9dGhpcyxmdW5jdGlvbiBqMnQoYyxsKXtzbWUoYyxsKSxsLmFkZChjKX0odGhpcyxHbyksQlEodGhpcyxIZywhMSksQlEodGhpcyxjSCwhMSksQlEodGhpcyxhQSxbWyJ2YWx1ZXNVcGRhdGVk'@; put 'IixmdW5jdGlvbigpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDtoPGE7aCsrKWRbaF09YXJndW1lbnRzW2hdO3JldHVybiBqbyhHbyxsLGxmdCkuY2FsbChsLC4uLmQpfV0sWyJuYW1lZEV4cHJlc3Npb25BZGRlZCIsZnVuY3Rpb24oKXtmb3IodmFyIGE9'@; put 'YXJndW1lbnRzLmxlbmd0aCxkPW5ldyBBcnJheShhKSxoPTA7aDxhO2grKylkW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gam8oR28sbCxjZnQpLmNhbGwobCwuLi5kKX1dLFsibmFtZWRFeHByZXNzaW9uUmVtb3ZlZCIsZnVuY3Rpb24oKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxkPW5l'@; put 'dyBBcnJheShhKSxoPTA7aDxhO2grKylkW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gam8oR28sbCx1ZnQpLmNhbGwobCwuLi5kKX1dLFsic2hlZXRBZGRlZCIsZnVuY3Rpb24oKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxkPW5ldyBBcnJheShhKSxoPTA7aDxhO2grKylkW2hdPWFyZ3Vt'@; put 'ZW50c1toXTtyZXR1cm4gam8oR28sbCxkZnQpLmNhbGwobCwuLi5kKX1dLFsic2hlZXRSZW5hbWVkIixmdW5jdGlvbigpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDtoPGE7aCsrKWRbaF09YXJndW1lbnRzW2hdO3JldHVybiBqbyhHbyxsLGhmdCkuY2Fs'@; put 'bChsLC4uLmQpfV0sWyJzaGVldFJlbW92ZWQiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGgsZD1uZXcgQXJyYXkoYSksaD0wO2g8YTtoKyspZFtoXT1hcmd1bWVudHNbaF07cmV0dXJuIGpvKEdvLGwsZmZ0KS5jYWxsKGwsLi4uZCl9XV0pLHg5KHRoaXMsInN0YXRpY1Jl'@; put 'Z2lzdGVyIixVMigiZm9ybXVsYXMiKSkseDkodGhpcywiZW5naW5lIixudWxsKSx4OSh0aGlzLCJzaGVldElkIixudWxsKSx4OSh0aGlzLCJzaGVldE5hbWUiLG51bGwpLHg5KHRoaXMsImluZGV4U3luY2VyIixudWxsKSx4OSh0aGlzLCJyb3dBeGlzU3luY2VyIixudWxsKSx4OSh0aGlzLCJj'@; put 'b2x1bW5BeGlzU3luY2VyIixudWxsKX1zdGF0aWMgZ2V0IFBMVUdJTl9LRVkoKXtyZXR1cm4gdzF9c3RhdGljIGdldCBQTFVHSU5fUFJJT1JJVFkoKXtyZXR1cm4gMjYwfXN0YXRpYyBnZXQgU0VUVElOR19LRVlTKCl7cmV0dXJuW3cxLC4uLloydF19aXNFbmFibGVkKCl7cmV0dXJuISF0aGlz'@; put 'LmhvdC5nZXRTZXR0aW5ncygpW3cxXX1lbmFibGVQbHVnaW4oKXt2YXIgbCxhPXRoaXM7aWYoIXRoaXMuZW5hYmxlZCl7aWYodGhpcy5lbmdpbmU9bnVsbCE9PShsPWZ1bmN0aW9uIFMydChjKXtjb25zdCBsPWMuZ2V0U2V0dGluZ3MoKSxhPWxbdzFdLGQ9YT8uZW5naW5lO2lmKCEwPT09YXx8'@; put 'YmMoZCkpcmV0dXJuIG51bGw7dmFyIGg7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGQuaHlwZXJmb3JtdWxhfHwiZnVuY3Rpb24iPT10eXBlb2YgZClyZXR1cm4gZnVuY3Rpb24gTTJ0KGMsbCxhKXtjb25zdCBkPWxbdzFdLGg9ZnVuY3Rpb24gXzJ0KGMpe3ZhciBsO2NvbnN0IGE9Y1t3MV0sZD1Y'@; put 'NWUobnVsbCE9YSYmbnVsbCE9PShsPWEuZW5naW5lKSYmdm9pZCAwIT09bCYmbC5oeXBlcmZvcm11bGE/YS5lbmdpbmU6e30pLGg9SzVlKGMpO3JldHVybnsuLi5rUSwuLi5kLC4uLmh9fShsKSxmPWlIKCksdj1EUSgpOyhmdW5jdGlvbiB4MnQoYyxsKXtsJiZsLmZvckVhY2goYT0+e2NvbnN0'@; put 'e25hbWU6ZCxwbHVnaW46aCx0cmFuc2xhdGlvbnM6Zn09YTt0cnl7Yy5yZWdpc3RlckZ1bmN0aW9uKGQsaCxmKX1jYXRjaCh2KXtZbyh2Lm1lc3NhZ2UpfX0pfSkoYyxkLmZ1bmN0aW9ucyksZnVuY3Rpb24gRTJ0KGMsbCl7aWYobCl7Y29uc3R7bGFuZ0NvZGU6YX09bDt0cnl7Yy5yZWdpc3Rl'@; put 'ckxhbmd1YWdlKGEsbCl9Y2F0Y2goZCl7WW8oZC5tZXNzYWdlKX19fShjLGQubGFuZ3VhZ2UpO2NvbnN0IE09Yy5idWlsZEVtcHR5KGgpO3JldHVybiBmLnNldChNLFthXSksdi5zZXQoTSxbYS5ndWlkXSksZnVuY3Rpb24gVDJ0KGMsbCl7bCYmKGMuc3VzcGVuZEV2YWx1YXRpb24oKSxsLmZv'@; put 'ckVhY2goYT0+e2NvbnN0e25hbWU6ZCxleHByZXNzaW9uOmgsc2NvcGU6ZixvcHRpb25zOnZ9PWE7dHJ5e2MuYWRkTmFtZWRFeHByZXNzaW9uKGQsaCxmLHYpfWNhdGNoKE0pe1lvKE0ubWVzc2FnZSl9fSksYy5yZXN1bWVFdmFsdWF0aW9uKCkpfShNLGQubmFtZWRFeHByZXNzaW9ucyksTS5v'@; put 'bigic2hlZXRBZGRlZCIsKCk9PntNLnJlYnVpbGRBbmRSZWNhbGN1bGF0ZSgpfSksTS5vbigic2hlZXRSZW1vdmVkIiwoKT0+e00ucmVidWlsZEFuZFJlY2FsY3VsYXRlKCl9KSxNfShudWxsIT09KGg9ZC5oeXBlcmZvcm11bGEpJiZ2b2lkIDAhPT1oP2g6ZCxsLGMpO2lmKCJvYmplY3QiPT10'@; put 'eXBlb2YgZCYmYmMoZC5oeXBlcmZvcm11bGEpKXtjb25zdCBmPWlIKCksdj1EUSgpLmdldChkKTtyZXR1cm4gZi5oYXMoZCl8fGYuc2V0KGQsW10pLGYuZ2V0KGQpLnB1c2goYyksdiYmdi5wdXNoKGMuZ3VpZCksZC5nZXRDb25maWcoKS5saWNlbnNlS2V5fHxkLnVwZGF0ZUNvbmZpZyh7bGlj'@; put 'ZW5zZUtleTokNWV9KSwoZC5nZXRDb25maWcoKS5sZWFwWWVhcjE5MDAhPT1rUS5sZWFwWWVhcjE5MDB8fCExPT09SE8oZC5nZXRDb25maWcoKS5udWxsRGF0ZSxrUS5udWxsRGF0ZSkpJiZZbyhobGBJZiB5b3UgdXNlIEh5cGVyRm9ybXVsYSB3aXRoIEhhbmRzb250YWJsZSwga2VlcCB0aGUg'@; put 'ZGVmYXVsdCBcYGxlYXBZZWFyMTkwMFxgIGFuZCBcYG51bGxEYXRlXGAgCiAgICAgIHNldHRpbmdzLiBPdGhlcndpc2UsIEh5cGVyRm9ybXVsYSdzIGRhdGVzIG1heSBub3Qgc3luYyBjb3JyZWN0bHkgd2l0aCBIYW5kc29udGFibGUncyBkYXRlcy5gKSxkfXJldHVybiBudWxsfSh0aGlzLmhv'@; put 'dCkpJiZ2b2lkIDAhPT1sP2w6dGhpcy5lbmdpbmUsIXRoaXMuZW5naW5lKXJldHVybiB2b2lkIFlvKCJNaXNzaW5nIHRoZSByZXF1aXJlZCBgZW5naW5lYCBrZXkgaW4gdGhlIEZvcm11bGFzIHNldHRpbmdzLiBQbGVhc2UgZmlsbCBpdCB3aXRoIGVpdGhlciBhbiBlbmdpbmUgY2xhc3Mgb3Ig'@; put 'YW4gZW5naW5lIGluc3RhbmNlLiIpO2lmKG51bGwhPT10aGlzLnNoZWV0TmFtZSYmIXRoaXMuZW5naW5lLmRvZXNTaGVldEV4aXN0KHRoaXMuc2hlZXROYW1lKSl7Y29uc3QgZD10aGlzLmFkZFNoZWV0KHRoaXMuc2hlZXROYW1lLHRoaXMuaG90LmdldFNvdXJjZURhdGFBcnJheSgpKTshMSE9'@; put 'PWQmJmpvKEdvLHRoaXMsc0EpLmNhbGwodGhpcyxkKX10aGlzLmFkZEhvb2soImJlZm9yZUxvYWREYXRhIixmdW5jdGlvbigpe2Zvcih2YXIgZD1hcmd1bWVudHMubGVuZ3RoLGg9bmV3IEFycmF5KGQpLGY9MDtmPGQ7ZisrKWhbZl09YXJndW1lbnRzW2ZdO3JldHVybiBqbyhHbyxhLG9tZSku'@; put 'Y2FsbChhLC4uLmgpfSksdGhpcy5hZGRIb29rKCJhZnRlckxvYWREYXRhIixmdW5jdGlvbigpe2Zvcih2YXIgZD1hcmd1bWVudHMubGVuZ3RoLGg9bmV3IEFycmF5KGQpLGY9MDtmPGQ7ZisrKWhbZl09YXJndW1lbnRzW2ZdO3JldHVybiBqbyhHbyxhLGxtZSkuY2FsbChhLC4uLmgpfSksdGhp'@; put 'cy5hZGRIb29rKCJiZWZvcmVVcGRhdGVEYXRhIixmdW5jdGlvbigpe2Zvcih2YXIgZD1hcmd1bWVudHMubGVuZ3RoLGg9bmV3IEFycmF5KGQpLGY9MDtmPGQ7ZisrKWhbZl09YXJndW1lbnRzW2ZdO3JldHVybiBqbyhHbyxhLG9tZSkuY2FsbChhLC4uLmgpfSksdGhpcy5hZGRIb29rKCJhZnRl'@; put 'clVwZGF0ZURhdGEiLGZ1bmN0aW9uKCl7Zm9yKHZhciBkPWFyZ3VtZW50cy5sZW5ndGgsaD1uZXcgQXJyYXkoZCksZj0wO2Y8ZDtmKyspaFtmXT1hcmd1bWVudHNbZl07cmV0dXJuIGpvKEdvLGEsbG1lKS5jYWxsKGEsLi4uaCl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeURhdGEiLGZ1bmN0aW9u'@; put 'KCl7Zm9yKHZhciBkPWFyZ3VtZW50cy5sZW5ndGgsaD1uZXcgQXJyYXkoZCksZj0wO2Y8ZDtmKyspaFtmXT1hcmd1bWVudHNbZl07cmV0dXJuIGpvKEdvLGEsWDJ0KS5jYWxsKGEsLi4uaCl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeVNvdXJjZURhdGEiLGZ1bmN0aW9uKCl7Zm9yKHZhciBkPWFy'@; put 'Z3VtZW50cy5sZW5ndGgsaD1uZXcgQXJyYXkoZCksZj0wO2Y8ZDtmKyspaFtmXT1hcmd1bWVudHNbZl07cmV0dXJuIGpvKEdvLGEscTJ0KS5jYWxsKGEsLi4uaCl9KSx0aGlzLmFkZEhvb2soImJlZm9yZVZhbGlkYXRlIixmdW5jdGlvbigpe2Zvcih2YXIgZD1hcmd1bWVudHMubGVuZ3RoLGg9'@; put 'bmV3IEFycmF5KGQpLGY9MDtmPGQ7ZisrKWhbZl09YXJndW1lbnRzW2ZdO3JldHVybiBqbyhHbyxhLEcydCkuY2FsbChhLC4uLmgpfSksdGhpcy5hZGRIb29rKCJhZnRlclNldFNvdXJjZURhdGFBdENlbGwiLGZ1bmN0aW9uKCl7Zm9yKHZhciBkPWFyZ3VtZW50cy5sZW5ndGgsaD1uZXcgQXJy'@; put 'YXkoZCksZj0wO2Y8ZDtmKyspaFtmXT1hcmd1bWVudHNbZl07cmV0dXJuIGpvKEdvLGEsSjJ0KS5jYWxsKGEsLi4uaCl9KSx0aGlzLmFkZEhvb2soImFmdGVyU2V0RGF0YUF0Q2VsbCIsZnVuY3Rpb24oKXtmb3IodmFyIGQ9YXJndW1lbnRzLmxlbmd0aCxoPW5ldyBBcnJheShkKSxmPTA7Zjxk'@; put 'O2YrKyloW2ZdPWFyZ3VtZW50c1tmXTtyZXR1cm4gam8oR28sYSxjbWUpLmNhbGwoYSwuLi5oKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJTZXREYXRhQXRSb3dQcm9wIixmdW5jdGlvbigpe2Zvcih2YXIgZD1hcmd1bWVudHMubGVuZ3RoLGg9bmV3IEFycmF5KGQpLGY9MDtmPGQ7ZisrKWhbZl09'@; put 'YXJndW1lbnRzW2ZdO3JldHVybiBqbyhHbyxhLGNtZSkuY2FsbChhLC4uLmgpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVDcmVhdGVSb3ciLGZ1bmN0aW9uKCl7Zm9yKHZhciBkPWFyZ3VtZW50cy5sZW5ndGgsaD1uZXcgQXJyYXkoZCksZj0wO2Y8ZDtmKyspaFtmXT1hcmd1bWVudHNbZl07cmV0'@; put 'dXJuIGpvKEdvLGEsUTJ0KS5jYWxsKGEsLi4uaCl9KSx0aGlzLmFkZEhvb2soImJlZm9yZUNyZWF0ZUNvbCIsZnVuY3Rpb24oKXtmb3IodmFyIGQ9YXJndW1lbnRzLmxlbmd0aCxoPW5ldyBBcnJheShkKSxmPTA7ZjxkO2YrKyloW2ZdPWFyZ3VtZW50c1tmXTtyZXR1cm4gam8oR28sYSxlZnQp'@; put 'LmNhbGwoYSwuLi5oKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJDcmVhdGVSb3ciLGZ1bmN0aW9uKCl7Zm9yKHZhciBkPWFyZ3VtZW50cy5sZW5ndGgsaD1uZXcgQXJyYXkoZCksZj0wO2Y8ZDtmKyspaFtmXT1hcmd1bWVudHNbZl07cmV0dXJuIGpvKEdvLGEscmZ0KS5jYWxsKGEsLi4uaCl9KSx0'@; put 'aGlzLmFkZEhvb2soImFmdGVyQ3JlYXRlQ29sIixmdW5jdGlvbigpe2Zvcih2YXIgZD1hcmd1bWVudHMubGVuZ3RoLGg9bmV3IEFycmF5KGQpLGY9MDtmPGQ7ZisrKWhbZl09YXJndW1lbnRzW2ZdO3JldHVybiBqbyhHbyxhLGlmdCkuY2FsbChhLC4uLmgpfSksdGhpcy5hZGRIb29rKCJiZWZv'@; put 'cmVSZW1vdmVSb3ciLGZ1bmN0aW9uKCl7Zm9yKHZhciBkPWFyZ3VtZW50cy5sZW5ndGgsaD1uZXcgQXJyYXkoZCksZj0wO2Y8ZDtmKyspaFtmXT1hcmd1bWVudHNbZl07cmV0dXJuIGpvKEdvLGEsdGZ0KS5jYWxsKGEsLi4uaCl9KSx0aGlzLmFkZEhvb2soImJlZm9yZVJlbW92ZUNvbCIsZnVu'@; put 'Y3Rpb24oKXtmb3IodmFyIGQ9YXJndW1lbnRzLmxlbmd0aCxoPW5ldyBBcnJheShkKSxmPTA7ZjxkO2YrKyloW2ZdPWFyZ3VtZW50c1tmXTtyZXR1cm4gam8oR28sYSxuZnQpLmNhbGwoYSwuLi5oKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJSZW1vdmVSb3ciLGZ1bmN0aW9uKCl7Zm9yKHZhciBk'@; put 'PWFyZ3VtZW50cy5sZW5ndGgsaD1uZXcgQXJyYXkoZCksZj0wO2Y8ZDtmKyspaFtmXT1hcmd1bWVudHNbZl07cmV0dXJuIGpvKEdvLGEsYWZ0KS5jYWxsKGEsLi4uaCl9KSx0aGlzLmFkZEhvb2soImFmdGVyUmVtb3ZlQ29sIixmdW5jdGlvbigpe2Zvcih2YXIgZD1hcmd1bWVudHMubGVuZ3Ro'@; put 'LGg9bmV3IEFycmF5KGQpLGY9MDtmPGQ7ZisrKWhbZl09YXJndW1lbnRzW2ZdO3JldHVybiBqbyhHbyxhLHNmdCkuY2FsbChhLC4uLmgpfSksdGhpcy5pbmRleFN5bmNlcj1uZXcgQjJ0KHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLGQ9Pnt0aGlz'@; put 'LmhvdC5hZGRIb29rT25jZSgiaW5pdCIsKCk9PntkKCl9KX0pLHRoaXMucm93QXhpc1N5bmNlcj10aGlzLmluZGV4U3luY2VyLmdldEZvckF4aXMoInJvdyIpLHRoaXMuY29sdW1uQXhpc1N5bmNlcj10aGlzLmluZGV4U3luY2VyLmdldEZvckF4aXMoImNvbHVtbiIpLHRoaXMuaG90LmFkZEhv'@; put 'b2soImFmdGVyUm93U2VxdWVuY2VDaGFuZ2UiLHRoaXMucm93QXhpc1N5bmNlci5nZXRJbmRleGVzQ2hhbmdlU3luY01ldGhvZCgpKSx0aGlzLmhvdC5hZGRIb29rKCJhZnRlckNvbHVtblNlcXVlbmNlQ2hhbmdlIix0aGlzLmNvbHVtbkF4aXNTeW5jZXIuZ2V0SW5kZXhlc0NoYW5nZVN5bmNN'@; put 'ZXRob2QoKSksdGhpcy5ob3QuYWRkSG9vaygiYmVmb3JlUm93TW92ZSIsKGQsaCxmLHYpPT57dGhpcy5yb3dBeGlzU3luY2VyLnN0b3JlTW92ZXNJbmZvcm1hdGlvbihkLGgsdil9KSx0aGlzLmhvdC5hZGRIb29rKCJiZWZvcmVDb2x1bW5Nb3ZlIiwoZCxoLGYsdik9Pnt0aGlzLmNvbHVtbkF4'@; put 'aXNTeW5jZXIuc3RvcmVNb3Zlc0luZm9ybWF0aW9uKGQsaCx2KX0pLHRoaXMuaG90LmFkZEhvb2soImFmdGVyUm93TW92ZSIsKGQsaCxmLHYsTSk9Pnt0aGlzLnJvd0F4aXNTeW5jZXIuY2FsY3VsYXRlQW5kU3luY01vdmVzKHYsTSl9KSx0aGlzLmhvdC5hZGRIb29rKCJhZnRlckNvbHVtbk1v'@; put 'dmUiLChkLGgsZix2LE0pPT57dGhpcy5jb2x1bW5BeGlzU3luY2VyLmNhbGN1bGF0ZUFuZFN5bmNNb3Zlcyh2LE0pfSksdGhpcy5ob3QuYWRkSG9vaygiYmVmb3JlQ29sdW1uRnJlZXplIiwoZCxoKT0+e3RoaXMuY29sdW1uQXhpc1N5bmNlci5zdG9yZU1vdmVzSW5mb3JtYXRpb24oW2RdLHRo'@; put 'aXMuaG90LmdldFNldHRpbmdzKCkuZml4ZWRDb2x1bW5zU3RhcnQsaCl9KSx0aGlzLmhvdC5hZGRIb29rKCJhZnRlckNvbHVtbkZyZWV6ZSIsKGQsaCk9Pnt0aGlzLmNvbHVtbkF4aXNTeW5jZXIuY2FsY3VsYXRlQW5kU3luY01vdmVzKGgsaCl9KSx0aGlzLmhvdC5hZGRIb29rKCJiZWZvcmVD'@; put 'b2x1bW5VbmZyZWV6ZSIsKGQsaCk9Pnt0aGlzLmNvbHVtbkF4aXNTeW5jZXIuc3RvcmVNb3Zlc0luZm9ybWF0aW9uKFtkXSx0aGlzLmhvdC5nZXRTZXR0aW5ncygpLmZpeGVkQ29sdW1uc1N0YXJ0LTEsaCl9KSx0aGlzLmhvdC5hZGRIb29rKCJhZnRlckNvbHVtblVuZnJlZXplIiwoZCxoKT0+'@; put 'e3RoaXMuY29sdW1uQXhpc1N5bmNlci5jYWxjdWxhdGVBbmRTeW5jTW92ZXMoaCxoKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJDZWxsTWV0YVJlc2V0IixmdW5jdGlvbigpe2Zvcih2YXIgZD1hcmd1bWVudHMubGVuZ3RoLGg9bmV3IEFycmF5KGQpLGY9MDtmPGQ7ZisrKWhbZl09YXJndW1lbnRz'@; put 'W2ZdO3JldHVybiBqbyhHbyxhLEsydCkuY2FsbChhLC4uLmgpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVVbmRvIiwoKT0+e3RoaXMuaW5kZXhTeW5jZXIuc2V0UGVyZm9ybVVuZG8oITApLHRoaXMuZW5naW5lLnVuZG8oKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlUmVkbyIsKCk9Pnt0aGlzLmlu'@; put 'ZGV4U3luY2VyLnNldFBlcmZvcm1SZWRvKCEwKSx0aGlzLmVuZ2luZS5yZWRvKCl9KSx0aGlzLmFkZEhvb2soImFmdGVyVW5kbyIsKCk9Pnt0aGlzLmluZGV4U3luY2VyLnNldFBlcmZvcm1VbmRvKCExKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJVbmRvIiwoKT0+e3RoaXMuaW5kZXhTeW5jZXIu'@; put 'c2V0UGVyZm9ybVJlZG8oITEpfSksdGhpcy5hZGRIb29rKCJhZnRlckRldGFjaENoaWxkIixmdW5jdGlvbigpe2Zvcih2YXIgZD1hcmd1bWVudHMubGVuZ3RoLGg9bmV3IEFycmF5KGQpLGY9MDtmPGQ7ZisrKWhbZl09YXJndW1lbnRzW2ZdO3JldHVybiBqbyhHbyxhLG9mdCkuY2FsbChhLC4u'@; put 'LmgpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVBdXRvZmlsbCIsZnVuY3Rpb24oKXtmb3IodmFyIGQ9YXJndW1lbnRzLmxlbmd0aCxoPW5ldyBBcnJheShkKSxmPTA7ZjxkO2YrKyloW2ZdPWFyZ3VtZW50c1tmXTtyZXR1cm4gam8oR28sYSwkMnQpLmNhbGwoYSwuLi5oKX0pLEU5KGFBLHRoaXMp'@; put 'LmZvckVhY2goZD0+e2xldFtoLGZdPWQ7cmV0dXJuIHRoaXMuZW5naW5lLm9uKGgsZil9KSxzdXBlci5lbmFibGVQbHVnaW4oKX19ZGlzYWJsZVBsdWdpbigpe0U5KGFBLHRoaXMpLmZvckVhY2gobD0+e2xldFthLGRdPWw7cmV0dXJuIHRoaXMuZW5naW5lLm9mZihhLGQpfSksSjVlKHRoaXMu'@; put 'ZW5naW5lLHRoaXMuaG90KSx0aGlzLmVuZ2luZT1udWxsLHN1cGVyLmRpc2FibGVQbHVnaW4oKX11cGRhdGVQbHVnaW4obCl7Y29uc3QgYT1mdW5jdGlvbiB3MnQoYyl7dmFyIGw7Y29uc3QgYT1jW3cxXTtyZXR1cm57Li4uWDVlKG51bGwhPWEmJm51bGwhPT0obD1hLmVuZ2luZSkmJnZvaWQg'@; put 'MCE9PWwmJmwuaHlwZXJmb3JtdWxhP2EuZW5naW5lOnt9KSwuLi5LNWUoYyl9fSh0aGlzLmhvdC5nZXRTZXR0aW5ncygpKTsoZnVuY3Rpb24gQzJ0KGMsbCl7cmV0dXJuIE9iamVjdC5rZXlzKGwpLnNvbWUoYT0+dm9pZCAwIT09bFthXSYmbFthXSE9PWNbYV0pfSkodGhpcy5lbmdpbmUuZ2V0'@; put 'Q29uZmlnKCksYSkmJnRoaXMuZW5naW5lLnVwZGF0ZUNvbmZpZyhhKTtjb25zdCBkPXRoaXMuaG90LmdldFNldHRpbmdzKClbdzFdO2lmKEhhKGQpJiZIYShkLnNoZWV0TmFtZSkmJmQuc2hlZXROYW1lIT09dGhpcy5zaGVldE5hbWUmJnRoaXMuc3dpdGNoU2hlZXQoZC5zaGVldE5hbWUpLCFs'@; put 'LmRhdGEmJm51bGw9PT10aGlzLnNoZWV0TmFtZSl7Y29uc3QgaD10aGlzLmhvdC5nZXRTZXR0aW5ncygpW3cxXS5zaGVldE5hbWU7aWYoaCYmdGhpcy5lbmdpbmUuZG9lc1NoZWV0RXhpc3QoaCkpdGhpcy5zd2l0Y2hTaGVldCh0aGlzLnNoZWV0TmFtZSk7ZWxzZXtjb25zdCBmPXRoaXMuYWRk'@; put 'U2hlZXQoaD8/dm9pZCAwLHRoaXMuaG90LmdldFNvdXJjZURhdGFBcnJheSgpKTtqbyhHbyx0aGlzLHNBKS5jYWxsKHRoaXMsZil9fXN1cGVyLnVwZGF0ZVBsdWdpbihsKX1kZXN0cm95KCl7RTkoYUEsdGhpcykuZm9yRWFjaChsPT57dmFyIGE7bGV0W2QsaF09bDtyZXR1cm4gbnVsbD09PShh'@; put 'PXRoaXMuZW5naW5lKXx8dm9pZCAwPT09YT92b2lkIDA6YS5vZmYoZCxoKX0pLGM2KGFBLHRoaXMsbnVsbCksSjVlKHRoaXMuZW5naW5lLHRoaXMuaG90KSx0aGlzLmVuZ2luZT1udWxsLHN1cGVyLmRlc3Ryb3koKX1hZGRTaGVldChsLGEpe2lmKEhhKGEpJiYhTDNlKGEpKXJldHVybiBZbygi'@; put 'VGhlIHByb3ZpZGVkIGRhdGEgc2hvdWxkIGJlIGFuIGFycmF5IG9mIGFycmF5cy4iKSwhMTtpZihudWxsIT1sJiZ0aGlzLmVuZ2luZS5kb2VzU2hlZXRFeGlzdChsKSlyZXR1cm4gWW8oIlNoZWV0IHdpdGggdGhlIHByb3ZpZGVkIG5hbWUgYWxyZWFkeSBleGlzdHMuIiksITE7dHJ5e2NvbnN0'@; put 'IGQ9dGhpcy5lbmdpbmUuYWRkU2hlZXQobD8/dm9pZCAwKTtyZXR1cm4gYSYmdGhpcy5lbmdpbmUuc2V0U2hlZXRDb250ZW50KHRoaXMuZW5naW5lLmdldFNoZWV0SWQoZCksYSksZH1jYXRjaChkKXtyZXR1cm4gWW8oZC5tZXNzYWdlKSwhMX19c3dpdGNoU2hlZXQobCl7aWYoIXRoaXMuZW5n'@; put 'aW5lLmRvZXNTaGVldEV4aXN0KGwpKXJldHVybiB2b2lkIEIkKGBUaGUgc2hlZXQgbmFtZWQgXGAke2x9XGAgZG9lcyBub3QgZXhpc3QsIHN3aXRjaCBhYm9ydGVkLmApO2pvKEdvLHRoaXMsc0EpLmNhbGwodGhpcyxsKTtjb25zdCBhPXRoaXMuZW5naW5lLmdldFNoZWV0U2VyaWFsaXplZCh0'@; put 'aGlzLnNoZWV0SWQpO2EubGVuZ3RoPjAmJnRoaXMuaG90LmxvYWREYXRhKGEsYCR7ZjEodzEpfS5zd2l0Y2hTaGVldGApfWdldENlbGxUeXBlKGwsYSl7bGV0IGQ9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnRoaXMuc2hlZXRJZDtjb25z'@; put 'dCBoPXRoaXMuaG90LnRvUGh5c2ljYWxSb3cobCksZj10aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKGEpO3JldHVybiBudWxsIT09aCYmbnVsbCE9PWY/dGhpcy5lbmdpbmUuZ2V0Q2VsbFR5cGUoe3NoZWV0OmQscm93OnRoaXMucm93QXhpc1N5bmNlci5nZXRIZkluZGV4RnJvbVZpc3VhbElu'@; put 'ZGV4KGwpLGNvbDp0aGlzLmNvbHVtbkF4aXNTeW5jZXIuZ2V0SGZJbmRleEZyb21WaXN1YWxJbmRleChhKX0pOiJFTVBUWSJ9aXNGb3JtdWxhQ2VsbFR5cGUobCxhKXtyZXR1cm4gdGhpcy5lbmdpbmUuZG9lc0NlbGxIYXZlRm9ybXVsYSh7c2hlZXQ6YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lk'@; put 'IDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnRoaXMuc2hlZXRJZCxyb3c6dGhpcy5yb3dBeGlzU3luY2VyLmdldEhmSW5kZXhGcm9tVmlzdWFsSW5kZXgobCksY29sOnRoaXMuY29sdW1uQXhpc1N5bmNlci5nZXRIZkluZGV4RnJvbVZpc3VhbEluZGV4KGEpfSl9cmVuZGVyRGVwZW5k'@; put 'ZW50U2hlZXRzKGwpe2xldCBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV07Y29uc3QgZD1uZXcgU2V0O2wuZm9yRWFjaChoPT57dmFyIGY7Y29uc3Qgdj1udWxsPT1ofHxudWxsPT09KGY9aC5hZGRyZXNzKXx8dm9pZCAwPT09Zj92b2lk'@; put 'IDA6Zi5zaGVldDt2b2lkIDAhPT12JiYoZC5oYXModil8fGQuYWRkKHYpKX0pLHE1ZSh0aGlzLmVuZ2luZSkuZm9yRWFjaCgoaCxmKT0+e3ZhciB2OyhhfHxmIT09dGhpcy5zaGVldElkKSYmZC5oYXMoZikmJihoLnJlbmRlcigpLG51bGw9PT0odj1oLnZpZXcpfHx2b2lkIDA9PT12fHx2LmFk'@; put 'anVzdEVsZW1lbnRzU2l6ZSgpKX0pfXZhbGlkYXRlRGVwZW5kZW50Q2VsbHMobCl7Y29uc3QgZD1mPT57dmFyIHY7Y29uc3R7cm93Ok0sY29sOkksc2hlZXQ6R309bnVsbCE9PSh2PWY/LmFkZHJlc3MpJiZ2b2lkIDAhPT12P3Y6e307cmV0dXJuIEhhKEcpP2Ake0d9OiR7TX14JHtJfWA6IiJ9'@; put 'LGg9bmV3IFNldCgoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOltdKS5tYXAoZj0+ZChmKSkpO2wuZm9yRWFjaChmPT57dmFyIHYsTTtjb25zdHtyb3c6SSxjb2w6R309bnVsbCE9PSh2PWYuYWRkcmVzcykmJnZvaWQgMCE9PXY/djp7fTtp'@; put 'ZighMT09PUhhKEkpfHwhMT09PUhhKEcpfHxJPj10aGlzLmhvdC5jb3VudFJvd3MoKXx8Rz49dGhpcy5ob3QuY291bnRDb2xzKCkpcmV0dXJuO2NvbnN0IHJlPW51bGw9PWZ8fG51bGw9PT0oTT1mLmFkZHJlc3MpfHx2b2lkIDA9PT1NP3ZvaWQgMDpNLnNoZWV0LHVlPWQoZik7aWYodm9pZCAw'@; put 'IT09cmUmJiFoLmhhcyh1ZSkpe2NvbnN0IHllPXE1ZSh0aGlzLmVuZ2luZSkuZ2V0KHJlKTtpZigheWUpcmV0dXJuO3llLnZhbGlkYXRlQ2VsbCh5ZS5nZXREYXRhQXRDZWxsKEksRykseWUuZ2V0Q2VsbE1ldGEoSSxHKSwoKT0+e30pfX0pfXN5bmNDaGFuZ2VXaXRoRW5naW5lKGwsYSxkKXtj'@; put 'b25zdCBoPXtyb3c6dGhpcy5yb3dBeGlzU3luY2VyLmdldEhmSW5kZXhGcm9tVmlzdWFsSW5kZXgobCksY29sOnRoaXMuY29sdW1uQXhpc1N5bmNlci5nZXRIZkluZGV4RnJvbVZpc3VhbEluZGV4KGEpLHNoZWV0OnRoaXMuc2hlZXRJZH07aWYoIXRoaXMuZW5naW5lLmlzSXRQb3NzaWJsZVRv'@; put 'U2V0Q2VsbENvbnRlbnRzKGgpKXJldHVybiB2b2lkIFlvKGBOb3QgcG9zc2libGUgdG8gc2V0IGNlbGwgZGF0YSBhdCAke0pTT04uc3RyaW5naWZ5KGgpfWApO2NvbnN0IGY9dGhpcy5ob3QuZ2V0Q2VsbE1ldGEobCxhKTtyZXR1cm4gSVEoZCxmLnR5cGUpJiYoZW1lKGQsZi5kYXRlRm9ybWF0'@; put 'KT9kPXRtZShkLGYuZGF0ZUZvcm1hdCk6ITE9PT1mdW5jdGlvbiBJMnQoYyl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBjJiZjLnN0YXJ0c1dpdGgoIj0iKX0oZCkmJihkPWAnJHtkfWApKSx0aGlzLmVuZ2luZS5zZXRDZWxsQ29udGVudHMoaCxkKX19ZnVuY3Rpb24gc0EoYyl7dGhpcy5zaGVl'@; put 'dE5hbWU9Yyx0aGlzLnNoZWV0SWQ9dGhpcy5lbmdpbmUuZ2V0U2hlZXRJZCh0aGlzLnNoZWV0TmFtZSl9ZnVuY3Rpb24gRzJ0KGMsbCxhKXtjb25zdCBkPXRoaXMuaG90LnByb3BUb0NvbChhKTtpZih0aGlzLmlzRm9ybXVsYUNlbGxUeXBlKGwsZCkpe2NvbnN0IGg9e3Jvdzp0aGlzLnJvd0F4'@; put 'aXNTeW5jZXIuZ2V0SGZJbmRleEZyb21WaXN1YWxJbmRleChsKSxjb2w6dGhpcy5jb2x1bW5BeGlzU3luY2VyLmdldEhmSW5kZXhGcm9tVmlzdWFsSW5kZXgoZCksc2hlZXQ6dGhpcy5zaGVldElkfSxmPXRoaXMuaG90LmdldENlbGxNZXRhKGwsZCk7bGV0IHY9dGhpcy5lbmdpbmUuZ2V0Q2Vs'@; put 'bFZhbHVlKGgpO3JldHVybiJkYXRlIj09PWYudHlwZSYmZzEodikmJih2PW5tZSh2LGYuZGF0ZUZvcm1hdCkpLCJvYmplY3QiPT10eXBlb2YgdiYmbnVsbCE9PXY/di52YWx1ZTp2fXJldHVybiBjfWZ1bmN0aW9uICQydChjLGwsYSl7Y29uc3R7cm93OmQsY29sOmh9PWwuZ2V0VG9wU3RhcnRD'@; put 'b3JuZXIoKSx7cm93OmYsY29sOnZ9PWwuZ2V0Qm90dG9tRW5kQ29ybmVyKCkse3JvdzpNLGNvbDpJfT1hLmdldFRvcFN0YXJ0Q29ybmVyKCkse3JvdzpHLGNvbDpyZX09YS5nZXRCb3R0b21FbmRDb3JuZXIoKSx1ZT17c3RhcnQ6e3Jvdzp0aGlzLnJvd0F4aXNTeW5jZXIuZ2V0SGZJbmRleEZy'@; put 'b21WaXN1YWxJbmRleChkKSxjb2w6dGhpcy5jb2x1bW5BeGlzU3luY2VyLmdldEhmSW5kZXhGcm9tVmlzdWFsSW5kZXgoaCksc2hlZXQ6dGhpcy5zaGVldElkfSxlbmQ6e3Jvdzp0aGlzLnJvd0F4aXNTeW5jZXIuZ2V0SGZJbmRleEZyb21WaXN1YWxJbmRleChmKSxjb2w6dGhpcy5jb2x1bW5B'@; put 'eGlzU3luY2VyLmdldEhmSW5kZXhGcm9tVmlzdWFsSW5kZXgodiksc2hlZXQ6dGhpcy5zaGVldElkfX0seWU9e3N0YXJ0Ontyb3c6dGhpcy5yb3dBeGlzU3luY2VyLmdldEhmSW5kZXhGcm9tVmlzdWFsSW5kZXgoTSksY29sOnRoaXMuY29sdW1uQXhpc1N5bmNlci5nZXRIZkluZGV4RnJvbVZp'@; put 'c3VhbEluZGV4KEkpLHNoZWV0OnRoaXMuc2hlZXRJZH0sZW5kOntyb3c6dGhpcy5yb3dBeGlzU3luY2VyLmdldEhmSW5kZXhGcm9tVmlzdWFsSW5kZXgoRyksY29sOnRoaXMuY29sdW1uQXhpc1N5bmNlci5nZXRIZkluZGV4RnJvbVZpc3VhbEluZGV4KHJlKSxzaGVldDp0aGlzLnNoZWV0SWR9'@; put 'fTtpZighMT09PXRoaXMuZW5naW5lLmlzSXRQb3NzaWJsZVRvU2V0Q2VsbENvbnRlbnRzKHllKSlyZXR1cm4hMTtjb25zdCBFZT10aGlzLmVuZ2luZS5nZXRGaWxsUmFuZ2VEYXRhKHVlLHllKSx7cm93OkJlLGNvbDpHZX09dWUuc3RhcnQse3JvdzpzdCxjb2w6cHR9PXVlLmVuZCxkdD1zdC1C'@; put 'ZSsxLHF0PXB0LUdlKzE7Zm9yKGxldCBtbj0wO21uPEVlLmxlbmd0aDttbis9MSlmb3IobGV0IHduPTA7d248RWVbbW5dLmxlbmd0aDt3bis9MSl7Y29uc3QgaG49RWVbbW5dW3duXSxNbj1CZSttbiVkdCxNcj1HZSt3biVxdCxrcj10aGlzLmhvdC5nZXRDZWxsTWV0YShNbixNcik7SVEoaG4s'@; put 'a3IudHlwZSkmJihobi5zdGFydHNXaXRoKCInIik/RWVbbW5dW3duXT1obi5zbGljZSgxKTohMT09PXRoaXMuaXNGb3JtdWxhQ2VsbFR5cGUoTW4sTXIsdGhpcy5zaGVldElkKSYmKEVlW21uXVt3bl09UjJ0KGhuLGtyLmRhdGVGb3JtYXQpKSl9cmV0dXJuIEVlfWZ1bmN0aW9uIG9tZShjLGwp'@; put 'eyhhcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06IiIpLmluY2x1ZGVzKGYxKHcxKSl8fGM2KGNILHRoaXMsYmModGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5kYXRhKSl9ZnVuY3Rpb24gSzJ0KCl7aWYoRTkoY0gsdGhpcykpcmV0dXJuIHZvaWQg'@; put 'dGhpcy5zd2l0Y2hTaGVldCh0aGlzLnNoZWV0TmFtZSk7Y29uc3QgYz10aGlzLmhvdC5nZXRTb3VyY2VEYXRhQXJyYXkoKTtjLmZvckVhY2goKGEsZCk9PnthLmZvckVhY2goKGgsZik9Pntjb25zdCB2PXRoaXMuaG90LmdldENlbGxNZXRhKGQsZix7c2tpcE1ldGFFeHRlbnNpb246ITB9KSxN'@; put 'PXYuZGF0ZUZvcm1hdDtJUShoLHYudHlwZSkmJihlbWUoaCxNKT9jW2RdW2ZdPXRtZShoLE0pOmguc3RhcnRzV2l0aCgiPSIpfHwoY1tkXVtmXT1gJyR7aH1gKSl9KX0pLGM2KEhnLHRoaXMsITApO2NvbnN0IGw9dGhpcy5lbmdpbmUuc2V0U2hlZXRDb250ZW50KHRoaXMuc2hlZXRJZCxjKTt0'@; put 'aGlzLmluZGV4U3luY2VyLnNldHVwU3luY0VuZHBvaW50KHRoaXMuZW5naW5lLHRoaXMuc2hlZXRJZCksdGhpcy5yZW5kZXJEZXBlbmRlbnRTaGVldHMobCksYzYoSGcsdGhpcywhMSl9ZnVuY3Rpb24gbG1lKGMsbCl7bGV0IGE9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVu'@; put 'dHNbMl0/YXJndW1lbnRzWzJdOiIiO2lmKGEuaW5jbHVkZXMoZjEodzEpKSlyZXR1cm47Y29uc3QgZD1mdW5jdGlvbiBBMnQoYyxsKXtyZXR1cm4oYmMobCl8fCFjLmRvZXNTaGVldEV4aXN0KGwpKSYmKGw9Yy5hZGRTaGVldChsKSksbH0odGhpcy5lbmdpbmUsdGhpcy5ob3QuZ2V0U2V0dGlu'@; put 'Z3MoKVt3MV0uc2hlZXROYW1lKTtpZihqbyhHbyx0aGlzLHNBKS5jYWxsKHRoaXMsZCksInVwZGF0ZVNldHRpbmdzIiE9PWEpaWYoRTkoY0gsdGhpcykpdGhpcy5zd2l0Y2hTaGVldCh0aGlzLnNoZWV0TmFtZSk7ZWxzZXtjb25zdCBoPXRoaXMuaG90LmdldFNvdXJjZURhdGFBcnJheSgpO2lm'@; put 'KHRoaXMuZW5naW5lLmlzSXRQb3NzaWJsZVRvUmVwbGFjZVNoZWV0Q29udGVudCh0aGlzLnNoZWV0SWQsaCkpe2M2KEhnLHRoaXMsITApO2NvbnN0IGY9dGhpcy5lbmdpbmUuc2V0U2hlZXRDb250ZW50KHRoaXMuc2hlZXRJZCxoKTt0aGlzLmluZGV4U3luY2VyLnNldHVwU3luY0VuZHBvaW50'@; put 'KHRoaXMuZW5naW5lLHRoaXMuc2hlZXRJZCksdGhpcy5yZW5kZXJEZXBlbmRlbnRTaGVldHMoZiksYzYoSGcsdGhpcywhMSl9fX1mdW5jdGlvbiBYMnQoYyxsLGEsZCl7aWYoImdldCIhPT1kfHxFOShIZyx0aGlzKXx8bnVsbD09PXRoaXMuc2hlZXROYW1lfHwhdGhpcy5lbmdpbmUuZG9lc1No'@; put 'ZWV0RXhpc3QodGhpcy5zaGVldE5hbWUpfHxudWxsPT09Y3x8bnVsbD09PWwpcmV0dXJuO2NvbnN0IGg9dGhpcy5nZXRDZWxsVHlwZShjLGwpO2lmKCJWQUxVRSI9PT1ofHwiRU1QVFkiPT09aClyZXR1cm4gdm9pZChhLnZhbHVlPWZ1bmN0aW9uIEQydChjKXtyZXR1cm4gZnVuY3Rpb24gazJ0'@; put 'KGMpe3JldHVybiJzdHJpbmciPT10eXBlb2YgYyYmIiciPT09Yy5jaGFyQXQoMCkmJiI9Ij09PWMuY2hhckF0KDEpfShjKT9jLnN1YnN0cigxKTpjfShhLnZhbHVlKSk7Y29uc3QgZj17cm93OnRoaXMucm93QXhpc1N5bmNlci5nZXRIZkluZGV4RnJvbVZpc3VhbEluZGV4KGMpLGNvbDp0aGlz'@; put 'LmNvbHVtbkF4aXNTeW5jZXIuZ2V0SGZJbmRleEZyb21WaXN1YWxJbmRleChsKSxzaGVldDp0aGlzLnNoZWV0SWR9O2xldCB2PXRoaXMuZW5naW5lLmdldENlbGxWYWx1ZShmKTtjb25zdCBNPXRoaXMuaG90LmdldENlbGxNZXRhKGMsbCx7c2tpcE1ldGFFeHRlbnNpb246ITB9KTsiZGF0ZSI9'@; put 'PT1NLnR5cGUmJmcxKHYpJiYodj1ubWUodixNLmRhdGVGb3JtYXQpKSxhLnZhbHVlPSJvYmplY3QiPT10eXBlb2YgdiYmbnVsbCE9PXY/di52YWx1ZTp2fWZ1bmN0aW9uIHEydChjLGwsYSxkKXtpZigiZ2V0IiE9PWR8fEU5KEhnLHRoaXMpfHxudWxsPT09dGhpcy5zaGVldE5hbWV8fCF0aGlz'@; put 'LmVuZ2luZS5kb2VzU2hlZXRFeGlzdCh0aGlzLnNoZWV0TmFtZSkpcmV0dXJuO2NvbnN0IGg9dGhpcy5ob3QudG9WaXN1YWxSb3coYyksZj10aGlzLmhvdC5wcm9wVG9Db2wobCk7aWYobnVsbD09PWh8fG51bGw9PT1mKXJldHVybjtjb25zdCB2PXRoaXMuZ2V0Q2VsbFR5cGUoaCxmKTtpZigi'@; put 'VkFMVUUiPT09dnx8IkVNUFRZIj09PXYpcmV0dXJuO2NvbnN0IE09dGhpcy5lbmdpbmUuZ2V0U2hlZXREaW1lbnNpb25zKHRoaXMuZW5naW5lLmdldFNoZWV0SWQodGhpcy5zaGVldE5hbWUpKTtpZigwPT09TS53aWR0aCYmMD09PU0uaGVpZ2h0KXJldHVybjtjb25zdCBJPXtyb3c6dGhpcy5y'@; put 'b3dBeGlzU3luY2VyLmdldEhmSW5kZXhGcm9tVmlzdWFsSW5kZXgoaCksY29sOnRoaXMuY29sdW1uQXhpc1N5bmNlci5nZXRIZkluZGV4RnJvbVZpc3VhbEluZGV4KGYpLHNoZWV0OnRoaXMuc2hlZXRJZH07YS52YWx1ZT10aGlzLmVuZ2luZS5nZXRDZWxsU2VyaWFsaXplZChJKX1mdW5jdGlv'@; put 'biBjbWUoYyxsKXtpZih1dyhsKSlyZXR1cm47Y29uc3QgYT1bXSxkPVtdLGg9dGhpcy5lbmdpbmUuYmF0Y2goKCk9PntjLmZvckVhY2goZj0+e2xldFt2LE0sLEldPWY7Y29uc3QgRz10aGlzLmhvdC5wcm9wVG9Db2woTSkscmU9dGhpcy5ob3QudG9QaHlzaWNhbFJvdyh2KSx1ZT10aGlzLmhv'@; put 'dC50b1BoeXNpY2FsQ29sdW1uKEcpLHllPXtyb3c6dGhpcy5yb3dBeGlzU3luY2VyLmdldEhmSW5kZXhGcm9tVmlzdWFsSW5kZXgodiksY29sOnRoaXMuY29sdW1uQXhpc1N5bmNlci5nZXRIZkluZGV4RnJvbVZpc3VhbEluZGV4KEcpLHNoZWV0OnRoaXMuc2hlZXRJZH07bnVsbCE9PXJlJiZu'@; put 'dWxsIT09dWU/dGhpcy5zeW5jQ2hhbmdlV2l0aEVuZ2luZSh2LEcsSSk6YS5wdXNoKFt2LEcsSV0pLGQucHVzaCh7YWRkcmVzczp5ZX0pfSl9KTthLmxlbmd0aCYmdGhpcy5ob3QuYWRkSG9va09uY2UoImFmdGVyQ2hhbmdlIiwoKT0+e2NvbnN0IGY9dGhpcy5lbmdpbmUuYmF0Y2goKCk9Pnth'@; put 'LmZvckVhY2godj0+e2xldFtNLEksR109djt0aGlzLnN5bmNDaGFuZ2VXaXRoRW5naW5lKE0sSSxHKX0pfSk7dGhpcy5yZW5kZXJEZXBlbmRlbnRTaGVldHMoZiwhMCl9KSx0aGlzLnJlbmRlckRlcGVuZGVudFNoZWV0cyhoKSx0aGlzLnZhbGlkYXRlRGVwZW5kZW50Q2VsbHMoaCxkKX1mdW5j'@; put 'dGlvbiBKMnQoYyxsKXtpZih1dyhsKSlyZXR1cm47Y29uc3QgYT1bXSxkPVtdO2MuZm9yRWFjaChoPT57bGV0W2YsdiwsTV09aDtjb25zdCBJPXRoaXMuaG90LnByb3BUb0NvbCh2KTtpZighZzEoSSkpcmV0dXJuO2NvbnN0IEc9e3Jvdzp0aGlzLnJvd0F4aXNTeW5jZXIuZ2V0SGZJbmRleEZy'@; put 'b21WaXN1YWxJbmRleChmKSxjb2w6dGhpcy5jb2x1bW5BeGlzU3luY2VyLmdldEhmSW5kZXhGcm9tVmlzdWFsSW5kZXgoSSksc2hlZXQ6dGhpcy5zaGVldElkfTt0aGlzLmVuZ2luZS5pc0l0UG9zc2libGVUb1NldENlbGxDb250ZW50cyhHKT8oZC5wdXNoKHthZGRyZXNzOkd9KSxhLnB1c2go'@; put 'Li4udGhpcy5lbmdpbmUuc2V0Q2VsbENvbnRlbnRzKEcsTSkpKTpZbyhgTm90IHBvc3NpYmxlIHRvIHNldCBzb3VyY2UgY2VsbCBkYXRhIGF0ICR7SlNPTi5zdHJpbmdpZnkoRyl9YCl9KSx0aGlzLnJlbmRlckRlcGVuZGVudFNoZWV0cyhhKSx0aGlzLnZhbGlkYXRlRGVwZW5kZW50Q2VsbHMo'@; put 'YSxkKX1mdW5jdGlvbiBRMnQoYyxsKXtsZXQgYT10aGlzLnJvd0F4aXNTeW5jZXIuZ2V0SGZJbmRleEZyb21WaXN1YWxJbmRleChjKTtpZihjPj10aGlzLmhvdC5jb3VudFJvd3MoKSYmKGE9YyksbnVsbD09PXRoaXMuc2hlZXRJZHx8IXRoaXMuZW5naW5lLmRvZXNTaGVldEV4aXN0KHRoaXMu'@; put 'c2hlZXROYW1lKXx8IXRoaXMuZW5naW5lLmlzSXRQb3NzaWJsZVRvQWRkUm93cyh0aGlzLnNoZWV0SWQsW2EsbF0pKXJldHVybiExfWZ1bmN0aW9uIGVmdChjLGwpe2xldCBhPXRoaXMuY29sdW1uQXhpc1N5bmNlci5nZXRIZkluZGV4RnJvbVZpc3VhbEluZGV4KGMpO2lmKGM+PXRoaXMuaG90'@; put 'LmNvdW50Q29scygpJiYoYT1jKSxudWxsPT09dGhpcy5zaGVldElkfHwhdGhpcy5lbmdpbmUuZG9lc1NoZWV0RXhpc3QodGhpcy5zaGVldE5hbWUpfHwhdGhpcy5lbmdpbmUuaXNJdFBvc3NpYmxlVG9BZGRDb2x1bW5zKHRoaXMuc2hlZXRJZCxbYSxsXSkpcmV0dXJuITF9ZnVuY3Rpb24gdGZ0'@; put 'KGMsbCxhKXtyZXR1cm4hMSE9PXRoaXMucm93QXhpc1N5bmNlci5zZXRSZW1vdmVkSGZJbmRleGVzKGEpLmV2ZXJ5KGY9PnRoaXMuZW5naW5lLmlzSXRQb3NzaWJsZVRvUmVtb3ZlUm93cyh0aGlzLnNoZWV0SWQsW2YsMV0pKSYmdm9pZCAwfWZ1bmN0aW9uIG5mdChjLGwsYSl7cmV0dXJuITEh'@; put 'PT10aGlzLmNvbHVtbkF4aXNTeW5jZXIuc2V0UmVtb3ZlZEhmSW5kZXhlcyhhKS5ldmVyeShmPT50aGlzLmVuZ2luZS5pc0l0UG9zc2libGVUb1JlbW92ZUNvbHVtbnModGhpcy5zaGVldElkLFtmLDFdKSkmJnZvaWQgMH1mdW5jdGlvbiByZnQoYyxsLGEpe2lmKHV3KGEpKXJldHVybjtjb25z'@; put 'dCBkPXRoaXMuZW5naW5lLmFkZFJvd3ModGhpcy5zaGVldElkLFt0aGlzLnJvd0F4aXNTeW5jZXIuZ2V0SGZJbmRleEZyb21WaXN1YWxJbmRleChjKSxsXSk7dGhpcy5yZW5kZXJEZXBlbmRlbnRTaGVldHMoZCl9ZnVuY3Rpb24gaWZ0KGMsbCxhKXtpZih1dyhhKSlyZXR1cm47Y29uc3QgZD10'@; put 'aGlzLmVuZ2luZS5hZGRDb2x1bW5zKHRoaXMuc2hlZXRJZCxbdGhpcy5jb2x1bW5BeGlzU3luY2VyLmdldEhmSW5kZXhGcm9tVmlzdWFsSW5kZXgoYyksbF0pO3RoaXMucmVuZGVyRGVwZW5kZW50U2hlZXRzKGQpfWZ1bmN0aW9uIGFmdChjLGwsYSxkKXtpZih1dyhkKSlyZXR1cm47Y29uc3Qg'@; put 'aD10aGlzLnJvd0F4aXNTeW5jZXIuZ2V0UmVtb3ZlZEhmSW5kZXhlcygpLnNvcnQoKHYsTSk9Pk0tdiksZj10aGlzLmVuZ2luZS5iYXRjaCgoKT0+e2guZm9yRWFjaCh2PT57dGhpcy5lbmdpbmUucmVtb3ZlUm93cyh0aGlzLnNoZWV0SWQsW3YsMV0pfSl9KTt0aGlzLnJlbmRlckRlcGVuZGVu'@; put 'dFNoZWV0cyhmKX1mdW5jdGlvbiBzZnQoYyxsLGEsZCl7aWYodXcoZCkpcmV0dXJuO2NvbnN0IGg9dGhpcy5jb2x1bW5BeGlzU3luY2VyLmdldFJlbW92ZWRIZkluZGV4ZXMoKS5zb3J0KCh2LE0pPT5NLXYpLGY9dGhpcy5lbmdpbmUuYmF0Y2goKCk9PntoLmZvckVhY2godj0+e3RoaXMuZW5n'@; put 'aW5lLnJlbW92ZUNvbHVtbnModGhpcy5zaGVldElkLFt2LDFdKX0pfSk7dGhpcy5yZW5kZXJEZXBlbmRlbnRTaGVldHMoZil9ZnVuY3Rpb24gb2Z0KGMsbCxhKXt2YXIgZDtjNihIZyx0aGlzLCEwKTtjb25zdCBoPXRoaXMuaG90LmdldFNvdXJjZURhdGFBcnJheShhLDAsYSsoKG51bGw9PT0o'@; put 'ZD1sLl9fY2hpbGRyZW4pfHx2b2lkIDA9PT1kP3ZvaWQgMDpkLmxlbmd0aCl8fDApLHRoaXMuaG90LmNvdW50U291cmNlQ29scygpKTtjNihIZyx0aGlzLCExKSxoLmZvckVhY2goKGYsdik9PntmLmZvckVhY2goKE0sSSk9Pnt0aGlzLmVuZ2luZS5zZXRDZWxsQ29udGVudHMoe2NvbDpJLHJv'@; put 'dzphK3Ysc2hlZXQ6dGhpcy5zaGVldElkfSxbW01dXSl9KX0pfWZ1bmN0aW9uIGxmdChjKXt0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJGb3JtdWxhc1ZhbHVlc1VwZGF0ZSIsYyl9ZnVuY3Rpb24gY2Z0KGMsbCl7dGhpcy5ob3QucnVuSG9va3MoImFmdGVyTmFtZWRFeHByZXNzaW9uQWRkZWQi'@; put 'LGMsbCl9ZnVuY3Rpb24gdWZ0KGMsbCl7dGhpcy5ob3QucnVuSG9va3MoImFmdGVyTmFtZWRFeHByZXNzaW9uUmVtb3ZlZCIsYyxsKX1mdW5jdGlvbiBkZnQoYyl7dGhpcy5ob3QucnVuSG9va3MoImFmdGVyU2hlZXRBZGRlZCIsYyl9ZnVuY3Rpb24gaGZ0KGMsbCl7am8oR28sdGhpcyxzQSku'@; put 'Y2FsbCh0aGlzLGwpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlclNoZWV0UmVuYW1lZCIsYyxsKX1mdW5jdGlvbiBmZnQoYyxsKXt0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJTaGVldFJlbW92ZWQiLGMsbCl9ZnVuY3Rpb24gdW1lKGMsbCl7aWYobC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJv'@; put 'cigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX1mdW5jdGlvbiBUOShjLGwpe3JldHVybiBjLmdldCh1NihjLGwpKX1mdW5jdGlvbiBkbWUoYyxsLGEpe3JldHVybiBjLnNldCh1NihjLGwpLGEpLGF9ZnVuY3Rpb24gdTYo'@; put 'YyxsLGEpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBjP2M9PT1sOmMuaGFzKGwpKXJldHVybiBhcmd1bWVudHMubGVuZ3RoPDM/bDphO3Rocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgZWxlbWVudCBpcyBub3QgcHJlc2VudCBvbiB0aGlzIG9iamVjdCIpfU1hLmdldFNpbmdsZXRvbigpLnJl'@; put 'Z2lzdGVyKCJiZWZvcmVIaWRlQ29sdW1ucyIpLE1hLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckhpZGVDb2x1bW5zIiksTWEuZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImJlZm9yZVVuaGlkZUNvbHVtbnMiKSxNYS5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJVbmhpZGVD'@; put 'b2x1bW5zIik7Y29uc3QgaG1lPSJoaWRkZW5Db2x1bW5zIjt2YXIgV3A9bmV3IFdlYWtNYXAsQTk9bmV3IFdlYWtTZXQ7Y2xhc3MgYmZ0IGV4dGVuZHMgRm97Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGZ1bmN0aW9uIG1mdChjLGwpe3VtZShjLGwpLGwuYWRkKGMpfSh0aGlz'@; put 'LEE5KSxmdW5jdGlvbiB2ZnQoYyxsLGEpe3VtZShjLGwpLGwuc2V0KGMsYSl9KHRoaXMsV3AsbnVsbCl9c3RhdGljIGdldCBQTFVHSU5fS0VZKCl7cmV0dXJuIGhtZX1zdGF0aWMgZ2V0IFBMVUdJTl9QUklPUklUWSgpe3JldHVybiAzMTB9c3RhdGljIGdldCBERUZBVUxUX1NFVFRJTkdTKCl7'@; put 'cmV0dXJue2NvcHlQYXN0ZUVuYWJsZWQ6ITAsaW5kaWNhdG9yczohMSxjb2x1bW5zOltdfX1pc0VuYWJsZWQoKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbaG1lXX1lbmFibGVQbHVnaW4oKXt2YXIgbD10aGlzO3RoaXMuZW5hYmxlZHx8KGRtZShXcCx0aGlzLG5ldyB2UCksVDko'@; put 'V3AsdGhpcykuYWRkTG9jYWxIb29rKCJpbml0IiwoKT0+dTYoQTksdGhpcyx4ZnQpLmNhbGwodGhpcykpLHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLnJlZ2lzdGVyTWFwKHRoaXMucGx1Z2luTmFtZSxUOShXcCx0aGlzKSksdGhpcy5hZGRIb29rKCJhZnRlckNvbnRleHRNZW51RGVmYXVs'@; put 'dE9wdGlvbnMiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGgsZD1uZXcgQXJyYXkoYSksaD0wO2g8YTtoKyspZFtoXT1hcmd1bWVudHNbaF07cmV0dXJuIHU2KEE5LGwsTWZ0KS5jYWxsKGwsLi4uZCl9KSx0aGlzLmFkZEhvb2soImFmdGVyR2V0Q2VsbE1ldGEiLChhLGQs'@; put 'aCk9PnU2KEE5LHRoaXMsd2Z0KS5jYWxsKHRoaXMsYSxkLGgpKSx0aGlzLmFkZEhvb2soIm1vZGlmeUNvbFdpZHRoIiwoYSxkKT0+dTYoQTksdGhpcyxfZnQpLmNhbGwodGhpcyxhLGQpLDIpLHRoaXMuYWRkSG9vaygiYWZ0ZXJHZXRDb2xIZWFkZXIiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhPWFy'@; put 'Z3VtZW50cy5sZW5ndGgsZD1uZXcgQXJyYXkoYSksaD0wO2g8YTtoKyspZFtoXT1hcmd1bWVudHNbaF07cmV0dXJuIHU2KEE5LGwsU2Z0KS5jYWxsKGwsLi4uZCl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeUNvcHlhYmxlUmFuZ2UiLGE9PnU2KEE5LHRoaXMsQ2Z0KS5jYWxsKHRoaXMsYSkpLHN1'@; put 'cGVyLmVuYWJsZVBsdWdpbigpKX11cGRhdGVQbHVnaW4oKXt0aGlzLmRpc2FibGVQbHVnaW4oKSx0aGlzLmVuYWJsZVBsdWdpbigpLHN1cGVyLnVwZGF0ZVBsdWdpbigpfWRpc2FibGVQbHVnaW4oKXtzdXBlci5kaXNhYmxlUGx1Z2luKCksdGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIudW5y'@; put 'ZWdpc3Rlck1hcCh0aGlzLnBsdWdpbk5hbWUpLHRoaXMucmVzZXRDZWxsc01ldGEoKX1zaG93Q29sdW1ucyhsKXtjb25zdCBhPXRoaXMuZ2V0SGlkZGVuQ29sdW1ucygpLGQ9dGhpcy5pc1ZhbGlkQ29uZmlnKGwpO2xldCBoPWE7Y29uc3QgZj1UOShXcCx0aGlzKS5nZXRWYWx1ZXMoKS5zbGlj'@; put 'ZSgpLHY9bC5sZW5ndGg+MDtkJiZ2JiYoS24obC5tYXAoRz0+dGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihHKSksRz0+e2ZbR109ITF9KSxoPUd1KGYsKEcscmUsdWUpPT4ocmUmJkcucHVzaCh0aGlzLmhvdC50b1Zpc3VhbENvbHVtbih1ZSkpLEcpLFtdKSksITEhPT10aGlzLmhvdC5ydW5I'@; put 'b29rcygiYmVmb3JlVW5oaWRlQ29sdW1ucyIsYSxoLGQmJnYpJiYoZCYmdiYmVDkoV3AsdGhpcykuc2V0VmFsdWVzKGYpLHRoaXMuaG90LnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyVW5oaWRlQ29sdW1ucyIsYSxoLGQmJnYsZCYmaC5sZW5ndGg8'@; put 'YS5sZW5ndGgpKX1zaG93Q29sdW1uKCl7Zm9yKHZhciBsPWFyZ3VtZW50cy5sZW5ndGgsYT1uZXcgQXJyYXkobCksZD0wO2Q8bDtkKyspYVtkXT1hcmd1bWVudHNbZF07dGhpcy5zaG93Q29sdW1ucyhhKX1oaWRlQ29sdW1ucyhsKXtjb25zdCBhPXRoaXMuZ2V0SGlkZGVuQ29sdW1ucygpLGQ9'@; put 'dGhpcy5pc1ZhbGlkQ29uZmlnKGwpO2xldCBoPWE7ZCYmKGg9QXJyYXkuZnJvbShuZXcgU2V0KGEuY29uY2F0KGwpKSkpLCExIT09dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUhpZGVDb2x1bW5zIixhLGgsZCkmJihkJiZ0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbigoKT0+e0tuKGwsdj0+e1Q5'@; put 'KFdwLHRoaXMpLnNldFZhbHVlQXRJbmRleCh0aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKHYpLCEwKX0pfSwhMCksdGhpcy5ob3QucnVuSG9va3MoImFmdGVySGlkZUNvbHVtbnMiLGEsaCxkLGQmJmgubGVuZ3RoPmEubGVuZ3RoKSl9aGlkZUNvbHVtbigpe2Zvcih2YXIgbD1hcmd1bWVudHMu'@; put 'bGVuZ3RoLGE9bmV3IEFycmF5KGwpLGQ9MDtkPGw7ZCsrKWFbZF09YXJndW1lbnRzW2RdO3RoaXMuaGlkZUNvbHVtbnMoYSl9Z2V0SGlkZGVuQ29sdW1ucygpe3JldHVybiB5byhUOShXcCx0aGlzKS5nZXRIaWRkZW5JbmRleGVzKCksbD0+dGhpcy5ob3QudG9WaXN1YWxDb2x1bW4obCkpfWlz'@; put 'SGlkZGVuKGwpe3JldHVybiBUOShXcCx0aGlzKS5nZXRWYWx1ZUF0SW5kZXgodGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihsKSl8fCExfWlzVmFsaWRDb25maWcobCl7Y29uc3QgYT10aGlzLmhvdC5jb3VudENvbHMoKTtyZXR1cm4hIShBcnJheS5pc0FycmF5KGwpJiZsLmxlbmd0aD4wKSYm'@; put 'bC5ldmVyeShkPT5OdW1iZXIuaXNJbnRlZ2VyKGQpJiZkPj0wJiZkPGEpfXJlc2V0Q2VsbHNNZXRhKCl7S24odGhpcy5ob3QuZ2V0Q2VsbHNNZXRhKCksbD0+e2wuc2tpcENvbHVtbk9uUGFzdGU9ITF9KX1kZXN0cm95KCl7ZG1lKFdwLHRoaXMsbnVsbCksc3VwZXIuZGVzdHJveSgpfX1mdW5j'@; put 'dGlvbiBfZnQoYyxsKXtyZXR1cm4gdGhpcy5pc0hpZGRlbihsKT8wOnRoaXMuZ2V0U2V0dGluZygiaW5kaWNhdG9ycyIpJiYodGhpcy5pc0hpZGRlbihsKzEpfHx0aGlzLmlzSGlkZGVuKGwtMSkpJiYibnVtYmVyIj09dHlwZW9mIGMmJnRoaXMuaG90Lmhhc0NvbEhlYWRlcnMoKT9jKzE1OnZv'@; put 'aWQgMH1mdW5jdGlvbiB3ZnQoYyxsLGEpe2lmKCExPT09dGhpcy5nZXRTZXR0aW5nKCJjb3B5UGFzdGVFbmFibGVkIikmJnRoaXMuaXNIaWRkZW4obCkmJihhLnNraXBDb2x1bW5PblBhc3RlPSEwKSx0aGlzLmlzSGlkZGVuKGwtMSkpYS5jbGFzc05hbWU9YS5jbGFzc05hbWV8fCIiLC0xPT09'@; put 'YS5jbGFzc05hbWUuaW5kZXhPZigiYWZ0ZXJIaWRkZW5Db2x1bW4iKSYmKGEuY2xhc3NOYW1lKz0iIGFmdGVySGlkZGVuQ29sdW1uIik7ZWxzZSBpZihhLmNsYXNzTmFtZSl7Y29uc3QgZD1hLmNsYXNzTmFtZS5zcGxpdCgiICIpO2lmKGQubGVuZ3RoPjApe2NvbnN0IGg9ZC5pbmRleE9mKCJh'@; put 'ZnRlckhpZGRlbkNvbHVtbiIpO2g+LTEmJmQuc3BsaWNlKGgsMSksYS5jbGFzc05hbWU9ZC5qb2luKCIgIil9fX1mdW5jdGlvbiBDZnQoYyl7aWYodGhpcy5nZXRTZXR0aW5nKCJjb3B5UGFzdGVFbmFibGVkIikpcmV0dXJuIGM7Y29uc3QgbD1bXSxhPShkLGgsZix2KT0+e2wucHVzaCh7c3Rh'@; put 'cnRSb3c6ZCxlbmRSb3c6aCxzdGFydENvbDpmLGVuZENvbDp2fSl9O3JldHVybiBLbihjLGQ9PntsZXQgaD0hMCxmPTA7S2EoZC5zdGFydENvbCxkLmVuZENvbCx2PT57dGhpcy5pc0hpZGRlbih2KT8oaHx8YShkLnN0YXJ0Um93LGQuZW5kUm93LGYsdi0xKSxoPSEwKTooaCYmKGY9diksdj09'@; put 'PWQuZW5kQ29sJiZhKGQuc3RhcnRSb3csZC5lbmRSb3csZix2KSxoPSExKX0pfSksbH1mdW5jdGlvbiBTZnQoYyxsKXtpZighdGhpcy5nZXRTZXR0aW5nKCJpbmRpY2F0b3JzIil8fGM8MClyZXR1cm47Y29uc3QgYT1bXTtjPj0xJiZ0aGlzLmlzSGlkZGVuKGMtMSkmJmEucHVzaCgiYWZ0ZXJI'@; put 'aWRkZW5Db2x1bW4iKSxjPHRoaXMuaG90LmNvdW50Q29scygpLTEmJnRoaXMuaXNIaWRkZW4oYysxKSYmYS5wdXNoKCJiZWZvcmVIaWRkZW5Db2x1bW4iKSxFaShsLGEpfWZ1bmN0aW9uIE1mdChjKXtjLml0ZW1zLnB1c2goe25hbWU6aW99LGZ1bmN0aW9uIHBmdChjKXtyZXR1cm57a2V5OiJo'@; put 'aWRkZW5fY29sdW1uc19oaWRlIixuYW1lKCl7Y29uc3QgbD10aGlzLmdldFNlbGVjdGVkTGFzdCgpO2xldCBhPTA7aWYoQXJyYXkuaXNBcnJheShsKSl7Y29uc3RbLGQsLGhdPWw7ZC1oIT0wJiYoYT0xKX1yZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKFJYLGEpfSxjYWxsYmFjaygp'@; put 'e2NvbnN0e2Zyb206bCx0bzphfT10aGlzLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksZD1NYXRoLm1heChNYXRoLm1pbihsLmNvbCxhLmNvbCksMCksaD1NYXRoLm1heChsLmNvbCxhLmNvbCksZj1bXTtmb3IobGV0IEk9ZDtJPD1oO0krPTEpZi5wdXNoKEkpO2MuaGlkZUNvbHVtbnMoZik7Y29u'@; put 'c3QgTT10aGlzLmNvbHVtbkluZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChmW2YubGVuZ3RoLTFdLDEsITApO051bWJlci5pc0ludGVnZXIoTSkmJk0+PTA/dGhpcy5zZWxlY3RDb2x1bW5zKE0pOnRoaXMuZGVzZWxlY3RDZWxsKCksdGhpcy5yZW5kZXIoKSx0aGlzLnZpZXcu'@; put 'YWRqdXN0RWxlbWVudHNTaXplKCl9LGRpc2FibGVkOiExLGhpZGRlbigpe3JldHVybiEodGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCl8fHRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5lcigpKX19fSh0aGlzKSxmdW5jdGlvbiBnZnQoYyl7Y29uc3QgbD1b'@; put 'XTtyZXR1cm57a2V5OiJoaWRkZW5fY29sdW1uc19zaG93IixuYW1lKCl7cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShMWCxsLmxlbmd0aD4xPzE6MCl9LGNhbGxiYWNrKCl7dmFyIGEsZDtpZigwPT09bC5sZW5ndGgpcmV0dXJuO2xldCBoPWxbMF0sZj1sW2wubGVuZ3RoLTFdO2g9'@; put 'bnVsbCE9PShhPXRoaXMuY29sdW1uSW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KGgtMSwtMSkpJiZ2b2lkIDAhPT1hP2E6MCxmPW51bGwhPT0oZD10aGlzLmNvbHVtbkluZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChmKzEsMSkpJiZ2b2lkIDAhPT1kP2Q6'@; put 'dGhpcy5jb3VudENvbHMoKS0xLGMuc2hvd0NvbHVtbnMobCksdGhpcy5yZW5kZXIoKSx0aGlzLnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCksZi1oKzE9PT10aGlzLmNvdW50Q29scygpfHx0aGlzLnNlbGVjdENvbHVtbnMoaCxmKX0sZGlzYWJsZWQ6ITEsaGlkZGVuKCl7Y29uc3QgYT15byhj'@; put 'LmdldEhpZGRlbkNvbHVtbnMoKSx1ZT0+dGhpcy50b1BoeXNpY2FsQ29sdW1uKHVlKSk7aWYoIXRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigpJiYhdGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29ybmVyKCl8fGEubGVuZ3RoPDEpcmV0dXJuITA7bC5sZW5ndGg9'@; put 'MDtjb25zdCBkPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxoPWQuZ2V0VG9wU3RhcnRDb3JuZXIoKS5jb2wsZj1kLmdldEJvdHRvbUVuZENvcm5lcigpLmNvbCx2PXRoaXMuY29sdW1uSW5kZXhNYXBwZXIsTT12LmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoaCksST12LmdldFJl'@; put 'bmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoZiksRz12LmdldE5vdFRyaW1tZWRJbmRleGVzKCkscmU9W107aWYoaCE9PWYpe2lmKGYtaCsxPkktTSsxKXtjb25zdCBFZT1HLnNsaWNlKGgsZisxKTtyZS5wdXNoKC4uLkVlLmZpbHRlcihCZT0+YS5pbmNsdWRlcyhCZSkpKX19ZWxzZSBpZigwPT09'@; put 'TSYmTTxoKXJlLnB1c2goLi4uRy5zbGljZSgwLGgpKTtlbHNlIGlmKG51bGw9PT1NKXJlLnB1c2goLi4uRy5zbGljZSgwLHRoaXMuY291bnRDb2xzKCkpKTtlbHNle2NvbnN0IHVlPXRoaXMuY291bnRDb2xzKCktMTtJPT09di5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KHYuZ2V0TmVh'@; put 'cmVzdE5vdEhpZGRlbkluZGV4KHVlLC0xKSkmJnVlPmYmJnJlLnB1c2goLi4uRy5zbGljZShmKzEpKX1yZXR1cm4gS24ocmUsdWU9PntsLnB1c2godGhpcy50b1Zpc3VhbENvbHVtbih1ZSkpfSksMD09PWwubGVuZ3RofX19KHRoaXMpKX1mdW5jdGlvbiB4ZnQoKXtjb25zdCBjPXRoaXMuZ2V0'@; put 'U2V0dGluZygiY29sdW1ucyIpO0FycmF5LmlzQXJyYXkoYykmJnRoaXMuaGlkZUNvbHVtbnMoYyl9ZnVuY3Rpb24gZm1lKGMsbCl7aWYobC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBv'@; put 'YmplY3QiKX1mdW5jdGlvbiBrOShjLGwpe3JldHVybiBjLmdldChkNihjLGwpKX1mdW5jdGlvbiBwbWUoYyxsLGEpe3JldHVybiBjLnNldChkNihjLGwpLGEpLGF9ZnVuY3Rpb24gZDYoYyxsLGEpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBjP2M9PT1sOmMuaGFzKGwpKXJldHVybiBhcmd1bWVu'@; put 'dHMubGVuZ3RoPDM/bDphO3Rocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgZWxlbWVudCBpcyBub3QgcHJlc2VudCBvbiB0aGlzIG9iamVjdCIpfU1hLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJiZWZvcmVIaWRlUm93cyIpLE1hLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckhp'@; put 'ZGVSb3dzIiksTWEuZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImJlZm9yZVVuaGlkZVJvd3MiKSxNYS5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJVbmhpZGVSb3dzIik7Y29uc3QgZ21lPSJoaWRkZW5Sb3dzIjt2YXIgWXA9bmV3IFdlYWtNYXAsRDk9bmV3IFdlYWtTZXQ7Y2xhc3Mg'@; put 'SWZ0IGV4dGVuZHMgRm97Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGZ1bmN0aW9uIEFmdChjLGwpe2ZtZShjLGwpLGwuYWRkKGMpfSh0aGlzLEQ5KSxmdW5jdGlvbiBrZnQoYyxsLGEpe2ZtZShjLGwpLGwuc2V0KGMsYSl9KHRoaXMsWXAsbnVsbCl9c3RhdGljIGdldCBQTFVH'@; put 'SU5fS0VZKCl7cmV0dXJuIGdtZX1zdGF0aWMgZ2V0IFBMVUdJTl9QUklPUklUWSgpe3JldHVybiAzMjB9c3RhdGljIGdldCBERUZBVUxUX1NFVFRJTkdTKCl7cmV0dXJue2NvcHlQYXN0ZUVuYWJsZWQ6ITAsaW5kaWNhdG9yczohMSxyb3dzOltdfX1pc0VuYWJsZWQoKXtyZXR1cm4hIXRoaXMu'@; put 'aG90LmdldFNldHRpbmdzKClbZ21lXX1lbmFibGVQbHVnaW4oKXt2YXIgbD10aGlzO3RoaXMuZW5hYmxlZHx8KHBtZShZcCx0aGlzLG5ldyB2UCksazkoWXAsdGhpcykuYWRkTG9jYWxIb29rKCJpbml0IiwoKT0+ZDYoRDksdGhpcyxIZnQpLmNhbGwodGhpcykpLHRoaXMuaG90LnJvd0luZGV4'@; put 'TWFwcGVyLnJlZ2lzdGVyTWFwKHRoaXMucGx1Z2luTmFtZSxrOShZcCx0aGlzKSksdGhpcy5hZGRIb29rKCJhZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGgsZD1uZXcgQXJyYXkoYSksaD0wO2g8YTtoKyspZFtoXT1h'@; put 'cmd1bWVudHNbaF07cmV0dXJuIGQ2KEQ5LGwsRmZ0KS5jYWxsKGwsLi4uZCl9KSx0aGlzLmFkZEhvb2soImFmdGVyR2V0Q2VsbE1ldGEiLChhLGQsaCk9PmQ2KEQ5LHRoaXMsTGZ0KS5jYWxsKHRoaXMsYSxkLGgpKSx0aGlzLmFkZEhvb2soIm1vZGlmeVJvd0hlaWdodCIsKGEsZCk9PmQ2KEQ5'@; put 'LHRoaXMsUmZ0KS5jYWxsKHRoaXMsYSxkKSksdGhpcy5hZGRIb29rKCJhZnRlckdldFJvd0hlYWRlciIsZnVuY3Rpb24oKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxkPW5ldyBBcnJheShhKSxoPTA7aDxhO2grKylkW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gZDYoRDksbCxQZnQpLmNh'@; put 'bGwobCwuLi5kKX0pLHRoaXMuYWRkSG9vaygibW9kaWZ5Q29weWFibGVSYW5nZSIsYT0+ZDYoRDksdGhpcyxPZnQpLmNhbGwodGhpcyxhKSksc3VwZXIuZW5hYmxlUGx1Z2luKCkpfXVwZGF0ZVBsdWdpbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCksc3VwZXIu'@; put 'dXBkYXRlUGx1Z2luKCl9ZGlzYWJsZVBsdWdpbigpe3N1cGVyLmRpc2FibGVQbHVnaW4oKSx0aGlzLmhvdC5yb3dJbmRleE1hcHBlci51bnJlZ2lzdGVyTWFwKHRoaXMucGx1Z2luTmFtZSksdGhpcy5yZXNldENlbGxzTWV0YSgpfXNob3dSb3dzKGwpe2NvbnN0IGE9dGhpcy5nZXRIaWRkZW5S'@; put 'b3dzKCksZD10aGlzLmlzVmFsaWRDb25maWcobCk7bGV0IGg9YTtjb25zdCBmPWs5KFlwLHRoaXMpLmdldFZhbHVlcygpLnNsaWNlKCksdj1sLmxlbmd0aD4wO2QmJnYmJihLbihsLm1hcChHPT50aGlzLmhvdC50b1BoeXNpY2FsUm93KEcpKSxHPT57ZltHXT0hMX0pLGg9R3UoZiwoRyxyZSx1'@; put 'ZSk9PihyZSYmRy5wdXNoKHRoaXMuaG90LnRvVmlzdWFsUm93KHVlKSksRyksW10pKSwhMSE9PXRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVVbmhpZGVSb3dzIixhLGgsZCYmdikmJihkJiZ2JiZrOShZcCx0aGlzKS5zZXRWYWx1ZXMoZiksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyVW5oaWRl'@; put 'Um93cyIsYSxoLGQmJnYsZCYmaC5sZW5ndGg8YS5sZW5ndGgpKX1zaG93Um93KCl7Zm9yKHZhciBsPWFyZ3VtZW50cy5sZW5ndGgsYT1uZXcgQXJyYXkobCksZD0wO2Q8bDtkKyspYVtkXT1hcmd1bWVudHNbZF07dGhpcy5zaG93Um93cyhhKX1oaWRlUm93cyhsKXtjb25zdCBhPXRoaXMuZ2V0'@; put 'SGlkZGVuUm93cygpLGQ9dGhpcy5pc1ZhbGlkQ29uZmlnKGwpO2xldCBoPWE7ZCYmKGg9QXJyYXkuZnJvbShuZXcgU2V0KGEuY29uY2F0KGwpKSkpLCExIT09dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUhpZGVSb3dzIixhLGgsZCkmJihkJiZ0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbigoKT0+'@; put 'e0tuKGwsdj0+e2s5KFlwLHRoaXMpLnNldFZhbHVlQXRJbmRleCh0aGlzLmhvdC50b1BoeXNpY2FsUm93KHYpLCEwKX0pfSwhMCksdGhpcy5ob3QucnVuSG9va3MoImFmdGVySGlkZVJvd3MiLGEsaCxkLGQmJmgubGVuZ3RoPmEubGVuZ3RoKSl9aGlkZVJvdygpe2Zvcih2YXIgbD1hcmd1bWVu'@; put 'dHMubGVuZ3RoLGE9bmV3IEFycmF5KGwpLGQ9MDtkPGw7ZCsrKWFbZF09YXJndW1lbnRzW2RdO3RoaXMuaGlkZVJvd3MoYSl9Z2V0SGlkZGVuUm93cygpe3JldHVybiB5byhrOShZcCx0aGlzKS5nZXRIaWRkZW5JbmRleGVzKCksbD0+dGhpcy5ob3QudG9WaXN1YWxSb3cobCkpfWlzSGlkZGVu'@; put 'KGwpe3JldHVybiBrOShZcCx0aGlzKS5nZXRWYWx1ZUF0SW5kZXgodGhpcy5ob3QudG9QaHlzaWNhbFJvdyhsKSl8fCExfWlzVmFsaWRDb25maWcobCl7Y29uc3QgYT10aGlzLmhvdC5jb3VudFJvd3MoKTtyZXR1cm4hIShBcnJheS5pc0FycmF5KGwpJiZsLmxlbmd0aD4wKSYmbC5ldmVyeShk'@; put 'PT5OdW1iZXIuaXNJbnRlZ2VyKGQpJiZkPj0wJiZkPGEpfXJlc2V0Q2VsbHNNZXRhKCl7S24odGhpcy5ob3QuZ2V0Q2VsbHNNZXRhKCksbD0+e2wuc2tpcFJvd09uUGFzdGU9ITF9KX1kZXN0cm95KCl7cG1lKFlwLHRoaXMsbnVsbCksc3VwZXIuZGVzdHJveSgpfX1mdW5jdGlvbiBSZnQoYyxs'@; put 'KXtyZXR1cm4gdGhpcy5pc0hpZGRlbihsKT8wOmN9ZnVuY3Rpb24gTGZ0KGMsbCxhKXtpZighMT09PXRoaXMuZ2V0U2V0dGluZygiY29weVBhc3RlRW5hYmxlZCIpJiZ0aGlzLmlzSGlkZGVuKGMpJiYoYS5za2lwUm93T25QYXN0ZT0hMCksdGhpcy5pc0hpZGRlbihjLTEpKWEuY2xhc3NOYW1l'@; put 'PWEuY2xhc3NOYW1lfHwiIiwtMT09PWEuY2xhc3NOYW1lLmluZGV4T2YoImFmdGVySGlkZGVuUm93IikmJihhLmNsYXNzTmFtZSs9IiBhZnRlckhpZGRlblJvdyIpO2Vsc2UgaWYoYS5jbGFzc05hbWUpe2NvbnN0IGQ9YS5jbGFzc05hbWUuc3BsaXQoIiAiKTtpZihkLmxlbmd0aD4wKXtjb25z'@; put 'dCBoPWQuaW5kZXhPZigiYWZ0ZXJIaWRkZW5Sb3ciKTtoPi0xJiZkLnNwbGljZShoLDEpLGEuY2xhc3NOYW1lPWQuam9pbigiICIpfX19ZnVuY3Rpb24gT2Z0KGMpe2lmKHRoaXMuZ2V0U2V0dGluZygiY29weVBhc3RlRW5hYmxlZCIpKXJldHVybiBjO2NvbnN0IGw9W10sYT0oZCxoLGYsdik9'@; put 'PntsLnB1c2goe3N0YXJ0Um93OmQsZW5kUm93Omgsc3RhcnRDb2w6ZixlbmRDb2w6dn0pfTtyZXR1cm4gS24oYyxkPT57bGV0IGg9ITAsZj0wO0thKGQuc3RhcnRSb3csZC5lbmRSb3csdj0+e3RoaXMuaXNIaWRkZW4odik/KGh8fGEoZix2LTEsZC5zdGFydENvbCxkLmVuZENvbCksaD0hMCk6'@; put 'KGgmJihmPXYpLHY9PT1kLmVuZFJvdyYmYShmLHYsZC5zdGFydENvbCxkLmVuZENvbCksaD0hMSl9KX0pLGx9ZnVuY3Rpb24gUGZ0KGMsbCl7aWYoIXRoaXMuZ2V0U2V0dGluZygiaW5kaWNhdG9ycyIpfHxjPDApcmV0dXJuO2NvbnN0IGE9W107Yz49MSYmdGhpcy5pc0hpZGRlbihjLTEpJiZh'@; put 'LnB1c2goImFmdGVySGlkZGVuUm93IiksYzx0aGlzLmhvdC5jb3VudFJvd3MoKS0xJiZ0aGlzLmlzSGlkZGVuKGMrMSkmJmEucHVzaCgiYmVmb3JlSGlkZGVuUm93IiksRWkobCxhKX1mdW5jdGlvbiBGZnQoYyl7Yy5pdGVtcy5wdXNoKHtuYW1lOmlvfSxmdW5jdGlvbiBFZnQoYyl7cmV0dXJu'@; put 'e2tleToiaGlkZGVuX3Jvd3NfaGlkZSIsbmFtZSgpe2NvbnN0IGw9dGhpcy5nZXRTZWxlY3RlZExhc3QoKTtsZXQgYT0wO2lmKEFycmF5LmlzQXJyYXkobCkpe2NvbnN0W2QsLGhdPWw7ZC1oIT0wJiYoYT0xKX1yZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKE9YLGEpfSxjYWxsYmFj'@; put 'aygpe2NvbnN0e2Zyb206bCx0bzphfT10aGlzLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksZD1NYXRoLm1heChNYXRoLm1pbihsLnJvdyxhLnJvdyksMCksaD1NYXRoLm1heChsLnJvdyxhLnJvdyksZj1bXTtmb3IobGV0IEk9ZDtJPD1oO0krPTEpZi5wdXNoKEkpO2MuaGlkZVJvd3MoZik7Y29u'@; put 'c3QgTT10aGlzLnJvd0luZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChmW2YubGVuZ3RoLTFdLDEsITApO051bWJlci5pc0ludGVnZXIoTSkmJk0+PTA/dGhpcy5zZWxlY3RSb3dzKE0pOnRoaXMuZGVzZWxlY3RDZWxsKCksdGhpcy5yZW5kZXIoKSx0aGlzLnZpZXcuYWRqdXN0'@; put 'RWxlbWVudHNTaXplKCl9LGRpc2FibGVkOiExLGhpZGRlbigpe3JldHVybiEodGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCl8fHRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5lcigpKX19fSh0aGlzKSxmdW5jdGlvbiBUZnQoYyl7Y29uc3QgbD1bXTtyZXR1cm57'@; put 'a2V5OiJoaWRkZW5fcm93c19zaG93IixuYW1lKCl7cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShQWCxsLmxlbmd0aD4xPzE6MCl9LGNhbGxiYWNrKCl7dmFyIGEsZDtpZigwPT09bC5sZW5ndGgpcmV0dXJuO2xldCBoPWxbMF0sZj1sW2wubGVuZ3RoLTFdO2g9bnVsbCE9PShhPXRo'@; put 'aXMucm93SW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KGgtMSwtMSkpJiZ2b2lkIDAhPT1hP2E6MCxmPW51bGwhPT0oZD10aGlzLnJvd0luZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChmKzEsMSkpJiZ2b2lkIDAhPT1kP2Q6dGhpcy5jb3VudFJvd3MoKS0x'@; put 'LGMuc2hvd1Jvd3MobCksdGhpcy5yZW5kZXIoKSx0aGlzLnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCksZi1oKzE9PT10aGlzLmNvdW50Um93cygpfHx0aGlzLnNlbGVjdFJvd3MoaCxmKX0sZGlzYWJsZWQ6ITEsaGlkZGVuKCl7Y29uc3QgYT15byhjLmdldEhpZGRlblJvd3MoKSx1ZT0+dGhp'@; put 'cy50b1BoeXNpY2FsUm93KHVlKSk7aWYoIXRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigpJiYhdGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29ybmVyKCl8fGEubGVuZ3RoPDEpcmV0dXJuITA7bC5sZW5ndGg9MDtjb25zdCBkPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxh'@; put 'c3QoKSxoPWQuZ2V0VG9wU3RhcnRDb3JuZXIoKS5yb3csZj1kLmdldEJvdHRvbUVuZENvcm5lcigpLnJvdyx2PXRoaXMucm93SW5kZXhNYXBwZXIsTT12LmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoaCksST12LmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoZiksRz12LmdldE5v'@; put 'dFRyaW1tZWRJbmRleGVzKCkscmU9W107aWYoaCE9PWYpe2lmKGYtaCsxPkktTSsxKXtjb25zdCBFZT1HLnNsaWNlKGgsZisxKTtyZS5wdXNoKC4uLkVlLmZpbHRlcihCZT0+YS5pbmNsdWRlcyhCZSkpKX19ZWxzZSBpZigwPT09TSYmTTxoKXJlLnB1c2goLi4uRy5zbGljZSgwLGgpKTtlbHNl'@; put 'IGlmKG51bGw9PT1NKXJlLnB1c2goLi4uRy5zbGljZSgwLHRoaXMuY291bnRSb3dzKCkpKTtlbHNle2NvbnN0IHVlPXRoaXMuY291bnRSb3dzKCktMTtJPT09di5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KHYuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KHVlLC0xKSkmJnVlPmYmJnJl'@; put 'LnB1c2goLi4uRy5zbGljZShmKzEpKX1yZXR1cm4gS24ocmUsdWU9PntsLnB1c2godGhpcy50b1Zpc3VhbFJvdyh1ZSkpfSksMD09PWwubGVuZ3RofX19KHRoaXMpKX1mdW5jdGlvbiBIZnQoKXtjb25zdCBjPXRoaXMuZ2V0U2V0dGluZygicm93cyIpO0FycmF5LmlzQXJyYXkoYykmJnRoaXMu'@; put 'aGlkZVJvd3MoYyl9ZnVuY3Rpb24gbW1lKGMsbCl7aWYobC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX1mdW5jdGlvbiBqUShjLGwpe3JldHVybiBjLmdldCh1SChjLGwp'@; put 'KX1mdW5jdGlvbiB6UShjLGwsYSl7cmV0dXJuIGMuc2V0KHVIKGMsbCksYSksYX1mdW5jdGlvbiB1SChjLGwsYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGM/Yz09PWw6Yy5oYXMobCkpcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mz9sOmE7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBl'@; put 'bGVtZW50IGlzIG5vdCBwcmVzZW50IG9uIHRoaXMgb2JqZWN0Iil9TWEuZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImJlZm9yZUNvbHVtbkZyZWV6ZSIpLE1hLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckNvbHVtbkZyZWV6ZSIpLE1hLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJi'@; put 'ZWZvcmVDb2x1bW5VbmZyZWV6ZSIpLE1hLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckNvbHVtblVuZnJlZXplIik7Y29uc3Qgdm1lPSJtYW51YWxDb2x1bW5GcmVlemUiO3ZhciBJOT1uZXcgV2Vha01hcCxVUT1uZXcgV2Vha1NldDtjbGFzcyBVZnQgZXh0ZW5kcyBGb3tjb25zdHJ1'@; put 'Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksZnVuY3Rpb24gQmZ0KGMsbCl7bW1lKGMsbCksbC5hZGQoYyl9KHRoaXMsVVEpLGZ1bmN0aW9uIGpmdChjLGwsYSl7bW1lKGMsbCksbC5zZXQoYyxhKX0odGhpcyxJOSwhMSl9c3RhdGljIGdldCBQTFVHSU5fS0VZKCl7cmV0dXJuIHZtZX1zdGF0'@; put 'aWMgZ2V0IFBMVUdJTl9QUklPUklUWSgpe3JldHVybiAxMTB9aXNFbmFibGVkKCl7cmV0dXJuISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpW3ZtZV19ZW5hYmxlUGx1Z2luKCl7dGhpcy5lbmFibGVkfHwodGhpcy5hZGRIb29rKCJhZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMiLGw9PnVI'@; put 'KFVRLHRoaXMsWmZ0KS5jYWxsKHRoaXMsbCkpLHRoaXMuYWRkSG9vaygiYmVmb3JlQ29sdW1uTW92ZSIsKGwsYSk9PnVIKFVRLHRoaXMsV2Z0KS5jYWxsKHRoaXMsbCxhKSksc3VwZXIuZW5hYmxlUGx1Z2luKCkpfWRpc2FibGVQbHVnaW4oKXt6UShJOSx0aGlzLCExKSxzdXBlci5kaXNhYmxl'@; put 'UGx1Z2luKCl9dXBkYXRlUGx1Z2luKCl7dGhpcy5kaXNhYmxlUGx1Z2luKCksdGhpcy5lbmFibGVQbHVnaW4oKSxzdXBlci51cGRhdGVQbHVnaW4oKX1mcmVlemVDb2x1bW4obCl7Y29uc3QgYT10aGlzLmhvdC5nZXRTZXR0aW5ncygpLGQ9YS5maXhlZENvbHVtbnNTdGFydDx0aGlzLmhvdC5j'@; put 'b3VudENvbHMoKSYmbD5hLmZpeGVkQ29sdW1uc1N0YXJ0LTE7alEoSTksdGhpcyl8fHpRKEk5LHRoaXMsITApLCExIT09dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUNvbHVtbkZyZWV6ZSIsbCxkKSYmKGQmJih0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5tb3ZlSW5kZXhlcyhsLGEuZml4'@; put 'ZWRDb2x1bW5zU3RhcnQpLGEuX2ZpeGVkQ29sdW1uc1N0YXJ0Kz0xKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJDb2x1bW5GcmVlemUiLGwsZCkpfXVuZnJlZXplQ29sdW1uKGwpe2NvbnN0IGE9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKSxkPWEuZml4ZWRDb2x1bW5zU3RhcnQ+MCYmbDw9YS5m'@; put 'aXhlZENvbHVtbnNTdGFydC0xO2pRKEk5LHRoaXMpfHx6UShJOSx0aGlzLCEwKSwhMSE9PXRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVDb2x1bW5VbmZyZWV6ZSIsbCxkKSYmKGQmJihhLl9maXhlZENvbHVtbnNTdGFydC09MSx0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5tb3ZlSW5kZXhl'@; put 'cyhsLGEuZml4ZWRDb2x1bW5zU3RhcnQpKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJDb2x1bW5VbmZyZWV6ZSIsbCxkKSl9fWZ1bmN0aW9uIFpmdChjKXtjLml0ZW1zLnB1c2goe25hbWU6Ii0tLS0tLS0tLSJ9LGZ1bmN0aW9uIE5mdChjKXtyZXR1cm57a2V5OiJmcmVlemVfY29sdW1uIixu'@; put 'YW1lKCl7cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShsWCl9LGNhbGxiYWNrKGwsYSl7Y29uc3Rbe3N0YXJ0Ontjb2w6ZH19XT1hO2MuZnJlZXplQ29sdW1uKGQpLHRoaXMucmVuZGVyKCksdGhpcy52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSgpfSxoaWRkZW4oKXtjb25zdCBsPXRo'@; put 'aXMuZ2V0U2VsZWN0ZWRSYW5nZSgpO2xldCBhPSExO3JldHVybih2b2lkIDA9PT1sfHxsLmxlbmd0aD4xfHxsWzBdLmZyb20uY29sIT09bFswXS50by5jb2x8fGxbMF0uZnJvbS5jb2w8PXRoaXMuZ2V0U2V0dGluZ3MoKS5maXhlZENvbHVtbnNTdGFydC0xKSYmKGE9ITApLGF9fX0odGhpcyks'@; put 'ZnVuY3Rpb24gVmZ0KGMpe3JldHVybntrZXk6InVuZnJlZXplX2NvbHVtbiIsbmFtZSgpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoY1gpfSxjYWxsYmFjayhsLGEpe2NvbnN0W3tzdGFydDp7Y29sOmR9fV09YTtjLnVuZnJlZXplQ29sdW1uKGQpLHRoaXMucmVuZGVyKCksdGhp'@; put 'cy52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSgpfSxoaWRkZW4oKXtjb25zdCBsPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpO2xldCBhPSExO3JldHVybih2b2lkIDA9PT1sfHxsLmxlbmd0aD4xfHxsWzBdLmZyb20uY29sIT09bFswXS50by5jb2x8fGxbMF0uZnJvbS5jb2w+PXRoaXMuZ2V0U2V0'@; put 'dGluZ3MoKS5maXhlZENvbHVtbnNTdGFydCkmJihhPSEwKSxhfX19KHRoaXMpKX1mdW5jdGlvbiBXZnQoYyxsKXtpZihqUShJOSx0aGlzKSl7Y29uc3QgYT10aGlzLmhvdC5nZXRTZXR0aW5ncygpLmZpeGVkQ29sdW1uc1N0YXJ0O2lmKGw8YXx8Yy5zb21lKGQ9PmQ8YSkpcmV0dXJuITF9fWZ1'@; put 'bmN0aW9uIGRIKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBZZnQoYyl7dmFyIGw9ZnVuY3Rpb24gR2Z0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRl'@; put 'ZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4i'@; put 'c3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31jb25zdCBkdz0icHgiLF9tZT1jbGFzcyAkZnR7Y29uc3RydWN0b3IobCl7'@; put 'ZEgodGhpcywiaG90Iix2b2lkIDApLGRIKHRoaXMsIl9lbGVtZW50IixudWxsKSxkSCh0aGlzLCJzdGF0ZSIsMCksZEgodGhpcywiaW5saW5lUHJvcGVydHkiLHZvaWQgMCksdGhpcy5ob3Q9bCx0aGlzLmlubGluZVByb3BlcnR5PWwuaXNSdGwoKT8icmlnaHQiOiJsZWZ0In1hcHBlbmRUbyhs'@; put 'KXtsLmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnQpLHRoaXMuc3RhdGU9Mn1idWlsZCgpezA9PT10aGlzLnN0YXRlJiYodGhpcy5fZWxlbWVudD10aGlzLmhvdC5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5zdGF0ZT0xKX1kZXN0cm95KCl7dGhpcy5pc0FwcGVuZGVk'@; put 'KCkmJnRoaXMuX2VsZW1lbnQucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLl9lbGVtZW50KSx0aGlzLl9lbGVtZW50PW51bGwsdGhpcy5zdGF0ZT0wfWlzQXBwZW5kZWQoKXtyZXR1cm4gMj09PXRoaXMuc3RhdGV9aXNCdWlsdCgpe3JldHVybiB0aGlzLnN0YXRlPj0xfXNldFBvc2l0'@; put 'aW9uKGwsYSl7ZzEobCkmJih0aGlzLl9lbGVtZW50LnN0eWxlLnRvcD1sK2R3KSxnMShhKSYmKHRoaXMuX2VsZW1lbnQuc3R5bGVbdGhpcy5pbmxpbmVQcm9wZXJ0eV09YStkdyl9Z2V0UG9zaXRpb24oKXtjb25zdCBsPXRoaXMuX2VsZW1lbnQuc3R5bGU7cmV0dXJue3RvcDpsLnRvcD9wYXJz'@; put 'ZUludChsLnRvcCwxMCk6MCxzdGFydDpsW3RoaXMuaW5saW5lUHJvcGVydHldP3BhcnNlSW50KGxbdGhpcy5pbmxpbmVQcm9wZXJ0eV0sMTApOjB9fXNldFNpemUobCxhKXtnMShsKSYmKHRoaXMuX2VsZW1lbnQuc3R5bGUud2lkdGg9bCtkdyksZzEoYSkmJih0aGlzLl9lbGVtZW50LnN0eWxl'@; put 'LmhlaWdodD1hK2R3KX1nZXRTaXplKCl7cmV0dXJue3dpZHRoOnRoaXMuX2VsZW1lbnQuc3R5bGUud2lkdGg/cGFyc2VJbnQodGhpcy5fZWxlbWVudC5zdHlsZS53aWR0aCwxMCk6MCxoZWlnaHQ6dGhpcy5fZWxlbWVudC5zdHlsZS5oZWlnaHQ/cGFyc2VJbnQodGhpcy5fZWxlbWVudC5zdHls'@; put 'ZS5oZWlnaHQsMTApOjB9fXNldE9mZnNldChsLGEpe2cxKGwpJiYodGhpcy5fZWxlbWVudC5zdHlsZS5tYXJnaW5Ub3A9bCtkdyksZzEoYSkmJih0aGlzLl9lbGVtZW50LnN0eWxlW2BtYXJnaW4ke2YxKHRoaXMuaW5saW5lUHJvcGVydHkpfWBdPWErZHcpfWdldE9mZnNldCgpe2NvbnN0IGw9'@; put 'dGhpcy5fZWxlbWVudC5zdHlsZSxhPWBtYXJnaW4ke2YxKHRoaXMuaW5saW5lUHJvcGVydHkpfWA7cmV0dXJue3RvcDpsLm1hcmdpblRvcD9wYXJzZUludChsLm1hcmdpblRvcCwxMCk6MCxzdGFydDpsW2FdP3BhcnNlSW50KGxbYV0sMTApOjB9fX0scWZ0PWNsYXNzIFhmdCBleHRlbmRzIF9t'@; put 'ZXtidWlsZCgpe3N1cGVyLmJ1aWxkKCksRWkodGhpcy5fZWxlbWVudCwiaHRfX21hbnVhbENvbHVtbk1vdmUtLWJhY2tsaWdodCIpfX0sZTN0PWNsYXNzIFFmdCBleHRlbmRzIF9tZXtidWlsZCgpe3N1cGVyLmJ1aWxkKCksRWkodGhpcy5fZWxlbWVudCwiaHRfX21hbnVhbENvbHVtbk1vdmUt'@; put 'LWd1aWRlbGluZSIpfX07ZnVuY3Rpb24gdzMoYyxsLGEpe3dtZShjLGwpLGwuc2V0KGMsYSl9ZnVuY3Rpb24gd21lKGMsbCl7aWYobC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmpl'@; put 'Y3QiKX1mdW5jdGlvbiAkZChjLGwsYSl7cmV0dXJuIGMuc2V0KGg2KGMsbCksYSksYX1mdW5jdGlvbiBaYShjLGwpe3JldHVybiBjLmdldChoNihjLGwpKX1mdW5jdGlvbiBoNihjLGwsYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGM/Yz09PWw6Yy5oYXMobCkpcmV0dXJuIGFyZ3VtZW50cy5s'@; put 'ZW5ndGg8Mz9sOmE7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBlbGVtZW50IGlzIG5vdCBwcmVzZW50IG9uIHRoaXMgb2JqZWN0Iil9TWEuZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImJlZm9yZUNvbHVtbk1vdmUiKSxNYS5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJDb2x1'@; put 'bW5Nb3ZlIik7Y29uc3QgV1E9Im1hbnVhbENvbHVtbk1vdmUiLENtZT0iaHRfX21hbnVhbENvbHVtbk1vdmUiLGhIPSJzaG93LXVpIixZUT0ib24tbW92aW5nLS1jb2x1bW5zIixHUT0iYWZ0ZXItc2VsZWN0aW9uLS1jb2x1bW5zIjt2YXIgdGQ9bmV3IFdlYWtNYXAsZjY9bmV3IFdlYWtNYXAs'@; put 'Tmc9bmV3IFdlYWtNYXAsZkg9bmV3IFdlYWtNYXAscDY9bmV3IFdlYWtNYXAsbmQ9bmV3IFdlYWtNYXAscEg9bmV3IFdlYWtNYXAscmY9bmV3IFdlYWtNYXAsaHc9bmV3IFdlYWtNYXAsZ0g9bmV3IFdlYWtNYXAsb0E9bmV3IFdlYWtNYXAsUjk9bmV3IFdlYWtTZXQ7Y2xhc3MgcjN0IGV4dGVu'@; put 'ZHMgRm97Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGZ1bmN0aW9uIHQzdChjLGwpe3dtZShjLGwpLGwuYWRkKGMpfSh0aGlzLFI5KSx3Myh0aGlzLHRkLG5ldyBxZnQodGhpcy5ob3QpKSx3Myh0aGlzLGY2LG5ldyBlM3QodGhpcy5ob3QpKSx3Myh0aGlzLE5nLFtdKSx3Myh0'@; put 'aGlzLGZILDApLHczKHRoaXMscDYsITEpLHczKHRoaXMsbmQse30pLHczKHRoaXMscEgsdm9pZCAwKSx3Myh0aGlzLHJmLHZvaWQgMCksdzModGhpcyxodyx2b2lkIDApLHczKHRoaXMsZ0gsdm9pZCAwKSx3Myh0aGlzLG9BLHZvaWQgMCl9c3RhdGljIGdldCBQTFVHSU5fS0VZKCl7cmV0dXJu'@; put 'IFdRfXN0YXRpYyBnZXQgUExVR0lOX1BSSU9SSVRZKCl7cmV0dXJuIDEyMH1pc0VuYWJsZWQoKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbV1FdfWVuYWJsZVBsdWdpbigpe3ZhciBsPXRoaXM7dGhpcy5lbmFibGVkfHwodGhpcy5hZGRIb29rKCJiZWZvcmVPbkNlbGxNb3VzZURv'@; put 'd24iLGZ1bmN0aW9uKCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGgsZD1uZXcgQXJyYXkoYSksaD0wO2g8YTtoKyspZFtoXT1hcmd1bWVudHNbaF07cmV0dXJuIGg2KFI5LGwsaTN0KS5jYWxsKGwsLi4uZCl9KSx0aGlzLmFkZEhvb2soImJlZm9yZU9uQ2VsbE1vdXNlT3ZlciIsZnVuY3Rp'@; put 'b24oKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxkPW5ldyBBcnJheShhKSxoPTA7aDxhO2grKylkW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gaDYoUjksbCxzM3QpLmNhbGwobCwuLi5kKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJTY3JvbGxWZXJ0aWNhbGx5IiwoKT0+aDYoUjksdGhpcyxs'@; put 'M3QpLmNhbGwodGhpcykpLHRoaXMuYWRkSG9vaygiYWZ0ZXJMb2FkRGF0YSIsZnVuY3Rpb24oKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxkPW5ldyBBcnJheShhKSxoPTA7aDxhO2grKylkW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gaDYoUjksbCxjM3QpLmNhbGwobCwuLi5kKX0pLHRo'@; put 'aXMuYnVpbGRQbHVnaW5VSSgpLHRoaXMucmVnaXN0ZXJFdmVudHMoKSxFaSh0aGlzLmhvdC5yb290RWxlbWVudCxDbWUpLHN1cGVyLmVuYWJsZVBsdWdpbigpKX11cGRhdGVQbHVnaW4oKXt0aGlzLmRpc2FibGVQbHVnaW4oKSx0aGlzLmVuYWJsZVBsdWdpbigpLHRoaXMubW92ZUJ5U2V0dGlu'@; put 'Z3NPckxvYWQoKSxzdXBlci51cGRhdGVQbHVnaW4oKX1kaXNhYmxlUGx1Z2luKCl7aHModGhpcy5ob3Qucm9vdEVsZW1lbnQsQ21lKSx0aGlzLnVucmVnaXN0ZXJFdmVudHMoKSxaYSh0ZCx0aGlzKS5kZXN0cm95KCksWmEoZjYsdGhpcykuZGVzdHJveSgpLHN1cGVyLmRpc2FibGVQbHVnaW4o'@; put 'KX1tb3ZlQ29sdW1uKGwsYSl7cmV0dXJuIHRoaXMubW92ZUNvbHVtbnMoW2xdLGEpfW1vdmVDb2x1bW5zKGwsYSl7Y29uc3QgZD1aYShwSCx0aGlzKSxoPXRoaXMuaXNNb3ZlUG9zc2libGUobCxhKSxmPXRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVDb2x1bW5Nb3ZlIixsLGEsZCxoKTtpZigk'@; put 'ZChwSCx0aGlzLHZvaWQgMCksITE9PT1mKXJldHVybjtoJiZ0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5tb3ZlSW5kZXhlcyhsLGEpO2NvbnN0IHY9aCYmdGhpcy5pc0NvbHVtbk9yZGVyQ2hhbmdlZChsLGEpO3JldHVybiB0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJDb2x1bW5Nb3ZlIixs'@; put 'LGEsZCxoLHYpLHZ9ZHJhZ0NvbHVtbihsLGEpe3JldHVybiB0aGlzLmRyYWdDb2x1bW5zKFtsXSxhKX1kcmFnQ29sdW1ucyhsLGEpe2NvbnN0IGQ9dGhpcy5jb3VudEZpbmFsSW5kZXgobCxhKTtyZXR1cm4gJGQocEgsdGhpcyxhKSx0aGlzLm1vdmVDb2x1bW5zKGwsZCl9aXNNb3ZlUG9zc2li'@; put 'bGUobCxhKXtjb25zdCBkPXRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldE5vdFRyaW1tZWRJbmRleGVzTGVuZ3RoKCksaD1sLmxlbmd0aCthPmQsZj1hPDAsdj1sLnNvbWUoST0+STwwKSxNPWwuc29tZShJPT5JPj1kKTtyZXR1cm4hKGh8fGZ8fHZ8fE0pfWlzQ29sdW1uT3JkZXJDaGFu'@; put 'Z2VkKGwsYSl7cmV0dXJuIGwuc29tZSgoZCxoKT0+ZC1oIT09YSl9Y291bnRGaW5hbEluZGV4KGwsYSl7Y29uc3QgZD1HdShsLChoLGYpPT4oZjxhJiYoaCs9MSksaCksMCk7cmV0dXJuIGEtZH1nZXRDb2x1bW5zV2lkdGgobCxhKXtjb25zdCBkPXRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVy'@; put 'O2xldCBoPTA7Zm9yKGxldCBmPWw7Zjw9YTtmKz0xKXtjb25zdCB2PWQuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChmKTtmPDA/aCs9dGhpcy5ob3Qudmlldy5fd3Qud3RWaWV3cG9ydC5nZXRSb3dIZWFkZXJXaWR0aCgpfHwwOm51bGwhPT12JiYoaCs9dGhpcy5ob3Qudmlldy5fd3Qu'@; put 'd3RUYWJsZS5nZXRDb2x1bW5XaWR0aCh2KXx8MCl9cmV0dXJuIGh9bW92ZUJ5U2V0dGluZ3NPckxvYWQoKXtjb25zdCBsPXRoaXMuaG90LmdldFNldHRpbmdzKClbV1FdO2lmKEFycmF5LmlzQXJyYXkobCkpdGhpcy5tb3ZlQ29sdW1ucyhsLDApO2Vsc2UgaWYodm9pZCAwIT09bCl7Y29uc3Qg'@; put 'YT10aGlzLnBlcnNpc3RlbnRTdGF0ZUxvYWQoKTthLmxlbmd0aCYmdGhpcy5tb3ZlQ29sdW1ucyhhLDApfX1pc0ZpeGVkQ29sdW1uc1N0YXJ0KGwpe3JldHVybiBsPHRoaXMuaG90LmdldFNldHRpbmdzKCkuZml4ZWRDb2x1bW5zU3RhcnR9cGVyc2lzdGVudFN0YXRlU2F2ZSgpe3RoaXMuaG90'@; put 'LnJ1bkhvb2tzKCJwZXJzaXN0ZW50U3RhdGVTYXZlIiwibWFudWFsQ29sdW1uTW92ZSIsdGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIuZ2V0SW5kZXhlc1NlcXVlbmNlKCkpfXBlcnNpc3RlbnRTdGF0ZUxvYWQoKXtjb25zdCBsPXt9O3JldHVybiB0aGlzLmhvdC5ydW5Ib29rcygicGVyc2lz'@; put 'dGVudFN0YXRlTG9hZCIsIm1hbnVhbENvbHVtbk1vdmUiLGwpLGwudmFsdWU/bC52YWx1ZTpbXX1wcmVwYXJlQ29sdW1uc1RvTW92aW5nKGwsYSl7Y29uc3QgZD1bXTtyZXR1cm4gS2EobCxhLGg9PntkLnB1c2goaCl9KSxkfXJlZnJlc2hQb3NpdGlvbnMoKXtjb25zdCBsPXRoaXMuaG90LnZp'@; put 'ZXcuZ2V0Rmlyc3RGdWxseVZpc2libGVDb2x1bW4oKTt0aGlzLmlzRml4ZWRDb2x1bW5zU3RhcnQoWmEocmYsdGhpcykpJiZsPjAmJnRoaXMuaG90LnNjcm9sbFZpZXdwb3J0VG8oe2NvbDp0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgobC0xLC0x'@; put 'KX0pO2NvbnN0IGE9dGhpcy5ob3Qudmlldy5fd3Qud3RUYWJsZSxkPXRoaXMuaG90LnZpZXcuX3d0Lnd0T3ZlcmxheXMuc2Nyb2xsYWJsZUVsZW1lbnQsaD0ibnVtYmVyIj09dHlwZW9mIGQuc2Nyb2xsWD9kLnNjcm9sbFg6ZC5zY3JvbGxMZWZ0O2xldCBmPXRoaXMuaG90LnZpZXcuVEhFQUQu'@; put 'b2Zmc2V0TGVmdCt0aGlzLmdldENvbHVtbnNXaWR0aCgwLFphKHJmLHRoaXMpLTEpO2NvbnN0IHY9YS5oaWRlci5vZmZzZXRXaWR0aCxNPWEuVEJPRFkub2Zmc2V0TGVmdCxJPVphKHRkLHRoaXMpLmdldE9mZnNldCgpLnN0YXJ0LEc9WmEodGQsdGhpcykuZ2V0U2l6ZSgpLndpZHRoO2xldCBy'@; put 'ZT0wLHVlPTA7aWYodGhpcy5ob3QuaXNSdGwoKSl7Y29uc3QgQmU9dGhpcy5ob3Qucm9vdFdpbmRvdyxHZT1pdSh0aGlzLmhvdC5yb290RWxlbWVudCksc3Q9QmUuaW5uZXJXaWR0aC1aYShodyx0aGlzKS1HZTt1ZT1CZS5pbm5lcldpZHRoLVphKG5kLHRoaXMpLmV2ZW50UGFnZVgtc3QtKHZv'@; put 'aWQgMD09PWQuc2Nyb2xsWD9oOjApfWVsc2UgdWU9WmEobmQsdGhpcykuZXZlbnRQYWdlWC0oWmEoaHcsdGhpcyktKHZvaWQgMD09PWQuc2Nyb2xsWD9oOjApKTtpZihaYShnSCx0aGlzKSYmKHJlPXRoaXMuaG90LnZpZXcuX3d0Lnd0T3ZlcmxheXMuaW5saW5lU3RhcnRPdmVybGF5LmNsb25l'@; put 'Lnd0VGFibGUuZ2V0Q29sdW1uSGVhZGVyKC0xKS5vZmZzZXRXaWR0aCksdGhpcy5pc0ZpeGVkQ29sdW1uc1N0YXJ0KFphKHJmLHRoaXMpKSYmKGYrPWgpLGYrPXJlLFphKHJmLHRoaXMpPDApWmEob0EsdGhpcyk+MD9aYShuZCx0aGlzKS5jb2w9MDpaYShuZCx0aGlzKS5jb2w9bD4wP2wtMTps'@; put 'O2Vsc2UgaWYoWmEobmQsdGhpcykuVEQub2Zmc2V0V2lkdGgvMitmPD11ZSl7Y29uc3QgQmU9WmEocmYsdGhpcyk+PVphKGZILHRoaXMpP1phKGZILHRoaXMpLTE6WmEocmYsdGhpcyk7WmEobmQsdGhpcykuY29sPUJlKzEsZis9WmEobmQsdGhpcykuVEQub2Zmc2V0V2lkdGh9ZWxzZSBaYShu'@; put 'ZCx0aGlzKS5jb2w9WmEocmYsdGhpcyk7bGV0IHllPXVlLEVlPWY7dWUrRytJPj12P3llPXYtRy1JOnVlK0k8TStyZSYmKHllPU0rcmUrTWF0aC5hYnMoSSkpLGY+PXYtMT9FZT12LTE6MD09PUVlP0VlPTE6dm9pZCAwIT09ZC5zY3JvbGxYJiZaYShyZix0aGlzKTxaYShvQSx0aGlzKSYmKEVl'@; put 'LT1aYShodyx0aGlzKTw9ZC5zY3JvbGxYP1phKGh3LHRoaXMpOjApLFphKHRkLHRoaXMpLnNldFBvc2l0aW9uKG51bGwseWUpLFphKGY2LHRoaXMpLnNldFBvc2l0aW9uKG51bGwsRWUpfXJlZ2lzdGVyRXZlbnRzKCl7Y29uc3R7ZG9jdW1lbnRFbGVtZW50Omx9PXRoaXMuaG90LnJvb3REb2N1'@; put 'bWVudDt0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGwsIm1vdXNlbW92ZSIsYT0+aDYoUjksdGhpcyxhM3QpLmNhbGwodGhpcyxhKSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihsLCJtb3VzZXVwIiwoKT0+aDYoUjksdGhpcyxvM3QpLmNhbGwodGhpcykp'@; put 'fXVucmVnaXN0ZXJFdmVudHMoKXt0aGlzLmV2ZW50TWFuYWdlci5jbGVhcigpfWJ1aWxkUGx1Z2luVUkoKXtaYSh0ZCx0aGlzKS5idWlsZCgpLFphKGY2LHRoaXMpLmJ1aWxkKCl9ZGVzdHJveSgpe1phKHRkLHRoaXMpLmRlc3Ryb3koKSxaYShmNix0aGlzKS5kZXN0cm95KCksc3VwZXIuZGVz'@; put 'dHJveSgpfX1mdW5jdGlvbiBpM3QoYyxsLGEsZCl7Y29uc3QgaD10aGlzLmhvdC52aWV3Ll93dC53dFRhYmxlLGY9dGhpcy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigpLHY9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxNPWdzKGMudGFyZ2V0LCJzb3J0'@; put 'QWN0aW9uIik7aWYoIXZ8fCFmfHxaYShwNix0aGlzKXx8MCE9PWMuYnV0dG9ufHxNKXJldHVybiAkZChwNix0aGlzLCExKSxaYShOZyx0aGlzKS5sZW5ndGg9MCx2b2lkIGhzKHRoaXMuaG90LnJvb3RFbGVtZW50LFtZUSxoSF0pO2NvbnN0IEk9WmEoZjYsdGhpcykuaXNCdWlsdCgpJiYhWmEo'@; put 'ZjYsdGhpcykuaXNBcHBlbmRlZCgpLEc9WmEodGQsdGhpcykuaXNCdWlsdCgpJiYhWmEodGQsdGhpcykuaXNBcHBlbmRlZCgpO0kmJkcmJihaYShmNix0aGlzKS5hcHBlbmRUbyhoLmhpZGVyKSxaYSh0ZCx0aGlzKS5hcHBlbmRUbyhoLmhpZGVyKSk7Y29uc3R7ZnJvbTpyZSx0bzp1ZX09dix5'@; put 'ZT1NYXRoLm1pbihyZS5jb2wsdWUuY29sKSxFZT1NYXRoLm1heChyZS5jb2wsdWUuY29sKTtpZihsLnJvdzwwJiZsLmNvbD49eWUmJmwuY29sPD1FZSl7ZC5jb2x1bW49ITAsJGQocDYsdGhpcywhMCk7Y29uc3QgQmU9YS5maXJzdENoaWxkP21mZShjLGEuZmlyc3RDaGlsZCkueDpjLm9mZnNl'@; put 'dFg7WmEobmQsdGhpcykuZXZlbnRQYWdlWD1jLnBhZ2VYLCRkKHJmLHRoaXMsbC5jb2wpLFphKG5kLHRoaXMpLlREPWEsWmEobmQsdGhpcykuY29sPWwuY29sLCRkKE5nLHRoaXMsdGhpcy5wcmVwYXJlQ29sdW1uc1RvTW92aW5nKHllLEVlKSksJGQoZ0gsdGhpcywhIXRoaXMuaG90LmdldFNl'@; put 'dHRpbmdzKCkucm93SGVhZGVycyksJGQoZkgsdGhpcyx0aGlzLmhvdC5jb3VudENvbHMoKSksJGQob0EsdGhpcyx0aGlzLmhvdC5nZXRTZXR0aW5ncygpLmZpeGVkQ29sdW1uc1N0YXJ0KSwkZChodyx0aGlzLGowKHRoaXMuaG90LnJvb3RFbGVtZW50KS5sZWZ0KTtjb25zdCBHZT1aYShnSCx0'@; put 'aGlzKT8tMTowLHN0PWguaG9sZGVyLnNjcm9sbFRvcCtoLmdldENvbHVtbkhlYWRlckhlaWdodCgwKSsxLHB0PWwuY29sPFphKG9BLHRoaXMpLGR0PXRoaXMuaG90LnZpZXcuX3d0Lnd0T3ZlcmxheXMuaW5saW5lU3RhcnRPdmVybGF5LmdldE92ZXJsYXlPZmZzZXQoKSxxdD1NYXRoLmFicyhC'@; put 'ZS0odGhpcy5ob3QuaXNSdGwoKT9hLm9mZnNldFdpZHRoOjApKSxtbj10aGlzLmdldENvbHVtbnNXaWR0aCh5ZSxsLmNvbC0xKStxdCx3bj10aGlzLmdldENvbHVtbnNXaWR0aChHZSx5ZS0xKSsocHQ/ZHQ6MCkrbW47WmEodGQsdGhpcykuc2V0UG9zaXRpb24oc3Qsd24pLFphKHRkLHRoaXMp'@; put 'LnNldFNpemUodGhpcy5nZXRDb2x1bW5zV2lkdGgoeWUsRWUpLGguaGlkZXIub2Zmc2V0SGVpZ2h0LXN0KSxaYSh0ZCx0aGlzKS5zZXRPZmZzZXQobnVsbCwtbW4pLEVpKHRoaXMuaG90LnJvb3RFbGVtZW50LFlRKX1lbHNlIGhzKHRoaXMuaG90LnJvb3RFbGVtZW50LEdRKSwkZChwNix0aGlz'@; put 'LCExKSxaYShOZyx0aGlzKS5sZW5ndGg9MH1mdW5jdGlvbiBhM3QoYyl7WmEocDYsdGhpcykmJihaYShuZCx0aGlzKS5ldmVudFBhZ2VYPWMucGFnZVgsdGhpcy5yZWZyZXNoUG9zaXRpb25zKCkpfWZ1bmN0aW9uIHMzdChjLGwsYSxkKXshdGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3Qo'@; put 'KXx8IVphKHA2LHRoaXMpfHwoWmEoTmcsdGhpcykuaW5kZXhPZihsLmNvbCk+LTE/aHModGhpcy5ob3Qucm9vdEVsZW1lbnQsaEgpOkVpKHRoaXMuaG90LnJvb3RFbGVtZW50LGhIKSxkLnJvdz0hMCxkLmNvbHVtbj0hMCxkLmNlbGw9ITAsJGQocmYsdGhpcyxsLmNvbCksWmEobmQsdGhpcyku'@; put 'VEQ9YSl9ZnVuY3Rpb24gbzN0KCl7Y29uc3QgYz1aYShuZCx0aGlzKS5jb2wsbD1aYShOZyx0aGlzKS5sZW5ndGg7aWYoJGQocmYsdGhpcyx2b2lkIDApLCRkKHA2LHRoaXMsITEpLGhzKHRoaXMuaG90LnJvb3RFbGVtZW50LFtZUSxoSCxHUV0pLHRoaXMuaG90LnNlbGVjdGlvbi5pc1NlbGVj'@; put 'dGVkQnlDb2x1bW5IZWFkZXIoKSYmRWkodGhpcy5ob3Qucm9vdEVsZW1lbnQsR1EpLGw8MXx8dm9pZCAwPT09YylyZXR1cm47Y29uc3QgYT1aYShOZyx0aGlzKVswXSxkPXRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4oYSksaD10aGlzLmRyYWdDb2x1bW5zKFphKE5nLHRoaXMpLGMpO2lmKFph'@; put 'KE5nLHRoaXMpLmxlbmd0aD0wLCEwPT09aCl7dGhpcy5wZXJzaXN0ZW50U3RhdGVTYXZlKCksdGhpcy5ob3QucmVuZGVyKCksdGhpcy5ob3Qudmlldy5hZGp1c3RFbGVtZW50c1NpemUoKTtjb25zdCBmPXRoaXMuaG90LnRvVmlzdWFsQ29sdW1uKGQpO3RoaXMuaG90LnNlbGVjdENvbHVtbnMo'@; put 'ZixmK2wtMSl9fWZ1bmN0aW9uIGwzdCgpe2NvbnN0IGM9dGhpcy5ob3Qudmlldy5fd3Qud3RUYWJsZSxkPWMuZ2V0Q29sdW1uSGVhZGVySGVpZ2h0KDApKzErYy5ob2xkZXIuc2Nyb2xsVG9wO1phKHRkLHRoaXMpLnNldFBvc2l0aW9uKGQpLFphKHRkLHRoaXMpLnNldFNpemUobnVsbCxjLmhp'@; put 'ZGVyLm9mZnNldEhlaWdodC1kKX1mdW5jdGlvbiBjM3QoKXt0aGlzLm1vdmVCeVNldHRpbmdzT3JMb2FkKCl9ZnVuY3Rpb24gQzEoYyxsLGEpe1NtZShjLGwpLGwuc2V0KGMsYSl9ZnVuY3Rpb24gU21lKGMsbCl7aWYobC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRp'@; put 'YWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX1mdW5jdGlvbiBvdShjLGwsYSl7cmV0dXJuIGMuc2V0KEMzKGMsbCksYSksYX1mdW5jdGlvbiBBYShjLGwpe3JldHVybiBjLmdldChDMyhjLGwpKX1mdW5jdGlvbiBDMyhjLGwsYSl7aWYoImZ1bmN0'@; put 'aW9uIj09dHlwZW9mIGM/Yz09PWw6Yy5oYXMobCkpcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mz9sOmE7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBlbGVtZW50IGlzIG5vdCBwcmVzZW50IG9uIHRoaXMgb2JqZWN0Iil9Y29uc3QgbUg9Im1hbnVhbENvbHVtblJlc2l6ZSIsTW1lPSJt'@; put 'YW51YWxDb2x1bW5XaWR0aHMiO3ZhciBWZz1uZXcgV2Vha01hcCx2SD1uZXcgV2Vha01hcCx6aD1uZXcgV2Vha01hcCx5SD1uZXcgV2Vha01hcCxHcD1uZXcgV2Vha01hcCxoM3Q9bmV3IFdlYWtNYXAsZnc9bmV3IFdlYWtNYXAsYkg9bmV3IFdlYWtNYXAsS2Q9bmV3IFdlYWtNYXAsQmc9bmV3'@; put 'IFdlYWtNYXAsTDk9bmV3IFdlYWtNYXAsX0g9bmV3IFdlYWtNYXAsbEE9bmV3IFdlYWtNYXAsY0E9bmV3IFdlYWtNYXAsVWg9bmV3IFdlYWtNYXAsdUE9bmV3IFdlYWtNYXAsJHA9bmV3IFdlYWtTZXQ7Y2xhc3MgZjN0IGV4dGVuZHMgRm97c3RhdGljIGdldCBQTFVHSU5fS0VZKCl7cmV0dXJu'@; put 'IG1IfXN0YXRpYyBnZXQgUExVR0lOX1BSSU9SSVRZKCl7cmV0dXJuIDEzMH1jb25zdHJ1Y3RvcihsKXtzdXBlcihsKSxmdW5jdGlvbiB1M3QoYyxsKXtTbWUoYyxsKSxsLmFkZChjKX0odGhpcywkcCksQzEodGhpcyxWZyxudWxsKSxDMSh0aGlzLHZILG51bGwpLEMxKHRoaXMsemgsW10pLEMx'@; put 'KHRoaXMseUgsbnVsbCksQzEodGhpcyxHcCxudWxsKSxDMSh0aGlzLGgzdCxudWxsKSxDMSh0aGlzLGZ3LG51bGwpLEMxKHRoaXMsYkgsbnVsbCksQzEodGhpcyxLZCx0aGlzLmhvdC5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIikpLEMxKHRoaXMsQmcsdGhpcy5ob3Qucm9vdERv'@; put 'Y3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpKSxDMSh0aGlzLEw5LG51bGwpLEMxKHRoaXMsX0gsITEpLEMxKHRoaXMsbEEsMCksQzEodGhpcyxjQSxudWxsKSxDMSh0aGlzLFVoLHZvaWQgMCksQzEodGhpcyx1QSx2b2lkIDApLEVpKEFhKEtkLHRoaXMpLCJtYW51YWxDb2x1bW5SZXNpemVy'@; put 'IiksRWkoQWEoQmcsdGhpcyksIm1hbnVhbENvbHVtblJlc2l6ZXJHdWlkZSIpfWdldCBpbmxpbmVEaXIoKXtyZXR1cm4gdGhpcy5ob3QuaXNSdGwoKT8icmlnaHQiOiJsZWZ0In1pc0VuYWJsZWQoKXtyZXR1cm4gdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVttSF19ZW5hYmxlUGx1Z2luKCl7dmFy'@; put 'IGw9dGhpczt0aGlzLmVuYWJsZWR8fChvdShVaCx0aGlzLG5ldyBqbSksQWEoVWgsdGhpcykuYWRkTG9jYWxIb29rKCJpbml0IiwoKT0+QzMoJHAsdGhpcyxwM3QpLmNhbGwodGhpcykpLHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLnJlZ2lzdGVyTWFwKHRoaXMucGx1Z2luTmFtZSxBYShV'@; put 'aCx0aGlzKSksdGhpcy5hZGRIb29rKCJtb2RpZnlDb2xXaWR0aCIsZnVuY3Rpb24oKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxkPW5ldyBBcnJheShhKSxoPTA7aDxhO2grKylkW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gQzMoJHAsbCxfM3QpLmNhbGwobCwuLi5kKX0sMSksdGhpcy5h'@; put 'ZGRIb29rKCJiZWZvcmVTdHJldGNoaW5nQ29sdW1uV2lkdGgiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGgsZD1uZXcgQXJyYXkoYSksaD0wO2g8YTtoKyspZFtoXT1hcmd1bWVudHNbaF07cmV0dXJuIEMzKCRwLGwsdzN0KS5jYWxsKGwsLi4uZCl9LDEpLHRoaXMuYWRk'@; put 'SG9vaygiYmVmb3JlQ29sdW1uUmVzaXplIixmdW5jdGlvbigpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDtoPGE7aCsrKWRbaF09YXJndW1lbnRzW2hdO3JldHVybiBDMygkcCxsLEMzdCkuY2FsbChsLC4uLmQpfSksdGhpcy5iaW5kRXZlbnRzKCksc3Vw'@; put 'ZXIuZW5hYmxlUGx1Z2luKCkpfXVwZGF0ZVBsdWdpbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCksc3VwZXIudXBkYXRlUGx1Z2luKCl9ZGlzYWJsZVBsdWdpbigpe291KHVBLHRoaXMsQWEoVWgsdGhpcykuZ2V0VmFsdWVzKCkpLHRoaXMuaG90LmNvbHVtbklu'@; put 'ZGV4TWFwcGVyLnVucmVnaXN0ZXJNYXAodGhpcy5wbHVnaW5OYW1lKSxzdXBlci5kaXNhYmxlUGx1Z2luKCl9c2F2ZU1hbnVhbENvbHVtbldpZHRocygpe3RoaXMuaG90LnJ1bkhvb2tzKCJwZXJzaXN0ZW50U3RhdGVTYXZlIixNbWUsQWEoVWgsdGhpcykuZ2V0VmFsdWVzKCkpfWxvYWRNYW51'@; put 'YWxDb2x1bW5XaWR0aHMoKXtjb25zdCBsPXt9O3JldHVybiB0aGlzLmhvdC5ydW5Ib29rcygicGVyc2lzdGVudFN0YXRlTG9hZCIsTW1lLGwpLGwudmFsdWV9c2V0TWFudWFsU2l6ZShsLGEpe2NvbnN0IGQ9TWF0aC5tYXgoYSwyMCksaD10aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKGwpO3Jl'@; put 'dHVybiBBYShVaCx0aGlzKS5zZXRWYWx1ZUF0SW5kZXgoaCxkKSxkfWNsZWFyTWFudWFsU2l6ZShsKXtjb25zdCBhPXRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4obCk7QWEoVWgsdGhpcykuc2V0VmFsdWVBdEluZGV4KGEsbnVsbCl9c2V0dXBIYW5kbGVQb3NpdGlvbihsKXtpZighbC5wYXJl'@; put 'bnROb2RlKXJldHVybjtvdShWZyx0aGlzLGwpO2NvbnN0e193dDphfT10aGlzLmhvdC52aWV3LGQ9YS53dFRhYmxlLmdldENvb3JkcyhBYShWZyx0aGlzKSksaD1kLmNvbDtpZihoPDApcmV0dXJuO2NvbnN0IGY9U3UoQWEoVmcsdGhpcykpLHY9QWEoVmcsdGhpcykuZ2V0Qm91bmRpbmdDbGll'@; put 'bnRSZWN0KCk7bGV0IEk7aDxhLmdldFNldHRpbmcoImZpeGVkQ29sdW1uc1N0YXJ0IikmJihJPWEud3RPdmVybGF5cy50b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXkuZ2V0UmVsYXRpdmVDZWxsUG9zaXRpb24oQWEoVmcsdGhpcyksZC5yb3csZC5jb2wpKSxJfHwoST1hLnd0T3ZlcmxheXMu'@; put 'dG9wT3ZlcmxheS5nZXRSZWxhdGl2ZUNlbGxQb3NpdGlvbihBYShWZyx0aGlzKSxkLnJvdyxkLmNvbCkpLG91KHZILHRoaXMsdGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChoKSksb3UoemgsdGhpcyxbXSk7Y29uc3QgRz10aGlzLmhvdC5z'@; put 'ZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29ybmVyKCl8fHRoaXMuaG90LnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb2x1bW5IZWFkZXIoKTt0aGlzLmhvdC5zZWxlY3Rpb24uaXNTZWxlY3RlZCgpJiZHJiZLbih0aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlKCksdWU9PntLYSh1ZS5nZXRUb3BTdGFy'@; put 'dENvcm5lcigpLmNvbCx1ZS5nZXRCb3R0b21FbmRDb3JuZXIoKS5jb2wsQmU9PntBYSh6aCx0aGlzKS5pbmNsdWRlcyhCZSl8fEFhKHpoLHRoaXMpLnB1c2goQmUpfSl9KSxBYSh6aCx0aGlzKS5pbmNsdWRlcyhBYSh2SCx0aGlzKSl8fG91KHpoLHRoaXMsW0FhKHZILHRoaXMpXSksb3UoYkgs'@; put 'dGhpcyxJLnN0YXJ0LTYpLG91KGZ3LHRoaXMscGFyc2VJbnQodi53aWR0aCwxMCkpLEFhKEtkLHRoaXMpLnN0eWxlLnRvcD1gJHtJLnRvcH1weGAsQWEoS2QsdGhpcykuc3R5bGVbdGhpcy5pbmxpbmVEaXJdPWAke0FhKGJILHRoaXMpK0FhKGZ3LHRoaXMpfXB4YCxBYShLZCx0aGlzKS5zdHls'@; put 'ZS5oZWlnaHQ9YCR7Zn1weGAsdGhpcy5ob3Qucm9vdEVsZW1lbnQuYXBwZW5kQ2hpbGQoQWEoS2QsdGhpcykpfXJlZnJlc2hIYW5kbGVQb3NpdGlvbigpe0FhKEtkLHRoaXMpLnN0eWxlW3RoaXMuaW5saW5lRGlyXT1gJHtBYShiSCx0aGlzKStBYSh5SCx0aGlzKX1weGB9c2V0dXBHdWlkZVBv'@; put 'c2l0aW9uKCl7Y29uc3QgbD1wYXJzZUludChTdShBYShLZCx0aGlzKSksMTApLGE9cGFyc2VJbnQoQWEoS2QsdGhpcykuc3R5bGUudG9wLDEwKStsLGQ9dGhpcy5ob3Qudmlldy5nZXRUYWJsZUhlaWdodCgpO0VpKEFhKEtkLHRoaXMpLCJhY3RpdmUiKSxFaShBYShCZyx0aGlzKSwiYWN0aXZl'@; put 'IiksQWEoQmcsdGhpcykuc3R5bGUudG9wPWAke2F9cHhgLHRoaXMucmVmcmVzaEd1aWRlUG9zaXRpb24oKSxBYShCZyx0aGlzKS5zdHlsZS5oZWlnaHQ9ZC1sKyJweCIsdGhpcy5ob3Qucm9vdEVsZW1lbnQuYXBwZW5kQ2hpbGQoQWEoQmcsdGhpcykpfXJlZnJlc2hHdWlkZVBvc2l0aW9uKCl7'@; put 'QWEoQmcsdGhpcykuc3R5bGVbdGhpcy5pbmxpbmVEaXJdPUFhKEtkLHRoaXMpLnN0eWxlW3RoaXMuaW5saW5lRGlyXX1oaWRlSGFuZGxlQW5kR3VpZGUoKXtocyhBYShLZCx0aGlzKSwiYWN0aXZlIiksaHMoQWEoQmcsdGhpcyksImFjdGl2ZSIpfWNoZWNrSWZDb2x1bW5IZWFkZXIobCl7Y29u'@; put 'c3QgYT1EbShsLFsiVEhFQUQiXSx0aGlzLmhvdC5yb290RWxlbWVudCkse3RvcE92ZXJsYXk6ZCx0b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXk6aH09dGhpcy5ob3Qudmlldy5fd3Qud3RPdmVybGF5cztyZXR1cm5bZC5jbG9uZS53dFRhYmxlLlRIRUFELGguY2xvbmUud3RUYWJsZS5USEVB'@; put 'RF0uaW5jbHVkZXMoYSl9Z2V0Q2xvc2VzdFRIUGFyZW50KGwpe3JldHVybiJUQUJMRSIhPT1sLnRhZ05hbWU/IlRIIj09PWwudGFnTmFtZT9sOnRoaXMuZ2V0Q2xvc2VzdFRIUGFyZW50KGwucGFyZW50Tm9kZSk6bnVsbH1hZnRlck1vdXNlRG93blRpbWVvdXQoKXtjb25zdCBsPSgpPT57dGhp'@; put 'cy5ob3QucmVuZGVyKCksdGhpcy5ob3Qudmlldy5hZGp1c3RFbGVtZW50c1NpemUoKX0sYT0oZCxoKT0+e2NvbnN0IGY9dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUNvbHVtblJlc2l6ZSIsQWEoR3AsdGhpcyksZCwhMCk7dm9pZCAwIT09ZiYmb3UoR3AsdGhpcyxmKSx0aGlzLnNldE1hbnVh'@; put 'bFNpemUoZCxBYShHcCx0aGlzKSksdGhpcy5zYXZlTWFudWFsQ29sdW1uV2lkdGhzKCksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyQ29sdW1uUmVzaXplIixBYShHcCx0aGlzKSxkLCEwKSxoJiZsKCl9O0FhKGxBLHRoaXMpPj0yJiYoQWEoemgsdGhpcykubGVuZ3RoPjE/KEtuKEFhKHpoLHRo'@; put 'aXMpLGg9PnthKGgpfSksbCgpKTpLbihBYSh6aCx0aGlzKSxoPT57YShoLCEwKX0pKSxvdShsQSx0aGlzLDApLG91KGNBLHRoaXMsbnVsbCl9YmluZEV2ZW50cygpe2NvbnN0e3Jvb3RXaW5kb3c6bCxyb290RWxlbWVudDphfT10aGlzLmhvdDt0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExp'@; put 'c3RlbmVyKGEsIm1vdXNlb3ZlciIsZD0+QzMoJHAsdGhpcyxnM3QpLmNhbGwodGhpcyxkKSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihhLCJtb3VzZWRvd24iLGQ9PkMzKCRwLHRoaXMsbTN0KS5jYWxsKHRoaXMsZCkpLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlz'@; put 'dGVuZXIobCwibW91c2Vtb3ZlIixkPT5DMygkcCx0aGlzLHYzdCkuY2FsbCh0aGlzLGQpKSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGwsIm1vdXNldXAiLCgpPT5DMygkcCx0aGlzLHkzdCkuY2FsbCh0aGlzKSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5l'@; put 'cihBYShLZCx0aGlzKSwiY29udGV4dG1lbnUiLCgpPT5DMygkcCx0aGlzLGIzdCkuY2FsbCh0aGlzKSl9ZGVzdHJveSgpe3N1cGVyLmRlc3Ryb3koKX19ZnVuY3Rpb24gcDN0KCl7Y29uc3QgYz10aGlzLmhvdC5nZXRTZXR0aW5ncygpW21IXSxsPXRoaXMubG9hZE1hbnVhbENvbHVtbldpZHRo'@; put 'cygpO3R5cGVvZiBsPCJ1Ij90aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbigoKT0+e2wuZm9yRWFjaCgoYSxkKT0+e0FhKFVoLHRoaXMpLnNldFZhbHVlQXRJbmRleChkLGEpfSl9LCEwKTpBcnJheS5pc0FycmF5KGMpPyh0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbigoKT0+e2MuZm9yRWFjaCgoYSxk'@; put 'KT0+e0FhKFVoLHRoaXMpLnNldFZhbHVlQXRJbmRleChkLGEpfSl9LCEwKSxvdSh1QSx0aGlzLGMpKTohMD09PWMmJkFycmF5LmlzQXJyYXkoQWEodUEsdGhpcykpJiZ0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbigoKT0+e0FhKHVBLHRoaXMpLmZvckVhY2goKGEsZCk9PntBYShVaCx0aGlzKS5z'@; put 'ZXRWYWx1ZUF0SW5kZXgoZCxhKX0pfSwhMCl9ZnVuY3Rpb24gZzN0KGMpe2lmKCFQJChjLnRhcmdldCkmJiEwIT09QWEoX0gsdGhpcykmJnRoaXMuY2hlY2tJZkNvbHVtbkhlYWRlcihjLnRhcmdldCkpe2NvbnN0IGw9dGhpcy5nZXRDbG9zZXN0VEhQYXJlbnQoYy50YXJnZXQpO2lmKCFsKXJl'@; put 'dHVybjtjb25zdCBhPWwuZ2V0QXR0cmlidXRlKCJjb2xzcGFuIik7bCYmKG51bGw9PT1hfHwiMSI9PT1hKSYmKEFhKEw5LHRoaXMpfHx0aGlzLnNldHVwSGFuZGxlUG9zaXRpb24obCkpfX1mdW5jdGlvbiBtM3QoYyl7Yy50YXJnZXQucGFyZW50Tm9kZT09PXRoaXMuaG90LnJvb3RFbGVtZW50'@; put 'JiZncyhjLnRhcmdldCwibWFudWFsQ29sdW1uUmVzaXplciIpJiYodGhpcy5zZXR1cEhhbmRsZVBvc2l0aW9uKEFhKFZnLHRoaXMpKSx0aGlzLnNldHVwR3VpZGVQb3NpdGlvbigpLG91KEw5LHRoaXMsITApLG51bGw9PT1BYShjQSx0aGlzKSYmKG91KGNBLHRoaXMsc2V0VGltZW91dCgoKT0+'@; put 'dGhpcy5hZnRlck1vdXNlRG93blRpbWVvdXQoKSw1MDApKSx0aGlzLmhvdC5fcmVnaXN0ZXJUaW1lb3V0KEFhKGNBLHRoaXMpKSksb3UobEEsdGhpcyxBYShsQSx0aGlzKSsxKSx0aGlzLnN0YXJ0WD1jLnBhZ2VYLG91KEdwLHRoaXMsQWEoZncsdGhpcykpKX1mdW5jdGlvbiB2M3QoYyl7aWYo'@; put 'QWEoTDksdGhpcykpe2NvbnN0IGw9KGMucGFnZVgtdGhpcy5zdGFydFgpKnRoaXMuaG90LmdldERpcmVjdGlvbkZhY3RvcigpO291KHlILHRoaXMsQWEoZncsdGhpcykrbCksS24oQWEoemgsdGhpcyksYT0+e291KEdwLHRoaXMsdGhpcy5zZXRNYW51YWxTaXplKGEsQWEoeUgsdGhpcykpKX0p'@; put 'LHRoaXMucmVmcmVzaEhhbmRsZVBvc2l0aW9uKCksdGhpcy5yZWZyZXNoR3VpZGVQb3NpdGlvbigpfX1mdW5jdGlvbiB5M3QoKXtjb25zdCBjPSgpPT57dGhpcy5ob3QucmVuZGVyKCksdGhpcy5ob3Qudmlldy5hZGp1c3RFbGVtZW50c1NpemUoKX0sbD0oYSxkKT0+e3RoaXMuaG90LnJ1bkhv'@; put 'b2tzKCJiZWZvcmVDb2x1bW5SZXNpemUiLEFhKEdwLHRoaXMpLGEsITEpLGQmJmMoKSx0aGlzLnNhdmVNYW51YWxDb2x1bW5XaWR0aHMoKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJDb2x1bW5SZXNpemUiLEFhKEdwLHRoaXMpLGEsITEpfTtBYShMOSx0aGlzKSYmKHRoaXMuaGlkZUhhbmRs'@; put 'ZUFuZEd1aWRlKCksb3UoTDksdGhpcywhMSksQWEoR3AsdGhpcykhPT1BYShmdyx0aGlzKSYmKEFhKHpoLHRoaXMpLmxlbmd0aD4xPyhLbihBYSh6aCx0aGlzKSxkPT57bChkKX0pLGMoKSk6S24oQWEoemgsdGhpcyksZD0+e2woZCwhMCl9KSksdGhpcy5zZXR1cEhhbmRsZVBvc2l0aW9uKEFh'@; put 'KFZnLHRoaXMpKSl9ZnVuY3Rpb24gYjN0KCl7dGhpcy5oaWRlSGFuZGxlQW5kR3VpZGUoKSx0aGlzLmhvdC5yb290RWxlbWVudC5yZW1vdmVDaGlsZChBYShLZCx0aGlzKSksdGhpcy5ob3Qucm9vdEVsZW1lbnQucmVtb3ZlQ2hpbGQoQWEoQmcsdGhpcykpLG91KEw5LHRoaXMsITEpLG91KF9I'@; put 'LHRoaXMsITApLHRoaXMuaG90Ll9yZWdpc3RlckltbWVkaWF0ZSgoKT0+e291KF9ILHRoaXMsITEpfSl9ZnVuY3Rpb24gXzN0KGMsbCl7bGV0IGE9YztpZih0aGlzLmVuYWJsZWQpe2NvbnN0IGQ9dGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihsKSxoPUFhKFVoLHRoaXMpLmdldFZhbHVlQXRJ'@; put 'bmRleChkKTt0aGlzLmhvdC5nZXRTZXR0aW5ncygpW21IXSYmaCYmKGE9aCl9cmV0dXJuIGF9ZnVuY3Rpb24gdzN0KGMsbCl7Y29uc3QgYT1BYShVaCx0aGlzKS5nZXRWYWx1ZUF0SW5kZXgodGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihsKSk7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBhP2E6'@; put 'Y31mdW5jdGlvbiBDM3QoKXt0aGlzLmhvdC52aWV3Ll93dC53dFZpZXdwb3J0LnJlc2V0SGFzT3ZlcnNpemVkQ29sdW1uSGVhZGVyc01hcmtlZCgpfWZ1bmN0aW9uICRRKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBTM3QoYyl7dmFyIGw9ZnVuY3Rpb24gTTN0KGMsbCl7aWYoIm9iamVjdCIh'@; put 'PXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0'@; put 'IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJs'@; put 'ZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31jb25zdCBwdz0icHgiLFRtZT1jbGFzcyB4M3R7Y29uc3RydWN0b3IobCl7JFEodGhpcywiaG90Iix2b2lkIDApLCRRKHRoaXMsIl9lbGVtZW50IixudWxsKSwkUSh0aGlzLCJzdGF0ZSIsMCksdGhpcy5ob3Q9bH1h'@; put 'cHBlbmRUbyhsKXtsLmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnQpLHRoaXMuc3RhdGU9Mn1idWlsZCgpezA9PT10aGlzLnN0YXRlJiYodGhpcy5fZWxlbWVudD10aGlzLmhvdC5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5zdGF0ZT0xKX1kZXN0cm95KCl7dGhpcy5p'@; put 'c0FwcGVuZGVkKCkmJnRoaXMuX2VsZW1lbnQucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLl9lbGVtZW50KSx0aGlzLl9lbGVtZW50PW51bGwsdGhpcy5zdGF0ZT0wfWlzQXBwZW5kZWQoKXtyZXR1cm4gMj09PXRoaXMuc3RhdGV9aXNCdWlsdCgpe3JldHVybiB0aGlzLnN0YXRlPj0x'@; put 'fXNldFBvc2l0aW9uKGwsYSl7dm9pZCAwIT09bCYmKHRoaXMuX2VsZW1lbnQuc3R5bGUudG9wPWwrcHcpLHZvaWQgMCE9PWEmJih0aGlzLl9lbGVtZW50LnN0eWxlLmxlZnQ9YStwdyl9Z2V0UG9zaXRpb24oKXtyZXR1cm57dG9wOnRoaXMuX2VsZW1lbnQuc3R5bGUudG9wP3BhcnNlSW50KHRo'@; put 'aXMuX2VsZW1lbnQuc3R5bGUudG9wLDEwKTowLGxlZnQ6dGhpcy5fZWxlbWVudC5zdHlsZS5sZWZ0P3BhcnNlSW50KHRoaXMuX2VsZW1lbnQuc3R5bGUubGVmdCwxMCk6MH19c2V0U2l6ZShsLGEpe2wmJih0aGlzLl9lbGVtZW50LnN0eWxlLndpZHRoPWwrcHcpLGEmJih0aGlzLl9lbGVtZW50'@; put 'LnN0eWxlLmhlaWdodD1hK3B3KX1nZXRTaXplKCl7cmV0dXJue3dpZHRoOnRoaXMuX2VsZW1lbnQuc3R5bGUud2lkdGg/cGFyc2VJbnQodGhpcy5fZWxlbWVudC5zdHlsZS53aWR0aCwxMCk6MCxoZWlnaHQ6dGhpcy5fZWxlbWVudC5zdHlsZS5oZWlnaHQ/cGFyc2VJbnQodGhpcy5fZWxlbWVu'@; put 'dC5zdHlsZS5oZWlnaHQsMTApOjB9fXNldE9mZnNldChsLGEpe2wmJih0aGlzLl9lbGVtZW50LnN0eWxlLm1hcmdpblRvcD1sK3B3KSxhJiYodGhpcy5fZWxlbWVudC5zdHlsZS5tYXJnaW5MZWZ0PWErcHcpfWdldE9mZnNldCgpe3JldHVybnt0b3A6dGhpcy5fZWxlbWVudC5zdHlsZS5tYXJn'@; put 'aW5Ub3A/cGFyc2VJbnQodGhpcy5fZWxlbWVudC5zdHlsZS5tYXJnaW5Ub3AsMTApOjAsbGVmdDp0aGlzLl9lbGVtZW50LnN0eWxlLm1hcmdpbkxlZnQ/cGFyc2VJbnQodGhpcy5fZWxlbWVudC5zdHlsZS5tYXJnaW5MZWZ0LDEwKTowfX19LEEzdD1jbGFzcyBUM3QgZXh0ZW5kcyBUbWV7YnVp'@; put 'bGQoKXtzdXBlci5idWlsZCgpLEVpKHRoaXMuX2VsZW1lbnQsImh0X19tYW51YWxSb3dNb3ZlLS1iYWNrbGlnaHQiKX19LEkzdD1jbGFzcyBEM3QgZXh0ZW5kcyBUbWV7YnVpbGQoKXtzdXBlci5idWlsZCgpLEVpKHRoaXMuX2VsZW1lbnQsImh0X19tYW51YWxSb3dNb3ZlLS1ndWlkZWxpbmUi'@; put 'KX19O2Z1bmN0aW9uIGd3KGMsbCxhKXtBbWUoYyxsKSxsLnNldChjLGEpfWZ1bmN0aW9uIEFtZShjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9ZnVuY3Rp'@; put 'b24gTzkoYyxsLGEpe3JldHVybiBjLnNldChnNihjLGwpLGEpLGF9ZnVuY3Rpb24gSHMoYyxsKXtyZXR1cm4gYy5nZXQoZzYoYyxsKSl9ZnVuY3Rpb24gZzYoYyxsLGEpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBjP2M9PT1sOmMuaGFzKGwpKXJldHVybiBhcmd1bWVudHMubGVuZ3RoPDM/bDph'@; put 'O3Rocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgZWxlbWVudCBpcyBub3QgcHJlc2VudCBvbiB0aGlzIG9iamVjdCIpfU1hLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJiZWZvcmVSb3dNb3ZlIiksTWEuZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyUm93TW92ZSIpO2NvbnN0IFhR'@; put 'PSJtYW51YWxSb3dNb3ZlIixrbWU9Imh0X19tYW51YWxSb3dNb3ZlIix3SD0ic2hvdy11aSIscVE9Im9uLW1vdmluZy0tcm93cyIsSlE9ImFmdGVyLXNlbGVjdGlvbi0tcm93cyI7dmFyIHJkPW5ldyBXZWFrTWFwLG02PW5ldyBXZWFrTWFwLGpnPW5ldyBXZWFrTWFwLHY2PW5ldyBXZWFrTWFw'@; put 'LFhkPW5ldyBXZWFrTWFwLENIPW5ldyBXZWFrTWFwLFA5PW5ldyBXZWFrU2V0O2NsYXNzIE8zdCBleHRlbmRzIEZve2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxmdW5jdGlvbiBSM3QoYyxsKXtBbWUoYyxsKSxsLmFkZChjKX0odGhpcyxQOSksZ3codGhpcyxyZCxuZXcgQTN0'@; put 'KHRoaXMuaG90KSksZ3codGhpcyxtNixuZXcgSTN0KHRoaXMuaG90KSksZ3codGhpcyxqZyxbXSksZ3codGhpcyx2Nix2b2lkIDApLGd3KHRoaXMsWGQse30pLGd3KHRoaXMsQ0gsdm9pZCAwKX1zdGF0aWMgZ2V0IFBMVUdJTl9LRVkoKXtyZXR1cm4gWFF9c3RhdGljIGdldCBQTFVHSU5fUFJJ'@; put 'T1JJVFkoKXtyZXR1cm4gMTQwfWlzRW5hYmxlZCgpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtYUV19ZW5hYmxlUGx1Z2luKCl7dmFyIGw9dGhpczt0aGlzLmVuYWJsZWR8fCh0aGlzLmFkZEhvb2soImJlZm9yZU9uQ2VsbE1vdXNlRG93biIsZnVuY3Rpb24oKXtmb3IodmFyIGE9'@; put 'YXJndW1lbnRzLmxlbmd0aCxkPW5ldyBBcnJheShhKSxoPTA7aDxhO2grKylkW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gZzYoUDksbCxQM3QpLmNhbGwobCwuLi5kKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlT25DZWxsTW91c2VPdmVyIixmdW5jdGlvbigpe2Zvcih2YXIgYT1hcmd1bWVudHMu'@; put 'bGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDtoPGE7aCsrKWRbaF09YXJndW1lbnRzW2hdO3JldHVybiBnNihQOSxsLEgzdCkuY2FsbChsLC4uLmQpfSksdGhpcy5hZGRIb29rKCJhZnRlclNjcm9sbEhvcml6b250YWxseSIsKCk9Pmc2KFA5LHRoaXMsVjN0KS5jYWxsKHRoaXMpKSx0aGlzLmFk'@; put 'ZEhvb2soImFmdGVyTG9hZERhdGEiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGgsZD1uZXcgQXJyYXkoYSksaD0wO2g8YTtoKyspZFtoXT1hcmd1bWVudHNbaF07cmV0dXJuIGc2KFA5LGwsQjN0KS5jYWxsKGwsLi4uZCl9KSx0aGlzLmJ1aWxkUGx1Z2luVUkoKSx0aGlz'@; put 'LnJlZ2lzdGVyRXZlbnRzKCksRWkodGhpcy5ob3Qucm9vdEVsZW1lbnQsa21lKSxzdXBlci5lbmFibGVQbHVnaW4oKSl9dXBkYXRlUGx1Z2luKCl7dGhpcy5kaXNhYmxlUGx1Z2luKCksdGhpcy5lbmFibGVQbHVnaW4oKSx0aGlzLm1vdmVCeVNldHRpbmdzT3JMb2FkKCksc3VwZXIudXBkYXRl'@; put 'UGx1Z2luKCl9ZGlzYWJsZVBsdWdpbigpe2hzKHRoaXMuaG90LnJvb3RFbGVtZW50LGttZSksdGhpcy51bnJlZ2lzdGVyRXZlbnRzKCksSHMocmQsdGhpcykuZGVzdHJveSgpLEhzKG02LHRoaXMpLmRlc3Ryb3koKSxzdXBlci5kaXNhYmxlUGx1Z2luKCl9bW92ZVJvdyhsLGEpe3JldHVybiB0'@; put 'aGlzLm1vdmVSb3dzKFtsXSxhKX1tb3ZlUm93cyhsLGEpe2NvbnN0IGQ9SHMoQ0gsdGhpcyksaD10aGlzLmlzTW92ZVBvc3NpYmxlKGwsYSksZj10aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlUm93TW92ZSIsbCxhLGQsaCk7aWYoTzkoQ0gsdGhpcyx2b2lkIDApLCExPT09ZilyZXR1cm47aCYm'@; put 'dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIubW92ZUluZGV4ZXMobCxhKTtjb25zdCB2PWgmJnRoaXMuaXNSb3dPcmRlckNoYW5nZWQobCxhKTtyZXR1cm4gdGhpcy5ob3QucnVuSG9va3MoImFmdGVyUm93TW92ZSIsbCxhLGQsaCx2KSx2fWRyYWdSb3cobCxhKXtyZXR1cm4gdGhpcy5kcmFnUm93'@; put 'cyhbbF0sYSl9ZHJhZ1Jvd3MobCxhKXtjb25zdCBkPXRoaXMuY291bnRGaW5hbEluZGV4KGwsYSk7cmV0dXJuIE85KENILHRoaXMsYSksdGhpcy5tb3ZlUm93cyhsLGQpfWlzTW92ZVBvc3NpYmxlKGwsYSl7Y29uc3QgZD10aGlzLmhvdC5yb3dJbmRleE1hcHBlci5nZXROb3RUcmltbWVkSW5k'@; put 'ZXhlc0xlbmd0aCgpLGg9bC5sZW5ndGgrYT5kLGY9YTwwLHY9bC5zb21lKEk9Pkk8MCksTT1sLnNvbWUoST0+ST49ZCk7cmV0dXJuIShofHxmfHx2fHxNKX1pc1Jvd09yZGVyQ2hhbmdlZChsLGEpe3JldHVybiBsLnNvbWUoKGQsaCk9PmQtaCE9PWEpfWNvdW50RmluYWxJbmRleChsLGEpe2Nv'@; put 'bnN0IGQ9R3UobCwoaCxmKT0+KGY8YSYmKGgrPTEpLGgpLDApO3JldHVybiBhLWR9Z2V0Um93c0hlaWdodChsLGEpe2NvbnN0IGQ9dGhpcy5ob3Qucm93SW5kZXhNYXBwZXI7bGV0IGg9MDtmb3IobGV0IGY9bDtmPD1hO2YrKyl7Y29uc3Qgdj1kLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5k'@; put 'ZXgoZik7bnVsbCE9PXYmJihoKz10aGlzLmhvdC52aWV3Ll93dC53dFRhYmxlLmdldFJvd0hlaWdodCh2KXx8dGhpcy5ob3Quc3R5bGVzSGFuZGxlci5nZXREZWZhdWx0Um93SGVpZ2h0KCkpfXJldHVybiBofW1vdmVCeVNldHRpbmdzT3JMb2FkKCl7Y29uc3QgbD10aGlzLmhvdC5nZXRTZXR0'@; put 'aW5ncygpW1hRXTtpZihBcnJheS5pc0FycmF5KGwpKXRoaXMubW92ZVJvd3MobCwwKTtlbHNlIGlmKHZvaWQgMCE9PWwpe2NvbnN0IGE9dGhpcy5wZXJzaXN0ZW50U3RhdGVMb2FkKCk7YS5sZW5ndGgmJnRoaXMubW92ZVJvd3MoYSwwKX19aXNGaXhlZFJvd1RvcChsKXtyZXR1cm4gbDx0aGlz'@; put 'LmhvdC5nZXRTZXR0aW5ncygpLmZpeGVkUm93c1RvcH1pc0ZpeGVkUm93Qm90dG9tKGwpe3JldHVybiBsPnRoaXMuaG90LmNvdW50Um93cygpLTEtdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5maXhlZFJvd3NCb3R0b219cGVyc2lzdGVudFN0YXRlU2F2ZSgpe3RoaXMuaG90LnJ1bkhvb2tzKCJw'@; put 'ZXJzaXN0ZW50U3RhdGVTYXZlIiwibWFudWFsUm93TW92ZSIsdGhpcy5ob3Qucm93SW5kZXhNYXBwZXIuZ2V0SW5kZXhlc1NlcXVlbmNlKCkpfXBlcnNpc3RlbnRTdGF0ZUxvYWQoKXtjb25zdCBsPXt9O3JldHVybiB0aGlzLmhvdC5ydW5Ib29rcygicGVyc2lzdGVudFN0YXRlTG9hZCIsIm1h'@; put 'bnVhbFJvd01vdmUiLGwpLGwudmFsdWU/bC52YWx1ZTpbXX1wcmVwYXJlUm93c1RvTW92aW5nKCl7Y29uc3QgbD10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLGE9W107aWYoIWwpcmV0dXJuIGE7Y29uc3R7ZnJvbTpkLHRvOmh9PWw7cmV0dXJuIEthKE1hdGgubWluKGQucm93LGgu'@; put 'cm93KSxNYXRoLm1heChkLnJvdyxoLnJvdyksTT0+e2EucHVzaChNKX0pLGF9cmVmcmVzaFBvc2l0aW9ucygpe2NvbnN0IGw9SHMoWGQsdGhpcykuY29vcmRzLGE9dGhpcy5ob3QuZ2V0Rmlyc3RGdWxseVZpc2libGVSb3coKSxkPXRoaXMuaG90LmdldExhc3RGdWxseVZpc2libGVSb3coKSxo'@; put 'PXRoaXMuaG90LmNvdW50Um93cygpO3RoaXMuaXNGaXhlZFJvd1RvcChsLnJvdykmJmE+MCYmdGhpcy5ob3Quc2Nyb2xsVmlld3BvcnRUbyh0aGlzLmhvdC5yb3dJbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoYS0xLC0xKSksdGhpcy5pc0ZpeGVkUm93Qm90dG9tKGwucm93'@; put 'KSYmZDxoJiZ0aGlzLmhvdC5zY3JvbGxWaWV3cG9ydFRvKHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChkKzEsMSksdm9pZCAwLCEwKTtjb25zdCBmPXRoaXMuaG90LnZpZXcuX3d0Lnd0VGFibGUsdj1IcyhYZCx0aGlzKS5URCxNPXRoaXMuaG90LnJv'@; put 'b3RFbGVtZW50LEk9ajAoTSksRz1vXyhNKSxyZT1mLmhvbGRlci5zY3JvbGxUb3AseWU9SS50b3AtKHRoaXMuaG90LnJvb3RXaW5kb3chPT1HP0cuc2Nyb2xsVG9wOjApLEVlPUhzKFhkLHRoaXMpLmV2ZW50UGFnZVkteWUrcmUsQmU9Zi5oaWRlci5vZmZzZXRIZWlnaHQsR2U9Zi5UQk9EWS5v'@; put 'ZmZzZXRUb3Asc3Q9SHMocmQsdGhpcykuZ2V0T2Zmc2V0KCkudG9wLHB0PUhzKHJkLHRoaXMpLmdldFNpemUoKS5oZWlnaHQsZHQ9di5vZmZzZXRIZWlnaHQvMixxdD12Lm9mZnNldEhlaWdodDtsZXQgbW49dGhpcy5ob3Qudmlldy5USEVBRC5vZmZzZXRIZWlnaHQrdGhpcy5nZXRSb3dzSGVp'@; put 'Z2h0KDAsbC5yb3ctMSk7Y29uc3Qgd249RWU+PW1uK2R0O3RoaXMuaXNGaXhlZFJvd1RvcChsLnJvdykmJihtbis9dGhpcy5ob3Qudmlldy5fd3Qud3RPdmVybGF5cy50b3BPdmVybGF5LmdldE92ZXJsYXlPZmZzZXQoKSksbC5yb3c8MD9IcyhYZCx0aGlzKS5yb3c9YT4wP2EtMTphOnduPyhI'@; put 'cyhYZCx0aGlzKS5yb3c9bC5yb3crMSxtbis9MD09PWwucm93P3F0LTE6cXQpOkhzKFhkLHRoaXMpLnJvdz1sLnJvdztsZXQgaG49RWUsTW49bW47RWUrcHQrc3Q+PUJlP2huPUJlLXB0LXN0OkVlK3N0PEdlJiYoaG49R2UrTWF0aC5hYnMoc3QpKSxtbj49QmUtMSYmKE1uPUJlLTEpLEhzKHJk'@; put 'LHRoaXMpLnNldFBvc2l0aW9uKGhuKSxIcyhtNix0aGlzKS5zZXRQb3NpdGlvbihNbil9cmVnaXN0ZXJFdmVudHMoKXtjb25zdHtkb2N1bWVudEVsZW1lbnQ6bH09dGhpcy5ob3Qucm9vdERvY3VtZW50O3RoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIobCwibW91c2Vtb3ZlIixh'@; put 'PT5nNihQOSx0aGlzLEYzdCkuY2FsbCh0aGlzLGEpKSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGwsIm1vdXNldXAiLCgpPT5nNihQOSx0aGlzLE4zdCkuY2FsbCh0aGlzKSl9dW5yZWdpc3RlckV2ZW50cygpe3RoaXMuZXZlbnRNYW5hZ2VyLmNsZWFyKCl9YnVpbGRQbHVn'@; put 'aW5VSSgpe0hzKHJkLHRoaXMpLmJ1aWxkKCksSHMobTYsdGhpcykuYnVpbGQoKX1kZXN0cm95KCl7SHMocmQsdGhpcykuZGVzdHJveSgpLEhzKG02LHRoaXMpLmRlc3Ryb3koKSxzdXBlci5kZXN0cm95KCl9fWZ1bmN0aW9uIFAzdChjLGwsYSxkKXtjb25zdHt3dFRhYmxlOmgsd3RWaWV3cG9y'@; put 'dDpmfT10aGlzLmhvdC52aWV3Ll93dCx2PXRoaXMuaG90LnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlSb3dIZWFkZXIoKSxNPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7aWYoIU18fCF2fHxIcyh2Nix0aGlzKXx8MCE9PWMuYnV0dG9uKXJldHVybiBPOSh2Nix0aGlzLCExKSxIcyhq'@; put 'Zyx0aGlzKS5sZW5ndGg9MCx2b2lkIGhzKHRoaXMuaG90LnJvb3RFbGVtZW50LFtxUSx3SF0pO2NvbnN0IEk9SHMobTYsdGhpcykuaXNCdWlsdCgpJiYhSHMobTYsdGhpcykuaXNBcHBlbmRlZCgpLEc9SHMocmQsdGhpcykuaXNCdWlsdCgpJiYhSHMocmQsdGhpcykuaXNBcHBlbmRlZCgpO0km'@; put 'JkcmJihIcyhtNix0aGlzKS5hcHBlbmRUbyhoLmhpZGVyKSxIcyhyZCx0aGlzKS5hcHBlbmRUbyhoLmhpZGVyKSk7Y29uc3R7ZnJvbTpyZSx0bzp1ZX09TSx5ZT1NYXRoLm1pbihyZS5yb3csdWUucm93KSxFZT1NYXRoLm1heChyZS5yb3csdWUucm93KTtpZihsLmNvbDwwJiZsLnJvdz49eWUm'@; put 'Jmwucm93PD1FZSl7ZC5yb3c9ITAsTzkodjYsdGhpcywhMCksSHMoWGQsdGhpcykuZXZlbnRQYWdlWT1jLnBhZ2VZLEhzKFhkLHRoaXMpLmNvb3Jkcz1sLEhzKFhkLHRoaXMpLlREPWEsTzkoamcsdGhpcyx0aGlzLnByZXBhcmVSb3dzVG9Nb3ZpbmcoKSk7Y29uc3QgQmU9aC5ob2xkZXIuc2Ny'@; put 'b2xsTGVmdCtmLmdldFJvd0hlYWRlcldpZHRoKCksR2U9dGhpcy5nZXRSb3dzSGVpZ2h0KHllLGwucm93LTEpKyhjLmNsaWVudFktYS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3ApO0hzKHJkLHRoaXMpLnNldFBvc2l0aW9uKG51bGwsQmUpLEhzKHJkLHRoaXMpLnNldFNpemUoaC5oaWRl'@; put 'ci5vZmZzZXRXaWR0aC1CZSx0aGlzLmdldFJvd3NIZWlnaHQoeWUsRWUpKSxIcyhyZCx0aGlzKS5zZXRPZmZzZXQoLUdlLG51bGwpLEVpKHRoaXMuaG90LnJvb3RFbGVtZW50LHFRKSx0aGlzLnJlZnJlc2hQb3NpdGlvbnMoKX1lbHNlIGhzKHRoaXMuaG90LnJvb3RFbGVtZW50LEpRKSxPOSh2'@; put 'Nix0aGlzLCExKSxIcyhqZyx0aGlzKS5sZW5ndGg9MH1mdW5jdGlvbiBGM3QoYyl7SHModjYsdGhpcykmJihIcyhYZCx0aGlzKS5ldmVudFBhZ2VZPWMucGFnZVksdGhpcy5yZWZyZXNoUG9zaXRpb25zKCkpfWZ1bmN0aW9uIEgzdChjLGwsYSxkKXshdGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5n'@; put 'ZUxhc3QoKXx8IUhzKHY2LHRoaXMpfHwoSHMoamcsdGhpcykuaW5kZXhPZihsLnJvdyk+LTE/aHModGhpcy5ob3Qucm9vdEVsZW1lbnQsd0gpOkVpKHRoaXMuaG90LnJvb3RFbGVtZW50LHdIKSxkLnJvdz0hMCxkLmNvbHVtbj0hMCxkLmNlbGw9ITAsSHMoWGQsdGhpcykuY29vcmRzPWwsSHMo'@; put 'WGQsdGhpcykuVEQ9YSl9ZnVuY3Rpb24gTjN0KCl7Y29uc3QgYz1IcyhYZCx0aGlzKS5yb3csbD1IcyhqZyx0aGlzKS5sZW5ndGg7aWYoTzkodjYsdGhpcywhMSksaHModGhpcy5ob3Qucm9vdEVsZW1lbnQsW3FRLHdILEpRXSksdGhpcy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeVJvd0hl'@; put 'YWRlcigpJiZFaSh0aGlzLmhvdC5yb290RWxlbWVudCxKUSksbDwxfHx2b2lkIDA9PT1jKXJldHVybjtjb25zdCBhPUhzKGpnLHRoaXMpWzBdLGQ9dGhpcy5ob3QudG9QaHlzaWNhbFJvdyhhKSxoPXRoaXMuZHJhZ1Jvd3MoSHMoamcsdGhpcyksYyk7aWYoSHMoamcsdGhpcykubGVuZ3RoPTAs'@; put 'ITA9PT1oKXt0aGlzLnBlcnNpc3RlbnRTdGF0ZVNhdmUoKSx0aGlzLmhvdC5yZW5kZXIoKSx0aGlzLmhvdC52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSgpO2NvbnN0IGY9dGhpcy5ob3QudG9WaXN1YWxSb3coZCk7dGhpcy5ob3Quc2VsZWN0Um93cyhmLGYrbC0xKX19ZnVuY3Rpb24gVjN0KCl7'@; put 'Y29uc3QgYz10aGlzLmhvdC52aWV3Ll93dC53dFRhYmxlLGQ9dGhpcy5ob3Qudmlldy5fd3Qud3RWaWV3cG9ydC5nZXRSb3dIZWFkZXJXaWR0aCgpK2MuaG9sZGVyLnNjcm9sbExlZnQ7SHMocmQsdGhpcykuc2V0UG9zaXRpb24obnVsbCxkKSxIcyhyZCx0aGlzKS5zZXRTaXplKGMuaGlkZXIu'@; put 'b2Zmc2V0V2lkdGgtZCl9ZnVuY3Rpb24gQjN0KCl7dGhpcy5tb3ZlQnlTZXR0aW5nc09yTG9hZCgpfWZ1bmN0aW9uIFMxKGMsbCxhKXtEbWUoYyxsKSxsLnNldChjLGEpfWZ1bmN0aW9uIERtZShjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXpl'@; put 'IHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9ZnVuY3Rpb24gR2MoYyxsLGEpe3JldHVybiBjLnNldCh6ZyhjLGwpLGEpLGF9ZnVuY3Rpb24geGEoYyxsKXtyZXR1cm4gYy5nZXQoemcoYyxsKSl9ZnVuY3Rpb24gemcoYyxsLGEpe2lmKCJmdW5jdGlvbiI9'@; put 'PXR5cGVvZiBjP2M9PT1sOmMuaGFzKGwpKXJldHVybiBhcmd1bWVudHMubGVuZ3RoPDM/bDphO3Rocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgZWxlbWVudCBpcyBub3QgcHJlc2VudCBvbiB0aGlzIG9iamVjdCIpfWNvbnN0IFNIPSJtYW51YWxSb3dSZXNpemUiLEltZT0ibWFudWFsUm93'@; put 'SGVpZ2h0cyI7dmFyIEtwPW5ldyBXZWFrTWFwLE1IPW5ldyBXZWFrTWFwLFpoPW5ldyBXZWFrTWFwLGRBPW5ldyBXZWFrTWFwLHk2PW5ldyBXZWFrTWFwLFFRPW5ldyBXZWFrTWFwLG13PW5ldyBXZWFrTWFwLHhIPW5ldyBXZWFrTWFwLGlkPW5ldyBXZWFrTWFwLFhwPW5ldyBXZWFrTWFwLEY5'@; put 'PW5ldyBXZWFrTWFwLEVIPW5ldyBXZWFrTWFwLGhBPW5ldyBXZWFrTWFwLGZBPW5ldyBXZWFrTWFwLFMzPW5ldyBXZWFrTWFwLHBBPW5ldyBXZWFrTWFwLGI2PW5ldyBXZWFrU2V0O2NsYXNzIFUzdCBleHRlbmRzIEZve3N0YXRpYyBnZXQgUExVR0lOX0tFWSgpe3JldHVybiBTSH1zdGF0aWMg'@; put 'Z2V0IFBMVUdJTl9QUklPUklUWSgpe3JldHVybiAzMH1jb25zdHJ1Y3RvcihsKXtzdXBlcihsKSxmdW5jdGlvbiBqM3QoYyxsKXtEbWUoYyxsKSxsLmFkZChjKX0odGhpcyxiNiksUzEodGhpcyxLcCxudWxsKSxTMSh0aGlzLE1ILG51bGwpLFMxKHRoaXMsWmgsW10pLFMxKHRoaXMsZEEsbnVs'@; put 'bCksUzEodGhpcyx5NixudWxsKSxTMSh0aGlzLFFRLG51bGwpLFMxKHRoaXMsbXcsbnVsbCksUzEodGhpcyx4SCxudWxsKSxTMSh0aGlzLGlkLHRoaXMuaG90LnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKSksUzEodGhpcyxYcCx0aGlzLmhvdC5yb290RG9jdW1lbnQuY3JlYXRl'@; put 'RWxlbWVudCgiRElWIikpLFMxKHRoaXMsRjksITEpLFMxKHRoaXMsRUgsITEpLFMxKHRoaXMsaEEsMCksUzEodGhpcyxmQSxudWxsKSxTMSh0aGlzLFMzLHZvaWQgMCksUzEodGhpcyxwQSx2b2lkIDApLEVpKHhhKGlkLHRoaXMpLCJtYW51YWxSb3dSZXNpemVyIiksRWkoeGEoWHAsdGhpcyks'@; put 'Im1hbnVhbFJvd1Jlc2l6ZXJHdWlkZSIpfWdldCBpbmxpbmVEaXIoKXtyZXR1cm4gdGhpcy5ob3QuaXNSdGwoKT8icmlnaHQiOiJsZWZ0In1pc0VuYWJsZWQoKXtyZXR1cm4gdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtTSF19ZW5hYmxlUGx1Z2luKCl7dGhpcy5lbmFibGVkfHwoR2MoUzMsdGhp'@; put 'cyxuZXcgam0pLHhhKFMzLHRoaXMpLmFkZExvY2FsSG9vaygiaW5pdCIsKCk9PnpnKGI2LHRoaXMsWDN0KS5jYWxsKHRoaXMpKSx0aGlzLmhvdC5yb3dJbmRleE1hcHBlci5yZWdpc3Rlck1hcCh0aGlzLnBsdWdpbk5hbWUseGEoUzMsdGhpcykpLHRoaXMuYWRkSG9vaygibW9kaWZ5Um93SGVp'@; put 'Z2h0IiwobCxhKT0+emcoYjYsdGhpcyxLM3QpLmNhbGwodGhpcyxsLGEpKSx0aGlzLmJpbmRFdmVudHMoKSxzdXBlci5lbmFibGVQbHVnaW4oKSl9dXBkYXRlUGx1Z2luKCl7dGhpcy5kaXNhYmxlUGx1Z2luKCksdGhpcy5lbmFibGVQbHVnaW4oKSxzdXBlci51cGRhdGVQbHVnaW4oKX1kaXNh'@; put 'YmxlUGx1Z2luKCl7R2MocEEsdGhpcyx4YShTMyx0aGlzKS5nZXRWYWx1ZXMoKSksdGhpcy5ob3Qucm93SW5kZXhNYXBwZXIudW5yZWdpc3Rlck1hcCh0aGlzLnBsdWdpbk5hbWUpLHN1cGVyLmRpc2FibGVQbHVnaW4oKX1zYXZlTWFudWFsUm93SGVpZ2h0cygpe3RoaXMuaG90LnJ1bkhvb2tz'@; put 'KCJwZXJzaXN0ZW50U3RhdGVTYXZlIixJbWUseGEoUzMsdGhpcykuZ2V0VmFsdWVzKCkpfWxvYWRNYW51YWxSb3dIZWlnaHRzKCl7Y29uc3QgbD17fTtyZXR1cm4gdGhpcy5ob3QucnVuSG9va3MoInBlcnNpc3RlbnRTdGF0ZUxvYWQiLEltZSxsKSxsLnZhbHVlfXNldE1hbnVhbFNpemUobCxh'@; put 'KXtjb25zdCBkPXRoaXMuaG90LnRvUGh5c2ljYWxSb3cobCksaD1NYXRoLm1heChhLHRoaXMuaG90LnN0eWxlc0hhbmRsZXIuZ2V0RGVmYXVsdFJvd0hlaWdodCgpKTtyZXR1cm4geGEoUzMsdGhpcykuc2V0VmFsdWVBdEluZGV4KGQsaCksaH1nZXRMYXN0RGVzaXJlZFJvd0hlaWdodCgpe3Jl'@; put 'dHVybiB4YShkQSx0aGlzKX1zZXR1cEhhbmRsZVBvc2l0aW9uKGwpe0djKEtwLHRoaXMsbCk7Y29uc3R7dmlldzphfT10aGlzLmhvdCx7X3d0OmR9PWEsaD1kLnd0VGFibGUuZ2V0Q29vcmRzKHhhKEtwLHRoaXMpKSxmPWgucm93O2lmKGY8MClyZXR1cm47Y29uc3Qgdj1pdSh4YShLcCx0aGlz'@; put 'KSksTT14YShLcCx0aGlzKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxJPWY8ZC5nZXRTZXR0aW5nKCJmaXhlZFJvd3NUb3AiKSxHPWY+PWEuY291bnROb3RIaWRkZW5Sb3dJbmRleGVzKDAsMSktZC5nZXRTZXR0aW5nKCJmaXhlZFJvd3NCb3R0b20iKTtsZXQgcmU7ST9yZT1kLnd0T3Zlcmxh'@; put 'eXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LmdldFJlbGF0aXZlQ2VsbFBvc2l0aW9uKHhhKEtwLHRoaXMpLGgucm93LGguY29sKTpHJiYocmU9ZC53dE92ZXJsYXlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5nZXRSZWxhdGl2ZUNlbGxQb3NpdGlvbih4YShLcCx0aGlz'@; put 'KSxoLnJvdyxoLmNvbCkpLHJlfHwocmU9ZC53dE92ZXJsYXlzLmlubGluZVN0YXJ0T3ZlcmxheS5nZXRSZWxhdGl2ZUNlbGxQb3NpdGlvbih4YShLcCx0aGlzKSxoLnJvdyxoLmNvbCkpLEdjKE1ILHRoaXMsdGhpcy5ob3Qucm93SW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJ'@; put 'bmRleChmKSksR2MoWmgsdGhpcyxbXSk7Y29uc3QgdWU9dGhpcy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5lcigpfHx0aGlzLmhvdC5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCk7dGhpcy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWQoKSYmdWUmJktuKHRoaXMuaG90'@; put 'LmdldFNlbGVjdGVkUmFuZ2UoKSxFZT0+e0thKEVlLmdldFRvcFN0YXJ0Q29ybmVyKCkucm93LEVlLmdldEJvdHRvbVN0YXJ0Q29ybmVyKCkucm93LHN0PT57eGEoWmgsdGhpcykuaW5jbHVkZXMoc3QpfHx4YShaaCx0aGlzKS5wdXNoKHN0KX0pfSkseGEoWmgsdGhpcykuaW5jbHVkZXMoeGEo'@; put 'TUgsdGhpcykpfHxHYyhaaCx0aGlzLFt4YShNSCx0aGlzKV0pLEdjKHhILHRoaXMscmUudG9wLTYpLEdjKG13LHRoaXMscGFyc2VJbnQoTS5oZWlnaHQsMTApKSx4YShpZCx0aGlzKS5zdHlsZS50b3A9YCR7eGEoeEgsdGhpcykreGEobXcsdGhpcyl9cHhgLHhhKGlkLHRoaXMpLnN0eWxlW3Ro'@; put 'aXMuaW5saW5lRGlyXT1gJHtyZS5zdGFydH1weGAseGEoaWQsdGhpcykuc3R5bGUud2lkdGg9YCR7dn1weGAsdGhpcy5ob3Qucm9vdEVsZW1lbnQuYXBwZW5kQ2hpbGQoeGEoaWQsdGhpcykpfXJlZnJlc2hIYW5kbGVQb3NpdGlvbigpe3hhKGlkLHRoaXMpLnN0eWxlLnRvcD1gJHt4YSh4SCx0'@; put 'aGlzKSt4YShkQSx0aGlzKX1weGB9c2V0dXBHdWlkZVBvc2l0aW9uKCl7Y29uc3QgbD1wYXJzZUludChpdSh4YShpZCx0aGlzKSksMTApLGE9cGFyc2VJbnQoeGEoaWQsdGhpcykuc3R5bGVbdGhpcy5pbmxpbmVEaXJdLDEwKStsLGQ9dGhpcy5ob3Qudmlldy5nZXRUYWJsZVdpZHRoKCk7RWko'@; put 'eGEoaWQsdGhpcyksImFjdGl2ZSIpLEVpKHhhKFhwLHRoaXMpLCJhY3RpdmUiKSx4YShYcCx0aGlzKS5zdHlsZS50b3A9eGEoaWQsdGhpcykuc3R5bGUudG9wLHhhKFhwLHRoaXMpLnN0eWxlW3RoaXMuaW5saW5lRGlyXT1gJHthfXB4YCx4YShYcCx0aGlzKS5zdHlsZS53aWR0aD1kLWwrInB4'@; put 'Iix0aGlzLmhvdC5yb290RWxlbWVudC5hcHBlbmRDaGlsZCh4YShYcCx0aGlzKSl9cmVmcmVzaEd1aWRlUG9zaXRpb24oKXt4YShYcCx0aGlzKS5zdHlsZS50b3A9eGEoaWQsdGhpcykuc3R5bGUudG9wfWhpZGVIYW5kbGVBbmRHdWlkZSgpe2hzKHhhKGlkLHRoaXMpLCJhY3RpdmUiKSxocyh4'@; put 'YShYcCx0aGlzKSwiYWN0aXZlIil9Y2hlY2tJZlJvd0hlYWRlcihsKXtjb25zdCBhPURtKGwsWyJUQk9EWSJdLHRoaXMuaG90LnJvb3RFbGVtZW50KSx7aW5saW5lU3RhcnRPdmVybGF5OmQsdG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5OmgsYm90dG9tSW5saW5lU3RhcnRDb3JuZXJPdmVy'@; put 'bGF5OmZ9PXRoaXMuaG90LnZpZXcuX3d0Lnd0T3ZlcmxheXM7cmV0dXJuW2QuY2xvbmUud3RUYWJsZS5UQk9EWSxoLmNsb25lLnd0VGFibGUuVEJPRFksZi5jbG9uZS53dFRhYmxlLlRCT0RZXS5pbmNsdWRlcyhhKX1nZXRDbG9zZXN0VEhQYXJlbnQobCl7cmV0dXJuIlRBQkxFIiE9PWwudGFn'@; put 'TmFtZT8iVEgiPT09bC50YWdOYW1lP2w6dGhpcy5nZXRDbG9zZXN0VEhQYXJlbnQobC5wYXJlbnROb2RlKTpudWxsfWdldEFjdHVhbFJvd0hlaWdodChsKXtjb25zdCBhPXRoaXMuaG90LnZpZXcuX3d0Lnd0VGFibGUuZ2V0Um93SGVpZ2h0KGwpO3JldHVybiB2b2lkIDAhPT1hJiZ4YSh5Nix0'@; put 'aGlzKTxhP2E6eGEoeTYsdGhpcyl9YWZ0ZXJNb3VzZURvd25UaW1lb3V0KCl7Y29uc3QgbD0oKT0+e3RoaXMuaG90LnJlbmRlcigpLHRoaXMuaG90LnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCl9LGE9KGQsaCk9Pntjb25zdCBmPXRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVSb3dSZXNpemUi'@; put 'LHRoaXMuZ2V0QWN0dWFsUm93SGVpZ2h0KGQpLGQsITApO3ZvaWQgMCE9PWYmJkdjKHk2LHRoaXMsZiksdGhpcy5zZXRNYW51YWxTaXplKGQseGEoeTYsdGhpcykpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlclJvd1Jlc2l6ZSIsdGhpcy5nZXRBY3R1YWxSb3dIZWlnaHQoZCksZCwhMCksaCYm'@; put 'bCgpfTt4YShoQSx0aGlzKT49MiYmKHhhKFpoLHRoaXMpLmxlbmd0aD4xPyhLbih4YShaaCx0aGlzKSxoPT57YShoKX0pLGwoKSk6S24oeGEoWmgsdGhpcyksaD0+e2EoaCwhMCl9KSksR2MoaEEsdGhpcywwKSxHYyhmQSx0aGlzLG51bGwpfWJpbmRFdmVudHMoKXtjb25zdHtyb290RWxlbWVu'@; put 'dDpsLHJvb3RXaW5kb3c6YX09dGhpcy5ob3Q7dGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihsLCJtb3VzZW92ZXIiLGQ9PnpnKGI2LHRoaXMsWjN0KS5jYWxsKHRoaXMsZCkpLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIobCwibW91c2Vkb3duIixkPT56Zyhi'@; put 'Nix0aGlzLFczdCkuY2FsbCh0aGlzLGQpKSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGEsIm1vdXNlbW92ZSIsZD0+emcoYjYsdGhpcyxZM3QpLmNhbGwodGhpcyxkKSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihhLCJtb3VzZXVwIiwoKT0+emcoYjYs'@; put 'dGhpcyxHM3QpLmNhbGwodGhpcykpLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoeGEoaWQsdGhpcyksImNvbnRleHRtZW51IiwoKT0+emcoYjYsdGhpcywkM3QpLmNhbGwodGhpcykpfWRlc3Ryb3koKXtzdXBlci5kZXN0cm95KCl9fWZ1bmN0aW9uIFozdChjKXtpZighUCQo'@; put 'Yy50YXJnZXQpJiYhMCE9PXhhKEVILHRoaXMpJiZ0aGlzLmNoZWNrSWZSb3dIZWFkZXIoYy50YXJnZXQpKXtjb25zdCBsPXRoaXMuZ2V0Q2xvc2VzdFRIUGFyZW50KGMudGFyZ2V0KTtsJiYoeGEoRjksdGhpcyl8fHRoaXMuc2V0dXBIYW5kbGVQb3NpdGlvbihsKSl9fWZ1bmN0aW9uIFczdChj'@; put 'KXtncyhjLnRhcmdldCwibWFudWFsUm93UmVzaXplciIpJiYodGhpcy5zZXR1cEhhbmRsZVBvc2l0aW9uKHhhKEtwLHRoaXMpKSx0aGlzLnNldHVwR3VpZGVQb3NpdGlvbigpLEdjKEY5LHRoaXMsITApLG51bGw9PT14YShmQSx0aGlzKSYmKEdjKGZBLHRoaXMsc2V0VGltZW91dCgoKT0+dGhp'@; put 'cy5hZnRlck1vdXNlRG93blRpbWVvdXQoKSw1MDApKSx0aGlzLmhvdC5fcmVnaXN0ZXJUaW1lb3V0KHhhKGZBLHRoaXMpKSksR2MoaEEsdGhpcyx4YShoQSx0aGlzKSsxKSxHYyhRUSx0aGlzLGMucGFnZVkpLEdjKHk2LHRoaXMseGEobXcsdGhpcykpKX1mdW5jdGlvbiBZM3QoYyl7eGEoRjks'@; put 'dGhpcykmJihHYyhkQSx0aGlzLHhhKG13LHRoaXMpKyhjLnBhZ2VZLXhhKFFRLHRoaXMpKSksS24oeGEoWmgsdGhpcyksbD0+e0djKHk2LHRoaXMsdGhpcy5zZXRNYW51YWxTaXplKGwseGEoZEEsdGhpcykpKX0pLHRoaXMucmVmcmVzaEhhbmRsZVBvc2l0aW9uKCksdGhpcy5yZWZyZXNoR3Vp'@; put 'ZGVQb3NpdGlvbigpKX1mdW5jdGlvbiBHM3QoKXtjb25zdCBjPSgpPT57dGhpcy5ob3QucmVuZGVyKCksdGhpcy5ob3Qudmlldy5hZGp1c3RFbGVtZW50c1NpemUoKX0sbD0oYSxkKT0+e3RoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVSb3dSZXNpemUiLHRoaXMuZ2V0QWN0dWFsUm93SGVpZ2h0'@; put 'KGEpLGEsITEpLGQmJmMoKSx0aGlzLnNhdmVNYW51YWxSb3dIZWlnaHRzKCksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyUm93UmVzaXplIix0aGlzLmdldEFjdHVhbFJvd0hlaWdodChhKSxhLCExKX07eGEoRjksdGhpcykmJih0aGlzLmhpZGVIYW5kbGVBbmRHdWlkZSgpLEdjKEY5LHRoaXMs'@; put 'ITEpLHhhKHk2LHRoaXMpIT09eGEobXcsdGhpcykmJih4YShaaCx0aGlzKS5sZW5ndGg+MT8oS24oeGEoWmgsdGhpcyksZD0+e2woZCl9KSxjKCkpOktuKHhhKFpoLHRoaXMpLGQ9PntsKGQsITApfSkpLHRoaXMuc2V0dXBIYW5kbGVQb3NpdGlvbih4YShLcCx0aGlzKSkpfWZ1bmN0aW9uICQz'@; put 'dCgpe3RoaXMuaGlkZUhhbmRsZUFuZEd1aWRlKCksdGhpcy5ob3Qucm9vdEVsZW1lbnQucmVtb3ZlQ2hpbGQoeGEoaWQsdGhpcykpLHRoaXMuaG90LnJvb3RFbGVtZW50LnJlbW92ZUNoaWxkKHhhKFhwLHRoaXMpKSxHYyhGOSx0aGlzLCExKSxHYyhFSCx0aGlzLCEwKSx0aGlzLmhvdC5fcmVn'@; put 'aXN0ZXJJbW1lZGlhdGUoKCk9PntHYyhFSCx0aGlzLCExKX0pfWZ1bmN0aW9uIEszdChjLGwpe2xldCBhPWM7aWYodGhpcy5lbmFibGVkKXtjb25zdCBkPXRoaXMuaG90LnRvUGh5c2ljYWxSb3cobCksaD14YShTMyx0aGlzKS5nZXRWYWx1ZUF0SW5kZXgoZCk7dGhpcy5ob3QuZ2V0U2V0dGlu'@; put 'Z3MoKVtTSF0mJmgmJihhPWgpfXJldHVybiBhfWZ1bmN0aW9uIFgzdCgpe2NvbnN0IGM9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtTSF0sbD10aGlzLmxvYWRNYW51YWxSb3dIZWlnaHRzKCk7dGhpcy5ob3QuYmF0Y2hFeGVjdXRpb24oKCk9Pnt0eXBlb2YgbDwidSI/bC5mb3JFYWNoKChhLGQp'@; put 'PT57eGEoUzMsdGhpcykuc2V0VmFsdWVBdEluZGV4KGQsYSl9KTpBcnJheS5pc0FycmF5KGMpPyhjLmZvckVhY2goKGEsZCk9Pnt4YShTMyx0aGlzKS5zZXRWYWx1ZUF0SW5kZXgoZCxhKX0pLEdjKHBBLHRoaXMsYykpOiEwPT09YyYmQXJyYXkuaXNBcnJheSh4YShwQSx0aGlzKSkmJnhhKHBB'@; put 'LHRoaXMpLmZvckVhY2goKGEsZCk9Pnt4YShTMyx0aGlzKS5zZXRWYWx1ZUF0SW5kZXgoZCxhKX0pfSwhMCl9ZnVuY3Rpb24gSDkoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIFEzdChjKXt2YXIgbD1mdW5jdGlvbiBlcHQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBj'@; put 'O3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZh'@; put 'bHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3'@; put 'cml0YWJsZTohMH0pOmNbbF09YSxjfWZ1bmN0aW9uIFJtZShjLGwpe3JldHVybiBjLmdldChMbWUoYyxsKSl9ZnVuY3Rpb24gVEgoYyxsLGEpe3JldHVybiBjLnNldChMbWUoYyxsKSxhKSxhfWZ1bmN0aW9uIExtZShjLGwsYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGM/Yz09PWw6Yy5oYXMo'@; put 'bCkpcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mz9sOmE7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBlbGVtZW50IGlzIG5vdCBwcmVzZW50IG9uIHRoaXMgb2JqZWN0Iil9Yig2ODE0NiksYig3NDk5KTt2YXIgTjk9bmV3IFdlYWtNYXA7Y29uc3QgcXA9Y2xhc3MgdHB0e2NvbnN0cnVj'@; put 'dG9yKGwsYSxkLGgsZix2KXtIOSh0aGlzLCJyb3ciLHZvaWQgMCksSDkodGhpcywiY29sIix2b2lkIDApLEg5KHRoaXMsInJvd3NwYW4iLHZvaWQgMCksSDkodGhpcywiY29sc3BhbiIsdm9pZCAwKSxIOSh0aGlzLCJyZW1vdmVkIiwhMSksSDkodGhpcywiY2VsbENvb3Jkc0ZhY3RvcnkiLHZv'@; put 'aWQgMCksSDkodGhpcywiY2VsbFJhbmdlRmFjdG9yeSIsdm9pZCAwKSxmdW5jdGlvbiBxM3QoYyxsLGEpeyhmdW5jdGlvbiBKM3QoYyxsKXtpZihsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9u'@; put 'IGFuIG9iamVjdCIpfSkoYyxsKSxsLnNldChjLGEpfSh0aGlzLE45LG51bGwpLHRoaXMucm93PWwsdGhpcy5jb2w9YSx0aGlzLnJvd3NwYW49ZCx0aGlzLmNvbHNwYW49aCx0aGlzLmNlbGxDb29yZHNGYWN0b3J5PWYsdGhpcy5jZWxsUmFuZ2VGYWN0b3J5PXZ9c3RhdGljIE5FR0FUSVZFX1ZB'@; put 'TFVFU19XQVJOSU5HKGwpe2xldHtyb3c6YSxjb2w6ZCxyb3dzcGFuOmgsY29sc3BhbjpmfT1sO3JldHVybiBobGBUaGUgbWVyZ2VkIGNlbGwgZGVjbGFyZWQgd2l0aCB7cm93OiAke2F9LCBjb2w6ICR7ZH0sXHgyMAogICAgICByb3dzcGFuOiAke2h9LCBjb2xzcGFuOiAke2Z9fSBjb250YWlu'@; put 'cyBuZWdhdGl2ZSB2YWx1ZXMsIHdoaWNoIGlzXHgyMAogICAgICBub3Qgc3VwcG9ydGVkLiBJdCB3aWxsIG5vdCBiZSBhZGRlZCB0byB0aGUgY29sbGVjdGlvbi5gfXN0YXRpYyBJU19PVVRfT0ZfQk9VTkRTX1dBUk5JTkcobCl7bGV0e3JvdzphLGNvbDpkfT1sO3JldHVybiBobGBUaGUgbWVy'@; put 'Z2VkIGNlbGwgZGVjbGFyZWQgYXQgWyR7YX0sICR7ZH1dIGlzIHBvc2l0aW9uZWRceDIwCiAgICAgIChvciBwb3NpdGlvbmVkIHBhcnRpYWxseSkgb3V0c2lkZSBvZiB0aGUgdGFibGUgcmFuZ2UuIEl0IHdhcyBub3QgYWRkZWQgdG8gdGhlIHRhYmxlLCBwbGVhc2UgZml4IHlvdXIgc2V0dXAu'@; put 'YH1zdGF0aWMgSVNfU0lOR0xFX0NFTEwobCl7bGV0e3JvdzphLGNvbDpkfT1sO3JldHVybiBobGBUaGUgbWVyZ2VkIGNlbGwgZGVjbGFyZWQgYXQgWyR7YX0sICR7ZH1dIGhhcyBib3RoICJyb3dzcGFuIlx4MjAKICAgICAgYW5kICJjb2xzcGFuIiBkZWNsYXJlZCBhcyAiMSIsIHdoaWNoIG1h'@; put 'a2VzIGl0IGEgc2luZ2xlIGNlbGwuIEl0IGNhbm5vdCBiZSBhZGRlZCB0byB0aGUgY29sbGVjdGlvbi5gfXN0YXRpYyBaRVJPX1NQQU5fV0FSTklORyhsKXtsZXR7cm93OmEsY29sOmR9PWw7cmV0dXJuIGhsYFRoZSBtZXJnZWQgY2VsbCBkZWNsYXJlZCBhdCBbJHthfSwgJHtkfV0gaGFzICJy'@; put 'b3dzcGFuIlx4MjAKICAgICAgb3IgImNvbHNwYW4iIGRlY2xhcmVkIGFzICIwIiwgd2hpY2ggaXMgbm90IHN1cHBvcnRlZC4gSXQgY2Fubm90IGJlIGFkZGVkIHRvIHRoZSBjb2xsZWN0aW9uLmB9c3RhdGljIGNvbnRhaW5zTmVnYXRpdmVWYWx1ZXMobCl7bGV0e3JvdzphLGNvbDpkLHJvd3Nw'@; put 'YW46aCxjb2xzcGFuOmZ9PWw7cmV0dXJuIGE8MHx8ZDwwfHxoPDB8fGY8MH1zdGF0aWMgaXNTaW5nbGVDZWxsKGwpe2xldHtyb3dzcGFuOmEsY29sc3BhbjpkfT1sO3JldHVybiAxPT09ZCYmMT09PWF9c3RhdGljIGNvbnRhaW5zWmVyb1NwYW4obCl7bGV0e3Jvd3NwYW46YSxjb2xzcGFuOmR9'@; put 'PWw7cmV0dXJuIDA9PT1kfHwwPT09YX1zdGF0aWMgaXNPdXRPZkJvdW5kcyhsLGEsZCl7cmV0dXJuIGwucm93PDB8fGwuY29sPDB8fGwucm93Pj1hfHxsLnJvdytsLnJvd3NwYW4tMT49YXx8bC5jb2w+PWR8fGwuY29sK2wuY29sc3Bhbi0xPj1kfW5vcm1hbGl6ZShsKXtjb25zdCBhPWwuY291'@; put 'bnRSb3dzKCksZD1sLmNvdW50Q29scygpO3RoaXMucm93PDA/dGhpcy5yb3c9MDp0aGlzLnJvdz5hLTEmJih0aGlzLnJvdz1hLTEpLHRoaXMuY29sPDA/dGhpcy5jb2w9MDp0aGlzLmNvbD5kLTEmJih0aGlzLmNvbD1kLTEpLHRoaXMucm93K3RoaXMucm93c3Bhbj5hLTEmJih0aGlzLnJvd3Nw'@; put 'YW49YS10aGlzLnJvdyksdGhpcy5jb2wrdGhpcy5jb2xzcGFuPmQtMSYmKHRoaXMuY29sc3Bhbj1kLXRoaXMuY29sKSxUSChOOSx0aGlzLG51bGwpfWluY2x1ZGVzKGwsYSl7cmV0dXJuIHRoaXMucm93PD1sJiZ0aGlzLmNvbDw9YSYmdGhpcy5yb3crdGhpcy5yb3dzcGFuLTE+PWwmJnRoaXMu'@; put 'Y29sK3RoaXMuY29sc3Bhbi0xPj1hfWluY2x1ZGVzSG9yaXpvbnRhbGx5KGwpe3JldHVybiB0aGlzLmNvbDw9bCYmdGhpcy5jb2wrdGhpcy5jb2xzcGFuLTE+PWx9aW5jbHVkZXNWZXJ0aWNhbGx5KGwpe3JldHVybiB0aGlzLnJvdzw9bCYmdGhpcy5yb3crdGhpcy5yb3dzcGFuLTE+PWx9c2hp'@; put 'ZnQobCxhKXtjb25zdCBkPWxbMF18fGxbMV0saD1hK01hdGguYWJzKGxbMF18fGxbMV0pLTEsZj1sWzBdPyJjb2xzcGFuIjoicm93c3BhbiIsdj1sWzBdPyJjb2wiOiJyb3ciLE09TWF0aC5taW4oYSxoKSxJPU1hdGgubWF4KGEsaCksRz10aGlzW3ZdLHJlPXRoaXNbdl0rdGhpc1tmXS0xO2lm'@; put 'KEc+PWEmJih0aGlzW3ZdKz1kKSxkPjApYTw9cmUmJmE+RyYmKHRoaXNbZl0rPWQpO2Vsc2UgaWYoZDwwKXtpZihNPD1HJiZJPj1yZSlyZXR1cm4gdGhpcy5yZW1vdmVkPSEwLFRIKE45LHRoaXMsbnVsbCksITE7aWYoRz49TSYmRzw9SSl7Y29uc3QgdWU9SS1HKzEseWU9TWF0aC5hYnMoZCkt'@; put 'dWU7dGhpc1t2XS09eWUrZCx0aGlzW2ZdLT11ZX1lbHNlIEc8PU0mJnJlPj1JP3RoaXNbZl0rPWQ6Rzw9TSYmcmU+PU0mJnJlPEkmJih0aGlzW2ZdLT1yZS1NKzEpfXJldHVybiBUSChOOSx0aGlzLG51bGwpLCEwfWlzRmFydGhlcihsLGEpe3JldHVybiFsfHwoImRvd24iPT09YT9sLnJvdyts'@; put 'LnJvd3NwYW4tMTx0aGlzLnJvdyt0aGlzLnJvd3NwYW4tMToidXAiPT09YT9sLnJvdz50aGlzLnJvdzoicmlnaHQiPT09YT9sLmNvbCtsLmNvbHNwYW4tMTx0aGlzLmNvbCt0aGlzLmNvbHNwYW4tMToibGVmdCI9PT1hP2wuY29sPnRoaXMuY29sOm51bGwpfWdldExhc3RSb3coKXtyZXR1cm4g'@; put 'dGhpcy5yb3crdGhpcy5yb3dzcGFuLTF9Z2V0TGFzdENvbHVtbigpe3JldHVybiB0aGlzLmNvbCt0aGlzLmNvbHNwYW4tMX1nZXRSYW5nZSgpe3JldHVybiBSbWUoTjksdGhpcyl8fFRIKE45LHRoaXMsdGhpcy5jZWxsUmFuZ2VGYWN0b3J5KHRoaXMuY2VsbENvb3Jkc0ZhY3RvcnkodGhpcy5y'@; put 'b3csdGhpcy5jb2wpLHRoaXMuY2VsbENvb3Jkc0ZhY3RvcnkodGhpcy5yb3csdGhpcy5jb2wpLHRoaXMuY2VsbENvb3Jkc0ZhY3RvcnkodGhpcy5nZXRMYXN0Um93KCksdGhpcy5nZXRMYXN0Q29sdW1uKCkpKSksUm1lKE45LHRoaXMpfX07ZnVuY3Rpb24gQUgoYyxsLGEpe3JldHVybihsPWZ1'@; put 'bmN0aW9uIGlwdChjKXt2YXIgbD1mdW5jdGlvbiBhcHQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2Yg'@; put 'ZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwp'@; put 'KWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWZ1bmN0aW9uIFY5KGMsbCxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhsKSlyZXR1cm4gYXJndW1l'@; put 'bnRzLmxlbmd0aDwzP2w6YTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGVsZW1lbnQgaXMgbm90IHByZXNlbnQgb24gdGhpcyBvYmplY3QiKX12YXIgXzY9bmV3IFdlYWtTZXQ7Y2xhc3Mga0h7Y29uc3RydWN0b3IobCl7KGZ1bmN0aW9uIG5wdChjLGwpeyhmdW5jdGlvbiBycHQoYyxs'@; put 'KXtpZihsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfSkoYyxsKSxsLmFkZChjKX0pKHRoaXMsXzYpLEFIKHRoaXMsInBsdWdpbiIsdm9pZCAwKSxBSCh0aGlzLCJtZXJn'@; put 'ZWRDZWxscyIsW10pLEFIKHRoaXMsIm1lcmdlZENlbGxzTWF0cml4IixuZXcgTWFwKSxBSCh0aGlzLCJob3QiLHZvaWQgMCksdGhpcy5wbHVnaW49bCx0aGlzLmhvdD1sLmhvdH1zdGF0aWMgSVNfT1ZFUkxBUFBJTkdfV0FSTklORyhsKXtsZXR7cm93OmEsY29sOmR9PWw7cmV0dXJuIGhsYFRo'@; put 'ZSBtZXJnZWQgY2VsbCBkZWNsYXJlZCBhdCBbJHthfSwgJHtkfV0sIG92ZXJsYXBzXHgyMAogICAgICB3aXRoIHRoZSBvdGhlciBkZWNsYXJlZCBtZXJnZWQgY2VsbC4gVGhlIG92ZXJsYXBwaW5nIG1lcmdlZCBjZWxsIHdhcyBub3QgYWRkZWQgdG8gdGhlIHRhYmxlLCBwbGVhc2VceDIwCiAg'@; put 'ICAgIGZpeCB5b3VyIHNldHVwLmB9Z2V0KGwsYSl7dmFyIGQ7cmV0dXJuISghdGhpcy5tZXJnZWRDZWxsc01hdHJpeC5oYXMobCl8fG51bGw9PT0oZD10aGlzLm1lcmdlZENlbGxzTWF0cml4LmdldChsKS5nZXQoYSkpfHx2b2lkIDA9PT1kKSYmZH1nZXRCeVJhbmdlKGwpe2NvbnN0e3Jvdzph'@; put 'LGNvbDpkfT1sLmdldFRvcFN0YXJ0Q29ybmVyKCkse3JvdzpoLGNvbDpmfT1sLmdldEJvdHRvbUVuZENvcm5lcigpLHY9dGhpcy5tZXJnZWRDZWxscy5sZW5ndGg7bGV0IE09ITE7Zm9yKGxldCBJPTA7STx2O0krKyl7Y29uc3QgRz10aGlzLm1lcmdlZENlbGxzW0ldLHtyb3c6cmUsY29sOnVl'@; put 'LHJvd3NwYW46eWUsY29sc3BhbjpFZX09RztpZihyZT49YSYmcmUreWUtMTw9aCYmdWU+PWQmJnVlK0VlLTE8PWYpe009RzticmVha319cmV0dXJuIE19ZmlsdGVyT3ZlcmxhcHBpbmdNZXJnZUNlbGxzKGwpe2NvbnN0IGE9bmV3IFNldDtyZXR1cm4gdGhpcy5tZXJnZWRDZWxscy5mb3JFYWNo'@; put 'KGg9Pntjb25zdHtyb3c6Zixjb2w6dixjb2xzcGFuOk0scm93c3BhbjpJfT1oO2ZvcihsZXQgRz1mO0c8ZitJO0crKylmb3IobGV0IHJlPXY7cmU8ditNO3JlKyspYS5hZGQoYHIke0d9LGMke3JlfWApfSksbC5maWx0ZXIoaD0+e2NvbnN0e3JvdzpmLGNvbDp2LGNvbHNwYW46TSxyb3dzcGFu'@; put 'Okl9PWgsRz1uZXcgU2V0O2xldCByZT0hMTtmb3IobGV0IHVlPWY7dWU8ZitJO3VlKyspe2ZvcihsZXQgeWU9djt5ZTx2K007eWUrKyl7Y29uc3QgRWU9YHIke3VlfSxjJHt5ZX1gO2lmKGEuaGFzKEVlKSl7WW8oa0guSVNfT1ZFUkxBUFBJTkdfV0FSTklORyhoKSkscmU9ITA7YnJlYWt9Ry5h'@; put 'ZGQoRWUpfWlmKHJlKWJyZWFrfXJldHVybiByZXx8YS5hZGQoLi4uRyksIXJlfSl9Z2V0V2l0aGluUmFuZ2UobCl7bGV0IGE9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXTtjb25zdHtyb3c6ZCxjb2w6aH09bC5nZXRUb3BTdGFydENvcm5l'@; put 'cigpLHtyb3c6Zixjb2w6dn09bC5nZXRCb3R0b21FbmRDb3JuZXIoKSxNPVtdO2ZvcihsZXQgST1kO0k8PWY7SSsrKWZvcihsZXQgRz1oO0c8PXY7RysrKXtjb25zdCByZT10aGlzLmdldChJLEcpO3JlJiYoYXx8IWEmJnJlLnJvdz09PUkmJnJlLmNvbD09PUcpJiZNLnB1c2gocmUpfXJldHVy'@; put 'biBNfWFkZChsKXtsZXQgYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdO2NvbnN0IGQ9bC5yb3csaD1sLmNvbCxNPW5ldyBxcChkLGgsbC5yb3dzcGFuLGwuY29sc3Bhbix0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3Jkcyx0aGlzLmhvdC5f'@; put 'Y3JlYXRlQ2VsbFJhbmdlKSxJPXRoaXMuZ2V0KGQsaCksRz0hYSYmdGhpcy5pc092ZXJsYXBwaW5nKE0pO3JldHVybiBJfHxHPyhHJiZZbyhrSC5JU19PVkVSTEFQUElOR19XQVJOSU5HKE0pKSwhMSk6KHRoaXMuaG90JiZNLm5vcm1hbGl6ZSh0aGlzLmhvdCksdGhpcy5tZXJnZWRDZWxscy5w'@; put 'dXNoKE0pLFY5KF82LHRoaXMsT21lKS5jYWxsKHRoaXMsTSksTSl9cmVtb3ZlKGwsYSl7Y29uc3QgZD10aGlzLmdldChsLGEpLGg9ZD90aGlzLm1lcmdlZENlbGxzLmluZGV4T2YoZCk6LTE7cmV0dXJuISghZHx8LTE9PT1oKSYmKHRoaXMubWVyZ2VkQ2VsbHMuc3BsaWNlKGgsMSksVjkoXzYs'@; put 'dGhpcyxzcHQpLmNhbGwodGhpcyxkKSxkKX1jbGVhcigpe0tuKHRoaXMubWVyZ2VkQ2VsbHMsbD0+e2xldHtyb3c6YSxjb2w6ZCxyb3dzcGFuOmgsY29sc3BhbjpmfT1sO0thKGEsYStoLHY9PntLYShkLGQrZixNPT57Y29uc3QgST10aGlzLmhvdC5nZXRDZWxsKHYsTSk7SSYmKEkucmVtb3Zl'@; put 'QXR0cmlidXRlKCJyb3dzcGFuIiksSS5yZW1vdmVBdHRyaWJ1dGUoImNvbHNwYW4iKSxJLnN0eWxlLmRpc3BsYXk9IiIpfSl9KX0pLHRoaXMubWVyZ2VkQ2VsbHMubGVuZ3RoPTAsdGhpcy5tZXJnZWRDZWxsc01hdHJpeD1uZXcgTWFwfWlzT3ZlcmxhcHBpbmcobCl7Y29uc3QgYT1sLmdldFJh'@; put 'bmdlKCk7Zm9yKGxldCBkPTA7ZDx0aGlzLm1lcmdlZENlbGxzLmxlbmd0aDtkKyspaWYodGhpcy5tZXJnZWRDZWxsc1tkXS5nZXRSYW5nZSgpLm92ZXJsYXBzKGEpKXJldHVybiEwO3JldHVybiExfWlzRmlyc3RSZW5kZXJhYmxlTWVyZ2VkQ2VsbChsLGEpe2NvbnN0IGQ9dGhpcy5nZXQobCxh'@; put 'KTtpZighZClyZXR1cm4hMTtjb25zdHtyb3c6aCxjb2w6Zixyb3dzcGFuOnYsY29sc3BhbjpNfT1kLEk9dGhpcy5ob3Qudmlldy5nZXRBY3RpdmVPdmVybGF5TmFtZSgpLEc9WyJ0b3AiLCJ0b3BfaW5saW5lX3N0YXJ0X2Nvcm5lciJdLmluY2x1ZGVzKEkpPzA6dGhpcy5ob3QuZ2V0Rmlyc3RS'@; put 'ZW5kZXJlZFZpc2libGVSb3coKSxyZT1bImlubGluZV9zdGFydCIsInRvcF9pbmxpbmVfc3RhcnRfY29ybmVyIiwiYm90dG9tX2lubGluZV9zdGFydF9jb3JuZXIiXS5pbmNsdWRlcyhJKT8wOnRoaXMuaG90LmdldEZpcnN0UmVuZGVyZWRWaXNpYmxlQ29sdW1uKCksdWU9QW8oRyxoLGgrdi0x'@; put 'KSx5ZT1BbyhyZSxmLGYrTS0xKTtyZXR1cm4gdGhpcy5ob3Qucm93SW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KHVlLDEpPT09bCYmdGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KHllLDEpPT09YX1nZXRGaXJzdFJlbmRlcmFi'@; put 'bGVDb29yZHMobCxhKXtjb25zdCBkPXRoaXMuZ2V0KGwsYSk7aWYoIWR8fHRoaXMuaXNGaXJzdFJlbmRlcmFibGVNZXJnZWRDZWxsKGwsYSkpcmV0dXJuIHRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKGwsYSk7Y29uc3QgaD10aGlzLmhvdC5yb3dJbmRleE1hcHBlci5nZXROZWFyZXN0Tm90'@; put 'SGlkZGVuSW5kZXgoZC5yb3csMSksZj10aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoZC5jb2wsMSk7cmV0dXJuIHRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKGgsZil9Z2V0U3RhcnRNb3N0Q29sdW1uSW5kZXgobCxhKXtjb25zdCBkPVY5KF82'@; put 'LHRoaXMsREgpLmNhbGwodGhpcyxsLCJjb2wiLC0xKTtsZXQgaD1hO2ZvcihsZXQgZj0wO2Y8ZC5sZW5ndGg7ZisrKWlmKGRbZl08PWEpe2g9ZFtmXTticmVha31yZXR1cm4gaH1nZXRFbmRNb3N0Q29sdW1uSW5kZXgobCxhKXtjb25zdCBkPVY5KF82LHRoaXMsREgpLmNhbGwodGhpcyxsLCJj'@; put 'b2wiLDEpO2xldCBoPWE7Zm9yKGxldCBmPTA7ZjxkLmxlbmd0aDtmKyspaWYoZFtmXT49YSl7aD1kW2ZdO2JyZWFrfXJldHVybiBofWdldFRvcE1vc3RSb3dJbmRleChsLGEpe2NvbnN0IGQ9VjkoXzYsdGhpcyxESCkuY2FsbCh0aGlzLGwsInJvdyIsLTEpO2xldCBoPWE7Zm9yKGxldCBmPTA7'@; put 'ZjxkLmxlbmd0aDtmKyspaWYoZFtmXTw9YSl7aD1kW2ZdO2JyZWFrfXJldHVybiBofWdldEJvdHRvbU1vc3RSb3dJbmRleChsLGEpe2NvbnN0IGQ9VjkoXzYsdGhpcyxESCkuY2FsbCh0aGlzLGwsInJvdyIsMSk7bGV0IGg9YTtmb3IobGV0IGY9MDtmPGQubGVuZ3RoO2YrKylpZihkW2ZdPj1h'@; put 'KXtoPWRbZl07YnJlYWt9cmV0dXJuIGh9c2hpZnRDb2xsZWN0aW9ucyhsLGEsZCl7Y29uc3QgaD1bMCwwXTtzd2l0Y2gobCl7Y2FzZSJyaWdodCI6aFswXSs9ZDticmVhaztjYXNlImxlZnQiOmhbMF0tPWQ7YnJlYWs7Y2FzZSJkb3duIjpoWzFdKz1kO2JyZWFrO2Nhc2UidXAiOmhbMV0tPWR9'@; put 'Y29uc3QgZj1bXTt0aGlzLm1lcmdlZENlbGxzLmZvckVhY2godj0+e3Yuc2hpZnQoaCxhKSx2LnJlbW92ZWQmJmYucHVzaCh2KX0pLGYuZm9yRWFjaCh2PT57dGhpcy5tZXJnZWRDZWxscy5zcGxpY2UodGhpcy5tZXJnZWRDZWxscy5pbmRleE9mKHYpLDEpfSksdGhpcy5tZXJnZWRDZWxsc01h'@; put 'dHJpeC5jbGVhcigpLHRoaXMubWVyZ2VkQ2VsbHMuZm9yRWFjaCh2PT57VjkoXzYsdGhpcyxPbWUpLmNhbGwodGhpcyx2KX0pfX1mdW5jdGlvbiBESChjLGwpe2xldCBhPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXToxO2NvbnN0IGQ9bmV3'@; put 'IE1hcCxoPTE9PT1hP2MuZ2V0VG9wU3RhcnRDb3JuZXIoKTpjLmdldEJvdHRvbUVuZENvcm5lcigpLGY9MT09PWE/Yy5nZXRCb3R0b21FbmRDb3JuZXIoKTpjLmdldFRvcFN0YXJ0Q29ybmVyKCk7Zm9yKGxldCB2PWgucm93OzE9PT1hP3Y8PWYucm93OnY+PWYucm93O3YrPWEpZm9yKGxldCBN'@; put 'PWguY29sOzE9PT1hP008PWYuY29sOk0+PWYuY29sO00rPWEpe2NvbnN0IEk9InJvdyI9PT1sP3Y6TSxHPXRoaXMuZ2V0KHYsTSk7bGV0IHJlPUk7RyYmKHJlPTE9PT1hP0dbbF0rR1tgJHtsfXNwYW5gXS0xOkdbbF0pLGQuaGFzKEkpfHxkLnNldChJLG5ldyBTZXQpLGQuZ2V0KEkpLmFkZChy'@; put 'ZSl9cmV0dXJuIEFycmF5LmZyb20obmV3IFNldChBcnJheS5mcm9tKGQuZW50cmllcygpKS5maWx0ZXIodj0+e2xldFssTV09djtyZXR1cm4gMT09PU0uc2l6ZX0pLmZsYXRNYXAodj0+e2xldFssTV09djtyZXR1cm4gQXJyYXkuZnJvbShNKX0pKSl9ZnVuY3Rpb24gT21lKGMpe2ZvcihsZXQg'@; put 'bD1jLnJvdztsPGMucm93K2Mucm93c3BhbjtsKyspZm9yKGxldCBhPWMuY29sO2E8Yy5jb2wrYy5jb2xzcGFuO2ErKyl0aGlzLm1lcmdlZENlbGxzTWF0cml4LmhhcyhsKXx8dGhpcy5tZXJnZWRDZWxsc01hdHJpeC5zZXQobCxuZXcgTWFwKSx0aGlzLm1lcmdlZENlbGxzTWF0cml4LmdldChs'@; put 'KS5zZXQoYSxjKX1mdW5jdGlvbiBzcHQoYyl7Zm9yKGxldCBsPWMucm93O2w8Yy5yb3crYy5yb3dzcGFuO2wrKylmb3IobGV0IGE9Yy5jb2w7YTxjLmNvbCtjLmNvbHNwYW47YSsrKXRoaXMubWVyZ2VkQ2VsbHNNYXRyaXguZ2V0KGwpLmRlbGV0ZShhKX1jb25zdCBvcHQ9a0g7ZnVuY3Rpb24g'@; put 'ZWVlKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBscHQoYyl7dmFyIGw9ZnVuY3Rpb24gY3B0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQi'@; put 'KTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9s'@; put 'Ij09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31jb25zdCBkcHQ9Y2xhc3MgdXB0e2NvbnN0cnVjdG9yKGwpe2VlZSh0aGlzLCJwbHVn'@; put 'aW4iLHZvaWQgMCksZWVlKHRoaXMsIm1lcmdlZENlbGxzQ29sbGVjdGlvbiIsdm9pZCAwKSxlZWUodGhpcywiY3VycmVudEZpbGxEYXRhIixudWxsKSx0aGlzLnBsdWdpbj1sLHRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uPXRoaXMucGx1Z2luLm1lcmdlZENlbGxzQ29sbGVjdGlvbn1nZXRE'@; put 'aXJlY3Rpb24obCxhKXtsZXQgZD1udWxsO3JldHVybiBkPWFbMF09PT1sWzBdJiZhWzFdPT09bFsxXSYmYVszXT09PWxbM10/ImRvd24iOmFbMl09PT1sWzJdJiZhWzFdPT09bFsxXSYmYVszXT09PWxbM10/InVwIjphWzFdPT09bFsxXSYmYVsyXT09PWxbMl0/InJpZ2h0IjoibGVmdCIsZH1z'@; put 'bmFwRHJhZ0FyZWEobCxhLGQsaCl7Y29uc3QgZj1hLnNsaWNlKDApLHY9dGhpcy5nZXRBdXRvZmlsbFNpemUobCxhLGQpLFtNLEksRyxyZV09bCx5ZT1bInVwIiwiZG93biJdLmluZGV4T2YoZCk+LTE/Ry1NKzE6cmUtSSsxLEJlPXYtTWF0aC5mbG9vcih2L3llKSp5ZSxHZT10aGlzLmdldEZh'@; put 'cnRoZXN0Q29sbGVjdGlvbihsLGEsZCxoKTtpZihHZSlpZigiZG93biI9PT1kKXtjb25zdCBzdD1HZS5yb3crR2Uucm93c3Bhbi1NLUJlO2ZbMl0rc3Q+PXRoaXMucGx1Z2luLmhvdC5jb3VudFJvd3MoKT9mWzJdLT1CZTpmWzJdKz1CZT9zdDowfWVsc2UgaWYoInJpZ2h0Ij09PWQpe2NvbnN0'@; put 'IHN0PUdlLmNvbCtHZS5jb2xzcGFuLUktQmU7ZlszXStzdD49dGhpcy5wbHVnaW4uaG90LmNvdW50Q29scygpP2ZbM10tPUJlOmZbM10rPUJlP3N0OjB9ZWxzZSBpZigidXAiPT09ZCl7Y29uc3Qgc3Q9Ry1CZS1HZS5yb3crMTtmWzBdK3N0PDA/ZlswXSs9QmU6ZlswXS09QmU/c3Q6MH1lbHNl'@; put 'IGlmKCJsZWZ0Ij09PWQpe2NvbnN0IHN0PXJlLUJlLUdlLmNvbCsxO2ZbMV0rc3Q8MD9mWzFdKz1CZTpmWzFdLT1CZT9zdDowfXJldHVybiB0aGlzLnVwZGF0ZUN1cnJlbnRGaWxsQ2FjaGUoe2Jhc2VBcmVhOmwsZHJhZ0RpcmVjdGlvbjpkLGZvdW5kTWVyZ2VkQ2VsbHM6aCxmaWxsU2l6ZTp2'@; put 'LGRyYWdBcmVhOmYsY3ljbGVMZW5ndGg6eWV9KSxmfXVwZGF0ZUN1cnJlbnRGaWxsQ2FjaGUobCl7dGhpcy5jdXJyZW50RmlsbERhdGF8fCh0aGlzLmN1cnJlbnRGaWxsRGF0YT17fSksd3UodGhpcy5jdXJyZW50RmlsbERhdGEsbCl9Z2V0QXV0b2ZpbGxTaXplKGwsYSxkKXtjb25zdFtoLGYs'@; put 'dixNXT1sLFtJLEcscmUsdWVdPWE7c3dpdGNoKGQpe2Nhc2UidXAiOnJldHVybiBoLUk7Y2FzZSJkb3duIjpyZXR1cm4gcmUtdjtjYXNlImxlZnQiOnJldHVybiBmLUc7Y2FzZSJyaWdodCI6cmV0dXJuIHVlLU07ZGVmYXVsdDpyZXR1cm4gbnVsbH19Z2V0RHJhZ0FyZWEobCxhLGQpe2NvbnN0'@; put 'W2gsZix2LE1dPWwsW0ksRyxyZSx1ZV09YTtzd2l0Y2goZCl7Y2FzZSJ1cCI6cmV0dXJuW0ksRyxoLTEsTV07Y2FzZSJkb3duIjp7Y29uc3QgeWU9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0KHJlLE0pO3JldHVyblt2KzEsZixyZSsoeWU/eWUucm93c3Bhbi0xOjApLE1dfWNhc2Ui'@; put 'bGVmdCI6cmV0dXJuW0ksRyx2LGYtMV07Y2FzZSJyaWdodCI6e2NvbnN0IHllPXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldChyZSxNKTtyZXR1cm5baCxNKyh5ZT95ZS5jb2xzcGFuLTE6MCkscmUsdWVdfWRlZmF1bHQ6cmV0dXJuIG51bGx9fWdldEZhcnRoZXN0Q29sbGVjdGlvbihs'@; put 'LGEsZCxoKXtjb25zdFtmLHYsTSxJXT1sLEc9WyJ1cCIsImRvd24iXS5pbmRleE9mKGQpPi0xLHJlPUc/TTpJLHVlPUc/Zjp2LHllPXRoaXMuZ2V0QXV0b2ZpbGxTaXplKGwsYSxkKSxFZT1HP00tZisxOkktdisxLEdlPXllLU1hdGguZmxvb3IoeWUvRWUpKkVlO2xldCBzdD1udWxsLHB0PW51'@; put 'bGwsZHQ9bnVsbDtzd2l0Y2goZCl7Y2FzZSJ1cCI6c3Q9ImluY2x1ZGVzVmVydGljYWxseSIsZHQ9cmUtR2UrMTticmVhaztjYXNlImxlZnQiOnN0PSJpbmNsdWRlc0hvcml6b250YWxseSIsZHQ9cmUtR2UrMTticmVhaztjYXNlImRvd24iOnN0PSJpbmNsdWRlc1ZlcnRpY2FsbHkiLGR0PXVl'@; put 'K0dlLTE7YnJlYWs7Y2FzZSJyaWdodCI6c3Q9ImluY2x1ZGVzSG9yaXpvbnRhbGx5IixkdD11ZStHZS0xfXJldHVybiBLbihoLHF0PT57cXRbc3RdKGR0KSYmcXQuaXNGYXJ0aGVyKHB0LGQpJiYocHQ9cXQpfSkscHR9cmVjcmVhdGVBZnRlckRhdGFQb3B1bGF0aW9uKGwpe2lmKCF0aGlzLmN1'@; put 'cnJlbnRGaWxsRGF0YSlyZXR1cm47Y29uc3QgYT10aGlzLmdldFJhbmdlRnJvbUNoYW5nZXMobCksZD10aGlzLmN1cnJlbnRGaWxsRGF0YS5mb3VuZE1lcmdlZENlbGxzLGg9dGhpcy5jdXJyZW50RmlsbERhdGEuZHJhZ0RpcmVjdGlvbixmPShHLHJlKT0+e3N3aXRjaChoKXtjYXNlInVwIjpy'@; put 'ZXR1cm4gRy5yb3ctcmU+PWEuZnJvbS5yb3c7Y2FzZSJkb3duIjpyZXR1cm4gRy5yb3crRy5yb3dzcGFuLTErcmU8PWEudG8ucm93O2Nhc2UibGVmdCI6cmV0dXJuIEcuY29sLXJlPj1hLmZyb20uY29sdW1uO2Nhc2UicmlnaHQiOnJldHVybiBHLmNvbCtHLmNvbHNwYW4tMStyZTw9YS50by5j'@; put 'b2x1bW47ZGVmYXVsdDpyZXR1cm4gbnVsbH19O2xldCB2PTAsTT1udWxsLEk9MTtkb3tmb3IobGV0IEc9MDtHPGQubGVuZ3RoO0crPTEpe2lmKE09ZFtHXSx2PUkqdGhpcy5jdXJyZW50RmlsbERhdGEuY3ljbGVMZW5ndGgsZihNLHYpKXN3aXRjaChoKXtjYXNlInVwIjp0aGlzLnBsdWdpbi5t'@; put 'ZXJnZWRDZWxsc0NvbGxlY3Rpb24uYWRkKHtyb3c6TS5yb3ctdixyb3dzcGFuOk0ucm93c3Bhbixjb2w6TS5jb2wsY29sc3BhbjpNLmNvbHNwYW59LCEwKTticmVhaztjYXNlImRvd24iOnRoaXMucGx1Z2luLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5hZGQoe3JvdzpNLnJvdyt2LHJvd3NwYW46'@; put 'TS5yb3dzcGFuLGNvbDpNLmNvbCxjb2xzcGFuOk0uY29sc3Bhbn0sITApO2JyZWFrO2Nhc2UibGVmdCI6dGhpcy5wbHVnaW4ubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmFkZCh7cm93Ok0ucm93LHJvd3NwYW46TS5yb3dzcGFuLGNvbDpNLmNvbC12LGNvbHNwYW46TS5jb2xzcGFufSwhMCk7YnJl'@; put 'YWs7Y2FzZSJyaWdodCI6dGhpcy5wbHVnaW4ubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmFkZCh7cm93Ok0ucm93LHJvd3NwYW46TS5yb3dzcGFuLGNvbDpNLmNvbCt2LGNvbHNwYW46TS5jb2xzcGFufSwhMCl9Rz09PWQubGVuZ3RoLTEmJihJKz0xKX19d2hpbGUoZihNLHYpKTt0aGlzLmN1cnJl'@; put 'bnRGaWxsRGF0YT1udWxsLHRoaXMucGx1Z2luLmhvdC5yZW5kZXIoKSxkLmxlbmd0aD4wJiZ0aGlzLnBsdWdpbi5pZkNocm9tZUZvcmNlUmVwYWludCgpfWdldFJhbmdlRnJvbUNoYW5nZXMobCl7Y29uc3QgYT17bWluOm51bGwsbWF4Om51bGx9LGQ9e21pbjpudWxsLG1heDpudWxsfTtyZXR1'@; put 'cm4gS24obCxoPT57Y29uc3QgZj1oWzBdLHY9dGhpcy5wbHVnaW4uaG90LnByb3BUb0NvbChoWzFdKTsobnVsbD09PWEubWlufHxmPGEubWluKSYmKGEubWluPWYpLChudWxsPT09YS5tYXh8fGY+YS5tYXgpJiYoYS5tYXg9ZiksKG51bGw9PT1kLm1pbnx8djxkLm1pbikmJihkLm1pbj12KSwo'@; put 'bnVsbD09PWQubWF4fHx2PmQubWF4KSYmKGQubWF4PXYpfSkse2Zyb206e3JvdzphLm1pbixjb2x1bW46ZC5taW59LHRvOntyb3c6YS5tYXgsY29sdW1uOmQubWF4fX19ZHJhZ0FyZWFPdmVybGFwc0NvbGxlY3Rpb25zKGwsYSxkKXtjb25zdCBoPXRoaXMuZ2V0RHJhZ0FyZWEobCxhLGQpLFtm'@; put 'LHYsTSxJXT1oLEc9dGhpcy5wbHVnaW4uaG90Ll9jcmVhdGVDZWxsQ29vcmRzKGYsdikscmU9dGhpcy5wbHVnaW4uaG90Ll9jcmVhdGVDZWxsQ29vcmRzKE0sSSksdWU9dGhpcy5wbHVnaW4uaG90Ll9jcmVhdGVDZWxsUmFuZ2UoRyxHLHJlKTtpZigwPT09dGhpcy5tZXJnZWRDZWxsc0NvbGxl'@; put 'Y3Rpb24uZ2V0V2l0aGluUmFuZ2UodWUsITApLmxlbmd0aClyZXR1cm4hMTtjb25zdCBFZT10aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5nZXRXaXRoaW5SYW5nZSh1ZSwhMSk7cmV0dXJuIDA9PT1FZS5sZW5ndGh8fCgidXAiPT09ZHx8ImRvd24iPT09ZD8hRWUuZXZlcnkoQmU9PntsZXR7'@; put 'Y29sc3BhbjpHZX09QmU7cmV0dXJuIEdlPT09dWUuZ2V0V2lkdGgoKX0pOiFFZS5ldmVyeShCZT0+e2xldHtyb3dzcGFuOkdlfT1CZTtyZXR1cm4gR2U9PT11ZS5nZXRIZWlnaHQoKX0pKX19O2Z1bmN0aW9uIHRlZShjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gaHB0KGMpe3ZhciBsPWZ1bmN0'@; put 'aW9uIGZwdChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBl'@; put 'RXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVy'@; put 'dHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9Y29uc3QgZ3B0PWNsYXNzIHBwdHtjb25zdHJ1Y3RvcihsKXt0ZWUodGhpcywicGx1Z2luIix2b2lkIDApLHRlZSh0aGlzLCJob3QiLHZvaWQgMCksdGVlKHRoaXMsImZ1'@; put 'bGx5U2VsZWN0ZWRNZXJnZWRDZWxsQ2xhc3NOYW1lIiwiZnVsbHlTZWxlY3RlZE1lcmdlZENlbGwiKSx0aGlzLnBsdWdpbj1sLHRoaXMuaG90PWwuaG90fWdldFNlbGVjdGVkTWVyZ2VkQ2VsbENsYXNzTmFtZShsLGEsZCxoKXtjb25zdCBmPU1hdGgubWluKGRbMF0sZFsyXSksdj1NYXRoLm1p'@; put 'bihkWzFdLGRbM10pLE09TWF0aC5tYXgoZFswXSxkWzJdKSxJPU1hdGgubWF4KGRbMV0sZFszXSk7aWYodm9pZCAwPT09aHx8IXRoaXMucGx1Z2luLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5pc0ZpcnN0UmVuZGVyYWJsZU1lcmdlZENlbGwobCxhKSlyZXR1cm47Y29uc3QgcmU9dGhpcy5wbHVn'@; put 'aW4ubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldChsLGEpO2lmKCFyZSlyZXR1cm47Y29uc3QgdWU9cmUuZ2V0TGFzdFJvdygpLHllPXJlLmdldExhc3RDb2x1bW4oKTtyZXR1cm4gZjw9cmUucm93JiZ2PD1yZS5jb2wmJk0+PXVlJiZJPj15ZT9gJHt0aGlzLmZ1bGx5U2VsZWN0ZWRNZXJnZWRD'@; put 'ZWxsQ2xhc3NOYW1lfS0ke2h9YDp0aGlzLmlzTWVyZ2VDZWxsRnVsbHlTZWxlY3RlZChyZSx0aGlzLnBsdWdpbi5ob3QuZ2V0U2VsZWN0ZWRSYW5nZSgpKT9gJHt0aGlzLmZ1bGx5U2VsZWN0ZWRNZXJnZWRDZWxsQ2xhc3NOYW1lfS1tdWx0aXBsZWA6dm9pZCAwfWlzTWVyZ2VDZWxsRnVsbHlT'@; put 'ZWxlY3RlZChsLGEpe2NvbnN0IGQ9W107aWYoIWF8fCFsKXJldHVybiExO2ZvcihsZXQgaD0wO2g8bC5yb3dzcGFuO2grPTEpZm9yKGxldCBmPTA7ZjxsLmNvbHNwYW47Zis9MSlkLnB1c2godGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMobC5yb3craCxsLmNvbCtmKSk7Zm9yKGxldCBoPTA7'@; put 'aDxkLmxlbmd0aDtoKz0xKXtjb25zdCBmPVtdO2ZvcihsZXQgdj0wO3Y8YS5sZW5ndGg7dis9MSlmW3ZdPWFbdl0uaW5jbHVkZXMoZFtoXSk7aWYoIWYuaW5jbHVkZXMoITApKXJldHVybiExfXJldHVybiEwfWdldFNlbGVjdGVkTWVyZ2VkQ2VsbENsYXNzTmFtZVRvUmVtb3ZlKCl7Y29uc3Qg'@; put 'bD1bXTtmb3IobGV0IGE9MDthPD03O2ErPTEpbC5wdXNoKGAke3RoaXMuZnVsbHlTZWxlY3RlZE1lcmdlZENlbGxDbGFzc05hbWV9LSR7YX1gKTtyZXR1cm4gbC5wdXNoKGAke3RoaXMuZnVsbHlTZWxlY3RlZE1lcmdlZENlbGxDbGFzc05hbWV9LW11bHRpcGxlYCksbH19O2Z1bmN0aW9uIGdB'@; put 'KGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiB2cHQoYyl7dmFyIGw9ZnVuY3Rpb24geXB0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtp'@; put 'Zigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09'@; put 'dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31jbGFzcyBQbWV7Y29uc3RydWN0b3IobCl7Z0EodGhpcywiZGF0YSIsdm9pZCAwKSxnQSh0'@; put 'aGlzLCJuZXh0IixudWxsKSxnQSh0aGlzLCJwcmV2IixudWxsKSx0aGlzLmRhdGE9bH19Y29uc3QgSUg9Y2xhc3MgYnB0e2NvbnN0cnVjdG9yKCl7Z0EodGhpcywiZmlyc3QiLG51bGwpLGdBKHRoaXMsImxhc3QiLG51bGwpfXB1c2gobCl7Y29uc3QgYT1uZXcgUG1lKGwpO2lmKG51bGw9PT10'@; put 'aGlzLmZpcnN0KXRoaXMuZmlyc3Q9YSx0aGlzLmxhc3Q9YTtlbHNle2NvbnN0IGQ9dGhpcy5sYXN0O3RoaXMubGFzdD1hLGEucHJldj1kLGQubmV4dD1hfXJldHVybiBhfXVuc2hpZnQobCl7Y29uc3QgYT1uZXcgUG1lKGwpO2lmKG51bGw9PT10aGlzLmZpcnN0KXRoaXMuZmlyc3Q9YSx0aGlz'@; put 'Lmxhc3Q9YTtlbHNle2NvbnN0IGQ9dGhpcy5maXJzdDt0aGlzLmZpcnN0PWEsYS5uZXh0PWQsZC5wcmV2PWF9fWlub3JkZXIobCl7bGV0IGE9dGhpcy5maXJzdDtmb3IoO2E7KXtjb25zdCBkPWwoYSk7aWYoYT09PXRoaXMubGFzdHx8ITA9PT1kKWJyZWFrO2E9YS5uZXh0fX1yZW1vdmUobCl7'@; put 'aWYobnVsbD09PXRoaXMuZmlyc3QpcmV0dXJuITE7bGV0IGQsaCxhPXRoaXMuZmlyc3Q7Zm9yKDthOyl7aWYoYS5kYXRhPT09bClyZXR1cm4gZD1hLm5leHQsaD1hLnByZXYsZCYmKGQucHJldj1oKSxoJiYoaC5uZXh0PWQpLGE9PT10aGlzLmZpcnN0JiYodGhpcy5maXJzdD1kKSxhPT09dGhp'@; put 'cy5sYXN0JiYodGhpcy5sYXN0PWgpLCEwO2E9YS5uZXh0fXJldHVybiExfWhhc0N5Y2xlKCl7bGV0IGw9dGhpcy5maXJzdCxhPXRoaXMuZmlyc3Q7Zm9yKDs7KXtpZihudWxsPT09bHx8KGw9bC5uZXh0LG51bGw9PT1sKSlyZXR1cm4hMTtpZihsPWwubmV4dCxhPWEubmV4dCxsPT09YSlyZXR1'@; put 'cm4hMH19cG9wKCl7aWYobnVsbD09PXRoaXMubGFzdClyZXR1cm4gbnVsbDtjb25zdCBsPXRoaXMubGFzdDtyZXR1cm4gdGhpcy5sYXN0PXRoaXMubGFzdC5wcmV2LGx9c2hpZnQoKXtpZihudWxsPT09dGhpcy5maXJzdClyZXR1cm4gbnVsbDtjb25zdCBsPXRoaXMuZmlyc3Q7cmV0dXJuIHRo'@; put 'aXMuZmlyc3Q9dGhpcy5maXJzdC5uZXh0LGx9cmVjdXJzaXZlUmV2ZXJzZSgpe2lmKCF0aGlzLmZpcnN0KXJldHVybjsoZnVuY3Rpb24gbChkLGgpe2gmJihsKGgsaC5uZXh0KSxoLm5leHQ9ZCl9KSh0aGlzLmZpcnN0LHRoaXMuZmlyc3QubmV4dCksdGhpcy5maXJzdC5uZXh0PW51bGw7Y29u'@; put 'c3QgYT10aGlzLmZpcnN0O3RoaXMuZmlyc3Q9dGhpcy5sYXN0LHRoaXMubGFzdD1hfXJldmVyc2UoKXtpZighdGhpcy5maXJzdHx8IXRoaXMuZmlyc3QubmV4dClyZXR1cm47bGV0IGQsbD10aGlzLmZpcnN0Lm5leHQsYT10aGlzLmZpcnN0O2Zvcig7bDspZD1sLm5leHQsbC5uZXh0PWEsYS5w'@; put 'cmV2PWwsYT1sLGw9ZDt0aGlzLmZpcnN0Lm5leHQ9bnVsbCx0aGlzLmxhc3QucHJldj1udWxsLGQ9dGhpcy5maXJzdCx0aGlzLmZpcnN0PWEsdGhpcy5sYXN0PWR9fTtmdW5jdGlvbiBCOShjLGwsYSl7Rm1lKGMsbCksbC5zZXQoYyxhKX1mdW5jdGlvbiBGbWUoYyxsKXtpZihsLmhhcyhjKSl0'@; put 'aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfWZ1bmN0aW9uIHBsKGMsbCl7cmV0dXJuIGMuZ2V0KFJIKGMsbCkpfWZ1bmN0aW9uIFdoKGMsbCxhKXtyZXR1cm4gYy5zZXQoUkgoYyxsKSxh'@; put 'KSxhfWZ1bmN0aW9uIFJIKGMsbCxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhsKSlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzP2w6YTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGVsZW1lbnQgaXMgbm90IHByZXNlbnQgb24gdGhpcyBvYmplY3QiKX12YXIg'@; put 'SnA9bmV3IFdlYWtNYXAsUXA9bmV3IFdlYWtNYXAsZTQ9bmV3IFdlYWtNYXAsdDQ9bmV3IFdlYWtNYXAsbmVlPW5ldyBXZWFrTWFwLExIPW5ldyBXZWFrTWFwLE9IPW5ldyBXZWFrTWFwLHJlZT1uZXcgV2Vha1NldDtjbGFzcyB3cHR7Y29uc3RydWN0b3IobCl7bGV0e21lcmdlZENlbGxzR2V0'@; put 'dGVyOmEscm93SW5kZXhNYXBwZXI6ZCxjb2x1bW5JbmRleE1hcHBlcjpofT1sOyhmdW5jdGlvbiBfcHQoYyxsKXtGbWUoYyxsKSxsLmFkZChjKX0pKHRoaXMscmVlKSxCOSh0aGlzLEpwLG5ldyBJSCksQjkodGhpcyxRcCxuZXcgSUgpLEI5KHRoaXMsZTQsbnVsbCksQjkodGhpcyx0NCxudWxs'@; put 'KSxCOSh0aGlzLG5lZSxudWxsKSxCOSh0aGlzLExILG51bGwpLEI5KHRoaXMsT0gsbnVsbCksV2gobmVlLHRoaXMsYSksV2goTEgsdGhpcyxkKSxXaChPSCx0aGlzLGgpfWdldEN1cnJlbnRWZXJ0aWNhbE5vZGUoKXtyZXR1cm4gcGwodDQsdGhpcykuZGF0YX1nZXRGaXJzdFZlcnRpY2FsTm9k'@; put 'ZSgpe3JldHVybiBwbChRcCx0aGlzKS5maXJzdC5kYXRhfWdldE5leHRWZXJ0aWNhbE5vZGUoKXtyZXR1cm4gcGwodDQsdGhpcykubmV4dC5kYXRhfWdldFByZXZWZXJ0aWNhbE5vZGUoKXtyZXR1cm4gcGwodDQsdGhpcykucHJldi5kYXRhfWdldEN1cnJlbnRIb3Jpem9udGFsTm9kZSgpe3Jl'@; put 'dHVybiBwbChlNCx0aGlzKS5kYXRhfWdldEZpcnN0SG9yaXpvbnRhbE5vZGUoKXtyZXR1cm4gcGwoSnAsdGhpcykuZmlyc3QuZGF0YX1nZXROZXh0SG9yaXpvbnRhbE5vZGUoKXtyZXR1cm4gcGwoZTQsdGhpcykubmV4dC5kYXRhfWdldFByZXZIb3Jpem9udGFsTm9kZSgpe3JldHVybiBwbChl'@; put 'NCx0aGlzKS5wcmV2LmRhdGF9c2V0UHJldk5vZGVBc0FjdGl2ZSgpe1doKHQ0LHRoaXMscGwodDQsdGhpcykucHJldiksV2goZTQsdGhpcyxwbChlNCx0aGlzKS5wcmV2KX1zZXROZXh0Tm9kZUFzQWN0aXZlKCl7V2godDQsdGhpcyxwbCh0NCx0aGlzKS5uZXh0KSxXaChlNCx0aGlzLHBsKGU0'@; put 'LHRoaXMpLm5leHQpfWJ1aWxkRm9jdXNPcmRlcihsKXtjb25zdCBhPWwuZ2V0VG9wU3RhcnRDb3JuZXIoKSxkPWwuZ2V0Qm90dG9tRW5kQ29ybmVyKCksaD1uZXcgV2Vha1NldDtXaChKcCx0aGlzLG5ldyBJSCk7Zm9yKGxldCB2PWEucm93O3Y8PWQucm93O3YrKylpZighcGwoTEgsdGhpcyku'@; put 'aXNIaWRkZW4odikpZm9yKGxldCBNPWEuY29sO008PWQuY29sO00rKyl7aWYocGwoT0gsdGhpcykuaXNIaWRkZW4oTSkpY29udGludWU7Y29uc3QgST1SSChyZWUsdGhpcyxIbWUpLmNhbGwodGhpcyxsLHBsKEpwLHRoaXMpLGgsdixNKTtJJiZXaChlNCx0aGlzLEkpfXBsKEpwLHRoaXMpLmZp'@; put 'cnN0JiYocGwoSnAsdGhpcykuZmlyc3QucHJldj1wbChKcCx0aGlzKS5sYXN0LHBsKEpwLHRoaXMpLmxhc3QubmV4dD1wbChKcCx0aGlzKS5maXJzdCk7Y29uc3QgZj1uZXcgV2Vha1NldDtXaChRcCx0aGlzLG5ldyBJSCk7Zm9yKGxldCB2PWEuY29sO3Y8PWQuY29sO3YrKylpZighcGwoT0gs'@; put 'dGhpcykuaXNIaWRkZW4odikpZm9yKGxldCBNPWEucm93O008PWQucm93O00rKyl7aWYocGwoTEgsdGhpcykuaXNIaWRkZW4oTSkpY29udGludWU7Y29uc3QgST1SSChyZWUsdGhpcyxIbWUpLmNhbGwodGhpcyxsLHBsKFFwLHRoaXMpLGYsTSx2KTtJJiZXaCh0NCx0aGlzLEkpfXBsKFFwLHRo'@; put 'aXMpLmZpcnN0JiYocGwoUXAsdGhpcykuZmlyc3QucHJldj1wbChRcCx0aGlzKS5sYXN0LHBsKFFwLHRoaXMpLmxhc3QubmV4dD1wbChRcCx0aGlzKS5maXJzdCl9c2V0QWN0aXZlTm9kZShsLGEpe3JldHVybiBwbChKcCx0aGlzKS5pbm9yZGVyKGQ9Pntjb25zdHtyb3dTdGFydDpoLHJvd0Vu'@; put 'ZDpmLGNvbFN0YXJ0OnYsY29sRW5kOk19PWQuZGF0YTtpZihsPj1oJiZsPD1mJiZhPj12JiZhPD1NKXJldHVybiBXaChlNCx0aGlzLGQpLCExfSkscGwoUXAsdGhpcykuaW5vcmRlcihkPT57Y29uc3R7cm93U3RhcnQ6aCxyb3dFbmQ6Zixjb2xTdGFydDp2LGNvbEVuZDpNfT1kLmRhdGE7aWYo'@; put 'bD49aCYmbDw9ZiYmYT49diYmYTw9TSlyZXR1cm4gV2godDQsdGhpcyxkKSwhMX0pLHRoaXN9fWZ1bmN0aW9uIEhtZShjLGwsYSxkLGgpe2NvbnN0IGY9Yy5nZXRUb3BTdGFydENvcm5lcigpLHY9Yy5nZXRCb3R0b21FbmRDb3JuZXIoKSxNPWMuaGlnaGxpZ2h0LmNsb25lKCkubm9ybWFsaXpl'@; put 'KCksST1wbChuZWUsdGhpcykuY2FsbCh0aGlzLGQsaCk7aWYoSSYmYS5oYXMoSSkpcmV0dXJuIG51bGw7Y29uc3QgRz17Y29sU3RhcnQ6aCxjb2xFbmQ6aCxyb3dTdGFydDpkLHJvd0VuZDpkfTtpZihJKXtpZihhLmFkZChJKSxJLnJvdzxmLnJvd3x8SS5yb3crSS5yb3dzcGFuLTE+di5yb3d8'@; put 'fEkuY29sPGYuY29sfHxJLmNvbCtJLmNvbHNwYW4tMT52LmNvbClyZXR1cm4gbnVsbDtHLmNvbFN0YXJ0PUkuY29sLEcuY29sRW5kPUkuY29sK0kuY29sc3Bhbi0xLEcucm93U3RhcnQ9SS5yb3csRy5yb3dFbmQ9SS5yb3crSS5yb3dzcGFuLTF9Y29uc3QgcmU9bC5wdXNoKEcpO3JldHVybiBk'@; put 'PT09TS5yb3cmJmg9PT1NLmNvbHx8SSYmTS5yb3c+PUkucm93JiZNLnJvdzw9SS5yb3crSS5yb3dzcGFuLTEmJk0uY29sPj1JLmNvbCYmTS5jb2w8PUkuY29sK0kuY29sc3Bhbi0xP3JlOm51bGx9ZnVuY3Rpb24gTm1lKGMsbCxhKXtjb25zdHtyb3dJbmRleE1hcHBlcjpkLHN0eWxlc0hhbmRs'@; put 'ZXI6aH09YyxmPWguZ2V0RGVmYXVsdFJvd0hlaWdodCgpO2xldCB2PTA7Zm9yKGxldCBJPWw7STxsK2E7SSsrKWlmKCFkLmlzSGlkZGVuKEkpKXt2YXIgTTt2Kz1udWxsIT09KE09Yy5nZXRSb3dIZWlnaHQoSSkpJiZ2b2lkIDAhPT1NP006ZiwwPT09SSYmIWguaXNDbGFzc2ljVGhlbWUoKSYm'@; put 'KHYrPTEpfXJldHVybiB2fWZ1bmN0aW9uIFBIKGMsbCxhKXtWbWUoYyxsKSxsLnNldChjLGEpfWZ1bmN0aW9uIFZtZShjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2Jq'@; put 'ZWN0Iil9ZnVuY3Rpb24gaWVlKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBNcHQoYyl7dmFyIGw9ZnVuY3Rpb24geHB0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxs'@; put 'KGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmci'@; put 'KTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31mdW5jdGlvbiBtQShjLGwsYSl7cmV0dXJuIGMuc2V0KEVs'@; put 'KGMsbCksYSksYX1mdW5jdGlvbiBlYyhjLGwpe3JldHVybiBjLmdldChFbChjLGwpKX1mdW5jdGlvbiBFbChjLGwsYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGM/Yz09PWw6Yy5oYXMobCkpcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mz9sOmE7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0'@; put 'ZSBlbGVtZW50IGlzIG5vdCBwcmVzZW50IG9uIHRoaXMgb2JqZWN0Iil9TWEuZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImJlZm9yZU1lcmdlQ2VsbHMiKSxNYS5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJNZXJnZUNlbGxzIiksTWEuZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImJl'@; put 'Zm9yZVVubWVyZ2VDZWxscyIpLE1hLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlclVubWVyZ2VDZWxscyIpO2NvbnN0IGFlZT0ibWVyZ2VDZWxscyIsQm1lPWFlZTt2YXIgYWY9bmV3IFdlYWtNYXAsc2Y9bmV3IFdlYWtNYXAsbjQ9bmV3IFdlYWtNYXAsam1lPW5ldyBXZWFrTWFwLEhs'@; put 'PW5ldyBXZWFrU2V0O2NsYXNzIFRwdCBleHRlbmRzIEZve2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxmdW5jdGlvbiBTcHQoYyxsKXtWbWUoYyxsKSxsLmFkZChjKX0odGhpcyxIbCksaWVlKHRoaXMsIm1lcmdlZENlbGxzQ29sbGVjdGlvbiIsbnVsbCksaWVlKHRoaXMsImF1'@; put 'dG9maWxsQ2FsY3VsYXRpb25zIixudWxsKSxpZWUodGhpcywic2VsZWN0aW9uQ2FsY3VsYXRpb25zIixudWxsKSxQSCh0aGlzLGFmLG51bGwpLFBIKHRoaXMsc2Yse3JvdzowLGNvbDowfSksUEgodGhpcyxuNCxuZXcgd3B0KHttZXJnZWRDZWxsc0dldHRlcjoobCxhKT0+dGhpcy5tZXJnZWRD'@; put 'ZWxsc0NvbGxlY3Rpb24uZ2V0KGwsYSkscm93SW5kZXhNYXBwZXI6dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIsY29sdW1uSW5kZXhNYXBwZXI6dGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXJ9KSksUEgodGhpcyxqbWUsZnVuY3Rpb24gQ3B0KGMpe2NvbnN0e2hvdDpsfT1jLHtyb3dJbmRleE1h'@; put 'cHBlcjphLGNvbHVtbkluZGV4TWFwcGVyOmR9PWwsaD1uZXcgTWFwO3JldHVybntiZWZvcmU6ZnVuY3Rpb24gZigpe30sYWZ0ZXI6ZnVuY3Rpb24gdihNLEksRyl7Y29uc3QgcmU9Yy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0KEksRyk7aWYoIVhzKHJlKSlyZXR1cm4gTS5yZW1vdmVBdHRy'@; put 'aWJ1dGUoInJvd3NwYW4iKSxNLnJlbW92ZUF0dHJpYnV0ZSgiY29sc3BhbiIpLHNfKCkmJmguaGFzKEkpJiYhbC5nZXRTZXR0aW5ncygpLnJvd0hlYWRlcnMmJihNLnN0eWxlLmhlaWdodD1gJHtoLmdldChJKX1weGAsaC5kZWxldGUoSSkpLHZvaWQoTS5zdHlsZS5kaXNwbGF5PSIiKTtjb25z'@; put 'dHtyb3c6dWUsY29sOnllLGNvbHNwYW46RWUscm93c3BhbjpCZX09cmUsW0dlLHN0XT1jLnRyYW5zbGF0ZU1lcmdlZENlbGxUb1JlbmRlcmFibGUodWUsQmUseWUsRWUpLHB0PWMuZ2V0U2V0dGluZygidmlydHVhbGl6ZWQiKTtpZihzXygpJiYwPT09eWUmJiFsLmdldFNldHRpbmdzKCkucm93'@; put 'SGVhZGVycyl7Y29uc3QgcW49Tm1lKGwsdWUsQmUpO2guc2V0KEkscW4vQmUpfWNvbnN0IG1uPUdlLWEuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChJKSsxLHduPXN0LWQuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChHKSsxO2xldCBobj1hLmdldE5lYXJlc3ROb3RIaWRkZW5J'@; put 'bmRleCh1ZSwxKSxNbj1kLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCh5ZSwxKTtpZihwdCl7Y29uc3QgcW49bC52aWV3LmdldEFjdGl2ZU92ZXJsYXlOYW1lKCk7WyJ0b3AiLCJ0b3BfaW5saW5lX3N0YXJ0X2Nvcm5lciJdLmluY2x1ZGVzKHFuKXx8KGhuPU1hdGgubWF4KGhuLGwuZ2V0Rmly'@; put 'c3RSZW5kZXJlZFZpc2libGVSb3coKSkpLFsiaW5saW5lX3N0YXJ0IiwidG9wX2lubGluZV9zdGFydF9jb3JuZXIiLCJib3R0b21faW5saW5lX3N0YXJ0X2Nvcm5lciJdLmluY2x1ZGVzKHFuKXx8KE1uPU1hdGgubWF4KE1uLGwuZ2V0Rmlyc3RSZW5kZXJlZFZpc2libGVDb2x1bW4oKSkpfWNv'@; put 'bnN0IE1yPU1hdGgubWluKEJlLG1uKSxrcj1NYXRoLm1pbihFZSx3bik7aG49PT1JJiZNbj09PUc/KE0uc2V0QXR0cmlidXRlKCJyb3dzcGFuIixNciksTS5zZXRBdHRyaWJ1dGUoImNvbHNwYW4iLGtyKSk6KE0ucmVtb3ZlQXR0cmlidXRlKCJyb3dzcGFuIiksTS5yZW1vdmVBdHRyaWJ1dGUo'@; put 'ImNvbHNwYW4iKSxNLnN0eWxlLmRpc3BsYXk9Im5vbmUiKX19fSh0aGlzKSl9c3RhdGljIGdldCBQTFVHSU5fS0VZKCl7cmV0dXJuIGFlZX1zdGF0aWMgZ2V0IFBMVUdJTl9QUklPUklUWSgpe3JldHVybiAxNTB9c3RhdGljIGdldCBERUZBVUxUX1NFVFRJTkdTKCl7cmV0dXJue1tGNGVdOiJj'@; put 'ZWxscyIsdmlydHVhbGl6ZWQ6ITEsY2VsbHM6W119fWlzRW5hYmxlZCgpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVthZWVdfWVuYWJsZVBsdWdpbigpe3ZhciBsPXRoaXM7dGhpcy5lbmFibGVkfHwodGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb249bmV3IG9wdCh0aGlzKSx0aGlz'@; put 'LmF1dG9maWxsQ2FsY3VsYXRpb25zPW5ldyBkcHQodGhpcyksdGhpcy5zZWxlY3Rpb25DYWxjdWxhdGlvbnM9bmV3IGdwdCh0aGlzKSx0aGlzLmFkZEhvb2soImFmdGVySW5pdCIsZnVuY3Rpb24oKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxkPW5ldyBBcnJheShhKSxoPTA7aDxhO2gr'@; put 'KylkW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gRWwoSGwsbCxBcHQpLmNhbGwobCwuLi5kKX0pLHRoaXMuYWRkSG9vaygibW9kaWZ5VHJhbnNmb3JtRm9jdXMiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGgsZD1uZXcgQXJyYXkoYSksaD0wO2g8YTtoKyspZFtoXT1hcmd1'@; put 'bWVudHNbaF07cmV0dXJuIEVsKEhsLGwsRHB0KS5jYWxsKGwsLi4uZCl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeVRyYW5zZm9ybVN0YXJ0IixmdW5jdGlvbigpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDtoPGE7aCsrKWRbaF09YXJndW1lbnRzW2hdO3Jl'@; put 'dHVybiBFbChIbCxsLElwdCkuY2FsbChsLC4uLmQpfSksdGhpcy5hZGRIb29rKCJtb2RpZnlUcmFuc2Zvcm1FbmQiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGgsZD1uZXcgQXJyYXkoYSksaD0wO2g8YTtoKyspZFtoXT1hcmd1bWVudHNbaF07cmV0dXJuIEVsKEhsLGws'@; put 'UnB0KS5jYWxsKGwsLi4uZCl9KSx0aGlzLmFkZEhvb2soImJlZm9yZVNlbGVjdGlvbkhpZ2hsaWdodFNldCIsZnVuY3Rpb24oKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxkPW5ldyBBcnJheShhKSxoPTA7aDxhO2grKylkW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gRWwoSGwsbCxMcHQp'@; put 'LmNhbGwobCwuLi5kKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlU2V0UmFuZ2VTdGFydCIsZnVuY3Rpb24oKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxkPW5ldyBBcnJheShhKSxoPTA7aDxhO2grKylkW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gRWwoSGwsbCxVbWUpLmNhbGwobCwuLi5k'@; put 'KX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlU2V0UmFuZ2VTdGFydE9ubHkiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGgsZD1uZXcgQXJyYXkoYSksaD0wO2g8YTtoKyspZFtoXT1hcmd1bWVudHNbaF07cmV0dXJuIEVsKEhsLGwsVW1lKS5jYWxsKGwsLi4uZCl9KSx0aGlz'@; put 'LmFkZEhvb2soImJlZm9yZVNlbGVjdGlvbkZvY3VzU2V0IixmdW5jdGlvbigpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDtoPGE7aCsrKWRbaF09YXJndW1lbnRzW2hdO3JldHVybiBFbChIbCxsLFBwdCkuY2FsbChsLC4uLmQpfSksdGhpcy5hZGRIb29r'@; put 'KCJhZnRlclNlbGVjdGlvbkZvY3VzU2V0IixmdW5jdGlvbigpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDtoPGE7aCsrKWRbaF09YXJndW1lbnRzW2hdO3JldHVybiBFbChIbCxsLEZwdCkuY2FsbChsLC4uLmQpfSksdGhpcy5hZGRIb29rKCJhZnRlclNl'@; put 'bGVjdGlvbkVuZCIsZnVuY3Rpb24oKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxkPW5ldyBBcnJheShhKSxoPTA7aDxhO2grKylkW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gRWwoSGwsbCxIcHQpLmNhbGwobCwuLi5kKX0pLHRoaXMuYWRkSG9vaygibW9kaWZ5R2V0Q2VsbENvb3JkcyIs'@; put 'ZnVuY3Rpb24oKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxkPW5ldyBBcnJheShhKSxoPTA7aDxhO2grKylkW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gRWwoSGwsbCx6bWUpLmNhbGwobCwuLi5kKX0pLHRoaXMuYWRkSG9vaygibW9kaWZ5R2V0Q29vcmRzRWxlbWVudCIsZnVuY3Rpb24o'@; put 'KXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxkPW5ldyBBcnJheShhKSxoPTA7aDxhO2grKylkW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gRWwoSGwsbCx6bWUpLmNhbGwobCwuLi5kKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJJc011bHRpcGxlU2VsZWN0aW9uIixmdW5jdGlvbigpe2Zvcih2'@; put 'YXIgYT1hcmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDtoPGE7aCsrKWRbaF09YXJndW1lbnRzW2hdO3JldHVybiBFbChIbCxsLGtwdCkuY2FsbChsLC4uLmQpfSksdGhpcy5hZGRIb29rKCJhZnRlclJlbmRlcmVyIixmdW5jdGlvbigpe3JldHVybiBlYyhqbWUsbCkuYWZ0ZXIo'@; put 'Li4uYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zIixmdW5jdGlvbigpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDtoPGE7aCsrKWRbaF09YXJndW1lbnRzW2hdO3JldHVybiBFbChIbCxsLE9wdCku'@; put 'Y2FsbChsLC4uLmQpfSksdGhpcy5hZGRIb29rKCJhZnRlckdldENlbGxNZXRhIixmdW5jdGlvbigpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDtoPGE7aCsrKWRbaF09YXJndW1lbnRzW2hdO3JldHVybiBFbChIbCxsLE5wdCkuY2FsbChsLC4uLmQpfSks'@; put 'dGhpcy5hZGRIb29rKCJhZnRlclZpZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlIixmdW5jdGlvbigpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDtoPGE7aCsrKWRbaF09YXJndW1lbnRzW2hdO3JldHVybiBFbChIbCxsLFZwdCkuY2FsbChsLC4uLmQp'@; put 'fSksdGhpcy5hZGRIb29rKCJhZnRlclZpZXdwb3J0Q29sdW1uQ2FsY3VsYXRvck92ZXJyaWRlIixmdW5jdGlvbigpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDtoPGE7aCsrKWRbaF09YXJndW1lbnRzW2hdO3JldHVybiBFbChIbCxsLEJwdCkuY2FsbChs'@; put 'LC4uLmQpfSksdGhpcy5hZGRIb29rKCJtb2RpZnlBdXRvZmlsbFJhbmdlIixmdW5jdGlvbigpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDtoPGE7aCsrKWRbaF09YXJndW1lbnRzW2hdO3JldHVybiBFbChIbCxsLGpwdCkuY2FsbChsLC4uLmQpfSksdGhp'@; put 'cy5hZGRIb29rKCJhZnRlckNyZWF0ZUNvbCIsZnVuY3Rpb24oKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxkPW5ldyBBcnJheShhKSxoPTA7aDxhO2grKylkW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gRWwoSGwsbCx6cHQpLmNhbGwobCwuLi5kKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJS'@; put 'ZW1vdmVDb2wiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGgsZD1uZXcgQXJyYXkoYSksaD0wO2g8YTtoKyspZFtoXT1hcmd1bWVudHNbaF07cmV0dXJuIEVsKEhsLGwsVXB0KS5jYWxsKGwsLi4uZCl9KSx0aGlzLmFkZEhvb2soImFmdGVyQ3JlYXRlUm93IixmdW5jdGlv'@; put 'bigpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDtoPGE7aCsrKWRbaF09YXJndW1lbnRzW2hdO3JldHVybiBFbChIbCxsLFpwdCkuY2FsbChsLC4uLmQpfSksdGhpcy5hZGRIb29rKCJhZnRlclJlbW92ZVJvdyIsZnVuY3Rpb24oKXtmb3IodmFyIGE9YXJn'@; put 'dW1lbnRzLmxlbmd0aCxkPW5ldyBBcnJheShhKSxoPTA7aDxhO2grKylkW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gRWwoSGwsbCxXcHQpLmNhbGwobCwuLi5kKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJDaGFuZ2UiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGgsZD1uZXcg'@; put 'QXJyYXkoYSksaD0wO2g8YTtoKyspZFtoXT1hcmd1bWVudHNbaF07cmV0dXJuIEVsKEhsLGwsWXB0KS5jYWxsKGwsLi4uZCl9KSx0aGlzLmFkZEhvb2soImJlZm9yZURyYXdCb3JkZXJzIixmdW5jdGlvbigpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDto'@; put 'PGE7aCsrKWRbaF09YXJndW1lbnRzW2hdO3JldHVybiBFbChIbCxsLEdwdCkuY2FsbChsLC4uLmQpfSksdGhpcy5hZGRIb29rKCJhZnRlckRyYXdTZWxlY3Rpb24iLGZ1bmN0aW9uKCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGgsZD1uZXcgQXJyYXkoYSksaD0wO2g8YTtoKyspZFtoXT1h'@; put 'cmd1bWVudHNbaF07cmV0dXJuIEVsKEhsLGwsJHB0KS5jYWxsKGwsLi4uZCl9KSx0aGlzLmFkZEhvb2soImJlZm9yZVJlbW92ZUNlbGxDbGFzc05hbWVzIixmdW5jdGlvbigpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDtoPGE7aCsrKWRbaF09YXJndW1l'@; put 'bnRzW2hdO3JldHVybiBFbChIbCxsLEtwdCkuY2FsbChsLC4uLmQpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVCZWdpbkVkaXRpbmciLGZ1bmN0aW9uKCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGgsZD1uZXcgQXJyYXkoYSksaD0wO2g8YTtoKyspZFtoXT1hcmd1bWVudHNbaF07cmV0dXJu'@; put 'IEVsKEhsLGwsWHB0KS5jYWxsKGwsLi4uZCl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeVJvd0hlaWdodEJ5T3ZlcmxheU5hbWUiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGgsZD1uZXcgQXJyYXkoYSksaD0wO2g8YTtoKyspZFtoXT1hcmd1bWVudHNbaF07cmV0dXJuIEVs'@; put 'KEhsLGwscXB0KS5jYWxsKGwsLi4uZCl9KSx0aGlzLmFkZEhvb2soImJlZm9yZVVuZG9TdGFja0NoYW5nZSIsKGEsZCk9PntpZigiTWVyZ2VDZWxscyI9PT1kKXJldHVybiExfSksdGhpcy5yZWdpc3RlclNob3J0Y3V0cygpLHN1cGVyLmVuYWJsZVBsdWdpbigpKX1kaXNhYmxlUGx1Z2luKCl7'@; put 'dGhpcy5jbGVhckNvbGxlY3Rpb25zKCksdGhpcy51bnJlZ2lzdGVyU2hvcnRjdXRzKCksdGhpcy5ob3QucmVuZGVyKCksc3VwZXIuZGlzYWJsZVBsdWdpbigpfXVwZGF0ZVBsdWdpbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCksdGhpcy5nZW5lcmF0ZUZyb21T'@; put 'ZXR0aW5ncygpLHN1cGVyLnVwZGF0ZVBsdWdpbigpfWlmQ2hyb21lRm9yY2VSZXBhaW50KCl7aWYoIUMkKCkpcmV0dXJuO2NvbnN0IGw9W107bGV0IGE9W107dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24ubWVyZ2VkQ2VsbHMuZm9yRWFjaChkPT57Y29uc3R7cm93Omgscm93c3BhbjpmfT1k'@; put 'O2ZvcihsZXQgdj1oKzE7djxoK2Y7disrKWEucHVzaCh2KX0pLGE9Wy4uLm5ldyBTZXQoYSldLGEuZm9yRWFjaChkPT57Y29uc3QgaD10aGlzLmhvdC5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KGQpO3RoaXMuaG90LnZpZXcuX3d0Lnd0T3ZlcmxheXMuZ2V0'@; put 'T3ZlcmxheXMoITApLm1hcChmPT4ibWFzdGVyIj09PWY/Lm5hbWU/ZjpmLmNsb25lLnd0VGFibGUpLmZvckVhY2goZj0+e2NvbnN0IHY9Zi5nZXRSb3coaCk7diYmKHYuc3R5bGUuYmFja2dyb3VuZD1URSh2LCJiYWNrZ3JvdW5kQ29sb3IiKS5yZXBsYWNlKCIpIiwiLCAwLjk5KSIpLGwucHVz'@; put 'aCh2KSl9KX0pLHRoaXMuaG90Ll9yZWdpc3RlclRpbWVvdXQoKCk9PntsLmZvckVhY2goZD0+e3ZhciBoO2Quc3R5bGUuYmFja2dyb3VuZD1udWxsPT09KGg9VEUoZCwiYmFja2dyb3VuZENvbG9yIikpfHx2b2lkIDA9PT1oP3ZvaWQgMDpoLnJlcGxhY2UoIiwgMC45OSkiLCIpIil9KX0sMSl9'@; put 'dmFsaWRhdGVTZXR0aW5nKGwpe3JldHVybiEoIWx8fChxcC5jb250YWluc05lZ2F0aXZlVmFsdWVzKGwpPyhZbyhxcC5ORUdBVElWRV9WQUxVRVNfV0FSTklORyhsKSksMSk6cXAuaXNPdXRPZkJvdW5kcyhsLHRoaXMuaG90LmNvdW50Um93cygpLHRoaXMuaG90LmNvdW50Q29scygpKT8oWW8o'@; put 'cXAuSVNfT1VUX09GX0JPVU5EU19XQVJOSU5HKGwpKSwxKTpxcC5pc1NpbmdsZUNlbGwobCk/KFlvKHFwLklTX1NJTkdMRV9DRUxMKGwpKSwxKTpxcC5jb250YWluc1plcm9TcGFuKGwpJiYoWW8ocXAuWkVST19TUEFOX1dBUk5JTkcobCkpLDEpKSl9Z2VuZXJhdGVGcm9tU2V0dGluZ3MoKXtj'@; put 'b25zdCBsPXRoaXMuZ2V0U2V0dGluZygiY2VsbHMiKS5maWx0ZXIoaD0+dGhpcy52YWxpZGF0ZVNldHRpbmcoaCkpLGE9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZmlsdGVyT3ZlcmxhcHBpbmdNZXJnZUNlbGxzKGwpLGQ9W107YS5mb3JFYWNoKGg9Pntjb25zdHtyb3c6Zixjb2w6dixy'@; put 'b3dzcGFuOk0sY29sc3BhbjpJfT1oLEc9dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoZix2KSxyZT10aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhmK00tMSx2K0ktMSksdWU9dGhpcy5ob3QuX2NyZWF0ZUNlbGxSYW5nZShHLEcscmUpO3RoaXMubWVyZ2VSYW5nZSh1ZSwhMCwhMCk7Zm9y'@; put 'KGxldCB5ZT1mO3llPGYrTTt5ZSsrKWZvcihsZXQgRWU9djtFZTx2K0k7RWUrKykoeWUhPT1mfHxFZSE9PXYpJiZkLnB1c2goW3llLEVlLG51bGxdKX0pLDAhPT1kLmxlbmd0aCYmdGhpcy5ob3Quc2V0RGF0YUF0Q2VsbChkLHZvaWQgMCx2b2lkIDAsdGhpcy5wbHVnaW5OYW1lKX1jbGVhckNv'@; put 'bGxlY3Rpb25zKCl7dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uY2xlYXIoKX1jYW5NZXJnZVJhbmdlKGwpe3JldHVybiEhKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0pfHx0aGlzLnZhbGlkYXRlU2V0dGluZyhsKX1tZXJnZVNlbGVj'@; put 'dGlvbigpe2xldCBsPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpO2lmKCFsKXJldHVybjtsLnNldERpcmVjdGlvbih0aGlzLmhvdC5pc1J0bCgpPyJORS1TVyI6Ik5XLVNFIik7Y29u'@; put 'c3R7ZnJvbTphLHRvOmR9PWw7dGhpcy51bm1lcmdlUmFuZ2UobCwhMCksdGhpcy5tZXJnZVJhbmdlKGwpLHRoaXMuaG90LnNlbGVjdENlbGwoYS5yb3csYS5jb2wsZC5yb3csZC5jb2wsITEpfXVubWVyZ2VTZWxlY3Rpb24oKXtsZXQgbD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFy'@; put 'Z3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtpZighbClyZXR1cm47Y29uc3R7ZnJvbTphLHRvOmR9PWw7dGhpcy51bm1lcmdlUmFuZ2UobCwhMCksdGhpcy5ob3Quc2VsZWN0Q2VsbChhLnJvdyxhLmNvbCxkLnJvdyxkLmNvbCwhMSl9bWVy'@; put 'Z2VSYW5nZShsKXtsZXQgYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLGQ9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXTtjb25zdCBoPWwuZ2V0VG9wU3RhcnRDb3JuZXIoKSxmPWwu'@; put 'Z2V0Qm90dG9tRW5kQ29ybmVyKCksdj17cm93Omgucm93LGNvbDpoLmNvbCxyb3dzcGFuOmYucm93LWgucm93KzEsY29sc3BhbjpmLmNvbC1oLmNvbCsxfSxNPVtdO2xldCBJPW51bGw7cmV0dXJuISF0aGlzLmNhbk1lcmdlUmFuZ2UodixhKSYmKHRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVN'@; put 'ZXJnZUNlbGxzIixsLGEpLEthKDAsdi5yb3dzcGFuLTEscmU9PntLYSgwLHYuY29sc3Bhbi0xLHVlPT57bGV0IHllPW51bGw7TVtyZV18fChNW3JlXT1bXSksMD09PXJlJiYwPT09dWU/eWU9dGhpcy5ob3QuZ2V0U291cmNlRGF0YUF0Q2VsbCh0aGlzLmhvdC50b1BoeXNpY2FsUm93KHYucm93'@; put 'KSx0aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKHYuY29sKSk6dGhpcy5ob3Quc2V0Q2VsbE1ldGEodi5yb3crcmUsdi5jb2wrdWUsImhpZGRlbiIsITApLE1bcmVdW3VlXT15ZX0pfSksdGhpcy5ob3Quc2V0Q2VsbE1ldGEodi5yb3csdi5jb2wsInNwYW5uZWQiLCEwKSwhdGhpcy5tZXJnZWRD'@; put 'ZWxsc0NvbGxlY3Rpb24uYWRkKHYsYSl8fChkP0k9W3Yucm93LHYuY29sLE1dOnRoaXMuaG90LnBvcHVsYXRlRnJvbUFycmF5KHYucm93LHYuY29sLE0sdm9pZCAwLHZvaWQgMCx0aGlzLnBsdWdpbk5hbWUpLGF8fHRoaXMuaWZDaHJvbWVGb3JjZVJlcGFpbnQoKSx0aGlzLmhvdC5ydW5Ib29r'@; put 'cygiYWZ0ZXJNZXJnZUNlbGxzIixsLHYsYSksSSkpfXVubWVyZ2VSYW5nZShsKXtsZXQgYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdO2NvbnN0IGQ9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0V2l0aGluUmFuZ2UobCk7MCE9'@; put 'PWQubGVuZ3RoJiYodGhpcy5ob3QucnVuSG9va3MoImJlZm9yZVVubWVyZ2VDZWxscyIsbCxhKSxLbihkLGg9Pnt0aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5yZW1vdmUoaC5yb3csaC5jb2wpLEthKDAsaC5yb3dzcGFuLTEsZj0+e0thKDAsaC5jb2xzcGFuLTEsdj0+e3RoaXMuaG90LnJl'@; put 'bW92ZUNlbGxNZXRhKGgucm93K2YsaC5jb2wrdiwiaGlkZGVuIiksdGhpcy5ob3QucmVtb3ZlQ2VsbE1ldGEoaC5yb3crZixoLmNvbCt2LCJjb3B5YWJsZSIpfSl9KSx0aGlzLmhvdC5yZW1vdmVDZWxsTWV0YShoLnJvdyxoLmNvbCwic3Bhbm5lZCIpfSksdGhpcy5ob3QucnVuSG9va3MoImFm'@; put 'dGVyVW5tZXJnZUNlbGxzIixsLGEpLHRoaXMuaG90LnJlbmRlcigpKX10b2dnbGVNZXJnZShsKXtjb25zdHtmcm9tOmEsdG86ZH09bC5jbG9uZSgpLm5vcm1hbGl6ZSgpLGg9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0KGEucm93LGEuY29sKTtoLnJvdz09PWEucm93JiZoLmNvbD09'@; put 'PWEuY29sJiZoLnJvdytoLnJvd3NwYW4tMT09PWQucm93JiZoLmNvbCtoLmNvbHNwYW4tMT09PWQuY29sP3RoaXMudW5tZXJnZVJhbmdlKGwpOnRoaXMubWVyZ2VTZWxlY3Rpb24obCl9bWVyZ2UobCxhLGQsaCl7Y29uc3QgZj10aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhsLGEpLHY9dGhp'@; put 'cy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoZCxoKTt0aGlzLm1lcmdlUmFuZ2UodGhpcy5ob3QuX2NyZWF0ZUNlbGxSYW5nZShmLGYsdikpfXVubWVyZ2UobCxhLGQsaCl7Y29uc3QgZj10aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhsLGEpLHY9dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMo'@; put 'ZCxoKTt0aGlzLnVubWVyZ2VSYW5nZSh0aGlzLmhvdC5fY3JlYXRlQ2VsbFJhbmdlKGYsZix2KSl9cmVnaXN0ZXJTaG9ydGN1dHMoKXt0aGlzLmhvdC5nZXRTaG9ydGN1dE1hbmFnZXIoKS5nZXRDb250ZXh0KCJncmlkIikuYWRkU2hvcnRjdXQoe2tleXM6W1siQ29udHJvbCIsIm0iXV0sY2Fs'@; put 'bGJhY2s6KCk9Pntjb25zdCBkPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7ZCYmIWQuaXNTaW5nbGVIZWFkZXIoKSYmKHRoaXMudG9nZ2xlTWVyZ2UoZCksdGhpcy5ob3QucmVuZGVyKCkpfSxydW5Pbmx5SWY6ZD0+IWQuYWx0S2V5LGdyb3VwOkJtZX0pfXVucmVnaXN0ZXJTaG9y'@; put 'dGN1dHMoKXt0aGlzLmhvdC5nZXRTaG9ydGN1dE1hbmFnZXIoKS5nZXRDb250ZXh0KCJncmlkIikucmVtb3ZlU2hvcnRjdXRzQnlHcm91cChCbWUpfW1vZGlmeVZpZXdwb3J0Um93U3RhcnQobCxhKXtjb25zdCBkPXRoaXMuaG90LnJvd0luZGV4TWFwcGVyLGg9ZC5nZXRWaXN1YWxGcm9tUmVu'@; put 'ZGVyYWJsZUluZGV4KGwuc3RhcnRSb3cpO2ZvcihsZXQgZj0wO2Y8YTtmKz0xKXtjb25zdCB2PXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldChoLGYpO2lmKFhzKHYpKXtjb25zdCBNPWQuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChkLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRl'@; put 'eCh2LnJvdywxKSk7aWYoTTxsLnN0YXJ0Um93KXJldHVybiBsLnN0YXJ0Um93PU0sdm9pZCB0aGlzLm1vZGlmeVZpZXdwb3J0Um93U3RhcnQobCxhKX19fW1vZGlmeVZpZXdwb3J0Um93RW5kKGwsYSl7Y29uc3QgZD10aGlzLmhvdC5yb3dJbmRleE1hcHBlcixoPWQuZ2V0VmlzdWFsRnJvbVJl'@; put 'bmRlcmFibGVJbmRleChsLmVuZFJvdyk7Zm9yKGxldCBmPTA7ZjxhO2YrPTEpe2NvbnN0IHY9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0KGgsZik7aWYoWHModikpe2NvbnN0IEk9ZC5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KGQuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4'@; put 'KHYucm93K3Yucm93c3Bhbi0xLC0xKSk7aWYoST5sLmVuZFJvdylyZXR1cm4gbC5lbmRSb3c9SSx2b2lkIHRoaXMubW9kaWZ5Vmlld3BvcnRSb3dFbmQobCxhKX19fW1vZGlmeVZpZXdwb3J0Q29sdW1uU3RhcnQobCxhKXtjb25zdCBkPXRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLGg9ZC5n'@; put 'ZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KGwuc3RhcnRDb2x1bW4pO2ZvcihsZXQgZj0wO2Y8YTtmKz0xKXtjb25zdCB2PXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldChmLGgpO2lmKFhzKHYpKXtjb25zdCBNPWQuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChkLmdldE5l'@; put 'YXJlc3ROb3RIaWRkZW5JbmRleCh2LmNvbCwxKSk7aWYoTTxsLnN0YXJ0Q29sdW1uKXJldHVybiBsLnN0YXJ0Q29sdW1uPU0sdm9pZCB0aGlzLm1vZGlmeVZpZXdwb3J0Q29sdW1uU3RhcnQobCxhKX19fW1vZGlmeVZpZXdwb3J0Q29sdW1uRW5kKGwsYSl7Y29uc3QgZD10aGlzLmhvdC5jb2x1'@; put 'bW5JbmRleE1hcHBlcixoPWQuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChsLmVuZENvbHVtbik7Zm9yKGxldCBmPTA7ZjxhO2YrPTEpe2NvbnN0IHY9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0KGYsaCk7aWYoWHModikpe2NvbnN0IEk9ZC5nZXRSZW5kZXJhYmxlRnJvbVZp'@; put 'c3VhbEluZGV4KGQuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KHYuY29sK3YuY29sc3Bhbi0xLC0xKSk7aWYoST5sLmVuZENvbHVtbilyZXR1cm4gbC5lbmRDb2x1bW49SSx2b2lkIHRoaXMubW9kaWZ5Vmlld3BvcnRDb2x1bW5FbmQobCxhKX19fXRyYW5zbGF0ZU1lcmdlZENlbGxUb1JlbmRl'@; put 'cmFibGUobCxhLGQsaCl7Y29uc3R7cm93SW5kZXhNYXBwZXI6Zixjb2x1bW5JbmRleE1hcHBlcjp2fT10aGlzLmhvdDtsZXQgTSxJO3JldHVybiBNPTA9PT1hP2YuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KGwsMSk6Zi5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgobCthLTEsLTEpLEk9MD09'@; put 'PWg/di5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoZCwxKTp2LmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChkK2gtMSwtMSksW2w+PTA/Zi5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KE0pOmwsZD49MD92LmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoSSk6ZF19fWZ1bmN0aW9u'@; put 'IEFwdCgpe3RoaXMuZ2VuZXJhdGVGcm9tU2V0dGluZ3MoKSx0aGlzLmhvdC5yZW5kZXIoKX1mdW5jdGlvbiBrcHQoYyl7aWYoYyl7Y29uc3QgbD10aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5tZXJnZWRDZWxscyxhPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksZD1hLmdldFRv'@; put 'cFN0YXJ0Q29ybmVyKCksaD1hLmdldEJvdHRvbUVuZENvcm5lcigpO2ZvcihsZXQgZj0wO2Y8bC5sZW5ndGg7Zis9MSlpZihkLnJvdz09PWxbZl0ucm93JiZkLmNvbD09PWxbZl0uY29sJiZoLnJvdz09PWxbZl0ucm93K2xbZl0ucm93c3Bhbi0xJiZoLmNvbD09PWxbZl0uY29sK2xbZl0uY29s'@; put 'c3Bhbi0xKXJldHVybiExfXJldHVybiBjfWZ1bmN0aW9uIERwdChjKXtlYyhzZix0aGlzKS5yb3c9Yy5yb3csZWMoc2YsdGhpcykuY29sPWMuY29sfWZ1bmN0aW9uIElwdChjKXtjb25zdCBsPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCkse2hpZ2hsaWdodDphfT1sLHtjb2x1bW5J'@; put 'bmRleE1hcHBlcjpkLHJvd0luZGV4TWFwcGVyOmh9PXRoaXMuaG90O2VjKGFmLHRoaXMpJiYobnVsbCE9PWguZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChlYyhhZix0aGlzKS5yb3cpJiYoYS5yb3c9ZWMoYWYsdGhpcykucm93KSxudWxsIT09ZC5nZXRSZW5kZXJhYmxlRnJvbVZpc3Vh'@; put 'bEluZGV4KGVjKGFmLHRoaXMpLmNvbCkmJihhLmNvbD1lYyhhZix0aGlzKS5jb2wpLG1BKGFmLHRoaXMsbnVsbCkpO2NvbnN0IGY9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0KGEucm93LGEuY29sKTtpZighZilyZXR1cm47Y29uc3Qgdj1mLmNvbCxNPWYuY29sK2YuY29sc3Bhbi0x'@; put 'O2lmKGMuY29sPDApe2NvbnN0IHVlPWQuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KGEuY29sPj12JiZhLmNvbDw9TT92LTE6TSwtMSk7Yy5jb2w9bnVsbD09PXVlPy10aGlzLmhvdC52aWV3LmNvdW50UmVuZGVyYWJsZUNvbHVtbnNJblJhbmdlKDAsYS5jb2wpOi1NYXRoLm1heCh0aGlzLmhv'@; put 'dC52aWV3LmNvdW50UmVuZGVyYWJsZUNvbHVtbnNJblJhbmdlKHVlLGEuY29sKS0xLDEpfWVsc2UgaWYoYy5jb2w+MCl7Y29uc3QgdWU9ZC5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoYS5jb2w+PXYmJmEuY29sPD1NP00rMTp2LDEpO2MuY29sPW51bGw9PT11ZT90aGlzLmhvdC52aWV3LmNv'@; put 'dW50UmVuZGVyYWJsZUNvbHVtbnNJblJhbmdlKGEuY29sLHRoaXMuaG90LmNvdW50Q29scygpKTpNYXRoLm1heCh0aGlzLmhvdC52aWV3LmNvdW50UmVuZGVyYWJsZUNvbHVtbnNJblJhbmdlKGEuY29sLHVlKS0xLDEpfWNvbnN0IEk9Zi5yb3csRz1mLnJvdytmLnJvd3NwYW4tMTtpZihjLnJv'@; put 'dzwwKXtjb25zdCB1ZT1oLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChhLnJvdz49SSYmYS5yb3c8PUc/SS0xOkcsLTEpO2Mucm93PW51bGw9PT11ZT8tdGhpcy5ob3Qudmlldy5jb3VudFJlbmRlcmFibGVSb3dzSW5SYW5nZSgwLGEucm93KTotTWF0aC5tYXgodGhpcy5ob3Qudmlldy5jb3Vu'@; put 'dFJlbmRlcmFibGVSb3dzSW5SYW5nZSh1ZSxhLnJvdyktMSwxKX1lbHNlIGlmKGMucm93PjApe2NvbnN0IHVlPWguZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KGEucm93Pj1JJiZhLnJvdzw9Rz9HKzE6SSwxKTtjLnJvdz1udWxsPT09dWU/dGhpcy5ob3Qudmlldy5jb3VudFJlbmRlcmFibGVS'@; put 'b3dzSW5SYW5nZShhLnJvdyx0aGlzLmhvdC5jb3VudFJvd3MoKSk6TWF0aC5tYXgodGhpcy5ob3Qudmlldy5jb3VudFJlbmRlcmFibGVSb3dzSW5SYW5nZShhLnJvdyx1ZSktMSwxKX19ZnVuY3Rpb24gUnB0KGMpe2NvbnN0IGw9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxhPWwu'@; put 'Y2xvbmUoKSx7dG86ZH09bCx7Y29sdW1uSW5kZXhNYXBwZXI6aCxyb3dJbmRleE1hcHBlcjpmfT10aGlzLmhvdCx2PShNLEkpPT57YS5leHBhbmQodGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoTSxJKSk7Zm9yKGxldCBHPTA7Rzx0aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5tZXJnZWRD'@; put 'ZWxscy5sZW5ndGg7Rys9MSlhLmV4cGFuZEJ5UmFuZ2UodGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24ubWVyZ2VkQ2VsbHNbR10uZ2V0UmFuZ2UoKSl9O2lmKGMuY29sPDApe2xldCBNPXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldFN0YXJ0TW9zdENvbHVtbkluZGV4KGwsZC5jb2wp'@; put 'K2MuY29sO3YoZC5yb3csTSksIkUtVyI9PT1sLmdldEhvcml6b250YWxEaXJlY3Rpb24oKSYmIkUtVyI9PT1hLmdldEhvcml6b250YWxEaXJlY3Rpb24oKSYmKE09YS5nZXRUb3BTdGFydENvcm5lcigpLmNvbCk7Y29uc3QgST1oLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChNLDEpO251bGwh'@; put 'PT1JJiYoYy5jb2w9LU1hdGgubWF4KHRoaXMuaG90LnZpZXcuY291bnRSZW5kZXJhYmxlQ29sdW1uc0luUmFuZ2UoSSxkLmNvbCktMSwxKSl9ZWxzZSBpZihjLmNvbD4wKXtsZXQgTT10aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5nZXRFbmRNb3N0Q29sdW1uSW5kZXgobCxkLmNvbCkrYy5j'@; put 'b2w7dihkLnJvdyxNKSwiVy1FIj09PWwuZ2V0SG9yaXpvbnRhbERpcmVjdGlvbigpJiYiVy1FIj09PWEuZ2V0SG9yaXpvbnRhbERpcmVjdGlvbigpJiYoTT1hLmdldEJvdHRvbUVuZENvcm5lcigpLmNvbCk7Y29uc3QgST1oLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChNLC0xKTtudWxsIT09'@; put 'SSYmKGMuY29sPU1hdGgubWF4KHRoaXMuaG90LnZpZXcuY291bnRSZW5kZXJhYmxlQ29sdW1uc0luUmFuZ2UoZC5jb2wsSSktMSwxKSl9aWYoYy5yb3c8MCl7bGV0IE09dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0VG9wTW9zdFJvd0luZGV4KGwsZC5yb3cpK2Mucm93O3YoTSxkLmNv'@; put 'bCksIlMtTiI9PT1sLmdldFZlcnRpY2FsRGlyZWN0aW9uKCkmJiJTLU4iPT09YS5nZXRWZXJ0aWNhbERpcmVjdGlvbigpJiYoTT1hLmdldFRvcFN0YXJ0Q29ybmVyKCkucm93KTtjb25zdCBJPWYuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KE0sMSk7bnVsbCE9PUkmJihjLnJvdz0tTWF0aC5t'@; put 'YXgodGhpcy5ob3Qudmlldy5jb3VudFJlbmRlcmFibGVSb3dzSW5SYW5nZShJLGQucm93KS0xLDEpKX1lbHNlIGlmKGMucm93PjApe2xldCBNPXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldEJvdHRvbU1vc3RSb3dJbmRleChsLGQucm93KStjLnJvdzt2KE0sZC5jb2wpLCJOLVMiPT09'@; put 'bC5nZXRWZXJ0aWNhbERpcmVjdGlvbigpJiYiTi1TIj09PWEuZ2V0VmVydGljYWxEaXJlY3Rpb24oKSYmKE09YS5nZXRCb3R0b21TdGFydENvcm5lcigpLnJvdyk7Y29uc3QgST1mLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChNLC0xKTtudWxsIT09SSYmKGMucm93PU1hdGgubWF4KHRoaXMu'@; put 'aG90LnZpZXcuY291bnRSZW5kZXJhYmxlUm93c0luUmFuZ2UoZC5yb3csSSktMSwxKSl9fWZ1bmN0aW9uIExwdCgpe2NvbnN0IGM9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSx7aGlnaGxpZ2h0Omx9PWM7aWYodGhpcy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvbHVtbkhl'@; put 'YWRlcigpfHx0aGlzLmhvdC5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCkpcmV0dXJuIHZvaWQgbUEoYWYsdGhpcyxsLmNsb25lKCkpO2ZvcihsZXQgZD0wO2Q8dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24ubWVyZ2VkQ2VsbHMubGVuZ3RoO2QrPTEpYy5leHBhbmRCeVJhbmdl'@; put 'KHRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLm1lcmdlZENlbGxzW2RdLmdldFJhbmdlKCksITEpO2ZvcihsZXQgZD0wO2Q8dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24ubWVyZ2VkQ2VsbHMubGVuZ3RoO2QrPTEpYy5leHBhbmRCeVJhbmdlKHRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9u'@; put 'Lm1lcmdlZENlbGxzW2RdLmdldFJhbmdlKCksITEpO2NvbnN0IGE9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0KGwucm93LGwuY29sKTttQShhZix0aGlzLGwuY2xvbmUoKSksYSYmbC5hc3NpZ24oYSl9ZnVuY3Rpb24gem1lKGMsbCxhLGQpe2lmKGM8MHx8bDwwKXJldHVybjtjb25z'@; put 'dCBoPXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldChjLGwpO2lmKCFoKXJldHVybjtjb25zdHtyb3c6Zixjb2w6dixjb2xzcGFuOk0scm93c3BhbjpJfT1oLEc9ZixyZT12LHVlPWYrSS0xLHllPXYrTS0xO2lmKCJyZW5kZXIiPT09ZCYmdGhpcy5nZXRTZXR0aW5nKCJ2aXJ0dWFsaXpl'@; put 'ZCIpKXtjb25zdCBFZT10aGlzLmhvdC52aWV3LmdldEFjdGl2ZU92ZXJsYXlOYW1lKCksQmU9WyJ0b3AiLCJ0b3BfaW5saW5lX3N0YXJ0X2Nvcm5lciJdLmluY2x1ZGVzKEVlKT8wOnRoaXMuaG90LmdldEZpcnN0UmVuZGVyZWRWaXNpYmxlUm93KCksR2U9WyJpbmxpbmVfc3RhcnQiLCJ0b3Bf'@; put 'aW5saW5lX3N0YXJ0X2Nvcm5lciIsImJvdHRvbV9pbmxpbmVfc3RhcnRfY29ybmVyIl0uaW5jbHVkZXMoRWUpPzA6dGhpcy5ob3QuZ2V0Rmlyc3RSZW5kZXJlZFZpc2libGVDb2x1bW4oKTtyZXR1cm5bQW8oQmUsRyx1ZSksQW8oR2UscmUseWUpLEFvKHRoaXMuaG90LmdldExhc3RSZW5kZXJl'@; put 'ZFZpc2libGVSb3coKSxHLHVlKSxBbyh0aGlzLmhvdC5nZXRMYXN0UmVuZGVyZWRWaXNpYmxlQ29sdW1uKCkscmUseWUpXX1yZXR1cm5bRyxyZSx1ZSx5ZV19ZnVuY3Rpb24gT3B0KGMpe2MuaXRlbXMucHVzaCh7bmFtZToiLS0tLS0tLS0tIn0sZnVuY3Rpb24gbXB0KGMpe3JldHVybntrZXk6'@; put 'Im1lcmdlQ2VsbHMiLG5hbWUoKXtjb25zdCBsPXRoaXMuZ2V0U2VsZWN0ZWRMYXN0KCk7aWYobCl7Y29uc3QgYT1jLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5nZXQobFswXSxsWzFdKTtpZihhLnJvdz09PWxbMF0mJmEuY29sPT09bFsxXSYmYS5yb3crYS5yb3dzcGFuLTE9PT1sWzJdJiZhLmNv'@; put 'bCthLmNvbHNwYW4tMT09PWxbM10pcmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShkWCl9cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZSh1WCl9LGNhbGxiYWNrKCl7Y29uc3QgbD10aGlzLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7aWYoIWwpcmV0dXJuO2wuc2V0RGlyZWN0'@; put 'aW9uKHRoaXMuaXNSdGwoKT8iTkUtU1ciOiJOVy1TRSIpO2NvbnN0e2Zyb206YSx0bzpkfT1sO2MudG9nZ2xlTWVyZ2UobCksdGhpcy5zZWxlY3RDZWxsKGEucm93LGEuY29sLGQucm93LGQuY29sLCExKX0sZGlzYWJsZWQoKXtjb25zdCBsPXRoaXMuZ2V0U2VsZWN0ZWRMYXN0KCk7cmV0dXJu'@; put 'IWx8fHFwLmlzU2luZ2xlQ2VsbCh7cm93OmxbMF0sY29sOmxbMV0scm93c3BhbjpsWzJdLWxbMF0rMSxjb2xzcGFuOmxbM10tbFsxXSsxfSl8fHRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5lcigpfSxoaWRkZW46ITF9fSh0aGlzKSl9ZnVuY3Rpb24gVW1lKCl7bUEoYWYsdGhpcyxu'@; put 'dWxsKX1mdW5jdGlvbiBQcHQoKXtpZihlYyhhZix0aGlzKS5pc0NlbGwoKSlyZXR1cm47Y29uc3QgYz10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLGw9Yy5nZXRWZXJ0aWNhbERpcmVjdGlvbigpLGE9Yy5nZXRIb3Jpem9udGFsRGlyZWN0aW9uKCksZD1lYyhhZix0aGlzKS5jbG9u'@; put 'ZSgpLm5vcm1hbGl6ZSgpO2VjKG40LHRoaXMpLnNldEFjdGl2ZU5vZGUoZC5yb3csZC5jb2wpLGVjKHNmLHRoaXMpLnJvdz4wfHxlYyhzZix0aGlzKS5jb2w+MD9lYyhuNCx0aGlzKS5zZXRQcmV2Tm9kZUFzQWN0aXZlKCk6KCJFLVciPT09YSYmZWMoc2YsdGhpcykuY29sPDB8fCJTLU4iPT09'@; put 'bCYmZWMoc2YsdGhpcykucm93PDApJiZlYyhuNCx0aGlzKS5zZXROZXh0Tm9kZUFzQWN0aXZlKCl9ZnVuY3Rpb24gRnB0KGMsbCl7Y29uc3QgYT10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLHtjb2x1bW5JbmRleE1hcHBlcjpkLHJvd0luZGV4TWFwcGVyOmh9PXRoaXMuaG90O2xl'@; put 'dCBmPW51bGwsdj1udWxsO2lmKGVjKHNmLHRoaXMpLmNvbDwwKXtjb25zdHtyb3dFbmQ6TSxjb2xFbmQ6SX09ZWMobjQsdGhpcykuZ2V0UHJldkhvcml6b250YWxOb2RlKCk7dj1kLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChJLC0xKSxmPWguZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KE0s'@; put 'LTEpfWVsc2UgaWYoZWMoc2YsdGhpcykuY29sPjApe2NvbnN0e3Jvd1N0YXJ0Ok0sY29sU3RhcnQ6SX09ZWMobjQsdGhpcykuZ2V0TmV4dEhvcml6b250YWxOb2RlKCk7dj1kLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChJLDEpLGY9aC5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoTSwxKX1l'@; put 'bHNlIGlmKGVjKHNmLHRoaXMpLnJvdzwwKXtjb25zdHtyb3dFbmQ6TSxjb2xFbmQ6SX09ZWMobjQsdGhpcykuZ2V0UHJldlZlcnRpY2FsTm9kZSgpO3Y9ZC5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoSSwtMSksZj1oLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChNLC0xKX1lbHNlIGlmKGVj'@; put 'KHNmLHRoaXMpLnJvdz4wKXtjb25zdHtyb3dTdGFydDpNLGNvbFN0YXJ0Okl9PWVjKG40LHRoaXMpLmdldE5leHRWZXJ0aWNhbE5vZGUoKTt2PWQuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KEksMSksZj1oLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChNLDEpfWlmKG51bGwhPT1mfHxudWxs'@; put 'IT09dil7Y29uc3QgTT10aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhmLHYpLEk9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0KE0ucm93LE0uY29sKSxHPXRoaXMuaG90LnNlbGVjdGlvbi5oaWdobGlnaHQuZ2V0Rm9jdXMoKTtjPU0ucm93LGw9TS5jb2wsYS5oaWdobGlnaHQuYXNz'@; put 'aWduKEk/e3Jvdzp0aGlzLmhvdC5yb3dJbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoSS5yb3csMSksY29sOnRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChJLmNvbCwxKX06TSksRy5jbGVhcigpLEcuYWRkKE0pLmNvbW1pdCgp'@; put 'fWVjKG40LHRoaXMpLnNldEFjdGl2ZU5vZGUoYyxsKSxtQShzZix0aGlzLHtyb3c6MCxjb2w6MH0pfWZ1bmN0aW9uIEhwdCgpe3RoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCkuaXNIZWFkZXIoKXx8ZWMobjQsdGhpcykuYnVpbGRGb2N1c09yZGVyKHRoaXMuaG90LmdldFNlbGVjdGVk'@; put 'UmFuZ2VMYXN0KCkpfWZ1bmN0aW9uIE5wdChjLGwsYSl7Y29uc3QgZD10aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5nZXQoYyxsKTtkJiYoZC5yb3chPT1jfHxkLmNvbCE9PWw/YS5jb3B5YWJsZT0hMTooYS5yb3dzcGFuPWQucm93c3BhbixhLmNvbHNwYW49ZC5jb2xzcGFuKSl9ZnVuY3Rp'@; put 'b24gVnB0KGMpe2lmKHRoaXMuZ2V0U2V0dGluZygidmlydHVhbGl6ZWQiKSlyZXR1cm47Y29uc3QgbD10aGlzLmhvdC5jb3VudENvbHMoKTt0aGlzLm1vZGlmeVZpZXdwb3J0Um93U3RhcnQoYyxsKSx0aGlzLm1vZGlmeVZpZXdwb3J0Um93RW5kKGMsbCl9ZnVuY3Rpb24gQnB0KGMpe2lmKHRo'@; put 'aXMuZ2V0U2V0dGluZygidmlydHVhbGl6ZWQiKSlyZXR1cm47Y29uc3QgbD10aGlzLmhvdC5jb3VudFJvd3MoKTt0aGlzLm1vZGlmeVZpZXdwb3J0Q29sdW1uU3RhcnQoYyxsKSx0aGlzLm1vZGlmeVZpZXdwb3J0Q29sdW1uRW5kKGMsbCl9ZnVuY3Rpb24ganB0KGMsbCl7Y29uc3QgYT10aGlz'@; put 'LmF1dG9maWxsQ2FsY3VsYXRpb25zLmdldERpcmVjdGlvbihsLGMpO2lmKHRoaXMuYXV0b2ZpbGxDYWxjdWxhdGlvbnMuZHJhZ0FyZWFPdmVybGFwc0NvbGxlY3Rpb25zKGwsYyxhKSlyZXR1cm4gbDtjb25zdCBkPXRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKGxbMF0sbFsxXSksaD10aGlz'@; put 'LmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhsWzJdLGxbM10pLGY9dGhpcy5ob3QuX2NyZWF0ZUNlbGxSYW5nZShkLGQsaCksdj10aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5nZXRXaXRoaW5SYW5nZShmKTtyZXR1cm4gMD09PXYubGVuZ3RoP2M6dGhpcy5hdXRvZmlsbENhbGN1bGF0aW9ucy5z'@; put 'bmFwRHJhZ0FyZWEobCxjLGEsdil9ZnVuY3Rpb24genB0KGMsbCl7dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uc2hpZnRDb2xsZWN0aW9ucygicmlnaHQiLGMsbCl9ZnVuY3Rpb24gVXB0KGMsbCl7dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uc2hpZnRDb2xsZWN0aW9ucygibGVmdCIs'@; put 'YyxsKX1mdW5jdGlvbiBacHQoYyxsLGEpeyJhdXRvIiE9PWEmJnRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLnNoaWZ0Q29sbGVjdGlvbnMoImRvd24iLGMsbCl9ZnVuY3Rpb24gV3B0KGMsbCl7dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uc2hpZnRDb2xsZWN0aW9ucygidXAiLGMsbCl9'@; put 'ZnVuY3Rpb24gWXB0KGMsbCl7IkF1dG9maWxsLmZpbGwiPT09bCYmdGhpcy5hdXRvZmlsbENhbGN1bGF0aW9ucy5yZWNyZWF0ZUFmdGVyRGF0YVBvcHVsYXRpb24oYyl9ZnVuY3Rpb24gR3B0KGMsbCl7aWYobCYmImFyZWEiPT09bCl7Y29uc3QgYT10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdl'@; put 'TGFzdCgpO0tuKHRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldFdpdGhpblJhbmdlKGEpLGg9PnthLmdldEJvdHRvbUVuZENvcm5lcigpLnJvdz09PWguZ2V0TGFzdFJvdygpJiZhLmdldEJvdHRvbUVuZENvcm5lcigpLmNvbD09PWguZ2V0TGFzdENvbHVtbigpJiYoY1syXT1oLnJvdyxj'@; put 'WzNdPWguY29sKX0pfX1mdW5jdGlvbiAkcHQoYyxsLGEsZCl7aWYoYSlyZXR1cm4gdGhpcy5zZWxlY3Rpb25DYWxjdWxhdGlvbnMuZ2V0U2VsZWN0ZWRNZXJnZWRDZWxsQ2xhc3NOYW1lKGMsbCxhLGQpfWZ1bmN0aW9uIEtwdCgpe3JldHVybiB0aGlzLnNlbGVjdGlvbkNhbGN1bGF0aW9ucy5n'@; put 'ZXRTZWxlY3RlZE1lcmdlZENlbGxDbGFzc05hbWVUb1JlbW92ZSgpfWZ1bmN0aW9uIFhwdChjLGwsYSxkKXtpZighKGQgaW5zdGFuY2VvZiBNb3VzZUV2ZW50KSlyZXR1cm47Y29uc3QgaD10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLGY9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rp'@; put 'b24uZ2V0QnlSYW5nZShoKTtpZighZilyZXR1cm47Y29uc3Qgdj10aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhmLnJvdyxmLmNvbCksTT10aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhmLnJvdytmLnJvd3NwYW4tMSxmLmNvbCtmLmNvbHNwYW4tMSk7cmV0dXJuIDA9PT10aGlzLmhvdC5z'@; put 'ZWxlY3Rpb24uZ2V0TGF5ZXJMZXZlbCgpJiZoLmlzRXF1YWwodGhpcy5ob3QuX2NyZWF0ZUNlbGxSYW5nZSh2LHYsTSkpfWZ1bmN0aW9uIHFwdChjLGwsYSl7aWYodGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5yb3dIZWFkZXJzfHwiYm90dG9tIj09PWF8fCJib3R0b21faW5saW5lX3N0YXJ0X2Nv'@; put 'cm5lciI9PT1hKXJldHVybiBjO2xldCBkLGg7aWYoIm1hc3RlciI9PT1hKWQ9dGhpcy5ob3QuZ2V0Rmlyc3RSZW5kZXJlZFZpc2libGVDb2x1bW4oKSxoPXRoaXMuaG90LmdldExhc3RSZW5kZXJlZFZpc2libGVDb2x1bW4oKTtlbHNle2NvbnN0IHllPXRoaXMuaG90LnZpZXcuZ2V0T3Zlcmxh'@; put 'eUJ5TmFtZShhKTtkPXRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoeWUuY2xvbmUud3RUYWJsZS5nZXRGaXJzdFJlbmRlcmVkQ29sdW1uKCkpLGg9dGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJ'@; put 'bmRleCh5ZS5jbG9uZS53dFRhYmxlLmdldExhc3RSZW5kZXJlZENvbHVtbigpKX1pZighdGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0KGwsZCkpcmV0dXJuIGM7Y29uc3Qgdj10aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhsLGQpLE09dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMo'@; put 'bCxoKSxJPXRoaXMuaG90Ll9jcmVhdGVDZWxsUmFuZ2Uodix2LE0pLEc9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0V2l0aGluUmFuZ2UoSSwhMCkscmU9Ry5yZWR1Y2UoKHllLEVlKT0+e2xldHtyb3dzcGFuOkJlfT1FZTtyZXR1cm4gTWF0aC5tYXgoeWUsQmUpfSwxKTtsZXQgdWU9'@; put 'MDtyZXR1cm4gRy5sZW5ndGg+MSYmR1swXS5yb3dzcGFuPHJlJiYodWU9cmUtR1swXS5yb3dzcGFuKSxHLmZvckVhY2goeWU9PntsZXR7cm93c3BhbjpFZX09eWUsQmU9MDtCZT0idG9wIj09PWF8fCJ0b3BfaW5saW5lX3N0YXJ0X2Nvcm5lciI9PT1hP01hdGgubWluKHJlLHRoaXMuaG90LnZp'@; put 'ZXcuY291bnROb3RIaWRkZW5GaXhlZFJvd3NUb3AoKS1sKTpFZS11ZSxjPU1hdGgubWF4KGM/PzAsTm1lKHRoaXMuaG90LGwsQmUpKX0pLGN9Y29uc3QgRkg9Im11bHRpQ29sdW1uU29ydGluZyIsV21lPUZIO29nZShGSCxmdW5jdGlvbiBKcHQoYyxsKXtyZXR1cm4gZnVuY3Rpb24oYSxkKXtj'@; put 'b25zdFssLi4uaF09YSxbLC4uLmZdPWQ7cmV0dXJuIGZ1bmN0aW9uIHYoTSl7Y29uc3QgST1jW01dLEc9bFtNXSxyZT1oW01dLHVlPWZbTV0seWU9Ry5tdWx0aUNvbHVtblNvcnRpbmcsQmU9KHllLmNvbXBhcmVGdW5jdGlvbkZhY3Rvcnk/eWUuY29tcGFyZUZ1bmN0aW9uRmFjdG9yeTpsZ2Uo'@; put 'Ry50eXBlKSkoSSxHLHllKShyZSx1ZSk7aWYoQmU9PT1qcCl7Y29uc3QgR2U9TSsxO2lmKHR5cGVvZiBsW0dlXTwidSIpcmV0dXJuIHYoR2UpfXJldHVybiBCZX0oMCl9fSk7Y2xhc3MgYTR0IGV4dGVuZHMgYmdle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxmdW5jdGlvbiB0'@; put 'NHQoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIG40dChjKXt2YXIgbD1mdW5jdGlvbiByNHQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIp'@; put 'O2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wi'@; put 'PT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfSh0aGlzLCJwbHVnaW5LZXkiLEZIKX1zdGF0aWMgZ2V0IFBMVUdJTl9LRVkoKXtyZXR1'@; put 'cm4gRkh9c3RhdGljIGdldCBQTFVHSU5fUFJJT1JJVFkoKXtyZXR1cm4gMTcwfWlzRW5hYmxlZCgpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVt0aGlzLnBsdWdpbktleV19ZW5hYmxlUGx1Z2luKCl7c3VwZXIuZW5hYmxlUGx1Z2luKCl9ZGlzYWJsZVBsdWdpbigpe3N1cGVyLmRp'@; put 'c2FibGVQbHVnaW4oKX1yZWdpc3RlclNob3J0Y3V0cygpe3N1cGVyLnJlZ2lzdGVyU2hvcnRjdXRzKCksdGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZ3JpZCIpLmFkZFNob3J0Y3V0KHtrZXlzOltbIlNoaWZ0IiwiRW50ZXIiXV0sY2FsbGJhY2s6KCk9Pntjb25z'@; put 'dHtoaWdobGlnaHQ6bH09dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtyZXR1cm4tMT09PWwucm93JiZsLmNvbD49MCYmdGhpcy5zb3J0KHRoaXMuZ2V0TmV4dFNvcnRDb25maWcobC5jb2wsaEYpKSwhMX0scnVuT25seUlmOigpPT57dmFyIGwsYTtjb25zdCBkPW51bGw9PT0obD10'@; put 'aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpKXx8dm9pZCAwPT09bD92b2lkIDA6bC5oaWdobGlnaHQ7cmV0dXJuIGQmJihudWxsPT09KGE9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSl8fHZvaWQgMD09PWE/dm9pZCAwOmEuaXNTaW5nbGUoKSkmJnRoaXMuaG90LnNlbGVj'@; put 'dGlvbi5pc0NlbGxWaXNpYmxlKGQpJiZkLmlzSGVhZGVyKCl9LHJlbGF0aXZlVG9Hcm91cDp6bSxwb3NpdGlvbjoiYmVmb3JlIixncm91cDpXbWV9KX11bnJlZ2lzdGVyU2hvcnRjdXRzKCl7c3VwZXIudW5yZWdpc3RlclNob3J0Y3V0cygpLHRoaXMuaG90LmdldFNob3J0Y3V0TWFuYWdlcigp'@; put 'LmdldENvbnRleHQoImdyaWQiKS5yZW1vdmVTaG9ydGN1dHNCeUdyb3VwKFdtZSl9c29ydChsKXtzdXBlci5zb3J0KGwpfWNsZWFyU29ydCgpe3N1cGVyLmNsZWFyU29ydCgpfWlzU29ydGVkKCl7cmV0dXJuIHN1cGVyLmlzU29ydGVkKCl9Z2V0U29ydENvbmZpZyhsKXtyZXR1cm4gc3VwZXIu'@; put 'Z2V0U29ydENvbmZpZyhsKX1zZXRTb3J0Q29uZmlnKGwpe3N1cGVyLnNldFNvcnRDb25maWcobCl9Z2V0Tm9ybWFsaXplZFNvcnRDb25maWdzKCl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOltdO3JldHVybiBBcnJheS5pc0Fy'@; put 'cmF5KGwpP2w6W2xdfXVwZGF0ZUhlYWRlckNsYXNzZXMobCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGgsZD1uZXcgQXJyYXkoYT4xP2EtMTowKSxoPTE7aDxhO2grKylkW2gtMV09YXJndW1lbnRzW2hdO3N1cGVyLnVwZGF0ZUhlYWRlckNsYXNzZXMobCwuLi5kKSxocyhsLGZ1bmN0aW9u'@; put 'IGU0dChjKXtjb25zdCBsPWMuY2xhc3NOYW1lLnNwbGl0KCIgIiksYT1uZXcgUmVnRXhwKCJec29ydC1bMC05XXsxLDJ9JCIpO3JldHVybiBsLmZpbHRlcihkPT5hLnRlc3QoZCkpfShsKSksITEhPT10aGlzLmVuYWJsZWQmJkVpKGwsZnVuY3Rpb24gUXB0KGMsbCxhKXtjb25zdCBkPVtdO3Jl'@; put 'dHVybiExPT09YXx8Yy5pc0NvbHVtblNvcnRlZChsKSYmYy5nZXROdW1iZXJPZlNvcnRlZENvbHVtbnMoKT4xJiZkLnB1c2goYHNvcnQtJHtjLmdldEluZGV4T2ZDb2x1bW5JblNvcnRRdWV1ZShsKSsxfWApLGR9KC4uLmQpKX1vbkFmdGVyT25DZWxsTW91c2VEb3duKGwsYSl7ITEhPT1NSihh'@; put 'LnJvdyxhLmNvbCxsKSYmdGhpcy53YXNDbGlja2FibGVIZWFkZXJDbGlja2VkKGwsYS5jb2wpJiYodGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuaXNDdHJsUHJlc3NlZCgpPyh0aGlzLmhvdC5kZXNlbGVjdENlbGwoKSx0aGlzLmhvdC5zZWxlY3RDb2x1bW5zKGEuY29sKSx0aGlzLnNv'@; put 'cnQodGhpcy5nZXROZXh0U29ydENvbmZpZyhhLmNvbCxoRikpKTp0aGlzLnNvcnQodGhpcy5nZXRDb2x1bW5OZXh0Q29uZmlnKGEuY29sKSkpfX1mdW5jdGlvbiBZbWUoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIHM0dChjKXt2YXIgbD1mdW5jdGlvbiBvNHQoYyxsKXtpZigib2JqZWN0IiE9'@; put 'dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3Qg'@; put 'cmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxl'@; put 'OiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWNsYXNzIHU0dCBleHRlbmRzIEZve2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxZbWUodGhpcywiZHJhZ2dlZCIsW10pLFltZSh0aGlzLCJsYXN0U2V0Q2VsbCIsbnVsbCl9c3RhdGljIGdldCBQTFVH'@; put 'SU5fS0VZKCl7cmV0dXJuIm11bHRpcGxlU2VsZWN0aW9uSGFuZGxlcyJ9c3RhdGljIGdldCBQTFVHSU5fUFJJT1JJVFkoKXtyZXR1cm4gMTYwfWlzRW5hYmxlZCgpe3JldHVybiBvMygpfWVuYWJsZVBsdWdpbigpe3RoaXMuZW5hYmxlZHx8KHRoaXMucmVnaXN0ZXJMaXN0ZW5lcnMoKSxzdXBl'@; put 'ci5lbmFibGVQbHVnaW4oKSl9cmVnaXN0ZXJMaXN0ZW5lcnMoKXtjb25zdCBsPXRoaXMse3Jvb3RFbGVtZW50OmF9PXRoaXMuaG90O2Z1bmN0aW9uIGQoaCl7aWYoMT09PWwuZHJhZ2dlZC5sZW5ndGgpcmV0dXJuIGwuZHJhZ2dlZC5zcGxpY2UoMCxsLmRyYWdnZWQubGVuZ3RoKSwhMDtjb25z'@; put 'dCBmPWwuZHJhZ2dlZC5pbmRleE9mKGgpO2lmKC0xPT09ZilyZXR1cm4hMTswPT09Zj9sLmRyYWdnZWQ9bC5kcmFnZ2VkLnNsaWNlKDAsMSk6MT09PWYmJihsLmRyYWdnZWQ9bC5kcmFnZ2VkLnNsaWNlKC0xKSl9dGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihhLCJ0b3VjaHN0'@; put 'YXJ0IixoPT57bGV0IGY7cmV0dXJuIGdzKGgudGFyZ2V0LCJ0b3BTZWxlY3Rpb25IYW5kbGUtSGl0QXJlYSIpPyhmPWwuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksbC5kcmFnZ2VkLnB1c2goInRvcCIpLGwudG91Y2hTdGFydFJhbmdlPXt3aWR0aDpmLmdldFdpZHRoKCksaGVpZ2h0OmYu'@; put 'Z2V0SGVpZ2h0KCksZGlyZWN0aW9uOmYuZ2V0RGlyZWN0aW9uKCl9LGgucHJldmVudERlZmF1bHQoKSwhMSk6Z3MoaC50YXJnZXQsImJvdHRvbVNlbGVjdGlvbkhhbmRsZS1IaXRBcmVhIik/KGY9bC5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxsLmRyYWdnZWQucHVzaCgiYm90dG9tIiks'@; put 'bC50b3VjaFN0YXJ0UmFuZ2U9e3dpZHRoOmYuZ2V0V2lkdGgoKSxoZWlnaHQ6Zi5nZXRIZWlnaHQoKSxkaXJlY3Rpb246Zi5nZXREaXJlY3Rpb24oKX0saC5wcmV2ZW50RGVmYXVsdCgpLCExKTp2b2lkIDB9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGEsInRvdWNoZW5k'@; put 'IixoPT5ncyhoLnRhcmdldCwidG9wU2VsZWN0aW9uSGFuZGxlLUhpdEFyZWEiKT8oZC5jYWxsKGwsInRvcCIpLGwudG91Y2hTdGFydFJhbmdlPXZvaWQgMCxoLnByZXZlbnREZWZhdWx0KCksITEpOmdzKGgudGFyZ2V0LCJib3R0b21TZWxlY3Rpb25IYW5kbGUtSGl0QXJlYSIpPyhkLmNhbGwo'@; put 'bCwiYm90dG9tIiksbC50b3VjaFN0YXJ0UmFuZ2U9dm9pZCAwLGgucHJldmVudERlZmF1bHQoKSwhMSk6dm9pZCAwKSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGEsInRvdWNobW92ZSIsaD0+e2NvbnN0e3Jvb3REb2N1bWVudDpmfT10aGlzLmhvdDtsZXQgdixNLEksRyxy'@; put 'ZSx1ZTtpZigwPT09bC5kcmFnZ2VkLmxlbmd0aClyZXR1cm47Y29uc3QgeWU9Zi5lbGVtZW50RnJvbVBvaW50KGgudG91Y2hlc1swXS5jbGllbnRYLGgudG91Y2hlc1swXS5jbGllbnRZKTsheWV8fHllPT09bC5sYXN0U2V0Q2VsbHx8KCgiVEQiPT09eWUubm9kZU5hbWV8fCJUSCI9PT15ZS5u'@; put 'b2RlTmFtZSkmJih2PWwuaG90LmdldENvb3Jkcyh5ZSksLTE9PT12LmNvbCYmKHYuY29sPTApLE09bC5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxJPU0uZ2V0V2lkdGgoKSxHPU0uZ2V0SGVpZ2h0KCkscmU9TS5nZXREaXJlY3Rpb24oKSwxPT09SSYmMT09PUcmJmwuaG90LnNlbGVjdGlv'@; put 'bi5zZXRSYW5nZUVuZCh2KSx1ZT1sLmdldEN1cnJlbnRSYW5nZUNvb3JkcyhNLHYsbC50b3VjaFN0YXJ0UmFuZ2UuZGlyZWN0aW9uLHJlLGwuZHJhZ2dlZFswXSksbnVsbCE9PXVlLnN0YXJ0JiZsLmhvdC5zZWxlY3Rpb24uc2V0UmFuZ2VTdGFydCh1ZS5zdGFydCksbC5ob3Quc2VsZWN0aW9u'@; put 'LnNldFJhbmdlRW5kKHVlLmVuZCksbC5sYXN0U2V0Q2VsbD15ZSksaC5wcmV2ZW50RGVmYXVsdCgpKX0pfWdldEN1cnJlbnRSYW5nZUNvb3JkcyhsLGEsZCxoLGYpe2NvbnN0IHY9bC5nZXRUb3BTdGFydENvcm5lcigpLE09bC5nZXRCb3R0b21FbmRDb3JuZXIoKSxJPWwuZ2V0Qm90dG9tU3Rh'@; put 'cnRDb3JuZXIoKSxHPWwuZ2V0VG9wRW5kQ29ybmVyKCk7bGV0IHJlPXtzdGFydDpudWxsLGVuZDpudWxsfTtzd2l0Y2goZCl7Y2FzZSJORS1TVyI6c3dpdGNoKGgpe2Nhc2UiTkUtU1ciOmNhc2UiTlctU0UiOnJlPSJ0b3AiPT09Zj97c3RhcnQ6dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMo'@; put 'YS5yb3csbC5oaWdobGlnaHQuY29sKSxlbmQ6dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoSS5yb3csYS5jb2wpfTp7c3RhcnQ6dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMobC5oaWdobGlnaHQucm93LGEuY29sKSxlbmQ6dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoYS5yb3csdi5j'@; put 'b2wpfTticmVhaztjYXNlIlNFLU5XIjoiYm90dG9tIj09PWYmJihyZT17c3RhcnQ6dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoTS5yb3csYS5jb2wpLGVuZDp0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhhLnJvdyx2LmNvbCl9KX1icmVhaztjYXNlIk5XLVNFIjpzd2l0Y2goaCl7Y2Fz'@; put 'ZSJORS1TVyI6InRvcCI9PT1mP3JlPXtzdGFydDphLGVuZDpJfTpyZS5lbmQ9YTticmVhaztjYXNlIk5XLVNFIjoidG9wIj09PWY/cmU9e3N0YXJ0OmEsZW5kOk19OnJlLmVuZD1hO2JyZWFrO2Nhc2UiU0UtTlciOiJ0b3AiPT09Zj9yZT17c3RhcnQ6YSxlbmQ6dn06cmUuZW5kPWE7YnJlYWs7'@; put 'Y2FzZSJTVy1ORSI6InRvcCI9PT1mP3JlPXtzdGFydDphLGVuZDpHfTpyZS5lbmQ9YX1icmVhaztjYXNlIlNXLU5FIjpzd2l0Y2goaCl7Y2FzZSJOVy1TRSI6cmU9ImJvdHRvbSI9PT1mP3tzdGFydDp0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhhLnJvdyx2LmNvbCksZW5kOnRoaXMuaG90'@; put 'Ll9jcmVhdGVDZWxsQ29vcmRzKEkucm93LGEuY29sKX06e3N0YXJ0OnRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKHYucm93LGEuY29sKSxlbmQ6dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoYS5yb3csTS5jb2wpfTticmVhaztjYXNlIlNXLU5FIjpyZT0idG9wIj09PWY/e3N0YXJ0OnRo'@; put 'aXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKGwuaGlnaGxpZ2h0LnJvdyxhLmNvbCksZW5kOnRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKGEucm93LE0uY29sKX06e3N0YXJ0OnRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKGEucm93LHYuY29sKSxlbmQ6dGhpcy5ob3QuX2NyZWF0ZUNlbGxD'@; put 'b29yZHModi5yb3csYS5jb2wpfTticmVhaztjYXNlIlNFLU5XIjoiYm90dG9tIj09PWY/cmU9e3N0YXJ0OnRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKGEucm93LEcuY29sKSxlbmQ6dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHModi5yb3csYS5jb2wpfToidG9wIj09PWYmJihyZT17c3Rh'@; put 'cnQ6SSxlbmQ6YX0pfWJyZWFrO2Nhc2UiU0UtTlciOnN3aXRjaChoKXtjYXNlIk5XLVNFIjpjYXNlIk5FLVNXIjpjYXNlIlNXLU5FIjoidG9wIj09PWYmJihyZS5lbmQ9YSk7YnJlYWs7Y2FzZSJTRS1OVyI6InRvcCI9PT1mP3JlLmVuZD1hOnJlPXtzdGFydDphLGVuZDp2fX19cmV0dXJuIHJl'@; put 'fWlzRHJhZ2dlZCgpe3JldHVybiB0aGlzLmRyYWdnZWQubGVuZ3RoPjB9fWZ1bmN0aW9uIHNlZSgpe2xldHtsYWJlbDpjPSIiLGNvbHNwYW46bD0xLG9yaWdDb2xzcGFuOmE9MSxjb2xsYXBzaWJsZTpkPSExLGNyb3NzSGlkZGVuQ29sdW1uczpoPVtdLGlzQ29sbGFwc2VkOmY9ITEsaXNIaWRk'@; put 'ZW46dj0hMSxpc1Jvb3Q6TT0hMSxpc1BsYWNlaG9sZGVyOkk9ITEsaGVhZGVyQ2xhc3NOYW1lczpHPVtdfT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e307cmV0dXJue2xhYmVsOmMsY29sc3BhbjpsLG9yaWdDb2xzcGFuOmEsY29sbGFw'@; put 'c2libGU6ZCxpc0NvbGxhcHNlZDpmLGNyb3NzSGlkZGVuQ29sdW1uczpoLGlzSGlkZGVuOnYsaXNSb290Ok0saXNQbGFjZWhvbGRlcjpJLGhlYWRlckNsYXNzTmFtZXM6R319ZnVuY3Rpb24gb2VlKGMsbCxhKXsoZnVuY3Rpb24gaDR0KGMsbCl7aWYobC5oYXMoYykpdGhyb3cgbmV3IFR5cGVF'@; put 'cnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGMsbCksbC5zZXQoYyxhKX1mdW5jdGlvbiBNMyhjLGwpe3JldHVybiBjLmdldCgkbWUoYyxsKSl9ZnVuY3Rpb24gdkEoYyxsLGEpe3JldHVybiBjLnNldCgkbWUo'@; put 'YyxsKSxhKSxhfWZ1bmN0aW9uICRtZShjLGwsYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGM/Yz09PWw6Yy5oYXMobCkpcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mz9sOmE7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBlbGVtZW50IGlzIG5vdCBwcmVzZW50IG9uIHRoaXMgb2JqZWN0'@; put 'Iil9Y29uc3QgS21lPVsibGFiZWwiLCJjb2xsYXBzaWJsZSJdO3ZhciBVZz1uZXcgV2Vha01hcCxqOT1uZXcgV2Vha01hcCxsZWU9bmV3IFdlYWtNYXA7Y2xhc3MgZjR0e2NvbnN0cnVjdG9yKCl7b2VlKHRoaXMsVWcsW10pLG9lZSh0aGlzLGo5LDApLG9lZSh0aGlzLGxlZSwxLzApfXNldENv'@; put 'bHVtbnNMaW1pdChsKXt2QShsZWUsdGhpcyxsKX1zZXREYXRhKCl7dkEoVWcsdGhpcyxmdW5jdGlvbiBkNHQoYyl7bGV0IGw9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjEvMDtjb25zdCBhPVtdO2lmKDA9PT1sKXJldHVybiBhO0tuKGMs'@; put 'aD0+e2NvbnN0IGY9W107bGV0IHY9MDthLnB1c2goZiksS24oaCxNPT57Y29uc3QgST1zZWUoKTtpZihYcyhNKSl7Y29uc3R7bGFiZWw6cmUsY29sc3Bhbjp1ZSxoZWFkZXJDbGFzc05hbWU6eWV9PU07SS5sYWJlbD1vYyhyZSksIm51bWJlciI9PXR5cGVvZiB1ZSYmdWU+MSYmKEkuY29sc3Bh'@; put 'bj11ZSxJLm9yaWdDb2xzcGFuPXVlKSwic3RyaW5nIj09dHlwZW9mIHllJiYoSS5oZWFkZXJDbGFzc05hbWVzPVsuLi55ZS5zcGxpdCgiICIpXSl9ZWxzZSBJLmxhYmVsPW9jKE0pO3YrPUkub3JpZ0NvbHNwYW47bGV0IEc9ITE7aWYodj49bCYmKEkuY29sc3Bhbj1JLm9yaWdDb2xzcGFuLSh2'@; put 'LWwpLEkub3JpZ0NvbHNwYW49SS5jb2xzcGFuLEc9ITApLGYucHVzaChJKSxJLmNvbHNwYW4+MSlmb3IobGV0IHJlPTA7cmU8SS5jb2xzcGFuLTE7cmUrKylmLnB1c2goe2xhYmVsOiIiLGlzUGxhY2Vob2xkZXI6ITB9KTtyZXR1cm4hR30pfSk7Y29uc3QgZD1NYXRoLm1heCguLi55byhhLGg9'@; put 'PmgubGVuZ3RoKSk7cmV0dXJuIEtuKGEsaD0+e2lmKGgubGVuZ3RoPGQpe2NvbnN0IGY9eW8obmV3IEFycmF5KGQtaC5sZW5ndGgpLCgpPT5zZWUoKSk7aC5zcGxpY2UoaC5sZW5ndGgsMCwuLi5mKX19KSxhfShhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1'@; put 'bWVudHNbMF06W10sTTMobGVlLHRoaXMpKSksdkEoajksdGhpcyxNMyhVZyx0aGlzKS5sZW5ndGgpfWdldERhdGEoKXtyZXR1cm4gTTMoVWcsdGhpcyl9bWVyZ2VXaXRoKGwpe0tuKGwsYT0+e2xldHtyb3c6ZCxjb2w6aCwuLi5mfT1hO2NvbnN0IHY9dGhpcy5nZXRIZWFkZXJTZXR0aW5ncyhk'@; put 'LGgpO251bGwhPT12JiZ3dSh2LGYsS21lKX0pfW1hcChsKXtLbihNMyhVZyx0aGlzKSxhPT57S24oYSxkPT57Y29uc3QgaD1sKHsuLi5kfSk7WHMoaCkmJnd1KGQsaCxLbWUpfSl9KX1nZXRIZWFkZXJTZXR0aW5ncyhsLGEpe3ZhciBkO2lmKGw+PU0zKGo5LHRoaXMpfHxsPDApcmV0dXJuIG51'@; put 'bGw7Y29uc3QgaD1NMyhVZyx0aGlzKVtsXTtyZXR1cm4hMT09PUFycmF5LmlzQXJyYXkoaCl8fGE+PWgubGVuZ3RoP251bGw6bnVsbCE9PShkPWhbYV0pJiZ2b2lkIDAhPT1kP2Q6bnVsbH1nZXRIZWFkZXJzU2V0dGluZ3MobCxhKXtsZXQgZD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9'@; put 'PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MTtjb25zdCBoPVtdO2lmKGw+PU0zKGo5LHRoaXMpfHxsPDApcmV0dXJuIGg7Y29uc3QgZj1NMyhVZyx0aGlzKVtsXTtsZXQgdj0wO2ZvcihsZXQgTT1hO008Zi5sZW5ndGg7TSsrKXtjb25zdCBJPWZbTV07aWYoSS5pc1BsYWNlaG9sZGVyKXRo'@; put 'cm93IG5ldyBFcnJvcigiVGhlIGZpcnN0IGNvbHVtbiBzZXR0aW5ncyBjYW5ub3Qgb3ZlcmxhcCB0aGUgb3RoZXIgaGVhZGVyIGxheWVycyIpO2lmKHYrPUkuY29sc3BhbixoLnB1c2goSSksSS5jb2xzcGFuPjEmJihNKz1JLmNvbHNwYW4tMSksdj09PWQpYnJlYWs7aWYodj5kKXRocm93IG5l'@; put 'dyBFcnJvcigiVGhlIGxhc3QgY29sdW1uIHNldHRpbmdzIGNhbm5vdCBvdmVybGFwIHRoZSBvdGhlciBoZWFkZXIgbGF5ZXJzIil9cmV0dXJuIGh9Z2V0TGF5ZXJzQ291bnQoKXtyZXR1cm4gTTMoajksdGhpcyl9Z2V0Q29sdW1uc0NvdW50KCl7cmV0dXJuIE0zKGo5LHRoaXMpPjA/TTMoVWcs'@; put 'dGhpcylbMF0ubGVuZ3RoOjB9Y2xlYXIoKXt2QShVZyx0aGlzLFtdKSx2QShqOSx0aGlzLDApfX1mdW5jdGlvbiBjZWUoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIHA0dChjKXt2YXIgbD1mdW5jdGlvbiBnNHQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBh'@; put 'PWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIp'@; put 'fXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJs'@; put 'ZTohMH0pOmNbbF09YSxjfWNvbnN0IFhtZT0iREYtcHJlLW9yZGVyIixlNmU9bmV3IE1hcChbW1htZSxmdW5jdGlvbiBxbWUoYyxsKXtsZXQgYT1jLmNhbGwobCx0aGlzKTtmb3IobGV0IGQ9MDtkPHRoaXMuY2hpbGRzLmxlbmd0aDtkKyspe2lmKCExPT09YSlyZXR1cm4hMTthPXFtZS5jYWxs'@; put 'KHRoaXMuY2hpbGRzW2RdLGMsbCl9cmV0dXJuIGF9XSxbIkRGLXBvc3Qtb3JkZXIiLGZ1bmN0aW9uIEptZShjLGwpe2ZvcihsZXQgYT0wO2E8dGhpcy5jaGlsZHMubGVuZ3RoO2ErKylpZighMT09PUptZS5jYWxsKHRoaXMuY2hpbGRzW2FdLGMsbCkpcmV0dXJuITE7cmV0dXJuIGMuY2FsbChs'@; put 'LHRoaXMpfV0sWyJCRiIsZnVuY3Rpb24gdjR0KGMsbCl7Y29uc3QgYT1bdGhpc107IWZ1bmN0aW9uIGQoKXtpZigwPT09YS5sZW5ndGgpcmV0dXJuO2NvbnN0IGg9YS5zaGlmdCgpO2EucHVzaCguLi5oLmNoaWxkcyksITEhPT1jLmNhbGwobCxoKSYmZCgpfSgpfV1dKTtjbGFzcyBISHtjb25z'@; put 'dHJ1Y3RvcihsKXtjZWUodGhpcywiZGF0YSIse30pLGNlZSh0aGlzLCJwYXJlbnQiLG51bGwpLGNlZSh0aGlzLCJjaGlsZHMiLFtdKSx0aGlzLmRhdGE9bH1hZGRDaGlsZChsKXtsLnBhcmVudD10aGlzLHRoaXMuY2hpbGRzLnB1c2gobCl9Y2xvbmVUcmVlKCl7bGV0IGw9YXJndW1lbnRzLmxl'@; put 'bmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXM7Y29uc3QgYT1uZXcgSEgoey4uLmwuZGF0YX0pO2ZvcihsZXQgZD0wO2Q8bC5jaGlsZHMubGVuZ3RoO2QrKylhLmFkZENoaWxkKHRoaXMuY2xvbmVUcmVlKGwuY2hpbGRzW2RdKSk7cmV0dXJuIGF9cmVwbGFj'@; put 'ZVRyZWVXaXRoKGwpe3RoaXMuZGF0YT17Li4ubC5kYXRhfSx0aGlzLmNoaWxkcz1bXTtmb3IobGV0IGE9MDthPGwuY2hpbGRzLmxlbmd0aDthKyspdGhpcy5hZGRDaGlsZChsLmNoaWxkc1thXSl9d2Fsa0Rvd24obCl7bGV0IGE9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVu'@; put 'dHNbMV0/YXJndW1lbnRzWzFdOiJCRiI7aWYoIWU2ZS5oYXMoYSkpdGhyb3cgbmV3IEVycm9yKGBUcmF2ZXJzYWwgc3RyYXRlZ3kgIiR7YX0iIGRvZXMgbm90IGV4aXN0YCk7ZTZlLmdldChhKS5jYWxsKHRoaXMsbCx0aGlzKX13YWxrVXAobCl7Y29uc3QgYT10aGlzLGQ9aD0+eyExIT09bC5j'@; put 'YWxsKGEsaCkmJm51bGwhPT1oLnBhcmVudCYmZChoLnBhcmVudCl9O2QodGhpcyl9fWZ1bmN0aW9uIHVlZShjLGwsYSl7KGZ1bmN0aW9uIGI0dChjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMg'@; put 'dHdpY2Ugb24gYW4gb2JqZWN0Iil9KShjLGwpLGwuc2V0KGMsYSl9ZnVuY3Rpb24gYWQoYyxsKXtyZXR1cm4gYy5nZXQodDZlKGMsbCkpfWZ1bmN0aW9uIHQ2ZShjLGwsYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGM/Yz09PWw6Yy5oYXMobCkpcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mz9s'@; put 'OmE7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBlbGVtZW50IGlzIG5vdCBwcmVzZW50IG9uIHRoaXMgb2JqZWN0Iil9dmFyIHZ3PW5ldyBXZWFrTWFwLHo5PW5ldyBXZWFrTWFwLHl3PW5ldyBXZWFrTWFwO2NsYXNzIHc0dHtjb25zdHJ1Y3RvcihsKXt1ZWUodGhpcyx2dyxuZXcgTWFw'@; put 'KSx1ZWUodGhpcyx6OSxuZXcgTWFwKSx1ZWUodGhpcyx5dyxudWxsKSxmdW5jdGlvbiBfNHQoYyxsLGEpe2Muc2V0KHQ2ZShjLGwpLGEpfSh5dyx0aGlzLGwpfWdldFJvb3RzKCl7cmV0dXJuIEFycmF5LmZyb20oYWQodncsdGhpcykudmFsdWVzKCkpfWdldFJvb3RCeUNvbHVtbihsKXtsZXQg'@; put 'YTtyZXR1cm4gYWQoejksdGhpcykuaGFzKGwpJiYoYT1hZCh2dyx0aGlzKS5nZXQoYWQoejksdGhpcykuZ2V0KGwpKSksYX1nZXROb2RlKGwsYSl7Y29uc3QgZD10aGlzLmdldFJvb3RCeUNvbHVtbihhKTtpZighZClyZXR1cm47Y29uc3QgaD1hLWFkKHo5LHRoaXMpLmdldChhKTtsZXQgdixm'@; put 'PTA7cmV0dXJuIGQud2Fsa0Rvd24oTT0+e2NvbnN0e2RhdGE6e29yaWdDb2xzcGFuOkksaGVhZGVyTGV2ZWw6R319PU07aWYobD09PUcpe2lmKGg+PWYmJmg8PWYrSS0xKXJldHVybiB2PU0sdi5kYXRhLmlzUm9vdD1hPT09di5kYXRhLmNvbHVtbkluZGV4LCExO2YrPUl9fSksdn1yZWJ1aWxk'@; put 'VHJlZUluZGV4KCl7bGV0IGw9MDthZCh6OSx0aGlzKS5jbGVhcigpLEtuKGFkKHZ3LHRoaXMpLGE9PntsZXRbLHtkYXRhOntjb2xzcGFuOmR9fV09YTtmb3IobGV0IGg9bDtoPGwrZDtoKyspYWQoejksdGhpcykuc2V0KGgsbCk7bCs9ZH0pfWJ1aWxkVHJlZSgpe3RoaXMuY2xlYXIoKTtjb25z'@; put 'dCBsPWFkKHl3LHRoaXMpLmdldENvbHVtbnNDb3VudCgpO2xldCBhPTA7Zm9yKDthPGw7KXtjb25zdCBkPWFkKHl3LHRoaXMpLmdldEhlYWRlclNldHRpbmdzKDAsYSksaD1uZXcgSEg7YWQodncsdGhpcykuc2V0KGEsaCksdGhpcy5idWlsZExlYXZlcyhoLGEsMCxkLm9yaWdDb2xzcGFuKSxh'@; put 'Kz1kLm9yaWdDb2xzcGFufXRoaXMucmVidWlsZFRyZWVJbmRleCgpfWJ1aWxkTGVhdmVzKGwsYSxkKXtsZXQgaD1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106MTtjb25zdCBmPWFkKHl3LHRoaXMpLmdldEhlYWRlcnNTZXR0aW5ncyhkLGEs'@; put 'aCk7ZCs9MSxLbihmLHY9Pntjb25zdCBNPXsuLi52LGhlYWRlckxldmVsOmQtMSxjb2x1bW5JbmRleDphfTtsZXQgSTsxPT09ZD8obC5kYXRhPU0sST1sKTooST1uZXcgSEgoTSksbC5hZGRDaGlsZChJKSksZDxhZCh5dyx0aGlzKS5nZXRMYXllcnNDb3VudCgpJiZ0aGlzLmJ1aWxkTGVhdmVz'@; put 'KEksYSxkLHYub3JpZ0NvbHNwYW4pLGErPXYub3JpZ0NvbHNwYW59KX1jbGVhcigpe2FkKHZ3LHRoaXMpLmNsZWFyKCksYWQoejksdGhpcykuY2xlYXIoKX19ZnVuY3Rpb24gbjZlKGMsbCl7Yy53YWxrRG93bihhPT57bGV0e2RhdGE6ZCxjaGlsZHM6aH09YTtpZighZC5pc0hpZGRlbiYmKGwo'@; put 'ZC5jb2x1bW5JbmRleCksMD09PWgubGVuZ3RoKSlmb3IobGV0IGY9MTtmPGQuY29sc3BhbjtmKyspbChkLmNvbHVtbkluZGV4K2YpfSl9ZnVuY3Rpb24gTkgoYyxsKXtsZXR7Y2hpbGRzOmF9PWM7aWYoMCE9PWEubGVuZ3RoKXJldHVybiBhWzBdLmRhdGFbbF19ZnVuY3Rpb24gVkgoYyl7cmV0'@; put 'dXJuIE5IKGMsIm9yaWdDb2xzcGFuIik9PT1jLmRhdGEub3JpZ0NvbHNwYW59ZnVuY3Rpb24gZGVlKGMpe2NvbnN0e2RhdGE6bCxjaGlsZHM6YX09YztpZighbC5pc0NvbGxhcHNlZHx8bC5pc0hpZGRlbnx8bC5vcmlnQ29sc3Bhbjw9MSlyZXR1cm57cm9sbGJhY2tNb2RpZmljYXRpb246KCk9'@; put 'Pnt9LGFmZmVjdGVkQ29sdW1uczpbXSxjb2xzcGFuQ29tcGVuc2F0aW9uOjB9O2lmKFZIKGMpKXJldHVybiBkZWUoYVswXSk7bC5pc0NvbGxhcHNlZD0hMTtjb25zdCBoPWEuc2xpY2UoMSksZj1uZXcgU2V0O2xldCB2PTA7aWYoaC5sZW5ndGg+MClLbihoLE09PntNLnJlcGxhY2VUcmVlV2l0'@; put 'aChNLmRhdGEuY2xvbmVkVHJlZSksTS5kYXRhLmNsb25lZFRyZWU9bnVsbCx2Kz1NLmRhdGEuY29sc3BhbixuNmUoTSxHPT57Zi5hZGQoRyl9KX0pO2Vsc2V7Y29uc3R7Y29sc3BhbjpNLG9yaWdDb2xzcGFuOkksY29sdW1uSW5kZXg6R309bDt2PUktTTtmb3IobGV0IHJlPTE7cmU8STtyZSsr'@; put 'KWYuYWRkKEcrcmUpfXJldHVybiBjLndhbGtVcChNPT57Y29uc3R7ZGF0YTpJfT1NO0kuY29sc3Bhbis9dixJLmNvbHNwYW4+PUkub3JpZ0NvbHNwYW4/KEkuY29sc3Bhbj1JLm9yaWdDb2xzcGFuLEkuaXNDb2xsYXBzZWQ9ITEpOlZIKE0pJiYoSS5pc0NvbGxhcHNlZD1OSChNLCJpc0NvbGxh'@; put 'cHNlZCIpKX0pLHtyb2xsYmFja01vZGlmaWNhdGlvbjooKT0+aGVlKGMpLGFmZmVjdGVkQ29sdW1uczpBcnJheS5mcm9tKGYpLGNvbHNwYW5Db21wZW5zYXRpb246dn19ZnVuY3Rpb24gaGVlKGMpe3ZhciBsO2NvbnN0e2RhdGE6YSxjaGlsZHM6ZH09YztpZihhLmlzQ29sbGFwc2VkfHxhLmlz'@; put 'SGlkZGVufHxhLm9yaWdDb2xzcGFuPD0xKXJldHVybntyb2xsYmFja01vZGlmaWNhdGlvbjooKT0+e30sYWZmZWN0ZWRDb2x1bW5zOltdLGNvbHNwYW5Db21wZW5zYXRpb246MH07aWYoVkgoYykpcmV0dXJuIGhlZShkWzBdKTthLmlzQ29sbGFwc2VkPSEwO2NvbnN0IGY9ZC5zbGljZSgxKSx2'@; put 'PW5ldyBTZXQ7aWYoZi5sZW5ndGg+MClLbihmLEk9PntuNmUoSSxHPT57di5hZGQoRyl9KSxJLmRhdGEuY2xvbmVkVHJlZT1JLmNsb25lVHJlZSgpLEkud2Fsa0Rvd24oRz0+e2xldHtkYXRhOnJlfT1HO3JlLmlzSGlkZGVuPSEwfSl9KTtlbHNle2NvbnN0e29yaWdDb2xzcGFuOkksY29sdW1u'@; put 'SW5kZXg6R309YTtmb3IobGV0IHJlPTE7cmU8STtyZSsrKXYuYWRkKEcrcmUpfWNvbnN0IE09YS5jb2xzcGFuLShudWxsIT09KGw9TkgoYywiY29sc3BhbiIpKSYmdm9pZCAwIT09bD9sOjEpO3JldHVybiBjLndhbGtVcChJPT57Y29uc3R7ZGF0YTpHfT1JO0cuY29sc3Bhbi09TSxHLmNvbHNw'@; put 'YW48PTE/KEcuY29sc3Bhbj0xLEcuaXNDb2xsYXBzZWQ9ITApOlZIKEkpJiYoRy5pc0NvbGxhcHNlZD1OSChJLCJpc0NvbGxhcHNlZCIpKX0pLHtyb2xsYmFja01vZGlmaWNhdGlvbjooKT0+ZGVlKGMpLGFmZmVjdGVkQ29sdW1uczpBcnJheS5mcm9tKHYpLGNvbHNwYW5Db21wZW5zYXRpb246'@; put 'TX19Y29uc3QgcjZlPW5ldyBNYXAoW1siY29sbGFwc2UiLGhlZV0sWyJleHBhbmQiLGRlZV0sWyJoaWRlLWNvbHVtbiIsZnVuY3Rpb24gQzR0KGMsbCl7aWYoIU51bWJlci5pc0ludGVnZXIobCkpdGhyb3cgbmV3IEVycm9yKCJUaGUgcGFzc2VkIGdyaWRDb2x1bW5JbmRleCBhcmd1bWVudCBo'@; put 'YXMgaW52YWxpZCB0eXBlLiIpO2lmKGMuY2hpbGRzLmxlbmd0aD4wKXRocm93IG5ldyBFcnJvcihobGBUaGUgcGFzc2VkIG5vZGUgaXMgbm90IHRoZSBsYXN0IG5vZGUgb24gdGhlIHRyZWUuIE9ubHkgZm9yXHgyMAp0aGUgbGFzdCBub2RlLCB0aGUgaGlkZSBjb2x1bW4gbW9kaWZpY2F0aW9u'@; put 'IGNhbiBiZSBhcHBsaWVkLmApO2NvbnN0e2Nyb3NzSGlkZGVuQ29sdW1uczphfT1jLmRhdGE7aWYoYS5pbmNsdWRlcyhsKSlyZXR1cm47bGV0IGQ9ITE7Yy53YWxrVXAoaD0+e2NvbnN0e2RhdGE6e2NvbGxhcHNpYmxlOmZ9fT1oO2lmKGYpcmV0dXJuIGQ9ITAsITF9KSwhZCYmYy53YWxrVXAo'@; put 'aD0+e2NvbnN0e2RhdGE6Zn09aDtmLmNyb3NzSGlkZGVuQ29sdW1ucy5wdXNoKGwpLGYuY29sc3Bhbj4xP2YuY29sc3Bhbi09MTpmLmlzSGlkZGVuPSEwfSl9XSxbInNob3ctY29sdW1uIixmdW5jdGlvbiBTNHQoYyxsKXtpZighTnVtYmVyLmlzSW50ZWdlcihsKSl0aHJvdyBuZXcgRXJyb3Io'@; put 'IlRoZSBwYXNzZWQgZ3JpZENvbHVtbkluZGV4IGFyZ3VtZW50IGhhcyBpbnZhbGlkIHR5cGUuIik7aWYoYy5jaGlsZHMubGVuZ3RoPjApdGhyb3cgbmV3IEVycm9yKGhsYFRoZSBwYXNzZWQgbm9kZSBpcyBub3QgdGhlIGxhc3Qgbm9kZSBvbiB0aGUgdHJlZS4gT25seSBmb3JceDIwCnRoZSBs'@; put 'YXN0IG5vZGUsIHRoZSBzaG93IGNvbHVtbiBtb2RpZmljYXRpb24gY2FuIGJlIGFwcGxpZWQuYCk7Y29uc3R7Y3Jvc3NIaWRkZW5Db2x1bW5zOmF9PWMuZGF0YTtpZighYS5pbmNsdWRlcyhsKSlyZXR1cm47bGV0IGQ9ITE7Yy53YWxrVXAoaD0+e2NvbnN0e2RhdGE6e2NvbGxhcHNpYmxlOmZ9'@; put 'fT1oO2lmKGYpcmV0dXJuIGQ9ITAsITF9KSwhZCYmYy53YWxrVXAoaD0+e2NvbnN0e2RhdGE6Zn09aDtmLmNyb3NzSGlkZGVuQ29sdW1ucy5zcGxpY2UoZi5jcm9zc0hpZGRlbkNvbHVtbnMuaW5kZXhPZihsKSwxKSwhZi5pc0hpZGRlbiYmZi5jb2xzcGFuPGYub3JpZ0NvbHNwYW4mJihmLmNv'@; put 'bHNwYW4rPTEpLGYuaXNIaWRkZW49ITF9KX1dXSk7ZnVuY3Rpb24gQkgoYyl7Y29uc3QgbD1bXTtyZXR1cm4gS24oYyxhPT57YS53YWxrRG93bihkPT57Y29uc3QgaD1kLmRhdGEse29yaWdDb2xzcGFuOmYsY29sdW1uSW5kZXg6dixoZWFkZXJMZXZlbDpNLGNyb3NzSGlkZGVuQ29sdW1uczpJ'@; put 'fT1oLEc9ZnVuY3Rpb24gRTR0KGMsbCl7bGV0IGE7cmV0dXJuIEFycmF5LmlzQXJyYXkoY1tsXSk/YT1jW2xdOihhPVtdLGNbbF09YSksYX0obCxNKTtsZXQgcmU9ITE7Zm9yKGxldCB1ZT12O3VlPHYrZjt1ZSsrKWlmKEkuaW5jbHVkZXModWUpfHxyZSlHLnB1c2goe2xhYmVsOiIiLGlzUGxh'@; put 'Y2Vob2xkZXI6ITB9KTtlbHNle2NvbnN0IEVlPXg0dChoKTtFZS5pc1Jvb3Q9ITAsRy5wdXNoKEVlKSxyZT0hMH19KX0pLGx9ZnVuY3Rpb24geDR0KGMpe2NvbnN0e2Nyb3NzSGlkZGVuQ29sdW1uczpsLC4uLmF9PXNlZShjKTtyZXR1cm4gYX1mdW5jdGlvbiBmZWUoYyxsLGEpeyhmdW5jdGlv'@; put 'biBUNHQoYyxsKXtpZihsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfSkoYyxsKSxsLnNldChjLGEpfWZ1bmN0aW9uIHlBKGMsbCxhKXtyZXR1cm4gYy5zZXQoaTZlKGMs'@; put 'bCksYSksYX1mdW5jdGlvbiAkYyhjLGwpe3JldHVybiBjLmdldChpNmUoYyxsKSl9ZnVuY3Rpb24gaTZlKGMsbCxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhsKSlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzP2w6YTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRl'@; put 'IGVsZW1lbnQgaXMgbm90IHByZXNlbnQgb24gdGhpcyBvYmplY3QiKX12YXIgcjQ9bmV3IFdlYWtNYXAscWQ9bmV3IFdlYWtNYXAsVTk9bmV3IFdlYWtNYXA7Y2xhc3MgQTR0e2NvbnN0cnVjdG9yKCl7ZmVlKHRoaXMscjQsbmV3IGY0dCksZmVlKHRoaXMscWQsbmV3IHc0dCgkYyhyNCx0aGlz'@; put 'KSkpLGZlZSh0aGlzLFU5LFtbXV0pfXNldFN0YXRlKGwpeyRjKHI0LHRoaXMpLnNldERhdGEobCk7bGV0IGE9ITE7dHJ5eyRjKHFkLHRoaXMpLmJ1aWxkVHJlZSgpfWNhdGNoeyRjKHFkLHRoaXMpLmNsZWFyKCksJGMocjQsdGhpcykuY2xlYXIoKSxhPSEwfXJldHVybiB5QShVOSx0aGlzLEJI'@; put 'KCRjKHFkLHRoaXMpLmdldFJvb3RzKCkpKSxhfXNldENvbHVtbnNMaW1pdChsKXskYyhyNCx0aGlzKS5zZXRDb2x1bW5zTGltaXQobCl9bWVyZ2VTdGF0ZVdpdGgobCl7Y29uc3QgYT15byhsLGQ9PntsZXR7cm93OmgsLi4uZn09ZDtyZXR1cm57cm93Omg8MD90aGlzLnJvd0Nvb3Jkc1RvTGV2'@; put 'ZWwoaCk6aCwuLi5mfX0pOyRjKHI0LHRoaXMpLm1lcmdlV2l0aChhKSwkYyhxZCx0aGlzKS5idWlsZFRyZWUoKSx5QShVOSx0aGlzLEJIKCRjKHFkLHRoaXMpLmdldFJvb3RzKCkpKX1tYXBTdGF0ZShsKXskYyhyNCx0aGlzKS5tYXAobCksJGMocWQsdGhpcykuYnVpbGRUcmVlKCkseUEoVTks'@; put 'dGhpcyxCSCgkYyhxZCx0aGlzKS5nZXRSb290cygpKSl9bWFwTm9kZXMobCl7cmV0dXJuIEd1KCRjKHFkLHRoaXMpLmdldFJvb3RzKCksKGEsZCk9PihkLndhbGtEb3duKGg9Pntjb25zdCBmPWwoaC5kYXRhKTt2b2lkIDAhPT1mJiZhLnB1c2goZil9KSxhKSxbXSl9dHJpZ2dlck5vZGVNb2Rp'@; put 'ZmljYXRpb24obCxhLGQpe2E8MCYmKGE9dGhpcy5yb3dDb29yZHNUb0xldmVsKGEpKTtjb25zdCBoPSRjKHFkLHRoaXMpLmdldE5vZGUoYSxkKTtsZXQgZjtyZXR1cm4gaCYmKGY9ZnVuY3Rpb24gTTR0KGMsbCxhKXtpZighcjZlLmhhcyhjKSl0aHJvdyBuZXcgRXJyb3IoYFRoZSBub2RlIG1v'@; put 'ZGlmaWVyIGFjdGlvbiAoIiR7Y30iKSBkb2VzIG5vdCBleGlzdC5gKTtyZXR1cm4gcjZlLmdldChjKShsLGEpfShsLGgsZCkseUEoVTksdGhpcyxCSCgkYyhxZCx0aGlzKS5nZXRSb290cygpKSkpLGZ9dHJpZ2dlckNvbHVtbk1vZGlmaWNhdGlvbihsLGEpe3JldHVybiB0aGlzLnRyaWdnZXJO'@; put 'b2RlTW9kaWZpY2F0aW9uKGwsLTEsYSl9cm93Q29vcmRzVG9MZXZlbChsKXtpZihsPj0wKXJldHVybiBudWxsO2NvbnN0IGE9bCtNYXRoLm1heCh0aGlzLmdldExheWVyc0NvdW50KCksMSk7cmV0dXJuIGE8MD9udWxsOmF9bGV2ZWxUb1Jvd0Nvb3JkcyhsKXtpZihsPDApcmV0dXJuIG51bGw7'@; put 'Y29uc3QgYT1sLU1hdGgubWF4KHRoaXMuZ2V0TGF5ZXJzQ291bnQoKSwxKTtyZXR1cm4gYT49MD9udWxsOmF9Z2V0SGVhZGVyU2V0dGluZ3MobCxhKXt2YXIgZCxoO3JldHVybiBsPDAmJihsPXRoaXMucm93Q29vcmRzVG9MZXZlbChsKSksbnVsbD09PWx8fGw+PXRoaXMuZ2V0TGF5ZXJzQ291'@; put 'bnQoKT9udWxsOm51bGwhPT0oZD1udWxsPT09KGg9JGMoVTksdGhpcylbbF0pfHx2b2lkIDA9PT1oP3ZvaWQgMDpoW2FdKSYmdm9pZCAwIT09ZD9kOm51bGx9Z2V0SGVhZGVyVHJlZU5vZGVEYXRhKGwsYSl7Y29uc3QgZD10aGlzLmdldEhlYWRlclRyZWVOb2RlKGwsYSk7cmV0dXJuIGQ/ey4u'@; put 'LmQuZGF0YX06bnVsbH1nZXRIZWFkZXJUcmVlTm9kZShsLGEpe3JldHVybiBsPDAmJihsPXRoaXMucm93Q29vcmRzVG9MZXZlbChsKSksbnVsbD09PWx8fGw+PXRoaXMuZ2V0TGF5ZXJzQ291bnQoKT9udWxsOiRjKHFkLHRoaXMpLmdldE5vZGUobCxhKXx8bnVsbH1maW5kVG9wTW9zdEVudGly'@; put 'ZUhlYWRlckxldmVsKGwpe2xldCBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpsO2NvbnN0IGQ9YS1sKzE7bGV0IGg9ITEsZj1udWxsO2ZvcihsZXQgdj1sO3Y8PWE7disrKXtjb25zdCBNPSRjKHFkLHRoaXMpLmdldFJvb3RCeUNvbHVt'@; put 'bih2KTtpZighTSlicmVhaztoPSEwLE0ud2Fsa0Rvd24oST0+e2NvbnN0e2NvbHVtbkluZGV4OkcsaGVhZGVyTGV2ZWw6cmUsb3JpZ0NvbHNwYW46dWUsaXNIaWRkZW46eWV9PUkuZGF0YTt5ZXx8dWU8PWQmJkc+PWwmJkcrdWUtMTw9YSYmKG51bGw9PT1mfHxyZTxmKSYmKGY9cmUpfSxYbWUp'@; put 'fXJldHVybiBoJiZudWxsPT09Zj8tMTp0aGlzLmxldmVsVG9Sb3dDb29yZHMoZj8/MCl9ZmluZExlZnRNb3N0Q29sdW1uSW5kZXgobCxhKXt2YXIgZDtjb25zdHtpc1Jvb3Q6aH09bnVsbCE9PShkPXRoaXMuZ2V0SGVhZGVyU2V0dGluZ3MobCxhKSkmJnZvaWQgMCE9PWQ/ZDp7aXNSb290OiEw'@; put 'fTtpZihoKXJldHVybiBhO2xldCBmPWEtMTtmb3IoO2Y+PTA7KXt2YXIgdjtjb25zdHtpc1Jvb3Q6TX09bnVsbCE9PSh2PXRoaXMuZ2V0SGVhZGVyU2V0dGluZ3MobCxmKSkmJnZvaWQgMCE9PXY/djp7aXNSb290OiEwfTtpZihNKWJyZWFrO2YtPTF9cmV0dXJuIGZ9ZmluZFJpZ2h0TW9zdENv'@; put 'bHVtbkluZGV4KGwsYSl7dmFyIGQ7Y29uc3R7aXNSb290Omgsb3JpZ0NvbHNwYW46Zn09bnVsbCE9PShkPXRoaXMuZ2V0SGVhZGVyU2V0dGluZ3MobCxhKSkmJnZvaWQgMCE9PWQ/ZDp7aXNSb290OiEwLG9yaWdDb2xzcGFuOjF9O2lmKGgpcmV0dXJuIGErZi0xO2xldCB2PWErMTtmb3IoO3Y8'@; put 'dGhpcy5nZXRDb2x1bW5zQ291bnQoKTspe3ZhciBNO2NvbnN0e2lzUm9vdDpJfT1udWxsIT09KE09dGhpcy5nZXRIZWFkZXJTZXR0aW5ncyhsLHYpKSYmdm9pZCAwIT09TT9NOntpc1Jvb3Q6ITB9O2lmKEkpYnJlYWs7dis9MX1yZXR1cm4gdi0xfWdldExheWVyc0NvdW50KCl7cmV0dXJuICRj'@; put 'KHI0LHRoaXMpLmdldExheWVyc0NvdW50KCl9Z2V0Q29sdW1uc0NvdW50KCl7cmV0dXJuICRjKHI0LHRoaXMpLmdldENvbHVtbnNDb3VudCgpfWNsZWFyKCl7eUEoVTksdGhpcyxbXSksJGMocjQsdGhpcykuY2xlYXIoKSwkYyhxZCx0aGlzKS5jbGVhcigpfX1mdW5jdGlvbiBiQShjLGwsYSl7'@; put 'cmV0dXJuKGw9ZnVuY3Rpb24gazR0KGMpe3ZhciBsPWZ1bmN0aW9uIEQ0dChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVj'@; put 'dCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBs'@; put 'P2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9Y29uc3QgUjR0PWNsYXNzIEk0dHtjb25zdHJ1Y3RvcihsLGEpe2JBKHRoaXMsImhvdCIsdm9pZCAwKSxi'@; put 'QSh0aGlzLCJuZXN0ZWRIZWFkZXJTZXR0aW5nc0dldHRlciIsdm9pZCAwKSxiQSh0aGlzLCJsYXllcnNDb3VudCIsMCksYkEodGhpcywiY29udGFpbmVyIix2b2lkIDApLGJBKHRoaXMsIndpZHRoc01hcCIsdm9pZCAwKSx0aGlzLmhvdD1sLHRoaXMubmVzdGVkSGVhZGVyU2V0dGluZ3NHZXR0'@; put 'ZXI9YSx0aGlzLndpZHRoc01hcD10aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5jcmVhdGVBbmRSZWdpc3RlckluZGV4TWFwKCJuZXN0ZWRIZWFkZXJzLndpZHRoc01hcCIsInBoeXNpY2FsSW5kZXhUb1ZhbHVlIil9c2V0TGF5ZXJzQ291bnQobCl7cmV0dXJuIHRoaXMubGF5ZXJzQ291bnQ9'@; put 'bCx0aGlzfWdldFdpZHRoKGwpe3JldHVybiB0aGlzLndpZHRoc01hcC5nZXRWYWx1ZUF0SW5kZXgodGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihsKSl9YnVpbGRXaWR0aHNNYXAoKXtjb25zdCBsPXRoaXMuaG90LmdldEN1cnJlbnRUaGVtZU5hbWUoKTt0aGlzLmNvbnRhaW5lcj10aGlzLmhv'@; put 'dC5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5jb250YWluZXIuY2xhc3NMaXN0LmFkZCgiaGFuZHNvbnRhYmxlIiwiaHRHaG9zdFRhYmxlIiwiaHRBdXRvU2l6ZSIpLGwmJnRoaXMuY29udGFpbmVyLmNsYXNzTGlzdC5hZGQobCksdGhpcy5fYnVpbGRHaG9zdFRhYmxl'@; put 'KHRoaXMuY29udGFpbmVyKSx0aGlzLmhvdC5yb290RG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmNvbnRhaW5lcik7Y29uc3QgYT10aGlzLmNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKCJ0cjpsYXN0LW9mLXR5cGUgdGgiKSxkPWEubGVuZ3RoO3RoaXMud2lkdGhzTWFwLmNsZWFy'@; put 'KCk7Zm9yKGxldCBoPTA7aDxkO2grKyl7Y29uc3QgZj10aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KGgpLHY9dGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihmKTt0aGlzLndpZHRoc01hcC5zZXRWYWx1ZUF0SW5kZXgodixhW2hdLm9mZnNl'@; put 'dFdpZHRoKX10aGlzLmNvbnRhaW5lci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuY29udGFpbmVyKSx0aGlzLmNvbnRhaW5lcj1udWxsfV9idWlsZEdob3N0VGFibGUobCl7Y29uc3R7cm9vdERvY3VtZW50OmEsY29sdW1uSW5kZXhNYXBwZXI6ZH09dGhpcy5ob3QsaD1hLmNyZWF0ZURv'@; put 'Y3VtZW50RnJhZ21lbnQoKSxmPWEuY3JlYXRlRWxlbWVudCgidGFibGUiKSx2PSEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5kcm9wZG93bk1lbnUsTT1kLmdldFJlbmRlcmFibGVJbmRleGVzTGVuZ3RoKCk7Zm9yKGxldCBJPTA7STx0aGlzLmxheWVyc0NvdW50O0krKyl7Y29uc3QgRz1hLmNy'@; put 'ZWF0ZUVsZW1lbnQoInRyIik7Zm9yKGxldCByZT0wO3JlPE07cmUrKyl7bGV0IHVlPWQuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChyZSk7bnVsbD09PXVlJiYodWU9cmUpO2NvbnN0IHllPWEuY3JlYXRlRWxlbWVudCgidGgiKSxFZT10aGlzLm5lc3RlZEhlYWRlclNldHRpbmdzR2V0'@; put 'dGVyKEksdWUpO2lmKEVlJiYoIUVlLmlzUGxhY2Vob2xkZXJ8fEVlLmlzSGlkZGVuKSl7bGV0IEJlPUVlLmxhYmVsO3YmJihCZSs9JzxidXR0b24gY2xhc3M9ImNoYW5nZVR5cGUiPjwvYnV0dG9uPicpLGo3KHllLEJlKSx5ZS5jb2xTcGFuPUVlLmNvbHNwYW4sRy5hcHBlbmRDaGlsZCh5ZSl9'@; put 'fWYuYXBwZW5kQ2hpbGQoRyl9aC5hcHBlbmRDaGlsZChmKSxsLmFwcGVuZENoaWxkKGgpfWNsZWFyKCl7dGhpcy53aWR0aHNNYXAuY2xlYXIoKSx0aGlzLmNvbnRhaW5lcj1udWxsfX07ZnVuY3Rpb24gYTZlKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBPNHQoYyl7dmFyIGw9ZnVuY3Rpb24g'@; put 'UDR0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJv'@; put 'cigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShj'@; put 'LGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31mdW5jdGlvbiBfQShjLGwsYSl7czZlKGMsbCksbC5zZXQoYyxhKX1mdW5jdGlvbiBzNmUoYyxsKXtpZihsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5p'@; put 'dGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfWZ1bmN0aW9uIFpnKGMsbCxhKXtyZXR1cm4gYy5zZXQoS2MoYyxsKSxhKSxhfWZ1bmN0aW9uIGJvKGMsbCl7cmV0dXJuIGMuZ2V0KEtjKGMsbCkpfWZ1bmN0aW9uIEtjKGMsbCxhKXtpZigiZnVu'@; put 'Y3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhsKSlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzP2w6YTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGVsZW1lbnQgaXMgbm90IHByZXNlbnQgb24gdGhpcyBvYmplY3QiKX1jb25zdCBvNmU9Im5lc3RlZEhlYWRlcnMiO3ZhciBUbD1u'@; put 'ZXcgV2Vha01hcCx3Nj1uZXcgV2Vha01hcCx3QT1uZXcgV2Vha01hcCxqSD1uZXcgV2Vha01hcCx6SD1uZXcgV2Vha01hcCxsdT1uZXcgV2Vha1NldDtjbGFzcyBINHQgZXh0ZW5kcyBGb3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksZnVuY3Rpb24gTDR0KGMsbCl7czZlKGMs'@; put 'bCksbC5hZGQoYyl9KHRoaXMsbHUpLF9BKHRoaXMsVGwsbmV3IEE0dCksX0EodGhpcyx3NixudWxsKSxfQSh0aGlzLHdBLG51bGwpLF9BKHRoaXMsakgsITEpLF9BKHRoaXMsekgsbnVsbCksYTZlKHRoaXMsImdob3N0VGFibGUiLG5ldyBSNHQodGhpcy5ob3QsKGwsYSk9PnRoaXMuZ2V0SGVh'@; put 'ZGVyU2V0dGluZ3MobCxhKSkpLGE2ZSh0aGlzLCJkZXRlY3RlZE92ZXJsYXBwZWRIZWFkZXJzIiwhMSl9c3RhdGljIGdldCBQTFVHSU5fS0VZKCl7cmV0dXJuIG82ZX1zdGF0aWMgZ2V0IFBMVUdJTl9QUklPUklUWSgpe3JldHVybiAyODB9aXNFbmFibGVkKCl7cmV0dXJuISF0aGlzLmhvdC5n'@; put 'ZXRTZXR0aW5ncygpW282ZV19ZW5hYmxlUGx1Z2luKCl7dmFyIGw9dGhpcztpZih0aGlzLmVuYWJsZWQpcmV0dXJuO2NvbnN0e25lc3RlZEhlYWRlcnM6YX09dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKTsoIUFycmF5LmlzQXJyYXkoYSl8fCFBcnJheS5pc0FycmF5KGFbMF0pKSYmWW8oaGxgWW91'@; put 'ciBOZXN0ZWQgSGVhZGVycyBwbHVnaW4gY29uZmlndXJhdGlvbiBpcyBpbnZhbGlkLiBUaGUgc2V0dGluZ3MgaGFzIHRvIGJlXHgyMAogICAgICAgICAgICAgICAgICAgICAgICBwYXNzZWQgYXMgYW4gYXJyYXkgb2YgYXJyYXlzIGUucS4gW1snQTEnLCB7IGxhYmVsOiAnQTInLCBjb2xzcGFu'@; put 'OiAyIH1dXWApLHRoaXMuYWRkSG9vaygiaW5pdCIsKCk9PktjKGx1LHRoaXMsUTR0KS5jYWxsKHRoaXMpKSx0aGlzLmFkZEhvb2soImFmdGVyTG9hZERhdGEiLGZ1bmN0aW9uKCl7Zm9yKHZhciBkPWFyZ3VtZW50cy5sZW5ndGgsaD1uZXcgQXJyYXkoZCksZj0wO2Y8ZDtmKyspaFtmXT1hcmd1'@; put 'bWVudHNbZl07cmV0dXJuIEtjKGx1LGwsZWd0KS5jYWxsKGwsLi4uaCl9KSx0aGlzLmFkZEhvb2soImJlZm9yZU9uQ2VsbE1vdXNlRG93biIsZnVuY3Rpb24oKXtmb3IodmFyIGQ9YXJndW1lbnRzLmxlbmd0aCxoPW5ldyBBcnJheShkKSxmPTA7ZjxkO2YrKyloW2ZdPWFyZ3VtZW50c1tmXTty'@; put 'ZXR1cm4gS2MobHUsbCxqNHQpLmNhbGwobCwuLi5oKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJPbkNlbGxNb3VzZURvd24iLGZ1bmN0aW9uKCl7Zm9yKHZhciBkPWFyZ3VtZW50cy5sZW5ndGgsaD1uZXcgQXJyYXkoZCksZj0wO2Y8ZDtmKyspaFtmXT1hcmd1bWVudHNbZl07cmV0dXJuIEtjKGx1'@; put 'LGwsejR0KS5jYWxsKGwsLi4uaCl9KSx0aGlzLmFkZEhvb2soImJlZm9yZU9uQ2VsbE1vdXNlT3ZlciIsZnVuY3Rpb24oKXtmb3IodmFyIGQ9YXJndW1lbnRzLmxlbmd0aCxoPW5ldyBBcnJheShkKSxmPTA7ZjxkO2YrKyloW2ZdPWFyZ3VtZW50c1tmXTtyZXR1cm4gS2MobHUsbCxVNHQpLmNh'@; put 'bGwobCwuLi5oKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlT25DZWxsTW91c2VVcCIsZnVuY3Rpb24oKXtmb3IodmFyIGQ9YXJndW1lbnRzLmxlbmd0aCxoPW5ldyBBcnJheShkKSxmPTA7ZjxkO2YrKyloW2ZdPWFyZ3VtZW50c1tmXTtyZXR1cm4gS2MobHUsbCxaNHQpLmNhbGwobCwuLi5oKX0p'@; put 'LHRoaXMuYWRkSG9vaygiYmVmb3JlU2VsZWN0aW9uSGlnaGxpZ2h0U2V0IixmdW5jdGlvbigpe2Zvcih2YXIgZD1hcmd1bWVudHMubGVuZ3RoLGg9bmV3IEFycmF5KGQpLGY9MDtmPGQ7ZisrKWhbZl09YXJndW1lbnRzW2ZdO3JldHVybiBLYyhsdSxsLFc0dCkuY2FsbChsLC4uLmgpfSksdGhp'@; put 'cy5hZGRIb29rKCJtb2RpZnlUcmFuc2Zvcm1TdGFydCIsZnVuY3Rpb24oKXtmb3IodmFyIGQ9YXJndW1lbnRzLmxlbmd0aCxoPW5ldyBBcnJheShkKSxmPTA7ZjxkO2YrKyloW2ZdPWFyZ3VtZW50c1tmXTtyZXR1cm4gS2MobHUsbCxZNHQpLmNhbGwobCwuLi5oKX0pLHRoaXMuYWRkSG9vaygi'@; put 'YWZ0ZXJTZWxlY3Rpb24iLCgpPT5LYyhsdSx0aGlzLFVIKS5jYWxsKHRoaXMpKSx0aGlzLmFkZEhvb2soImFmdGVyU2VsZWN0aW9uRm9jdXNTZXQiLCgpPT5LYyhsdSx0aGlzLFVIKS5jYWxsKHRoaXMpKSx0aGlzLmFkZEhvb2soImJlZm9yZVZpZXdwb3J0U2Nyb2xsSG9yaXpvbnRhbGx5Iixm'@; put 'dW5jdGlvbigpe2Zvcih2YXIgZD1hcmd1bWVudHMubGVuZ3RoLGg9bmV3IEFycmF5KGQpLGY9MDtmPGQ7ZisrKWhbZl09YXJndW1lbnRzW2ZdO3JldHVybiBLYyhsdSxsLE40dCkuY2FsbChsLC4uLmgpfSksdGhpcy5hZGRIb29rKCJhZnRlckdldENvbHVtbkhlYWRlclJlbmRlcmVycyIsZD0+'@; put 'S2MobHUsdGhpcywkNHQpLmNhbGwodGhpcyxkKSksdGhpcy5hZGRIb29rKCJtb2RpZnlDb2xXaWR0aCIsZnVuY3Rpb24oKXtmb3IodmFyIGQ9YXJndW1lbnRzLmxlbmd0aCxoPW5ldyBBcnJheShkKSxmPTA7ZjxkO2YrKyloW2ZdPWFyZ3VtZW50c1tmXTtyZXR1cm4gS2MobHUsbCxYNHQpLmNh'@; put 'bGwobCwuLi5oKX0pLHRoaXMuYWRkSG9vaygibW9kaWZ5Q29sdW1uSGVhZGVyVmFsdWUiLGZ1bmN0aW9uKCl7Zm9yKHZhciBkPWFyZ3VtZW50cy5sZW5ndGgsaD1uZXcgQXJyYXkoZCksZj0wO2Y8ZDtmKyspaFtmXT1hcmd1bWVudHNbZl07cmV0dXJuIEtjKGx1LGwscTR0KS5jYWxsKGwsLi4u'@; put 'aCl9KSx0aGlzLmFkZEhvb2soImJlZm9yZUhpZ2hsaWdodGluZ0NvbHVtbkhlYWRlciIsZnVuY3Rpb24oKXtmb3IodmFyIGQ9YXJndW1lbnRzLmxlbmd0aCxoPW5ldyBBcnJheShkKSxmPTA7ZjxkO2YrKyloW2ZdPWFyZ3VtZW50c1tmXTtyZXR1cm4gS2MobHUsbCxWNHQpLmNhbGwobCwuLi5o'@; put 'KX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlQ29weSIsZnVuY3Rpb24oKXtmb3IodmFyIGQ9YXJndW1lbnRzLmxlbmd0aCxoPW5ldyBBcnJheShkKSxmPTA7ZjxkO2YrKyloW2ZdPWFyZ3VtZW50c1tmXTtyZXR1cm4gS2MobHUsbCxCNHQpLmNhbGwobCwuLi5oKX0pLHRoaXMuYWRkSG9vaygiYmVm'@; put 'b3JlU2VsZWN0Q29sdW1ucyIsZnVuY3Rpb24oKXtmb3IodmFyIGQ9YXJndW1lbnRzLmxlbmd0aCxoPW5ldyBBcnJheShkKSxmPTA7ZjxkO2YrKyloW2ZdPWFyZ3VtZW50c1tmXTtyZXR1cm4gS2MobHUsbCxHNHQpLmNhbGwobCwuLi5oKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJWaWV3cG9ydENv'@; put 'bHVtbkNhbGN1bGF0b3JPdmVycmlkZSIsZnVuY3Rpb24oKXtmb3IodmFyIGQ9YXJndW1lbnRzLmxlbmd0aCxoPW5ldyBBcnJheShkKSxmPTA7ZjxkO2YrKyloW2ZdPWFyZ3VtZW50c1tmXTtyZXR1cm4gS2MobHUsbCxLNHQpLmNhbGwobCwuLi5oKX0pLHRoaXMuYWRkSG9vaygibW9kaWZ5Rm9j'@; put 'dXNlZEVsZW1lbnQiLGZ1bmN0aW9uKCl7Zm9yKHZhciBkPWFyZ3VtZW50cy5sZW5ndGgsaD1uZXcgQXJyYXkoZCksZj0wO2Y8ZDtmKyspaFtmXT1hcmd1bWVudHNbZl07cmV0dXJuIEtjKGx1LGwsSjR0KS5jYWxsKGwsLi4uaCl9KSx0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5hZGRMb2Nh'@; put 'bEhvb2soImNhY2hlVXBkYXRlZCIsKCk9PktjKGx1LHRoaXMsVUgpLmNhbGwodGhpcykpLHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLmFkZExvY2FsSG9vaygiY2FjaGVVcGRhdGVkIiwoKT0+S2MobHUsdGhpcyxVSCkuY2FsbCh0aGlzKSksc3VwZXIuZW5hYmxlUGx1Z2luKCksdGhpcy51cGRh'@; put 'dGVQbHVnaW4oKX11cGRhdGVQbHVnaW4oKXtpZighdGhpcy5ob3QudmlldylyZXR1cm47Y29uc3R7bmVzdGVkSGVhZGVyczpsfT10aGlzLmhvdC5nZXRTZXR0aW5ncygpO2JvKFRsLHRoaXMpLnNldENvbHVtbnNMaW1pdCh0aGlzLmhvdC5jb3VudENvbHMoKSksQXJyYXkuaXNBcnJheShsKSYm'@; put 'KHRoaXMuZGV0ZWN0ZWRPdmVybGFwcGVkSGVhZGVycz1ibyhUbCx0aGlzKS5zZXRTdGF0ZShsKSksdGhpcy5kZXRlY3RlZE92ZXJsYXBwZWRIZWFkZXJzJiZZbyhobGBZb3VyIE5lc3RlZCBIZWFkZXJzIHBsdWdpbiBzZXR1cCBjb250YWlucyBvdmVybGFwcGluZyBoZWFkZXJzLiBUaGlzIGtp'@; put 'bmQgb2YgY29uZmlndXJhdGlvblx4MjAKICAgICAgICAgICAgICAgICAgICAgICAgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQuYCksdGhpcy5lbmFibGVkJiZ0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5oaWRpbmdNYXBzQ29sbGVjdGlvbi5nZXRNZXJnZWRWYWx1ZXMoKS5mb3JFYWNo'@; put 'KChhLGQpPT57Y29uc3QgaD0hMD09PWE/ImhpZGUtY29sdW1uIjoic2hvdy1jb2x1bW4iO2JvKFRsLHRoaXMpLnRyaWdnZXJDb2x1bW5Nb2RpZmljYXRpb24oaCxkKX0pLCFibyh3Nix0aGlzKSYmdGhpcy5lbmFibGVkJiZaZyh3Nix0aGlzLHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmNy'@; put 'ZWF0ZUNoYW5nZXNPYnNlcnZlcigiaGlkaW5nIikuc3Vic2NyaWJlKGE9PnthLmZvckVhY2goZD0+e2xldHtvcDpoLGluZGV4OmYsbmV3VmFsdWU6dn09ZDtpZigicmVwbGFjZSI9PT1oKXtjb25zdCBNPSEwPT09dj8iaGlkZS1jb2x1bW4iOiJzaG93LWNvbHVtbiI7Ym8oVGwsdGhpcykudHJp'@; put 'Z2dlckNvbHVtbk1vZGlmaWNhdGlvbihNLGYpfX0pLHRoaXMuZ2hvc3RUYWJsZS5idWlsZFdpZHRoc01hcCgpfSkpLHRoaXMuZ2hvc3RUYWJsZS5zZXRMYXllcnNDb3VudCh0aGlzLmdldExheWVyc0NvdW50KCkpLmJ1aWxkV2lkdGhzTWFwKCksc3VwZXIudXBkYXRlUGx1Z2luKCl9ZGlzYWJs'@; put 'ZVBsdWdpbigpe3RoaXMuY2xlYXJDb2xzcGFucygpLGJvKFRsLHRoaXMpLmNsZWFyKCksYm8odzYsdGhpcykudW5zdWJzY3JpYmUoKSxaZyh3Nix0aGlzLG51bGwpLHRoaXMuZ2hvc3RUYWJsZS5jbGVhcigpLHN1cGVyLmRpc2FibGVQbHVnaW4oKX1nZXRTdGF0ZU1hbmFnZXIoKXtyZXR1cm4g'@; put 'Ym8oVGwsdGhpcyl9Z2V0TGF5ZXJzQ291bnQoKXtyZXR1cm4gYm8oVGwsdGhpcykuZ2V0TGF5ZXJzQ291bnQoKX1nZXRIZWFkZXJTZXR0aW5ncyhsLGEpe3JldHVybiBibyhUbCx0aGlzKS5nZXRIZWFkZXJTZXR0aW5ncyhsLGEpfWNsZWFyQ29sc3BhbnMoKXtpZighdGhpcy5ob3Qudmlldyly'@; put 'ZXR1cm47Y29uc3R7X3d0Omx9PXRoaXMuaG90LnZpZXcsYT1sLmdldFNldHRpbmcoImNvbHVtbkhlYWRlcnMiKS5sZW5ndGgsZD1sLnd0VGFibGUuVEhFQUQsaD1sLnd0T3ZlcmxheXMudG9wT3ZlcmxheS5jbG9uZS53dFRhYmxlLlRIRUFELGY9bC53dE92ZXJsYXlzLnRvcElubGluZVN0YXJ0'@; put 'Q29ybmVyT3ZlcmxheT9sLnd0T3ZlcmxheXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LmNsb25lLnd0VGFibGUuVEhFQUQ6bnVsbDtmb3IobGV0IHY9MDt2PGE7disrKXtjb25zdCBNPWQuY2hpbGROb2Rlc1t2XTtpZighTSlicmVhaztjb25zdCBJPWguY2hpbGROb2Rlc1t2XSxHPWY/'@; put 'Zi5jaGlsZE5vZGVzW3ZdOm51bGw7Zm9yKGxldCByZT0wLHVlPU0uY2hpbGROb2Rlcy5sZW5ndGg7cmU8dWU7cmUrKylNLmNoaWxkTm9kZXNbcmVdLnJlbW92ZUF0dHJpYnV0ZSgiY29sc3BhbiIpLGhzKE0uY2hpbGROb2Rlc1tyZV0sImhpZGRlbkhlYWRlciIpLEkmJkkuY2hpbGROb2Rlc1ty'@; put 'ZV0mJihJLmNoaWxkTm9kZXNbcmVdLnJlbW92ZUF0dHJpYnV0ZSgiY29sc3BhbiIpLGhzKEkuY2hpbGROb2Rlc1tyZV0sImhpZGRlbkhlYWRlciIpKSxmJiZHJiZHLmNoaWxkTm9kZXNbcmVdJiYoRy5jaGlsZE5vZGVzW3JlXS5yZW1vdmVBdHRyaWJ1dGUoImNvbHNwYW4iKSxocyhHLmNoaWxk'@; put 'Tm9kZXNbcmVdLCJoaWRkZW5IZWFkZXIiKSl9fWhlYWRlclJlbmRlcmVyRmFjdG9yeShsKXt2YXIgYT10aGlzO2NvbnN0IGQ9dGhpcy5ob3Qudmlldy5fd3QuZ2V0U2V0dGluZygiZml4ZWRDb2x1bW5zU3RhcnQiKTtyZXR1cm4oaCxmKT0+e3ZhciB2O2NvbnN0e2NvbHVtbkluZGV4TWFwcGVy'@; put 'Ok0sdmlldzpJfT10aGlzLmhvdDtsZXQgRz1NLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoaCk7bnVsbD09PUcmJihHPWgpLGYucmVtb3ZlQXR0cmlidXRlKCJjb2xzcGFuIiksaHMoZiwiaGlkZGVuSGVhZGVyIiksaHMoZiwiaGlkZGVuSGVhZGVyVGV4dCIpO2NvbnN0e2NvbHNwYW46'@; put 'cmUsaXNIaWRkZW46dWUsaXNQbGFjZWhvbGRlcjp5ZSxoZWFkZXJDbGFzc05hbWVzOkVlfT1udWxsIT09KHY9Ym8oVGwsdGhpcykuZ2V0SGVhZGVyU2V0dGluZ3MobCxHKSkmJnZvaWQgMCE9PXY/djp7bGFiZWw6IiJ9O2lmKHllfHx1ZSlFaShmLCJoaWRkZW5IZWFkZXIiKTtlbHNlIGlmKHJl'@; put 'PjEpe3ZhciBCZSxHZSxzdDtjb25zdHt3dE92ZXJsYXlzOnB0fT1JLl93dCxkdD1udWxsPT09KEJlPXB0LnRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheSl8fHZvaWQgMD09PUJlP3ZvaWQgMDpCZS5jbG9uZS53dFRhYmxlLlRIRUFELmNvbnRhaW5zKGYpLHF0PW51bGw9PT0oR2U9cHQuaW5s'@; put 'aW5lU3RhcnRPdmVybGF5KXx8dm9pZCAwPT09R2U/dm9pZCAwOkdlLmNsb25lLnd0VGFibGUuVEhFQUQuY29udGFpbnMoZik7KG51bGw9PT0oc3Q9cHQudG9wT3ZlcmxheSl8fHZvaWQgMD09PXN0P3ZvaWQgMDpzdC5jbG9uZS53dFRhYmxlLlRIRUFELmNvbnRhaW5zKGYpKSYmRzxkJiZFaShm'@; put 'LCJoaWRkZW5IZWFkZXJUZXh0Iik7Y29uc3Qgd249ZHR8fHF0P01hdGgubWluKHJlLGQtaCk6cmU7d24+MSYmZi5zZXRBdHRyaWJ1dGUoImNvbHNwYW4iLHduKX1pZih0aGlzLmhvdC52aWV3LmFwcGVuZENvbEhlYWRlcihHLGYsZnVuY3Rpb24oKXtyZXR1cm4gYS5nZXRDb2x1bW5IZWFkZXJW'@; put 'YWx1ZSguLi5hcmd1bWVudHMpfSxsKSwheWUmJiF1ZSl7Y29uc3QgcHQ9Zi5xdWVyeVNlbGVjdG9yKCJkaXYucmVsYXRpdmUiKTtwdCYmRWUmJkVlLmxlbmd0aD4wJiYoaHMocHQsdGhpcy5ob3QuZ2V0Q29sdW1uTWV0YShHKS5oZWFkZXJDbGFzc05hbWUpLEVpKHB0LEVlKSl9fX1nZXRDb2x1'@; put 'bW5IZWFkZXJWYWx1ZShsLGEpe3ZhciBkO2NvbnN0e2lzSGlkZGVuOmgsaXNQbGFjZWhvbGRlcjpmfT1udWxsIT09KGQ9Ym8oVGwsdGhpcykuZ2V0SGVhZGVyU2V0dGluZ3MoYSxsKSkmJnZvaWQgMCE9PWQ/ZDp7fTtyZXR1cm4gZnx8aD8iIjp0aGlzLmhvdC5nZXRDb2xIZWFkZXIobCxhKX1k'@; put 'ZXN0cm95KCl7WmcoVGwsdGhpcyxudWxsKSxudWxsIT09Ym8odzYsdGhpcykmJihibyh3Nix0aGlzKS51bnN1YnNjcmliZSgpLFpnKHc2LHRoaXMsbnVsbCkpLHN1cGVyLmRlc3Ryb3koKX1fZ2V0SGVhZGVyVHJlZU5vZGVEYXRhQnlDb29yZHMobCl7aWYoIShsLnJvdz49MHx8bC5jb2w8MCkp'@; put 'cmV0dXJuIGJvKFRsLHRoaXMpLmdldEhlYWRlclRyZWVOb2RlRGF0YShsLnJvdyxsLmNvbCl9fWZ1bmN0aW9uIFVIKCl7dmFyIGM7Y29uc3QgbD1udWxsPT09KGM9dGhpcy5ob3QpfHx2b2lkIDA9PT1jP3ZvaWQgMDpjLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7aWYoIWwpcmV0dXJuO2NvbnN0'@; put 'e2hpZ2hsaWdodDphfT1sO2lmKGEuaXNIZWFkZXIoKSYmYS5jb2w+PTApe2NvbnN0IGg9Ym8oVGwsdGhpcykuZmluZExlZnRNb3N0Q29sdW1uSW5kZXgoYS5yb3csYS5jb2wpLGY9dGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5nZXRGb2N1cygpO2YudmlzdWFsQ2VsbFJhbmdlLmhpZ2hs'@; put 'aWdodC5jb2w9aCxmLnZpc3VhbENlbGxSYW5nZS5mcm9tLmNvbD1oLGYudmlzdWFsQ2VsbFJhbmdlLnRvLmNvbD1oLGYuY29tbWl0KCl9fWZ1bmN0aW9uIE40dChjLGwpe3ZhciBhO2NvbnN0IGQ9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtpZighZClyZXR1cm4gYztjb25zdHto'@; put 'aWdobGlnaHQ6aH09ZCx7bmF2aWdhYmxlSGVhZGVyczpmfT10aGlzLmhvdC5nZXRTZXR0aW5ncygpLHY9dGhpcy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigpLE09Zj9oLnJvdzpudWxsPT09KGE9Ym8oekgsdGhpcykpfHx2b2lkIDA9PT1hP3ZvaWQgMDphLnJvdyxJ'@; put 'PXY/YzpoLmNvbCxHPU08MCYmST49MDtpZihaZyh6SCx0aGlzLG51bGwpLCFHKXJldHVybiBjO2NvbnN0IHJlPXRoaXMuaG90LmdldEZpcnN0RnVsbHlWaXNpYmxlQ29sdW1uKCksdWU9dGhpcy5ob3QuZ2V0TGFzdEZ1bGx5VmlzaWJsZUNvbHVtbigpLHllPXVlLXJlKzEsRWU9Ym8oVGwsdGhp'@; put 'cykuZmluZExlZnRNb3N0Q29sdW1uSW5kZXgoTSxJKSxCZT1ibyhUbCx0aGlzKS5maW5kUmlnaHRNb3N0Q29sdW1uSW5kZXgoTSxJKSxHZT1CZS1FZSsxO2lmKEVlPHJlJiZCZT51ZSlyZXR1cm4gRWU7aWYodil7bGV0IHN0PW51bGw7cmV0dXJuIEVlPj1yZSYmQmU+dWU/R2U+eWU/KGwudmFs'@; put 'dWU9InN0YXJ0IixzdD1FZSk6KGwudmFsdWU9ImVuZCIsc3Q9QmUpOkVlPHJlJiZCZTw9dWUmJihHZT55ZT8obC52YWx1ZT0iZW5kIixzdD1CZSk6KGwudmFsdWU9InN0YXJ0IixzdD1FZSkpLHN0fXJldHVybiBFZTw9cmU/RWU6QmV9ZnVuY3Rpb24gVjR0KGMsbCxhKXtjb25zdCBkPWJvKFRs'@; put 'LHRoaXMpLmdldEhlYWRlclRyZWVOb2RlRGF0YShsLGMpO2lmKCFkKXJldHVybiBjO2NvbnN0e2NvbHVtbkN1cnNvcjpoLHNlbGVjdGlvblR5cGU6ZixzZWxlY3Rpb25XaWR0aDp2fT1hLHtpc1Jvb3Q6TSxjb2xzcGFuOkl9PWJvKFRsLHRoaXMpLmdldEhlYWRlclNldHRpbmdzKGwsYyk7aWYo'@; put 'Zj09PW1xKXtpZighTSlyZXR1cm4gZC5jb2x1bW5JbmRleH1lbHNlIGlmKGY9PT1KM2UmJihJPnYtaHx8IU0pKXJldHVybiBudWxsO3JldHVybiBjfWZ1bmN0aW9uIEI0dChjLGwsYSl7bGV0e2NvbHVtbkhlYWRlcnNDb3VudDpkfT1hO2lmKDAhPT1kKWZvcihsZXQgZj0wO2Y8bC5sZW5ndGg7'@; put 'ZisrKXtjb25zdHtzdGFydFJvdzp2LHN0YXJ0Q29sOk0sZW5kUm93OkksZW5kQ29sOkd9PWxbZl0scmU9SS12KzE7aWYodj49MHx8MT09TS1HKzEpYnJlYWs7Zm9yKGxldCB5ZT1NO3llPD1HO3llKyspZm9yKGxldCBFZT12O0VlPD1JO0VlKyspe3ZhciBoO2NvbnN0IEJlPXJlK0VlLEdlPXll'@; put 'LU07MCE9PUdlJiYhMT09PShudWxsPT09KGg9Ym8oVGwsdGhpcykuZ2V0SGVhZGVyVHJlZU5vZGVEYXRhKEVlLHllKSl8fHZvaWQgMD09PWg/dm9pZCAwOmguaXNSb290KSYmKGNbQmVdW0dlXT0iIil9fX1mdW5jdGlvbiBqNHQoYyxsLGEsZCl7dGhpcy5fZ2V0SGVhZGVyVHJlZU5vZGVEYXRh'@; put 'QnlDb29yZHMobCkmJihkLmNvbHVtbj0hMCl9ZnVuY3Rpb24gejR0KGMsbCl7Y29uc3QgYT10aGlzLl9nZXRIZWFkZXJUcmVlTm9kZURhdGFCeUNvb3JkcyhsKTtpZighYSlyZXR1cm47Wmcod0EsdGhpcyxsLmNsb25lKCkpLFpnKGpILHRoaXMsITApO2NvbnN0e3NlbGVjdGlvbjpkfT10aGlz'@; put 'LmhvdCxoPWQuaXNTZWxlY3RlZCgpP2QuZ2V0U2VsZWN0ZWRSYW5nZSgpLmN1cnJlbnQoKTpudWxsLGY9W10se2NvbHVtbkluZGV4OnYsb3JpZ0NvbHNwYW46TX09YSxJPSFkLmluSW5TZWxlY3Rpb24obCk7Yy5zaGlmdEtleSYmaD9sLmNvbDxoLmZyb20uY29sP2YucHVzaChoLmdldFRvcEVu'@; put 'ZENvcm5lcigpLmNvbCx2LGwucm93KTpmLnB1c2gobC5jb2w+aC5mcm9tLmNvbD9oLmdldFRvcFN0YXJ0Q29ybmVyKCkuY29sOnYsditNLTEsbC5yb3cpOigkTyhjKXx8UG0oYykmJkl8fGdmZShjKSkmJmYucHVzaCh2LHYrTS0xLGwucm93KSxkLnNlbGVjdENvbHVtbnMoLi4uZil9ZnVuY3Rp'@; put 'b24gVTR0KGMsbCxhLGQpe2lmKCF0aGlzLmhvdC52aWV3LmlzTW91c2VEb3duKCl8fGQuY29sdW1uKXJldHVybjtjb25zdCBoPXRoaXMuX2dldEhlYWRlclRyZWVOb2RlRGF0YUJ5Q29vcmRzKGwpO2lmKCFoKXJldHVybjtjb25zdHtjb2x1bW5JbmRleDpmLG9yaWdDb2xzcGFuOnZ9PWgsTT10'@; put 'aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLEk9TS5nZXRUb3BTdGFydENvcm5lcigpLEc9TS5nZXRCb3R0b21FbmRDb3JuZXIoKSx7ZnJvbTpyZX09TTtkLmNvbHVtbj0hMCxkLmNlbGw9ITA7Y29uc3QgdWU9W10seWU9QW8obC5yb3csLTEvMCwtMSk7bC5jb2w8cmUuY29sP3VlLnB1'@; put 'c2goRy5jb2wsZix5ZSk6dWUucHVzaChsLmNvbD5yZS5jb2w/SS5jb2w6ZixmK3YtMSx5ZSksdGhpcy5ob3Quc2VsZWN0aW9uLnNlbGVjdENvbHVtbnMoLi4udWUpfWZ1bmN0aW9uIFo0dCgpe1pnKGpILHRoaXMsITEpfWZ1bmN0aW9uIFc0dCgpe2NvbnN0e25hdmlnYWJsZUhlYWRlcnM6Y309'@; put 'dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKTtpZighdGhpcy5ob3Qudmlldy5pc01vdXNlRG93bigpfHwhYm8oakgsdGhpcyl8fCFjKXJldHVybjtjb25zdCBsPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksYT1sLmdldFRvcFN0YXJ0Q29ybmVyKCkuY29sLGQ9bC5nZXRCb3R0b21FbmRD'@; put 'b3JuZXIoKS5jb2wse2NvbHVtbkluZGV4Omgsb3JpZ0NvbHNwYW46Zn09Ym8oVGwsdGhpcykuZ2V0SGVhZGVyVHJlZU5vZGVEYXRhKGJvKHdBLHRoaXMpLnJvdyxibyh3QSx0aGlzKS5jb2wpO2lmKGwuc2V0SGlnaGxpZ2h0KGJvKHdBLHRoaXMpKSxmPmwuZ2V0V2lkdGgoKXx8aDxhfHxoK2Yt'@; put 'MT5kKXtjb25zdCB2PWJvKFRsLHRoaXMpLmZpbmRUb3BNb3N0RW50aXJlSGVhZGVyTGV2ZWwoQW8oYSxoLGgrZi0xKSxBbyhkLGgsaCtmLTEpKTtsLmhpZ2hsaWdodC5yb3c9dixsLmhpZ2hsaWdodC5jb2w9bC5mcm9tLmNvbH19ZnVuY3Rpb24gWTR0KGMpe2NvbnN0e2hpZ2hsaWdodDpsfT10'@; put 'aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLGE9dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMobC5yb3crYy5yb3csbC5jb2wrYy5jb2wpO2lmKCEoYS5pc0hlYWRlcigpJiZhLmNvbD49MCkpcmV0dXJuO2NvbnN0IGg9Ym8oVGwsdGhpcykuZmluZExlZnRNb3N0Q29sdW1uSW5kZXgo'@; put 'YS5yb3csYS5jb2wpLGY9Ym8oVGwsdGhpcykuZmluZFJpZ2h0TW9zdENvbHVtbkluZGV4KGEucm93LGEuY29sKTtpZihjLmNvbDwwKXtjb25zdCBNPXRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChsLmNvbD49aCYmbC5jb2w8PWY/aC0xOmYsLTEp'@; put 'O2MuY29sPW51bGw9PT1NPy10aGlzLmhvdC52aWV3LmNvdW50UmVuZGVyYWJsZUNvbHVtbnNJblJhbmdlKDAsbC5jb2wpOi1NYXRoLm1heCh0aGlzLmhvdC52aWV3LmNvdW50UmVuZGVyYWJsZUNvbHVtbnNJblJhbmdlKE0sbC5jb2wpLTEsMSl9ZWxzZSBpZihjLmNvbD4wKXtjb25zdCBNPXRo'@; put 'aXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChsLmNvbD49aCYmbC5jb2w8PWY/ZisxOmgsMSk7Yy5jb2w9bnVsbD09PU0/dGhpcy5ob3Qudmlldy5jb3VudFJlbmRlcmFibGVDb2x1bW5zSW5SYW5nZShsLmNvbCx0aGlzLmhvdC5jb3VudENvbHMoKSk6'@; put 'TWF0aC5tYXgodGhpcy5ob3Qudmlldy5jb3VudFJlbmRlcmFibGVDb2x1bW5zSW5SYW5nZShsLmNvbCxNKS0xLDEpfX1mdW5jdGlvbiBHNHQoYyxsLGEpe2NvbnN0IGQ9Yy5yb3csaD10aGlzLl9nZXRIZWFkZXJUcmVlTm9kZURhdGFCeUNvb3Jkcyh7cm93OmQsY29sOmMuY29sfSksZj10aGlz'@; put 'Ll9nZXRIZWFkZXJUcmVlTm9kZURhdGFCeUNvb3Jkcyh7cm93OmQsY29sOmwuY29sfSk7WmcoekgsdGhpcyxhLmNsb25lKCkpLGwuY29sPGMuY29sPyhoJiYoYy5jb2w9aC5jb2x1bW5JbmRleCtoLm9yaWdDb2xzcGFuLTEpLGYmJihsLmNvbD1mLmNvbHVtbkluZGV4KSk6bC5jb2w+PWMuY29s'@; put 'JiYoaCYmKGMuY29sPWguY29sdW1uSW5kZXgpLGYmJihsLmNvbD1mLmNvbHVtbkluZGV4K2Yub3JpZ0NvbHNwYW4tMSkpfWZ1bmN0aW9uICQ0dChjKXtpZihibyhUbCx0aGlzKS5nZXRMYXllcnNDb3VudCgpPjApe2MubGVuZ3RoPTA7Zm9yKGxldCBsPTA7bDxibyhUbCx0aGlzKS5nZXRMYXll'@; put 'cnNDb3VudCgpO2wrKyljLnB1c2godGhpcy5oZWFkZXJSZW5kZXJlckZhY3RvcnkobCkpfX1mdW5jdGlvbiBLNHQoYyl7Y29uc3QgbD1ibyhUbCx0aGlzKS5nZXRMYXllcnNDb3VudCgpO2xldCBhPWMuc3RhcnRDb2x1bW4sZD0hIWw7Zm9yKGxldCBoPTA7aDxsO2grKyl7Y29uc3QgZj1ibyhU'@; put 'bCx0aGlzKS5maW5kTGVmdE1vc3RDb2x1bW5JbmRleChoLGMuc3RhcnRDb2x1bW4pLHY9dGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChmKTtpZihmPj0wJiYoZD0hMSksZzEodikmJnY8Yy5zdGFydENvbHVtbil7YT12O2JyZWFrfX1jLnN0'@; put 'YXJ0Q29sdW1uPWQ/Ym8oVGwsdGhpcykuZ2V0SGVhZGVyVHJlZU5vZGVEYXRhKDAsYSkuY29sdW1uSW5kZXg6YX1mdW5jdGlvbiBYNHQoYyxsKXtjb25zdCBhPXRoaXMuZ2hvc3RUYWJsZS5nZXRXaWR0aChsKTtyZXR1cm4gYz5hP2M6YX1mdW5jdGlvbiBxNHQoYyxsLGEpe3ZhciBkO2NvbnN0'@; put 'e2xhYmVsOmh9PW51bGwhPT0oZD1ibyhUbCx0aGlzKS5nZXRIZWFkZXJUcmVlTm9kZURhdGEoYSxsKSkmJnZvaWQgMCE9PWQ/ZDp7bGFiZWw6IiJ9O3JldHVybiBofWZ1bmN0aW9uIEo0dChjLGwpe2lmKGM8MClyZXR1cm4gdGhpcy5ob3QuZ2V0Q2VsbChjLGJvKFRsLHRoaXMpLmZpbmRMZWZ0'@; put 'TW9zdENvbHVtbkluZGV4KGMsbCksITApfWZ1bmN0aW9uIFE0dCgpe3RoaXMudXBkYXRlUGx1Z2luKCl9ZnVuY3Rpb24gZWd0KGMsbCl7bHx8dGhpcy51cGRhdGVQbHVnaW4oKX1mdW5jdGlvbiBDQShjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gdGd0KGMpe3ZhciBsPWZ1bmN0aW9uIG5ndChj'@; put 'LGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBA'@; put 'dG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2'@; put 'YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9Y29uc3QgaWd0PWNsYXNzIHJndHtjb25zdHJ1Y3RvcihsLGEpe0NBKHRoaXMsImhvdCIsdm9pZCAwKSxDQSh0aGlzLCJkYXRhIixudWxsKSxDQSh0aGlzLCJwbHVnaW4iLHZvaWQgMCks'@; put 'Q0EodGhpcywicGFyZW50UmVmZXJlbmNlIixuZXcgV2Vha01hcCksQ0EodGhpcywiY2FjaGUiLHtsZXZlbHM6W10sbGV2ZWxDb3VudDowLHJvd3M6W10sbm9kZUluZm86bmV3IFdlYWtNYXB9KSx0aGlzLmhvdD1hLHRoaXMucGx1Z2luPWx9c2V0RGF0YShsKXt0aGlzLmRhdGE9bH1nZXREYXRh'@; put 'KCl7cmV0dXJuIHRoaXMuZGF0YX1nZXRSYXdTb3VyY2VEYXRhKCl7bGV0IGw9bnVsbDtyZXR1cm4gdGhpcy5wbHVnaW4uZGlzYWJsZUNvcmVBUElNb2RpZmllcnMoKSxsPXRoaXMuaG90LmdldFNvdXJjZURhdGEoKSx0aGlzLnBsdWdpbi5lbmFibGVDb3JlQVBJTW9kaWZpZXJzKCksbH11cGRh'@; put 'dGVXaXRoRGF0YShsKXt0aGlzLnNldERhdGEobCksdGhpcy5yZXdyaXRlQ2FjaGUoKX1yZXdyaXRlQ2FjaGUoKXt0aGlzLmNhY2hlPXtsZXZlbHM6W10sbGV2ZWxDb3VudDowLHJvd3M6W10sbm9kZUluZm86bmV3IFdlYWtNYXB9LEthKDAsdGhpcy5kYXRhLmxlbmd0aC0xLGw9Pnt0aGlzLmNh'@; put 'Y2hlTm9kZSh0aGlzLmRhdGFbbF0sMCxudWxsKX0pfWNhY2hlTm9kZShsLGEsZCl7dGhpcy5jYWNoZS5sZXZlbHNbYV18fCh0aGlzLmNhY2hlLmxldmVsc1thXT1bXSx0aGlzLmNhY2hlLmxldmVsQ291bnQrPTEpLHRoaXMuY2FjaGUubGV2ZWxzW2FdLnB1c2gobCksdGhpcy5jYWNoZS5yb3dz'@; put 'LnB1c2gobCksdGhpcy5jYWNoZS5ub2RlSW5mby5zZXQobCx7cGFyZW50OmQscm93OnRoaXMuY2FjaGUucm93cy5sZW5ndGgtMSxsZXZlbDphfSksdGhpcy5oYXNDaGlsZHJlbihsKSYmS24obC5fX2NoaWxkcmVuLGg9Pnt0aGlzLmNhY2hlTm9kZShoLGErMSxsKX0pfWdldERhdGFPYmplY3Qo'@; put 'bCl7cmV0dXJuIG51bGw9PWw/bnVsbDp0aGlzLmNhY2hlLnJvd3NbbF19cmVhZFRyZWVOb2RlcyhsLGEsZCxoKXtsZXQgZj0hMSx2PWE7aWYoaXNOYU4odikmJnYuZW5kKXJldHVybiB2O2xldCBNPWw7cmV0dXJuIE18fChNPXtfX2NoaWxkcmVuOnRoaXMuZGF0YX0sZj0hMCx2LT0xKSxudWxs'@; put 'IT1kJiZ2PT09ZD97cmVzdWx0Ok0sZW5kOiEwfTpudWxsIT1oJiZNPT09aD97cmVzdWx0OnYsZW5kOiEwfToodis9MSxNLl9fY2hpbGRyZW4mJktuKE0uX19jaGlsZHJlbixJPT57aWYodGhpcy5wYXJlbnRSZWZlcmVuY2Uuc2V0KEksZj9udWxsOk0pLHY9dGhpcy5yZWFkVHJlZU5vZGVzKEks'@; put 'dixkLGgpLGlzTmFOKHYpJiZ2LmVuZClyZXR1cm4hMX0pLHYpfW1vY2tQYXJlbnQoKXtjb25zdCBsPXRoaXMubW9ja05vZGUoKTtyZXR1cm4gbC5fX2NoaWxkcmVuPXRoaXMuZGF0YSxsfW1vY2tOb2RlKCl7Y29uc3QgbD17fTtyZXR1cm4gcXModGhpcy5kYXRhWzBdLChhLGQpPT57bFtkXT1u'@; put 'dWxsfSksbH1nZXRSb3dJbmRleChsKXtyZXR1cm4gbnVsbD09bD9udWxsOnRoaXMuY2FjaGUubm9kZUluZm8uZ2V0KGwpLnJvd31nZXRSb3dJbmRleFdpdGhpblBhcmVudChsKXtsZXQgYT1udWxsO2E9aXNOYU4obCk/bDp0aGlzLmdldERhdGFPYmplY3QobCk7Y29uc3QgZD10aGlzLmdldFJv'@; put 'd1BhcmVudChsKTtyZXR1cm4gbnVsbD09ZD90aGlzLmRhdGEuaW5kZXhPZihhKTpkLl9fY2hpbGRyZW4uaW5kZXhPZihhKX1jb3VudEFsbFJvd3MoKXtyZXR1cm4gdGhpcy5jb3VudENoaWxkcmVuKHtfX2NoaWxkcmVuOnRoaXMuZGF0YX0pfWNvdW50Q2hpbGRyZW4obCl7bGV0IGE9MCxkPWw7'@; put 'cmV0dXJuIGlzTmFOKGQpfHwoZD10aGlzLmdldERhdGFPYmplY3QoZCkpLGQmJmQuX19jaGlsZHJlbj8oS24oZC5fX2NoaWxkcmVuLGg9PnthKz0xLGguX19jaGlsZHJlbiYmKGErPXRoaXMuY291bnRDaGlsZHJlbihoKSl9KSxhKTowfWdldFJvd1BhcmVudChsKXtsZXQgYTtyZXR1cm4gYT1p'@; put 'c05hTihsKT9sOnRoaXMuZ2V0RGF0YU9iamVjdChsKSx0aGlzLmdldFJvd09iamVjdFBhcmVudChhKX1nZXRSb3dPYmplY3RQYXJlbnQobCl7cmV0dXJuIGwmJiJvYmplY3QiPT10eXBlb2YgbD90aGlzLmNhY2hlLm5vZGVJbmZvLmdldChsKS5wYXJlbnQ6bnVsbH1nZXRSb3dMZXZlbChsKXts'@; put 'ZXQgYT1udWxsO3JldHVybiBhPWlzTmFOKGwpP2w6dGhpcy5nZXREYXRhT2JqZWN0KGwpLGE/dGhpcy5nZXRSb3dPYmplY3RMZXZlbChhKTpudWxsfWdldFJvd09iamVjdExldmVsKGwpe3JldHVybiBudWxsPT1sP251bGw6dGhpcy5jYWNoZS5ub2RlSW5mby5nZXQobCkubGV2ZWx9aGFzQ2hp'@; put 'bGRyZW4obCl7bGV0IGE9bDtyZXR1cm4gaXNOYU4oYSl8fChhPXRoaXMuZ2V0RGF0YU9iamVjdChhKSksISghYS5fX2NoaWxkcmVufHwhYS5fX2NoaWxkcmVuLmxlbmd0aCl9aXNDaGlsZChsKXtyZXR1cm4gbnVsbCE9PXRoaXMuZ2V0Um93UGFyZW50KGwpfWdldENoaWxkKGwsYSl7dmFyIGQ7'@; put 'cmV0dXJuKG51bGw9PT0oZD1sLl9fY2hpbGRyZW4pfHx2b2lkIDA9PT1kP3ZvaWQgMDpkW2FdKXx8bnVsbH1pc1Jvd0hpZ2hlc3RMZXZlbChsKXtyZXR1cm4hdGhpcy5pc0NoaWxkKGwpfWlzUGFyZW50KGwpe3ZhciBhO2xldCBkPWw7cmV0dXJuIGlzTmFOKGQpfHwoZD10aGlzLmdldERhdGFP'@; put 'YmplY3QoZCkpLGQmJiEhZC5fX2NoaWxkcmVuJiYwIT09KG51bGw9PT0oYT1kLl9fY2hpbGRyZW4pfHx2b2lkIDA9PT1hP3ZvaWQgMDphLmxlbmd0aCl9YWRkQ2hpbGQobCxhKXtsZXQgZD1hO3RoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVBZGRDaGlsZCIsbCxkKTtsZXQgaD1udWxsO2wmJiho'@; put 'PXRoaXMuZ2V0Um93SW5kZXgobCkpLHRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVDcmVhdGVSb3ciLGgrdGhpcy5jb3VudENoaWxkcmVuKGwpKzEsMSk7bGV0IGY9bDtsfHwoZj10aGlzLm1vY2tQYXJlbnQoKSksZi5fX2NoaWxkcmVufHwoZi5fX2NoaWxkcmVuPVtdKSxkfHwoZD10aGlzLm1v'@; put 'Y2tOb2RlKCkpLGYuX19jaGlsZHJlbi5wdXNoKGQpLHRoaXMucmV3cml0ZUNhY2hlKCk7Y29uc3Qgdj10aGlzLmdldFJvd0luZGV4KGQpO3RoaXMuaG90LnJvd0luZGV4TWFwcGVyLmluc2VydEluZGV4ZXModiwxKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJDcmVhdGVSb3ciLHYsMSksdGhp'@; put 'cy5ob3QucnVuSG9va3MoImFmdGVyQWRkQ2hpbGQiLGwsZCl9YWRkQ2hpbGRBdEluZGV4KGwsYSxkKXtsZXQgZixoPWQ7aWYoaHx8KGg9dGhpcy5tb2NrTm9kZSgpKSx0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlQWRkQ2hpbGQiLGwsaCxhKSxsKXtjb25zdCBNPXRoaXMuZ2V0Um93SW5kZXgo'@; put 'bCkrYSsxO3RoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVDcmVhdGVSb3ciLE0sMSksbC5fX2NoaWxkcmVuLnNwbGljZShhLG51bGwsaCksdGhpcy5yZXdyaXRlQ2FjaGUoKSx0aGlzLnBsdWdpbi5kaXNhYmxlQ29yZUFQSU1vZGlmaWVycygpLHRoaXMuaG90LnNldFNvdXJjZURhdGFBdENlbGwo'@; put 'dGhpcy5nZXRSb3dJbmRleFdpdGhpblBhcmVudChsKSwiX19jaGlsZHJlbiIsbC5fX2NoaWxkcmVuLCJOZXN0ZWRSb3dzLmFkZENoaWxkQXRJbmRleCIpLHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLmluc2VydEluZGV4ZXMoTSwxKSx0aGlzLnBsdWdpbi5lbmFibGVDb3JlQVBJTW9kaWZpZXJz'@; put 'KCksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyQ3JlYXRlUm93IixNLDEpLGY9TX1lbHNlIHRoaXMucGx1Z2luLmRpc2FibGVDb3JlQVBJTW9kaWZpZXJzKCksdGhpcy5ob3QuYWx0ZXIoImluc2VydF9yb3dfYWJvdmUiLGEsMSwiTmVzdGVkUm93cy5hZGRDaGlsZEF0SW5kZXgiKSx0aGlzLnBs'@; put 'dWdpbi5lbmFibGVDb3JlQVBJTW9kaWZpZXJzKCksZj10aGlzLmdldFJvd0luZGV4KHRoaXMuZGF0YVthXSk7aD10aGlzLmdldERhdGFPYmplY3QoZiksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyQWRkQ2hpbGQiLGwsaCxhKX1hZGRTaWJsaW5nKGwpe2xldCBhPWFyZ3VtZW50cy5sZW5ndGg+'@; put 'MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToiYmVsb3ciO2NvbnN0IGQ9dGhpcy50cmFuc2xhdGVUcmltbWVkUm93KGwpLGg9dGhpcy5nZXRSb3dQYXJlbnQoZCksZj10aGlzLmdldFJvd0luZGV4V2l0aGluUGFyZW50KGQpO3N3aXRjaChhKXtjYXNlImJlbG93Ijp0aGlz'@; put 'LmFkZENoaWxkQXRJbmRleChoLGYrMSxudWxsKTticmVhaztjYXNlImFib3ZlIjp0aGlzLmFkZENoaWxkQXRJbmRleChoLGYsbnVsbCl9fWRldGFjaEZyb21QYXJlbnQobCl7bGV0IGE9IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXSxk'@; put 'PW51bGw7Y29uc3QgaD1bXTtBcnJheS5pc0FycmF5KGwpPyhLYShsWzBdLGxbMl0seWU9Pntjb25zdCBFZT10aGlzLnRyYW5zbGF0ZVRyaW1tZWRSb3coeWUpO2gucHVzaCh0aGlzLmdldERhdGFPYmplY3QoRWUpKX0pLEthKDAsaC5sZW5ndGgtMix5ZT0+e3RoaXMuZGV0YWNoRnJvbVBhcmVu'@; put 'dChoW3llXSwhMSl9KSxkPWhbaC5sZW5ndGgtMV0pOmQ9bDtjb25zdCBmPXRoaXMuZ2V0Um93SW5kZXgoZCksdj10aGlzLmNvdW50Q2hpbGRyZW4oZCksTT10aGlzLmdldFJvd0luZGV4V2l0aGluUGFyZW50KGQpLEk9dGhpcy5nZXRSb3dQYXJlbnQoZCksRz10aGlzLmdldFJvd1BhcmVudChJ'@; put 'KSxyZT10aGlzLmdldFJvd0luZGV4KEcpO2xldCB1ZT1udWxsO2lmKHRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVEZXRhY2hDaGlsZCIsSSxkKSxudWxsIT1NKXtjb25zdCB5ZT1BcnJheS5mcm9tKG5ldyBBcnJheShmK3YrMSkua2V5cygpKS5zcGxpY2UoLTEqKHYrMSkpO2lmKHRoaXMuaG90'@; put 'LnJ1bkhvb2tzKCJiZWZvcmVSZW1vdmVSb3ciLGYsdisxLHllLHRoaXMucGx1Z2luLnBsdWdpbk5hbWUpLEkuX19jaGlsZHJlbi5zcGxpY2UoTSwxKSx0aGlzLnJld3JpdGVDYWNoZSgpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlclJlbW92ZVJvdyIsZix2KzEseWUsdGhpcy5wbHVnaW4ucGx1'@; put 'Z2luTmFtZSksRyl7dWU9cmUrdGhpcy5jb3VudENoaWxkcmVuKEcpO2NvbnN0IEVlPXRoaXMuZ2V0Q2hpbGQoRyx0aGlzLmNvdW50Q2hpbGRyZW4oRyktMSksQmU9dGhpcy5nZXRSb3dJbmRleChFZSk7dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUNyZWF0ZVJvdyIsQmUrMSx2KzEsdGhpcy5w'@; put 'bHVnaW4ucGx1Z2luTmFtZSksRy5fX2NoaWxkcmVuLnB1c2goZCl9ZWxzZSB1ZT10aGlzLmhvdC5jb3VudFJvd3MoKSsxLHRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVDcmVhdGVSb3ciLHVlLTIsdisxLHRoaXMucGx1Z2luLnBsdWdpbk5hbWUpLHRoaXMuZGF0YS5wdXNoKGQpfXRoaXMucmV3'@; put 'cml0ZUNhY2hlKCksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyQ3JlYXRlUm93Iix1ZS0yLHYrMSx0aGlzLnBsdWdpbi5wbHVnaW5OYW1lKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJEZXRhY2hDaGlsZCIsSSxkLHRoaXMuZ2V0Um93SW5kZXgoZCkpLGEmJnRoaXMuaG90LnJlbmRlcigpfWZp'@; put 'bHRlckRhdGEobCxhLGQpe2NvbnN0IGg9W107S24oZCxmPT57aC5wdXNoKHRoaXMuZ2V0RGF0YU9iamVjdChmKSl9KSxLbihoLGY9Pntjb25zdCB2PXRoaXMuZ2V0Um93SW5kZXhXaXRoaW5QYXJlbnQoZiksTT10aGlzLmdldFJvd1BhcmVudChmKTtudWxsPT09TT90aGlzLmRhdGEuc3BsaWNl'@; put 'KHYsMSk6TS5fX2NoaWxkcmVuLnNwbGljZSh2LDEpfSksdGhpcy5yZXdyaXRlQ2FjaGUoKX1zcGxpY2VEYXRhKGwsYSxkKXtjb25zdCBoPXRoaXMuZ2V0RGF0YU9iamVjdChsLTEpO2xldCBmPW51bGwsdj1sO2gmJmguX19jaGlsZHJlbiYmMD09PWguX19jaGlsZHJlbi5sZW5ndGg/KGY9aCx2'@; put 'PTApOmw8dGhpcy5jb3VudEFsbFJvd3MoKSYmKGY9dGhpcy5nZXRSb3dQYXJlbnQobCksdj10aGlzLmdldFJvd0luZGV4V2l0aGluUGFyZW50KGwpKSxmP2Q/Zi5fX2NoaWxkcmVuLnNwbGljZSh2LGEsLi4uZCk6Zi5fX2NoaWxkcmVuLnNwbGljZSh2LGEpOmQ/dGhpcy5kYXRhLnNwbGljZSh2'@; put 'LGEsLi4uZCk6dGhpcy5kYXRhLnNwbGljZSh2LGEpLHRoaXMucmV3cml0ZUNhY2hlKCl9c3luY1Jvd1dpdGhSYXdTb3VyY2UobCl7bGV0IGE9bCxkPWE7ZG97ZD10aGlzLmdldFJvd1BhcmVudChkKSxudWxsIT09ZCYmKGE9ZCl9d2hpbGUobnVsbCE9PWQpO3RoaXMucGx1Z2luLmRpc2FibGVD'@; put 'b3JlQVBJTW9kaWZpZXJzKCksdGhpcy5ob3Quc2V0U291cmNlRGF0YUF0Q2VsbCh0aGlzLmdldFJvd0luZGV4V2l0aGluUGFyZW50KGEpLCJfX2NoaWxkcmVuIixhLl9fY2hpbGRyZW4sIk5lc3RlZFJvd3Muc3luY1Jvd1dpdGhSYXdTb3VyY2UiKSx0aGlzLnBsdWdpbi5lbmFibGVDb3JlQVBJ'@; put 'TW9kaWZpZXJzKCl9bW92ZVJvdyhsLGEsZCxoKXtjb25zdCBmPWE9PT10aGlzLmhvdC5jb3VudFJvd3MoKSx2PXRoaXMuZ2V0Um93UGFyZW50KGwpLE09dGhpcy5nZXRSb3dJbmRleFdpdGhpblBhcmVudChsKSxJPXYuX19jaGlsZHJlbi5zbGljZShNLE0rMSksRz1sPmE7bGV0IHJlPXRoaXMu'@; put 'Z2V0Um93UGFyZW50KGY/YS0xOmEpO251bGw9PXJlJiYocmU9dGhpcy5nZXRSb3dQYXJlbnQoYS0xKSksbnVsbD09cmUmJihyZT10aGlzLmdldERhdGFPYmplY3QoYS0xKSkscmU/cmUuX19jaGlsZHJlbnx8KHJlLl9fY2hpbGRyZW49W10pOihyZT10aGlzLmdldERhdGFPYmplY3QoYSkscmUu'@; put 'X19jaGlsZHJlbj1bXSk7Y29uc3QgdWU9Znx8ZHx8aD9yZS5fX2NoaWxkcmVuLmxlbmd0aDp0aGlzLmdldFJvd0luZGV4V2l0aGluUGFyZW50KGEpLHllPXY9PT1yZTtyZS5fX2NoaWxkcmVuLnNwbGljZSh1ZSwwLElbMF0pLHYuX19jaGlsZHJlbi5zcGxpY2UoTSsoRyYmeWU/MTowKSwxKSx0'@; put 'aGlzLnN5bmNSb3dXaXRoUmF3U291cmNlKHYpLHllfHx0aGlzLnN5bmNSb3dXaXRoUmF3U291cmNlKHJlKX10cmFuc2xhdGVUcmltbWVkUm93KGwpe3JldHVybiB0aGlzLnBsdWdpbi5jb2xsYXBzaW5nVUk/dGhpcy5wbHVnaW4uY29sbGFwc2luZ1VJLnRyYW5zbGF0ZVRyaW1tZWRSb3cobCk6'@; put 'bH11bnRyYW5zbGF0ZVRyaW1tZWRSb3cobCl7cmV0dXJuIHRoaXMucGx1Z2luLmNvbGxhcHNpbmdVST90aGlzLnBsdWdpbi5jb2xsYXBzaW5nVUkudW50cmFuc2xhdGVUcmltbWVkUm93KGwpOmx9fTtmdW5jdGlvbiBsNmUoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIGFndChjKXt2YXIgbD1m'@; put 'dW5jdGlvbiBzZ3QoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcg'@; put 'VHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVBy'@; put 'b3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWNvbnN0IHBlZT1jbGFzcyBvZ3R7Y29uc3RydWN0b3IobCxhKXtsNmUodGhpcywiaG90Iix2b2lkIDApLGw2ZSh0aGlzLCJwbHVnaW4iLHZvaWQgMCksdGhpcy5o'@; put 'b3Q9YSx0aGlzLnBsdWdpbj1sfX07Y2xhc3MgV2cgZXh0ZW5kcyBwZWV7c3RhdGljIGdldCBDU1NfQ0xBU1NFUygpe3JldHVybntpbmRpY2F0b3JDb250YWluZXI6Imh0X25lc3RpbmdMZXZlbHMiLHBhcmVudDoiaHRfbmVzdGluZ1BhcmVudCIsaW5kaWNhdG9yOiJodF9uZXN0aW5nTGV2ZWwi'@; put 'LGVtcHR5SW5kaWNhdG9yOiJodF9uZXN0aW5nTGV2ZWxfZW1wdHkiLGJ1dHRvbjoiaHRfbmVzdGluZ0J1dHRvbiIsZXhwYW5kQnV0dG9uOiJodF9uZXN0aW5nRXhwYW5kIixjb2xsYXBzZUJ1dHRvbjoiaHRfbmVzdGluZ0NvbGxhcHNlIn19Y29uc3RydWN0b3IobCxhKXtzdXBlcihsLGEpLHRo'@; put 'aXMuZGF0YU1hbmFnZXI9dGhpcy5wbHVnaW4uZGF0YU1hbmFnZXIsdGhpcy5jb2xsYXBzaW5nVUk9dGhpcy5wbHVnaW4uY29sbGFwc2luZ1VJLHRoaXMucm93SGVhZGVyV2lkdGhDYWNoZT1udWxsfWFwcGVuZExldmVsSW5kaWNhdG9ycyhsLGEpe2NvbnN0IGQ9dGhpcy5ob3QudG9QaHlzaWNh'@; put 'bFJvdyhsKSxoPXRoaXMuZGF0YU1hbmFnZXIuZ2V0Um93TGV2ZWwoZCksZj10aGlzLmRhdGFNYW5hZ2VyLmdldERhdGFPYmplY3QoZCksdj1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJESVYiKVswXSxNPXYucXVlcnlTZWxlY3Rvcigic3Bhbi5yb3dIZWFkZXIiKSxJPXYucXVlcnlTZWxlY3Rv'@; put 'ckFsbCgnW2NsYXNzXj0iaHRfbmVzdGluZyJdJyksRz10aGlzLmhvdC5nZXRTZXR0aW5ncygpLmFyaWFUYWdzO2lmKEtuKEkscmU9PntyZSYmdi5yZW1vdmVDaGlsZChyZSl9KSxFaShhLFdnLkNTU19DTEFTU0VTLmluZGljYXRvckNvbnRhaW5lciksaCl7Y29uc3R7cm9vdERvY3VtZW50OnJl'@; put 'fT10aGlzLmhvdCx1ZT1NLmNsb25lTm9kZSghMCk7di5pbm5lckhUTUw9IiIsS2EoMCxoLTEsKCk9Pntjb25zdCB5ZT1yZS5jcmVhdGVFbGVtZW50KCJTUEFOIik7RWkoeWUsV2cuQ1NTX0NMQVNTRVMuZW1wdHlJbmRpY2F0b3IpLHYuYXBwZW5kQ2hpbGQoeWUpfSksdi5hcHBlbmRDaGlsZCh1'@; put 'ZSl9aWYodGhpcy5kYXRhTWFuYWdlci5oYXNDaGlsZHJlbihmKSl7Y29uc3QgcmU9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpO0cmJm1zKHJlLFtONygpXSksRWkoYSxXZy5DU1NfQ0xBU1NFUy5wYXJlbnQpLHRoaXMuY29sbGFwc2luZ1VJLmFyZUNoaWxkcmVu'@; put 'Q29sbGFwc2VkKGQpPyhFaShyZSxgJHtXZy5DU1NfQ0xBU1NFUy5idXR0b259ICR7V2cuQ1NTX0NMQVNTRVMuZXhwYW5kQnV0dG9ufWApLEcmJm1zKGEsW0IyKCExKV0pKTooRWkocmUsYCR7V2cuQ1NTX0NMQVNTRVMuYnV0dG9ufSAke1dnLkNTU19DTEFTU0VTLmNvbGxhcHNlQnV0dG9ufWAp'@; put 'LEcmJm1zKGEsW0IyKCEwKV0pKSx2LmFwcGVuZENoaWxkKHJlKX19dXBkYXRlUm93SGVhZGVyV2lkdGgobCl7bGV0IGE9bDthfHwoYT10aGlzLmRhdGFNYW5hZ2VyLmNhY2hlLmxldmVsQ291bnQpO2xldCBkPTExO3RoaXMuaG90LnN0eWxlc0hhbmRsZXIuaXNDbGFzc2ljVGhlbWUoKXx8KGQ9'@; put 'Mip0aGlzLmhvdC5zdHlsZXNIYW5kbGVyLmdldENTU1ZhcmlhYmxlVmFsdWUoImNlbGwtaG9yaXpvbnRhbC1wYWRkaW5nIikpLHRoaXMucm93SGVhZGVyV2lkdGhDYWNoZT1NYXRoLm1heCg1MCxkKzEwKmErMjUpLHRoaXMuaG90LnJlbmRlcigpfX1jb25zdCBjNmU9V2csY2d0PWNsYXNzIGxn'@; put 'dCBleHRlbmRzIHBlZXtjb25zdHJ1Y3RvcihsLGEpe3ZhciBkO3N1cGVyKGwsYSksZD10aGlzLHRoaXMuZGF0YU1hbmFnZXI9dGhpcy5wbHVnaW4uZGF0YU1hbmFnZXIsdGhpcy5jb2xsYXBzZWRSb3dzPVtdLHRoaXMuY29sbGFwc2VkUm93c1N0YXNoPXtzdGFzaDpmdW5jdGlvbigpe2xldCBo'@; put 'PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07ZC5sYXN0Q29sbGFwc2VkUm93cz1kLmNvbGxhcHNlZFJvd3Muc2xpY2UoMCksZC5leHBhbmRNdWx0aXBsZUNoaWxkcmVuKGQubGFzdENvbGxhcHNlZFJvd3MsaCl9LHNoaWZ0U3Rhc2g6ZnVu'@; put 'Y3Rpb24oaCxmKXtsZXQgdj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MTtudWxsPT1mJiYoZj0xLzApLEtuKGQubGFzdENvbGxhcHNlZFJvd3MsKE0sSSk9PntNPj1oJiZNPGYmJihkLmxhc3RDb2xsYXBzZWRSb3dzW0ldPU0rdil9KX0s'@; put 'YXBwbHlTdGFzaDpmdW5jdGlvbigpe2QuY29sbGFwc2VNdWx0aXBsZUNoaWxkcmVuKGQubGFzdENvbGxhcHNlZFJvd3MsIShhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSl8fGFyZ3VtZW50c1swXSksZC5sYXN0Q29sbGFwc2VkUm93cz12b2lkIDB9LHRyaW1TdGFz'@; put 'aDooaCxmKT0+e0thKGgsaCtmLTEsdj0+e2NvbnN0IE09dGhpcy5sYXN0Q29sbGFwc2VkUm93cy5pbmRleE9mKHYpO00+LTEmJnRoaXMubGFzdENvbGxhcHNlZFJvd3Muc3BsaWNlKE0sMSl9KX19fWNvbGxhcHNlQ2hpbGRyZW4obCl7bGV0IGE9IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQg'@; put 'MCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXSxkPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl07Y29uc3QgaD1bXTtsZXQgZj1udWxsLHY9bnVsbCxNPW51bGw7cmV0dXJuIGlzTmFOKGwpPyhmPWwsdj10aGlzLmRhdGFNYW5h'@; put 'Z2VyLmdldFJvd0luZGV4KGYpKTooZj10aGlzLmRhdGFNYW5hZ2VyLmdldERhdGFPYmplY3QobCksdj1sKSx0aGlzLmRhdGFNYW5hZ2VyLmhhc0NoaWxkcmVuKGYpJiZLbihmLl9fY2hpbGRyZW4sST0+e2gucHVzaCh0aGlzLmRhdGFNYW5hZ2VyLmdldFJvd0luZGV4KEkpKX0pLE09dGhpcy5j'@; put 'b2xsYXBzZVJvd3MoaCwhMCwhMSksZCYmdGhpcy50cmltUm93cyhNKSxhJiZ0aGlzLnJlbmRlckFuZEFkanVzdCgpLC0xPT09dGhpcy5jb2xsYXBzZWRSb3dzLmluZGV4T2YodikmJnRoaXMuY29sbGFwc2VkUm93cy5wdXNoKHYpLE19Y29sbGFwc2VNdWx0aXBsZUNoaWxkcmVuKGwpe2xldCBh'@; put 'PSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV0sZD0hKGFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdO2NvbnN0IGg9W107S24obCxmPT57aC5wdXNoKC4uLnRoaXMuY29sbGFwc2VD'@; put 'aGlsZHJlbihmLCExLCExKSl9KSxkJiZ0aGlzLnRyaW1Sb3dzKGgpLGEmJnRoaXMucmVuZGVyQW5kQWRqdXN0KCl9Y29sbGFwc2VSb3cobCl7dGhpcy5jb2xsYXBzZVJvd3MoW2xdLCEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV0pfWNv'@; put 'bGxhcHNlUm93cyhsKXtsZXQgYT0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdLGQ9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXTtjb25zdCBoPVtdO3JldHVybiBLbihsLGY9Pnto'@; put 'LnB1c2goZiksYSYmdGhpcy5jb2xsYXBzZUNoaWxkUm93cyhmLGgpfSksZCYmdGhpcy50cmltUm93cyhoKSxofWNvbGxhcHNlQ2hpbGRSb3dzKGwpe2xldCBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpbXSxoPWFyZ3VtZW50cy5sZW5n'@; put 'dGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdJiZhcmd1bWVudHNbM107dGhpcy5kYXRhTWFuYWdlci5oYXNDaGlsZHJlbihsKSYmS24odGhpcy5kYXRhTWFuYWdlci5nZXREYXRhT2JqZWN0KGwpLl9fY2hpbGRyZW4sdj0+e2NvbnN0IE09dGhpcy5kYXRhTWFuYWdlci5nZXRSb3dJbmRleCh2'@; put 'KTthLnB1c2goTSksdGhpcy5jb2xsYXBzZUNoaWxkUm93cyhNLGEpfSksaCYmdGhpcy50cmltUm93cyhhKX1leHBhbmRSb3cobCl7dGhpcy5leHBhbmRSb3dzKFtsXSwhKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdKX1leHBhbmRSb3dz'@; put 'KGwpe2xldCBhPSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV0sZD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdO2NvbnN0IGg9W107cmV0dXJuIEtuKGwsZj0+e2gucHVzaChmKSxh'@; put 'JiZ0aGlzLmV4cGFuZENoaWxkUm93cyhmLGgpfSksZCYmdGhpcy51bnRyaW1Sb3dzKGgpLGh9ZXhwYW5kQ2hpbGRSb3dzKGwpe2xldCBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpbXSxoPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAw'@; put 'IT09YXJndW1lbnRzWzNdJiZhcmd1bWVudHNbM107dGhpcy5kYXRhTWFuYWdlci5oYXNDaGlsZHJlbihsKSYmS24odGhpcy5kYXRhTWFuYWdlci5nZXREYXRhT2JqZWN0KGwpLl9fY2hpbGRyZW4sdj0+e2lmKCF0aGlzLmlzQW55UGFyZW50Q29sbGFwc2VkKHYpKXtjb25zdCBNPXRoaXMuZGF0'@; put 'YU1hbmFnZXIuZ2V0Um93SW5kZXgodik7YS5wdXNoKE0pLHRoaXMuZXhwYW5kQ2hpbGRSb3dzKE0sYSl9fSksaCYmdGhpcy51bnRyaW1Sb3dzKGEpfWV4cGFuZENoaWxkcmVuKGwpe2xldCBhPSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNb'@; put 'MV0sZD0hKGFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdO2NvbnN0IGg9W107bGV0IGY9bnVsbCx2PW51bGwsTT1udWxsO3JldHVybiBpc05hTihsKT8oZj1sLHY9dGhpcy5kYXRhTWFuYWdlci5nZXRSb3dJbmRleChsKSk6KGY9dGhpcy5k'@; put 'YXRhTWFuYWdlci5nZXREYXRhT2JqZWN0KGwpLHY9bCksdGhpcy5jb2xsYXBzZWRSb3dzLnNwbGljZSh0aGlzLmNvbGxhcHNlZFJvd3MuaW5kZXhPZih2KSwxKSx0aGlzLmRhdGFNYW5hZ2VyLmhhc0NoaWxkcmVuKGYpJiZLbihmLl9fY2hpbGRyZW4sST0+e2NvbnN0IEc9dGhpcy5kYXRhTWFu'@; put 'YWdlci5nZXRSb3dJbmRleChJKTtoLnB1c2goRyl9KSxNPXRoaXMuZXhwYW5kUm93cyhoLCEwLCExKSxkJiZ0aGlzLnVudHJpbVJvd3MoTSksYSYmdGhpcy5yZW5kZXJBbmRBZGp1c3QoKSxNfWV4cGFuZE11bHRpcGxlQ2hpbGRyZW4obCl7bGV0IGE9IShhcmd1bWVudHMubGVuZ3RoPjEmJnZv'@; put 'aWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXSxkPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl07Y29uc3QgaD1bXTtLbihsLGY9PntoLnB1c2goLi4udGhpcy5leHBhbmRDaGlsZHJlbihmLCExLCExKSl9KSxkJiZ0aGlz'@; put 'LnVudHJpbVJvd3MoaCksYSYmdGhpcy5yZW5kZXJBbmRBZGp1c3QoKX1jb2xsYXBzZUFsbCgpe2NvbnN0IGw9dGhpcy5kYXRhTWFuYWdlci5nZXREYXRhKCksYT1bXTtLbihsLGQ9Pnt0aGlzLmRhdGFNYW5hZ2VyLmhhc0NoaWxkcmVuKGQpJiZhLnB1c2goZCl9KSx0aGlzLmNvbGxhcHNlTXVs'@; put 'dGlwbGVDaGlsZHJlbihhKSx0aGlzLnJlbmRlckFuZEFkanVzdCgpfWV4cGFuZEFsbCgpe2NvbnN0IGw9dGhpcy5kYXRhTWFuYWdlci5nZXREYXRhKCksYT1bXTtLbihsLGQ9Pnt0aGlzLmRhdGFNYW5hZ2VyLmhhc0NoaWxkcmVuKGQpJiZhLnB1c2goZCl9KSx0aGlzLmV4cGFuZE11bHRpcGxl'@; put 'Q2hpbGRyZW4oYSksdGhpcy5yZW5kZXJBbmRBZGp1c3QoKX10cmltUm93cyhsKXt0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbigoKT0+e0tuKGwsYT0+e3RoaXMucGx1Z2luLmNvbGxhcHNlZFJvd3NNYXAuc2V0VmFsdWVBdEluZGV4KGEsITApfSl9LCEwKX11bnRyaW1Sb3dzKGwpe3RoaXMuaG90'@; put 'LmJhdGNoRXhlY3V0aW9uKCgpPT57S24obCxhPT57dGhpcy5wbHVnaW4uY29sbGFwc2VkUm93c01hcC5zZXRWYWx1ZUF0SW5kZXgoYSwhMSl9KX0sITApfWFyZUNoaWxkcmVuQ29sbGFwc2VkKGwpe2xldCBhPWlzTmFOKGwpP2w6dGhpcy5kYXRhTWFuYWdlci5nZXREYXRhT2JqZWN0KGwpLGQ9'@; put 'ITA7cmV0dXJuIG51bGw9PT1hJiYoYT17X19jaGlsZHJlbjp0aGlzLmRhdGFNYW5hZ2VyLmRhdGF9KSx0aGlzLmRhdGFNYW5hZ2VyLmhhc0NoaWxkcmVuKGEpJiZLbihhLl9fY2hpbGRyZW4saD0+e2NvbnN0IGY9dGhpcy5kYXRhTWFuYWdlci5nZXRSb3dJbmRleChoKTtpZighdGhpcy5wbHVn'@; put 'aW4uY29sbGFwc2VkUm93c01hcC5nZXRWYWx1ZUF0SW5kZXgoZikpcmV0dXJuIGQ9ITEsITF9KSxkfWlzQW55UGFyZW50Q29sbGFwc2VkKGwpe2xldCBhPWw7Zm9yKDtudWxsIT09YTspe2E9dGhpcy5kYXRhTWFuYWdlci5nZXRSb3dQYXJlbnQoYSk7Y29uc3QgZD10aGlzLmRhdGFNYW5hZ2Vy'@; put 'LmdldFJvd0luZGV4KGEpO2lmKHRoaXMuY29sbGFwc2VkUm93cy5pbmRleE9mKGQpPi0xKXJldHVybiEwfXJldHVybiExfXRvZ2dsZVN0YXRlKGwsYSl7aWYoYS5jb2w+PTApcmV0dXJuO2NvbnN0IGQ9dGhpcy50cmFuc2xhdGVUcmltbWVkUm93KGEucm93KTtncyhsLnRhcmdldCxjNmUuQ1NT'@; put 'X0NMQVNTRVMuYnV0dG9uKSYmKHRoaXMuYXJlQ2hpbGRyZW5Db2xsYXBzZWQoZCk/dGhpcy5leHBhbmRDaGlsZHJlbihkKTp0aGlzLmNvbGxhcHNlQ2hpbGRyZW4oZCksejIobCkpfXRyYW5zbGF0ZVRyaW1tZWRSb3cobCl7cmV0dXJuIHRoaXMuaG90LnRvUGh5c2ljYWxSb3cobCl9dW50cmFu'@; put 'c2xhdGVUcmltbWVkUm93KGwpe3JldHVybiB0aGlzLmhvdC50b1Zpc3VhbFJvdyhsKX1yZW5kZXJBbmRBZGp1c3QoKXt0aGlzLmhvdC5yZW5kZXIoKSx0aGlzLmhvdC52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSgpfX07dmFyIHU2ZT1uZXcgV2Vha01hcDtjb25zdCB5Z3Q9Y2xhc3Mgdmd0IGV4'@; put 'dGVuZHMgcGVle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSxmdW5jdGlvbiBoZ3QoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIGZndChjKXt2YXIgbD1mdW5jdGlvbiBwZ3QoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRv'@; put 'UHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3Ry'@; put 'aW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09'@; put 'YSxjfSh0aGlzLCJkYXRhTWFuYWdlciIsdGhpcy5wbHVnaW4uZGF0YU1hbmFnZXIpLGZ1bmN0aW9uIHVndChjLGwsYSl7KGZ1bmN0aW9uIGRndChjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMg'@; put 'dHdpY2Ugb24gYW4gb2JqZWN0Iil9KShjLGwpLGwuc2V0KGMsYSl9KHRoaXMsdTZlLHtyb3dfYWJvdmU6KGwsYSk9Pnt0aGlzLmRhdGFNYW5hZ2VyLmFkZFNpYmxpbmcoYVthLmxlbmd0aC0xXS5zdGFydC5yb3csImFib3ZlIil9LHJvd19iZWxvdzoobCxhKT0+e3RoaXMuZGF0YU1hbmFnZXIu'@; put 'YWRkU2libGluZyhhW2EubGVuZ3RoLTFdLnN0YXJ0LnJvdywiYmVsb3ciKX19KX1hcHBlbmRPcHRpb25zKGwpe2NvbnN0IGE9W3trZXk6ImFkZF9jaGlsZCIsbmFtZSgpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoRFgpfSxjYWxsYmFjazooKT0+e2NvbnN0IGQ9dGhpcy5kYXRh'@; put 'TWFuYWdlci50cmFuc2xhdGVUcmltbWVkUm93KHRoaXMuaG90LmdldFNlbGVjdGVkTGFzdCgpWzBdKSxoPXRoaXMuZGF0YU1hbmFnZXIuZ2V0RGF0YU9iamVjdChkKTt0aGlzLmRhdGFNYW5hZ2VyLmFkZENoaWxkKGgpfSxkaXNhYmxlZDooKT0+e2NvbnN0IGQ9dGhpcy5ob3QuZ2V0U2VsZWN0'@; put 'ZWRMYXN0KCk7cmV0dXJuIWR8fGRbMF08MHx8dGhpcy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigpfHx0aGlzLmhvdC5jb3VudFJvd3MoKT49dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5tYXhSb3dzfX0se2tleToiZGV0YWNoX2Zyb21fcGFyZW50IixuYW1lKCl7cmV0'@; put 'dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShJWCl9LGNhbGxiYWNrOigpPT57dGhpcy5kYXRhTWFuYWdlci5kZXRhY2hGcm9tUGFyZW50KHRoaXMuaG90LmdldFNlbGVjdGVkTGFzdCgpKX0sZGlzYWJsZWQ6KCk9Pntjb25zdCBkPXRoaXMuaG90LmdldFNlbGVjdGVkTGFzdCgpLGg9dGhp'@; put 'cy5kYXRhTWFuYWdlci50cmFuc2xhdGVUcmltbWVkUm93KGRbMF0pO3JldHVybiF0aGlzLmRhdGFNYW5hZ2VyLmdldFJvd1BhcmVudChoKXx8IWR8fGRbMF08MHx8dGhpcy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigpfHx0aGlzLmhvdC5jb3VudFJvd3MoKT49dGhp'@; put 'cy5ob3QuZ2V0U2V0dGluZ3MoKS5tYXhSb3dzfX0se25hbWU6Ii0tLS0tLS0tLSJ9XTtyZXR1cm4gS2EoMCxsLml0ZW1zLmxlbmd0aC0xLGQ9PntpZigwPT09ZClyZXR1cm4gS24oYSwoaCxmKT0+e2wuaXRlbXMuc3BsaWNlKGQrZiwwLGgpfSksITF9KSx0aGlzLm1vZGlmeVJvd0luc2VydGlu'@; put 'Z09wdGlvbnMobCl9bW9kaWZ5Um93SW5zZXJ0aW5nT3B0aW9ucyhsKXtyZXR1cm4gS2EoMCxsLml0ZW1zLmxlbmd0aC0xLGE9Pntjb25zdCBkPWZ1bmN0aW9uIGdndChjLGwpe3JldHVybiBjLmdldChmdW5jdGlvbiBtZ3QoYyxsLGEpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBjP2M9PT1sOmMu'@; put 'aGFzKGwpKXJldHVybiBhcmd1bWVudHMubGVuZ3RoPDM/bDphO3Rocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgZWxlbWVudCBpcyBub3QgcHJlc2VudCBvbiB0aGlzIG9iamVjdCIpfShjLGwpKX0odTZlLHRoaXMpW2wuaXRlbXNbYV0ua2V5XTtudWxsIT1kJiYobC5pdGVtc1thXS5jYWxs'@; put 'YmFjaz1kKX0pLGx9fTtmdW5jdGlvbiBaSChjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gYmd0KGMpe3ZhciBsPWZ1bmN0aW9uIF9ndChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBk'@; put 'PWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywi'@; put 'c3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9Y2xhc3Mgd2d0e2NvbnN0cnVjdG9yKGwpe1pI'@; put 'KHRoaXMsInBsdWdpbiIsdm9pZCAwKSxaSCh0aGlzLCJob3QiLHZvaWQgMCksWkgodGhpcywiZGF0YU1hbmFnZXIiLHZvaWQgMCksWkgodGhpcywiY29sbGFwc2luZ1VJIix2b2lkIDApLHRoaXMucGx1Z2luPWwsdGhpcy5ob3Q9bC5ob3QsdGhpcy5kYXRhTWFuYWdlcj1sLmRhdGFNYW5hZ2Vy'@; put 'LHRoaXMuY29sbGFwc2luZ1VJPWwuY29sbGFwc2luZ1VJfW9uQmVmb3JlUm93TW92ZShsLGEsZCxoKXtpZih0aGlzLmRpc3BsYXlBUElDb21wYXRpYmlsaXR5V2FybmluZyh7cm93czpsLGZpbmFsSW5kZXg6YSxkcm9wSW5kZXg6ZCxtb3ZlUG9zc2libGU6aH0pKXJldHVybiExO3RoaXMubW92'@; put 'ZWRUb0NvbGxhcHNlZD0hMTtjb25zdCB2PWQ9PT10aGlzLmhvdC5jb3VudFJvd3MoKSxNPXY/dGhpcy5ob3QuY291bnRTb3VyY2VSb3dzKCk6dGhpcy5kYXRhTWFuYWdlci50cmFuc2xhdGVUcmltbWVkUm93KGQpO2xldCBJPSEwO2NvbnN0IEc9bC5tYXAoQmU9PntpZighSSlyZXR1cm4hMTtj'@; put 'b25zdCBHZT10aGlzLmRhdGFNYW5hZ2VyLnRyYW5zbGF0ZVRyaW1tZWRSb3coQmUpO3JldHVybiBJPXRoaXMuc2hvdWxkQWxsb3dNb3ZpbmcoR2UsTSksR2V9KSxyZT0tMT09PUcuaW5kZXhPZihNKTtpZighSXx8IXJlKXJldHVybiExO2NvbnN0IHVlPXRoaXMuZ2V0QmFzZVBhcmVudChHKSx5'@; put 'ZT10aGlzLmdldFRhcmdldFBhcmVudCh2LE0pLEVlPXVlPT09eWU7cmV0dXJuIHRoaXMubW92ZWRUb0NvbGxhcHNlZD10aGlzLmNvbGxhcHNpbmdVSS5hcmVDaGlsZHJlbkNvbGxhcHNlZCh5ZSksdGhpcy5jb2xsYXBzaW5nVUkuY29sbGFwc2VkUm93c1N0YXNoLnN0YXNoKCksdGhpcy5zaGlm'@; put 'dENvbGxhcHNpYmxlUGFyZW50c0xvY2F0aW9ucyhHLE0sRWUpLHRoaXMubW92ZVJvd3MoRyxNLHllKSx0aGlzLmRhdGFNYW5hZ2VyLnJld3JpdGVDYWNoZSgpLHRoaXMubW92ZUNlbGxzTWV0YShHLE0pLHRoaXMuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJvd3NTdGFzaC5hcHBseVN0YXNoKCEx'@; put 'KSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJSb3dNb3ZlIixsLGEsZCxoLGgmJnRoaXMuaXNSb3dPcmRlckNoYW5nZWQobCxhKSksdGhpcy5ob3QucmVuZGVyKCksdGhpcy5zZWxlY3RDZWxscyhsLGQpLCExfWRpc3BsYXlBUElDb21wYXRpYmlsaXR5V2FybmluZyhsKXtjb25zdHtyb3dzOmEs'@; put 'ZmluYWxJbmRleDpkLGRyb3BJbmRleDpoLG1vdmVQb3NzaWJsZTpmfT1sO2xldCB2PSExO3JldHVybiBiYyhoKSYmKFlvKGhsYFNpbmNlIHZlcnNpb24gOC4wLjAgb2YgdGhlIEhhbmRzb250YWJsZSB0aGUgJ21vdmVSb3dzJyBtZXRob2QgaXNuJ3QgdXNlZCBmb3IgbW92aW5nIHJvd3NceDIw'@; put 'CiAgICAgIHdoZW4gdGhlIE5lc3RlZFJvd3MgcGx1Z2luIGlzIGVuYWJsZWQuIFBsZWFzZSB1c2UgdGhlICdkcmFnUm93cycgbWV0aG9kIGluc3RlYWQuYCksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyUm93TW92ZSIsYSxkLGgsZiwhMSksdj0hMCksdn1zaG91bGRBbGxvd01vdmluZyhsLGEp'@; put 'e3JldHVybiEodGhpcy5kYXRhTWFuYWdlci5pc1BhcmVudChsKXx8dGhpcy5kYXRhTWFuYWdlci5pc1Jvd0hpZ2hlc3RMZXZlbChsKXx8bD09PWF8fDA9PT1hKX1nZXRCYXNlUGFyZW50KGwpe3JldHVybiB0aGlzLmRhdGFNYW5hZ2VyLmdldFJvd1BhcmVudChsWzBdKX1nZXRUYXJnZXRQYXJl'@; put 'bnQobCxhKXtsZXQgZD10aGlzLmRhdGFNYW5hZ2VyLmdldFJvd1BhcmVudChsP2EtMTphKTtyZXR1cm4gbnVsbD09ZCYmKGQ9dGhpcy5kYXRhTWFuYWdlci5nZXRSb3dQYXJlbnQoYS0xKSksZH1zaGlmdENvbGxhcHNpYmxlUGFyZW50c0xvY2F0aW9ucyhsLGEsZCl7ZHx8KE1hdGgubWF4KC4u'@; put 'LmwpPD1hP3RoaXMuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJvd3NTdGFzaC5zaGlmdFN0YXNoKGxbMF0sYSwtMSpsLmxlbmd0aCk6dGhpcy5jb2xsYXBzaW5nVUkuY29sbGFwc2VkUm93c1N0YXNoLnNoaWZ0U3Rhc2goYSxsWzBdLGwubGVuZ3RoKSl9bW92ZVJvd3MobCxhLGQpe2NvbnN0IGg9'@; put 'YT09PXRoaXMuZGF0YU1hbmFnZXIuZ2V0Um93SW5kZXgoZCkrdGhpcy5kYXRhTWFuYWdlci5jb3VudENoaWxkcmVuKGQpKzE7dGhpcy5ob3QuYmF0Y2hSZW5kZXIoKCk9PntsLmZvckVhY2goZj0+e3RoaXMuZGF0YU1hbmFnZXIubW92ZVJvdyhmLGEsdGhpcy5tb3ZlZFRvQ29sbGFwc2VkLGgp'@; put 'fSl9KX1tb3ZlQ2VsbHNNZXRhKGwsYSl7Y29uc3QgZD1bXSxoPU1hdGgubWF4KC4uLmwpPGE7bC5mb3JFYWNoKGY9PntkLnB1c2godGhpcy5ob3QuZ2V0Q2VsbE1ldGFBdFJvdyhmKSl9KSx0aGlzLmhvdC5zcGxpY2VDZWxsc01ldGEobFswXSxsLmxlbmd0aCksdGhpcy5ob3Quc3BsaWNlQ2Vs'@; put 'bHNNZXRhKGEtKGg/ZC5sZW5ndGg6MCksMCwuLi5kKX1zZWxlY3RDZWxscyhsLGEpe2NvbnN0IGQ9bC5sZW5ndGg7bGV0IGg9MCxmPTA7aWYodGhpcy5tb3ZlZFRvQ29sbGFwc2VkKXtsZXQgdj1udWxsO3Y9dGhpcy5kYXRhTWFuYWdlci50cmFuc2xhdGVUcmltbWVkUm93KGxbZC0xXTxhP2Et'@; put 'ZDphKTtjb25zdCBNPXRoaXMuZGF0YU1hbmFnZXIuZ2V0Um93UGFyZW50KG51bGw9PT12P3RoaXMuaG90LmNvdW50U291cmNlUm93cygpLTE6di0xKSxJPXRoaXMuZGF0YU1hbmFnZXIuZ2V0Um93SW5kZXgoTSk7aD10aGlzLmRhdGFNYW5hZ2VyLnVudHJhbnNsYXRlVHJpbW1lZFJvdyhJKSxm'@; put 'PWh9ZWxzZSBsW2QtMV08YT8oZj1hLTEsaD1mLWQrMSk6KGg9YSxmPWgrZC0xKTt0aGlzLmhvdC5zZWxlY3RDZWxscyhbW2gsMCxmLHRoaXMuaG90LmNvdW50Q29scygpLTFdXSwhMSl9aXNSb3dPcmRlckNoYW5nZWQobCxhKXtyZXR1cm4gbC5zb21lKChkLGgpPT5kLWghPT1hKX19ZnVuY3Rp'@; put 'b24gZDZlKGMsbCxhKXtoNmUoYyxsKSxsLnNldChjLGEpfWZ1bmN0aW9uIGg2ZShjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9ZnVuY3Rpb24gZ2VlKGMs'@; put 'bCxhKXtyZXR1cm4obD1mdW5jdGlvbiBTZ3QoYyl7dmFyIGw9ZnVuY3Rpb24gTWd0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigi'@; put 'b2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlw'@; put 'ZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31mdW5jdGlvbiBXSChjLGwpe3JldHVybiBjLmdldChwMChjLGwpKX1mdW5jdGlvbiBZSChjLGws'@; put 'YSl7cmV0dXJuIGMuc2V0KHAwKGMsbCksYSksYX1mdW5jdGlvbiBwMChjLGwsYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGM/Yz09PWw6Yy5oYXMobCkpcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mz9sOmE7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBlbGVtZW50IGlzIG5vdCBwcmVz'@; put 'ZW50IG9uIHRoaXMgb2JqZWN0Iil9Y29uc3QgR0g9Im5lc3RlZFJvd3MiLGY2ZT1HSDt2YXIgJEg9bmV3IFdlYWtNYXAsYnc9bmV3IFdlYWtNYXAsTTA9bmV3IFdlYWtTZXQ7Y2xhc3MgVGd0IGV4dGVuZHMgRm97Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGZ1bmN0aW9uIENn'@; put 'dChjLGwpe2g2ZShjLGwpLGwuYWRkKGMpfSh0aGlzLE0wKSxnZWUodGhpcywiZGF0YU1hbmFnZXIiLG51bGwpLGdlZSh0aGlzLCJoZWFkZXJzVUkiLG51bGwpLGdlZSh0aGlzLCJjb2xsYXBzZWRSb3dzTWFwIixudWxsKSxkNmUodGhpcywkSCwhMSksZDZlKHRoaXMsYncsITEpfXN0YXRpYyBn'@; put 'ZXQgUExVR0lOX0tFWSgpe3JldHVybiBHSH1zdGF0aWMgZ2V0IFBMVUdJTl9QUklPUklUWSgpe3JldHVybiAzMDB9aXNFbmFibGVkKCl7cmV0dXJuISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpW0dIXX1lbmFibGVQbHVnaW4oKXt2YXIgbD10aGlzO3RoaXMuZW5hYmxlZHx8KHRoaXMuY29sbGFw'@; put 'c2VkUm93c01hcD10aGlzLmhvdC5yb3dJbmRleE1hcHBlci5yZWdpc3Rlck1hcCgibmVzdGVkUm93cyIsbmV3IHFFKSx0aGlzLmRhdGFNYW5hZ2VyPW5ldyBpZ3QodGhpcyx0aGlzLmhvdCksdGhpcy5jb2xsYXBzaW5nVUk9bmV3IGNndCh0aGlzLHRoaXMuaG90KSx0aGlzLmhlYWRlcnNVST1u'@; put 'ZXcgYzZlKHRoaXMsdGhpcy5ob3QpLHRoaXMuY29udGV4dE1lbnVVST1uZXcgeWd0KHRoaXMsdGhpcy5ob3QpLHRoaXMucm93TW92ZUNvbnRyb2xsZXI9bmV3IHdndCh0aGlzKSx0aGlzLmFkZEhvb2soImFmdGVySW5pdCIsZnVuY3Rpb24oKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxk'@; put 'PW5ldyBBcnJheShhKSxoPTA7aDxhO2grKylkW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gcDAoTTAsbCxqZ3QpLmNhbGwobCwuLi5kKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlVmlld1JlbmRlciIsZnVuY3Rpb24oKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxkPW5ldyBBcnJheShhKSxo'@; put 'PTA7aDxhO2grKylkW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gcDAoTTAsbCx6Z3QpLmNhbGwobCwuLi5kKX0pLHRoaXMuYWRkSG9vaygibW9kaWZ5Um93RGF0YSIsZnVuY3Rpb24oKXtyZXR1cm4gbC5vbk1vZGlmeVJvd0RhdGEoLi4uYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygibW9kaWZ5'@; put 'U291cmNlTGVuZ3RoIixmdW5jdGlvbigpe3JldHVybiBsLm9uTW9kaWZ5U291cmNlTGVuZ3RoKC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZURhdGFTcGxpY2UiLGZ1bmN0aW9uKCl7cmV0dXJuIGwub25CZWZvcmVEYXRhU3BsaWNlKC4uLmFyZ3VtZW50cyl9KSx0aGlzLmFk'@; put 'ZEhvb2soImZpbHRlckRhdGEiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGgsZD1uZXcgQXJyYXkoYSksaD0wO2g8YTtoKyspZFtoXT1hcmd1bWVudHNbaF07cmV0dXJuIHAwKE0wLGwsRGd0KS5jYWxsKGwsLi4uZCl9KSx0aGlzLmFkZEhvb2soImFmdGVyQ29udGV4dE1l'@; put 'bnVEZWZhdWx0T3B0aW9ucyIsZnVuY3Rpb24oKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxkPW5ldyBBcnJheShhKSxoPTA7aDxhO2grKylkW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gcDAoTTAsbCxJZ3QpLmNhbGwobCwuLi5kKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJHZXRSb3dIZWFk'@; put 'ZXIiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGgsZD1uZXcgQXJyYXkoYSksaD0wO2g8YTtoKyspZFtoXT1hcmd1bWVudHNbaF07cmV0dXJuIHAwKE0wLGwsUmd0KS5jYWxsKGwsLi4uZCl9KSx0aGlzLmFkZEhvb2soImJlZm9yZU9uQ2VsbE1vdXNlRG93biIsZnVuY3Rp'@; put 'b24oKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxkPW5ldyBBcnJheShhKSxoPTA7aDxhO2grKylkW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gcDAoTTAsbCxrZ3QpLmNhbGwobCwuLi5kKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlUmVtb3ZlUm93IixmdW5jdGlvbigpe2Zvcih2YXIgYT1h'@; put 'cmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDtoPGE7aCsrKWRbaF09YXJndW1lbnRzW2hdO3JldHVybiBwMChNMCxsLFBndCkuY2FsbChsLC4uLmQpfSksdGhpcy5hZGRIb29rKCJhZnRlclJlbW92ZVJvdyIsZnVuY3Rpb24oKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxk'@; put 'PW5ldyBBcnJheShhKSxoPTA7aDxhO2grKylkW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gcDAoTTAsbCxPZ3QpLmNhbGwobCwuLi5kKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlQWRkQ2hpbGQiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGgsZD1uZXcgQXJyYXkoYSksaD0w'@; put 'O2g8YTtoKyspZFtoXT1hcmd1bWVudHNbaF07cmV0dXJuIHAwKE0wLGwsRmd0KS5jYWxsKGwsLi4uZCl9KSx0aGlzLmFkZEhvb2soImFmdGVyQWRkQ2hpbGQiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGgsZD1uZXcgQXJyYXkoYSksaD0wO2g8YTtoKyspZFtoXT1hcmd1'@; put 'bWVudHNbaF07cmV0dXJuIHAwKE0wLGwsSGd0KS5jYWxsKGwsLi4uZCl9KSx0aGlzLmFkZEhvb2soImJlZm9yZURldGFjaENoaWxkIixmdW5jdGlvbigpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDtoPGE7aCsrKWRbaF09YXJndW1lbnRzW2hdO3JldHVy'@; put 'biBwMChNMCxsLE5ndCkuY2FsbChsLC4uLmQpfSksdGhpcy5hZGRIb29rKCJhZnRlckRldGFjaENoaWxkIixmdW5jdGlvbigpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDtoPGE7aCsrKWRbaF09YXJndW1lbnRzW2hdO3JldHVybiBwMChNMCxsLFZndCku'@; put 'Y2FsbChsLC4uLmQpfSksdGhpcy5hZGRIb29rKCJtb2RpZnlSb3dIZWFkZXJXaWR0aCIsZnVuY3Rpb24oKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxkPW5ldyBBcnJheShhKSxoPTA7aDxhO2grKylkW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gcDAoTTAsbCxMZ3QpLmNhbGwobCwuLi5k'@; put 'KX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJDcmVhdGVSb3ciLGZ1bmN0aW9uKCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGgsZD1uZXcgQXJyYXkoYSksaD0wO2g8YTtoKyspZFtoXT1hcmd1bWVudHNbaF07cmV0dXJuIHAwKE0wLGwsQmd0KS5jYWxsKGwsLi4uZCl9KSx0aGlzLmFkZEhvb2so'@; put 'ImJlZm9yZVJvd01vdmUiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5sZW5ndGgsZD1uZXcgQXJyYXkoYSksaD0wO2g8YTtoKyspZFtoXT1hcmd1bWVudHNbaF07cmV0dXJuIHAwKE0wLGwsQWd0KS5jYWxsKGwsLi4uZCl9KSx0aGlzLmFkZEhvb2soImJlZm9yZUxvYWREYXRhIixh'@; put 'PT5wMChNMCx0aGlzLHA2ZSkuY2FsbCh0aGlzLGEpKSx0aGlzLmFkZEhvb2soImJlZm9yZVVwZGF0ZURhdGEiLGE9PnAwKE0wLHRoaXMscDZlKS5jYWxsKHRoaXMsYSkpLHRoaXMucmVnaXN0ZXJTaG9ydGN1dHMoKSxzdXBlci5lbmFibGVQbHVnaW4oKSl9ZGlzYWJsZVBsdWdpbigpe3RoaXMu'@; put 'aG90LnJvd0luZGV4TWFwcGVyLnVucmVnaXN0ZXJNYXAoIm5lc3RlZFJvd3MiKSx0aGlzLnVucmVnaXN0ZXJTaG9ydGN1dHMoKSxzdXBlci5kaXNhYmxlUGx1Z2luKCl9dXBkYXRlUGx1Z2luKCl7dGhpcy5kaXNhYmxlUGx1Z2luKCk7Y29uc3QgbD10aGlzLmRhdGFNYW5hZ2VyLmdldERhdGEo'@; put 'KTt0aGlzLmVuYWJsZVBsdWdpbigpLHRoaXMuZGF0YU1hbmFnZXIudXBkYXRlV2l0aERhdGEobCksc3VwZXIudXBkYXRlUGx1Z2luKCl9cmVnaXN0ZXJTaG9ydGN1dHMoKXt0aGlzLmhvdC5nZXRTaG9ydGN1dE1hbmFnZXIoKS5nZXRDb250ZXh0KCJncmlkIikuYWRkU2hvcnRjdXQoe2tleXM6'@; put 'W1siRW50ZXIiXV0sY2FsbGJhY2s6KCk9Pntjb25zdHtoaWdobGlnaHQ6bH09dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxhPXRoaXMuY29sbGFwc2luZ1VJLnRyYW5zbGF0ZVRyaW1tZWRSb3cobC5yb3cpO3JldHVybiB0aGlzLmNvbGxhcHNpbmdVSS5hcmVDaGlsZHJlbkNvbGxh'@; put 'cHNlZChhKT90aGlzLmNvbGxhcHNpbmdVSS5leHBhbmRDaGlsZHJlbihhKTp0aGlzLmNvbGxhcHNpbmdVSS5jb2xsYXBzZUNoaWxkcmVuKGEpLCExfSxydW5Pbmx5SWY6KCk9Pnt2YXIgbCxhO2NvbnN0IGQ9bnVsbD09PShsPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCkpfHx2b2lk'@; put 'IDA9PT1sP3ZvaWQgMDpsLmhpZ2hsaWdodDtyZXR1cm4gZCYmKG51bGw9PT0oYT10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpKXx8dm9pZCAwPT09YT92b2lkIDA6YS5pc1NpbmdsZSgpKSYmdGhpcy5ob3Quc2VsZWN0aW9uLmlzQ2VsbFZpc2libGUoZCkmJi0xPT09ZC5jb2wmJmQu'@; put 'cm93Pj0wfSxncm91cDpmNmUscmVsYXRpdmVUb0dyb3VwOnptLHBvc2l0aW9uOiJiZWZvcmUifSl9dW5yZWdpc3RlclNob3J0Y3V0cygpe3RoaXMuaG90LmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImdyaWQiKS5yZW1vdmVTaG9ydGN1dHNCeUdyb3VwKGY2ZSl9ZGlzYWJsZUNv'@; put 'cmVBUElNb2RpZmllcnMoKXtZSChidyx0aGlzLCEwKX1lbmFibGVDb3JlQVBJTW9kaWZpZXJzKCl7WUgoYncsdGhpcywhMSl9b25Nb2RpZnlSb3dEYXRhKGwpe2lmKCFXSChidyx0aGlzKSlyZXR1cm4gdGhpcy5kYXRhTWFuYWdlci5nZXREYXRhT2JqZWN0KGwpfW9uTW9kaWZ5U291cmNlTGVu'@; put 'Z3RoKCl7aWYoIVdIKGJ3LHRoaXMpKXJldHVybiB0aGlzLmRhdGFNYW5hZ2VyLmNvdW50QWxsUm93cygpfW9uQmVmb3JlRGF0YVNwbGljZShsLGEsZCl7cmV0dXJuISghV0goYncsdGhpcykmJiF0aGlzLmRhdGFNYW5hZ2VyLmlzUm93SGlnaGVzdExldmVsKGwpJiYodGhpcy5kYXRhTWFuYWdl'@; put 'ci5zcGxpY2VEYXRhKGwsYSxkKSwxKSl9ZGVzdHJveSgpe3N1cGVyLmRlc3Ryb3koKX19ZnVuY3Rpb24gQWd0KGMsbCxhLGQpe3JldHVybiB0aGlzLnJvd01vdmVDb250cm9sbGVyLm9uQmVmb3JlUm93TW92ZShjLGwsYSxkKX1mdW5jdGlvbiBrZ3QoYyxsLGEpe3RoaXMuY29sbGFwc2luZ1VJ'@; put 'LnRvZ2dsZVN0YXRlKGMsbCxhKX1mdW5jdGlvbiBEZ3QoYyxsLGEpe3JldHVybiB0aGlzLmNvbGxhcHNpbmdVSS5jb2xsYXBzZWRSb3dzU3Rhc2guc3Rhc2goKSx0aGlzLmNvbGxhcHNpbmdVSS5jb2xsYXBzZWRSb3dzU3Rhc2gudHJpbVN0YXNoKGFbMF0sbCksdGhpcy5jb2xsYXBzaW5nVUku'@; put 'Y29sbGFwc2VkUm93c1N0YXNoLnNoaWZ0U3Rhc2goYVswXSxudWxsLC0xKmwpLHRoaXMuZGF0YU1hbmFnZXIuZmlsdGVyRGF0YShjLGwsYSksWUgoJEgsdGhpcywhMCksdGhpcy5kYXRhTWFuYWdlci5nZXREYXRhKCkuc2xpY2UoKX1mdW5jdGlvbiBJZ3QoYyl7cmV0dXJuIHRoaXMuY29udGV4'@; put 'dE1lbnVVSS5hcHBlbmRPcHRpb25zKGMpfWZ1bmN0aW9uIFJndChjLGwpe3RoaXMuaGVhZGVyc1VJLmFwcGVuZExldmVsSW5kaWNhdG9ycyhjLGwpfWZ1bmN0aW9uIExndChjKXtyZXR1cm4gTWF0aC5tYXgodGhpcy5oZWFkZXJzVUkucm93SGVhZGVyV2lkdGhDYWNoZSxjKX1mdW5jdGlvbiBP'@; put 'Z3QoYyxsLGEsZCl7ZCE9PXRoaXMucGx1Z2luTmFtZSYmdGhpcy5ob3QuX3JlZ2lzdGVyVGltZW91dCgoKT0+e1lIKCRILHRoaXMsITEpLHRoaXMuaGVhZGVyc1VJLnVwZGF0ZVJvd0hlYWRlcldpZHRoKCksdGhpcy5jb2xsYXBzaW5nVUkuY29sbGFwc2VkUm93c1N0YXNoLmFwcGx5U3Rhc2go'@; put 'KX0pfWZ1bmN0aW9uIFBndChjLGwsYSl7Y29uc3QgZD1BcnJheS5mcm9tKGEucmVkdWNlKChoLGYpPT57aWYodGhpcy5kYXRhTWFuYWdlci5pc1BhcmVudChmKSl7Y29uc3Qgdj10aGlzLmRhdGFNYW5hZ2VyLmdldERhdGFPYmplY3QoZikuX19jaGlsZHJlbjtyZXR1cm4gaC5hZGQoZiksQXJy'@; put 'YXkuaXNBcnJheSh2KSYmdi5mb3JFYWNoKE09PmguYWRkKHRoaXMuZGF0YU1hbmFnZXIuZ2V0Um93SW5kZXgoTSkpKSxofXJldHVybiBoLmFkZChmKX0sbmV3IFNldCkpO2EubGVuZ3RoPTAsYS5wdXNoKC4uLmQpfWZ1bmN0aW9uIEZndCgpe3RoaXMuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJv'@; put 'd3NTdGFzaC5zdGFzaCgpfWZ1bmN0aW9uIEhndChjLGwpe3RoaXMuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJvd3NTdGFzaC5zaGlmdFN0YXNoKHRoaXMuZGF0YU1hbmFnZXIuZ2V0Um93SW5kZXgobCkpLHRoaXMuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJvd3NTdGFzaC5hcHBseVN0YXNoKCks'@; put 'dGhpcy5oZWFkZXJzVUkudXBkYXRlUm93SGVhZGVyV2lkdGgoKX1mdW5jdGlvbiBOZ3QoKXt0aGlzLmNvbGxhcHNpbmdVSS5jb2xsYXBzZWRSb3dzU3Rhc2guc3Rhc2goKX1mdW5jdGlvbiBWZ3QoYyxsLGEpe3RoaXMuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJvd3NTdGFzaC5zaGlmdFN0YXNo'@; put 'KGEsbnVsbCwtMSksdGhpcy5jb2xsYXBzaW5nVUkuY29sbGFwc2VkUm93c1N0YXNoLmFwcGx5U3Rhc2goKSx0aGlzLmhlYWRlcnNVSS51cGRhdGVSb3dIZWFkZXJXaWR0aCgpfWZ1bmN0aW9uIEJndCgpe3RoaXMuZGF0YU1hbmFnZXIucmV3cml0ZUNhY2hlKCl9ZnVuY3Rpb24gamd0KCl7dGhp'@; put 'cy5oZWFkZXJzVUkudXBkYXRlUm93SGVhZGVyV2lkdGgoKX1mdW5jdGlvbiB6Z3QoYyxsKXtXSCgkSCx0aGlzKSYmKGwuc2tpcFJlbmRlcj0hMCl9ZnVuY3Rpb24gcDZlKGMpe2lmKCFPM2UoYykpcmV0dXJuIEIkKCJUaGUgTmVzdGVkIFJvd3MgcGx1Z2luIHJlcXVpcmVzIGFuIEFycmF5IG9m'@; put 'IE9iamVjdHMgYXMgYSBkYXRhc2V0IHRvIGJlIHByb3ZpZGVkLiBUaGUgcGx1Z2luIGhhcyBiZWVuIGRpc2FibGVkLiIpLHRoaXMuaG90LmdldFNldHRpbmdzKClbR0hdPSExLHZvaWQgdGhpcy5kaXNhYmxlUGx1Z2luKCk7dGhpcy5kYXRhTWFuYWdlci5zZXREYXRhKGMpLHRoaXMuZGF0YU1h'@; put 'bmFnZXIucmV3cml0ZUNhY2hlKCl9ZnVuY3Rpb24gbWVlKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBVZ3QoYyl7dmFyIGw9ZnVuY3Rpb24gWmd0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09'@; put 'YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIp'@; put 'KGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31jb25zdCBZZ3Q9Y2xhc3MgV2d0'@; put 'e2NvbnN0cnVjdG9yKGwpe2xldCBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp3aW5kb3c7bWVlKHRoaXMsInJvb3RXaW5kb3ciLHZvaWQgMCksbWVlKHRoaXMsInByZWZpeCIsdm9pZCAwKSxtZWUodGhpcywic2F2ZWRLZXlzIixbXSks'@; put 'dGhpcy5yb290V2luZG93PWEsdGhpcy5wcmVmaXg9bCx0aGlzLmxvYWRTYXZlZEtleXMoKX1zYXZlVmFsdWUobCxhKXt0aGlzLnJvb3RXaW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oYCR7dGhpcy5wcmVmaXh9XyR7bH1gLEpTT04uc3RyaW5naWZ5KGEpKSwtMT09PXRoaXMuc2F2ZWRLZXlz'@; put 'LmluZGV4T2YobCkmJih0aGlzLnNhdmVkS2V5cy5wdXNoKGwpLHRoaXMuc2F2ZVNhdmVkS2V5cygpKX1sb2FkVmFsdWUobCxhKXtjb25zdCBoPXRoaXMucm9vdFdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShgJHt0aGlzLnByZWZpeH1fJHt0eXBlb2YgbD4idSI/YTpsfWApO3JldHVybiBu'@; put 'dWxsPT09aD92b2lkIDA6SlNPTi5wYXJzZShoKX1yZXNldChsKXt0aGlzLnJvb3RXaW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oYCR7dGhpcy5wcmVmaXh9XyR7bH1gKX1yZXNldEFsbCgpe0tuKHRoaXMuc2F2ZWRLZXlzLChsLGEpPT57dGhpcy5yb290V2luZG93LmxvY2FsU3RvcmFn'@; put 'ZS5yZW1vdmVJdGVtKGAke3RoaXMucHJlZml4fV8ke3RoaXMuc2F2ZWRLZXlzW2FdfWApfSksdGhpcy5jbGVhclNhdmVkS2V5cygpfWxvYWRTYXZlZEtleXMoKXtjb25zdCBsPXRoaXMucm9vdFdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShgJHt0aGlzLnByZWZpeH1fX3BlcnNpc3RlbnRT'@; put 'dGF0ZUtleXNgKSxhPSJzdHJpbmciPT10eXBlb2YgbD9KU09OLnBhcnNlKGwpOnZvaWQgMDt0aGlzLnNhdmVkS2V5cz1hfHxbXX1zYXZlU2F2ZWRLZXlzKCl7dGhpcy5yb290V2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKGAke3RoaXMucHJlZml4fV9fcGVyc2lzdGVudFN0YXRlS2V5c2As'@; put 'SlNPTi5zdHJpbmdpZnkodGhpcy5zYXZlZEtleXMpKX1jbGVhclNhdmVkS2V5cygpe3RoaXMuc2F2ZWRLZXlzLmxlbmd0aD0wLHRoaXMuc2F2ZVNhdmVkS2V5cygpfX07TWEuZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoInBlcnNpc3RlbnRTdGF0ZVNhdmUiKSxNYS5nZXRTaW5nbGV0b24oKS5y'@; put 'ZWdpc3RlcigicGVyc2lzdGVudFN0YXRlTG9hZCIpLE1hLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJwZXJzaXN0ZW50U3RhdGVSZXNldCIpO2NvbnN0IGc2ZT0icGVyc2lzdGVudFN0YXRlIjtjbGFzcyBxZ3QgZXh0ZW5kcyBGb3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyks'@; put 'ZnVuY3Rpb24gR2d0KGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiAkZ3QoYyl7dmFyIGw9ZnVuY3Rpb24gS2d0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8'@; put 'ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1'@; put 'cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY30odGhpcywic3RvcmFnZSIsdm9pZCAwKX1zdGF0aWMgZ2V0IFBMVUdJ'@; put 'Tl9LRVkoKXtyZXR1cm4gZzZlfXN0YXRpYyBnZXQgUExVR0lOX1BSSU9SSVRZKCl7cmV0dXJuIDB9aXNFbmFibGVkKCl7cmV0dXJuISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpW2c2ZV19ZW5hYmxlUGx1Z2luKCl7dGhpcy5lbmFibGVkfHwodGhpcy5zdG9yYWdlfHwodGhpcy5zdG9yYWdlPW5l'@; put 'dyBZZ3QodGhpcy5ob3Qucm9vdENvbnRhaW5lci5pZHx8dGhpcy5ob3Qucm9vdEVsZW1lbnQuaWQsdGhpcy5ob3Qucm9vdFdpbmRvdykpLHRoaXMuYWRkSG9vaygicGVyc2lzdGVudFN0YXRlU2F2ZSIsKGwsYSk9PnRoaXMuc2F2ZVZhbHVlKGwsYSkpLHRoaXMuYWRkSG9vaygicGVyc2lzdGVu'@; put 'dFN0YXRlTG9hZCIsKGwsYSk9PnRoaXMubG9hZFZhbHVlKGwsYSkpLHRoaXMuYWRkSG9vaygicGVyc2lzdGVudFN0YXRlUmVzZXQiLCgpPT50aGlzLnJlc2V0VmFsdWUoKSksc3VwZXIuZW5hYmxlUGx1Z2luKCkpfWRpc2FibGVQbHVnaW4oKXt0aGlzLnN0b3JhZ2U9dm9pZCAwLHN1cGVyLmRp'@; put 'c2FibGVQbHVnaW4oKX11cGRhdGVQbHVnaW4oKXt0aGlzLmRpc2FibGVQbHVnaW4oKSx0aGlzLmVuYWJsZVBsdWdpbigpLHN1cGVyLnVwZGF0ZVBsdWdpbigpfWxvYWRWYWx1ZShsLGEpe2EudmFsdWU9dGhpcy5zdG9yYWdlLmxvYWRWYWx1ZShsKX1zYXZlVmFsdWUobCxhKXt0aGlzLnN0b3Jh'@; put 'Z2Uuc2F2ZVZhbHVlKGwsYSl9cmVzZXRWYWx1ZShsKXt0eXBlb2YgbD4idSI/dGhpcy5zdG9yYWdlLnJlc2V0QWxsKCk6dGhpcy5zdG9yYWdlLnJlc2V0KGwpfWRlc3Ryb3koKXtzdXBlci5kZXN0cm95KCl9fWZ1bmN0aW9uIHZlZShjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gZTV0KGMpe3Zh'@; put 'ciBsPWZ1bmN0aW9uIHQ1dChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93'@; put 'IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVm'@; put 'aW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9ZnVuY3Rpb24gbTZlKGMsbCxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhsKSlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzP2w6'@; put 'YTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGVsZW1lbnQgaXMgbm90IHByZXNlbnQgb24gdGhpcyBvYmplY3QiKX1jb25zdCB5ZWU9InNlYXJjaCIsaTV0PWZ1bmN0aW9uKGMsbCxhLGQsaCl7Yy5nZXRDZWxsTWV0YShsLGEpLmlzU2VhcmNoUmVzdWx0PWh9LGE1dD1mdW5jdGlvbihj'@; put 'LGwsYSl7cmV0dXJuIShiYyhjKXx8bnVsbD09PWN8fCFjLnRvTG9jYWxlTG93ZXJDYXNlfHwwPT09Yy5sZW5ndGh8fGJjKGwpfHxudWxsPT09bCkmJi0xIT09bC50b1N0cmluZygpLnRvTG9jYWxlTG93ZXJDYXNlKGEubG9jYWxlKS5pbmRleE9mKGMudG9Mb2NhbGVMb3dlckNhc2UoYS5sb2Nh'@; put 'bGUpKX07dmFyIGJlZT1uZXcgV2Vha1NldDtjbGFzcyBzNXQgZXh0ZW5kcyBGb3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksZnVuY3Rpb24gSmd0KGMsbCl7KGZ1bmN0aW9uIFFndChjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFs'@; put 'aXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShjLGwpLGwuYWRkKGMpfSh0aGlzLGJlZSksdmVlKHRoaXMsImNhbGxiYWNrIixpNXQpLHZlZSh0aGlzLCJxdWVyeU1ldGhvZCIsYTV0KSx2ZWUodGhpcywic2VhcmNoUmVzdWx0Q2xhc3MiLCJodFNl'@; put 'YXJjaFJlc3VsdCIpfXN0YXRpYyBnZXQgUExVR0lOX0tFWSgpe3JldHVybiB5ZWV9c3RhdGljIGdldCBQTFVHSU5fUFJJT1JJVFkoKXtyZXR1cm4gMTkwfWlzRW5hYmxlZCgpe3JldHVybiB0aGlzLmhvdC5nZXRTZXR0aW5ncygpW3llZV19ZW5hYmxlUGx1Z2luKCl7dmFyIGw9dGhpcztpZih0'@; put 'aGlzLmVuYWJsZWQpcmV0dXJuO2NvbnN0IGE9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVt5ZWVdO3RoaXMudXBkYXRlUGx1Z2luU2V0dGluZ3MoYSksdGhpcy5hZGRIb29rKCJiZWZvcmVSZW5kZXJlciIsZnVuY3Rpb24oKXtmb3IodmFyIGQ9YXJndW1lbnRzLmxlbmd0aCxoPW5ldyBBcnJheShk'@; put 'KSxmPTA7ZjxkO2YrKyloW2ZdPWFyZ3VtZW50c1tmXTtyZXR1cm4gbTZlKGJlZSxsLHY2ZSkuY2FsbChsLC4uLmgpfSksc3VwZXIuZW5hYmxlUGx1Z2luKCl9ZGlzYWJsZVBsdWdpbigpe3ZhciBsPXRoaXM7Y29uc3QgYT1mdW5jdGlvbigpe2Zvcih2YXIgZD1hcmd1bWVudHMubGVuZ3RoLGg9'@; put 'bmV3IEFycmF5KGQpLGY9MDtmPGQ7ZisrKWhbZl09YXJndW1lbnRzW2ZdO3JldHVybiBtNmUoYmVlLGwsdjZlKS5jYWxsKGwsLi4uaCl9O3RoaXMuaG90LmFkZEhvb2soImJlZm9yZVJlbmRlcmVyIixhKSx0aGlzLmhvdC5hZGRIb29rT25jZSgiYWZ0ZXJWaWV3UmVuZGVyIiwoKT0+e3RoaXMu'@; put 'aG90LnJlbW92ZUhvb2soImJlZm9yZVJlbmRlcmVyIixhKX0pLHN1cGVyLmRpc2FibGVQbHVnaW4oKX11cGRhdGVQbHVnaW4oKXt0aGlzLmRpc2FibGVQbHVnaW4oKSx0aGlzLmVuYWJsZVBsdWdpbigpLHN1cGVyLnVwZGF0ZVBsdWdpbigpfXF1ZXJ5KGwpe2xldCBhPWFyZ3VtZW50cy5sZW5n'@; put 'dGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLmdldENhbGxiYWNrKCksZD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06dGhpcy5nZXRRdWVyeU1ldGhvZCgpO2NvbnN0IGg9dGhpcy5ob3QuY291bnRSb3dz'@; put 'KCksZj10aGlzLmhvdC5jb3VudENvbHMoKSx2PVtdLE09dGhpcy5ob3Q7cmV0dXJuIEthKDAsaC0xLEk9PntLYSgwLGYtMSxHPT57Y29uc3QgcmU9dGhpcy5ob3QuZ2V0RGF0YUF0Q2VsbChJLEcpLHVlPXRoaXMuaG90LmdldENlbGxNZXRhKEksRykseWU9dWUuc2VhcmNoLmNhbGxiYWNrfHxh'@; put 'LEJlPSh1ZS5zZWFyY2gucXVlcnlNZXRob2R8fGQpKGwscmUsdWUpO0JlJiZ2LnB1c2goe3JvdzpJLGNvbDpHLGRhdGE6cmV9KSx5ZSYmeWUoTSxJLEcscmUsQmUpfSl9KSx2fWdldENhbGxiYWNrKCl7cmV0dXJuIHRoaXMuY2FsbGJhY2t9c2V0Q2FsbGJhY2sobCl7dGhpcy5jYWxsYmFjaz1s'@; put 'fWdldFF1ZXJ5TWV0aG9kKCl7cmV0dXJuIHRoaXMucXVlcnlNZXRob2R9c2V0UXVlcnlNZXRob2QobCl7dGhpcy5xdWVyeU1ldGhvZD1sfWdldFNlYXJjaFJlc3VsdENsYXNzKCl7cmV0dXJuIHRoaXMuc2VhcmNoUmVzdWx0Q2xhc3N9c2V0U2VhcmNoUmVzdWx0Q2xhc3MobCl7dGhpcy5zZWFy'@; put 'Y2hSZXN1bHRDbGFzcz1sfXVwZGF0ZVBsdWdpblNldHRpbmdzKGwpe1hzKGwpJiYobC5zZWFyY2hSZXN1bHRDbGFzcyYmdGhpcy5zZXRTZWFyY2hSZXN1bHRDbGFzcyhsLnNlYXJjaFJlc3VsdENsYXNzKSxsLnF1ZXJ5TWV0aG9kJiZ0aGlzLnNldFF1ZXJ5TWV0aG9kKGwucXVlcnlNZXRob2Qp'@; put 'LGwuY2FsbGJhY2smJnRoaXMuc2V0Q2FsbGJhY2sobC5jYWxsYmFjaykpfWRlc3Ryb3koKXtzdXBlci5kZXN0cm95KCl9fWZ1bmN0aW9uIHY2ZShjLGwsYSxkLGgsZil7Y29uc3Qgdj1mLmNsYXNzTmFtZXx8W107bGV0IE09W107InN0cmluZyI9PXR5cGVvZiB2P009di5zcGxpdCgiICIpOk0u'@; put 'cHVzaCguLi52KSx0aGlzLmlzRW5hYmxlZCgpJiZmLmlzU2VhcmNoUmVzdWx0P00uaW5jbHVkZXModGhpcy5zZWFyY2hSZXN1bHRDbGFzcyl8fE0ucHVzaChgJHt0aGlzLnNlYXJjaFJlc3VsdENsYXNzfWApOk0uaW5jbHVkZXModGhpcy5zZWFyY2hSZXN1bHRDbGFzcykmJk0uc3BsaWNlKE0u'@; put 'aW5kZXhPZih0aGlzLnNlYXJjaFJlc3VsdENsYXNzKSwxKSxmLmNsYXNzTmFtZT1NLmpvaW4oIiAiKX1mdW5jdGlvbiBLSChjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gbzV0KGMpe3ZhciBsPWZ1bmN0aW9uIGw1dChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFy'@; put 'IGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUu'@; put 'Iil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRh'@; put 'YmxlOiEwfSk6Y1tsXT1hLGN9Y2xhc3MgeTZle2NvbnN0cnVjdG9yKGwpe0tIKHRoaXMsInZpZXdwb3J0V2lkdGgiLHZvaWQgMCksS0godGhpcywib3ZlcndyaXRlQ29sdW1uV2lkdGhGbiIsdm9pZCAwKSxLSCh0aGlzLCJiYXNlV2lkdGhzIixuZXcgTWFwKSxLSCh0aGlzLCJzdHJldGNoZWRX'@; put 'aWR0aHMiLG5ldyBNYXApLHRoaXMub3ZlcndyaXRlQ29sdW1uV2lkdGhGbj1sfXByZXBhcmUobCl7bGV0e3ZpZXdwb3J0V2lkdGg6YX09bDt0aGlzLnZpZXdwb3J0V2lkdGg9YSx0aGlzLmJhc2VXaWR0aHMuY2xlYXIoKSx0aGlzLnN0cmV0Y2hlZFdpZHRocy5jbGVhcigpfXNldENvbHVtbkJh'@; put 'c2VXaWR0aChsLGEpe3RoaXMuYmFzZVdpZHRocy5zZXQobCxhKX1jYWxjdWxhdGUoKXt9Z2V0V2lkdGhzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5zdHJldGNoZWRXaWR0aHMpfX1jbGFzcyBjNXQgZXh0ZW5kcyB5NmV7Y2FsY3VsYXRlKCl7Y29uc3QgbD1BcnJheS5mcm9tKHRoaXMuYmFz'@; put 'ZVdpZHRocykucmVkdWNlKCh1ZSx5ZSk9PntsZXRbLEVlXT15ZTtyZXR1cm4gdWUrRWV9LDApO2lmKHRoaXMudmlld3BvcnRXaWR0aC1sPDApcmV0dXJuIHZvaWQgdGhpcy5zdHJldGNoZWRXaWR0aHMuY2xlYXIoKTtjb25zdCBkPXRoaXMudmlld3BvcnRXaWR0aC9sLGg9W10sZj1bXTtsZXQg'@; put 'dj10aGlzLnZpZXdwb3J0V2lkdGgsTT0wO2lmKHRoaXMuYmFzZVdpZHRocy5mb3JFYWNoKCh1ZSx5ZSk9Pntjb25zdCBFZT1NYXRoLnJvdW5kKHVlKmQpLEJlPXRoaXMub3ZlcndyaXRlQ29sdW1uV2lkdGhGbihFZSx5ZSk7RWU9PT1CZSYmRWU+PWJfPyhoLnB1c2goW3llLEJlXSksTSs9QmUp'@; put 'OkVlIT09QmUmJihoLnB1c2goW3llLEJlXSksZi5wdXNoKHllKSx2LT1CZSl9KSx2PD1iXylyZXR1cm4gdm9pZCB0aGlzLnN0cmV0Y2hlZFdpZHRocy5jbGVhcigpO2NvbnN0IEk9di9NO2xldCBHPS0xLHJlPTA7aC5mb3JFYWNoKCh1ZSx5ZSk9PntsZXRbRWUsQmVdPXVlLEdlPUJlO2YuaW5j'@; put 'bHVkZXMoRWUpfHwoR2U9TWF0aC5yb3VuZChCZSpJKSksdGhpcy5zdHJldGNoZWRXaWR0aHMuc2V0KEVlLEdlKSxHPUVlLHllPGgubGVuZ3RoLTEmJihyZSs9R2UpfSksdGhpcy5zdHJldGNoZWRXaWR0aHMuc2l6ZT4xJiZ0aGlzLnN0cmV0Y2hlZFdpZHRocy5zZXQoRyxNYXRoLnJvdW5kKHRo'@; put 'aXMudmlld3BvcnRXaWR0aC1yZSkpfX1mdW5jdGlvbiBiNmUoYyxsLGEpeyhmdW5jdGlvbiB1NXQoYyxsKXtpZihsLmhhcyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfSkoYyxs'@; put 'KSxsLnNldChjLGEpfWZ1bmN0aW9uIF9lZShjLGwpe3JldHVybiBjLmdldChfNmUoYyxsKSl9ZnVuY3Rpb24gWEgoYyxsLGEpe3JldHVybiBjLnNldChfNmUoYyxsKSxhKSxhfWZ1bmN0aW9uIF82ZShjLGwsYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGM/Yz09PWw6Yy5oYXMobCkpcmV0dXJu'@; put 'IGFyZ3VtZW50cy5sZW5ndGg8Mz9sOmE7dGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBlbGVtZW50IGlzIG5vdCBwcmVzZW50IG9uIHRoaXMgb2JqZWN0Iil9dmFyIHFIPW5ldyBXZWFrTWFwLFNBPW5ldyBXZWFrTWFwO2NsYXNzIGQ1dCBleHRlbmRzIHk2ZXtjb25zdHJ1Y3Rvcigpe3N1'@; put 'cGVyKC4uLmFyZ3VtZW50cyksYjZlKHRoaXMscUgsMCksYjZlKHRoaXMsU0EsLTEpfXByZXBhcmUobCl7c3VwZXIucHJlcGFyZShsKSxYSChxSCx0aGlzLDApLFhIKFNBLHRoaXMsLTEpfXNldENvbHVtbkJhc2VXaWR0aChsLGEpe3N1cGVyLnNldENvbHVtbkJhc2VXaWR0aChsLGEpLFhIKFNB'@; put 'LHRoaXMsbCksWEgocUgsdGhpcyxhKX1jYWxjdWxhdGUoKXtpZigtMT09PV9lZShTQSx0aGlzKSlyZXR1cm47Y29uc3QgbD1BcnJheS5mcm9tKHRoaXMuYmFzZVdpZHRocykucmVkdWNlKChkLGgpPT57bGV0WyxmXT1oO3JldHVybiBkK2Z9LDApLGE9TWF0aC5tYXgodGhpcy52aWV3cG9ydFdp'@; put 'ZHRoLWwrX2VlKHFILHRoaXMpLDApO3RoaXMuc3RyZXRjaGVkV2lkdGhzLnNldChfZWUoU0EsdGhpcyksYSl9fWZ1bmN0aW9uIEpIKGMsbCxhKXt3NmUoYyxsKSxsLnNldChjLGEpfWZ1bmN0aW9uIHc2ZShjLGwpe2lmKGwuaGFzKGMpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0'@; put 'aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9ZnVuY3Rpb24gY3UoYyxsKXtyZXR1cm4gYy5nZXQoX3coYyxsKSl9ZnVuY3Rpb24gd2VlKGMsbCxhKXtyZXR1cm4gYy5zZXQoX3coYyxsKSxhKSxhfWZ1bmN0aW9uIF93KGMsbCxhKXtpZigiZnVu'@; put 'Y3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhsKSlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzP2w6YTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGVsZW1lbnQgaXMgbm90IHByZXNlbnQgb24gdGhpcyBvYmplY3QiKX12YXIgTTE9bmV3IFdlYWtNYXAsd3c9bmV3IFdlYWtNYXAs'@; put 'Q2VlPW5ldyBXZWFrTWFwLFFIPW5ldyBXZWFrTWFwLE1BPW5ldyBXZWFrU2V0O2NsYXNzIHA1dHtjb25zdHJ1Y3RvcihsKXsoZnVuY3Rpb24gaDV0KGMsbCl7dzZlKGMsbCksbC5hZGQoYyl9KSh0aGlzLE1BKSxKSCh0aGlzLE0xLHZvaWQgMCksSkgodGhpcyx3dyx2b2lkIDApLEpIKHRoaXMs'@; put 'Q2VlLG5ldyBNYXAoW1siYWxsIixuZXcgYzV0KF93KE1BLHRoaXMsQzZlKS5iaW5kKHRoaXMpKV0sWyJsYXN0IixuZXcgZDV0KF93KE1BLHRoaXMsQzZlKS5iaW5kKHRoaXMpKV1dKSksSkgodGhpcyxRSCwibm9uZSIpLHdlZShNMSx0aGlzLGwpLHdlZSh3dyx0aGlzLGN1KE0xLHRoaXMpLmNv'@; put 'bHVtbkluZGV4TWFwcGVyLmNyZWF0ZUFuZFJlZ2lzdGVySW5kZXhNYXAoInN0cmV0Y2hDb2x1bW5zIiwicGh5c2ljYWxJbmRleFRvVmFsdWUiKSl9dXNlU3RyYXRlZ3kobCl7d2VlKFFILHRoaXMsY3UoQ2VlLHRoaXMpLmhhcyhsKT9sOiJub25lIil9cmVmcmVzaFN0cmV0Y2hpbmcoKXsibm9u'@; put 'ZSIhPT1jdShRSCx0aGlzKT9jdShNMSx0aGlzKS5iYXRjaEV4ZWN1dGlvbigoKT0+e2N1KHd3LHRoaXMpLmNsZWFyKCk7Y29uc3QgbD1jdShDZWUsdGhpcykuZ2V0KGN1KFFILHRoaXMpKTtsZXQgZD1jdShNMSx0aGlzKS52aWV3LmdldFZpZXdwb3J0V2lkdGgoKTtfdyhNQSx0aGlzLGc1dCku'@; put 'Y2FsbCh0aGlzKSYmKGQtPWQwKGN1KE0xLHRoaXMpLnJvb3REb2N1bWVudCkpLGwucHJlcGFyZSh7dmlld3BvcnRXaWR0aDpkfSk7Zm9yKGxldCBoPTA7aDxjdShNMSx0aGlzKS5jb3VudENvbHMoKTtoKyspY3UoTTEsdGhpcykuY29sdW1uSW5kZXhNYXBwZXIuaXNIaWRkZW4oY3UoTTEsdGhp'@; put 'cykudG9QaHlzaWNhbENvbHVtbihoKSl8fGwuc2V0Q29sdW1uQmFzZVdpZHRoKGgsX3coTUEsdGhpcyxtNXQpLmNhbGwodGhpcyxoKSk7bC5jYWxjdWxhdGUoKSxsLmdldFdpZHRocygpLmZvckVhY2goaD0+e2xldFtmLHZdPWg7Y3Uod3csdGhpcykuc2V0VmFsdWVBdEluZGV4KGN1KE0xLHRo'@; put 'aXMpLnRvUGh5c2ljYWxDb2x1bW4oZiksdil9KX0sITApOmN1KHd3LHRoaXMpLmNsZWFyKCl9Z2V0U3RyZXRjaGVkV2lkdGgobCl7cmV0dXJuIGN1KHd3LHRoaXMpLmdldFZhbHVlQXRJbmRleChjdShNMSx0aGlzKS50b1BoeXNpY2FsQ29sdW1uKGwpKX19ZnVuY3Rpb24gZzV0KCl7Y29uc3R7'@; put 'dmlldzpjLHN0eWxlc0hhbmRsZXI6bH09Y3UoTTEsdGhpcyk7aWYoYy5pc1ZlcnRpY2FsbHlTY3JvbGxhYmxlQnlXaW5kb3coKSlyZXR1cm4hMTtjb25zdCBhPWMuZ2V0Vmlld3BvcnRIZWlnaHQoKSxkPWN1KE0xLHRoaXMpLmNvdW50Um93cygpLGg9bC5nZXREZWZhdWx0Um93SGVpZ2h0KCk7'@; put 'bGV0IGY9MCx2PSExO2ZvcihsZXQgST0wO0k8ZDtJKyspe3ZhciBNO2lmKGYrPShudWxsIT09KE09Y3UoTTEsdGhpcykuZ2V0Um93SGVpZ2h0KEkpKSYmdm9pZCAwIT09TT9NOmgpKygwPT09ST8xOjApLGY+YSl7dj0hMDticmVha319cmV0dXJuIHZ9ZnVuY3Rpb24gbTV0KGMpe3ZhciBsO3Jl'@; put 'dHVybiBudWxsIT09KGw9Y3UoTTEsdGhpcykuZ2V0Q29sV2lkdGgoYywiU3RyZXRjaENvbHVtbnMiKSkmJnZvaWQgMCE9PWw/bDpiX31mdW5jdGlvbiBDNmUoYyxsKXtyZXR1cm4gY3UoTTEsdGhpcykucnVuSG9va3MoImJlZm9yZVN0cmV0Y2hpbmdDb2x1bW5XaWR0aCIsYyxsKX1mdW5jdGlv'@; put 'biBTZWUoYyxsLGEpe1M2ZShjLGwpLGwuc2V0KGMsYSl9ZnVuY3Rpb24gUzZlKGMsbCl7aWYobC5oYXMoYykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX1mdW5jdGlvbiBNZWUoYyxs'@; put 'LGEpe3JldHVybiBjLnNldChlTihjLGwpLGEpLGF9ZnVuY3Rpb24gWWcoYyxsKXtyZXR1cm4gYy5nZXQoZU4oYyxsKSl9ZnVuY3Rpb24gZU4oYyxsLGEpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBjP2M9PT1sOmMuaGFzKGwpKXJldHVybiBhcmd1bWVudHMubGVuZ3RoPDM/bDphO3Rocm93IG5l'@; put 'dyBUeXBlRXJyb3IoIlByaXZhdGUgZWxlbWVudCBpcyBub3QgcHJlc2VudCBvbiB0aGlzIG9iamVjdCIpfXZhciBDdz1uZXcgV2Vha01hcCx0Tj1uZXcgV2Vha01hcCx4QT1uZXcgV2Vha01hcCx4ZWU9bmV3IFdlYWtTZXQ7Y2xhc3MgXzV0IGV4dGVuZHMgRm97Y29uc3RydWN0b3IoKXtzdXBl'@; put 'ciguLi5hcmd1bWVudHMpLGZ1bmN0aW9uIHY1dChjLGwpe1M2ZShjLGwpLGwuYWRkKGMpfSh0aGlzLHhlZSksU2VlKHRoaXMsQ3csbmV3IHA1dCh0aGlzLmhvdCkpLFNlZSh0aGlzLHROLG51bGwpLFNlZSh0aGlzLHhBLG5ldyBSZXNpemVPYnNlcnZlcihsPT57cmVxdWVzdEFuaW1hdGlvbkZy'@; put 'YW1lKCgpPT57dmFyIGE7bnVsbCE9PShhPXRoaXMuaG90KSYmdm9pZCAwIT09YSYmYS52aWV3LmlzSG9yaXpvbnRhbGx5U2Nyb2xsYWJsZUJ5V2luZG93KCkmJmwuZm9yRWFjaChkPT57bGV0e2NvbnRlbnRSZWN0Omh9PWQ7bnVsbCE9PVlnKHROLHRoaXMpJiZZZyh0Tix0aGlzKSE9PWgud2lk'@; put 'dGgmJih0aGlzLmhvdC5yZWZyZXNoRGltZW5zaW9ucygpLHRoaXMuaG90LnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCkpLE1lZSh0Tix0aGlzLGgud2lkdGgpfSl9KX0pKX1zdGF0aWMgZ2V0IFBMVUdJTl9LRVkoKXtyZXR1cm4ic3RyZXRjaENvbHVtbnMifXN0YXRpYyBnZXQgUExVR0lOX1BS'@; put 'SU9SSVRZKCl7cmV0dXJuIDE1NX1zdGF0aWMgZ2V0IFNFVFRJTkdfS0VZUygpe3JldHVybiEwfWlzRW5hYmxlZCgpe3JldHVyblsiYWxsIiwibGFzdCJdLmluY2x1ZGVzKHRoaXMuaG90LmdldFNldHRpbmdzKCkuc3RyZXRjaEgpfWVuYWJsZVBsdWdpbigpe3ZhciBsPXRoaXM7dGhpcy5lbmFi'@; put 'bGVkfHwoWWcoQ3csdGhpcykudXNlU3RyYXRlZ3kodGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5zdHJldGNoSCksWWcoeEEsdGhpcykub2JzZXJ2ZSh0aGlzLmhvdC5yb290RWxlbWVudCksdGhpcy5hZGRIb29rKCJiZWZvcmVSZW5kZXIiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhPWFyZ3VtZW50cy5s'@; put 'ZW5ndGgsZD1uZXcgQXJyYXkoYSksaD0wO2g8YTtoKyspZFtoXT1hcmd1bWVudHNbaF07cmV0dXJuIGVOKHhlZSxsLEM1dCkuY2FsbChsLC4uLmQpfSksdGhpcy5hZGRIb29rKCJtb2RpZnlDb2xXaWR0aCIsZnVuY3Rpb24oKXtmb3IodmFyIGE9YXJndW1lbnRzLmxlbmd0aCxkPW5ldyBBcnJh'@; put 'eShhKSxoPTA7aDxhO2grKylkW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gZU4oeGVlLGwsdzV0KS5jYWxsKGwsLi4uZCl9LDEwKSxzdXBlci5lbmFibGVQbHVnaW4oKSl9dXBkYXRlUGx1Z2luKCl7WWcoQ3csdGhpcykudXNlU3RyYXRlZ3kodGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5zdHJldGNo'@; put 'SCksc3VwZXIudXBkYXRlUGx1Z2luKCl9ZGlzYWJsZVBsdWdpbigpe3N1cGVyLmRpc2FibGVQbHVnaW4oKSxZZyh4QSx0aGlzKS51bm9ic2VydmUodGhpcy5ob3Qucm9vdEVsZW1lbnQpfWdldENvbHVtbldpZHRoKGwpe3JldHVybiBZZyhDdyx0aGlzKS5nZXRTdHJldGNoZWRXaWR0aChsKX1k'@; put 'ZXN0cm95KCl7WWcoeEEsdGhpcykuZGlzY29ubmVjdCgpLE1lZSh4QSx0aGlzLG51bGwpLE1lZShDdyx0aGlzLG51bGwpLHN1cGVyLmRlc3Ryb3koKX19ZnVuY3Rpb24gdzV0KGMsbCxhKXtpZihhPT09dGhpcy5wbHVnaW5OYW1lKXJldHVybjtjb25zdCBkPXRoaXMuZ2V0Q29sdW1uV2lkdGgo'@; put 'bCk7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBkP2Q6Y31mdW5jdGlvbiBDNXQoYyl7YyYmWWcoQ3csdGhpcykucmVmcmVzaFN0cmV0Y2hpbmcoKX1mdW5jdGlvbiBuTihjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24geDV0KGMpe3ZhciBsPWZ1bmN0aW9uIEU1dChjLGwpe2lmKCJvYmplY3QiIT10'@; put 'eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCBy'@; put 'ZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6'@; put 'ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9ZnVuY3Rpb24gRWVlKGMsbCxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhsKSlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzP2w6YTt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGVsZW1l'@; put 'bnQgaXMgbm90IHByZXNlbnQgb24gdGhpcyBvYmplY3QiKX12YXIgck49bmV3IFdlYWtTZXQ7Y2xhc3MgazV0IGV4dGVuZHMgRm97Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGZ1bmN0aW9uIFM1dChjLGwpeyhmdW5jdGlvbiBNNXQoYyxsKXtpZihsLmhhcyhjKSl0aHJvdyBu'@; put 'ZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfSkoYyxsKSxsLmFkZChjKX0odGhpcyxyTiksbk4odGhpcywic2Nyb2xsYmFycyIsW10pLG5OKHRoaXMsImNsb25lcyIsW10pLG5OKHRoaXMsImxvY2tl'@; put 'ZENvbGxlY3Rpb24iLCExKSxuTih0aGlzLCJmcmVlemVPdmVybGF5cyIsITEpfXN0YXRpYyBnZXQgUExVR0lOX0tFWSgpe3JldHVybiJ0b3VjaFNjcm9sbCJ9c3RhdGljIGdldCBQTFVHSU5fUFJJT1JJVFkoKXtyZXR1cm4gMjAwfXN0YXRpYyBnZXQgU0VUVElOR19LRVlTKCl7cmV0dXJuITB9'@; put 'aXNFbmFibGVkKCl7cmV0dXJuIHckKCl9ZW5hYmxlUGx1Z2luKCl7dGhpcy5lbmFibGVkfHwodGhpcy5hZGRIb29rKCJhZnRlclZpZXdSZW5kZXIiLCgpPT5FZWUock4sdGhpcyxENXQpLmNhbGwodGhpcykpLHRoaXMucmVnaXN0ZXJFdmVudHMoKSxzdXBlci5lbmFibGVQbHVnaW4oKSl9dXBk'@; put 'YXRlUGx1Z2luKCl7dGhpcy5sb2NrZWRDb2xsZWN0aW9uPSExLHN1cGVyLnVwZGF0ZVBsdWdpbigpfWRpc2FibGVQbHVnaW4oKXtzdXBlci5kaXNhYmxlUGx1Z2luKCl9cmVnaXN0ZXJFdmVudHMoKXt0aGlzLmFkZEhvb2soImJlZm9yZVRvdWNoU2Nyb2xsIiwoKT0+RWVlKHJOLHRoaXMsSTV0'@; put 'KS5jYWxsKHRoaXMpKSx0aGlzLmFkZEhvb2soImFmdGVyTW9tZW50dW1TY3JvbGwiLCgpPT5FZWUock4sdGhpcyxSNXQpLmNhbGwodGhpcykpfX1mdW5jdGlvbiBENXQoKXtpZih0aGlzLmxvY2tlZENvbGxlY3Rpb24pcmV0dXJuO2NvbnN0e3RvcE92ZXJsYXk6Yyxib3R0b21PdmVybGF5Omws'@; put 'aW5saW5lU3RhcnRPdmVybGF5OmEsdG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5OmQsYm90dG9tSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5Omh9PXRoaXMuaG90LnZpZXcuX3d0Lnd0T3ZlcmxheXM7dGhpcy5sb2NrZWRDb2xsZWN0aW9uPSEwLHRoaXMuc2Nyb2xsYmFycy5sZW5ndGg9MCx0'@; put 'aGlzLnNjcm9sbGJhcnMucHVzaChjKSxsLmNsb25lJiZ0aGlzLnNjcm9sbGJhcnMucHVzaChsKSx0aGlzLnNjcm9sbGJhcnMucHVzaChhKSxkJiZ0aGlzLnNjcm9sbGJhcnMucHVzaChkKSxoJiZoLmNsb25lJiZ0aGlzLnNjcm9sbGJhcnMucHVzaChoKSx0aGlzLmNsb25lcz1bXSxjLm5lZWRG'@; put 'dWxsUmVuZGVyJiZ0aGlzLmNsb25lcy5wdXNoKGMuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZSksbC5uZWVkRnVsbFJlbmRlciYmdGhpcy5jbG9uZXMucHVzaChsLmNsb25lLnd0VGFibGUuaG9sZGVyLnBhcmVudE5vZGUpLGEubmVlZEZ1bGxSZW5kZXImJnRoaXMuY2xvbmVzLnB1'@; put 'c2goYS5jbG9uZS53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlKSxkJiZ0aGlzLmNsb25lcy5wdXNoKGQuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZSksaCYmaC5jbG9uZSYmdGhpcy5jbG9uZXMucHVzaChoLmNsb25lLnd0VGFibGUuaG9sZGVyLnBhcmVudE5vZGUpfWZ1bmN0aW9u'@; put 'IEk1dCgpe3RoaXMuZnJlZXplT3ZlcmxheXM9ITAsS24odGhpcy5jbG9uZXMsYz0+e0VpKGMsImhpZGUtdHdlZW4iKX0pfWZ1bmN0aW9uIFI1dCgpe3RoaXMuZnJlZXplT3ZlcmxheXM9ITEsS24odGhpcy5jbG9uZXMsYz0+e2hzKGMsImhpZGUtdHdlZW4iKSxFaShjLCJzaG93LXR3ZWVuIil9'@; put 'KSx0aGlzLmhvdC5fcmVnaXN0ZXJUaW1lb3V0KCgpPT57S24odGhpcy5jbG9uZXMsYz0+e2hzKGMsInNob3ctdHdlZW4iKX0pfSw0MDApLEtuKHRoaXMuc2Nyb2xsYmFycyxjPT57Yy5yZWZyZXNoKCksYy5yZXNldEZpeGVkUG9zaXRpb24oKX0pLHRoaXMuaG90LnZpZXcuX3d0Lnd0T3Zlcmxh'@; put 'eXMuc3luY1Njcm9sbFdpdGhNYXN0ZXIoKX1jb25zdCBpTj0idHJpbVJvd3MiO3ZhciBNNmU9bmV3IFdlYWtTZXQ7Y2xhc3MgQjV0IGV4dGVuZHMgRm97Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLGZ1bmN0aW9uIEw1dChjLGwpeyhmdW5jdGlvbiBPNXQoYyxsKXtpZihsLmhh'@; put 'cyhjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfSkoYyxsKSxsLmFkZChjKX0odGhpcyxNNmUpLGZ1bmN0aW9uIFA1dChjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gRjV0KGMpe3Zh'@; put 'ciBsPWZ1bmN0aW9uIEg1dChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93'@; put 'IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVm'@; put 'aW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9KHRoaXMsInRyaW1tZWRSb3dzTWFwIixudWxsKX1zdGF0aWMgZ2V0IFBMVUdJTl9LRVkoKXtyZXR1cm4gaU59c3RhdGljIGdldCBQTFVHSU5fUFJJT1JJ'@; put 'VFkoKXtyZXR1cm4gMzMwfWlzRW5hYmxlZCgpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtpTl19ZW5hYmxlUGx1Z2luKCl7dGhpcy5lbmFibGVkfHwodGhpcy50cmltbWVkUm93c01hcD10aGlzLmhvdC5yb3dJbmRleE1hcHBlci5yZWdpc3Rlck1hcCgidHJpbVJvd3MiLG5ldyBx'@; put 'RSksdGhpcy50cmltbWVkUm93c01hcC5hZGRMb2NhbEhvb2soImluaXQiLCgpPT5mdW5jdGlvbiBONXQoYyxsLGEpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBjP2M9PT1sOmMuaGFzKGwpKXJldHVybiBhcmd1bWVudHMubGVuZ3RoPDM/bDphO3Rocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUg'@; put 'ZWxlbWVudCBpcyBub3QgcHJlc2VudCBvbiB0aGlzIG9iamVjdCIpfShNNmUsdGhpcyxqNXQpLmNhbGwodGhpcykpLHN1cGVyLmVuYWJsZVBsdWdpbigpKX11cGRhdGVQbHVnaW4oKXtjb25zdCBsPXRoaXMuaG90LmdldFNldHRpbmdzKClbaU5dO0FycmF5LmlzQXJyYXkobCkmJnRoaXMuaG90'@; put 'LmJhdGNoRXhlY3V0aW9uKCgpPT57dGhpcy50cmltbWVkUm93c01hcC5jbGVhcigpLEtuKGwsYT0+e3RoaXMudHJpbW1lZFJvd3NNYXAuc2V0VmFsdWVBdEluZGV4KGEsITApfSl9LCEwKSxzdXBlci51cGRhdGVQbHVnaW4oKX1kaXNhYmxlUGx1Z2luKCl7dGhpcy5ob3Qucm93SW5kZXhNYXBw'@; put 'ZXIudW5yZWdpc3Rlck1hcCgidHJpbVJvd3MiKSxzdXBlci5kaXNhYmxlUGx1Z2luKCl9Z2V0VHJpbW1lZFJvd3MoKXtyZXR1cm4gdGhpcy50cmltbWVkUm93c01hcC5nZXRUcmltbWVkSW5kZXhlcygpfXRyaW1Sb3dzKGwpe2NvbnN0IGE9dGhpcy5nZXRUcmltbWVkUm93cygpLGQ9dGhpcy5p'@; put 'c1ZhbGlkQ29uZmlnKGwpO2xldCBoPWE7ZCYmKGg9QXJyYXkuZnJvbShuZXcgU2V0KGEuY29uY2F0KGwpKSkpLCExIT09dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZVRyaW1Sb3ciLGEsaCxkKSYmKGQmJnRoaXMuaG90LmJhdGNoRXhlY3V0aW9uKCgpPT57S24obCx2PT57dGhpcy50cmltbWVk'@; put 'Um93c01hcC5zZXRWYWx1ZUF0SW5kZXgodiwhMCl9KX0sITApLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlclRyaW1Sb3ciLGEsaCxkLGQmJmgubGVuZ3RoPmEubGVuZ3RoKSl9dHJpbVJvdygpe2Zvcih2YXIgbD1hcmd1bWVudHMubGVuZ3RoLGE9bmV3IEFycmF5KGwpLGQ9MDtkPGw7ZCsrKWFb'@; put 'ZF09YXJndW1lbnRzW2RdO3RoaXMudHJpbVJvd3MoYSl9dW50cmltUm93cyhsKXtjb25zdCBhPXRoaXMuZ2V0VHJpbW1lZFJvd3MoKSxkPXRoaXMuaXNWYWxpZENvbmZpZyhsKTtsZXQgaD1hO2NvbnN0IGY9dGhpcy50cmltbWVkUm93c01hcC5nZXRWYWx1ZXMoKS5zbGljZSgpLHY9bC5sZW5n'@; put 'dGg+MDtkJiZ2JiYoS24obCxJPT57ZltJXT0hMX0pLGg9R3UoZiwoSSxHLHJlKT0+KEcmJkkucHVzaChyZSksSSksW10pKSwhMSE9PXRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVVbnRyaW1Sb3ciLGEsaCxkJiZ2KSYmKGQmJnYmJnRoaXMudHJpbW1lZFJvd3NNYXAuc2V0VmFsdWVzKGYpLHRo'@; put 'aXMuaG90LnJ1bkhvb2tzKCJhZnRlclVudHJpbVJvdyIsYSxoLGQmJnYsZCYmaC5sZW5ndGg8YS5sZW5ndGgpKX11bnRyaW1Sb3coKXtmb3IodmFyIGw9YXJndW1lbnRzLmxlbmd0aCxhPW5ldyBBcnJheShsKSxkPTA7ZDxsO2QrKylhW2RdPWFyZ3VtZW50c1tkXTt0aGlzLnVudHJpbVJvd3Mo'@; put 'YSl9aXNUcmltbWVkKGwpe3JldHVybiB0aGlzLnRyaW1tZWRSb3dzTWFwLmdldFZhbHVlQXRJbmRleChsKXx8ITF9dW50cmltQWxsKCl7dGhpcy51bnRyaW1Sb3dzKHRoaXMuZ2V0VHJpbW1lZFJvd3MoKSl9aXNWYWxpZENvbmZpZyhsKXtjb25zdCBhPXRoaXMuaG90LmNvdW50U291cmNlUm93'@; put 'cygpO3JldHVybiBsLmV2ZXJ5KGQ9Pk51bWJlci5pc0ludGVnZXIoZCkmJmQ+PTAmJmQ8YSl9ZGVzdHJveSgpe3N1cGVyLmRlc3Ryb3koKX19ZnVuY3Rpb24gajV0KCl7Y29uc3QgYz10aGlzLmhvdC5nZXRTZXR0aW5ncygpW2lOXTtBcnJheS5pc0FycmF5KGMpJiZ0aGlzLmhvdC5iYXRjaEV4'@; put 'ZWN1dGlvbigoKT0+e0tuKGMsbD0+e3RoaXMudHJpbW1lZFJvd3NNYXAuc2V0VmFsdWVBdEluZGV4KGwsITApfSl9LCEwKX1jbGFzcyBsZntjb25zdHJ1Y3RvcihsKXsoZnVuY3Rpb24gejV0KGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBVNXQoYyl7dmFyIGw9ZnVuY3Rpb24gWjV0KGMsbCl7'@; put 'aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1By'@; put 'aW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVl'@; put 'OmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY30pKHRoaXMsImFjdGlvblR5cGUiLCIiKSx0aGlzLmFjdGlvblR5cGU9bH11bmRvKCl7dGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQiKX1yZWRvKCl7dGhyb3cgbmV3IEVycm9yKCJO'@; put 'b3QgaW1wbGVtZW50ZWQiKX19ZnVuY3Rpb24gYU4oYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIFc1dChjKXt2YXIgbD1mdW5jdGlvbiBZNXQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2'@; put 'YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9'@; put 'KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWNsYXNzIFRlZSBleHRlbmRzIGxme2Nv'@; put 'bnN0cnVjdG9yKGwpe2xldHtzdGF0ZUJlZm9yZTphLHJhbmdlOmQsdHlwZTpoLGFsaWdubWVudDpmfT1sO3N1cGVyKCJjZWxsX2FsaWdubWVudCIpLGFOKHRoaXMsInN0YXRlQmVmb3JlIix2b2lkIDApLGFOKHRoaXMsInJhbmdlIix2b2lkIDApLGFOKHRoaXMsInR5cGUiLHZvaWQgMCksYU4o'@; put 'dGhpcywiYWxpZ25tZW50Iix2b2lkIDApLHRoaXMuc3RhdGVCZWZvcmU9YSx0aGlzLnJhbmdlPWQsdGhpcy50eXBlPWgsdGhpcy5hbGlnbm1lbnQ9Zn1zdGF0aWMgc3RhcnRSZWdpc3RlcmluZ0V2ZW50cyhsLGEpe2wuYWRkSG9vaygiYmVmb3JlQ2VsbEFsaWdubWVudCIsKGQsaCxmLHYpPT57'@; put 'YS5kb25lKCgpPT5uZXcgVGVlKHtzdGF0ZUJlZm9yZTpkLHJhbmdlOmgsdHlwZTpmLGFsaWdubWVudDp2fSkpfSl9dW5kbyhsLGEpe0tuKHRoaXMucmFuZ2UsZD0+e2QuZm9yQWxsKChoLGYpPT57aD49MCYmZj49MCYmbC5zZXRDZWxsTWV0YShoLGYsImNsYXNzTmFtZSIsdGhpcy5zdGF0ZUJl'@; put 'Zm9yZVtoXVtmXXx8IiBodExlZnQiKX0pfSksbC5hZGRIb29rT25jZSgiYWZ0ZXJWaWV3UmVuZGVyIixhKSxsLnJlbmRlcigpfXJlZG8obCxhKXtYbSh0aGlzLnJhbmdlLHRoaXMudHlwZSx0aGlzLmFsaWdubWVudCwoZCxoKT0+bC5nZXRDZWxsTWV0YShkLGgpLChkLGgsZix2KT0+bC5zZXRD'@; put 'ZWxsTWV0YShkLGgsZix2KSksbC5hZGRIb29rT25jZSgiYWZ0ZXJWaWV3UmVuZGVyIixhKSxsLnJlbmRlcigpfX1mdW5jdGlvbiB4NmUoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIEc1dChjKXt2YXIgbD1mdW5jdGlvbiAkNXQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVy'@; put 'biBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZl'@; put 'IHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZToh'@; put 'MCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWNsYXNzIEFlZSBleHRlbmRzIGxme2NvbnN0cnVjdG9yKGwpe2xldHtjb2x1bW5zOmEsZmluYWxJbmRleDpkfT1sO3N1cGVyKCJjb2xfbW92ZSIpLHg2ZSh0aGlzLCJjb2x1bW5zIix2b2lkIDApLHg2ZSh0aGlzLCJmaW5hbENvbHVtbkluZGV4Iix2'@; put 'b2lkIDApLHRoaXMuY29sdW1ucz1hLnNsaWNlKCksdGhpcy5maW5hbENvbHVtbkluZGV4PWR9c3RhdGljIHN0YXJ0UmVnaXN0ZXJpbmdFdmVudHMobCxhKXtsLmFkZEhvb2soImJlZm9yZUNvbHVtbk1vdmUiLChkLGgpPT57ITEhPT1kJiZhLmRvbmUoKCk9Pm5ldyBBZWUoe2NvbHVtbnM6ZCxm'@; put 'aW5hbEluZGV4Omh9KSl9KX11bmRvKGwsYSl7Y29uc3QgZD1sLmdldFBsdWdpbigibWFudWFsQ29sdW1uTW92ZSIpO2wuYWRkSG9va09uY2UoImFmdGVyVmlld1JlbmRlciIsYSksUlEodGhpcy5jb2x1bW5zLHRoaXMuZmluYWxDb2x1bW5JbmRleCxsLmNvbHVtbkluZGV4TWFwcGVyLmdldE51'@; put 'bWJlck9mSW5kZXhlcygpKS5yZXZlcnNlKCkuZm9yRWFjaChmPT57bGV0e2Zyb206dix0bzpNfT1mO3Y8TSYmKE0tPTEpLGQubW92ZUNvbHVtbihNLHYpfSksbC5yZW5kZXIoKSxsLmRlc2VsZWN0Q2VsbCgpLGwuc2VsZWN0Q29sdW1ucyh0aGlzLmNvbHVtbnNbMF0sdGhpcy5jb2x1bW5zWzBd'@; put 'K3RoaXMuY29sdW1ucy5sZW5ndGgtMSl9cmVkbyhsLGEpe2NvbnN0IGQ9bC5nZXRQbHVnaW4oIm1hbnVhbENvbHVtbk1vdmUiKTtsLmFkZEhvb2tPbmNlKCJhZnRlclZpZXdSZW5kZXIiLGEpLGQubW92ZUNvbHVtbnModGhpcy5jb2x1bW5zLnNsaWNlKCksdGhpcy5maW5hbENvbHVtbkluZGV4'@; put 'KSxsLnJlbmRlcigpLGwuZGVzZWxlY3RDZWxsKCksbC5zZWxlY3RDb2x1bW5zKHRoaXMuZmluYWxDb2x1bW5JbmRleCx0aGlzLmZpbmFsQ29sdW1uSW5kZXgrdGhpcy5jb2x1bW5zLmxlbmd0aC0xKX19ZnVuY3Rpb24gRTZlKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBLNXQoYyl7dmFyIGw9'@; put 'ZnVuY3Rpb24gWDV0KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3'@; put 'IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQ'@; put 'cm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31jbGFzcyBrZWUgZXh0ZW5kcyBsZntjb25zdHJ1Y3RvcihsKXtsZXR7Y3VycmVudFNvcnRTdGF0ZTphLG5ld1NvcnRTdGF0ZTpkfT1sO3N1cGVyKCJjb2xfc29y'@; put 'dCIpLEU2ZSh0aGlzLCJwcmV2aW91c1NvcnRTdGF0ZSIsdm9pZCAwKSxFNmUodGhpcywibmV4dFNvcnRTdGF0ZSIsdm9pZCAwKSx0aGlzLnByZXZpb3VzU29ydFN0YXRlPWEsdGhpcy5uZXh0U29ydFN0YXRlPWR9c3RhdGljIHN0YXJ0UmVnaXN0ZXJpbmdFdmVudHMobCxhKXtsLmFkZEhvb2so'@; put 'ImJlZm9yZUNvbHVtblNvcnQiLChkLGgsZik9PntmJiZhLmRvbmUoKCk9Pm5ldyBrZWUoe2N1cnJlbnRTb3J0U3RhdGU6ZCxuZXdTb3J0U3RhdGU6aH0pKX0pfXVuZG8obCxhKXtjb25zdCBkPWwuZ2V0UGx1Z2luKCJjb2x1bW5Tb3J0aW5nIiksaD1sLmdldFBsdWdpbigibXVsdGlDb2x1bW5T'@; put 'b3J0aW5nIiksZj1oLmlzRW5hYmxlZCgpP2g6ZDt0aGlzLnByZXZpb3VzU29ydFN0YXRlLmxlbmd0aD9mLnNvcnQodGhpcy5wcmV2aW91c1NvcnRTdGF0ZSk6Zi5jbGVhclNvcnQoKSxhKCl9cmVkbyhsLGEpe2NvbnN0IGQ9bC5nZXRQbHVnaW4oImNvbHVtblNvcnRpbmciKSxoPWwuZ2V0UGx1'@; put 'Z2luKCJtdWx0aUNvbHVtblNvcnRpbmciKTsoaC5pc0VuYWJsZWQoKT9oOmQpLnNvcnQodGhpcy5uZXh0U29ydFN0YXRlKSxhKCl9fWZ1bmN0aW9uIFQ2ZShjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gcTV0KGMpe3ZhciBsPWZ1bmN0aW9uIEo1dChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2Yg'@; put 'Y3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4g'@; put 'YSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29u'@; put 'ZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9Y2xhc3MgRGVlIGV4dGVuZHMgbGZ7Y29uc3RydWN0b3IobCl7bGV0e2luZGV4OmEsYW1vdW50OmR9PWw7c3VwZXIoImluc2VydF9jb2wiKSxUNmUodGhpcywiaW5kZXgiLHZvaWQgMCksVDZlKHRoaXMsImFtb3VudCIsdm9pZCAw'@; put 'KSx0aGlzLmluZGV4PWEsdGhpcy5hbW91bnQ9ZH1zdGF0aWMgc3RhcnRSZWdpc3RlcmluZ0V2ZW50cyhsLGEpe2wuYWRkSG9vaygiYWZ0ZXJDcmVhdGVDb2wiLChkLGgsZik9PnthLmRvbmUoKCk9Pm5ldyBEZWUoe2luZGV4OmQsYW1vdW50Omh9KSxmKX0pfXVuZG8obCxhKXtsLmFkZEhvb2tP'@; put 'bmNlKCJhZnRlclJlbW92ZUNvbCIsYSksbC5hbHRlcigicmVtb3ZlX2NvbCIsdGhpcy5pbmRleCx0aGlzLmFtb3VudCwiVW5kb1JlZG8udW5kbyIpfXJlZG8obCxhKXtsLmFkZEhvb2tPbmNlKCJhZnRlckNyZWF0ZUNvbCIsYSksbC5hbHRlcigiaW5zZXJ0X2NvbF9zdGFydCIsdGhpcy5pbmRl'@; put 'eCx0aGlzLmFtb3VudCwiVW5kb1JlZG8ucmVkbyIpfX1mdW5jdGlvbiBBNmUoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIFE1dChjKXt2YXIgbD1mdW5jdGlvbiBlbXQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZlXTtp'@; put 'Zih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/U3Ry'@; put 'aW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWNsYXNzIEll'@; put 'ZSBleHRlbmRzIGxme2NvbnN0cnVjdG9yKGwpe2xldHtpbmRleDphLGFtb3VudDpkfT1sO3N1cGVyKCJpbnNlcnRfcm93IiksQTZlKHRoaXMsImluZGV4Iix2b2lkIDApLEE2ZSh0aGlzLCJhbW91bnQiLHZvaWQgMCksdGhpcy5pbmRleD1hLHRoaXMuYW1vdW50PWR9c3RhdGljIHN0YXJ0UmVn'@; put 'aXN0ZXJpbmdFdmVudHMobCxhKXtsLmFkZEhvb2soImFmdGVyQ3JlYXRlUm93IiwoZCxoLGYpPT57YS5kb25lKCgpPT5uZXcgSWVlKHtpbmRleDpkLGFtb3VudDpofSksZil9KX11bmRvKGwsYSl7Y29uc3QgZD1sLmNvdW50Um93cygpLGg9bC5nZXRTZXR0aW5ncygpLm1pblNwYXJlUm93czt0'@; put 'aGlzLmluZGV4Pj1kJiZ0aGlzLmluZGV4LWg8ZCYmKHRoaXMuaW5kZXgtPWgpLGwuYWRkSG9va09uY2UoImFmdGVyUmVtb3ZlUm93IixhKSxsLmFsdGVyKCJyZW1vdmVfcm93Iix0aGlzLmluZGV4LHRoaXMuYW1vdW50LCJVbmRvUmVkby51bmRvIil9cmVkbyhsLGEpe2wuYWRkSG9va09uY2Uo'@; put 'ImFmdGVyQ3JlYXRlUm93IixhKSxsLmFsdGVyKCJpbnNlcnRfcm93X2Fib3ZlIix0aGlzLmluZGV4LHRoaXMuYW1vdW50LCJVbmRvUmVkby5yZWRvIil9fWZ1bmN0aW9uIHNOKGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiB0bXQoYyl7dmFyIGw9ZnVuY3Rpb24gbm10KGMsbCl7aWYoIm9iamVj'@; put 'dCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBt'@; put 'dXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVy'@; put 'YWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31jbGFzcyBSZWUgZXh0ZW5kcyBsZntjb25zdHJ1Y3RvcihsKXtsZXR7Y2hhbmdlczphLHNlbGVjdGVkOmQsY291bnRDb2xzOmgsY291bnRSb3dzOmZ9PWw7c3VwZXIoImNoYW5nZSIpLHNOKHRoaXMsImNoYW5n'@; put 'ZXMiLHZvaWQgMCksc04odGhpcywic2VsZWN0ZWQiLHZvaWQgMCksc04odGhpcywiY291bnRDb2xzIix2b2lkIDApLHNOKHRoaXMsImNvdW50Um93cyIsdm9pZCAwKSx0aGlzLmNoYW5nZXM9YSx0aGlzLnNlbGVjdGVkPWQsdGhpcy5jb3VudENvbHM9aCx0aGlzLmNvdW50Um93cz1mfXN0YXRp'@; put 'YyBzdGFydFJlZ2lzdGVyaW5nRXZlbnRzKGwsYSl7bC5hZGRIb29rKCJiZWZvcmVDaGFuZ2UiLGZ1bmN0aW9uKGQsaCl7Y29uc3QgZj1kJiZkLmxlbmd0aDtmJiZkLmZpbmQoST0+e2NvbnN0WywsRyxyZV09STtyZXR1cm4gRyE9PXJlfSkmJmEuZG9uZSgoKT0+e2NvbnN0IEk9ZC5yZWR1Y2Uo'@; put 'KHJlLHVlKT0+KHJlLnB1c2goWy4uLnVlXSkscmUpLFtdKTtJLmZvckVhY2gocmU9PntyZVsxXT1sLnByb3BUb0NvbChyZVsxXSl9KTtjb25zdCBHPWY+MT90aGlzLmdldFNlbGVjdGVkKCk6W1tJWzBdWzBdLElbMF1bMV1dXTtyZXR1cm4gbmV3IFJlZSh7Y2hhbmdlczpJLHNlbGVjdGVkOkcs'@; put 'Y291bnRDb2xzOmwuY291bnRDb2xzKCksY291bnRSb3dzOmwuY291bnRSb3dzKCl9KX0saCl9KX11bmRvKGwsYSl7Y29uc3QgZD1wMSh0aGlzLmNoYW5nZXMpO2ZvcihsZXQgdj0wLE09ZC5sZW5ndGg7djxNO3YrKylkW3ZdLnNwbGljZSgzLDEpO2wuYWRkSG9va09uY2UoImFmdGVyQ2hhbmdl'@; put 'IixhKSxsLnNldERhdGFBdENlbGwoZCxudWxsLG51bGwsIlVuZG9SZWRvLnVuZG8iKTtjb25zdCBoPWwuY291bnRSb3dzKCktdGhpcy5jb3VudFJvd3M7aD4wJiZsLmFsdGVyKCJyZW1vdmVfcm93IixudWxsLGgsIlVuZG9SZWRvLnVuZG8iKTtjb25zdCBmPWwuY291bnRDb2xzKCktdGhpcy5j'@; put 'b3VudENvbHM7Zj4wJiZsLmlzQ29sdW1uTW9kaWZpY2F0aW9uQWxsb3dlZCgpJiZsLmFsdGVyKCJyZW1vdmVfY29sIixudWxsLGYsIlVuZG9SZWRvLnVuZG8iKSxsLnNjcm9sbFRvRm9jdXNlZENlbGwoKSxsLnNlbGVjdENlbGxzKHRoaXMuc2VsZWN0ZWQsITEsITEpfXJlZG8obCxhKXtjb25z'@; put 'dCBkPXAxKHRoaXMuY2hhbmdlcyk7Zm9yKGxldCBoPTAsZj1kLmxlbmd0aDtoPGY7aCsrKWRbaF0uc3BsaWNlKDIsMSk7bC5hZGRIb29rT25jZSgiYWZ0ZXJDaGFuZ2UiLGEpLGwuc2V0RGF0YUF0Q2VsbChkLG51bGwsbnVsbCwiVW5kb1JlZG8ucmVkbyIpLHRoaXMuc2VsZWN0ZWQmJmwuc2Vs'@; put 'ZWN0Q2VsbHModGhpcy5zZWxlY3RlZCwhMSwhMSl9fWZ1bmN0aW9uIGs2ZShjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gcm10KGMpe3ZhciBsPWZ1bmN0aW9uIGltdChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lm'@; put 'KHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJp'@; put 'bmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9Y2xhc3MgTGVl'@; put 'IGV4dGVuZHMgbGZ7Y29uc3RydWN0b3IobCl7bGV0e2NvbmRpdGlvbnNTdGFjazphLHByZXZpb3VzQ29uZGl0aW9uc1N0YWNrOmR9PWw7c3VwZXIoImZpbHRlciIpLGs2ZSh0aGlzLCJjb25kaXRpb25zU3RhY2siLHZvaWQgMCksazZlKHRoaXMsInByZXZpb3VzQ29uZGl0aW9uc1N0YWNrIix2'@; put 'b2lkIDApLHRoaXMuY29uZGl0aW9uc1N0YWNrPWEsdGhpcy5wcmV2aW91c0NvbmRpdGlvbnNTdGFjaz1kfXN0YXRpYyBzdGFydFJlZ2lzdGVyaW5nRXZlbnRzKGwsYSl7bC5hZGRIb29rKCJiZWZvcmVGaWx0ZXIiLChkLGgpPT57YS5kb25lKCgpPT5uZXcgTGVlKHtjb25kaXRpb25zU3RhY2s6'@; put 'ZCxwcmV2aW91c0NvbmRpdGlvbnNTdGFjazpofSkpfSl9dW5kbyhsLGEpe2NvbnN0IGQ9bC5nZXRQbHVnaW4oImZpbHRlcnMiKTtsLmFkZEhvb2tPbmNlKCJhZnRlclZpZXdSZW5kZXIiLGEpLGQuaW1wb3J0Q29uZGl0aW9ucyh0aGlzLnByZXZpb3VzQ29uZGl0aW9uc1N0YWNrKSxkLmZpbHRl'@; put 'cigpfXJlZG8obCxhKXtjb25zdCBkPWwuZ2V0UGx1Z2luKCJmaWx0ZXJzIik7bC5hZGRIb29rT25jZSgiYWZ0ZXJWaWV3UmVuZGVyIixhKSxkLmltcG9ydENvbmRpdGlvbnModGhpcy5jb25kaXRpb25zU3RhY2spLGQuZmlsdGVyKCl9fWNsYXNzIE9lZSBleHRlbmRzIGxme2NvbnN0cnVjdG9y'@; put 'KGwpe2xldHtkYXRhOmEsY2VsbFJhbmdlOmR9PWw7c3VwZXIoIm1lcmdlX2NlbGxzIiksZnVuY3Rpb24gYW10KGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBzbXQoYyl7dmFyIGw9ZnVuY3Rpb24gb210KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5'@; put 'bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1'@; put 'cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9'@; put 'KTpjW2xdPWEsY30odGhpcywiY2VsbFJhbmdlIix2b2lkIDApLHRoaXMuY2VsbFJhbmdlPWQsdGhpcy5kYXRhPWF9c3RhdGljIHN0YXJ0UmVnaXN0ZXJpbmdFdmVudHMobCxhKXtsLmFkZEhvb2soImJlZm9yZU1lcmdlQ2VsbHMiLChkLGgpPT57aWYoaClyZXR1cm47Y29uc3QgZj1kLmdldFRv'@; put 'cFN0YXJ0Q29ybmVyKCksdj1kLmdldEJvdHRvbUVuZENvcm5lcigpLE09bC5nZXREYXRhKGYucm93LGYuY29sLHYucm93LHYuY29sKTthLmRvbmUoKCk9Pm5ldyBPZWUoe2RhdGE6TSxjZWxsUmFuZ2U6ZH0pKX0pfXVuZG8obCxhKXtjb25zdCBkPWwuZ2V0UGx1Z2luKCJtZXJnZUNlbGxzIik7'@; put 'bC5hZGRIb29rT25jZSgiYWZ0ZXJWaWV3UmVuZGVyIixhKSxkLnVubWVyZ2VSYW5nZSh0aGlzLmNlbGxSYW5nZSwhMCk7Y29uc3QgaD10aGlzLmNlbGxSYW5nZS5nZXRUb3BTdGFydENvcm5lcigpO2wucG9wdWxhdGVGcm9tQXJyYXkoaC5yb3csaC5jb2wsdGhpcy5kYXRhLHZvaWQgMCx2b2lk'@; put 'IDAsIk1lcmdlQ2VsbHMiKX1yZWRvKGwsYSl7Y29uc3QgZD1sLmdldFBsdWdpbigibWVyZ2VDZWxscyIpO2wuYWRkSG9va09uY2UoImFmdGVyVmlld1JlbmRlciIsYSksZC5tZXJnZVJhbmdlKHRoaXMuY2VsbFJhbmdlKX19ZnVuY3Rpb24gRDZlKGMsbCxhLGQsaCl7Y29uc3QgZj1bInZpc3Vh'@; put 'bFJvdyIsInZpc3VhbENvbCIsInJvdyIsImNvbCIsInByb3AiXSx2PWYubGVuZ3RoLE09W107cmV0dXJuIEthKGQsaCxJPT57S2EobCxhLEc9Pntjb25zdCByZT1jLmdldENlbGxNZXRhKEcsSSk7aWYoT2JqZWN0LmtleXMocmUpLmxlbmd0aCE9PXYpe2NvbnN0IHVlPU9iamVjdC5mcm9tRW50'@; put 'cmllcyhPYmplY3QuZW50cmllcyhyZSkuZmlsdGVyKHllPT57bGV0W0VlXT15ZTtyZXR1cm4hMT09PWYuaW5jbHVkZXMoRWUpfSkpO00ucHVzaChbcmUudmlzdWFsUm93LHJlLnZpc3VhbENvbCx1ZV0pfX0pfSksTX1mdW5jdGlvbiBHZyhjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gbG10KGMp'@; put 'e3ZhciBsPWZ1bmN0aW9uIGNtdChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Ro'@; put 'cm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3Qu'@; put 'ZGVmaW5lUHJvcGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9Y2xhc3MgUGVlIGV4dGVuZHMgbGZ7Y29uc3RydWN0b3IobCl7bGV0e2luZGV4OmEsaW5kZXhlczpkLGRhdGE6aCxhbW91bnQ6ZixoZWFkZXJzOnYs'@; put 'Y29sdW1uUG9zaXRpb25zOk0scm93UG9zaXRpb25zOkksZml4ZWRDb2x1bW5zU3RhcnQ6RyxyZW1vdmVkQ2VsbE1ldGFzOnJlfT1sO3N1cGVyKCJyZW1vdmVfY29sIiksR2codGhpcywiaW5kZXgiLHZvaWQgMCksR2codGhpcywiaW5kZXhlcyIsdm9pZCAwKSxHZyh0aGlzLCJkYXRhIix2b2lk'@; put 'IDApLEdnKHRoaXMsImFtb3VudCIsdm9pZCAwKSxHZyh0aGlzLCJoZWFkZXJzIix2b2lkIDApLEdnKHRoaXMsImNvbHVtblBvc2l0aW9ucyIsdm9pZCAwKSxHZyh0aGlzLCJyb3dQb3NpdGlvbnMiLHZvaWQgMCksR2codGhpcywiZml4ZWRDb2x1bW5zU3RhcnQiLHZvaWQgMCksR2codGhpcywi'@; put 'cmVtb3ZlZENlbGxNZXRhcyIsdm9pZCAwKSx0aGlzLmluZGV4PWEsdGhpcy5pbmRleGVzPWQsdGhpcy5kYXRhPWgsdGhpcy5hbW91bnQ9Zix0aGlzLmhlYWRlcnM9dix0aGlzLmNvbHVtblBvc2l0aW9ucz1NLnNsaWNlKDApLHRoaXMucm93UG9zaXRpb25zPUkuc2xpY2UoMCksdGhpcy5maXhl'@; put 'ZENvbHVtbnNTdGFydD1HLHRoaXMucmVtb3ZlZENlbGxNZXRhcz1yZX1zdGF0aWMgc3RhcnRSZWdpc3RlcmluZ0V2ZW50cyhsLGEpe2wuYWRkSG9vaygiYmVmb3JlUmVtb3ZlQ29sIiwoZCxoLGYsdik9PnthLmRvbmUoKCk9Pntjb25zdCBJPWwuZ2V0U291cmNlRGF0YUFycmF5KCksRz0obC5j'@; put 'b3VudENvbHMoKStkKSVsLmNvdW50Q29scygpLHJlPUcraC0xLHVlPVtdLHllPVtdLEVlPVtdO3JldHVybiBLYShJLmxlbmd0aC0xLEJlPT57Y29uc3QgR2U9W10sc3Q9SVtCZV07S2EoRyxyZSxwdD0+e0dlLnB1c2goc3RbbC50b1BoeXNpY2FsQ29sdW1uKHB0KV0pfSksdWUucHVzaChHZSl9'@; put 'KSxLYShoLTEsQmU9PntFZS5wdXNoKGwudG9QaHlzaWNhbENvbHVtbihHK0JlKSl9KSxBcnJheS5pc0FycmF5KGwuZ2V0U2V0dGluZ3MoKS5jb2xIZWFkZXJzKSYmS2EoaC0xLEJlPT57eWUucHVzaChsLmdldFNldHRpbmdzKCkuY29sSGVhZGVyc1tsLnRvUGh5c2ljYWxDb2x1bW4oRytCZSld'@; put 'fHxudWxsKX0pLG5ldyBQZWUoe2luZGV4OkcsaW5kZXhlczpFZSxkYXRhOnVlLGFtb3VudDpoLGhlYWRlcnM6eWUsY29sdW1uUG9zaXRpb25zOmwuY29sdW1uSW5kZXhNYXBwZXIuZ2V0SW5kZXhlc1NlcXVlbmNlKCkscm93UG9zaXRpb25zOmwucm93SW5kZXhNYXBwZXIuZ2V0SW5kZXhlc1Nl'@; put 'cXVlbmNlKCksZml4ZWRDb2x1bW5zU3RhcnQ6bC5nZXRTZXR0aW5ncygpLmZpeGVkQ29sdW1uc1N0YXJ0LHJlbW92ZWRDZWxsTWV0YXM6RDZlKGwsMCxsLmNvdW50Um93cygpLEcscmUpfSl9LHYpfSl9dW5kbyhsLGEpe2wuZ2V0U2V0dGluZ3MoKS5maXhlZENvbHVtbnNTdGFydD10aGlzLmZp'@; put 'eGVkQ29sdW1uc1N0YXJ0O2NvbnN0IGg9dGhpcy5pbmRleGVzLnNsaWNlKDApLnNvcnQoKSxmPShyZSx1ZSx5ZSk9PnllW3RoaXMuaW5kZXhlcy5pbmRleE9mKGhbdWVdKV0sdj10aGlzLmRhdGEubGVuZ3RoLE09W107Zm9yKGxldCByZT0wO3JlPHY7cmUrKylNLnB1c2goeW8odGhpcy5kYXRh'@; put 'W3JlXSxmKSk7Y29uc3QgST15byh0aGlzLmhlYWRlcnMsZiksRz1bXTtsLmNvbHVtbkluZGV4TWFwcGVyLnNldEluZGV4ZXNTZXF1ZW5jZSh0aGlzLmNvbHVtblBvc2l0aW9ucyksbC5hbHRlcigiaW5zZXJ0X2NvbF9zdGFydCIsbC50b1Zpc3VhbENvbHVtbih0aGlzLmluZGV4ZXNbMF0pLHRo'@; put 'aXMuaW5kZXhlcy5sZW5ndGgsIlVuZG9SZWRvLnVuZG8iKSxsLmJhdGNoRXhlY3V0aW9uKCgpPT57bC5yb3dJbmRleE1hcHBlci5zZXRJbmRleGVzU2VxdWVuY2UodGhpcy5yb3dQb3NpdGlvbnMpLGwuY29sdW1uSW5kZXhNYXBwZXIuc2V0SW5kZXhlc1NlcXVlbmNlKHRoaXMuY29sdW1uUG9z'@; put 'aXRpb25zKX0sITApLEtuKGwuZ2V0U291cmNlRGF0YUFycmF5KCksKHJlLHVlKT0+e0tuKGgsKHllLEVlKT0+e3JlW3llXT1NW3VlXVtFZV0sRy5wdXNoKFt1ZSx5ZSxyZVt5ZV1dKX0pfSksdHlwZW9mIHRoaXMuaGVhZGVyczwidSImJktuKEksKHJlLHVlKT0+e2wuZ2V0U2V0dGluZ3MoKS5j'@; put 'b2xIZWFkZXJzW2hbdWVdXT1yZX0pLHRoaXMucmVtb3ZlZENlbGxNZXRhcy5mb3JFYWNoKHJlPT57bGV0W3VlLHllLEVlXT1yZTtsLnNldENlbGxNZXRhT2JqZWN0KHVlLHllLEVlKX0pLGwuYWRkSG9va09uY2UoImFmdGVyVmlld1JlbmRlciIsYSksbC5zZXRTb3VyY2VEYXRhQXRDZWxsKEcs'@; put 'bnVsbCxudWxsLCJVbmRvUmVkby51bmRvIil9cmVkbyhsLGEpe2wuYWRkSG9va09uY2UoImFmdGVyUmVtb3ZlQ29sIixhKSxsLmFsdGVyKCJyZW1vdmVfY29sIix0aGlzLmluZGV4LHRoaXMuYW1vdW50LCJVbmRvUmVkby5yZWRvIil9fWZ1bmN0aW9uIFN3KGMsbCxhKXtyZXR1cm4obD1mdW5j'@; put 'dGlvbiB1bXQoYyl7dmFyIGw9ZnVuY3Rpb24gZG10KGMsbCl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQp'@; put 'cmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlp'@; put 'biBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY31jbGFzcyBGZWUgZXh0ZW5kcyBsZntjb25zdHJ1Y3RvcihsKXtsZXR7aW5kZXg6YSxkYXRhOmQsZml4ZWRSb3dzQm90dG9tOmgs'@; put 'Zml4ZWRSb3dzVG9wOmYscm93SW5kZXhlc1NlcXVlbmNlOnYscmVtb3ZlZENlbGxNZXRhczpNfT1sO3N1cGVyKCJyZW1vdmVfcm93IiksU3codGhpcywiaW5kZXgiLHZvaWQgMCksU3codGhpcywiZGF0YSIsdm9pZCAwKSxTdyh0aGlzLCJmaXhlZFJvd3NCb3R0b20iLHZvaWQgMCksU3codGhp'@; put 'cywiZml4ZWRSb3dzVG9wIix2b2lkIDApLFN3KHRoaXMsInJvd0luZGV4ZXNTZXF1ZW5jZSIsdm9pZCAwKSxTdyh0aGlzLCJyZW1vdmVkQ2VsbE1ldGFzIix2b2lkIDApLHRoaXMuaW5kZXg9YSx0aGlzLmRhdGE9ZCx0aGlzLmZpeGVkUm93c0JvdHRvbT1oLHRoaXMuZml4ZWRSb3dzVG9wPWYs'@; put 'dGhpcy5yb3dJbmRleGVzU2VxdWVuY2U9dix0aGlzLnJlbW92ZWRDZWxsTWV0YXM9TX1zdGF0aWMgc3RhcnRSZWdpc3RlcmluZ0V2ZW50cyhsLGEpe2wuYWRkSG9vaygiYmVmb3JlUmVtb3ZlUm93IiwoZCxoLGYsdik9PnthLmRvbmUoKCk9Pntjb25zdCBJPWwudG9QaHlzaWNhbFJvdyhkKSxH'@; put 'PUkraC0xLHJlPXAxKGwuZ2V0U291cmNlRGF0YShJLDAsSStoLTEsbC5jb3VudFNvdXJjZUNvbHMoKS0xKSk7cmV0dXJuIG5ldyBGZWUoe2luZGV4OkksZGF0YTpyZSxmaXhlZFJvd3NCb3R0b206bC5nZXRTZXR0aW5ncygpLmZpeGVkUm93c0JvdHRvbSxmaXhlZFJvd3NUb3A6bC5nZXRTZXR0'@; put 'aW5ncygpLmZpeGVkUm93c1RvcCxyb3dJbmRleGVzU2VxdWVuY2U6bC5yb3dJbmRleE1hcHBlci5nZXRJbmRleGVzU2VxdWVuY2UoKSxyZW1vdmVkQ2VsbE1ldGFzOkQ2ZShsLEksRywwLGwuY291bnRDb2xzKCktMSl9KX0sdil9KX11bmRvKGwsYSl7Y29uc3QgZD1sLmdldFNldHRpbmdzKCks'@; put 'aD1bXTtkLmZpeGVkUm93c0JvdHRvbT10aGlzLmZpeGVkUm93c0JvdHRvbSxkLmZpeGVkUm93c1RvcD10aGlzLmZpeGVkUm93c1RvcCx0aGlzLmRhdGEuZm9yRWFjaCgoZix2KT0+e09iamVjdC5rZXlzKGYpLmZvckVhY2goTT0+e2NvbnN0IEk9cGFyc2VJbnQoTSwxMCk7aC5wdXNoKFt0aGlz'@; put 'LmluZGV4K3YsaXNOYU4oSSk/TTpJLGZbTV1dKX0pfSksbC5yb3dJbmRleE1hcHBlci5zZXRJbmRleGVzU2VxdWVuY2UodGhpcy5yb3dJbmRleGVzU2VxdWVuY2UpLGwuYWx0ZXIoImluc2VydF9yb3dfYWJvdmUiLGwudG9WaXN1YWxSb3codGhpcy5pbmRleCksdGhpcy5kYXRhLmxlbmd0aCwi'@; put 'VW5kb1JlZG8udW5kbyIpLGwucm93SW5kZXhNYXBwZXIuc2V0SW5kZXhlc1NlcXVlbmNlKHRoaXMucm93SW5kZXhlc1NlcXVlbmNlKSx0aGlzLnJlbW92ZWRDZWxsTWV0YXMuZm9yRWFjaChmPT57bGV0W3YsTSxJXT1mO2wuc2V0Q2VsbE1ldGFPYmplY3QodixNLEkpfSksbC5hZGRIb29rT25j'@; put 'ZSgiYWZ0ZXJWaWV3UmVuZGVyIixhKSxsLnNldFNvdXJjZURhdGFBdENlbGwoaCxudWxsLG51bGwsIlVuZG9SZWRvLnVuZG8iKX1yZWRvKGwsYSl7bC5hZGRIb29rT25jZSgiYWZ0ZXJSZW1vdmVSb3ciLGEpLGwuYWx0ZXIoInJlbW92ZV9yb3ciLGwudG9WaXN1YWxSb3codGhpcy5pbmRleCks'@; put 'dGhpcy5kYXRhLmxlbmd0aCwiVW5kb1JlZG8ucmVkbyIpfX1mdW5jdGlvbiBJNmUoYyxsLGEpe3JldHVybihsPWZ1bmN0aW9uIGhtdChjKXt2YXIgbD1mdW5jdGlvbiBmbXQoYyxsKXtpZigib2JqZWN0IiE9dHlwZW9mIGN8fCFjKXJldHVybiBjO3ZhciBhPWNbU3ltYm9sLnRvUHJpbWl0aXZl'@; put 'XTtpZih2b2lkIDAhPT1hKXt2YXIgZD1hLmNhbGwoYyxsfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgZClyZXR1cm4gZDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWw/'@; put 'U3RyaW5nOk51bWJlcikoYyl9KGMsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgbD9sOmwrIiJ9KGwpKWluIGM/T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsbCx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNbbF09YSxjfWNsYXNz'@; put 'IEhlZSBleHRlbmRzIGxme2NvbnN0cnVjdG9yKGwpe2xldHtyb3dzOmEsZmluYWxJbmRleDpkfT1sO3N1cGVyKCJyb3dfbW92ZSIpLEk2ZSh0aGlzLCJyb3dzIix2b2lkIDApLEk2ZSh0aGlzLCJmaW5hbFJvd0luZGV4Iix2b2lkIDApLHRoaXMucm93cz1hLnNsaWNlKCksdGhpcy5maW5hbFJv'@; put 'd0luZGV4PWR9c3RhdGljIHN0YXJ0UmVnaXN0ZXJpbmdFdmVudHMobCxhKXtsLmFkZEhvb2soImJlZm9yZVJvd01vdmUiLChkLGgpPT57ITEhPT1kJiZhLmRvbmUoKCk9Pm5ldyBIZWUoe3Jvd3M6ZCxmaW5hbEluZGV4Omh9KSl9KX11bmRvKGwsYSl7Y29uc3QgZD1sLmdldFBsdWdpbigibWFu'@; put 'dWFsUm93TW92ZSIpO2wuYWRkSG9va09uY2UoImFmdGVyVmlld1JlbmRlciIsYSksUlEodGhpcy5yb3dzLHRoaXMuZmluYWxSb3dJbmRleCxsLnJvd0luZGV4TWFwcGVyLmdldE51bWJlck9mSW5kZXhlcygpKS5yZXZlcnNlKCkuZm9yRWFjaChmPT57bGV0e2Zyb206dix0bzpNfT1mO3Y8TSYm'@; put 'KE0tPTEpLGQubW92ZVJvdyhNLHYpfSksbC5yZW5kZXIoKSxsLmRlc2VsZWN0Q2VsbCgpLGwuc2VsZWN0Um93cyh0aGlzLnJvd3NbMF0sdGhpcy5yb3dzWzBdK3RoaXMucm93cy5sZW5ndGgtMSl9cmVkbyhsLGEpe2NvbnN0IGQ9bC5nZXRQbHVnaW4oIm1hbnVhbFJvd01vdmUiKTtsLmFkZEhv'@; put 'b2tPbmNlKCJhZnRlclZpZXdSZW5kZXIiLGEpLGQubW92ZVJvd3ModGhpcy5yb3dzLnNsaWNlKCksdGhpcy5maW5hbFJvd0luZGV4KSxsLnJlbmRlcigpLGwuZGVzZWxlY3RDZWxsKCksbC5zZWxlY3RSb3dzKHRoaXMuZmluYWxSb3dJbmRleCx0aGlzLmZpbmFsUm93SW5kZXgrdGhpcy5yb3dz'@; put 'Lmxlbmd0aC0xKX19Y2xhc3MgTmVlIGV4dGVuZHMgbGZ7Y29uc3RydWN0b3IobCl7bGV0e2NlbGxSYW5nZTphfT1sO3N1cGVyKCJ1bm1lcmdlX2NlbGxzIiksZnVuY3Rpb24gcG10KGMsbCxhKXtyZXR1cm4obD1mdW5jdGlvbiBnbXQoYyl7dmFyIGw9ZnVuY3Rpb24gbW10KGMsbCl7aWYoIm9i'@; put 'amVjdCIhPXR5cGVvZiBjfHwhYylyZXR1cm4gYzt2YXIgYT1jW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09YSl7dmFyIGQ9YS5jYWxsKGMsbHx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIGQpcmV0dXJuIGQ7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2'@; put 'ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1sP1N0cmluZzpOdW1iZXIpKGMpfShjLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGw/bDpsKyIifShsKSlpbiBjP09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLGwse3ZhbHVlOmEsZW51'@; put 'bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpjW2xdPWEsY30odGhpcywiY2VsbFJhbmdlIix2b2lkIDApLHRoaXMuY2VsbFJhbmdlPWF9c3RhdGljIHN0YXJ0UmVnaXN0ZXJpbmdFdmVudHMobCxhKXtsLmFkZEhvb2soImFmdGVyVW5tZXJnZUNlbGxzIiwoZCxoKT0+'@; put 'e2h8fGEuZG9uZSgoKT0+bmV3IE5lZSh7Y2VsbFJhbmdlOmR9KSl9KX11bmRvKGwsYSl7Y29uc3QgZD1sLmdldFBsdWdpbigibWVyZ2VDZWxscyIpO2wuYWRkSG9va09uY2UoImFmdGVyVmlld1JlbmRlciIsYSksZC5tZXJnZVJhbmdlKHRoaXMuY2VsbFJhbmdlLCEwKX1yZWRvKGwsYSl7Y29u'@; put 'c3QgZD1sLmdldFBsdWdpbigibWVyZ2VDZWxscyIpO2wuYWRkSG9va09uY2UoImFmdGVyVmlld1JlbmRlciIsYSksZC51bm1lcmdlUmFuZ2UodGhpcy5jZWxsUmFuZ2UsITApLGwucmVuZGVyKCl9fWZ1bmN0aW9uIFZlZShjLGwsYSl7cmV0dXJuKGw9ZnVuY3Rpb24gX210KGMpe3ZhciBsPWZ1'@; put 'bmN0aW9uIHdtdChjLGwpe2lmKCJvYmplY3QiIT10eXBlb2YgY3x8IWMpcmV0dXJuIGM7dmFyIGE9Y1tTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWEpe3ZhciBkPWEuY2FsbChjLGx8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBkKXJldHVybiBkO3Rocm93IG5ldyBU'@; put 'eXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09bD9TdHJpbmc6TnVtYmVyKShjKX0oYywic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsP2w6bCsiIn0obCkpaW4gYz9PYmplY3QuZGVmaW5lUHJv'@; put 'cGVydHkoYyxsLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6Y1tsXT1hLGN9ZnVuY3Rpb24gQmVlKGMsbCxhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYz9jPT09bDpjLmhhcyhsKSlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwzP2w6YTt0aHJv'@; put 'dyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGVsZW1lbnQgaXMgbm90IHByZXNlbnQgb24gdGhpcyBvYmplY3QiKX1NYS5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYmVmb3JlVW5kbyIpLE1hLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlclVuZG8iKSxNYS5nZXRTaW5nbGV0b24oKS5y'@; put 'ZWdpc3RlcigiYmVmb3JlUmVkbyIpLE1hLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlclJlZG8iKTtjb25zdCBMNmU9bmV3IFNldDt2YXIgamVlLHplZSxVZWUsWmVlLFdlZSxvTj1uZXcgV2Vha1NldDtjbGFzcyBNbXQgZXh0ZW5kcyBGb3tzdGF0aWMgZ2V0IFBMVUdJTl9LRVkoKXty'@; put 'ZXR1cm4idW5kb1JlZG8ifXN0YXRpYyBnZXQgUExVR0lOX1BSSU9SSVRZKCl7cmV0dXJuIDFlM31zdGF0aWMgZ2V0IFNFVFRJTkdfS0VZUygpe3JldHVybiEwfWNvbnN0cnVjdG9yKGwpe3N1cGVyKGwpLGZ1bmN0aW9uIHltdChjLGwpeyhmdW5jdGlvbiBibXQoYyxsKXtpZihsLmhhcyhjKSl0'@; put 'aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfSkoYyxsKSxsLmFkZChjKX0odGhpcyxvTiksVmVlKHRoaXMsImRvbmVBY3Rpb25zIixbXSksVmVlKHRoaXMsInVuZG9uZUFjdGlvbnMiLFtd'@; put 'KSxWZWUodGhpcywiaWdub3JlTmV3QWN0aW9ucyIsITEpLGZ1bmN0aW9uIHZtdChjLGwpe1tUZWUsQWVlLGtlZSxEZWUsSWVlLFJlZSxMZWUsT2VlLFBlZSxGZWUsSGVlLE5lZV0uZm9yRWFjaChhPT5hLnN0YXJ0UmVnaXN0ZXJpbmdFdmVudHMoYyxsKSl9KGwsdGhpcyl9aXNFbmFibGVkKCl7'@; put 'cmV0dXJuISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpLnVuZG99ZW5hYmxlUGx1Z2luKCl7dmFyIGw9dGhpczt0aGlzLmVuYWJsZWR8fCh0aGlzLmFkZEhvb2soImFmdGVyQ2hhbmdlIixmdW5jdGlvbigpe2Zvcih2YXIgYT1hcmd1bWVudHMubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDtoPGE7'@; put 'aCsrKWRbaF09YXJndW1lbnRzW2hdO3JldHVybiBCZWUob04sbCx4bXQpLmNhbGwobCwuLi5kKX0pLHRoaXMucmVnaXN0ZXJTaG9ydGN1dHMoKSxCZWUob04sdGhpcyxFbXQpLmNhbGwodGhpcyksc3VwZXIuZW5hYmxlUGx1Z2luKCkpfWRpc2FibGVQbHVnaW4oKXtzdXBlci5kaXNhYmxlUGx1'@; put 'Z2luKCksdGhpcy5jbGVhcigpLHRoaXMudW5yZWdpc3RlclNob3J0Y3V0cygpLEJlZShvTix0aGlzLFRtdCkuY2FsbCh0aGlzKX1yZWdpc3RlclNob3J0Y3V0cygpe3RoaXMuaG90LmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImdyaWQiKS5hZGRTaG9ydGN1dHMoW3trZXlzOltb'@; put 'IkNvbnRyb2wvTWV0YSIsInoiXV0sY2FsbGJhY2s6KCk9Pnt0aGlzLnVuZG8oKX19LHtrZXlzOltbIkNvbnRyb2wvTWV0YSIsInkiXSxbIkNvbnRyb2wvTWV0YSIsIlNoaWZ0IiwieiJdXSxjYWxsYmFjazooKT0+e3RoaXMucmVkbygpfX1dLHtydW5Pbmx5SWY6Zj0+IWYuYWx0S2V5LGdyb3Vw'@; put 'OiJ1bmRvUmVkbyJ9KX11bnJlZ2lzdGVyU2hvcnRjdXRzKCl7dGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZ3JpZCIpLnJlbW92ZVNob3J0Y3V0c0J5R3JvdXAoInVuZG9SZWRvIil9ZG9uZShsLGEpe2lmKHRoaXMuaWdub3JlTmV3QWN0aW9uc3x8IlVuZG9SZWRv'@; put 'LnVuZG8iPT09YXx8IlVuZG9SZWRvLnJlZG8iPT09YXx8ImF1dG8iPT09YSlyZXR1cm47Y29uc3QgaD10aGlzLmRvbmVBY3Rpb25zLnNsaWNlKCk7aWYoITE9PT10aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlVW5kb1N0YWNrQ2hhbmdlIixoLGEpKXJldHVybjtjb25zdCB2PWwoKSxNPXRoaXMu'@; put 'dW5kb25lQWN0aW9ucy5zbGljZSgpO3RoaXMuZG9uZUFjdGlvbnMucHVzaCh2KSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJVbmRvU3RhY2tDaGFuZ2UiLGgsdGhpcy5kb25lQWN0aW9ucy5zbGljZSgpKSx0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlUmVkb1N0YWNrQ2hhbmdlIixNKSx0aGlz'@; put 'LnVuZG9uZUFjdGlvbnMubGVuZ3RoPTAsdGhpcy5ob3QucnVuSG9va3MoImFmdGVyUmVkb1N0YWNrQ2hhbmdlIixNLHRoaXMudW5kb25lQWN0aW9ucy5zbGljZSgpKX11bmRvKCl7aWYoIXRoaXMuaXNVbmRvQXZhaWxhYmxlKCkpcmV0dXJuO2NvbnN0IGw9dGhpcy5kb25lQWN0aW9ucy5zbGlj'@; put 'ZSgpO3RoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVVbmRvU3RhY2tDaGFuZ2UiLGwpO2NvbnN0IGE9dGhpcy5kb25lQWN0aW9ucy5wb3AoKTt0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJVbmRvU3RhY2tDaGFuZ2UiLGwsdGhpcy5kb25lQWN0aW9ucy5zbGljZSgpKTtjb25zdCBkPXAxKGEpO2lm'@; put 'KCExPT09dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZVVuZG8iLGQpKXJldHVybjt0aGlzLmlnbm9yZU5ld0FjdGlvbnM9ITA7Y29uc3QgZj10aGlzLnVuZG9uZUFjdGlvbnMuc2xpY2UoKTt0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlUmVkb1N0YWNrQ2hhbmdlIixmKSxhLnVuZG8odGhpcy5o'@; put 'b3QsKCk9Pnt0aGlzLmlnbm9yZU5ld0FjdGlvbnM9ITEsdGhpcy51bmRvbmVBY3Rpb25zLnB1c2goYSl9KSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJSZWRvU3RhY2tDaGFuZ2UiLGYsdGhpcy51bmRvbmVBY3Rpb25zLnNsaWNlKCkpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlclVuZG8iLGQp'@; put 'fXJlZG8oKXtpZighdGhpcy5pc1JlZG9BdmFpbGFibGUoKSlyZXR1cm47Y29uc3QgbD10aGlzLnVuZG9uZUFjdGlvbnMuc2xpY2UoKTt0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlUmVkb1N0YWNrQ2hhbmdlIixsKTtjb25zdCBhPXRoaXMudW5kb25lQWN0aW9ucy5wb3AoKTt0aGlzLmhvdC5y'@; put 'dW5Ib29rcygiYWZ0ZXJSZWRvU3RhY2tDaGFuZ2UiLGwsdGhpcy51bmRvbmVBY3Rpb25zLnNsaWNlKCkpO2NvbnN0IGQ9cDEoYSk7aWYoITE9PT10aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlUmVkbyIsZCkpcmV0dXJuO3RoaXMuaWdub3JlTmV3QWN0aW9ucz0hMDtjb25zdCBmPXRoaXMuZG9u'@; put 'ZUFjdGlvbnMuc2xpY2UoKTt0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlVW5kb1N0YWNrQ2hhbmdlIixmKSxhLnJlZG8odGhpcy5ob3QsKCk9Pnt0aGlzLmlnbm9yZU5ld0FjdGlvbnM9ITEsdGhpcy5kb25lQWN0aW9ucy5wdXNoKGEpfSksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyVW5kb1N0'@; put 'YWNrQ2hhbmdlIixmLHRoaXMuZG9uZUFjdGlvbnMuc2xpY2UoKSksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyUmVkbyIsZCl9aXNVbmRvQXZhaWxhYmxlKCl7cmV0dXJuIHRoaXMuZG9uZUFjdGlvbnMubGVuZ3RoPjB9aXNSZWRvQXZhaWxhYmxlKCl7cmV0dXJuIHRoaXMudW5kb25lQWN0aW9u'@; put 'cy5sZW5ndGg+MH1jbGVhcigpe3RoaXMuZG9uZUFjdGlvbnMubGVuZ3RoPTAsdGhpcy51bmRvbmVBY3Rpb25zLmxlbmd0aD0wfWRlc3Ryb3koKXt0aGlzLmNsZWFyKCksdGhpcy5kb25lQWN0aW9ucz1udWxsLHRoaXMudW5kb25lQWN0aW9ucz1udWxsLHN1cGVyLmRlc3Ryb3koKX19ZnVuY3Rp'@; put 'b24geG10KGMsbCl7ImxvYWREYXRhIj09PWwmJnRoaXMuY2xlYXIoKX1mdW5jdGlvbiBFbXQoKXtjb25zdCBjPWw9PntMNmUuaGFzKGwpfHwoWW8oaGxgVGhlICIke2x9IiBtZXRob2QgaXMgZGVwcmVjYXRlZCBhbmQgaXQgd2lsbCBiZSByZW1vdmVkXHgyMAogICAgICAgICAgZnJvbSB0aGUg'@; put 'Q29yZSBBUEkgaW4gdGhlIGZ1dHVyZS4gUGxlYXNlIHVzZSB0aGUgbWV0aG9kIGZyb20gdGhlIFVuZG9SZWRvIHBsdWdpblx4MjAKICAgICAgICAgIChlLmcuIFxgaG90SW5zdGFuY2UuZ2V0UGx1Z2luKCJ1bmRvUmVkbyIpLiR7bH0oKVxgKS5gKSxMNmUuYWRkKGwpKX07dGhpcy5ob3QudW5k'@; put 'bz0oKT0+e2MoInVuZG8iKSx0aGlzLnVuZG8oKX0sdGhpcy5ob3QucmVkbz0oKT0+e2MoInJlZG8iKSx0aGlzLnJlZG8oKX0sdGhpcy5ob3QuaXNVbmRvQXZhaWxhYmxlPSgpPT4oYygiaXNVbmRvQXZhaWxhYmxlIiksdGhpcy5pc1VuZG9BdmFpbGFibGUoKSksdGhpcy5ob3QuaXNSZWRvQXZh'@; put 'aWxhYmxlPSgpPT4oYygiaXNSZWRvQXZhaWxhYmxlIiksdGhpcy5pc1JlZG9BdmFpbGFibGUoKSksdGhpcy5ob3QuY2xlYXJVbmRvPSgpPT57YygiY2xlYXIiKSx0aGlzLmNsZWFyKCl9LHRoaXMuaG90LnVuZG9SZWRvPXRoaXN9ZnVuY3Rpb24gVG10KCl7ZGVsZXRlIHRoaXMuaG90LnVuZG8s'@; put 'ZGVsZXRlIHRoaXMuaG90LnJlZG8sZGVsZXRlIHRoaXMuaG90LmlzVW5kb0F2YWlsYWJsZSxkZWxldGUgdGhpcy5ob3QuaXNSZWRvQXZhaWxhYmxlLGRlbGV0ZSB0aGlzLmhvdC5jbGVhclVuZG8sZGVsZXRlIHRoaXMuaG90LnVuZG9SZWRvfWZ1bmN0aW9uIEVBKCl7KGZ1bmN0aW9uIEphdCgp'@; put 'e0hkKGtfKSxIZCh6cSksSGQoZTRlKSxIZChsNGUpLEhkKGM0ZSksSGQoSHEpLEhkKHU0ZSksSGQoZDRlKSxIZChmNGUpLEhkKHM5KSxIZChwNGUpfSkoKSxmdW5jdGlvbiB3b3QoKXtMaChJXyksTGgoY1QpLExoKFFxKSxMaChKcSksTGgodEopLExoKHFxKSxMaCh1SiksTGgoZEopLExoKGhK'@; put 'KSxMaChFZyksTGgoZkopfSgpLGZ1bmN0aW9uIGtvdCgpe1k3KGhUKSxZNyhwSiksWTcodEYpLFk3KGdKKSxZNyhuRil9KCksZnVuY3Rpb24gQm90KCl7WDIoRG90KSxYMihJb3QpLFgyKExvdCksWDIoT290KSxYMihQb3QpLFgyKEZvdCksWDIoSG90KSxYMihOb3QpLFgyKEdwZSksWDIoVm90'@; put 'KX0oKSxmdW5jdGlvbiBBbXQoKXtQbyhwVCksUG8oYmx0KSxQbyh2VCksUG8oSmx0KSxQbyhzY3QpLFBvKGJnZSksUG8obnV0KSxQbyhBdXQpLFBvKEZGKSxQbygkMHQpLFBvKF8xdCksUG8oQTF0KSxQbyhaRiksUG8oZmR0KSxQbyhkMnQpLFBvKFkydCksUG8oYmZ0KSxQbyhJZnQpLFBvKFVm'@; put 'dCksUG8ocjN0KSxQbyhmM3QpLFBvKE8zdCksUG8oVTN0KSxQbyhUcHQpLFBvKGE0dCksUG8odTR0KSxQbyhINHQpLFBvKFRndCksUG8ocWd0KSxQbyhzNXQpLFBvKF81dCksUG8oazV0KSxQbyhCNXQpLFBvKE1tdCl9KCl9RUEoKSxmdW5jdGlvbiBrbXQoYyl7Y29uc3QgbD0hKHR5cGVvZiB3'@; put 'aW5kb3c+InUiKSYmd2luZG93LmpRdWVyeTtsJiYobC5mbi5oYW5kc29udGFibGU9ZnVuY3Rpb24oYSl7Y29uc3QgZD10aGlzLmZpcnN0KCk7bGV0IGYsaD1kLmRhdGEoImhhbmRzb250YWJsZSIpO2lmKCJzdHJpbmciIT10eXBlb2YgYSl7Y29uc3QgRz1hfHx7fTtyZXR1cm4gaD9oLnVwZGF0'@; put 'ZVNldHRpbmdzKEcpOihoPW5ldyBjLkNvcmUoZFswXSxHKSxkLmRhdGEoImhhbmRzb250YWJsZSIsaCksaC5pbml0KCkpLGR9aWYoaCl7aWYoISh0eXBlb2YgaFthXTwidSIpKXRocm93IG5ldyBFcnJvcihgSGFuZHNvbnRhYmxlIGRvIG5vdCBwcm92aWRlIGFjdGlvbjogJHthfWApO2Zvcih2'@; put 'YXIgdj1hcmd1bWVudHMubGVuZ3RoLE09bmV3IEFycmF5KHY+MT92LTE6MCksST0xO0k8djtJKyspTVtJLTFdPWFyZ3VtZW50c1tJXTtmPWhbYV0uY2FsbChoLC4uLk0pLCJkZXN0cm95Ij09PWEmJmQucmVtb3ZlRGF0YSgpfXJldHVybiBmfSl9KHJvKSxyby5fX0dob3N0VGFibGU9bUoscm8u'@; put 'X2dldExpc3RlbmVyc0NvdW50ZXI9ZnVuY3Rpb24gckplKCl7cmV0dXJuIHFPfSxyby5fZ2V0UmVnaXN0ZXJlZE1hcHNDb3VudGVyPWZ1bmN0aW9uIGVudCgpe3JldHVybiB6S30scm8uRXZlbnRNYW5hZ2VyPVoyO2NvbnN0IERtdD1bRCxGLEIsWix3LFIsXyxZLE4scCxqLExdLEltdD1bSCxQ'@; put 'XTtyby5oZWxwZXI9e30scm8uZG9tPXt9LEtuKERtdCxjPT57S24oT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoYyksbD0+eyJfIiE9PWwuY2hhckF0KDApJiYocm8uaGVscGVyW2xdPWNbbF0pfSl9KSxLbihJbXQsYz0+e0tuKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGMpLGw9Pnsi'@; put 'XyIhPT1sLmNoYXJBdCgwKSYmKHJvLmRvbVtsXT1jW2xdKX0pfSkscm8uY2VsbFR5cGVzPW51bGwhPT0oamVlPXJvLmNlbGxUeXBlcykmJnZvaWQgMCE9PWplZT9qZWU6e30sS24obHJ0KCksYz0+e3JvLmNlbGxUeXBlc1tjXT14cShjKX0pLHJvLmNlbGxUeXBlcy5yZWdpc3RlckNlbGxUeXBl'@; put 'PVgyLHJvLmNlbGxUeXBlcy5nZXRDZWxsVHlwZT14cSxyby5lZGl0b3JzPW51bGwhPT0oemVlPXJvLmVkaXRvcnMpJiZ2b2lkIDAhPT16ZWU/emVlOnt9LEtuKFhxZSgpLGM9Pntyby5lZGl0b3JzW2Ake2YxKGMpfUVkaXRvcmBdPVhPKGMpfSkscm8uZWRpdG9ycy5yZWdpc3RlckVkaXRvcj1I'@; put 'ZCxyby5lZGl0b3JzLmdldEVkaXRvcj1YTyxyby5yZW5kZXJlcnM9bnVsbCE9PShVZWU9cm8ucmVuZGVyZXJzKSYmdm9pZCAwIT09VWVlP1VlZTp7fSxLbihBSmUoKSxjPT57Y29uc3QgbD1pUChjKTsiYmFzZSI9PT1jJiYocm8ucmVuZGVyZXJzLmNlbGxEZWNvcmF0b3I9bCkscm8ucmVuZGVy'@; put 'ZXJzW2Ake2YxKGMpfVJlbmRlcmVyYF09bH0pLHJvLnJlbmRlcmVycy5yZWdpc3RlclJlbmRlcmVyPUxoLHJvLnJlbmRlcmVycy5nZXRSZW5kZXJlcj1pUCxyby52YWxpZGF0b3JzPW51bGwhPT0oWmVlPXJvLnZhbGlkYXRvcnMpJiZ2b2lkIDAhPT1aZWU/WmVlOnt9LEtuKElKZSgpLGM9Pnty'@; put 'by52YWxpZGF0b3JzW2Ake2YxKGMpfVZhbGlkYXRvcmBdPWlLKGMpfSkscm8udmFsaWRhdG9ycy5yZWdpc3RlclZhbGlkYXRvcj1ZNyxyby52YWxpZGF0b3JzLmdldFZhbGlkYXRvcj1pSyxyby5wbHVnaW5zPW51bGwhPT0oV2VlPXJvLnBsdWdpbnMpJiZ2b2lkIDAhPT1XZWU/V2VlOnt9LEtu'@; put 'KHJLKCksYz0+e3JvLnBsdWdpbnNbY109T0UoYyl9KSxyby5wbHVnaW5zW2Ake2YxKEZvLlBMVUdJTl9LRVkpfVBsdWdpbmBdPUZvLHJvLnBsdWdpbnMucmVnaXN0ZXJQbHVnaW49UG8scm8ucGx1Z2lucy5nZXRQbHVnaW49T0U7Y29uc3QgTXc9cm8sUm10PVsiaW5wdXRQbGFjZWhvbGRlciJd'@; put 'O2Z1bmN0aW9uIExtdChjLGwpe31jb25zdCBPbXQ9WyJjb250YWluZXIiXTtsZXQgUG10PSgoKT0+e2NsYXNzIGN7dG9wO2xlZnQ7aGVpZ2h0O3dpZHRoO3NldCBpc1Zpc2libGUoYSl7dGhpcy5faXNWaXNpYmxlPWF9c2V0IGNvbXBvbmVudFJlZihhKXthJiZ0aGlzLmNvbnRhaW5lci5pbnNl'@; put 'cnQoYS5ob3N0Vmlldyl9Y29udGFpbmVyO2dldCBkaXNwbGF5KCl7cmV0dXJuIHRoaXMuX2lzVmlzaWJsZT8iYmxvY2siOiJub25lIn1faXNWaXNpYmxlPSExO2RldGFjaEVkaXRvcigpe3RoaXMuY29udGFpbmVyLmRldGFjaCgpfXN0YXRpYyBcdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJu'@; put 'IG5ldyhkfHxjKX07c3RhdGljIFx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJuZy1jb21wb25lbnQiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGQsaCl7aWYoMSZkJiZGYShSbXQsNyxUcyksMiZkKXtsZXQgZjt5aShmPWJpKCkpJiYoaC5jb250YWluZXI9Zi5maXJzdCl9fSxpbnB1'@; put 'dHM6e3RvcDoidG9wIixsZWZ0OiJsZWZ0IixoZWlnaHQ6ImhlaWdodCIsd2lkdGg6IndpZHRoIixpc1Zpc2libGU6ImlzVmlzaWJsZSIsY29tcG9uZW50UmVmOiJjb21wb25lbnRSZWYifSxkZWNsczozLHZhcnM6MTQsY29uc3RzOltbImlucHV0UGxhY2Vob2xkZXIiLCIiXSxbMSwiaGFuZHNv'@; put 'bnRhYmxlSW5wdXRIb2xkZXIiLCJodF9jbG9uZV9tYXN0ZXIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZCxoKXsxJmQmJihkZSgwLCJkaXYiLDEpLGd0KDEsTG10LDAsMCwibmctdGVtcGxhdGUiLG51bGwsMCxnYyksaGUoKSksMiZkJiZOMSgiZGlzcGxheSIsaC5kaXNwbGF5KSgid2lkdGgiLGgu'@; put 'd2lkdGgsInB4IikoImhlaWdodCIsaC5oZWlnaHQsInB4IikoIm1heC13aWR0aCIsaC53aWR0aCwicHgiKSgibWF4LWhlaWdodCIsaC5oZWlnaHQsInB4IikoInRvcCIsaC50b3AsInB4IikoImxlZnQiLGgubGVmdCwicHgiKX0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSl9'@; put 'cmV0dXJuIGN9KSgpO2NsYXNzIEZtdCBleHRlbmRzIE13LmVkaXRvcnMuQmFzZUVkaXRvcntfY29tcG9uZW50UmVmO19lZGl0b3JQbGFjZUhvbGRlclJlZjtfaXNQbGFjZWhvbGRlclJlYWR5PSExO19maW5pc2hFZGl0U3Vic2NyaXB0aW9uO19jYW5jZWxFZGl0U3Vic2NyaXB0aW9uO2NvbnN0'@; put 'cnVjdG9yKGwpe3N1cGVyKGwpLHRoaXMuaG90LmFkZEhvb2soImFmdGVyUm93UmVzaXplIix0aGlzLm9uQWZ0ZXJSb3dSZXNpemUuYmluZCh0aGlzKSksdGhpcy5ob3QuYWRkSG9vaygiYWZ0ZXJDb2x1bW5SZXNpemUiLHRoaXMub25BZnRlckNvbHVtblJlc2l6ZS5iaW5kKHRoaXMpKSx0aGlz'@; put 'LmhvdC5hZGRIb29rKCJhZnRlckRlc3Ryb3kiLHRoaXMub25BZnRlckRlc3Ryb3kuYmluZCh0aGlzKSl9cHJlcGFyZShsLGEsZCxoLGYsdil7aWYoIXRoaXMuaXNPcGVuZWQoKSl7c3VwZXIucHJlcGFyZShsLGEsZCxoLGYsdik7Y29uc3QgTT10aGlzLmhvdC5nZXRDb2x1bW5NZXRhKGEpO3Ro'@; put 'aXMuX2lzUGxhY2Vob2xkZXJSZWFkeXx8KHRoaXMuY3JlYXRlRWRpdG9yUGxhY2Vob2xkZXIoTS5fZW52aXJvbm1lbnRJbmplY3RvciksdGhpcy5faXNQbGFjZWhvbGRlclJlYWR5PSEwKSx0aGlzLl9jb21wb25lbnRSZWY9TS5fZWRpdG9yQ29tcG9uZW50UmVmZXJlbmNlLHRoaXMuX2Zpbmlz'@; put 'aEVkaXRTdWJzY3JpcHRpb24mJih0aGlzLl9maW5pc2hFZGl0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5fZmluaXNoRWRpdFN1YnNjcmlwdGlvbj12b2lkIDApLHRoaXMuX2NhbmNlbEVkaXRTdWJzY3JpcHRpb24mJih0aGlzLl9jYW5jZWxFZGl0U3Vic2NyaXB0aW9uLnVuc3Vi'@; put 'c2NyaWJlKCksdGhpcy5fY2FuY2VsRWRpdFN1YnNjcmlwdGlvbj12b2lkIDApLHRoaXMuX2ZpbmlzaEVkaXRTdWJzY3JpcHRpb249dGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLmZpbmlzaEVkaXQucGlwZShnaCgxKSkuc3Vic2NyaWJlKCgpPT57dGhpcy5maW5pc2hFZGl0aW5nKCl9KSx0'@; put 'aGlzLl9jYW5jZWxFZGl0U3Vic2NyaXB0aW9uPXRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5jYW5jZWxFZGl0LnBpcGUoZ2goMSkpLnN1YnNjcmliZSgoKT0+e3RoaXMuY2FuY2VsQ2hhbmdlcygpfSl9fWNsb3NlKCl7dGhpcy5pc09wZW5lZCgpJiYodGhpcy5yZXNldEVkaXRvclN0YXRl'@; put 'KCksdGhpcy5fZWRpdG9yUGxhY2VIb2xkZXJSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpLHRoaXMuX2VkaXRvclBsYWNlSG9sZGVyUmVmLmluc3RhbmNlLmRldGFjaEVkaXRvcigpLHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5vbkNsb3NlKCkpfWZvY3VzKCl7dGhp'@; put 'cy5fY29tcG9uZW50UmVmLmluc3RhbmNlLm9uRm9jdXMoKX1nZXRWYWx1ZSgpe3JldHVybiB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2U/LmdldFZhbHVlKCl9b3BlbihsKXt0aGlzLmhvdC5nZXRTaG9ydGN1dE1hbmFnZXIoKS5zZXRBY3RpdmVDb250ZXh0TmFtZSgiZWRpdG9yIiksdGhp'@; put 'cy5hcHBseVByb3BzVG9FZGl0b3IoKSx0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2Uub25PcGVuKGwpfXNldFZhbHVlKGwpe3RoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZT8uc2V0VmFsdWUobCksdGhpcy5fY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMo'@; put 'KX1hcHBseVByb3BzVG9FZGl0b3IoKXtjb25zdCBsPXRoaXMuZ2V0RWRpdGVkQ2VsbFJlY3QoKTt0aGlzLmlzSW5GdWxsRWRpdE1vZGUoKXx8dGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLnNldFZhbHVlKG51bGwpLHRoaXMuX2NvbXBvbmVudFJlZi5zZXRJbnB1dCgib3JpZ2luYWxWYWx1'@; put 'ZSIsdGhpcy5vcmlnaW5hbFZhbHVlKSx0aGlzLl9jb21wb25lbnRSZWYuc2V0SW5wdXQoInJvdyIsdGhpcy5yb3cpLHRoaXMuX2NvbXBvbmVudFJlZi5zZXRJbnB1dCgiY29sdW1uIix0aGlzLmNvbCksdGhpcy5fY29tcG9uZW50UmVmLnNldElucHV0KCJwcm9wIix0aGlzLnByb3ApLHRoaXMu'@; put 'X2NvbXBvbmVudFJlZi5zZXRJbnB1dCgiY2VsbFByb3BlcnRpZXMiLHRoaXMuY2VsbFByb3BlcnRpZXMpLHRoaXMuX2VkaXRvclBsYWNlSG9sZGVyUmVmLnNldElucHV0KCJ0b3AiLGwudG9wKSx0aGlzLl9lZGl0b3JQbGFjZUhvbGRlclJlZi5zZXRJbnB1dCgibGVmdCIsbC5zdGFydCksdGhp'@; put 'cy5fZWRpdG9yUGxhY2VIb2xkZXJSZWYuc2V0SW5wdXQoImhlaWdodCIsbC5oZWlnaHQpLHRoaXMuX2VkaXRvclBsYWNlSG9sZGVyUmVmLnNldElucHV0KCJ3aWR0aCIsbC53aWR0aCksdGhpcy5fZWRpdG9yUGxhY2VIb2xkZXJSZWYuc2V0SW5wdXQoImlzVmlzaWJsZSIsITApLHRoaXMuX2Vk'@; put 'aXRvclBsYWNlSG9sZGVyUmVmLnNldElucHV0KCJjb21wb25lbnRSZWYiLHRoaXMuX2NvbXBvbmVudFJlZiksdGhpcy5fZWRpdG9yUGxhY2VIb2xkZXJSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpfWNyZWF0ZUVkaXRvclBsYWNlaG9sZGVyKGwpe3RoaXMuX2VkaXRvclBs'@; put 'YWNlSG9sZGVyUmVmPXBSKFBtdCx7ZW52aXJvbm1lbnRJbmplY3RvcjpsfSksdGhpcy5ob3Qucm9vdEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fZWRpdG9yUGxhY2VIb2xkZXJSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudCl9b25BZnRlckNvbHVtblJlc2l6ZSgpe3RoaXMuaXNPcGVuZWQo'@; put 'KSYmdGhpcy5hcHBseVByb3BzVG9FZGl0b3IoKX1vbkFmdGVyUm93UmVzaXplKCl7dGhpcy5pc09wZW5lZCgpJiZ0aGlzLmFwcGx5UHJvcHNUb0VkaXRvcigpfW9uQWZ0ZXJEZXN0cm95KCl7dGhpcy5fZWRpdG9yUGxhY2VIb2xkZXJSZWY/LmRlc3Ryb3koKX1yZXNldEVkaXRvclN0YXRlKCl7'@; put 'dGhpcy5fZWRpdG9yUGxhY2VIb2xkZXJSZWYuc2V0SW5wdXQoInRvcCIsdm9pZCAwKSx0aGlzLl9lZGl0b3JQbGFjZUhvbGRlclJlZi5zZXRJbnB1dCgibGVmdCIsdm9pZCAwKSx0aGlzLl9lZGl0b3JQbGFjZUhvbGRlclJlZi5zZXRJbnB1dCgiaGVpZ2h0Iix2b2lkIDApLHRoaXMuX2VkaXRv'@; put 'clBsYWNlSG9sZGVyUmVmLnNldElucHV0KCJ3aWR0aCIsdm9pZCAwKSx0aGlzLl9lZGl0b3JQbGFjZUhvbGRlclJlZi5zZXRJbnB1dCgiaXNWaXNpYmxlIiwhMSksdGhpcy5fZWRpdG9yUGxhY2VIb2xkZXJSZWYuc2V0SW5wdXQoImNvbXBvbmVudFJlZiIsdm9pZCAwKX19Y2xhc3MgbE57c3Rh'@; put 'dGljIFJFTkRFUkVSX01BUktFUj1TeW1ib2woIkhvdENlbGxSZW5kZXJlckNvbXBvbmVudCIpO3ZhbHVlPSIiO2luc3RhbmNlO3RkO3Jvdztjb2w7cHJvcDtjZWxsUHJvcGVydGllcztnZXRQcm9wcygpe3JldHVybiB0aGlzLmNlbGxQcm9wZXJ0aWVzPy5yZW5kZXJlclByb3BzPz97fX1zdGF0'@; put 'aWMgXHUwMjc1ZmFjPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcoYXx8bE4pfTtzdGF0aWMgXHUwMjc1Y21wPU5yKHt0eXBlOmxOLHNlbGVjdG9yczpbWyJob3QtY2VsbC1yZW5kZXJlciJdXSxpbnB1dHM6e3ZhbHVlOiJ2YWx1ZSIsaW5zdGFuY2U6Imluc3RhbmNlIix0ZDoidGQiLHJvdzoicm93'@; put 'Iixjb2w6ImNvbCIscHJvcDoicHJvcCIsY2VsbFByb3BlcnRpZXM6ImNlbGxQcm9wZXJ0aWVzIn0sZGVjbHM6MCx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oYSxkKXt9LGVuY2Fwc3VsYXRpb246Mn0pfWZ1bmN0aW9uIE82ZShjKXtyZXR1cm4gYz8uUkVOREVSRVJfTUFSS0VSPT09bE4uUkVO'@; put 'REVSRVJfTUFSS0VSfWxldCBWbXQ9KCgpPT57Y2xhc3MgY3thcHBSZWY7ZW52aXJvbm1lbnRJbmplY3Rvcjtjb25zdHJ1Y3RvcihhLGQpe3RoaXMuYXBwUmVmPWEsdGhpcy5lbnZpcm9ubWVudEluamVjdG9yPWR9Y3JlYXRlUmVuZGVyZXJGcm9tQ29tcG9uZW50KGEsZD17fSxoPSExKXtyZXR1'@; put 'cm4oZix2LE0sSSxHLHJlLHVlKT0+e2NvbnN0IHllPXt2YWx1ZTpyZSxpbnN0YW5jZTpmLHRkOnYscm93Ok0sY29sOkkscHJvcDpHLGNlbGxQcm9wZXJ0aWVzOnVlfTtpZihkJiZPYmplY3QuYXNzaWduKHVlLHtyZW5kZXJlclByb3BzOmR9KSxNdy5yZW5kZXJlcnMuQmFzZVJlbmRlcmVyLmFw'@; put 'cGx5KHRoaXMsW2YsdixNLEksRyxyZSx1ZV0pLHYuaW5uZXJIVE1MPSIiLGZ1bmN0aW9uIE5tdChjKXtyZXR1cm4gYyYmImZ1bmN0aW9uIj09dHlwZW9mIGMuY3JlYXRlRW1iZWRkZWRWaWV3fShhKSl0aGlzLmF0dGFjaFRlbXBsYXRlVG9FbGVtZW50KGEsdix5ZSk7ZWxzZSBpZihPNmUoYSkp'@; put 'e2NvbnN0IEJlPXRoaXMuY3JlYXRlQ29tcG9uZW50KGEseWUpO3RoaXMuYXR0YWNoQ29tcG9uZW50VG9FbGVtZW50KEJlLHYpfWVsc2UgY29uc29sZS53YXJuKCJUaGUgcHJvdmlkZWQgcmVuZGVyZXIgY29tcG9uZW50IHdhcyBub3QgcmVjb2duaXplZCBhcyBhIHZhbGlkIGN1c3RvbSByZW5k'@; put 'ZXJlci4gSXQgbXVzdCBlaXRoZXIgZXh0ZW5kIEhvdENlbGxSZW5kZXJlckNvbXBvbmVudCBvciBiZSBhIHZhbGlkIFRlbXBsYXRlUmVmLiBQbGVhc2UgZW5zdXJlIHRoYXQgeW91ciBjdXN0b20gcmVuZGVyZXIgaXMgaW1wbGVtZW50ZWQgY29ycmVjdGx5IGFuZCBpbXBvcnRlZCBmcm9tIHRo'@; put 'ZSBwcm9wZXIgc291cmNlLiIpO3JldHVybiBoJiZPNmUoYSkmJk13LnJlbmRlcmVycy5yZWdpc3RlclJlbmRlcmVyKGEuY29uc3RydWN0b3IubmFtZSxhKSx2fX1hdHRhY2hUZW1wbGF0ZVRvRWxlbWVudChhLGQsaCl7Y29uc3QgZj1hLmNyZWF0ZUVtYmVkZGVkVmlldyh7JGltcGxpY2l0Omgu'@; put 'dmFsdWUsLi4uaH0pO2YuZGV0ZWN0Q2hhbmdlcygpLGYucm9vdE5vZGVzLmZvckVhY2godj0+e2QuYXBwZW5kQ2hpbGQodil9KX1jcmVhdGVDb21wb25lbnQoYSxkKXtjb25zdCBoPXBSKGEse2Vudmlyb25tZW50SW5qZWN0b3I6dGhpcy5lbnZpcm9ubWVudEluamVjdG9yfSk7cmV0dXJuIE9i'@; put 'amVjdC5rZXlzKGQpLmZvckVhY2goZj0+e2QuaGFzT3duUHJvcGVydHkoZik/aC5zZXRJbnB1dChmLGRbZl0pOmNvbnNvbGUud2FybihgSW5wdXQgcHJvcGVydHkgIiR7Zn0iIGRvZXMgbm90IGV4aXN0IG9uIGNvbXBvbmVudCBpbnN0YW5jZTogJHthPy5uYW1lfS5gKX0pLGguY2hhbmdlRGV0'@; put 'ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpLHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcoaC5ob3N0VmlldyksaH1hdHRhY2hDb21wb25lbnRUb0VsZW1lbnQoYSxkKXtkLmFwcGVuZENoaWxkKGEuaG9zdFZpZXcucm9vdE5vZGVzWzBdKX1kZXN0cm95Q29tcG9uZW50KGEpe3RoaXMuYXBwUmVmLmRl'@; put 'dGFjaFZpZXcoYS5ob3N0VmlldyksYS5kZXN0cm95KCl9c3RhdGljIFx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpKENyKHVwKSxDcihxbCkpfTtzdGF0aWMgXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSl9'@; put 'cmV0dXJuIGN9KSgpO2NvbnN0IEJtdD1PYmplY3Qua2V5cyhyby5EZWZhdWx0U2V0dGluZ3MpLFA2ZT1yby5ob29rcy5nZXRSZWdpc3RlcmVkKCk7bGV0IEY2ZT0oKCk9PntjbGFzcyBje2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlO2Vudmlyb25tZW50SW5qZWN0b3I7Y29uc3RydWN0b3IoYSxk'@; put 'KXt0aGlzLmR5bmFtaWNDb21wb25lbnRTZXJ2aWNlPWEsdGhpcy5lbnZpcm9ubWVudEluamVjdG9yPWR9YXBwbHlDdXN0b21TZXR0aW5ncyhhLGQpe2NvbnN0IGg9YTtyZXR1cm4gdGhpcy51cGRhdGVDb2x1bW5SZW5kZXJlckZvckdpdmVuQ3VzdG9tUmVuZGVyZXIoaCksdGhpcy51cGRhdGVD'@; put 'b2x1bW5FZGl0b3JGb3JHaXZlbkN1c3RvbUVkaXRvcihoKSx0aGlzLnVwZGF0ZUNvbHVtblZhbGlkYXRvckZvckdpdmVuQ3VzdG9tVmFsaWRhdG9yKGgpLHRoaXMud3JhcEhvb2tzSW5OZ1pvbmUoaCxkKSxoPz97fX13cmFwSG9va3NJbk5nWm9uZShhLGQpe1A2ZS5jb25jYXQoQm10KS5mb3JF'@; put 'YWNoKGY9Pntjb25zdCB2PVA2ZS5pbmRleE9mKGYpPi0xO2xldCBNO3YmJihNPWFbZl0pLHZvaWQgMCE9PU0mJihhW2ZdPWQmJiJmdW5jdGlvbiI9PXR5cGVvZiBNJiZ2P2Z1bmN0aW9uKC4uLkkpe3JldHVybiBkLnJ1bigoKT0+TS5hcHBseSh0aGlzLEkpKX06TSl9KX11cGRhdGVDb2x1bW5S'@; put 'ZW5kZXJlckZvckdpdmVuQ3VzdG9tUmVuZGVyZXIoYSl7QXJyYXkuaXNBcnJheShhPy5jb2x1bW5zKSYmYT8uY29sdW1ucz8uZmlsdGVyKGQ9PnRoaXMuaXNSZW5kZXJlckNvbXBvbmVudFJlZlR5cGUoZC5yZW5kZXJlcil8fHRoaXMuaXNUZW1wbGF0ZVJlZihkLnJlbmRlcmVyKSk/LmZvckVh'@; put 'Y2goZD0+e2NvbnN0IGg9KHRoaXMuaXNUZW1wbGF0ZVJlZihkLnJlbmRlcmVyKSxkLnJlbmRlcmVyKTtkLnJlbmRlcmVyPXRoaXMuZHluYW1pY0NvbXBvbmVudFNlcnZpY2UuY3JlYXRlUmVuZGVyZXJGcm9tQ29tcG9uZW50KGgsZC5yZW5kZXJlclByb3BzPz97fSl9KX11cGRhdGVDb2x1bW5F'@; put 'ZGl0b3JGb3JHaXZlbkN1c3RvbUVkaXRvcihhKXtBcnJheS5pc0FycmF5KGE/LmNvbHVtbnMpJiZhPy5jb2x1bW5zPy5maWx0ZXIoZD0+dGhpcy5pc0VkaXRvckNvbXBvbmVudFJlZlR5cGUoZC5lZGl0b3IpKT8uZm9yRWFjaChkPT57ZC5fZWRpdG9yQ29tcG9uZW50UmVmZXJlbmNlPXBSKGQu'@; put 'ZWRpdG9yLHtlbnZpcm9ubWVudEluamVjdG9yOnRoaXMuZW52aXJvbm1lbnRJbmplY3Rvcn0pLGQuX2Vudmlyb25tZW50SW5qZWN0b3I9dGhpcy5lbnZpcm9ubWVudEluamVjdG9yLGQuZWRpdG9yPUZtdH0pfXVwZGF0ZUNvbHVtblZhbGlkYXRvckZvckdpdmVuQ3VzdG9tVmFsaWRhdG9yKGEp'@; put 'e0FycmF5LmlzQXJyYXkoYT8uY29sdW1ucykmJmE/LmNvbHVtbnM/LmZpbHRlcihkPT50aGlzLmlzQ3VzdG9tVmFsaWRhdG9yRm4oZC52YWxpZGF0b3IpKT8uZm9yRWFjaChkPT57Y29uc3QgaD1kLnZhbGlkYXRvcjtkLnZhbGlkYXRvcj0oZix2KT0+e3YoaChmKSl9fSl9aXNDdXN0b21WYWxp'@; put 'ZGF0b3JGbihhKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgYSYmMT09PWEubGVuZ3RofWlzRWRpdG9yQ29tcG9uZW50UmVmVHlwZShhKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgYSYmISFhPy5cdTAyNzVjbXB9aXNSZW5kZXJlckNvbXBvbmVudFJlZlR5cGUoYSl7cmV0dXJuImZ1bmN0'@; put 'aW9uIj09dHlwZW9mIGEmJiEhYT8uXHUwMjc1Y21wfWlzVGVtcGxhdGVSZWYoYSl7cmV0dXJuIGEmJiJmdW5jdGlvbiI9PXR5cGVvZiBhLmNyZWF0ZUVtYmVkZGVkVmlld31zdGF0aWMgXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoQ3IoVm10KSxDcihxbCkpfTtzdGF0'@; put 'aWMgXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSl9cmV0dXJuIGN9KSgpO2NvbnN0IHptdD1uZXcgU3QoIkhPVF9HTE9CQUxfQ09ORklHIix7cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTooKT0+KHt9KX0pO2xldCBVbXQ9KCgpPT57Y2xhc3MgY3tkZWZhdWx0'@; put 'Q29uZmlnPXtsaWNlbnNlOnZvaWQgMCx0aGVtZU5hbWU6IiJ9O2NvbmZpZ1N1YmplY3Q9bmV3IEpyKHRoaXMuZGVmYXVsdENvbmZpZyk7Z2V0IGNvbmZpZyQoKXtyZXR1cm4gdGhpcy5jb25maWdTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpfWNvbnN0cnVjdG9yKGEpe3RoaXMuZGVmYXVsdENvbmZp'@; put 'Zz17Li4udGhpcy5kZWZhdWx0Q29uZmlnLC4uLmF9LHRoaXMuY29uZmlnU3ViamVjdC5uZXh0KHRoaXMuZGVmYXVsdENvbmZpZyl9c2V0Q29uZmlnKGEpe3RoaXMuY29uZmlnU3ViamVjdC5uZXh0KHsuLi50aGlzLmRlZmF1bHRDb25maWcsLi4uYX0pfWdldENvbmZpZygpe3JldHVybiB0aGlz'@; put 'LmNvbmZpZ1N1YmplY3QudmFsdWV9cmVzZXRDb25maWcoKXt0aGlzLmNvbmZpZ1N1YmplY3QubmV4dCh7Li4udGhpcy5kZWZhdWx0Q29uZmlnfSl9c3RhdGljIFx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpKENyKHptdCkpfTtzdGF0aWMgXHUwMjc1cHJvdj1ybih7dG9r'@; put 'ZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSl9cmV0dXJuIGN9KSgpLCRnPSgoKT0+e2NsYXNzIGN7X2hvdFNldHRpbmdzUmVzb2x2ZXI7X2hvdENvbmZpZztuZ1pvbmU7ZGF0YT1udWxsO3NldHRpbmdzPXt9O2NvbnRhaW5lcjtfX2hvdEluc3RhbmNlPW51bGw7'@; put 'Y29uZmlnU3Vic2NyaXB0aW9uO2NvbnN0cnVjdG9yKGEsZCxoKXt0aGlzLl9ob3RTZXR0aW5nc1Jlc29sdmVyPWEsdGhpcy5faG90Q29uZmlnPWQsdGhpcy5uZ1pvbmU9aH1nZXQgaG90SW5zdGFuY2UoKXtyZXR1cm4hdGhpcy5fX2hvdEluc3RhbmNlfHx0aGlzLl9faG90SW5zdGFuY2UmJiF0'@; put 'aGlzLl9faG90SW5zdGFuY2UuaXNEZXN0cm95ZWQ/dGhpcy5fX2hvdEluc3RhbmNlOihjb25zb2xlLndhcm4oIlRoZSBIYW5kc29udGFibGUgaW5zdGFuY2UgYm91bmQgdG8gdGhpcyBjb21wb25lbnQgd2FzIGRlc3Ryb3llZCBhbmQgY2Fubm90IGJlIHVzZWQgcHJvcGVybHkuIiksbnVsbCl9'@; put 'c2V0IGhvdEluc3RhbmNlKGEpe3RoaXMuX19ob3RJbnN0YW5jZT1hfW5nQWZ0ZXJWaWV3SW5pdCgpe2xldCBhPXRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXIuYXBwbHlDdXN0b21TZXR0aW5ncyh0aGlzLnNldHRpbmdzLHRoaXMubmdab25lKTtjb25zdCBkPXRoaXMuZ2V0TmVnb3RpYXRlZFNl'@; put 'dHRpbmdzKGEpO2E9ey4uLmEsLi4uZCxkYXRhOnRoaXMuZGF0YX0sdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0aGlzLmhvdEluc3RhbmNlPW5ldyByby5Db3JlKHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsYSksdGhpcy5ob3RJbnN0YW5jZS5pbml0KCl9KSx0aGlz'@; put 'LmNvbmZpZ1N1YnNjcmlwdGlvbj10aGlzLl9ob3RDb25maWcuY29uZmlnJC5zdWJzY3JpYmUoaD0+e2lmKHRoaXMuaG90SW5zdGFuY2Upe2NvbnN0IGY9dGhpcy5nZXROZWdvdGlhdGVkU2V0dGluZ3ModGhpcy5zZXR0aW5ncyk7dGhpcy51cGRhdGVIb3RUYWJsZShmKX19KX1uZ09uQ2hhbmdl'@; put 'cyhhKXtpZihudWxsIT09dGhpcy5ob3RJbnN0YW5jZSl7aWYoYS5zZXR0aW5ncyYmIWEuc2V0dGluZ3MuZmlyc3RDaGFuZ2Upe2NvbnN0IGQ9dGhpcy5faG90U2V0dGluZ3NSZXNvbHZlci5hcHBseUN1c3RvbVNldHRpbmdzKGEuc2V0dGluZ3MuY3VycmVudFZhbHVlLHRoaXMubmdab25lKTt0'@; put 'aGlzLnVwZGF0ZUhvdFRhYmxlKGQpfWEuZGF0YSYmIWEuZGF0YS5maXJzdENoYW5nZSYmdGhpcy5ob3RJbnN0YW5jZT8udXBkYXRlRGF0YShhLmRhdGEuY3VycmVudFZhbHVlKX19bmdPbkRlc3Ryb3koKXt0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e2lmKCF0aGlzLmhvdElu'@; put 'c3RhbmNlKXJldHVybjtjb25zdCBhPXRoaXMuaG90SW5zdGFuY2UuZ2V0U2V0dGluZ3MoKS5jb2x1bW5zO2EmJkFycmF5LmlzQXJyYXkoYSkmJmEuZm9yRWFjaChkPT57ZC5fZWRpdG9yQ29tcG9uZW50UmVmZXJlbmNlJiZkLl9lZGl0b3JDb21wb25lbnRSZWZlcmVuY2UuZGVzdHJveSgpfSks'@; put 'dGhpcy5ob3RJbnN0YW5jZS5kZXN0cm95KCl9KSx0aGlzLmNvbmZpZ1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfXVwZGF0ZUhvdFRhYmxlKGEpe3RoaXMuaG90SW5zdGFuY2UmJnRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57dGhpcy5ob3RJbnN0YW5jZT8udXBkYXRlU2V0'@; put 'dGluZ3MoYSwhMSl9KX1nZXROZWdvdGlhdGVkU2V0dGluZ3MoYSl7Y29uc3QgZD10aGlzLl9ob3RDb25maWcuZ2V0Q29uZmlnKCksaD17fTtyZXR1cm4gaC5saWNlbnNlS2V5PWEubGljZW5zZUtleT8/ZC5saWNlbnNlLGgudGhlbWVOYW1lPWEudGhlbWVOYW1lPz9kLnRoZW1lTmFtZSxoLmxh'@; put 'bmd1YWdlPWEubGFuZ3VhZ2U/P2QubGFuZ3VhZ2UsdGhpcy5fX2hvdEluc3RhbmNlfHwoaC5sYXlvdXREaXJlY3Rpb249YS5sYXlvdXREaXJlY3Rpb24/P2QubGF5b3V0RGlyZWN0aW9uKSxofXN0YXRpYyBcdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKSgkZShGNmUpLCRl'@; put 'KFVtdCksJGUoR2EpKX07c3RhdGljIFx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJob3QtdGFibGUiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGQsaCl7aWYoMSZkJiZGYShPbXQsNSksMiZkKXtsZXQgZjt5aShmPWJpKCkpJiYoaC5jb250YWluZXI9Zi5maXJzdCl9fSxpbnB1dHM6'@; put 'e2RhdGE6ImRhdGEiLHNldHRpbmdzOiJzZXR0aW5ncyJ9LGZlYXR1cmVzOlt1YShbRjZlXSksYmxdLGRlY2xzOjIsdmFyczowLGNvbnN0czpbWyJjb250YWluZXIiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZCxoKXsxJmQmJld0KDAsImRpdiIsbnVsbCwwKX0sc3R5bGVzOlsiOmhvc3R7ZGlz'@; put 'cGxheTpibG9ja31cbiJdLGVuY2Fwc3VsYXRpb246Mn0pfXJldHVybiBjfSkoKSxaOT0oKCk9PntjbGFzcyBje3N0YXRpYyB2ZXJzaW9uPSIxNi4wLjEiO2NvbnN0cnVjdG9yKCl7fXN0YXRpYyBmb3JSb290KCl7cmV0dXJue25nTW9kdWxlOmN9fXN0YXRpYyBcdTAyNzVmYWM9ZnVuY3Rpb24o'@; put 'ZCl7cmV0dXJuIG5ldyhkfHxjKX07c3RhdGljIFx1MDI3NW1vZD1BaSh7dHlwZTpjfSk7c3RhdGljIFx1MDI3NWluaj1Bcih7fSl9cmV0dXJuIGN9KSgpLGNmPSgoKT0+e2NsYXNzIGN7c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0'@; put 'aGlzLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSl9c3RhdGlje3RoaXMuXHUwMjc1aW5qPUFyKHtpbXBvcnRzOltMYV19KX19cmV0dXJuIGN9KSgpLHh3PSgoKT0+e2NsYXNzIGN7bmdPbkluaXQoKXt9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0'@; put 'YXRpY3t0aGlzLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSl9c3RhdGlje3RoaXMuXHUwMjc1aW5qPUFyKHtwcm92aWRlcnM6W01XLHdoZV0saW1wb3J0czpbTGEsa2MsQmMsQjAsY2ZdfSl9fXJldHVybiBjfSkoKSxUQT0oKCk9PntjbGFzcyBje3N0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlv'@; put 'bihkKXtyZXR1cm4gbmV3KGR8fGMpfX1zdGF0aWN7dGhpcy5cdTAyNzVtb2Q9QWkoe3R5cGU6Y30pfXN0YXRpY3t0aGlzLlx1MDI3NWluaj1Bcih7aW1wb3J0czpbTGFdfSl9fXJldHVybiBjfSkoKSxINmU9KCgpPT57Y2xhc3MgY3tzdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7'@; put 'cmV0dXJuIG5ldyhkfHxjKX19c3RhdGlje3RoaXMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9KX1zdGF0aWN7dGhpcy5cdTAyNzVpbmo9QXIoe2ltcG9ydHM6W0xhLEIwLExhLGtjXX0pfX1yZXR1cm4gY30pKCksVzk9KCgpPT57Y2xhc3MgY3tzdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24o'@; put 'ZCl7cmV0dXJuIG5ldyhkfHxjKX19c3RhdGlje3RoaXMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9KX1zdGF0aWN7dGhpcy5cdTAyNzVpbmo9QXIoe2ltcG9ydHM6W0xhLGtjLEIwLEJjLHh3LFRBLGNmLEg2ZV19KX19cmV0dXJuIGN9KSgpO2NsYXNzIFllZXtjb25zdHJ1Y3Rvcigpe3RoaXMucXVl'@; put 'dWU9W119YWRkVG9RdWV1ZShsKXt0aGlzLnF1ZXVlLnB1c2goLi4ubCl9fWNvbnN0IEdlZT0oYyxsLGEpPT57Zm9yKGxldCBkIG9mIGMpe2NvbnN0IGg9bC5maW5kKHY9PnYuZGF0YT09PWQuTkFNRSksZj1hLnZhcnNbZC5OQU1FXTtmJiYoZC5UWVBFPVsiREFURSIsIkRBVEVUSU1FIiwiVElN'@; put 'RSJdLmluY2x1ZGVzKGQuRERUWVBFKT8ibnVtIjpmLnR5cGUpLGgmJmQuREVTQyYmKGguZGVzYz1kLkRFU0MpLGgmJmYubGVuZ3RoJiYoaC5sZW5ndGg9cGFyc2VJbnQoZi5sZW5ndGgpKSxoJiZkLkNMU19SVUxFJiYoaC5jbHNSdWxlPWQuQ0xTX1JVTEUpfXJldHVybiBsfTtmdW5jdGlvbiAk'@; put 'ZWUoYyxsKXtpZihudWxsPT1jfHwhaXNOYU4oYykmJmlzRmluaXRlKGMpKXJldHVybiBsJiZsKCEwKSwhMDtjb25zdCBhPSgwLHBnLmlzU3BlY2lhbE1pc3NpbmcpKGMpO3JldHVybiBsJiZsKGEpLGF9Y29uc3QgTjZlPXtDQVNFOihjLGwpPT57c3dpdGNoKGwpe2Nhc2UiVVBDQVNFIjpyZXR1'@; put 'cm4hIVt2b2lkIDAsbnVsbF0uaW5jbHVkZXMoYyl8fCJzdHJpbmciPT10eXBlb2YgYyYmYy50b1N0cmluZygpPT09Yy50b1N0cmluZygpLnRvVXBwZXJDYXNlKCk7Y2FzZSJMT1dDQVNFIjpyZXR1cm4hIVt2b2lkIDAsbnVsbF0uaW5jbHVkZXMoYyl8fCJzdHJpbmciPT10eXBlb2YgYyYmYy50'@; put 'b1N0cmluZygpPT09Yy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCl9cmV0dXJuITB9LE1JTlZBTDooYyxsKT0+e2NvbnN0IGE9JGVlKGMpLGQ9cGFyc2VGbG9hdChjKTtyZXR1cm4oIWF8fCFpc05hTihkKSkmJmQ+PU51bWJlcihsLnRvU3RyaW5nKCkpfSxNQVhWQUw6KGMsbCk9Pntjb25zdCBh'@; put 'PSRlZShjKSxkPXBhcnNlRmxvYXQoYyk7cmV0dXJuISghYXx8IWlzTmFOKGQpKXx8ZDw9TnVtYmVyKGwudG9TdHJpbmcoKSl9LE5PVE5VTEw6KGMsbCk9Pm51bGwhPWMmJmMudG9TdHJpbmcoKS5sZW5ndGg+MH07dmFyIEtlZT1iKDc4Mzc1KTtjbGFzcyBLbXQgZXh0ZW5kcyBNdy5lZGl0b3Jz'@; put 'LkF1dG9jb21wbGV0ZUVkaXRvcntjb25zdHJ1Y3RvcihsKXtzdXBlcihsKX1jcmVhdGVFbGVtZW50cygpe3N1cGVyLmNyZWF0ZUVsZW1lbnRzKCl9b3BlbihsKXtzdXBlci5vcGVuKGwpLHRoaXMuaXNDZWxsTnVtZXJpYygpP3RoaXMuaHRDb250YWluZXIuY2xhc3NMaXN0LmFkZCgibnVtZXJp'@; put 'Y0xpc3Rib3giKTp0aGlzLmh0Q29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoIm51bWVyaWNMaXN0Ym94Iil9aXNDZWxsTnVtZXJpYygpe3JldHVybiB0aGlzLmNlbGxQcm9wZXJ0aWVzPy5jbGFzc05hbWU/LmluY2x1ZGVzKCJodE51bWVyaWMiKX19Y2xhc3MgVjZle2NvbnN0cnVjdG9yKGws'@; put 'YSxkLGgsZix2KXt0aGlzLnJ1bGVzPVtdLHRoaXMuZHFydWxlcz1bXSx0aGlzLmRxZGF0YT1bXSx0aGlzLmhpZGRlbkNvbHVtbnM9W10sdGhpcy5wcmltYXJ5S2V5cz1bXSx0aGlzLmV4ZWN1dGVIb3RWYWxpZGF0b3I9KE0sSSxHKT0+e2NvbnN0IHJlPXsuLi5NLHZhbGlkYXRvcjp2b2lkIDAs'@; put 'Y29ycmVjdEZvcm1hdDohMSxyb3c6MCxjb2w6MCxpbnN0YW5jZTpuZXcgTXcoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikse30pLHZpc3VhbFJvdzowLHZpc3VhbENvbDowLHByb3A6MH07bnVsbD09SSYmKEk9IiIpLE0mJk0udmFsaWRhdG9yJiYiZnVuY3Rpb24iPT10eXBlb2YgTS52'@; put 'YWxpZGF0b3I/TS52YWxpZGF0b3IuY2FsbChyZSxJLHVlPT57RyYmRyh1ZSl9KTpHJiZHKCExKX0sdGhpcy5yZWdpc3RlckN1c3RvbUVkaXRvcnMoKSx0aGlzLnNhc3BhcmFtcz1sLHRoaXMuaG90SW5zdGFuY2U9dix0aGlzLnJ1bGVzPShjPT57dHJ5e3JldHVybiBKU09OLnBhcnNlKGBbJHtj'@; put 'fV1gKX1jYXRjaHtyZXR1cm5bXX19KShsLkNPTFRZUEUpLHRoaXMucnVsZXM9R2VlKGQsdGhpcy5ydWxlcyxhKSx0aGlzLnJ1bGVzPShjPT57aWYoIUtlZVt3aW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlXSlyZXR1cm4gYztmb3IobGV0IGEgb2YgYykibnVtZXJpYyI9PT1hLnR5cGUmJihhLm51'@; put 'bWVyaWNGb3JtYXQ9e3BhdHRlcm46IjAsMCIsY3VsdHVyZTp3aW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlfSk7cmV0dXJuIGN9KSh0aGlzLnJ1bGVzKSx0aGlzLmRxcnVsZXM9aCx0aGlzLmRxZGF0YT1mLHRoaXMucHJpbWFyeUtleXM9bC5QSy5zcGxpdCgiICIpLHRoaXMudXBkYXRlRHFEYXRh'@; put 'KCksdGhpcy5zZXR1cFZhbGlkYXRpb25zKCl9cmVnaXN0ZXJDdXN0b21FZGl0b3JzKCl7TXcuZWRpdG9ycy5yZWdpc3RlckVkaXRvcigiYXV0b2NvbXBsZXRlLmN1c3RvbSIsS210KX1nZXRSdWxlcygpe3JldHVybiB0aGlzLnJ1bGVzfWdldFJ1bGUobCl7Y29uc3QgYT10aGlzLmdldFJ1bGVJ'@; put 'bmRleChsKTtyZXR1cm4gdGhpcy5ydWxlc1thXX1nZXRIaWRkZW5Db2x1bW5zKCl7cmV0dXJuIHRoaXMuaGlkZGVuQ29sdW1uc311cGRhdGVSdWxlKGwsYSl7bGV0IGQ9dGhpcy5nZXRSdWxlSW5kZXgobCk7dGhpcy5ydWxlc1tkXT17Li4udGhpcy5ydWxlc1tkXSwuLi5hfX1yZW1vdmVSdWxl'@; put 'KGwpe2NvbnN0IGE9dGhpcy5nZXRSdWxlSW5kZXgobCk7dGhpcy5ydWxlcy5zcGxpY2UoYSwxKX1nZXREcURldGFpbHMobCl7cmV0dXJuIGw/dGhpcy5kcXJ1bGVzLmZpbHRlcihhPT5hLkJBU0VfQ09MPT09bCk6dGhpcy5kcXJ1bGVzfWlzRHFDb2wobCl7cmV0dXJuISF0aGlzLmRxcnVsZXMu'@; put 'ZmluZChhPT5hLkJBU0VfQ09MPT09bCl9aGFzRHFSdWxlcyhsLGEsZD0hMSl7cmV0dXJuIGQ/dGhpcy5kcXJ1bGVzLmZpbHRlcihoPT5oLkJBU0VfQ09MPT09bCYmYS5pbmNsdWRlcyhoLlJVTEVfVFlQRSkpLmxlbmd0aD09PWEubGVuZ3RoOiEhdGhpcy5kcXJ1bGVzLmZpbmQoaD0+aC5CQVNF'@; put 'X0NPTD09PWwmJmEuaW5jbHVkZXMoaC5SVUxFX1RZUEUpKX1nZXREcURyb3Bkb3duU291cmNlKGwpe2xldCBhPVtdO3JldHVybiB0aGlzLmRxcnVsZXMuZm9yRWFjaChkPT57ZC5CQVNFX0NPTC50b1N0cmluZygpPT09bC5kYXRhJiZsLmRhdGEudG9TdHJpbmcoKSYmWyJIQVJEU0VMRUNUIiwi'@; put 'U09GVFNFTEVDVCIsIkhBUkRTRUxFQ1RfSE9PSyIsIlNPRlRTRUxFQ1RfSE9PSyJdLmluY2x1ZGVzKGQuUlVMRV9UWVBFLnRvU3RyaW5nKCkpJiZ0aGlzLmRxZGF0YS5maWx0ZXIoaD0+aC5CQVNFX0NPTD09PWQuQkFTRV9DT0wpLmZvckVhY2goaD0+e2EucHVzaChsLnR5cGUmJiJudW1lcmlj'@; put 'Ij09PWwudHlwZT9OdW1iZXIoaC5SVUxFX0RBVEEpOmguUlVMRV9EQVRBKX0pfSksYX11cGRhdGVEcURhdGEoKXt0aGlzLmRxZGF0YS5sZW5ndGg+MCYmKGM9Pntjb25zdCBsPVtdO3JldHVybiB0aGlzLmRxZGF0YS5mb3JFYWNoKGE9PntsLmluY2x1ZGVzKGEuQkFTRV9DT0wpfHxsLnB1c2go'@; put 'YS5CQVNFX0NPTCl9KSxsfSkoKS5mb3JFYWNoKGE9PntsZXQgZD0hMTt0aGlzLmRxcnVsZXMubGVuZ3RoPjAmJnRoaXMuZHFydWxlcy5mb3JFYWNoKGg9PntoLkJBU0VfQ09MPT09YSYmKCJTT0ZUU0VMRUNUIj09PWguUlVMRV9UWVBFfHwiSEFSRFNFTEVDVCI9PT1oLlJVTEVfVFlQRSkmJihk'@; put 'PSEwKX0pLGR8fHRoaXMuZHFydWxlcy5wdXNoKHtCQVNFX0NPTDphLFJVTEVfVFlQRToiU09GVFNFTEVDVCIsUlVMRV9WQUxVRTphLFg6MX0pfSl9c2V0dXBWYWxpZGF0aW9ucygpe2ZvcihsZXQgbD0wO2w8dGhpcy5ydWxlcy5sZW5ndGg7bCsrKXtjb25zdCBhPXRoaXMucnVsZXNbbF0uZGF0'@; put 'YXx8IiI7aWYoIl9fX19fREVMRVRFX19USElTX19SRUNPUkRfX19fXyIhPT1hKXtpZih0aGlzLmlzRHFDb2woYSkpe2xldCBoPXRoaXMuZ2V0RHFEcm9wZG93blNvdXJjZSh0aGlzLnJ1bGVzW2xdKTtoLmxlbmd0aD4wJiYodGhpcy5ydWxlc1tsXS5zb3VyY2U9aCx0aGlzLnJ1bGVzW2xdLnR5'@; put 'cGU9ImF1dG9jb21wbGV0ZSIsdGhpcy5ydWxlc1tsXS5lZGl0b3I9ImF1dG9jb21wbGV0ZS5jdXN0b20iLHRoaXMucnVsZXNbbF0uZmlsdGVyPSExKSx0aGlzLmhhc0RxUnVsZXMoYSxbIlNPRlRTRUxFQ1QiXSkmJih0aGlzLnJ1bGVzW2xdLnN0cmljdD0hMSksdGhpcy5oYXNEcVJ1bGVzKGEs'@; put 'WyJIQVJEU0VMRUNUIl0pJiYodGhpcy5ydWxlc1tsXS5zdHJpY3Q9ITApLHRoaXMuaGFzRHFSdWxlcyhhLFsiU09GVFNFTEVDVF9IT09LIl0pJiYodGhpcy5ydWxlc1tsXS5zdHJpY3Q9ITEpLHRoaXMuaGFzRHFSdWxlcyhhLFsiSEFSRFNFTEVDVF9IT09LIl0pJiYodGhpcy5ydWxlc1tsXS5z'@; put 'dHJpY3Q9ITApLHRoaXMuaGFzRHFSdWxlcyhhLFsiTk9UTlVMTCJdKSYmKHRoaXMucnVsZXNbbF0uYWxsb3dFbXB0eT0hMSl9InRydWUiPT09dGhpcy5ydWxlc1tsXS5jb3JyZWN0Rm9ybWF0JiYodGhpcy5ydWxlc1tsXS5jb3JyZWN0Rm9ybWF0PSEwKSx0aGlzLnNldERlZmF1bHRWYWxpZGF0'@; put 'b3IodGhpcyxsKSx0aGlzLnNldENvbHVtbkxldmVsU2VjdXJpdHkobCl9fXRoaXMuc2FzcGFyYW1zPy5DTFNfRkxBRyYmdGhpcy5oaWRkZW5Db2x1bW5zLnB1c2goMCl9c2V0RGVmYXVsdFZhbGlkYXRvcihsLGEpe3RoaXMucnVsZXNbYV0udmFsaWRhdG9yPWZ1bmN0aW9uKGQsaCl7Y29uc3Qg'@; put 'Zj1sLnJ1bGVzW2FdLmRhdGE/LnRvU3RyaW5nKCksdj1sLnJ1bGVzW2FdLnR5cGV8fCIiO2xldCBNPW51bGw7cmV0dXJuImF1dG9jb21wbGV0ZSIhPT10aGlzLmVkaXRvciYmImF1dG9jb21wbGV0ZS5jdXN0b20iIT09dGhpcy5lZGl0b3J8fChsLmdldEhhbmRzb250YWJsZVZhbGlkYXRvcigi'@; put 'YXV0b2NvbXBsZXRlIikuY2FsbCh0aGlzLGQsST0+e009SX0pLE0pPyhsLmdldEhhbmRzb250YWJsZVZhbGlkYXRvcih2KS5jYWxsKHRoaXMsZCxJPT57TT1JfSksTT9sLmxlbmd0aENoZWNrKGQsbC5ydWxlc1thXS5sZW5ndGgsdik/bC5pc0RxQ29sKGZ8fCIiKSYmISgoYyxsKT0+e2Zvcihs'@; put 'ZXQgYSBvZiBjKWlmKE42ZVthLlJVTEVfVFlQRV0mJiFONmVbYS5SVUxFX1RZUEVdKGwsYS5SVUxFX1ZBTFVFKSlyZXR1cm4gY29uc29sZS53YXJuKGBEUSBJbnZhbGlkIFJlYXNvbjogJHthLlJVTEVfVFlQRX1cblZhbHVlOiAke2x9KVxuUnVsZSBWYWx1ZTogJHthLlJVTEVfVkFMVUUubGVu'@; put 'Z3RoPjAmJiIgIiE9PWEuUlVMRV9WQUxVRT9hLlJVTEVfVkFMVUU6Ik5vdCBkZWZpbmVkIn1gKSwhMTtyZXR1cm4hMH0pKGwuZ2V0RHFEZXRhaWxzKGZ8fCIiKSxkKT8oY29uc29sZS53YXJuKGBEUSBWYWxpZGF0aW9uIC0gaW52YWxpZCAoVmFsdWU6ICR7ZH0pYCksdm9pZCBoKCExKSk6dm9p'@; put 'ZCBoKCEwKTooY29uc29sZS53YXJuKGBMZW5ndGggVmFsaWRhdGlvbiAtIGludmFsaWQgKFZhbHVlOiAke2R9KWApLHZvaWQgaCghMSkpOihjb25zb2xlLndhcm4oYEhPVCBOYXRpdmUgVmFsaWRhdGlvbiAtIGludmFsaWQgKFZhbHVlOiAke2R9KWApLHZvaWQgaCghMSkpKTooY29uc29sZS53'@; put 'YXJuKGBIT1QgTmF0aXZlIFZhbGlkYXRpb24gKGF1dG9jb21wbGV0ZSkgLSBpbnZhbGlkIChWYWx1ZTogJHtkfSlgKSx2b2lkIGgoITEpKX19bGVuZ3RoQ2hlY2sobCxhLGQpe2lmKCgwLHBnLmlzU3BlY2lhbE1pc3NpbmcpKGwpfHxudWxsPT1sfHxudWxsPT1hKXJldHVybiEwO2lmKCJudW1l'@; put 'cmljIj09PWQpe2lmKDg9PT1hKXJldHVybiEwO2lmKGE8M3x8YT44fHwhTnVtYmVyLmlzSW50ZWdlcihhKSlyZXR1cm4gY29uc29sZS53YXJuKCJpbnZhbGlkIGxlbmd0aCBmcm9tIFNBUywgcnVsZSBsZW5ndGggY2FuIG9ubHkgYmUgYW4gaW50ZWdlciBiZXR3ZWVuIDMtOCIpLCExO2NvbnN0'@; put 'IGg9TnVtYmVyKGwpPT09bCYmbCUxIT0wO2lmKGE8OCYmaClyZXR1cm4gY29uc29sZS53YXJuKCJyZWR1Y2VkIGxlbmd0aCBudW1lcmljcyBjYW5ub3QgY29udGFpbiBkZWNpbWFscyBlbHNlIHByZWNpc2lvbiB3aWxsIGJlIGFmZmVjdGVkIiksITE7c3dpdGNoKGEpe2Nhc2UgMzpyZXR1cm4g'@; put 'bDw9ODE5MjtjYXNlIDQ6cmV0dXJuIGw8PTIwOTcxNTI7Y2FzZSA1OnJldHVybiBsPD01MzY4NzA5MTI7Y2FzZSA2OnJldHVybiBsPD0xMzc0Mzg5NTM0NzI7Y2FzZSA3OnJldHVybiBsPD0zNTE4NDM3MjA4ODgzMn19cmV0dXJuIGwudG9TdHJpbmcoKS5sZW5ndGg8PWF9Z2V0SGFuZHNvbnRh'@; put 'YmxlVmFsaWRhdG9yKGwpe3N3aXRjaChsKXtjYXNlImF1dG9jb21wbGV0ZSI6cmV0dXJuIGhUO2Nhc2UibnVtZXJpYyI6cmV0dXJuICRlZTtjYXNlImRhdGUiOnJldHVybiB0RjtjYXNlInRpbWUiOnJldHVybiBuRjtkZWZhdWx0OnJldHVybihhLGQpPT5kP2QoITApOm51bGx9fWdldFJ1bGVJ'@; put 'bmRleChsKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGw/bDp0aGlzLnJ1bGVzLmZpbmRJbmRleChhPT5hLmRhdGE9PT1sKX1zZXRDb2x1bW5MZXZlbFNlY3VyaXR5KGwpe2lmKCF0aGlzLnNhc3BhcmFtcz8uQ0xTX0ZMQUcpcmV0dXJuO2NvbnN0IGE9dGhpcy5ydWxlc1tsXTtpZih0aGlzLnBy'@; put 'aW1hcnlLZXlzLmluY2x1ZGVzKGEuZGF0YSkmJihhLmNsc1J1bGU9IlJFQUQiKSwiSElERSI9PT1hLmNsc1J1bGUmJnRoaXMuaGlkZGVuQ29sdW1ucy5wdXNoKGwpLCJSRUFEIj09PWEuY2xzUnVsZSYmKGEucmVhZE9ubHk9ITApLCJFRElUIj09PWEuY2xzUnVsZSl7YS5yZWFkT25seT0hMTtj'@; put 'b25zdCBkPXRoaXMuaGlkZGVuQ29sdW1ucy5pbmRleE9mKGwpO3RoaXMuaGlkZGVuQ29sdW1ucy5zcGxpY2UoZCwxKX19fWNvbnN0IGNOPXtudW1lcmljOiIiLGRlZmF1bHQ6IiJ9LFhtdD0oYyxsKT0+Yz8iYXV0b2NvbXBsZXRlIj09PWM/bCYmbC5zb3VyY2U/bC5zb3VyY2VbMF06W106Y04u'@; put 'aGFzT3duUHJvcGVydHkoYyk/Y05bY106Y04uZGVmYXVsdDpjTi5kZWZhdWx0LFhlZT1jPT5uZXcgRGF0ZShNYXRoLnJvdW5kKDg2NDAwKihjLTI1NTY5KSoxZTMpKSxKbXQ9KGMsbCxhLGQsaCxmLHYpPT4oSmVlKGwpLGwuaW5uZXJIVE1MPWAke2Y/Zi50b1N0cmluZygpOiIifSA8Y2RzLWlj'@; put 'b24gc2hhcGU9ImV4Y2xhbWF0aW9uLXRyaWFuZ2xlIiBzdGF0dXM9Indhcm5pbmciPjwvY2RzLWljb24+YCxsKSxxZWU9KGMsbCxhLGQsaCxmLHYpPT4oSmVlKGwpLGwuaW5uZXJIVE1MPWZ8fCIiLGwpLFFtdD0oYyxsLGEsZCxoLGYsdik9PihKZWUobCksbC5pbm5lckhUTUw9YCR7Zj9mLnRv'@; put 'U3RyaW5nKCk6IiJ9IDxzcGFuIGNsYXNzPSJzcGlubmVyIHNwaW5uZXItc20gdmVydGljYWwtYWxpZ24tbWlkZGxlIj48L3NwYW4+YCxsKSxKZWU9Yz0+e2MuY2xhc3NMaXN0LmNvbnRhaW5zKCJodERhcmsiKXx8Yy5jbGFzc0xpc3QuYWRkKCJodERhcmsiKX0sQjZlPWM9PntsZXQgbD0oIjAi'@; put 'K2MuZ2V0VVRDSG91cnMoKSkuc2xpY2UoLTIpKyI6IjtyZXR1cm4gbD1sKygiMCIrYy5nZXRVVENNaW51dGVzKCkpLnNsaWNlKC0yKSsiOiIsbCs9KCIwIitjLmdldFVUQ1NlY29uZHMoKSkuc2xpY2UoLTIpLGx9LFFlZT1jPT5jLmdldEZ1bGxZZWFyKCkrIi0iKygiMCIrKGMuZ2V0TW9udGgo'@; put 'KSsxKSkuc2xpY2UoLTIpKyItIisoIjAiK2MuZ2V0RGF0ZSgpKS5zbGljZSgtMiksZXRlPWM9PiEhL14tezAsMX1cZCskLy50ZXN0KGMpLGo2ZT1jPT4hIS9eXGQrXC5cZCskLy50ZXN0KGMpLHR0ZT0oYyxsKT0+bmV3IEZpbGUoW2NdLGwse2xhc3RNb2RpZmllZDoobmV3IERhdGUpLmdldFRp'@; put 'bWUoKX0pO3ZhciBUdT1iKDYzNTc4KSx6NmU9Yig5NDI0OCksVTZlPWIoODM4MzgpO2NsYXNzIFo2ZXtjb25zdHJ1Y3RvcihsKXt0aGlzLmxpY2VuY2VTdGF0ZT1sLmxpY2VuY2VTdGF0ZX1wYXJzZVNwcmVhZHNoZWV0RmlsZShsLGEsZCxoKXt2YXIgZj10aGlzO3JldHVybiBuZXcgUHJvbWlz'@; put 'ZSgodixNKT0+e2NvbnN0IEk9bC51cGxvYWRlcnx8bmV3IFllZTtpZihsLndvcmtib29rKXRoaXMucGFyc2VFeGNlbEZpbGUobCxsLndvcmtib29rLEksaCkudGhlbihHPT57dihHKX0pLmNhdGNoKEc9PntNKEcpfSk7ZWxzZXtjb25zdCByZT1sLmZpbGU7bC5lbmNvZGluZ3x8KGwuZW5jb2Rp'@; put 'bmc9IlVURi04IiksZCYmZChgTG9hZGluZyAke3JlLm5hbWV9IGludG8gdGhlIGJyb3dzZXJgKTtsZXQgdWU9cmUubmFtZS5zbGljZShyZS5uYW1lLmxhc3RJbmRleE9mKCIuIikrMSxyZS5uYW1lLmxhc3RJbmRleE9mKCIuIikrNCk7aWYoInhscyIhPT11ZS50b0xvd2VyQ2FzZSgpKXtpZigi'@; put 'Y3N2Ij09PXVlLnRvTG93ZXJDYXNlKCkpcmV0dXJuIHRoaXMucGFyc2VDc3ZGaWxlKGwsSSx1ZSkudGhlbih5ZT0+dih5ZSkpLmNhdGNoKHllPT5NKHllKSk7e2xldCB5ZT0nSW52YWxpZCBmaWxlIHR5cGUgIjxiPicrbC5maWxlLm5hbWUrJzwvYj4iLiBQbGVhc2UgdXBsb2FkIGNzdiBvciBl'@; put 'eGNlbCBmaWxlLic7cmV0dXJuIEkucXVldWUucG9wKCksTSh5ZSl9fXtsZXQgeWU9bmV3IEZpbGVSZWFkZXI7eWUub25sb2FkPWZ1bmN0aW9uKCl7dmFyIEJlPVEoZnVuY3Rpb24qKEdlKXtjb25zdCBzdD15aWVsZCBmLnhzbHhTdGFydFJlYWRpbmcoR2UsYSxsLnBhc3N3b3JkKTtpZighc3Qp'@; put 'cmV0dXJuIE0oIk5vIHdvcmtib29rIGZvdW5kLiIpO2YucGFyc2VFeGNlbEZpbGUobCxzdCxJLGgpLnRoZW4ocHQ9Pnt2KHB0KX0pLmNhdGNoKHB0PT57TShwdCl9KX0pO3JldHVybiBmdW5jdGlvbihHZSl7cmV0dXJuIEJlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkseWUucmVhZEFzQXJy'@; put 'YXlCdWZmZXIocmUpfX19KX1wYXJzZUV4Y2VsRmlsZShsLGEsZCxoKXtyZXR1cm4gbmV3IFByb21pc2UoKGYsdik9PntsZXQgTT0hMSxJPVtdO2NvbnN0IEc9WyJfX19fX0RFTEVURV9fVEhJU19fUkVDT1JEX19fX18iLC4uLmwuaGVhZGVyQXJyYXldLHJlPXRoaXMuc2VhcmNoRGF0YUluRXhj'@; put 'ZWwoYSxsKTtsZXQgdWU9W107aWYocmUuZm91bmQ/KE09ITAsdWU9cmUuZm91bmQuYXJyYXlEYXRhLHJlLmZvdW5kLmhlYWRlcnMuaW5jbHVkZXMoIl9fX19fZGVsZXRlX190aGlzX19yZWNvcmRfX19fXyIpfHwodWU9dWUubWFwKEJlPT4oQmUudW5zaGlmdCh7djoiIn0pLEJlKSkpLGgmJmgo'@; put 'YFNoZWV0OiAke3JlLmZvdW5kLnNoZWV0TmFtZX1cblJhbmdlOiAke3JlLmZvdW5kLnN0YXJ0QWRkcmVzc306JHtyZS5mb3VuZC5lbmRBZGRyZXNzfWApKTpJPXJlLm1pc3Npbmd8fFtdLEkubGVuZ3RoPjApe2xldCBCZT1JLm1hcChHZT0+YFNoZWV0OiAke0dlLnNoZWV0TmFtZX0uXG5NaXNz'@; put 'aW5nIGNvbHVtbnM6ICR7R2UubWlzc2luZ0hlYWRlcnMuam9pbigiLCIpfWApLmpvaW4oIlxuXG4iKTtyZXR1cm4gZC5xdWV1ZS5wb3AoKSx2KEJlKX1pZigwPT09dWUubGVuZ3RofHwwPT09dWVbMF0ubGVuZ3RoKXtsZXQgQmU9Ik5vIHJlbGV2YW50IGRhdGEgZm91bmQgaW4gRmlsZSAhIjty'@; put 'ZXR1cm4gZC5xdWV1ZS5wb3AoKSx2KEJlKX1pZigobC5kYXRlVGltZUhlYWRlcnMubGVuZ3RoPjB8fGwuZGF0ZUhlYWRlcnMubGVuZ3RoPjB8fGwudGltZUhlYWRlcnMubGVuZ3RoPjApJiYodWU9dGhpcy51cGRhdGVEYXRlVGltZUNvbHMoRyx1ZSxsKSksbC54bFJ1bGVzLmxlbmd0aD4wJiYo'@; put 'dWU9dGhpcy51cGRhdGVYTFJ1bGVDb2xzKEcsdWUsbCkpLCFNKXtsZXQgQmU9IiI7cmV0dXJuIEJlPTA9PT1JLmxlbmd0aD8iTm8gcmVsZXZhbnQgZGF0YSBmb3VuZCBpbiBGaWxlICEiOkkubWFwKEdlPT5gU2hlZXQ6ICR7R2Uuc2hlZXROYW1lfS5cbk1pc3NpbmcgY29sdW1uczogJHtHZS5t'@; put 'aXNzaW5nSGVhZGVycy5qb2luKCIsIil9YCkuam9pbigiXG5cbiIpLGQucXVldWUucG9wKCksdihCZSl9e2wuaGVhZGVyU2hvdz1HLHVlPXVlLm1hcChxdD0+cXQubWFwKG1uPT4ibiI9PT1tbi50fHxtbi53P21uLnY6InN0cmluZyI9PXR5cGVvZiBtbi52P21uLnYudHJpbSgpOm1uLnYpKSx1'@; put 'ZT11ZS5tYXAocXQ9PnF0Lm1hcCgobW4sd24pPT57IW1uJiYwIT09bW4mJihtbj0iIik7Y29uc3QgaG49bC5oZWFkZXJTaG93W3duXTtyZXR1cm4ibnVtZXJpYyI9PT1sLmRjVmFsaWRhdG9yPy5nZXRSdWxlKGhuKT8udHlwZSYmKDAscGcuaXNTcGVjaWFsTWlzc2luZykobW4pJiYhbW4uaW5j'@; put 'bHVkZXMoIi4iKSYmKG1uPSIuIittbiksbW59KSk7Y29uc3QgQmU9dWUuc2xpY2UoMCx0aGlzLmxpY2VuY2VTdGF0ZS52YWx1ZS5zdWJtaXRfcm93c19saW1pdCk7bGV0IHB0LEdlPVR1LnV0aWxzLmpzb25fdG9fc2hlZXQoQmUse3NraXBIZWFkZXI6ITB9KSxzdD1UdS51dGlscy5zaGVldF90'@; put 'b19jc3YoR2UpO2lmKHN0PUcuam9pbigiLCIpKyJcbiIrc3QsIldMQVRJTjEiPT09bC5lbmNvZGluZyl7bGV0IHF0PXo2ZS5kZWNvZGUoVTZlLkJ1ZmZlci5mcm9tKHN0KSwiQ1AtMTI1MiIpO3B0PW5ldyBCbG9iKFtxdF0se3R5cGU6ImFwcGxpY2F0aW9uL2NzdiJ9KX1lbHNlIHB0PW5ldyBC'@; put 'bG9iKFtzdF0se3R5cGU6ImFwcGxpY2F0aW9uL2NzdiJ9KTtsZXQgZHQ9dHRlKHB0LGwuZmlsZS5uYW1lKyIuY3N2Iik7ZC5hZGRUb1F1ZXVlKFtkdF0pfWlmKDA9PT11ZS5sZW5ndGgpcmV0dXJuIHYoYFRhYmxlIGluIHRoZSBmaWxlIGlzIGVtcHR5LiBEYXRhIGZvdW5kIG9uIHNoZWV0OiAk'@; put 'e3JlLmZvdW5kPy5zaGVldE5hbWV8fCIifWApO2lmKCFyZS5mb3VuZClyZXR1cm4gdigiTm8gcmVsZXZhbnQgZGF0YSBmb3VuZC4gJ2ZvdW5kJyBvYmplY3QgaXMgZW1wdHksIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQuIik7Y29uc3QgeWU9cmUuZm91bmQuc3RhcnRBZGRyZXNzfHwiIixF'@; put 'ZT1yZS5mb3VuZC5lbmRBZGRyZXNzfHwiIjtyZXR1cm4gZih7dXBsb2FkZXI6ZCxkYXRhOnVlLHJhbmdlU2hlZXRSZXM6e2ZvdW5kOiEhcmUuZm91bmQsc2hlZXROYW1lOnJlLmZvdW5kLnNoZWV0TmFtZSxyYW5nZVN0YXJ0QWRkcmVzczp5ZSxyYW5nZUVuZEFkZHJlc3M6RWUscmFuZ2VBZGRy'@; put 'ZXNzOmAke3llfToke0VlfWAsbWlzc2luZ0hlYWRlcnM6SX0saGVhZGVyU2hvdzpsLmhlYWRlclNob3d9KX0pfXBhcnNlQ3N2RmlsZShsLGEsZCl7cmV0dXJuIG5ldyBQcm9taXNlKChoLGYpPT57aWYodGhpcy5saWNlbmNlU3RhdGUudmFsdWUuc3VibWl0X3Jvd3NfbGltaXQhPT0xLzApcmV0'@; put 'dXJuIGEucXVldWUucG9wKCksZigiRXhjZWwgZmlsZXMgb25seS4gVG8gdW5sb2NrIENTViB1cGxvYWRzLCBwbGVhc2UgY29udGFjdCBzdXBwb3J0QGRhdGFjb250cm9sbGVyLmlvIik7aWYoIldMQVRJTjEiIT09bC5lbmNvZGluZylyZXR1cm4gaCh7dXBsb2FkZXI6YX0pO3tsZXQgdj1uZXcg'@; put 'RmlsZVJlYWRlcjt2Lm9ubG9hZD1JPT57bGV0IEc9ejZlLmRlY29kZShVNmUuQnVmZmVyLmZyb20oSS50YXJnZXQucmVzdWx0KSwiQ1AtMTI1MiIpLHJlPW5ldyBCbG9iKFtHXSx7dHlwZTpkfSksdWU9dHRlKHJlLGwuZmlsZS5uYW1lKTtyZXR1cm4gYS5xdWV1ZS5wb3AoKSxhLmFkZFRvUXVl'@; put 'dWUoW3VlXSksaCh7dXBsb2FkZXI6YX0pfSx2LnJlYWRBc0FycmF5QnVmZmVyKGwuZmlsZSl9fSl9Ynl0ZXNUb01CKGwpe3JldHVybiBwYXJzZUZsb2F0KChsLzEwNDg1NzYpLnRvRml4ZWQoMikpfXhzbHhTdGFydFJlYWRpbmcobCxhLGQpe3ZhciBoPXRoaXM7cmV0dXJuIG5ldyBQcm9taXNl'@; put 'KGZ1bmN0aW9uKCl7dmFyIGY9UShmdW5jdGlvbioodixNKXtjb25zdCBJPWgudG9Cc3RyKGwudGFyZ2V0LnJlc3VsdCk7bGV0IEcscmU9ITE7Y29uc3QgdWU9e3R5cGU6ImJpbmFyeSIsY2VsbERhdGVzOiExLGNlbGxGb3JtdWxhOiEwLGNlbGxTdHlsZXM6ITAsY2VsbE5GOiExLGNlbGxUZXh0'@; put 'OiExLHBhc3N3b3JkOmR9O3RyeXtHPXlpZWxkIGgueGxzeFJlYWQoSSx7Li4udWV9KX1jYXRjaCh5ZSl7aWYoIXllLm1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygicGFzc3dvcmQiKSlyZXR1cm4gTSgiRXJyb3IgcmVhZGluZyB0aGUgZmlsZSIpO3tyZT0hMDtsZXQgRWU9ITE7Zm9y'@; put 'KDtyZTspe2NvbnN0IEJlPXlpZWxkIGEoe2Vycm9yOkVlfSk7aWYoQmUpdHJ5e0c9eWllbGQgaC54bHN4UmVhZChJLHsuLi51ZSxwYXNzd29yZDpCZX0pLHJlPSExLEVlPSExfWNhdGNoKEdlKXtFZT0hMCxHZS5tZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoInBhc3N3b3JkIil8fChy'@; put 'ZT0hMSl9ZWxzZSByZT0hMX19fXJldHVybiBHP3YoRyk6TSgiRmFpbGVkIHRvIHBhcnNlIGEgd29ya2Jvb2siKX0pO3JldHVybiBmdW5jdGlvbih2LE0pe3JldHVybiBmLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpfXhsc3hSZWFkKGwsYSl7cmV0dXJuIG5ldyBQcm9taXNlKChkLGgpPT57'@; put 'aWYoYSYmYS5wYXNzd29yZClyZXR1cm4gY29uc29sZS5pbmZvKCJOb3QgdXNpbmcgd29ya2VyIHRvIHBhcnNlIHRoZSBYTFNYIC0gaGFzIHBhc3N3b3JkIiksZChUdS5yZWFkKGwsYSkpO2lmKHR5cGVvZiBXb3JrZXI+InUiKXJldHVybiBjb25zb2xlLmluZm8oIk5vdCB1c2luZyB3b3JrZXIg'@; put 'dG8gcGFyc2UgdGhlIFhMU1ggLSBubyBXb3JrZXIgYXZhaWxhYmxlIGluIHRoaXMgZW52aXJvbm1lbnQiKSxkKFR1LnJlYWQobCxhKSk7Y29uc29sZS5pbmZvKCJVc2luZyB3b3JrZXIgdG8gcGFyc2UgdGhlIFhMU1giKTtjb25zdCBmPW5ldyBXb3JrZXIoYi50dShuZXcgVVJMKGIucCtiLnUo'@; put 'NDExKSxiLmIpKSk7Zi5vbm1lc3NhZ2U9KHtkYXRhOnZ9KT0+eyJyZWFkaW5nX2VuZCI9PT12LmV2ZW50P2Qodi53b3JrYm9vayk6di5lcnJvcj9oKHYuZXJyb3IpOihjb25zb2xlLmluZm8oIldvcmtlciBmYWlsZWQgdG8gcGFyc2UgdGhlIFhMU1ggLSBmYWxsYmFjayB0byBub24gd29ya2Vy'@; put 'IHBhcnNpbmciKSxkKFR1LnJlYWQodixhKSkpfSxmLnBvc3RNZXNzYWdlKHtkYXRhOmwsb3B0czphfSksc2V0VGltZW91dCgoKT0+ZChUdS5yZWFkKGwsYSkpLDZlNSl9KX1zZWFyY2hEYXRhSW5FeGNlbChsLGEpe2xldCBkLGgsZix2LE09IiIsST1bXSxyZT1bIl9fX19fREVMRVRFX19USElT'@; put 'X19SRUNPUkRfX19fXyIsLi4uYS5oZWFkZXJBcnJheV0ubWFwKHllPT55ZS50b0xvd2VyQ2FzZSgpKSx1ZT1yZS5yZWR1Y2UoKHllLEVlKT0+KHllW0VlXT0tMSx5ZSkse30pO2ZvcihsZXQgeWUgb2YgbC5TaGVldE5hbWVzKXtkPXZvaWQgMCxoPXZvaWQgMCx1ZT1yZS5yZWR1Y2UoKGhuLE1u'@; put 'KT0+KGhuW01uXT0tMSxobikse30pO2xldCBFZT1bXTtNPXllO2NvbnN0IEJlPWwuU2hlZXRzW01dO2lmKE9iamVjdC5rZXlzKEJlKS5mb3JFYWNoKGhuPT57Y29uc3QgTW49QmVbaG5dLnY7aWYoTW4mJiJzdHJpbmciPT10eXBlb2YgTW4pe2NvbnN0IE1yPU1uLnRvTG93ZXJDYXNlKCk7cmUu'@; put 'aW5kZXhPZihNcik+LTEmJih1ZVtNcl09aG4sZHx8KGQ9aG4pLGg9aG4pfX0pLC0xPT09dWUuX19fX19kZWxldGVfX3RoaXNfX3JlY29yZF9fX19fJiZkZWxldGUgdWUuX19fX19kZWxldGVfX3RoaXNfX3JlY29yZF9fX19fLEVlPU9iamVjdC5rZXlzKHVlKS5maWx0ZXIoaG49Pi0xPT09dWVb'@; put 'aG5dKSxFZS5sZW5ndGg+MCl7SS5wdXNoKHtzaGVldE5hbWU6TSxtaXNzaW5nSGVhZGVyczpFZS5tYXAoaG49PmhuLnRvVXBwZXJDYXNlKCkpfSk7Y29udGludWV9Y29uc3QgR2U9T2JqZWN0LmtleXModWUpO2xldCBkdCxzdD1bXSxwdD1bXTtHZS5zb3J0KChobixNbik9Pntjb25zdCBNcj1h'@; put 'LmhlYWRlclBrcy5pbmNsdWRlcyhobik/MTowO3JldHVybihhLmhlYWRlclBrcy5pbmNsdWRlcyhNbik/MTowKS1Ncn0pLmZvckVhY2goaG49Pntjb25zdCBNbj11ZVtobl0sTXI9TW4ubWF0Y2goL1xEKy8pLGtyPU1uLm1hdGNoKC9cZCsvKSxxbj0oTXI/TXJbMF06LTEpfHwtMSxxcj1wYXJz'@; put 'ZUludCgoa3I/a3JbMF06LTEpfHwtMSkrMTtsZXQgX2k9MDtpZihkdClmb3IobGV0IFBuPXFyO1BuPD1kdDtQbisrKXtjb25zdCB0cj1CZVtgJHtxbn0ke1BufWBdO2lmKGEuaGVhZGVyUGtzLmluY2x1ZGVzKGhuKSYmKHZvaWQgMD09PXRyfHx2b2lkIDA9PT10ci52KSl7ZHQ9UG47YnJlYWt9'@; put 'c3RbX2ldfHxzdC5wdXNoKHt9KSx0ciYmKHN0W19pXVtobl09InN0cmluZyI9PXR5cGVvZiB0ci52P3RyLnYudHJpbSgpOnRyLnYpLHB0W19pXXx8cHQucHVzaChbXSkscHRbX2ldLnB1c2godHI/P3t2OiIifSksX2krK31lbHNle2xldCBQbj1xcjtmb3IoO3ZvaWQgMD09PWR0Oyl7Y29uc3Qg'@; put 'VXI9YCR7cW59JHtQbn1gLHRyPUJlW1VyXTtpZighdHJ8fHZvaWQgMD09PXRyLnYpe2R0PVBuLTE7YnJlYWt9c3RbX2ldfHxzdC5wdXNoKHt9KSxzdFtfaV1baG5dPSJuIj09PUJlW1VyXS50P0JlW1VyXS52OkJlW1VyXS53P0JlW1VyXS53OiJzdHJpbmciPT10eXBlb2YgQmVbVXJdLnY/QmVb'@; put 'VXJdLnYudHJpbSgpOkJlW1VyXS52LHB0W19pXXx8cHQucHVzaChbXSkscHRbX2ldLnB1c2godHI/P3t2OiIifSksUG4rKyxfaSsrfX1pZihkJiZoKXtjb25zdCBQbj1oLm1hdGNoKC9cRCsvKTtmPWQsdj1gJHtQbn0ke2R0fWB9fSk7Y29uc3QgbW49W107bGV0IHduO3JldHVybiBzdC5mb3JF'@; put 'YWNoKChobixNbik9PntsZXQgTXI9ITE7YS5oZWFkZXJQa3MuZm9yRWFjaChrcj0+e3ZvaWQgMD09PWhuW2tyLnRvTG93ZXJDYXNlKCldJiYoTXI9ITApfSksTXImJihtbi5wdXNoKE1uKSx3bnx8KHduPU1uKSl9KSx3bj8oc3Quc3BsaWNlKHduLDEvMCkscHQuc3BsaWNlKHduLDEvMCkpOm1u'@; put 'LnNvcnQoKGhuLE1uKT0+TW4taG4pLmZvckVhY2goaG49PntzdC5zcGxpY2UoaG4sMSkscHQuc3BsaWNlKGhuLDEpfSkscHQubGVuZ3RoP3tmb3VuZDp7ZGF0YTpzdCxhcnJheURhdGE6cHQsc2hlZXROYW1lOk0sc3RhcnRBZGRyZXNzOmYsZW5kQWRkcmVzczp2LGhlYWRlcnM6R2V9fTp7fX1y'@; put 'ZXR1cm57bWlzc2luZzpJfX11cGRhdGVEYXRlVGltZUNvbHMobCxhLGQpe2lmKGQuZGF0ZUhlYWRlcnMubGVuZ3RoPjApe2NvbnN0IGg9W107ZC5kYXRlSGVhZGVycy5mb3JFYWNoKGY9PnstMSE9PWwuaW5kZXhPZihmKSYmaC5wdXNoKGwuaW5kZXhPZihmKSl9KSxhLmZvckVhY2goZj0+e2gu'@; put 'Zm9yRWFjaCh2PT57Y29uc3QgTT1mW3ZdO2lmKGV0ZShNLnYpKXtjb25zdCBJPVhlZShOdW1iZXIoTS52KSk7TS52PUkuZ2V0RnVsbFllYXIoKSsiLSIrKCIwIisoSS5nZXRNb250aCgpKzEpKS5zbGljZSgtMikrIi0iKygiMCIrSS5nZXREYXRlKCkpLnNsaWNlKC0yKX1lbHNlIGlmKE0mJk0u'@; put 'diYmLTE9PT1NLnYudG9TdHJpbmcoKS5pbmRleE9mKCI6Iikpe2NvbnN0IEk9bmV3IERhdGUoTS52KTsiSW52YWxpZCBEYXRlIiE9PUkudG9VVENTdHJpbmcoKSYmKE0udj1RZWUoSSkpfWZbdl09TX0pfSl9aWYoZC50aW1lSGVhZGVycy5sZW5ndGg+MCl7bGV0IGg9W107ZC50aW1lSGVhZGVy'@; put 'cy5mb3JFYWNoKGY9PnstMSE9PWwuaW5kZXhPZihmKSYmaC5wdXNoKGwuaW5kZXhPZihmKSl9KSxhLmZvckVhY2goZj0+e2guZm9yRWFjaCh2PT57Y29uc3QgTT1mW3ZdO2lmKGV0ZShNLnYpfHxqNmUoTS52KXx8TS52LmluY2x1ZGVzKCJFLSIpKXtjb25zdCBJPVhlZShOdW1iZXIoTS52KSk7'@; put 'TS52PUI2ZShJKX1mW3ZdPU19KX0pfWlmKGQuZGF0ZVRpbWVIZWFkZXJzLmxlbmd0aD4wKXtsZXQgaD1bXTtkLmRhdGVUaW1lSGVhZGVycy5mb3JFYWNoKGY9PnstMSE9PWwuaW5kZXhPZihmKSYmaC5wdXNoKGwuaW5kZXhPZihmKSl9KSxhLmZvckVhY2goZj0+e2guZm9yRWFjaCh2PT57Y29u'@; put 'c3QgTT1mW3ZdO2lmKGV0ZShNLnYpfHxqNmUoTS52KSl7Y29uc3QgST1YZWUoTnVtYmVyKE0udikpO00udj1RZWUoSSkrIiAiK0I2ZShJKX1lbHNle2lmKC0xPT09TS52LmluZGV4T2YoIiAiKSYmLTEhPT1NLnYuaW5kZXhPZigiOiIpKXtsZXQgRz1NLnYuc3Vic3RyaW5nKDAsTS52LmluZGV4'@; put 'T2YoIjoiKSk7Rz1HKyIgIitNLnYuc3Vic3RyaW5nKE0udi5pbmRleE9mKCI6IikrMSksTS52PUd9Y29uc3QgST1uZXcgRGF0ZShNLnYpOyJJbnZhbGlkIERhdGUiIT09SS50b1VUQ1N0cmluZygpJiYoTS52PVFlZShJKSsiICIrKGM9PntsZXQgbD0oIjAiK2MuZ2V0SG91cnMoKSkuc2xpY2Uo'@; put 'LTIpKyI6IjtyZXR1cm4gbD1sKygiMCIrYy5nZXRNaW51dGVzKCkpLnNsaWNlKC0yKSsiOiIsbCs9KCIwIitjLmdldFNlY29uZHMoKSkuc2xpY2UoLTIpLGx9KShJKSl9Zlt2XT1NfSl9KX1yZXR1cm4gYX11cGRhdGVYTFJ1bGVDb2xzKGwsYSxkKXtpZihkLnhsUnVsZXMubGVuZ3RoPjApe2Nv'@; put 'bnN0IGg9W107ZC54bFJ1bGVzLmZvckVhY2goZj0+ey0xIT09bC5pbmRleE9mKGYuWExfQ09MVU1OKSYmKGYuaW5kZXg9bC5pbmRleE9mKGYuWExfQ09MVU1OKSxoLnB1c2goZikpfSksYS5mb3JFYWNoKGY9PntoLmZvckVhY2godj0+e2NvbnN0IE09Zlt2LmluZGV4XTsiRk9STVVMQSI9PT12'@; put 'LlhMX1JVTEUmJiJmImluIE0mJigibiI9PT1NLnQ/TS52PSI9IitNLmY6TS53PSI9IitNLmYpLGZbdl09TX0pfSl9cmV0dXJuIGF9dG9Cc3RyKGwpe2xldCBhPW5ldyBVaW50OEFycmF5KGwpLGQ9IiIsaD1hLmJ5dGVMZW5ndGg7Zm9yKGxldCBmPTA7ZjxoO2YrKylkKz1TdHJpbmcuZnJvbUNo'@; put 'YXJDb2RlKGFbZl0pO3JldHVybiBkfX1sZXQgVzZlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgpe3RoaXMuZXhjZWxQYXNzd29yZE1vZGFsU2VydmljZT1hLHRoaXMuZXZlbnRTZXJ2aWNlPWQsdGhpcy5saWNlbmNlU2VydmljZT1oLHRoaXMubGljZW5jZVN0YXRlPXRoaXMubGlj'@; put 'ZW5jZVNlcnZpY2UubGljZW5jZVN0YXRlLHRoaXMucHJvbXB0RXhjZWxQYXNzd29yZD1mPT5uZXcgUHJvbWlzZSgodixNKT0+e3RoaXMuZXhjZWxQYXNzd29yZE1vZGFsU2VydmljZS5vcGVuKGYpLnN1YnNjcmliZShJPT57dihJLnBhc3N3b3JkKX0pfSl9cGFyc2VFeGNlbEZpbGUoYSxkLGgp'@; put 'e3JldHVybiBuZXcgWjZlKHtsaWNlbmNlU3RhdGU6dGhpcy5saWNlbmNlU3RhdGV9KS5wYXJzZVNwcmVhZHNoZWV0RmlsZShhLHRoaXMucHJvbXB0RXhjZWxQYXNzd29yZCxkLGgpfXhsc3hSZWFkRmlsZShhKXtyZXR1cm4gbmV3IFByb21pc2UoKGQsaCk9Pntjb25zdCBmPW5ldyBaNmUoe2xp'@; put 'Y2VuY2VTdGF0ZTp0aGlzLmxpY2VuY2VTdGF0ZX0pO2xldCB2PW5ldyBGaWxlUmVhZGVyO3Yub25sb2FkPU09PntmLnhzbHhTdGFydFJlYWRpbmcoTSx0aGlzLnByb21wdEV4Y2VsUGFzc3dvcmQpLnRoZW4oST0+e2QoSSl9KS5jYXRjaChJPT57aChJKX0pfSx2LnJlYWRBc0FycmF5QnVmZmVy'@; put 'KGEpfSl9cGFyc2VFeGNlbFNoZWV0TmFtZXMoYSl7dmFyIGQ9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXtyZXR1cm4gbmV3IFByb21pc2UoKGgsZik9Pntjb25zdCB2PW5ldyBGaWxlUmVhZGVyO2lmKCFhKXJldHVybiBjb25zb2xlLndhcm4oImZpbGUgaXMgbWlzc2luZyIpLGgoe3NoZWV0'@; put 'TmFtZXM6W119KTt2Lm9ubG9hZD1mdW5jdGlvbigpe3ZhciBNPVEoZnVuY3Rpb24qKEkpe2lmKCFJPy50YXJnZXQpcmV0dXJuIHZvaWQgY29uc29sZS53YXJuKCJGaWxlIHJlYWRlciBldmVudC50YXJnZXQgaXMgbWlzc2luZyIpO2xldCBHLHVlLHJlPSExO2NvbnN0IHllPUkudGFyZ2V0LnJl'@; put 'c3VsdDt0cnl7Rz1UdS5yZWFkKHllLHtib29rU2hlZXRzOiEwLHR5cGU6ImJpbmFyeSJ9KX1jYXRjaChFZSl7aWYoIUVlLm1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygicGFzc3dvcmQiKSlyZXR1cm4gZigiRXJyb3IgcmVhZGluZyB0aGUgZmlsZSIpO3tyZT0hMDtsZXQgQmU9ITE7'@; put 'Zm9yKDtyZTspe2lmKHVlPXlpZWxkIGQucHJvbXB0RXhjZWxQYXNzd29yZCh7ZXJyb3I6QmV9KSwhdWUpcmV0dXJuIHJlPSExLGYoIk5vIHBhc3N3b3JkIHByb3ZpZGVkIik7dHJ5e0c9VHUucmVhZCh5ZSx7Ym9va1NoZWV0czohMCx0eXBlOiJiaW5hcnkiLHBhc3N3b3JkOnVlfSkscmU9ITEs'@; put 'QmU9ITF9Y2F0Y2goR2Upe0JlPSEwLEdlLm1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygicGFzc3dvcmQiKXx8KHJlPSExKX1pZighdWUpcmV0dXJuIGYoIkludmFsaWQgcGFzc3dvcmQsIGZhaWxlZCB0byBkZWNyeXB0IHRoZSBmaWxlIil9fX1pZighRylyZXR1cm4gZigiRXJyb3Ig'@; put 'cGFyc2luZyB0aGUgd29ya2Jvb2siKTt0cnl7cmV0dXJuIGgoe3NoZWV0TmFtZXM6Ry5TaGVldE5hbWVzLHBhc3N3b3JkOnVlfSl9Y2F0Y2goRWUpe2NvbnNvbGUuZXJyb3IoRWUpfX0pO3JldHVybiBmdW5jdGlvbihJKXtyZXR1cm4gTS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLHYub25l'@; put 'cnJvcj1mdW5jdGlvbihNKXtjb25zb2xlLmxvZyhNKX0sdi5yZWFkQXNCaW5hcnlTdHJpbmcoYSl9KX0pKCl9Ynl0ZXNUb01CKGEpe3JldHVybiBwYXJzZUZsb2F0KChhLzEwNDg1NzYpLnRvRml4ZWQoMikpfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8'@; put 'fGMpKENyKENoZSksQ3IobWMpLENyKGMxKSl9fXN0YXRpY3t0aGlzLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pfX1yZXR1cm4gY30pKCk7Y29uc3QgWTk9dm9pZCAwLHI2dD1bImVuLUdCIixbWyJhIiwicCJdLFsiYW0iLCJw'@; put 'bSJdLFk5XSxbWyJhbSIsInBtIl0sWTksWTldLFtbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSxbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLFsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5Iiwi'@; put 'U2F0dXJkYXkiXSxbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl1dLFk5LFtbIkoiLCJGIiwiTSIsIkEiLCJNIiwiSiIsIkoiLCJBIiwiUyIsIk8iLCJOIiwiRCJdLFsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwdCIsIk9jdCIs'@; put 'Ik5vdiIsIkRlYyJdLFsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXV0sWTksW1siQiIsIkEiXSxbIkJDIiwiQUQiXSxbIkJlZm9yZSBDaHJp'@; put 'c3QiLCJBbm5vIERvbWluaSJdXSwxLFs2LDBdLFsiZGQvTU0veSIsImQgTU1NIHkiLCJkIE1NTU0geSIsIkVFRUUsIGQgTU1NTSB5Il0sWyJISDptbSIsIkhIOm1tOnNzIiwiSEg6bW06c3MgeiIsIkhIOm1tOnNzIHp6enoiXSxbInsxfSwgezB9IixZOSwiezF9ICdhdCcgezB9IixZOV0sWyIu'@; put 'IiwiLCIsIjsiLCIlIiwiKyIsIi0iLCJFIiwiXHhkNyIsIlx1MjAzMCIsIlx1MjIxZSIsIk5hTiIsIjoiXSxbIiMsIyMwLiMjIyIsIiMsIyMwJSIsIlx4YTQjLCMjMC4wMCIsIiNFMCJdLCJHQlAiLCJceGEzIiwiQnJpdGlzaCBQb3VuZCIse0pQWTpbIkpQXHhhNSIsIlx4YTUiXSxVU0Q6WyJV'@; put 'UyQiLCIkIl19LCJsdHIiLGZ1bmN0aW9uIG42dChjKXtjb25zdCBhPU1hdGguZmxvb3IoTWF0aC5hYnMoYykpLGQ9Yy50b1N0cmluZygpLnJlcGxhY2UoL15bXi5dKlwuPy8sIiIpLmxlbmd0aDtyZXR1cm4gMT09PWEmJjA9PT1kPzE6NX1dLGk2dD1bImlucHV0Il0sYTZ0PVsiKiJdLHM2dD0o'@; put 'YyxsKT0+KHsid2lkdGgucHgiOmMsIm1heC1oZWlnaHQucHgiOmx9KTtmdW5jdGlvbiBvNnQoYyxsKXtpZigxJmMmJihkZSgwLCJvcHRpb24iLDcpLE9lKDEpLGhlKCkpLDImYyl7Y29uc3QgYT1MZSgpO2ZlKCksTHIoIiAiLGEubG9hZGluZ01vcmU/IkxvYWRpbmcuLi4iOiJMT0FEIE1PUkUi'@; put 'LCIgIil9fWxldCBZNmU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLmNkcj1hLHRoaXMuaW5wdXRJZD0iIix0aGlzLnBsYWNlaG9sZGVyPSIiLHRoaXMudmFsdWU9IiIsdGhpcy5kaXNhYmxlZD0hMSx0aGlzLnR5cGU9InRleHQiLHRoaXMuYXV0b2NvbXBsZXRlPSJvZmYiLHRo'@; put 'aXMudGFiaW5kZXg9IiIsdGhpcy5lbWl0T25seVNlbGVjdGVkPSExLHRoaXMuZW5hYmxlTG9hZE1vcmU9ITEsdGhpcy5vbklucHV0S2V5ZG93bj1uZXcgS3IsdGhpcy5vbklucHV0Q2hhbmdlPW5ldyBLcix0aGlzLnZhbHVlQ2hhbmdlPW5ldyBLcix0aGlzLm9uTG9hZGluZ01vcmU9bmV3IEty'@; put 'LHRoaXMuZGF0YWxpc3RPcGVuPSExLHRoaXMuYWZ0ZXJPcGVuTG9ja0RlbGF5PTE1MCx0aGlzLmFmdGVyT3BlbkxvY2s9ITEsdGhpcy5pbnB1dEZvY3VzZWQ9ITEsdGhpcy5pbnB1dENsaWVudFJlY3Q9e30sdGhpcy5wcmV2ZW50RGF0YWxpc3RDbG9zZT0hMSx0aGlzLmxvYWRpbmdNb3JlPSEx'@; put 'fW5nT25Jbml0KCl7fW5nQWZ0ZXJWaWV3SW5pdCgpe3NldFRpbWVvdXQoKCk9Pnt0aGlzLmNhbGN1bGF0ZUlucHV0UG9zaXRpb24oKX0sNTAwKX1vbklucHV0RmlyZWQoYSxkLGgpe3RoaXMub3BlbkRhdGFsaXN0KCJjbGljayIhPT1oKSx0aGlzLnVuc2VsZWN0QWxsT3B0aW9ucygpLHRoaXMu'@; put 'ZmlsdGVyT3B0aW9uc0xpc3QoKSwoIXRoaXMuZW1pdE9ubHlTZWxlY3RlZHx8ZCkmJih0aGlzLm9uSW5wdXRDaGFuZ2UuZW1pdCh7dGFyZ2V0Ont2YWx1ZTp0aGlzLnZhbHVlfX0pLHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKSl9b25JbnB1dENsaWNrKGEpe3RoaXMub3BlbkRh'@; put 'dGFsaXN0KCl9b3BlbkRhdGFsaXN0KGE9ITApe3RoaXMuZGF0YWxpc3RPcGVuPSEwLGEmJih0aGlzLmFmdGVyT3BlbkxvY2s9ITAsdGhpcy5hZnRlck9wZW5Mb2NrRGVsYXlUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmFmdGVyT3BlbkxvY2s9ITF9LHRoaXMuYWZ0ZXJPcGVuTG9ja0Rl'@; put 'bGF5KSl9Y2xvc2VEYXRhbGlzdCgpe2NsZWFyVGltZW91dCh0aGlzLmFmdGVyT3BlbkxvY2tEZWxheVRpbWVvdXQpLHRoaXMuYWZ0ZXJPcGVuTG9jaz0hMSx0aGlzLmRhdGFsaXN0T3Blbj0hMX1yZXNldERhdGFsaXN0RmlsdGVyKCl7dGhpcy5maWx0ZXJPcHRpb25zTGlzdCghMCl9b25JbnB1'@; put 'dEZvY3VzaW4oYSl7dGhpcy5pbnB1dEZvY3VzZWQ9ITB9b25JbnB1dEZvY3Vzb3V0KGEpe3RoaXMuaW5wdXRGb2N1c2VkPSExLHRoaXMuc2V0VG9DbG9zZURhdGFsaXN0KCl9b25JbnB1dE1vdXNlZW50ZXIoYSl7dGhpcy5pbnB1dENsaWVudFJlY3Qud2lkdGh8fHRoaXMuY2FsY3VsYXRlSW5w'@; put 'dXRQb3NpdGlvbigpfWZpbHRlck9wdGlvbnNMaXN0KGEpe2NvbnN0IGQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgI2RhdGFsaXN0XyR7dGhpcy5pbnB1dElkfSBvcHRpb25gKTtmb3IobGV0IGg9MDtoPGQubGVuZ3RoO2grKyl7Y29uc3QgZj1kW2hdO2lmKDA9PT10aGlzLnZhbHVlLmxl'@; put 'bmd0aCl7Zi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTtjb250aW51ZX1pZihhKXtmLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO2NvbnRpbnVlfWNvbnN0IHY9Zi5pbm5lclRleHR8fCIiLE09Zi52YWx1ZXx8IiI7KHYrTSk/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy52YWx1'@; put 'ZS50b0xvd2VyQ2FzZSgpKT9mLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOmYuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9fXNldFRvQ2xvc2VEYXRhbGlzdCgpe3RoaXMuZGF0YWxpc3RDbG9zZVRpbWVvdXQ9c2V0VGltZW91dCgoKT0+e3RoaXMucHJldmVudERhdGFsaXN0Q2xvc2V8fHRo'@; put 'aXMuYWZ0ZXJPcGVuTG9ja3x8KHRoaXMuY2xvc2VEYXRhbGlzdCgpLHRoaXMudW5zZWxlY3RBbGxPcHRpb25zKCksdGhpcy5yZXNldERhdGFsaXN0RmlsdGVyKCkpfSwxMDApfWNhbGN1bGF0ZUlucHV0UG9zaXRpb24oKXtjb25zdCBkPXRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ/'@; put 'LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2Qud2lkdGg+MCYmZC5oZWlnaHQ+MCYmKHRoaXMuaW5wdXRDbGllbnRSZWN0PXt3aWR0aDpkLndpZHRoLGJvdHRvbTpkLmJvdHRvbX0pLHRoaXMuaW5uZXJIZWlnaHQ9d2luZG93LmlubmVySGVpZ2h0fW9uRGF0YUxpc3RNb3VzZUVudGVyKGEpe3Ro'@; put 'aXMucHJldmVudERhdGFsaXN0Q2xvc2U9ITB9b25EYXRhTGlzdE1vdXNlTGVhdmUoYSl7dGhpcy5wcmV2ZW50RGF0YWxpc3RDbG9zZT0hMSx0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCl9b25EYXRhTGlzdFNjcm9sbChhKXt0aGlzLnNldFRvQ2xvc2VEYXRhbGlzdCgp'@; put 'fW9uRGF0YUxpc3RDbGljayhhKXtjb25zdCBkPWEudGFyZ2V0OyJsb2FkLW1vcmUiIT09ZC5kYXRhc2V0Py50eXBlPyJPUFRJT04iIT09ZC50YWdOYW1lfHx0aGlzLnNldE9wdGlvblZhbHVlKGQuaW5uZXJUZXh0LGQudmFsdWUpOnRoaXMubG9hZE1vcmUoKX1sb2FkTW9yZSgpe3RoaXMub25M'@; put 'b2FkaW5nTW9yZS5lbWl0KHtsb2FkTW9yZUZpbmlzaGVkOmE9Pnt0aGlzLmxvYWRpbmdNb3JlPSExLHRoaXMuZW5hYmxlTG9hZE1vcmU9YX19KSx0aGlzLmxvYWRpbmdNb3JlPSEwfXNldE9wdGlvblZhbHVlKGEsZCl7KGF8fGQpJiYoZHx8KGQ9YSkpLGQmJih0aGlzLnByZXZlbnREYXRhbGlz'@; put 'dENsb3NlPSExLHRoaXMudmFsdWU9ZCx0aGlzLm9uSW5wdXRGaXJlZChudWxsLCEwLCJjbGljayIpLHRoaXMuc2V0VG9DbG9zZURhdGFsaXN0KCkpfW9uTWFpbktleWRvd24oYSl7c3dpdGNoKGEua2V5KXtjYXNlIkFycm93VXAiOnRoaXMuZ2V0T3B0aW9uc01vdmVGb2N1cygidXAiKTticmVh'@; put 'aztjYXNlIkFycm93RG93biI6dGhpcy5nZXRPcHRpb25zTW92ZUZvY3VzKCJkb3duIik7YnJlYWs7Y2FzZSJFbnRlciI6dGhpcy5zZWxlY3RGb2N1c2VkT3B0aW9uKCl9fW9uSW5wdXRLZXl1cChhKXtyZXR1cm4hdGhpcy5kYXRhbGlzdE9wZW58fCgiRXNjYXBlIj09PWEua2V5PyhhLnN0b3BQ'@; put 'cm9wYWdhdGlvbigpLGEuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksdGhpcy5zZXRUb0Nsb3NlRGF0YWxpc3QoKSwhMSk6dm9pZCAwKX11bnNlbGVjdEFsbE9wdGlvbnMoKXtjb25zdCBhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoYCNkYXRhbGlzdF8ke3RoaXMuaW5wdXRJZH0gb3B0'@; put 'aW9uYCk7Zm9yKGxldCBkPTA7ZDxhLmxlbmd0aDtkKyspYVtkXS5jbGFzc0xpc3QucmVtb3ZlKCJmb2N1c2VkIil9c2VsZWN0Rm9jdXNlZE9wdGlvbigpe2NvbnN0IGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgI2RhdGFsaXN0XyR7dGhpcy5pbnB1dElkfSBvcHRpb24uZm9jdXNlZGApO2Em'@; put 'JnRoaXMub25EYXRhTGlzdENsaWNrKHt0YXJnZXQ6YX0pLHRoaXMuc2V0VG9DbG9zZURhdGFsaXN0KCl9Z2V0T3B0aW9uc01vdmVGb2N1cyhhKXtjb25zdCBkPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoYCNkYXRhbGlzdF8ke3RoaXMuaW5wdXRJZH0gb3B0aW9uOm5vdCguaGlkZGVuKWAp'@; put 'O2xldCBoPTA7Zm9yKGxldCBmPTA7ZjxkLmxlbmd0aDtmKyspe2NvbnN0IHY9ZFtmXTtpZih2LmNsYXNzTGlzdC5jb250YWlucygiZm9jdXNlZCIpKXtoPSJkb3duIj09PWE/ZisxOmYtMSxoPDAmJihoPWQubGVuZ3RoLTEpLGg+ZC5sZW5ndGgtMSYmKGg9MCksdi5jbGFzc0xpc3QucmVtb3Zl'@; put 'KCJmb2N1c2VkIik7YnJlYWt9fWRbaF0uY2xhc3NMaXN0LmFkZCgiZm9jdXNlZCIpfW9uUmVzaXplKGEpe3RoaXMuY2FsY3VsYXRlSW5wdXRQb3NpdGlvbigpfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpKCRlKHhvKSl9fXN0YXRpY3t0aGlzLlx1'@; put 'MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJhcHAtYXV0b2NvbXBsZXRlIl1dLHZpZXdRdWVyeTpmdW5jdGlvbihkLGgpe2lmKDEmZCYmRmEoaTZ0LDUpLDImZCl7bGV0IGY7eWkoZj1iaSgpKSYmKGguaW5wdXRFbGVtZW50PWYuZmlyc3QpfX0saG9zdEJpbmRpbmdzOmZ1bmN0aW9u'@; put 'KGQsaCl7MSZkJiZGdCgicmVzaXplIixmdW5jdGlvbih2KXtyZXR1cm4gaC5vblJlc2l6ZSh2KX0sMCx0Uyl9LGlucHV0czp7aW5wdXRJZDoiaW5wdXRJZCIscGxhY2Vob2xkZXI6InBsYWNlaG9sZGVyIix2YWx1ZToidmFsdWUiLGRpc2FibGVkOiJkaXNhYmxlZCIsdHlwZToidHlwZSIsYXV0'@; put 'b2NvbXBsZXRlOiJhdXRvY29tcGxldGUiLHRhYmluZGV4OiJ0YWJpbmRleCIsZW1pdE9ubHlTZWxlY3RlZDoiZW1pdE9ubHlTZWxlY3RlZCIsZW5hYmxlTG9hZE1vcmU6ImVuYWJsZUxvYWRNb3JlIn0sb3V0cHV0czp7b25JbnB1dEtleWRvd246Im9uSW5wdXRLZXlkb3duIixvbklucHV0Q2hh'@; put 'bmdlOiJvbklucHV0Q2hhbmdlIix2YWx1ZUNoYW5nZToidmFsdWVDaGFuZ2UiLG9uTG9hZGluZ01vcmU6Im9uTG9hZGluZ01vcmUifSxuZ0NvbnRlbnRTZWxlY3RvcnM6YTZ0LGRlY2xzOjksdmFyczoxNSxjb25zdHM6W1siaW5wdXQiLCIiXSxbIm9wdGlvbnMiLCIiXSxbMSwiYXV0b2NvbXBs'@; put 'ZXRlLXdyYXBwZXIiLDMsImtleWRvd24iXSxbInR5cGUiLCJ0ZXh0IiwiYXV0b2NvbXBsZXRlIiwib2ZmIiwiYXV0b2ZvY3VzIiwiIiwidGFiaW5kZXgiLCIwIiwxLCJpbnB1dC12YWwiLDMsIm5nTW9kZWxDaGFuZ2UiLCJjbGljayIsIm1vdXNlZW50ZXIiLCJmb2N1cyIsImZvY3Vzb3V0Iiwi'@; put 'a2V5dXAiLCJpZCIsInBsYWNlaG9sZGVyIiwibmdNb2RlbCIsImRpc2FibGVkIl0sWzEsIm92ZXJsYXkiXSxbMSwiZGF0YWxpc3QiLDMsImNsaWNrIiwibW91c2VlbnRlciIsIm1vdXNlbGVhdmUiLCJzY3JvbGwiLCJuZ1N0eWxlIiwiaWQiXSxbImRhdGEtdHlwZSIsImxvYWQtbW9yZSIsImNs'@; put 'YXNzIiwibG9hZC1tb3JlIiw0LCJuZ0lmIl0sWyJkYXRhLXR5cGUiLCJsb2FkLW1vcmUiLDEsImxvYWQtbW9yZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihkLGgpe2lmKDEmZCl7Y29uc3QgZj1PbigpO3NhKCksZGUoMCwiZGl2IiwyKSxGdCgia2V5ZG93biIsZnVuY3Rpb24oTSl7cmV0dXJuIHd0'@; put 'KGYpLEN0KGgub25NYWluS2V5ZG93bihNKSl9KSxkZSgxLCJpbnB1dCIsMywwKSxwaSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oTSl7cmV0dXJuIHd0KGYpLGdpKGgudmFsdWUsTSl8fChoLnZhbHVlPU0pLEN0KE0pfSksRnQoImNsaWNrIixmdW5jdGlvbihNKXtyZXR1cm4gd3QoZiksQ3Qo'@; put 'aC5vbklucHV0Q2xpY2soTSkpfSkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKE0pe3JldHVybiB3dChmKSxDdChoLm9uSW5wdXRGaXJlZChNKSl9KSgibW91c2VlbnRlciIsZnVuY3Rpb24oTSl7cmV0dXJuIHd0KGYpLEN0KGgub25JbnB1dE1vdXNlZW50ZXIoTSkpfSkoImZvY3VzIixmdW5j'@; put 'dGlvbihNKXtyZXR1cm4gd3QoZiksQ3QoaC5vbklucHV0Rm9jdXNpbihNKSl9KSgiZm9jdXNvdXQiLGZ1bmN0aW9uKE0pe3JldHVybiB3dChmKSxDdChoLm9uSW5wdXRGb2N1c291dChNKSl9KSgia2V5dXAiLGZ1bmN0aW9uKE0pe3JldHVybiB3dChmKSxDdChoLm9uSW5wdXRLZXl1cChNKSl9'@; put 'KSxoZSgpLFd0KDMsImRpdiIsNCksZGUoNCwiZGl2Iiw1KSxGdCgiY2xpY2siLGZ1bmN0aW9uKE0pe3JldHVybiB3dChmKSxDdChoLm9uRGF0YUxpc3RDbGljayhNKSl9KSgibW91c2VlbnRlciIsZnVuY3Rpb24oTSl7cmV0dXJuIHd0KGYpLEN0KGgub25EYXRhTGlzdE1vdXNlRW50ZXIoTSkp'@; put 'fSkoIm1vdXNlbGVhdmUiLGZ1bmN0aW9uKE0pe3JldHVybiB3dChmKSxDdChoLm9uRGF0YUxpc3RNb3VzZUxlYXZlKE0pKX0pKCJzY3JvbGwiLGZ1bmN0aW9uKE0pe3JldHVybiB3dChmKSxDdChoLm9uRGF0YUxpc3RTY3JvbGwoTSkpfSksZGUoNSwiZGl2IixudWxsLDEpLFdyKDcpLGhlKCks'@; put 'Z3QoOCxvNnQsMiwxLCJvcHRpb24iLDYpLGhlKCkoKX1pZigyJmQpe2NvbnN0IGY9ZGEoNik7ZmUoKSxNZSgiaWQiLGguaW5wdXRJZCkoInBsYWNlaG9sZGVyIixoLnBsYWNlaG9sZGVyKSxmaSgibmdNb2RlbCIsaC52YWx1ZSksTWUoImRpc2FibGVkIixoLmRpc2FibGVkKSxocigibGlzdCIs'@; put 'ImRhdGFsaXN0XyIraC5pbnB1dElkKSxmZSgyKSxUcigiaGlkZGVuIiwhaC5kYXRhbGlzdE9wZW4pLGZlKCksVHIoImhpZGRlbiIsIWguZGF0YWxpc3RPcGVuKSxNZSgibmdTdHlsZSIsY3AoMTIsczZ0LGguaW5wdXRDbGllbnRSZWN0LndpZHRoLGguaW5uZXJIZWlnaHQmJmguaW5wdXRDbGll'@; put 'bnRSZWN0LmJvdHRvbT9oLmlubmVySGVpZ2h0LWguaW5wdXRDbGllbnRSZWN0LmJvdHRvbTp2b2lkIDApKSgiaWQiLCJkYXRhbGlzdF8iK2guaW5wdXRJZCksZmUoNCksTWUoIm5nSWYiLGYuY2hpbGRyZW4ubGVuZ3RoPjAmJmguZW5hYmxlTG9hZE1vcmUpfX0sZGVwZW5kZW5jaWVzOltiYSxo'@; put 'c2UsRDIsSTIsR2wsdGwsV29dLGVuY2Fwc3VsYXRpb246Mn0pfX1yZXR1cm4gY30pKCksbDZ0PSgoKT0+e2NsYXNzIGN7dHJhbnNmb3JtKGEsZCl7aWYoInN0cmluZyI9PXR5cGVvZiBhJiZhLmxlbmd0aDwxKXJldHVybiBhO3N3aXRjaChkKXtjYXNlImRhdGUiOnJldHVybiBQcyhhLCJERE1N'@; put 'TVlZWVk6aGg6bW06c3MiKS5mb3JtYXQoIkREL01NL1lZWVkiKTtjYXNlInRpbWUiOntpZigic3RyaW5nIiE9dHlwZW9mIGEpdGhyb3cgbmV3IEVycm9yKCJFcnJvciBwYXJzaW5nIHRpbWUuIFZhbHVlIGlzIG5vdCBzdHJpbmcuIik7Y29uc3QgaD1wYXJzZUludChhLnNwbGl0KCI6IilbMF0p'@; put 'LGY9cGFyc2VJbnQoYS5zcGxpdCgiOiIpWzFdKSx2PXBhcnNlSW50KGEuc3BsaXQoIjoiKVsyXSk7cmV0dXJuYCR7aDwxMD8iMCIraDpofToke2Y8MTA/IjAiK2Y6Zn06JHt2PDEwPyIwIit2OnZ9YH19cmV0dXJuInN0cmluZyI9PXR5cGVvZiBhP2E6YS50b1N0cmluZygpfXN0YXRpY3t0aGlz'@; put 'Llx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpfX1zdGF0aWN7dGhpcy5cdTAyNzVwaXBlPWFsKHtuYW1lOiJkYXRlVGltZUZvcm1hdHRlciIsdHlwZTpjLHB1cmU6ITB9KX19cmV0dXJuIGN9KSgpO2NvbnN0IGM2dD1bImlucHV0Il0sdTZ0PVsiKiJdO2Z1bmN0aW9uIGQ2'@; put 'dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2FpKDApLE9lKDEsIiAvICIpLGRlKDIsInNwYW4iLDUpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoMikub25DaGFuZ2VMYWJlbCgic2Vjb25kIikpfSksT2UoMyksaGUoKSxzaSgpfWlmKDImYyl7Y29uc3QgYT1M'@; put 'ZSgyKTtmZSgyKSxUcigidmFsdWUtdHlwZS1zZWxlY3RlZCIsInNlY29uZCI9PT1hLmxhYmVsU2VsZWN0ZWQpLGZlKCksU3IoYS5zZWNvbmRMYWJlbCl9fWZ1bmN0aW9uIGg2dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImxhYmVsIiw0KSgxLCJzcGFuIiw1KSxGdCgiY2xpY2si'@; put 'LGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKCkub25DaGFuZ2VMYWJlbCgiZmlyc3QiKSl9KSxPZSgyKSxoZSgpLGd0KDMsZDZ0LDQsMywibmctY29udGFpbmVyIiw2KSxoZSgpfWlmKDImYyl7Y29uc3QgYT1MZSgpO1RyKCJzZWNvbmRMYWJlbEFjdGl2ZSIsYS5zZWNvbmRMYWJlbCYm'@; put 'YS5zZWNvbmRMYWJlbC5sZW5ndGg+MCksZmUoKSxUcigidmFsdWUtdHlwZS1zZWxlY3RlZCIsImZpcnN0Ij09PWEubGFiZWxTZWxlY3RlZCksZmUoKSxTcihhLmxhYmVsKSxmZSgpLE1lKCJuZ0lmIixhLnNlY29uZExhYmVsKX19ZnVuY3Rpb24gZjZ0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9u'@; put 'KCk7YWkoMCksZGUoMSwiY2xyLWRhdGUtY29udGFpbmVyIikoMiwiaW5wdXQiLDcpLFFvKDMsImRhdGVUaW1lRm9ybWF0dGVyIiksRnQoImNsckRhdGVDaGFuZ2UiLGZ1bmN0aW9uKGgpe3JldHVybiB3dChhKSxDdChMZSgpLm9uRGF0ZUlucHV0RmlyZWQoaCkpfSkoImZvY3VzIixmdW5jdGlv'@; put 'bigpe3JldHVybiB3dChhKSxDdChMZSgpLmlucHV0Rm9jdXNlZD0hMCl9KSgiZm9jdXNvdXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKCkuaW5wdXRGb2N1c2VkPSExKX0pKCJmb2N1c2luIixmdW5jdGlvbihoKXtyZXR1cm4gd3QoYSksQ3QoTGUoKS5vbkZvY3VzaW5JbnB1dCho'@; put 'KSl9KSgibW91c2VvdmVyIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgpLm9uSW5wdXRNb3VzZU92ZXIoKSl9KSgibW91c2VvdXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKCkub25JbnB1dE1vdXNlT3V0KCkpfSksaGUoKSgpLHNpKCl9aWYoMiZjKXtjb25zdCBhPUxl'@; put 'KCk7ZmUoMiksTWUoImlkIixhLmlucHV0SWQpKCJwbGFjZWhvbGRlciIsejgoMyw1LGEudGVtcCwiZGF0ZSIpKSgiY2xyRGF0ZSIsYS52YWx1ZSkoImRpc2FibGVkIixhLmRpc2FibGVkKSxocigibGlzdCIsImRhdGFsaXN0XyIrYS5pbnB1dElkKX19ZnVuY3Rpb24gcDZ0KGMsbCl7aWYoMSZj'@; put 'KXtjb25zdCBhPU9uKCk7YWkoMCksZGUoMSwiaW5wdXQiLDgpLEZ0KCJpbnB1dCIsZnVuY3Rpb24oaCl7cmV0dXJuIHd0KGEpLEN0KExlKCkub25JbnB1dEZpcmVkKGgpKX0pKCJmb2N1cyIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoKS5pbnB1dEZvY3VzZWQ9ITApfSkoImZvY3Vz'@; put 'b3V0IixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgpLmlucHV0Rm9jdXNlZD0hMSl9KSgiZm9jdXNpbiIsZnVuY3Rpb24oaCl7cmV0dXJuIHd0KGEpLEN0KExlKCkub25Gb2N1c2luSW5wdXQoaCkpfSkoIm1vdXNlb3ZlciIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoKS5v'@; put 'bklucHV0TW91c2VPdmVyKCkpfSkoIm1vdXNlb3V0IixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgpLm9uSW5wdXRNb3VzZU91dCgpKX0pLGhlKCksc2koKX1pZigyJmMpe2NvbnN0IGE9TGUoKTtmZSgpLE1lKCJ2YWx1ZSIsYS52YWx1ZSkoImlkIixhLmlucHV0SWQpKCJkaXNhYmxl'@; put 'ZCIsYS5kaXNhYmxlZCksaHIoImxpc3QiLCJkYXRhbGlzdF8iK2EuaW5wdXRJZCl9fWZ1bmN0aW9uIGc2dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2FpKDApLGRlKDEsImFwcC1hdXRvY29tcGxldGUiLDksMCksRnQoIm9uSW5wdXRDaGFuZ2UiLGZ1bmN0aW9uKGgpe3JldHVybiB3dChh'@; put 'KSxDdChMZSgpLm9uSW5wdXRGaXJlZChoKSl9KSgib25Mb2FkaW5nTW9yZSIsZnVuY3Rpb24oaCl7cmV0dXJuIHd0KGEpLEN0KExlKCkuYXV0b2NvbXBsZXRlTG9hZGluZ01vcmUoaCkpfSksV3IoMyksaGUoKSxzaSgpfWlmKDImYyl7Y29uc3QgYT1MZSgpO2ZlKCksTWUoImlucHV0SWQiLGEu'@; put 'aW5wdXRJZCkoInZhbHVlIiwobnVsbD09YS52YWx1ZT9udWxsOmEudmFsdWUudG9TdHJpbmcoKSl8fCIiKSgiZW5hYmxlTG9hZE1vcmUiLGEuZW5hYmxlTG9hZE1vcmUpKCJlbWl0T25seVNlbGVjdGVkIixhLmVtaXRPbmx5U2VsZWN0ZWQpKCJkaXNhYmxlZCIsYS5kaXNhYmxlZCl9fWxldCBH'@; put 'NmU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuaW5wdXRJZD0iIix0aGlzLnZhbHVlPSIiLHRoaXMuZGlzYWJsZWQ9ITEsdGhpcy50eXBlPSJ0ZXh0Iix0aGlzLmRpc2FibGVTb2Z0c2VsZWN0PSExLHRoaXMuZW1pdE9ubHlTZWxlY3RlZD0hMSx0aGlzLmVuYWJsZUxvYWRNb3Jl'@; put 'PSExLHRoaXMudmFsdWVDaGFuZ2U9bmV3IEtyLHRoaXMub25JbnB1dEV2ZW50PW5ldyBLcix0aGlzLmZvY3VzaW5JbnB1dD1uZXcgS3IsdGhpcy5vbkF1dG9jb21wbGV0ZUxvYWRpbmdNb3JlPW5ldyBLcix0aGlzLnNlbGVjdGVkTGFiZWxDaGFuZ2U9bmV3IEtyLHRoaXMudGVtcD0iIix0aGlz'@; put 'LmlucHV0Rm9jdXNlZD0hMSx0aGlzLmxhYmVsU2VsZWN0ZWQ9ImZpcnN0In1uZ09uQ2hhbmdlcyhhKXthLnZhbHVlJiZhLnZhbHVlLmN1cnJlbnRWYWx1ZSE9PWEudmFsdWUucHJldmlvdXNWYWx1ZSYmdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGEudmFsdWUuY3VycmVudFZhbHVlKX1uZ09uSW5p'@; put 'dCgpe31hdXRvY29tcGxldGVMb2FkaW5nTW9yZShhKXt0aGlzLm9uQXV0b2NvbXBsZXRlTG9hZGluZ01vcmUuZW1pdChhKX1vbklucHV0RmlyZWQoYSl7Y29uc3QgZD1hLnRhcmdldC52YWx1ZTt0aGlzLnRlbXA9ZCx0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoZCksdGhpcy5vbklucHV0RXZlbnQu'@; put 'ZW1pdChhKX1vbkRhdGVJbnB1dEZpcmVkKGEpe3RoaXMudGVtcD1hLHRoaXMudmFsdWVDaGFuZ2UuZW1pdChhKSx0aGlzLm9uSW5wdXRFdmVudC5lbWl0KGEpfW9uSW5wdXRNb3VzZU91dCgpe3RoaXMuZGlzYWJsZVNvZnRzZWxlY3R8fCh0aGlzLnZhbHVlPXRoaXMudGVtcCx0aGlzLnRlbXA9'@; put 'IiIpfW9uSW5wdXRNb3VzZU92ZXIoKXt0aGlzLmRpc2FibGVTb2Z0c2VsZWN0fHwodGhpcy50ZW1wPXRoaXMudmFsdWU/dGhpcy52YWx1ZToiIix0aGlzLnZhbHVlPSIiKX1vbkZvY3VzaW5JbnB1dChhKXt0aGlzLmZvY3VzaW5JbnB1dC5lbWl0KGEpfW9uQ2hhbmdlTGFiZWwoYSl7dGhpcy5s'@; put 'YWJlbFNlbGVjdGVkPWEsdGhpcy5zZWxlY3RlZExhYmVsQ2hhbmdlLmVtaXQoImZpcnN0Ij09PWE/dGhpcy5sYWJlbDp0aGlzLnNlY29uZExhYmVsKX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKX19c3RhdGlje3RoaXMuXHUwMjc1Y21wPU5yKHt0'@; put 'eXBlOmMsc2VsZWN0b3JzOltbImFwcC1zb2Z0LXNlbGVjdCJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oZCxoKXtpZigxJmQmJkZhKGM2dCw1KSwyJmQpe2xldCBmO3lpKGY9YmkoKSkmJihoLmlucHV0RWxlbWVudD1mLmZpcnN0KX19LGlucHV0czp7aW5wdXRJZDoiaW5wdXRJZCIsbGFiZWw6Imxh'@; put 'YmVsIixzZWNvbmRMYWJlbDoic2Vjb25kTGFiZWwiLHZhbHVlOiJ2YWx1ZSIsZGlzYWJsZWQ6ImRpc2FibGVkIix0eXBlOiJ0eXBlIixkaXNhYmxlU29mdHNlbGVjdDoiZGlzYWJsZVNvZnRzZWxlY3QiLGVtaXRPbmx5U2VsZWN0ZWQ6ImVtaXRPbmx5U2VsZWN0ZWQiLGVuYWJsZUxvYWRNb3Jl'@; put 'OiJlbmFibGVMb2FkTW9yZSJ9LG91dHB1dHM6e3ZhbHVlQ2hhbmdlOiJ2YWx1ZUNoYW5nZSIsb25JbnB1dEV2ZW50OiJvbklucHV0RXZlbnQiLGZvY3VzaW5JbnB1dDoiZm9jdXNpbklucHV0IixvbkF1dG9jb21wbGV0ZUxvYWRpbmdNb3JlOiJvbkF1dG9jb21wbGV0ZUxvYWRpbmdNb3JlIixz'@; put 'ZWxlY3RlZExhYmVsQ2hhbmdlOiJzZWxlY3RlZExhYmVsQ2hhbmdlIn0sZmVhdHVyZXM6W2JsXSxuZ0NvbnRlbnRTZWxlY3RvcnM6dTZ0LGRlY2xzOjUsdmFyczo1LGNvbnN0czpbWyJpbnB1dCIsIiJdLFsiY2xhc3MiLCJjbHItY29udHJvbC1sYWJlbCIsMywic2Vjb25kTGFiZWxBY3RpdmUi'@; put 'LDQsIm5nSWYiXSxbMywibmdTd2l0Y2giXSxbNCwibmdTd2l0Y2hDYXNlIl0sWzEsImNsci1jb250cm9sLWxhYmVsIl0sWzMsImNsaWNrIl0sWzQsIm5nSWYiXSxbInR5cGUiLCJkYXRlIiwiY2xyRGF0ZSIsIiIsMywiY2xyRGF0ZUNoYW5nZSIsImZvY3VzIiwiZm9jdXNvdXQiLCJmb2N1c2lu'@; put 'IiwibW91c2VvdmVyIiwibW91c2VvdXQiLCJpZCIsInBsYWNlaG9sZGVyIiwiY2xyRGF0ZSIsImRpc2FibGVkIl0sWyJ0eXBlIiwidGltZSIsInN0ZXAiLCIxIiwxLCJpbnB1dC12YWwiLDMsImlucHV0IiwiZm9jdXMiLCJmb2N1c291dCIsImZvY3VzaW4iLCJtb3VzZW92ZXIiLCJtb3VzZW91'@; put 'dCIsInZhbHVlIiwiaWQiLCJkaXNhYmxlZCJdLFsidHlwZSIsInRleHQiLCJhdXRvY29tcGxldGUiLCJvZmYiLCJhdXRvZm9jdXMiLCIiLDEsImlucHV0LXZhbCIsMywib25JbnB1dENoYW5nZSIsIm9uTG9hZGluZ01vcmUiLCJpbnB1dElkIiwidmFsdWUiLCJlbmFibGVMb2FkTW9yZSIsImVt'@; put 'aXRPbmx5U2VsZWN0ZWQiLCJkaXNhYmxlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihkLGgpezEmZCYmKHNhKCksZ3QoMCxoNnQsNCw2LCJsYWJlbCIsMSksYWkoMSwyKSxndCgyLGY2dCw0LDgsIm5nLWNvbnRhaW5lciIsMykoMyxwNnQsMiw0LCJuZy1jb250YWluZXIiLDMpKDQsZzZ0LDQsNSwi'@; put 'bmctY29udGFpbmVyIiwzKSxzaSgpKSwyJmQmJihNZSgibmdJZiIsaC5sYWJlbCksZmUoKSxNZSgibmdTd2l0Y2giLGgudHlwZSksZmUoKSxNZSgibmdTd2l0Y2hDYXNlIiwiZGF0ZSIpLGZlKCksTWUoIm5nU3dpdGNoQ2FzZSIsInRpbWUiKSxmZSgpLE1lKCJuZ1N3aXRjaENhc2UiLCJ0ZXh0'@; put 'IikpfSxkZXBlbmRlbmNpZXM6W2JhLHgyLGRwLGNvLHF4LG5PLGRHLFk2ZSxsNnRdLGVuY2Fwc3VsYXRpb246Mn0pfX1yZXR1cm4gY30pKCksRXc9KCgpPT57Y2xhc3MgY3tzZXQgbmdWYXIoYSl7dGhpcy5jb250ZXh0LiRpbXBsaWNpdD10aGlzLmNvbnRleHQubmdWYXI9YSx0aGlzLmhhc1Zp'@; put 'ZXd8fCh0aGlzLnZjUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmLHRoaXMuY29udGV4dCksdGhpcy5oYXNWaWV3PSEwKX1jb25zdHJ1Y3RvcihhLGQpe3RoaXMudGVtcGxhdGVSZWY9YSx0aGlzLnZjUmVmPWQsdGhpcy5jb250ZXh0PXskaW1wbGljaXQ6bnVsbCxuZ1Zh'@; put 'cjpudWxsfSx0aGlzLmhhc1ZpZXc9ITF9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUod2wpLCRlKFRzKSl9fXN0YXRpY3t0aGlzLlx1MDI3NWRpcj1Fcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJuZ1ZhciIsIiJdXSxpbnB1dHM6e25nVmFy'@; put 'OiJuZ1ZhciJ9fSl9fXJldHVybiBjfSkoKSxtNnQ9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLmhlbHBlclNlcnZpY2U9YX10cmFuc2Zvcm0oYSxkPSJkYXlzIixoPSExKXtpZih2b2lkIDA9PT1hJiYoYT0iIiksInN0cmluZyIhPXR5cGVvZiBhJiYoYT1hLnRvU3RyaW5nKCkp'@; put 'LDA9PT1hLmxlbmd0aCl7aWYoImRheXMiPT09ZClyZXR1cm4gbnVsbDtpZigic2Vjb25kcyI9PT1kKXJldHVybiBoPyIxMTowMDowMCI6bnVsbH1sZXQgZj10aGlzLmhlbHBlclNlcnZpY2UuY29udmVydFNhc0RheXNUb0pzRGF0ZShhLGQpO2lmKDQ9PT1hLnNwbGl0KCI6IikubGVuZ3RoKXtj'@; put 'b25zdCBNPWEuc3BsaXQoIjoiKTtmPW5ldyBEYXRlKE1bMF0pLGYuc2V0SG91cnMocGFyc2VJbnQoTVsxXSkpLGYuc2V0TWludXRlcyhwYXJzZUludChNWzJdKSksZi5zZXRTZWNvbmRzKHBhcnNlSW50KE1bM10pKX1lbHNlIGlzTmFOKE51bWJlcihhKSkmJihmPW5ldyBEYXRlKGEpKTtsZXQg'@; put 'dj1gJHt0aGlzLmhlbHBlclNlcnZpY2UuYWRkTGVhZGluZ1plcm8oZi5nZXRIb3VycygpLnRvU3RyaW5nKCkpfToke3RoaXMuaGVscGVyU2VydmljZS5hZGRMZWFkaW5nWmVybyhmLmdldE1pbnV0ZXMoKS50b1N0cmluZygpKX06JHt0aGlzLmhlbHBlclNlcnZpY2UuYWRkTGVhZGluZ1plcm8o'@; put 'Zi5nZXRTZWNvbmRzKCkudG9TdHJpbmcoKSl9YDtyZXR1cm4gaD92OmZ9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUoYnUsMTYpKX19c3RhdGlje3RoaXMuXHUwMjc1cGlwZT1hbCh7bmFtZToic2FzVG9Kc0RhdGUiLHR5cGU6YyxwdXJlOiEw'@; put 'fSl9fXJldHVybiBjfSkoKSx2NnQ9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhKXt0aGlzLmhlbHBlclNlcnZpY2U9YX10cmFuc2Zvcm0oYSl7aWYobnVsbD09YXx8IiI9PT1hKXJldHVybiIiO2xldCBkLGgsZjtpZigic3RyaW5nIj09dHlwZW9mIGEmJjM9PT1hLnNwbGl0KCI6IikubGVu'@; put 'Z3RoKXtjb25zdCB2PWEuc3BsaXQoIjoiKTtkPXZbMF0saD12WzFdLGY9dlsyXX1lbHNlIm51bWJlciIhPXR5cGVvZiBhJiYoYT1wYXJzZUludChhKSksZD1NYXRoLmZsb29yKGEvMzYwMCksaD1NYXRoLmZsb29yKGElMzYwMC82MCksZj1NYXRoLmZsb29yKGElMzYwMCU2MCk7cmV0dXJuYCR7'@; put 'dGhpcy5oZWxwZXJTZXJ2aWNlLmFkZExlYWRpbmdaZXJvKGQpfToke3RoaXMuaGVscGVyU2VydmljZS5hZGRMZWFkaW5nWmVybyhoKX06JHt0aGlzLmhlbHBlclNlcnZpY2UuYWRkTGVhZGluZ1plcm8oZil9YH1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhk'@; put 'fHxjKSgkZShidSwxNikpfX1zdGF0aWN7dGhpcy5cdTAyNzVwaXBlPWFsKHtuYW1lOiJzZWNvbmRzUGFyc2VyIix0eXBlOmMscHVyZTohMH0pfX1yZXR1cm4gY30pKCk7Y29uc3QgeTZ0PShjLGwsYSk9Pih7cXVlcnk6YyxxdWVyeUluZGV4OmwsY2xhdXNlSW5kZXg6YX0pLGI2dD0oYyxsLGEs'@; put 'ZCk9Pih7cXVlcnk6YyxxdWVyeUluZGV4OmwsY2xhdXNlSW5kZXg6YSxpc0RhdGVUaW1lOmR9KSxfNnQ9KGMsbCxhLGQpPT4oe3JhbmdlOiJzdGFydCIscXVlcnk6YyxxdWVyeVZhbHVlSW5kZXg6MCxxdWVyeUluZGV4OmwsY2xhdXNlSW5kZXg6YSxpc0RhdGVUaW1lOmR9KSx3NnQ9KGMsbCxh'@; put 'LGQpPT4oe3JhbmdlOiJlbmQiLHF1ZXJ5OmMscXVlcnlWYWx1ZUluZGV4OjEscXVlcnlJbmRleDpsLGNsYXVzZUluZGV4OmEsaXNEYXRlVGltZTpkfSk7ZnVuY3Rpb24gQzZ0KGMsbCl7aWYoMSZjJiYoZGUoMCwib3B0aW9uIiwyMiksT2UoMSksaGUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxp'@; put 'Y2l0O01lKCJzZWxlY3RlZCIsTGUoKS5sb2dpY09wZXJhdG9yc1swXSksZmUoKSxMcigiICIsYSwiICIpfX1mdW5jdGlvbiBTNnQoYyxsKXsxJmMmJihkZSgwLCJkaXYiLDIzKSxPZSgxLCJcbiAgICAgICAgIiksV3QoMiwicHJvZ3Jlc3MiKSxPZSgzLCJcbiAgICAgICIpLGhlKCkpfWZ1bmN0'@; put 'aW9uIE02dChjLGwpezEmYyYmV3QoMCwiZGl2Iil9ZnVuY3Rpb24geDZ0KGMsbCl7aWYoMSZjJiYoZGUoMCwib3B0aW9uIiwyMiksT2UoMSksaGUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O01lKCJzZWxlY3RlZCIsTGUoMikubG9naWNPcGVyYXRvcnNbMF0pLGZlKCksTHIoIiAiLGEs'@; put 'IiAiKX19ZnVuY3Rpb24gRTZ0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiYnV0dG9uIiwzMiksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgyKS5hZGRHcm91cENsYXVzZSgpKX0pLFd0KDEsImNsci1pY29uIiwzMyksZGUoMiwic3BhbiIpLE9lKDMs'@; put 'Ikdyb3VwIiksaGUoKSgpfX1mdW5jdGlvbiBUNnQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJjbHItaWNvbiIsMzQpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKCkuaW5kZXg7cmV0dXJuIEN0KExlKCkucmVtb3ZlR3JvdXBDbGF1c2UoaCkpfSksaGUo'@; put 'KX19ZnVuY3Rpb24gQTZ0KGMsbCl7aWYoMSZjJiYoZGUoMCwib3B0aW9uIiksT2UoMSksaGUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O2ZlKCksTHIoIiAiLGEuTkFNRSwiICIpfX1mdW5jdGlvbiBrNnQoYyxsKXtpZigxJmMmJihkZSgwLCJvcHRpb24iKSxPZSgxKSxoZSgpKSwyJmMp'@; put 'e2NvbnN0IGE9bC4kaW1wbGljaXQ7ZmUoKSxTcihhKX19ZnVuY3Rpb24gRDZ0KGMsbCl7MSZjJiZMbCgwKX1mdW5jdGlvbiBJNnQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJkaXYiLDUxKSgxLCJidXR0b24iLDUyKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7d3QoYSk7Y29uc3Qg'@; put 'aD1MZSgyKS5pbmRleCxmPUxlKCkuaW5kZXgsdj1MZSgpO3JldHVybiB2LmN1cnJlbnRRdWVyeUluZGV4PWgsQ3Qodi5jdXJyZW50Q2xhdXNlSW5kZXg9Zil9KSxPZSgyLCIgQ2hvb3NlIHZhbHVlcyAiKSxoZSgpLGd0KDMsRDZ0LDEsMCwibmctY29udGFpbmVyIiw1MyksaGUoKX1pZigyJmMp'@; put 'e2NvbnN0IGE9TGUoMiksZD1hLiRpbXBsaWNpdCxoPWEuaW5kZXgsZj1MZSgpLmluZGV4O0xlKCk7Y29uc3Qgdj1kYSgzNyk7ZmUoMyksTWUoIm5nVGVtcGxhdGVPdXRsZXQiLHYpKCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCIsYk0oMix5NnQsZCxoLGYpKX19ZnVuY3Rpb24gUjZ0KGMsbCl7'@; put 'MSZjJiZMbCgwKX1mdW5jdGlvbiBMNnQoYyxsKXtpZigxJmMmJihkZSgwLCJkaXYiLDU0KSxndCgxLFI2dCwxLDAsIm5nLWNvbnRhaW5lciIsNTMpLGhlKCkpLDImYyl7Y29uc3QgYT1MZSgpLm5nVmFyLGQ9TGUoKSxoPWQuJGltcGxpY2l0LGY9ZC5pbmRleCx2PUxlKCkuaW5kZXgsTT1MZSgp'@; put 'LEk9ZGEoMzEpLEc9ZGEoMzMpO2ZlKCksTWUoIm5nVGVtcGxhdGVPdXRsZXQiLGEmJk0udXNlUGlja2Vycz9JOkcpKCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCIsdFIoMixiNnQsaCxmLHYsYSkpfX1mdW5jdGlvbiBPNnQoYyxsKXsxJmMmJkxsKDApfWZ1bmN0aW9uIFA2dChjLGwpezEmYyYm'@; put 'TGwoMCl9ZnVuY3Rpb24gRjZ0KGMsbCl7aWYoMSZjJiYoZGUoMCwiZGl2Iiw1NSkoMSwiZGl2Iiw1NiksZ3QoMixPNnQsMSwwLCJuZy1jb250YWluZXIiLDUzKSxoZSgpLGRlKDMsImRpdiIsNTcpLGd0KDQsUDZ0LDEsMCwibmctY29udGFpbmVyIiw1MyksaGUoKSgpKSwyJmMpe2NvbnN0IGE9'@; put 'TGUoKS5uZ1ZhcixkPUxlKCksaD1kLiRpbXBsaWNpdCxmPWQuaW5kZXgsdj1MZSgpLmluZGV4LE09TGUoKSxJPWRhKDMxKSxHPWRhKDM1KTtmZSgyKSxNZSgibmdUZW1wbGF0ZU91dGxldCIsYSYmTS51c2VQaWNrZXJzP0k6RykoIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0Iix0Uig0LF82dCxo'@; put 'LGYsdixhKSksZmUoMiksTWUoIm5nVGVtcGxhdGVPdXRsZXQiLGEmJk0udXNlUGlja2Vycz9JOkcpKCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCIsdFIoOSx3NnQsaCxmLHYsYSkpfX1mdW5jdGlvbiBINnQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJkaXYiLDU4KSgxLCJsYWJl'@; put 'bCIsNyksT2UoMiwiVmFsdWUiKSxoZSgpLGRlKDMsImlucHV0Iiw1OSkscGkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe3d0KGEpO2NvbnN0IGY9TGUoMikuJGltcGxpY2l0O3JldHVybiBnaShmLnZhbHVlLGgpfHwoZi52YWx1ZT1oKSxDdChoKX0pLEZ0KCJuZ01vZGVsQ2hhbmdlIixm'@; put 'dW5jdGlvbihoKXt3dChhKTtjb25zdCBmPUxlKDIpLmluZGV4LHY9TGUoKS5pbmRleDtyZXR1cm4gQ3QoTGUoKS5zZXRWYXJpYWJsZVZhbHVlcyhoLGYsdikpfSksaGUoKSgpfWlmKDImYyl7Y29uc3QgYT1MZSgyKS4kaW1wbGljaXQ7ZmUoMyksZmkoIm5nTW9kZWwiLGEudmFsdWUpfX1mdW5j'@; put 'dGlvbiBONnQoYyxsKXtpZigxJmMmJihkZSgwLCJkaXYiLDQ2KSxndCgxLEk2dCw0LDYsImRpdiIsNDcpKDIsTDZ0LDIsNywiZGl2Iiw0OCkoMyxGNnQsNSwxNCwiZGl2Iiw0OSkoNCxINnQsNCwxLCJkaXYiLDUwKSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoKS4kaW1wbGljaXQ7ZmUoKSxNZSgi'@; put 'bmdJZiIsIklOIj09PWEub3BlcmF0b3J8fCJOT1QgSU4iPT09YS5vcGVyYXRvciksZmUoKSxNZSgibmdJZiIsIkJFVFdFRU4iIT09YS5vcGVyYXRvciYmIklOIiE9PWEub3BlcmF0b3ImJiJOT1QgSU4iIT09YS5vcGVyYXRvciYmIkxJS0UiIT09YS5vcGVyYXRvciYmIkNPTlRBSU5TIiE9PWEu'@; put 'b3BlcmF0b3ImJiJCRUdJTlNfV0lUSCIhPT1hLm9wZXJhdG9yKSxmZSgpLE1lKCJuZ0lmIiwiQkVUV0VFTiI9PT1hLm9wZXJhdG9yKSxmZSgpLE1lKCJuZ0lmIiwiTElLRSI9PT1hLm9wZXJhdG9yfHwiQkVHSU5TX1dJVEgiPT09YS5vcGVyYXRvcnx8IkNPTlRBSU5TIj09PWEub3BlcmF0b3Ip'@; put 'fX1mdW5jdGlvbiBWNnQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJkaXYiLDEwKSgxLCJkaXYiLDM1KSgyLCJkaXYiLDM2KSgzLCJhcHAtc29mdC1zZWxlY3QiLDM3KSxwaSgidmFsdWVDaGFuZ2UiLGZ1bmN0aW9uKGgpe2NvbnN0IGY9d3QoYSkuJGltcGxpY2l0O3JldHVybiBn'@; put 'aShmLnZhcmlhYmxlLGgpfHwoZi52YXJpYWJsZT1oKSxDdChoKX0pLEZ0KCJvbklucHV0RXZlbnQiLGZ1bmN0aW9uKGgpe2NvbnN0IGY9d3QoYSksdj1mLiRpbXBsaWNpdCxNPWYuaW5kZXgsST1MZSgpLmluZGV4O3JldHVybiBDdChMZSgpLnZhcmlhYmxlSW5wdXRDaGFuZ2Uodi52YXJpYWJs'@; put 'ZSxNLEksaCkpfSksZ3QoNCxBNnQsMiwxLCJvcHRpb24iLDM4KSxoZSgpKCkoKSxkZSg1LCJkaXYiLDM5KSg2LCJjbHItc2VsZWN0LWNvbnRhaW5lciIpKDcsImxhYmVsIiksT2UoOCwiT3BlcmF0b3IiKSxoZSgpLGRlKDksInNlbGVjdCIsNDApLHBpKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlv'@; put 'bihoKXtjb25zdCBmPXd0KGEpLiRpbXBsaWNpdDtyZXR1cm4gZ2koZi5vcGVyYXRvcixoKXx8KGYub3BlcmF0b3I9aCksQ3QoaCl9KSxGdCgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oKXtjb25zdCBoPXd0KGEpLGY9aC4kaW1wbGljaXQsdj1oLmluZGV4LE09TGUoKS5pbmRleDtyZXR1cm4g'@; put 'Q3QoTGUoKS5zZXRWYXJpYWJsZU9wZXJhdG9yKHYsZi5vcGVyYXRvcixNKSl9KSxndCgxMCxrNnQsMiwxLCJvcHRpb24iLDM4KSxoZSgpKCkoKSxndCgxMSxONnQsNSw0LCJkaXYiLDQxKSxkZSgxMiwiZGl2Iiw0MikoMTMsImJ1dHRvbiIsNDMpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtjb25z'@; put 'dCBoPXd0KGEpLmluZGV4LGY9TGUoKS5pbmRleDtyZXR1cm4gQ3QoTGUoKS5yZW1vdmVDbGF1c2UoaCxmKSl9KSxXdCgxNCwiY2xyLWljb24iLDQ0KSgxNSwic3BhbiIpLGhlKCksZGUoMTYsImJ1dHRvbiIsNDUpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKCkuaW5k'@; put 'ZXg7cmV0dXJuIEN0KExlKCkuYWRkQ2xhdXNlKGgpKX0pLFd0KDE3LCJjbHItaWNvbiIsMzMpKDE4LCJzcGFuIiksaGUoKSgpKCl9aWYoMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0LGQ9bC5pbmRleCxoPUxlKCkuaW5kZXgsZj1MZSgpO1RyKCJpbnZhbGlkLWNsYXVzZSIsYS5pbnZhbGlkQ2xh'@; put 'dXNlKSxmZSgzKSxNZSgiaWQiLCJzZWxlY3RfdmFsc192YXJfaWQiK2QrIl8iK2gpKCJpbnB1dElkIiwidmFsc192YXJfaWQiK2QrIl8iK2gpKCJlbWl0T25seVNlbGVjdGVkIiwhMCksZmkoInZhbHVlIixhLnZhcmlhYmxlKSxmZSgpLE1lKCJuZ0Zvck9mIixmLmNvbHMpLGZlKDUpLGZpKCJu'@; put 'Z01vZGVsIixhLm9wZXJhdG9yKSxmZSgpLE1lKCJuZ0Zvck9mIixhLm9wZXJhdG9ycyksZmUoKSxNZSgibmdWYXIiLCJEQVRFIj09PWEuZGR0eXBlfHwiREFURVRJTUUiPT09YS5kZHR5cGV8fCJUSU1FIj09PWEuZGR0eXBlKSxmZSgyKSxNZSgiZGlzYWJsZWQiLDE9PT1mLmNsYXVzZXMucXVl'@; put 'cnlPYmpbaF0uZWxlbWVudHMubGVuZ3RoKX19ZnVuY3Rpb24gQjZ0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiZGl2IiwyNCkoMSwiZGl2IiwxMCkoMiwiZGl2IiwyNSkoMywiZGl2IiwyNikoNCwiY2xyLXNlbGVjdC1jb250YWluZXIiKSg1LCJsYWJlbCIpLE9lKDYsIkxvZ2lj'@; put 'IiksaGUoKSxkZSg3LCJzZWxlY3QiLDI3KSxwaSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oaCl7Y29uc3QgZj13dChhKS4kaW1wbGljaXQ7cmV0dXJuIGdpKGYuY2xhdXNlTG9naWMsaCl8fChmLmNsYXVzZUxvZ2ljPWgpLEN0KGgpfSksRnQoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKCl7'@; put 'cmV0dXJuIHd0KGEpLEN0KExlKCkuc2V0TG9naWMoKSl9KSxndCg4LHg2dCwyLDIsIm9wdGlvbiIsMTMpLGhlKCkoKSgpLFd0KDksImJyIiksZ3QoMTAsRTZ0LDQsMCwiYnV0dG9uIiwyOCksaGUoKSxkZSgxMSwiZGl2IiwyOSksZ3QoMTIsVDZ0LDEsMCwiY2xyLWljb24iLDMwKSgxMyxWNnQs'@; put 'MTksMTEsImRpdiIsMzEpLGhlKCkoKSxXdCgxNCwiYnIiKSxoZSgpfWlmKDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdCxkPUxlKCk7ZmUoKSxUcigiaW52YWxpZC1jbGF1c2UiLGEuaW52YWxpZENsYXVzZSksZmUoNiksZmkoIm5nTW9kZWwiLGEuY2xhdXNlTG9naWMpLE1lKCJkaXNhYmxlZCIs'@; put 'YS5lbGVtZW50cy5sZW5ndGg8MiksZmUoKSxNZSgibmdGb3JPZiIsZC5sb2dpY09wZXJhdG9ycyksZmUoMiksTWUoIm5nSWYiLGQuaW5uZXJXaWR0aD43NjgpLGZlKDIpLE1lKCJuZ0lmIixkLmNsYXVzZXMucXVlcnlPYmoubGVuZ3RoPjEpLGZlKCksTWUoIm5nRm9yT2YiLGEuZWxlbWVudHMp'@; put 'fX1mdW5jdGlvbiBqNnQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTthaSgwKSxkZSgxLCJhcHAtc29mdC1zZWxlY3QiLDYyKSxRbygyLCJzYXNUb0pzRGF0ZSIpLFFvKDMsInNhc1RvSnNEYXRlIiksRnQoInZhbHVlQ2hhbmdlIixmdW5jdGlvbihoKXt3dChhKTtjb25zdCBmPUxlKCksdj1m'@; put 'LnF1ZXJ5LE09Zi5xdWVyeVZhbHVlSW5kZXgsST1mLnF1ZXJ5SW5kZXgsRz1mLmNsYXVzZUluZGV4O3JldHVybiBDdChMZSgpLmRhdGVDaGFuZ2UoaCx2LEksRyxNKSl9KSxoZSgpLHNpKCl9aWYoMiZjKXtjb25zdCBhPUxlKCksZD1hLnF1ZXJ5LGg9YS5xdWVyeVZhbHVlSW5kZXgsZj1hLnF1'@; put 'ZXJ5SW5kZXgsdj1hLmNsYXVzZUluZGV4O2ZlKCksTWUoImRpc2FibGVTb2Z0c2VsZWN0IiwhMCkoImlucHV0SWQiLCJ2YWxzX2RhdGUiK2YrIl8iK3YpKCJ2YWx1ZSIsdm9pZCAwIT09aD9BYygyLDMsZC52YWx1ZVtoXSk6QWMoMyw1LGQudmFsdWUpKX19ZnVuY3Rpb24gejZ0KGMsbCl7aWYo'@; put 'MSZjKXtjb25zdCBhPU9uKCk7YWkoMCksZGUoMSwiYXBwLXNvZnQtc2VsZWN0Iiw2MyksUW8oMiwic2FzVG9Kc0RhdGUiKSxRbygzLCJzYXNUb0pzRGF0ZSIpLEZ0KCJ2YWx1ZUNoYW5nZSIsZnVuY3Rpb24oaCl7d3QoYSk7Y29uc3QgZj1MZSgpLHY9Zi5xdWVyeUluZGV4LE09Zi5jbGF1c2VJ'@; put 'bmRleDtyZXR1cm4gQ3QoTGUoKS5nZXRRdWVyeURhdGVUaW1lKE0sdikuZGF0ZT1oKX0pKCJvbklucHV0RXZlbnQiLGZ1bmN0aW9uKCl7d3QoYSk7Y29uc3QgaD1MZSgpLGY9aC5xdWVyeSx2PWgucXVlcnlWYWx1ZUluZGV4LE09aC5xdWVyeUluZGV4LEk9aC5jbGF1c2VJbmRleDtyZXR1cm4g'@; put 'Q3QoTGUoKS5kYXRlVGltZUNoYW5nZShmLE0sSSx2KSl9KSxoZSgpLGRlKDQsImFwcC1zb2Z0LXNlbGVjdCIsNjQpLFFvKDUsInNhc1RvSnNEYXRlIiksUW8oNiwic2FzVG9Kc0RhdGUiKSxGdCgidmFsdWVDaGFuZ2UiLGZ1bmN0aW9uKGgpe3d0KGEpO2NvbnN0IGY9TGUoKSx2PWYucXVlcnlJ'@; put 'bmRleCxNPWYuY2xhdXNlSW5kZXg7cmV0dXJuIEN0KExlKCkuZ2V0UXVlcnlEYXRlVGltZShNLHYpLnRpbWU9aCl9KSgib25JbnB1dEV2ZW50IixmdW5jdGlvbigpe3d0KGEpO2NvbnN0IGg9TGUoKSxmPWgucXVlcnksdj1oLnF1ZXJ5VmFsdWVJbmRleCxNPWgucXVlcnlJbmRleCxJPWguY2xh'@; put 'dXNlSW5kZXg7cmV0dXJuIEN0KExlKCkuZGF0ZVRpbWVDaGFuZ2UoZixNLEksdikpfSksaGUoKSxzaSgpfWlmKDImYyl7Y29uc3QgYT1MZSgpLGQ9YS5xdWVyeSxoPWEucXVlcnlWYWx1ZUluZGV4LGY9YS5xdWVyeUluZGV4LHY9YS5jbGF1c2VJbmRleDtmZSgpLE1lKCJkaXNhYmxlU29mdHNl'@; put 'bGVjdCIsITApKCJpbnB1dElkIiwidmFsc19kYXRlIitmKyJfIit2KSgidmFsdWUiLHZvaWQgMCE9PWg/ejgoMiw2LGQudmFsdWVbaF0sInNlY29uZHMiKTp6OCgzLDksZC52YWx1ZSwic2Vjb25kcyIpKSxmZSgzKSxNZSgiZGlzYWJsZVNvZnRzZWxlY3QiLCEwKSgiaW5wdXRJZCIsInZhbHNf'@; put 'dGltZSIrZisiXyIrdikoInZhbHVlIix2b2lkIDAhPT1oP0NVKDUsMTIsZC52YWx1ZVtoXSwic2Vjb25kcyIsITApOkNVKDYsMTYsZC52YWx1ZSwic2Vjb25kcyIsITApKX19ZnVuY3Rpb24gVTZ0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7YWkoMCksZGUoMSwiYXBwLXNvZnQtc2VsZWN0'@; put 'Iiw2NSksUW8oMiwic2Vjb25kc1BhcnNlciIpLFFvKDMsInNlY29uZHNQYXJzZXIiKSxGdCgib25JbnB1dEV2ZW50IixmdW5jdGlvbihoKXt3dChhKTtjb25zdCBmPUxlKCksdj1mLnF1ZXJ5LE09Zi5xdWVyeVZhbHVlSW5kZXgsST1mLnF1ZXJ5SW5kZXgsRz1mLmNsYXVzZUluZGV4O3JldHVy'@; put 'biBDdChMZSgpLnRpbWVDaGFuZ2UoaCx2LEksRyxNKSl9KSxoZSgpLHNpKCl9aWYoMiZjKXtjb25zdCBhPUxlKCksZD1hLnF1ZXJ5LGg9YS5xdWVyeVZhbHVlSW5kZXgsZj1hLnF1ZXJ5SW5kZXgsdj1hLmNsYXVzZUluZGV4O2ZlKCksTWUoImRpc2FibGVTb2Z0c2VsZWN0IiwhMCkoImlucHV0'@; put 'SWQiLCJ2YWxzXyIrZisiXyIrdikoInZhbHVlIix2b2lkIDAhPT1oP0FjKDIsMyxkLnZhbHVlW2hdKTpBYygzLDUsZC52YWx1ZSkpfX1mdW5jdGlvbiBaNnQoYyxsKXsxJmMmJihhaSgwLDYwKSxndCgxLGo2dCw0LDcsIm5nLWNvbnRhaW5lciIsNjEpKDIsejZ0LDcsMjAsIm5nLWNvbnRhaW5l'@; put 'ciIsNjEpKDMsVTZ0LDQsNywibmctY29udGFpbmVyIiw2MSksc2koKSksMiZjJiYoTWUoIm5nU3dpdGNoIixsLnF1ZXJ5LmRkdHlwZSksZmUoKSxNZSgibmdTd2l0Y2hDYXNlIiwiREFURSIpLGZlKCksTWUoIm5nU3dpdGNoQ2FzZSIsIkRBVEVUSU1FIiksZmUoKSxNZSgibmdTd2l0Y2hDYXNl'@; put 'IiwiVElNRSIpKX1mdW5jdGlvbiBXNnQoYyxsKXtpZigxJmMmJihkZSgwLCJvcHRpb24iLDY4KSxPZSgxKSxoZSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7TWUoInZhbHVlIixhLnVuZm9ybWF0dGVkKSxmZSgpLExyKCIgIixhLmZvcm1hdHRlZC50cmltKCksIiAiKX19ZnVuY3Rpb24g'@; put 'WTZ0KGMsbCl7aWYoMSZjJiYoZGUoMCwiZGl2IiksZ3QoMSxXNnQsMiwyLCJvcHRpb24iLDY3KSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoKS5xdWVyeTtmZSgpLE1lKCJuZ0Zvck9mIixhLnZhbHVlcyl9fWZ1bmN0aW9uIEc2dChjLGwpe2lmKDEmYyYmKGRlKDAsIm9wdGlvbiIsNjgpLE9lKDEp'@; put 'LGhlKCkpLDImYyl7Y29uc3QgYT1MZSgpLiRpbXBsaWNpdDtNZSgidmFsdWUiLGEuTkFNRSksZmUoKSxMcigiICIsYS5OQU1FLCIgIil9fWZ1bmN0aW9uICQ2dChjLGwpe2lmKDEmYyYmKGFpKDApLGd0KDEsRzZ0LDIsMiwib3B0aW9uIiw2OSksc2koKSksMiZjKXtjb25zdCBhPWwuJGltcGxp'@; put 'Y2l0LGQ9TGUoMikucXVlcnk7ZmUoKSxNZSgibmdJZiIsYS5UWVBFPT09ZC50eXBlKX19ZnVuY3Rpb24gSzZ0KGMsbCl7aWYoMSZjJiYoZGUoMCwiZGl2IiksZ3QoMSwkNnQsMiwxLCJuZy1jb250YWluZXIiLDM4KSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoMik7ZmUoKSxNZSgibmdGb3JPZiIs'@; put 'YS5jb2xzKX19ZnVuY3Rpb24gWDZ0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiYXBwLXNvZnQtc2VsZWN0Iiw2NiksRnQoInNlbGVjdGVkTGFiZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe2NvbnN0IGY9d3QoYSkucXVlcnk7cmV0dXJuIEN0KExlKCkuc2VsZWN0ZWRMYWJlbENoYW5n'@; put 'ZShoLGYpKX0pLHBpKCJ2YWx1ZUNoYW5nZSIsZnVuY3Rpb24oaCl7Y29uc3QgZj13dChhKS5xdWVyeTtyZXR1cm4gZ2koZi52YWx1ZSxoKXx8KGYudmFsdWU9aCksQ3QoaCl9KSxGdCgib25JbnB1dEV2ZW50IixmdW5jdGlvbihoKXtjb25zdCBmPXd0KGEpLHY9Zi5xdWVyeUluZGV4LE09Zi5j'@; put 'bGF1c2VJbmRleDtyZXR1cm4gQ3QoTGUoKS5zZXRWYXJpYWJsZVZhbHVlcyhoLnRhcmdldC52YWx1ZSx2LE0pKX0pKCJvbkF1dG9jb21wbGV0ZUxvYWRpbmdNb3JlIixmdW5jdGlvbihoKXtjb25zdCBmPXd0KGEpLHY9Zi5xdWVyeSxNPWYucXVlcnlJbmRleCxJPWYuY2xhdXNlSW5kZXg7cmV0'@; put 'dXJuIEN0KExlKCkub25BdXRvY29tcGxldGVMb2FkaW5nTW9yZShoLHYudmFyaWFibGUsTSxJKSl9KSxndCgxLFk2dCwyLDEsImRpdiIsMjApKDIsSzZ0LDIsMSwiZGl2IiwyMCksaGUoKX1pZigyJmMpe2NvbnN0IGE9bC5xdWVyeSxkPWwucXVlcnlJbmRleCxoPWwuY2xhdXNlSW5kZXg7TWUo'@; put 'InNlY29uZExhYmVsIiwiVmFyaWFibGUiKSgiZW1pdE9ubHlTZWxlY3RlZCIsYS52YWx1ZVZhcmlhYmxlKSgiaW5wdXRJZCIsInZhbHNfIitkKyJfIitoKSxmaSgidmFsdWUiLGEudmFsdWUpLE1lKCJlbmFibGVMb2FkTW9yZSIsYS5ub2JzPmEudmFsdWVzLmxlbmd0aCksZmUoKSxNZSgibmdJ'@; put 'ZiIsIWEudmFsdWVWYXJpYWJsZSksZmUoKSxNZSgibmdJZiIsYS52YWx1ZVZhcmlhYmxlKX19ZnVuY3Rpb24gcTZ0KGMsbCl7aWYoMSZjJiYoZGUoMCwib3B0aW9uIiw2OCksT2UoMSksaGUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O01lKCJ2YWx1ZSIsYS5mb3JtYXR0ZWQpLGZlKCks'@; put 'THIoIiAiLGEuZm9ybWF0dGVkLCIgIil9fWZ1bmN0aW9uIEo2dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImFwcC1zb2Z0LXNlbGVjdCIsNzApLHBpKCJ2YWx1ZUNoYW5nZSIsZnVuY3Rpb24oaCl7Y29uc3QgZj13dChhKSx2PWYucXVlcnksTT1mLnF1ZXJ5VmFsdWVJbmRleDty'@; put 'ZXR1cm4gZ2kodi52YWx1ZVtNXSxoKXx8KHYudmFsdWVbTV09aCksQ3QoaCl9KSxGdCgib25JbnB1dEV2ZW50IixmdW5jdGlvbigpe2NvbnN0IGg9d3QoYSksZj1oLnF1ZXJ5LHY9aC5xdWVyeUluZGV4LE09aC5jbGF1c2VJbmRleDtyZXR1cm4gQ3QoTGUoKS5zZXRWYXJpYWJsZVZhbHVlcyhm'@; put 'LnZhbHVlLHYsTSkpfSkoIm9uQXV0b2NvbXBsZXRlTG9hZGluZ01vcmUiLGZ1bmN0aW9uKGgpe2NvbnN0IGY9d3QoYSksdj1mLnF1ZXJ5LE09Zi5xdWVyeUluZGV4LEk9Zi5jbGF1c2VJbmRleDtyZXR1cm4gQ3QoTGUoKS5vbkF1dG9jb21wbGV0ZUxvYWRpbmdNb3JlKGgsdi52YXJpYWJsZSxN'@; put 'LEkpKX0pLGd0KDEscTZ0LDIsMiwib3B0aW9uIiw2NyksaGUoKX1pZigyJmMpe2NvbnN0IGE9bC5yYW5nZSxkPWwucXVlcnksaD1sLnF1ZXJ5VmFsdWVJbmRleDtNZSgiaW5wdXRJZCIsInZhbHMtIithKyJfIitsLnF1ZXJ5SW5kZXgrIl8iK2wuY2xhdXNlSW5kZXgpLGZpKCJ2YWx1ZSIsZC52'@; put 'YWx1ZVtoXSksTWUoImVuYWJsZUxvYWRNb3JlIixkLm5vYnM+ZC52YWx1ZXMubGVuZ3RoKSgiZGlzYWJsZWQiLHZvaWQgMCE9PWgmJiJzdGFydCIhPT1hJiYhZC52YWx1ZVswXSksZmUoKSxNZSgibmdGb3JPZiIsZC52YWx1ZXMpfX1mdW5jdGlvbiBRNnQoYyxsKXsxJmMmJihkZSgwLCJoNSIs'@; put 'NzgpLE9lKDEsIiBObyB2YWx1ZXMgYXZhaWxhYmxlLiAiKSxoZSgpKX1mdW5jdGlvbiBlOHQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJjbHItY2hlY2tib3gtd3JhcHBlciIpKDEsImlucHV0Iiw4MCkscGkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe2NvbnN0IGY9d3Qo'@; put 'YSkuaW5kZXgsdj1MZSgyKS5xdWVyeTtyZXR1cm4gZ2kodi52YWx1ZVtmXS5jaGVja2VkLGgpfHwodi52YWx1ZVtmXS5jaGVja2VkPWgpLEN0KGgpfSksRnQoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe3d0KGEpO2NvbnN0IGY9TGUoMiksdj1mLnF1ZXJ5SW5kZXgsTT1mLmNsYXVzZUlu'@; put 'ZGV4O3JldHVybiBDdChMZSgpLnNldFZhcmlhYmxlVmFsdWVzKGgsdixNKSl9KSxoZSgpLGRlKDIsImxhYmVsIiksT2UoMyksaGUoKSgpfWlmKDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdCxkPWwuaW5kZXgsaD1MZSgyKS5xdWVyeTtmZSgpLGZpKCJuZ01vZGVsIixoLnZhbHVlW2RdLmNoZWNr'@; put 'ZWQpLGZlKDIpLExyKCIgIixhLmZvcm1hdHRlZCwiICIpfX1mdW5jdGlvbiB0OHQoYyxsKXtpZigxJmMmJihkZSgwLCJzZWN0aW9uIiw3OSkoMSwiY2xyLWNoZWNrYm94LWNvbnRhaW5lciIpLGd0KDIsZTh0LDQsMiwiY2xyLWNoZWNrYm94LXdyYXBwZXIiLDM4KSxoZSgpKCkpLDImYyl7Y29u'@; put 'c3QgYT1MZSgpLnF1ZXJ5O2ZlKDIpLE1lKCJuZ0Zvck9mIixhLnZhbHVlcyl9fWZ1bmN0aW9uIG44dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImNsci1tb2RhbCIsNzEpKDEsImgzIiw3MiksT2UoMiwiU2VsZWN0IHZhbHVlcyIpLGhlKCksZGUoMywiZGl2Iiw3MyksZ3QoNCxR'@; put 'NnQsMiwwLCJoNSIsNzQpKDUsdDh0LDMsMSwic2VjdGlvbiIsNzUpLGhlKCksZGUoNiwiZGl2Iiw3NikoNywiYnV0dG9uIiw3NyksRnQoImNsaWNrIixmdW5jdGlvbigpe3d0KGEpO2NvbnN0IGg9TGUoKTtyZXR1cm4gaC5jdXJyZW50UXVlcnlJbmRleD0tMSxDdChoLmN1cnJlbnRDbGF1c2VJ'@; put 'bmRleD0tMSl9KSxPZSg4LCIgQXBwbHkgIiksaGUoKSgpKCl9aWYoMiZjKXtjb25zdCBhPWwucXVlcnksZD1sLnF1ZXJ5SW5kZXgsaD1sLmNsYXVzZUluZGV4LGY9TGUoKTtNZSgiY2xyTW9kYWxPcGVuIixmLmN1cnJlbnRRdWVyeUluZGV4PT09ZCYmZi5jdXJyZW50Q2xhdXNlSW5kZXg9PT1o'@; put 'KSgiY2xyTW9kYWxDbG9zYWJsZSIsITEpLGZlKDQpLE1lKCJuZ0lmIiwhZi5pc0FycihhLnZhbHVlKSksZmUoKSxNZSgibmdJZiIsZi5pc0FycihhLnZhbHVlKSl9fSFmdW5jdGlvbiB5d2UoYyxsLGEpeyhmdW5jdGlvbiAkOWUoYyxsLGEpeyJzdHJpbmciIT10eXBlb2YgbCYmKGE9bCxsPWNb'@; put 'UWwuTG9jYWxlSWRdKSxsPWwudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9fL2csIi0iKSxWeVtsXT1jLGEmJihWeVtsXVtRbC5FeHRyYURhdGFdPWEpfSkoYyxsLGEpfShyNnQpO2xldCBudGU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmKXt0aGlzLnNhc1N0b3JlU2VydmljZT1h'@; put 'LHRoaXMuZXZlbnRTZXJ2aWNlPWQsdGhpcy5oZWxwZXJTZXJ2aWNlPWgsdGhpcy5jZGY9Zix0aGlzLmNhY2hpbmc9ITAsdGhpcy5yb3dzX2luY3JlbWVudD0xMDAsdGhpcy5pbml0aWFsX3Jvd3M9MWUzLHRoaXMuY2xhdXNlQW10PVsiIl0sdGhpcy5udW1PcGVyYXRvcnM9WyI9IiwiPCIsIj4i'@; put 'LCI8PSIsIj49IiwiQkVUV0VFTiIsIklOIiwiTk9UIElOIiwiTkUiXSx0aGlzLmNoYXJPcGVyYXRvcnM9WyI9IiwiPCIsIj4iLCI8PSIsIj49IiwiQ09OVEFJTlMiLCJJTiIsIk5PVCBJTiIsIk5FIl0sdGhpcy5ub3RJbj0hMSx0aGlzLm5vdEFycj0hMCx0aGlzLndhc0JldHdlZW49ITEsdGhp'@; put 'cy53aGVyZUNsYXVzZUxvYWRpbmc9ITEsdGhpcy5keW5hbWljV2hlcmVDbGF1c2U9ITAsdGhpcy51c2VQaWNrZXJzPSExLHRoaXMucXVlcnlPYmo9e2VsZW1lbnRzOlt7bG9naWM6bnVsbCx0eXBlOm51bGwsZGR0eXBlOm51bGwsdmFyaWFibGU6bnVsbCxvcGVyYXRvcjpudWxsLHZhbHVlOm51'@; put 'bGwsdmFsdWVWYXJpYWJsZTohMSxzdGFydHJvdzowLHJvd3M6MCxub2JzOjAsdmFsdWVzOltdLG9wZXJhdG9yczpbXX1dLGNsYXVzZUxvZ2ljOiIiLGludmFsaWRDbGF1c2U6ITF9LHRoaXMuc2VsVmFyPXtpbmRleDpudWxsLGZvcm1hdDpudWxsLHR5cGU6bnVsbH0sdGhpcy5pbk9iaj1be2No'@; put 'ZWNrZWQ6ITEsdmFsdWU6bnVsbH1dLHRoaXMuZ3JvdXBMb2dpYz0iQU5EIix0aGlzLmNsYXVzZXM9e3F1ZXJ5T2JqOlt0aGlzLnF1ZXJ5T2JqXSxjbGF1c2VMb2dpYzpbXSxncm91cExvZ2ljOnRoaXMuZ3JvdXBMb2dpY30sdGhpcy5sb2dpY09wZXJhdG9ycz1bIkFORCIsIk9SIl0sdGhpcy5x'@; put 'dWVyeURhdGVUaW1lPVtdLHRoaXMuY3VycmVudENsYXVzZUluZGV4PS0xLHRoaXMuY3VycmVudFF1ZXJ5SW5kZXg9LTEsdGhpcy5wZW5kaW5nSU5WYWx1ZXNTZXQ9bnVsbCx0aGlzLmlubmVyV2lkdGg9d2luZG93LnNjcmVlbi53aWR0aCx0aGlzLmlubmVyV2lkdGg+NzY4JiYodGhpcy5ub0Jv'@; put 'cmRlcj0iYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCBncmF5OyIpfWdldFF1ZXJ5RGF0ZVRpbWUoYSxkKXtsZXQgaD10aGlzLnF1ZXJ5RGF0ZVRpbWUuZmluZChmPT5mLmNsYXVzZUluZGV4PT09YSYmZi5xdWVyeUluZGV4PT09ZCk7aWYoIWgpe2NvbnN0IGY9dGhpcy5xdWVyeURhdGVUaW1lLnB1'@; put 'c2goe2NsYXVzZUluZGV4OmEscXVlcnlJbmRleDpkLGRhdGU6IiIsdGltZToiIn0pLTE7aD10aGlzLnF1ZXJ5RGF0ZVRpbWVbZl19cmV0dXJuIGh9dXNlUGlja2Vyc0NoYW5nZSgpe3RoaXMucXVlcnlEYXRlVGltZT1bXSx0aGlzLnVzZVBpY2tlcnMmJnRoaXMuY2xhdXNlcy5xdWVyeU9iai5m'@; put 'b3JFYWNoKGE9PnthLmVsZW1lbnRzLmZvckVhY2goZD0+e1siREFURVRJTUUiLCJUSU1FIiwiREFURSJdLmluY2x1ZGVzKGQuZGR0eXBlKSYmZC52YWx1ZVZhcmlhYmxlJiYoZC52YWx1ZT0iIixkLnZhbHVlVmFyaWFibGU9ITEpfSl9KX1yZXNldEZpbHRlcigpe3RoaXMud2hlcmVTdHJpbmc9'@; put 'dm9pZCAwLHRoaXMud2hlcmVDbGF1c2U9dm9pZCAwLHRoaXMucXVlcnlPYmo9e2VsZW1lbnRzOlt7bG9naWM6bnVsbCx0eXBlOm51bGwsZGR0eXBlOm51bGwsdmFyaWFibGU6bnVsbCxvcGVyYXRvcjpudWxsLHZhbHVlOm51bGwsdmFsdWVzOltdLG9wZXJhdG9yczpbXX1dfSx0aGlzLmNsYXVz'@; put 'ZXM9e3F1ZXJ5T2JqOlt0aGlzLnF1ZXJ5T2JqXSxjbGF1c2VMb2dpYzpbXSxncm91cExvZ2ljOnRoaXMuZ3JvdXBMb2dpY30sdGhpcy53aGVyZUNsYXVzZUZuKCEwKX1zZXRUb0dsb2JhbHMoKXtpZighdGhpcy5jYWNoaW5nKXJldHVybjtsZXQgYT0iIjsiaG9tZSI9PT1Kbi5yb290UGFyYW18'@; put 'fCJlZGl0b3IiPT09Sm4ucm9vdFBhcmFtP2E9dGhpcy52aWV3Ym94SWQ/YHZpZXdib3hlcy4ke3RoaXMudmlld2JveElkfWA6ImVkaXRvciI6InZpZXciPT09Sm4ucm9vdFBhcmFtJiYoYT0idmlld2VyIikseWMoSm4sYSkuZmlsdGVyLmdyb3VwTG9naWM9dGhpcy5ncm91cExvZ2ljLCJzdHJp'@; put 'bmciPT10eXBlb2YgdGhpcy53aGVyZUNsYXVzZSYmKHljKEpuLGEpLmZpbHRlci53aGVyZUNsYXVzZT10aGlzLndoZXJlQ2xhdXNlKSwic3RyaW5nIj09dHlwZW9mIHRoaXMubGliZHMmJih5YyhKbixhKS5maWx0ZXIubGliZHM9dGhpcy5saWJkcykseWMoSm4sYSkuZmlsdGVyLmNsYXVzZXM9'@; put 'dGhpcy5jbGF1c2VzfWdldEZyb21HbG9iYWxzKCl7aWYoIXRoaXMuY2FjaGluZylyZXR1cm47bGV0IGE9IiI7ImhvbWUiPT09Sm4ucm9vdFBhcmFtfHwiZWRpdG9yIj09PUpuLnJvb3RQYXJhbT9hPXRoaXMudmlld2JveElkP2B2aWV3Ym94ZXMuJHt0aGlzLnZpZXdib3hJZH1gOiJlZGl0b3Ii'@; put 'OiJ2aWV3Ij09PUpuLnJvb3RQYXJhbSYmKGE9InZpZXdlciIpLHljKEpuLGEpLmZpbHRlci5jb2xzLmxlbmd0aD4wJiYodGhpcy5jb2xzPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoeWMoSm4sYSkuZmlsdGVyLmNvbHMpKSkseWMoSm4sYSkuZmlsdGVyLnZhbHMubGVuZ3RoPjAmJih0aGlz'@; put 'LnZhbHM9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh5YyhKbixhKS5maWx0ZXIudmFscykpKSwiIiE9PXljKEpuLGEpLmZpbHRlci5ncm91cExvZ2ljJiYodGhpcy5ncm91cExvZ2ljPXljKEpuLGEpLmZpbHRlci5ncm91cExvZ2ljLHRoaXMud2hlcmVDbGF1c2U9eWMoSm4sYSkuZmlsdGVy'@; put 'LndoZXJlQ2xhdXNlLHRoaXMubGliZHM9eWMoSm4sYSkuZmlsdGVyLmxpYmRzLHRoaXMuY2xhdXNlcz15YyhKbixhKS5maWx0ZXIuY2xhdXNlcyx0aGlzLndoZXJlQ2xhdXNlRm4oKSl9c2V0R3JvdXBMb2dpYyhhKXt0aGlzLmdyb3VwTG9naWM9YSx0aGlzLmNsYXVzZXMuZ3JvdXBMb2dpYz1h'@; put 'LHRoaXMud2hlcmVDbGF1c2VGbigpLHRoaXMuc2V0VG9HbG9iYWxzKCl9ZGF0ZUNoYW5nZShhLGQsaCxmLHYpe2xldCBNPXRoaXMuaGVscGVyU2VydmljZS5jb252ZXJ0SnNEYXRlVG9TYXNEYXRlKGEpOyJCRVRXRUVOIj09PWQub3BlcmF0b3ImJnZvaWQgMCE9PXYmJih0aGlzLmNsYXVzZXMu'@; put 'cXVlcnlPYmpbZl0uZWxlbWVudHNbaF0udmFsdWVbdl09TSksdGhpcy5zZXRWYXJpYWJsZVZhbHVlcyhNLGgsZil9ZGF0ZVRpbWVDaGFuZ2UoYSxkLGgsZil7Y29uc3Qgdj10aGlzLmdldFF1ZXJ5RGF0ZVRpbWUoaCxkKTtpZigiIj09PXYuZGF0ZSl7aWYoIiI9PT1hLnZhbHVlKXJldHVybjt2'@; put 'LmRhdGU9YS52YWx1ZS5zcGxpdCgiOiIpWzBdfWNvbnN0IE09cGFyc2VJbnQodi50aW1lLnNwbGl0KCI6IilbMF0pLEk9cGFyc2VJbnQodi50aW1lLnNwbGl0KCI6IilbMV0pLEc9cGFyc2VJbnQodi50aW1lLnNwbGl0KCI6IilbMl0pfHwwO2xldCByZT1uZXcgRGF0ZSh2LmRhdGUpLHVlPW5l'@; put 'dyBEYXRlKHJlLmdldEZ1bGxZZWFyKCkscmUuZ2V0TW9udGgoKSxyZS5nZXREYXRlKCksTSxJLEcpLHllPXRoaXMuaGVscGVyU2VydmljZS5jb252ZXJ0SnNEYXRlVG9TYXNEYXRlKHVlLCJzZWNvbmRzIik7IkJFVFdFRU4iPT09YS5vcGVyYXRvciYmdm9pZCAwIT09ZiYmKHRoaXMuY2xhdXNl'@; put 'cy5xdWVyeU9ialtoXS5lbGVtZW50c1tkXS52YWx1ZVtmXT15ZSksdGhpcy5zZXRWYXJpYWJsZVZhbHVlcyh5ZSxkLGgpfXRpbWVDaGFuZ2UoYSxkLGgsZix2KXthPWEudGFyZ2V0LnZhbHVlO2xldCB5ZT02MCpwYXJzZUludChhLnNwbGl0KCI6IilbMF0pKjYwKzYwKnBhcnNlSW50KGEuc3Bs'@; put 'aXQoIjoiKVsxXSkrKHBhcnNlSW50KGEuc3BsaXQoIjoiKVsyXSl8fDApOyJCRVRXRUVOIj09PWQub3BlcmF0b3ImJnZvaWQgMCE9PXYmJih0aGlzLmNsYXVzZXMucXVlcnlPYmpbZl0uZWxlbWVudHNbaF0udmFsdWVbdl09eWUpLHRoaXMuc2V0VmFyaWFibGVWYWx1ZXMoeWUsaCxmKX1keW5h'@; put 'bWljV2hlcmVDbGF1c2VDcmVhdG9yKGEsZCl7bGV0IGg9W107aWYodGhpcy5jbGF1c2VzLnF1ZXJ5T2JqLmxlbmd0aD4xfHx0aGlzLmNsYXVzZXMucXVlcnlPYmpbYV0uZWxlbWVudHMubGVuZ3RoPjEpZm9yKGxldCBmPTA7Zjx0aGlzLmNsYXVzZXMucXVlcnlPYmoubGVuZ3RoO2YrKylmb3Io'@; put 'bGV0IHY9MDt2PHRoaXMuY2xhdXNlcy5xdWVyeU9ialtmXS5lbGVtZW50cy5sZW5ndGg7disrKXtpZihmPT09YSYmdj09PWR8fFtudWxsLHZvaWQgMF0uaW5jbHVkZXModGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW2ZdLmVsZW1lbnRzW3ZdLnZhcmlhYmxlKXx8W251bGwsdm9pZCAwXS5pbmNsdWRl'@; put 'cyh0aGlzLmNsYXVzZXMucXVlcnlPYmpbZl0uZWxlbWVudHNbdl0ub3BlcmF0b3IpfHxbbnVsbCx2b2lkIDBdLmluY2x1ZGVzKHRoaXMuY2xhdXNlcy5xdWVyeU9ialtmXS5lbGVtZW50c1t2XS52YWx1ZSkpY29udGludWU7bGV0IE09IiI7Y29uc3QgST10aGlzLmNsYXVzZXMucXVlcnlPYmpb'@; put 'Zl0uZWxlbWVudHNbdl0ub3BlcmF0b3IsRz10aGlzLmNsYXVzZXMucXVlcnlPYmpbZl0uZWxlbWVudHNbdl0udmFyaWFibGU7IkJFVFdFRU4iPT09ST9NPWAke3RoaXMuY2xhdXNlcy5xdWVyeU9ialtmXS5lbGVtZW50c1t2XS52YWx1ZVswXX0gQU5EICR7dGhpcy5jbGF1c2VzLnF1ZXJ5T2Jq'@; put 'W2ZdW3ZdLnZhbHVlWzFdfWA6IklOIj09PUl8fCJOT1QgSU4iPT09ST8odGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW2ZdW3ZdLnZhbHVlLmZvckVhY2gocmU9PntpZihyZS5jaGVja2VkKXtsZXQgdWU9cmUudmFsOyJzdHJpbmciIT10eXBlb2YgdWV8fCgwLHBnLmlzU3BlY2lhbE1pc3NpbmcpKHVl'@; put 'KT9NLmxlbmd0aD4wP00rPWAsJHt1ZX1gOk09YCgke3VlfWA6TS5sZW5ndGg+MD9NKz1gLCcke3VlfSdgOk09YCgnJHt1ZX0nYH19KSxNLmxlbmd0aD4wJiYoTSs9IikiKSk6IiI9PT10aGlzLmNsYXVzZXMucXVlcnlPYmpbZl0uZWxlbWVudHNbdl0udmFsdWU/TT0iY2hhciI9PT10aGlzLmNs'@; put 'YXVzZXMucXVlcnlPYmpbZl0uZWxlbWVudHNbdl0udHlwZT8iJyAnIjoiLiI6ImNoYXIiPT09dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW2ZdLmVsZW1lbnRzW3ZdLnR5cGUmJihNPWAnJHt0aGlzLmNsYXVzZXMucXVlcnlPYmpbZl0uZWxlbWVudHNbdl0udmFsdWV9J2ApLGgucHVzaCh7R1JPVVBf'@; put 'TE9HSUM6dGhpcy5jbGF1c2VzLmdyb3VwTG9naWMsU1VCR1JPVVBfTE9HSUM6dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW2ZdLmNsYXVzZUxvZ2ljfHwiQU5EIixTVUJHUk9VUF9JRDpmLFZBUklBQkxFX05NOkcsT1BFUkFUT1JfTk06SSxSQVdfVkFMVUU6TXx8dGhpcy5jbGF1c2VzLnF1ZXJ5T2Jq'@; put 'W2ZdLmVsZW1lbnRzW3ZdLnZhbHVlfSl9cmV0dXJuIGh9Z2V0VmFsdWVzTG9hZE1vcmUoYSxkLGgsZil7dmFyIHY9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXtjb25zdCBNPXYubGliZHN8fCIiO3RyeXtpZih2b2lkIDAhPT12LmNvbHMpe2ZvcihsZXQgR2U9MDtHZTx2LmNvbHMubGVuZ3Ro'@; put 'O0dlKyspdi5jb2xzW0dlXS5OQU1FPT09ZCYmKHYuc2VsVmFyLmluZGV4PUdlKTtjb25zdCBJPXYuY29sc1t2LnNlbFZhci5pbmRleF0uRERUWVBFLHtzdGFydHJvdzpHLHJvd3M6cmV9PXYuY2xhdXNlcy5xdWVyeU9ialtmXS5lbGVtZW50c1toXSx1ZT12LnJvd3NfaW5jcmVtZW50LHllPUcr'@; put 'cmU7bGV0IEVlPVtdO3YuZHluYW1pY1doZXJlQ2xhdXNlJiYoRWU9di5keW5hbWljV2hlcmVDbGF1c2VDcmVhdG9yKGYsaCkpO2NvbnN0IEJlPVsiREFURVRJTUUiLCJUSU1FIiwiREFURSJdLmluY2x1ZGVzKEkpO3Yuc2FzU3RvcmVTZXJ2aWNlLmdldFF1ZXJ5VmFsdWVzKGQsTSxFZSx5ZSx1'@; put 'ZSkudGhlbihHZT0+e2NvbnN0IHN0PUdlLnZhbHMse1NUQVJUUk9XOnB0LFJPV1M6ZHQsTk9CUzpxdH09R2UubWV0YVswXTtpZih2LmNsYXVzZXMucXVlcnlPYmpbZl0uZWxlbWVudHNbaF0uc3RhcnRyb3c9cHQsdi5jbGF1c2VzLnF1ZXJ5T2JqW2ZdLmVsZW1lbnRzW2hdLnJvd3M9ZHQsdi5j'@; put 'bGF1c2VzLnF1ZXJ5T2JqW2ZdLmVsZW1lbnRzW2hdLm5vYnM9cXQsMT09PXN0Lmxlbmd0aCYmIiI9PT1zdFswXS5GT1JNQVRURUQmJiIiPT09c3RbMF0uVU5GT1JNQVRURUQ/YS5sb2FkTW9yZUZpbmlzaGVkKCExKToodi5jbGF1c2VzLnF1ZXJ5T2JqW2ZdLmVsZW1lbnRzW2hdLnZhbHVlcy5w'@; put 'dXNoKC4uLnN0Lm1hcChobj0+e2NvbnN0IE1uPSJudW0iPT09R2UuJHZhbHMudmFycy5VTkZPUk1BVFRFRC50eXBlO2xldCBrcj1NbiYmKDAscGcuaXNTcGVjaWFsTWlzc2luZykoaG4uVU5GT1JNQVRURUQpPyIuIitobi5VTkZPUk1BVFRFRDpobi5VTkZPUk1BVFRFRDtyZXR1cm4gTW4mJm51'@; put 'bGw9PT1rciYmKGtyPSIuIikse2Zvcm1hdHRlZDpCZT9obi5GT1JNQVRURUQuc3BsaXQoIi4iKVswXTpobi5GT1JNQVRURUQsdW5mb3JtYXR0ZWQ6a3J9fSkpLGEubG9hZE1vcmVGaW5pc2hlZChxdC12LmNsYXVzZXMucXVlcnlPYmpbZl0uZWxlbWVudHNbaF0udmFsdWVzLmxlbmd0aD4wKSks'@; put 'di53aGVyZUNsYXVzZUZuKCksdi5zZXRUb0dsb2JhbHMoKSx2LndoZXJlQ2xhdXNlTG9hZGluZz0hMSxudWxsIT09di5wZW5kaW5nSU5WYWx1ZXNTZXQpe2NvbnN0e2NsYXVzZUluZGV4Om1uLHF1ZXJ5SW5kZXg6d259PXYucGVuZGluZ0lOVmFsdWVzU2V0O3Yuc2V0SU5WYWx1ZXMobW4sd24p'@; put 'LHYucGVuZGluZ0lOVmFsdWVzU2V0PW51bGx9di5jZGYuZGV0ZWN0Q2hhbmdlcygpfSkuY2F0Y2goR2U9Pnt2LndoZXJlQ2xhdXNlTG9hZGluZz0hMX0pfX1jYXRjaChJKXt2LmV2ZW50U2VydmljZS5jYXRjaFJlc3BvbnNlRXJyb3IoInB1YmxpYy9nZXRjb2x2YWxzIixJKX19KSgpfWdldFZh'@; put 'bHVlcyhhLGQsaCl7dmFyIGY9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXtmLndoZXJlQ2xhdXNlTG9hZGluZz0hMDtsZXQgdj0iIjt2b2lkIDAhPT1mLmxpYmRzJiYodj1mLmxpYmRzKSxmLmNsZWFyVmFsdWVzKGQsaCksZi5jbGF1c2VzLnF1ZXJ5T2JqW2hdLmVsZW1lbnRzW2RdLnZhbHVl'@; put 'cz1bXSxmLmNsYXVzZXMucXVlcnlPYmpbaF0uZWxlbWVudHNbZF0udmFsdWU9IiIsZi5jbGF1c2VzLnF1ZXJ5T2JqW2hdLmVsZW1lbnRzW2RdLm9wZXJhdG9yPSI9IixmLmNsYXVzZXMucXVlcnlPYmpbaF0uZWxlbWVudHNbZF0udmFyaWFibGU9YTt0cnl7aWYodm9pZCAwIT09Zi5jb2xzKXtm'@; put 'b3IobGV0IHJlPTA7cmU8Zi5jb2xzLmxlbmd0aDtyZSsrKWYuY29sc1tyZV0uTkFNRT09PWEmJihmLnNlbFZhci5pbmRleD1yZSk7Y29uc3QgTT1mLmNvbHNbZi5zZWxWYXIuaW5kZXhdLkREVFlQRTtmLmNsYXVzZXMucXVlcnlPYmpbaF0uZWxlbWVudHNbZF0uZGR0eXBlPU0sZi5jbGF1c2Vz'@; put 'LnF1ZXJ5T2JqW2hdLmVsZW1lbnRzW2RdLnR5cGU9Zi5jb2xzW2Yuc2VsVmFyLmluZGV4XS5UWVBFLGYuY2xhdXNlcy5xdWVyeU9ialtoXS5lbGVtZW50c1tkXS5vcGVyYXRvcnM9Im51bSI9PT1mLmNsYXVzZXMucXVlcnlPYmpbaF0uZWxlbWVudHNbZF0udHlwZT9mLm51bU9wZXJhdG9yczpm'@; put 'LmNoYXJPcGVyYXRvcnM7bGV0IEk9W107Zi5keW5hbWljV2hlcmVDbGF1c2UmJihJPWYuZHluYW1pY1doZXJlQ2xhdXNlQ3JlYXRvcihoLGQpKTtjb25zdCBHPVsiREFURVRJTUUiLCJUSU1FIiwiREFURSJdLmluY2x1ZGVzKE0pO2Yuc2FzU3RvcmVTZXJ2aWNlLmdldFF1ZXJ5VmFsdWVzKGEs'@; put 'dixJLDEsZi5pbml0aWFsX3Jvd3MpLnRoZW4ocmU9Pntjb25zdCB1ZT1yZS52YWxzLHtTVEFSVFJPVzp5ZSxST1dTOkVlLE5PQlM6QmV9PXJlLm1ldGFbMF07aWYoZi5jbGF1c2VzLnF1ZXJ5T2JqW2hdLmVsZW1lbnRzW2RdLnN0YXJ0cm93PXllLGYuY2xhdXNlcy5xdWVyeU9ialtoXS5lbGVt'@; put 'ZW50c1tkXS5yb3dzPUVlLGYuY2xhdXNlcy5xdWVyeU9ialtoXS5lbGVtZW50c1tkXS5ub2JzPUJlLGYuY2xhdXNlcy5xdWVyeU9ialtoXS5lbGVtZW50c1tkXS52YWx1ZXM9dWUubWFwKEdlPT57Y29uc3Qgc3Q9Im51bSI9PT1yZS4kdmFscy52YXJzLlVORk9STUFUVEVELnR5cGU7bGV0IGR0'@; put 'PXN0JiYoMCxwZy5pc1NwZWNpYWxNaXNzaW5nKShHZS5VTkZPUk1BVFRFRCk/Ii4iK0dlLlVORk9STUFUVEVEOkdlLlVORk9STUFUVEVEO3JldHVybiBzdCYmbnVsbD09PWR0JiYoZHQ9Ii4iKSx7Zm9ybWF0dGVkOkc/R2UuRk9STUFUVEVELnNwbGl0KCIuIilbMF06R2UuRk9STUFUVEVELHVu'@; put 'Zm9ybWF0dGVkOmR0fX0pLnNsaWNlKDAsMmUzKSxmLndoZXJlQ2xhdXNlRm4oKSxmLnNldFRvR2xvYmFscygpLGYud2hlcmVDbGF1c2VMb2FkaW5nPSExLG51bGwhPT1mLnBlbmRpbmdJTlZhbHVlc1NldCl7Y29uc3R7Y2xhdXNlSW5kZXg6R2UscXVlcnlJbmRleDpzdH09Zi5wZW5kaW5nSU5W'@; put 'YWx1ZXNTZXQ7Zi5zZXRJTlZhbHVlcyhHZSxzdCksZi5wZW5kaW5nSU5WYWx1ZXNTZXQ9bnVsbH1mLmNkZi5kZXRlY3RDaGFuZ2VzKCl9KS5jYXRjaChyZT0+e2Yud2hlcmVDbGF1c2VMb2FkaW5nPSExfSl9fWNhdGNoKE0pe2YuZXZlbnRTZXJ2aWNlLmNhdGNoUmVzcG9uc2VFcnJvcigicHVi'@; put 'bGljL2dldGNvbHZhbHMiLE0pfX0pKCl9Z2V0bG9naWMoYSl7dGhpcy5sb2dpYz1hLHRoaXMud2hlcmVDbGF1c2VGbigpfXNldExvZ2ljKCl7dGhpcy53aGVyZUNsYXVzZUZuKCksdGhpcy5zZXRUb0dsb2JhbHMoKX1pc0FycihhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIEFycmF5JiZhLmxlbmd0'@; put 'aD4wJiZ0eXBlb2YgYVswXS5jaGVja2VkPCJ1In1zZWxlY3RlZExhYmVsQ2hhbmdlKGEsZCl7ZC52YWx1ZVZhcmlhYmxlPSJWYXJpYWJsZSI9PT1hLGQudmFsdWU9IiIsdGhpcy53aGVyZUNsYXVzZUZuKCl9dmFyaWFibGVJbnB1dENoYW5nZShhLGQsaCxmKXt0aGlzLmdldFZhbHVlcyhhLGQs'@; put 'aCl9c2V0VmFyaWFibGVWYWx1ZXMoYSxkLGgpe2xldCBmPXRoaXMuY2xhdXNlcy5xdWVyeU9ialtoXS5lbGVtZW50c1tkXS5vcGVyYXRvcjsiQkVUV0VFTiIhPT1mJiYiSU4iIT09ZiYmIk5PVCBJTiIhPT1mJiYodGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW2hdLmVsZW1lbnRzW2RdLnZhbHVlPWEu'@; put 'dG9TdHJpbmcoKSksdGhpcy53aGVyZUNsYXVzZUZuKCksdGhpcy5zZXRUb0dsb2JhbHMoKX1zZXRWYXJpYWJsZU9wZXJhdG9yKGEsZCxoKXtsZXQgZj10aGlzLmNsYXVzZXMucXVlcnlPYmpbaF0uZWxlbWVudHNbYV0udmFsdWU7ZiBpbnN0YW5jZW9mIEFycmF5JiYiSU4iIT09ZCYmIk5PVCBJ'@; put 'TiIhPT1kJiYoZj1mIGluc3RhbmNlb2YgQXJyYXkmJjI9PT1mLmxlbmd0aCYmInN0cmluZyI9PXR5cGVvZiBmWzBdP2ZbMF06IiIpLHRoaXMuY2xlYXJWYWx1ZXNPcGVyYXRvcihhLGgpLHRoaXMuY2xhdXNlcy5xdWVyeU9ialtoXS5lbGVtZW50c1thXS5vcGVyYXRvcj1kLCgiPSI9PT1kfHwi'@; put 'PiI9PT1kfHwiPCI9PT1kfHwiPD0iPT09ZHx8Ij49Ij09PWR8fCJORSI9PT1kKSYmKHRoaXMuY2xhdXNlcy5xdWVyeU9ialtoXS5lbGVtZW50c1thXS52YWx1ZT1mKSwiQkVUV0VFTiI9PT1kJiYodGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW2hdLmVsZW1lbnRzW2FdLnZhbHVlPVtdLHRoaXMuY2xh'@; put 'dXNlcy5xdWVyeU9ialtoXS5lbGVtZW50c1thXS52YWx1ZS5wdXNoKGYpLHRoaXMuY2xhdXNlcy5xdWVyeU9ialtoXS5lbGVtZW50c1thXS52YWx1ZS5wdXNoKCIiKSksKCJJTiI9PT1kfHwiTk9UIElOIj09PWQpJiZ0aGlzLnNldElOVmFsdWVzKGgsYSksdGhpcy53aGVyZUNsYXVzZUZuKCks'@; put 'dGhpcy5zZXRUb0dsb2JhbHMoKX1zZXRJTlZhbHVlcyhhLGQpe2NvbnN0IGg9W10sZj10aGlzLmNsYXVzZXMucXVlcnlPYmpbYV0uZWxlbWVudHNbZF0udmFsdWVzO2YubGVuZ3RoPDEmJih0aGlzLnBlbmRpbmdJTlZhbHVlc1NldD17Y2xhdXNlSW5kZXg6YSxxdWVyeUluZGV4OmR9KTtmb3Io'@; put 'bGV0IHY9MDt2PGYubGVuZ3RoO3YrKyloLnB1c2goe2NoZWNrZWQ6ITEsdmFsOmZbdl0uZm9ybWF0dGVkfSk7dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW2FdLmVsZW1lbnRzW2RdLnZhbHVlPWh9Y2xlYXJWYWx1ZXMoYSxkKXt0aGlzLmNsYXVzZXMucXVlcnlPYmpbZF0uZWxlbWVudHNbYV0udmFs'@; put 'dWU9IiJ9Y2xlYXJWYWx1ZXNPcGVyYXRvcihhLGQpe2xldCBoPXRoaXMuY2xhdXNlcy5xdWVyeU9ialtkXS5lbGVtZW50c1thXS5vcGVyYXRvcjsoIkJFVFdFRU4iPT09aHx8IklOIj09PWh8fCJOT1QgSU4iPT09aHx8IkNPTlRBSU5TIj09PWgpJiZ0aGlzLmNsZWFyVmFsdWVzKGEsZCl9aGFz'@; put 'SW52YWxpZENsdWFzZShhKXtmb3IobGV0IGQgb2YgYSlpZihkLmludmFsaWRDbGF1c2U9ITEsIiI9PT1kLnZhbHVlJiYiTkUiIT09ZC5vcGVyYXRvciYmIkNPTlRBSU5TIiE9PWQub3BlcmF0b3J8fG51bGw9PT1kLnZhcmlhYmxlfHxudWxsPT09ZC5vcGVyYXRvcnx8bnVsbD09PWQudmFsdWUp'@; put 'cmV0dXJuIGQuaW52YWxpZENsYXVzZT0hMCwhMDtyZXR1cm4gYS5pbnZhbGlkQ2xhdXNlPSExLCExfWhhc0ludmFsaWRHcm91cENsdWFzZSgpe2ZvcihsZXQgYT0wO2E8dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqLmxlbmd0aDthKyspe2lmKHRoaXMuaGFzSW52YWxpZENsdWFzZSh0aGlzLmNsYXVz'@; put 'ZXMucXVlcnlPYmpbYV0uZWxlbWVudHMpKXJldHVybiB0aGlzLmNsYXVzZXMucXVlcnlPYmpbYV0uaW52YWxpZENsYXVzZT0hMCwhMDt0aGlzLmNsYXVzZXMucXVlcnlPYmpbYV0uaW52YWxpZENsYXVzZT0hMX1yZXR1cm4hMX1hZGRDbGF1c2UoYSl7aWYodGhpcy5oYXNJbnZhbGlkQ2x1YXNl'@; put 'KHRoaXMuY2xhdXNlcy5xdWVyeU9ialthXS5lbGVtZW50cykpcmV0dXJuIHZvaWQgdGhpcy5ldmVudFNlcnZpY2Uuc2hvd0luZm9Nb2RhbCgiRXJyb3IiLCJDYW5ub3QgYWRkIG5ldyBjbGF1c2UsIHdoZW4gb25lIG9yIG1vcmUgY2xhdXNlcyBhcmUgaW52YWxpZCBvciBlbXB0eS4iKTt0aGlz'@; put 'LmNsYXVzZUFtdC5wdXNoKCIiKSx0aGlzLmNsYXVzZXMucXVlcnlPYmpbYV0uZWxlbWVudHMucHVzaCh7bG9naWM6bnVsbCx0eXBlOm51bGwsdmFyaWFibGU6bnVsbCxvcGVyYXRvcjpudWxsLHZhbHVlOm51bGwsdmFsdWVzOltdLG9wZXJhdG9yczpbXX0pO2xldCBkPXRoaXMuY2xhdXNlcy5x'@; put 'dWVyeU9ialthXS5jbGF1c2VMb2dpYzt0aGlzLmNsYXVzZXMucXVlcnlPYmpbYV0uY2xhdXNlTG9naWM9dHlwZW9mIGQ+InUiPyJBTkQiOiJPUiI9PT1kPyJPUiI6IkFORCIsdGhpcy53aGVyZUNsYXVzZUZuKCksdGhpcy5zZXRUb0dsb2JhbHMoKX1hZGRHcm91cENsYXVzZSgpe3RoaXMuaGFz'@; put 'SW52YWxpZEdyb3VwQ2x1YXNlKCk/dGhpcy5ldmVudFNlcnZpY2Uuc2hvd0luZm9Nb2RhbCgiRXJyb3IiLCJDYW5ub3QgYWRkIG5ldyBjbGF1c2UsIHdoZW4gb25lIG9yIG1vcmUgY2xhdXNlcyBhcmUgaW52YWxpZCBvciBlbXB0eS4iKToodGhpcy5jbGF1c2VzLnF1ZXJ5T2JqLnB1c2goe2Vs'@; put 'ZW1lbnRzOlt7bG9naWM6bnVsbCx0eXBlOm51bGwsdmFyaWFibGU6bnVsbCxvcGVyYXRvcjpudWxsLHZhbHVlOm51bGwsdmFsdWVzOltdLG9wZXJhdG9yczpbXX1dfSksdGhpcy5zZXRUb0dsb2JhbHMoKSl9aXNJbkh0bWxDb2xsZWN0aW9uKGEsZCl7Zm9yKGxldCBoPTA7aDxkLmxlbmd0aDto'@; put 'KyspaWYoZFtoXS52YWx1ZT09PWEpcmV0dXJuITA7cmV0dXJuITF9cmVtb3ZlR3JvdXBDbGF1c2UoYSl7dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqLnNwbGljZShhLDEpLHRoaXMud2hlcmVDbGF1c2VGbigpfXJlbW92ZUNsYXVzZShhLGQpe3RoaXMuY2xhdXNlcy5xdWVyeU9ialtkXS5lbGVtZW50'@; put 'cy5zcGxpY2UoYSwxKSx0aGlzLndoZXJlQ2xhdXNlRm4oKSx0aGlzLnNldFRvR2xvYmFscygpfXdoZXJlQ2xhdXNlRm4oYT0hMSl7Y29uc3QgZD10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKHRoaXMuY2xhdXNlcyk7aWYoYSYmKGQucXVlcnlPYmpbMF0uZWxlbWVudHM9W10pLHZvaWQg'@; put 'MCE9PXRoaXMubGliZHMpe2xldCBoPXRoaXMuc2FzU3RvcmVTZXJ2aWNlLndoZXJlQ2xhdXNlQ3JlYXRvcihkLHRoaXMuZ3JvdXBMb2dpYyx0aGlzLmxpYmRzKTthfHwodGhpcy53aGVyZUNsYXVzZT1oLndoZXJlQ2xhdXNlLHRoaXMud2hlcmVTdHJpbmc9aC5zdHJpbmcpfX1uZ0FmdGVyVmll'@; put 'd0luaXQoKXt2YXIgYT10aGlzO3JldHVybiBRKGZ1bmN0aW9uKigpe2EuX3JlbW92ZVFyeT1hLnNhc1N0b3JlU2VydmljZS5yZW1vdmVRdWVyeS5zdWJzY3JpYmUoZD0+e2EuY2xhdXNlcy5xdWVyeU9iai5sZW5ndGg+PTEmJihhLmNsYXVzZXMucXVlcnlPYmoubGVuZ3RoPTEsYS5jbGF1c2Vz'@; put 'LnF1ZXJ5T2JqWzBdLmVsZW1lbnRzLmxlbmd0aD49MSYmKGEuY2xhdXNlcy5xdWVyeU9ialswXS5lbGVtZW50cy5sZW5ndGg9MSxhLmNsYXVzZXMucXVlcnlPYmpbMF0uZWxlbWVudHM9W10sYS5jbGF1c2VzLnF1ZXJ5T2JqWzBdLmVsZW1lbnRzLnB1c2goe2xvZ2ljOm51bGwsdHlwZTpudWxs'@; put 'LHZhcmlhYmxlOm51bGwsb3BlcmF0b3I6bnVsbCx2YWx1ZTpudWxsLHZhbHVlczpbXSxvcGVyYXRvcnM6W119KSxhLndoZXJlQ2xhdXNlRm4oKSkpfSksYS5jb2x1bW5zU3ViPWEuc2FzU3RvcmVTZXJ2aWNlLmNvbHVtbnMuc3Vic2NyaWJlKGQ9PntsZXQgaD1kLmRhdGEuY29sczsiaG9tZSIh'@; put 'PT1Kbi5yb290UGFyYW0mJiJlZGl0b3IiIT09Sm4ucm9vdFBhcmFtfHwoYS5jb2xzPWgsYS5saWJkcz1kLmxpYmRzLEpuLmVkaXRvci5maWx0ZXIuY29scz1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGgpKSksInZpZXciPT09Sm4ucm9vdFBhcmFtJiZKbi52aWV3ZXIuZmlsdGVyLmNvbHMu'@; put 'bGVuZ3RoPDEmJihhLmNvbHM9aCxhLmxpYmRzPWQubGliZHMsSm4udmlld2VyLmZpbHRlci5jb2xzPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoaCkpKSxhLmxpYmRzfHwoYS5saWJkcz1kLmxpYmRzKX0pLGEudmFsdWVzU3ViPWEuc2FzU3RvcmVTZXJ2aWNlLnZhbHVlcy5zdWJzY3JpYmUo'@; put 'ZD0+eygiaG9tZSI9PT1Kbi5yb290UGFyYW18fCJlZGl0b3IiPT09Sm4ucm9vdFBhcmFtKSYmSm4uZWRpdG9yLmZpbHRlci52YWxzLmxlbmd0aDwxJiYoYS52YWxzPWQudmFscyxKbi5lZGl0b3IuZmlsdGVyLnZhbHM9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkLnZhbHMpKSksInZpZXci'@; put 'PT09Sm4ucm9vdFBhcmFtJiZKbi52aWV3ZXIuZmlsdGVyLnZhbHMubGVuZ3RoPDEmJihhLnZhbHM9ZC52YWxzLEpuLnZpZXdlci5maWx0ZXIudmFscz1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGQudmFscykpKX0pfSkoKX1vbkF1dG9jb21wbGV0ZUxvYWRpbmdNb3JlKGEsZCxoLGYpe3Ro'@; put 'aXMuZ2V0VmFsdWVzTG9hZE1vcmUoYSxkLGgsZil9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5nZXRGcm9tR2xvYmFscygpLHNldFRpbWVvdXQoKCk9PntsZXQgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjdmFsc192YXJfaWQwXzAiKTthJiZhLmZvY3VzKCl9LDUwMCl9bmdPbkRlc3Ry'@; put 'b3koKXt0aGlzLmNvbHVtbnNTdWImJnRoaXMuY29sdW1uc1N1Yi51bnN1YnNjcmliZSgpLHRoaXMudmFsdWVzU3ViJiZ0aGlzLnZhbHVlc1N1Yi51bnN1YnNjcmliZSgpfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpKCRlKEloKSwkZShtYyksJGUo'@; put 'YnUpLCRlKHhvKSl9fXN0YXRpY3t0aGlzLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJhcHAtcXVlcnkiXV0saW5wdXRzOntjYWNoaW5nOiJjYWNoaW5nIix2aWV3Ym94SWQ6InZpZXdib3hJZCJ9LGZlYXR1cmVzOlt1YShbe3Byb3ZpZGU6V2YsdXNlVmFsdWU6ImVuLUdCIn1d'@; put 'KV0sZGVjbHM6MzgsdmFyczoxMSxjb25zdHM6W1sicGlja2VyIiwiIl0sWyJub3RQaWNrZXIiLCIiXSxbIm5vdFBpY2tlclJhbmdlIiwiIl0sWyJjaGVja2JveFZhbHVlcyIsIiJdLFsxLCJjbHItZmxleC1yb3ciLCJjbHItZm9ybS1jb250cm9sIiwibS0wIl0sWzEsImNsci1jb250cm9sLWNv'@; put 'bnRhaW5lciJdLFsiY2xyQ2hlY2tib3giLCIiLCJ0eXBlIiwiY2hlY2tib3giLDMsIm5nTW9kZWxDaGFuZ2UiLCJuZ01vZGVsIl0sWzEsImNsci1jb250cm9sLWxhYmVsIl0sWzEsImNsci1jb250cm9sLWNvbnRhaW5lciIsIm1sLTE1Il0sWyJjbHJDaGVja2JveCIsIiIsInR5cGUiLCJjaGVj'@; put 'a2JveCIsImlkIiwidXNlUGlja2VycyIsMywibmdNb2RlbENoYW5nZSIsImNoYW5nZSIsIm5nTW9kZWwiXSxbMSwiY2xyLXJvdyJdLFsxLCJzZWxlY3QiLCJjbHItY29sLW1kLTIiLCJtYi0zMCJdLFsiY2xyU2VsZWN0IiwiIiwzLCJuZ01vZGVsQ2hhbmdlIiwiZGlzYWJsZWQiLCJuZ01vZGVs'@; put 'Il0sWzMsInNlbGVjdGVkIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiY2xyLWNvbC1tZC0xMCIsIm1iLTMwIl0sWzEsImxpbmUtbnVtYmVycyIsImxhbmd1YWdlLW1hcmt1cCJdLFsiY2xhc3MiLCJwcm9ncmVzU3RhdGljIHByb2dyZXNzIGxvb3AiLDQsIm5nSWYiXSxbMSwibGFuZ3VhZ2Ut'@; put 'c3FsIl0sWzEsImNvbnRlbnQiXSxbMSwiY2xhdXNlcy1jb250YWluZXIiLCJjbHItY29sLW1kLTEyIl0sWzQsIm5nSWYiXSxbImNsYXNzIiwiY2xhdXNlLXJvdyIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzMsInNlbGVjdGVkIl0sWzEsInByb2dyZXNTdGF0aWMiLCJwcm9ncmVzcyIsImxvb3Ai'@; put 'XSxbMSwiY2xhdXNlLXJvdyJdLFsxLCJjbGF1c2UtbG9naWMiLCJjbHItY29sLW1kLTIiXSxbMSwic2VsZWN0Il0sWyJjbHJTZWxlY3QiLCIiLDMsIm5nTW9kZWxDaGFuZ2UiLCJuZ01vZGVsIiwiZGlzYWJsZWQiXSxbImNsYXNzIiwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1ibG9jayBtdC0xMCIs'@; put 'MywiY2xpY2siLDQsIm5nSWYiXSxbMSwiY2xhdXNlLXF1ZXJ5IiwiY2xyLWNvbC1tZC0xMCJdLFsic2hhcGUiLCJ0aW1lcyIsInNpemUiLCIzNiIsImNsYXNzIiwicmVtb3ZlLWdyb3VwLWNsYXVzZS1idXR0b24iLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNsci1yb3ciLDMsImlu'@; put 'dmFsaWQtY2xhdXNlIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiYnRuIiwiYnRuLXByaW1hcnkiLCJidG4tYmxvY2siLCJtdC0xMCIsMywiY2xpY2siXSxbInNoYXBlIiwicGx1cyJdLFsic2hhcGUiLCJ0aW1lcyIsInNpemUiLCIzNiIsMSwicmVtb3ZlLWdyb3VwLWNsYXVzZS1idXR0b24i'@; put 'LDMsImNsaWNrIl0sWzEsInZhcmlhYmxlLWNvbCIsImZvcm0tZ3JvdXAiLCJjbHItY29sLW1kLTMiXSxbMSwiZGF0YWxpc3Qtd3JhcHBlciJdLFsibGFiZWwiLCJWYXJpYWJsZSIsMywidmFsdWVDaGFuZ2UiLCJvbklucHV0RXZlbnQiLCJpZCIsImlucHV0SWQiLCJlbWl0T25seVNlbGVjdGVk'@; put 'IiwidmFsdWUiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsIm9wZXJhdG9yLWNvbCIsImZvcm0tZ3JvdXAiLCJjbHItY29sLW1kLTMiXSxbImNsclNlbGVjdCIsIiIsMywibmdNb2RlbENoYW5nZSIsIm5nTW9kZWwiXSxbImNsYXNzIiwidmFsdWUtY29sIGZvcm0tZ3JvdXAgY2xyLWNvbC1t'@; put 'ZC0zIiw0LCJuZ1ZhciJdLFsxLCJjbGF1c2UtYnV0dG9ucyIsImNsci1jb2wtbWQtMiIsImJ0bi1ncm91cCJdLFsxLCJidG4iLCJidG4td2FybmluZyIsImJ0bi1ibG9jayIsMywiY2xpY2siLCJkaXNhYmxlZCJdLFsic2hhcGUiLCJtaW51cyJdLFsxLCJidG4iLCJidG4tc3VjY2VzcyIsImJ0'@; put 'bi1ibG9jayIsMywiY2xpY2siXSxbMSwidmFsdWUtY29sIiwiZm9ybS1ncm91cCIsImNsci1jb2wtbWQtMyJdLFsiY2xhc3MiLCJjaGVja2JveC12YWxzIiw0LCJuZ0lmIl0sWyJjbGFzcyIsInNpbmdsZS1maWVsZC12YWxzIiw0LCJuZ0lmIl0sWyJjbGFzcyIsInJhbmdlLXZhbHMiLDQsIm5n'@; put 'SWYiXSxbImNsYXNzIiwiY29udGFpbnMtdmFscyIsNCwibmdJZiJdLFsxLCJjaGVja2JveC12YWxzIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tbGluayIsMywiY2xpY2siXSxbNCwibmdUZW1wbGF0ZU91dGxldCIsIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0Il0sWzEsInNpbmds'@; put 'ZS1maWVsZC12YWxzIl0sWzEsInJhbmdlLXZhbHMiXSxbMSwiZnJvbSJdLFsxLCJ0byJdLFsxLCJjb250YWlucy12YWxzIl0sWyJ0eXBlIiwidGV4dCIsMSwiaW5wdXQtdmFsIiwzLCJuZ01vZGVsQ2hhbmdlIiwibmdNb2RlbCJdLFszLCJuZ1N3aXRjaCJdLFs0LCJuZ1N3aXRjaENhc2UiXSxb'@; put 'ImxhYmVsIiwiVmFsdWUiLCJ0eXBlIiwiZGF0ZSIsMywidmFsdWVDaGFuZ2UiLCJkaXNhYmxlU29mdHNlbGVjdCIsImlucHV0SWQiLCJ2YWx1ZSJdLFsibGFiZWwiLCJWYWx1ZSIsInR5cGUiLCJkYXRlIiwzLCJ2YWx1ZUNoYW5nZSIsIm9uSW5wdXRFdmVudCIsImRpc2FibGVTb2Z0c2VsZWN0'@; put 'IiwiaW5wdXRJZCIsInZhbHVlIl0sWyJ0eXBlIiwidGltZSIsMywidmFsdWVDaGFuZ2UiLCJvbklucHV0RXZlbnQiLCJkaXNhYmxlU29mdHNlbGVjdCIsImlucHV0SWQiLCJ2YWx1ZSJdLFsibGFiZWwiLCJWYWx1ZSIsInR5cGUiLCJ0aW1lIiwzLCJvbklucHV0RXZlbnQiLCJkaXNhYmxlU29m'@; put 'dHNlbGVjdCIsImlucHV0SWQiLCJ2YWx1ZSJdLFsibGFiZWwiLCJWYWx1ZSIsMywic2VsZWN0ZWRMYWJlbENoYW5nZSIsInZhbHVlQ2hhbmdlIiwib25JbnB1dEV2ZW50Iiwib25BdXRvY29tcGxldGVMb2FkaW5nTW9yZSIsInNlY29uZExhYmVsIiwiZW1pdE9ubHlTZWxlY3RlZCIsImlucHV0'@; put 'SWQiLCJ2YWx1ZSIsImVuYWJsZUxvYWRNb3JlIl0sWzMsInZhbHVlIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMywidmFsdWUiXSxbMywidmFsdWUiLDQsIm5nSWYiXSxbImxhYmVsIiwiVmFsdWUiLDMsInZhbHVlQ2hhbmdlIiwib25JbnB1dEV2ZW50Iiwib25BdXRvY29tcGxldGVMb2FkaW5n'@; put 'TW9yZSIsImlucHV0SWQiLCJ2YWx1ZSIsImVuYWJsZUxvYWRNb3JlIiwiZGlzYWJsZWQiXSxbMSwiaW4tdmFsdWVzLW1vZGFsIiwzLCJjbHJNb2RhbE9wZW4iLCJjbHJNb2RhbENsb3NhYmxlIl0sWzEsIm1vZGFsLXRpdGxlIl0sWzEsIm1vZGFsLWJvZHkiXSxbImNsYXNzIiwibm8tdmFsdWVz'@; put 'Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsImZvcm0tYmxvY2siLDQsIm5nSWYiXSxbMSwibW9kYWwtZm9vdGVyIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tb3V0bGluZSIsMywiY2xpY2siXSxbMSwibm8tdmFsdWVzIl0sWzEsImZvcm0tYmxvY2siXSxbInR5cGUiLCJjaGVja2JveCIs'@; put 'ImNsckNoZWNrYm94IiwiIiwzLCJuZ01vZGVsQ2hhbmdlIiwibmdNb2RlbCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihkLGgpe2lmKDEmZCl7Y29uc3QgZj1PbigpO2RlKDAsImRpdiIsNCkoMSwiZGl2Iiw1KSgyLCJjbHItY2hlY2tib3gtd3JhcHBlciIpKDMsImlucHV0Iiw2KSxwaSgibmdNb2Rl'@; put 'bENoYW5nZSIsZnVuY3Rpb24oTSl7cmV0dXJuIHd0KGYpLGdpKGguZHluYW1pY1doZXJlQ2xhdXNlLE0pfHwoaC5keW5hbWljV2hlcmVDbGF1c2U9TSksQ3QoTSl9KSxoZSgpLGRlKDQsImxhYmVsIiw3KSxPZSg1LCJEeW5hbWljIHdoZXJlIGNsYXVzZSIpLGhlKCkoKSgpLGRlKDYsImRpdiIs'@; put 'OCkoNywiY2xyLWNoZWNrYm94LXdyYXBwZXIiKSg4LCJpbnB1dCIsOSkscGkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKE0pe3JldHVybiB3dChmKSxnaShoLnVzZVBpY2tlcnMsTSl8fChoLnVzZVBpY2tlcnM9TSksQ3QoTSl9KSxGdCgiY2hhbmdlIixmdW5jdGlvbigpe3JldHVybiB3dChm'@; put 'KSxDdChoLnVzZVBpY2tlcnNDaGFuZ2UoKSl9KSxoZSgpLGRlKDksImxhYmVsIiw3KSxPZSgxMCwiIFVzZSBwaWNrZXJzICIpLGhlKCkoKSgpKCksZGUoMTEsImRpdiIsMTApKDEyLCJkaXYiLDExKSgxMywiY2xyLXNlbGVjdC1jb250YWluZXIiKSgxNCwibGFiZWwiKSxPZSgxNSwiR3JvdXAg'@; put 'bG9naWMiKSxoZSgpLGRlKDE2LCJzZWxlY3QiLDEyKSxwaSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oTSl7cmV0dXJuIHd0KGYpLGdpKGguZ3JvdXBMb2dpYyxNKXx8KGguZ3JvdXBMb2dpYz1NKSxDdChNKX0pLEZ0KCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbigpe3JldHVybiB3dChmKSxD'@; put 'dChoLnNldEdyb3VwTG9naWMoaC5ncm91cExvZ2ljKSl9KSxndCgxNyxDNnQsMiwyLCJvcHRpb24iLDEzKSxoZSgpKCkoKSxkZSgxOCwiZGl2IiwxNCkoMTksInByZSIsMTUpLE9lKDIwLCIgICAgICAiKSxndCgyMSxTNnQsNCwwLCJkaXYiLDE2KSxPZSgyMiwiXG5cbiAgICAgICIpLGRlKDIz'@; put 'LCJjb2RlIiwxNyksT2UoMjQpLGhlKCksT2UoMjUsIlxuICAgICIpLGhlKCkoKSgpLGRlKDI2LCJkaXYiLDE4KSgyNywiZGl2IiwxOSksZ3QoMjgsTTZ0LDEsMCwiZGl2IiwyMCkoMjksQjZ0LDE1LDgsImRpdiIsMjEpLGhlKCkoKSxndCgzMCxaNnQsNCw0LCJuZy10ZW1wbGF0ZSIsbnVsbCww'@; put 'LGdjKSgzMixYNnQsMyw3LCJuZy10ZW1wbGF0ZSIsbnVsbCwxLGdjKSgzNCxKNnQsMiw1LCJuZy10ZW1wbGF0ZSIsbnVsbCwyLGdjKSgzNixuOHQsOSw0LCJuZy10ZW1wbGF0ZSIsbnVsbCwzLGdjKX0yJmQmJihmZSgzKSxmaSgibmdNb2RlbCIsaC5keW5hbWljV2hlcmVDbGF1c2UpLGZlKDUp'@; put 'LGZpKCJuZ01vZGVsIixoLnVzZVBpY2tlcnMpLGZlKDgpLE1lKCJkaXNhYmxlZCIsKG51bGw9PWguY2xhdXNlc3x8bnVsbD09aC5jbGF1c2VzLnF1ZXJ5T2JqP251bGw6aC5jbGF1c2VzLnF1ZXJ5T2JqLmxlbmd0aCk8MSksZmkoIm5nTW9kZWwiLGguZ3JvdXBMb2dpYyksZmUoKSxNZSgibmdG'@; put 'b3JPZiIsaC5sb2dpY09wZXJhdG9ycyksZmUoNCksTWUoIm5nSWYiLGgud2hlcmVDbGF1c2VMb2FkaW5nKSxmZSgzKSxTcihoLndoZXJlQ2xhdXNlKSxmZSgzKSxUcigiY2xyLWNvbC1tZC0xMCIsKG51bGw9PWguY2xhdXNlc3x8bnVsbD09aC5jbGF1c2VzLnF1ZXJ5T2JqP251bGw6aC5jbGF1'@; put 'c2VzLnF1ZXJ5T2JqLmxlbmd0aCk+MSksZmUoKSxNZSgibmdJZiIsKG51bGw9PWguY2xhdXNlc3x8bnVsbD09aC5jbGF1c2VzLnF1ZXJ5T2JqP251bGw6aC5jbGF1c2VzLnF1ZXJ5T2JqLmxlbmd0aCk+MSksZmUoKSxNZSgibmdGb3JPZiIsaC5jbGF1c2VzLnF1ZXJ5T2JqKSl9LGRlcGVuZGVu'@; put 'Y2llczpbUXMsYmEsQjEseDIsZHAsT2wscnUsWXUsY28sSWQsRmIseGgsRTcsWmIsRDIsSTIsR2wsTWQsazIsdGwsV28sRzZlLEV3LG02dCx2NnRdLGVuY2Fwc3VsYXRpb246Mn0pfX1yZXR1cm4gY30pKCksaTQ9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe31vbkNsaWNrKGEpe2EudGFy'@; put 'Z2V0LmZvY3VzKCl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NWRpcj1Fcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJhcHBTdGVhbEZvY3VzIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihkLGgpezEmZCYm'@; put 'RnQoImNsaWNrIixmdW5jdGlvbih2KXtyZXR1cm4gaC5vbkNsaWNrKHYpfSl9fSl9fXJldHVybiBjfSkoKTtjb25zdCByOHQ9WyJzZWFyY2hMaWJUcmVlSW5wdXQiXTtmdW5jdGlvbiBpOHQoYyxsKXsxJmMmJld0KDAsImNsci1pY29uIiwxMSl9ZnVuY3Rpb24gYTh0KGMsbCl7aWYoMSZjKXtj'@; put 'b25zdCBhPU9uKCk7ZGUoMCwiY2xyLWljb24iLDEyKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7d3QoYSk7Y29uc3QgaD1MZSgyKTtyZXR1cm4gaC5saWJyYXJpZXNTZWFyY2g9IiIsQ3QoaC5saWJyYXJ5T25GaWx0ZXIoKSl9KSxoZSgpfX1mdW5jdGlvbiBzOHQoYyxsKXtpZigxJmMpe2NvbnN0'@; put 'IGE9T24oKTtkZSgwLCJjbHItdHJlZS1ub2RlIiw2KSgxLCJkaXYiLDcpKDIsImlucHV0Iiw4LDApLHBpKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihoKXt3dChhKTtjb25zdCBmPUxlKCk7cmV0dXJuIGdpKGYubGlicmFyaWVzU2VhcmNoLGgpfHwoZi5saWJyYXJpZXNTZWFyY2g9aCksQ3Qo'@; put 'aCl9KSxGdCgia2V5dXAiLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKCkubGlicmFyeU9uRmlsdGVyKCkpfSksaGUoKSxndCg0LGk4dCwxLDAsImNsci1pY29uIiw5KSg1LGE4dCwxLDAsImNsci1pY29uIiwxMCksaGUoKSgpfWlmKDImYyl7Y29uc3QgYT1kYSgzKSxkPUxlKCk7ZmUo'@; put 'MiksZmkoIm5nTW9kZWwiLGQubGlicmFyaWVzU2VhcmNoKSxmZSgyKSxNZSgibmdJZiIsYS52YWx1ZS5sZW5ndGg8MSksZmUoKSxNZSgibmdJZiIsYS52YWx1ZS5sZW5ndGg+MCl9fWZ1bmN0aW9uIG84dChjLGwpezEmYyYmV3QoMCwiY2xyLWljb24iLDExKX1mdW5jdGlvbiBsOHQoYyxsKXtp'@; put 'ZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJjbHItaWNvbiIsMTIpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKSxMZSgpO2NvbnN0IGg9ZGEoMyksZj1MZSgyKS4kaW1wbGljaXQsdj1MZSgpO3JldHVybiBoLnZhbHVlPSIiLGYuc2VhcmNoU3RyaW5nPSIiLEN0KHYudHJlZU9uRmlsdGVy'@; put 'KGYsInRhYmxlcy5UQUJMRU5BTUUiKSl9KSxoZSgpfX1mdW5jdGlvbiBjOHQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJjbHItdHJlZS1ub2RlIiw2KSgxLCJkaXYiLDcpKDIsImlucHV0IiwxOCwyKSxwaSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oaCl7d3QoYSk7Y29uc3Qg'@; put 'Zj1MZSgyKS4kaW1wbGljaXQ7cmV0dXJuIGdpKGYuc2VhcmNoU3RyaW5nLGgpfHwoZi5zZWFyY2hTdHJpbmc9aCksQ3QoaCl9KSxGdCgia2V5dXAiLGZ1bmN0aW9uKCl7d3QoYSk7Y29uc3QgaD1MZSgyKS4kaW1wbGljaXQ7cmV0dXJuIEN0KExlKCkudHJlZU9uRmlsdGVyKGgsInRhYmxlcyIp'@; put 'KX0pLGhlKCksZ3QoNCxvOHQsMSwwLCJjbHItaWNvbiIsOSkoNSxsOHQsMSwwLCJjbHItaWNvbiIsMTApLGhlKCkoKX1pZigyJmMpe2NvbnN0IGE9ZGEoMyksZD1MZSgyKS4kaW1wbGljaXQ7ZmUoMiksZmkoIm5nTW9kZWwiLGQuc2VhcmNoU3RyaW5nKSxmZSgyKSxNZSgibmdJZiIsYS52YWx1'@; put 'ZS5sZW5ndGg8MSksZmUoKSxNZSgibmdJZiIsYS52YWx1ZS5sZW5ndGg+MCl9fWZ1bmN0aW9uIHU4dChjLGwpezEmYyYmV3QoMCwiY2xyLWljb24iLDI2KX1mdW5jdGlvbiBkOHQoYyxsKXsxJmMmJld0KDAsImNsci1pY29uIiwyNyl9ZnVuY3Rpb24gaDh0KGMsbCl7MSZjJiYoZGUoMCwic3Bh'@; put 'biIpLE9lKDEsIiBUbyB1bmxvY2sgYWxsIHRhYmxlcywgY29udGFjdCBzdXBwb3J0QGRhdGFjb250cm9sbGVyLmlvICIpLGhlKCkpfWZ1bmN0aW9uIGY4dChjLGwpe2lmKDEmYyYmKGRlKDAsImNsci10b29sdGlwLWNvbnRlbnQiLDI4KSxndCgxLGg4dCwyLDAsInNwYW4iLDI1KSxoZSgpKSwy'@; put 'JmMpe2NvbnN0IGE9TGUoKS5uZ1ZhcjtmZSgpLE1lKCJuZ0lmIixhKX19ZnVuY3Rpb24gcDh0KGMsbCl7MSZjJiZXdCgwLCJjbHItaWNvbiIsMTEpfWZ1bmN0aW9uIGc4dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImNsci1pY29uIiwxMiksRnQoImNsaWNrIixmdW5jdGlvbigp'@; put 'e3d0KGEpLExlKCk7Y29uc3QgaD1kYSgzKSxmPUxlKDMpLiRpbXBsaWNpdCx2PUxlKDMpO3JldHVybiBoLnZhbHVlPSIiLGYuc2VhcmNoU3RyaW5nPSIiLEN0KHYudHJlZU9uRmlsdGVyKGYsImNvbHVtbnMuQ09MTkFNRSIpKX0pLGhlKCl9fWZ1bmN0aW9uIG04dChjLGwpe2lmKDEmYyl7Y29u'@; put 'c3QgYT1PbigpO2RlKDAsImNsci10cmVlLW5vZGUiLDYpKDEsImRpdiIsNykoMiwiaW5wdXQiLDI5LDIpLHBpKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihoKXt3dChhKTtjb25zdCBmPUxlKDMpLiRpbXBsaWNpdDtyZXR1cm4gZ2koZi5zZWFyY2hTdHJpbmcsaCl8fChmLnNlYXJjaFN0cmlu'@; put 'Zz1oKSxDdChoKX0pLEZ0KCJrZXl1cCIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKDMpLiRpbXBsaWNpdDtyZXR1cm4gQ3QoTGUoMykudHJlZU9uRmlsdGVyKGgsImNvbHVtbnMuQ09MTkFNRSIpKX0pLGhlKCksZ3QoNCxwOHQsMSwwLCJjbHItaWNvbiIsOSkoNSxnOHQsMSwwLCJjbHIt'@; put 'aWNvbiIsMTApLGhlKCkoKX1pZigyJmMpe2NvbnN0IGE9ZGEoMyksZD1MZSgzKS4kaW1wbGljaXQ7ZmUoMiksZmkoIm5nTW9kZWwiLGQuc2VhcmNoU3RyaW5nKSxmZSgyKSxNZSgibmdJZiIsYS52YWx1ZS5sZW5ndGg8MSksZmUoKSxNZSgibmdJZiIsYS52YWx1ZS5sZW5ndGg+MCl9fWZ1bmN0'@; put 'aW9uIHY4dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImNsci10cmVlLW5vZGUiKSgxLCJidXR0b24iLDMwKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7Y29uc3QgaD13dChhKS4kaW1wbGljaXQsZj1MZSgzKS4kaW1wbGljaXQsdj1MZSgyKS4kaW1wbGljaXQ7cmV0dXJuIEN0KExl'@; put 'KCkuY29sdW1uT25DbGljayhoLHYsZikpfSksV3QoMiwiY2xyLWljb24iLDMxKSxPZSgzKSxoZSgpKCl9aWYoMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0LGQ9TGUoNik7ZmUoKSxUcigiY29sdW1uLWFjdGl2ZSIsZC5saWJDb2x1bW5BY3RpdmUoYS5DT0xVUkkpKSxmZSgyKSxMcigiICIsYS5D'@; put 'T0xOQU1FLCIgIil9fWZ1bmN0aW9uIHk4dChjLGwpe2lmKDEmYyYmKGFpKDApLGd0KDEsbTh0LDYsMywiY2xyLXRyZWUtbm9kZSIsMykoMix2OHQsNCwzLCJjbHItdHJlZS1ub2RlIiw0KSxzaSgpKSwyJmMpe2NvbnN0IGE9TGUoMikuJGltcGxpY2l0O2ZlKCksTWUoIm5nSWYiLGEuY29sdW1u'@; put 'cyksZmUoKSxNZSgibmdGb3JPZiIsYS5jb2x1bW5zKX19ZnVuY3Rpb24gYjh0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiY2xyLXRvb2x0aXAiKSgxLCJidXR0b24iLDIwKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7Y29uc3QgaD13dChhKS5uZ1ZhcixmPUxlKCkuJGltcGxpY2l0'@; put 'LHY9TGUoMikuJGltcGxpY2l0LE09TGUoKTtyZXR1cm4gQ3QoaD8iIjpNLnRhYmxlT25DbGljayhmLlRBQkxFVVJJLGYsdikpfSksYWkoMiwyMSksZ3QoMyx1OHQsMSwwLCJjbHItaWNvbiIsMjIpKDQsZDh0LDEsMCwiY2xyLWljb24iLDIzKSxzaSgpLE9lKDUpLGhlKCksZ3QoNixmOHQsMiwx'@; put 'LCJjbHItdG9vbHRpcC1jb250ZW50IiwyNCkoNyx5OHQsMywyLCJuZy1jb250YWluZXIiLDI1KSxoZSgpfWlmKDImYyl7Y29uc3QgYT1sLm5nVmFyLGQ9TGUoKS4kaW1wbGljaXQsaD1MZSgyKS4kaW1wbGljaXQsZj1MZSgpO2ZlKCksVHIoImRjLWxvY2tlZC1jb250cm9sIixhKSgiYWN0aXZl'@; put 'IixmLmxpYlRhYkFjdGl2ZShoLkxJQlJBUllSRUYsZCkpLGZlKCksTWUoIm5nU3dpdGNoIixkLmluY2x1ZGVzKCItRkMiKSksZmUoKSxNZSgibmdTd2l0Y2hDYXNlIiwhMCksZmUoKSxNZSgibmdTd2l0Y2hDYXNlIiwhMSksZmUoKSxMcigiICIsZC5yZXBsYWNlKCItRkMiLCIiKSwiICIpLGZl'@; put 'KDIpLE1lKCJuZ0lmIixmLmhhc0NvbHVtbnMpfX1mdW5jdGlvbiBfOHQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJjbHItdHJlZS1ub2RlIiwxNCksRnQoImNsaWNrIixmdW5jdGlvbihoKXtjb25zdCBmPXd0KGEpLiRpbXBsaWNpdCx2PUxlKDIpLiRpbXBsaWNpdDtyZXR1cm4g'@; put 'Q3QoTGUoKS50cmVlTm9kZUNsaWNrZWQoaCxmLHYudGFibGVzKSl9KSxwaSgiY2xyRXhwYW5kZWRDaGFuZ2UiLGZ1bmN0aW9uKGgpe2NvbnN0IGY9d3QoYSkuJGltcGxpY2l0O3JldHVybiBnaShmLmV4cGFuZGVkLGgpfHwoZi5leHBhbmRlZD1oKSxDdChoKX0pLGd0KDEsYjh0LDgsOSwiY2xy'@; put 'LXRvb2x0aXAiLDE5KSxoZSgpfWlmKDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdCxkPWwuaW5kZXgsaD1MZSgzKTtUcigiY2xyLWV4cGFuZGVkIixhLmV4cGFuZGVkKSxmaSgiY2xyRXhwYW5kZWQiLGEuZXhwYW5kZWQpLE1lKCJjbHJMb2FkaW5nIixhLmxvYWRpbmdDb2x1bW5zJiYhYS5jb2x1'@; put 'bW5zKSxmZSgpLE1lKCJuZ1ZhciIsZCsxPmgubGljZW5jZVN0YXRlLnZhbHVlLnRhYmxlc19pbl9saWJyYXJ5X2xpbWl0KX19ZnVuY3Rpb24gdzh0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiY2xyLXRyZWUtbm9kZSIsMTQsMSksRnQoImNsaWNrIixmdW5jdGlvbihoKXt3dChh'@; put 'KTtjb25zdCBmPUxlKCkuJGltcGxpY2l0LHY9TGUoKTtyZXR1cm4gQ3Qodi50cmVlTm9kZUNsaWNrZWQoaCxmLHYubGlicmFyeUxpc3QpKX0pLHBpKCJjbHJFeHBhbmRlZENoYW5nZSIsZnVuY3Rpb24oaCl7d3QoYSk7Y29uc3QgZj1MZSgpLiRpbXBsaWNpdDtyZXR1cm4gZ2koZi5leHBhbmRl'@; put 'ZCxoKXx8KGYuZXhwYW5kZWQ9aCksQ3QoaCl9KSxkZSgyLCJwIiwxNSksRnQoImNsaWNrIixmdW5jdGlvbigpe3d0KGEpO2NvbnN0IGg9ZGEoMSksZj1MZSgpLiRpbXBsaWNpdCx2PUxlKCk7cmV0dXJuIHYubGliPWYuTElCUkFSWUlELEN0KHYubGlicmFyeU9uQ2xpY2sodi5saWJ8fCIiLGYs'@; put 'aCkpfSksV3QoMywiY2xyLWljb24iLDE2KSxPZSg0KSxoZSgpLGd0KDUsYzh0LDYsMywiY2xyLXRyZWUtbm9kZSIsMykoNixfOHQsMiw1LCJjbHItdHJlZS1ub2RlIiwxNyksaGUoKX1pZigyJmMpe2NvbnN0IGE9TGUoKS4kaW1wbGljaXQ7VHIoImNsci1leHBhbmRlZCIsYS5leHBhbmRlZCks'@; put 'ZmkoImNsckV4cGFuZGVkIixhLmV4cGFuZGVkKSxNZSgiY2xyTG9hZGluZyIsYS5sb2FkaW5nVGFibGVzJiYhYS50YWJsZXMpLGZlKDQpLExyKCIgIixhLkxJQlJBUllOQU1FLCIgIiksZmUoKSxNZSgibmdJZiIsYS50YWJsZXMpLGZlKCksTWUoIm5nRm9yT2YiLGEudGFibGVzKX19ZnVuY3Rp'@; put 'b24gQzh0KGMsbCl7aWYoMSZjJiYoYWkoMCksZ3QoMSx3OHQsNyw3LCJjbHItdHJlZS1ub2RlIiwxMyksc2koKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O2ZlKCksTWUoIm5nSWYiLCFhLmhpZGRlbiYmYS5pbkZvcmVncm91bmQpfX1mdW5jdGlvbiBTOHQoYyxsKXsxJmMmJihkZSgwLCJk'@; put 'aXYiLDMyKSgxLCJzcGFuIiwzMyksT2UoMiwiIExvYWRpbmcuLi4gIiksaGUoKSgpKX1sZXQgTTh0PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkKXt0aGlzLmhlbHBlclNlcnZpY2U9YSx0aGlzLmxpY2VuY2VTZXJ2aWNlPWQsdGhpcy5zZWFyY2hMaWJJbnB1dExpc3Q9bmV3IGxoLHRo'@; put 'aXMudGFibGVPbkNsaWNrRW1pdHRlcj1uZXcgS3IsdGhpcy5saWJyYXJ5T25DbGlja0VtaXR0ZXI9bmV3IEtyLHRoaXMuaGFzQ29sdW1ucz0hMSx0aGlzLnBhZ2luZz0hMCx0aGlzLmxpYnJhcmllc1NlYXJjaD0iIix0aGlzLmxpYj0iIix0aGlzLnRhYmxlPSIiLHRoaXMubGlicmFyaWVzUGFn'@; put 'aW5nPSExLHRoaXMubGljZW5jZVN0YXRlPXRoaXMubGljZW5jZVNlcnZpY2UubGljZW5jZVN0YXRlfW5nT25Jbml0KCl7fW5nQWZ0ZXJWaWV3SW5pdCgpe3NldFRpbWVvdXQoKCk9Pnt0aGlzLnNlYXJjaExpYklucHV0TGlzdC5maXJzdC5uYXRpdmVFbGVtZW50LmZvY3VzKCl9KX1uZ09uQ2hh'@; put 'bmdlcyhhKXthLmxpYnJhcnlMaXN0Py5jdXJyZW50VmFsdWUmJnRoaXMubGlicmFyeUxpc3QmJnRoaXMuaGVscGVyU2VydmljZS5kaXNwbGF5TGlicmFyaWVzKHRoaXMubGlicmFyeUxpc3QpfXRyZWVPbkZpbHRlcihhLGQpe3RoaXMuaGVscGVyU2VydmljZS50cmVlT25GaWx0ZXIoYSxkKX1s'@; put 'aWJyYXJ5T25GaWx0ZXIoKXt0aGlzLmhlbHBlclNlcnZpY2UubGlicmFyeU9uRmlsdGVyKHRoaXMubGlicmFyeUxpc3QsdGhpcy5saWJyYXJpZXNTZWFyY2gsIkxJQlJBUllOQU1FIiksSm4ubGluZWFnZS5saWJyYXJpZXNTZWFyY2g9dGhpcy5saWJyYXJpZXNTZWFyY2h9dHJlZU5vZGVDbGlj'@; put 'a2VkKGEsZCxoKXsiQ29sbGFwc2UiPT09YS50YXJnZXQudGl0bGUmJnRoaXMuY29sbGFwc2VUcmVlSXRlbXMoaCxkKX1saWJyYXJ5T25DbGljayhhLGQsaCl7ZC5pbkZvcmVncm91bmQ9ITA7Y29uc3QgZj0oKT0+c2V0VGltZW91dCgoKT0+aC5jb250ZW50Q29udGFpbmVyLm5hdGl2ZUVsZW1l'@; put 'bnQucGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmZvY3VzKCkpO2lmKGQudGFibGVzKWQuZXhwYW5kZWQ9IWQuZXhwYW5kZWQsdGhpcy5saWJyYXJ5T25DbGlja0VtaXR0ZXIuZW1pdCh7bGliaWQ6YSxsaWJyYXJ5OmQsdGFibGVzTG9hZGVkOiEwfSk7ZWxzZXtkLmxvYWRp'@; put 'bmdUYWJsZXM9ITAsdGhpcy5saWJyYXJ5T25DbGlja0VtaXR0ZXIuZW1pdCh7bGliaWQ6YSxsaWJyYXJ5OmQsdGFibGVzTG9hZGVkOiExfSk7Y29uc3Qgdj1zZXRJbnRlcnZhbCgoKT0+e2QubG9hZGluZ1RhYmxlc3x8KGYoKSxjbGVhckludGVydmFsKHYpKX0sNTAwKX1kLmV4cGFuZGVkJiZm'@; put 'KCksdGhpcy5jb2xsYXBzZVRyZWVJdGVtcyh0aGlzLmxpYnJhcnlMaXN0LGQpfXRhYmxlT25DbGljayhhLGQsaCl7dmFyIGY9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXtmLmhlbHBlclNlcnZpY2UuZGVib3VuY2VDYWxsKDUwLCgpPT57Zi5oYXNDb2x1bW5zPyhkLmNvbHVtbnM/KGQuZXhw'@; put 'YW5kZWQ9IWQuZXhwYW5kZWQsITA9PT1kLmV4cGFuZGVkJiYoZi50YWJsZT1hLGYudGFibGVPbkNsaWNrRW1pdHRlci5lbWl0KHt0YWJsZXVyaTphLGxpYlRhYmxlOmQsbGlicmFyeTpoLGNvbHVtbnNMb2FkZWQ6ITB9KSkpOihkLmV4cGFuZGVkPSFkLmV4cGFuZGVkLGQubG9hZGluZ0NvbHVt'@; put 'bnM9ITAsZi50YWJsZT1hLGYudGFibGVPbkNsaWNrRW1pdHRlci5lbWl0KHt0YWJsZXVyaTphLGxpYlRhYmxlOmQsbGlicmFyeTpoLGNvbHVtbnNMb2FkZWQ6ITF9KSksZi5jb2xsYXBzZVRyZWVJdGVtcyhoLnRhYmxlcyxkKSk6Zi50YWJsZU9uQ2xpY2tFbWl0dGVyLmVtaXQoe3RhYmxldXJp'@; put 'OmEsbGliVGFibGU6ZCxsaWJyYXJ5OmgsY29sdW1uc0xvYWRlZDohMX0pfSl9KSgpfWNvbHVtbk9uQ2xpY2soYSxkLGgpe3RoaXMubGliPWQuTElCUkFSWUlELHRoaXMudGFibGU9aC5UQUJMRVVSSSx0aGlzLmNvbHVtbj1hLkNPTFVSSX1saWJUYWJBY3RpdmUoYSxkKXtyZXR1cm4hKCF0aGlz'@; put 'LmxpYnx8IXRoaXMudGFibGUpJiZhPT09dGhpcy5saWImJmQ9PT10aGlzLnRhYmxlfWxpYkNvbHVtbkFjdGl2ZShhKXtpZighdGhpcy5jb2x1bW4pcmV0dXJuITE7bGV0IGQ9YS5zcGxpdCgiXFwiKSxoPXRoaXMuY29sdW1uLnNwbGl0KCJcXCIpO3JldHVybiBkW2QubGVuZ3RoLTFdPT1oW2gu'@; put 'bGVuZ3RoLTFdfWNvbGxhcHNlVHJlZUl0ZW1zKGEsZCl7YS5mb3JFYWNoKGg9PntKU09OLnN0cmluZ2lmeShoKSE9PUpTT04uc3RyaW5naWZ5KGQpJiYoaC5leHBhbmRlZD0hMSl9KX1sb2FkTW9yZUxpYnJhcmllcygpe3RoaXMubGlicmFyaWVzUGFnaW5nfHwodGhpcy5saWJyYXJpZXNQYWdp'@; put 'bmc9ITAsdGhpcy5oZWxwZXJTZXJ2aWNlLmRpc3BsYXlMaWJyYXJpZXModGhpcy5saWJyYXJ5TGlzdCwhMCksdGhpcy5saWJyYXJpZXNQYWdpbmc9ITEpfWhhbmRsZVNjcm9sbChhKXtsZXQgZD1hLnRhcmdldDtkJiZkLnNjcm9sbFRvcD49ZC5zY3JvbGxIZWlnaHQtZC5vZmZzZXRIZWlnaHQt'@; put 'MTAmJnRoaXMubG9hZE1vcmVMaWJyYXJpZXMoKX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKSgkZShidSksJGUoYzEpKX19c3RhdGlje3RoaXMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImRjLXRyZWUiXV0sdmlld1F1ZXJ5OmZ1'@; put 'bmN0aW9uKGQsaCl7aWYoMSZkJiZGYShyOHQsNSksMiZkKXtsZXQgZjt5aShmPWJpKCkpJiYoaC5zZWFyY2hMaWJJbnB1dExpc3Q9Zil9fSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oZCxoKXsxJmQmJkZ0KCJzY3JvbGwiLGZ1bmN0aW9uKHYpe3JldHVybiBoLmhhbmRsZVNjcm9sbCh2KX0pfSxp'@; put 'bnB1dHM6e2hhc0NvbHVtbnM6Imhhc0NvbHVtbnMiLHBhZ2luZzoicGFnaW5nIixsaWJyYXJ5TGlzdDoibGlicmFyeUxpc3QifSxvdXRwdXRzOnt0YWJsZU9uQ2xpY2tFbWl0dGVyOiJ0YWJsZU9uQ2xpY2tFbWl0dGVyIixsaWJyYXJ5T25DbGlja0VtaXR0ZXI6ImxpYnJhcnlPbkNsaWNrRW1p'@; put 'dHRlciJ9LGZlYXR1cmVzOltibF0sZGVjbHM6NCx2YXJzOjMsY29uc3RzOltbInNlYXJjaExpYlRyZWVJbnB1dCIsIiJdLFsibGliVHJlZU5vZGUiLCIiXSxbInNlYXJjaFRyZWVJbnB1dCIsIiJdLFsiY2xhc3MiLCJzZWFyY2gtbm9kZSIsNCwibmdJZiJdLFs0LCJuZ0ZvciIsIm5nRm9yT2Yi'@; put 'XSxbImNsYXNzIiwidy0xMDAgdGV4dC1jZW50ZXIiLDQsIm5nSWYiXSxbMSwic2VhcmNoLW5vZGUiXSxbMSwidHJlZS1zZWFyY2gtd3JhcHBlciJdLFsiYXBwU3RlYWxGb2N1cyIsIiIsImNscklucHV0IiwiIiwicGxhY2Vob2xkZXIiLCJMaWJyYXJpZXMiLCJuYW1lIiwiaW5wdXQiLCJhdXRv'@; put 'Y29tcGxldGUiLCJvZmYiLDMsIm5nTW9kZWxDaGFuZ2UiLCJrZXl1cCIsIm5nTW9kZWwiXSxbInNoYXBlIiwic2VhcmNoIiw0LCJuZ0lmIl0sWyJzaGFwZSIsInRpbWVzIiwzLCJjbGljayIsNCwibmdJZiJdLFsic2hhcGUiLCJzZWFyY2giXSxbInNoYXBlIiwidGltZXMiLDMsImNsaWNrIl0s'@; put 'WzMsImNsckV4cGFuZGVkIiwiY2xyTG9hZGluZyIsImNsci1leHBhbmRlZCIsImNsaWNrIiwiY2xyRXhwYW5kZWRDaGFuZ2UiLDQsIm5nSWYiXSxbMywiY2xpY2siLCJjbHJFeHBhbmRlZENoYW5nZSIsImNsckV4cGFuZGVkIiwiY2xyTG9hZGluZyJdLFsxLCJtLTAiLCJjdXJzb3ItcG9pbnRl'@; put 'ciIsMywiY2xpY2siXSxbInNoYXBlIiwicmFjay1zZXJ2ZXIiXSxbMywiY2xyRXhwYW5kZWQiLCJjbHJMb2FkaW5nIiwiY2xyLWV4cGFuZGVkIiwiY2xpY2siLCJjbHJFeHBhbmRlZENoYW5nZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJhcHBTdGVhbEZvY3VzIiwiIiwiY2xySW5wdXQiLCIi'@; put 'LCJwbGFjZWhvbGRlciIsIlRhYmxlcyIsIm5hbWUiLCJpbnB1dCIsImF1dG9jb21wbGV0ZSIsIm9mZiIsMywibmdNb2RlbENoYW5nZSIsImtleXVwIiwibmdNb2RlbCJdLFs0LCJuZ1ZhciJdLFsiY2xyVG9vbHRpcFRyaWdnZXIiLCIiLDEsImNsci10cmVlbm9kZS1saW5rIiwzLCJjbGljayJd'@; put 'LFszLCJuZ1N3aXRjaCJdLFsic2hhcGUiLCJib2x0Iiw0LCJuZ1N3aXRjaENhc2UiXSxbInNoYXBlIiwidGFibGUiLDQsIm5nU3dpdGNoQ2FzZSJdLFsiY2xyUG9zaXRpb24iLCJib3R0b20tcmlnaHQiLCJjbHJTaXplIiwibGciLDQsImNscklmT3BlbiJdLFs0LCJuZ0lmIl0sWyJzaGFwZSIs'@; put 'ImJvbHQiXSxbInNoYXBlIiwidGFibGUiXSxbImNsclBvc2l0aW9uIiwiYm90dG9tLXJpZ2h0IiwiY2xyU2l6ZSIsImxnIl0sWyJhcHBTdGVhbEZvY3VzIiwiIiwiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsIkNvbHVtbnMiLCJuYW1lIiwiaW5wdXQiLCJhdXRvY29tcGxldGUiLCJvZmYi'@; put 'LDMsIm5nTW9kZWxDaGFuZ2UiLCJrZXl1cCIsIm5nTW9kZWwiXSxbMSwiY2xyLXRyZWVub2RlLWxpbmsiLDMsImNsaWNrIl0sWyJzaGFwZSIsIm9iamVjdHMiXSxbMSwidy0xMDAiLCJ0ZXh0LWNlbnRlciJdLFsxLCJzcGlubmVyIiwic3Bpbm5lci1zbSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihk'@; put 'LGgpezEmZCYmKGRlKDAsImNsci10cmVlIiksZ3QoMSxzOHQsNiwzLCJjbHItdHJlZS1ub2RlIiwzKSgyLEM4dCwyLDEsIm5nLWNvbnRhaW5lciIsNCksaGUoKSxndCgzLFM4dCwzLDAsImRpdiIsNSkpLDImZCYmKGZlKCksTWUoIm5nSWYiLGgubGlicmFyeUxpc3QpLGZlKCksTWUoIm5nRm9y'@; put 'T2YiLGgubGlicmFyeUxpc3QpLGZlKCksTWUoIm5nSWYiLGgubGlicmFyaWVzUGFnaW5nKSl9LGRlcGVuZGVuY2llczpbUXMsYmEseDIsZHAsQWgsUGQsaGcsT2wsVjAsUDIsWTEsdjcsYjcseTcsR2wsdGwsV28sRXcsaTRdLGVuY2Fwc3VsYXRpb246Mn0pfX1yZXR1cm4gY30pKCk7Y29uc3Qg'@; put 'eDh0PVsicmVzaXplQm94Il0sRTh0PVsiZHJhZ0hhbmRsZUNvcm5lciJdLFQ4dD0oYyxsLGEpPT4oe2NvbEhlYWRlcnNIaWRkZW46Yyxjb2xIZWFkZXJzVmlzaWJsZTpsLGhlYWRlclBrczphfSksQTh0PShjLGwpPT4oe3g6Yyx5Omx9KSxrOHQ9KCk9Pih7fSk7ZnVuY3Rpb24gRDh0KGMsbCl7'@; put 'aWYoMSZjJiYoZGUoMCwic3BhbiIsMzcpLE9lKDEpLGhlKCkpLDImYyl7Y29uc3QgYT1MZSgpO2ZlKCksQnUoIlRvIHVubG9jayBtb3JlIHRoZW4gIixhLmxpY2VuY2VTdGF0ZS52YWx1ZS52aWV3Ym94X2xpbWl0LCIgIiwxPT09YS5saWNlbmNlU3RhdGUudmFsdWUudmlld2JveF9saW1pdD8i'@; put 'dmlld2JveCI6InZpZXdib3hlcyIsIiwgY29udGFjdCBzdXBwb3J0QGRhdGFjb250cm9sbGVyLmlvIil9fWZ1bmN0aW9uIEk4dChjLGwpezEmYyYmKGRlKDAsImRpdiIsMzgpLFd0KDEsImNsci1zcGlubmVyIiwzOSksaGUoKSl9ZnVuY3Rpb24gUjh0KGMsbCl7MSZjJiYoZGUoMCwicCIsNDAp'@; put 'LE9lKDEsIiBWaWV3Ym94IG9wZW4gbGltaXQgcmVhY2hlZCAiKSxoZSgpKX1mdW5jdGlvbiBMOHQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJkYy10cmVlIiw0MSksRnQoImxpYnJhcnlPbkNsaWNrRW1pdHRlciIsZnVuY3Rpb24oaCl7cmV0dXJuIHd0KGEpLEN0KExlKCkubGli'@; put 'cmFyeU9uQ2xpY2soaCkpfSkoInRhYmxlT25DbGlja0VtaXR0ZXIiLGZ1bmN0aW9uKGgpe3JldHVybiB3dChhKSxDdChMZSgpLnRhYmxlT25DbGljayhoKSl9KSxoZSgpfTImYyYmTWUoImxpYnJhcnlMaXN0IixMZSgpLmxpYnJhcmllcyl9ZnVuY3Rpb24gTzh0KGMsbCl7MSZjJiYoZGUoMCwi'@; put 'cCIsNDIpLE9lKDEsIiBQaWNrIHRhYmxlIGZyb20gdGhlIGxpc3Qgb24gdGhlIGxlZnQgIiksaGUoKSl9ZnVuY3Rpb24gUDh0KGMsbCl7MSZjJiZXdCgwLCJjbHItc3Bpbm5lciIsNTApfWZ1bmN0aW9uIEY4dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImEiLDE3KSxGdCgiY2xp'@; put 'Y2siLGZ1bmN0aW9uKGgpe3d0KGEpO2NvbnN0IGY9TGUoKS4kaW1wbGljaXQsdj1MZSgpO3JldHVybiB2Lm1pbmltaXplKGYpLEN0KHYuc3RvcFByb3BhZ2F0aW9uKGgpKX0pLFd0KDEsImNsci1pY29uIiwyMCksZGUoMiwic3BhbiIsMTkpLE9lKDMsIk1pbmltaXplIHZpZXdib3giKSxoZSgp'@; put 'KCl9fWZ1bmN0aW9uIEg4dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImEiLDE3KSxGdCgiY2xpY2siLGZ1bmN0aW9uKGgpe3d0KGEpO2NvbnN0IGY9TGUoKS4kaW1wbGljaXQsdj1MZSgpO3JldHVybiB2LnJlc3RvcmUoZiksQ3Qodi5zdG9wUHJvcGFnYXRpb24oaCkpfSksV3Qo'@; put 'MSwiY2xyLWljb24iLDIxKSxkZSgyLCJzcGFuIiwxOSksT2UoMywiUmVzdG9yZSB2aWV3Ym94IiksaGUoKSgpfX1mdW5jdGlvbiBOOHQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJkaXYiLDQzKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7Y29uc3QgaD13dChhKS4kaW1wbGljaXQ7'@; put 'cmV0dXJuIEN0KExlKCkuc2VsZWN0Vmlld2JveChoKSl9KSxkZSgxLCJkaXYiLDQ0KSxPZSgyKSxndCgzLFA4dCwxLDAsImNsci1zcGlubmVyIiw0NSksaGUoKSxkZSg0LCJkaXYiKSg1LCJhIiw0NiksRnQoImNsaWNrIixmdW5jdGlvbihoKXtjb25zdCBmPXd0KGEpLiRpbXBsaWNpdCx2PUxl'@; put 'KCk7cmV0dXJuIHYucmVzZXRQb3NTaXplKGYpLEN0KHYuc3RvcFByb3BhZ2F0aW9uKGgpKX0pLFd0KDYsImNsci1pY29uIiw0NyksZGUoNywic3BhbiIsMTkpLE9lKDgsIlJlc2V0IHBvc2l0aW9uIGFuZCBzaXplIiksaGUoKSgpLGd0KDksRjh0LDQsMCwiYSIsNDgpKDEwLEg4dCw0LDAsImEi'@; put 'LDQ4KSxkZSgxMSwiYSIsMTcpLEZ0KCJjbGljayIsZnVuY3Rpb24oaCl7Y29uc3QgZj13dChhKS4kaW1wbGljaXQsdj1MZSgpO3JldHVybiB2LmNsb3NlKGYpLEN0KHYuc3RvcFByb3BhZ2F0aW9uKGgpKX0pLFd0KDEyLCJjbHItaWNvbiIsNDkpLGRlKDEzLCJzcGFuIiwxOSksT2UoMTQsIkNs'@; put 'b3NlIHZpZXdib3giKSxoZSgpKCkoKSgpfWlmKDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdCxkPUxlKCk7VHIoInNlbGVjdGVkIiwobnVsbD09ZC5zZWxlY3RlZFZpZXdib3g/bnVsbDpkLnNlbGVjdGVkVmlld2JveC5pZCk9PT1hLmlkKSxmZSgyKSxaZigiICMiLGEuaWQsIiAiLGEubGlicmFy'@; put 'eSwiLiIsYS50YWJsZSwiICIpLGZlKCksTWUoIm5nSWYiLGEubG9hZGluZ0RhdGEpLGZlKDIpLFRyKCJkaXNhYmxlZCIsMD09PWEueCYmMD09PWEueSksZmUoNCksTWUoIm5nSWYiLCFhLm1pbmltaXplZCksZmUoKSxNZSgibmdJZiIsYS5taW5pbWl6ZWQpfX1mdW5jdGlvbiBWOHQoYyxsKXtp'@; put 'ZigxJmMmJihkZSgwLCJvcHRpb24iKSxPZSgxKSxoZSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7ZmUoKSxMcigiICIsYSwiICIpfX1mdW5jdGlvbiBCOHQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTthaSgwKSxkZSgxLCJkaXYiLDUzKSgyLCJhcHAtYXV0b2NvbXBsZXRlIiw1NCww'@; put 'KSxGdCgidmFsdWVDaGFuZ2UiLGZ1bmN0aW9uKGgpe3d0KGEpO2NvbnN0IGY9ZGEoMyksdj1MZSgpLm5nVmFyO3JldHVybiBDdChMZSgpLm9uQ29sc2VhcmNoQ2hhbmdlKGYsaCx2LmNvbEhlYWRlcnNIaWRkZW4pKX0pLGd0KDQsVjh0LDIsMSwib3B0aW9uIiw1NSksaGUoKSgpLHNpKCl9aWYo'@; put 'MiZjKXtjb25zdCBhPUxlKCkubmdWYXI7ZmUoMiksTWUoImlucHV0SWQiLCJ2aWV3Ym94LWNvbHVtbi1zZWFyY2giKSgiZW1pdE9ubHlTZWxlY3RlZCIsITApLGZlKDIpLE1lKCJuZ0Zvck9mIixhLmNvbEhlYWRlcnNIaWRkZW4pfX1mdW5jdGlvbiBqOHQoYyxsKXsxJmMmJld0KDAsImNsci1p'@; put 'Y29uIiw2MSl9ZnVuY3Rpb24gejh0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiY2xyLWljb24iLDYyKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7d3QoYSk7Y29uc3QgaD1MZSgpLiRpbXBsaWNpdDtyZXR1cm4gQ3QoTGUoMykub25Db2xSZW1vdmUoaCkpfSksaGUoKX19ZnVuY3Rp'@; put 'b24gVTh0KGMsbCl7aWYoMSZjJiYoZGUoMCwiZGl2Iiw1OCkoMSwic3BhbiIpLE9lKDIpLGd0KDMsajh0LDEsMCwiY2xyLWljb24iLDU5KSxoZSgpLGd0KDQsejh0LDEsMCwiY2xyLWljb24iLDYwKSxoZSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQsZD1MZSgyKS5uZ1ZhcixoPUxlKCk7'@; put 'd3JlKCJjb2wtYm94IGNvbHVtbi0iLGEsIiIpLFRyKCJjdXJzb3ItZGVmYXVsdC1pIixkLmhlYWRlclBrcy5pbmNsdWRlcyhhKSkoInByaW1hcnlLZXlIZWFkZXJTdHlsZSIsZC5oZWFkZXJQa3MuaW5jbHVkZXMoYSkpLE1lKCJjZGtEcmFnRGF0YSIsYSkoImNka0RyYWdEaXNhYmxlZCIsZC5o'@; put 'ZWFkZXJQa3MuaW5jbHVkZXMoYSkpLGZlKDIpLEJ1KCIgIixhLCIgIiwibnVtIj09PShudWxsPT1oLnNlbGVjdGVkVmlld2JveFRhYmxlfHxudWxsPT1oLnNlbGVjdGVkVmlld2JveFRhYmxlLmhvdFRhYmxlP251bGw6aC5zZWxlY3RlZFZpZXdib3hUYWJsZS5ob3RUYWJsZS4kZGF0YWZvcm1h'@; put 'dHMudmFyc1thXS50eXBlKT8iKG51bWVyaWMpIjoiIiwiICIpLGZlKCksTWUoIm5nSWYiLGQuaGVhZGVyUGtzLmluY2x1ZGVzKGEpKSxmZSgpLE1lKCJuZ0lmIiwhZC5oZWFkZXJQa3MuaW5jbHVkZXMoYSkpfX1mdW5jdGlvbiBaOHQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTthaSgwKSxk'@; put 'ZSgxLCJwIiwxMCksT2UoMiwiQ29sdW1ucyBUbyBEaXNwbGF5IChkcmFnIGFuZCByZS1vcmRlcikiKSxoZSgpLGRlKDMsImRpdiIsNTYpLEZ0KCJjZGtEcm9wTGlzdERyb3BwZWQiLGZ1bmN0aW9uKGgpe3JldHVybiB3dChhKSxDdChMZSgyKS5jb2x1bW5zRHJvcChoKSl9KSxndCg0LFU4dCw1'@; put 'LDEzLCJkaXYiLDU3KSxoZSgpLHNpKCl9aWYoMiZjKXtjb25zdCBhPUxlKCkubmdWYXI7ZmUoMyksTWUoImNka0Ryb3BMaXN0RGF0YSIsYS5jb2xIZWFkZXJzVmlzaWJsZSksZmUoKSxNZSgibmdGb3JPZiIsYS5jb2xIZWFkZXJzVmlzaWJsZSl9fWZ1bmN0aW9uIFc4dChjLGwpe2lmKDEmYyYm'@; put 'KGRlKDAsImRpdiIsNTEpLGd0KDEsQjh0LDUsMywibmctY29udGFpbmVyIiw1MikoMixaOHQsNSwyLCJuZy1jb250YWluZXIiLDUyKSxoZSgpKSwyJmMpe2NvbnN0IGE9bC5uZ1ZhcjtmZSgpLE1lKCJuZ0lmIixhLmNvbEhlYWRlcnNIaWRkZW4pLGZlKCksTWUoIm5nSWYiLGEuY29sSGVhZGVy'@; put 'c1Zpc2libGUpfX1mdW5jdGlvbiBZOHQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJjbHItaWNvbiIsODYpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKCkuJGltcGxpY2l0O3JldHVybiBDdChMZSgpLmNvbGxhcHNlKGgpKX0pLGhlKCl9fWZ1bmN0aW9u'@; put 'IEc4dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImNsci1pY29uIiw4NyksRnQoImNsaWNrIixmdW5jdGlvbigpe3d0KGEpO2NvbnN0IGg9TGUoKS4kaW1wbGljaXQ7cmV0dXJuIEN0KExlKCkuZXhwYW5kKGgpKX0pLGhlKCl9fWZ1bmN0aW9uICQ4dChjLGwpe2lmKDEmYyl7Y29u'@; put 'c3QgYT1PbigpO2RlKDAsImNsci1pY29uIiw4OCksRnQoImNsaWNrIixmdW5jdGlvbigpe3d0KGEpO2NvbnN0IGg9TGUoKS4kaW1wbGljaXQsZj1kYSgxNik7cmV0dXJuIEN0KExlKCkuc2VhcmNoVGFibGUoZixoKSl9KSxoZSgpfX1mdW5jdGlvbiBLOHQoYyxsKXsxJmMmJihkZSgwLCJzcGFu'@; put 'Iiw4OSksT2UoMSwiIExvYWRpbmcuLi4gIiksaGUoKSl9ZnVuY3Rpb24gWDh0KGMsbCl7MSZjJiYoZGUoMCwic3BhbiIsOTApLE9lKDEsIkxvYWRpbmcuLi4iKSxoZSgpKX1mdW5jdGlvbiBxOHQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJjbHItaWNvbiIsOTEpLEZ0KCJjbGlj'@; put 'ayIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKCkuJGltcGxpY2l0LGY9ZGEoMTYpO3JldHVybiBMZSgpLnJlbG9hZFRhYmxlRGF0YShoKSxDdChmLnZhbHVlPSIiKX0pLGhlKCl9fWZ1bmN0aW9uIEo4dChjLGwpezEmYyYmKGRlKDAsImRpdiIsOTUpLFd0KDEsImNsci1zcGlubmVyIiwz'@; put 'OSksaGUoKSl9ZnVuY3Rpb24gUTh0KGMsbCl7aWYoMSZjJiZXdCgwLCJob3QtdGFibGUiLDk2KSwyJmMpe2NvbnN0IGE9TGUoMikuJGltcGxpY2l0O01lKCJzZXR0aW5ncyIsTGUoKS52aWV3Ym94SG90U2V0dGluZ3MuZ2V0KGEuaWQpfHxabygyLGs4dCkpKCJpZCIsImhvdFRhYmxlXyIrYS5p'@; put 'ZCl9fWZ1bmN0aW9uIGU3dChjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIsOTIpLGd0KDEsSjh0LDIsMCwiZGl2Iiw5MykoMixROHQsMSwzLCJob3QtdGFibGUiLDk0KSxoZSgpKSwyJmMpe2NvbnN0IGE9bC5uZ1ZhcixkPUxlKCkuJGltcGxpY2l0LGg9TGUoKTtOMSgiZGlzcGxheSIsZC5jb2xs'@; put 'YXBzZWQ/Im5vbmUiOiIiKSxmZSgpLE1lKCJuZ0lmIixkLmxvYWRpbmdEYXRhJiZhPDApLGZlKCksTWUoIm5nSWYiLGE+LTEmJmgudmlld2JveEhvdFNldHRpbmdzLmdldChkLmlkKSl9fWZ1bmN0aW9uIHQ3dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImRpdiIsNjMsMSksRnQo'@; put 'Im1vdXNlZG93biIsZnVuY3Rpb24oKXtjb25zdCBoPXd0KGEpLiRpbXBsaWNpdDtyZXR1cm4gQ3QoTGUoKS5mb2N1c1ZpZXdib3goaCkpfSkoImNka0RyYWdFbmRlZCIsZnVuY3Rpb24oaCl7Y29uc3QgZj13dChhKS4kaW1wbGljaXQ7cmV0dXJuIEN0KExlKCkudmlld2JveERyYWdFbmRlZCho'@; put 'LGYpKX0pLGRlKDIsImRpdiIsNjQpKDMsInNwYW4iLDY1KSxPZSg0KSxoZSgpLGRlKDUsImRpdiIsNjYpLGd0KDYsWTh0LDEsMCwiY2xyLWljb24iLDY3KSg3LEc4dCwxLDAsImNsci1pY29uIiw2OCksZGUoOCwiY2xyLWljb24iLDY5KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7Y29uc3QgaD13'@; put 'dChhKS4kaW1wbGljaXQ7cmV0dXJuIEN0KExlKCkubWluaW1pemUoaCkpfSksaGUoKSxkZSg5LCJjbHItaWNvbiIsNzApLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtjb25zdCBoPXd0KGEpLiRpbXBsaWNpdDtyZXR1cm4gQ3QoTGUoKS5jbG9zZShoKSl9KSxoZSgpKCkoKSxkZSgxMCwic3BhbiIs'@; put 'NzEsMiksRnQoImNka0RyYWdNb3ZlZCIsZnVuY3Rpb24oaCl7Y29uc3QgZj13dChhKS4kaW1wbGljaXQsdj1kYSgxKSxNPWRhKDExKTtyZXR1cm4gQ3QoTGUoKS5kcmFnTW92ZShNLHYsZixoKSl9KSxoZSgpLGRlKDEyLCJmb3JtIiw3MikoMTMsImRpdiIsNzMpKDE0LCJkaXYiLDc0KSgxNSwi'@; put 'aW5wdXQiLDc1LDMpLEZ0KCJrZXl1cC5lbnRlciIsZnVuY3Rpb24oKXtjb25zdCBoPXd0KGEpLiRpbXBsaWNpdCxmPWRhKDE2KTtyZXR1cm4gQ3QoTGUoKS5zZWFyY2hUYWJsZShmLGgpKX0pLGhlKCksZ3QoMTcsJDh0LDEsMCwiY2xyLWljb24iLDc2KSgxOCxLOHQsMiwwLCJzcGFuIiw3Nyks'@; put 'aGUoKSxkZSgxOSwiY2xyLWNoZWNrYm94LWNvbnRhaW5lciIpKDIwLCJjbHItY2hlY2tib3gtd3JhcHBlciIpKDIxLCJpbnB1dCIsNzgpLHBpKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihoKXtjb25zdCBmPXd0KGEpLiRpbXBsaWNpdDtyZXR1cm4gZ2koZi5zZWFyY2hOdW1lcmljLGgpfHwo'@; put 'Zi5zZWFyY2hOdW1lcmljPWgpLEN0KGgpfSksaGUoKSxkZSgyMiwibGFiZWwiKSxPZSgyMywiTnVtZXJpYyIpLGhlKCkoKSgpKCksZGUoMjQsImRpdiIsNDQpLGd0KDI1LFg4dCwyLDAsInNwYW4iLDc5KSgyNixxOHQsMSwwLCJjbHItaWNvbiIsODApLGRlKDI3LCJhIiw4MSksRnQoImNsaWNr'@; put 'IixmdW5jdGlvbigpe2NvbnN0IGg9d3QoYSkuJGltcGxpY2l0LGY9ZGEoMTYpO3JldHVybiBMZSgpLm9wZW5GaWx0ZXIoaCksQ3QoZi52YWx1ZT0iIil9KSxXdCgyOCwiY2xyLWljb24iLDgyKSxkZSgyOSwic3BhbiIsODMpLE9lKDMwKSxoZSgpKCksZGUoMzEsImNsci1pY29uIiw4NCksRnQo'@; put 'ImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IGg9d3QoYSkuJGltcGxpY2l0O3JldHVybiBDdChMZSgpLm9wZW5UYWJsZUVkaXQoaCkpfSksaGUoKSgpKCksZ3QoMzIsZTd0LDMsNCwiZGl2Iiw4NSksaGUoKX1pZigyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQsZD1MZSgpO04xKCJkaXNwbGF5Iixh'@; put 'Lm1pbmltaXplZD8ibm9uZSI6IiIpKCJ3aWR0aCIsYS53aWR0aCwicHgiKSgiaGVpZ2h0IixhLmhlaWdodCwicHgiKSgicG9pbnRlci1ldmVudHMiLGEuY29sbGFwc2VkPyJub25lIjoiIikoImJveC1zaGFkb3ciLGEuY29sbGFwc2VkPyJub25lIjoiIiksVHIoImZvY3VzZWQiLGEuZm9jdXNl'@; put 'ZCksTWUoImNka0RyYWdGcmVlRHJhZ1Bvc2l0aW9uIixjcCgzNCxBOHQsYS54LGEueSkpKCJpZCIsInZpZXdib3hfIithLmlkKSxmZSg0KSxaZigiICMiLGEuaWQsIiAiLGEubGlicmFyeSwiLiIsYS50YWJsZSwiICIpLGZlKDIpLE1lKCJuZ0lmIiwhYS5jb2xsYXBzZWQpLGZlKCksTWUoIm5n'@; put 'SWYiLGEuY29sbGFwc2VkKSxmZSgzKSxNZSgiaWQiLCJoYW5kbGVfdmlld2JveF8iK2EuaWQpLGZlKDIpLE4xKCJkaXNwbGF5IixhLmNvbGxhcHNlZD8ibm9uZSI6IiIpLGZlKDMpLE1lKCJ0eXBlIixhLnNlYXJjaE51bWVyaWM/Im51bWJlciI6InRleHQiKSxmZSgyKSxNZSgibmdJZiIsIWEu'@; put 'c2VhcmNoTG9hZGluZyksZmUoKSxNZSgibmdJZiIsYS5zZWFyY2hMb2FkaW5nKSxmZSgzKSxmaSgibmdNb2RlbCIsYS5zZWFyY2hOdW1lcmljKSxmZSg0KSxNZSgibmdJZiIsYS5sb2FkaW5nRGF0YSksZmUoKSxNZSgibmdJZiIsIWEubG9hZGluZ0RhdGEpLGZlKDIpLFRyKCJmaWx0ZXItYWN0'@; put 'aXZlIiwiMCIhPT1hLmZpbHRlcl9wayksZmUoMiksU3IoYS5maWx0ZXJUZXh0KSxmZSgpLFRyKCJkaXNhYmxlZCIsIWQudGFibGVFZGl0RXhpc3RzKGEpKSxmZSgpLE1lKCJuZ1ZhciIsZC5nZXRWaWV3Ym94VGFibGVJbmRleChhKSl9fWZ1bmN0aW9uIG43dChjLGwpe2lmKDEmYyYmV3QoMCwi'@; put 'YXBwLXF1ZXJ5Iiw5Nyw0KSwyJmMpe2NvbnN0IGE9TGUoKTtNZSgidmlld2JveElkIixudWxsPT1hLmZpbHRlcmluZ1ZpZXdib3g/bnVsbDphLmZpbHRlcmluZ1ZpZXdib3guaWQpfX1sZXQgJDZlPSgoKT0+e2NsYXNzIGN7Z2V0IHZpZXdib3hNb2RhbCgpe3JldHVybiB0aGlzLl92aWV3Ym94'@; put 'TW9kYWx9c2V0IHZpZXdib3hNb2RhbChhKXtpZighMT09PXRoaXMubGljZW5jZVN0YXRlLnZhbHVlLnZpZXdib3gmJmEpcmV0dXJuIHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dEZW1vTGltaXRNb2RhbCgiVmlld2JveGVzIiksdm9pZCB0aGlzLnZpZXdib3hNb2RhbENoYW5nZS5lbWl0KCExKTt0'@; put 'aGlzLl92aWV3Ym94TW9kYWw9YSxhJiZ0aGlzLnVuc2V0U2VsZWN0ZWRWaWV3Ym94KCl9Y29uc3RydWN0b3IoYSxkLGgsZix2LE0sSSxHLHJlLHVlKXt0aGlzLm5nWm9uZT1hLHRoaXMubGljZW5jZVNlcnZpY2U9ZCx0aGlzLnNhc1NlcnZpY2U9aCx0aGlzLmV2ZW50U2VydmljZT1mLHRoaXMu'@; put 'c2FzU3RvcmVTZXJ2aWNlPXYsdGhpcy5sb2dnZXJTZXJ2aWNlPU0sdGhpcy5oZWxwZXJTZXJ2aWNlPUksdGhpcy5yb3V0ZXI9Ryx0aGlzLmFjdGl2YXRlZFJvdXRlPXJlLHRoaXMuY2RmPXVlLHRoaXMuX3ZpZXdib3hNb2RhbD0hMSx0aGlzLnZpZXdib3hNb2RhbENoYW5nZT1uZXcgS3IsdGhp'@; put 'cy5saWJpbmZvPW51bGwsdGhpcy5saWJyYXJpZXNMb2FkaW5nPSEwLHRoaXMudmlld2JveGVzPVtdLHRoaXMuZGVmYXVsdENvbmZpZz17aWQ6LTEsbGlicmFyeToiIix0YWJsZToiIix3aWR0aDo1MDAsaGVpZ2h0OjMwMCx4OjAseToxNTAsY29sdW1uczpbXX0sdGhpcy5zYXNqc0NvbmZpZz1u'@; put 'ZXcgeWguU0FTanNDb25maWcsdGhpcy5ob3RUYWJsZURlZmF1bHQ9e2RhdGE6W10saGVhZGVyUGtzOltdLCRkYXRhZm9ybWF0czp7fSxhbGxDb2xIZWFkZXJzOltdLGNvbEhlYWRlcnNIaWRkZW46W10sY29sSGVhZGVyc1Zpc2libGU6W10sY29sSGVhZGVyczpbXSxjb250ZXh0TWVudTpbImNv'@; put 'cHlfd2l0aF9jb2x1bW5faGVhZGVycyIsImNvcHlfY29sdW1uX2hlYWRlcnNfb25seSJdLGNvcHlQYXN0ZTp7Y29weUNvbHVtbkhlYWRlcnM6ITAsY29weUNvbHVtbkhlYWRlcnNPbmx5OiEwfSxjb2x1bW5zOltdLGNvbHM6W10saGVpZ2h0OjIwMCxzZXR0aW5nczp7fSxoaWRkZW5Db2x1bW5z'@; put 'OiEwLG1hbnVhbENvbHVtbk1vdmU6ITEsYWZ0ZXJHZXRDb2xIZWFkZXI6dm9pZCAwLGxpY2Vuc2VLZXk6dm9pZCAwLGRyb3Bkb3duTWVudTp2b2lkIDB9LHRoaXMudmlld2JveEhvdFNldHRpbmdzPW5ldyBNYXAsdGhpcy52aWV3Ym94VGFibGVzPVtdLHRoaXMuZmlsdGVyPSExLHRoaXMuZmls'@; put 'dGVyTG9hZGluZz0hMSx0aGlzLm51bGxWYXJpYWJsZXM9ITEsdGhpcy5saWNlbmNlU3RhdGU9dGhpcy5saWNlbmNlU2VydmljZS5saWNlbmNlU3RhdGUsdGhpcy5JbmZpbml0eT0xLzAsdGhpcy5tYXhWaWV3Ym94ZXM9dGhpcy5saWNlbmNlU3RhdGUudmFsdWUudmlld2JveF9saW1pdD09PTEv'@; put 'MD82OnRoaXMubGljZW5jZVN0YXRlLnZhbHVlLnZpZXdib3hfbGltaXR8fDZ9bmdPbkluaXQoKXt0aGlzLnNhc1N0b3JlU2VydmljZS52aWV3TGlicygpLnRoZW4oZD0+e3RoaXMubGlicmFyaWVzPWQuc2FzbGlic30pLmNhdGNoKGQ9Pnt0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoZCl9KS5m'@; put 'aW5hbGx5KCgpPT57dGhpcy5saWJyYXJpZXNMb2FkaW5nPSExfSksdGhpcy5fcXVlcnk9dGhpcy5zYXNTdG9yZVNlcnZpY2UucXVlcnkuc3Vic2NyaWJlKGQ9Pnt0aGlzLmNsYXVzZXM9ZC5vYmosdGhpcy5maWx0ZXJMaWJkcz1kLmxpYmRzfSksdGhpcy5zYXNqc0NvbmZpZz10aGlzLnNhc1Nl'@; put 'cnZpY2UuZ2V0U2FzanNDb25maWcoKSx0aGlzLmxpY2VuY2VTZXJ2aWNlLmhvdF9saWNlbnNlX2tleS5zdWJzY3JpYmUoZD0+e3RoaXMuaG90VGFibGVEZWZhdWx0LmxpY2Vuc2VLZXk9ZH0pO2NvbnN0IGE9dGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy52aWV3Ym94'@; put 'ZXM7YSYmKCExPT09dGhpcy5saWNlbmNlU3RhdGUudmFsdWUudmlld2JveD8oc2V0VGltZW91dCgoKT0+dGhpcy5ldmVudFNlcnZpY2Uuc2hvd0RlbW9MaW1pdE1vZGFsKCJMaW5raW5nIFZpZXdib3hlcyIpKSx0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSx7cmVsYXRpdmVUbzp0aGlzLmFjdGl2'@; put 'YXRlZFJvdXRlLHF1ZXJ5UGFyYW1zOnt9fSkpOih0aGlzLnZpZXdib3hlcz10aGlzLmRlY29kZVVybERhdGEoYSksc2V0VGltZW91dCgoKT0+e3RoaXMuc2V0QWxsSGFuZGxlVHJhbnNmb3JtKCl9KSkpLHRoaXMucmVMb2FkVmlld2JveHRhYmxlcyh0aGlzLnZpZXdib3hlcyl9bmdBZnRlclZp'@; put 'ZXdJbml0KCl7c2V0VGltZW91dCgoKT0+e3RoaXMuc2V0QWxsSGFuZGxlVHJhbnNmb3JtKCksdGhpcy52aWV3Ym94ZXMuZm9yRWFjaChhPT57dGhpcy5nZXRWaWV3Ym94VGFibGVJbmRleChhKT4tMSYmdGhpcy5yZWZyZXNoVGFibGVBZnRlclJlc2l6ZShhKX0pfSwxZTMpfWdldCB2aWV3Ym94'@; put 'TGltaXRSZWFjaGVkKCl7cmV0dXJuIHRoaXMudmlld2JveGVzLmxlbmd0aD49dGhpcy5tYXhWaWV3Ym94ZXN9Y2xyTW9kYWxPcGVuQ2hhbmdlKGEpe3RoaXMudmlld2JveE1vZGFsQ2hhbmdlLmVtaXQoYSl9bGlicmFyeU9uQ2xpY2soYSl7YS50YWJsZXNMb2FkZWR8fHRoaXMubG9hZFRhYmxl'@; put 'cyhhLmxpYnJhcnkuTElCUkFSWVJFRixhLmxpYnJhcnkpfXRhYmxlT25DbGljayhhKXt2YXIgZD10aGlzO3JldHVybiBRKGZ1bmN0aW9uKigpe2lmKGQudmlld2JveExpbWl0UmVhY2hlZClyZXR1cm47Y29uc3QgaD17Li4uZC5kZWZhdWx0Q29uZmlnLHRhYmxlOmEubGliVGFibGUsbGlicmFy'@; put 'eTphLmxpYnJhcnkuTElCUkFSWU5BTUUsbG9hZGluZ0RhdGE6ITAsZmlsdGVyX3BrOiIwIixpZDpkLnZpZXdib3hlcy5sZW5ndGgrMSx4OndpbmRvdy5pbm5lcldpZHRoLWQuZGVmYXVsdENvbmZpZy53aWR0aCx5OjE1MH07ZC52aWV3Ym94ZXMucHVzaChoKSxzZXRUaW1lb3V0KCgpPT57ZC5z'@; put 'ZXRBbGxIYW5kbGVUcmFuc2Zvcm0oKX0pO2NvbnN0IGY9YCR7YS5saWJyYXJ5LkxJQlJBUllSRUZ9LiR7YS5saWJUYWJsZX1gO3lpZWxkIGQubG9hZERhdGEoZixoKSxoLmxvYWRpbmdEYXRhPSExLGQuZXZlbnRTZXJ2aWNlLmRpc3BhdGNoRXZlbnQoInJlc2l6ZSIpLGQuc25hcFRvR3JpZCgp'@; put 'fSkoKX1sb2FkVGFibGVzKGEsZCl7dGhpcy5zYXNTdG9yZVNlcnZpY2Uudmlld1RhYmxlcyhhKS50aGVuKGg9PntsZXQgZj1oLm1wdGFibGVzLm1hcChmdW5jdGlvbih2KXtyZXR1cm4gdi5NRU1OQU1FfSk7dGhpcy5saWJpbmZvPWgubGliaW5mb3x8W10sdGhpcy50YWJsZXM9ZixkJiYoZC50'@; put 'YWJsZXM9ZixkLmxpYmluZm89dGhpcy5saWJpbmZvLGQubG9hZGluZ1RhYmxlcz0hMSxmLmxlbmd0aD4wJiYoZC5leHBhbmRlZD0hMCkpfSkuY2F0Y2goaD0+e3RoaXMubG9nZ2VyU2VydmljZS5lcnJvcihoKX0pfXJlbG9hZERhdGEoYSxkKXt2YXIgaD10aGlzO3JldHVybiBRKGZ1bmN0aW9u'@; put 'Kigpe3JldHVybiBuZXcgUHJvbWlzZSgoZix2KT0+e2xldCBNPWgudmlld2JveFRhYmxlcy5maW5kKEk9Pkkudmlld2JveElkPT09ZC5pZCk7aC5zYXNTdG9yZVNlcnZpY2Uudmlld0RhdGEoYSxwYXJzZUludChkLmZpbHRlcl9wa3x8IjAiKSkudGhlbihJPT57TSYmKE0uaG90VGFibGUuZGF0'@; put 'YT1JLnZpZXdkYXRhLGguY3JlYXRlVmlld2JveFRhYmxlU2V0dGluZ3MoZCkpLGYobnVsbCl9KS5jYXRjaCgoKT0+e3YoKX0pfSl9KSgpfWxvYWREYXRhKGEsZCl7dmFyIGg9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXtyZXR1cm4gbmV3IFByb21pc2UoKGYsdik9PntsZXQgTT0hMSxJPWgu'@; put 'dmlld2JveFRhYmxlcy5maW5kKEc9Pkcudmlld2JveElkPT09ZC5pZCk7SSYmKCIwIj09PWQuZmlsdGVyX3BrfHwhZC5maWx0ZXJfcGspJiZmKCksaC5zYXNTdG9yZVNlcnZpY2Uudmlld0RhdGEoYSxwYXJzZUludChkLmZpbHRlcl9wa3x8IjAiKSkudGhlbihHPT57ST9NPSEwOkk9e3ZpZXdi'@; put 'b3hJZDpkLmlkLHZpZXdib3hMaWJEYXRhc2V0OmEsaG90VGFibGU6Y0woaC5ob3RUYWJsZURlZmF1bHQpfSxJLmhvdFRhYmxlLmRhdGE9Ry52aWV3ZGF0YSxJLmhvdFRhYmxlLiRkYXRhZm9ybWF0cz1HLiR2aWV3ZGF0YSxJLmhvdFRhYmxlLmNvbHM9Ry5jb2xzLEdlZShJLmhvdFRhYmxlLmNv'@; put 'bHMsW10sRy4kdmlld2RhdGEpO2xldCByZT1bXSx1ZT1bXTtmb3IobGV0IHllIGluIEcudmlld2RhdGFbMF0peWUmJnVlLnB1c2goeWUpO2ZvcihsZXQgeWU9MDt5ZTx1ZS5sZW5ndGg7eWUrKylyZS5wdXNoKHtkYXRhOnVlW3llXX0pO0kuaG90VGFibGUuaGVhZGVyUGtzPWNMKEcuc2FzcGFy'@; put 'YW1zWzBdLlBLX0ZJRUxEUy5zcGxpdCgiICIpKSxJLmhvdFRhYmxlLmFsbENvbEhlYWRlcnM9dWUuZmlsdGVyKHllPT4hSS5ob3RUYWJsZS5oZWFkZXJQa3MuaW5jbHVkZXMoeWUpKSxJLmhvdFRhYmxlLmNvbEhlYWRlcnNIaWRkZW49Y0woSS5ob3RUYWJsZS5hbGxDb2xIZWFkZXJzKSxJLmhv'@; put 'dFRhYmxlLmNvbEhlYWRlcnNWaXNpYmxlPXVlLmZpbHRlcih5ZT0+SS5ob3RUYWJsZS5oZWFkZXJQa3MuaW5jbHVkZXMoeWUpKSxJLmhvdFRhYmxlLmNvbEhlYWRlcnM9dWUsSS5ob3RUYWJsZS5jb2x1bW5zPXJlLGQuY29sdW1ucyYmZC5jb2x1bW5zLmxlbmd0aD4wPyhJLmhvdFRhYmxlLm1h'@; put 'bnVhbENvbHVtbk1vdmU9ZC5jb2x1bW5zLGQuY29sdW1ucz8ubWFwKCh5ZSxFZSk9Pntjb25zdCBCZT11ZVt5ZV0sR2U9SS5ob3RUYWJsZS5jb2xIZWFkZXJzSGlkZGVuLmluZGV4T2YoQmUpO0dlPi0xJiYoSS5ob3RUYWJsZS5jb2xIZWFkZXJzSGlkZGVuLnNwbGljZShHZSwxKSxJLmhvdFRh'@; put 'YmxlLmNvbEhlYWRlcnNWaXNpYmxlW0VlXT1CZSl9KSk6SS5ob3RUYWJsZS5jb2xIZWFkZXJzVmlzaWJsZS5wdXNoKC4uLkkuaG90VGFibGUuY29sSGVhZGVyc0hpZGRlbi5zcGxpY2UoMCwxMCkpLEkuaG90VGFibGUuY29sSGVhZGVyc1Zpc2libGU9SS5ob3RUYWJsZS5jb2xIZWFkZXJzVmlz'@; put 'aWJsZS5maWx0ZXIoeWU9PnllKSxNfHxoLnZpZXdib3hUYWJsZXMucHVzaChJKSxkLnF1ZXJ5PWguaGVscGVyU2VydmljZS5kZWVwQ2xvbmUoRy5xdWVyeSksZC5maWx0ZXJUZXh0PUcuc2FzcGFyYW1zWzBdLkZJTFRFUl9URVhULGguY3JlYXRlVmlld2JveFRhYmxlU2V0dGluZ3MoZCksc2V0'@; put 'VGltZW91dCgoKT0+e2gudXBkYXRlSG90Q29sdW1ucyhJLmhvdFRhYmxlLmNvbEhlYWRlcnNIaWRkZW58fFtdLGQuaWQpLHNldFRpbWVvdXQoKCk9Pntjb25zdCB5ZT1oLmdldFZpZXdib3hIb3RJbnN0YW5jZShkLmlkKTt5ZSYmKHllLnVwZGF0ZVNldHRpbmdzKHttYW51YWxDb2x1bW5Nb3Zl'@; put 'OkkuaG90VGFibGUubWFudWFsQ29sdW1uTW92ZSxhZnRlckdldENvbEhlYWRlcjooRWUsQmUpPT57Y29uc3QgR2U9eWU/LmNvbFRvUHJvcChFZSk7R2UmJkkuaG90VGFibGUuaGVhZGVyUGtzLmluZGV4T2YoR2UpPi0xJiZCZS5jbGFzc0xpc3QuYWRkKCJwcmltYXJ5S2V5SGVhZGVyU3R5bGUi'@; put 'KSxCZS5jbGFzc0xpc3QuYWRkKEpuLmhhbmRzb250YWJsZS5kYXJrVGFibGVIZWFkZXJDbGFzcyl9fSkseWUucmVuZGVyKCkpLGguc2VsZWN0ZWRWaWV3Ym94JiZoLnJlc2V0U2VsZWN0ZWRWaWV3Ym94KGQpfSw1MDApfSwxMDApLGYoKX0pLmNhdGNoKEc9PntoLmxvZ2dlclNlcnZpY2UuZXJy'@; put 'b3IoRyksdigpfSl9KX0pKCl9cmVMb2FkVmlld2JveHRhYmxlcyhhKXthLm1hcChkPT57Y29uc3QgaD1gJHtkLmxpYnJhcnl9LiR7ZC50YWJsZX1gO2QubG9hZGluZ0RhdGE9ITAsdGhpcy5sb2FkRGF0YShoLGQpLnRoZW4oKCk9PntkLmxvYWRpbmdEYXRhPSExfSl9KX1tYXhXaWR0aENoZWtl'@; put 'cihhLGQpe3JldHVybiBhPjIwMD8yMDA6YX1nZXRWaWV3Ym94VGFibGVJbmRleChhKXtyZXR1cm4gdGhpcy52aWV3Ym94VGFibGVzLmZpbmRJbmRleChoPT5oLnZpZXdib3hJZD09PWEuaWQpfWNyZWF0ZVZpZXdib3hUYWJsZVNldHRpbmdzKGEpe2NvbnN0IGQ9dGhpcy5nZXRWaWV3Ym94VGFi'@; put 'bGVJbmRleChhKTtpZigtMT09PWQpcmV0dXJuIHZvaWQgdGhpcy52aWV3Ym94SG90U2V0dGluZ3Muc2V0KGEuaWQse30pO2NvbnN0IGg9dGhpcy52aWV3Ym94VGFibGVzW2RdLGY9dGhpcy5jYWxjdWxhdGVUYWJsZUhlaWdodChhKTt0aGlzLnZpZXdib3hIb3RTZXR0aW5ncy5zZXQoYS5pZCx7'@; put 'Y29sSGVhZGVyczpoLmhvdFRhYmxlLmNvbEhlYWRlcnMsY29sdW1uczpoLmhvdFRhYmxlLmNvbHVtbnMsaGVpZ2h0OmYscmVhZE9ubHk6ITAsbW9kaWZ5Q29sV2lkdGg6dGhpcy5tYXhXaWR0aENoZWtlcixjb3B5UGFzdGU6aC5ob3RUYWJsZS5jb3B5UGFzdGUsY29udGV4dE1lbnU6aC5ob3RU'@; put 'YWJsZS5jb250ZXh0TWVudSxtdWx0aUNvbHVtblNvcnRpbmc6ITAsdmlld3BvcnRSb3dSZW5kZXJpbmdPZmZzZXQ6NTAsZmlsdGVyczohMCxkcm9wZG93bk1lbnU6aC5ob3RUYWJsZS5kcm9wZG93bk1lbnUsc3RyZXRjaEg6ImFsbCIsY2VsbHM6aC5ob3RUYWJsZS5jZWxscyxtYXhSb3dzOmgu'@; put 'aG90VGFibGUubWF4Um93c3x8MS8wLG1hbnVhbENvbHVtblJlc2l6ZTohMCxyb3dIZWFkZXJzOiEwLGxpY2Vuc2VLZXk6aC5ob3RUYWJsZS5saWNlbnNlS2V5fSksc2V0VGltZW91dCgoKT0+e3RoaXMuY2RmLmRldGVjdENoYW5nZXMoKSxzZXRUaW1lb3V0KCgpPT57Y29uc3QgTT10aGlzLmdl'@; put 'dFZpZXdib3hIb3RJbnN0YW5jZShhLmlkKTtNJiYoTS5sb2FkRGF0YShoLmhvdFRhYmxlLmRhdGEpLE0ucmVuZGVyKCkpfSw1MDApfSl9Z2V0Vmlld2JveFRhYmxlU2V0dGluZ3MoYSl7cmV0dXJuIHRoaXMudmlld2JveEhvdFNldHRpbmdzLmdldChhLmlkKXx8e319cmVzaXplKGEsZCl7Y29u'@; put 'c3QgaD1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGY9ZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx2PWgubGVmdC1mLmxlZnQraC53aWR0aCxNPWgudG9wLWYudG9wK2guaGVpZ2h0O3JldHVybiBkLnN0eWxlLndpZHRoPXYrInB4IixkLnN0eWxlLmhlaWdodD1NKyJweCIsdGhpcy5zZXRB'@; put 'bGxIYW5kbGVUcmFuc2Zvcm0oKSx0aGlzLmhlbHBlclNlcnZpY2UuZGVib3VuY2VDYWxsKDFlMywoKT0+e3RoaXMudmlld2JveENoYW5nZWQoKSx0aGlzLmV2ZW50U2VydmljZS5kaXNwYXRjaEV2ZW50KCJyZXNpemUiKSx0aGlzLnZpZXdib3hlcy5mb3JFYWNoKEk9Pnt0aGlzLnJlZnJlc2hU'@; put 'YWJsZUFmdGVyUmVzaXplKEkpfSl9KSx7d2lkdGg6dixoZWlnaHQ6TX19ZHJhZ01vdmUoYSxkLGgsZil7dGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pntjb25zdCB2PXRoaXMucmVzaXplKGEsZCk7aC53aWR0aD12LndpZHRoLGguaGVpZ2h0PXYuaGVpZ2h0fSl9c2V0QWxsSGFu'@; put 'ZGxlVHJhbnNmb3JtKCl7dGhpcy5yZXNpemVCb3hRdWVyeS5mb3JFYWNoKGE9Pntjb25zdCBkPWEubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxoPWBoYW5kbGVfJHthLm5hdGl2ZUVsZW1lbnQuaWR9YCxmPXRoaXMuZHJhZ0hhbmRsZUNvcm5lclF1ZXJ5LmZpbmQoKHYs'@; put 'TSk9PnYubmF0aXZlRWxlbWVudC5pZD09PWgpO3RoaXMuc2V0SGFuZGxlVHJhbnNmb3JtKGY/Lm5hdGl2ZUVsZW1lbnQsZCwiYm90aCIpfSl9c2V0SGFuZGxlVHJhbnNmb3JtKGEsZCxoKXtjb25zdCBmPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bGV0IHY9ZC53aWR0aC1mLndpZHRoLE09'@; put 'ZC5oZWlnaHQtZi5oZWlnaHQ7dis9NSxNKz01LCJ4Ij09PWgmJihhLnN0eWxlLnRyYW5zZm9ybT1gdHJhbnNsYXRlKCR7dn1weCwgMClgKSwieSI9PT1oJiYoYS5zdHlsZS50cmFuc2Zvcm09YHRyYW5zbGF0ZSgwLCAke019cHgpYCksImJvdGgiPT09aCYmKGEuc3R5bGUudHJhbnNmb3JtPWB0'@; put 'cmFuc2xhdGUoJHt2fXB4LCAke019cHgpYCl9Zm9jdXNWaWV3Ym94KGEpe3RoaXMudmlld2JveGVzLm1hcChkPT57ZC5mb2N1c2VkPSExfSksYS5mb2N1c2VkPSEwfXZpZXdib3hEcmFnRW5kZWQoYSxkKXtsZXQgZj1hLnNvdXJjZS5nZXRSb290RWxlbWVudCgpLmdldEJvdW5kaW5nQ2xpZW50'@; put 'UmVjdCgpO2QueD1mLmxlZnQsZC55PWYudG9wLHRoaXMudmlld2JveENoYW5nZWQoKX1zbmFwVG9HcmlkKCl7Y29uc3QgYT13aW5kb3cuaW5uZXJXaWR0aCxkPXdpbmRvdy5pbm5lckhlaWdodCxNPU1hdGguY2VpbCh0aGlzLnZpZXdib3hlcy5sZW5ndGgvMiksST1NYXRoLmZsb29yKHRoaXMu'@; put 'dmlld2JveGVzLmxlbmd0aC8yKSx1ZT0oYS01KihNKzEpKS9NLHllPShhLTUqKEkrMSkpL0k7bGV0IEJlPTAsc3Q9KGQtMjUwLTYwKS8yLHB0PTAsZHQ9MDtmb3IobGV0IHF0PTA7cXQ8dGhpcy52aWV3Ym94ZXMubGVuZ3RoO3F0Kyspe2xldCBtbj10aGlzLnZpZXdib3hlc1txdF0sd249IShx'@; put 'dD5NLTEpO2NvbnN0IGhuPXduP3VlOnllOyF3biYmMD09PWR0JiYocHQ9MCxkdCsrLEJlPTApLG1uLng9NStCZStwdCooaG4rNSksbW4ueT0yNTArZHQqKHN0KzUpLG1uLndpZHRoPWhuLG1uLmhlaWdodD1zdCxwdCsrfXRoaXMudmlld2JveENoYW5nZWQoKSxzZXRUaW1lb3V0KCgpPT57dGhp'@; put 'cy5zZXRBbGxIYW5kbGVUcmFuc2Zvcm0oKSx0aGlzLnZpZXdib3hlcy5mb3JFYWNoKHF0PT57dGhpcy5yZWZyZXNoVGFibGVBZnRlclJlc2l6ZShxdCl9KX0pfW1pbmltaXplQWxsKCl7dGhpcy52aWV3Ym94ZXMuZm9yRWFjaChhPT57YS5taW5pbWl6ZWQ9ITB9KSx0aGlzLnZpZXdib3hDaGFu'@; put 'Z2VkKCl9cmVzdG9yZUFsbCgpe3RoaXMudmlld2JveGVzLmZvckVhY2goYT0+e2EubWluaW1pemVkPSExfSksdGhpcy52aWV3Ym94Q2hhbmdlZCgpfXJlc2V0UG9zU2l6ZShhKXthLng9d2luZG93LmlubmVyV2lkdGgtdGhpcy5kZWZhdWx0Q29uZmlnLndpZHRoLGEueT10aGlzLmRlZmF1bHRD'@; put 'b25maWcueSxhLndpZHRoPXRoaXMuZGVmYXVsdENvbmZpZy53aWR0aCxhLmhlaWdodD10aGlzLmRlZmF1bHRDb25maWcuaGVpZ2h0LHRoaXMudmlld2JveENoYW5nZWQoKX1taW5pbWl6ZShhKXthLm1pbmltaXplZD0hMCx0aGlzLnZpZXdib3hDaGFuZ2VkKCl9cmVzdG9yZShhKXthLm1pbmlt'@; put 'aXplZD0hMSx0aGlzLnZpZXdib3hDaGFuZ2VkKCksc2V0VGltZW91dCgoKT0+e3RoaXMucmVmcmVzaFRhYmxlQWZ0ZXJSZXNpemUoYSl9LDEwMCl9Y29sbGFwc2UoYSl7YS5jb2xsYXBzZWQ9ITAsdGhpcy52aWV3Ym94Q2hhbmdlZCgpfWV4cGFuZChhKXthLmNvbGxhcHNlZD0hMSx0aGlzLnZp'@; put 'ZXdib3hDaGFuZ2VkKCksc2V0VGltZW91dCgoKT0+e3RoaXMucmVmcmVzaFRhYmxlQWZ0ZXJSZXNpemUoYSl9LDEwMCl9Y2xvc2UoYSl7Y29uc3QgZD10aGlzLnZpZXdib3hlcy5maW5kSW5kZXgoZj0+Zi5pZD09PWEuaWQpLGg9dGhpcy52aWV3Ym94VGFibGVzLmZpbmRJbmRleChmPT5mLnZp'@; put 'ZXdib3hJZD09PWEuaWQpO2Q+LTEmJnRoaXMudmlld2JveGVzLnNwbGljZShkLDEpLGg+LTEmJnRoaXMudmlld2JveFRhYmxlcy5zcGxpY2UoaCwxKSx0aGlzLnZpZXdib3hIb3RTZXR0aW5ncy5kZWxldGUoYS5pZCksdGhpcy5zZWxlY3RlZFZpZXdib3g/LmlkPT09YS5pZCYmdGhpcy51bnNl'@; put 'dFNlbGVjdGVkVmlld2JveCgpLEpuLnZpZXdib3hlc1thLmlkXT10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKG1aKSx0aGlzLnZpZXdib3hDaGFuZ2VkKCl9c2VsZWN0Vmlld2JveChhKXt2b2lkIDA9PT10aGlzLnNlbGVjdGVkVmlld2JveFRhYmxlJiZ2b2lkIDA9PT10aGlzLnNlbGVj'@; put 'dGVkVmlld2JveD90aGlzLnJlc2V0U2VsZWN0ZWRWaWV3Ym94KGEpOmEuaWQ9PT10aGlzLnNlbGVjdGVkVmlld2JveD8uaWQ/dGhpcy51bnNldFNlbGVjdGVkVmlld2JveCgpOnRoaXMucmVzZXRTZWxlY3RlZFZpZXdib3goYSl9Y29sdW1uc0Ryb3AoYSl7dGhpcy5zZWxlY3RlZFZpZXdib3hU'@; put 'YWJsZT8uaG90VGFibGUuY29sSGVhZGVyc0hpZGRlbiYmKGEucHJldmlvdXNDb250YWluZXI9PT1hLmNvbnRhaW5lcj93MWUoYS5jb250YWluZXIuZGF0YSxhLnByZXZpb3VzSW5kZXgsYS5jdXJyZW50SW5kZXgpOmZ1bmN0aW9uIGVIZShjLGwsYSxkKXtjb25zdCBoPUx4KGEsYy5sZW5ndGgt'@; put 'MSksZj1MeChkLGwubGVuZ3RoKTtjLmxlbmd0aCYmbC5zcGxpY2UoZiwwLGMuc3BsaWNlKGgsMSlbMF0pfShhLnByZXZpb3VzQ29udGFpbmVyLmRhdGEsYS5jb250YWluZXIuZGF0YSxhLnByZXZpb3VzSW5kZXgsYS5jdXJyZW50SW5kZXgpLHRoaXMuc2VsZWN0ZWRWaWV3Ym94VGFibGUuaG90'@; put 'VGFibGUmJiJvYmplY3QiPT10eXBlb2YgdGhpcy5zZWxlY3RlZFZpZXdib3hUYWJsZS5ob3RUYWJsZS5jb2xIZWFkZXJzKSYmdGhpcy51cGRhdGVDb2x1bW5PcmRlckhvdChhLml0ZW0uZGF0YSxhLmN1cnJlbnRJbmRleCx0aGlzLnNlbGVjdGVkVmlld2JveFRhYmxlLnZpZXdib3hJZCl9b25D'@; put 'b2xzZWFyY2hDaGFuZ2UoYSxkLGgpe2NvbnN0IGY9aC5pbmRleE9mKGQpO2guc3BsaWNlKGYsMSksYS52YWx1ZT0iIix0aGlzLnNlbGVjdGVkVmlld2JveFRhYmxlPy5ob3RUYWJsZSYmKHRoaXMuc2VsZWN0ZWRWaWV3Ym94VGFibGUuaG90VGFibGUuY29sSGVhZGVyc1Zpc2libGUucHVzaChk'@; put 'KSx0aGlzLnVwZGF0ZUhvdENvbHVtbnModGhpcy5zZWxlY3RlZFZpZXdib3hUYWJsZT8uaG90VGFibGUuY29sSGVhZGVyc0hpZGRlbix0aGlzLnNlbGVjdGVkVmlld2JveFRhYmxlLnZpZXdib3hJZCksdGhpcy51cGRhdGVDb2x1bW5PcmRlckhvdChkLHRoaXMuc2VsZWN0ZWRWaWV3Ym94VGFi'@; put 'bGUuaG90VGFibGUuY29sSGVhZGVyc1Zpc2libGUubGVuZ3RoLTEsdGhpcy5zZWxlY3RlZFZpZXdib3hUYWJsZS52aWV3Ym94SWQpKX1vbkNvbFJlbW92ZShhKXtpZih0aGlzLnNlbGVjdGVkVmlld2JveFRhYmxlPy5ob3RUYWJsZSl7Y29uc3QgZD10aGlzLnNlbGVjdGVkVmlld2JveFRhYmxl'@; put 'LmhvdFRhYmxlLmNvbEhlYWRlcnNWaXNpYmxlLmluZGV4T2YoYSk7dGhpcy5zZWxlY3RlZFZpZXdib3hUYWJsZS5ob3RUYWJsZS5jb2xIZWFkZXJzVmlzaWJsZS5zcGxpY2UoZCwxKSx0aGlzLnNlbGVjdGVkVmlld2JveFRhYmxlLmhvdFRhYmxlLmNvbEhlYWRlcnNIaWRkZW4ucHVzaChhKSx0'@; put 'aGlzLnVwZGF0ZUhvdENvbHVtbnModGhpcy5zZWxlY3RlZFZpZXdib3hUYWJsZT8uaG90VGFibGUuY29sSGVhZGVyc0hpZGRlbix0aGlzLnNlbGVjdGVkVmlld2JveFRhYmxlLnZpZXdib3hJZCksdGhpcy51cGRhdGVDb2x1bW5PcmRlckhvdChhLHRoaXMuc2VsZWN0ZWRWaWV3Ym94VGFibGUu'@; put 'aG90VGFibGUuY29sSGVhZGVyc1Zpc2libGUubGVuZ3RoLHRoaXMuc2VsZWN0ZWRWaWV3Ym94VGFibGUudmlld2JveElkKX19cmVzZXRTZWxlY3RlZFZpZXdib3goYSl7dGhpcy5zZWxlY3RlZFZpZXdib3g9YSx0aGlzLnNlbGVjdGVkVmlld2JveFRhYmxlPXRoaXMudmlld2JveFRhYmxlcy5m'@; put 'aW5kKGQ9PmQudmlld2JveElkPT09YS5pZCl9dW5zZXRTZWxlY3RlZFZpZXdib3goKXt0aGlzLnNlbGVjdGVkVmlld2JveD12b2lkIDAsdGhpcy5zZWxlY3RlZFZpZXdib3hUYWJsZT12b2lkIDB9c3RvcFByb3BhZ2F0aW9uKGEpe2Euc3RvcFByb3BhZ2F0aW9uKCl9b3BlbkZpbHRlcihhKXt0'@; put 'aGlzLnNlbGVjdFZpZXdib3goYSk7Y29uc3QgZD10aGlzLnZpZXdib3hUYWJsZXNbdGhpcy5nZXRWaWV3Ym94VGFibGVJbmRleChhKV07dGhpcy5maWx0ZXJMaWJkcz1gJHthLmxpYnJhcnl9LiR7YS50YWJsZX1gLHRoaXMuZmlsdGVyaW5nVmlld2JveD1hLHRoaXMuZmlsdGVyPSEwLHRoaXMu'@; put 'Y2RmLmRldGVjdENoYW5nZXMoKSx0aGlzLnNhc1N0b3JlU2VydmljZS5zZXRRdWVyeVZhcmlhYmxlcyh0aGlzLmZpbHRlckxpYmRzLGQuaG90VGFibGUuY29scyl9b3BlblRhYmxlRWRpdChhKXtjb25zdCBkPWEubGlicmFyeSsiLiIrYS50YWJsZTtsZXQgaD1sb2NhdGlvbi5ocmVmLnNsaWNl'@; put 'KDAsbG9jYXRpb24uaHJlZi5pbmRleE9mKCIjIikpO2g9YCR7aH0jL2VkaXRvci8ke2R9YCx3aW5kb3cub3BlbihoLCJfYmxhbmsiKX1yZXNldEZpbHRlcigpe3RoaXMuZmlsdGVyaW5nVmlld2JveCYmKHRoaXMuZmlsdGVyaW5nVmlld2JveC5maWx0ZXJfcGs9IjAiLHRoaXMucmVsb2FkVGFi'@; put 'bGVEYXRhKHRoaXMuZmlsdGVyaW5nVmlld2JveCksdGhpcy5maWx0ZXI9ITEsdGhpcy52aWV3Ym94Q2hhbmdlZCgpLEpuLnZpZXdib3hlc1t0aGlzLmZpbHRlcmluZ1ZpZXdib3guaWRdPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUobVopKX1zZW5kQ2xhdXNlKCl7dGhpcy5maWx0ZXJM'@; put 'b2FkaW5nPSEwO2xldCBhPVtdLGQ9W107aWYodHlwZW9mIHRoaXMuY2xhdXNlcz4idSIpcmV0dXJuIHRoaXMubnVsbFZhcmlhYmxlcz0hMCx2b2lkKHRoaXMuZmlsdGVyTG9hZGluZz0hMSk7e2xldCBoPXRoaXMuY2xhdXNlcy5xdWVyeU9iajtmb3IobGV0IGY9MDtmPGgubGVuZ3RoO2YrKyl7'@; put 'Y29uc3Qgdj1oW2ZdLmVsZW1lbnRzO2E9di5maWx0ZXIoZnVuY3Rpb24oTSl7cmV0dXJuIG51bGw9PT1NLnZhcmlhYmxlfSksYS5sZW5ndGgmJmQucHVzaCh2KX19aWYoZC5sZW5ndGgpcmV0dXJuIHRoaXMubnVsbFZhcmlhYmxlcz0hMCx2b2lkKHRoaXMuZmlsdGVyTG9hZGluZz0hMSk7dHJ5'@; put 'e2lmKHZvaWQgMCE9PXRoaXMuY2xhdXNlcyYmdGhpcy5maWx0ZXJMaWJkcyl7Y29uc3QgaD17Z3JvdXBMb2dpYzp0aGlzLmNsYXVzZXMuZ3JvdXBMb2dpYyxmaWx0ZXJHcm91cHM6W119O3RoaXMuY2xhdXNlcy5xdWVyeU9iai5mb3JFYWNoKHY9Pntjb25zdCBNPXtmaWx0ZXJDbGF1c2VzOltd'@; put 'fTt2LmVsZW1lbnRzLmZvckVhY2goST0+e00uZmlsdGVyQ2xhdXNlcy5wdXNoKHRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUoSSkpfSksTS5jbGF1c2VMb2dpYz12LmNsYXVzZUxvZ2ljLGguZmlsdGVyR3JvdXBzLnB1c2godGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZShNKSl9KTtj'@; put 'b25zdCBmPXRoaXMuc2FzU3RvcmVTZXJ2aWNlLmNyZWF0ZUZpbHRlclF1ZXJ5VGFibGUoaCk7dGhpcy5zYXNTdG9yZVNlcnZpY2Uuc2F2ZVF1ZXJ5KHRoaXMuZmlsdGVyTGliZHMsZikudGhlbih2PT57dGhpcy5maWx0ZXJpbmdWaWV3Ym94LmZpbHRlcl9waz12LnJlc3VsdFswXS5GSUxURVJf'@; put 'UkssdGhpcy5sb2FkRGF0YSh0aGlzLmZpbHRlckxpYmRzLHRoaXMuZmlsdGVyaW5nVmlld2JveCkudGhlbigoKT0+e3RoaXMuZmlsdGVyPSExLHRoaXMuZmlsdGVyTG9hZGluZz0hMX0pLHRoaXMudmlld2JveENoYW5nZWQoKX0pLmNhdGNoKHY9Pnt0aGlzLmZpbHRlckxvYWRpbmc9ITF9KX19'@; put 'Y2F0Y2h7dGhpcy5maWx0ZXJMb2FkaW5nPSExfX1zZWFyY2hUYWJsZShhLGQpe3ZhciBoPXRoaXM7cmV0dXJuIFEoZnVuY3Rpb24qKCl7ZC5zZWFyY2hMb2FkaW5nPSEwO2xldCBmPWEudmFsdWUsdj1kLmxpYnJhcnkrIi4iK2QudGFibGUsTT1wYXJzZUludChkLmZpbHRlcl9wa3x8IjAiKTtj'@; put 'b25zdCBJPWgudmlld2JveFRhYmxlcy5maW5kKEc9Pkcudmlld2JveElkPT09ZC5pZCk7SSYmKHlpZWxkIGguc2FzU3RvcmVTZXJ2aWNlLnZpZXdEYXRhU2VhcmNoKGYsZC5zZWFyY2hOdW1lcmljLHYsTSkudGhlbihHPT57Ry5zYXNwYXJhbXN8fEcudmlld0RhdGE/KEkuaG90VGFibGUuZGF0'@; put 'YT1HLnZpZXdkYXRhLGguY3JlYXRlVmlld2JveFRhYmxlU2V0dGluZ3MoZCkpOmQuc2VhcmNoTG9hZGluZz0hMH0pLmNhdGNoKEc9PntoLmxvZ2dlclNlcnZpY2UuZXJyb3IoRyl9KSxkLnNlYXJjaExvYWRpbmc9ITEpfSkoKX1yZWxvYWRUYWJsZURhdGEoYSl7dmFyIGQ9dGhpcztyZXR1cm4g'@; put 'UShmdW5jdGlvbiooKXtjb25zdCBoPWAke2EubGlicmFyeX0uJHthLnRhYmxlfWA7YS5sb2FkaW5nRGF0YT0hMCx5aWVsZCBkLnJlbG9hZERhdGEoaCxhKSxhLmxvYWRpbmdEYXRhPSExLGQuZXZlbnRTZXJ2aWNlLmRpc3BhdGNoRXZlbnQoInJlc2l6ZSIpfSkoKX11cGRhdGVIb3RDb2x1bW5z'@; put 'KGEsZCl7dGhpcy51cGRhdGVIaWRkZW5Db2x1bW5zSG90KGEsZCksdGhpcy5zZXRDb2x1bW5PcmRlcihkKX11cGRhdGVDb2x1bW5PcmRlckhvdChhLGQsaCl7Y29uc3QgZj10aGlzLmdldFZpZXdib3hIb3RJbnN0YW5jZShoKTtpZihmKXtjb25zdCB2PWYucHJvcFRvQ29sKGEpO2YuZ2V0UGx1'@; put 'Z2luKCJtYW51YWxDb2x1bW5Nb3ZlIikubW92ZUNvbHVtbih2LGQpLGYucmVuZGVyKCksdGhpcy5zZXRDb2x1bW5PcmRlcihoKX19dGFibGVFZGl0RXhpc3RzKGEpe2NvbnN0IGQ9Sm4uZWRpdG9yLmxpYnNBbmRUYWJsZXMsaD1hLmxpYnJhcnk7cmV0dXJuISFkW2hdJiZkW2hdLmluY2x1ZGVz'@; put 'KGEudGFibGUpfXNldENvbHVtbk9yZGVyKGEpe2NvbnN0IGQ9dGhpcy52aWV3Ym94ZXMuZmluZChoPT5oLmlkPT09YSk7aWYoZCl7Y29uc3QgaD10aGlzLmNyZWF0ZUNvbHVtbk9yZGVyKGEpO2QuY29sdW1ucz1oLmxlbmd0aD4wP2g6ZC5jb2x1bW5zfXRoaXMudmlld2JveENoYW5nZWQoKX1j'@; put 'cmVhdGVDb2x1bW5PcmRlcihhKXtjb25zdCBkPXRoaXMuZ2V0Vmlld2JveEhvdEluc3RhbmNlKGEpO2lmKCFkKXJldHVybltdO2NvbnN0IGg9ZC5nZXRDb2xIZWFkZXIoKSxmPXRoaXMuc2VsZWN0ZWRWaWV3Ym94VGFibGU/LmhvdFRhYmxlLmNvbEhlYWRlcnM7aWYoIWYpcmV0dXJuW107Y29u'@; put 'c3Qgdj10aGlzLnNlbGVjdGVkVmlld2JveFRhYmxlPy5ob3RUYWJsZT8uY29sSGVhZGVyc1Zpc2libGUubGVuZ3RofHw1LE09W107cmV0dXJuIGgubWFwKChJLEcpPT57aWYoRzx2KXtjb25zdCByZT1mLmluZGV4T2YoSSk7cmU+LTEmJk0ucHVzaChyZSl9fSksTX11cGRhdGVIaWRkZW5Db2x1'@; put 'bW5zSG90KGEsZCl7Y29uc3QgaD10aGlzLmdldFZpZXdib3hIb3RJbnN0YW5jZShkKTtpZihoKXtjb25zdCBmPWEubWFwKHY9PmgucHJvcFRvQ29sKHYpKTtoLnVwZGF0ZVNldHRpbmdzKHtoaWRkZW5Db2x1bW5zOntjb2x1bW5zOmZ9fSksaC5yZW5kZXIoKX19Y2FsY3VsYXRlVGFibGVIZWln'@; put 'aHQoYSl7cmV0dXJuIGEuaGVpZ2h0LTIwLTM2LTJ9cmVmcmVzaFRhYmxlQWZ0ZXJSZXNpemUoYSl7Y29uc3QgZD10aGlzLmdldFZpZXdib3hIb3RJbnN0YW5jZShhLmlkKTtkJiZzZXRUaW1lb3V0KCgpPT57dHJ5e2QudXBkYXRlU2V0dGluZ3Moe2hlaWdodDp0aGlzLmNhbGN1bGF0ZVRhYmxl'@; put 'SGVpZ2h0KGEpfSksZC5yZWZyZXNoRGltZW5zaW9ucygpLGQucmVuZGVyKCl9Y2F0Y2h7c2V0VGltZW91dCgoKT0+e3RyeXtkLnVwZGF0ZVNldHRpbmdzKHtoZWlnaHQ6dGhpcy5jYWxjdWxhdGVUYWJsZUhlaWdodChhKX0pLGQucmVmcmVzaERpbWVuc2lvbnMoKX1jYXRjaChmKXtjb25zb2xl'@; put 'Lndhcm4oIkZhaWxlZCB0byByZWZyZXNoIEhPVCBkaW1lbnNpb25zIGZvciB2aWV3Ym94IixhLmlkLGYpfX0sNTAwKX19LDEwMCl9Z2V0Vmlld2JveEhvdEluc3RhbmNlKGEpe2lmKCFhfHwhdGhpcy5ob3RUYWJsZUNvbXBvbmVudHMpcmV0dXJuO2NvbnN0IGQ9dGhpcy52aWV3Ym94ZXMuZmlu'@; put 'ZEluZGV4KE09Pk0uaWQ9PT1hKTtpZigtMT09PWQpcmV0dXJuO2NvbnN0IGg9dGhpcy5ob3RUYWJsZUNvbXBvbmVudHMudG9BcnJheSgpO2xldCBmPTA7Zm9yKGxldCBNPTA7TTxkO00rKyl0aGlzLmdldFZpZXdib3hUYWJsZUluZGV4KHRoaXMudmlld2JveGVzW01dKT4tMSYmZisrO3JldHVy'@; put 'biBoW2ZdPy5ob3RJbnN0YW5jZXx8dm9pZCAwfXZpZXdib3hDaGFuZ2VkKCl7bGV0IGE7Y29uc3QgZD10aGlzLmVuY29kZVVybERhdGEodGhpcy52aWV3Ym94ZXMpO2QubGVuZ3RoPjAmJihhPXt2aWV3Ym94ZXM6ZH0pLHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLHtyZWxhdGl2ZVRvOnRoaXMu'@; put 'YWN0aXZhdGVkUm91dGUscXVlcnlQYXJhbXM6YX0pLHRoaXMucHJlcGFyZUZpbHRlckNhY2hlKCl9cHJlcGFyZUZpbHRlckNhY2hlKCl7Zm9yKGxldCBhIG9mIHRoaXMudmlld2JveGVzKWlmKEpuLnZpZXdib3hlc1thLmlkXXx8KEpuLnZpZXdib3hlc1thLmlkXT10aGlzLmhlbHBlclNlcnZp'@; put 'Y2UuZGVlcENsb25lKG1aKSksYS5xdWVyeSYmYS5xdWVyeS5sZW5ndGg+MCl7Y29uc3QgZD10aGlzLnZpZXdib3hUYWJsZXMuZmluZChmPT5mLnZpZXdib3hJZD09PWEuaWQpLGg9YHZpZXdib3hlcy4ke2EuaWR9YDtKbi52aWV3Ym94ZXNbYS5pZF0uZmlsdGVyLnF1ZXJ5PWEucXVlcnksSm4u'@; put 'dmlld2JveGVzW2EuaWRdLmZpbHRlci5saWJkcz1hLmxpYnJhcnkrIi4iK2EudGFibGUsdGhpcy5zYXNTdG9yZVNlcnZpY2UuaW5pdGlhbGl6ZUdsb2JhbEZpbHRlckNsYXVzZShoLGQ/LmhvdFRhYmxlLmNvbHMpfX1lbmNvZGVVcmxEYXRhKGEpe2xldCBkPSIiO3JldHVybiBhLm1hcCgoaCxm'@; put 'KT0+e2QrPWAke2guaWR9LSR7aC5saWJyYXJ5fS0ke2gudGFibGV9LSR7aC53aWR0aH0tJHtoLmhlaWdodH0tJHtoLnh9LSR7aC55fS0ke2guY29sbGFwc2VkPzE6MH0tJHtoLm1pbmltaXplZD8xOjB9LSR7aC5maWx0ZXJfcGt8fDB9JHtoLmNvbHVtbnMmJmguY29sdW1ucy5sZW5ndGg+MD8i'@; put 'LSIraC5jb2x1bW5zPy5qb2luKCIsIik6IiJ9YCxmIT09YS5sZW5ndGgtMSYmKGQrPSI7Iil9KSxkfWRlY29kZVVybERhdGEoYSl7bGV0IGg9W107cmV0dXJuIGEuc3BsaXQoIjsiKS5tYXAodj0+e2NvbnN0IE09di5zcGxpdCgiLSIpO2gucHVzaCh7aWQ6cGFyc2VJbnQoTVswXSksbGlicmFy'@; put 'eTpNWzFdLHRhYmxlOk1bMl0sd2lkdGg6cGFyc2VJbnQoTVszXSksaGVpZ2h0OnBhcnNlSW50KE1bNF0pLHg6cGFyc2VJbnQoTVs1XSkseTpwYXJzZUludChNWzZdKSxjb2xsYXBzZWQ6ISFwYXJzZUludChNWzddKSxtaW5pbWl6ZWQ6ISFwYXJzZUludChNWzhdKSxjb2x1bW5zOk1bMTBdPy5z'@; put 'cGxpdCgiLCIpLm1hcChJPT5wYXJzZUludChJKSl8fFtdLGZpbHRlcl9wazpNWzldfSl9KSxofW5nT25EZXN0cm95KCl7dGhpcy5fcXVlcnk/LnVuc3Vic2NyaWJlKCl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUoR2EpLCRlKGMxKSwkZShW'@; put 'byksJGUobWMpLCRlKEloKSwkZShTZCksJGUoYnUpLCRlKExvKSwkZSh5dSksJGUoeG8pKX19c3RhdGlje3RoaXMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImFwcC12aWV3Ym94ZXMiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGQsaCl7aWYoMSZkJiYoRmEoeDh0LDUpLEZhKEU4'@; put 'dCw1KSxGYSgkZyw1KSksMiZkKXtsZXQgZjt5aShmPWJpKCkpJiYoaC5yZXNpemVCb3hRdWVyeT1mKSx5aShmPWJpKCkpJiYoaC5kcmFnSGFuZGxlQ29ybmVyUXVlcnk9ZikseWkoZj1iaSgpKSYmKGguaG90VGFibGVDb21wb25lbnRzPWYpfX0saW5wdXRzOnt2aWV3Ym94TW9kYWw6InZpZXdi'@; put 'b3hNb2RhbCJ9LG91dHB1dHM6e3ZpZXdib3hNb2RhbENoYW5nZToidmlld2JveE1vZGFsQ2hhbmdlIn0sZGVjbHM6NTYsdmFyczoyMyxjb25zdHM6W1siaW5wdXQiLCIiXSxbInJlc2l6ZUJveCIsIiJdLFsiZHJhZ0hhbmRsZUNvcm5lciIsIiJdLFsic2VhcmNoRWwiLCIiXSxbInF1ZXJ5Rmls'@; put 'dGVyIiwiIl0sWyJhcHBEcmFnTmRyb3AiLCIiLDEsInJvb3QtbW9kYWwiLCJwb3NpdGlvbi1yZWxhdGl2ZSIsMywiY2xyTW9kYWxPcGVuQ2hhbmdlIiwiY2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxDbG9zYWJsZSIsImNsck1vZGFsU2l6ZSJdLFsxLCJtb2RhbC10aXRsZSJdLFsiY2xhc3MiLCJs'@; put 'aWNlbmNlLW5vdGljZSIsNCwibmdJZiJdLFsxLCJtb2RhbC1ib2R5IiwiZC1mbGV4Il0sWzEsImFkZC1uZXciLCJkLWZsZXgiLCJjbHItZmxleC1jb2x1bW4iXSxbMSwibXQtMCJdLFsxLCJ3LTEwMCJdLFsiY2xhc3MiLCJteS0xMC1teC1hdXRvIHRleHQtY2VudGVyIiw0LCJuZ0lmIl0sWyJj'@; put 'bGFzcyIsIm0tMCB2aWV3Ym94LWxpbWl0LW5vdGljZSIsNCwibmdJZiJdLFszLCJsaWJyYXJ5TGlzdCIsImxpYnJhcnlPbkNsaWNrRW1pdHRlciIsInRhYmxlT25DbGlja0VtaXR0ZXIiLDQsIm5nSWYiXSxbMSwiY3VycmVudGx5LW9wZW4iXSxbMSwiZC1mbGV4IiwiY2xyLWp1c3RpZnktY29u'@; put 'dGVudC1iZXR3ZWVuIl0sWyJyb2xlIiwidG9vbHRpcCIsImFyaWEtaGFzcG9wdXAiLCJ0cnVlIiwxLCJ0b29sdGlwIiwidG9vbHRpcC1tZCIsInRvb2x0aXAtYm90dG9tLWxlZnQiLCJtbC0zIiwzLCJjbGljayJdLFsic2hhcGUiLCJncmlkLXZpZXciLCJzaXplIiwiMTkiXSxbMSwidG9vbHRp'@; put 'cC1jb250ZW50Il0sWyJzaGFwZSIsIm1pbnVzIiwic2l6ZSIsIjE5Il0sWyJzaGFwZSIsIndpbmRvdy1yZXN0b3JlIiwic2l6ZSIsIjE5Il0sWyJjbGFzcyIsInRleHQtY2VudGVyIHctMTAwIG0tMCIsNCwibmdJZiJdLFsiY2xhc3MiLCJvcGVuLXZpZXdib3ggZC1mbGV4IGNsci1qdXN0aWZ5'@; put 'LWNvbnRlbnQtYmV0d2VlbiBjbHItYWxpZ24taXRlbXMtY2VudGVyIiwzLCJzZWxlY3RlZCIsImNsaWNrIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiZC1mbGV4IiwiY2xyLWp1c3RpZnktY29udGVudC1iZXR3ZWVuIiwiY2xyLWFsaWduLWl0ZW1zLWNlbnRlciIsIm10LTEwIl0sWzEsIm0t'@; put 'MCJdLFsiY2xhc3MiLCJjb25maWd1cmF0aW9uLXdyYXBwZXIiLCJjZGtEcm9wTGlzdEdyb3VwIiwiIiw0LCJuZ1ZhciJdLFsxLCJtb2RhbC1mb290ZXIiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1vdXRsaW5lIiwzLCJjbGljayJdLFsxLCJ2aWV3Ym94ZXMtY29u'@; put 'dGFpbmVyIl0sWyJjbGFzcyIsInZpZXdib3giLCJjZGtEcmFnQm91bmRhcnkiLCIudmlld2JveGVzLWNvbnRhaW5lciIsImNka0RyYWciLCIiLCJ0YWJpbmRleCIsIjAiLDMsImZvY3VzZWQiLCJkaXNwbGF5Iiwid2lkdGgiLCJoZWlnaHQiLCJwb2ludGVyLWV2ZW50cyIsImJveC1zaGFkb3ci'@; put 'LCJjZGtEcmFnRnJlZURyYWdQb3NpdGlvbiIsImlkIiwibW91c2Vkb3duIiwiY2RrRHJhZ0VuZGVkIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiZmlsdGVyLW1vZGFsIiwzLCJjbHJNb2RhbE9wZW5DaGFuZ2UiLCJjbHJNb2RhbE9wZW4iLCJjbHJNb2RhbFNpemUiLCJjbHJNb2RhbENsb3Nh'@; put 'YmxlIl0sWzEsIm1vZGFsLXRpdGxlIiwiY2VudGVyIiwidGV4dC1jZW50ZXIiLCJjb2xvci1kYXJrZXItZ3JheSJdLFsxLCJtb2RhbC1ib2R5Il0sWzMsInZpZXdib3hJZCIsNCwibmdJZiJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLWxpbmsiLDMsImNsaWNrIl0s'@; put 'WyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tc3VjY2Vzcy1vdXRsaW5lIiwzLCJjbGljayIsImNsckxvYWRpbmciXSxbMSwibGljZW5jZS1ub3RpY2UiXSxbMSwibXktMTAtbXgtYXV0byIsInRleHQtY2VudGVyIl0sWyJjbHJNZWRpdW0iLCIiXSxbMSwibS0wIiwidmll'@; put 'd2JveC1saW1pdC1ub3RpY2UiXSxbMywibGlicmFyeU9uQ2xpY2tFbWl0dGVyIiwidGFibGVPbkNsaWNrRW1pdHRlciIsImxpYnJhcnlMaXN0Il0sWzEsInRleHQtY2VudGVyIiwidy0xMDAiLCJtLTAiXSxbMSwib3Blbi12aWV3Ym94IiwiZC1mbGV4IiwiY2xyLWp1c3RpZnktY29udGVudC1i'@; put 'ZXR3ZWVuIiwiY2xyLWFsaWduLWl0ZW1zLWNlbnRlciIsMywiY2xpY2siXSxbMSwiZC1mbGV4IiwiY2xyLWFsaWduLWl0ZW1zLWNlbnRlciJdLFsiY2xyU21hbGwiLCIiLCJjbGFzcyIsIm1sLTMiLDQsIm5nSWYiXSxbInJvbGUiLCJ0b29sdGlwIiwiYXJpYS1oYXNwb3B1cCIsInRydWUiLDEs'@; put 'InRvb2x0aXAiLCJ0b29sdGlwLW1kIiwidG9vbHRpcC1ib3R0b20tbGVmdCIsMywiY2xpY2siXSxbInNoYXBlIiwiY3Vyc29yLW1vdmUiLCJzaXplIiwiMTMiXSxbInJvbGUiLCJ0b29sdGlwIiwiYXJpYS1oYXNwb3B1cCIsInRydWUiLCJjbGFzcyIsInRvb2x0aXAgdG9vbHRpcC1tZCB0b29s'@; put 'dGlwLWJvdHRvbS1sZWZ0IG1sLTMiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJzaGFwZSIsInRpbWVzIiwic2l6ZSIsIjE5Il0sWyJjbHJTbWFsbCIsIiIsMSwibWwtMyJdLFsiY2RrRHJvcExpc3RHcm91cCIsIiIsMSwiY29uZmlndXJhdGlvbi13cmFwcGVyIl0sWzQsIm5nSWYiXSxbMSwiY29s'@; put 'cy1zZWFyY2giXSxbInR5cGUiLCJ0ZXh0IiwiYXV0b2NvbXBsZXRlIiwib2ZmIiwiYXV0b2ZvY3VzIiwiIiwicGxhY2Vob2xkZXIiLCJTZWFyY2ggY29sdW1ucyIsInRhYmluZGV4IiwiMCIsMywidmFsdWVDaGFuZ2UiLCJpbnB1dElkIiwiZW1pdE9ubHlTZWxlY3RlZCJdLFs0LCJuZ0ZvciIs'@; put 'Im5nRm9yT2YiXSxbImNka0Ryb3BMaXN0IiwiIiwxLCJjb2xzLWxpc3QiLDMsImNka0Ryb3BMaXN0RHJvcHBlZCIsImNka0Ryb3BMaXN0RGF0YSJdLFsiY2RrRHJhZyIsIiIsMywiY2xhc3MiLCJjdXJzb3ItZGVmYXVsdC1pIiwicHJpbWFyeUtleUhlYWRlclN0eWxlIiwiY2RrRHJhZ0RhdGEi'@; put 'LCJjZGtEcmFnRGlzYWJsZWQiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsiY2RrRHJhZyIsIiIsMywiY2RrRHJhZ0RhdGEiLCJjZGtEcmFnRGlzYWJsZWQiXSxbInNoYXBlIiwia2V5Iiw0LCJuZ0lmIl0sWyJzaGFwZSIsInRyYXNoIiwiY2xhc3MiLCJjdXJzb3ItcG9pbnRlciIsMywiY2xpY2si'@; put 'LDQsIm5nSWYiXSxbInNoYXBlIiwia2V5Il0sWyJzaGFwZSIsInRyYXNoIiwxLCJjdXJzb3ItcG9pbnRlciIsMywiY2xpY2siXSxbImNka0RyYWdCb3VuZGFyeSIsIi52aWV3Ym94ZXMtY29udGFpbmVyIiwiY2RrRHJhZyIsIiIsInRhYmluZGV4IiwiMCIsMSwidmlld2JveCIsMywibW91c2Vk'@; put 'b3duIiwiY2RrRHJhZ0VuZGVkIiwiY2RrRHJhZ0ZyZWVEcmFnUG9zaXRpb24iLCJpZCJdLFsiY2RrRHJhZ0hhbmRsZSIsIiIsMSwiZHJhZy1oYW5kbGUiLCJkLWZsZXgiLCJjbHItanVzdGlmeS1jb250ZW50LWJldHdlZW4iLCJjbHItYWxpZ24taXRlbXMtY2VudGVyIl0sWzEsInRhYmxlLXRp'@; put 'dGxlIl0sWzEsImFjdGlvbnMiXSxbInNoYXBlIiwiYW5nbGUgdG9wIiwzLCJjbGljayIsNCwibmdJZiJdLFsic2hhcGUiLCJhbmdsZSBkb3duIiwzLCJjbGljayIsNCwibmdJZiJdLFsic2hhcGUiLCJtaW51cyIsMywiY2xpY2siXSxbInNoYXBlIiwidGltZXMiLDMsImNsaWNrIl0sWyJjZGtE'@; put 'cmFnIiwiIiwxLCJkcmFnSGFuZGxlIiwiY29ybmVyIiwzLCJjZGtEcmFnTW92ZWQiLCJpZCJdLFsiY2xyRm9ybSIsIiIsMSwiZC1mbGV4IiwiYWxpZ24taXRlbXMtY2VudGVyIiwiY2xyLWp1c3RpZnktY29udGVudC1iZXR3ZWVuIiwiY2xyLWZsZXgtd3JhcCIsInRhYmxlLXNlYXJjaC13cmFw'@; put 'cGVyIl0sWzEsImQtZmxleCIsImFsaWduLWl0ZW1zLWNlbnRlciIsImNsci1mbGV4LXdyYXAiXSxbMSwiaW5wdXQtd3JhcHBlciJdLFsiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsIlNlYXJjaCIsIm5hbWUiLCJzZWFyY2gtaW5wdXQiLDMsImtleXVwLmVudGVyIiwidHlwZSJdLFsic2hh'@; put 'cGUiLCJzZWFyY2giLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJjbGFzcyIsInNwaW5uZXIgc3Bpbm5lci1pbmxpbmUiLDQsIm5nSWYiXSxbInR5cGUiLCJjaGVja2JveCIsImNsckNoZWNrYm94IiwiIiwibmFtZSIsIm51bWVyaWNfY2hlY2siLDMsIm5nTW9kZWxDaGFuZ2UiLCJuZ01vZGVsIl0s'@; put 'WyJjbGFzcyIsInNwaW5uZXIgc3Bpbm5lci1zbSIsNCwibmdJZiJdLFsic2hhcGUiLCJyZWZyZXNoIiwiY2xhc3MiLCJjbGljay1pY29uIiwzLCJjbGljayIsNCwibmdJZiJdLFsicm9sZSIsInRvb2x0aXAiLCJhcmlhLWhhc3BvcHVwIiwidHJ1ZSIsMSwidG9vbHRpcCIsInRvb2x0aXAtbGci'@; put 'LCJ0b29sdGlwLWJvdHRvbS1sZWZ0IiwibWwtNSIsMywiY2xpY2siXSxbInNoYXBlIiwiZmlsdGVyIiwxLCJjbGljay1pY29uIl0sWzEsInRvb2x0aXAtY29udGVudCIsInRvb2x0aXAtbG9uZyJdLFsic2hhcGUiLCJwZW5jaWwiLDEsImNsaWNrLWljb24iLCJtbC01IiwzLCJjbGljayJdLFsi'@; put 'Y2xhc3MiLCJjb250ZW50IiwzLCJkaXNwbGF5Iiw0LCJuZ1ZhciJdLFsic2hhcGUiLCJhbmdsZSB0b3AiLDMsImNsaWNrIl0sWyJzaGFwZSIsImFuZ2xlIGRvd24iLDMsImNsaWNrIl0sWyJzaGFwZSIsInNlYXJjaCIsMywiY2xpY2siXSxbMSwic3Bpbm5lciIsInNwaW5uZXItaW5saW5lIl0s'@; put 'WzEsInNwaW5uZXIiLCJzcGlubmVyLXNtIl0sWyJzaGFwZSIsInJlZnJlc2giLDEsImNsaWNrLWljb24iLDMsImNsaWNrIl0sWzEsImNvbnRlbnQiXSxbImNsYXNzIiwiaG90LXNwaW5uZXIgbXktMTAtbXgtYXV0byB0ZXh0LWNlbnRlciIsNCwibmdJZiJdLFszLCJzZXR0aW5ncyIsImlkIiw0'@; put 'LCJuZ0lmIl0sWzEsImhvdC1zcGlubmVyIiwibXktMTAtbXgtYXV0byIsInRleHQtY2VudGVyIl0sWzMsInNldHRpbmdzIiwiaWQiXSxbMywidmlld2JveElkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGQsaCl7MSZkJiYoZGUoMCwiY2xyLW1vZGFsIiw1KSxGdCgiY2xyTW9kYWxPcGVuQ2hhbmdl'@; put 'IixmdW5jdGlvbih2KXtyZXR1cm4gaC5jbHJNb2RhbE9wZW5DaGFuZ2Uodil9KSxkZSgxLCJoMyIsNiksT2UoMiwiIFZpZXdib3hlcyAiKSxndCgzLEQ4dCwyLDIsInNwYW4iLDcpLGhlKCksZGUoNCwiZGl2Iiw4KSg1LCJkaXYiLDkpKDYsInAiLDEwKSxPZSg3LCJBZGQgbmV3IiksaGUoKSxX'@; put 'dCg4LCJociIsMTEpLGd0KDksSTh0LDIsMCwiZGl2IiwxMikoMTAsUjh0LDIsMCwicCIsMTMpKDExLEw4dCwxLDEsImRjLXRyZWUiLDE0KSxoZSgpLGRlKDEyLCJkaXYiLDE1KSgxMywiZGl2IiwxNikoMTQsInAiLDEwKSxPZSgxNSwiQ3VycmVudGx5IG9wZW4iKSxoZSgpLGRlKDE2LCJkaXYi'@; put 'KSgxNywiYSIsMTcpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaC5zbmFwVG9HcmlkKCl9KSxXdCgxOCwiY2xyLWljb24iLDE4KSxkZSgxOSwic3BhbiIsMTkpLE9lKDIwLCJTbmFwIHZpZXdib3hlcyB0byBncmlkIiksaGUoKSgpLGRlKDIxLCJhIiwxNyksRnQoImNsaWNrIixmdW5j'@; put 'dGlvbigpe3JldHVybiBoLm1pbmltaXplQWxsKCl9KSxXdCgyMiwiY2xyLWljb24iLDIwKSxkZSgyMywic3BhbiIsMTkpLE9lKDI0LCJNaW5pbWl6ZSBhbGwgdmlld2JveGVzIiksaGUoKSgpLGRlKDI1LCJhIiwxNyksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBoLnJlc3RvcmVBbGwo'@; put 'KX0pLFd0KDI2LCJjbHItaWNvbiIsMjEpLGRlKDI3LCJzcGFuIiwxOSksT2UoMjgsIlJlc3RvcmUgYWxsIHZpZXdib3hlcyIpLGhlKCkoKSgpKCksV3QoMjksImhyIiksZ3QoMzAsTzh0LDIsMCwicCIsMjIpKDMxLE44dCwxNSwxMCwiZGl2IiwyMyksZGUoMzIsImRpdiIsMjQpKDMzLCJwIiwy'@; put 'NSksT2UoMzQpLGhlKCkoKSxXdCgzNSwiaHIiKSxndCgzNixXOHQsMywyLCJkaXYiLDI2KSxoZSgpKCksZGUoMzcsImRpdiIsMjcpKDM4LCJidXR0b24iLDI4KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGgudmlld2JveE1vZGFsPSExfSksT2UoMzksIiBPayAiKSxoZSgpKCkoKSxk'@; put 'ZSg0MCwiZGl2IiwyOSksZ3QoNDEsdDd0LDMzLDM3LCJkaXYiLDMwKSxoZSgpLGRlKDQyLCJjbHItbW9kYWwiLDMxKSxwaSgiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbih2KXtyZXR1cm4gZ2koaC5maWx0ZXIsdil8fChoLmZpbHRlcj12KSx2fSksZGUoNDMsImgzIiwzMiksT2UoNDQs'@; put 'IiBGaWx0ZXIgZm9yIHZpZXdib3ggdGFibGU6ICIpLGRlKDQ1LCJzcGFuIiksT2UoNDYpLGhlKCkoKSxkZSg0NywiZGl2IiwzMyksZ3QoNDgsbjd0LDIsMSwiYXBwLXF1ZXJ5IiwzNCksaGUoKSxkZSg0OSwiZGl2IiwyNykoNTAsImJ1dHRvbiIsMzUpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXty'@; put 'ZXR1cm4gaC5yZXNldEZpbHRlcigpfSksT2UoNTEsIiByZXNldCBmaWx0ZXIgIiksaGUoKSxkZSg1MiwiYnV0dG9uIiwyOCksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBoLmZpbHRlcj0hMX0pLE9lKDUzLCIgQ2FuY2VsICIpLGhlKCksZGUoNTQsImJ1dHRvbiIsMzYpLEZ0KCJjbGlj'@; put 'ayIsZnVuY3Rpb24oKXtyZXR1cm4gaC5zZW5kQ2xhdXNlKCl9KSxPZSg1NSwiIE9rICIpLGhlKCkoKSgpKSwyJmQmJihNZSgiY2xyTW9kYWxPcGVuIixoLnZpZXdib3hNb2RhbCkoImNsck1vZGFsQ2xvc2FibGUiLCEwKSgiY2xyTW9kYWxTaXplIiwibGciKSxmZSgzKSxNZSgibmdJZiIsaC5s'@; put 'aWNlbmNlU3RhdGUudmFsdWUudmlld2JveF9saW1pdCE9PWguSW5maW5pdHkpLGZlKDYpLE1lKCJuZ0lmIixoLmxpYnJhcmllc0xvYWRpbmcpLGZlKCksTWUoIm5nSWYiLGgudmlld2JveExpbWl0UmVhY2hlZCksZmUoKSxNZSgibmdJZiIsaC52aWV3Ym94TW9kYWwpLGZlKDE5KSxNZSgibmdJ'@; put 'ZiIsaC52aWV3Ym94ZXMubGVuZ3RoPDEpLGZlKCksTWUoIm5nRm9yT2YiLGgudmlld2JveGVzKSxmZSgzKSxMcigiIENvbmZpZ3VyYXRpb24gKCIsbnVsbCE9aC5zZWxlY3RlZFZpZXdib3hUYWJsZSYmaC5zZWxlY3RlZFZpZXdib3hUYWJsZS52aWV3Ym94TGliRGF0YXNldD8iIyIrKG51bGw9'@; put 'PWguc2VsZWN0ZWRWaWV3Ym94VGFibGU/bnVsbDpoLnNlbGVjdGVkVmlld2JveFRhYmxlLnZpZXdib3hJZCkrIiAiKyhudWxsPT1oLnNlbGVjdGVkVmlld2JveFRhYmxlP251bGw6aC5zZWxlY3RlZFZpZXdib3hUYWJsZS52aWV3Ym94TGliRGF0YXNldCk6InNlbGVjdCB2aWV3Ym94IGZyb20g'@; put 'YWJvdmUiLCIpICIpLGZlKDIpLE1lKCJuZ1ZhciIsYk0oMTksVDh0LG51bGw9PWguc2VsZWN0ZWRWaWV3Ym94VGFibGV8fG51bGw9PWguc2VsZWN0ZWRWaWV3Ym94VGFibGUuaG90VGFibGU/bnVsbDpoLnNlbGVjdGVkVmlld2JveFRhYmxlLmhvdFRhYmxlLmNvbEhlYWRlcnNIaWRkZW4sbnVs'@; put 'bD09aC5zZWxlY3RlZFZpZXdib3hUYWJsZXx8bnVsbD09aC5zZWxlY3RlZFZpZXdib3hUYWJsZS5ob3RUYWJsZT9udWxsOmguc2VsZWN0ZWRWaWV3Ym94VGFibGUuaG90VGFibGUuY29sSGVhZGVyc1Zpc2libGUsbnVsbD09aC5zZWxlY3RlZFZpZXdib3hUYWJsZXx8bnVsbD09aC5zZWxlY3Rl'@; put 'ZFZpZXdib3hUYWJsZS5ob3RUYWJsZT9udWxsOmguc2VsZWN0ZWRWaWV3Ym94VGFibGUuaG90VGFibGUuaGVhZGVyUGtzKSksZmUoNSksTWUoIm5nRm9yT2YiLGgudmlld2JveGVzKSxmZSgpLGZpKCJjbHJNb2RhbE9wZW4iLGguZmlsdGVyKSxNZSgiY2xyTW9kYWxTaXplIiwieGwiKSgiY2xy'@; put 'TW9kYWxDbG9zYWJsZSIsITEpLGZlKDQpLEJ1KCIgIyIsbnVsbD09aC5maWx0ZXJpbmdWaWV3Ym94P251bGw6aC5maWx0ZXJpbmdWaWV3Ym94LmlkLCIgIixoLmZpbHRlckxpYmRzLCIgIiksZmUoMiksTWUoIm5nSWYiLGguZmlsdGVyKSxmZSg2KSxNZSgiY2xyTG9hZGluZyIsaC5maWx0ZXJM'@; put 'b2FkaW5nKSl9LGRlcGVuZGVuY2llczpbUXMsYmEsT2wscnUsWXUsVjAsSDIsY28sY2RlLElkLEZiLHhoLFkxLFJkLGw3LEQyLEkyLE1kLHRsLHM3LFdvLHdwLG50ZSwkZyxrMWUsQTFlLElZLFQxZSxZNmUsTTh0LEV3LHNFXSxlbmNhcHN1bGF0aW9uOjJ9KX19cmV0dXJuIGN9KSgpLEs2ZT0o'@; put 'KCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEpe3RoaXMuZmlsZU92ZXI9bmV3IEtyLHRoaXMuZmlsZURyb3A9bmV3IEtyLHRoaXMuZWxlbWVudD1hfW9uRHJvcChhKXt0aGlzLl9wcmV2ZW50QW5kU3RvcChhKTtjb25zdCBkPWEuZGF0YVRyYW5zZmVyPy5maWxlcyxoPVtdO2lmKGQpZm9yKGxl'@; put 'dCBmPTA7ZjxkLmxlbmd0aDtmKyspaC5wdXNoKGRbZl0pO3RoaXMudXBsb2FkZXI/LmFkZFRvUXVldWUoaCksdGhpcy5maWxlT3Zlci5lbWl0KCExKSx0aGlzLmZpbGVEcm9wLmVtaXQoaCl9b25EcmFnT3ZlcihhKXt0aGlzLl9wcmV2ZW50QW5kU3RvcChhKTtjb25zdCBkPWEuZGF0YVRyYW5z'@; put 'ZmVyO2lmKGQpe2lmKC0xPT09ZC50eXBlcy5pbmRleE9mKCJGaWxlcyIpKXJldHVybjtkLmRyb3BFZmZlY3Q9ImNvcHkifXRoaXMuZmlsZU92ZXIuZW1pdCghMCl9b25EcmFnTGVhdmUoYSl7dGhpcy5fcHJldmVudEFuZFN0b3AoYSksdGhpcy5maWxlT3Zlci5lbWl0KCExKX1fcHJldmVudEFu'@; put 'ZFN0b3AoYSl7YS5wcmV2ZW50RGVmYXVsdCgpLGEuc3RvcFByb3BhZ2F0aW9uKCl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUoUWkpKX19c3RhdGlje3RoaXMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsImFwcEZpbGVE'@; put 'cm9wIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihkLGgpezEmZCYmRnQoImRyb3AiLGZ1bmN0aW9uKHYpe3JldHVybiBoLm9uRHJvcCh2KX0pKCJkcmFnb3ZlciIsZnVuY3Rpb24odil7cmV0dXJuIGgub25EcmFnT3Zlcih2KX0pKCJkcmFnbGVhdmUiLGZ1bmN0aW9uKHYpe3JldHVybiBo'@; put 'Lm9uRHJhZ0xlYXZlKHYpfSl9LGlucHV0czp7dXBsb2FkZXI6InVwbG9hZGVyIn0sb3V0cHV0czp7ZmlsZU92ZXI6ImZpbGVPdmVyIixmaWxlRHJvcDoiZmlsZURyb3AifX0pfX1yZXR1cm4gY30pKCksWDZlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5maWxlU2VsZWN0ZWQ9'@; put 'bmV3IEtyLHRoaXMuZWxlbWVudD1hfWlzRW1wdHlBZnRlclNlbGVjdGlvbigpe3JldHVybiEhdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYXR0cmlidXRlcy5tdWx0aXBsZX1vbkNoYW5nZSgpe2NvbnN0IGE9dGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZmlsZXM7dGhpcy51cGxvYWRl'@; put 'cj8uYWRkVG9RdWV1ZShhKSx0aGlzLmZpbGVTZWxlY3RlZC5lbWl0KGEpLHRoaXMuaXNFbXB0eUFmdGVyU2VsZWN0aW9uKCkmJih0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZT0iIil9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUo'@; put 'UWkpKX19c3RhdGlje3RoaXMuXHUwMjc1ZGlyPUVyKHt0eXBlOmMsc2VsZWN0b3JzOltbIiIsImFwcEZpbGVTZWxlY3QiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGQsaCl7MSZkJiZGdCgiY2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBoLm9uQ2hhbmdlKCl9KX0saW5wdXRzOnt1cGxv'@; put 'YWRlcjoidXBsb2FkZXIifSxvdXRwdXRzOntmaWxlU2VsZWN0ZWQ6ImZpbGVTZWxlY3RlZCJ9fSl9fXJldHVybiBjfSkoKTtmdW5jdGlvbiByN3QoYyxsKXsxJmMmJihkZSgwLCJwIiw4KSxPZSgxLCIgTm8gZGF0YXNldCBtZXRhIHRvIHNob3cuICIpLGhlKCkpfWZ1bmN0aW9uIGk3dChjLGwp'@; put 'e2lmKDEmYyYmKGFpKDApLGRlKDEsImNsci1kZy1jb2x1bW4iKSxPZSgyKSxoZSgpLHNpKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtmZSgyKSxTcihhLmNvbE5hbWV8fGEuY29sS2V5KX19ZnVuY3Rpb24gYTd0KGMsbCl7aWYoMSZjJiYoYWkoMCksZGUoMSwiY2xyLWRnLWNlbGwiKSxP'@; put 'ZSgyKSxoZSgpLHNpKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdCxkPUxlKCkuJGltcGxpY2l0O2ZlKDIpLFNyKGRbYS5jb2xLZXldKX19ZnVuY3Rpb24gczd0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiY2xyLWRnLXJvdyIsMTMpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtj'@; put 'b25zdCBoPXd0KGEpLiRpbXBsaWNpdCxmPUxlKDIpLiRpbXBsaWNpdDtyZXR1cm4gQ3QoZi5vblJvd0NsaWNrP2Yub25Sb3dDbGljayhoKToiIil9KSxndCgxLGE3dCwzLDEsIm5nLWNvbnRhaW5lciIsNSksaGUoKX1pZigyJmMpe2NvbnN0IGE9TGUoMikuJGltcGxpY2l0O2ZlKCksTWUoIm5n'@; put 'Rm9yT2YiLGEuY29sc1RvRGlzcGxheSl9fWZ1bmN0aW9uIG83dChjLGwpe2lmKDEmYyYmKGRlKDAsImNsci10YWItY29udGVudCIsMTEpKDEsImNsci1kYXRhZ3JpZCIpLGd0KDIsaTd0LDMsMSwibmctY29udGFpbmVyIiw1KSgzLHM3dCwyLDEsImNsci1kZy1yb3ciLDEyKSxoZSgpKCkpLDIm'@; put 'Yyl7Y29uc3QgYT1MZSgpLiRpbXBsaWNpdDtmZSgyKSxNZSgibmdGb3JPZiIsYS5jb2xzVG9EaXNwbGF5KSxmZSgpLE1lKCJuZ0Zvck9mIixhLm1ldGEpfX1mdW5jdGlvbiBsN3QoYyxsKXtpZigxJmMmJihkZSgwLCJjbHItdGFiIikoMSwiYnV0dG9uIiw5KSxPZSgyKSxoZSgpLGd0KDMsbzd0'@; put 'LDQsMiwiY2xyLXRhYi1jb250ZW50IiwxMCksaGUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0LGQ9bC5pbmRleDtmZSgyKSxTcihhLm5hbWUpLGZlKCksTWUoImNscklmQWN0aXZlIiwwPT09ZCl9fWxldCBxNmU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMub3Blbj0hMSx0'@; put 'aGlzLmRzbWV0YT1bXSx0aGlzLnZlcnNpb25zPVtdLHRoaXMub3BlbkNoYW5nZT1uZXcgS3IsdGhpcy5yb3dDbGlja2VkPW5ldyBLcix0aGlzLmRzbWV0YVRhYnM9W10sdGhpcy52ZXJzaW9uc1RhYnM9W10sdGhpcy50YWJzPVtdfW5nT25Jbml0KCl7fW5nT25DaGFuZ2VzKGEpe2EuZHNtZXRh'@; put 'Py5jdXJyZW50VmFsdWU/Lmxlbmd0aD4wJiYodGhpcy5wYXJzZURTTWV0YSgpLHRoaXMucGFyc2VWZXJzaW9ucygpLHRoaXMudGFicz1bLi4udGhpcy5kc21ldGFUYWJzLC4uLnRoaXMudmVyc2lvbnNUYWJzXSl9cGFyc2VEU01ldGEoKXt0aGlzLmRzbWV0YVRhYnM9W107Zm9yKGxldCBhIG9m'@; put 'IHRoaXMuZHNtZXRhKXtsZXQgZD10aGlzLmRzbWV0YVRhYnMuZmluZEluZGV4KGg9PmgubmFtZT09PWEuT0RTX1RBQkxFKTtkPDAmJihkPXRoaXMuZHNtZXRhVGFicy5wdXNoKHtuYW1lOmEuT0RTX1RBQkxFLHRpdGxlOiJEYXRhc2V0IE1ldGEiLGNvbHNUb0Rpc3BsYXk6W3tjb2xLZXk6Ik5B'@; put 'TUUifSx7Y29sS2V5OiJWQUxVRSJ9XSxtZXRhOltdLG9uUm93Q2xpY2s6aD0+e3RoaXMucm93Q2xpY2tlZC5lbWl0KGgpfX0pLTEpLHRoaXMuZHNtZXRhVGFic1tkXS5tZXRhLnB1c2goYSl9fXBhcnNlVmVyc2lvbnMoKXt0aGlzLnZlcnNpb25zVGFicz1be25hbWU6IlZFUlNJT05TIix0aXRs'@; put 'ZToiRGF0YXNldCBNZXRhIixjb2xzVG9EaXNwbGF5Olt7Y29sS2V5OiJMT0FEX1JFRiJ9LHtjb2xLZXk6IlVTRVJfTk0ifSx7Y29sS2V5OiJWRVJTSU9OX0RUVE0ifSx7Y29sS2V5OiJORVdfUkVDT1JEUyIsY29sTmFtZToiQUREIn0se2NvbEtleToiQ0hBTkdFRF9SRUNPUkRTIixjb2xOYW1l'@; put 'OiJNT0QifSx7Y29sS2V5OiJERUxFVEVEX1JFQ09SRFMiLGNvbE5hbWU6IkRFTCJ9LHtjb2xLZXk6IlZFUlNJT05fREVTQyJ9XSxtZXRhOnRoaXMudmVyc2lvbnMsb25Sb3dDbGljazphPT57dGhpcy5yb3dDbGlja2VkLmVtaXQoYSl9fV19b25PcGVuQ2hhbmdlKGEpe3RoaXMub3Blbj1hLHRo'@; put 'aXMub3BlbkNoYW5nZS5lbWl0KGEpfW9uQ2xvc2VDbGljaygpe3RoaXMub25PcGVuQ2hhbmdlKCExKX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKX19c3RhdGlje3RoaXMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImFwcC1kYXRh'@; put 'c2V0LWluZm8iXV0saW5wdXRzOntvcGVuOiJvcGVuIixkc21ldGE6ImRzbWV0YSIsdmVyc2lvbnM6InZlcnNpb25zIn0sb3V0cHV0czp7b3BlbkNoYW5nZToib3BlbkNoYW5nZSIscm93Q2xpY2tlZDoicm93Q2xpY2tlZCJ9LGZlYXR1cmVzOltibF0sZGVjbHM6MTAsdmFyczo1LGNvbnN0czpb'@; put 'WzMsImNsck1vZGFsT3BlbkNoYW5nZSIsImNsck1vZGFsT3BlbiIsImNsck1vZGFsU2l6ZSIsImNsck1vZGFsQ2xvc2FibGUiXSxbMSwibW9kYWwtdGl0bGUiLCJjZW50ZXIiLCJ0ZXh0LWNlbnRlciIsImNvbG9yLWRhcmtlci1ncmF5Il0sWzEsIm1vZGFsLWJvZHkiXSxbImNsYXNzIiwidGV4'@; put 'dC1jZW50ZXIiLDQsIm5nSWYiXSxbImNsckxheW91dCIsInZlcnRpY2FsIl0sWzQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJtb2RhbC1mb290ZXIiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1pbmZvLW91dGxpbmUiLDMsImNsaWNrIl0sWzEsInRleHQtY2VudGVy'@; put 'Il0sWyJjbHJUYWJMaW5rIiwiIiwiaWQiLCJsaW5rMSJdLFsiaWQiLCJjb250ZW50MSIsImNsYXNzIiwiZC1mbGV4IGNsci1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHctMTAwIiw0LCJjbHJJZkFjdGl2ZSJdLFsiaWQiLCJjb250ZW50MSIsMSwiZC1mbGV4IiwiY2xyLWp1c3RpZnktY29udGVu'@; put 'dC1jZW50ZXIiLCJ3LTEwMCJdLFsiY2xhc3MiLCJjbGlja2FibGUtcm93IiwzLCJjbGljayIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImNsaWNrYWJsZS1yb3ciLDMsImNsaWNrIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGQsaCl7MSZkJiYoZGUoMCwiY2xyLW1vZGFsIiwwKSxGdCgiY2xyTW9k'@; put 'YWxPcGVuQ2hhbmdlIixmdW5jdGlvbih2KXtyZXR1cm4gaC5vbk9wZW5DaGFuZ2Uodil9KSxkZSgxLCJoMyIsMSksT2UoMiwiRGF0YXNldCBNZXRhIiksaGUoKSxkZSgzLCJkaXYiLDIpLGd0KDQscjd0LDIsMCwicCIsMyksZGUoNSwiY2xyLXRhYnMiLDQpLGd0KDYsbDd0LDQsMiwiY2xyLXRh'@; put 'YiIsNSksaGUoKSgpLGRlKDcsImRpdiIsNikoOCwiYnV0dG9uIiw3KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGgub25DbG9zZUNsaWNrKCl9KSxPZSg5LCIgQ2xvc2UgIiksaGUoKSgpKCkpLDImZCYmKE1lKCJjbHJNb2RhbE9wZW4iLGgub3BlbikoImNsck1vZGFsU2l6ZSIsInhs'@; put 'IikoImNsck1vZGFsQ2xvc2FibGUiLCEwKSxmZSg0KSxNZSgibmdJZiIsaC5kc21ldGFUYWJzLmxlbmd0aDwxKSxmZSgyKSxNZSgibmdGb3JPZiIsaC50YWJzKSl9LGRlcGVuZGVuY2llczpbUXMsYmEseG0scjMsUjcsU20seHAsTDcsSmIsTW0sazcsQ20sRDcscnUsWXUsTGIsdm0sYm0seDcs'@; put 'eW0sbW0sUzddLGVuY2Fwc3VsYXRpb246Mn0pfX1yZXR1cm4gY30pKCk7Y29uc3QgYzd0PSgpPT5bIm51bWVyaWMiLHZvaWQgMF0sSjZlPSgpPT5bImF1dG9jb21wbGV0ZSIsImF1dG9jb21wbGV0ZS5jdXN0b20iXSxydGU9KGMsbCk9Pih7Y29sOmMsY29sSW5kZXg6bH0pLHU3dD0oKT0+W3Zv'@; put 'aWQgMF0sZDd0PSgpPT5bIlNPRlRTRUxFQ1QiLCJTT0ZUU0VMRUNUX0hPT0siXTtmdW5jdGlvbiBoN3QoYyxsKXtpZigxJmMmJihkZSgwLCJzcGFuIiwxNSksT2UoMSksaGUoKSksMiZjKXtjb25zdCBhPUxlKDIpO2ZlKCksU3IoYS5nZW5lcmF0ZWRSZWNvcmRVcmwpfX1mdW5jdGlvbiBmN3Qo'@; put 'YyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJidXR0b24iLDE2KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKDIpLmdlbmVyYXRlRWRpdFJlY29yZFVybCgpKX0pLE9lKDEpLGhlKCl9aWYoMiZjKXtjb25zdCBhPUxlKDIpO01lKCJkaXNhYmxlZCIsYS5n'@; put 'ZW5lcmF0ZUVkaXRSZWNvcmRVcmxMb2FkaW5nKSxmZSgpLExyKCIgIixhLmdlbmVyYXRlZFJlY29yZFVybD8iY29weSB0byBjbGlwYm9hcmQiOmEuZ2VuZXJhdGVFZGl0UmVjb3JkVXJsTG9hZGluZz8iR2VuZXJhdGluZyB1cmwuLi4iOiJMaW5rIHRvIHRoaXMgcmVjb3JkIiwiICIpfX1mdW5j'@; put 'dGlvbiBwN3QoYyxsKXtpZigxJmMmJihhaSgwKSxndCgxLGg3dCwyLDEsInNwYW4iLDEzKSgyLGY3dCwyLDIsImJ1dHRvbiIsMTQpLHNpKCkpLDImYyl7Y29uc3QgYT1MZSgpO2ZlKCksTWUoIm5nSWYiLCEobnVsbCE9YS5jdXJyZW50UmVjb3JkJiZhLmN1cnJlbnRSZWNvcmQubm9MaW5rT3B0'@; put 'aW9uKSksZmUoKSxNZSgibmdJZiIsIShudWxsIT1hLmN1cnJlbnRSZWNvcmQmJmEuY3VycmVudFJlY29yZC5ub0xpbmtPcHRpb24pKX19ZnVuY3Rpb24gZzd0KGMsbCl7MSZjJiYoZGUoMCwiZGl2IiwxNykoMSwic3BhbiIsMTgpLE9lKDIsIiBMb2FkaW5nLi4uICIpLGhlKCkoKSl9ZnVuY3Rp'@; put 'b24gbTd0KGMsbCl7MSZjJiZXdCgwLCJjbHItaWNvbiIsMzEpfWZ1bmN0aW9uIHY3dChjLGwpezEmYyYmKGRlKDAsInNwYW4iLDMyKSxPZSgxLCIgTG9hZGluZy4uLiAiKSxoZSgpKX1mdW5jdGlvbiB5N3QoYyxsKXsxJmMmJld0KDAsImNsci1pY29uIiwzMyl9ZnVuY3Rpb24gYjd0KGMsbCl7'@; put 'aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiY2xyLWlucHV0LWNvbnRhaW5lciIsMzUpKDEsImlucHV0IiwzNiksRnQoImZvY3VzaW4iLGZ1bmN0aW9uKGgpe3d0KGEpO2NvbnN0IGY9TGUoMykuaW5kZXg7cmV0dXJuIEN0KExlKDIpLm9uUmVjb3JkSW5wdXRGb2N1cyhoLGYpKX0pKCJwYXN0'@; put 'ZSIsZnVuY3Rpb24oaCl7cmV0dXJuIHd0KGEpLEN0KExlKDUpLnJlY29yZElucHV0UGFzdGUoaCkpfSkoImlucHV0IixmdW5jdGlvbihoKXt3dChhKTtjb25zdCBmPUxlKDMpLiRpbXBsaWNpdCx2PUxlKDIpO3JldHVybiB2LnJlY29yZElucHV0Q2hhbmdlKGgsZi5rZXkpLEN0KHYuY3VycmVu'@; put 'dFJlY29yZC5ub0xpbmtPcHRpb249ITApfSkscGkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe3d0KGEpO2NvbnN0IGY9TGUoMykuJGltcGxpY2l0LHY9TGUoMik7cmV0dXJuIGdpKHYuY3VycmVudFJlY29yZFtmLmtleV0saCl8fCh2LmN1cnJlbnRSZWNvcmRbZi5rZXldPWgpLEN0KGgp'@; put 'fSksaGUoKSgpfWlmKDImYyl7Y29uc3QgYT1MZSgzKS4kaW1wbGljaXQsZD1MZSgyKTtUcigiaW52YWxpZC1kYXRhIixkLmN1cnJlbnRSZWNvcmRJbnZhbGlkQ29scy5pbmNsdWRlcyhhLmtleSkpLGZlKCksZmkoIm5nTW9kZWwiLGQuY3VycmVudFJlY29yZFthLmtleV0pfX1mdW5jdGlvbiBf'@; put 'N3QoYyxsKXsxJmMmJkxsKDApfWZ1bmN0aW9uIHc3dChjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIpLGd0KDEsXzd0LDEsMCwibmctY29udGFpbmVyIiwzNyksaGUoKSksMiZjKXtjb25zdCBhPUxlKDMpLGQ9YS4kaW1wbGljaXQsaD1hLmluZGV4O0xlKDIpO2NvbnN0IGY9ZGEoMTYpO2ZlKCks'@; put 'TWUoIm5nVGVtcGxhdGVPdXRsZXQiLGYpKCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCIsY3AoMixydGUsZCxoKSl9fWZ1bmN0aW9uIEM3dChjLGwpe2lmKDEmYyYmKGFpKDApLGd0KDEsYjd0LDIsMywiY2xyLWlucHV0LWNvbnRhaW5lciIsMzQpKDIsdzd0LDIsNSwiZGl2Iiw1KSxzaSgpKSwy'@; put 'JmMpe2xldCBhLGQ7Y29uc3QgaD1MZSgyKS4kaW1wbGljaXQsZj1MZSgyKTtmZSgpLE1lKCJuZ0lmIixabygyLGM3dCkuaW5jbHVkZXMobnVsbD09Zi5jdXJyZW50UmVjb3JkVmFsaWRhdG9yfHxudWxsPT0oYT1mLmN1cnJlbnRSZWNvcmRWYWxpZGF0b3IuZ2V0UnVsZShoLmtleSkpP251bGw6'@; put 'YS5lZGl0b3IpKSxmZSgpLE1lKCJuZ0lmIixabygzLEo2ZSkuaW5jbHVkZXMobnVsbD09Zi5jdXJyZW50UmVjb3JkVmFsaWRhdG9yfHxudWxsPT0oZD1mLmN1cnJlbnRSZWNvcmRWYWxpZGF0b3IuZ2V0UnVsZShoLmtleSkpP251bGw6ZC5lZGl0b3IpKX19ZnVuY3Rpb24gUzd0KGMsbCl7aWYo'@; put 'MSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiY2xyLXRleHRhcmVhLWNvbnRhaW5lciIpKDEsInRleHRhcmVhIiwzOCwxKSxGdCgiZm9jdXNpbiIsZnVuY3Rpb24oaCl7d3QoYSk7Y29uc3QgZj1MZSgzKS5pbmRleDtyZXR1cm4gQ3QoTGUoMikub25SZWNvcmRJbnB1dEZvY3VzKGgsZikpfSkoInBh'@; put 'c3RlIixmdW5jdGlvbihoKXtyZXR1cm4gd3QoYSksQ3QoTGUoNSkucmVjb3JkSW5wdXRQYXN0ZShoKSl9KSgiaW5wdXQiLGZ1bmN0aW9uKGgpe3d0KGEpO2NvbnN0IGY9TGUoMykuJGltcGxpY2l0O3JldHVybiBDdChMZSgyKS5yZWNvcmRJbnB1dENoYW5nZShoLGYua2V5KSl9KSxwaSgibmdN'@; put 'b2RlbENoYW5nZSIsZnVuY3Rpb24oaCl7d3QoYSk7Y29uc3QgZj1MZSgzKS4kaW1wbGljaXQsdj1MZSgyKTtyZXR1cm4gZ2kodi5jdXJyZW50UmVjb3JkW2Yua2V5XSxoKXx8KHYuY3VycmVudFJlY29yZFtmLmtleV09aCksQ3QoaCl9KSxPZSgzLCIgICAgICAgICAgICAgICAgICAiKSxoZSgp'@; put 'LGRlKDQsImNsci1jb250cm9sLWhlbHBlciIpLE9lKDUpLGhlKCkoKX1pZigyJmMpe2xldCBhLGQsaDtjb25zdCBmPWRhKDIpLHY9TGUoMykuJGltcGxpY2l0LE09TGUoMik7ZmUoKSxUcigiaW52YWxpZC1kYXRhIixNLmN1cnJlbnRSZWNvcmRJbnZhbGlkQ29scy5pbmNsdWRlcyh2LmtleSkp'@; put 'KCJub3QtY2hhciIsbnVsbD09TS5jdXJyZW50UmVjb3JkVmFsaWRhdG9yfHxudWxsPT0oYT1NLmN1cnJlbnRSZWNvcmRWYWxpZGF0b3IuZ2V0UnVsZSh2LmtleSkpP251bGw6YS50eXBlKSxNZSgicm93cyIsdi52YWx1ZS5sZW5ndGg+ODA/NjoxKSxmaSgibmdNb2RlbCIsTS5jdXJyZW50UmVj'@; put 'b3JkW3Yua2V5XSksTWUoIm1heExlbmd0aCIsbnVsbD09TS5jdXJyZW50UmVjb3JkVmFsaWRhdG9yfHxudWxsPT0oZD1NLmN1cnJlbnRSZWNvcmRWYWxpZGF0b3IuZ2V0UnVsZSh2LmtleSkpP251bGw6ZC5sZW5ndGgpLGZlKDQpLEJ1KCIiLGYudmFsdWUubGVuZ3RoLCIgLyAiLG51bGw9PU0u'@; put 'Y3VycmVudFJlY29yZFZhbGlkYXRvcnx8bnVsbD09KGg9TS5jdXJyZW50UmVjb3JkVmFsaWRhdG9yLmdldFJ1bGUodi5rZXkpKT9udWxsOmgubGVuZ3RoLCIiKX19ZnVuY3Rpb24gTTd0KGMsbCl7MSZjJiZMbCgwKX1mdW5jdGlvbiB4N3QoYyxsKXtpZigxJmMmJihkZSgwLCJkaXYiKSxndCgx'@; put 'LE03dCwxLDAsIm5nLWNvbnRhaW5lciIsMzcpLGhlKCkpLDImYyl7Y29uc3QgYT1MZSgzKSxkPWEuJGltcGxpY2l0LGg9YS5pbmRleDtMZSgyKTtjb25zdCBmPWRhKDE2KTtmZSgpLE1lKCJuZ1RlbXBsYXRlT3V0bGV0IixmKSgibmdUZW1wbGF0ZU91dGxldENvbnRleHQiLGNwKDIscnRlLGQs'@; put 'aCkpfX1mdW5jdGlvbiBFN3QoYyxsKXtpZigxJmMmJihhaSgwKSxndCgxLFM3dCw2LDksImNsci10ZXh0YXJlYS1jb250YWluZXIiLDUpKDIseDd0LDIsNSwiZGl2Iiw1KSxzaSgpKSwyJmMpe2xldCBhLGQ7Y29uc3QgaD1MZSgyKS4kaW1wbGljaXQsZj1MZSgyKTtmZSgpLE1lKCJuZ0lmIixa'@; put 'bygyLHU3dCkuaW5jbHVkZXMobnVsbD09Zi5jdXJyZW50UmVjb3JkVmFsaWRhdG9yfHxudWxsPT0oYT1mLmN1cnJlbnRSZWNvcmRWYWxpZGF0b3IuZ2V0UnVsZShoLmtleSkpP251bGw6YS5lZGl0b3IpKSxmZSgpLE1lKCJuZ0lmIixabygzLEo2ZSkuaW5jbHVkZXMobnVsbD09Zi5jdXJyZW50'@; put 'UmVjb3JkVmFsaWRhdG9yfHxudWxsPT0oZD1mLmN1cnJlbnRSZWNvcmRWYWxpZGF0b3IuZ2V0UnVsZShoLmtleSkpP251bGw6ZC5lZGl0b3IpKX19ZnVuY3Rpb24gVDd0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiY2xyLXRleHRhcmVhLWNvbnRhaW5lciIsMzkpKDEsInRleHRh'@; put 'cmVhIiw0MCksRnQoInBhc3RlIixmdW5jdGlvbihoKXtyZXR1cm4gd3QoYSksQ3QoTGUoNCkucmVjb3JkSW5wdXRQYXN0ZShoKSl9KSgiaW5wdXQiLGZ1bmN0aW9uKGgpe3d0KGEpO2NvbnN0IGY9TGUoMikuJGltcGxpY2l0O3JldHVybiBDdChMZSgyKS5yZWNvcmRJbnB1dENoYW5nZShoLGYu'@; put 'a2V5KSl9KSxwaSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oaCl7d3QoYSk7Y29uc3QgZj1MZSgyKS4kaW1wbGljaXQsdj1MZSgyKTtyZXR1cm4gZ2kodi5jdXJyZW50UmVjb3JkW2Yua2V5XSxoKXx8KHYuY3VycmVudFJlY29yZFtmLmtleV09aCksQ3QoaCl9KSxoZSgpLGRlKDIsImNsci1j'@; put 'b250cm9sLWhlbHBlciIpLE9lKDMsIkhIOm1tOnNzIiksaGUoKSgpfWlmKDImYyl7bGV0IGE7Y29uc3QgZD1MZSgyKS4kaW1wbGljaXQsaD1MZSgyKTtmZSgpLFRyKCJpbnZhbGlkLWRhdGEiLGguY3VycmVudFJlY29yZEludmFsaWRDb2xzLmluY2x1ZGVzKGQua2V5KSkoIm5vdC1jaGFyIixu'@; put 'dWxsPT1oLmN1cnJlbnRSZWNvcmRWYWxpZGF0b3J8fG51bGw9PShhPWguY3VycmVudFJlY29yZFZhbGlkYXRvci5nZXRSdWxlKGQua2V5KSk/bnVsbDphLnR5cGUpLE1lKCJyb3dzIixkLnZhbHVlLmxlbmd0aD44MD82OjEpLGZpKCJuZ01vZGVsIixoLmN1cnJlbnRSZWNvcmRbZC5rZXldKX19'@; put 'ZnVuY3Rpb24gQTd0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiZGl2IiwzOSkoMSwidGV4dGFyZWEiLDQxKSxGdCgicGFzdGUiLGZ1bmN0aW9uKGgpe3JldHVybiB3dChhKSxDdChMZSg0KS5yZWNvcmRJbnB1dFBhc3RlKGgpKX0pKCJpbnB1dCIsZnVuY3Rpb24oaCl7d3QoYSk7'@; put 'Y29uc3QgZj1MZSgyKS4kaW1wbGljaXQ7cmV0dXJuIEN0KExlKDIpLnJlY29yZElucHV0Q2hhbmdlKGgsZi5rZXkpKX0pLHBpKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihoKXt3dChhKTtjb25zdCBmPUxlKDIpLiRpbXBsaWNpdCx2PUxlKDIpO3JldHVybiBnaSh2LmN1cnJlbnRSZWNvcmRb'@; put 'Zi5rZXldLGgpfHwodi5jdXJyZW50UmVjb3JkW2Yua2V5XT1oKSxDdChoKX0pLGhlKCksZGUoMiwiY2xyLWRhdGUtY29udGFpbmVyIiw0MikoMywiaW5wdXQiLDQzKSxGdCgiY2xyRGF0ZUNoYW5nZSIsZnVuY3Rpb24oaCl7d3QoYSk7Y29uc3QgZj1MZSgyKS4kaW1wbGljaXQ7cmV0dXJuIEN0'@; put 'KExlKDIpLnJlY29yZERhdGVDaGFuZ2UoaCxmLmtleSkpfSksaGUoKSgpKCl9aWYoMiZjKXtjb25zdCBhPUxlKDIpLiRpbXBsaWNpdCxkPUxlKDIpO2ZlKCksVHIoImludmFsaWQtZGF0YSIsZC5jdXJyZW50UmVjb3JkSW52YWxpZENvbHMuaW5jbHVkZXMoYS5rZXkpKSxmaSgibmdNb2RlbCIs'@; put 'ZC5jdXJyZW50UmVjb3JkW2Eua2V5XSl9fWZ1bmN0aW9uIGs3dChjLGwpezEmYyYmTGwoMCl9ZnVuY3Rpb24gRDd0KGMsbCl7aWYoMSZjJiYoZGUoMCwiZGl2IiksZ3QoMSxrN3QsMSwwLCJuZy1jb250YWluZXIiLDM3KSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoMiksZD1hLiRpbXBsaWNpdCxo'@; put 'PWEuaW5kZXg7TGUoMik7Y29uc3QgZj1kYSgxNik7ZmUoKSxNZSgibmdUZW1wbGF0ZU91dGxldCIsZikoIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0IixjcCgyLHJ0ZSxkLGgpKX19ZnVuY3Rpb24gSTd0KGMsbCl7aWYoMSZjJiYoYWkoMCksZGUoMSwiZGl2IiwyMCkoMiwiZGl2IiwyMSkoMywi'@; put 'cCIsMjIpLE9lKDQpLGd0KDUsbTd0LDEsMCwiY2xyLWljb24iLDIzKSxoZSgpLGRlKDYsInAiLDI0KSxPZSg3KSxoZSgpKCksZGUoOCwiZGl2IiwyNSksZ3QoOSx2N3QsMiwwLCJzcGFuIiwyNikoMTAseTd0LDEsMCwiY2xyLWljb24iLDI3KSgxMSxDN3QsMyw0LCJuZy1jb250YWluZXIiLDI4'@; put 'KSgxMixFN3QsMyw0LCJuZy1jb250YWluZXIiLDI4KSgxMyxUN3QsNCw2LCJjbHItdGV4dGFyZWEtY29udGFpbmVyIiwyOSkoMTQsQTd0LDQsMywiZGl2IiwyOSkoMTUsRDd0LDIsNSwiZGl2IiwyOCksaGUoKSgpLFd0KDE2LCJociIsMzApLHNpKCkpLDImYyl7bGV0IGEsZDtjb25zdCBoPUxl'@; put 'KCksZj1oLiRpbXBsaWNpdCx2PWguaW5kZXgsTT1MZSgyKTtmZSg0KSxMcigiICIsZi5rZXksIiAiKSxmZSgpLE1lKCJuZ0lmIixNLmlzQ29sUGsoZi5rZXkpKSxmZSgyKSxMcigiICIsbnVsbD09TS5jdXJyZW50UmVjb3JkVmFsaWRhdG9yfHxudWxsPT0oYT1NLmN1cnJlbnRSZWNvcmRWYWxp'@; put 'ZGF0b3IuZ2V0UnVsZShmLmtleSkpP251bGw6YS5kZXNjLCIgIiksZmUoKSxNZSgibmdTd2l0Y2giLG51bGw9PU0uY3VycmVudFJlY29yZFZhbGlkYXRvcnx8bnVsbD09KGQ9TS5jdXJyZW50UmVjb3JkVmFsaWRhdG9yLmdldFJ1bGUoZi5rZXkpKT9udWxsOmQudHlwZSksZmUoKSxNZSgibmdJ'@; put 'ZiIsTS5jdXJyZW50UmVjb3JkTG9hZGluZ3MuaW5jbHVkZXModikpLGZlKCksTWUoIm5nSWYiLE0uY3VycmVudFJlY29yZEVycm9ycy5pbmNsdWRlcyh2KSksZmUoKSxNZSgibmdTd2l0Y2hDYXNlIiwibnVtZXJpYyIpLGZlKCksTWUoIm5nU3dpdGNoQ2FzZSIsdm9pZCAwKSxmZSgpLE1lKCJu'@; put 'Z1N3aXRjaENhc2UiLCJ0aW1lIiksZmUoKSxNZSgibmdTd2l0Y2hDYXNlIiwiZGF0ZSIpLGZlKCksTWUoIm5nU3dpdGNoQ2FzZSIsImF1dG9jb21wbGV0ZSIpfX1mdW5jdGlvbiBSN3QoYyxsKXtpZigxJmMmJihhaSgwKSxndCgxLEk3dCwxNywxMSwibmctY29udGFpbmVyIiw1KSxzaSgpKSwy'@; put 'JmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7ZmUoKSxNZSgibmdJZiIsIkFjdGlvbiIhPT1hLmtleSYmIl9fX19fREVMRVRFX19USElTX19SRUNPUkRfX19fXyIhPT1hLmtleSYmIm5vTGlua09wdGlvbiIhPT1hLmtleSl9fWZ1bmN0aW9uIEw3dChjLGwpe2lmKDEmYyYmKGFpKDApLGd0KDEsUjd0'@; put 'LDIsMSwibmctY29udGFpbmVyIiwxOSksUW8oMiwia2V5dmFsdWUiKSxzaSgpKSwyJmMpe2NvbnN0IGE9TGUoKTtmZSgpLE1lKCJuZ0Zvck9mIix6OCgyLDIsYS5jdXJyZW50UmVjb3JkLGEub3JpZ2luYWxPcmRlcikpKCJuZ0ZvclRyYWNrQnkiLGEudHJhY2tCeUZuKX19ZnVuY3Rpb24gTzd0'@; put 'KGMsbCl7MSZjJiYoZGUoMCwiY2xyLWFsZXJ0Iiw0NCkoMSwiY2xyLWFsZXJ0LWl0ZW0iKSgyLCJzcGFuIiw0NSksT2UoMywiIERhdGEgVmFsaWRhdGlvbiBFcnJvcnMgLSBQbGVhc2UgUmV2aWV3ICIpLGhlKCkoKSgpKSwyJmMmJihOMSgidmlzaWJpbGl0eSIsTGUoKS5jdXJyZW50UmVjb3Jk'@; put 'SW52YWxpZENvbHMubGVuZ3RoPjA/InZpc2libGUiOiJoaWRkZW4iKSxNZSgiY2xyQWxlcnRDbG9zYWJsZSIsITEpKCJjbHJBbGVydFR5cGUiLCJkYW5nZXIiKSl9ZnVuY3Rpb24gUDd0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiZGl2Iiw0NikoMSwiYnV0dG9uIiw0NyksRnQo'@; put 'ImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgpLm9uUHJldmlvdXNSZWNvcmRDbGljaygpKX0pLFd0KDIsImNsci1pY29uIiw0OCksaGUoKSxkZSgzLCJwIiksT2UoNCwiIEN1cnJlbnQgcm93OiAiKSxkZSg1LCJzdHJvbmciKSxPZSg2KSxoZSgpKCksZGUoNywiYnV0dG9u'@; put 'Iiw0NyksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgpLm9uTmV4dFJlY29yZENsaWNrKCkpfSksV3QoOCwiY2xyLWljb24iLDQ5KSxoZSgpKCl9aWYoMiZjKXtjb25zdCBhPUxlKCk7ZmUoKSxNZSgiZGlzYWJsZWQiLGEuY3VycmVudFJlY29yZEludmFsaWRDb2xz'@; put 'Lmxlbmd0aD4wKSxmZSg1KSxMcigiICIsYS5jdXJyZW50UmVjb3JkSW5kZXgrMSwiICIpLGZlKCksTWUoImRpc2FibGVkIixhLmN1cnJlbnRSZWNvcmRJbnZhbGlkQ29scy5sZW5ndGg+MCl9fWZ1bmN0aW9uIEY3dChjLGwpe2lmKDEmYyYmKGRlKDAsIm9wdGlvbiIsNTMpLE9lKDEpLGhlKCkp'@; put 'LDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtNZSgibmdWYWx1ZSIsYSksZmUoKSxMcigiICIsYSwiICIpfX1mdW5jdGlvbiBIN3QoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJkaXYiKSgxLCJhcHAtc29mdC1zZWxlY3QiLDUxKSxGdCgiZm9jdXNpbiIsZnVuY3Rpb24oaCl7d3Qo'@; put 'YSk7Y29uc3QgZj1MZSgpLmNvbEluZGV4O3JldHVybiBDdChMZSgpLm9uUmVjb3JkSW5wdXRGb2N1cyhoLGYpKX0pLHBpKCJ2YWx1ZUNoYW5nZSIsZnVuY3Rpb24oaCl7d3QoYSk7Y29uc3QgZj1MZSgpLmNvbCx2PUxlKCk7cmV0dXJuIGdpKHYuY3VycmVudFJlY29yZFtmLmtleV0saCl8fCh2'@; put 'LmN1cnJlbnRSZWNvcmRbZi5rZXldPWgpLEN0KGgpfSksRnQoIm9uSW5wdXRFdmVudCIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKCksZj1oLmNvbCx2PWguY29sSW5kZXg7cmV0dXJuIEN0KExlKCkub25SZWNvcmREcm9wZG93bkNoYW5nZShmLmtleSx2KSl9KSxndCgyLEY3dCwyLDIs'@; put 'Im9wdGlvbiIsNTIpLGhlKCkoKX1pZigyJmMpe2xldCBhO2NvbnN0IGQ9TGUoKS5jb2wsaD1MZSgpO2ZlKCksZmkoInZhbHVlIixoLmN1cnJlbnRSZWNvcmRbZC5rZXldKSxNZSgiaW5wdXRJZCIsZC5rZXkpLGZlKCksTWUoIm5nRm9yT2YiLG51bGw9PWguY3VycmVudFJlY29yZFZhbGlkYXRv'@; put 'cnx8bnVsbD09KGE9aC5jdXJyZW50UmVjb3JkVmFsaWRhdG9yLmdldFJ1bGUoZC5rZXkpKT9udWxsOmEuc291cmNlKX19ZnVuY3Rpb24gTjd0KGMsbCl7aWYoMSZjJiYoZGUoMCwib3B0aW9uIiw1NiksT2UoMSksaGUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O01lKCJ2YWx1ZSIsYSks'@; put 'ZmUoKSxMcigiICIsYSwiICIpfX1mdW5jdGlvbiBWN3QoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJzZWxlY3QiLDU0KSxGdCgiZm9jdXNpbiIsZnVuY3Rpb24oaCl7d3QoYSk7Y29uc3QgZj1MZSgpLmNvbEluZGV4O3JldHVybiBDdChMZSgpLm9uUmVjb3JkSW5wdXRGb2N1cyho'@; put 'LGYpKX0pLHBpKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihoKXt3dChhKTtjb25zdCBmPUxlKCkuY29sLHY9TGUoKTtyZXR1cm4gZ2kodi5jdXJyZW50UmVjb3JkW2Yua2V5XSxoKXx8KHYuY3VycmVudFJlY29yZFtmLmtleV09aCksQ3QoaCl9KSxndCgxLE43dCwyLDIsIm9wdGlvbiIsNTUp'@; put 'LGhlKCl9aWYoMiZjKXtsZXQgYTtjb25zdCBkPUxlKCkuY29sLGg9TGUoKTtmaSgibmdNb2RlbCIsaC5jdXJyZW50UmVjb3JkW2Qua2V5XSksZmUoKSxNZSgibmdGb3JPZiIsbnVsbD09aC5jdXJyZW50UmVjb3JkVmFsaWRhdG9yfHxudWxsPT0oYT1oLmN1cnJlbnRSZWNvcmRWYWxpZGF0b3Iu'@; put 'Z2V0UnVsZShkLmtleSkpP251bGw6YS5zb3VyY2UpfX1mdW5jdGlvbiBCN3QoYyxsKXtpZigxJmMmJmd0KDAsSDd0LDMsMywiZGl2Iiw1MCkoMSxWN3QsMiwyLCJuZy10ZW1wbGF0ZSIsbnVsbCwyLGdjKSwyJmMpe2NvbnN0IGE9bC5jb2wsZD1kYSgyKSxoPUxlKCk7TWUoIm5nSWYiLG51bGw9'@; put 'PWguY3VycmVudFJlY29yZFZhbGlkYXRvcj9udWxsOmguY3VycmVudFJlY29yZFZhbGlkYXRvci5oYXNEcVJ1bGVzKGEua2V5LFpvKDIsZDd0KSkpKCJuZ0lmRWxzZSIsZCl9fWxldCBqN3Q9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQpe3RoaXMuc2FzU3RvcmVTZXJ2aWNlPWEsdGhp'@; put 'cy5oZWxwZXJTZXJ2aWNlPWQsdGhpcy5yZWNvcmRBY3Rpb249bnVsbCx0aGlzLmZpbHRlcj0hMSx0aGlzLnN1Ym1pdExvYWRpbmc9ITEsdGhpcy5oZWFkZXJQa3M9W10sdGhpcy5jZWxsVmFsaWRhdGlvbj1bXSx0aGlzLmN1cnJlbnRSZWNvcmRJbmRleD0tMSx0aGlzLmN1cnJlbnRSZWNvcmRM'@; put 'b2FkaW5ncz1bXSx0aGlzLmN1cnJlbnRSZWNvcmRFcnJvcnM9W10sdGhpcy5vblJlY29yZENoYW5nZT1uZXcgS3IsdGhpcy5vblJlY29yZElucHV0Rm9jdXNlZD1uZXcgS3IsdGhpcy5vblJlY29yZERyb3Bkb3duQ2hhbmdlZD1uZXcgS3IsdGhpcy5vblJlY29yZEVkaXRDbG9zZT1uZXcgS3Is'@; put 'dGhpcy5vblJlY29yZEVkaXRDb25maXJtPW5ldyBLcix0aGlzLm9uTmV4dFJlY29yZD1uZXcgS3IsdGhpcy5vblByZXZpb3VzUmVjb3JkPW5ldyBLcix0aGlzLmN1cnJlbnRSZWNvcmRJbnZhbGlkQ29scz1bXSx0aGlzLmdlbmVyYXRlRWRpdFJlY29yZFVybExvYWRpbmc9ITEsdGhpcy5nZW5l'@; put 'cmF0ZWRSZWNvcmRVcmw9bnVsbCx0aGlzLmFkZFJlY29yZFVybD1udWxsLHRoaXMucmVjb3JkTmV3T3JQa01vZGlmaWVkPSExLHRoaXMuYWRkUmVjb3JkTG9hZGluZz0hMSx0aGlzLm9yaWdpbmFsT3JkZXI9KGgsZik9PjB9bmdPbkluaXQoKXt9dmFsaWRhdGVSZWNvcmRDb2woYSxkKXt2YXIg'@; put 'aD10aGlzO3JldHVybiBRKGZ1bmN0aW9uKigpe3JldHVybiBuZXcgUHJvbWlzZSgoZix2KT0+e2guY3VycmVudFJlY29yZFZhbGlkYXRvcj8uZXhlY3V0ZUhvdFZhbGlkYXRvcihhLGQsTT0+e2YoTSl9KX0pfSkoKX1yZWNvcmREYXRlQ2hhbmdlKGEsZCl7bGV0IGg9dGhpcy5jdXJyZW50UmVj'@; put 'b3JkVmFsaWRhdG9yPy5nZXRSdWxlKGQpLGY9aD9oLmRhdGVGb3JtYXQ6IiI7dGhpcy5jdXJyZW50UmVjb3JkJiYodGhpcy5jdXJyZW50UmVjb3JkW2RdPWpzZSgpKGEpLmZvcm1hdChmKSl9Y29uZmlybVJlY29yZEVkaXQoKXt0aGlzLmN1cnJlbnRSZWNvcmRJbnZhbGlkQ29scy5sZW5ndGg8'@; put 'MSYmdGhpcy5vblJlY29yZENoYW5nZS5lbWl0KHRoaXMuY3VycmVudFJlY29yZCl9Y2xvc2VSZWNvcmRFZGl0KCl7dGhpcy5vblJlY29yZEVkaXRDbG9zZS5lbWl0KCl9b25SZWNvcmREcm9wZG93bkNoYW5nZShhLGQpe3RoaXMub25SZWNvcmREcm9wZG93bkNoYW5nZWQuZW1pdCh7Y29sTmFt'@; put 'ZTphLGNvbDpkfSl9b25SZWNvcmRJbnB1dEZvY3VzKGEsZCl7dGhpcy5vblJlY29yZElucHV0Rm9jdXNlZC5lbWl0KHtldmVudDphLGNvbE5hbWU6ZH0pfXJlY29yZElucHV0UGFzdGUoYSl7c2V0VGltZW91dCgoKT0+e2EudGFyZ2V0LnZhbHVlPWEudGFyZ2V0LnZhbHVlLnJlcGxhY2UoL1xz'@; put 'KyQvLCIiKX0sMCl9cmVjb3JkSW5wdXRDaGFuZ2UoYSxkKXt2YXIgaD10aGlzO3JldHVybiBRKGZ1bmN0aW9uKigpe2NvbnN0IGY9aC5jdXJyZW50UmVjb3JkVmFsaWRhdG9yPy5nZXRSdWxlKGQpLHY9YS50YXJnZXQudmFsdWU7aC5oZWxwZXJTZXJ2aWNlLmRlYm91bmNlQ2FsbCgzMDAsKCk9'@; put 'PntoLnZhbGlkYXRlUmVjb3JkQ29sKGYsdikudGhlbihNPT57Y29uc3QgST1oLmN1cnJlbnRSZWNvcmRJbnZhbGlkQ29scy5pbmRleE9mKGQpO00/ST4tMSYmaC5jdXJyZW50UmVjb3JkSW52YWxpZENvbHMuc3BsaWNlKEksMSk6STwwJiZoLmN1cnJlbnRSZWNvcmRJbnZhbGlkQ29scy5wdXNo'@; put 'KGQpfSl9KX0pKCl9b25OZXh0UmVjb3JkQ2xpY2soKXt0aGlzLm9uTmV4dFJlY29yZC5lbWl0KCl9b25QcmV2aW91c1JlY29yZENsaWNrKCl7dGhpcy5vblByZXZpb3VzUmVjb3JkLmVtaXQoKX1jb3B5VG9DbGlwKGEpe2NvbnN0IGQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3JlY29yZE1v'@; put 'ZGFsUmVmIC5tb2RhbC10aXRsZSIpO2lmKGQpe2NvbnN0IGg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTtoLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsaC5zdHlsZS5sZWZ0PSIwIixoLnN0eWxlLnRvcD0iMCIsaC5zdHlsZS5vcGFjaXR5PSIwIixoLnN0eWxlLnpJbmRleD0i'@; put 'NTAwMCIsaC52YWx1ZT1hLGQuYXBwZW5kQ2hpbGQoaCksaC5mb2N1cygpLGguc2VsZWN0KCksZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKSxkLnJlbW92ZUNoaWxkKGgpLHRoaXMuZ2VuZXJhdGVkUmVjb3JkVXJsPWF9fWdlbmVyYXRlRWRpdFJlY29yZFVybCgpe3ZhciBhPXRoaXM7cmV0'@; put 'dXJuIFEoZnVuY3Rpb24qKCl7aWYoYS5nZW5lcmF0ZWRSZWNvcmRVcmwpYS5jb3B5VG9DbGlwKGEuZ2VuZXJhdGVkUmVjb3JkVXJsKTtlbHNle2EuZ2VuZXJhdGVFZGl0UmVjb3JkVXJsTG9hZGluZz0hMDtjb25zdCBkPVtdO2EuaGVhZGVyUGtzLmZvckVhY2goaD0+e2xldCBmPSJDIix2PSIi'@; put 'O2ZvcihsZXQgTT0wO008YS5jZWxsVmFsaWRhdGlvbi5sZW5ndGg7TSsrKXtjb25zdCBJPWEuY2VsbFZhbGlkYXRpb25bTV07aWYoSS5kYXRhPT09aCl7KCJudW1lcmljIj09PUkudHlwZXx8ImRhdGUiPT09SS50eXBlfHwidGltZSI9PT1JLnR5cGUpJiYoZj0iTiIpO2JyZWFrfX12PSJDIj09'@; put 'PWY/YCcke2EuY3VycmVudFJlY29yZFtoXX0nYDphLmN1cnJlbnRSZWNvcmRbaF0udG9TdHJpbmcoKSxkLnB1c2goe0dST1VQX0xPR0lDOiJBTkQiLFNVQkdST1VQX0xPR0lDOiJBTkQiLFNVQkdST1VQX0lEOjAsVkFSSUFCTEVfTk06aCxPUEVSQVRPUl9OTToiPSIsUkFXX1ZBTFVFOnZ9KX0p'@; put 'LGQubGVuZ3RoPjAmJmEubGliZHMmJih5aWVsZCBhLnNhc1N0b3JlU2VydmljZS5zYXZlUXVlcnkoYS5saWJkcyxkKS50aGVuKGg9PnthLnF1ZXJ5RmlsdGVyPXtpZDpoLnJlc3VsdFswXS5GSUxURVJfUkssdGFibGU6aC5yZXN1bHRbMF0uRklMVEVSX1RBQkxFfTtjb25zdCBNPWxvY2F0aW9u'@; put 'LmhyZWYuc3BsaXQoIiMiKVswXSsiIy9lZGl0b3IvZWRpdC1yZWNvcmQvIithLnF1ZXJ5RmlsdGVyLnRhYmxlKyIvIithLnF1ZXJ5RmlsdGVyLmlkO2EuY29weVRvQ2xpcChNKSxhLmdlbmVyYXRlRWRpdFJlY29yZFVybExvYWRpbmc9ITEsYS5maWx0ZXI9ITF9KS5jYXRjaChoPT57YS5zdWJt'@; put 'aXRMb2FkaW5nPSExfSkpfX0pKCl9aXNDb2xQayhhKXtyZXR1cm4gdGhpcy5oZWFkZXJQa3MuaW5kZXhPZihhKT4tMX10cmFja0J5Rm4oYSxkKXtyZXR1cm4gYX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKSgkZShJaCksJGUoYnUpKX19c3RhdGlj'@; put 'e3RoaXMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImFwcC1lZGl0LXJlY29yZCJdXSxpbnB1dHM6e2N1cnJlbnRSZWNvcmQ6ImN1cnJlbnRSZWNvcmQiLHJlY29yZEFjdGlvbjoicmVjb3JkQWN0aW9uIixsaWJkczoibGliZHMiLHF1ZXJ5RmlsdGVyOiJxdWVyeUZpbHRlciIs'@; put 'ZmlsdGVyOiJmaWx0ZXIiLHN1Ym1pdExvYWRpbmc6InN1Ym1pdExvYWRpbmciLGhlYWRlclBrczoiaGVhZGVyUGtzIixjZWxsVmFsaWRhdGlvbjoiY2VsbFZhbGlkYXRpb24iLGN1cnJlbnRSZWNvcmRJbmRleDoiY3VycmVudFJlY29yZEluZGV4IixjdXJyZW50UmVjb3JkTG9hZGluZ3M6ImN1'@; put 'cnJlbnRSZWNvcmRMb2FkaW5ncyIsY3VycmVudFJlY29yZEVycm9yczoiY3VycmVudFJlY29yZEVycm9ycyIsY3VycmVudFJlY29yZFZhbGlkYXRvcjoiY3VycmVudFJlY29yZFZhbGlkYXRvciJ9LG91dHB1dHM6e29uUmVjb3JkQ2hhbmdlOiJvblJlY29yZENoYW5nZSIsb25SZWNvcmRJbnB1'@; put 'dEZvY3VzZWQ6Im9uUmVjb3JkSW5wdXRGb2N1c2VkIixvblJlY29yZERyb3Bkb3duQ2hhbmdlZDoib25SZWNvcmREcm9wZG93bkNoYW5nZWQiLG9uUmVjb3JkRWRpdENsb3NlOiJvblJlY29yZEVkaXRDbG9zZSIsb25SZWNvcmRFZGl0Q29uZmlybToib25SZWNvcmRFZGl0Q29uZmlybSIsb25O'@; put 'ZXh0UmVjb3JkOiJvbk5leHRSZWNvcmQiLG9uUHJldmlvdXNSZWNvcmQ6Im9uUHJldmlvdXNSZWNvcmQifSxkZWNsczoxNyx2YXJzOjExLGNvbnN0czpbWyJhdXRvY29tcGxldGUiLCIiXSxbImNoYXJUZXh0YXJlYSIsIiJdLFsib3RoZXJfdGhhbl9zb2Z0X3NlbGVjdCIsIiJdLFsiaWQiLCJy'@; put 'ZWNvcmRNb2RhbFJlZiIsMSwicmVjb3JkLWVkaXQtbW9kYWwiLCJwb3NpdGlvbi1yZWxhdGl2ZSIsMywiY2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxDbG9zYWJsZSJdLFsxLCJtb2RhbC10aXRsZSJdLFs0LCJuZ0lmIl0sWzEsIm1vZGFsLWJvZHkiXSxbImNsYXNzIiwiZC1mbGV4IGp1c3RpZnkt'@; put 'Y29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIHctMTAwIHB5LTEwIiw0LCJuZ0lmIl0sWzEsIm1vZGFsLWZvb3RlciIsInAtMCIsImNsci1nYXAtNSIsImNsci1nYXAtbWQtMCIsImNsci1mbGV4LWNvbHVtbiIsImNsci1mbGV4LW1kLXJvdyJdLFsiY2xhc3MiLCJ2YWxpZGF0aW9u'@; put 'LWluZm8tYWxlcnQiLDMsInZpc2liaWxpdHkiLCJjbHJBbGVydENsb3NhYmxlIiwiY2xyQWxlcnRUeXBlIiw0LCJuZ0lmIl0sWyJjbGFzcyIsInByZXYtbmV4dCIsNCwibmdJZiJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLW91dGxpbmUiLCJmb2N1c2FibGUiLCJtci01aSIsMywi'@; put 'Y2xpY2siXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1wcmltYXJ5IiwiZm9jdXNhYmxlIiwzLCJjbGljayIsImRpc2FibGVkIl0sWyJjbGFzcyIsInBvc2l0aW9uLWFic29sdXRlIGdlbmVyYXRlLXJlY29yZC11cmwiLDQsIm5nSWYiXSxbImNsYXNzIiwiYnRuIGJ0bi1saW5rIGdl'@; put 'bmVyYXRlLXJlY29yZC11cmwtYnV0dG9uIHBvc2l0aW9uLWFic29sdXRlIiwzLCJkaXNhYmxlZCIsImNsaWNrIiw0LCJuZ0lmIl0sWzEsInBvc2l0aW9uLWFic29sdXRlIiwiZ2VuZXJhdGUtcmVjb3JkLXVybCJdLFsxLCJidG4iLCJidG4tbGluayIsImdlbmVyYXRlLXJlY29yZC11cmwtYnV0'@; put 'dG9uIiwicG9zaXRpb24tYWJzb2x1dGUiLDMsImNsaWNrIiwiZGlzYWJsZWQiXSxbMSwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciIsImFsaWduLWl0ZW1zLWNlbnRlciIsInctMTAwIiwicHktMTAiXSxbMSwic3Bpbm5lciJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiLCJuZ0ZvclRy'@; put 'YWNrQnkiXSxbMSwiY29sdW1uLWVudHJ5IiwiY2xyLWZsZXgtY29sdW1uIiwiY2xyLWZsZXgtbWQtcm93Il0sWzEsIm5hbWUtaW5wdXQtcm93Il0sWzEsImZvbnQtd2VpZ2h0LWJvbGQiXSxbInNoYXBlIiwia2V5Iiw0LCJuZ0lmIl0sWzEsImNlbGwtZGVzYyJdLFsxLCJpbnB1dHMtd3JhcHBl'@; put 'ciIsInBvc2l0aW9uLXJlbGF0aXZlIiwzLCJuZ1N3aXRjaCJdLFsiY2xhc3MiLCJzcGlubmVyIHNwaW5uZXItaW5saW5lIGZsZXgtdW5zZXQgcG9zaXRpb24tYWJzb2x1dGUgZW50cnktaW5wdXQtbGVmdC1vZmZzZXQiLDQsIm5nSWYiXSxbImNsYXNzIiwiZmxleC11bnNldCBwb3NpdGlvbi1h'@; put 'YnNvbHV0ZSBlbnRyeS1pbnB1dC1sZWZ0LW9mZnNldCIsInNoYXBlIiwiZXJyb3Itc3RhbmRhcmQiLCJzdGF0dXMiLCJ3YXJuaW5nIiw0LCJuZ0lmIl0sWzQsIm5nU3dpdGNoQ2FzZSJdLFsiY2xhc3MiLCJkYXRlLWZpZWxkIiw0LCJuZ1N3aXRjaENhc2UiXSxbMSwibXQtMTAiXSxbInNoYXBl'@; put 'Iiwia2V5Il0sWzEsInNwaW5uZXIiLCJzcGlubmVyLWlubGluZSIsImZsZXgtdW5zZXQiLCJwb3NpdGlvbi1hYnNvbHV0ZSIsImVudHJ5LWlucHV0LWxlZnQtb2Zmc2V0Il0sWyJzaGFwZSIsImVycm9yLXN0YW5kYXJkIiwic3RhdHVzIiwid2FybmluZyIsMSwiZmxleC11bnNldCIsInBvc2l0'@; put 'aW9uLWFic29sdXRlIiwiZW50cnktaW5wdXQtbGVmdC1vZmZzZXQiXSxbImNsYXNzIiwibnVtZXJpYy1pbnB1dCIsMywiaW52YWxpZC1kYXRhIiw0LCJuZ0lmIl0sWzEsIm51bWVyaWMtaW5wdXQiXSxbImNscklucHV0IiwiIiwidHlwZSIsInRleHQiLDEsIm5vdC1jaGFyIiwzLCJmb2N1c2lu'@; put 'IiwicGFzdGUiLCJpbnB1dCIsIm5nTW9kZWxDaGFuZ2UiLCJuZ01vZGVsIl0sWzQsIm5nVGVtcGxhdGVPdXRsZXQiLCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCJdLFsiY2xyVGV4dGFyZWEiLCIiLDMsImZvY3VzaW4iLCJwYXN0ZSIsImlucHV0IiwibmdNb2RlbENoYW5nZSIsInJvd3MiLCJu'@; put 'Z01vZGVsIiwibWF4TGVuZ3RoIl0sWzEsImRhdGUtZmllbGQiXSxbImNsclRleHRhcmVhIiwiIiwzLCJwYXN0ZSIsImlucHV0IiwibmdNb2RlbENoYW5nZSIsInJvd3MiLCJuZ01vZGVsIl0sWyJjbHJUZXh0YXJlYSIsIiIsInJvd3MiLCIxIiwiY29scyIsImF1dG8iLDEsIm5vdC1jaGFyIiwz'@; put 'LCJwYXN0ZSIsImlucHV0IiwibmdNb2RlbENoYW5nZSIsIm5nTW9kZWwiXSxbMSwiZGF0ZS1waWNrZXIiXSxbInR5cGUiLCJkYXRlIiwibmFtZSIsImRhdGUiLCJjbHJEYXRlIiwiIiwxLCJkLW5vbmUiLDMsImNsckRhdGVDaGFuZ2UiXSxbMSwidmFsaWRhdGlvbi1pbmZvLWFsZXJ0IiwzLCJj'@; put 'bHJBbGVydENsb3NhYmxlIiwiY2xyQWxlcnRUeXBlIl0sWzEsImFsZXJ0LXRleHQiXSxbMSwicHJldi1uZXh0Il0sWyJ0eXBlIiwiYnV0dG9uIiwidGFiaW5kZXgiLCIwIiwxLCJidG4iLCJidG4tb3V0bGluZSIsImZvY3VzYWJsZSIsMywiY2xpY2siLCJkaXNhYmxlZCJdLFsic2hhcGUiLCJh'@; put 'bmdsZSBsZWZ0Iiwic2l6ZSIsIjIzIl0sWyJzaGFwZSIsImFuZ2xlIHJpZ2h0Iiwic2l6ZSIsIjIzIl0sWzQsIm5nSWYiLCJuZ0lmRWxzZSJdLFszLCJmb2N1c2luIiwidmFsdWVDaGFuZ2UiLCJvbklucHV0RXZlbnQiLCJ2YWx1ZSIsImlucHV0SWQiXSxbMywibmdWYWx1ZSIsNCwibmdGb3Ii'@; put 'LCJuZ0Zvck9mIl0sWzMsIm5nVmFsdWUiXSxbImNsclNlbGVjdCIsIiIsMywiZm9jdXNpbiIsIm5nTW9kZWxDaGFuZ2UiLCJuZ01vZGVsIl0sWzMsInZhbHVlIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMywidmFsdWUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZCxoKXtpZigxJmQpe2NvbnN0IGY9'@; put 'T24oKTtkZSgwLCJjbHItbW9kYWwiLDMpKDEsImgzIiw0KSxPZSgyKSxndCgzLHA3dCwzLDIsIm5nLWNvbnRhaW5lciIsNSksaGUoKSxkZSg0LCJkaXYiLDYpLGd0KDUsZzd0LDMsMCwiZGl2Iiw3KSg2LEw3dCwzLDUsIm5nLWNvbnRhaW5lciIsNSksaGUoKSxkZSg3LCJkaXYiLDgpLGd0KDgs'@; put 'Tzd0LDQsNCwiY2xyLWFsZXJ0Iiw5KSg5LFA3dCw5LDMsImRpdiIsMTApLGRlKDEwLCJkaXYiKSgxMSwiYnV0dG9uIiwxMSksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChmKSxoLmN1cnJlbnRSZWNvcmQubm9MaW5rT3B0aW9uPSExLEN0KGguY2xvc2VSZWNvcmRFZGl0KCkpfSks'@; put 'T2UoMTIsIiBDYW5jZWwgIiksaGUoKSxkZSgxMywiYnV0dG9uIiwxMiksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChmKSxDdChoLmNvbmZpcm1SZWNvcmRFZGl0KCkpfSksT2UoMTQsIiBDb25maXJtICIpLGhlKCkoKSgpLGd0KDE1LEI3dCwzLDMsIm5nLXRlbXBsYXRlIixudWxs'@; put 'LDAsZ2MpLGhlKCl9MiZkJiYoTWUoImNsck1vZGFsT3BlbiIsITApKCJjbHJNb2RhbENsb3NhYmxlIiwhMSksZmUoMiksWmYoIiAiLCJBREQiPT09aC5yZWNvcmRBY3Rpb24/IkFkZCI6IkVkaXQiLCIgcmVjb3JkIGluICIsbnVsbD09aC5saWJkcz9udWxsOmgubGliZHMuc3BsaXQoIi4iKVsw'@; put 'XSwiLiIsbnVsbD09aC5saWJkcz9udWxsOmgubGliZHMuc3BsaXQoIi4iKVsxXSwiICIpLGZlKCksTWUoIm5nSWYiLCJFRElUIj09PWgucmVjb3JkQWN0aW9uKSxmZSgyKSxNZSgibmdJZiIsaC5hZGRSZWNvcmRMb2FkaW5nKSxmZSgpLE1lKCJuZ0lmIiwhaC5hZGRSZWNvcmRMb2FkaW5nKSxm'@; put 'ZSgyKSxNZSgibmdJZiIsaC5jdXJyZW50UmVjb3JkSW52YWxpZENvbHMubGVuZ3RoPjApLGZlKCksTWUoIm5nSWYiLGguY3VycmVudFJlY29yZEludmFsaWRDb2xzLmxlbmd0aDwxKSxmZSg0KSxNZSgiZGlzYWJsZWQiLGguY3VycmVudFJlY29yZEludmFsaWRDb2xzLmxlbmd0aD4wKSl9LGRl'@; put 'cGVuZGVuY2llczpbUXMsYmEsQjEseDIsZHAsRDIsSTIsR2wsazIsdGwsV28sckUsbmhlLGlFLE9sLHJ1LFl1LFdMLHF4LG5PLGRHLFkxLHFMLEU3LHJPLElkZSxHNmUseFJdLGVuY2Fwc3VsYXRpb246Mn0pfX1yZXR1cm4gY30pKCk7ZnVuY3Rpb24gejd0KGMsbCl7aWYoMSZjJiYoZGUoMCwi'@; put 'cCIsMyksT2UoMSksaGUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O2ZlKCksTHIoIiAiLGEsIiAiKX19bGV0IFU3dD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7dGhpcy5zdGF0ZXNMaXN0PVtdLHRoaXMucHJvY2Vzc2VkU3RhdGVzPVtdLHRoaXMuc3RhdGVySW5Qcm9ncmVzcz0h'@; put 'MSx0aGlzLm1pbkRlbGF5PTFlM31uZ09uSW5pdCgpe31hcHBlbmRTdGF0ZShhKXtpZigie2ZpbmlzaH0iPT09YSlyZXR1cm4gdGhpcy5zdGF0ZXJJblByb2dyZXNzPSExLHZvaWQgY2xlYXJJbnRlcnZhbCh0aGlzLnN0YXRlSW50ZXJ2YWwpO3RoaXMuc3RhdGVzTGlzdC5wdXNoKGEpLHRoaXMu'@; put 'cHJvY2Vzc2VkU3RhdGVzLnB1c2goYSl9cmVwbGFjZUxhc3RTdGF0ZShhKXt0aGlzLnN0YXRlc0xpc3QubGVuZ3RoPjA/KHRoaXMuc3RhdGVzTGlzdC5wb3AoKSx0aGlzLnN0YXRlc0xpc3QucHVzaChhKSk6dGhpcy5wcm9jZXNzZWRTdGF0ZXNbdGhpcy5wcm9jZXNzZWRTdGF0ZXMubGVuZ3Ro'@; put 'LTFdPWF9Y2xlYXJTdGF0ZXMoKXt0aGlzLnByb2Nlc3NlZFN0YXRlcz1bXX1zdGFydFN0YXRlcigpe3RoaXMuc3RhdGVySW5Qcm9ncmVzcz0hMCx0aGlzLnN0YXRlc0xpc3QubGVuZ3RoPjAmJnRoaXMucHJvY2Vzc2VkU3RhdGVzLnB1c2godGhpcy5zdGF0ZXNMaXN0LnNoaWZ0KCl8fCIiKSx0'@; put 'aGlzLnN0YXRlSW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCk9Pnt0aGlzLnN0YXRlc0xpc3QubGVuZ3RoPjAmJnRoaXMucHJvY2Vzc2VkU3RhdGVzLnB1c2godGhpcy5zdGF0ZXNMaXN0LnNoaWZ0KCl8fCIiKX0sdGhpcy5taW5EZWxheSl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQp'@; put 'e3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJhcHAtdXBsb2FkLXN0YXRlciJdXSxkZWNsczo1LHZhcnM6MSxjb25zdHM6W1siY2xhc3MiLCJtLTAiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJ0ZXh0LWNlbnRlciJdLFsx'@; put 'LCJzcGlubmVyIiwic3Bpbm5lci1zbSIsInZlcnRpY2FsLWFsaWduLW1pZGRsZSJdLFsxLCJtLTAiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZCxoKXsxJmQmJihkZSgwLCJkaXYiKSxndCgxLHo3dCwyLDEsInAiLDApLGhlKCksZGUoMiwiZGl2IiwxKSgzLCJzcGFuIiwyKSxPZSg0LCJMb2FkaW5n'@; put 'Li4uIiksaGUoKSgpKSwyJmQmJihmZSgpLE1lKCJuZ0Zvck9mIixoLnByb2Nlc3NlZFN0YXRlcykpfSxkZXBlbmRlbmNpZXM6W1FzXSxlbmNhcHN1bGF0aW9uOjJ9KX19cmV0dXJuIGN9KSgpLFo3dD0oKCk9PntjbGFzcyBje3RyYW5zZm9ybShhKXtyZXR1cm4gYS5yZXBsYWNlKC9cfC9nLCIg'@; put 'fCAiKX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKX19c3RhdGlje3RoaXMuXHUwMjc1cGlwZT1hbCh7bmFtZToicGtTcGFjZVNlcGFyYXRlIix0eXBlOmMscHVyZTohMH0pfX1yZXR1cm4gY30pKCksUTZlPSgoKT0+e2NsYXNzIGN7dHJhbnNmb3Jt'@; put 'KGEsZCl7cmV0dXJuIHRoaXMuYWRkU2VwYXJhdG9ycyhhLnRvU3RyaW5nKCksZCl9YWRkU2VwYXJhdG9ycyhhLGQ9IiAiKXtjb25zdCBoPShhKz0iIikuc3BsaXQoIi4iKTtsZXQgZj1oWzBdO2NvbnN0IHY9aC5sZW5ndGg+MT8iLiIraFsxXToiIixNPS8oXGQrKShcZHszfSkvO2Zvcig7TS50'@; put 'ZXN0KGYpOylmPWYucmVwbGFjZShNLCIkMSIrZCsiJDIiKTtyZXR1cm4gZit2fXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpfX1zdGF0aWN7dGhpcy5cdTAyNzVwaXBlPWFsKHtuYW1lOiJ0aG91c2FuZFNlcGFyYXRvciIsdHlwZTpjLHB1cmU6ITB9'@; put 'KX19cmV0dXJuIGN9KSgpO2NvbnN0IFc3dD1bImh0Il0sWTd0PVsidXBsb2FkU3RhdGVyIl0sRzd0PVsicXVlcnlGaWx0ZXIiXSwkN3Q9WyJmaWxlVXBsb2FkSW5wdXQiXSxLN3Q9KGMsbCk9Pih7bGliTmFtZTpjLHRhYmxlTmFtZTpsfSksZThlPSgpPT5bIiIsIiAiXSxYN3Q9Yz0+KHtoZWFk'@; put 'ZXJCYXJGaWx0ZXI6Y30pLHE3dD0oKT0+WyIvaG9tZSJdO2Z1bmN0aW9uIEo3dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImRpdiIsNjQpKDEsInNwYW4iLDY1KSgyLCJsYWJlbCIsNjYpLE9lKDMsIiBCcm93c2UgIiksaGUoKSgpLGRlKDQsImlucHV0Iiw2NywzKSxGdCgiY2hh'@; put 'bmdlIixmdW5jdGlvbihoKXtyZXR1cm4gd3QoYSksQ3QoTGUoKS5hdHRhY2hGaWxlKGgpKX0pLGhlKCkoKX1pZigyJmMpe2NvbnN0IGE9TGUoKTtmZSg0KSxNZSgidXBsb2FkZXIiLGEudXBsb2FkZXIpfX1mdW5jdGlvbiBRN3QoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJkaXYi'@; put 'LDY4KSgxLCJidXR0b24iLDY5KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKCkudXBsb2FkUGFyc2VkRmlsZXMoKSl9KSxPZSgyLCIgVXBsb2FkICIpLGhlKCkoKX0yJmMmJihmZSgpLE1lKCJkaXNhYmxlZCIsITApKX1mdW5jdGlvbiBlOXQoYyxsKXtpZigxJmMp'@; put 'e2NvbnN0IGE9T24oKTtkZSgwLCJidXR0b24iLDcwKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKCkuc2hvd1VwbG9hZE1vZGFsPSExKX0pLE9lKDEsIiBDbG9zZSAiKSxoZSgpfWlmKDImYyl7Y29uc3QgYT1MZSgpO01lKCJkaXNhYmxlZCIsYS5leGNlbEZpbGVQ'@; put 'YXJzaW5nfHxhLnVwbG9hZExvYWRpbmcpfX1mdW5jdGlvbiB0OXQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJidXR0b24iLDcxKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKCkuc2hvd1VwbG9hZE1vZGFsPSExKX0pLE9lKDEsIiBTa2lwICIpLGhl'@; put 'KCl9fWZ1bmN0aW9uIG45dChjLGwpezEmYyYmKGRlKDAsImRpdiIsNzIpLFd0KDEsImFwcC11cGxvYWQtc3RhdGVyIixudWxsLDQpLGhlKCkpfWZ1bmN0aW9uIHI5dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImFwcC1lZGl0LXJlY29yZCIsNzMpLEZ0KCJvblJlY29yZENoYW5n'@; put 'ZSIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoKS5jb25maXJtUmVjb3JkRWRpdCgpKX0pKCJvblJlY29yZElucHV0Rm9jdXNlZCIsZnVuY3Rpb24oaCl7cmV0dXJuIHd0KGEpLEN0KExlKCkub25SZWNvcmRJbnB1dEZvY3VzKGgpKX0pKCJvblJlY29yZEVkaXRDbG9zZSIsZnVuY3Rp'@; put 'b24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoKS5jbG9zZVJlY29yZEVkaXQoKSl9KSgib25OZXh0UmVjb3JkIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgpLm9uTmV4dFJlY29yZCgpKX0pKCJvblByZXZpb3VzUmVjb3JkIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgpLm9u'@; put 'UHJldmlvdXNSZWNvcmQoKSl9KSxoZSgpfWlmKDImYyl7Y29uc3QgYT1MZSgpO01lKCJjdXJyZW50UmVjb3JkIixhLmN1cnJlbnRFZGl0UmVjb3JkKSgicmVjb3JkQWN0aW9uIixhLnJlY29yZEFjdGlvbikoImxpYmRzIixhLmxpYmRzKSgicXVlcnlGaWx0ZXIiLGEucXVlcnlGaWx0ZXIpKCJm'@; put 'aWx0ZXIiLGEuZmlsdGVyKSgic3VibWl0TG9hZGluZyIsYS5zdWJtaXRMb2FkaW5nKSgiaGVhZGVyUGtzIixhLmhlYWRlclBrcykoImNlbGxWYWxpZGF0aW9uIixhLmNlbGxWYWxpZGF0aW9uKSgiY3VycmVudFJlY29yZEluZGV4IixhLmN1cnJlbnRFZGl0UmVjb3JkSW5kZXgpKCJjdXJyZW50'@; put 'UmVjb3JkTG9hZGluZ3MiLGEuY3VycmVudEVkaXRSZWNvcmRMb2FkaW5ncykoImN1cnJlbnRSZWNvcmRFcnJvcnMiLGEuY3VycmVudEVkaXRSZWNvcmRFcnJvcnMpKCJjdXJyZW50UmVjb3JkVmFsaWRhdG9yIixhLmN1cnJlbnRFZGl0UmVjb3JkVmFsaWRhdG9yKX19ZnVuY3Rpb24gaTl0KGMs'@; put 'bCl7MSZjJiYoZGUoMCwiZGl2Iiw3NCksV3QoMSwicHJvZ3Jlc3MiKSxoZSgpKX1mdW5jdGlvbiBhOXQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJkaXYiLDc1KSgxLCJzcGFuIiw3NiksV3QoMiwiY2xyLWljb24iLDc3KSxkZSgzLCJzcGFuIiw3OCksT2UoNCwiQmFjayB0byB0'@; put 'YWJsZSBzZWxlY3Rpb24iKSxoZSgpKCksZGUoNSwic3BhbiIsNzkpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoKS52aWV3Ym94TWFuYWdlcigpKX0pLFd0KDYsImNsci1pY29uIiw4MCksZGUoNywic3BhbiIsNzgpLE9lKDgsIlZpZXdib3hlcyIpLGhlKCkoKSgp'@; put 'fTImYyYmKGZlKCksTWUoInJvdXRlckxpbmsiLFpvKDEscTd0KSkpfWZ1bmN0aW9uIHM5dChjLGwpezEmYyYmV3QoMCwiY2xyLWljb24iLDg2KX1mdW5jdGlvbiBvOXQoYyxsKXtpZigxJmMmJihkZSgwLCJjbHItdG9vbHRpcC1jb250ZW50Iiw4OCksT2UoMSksaGUoKSksMiZjKXtjb25zdCBh'@; put 'PUxlKDMpO2ZlKCksTHIoIiAiLGEuZHNOb3RlLCIgIil9fWZ1bmN0aW9uIGw5dChjLGwpezEmYyYmKGFpKDApLGd0KDEsbzl0LDIsMSwiY2xyLXRvb2x0aXAtY29udGVudCIsODcpLHNpKCkpfWZ1bmN0aW9uIGM5dChjLGwpe2lmKDEmYyYmKGFpKDApLE9lKDEpLFFvKDIsInRob3VzYW5kU2Vw'@; put 'YXJhdG9yIiksc2koKSksMiZjKXtjb25zdCBhPUxlKDMpO2ZlKCksSkkoIiAoIix6OCgyLDQsYS5kYXRhU291cmNlLmxlbmd0aCwiLCIpLCIgIiwxPT09YS5kYXRhU291cmNlLmxlbmd0aD8icm93Ijoicm93cyIsIiwgIixhLmNvbHMubGVuZ3RoLCIiLDE9PT1hLmNvbHMubGVuZ3RoPyIgY29s'@; put 'IjoiIGNvbHMiLCIpICIpfX1mdW5jdGlvbiB1OXQoYyxsKXsxJmMmJihhaSgwKSxPZSgxLCIgKDAgcm93cykgIiksc2koKSl9ZnVuY3Rpb24gZDl0KGMsbCl7aWYoMSZjJiYoYWkoMCksZ3QoMSxjOXQsMyw3LCJuZy1jb250YWluZXIiLDM5KSgyLHU5dCwyLDAsIm5nLWNvbnRhaW5lciIsMzkp'@; put 'LHNpKCkpLDImYyl7Y29uc3QgYT1MZSgyKTtmZSgpLE1lKCJuZ0lmIiwhYS56ZXJvRmlsdGVyUm93cyksZmUoKSxNZSgibmdJZiIsYS56ZXJvRmlsdGVyUm93cyl9fWZ1bmN0aW9uIGg5dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImg0Iiw4MSkoMSwiY2xyLXRvb2x0aXAiKSgy'@; put 'LCJjbHItaWNvbiIsODIpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoKS5kYXRhc2V0SW5mbz0hMCl9KSxoZSgpLGd0KDMsczl0LDEsMCwiY2xyLWljb24iLDgzKSxkZSg0LCJzcGFuIiw4NCksT2UoNSksZGUoNiwiYSIsODUpLE9lKDcpLGhlKCkoKSxndCg4LGw5'@; put 'dCwyLDAsIm5nLWNvbnRhaW5lciIsMzkpLGhlKCksZ3QoOSxkOXQsMywyLCJuZy1jb250YWluZXIiLDM5KSxoZSgpfWlmKDImYyl7Y29uc3QgYT1sLm5nVmFyLGQ9TGUoKTtmZSgzKSxNZSgibmdJZiIsYS50YWJsZU5hbWUuaW5jbHVkZXMoIi1GQyIpKSxmZSgyKSxMcigiICIsYS5saWJOYW1l'@; put 'LCIuIiksZmUoKSxNZSgicm91dGVyTGluayIsIi92aWV3L2RhdGEvIitkLmxpYmRzKSxmZSgpLFNyKGEudGFibGVOYW1lLnJlcGxhY2UoIi1GQyIsIiIpKSxmZSgpLE1lKCJuZ0lmIixkLmRzTm90ZSYmZC5kc05vdGUubGVuZ3RoPjApLGZlKCksTWUoIm5nSWYiLGQuZGF0YVNvdXJjZSl9fWZ1'@; put 'bmN0aW9uIGY5dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImJ1dHRvbiIsOTUpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoMykub25TaG93VXBsb2FkTW9kYWwoKSl9KSxXdCgxLCJjbHItaWNvbiIsOTYpLGRlKDIsInNwYW4iLDc4KSxPZSgzLCJV'@; put 'cGxvYWQiKSxoZSgpKCl9fWZ1bmN0aW9uIHA5dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2FpKDApLGRlKDEsImJ1dHRvbiIsOTApLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoMikub3BlblFiKCkpfSksV3QoMiwiY2xyLWljb24iLDkxKSxkZSgzLCJzcGFu'@; put 'Iiw3OCksT2UoNCwiRmlsdGVyIiksaGUoKSgpLGRlKDUsImJ1dHRvbiIsOTIpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoMikuZWRpdFRhYmxlKCkpfSksV3QoNiwiY2xyLWljb24iLDkzKSxkZSg3LCJzcGFuIiw3OCksT2UoOCwiRWRpdCIpLGhlKCkoKSxndCg5'@; put 'LGY5dCw0LDAsImJ1dHRvbiIsOTQpLHNpKCl9aWYoMiZjKXtjb25zdCBhPUxlKDIpO2ZlKDkpLE1lKCJuZ0lmIiwhYS5jb2x1bW5MZXZlbFNlY3VyaXR5RmxhZyl9fWZ1bmN0aW9uIGc5dChjLGwpe2lmKDEmYyYmKGRlKDAsInNwYW4iKSxPZSgxKSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoNCk7'@; put 'ZmUoKSxCdSgiVG8gdW5sb2NrIG1vcmUgdGhhbiAiLGEubGljZW5jZVN0YXRlLnZhbHVlLmVkaXRvcl9yb3dzX2FsbG93ZWQsIiAiLDE9PT1hLmxpY2VuY2VTdGF0ZS52YWx1ZS5lZGl0b3Jfcm93c19hbGxvd2VkPyJyb3ciOiJyb3dzIiwiLCBjb250YWN0IHN1cHBvcnRAZGF0YWNvbnRyb2xs'@; put 'ZXIuaW8iKX19ZnVuY3Rpb24gbTl0KGMsbCl7aWYoMSZjJiYoZGUoMCwiY2xyLXRvb2x0aXAtY29udGVudCIsODgpLGd0KDEsZzl0LDIsMiwic3BhbiIsMzkpLGhlKCkpLDImYyl7Y29uc3QgYT1MZSgzKTtmZSgpLE1lKCJuZ0lmIixhLnJlc3RyaWN0aW9ucy5yZXN0cmljdEFkZFJvdyl9fWZ1'@; put 'bmN0aW9uIHY5dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2FpKDApLGRlKDEsImJ1dHRvbiIsOTcpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoMikuY2FuY2VsRWRpdCgpKX0pLFd0KDIsImNsci1pY29uIiw5OCksZGUoMywic3BhbiIpLE9lKDQsIkNhbmNl'@; put 'bCIpLGhlKCkoKSxkZSg1LCJjbHItdG9vbHRpcCIpKDYsImJ1dHRvbiIsOTkpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKDIpO3JldHVybiBDdChoLnJlc3RyaWN0aW9ucy5yZXN0cmljdEFkZFJvdz8iIjpoLmFkZFJvdygpKX0pLFd0KDcsImNsci1pY29uIiwxMDAp'@; put 'LE9lKDgsIkFkZCBSb3cgIiksaGUoKSxndCg5LG05dCwyLDEsImNsci10b29sdGlwLWNvbnRlbnQiLDg3KSxoZSgpLGRlKDEwLCJidXR0b24iLDQ0KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKDIpLmNoZWNrU2F2ZSgpKX0pLFd0KDExLCJjbHItaWNvbiIsMTAx'@; put 'KSxPZSgxMiwiU3VibWl0ICIpLGhlKCksc2koKX1pZigyJmMpe2NvbnN0IGE9TGUoMik7ZmUoNiksVHIoImRjLWxvY2tlZC1jb250cm9sIixhLnJlc3RyaWN0aW9ucy5yZXN0cmljdEFkZFJvdyksTWUoImNsckxvYWRpbmciLGEuYWRkaW5nTmV3Um93KX19ZnVuY3Rpb24geTl0KGMsbCl7aWYo'@; put 'MSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiYnV0dG9uIiwxMDUpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoMykubWFudWFsRmlsZUVkaXRNb2RhbD0hMCl9KSxXdCgxLCJjbHItaWNvbiIsOTMpLGRlKDIsInNwYW4iKSxPZSgzLCJFZGl0IiksaGUoKSgpfX1mdW5j'@; put 'dGlvbiBiOXQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTthaSgwKSxkZSgxLCJidXR0b24iLDEwMiksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgyKS5kaXNjYXJkU291cmNlRmlsZT0hMCl9KSxXdCgyLCJjbHItaWNvbiIsOTgpLGRlKDMsInNwYW4iKSxPZSg0'@; put 'LCJEaXNjYXJkIGZpbGUiKSxoZSgpKCksZ3QoNSx5OXQsNCwwLCJidXR0b24iLDEwMyksZGUoNiwiYnV0dG9uIiwxMDQpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoMikuc3VibWl0RXhjZWwoKSl9KSxXdCg3LCJjbHItaWNvbiIsMTAxKSxPZSg4LCIgU3VibWl0'@; put 'ICIpLGhlKCksc2koKX1pZigyJmMpe2NvbnN0IGE9TGUoMik7ZmUoNSksTWUoIm5nSWYiLGEuaG90VGFibGUucmVhZE9ubHkpLGZlKCksTWUoImNsckxvYWRpbmciLGEudXBsb2FkTG9hZGluZyl9fWZ1bmN0aW9uIF85dChjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIsODkpLGd0KDEscDl0LDEw'@; put 'LDEsIm5nLWNvbnRhaW5lciIsMzkpKDIsdjl0LDEzLDMsIm5nLWNvbnRhaW5lciIsMzkpKDMsYjl0LDksMiwibmctY29udGFpbmVyIiwzOSksaGUoKSksMiZjKXtjb25zdCBhPUxlKCk7ZmUoKSxNZSgibmdJZiIsYS5ob3RUYWJsZS5yZWFkT25seSYmIWEudXBsb2FkUHJldmlldyksZmUoKSxN'@; put 'ZSgibmdJZiIsIWEuaG90VGFibGUucmVhZE9ubHkmJiFhLnVwbG9hZFByZXZpZXcpLGZlKCksTWUoIm5nSWYiLGEudXBsb2FkUHJldmlldyl9fWZ1bmN0aW9uIHc5dChjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIsMTA2KSgxLCJzcGFuIiksT2UoMiwiRklMVEVSIDogIiksZGUoMywiYiIpLE9l'@; put 'KDQpLGhlKCkoKSgpKSwyJmMpe2NvbnN0IGE9TGUoKTtmZSg0KSxTcihhLnF1ZXJ5VGV4dCl9fWZ1bmN0aW9uIEM5dChjLGwpezEmYyYmKGFpKDApLGRlKDEsInNwYW4iLDEwOSksT2UoMiwiIExvYWRpbmcuLi4gIiksaGUoKSxkZSgzLCJkaXYiLDExMCkoNCwicCIsMTExKSxPZSg1LCJMb2Fk'@; put 'aW5nIHRhYmxlIiksaGUoKSgpLHNpKCkpfWZ1bmN0aW9uIFM5dChjLGwpezEmYyYmKGFpKDApLGRlKDEsInNwYW4iKSxXdCgyLCJjbHItaWNvbiIsMTEyKSxoZSgpLGRlKDMsImRpdiIsMTEwKSg0LCJwIiwxMTEpLE9lKDUsIkxvYWRpbmcgdGFibGUgZXJyb3IiKSxoZSgpKCksc2koKSl9ZnVu'@; put 'Y3Rpb24gTTl0KGMsbCl7aWYoMSZjJiYoZGUoMCwiZGl2IiwxMDcpKDEsImRpdiIsMTA4KSxndCgyLEM5dCw2LDAsIm5nLWNvbnRhaW5lciIsMzkpKDMsUzl0LDYsMCwibmctY29udGFpbmVyIiwzOSksaGUoKSgpKSwyJmMpe2NvbnN0IGE9TGUoKTtmZSgyKSxNZSgibmdJZiIsIWEuZ2V0ZGF0'@; put 'YUVycm9yKSxmZSgpLE1lKCJuZ0lmIixhLmdldGRhdGFFcnJvcil9fWZ1bmN0aW9uIHg5dChjLGwpe2lmKDEmYyYmKGRlKDAsInNwYW4iKSxPZSgxKSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoMyk7ZmUoKSxCdSgiVG8gdW5sb2NrIG1vcmUgdGhhbiAiLGEubGljZW5jZVN0YXRlLnZhbHVlLmVk'@; put 'aXRvcl9yb3dzX2FsbG93ZWQsIiAiLDE9PT1hLmxpY2VuY2VTdGF0ZS52YWx1ZS5lZGl0b3Jfcm93c19hbGxvd2VkPyJyb3ciOiJyb3dzIiwiLCBjb250YWN0IHN1cHBvcnRAZGF0YWNvbnRyb2xsZXIuaW8iKX19ZnVuY3Rpb24gRTl0KGMsbCl7aWYoMSZjJiYoZGUoMCwiY2xyLXRvb2x0aXAt'@; put 'Y29udGVudCIsMTE1KSxndCgxLHg5dCwyLDIsInNwYW4iLDM5KSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoMik7ZmUoKSxNZSgibmdJZiIsYS5yZXN0cmljdGlvbnMucmVzdHJpY3RBZGRSb3cpfX1mdW5jdGlvbiBUOXQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJjbHItdG9vbHRp'@; put 'cCIpKDEsImJ1dHRvbiIsMTEzKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7d3QoYSk7Y29uc3QgaD1MZSgpO3JldHVybiBDdChoLnJlc3RyaWN0aW9ucy5yZXN0cmljdEFkZFJvdz8iIjpoLmFkZFJlY29yZEJ1dHRvbkNsaWNrKCkpfSksV3QoMiwiY2xyLWljb24iLDEwMCksT2UoMywiIEFkZCBS'@; put 'ZWNvcmQgIiksaGUoKSxndCg0LEU5dCwyLDEsImNsci10b29sdGlwLWNvbnRlbnQiLDExNCksaGUoKX1pZigyJmMpe2NvbnN0IGE9TGUoKTtmZSgpLFRyKCJkYy1sb2NrZWQtY29udHJvbCIsYS5yZXN0cmljdGlvbnMucmVzdHJpY3RBZGRSb3cpfX1mdW5jdGlvbiBBOXQoYyxsKXtpZigxJmMm'@; put 'JihkZSgwLCJwIiwxMTYpLE9lKDEpLFd0KDIsImNvbnRhY3QtbGluayIpLGhlKCkpLDImYyl7Y29uc3QgYT1MZSgpO2ZlKCksTHIoIiBUbyBkaXNwbGF5IG1vcmUgdGhhbiAiLGEubGljZW5jZVN0YXRlLnZhbHVlLmVkaXRvcl9yb3dzX2FsbG93ZWQsIiByb3dzLCBjb250YWN0ICIpfX1mdW5j'@; put 'dGlvbiBrOXQoYyxsKXtpZigxJmMmJihkZSgwLCJzcGFuIiwxMjgpLE9lKDEpLGhlKCkpLDImYyl7Y29uc3QgYT1MZSgyKTtmZSgpLEJ1KCJPbmx5ICIsYS5saWNlbmNlU3RhdGUudmFsdWUuc3VibWl0X3Jvd3NfbGltaXQsIiAiLDE9PT1hLmxpY2VuY2VTdGF0ZS52YWx1ZS5zdWJtaXRfcm93'@; put 'c19saW1pdD8icm93Ijoicm93cyIsIiB3aWxsIGJlIHN1Ym1pdHRlZC4gVG8gcmVtb3ZlIHRoZSByZXN0cmljdGlvbiwgY29udGFjdCBzdXBwb3J0QGRhdGFjb250cm9sbGVyLmlvIil9fWZ1bmN0aW9uIEQ5dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImRpdiIsMTI5KSgxLCJk'@; put 'aXYiLDEzMCkoMiwibGFiZWwiLDEzMSksT2UoMywiTWVzc2FnZSIpLGhlKCksZGUoNCwidGV4dGFyZWEiLDEzMikscGkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe3d0KGEpO2NvbnN0IGY9TGUoMik7cmV0dXJuIGdpKGYubWVzc2FnZSxoKXx8KGYubWVzc2FnZT1oKSxDdChoKX0pLGhl'@; put 'KCkoKSgpfWlmKDImYyl7Y29uc3QgYT1MZSgyKTtmZSg0KSxmaSgibmdNb2RlbCIsYS5tZXNzYWdlKSxNZSgiZGlzYWJsZWQiLCFhLnZhbGlkYXRpb25Eb25lKSgidmFsdWUiLGEudmFsaWRhdGlvbkRvbmU/IiI6IlBsZWFzZSB3YWl0IHdoaWxlIHdlIHZhbGlkYXRlICIrYS5jb2xzLmxlbmd0'@; put 'aCphLm1vZGlmZWRSb3dzSW5kZXhlcy5sZW5ndGgrIiBjZWxscy4iKX19ZnVuY3Rpb24gSTl0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiZGl2IiwxMTcpKDEsImRpdiIsMTE4KSgyLCJkaXYiLDExOSkoMywiZGl2IiwxMjApKDQsImJ1dHRvbiIsMTIxKSxXdCg1LCJjbHItaWNv'@; put 'biIsMTIyKSxoZSgpLGRlKDYsImgzIiw4KSxPZSg3KSxoZSgpKCksZGUoOCwiZGl2Iiw5KSxndCg5LGs5dCwyLDIsInNwYW4iLDEyMykoMTAsRDl0LDUsMywiZGl2IiwxMjQpLGhlKCksZGUoMTEsImRpdiIsMTI1KSgxMiwiYnV0dG9uIiwxMjYpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChh'@; put 'KTtjb25zdCBoPUxlKCk7cmV0dXJuIEN0KGguc2F2ZVRhYmxlKGguaG90VGFibGUuZGF0YSkpfSksT2UoMTMsIiBTdWJtaXQgIiksaGUoKSxkZSgxNCwiYnV0dG9uIiwxMjcpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKCk7cmV0dXJuIGguY2FuY2VsU3VibWl0KCks'@; put 'aC5zdWJtaXQ9ITEsQ3QoaC52YWxpZGF0aW9uRG9uZT0wKX0pLE9lKDE1LCIgQ2FuY2VsICIpLGhlKCkoKSgpKCkoKX1pZigyJmMpe2NvbnN0IGE9TGUoKTtmZSg3KSxaZigiIFN1Ym1pdCBmb3IgQXBwcm92YWwgKCIsYS5yb3dzQ2hhbmdlZC5yb3dzQWRkZWQsIiBhZGRlZCwgIixhLnJvd3ND'@; put 'aGFuZ2VkLnJvd3NVcGRhdGVkLCIgdXBkYXRlZCwgIixhLnJvd3NDaGFuZ2VkLnJvd3NEZWxldGVkLCIgZGVsZXRlZCkgIiksZmUoMiksTWUoIm5nSWYiLGEudG90YWxSb3dzQ2hhbmdlZD5hLmxpY2VuY2VTdGF0ZS52YWx1ZS5zdWJtaXRfcm93c19saW1pdCYmYS5saWNlbmNlU3RhdGUudmFs'@; put 'dWUuc3VibWl0X3Jvd3NfbGltaXQhPT1hLkluZmluaXR5KSxmZSgpLE1lKCJuZ0lmIixhLnRhYmxlVHJ1ZSksZmUoMiksTWUoImRpc2FibGVkIiwhYS52YWxpZGF0aW9uRG9uZSl9fWZ1bmN0aW9uIFI5dChjLGwpe2lmKDEmYyYmKGRlKDAsInNwYW4iLDEzMyksT2UoMSksUW8oMiwicGtTcGFj'@; put 'ZVNlcGFyYXRlIiksaGUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0LGQ9TGUoKTtmZSgpLEJ1KCIgT24gcm93ICIsYSsxLCI6ICIsQWMoMiwyLGQucGtGaWVsZHNbYV0ucmVwbGFjZSgifCIsIiIpKSwiICIpfX1mdW5jdGlvbiBMOXQoYyxsKXtpZigxJmMmJihkZSgwLCJwIiksT2UoMSks'@; put 'aGUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O2ZlKCksWmYoIiAiLGEuY29sLCIoIixhLmxlbiwiKSwgIixhLnZhbCwiICIpfX1mdW5jdGlvbiBPOXQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJkaXYiLDEzNCkoMSwiZGl2IiwxMzUpKDIsImRpdiIsMTE5KSgzLCJkaXYi'@; put 'LDEyMCkoNCwiYnV0dG9uIiwxMjEpLFd0KDUsImNsci1pY29uIiwxMjIpLGhlKCksZGUoNiwiaDMiLDgpLE9lKDcsIkVycm9yIiksaGUoKSgpLGRlKDgsImRpdiIsOSkoOSwicCIpLE9lKDEwLCJZb3UgY2Fubm90IHN1Ym1pdCBlbXB0eSBjbGF1c2VzIiksaGUoKSgpLGRlKDExLCJkaXYiLDIz'@; put 'KSgxMiwiYnV0dG9uIiw0NCksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgpLm51bGxWYXJpYWJsZXM9ITEpfSksT2UoMTMsIiBPayAiKSxoZSgpKCkoKSgpKCl9fWZ1bmN0aW9uIFA5dChjLGwpezEmYyYmV3QoMCwiYXBwLXF1ZXJ5IixudWxsLDUpfWZ1bmN0aW9u'@; put 'IEY5dChjLGwpezEmYyYmKGRlKDAsInAiLDEzNiksT2UoMSwiIFNvcnJ5IHRoYXQgZGlkbid0IHdvcmssIHRyeSBhZ2Fpbi4gIiksaGUoKSl9bGV0IHVOPSgoKT0+e2NsYXNzIGN7c3RhdGlje3RoaXMuY250PTB9c3RhdGlje3RoaXMubm9uUGtDbnQ9MH1zdGF0aWN7dGhpcy5sYXN0Q2VsbD0w'@; put 'fXVwZGF0ZUhvdFRhYmxlU2V0dGluZ3MoKXt0aGlzLmhvdFRhYmxlU2V0dGluZ3M9e2NvbEhlYWRlcnM6dGhpcy5ob3RUYWJsZS5jb2xIZWFkZXJzLGNvbHVtbnM6dGhpcy5ob3RUYWJsZS5jb2x1bW5zLGhlaWdodDp0aGlzLmhvdFRhYmxlLmhlaWdodCxsaWNlbnNlS2V5OnRoaXMuaG90VGFi'@; put 'bGUubGljZW5zZUtleSxyZWFkT25seTp0aGlzLmhvdFRhYmxlLnJlYWRPbmx5LGNvcHlQYXN0ZTp0aGlzLmhvdFRhYmxlLmNvcHlQYXN0ZSxjb250ZXh0TWVudTohMH19Y29uc3RydWN0b3IoYSxkLGgsZix2LE0sSSxHLHJlLHVlKXt0aGlzLmxpY2VuY2VTZXJ2aWNlPWEsdGhpcy5ldmVudFNl'@; put 'cnZpY2U9ZCx0aGlzLmxvZ2dlclNlcnZpY2U9aCx0aGlzLnNhc1N0b3JlU2VydmljZT1mLHRoaXMuaGVscGVyU2VydmljZT12LHRoaXMucm91dGVyPU0sdGhpcy5yb3V0ZT1JLHRoaXMuc2FzU2VydmljZT1HLHRoaXMuY2RmPXJlLHRoaXMuc3ByZWFkc2hlZXRTZXJ2aWNlPXVlLHRoaXMudXBs'@; put 'b2FkU3RhdGVyQ29tcExpc3Q9bmV3IGxoLHRoaXMucXVlcnlGaWx0ZXJDb21wTGlzdD1uZXcgbGgsdGhpcy5maWxlVXBsb2FkSW5wdXRDb21wTGlzdD1uZXcgbGgsdGhpcy5tZXNzYWdlPSIiLHRoaXMuJGRhdGFGb3JtYXRzPW51bGwsdGhpcy5jb2xzPVtdLHRoaXMucmVzdHJpY3Rpb25zPXt9'@; put 'LHRoaXMuZGF0YXNldEluZm89ITEsdGhpcy5kc21ldGE9W10sdGhpcy52ZXJzaW9ucz1bXSx0aGlzLmRzTm90ZT0iIix0aGlzLnZpZXdib3hlcz0hMSx0aGlzLkluZmluaXR5PTEvMCx0aGlzLmhvdFRhYmxlU2V0dGluZ3M9e30sdGhpcy5ob3RUYWJsZT17ZGF0YTpbXSxjb2xIZWFkZXJzOltd'@; put 'LGhpZGRlbjohMCxjb2x1bW5zOltdLGhlaWdodDoiY2FsYygxMDB2aCAtIDE2MHB4KSIsbGljZW5zZUtleTp2b2lkIDAscmVhZE9ubHk6ITAsY29weVBhc3RlOntjb3B5Q29sdW1uSGVhZGVyczohMCxjb3B5Q29sdW1uSGVhZGVyc09ubHk6ITB9LHNldHRpbmdzOntjb250ZXh0TWVudTp7aXRl'@; put 'bXM6e2VkaXRfcm93OntuYW1lOiJFZGl0IHJvdyIsaGlkZGVuKCl7Y29uc3QgQmU9dGhpcy5nZXRTZWxlY3RlZFJhbmdlKCk7aWYoIUJlKXJldHVybiExO2NvbnN0IEdlPUJlWzBdO3JldHVybiBHZS5mcm9tLnJvdyE9PUdlLnRvLnJvd30sY2FsbGJhY2s6KEVlLEJlLEdlKT0+e2NvbnN0IHN0'@; put 'PUJlWzBdO3N0LnN0YXJ0LnJvdz09PXN0LmVuZC5yb3cmJnRoaXMuZWRpdFJlY29yZChudWxsLHN0LnN0YXJ0LnJvdyl9fSxyb3dfYWJvdmU6e25hbWU6Ikluc2VydCBSb3cgYWJvdmUiLGNhbGxiYWNrOihFZSxCZSxHZSk9Pnt0aGlzLmluc2VydFJvd0F0UG9zaXRpb24oQmVbMF0uc3RhcnQu'@; put 'cm93KX19LHJvd19iZWxvdzp7bmFtZToiSW5zZXJ0IFJvdyBiZWxvdyIsY2FsbGJhY2s6KEVlLEJlLEdlKT0+e3RoaXMuaW5zZXJ0Um93QXRQb3NpdGlvbihCZVswXS5zdGFydC5yb3crMSl9fSxyZW1vdmVfcm93OntuYW1lOiJJZ25vcmUgcm93In0sY29weTp7bmFtZToiQ29weSB3aXRob3V0'@; put 'IGhlYWRlcnMifSxjb3B5X3dpdGhfY29sdW1uX2hlYWRlcnM6e25hbWU6IkNvcHkgd2l0aCBoZWFkZXJzIn0sY29weV9jb2x1bW5faGVhZGVyc19vbmx5OntuYW1lOiJDb3B5IGhlYWRlcnMgb25seSJ9LHNwMTp7bmFtZToiLS0tLS0tLS0tIn0sdW5kbzp7bmFtZToiVW5kbyJ9LHJlZG86e25h'@; put 'bWU6IlJlZG8ifX19fX0sdGhpcy5ob3RDZWxsc1Byb3BSb3c9bnVsbCx0aGlzLmZpbHRlcj0hMSx0aGlzLnN1Ym1pdExvYWRpbmc9ITEsdGhpcy51cGxvYWRMb2FkaW5nPSExLHRoaXMucm93c0NoYW5nZWQ9e3Jvd3NVcGRhdGVkOjAscm93c0RlbGV0ZWQ6MCxyb3dzQWRkZWQ6MH0sdGhpcy5t'@; put 'b2RpZmVkUm93c0luZGV4ZXM9W10sdGhpcy5xdWVyeUVycj0hMSx0aGlzLnN1Y2Nlc3NFbmFibGU9ITEsdGhpcy5udWxsVmFyaWFibGVzPSExLHRoaXMucGtGaWVsZHM9W10sdGhpcy5maWxlbmFtZT0iIix0aGlzLnN1Ym1pdExpbWl0Tm90aWNlPSExLHRoaXMuYmFkRWRpdD0hMSx0aGlzLnNh'@; put 'dmVMb2FkaW5nPSExLHRoaXMuYXBwcm92ZXJzPVtdLHRoaXMuZXJyVmFsaWRhdGlvbj0hMSx0aGlzLnBrTnVsbD0hMSx0aGlzLm5vUGtOdWxsPSExLHRoaXMudGFibGVEYXRhPVtdLHRoaXMucXVlcnlUZXh0PSIiLHRoaXMucXVlcnlUZXh0U2F2ZWQ9IiIsdGhpcy5zaG93QXBwcm92ZXJzPSEx'@; put 'LHRoaXMucGtEdXBzPSExLHRoaXMudmFsaWRhdGlvbkRvbmU9MCx0aGlzLmR1cGxpY2F0ZVBrSW5kZXhlcz1bXSx0aGlzLmNvbHVtbkhlYWRlcj1bXSx0aGlzLnNwZWNJbmZvPVtdLHRoaXMudG9vTG9uZz0hMSx0aGlzLmV4Y2VlZENlbGxzPVtdLHRoaXMudXBsb2FkZXI9bmV3IFllZSx0aGlz'@; put 'LnVwbG9hZFVybD0iIix0aGlzLmV4Y2VsRmlsZVJlYWR5PSExLHRoaXMudXBsb2FkUHJldmlldz0hMSx0aGlzLmV4Y2VsRmlsZVBhcnNpbmc9ITEsdGhpcy5leGNlbFVwbG9hZFN0YXRlPW51bGwsdGhpcy5kYXRhPVtdLHRoaXMuaGVhZGVyQXJyYXk9W10sdGhpcy5ob3REYXRhU2NoZW1hPXt9'@; put 'LHRoaXMuaGVhZGVyU2hvdz1bXSx0aGlzLmhlYWRlclZpc2libGU9ITEsdGhpcy5oYXNCYXNlRHJvcFpvbmVPdmVyPSExLHRoaXMuaGFzQW5vdGhlckRyb3Bab25lT3Zlcj0hMSx0aGlzLmhlYWRlclBrcz1bXSx0aGlzLmNvbHVtbkxldmVsU2VjdXJpdHlGbGFnPSExLHRoaXMuZGF0ZVRpbWVI'@; put 'ZWFkZXJzPVtdLHRoaXMudGltZUhlYWRlcnM9W10sdGhpcy5kYXRlSGVhZGVycz1bXSx0aGlzLnhsUnVsZXM9W10sdGhpcy5lbmNvZGluZz0iVVRGLTgiLHRoaXMuaGVhZGVyQ29sdW1ucz1bXSx0aGlzLmNlbGxWYWxpZGF0aW9uPVtdLHRoaXMuZmlsZVBhc3N3b3JkU3ViamVjdD1uZXcgR24s'@; put 'dGhpcy5maWxlVW5sb2NrRXJyb3I9ITEsdGhpcy5maWxlUGFzc3dvcmRNb2RhbD0hMSx0aGlzLnNob3dVcGxvYWRNb2RhbD0hMSx0aGlzLmRpc2NhcmRTb3VyY2VGaWxlPSExLHRoaXMubWFudWFsRmlsZUVkaXRNb2RhbD0hMSx0aGlzLnJlY29yZEFjdGlvbj1udWxsLHRoaXMuY3VycmVudEVk'@; put 'aXRSZWNvcmRMb2FkaW5ncz1bXSx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkRXJyb3JzPVtdLHRoaXMuY3VycmVudEVkaXRSZWNvcmRJbmRleD0tMSx0aGlzLmdlbmVyYXRlRWRpdFJlY29yZFVybExvYWRpbmc9ITEsdGhpcy5nZW5lcmF0ZWRSZWNvcmRVcmw9bnVsbCx0aGlzLmFkZFJlY29yZFVy'@; put 'bD1udWxsLHRoaXMucmVjb3JkTmV3T3JQa01vZGlmaWVkPSExLHRoaXMuYWRkUmVjb3JkTG9hZGluZz0hMSx0aGlzLnNpbmdsZVJvd1NlbGVjdGVkPSExLHRoaXMuYWRkaW5nTmV3Um93PSExLHRoaXMuZ2V0ZGF0YUVycm9yPSExLHRoaXMuemVyb0ZpbHRlclJvd3M9ITEsdGhpcy50YWJsZUZp'@; put 'bGVEcmFnT3Zlcj0hMSx0aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlPVtdLHRoaXMudmFsaWRhdGlvblRhYmxlTGltaXQ9MjAsdGhpcy5leHRlbmRlZENlbGxWYWxpZGF0aW9uRmllbGRzPXtESVNQTEFZX0lOREVYOjAsRVhUUkFfQ09MX05BTUU6MSxESVNQTEFZX1ZBTFVFOjIsRElTUExBWV9U'@; put 'WVBFOjMsUkFXX1ZBTFVFX05VTTo0LFJBV19WQUxVRV9DSEFSOjUsRk9SQ0VfRkxBRzo2fSx0aGlzLmNlbGxWYWxpZGF0aW9uRmllbGRzPXtESVNQTEFZX0lOREVYOjAsRElTUExBWV9WQUxVRToxLFJBV19WQUxVRToyfSx0aGlzLmRpc2FibGVkQmFzaWNEeW5hbWljQ2VsbFZhbGlkYXRpb25N'@; put 'YXA9W10sdGhpcy5saWNlbmNlU3RhdGU9dGhpcy5saWNlbmNlU2VydmljZS5saWNlbmNlU3RhdGUsdGhpcy50aW1lc0NsaWNrZWQ9MCxLZWVbd2luZG93Lm5hdmlnYXRvci5sYW5ndWFnZV0mJldtLnJlZ2lzdGVyTGFuZ3VhZ2UoS2VlW3dpbmRvdy5uYXZpZ2F0b3IubGFuZ3VhZ2VdKSx0aGlz'@; put 'LnBhcnNlUmVzdHJpY3Rpb25zKCksdGhpcy5zZXRSZXN0cmljdGlvbnMoKX1wYXJzZVJlc3RyaWN0aW9ucygpe3RoaXMucmVzdHJpY3Rpb25zLnJlc3RyaWN0QWRkUmVjb3JkPSExPT09dGhpcy5saWNlbmNlU3RhdGUudmFsdWUuYWRkUmVjb3JkLHRoaXMucmVzdHJpY3Rpb25zLnJlc3RyaWN0'@; put 'RWRpdFJlY29yZD0hMT09PXRoaXMubGljZW5jZVN0YXRlLnZhbHVlLmVkaXRSZWNvcmQsdGhpcy5yZXN0cmljdGlvbnMucmVzdHJpY3RGaWxlVXBsb2FkPSExPT09dGhpcy5saWNlbmNlU3RhdGUudmFsdWUuZmlsZVVwbG9hZH1zZXRSZXN0cmljdGlvbnMoYSl7YSYmKHRoaXMucmVzdHJpY3Rp'@; put 'b25zPXsuLi50aGlzLnJlc3RyaWN0aW9ucywuLi5hfSksdGhpcy5yZXN0cmljdGlvbnMucmVtb3ZlRWRpdFJlY29yZEJ1dHRvbiYmZGVsZXRlKHRoaXMuaG90VGFibGU/LnNldHRpbmdzPy5jb250ZXh0TWVudSkuaXRlbXMuZWRpdF9yb3csdGhpcy5yZXN0cmljdGlvbnMucmVzdHJpY3RBZGRS'@; put 'b3cmJihkZWxldGUodGhpcy5ob3RUYWJsZT8uc2V0dGluZ3M/LmNvbnRleHRNZW51KS5pdGVtcy5yb3dfYWJvdmUsZGVsZXRlKHRoaXMuaG90VGFibGU/LnNldHRpbmdzPy5jb250ZXh0TWVudSkuaXRlbXMucm93X2JlbG93LGRlbGV0ZSh0aGlzLmhvdFRhYmxlPy5zZXR0aW5ncz8uY29udGV4'@; put 'dE1lbnUpLml0ZW1zLnJlbW92ZV9yb3cpfWNoZWNrUm93TGltaXQoKXt0aGlzLmNvbHVtbkxldmVsU2VjdXJpdHlGbGFnfHx0aGlzLmxpY2VuY2VTdGF0ZS52YWx1ZS5lZGl0b3Jfcm93c19hbGxvd2VkIT09MS8wJiYodGhpcy5yZXN0cmljdGlvbnMucmVzdHJpY3RBZGRSb3c9dGhpcy5kYXRh'@; put 'U291cmNlPy5sZW5ndGg+PXRoaXMubGljZW5jZVN0YXRlLnZhbHVlLmVkaXRvcl9yb3dzX2FsbG93ZWQpfXJlc2V0RmlsdGVyKCl7dGhpcy5xdWVyeUZpbHRlckNvbXBMaXN0LmZpcnN0JiZ0aGlzLnF1ZXJ5RmlsdGVyQ29tcExpc3QuZmlyc3QucmVzZXRGaWx0ZXIoKX1vblNob3dVcGxvYWRN'@; put 'b2RhbCgpe3RoaXMucmVzdHJpY3Rpb25zLnJlc3RyaWN0RmlsZVVwbG9hZD90aGlzLmV2ZW50U2VydmljZS5zaG93RGVtb0xpbWl0TW9kYWwoIkZpbGUgVXBsb2FkIik6dGhpcy5jb2x1bW5MZXZlbFNlY3VyaXR5RmxhZz90aGlzLmV2ZW50U2VydmljZS5zaG93SW5mb01vZGFsKCJJbmZvcm1h'@; put 'dGlvbiIsIlVwbG9hZCBmZWF0dXJlIGlzIGRpc2FibGVkIHdoaWxlIENvbHVtbiBMZXZlbCBTZWN1cml0eSBydWxlcyBhcmUgYWN0aXZlIik6dGhpcy51cGxvYWRQcmV2aWV3fHwodGhpcy5zaG93VXBsb2FkTW9kYWw9ITApfWZpbGVPdmVyQmFzZShhKXt0aGlzLmhhc0Jhc2VEcm9wWm9uZU92'@; put 'ZXI9YX1hdHRhY2hGaWxlKGEsZD0hMSl7dmFyIGg9dGhpcztjb25zdCBmPWQ/YVswXTphLnRhcmdldC5maWxlc1swXTt0aGlzLmV4Y2VsVXBsb2FkU3RhdGU9IkxvYWRpbmciLHRoaXMuZXhjZWxGaWxlUGFyc2luZz0hMCx0aGlzLmV4Y2VsRmlsZVJlYWR5PSExLHRoaXMuZmlsZW5hbWU9Zi5u'@; put 'YW1lLHRoaXMuc3ByZWFkc2hlZXRTZXJ2aWNlLnBhcnNlRXhjZWxGaWxlKHtmaWxlOmYsdXBsb2FkZXI6dGhpcy51cGxvYWRlcixkY1ZhbGlkYXRvcjp0aGlzLmRjVmFsaWRhdG9yLGhlYWRlclBrczp0aGlzLmhlYWRlclBrcyxoZWFkZXJBcnJheTp0aGlzLmhlYWRlckFycmF5LGhlYWRlclNo'@; put 'b3c6dGhpcy5oZWFkZXJTaG93LHRpbWVIZWFkZXJzOnRoaXMudGltZUhlYWRlcnMsZGF0ZUhlYWRlcnM6dGhpcy5kYXRlSGVhZGVycyxkYXRlVGltZUhlYWRlcnM6dGhpcy5kYXRlVGltZUhlYWRlcnMseGxSdWxlczp0aGlzLnhsUnVsZXMsZW5jb2Rpbmc6dGhpcy5lbmNvZGluZ30sdj0+e3Ro'@; put 'aXMuYXBwZW5kVXBsb2FkU3RhdGUodil9LHY9Pnt0aGlzLmV2ZW50U2VydmljZS5zaG93SW5mb01vZGFsKCJUYWJsZSBGb3VuZCIsdil9KS50aGVuKGZ1bmN0aW9uKCl7dmFyIHY9UShmdW5jdGlvbiooTSl7TSYmKGguZXhjZWxGaWxlUmVhZHk9ITAsaC51cGxvYWRlcj1NLnVwbG9hZGVyLE0u'@; put 'ZGF0YSYmTS5oZWFkZXJTaG93PyhoLmRhdGE9TS5kYXRhLGguaGVhZGVyU2hvdz1NLmhlYWRlclNob3csaC5nZXRQZW5kaW5nRXhjZWxQcmV2aWV3KCkpOnlpZWxkIGgudXBsb2FkUGFyc2VkRmlsZXMoKSl9KTtyZXR1cm4gZnVuY3Rpb24oTSl7cmV0dXJuIHYuYXBwbHkodGhpcyxhcmd1bWVu'@; put 'dHMpfX0oKSkuY2F0Y2godj0+e3RoaXMuZXZlbnRTZXJ2aWNlLnNob3dBYm9ydE1vZGFsKG51bGwsdixudWxsKSx0aGlzLnNob3dVcGxvYWRNb2RhbD0hMSx0aGlzLnVwbG9hZFByZXZpZXc9ITEsc2V0VGltZW91dCgoKT0+e3RoaXMuZmlsZW5hbWU9IiJ9KX0pLmZpbmFsbHkoKCk9Pnt0aGlz'@; put 'LmV4Y2VsRmlsZVBhcnNpbmc9ITF9KX1zdWJtaXRFeGNlbCgpe3RoaXMubGljZW5jZVN0YXRlLnZhbHVlLnN1Ym1pdF9yb3dzX2xpbWl0PT09MS8wP3RoaXMudXBsb2FkUGFyc2VkRmlsZXMoKTp0aGlzLnN1Ym1pdExpbWl0Tm90aWNlPSEwfXVwbG9hZFBhcnNlZEZpbGVzKCl7dmFyIGE9dGhp'@; put 'cztyZXR1cm4gUShmdW5jdGlvbiooKXtpZihhLmNoZWNrSW52YWxpZCgpKXJldHVybiB2b2lkIGEuZXZlbnRTZXJ2aWNlLnNob3dBYm9ydE1vZGFsKG51bGwsIkludmFsaWQgdmFsdWVzIGFyZSBwcmVzZW50LiIpO2lmKGEudmFsaWRhdGVQcmltYXJ5S2V5cygpLDAhPT1hLmR1cGxpY2F0ZVBr'@; put 'SW5kZXhlcy5sZW5ndGgpcmV0dXJuIGEucGtEdXBzPSEwLHZvaWQoYS5zdWJtaXQ9ITEpO2EucGtEdXBzPSExLGEudXBsb2FkTG9hZGluZz0hMDtjb25zdCBkPVtdO2Zvcihjb25zdCBoIG9mIGEudXBsb2FkZXIucXVldWUpZC5wdXNoKHtmaWxlOmgsZmlsZU5hbWU6aC5uYW1lfSk7eWllbGQg'@; put 'YS5zYXNTZXJ2aWNlLnVwbG9hZEZpbGUoYS51cGxvYWRVcmwsZCx7dGFibGU6YS5saWJkc30pLnRoZW4oaD0+e2lmKHR5cGVvZiBoLmFkYXB0ZXJSZXNwb25zZS5zYXNqc0Fib3J0PiJ1Iil7aWYodHlwZW9mIGguYWRhcHRlclJlc3BvbnNlLnNhc3BhcmFtcz4idSIpcmV0dXJuO3thLnVwbG9h'@; put 'ZExvYWRpbmc9ITE7Y29uc3QgZj1oLmFkYXB0ZXJSZXNwb25zZS5zYXNwYXJhbXNbMF07YS5zdWNjZXNzRW5hYmxlPSEwLGEudGFibGVJZD1mLkRTSUQsYS5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL3N0YWdlLyIrYS50YWJsZUlkKX19ZWxzZXtjb25zdCBmPWguYWRhcHRlclJlc3BvbnNlLHY9'@; put 'Zi5zYXNqc0Fib3J0WzBdLk1TRyxNPWYuc2FzanNBYm9ydFswXS5NQUM7YS51cGxvYWRMb2FkaW5nPSExLGEuZmlsZW5hbWU9IiIsYS5maWxlVXBsb2FkSW5wdXRDb21wTGlzdC5maXJzdCYmKGEuZmlsZVVwbG9hZElucHV0Q29tcExpc3QuZmlyc3QubmF0aXZlRWxlbWVudC52YWx1ZT0iIiks'@; put 'YS51cGxvYWRlci5xdWV1ZT1bXSxhLmV2ZW50U2VydmljZS5zaG93QWJvcnRNb2RhbCgiIix2LHtTWVNXQVJOSU5HVEVYVDpmLlNZU1dBUk5JTkdURVhULFNZU0VSUk9SVEVYVDpmLlNZU0VSUk9SVEVYVCxNQUM6TX0pfX0saD0+e2EudXBsb2FkTG9hZGluZz0hMSxhLmZpbGVVcGxvYWRJbnB1'@; put 'dENvbXBMaXN0LmZpcnN0JiYoYS5maWxlVXBsb2FkSW5wdXRDb21wTGlzdC5maXJzdC5uYXRpdmVFbGVtZW50LnZhbHVlPSIiKSxhLnVwbG9hZGVyLnF1ZXVlPVtdLGEuZXZlbnRTZXJ2aWNlLmNhdGNoUmVzcG9uc2VFcnJvcigiZmlsZSB1cGxvYWQiLGguYWRhcHRlclJlc3BvbnNlKX0pfSko'@; put 'KX1nZXRQZW5kaW5nRXhjZWxQcmV2aWV3KCl7dGhpcy5xdWVyeVRleHRTYXZlZD10aGlzLnF1ZXJ5VGV4dCx0aGlzLnF1ZXJ5VGV4dD0iIix0aGlzLmV4Y2VsVXBsb2FkU3RhdGU9IlBhcnNpbmciLHRoaXMudG9nZ2xlSG90UGx1Z2luKCJjb250ZXh0TWVudSIsITEpO2NvbnN0IGE9W107dGhp'@; put 'cy5kYXRhLm1hcChoPT57Y29uc3QgZj17fTt0aGlzLmhlYWRlclNob3cubWFwKCh2LE0pPT57Zlt2XT1oW01dfSksZi5fX19fX0RFTEVURV9fVEhJU19fUkVDT1JEX19fX198fChmLl9fX19fREVMRVRFX19USElTX19SRUNPUkRfX19fXz0iTm8iKSxhLnB1c2goZil9KSx0aGlzLmRhdGFTb3Vy'@; put 'Y2VVbmNoYW5nZWQ9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZSh0aGlzLmRhdGFTb3VyY2UpLHRoaXMuZGF0YVNvdXJjZT1hLHRoaXMuaG90VGFibGUuZGF0YT1hO2NvbnN0IGQ9dGhpcy5ob3RJbnN0YW5jZTt0aGlzLmV4Y2VsVXBsb2FkU3RhdGU9IlZhbGlkYXRpbmctSE9UIixkLnVw'@; put 'ZGF0ZVNldHRpbmdzKHtkYXRhOnRoaXMuZGF0YVNvdXJjZSxtYXhSb3dzOjEvMH0sITEpLGQucmVuZGVyKCksdGhpcy5hcHBlbmRVcGxvYWRTdGF0ZSgiVmFsaWRhdGluZyByb3dzIiksZC52YWxpZGF0ZUNlbGxzKCgpPT57dGhpcy5zaG93VXBsb2FkTW9kYWw9ITEsdGhpcy51cGxvYWRQcmV2'@; put 'aWV3PSEwLHRoaXMuZXhjZWxGaWxlUGFyc2luZz0hMSx0aGlzLmV4Y2VsVXBsb2FkU3RhdGU9bnVsbH0pfWRpc2NhcmRQZW5kaW5nRXhjZWwoYSl7dGhpcy5ob3RJbnN0YW5jZS51cGRhdGVTZXR0aW5ncyh7bWF4Um93czp0aGlzLmxpY2VuY2VTdGF0ZS52YWx1ZS5lZGl0b3Jfcm93c19hbGxv'@; put 'd2VkfSksYSYmdGhpcy5jYW5jZWxFZGl0KCksdGhpcy5maWxlVXBsb2FkSW5wdXRDb21wTGlzdC5maXJzdCYmKHRoaXMuZmlsZVVwbG9hZElucHV0Q29tcExpc3QuZmlyc3QubmF0aXZlRWxlbWVudC52YWx1ZT0iIiksdGhpcy51cGxvYWRQcmV2aWV3PSExLHRoaXMuZXhjZWxGaWxlUmVhZHk9'@; put 'ITEsdGhpcy51cGxvYWRlci5xdWV1ZT1bXSxpc05hTihwYXJzZUludCh0aGlzLnJvdXRlci51cmwuc3BsaXQoIi8iKS5wb3AoKXx8IiIpKXx8dGhpcy5xdWVyeVRleHRTYXZlZC5sZW5ndGg+MCYmKHRoaXMucXVlcnlUZXh0PXRoaXMucXVlcnlUZXh0U2F2ZWQsdGhpcy5xdWVyeVRleHRTYXZl'@; put 'ZD0iIil9cHJldmlld1RhYmxlRWRpdENvbmZpcm0oKXt0aGlzLmRpc2NhcmRQZW5kaW5nRXhjZWwoKSx0aGlzLmNvbnZlcnRUb0NvcnJlY3RUeXBlcyh0aGlzLmRhdGFTb3VyY2UpLHRoaXMuZWRpdFRhYmxlKCEwKX1hcHBlbmRVcGxvYWRTdGF0ZShhLGQ9ITEpe3RoaXMuY2RmLmRldGVjdENo'@; put 'YW5nZXMoKSx0aGlzLnVwbG9hZFN0YXRlckNvbXBMaXN0LmZpcnN0JiYoZD90aGlzLnVwbG9hZFN0YXRlckNvbXBMaXN0LmZpcnN0LnJlcGxhY2VMYXN0U3RhdGUoYSk6dGhpcy51cGxvYWRTdGF0ZXJDb21wTGlzdC5maXJzdC5hcHBlbmRTdGF0ZShhKSl9aXNDb2xQayhhKXtyZXR1cm4gdGhp'@; put 'cy5oZWFkZXJQa3MuaW5kZXhPZihhKT4tMX1pc1JlYWRvbmx5Q29sKGEpe3JldHVybiB0aGlzLmRjVmFsaWRhdG9yPy5nZXRSdWxlKGEpPy5yZWFkT25seX1pc0NvbEhlYWRlcihhKXtyZXR1cm4gdGhpcy5oZWFkZXJBcnJheS5pbmRleE9mKGEudG9VcHBlckNhc2UoKSk+LTF9cmVtb3ZlUXVl'@; put 'cnkoKXt0aGlzLnNhc1N0b3JlU2VydmljZS5yZW1vdmVDbGF1c2UoKX1zZW5kQ2xhdXNlKCl7dmFyIGE9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXthLnN1Ym1pdExvYWRpbmc9ITA7bGV0IGQ9W107Y29uc3QgaD1bXTtpZih0eXBlb2YgYS5jbGF1c2VzPiJ1IilyZXR1cm4gYS5udWxsVmFy'@; put 'aWFibGVzPSEwLHZvaWQoYS5zdWJtaXRMb2FkaW5nPSExKTt7Y29uc3QgZj1hLmNsYXVzZXMucXVlcnlPYmo7aWYoZlswXS5lbGVtZW50cy5sZW5ndGg8MSlyZXR1cm4oImhvbWUiPT09Sm4ucm9vdFBhcmFtfHwiZWRpdG9yIj09PUpuLnJvb3RQYXJhbSkmJihKbi5lZGl0b3IuZmlsdGVyLmNs'@; put 'YXVzZXM9W10sSm4uZWRpdG9yLmZpbHRlci5xdWVyeT1bXSxKbi5lZGl0b3IuZmlsdGVyLmdyb3VwTG9naWM9IiIpLHZvaWQgYS5yb3V0ZXIubmF2aWdhdGUoWyIvZWRpdG9yLyIrYS5saWJkc10se3F1ZXJ5UGFyYW1zSGFuZGxpbmc6InByZXNlcnZlIn0pO2ZvcihsZXQgdj0wO3Y8Zi5sZW5n'@; put 'dGg7disrKXtjb25zdCBNPWZbdl0uZWxlbWVudHM7ZD1NLmZpbHRlcihmdW5jdGlvbihJKXtyZXR1cm4gbnVsbD09PUkudmFyaWFibGV9KSxkLmxlbmd0aCYmaC5wdXNoKE0pfX1pZihoLmxlbmd0aClyZXR1cm4gYS5udWxsVmFyaWFibGVzPSEwLHZvaWQoYS5zdWJtaXRMb2FkaW5nPSExKTt0'@; put 'cnl7aWYodm9pZCAwIT09YS5jbGF1c2VzJiZhLmxpYmRzKXtjb25zdCBmPXtncm91cExvZ2ljOmEuY2xhdXNlcy5ncm91cExvZ2ljLGZpbHRlckdyb3VwczpbXX07YS5jbGF1c2VzLnF1ZXJ5T2JqLmZvckVhY2goTT0+e2NvbnN0IEk9e2ZpbHRlckNsYXVzZXM6W119O00uZWxlbWVudHMuZm9y'@; put 'RWFjaChHPT57SS5maWx0ZXJDbGF1c2VzLnB1c2goYS5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZShHKSl9KSxJLmNsYXVzZUxvZ2ljPU0uY2xhdXNlTG9naWMsZi5maWx0ZXJHcm91cHMucHVzaChhLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKEkpKX0pO2NvbnN0IHY9YS5zYXNTdG9yZVNlcnZp'@; put 'Y2UuY3JlYXRlRmlsdGVyUXVlcnlUYWJsZShmKTt5aWVsZCBhLnNhc1N0b3JlU2VydmljZS5zYXZlUXVlcnkoYS5saWJkcyx2KS50aGVuKE09PnthLnF1ZXJ5RmlsdGVyPXtpZDpNLnJlc3VsdFswXS5GSUxURVJfUkssdGFibGU6TS5yZXN1bHRbMF0uRklMVEVSX1RBQkxFfSxhLnJvdXRlci5u'@; put 'YXZpZ2F0ZShbIi8iXSx7c2tpcExvY2F0aW9uQ2hhbmdlOiEwLHF1ZXJ5UGFyYW1zSGFuZGxpbmc6InByZXNlcnZlIn0pLnRoZW4oKCk9PmEucm91dGVyLm5hdmlnYXRlKFsiL2VkaXRvci8iK2EucXVlcnlGaWx0ZXIudGFibGUrIi8iK2EucXVlcnlGaWx0ZXIuaWRdLHtxdWVyeVBhcmFtc0hh'@; put 'bmRsaW5nOiJwcmVzZXJ2ZSJ9KSksYS5maWx0ZXI9ITF9KS5jYXRjaChNPT57YS5zdWJtaXRMb2FkaW5nPSExfSl9fWNhdGNoKGYpe2EucXVlcnlFcnI9ITAsYS5zdWJtaXRMb2FkaW5nPSExLGEucXVlcnlFcnJNZXNzYWdlPWZ9fSkoKX1vcGVuUWIoKXt0aGlzLmxpYmRzJiYodGhpcy5maWx0'@; put 'ZXI9ITAsdGhpcy5jZGYuZGV0ZWN0Q2hhbmdlcygpLHRoaXMuc3VibWl0TG9hZGluZz0hMSx0aGlzLnNhc1N0b3JlU2VydmljZS5zZXRRdWVyeVZhcmlhYmxlcyh0aGlzLmxpYmRzLHRoaXMuY29scykpfWVkaXRUYWJsZShhLGQpe3RoaXMudG9nZ2xlSG90UGx1Z2luKCJjb250ZXh0TWVudSIs'@; put 'ITApO2NvbnN0IGg9dGhpcy5ob3RJbnN0YW5jZSxmPWguZ2V0UGx1Z2luKCJtdWx0aUNvbHVtblNvcnRpbmciKSx2PWYuZ2V0U29ydENvbmZpZygpLE09QXJyYXkuaXNBcnJheSh2KT92Olt2XTtzZXRUaW1lb3V0KCgpPT57YXx8KHRoaXMuZGF0YVNvdXJjZVVuY2hhbmdlZD10aGlzLmhlbHBl'@; put 'clNlcnZpY2UuZGVlcENsb25lKHRoaXMuZGF0YVNvdXJjZSksZCYmdGhpcy5kYXRhU291cmNlVW5jaGFuZ2VkLnBvcCgpKSx0aGlzLmhvdFRhYmxlLnJlYWRPbmx5PSExLHRoaXMuaG90VGFibGUuZGF0YT10aGlzLmRhdGFTb3VyY2UsaC51cGRhdGVTZXR0aW5ncyh7cmVhZE9ubHk6dGhpcy5o'@; put 'b3RUYWJsZS5yZWFkT25seX0sITEpLGgucmVuZGVyKCk7Zm9yKGNvbnN0IEkgb2YgTSlmLnNvcnQoSSk7dGhpcy5yZVNldENlbGxWYWxpZGF0aW9uVmFsdWVzKCksc2V0VGltZW91dCgoKT0+e3RoaXMuZml4QXJpYUFjY2Vzc2liaWxpdHkoKX0sMTAwKX0sMCl9Y29udmVydFRvQ29ycmVjdFR5'@; put 'cGVzKGEpe2Zvcihjb25zdCBkIG9mIGEpZm9yKGNvbnN0IGggaW4gZCl7Y29uc3QgZj10aGlzLmNvbHMuZmluZCh2PT52Lk5BTUU9PT1oKTtmJiYiIiE9PWRbaF0mJiJudW0iPT09Zi5UWVBFJiYhZi5ERFRZUEUuaW5jbHVkZXMoIlRJTUUiKSYmIWYuRERUWVBFLmluY2x1ZGVzKCJEQVRFIikm'@; put 'JihkW2hdPXBhcnNlSW50KGRbaF0pKX19Y2FuY2VsRWRpdCgpe3RoaXMudG9nZ2xlSG90UGx1Z2luKCJjb250ZXh0TWVudSIsITEpLHRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2U9W10sdGhpcy5jbGVhckR1cGxpY2F0ZVZhbGlkYXRpb24oKTtjb25zdCBhPXRoaXMuaG90SW5zdGFuY2UsZD1h'@; put 'LmdldFBsdWdpbigibXVsdGlDb2x1bW5Tb3J0aW5nIiksaD1kLmdldFNvcnRDb25maWcoKSxmPUFycmF5LmlzQXJyYXkoaCk/aDpbaF07dGhpcy5kYXRhU291cmNlVW5jaGFuZ2VkJiYodGhpcy5kYXRhU291cmNlPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUodGhpcy5kYXRhU291cmNl'@; put 'VW5jaGFuZ2VkKSksdGhpcy5ob3RUYWJsZS5kYXRhPXRoaXMuZGF0YVNvdXJjZSx0aGlzLmhvdFRhYmxlLnJlYWRPbmx5PSEwLGEudXBkYXRlU2V0dGluZ3Moe3JlYWRPbmx5OnRoaXMuaG90VGFibGUucmVhZE9ubHksZGF0YTp0aGlzLmRhdGFTb3VyY2V9LCExKSxhLnZhbGlkYXRlUm93cyh0'@; put 'aGlzLm1vZGlmZWRSb3dzSW5kZXhlcyk7Zm9yKGNvbnN0IHYgb2YgZilkLnNvcnQodik7dGhpcy5jaGVja1Jvd0xpbWl0KCl9aG90Q2xpY2tlZCgpezE9PT10aGlzLnRpbWVzQ2xpY2tlZCYmdGhpcy5ob3RUYWJsZS5yZWFkT25seSYmdGhpcy5lZGl0VGFibGUoKSwwPT09dGhpcy50aW1lc0Ns'@; put 'aWNrZWQmJih0aGlzLnRpbWVzQ2xpY2tlZCsrLHNldFRpbWVvdXQoKCk9Pnt0aGlzLnRpbWVzQ2xpY2tlZD0wfSwyMDApKX1jbGVhbkV4Y2VlZCgpe3RoaXMuZXhjZWVkQ2VsbHM9W119YXBwcm92ZXJzVG9nZ2xlKCl7dGhpcy5zaG93QXBwcm92ZXJzPSF0aGlzLnNob3dBcHByb3ZlcnN9YWRk'@; put 'Um93KCl7dGhpcy5hZGRpbmdOZXdSb3c9ITAsc2V0VGltZW91dCgoKT0+e2NvbnN0IGE9dGhpcy5ob3RJbnN0YW5jZSxkPXRoaXMuY3JlYXRlRW1wdHlSb3coKTt0aGlzLmRhdGFTb3VyY2UucHVzaChkKSxhLnVwZGF0ZVNldHRpbmdzKHtkYXRhOnRoaXMuZGF0YVNvdXJjZX0sITEpLGEuc2Vs'@; put 'ZWN0Q2VsbCh0aGlzLmRhdGFTb3VyY2UubGVuZ3RoLTEsMCksYS5yZW5kZXIoKSx0aGlzLmFkZGluZ05ld1Jvdz0hMSx0aGlzLnJlU2V0Q2VsbFZhbGlkYXRpb25WYWx1ZXMoKX0pfWNyZWF0ZUVtcHR5Um93KCl7Y29uc3QgYT17fTtyZXR1cm4gdGhpcy5oZWFkZXJDb2x1bW5zLmZvckVhY2go'@; put 'ZD0+e2FbZF09IiJ9KSxhLm5vTGlua09wdGlvbj0hMCxhfWluc2VydFJvd0F0UG9zaXRpb24oYSl7Y29uc3QgZD10aGlzLmNyZWF0ZUVtcHR5Um93KCk7dGhpcy5kYXRhU291cmNlLnNwbGljZShhLDAsZCk7Y29uc3QgaD10aGlzLmhvdEluc3RhbmNlO2gudXBkYXRlU2V0dGluZ3Moe2RhdGE6'@; put 'dGhpcy5kYXRhU291cmNlfSwhMSksaC5yZW5kZXIoKSx0aGlzLnJlU2V0Q2VsbFZhbGlkYXRpb25WYWx1ZXMoKX1jYW5jZWxTdWJtaXQoKXt0aGlzLmRhdGFTb3VyY2U9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZSh0aGlzLmRhdGFTb3VyY2VCZWZvcmVTdWJtaXQpLHRoaXMuZGF0YVNv'@; put 'dXJjZUJlZm9yZVN1Ym1pdD1bXSx0aGlzLmhvdFRhYmxlLmRhdGE9dGhpcy5kYXRhU291cmNlO2NvbnN0IGE9dGhpcy5ob3RJbnN0YW5jZTthLnVwZGF0ZVNldHRpbmdzKHtkYXRhOnRoaXMuZGF0YVNvdXJjZSxjb2xIZWFkZXJzOnRoaXMuaGVhZGVyQ29sdW1ucyxjb2x1bW5zOnRoaXMuY2Vs'@; put 'bFZhbGlkYXRpb24sbW9kaWZ5Q29sV2lkdGg6ZnVuY3Rpb24oZCxoKXtyZXR1cm4gMD09PWg/NjA6ZD41MDA/NTAwOmR9fSwhMSksYS5zZWxlY3RDZWxsKDAsMCksYS5yZW5kZXIoKSxhLnZhbGlkYXRlUm93cyh0aGlzLm1vZGlmZWRSb3dzSW5kZXhlcyksdGhpcy5yZVNldENlbGxWYWxpZGF0'@; put 'aW9uVmFsdWVzKCl9Z2V0Um93c1N1Ym1pdHRpbmdDb3VudCgpe3RoaXMuc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpLmRlYnVnJiYodGhpcy5sb2dnZXJTZXJ2aWNlLmxvZyh0aGlzLmRhdGFTb3VyY2UpLHRoaXMubG9nZ2VyU2VydmljZS5sb2codGhpcy5kYXRhU291cmNlVW5jaGFuZ2Vk'@; put 'KSk7bGV0IGE9MCxkPTAsaD0wO3RoaXMubW9kaWZlZFJvd3NJbmRleGVzPVtdLHRoaXMuZGF0YU1vZGlmaWVkPVtdO2ZvcihsZXQgZj0wO2Y8dGhpcy5kYXRhU291cmNlLmxlbmd0aDtmKyspe2NvbnN0IHY9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZSh0aGlzLmRhdGFTb3VyY2VbZl0p'@; put 'O2lmKCJZZXMiPT09di5fX19fX0RFTEVURV9fVEhJU19fUkVDT1JEX19fX18pdGhpcy5kYXRhTW9kaWZpZWQucHVzaCh2KSxkKys7ZWxzZXtjb25zdCBNPXRoaXMuZGF0YVNvdXJjZVVuY2hhbmdlZC5maW5kKEk9Pntmb3IoY29uc3QgRyBvZiB0aGlzLmhlYWRlclBrcylpZihJW0ddIT09dltH'@; put 'XSlyZXR1cm4hMTtyZXR1cm4hMH0pO00/SlNPTi5zdHJpbmdpZnkodikhPT1KU09OLnN0cmluZ2lmeShNKSYmKHRoaXMuZGF0YU1vZGlmaWVkLnB1c2godiksdGhpcy5tb2RpZmVkUm93c0luZGV4ZXMucHVzaChmKSxhKyspOih0aGlzLmRhdGFNb2RpZmllZC5wdXNoKHYpLHRoaXMubW9kaWZl'@; put 'ZFJvd3NJbmRleGVzLnB1c2goZiksaCsrKX19dGhpcy5yb3dzQ2hhbmdlZD17cm93c1VwZGF0ZWQ6YSxyb3dzRGVsZXRlZDpkLHJvd3NBZGRlZDpofX1jbGVhckR1cGxpY2F0ZVZhbGlkYXRpb24oKXtjb25zdCBhPXRoaXMuaG90SW5zdGFuY2U7Zm9yKGNvbnN0IGQgb2YgdGhpcy5kdXBsaWNh'@; put 'dGVQa0luZGV4ZXMpZm9yKGxldCBoPTE7aDw9dGhpcy5yZWFkT25seUZpZWxkcztoKyspe2EucmVtb3ZlQ2VsbE1ldGEoZCxoLCJ2YWxpZCIpLGEucmVtb3ZlQ2VsbE1ldGEoZCxoLCJkdXBLZXkiKTtjb25zdCBmPWEuZ2V0Q2VsbE1ldGEoZCxoKTtpZihmLmNsYXNzTmFtZSl7bGV0IHY7dj1B'@; put 'cnJheS5pc0FycmF5KGYuY2xhc3NOYW1lKT9mLmNsYXNzTmFtZS5maWx0ZXIoTT0+ImRjLWludmFsaWQtY2VsbCIhPT1NKS5qb2luKCIgIik6Zi5jbGFzc05hbWUucmVwbGFjZSgiZGMtaW52YWxpZC1jZWxsIiwiIikudHJpbSgpLGEuc2V0Q2VsbE1ldGEoZCxoLCJjbGFzc05hbWUiLHYpfX10'@; put 'aGlzLmR1cGxpY2F0ZVBrSW5kZXhlcz1bXSxhLnJlbmRlcigpfXZhbGlkYXRlUHJpbWFyeUtleXMoKXtjb25zdCBhPXRoaXMuaG90SW5zdGFuY2U7dGhpcy5jbGVhckR1cGxpY2F0ZVZhbGlkYXRpb24oKTtjb25zdCBkPXRoaXMuZGF0YVNvdXJjZTt0aGlzLnBrRmllbGRzPVtdO2ZvcihsZXQg'@; put 'dj0wO3Y8ZC5sZW5ndGg7disrKXtsZXQgTT0iIjtmb3IobGV0IEk9MTtJPHRoaXMucmVhZE9ubHlGaWVsZHMrMTtJKyspTT1NKyJ8IisoZFt2XVt0aGlzLmhlYWRlckNvbHVtbnNbSV1dfHwiIik7dGhpcy5wa0ZpZWxkcy5wdXNoKE0pfWNvbnN0IGg9W107aWYodGhpcy5wa0ZpZWxkcy5sZW5n'@; put 'dGg+MClmb3IobGV0IHY9MDt2PHRoaXMucGtGaWVsZHMubGVuZ3RoO3YrKylmb3IobGV0IE09MDtNPHRoaXMucGtGaWVsZHMubGVuZ3RoO00rKyl0aGlzLnBrRmllbGRzW3ZdPT09dGhpcy5wa0ZpZWxkc1tNXSYmTSE9PXYmJiJ8IiE9PXRoaXMucGtGaWVsZHNbdl0mJmgucHVzaChNKTtmb3Io'@; put 'bGV0IHY9MDt2PGQubGVuZ3RoO3YrKylmb3IobGV0IE09MDtNPHRoaXMuaGVhZGVyQ29sdW1ucy5sZW5ndGg7TSsrKXtjb25zdCBJPWEuZ2V0Q2VsbE1ldGEodixNKTtJJiYoSS52YWxpZD0hMCxJLmR1cEtleT0hMSl9Zm9yKGxldCB2PTA7djxoLmxlbmd0aDt2KyspZm9yKGxldCBNPTE7TTx0'@; put 'aGlzLnJlYWRPbmx5RmllbGRzKzE7TSsrKWEuc2V0Q2VsbE1ldGEoaFt2XSxNLCJ2YWxpZCIsITEpLGEuc2V0Q2VsbE1ldGEoaFt2XSxNLCJkdXBLZXkiLCEwKSxhLnNldENlbGxNZXRhKGhbdl0sTSwiY2xhc3NOYW1lIiwiZGMtaW52YWxpZC1jZWxsIik7dGhpcy5kdXBsaWNhdGVQa0luZGV4'@; put 'ZXM9Wy4uLm5ldyBTZXQoaC5zb3J0KCkpXSxhLnJlbmRlcigpfXJlU2V0Q2VsbFZhbGlkYXRpb25WYWx1ZXMoYT0hMSxkKXtjb25zdCBoPXRoaXMuaG90SW5zdGFuY2U7Zm9yKGNvbnN0IGYgb2YgdGhpcy5jZWxsVmFsaWRhdGlvblNvdXJjZSl7Y29uc3Qgdj1mLnZhbHVlcy5tYXAoTT0+TVt0'@; put 'aGlzLmNlbGxWYWxpZGF0aW9uRmllbGRzLlJBV19WQUxVRV0pO2guYmF0Y2goKCk9Pntjb25zdCBNPWguZ2V0Q2VsbE1ldGEoZi5yb3csZi5jb2wpLEk9dGhpcy5kY1ZhbGlkYXRvcj8uZ2V0UnVsZShNLmRhdGF8fCIiKTtsZXQgRztJJiYoRz10aGlzLmRjVmFsaWRhdG9yPy5nZXREcURyb3Bk'@; put 'b3duU291cmNlKEkpKSxHfHwoRz1bXSk7Y29uc3QgcmU9Wy4uLm5ldyBTZXQoWy4uLkcsLi4udl0pXTt0aGlzLmN1cnJlbnRFZGl0UmVjb3JkVmFsaWRhdG9yPy51cGRhdGVSdWxlKGYuY29sLHtzb3VyY2U6cmV9KSxoLnNldENlbGxNZXRhKGYucm93LGYuY29sLCJzb3VyY2UiLHJlKSxmLnZh'@; put 'bHVlcy5sZW5ndGg+MCYmKGguc2V0Q2VsbE1ldGEoZi5yb3csZi5jb2wsInJlbmRlcmVyIiwiYXV0b2NvbXBsZXRlIiksaC5zZXRDZWxsTWV0YShmLnJvdyxmLmNvbCwiZWRpdG9yIiwiYXV0b2NvbXBsZXRlLmN1c3RvbSIpLGguc2V0Q2VsbE1ldGEoZi5yb3csZi5jb2wsInN0cmljdCIsZi5z'@; put 'dHJpY3QpLGguc2V0Q2VsbE1ldGEoZi5yb3csZi5jb2wsImZpbHRlciIsITEpLHRoaXMuY3VycmVudEVkaXRSZWNvcmRWYWxpZGF0b3I/LnVwZGF0ZVJ1bGUoZi5jb2wse3JlbmRlcmVyOiJhdXRvY29tcGxldGUiLGVkaXRvcjoiYXV0b2NvbXBsZXRlLmN1c3RvbSIsc3RyaWN0OmYuc3RyaWN0'@; put 'LGZpbHRlcjohMX0pKSx0aGlzLnJlU2V0RXh0ZW5kZWRDZWxsVmFsaWRhdGlvblZhbHVlcyhmLHZvaWQgMCxhLGQpLGgucmVuZGVyKCl9KX19cmVTZXRFeHRlbmRlZENlbGxWYWxpZGF0aW9uVmFsdWVzKGEsZCxoPSExLGYpe2lmKGEpe2R8fChkPWEucm93KTtjb25zdCBNPXRoaXMuZ2V0RXh0'@; put 'ZW5kZWRWYWx1ZXNCeUNlbGxWYWx1ZShhKTt0aGlzLnNldEV4dGVuZGVkVmFsdWVzVG9DZWxscyhhLGQsTSxoLGYpfWVsc2UgZm9yKGNvbnN0IE0gb2YgdGhpcy5jZWxsVmFsaWRhdGlvblNvdXJjZSl7Y29uc3QgST10aGlzLmdldEV4dGVuZGVkVmFsdWVzQnlDZWxsVmFsdWUoTSk7dGhpcy5z'@; put 'ZXRFeHRlbmRlZFZhbHVlc1RvQ2VsbHMoTSxNLnJvdyxJLGgsZil9fXNldEV4dGVuZGVkVmFsdWVzVG9DZWxscyhhLGQsaCxmPSExLHYpe2NvbnN0IE09dGhpcy5ob3RJbnN0YW5jZSxJPVtdO2Zvcihjb25zdCBHIG9mIGgpSS5pbmRleE9mKEcuRVhUUkFfQ09MX05BTUUpPDAmJkkucHVzaChH'@; put 'LkVYVFJBX0NPTF9OQU1FKTtmb3IoY29uc3QgRyBvZiBJKXtjb25zdCByZT1oLmZpbHRlcihkdD0+ZHQuRVhUUkFfQ09MX05BTUU9PT1HKTtsZXQgdWU9cmUubWFwKGR0PT4iQyI9PT1kdC5ESVNQTEFZX1RZUEU/ZHQuUkFXX1ZBTFVFX0NIQVI6ZHQuUkFXX1ZBTFVFX05VTSk7Y29uc3QgeWU9'@; put 'TS5wcm9wVG9Db2woRyk7dGhpcy5kaXNhYmxlZEJhc2ljRHluYW1pY0NlbGxWYWxpZGF0aW9uTWFwLmZpbmQoZHQ9PmR0LnJvdz09PWQmJmR0LmNvbD09PXllKXx8dGhpcy5kaXNhYmxlZEJhc2ljRHluYW1pY0NlbGxWYWxpZGF0aW9uTWFwLnB1c2goe3JvdzpkLGNvbDp5ZSxhY3RpdmU6ITF9'@; put 'KSxNLnNldENlbGxNZXRhKGQseWUsInJlbmRlcmVyIiwiYXV0b2NvbXBsZXRlIiksTS5zZXRDZWxsTWV0YShkLHllLCJlZGl0b3IiLCJhdXRvY29tcGxldGUuY3VzdG9tIiksTS5zZXRDZWxsTWV0YShkLHllLCJzdHJpY3QiLGEuc3RyaWN0KSxNLnNldENlbGxNZXRhKGQseWUsImZpbHRlciIs'@; put 'ITEpLHRoaXMuY3VycmVudEVkaXRSZWNvcmRWYWxpZGF0b3I/LnVwZGF0ZVJ1bGUoeWUse3JlbmRlcmVyOiJhdXRvY29tcGxldGUiLGVkaXRvcjoiYXV0b2NvbXBsZXRlLmN1c3RvbSIsc3RyaWN0OmEuc3RyaWN0LGZpbHRlcjohMX0pO2NvbnN0IEJlPU0uZ2V0Q2VsbE1ldGEoZCx5ZSksR2U9'@; put 'dGhpcy5kY1ZhbGlkYXRvcj8uZ2V0UnVsZShCZS5kYXRhfHwiIik7bGV0IHN0O0dlJiYoc3Q9dGhpcy5kY1ZhbGlkYXRvcj8uZ2V0RHFEcm9wZG93blNvdXJjZShHZSkpLHN0fHwoc3Q9W10pLCJudW1lcmljIj09PUdlPy50eXBlPyhzdD10aGlzLmhlbHBlclNlcnZpY2UuY29udmVydEFycmF5'@; put 'VmFsdWVzKHN0LCJudW1iZXIiKSx1ZT10aGlzLmhlbHBlclNlcnZpY2UuY29udmVydEFycmF5VmFsdWVzKHVlLCJudW1iZXIiKSk6KHN0PXRoaXMuaGVscGVyU2VydmljZS5jb252ZXJ0QXJyYXlWYWx1ZXMoc3QsInN0cmluZyIpLHVlPXRoaXMuaGVscGVyU2VydmljZS5jb252ZXJ0QXJyYXlW'@; put 'YWx1ZXModWUsInN0cmluZyIpKTtjb25zdCBwdD1bLi4ubmV3IFNldChbLi4uc3QsLi4udWVdKV07aWYoTS5zZXRDZWxsTWV0YShkLHllLCJzb3VyY2UiLHB0KSx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkVmFsaWRhdG9yPy51cGRhdGVSdWxlKHllLHtzb3VyY2U6cHR9KSxmKXtpZih2JiZ2IT09'@; put 'ZClyZXR1cm47Y29uc3QgZHQ9cmUuZmluZChxdD0+MT09PXF0LkZPUkNFX0ZMQUcpO2R0JiZzZXRUaW1lb3V0KCgpPT57TS5zZXREYXRhQXRDZWxsKGQseWUsIkMiPT09ZHQuRElTUExBWV9UWVBFP2R0LlJBV19WQUxVRV9DSEFSOmR0LlJBV19WQUxVRV9OVU0sImZvcmNlX2NlbGxfdmFsaWRh'@; put 'dGlvbl92YWx1ZSIpLHRoaXMuY3VycmVudEVkaXRSZWNvcmRJbmRleD09PWQmJih0aGlzLmRhdGFTb3VyY2VbdGhpcy5jdXJyZW50RWRpdFJlY29yZEluZGV4XVtHXT0iQyI9PT1kdC5ESVNQTEFZX1RZUEU/ZHQuUkFXX1ZBTFVFX0NIQVI6ZHQuUkFXX1ZBTFVFX05VTSl9KX19fWdldEV4dGVu'@; put 'ZGVkVmFsdWVzQnlDZWxsVmFsdWUoYSxkKXtjb25zdCBmPXRoaXMuaG90SW5zdGFuY2UuZ2V0RGF0YUF0Q2VsbChkfHxhLnJvdyxhLmNvbCksdj0oYS52YWx1ZXMuZmluZChyZT0+cmVbdGhpcy5jZWxsVmFsaWRhdGlvbkZpZWxkcy5SQVdfVkFMVUVdPT09Zil8fFtdKVt0aGlzLmNlbGxWYWxp'@; put 'ZGF0aW9uRmllbGRzLkRJU1BMQVlfSU5ERVhdLE09YS5leHRlbmRlZF92YWx1ZXM/LmZpbHRlcihyZT0+cmVbMF09PT12KSxJPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUodGhpcy5leHRlbmRlZENlbGxWYWxpZGF0aW9uRmllbGRzKSxHPVtdO2Zvcihjb25zdCByZSBvZiBNfHxbXSl7'@; put 'Y29uc3QgdWU9e307Zm9yKGNvbnN0IHllIG9mIE9iamVjdC5rZXlzKEkpKXVlW3llXT1yZVtJW3llXV07Ry5wdXNoKHVlKX1yZXR1cm4gR31jaGVja1NhdmUoKXtpZih0aGlzLmdldFJvd3NTdWJtaXR0aW5nQ291bnQoKSwwPT09dGhpcy5yb3dzQ2hhbmdlZC5yb3dzQWRkZWQmJjA9PT10aGlz'@; put 'LnJvd3NDaGFuZ2VkLnJvd3NVcGRhdGVkJiYwPT09dGhpcy5yb3dzQ2hhbmdlZC5yb3dzRGVsZXRlZClyZXR1cm4gdGhpcy5iYWRFZGl0VGl0bGU9Ik5vIGNoYW5nZXMgdG8gc3VibWl0Iix0aGlzLmJhZEVkaXRDYXVzZT0iUGxlYXNlIG1vZGlmeSBzb21lIHZhbHVlcyBhbmQgdHJ5IGFnYWlu'@; put 'LiIsdm9pZCh0aGlzLmJhZEVkaXQ9ITApO2NvbnN0IGE9dGhpcy5ob3RJbnN0YW5jZTt0aGlzLmRhdGFTb3VyY2VCZWZvcmVTdWJtaXQ9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZSh0aGlzLmRhdGFTb3VyY2UpO2ZvcihsZXQgZD0wO2Q8dGhpcy5kYXRhU291cmNlLmxlbmd0aDtkKysp'@; put 'ZGVsZXRlIHRoaXMuZGF0YVNvdXJjZVtkXS5ub0xpbmtPcHRpb247Zm9yKDt0aGlzLmRhdGFTb3VyY2UubGVuZ3RoPjA7KXtjb25zdCBkPXRoaXMuZGF0YVNvdXJjZVt0aGlzLmRhdGFTb3VyY2UubGVuZ3RoLTFdO2lmKCFPYmplY3Qua2V5cyhkKS5ldmVyeShmPT4iX19fX19ERUxFVEVfX1RI'@; put 'SVNfX1JFQ09SRF9fX19fIj09PWZ8fCFkW2ZdfHwiIj09PWRbZl0pKWJyZWFrO3RoaXMuZGF0YVNvdXJjZS5wb3AoKX1pZihhLnVwZGF0ZVNldHRpbmdzKHtkYXRhOnRoaXMuZGF0YVNvdXJjZSxjb2xIZWFkZXJzOnRoaXMuaGVhZGVyQ29sdW1ucyxjb2x1bW5zOnRoaXMuY2VsbFZhbGlkYXRp'@; put 'b24sbW9kaWZ5Q29sV2lkdGg6ZnVuY3Rpb24oZCxoKXtyZXR1cm4gZD41MDA/NTAwOmR9fSwhMSksdGhpcy5yZVNldENlbGxWYWxpZGF0aW9uVmFsdWVzKCksYy5jbnQ9MCxjLm5vblBrQ250PTAsdGhpcy52YWxpZGF0ZVByaW1hcnlLZXlzKCksMCE9PXRoaXMuZHVwbGljYXRlUGtJbmRleGVz'@; put 'Lmxlbmd0aClyZXR1cm4gdGhpcy5wa0R1cHM9ITAsdGhpcy5zdWJtaXQ9ITEsdm9pZCB0aGlzLmNhbmNlbFN1Ym1pdCgpO3RoaXMucGtEdXBzPSExLGEudmFsaWRhdGVSb3dzKHRoaXMubW9kaWZlZFJvd3NJbmRleGVzLCgpPT57dGhpcy5jaGVja0ludmFsaWQoKT90aGlzLmV2ZW50U2Vydmlj'@; put 'ZS5zaG93SW5mb01vZGFsKCJWYWxpZGF0aW9uIGVycm9yIiwiSW52YWxpZCBWYWx1ZXMgYXJlIFByZXNlbnQiKToodGhpcy5zdWJtaXQ9ITAsdGhpcy52YWxpZGF0aW9uRG9uZT0xLHNldFRpbWVvdXQoKCk9Pntjb25zdCBkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb3JtRmllbGRzXzgi'@; put 'KTtkJiZkLmZvY3VzKCl9LDIwMCkpfSl9c2F2ZVRhYmxlKGEpe3ZhciBkPXRoaXM7cmV0dXJuIFEoZnVuY3Rpb24qKCl7aWYoZC5ob3RJbnN0YW5jZS5nZXREYXRhKCksYT0oYT1hLmZpbHRlcih2PT4hIWQuZGF0YU1vZGlmaWVkLmZpbmQoST0+e2Zvcihjb25zdCBHIG9mIGQuaGVhZGVyUGtz'@; put 'KWlmKElbR10hPT12W0ddKXJldHVybiExO3JldHVybiEwfSkpKS5tYXAodj0+e2NvbnN0IE09di5fX19fX0RFTEVURV9fVEhJU19fUkVDT1JEX19fX187cmV0dXJuIGRlbGV0ZSB2Ll9fX19fREVMRVRFX19USElTX19SRUNPUkRfX19fXyx2Ll9fX19fREVMRVRFX19USElTX19SRUNPUkRfX19f'@; put 'Xz1NLE9iamVjdC5rZXlzKHYpLm1hcChJPT57Im51bWVyaWMiPT09ZC5kY1ZhbGlkYXRvcj8uZ2V0UnVsZShJKT8udHlwZSYmIi4iPT09dltJXSYmKHZbSV09bnVsbCl9KSx2fSksZC5sb2dnZXJTZXJ2aWNlLmxvZygiRGF0YSBzdWJtaXR0ZWQiLGEpLGQuY2hlY2tJbnZhbGlkKCkpcmV0dXJu'@; put 'IGQuZXZlbnRTZXJ2aWNlLnNob3dJbmZvTW9kYWwoIlZhbGlkYXRpb24gZXJyb3IiLCJJbnZhbGlkIFZhbHVlcyBhcmUgUHJlc2VudCIpLGQuY2FuY2VsU3VibWl0KCksdm9pZChkLnN1Ym1pdD0hMSk7aWYoZC52YWxpZGF0aW9uRG9uZT0wLGQuc2F2ZUxvYWRpbmc9ITAsYy5jbnQ8MSYmMD09'@; put 'PWQuZHVwbGljYXRlUGtJbmRleGVzLmxlbmd0aCYmYy5ub25Qa0NudDwxKXtkLnNhdmVMb2FkaW5nPSEwLGQuZGlzYWJsZVN1Ym1pdD0hMSxkLnN1Ym1pdD0hMDtjb25zdCB2PXtBQ1RJT046IkxPQUQifTtpZihkLm1lc3NhZ2U9ZC5tZXNzYWdlLnJlcGxhY2UoL1xuL2csIi4gIiksdi5NRVNT'@; put 'QUdFPWQubWVzc2FnZSx2LkxJQkRTPWQubGliZHMsZC5jb2xzKXtjb25zdCBNPWEuc2xpY2UoMCxkLmxpY2VuY2VTdGF0ZS52YWx1ZS5zdWJtaXRfcm93c19saW1pdCk7aWYoeWllbGQgZC5zYXNTdG9yZVNlcnZpY2UudXBkYXRlVGFibGUodixNLCJTQVNDb250cm9sVGFibGUiLCJlZGl0b3Jz'@; put 'L3N0YWdlZGF0YSIsZC4kZGF0YUZvcm1hdHMpLnRoZW4oRz0+e2lmKHR5cGVvZiBHLmFkYXB0ZXJSZXNwb25zZS5zYXNwYXJhbXM8InUiKXJldHVybiBkLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvc3RhZ2UvIitHLmFkYXB0ZXJSZXNwb25zZS5zYXNwYXJhbXNbMF0uRFNJRCksITA7bGV0IHJl'@; put 'PSJTdWJtaXQgcmVxdWVzdCBmYWlsZWQiO0cmJihyZSs9YFxuJHsic3RyaW5nIj09dHlwZW9mIEc/RzpKU09OLnN0cmluZ2lmeShHKX1gKSxkLmV2ZW50U2VydmljZS5zaG93QWJvcnRNb2RhbCgiZWRpdG9ycy9zdGFnZWRhdGEiLHJlLG51bGwsIlN1Ym1pdCBlcnJvciIpfSkuY2F0Y2goRz0+'@; put 'e2NvbnNvbGUubG9nKCJlcnIiLEcpLGMuY250PTAsYy5ub25Qa0NudD0wLGQuZGlzYWJsZVN1Ym1pdD0hMCxkLnN1Ym1pdD0hMTtjb25zdCByZT0ic3RyaW5nIj09dHlwZW9mIEcuYWRhcHRlclJlc3Buc2U/Ry5hZGFwdGVyUmVzcG5zZTpKU09OLnN0cmluZ2lmeShHLmFkYXB0ZXJSZXNwbnNl'@; put 'KTtyZXR1cm4gZC5ldmVudFNlcnZpY2Uuc2hvd0Fib3J0TW9kYWwoImVkaXRvcnMvc3RhZ2VkYXRhIixgU3VibWl0IHJlcXVlc3QgZmFpbGVkXG4ke3JlfWAsbnVsbCwiU3VibWl0IGVycm9yIiksITF9KSlyZXR1cm59fWMuY250Pj0xPyhkLnBrTnVsbD0hMCxkLnN1Ym1pdD0hMCk6ZC5zdWJt'@; put 'aXQ9ITEsYy5ub25Qa0NudD49MT8oZC5ub1BrTnVsbD0hMCxkLnN1Ym1pdD0hMCk6ZC5zdWJtaXQ9ITEsZC5jYW5jZWxTdWJtaXQoKSxjLmNudD0wLGMubm9uUGtDbnQ9MCxkLmRpc2FibGVTdWJtaXQ9ITB9KSgpfXZhbGlkYXRvclJ1bGVTb3VyY2UoYSl7cmV0dXJuIHRoaXMuZGNWYWxpZGF0'@; put 'b3I/LmdldFJ1bGUoYSl9Y2hlY2tJbnZhbGlkKCl7aWYoIXRoaXMuaG90VGFibGVDb21wb25lbnR8fCF0aGlzLmhvdFRhYmxlQ29tcG9uZW50LmhvdEluc3RhbmNlKXJldHVybiExO2NvbnN0IGE9dGhpcy5ob3RUYWJsZUNvbXBvbmVudC5ob3RJbnN0YW5jZS5yb290RWxlbWVudDtpZighYSly'@; put 'ZXR1cm4hMTtjb25zdCBkPWEucXVlcnlTZWxlY3RvckFsbCgiLmh0SW52YWxpZCIpLGg9YS5xdWVyeVNlbGVjdG9yQWxsKCIuZGMtaW52YWxpZC1jZWxsIik7cmV0dXJuIGQubGVuZ3RoPjB8fGgubGVuZ3RoPjB9Z29Ub0VkaXRvcigpe3RoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi8iKX1j'@; put 'bG9zZVJlY29yZEVkaXQoYSl7dGhpcy5jdXJyZW50RWRpdFJlY29yZEluZGV4PS0xLHRoaXMuY3VycmVudEVkaXRSZWNvcmQ9dm9pZCAwLHRoaXMuY3VycmVudEVkaXRSZWNvcmRWYWxpZGF0b3I9dm9pZCAwLCJBREQiPT09dGhpcy5yZWNvcmRBY3Rpb24mJiFhJiYodGhpcy5kYXRhU291cmNl'@; put 'PXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUodGhpcy5wcmV2RGF0YVNvdXJjZSksdGhpcy5ob3RJbnN0YW5jZS51cGRhdGVTZXR0aW5ncyh7ZGF0YTp0aGlzLmRhdGFTb3VyY2V9LCExKSl9Y29uZmlybVJlY29yZEVkaXQoYT0hMCl7Y29uc3QgZD10aGlzLmN1cnJlbnRFZGl0UmVjb3Jk'@; put 'SW5kZXg7YSYmKHRoaXMuY3VycmVudEVkaXRSZWNvcmRJbmRleD0tMSksdGhpcy5jb2x1bW5IZWFkZXIubWFwKGY9Pntjb25zdCB2PXRoaXMuY3VycmVudEVkaXRSZWNvcmRbZl0sTT0ibnVtIj09PXRoaXMuJGRhdGFGb3JtYXRzPy52YXJzW2ZdPy50eXBlLEk9KDAscGcuaXNTcGVjaWFsTWlz'@; put 'c2luZykodik7TSYmIWlzTmFOKHYpJiYhSSYmKHRoaXMuY3VycmVudEVkaXRSZWNvcmRbZl09MSp2KX0pLHRoaXMuZGF0YVNvdXJjZVtkXT10aGlzLmN1cnJlbnRFZGl0UmVjb3JkLHRoaXMuaG90VGFibGUuZGF0YVtkXT10aGlzLmN1cnJlbnRFZGl0UmVjb3JkLHRoaXMuaG90SW5zdGFuY2Uu'@; put 'dXBkYXRlU2V0dGluZ3Moe2RhdGE6dGhpcy5kYXRhU291cmNlfSwhMSksYSYmKHRoaXMuY3VycmVudEVkaXRSZWNvcmQ9dm9pZCAwKX1vbk5leHRSZWNvcmQoKXt0aGlzLmNvbmZpcm1SZWNvcmRFZGl0KCExKSx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkSW5kZXg9dGhpcy5jdXJyZW50RWRpdFJl'@; put 'Y29yZEluZGV4Pj10aGlzLmRhdGFTb3VyY2UubGVuZ3RoLTE/MDp0aGlzLmN1cnJlbnRFZGl0UmVjb3JkSW5kZXgrMSx0aGlzLmVkaXRSZWNvcmQobnVsbCx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkSW5kZXgpfW9uUHJldmlvdXNSZWNvcmQoKXt0aGlzLmNvbmZpcm1SZWNvcmRFZGl0KCExKSx0'@; put 'aGlzLmN1cnJlbnRFZGl0UmVjb3JkSW5kZXg9dGhpcy5jdXJyZW50RWRpdFJlY29yZEluZGV4PD0wP3RoaXMuZGF0YVNvdXJjZS5sZW5ndGgtMTp0aGlzLmN1cnJlbnRFZGl0UmVjb3JkSW5kZXgtMSx0aGlzLmVkaXRSZWNvcmQobnVsbCx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkSW5kZXgpfWFk'@; put 'ZFJlY29yZEJ1dHRvbkNsaWNrKCl7dGhpcy5yZXN0cmljdGlvbnMucmVzdHJpY3RBZGRSZWNvcmQ/dGhpcy5ldmVudFNlcnZpY2Uuc2hvd0RlbW9MaW1pdE1vZGFsKCJBZGQgUmVjb3JkIik6dGhpcy5hZGRFZGl0TmV3UmVjb3JkKCl9YWRkRWRpdE5ld1JlY29yZCgpe3RoaXMuYWRkUmVjb3Jk'@; put 'KCksc2V0VGltZW91dCgoKT0+e3RoaXMuZWRpdFJlY29yZChudWxsLHRoaXMuZGF0YVNvdXJjZS5sZW5ndGgtMSwhMCl9LDFlMyl9YWRkUmVjb3JkKCl7dGhpcy5hZGRSb3coKX1lZGl0UmVjb3JkKGEsZCxoKXtpZih0aGlzLnJlc3RyaWN0aW9ucy5yZXN0cmljdEVkaXRSZWNvcmQpdGhpcy5l'@; put 'dmVudFNlcnZpY2Uuc2hvd0RlbW9MaW1pdE1vZGFsKCJFZGl0IFJlY29yZCIpO2Vsc2UgaWYoISh2b2lkIDA9PT1kfHxkPDB8fHRoaXMucmVzdHJpY3Rpb25zLnJlc3RyaWN0RWRpdFJlY29yZCkpe2lmKHRoaXMucmVjb3JkQWN0aW9uPWg/IkFERCI6IkVESVQiLHRoaXMuaG90VGFibGUucmVh'@; put 'ZE9ubHkmJnRoaXMuZWRpdFRhYmxlKCExLGgpLHRoaXMuY3VycmVudEVkaXRSZWNvcmRWYWxpZGF0b3I9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZSh0aGlzLmRjVmFsaWRhdG9yKSxoKXRoaXMucHJldkRhdGFTb3VyY2U9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZSh0aGlzLmRh'@; put 'dGFTb3VyY2UpLHRoaXMucHJldkRhdGFTb3VyY2UucG9wKCk7ZWxzZXtjb25zdCBmPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUodGhpcy5ob3RJbnN0YW5jZS5nZXRDZWxsTWV0YUF0Um93KGQpKTtmb3IoY29uc3QgdiBvZiBmKWlmKHYpe2NvbnN0IE09di5wcm9wPy50b1N0cmluZygp'@; put 'O2RlbGV0ZSB2LnByb3AsZGVsZXRlIHYuZGF0YSx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkVmFsaWRhdG9yPy51cGRhdGVSdWxlKHYuY29sLHsuLi52LGRhdGE6TX0pfX10aGlzLmN1cnJlbnRFZGl0UmVjb3JkSW5kZXg9ZCx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkPXRoaXMuaGVscGVyU2Vydmlj'@; put 'ZS5kZWVwQ2xvbmUodGhpcy5kYXRhU291cmNlW2RdKX19dG9nZ2xlSG90UGx1Z2luKGEsZCl7Y29uc3QgaD10aGlzLmhvdEluc3RhbmNlO2guYmF0Y2goKCk9Pntjb25zdCBmPWguZ2V0UGx1Z2luKGEpO2Y/KHNldFRpbWVvdXQoKCk9PntkP2YuZW5hYmxlUGx1Z2luKCk6Zi5kaXNhYmxlUGx1'@; put 'Z2luKCl9LDEwMCksaC5yZW5kZXIoKSk6Y29uc29sZS53YXJuKCJUb2dnbGUgSG90IFBsdWdpbiBmYWlsZWQgLSBQbHVnaW4gbmFtZWQ6ICIrYSsiIC0gY291bGQgbm90IGJlIGZvdW5kLiIpfSl9ZHluYW1pY0NlbGxWYWxpZGF0aW9uRGlzYWJsZWQoYSxkKXtyZXR1cm4hIXRoaXMuZGlzYWJs'@; put 'ZWRCYXNpY0R5bmFtaWNDZWxsVmFsaWRhdGlvbk1hcC5maW5kKGY9PmYucm93PT09YSYmZi5jb2w9PT1kJiYhZi5hY3RpdmUpfWR5bmFtaWNDZWxsVmFsaWRhdGlvbihhLGQpe2lmKHRoaXMuZHluYW1pY0NlbGxWYWxpZGF0aW9uRGlzYWJsZWQoYSxkKSlyZXR1cm47Y29uc3QgaD10aGlzLmhv'@; put 'dEluc3RhbmNlO2lmKGguZ2V0Q2VsbE1ldGEoYSxkKS5yZWFkT25seSlyZXR1cm47Y29uc3Qgdj1oLmdldERhdGFBdENlbGwoYSxkKSxNPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUodGhpcy5kYXRhU291cmNlW2FdKSxJPU9iamVjdC5rZXlzKE0pW2RdLEc9dGhpcy5oZWxwZXJTZXJ2'@; put 'aWNlLmRlbGV0ZUtleXNBbmRIYXNoKE0sW0ksIm5vTGlua09wdGlvbiJdLCExKSxyZT10aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlLmZpbmRJbmRleCh1ZT0+dWUuaGFzaD09PUcpO2lmKHJlPi0xKXtsZXQgdWU9dGhpcy5jZWxsVmFsaWRhdGlvblNvdXJjZVtyZV0udmFsdWVzLm1hcChCZT0+'@; put 'QmVbdGhpcy5jZWxsVmFsaWRhdGlvbkZpZWxkcy5SQVdfVkFMVUVdKTtjb25zdCB5ZT0oaC5nZXRDZWxsTWV0YShhLGQpLnNvdXJjZXx8W10pLmxlbmd0aDwxLEVlPSIgIiE9PXY7aC5iYXRjaCgoKT0+e2NvbnN0IEJlPWguZ2V0Q2VsbE1ldGEoYSxkKSxHZT10aGlzLmRjVmFsaWRhdG9yPy5n'@; put 'ZXRSdWxlKEJlLmRhdGF8fCIiKTtsZXQgc3Q7R2UmJihzdD10aGlzLmRjVmFsaWRhdG9yPy5nZXREcURyb3Bkb3duU291cmNlKEdlKSksc3R8fChzdD1bXSksIm51bWVyaWMiPT09R2U/LnR5cGU/KHN0PXRoaXMuaGVscGVyU2VydmljZS5jb252ZXJ0QXJyYXlWYWx1ZXMoc3QsIm51bWJlciIp'@; put 'LHVlPXRoaXMuaGVscGVyU2VydmljZS5jb252ZXJ0QXJyYXlWYWx1ZXModWUsIm51bWJlciIpKTooc3Q9dGhpcy5oZWxwZXJTZXJ2aWNlLmNvbnZlcnRBcnJheVZhbHVlcyhzdCwic3RyaW5nIiksdWU9dGhpcy5oZWxwZXJTZXJ2aWNlLmNvbnZlcnRBcnJheVZhbHVlcyh1ZSwic3RyaW5nIikp'@; put 'O2NvbnN0IHB0PVsuLi5uZXcgU2V0KFsuLi5zdCwuLi51ZV0pXTtpZihoLnNldENlbGxNZXRhKGEsZCwic291cmNlIixwdCksdGhpcy5jdXJyZW50RWRpdFJlY29yZFZhbGlkYXRvcj8udXBkYXRlUnVsZShkLHtzb3VyY2U6cHR9KSx0aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlW3JlXS52YWx1'@; put 'ZXMubGVuZ3RoPjApe2NvbnN0IGR0PXRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2VbcmVdLnN0cmljdDtoLnNldENlbGxNZXRhKGEsZCwicmVuZGVyZXIiLCJhdXRvY29tcGxldGUiKSxoLnNldENlbGxNZXRhKGEsZCwiZWRpdG9yIiwiYXV0b2NvbXBsZXRlLmN1c3RvbSIpLGguc2V0Q2VsbE1l'@; put 'dGEoYSxkLCJzdHJpY3QiLGR0KSxoLnNldENlbGxNZXRhKGEsZCwiZmlsdGVyIiwhMSksdGhpcy5jdXJyZW50RWRpdFJlY29yZFZhbGlkYXRvcj8udXBkYXRlUnVsZShkLHtyZW5kZXJlcjoiYXV0b2NvbXBsZXRlIixlZGl0b3I6ImF1dG9jb21wbGV0ZS5jdXN0b20iLHN0cmljdDpkdCxmaWx0'@; put 'ZXI6ITF9KX10aGlzLnJlU2V0RXh0ZW5kZWRDZWxsVmFsaWRhdGlvblZhbHVlcyh0aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlW3JlXSxhLHllJiZFZSksaC5yZW5kZXIoKX0pfWlmKHJlPDApe2NvbnN0IHVlPXtTQVNDb250cm9sVGFibGU6W3tsaWJkczp0aGlzLmxpYmRzLHZhcmlhYmxlX25t'@; put 'Okl9XSxzb3VyY2Vfcm93OltNXX0seWU9dGhpcy5kY1ZhbGlkYXRvcj8uZ2V0RHFEZXRhaWxzKEkpLmZpbmQoRWU9PiJTT0ZUU0VMRUNUX0hPT0siPT09RWUuUlVMRV9UWVBFfHwiSEFSRFNFTEVDVF9IT09LIj09PUVlLlJVTEVfVFlQRSk7eWUmJih0aGlzLmNlbGxWYWxpZGF0aW9uU291cmNl'@; put 'LnB1c2goe3JvdzphLGNvbDpkLHN0cmljdDoiSEFSRFNFTEVDVF9IT09LIj09PXllLlJVTEVfVFlQRSx2YWx1ZXM6W10saGFzaDpHLGNvdW50OnRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2UubGVuZ3RoKzF9KSxoLnNldENlbGxNZXRhKGEsZCwicmVuZGVyZXIiLFFtdCksdGhpcy5jdXJyZW50'@; put 'RWRpdFJlY29yZExvYWRpbmdzLnB1c2goZCksaC5yZW5kZXIoKSx0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgiZWRpdG9ycy9nZXRkeW5hbWljY29sdmFscyIsdWUsdm9pZCAwLHtzdXBwcmVzc1N1Y2Nlc3NBYm9ydE1vZGFsOiEwLHN1cHByZXNzRXJyb3JBYm9ydE1vZGFsOiEwfSkudGhlbihF'@; put 'ZT0+e2lmKEVlLmFkYXB0ZXJSZXNwb25zZS5keW5hbWljX3ZhbHVlcy5tYXAoR2U9PkdlW3RoaXMuY2VsbFZhbGlkYXRpb25GaWVsZHMuUkFXX1ZBTFVFXSkubGVuZ3RoPjApe2NvbnN0IEdlPXRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2UuZmluZEluZGV4KHN0PT5zdC5oYXNoPT09Ryk7R2U+'@; put 'LTEmJih0aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlW0dlXT17Li4udGhpcy5jZWxsVmFsaWRhdGlvblNvdXJjZVtHZV0scm93OmEsY29sOmQsdmFsdWVzOkVlLmFkYXB0ZXJSZXNwb25zZS5keW5hbWljX3ZhbHVlcyxleHRlbmRlZF92YWx1ZXM6RWUuYWRhcHRlclJlc3BvbnNlLmR5bmFtaWNf'@; put 'ZXh0ZW5kZWRfdmFsdWVzfSksaC5zZXRDZWxsTWV0YShhLGQsInJlbmRlcmVyIixxZWUpLHRoaXMuY3VycmVudEVkaXRSZWNvcmRMb2FkaW5ncy5zcGxpY2UodGhpcy5jdXJyZW50RWRpdFJlY29yZExvYWRpbmdzLmluZGV4T2YoZCksMSksaC5kZXNlbGVjdENlbGwoKSxoLnJlbmRlcigpLGgu'@; put 'YmF0Y2goKCk9PntzZXRUaW1lb3V0KCgpPT57dGhpcy5yZVNldENlbGxWYWxpZGF0aW9uVmFsdWVzKCEwLGEpLGgucmVuZGVyKCksaC52YWxpZGF0ZVJvd3MoW2FdKX0sMTAwKX0pfWlmKGguc2V0Q2VsbE1ldGEoYSxkLCJyZW5kZXJlciIscWVlKSx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkTG9h'@; put 'ZGluZ3Muc3BsaWNlKHRoaXMuY3VycmVudEVkaXRSZWNvcmRMb2FkaW5ncy5pbmRleE9mKGQpLDEpLGguZGVzZWxlY3RDZWxsKCksaC5yZW5kZXIoKSx0aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlLmxlbmd0aD50aGlzLnZhbGlkYXRpb25UYWJsZUxpbWl0KXtjb25zdCBHZT10aGlzLmNlbGxW'@; put 'YWxpZGF0aW9uU291cmNlLnJlZHVjZSgocHQsZHQpPT5wdC5jb3VudDxkdC5jb3VudD9wdDpkdCksc3Q9dGhpcy5jZWxsVmFsaWRhdGlvblNvdXJjZS5pbmRleE9mKEdlKTt0aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlLnNwbGljZShzdCwxKX19KS5jYXRjaChFZT0+e2NvbnN0IEJlPXRoaXMu'@; put 'Y2VsbFZhbGlkYXRpb25Tb3VyY2UuZmluZEluZGV4KEdlPT5HZS5oYXNoPT09Ryk7dGhpcy5jZWxsVmFsaWRhdGlvblNvdXJjZS5zcGxpY2UoQmUsMSksaC5iYXRjaCgoKT0+e2guc2V0Q2VsbE1ldGEoYSxkLCJyZW5kZXJlciIsSm10KSxoLnJlbmRlcigpfSksdGhpcy5jdXJyZW50RWRpdFJl'@; put 'Y29yZExvYWRpbmdzLnNwbGljZSh0aGlzLmN1cnJlbnRFZGl0UmVjb3JkTG9hZGluZ3MuaW5kZXhPZihkKSwxKSx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkRXJyb3JzLnB1c2goZCksc2V0VGltZW91dCgoKT0+e2guc2V0Q2VsbE1ldGEoYSxkLCJyZW5kZXJlciIscWVlKSxoLnJlbmRlcigpLHRo'@; put 'aXMuY3VycmVudEVkaXRSZWNvcmRFcnJvcnMuc3BsaWNlKHRoaXMuY3VycmVudEVkaXRSZWNvcmRFcnJvcnMuaW5kZXhPZihkKSwxKX0sM2UzKSx0aGlzLnJlU2V0Q2VsbFZhbGlkYXRpb25WYWx1ZXMoKSx0aGlzLmxvZ2dlclNlcnZpY2UubG9nKCJnZXRkeW5hbWljY29sdmFscyBlcnJvcjoi'@; put 'LEVlKX0pKX19Y2hlY2tFbXB0eVJvd1doZW5GaWx0ZXIoKXt0aGlzLnplcm9GaWx0ZXJSb3dzPSExLHR5cGVvZiB0aGlzLmZpbHRlcl9wazwidSImJjE9PT10aGlzLmhvdFRhYmxlLmRhdGEubGVuZ3RoJiZbbnVsbCwiIl0uaW5jbHVkZXModGhpcy5ob3RUYWJsZS5kYXRhWzBdW3RoaXMuaGVh'@; put 'ZGVyUGtzWzBdXSkmJih0aGlzLnplcm9GaWx0ZXJSb3dzPSEwKX1vblJlY29yZElucHV0Rm9jdXMoYSl7dGhpcy5keW5hbWljQ2VsbFZhbGlkYXRpb24odGhpcy5jdXJyZW50RWRpdFJlY29yZEluZGV4LGEuY29sTmFtZSl9ZXhlY3V0ZUR5bmFtaWNDZWxsVmFsaWRhdGlvbklmQXBwbGljYWJs'@; put 'ZShhLGQsaCl7Y29uc3QgZj10aGlzLmhlbHBlclNlcnZpY2UuZGVsZXRlS2V5c0FuZEhhc2godGhpcy5kYXRhU291cmNlW2hdLFthLCJub0xpbmtPcHRpb24iXSksdj10aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlLmZpbmQoTT0+TS5oYXNoPT09ZiYmZD09PU0uY29sKTtpZih2JiZ2LmV4dGVu'@; put 'ZGVkX3ZhbHVlcyYmdi5leHRlbmRlZF92YWx1ZXMubGVuZ3RoPjApe2NvbnN0IE09dGhpcy5nZXRFeHRlbmRlZFZhbHVlc0J5Q2VsbFZhbHVlKHYsaCk7dGhpcy5zZXRFeHRlbmRlZFZhbHVlc1RvQ2VsbHModixoLE0sITApfX1kYXRhc2V0SW5mb01vZGFsUm93Q2xpY2tlZChhKXt2b2lkIDAh'@; put 'PT1hLkxPQURfUkVGJiZ0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9zdGFnZS8ke2EuTE9BRF9SRUZ9YF0pfXZpZXdib3hNYW5hZ2VyKCl7dGhpcy52aWV3Ym94ZXM9ITB9Z2V0IHRvdGFsUm93c0NoYW5nZWQoKXtyZXR1cm4gdGhpcy5yb3dzQ2hhbmdlZC5yb3dzVXBkYXRlZCt0aGlzLnJvd3ND'@; put 'aGFuZ2VkLnJvd3NEZWxldGVkK3RoaXMucm93c0NoYW5nZWQucm93c0FkZGVkfXNldENlbGxGaWx0ZXIoYSl7Y29uc3QgZD10aGlzLmhvdEluc3RhbmNlLmdldFNlbGVjdGVkKCk7aWYoIWQpcmV0dXJuO2NvbnN0IGg9ZCYmZFswXTtpZihoKXtjb25zdCBmPWhbMF0sTT1oWzFdO2lmKGY9PT1o'@; put 'WzJdJiZNPT09aFszXSl7Y29uc3QgRz10aGlzLmhvdEluc3RhbmNlLmdldENlbGxNZXRhKGYsTSk7RyYmRy5maWx0ZXI9PT0hYSYmdGhpcy5ob3RJbnN0YW5jZS5zZXRDZWxsTWV0YShmLE0sImZpbHRlciIsYSl9fX1uZ09uSW5pdCgpe3ZhciBhPXRoaXM7cmV0dXJuIFEoZnVuY3Rpb24qKCl7'@; put 'YS51cGRhdGVIb3RUYWJsZVNldHRpbmdzKCksYS5saWNlbmNlU2VydmljZS5ob3RfbGljZW5zZV9rZXkuc3Vic2NyaWJlKGg9PnthLmhvdFRhYmxlLmxpY2Vuc2VLZXk9aCxhLnVwZGF0ZUhvdFRhYmxlU2V0dGluZ3MoKX0pLGEuX3F1ZXJ5PWEuc2FzU3RvcmVTZXJ2aWNlLnF1ZXJ5LnN1YnNj'@; put 'cmliZShoPT57aC5saWJkcz09PWEubGliZHMmJihhLndoZXJlU3RyaW5nPWguc3RyaW5nLGEuY2xhdXNlcz1oLm9iail9KTtjb25zdCBkPXt9O3R5cGVvZiBhLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5saWJNZW08InUiJiYoYS5saWJkcz1hLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5saWJNZW0s'@; put 'YS5maWx0ZXJfcGs9YS5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuZmlsdGVySWQsImVkaXQtcmVjb3JkIj09PWEucm91dGUuc25hcHNob3QudXJsWzBdLnBhdGgmJihhLnJlY29yZEFjdGlvbj10eXBlb2YgYS5maWx0ZXJfcGs8InUiPyJFRElUIjoiQUREIiksZC5MSUJEUz1hLmxpYmRzLHR5cGVv'@; put 'ZiBhLmZpbHRlcl9wazwidSImJihkLkZJTFRFUl9SSz1wYXJzZUludChhLmZpbHRlcl9waykpLGQuT1VUREVTVD0iV0VCIixhLmxpYmRzJiYoSm4uZWRpdG9yLmxpYnJhcnk9YS5saWJkcy5zcGxpdCgiLiIpWzBdLEpuLmVkaXRvci50YWJsZT1hLmxpYmRzLnNwbGl0KCIuIilbMV0pKSxhLmxp'@; put 'YmRzJiYoYS5nZXRkYXRhRXJyb3I9ITEseWllbGQgYS5zYXNTdG9yZVNlcnZpY2UuY2FsbFNlcnZpY2UoZCwiU0FTQ29udHJvbFRhYmxlIiwiZWRpdG9ycy9nZXRkYXRhIixhLmxpYmRzKS50aGVuKGg9PnthLmluaXRTZXR1cChoKX0pLmNhdGNoKGg9PnthLmdldGRhdGFFcnJvcj0hMCxhLnRh'@; put 'YmxlVHJ1ZT0hMH0pKX0pKCl9bmdBZnRlclZpZXdJbml0KCl7c2V0VGltZW91dCgoKT0+e3RoaXMuZml4QXJpYUFjY2Vzc2liaWxpdHkoKX0sMWUzKSxzZXRUaW1lb3V0KCgpPT57aWYodGhpcy5ob3RUYWJsZUNvbXBvbmVudCYmdGhpcy5ob3RUYWJsZUNvbXBvbmVudC5ob3RJbnN0YW5jZSl7'@; put 'Y29uc3QgYT10aGlzLmhvdFRhYmxlQ29tcG9uZW50LmhvdEluc3RhbmNlLnJvb3RFbGVtZW50O2EmJmEuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixkPT57dGhpcy51cGxvYWRQcmV2aWV3fHx0aGlzLmhvdENsaWNrZWQoKSxzZXRUaW1lb3V0KCgpPT57Y29uc3QgaD1kb2N1bWVudC5x'@; put 'dWVyeVNlbGVjdG9yKCIuZGVidWctc3dpdGNoLWl0ZW0iKXx8dm9pZCAwO2gmJmguY2xpY2soKX0sMTAwKX0pfX0sMTAwKX1uZ09uRGVzdHJveSgpe3RoaXMuYXJpYU9ic2VydmVyJiYodGhpcy5hcmlhT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMuYXJpYU9ic2VydmVyPXZvaWQgMCksdGhp'@; put 'cy5hcmlhQ2hlY2tJbnRlcnZhbCYmKGNsZWFySW50ZXJ2YWwodGhpcy5hcmlhQ2hlY2tJbnRlcnZhbCksdGhpcy5hcmlhQ2hlY2tJbnRlcnZhbD12b2lkIDApfWZpeEFyaWFBY2Nlc3NpYmlsaXR5KCl7Y29uc3QgYT0oKT0+e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5odC13cmFwcGVy'@; put 'LCAud3RIb2xkZXIsIFtpZF49Imh0XyJdJykuZm9yRWFjaChHPT57Ry5yZW1vdmVBdHRyaWJ1dGUoInJvbGUiKSxHLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1yb3djb3VudCIpLEcucmVtb3ZlQXR0cmlidXRlKCJhcmlhLWNvbGNvdW50IiksRy5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtbXVsdGlz'@; put 'ZWxlY3RhYmxlIil9KTtjb25zdCBoPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tyb2xlPSJ0cmVlZ3JpZCJdJyksZj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbcm9sZT0icHJlc2VudGF0aW9uIl0nKTtoLmZvckVhY2goRz0+e0cucmVtb3ZlQXR0cmlidXRlKCJyb2xlIiksRy5y'@; put 'ZW1vdmVBdHRyaWJ1dGUoImFyaWEtcm93Y291bnQiKSxHLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1jb2xjb3VudCIpLEcucmVtb3ZlQXR0cmlidXRlKCJhcmlhLW11bHRpc2VsZWN0YWJsZSIpfSksZi5mb3JFYWNoKEc9PntHLnF1ZXJ5U2VsZWN0b3JBbGwoImJ1dHRvbiwgaW5wdXQsIHNlbGVj'@; put 'dCwgdGV4dGFyZWEsIFt0YWJpbmRleF0sIFtvbmNsaWNrXSwgW2NvbnRlbnRlZGl0YWJsZV0iKS5sZW5ndGg+MCYmRy5yZW1vdmVBdHRyaWJ1dGUoInJvbGUiKX0pLGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1thcmlhLXJvd2NvdW50PSItMSJdJykuZm9yRWFjaChHPT57Ry5yZW1vdmVB'@; put 'dHRyaWJ1dGUoImFyaWEtcm93Y291bnQiKX0pLGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRhYmxlIikuZm9yRWFjaChHPT57Ry5nZXRBdHRyaWJ1dGUoInJvbGUiKXx8Ry5zZXRBdHRyaWJ1dGUoInJvbGUiLCJ0YWJsZSIpLEcucXVlcnlTZWxlY3RvckFsbCgidGgiKS5mb3JFYWNoKHVl'@; put 'PT57dWUuZ2V0QXR0cmlidXRlKCJzY29wZSIpfHx1ZS5zZXRBdHRyaWJ1dGUoInNjb3BlIiwiY29sIil9KX0pLGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImJ1dHRvbiwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIFtjb250ZW50ZWRpdGFibGVdIikuZm9yRWFjaChHPT57aWYoIUcuZ2V0'@; put 'QXR0cmlidXRlKCJhcmlhLWxhYmVsIikmJiFHLmdldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbGxlZGJ5Iikpe2NvbnN0IHJlPUcudGV4dENvbnRlbnQ/LnRyaW0oKTtyZSYmRy5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLHJlKX19KX07YSgpLHNldFRpbWVvdXQoYSwxMDApLHNldFRpbWVvdXQo'@; put 'YSw1MDApLHNldFRpbWVvdXQoYSwxZTMpLHNldFRpbWVvdXQoYSwyZTMpLHRoaXMuYXJpYUNoZWNrSW50ZXJ2YWx8fCh0aGlzLmFyaWFDaGVja0ludGVydmFsPXNldEludGVydmFsKGEsM2UzKSksdGhpcy5hcmlhT2JzZXJ2ZXJ8fCh0aGlzLmFyaWFPYnNlcnZlcj1uZXcgTXV0YXRpb25PYnNl'@; put 'cnZlcihkPT57bGV0IGg9ITE7ZC5mb3JFYWNoKGY9PnsiYXR0cmlidXRlcyI9PT1mLnR5cGUmJigicm9sZSI9PT1mLmF0dHJpYnV0ZU5hbWV8fCJhcmlhLXJvd2NvdW50Ij09PWYuYXR0cmlidXRlTmFtZSkmJihoPSEwKSwiY2hpbGRMaXN0Ij09PWYudHlwZSYmZi5hZGRlZE5vZGVzLmZvckVh'@; put 'Y2godj0+e2lmKHYubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSl7Y29uc3QgTT12OyhNLmhhc0F0dHJpYnV0ZSgicm9sZSIpfHxNLmhhc0F0dHJpYnV0ZSgiYXJpYS1yb3djb3VudCIpKSYmKGg9ITApfX0pfSksaCYmc2V0VGltZW91dChhLDUwKX0pLHRoaXMuYXJpYU9ic2VydmVyLm9i'@; put 'c2VydmUoZG9jdW1lbnQuYm9keSx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITAsYXR0cmlidXRlczohMCxhdHRyaWJ1dGVGaWx0ZXI6WyJyb2xlIiwiYXJpYS1yb3djb3VudCIsImFyaWEtY29sY291bnQiLCJhcmlhLW11bHRpc2VsZWN0YWJsZSJdfSkpfWluaXRTZXR1cChhKXtpZih0aGlzLmhv'@; put 'dEluc3RhbmNlPXRoaXMuaG90VGFibGVDb21wb25lbnQuaG90SW5zdGFuY2UsdGhpcy5nZXRkYXRhRXJyb3J8fCFhfHwhYS5kYXRhfHwhdGhpcy5ob3RJbnN0YW5jZSlyZXR1cm47dGhpcy5jb2xzPWEuZGF0YS5jb2xzLHRoaXMuZHNtZXRhPWEuZGF0YS5kc21ldGEsdGhpcy52ZXJzaW9ucz1h'@; put 'LmRhdGEudmVyc2lvbnN8fFtdO2NvbnN0IGQ9dGhpcy5kc21ldGEuZmluZChJPT4iTk9URVMiPT09SS5OQU1FKSxoPXRoaXMuZHNtZXRhLmZpbmQoST0+IkREX0xPTkdERVNDIj09PUkuTkFNRSksZj10aGlzLmRzbWV0YS5maW5kKEk9PiJERF9TSE9SVERFU0MiPT09SS5OQU1FKTt0aGlzLmRz'@; put 'Tm90ZT1kJiZkLlZBTFVFP2QuVkFMVUU6aCYmaC5WQUxVRT9oLlZBTFVFOmYmJmYuVkFMVUU/Zi5WQUxVRToiIjtjb25zdCB2PXRoaXMuaG90SW5zdGFuY2UsTT1hLmRhdGEuYXBwcm92ZXJzO3RoaXMuY29scyYmKHRoaXMuaGVhZGVyQXJyYXk9KGM9Pntjb25zdCBsPVtdO2ZvcihsZXQgYSBv'@; put 'ZiBjKSJfX19fX0RFTEVURV9fVEhJU19fUkVDT1JEX19fX18iIT09YS5OQU1FJiZsLnB1c2goYS5OQU1FKTtyZXR1cm4gbH0pKHRoaXMuY29scykpLE0uZm9yRWFjaChJPT57dGhpcy5hcHByb3ZlcnMucHVzaChJLlBFUlNPTk5BTUUpfSksdGhpcy50YWJsZVRydWU9ITAsdGhpcy5saWJkcz1h'@; put 'LmxpYmRzLHRoaXMuaG90VGFibGUuZGF0YT1hLmRhdGEuc2FzZGF0YSx0aGlzLmhlYWRlckNvbHVtbnM9YS5kYXRhLnNhc3BhcmFtc1swXS5DT0xIRUFERVJTLnNwbGl0KCIsIiksdGhpcy5oZWFkZXJQa3M9YS5kYXRhLnNhc3BhcmFtc1swXS5QSy5zcGxpdCgiICIpLHRoaXMuY29sdW1uTGV2'@; put 'ZWxTZWN1cml0eUZsYWc9ISFhLmRhdGEuc2FzcGFyYW1zWzBdLkNMU19GTEFHLHRoaXMuY29sdW1uTGV2ZWxTZWN1cml0eUZsYWcmJnRoaXMuc2V0UmVzdHJpY3Rpb25zKHtyZXN0cmljdEFkZFJvdzohMCxyZW1vdmVFZGl0UmVjb3JkQnV0dG9uOiEwLHJlbW92ZUFkZFJlY29yZEJ1dHRvbjoh'@; put 'MH0pLHRoaXMuY2hlY2tFbXB0eVJvd1doZW5GaWx0ZXIoKSwtMSE9PXRoaXMuaGVhZGVyQ29sdW1ucy5pbmRleE9mKCJfX19fX0RFTEVURV9fVEhJU19fUkVDT1JEX19fX18iKSYmKHRoaXMuaGVhZGVyQ29sdW1uc1t0aGlzLmhlYWRlckNvbHVtbnMuaW5kZXhPZigiX19fX19ERUxFVEVfX1RI'@; put 'SVNfX1JFQ09SRF9fX19fIildPSJEZWxldGU/IiksdGhpcy5oZWFkZXJBcnJheT10aGlzLmhlYWRlckNvbHVtbnMuc2xpY2UoMSksIiIhPT1hLmRhdGEuc2FzcGFyYW1zWzBdLkRUVkFSUyYmKHRoaXMuZGF0ZUhlYWRlcnM9YS5kYXRhLnNhc3BhcmFtc1swXS5EVFZBUlMuc3BsaXQoIiAiKSks'@; put 'IiIhPT1hLmRhdGEuc2FzcGFyYW1zWzBdLlRNVkFSUyYmKHRoaXMudGltZUhlYWRlcnM9YS5kYXRhLnNhc3BhcmFtc1swXS5UTVZBUlMuc3BsaXQoIiAiKSksIiIhPT1hLmRhdGEuc2FzcGFyYW1zWzBdLkRUVE1WQVJTJiYodGhpcy5kYXRlVGltZUhlYWRlcnM9YS5kYXRhLnNhc3BhcmFtc1sw'@; put 'XS5EVFRNVkFSUy5zcGxpdCgiICIpKSxhLmRhdGEueGxfcnVsZXMubGVuZ3RoPjAmJih0aGlzLnhsUnVsZXM9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZShhLmRhdGEueGxfcnVsZXMpKSx0aGlzLmRjVmFsaWRhdG9yPW5ldyBWNmUoYS5kYXRhLnNhc3BhcmFtc1swXSxhLmRhdGEuJHNh'@; put 'c2RhdGEsdGhpcy5jb2xzLGEuZGF0YS5kcXJ1bGVzLGEuZGF0YS5kcWRhdGEpLHRoaXMuY2VsbFZhbGlkYXRpb249dGhpcy5kY1ZhbGlkYXRvci5nZXRSdWxlcygpLHRoaXMuZGF0YVNvdXJjZT1hLmRhdGEuc2FzZGF0YSx0aGlzLiRkYXRhRm9ybWF0cz1hLmRhdGEuJHNhc2RhdGE7Zm9yKGxl'@; put 'dCBJPTA7STx0aGlzLmhlYWRlckNvbHVtbnMubGVuZ3RoO0krKyl0aGlzLmhvdERhdGFTY2hlbWFbdGhpcy5jZWxsVmFsaWRhdGlvbltJXS5kYXRhXT1YbXQodGhpcy5jZWxsVmFsaWRhdGlvbltJXS50eXBlLHRoaXMuY2VsbFZhbGlkYXRpb25bSV0pO3RoaXMuY2hlY2tSb3dMaW1pdCgpLHYu'@; put 'dXBkYXRlU2V0dGluZ3Moe2RhdGE6dGhpcy5kYXRhU291cmNlLGNvbEhlYWRlcnM6dGhpcy5oZWFkZXJDb2x1bW5zLGNvbHVtbnM6dGhpcy5jZWxsVmFsaWRhdGlvbixoZWlnaHQ6dGhpcy5ob3RUYWJsZS5oZWlnaHQsZm9ybXVsYXM6dGhpcy5ob3RUYWJsZS5mb3JtdWxhcyxzdHJldGNoSDoi'@; put 'YWxsIixyZWFkT25seTp0aGlzLmhvdFRhYmxlLnJlYWRPbmx5LGhpZGRlbkNvbHVtbnM6e2luZGljYXRvcnM6ITAsY29sdW1uczp0aGlzLmRjVmFsaWRhdG9yLmdldEhpZGRlbkNvbHVtbnMoKX0sbW9kaWZ5Q29sV2lkdGg6ZnVuY3Rpb24oSSxHKXtyZXR1cm4gMD09PUc/NjA6ST41MDA/NTAw'@; put 'Okl9LGNvcHlQYXN0ZTp0aGlzLmhvdFRhYmxlLmNvcHlQYXN0ZSxtYW51YWxDb2x1bW5GcmVlemU6ITEsbXVsdGlDb2x1bW5Tb3J0aW5nOiEwLG1hbnVhbENvbHVtblJlc2l6ZTohMCxmaWx0ZXJzOiExLG1hbnVhbFJvd1Jlc2l6ZTohMCx2aWV3cG9ydFJvd1JlbmRlcmluZ09mZnNldDo1MCxy'@; put 'b3dIZWFkZXJzOkk9PiIgIixyb3dIZWFkZXJXaWR0aDoxNSxyb3dIZWlnaHRzOjI0LG1heFJvd3M6dGhpcy5saWNlbmNlU3RhdGUudmFsdWUuZWRpdG9yX3Jvd3NfYWxsb3dlZHx8MS8wLGludmFsaWRDZWxsQ2xhc3NOYW1lOiJodEludmFsaWQiLGF1dG9XcmFwUm93OiExLGF1dG9XcmFwQ29s'@; put 'OiExLGJpbmRSb3dzV2l0aEhlYWRlcnM6ITEsZHJvcGRvd25NZW51OntpdGVtczp7bWFrZV9yZWFkX29ubHk6e25hbWU6Im1ha2VfcmVhZF9vbmx5In0sYWxpZ25tZW50OntuYW1lOiJhbGlnbm1lbnQifSxzcDE6e25hbWU6Ii0tLS0tLS0tLSJ9LGluZm86e25hbWU6InRlc3QgaW5mbyIscmVu'@; put 'ZGVyZXI6KEksRyxyZSx1ZSx5ZSxFZSk9Pntjb25zdCBCZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7bGV0IEdlLHN0PSJObyBpbmZvIGZvdW5kIjtpZih0aGlzLmhvdEluc3RhbmNlKXtjb25zdCBwdD10aGlzLmhvdEluc3RhbmNlLmdldFNlbGVjdGVkKCl8fFtdLGR0PXB0P3B0'@; put 'WzBdWzFdOi0xLHF0PXRoaXMuaG90SW5zdGFuY2U/LmNvbFRvUHJvcChkdCk7R2U9dGhpcy4kZGF0YUZvcm1hdHM/LnZhcnNbcXRdLEdlJiYoc3Q9YExBQkVMOiAke0dlPy5sYWJlbH08YnI+VFlQRTogJHtHZT8udHlwZX08YnI+TEVOR1RIOiAke0dlPy5sZW5ndGh9PGJyPkZPUk1BVDogJHtH'@; put 'ZT8uZm9ybWF0fWApfXJldHVybiBCZS5pbm5lckhUTUw9c3QsQmV9fX19LGRhdGFTY2hlbWE6dGhpcy5ob3REYXRhU2NoZW1hLGNvbnRleHRNZW51OnRoaXMuaG90VGFibGUuc2V0dGluZ3MuY29udGV4dE1lbnUsY3VycmVudEhlYWRlckNsYXNzTmFtZToiY3VzdG9tSCIsYWZ0ZXJHZXRDb2xI'@; put 'ZWFkZXI6KEksRyk9Pntjb25zdCByZT10aGlzLmNvbHVtbkhlYWRlcltJXSx1ZT1yZSYmdGhpcy5pc0NvbFBrKHJlKSx5ZT1yZSYmdGhpcy5pc1JlYWRvbmx5Q29sKHJlKTt1ZSYmRy5jbGFzc0xpc3QuYWRkKCJwcmltYXJ5S2V5SGVhZGVyU3R5bGUiKSx5ZSYmIXVlJiZHLmNsYXNzTGlzdC5h'@; put 'ZGQoInJlYWRvbmx5Q2VsbCIpLDA9PT1JJiZHLmNsYXNzTGlzdC5hZGQoImZpcnN0Q29sdW1uSGVhZGVyU3R5bGUiKSxHLmNsYXNzTGlzdC5hZGQoSm4uaGFuZHNvbnRhYmxlLmRhcmtUYWJsZUhlYWRlckNsYXNzKX0sYWZ0ZXJHZXRDZWxsTWV0YTooSSxHLHJlKT0+e2NvbnN0IHVlPUcmJnRo'@; put 'aXMuaXNSZWFkb25seUNvbChHKSx5ZT10aGlzLmR1cGxpY2F0ZVBrSW5kZXhlcy5pbmNsdWRlcyhJKSYmRz49MSYmRzw9dGhpcy5yZWFkT25seUZpZWxkcyxFZT1yZS5jbGFzc05hbWV8fCIiO2xldCBCZTtCZT1BcnJheS5pc0FycmF5KEVlKT9bLi4uRWVdOkVlLnNwbGl0KCIgIikuZmlsdGVy'@; put 'KEdlPT5HZS5sZW5ndGg+MCksdWUmJiFCZS5pbmNsdWRlcygicmVhZG9ubHlDZWxsIikmJkJlLnB1c2goInJlYWRvbmx5Q2VsbCIpLHllJiYoQmUuaW5jbHVkZXMoImRjLWludmFsaWQtY2VsbCIpfHxCZS5wdXNoKCJkYy1pbnZhbGlkLWNlbGwiKSxyZS52YWxpZD0hMSxyZS5kdXBLZXk9ITAp'@; put 'LEJlLmxlbmd0aD4wJiYocmUuY2xhc3NOYW1lPUJlLmpvaW4oIiAiKSl9fSwhMSksdGhpcy5ob3RUYWJsZS5oaWRkZW49ITEsdGhpcy50b2dnbGVIb3RQbHVnaW4oImNvbnRleHRNZW51IiwhMSksdGhpcy5xdWVyeVRleHQ9YS5kYXRhLnNhc3BhcmFtc1swXS5GSUxURVJfVEVYVCx0aGlzLmNv'@; put 'bHVtbkhlYWRlcj1hLmRhdGEuc2FzcGFyYW1zWzBdLkNPTEhFQURFUlMuc3BsaXQoIiwiKSx0aGlzLmNvbHVtbkhlYWRlclswXT0iRGVsZXRlPyIsdGhpcy5yZWFkT25seUZpZWxkcz1hLmRhdGEuc2FzcGFyYW1zWzBdLlBLQ05ULHYuYWRkSG9vaygiYWZ0ZXJTZWxlY3Rpb24iLChJLEcscmUs'@; put 'dWUseWUsRWUpPT57ST09PXJlJiZHPT09dWUmJiExPT09dGhpcy5ob3RUYWJsZS5yZWFkT25seSYmdGhpcy5keW5hbWljQ2VsbFZhbGlkYXRpb24oSSxHKX0pLHYuYWRkSG9vaygiYWZ0ZXJCZWdpbkVkaXRpbmciLCgpPT57dGhpcy5zZXRDZWxsRmlsdGVyKCExKX0pLHYuYWRkSG9vaygiYmVm'@; put 'b3JlS2V5RG93biIsKCk9Pnt0aGlzLnNldENlbGxGaWx0ZXIoITApfSksdi5hZGRIb29rKCJhZnRlckNoYW5nZSIsKEksRyk9PntpZigiZWRpdCI9PT1HKXtjb25zdCByZT10aGlzLmhvdEluc3RhbmNlLHVlPUlbMF1bMF0seWU9SVswXVsxXSxFZT1yZS5wcm9wVG9Db2woeWUpLEJlPXJlLmdl'@; put 'dENlbGxNZXRhKHVlLEVlKTtCZSYmITE9PT1CZS5maWx0ZXImJnJlLnNldENlbGxNZXRhKHVlLEVlLCJmaWx0ZXIiLCEwKSx0aGlzLmV4ZWN1dGVEeW5hbWljQ2VsbFZhbGlkYXRpb25JZkFwcGxpY2FibGUoeWUsRWUsdWUpfX0pLHYuYWRkSG9vaygiYWZ0ZXJSZW5kZXIiLEk9Pnt0aGlzLmV2'@; put 'ZW50U2VydmljZS5kaXNwYXRjaEV2ZW50KCJyZXNpemUiKSx0aGlzLmZpeEFyaWFBY2Nlc3NpYmlsaXR5KCl9KSx2LmFkZEhvb2soImFmdGVyQ2hhbmdlIiwoKT0+e3NldFRpbWVvdXQoKCk9Pnt0aGlzLmZpeEFyaWFBY2Nlc3NpYmlsaXR5KCl9LDUwKX0pLHYuYWRkSG9vaygiYWZ0ZXJDcmVh'@; put 'dGVSb3ciLChJLEcpPT57aWYoST50aGlzLmRhdGFTb3VyY2UubGVuZ3RoKXtjb25zdCByZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIud3RIb2xkZXIiKTtzZXRUaW1lb3V0KCgpPT57cmUmJihyZS5zY3JvbGxUb3A9cmUuc2Nyb2xsSGVpZ2h0KX0pfX0pLHYuYWRkSG9vaygiYmVmb3JlQ3Jl'@; put 'YXRlUm93IiwoSSxHLHJlKT0+e2lmKCF0aGlzLmFkZGluZ05ld1JvdyYmIkNvbnRleHRNZW51Lmluc2VydF9yb3dfYWJvdmUiIT09cmUmJiJDb250ZXh0TWVudS5pbnNlcnRfcm93X2JlbG93IiE9PXJlKXJldHVybiExfSksdi5hZGRIb29rKCJiZWZvcmVQYXN0ZSIsKEksRyk9Pntjb25zdCBy'@; put 'ZT1HWzBdLnN0YXJ0Q29sO0lbMF09SVswXS5tYXAoKHVlLHllKT0+e2NvbnN0IEVlPXRoaXMuY29sdW1uSGVhZGVyW3JlK3llXSxCZT0ibnVtIj09PXRoaXMuJGRhdGFGb3JtYXRzPy52YXJzW0VlXT8udHlwZSxHZT0oMCxwZy5pc1NwZWNpYWxNaXNzaW5nKSh1ZSk7cmV0dXJuIEJlJiYhaXNO'@; put 'YU4odWUpJiYhR2UmJih1ZSo9MSksdWV9KX0pLHYuYWRkSG9vaygiYWZ0ZXJSZW1vdmVSb3ciLCgpPT57dGhpcy5jaGVja1Jvd0xpbWl0KCl9KSx2LmFkZEhvb2soImFmdGVyQ3JlYXRlUm93IiwoKT0+e3RoaXMuY2hlY2tSb3dMaW1pdCgpfSksdGhpcy51cGxvYWRVcmw9InNlcnZpY2VzL2Vk'@; put 'aXRvcnMvbG9hZGZpbGUiLG51bGwhPT10aGlzLnJlY29yZEFjdGlvbiYmKCJBREQiPT09dGhpcy5yZWNvcmRBY3Rpb24/KHRoaXMuYWRkUmVjb3JkKCksdGhpcy5lZGl0UmVjb3JkKG51bGwsdGhpcy5kYXRhU291cmNlLmxlbmd0aC0xLCEwKSk6MT09PXRoaXMuZGF0YVNvdXJjZS5sZW5ndGgm'@; put 'JnRoaXMuZWRpdFJlY29yZChudWxsLDApKSxhLmRhdGEucXVlcnkubGVuZ3RoPjAmJigiaG9tZSI9PT1Kbi5yb290UGFyYW18fCJlZGl0b3IiPT09Sm4ucm9vdFBhcmFtKSYmMD09PUpuLmVkaXRvci5maWx0ZXIuY2xhdXNlcy5sZW5ndGgmJihKbi5lZGl0b3IuZmlsdGVyLnF1ZXJ5PXRoaXMu'@; put 'aGVscGVyU2VydmljZS5kZWVwQ2xvbmUoYS5kYXRhLnF1ZXJ5KSxKbi5lZGl0b3IuZmlsdGVyLmxpYmRzPXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLmxpYk1lbSx0aGlzLnNhc1N0b3JlU2VydmljZS5pbml0aWFsaXplR2xvYmFsRmlsdGVyQ2xhdXNlKCJlZGl0b3IiLHRoaXMuY29scykp'@; put 'LHYucmVuZGVyKCksc2V0VGltZW91dCgoKT0+e3RoaXMuZml4QXJpYUFjY2Vzc2liaWxpdHkoKX0sNTAwKX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKSgkZShjMSksJGUobWMpLCRlKFNkKSwkZShJaCksJGUoYnUpLCRlKExvKSwkZSh5dSksJGUo'@; put 'Vm8pLCRlKHhvKSwkZShXNmUpKX19c3RhdGlje3RoaXMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImFwcC1lZGl0b3IiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGQsaCl7aWYoMSZkJiYoRmEoJGcsNSksRmEoVzd0LDcpLEZhKFk3dCw1KSxGYShHN3QsNSksRmEoJDd0LDUpKSwy'@; put 'JmQpe2xldCBmO3lpKGY9YmkoKSkmJihoLmhvdFRhYmxlQ29tcG9uZW50PWYuZmlyc3QpLHlpKGY9YmkoKSkmJihoLmh0PWYuZmlyc3QpLHlpKGY9YmkoKSkmJihoLnVwbG9hZFN0YXRlckNvbXBMaXN0PWYpLHlpKGY9YmkoKSkmJihoLnF1ZXJ5RmlsdGVyQ29tcExpc3Q9ZikseWkoZj1iaSgp'@; put 'KSYmKGguZmlsZVVwbG9hZElucHV0Q29tcExpc3Q9Zil9fSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6MTc3LHZhcnM6NzUsY29uc3RzOltbImh0IiwiIl0sWyJob3RJbnN0YW5jZSIsIiJdLFsiZmlsZVBhc3N3b3JkSW5wdXQiLCIiXSxbImZpbGVVcGxvYWRJbnB1'@; put 'dCIsIiJdLFsidXBsb2FkU3RhdGVyIiwiIl0sWyJxdWVyeUZpbHRlciIsIiJdLFsxLCJjb250ZW50LWFyZWEiLCJkLWZsZXgiLCJjbHItZmxleC1jb2x1bW4iXSxbImFwcEZpbGVEcm9wIiwiIiwxLCJyZWxhdGl2ZSIsMywiZmlsZU92ZXIiLCJmaWxlRHJvcCIsImNsck1vZGFsT3BlbkNoYW5n'@; put 'ZSIsInVwbG9hZGVyIiwiY2xyTW9kYWxTaXplIiwiY2xyTW9kYWxTdGF0aWNCYWNrZHJvcCIsImNsck1vZGFsQ2xvc2FibGUiLCJjbHJNb2RhbE9wZW4iXSxbMSwibW9kYWwtdGl0bGUiXSxbMSwibW9kYWwtYm9keSJdLFsxLCJkcm9wLWFyZWEiXSxbMSwiY2xyLWNvbC1tZC0xMiJdLFsxLCJj'@; put 'bHItcm93IiwiY2FyZC1ibG9jayIsIm10LTE1IiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWJldHdlZW4iXSxbMSwiY2xyLWNvbC1tZC1hdXRvIl0sWzEsImVuY29kaW5nLWJsb2NrIl0sWyJjbHJJbmxpbmUiLCIiLDEsIm10LTAiXSxbInR5cGUiLCJyYWRpbyIsImNsclJhZGlvIiwiIiwi'@; put 'dmFsdWUiLCJVVEYtOCIsIm5hbWUiLCJlbmNvZGluZyIsMywibmdNb2RlbENoYW5nZSIsIm5nTW9kZWwiLCJkaXNhYmxlZCJdLFsidHlwZSIsInJhZGlvIiwiY2xyUmFkaW8iLCIiLCJ2YWx1ZSIsIldMQVRJTjEiLCJuYW1lIiwiZW5jb2RpbmciLDMsIm5nTW9kZWxDaGFuZ2UiLCJuZ01vZGVs'@; put 'IiwiZGlzYWJsZWQiXSxbImNsYXNzIiwiY2xyLWNvbC1tZC0zIGZpbHRlckJ0biIsNCwibmdJZiJdLFsiY2xhc3MiLCJjbHItY29sLW1kLTMgZWRpdEJ0biIsNCwibmdJZiJdLFsidHlwZSIsImJ1dHRvbiIsImNsYXNzIiwiYnRuIGJ0bi1wcmltYXJ5IG1yLTAiLDMsImRpc2FibGVkIiwiY2xp'@; put 'Y2siLDQsIm5nSWYiXSxbInR5cGUiLCJidXR0b24iLCJjbGFzcyIsImJ0biBidG4tcHJpbWFyeSBtci0wIiwzLCJjbGljayIsNCwibmdJZiJdLFsiY2xhc3MiLCJleGNlbC1wYXJzaW5nIGNsci1jb2wtbWQtMTIiLDQsIm5nSWYiXSxbMSwibW9kYWwtZm9vdGVyIl0sWzMsImN1cnJlbnRSZWNv'@; put 'cmQiLCJyZWNvcmRBY3Rpb24iLCJsaWJkcyIsInF1ZXJ5RmlsdGVyIiwiZmlsdGVyIiwic3VibWl0TG9hZGluZyIsImhlYWRlclBrcyIsImNlbGxWYWxpZGF0aW9uIiwiY3VycmVudFJlY29yZEluZGV4IiwiY3VycmVudFJlY29yZExvYWRpbmdzIiwiY3VycmVudFJlY29yZEVycm9ycyIsImN1'@; put 'cnJlbnRSZWNvcmRWYWxpZGF0b3IiLCJvblJlY29yZENoYW5nZSIsIm9uUmVjb3JkSW5wdXRGb2N1c2VkIiwib25SZWNvcmRFZGl0Q2xvc2UiLCJvbk5leHRSZWNvcmQiLCJvblByZXZpb3VzUmVjb3JkIiw0LCJuZ0lmIl0sWzEsImNsci1mbGV4LTEiXSxbImNsYXNzIiwicHJvZ3Jlc1N0YXRp'@; put 'YyBwcm9ncmVzcyBsb29wIiw0LCJuZ0lmIl0sWyJhcHBEcmFnTmRyb3AiLCIiLDEsImNhcmQiLCJib3JkZXItMCIsImJveC1zaGFkb3ctbm9uZS1pIiwicG9zaXRpb24tcmVsYXRpdmUiLCJoLTEwMCIsImQtZmxleCIsImNsci1mbGV4LWNvbHVtbiIsImJhY2tncm91bmQtdHJhbnNwYXJlbnQi'@; put 'LDMsImZpbGVEcmFnZ2VkT3ZlciJdLFsxLCJjYXJkLWhlYWRlciIsImNsci1yb3ciLCJidXR0b25CYXIiLCJoZWFkZXJCYXIiLCJjbHItZmxleC1tZC1yb3ciLCJjbHItanVzdGlmeS1jb250ZW50LWNlbnRlciIsImNsci1qdXN0aWZ5LWNvbnRlbnQtbGctZW5kIl0sWyJjbGFzcyIsImNsci1j'@; put 'b2wtMTIgY2xyLWNvbC1tZC0zIGNsci1jb2wtbGctNCBiYWNrQnRuIiw0LCJuZ0lmIl0sWzEsImNsci1jb2wtMTIiLCJjbHItY29sLW1kLTUiLCJjbHItY29sLWxnLTQiLCJkLWZsZXgiLCJmbGV4LWNvbHVtbiIsImFsaWduLWl0ZW1zLWNlbnRlciJdLFsiY2xhc3MiLCJlZGl0b3ItdGl0bGUg'@; put 'dGV4dC1jZW50ZXIgbXQtMCIsNCwibmdWYXIiXSxbImNsYXNzIiwiY2xyLWNvbC0xMiBjbHItY29sLW1kLTQgY2xyLWNvbC1sZy00IGJ0bkN0cmwiLDQsIm5nSWYiXSxbImNsYXNzIiwiY2xyLWNvbC1tZC0xMiBpbmZvQmFyIiw0LCJuZ0lmIl0sWzEsImNhcmQtYmxvY2siLCJwLTAiLCJjbHIt'@; put 'ZmxleC0xIiwiYmFja2dyb3VuZC10cmFuc3BhcmVudCIsMywibmdDbGFzcyJdLFsiY2xhc3MiLCJjYXJkLXRleHQiLDQsIm5nSWYiXSxbMSwiY2FyZC10ZXh0IiwiaG90RWRpdG9yIiwiaC0xMDAiLCJkLWZsZXgiLCJjbHItZmxleC1jb2x1bW4iLCJiYWNrZ3JvdW5kLXRyYW5zcGFyZW50Il0s'@; put 'WzEsImhvdC13cmFwcGVyIiwiY2xyLWZsZXgtMSJdLFsiaWQiLCJob3RUYWJsZSIsMSwiZWRpdC1ob3QiLDMsImRhdGEiLCJzZXR0aW5ncyJdLFs0LCJuZ0lmIl0sWyJjbGFzcyIsIm10LTItaSB3LTEwMCB0ZXh0LWNlbnRlciIsNCwibmdJZiJdLFsiY2xhc3MiLCJtb2RhbCIsNCwibmdJZiJd'@; put 'LFszLCJjbHJNb2RhbE9wZW5DaGFuZ2UiLCJjbHJNb2RhbE9wZW4iXSxbMSwibS0wIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tcHJpbWFyeSIsMywiY2xpY2siXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1wcmltYXJ5IiwzLCJjbGljayJdLFsxLCJk'@; put 'dXBsaWNhdGUta2V5cy1tb2RhbCIsMywiY2xyTW9kYWxPcGVuQ2hhbmdlIiwiY2xyTW9kYWxPcGVuIl0sWyJjbGFzcyIsImQtYmxvY2siLDQsIm5nRm9yIiwibmdGb3JPZiJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbImNsYXNzIiwibW9kYWwgei1pbmRleC1oaWdoZXN0Iiw0LCJuZ0lmIl0s'@; put 'WzEsImZpbHRlci1tb2RhbCIsMywiY2xyTW9kYWxPcGVuQ2hhbmdlIiwiY2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxTaXplIiwiY2xyTW9kYWxDbG9zYWJsZSJdLFsxLCJtb2RhbC10aXRsZSIsImNlbnRlciIsInRleHQtY2VudGVyIiwiY29sb3ItZGFya2VyLWdyYXkiXSxbInR5cGUiLCJidXR0'@; put 'b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1saW5rIiwzLCJjbGljayJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLW91dGxpbmUiLDMsImNsaWNrIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tc3VjY2Vzcy1vdXRsaW5lIiwzLCJjbGlj'@; put 'ayIsImNsckxvYWRpbmciXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1vdXRsaW5lIiwzLCJjbGljayJdLFszLCJjbHJNb2RhbE9wZW5DaGFuZ2UiLCJjbHJNb2RhbE9wZW4iLCJjbHJNb2RhbFNpemUiLCJjbHJNb2RhbENsb3NhYmxlIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4i'@; put 'LCJidG4tc20iLCJidG4tc3VjY2Vzcy1vdXRsaW5lIiwzLCJjbGljayJdLFsxLCJtb2RhbC1ib2R5IiwiZC1mbGV4IiwiY2xyLWp1c3RpZnktY29udGVudC1jZW50ZXIiXSxbImRhdGEtbHBpZ25vcmUiLCJ0cnVlIiwiYXV0b2NvbXBsZXRlIiwib2ZmIiwiaWQiLCJmaWxlUGFzc3dvcmRJbnB1'@; put 'dCIsInR5cGUiLCJ0ZXh0IiwxLCJjbHItaW5wdXQiLCJkaXNhYmxlLXBhc3N3b3JkLW1hbmFnZXIiXSxbImNsYXNzIiwibS0wIGNvbG9yLXJlZCIsNCwibmdJZiJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXN1Y2Nlc3Mtb3V0bGluZSIsMywiY2xpY2siLCJkaXNh'@; put 'YmxlZCJdLFszLCJvcGVuQ2hhbmdlIiwicm93Q2xpY2tlZCIsIm9wZW4iLCJkc21ldGEiLCJ2ZXJzaW9ucyJdLFszLCJ2aWV3Ym94TW9kYWxDaGFuZ2UiLCJ2aWV3Ym94TW9kYWwiXSxbMSwiY2xyLWNvbC1tZC0zIiwiZmlsdGVyQnRuIl0sWzEsImZpbHRlckJ0biIsInctMTAwIl0sWyJmb3Ii'@; put 'LCJmaWxlLXVwbG9hZCIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLW91dGxpbmUiLCJwcm9maWxlLWJ1dHRvbnMiLCJ3LTEwMCJdLFsiaGlkZGVuIiwiIiwiaWQiLCJmaWxlLXVwbG9hZCIsInR5cGUiLCJmaWxlIiwiYXBwRmlsZVNlbGVjdCIsIiIsMywiY2hhbmdlIiwidXBsb2FkZXIiXSxbMSwi'@; put 'Y2xyLWNvbC1tZC0zIiwiZWRpdEJ0biJdLFsxLCJidG5WaWV3IiwiYnRuIiwiYnRuLXNtIiwiYnRuLXN1Y2Nlc3MiLCJwcm9maWxlLWJ1dHRvbnMiLCJ3LTEwMCIsMywiY2xpY2siLCJkaXNhYmxlZCJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXByaW1hcnkiLCJtci0wIiwzLCJj'@; put 'bGljayIsImRpc2FibGVkIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tcHJpbWFyeSIsIm1yLTAiLDMsImNsaWNrIl0sWzEsImV4Y2VsLXBhcnNpbmciLCJjbHItY29sLW1kLTEyIl0sWzMsIm9uUmVjb3JkQ2hhbmdlIiwib25SZWNvcmRJbnB1dEZvY3VzZWQiLCJvblJlY29yZEVk'@; put 'aXRDbG9zZSIsIm9uTmV4dFJlY29yZCIsIm9uUHJldmlvdXNSZWNvcmQiLCJjdXJyZW50UmVjb3JkIiwicmVjb3JkQWN0aW9uIiwibGliZHMiLCJxdWVyeUZpbHRlciIsImZpbHRlciIsInN1Ym1pdExvYWRpbmciLCJoZWFkZXJQa3MiLCJjZWxsVmFsaWRhdGlvbiIsImN1cnJlbnRSZWNvcmRJ'@; put 'bmRleCIsImN1cnJlbnRSZWNvcmRMb2FkaW5ncyIsImN1cnJlbnRSZWNvcmRFcnJvcnMiLCJjdXJyZW50UmVjb3JkVmFsaWRhdG9yIl0sWzEsInByb2dyZXNTdGF0aWMiLCJwcm9ncmVzcyIsImxvb3AiXSxbMSwiY2xyLWNvbC0xMiIsImNsci1jb2wtbWQtMyIsImNsci1jb2wtbGctNCIsImJh'@; put 'Y2tCdG4iXSxbMSwiYnRuIiwiaWNvbi1jb2xsYXBzZSIsImJ0bi1zbSIsImJ0bi1pY29uIiwiYnRuLWRpbW1lZCIsMywicm91dGVyTGluayJdLFsic2hhcGUiLCJjYXJldCIsImRpciIsImxlZnQiLCJzaXplIiwiMjAiXSxbMSwidGV4dCJdLFsxLCJidG4iLCJpY29uLWNvbGxhcHNlIiwiYnRu'@; put 'LXNtIiwiYnRuLWljb24iLCJidG4tZGltbWVkIiwidmlld2JveC1vcGVuIiwzLCJjbGljayJdLFsic2hhcGUiLCJ2aWV3LWNhcmRzIiwic2l6ZSIsIjIwIl0sWzEsImVkaXRvci10aXRsZSIsInRleHQtY2VudGVyIiwibXQtMCJdLFsiY2xyVG9vbHRpcFRyaWdnZXIiLCIiLCJzaGFwZSIsImlu'@; put 'Zm8tY2lyY2xlIiwiYXJpYS1sYWJlbCIsIlZpZXcgZGF0YXNldCBtZXRhIGluZm8iLCJzaXplIiwiMjQiLDEsImlzLWhpZ2hsaWdodCIsImN1cnNvci1wb2ludGVyIiwzLCJjbGljayJdLFsic2hhcGUiLCJib2x0IiwiY2xhc3MiLCJjb2xvci15ZWxsb3ciLDQsIm5nSWYiXSxbImNsclRvb2x0'@; put 'aXBUcmlnZ2VyIiwiIl0sWzEsIm1yLTEwIiwidmlldy10YWJsZSIsMywicm91dGVyTGluayJdLFsic2hhcGUiLCJib2x0IiwxLCJjb2xvci15ZWxsb3ciXSxbImNsclBvc2l0aW9uIiwiYm90dG9tLWxlZnQiLCJjbHJTaXplIiwibGciLDQsImNscklmT3BlbiJdLFsiY2xyUG9zaXRpb24iLCJi'@; put 'b3R0b20tbGVmdCIsImNsclNpemUiLCJsZyJdLFsxLCJjbHItY29sLTEyIiwiY2xyLWNvbC1tZC00IiwiY2xyLWNvbC1sZy00IiwiYnRuQ3RybCJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuVmlldyIsImJ0biIsImljb24tY29sbGFwc2UiLCJidG4tc20iLCJidG4taWNvbiIsImJ0bi1ibG9j'@; put 'ayIsImJ0bi1kaW1tZWQiLDMsImNsaWNrIl0sWyJzaGFwZSIsImZpbHRlciJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiaWNvbi1jb2xsYXBzZSIsImJ0bi1zbSIsImJ0bi1wcmltYXJ5IiwiYnRuLWJsb2NrIiwzLCJjbGljayJdLFsic2hhcGUiLCJub3RlIl0sWyJ0eXBlIiwiYnV0dG9u'@; put 'IiwiY2xhc3MiLCJidG4gaWNvbi1jb2xsYXBzZSBidG4tc20gYnRuLXN1Y2Nlc3MgYnRuLWJsb2NrIG1yLTAiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJpY29uLWNvbGxhcHNlIiwiYnRuLXNtIiwiYnRuLXN1Y2Nlc3MiLCJidG4tYmxvY2siLCJtci0w'@; put 'IiwzLCJjbGljayJdLFsic2hhcGUiLCJ1cGxvYWQiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1pY29uIiwiYnRuLW91dGxpbmUtZGFuZ2VyIiwzLCJjbGljayJdLFsic2hhcGUiLCJ0aW1lcyJdLFsiY2xyVG9vbHRpcFRyaWdnZXIiLCIiLCJ0eXBlIiwiYnV0dG9u'@; put 'IiwxLCJidG4iLCJidG4tc20iLCJidG4tc3VjY2VzcyIsMywiY2xpY2siLCJjbHJMb2FkaW5nIl0sWyJzaGFwZSIsInBsdXMiLCJzaXplIiwiMTYiXSxbInNoYXBlIiwiY2hlY2siLCJzaXplIiwiMjAiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1pY29uIiwiYnRu'@; put 'LW91dGxpbmUtZGFuZ2VyIiwiYnRuLXVwbG9hZC1wcmV2aWV3IiwzLCJjbGljayJdLFsidHlwZSIsImJ1dHRvbiIsImNsYXNzIiwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeSBidG4tdXBsb2FkLXByZXZpZXciLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJi'@; put 'dG4tc20iLCJidG4tc3VjY2VzcyIsInByZXZpZXctc3VibWl0IiwzLCJjbGljayIsImNsckxvYWRpbmciXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1wcmltYXJ5IiwiYnRuLXVwbG9hZC1wcmV2aWV3IiwzLCJjbGljayJdLFsxLCJjbHItY29sLW1kLTEyIiwiaW5m'@; put 'b0JhciJdLFsxLCJjYXJkLXRleHQiXSxbMSwiaC03MHZoIiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciIsImZsZXgtY29sdW1uIiwiYWxpZ24taXRlbXMtY2VudGVyIl0sWzEsInNwaW5uZXIiXSxbMSwibXQtMTAiXSxbImNkcy10ZXh0Iiwic2VjdGlvbiJdLFsic2hhcGUiLCJl'@; put 'cnJvci1zdGFuZGFyZCIsMSwiZXJyb3ItaWNvbiJdLFsiY2xyVG9vbHRpcFRyaWdnZXIiLCIiLCJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tc3VjY2VzcyIsIm10LTUtaSIsMywiY2xpY2siXSxbImNsclBvc2l0aW9uIiwidG9wLXJpZ2h0IiwiY2xyU2l6ZSIsImxnIiw0'@; put 'LCJjbHJJZk9wZW4iXSxbImNsclBvc2l0aW9uIiwidG9wLXJpZ2h0IiwiY2xyU2l6ZSIsImxnIl0sWzEsIm10LTItaSIsInctMTAwIiwidGV4dC1jZW50ZXIiXSxbMSwibW9kYWwiXSxbInJvbGUiLCJkaWFsb2ciLCJhcmlhLWhpZGRlbiIsInRydWUiLDEsIm1vZGFsLWRpYWxvZyIsIm1vZGFs'@; put 'LWxnIl0sWzEsIm1vZGFsLWNvbnRlbnQiXSxbMSwibW9kYWwtaGVhZGVyIl0sWyJhcmlhLWxhYmVsIiwiQ2xvc2UiLCJ0eXBlIiwiYnV0dG9uIiwxLCJjbG9zZSJdLFsiYXJpYS1oaWRkZW4iLCJ0cnVlIiwic2hhcGUiLCJjbG9zZSJdLFsiY2xhc3MiLCJkLWJsb2NrIHctMTAwIHRleHQtY2Vu'@; put 'dGVyIGNvbG9yLXJlZCIsNCwibmdJZiJdLFsiY2xhc3MiLCJjbHItb2Zmc2V0LW1kLTIgY2xyLWNvbC1tZC04Iiw0LCJuZ0lmIl0sWzEsIm1vZGFsLWZvb3RlciIsImp1c3RpZnktY29udGVudC1jZW50ZXItaSJdLFsiaWQiLCJzdWJtaXRCdG4iLCJ0eXBlIiwic3VibWl0IiwidGFiaW5kZXgi'@; put 'LCIwIiwxLCJidG4iLCJidG4tc20iLCJidG4tc3VjY2Vzcy1vdXRsaW5lIiwibS0wIiwzLCJjbGljayIsImRpc2FibGVkIl0sWyJpZCIsImNhbmNlbFN1Ym1pdEJ0biIsInR5cGUiLCJidXR0b24iLCJ0YWJpbmRleCIsIjAiLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1vdXRsaW5lIiwzLCJjbGlj'@; put 'ayJdLFsxLCJkLWJsb2NrIiwidy0xMDAiLCJ0ZXh0LWNlbnRlciIsImNvbG9yLXJlZCJdLFsxLCJjbHItb2Zmc2V0LW1kLTIiLCJjbHItY29sLW1kLTgiXSxbMSwidGV4dC1hcmVhLWZ1bGwtd2lkdGgiXSxbImZvciIsImZvcm1GaWVsZHNfOCIsMSwibWItNSIsImQtYmxvY2siXSxbImNsclRl'@; put 'eHRhcmVhIiwiIiwidGFiaW5kZXgiLCIwIiwidHlwZSIsInRleHQiLCJpZCIsImZvcm1GaWVsZHNfOCIsMSwic3VibWl0LXJlYXNvbiIsMywibmdNb2RlbENoYW5nZSIsIm5nTW9kZWwiLCJkaXNhYmxlZCIsInZhbHVlIl0sWzEsImQtYmxvY2siXSxbMSwibW9kYWwiLCJ6LWluZGV4LWhpZ2hl'@; put 'c3QiXSxbInJvbGUiLCJkaWFsb2ciLCJhcmlhLWhpZGRlbiIsInRydWUiLDEsIm1vZGFsLWRpYWxvZyJdLFsxLCJtLTAiLCJjb2xvci1yZWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZCxoKXtpZigxJmQpe2NvbnN0IGY9T24oKTtkZSgwLCJkaXYiLDYpKDEsImNsci1tb2RhbCIsNyksRnQoImZp'@; put 'bGVPdmVyIixmdW5jdGlvbihNKXtyZXR1cm4gd3QoZiksQ3QoaC5maWxlT3ZlckJhc2UoTSkpfSkoImZpbGVEcm9wIixmdW5jdGlvbihNKXtyZXR1cm4gd3QoZiksQ3QoaC5hdHRhY2hGaWxlKE0sITApKX0pLHBpKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKE0pe3JldHVybiB3dChm'@; put 'KSxnaShoLnNob3dVcGxvYWRNb2RhbCxNKXx8KGguc2hvd1VwbG9hZE1vZGFsPU0pLEN0KE0pfSksZGUoMiwiaDMiLDgpLE9lKDMsIlVwbG9hZCBGaWxlIiksaGUoKSxkZSg0LCJkaXYiLDkpKDUsImRpdiIsMTApKDYsInNwYW4iKSxPZSg3LCJEcm9wIGZpbGUgYW55d2hlcmUgdG8gdXBsb2Fk'@; put 'ISIpLGhlKCkoKSxkZSg4LCJkaXYiLDExKSg5LCJkaXYiLDEyKSgxMCwiZGl2IiwxMykoMTEsImRpdiIsMTQpKDEyLCJjbHItcmFkaW8tY29udGFpbmVyIiwxNSkoMTMsImNsci1yYWRpby13cmFwcGVyIikoMTQsImlucHV0IiwxNikscGkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKE0pe3Jl'@; put 'dHVybiB3dChmKSxnaShoLmVuY29kaW5nLE0pfHwoaC5lbmNvZGluZz1NKSxDdChNKX0pLGhlKCksZGUoMTUsImxhYmVsIiksT2UoMTYsIlVURi04IiksaGUoKSgpLGRlKDE3LCJjbHItcmFkaW8td3JhcHBlciIpKDE4LCJpbnB1dCIsMTcpLHBpKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihN'@; put 'KXtyZXR1cm4gd3QoZiksZ2koaC5lbmNvZGluZyxNKXx8KGguZW5jb2Rpbmc9TSksQ3QoTSl9KSxoZSgpLGRlKDE5LCJsYWJlbCIpLE9lKDIwLCJXTEFUSU4xIiksaGUoKSgpKCkoKSgpLGd0KDIxLEo3dCw2LDEsImRpdiIsMTgpKDIyLFE3dCwzLDEsImRpdiIsMTkpLGRlKDIzLCJkaXYiLDEz'@; put 'KSxndCgyNCxlOXQsMiwxLCJidXR0b24iLDIwKSgyNSx0OXQsMiwwLCJidXR0b24iLDIxKSxoZSgpLGd0KDI2LG45dCwzLDAsImRpdiIsMjIpLGhlKCkoKSgpLFd0KDI3LCJkaXYiLDIzKSxoZSgpLGd0KDI4LHI5dCwxLDEyLCJhcHAtZWRpdC1yZWNvcmQiLDI0KSxkZSgyOSwiZGl2IiwyNSww'@; put 'KSxndCgzMSxpOXQsMiwwLCJkaXYiLDI2KSxkZSgzMiwiZGl2IiwyNyksRnQoImZpbGVEcmFnZ2VkT3ZlciIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoZiksQ3QoaC5vblNob3dVcGxvYWRNb2RhbCgpKX0pLGRlKDMzLCJkaXYiLDI4KSxndCgzNCxhOXQsOSwyLCJkaXYiLDI5KSxkZSgzNSwiZGl2'@; put 'IiwzMCksZ3QoMzYsaDl0LDEwLDYsImg0IiwzMSksaGUoKSxndCgzNyxfOXQsNCwzLCJkaXYiLDMyKSgzOCx3OXQsNSwxLCJkaXYiLDMzKSxoZSgpLGRlKDM5LCJkaXYiLDM0KSxndCg0MCxNOXQsNCwyLCJkaXYiLDM1KSxkZSg0MSwiZGl2IiwzNikoNDIsImRpdiIsMzcpLFd0KDQzLCJob3Qt'@; put 'dGFibGUiLDM4LDEpLGhlKCksZGUoNDUsImRpdiIpLGd0KDQ2LFQ5dCw1LDIsImNsci10b29sdGlwIiwzOSkoNDcsQTl0LDMsMSwicCIsNDApLGhlKCksZ3QoNDgsSTl0LDE2LDYsImRpdiIsNDEpLGRlKDQ5LCJjbHItbW9kYWwiLDQyKSxwaSgiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlv'@; put 'bihNKXtyZXR1cm4gd3QoZiksZ2koaC5zdWJtaXRMaW1pdE5vdGljZSxNKXx8KGguc3VibWl0TGltaXROb3RpY2U9TSksQ3QoTSl9KSxkZSg1MCwiaDMiLDgpLE9lKDUxLCJOb3RpY2UiKSxoZSgpLGRlKDUyLCJkaXYiLDkpKDUzLCJwIiw0MyksT2UoNTQpLGhlKCkoKSxkZSg1NSwiZGl2Iiwy'@; put 'MykoNTYsImJ1dHRvbiIsNDQpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoZiksQ3QoaC5zdWJtaXRMaW1pdE5vdGljZT0hMSl9KSxPZSg1NywiIENhbmNlbCAiKSxoZSgpLGRlKDU4LCJidXR0b24iLDQ0KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGYpLGgudXBs'@; put 'b2FkUGFyc2VkRmlsZXMoKSxDdChoLnN1Ym1pdExpbWl0Tm90aWNlPSExKX0pLE9lKDU5LCIgU3VibWl0ICIpLGhlKCkoKSgpLGRlKDYwLCJjbHItbW9kYWwiLDQyKSxwaSgiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihNKXtyZXR1cm4gd3QoZiksZ2koaC5iYWRFZGl0LE0pfHwoaC5i'@; put 'YWRFZGl0PU0pLEN0KE0pfSksZGUoNjEsImgzIiw4KSxPZSg2MiksaGUoKSxkZSg2MywiZGl2Iiw5KSg2NCwicCIpLE9lKDY1KSxoZSgpKCksZGUoNjYsImRpdiIsMjMpKDY3LCJidXR0b24iLDQ0KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGYpLEN0KGguYmFkRWRpdD0hMSl9'@; put 'KSxPZSg2OCwiIE9rICIpLGhlKCkoKSgpLGRlKDY5LCJjbHItbW9kYWwiLDQyKSxwaSgiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihNKXtyZXR1cm4gd3QoZiksZ2koaC5wa051bGwsTSl8fChoLnBrTnVsbD1NKSxDdChNKX0pLGRlKDcwLCJoMyIsOCksT2UoNzEsIkVycm9yIiksaGUo'@; put 'KSxkZSg3MiwiZGl2Iiw5KSg3MywicCIpLE9lKDc0LCIgTnVsbCB2YWx1ZXMgb3IgaW5jb3JyZWN0IGRhdGEgdHlwZXMgY2Fubm90IGJlIHN1Ym1pdHRlZCBmb3IgUHJpbWFyeSBLZXkgY29sdW1ucyAiKSxoZSgpKCksZGUoNzUsImRpdiIsMjMpKDc2LCJidXR0b24iLDQ1KSxGdCgiY2xpY2si'@; put 'LGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGYpLGgucGtOdWxsPSExLEN0KGguYmFkRWRpdD0hMSl9KSxPZSg3NywiIE9rICIpLGhlKCkoKSgpLGRlKDc4LCJjbHItbW9kYWwiLDQyKSxwaSgiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihNKXtyZXR1cm4gd3QoZiksZ2koaC5ub1BrTnVsbCxN'@; put 'KXx8KGgubm9Qa051bGw9TSksQ3QoTSl9KSxkZSg3OSwiaDMiLDgpLE9lKDgwLCJFcnJvciIpLGhlKCksZGUoODEsImRpdiIsOSkoODIsInAiKSxPZSg4MywiSW5jb3JyZWN0IGRhdGEgdHlwZXMgaW4gbm9uLVByaW1hcnkgS2V5IGNvbHVtbnMiKSxoZSgpKCksZGUoODQsImRpdiIsMjMpKDg1'@; put 'LCJidXR0b24iLDQ1KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGYpLGgubm9Qa051bGw9ITEsQ3QoaC5iYWRFZGl0PSExKX0pLE9lKDg2LCIgT2sgIiksaGUoKSgpKCksZGUoODcsImNsci1tb2RhbCIsNDYpLHBpKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKE0pe3Jl'@; put 'dHVybiB3dChmKSxnaShoLnBrRHVwcyxNKXx8KGgucGtEdXBzPU0pLEN0KE0pfSksZGUoODgsImgzIiw4KSxPZSg4OSwiRXJyb3IiKSxoZSgpLGRlKDkwLCJkaXYiLDkpKDkxLCJwIiksT2UoOTIsIiBEdXBsaWNhdGUgdmFsdWVzIGNhbm5vdCBiZSBzdWJtaXR0ZWQgZm9yIFByaW1hcnkgS2V5'@; put 'IGNvbHVtbnMgIiksaGUoKSxkZSg5MywicCIpLE9lKDk0LCJEdXBsaWNhdGVzIGZvdW5kOiIpLGhlKCksZ3QoOTUsUjl0LDMsNCwic3BhbiIsNDcpLGhlKCksZGUoOTYsImRpdiIsMjMpKDk3LCJidXR0b24iLDQ1KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGYpLEN0KGgucGtE'@; put 'dXBzPSExKX0pLE9lKDk4LCIgT2sgIiksaGUoKSgpKCksZGUoOTksImNsci1tb2RhbCIsNDIpLHBpKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKE0pe3JldHVybiB3dChmKSxnaShoLnRvb0xvbmcsTSl8fChoLnRvb0xvbmc9TSksQ3QoTSl9KSxkZSgxMDAsImgzIiw4KSxPZSgxMDEs'@; put 'IkVycm9yIiksaGUoKSxkZSgxMDIsImRpdiIsOSkoMTAzLCJwIiksT2UoMTA0LCIgVGhlIGZvbGxvd2luZyBjb2x1bW5zIGhhdmUgdmFsdWVzIHRoYXQgZXhjZWVkIGxlbmd0aCBsaW1pdHM6ICIpLGhlKCksZ3QoMTA1LEw5dCwyLDMsInAiLDQ4KSxoZSgpLGRlKDEwNiwiZGl2IiwyMykoMTA3'@; put 'LCJidXR0b24iLDQ1KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGYpLGgudG9vTG9uZz0hMSxDdChoLmNsZWFuRXhjZWVkKCkpfSksT2UoMTA4LCIgT2sgIiksaGUoKSgpKCkoKSgpKCkoKSgpLGd0KDEwOSxPOXQsMTQsMCwiZGl2Iiw0OSksZGUoMTEwLCJjbHItbW9kYWwiLDUw'@; put 'KSxwaSgiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihNKXtyZXR1cm4gd3QoZiksZ2koaC5maWx0ZXIsTSl8fChoLmZpbHRlcj1NKSxDdChNKX0pLGRlKDExMSwiaDMiLDUxKSxPZSgxMTIsIiBGaWx0ZXIgZm9yIHRhYmxlOiAiKSxkZSgxMTMsInNwYW4iKSxPZSgxMTQpLGhlKCkoKSxk'@; put 'ZSgxMTUsImRpdiIsOSksZ3QoMTE2LFA5dCwyLDAsImFwcC1xdWVyeSIsMzkpLGhlKCksZGUoMTE3LCJkaXYiLDIzKSgxMTgsImJ1dHRvbiIsNTIpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoZiksQ3QoaC5yZXNldEZpbHRlcigpKX0pLE9lKDExOSwiIHJlc2V0IGZpbHRlciAi'@; put 'KSxoZSgpLGRlKDEyMCwiYnV0dG9uIiw1MyksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChmKSxDdChoLmZpbHRlcj0hMSl9KSxPZSgxMjEsIiBDYW5jZWwgIiksaGUoKSxkZSgxMjIsImJ1dHRvbiIsNTQpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoZiksQ3QoaC5z'@; put 'ZW5kQ2xhdXNlKCkpfSksT2UoMTIzLCIgT2sgIiksaGUoKSgpKCksZGUoMTI0LCJjbHItbW9kYWwiLDQyKSxwaSgiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihNKXtyZXR1cm4gd3QoZiksZ2koaC5xdWVyeUVycixNKXx8KGgucXVlcnlFcnI9TSksQ3QoTSl9KSxkZSgxMjUsImgzIiw4'@; put 'KSxPZSgxMjYsIkVycm9yIiksaGUoKSxkZSgxMjcsImRpdiIsOSkoMTI4LCJwIiksT2UoMTI5KSxoZSgpKCksZGUoMTMwLCJkaXYiLDIzKSgxMzEsImJ1dHRvbiIsNTUpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoZiksQ3QoaC5xdWVyeUVycj0hMSl9KSxPZSgxMzIsIiBDYW5j'@; put 'ZWwgIiksaGUoKSxkZSgxMzMsImJ1dHRvbiIsNDUpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoZiksQ3QoaC5xdWVyeUVycj0hMSl9KSxPZSgxMzQsIiBPayAiKSxoZSgpKCkoKSxkZSgxMzUsImNsci1tb2RhbCIsNTYpLHBpKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9u'@; put 'KE0pe3JldHVybiB3dChmKSxnaShoLmRpc2NhcmRTb3VyY2VGaWxlLE0pfHwoaC5kaXNjYXJkU291cmNlRmlsZT1NKSxDdChNKX0pLGRlKDEzNiwiaDMiLDUxKSxPZSgxMzcsIldhcm5pbmciKSxoZSgpLGRlKDEzOCwiZGl2Iiw5KSxPZSgxMzksIiBUaGlzIGFjdGlvbiB3aWxsIGRpc2NhcmQg'@; put 'dGhlIHNvdXJjZSBmaWxlIGFuZCBpdCdzIGxvYWRlZCBkYXRhICIpLGRlKDE0MCwiYiIpLE9lKDE0MSksaGUoKSxPZSgxNDIsIiBEbyB5b3Ugd2lzaCB0byBwcm9jZWVkPyAiKSxoZSgpLGRlKDE0MywiZGl2IiwyMykoMTQ0LCJidXR0b24iLDUzKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0'@; put 'dXJuIHd0KGYpLEN0KGguZGlzY2FyZFNvdXJjZUZpbGU9ITEpfSksT2UoMTQ1LCIgQ2FuY2VsICIpLGhlKCksZGUoMTQ2LCJidXR0b24iLDU3KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGYpLGguZGlzY2FyZFNvdXJjZUZpbGU9ITEsQ3QoaC5kaXNjYXJkUGVuZGluZ0V4Y2Vs'@; put 'KCEwKSl9KSxPZSgxNDcsIiBPayAiKSxoZSgpKCkoKSxkZSgxNDgsImNsci1tb2RhbCIsNTYpLHBpKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKE0pe3JldHVybiB3dChmKSxnaShoLmZpbGVQYXNzd29yZE1vZGFsLE0pfHwoaC5maWxlUGFzc3dvcmRNb2RhbD1NKSxDdChNKX0pLGRl'@; put 'KDE0OSwiaDMiLDUxKSxPZSgxNTAsIiBQYXNzd29yZCBQcm90ZWN0ZWQgRmlsZSAiKSxoZSgpLGRlKDE1MSwiZGl2Iiw1OCkoMTUyLCJwIiw0MyksT2UoMTUzLCJQbGVhc2UgZW50ZXIgcGFzc3dvcmQ6IiksaGUoKSxXdCgxNTQsImlucHV0Iiw1OSwyKSxoZSgpLGRlKDE1NiwiZGl2IiwyMyks'@; put 'Z3QoMTU3LEY5dCwyLDAsInAiLDYwKSxkZSgxNTgsImJ1dHRvbiIsNTMpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoZiksaC5maWxlUGFzc3dvcmRNb2RhbD0hMSxDdChoLmZpbGVQYXNzd29yZFN1YmplY3QubmV4dCh2b2lkIDApKX0pLE9lKDE1OSwiIENhbmNlbCB1cGxvYWQg'@; put 'IiksaGUoKSxkZSgxNjAsImJ1dHRvbiIsNjEpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChmKTtjb25zdCBNPWRhKDE1NSk7cmV0dXJuIGguZmlsZVBhc3N3b3JkTW9kYWw9ITEsQ3QoaC5maWxlUGFzc3dvcmRTdWJqZWN0Lm5leHQoTS52YWx1ZSkpfSksT2UoMTYxLCIgVW5sb2NrICIpLGhl'@; put 'KCkoKSgpLGRlKDE2MiwiY2xyLW1vZGFsIiw1NikscGkoImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oTSl7cmV0dXJuIHd0KGYpLGdpKGgubWFudWFsRmlsZUVkaXRNb2RhbCxNKXx8KGgubWFudWFsRmlsZUVkaXRNb2RhbD1NKSxDdChNKX0pLGRlKDE2MywiaDMiLDUxKSxPZSgxNjQs'@; put 'Ildhcm5pbmciKSxoZSgpLGRlKDE2NSwiZGl2Iiw5KSxPZSgxNjYsIiBNYW51YWxseSBlZGl0aW5nIHRoaXMgZGF0YSB3aWxsIG1lYW4gdGhlIHNvdXJjZSBmaWxlICIpLGRlKDE2NywiYiIpLE9lKDE2OCksaGUoKSxPZSgxNjksIiB3aWxsIGJlIGRpc2NhcmRlZC4gRG8geW91IHdpc2ggdG8g'@; put 'cHJvY2VlZD8gIiksaGUoKSxkZSgxNzAsImRpdiIsMjMpKDE3MSwiYnV0dG9uIiw1MyksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChmKSxDdChoLm1hbnVhbEZpbGVFZGl0TW9kYWw9ITEpfSksT2UoMTcyLCIgQ2FuY2VsICIpLGhlKCksZGUoMTczLCJidXR0b24iLDU3KSxGdCgi'@; put 'Y2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGYpLGgubWFudWFsRmlsZUVkaXRNb2RhbD0hMSxDdChoLnByZXZpZXdUYWJsZUVkaXRDb25maXJtKCkpfSksT2UoMTc0LCIgT2sgIiksaGUoKSgpKCksZGUoMTc1LCJhcHAtZGF0YXNldC1pbmZvIiw2MikscGkoIm9wZW5DaGFuZ2UiLGZ1bmN0'@; put 'aW9uKE0pe3JldHVybiB3dChmKSxnaShoLmRhdGFzZXRJbmZvLE0pfHwoaC5kYXRhc2V0SW5mbz1NKSxDdChNKX0pLEZ0KCJyb3dDbGlja2VkIixmdW5jdGlvbihNKXtyZXR1cm4gd3QoZiksQ3QoaC5kYXRhc2V0SW5mb01vZGFsUm93Q2xpY2tlZChNKSl9KSxoZSgpLGRlKDE3NiwiYXBwLXZp'@; put 'ZXdib3hlcyIsNjMpLHBpKCJ2aWV3Ym94TW9kYWxDaGFuZ2UiLGZ1bmN0aW9uKE0pe3JldHVybiB3dChmKSxnaShoLnZpZXdib3hlcyxNKXx8KGgudmlld2JveGVzPU0pLEN0KE0pfSksaGUoKX1pZigyJmQpe2NvbnN0IGY9ZGEoMTU1KTtmZSgpLE1lKCJ1cGxvYWRlciIsaC51cGxvYWRlciko'@; put 'ImNsck1vZGFsU2l6ZSIsInhsIikoImNsck1vZGFsU3RhdGljQmFja2Ryb3AiLCExKSgiY2xyTW9kYWxDbG9zYWJsZSIsIlZhbGlkYXRpbmctRFEiPT09aC5leGNlbFVwbG9hZFN0YXRlKSxmaSgiY2xyTW9kYWxPcGVuIixoLnNob3dVcGxvYWRNb2RhbCksZmUoMTMpLGZpKCJuZ01vZGVsIixo'@; put 'LmVuY29kaW5nKSxNZSgiZGlzYWJsZWQiLCIiIT1oLmZpbGVuYW1lKSxmZSg0KSxmaSgibmdNb2RlbCIsaC5lbmNvZGluZyksTWUoImRpc2FibGVkIiwiIiE9aC5maWxlbmFtZSksZmUoMyksTWUoIm5nSWYiLCFoLmV4Y2VsRmlsZVBhcnNpbmcmJiFoLnVwbG9hZExvYWRpbmcpLGZlKCksTWUo'@; put 'Im5nSWYiLCFoLmV4Y2VsRmlsZVBhcnNpbmcmJiFoLnVwbG9hZExvYWRpbmcpLGZlKDIpLE1lKCJuZ0lmIiwiVmFsaWRhdGluZyIhPT1oLmV4Y2VsVXBsb2FkU3RhdGUpLGZlKCksTWUoIm5nSWYiLCJWYWxpZGF0aW5nLURRIj09PWguZXhjZWxVcGxvYWRTdGF0ZSksZmUoKSxNZSgibmdJZiIs'@; put 'aC5leGNlbEZpbGVQYXJzaW5nKSxmZSgyKSxNZSgibmdJZiIsaC5jdXJyZW50RWRpdFJlY29yZEluZGV4Pi0xKSxmZSgzKSxNZSgibmdJZiIsIWgudmFsaWRhdGlvbkRvbmUmJmguc3VibWl0KSxmZSgzKSxNZSgibmdJZiIsaC50YWJsZVRydWUpLGZlKCksVHIoImNsci1jb2wtbGctMTIiLCFo'@; put 'LnRhYmxlVHJ1ZSksZmUoKSxNZSgibmdWYXIiLGNwKDY4LEs3dCxudWxsPT1oLmxpYmRzP251bGw6aC5saWJkcy5zcGxpdCgiLiIpWzBdLG51bGw9PWgubGliZHM/bnVsbDpoLmxpYmRzLnNwbGl0KCIuIilbMV0pKSxmZSgpLE1lKCJuZ0lmIixoLnRhYmxlVHJ1ZSksZmUoKSxNZSgibmdJZiIs'@; put 'IVpvKDcxLGU4ZSkuaW5jbHVkZXMoaC5xdWVyeVRleHQpKSxmZSgpLE1lKCJuZ0NsYXNzIixscCg3MyxYN3QsIVpvKDcyLGU4ZSkuaW5jbHVkZXMoaC5xdWVyeVRleHQpKSksZmUoKSxNZSgibmdJZiIsIWgudGFibGVUcnVlKSxmZSgzKSxUcigiaGlkZGVuIixoLmhvdFRhYmxlLmhpZGRlbiks'@; put 'TWUoImRhdGEiLGguaG90VGFibGUuZGF0YSkoInNldHRpbmdzIixoLmhvdFRhYmxlU2V0dGluZ3MpLGZlKDMpLE1lKCJuZ0lmIixoLnRhYmxlVHJ1ZSYmIWgucmVzdHJpY3Rpb25zLnJlbW92ZUFkZFJlY29yZEJ1dHRvbiksZmUoKSxNZSgibmdJZiIsaC5saWNlbmNlU3RhdGUudmFsdWUuZWRp'@; put 'dG9yX3Jvd3NfYWxsb3dlZCE9PWguSW5maW5pdHkmJmguZGF0YVNvdXJjZSYmaC5kYXRhU291cmNlLmxlbmd0aD5oLmxpY2VuY2VTdGF0ZS52YWx1ZS5lZGl0b3Jfcm93c19hbGxvd2VkKSxmZSgpLE1lKCJuZ0lmIixoLnN1Ym1pdCksZmUoKSxmaSgiY2xyTW9kYWxPcGVuIixoLnN1Ym1pdExp'@; put 'bWl0Tm90aWNlKSxmZSg1KSxMcigiIER1ZSB0byBjdXJyZW50IGxpY2VuY2UsIG9ubHkgIixoLmxpY2VuY2VTdGF0ZS52YWx1ZS5zdWJtaXRfcm93c19saW1pdCwiIHJvd3MgaW4gYSBmaWxlIHdpbGwgYmUgc3VibWl0dGVkLiBUbyByZW1vdmUgdGhlIHJlc3RyaWN0aW9uLCBjb250YWN0IHN1'@; put 'cHBvcnRAZGF0YWNvbnRyb2xsZXIuaW8gIiksZmUoNiksZmkoImNsck1vZGFsT3BlbiIsaC5iYWRFZGl0KSxmZSgyKSxTcihoLmJhZEVkaXRUaXRsZXx8IkVycm9yIiksZmUoMyksU3IoaC5iYWRFZGl0Q2F1c2UpLGZlKDQpLGZpKCJjbHJNb2RhbE9wZW4iLGgucGtOdWxsKSxmZSg5KSxmaSgi'@; put 'Y2xyTW9kYWxPcGVuIixoLm5vUGtOdWxsKSxmZSg5KSxmaSgiY2xyTW9kYWxPcGVuIixoLnBrRHVwcyksZmUoOCksTWUoIm5nRm9yT2YiLGguZHVwbGljYXRlUGtJbmRleGVzKSxmZSg0KSxmaSgiY2xyTW9kYWxPcGVuIixoLnRvb0xvbmcpLGZlKDYpLE1lKCJuZ0Zvck9mIixoLmV4Y2VlZENl'@; put 'bGxzKSxmZSg0KSxNZSgibmdJZiIsaC5udWxsVmFyaWFibGVzKSxmZSgpLGZpKCJjbHJNb2RhbE9wZW4iLGguZmlsdGVyKSxNZSgiY2xyTW9kYWxTaXplIiwieGwiKSgiY2xyTW9kYWxDbG9zYWJsZSIsITEpLGZlKDQpLExyKCIgIixoLmxpYmRzLCIgIiksZmUoMiksTWUoIm5nSWYiLGguZmls'@; put 'dGVyKSxmZSg2KSxNZSgiY2xyTG9hZGluZyIsaC5zdWJtaXRMb2FkaW5nKSxmZSgyKSxmaSgiY2xyTW9kYWxPcGVuIixoLnF1ZXJ5RXJyKSxmZSg1KSxTcihoLnF1ZXJ5RXJyTWVzc2FnZSksZmUoNiksZmkoImNsck1vZGFsT3BlbiIsaC5kaXNjYXJkU291cmNlRmlsZSksTWUoImNsck1vZGFs'@; put 'U2l6ZSIsInhsIikoImNsck1vZGFsQ2xvc2FibGUiLCExKSxmZSg2KSxTcihoLmZpbGVuYW1lKSxmZSg3KSxmaSgiY2xyTW9kYWxPcGVuIixoLmZpbGVQYXNzd29yZE1vZGFsKSxNZSgiY2xyTW9kYWxTaXplIiwibWQiKSgiY2xyTW9kYWxDbG9zYWJsZSIsITEpLGZlKDkpLE1lKCJuZ0lmIixo'@; put 'LmZpbGVVbmxvY2tFcnJvciksZmUoMyksTWUoImRpc2FibGVkIixmLnZhbHVlLmxlbmd0aDwxKSxmZSgyKSxmaSgiY2xyTW9kYWxPcGVuIixoLm1hbnVhbEZpbGVFZGl0TW9kYWwpLE1lKCJjbHJNb2RhbFNpemUiLCJ4bCIpKCJjbHJNb2RhbENsb3NhYmxlIiwhMSksZmUoNiksU3IoaC5maWxl'@; put 'bmFtZSksZmUoNyksZmkoIm9wZW4iLGguZGF0YXNldEluZm8pLE1lKCJkc21ldGEiLGguZHNtZXRhKSgidmVyc2lvbnMiLGgudmVyc2lvbnMpLGZlKCksZmkoInZpZXdib3hNb2RhbCIsaC52aWV3Ym94ZXMpfX0sZGVwZW5kZW5jaWVzOlskNmUsdnUsUXMsYmEsR2wsQ0wsdGwsV28sbDEsT2ws'@; put 'cnUsWXUsVjAsUDIsSDIsY28sZkcsalplLGhHLHJPLHY3LGI3LHk3LCRnLEV3LHNFLEs2ZSxYNmUscTZlLHlPLG50ZSxqN3QsVTd0LFo3dCxRNmVdLGVuY2Fwc3VsYXRpb246Mn0pfX1yZXR1cm4gY30pKCk7Y29uc3QgSDl0PVt7cGF0aDoiOmxpYk1lbSIsY29tcG9uZW50OnVOfSx7cGF0aDoi'@; put 'OmxpYk1lbS86ZmlsdGVySWQiLGNvbXBvbmVudDp1Tn0se3BhdGg6ImVkaXQtcmVjb3JkLzpsaWJNZW0iLGNvbXBvbmVudDp1Tn0se3BhdGg6ImVkaXQtcmVjb3JkLzpsaWJNZW0vOmZpbHRlcklkIixjb21wb25lbnQ6dU59XTtsZXQgTjl0PSgoKT0+e2NsYXNzIGN7c3RhdGlje3RoaXMuXHUw'@; put 'Mjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSl9c3RhdGlje3RoaXMuXHUwMjc1aW5qPUFyKHtpbXBvcnRzOltMYSxCYy5mb3JDaGlsZChIOXQpLEJjXX0pfX1yZXR1cm4gY30pKCksQUE9KCgpPT57Y2xhc3MgY3tz'@; put 'dGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKX19c3RhdGlje3RoaXMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9KX1zdGF0aWN7dGhpcy5cdTAyNzVpbmo9QXIoe2ltcG9ydHM6W0xhLEIwLExhLGtjLGNmXX0pfX1yZXR1cm4gY30pKCksaXRlPSgoKT0+e2Ns'@; put 'YXNzIGN7c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSl9c3RhdGlje3RoaXMuXHUwMjc1aW5qPUFyKHtpbXBvcnRzOltMYSxCMCxMYSxrYyxXOSxUQSxjZl19KX19cmV0dXJuIGN9KSgp'@; put 'O0VBKCk7bGV0IHQ4ZT0oKCk9PntjbGFzcyBje3N0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpfX1zdGF0aWN7dGhpcy5cdTAyNzVtb2Q9QWkoe3R5cGU6Y30pfXN0YXRpY3t0aGlzLlx1MDI3NWluaj1Bcih7aW1wb3J0czpbTGEsQjAsTGEsa2MsaXRl'@; put 'LFo5LEQxZSxINmUsQUEsY2ZdfSl9fXJldHVybiBjfSkoKTtFQSgpO2xldCBWOXQ9KCgpPT57Y2xhc3MgY3tzdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKX19c3RhdGlje3RoaXMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9KX1zdGF0aWN7dGhpcy5cdTAy'@; put 'NzVpbmo9QXIoe2ltcG9ydHM6W3Q4ZSxMYSxrYyxOOXQsQjAsWjksVzksY2YseHcsVEEsQUEsRDFlLGl0ZV19KX19cmV0dXJuIGN9KSgpLEI5dD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7fW5nT25Jbml0KCl7fW5nT25EZXN0cm95KCl7fXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5j'@; put 'dGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpfX1zdGF0aWN7dGhpcy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1siYXBwLWhvbWUtcm91dGUiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGQsaCl7MSZk'@; put 'JiZXdCgwLCJyb3V0ZXItb3V0bGV0Iil9LGRlcGVuZGVuY2llczpbbmddLGVuY2Fwc3VsYXRpb246Mn0pfX1yZXR1cm4gY30pKCk7Y29uc3Qgajl0PVsic2lkZWJhck5hdiJdLHo5dD1bIioiXSxVOXQ9KCk9PlsiL3ZpZXcvdXNlcm5hdi91c2VycyJdLFo5dD0oKT0+WyIvdmlldy91c2VybmF2'@; put 'L2dyb3VwcyJdLFc5dD0oKT0+WyIvdmlldy91c2VybmF2L3JvbGVzIl07ZnVuY3Rpb24gWTl0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiYSIsMTgpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoMykubmF2aWdhdGVUb1ZpZXdlcigpKX0pLE9lKDEs'@; put 'IkRhdGEiKSxoZSgpfX1mdW5jdGlvbiBHOXQoYyxsKXsxJmMmJihkZSgwLCJhIiwxOSksT2UoMSwiQVBJIEV4cGxvcmVyIiksaGUoKSl9ZnVuY3Rpb24gJDl0KGMsbCl7MSZjJiYoZGUoMCwiYSIsMjApLE9lKDEsIkxpbmVhZ2UiKSxoZSgpKX1mdW5jdGlvbiBLOXQoYyxsKXsxJmMmJihkZSgw'@; put 'LCJhIiwyMSksT2UoMSwiTWV0YWRhdGEiKSxoZSgpKX1mdW5jdGlvbiBYOXQoYyxsKXsxJmMmJihkZSgwLCJhIiwyMiksT2UoMSwiIFVzZXJzIiksaGUoKSl9ZnVuY3Rpb24gcTl0KGMsbCl7MSZjJiYoZGUoMCwiYSIsMjMpLE9lKDEsIlN1Ym1pdHRlZCIpLGhlKCkpfWZ1bmN0aW9uIEo5dChj'@; put 'LGwpezEmYyYmKGRlKDAsImEiLDI0KSxPZSgxLCJUbyBBcHByb3ZlIiksaGUoKSl9ZnVuY3Rpb24gUTl0KGMsbCl7aWYoMSZjJiYoZGUoMCwiY2xyLWRyb3Bkb3duLW1lbnUiKSxndCgxLFk5dCwyLDAsImEiLDExKSgyLEc5dCwyLDAsImEiLDEyKSgzLCQ5dCwyLDAsImEiLDEzKSg0LEs5dCwy'@; put 'LDAsImEiLDE0KSg1LFg5dCwyLDAsImEiLDE1KSg2LHE5dCwyLDAsImEiLDE2KSg3LEo5dCwyLDAsImEiLDE3KSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoMik7ZmUoKSxNZSgibmdJZiIsYS5pc01haW5Sb3V0ZSgidmlldyIpKSxmZSgpLE1lKCJuZ0lmIixhLmlzTWFpblJvdXRlKCJ2aWV3Iikm'@; put 'JiJTQVNWSVlBIj09PWEuc2VydmVyVHlwZSksZmUoKSxNZSgibmdJZiIsYS5pc01haW5Sb3V0ZSgidmlldyIpJiYiU0FTOSI9PT1hLnNlcnZlclR5cGUpLGZlKCksTWUoIm5nSWYiLGEuaXNNYWluUm91dGUoInZpZXciKSYmIlNBUzkiPT09YS5zZXJ2ZXJUeXBlKSxmZSgpLE1lKCJuZ0lmIixh'@; put 'LmlzTWFpblJvdXRlKCJ2aWV3IikpLGZlKCksTWUoIm5nSWYiLGEuaXNNYWluUm91dGUoImFwcHJvdmUiKSksZmUoKSxNZSgibmdJZiIsYS5pc01haW5Sb3V0ZSgiYXBwcm92ZSIpKX19ZnVuY3Rpb24gZXZ0KGMsbCl7aWYoMSZjJiYoZGUoMCwiZGl2Iiw3KSgxLCJjbHItZHJvcGRvd24iKSgy'@; put 'LCJidXR0b24iLDgpLE9lKDMpLFd0KDQsImNsci1pY29uIiw5KSxoZSgpLGd0KDUsUTl0LDgsNywiY2xyLWRyb3Bkb3duLW1lbnUiLDEwKSxoZSgpKCkpLDImYyl7Y29uc3QgYT1MZSgpO2ZlKDMpLExyKCIgIixhLmdldFN1YlBhZ2UoKSwiICIpfX1mdW5jdGlvbiB0dnQoYyxsKXsxJmMmJld0'@; put 'KDAsImNsci10YWItY29udGVudCIpfWZ1bmN0aW9uIG52dChjLGwpezEmYyYmV3QoMCwiY2xyLXRhYi1jb250ZW50Iil9ZnVuY3Rpb24gcnZ0KGMsbCl7aWYoMSZjJiYoZGUoMCwiY2xyLXRhYiIpKDEsImJ1dHRvbiIsMjYpKDIsInAiLDI3KSxXdCgzLCJjbHItaWNvbiIsMzIpLE9lKDQsIiBS'@; put 'b2xlcyAiKSxoZSgpKCksZ3QoNSxudnQsMSwwLCJjbHItdGFiLWNvbnRlbnQiLDMwKSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoMik7ZmUoKSxNZSgicm91dGVyTGluayIsWm8oMixXOXQpKSxmZSg0KSxNZSgiY2xySWZBY3RpdmUiLGEuaXNNYWluUm91dGUoIi92aWV3L3VzZXJuYXYvcm9sZXMi'@; put 'KSl9fWZ1bmN0aW9uIGl2dChjLGwpe2lmKDEmYyYmKGRlKDAsImNsci10YWJzIiwyNSkoMSwiY2xyLXRhYiIpKDIsImJ1dHRvbiIsMjYpKDMsInAiLDI3KSxXdCg0LCJjbHItaWNvbiIsMjgpLE9lKDUsIiBVc2VycyIpLGhlKCkoKSxXdCg2LCJjbHItdGFiLWNvbnRlbnQiKSxoZSgpLGRlKDcs'@; put 'ImNsci10YWIiKSg4LCJidXR0b24iLDI2KSg5LCJwIiwyNyksV3QoMTAsImNsci1pY29uIiwyOSksT2UoMTEsIiBHcm91cHMiKSxoZSgpKCksZ3QoMTIsdHZ0LDEsMCwiY2xyLXRhYi1jb250ZW50IiwzMCksaGUoKSxndCgxMyxydnQsNiwzLCJjbHItdGFiIiwzMSksaGUoKSksMiZjKXtjb25z'@; put 'dCBhPUxlKCk7ZmUoMiksTWUoInJvdXRlckxpbmsiLFpvKDQsVTl0KSksZmUoNiksTWUoInJvdXRlckxpbmsiLFpvKDUsWjl0KSksZmUoNCksTWUoImNscklmQWN0aXZlIixhLmlzTWFpblJvdXRlKCIvdmlldy91c2VybmF2L2dyb3VwcyIpKSxmZSgpLE1lKCJuZ0lmIiwiU0FTOSI9PT1hLnNl'@; put 'cnZlclR5cGUpfX1mdW5jdGlvbiBhdnQoYyxsKXsxJmMmJihkZSgwLCJjbHItZHJvcGRvd24tbWVudSIpKDEsImEiLDMzKSxPZSgyLCJUYWJsZXMiKSxoZSgpLGRlKDMsImEiLDM0KSxPZSg0LCJFeGNlbCBNYXBzIiksaGUoKSxkZSg1LCJhIiwzNSksT2UoNiwiTXVsdGkgTG9hZCIpLGhlKCko'@; put 'KSl9ZnVuY3Rpb24gc3Z0KGMsbCl7aWYoMSZjJiYoZGUoMCwiZGl2Iiw3KSgxLCJjbHItZHJvcGRvd24iKSgyLCJidXR0b24iLDgpLE9lKDMpLFd0KDQsImNsci1pY29uIiw5KSxoZSgpLGd0KDUsYXZ0LDcsMCwiY2xyLWRyb3Bkb3duLW1lbnUiLDEwKSxoZSgpKCkpLDImYyl7Y29uc3QgYT1M'@; put 'ZSgpO2ZlKDMpLExyKCIgIixhLmdldFN1YlBhZ2UoKSwiICIpfX1sZXQgYTQ9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCl7dGhpcy5fcm91dGVyPWEsdGhpcy5ldmVudFNlcnZpY2U9ZCx0aGlzLl9zYXNTZXJ2aWNlPWgsdGhpcy5zY3JvbGxlZFRvQm90dG9tPW5ldyBLcix0aGlz'@; put 'LnNpZGViYXJPcGVuPSEwLHRoaXMuc2lkZWJhcldpZHRoPW51bGwsdGhpcy5zaWRlYmFyTWF4V2lkdGg9bnVsbCx0aGlzLnJlc2l6aW5nPSExLHRoaXMuc2FzanNDb25maWc9bmV3IHloLlNBU2pzQ29uZmlnLHRoaXMuc2FzanNDb25maWc9dGhpcy5fc2FzU2VydmljZS5nZXRTYXNqc0NvbmZp'@; put 'ZygpLHRoaXMuc2VydmVyVHlwZT10aGlzLl9zYXNTZXJ2aWNlLmdldFNlcnZlclR5cGUoKX1uZ09uSW5pdCgpe3RoaXMuZXZlbnRTZXJ2aWNlLm9uU2lkZWJhclRvZ2dsZS5zdWJzY3JpYmUoYT0+e3RoaXMuc2lkZWJhck9wZW49YT9hLm9wZW46IXRoaXMuc2lkZWJhck9wZW4sdGhpcy5ldmVu'@; put 'dFNlcnZpY2UuZGlzcGF0Y2hFdmVudCgicmVzaXplIil9KX1vblRyZWVTY3JvbGwoYSl7bGV0IGQ9YS50YXJnZXQ7ZC5zY3JvbGxUb3A+PWQuc2Nyb2xsSGVpZ2h0LWQub2Zmc2V0SGVpZ2h0LTEwJiZ0aGlzLnNjcm9sbGVkVG9Cb3R0b20uZW1pdCgpfWlzTWFpblJvdXRlKGEpe3JldHVybiB0'@; put 'aGlzLl9yb3V0ZXIudXJsLmluY2x1ZGVzKGEpfWdldFN1YlBhZ2UoKXtyZXR1cm4gdGhpcy5fcm91dGVyLnVybC5zcGxpdCgiLyIpWzJdfW5hdmlnYXRlVG9WaWV3ZXIoKXtKbi52aWV3ZXIuY3VycmVudFNlbGVjdGlvbj0iIix0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCgiL3ZpZXcvZGF0'@; put 'YSIpfXJlc2l6ZVN0YXJ0KCl7dGhpcy5yZXNpemluZz0hMCxkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdLnN0eWxlLmNzc1RleHQ9InVzZXItc2VsZWN0OiBub25lIn1yZXNpemVFbmQoKXt0aGlzLnJlc2l6aW5nPSExLGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdO'@; put 'YW1lKCJib2R5IilbMF0uc3R5bGUuY3NzVGV4dD0iIn1vbk1vdXNlTW92ZShhKXtpZih0aGlzLnJlc2l6aW5nKXt0aGlzLnNpZGViYXJXaWR0aD1hLmNsaWVudFg7bGV0IGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgibmF2LXRyZWUiKVswXTt0aGlzLnNpZGViYXJXaWR0aCYm'@; put 'dGhpcy5pc092ZXJmbG93bihkKSYmKHRoaXMuc2lkZWJhck1heFdpZHRoPXRoaXMuc2lkZWJhcldpZHRoPj0zNzU/dGhpcy5zaWRlYmFyV2lkdGgrMTA6dGhpcy5zaWRlYmFyTWF4V2lkdGgpfX1vbk1vdXNlVXAoYSl7dGhpcy5yZXNpemluZyYmdGhpcy5yZXNpemVFbmQoKX1pc092ZXJmbG93'@; put 'bihhKXtyZXR1cm4gYS5zY3JvbGxXaWR0aD5hLmNsaWVudFdpZHRofXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpKCRlKExvKSwkZShtYyksJGUoVm8pKX19c3RhdGlje3RoaXMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImFwcC1z'@; put 'aWRlYmFyIl1dLHZpZXdRdWVyeTpmdW5jdGlvbihkLGgpe2lmKDEmZCYmRmEoajl0LDUpLDImZCl7bGV0IGY7eWkoZj1iaSgpKSYmKGguc2lkZWJhck5hdj1mLmZpcnN0KX19LGhvc3RCaW5kaW5nczpmdW5jdGlvbihkLGgpezEmZCYmRnQoIm1vdXNlbW92ZSIsZnVuY3Rpb24odil7cmV0dXJu'@; put 'IGgub25Nb3VzZU1vdmUodil9LDAsSzMpKCJtb3VzZXVwIixmdW5jdGlvbih2KXtyZXR1cm4gaC5vbk1vdXNlVXAodil9LCExLEszKX0sb3V0cHV0czp7c2Nyb2xsZWRUb0JvdHRvbToic2Nyb2xsZWRUb0JvdHRvbSJ9LG5nQ29udGVudFNlbGVjdG9yczp6OXQsZGVjbHM6OSx2YXJzOjEzLGNv'@; put 'bnN0czpbWyJzaWRlYmFyTmF2IiwiIl0sWyJpZCIsInNpZGViYXJOYXYiXSxbImNsYXNzIiwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgc3ViLWRyb3Bkb3duIiw0LCJuZ0lmIl0sWyJjbGFzcyIsInAtMTAiLDQsIm5nSWYiXSxbMSwibmF2LWRpdmlkZXIiXSxbMSwibmF2LXRyZWUi'@; put 'LDMsInNjcm9sbCJdLFsxLCJyZXNpemUtaGFuZGxlIiwzLCJtb3VzZWRvd24iXSxbMSwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciIsInN1Yi1kcm9wZG93biJdLFsiY2xyRHJvcGRvd25UcmlnZ2VyIiwiIiwxLCJkcm9wZG93bi10b2dnbGUiLCJidG4iLCJidG4tcHJpbWFyeSJd'@; put 'LFsic2hhcGUiLCJjYXJldCBkb3duIl0sWzQsImNscklmT3BlbiJdLFsiY2xyVmVydGljYWxOYXZMaW5rIiwiIiwicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSIsMywiY2xpY2siLDQsIm5nSWYiXSxbImNsclZlcnRpY2FsTmF2TGluayIsIiIsInJvdXRlckxpbmsiLCIvdmlldy92aXlhLWFw'@; put 'aS1leHBsb3JlciIsInJvdXRlckxpbmtBY3RpdmUiLCJhY3RpdmUiLDQsIm5nSWYiXSxbImNsclZlcnRpY2FsTmF2TGluayIsIiIsInJvdXRlckxpbmsiLCIvdmlldy9saW5lYWdlIiwicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSIsNCwibmdJZiJdLFsiY2xyVmVydGljYWxOYXZMaW5rIiwi'@; put 'Iiwicm91dGVyTGluayIsIi92aWV3L21ldGFkYXRhIiwicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSIsNCwibmdJZiJdLFsiY2xyVmVydGljYWxOYXZMaW5rIiwiIiwicm91dGVyTGluayIsIi92aWV3L3VzZXJuYXYiLCJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0aXZlIiw0LCJuZ0lmIl0sWyJj'@; put 'bHJWZXJ0aWNhbE5hdkxpbmsiLCIiLCJyb3V0ZXJMaW5rIiwiL3Jldmlldy9hcHByb3ZlL3N1Ym1pdHRlZCIsInJvdXRlckxpbmtBY3RpdmUiLCJhY3RpdmUiLDQsIm5nSWYiXSxbImNsclZlcnRpY2FsTmF2TGluayIsIiIsInJvdXRlckxpbmsiLCIvcmV2aWV3L2FwcHJvdmUvdG9hcHByb3Zl'@; put 'Iiwicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSIsNCwibmdJZiJdLFsiY2xyVmVydGljYWxOYXZMaW5rIiwiIiwicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSIsMywiY2xpY2siXSxbImNsclZlcnRpY2FsTmF2TGluayIsIiIsInJvdXRlckxpbmsiLCIvdmlldy92aXlhLWFwaS1leHBsb3Jl'@; put 'ciIsInJvdXRlckxpbmtBY3RpdmUiLCJhY3RpdmUiXSxbImNsclZlcnRpY2FsTmF2TGluayIsIiIsInJvdXRlckxpbmsiLCIvdmlldy9saW5lYWdlIiwicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSJdLFsiY2xyVmVydGljYWxOYXZMaW5rIiwiIiwicm91dGVyTGluayIsIi92aWV3L21ldGFk'@; put 'YXRhIiwicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSJdLFsiY2xyVmVydGljYWxOYXZMaW5rIiwiIiwicm91dGVyTGluayIsIi92aWV3L3VzZXJuYXYiLCJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0aXZlIl0sWyJjbHJWZXJ0aWNhbE5hdkxpbmsiLCIiLCJyb3V0ZXJMaW5rIiwiL3Jldmlldy9h'@; put 'cHByb3ZlL3N1Ym1pdHRlZCIsInJvdXRlckxpbmtBY3RpdmUiLCJhY3RpdmUiXSxbImNsclZlcnRpY2FsTmF2TGluayIsIiIsInJvdXRlckxpbmsiLCIvcmV2aWV3L2FwcHJvdmUvdG9hcHByb3ZlIiwicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSJdLFsxLCJwLTEwIl0sWyJjbHJUYWJMaW5r'@; put 'IiwiIiwxLCJ1c2VyLW5hdi1idG4iLDMsInJvdXRlckxpbmsiXSxbMSwiemVyby1tYXJnaW4iXSxbInNoYXBlIiwidXNlciJdLFsic2hhcGUiLCJ1c2VycyJdLFs0LCJjbHJJZkFjdGl2ZSJdLFs0LCJuZ0lmIl0sWyJzaGFwZSIsImJsb2Nrcy1ncm91cCJdLFsiY2xyVmVydGljYWxOYXZMaW5r'@; put 'IiwiIiwicm91dGVyTGluayIsIi9ob21lL3RhYmxlcyIsInJvdXRlckxpbmtBY3RpdmUiLCJhY3RpdmUiXSxbImNsclZlcnRpY2FsTmF2TGluayIsIiIsInJvdXRlckxpbmsiLCIvaG9tZS9leGNlbC1tYXBzIiwicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSJdLFsiY2xyVmVydGljYWxOYXZM'@; put 'aW5rIiwiIiwicm91dGVyTGluayIsIi9ob21lL211bHRpLWxvYWQiLCJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0aXZlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGQsaCl7aWYoMSZkKXtjb25zdCBmPU9uKCk7c2EoKSxkZSgwLCJjbHItdmVydGljYWwtbmF2IiwxLDApLGd0KDIsZXZ0LDYsMSwiZGl2'@; put 'IiwyKSgzLGl2dCwxNCw2LCJjbHItdGFicyIsMykoNCxzdnQsNiwxLCJkaXYiLDIpLFd0KDUsImRpdiIsNCksZGUoNiwiZGl2Iiw1KSxGdCgic2Nyb2xsIixmdW5jdGlvbihNKXtyZXR1cm4gd3QoZiksQ3QoaC5vblRyZWVTY3JvbGwoTSkpfSksV3IoNyksaGUoKSxkZSg4LCJzcGFuIiw2KSxG'@; put 'dCgibW91c2Vkb3duIixmdW5jdGlvbigpe3JldHVybiB3dChmKSxDdChoLnJlc2l6ZVN0YXJ0KCkpfSksaGUoKSgpfTImZCYmKE4xKCJ3aWR0aCIsaC5zaWRlYmFyV2lkdGgsInB4IikoIm1heC13aWR0aCIsaC5zaWRlYmFyTWF4V2lkdGgsInB4IiksVHIoImNsb3NlZCIsIWguc2lkZWJhck9w'@; put 'ZW4pKCJyZXNpemluZyIsaC5yZXNpemluZyksZmUoMiksTWUoIm5nSWYiLGguaXNNYWluUm91dGUoInZpZXciKSksZmUoKSxNZSgibmdJZiIsaC5pc01haW5Sb3V0ZSgidmlldy91c2VybmF2IikpLGZlKCksTWUoIm5nSWYiLGguaXNNYWluUm91dGUoImhvbWUiKSksZmUoNCksVHIoInJlc2l6'@; put 'aW5nIixoLnJlc2l6aW5nKSl9LGRlcGVuZGVuY2llczpbYmEsT2wsTGIsUDIsdm0sYm0seDcseW0sbW0sUzcsckcsYUcsc2csZzcsbTcsbDEsdWJdLGVuY2Fwc3VsYXRpb246Mn0pfX1yZXR1cm4gY30pKCk7ZnVuY3Rpb24gb3Z0KGMsbCl7MSZjJiZXdCgwLCJjbHItaWNvbiIsMTMpfWZ1bmN0'@; put 'aW9uIGx2dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImNsci1pY29uIiwxNCksRnQoImNsaWNrIixmdW5jdGlvbigpe3d0KGEpO2NvbnN0IGg9TGUoMik7cmV0dXJuIGgubGlicmFyaWVzU2VhcmNoPSIiLEN0KGgubGlicmFyeU9uRmlsdGVyKCkpfSksaGUoKX19ZnVuY3Rpb24g'@; put 'Y3Z0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiY2xyLXRyZWUtbm9kZSIsOCkoMSwiZGl2Iiw5KSgyLCJpbnB1dCIsMTAsMCkscGkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe3d0KGEpO2NvbnN0IGY9TGUoKTtyZXR1cm4gZ2koZi5saWJyYXJpZXNTZWFyY2gsaCl8fChm'@; put 'LmxpYnJhcmllc1NlYXJjaD1oKSxDdChoKX0pLEZ0KCJrZXl1cCIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoKS5saWJyYXJ5T25GaWx0ZXIoKSl9KSxoZSgpLGd0KDQsb3Z0LDEsMCwiY2xyLWljb24iLDExKSg1LGx2dCwxLDAsImNsci1pY29uIiwxMiksaGUoKSgpfWlmKDImYyl7'@; put 'Y29uc3QgYT1kYSgzKSxkPUxlKCk7ZmUoMiksZmkoIm5nTW9kZWwiLGQubGlicmFyaWVzU2VhcmNoKSxmZSgyKSxNZSgibmdJZiIsYS52YWx1ZS5sZW5ndGg8MSksZmUoKSxNZSgibmdJZiIsYS52YWx1ZS5sZW5ndGg+MCl9fWZ1bmN0aW9uIHV2dChjLGwpezEmYyYmV3QoMCwiY2xyLWljb24i'@; put 'LDEzKX1mdW5jdGlvbiBkdnQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJjbHItaWNvbiIsMTQpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKSxMZSgpO2NvbnN0IGg9ZGEoMyksZj1MZSgyKS4kaW1wbGljaXQsdj1MZSgpO3JldHVybiBoLnZhbHVlPSIiLGYuc2VhcmNoU3Ry'@; put 'aW5nPSIiLEN0KHYudHJlZU9uRmlsdGVyKGYsInRhYmxlcyIpKX0pLGhlKCl9fWZ1bmN0aW9uIGh2dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImNsci10cmVlLW5vZGUiLDgpKDEsImRpdiIsOSkoMiwiaW5wdXQiLDE5LDEpLHBpKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbiho'@; put 'KXt3dChhKTtjb25zdCBmPUxlKDIpLiRpbXBsaWNpdDtyZXR1cm4gZ2koZi5zZWFyY2hTdHJpbmcsaCl8fChmLnNlYXJjaFN0cmluZz1oKSxDdChoKX0pLEZ0KCJrZXl1cCIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKDIpLiRpbXBsaWNpdDtyZXR1cm4gQ3QoTGUoKS50cmVlT25GaWx0'@; put 'ZXIoaCwidGFibGVzIikpfSksaGUoKSxndCg0LHV2dCwxLDAsImNsci1pY29uIiwxMSkoNSxkdnQsMSwwLCJjbHItaWNvbiIsMTIpLGhlKCkoKX1pZigyJmMpe2NvbnN0IGE9ZGEoMyksZD1MZSgyKS4kaW1wbGljaXQ7ZmUoMiksZmkoIm5nTW9kZWwiLGQuc2VhcmNoU3RyaW5nKSxmZSgyKSxN'@; put 'ZSgibmdJZiIsYS52YWx1ZS5sZW5ndGg8MSksZmUoKSxNZSgibmdJZiIsYS52YWx1ZS5sZW5ndGg+MCl9fWZ1bmN0aW9uIGZ2dChjLGwpezEmYyYmV3QoMCwiY2xyLWljb24iLDI2KX1mdW5jdGlvbiBwdnQoYyxsKXsxJmMmJld0KDAsImNsci1pY29uIiwyNyl9ZnVuY3Rpb24gZ3Z0KGMsbCl7'@; put 'MSZjJiYoZGUoMCwiY2xyLXRvb2x0aXAtY29udGVudCIsMjkpKDEsInNwYW4iKSxPZSgyLCIgVG8gdW5sb2NrIGFsbCB0YWJsZXMsIGNvbnRhY3Qgc3VwcG9ydEBkYXRhY29udHJvbGxlci5pbyAiKSxoZSgpKCkpfWZ1bmN0aW9uIG12dChjLGwpezEmYyYmKGFpKDApLGd0KDEsZ3Z0LDMsMCwi'@; put 'Y2xyLXRvb2x0aXAtY29udGVudCIsMjgpLHNpKCkpfWZ1bmN0aW9uIHZ2dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImNsci10b29sdGlwIikoMSwiYnV0dG9uIiwyMSksRnQoImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IGg9d3QoYSkubmdWYXIsZj1MZSgpLiRpbXBsaWNpdCx2'@; put 'PUxlKDIpLiRpbXBsaWNpdCxNPUxlKCk7cmV0dXJuIEN0KGg/IiI6TS5vblRhYmxlQ2xpY2soZix2KSl9KSxhaSgyLDIyKSxndCgzLGZ2dCwxLDAsImNsci1pY29uIiwyMykoNCxwdnQsMSwwLCJjbHItaWNvbiIsMjQpLHNpKCksT2UoNSksaGUoKSxndCg2LG12dCwyLDAsIm5nLWNvbnRhaW5l'@; put 'ciIsMjUpLGhlKCl9aWYoMiZjKXtjb25zdCBhPWwubmdWYXIsZD1MZSgpLiRpbXBsaWNpdCxoPUxlKDIpLiRpbXBsaWNpdCxmPUxlKCk7ZmUoKSxUcigiZGMtbG9ja2VkLWNvbnRyb2wiLGEpKCJhY3RpdmUiLGYubGliVGFiQWN0aXZlKGguTElCUkFSWVJFRixkKSksZmUoKSxNZSgibmdTd2l0'@; put 'Y2giLGQuaW5jbHVkZXMoIi1GQyIpKSxmZSgpLE1lKCJuZ1N3aXRjaENhc2UiLCEwKSxmZSgpLE1lKCJuZ1N3aXRjaENhc2UiLCExKSxmZSgpLExyKCIgIixkLnJlcGxhY2UoIi1GQyIsIiIpLCIgIiksZmUoKSxNZSgibmdJZiIsYSl9fWZ1bmN0aW9uIHl2dChjLGwpe2lmKDEmYyYmKGRlKDAs'@; put 'ImNsci10cmVlLW5vZGUiKSxndCgxLHZ2dCw3LDksImNsci10b29sdGlwIiwyMCksaGUoKSksMiZjKXtjb25zdCBhPWwuaW5kZXgsZD1MZSgzKTtmZSgpLE1lKCJuZ1ZhciIsYSsxPmQubGljZW5jZVN0YXRlLnZhbHVlLnRhYmxlc19pbl9saWJyYXJ5X2xpbWl0KX19ZnVuY3Rpb24gYnZ0KGMs'@; put 'bCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiY2xyLXRyZWUtbm9kZSIsMTYpLEZ0KCJjbGljayIsZnVuY3Rpb24oaCl7d3QoYSk7Y29uc3QgZj1MZSgpLiRpbXBsaWNpdCx2PUxlKCk7cmV0dXJuIHYudHJlZU5vZGVDbGlja2VkKGgsZiksQ3Qodi5saWI9Zi5MSUJSQVJZUkVGKX0pLHBp'@; put 'KCJjbHJFeHBhbmRlZENoYW5nZSIsZnVuY3Rpb24oaCl7d3QoYSk7Y29uc3QgZj1MZSgpLiRpbXBsaWNpdDtyZXR1cm4gZ2koZi5leHBhbmRlZCxoKXx8KGYuZXhwYW5kZWQ9aCksQ3QoaCl9KSxkZSgxLCJwIiwxNyksRnQoImNsaWNrIixmdW5jdGlvbigpe3d0KGEpO2NvbnN0IGg9TGUoKS4k'@; put 'aW1wbGljaXQsZj1MZSgpO3JldHVybiBmLmxpYj1oLkxJQlJBUllSRUYsQ3QoZi5saWJyYXJ5T25DbGljayhoLkxJQlJBUllSRUYsaCkpfSksV3QoMiwiY2xyLWljb24iLDE4KSxPZSgzKSxoZSgpLGd0KDQsaHZ0LDYsMywiY2xyLXRyZWUtbm9kZSIsMikoNSx5dnQsMiwxLCJjbHItdHJlZS1u'@; put 'b2RlIiwzKSxoZSgpfWlmKDImYyl7Y29uc3QgYT1MZSgpLiRpbXBsaWNpdDtUcigiY2xyLWV4cGFuZGVkIixhLmV4cGFuZGVkKSxmaSgiY2xyRXhwYW5kZWQiLGEuZXhwYW5kZWQpLE1lKCJjbHJMb2FkaW5nIixhLmxvYWRpbmdUYWJsZXMmJiFhLnRhYmxlcyksZmUoMyksTHIoIiAiLGEuTElC'@; put 'UkFSWVJFRiwiICIpLGZlKCksTWUoIm5nSWYiLGEudGFibGVzKSxmZSgpLE1lKCJuZ0Zvck9mIixhLnRhYmxlcyl9fWZ1bmN0aW9uIF92dChjLGwpe2lmKDEmYyYmKGFpKDApLGd0KDEsYnZ0LDYsNywiY2xyLXRyZWUtbm9kZSIsMTUpLHNpKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtm'@; put 'ZSgpLE1lKCJuZ0lmIiwhYS5oaWRkZW4pfX1mdW5jdGlvbiB3dnQoYyxsKXsxJmMmJihkZSgwLCJkaXYiLDMwKSgxLCJkaXYiLDMxKSgyLCJzcGFuIiwzMiksT2UoMywiIExvYWRpbmcuLi4gIiksaGUoKSgpKCkpfWZ1bmN0aW9uIEN2dChjLGwpezEmYyYmKGRlKDAsInAiLDM2KSxPZSgxLCIg'@; put 'UGxlYXNlIHNlbGVjdCBhIHRhYmxlICIpLGhlKCkpfWZ1bmN0aW9uIFN2dChjLGwpezEmYyYmKGRlKDAsInAiLDM2KSxPZSgxLCIgTm8gRWRpdGFibGUgVGFibGVzIENvbmZpZ3VyZWQgIiksaGUoKSl9ZnVuY3Rpb24gTXZ0KGMsbCl7aWYoMSZjJiYoZGUoMCwiZGl2IiwzMyksV3QoMSwiaW1n'@; put 'IiwzNCksZ3QoMixDdnQsMiwwLCJwIiwzNSkoMyxTdnQsMiwwLCJwIiwzNSksaGUoKSksMiZjKXtjb25zdCBhPUxlKCk7ZmUoMiksTWUoIm5nSWYiLChudWxsPT1hLnRyZWVOb2RlTGlicmFyaWVzP251bGw6YS50cmVlTm9kZUxpYnJhcmllcy5sZW5ndGgpPjApLGZlKCksTWUoIm5nSWYiLChu'@; put 'dWxsPT1hLnRyZWVOb2RlTGlicmFyaWVzP251bGw6YS50cmVlTm9kZUxpYnJhcmllcy5sZW5ndGgpPDEpfX1sZXQgeHZ0PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZix2LE0pe3RoaXMucm91dGU9YSx0aGlzLnJvdXRlcj1kLHRoaXMubGljZW5jZVNlcnZpY2U9aCx0aGlzLmhl'@; put 'bHBlclNlcnZpY2U9Zix0aGlzLmV2ZW50U2VydmljZT12LHRoaXMuc2FzU2VydmljZT1NLHRoaXMudHJlZU5vZGVMaWJyYXJpZXM9bnVsbCx0aGlzLmxpYnJhcmllc1NlYXJjaD0iIix0aGlzLmxpYj0iIix0aGlzLnRhYmxlPSIiLHRoaXMuZW5jb2Rpbmc9IlVURi04Iix0aGlzLmxvYWRpbmc9'@; put 'ITAsdGhpcy5saWNlbmNlU3RhdGU9dGhpcy5saWNlbmNlU2VydmljZS5saWNlbmNlU3RhdGV9Y29sbGFwc2VMaWJyYXJ5SXRlbXMoYSxkKXthLmZvckVhY2goaD0+e2guTElCUkFSWUlEIT09ZC5MSUJSQVJZSUQmJihoLmV4cGFuZGVkPSExKX0pfXRyZWVOb2RlQ2xpY2tlZChhLGQpeyJDb2xs'@; put 'YXBzZSI9PT1hLnRhcmdldC50aXRsZSYmdGhpcy5jb2xsYXBzZUxpYnJhcnlJdGVtcyh0aGlzLmxpYnJhcmllcyxkKX1saWJyYXJ5T25DbGljayhhLGQpe2QuZXhwYW5kZWQ9IWQuZXhwYW5kZWQsZC5leHBhbmRlZCYmIXRoaXMudGFibGUmJnRoaXMuc2VsZWN0TGlicmFyeShhLCExLGQpLHRo'@; put 'aXMuY29sbGFwc2VMaWJyYXJ5SXRlbXModGhpcy5saWJyYXJpZXMsZCl9c2VsZWN0TGlicmFyeShhLGQsaCl7aC5sb2FkaW5nVGFibGVzPSEwO2xldCBmLHY9W107aWYodGhpcy5saWJzQW5kVGFibGVzJiYoZj10aGlzLmxpYnNBbmRUYWJsZXNbYV0sdGhpcy50YWJsZT12b2lkIDAsIlBsZWFz'@; put 'ZSBzZWxlY3QgbGlicmFyeSIhPT1hKSl7bGV0IE09Zi5maWx0ZXIoZnVuY3Rpb24oSSl7cmV0dXJuLTE9PT12LmluZGV4T2YoSSkmJih2LnB1c2goSSksITApfSk7dGhpcy50YWJsZXM9TSxKbi5lZGl0b3IubGlicmFyaWVzPXRoaXMubGlicmFyaWVzfUpuLmVkaXRvci5saWJyYXJ5PWEsZHx8'@; put 'dGhpcy5jbGVhckdsb2JhbHNGaWx0ZXIoKSxoLmxvYWRpbmdUYWJsZXM9ITEsaC5leHBhbmRlZD0hMH1zZWxlY3RUYWJsZShhLGQpe3ZhciBoPXRoaXM7cmV0dXJuIFEoZnVuY3Rpb24qKCl7aC5saWJUYWI9aC5saWIrIi4iK2gudGFibGUsaC5zYXNTZXJ2aWNlLmdldFNhc2pzQ29uZmlnKCks'@; put 'Sm4uZWRpdG9yLnRhYmxlPWEsZHx8aC5jbGVhckdsb2JhbHNGaWx0ZXIoKX0pKCl9Y2xlYXJHbG9iYWxzRmlsdGVyKCl7Sm4uZWRpdG9yLmZpbHRlci5saWJkcz0iIixKbi5lZGl0b3IuZmlsdGVyLndoZXJlQ2xhdXNlPSIiLEpuLmVkaXRvci5maWx0ZXIuZ3JvdXBMb2dpYz0iIixKbi5lZGl0'@; put 'b3IuZmlsdGVyLmNsYXVzZXM9W10sSm4uZWRpdG9yLmZpbHRlci52YWxzPVtdLEpuLmVkaXRvci5maWx0ZXIuY29scz1bXX1saWJUYWJBY3RpdmUoYSxkKXtyZXR1cm4hKCF0aGlzLmxpYnx8IXRoaXMudGFibGUpJiZhPT09dGhpcy5saWImJmQ9PT10aGlzLnRhYmxlfXRyZWVPbkZpbHRlcihh'@; put 'LGQpe3RoaXMuaGVscGVyU2VydmljZS50cmVlT25GaWx0ZXIoYSxkKX1saWJyYXJ5T25GaWx0ZXIoKXt0aGlzLmhlbHBlclNlcnZpY2UubGlicmFyeU9uRmlsdGVyKHRoaXMudHJlZU5vZGVMaWJyYXJpZXMsdGhpcy5saWJyYXJpZXNTZWFyY2gsIkxJQlJBUllSRUYiKSxKbi5saW5lYWdlLmxp'@; put 'YnJhcmllc1NlYXJjaD10aGlzLmxpYnJhcmllc1NlYXJjaH1vblRhYmxlQ2xpY2soYSxkKXt0aGlzLnRhYmxlPWEsdGhpcy5saWI9ZC5MSUJSQVJZUkVGLHRoaXMuc2VsZWN0VGFibGUoYSksdGhpcy5lZGl0VGFibGUoKX1lZGl0VGFibGUoKXt0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoIi9l'@; put 'ZGl0b3IvIit0aGlzLmxpYisiLiIrdGhpcy50YWJsZSl9Z2V0TGlicmFyeVRhYmxlU3RhdGUoKXtpZihudWxsIT09Sm4uZWRpdG9yLnRyZWVOb2RlTGlicmFyaWVzJiYodGhpcy50cmVlTm9kZUxpYnJhcmllcz1Kbi5lZGl0b3IudHJlZU5vZGVMaWJyYXJpZXMpLCIiIT09Sm4uZWRpdG9yLmxp'@; put 'YnJhcnkpe3RoaXMubGliPUpuLmVkaXRvci5saWJyYXJ5O2xldCBhPW51bGw7dGhpcy50cmVlTm9kZUxpYnJhcmllcyYmKGE9dGhpcy50cmVlTm9kZUxpYnJhcmllcy5maW5kKGQ9PmQuTElCUkFSWVJFRj09PXRoaXMubGliKSksdGhpcy5zZWxlY3RMaWJyYXJ5KEpuLmVkaXRvci5saWJyYXJ5'@; put 'LCEwLGEpfX1nZXRGcm9tR2xvYmFscygpe3RoaXMubGlic0FuZFRhYmxlcz1Kbi5lZGl0b3IubGlic0FuZFRhYmxlcyx0aGlzLmxpYnJhcmllcz1Kbi5lZGl0b3IubGlicmFyaWVzLHRoaXMuZ2V0TGlicmFyeVRhYmxlU3RhdGUoKSx0aGlzLmxvYWRpbmc9ITF9bmdBZnRlckNvbnRlbnRJbml0'@; put 'KCl7Sm4uZWRpdG9yLnN0YXJ0dXBTZXQ/dGhpcy5nZXRGcm9tR2xvYmFscygpOnRoaXMuZXZlbnRTZXJ2aWNlLm9uU3RhcnR1cERhdGFMb2FkZWQuc3Vic2NyaWJlKCgpPT57dGhpcy5nZXRGcm9tR2xvYmFscygpfSl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBu'@; put 'ZXcoZHx8YykoJGUoTG8pLCRlKHl1KSwkZShjMSksJGUoYnUpLCRlKG1jKSwkZShWbykpfX1zdGF0aWN7dGhpcy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1siaG9tZS1jb21wb25lbnQiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xzOjgsdmFyczo0'@; put 'LGNvbnN0czpbWyJzZWFyY2hMaWJUcmVlSW5wdXQiLCIiXSxbInNlYXJjaFRyZWVJbnB1dCIsIiJdLFsiY2xhc3MiLCJzZWFyY2gtbm9kZSIsNCwibmdJZiJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiY29udGVudC1hcmVhIl0sWzEsImNhcmQtYmxvY2siXSxbImNsYXNzIiwic3Bpbm5l'@; put 'ci13cmFwcGVyLWZ1bGxwYWdlIiw0LCJuZ0lmIl0sWyJjbGFzcyIsIm5vLXRhYmxlLXNlbGVjdGVkIiw0LCJuZ0lmIl0sWzEsInNlYXJjaC1ub2RlIl0sWzEsInRyZWUtc2VhcmNoLXdyYXBwZXIiXSxbImNscklucHV0IiwiIiwiYXBwU3RlYWxGb2N1cyIsIiIsInBsYWNlaG9sZGVyIiwiTGli'@; put 'cmFyaWVzIiwibmFtZSIsImlucHV0IiwiYXV0b2NvbXBsZXRlIiwib2ZmIiwzLCJuZ01vZGVsQ2hhbmdlIiwia2V5dXAiLCJuZ01vZGVsIl0sWyJzaGFwZSIsInNlYXJjaCIsNCwibmdJZiJdLFsic2hhcGUiLCJ0aW1lcyIsMywiY2xpY2siLDQsIm5nSWYiXSxbInNoYXBlIiwic2VhcmNoIl0s'@; put 'WyJzaGFwZSIsInRpbWVzIiwzLCJjbGljayJdLFszLCJjbHJFeHBhbmRlZCIsImNsckxvYWRpbmciLCJjbHItZXhwYW5kZWQiLCJjbGljayIsImNsckV4cGFuZGVkQ2hhbmdlIiw0LCJuZ0lmIl0sWzMsImNsaWNrIiwiY2xyRXhwYW5kZWRDaGFuZ2UiLCJjbHJFeHBhbmRlZCIsImNsckxvYWRp'@; put 'bmciXSxbMSwibS0wIiwiY3Vyc29yLXBvaW50ZXIiLDMsImNsaWNrIl0sWyJzaGFwZSIsInJhY2stc2VydmVyIl0sWyJhcHBTdGVhbEZvY3VzIiwiIiwiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsIlRhYmxlcyIsIm5hbWUiLCJpbnB1dCIsImF1dG9jb21wbGV0ZSIsIm9mZiIsMywibmdN'@; put 'b2RlbENoYW5nZSIsImtleXVwIiwibmdNb2RlbCJdLFs0LCJuZ1ZhciJdLFsiY2xyVG9vbHRpcFRyaWdnZXIiLCIiLDEsImNsci10cmVlbm9kZS1saW5rIiwzLCJjbGljayJdLFszLCJuZ1N3aXRjaCJdLFsic2hhcGUiLCJib2x0Iiw0LCJuZ1N3aXRjaENhc2UiXSxbInNoYXBlIiwidGFibGUi'@; put 'LDQsIm5nU3dpdGNoQ2FzZSJdLFs0LCJuZ0lmIl0sWyJzaGFwZSIsImJvbHQiXSxbInNoYXBlIiwidGFibGUiXSxbImNsclBvc2l0aW9uIiwiYm90dG9tLXJpZ2h0IiwiY2xyU2l6ZSIsImxnIiw0LCJjbHJJZk9wZW4iXSxbImNsclBvc2l0aW9uIiwiYm90dG9tLXJpZ2h0IiwiY2xyU2l6ZSIs'@; put 'ImxnIl0sWzEsInNwaW5uZXItd3JhcHBlci1mdWxscGFnZSJdLFsxLCJsb2FkaW5nU3Bpbm5lciJdLFsxLCJzcGlubmVyIl0sWzEsIm5vLXRhYmxlLXNlbGVjdGVkIl0sWyJzcmMiLCIvU0FTSm9iRXhlY3V0aW9uP19GSUxFPS9QdWJsaWMvYXBwL2RjcGxhY2Vob2xkZXIvc2VydmljZXMvd2Vi'@; put 'L2ltYWdlcy9zZWxlY3QtdGFibGUucG5nIiwiYWx0Iiwic2VsZWN0IHRhYmxlIGljb24iLDEsInNlbGVjdC10YWJsZS1pY29uIl0sWyJjbGFzcyIsInRleHQtY2VudGVyIGNvbG9yLWdyYXkgbXQtMTAiLCJjZHMtdGV4dCIsInNlY3Rpb24iLDQsIm5nSWYiXSxbImNkcy10ZXh0Iiwic2VjdGlv'@; put 'biIsMSwidGV4dC1jZW50ZXIiLCJjb2xvci1ncmF5IiwibXQtMTAiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZCxoKXsxJmQmJihkZSgwLCJhcHAtc2lkZWJhciIpKDEsImNsci10cmVlIiksZ3QoMixjdnQsNiwzLCJjbHItdHJlZS1ub2RlIiwyKSgzLF92dCwyLDEsIm5nLWNvbnRhaW5lciIsMyks'@; put 'aGUoKSgpLGRlKDQsImRpdiIsNCkoNSwiZGl2Iiw1KSxndCg2LHd2dCw0LDAsImRpdiIsNikoNyxNdnQsNCwyLCJkaXYiLDcpLGhlKCkoKSksMiZkJiYoZmUoMiksTWUoIm5nSWYiLChudWxsPT1oLnRyZWVOb2RlTGlicmFyaWVzP251bGw6aC50cmVlTm9kZUxpYnJhcmllcy5sZW5ndGgpPjAp'@; put 'LGZlKCksTWUoIm5nRm9yT2YiLGgudHJlZU5vZGVMaWJyYXJpZXMpLGZlKDMpLE1lKCJuZ0lmIixoLmxvYWRpbmcpLGZlKCksTWUoIm5nSWYiLCFoLmxvYWRpbmcpKX0sZGVwZW5kZW5jaWVzOltHbCx0bCxXbyxBaCxQZCxoZyxPbCxWMCxQMixZMSx2NyxiNyx5NyxhNCxRcyxiYSx4MixkcCxF'@; put 'dyxpNF0sZW5jYXBzdWxhdGlvbjoyfSl9fXJldHVybiBjfSkoKTtjb25zdCBFdnQ9Yz0+e2Zvcihjb25zdCBsIGluIGMpaWYoIl9fcm93TnVtX18iIT09bClyZXR1cm4hMTtyZXR1cm4hMH0sYXRlPWM9Pntjb25zdCBhPWMubWF0Y2goL1JcWyhcZCspXF1DXFsoXGQrKVxdLyk7cmV0dXJuIGE/'@; put 'e3JvdzpwYXJzZUludChhWzFdLDEwKSxjb2x1bW46cGFyc2VJbnQoYVsyXSwxMCl9Om51bGx9LG44ZT0oYyxsKT0+e2lmKGMuc3RhcnRzV2l0aCgiQUJTT0xVVEUgIikmJihjPWMucmVwbGFjZSgiQUJTT0xVVEUgIiwiIikpLGMuc3RhcnRzV2l0aCgiUkVMQVRJVkUgIikpe2NvbnN0IGE9YXRl'@; put 'KGMpO2lmKGEpe2NvbnN0e3JvdzpkLGNvbHVtbjpofT1hO2M9VHUudXRpbHMuZW5jb2RlX2NlbGwoe3I6ZC0xLGM6aC0xfSl9fWlmKGMuc3RhcnRzV2l0aCgiTUFUQ0ggIikpe2xldCBhPSIiO2NvbnN0IGQ9Yy5tYXRjaCgvQ1xbXGQrXF06KC4rKS8pO2QmJihhPWRbMV0pO2NvbnN0IGY9Yy5z'@; put 'cGxpdCgiICIpWzFdO2xldCB2PSIiLE09LTEsST0iIjtpZihpc05hTihOdW1iZXIoZikpP3Y9ZjpNPXBhcnNlSW50KGYpLC0xIT09TSl7Y29uc3QgdWU9bFtNLTFdO2Zvcihjb25zdCB5ZSBpbiB1ZSlpZigiX19yb3dOdW1fXyIhPT15ZSYmdWVbeWVdPT09YSl7ST15ZStNO2JyZWFrfX1lbHNl'@; put 'IGZvcihsZXQgdWU9MDt1ZTxsLmxlbmd0aDt1ZSsrKWlmKGxbdWVdW3ZdPT09YSl7ST12Kyh1ZSsxKTticmVha31jb25zdCBHPVR1LnV0aWxzLmRlY29kZV9jZWxsKEkpLHJlPWF0ZShjKTtpZihyZSl7Y29uc3R7cm93OnVlLGNvbHVtbjp5ZX09cmU7Yz1UdS51dGlscy5lbmNvZGVfY2VsbCh7'@; put 'cjpHLnIrdWUsYzpHLmMreWV9KX19cmV0dXJuIGN9LEF2dD1bImZpbGVVcGxvYWRJbnB1dCJdO2Z1bmN0aW9uIGt2dChjLGwpezEmYyYmKGRlKDAsImRpdiIsMjgpLFd0KDEsImNsci1zcGlubmVyIiwyOSksaGUoKSl9ZnVuY3Rpb24gRHZ0KGMsbCl7MSZjJiZXdCgwLCJjbHItaWNvbiIsMzAp'@; put 'fWZ1bmN0aW9uIEl2dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImNsci1pY29uIiwzMSksRnQoImNsaWNrIixmdW5jdGlvbigpe3d0KGEpO2NvbnN0IGg9TGUoKTtyZXR1cm4gaC5zZWFyY2hTdHJpbmc9IiIsQ3QoaC54bG1hcExpc3RPbkZpbHRlcigpKX0pLGhlKCl9fWZ1bmN0'@; put 'aW9uIFJ2dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2FpKDApLGRlKDEsImNsci10cmVlLW5vZGUiKSgyLCJidXR0b24iLDMyKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7Y29uc3QgaD13dChhKS4kaW1wbGljaXQ7cmV0dXJuIEN0KExlKCkueGxtYXBPbkNsaWNrKGgpKX0pLFd0KDMsImNs'@; put 'ci1pY29uIiwzMyksT2UoNCksaGUoKSgpLHNpKCl9aWYoMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0LGQ9TGUoKTtmZSgyKSxUcigiYWN0aXZlIixkLmlzQWN0aXZlWExNYXAoYS5pZCkpLGZlKDIpLExyKCIgIixhLmlkLCIgIil9fWZ1bmN0aW9uIEx2dChjLGwpezEmYyYmKGRlKDAsInAiLDM3'@; put 'KSxPZSgxLCIgUGxlYXNlIHNlbGVjdCBhIG1hcCAiKSxoZSgpKX1mdW5jdGlvbiBPdnQoYyxsKXsxJmMmJihkZSgwLCJwIiwzNyksT2UoMSwiIE5vIGV4Y2VsIG1hcCBpcyBmb3VuZCAiKSxoZSgpKX1mdW5jdGlvbiBQdnQoYyxsKXtpZigxJmMmJihkZSgwLCJkaXYiLDM0KSxXdCgxLCJpbWci'@; put 'LDM1KSxndCgyLEx2dCwyLDAsInAiLDM2KSgzLE92dCwyLDAsInAiLDM2KSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoKTtmZSgyKSxNZSgibmdJZiIsYS54bG1hcHMubGVuZ3RoPjApLGZlKCksTWUoIm5nSWYiLGEueGxtYXBzLmxlbmd0aDwxKX19ZnVuY3Rpb24gRnZ0KGMsbCl7aWYoMSZjJiYo'@; put 'ZGUoMCwiZGl2IiwzOCkoMSwic3BhbiIsMzkpLE9lKDIsIiBMb2FkaW5nLi4uICIpLGhlKCksZGUoMywiZGl2IikoNCwiaDQiKSxPZSg1KSxoZSgpKCkoKSksMiZjKXtjb25zdCBhPUxlKCk7ZmUoNSksU3IoYS5pc0xvYWRpbmdEZXNjKX19ZnVuY3Rpb24gSHZ0KGMsbCl7MSZjJiZXdCgwLCJj'@; put 'bHItdGFiLWNvbnRlbnQiKX1mdW5jdGlvbiBOdnQoYyxsKXsxJmMmJld0KDAsImNsci10YWItY29udGVudCIpfWZ1bmN0aW9uIFZ2dChjLGwpezEmYyYmTGwoMCl9ZnVuY3Rpb24gQnZ0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiZGl2Iiw0MCksRnQoImZpbGVEcmFnZ2VkT3Zl'@; put 'ciIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoKS5vblNob3dVcGxvYWRNb2RhbCgpKX0pLGRlKDEsImNsci10YWJzIikoMiwiY2xyLXRhYiIpKDMsImJ1dHRvbiIsNDEpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKCk7cmV0dXJuIEN0KGguc2VsZWN0ZWRU'@; put 'YWI9aC5UYWJzRW51bS5SdWxlcyl9KSxPZSg0LCJSdWxlcyIpLGhlKCksZ3QoNSxIdnQsMSwwLCJjbHItdGFiLWNvbnRlbnQiLDQyKSxoZSgpLGRlKDYsImNsci10YWIiKSg3LCJidXR0b24iLDQxKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7d3QoYSk7Y29uc3QgaD1MZSgpO3JldHVybiBDdCho'@; put 'LnNlbGVjdGVkVGFiPWguVGFic0VudW0uRGF0YSl9KSxPZSg4LCJEYXRhIiksaGUoKSxndCg5LE52dCwxLDAsImNsci10YWItY29udGVudCIsNDIpLGhlKCkoKSxndCgxMCxWdnQsMSwwLCJuZy1jb250YWluZXIiLDQzKSxkZSgxMSwiZGl2Iiw0NCkoMTIsImgzIiw0NSksT2UoMTMpLGhlKCks'@; put 'ZGUoMTQsImkiLDQ1KSxPZSgxNSksaGUoKSxkZSgxNiwicCIsNDUpLE9lKDE3LCIgUnVsZXMgU291cmNlOiAiKSxkZSgxOCwiYSIsNDYpLE9lKDE5KSxoZSgpKCksZGUoMjAsInAiLDQ1KSxPZSgyMSwiIFRhcmdldCBkYXRhc2V0OiAiKSxkZSgyMiwiYSIsNDYpLE9lKDIzKSxoZSgpKCkoKSxk'@; put 'ZSgyNCwiZGl2Iiw0NyksV3QoMjUsImhvdC10YWJsZSIsNDgpLGhlKCkoKX1pZigyJmMpe2NvbnN0IGE9TGUoKSxkPWRhKDQxKTtmZSg1KSxNZSgiY2xySWZBY3RpdmUiLGEuc2VsZWN0ZWRUYWI9PT1hLlRhYnNFbnVtLlJ1bGVzKSxmZSg0KSxNZSgiY2xySWZBY3RpdmUiLGEuc2VsZWN0ZWRU'@; put 'YWI9PT1hLlRhYnNFbnVtLkRhdGEpLGZlKCksTWUoIm5nVGVtcGxhdGVPdXRsZXQiLGQpLGZlKDMpLExyKCIgIixhLnNlbGVjdGVkWExNYXAuaWQsIiAiKSxmZSgyKSxTcihhLnNlbGVjdGVkWExNYXAuZGVzY3JpcHRpb24pLGZlKDMpLE1lKCJyb3V0ZXJMaW5rIiwiL3ZpZXcvZGF0YS8iK2Eu'@; put 'cnVsZXNTb3VyY2UpLGZlKCksTHIoIiAiLGEucnVsZXNTb3VyY2UsIiAiKSxmZSgzKSxNZSgicm91dGVyTGluayIsIi92aWV3L2RhdGEvIithLnNlbGVjdGVkWExNYXAudGFyZ2V0RFMpLGZlKCksTHIoIiAiLGEuc2VsZWN0ZWRYTE1hcC50YXJnZXREUywiICIpLGZlKDIpLE1lKCJkYXRhIixh'@; put 'LnNlbGVjdGVkVGFiPT09YS5UYWJzRW51bS5SdWxlcz9hLnhsbWFwUnVsZXM6YS54bERhdGEpKCJzZXR0aW5ncyIsYS5ob3RUYWJsZVNldHRpbmdzKX19ZnVuY3Rpb24ganZ0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiZGl2Iiw1MSkoMSwiYnV0dG9uIiw1MiksRnQoImNsaWNr'@; put 'IixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgyKS5vblNob3dVcGxvYWRNb2RhbCgpKX0pLFd0KDIsImNsci1pY29uIiw1MyksZGUoMywic3BhbiIpLE9lKDQsIlVwbG9hZCIpLGhlKCkoKSgpfX1mdW5jdGlvbiB6dnQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJkaXYi'@; put 'LDUxKSgxLCJidXR0b24iLDUyKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKDIpLnN1Ym1pdEV4Y2VsKCkpfSksV3QoMiwiY2xyLWljb24iLDUzKSxkZSgzLCJzcGFuIiksT2UoNCwiU3VibWl0IiksaGUoKSgpKCl9fWZ1bmN0aW9uIFV2dChjLGwpe2lmKDEmYyl7'@; put 'Y29uc3QgYT1PbigpO2RlKDAsImRpdiIsNTEpKDEsImJ1dHRvbiIsNTQpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoMikuZGlzY2FyZEV4dHJhY3RlZERhdGEoKSl9KSxXdCgyLCJjbHItaWNvbiIsNTUpLGRlKDMsInNwYW4iKSxPZSg0LCJEaXNjYXJkIiksaGUo'@; put 'KSgpKCl9fWZ1bmN0aW9uIFp2dChjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIsNDkpLGd0KDEsanZ0LDUsMCwiZGl2Iiw1MCkoMix6dnQsNSwwLCJkaXYiLDUwKSgzLFV2dCw1LDAsImRpdiIsNTApLGhlKCkpLDImYyl7Y29uc3QgYT1MZSgpO2ZlKCksTWUoIm5nSWYiLGEuc3RhdHVzPT09YS5T'@; put 'dGF0dXNFbnVtLlJlYWR5VG9VcGxvYWQpLGZlKCksTWUoIm5nSWYiLGEuc3RhdHVzPT09YS5TdGF0dXNFbnVtLlJlYWR5VG9TdWJtaXQpLGZlKCksTWUoIm5nSWYiLGEuc3RhdHVzPT09YS5TdGF0dXNFbnVtLlJlYWR5VG9TdWJtaXQpfX12YXIgdWY9ZnVuY3Rpb24oYyl7cmV0dXJuIGNbYy5O'@; put 'b01hcFNlbGVjdGVkPTBdPSJOb01hcFNlbGVjdGVkIixjW2MuRmV0Y2hpbmdSdWxlcz0xXT0iRmV0Y2hpbmdSdWxlcyIsY1tjLlJlYWR5VG9VcGxvYWQ9Ml09IlJlYWR5VG9VcGxvYWQiLGNbYy5FeHRyYWN0aW5nRGF0YT0zXT0iRXh0cmFjdGluZ0RhdGEiLGNbYy5SZWFkeVRvU3VibWl0PTRd'@; put 'PSJSZWFkeVRvU3VibWl0IixjW2MuU3VibWl0dGluZ0V4dHJhY3RlZERhdGE9NV09IlN1Ym1pdHRpbmdFeHRyYWN0ZWREYXRhIixjW2MuU3VibWl0dGluZz02XT0iU3VibWl0dGluZyIsY30odWZ8fHt9KSxUdz1mdW5jdGlvbihjKXtyZXR1cm4gY1tjLlJ1bGVzPTBdPSJSdWxlcyIsY1tjLkRh'@; put 'dGE9MV09IkRhdGEiLGN9KFR3fHx7fSk7bGV0IHI4ZT0oKCk9PntjbGFzcyBje2dldCBob3RUYWJsZVNldHRpbmdzKCl7cmV0dXJue211bHRpQ29sdW1uU29ydGluZzohMCx2aWV3cG9ydFJvd1JlbmRlcmluZ09mZnNldDo1MCxjb2xIZWFkZXJzOnRoaXMuc2VsZWN0ZWRUYWI9PT10aGlzLlRh'@; put 'YnNFbnVtLlJ1bGVzP3RoaXMueGxtYXBSdWxlc0hlYWRlcnM6dGhpcy54bFVwbG9hZEhlYWRlcixjb2x1bW5zOnRoaXMuc2VsZWN0ZWRUYWI9PT10aGlzLlRhYnNFbnVtLlJ1bGVzP3RoaXMueGxtYXBSdWxlc0NvbHVtbnM6dGhpcy54bFVwbG9hZENvbHVtbnMsZmlsdGVyczohMCxoZWlnaHQ6'@; put 'IjEwMCUiLHN0cmV0Y2hIOiJhbGwiLGFmdGVyR2V0Q29sSGVhZGVyOnRoaXMuYWZ0ZXJHZXRDb2xIZWFkZXIsbW9kaWZ5Q29sV2lkdGg6dGhpcy5tYXhXaWR0aENoZWNrZXIsY2VsbHM6dGhpcy5nZXRDZWxsQ29uZmlndXJhdGlvbixtYXhSb3dzOnRoaXMuaG90VGFibGVNYXhSb3dzLG1hbnVh'@; put 'bENvbHVtblJlc2l6ZTohMCxyb3dIZWFkZXJzOnRoaXMucm93SGVhZGVycyxyb3dIZWFkZXJXaWR0aDoxNSxyb3dIZWlnaHRzOjIwLGxpY2Vuc2VLZXk6dGhpcy5ob3RUYWJsZUxpY2Vuc2VLZXksY2xhc3NOYW1lOiJodERhcmsifX1jb25zdHJ1Y3RvcihhLGQsaCxmLHYsTSxJKXt0aGlzLmV2'@; put 'ZW50U2VydmljZT1hLHRoaXMubGljZW5jZVNlcnZpY2U9ZCx0aGlzLmxvZ2dlclNlcnZpY2U9aCx0aGlzLnJvdXRlPWYsdGhpcy5yb3V0ZXI9dix0aGlzLnNhc1N0b3JlU2VydmljZT1NLHRoaXMuc2FzU2VydmljZT1JLHRoaXMuY29udGVudENvbnRhaW5lckNsYXNzPSEwLHRoaXMuZmlsZVVw'@; put 'bG9hZElucHV0Q29tcExpc3Q9bmV3IGxoLHRoaXMuU3RhdHVzRW51bT11Zix0aGlzLlRhYnNFbnVtPVR3LHRoaXMuc2VsZWN0ZWRUYWI9VHcuUnVsZXMsdGhpcy5ydWxlc1NvdXJjZT1Kbi5kY0xpYisiLk1QRV9YTE1BUF9SVUxFUyIsdGhpcy54bG1hcHM9W10sdGhpcy5zZWxlY3RlZFhMTWFw'@; put 'PXZvaWQgMCx0aGlzLnNlYXJjaFN0cmluZz0iIix0aGlzLnhsbWFwc0xvYWRpbmc9ITAsdGhpcy5pc0xvYWRpbmc9ITEsdGhpcy5pc0xvYWRpbmdEZXNjPSIiLHRoaXMuc3RhdHVzPXVmLk5vTWFwU2VsZWN0ZWQsdGhpcy54bG1hcFJ1bGVzSGVhZGVycz1bIlhMTUFQX1NIRUVUIiwiWExNQVBf'@; put 'UkFOR0VfSUQiLCJYTE1BUF9TVEFSVCIsIlhMTUFQX0ZJTklTSCJdLHRoaXMueGxtYXBSdWxlc0NvbHVtbnM9W3tkYXRhOiJYTE1BUF9TSEVFVCJ9LHtkYXRhOiJYTE1BUF9SQU5HRV9JRCJ9LHtkYXRhOiJYTE1BUF9TVEFSVCJ9LHtkYXRhOiJYTE1BUF9GSU5JU0gifV0sdGhpcy54bG1hcFJ1'@; put 'bGVzPVtdLHRoaXMueGxVcGxvYWRIZWFkZXI9WyJYTE1BUF9SQU5HRV9JRCIsIlJPV19OTyIsIkNPTF9OTyIsIlZBTFVFX1RYVCJdLHRoaXMueGxVcGxvYWRDb2x1bW5zPVt7ZGF0YToiWExNQVBfUkFOR0VfSUQifSx7ZGF0YToiUk9XX05PIn0se2RhdGE6IkNPTF9OTyJ9LHtkYXRhOiJWQUxV'@; put 'RV9UWFQifV0sdGhpcy54bERhdGE9W10sdGhpcy5zaG93VXBsb2FkTW9kYWw9ITEsdGhpcy5oYXNCYXNlRHJvcFpvbmVPdmVyPSExLHRoaXMuZmlsZW5hbWU9IiIsdGhpcy5zdWJtaXRMaW1pdE5vdGljZT0hMSx0aGlzLnVwbG9hZGVyPW5ldyBZZWUsdGhpcy5saWNlbmNlU3RhdGU9dGhpcy5s'@; put 'aWNlbmNlU2VydmljZS5saWNlbmNlU3RhdGUsdGhpcy5ob3RUYWJsZUxpY2Vuc2VLZXk9dm9pZCAwLHRoaXMuaG90VGFibGVNYXhSb3dzPXRoaXMubGljZW5jZVN0YXRlLnZhbHVlLnZpZXdlcl9yb3dzX2FsbG93ZWR8fDEvMH1hZnRlckdldENvbEhlYWRlcihhLGQpe2QuY2xhc3NMaXN0LmFk'@; put 'ZChKbi5oYW5kc29udGFibGUuZGFya1RhYmxlSGVhZGVyQ2xhc3MpfXhsbWFwT25DbGljayhhKXthLmlkIT09dGhpcy5zZWxlY3RlZFhMTWFwPy5pZCYmKHRoaXMuc2VsZWN0ZWRYTE1hcD1hLHRoaXMueGxEYXRhPVtdLHRoaXMuZmlsZW5hbWU9IiIsdGhpcy51cGxvYWRlci5xdWV1ZT1bXSx0'@; put 'aGlzLmZpbGVVcGxvYWRJbnB1dENvbXBMaXN0LmZpcnN0JiYodGhpcy5maWxlVXBsb2FkSW5wdXRDb21wTGlzdC5maXJzdC5uYXRpdmVFbGVtZW50LnZhbHVlPSIiKSx0aGlzLnNlbGVjdGVkVGFiPVR3LlJ1bGVzLHRoaXMudmlld1hMTWFwUnVsZXMoKSx0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5'@; put 'VXJsKCIvaG9tZS9leGNlbC1tYXBzLyIrYS5pZCkpfXhsbWFwTGlzdE9uRmlsdGVyKCl7dGhpcy54bG1hcHM9dGhpcy5zZWFyY2hTdHJpbmcubGVuZ3RoPjA/Sm4ueGxtYXBzLmZpbHRlcihkPT5kLmlkLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5zZWFyY2hTdHJpbmcudG9Mb3dlckNh'@; put 'c2UoKSkpOkpuLnhsbWFwc31pc0FjdGl2ZVhMTWFwKGEpe3JldHVybiB0aGlzLnNlbGVjdGVkWExNYXA/LmlkPT09YX1tYXhXaWR0aENoZWNrZXIoYSxkKXtyZXR1cm4gYT4yMDA/MjAwOmF9Z2V0Q2VsbENvbmZpZ3VyYXRpb24oKXtyZXR1cm57cmVhZE9ubHk6ITB9fXJvd0hlYWRlcnMoKXty'@; put 'ZXR1cm4iICJ9b25TaG93VXBsb2FkTW9kYWwoKXt0aGlzLnNob3dVcGxvYWRNb2RhbD0hMH1maWxlT3ZlckJhc2UoYSl7dGhpcy5oYXNCYXNlRHJvcFpvbmVPdmVyPWF9Z2V0RmlsZURlc2MoYSxkPSExKXt2YXIgaD10aGlzO2NvbnN0IGY9ZD9hWzBdOmEudGFyZ2V0LmZpbGVzWzBdO2lmKCFm'@; put 'KXJldHVybjtjb25zdCB2PWYubmFtZTtpZih0aGlzLmZpbGVuYW1lPXYsInhscyI9PT12LnNsaWNlKHYubGFzdEluZGV4T2YoIi4iKSsxLHYubGFzdEluZGV4T2YoIi4iKSs0KS50b0xvd2VyQ2FzZSgpKXt0aGlzLnNob3dVcGxvYWRNb2RhbD0hMSx0aGlzLmlzTG9hZGluZz0hMCx0aGlzLmlz'@; put 'TG9hZGluZ0Rlc2M9IkV4dHJhY3RpbmcgRGF0YSIsdGhpcy5zdGF0dXM9dWYuRXh0cmFjdGluZ0RhdGE7Y29uc3QgST1uZXcgRmlsZVJlYWRlcjtJLm9ubG9hZD1mdW5jdGlvbigpe3ZhciBHPVEoZnVuY3Rpb24qKHJlKXtjb25zdCB1ZT0oYz0+e2NvbnN0IGw9bmV3IFVpbnQ4QXJyYXkoYyk7'@; put 'bGV0IGE9IiI7Y29uc3QgZD1sLmJ5dGVMZW5ndGg7Zm9yKGxldCBoPTA7aDxkO2grKylhKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGxbaF0pO3JldHVybiBhfSkocmUudGFyZ2V0LnJlc3VsdCk7bGV0IHllO2NvbnN0IEVlPXt0eXBlOiJiaW5hcnkiLGNlbGxEYXRlczohMSxjZWxsRm9ybXVsYToh'@; put 'MCxjZWxsU3R5bGVzOiEwLGNlbGxORjohMSxjZWxsVGV4dDohMX07dHJ5e3llPVR1LnJlYWQodWUsey4uLkVlfSl9Y2F0Y2goQmUpe2guZXZlbnRTZXJ2aWNlLnNob3dBYm9ydE1vZGFsKG51bGwsQmUsdm9pZCAwLCJFcnJvciByZWFkaW5nIGZpbGUiKX1pZigheWUpcmV0dXJuIGguaXNMb2Fk'@; put 'aW5nPSExLGguaXNMb2FkaW5nRGVzYz0iIixoLnN0YXR1cz11Zi5SZWFkeVRvVXBsb2FkLHZvaWQgaC51cGxvYWRlci5xdWV1ZS5wb3AoKTtoLmV4dHJhY3REYXRhKHllKX0pO3JldHVybiBmdW5jdGlvbihyZSl7cmV0dXJuIEcuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxJLnJlYWRBc0Fy'@; put 'cmF5QnVmZmVyKGYpfWVsc2UgdGhpcy5pc0xvYWRpbmc9ITEsdGhpcy5pc0xvYWRpbmdEZXNjPSIiLHRoaXMuc3RhdHVzPXVmLlJlYWR5VG9VcGxvYWQsdGhpcy5zaG93VXBsb2FkTW9kYWw9ITAsdGhpcy51cGxvYWRlci5xdWV1ZS5wb3AoKSx0aGlzLmV2ZW50U2VydmljZS5zaG93QWJvcnRN'@; put 'b2RhbChudWxsLCdJbnZhbGlkIGZpbGUgdHlwZSAiPGI+Jyt0aGlzLmZpbGVuYW1lKyc8L2I+Ii4gUGxlYXNlIHVwbG9hZCBleGNlbCBmaWxlLicpfWRpc2NhcmRFeHRyYWN0ZWREYXRhKCl7dGhpcy5pc0xvYWRpbmc9ITEsdGhpcy5pc0xvYWRpbmdEZXNjPSIiLHRoaXMuc3RhdHVzPXVmLlJl'@; put 'YWR5VG9VcGxvYWQsdGhpcy54bERhdGE9W10sdGhpcy5zZWxlY3RlZFRhYj1Udy5SdWxlcyx0aGlzLmZpbGVuYW1lPSIiLHRoaXMudXBsb2FkZXIucXVldWU9W10sdGhpcy5maWxlVXBsb2FkSW5wdXRDb21wTGlzdC5maXJzdCYmKHRoaXMuZmlsZVVwbG9hZElucHV0Q29tcExpc3QuZmlyc3Qu'@; put 'bmF0aXZlRWxlbWVudC52YWx1ZT0iIil9c3VibWl0RXhjZWwoKXt0aGlzLmxpY2VuY2VTdGF0ZS52YWx1ZS5zdWJtaXRfcm93c19saW1pdD09PTEvMD90aGlzLnN1Ym1pdCgpOnRoaXMuc3VibWl0TGltaXROb3RpY2U9ITB9c3VibWl0KCl7aWYoIXRoaXMuc2VsZWN0ZWRYTE1hcHx8IXRoaXMu'@; put 'eGxEYXRhLmxlbmd0aClyZXR1cm47dGhpcy5zdGF0dXM9dWYuU3VibWl0dGluZyx0aGlzLmlzTG9hZGluZz0hMCx0aGlzLmlzTG9hZGluZ0Rlc2M9IlN1Ym1pdHRpbmcgZXh0cmFjdGVkIGRhdGEiO2NvbnN0IGE9W107Zm9yKGNvbnN0IE0gb2YgdGhpcy51cGxvYWRlci5xdWV1ZSlhLnB1c2go'@; put 'e2ZpbGU6TSxmaWxlTmFtZTpNLm5hbWV9KTtjb25zdCBkPU9iamVjdC5rZXlzKHRoaXMueGxEYXRhWzBdKS5qb2luKCIsIikrIlxuIit0aGlzLnhsRGF0YS5zbGljZSgwLHRoaXMubGljZW5jZVN0YXRlLnZhbHVlLnN1Ym1pdF9yb3dzX2xpbWl0KS5tYXAoTT0+T2JqZWN0LnZhbHVlcyhNKS5q'@; put 'b2luKCIsIikpLmpvaW4oIlxuIiksaD1uZXcgQmxvYihbZF0se3R5cGU6ImFwcGxpY2F0aW9uL2NzdiJ9KSxmPXR0ZShoLHRoaXMuZmlsZW5hbWUrIi5jc3YiKTthLnB1c2goe2ZpbGU6ZixmaWxlTmFtZTpmLm5hbWV9KSx0aGlzLnNhc1NlcnZpY2UudXBsb2FkRmlsZSgic2VydmljZXMvZWRp'@; put 'dG9ycy9sb2FkZmlsZSIsYSx7dGFibGU6dGhpcy5zZWxlY3RlZFhMTWFwLnRhcmdldERTfSkudGhlbihNPT57aWYoTS5hZGFwdGVyUmVzcG9uc2Uuc2FzanNBYm9ydCl7Y29uc3QgST1NLmFkYXB0ZXJSZXNwb25zZTt0aGlzLmV2ZW50U2VydmljZS5zaG93QWJvcnRNb2RhbCgiIixJLnNhc2pz'@; put 'QWJvcnRbMF0uTVNHLHtTWVNXQVJOSU5HVEVYVDpJLlNZU1dBUk5JTkdURVhULFNZU0VSUk9SVEVYVDpJLlNZU0VSUk9SVEVYVCxNQUM6SS5zYXNqc0Fib3J0WzBdLk1BQ30pfWVsc2UgTS5hZGFwdGVyUmVzcG9uc2Uuc2FzcGFyYW1zJiZ0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvc3Rh'@; put 'Z2UvIitNLmFkYXB0ZXJSZXNwb25zZS5zYXNwYXJhbXNbMF0uRFNJRCl9KS5jYXRjaChNPT57dGhpcy5ldmVudFNlcnZpY2UuY2F0Y2hSZXNwb25zZUVycm9yKCJmaWxlIHVwbG9hZCIsTS5yZXNwb25zZSl9KS5maW5hbGx5KCgpPT57dGhpcy5zdGF0dXM9dWYuUmVhZHlUb1N1Ym1pdCx0aGlz'@; put 'LmlzTG9hZGluZz0hMSx0aGlzLmlzTG9hZGluZ0Rlc2M9IiJ9KX1leHRyYWN0RGF0YShhKXtjb25zdCBkPVtdO3RoaXMueGxtYXBSdWxlcy5mb3JFYWNoKGg9PntsZXQgZj1oLlhMTUFQX1NIRUVUO2lmKGYuc3RhcnRzV2l0aCgiLyIpKXtjb25zdCBFZT1mLnNwbGl0KCIvIilbMV0sQmU9cGFy'@; put 'c2VJbnQoRWUpLTE7Zj1hLlNoZWV0TmFtZXNbQmVdfWNvbnN0IHY9YS5TaGVldHNbZl0sTT1UdS51dGlscy5zaGVldF90b19qc29uKHYse3JhdzohMCxoZWFkZXI6IkEiLGJsYW5rcm93czohMH0pLEk9bjhlKGguWExNQVBfU1RBUlQsTSksRz0oKGMsbCxhKT0+e2lmKCIiPT09bClyZXR1cm4g'@; put 'YztpZihsLnN0YXJ0c1dpdGgoIkFCU09MVVRFICIpJiYobD1sLnJlcGxhY2UoIkFCU09MVVRFICIsIiIpKSxsLnN0YXJ0c1dpdGgoIlJFTEFUSVZFICIpKXtjb25zdCBkPWF0ZShsKTtpZihkKXtjb25zdHtyb3c6aCxjb2x1bW46Zn09ZCx7cjp2LGM6TX09VHUudXRpbHMuZGVjb2RlX2NlbGwo'@; put 'Yyk7bD1UdS51dGlscy5lbmNvZGVfY2VsbCh7cjp2K2gsYzpNK2Z9KX19aWYobC5zdGFydHNXaXRoKCJNQVRDSCAiKSYmKGw9bjhlKGwsYSkpLCJMQVNURE9XTiI9PT1sKXtjb25zdHtyOmQsYzpofT1UdS51dGlscy5kZWNvZGVfY2VsbChjKSxmPVR1LnV0aWxzLmVuY29kZV9jb2woaCk7bGV0'@; put 'IHY9ZDtmb3IobGV0IE09ZCsxO008YS5sZW5ndGgmJmFbTV1bZl07TSsrKXY9TTtsPWYrKHYrMSl9aWYoIkJMQU5LUk9XIj09PWwpe2NvbnN0e3I6ZH09VHUudXRpbHMuZGVjb2RlX2NlbGwoYyk7bGV0IGg9ZDtmb3IobGV0IEk9ZCsxO0k8YS5sZW5ndGgmJiFFdnQoYVtJXSk7SSsrKWg9STts'@; put 'PU9iamVjdC5rZXlzKGFbaF0pLmZpbHRlcihJPT4iX19yb3dOdW1fXyIhPT1JKS5yZWR1Y2UoKEksRyk9Pkc+ST9HOkksIiIpKyhoKzEpfXJldHVybiBsfSkoSSxoLlhMTUFQX0ZJTklTSCxNKSxyZT1gJHtJfToke0d9YCx1ZT1UdS51dGlscy5kZWNvZGVfcmFuZ2UocmUpLHllPVR1LnV0aWxz'@; put 'LnNoZWV0X3RvX2pzb24odix7cmF3OiEwLHJhbmdlOnJlLGhlYWRlcjoiQSIsYmxhbmtyb3dzOiEwfSk7Zm9yKGxldCBFZT0wO0VlPHllLmxlbmd0aDtFZSsrKXtjb25zdCBCZT15ZVtFZV07Zm9yKGxldCBHZT11ZS5zLmMsc3Q9MDtHZTw9dWUuZS5jO0dlKyssc3QrKyl7Y29uc3QgcHQ9VHUu'@; put 'dXRpbHMuZW5jb2RlX2NvbChHZSk7cHQgaW4gQmUmJmQucHVzaCh7TE9BRF9SRUY6IjAiLFhMTUFQX0lEOmguWExNQVBfSUQsWExNQVBfUkFOR0VfSUQ6aC5YTE1BUF9SQU5HRV9JRCxST1dfTk86RWUrMSxDT0xfTk86c3QrMSxWQUxVRV9UWFQ6QmVbcHRdfSl9fX0pLHRoaXMuc3RhdHVzPXVm'@; put 'LlJlYWR5VG9TdWJtaXQsdGhpcy5pc0xvYWRpbmc9ITEsdGhpcy5pc0xvYWRpbmdEZXNjPSIiLHRoaXMueGxEYXRhPWQsdGhpcy5zZWxlY3RlZFRhYj1Udy5EYXRhfXZpZXdYTE1hcFJ1bGVzKCl7dmFyIGE9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXthLnNlbGVjdGVkWExNYXAmJihhLmlz'@; put 'TG9hZGluZz0hMCxhLmlzTG9hZGluZ0Rlc2M9IkxvYWRpbmcgZXhjZWwgcnVsZXMiLGEuc3RhdHVzPXVmLkZldGNoaW5nUnVsZXMseWllbGQgYS5zYXNTdG9yZVNlcnZpY2UuZ2V0WExNYXBSdWxlcyhhLnNlbGVjdGVkWExNYXAuaWQpLnRoZW4oZD0+e2EueGxtYXBSdWxlcz1kLnhsbWFwcnVs'@; put 'ZXMsYS5zdGF0dXM9dWYuUmVhZHlUb1VwbG9hZH0pLmNhdGNoKGQ9PnthLmxvZ2dlclNlcnZpY2UuZXJyb3IoZCl9KSxhLmlzTG9hZGluZz0hMSxhLmlzTG9hZGluZ0Rlc2M9IiIpfSkoKX1sb2FkKCl7dGhpcy54bG1hcHM9Sm4ueGxtYXBzLHRoaXMueGxtYXBzTG9hZGluZz0hMTtjb25zdCBh'@; put 'PXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLmlkO2lmKGEpe2NvbnN0IGQ9dGhpcy54bG1hcHMuZmluZChoPT5oLmlkPT09YSk7ZCYmKHRoaXMuc2VsZWN0ZWRYTE1hcD1kLHRoaXMudmlld1hMTWFwUnVsZXMoKSl9fW5nT25Jbml0KCl7dGhpcy5saWNlbmNlU2VydmljZS5ob3RfbGljZW5z'@; put 'ZV9rZXkuc3Vic2NyaWJlKGE9Pnt0aGlzLmhvdFRhYmxlTGljZW5zZUtleT1hfSl9bmdBZnRlclZpZXdJbml0KCl7fW5nQWZ0ZXJDb250ZW50SW5pdCgpe0puLmVkaXRvci5zdGFydHVwU2V0P3RoaXMubG9hZCgpOnRoaXMuZXZlbnRTZXJ2aWNlLm9uU3RhcnR1cERhdGFMb2FkZWQuc3Vic2Ny'@; put 'aWJlKCgpPT57dGhpcy5sb2FkKCl9KX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKSgkZShtYyksJGUoYzEpLCRlKFNkKSwkZSh5dSksJGUoTG8pLCRlKEloKSwkZShWbykpfX1zdGF0aWN7dGhpcy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3Rv'@; put 'cnM6W1siYXBwLXhsbWFwIl1dLHZpZXdRdWVyeTpmdW5jdGlvbihkLGgpe2lmKDEmZCYmRmEoQXZ0LDUpLDImZCl7bGV0IGY7eWkoZj1iaSgpKSYmKGguZmlsZVVwbG9hZElucHV0Q29tcExpc3Q9Zil9fSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihkLGgpezImZCYmVHIoImNv'@; put 'bnRlbnQtY29udGFpbmVyIixoLmNvbnRlbnRDb250YWluZXJDbGFzcyl9LGRlY2xzOjQyLHZhcnM6MTYsY29uc3RzOltbInNlYXJjaFhMTWFwVHJlZUlucHV0IiwiIl0sWyJmaWxlVXBsb2FkSW5wdXQiLCIiXSxbImFjdGlvbkJ1dHRvbnMiLCIiXSxbImNsYXNzIiwibXktMTAtbXgtYXV0byB0'@; put 'ZXh0LWNlbnRlciIsNCwibmdJZiJdLFsxLCJzZWFyY2gtbm9kZSJdLFsxLCJ0cmVlLXNlYXJjaC13cmFwcGVyIl0sWyJhcHBTdGVhbEZvY3VzIiwiIiwiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsIkZpbHRlciBieSBJZCIsIm5hbWUiLCJpbnB1dCIsImF1dG9jb21wbGV0ZSIsIm9mZiIs'@; put 'MywibmdNb2RlbENoYW5nZSIsImtleXVwIiwibmdNb2RlbCJdLFsic2hhcGUiLCJzZWFyY2giLDQsIm5nSWYiXSxbInNoYXBlIiwidGltZXMiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWzQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJjb250ZW50LWFyZWEiXSxbImNsYXNzIiwibm8tdGFibGUtc2Vs'@; put 'ZWN0ZWQiLDQsIm5nSWYiXSxbImNsYXNzIiwibG9hZGluZ1NwaW5uZXIiLDQsIm5nSWYiXSxbImFwcERyYWdOZHJvcCIsIiIsImNsYXNzIiwiY2FyZCBoLTEwMCBkLWZsZXggY2xyLWZsZXgtY29sdW1uIiwzLCJmaWxlRHJhZ2dlZE92ZXIiLDQsIm5nSWYiXSxbImFwcEZpbGVEcm9wIiwiIiwx'@; put 'LCJyZWxhdGl2ZSIsMywiZmlsZU92ZXIiLCJmaWxlRHJvcCIsImNsck1vZGFsT3BlbkNoYW5nZSIsInVwbG9hZGVyIiwiY2xyTW9kYWxTaXplIiwiY2xyTW9kYWxTdGF0aWNCYWNrZHJvcCIsImNsck1vZGFsQ2xvc2FibGUiLCJjbHJNb2RhbE9wZW4iXSxbMSwibW9kYWwtdGl0bGUiXSxbMSwi'@; put 'bW9kYWwtYm9keSJdLFsxLCJkcm9wLWFyZWEiXSxbMSwiY2xyLWNvbC1tZC0xMiJdLFsxLCJjbHItcm93IiwiY2FyZC1ibG9jayIsIm10LTE1IiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWJldHdlZW4iXSxbMSwiY2xyLWNvbC1tZC0zIiwiZmlsdGVyQnRuIl0sWzEsImZpbHRlckJ0biIs'@; put 'InctMTAwIl0sWyJmb3IiLCJmaWxlLXVwbG9hZCIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLW91dGxpbmUiLCJwcm9maWxlLWJ1dHRvbnMiLCJ3LTEwMCJdLFsiaGlkZGVuIiwiIiwiaWQiLCJmaWxlLXVwbG9hZCIsInR5cGUiLCJmaWxlIiwiYXBwRmlsZVNlbGVjdCIsIiIsMywiY2hhbmdlIiwi'@; put 'dXBsb2FkZXIiXSxbMywiY2xyTW9kYWxPcGVuQ2hhbmdlIiwiY2xyTW9kYWxPcGVuIl0sWzEsIm0tMCJdLFsxLCJtb2RhbC1mb290ZXIiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1wcmltYXJ5IiwzLCJjbGljayJdLFsxLCJteS0xMC1teC1hdXRvIiwidGV4dC1j'@; put 'ZW50ZXIiXSxbImNsck1lZGl1bSIsIiJdLFsic2hhcGUiLCJzZWFyY2giXSxbInNoYXBlIiwidGltZXMiLDMsImNsaWNrIl0sWzEsImNsci10cmVlbm9kZS1saW5rIiwzLCJjbGljayJdLFsic2hhcGUiLCJmaWxlIl0sWzEsIm5vLXRhYmxlLXNlbGVjdGVkIl0sWyJzcmMiLCIvU0FTSm9iRXhl'@; put 'Y3V0aW9uP19GSUxFPS9QdWJsaWMvYXBwL2RjcGxhY2Vob2xkZXIvc2VydmljZXMvd2ViL2ltYWdlcy9zZWxlY3QtdGFibGUucG5nIiwiYWx0Iiwic2VsZWN0IHRhYmxlIGljb24iLDEsInNlbGVjdC10YWJsZS1pY29uIl0sWyJjbGFzcyIsInRleHQtY2VudGVyIGNvbG9yLWdyYXkgbXQtMTAi'@; put 'LCJjZHMtdGV4dCIsInNlY3Rpb24iLDQsIm5nSWYiXSxbImNkcy10ZXh0Iiwic2VjdGlvbiIsMSwidGV4dC1jZW50ZXIiLCJjb2xvci1ncmF5IiwibXQtMTAiXSxbMSwibG9hZGluZ1NwaW5uZXIiXSxbMSwic3Bpbm5lciJdLFsiYXBwRHJhZ05kcm9wIiwiIiwxLCJjYXJkIiwiaC0xMDAiLCJk'@; put 'LWZsZXgiLCJjbHItZmxleC1jb2x1bW4iLDMsImZpbGVEcmFnZ2VkT3ZlciJdLFsiY2xyVGFiTGluayIsIiIsMywiY2xpY2siXSxbNCwiY2xySWZBY3RpdmUiXSxbNCwibmdUZW1wbGF0ZU91dGxldCJdLFsxLCJjbHItcm93IiwibS0wIiwibWItMTAtaSIsInZpZXdlclRpdGxlIl0sWzEsImQt'@; put 'ZmxleCIsImNsci1jb2wtMTIiLCJjbHItanVzdGlmeS1jb250ZW50LWNlbnRlciIsIm10LTUtaSJdLFsiY2RzLXRleHQiLCJsYWJlbExpbmsiLDEsIm1sLTEwIiwzLCJyb3V0ZXJMaW5rIl0sWzEsImNsci1mbGV4LTEiXSxbImlkIiwiaG90LXRhYmxlIiwzLCJkYXRhIiwic2V0dGluZ3MiXSxb'@; put 'MSwiY2xyLXJvdyIsIm0tMCIsImNsci1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyIl0sWyJjbGFzcyIsImQtZmxleCBjbHItanVzdGlmeS1jb250ZW50LWNlbnRlciBjbHItY29sLTEyIGNsci1jb2wtbGctNCIsNCwibmdJZiJdLFsxLCJkLWZsZXgiLCJjbHItanVzdGlmeS1jb250ZW50LWNlbnRl'@; put 'ciIsImNsci1jb2wtMTIiLCJjbHItY29sLWxnLTQiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1zdWNjZXNzIiwiYnRuLWJsb2NrIiwibXItMCIsMywiY2xpY2siXSxbInNoYXBlIiwidXBsb2FkIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJi'@; put 'dG4tb3V0bGluZS1kYW5nZXIiLCJidG4tYmxvY2siLCJtci0wIiwzLCJjbGljayJdLFsic2hhcGUiLCJ0aW1lcyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihkLGgpe2lmKDEmZCl7Y29uc3QgZj1PbigpO2RlKDAsImFwcC1zaWRlYmFyIiksZ3QoMSxrdnQsMiwwLCJkaXYiLDMpLGRlKDIsImNsci10'@; put 'cmVlIikoMywiY2xyLXRyZWUtbm9kZSIsNCkoNCwiZGl2Iiw1KSg1LCJpbnB1dCIsNiwwKSxwaSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oTSl7cmV0dXJuIHd0KGYpLGdpKGguc2VhcmNoU3RyaW5nLE0pfHwoaC5zZWFyY2hTdHJpbmc9TSksQ3QoTSl9KSxGdCgia2V5dXAiLGZ1bmN0aW9u'@; put 'KCl7cmV0dXJuIHd0KGYpLEN0KGgueGxtYXBMaXN0T25GaWx0ZXIoKSl9KSxoZSgpLGd0KDcsRHZ0LDEsMCwiY2xyLWljb24iLDcpKDgsSXZ0LDEsMCwiY2xyLWljb24iLDgpLGhlKCkoKSxndCg5LFJ2dCw1LDMsIm5nLWNvbnRhaW5lciIsOSksaGUoKSgpLGRlKDEwLCJkaXYiLDEwKSxndCgx'@; put 'MSxQdnQsNCwyLCJkaXYiLDExKSgxMixGdnQsNiwxLCJkaXYiLDEyKSgxMyxCdnQsMjYsMTEsImRpdiIsMTMpLGRlKDE0LCJjbHItbW9kYWwiLDE0KSxGdCgiZmlsZU92ZXIiLGZ1bmN0aW9uKE0pe3JldHVybiB3dChmKSxDdChoLmZpbGVPdmVyQmFzZShNKSl9KSgiZmlsZURyb3AiLGZ1bmN0'@; put 'aW9uKE0pe3JldHVybiB3dChmKSxDdChoLmdldEZpbGVEZXNjKE0sITApKX0pLHBpKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKE0pe3JldHVybiB3dChmKSxnaShoLnNob3dVcGxvYWRNb2RhbCxNKXx8KGguc2hvd1VwbG9hZE1vZGFsPU0pLEN0KE0pfSksZGUoMTUsImgzIiwxNSks'@; put 'T2UoMTYsIlVwbG9hZCBGaWxlIiksaGUoKSxkZSgxNywiZGl2IiwxNikoMTgsImRpdiIsMTcpKDE5LCJzcGFuIiksT2UoMjAsIkRyb3AgZmlsZSBhbnl3aGVyZSB0byB1cGxvYWQhIiksaGUoKSgpLGRlKDIxLCJkaXYiLDE4KSgyMiwiZGl2IiwxOSkoMjMsImRpdiIsMjApKDI0LCJzcGFuIiwy'@; put 'MSkoMjUsImxhYmVsIiwyMiksT2UoMjYsIiBCcm93c2UgIiksaGUoKSgpLGRlKDI3LCJpbnB1dCIsMjMsMSksRnQoImNoYW5nZSIsZnVuY3Rpb24oTSl7cmV0dXJuIHd0KGYpLEN0KGguZ2V0RmlsZURlc2MoTSkpfSksaGUoKSgpKCkoKSgpKCksZGUoMjksImNsci1tb2RhbCIsMjQpLHBpKCJj'@; put 'bHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKE0pe3JldHVybiB3dChmKSxnaShoLnN1Ym1pdExpbWl0Tm90aWNlLE0pfHwoaC5zdWJtaXRMaW1pdE5vdGljZT1NKSxDdChNKX0pLGRlKDMwLCJoMyIsMTUpLE9lKDMxLCJOb3RpY2UiKSxoZSgpLGRlKDMyLCJkaXYiLDE2KSgzMywicCIsMjUp'@; put 'LE9lKDM0KSxoZSgpKCksZGUoMzUsImRpdiIsMjYpKDM2LCJidXR0b24iLDI3KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGYpLEN0KGguc3VibWl0TGltaXROb3RpY2U9ITEpfSksT2UoMzcsIiBDYW5jZWwgIiksaGUoKSxkZSgzOCwiYnV0dG9uIiwyNyksRnQoImNsaWNrIixm'@; put 'dW5jdGlvbigpe3JldHVybiB3dChmKSxoLnN1Ym1pdCgpLEN0KGguc3VibWl0TGltaXROb3RpY2U9ITEpfSksT2UoMzksIiBTdWJtaXQgIiksaGUoKSgpKCkoKSxndCg0MCxadnQsNCwzLCJuZy10ZW1wbGF0ZSIsbnVsbCwyLGdjKX1pZigyJmQpe2NvbnN0IGY9ZGEoNik7ZmUoKSxNZSgibmdJ'@; put 'ZiIsaC54bG1hcHNMb2FkaW5nKSxmZSg0KSxmaSgibmdNb2RlbCIsaC5zZWFyY2hTdHJpbmcpLGZlKDIpLE1lKCJuZ0lmIixmLnZhbHVlLmxlbmd0aDwxKSxmZSgpLE1lKCJuZ0lmIixmLnZhbHVlLmxlbmd0aD4wKSxmZSgpLE1lKCJuZ0Zvck9mIixoLnhsbWFwcyksZmUoMiksTWUoIm5nSWYi'@; put 'LCFoLnNlbGVjdGVkWExNYXApLGZlKCksTWUoIm5nSWYiLGguaXNMb2FkaW5nKSxmZSgpLE1lKCJuZ0lmIiwhaC5pc0xvYWRpbmcmJmguc2VsZWN0ZWRYTE1hcCksZmUoKSxNZSgidXBsb2FkZXIiLGgudXBsb2FkZXIpKCJjbHJNb2RhbFNpemUiLCJ4bCIpKCJjbHJNb2RhbFN0YXRpY0JhY2tk'@; put 'cm9wIiwhMSkoImNsck1vZGFsQ2xvc2FibGUiLCEwKSxmaSgiY2xyTW9kYWxPcGVuIixoLnNob3dVcGxvYWRNb2RhbCksZmUoMTMpLE1lKCJ1cGxvYWRlciIsaC51cGxvYWRlciksZmUoMiksZmkoImNsck1vZGFsT3BlbiIsaC5zdWJtaXRMaW1pdE5vdGljZSksZmUoNSksTHIoIiBEdWUgdG8g'@; put 'Y3VycmVudCBsaWNlbmNlLCBvbmx5ICIsaC5saWNlbmNlU3RhdGUudmFsdWUuc3VibWl0X3Jvd3NfbGltaXQsIiByb3dzIGluIGEgZmlsZSB3aWxsIGJlIHN1Ym1pdHRlZC4gVG8gcmVtb3ZlIHRoZSByZXN0cmljdGlvbiwgY29udGFjdCBzdXBwb3J0QGRhdGFjb250cm9sbGVyLmlvICIpfX0s'@; put 'ZGVwZW5kZW5jaWVzOlskZyxsMSxHbCx0bCxXbyxBaCxQZCxoZyxPbCxydSxZdSxMYixjbyxZMSx2bSxibSx4Nyx5bSxtbSxTNyxSZCxhNCxRcyxiYSxCMSxzRSxLNmUsWDZlLGk0XSxlbmNhcHN1bGF0aW9uOjJ9KX19cmV0dXJuIGN9KSgpO2NvbnN0IFd2dD1be3BhdGg6IiIsY29tcG9uZW50'@; put 'OigoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt9bmdPbkluaXQoKXt9bmdPbkRlc3Ryb3koKXt9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJhcHAteGxtYXAt'@; put 'cm91dGUiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGQsaCl7MSZkJiZXdCgwLCJyb3V0ZXItb3V0bGV0Iil9LGRlcGVuZGVuY2llczpbbmddLGVuY2Fwc3VsYXRpb246Mn0pfX1yZXR1cm4gY30pKCksY2hpbGRy'@; put 'ZW46W3twYXRoOiIiLGNvbXBvbmVudDpyOGV9LHtwYXRoOiI6aWQiLGNvbXBvbmVudDpyOGV9XX1dO2xldCBZdnQ9KCgpPT57Y2xhc3MgY3tzdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKX19c3RhdGlje3RoaXMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9'@; put 'KX1zdGF0aWN7dGhpcy5cdTAyNzVpbmo9QXIoe2ltcG9ydHM6W0JjLmZvckNoaWxkKFd2dCksQmNdfSl9fXJldHVybiBjfSkoKTtFQSgpO2xldCBHdnQ9KCgpPT57Y2xhc3MgY3tzdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKX19c3RhdGlje3RoaXMu'@; put 'XHUwMjc1bW9kPUFpKHt0eXBlOmN9KX1zdGF0aWN7dGhpcy5cdTAyNzVpbmo9QXIoe2ltcG9ydHM6W1o5LFl2dCxrYyxCMCxXOSxMYSxBQSxjZl19KX19cmV0dXJuIGN9KSgpLCR2dD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKCl7fW5nT25Jbml0KCl7fW5nT25EZXN0cm95KCl7fXN0YXRp'@; put 'Y3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpfX1zdGF0aWN7dGhpcy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1siYXBwLW11bHRpLWRhdGFzZXQtcm91dGUiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xzOjEsdmFy'@; put 'czowLHRlbXBsYXRlOmZ1bmN0aW9uKGQsaCl7MSZkJiZXdCgwLCJyb3V0ZXItb3V0bGV0Iil9LGRlcGVuZGVuY2llczpbbmddLGVuY2Fwc3VsYXRpb246Mn0pfX1yZXR1cm4gY30pKCk7Y29uc3Qgc3RlPShjLGwsYSk9PntsLmNsYXNzTGlzdC5hZGQoSm4uaGFuZHNvbnRhYmxlLmRhcmtUYWJs'@; put 'ZUhlYWRlckNsYXNzKX0sS3Z0PVsiY29udGVudEFyZWEiXSxYdnQ9WyJob3RJbnN0YW5jZU1haW4iXSxxdnQ9WyJob3RJbnN0YW5jZVVzZXJEYXRhc2V0Il07ZnVuY3Rpb24gSnZ0KGMsbCl7MSZjJiYoZGUoMCwiZGl2IiwyNiksV3QoMSwiY2xyLXNwaW5uZXIiLDI0KSxoZSgpKX1mdW5jdGlv'@; put 'biBRdnQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJkaXYiLDI3KSgxLCJidXR0b24iLDI4KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KGRhKDQpLmNsaWNrKCkpfSksT2UoMiwiIEJyb3dzZSBmaWxlICIpLGhlKCksZGUoMywiaW5wdXQiLDI5LDEpLEZ0'@; put 'KCJjaGFuZ2UiLGZ1bmN0aW9uKGgpe3JldHVybiB3dChhKSxDdChMZSgpLm9uRmlsZUNoYW5nZShoKSl9KSxoZSgpKCl9aWYoMiZjKXtjb25zdCBhPUxlKCk7ZmUoKSxNZSgiZGlzYWJsZWQiLG51bGwhPT1hLnNlbGVjdGVkRmlsZXx8YS5zdWJtaXR0aW5nQ3N2KX19ZnVuY3Rpb24gZXl0KGMs'@; put 'bCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiZGl2IiwyNykoMSwiYnV0dG9uIiwzMiksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgyKS5vbkRpc2NhcmQoKSl9KSxPZSgyLCIgRGlzY2FyZCAiKSxoZSgpLGRlKDMsImJ1dHRvbiIsMzMpLEZ0KCJjbGljayIs'@; put 'ZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoMikub25TdWJtaXRBbGwoKSl9KSxPZSg0LCIgU3VibWl0IEFsbCAiKSxoZSgpKCl9fWZ1bmN0aW9uIHR5dChjLGwpezEmYyYmV3QoMCwiY2RzLWljb24iLDM4KX1mdW5jdGlvbiBueXQoYyxsKXsxJmMmJld0KDAsImNkcy1pY29uIiwzOSl9'@; put 'ZnVuY3Rpb24gcnl0KGMsbCl7aWYoMSZjJiYoYWkoMCksZ3QoMSx0eXQsMSwwLCJjZHMtaWNvbiIsMzYpKDIsbnl0LDEsMCwiY2RzLWljb24iLDM3KSxzaSgpKSwyJmMpe2NvbnN0IGE9TGUoKS4kaW1wbGljaXQ7ZmUoKSxNZSgibmdJZiIsYS5zdWJtaXRSZXN1bHQuZXJyb3IpLGZlKCksTWUo'@; put 'Im5nSWYiLGEuc3VibWl0UmVzdWx0LnN1Y2Nlc3MpfX1mdW5jdGlvbiBpeXQoYyxsKXsxJmMmJld0KDAsImNkcy1pY29uIiwzOCl9ZnVuY3Rpb24gYXl0KGMsbCl7MSZjJiZXdCgwLCJjZHMtaWNvbiIsNDEpfWZ1bmN0aW9uIHN5dChjLGwpe2lmKDEmYyYmKGFpKDApLGd0KDEsaXl0LDEsMCwi'@; put 'Y2RzLWljb24iLDM2KSgyLGF5dCwxLDAsImNkcy1pY29uIiw0MCksc2koKSksMiZjKXtjb25zdCBhPUxlKDIpLiRpbXBsaWNpdDtmZSgpLE1lKCJuZ0lmIiwhKGEuZGF0YXNvdXJjZS5sZW5ndGgmJmEucGFyc2VSZXN1bHQpKSxmZSgpLE1lKCJuZ0lmIixhLmRhdGFzb3VyY2UubGVuZ3RoJiZh'@; put 'LnBhcnNlUmVzdWx0KX19ZnVuY3Rpb24gb3l0KGMsbCl7MSZjJiZXdCgwLCJjZHMtaWNvbiIsNDEpfWZ1bmN0aW9uIGx5dChjLGwpezEmYyYmV3QoMCwiY2xyLXNwaW5uZXIiLDQzKX1mdW5jdGlvbiBjeXQoYyxsKXtpZigxJmMmJihhaSgwKSxndCgxLG95dCwxLDAsImNkcy1pY29uIiw0MCko'@; put 'MixseXQsMSwwLCJjbHItc3Bpbm5lciIsNDIpLHNpKCkpLDImYyl7Y29uc3QgYT1MZSgyKS4kaW1wbGljaXQ7ZmUoKSxNZSgibmdJZiIsIWEucGFyc2luZ1RhYmxlKSxmZSgpLE1lKCJuZ0lmIixhLnBhcnNpbmdUYWJsZSl9fWZ1bmN0aW9uIHV5dChjLGwpe2lmKDEmYyYmKGFpKDApLGd0KDEs'@; put 'c3l0LDMsMiwibmctY29udGFpbmVyIiw2KSgyLGN5dCwzLDIsIm5nLWNvbnRhaW5lciIsNiksc2koKSksMiZjKXtjb25zdCBhPUxlKCkuJGltcGxpY2l0O2ZlKCksTWUoIm5nSWYiLGEuZGF0YXNvdXJjZSksZmUoKSxNZSgibmdJZiIsIWEuZGF0YXNvdXJjZSl9fWZ1bmN0aW9uIGR5dChjLGwp'@; put 'e2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImNsci10cmVlLW5vZGUiKSgxLCJidXR0b24iLDM0KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7Y29uc3QgaD13dChhKS4kaW1wbGljaXQ7cmV0dXJuIEN0KExlKDIpLm9uUGFyc2VkRGF0YXNldENsaWNrKGgpKX0pLGd0KDIscnl0LDMsMiwibmct'@; put 'Y29udGFpbmVyIiw2KSgzLHV5dCwzLDIsIm5nLWNvbnRhaW5lciIsNiksZGUoNCwic3BhbiIsMzUpLE9lKDUpLGhlKCkoKSgpfWlmKDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtmZSgpLFRyKCJhY3RpdmUiLGEuYWN0aXZlKSxmZSgpLE1lKCJuZ0lmIixhLnN1Ym1pdFJlc3VsdCksZmUoKSxN'@; put 'ZSgibmdJZiIsIWEuc3VibWl0UmVzdWx0KSxmZSgyKSxMcigiICIsYS5saWJkcywiICIpfX1mdW5jdGlvbiBoeXQoYyxsKXtpZigxJmMmJihhaSgwKSxndCgxLGV5dCw1LDAsImRpdiIsNSksZGUoMiwicCIsMzApLE9lKDMsIkZvdW5kIHRhYmxlczoiKSxoZSgpLGRlKDQsImNsci10cmVlIiks'@; put 'Z3QoNSxkeXQsNiw1LCJjbHItdHJlZS1ub2RlIiwzMSksaGUoKSxzaSgpKSwyJmMpe2NvbnN0IGE9TGUoKTtmZSgpLE1lKCJuZ0lmIiwhYS5leGNlbHNTdWJtaXR0ZWQpLGZlKDQpLE1lKCJuZ0Zvck9mIixhLnBhcnNlZERhdGFzZXRzKX19ZnVuY3Rpb24gZnl0KGMsbCl7MSZjJiZXdCgwLCJj'@; put 'ZHMtaWNvbiIsMzgpfWZ1bmN0aW9uIHB5dChjLGwpezEmYyYmV3QoMCwiY2RzLWljb24iLDM5KX1mdW5jdGlvbiBneXQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJjbHItdHJlZS1ub2RlIikoMSwiYnV0dG9uIiw0NSksRnQoImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IGg9d3Qo'@; put 'YSkuJGltcGxpY2l0O3JldHVybiBDdChMZSgyKS5vblN1Ym1pdHRlZENzdkRhdGFzZXRDbGljayhoKSl9KSxndCgyLGZ5dCwxLDAsImNkcy1pY29uIiwzNikoMyxweXQsMSwwLCJjZHMtaWNvbiIsMzcpLFd0KDQsImNkcy1pY29uIiw0MSksT2UoNSksaGUoKSgpfWlmKDImYyl7Y29uc3QgYT1s'@; put 'LiRpbXBsaWNpdDtmZSgpLFRyKCJhY3RpdmUiLGEuYWN0aXZlKSxmZSgpLE1lKCJuZ0lmIixhLmVycm9yKSxmZSgpLE1lKCJuZ0lmIixhLnN1Y2Nlc3MpLGZlKDIpLExyKCIgIixhLmxpYmRzLCIgIil9fWZ1bmN0aW9uIG15dChjLGwpe2lmKDEmYyYmKGFpKDApLGRlKDEsInAiLDQ0KSxPZSgy'@; put 'LCJTdWJtaXR0ZWQgdGFibGVzOiIpLGhlKCksZGUoMywiY2xyLXRyZWUiKSxndCg0LGd5dCw2LDUsImNsci10cmVlLW5vZGUiLDMxKSxoZSgpLHNpKCkpLDImYyl7Y29uc3QgYT1MZSgpO2ZlKDQpLE1lKCJuZ0Zvck9mIixhLnN1Ym1pdHRlZENzdkRhdGFzZXRzKX19ZnVuY3Rpb24gdnl0KGMs'@; put 'bCl7MSZjJiYoZGUoMCwiZGl2Iiw0NiksV3QoMSwiY2xyLWljb24iLDQ3KSxkZSgyLCJwIiw0OCksT2UoMywiIFBsZWFzZSB1cGxvYWQgYSBmaWxlICIpLGhlKCkoKSl9ZnVuY3Rpb24geXl0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7YWkoMCksZGUoMSwiZGl2Iiw0OSkoMiwiZGl2Iiw1'@; put 'MCkoMywicCIsNTEpLE9lKDQsIiBTZWxlY3RlZCBmaWxlOiAiKSxkZSg1LCJzdHJvbmciKSxPZSg2KSxoZSgpLGRlKDcsImNsci10b29sdGlwIikoOCwiY2RzLWljb24iLDUyKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKDIpLm9uRGlzY2FyZEZpbGUoKSl9KSxo'@; put 'ZSgpLGRlKDksImNsci10b29sdGlwLWNvbnRlbnQiKSxPZSgxMCwiIERpc2NhcmQgdGhlIGZpbGUgIiksaGUoKSgpKCksZGUoMTEsInAiLDUzKSxPZSgxMiwiIEZpbGUgc2l6ZTogIiksZGUoMTMsInN0cm9uZyIpLE9lKDE0KSxoZSgpKCksZGUoMTUsInAiLDU0KSxPZSgxNiwiIFBhc3RlIG9y'@; put 'IHR5cGUgdGhlIGxpc3Qgb2YgZGF0YXNldHMgdG8gdXBsb2FkOiAiKSxoZSgpLGRlKDE3LCJjbHItY29udHJvbC1oZWxwZXIiLDU1KSxPZSgxOCwiRWFjaCByb3cgaXMgb25lIGRhdGFzZXQuIFdlIHdpbGwgYXV0b21hdGljYWxseSBkZXRlY3QgdGFibGVzIGJ5IHRoZSBzaGVldG5hbWUgYW5k'@; put 'IHBvcHVsYXRlIGlmIGFueS4iKSxoZSgpLFd0KDE5LCJob3QtdGFibGUiLDU2LDIpLGRlKDIxLCJkaXYiLDU3KSgyMiwiYnV0dG9uIiw1OCksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgyKS5vblN0YXJ0UGFyc2luZ0ZpbGUoKSl9KSxPZSgyMywiIENvbnRpbnVl'@; put 'ICIpLGhlKCkoKSgpKCksc2koKX1pZigyJmMpe2NvbnN0IGE9TGUoMik7ZmUoNiksU3IoYS5zZWxlY3RlZEZpbGUubmFtZSksZmUoOCksTHIoIiIsYS5zZWxlY3RlZEZpbGUuc2l6ZU1CLCIgTUIiKSxmZSg1KSxNZSgic2V0dGluZ3MiLGEuaG90VXNlckRhdGFzZXRzU2V0dGluZ3MpLGZlKDMp'@; put 'LE1lKCJkaXNhYmxlZCIsIWEubWF0Y2hlZERhdGFzZXRzLmxlbmd0aCkoImNsckxvYWRpbmciLGEudXBsb2FkTG9hZGluZyl9fWZ1bmN0aW9uIGJ5dChjLGwpe2lmKDEmYyYmKGFpKDApLFd0KDEsImNsci1pY29uIiw1OSksZGUoMiwicCIsNDgpLE9lKDMpLGhlKCksc2koKSksMiZjKXtjb25z'@; put 'dCBhPUxlKDQpO2ZlKDMpLExyKCIgIixhLmZpbGVMb2FkaW5nU3RhdGUsIi4uLiAiKX19ZnVuY3Rpb24gX3l0KGMsbCl7MSZjJiYoYWkoMCksV3QoMSwiY2xyLWljb24iLDYwKSxkZSgyLCJwIiw0OCksT2UoMywiIFBsZWFzZSBzZWxlY3QgYSBkYXRhc2V0IG9uIHRoZSBsZWZ0IHRvIHJldmll'@; put 'dyB0aGUgZGF0YSAiKSxoZSgpLHNpKCkpfWZ1bmN0aW9uIHd5dChjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIsNDYpLGd0KDEsYnl0LDQsMSwibmctY29udGFpbmVyIiw2KSgyLF95dCw0LDAsIm5nLWNvbnRhaW5lciIsNiksaGUoKSksMiZjKXtjb25zdCBhPUxlKDMpO2ZlKCksTWUoIm5nSWYi'@; put 'LGEuZmlsZUxvYWRpbmdTdGF0ZSE9PWEuRmlsZUxvYWRpbmdTdGF0ZS5wYXJzZWQpLGZlKCksTWUoIm5nSWYiLGEuZmlsZUxvYWRpbmdTdGF0ZT09PWEuRmlsZUxvYWRpbmdTdGF0ZS5wYXJzZWQpfX1mdW5jdGlvbiBDeXQoYyxsKXsxJmMmJihkZSgwLCJzcGFuIiw3NykoMSwic3Ryb25nIiks'@; put 'T2UoMiwiU1VDQ0VTUyIpLGhlKCkoKSl9ZnVuY3Rpb24gU3l0KGMsbCl7MSZjJiYoZGUoMCwic3BhbiIsNzgpKDEsInN0cm9uZyIpLE9lKDIsIkVSUk9SIiksaGUoKSgpKX1mdW5jdGlvbiBNeXQoYyxsKXsxJmMmJihkZSgwLCJwIiw2NSksT2UoMSwiIEVycm9yIGRldGFpbHM6ICIpLGhlKCkp'@; put 'fWZ1bmN0aW9uIHh5dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImJ1dHRvbiIsNzkpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKDUpO3JldHVybiBDdChoLnJlU3VibWl0VGFibGUoaC5hY3RpdmVQYXJzZWREYXRhc2V0KSl9KSxPZSgxLCIgUmVzdWJt'@; put 'aXQgIiksaGUoKX0yJmMmJk1lKCJjbHJMb2FkaW5nIixMZSg1KS5zdWJtaXRMb2FkaW5nKX1mdW5jdGlvbiBFeXQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJkaXYiLDcxKSgxLCJkaXYiKSgyLCJwIiw2NCksT2UoMywiIFN1Ym1pdCBTdGF0dXM6ICIpLGd0KDQsQ3l0LDMsMCwi'@; put 'c3BhbiIsNzIpKDUsU3l0LDMsMCwic3BhbiIsNzMpLGhlKCksZ3QoNixNeXQsMiwwLCJwIiw3NCksaGUoKSxkZSg3LCJkaXYiKSxndCg4LHh5dCwyLDEsImJ1dHRvbiIsNzUpLGRlKDksImJ1dHRvbiIsNzYpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKDQpO3JldHVy'@; put 'biBDdChoLmRvd25sb2FkRmlsZShoLmFjdGl2ZVBhcnNlZERhdGFzZXQuc3VibWl0UmVzdWx0LmxvZ3x8aC5hY3RpdmVQYXJzZWREYXRhc2V0LnN1Ym1pdFJlc3VsdC5zdWNjZXNzfHxoLmFjdGl2ZVBhcnNlZERhdGFzZXQuc3VibWl0UmVzdWx0LmVycm9yKSl9KSxPZSgxMCwiIERvd25sb2Fk'@; put 'IGxvZyAiKSxoZSgpKCkoKX1pZigyJmMpe2NvbnN0IGE9TGUoNCk7ZmUoNCksTWUoIm5nSWYiLG51bGw9PWEuYWN0aXZlUGFyc2VkRGF0YXNldC5zdWJtaXRSZXN1bHQ/bnVsbDphLmFjdGl2ZVBhcnNlZERhdGFzZXQuc3VibWl0UmVzdWx0LnN1Y2Nlc3MpLGZlKCksTWUoIm5nSWYiLG51bGw9'@; put 'PWEuYWN0aXZlUGFyc2VkRGF0YXNldC5zdWJtaXRSZXN1bHQ/bnVsbDphLmFjdGl2ZVBhcnNlZERhdGFzZXQuc3VibWl0UmVzdWx0LmVycm9yKSxmZSgpLE1lKCJuZ0lmIixudWxsPT1hLmFjdGl2ZVBhcnNlZERhdGFzZXQuc3VibWl0UmVzdWx0P251bGw6YS5hY3RpdmVQYXJzZWREYXRhc2V0'@; put 'LnN1Ym1pdFJlc3VsdC5lcnJvciksZmUoMiksTWUoIm5nSWYiLCFhLnN1Ym1pdHRpbmdDc3YmJihudWxsPT1hLmFjdGl2ZVBhcnNlZERhdGFzZXQuc3VibWl0UmVzdWx0P251bGw6YS5hY3RpdmVQYXJzZWREYXRhc2V0LnN1Ym1pdFJlc3VsdC5lcnJvcikpfX1mdW5jdGlvbiBUeXQoYyxsKXtp'@; put 'ZigxJmMmJihkZSgwLCJkaXYiLDgwKSgxLCJkaXYiLDgxKSxPZSgyKSxRbygzLCJqc29uIiksaGUoKSgpKSwyJmMpe2NvbnN0IGE9TGUoNCk7ZmUoMiksTHIoIiAiLEFjKDMsMSxudWxsPT1hLmFjdGl2ZVBhcnNlZERhdGFzZXQuc3VibWl0UmVzdWx0P251bGw6YS5hY3RpdmVQYXJzZWREYXRh'@; put 'c2V0LnN1Ym1pdFJlc3VsdC5lcnJvciksIiAiKX19ZnVuY3Rpb24gQXl0KGMsbCl7aWYoMSZjJiYoYWkoMCksZGUoMSwic3Ryb25nIiksT2UoMiksaGUoKSxzaSgpKSwyJmMpe2NvbnN0IGE9TGUoNCk7ZmUoMiksQnUoJyInLG51bGw9PWEuYWN0aXZlUGFyc2VkRGF0YXNldC5wYXJzZVJlc3Vs'@; put 'dC5yYW5nZVNoZWV0UmVzP251bGw6YS5hY3RpdmVQYXJzZWREYXRhc2V0LnBhcnNlUmVzdWx0LnJhbmdlU2hlZXRSZXMuc2hlZXROYW1lLCciIScsbnVsbD09YS5hY3RpdmVQYXJzZWREYXRhc2V0LnBhcnNlUmVzdWx0LnJhbmdlU2hlZXRSZXM/bnVsbDphLmFjdGl2ZVBhcnNlZERhdGFzZXQu'@; put 'cGFyc2VSZXN1bHQucmFuZ2VTaGVldFJlcy5yYW5nZUFkZHJlc3MsIiIpfX1mdW5jdGlvbiBreXQoYyxsKXsxJmMmJihkZSgwLCJzdHJvbmciKSxPZSgxLCJObyBkYXRhIGZvdW5kIiksaGUoKSl9ZnVuY3Rpb24gRHl0KGMsbCl7MSZjJiYoZGUoMCwic3BhbiIsODMpKDEsInN0cm9uZyIpLE9l'@; put 'KDIsIlNlYXJjaGluZyBmb3IgdGhlIGRhdGEuLi4iKSxoZSgpLFd0KDMsImNsci1zcGlubmVyIiw4NCksaGUoKSl9ZnVuY3Rpb24gSXl0KGMsbCl7aWYoMSZjJiYoYWkoMCksZ3QoMSxreXQsMiwwLCJzdHJvbmciLDYpKDIsRHl0LDQsMCwic3BhbiIsODIpLHNpKCkpLDImYyl7Y29uc3QgYT1M'@; put 'ZSg0KTtmZSgpLE1lKCJuZ0lmIiwhYS5hY3RpdmVQYXJzZWREYXRhc2V0LnBhcnNpbmdUYWJsZSksZmUoKSxNZSgibmdJZiIsYS5hY3RpdmVQYXJzZWREYXRhc2V0LnBhcnNpbmdUYWJsZSl9fWZ1bmN0aW9uIFJ5dChjLGwpezEmYyYmKGRlKDAsImRpdiIsODUpLFd0KDEsImNsci1zcGlubmVy'@; put 'Iiw4NiksaGUoKSl9ZnVuY3Rpb24gTHl0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7YWkoMCksZ3QoMSxFeXQsMTEsNCwiZGl2Iiw2MSkoMixUeXQsNCwzLCJkaXYiLDYyKSxkZSgzLCJkaXYiLDYzKSg0LCJkaXYiKSg1LCJwIiw2NCksT2UoNiwiIEZvdW5kIGluIHJhbmdlOiAiKSxndCg3'@; put 'LEF5dCwzLDIsIm5nLWNvbnRhaW5lciIsNikoOCxJeXQsMywyLCJuZy1jb250YWluZXIiLDYpLGhlKCksZGUoOSwicCIsNjUpLE9lKDEwLCIgRGF0YXNldDogIiksZGUoMTEsInN0cm9uZyIpKDEyLCJjbHItdG9vbHRpcCIpKDEzLCJhIiw2NiksT2UoMTQpLGhlKCksZGUoMTUsImNsci10b29s'@; put 'dGlwLWNvbnRlbnQiLDY3KSxPZSgxNiwiIENsaWNrIHRvIGVkaXQgdGhlIHRhYmxlICIpLGhlKCkoKSgpKCkoKSxkZSgxNywiZGl2IikoMTgsImNsci10b2dnbGUtd3JhcHBlciIpKDE5LCJpbnB1dCIsNjgpLHBpKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihoKXt3dChhKTtjb25zdCBmPUxl'@; put 'KDMpO3JldHVybiBnaShmLmFjdGl2ZVBhcnNlZERhdGFzZXQuaW5jbHVkZUluU3VibWlzc2lvbixoKXx8KGYuYWN0aXZlUGFyc2VkRGF0YXNldC5pbmNsdWRlSW5TdWJtaXNzaW9uPWgpLEN0KGgpfSksaGUoKSxkZSgyMCwibGFiZWwiKSxPZSgyMSwiSW5jbHVkZSBpbiBzdWJtaXNzaW9uIiks'@; put 'aGUoKSgpKCkoKSxndCgyMixSeXQsMiwwLCJkaXYiLDY5KSxXdCgyMywiaG90LXRhYmxlIiw3MCwzKSxzaSgpfWlmKDImYyl7Y29uc3QgYT1MZSgzKTtmZSgpLE1lKCJuZ0lmIixhLmFjdGl2ZVBhcnNlZERhdGFzZXQuc3VibWl0UmVzdWx0KSxmZSgpLE1lKCJuZ0lmIixudWxsPT1hLmFjdGl2'@; put 'ZVBhcnNlZERhdGFzZXQuc3VibWl0UmVzdWx0P251bGw6YS5hY3RpdmVQYXJzZWREYXRhc2V0LnN1Ym1pdFJlc3VsdC5lcnJvciksZmUoNSksTWUoIm5nSWYiLGEuYWN0aXZlUGFyc2VkRGF0YXNldC5wYXJzZVJlc3VsdCksZmUoKSxNZSgibmdJZiIsIWEuYWN0aXZlUGFyc2VkRGF0YXNldC5w'@; put 'YXJzZVJlc3VsdCksZmUoNSksTWUoInJvdXRlckxpbmsiLCIvZWRpdG9yLyIrYS5hY3RpdmVQYXJzZWREYXRhc2V0LmxpYmRzKSxmZSgpLFNyKGEuYWN0aXZlUGFyc2VkRGF0YXNldC5saWJkcyksZmUoKSxNZSgiY2xyUG9zaXRpb24iLCJ0b3AtcmlnaHQiKSgiY2xyU2l6ZSIsInNtIiksZmUo'@; put 'NCksZmkoIm5nTW9kZWwiLGEuYWN0aXZlUGFyc2VkRGF0YXNldC5pbmNsdWRlSW5TdWJtaXNzaW9uKSxNZSgiZGlzYWJsZWQiLCEoYS5hY3RpdmVQYXJzZWREYXRhc2V0LmRhdGFzb3VyY2UmJmEuYWN0aXZlUGFyc2VkRGF0YXNldC5wYXJzZVJlc3VsdCkpLGZlKDMpLE1lKCJuZ0lmIixhLmlz'@; put 'SG90SGlkZGVuKSxmZSgpLE1lKCJzZXR0aW5ncyIsYS5ob3RNYWluVGFibGVTZXR0aW5ncyl9fWZ1bmN0aW9uIE95dChjLGwpe2lmKDEmYyYmKGFpKDApLGd0KDEsd3l0LDMsMiwiZGl2IiwxMSkoMixMeXQsMjUsMTIsIm5nLWNvbnRhaW5lciIsNiksc2koKSksMiZjKXtjb25zdCBhPUxlKDIp'@; put 'O2ZlKCksTWUoIm5nSWYiLCFhLmFjdGl2ZVBhcnNlZERhdGFzZXQpLGZlKCksTWUoIm5nSWYiLGEuYWN0aXZlUGFyc2VkRGF0YXNldCl9fWZ1bmN0aW9uIFB5dChjLGwpezEmYyYmKGRlKDAsImRpdiIsNDYpLFd0KDEsImNsci1pY29uIiw2MCksZGUoMiwicCIsNDgpLE9lKDMsIiBQbGVhc2Ug'@; put 'c2VsZWN0IGEgZGF0YXNldCBvbiB0aGUgbGVmdCB0byByZXZpZXcgdGhlIHN1Ym1pdCByZXN1bHRzICIpLGhlKCkoKSl9ZnVuY3Rpb24gRnl0KGMsbCl7aWYoMSZjJiYoYWkoMCksZ3QoMSxQeXQsNCwwLCJkaXYiLDExKSxzaSgpKSwyJmMpe2NvbnN0IGE9TGUoMik7ZmUoKSxNZSgibmdJZiIs'@; put 'IWEuYWN0aXZlU3VibWl0dGVkQ3N2RGF0YXNldCl9fWZ1bmN0aW9uIEh5dChjLGwpezEmYyYmKGRlKDAsInNwYW4iLDc3KSgxLCJzdHJvbmciKSxPZSgyLCJTVUNDRVNTIiksaGUoKSgpKX1mdW5jdGlvbiBOeXQoYyxsKXsxJmMmJihkZSgwLCJzcGFuIiw3OCkoMSwic3Ryb25nIiksT2UoMiwi'@; put 'RVJST1IiKSxoZSgpKCkpfWZ1bmN0aW9uIFZ5dChjLGwpezEmYyYmKGRlKDAsInAiLDY1KSxPZSgxLCIgRXJyb3IgZGV0YWlsczogIiksaGUoKSl9ZnVuY3Rpb24gQnl0KGMsbCl7aWYoMSZjJiYoZGUoMCwiZGl2Iiw4MCkoMSwiZGl2Iiw4MSksT2UoMiksUW8oMywianNvbiIpLGhlKCkoKSks'@; put 'MiZjKXtjb25zdCBhPUxlKDMpO2ZlKDIpLExyKCIgIixBYygzLDEsYS5hY3RpdmVTdWJtaXR0ZWRDc3ZEYXRhc2V0LmVycm9yKSwiICIpfX1mdW5jdGlvbiBqeXQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTthaSgwKSxkZSgxLCJkaXYiLDg3KSgyLCJkaXYiKSgzLCJwIiw2NCksT2UoNCwi'@; put 'IE1hdGNoZWQgd2l0aCBkYXRhc2V0OiAiKSxkZSg1LCJzdHJvbmciKSg2LCJjbHItdG9vbHRpcCIpKDcsImEiLDY2KSxPZSg4KSxoZSgpLGRlKDksImNsci10b29sdGlwLWNvbnRlbnQiLDY3KSxPZSgxMCwiIENsaWNrIHRvIGVkaXQgdGhlIHRhYmxlICIpLGhlKCkoKSgpKCksZGUoMTEsInAi'@; put 'LDY0KSxPZSgxMiwiIFN0YXR1czogIiksZ3QoMTMsSHl0LDMsMCwic3BhbiIsNzIpKDE0LE55dCwzLDAsInNwYW4iLDczKSxoZSgpLGd0KDE1LFZ5dCwyLDAsInAiLDc0KSxoZSgpLGRlKDE2LCJkaXYiKSgxNywiYnV0dG9uIiw3NiksRnQoImNsaWNrIixmdW5jdGlvbigpe3d0KGEpO2NvbnN0'@; put 'IGg9TGUoMik7cmV0dXJuIEN0KGguZG93bmxvYWRGaWxlKGguYWN0aXZlU3VibWl0dGVkQ3N2RGF0YXNldC5zdWNjZXNzfHxoLmFjdGl2ZVN1Ym1pdHRlZENzdkRhdGFzZXQuZXJyb3IpKX0pLE9lKDE4LCIgRG93bmxvYWQgbG9nICIpLGhlKCkoKSgpLGd0KDE5LEJ5dCw0LDMsImRpdiIsNjIp'@; put 'LHNpKCl9aWYoMiZjKXtjb25zdCBhPUxlKDIpO2ZlKDcpLE1lKCJyb3V0ZXJMaW5rIiwiL2VkaXRvci8iK2EuYWN0aXZlU3VibWl0dGVkQ3N2RGF0YXNldC5saWJkcyksZmUoKSxTcihhLmFjdGl2ZVN1Ym1pdHRlZENzdkRhdGFzZXQubGliZHMpLGZlKCksTWUoImNsclBvc2l0aW9uIiwidG9w'@; put 'LXJpZ2h0IikoImNsclNpemUiLCJzbSIpLGZlKDQpLE1lKCJuZ0lmIixhLmFjdGl2ZVN1Ym1pdHRlZENzdkRhdGFzZXQuc3VjY2VzcyksZmUoKSxNZSgibmdJZiIsYS5hY3RpdmVTdWJtaXR0ZWRDc3ZEYXRhc2V0LmVycm9yKSxmZSgpLE1lKCJuZ0lmIixhLmFjdGl2ZVN1Ym1pdHRlZENzdkRh'@; put 'dGFzZXQuZXJyb3IpLGZlKDQpLE1lKCJuZ0lmIixhLmFjdGl2ZVN1Ym1pdHRlZENzdkRhdGFzZXQuZXJyb3IpfX1mdW5jdGlvbiB6eXQoYyxsKXtpZigxJmMmJihhaSgwKSxndCgxLHl5dCwyNCw1LCJuZy1jb250YWluZXIiLDYpKDIsT3l0LDMsMiwibmctY29udGFpbmVyIiw2KSgzLEZ5dCwy'@; put 'LDEsIm5nLWNvbnRhaW5lciIsNikoNCxqeXQsMjAsOCwibmctY29udGFpbmVyIiw2KSxzaSgpKSwyJmMpe2NvbnN0IGE9TGUoKTtmZSgpLE1lKCJuZ0lmIiwhYS5wYXJzZWREYXRhc2V0cy5sZW5ndGgmJm51bGwhPT1hLnNlbGVjdGVkRmlsZSksZmUoKSxNZSgibmdJZiIsYS5wYXJzZWREYXRh'@; put 'c2V0cy5sZW5ndGgmJiFhLnN1Ym1pdHRlZENzdkRhdGFzZXRzLmxlbmd0aCksZmUoKSxNZSgibmdJZiIsYS5zdWJtaXR0ZWRDc3ZEYXRhc2V0cy5sZW5ndGgpLGZlKCksTWUoIm5nSWYiLGEuYWN0aXZlU3VibWl0dGVkQ3N2RGF0YXNldCl9fWZ1bmN0aW9uIFV5dChjLGwpe2lmKDEmYyYmKGRl'@; put 'KDAsInAiLDg4KSxPZSgxKSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoKTtmZSgpLExyKCIgRHVlIHRvIGN1cnJlbnQgbGljZW5jZSwgb25seSAiLGEubGljZW5jZVN0YXRlLnZhbHVlLnN1Ym1pdF9yb3dzX2xpbWl0LCIgcm93cyBpbiBlYWNoIGZpbGUgd2lsbCBiZSBzdWJtaXR0ZWQuIFRvIHJl'@; put 'bW92ZSB0aGUgcmVzdHJpY3Rpb24sIGNvbnRhY3Qgc3VwcG9ydEBkYXRhY29udHJvbGxlci5pby4gIil9fXZhciBBdz1mdW5jdGlvbihjKXtyZXR1cm4gYy5yZWFkaW5nPSJSZWFkaW5nIHRoZSBmaWxlIixjLnBhcnNpbmc9IlNlYXJjaGluZyBmb3IgdGhlIGRhdGEgaW4gdGhlIGZpbGUiLGMu'@; put 'cGFyc2VkPSJTZWFyY2hpbmcgZm9yIHRoZSBkYXRhIGZpbmlzaGVkIixjLm5vdFNlbGVjdGVkPSJGaWxlIG5vdCBzZWxlY3RlZCIsY30oQXd8fHt9KTtjb25zdCBaeXQ9W3twYXRoOiIiLGNvbXBvbmVudDokdnQsY2hpbGRyZW46W3twYXRoOiIiLGNvbXBvbmVudDooKCk9PntjbGFzcyBje2lu'@; put 'aXRpYWxpemVIb3RTZXR0aW5ncygpe3RoaXMuaG90TWFpblRhYmxlU2V0dGluZ3M9e2NsYXNzTmFtZTpbImh0RGFyayJdLGxpY2Vuc2VLZXk6dGhpcy5ob3RUYWJsZUxpY2Vuc2VLZXksbXVsdGlDb2x1bW5Tb3J0aW5nOiEwLHZpZXdwb3J0Um93UmVuZGVyaW5nT2Zmc2V0OjUwLG1hbnVhbENv'@; put 'bHVtblJlc2l6ZTohMCxhdXRvQ29sdW1uU2l6ZTohMCxmaWx0ZXJzOiEwLHN0cmV0Y2hIOiJhbGwiLGFmdGVyR2V0Q29sSGVhZGVyOnN0ZSxtb2RpZnlDb2xXaWR0aDp0aGlzLm1heFdpZHRoQ2hla2VyfTtjb25zdHtkYXRhOmEsLi4uZH09dGhpcy5ob3RVc2VyRGF0YXNldHM7dGhpcy5ob3RV'@; put 'c2VyRGF0YXNldHNTZXR0aW5ncz17Li4uZCxsaWNlbnNlS2V5OnRoaXMuaG90VGFibGVMaWNlbnNlS2V5fX1tYXhXaWR0aENoZWtlcihhLGQpe3JldHVybiBhPjIwMD8yMDA6YX1jb25zdHJ1Y3RvcihhLGQsaCxmLHYsTSxJKXt0aGlzLmV2ZW50U2VydmljZT1hLHRoaXMubGljZW5jZVNlcnZp'@; put 'Y2U9ZCx0aGlzLmhlbHBlclNlcnZpY2U9aCx0aGlzLnNhc1N0b3JlU2VydmljZT1mLHRoaXMuc3ByZWFkc2hlZXRTZXJ2aWNlPXYsdGhpcy5zYXNTZXJ2aWNlPU0sdGhpcy5jZHI9SSx0aGlzLmNvbnRlbnRDb250YWluZXJDbGFzcz0hMCx0aGlzLmxpY2VuY2VTdGF0ZT10aGlzLmxpY2VuY2VT'@; put 'ZXJ2aWNlLmxpY2VuY2VTdGF0ZSx0aGlzLkluZmluaXR5PTEvMCx0aGlzLmZpbGVMb2FkaW5nU3RhdGU9QXcubm90U2VsZWN0ZWQsdGhpcy5GaWxlTG9hZGluZ1N0YXRlPUF3LHRoaXMuaG90VGFibGVMaWNlbnNlS2V5PXZvaWQgMCx0aGlzLmhvdFRhYmxlTWF4Um93cz10aGlzLmxpY2VuY2VT'@; put 'dGF0ZS52YWx1ZS52aWV3ZXJfcm93c19hbGxvd2VkfHwxLzAsdGhpcy5jc3ZGaWxlcz1bXSx0aGlzLmNzdlN1Ym1pdHRpbmc9ITEsdGhpcy5hdXRvRGV0ZWN0aW5nQ29sdW1ucz0hMSx0aGlzLnNlbGVjdGVkRmlsZT1udWxsLHRoaXMucGFyc2VkRGF0YXNldHM9W10sdGhpcy5zdWJtaXR0ZWRD'@; put 'c3ZEYXRhc2V0cz1bXSx0aGlzLmRhdGFzZXRzTG9hZGluZz0hMSx0aGlzLnVwbG9hZExvYWRpbmc9ITEsdGhpcy5zdWJtaXRMb2FkaW5nPSExLHRoaXMubWF0Y2hlZERhdGFzZXRzPVtdLHRoaXMuc2hlZXROYW1lcz1bXSx0aGlzLnVzZXJJbnB1dERhdGFzZXRzPSIiLHRoaXMubGlic0FuZFRh'@; put 'Ymxlcz17fSx0aGlzLmhvdE1haW5UYWJsZVNldHRpbmdzPXt9LHRoaXMuaG90VXNlckRhdGFzZXRzU2V0dGluZ3M9e30sdGhpcy5zaG93U3VibWl0UmVhc29uTW9kYWw9ITEsdGhpcy5zdWJtaXRSZWFzb25NZXNzYWdlPSIiLHRoaXMuaG90VXNlckRhdGFzZXRzPXtjb2xIZWFkZXJzOlsiTGli'@; put 'cmFyeSIsIlRhYmxlIl0sZGF0YTpbWyIiLCIiXSxbIiIsIiJdLFsiIiwiIl0sWyIiLCIiXSxbIiIsIiJdLFsiIiwiIl0sWyIiLCIiXSxbIiIsIiJdLFsiIiwiIl0sWyIiLCIiXSxbIiIsIiJdLFsiIiwiIl1dLGNvbHVtbnM6W3t0eXBlOiJhdXRvY29tcGxldGUiLGZpbHRlcjohMSxzb3VyY2U6'@; put 'W119LHt0eXBlOiJhdXRvY29tcGxldGUiLGZpbHRlcjohMSxzb3VyY2U6W119XSx3aWR0aDoiMTAwJSIsaGVpZ2h0OiIzMDVweCIsY2xhc3NOYW1lOlsiaHREYXJrIl0sY29udGV4dE1lbnU6e2l0ZW1zOntyb3dfYWJvdmU6e25hbWU6Ikluc2VydCBSb3cgYWJvdmUifSxyb3dfYmVsb3c6e25h'@; put 'bWU6Ikluc2VydCBSb3cgYmVsb3cifX19LG1hbnVhbFJvd01vdmU6ITAsY29sdW1uU29ydGluZzohMCxhZnRlckdldENvbEhlYWRlcjpzdGUsc3RyZXRjaEg6ImFsbCJ9LHRoaXMuYWZ0ZXJHZXRDb2xIZWFkZXI9c3RlfW5nT25Jbml0KCl7dGhpcy5saWNlbmNlU2VydmljZS5ob3RfbGljZW5z'@; put 'ZV9rZXkuc3Vic2NyaWJlKGE9Pnt0aGlzLmhvdFRhYmxlTGljZW5zZUtleT1hLHRoaXMuaW5pdGlhbGl6ZUhvdFNldHRpbmdzKCl9KSx0aGlzLmluaXRpYWxpemVIb3RTZXR0aW5ncygpfW5nQWZ0ZXJWaWV3SW5pdCgpe3NldFRpbWVvdXQoKCk9Pnt0aGlzLmhvdFRhYmxlVXNlckRhdGFzZXRD'@; put 'b21wb25lbnQmJiF0aGlzLmhvdEluc3RhbmNlVXNlckRhdGFzZXQmJnRoaXMuaW5pdFVzZXJJbnB1dEhvdCgpLHRoaXMuaG90VGFibGVNYWluQ29tcG9uZW50JiYhdGhpcy5ob3RJbnN0YW5jZSYmdGhpcy5pbml0SG90KCl9LDUwKX1uZ0FmdGVyQ29udGVudEluaXQoKXtKbi5lZGl0b3Iuc3Rh'@; put 'cnR1cFNldD90aGlzLmdldEZyb21HbG9iYWxzKCk6dGhpcy5ldmVudFNlcnZpY2Uub25TdGFydHVwRGF0YUxvYWRlZC5zdWJzY3JpYmUoKCk9Pnt0aGlzLmdldEZyb21HbG9iYWxzKCl9KX1nZXRGcm9tR2xvYmFscygpe3RoaXMubGlic0FuZFRhYmxlcz1Kbi5lZGl0b3IubGlic0FuZFRhYmxl'@; put 'cztjb25zdCBhPU9iamVjdC5rZXlzKHRoaXMubGlic0FuZFRhYmxlcyk7dGhpcy5ob3RVc2VyRGF0YXNldHM/LmNvbHVtbnMmJih0aGlzLmhvdFVzZXJEYXRhc2V0cy5jb2x1bW5zWzBdLnNvdXJjZT1hKX1vbkZpbGVDaGFuZ2UoYSl7dmFyIGQ9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXtj'@; put 'b25zdCBoPWE/LnRhcmdldD8uZmlsZXN8fFtdO2lmKGgubGVuZ3RoPDEpcmV0dXJuIHZvaWQgZC5ldmVudFNlcnZpY2Uuc2hvd0Fib3J0TW9kYWwobnVsbCwiTm8gZmlsZSBmb3VuZC4iLG51bGwsIkZpbGUgVXBsb2FkIik7bGV0IGY9IiI7Zm9yKGxldCB2IG9mIGgpe2NvbnN0IE09di5uYW1l'@; put 'LnNwbGl0KCIuIikucG9wKCk7aWYoZnx8KGY9TSksZiE9PU0pcmV0dXJuIHZvaWQgZC5ldmVudFNlcnZpY2Uuc2hvd0luZm9Nb2RhbCgiTWl4ZWQgZXh0ZW5zaW9ucyBlcnJvciIsIlBsZWFzZSBzZWxlY3QgZmlsZXMgd2l0aCBzYW1lIGV4dGVuc2lvbi4iKTtmPU19aWYoWyJ4bHN4IiwieGxz'@; put 'bSIsInhsbSJdLmluY2x1ZGVzKGYpKWQuc2VsZWN0ZWRGaWxlPWEudGFyZ2V0LmZpbGVzWzBdLGQuc2VsZWN0ZWRGaWxlJiYoZC5maWxlTG9hZGluZ1N0YXRlPUF3LnJlYWRpbmcsZC5zZWxlY3RlZEZpbGUuc2l6ZU1CPWQuc3ByZWFkc2hlZXRTZXJ2aWNlLmJ5dGVzVG9NQihkLnNlbGVjdGVk'@; put 'RmlsZS5zaXplKSxkLnNwcmVhZHNoZWV0U2VydmljZS54bHN4UmVhZEZpbGUoZC5zZWxlY3RlZEZpbGUpLnRoZW4odj0+e2QuZmlsZUxvYWRpbmdTdGF0ZT1Bdy5wYXJzaW5nLGQuc2VsZWN0ZWRGaWxlLndvcmtib29rPXZ9KSksZC5pbml0VXNlcklucHV0SG90KCksc2V0VGltZW91dCgoKT0+'@; put 'e2Qub25BdXRvRGV0ZWN0Q29sdW1ucygpfSwxMDApO2Vsc2V7aWYoImNzdiIhPT1mKXJldHVybiB2b2lkIGQuZXZlbnRTZXJ2aWNlLnNob3dBYm9ydE1vZGFsKG51bGwsIk9ubHkgZXhjZWwgZXh0ZW5zaW9ucyBhcmUgYWxsb3dlZC4gKHhsc3gpIixudWxsLCJFeHRlbnNpb24gRXJyb3IiKTtk'@; put 'Lm9uTXVsdGlDc3ZGaWxlcyhhLnRhcmdldC5maWxlcyl9YS50YXJnZXQudmFsdWU9IiJ9KSgpfW9uTXVsdGlDc3ZGaWxlcyhhKXt2YXIgZD10aGlzO3JldHVybiBRKGZ1bmN0aW9uKigpe2ZvcihsZXQgaCBvZiBhKXtjb25zdCBmPWQucGFyc2VEYXRhc2V0RnJvbUNzdk5hbWUoaC5uYW1lKTtk'@; put 'LmlzVmFsaWREYXRhc2V0Rm9ybWF0KGYpJiZkLmlzVmFsaWREYXRhc2V0UmVmZXJlbmNlKGYpJiZkLmNzdkZpbGVzLnB1c2goe2ZpbGU6aCxmaWxlTmFtZTpoLm5hbWV9KX1kLmNzdkZpbGVzLmxlbmd0aD8oZC5jc3ZTdWJtaXR0aW5nPSEwLHlpZWxkIGQuc3VibWl0Q3N2RmlsZXMoKSxkLmNz'@; put 'dlN1Ym1pdHRpbmc9ITEpOmQuZXZlbnRTZXJ2aWNlLnNob3dJbmZvTW9kYWwoIkNTViBVcGxvYWQiLCJOb25lIG9mIHRoZSBhdHRhY2hlZCBDU1YgZmlsZSBuYW1lcyBtYXRjaGVkIGFuIGFjdHVhbCBkYXRhc2V0LiIpfSkoKX1vbkRpc2NhcmRGaWxlKCl7dGhpcy5zZWxlY3RlZEZpbGU9bnVs'@; put 'bCx0aGlzLnVzZXJJbnB1dERhdGFzZXRzPSIifW9uU3RhcnRQYXJzaW5nRmlsZSgpe3ZhciBhPXRoaXM7cmV0dXJuIFEoZnVuY3Rpb24qKCl7YS51cGxvYWRMb2FkaW5nPSEwO2NvbnN0IGQ9W107bGV0IGg9W107Zm9yKGxldCBmIG9mIGEubWF0Y2hlZERhdGFzZXRzKXtjb25zdCB2PWEuZmV0'@; put 'Y2hEYXRhc2V0KGYpO2QucHVzaCh2KX1Qcm9taXNlLmFsbFNldHRsZWQoZCkudGhlbihmPT57Zi5mb3JFYWNoKE09PnsiZnVsZmlsbGVkIj09PU0uc3RhdHVzJiZNLnZhbHVlJiZoLnB1c2goTS52YWx1ZSl9KSxhLnVwbG9hZExvYWRpbmc9ITEsYS5idWlsZERhdGFzZXRzT2JqZWN0cyhoKS5m'@; put 'b3JFYWNoKE09PnthLnBhcnNlZERhdGFzZXRzLnB1c2goe2xpYmRzOk0ubGliZHMsaW5jbHVkZUluU3VibWlzc2lvbjohMCxkYXRhc2V0SW5mbzpNLHBhcnNpbmdUYWJsZTohMH0pfSksYS53b3JrYm9va0xvYWRlZCgpLnRoZW4oTT0+e2ZvcihsZXQgSSBvZiBhLnBhcnNlZERhdGFzZXRzKWEu'@; put 'c3ByZWFkc2hlZXRTZXJ2aWNlLnBhcnNlRXhjZWxGaWxlKHtmaWxlOmEuc2VsZWN0ZWRGaWxlLHdvcmtib29rOk0scGFzc3dvcmQ6YS5zZWxlY3RlZEZpbGUucGFzc3dvcmR8fHZvaWQgMCxkY1ZhbGlkYXRvcjpJLmRhdGFzZXRJbmZvLmRjVmFsaWRhdG9yLGhlYWRlclBrczpJLmRhdGFzZXRJ'@; put 'bmZvLmhlYWRlclBrcyxoZWFkZXJBcnJheTpJLmRhdGFzZXRJbmZvLmhlYWRlckFycmF5LGhlYWRlclNob3c6W10sdGltZUhlYWRlcnM6SS5kYXRhc2V0SW5mby50aW1lSGVhZGVycyxkYXRlSGVhZGVyczpJLmRhdGFzZXRJbmZvLmRhdGVIZWFkZXJzLGRhdGVUaW1lSGVhZGVyczpJLmRhdGFz'@; put 'ZXRJbmZvLmRhdGVUaW1lSGVhZGVycyx4bFJ1bGVzOkkuZGF0YXNldEluZm8ueGxSdWxlc30pLnRoZW4oRz0+e2lmKGEuZmlsZUxvYWRpbmdTdGF0ZT1Bdy5wYXJzZWQsRyYmRy5kYXRhKXtsZXQgcmU9W107Ry5kYXRhLm1hcCh1ZT0+e2xldCB5ZT17fTtHLmhlYWRlclNob3cubWFwKChFZSxC'@; put 'ZSk9Pnt5ZVtFZV09dWVbQmVdfSkseWUuX19fX19ERUxFVEVfX1RISVNfX1JFQ09SRF9fX19ffHwoeWUuX19fX19ERUxFVEVfX1RISVNfX1JFQ09SRF9fX19fPSJObyIpLHJlLnB1c2goeWUpfSksSS5kYXRhc291cmNlPXJlLEkucGFyc2VSZXN1bHQ9RyxJLnBhcnNpbmdUYWJsZT0hMX19KS5j'@; put 'YXRjaChHPT57Y29uc29sZS53YXJuKCJQYXJzaW5nIGV4Y2VsIGZpbGUgZXJyb3IuIixHKSxJLmRhdGFzb3VyY2U9W10sSS5pbmNsdWRlSW5TdWJtaXNzaW9uPSExLEkucGFyc2luZ1RhYmxlPSExfSl9KX0pfSkoKX1vblN1Ym1pdEFsbCgpe3RoaXMudGFibGVzVG9TdWJtaXQubGVuZ3RoP3Ro'@; put 'aXMuc2hvd1N1Ym1pdFJlYXNvbk1vZGFsPSEwOnRoaXMuZXZlbnRTZXJ2aWNlLnNob3dJbmZvTW9kYWwoIk5vIHRhYmxlcyB0byBzdWJtaXQiLCJQbGVhc2UgaW5jbHVkZSBhdCBsZWFzdCBvbmUgdGFibGUgdG8gcHJvY2VlZC4iKX1vbkRpc2NhcmQoKXt0aGlzLnBhcnNlZERhdGFzZXRzPVtd'@; put 'LHRoaXMubWF0Y2hlZERhdGFzZXRzPVtdLHRoaXMuc2VsZWN0ZWRGaWxlPW51bGwsdGhpcy51c2VySW5wdXREYXRhc2V0cz0iIix0aGlzLnN1Ym1pdFJlYXNvbk1lc3NhZ2U9IiJ9aW5pdEhvdCgpe3NldFRpbWVvdXQoKCk9PntpZih0aGlzLmhvdFRhYmxlTWFpbkNvbXBvbmVudD8uaG90SW5z'@; put 'dGFuY2Upe3RoaXMuaG90SW5zdGFuY2U9dGhpcy5ob3RUYWJsZU1haW5Db21wb25lbnQuaG90SW5zdGFuY2U7Y29uc3QgZD10aGlzLmNvbnRlbnRBcmVhUmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0LTE2MCsicHgiO3RoaXMuYWN0aXZlUGFyc2VkRGF0YXNldCYmKHRoaXMuaG90SW5z'@; put 'dGFuY2UudXBkYXRlU2V0dGluZ3Moe2NvbEhlYWRlcnM6dGhpcy5hY3RpdmVQYXJzZWREYXRhc2V0LmRhdGFzZXRJbmZvLmhlYWRlckNvbHVtbnMsY29sdW1uczp0aGlzLmFjdGl2ZVBhcnNlZERhdGFzZXQuZGF0YXNldEluZm8uZGNWYWxpZGF0b3I/LmdldFJ1bGVzKCkscmVhZE9ubHk6ITAs'@; put 'aGVpZ2h0OmR8fCIzMDBweCIsY2xhc3NOYW1lOlsiaHREYXJrIl19KSx0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCksc2V0VGltZW91dCgoKT0+e3RoaXMuYWN0aXZlUGFyc2VkRGF0YXNldCYmdGhpcy5hY3RpdmVQYXJzZWREYXRhc2V0LmRhdGFzb3VyY2UmJih0aGlzLmhvdEluc3RhbmNlLmxv'@; put 'YWREYXRhKHRoaXMuYWN0aXZlUGFyc2VkRGF0YXNldC5kYXRhc291cmNlKSx0aGlzLmhvdEluc3RhbmNlLnJlbmRlcigpKX0sMTAwKSl9fSwxMDApfWluaXRVc2VySW5wdXRIb3QoKXt2YXIgYT10aGlzO3NldFRpbWVvdXQoKCk9Pnt0aGlzLmhvdFRhYmxlVXNlckRhdGFzZXRDb21wb25lbnQ/'@; put 'LmhvdEluc3RhbmNlJiYodGhpcy5ob3RJbnN0YW5jZVVzZXJEYXRhc2V0PXRoaXMuaG90VGFibGVVc2VyRGF0YXNldENvbXBvbmVudC5ob3RJbnN0YW5jZSxzZXRUaW1lb3V0KCgpPT57dGhpcy5ob3RVc2VyRGF0YXNldHMuZGF0YSYmKHRoaXMuaG90SW5zdGFuY2VVc2VyRGF0YXNldC5sb2Fk'@; put 'RGF0YSh0aGlzLmhvdFVzZXJEYXRhc2V0cy5kYXRhKSx0aGlzLmhvdEluc3RhbmNlVXNlckRhdGFzZXQucmVuZGVyKCkpfSw1MCksdGhpcy5ob3RJbnN0YW5jZVVzZXJEYXRhc2V0LmFkZEhvb2soImJlZm9yZUNoYW5nZSIsKGQsaCk9PntpZihkKWZvcihsZXQgZiBvZiBkKWYmJmZbM10mJihm'@; put 'WzNdPWZbM10udG9VcHBlckNhc2UoKSl9KSx0aGlzLmhvdEluc3RhbmNlVXNlckRhdGFzZXQuYWRkSG9vaygiYWZ0ZXJDaGFuZ2UiLGZ1bmN0aW9uKCl7dmFyIGQ9UShmdW5jdGlvbiooaCxmKXtpZihoKXsiZWRpdCI9PT1mJiYoeWllbGQgYS5vblVzZXJJbnB1dERhdGFzZXRzQ2hhbmdlKCkp'@; put 'O2ZvcihsZXQgdiBvZiBoKWEubWFya1VubWF0Y2hlZFJvd3ModlswXSk7YS5keW5hbWljQ2VsbFZhbGlkYXRpb25zKCksYS5ob3RJbnN0YW5jZVVzZXJEYXRhc2V0LnJlbmRlcigpfX0pO3JldHVybiBmdW5jdGlvbihoLGYpe3JldHVybiBkLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpLHRo'@; put 'aXMuaG90SW5zdGFuY2VVc2VyRGF0YXNldC5hZGRIb29rKCJhZnRlclJlbW92ZVJvdyIsZnVuY3Rpb24oKXt2YXIgZD1RKGZ1bmN0aW9uKihoLGYsdixNKXt5aWVsZCBhLm9uVXNlcklucHV0RGF0YXNldHNDaGFuZ2UoKTtmb3IobGV0IEkgb2YgdilhLm1hcmtVbm1hdGNoZWRSb3dzKEkpfSk7'@; put 'cmV0dXJuIGZ1bmN0aW9uKGgsZix2LE0pe3JldHVybiBkLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpKX0sMTAwKX1keW5hbWljQ2VsbFZhbGlkYXRpb25zKCl7dGhpcy5ob3RJbnN0YW5jZVVzZXJEYXRhc2V0JiZ0aGlzLmhvdEluc3RhbmNlVXNlckRhdGFzZXQuZ2V0RGF0YSgpLmZvckVh'@; put 'Y2goKGQsaCk9Pntjb25zdCBmPWRbMF07ZiYmZi5sZW5ndGgmJnRoaXMuaG90SW5zdGFuY2VVc2VyRGF0YXNldC5zZXRDZWxsTWV0YShoLDEsInNvdXJjZSIsdGhpcy5saWJzQW5kVGFibGVzW2ZdKX0pfW1hcmtVbm1hdGNoZWRSb3dzKGEpe2lmKCF0aGlzLmhvdEluc3RhbmNlVXNlckRhdGFz'@; put 'ZXQpcmV0dXJuO2NvbnN0IGQ9dGhpcy5ob3RJbnN0YW5jZVVzZXJEYXRhc2V0LmdldERhdGFBdFJvdyhhKSxoPWAke2RbMF19LiR7ZFsxXX1gLGY9dGhpcy5ob3RJbnN0YW5jZVVzZXJEYXRhc2V0LmdldENlbGxNZXRhQXRSb3coYSk7ZCYmZFswXSYmZFsxXT90aGlzLm1hdGNoZWREYXRhc2V0'@; put 'cy5pbmNsdWRlcyhoKT9mLmZvckVhY2godj0+e3RoaXMuaG90SW5zdGFuY2VVc2VyRGF0YXNldC5zZXRDZWxsTWV0YShhLHYuY29sLCJjbGFzc05hbWUiLCIiKX0pOmYuZm9yRWFjaCh2PT57dGhpcy5ob3RJbnN0YW5jZVVzZXJEYXRhc2V0LnNldENlbGxNZXRhKGEsdi5jb2wsImNsYXNzTmFt'@; put 'ZSIsIm5vdC1tYXRjaGVkIil9KTpmLmZvckVhY2godj0+e3RoaXMuaG90SW5zdGFuY2VVc2VyRGF0YXNldC5zZXRDZWxsTWV0YShhLHYuY29sLCJjbGFzc05hbWUiLCIiKX0pfW9uVXNlcklucHV0RGF0YXNldHNDaGFuZ2UoKXtyZXR1cm4gbmV3IFByb21pc2UoKGEsZCk9Pnt0aGlzLmhlbHBl'@; put 'clNlcnZpY2UuZGVib3VuY2VDYWxsKDEwMCwoKT0+e2NvbnN0IGg9dGhpcy5nZXREYXRhc2V0c0Zyb21Ib3QoKTt0aGlzLm1hdGNoZWREYXRhc2V0cz1bXSxoLmZvckVhY2goZj0+e2NvbnN0IHY9Zi50cmltKCk7dGhpcy5pc1ZhbGlkRGF0YXNldEZvcm1hdCh2KSYmdGhpcy5pc1ZhbGlkRGF0'@; put 'YXNldFJlZmVyZW5jZSh2KSYmIXRoaXMubWF0Y2hlZERhdGFzZXRzLmluY2x1ZGVzKHYpP3RoaXMubWF0Y2hlZERhdGFzZXRzLnB1c2godik6Y29uc29sZS53YXJuKGBTaGVldCBuYW1lOiAke3Z9IGlzIG5vdCBhbiBhY3R1YWwgZGF0YXNldCByZWZlcmVuY2UuYCl9KSx0aGlzLmNkci5kZXRl'@; put 'Y3RDaGFuZ2VzKCksYSh2b2lkIDApfSl9KX1vbkF1dG9EZXRlY3RDb2x1bW5zKCl7dmFyIGE9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXtpZighYS5ob3RJbnN0YW5jZVVzZXJEYXRhc2V0KXtsZXQgdj0wO2NvbnN0IE09MjA7Zm9yKDshYS5ob3RJbnN0YW5jZVVzZXJEYXRhc2V0JiZ2PE07'@; put 'KXlpZWxkIG5ldyBQcm9taXNlKEk9PnNldFRpbWVvdXQoSSwxMDApKSx2Kys7aWYoIWEuaG90SW5zdGFuY2VVc2VyRGF0YXNldClyZXR1cm4gdm9pZCBjb25zb2xlLndhcm4oImhvdEluc3RhbmNlVXNlckRhdGFzZXQgbm90IHJlYWR5IGFmdGVyIHdhaXRpbmciKX1sZXQgZD0hMTtpZih5aWVs'@; put 'ZCBhLnBhcnNlRXhjZWxTaGVldE5hbWVzKCkudGhlbih2PT57YS5zaGVldE5hbWVzPXZ9KS5jYXRjaCh2PT57di5pbmNsdWRlcygicGFzc3dvcmQiKSYmKGQ9ITApfSksZClyZXR1cm4gYS5vbkRpc2NhcmRGaWxlKCksdm9pZCBhLmV2ZW50U2VydmljZS5zaG93SW5mb01vZGFsKCJMb2NrZWQg'@; put 'ZmlsZSIsIldlIGZhaWxlZCB0byB1bmxvY2sgdGhlIGZpbGUuIik7YS5zaGVldE5hbWVzJiYoYS5tYXRjaGVkRGF0YXNldHM9W10sYS51c2VySW5wdXREYXRhc2V0cz0iIixhLnNoZWV0TmFtZXMuZm9yRWFjaCgodixNKT0+e2NvbnN0IEk9di50cmltKCk7YS5pc1ZhbGlkRGF0YXNldEZvcm1h'@; put 'dChJKSYmYS5pc1ZhbGlkRGF0YXNldFJlZmVyZW5jZShJKT9hLm1hdGNoZWREYXRhc2V0cy5wdXNoKEkpOmNvbnNvbGUud2FybihgU2hlZXQgbmFtZTogJHtJfSBpcyBub3QgYW4gYWN0dWFsIGRhdGFzZXQgcmVmZXJlbmNlLmApfSkpLGEudXNlcklucHV0RGF0YXNldHM9YS5tYXRjaGVkRGF0'@; put 'YXNldHMuam9pbigiXG4iKTtjb25zdCBoPWEubWF0Y2hlZERhdGFzZXRzLm1hcCh2PT5bdi5zcGxpdCgiLiIpWzBdLHYuc3BsaXQoIi4iKVsxXV0pLGY9YS5ob3RVc2VyRGF0YXNldHMuZGF0YS5sZW5ndGg7aWYoaC5sZW5ndGg8Zil7Y29uc3Qgdj1mLWgubGVuZ3RoO2ZvcihsZXQgTT0wO008'@; put 'djtNKyspaC5wdXNoKFsiIiwiIl0pfWEuaG90SW5zdGFuY2VVc2VyRGF0YXNldCYmc2V0VGltZW91dCgoKT0+e2EuaG90SW5zdGFuY2VVc2VyRGF0YXNldC5sb2FkRGF0YShoKSxhLmhvdEluc3RhbmNlVXNlckRhdGFzZXQucmVuZGVyKCl9LDEwMCksYS5keW5hbWljQ2VsbFZhbGlkYXRpb25z'@; put 'KCl9KSgpfW9uUGFyc2VkRGF0YXNldENsaWNrKGEpe3RoaXMuZGVzZWxlY3RBbGxQYXJzZWREYXRhc2V0cygpLGEuYWN0aXZlPSEwLHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKSx0aGlzLmluaXRIb3QoKX1vblN1Ym1pdHRlZENzdkRhdGFzZXRDbGljayhhKXt0aGlzLmRlc2VsZWN0QWxsU3Vi'@; put 'bWl0dGVkQ3N2RGF0YXNldHMoKSxhLmFjdGl2ZT0hMH1nZXQgYWN0aXZlUGFyc2VkRGF0YXNldCgpe3JldHVybiB0aGlzLnBhcnNlZERhdGFzZXRzLmZpbmQoYT0+YS5hY3RpdmUpfWdldCBhY3RpdmVTdWJtaXR0ZWRDc3ZEYXRhc2V0KCl7cmV0dXJuIHRoaXMuc3VibWl0dGVkQ3N2RGF0YXNl'@; put 'dHMuZmluZChhPT5hLmFjdGl2ZSl9Z2V0IG5vdEZvdW5kRGF0YXNldHMoKXtyZXR1cm4gdGhpcy5nZXREYXRhc2V0c0Zyb21Ib3QoKS5maWx0ZXIoZD0+IXRoaXMubWF0Y2hlZERhdGFzZXRzLmluY2x1ZGVzKGQudHJpbSgpKSkuZmlsdGVyKGQ9PmQubGVuZ3RoKX1nZXQgaXNIb3RIaWRkZW4o'@; put 'KXtpZighdGhpcy5ob3RJbnN0YW5jZSlyZXR1cm4hMDt0cnl7Y29uc3QgYT10aGlzLmhvdEluc3RhbmNlLmdldFNldHRpbmdzKCkuY2xhc3NOYW1lO3JldHVybiEhYSYmYS5pbmNsdWRlcygiaHRDdXN0b21IaWRkZW4iKX1jYXRjaHtyZXR1cm4hMH19Z2V0IHRhYmxlc1RvU3VibWl0KCl7cmV0'@; put 'dXJuIHRoaXMucGFyc2VkRGF0YXNldHMuZmlsdGVyKGE9PmEuZGF0YXNvdXJjZSYmYS5wYXJzZVJlc3VsdCYmYS5pbmNsdWRlSW5TdWJtaXNzaW9uKX1nZXQgc3VibWl0dGluZ0Nzdigpe3JldHVybiB0aGlzLmNzdkZpbGVzLmxlbmd0aD4wfWdldCBleGNlbHNTdWJtaXR0ZWQoKXtyZXR1cm4h'@; put 'IXRoaXMucGFyc2VkRGF0YXNldHMuZmlsdGVyKGE9PmEuc3VibWl0UmVzdWx0KS5sZW5ndGh9ZG93bmxvYWRGaWxlKGEpe3RoaXMuaGVscGVyU2VydmljZS5kb3dubG9hZFRleHRGaWxlKGBzdGFnZWRhdGEtJHt0aGlzLmFjdGl2ZVN1Ym1pdHRlZENzdkRhdGFzZXQ/LmxpYmRzfS1sb2dgLEpT'@; put 'T04uc3RyaW5naWZ5KGEpKX1zdWJtaXRDc3ZGaWxlcygpe3ZhciBhPXRoaXM7cmV0dXJuIFEoZnVuY3Rpb24qKCl7bGV0IGQ9W107Zm9yKGxldCBoIG9mIGEuY3N2RmlsZXMpe2NvbnN0IGY9YS5wYXJzZURhdGFzZXRGcm9tQ3N2TmFtZShoLmZpbGVOYW1lKTtsZXQgdixNO3lpZWxkIGEuc2Fz'@; put 'U2VydmljZS51cGxvYWRGaWxlKCJzZXJ2aWNlcy9lZGl0b3JzL2xvYWRmaWxlIixbaF0se3RhYmxlOmZ9KS50aGVuKEk9Pnt0eXBlb2YgSS5hZGFwdGVyUmVzcG9uc2Uuc2FzanNBYm9ydDwidSI/dj1JLmFkYXB0ZXJSZXNwb25zZS5zYXNqc0Fib3J0Ok09SS5hZGFwdGVyUmVzcG9uc2V9LEk9'@; put 'Pntjb25zb2xlLmVycm9yKCJlcnIiLEkpLHY9SS5hZGFwdGVyUmVzcG9uc2V9KSxkLnB1c2goe3N1Y2Nlc3M6TSxlcnJvcjp2LGxpYmRzOmZ9KX1hLnN1Ym1pdHRlZENzdkRhdGFzZXRzPWR9KSgpfWZldGNoRGF0YXNldChhKXt2YXIgZD10aGlzO3JldHVybiBRKGZ1bmN0aW9uKigpe2lmKGEp'@; put 'cmV0dXJuIGQuc2FzU3RvcmVTZXJ2aWNlLmNhbGxTZXJ2aWNlKHtMSUJEUzphLE9VVERFU1Q6IldFQiJ9LCJTQVNDb250cm9sVGFibGUiLCJlZGl0b3JzL2dldGRhdGEiLGEpLnRoZW4oZj0+ZikuY2F0Y2goZj0+e2NvbnNvbGUud2FybihgRXJyb3IgZmV0Y2hpbmcgJHthfWAsZil9KX0pKCl9'@; put 'c3VibWl0VGFibGVzKGEpe3ZhciBkPXRoaXM7cmV0dXJuIFEoZnVuY3Rpb24qKCl7Y29uc29sZS5pbmZvKCJTdWJtaXR0aW5nIG11bHRpcGxlIHRhYmxlcyIsZC5wYXJzZWREYXRhc2V0cyksZC5zdWJtaXRMb2FkaW5nPSEwO2ZvcihsZXQgaCBvZiBkLnBhcnNlZERhdGFzZXRzKXtpZighaC5w'@; put 'YXJzZVJlc3VsdHx8IWguZGF0YXNvdXJjZXx8IWguaW5jbHVkZUluU3VibWlzc2lvbnx8YSYmIWEuaW5jbHVkZXMoaC5saWJkcykpY29udGludWU7bGV0IGY9e307ZC5zdWJtaXRSZWFzb25NZXNzYWdlPWQuc3VibWl0UmVhc29uTWVzc2FnZS5yZXBsYWNlKC9cbi9nLCIuICIpLGYuQUNUSU9O'@; put 'PSJMT0FEIixmLk1FU1NBR0U9ZC5zdWJtaXRSZWFzb25NZXNzYWdlLGYuTElCRFM9aC5saWJkcztsZXQgdj1oLmRhdGFzb3VyY2U7aWYodil7dj12Lm1hcCh5ZT0+e2xldCBFZT15ZS5fX19fX0RFTEVURV9fVEhJU19fUkVDT1JEX19fX187cmV0dXJuIGRlbGV0ZSB5ZS5fX19fX0RFTEVURV9f'@; put 'VEhJU19fUkVDT1JEX19fX18seWUuX19fX19ERUxFVEVfX1RISVNfX1JFQ09SRF9fX19fPUVlLE9iamVjdC5rZXlzKHllKS5tYXAoQmU9PnsibnVtZXJpYyI9PT1oLmRhdGFzZXRJbmZvLmRjVmFsaWRhdG9yPy5nZXRSdWxlKEJlKT8udHlwZSYmIi4iPT09eWVbQmVdJiYoeWVbQmVdPW51bGwp'@; put 'fSkseWV9KTtjb25zdCBNPXYuc2xpY2UoMCxkLmxpY2VuY2VTdGF0ZS52YWx1ZS5zdWJtaXRfcm93c19saW1pdCk7bGV0IEksRyxyZTt5aWVsZCBkLnNhc1N0b3JlU2VydmljZS51cGRhdGVUYWJsZShmLE0sIlNBU0NvbnRyb2xUYWJsZSIsImVkaXRvcnMvc3RhZ2VkYXRhIixoLmRhdGFzZXRJ'@; put 'bmZvLmRhdGEuJHNhc2RhdGEsITAse2RlYnVnOiEwfSkudGhlbih5ZT0+e0c9eWUuYWRhcHRlclJlc3BvbnNlLHJlPXllLmxvZ30pLmNhdGNoKHllPT57Y29uc29sZS5lcnJvcigiZXJyIix5ZSksST15ZS5hZGFwdGVyUmVzcG9uc2UscmU9eWUubG9nfSksaC5zdWJtaXRSZXN1bHQ9e3N1Y2Nl'@; put 'c3M6RyxlcnJvcjpJLGxvZzpyZSxwYXJzZVJlc3VsdDpoLnBhcnNlUmVzdWx0LGxpYmRzOmgubGliZHN9fX1kLnNob3dTdWJtaXRSZWFzb25Nb2RhbD0hMSxkLnN1Ym1pdExvYWRpbmc9ITEsZC5kZXNlbGVjdEFsbFBhcnNlZERhdGFzZXRzKCl9KSgpfXJlU3VibWl0VGFibGUoYSl7dmFyIGQ9'@; put 'dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXt5aWVsZCBkLnN1Ym1pdFRhYmxlcyhbYS5saWJkc10pO2NvbnN0IGg9ZC5wYXJzZWREYXRhc2V0cy5maW5kKGY9PmYubGliZHM9PT1hLmxpYmRzKTtoJiYoaC5hY3RpdmU9ITApfSkoKX13b3JrYm9va0xvYWRlZCgpe3JldHVybiBuZXcgUHJvbWlz'@; put 'ZSgoYSxkKT0+e3RoaXMuc2VsZWN0ZWRGaWxlfHxkKCJObyBmaWxlIHNlbGVjdGVkIiksdGhpcy53b3JrYm9va0ludGVydmFsPXNldEludGVydmFsKCgpPT57dGhpcy5zZWxlY3RlZEZpbGUud29ya2Jvb2smJihjbGVhckludGVydmFsKHRoaXMud29ya2Jvb2tJbnRlcnZhbCksYSh0aGlzLnNl'@; put 'bGVjdGVkRmlsZS53b3JrYm9vaykpfSw1MDApfSl9cGFyc2VEYXRhc2V0RnJvbUNzdk5hbWUoYSl7Y29uc3QgZD1hLnNwbGl0KCIuIik7cmV0dXJuIGQucG9wKCksZC5qb2luKCIuIil9Z2V0RGF0YXNldHNGcm9tSG90KCl7cmV0dXJuIHRoaXMuaG90SW5zdGFuY2VVc2VyRGF0YXNldD90aGlz'@; put 'LmhvdEluc3RhbmNlVXNlckRhdGFzZXQuZ2V0RGF0YSgpLmZpbHRlcihkPT5kWzBdPy5sZW5ndGgmJmRbMV0/Lmxlbmd0aCkubWFwKGQ9PmQ/YCR7ZFswXX0uJHtkWzFdfWA6IiIpOltdfXBhcnNlRXhjZWxTaGVldE5hbWVzKCl7dmFyIGE9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXtyZXR1'@; put 'cm4gbmV3IFByb21pc2UoKGQsaCk9PntpZighYS5zZWxlY3RlZEZpbGUpcmV0dXJuIGQoW10pO2Euc3ByZWFkc2hlZXRTZXJ2aWNlLnBhcnNlRXhjZWxTaGVldE5hbWVzKGEuc2VsZWN0ZWRGaWxlKS50aGVuKGY9PihmLnBhc3N3b3JkJiYoYS5zZWxlY3RlZEZpbGUucGFzc3dvcmQ9Zi5wYXNz'@; put 'd29yZCksZChmLnNoZWV0TmFtZXMpKSkuY2F0Y2goZj0+aChmKSl9KX0pKCl9aXNWYWxpZERhdGFzZXRGb3JtYXQoYSl7cmV0dXJuL15cd3sxLDh9XC5cd3sxLDMyfSQvZ2ltLnRlc3QoYSl9aXNWYWxpZERhdGFzZXRSZWZlcmVuY2UoYSl7Y29uc3QgZD1hLnNwbGl0KCIuIilbMF0saD1hLnNw'@; put 'bGl0KCIuIilbMV07cmV0dXJuISF0aGlzLmxpYnNBbmRUYWJsZXNbZF0/LmluY2x1ZGVzKGgpfWJ1aWxkRGF0YXNldHNPYmplY3RzKGEpe2lmKCFhKXJldHVybltdO2NvbnN0IGQ9W107Zm9yKGxldCBoIG9mIGEpaWYoaC5kYXRhKXtjb25zdCBmPXsuLi5oLGhvdFRhYmxlOntkYXRhOmguZGF0'@; put 'YS5zYXNkYXRhLHNldHRpbmdzOnt9fSxjb2xzOltdLGhlYWRlckNvbHVtbnM6W10saGVhZGVyUGtzOltdLGhlYWRlckFycmF5OltdLGRhdGVIZWFkZXJzOltdLHRpbWVIZWFkZXJzOltdLGRhdGVUaW1lSGVhZGVyczpbXSx4bFJ1bGVzOltdLGNvbHVtbkhlYWRlcjpbXX07Zi5jb2xzPWguZGF0'@; put 'YS5jb2xzLGYuaGVhZGVyQ29sdW1ucz1oLmRhdGEuc2FzcGFyYW1zWzBdLkNPTEhFQURFUlMuc3BsaXQoIiwiKSxmLmhlYWRlclBrcz1oLmRhdGEuc2FzcGFyYW1zWzBdLlBLLnNwbGl0KCIgIiksLTEhPT1mLmhlYWRlckNvbHVtbnMuaW5kZXhPZigiX19fX19ERUxFVEVfX1RISVNfX1JFQ09S'@; put 'RF9fX19fIikmJihmLmhlYWRlckNvbHVtbnNbZi5oZWFkZXJDb2x1bW5zLmluZGV4T2YoIl9fX19fREVMRVRFX19USElTX19SRUNPUkRfX19fXyIpXT0iRGVsZXRlPyIpLGYuaGVhZGVyQXJyYXk9Zi5oZWFkZXJDb2x1bW5zLnNsaWNlKDEpLCIiIT09aC5kYXRhLnNhc3BhcmFtc1swXS5EVFZB'@; put 'UlMmJihmLmRhdGVIZWFkZXJzPWguZGF0YS5zYXNwYXJhbXNbMF0uRFRWQVJTLnNwbGl0KCIgIikpLCIiIT09aC5kYXRhLnNhc3BhcmFtc1swXS5UTVZBUlMmJihmLnRpbWVIZWFkZXJzPWguZGF0YS5zYXNwYXJhbXNbMF0uVE1WQVJTLnNwbGl0KCIgIikpLCIiIT09aC5kYXRhLnNhc3BhcmFt'@; put 'c1swXS5EVFRNVkFSUyYmKGYuZGF0ZVRpbWVIZWFkZXJzPWguZGF0YS5zYXNwYXJhbXNbMF0uRFRUTVZBUlMuc3BsaXQoIiAiKSksaC5kYXRhLnhsX3J1bGVzLmxlbmd0aD4wJiYoZi54bFJ1bGVzPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUoaC5kYXRhLnhsX3J1bGVzKSksZi5kY1Zh'@; put 'bGlkYXRvcj1uZXcgVjZlKGguZGF0YS5zYXNwYXJhbXNbMF0saC5kYXRhLiRzYXNkYXRhLGguZGF0YS5jb2xzLGguZGF0YS5kcXJ1bGVzLGguZGF0YS5kcWRhdGEpLGYuY29sdW1uSGVhZGVyPWguZGF0YS5zYXNwYXJhbXNbMF0uQ09MSEVBREVSUy5zcGxpdCgiLCIpLGQucHVzaChmKX1yZXR1'@; put 'cm4gZH1kZXNlbGVjdEFsbFBhcnNlZERhdGFzZXRzKCl7Zm9yKGxldCBhIG9mIHRoaXMucGFyc2VkRGF0YXNldHMpYS5hY3RpdmU9ITF9ZGVzZWxlY3RBbGxTdWJtaXR0ZWRDc3ZEYXRhc2V0cygpe2ZvcihsZXQgYSBvZiB0aGlzLnN1Ym1pdHRlZENzdkRhdGFzZXRzKWEuYWN0aXZlPSExfXN0'@; put 'YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpKCRlKG1jKSwkZShjMSksJGUoYnUpLCRlKEloKSwkZShXNmUpLCRlKFZvKSwkZSh4bykpfX1zdGF0aWN7dGhpcy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1siYXBwLW11bHRpLWRhdGFzZXQi'@; put 'XV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGQsaCl7aWYoMSZkJiYoRmEoS3Z0LDcpLEZhKFh2dCw1KSxGYShxdnQsNSkpLDImZCl7bGV0IGY7eWkoZj1iaSgpKSYmKGguY29udGVudEFyZWFSZWY9Zi5maXJzdCkseWkoZj1iaSgpKSYmKGguaG90VGFibGVNYWluQ29tcG9uZW50PWYuZmlyc3QpLHlp'@; put 'KGY9YmkoKSkmJihoLmhvdFRhYmxlVXNlckRhdGFzZXRDb21wb25lbnQ9Zi5maXJzdCl9fSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihkLGgpezImZCYmVHIoImNvbnRlbnQtY29udGFpbmVyIixoLmNvbnRlbnRDb250YWluZXJDbGFzcyl9LGRlY2xzOjM3LHZhcnM6MTgsY29u'@; put 'c3RzOltbImNvbnRlbnRBcmVhIiwiIl0sWyJmaWxlVXBsb2FkSW5wdXQiLCIiXSxbImhvdEluc3RhbmNlVXNlckRhdGFzZXQiLCIiXSxbImhvdEluc3RhbmNlTWFpbiIsIiJdLFsiY2xhc3MiLCJteS0xMC1teC1hdXRvIHRleHQtY2VudGVyIiw0LCJuZ0lmIl0sWyJjbGFzcyIsInRleHQtY2Vu'@; put 'dGVyIG1iLTEwIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbMSwiY29udGVudC1hcmVhIl0sWzEsImNhcmQiLCJuby1ib3JkZXJzIiwiaC0xMDAiLCJkLWZsZXgiLCJjbHItZmxleC1jb2x1bW4iXSxbMSwiaGVhZGVyLXJvdyIsImNsci1yb3ciLCJqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiIsImNs'@; put 'ci1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiwidy0xMDAiLCJtLTAiXSxbImNkcy10ZXh0Iiwic2VjdGlvbiJdLFsiY2xhc3MiLCJuby10YWJsZS1zZWxlY3RlZCBwb2ludGVyLWV2ZW50cy1ub25lIiw0LCJuZ0lmIl0sWzMsImNsck1vZGFsT3BlbkNoYW5nZSIsImNsck1vZGFsT3BlbiIsImNs'@; put 'ck1vZGFsQ2xvc2FibGUiXSxbMSwibW9kYWwtdGl0bGUiXSxbMSwibW9kYWwtYm9keSJdLFsiY2RzLXRleHQiLCJib2R5IiwiY2xhc3MiLCJsaWNlbmNlLWxpbWl0LW5vdGljZSBtdC0wIG1iLTE1Iiw0LCJuZ0lmIl0sWzEsInRleHQtYXJlYS1mdWxsLXdpZHRoIl0sWyJmb3IiLCJmb3JtRmll'@; put 'bGRzXzgiLDEsIm1iLTUiLCJkLWJsb2NrIl0sWyJjbHJUZXh0YXJlYSIsIiIsInRhYmluZGV4IiwiMCIsInR5cGUiLCJ0ZXh0IiwiaWQiLCJmb3JtRmllbGRzXzgiLDEsInN1Ym1pdC1yZWFzb24iLDMsIm5nTW9kZWxDaGFuZ2UiLCJuZ01vZGVsIl0sWyJjZHMtdGV4dCIsImNhcHRpb25fY2xl'@; put 'YW4iLDEsIm10LTEwIl0sWzEsIm1vZGFsLWZvb3RlciJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLW91dGxpbmUiLDMsImNsaWNrIiwiZGlzYWJsZWQiXSxbInR5cGUiLCJidXR0b24iLCJpZCIsInN1Ym1pdC10YWJsZXMiLDEsImJ0biIsImJ0bi1wcmltYXJ5IiwzLCJjbGljayIs'@; put 'ImNsckxvYWRpbmciXSxbMSwidGV4dC1jZW50ZXIiXSxbImNsck1lZGl1bSIsIiJdLFsiY2RzLXRleHQiLCJjYXB0aW9uX2NsZWFuIiwxLCJtdC0xMCIsInRleHQtY2VudGVyIl0sWzEsIm15LTEwLW14LWF1dG8iLCJ0ZXh0LWNlbnRlciJdLFsxLCJ0ZXh0LWNlbnRlciIsIm1iLTEwIl0sWyJp'@; put 'ZCIsImJyb3dzZS1maWxlIiwxLCJidG4iLCJidG4tcHJpbWFyeSIsImJ0bi1zbSIsMywiY2xpY2siLCJkaXNhYmxlZCJdLFsiaGlkZGVuIiwiIiwiaWQiLCJmaWxlLXVwbG9hZCIsInR5cGUiLCJmaWxlIiwibXVsdGlwbGUiLCIiLDMsImNoYW5nZSJdLFsiY2RzLXRleHQiLCJjYXB0aW9uIiwx'@; put 'LCJtbC0xMCIsIm1iLTEwIl0sWzQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJidG4iLCJidG4tZGFuZ2VyIiwiYnRuLXNtIiwibXItMTAiLDMsImNsaWNrIl0sWyJpZCIsInN1Ym1pdC1hbGwiLDEsImJ0biIsImJ0bi1wcmltYXJ5IiwiYnRuLXNtIiwzLCJjbGljayJdLFsxLCJjbHItdHJlZW5v'@; put 'ZGUtbGluayIsIndoaXRlc3BhY2Utbm93cmFwIiwiZC1mbGV4IiwiY2xyLWFsaWduLWl0ZW1zLWNlbnRlciIsMywiY2xpY2siXSxbMSwibWwtNSJdLFsic3RhdHVzIiwiZGFuZ2VyIiwic2hhcGUiLCJleGNsYW1hdGlvbi1jaXJjbGUiLDQsIm5nSWYiXSxbInN0YXR1cyIsInN1Y2Nlc3MiLCJz'@; put 'aGFwZSIsImNoZWNrLWNpcmNsZSIsNCwibmdJZiJdLFsic3RhdHVzIiwiZGFuZ2VyIiwic2hhcGUiLCJleGNsYW1hdGlvbi1jaXJjbGUiXSxbInN0YXR1cyIsInN1Y2Nlc3MiLCJzaGFwZSIsImNoZWNrLWNpcmNsZSJdLFsic2hhcGUiLCJ0YWJsZSIsNCwibmdJZiJdLFsic2hhcGUiLCJ0YWJs'@; put 'ZSJdLFsiY2xyU21hbGwiLCIiLDQsIm5nSWYiXSxbImNsclNtYWxsIiwiIl0sWyJjZHMtdGV4dCIsImNhcHRpb24iLDEsIm1sLTEwIiwibWItMTAiLCJtdC0xMCJdLFsxLCJjbHItdHJlZW5vZGUtbGluayIsIndoaXRlc3BhY2Utbm93cmFwIiwzLCJjbGljayJdLFsxLCJuby10YWJsZS1zZWxl'@; put 'Y3RlZCIsInBvaW50ZXItZXZlbnRzLW5vbmUiXSxbInNoYXBlIiwidXBsb2FkLWNsb3VkIiwic2l6ZSIsIjQwIiwxLCJpcy1pbmZvIiwiaWNvbi1kYy1maWxsIl0sWyJjZHMtdGV4dCIsInNlY3Rpb24iLDEsInRleHQtY2VudGVyIiwiY29sb3ItZ3JheSIsIm10LTEwIl0sWzEsImQtZmxleCIs'@; put 'ImNsci1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiwibXQtMTUiXSxbMSwiZGF0YXNldC1pbnB1dC13cmFwcGVyIl0sWyJjZHMtdGV4dCIsInNlY29uZGFyeSByZWd1bGFyIiwxLCJtYi01Il0sWyJjbHJUb29sdGlwVHJpZ2dlciIsIiIsInNoYXBlIiwidHJhc2giLCJzdGF0dXMiLCJkYW5nZXIi'@; put 'LDEsIm1sLTUiLCJjdXJzb3ItcG9pbnRlciIsMywiY2xpY2siXSxbImNkcy10ZXh0Iiwic2Vjb25kYXJ5IHJlZ3VsYXIiLDEsIm1iLTIwIl0sWyJjZHMtdGV4dCIsInNlY29uZGFyeSByZWd1bGFyIiwxLCJtYi0xNSJdLFsxLCJtYi01Il0sWyJpZCIsImhvdFRhYmxlVXNlckRhdGFzZXQiLDEs'@; put 'Im10LTE1IiwzLCJzZXR0aW5ncyJdLFsxLCJkYXRhc2V0LXNlbGVjdGlvbi1hY3Rpb25zIiwidGV4dC1yaWdodCIsIm10LTEwIl0sWyJpZCIsImNvbnRpbnVlLWJ0biIsMSwiYnRuIiwiYnRuLXByaW1hcnkiLCJidG4tc20iLDMsImNsaWNrIiwiZGlzYWJsZWQiLCJjbHJMb2FkaW5nIl0sWyJz'@; put 'aGFwZSIsInByb2Nlc3Mtb24tdm0iLCJzaXplIiwiNDAiLDEsImlzLWluZm8iLCJpY29uLWRjLWZpbGwiXSxbInNoYXBlIiwid2FybmluZy1zdGFuZGFyZCIsInNpemUiLCI0MCIsMSwiaXMtaW5mbyIsImljb24tZGMtZmlsbCJdLFsiY2xhc3MiLCJkLWZsZXggY2xyLWp1c3RpZnktY29udGVu'@; put 'dC1iZXR3ZWVuIHAtMTAgbXQtMTUgc3VibWlzc2lvbi1yZXN1bHRzIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImVycm9yLWZpZWxkIG10LTE1Iiw0LCJuZ0lmIl0sWzEsImQtZmxleCIsImNsci1qdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiIsInAtMTAiLCJtdC0xNSJdLFsiY2RzLXRleHQiLCJzZWNv'@; put 'bmRhcnkgcmVndWxhciIsMSwibWItMTAiXSxbImNkcy10ZXh0Iiwic2Vjb25kYXJ5IHJlZ3VsYXIiXSxbImNsclRvb2x0aXBUcmlnZ2VyIiwiIiwzLCJyb3V0ZXJMaW5rIl0sWzMsImNsclBvc2l0aW9uIiwiY2xyU2l6ZSJdLFsidHlwZSIsImNoZWNrYm94IiwiY2xyVG9nZ2xlIiwiIiwibmFt'@; put 'ZSIsIm9wdGlvbnMiLCJyZXF1aXJlZCIsIiIsInZhbHVlIiwib3B0aW9uMSIsMywibmdNb2RlbENoYW5nZSIsIm5nTW9kZWwiLCJkaXNhYmxlZCJdLFsiY2xhc3MiLCJ0ZXh0LWNlbnRlciB3LTEwMCIsNCwibmdJZiJdLFsiaWQiLCJob3RUYWJsZSIsMSwibXQtMTUiLDMsInNldHRpbmdzIl0s'@; put 'WzEsImQtZmxleCIsImNsci1qdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiIsInAtMTAiLCJtdC0xNSIsInN1Ym1pc3Npb24tcmVzdWx0cyJdLFsiY2xhc3MiLCJjb2xvci1ncmVlbiIsNCwibmdJZiJdLFsiY2xhc3MiLCJjb2xvci1yZWQiLDQsIm5nSWYiXSxbImNkcy10ZXh0Iiwic2Vjb25kYXJ5'@; put 'IHJlZ3VsYXIiLDQsIm5nSWYiXSxbImNsYXNzIiwiYnRuIGJ0bi1wcmltYXJ5IG10LTEwIiwzLCJjbHJMb2FkaW5nIiwiY2xpY2siLDQsIm5nSWYiXSxbMSwiYnRuIiwiYnRuLXByaW1hcnktb3V0bGluZSIsIm10LTEwIiwzLCJjbGljayJdLFsxLCJjb2xvci1ncmVlbiJdLFsxLCJjb2xvci1y'@; put 'ZWQiXSxbMSwiYnRuIiwiYnRuLXByaW1hcnkiLCJtdC0xMCIsMywiY2xpY2siLCJjbHJMb2FkaW5nIl0sWzEsImVycm9yLWZpZWxkIiwibXQtMTUiXSxbMSwibG9nLXdyYXBwZXIiXSxbImNsYXNzIiwiZC1mbGV4IGNsci1hbGlnbi1pdGVtcy1jZW50ZXIiLDQsIm5nSWYiXSxbMSwiZC1mbGV4'@; put 'IiwiY2xyLWFsaWduLWl0ZW1zLWNlbnRlciJdLFsiY2xyU21hbGwiLCIiLDEsIm1sLTUiXSxbMSwidGV4dC1jZW50ZXIiLCJ3LTEwMCJdLFsxLCJzcGlubmVyLW1kIl0sWzEsImQtZmxleCIsImNsci1qdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiIsInAtMTAiXSxbImNkcy10ZXh0IiwiYm9keSIs'@; put 'MSwibGljZW5jZS1saW1pdC1ub3RpY2UiLCJtdC0wIiwibWItMTUiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZCxoKXtpZigxJmQpe2NvbnN0IGY9T24oKTtkZSgwLCJhcHAtc2lkZWJhciIpLGd0KDEsSnZ0LDIsMCwiZGl2Iiw0KSgyLFF2dCw1LDEsImRpdiIsNSkoMyxoeXQsNiwyLCJuZy1jb250'@; put 'YWluZXIiLDYpKDQsbXl0LDUsMSwibmctY29udGFpbmVyIiw2KSxoZSgpLGRlKDUsImRpdiIsNywwKSg3LCJkaXYiLDgpKDgsImRpdiIsOSkoOSwicCIsMTApLE9lKDEwLCJNdWx0aSBEYXRhc2V0IExvYWQiKSxoZSgpKCksZ3QoMTEsdnl0LDQsMCwiZGl2IiwxMSkoMTIsenl0LDUsNCwibmct'@; put 'Y29udGFpbmVyIiw2KSxoZSgpKCksZGUoMTMsImNsci1tb2RhbCIsMTIpLHBpKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKE0pe3JldHVybiB3dChmKSxnaShoLnNob3dTdWJtaXRSZWFzb25Nb2RhbCxNKXx8KGguc2hvd1N1Ym1pdFJlYXNvbk1vZGFsPU0pLEN0KE0pfSksZGUoMTQs'@; put 'ImgzIiwxMyksT2UoMTUpLGhlKCksZGUoMTYsImRpdiIsMTQpLGd0KDE3LFV5dCwyLDEsInAiLDE1KSxkZSgxOCwiZGl2IiwxNikoMTksImxhYmVsIiwxNyksT2UoMjAsIk1lc3NhZ2UiKSxoZSgpLGRlKDIxLCJ0ZXh0YXJlYSIsMTgpLHBpKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihNKXty'@; put 'ZXR1cm4gd3QoZiksZ2koaC5zdWJtaXRSZWFzb25NZXNzYWdlLE0pfHwoaC5zdWJtaXRSZWFzb25NZXNzYWdlPU0pLEN0KE0pfSksaGUoKSgpLGRlKDIyLCJwIiwxOSksT2UoMjMsIiBUYWJsZXMgd2lsbCBiZSBzZW50IHNlcXVlbnRpYWxseSwgbG9ncyB3aWxsIGJlIGF2YWlsYWJsZSBhZnRl'@; put 'ciBhbGwgdGFibGVzIGFyZSBzdWJtaXR0ZWQuICIpLGhlKCkoKSxkZSgyNCwiZGl2IiwyMCkoMjUsImJ1dHRvbiIsMjEpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoZiksQ3QoaC5zaG93U3VibWl0UmVhc29uTW9kYWw9ITEpfSksT2UoMjYsIiBDYW5jZWwgIiksaGUoKSxkZSgy'@; put 'NywiYnV0dG9uIiwyMiksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChmKSxDdChoLnN1Ym1pdFRhYmxlcygpKX0pLE9lKDI4LCIgU3VibWl0ICIpLGhlKCkoKSgpLGRlKDI5LCJjbHItbW9kYWwiLDEyKSxwaSgiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihNKXtyZXR1cm4g'@; put 'd3QoZiksZ2koaC5jc3ZTdWJtaXR0aW5nLE0pfHwoaC5jc3ZTdWJtaXR0aW5nPU0pLEN0KE0pfSksZGUoMzAsImgzIiwxMyksT2UoMzEpLGhlKCksZGUoMzIsImRpdiIsMTQpKDMzLCJkaXYiLDIzKSxXdCgzNCwiY2xyLXNwaW5uZXIiLDI0KSxoZSgpLGRlKDM1LCJwIiwyNSksT2UoMzYsIiBU'@; put 'aGlzIHdpbGwgdGFrZSBmZXcgbW9tZW50cyAiKSxoZSgpKCkoKX0yJmQmJihmZSgpLE1lKCJuZ0lmIixoLmRhdGFzZXRzTG9hZGluZyksZmUoKSxNZSgibmdJZiIsIWgucGFyc2VkRGF0YXNldHMubGVuZ3RoKSxmZSgpLE1lKCJuZ0lmIixoLnBhcnNlZERhdGFzZXRzLmxlbmd0aCYmIWguc3Vi'@; put 'bWl0dGVkQ3N2RGF0YXNldHMubGVuZ3RoKSxmZSgpLE1lKCJuZ0lmIixoLnN1Ym1pdHRlZENzdkRhdGFzZXRzLmxlbmd0aCksZmUoNyksTWUoIm5nSWYiLG51bGw9PT1oLnNlbGVjdGVkRmlsZSYmIWguc3VibWl0dGluZ0NzdiksZmUoKSxNZSgibmdJZiIsbnVsbCE9PWguc2VsZWN0ZWRGaWxl'@; put 'fHxoLnN1Ym1pdHRpbmdDc3YpLGZlKCksZmkoImNsck1vZGFsT3BlbiIsaC5zaG93U3VibWl0UmVhc29uTW9kYWwpLE1lKCJjbHJNb2RhbENsb3NhYmxlIiwhMSksZmUoMiksQnUoIiBTdWJtaXQgIixoLnRhYmxlc1RvU3VibWl0Lmxlbmd0aCwiICIsMT09PWgudGFibGVzVG9TdWJtaXQubGVu'@; put 'Z3RoPyJ0YWJsZSI6InRhYmxlcyIsIiBmb3IgYXBwcm92YWwgIiksZmUoMiksTWUoIm5nSWYiLGgubGljZW5jZVN0YXRlLnZhbHVlLnN1Ym1pdF9yb3dzX2xpbWl0IT09aC5JbmZpbml0eSksZmUoNCksZmkoIm5nTW9kZWwiLGguc3VibWl0UmVhc29uTWVzc2FnZSksZmUoNCksTWUoImRpc2Fi'@; put 'bGVkIixoLnN1Ym1pdExvYWRpbmcpLGZlKDIpLE1lKCJjbHJMb2FkaW5nIixoLnN1Ym1pdExvYWRpbmcpLGZlKDIpLGZpKCJjbHJNb2RhbE9wZW4iLGguY3N2U3VibWl0dGluZyksTWUoImNsck1vZGFsQ2xvc2FibGUiLCExKSxmZSgyKSxCdSgiIFN1Ym1pdHRpbmcgIixoLmNzdkZpbGVzLmxl'@; put 'bmd0aCwiIENTViAiLDE9PT1oLmNzdkZpbGVzLmxlbmd0aD8iZmlsZSI6ImZpbGVzIiwiICIpKX0sZGVwZW5kZW5jaWVzOlskZyxsMSxHbCxNZCx0bCx1WSxXbyxBaCxQZCxoZyxPbCxlbyxydSxZdSxWMCxIMixjbyxXTCxJZCx4aCxyTyx2NyxiNyx5NyxSZCxhNCxRcyxiYSxpWl0sZW5jYXBz'@; put 'dWxhdGlvbjoyfSl9fXJldHVybiBjfSkoKX1dfV07bGV0IFd5dD0oKCk9PntjbGFzcyBje3N0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpfX1zdGF0aWN7dGhpcy5cdTAyNzVtb2Q9QWkoe3R5cGU6Y30pfXN0YXRpY3t0aGlzLlx1MDI3NWluaj1Bcih7'@; put 'aW1wb3J0czpbQmMuZm9yQ2hpbGQoWnl0KSxCY119KX19cmV0dXJuIGN9KSgpO0VBKCk7bGV0IFl5dD0oKCk9PntjbGFzcyBje3N0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpfX1zdGF0aWN7dGhpcy5cdTAyNzVtb2Q9QWkoe3R5cGU6Y30pfXN0YXRp'@; put 'Y3t0aGlzLlx1MDI3NWluaj1Bcih7aW1wb3J0czpbWjksV3l0LGtjLEIwLFc5LExhLEFBLGNmXX0pfX1yZXR1cm4gY30pKCk7Y29uc3QgR3l0PVt7cGF0aDoiIixjb21wb25lbnQ6Qjl0LGNoaWxkcmVuOlt7cGF0aDoiIixwYXRoTWF0Y2g6ImZ1bGwiLHJlZGlyZWN0VG86InRhYmxlcyJ9LHtw'@; put 'YXRoOiJ0YWJsZXMiLGNvbXBvbmVudDp4dnR9LHtwYXRoOiJleGNlbC1tYXBzIixsb2FkQ2hpbGRyZW46KCk9Pkd2dH0se3BhdGg6Im11bHRpLWxvYWQiLGxvYWRDaGlsZHJlbjooKT0+WXl0fV19XTtsZXQgJHl0PSgoKT0+e2NsYXNzIGN7c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9u'@; put 'KGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSl9c3RhdGlje3RoaXMuXHUwMjc1aW5qPUFyKHtpbXBvcnRzOltCYy5mb3JDaGlsZChHeXQpLEJjXX0pfX1yZXR1cm4gY30pKCksS3l0PSgoKT0+e2NsYXNzIGN7c3RhdGlje3RoaXMuXHUwMjc1'@; put 'ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSl9c3RhdGlje3RoaXMuXHUwMjc1aW5qPUFyKHtpbXBvcnRzOlskeXQsa2MsQjAsVzksTGEsQUEsY2ZdfSl9fXJldHVybiBjfSkoKSxvdGU9KCgpPT57Y2xhc3MgY3tjb25z'@; put 'dHJ1Y3RvcihhLGQpe3RoaXMubGljZW5jZVNlcnZpY2U9YSx0aGlzLnJvdXRlcj1kfWNhbkFjdGl2YXRlKGEsZCl7cmV0dXJuISEodm9pZCAwIT09ZD8ucm9vdC5xdWVyeVBhcmFtcy5mb3JjZXx8ZD8udXJsLmluY2x1ZGVzKCJsaWNlbnNpbmcvdXBkYXRlIikmJnRoaXMubGljZW5jZVNlcnZp'@; put 'Y2UuaXNBcHBBY3RpdmF0ZWR8fG51bGwhPT10aGlzLmxpY2VuY2VTZXJ2aWNlLmlzQXBwQWN0aXZhdGVkLnZhbHVlJiYhMT09PXRoaXMubGljZW5jZVNlcnZpY2UuaXNBcHBBY3RpdmF0ZWQudmFsdWUpfHwodGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL2hvbWUiKSwhMSl9Y2FuRGVhY3Rp'@; put 'dmF0ZShhLGQsaCxmKXtyZXR1cm4hKGg/LnVybC5pbmNsdWRlcygibGljZW5zaW5nL3JlZ2lzdGVyIil8fHRoaXMubGljZW5jZVNlcnZpY2UuYXBwTG9ja2VkLnZhbHVlKX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKShDcihjMSksQ3IoTG8pKX19'@; put 'c3RhdGlje3RoaXMuXHUwMjc1cHJvdj1ybih7dG9rZW46YyxmYWN0b3J5OmMuXHUwMjc1ZmFjfSl9fXJldHVybiBjfSkoKTtsZXQgQzY9e2FzeW5jOiExLGJhc2VVcmw6bnVsbCxicmVha3M6ITEsZXh0ZW5zaW9uczpudWxsLGdmbTohMCxoZWFkZXJJZHM6ITAsaGVhZGVyUHJlZml4OiIiLGhp'@; put 'Z2hsaWdodDpudWxsLGhvb2tzOm51bGwsbGFuZ1ByZWZpeDoibGFuZ3VhZ2UtIixtYW5nbGU6ITAscGVkYW50aWM6ITEscmVuZGVyZXI6bnVsbCxzYW5pdGl6ZTohMSxzYW5pdGl6ZXI6bnVsbCxzaWxlbnQ6ITEsc21hcnR5cGFudHM6ITEsdG9rZW5pemVyOm51bGwsd2Fsa1Rva2VuczpudWxs'@; put 'LHhodG1sOiExfTtmdW5jdGlvbiBpOGUoYyl7QzY9Y31jb25zdCBhOGU9L1smPD4iJ10vLFh5dD1uZXcgUmVnRXhwKGE4ZS5zb3VyY2UsImciKSxzOGU9L1s8PiInXXwmKD8hKCNcZHsxLDd9fCNbWHhdW2EtZkEtRjAtOV17MSw2fXxcdyspOykvLHF5dD1uZXcgUmVnRXhwKHM4ZS5zb3VyY2Us'@; put 'ImciKSxKeXQ9eyImIjoiJmFtcDsiLCI8IjoiJmx0OyIsIj4iOiImZ3Q7IiwnIic6IiZxdW90OyIsIiciOiImIzM5OyJ9LG84ZT1jPT5KeXRbY107ZnVuY3Rpb24geDEoYyxsKXtpZihsKXtpZihhOGUudGVzdChjKSlyZXR1cm4gYy5yZXBsYWNlKFh5dCxvOGUpfWVsc2UgaWYoczhlLnRlc3Qo'@; put 'YykpcmV0dXJuIGMucmVwbGFjZShxeXQsbzhlKTtyZXR1cm4gY31jb25zdCBReXQ9LyYoIyg/OlxkKyl8KD86I3hbMC05QS1GYS1mXSspfCg/Olx3KykpOz8vZ2k7ZnVuY3Rpb24gbDhlKGMpe3JldHVybiBjLnJlcGxhY2UoUXl0LChsLGEpPT4iY29sb24iPT09KGE9YS50b0xvd2VyQ2FzZSgp'@; put 'KT8iOiI6IiMiPT09YS5jaGFyQXQoMCk/IngiPT09YS5jaGFyQXQoMSk/U3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChhLnN1YnN0cmluZygyKSwxNikpOlN0cmluZy5mcm9tQ2hhckNvZGUoK2Euc3Vic3RyaW5nKDEpKToiIil9Y29uc3QgZWJ0PS8oXnxbXlxbXSlcXi9nO2Z1bmN0aW9u'@; put 'IEFsKGMsbCl7Yz0ic3RyaW5nIj09dHlwZW9mIGM/YzpjLnNvdXJjZSxsPWx8fCIiO2NvbnN0IGE9e3JlcGxhY2U6KGQsaCk9PihoPShoPWguc291cmNlfHxoKS5yZXBsYWNlKGVidCwiJDEiKSxjPWMucmVwbGFjZShkLGgpLGEpLGdldFJlZ2V4OigpPT5uZXcgUmVnRXhwKGMsbCl9O3JldHVy'@; put 'biBhfWNvbnN0IHRidD0vW15cdzpdL2csbmJ0PS9eJHxeW2Etel1bYS16MC05Ky4tXSo6fF5bPyNdL2k7ZnVuY3Rpb24gYzhlKGMsbCxhKXtpZihjKXtsZXQgZDt0cnl7ZD1kZWNvZGVVUklDb21wb25lbnQobDhlKGEpKS5yZXBsYWNlKHRidCwiIikudG9Mb3dlckNhc2UoKX1jYXRjaHtyZXR1'@; put 'cm4gbnVsbH1pZigwPT09ZC5pbmRleE9mKCJqYXZhc2NyaXB0OiIpfHwwPT09ZC5pbmRleE9mKCJ2YnNjcmlwdDoiKXx8MD09PWQuaW5kZXhPZigiZGF0YToiKSlyZXR1cm4gbnVsbH1sJiYhbmJ0LnRlc3QoYSkmJihhPWZ1bmN0aW9uIHNidChjLGwpe2ROWyIgIitjXXx8KGROWyIgIitjXT1y'@; put 'YnQudGVzdChjKT9jKyIvIjpmTihjLCIvIiwhMCkpO2NvbnN0IGE9LTE9PT0oYz1kTlsiICIrY10pLmluZGV4T2YoIjoiKTtyZXR1cm4iLy8iPT09bC5zdWJzdHJpbmcoMCwyKT9hP2w6Yy5yZXBsYWNlKGlidCwiJDEiKStsOiIvIj09PWwuY2hhckF0KDApP2E/bDpjLnJlcGxhY2UoYWJ0LCIk'@; put 'MSIpK2w6YytsfShsLGEpKTt0cnl7YT1lbmNvZGVVUkkoYSkucmVwbGFjZSgvJTI1L2csIiUiKX1jYXRjaHtyZXR1cm4gbnVsbH1yZXR1cm4gYX1jb25zdCBkTj17fSxyYnQ9L15bXjpdKzpcLypbXi9dKiQvLGlidD0vXihbXjpdKzopW1xzXFNdKiQvLGFidD0vXihbXjpdKzpcLypbXi9dKilb'@; put 'XHNcU10qJC8saE49e2V4ZWM6ZnVuY3Rpb24oKXt9fTtmdW5jdGlvbiB1OGUoYyxsKXtjb25zdCBkPWMucmVwbGFjZSgvXHwvZywoZix2LE0pPT57bGV0IEk9ITEsRz12O2Zvcig7LS1HPj0wJiYiXFwiPT09TVtHXTspST0hSTtyZXR1cm4gST8ifCI6IiB8In0pLnNwbGl0KC8gXHwvKTtsZXQg'@; put 'aD0wO2lmKGRbMF0udHJpbSgpfHxkLnNoaWZ0KCksZC5sZW5ndGg+MCYmIWRbZC5sZW5ndGgtMV0udHJpbSgpJiZkLnBvcCgpLGQubGVuZ3RoPmwpZC5zcGxpY2UobCk7ZWxzZSBmb3IoO2QubGVuZ3RoPGw7KWQucHVzaCgiIik7Zm9yKDtoPGQubGVuZ3RoO2grKylkW2hdPWRbaF0udHJpbSgp'@; put 'LnJlcGxhY2UoL1xcXHwvZywifCIpO3JldHVybiBkfWZ1bmN0aW9uIGZOKGMsbCxhKXtjb25zdCBkPWMubGVuZ3RoO2lmKDA9PT1kKXJldHVybiIiO2xldCBoPTA7Zm9yKDtoPGQ7KXtjb25zdCBmPWMuY2hhckF0KGQtaC0xKTtpZihmIT09bHx8YSl7aWYoZj09PWx8fCFhKWJyZWFrO2grK31l'@; put 'bHNlIGgrK31yZXR1cm4gYy5zbGljZSgwLGQtaCl9ZnVuY3Rpb24gZDhlKGMsbCxhLGQpe2NvbnN0IGg9bC5ocmVmLGY9bC50aXRsZT94MShsLnRpdGxlKTpudWxsLHY9Y1sxXS5yZXBsYWNlKC9cXChbXFtcXV0pL2csIiQxIik7aWYoIiEiIT09Y1swXS5jaGFyQXQoMCkpe2Quc3RhdGUuaW5M'@; put 'aW5rPSEwO2NvbnN0IE09e3R5cGU6ImxpbmsiLHJhdzphLGhyZWY6aCx0aXRsZTpmLHRleHQ6dix0b2tlbnM6ZC5pbmxpbmVUb2tlbnModil9O3JldHVybiBkLnN0YXRlLmluTGluaz0hMSxNfXJldHVybnt0eXBlOiJpbWFnZSIscmF3OmEsaHJlZjpoLHRpdGxlOmYsdGV4dDp4MSh2KX19Y2xh'@; put 'c3MgcE57Y29uc3RydWN0b3IobCl7dGhpcy5vcHRpb25zPWx8fEM2fXNwYWNlKGwpe2NvbnN0IGE9dGhpcy5ydWxlcy5ibG9jay5uZXdsaW5lLmV4ZWMobCk7aWYoYSYmYVswXS5sZW5ndGg+MClyZXR1cm57dHlwZToic3BhY2UiLHJhdzphWzBdfX1jb2RlKGwpe2NvbnN0IGE9dGhpcy5ydWxl'@; put 'cy5ibG9jay5jb2RlLmV4ZWMobCk7aWYoYSl7Y29uc3QgZD1hWzBdLnJlcGxhY2UoL14gezEsNH0vZ20sIiIpO3JldHVybnt0eXBlOiJjb2RlIixyYXc6YVswXSxjb2RlQmxvY2tTdHlsZToiaW5kZW50ZWQiLHRleHQ6dGhpcy5vcHRpb25zLnBlZGFudGljP2Q6Zk4oZCwiXG4iKX19fWZlbmNl'@; put 'cyhsKXtjb25zdCBhPXRoaXMucnVsZXMuYmxvY2suZmVuY2VzLmV4ZWMobCk7aWYoYSl7Y29uc3QgZD1hWzBdLGg9ZnVuY3Rpb24gY2J0KGMsbCl7Y29uc3QgYT1jLm1hdGNoKC9eKFxzKykoPzpgYGApLyk7aWYobnVsbD09PWEpcmV0dXJuIGw7Y29uc3QgZD1hWzFdO3JldHVybiBsLnNwbGl0'@; put 'KCJcbiIpLm1hcChoPT57Y29uc3QgZj1oLm1hdGNoKC9eXHMrLyk7aWYobnVsbD09PWYpcmV0dXJuIGg7Y29uc3Rbdl09ZjtyZXR1cm4gdi5sZW5ndGg+PWQubGVuZ3RoP2guc2xpY2UoZC5sZW5ndGgpOmh9KS5qb2luKCJcbiIpfShkLGFbM118fCIiKTtyZXR1cm57dHlwZToiY29kZSIscmF3'@; put 'OmQsbGFuZzphWzJdP2FbMl0udHJpbSgpLnJlcGxhY2UodGhpcy5ydWxlcy5pbmxpbmUuX2VzY2FwZXMsIiQxIik6YVsyXSx0ZXh0Omh9fX1oZWFkaW5nKGwpe2NvbnN0IGE9dGhpcy5ydWxlcy5ibG9jay5oZWFkaW5nLmV4ZWMobCk7aWYoYSl7bGV0IGQ9YVsyXS50cmltKCk7aWYoLyMkLy50'@; put 'ZXN0KGQpKXtjb25zdCBoPWZOKGQsIiMiKTsodGhpcy5vcHRpb25zLnBlZGFudGljfHwhaHx8LyAkLy50ZXN0KGgpKSYmKGQ9aC50cmltKCkpfXJldHVybnt0eXBlOiJoZWFkaW5nIixyYXc6YVswXSxkZXB0aDphWzFdLmxlbmd0aCx0ZXh0OmQsdG9rZW5zOnRoaXMubGV4ZXIuaW5saW5lKGQp'@; put 'fX19aHIobCl7Y29uc3QgYT10aGlzLnJ1bGVzLmJsb2NrLmhyLmV4ZWMobCk7aWYoYSlyZXR1cm57dHlwZToiaHIiLHJhdzphWzBdfX1ibG9ja3F1b3RlKGwpe2NvbnN0IGE9dGhpcy5ydWxlcy5ibG9jay5ibG9ja3F1b3RlLmV4ZWMobCk7aWYoYSl7Y29uc3QgZD1hWzBdLnJlcGxhY2UoL14g'@; put 'Kj5bIFx0XT8vZ20sIiIpLGg9dGhpcy5sZXhlci5zdGF0ZS50b3A7dGhpcy5sZXhlci5zdGF0ZS50b3A9ITA7Y29uc3QgZj10aGlzLmxleGVyLmJsb2NrVG9rZW5zKGQpO3JldHVybiB0aGlzLmxleGVyLnN0YXRlLnRvcD1oLHt0eXBlOiJibG9ja3F1b3RlIixyYXc6YVswXSx0b2tlbnM6Zix0'@; put 'ZXh0OmR9fX1saXN0KGwpe2xldCBhPXRoaXMucnVsZXMuYmxvY2subGlzdC5leGVjKGwpO2lmKGEpe2xldCBkLGgsZix2LE0sSSxHLHJlLHVlLHllLEVlLEJlLEdlPWFbMV0udHJpbSgpO2NvbnN0IHN0PUdlLmxlbmd0aD4xLHB0PXt0eXBlOiJsaXN0IixyYXc6IiIsb3JkZXJlZDpzdCxzdGFy'@; put 'dDpzdD8rR2Uuc2xpY2UoMCwtMSk6IiIsbG9vc2U6ITEsaXRlbXM6W119O0dlPXN0P2BcXGR7MSw5fVxcJHtHZS5zbGljZSgtMSl9YDpgXFwke0dlfWAsdGhpcy5vcHRpb25zLnBlZGFudGljJiYoR2U9c3Q/R2U6IlsqKy1dIik7Y29uc3QgZHQ9bmV3IFJlZ0V4cChgXiggezAsM30ke0dlfSko'@; put 'KD86W1x0IF1bXlxcbl0qKT8oPzpcXG58JCkpYCk7Zm9yKDtsJiYoQmU9ITEsKGE9ZHQuZXhlYyhsKSkmJiF0aGlzLnJ1bGVzLmJsb2NrLmhyLnRlc3QobCkpOyl7aWYoZD1hWzBdLGw9bC5zdWJzdHJpbmcoZC5sZW5ndGgpLHJlPWFbMl0uc3BsaXQoIlxuIiwxKVswXS5yZXBsYWNlKC9eXHQr'@; put 'Lyxtbj0+IiAiLnJlcGVhdCgzKm1uLmxlbmd0aCkpLHVlPWwuc3BsaXQoIlxuIiwxKVswXSx0aGlzLm9wdGlvbnMucGVkYW50aWM/KHY9MixFZT1yZS50cmltTGVmdCgpKToodj1hWzJdLnNlYXJjaCgvW14gXS8pLHY9dj40PzE6dixFZT1yZS5zbGljZSh2KSx2Kz1hWzFdLmxlbmd0aCksST0h'@; put 'MSwhcmUmJi9eICokLy50ZXN0KHVlKSYmKGQrPXVlKyJcbiIsbD1sLnN1YnN0cmluZyh1ZS5sZW5ndGgrMSksQmU9ITApLCFCZSl7Y29uc3QgbW49bmV3IFJlZ0V4cChgXiB7MCwke01hdGgubWluKDMsdi0xKX19KD86WyorLV18XFxkezEsOX1bLildKSgoPzpbIFx0XVteXFxuXSopPyg/Olxc'@; put 'bnwkKSlgKSx3bj1uZXcgUmVnRXhwKGBeIHswLCR7TWF0aC5taW4oMyx2LTEpfX0oKD86LSAqKXszLH18KD86XyAqKXszLH18KD86XFwqICopezMsfSkoPzpcXG4rfCQpYCksaG49bmV3IFJlZ0V4cChgXiB7MCwke01hdGgubWluKDMsdi0xKX19KD86XGBcYFxgfH5+filgKSxNbj1uZXcgUmVn'@; put 'RXhwKGBeIHswLCR7TWF0aC5taW4oMyx2LTEpfX0jYCk7Zm9yKDtsJiYoeWU9bC5zcGxpdCgiXG4iLDEpWzBdLHVlPXllLHRoaXMub3B0aW9ucy5wZWRhbnRpYyYmKHVlPXVlLnJlcGxhY2UoL14gezEsNH0oPz0oIHs0fSkqW14gXSkvZywiICAiKSksIShobi50ZXN0KHVlKXx8TW4udGVzdCh1'@; put 'ZSl8fG1uLnRlc3QodWUpfHx3bi50ZXN0KGwpKSk7KXtpZih1ZS5zZWFyY2goL1teIF0vKT49dnx8IXVlLnRyaW0oKSlFZSs9IlxuIit1ZS5zbGljZSh2KTtlbHNle2lmKEl8fHJlLnNlYXJjaCgvW14gXS8pPj00fHxobi50ZXN0KHJlKXx8TW4udGVzdChyZSl8fHduLnRlc3QocmUpKWJyZWFr'@; put 'O0VlKz0iXG4iK3VlfSFJJiYhdWUudHJpbSgpJiYoST0hMCksZCs9eWUrIlxuIixsPWwuc3Vic3RyaW5nKHllLmxlbmd0aCsxKSxyZT11ZS5zbGljZSh2KX19cHQubG9vc2V8fChHP3B0Lmxvb3NlPSEwOi9cbiAqXG4gKiQvLnRlc3QoZCkmJihHPSEwKSksdGhpcy5vcHRpb25zLmdmbSYmKGg9'@; put 'L15cW1sgeFhdXF0gLy5leGVjKEVlKSxoJiYoZj0iWyBdICIhPT1oWzBdLEVlPUVlLnJlcGxhY2UoL15cW1sgeFhdXF0gKy8sIiIpKSkscHQuaXRlbXMucHVzaCh7dHlwZToibGlzdF9pdGVtIixyYXc6ZCx0YXNrOiEhaCxjaGVja2VkOmYsbG9vc2U6ITEsdGV4dDpFZX0pLHB0LnJhdys9ZH1w'@; put 'dC5pdGVtc1twdC5pdGVtcy5sZW5ndGgtMV0ucmF3PWQudHJpbVJpZ2h0KCkscHQuaXRlbXNbcHQuaXRlbXMubGVuZ3RoLTFdLnRleHQ9RWUudHJpbVJpZ2h0KCkscHQucmF3PXB0LnJhdy50cmltUmlnaHQoKTtjb25zdCBxdD1wdC5pdGVtcy5sZW5ndGg7Zm9yKE09MDtNPHF0O00rKylpZih0'@; put 'aGlzLmxleGVyLnN0YXRlLnRvcD0hMSxwdC5pdGVtc1tNXS50b2tlbnM9dGhpcy5sZXhlci5ibG9ja1Rva2VucyhwdC5pdGVtc1tNXS50ZXh0LFtdKSwhcHQubG9vc2Upe2NvbnN0IG1uPXB0Lml0ZW1zW01dLnRva2Vucy5maWx0ZXIoaG49PiJzcGFjZSI9PT1obi50eXBlKSx3bj1tbi5sZW5n'@; put 'dGg+MCYmbW4uc29tZShobj0+L1xuLipcbi8udGVzdChobi5yYXcpKTtwdC5sb29zZT13bn1pZihwdC5sb29zZSlmb3IoTT0wO008cXQ7TSsrKXB0Lml0ZW1zW01dLmxvb3NlPSEwO3JldHVybiBwdH19aHRtbChsKXtjb25zdCBhPXRoaXMucnVsZXMuYmxvY2suaHRtbC5leGVjKGwpO2lmKGEp'@; put 'e2NvbnN0IGQ9e3R5cGU6Imh0bWwiLGJsb2NrOiEwLHJhdzphWzBdLHByZTohdGhpcy5vcHRpb25zLnNhbml0aXplciYmKCJwcmUiPT09YVsxXXx8InNjcmlwdCI9PT1hWzFdfHwic3R5bGUiPT09YVsxXSksdGV4dDphWzBdfTtpZih0aGlzLm9wdGlvbnMuc2FuaXRpemUpe2NvbnN0IGg9dGhp'@; put 'cy5vcHRpb25zLnNhbml0aXplcj90aGlzLm9wdGlvbnMuc2FuaXRpemVyKGFbMF0pOngxKGFbMF0pO2QudHlwZT0icGFyYWdyYXBoIixkLnRleHQ9aCxkLnRva2Vucz10aGlzLmxleGVyLmlubGluZShoKX1yZXR1cm4gZH19ZGVmKGwpe2NvbnN0IGE9dGhpcy5ydWxlcy5ibG9jay5kZWYuZXhl'@; put 'YyhsKTtpZihhKXtjb25zdCBkPWFbMV0udG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9ccysvZywiICIpLGg9YVsyXT9hWzJdLnJlcGxhY2UoL148KC4qKT4kLywiJDEiKS5yZXBsYWNlKHRoaXMucnVsZXMuaW5saW5lLl9lc2NhcGVzLCIkMSIpOiIiLGY9YVszXT9hWzNdLnN1YnN0cmluZygxLGFb'@; put 'M10ubGVuZ3RoLTEpLnJlcGxhY2UodGhpcy5ydWxlcy5pbmxpbmUuX2VzY2FwZXMsIiQxIik6YVszXTtyZXR1cm57dHlwZToiZGVmIix0YWc6ZCxyYXc6YVswXSxocmVmOmgsdGl0bGU6Zn19fXRhYmxlKGwpe2NvbnN0IGE9dGhpcy5ydWxlcy5ibG9jay50YWJsZS5leGVjKGwpO2lmKGEpe2Nv'@; put 'bnN0IGQ9e3R5cGU6InRhYmxlIixoZWFkZXI6dThlKGFbMV0pLm1hcChoPT4oe3RleHQ6aH0pKSxhbGlnbjphWzJdLnJlcGxhY2UoL14gKnxcfCAqJC9nLCIiKS5zcGxpdCgvICpcfCAqLykscm93czphWzNdJiZhWzNdLnRyaW0oKT9hWzNdLnJlcGxhY2UoL1xuWyBcdF0qJC8sIiIpLnNwbGl0'@; put 'KCJcbiIpOltdfTtpZihkLmhlYWRlci5sZW5ndGg9PT1kLmFsaWduLmxlbmd0aCl7ZC5yYXc9YVswXTtsZXQgZix2LE0sSSxoPWQuYWxpZ24ubGVuZ3RoO2ZvcihmPTA7ZjxoO2YrKylkLmFsaWduW2ZdPS9eICotKzogKiQvLnRlc3QoZC5hbGlnbltmXSk/InJpZ2h0IjovXiAqOi0rOiAqJC8u'@; put 'dGVzdChkLmFsaWduW2ZdKT8iY2VudGVyIjovXiAqOi0rICokLy50ZXN0KGQuYWxpZ25bZl0pPyJsZWZ0IjpudWxsO2ZvcihoPWQucm93cy5sZW5ndGgsZj0wO2Y8aDtmKyspZC5yb3dzW2ZdPXU4ZShkLnJvd3NbZl0sZC5oZWFkZXIubGVuZ3RoKS5tYXAoRz0+KHt0ZXh0Okd9KSk7Zm9yKGg9'@; put 'ZC5oZWFkZXIubGVuZ3RoLHY9MDt2PGg7disrKWQuaGVhZGVyW3ZdLnRva2Vucz10aGlzLmxleGVyLmlubGluZShkLmhlYWRlclt2XS50ZXh0KTtmb3IoaD1kLnJvd3MubGVuZ3RoLHY9MDt2PGg7disrKWZvcihJPWQucm93c1t2XSxNPTA7TTxJLmxlbmd0aDtNKyspSVtNXS50b2tlbnM9dGhp'@; put 'cy5sZXhlci5pbmxpbmUoSVtNXS50ZXh0KTtyZXR1cm4gZH19fWxoZWFkaW5nKGwpe2NvbnN0IGE9dGhpcy5ydWxlcy5ibG9jay5saGVhZGluZy5leGVjKGwpO2lmKGEpcmV0dXJue3R5cGU6ImhlYWRpbmciLHJhdzphWzBdLGRlcHRoOiI9Ij09PWFbMl0uY2hhckF0KDApPzE6Mix0ZXh0OmFb'@; put 'MV0sdG9rZW5zOnRoaXMubGV4ZXIuaW5saW5lKGFbMV0pfX1wYXJhZ3JhcGgobCl7Y29uc3QgYT10aGlzLnJ1bGVzLmJsb2NrLnBhcmFncmFwaC5leGVjKGwpO2lmKGEpe2NvbnN0IGQ9IlxuIj09PWFbMV0uY2hhckF0KGFbMV0ubGVuZ3RoLTEpP2FbMV0uc2xpY2UoMCwtMSk6YVsxXTtyZXR1'@; put 'cm57dHlwZToicGFyYWdyYXBoIixyYXc6YVswXSx0ZXh0OmQsdG9rZW5zOnRoaXMubGV4ZXIuaW5saW5lKGQpfX19dGV4dChsKXtjb25zdCBhPXRoaXMucnVsZXMuYmxvY2sudGV4dC5leGVjKGwpO2lmKGEpcmV0dXJue3R5cGU6InRleHQiLHJhdzphWzBdLHRleHQ6YVswXSx0b2tlbnM6dGhp'@; put 'cy5sZXhlci5pbmxpbmUoYVswXSl9fWVzY2FwZShsKXtjb25zdCBhPXRoaXMucnVsZXMuaW5saW5lLmVzY2FwZS5leGVjKGwpO2lmKGEpcmV0dXJue3R5cGU6ImVzY2FwZSIscmF3OmFbMF0sdGV4dDp4MShhWzFdKX19dGFnKGwpe2NvbnN0IGE9dGhpcy5ydWxlcy5pbmxpbmUudGFnLmV4ZWMo'@; put 'bCk7aWYoYSlyZXR1cm4hdGhpcy5sZXhlci5zdGF0ZS5pbkxpbmsmJi9ePGEgL2kudGVzdChhWzBdKT90aGlzLmxleGVyLnN0YXRlLmluTGluaz0hMDp0aGlzLmxleGVyLnN0YXRlLmluTGluayYmL148XC9hPi9pLnRlc3QoYVswXSkmJih0aGlzLmxleGVyLnN0YXRlLmluTGluaz0hMSksIXRo'@; put 'aXMubGV4ZXIuc3RhdGUuaW5SYXdCbG9jayYmL148KHByZXxjb2RlfGtiZHxzY3JpcHQpKFxzfD4pL2kudGVzdChhWzBdKT90aGlzLmxleGVyLnN0YXRlLmluUmF3QmxvY2s9ITA6dGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrJiYvXjxcLyhwcmV8Y29kZXxrYmR8c2NyaXB0KShcc3w+KS9p'@; put 'LnRlc3QoYVswXSkmJih0aGlzLmxleGVyLnN0YXRlLmluUmF3QmxvY2s9ITEpLHt0eXBlOnRoaXMub3B0aW9ucy5zYW5pdGl6ZT8idGV4dCI6Imh0bWwiLHJhdzphWzBdLGluTGluazp0aGlzLmxleGVyLnN0YXRlLmluTGluayxpblJhd0Jsb2NrOnRoaXMubGV4ZXIuc3RhdGUuaW5SYXdCbG9j'@; put 'ayxibG9jazohMSx0ZXh0OnRoaXMub3B0aW9ucy5zYW5pdGl6ZT90aGlzLm9wdGlvbnMuc2FuaXRpemVyP3RoaXMub3B0aW9ucy5zYW5pdGl6ZXIoYVswXSk6eDEoYVswXSk6YVswXX19bGluayhsKXtjb25zdCBhPXRoaXMucnVsZXMuaW5saW5lLmxpbmsuZXhlYyhsKTtpZihhKXtjb25zdCBk'@; put 'PWFbMl0udHJpbSgpO2lmKCF0aGlzLm9wdGlvbnMucGVkYW50aWMmJi9ePC8udGVzdChkKSl7aWYoIS8+JC8udGVzdChkKSlyZXR1cm47Y29uc3Qgdj1mTihkLnNsaWNlKDAsLTEpLCJcXCIpO2lmKChkLmxlbmd0aC12Lmxlbmd0aCklMj09MClyZXR1cm59ZWxzZXtjb25zdCB2PWZ1bmN0aW9u'@; put 'IG9idChjLGwpe2lmKC0xPT09Yy5pbmRleE9mKGxbMV0pKXJldHVybi0xO2NvbnN0IGE9Yy5sZW5ndGg7bGV0IGQ9MCxoPTA7Zm9yKDtoPGE7aCsrKWlmKCJcXCI9PT1jW2hdKWgrKztlbHNlIGlmKGNbaF09PT1sWzBdKWQrKztlbHNlIGlmKGNbaF09PT1sWzFdJiYoZC0tLGQ8MCkpcmV0dXJu'@; put 'IGg7cmV0dXJuLTF9KGFbMl0sIigpIik7aWYodj4tMSl7Y29uc3QgST0oMD09PWFbMF0uaW5kZXhPZigiISIpPzU6NCkrYVsxXS5sZW5ndGgrdjthWzJdPWFbMl0uc3Vic3RyaW5nKDAsdiksYVswXT1hWzBdLnN1YnN0cmluZygwLEkpLnRyaW0oKSxhWzNdPSIifX1sZXQgaD1hWzJdLGY9IiI7'@; put 'aWYodGhpcy5vcHRpb25zLnBlZGFudGljKXtjb25zdCB2PS9eKFteJyJdKlteXHNdKVxzKyhbJyJdKSguKilcMi8uZXhlYyhoKTt2JiYoaD12WzFdLGY9dlszXSl9ZWxzZSBmPWFbM10/YVszXS5zbGljZSgxLC0xKToiIjtyZXR1cm4gaD1oLnRyaW0oKSwvXjwvLnRlc3QoaCkmJihoPXRoaXMu'@; put 'b3B0aW9ucy5wZWRhbnRpYyYmIS8+JC8udGVzdChkKT9oLnNsaWNlKDEpOmguc2xpY2UoMSwtMSkpLGQ4ZShhLHtocmVmOmgmJmgucmVwbGFjZSh0aGlzLnJ1bGVzLmlubGluZS5fZXNjYXBlcywiJDEiKSx0aXRsZTpmJiZmLnJlcGxhY2UodGhpcy5ydWxlcy5pbmxpbmUuX2VzY2FwZXMsIiQx'@; put 'Iil9LGFbMF0sdGhpcy5sZXhlcil9fXJlZmxpbmsobCxhKXtsZXQgZDtpZigoZD10aGlzLnJ1bGVzLmlubGluZS5yZWZsaW5rLmV4ZWMobCkpfHwoZD10aGlzLnJ1bGVzLmlubGluZS5ub2xpbmsuZXhlYyhsKSkpe2xldCBoPShkWzJdfHxkWzFdKS5yZXBsYWNlKC9ccysvZywiICIpO2lmKGg9'@; put 'YVtoLnRvTG93ZXJDYXNlKCldLCFoKXtjb25zdCBmPWRbMF0uY2hhckF0KDApO3JldHVybnt0eXBlOiJ0ZXh0IixyYXc6Zix0ZXh0OmZ9fXJldHVybiBkOGUoZCxoLGRbMF0sdGhpcy5sZXhlcil9fWVtU3Ryb25nKGwsYSxkPSIiKXtsZXQgaD10aGlzLnJ1bGVzLmlubGluZS5lbVN0cm9uZy5s'@; put 'RGVsaW0uZXhlYyhsKTtpZighKCFofHxoWzNdJiZkLm1hdGNoKC9bXHB7TH1ccHtOfV0vdSkpJiYoIWhbMV0mJiFoWzJdfHwhZHx8dGhpcy5ydWxlcy5pbmxpbmUucHVuY3R1YXRpb24uZXhlYyhkKSkpe2NvbnN0IHY9aFswXS5sZW5ndGgtMTtsZXQgTSxJLEc9dixyZT0wO2NvbnN0IHVlPSIq'@; put 'Ij09PWhbMF1bMF0/dGhpcy5ydWxlcy5pbmxpbmUuZW1TdHJvbmcuckRlbGltQXN0OnRoaXMucnVsZXMuaW5saW5lLmVtU3Ryb25nLnJEZWxpbVVuZDtmb3IodWUubGFzdEluZGV4PTAsYT1hLnNsaWNlKC0xKmwubGVuZ3RoK3YpO251bGwhPShoPXVlLmV4ZWMoYSkpOyl7aWYoTT1oWzFdfHxo'@; put 'WzJdfHxoWzNdfHxoWzRdfHxoWzVdfHxoWzZdLCFNKWNvbnRpbnVlO2lmKEk9TS5sZW5ndGgsaFszXXx8aFs0XSl7Rys9STtjb250aW51ZX1pZigoaFs1XXx8aFs2XSkmJnYlMyYmISgoditJKSUzKSl7cmUrPUk7Y29udGludWV9aWYoRy09SSxHPjApY29udGludWU7ST1NYXRoLm1pbihJLEkr'@; put 'RytyZSk7Y29uc3QgeWU9bC5zbGljZSgwLHYraC5pbmRleCtJKzEpO2lmKE1hdGgubWluKHYsSSklMil7Y29uc3QgQmU9eWUuc2xpY2UoMSwtMSk7cmV0dXJue3R5cGU6ImVtIixyYXc6eWUsdGV4dDpCZSx0b2tlbnM6dGhpcy5sZXhlci5pbmxpbmVUb2tlbnMoQmUpfX1jb25zdCBFZT15ZS5z'@; put 'bGljZSgyLC0yKTtyZXR1cm57dHlwZToic3Ryb25nIixyYXc6eWUsdGV4dDpFZSx0b2tlbnM6dGhpcy5sZXhlci5pbmxpbmVUb2tlbnMoRWUpfX19fWNvZGVzcGFuKGwpe2NvbnN0IGE9dGhpcy5ydWxlcy5pbmxpbmUuY29kZS5leGVjKGwpO2lmKGEpe2xldCBkPWFbMl0ucmVwbGFjZSgvXG4v'@; put 'ZywiICIpO2NvbnN0IGg9L1teIF0vLnRlc3QoZCksZj0vXiAvLnRlc3QoZCkmJi8gJC8udGVzdChkKTtyZXR1cm4gaCYmZiYmKGQ9ZC5zdWJzdHJpbmcoMSxkLmxlbmd0aC0xKSksZD14MShkLCEwKSx7dHlwZToiY29kZXNwYW4iLHJhdzphWzBdLHRleHQ6ZH19fWJyKGwpe2NvbnN0IGE9dGhp'@; put 'cy5ydWxlcy5pbmxpbmUuYnIuZXhlYyhsKTtpZihhKXJldHVybnt0eXBlOiJiciIscmF3OmFbMF19fWRlbChsKXtjb25zdCBhPXRoaXMucnVsZXMuaW5saW5lLmRlbC5leGVjKGwpO2lmKGEpcmV0dXJue3R5cGU6ImRlbCIscmF3OmFbMF0sdGV4dDphWzJdLHRva2Vuczp0aGlzLmxleGVyLmlu'@; put 'bGluZVRva2VucyhhWzJdKX19YXV0b2xpbmsobCxhKXtjb25zdCBkPXRoaXMucnVsZXMuaW5saW5lLmF1dG9saW5rLmV4ZWMobCk7aWYoZCl7bGV0IGgsZjtyZXR1cm4iQCI9PT1kWzJdPyhoPXgxKHRoaXMub3B0aW9ucy5tYW5nbGU/YShkWzFdKTpkWzFdKSxmPSJtYWlsdG86IitoKTooaD14'@; put 'MShkWzFdKSxmPWgpLHt0eXBlOiJsaW5rIixyYXc6ZFswXSx0ZXh0OmgsaHJlZjpmLHRva2Vuczpbe3R5cGU6InRleHQiLHJhdzpoLHRleHQ6aH1dfX19dXJsKGwsYSl7bGV0IGQ7aWYoZD10aGlzLnJ1bGVzLmlubGluZS51cmwuZXhlYyhsKSl7bGV0IGgsZjtpZigiQCI9PT1kWzJdKWg9eDEo'@; put 'dGhpcy5vcHRpb25zLm1hbmdsZT9hKGRbMF0pOmRbMF0pLGY9Im1haWx0bzoiK2g7ZWxzZXtsZXQgdjtkb3t2PWRbMF0sZFswXT10aGlzLnJ1bGVzLmlubGluZS5fYmFja3BlZGFsLmV4ZWMoZFswXSlbMF19d2hpbGUodiE9PWRbMF0pO2g9eDEoZFswXSksZj0id3d3LiI9PT1kWzFdPyJodHRw'@; put 'Oi8vIitkWzBdOmRbMF19cmV0dXJue3R5cGU6ImxpbmsiLHJhdzpkWzBdLHRleHQ6aCxocmVmOmYsdG9rZW5zOlt7dHlwZToidGV4dCIscmF3OmgsdGV4dDpofV19fX1pbmxpbmVUZXh0KGwsYSl7Y29uc3QgZD10aGlzLnJ1bGVzLmlubGluZS50ZXh0LmV4ZWMobCk7aWYoZCl7bGV0IGg7cmV0'@; put 'dXJuIGg9dGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrP3RoaXMub3B0aW9ucy5zYW5pdGl6ZT90aGlzLm9wdGlvbnMuc2FuaXRpemVyP3RoaXMub3B0aW9ucy5zYW5pdGl6ZXIoZFswXSk6eDEoZFswXSk6ZFswXTp4MSh0aGlzLm9wdGlvbnMuc21hcnR5cGFudHM/YShkWzBdKTpkWzBdKSx7'@; put 'dHlwZToidGV4dCIscmF3OmRbMF0sdGV4dDpofX19fWNvbnN0IHBzPXtuZXdsaW5lOi9eKD86ICooPzpcbnwkKSkrLyxjb2RlOi9eKCB7NH1bXlxuXSsoPzpcbig/OiAqKD86XG58JCkpKik/KSsvLGZlbmNlczovXiB7MCwzfShgezMsfSg/PVteYFxuXSooPzpcbnwkKSl8fnszLH0pKFteXG5d'@; put 'KikoPzpcbnwkKSg/OnwoW1xzXFNdKj8pKD86XG58JCkpKD86IHswLDN9XDFbfmBdKiAqKD89XG58JCl8JCkvLGhyOi9eIHswLDN9KCg/Oi1bXHQgXSopezMsfXwoPzpfWyBcdF0qKXszLH18KD86XCpbIFx0XSopezMsfSkoPzpcbit8JCkvLGhlYWRpbmc6L14gezAsM30oI3sxLDZ9KSg/PVxz'@; put 'fCQpKC4qKSg/OlxuK3wkKS8sYmxvY2txdW90ZTovXiggezAsM30+ID8ocGFyYWdyYXBofFteXG5dKikoPzpcbnwkKSkrLyxsaXN0Oi9eKCB7MCwzfWJ1bGwpKFsgXHRdW15cbl0rPyk/KD86XG58JCkvLGh0bWw6Il4gezAsM30oPzo8KHNjcmlwdHxwcmV8c3R5bGV8dGV4dGFyZWEpW1xccz5d'@; put 'W1xcc1xcU10qPyg/OjwvXFwxPlteXFxuXSpcXG4rfCQpfGNvbW1lbnRbXlxcbl0qKFxcbit8JCl8PFxcP1tcXHNcXFNdKj8oPzpcXD8+XFxuKnwkKXw8IVtBLVpdW1xcc1xcU10qPyg/Oj5cXG4qfCQpfDwhXFxbQ0RBVEFcXFtbXFxzXFxTXSo/KD86XFxdXFxdPlxcbip8JCl8PC8/KHRhZyko'@; put 'PzogK3xcXG58Lz8+KVtcXHNcXFNdKj8oPzooPzpcXG4gKikrXFxufCQpfDwoPyFzY3JpcHR8cHJlfHN0eWxlfHRleHRhcmVhKShbYS16XVtcXHctXSopKD86YXR0cmlidXRlKSo/ICovPz4oPz1bIFxcdF0qKD86XFxufCQpKVtcXHNcXFNdKj8oPzooPzpcXG4gKikrXFxufCQpfDwvKD8hc2Ny'@; put 'aXB0fHByZXxzdHlsZXx0ZXh0YXJlYSlbYS16XVtcXHctXSpcXHMqPig/PVsgXFx0XSooPzpcXG58JCkpW1xcc1xcU10qPyg/Oig/OlxcbiAqKStcXG58JCkpIixkZWY6L14gezAsM31cWyhsYWJlbClcXTogKig/OlxuICopPyhbXjxcc11bXlxzXSp8PC4qPz4pKD86KD86ICsoPzpcbiAqKT98'@; put 'ICpcbiAqKSh0aXRsZSkpPyAqKD86XG4rfCQpLyx0YWJsZTpoTixsaGVhZGluZzovXigoPzooPyFeYnVsbCApLnxcbig/IVxufGJ1bGwgKSkrPylcbiB7MCwzfSg9K3wtKykgKig/OlxuK3wkKS8sX3BhcmFncmFwaDovXihbXlxuXSsoPzpcbig/IWhyfGhlYWRpbmd8bGhlYWRpbmd8YmxvY2tx'@; put 'dW90ZXxmZW5jZXN8bGlzdHxodG1sfHRhYmxlfCArXG4pW15cbl0rKSopLyx0ZXh0Oi9eW15cbl0rLyxfbGFiZWw6Lyg/IVxzKlxdKSg/OlxcLnxbXlxbXF1cXF0pKy8sX3RpdGxlOi8oPzoiKD86XFwiP3xbXiJcXF0pKiJ8J1teJ1xuXSooPzpcblteJ1xuXSspKlxuPyd8XChbXigpXSpcKSkv'@; put 'fTtwcy5kZWY9QWwocHMuZGVmKS5yZXBsYWNlKCJsYWJlbCIscHMuX2xhYmVsKS5yZXBsYWNlKCJ0aXRsZSIscHMuX3RpdGxlKS5nZXRSZWdleCgpLHBzLmJ1bGxldD0vKD86WyorLV18XGR7MSw5fVsuKV0pLyxwcy5saXN0SXRlbVN0YXJ0PUFsKC9eKCAqKShidWxsKSAqLykucmVwbGFjZSgi'@; put 'YnVsbCIscHMuYnVsbGV0KS5nZXRSZWdleCgpLHBzLmxpc3Q9QWwocHMubGlzdCkucmVwbGFjZSgvYnVsbC9nLHBzLmJ1bGxldCkucmVwbGFjZSgiaHIiLCJcXG4rKD89XFwxPyg/Oig/Oi0gKil7Myx9fCg/Ol8gKil7Myx9fCg/OlxcKiAqKXszLH0pKD86XFxuK3wkKSkiKS5yZXBsYWNlKCJk'@; put 'ZWYiLCJcXG4rKD89Iitwcy5kZWYuc291cmNlKyIpIikuZ2V0UmVnZXgoKSxwcy5fdGFnPSJhZGRyZXNzfGFydGljbGV8YXNpZGV8YmFzZXxiYXNlZm9udHxibG9ja3F1b3RlfGJvZHl8Y2FwdGlvbnxjZW50ZXJ8Y29sfGNvbGdyb3VwfGRkfGRldGFpbHN8ZGlhbG9nfGRpcnxkaXZ8ZGx8ZHR8'@; put 'ZmllbGRzZXR8ZmlnY2FwdGlvbnxmaWd1cmV8Zm9vdGVyfGZvcm18ZnJhbWV8ZnJhbWVzZXR8aFsxLTZdfGhlYWR8aGVhZGVyfGhyfGh0bWx8aWZyYW1lfGxlZ2VuZHxsaXxsaW5rfG1haW58bWVudXxtZW51aXRlbXxtZXRhfG5hdnxub2ZyYW1lc3xvbHxvcHRncm91cHxvcHRpb258cHxwYXJh'@; put 'bXxzZWN0aW9ufHNvdXJjZXxzdW1tYXJ5fHRhYmxlfHRib2R5fHRkfHRmb290fHRofHRoZWFkfHRpdGxlfHRyfHRyYWNrfHVsIixwcy5fY29tbWVudD0vPCEtLSg/IS0/PilbXHNcU10qPyg/Oi0tPnwkKS8scHMuaHRtbD1BbChwcy5odG1sLCJpIikucmVwbGFjZSgiY29tbWVudCIscHMuX2Nv'@; put 'bW1lbnQpLnJlcGxhY2UoInRhZyIscHMuX3RhZykucmVwbGFjZSgiYXR0cmlidXRlIiwvICtbYS16QS1aOl9dW1x3LjotXSooPzogKj0gKiJbXiJcbl0qInwgKj0gKidbXidcbl0qJ3wgKj0gKlteXHMiJz08PmBdKyk/LykuZ2V0UmVnZXgoKSxwcy5saGVhZGluZz1BbChwcy5saGVhZGluZyku'@; put 'cmVwbGFjZSgvYnVsbC9nLHBzLmJ1bGxldCkuZ2V0UmVnZXgoKSxwcy5wYXJhZ3JhcGg9QWwocHMuX3BhcmFncmFwaCkucmVwbGFjZSgiaHIiLHBzLmhyKS5yZXBsYWNlKCJoZWFkaW5nIiwiIHswLDN9I3sxLDZ9ICIpLnJlcGxhY2UoInxsaGVhZGluZyIsIiIpLnJlcGxhY2UoInx0YWJsZSIs'@; put 'IiIpLnJlcGxhY2UoImJsb2NrcXVvdGUiLCIgezAsM30+IikucmVwbGFjZSgiZmVuY2VzIiwiIHswLDN9KD86YHszLH0oPz1bXmBcXG5dKlxcbil8fnszLH0pW15cXG5dKlxcbiIpLnJlcGxhY2UoImxpc3QiLCIgezAsM30oPzpbKistXXwxWy4pXSkgIikucmVwbGFjZSgiaHRtbCIsIjwvPyg/'@; put 'OnRhZykoPzogK3xcXG58Lz8+KXw8KD86c2NyaXB0fHByZXxzdHlsZXx0ZXh0YXJlYXwhLS0pIikucmVwbGFjZSgidGFnIixwcy5fdGFnKS5nZXRSZWdleCgpLHBzLmJsb2NrcXVvdGU9QWwocHMuYmxvY2txdW90ZSkucmVwbGFjZSgicGFyYWdyYXBoIixwcy5wYXJhZ3JhcGgpLmdldFJlZ2V4'@; put 'KCkscHMubm9ybWFsPXsuLi5wc30scHMuZ2ZtPXsuLi5wcy5ub3JtYWwsdGFibGU6Il4gKihbXlxcbiBdLipcXHwuKilcXG4gezAsM30oPzpcXHwgKik/KDo/LSs6PyAqKD86XFx8ICo6Py0rOj8gKikqKSg/OlxcfCAqKT8oPzpcXG4oKD86KD8hICpcXG58aHJ8aGVhZGluZ3xibG9ja3F1b3Rl'@; put 'fGNvZGV8ZmVuY2VzfGxpc3R8aHRtbCkuKig/OlxcbnwkKSkqKVxcbip8JCkifSxwcy5nZm0udGFibGU9QWwocHMuZ2ZtLnRhYmxlKS5yZXBsYWNlKCJociIscHMuaHIpLnJlcGxhY2UoImhlYWRpbmciLCIgezAsM30jezEsNn0gIikucmVwbGFjZSgiYmxvY2txdW90ZSIsIiB7MCwzfT4iKS5y'@; put 'ZXBsYWNlKCJjb2RlIiwiIHs0fVteXFxuXSIpLnJlcGxhY2UoImZlbmNlcyIsIiB7MCwzfSg/OmB7Myx9KD89W15gXFxuXSpcXG4pfH57Myx9KVteXFxuXSpcXG4iKS5yZXBsYWNlKCJsaXN0IiwiIHswLDN9KD86WyorLV18MVsuKV0pICIpLnJlcGxhY2UoImh0bWwiLCI8Lz8oPzp0YWcpKD86'@; put 'ICt8XFxufC8/Pil8PCg/OnNjcmlwdHxwcmV8c3R5bGV8dGV4dGFyZWF8IS0tKSIpLnJlcGxhY2UoInRhZyIscHMuX3RhZykuZ2V0UmVnZXgoKSxwcy5nZm0ucGFyYWdyYXBoPUFsKHBzLl9wYXJhZ3JhcGgpLnJlcGxhY2UoImhyIixwcy5ocikucmVwbGFjZSgiaGVhZGluZyIsIiB7MCwzfSN7'@; put 'MSw2fSAiKS5yZXBsYWNlKCJ8bGhlYWRpbmciLCIiKS5yZXBsYWNlKCJ0YWJsZSIscHMuZ2ZtLnRhYmxlKS5yZXBsYWNlKCJibG9ja3F1b3RlIiwiIHswLDN9PiIpLnJlcGxhY2UoImZlbmNlcyIsIiB7MCwzfSg/OmB7Myx9KD89W15gXFxuXSpcXG4pfH57Myx9KVteXFxuXSpcXG4iKS5yZXBs'@; put 'YWNlKCJsaXN0IiwiIHswLDN9KD86WyorLV18MVsuKV0pICIpLnJlcGxhY2UoImh0bWwiLCI8Lz8oPzp0YWcpKD86ICt8XFxufC8/Pil8PCg/OnNjcmlwdHxwcmV8c3R5bGV8dGV4dGFyZWF8IS0tKSIpLnJlcGxhY2UoInRhZyIscHMuX3RhZykuZ2V0UmVnZXgoKSxwcy5wZWRhbnRpYz17Li4u'@; put 'cHMubm9ybWFsLGh0bWw6QWwoIl4gKig/OmNvbW1lbnQgKig/OlxcbnxcXHMqJCl8PCh0YWcpW1xcc1xcU10rPzwvXFwxPiAqKD86XFxuezIsfXxcXHMqJCl8PHRhZyg/OlwiW15cIl0qXCJ8J1teJ10qJ3xcXHNbXidcIi8+XFxzXSopKj8vPz4gKig/OlxcbnsyLH18XFxzKiQpKSIpLnJlcGxh'@; put 'Y2UoImNvbW1lbnQiLHBzLl9jb21tZW50KS5yZXBsYWNlKC90YWcvZywiKD8hKD86YXxlbXxzdHJvbmd8c21hbGx8c3xjaXRlfHF8ZGZufGFiYnJ8ZGF0YXx0aW1lfGNvZGV8dmFyfHNhbXB8a2JkfHN1YnxzdXB8aXxifHV8bWFya3xydWJ5fHJ0fHJwfGJkaXxiZG98c3Bhbnxicnx3YnJ8aW5z'@; put 'fGRlbHxpbWcpXFxiKVxcdysoPyE6fFteXFx3XFxzQF0qQClcXGIiKS5nZXRSZWdleCgpLGRlZjovXiAqXFsoW15cXV0rKVxdOiAqPD8oW15ccz5dKyk+Pyg/OiArKFsiKF1bXlxuXStbIildKSk/ICooPzpcbit8JCkvLGhlYWRpbmc6L14oI3sxLDZ9KSguKikoPzpcbit8JCkvLGZlbmNlczpo'@; put 'TixsaGVhZGluZzovXiguKz8pXG4gezAsM30oPSt8LSspICooPzpcbit8JCkvLHBhcmFncmFwaDpBbChwcy5ub3JtYWwuX3BhcmFncmFwaCkucmVwbGFjZSgiaHIiLHBzLmhyKS5yZXBsYWNlKCJoZWFkaW5nIiwiICojezEsNn0gKlteXG5dIikucmVwbGFjZSgibGhlYWRpbmciLHBzLmxoZWFk'@; put 'aW5nKS5yZXBsYWNlKCJibG9ja3F1b3RlIiwiIHswLDN9PiIpLnJlcGxhY2UoInxmZW5jZXMiLCIiKS5yZXBsYWNlKCJ8bGlzdCIsIiIpLnJlcGxhY2UoInxodG1sIiwiIikuZ2V0UmVnZXgoKX07Y29uc3QgRGE9e2VzY2FwZTovXlxcKFshIiMkJSYnKCkqKyxcLS4vOjs8PT4/QFxbXF1cXF5f'@; put 'YHt8fX5dKS8sYXV0b2xpbms6L148KHNjaGVtZTpbXlxzXHgwMC1ceDFmPD5dKnxlbWFpbCk+Lyx1cmw6aE4sdGFnOiJeY29tbWVudHxePC9bYS16QS1aXVtcXHc6LV0qXFxzKj58XjxbYS16QS1aXVtcXHctXSooPzphdHRyaWJ1dGUpKj9cXHMqLz8+fF48XFw/W1xcc1xcU10qP1xcPz58Xjwh'@; put 'W2EtekEtWl0rXFxzW1xcc1xcU10qPz58XjwhXFxbQ0RBVEFcXFtbXFxzXFxTXSo/XFxdXFxdPiIsbGluazovXiE/XFsobGFiZWwpXF1cKFxzKihocmVmKSg/OlxzKyh0aXRsZSkpP1xzKlwpLyxyZWZsaW5rOi9eIT9cWyhsYWJlbClcXVxbKHJlZilcXS8sbm9saW5rOi9eIT9cWyhyZWYpXF0o'@; put 'PzpcW1xdKT8vLHJlZmxpbmtTZWFyY2g6InJlZmxpbmt8bm9saW5rKD8hXFwoKSIsZW1TdHJvbmc6e2xEZWxpbTovXig/OlwqKyg/OigoPyFcKilbcHVuY3RdKXxbXlxzKl0pKXxeXysoPzooKD8hXylbcHVuY3RdKXwoW15cc19dKSkvLHJEZWxpbUFzdDovXlteXypdKj9fX1teXypdKj9cKlte'@; put 'XypdKj8oPz1fXyl8W14qXSsoPz1bXipdKXwoPyFcKilbcHVuY3RdKFwqKykoPz1bXHNdfCQpfFtecHVuY3Rcc10oXCorKSg/IVwqKSg/PVtwdW5jdFxzXXwkKXwoPyFcKilbcHVuY3Rcc10oXCorKSg/PVtecHVuY3Rcc10pfFtcc10oXCorKSg/IVwqKSg/PVtwdW5jdF0pfCg/IVwqKVtwdW5j'@; put 'dF0oXCorKSg/IVwqKSg/PVtwdW5jdF0pfFtecHVuY3Rcc10oXCorKSg/PVtecHVuY3Rcc10pLyxyRGVsaW1VbmQ6L15bXl8qXSo/XCpcKlteXypdKj9fW15fKl0qPyg/PVwqXCopfFteX10rKD89W15fXSl8KD8hXylbcHVuY3RdKF8rKSg/PVtcc118JCl8W15wdW5jdFxzXShfKykoPyFfKSg/'@; put 'PVtwdW5jdFxzXXwkKXwoPyFfKVtwdW5jdFxzXShfKykoPz1bXnB1bmN0XHNdKXxbXHNdKF8rKSg/IV8pKD89W3B1bmN0XSl8KD8hXylbcHVuY3RdKF8rKSg/IV8pKD89W3B1bmN0XSkvfSxjb2RlOi9eKGArKShbXmBdfFteYF1bXHNcU10qP1teYF0pXDEoPyFgKS8sYnI6L14oIHsyLH18XFwp'@; put 'XG4oPyFccyokKS8sZGVsOmhOLHRleHQ6L14oYCt8W15gXSkoPzooPz0gezIsfVxuKXxbXHNcU10qPyg/Oig/PVtcXDwhXFtgKl9dfFxiX3wkKXxbXiBdKD89IHsyLH1cbikpKS8scHVuY3R1YXRpb246L14oKD8hWypfXSlbXHNwdW5jdHVhdGlvbl0pL307ZnVuY3Rpb24gdWJ0KGMpe3JldHVy'@; put 'biBjLnJlcGxhY2UoLy0tLS9nLCJcdTIwMTQiKS5yZXBsYWNlKC8tLS9nLCJcdTIwMTMiKS5yZXBsYWNlKC8oXnxbLVx1MjAxNC8oXFt7IlxzXSknL2csIiQxXHUyMDE4IikucmVwbGFjZSgvJy9nLCJcdTIwMTkiKS5yZXBsYWNlKC8oXnxbLVx1MjAxNC8oXFt7XHUyMDE4XHNdKSIvZywiJDFc'@; put 'dTIwMWMiKS5yZXBsYWNlKC8iL2csIlx1MjAxZCIpLnJlcGxhY2UoL1wuezN9L2csIlx1MjAyNiIpfWZ1bmN0aW9uIGg4ZShjKXtsZXQgYSxkLGw9IiI7Y29uc3QgaD1jLmxlbmd0aDtmb3IoYT0wO2E8aDthKyspZD1jLmNoYXJDb2RlQXQoYSksTWF0aC5yYW5kb20oKT4uNSYmKGQ9IngiK2Qu'@; put 'dG9TdHJpbmcoMTYpKSxsKz0iJiMiK2QrIjsiO3JldHVybiBsfURhLl9wdW5jdHVhdGlvbj0iXFxwe1B9JCs8PT5gXnx+IixEYS5wdW5jdHVhdGlvbj1BbChEYS5wdW5jdHVhdGlvbiwidSIpLnJlcGxhY2UoL3B1bmN0dWF0aW9uL2csRGEuX3B1bmN0dWF0aW9uKS5nZXRSZWdleCgpLERhLmJs'@; put 'b2NrU2tpcD0vXFtbXltcXV0qP1xdXChbXlwoXCldKj9cKXxgW15gXSo/YHw8W148Pl0qPz4vZyxEYS5hbnlQdW5jdHVhdGlvbj0vXFxbcHVuY3RdL2csRGEuX2VzY2FwZXM9L1xcKFtwdW5jdF0pL2csRGEuX2NvbW1lbnQ9QWwocHMuX2NvbW1lbnQpLnJlcGxhY2UoIig/Oi0tXHgzZXwkKSIs'@; put 'Ii0tXHgzZSIpLmdldFJlZ2V4KCksRGEuZW1TdHJvbmcubERlbGltPUFsKERhLmVtU3Ryb25nLmxEZWxpbSwidSIpLnJlcGxhY2UoL3B1bmN0L2csRGEuX3B1bmN0dWF0aW9uKS5nZXRSZWdleCgpLERhLmVtU3Ryb25nLnJEZWxpbUFzdD1BbChEYS5lbVN0cm9uZy5yRGVsaW1Bc3QsImd1Iiku'@; put 'cmVwbGFjZSgvcHVuY3QvZyxEYS5fcHVuY3R1YXRpb24pLmdldFJlZ2V4KCksRGEuZW1TdHJvbmcuckRlbGltVW5kPUFsKERhLmVtU3Ryb25nLnJEZWxpbVVuZCwiZ3UiKS5yZXBsYWNlKC9wdW5jdC9nLERhLl9wdW5jdHVhdGlvbikuZ2V0UmVnZXgoKSxEYS5hbnlQdW5jdHVhdGlvbj1BbChE'@; put 'YS5hbnlQdW5jdHVhdGlvbiwiZ3UiKS5yZXBsYWNlKC9wdW5jdC9nLERhLl9wdW5jdHVhdGlvbikuZ2V0UmVnZXgoKSxEYS5fZXNjYXBlcz1BbChEYS5fZXNjYXBlcywiZ3UiKS5yZXBsYWNlKC9wdW5jdC9nLERhLl9wdW5jdHVhdGlvbikuZ2V0UmVnZXgoKSxEYS5fc2NoZW1lPS9bYS16QS1a'@; put 'XVthLXpBLVowLTkrLi1dezEsMzF9LyxEYS5fZW1haWw9L1thLXpBLVowLTkuISMkJSYnKisvPT9eX2B7fH1+LV0rKEApW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KD86XC5bYS16QS1aMC05XSg/OlthLXpBLVowLTktXXswLDYxfVthLXpBLVowLTldKT8p'@; put 'Kyg/IVstX10pLyxEYS5hdXRvbGluaz1BbChEYS5hdXRvbGluaykucmVwbGFjZSgic2NoZW1lIixEYS5fc2NoZW1lKS5yZXBsYWNlKCJlbWFpbCIsRGEuX2VtYWlsKS5nZXRSZWdleCgpLERhLl9hdHRyaWJ1dGU9L1xzK1thLXpBLVo6X11bXHcuOi1dKig/OlxzKj1ccyoiW14iXSoifFxzKj1c'@; put 'cyonW14nXSonfFxzKj1ccypbXlxzIic9PD5gXSspPy8sRGEudGFnPUFsKERhLnRhZykucmVwbGFjZSgiY29tbWVudCIsRGEuX2NvbW1lbnQpLnJlcGxhY2UoImF0dHJpYnV0ZSIsRGEuX2F0dHJpYnV0ZSkuZ2V0UmVnZXgoKSxEYS5fbGFiZWw9Lyg/OlxbKD86XFwufFteXFtcXVxcXSkqXF18'@; put 'XFwufGBbXmBdKmB8W15cW1xdXFxgXSkqPy8sRGEuX2hyZWY9LzwoPzpcXC58W15cbjw+XFxdKSs+fFteXHNceDAwLVx4MWZdKi8sRGEuX3RpdGxlPS8iKD86XFwiP3xbXiJcXF0pKiJ8Jyg/OlxcJz98W14nXFxdKSonfFwoKD86XFxcKT98W14pXFxdKSpcKS8sRGEubGluaz1BbChEYS5saW5r'@; put 'KS5yZXBsYWNlKCJsYWJlbCIsRGEuX2xhYmVsKS5yZXBsYWNlKCJocmVmIixEYS5faHJlZikucmVwbGFjZSgidGl0bGUiLERhLl90aXRsZSkuZ2V0UmVnZXgoKSxEYS5yZWZsaW5rPUFsKERhLnJlZmxpbmspLnJlcGxhY2UoImxhYmVsIixEYS5fbGFiZWwpLnJlcGxhY2UoInJlZiIscHMuX2xh'@; put 'YmVsKS5nZXRSZWdleCgpLERhLm5vbGluaz1BbChEYS5ub2xpbmspLnJlcGxhY2UoInJlZiIscHMuX2xhYmVsKS5nZXRSZWdleCgpLERhLnJlZmxpbmtTZWFyY2g9QWwoRGEucmVmbGlua1NlYXJjaCwiZyIpLnJlcGxhY2UoInJlZmxpbmsiLERhLnJlZmxpbmspLnJlcGxhY2UoIm5vbGluayIs'@; put 'RGEubm9saW5rKS5nZXRSZWdleCgpLERhLm5vcm1hbD17Li4uRGF9LERhLnBlZGFudGljPXsuLi5EYS5ub3JtYWwsc3Ryb25nOntzdGFydDovXl9ffFwqXCovLG1pZGRsZTovXl9fKD89XFMpKFtcc1xTXSo/XFMpX18oPyFfKXxeXCpcKig/PVxTKShbXHNcU10qP1xTKVwqXCooPyFcKikvLGVu'@; put 'ZEFzdDovXCpcKig/IVwqKS9nLGVuZFVuZDovX18oPyFfKS9nfSxlbTp7c3RhcnQ6L15ffFwqLyxtaWRkbGU6L14oKVwqKD89XFMpKFtcc1xTXSo/XFMpXCooPyFcKil8Xl8oPz1cUykoW1xzXFNdKj9cUylfKD8hXykvLGVuZEFzdDovXCooPyFcKikvZyxlbmRVbmQ6L18oPyFfKS9nfSxsaW5r'@; put 'OkFsKC9eIT9cWyhsYWJlbClcXVwoKC4qPylcKS8pLnJlcGxhY2UoImxhYmVsIixEYS5fbGFiZWwpLmdldFJlZ2V4KCkscmVmbGluazpBbCgvXiE/XFsobGFiZWwpXF1ccypcWyhbXlxdXSopXF0vKS5yZXBsYWNlKCJsYWJlbCIsRGEuX2xhYmVsKS5nZXRSZWdleCgpfSxEYS5nZm09ey4uLkRh'@; put 'Lm5vcm1hbCxlc2NhcGU6QWwoRGEuZXNjYXBlKS5yZXBsYWNlKCJdKSIsIn58XSkiKS5nZXRSZWdleCgpLF9leHRlbmRlZF9lbWFpbDovW0EtWmEtejAtOS5fKy1dKyhAKVthLXpBLVowLTktX10rKD86XC5bYS16QS1aMC05LV9dKlthLXpBLVowLTldKSsoPyFbLV9dKS8sdXJsOi9eKCg/OmZ0'@; put 'cHxodHRwcz8pOlwvXC98d3d3XC4pKD86W2EtekEtWjAtOVwtXStcLj8pK1teXHM8XSp8XmVtYWlsLyxfYmFja3BlZGFsOi8oPzpbXj8hLiw6OypfJyJ+KCkmXSt8XChbXildKlwpfCYoPyFbYS16QS1aMC05XSs7JCl8Wz8hLiw6OypfJyJ+KV0rKD8hJCkpKy8sZGVsOi9eKH5+PykoPz1bXlxz'@; put 'fl0pKFtcc1xTXSo/W15cc35dKVwxKD89W15+XXwkKS8sdGV4dDovXihbYH5dK3xbXmB+XSkoPzooPz0gezIsfVxuKXwoPz1bYS16QS1aMC05LiEjJCUmJyorXC89P19ge1x8fX4tXStAKXxbXHNcU10qPyg/Oig/PVtcXDwhXFtgKn5fXXxcYl98aHR0cHM/OlwvXC98ZnRwOlwvXC98d3d3XC58'@; put 'JCl8W14gXSg/PSB7Mix9XG4pfFteYS16QS1aMC05LiEjJCUmJyorXC89P19ge1x8fX4tXSg/PVthLXpBLVowLTkuISMkJSYnKitcLz0/X2B7XHx9fi1dK0ApKSkvfSxEYS5nZm0udXJsPUFsKERhLmdmbS51cmwsImkiKS5yZXBsYWNlKCJlbWFpbCIsRGEuZ2ZtLl9leHRlbmRlZF9lbWFpbCku'@; put 'Z2V0UmVnZXgoKSxEYS5icmVha3M9ey4uLkRhLmdmbSxicjpBbChEYS5icikucmVwbGFjZSgiezIsfSIsIioiKS5nZXRSZWdleCgpLHRleHQ6QWwoRGEuZ2ZtLnRleHQpLnJlcGxhY2UoIlxcYl8iLCJcXGJffCB7Mix9XFxuIikucmVwbGFjZSgvXHsyLFx9L2csIioiKS5nZXRSZWdleCgpfTtj'@; put 'bGFzcyBzNHtjb25zdHJ1Y3RvcihsKXt0aGlzLnRva2Vucz1bXSx0aGlzLnRva2Vucy5saW5rcz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMub3B0aW9ucz1sfHxDNix0aGlzLm9wdGlvbnMudG9rZW5pemVyPXRoaXMub3B0aW9ucy50b2tlbml6ZXJ8fG5ldyBwTix0aGlzLnRva2VuaXplcj10'@; put 'aGlzLm9wdGlvbnMudG9rZW5pemVyLHRoaXMudG9rZW5pemVyLm9wdGlvbnM9dGhpcy5vcHRpb25zLHRoaXMudG9rZW5pemVyLmxleGVyPXRoaXMsdGhpcy5pbmxpbmVRdWV1ZT1bXSx0aGlzLnN0YXRlPXtpbkxpbms6ITEsaW5SYXdCbG9jazohMSx0b3A6ITB9O2NvbnN0IGE9e2Jsb2NrOnBz'@; put 'Lm5vcm1hbCxpbmxpbmU6RGEubm9ybWFsfTt0aGlzLm9wdGlvbnMucGVkYW50aWM/KGEuYmxvY2s9cHMucGVkYW50aWMsYS5pbmxpbmU9RGEucGVkYW50aWMpOnRoaXMub3B0aW9ucy5nZm0mJihhLmJsb2NrPXBzLmdmbSxhLmlubGluZT10aGlzLm9wdGlvbnMuYnJlYWtzP0RhLmJyZWFrczpE'@; put 'YS5nZm0pLHRoaXMudG9rZW5pemVyLnJ1bGVzPWF9c3RhdGljIGdldCBydWxlcygpe3JldHVybntibG9jazpwcyxpbmxpbmU6RGF9fXN0YXRpYyBsZXgobCxhKXtyZXR1cm4gbmV3IHM0KGEpLmxleChsKX1zdGF0aWMgbGV4SW5saW5lKGwsYSl7cmV0dXJuIG5ldyBzNChhKS5pbmxpbmVUb2tl'@; put 'bnMobCl9bGV4KGwpe2xldCBhO2ZvcihsPWwucmVwbGFjZSgvXHJcbnxcci9nLCJcbiIpLHRoaXMuYmxvY2tUb2tlbnMobCx0aGlzLnRva2Vucyk7YT10aGlzLmlubGluZVF1ZXVlLnNoaWZ0KCk7KXRoaXMuaW5saW5lVG9rZW5zKGEuc3JjLGEudG9rZW5zKTtyZXR1cm4gdGhpcy50b2tlbnN9'@; put 'YmxvY2tUb2tlbnMobCxhPVtdKXtsZXQgZCxoLGYsdjtmb3IobD10aGlzLm9wdGlvbnMucGVkYW50aWM/bC5yZXBsYWNlKC9cdC9nLCIgICAgIikucmVwbGFjZSgvXiArJC9nbSwiIik6bC5yZXBsYWNlKC9eKCAqKShcdCspL2dtLChNLEksRyk9PkkrIiAgICAiLnJlcGVhdChHLmxlbmd0aCkp'@; put 'O2w7KWlmKCEodGhpcy5vcHRpb25zLmV4dGVuc2lvbnMmJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLmJsb2NrJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5ibG9jay5zb21lKE09PiEhKGQ9TS5jYWxsKHtsZXhlcjp0aGlzfSxsLGEpKSYmKGw9bC5zdWJzdHJpbmcoZC5yYXcubGVuZ3RoKSxh'@; put 'LnB1c2goZCksITApKSkpe2lmKGQ9dGhpcy50b2tlbml6ZXIuc3BhY2UobCkpe2w9bC5zdWJzdHJpbmcoZC5yYXcubGVuZ3RoKSwxPT09ZC5yYXcubGVuZ3RoJiZhLmxlbmd0aD4wP2FbYS5sZW5ndGgtMV0ucmF3Kz0iXG4iOmEucHVzaChkKTtjb250aW51ZX1pZihkPXRoaXMudG9rZW5pemVy'@; put 'LmNvZGUobCkpe2w9bC5zdWJzdHJpbmcoZC5yYXcubGVuZ3RoKSxoPWFbYS5sZW5ndGgtMV0sIWh8fCJwYXJhZ3JhcGgiIT09aC50eXBlJiYidGV4dCIhPT1oLnR5cGU/YS5wdXNoKGQpOihoLnJhdys9IlxuIitkLnJhdyxoLnRleHQrPSJcbiIrZC50ZXh0LHRoaXMuaW5saW5lUXVldWVbdGhp'@; put 'cy5pbmxpbmVRdWV1ZS5sZW5ndGgtMV0uc3JjPWgudGV4dCk7Y29udGludWV9aWYoZD10aGlzLnRva2VuaXplci5mZW5jZXMobCkpe2w9bC5zdWJzdHJpbmcoZC5yYXcubGVuZ3RoKSxhLnB1c2goZCk7Y29udGludWV9aWYoZD10aGlzLnRva2VuaXplci5oZWFkaW5nKGwpKXtsPWwuc3Vic3Ry'@; put 'aW5nKGQucmF3Lmxlbmd0aCksYS5wdXNoKGQpO2NvbnRpbnVlfWlmKGQ9dGhpcy50b2tlbml6ZXIuaHIobCkpe2w9bC5zdWJzdHJpbmcoZC5yYXcubGVuZ3RoKSxhLnB1c2goZCk7Y29udGludWV9aWYoZD10aGlzLnRva2VuaXplci5ibG9ja3F1b3RlKGwpKXtsPWwuc3Vic3RyaW5nKGQucmF3'@; put 'Lmxlbmd0aCksYS5wdXNoKGQpO2NvbnRpbnVlfWlmKGQ9dGhpcy50b2tlbml6ZXIubGlzdChsKSl7bD1sLnN1YnN0cmluZyhkLnJhdy5sZW5ndGgpLGEucHVzaChkKTtjb250aW51ZX1pZihkPXRoaXMudG9rZW5pemVyLmh0bWwobCkpe2w9bC5zdWJzdHJpbmcoZC5yYXcubGVuZ3RoKSxhLnB1'@; put 'c2goZCk7Y29udGludWV9aWYoZD10aGlzLnRva2VuaXplci5kZWYobCkpe2w9bC5zdWJzdHJpbmcoZC5yYXcubGVuZ3RoKSxoPWFbYS5sZW5ndGgtMV0sIWh8fCJwYXJhZ3JhcGgiIT09aC50eXBlJiYidGV4dCIhPT1oLnR5cGU/dGhpcy50b2tlbnMubGlua3NbZC50YWddfHwodGhpcy50b2tl'@; put 'bnMubGlua3NbZC50YWddPXtocmVmOmQuaHJlZix0aXRsZTpkLnRpdGxlfSk6KGgucmF3Kz0iXG4iK2QucmF3LGgudGV4dCs9IlxuIitkLnJhdyx0aGlzLmlubGluZVF1ZXVlW3RoaXMuaW5saW5lUXVldWUubGVuZ3RoLTFdLnNyYz1oLnRleHQpO2NvbnRpbnVlfWlmKGQ9dGhpcy50b2tlbml6'@; put 'ZXIudGFibGUobCkpe2w9bC5zdWJzdHJpbmcoZC5yYXcubGVuZ3RoKSxhLnB1c2goZCk7Y29udGludWV9aWYoZD10aGlzLnRva2VuaXplci5saGVhZGluZyhsKSl7bD1sLnN1YnN0cmluZyhkLnJhdy5sZW5ndGgpLGEucHVzaChkKTtjb250aW51ZX1pZihmPWwsdGhpcy5vcHRpb25zLmV4dGVu'@; put 'c2lvbnMmJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLnN0YXJ0QmxvY2spe2xldCBNPTEvMDtjb25zdCBJPWwuc2xpY2UoMSk7bGV0IEc7dGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuc3RhcnRCbG9jay5mb3JFYWNoKGZ1bmN0aW9uKHJlKXtHPXJlLmNhbGwoe2xleGVyOnRoaXN9LEkpLCJudW1i'@; put 'ZXIiPT10eXBlb2YgRyYmRz49MCYmKE09TWF0aC5taW4oTSxHKSl9KSxNPDEvMCYmTT49MCYmKGY9bC5zdWJzdHJpbmcoMCxNKzEpKX1pZih0aGlzLnN0YXRlLnRvcCYmKGQ9dGhpcy50b2tlbml6ZXIucGFyYWdyYXBoKGYpKSl7aD1hW2EubGVuZ3RoLTFdLHYmJiJwYXJhZ3JhcGgiPT09aC50'@; put 'eXBlPyhoLnJhdys9IlxuIitkLnJhdyxoLnRleHQrPSJcbiIrZC50ZXh0LHRoaXMuaW5saW5lUXVldWUucG9wKCksdGhpcy5pbmxpbmVRdWV1ZVt0aGlzLmlubGluZVF1ZXVlLmxlbmd0aC0xXS5zcmM9aC50ZXh0KTphLnB1c2goZCksdj1mLmxlbmd0aCE9PWwubGVuZ3RoLGw9bC5zdWJzdHJp'@; put 'bmcoZC5yYXcubGVuZ3RoKTtjb250aW51ZX1pZihkPXRoaXMudG9rZW5pemVyLnRleHQobCkpe2w9bC5zdWJzdHJpbmcoZC5yYXcubGVuZ3RoKSxoPWFbYS5sZW5ndGgtMV0saCYmInRleHQiPT09aC50eXBlPyhoLnJhdys9IlxuIitkLnJhdyxoLnRleHQrPSJcbiIrZC50ZXh0LHRoaXMuaW5s'@; put 'aW5lUXVldWUucG9wKCksdGhpcy5pbmxpbmVRdWV1ZVt0aGlzLmlubGluZVF1ZXVlLmxlbmd0aC0xXS5zcmM9aC50ZXh0KTphLnB1c2goZCk7Y29udGludWV9aWYobCl7Y29uc3QgTT0iSW5maW5pdGUgbG9vcCBvbiBieXRlOiAiK2wuY2hhckNvZGVBdCgwKTtpZih0aGlzLm9wdGlvbnMuc2ls'@; put 'ZW50KXtjb25zb2xlLmVycm9yKE0pO2JyZWFrfXRocm93IG5ldyBFcnJvcihNKX19cmV0dXJuIHRoaXMuc3RhdGUudG9wPSEwLGF9aW5saW5lKGwsYT1bXSl7cmV0dXJuIHRoaXMuaW5saW5lUXVldWUucHVzaCh7c3JjOmwsdG9rZW5zOmF9KSxhfWlubGluZVRva2VucyhsLGE9W10pe2xldCBk'@; put 'LGgsZixNLEksRyx2PWw7aWYodGhpcy50b2tlbnMubGlua3Mpe2NvbnN0IHJlPU9iamVjdC5rZXlzKHRoaXMudG9rZW5zLmxpbmtzKTtpZihyZS5sZW5ndGg+MClmb3IoO251bGwhPShNPXRoaXMudG9rZW5pemVyLnJ1bGVzLmlubGluZS5yZWZsaW5rU2VhcmNoLmV4ZWModikpOylyZS5pbmNs'@; put 'dWRlcyhNWzBdLnNsaWNlKE1bMF0ubGFzdEluZGV4T2YoIlsiKSsxLC0xKSkmJih2PXYuc2xpY2UoMCxNLmluZGV4KSsiWyIrImEiLnJlcGVhdChNWzBdLmxlbmd0aC0yKSsiXSIrdi5zbGljZSh0aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUucmVmbGlua1NlYXJjaC5sYXN0SW5kZXgpKX1m'@; put 'b3IoO251bGwhPShNPXRoaXMudG9rZW5pemVyLnJ1bGVzLmlubGluZS5ibG9ja1NraXAuZXhlYyh2KSk7KXY9di5zbGljZSgwLE0uaW5kZXgpKyJbIisiYSIucmVwZWF0KE1bMF0ubGVuZ3RoLTIpKyJdIit2LnNsaWNlKHRoaXMudG9rZW5pemVyLnJ1bGVzLmlubGluZS5ibG9ja1NraXAubGFz'@; put 'dEluZGV4KTtmb3IoO251bGwhPShNPXRoaXMudG9rZW5pemVyLnJ1bGVzLmlubGluZS5hbnlQdW5jdHVhdGlvbi5leGVjKHYpKTspdj12LnNsaWNlKDAsTS5pbmRleCkrIisrIit2LnNsaWNlKHRoaXMudG9rZW5pemVyLnJ1bGVzLmlubGluZS5hbnlQdW5jdHVhdGlvbi5sYXN0SW5kZXgpO2Zv'@; put 'cig7bDspaWYoSXx8KEc9IiIpLEk9ITEsISh0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuaW5saW5lJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5pbmxpbmUuc29tZShyZT0+ISEoZD1yZS5jYWxsKHtsZXhlcjp0aGlzfSxsLGEpKSYmKGw9bC5zdWJz'@; put 'dHJpbmcoZC5yYXcubGVuZ3RoKSxhLnB1c2goZCksITApKSkpe2lmKGQ9dGhpcy50b2tlbml6ZXIuZXNjYXBlKGwpKXtsPWwuc3Vic3RyaW5nKGQucmF3Lmxlbmd0aCksYS5wdXNoKGQpO2NvbnRpbnVlfWlmKGQ9dGhpcy50b2tlbml6ZXIudGFnKGwpKXtsPWwuc3Vic3RyaW5nKGQucmF3Lmxl'@; put 'bmd0aCksaD1hW2EubGVuZ3RoLTFdLGgmJiJ0ZXh0Ij09PWQudHlwZSYmInRleHQiPT09aC50eXBlPyhoLnJhdys9ZC5yYXcsaC50ZXh0Kz1kLnRleHQpOmEucHVzaChkKTtjb250aW51ZX1pZihkPXRoaXMudG9rZW5pemVyLmxpbmsobCkpe2w9bC5zdWJzdHJpbmcoZC5yYXcubGVuZ3RoKSxh'@; put 'LnB1c2goZCk7Y29udGludWV9aWYoZD10aGlzLnRva2VuaXplci5yZWZsaW5rKGwsdGhpcy50b2tlbnMubGlua3MpKXtsPWwuc3Vic3RyaW5nKGQucmF3Lmxlbmd0aCksaD1hW2EubGVuZ3RoLTFdLGgmJiJ0ZXh0Ij09PWQudHlwZSYmInRleHQiPT09aC50eXBlPyhoLnJhdys9ZC5yYXcsaC50'@; put 'ZXh0Kz1kLnRleHQpOmEucHVzaChkKTtjb250aW51ZX1pZihkPXRoaXMudG9rZW5pemVyLmVtU3Ryb25nKGwsdixHKSl7bD1sLnN1YnN0cmluZyhkLnJhdy5sZW5ndGgpLGEucHVzaChkKTtjb250aW51ZX1pZihkPXRoaXMudG9rZW5pemVyLmNvZGVzcGFuKGwpKXtsPWwuc3Vic3RyaW5nKGQu'@; put 'cmF3Lmxlbmd0aCksYS5wdXNoKGQpO2NvbnRpbnVlfWlmKGQ9dGhpcy50b2tlbml6ZXIuYnIobCkpe2w9bC5zdWJzdHJpbmcoZC5yYXcubGVuZ3RoKSxhLnB1c2goZCk7Y29udGludWV9aWYoZD10aGlzLnRva2VuaXplci5kZWwobCkpe2w9bC5zdWJzdHJpbmcoZC5yYXcubGVuZ3RoKSxhLnB1'@; put 'c2goZCk7Y29udGludWV9aWYoZD10aGlzLnRva2VuaXplci5hdXRvbGluayhsLGg4ZSkpe2w9bC5zdWJzdHJpbmcoZC5yYXcubGVuZ3RoKSxhLnB1c2goZCk7Y29udGludWV9aWYoIXRoaXMuc3RhdGUuaW5MaW5rJiYoZD10aGlzLnRva2VuaXplci51cmwobCxoOGUpKSl7bD1sLnN1YnN0cmlu'@; put 'ZyhkLnJhdy5sZW5ndGgpLGEucHVzaChkKTtjb250aW51ZX1pZihmPWwsdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMmJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLnN0YXJ0SW5saW5lKXtsZXQgcmU9MS8wO2NvbnN0IHVlPWwuc2xpY2UoMSk7bGV0IHllO3RoaXMub3B0aW9ucy5leHRlbnNpb25z'@; put 'LnN0YXJ0SW5saW5lLmZvckVhY2goZnVuY3Rpb24oRWUpe3llPUVlLmNhbGwoe2xleGVyOnRoaXN9LHVlKSwibnVtYmVyIj09dHlwZW9mIHllJiZ5ZT49MCYmKHJlPU1hdGgubWluKHJlLHllKSl9KSxyZTwxLzAmJnJlPj0wJiYoZj1sLnN1YnN0cmluZygwLHJlKzEpKX1pZihkPXRoaXMudG9r'@; put 'ZW5pemVyLmlubGluZVRleHQoZix1YnQpKXtsPWwuc3Vic3RyaW5nKGQucmF3Lmxlbmd0aCksIl8iIT09ZC5yYXcuc2xpY2UoLTEpJiYoRz1kLnJhdy5zbGljZSgtMSkpLEk9ITAsaD1hW2EubGVuZ3RoLTFdLGgmJiJ0ZXh0Ij09PWgudHlwZT8oaC5yYXcrPWQucmF3LGgudGV4dCs9ZC50ZXh0'@; put 'KTphLnB1c2goZCk7Y29udGludWV9aWYobCl7Y29uc3QgcmU9IkluZmluaXRlIGxvb3Agb24gYnl0ZTogIitsLmNoYXJDb2RlQXQoMCk7aWYodGhpcy5vcHRpb25zLnNpbGVudCl7Y29uc29sZS5lcnJvcihyZSk7YnJlYWt9dGhyb3cgbmV3IEVycm9yKHJlKX19cmV0dXJuIGF9fWNsYXNzIGdO'@; put 'e2NvbnN0cnVjdG9yKGwpe3RoaXMub3B0aW9ucz1sfHxDNn1jb2RlKGwsYSxkKXtjb25zdCBoPShhfHwiIikubWF0Y2goL1xTKi8pWzBdO2lmKHRoaXMub3B0aW9ucy5oaWdobGlnaHQpe2NvbnN0IGY9dGhpcy5vcHRpb25zLmhpZ2hsaWdodChsLGgpO251bGwhPWYmJmYhPT1sJiYoZD0hMCxs'@; put 'PWYpfXJldHVybiBsPWwucmVwbGFjZSgvXG4kLywiIikrIlxuIixoPyc8cHJlPjxjb2RlIGNsYXNzPSInK3RoaXMub3B0aW9ucy5sYW5nUHJlZml4K3gxKGgpKyciPicrKGQ/bDp4MShsLCEwKSkrIjwvY29kZT48L3ByZT5cbiI6IjxwcmU+PGNvZGU+IisoZD9sOngxKGwsITApKSsiPC9jb2Rl'@; put 'PjwvcHJlPlxuIn1ibG9ja3F1b3RlKGwpe3JldHVybmA8YmxvY2txdW90ZT5cbiR7bH08L2Jsb2NrcXVvdGU+XG5gfWh0bWwobCxhKXtyZXR1cm4gbH1oZWFkaW5nKGwsYSxkLGgpe3JldHVybiB0aGlzLm9wdGlvbnMuaGVhZGVySWRzP2A8aCR7YX0gaWQ9IiR7dGhpcy5vcHRpb25zLmhlYWRl'@; put 'clByZWZpeCtoLnNsdWcoZCl9Ij4ke2x9PC9oJHthfT5cbmA6YDxoJHthfT4ke2x9PC9oJHthfT5cbmB9aHIoKXtyZXR1cm4gdGhpcy5vcHRpb25zLnhodG1sPyI8aHIvPlxuIjoiPGhyPlxuIn1saXN0KGwsYSxkKXtjb25zdCBoPWE/Im9sIjoidWwiO3JldHVybiI8IitoKyhhJiYxIT09ZD8n'@; put 'IHN0YXJ0PSInK2QrJyInOiIiKSsiPlxuIitsKyI8LyIraCsiPlxuIn1saXN0aXRlbShsKXtyZXR1cm5gPGxpPiR7bH08L2xpPlxuYH1jaGVja2JveChsKXtyZXR1cm4iPGlucHV0ICIrKGw/J2NoZWNrZWQ9IiIgJzoiIikrJ2Rpc2FibGVkPSIiIHR5cGU9ImNoZWNrYm94IicrKHRoaXMub3B0'@; put 'aW9ucy54aHRtbD8iIC8iOiIiKSsiPiAifXBhcmFncmFwaChsKXtyZXR1cm5gPHA+JHtsfTwvcD5cbmB9dGFibGUobCxhKXtyZXR1cm4gYSYmKGE9YDx0Ym9keT4ke2F9PC90Ym9keT5gKSwiPHRhYmxlPlxuPHRoZWFkPlxuIitsKyI8L3RoZWFkPlxuIithKyI8L3RhYmxlPlxuIn10YWJsZXJv'@; put 'dyhsKXtyZXR1cm5gPHRyPlxuJHtsfTwvdHI+XG5gfXRhYmxlY2VsbChsLGEpe2NvbnN0IGQ9YS5oZWFkZXI/InRoIjoidGQiO3JldHVybihhLmFsaWduP2A8JHtkfSBhbGlnbj0iJHthLmFsaWdufSI+YDpgPCR7ZH0+YCkrbCtgPC8ke2R9PlxuYH1zdHJvbmcobCl7cmV0dXJuYDxzdHJvbmc+'@; put 'JHtsfTwvc3Ryb25nPmB9ZW0obCl7cmV0dXJuYDxlbT4ke2x9PC9lbT5gfWNvZGVzcGFuKGwpe3JldHVybmA8Y29kZT4ke2x9PC9jb2RlPmB9YnIoKXtyZXR1cm4gdGhpcy5vcHRpb25zLnhodG1sPyI8YnIvPiI6Ijxicj4ifWRlbChsKXtyZXR1cm5gPGRlbD4ke2x9PC9kZWw+YH1saW5rKGws'@; put 'YSxkKXtpZihudWxsPT09KGw9YzhlKHRoaXMub3B0aW9ucy5zYW5pdGl6ZSx0aGlzLm9wdGlvbnMuYmFzZVVybCxsKSkpcmV0dXJuIGQ7bGV0IGg9JzxhIGhyZWY9IicrbCsnIic7cmV0dXJuIGEmJihoKz0nIHRpdGxlPSInK2ErJyInKSxoKz0iPiIrZCsiPC9hPiIsaH1pbWFnZShsLGEsZCl7'@; put 'aWYobnVsbD09PShsPWM4ZSh0aGlzLm9wdGlvbnMuc2FuaXRpemUsdGhpcy5vcHRpb25zLmJhc2VVcmwsbCkpKXJldHVybiBkO2xldCBoPWA8aW1nIHNyYz0iJHtsfSIgYWx0PSIke2R9ImA7cmV0dXJuIGEmJihoKz1gIHRpdGxlPSIke2F9ImApLGgrPXRoaXMub3B0aW9ucy54aHRtbD8iLz4i'@; put 'OiI+IixofXRleHQobCl7cmV0dXJuIGx9fWNsYXNzIGN0ZXtzdHJvbmcobCl7cmV0dXJuIGx9ZW0obCl7cmV0dXJuIGx9Y29kZXNwYW4obCl7cmV0dXJuIGx9ZGVsKGwpe3JldHVybiBsfWh0bWwobCl7cmV0dXJuIGx9dGV4dChsKXtyZXR1cm4gbH1saW5rKGwsYSxkKXtyZXR1cm4iIitkfWlt'@; put 'YWdlKGwsYSxkKXtyZXR1cm4iIitkfWJyKCl7cmV0dXJuIiJ9fWNsYXNzIHV0ZXtjb25zdHJ1Y3Rvcigpe3RoaXMuc2Vlbj17fX1zZXJpYWxpemUobCl7cmV0dXJuIGwudG9Mb3dlckNhc2UoKS50cmltKCkucmVwbGFjZSgvPFshXC9hLXpdLio/Pi9naSwiIikucmVwbGFjZSgvW1x1MjAwMC1c'@; put 'dTIwNkZcdTJFMDAtXHUyRTdGXFwnISIjJCUmKCkqKywuLzo7PD0+P0BbXF1eYHt8fX5dL2csIiIpLnJlcGxhY2UoL1xzL2csIi0iKX1nZXROZXh0U2FmZVNsdWcobCxhKXtsZXQgZD1sLGg9MDtpZih0aGlzLnNlZW4uaGFzT3duUHJvcGVydHkoZCkpe2g9dGhpcy5zZWVuW2xdO2Rve2grKyxk'@; put 'PWwrIi0iK2h9d2hpbGUodGhpcy5zZWVuLmhhc093blByb3BlcnR5KGQpKX1yZXR1cm4gYXx8KHRoaXMuc2VlbltsXT1oLHRoaXMuc2VlbltkXT0wKSxkfXNsdWcobCxhPXt9KXtjb25zdCBkPXRoaXMuc2VyaWFsaXplKGwpO3JldHVybiB0aGlzLmdldE5leHRTYWZlU2x1ZyhkLGEuZHJ5cnVu'@; put 'KX19Y2xhc3MgbzR7Y29uc3RydWN0b3IobCl7dGhpcy5vcHRpb25zPWx8fEM2LHRoaXMub3B0aW9ucy5yZW5kZXJlcj10aGlzLm9wdGlvbnMucmVuZGVyZXJ8fG5ldyBnTix0aGlzLnJlbmRlcmVyPXRoaXMub3B0aW9ucy5yZW5kZXJlcix0aGlzLnJlbmRlcmVyLm9wdGlvbnM9dGhpcy5vcHRp'@; put 'b25zLHRoaXMudGV4dFJlbmRlcmVyPW5ldyBjdGUsdGhpcy5zbHVnZ2VyPW5ldyB1dGV9c3RhdGljIHBhcnNlKGwsYSl7cmV0dXJuIG5ldyBvNChhKS5wYXJzZShsKX1zdGF0aWMgcGFyc2VJbmxpbmUobCxhKXtyZXR1cm4gbmV3IG80KGEpLnBhcnNlSW5saW5lKGwpfXBhcnNlKGwsYT0hMCl7'@; put 'bGV0IGgsZix2LE0sSSxHLHJlLHVlLHllLEVlLEJlLEdlLHN0LHB0LGR0LHF0LG1uLHduLGhuLGQ9IiI7Y29uc3QgTW49bC5sZW5ndGg7Zm9yKGg9MDtoPE1uO2grKylpZihFZT1sW2hdLHRoaXMub3B0aW9ucy5leHRlbnNpb25zJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5yZW5kZXJlcnMm'@; put 'JnRoaXMub3B0aW9ucy5leHRlbnNpb25zLnJlbmRlcmVyc1tFZS50eXBlXSYmKGhuPXRoaXMub3B0aW9ucy5leHRlbnNpb25zLnJlbmRlcmVyc1tFZS50eXBlXS5jYWxsKHtwYXJzZXI6dGhpc30sRWUpLCExIT09aG58fCFbInNwYWNlIiwiaHIiLCJoZWFkaW5nIiwiY29kZSIsInRhYmxlIiwi'@; put 'YmxvY2txdW90ZSIsImxpc3QiLCJodG1sIiwicGFyYWdyYXBoIiwidGV4dCJdLmluY2x1ZGVzKEVlLnR5cGUpKSlkKz1obnx8IiI7ZWxzZSBzd2l0Y2goRWUudHlwZSl7Y2FzZSJzcGFjZSI6Y29udGludWU7Y2FzZSJociI6ZCs9dGhpcy5yZW5kZXJlci5ocigpO2NvbnRpbnVlO2Nhc2UiaGVh'@; put 'ZGluZyI6ZCs9dGhpcy5yZW5kZXJlci5oZWFkaW5nKHRoaXMucGFyc2VJbmxpbmUoRWUudG9rZW5zKSxFZS5kZXB0aCxsOGUodGhpcy5wYXJzZUlubGluZShFZS50b2tlbnMsdGhpcy50ZXh0UmVuZGVyZXIpKSx0aGlzLnNsdWdnZXIpO2NvbnRpbnVlO2Nhc2UiY29kZSI6ZCs9dGhpcy5yZW5k'@; put 'ZXJlci5jb2RlKEVlLnRleHQsRWUubGFuZyxFZS5lc2NhcGVkKTtjb250aW51ZTtjYXNlInRhYmxlIjpmb3IodWU9IiIscmU9IiIsTT1FZS5oZWFkZXIubGVuZ3RoLGY9MDtmPE07ZisrKXJlKz10aGlzLnJlbmRlcmVyLnRhYmxlY2VsbCh0aGlzLnBhcnNlSW5saW5lKEVlLmhlYWRlcltmXS50'@; put 'b2tlbnMpLHtoZWFkZXI6ITAsYWxpZ246RWUuYWxpZ25bZl19KTtmb3IodWUrPXRoaXMucmVuZGVyZXIudGFibGVyb3cocmUpLHllPSIiLE09RWUucm93cy5sZW5ndGgsZj0wO2Y8TTtmKyspe2ZvcihHPUVlLnJvd3NbZl0scmU9IiIsST1HLmxlbmd0aCx2PTA7djxJO3YrKylyZSs9dGhpcy5y'@; put 'ZW5kZXJlci50YWJsZWNlbGwodGhpcy5wYXJzZUlubGluZShHW3ZdLnRva2Vucykse2hlYWRlcjohMSxhbGlnbjpFZS5hbGlnblt2XX0pO3llKz10aGlzLnJlbmRlcmVyLnRhYmxlcm93KHJlKX1kKz10aGlzLnJlbmRlcmVyLnRhYmxlKHVlLHllKTtjb250aW51ZTtjYXNlImJsb2NrcXVvdGUi'@; put 'OnllPXRoaXMucGFyc2UoRWUudG9rZW5zKSxkKz10aGlzLnJlbmRlcmVyLmJsb2NrcXVvdGUoeWUpO2NvbnRpbnVlO2Nhc2UibGlzdCI6Zm9yKEJlPUVlLm9yZGVyZWQsR2U9RWUuc3RhcnQsc3Q9RWUubG9vc2UsTT1FZS5pdGVtcy5sZW5ndGgseWU9IiIsZj0wO2Y8TTtmKyspZHQ9RWUuaXRl'@; put 'bXNbZl0scXQ9ZHQuY2hlY2tlZCxtbj1kdC50YXNrLHB0PSIiLGR0LnRhc2smJih3bj10aGlzLnJlbmRlcmVyLmNoZWNrYm94KHF0KSxzdD9kdC50b2tlbnMubGVuZ3RoPjAmJiJwYXJhZ3JhcGgiPT09ZHQudG9rZW5zWzBdLnR5cGU/KGR0LnRva2Vuc1swXS50ZXh0PXduKyIgIitkdC50b2tl'@; put 'bnNbMF0udGV4dCxkdC50b2tlbnNbMF0udG9rZW5zJiZkdC50b2tlbnNbMF0udG9rZW5zLmxlbmd0aD4wJiYidGV4dCI9PT1kdC50b2tlbnNbMF0udG9rZW5zWzBdLnR5cGUmJihkdC50b2tlbnNbMF0udG9rZW5zWzBdLnRleHQ9d24rIiAiK2R0LnRva2Vuc1swXS50b2tlbnNbMF0udGV4dCkp'@; put 'OmR0LnRva2Vucy51bnNoaWZ0KHt0eXBlOiJ0ZXh0Iix0ZXh0OndufSk6cHQrPXduKSxwdCs9dGhpcy5wYXJzZShkdC50b2tlbnMsc3QpLHllKz10aGlzLnJlbmRlcmVyLmxpc3RpdGVtKHB0LG1uLHF0KTtkKz10aGlzLnJlbmRlcmVyLmxpc3QoeWUsQmUsR2UpO2NvbnRpbnVlO2Nhc2UiaHRt'@; put 'bCI6ZCs9dGhpcy5yZW5kZXJlci5odG1sKEVlLnRleHQsRWUuYmxvY2spO2NvbnRpbnVlO2Nhc2UicGFyYWdyYXBoIjpkKz10aGlzLnJlbmRlcmVyLnBhcmFncmFwaCh0aGlzLnBhcnNlSW5saW5lKEVlLnRva2VucykpO2NvbnRpbnVlO2Nhc2UidGV4dCI6Zm9yKHllPUVlLnRva2Vucz90aGlz'@; put 'LnBhcnNlSW5saW5lKEVlLnRva2Vucyk6RWUudGV4dDtoKzE8TW4mJiJ0ZXh0Ij09PWxbaCsxXS50eXBlOylFZT1sWysraF0seWUrPSJcbiIrKEVlLnRva2Vucz90aGlzLnBhcnNlSW5saW5lKEVlLnRva2Vucyk6RWUudGV4dCk7ZCs9YT90aGlzLnJlbmRlcmVyLnBhcmFncmFwaCh5ZSk6eWU7'@; put 'Y29udGludWU7ZGVmYXVsdDp7Y29uc3QgTXI9J1Rva2VuIHdpdGggIicrRWUudHlwZSsnIiB0eXBlIHdhcyBub3QgZm91bmQuJztpZih0aGlzLm9wdGlvbnMuc2lsZW50KXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoTXIpO3Rocm93IG5ldyBFcnJvcihNcil9fXJldHVybiBkfXBhcnNlSW5s'@; put 'aW5lKGwsYSl7YT1hfHx0aGlzLnJlbmRlcmVyO2xldCBoLGYsdixkPSIiO2NvbnN0IE09bC5sZW5ndGg7Zm9yKGg9MDtoPE07aCsrKWlmKGY9bFtoXSx0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMucmVuZGVyZXJzJiZ0aGlzLm9wdGlvbnMuZXh0ZW5z'@; put 'aW9ucy5yZW5kZXJlcnNbZi50eXBlXSYmKHY9dGhpcy5vcHRpb25zLmV4dGVuc2lvbnMucmVuZGVyZXJzW2YudHlwZV0uY2FsbCh7cGFyc2VyOnRoaXN9LGYpLCExIT09dnx8IVsiZXNjYXBlIiwiaHRtbCIsImxpbmsiLCJpbWFnZSIsInN0cm9uZyIsImVtIiwiY29kZXNwYW4iLCJiciIsImRl'@; put 'bCIsInRleHQiXS5pbmNsdWRlcyhmLnR5cGUpKSlkKz12fHwiIjtlbHNlIHN3aXRjaChmLnR5cGUpe2Nhc2UiZXNjYXBlIjpjYXNlInRleHQiOmQrPWEudGV4dChmLnRleHQpO2JyZWFrO2Nhc2UiaHRtbCI6ZCs9YS5odG1sKGYudGV4dCk7YnJlYWs7Y2FzZSJsaW5rIjpkKz1hLmxpbmsoZi5o'@; put 'cmVmLGYudGl0bGUsdGhpcy5wYXJzZUlubGluZShmLnRva2VucyxhKSk7YnJlYWs7Y2FzZSJpbWFnZSI6ZCs9YS5pbWFnZShmLmhyZWYsZi50aXRsZSxmLnRleHQpO2JyZWFrO2Nhc2Uic3Ryb25nIjpkKz1hLnN0cm9uZyh0aGlzLnBhcnNlSW5saW5lKGYudG9rZW5zLGEpKTticmVhaztjYXNl'@; put 'ImVtIjpkKz1hLmVtKHRoaXMucGFyc2VJbmxpbmUoZi50b2tlbnMsYSkpO2JyZWFrO2Nhc2UiY29kZXNwYW4iOmQrPWEuY29kZXNwYW4oZi50ZXh0KTticmVhaztjYXNlImJyIjpkKz1hLmJyKCk7YnJlYWs7Y2FzZSJkZWwiOmQrPWEuZGVsKHRoaXMucGFyc2VJbmxpbmUoZi50b2tlbnMsYSkp'@; put 'O2JyZWFrO2RlZmF1bHQ6e2NvbnN0IEk9J1Rva2VuIHdpdGggIicrZi50eXBlKyciIHR5cGUgd2FzIG5vdCBmb3VuZC4nO2lmKHRoaXMub3B0aW9ucy5zaWxlbnQpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcihJKTt0aHJvdyBuZXcgRXJyb3IoSSl9fXJldHVybiBkfX1jbGFzcyBtTntjb25z'@; put 'dHJ1Y3RvcihsKXt0aGlzLm9wdGlvbnM9bHx8QzZ9c3RhdGljIHBhc3NUaHJvdWdoSG9va3M9bmV3IFNldChbInByZXByb2Nlc3MiLCJwb3N0cHJvY2VzcyJdKTtwcmVwcm9jZXNzKGwpe3JldHVybiBsfXBvc3Rwcm9jZXNzKGwpe3JldHVybiBsfX1jb25zdCBHOT1uZXcgY2xhc3MgZGJ0e2Rl'@; put 'ZmF1bHRzPXthc3luYzohMSxiYXNlVXJsOm51bGwsYnJlYWtzOiExLGV4dGVuc2lvbnM6bnVsbCxnZm06ITAsaGVhZGVySWRzOiEwLGhlYWRlclByZWZpeDoiIixoaWdobGlnaHQ6bnVsbCxob29rczpudWxsLGxhbmdQcmVmaXg6Imxhbmd1YWdlLSIsbWFuZ2xlOiEwLHBlZGFudGljOiExLHJl'@; put 'bmRlcmVyOm51bGwsc2FuaXRpemU6ITEsc2FuaXRpemVyOm51bGwsc2lsZW50OiExLHNtYXJ0eXBhbnRzOiExLHRva2VuaXplcjpudWxsLHdhbGtUb2tlbnM6bnVsbCx4aHRtbDohMX07b3B0aW9ucz10aGlzLnNldE9wdGlvbnM7cGFyc2U9dGhpcy4jZShzNC5sZXgsbzQucGFyc2UpO3BhcnNl'@; put 'SW5saW5lPXRoaXMuI2UoczQubGV4SW5saW5lLG80LnBhcnNlSW5saW5lKTtQYXJzZXI9bzQ7cGFyc2VyPW80LnBhcnNlO1JlbmRlcmVyPWdOO1RleHRSZW5kZXJlcj1jdGU7TGV4ZXI9czQ7bGV4ZXI9czQubGV4O1Rva2VuaXplcj1wTjtTbHVnZ2VyPXV0ZTtIb29rcz1tTjtjb25zdHJ1Y3Rv'@; put 'ciguLi5sKXt0aGlzLnVzZSguLi5sKX13YWxrVG9rZW5zKGwsYSl7bGV0IGQ9W107Zm9yKGNvbnN0IGggb2YgbClzd2l0Y2goZD1kLmNvbmNhdChhLmNhbGwodGhpcyxoKSksaC50eXBlKXtjYXNlInRhYmxlIjpmb3IoY29uc3QgZiBvZiBoLmhlYWRlcilkPWQuY29uY2F0KHRoaXMud2Fsa1Rv'@; put 'a2VucyhmLnRva2VucyxhKSk7Zm9yKGNvbnN0IGYgb2YgaC5yb3dzKWZvcihjb25zdCB2IG9mIGYpZD1kLmNvbmNhdCh0aGlzLndhbGtUb2tlbnModi50b2tlbnMsYSkpO2JyZWFrO2Nhc2UibGlzdCI6ZD1kLmNvbmNhdCh0aGlzLndhbGtUb2tlbnMoaC5pdGVtcyxhKSk7YnJlYWs7ZGVmYXVs'@; put 'dDp0aGlzLmRlZmF1bHRzLmV4dGVuc2lvbnMmJnRoaXMuZGVmYXVsdHMuZXh0ZW5zaW9ucy5jaGlsZFRva2VucyYmdGhpcy5kZWZhdWx0cy5leHRlbnNpb25zLmNoaWxkVG9rZW5zW2gudHlwZV0/dGhpcy5kZWZhdWx0cy5leHRlbnNpb25zLmNoaWxkVG9rZW5zW2gudHlwZV0uZm9yRWFjaChm'@; put 'PT57ZD1kLmNvbmNhdCh0aGlzLndhbGtUb2tlbnMoaFtmXSxhKSl9KTpoLnRva2VucyYmKGQ9ZC5jb25jYXQodGhpcy53YWxrVG9rZW5zKGgudG9rZW5zLGEpKSl9cmV0dXJuIGR9dXNlKC4uLmwpe2NvbnN0IGE9dGhpcy5kZWZhdWx0cy5leHRlbnNpb25zfHx7cmVuZGVyZXJzOnt9LGNoaWxk'@; put 'VG9rZW5zOnt9fTtyZXR1cm4gbC5mb3JFYWNoKGQ9Pntjb25zdCBoPXsuLi5kfTtpZihoLmFzeW5jPXRoaXMuZGVmYXVsdHMuYXN5bmN8fGguYXN5bmN8fCExLGQuZXh0ZW5zaW9ucyYmKGQuZXh0ZW5zaW9ucy5mb3JFYWNoKGY9PntpZighZi5uYW1lKXRocm93IG5ldyBFcnJvcigiZXh0ZW5z'@; put 'aW9uIG5hbWUgcmVxdWlyZWQiKTtpZihmLnJlbmRlcmVyKXtjb25zdCB2PWEucmVuZGVyZXJzW2YubmFtZV07YS5yZW5kZXJlcnNbZi5uYW1lXT12P2Z1bmN0aW9uKC4uLk0pe2xldCBJPWYucmVuZGVyZXIuYXBwbHkodGhpcyxNKTtyZXR1cm4hMT09PUkmJihJPXYuYXBwbHkodGhpcyxNKSks'@; put 'SX06Zi5yZW5kZXJlcn1pZihmLnRva2VuaXplcil7aWYoIWYubGV2ZWx8fCJibG9jayIhPT1mLmxldmVsJiYiaW5saW5lIiE9PWYubGV2ZWwpdGhyb3cgbmV3IEVycm9yKCJleHRlbnNpb24gbGV2ZWwgbXVzdCBiZSAnYmxvY2snIG9yICdpbmxpbmUnIik7YVtmLmxldmVsXT9hW2YubGV2ZWxd'@; put 'LnVuc2hpZnQoZi50b2tlbml6ZXIpOmFbZi5sZXZlbF09W2YudG9rZW5pemVyXSxmLnN0YXJ0JiYoImJsb2NrIj09PWYubGV2ZWw/YS5zdGFydEJsb2NrP2Euc3RhcnRCbG9jay5wdXNoKGYuc3RhcnQpOmEuc3RhcnRCbG9jaz1bZi5zdGFydF06ImlubGluZSI9PT1mLmxldmVsJiYoYS5zdGFy'@; put 'dElubGluZT9hLnN0YXJ0SW5saW5lLnB1c2goZi5zdGFydCk6YS5zdGFydElubGluZT1bZi5zdGFydF0pKX1mLmNoaWxkVG9rZW5zJiYoYS5jaGlsZFRva2Vuc1tmLm5hbWVdPWYuY2hpbGRUb2tlbnMpfSksaC5leHRlbnNpb25zPWEpLGQucmVuZGVyZXIpe2NvbnN0IGY9dGhpcy5kZWZhdWx0'@; put 'cy5yZW5kZXJlcnx8bmV3IGdOKHRoaXMuZGVmYXVsdHMpO2Zvcihjb25zdCB2IGluIGQucmVuZGVyZXIpe2NvbnN0IE09Zlt2XTtmW3ZdPSguLi5JKT0+e2xldCBHPWQucmVuZGVyZXJbdl0uYXBwbHkoZixJKTtyZXR1cm4hMT09PUcmJihHPU0uYXBwbHkoZixJKSksR319aC5yZW5kZXJlcj1m'@; put 'fWlmKGQudG9rZW5pemVyKXtjb25zdCBmPXRoaXMuZGVmYXVsdHMudG9rZW5pemVyfHxuZXcgcE4odGhpcy5kZWZhdWx0cyk7Zm9yKGNvbnN0IHYgaW4gZC50b2tlbml6ZXIpe2NvbnN0IE09Zlt2XTtmW3ZdPSguLi5JKT0+e2xldCBHPWQudG9rZW5pemVyW3ZdLmFwcGx5KGYsSSk7cmV0dXJu'@; put 'ITE9PT1HJiYoRz1NLmFwcGx5KGYsSSkpLEd9fWgudG9rZW5pemVyPWZ9aWYoZC5ob29rcyl7Y29uc3QgZj10aGlzLmRlZmF1bHRzLmhvb2tzfHxuZXcgbU47Zm9yKGNvbnN0IHYgaW4gZC5ob29rcyl7Y29uc3QgTT1mW3ZdO2Zbdl09bU4ucGFzc1Rocm91Z2hIb29rcy5oYXModik/ST0+e2lm'@; put 'KHRoaXMuZGVmYXVsdHMuYXN5bmMpcmV0dXJuIFByb21pc2UucmVzb2x2ZShkLmhvb2tzW3ZdLmNhbGwoZixJKSkudGhlbihyZT0+TS5jYWxsKGYscmUpKTtjb25zdCBHPWQuaG9va3Nbdl0uY2FsbChmLEkpO3JldHVybiBNLmNhbGwoZixHKX06KC4uLkkpPT57bGV0IEc9ZC5ob29rc1t2XS5h'@; put 'cHBseShmLEkpO3JldHVybiExPT09RyYmKEc9TS5hcHBseShmLEkpKSxHfX1oLmhvb2tzPWZ9aWYoZC53YWxrVG9rZW5zKXtjb25zdCBmPXRoaXMuZGVmYXVsdHMud2Fsa1Rva2VucztoLndhbGtUb2tlbnM9ZnVuY3Rpb24odil7bGV0IE09W107cmV0dXJuIE0ucHVzaChkLndhbGtUb2tlbnMu'@; put 'Y2FsbCh0aGlzLHYpKSxmJiYoTT1NLmNvbmNhdChmLmNhbGwodGhpcyx2KSkpLE19fXRoaXMuZGVmYXVsdHM9ey4uLnRoaXMuZGVmYXVsdHMsLi4uaH19KSx0aGlzfXNldE9wdGlvbnMobCl7cmV0dXJuIHRoaXMuZGVmYXVsdHM9ey4uLnRoaXMuZGVmYXVsdHMsLi4ubH0sdGhpc30jZShsLGEp'@; put 'e3JldHVybihkLGgsZik9PnsiZnVuY3Rpb24iPT10eXBlb2YgaCYmKGY9aCxoPW51bGwpO2NvbnN0IHY9ey4uLmh9O2g9ey4uLnRoaXMuZGVmYXVsdHMsLi4udn07Y29uc3QgTT10aGlzLiN0KGguc2lsZW50LGguYXN5bmMsZik7aWYodHlwZW9mIGQ+InUifHxudWxsPT09ZClyZXR1cm4gTShu'@; put 'ZXcgRXJyb3IoIm1hcmtlZCgpOiBpbnB1dCBwYXJhbWV0ZXIgaXMgdW5kZWZpbmVkIG9yIG51bGwiKSk7aWYoInN0cmluZyIhPXR5cGVvZiBkKXJldHVybiBNKG5ldyBFcnJvcigibWFya2VkKCk6IGlucHV0IHBhcmFtZXRlciBpcyBvZiB0eXBlICIrT2JqZWN0LnByb3RvdHlwZS50b1N0cmlu'@; put 'Zy5jYWxsKGQpKyIsIHN0cmluZyBleHBlY3RlZCIpKTtpZihmdW5jdGlvbiBsYnQoYyxsKXshY3x8Yy5zaWxlbnR8fChsJiZjb25zb2xlLndhcm4oIm1hcmtlZCgpOiBjYWxsYmFjayBpcyBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gNS4wLjAsIHNob3VsZCBub3QgYmUgdXNlZCBhbmQgd2ls'@; put 'bCBiZSByZW1vdmVkIGluIHRoZSBmdXR1cmUuIFJlYWQgbW9yZSBoZXJlOiBodHRwczovL21hcmtlZC5qcy5vcmcvdXNpbmdfcHJvI2FzeW5jIiksKGMuc2FuaXRpemV8fGMuc2FuaXRpemVyKSYmY29uc29sZS53YXJuKCJtYXJrZWQoKTogc2FuaXRpemUgYW5kIHNhbml0aXplciBwYXJhbWV0'@; put 'ZXJzIGFyZSBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMC43LjAsIHNob3VsZCBub3QgYmUgdXNlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBmdXR1cmUuIFJlYWQgbW9yZSBoZXJlOiBodHRwczovL21hcmtlZC5qcy5vcmcvIy9VU0lOR19BRFZBTkNFRC5tZCNvcHRpb25zIiksKGMu'@; put 'aGlnaGxpZ2h0fHwibGFuZ3VhZ2UtIiE9PWMubGFuZ1ByZWZpeCkmJmNvbnNvbGUud2FybigibWFya2VkKCk6IGhpZ2hsaWdodCBhbmQgbGFuZ1ByZWZpeCBwYXJhbWV0ZXJzIGFyZSBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gNS4wLjAsIHNob3VsZCBub3QgYmUgdXNlZCBhbmQgd2lsbCBi'@; put 'ZSByZW1vdmVkIGluIHRoZSBmdXR1cmUuIEluc3RlYWQgdXNlIGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL21hcmtlZC1oaWdobGlnaHQuIiksYy5tYW5nbGUmJmNvbnNvbGUud2FybigibWFya2VkKCk6IG1hbmdsZSBwYXJhbWV0ZXIgaXMgZW5hYmxlZCBieSBkZWZhdWx0LCBidXQg'@; put 'aXMgZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDUuMC4wLCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBmdXR1cmUuIFRvIGNsZWFyIHRoaXMgd2FybmluZywgaW5zdGFsbCBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9tYXJrZWQtbWFuZ2xlLCBvciBkaXNhYmxlIGJ5IHNldHRp'@; put 'bmcgYHttYW5nbGU6IGZhbHNlfWAuIiksYy5iYXNlVXJsJiZjb25zb2xlLndhcm4oIm1hcmtlZCgpOiBiYXNlVXJsIHBhcmFtZXRlciBpcyBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gNS4wLjAsIHNob3VsZCBub3QgYmUgdXNlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBmdXR1cmUu'@; put 'IEluc3RlYWQgdXNlIGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL21hcmtlZC1iYXNlLXVybC4iKSxjLnNtYXJ0eXBhbnRzJiZjb25zb2xlLndhcm4oIm1hcmtlZCgpOiBzbWFydHlwYW50cyBwYXJhbWV0ZXIgaXMgZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDUuMC4wLCBzaG91bGQg'@; put 'bm90IGJlIHVzZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlLiBJbnN0ZWFkIHVzZSBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9tYXJrZWQtc21hcnR5cGFudHMuIiksYy54aHRtbCYmY29uc29sZS53YXJuKCJtYXJrZWQoKTogeGh0bWwgcGFyYW1ldGVyIGlzIGRl'@; put 'cHJlY2F0ZWQgc2luY2UgdmVyc2lvbiA1LjAuMCwgc2hvdWxkIG5vdCBiZSB1c2VkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIGZ1dHVyZS4gSW5zdGVhZCB1c2UgaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvbWFya2VkLXhodG1sLiIpLChjLmhlYWRlcklkc3x8Yy5oZWFkZXJQ'@; put 'cmVmaXgpJiZjb25zb2xlLndhcm4oIm1hcmtlZCgpOiBoZWFkZXJJZHMgYW5kIGhlYWRlclByZWZpeCBwYXJhbWV0ZXJzIGVuYWJsZWQgYnkgZGVmYXVsdCwgYnV0IGFyZSBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gNS4wLjAsIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIGZ1dHVyZS4g'@; put 'VG8gY2xlYXIgdGhpcyB3YXJuaW5nLCBpbnN0YWxsICBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9tYXJrZWQtZ2ZtLWhlYWRpbmctaWQsIG9yIGRpc2FibGUgYnkgc2V0dGluZyBge2hlYWRlcklkczogZmFsc2V9YC4iKSl9KGgsZiksaC5ob29rcyYmKGguaG9va3Mub3B0aW9ucz1o'@; put 'KSxmKXtjb25zdCBJPWguaGlnaGxpZ2h0O2xldCBHO3RyeXtoLmhvb2tzJiYoZD1oLmhvb2tzLnByZXByb2Nlc3MoZCkpLEc9bChkLGgpfWNhdGNoKHllKXtyZXR1cm4gTSh5ZSl9Y29uc3QgcmU9eWU9PntsZXQgRWU7aWYoIXllKXRyeXtoLndhbGtUb2tlbnMmJnRoaXMud2Fsa1Rva2VucyhH'@; put 'LGgud2Fsa1Rva2VucyksRWU9YShHLGgpLGguaG9va3MmJihFZT1oLmhvb2tzLnBvc3Rwcm9jZXNzKEVlKSl9Y2F0Y2goQmUpe3llPUJlfXJldHVybiBoLmhpZ2hsaWdodD1JLHllP00oeWUpOmYobnVsbCxFZSl9O2lmKCFJfHxJLmxlbmd0aDwzfHwoZGVsZXRlIGguaGlnaGxpZ2h0LCFHLmxl'@; put 'bmd0aCkpcmV0dXJuIHJlKCk7bGV0IHVlPTA7cmV0dXJuIHRoaXMud2Fsa1Rva2VucyhHLHllPT57ImNvZGUiPT09eWUudHlwZSYmKHVlKyssc2V0VGltZW91dCgoKT0+e0koeWUudGV4dCx5ZS5sYW5nLChFZSxCZSk9PntpZihFZSlyZXR1cm4gcmUoRWUpO251bGwhPUJlJiZCZSE9PXllLnRl'@; put 'eHQmJih5ZS50ZXh0PUJlLHllLmVzY2FwZWQ9ITApLHVlLS0sMD09PXVlJiZyZSgpfSl9LDApKX0pLHZvaWQoMD09PXVlJiZyZSgpKX1pZihoLmFzeW5jKXJldHVybiBQcm9taXNlLnJlc29sdmUoaC5ob29rcz9oLmhvb2tzLnByZXByb2Nlc3MoZCk6ZCkudGhlbihJPT5sKEksaCkpLnRoZW4o'@; put 'ST0+aC53YWxrVG9rZW5zP1Byb21pc2UuYWxsKHRoaXMud2Fsa1Rva2VucyhJLGgud2Fsa1Rva2VucykpLnRoZW4oKCk9PkkpOkkpLnRoZW4oST0+YShJLGgpKS50aGVuKEk9PmguaG9va3M/aC5ob29rcy5wb3N0cHJvY2VzcyhJKTpJKS5jYXRjaChNKTt0cnl7aC5ob29rcyYmKGQ9aC5ob29r'@; put 'cy5wcmVwcm9jZXNzKGQpKTtjb25zdCBJPWwoZCxoKTtoLndhbGtUb2tlbnMmJnRoaXMud2Fsa1Rva2VucyhJLGgud2Fsa1Rva2Vucyk7bGV0IEc9YShJLGgpO3JldHVybiBoLmhvb2tzJiYoRz1oLmhvb2tzLnBvc3Rwcm9jZXNzKEcpKSxHfWNhdGNoKEkpe3JldHVybiBNKEkpfX19I3QobCxh'@; put 'LGQpe3JldHVybiBoPT57aWYoaC5tZXNzYWdlKz0iXG5QbGVhc2UgcmVwb3J0IHRoaXMgdG8gaHR0cHM6Ly9naXRodWIuY29tL21hcmtlZGpzL21hcmtlZC4iLGwpe2NvbnN0IGY9IjxwPkFuIGVycm9yIG9jY3VycmVkOjwvcD48cHJlPiIreDEoaC5tZXNzYWdlKyIiLCEwKSsiPC9wcmU+Ijty'@; put 'ZXR1cm4gYT9Qcm9taXNlLnJlc29sdmUoZik6ZD92b2lkIGQobnVsbCxmKTpmfWlmKGEpcmV0dXJuIFByb21pc2UucmVqZWN0KGgpO2lmKCFkKXRocm93IGg7ZChoKX19fShDNik7ZnVuY3Rpb24ga2woYyxsLGEpe3JldHVybiBHOS5wYXJzZShjLGwsYSl9a2wub3B0aW9ucz1rbC5zZXRPcHRp'@; put 'b25zPWZ1bmN0aW9uKGMpe3JldHVybiBHOS5zZXRPcHRpb25zKGMpLGk4ZShrbC5kZWZhdWx0cz1HOS5kZWZhdWx0cyksa2x9LGtsLmdldERlZmF1bHRzPWZ1bmN0aW9uIGx0ZSgpe3JldHVybnthc3luYzohMSxiYXNlVXJsOm51bGwsYnJlYWtzOiExLGV4dGVuc2lvbnM6bnVsbCxnZm06ITAs'@; put 'aGVhZGVySWRzOiEwLGhlYWRlclByZWZpeDoiIixoaWdobGlnaHQ6bnVsbCxob29rczpudWxsLGxhbmdQcmVmaXg6Imxhbmd1YWdlLSIsbWFuZ2xlOiEwLHBlZGFudGljOiExLHJlbmRlcmVyOm51bGwsc2FuaXRpemU6ITEsc2FuaXRpemVyOm51bGwsc2lsZW50OiExLHNtYXJ0eXBhbnRzOiEx'@; put 'LHRva2VuaXplcjpudWxsLHdhbGtUb2tlbnM6bnVsbCx4aHRtbDohMX19LGtsLmRlZmF1bHRzPUM2LGtsLnVzZT1mdW5jdGlvbiguLi5jKXtyZXR1cm4gRzkudXNlKC4uLmMpLGk4ZShrbC5kZWZhdWx0cz1HOS5kZWZhdWx0cyksa2x9LGtsLndhbGtUb2tlbnM9ZnVuY3Rpb24oYyxsKXtyZXR1'@; put 'cm4gRzkud2Fsa1Rva2VucyhjLGwpfSxrbC5wYXJzZUlubGluZT1HOS5wYXJzZUlubGluZSxrbC5QYXJzZXI9bzQsa2wucGFyc2VyPW80LnBhcnNlLGtsLlJlbmRlcmVyPWdOLGtsLlRleHRSZW5kZXJlcj1jdGUsa2wuTGV4ZXI9czQsa2wubGV4ZXI9czQubGV4LGtsLlRva2VuaXplcj1wTixr'@; put 'bC5TbHVnZ2VyPXV0ZSxrbC5Ib29rcz1tTixrbC5wYXJzZT1rbDtjb25zdCBmYnQ9WyJtYXJrZG93bkNhcmQiXTtmdW5jdGlvbiBwYnQoYyxsKXsxJmMmJld0KDAsImNsci1zcGlubmVyIiw4KX1sZXQgZ2J0PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSl7dGhpcy5zYXNTZXJ2aWNlPWEs'@; put 'dGhpcy5hZ3JlZUNoZWNrZWQ9ITEsdGhpcy5hZ3JlZUJveExvY2tlZD0hMCx0aGlzLmFncmVlQ2xpY2tlZD0hMSx0aGlzLmV1bGFfbWFya2Rvd249J1xuTGljZW5jZSBBZ3JlZW1lbnQgZm9yIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZVxuPT09PT09PT09PT09PT09PT09PT1cblxuQ29w'@; put 'eXJpZ2h0IChjKSBCb3dlIElPIEx0ZFxuXG5EYXRhIENvbnRyb2xsZXIgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQgYnkgNEdMIEFwcHMsIGEgYnJhbmQgb3duZWQgYnkgQm93ZSBJTyBMdGQsIGEgVUsgTGltaXRlZCBDb21wYW55IGhlYWRxdWFydGVkIGluIDI5IE9sZGZpZWxkIFJkLCBDdW1i'@; put 'cmlhLCByZWdpc3RlcmVkIGF0IENvbXBhbmllcyBIb3VzZSB3aXRoIGNvbXBhbnkgbnVtYmVyIDA4Nzc3MTcxLCBWQVQgbnVtYmVyOiAyMDM5MTQyNDBcblxuVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgYXBwbGljYWJsZSBjb3B5cmlnaHQgbGF3cywgaW5jbHVkaW5nIGludGVybmF0'@; put 'aW9uYWwgdHJlYXRpZXMsIGFuZCBkdWFsLWxpY2Vuc2VkIFx1MjAxMyBkZXBlbmRpbmcgb24gd2hldGhlciB5b3VyIHVzZSBmb3IgY29tbWVyY2lhbCBwdXJwb3NlcywgbWVhbmluZyBpbnRlbmRlZCBmb3Igb3IgcmVzdWx0aW5nIGluIGNvbW1lcmNpYWwgYWR2YW50YWdlIG9yIG1vbmV0YXJ5'@; put 'IGNvbXBlbnNhdGlvbiwgb3Igbm90LlxuXG5JZiB5b3VyIHVzZSBpcyBzdHJpY3RseSBwZXJzb25hbCBvciBzb2xlbHkgZm9yIGV2YWx1YXRpb24gcHVycG9zZXMsIG1lYW5pbmcgZm9yIHRoZSBwdXJwb3NlcyBvZiB0ZXN0aW5nIHRoZSBzdWl0YWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCB1'@; put 'c2VmdWxuZXNzIG9mIHRoaXMgc29mdHdhcmUgb3V0c2lkZSB0aGUgcHJvZHVjdGlvbiBlbnZpcm9ubWVudCwgeW91IGFncmVlIHRvIGJlIGJvdW5kIGJ5IHRoZSB0ZXJtcyBpbmNsdWRlZCBpbiB0aGUgImxpY2VuY2Utbm9uLWNvbW1lcmNpYWwtZGF0YWNvbnRyb2xsZXIubWQiIGZpbGUgYXZh'@; put 'aWxhYmxlIGhlcmU6ICBodHRwczovL2dpdC5kYXRhY29udHJvbGxlci5pby9kYy9kYy9zcmMvYnJhbmNoL21haW4vbGljZW5jZS1ub24tY29tbWVyY2lhbC1kYXRhY29udHJvbGxlci5tZFxuXG5Zb3VyIHVzZSBvZiB0aGlzIHNvZnR3YXJlIGZvciBjb21tZXJjaWFsIHB1cnBvc2VzIGlzIHN1'@; put 'YmplY3QgdG8gdGhlIHRlcm1zIGluY2x1ZGVkIGluIGFuIGFwcGxpY2FibGUgbGljZW5zZSBhZ3JlZW1lbnQuXG5cbkluIGFueSBjYXNlLCB5b3UgbXVzdCBub3QgbWFrZSBhbnkgc3VjaCB1c2Ugb2YgdGhpcyBzb2Z0d2FyZSBhcyB0byBkZXZlbG9wIHNvZnR3YXJlIHdoaWNoIG1heSBiZSBj'@; put 'b25zaWRlcmVkIGNvbXBldGl0aXZlIHdpdGggdGhpcyBzb2Z0d2FyZS5cblxuVU5MRVNTIEVYUFJFU1NMWSBBR1JFRUQgT1RIRVJXSVNFLCA0R0wgQVBQUyBQUk9WSURFUyBUSElTIFNPRlRXQVJFIE9OIEFOICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05T'@; put 'IE9GIEFOWSBLSU5ELCBBTkQgSU4gTk8gRVZFTlQgQU5EIFVOREVSIE5PIExFR0FMIFRIRU9SWSwgU0hBTEwgNEdMIEFQUFMgQkUgTElBQkxFIFRPIFlPVSBGT1IgREFNQUdFUywgSU5DTFVESU5HIEFOWSBESVJFQ1QsIElORElSRUNULCBTUEVDSUFMLCBJTkNJREVOVEFMLCBPUiBDT05TRVFV'@; put 'RU5USUFMIERBTUFHRVMgT0YgQU5ZIENIQVJBQ1RFUiBBUklTSU5HIEZST00gVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhJUyBTT0ZUV0FSRS5cblxuXG4nfW5nT25Jbml0KCl7Y29uc3QgYT1rbC5zZXRPcHRpb25zKHt9KTt0aGlzLmV1bGFfbWFya2Rvd249YS5wYXJzZSh0aGlzLmV1bGFf'@; put 'bWFya2Rvd24pfW5nQWZ0ZXJWaWV3SW5pdCgpe3NldFRpbWVvdXQoKCk9Pnt0aGlzLm1hcmtkb3duQ2FyZCYmdGhpcy5tYXJrZG93bkNhcmQubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgic2Nyb2xsIikpfSl9dGVybXNBZ3JlZUNoYW5nZSgpe3RoaXMuYWdy'@; put 'ZWVDaGVja2VkJiYodGhpcy5hZ3JlZUJveExvY2tlZD0hMCx0aGlzLmFncmVlQ2xpY2tlZD0hMCx0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgicHVibGljL3JlZ2lzdGVydXNlciIse1NBU0NvbnRyb2xUYWJsZTpbe0FDQ0VQVEVEOiJ5ZXMifV19KS50aGVuKGQ9PntkLmFkYXB0ZXJSZXNwb25z'@; put 'ZS5yZXR1cm4mJmQuYWRhcHRlclJlc3BvbnNlLnJldHVyblswXSYmIlNVQ0NFU1MiPT09ZC5hZGFwdGVyUmVzcG9uc2UucmV0dXJuWzBdLk1TRyYmbG9jYXRpb24ucmVsb2FkKCl9KS5jYXRjaChkPT5kKS5maW5hbGx5KCgpPT57c2V0VGltZW91dCgoKT0+e3RoaXMuYWdyZWVCb3hMb2NrZWQ9'@; put 'ITEsdGhpcy5hZ3JlZUNsaWNrZWQ9ITEsdGhpcy5hZ3JlZUNoZWNrZWQ9ITF9LDFlMyl9KSl9b25DYXJkQmxvY2tTY3JvbGwoYSl7aWYoIXRoaXMuYWdyZWVDbGlja2VkKXtsZXQgZD1hLnRhcmdldDtkJiYodGhpcy5hZ3JlZUJveExvY2tlZD0hKGQuc2Nyb2xsVG9wK2Qub2Zmc2V0SGVpZ2h0'@; put 'Pj1kLnNjcm9sbEhlaWdodC0yMCkpfX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKSgkZShWbykpfX1zdGF0aWN7dGhpcy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1siYXBwLXRlcm1zIl1dLHZpZXdRdWVyeTpmdW5jdGlvbihkLGgp'@; put 'e2lmKDEmZCYmRmEoZmJ0LDUpLDImZCl7bGV0IGY7eWkoZj1iaSgpKSYmKGgubWFya2Rvd25DYXJkPWYuZmlyc3QpfX0sZGVjbHM6MTMsdmFyczo2LGNvbnN0czpbWyJtYXJrZG93bkNhcmQiLCIiXSxbMSwiY2FyZCJdLFsxLCJjYXJkLWhlYWRlciJdLFsxLCJjYXJkLWJsb2NrIiwzLCJzY3Jv'@; put 'bGwiLCJpbm5lckhUTUwiXSxbMSwiZC1mbGV4IiwiY2xyLWFsaWduLWl0ZW1zLWNlbnRlciJdLFsxLCJhY2NlcHQtY2hlY2tib3giXSxbImNsckNoZWNrYm94IiwiIiwidHlwZSIsImNoZWNrYm94IiwzLCJuZ01vZGVsQ2hhbmdlIiwiY2hhbmdlIiwibmdNb2RlbCIsImRpc2FibGVkIl0sWyJj'@; put 'bHJJbmxpbmUiLCJzbWFsbCIsNCwibmdJZiJdLFsiY2xySW5saW5lIiwic21hbGwiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZCxoKXtpZigxJmQpe2NvbnN0IGY9T24oKTtkZSgwLCJkaXYiLDEpKDEsImRpdiIsMiksT2UoMiwiIEVuZCBVc2VyIExpY2Vuc2UgQWdyZWVtZW50ICIpLGRlKDMsInAi'@; put 'KSxPZSg0LCIgV2VsY29tZSB0byBEYXRhIENvbnRyb2xsZXIgZm9yIFNBUyEgUGxlYXNlIHJldmlldyBhbmQgYWNjZXB0IGFncmVlbWVudCBiZWxvdyBpbiBvcmRlciB0byBwcm9jZWVkLiAiKSxoZSgpKCksZGUoNSwiZGl2IiwzLDApLEZ0KCJzY3JvbGwiLGZ1bmN0aW9uKE0pe3JldHVybiB3'@; put 'dChmKSxDdChoLm9uQ2FyZEJsb2NrU2Nyb2xsKE0pKX0pLGhlKCksZGUoNywiZGl2Iiw0KSg4LCJjbHItY2hlY2tib3gtd3JhcHBlciIsNSkoOSwiaW5wdXQiLDYpLHBpKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihNKXtyZXR1cm4gd3QoZiksZ2koaC5hZ3JlZUNoZWNrZWQsTSl8fChoLmFn'@; put 'cmVlQ2hlY2tlZD1NKSxDdChNKX0pLEZ0KCJjaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGYpLEN0KGgudGVybXNBZ3JlZUNoYW5nZSgpKX0pLGhlKCksZGUoMTAsImxhYmVsIiksT2UoMTEsIkkgaGF2ZSByZWFkIGFuZCBhZ3JlZSB0byB0aGUgdGVybXMgb2YgYWJvdmUuIiksaGUoKSgp'@; put 'LGd0KDEyLHBidCwxLDAsImNsci1zcGlubmVyIiw3KSxoZSgpKCl9MiZkJiYoZmUoNSksTWUoImlubmVySFRNTCIsaC5ldWxhX21hcmtkb3duLFY0KSxmZSgzKSxUcigiZGlzYWJsZWQiLGguYWdyZWVCb3hMb2NrZWQpLGZlKCksZmkoIm5nTW9kZWwiLGguYWdyZWVDaGVja2VkKSxNZSgiZGlz'@; put 'YWJsZWQiLGguYWdyZWVCb3hMb2NrZWQpLGZlKDMpLE1lKCJuZ0lmIixoLmFncmVlQm94TG9ja2VkJiZoLmFncmVlQ2xpY2tlZCkpfSxkZXBlbmRlbmNpZXM6W2JhLE1kLHRsLFdvLGNvLElkLHhoLFJkXSxlbmNhcHN1bGF0aW9uOjJ9KX19cmV0dXJuIGN9KSgpO2Z1bmN0aW9uIG1idChjLGwp'@; put 'ezEmYyYmKGRlKDAsInAiLDI5KSxPZSgxLCIgTGljZW5jZSBrZXkgaXMgaW52YWxpZC4gV2UgY2FuJ3QgcHJvdmlkZSB5b3UgbW9yZSBkZXRhaWxzIGF0IHRoZSBtb21lbnQgIiksaGUoKSl9ZnVuY3Rpb24gdmJ0KGMsbCl7aWYoMSZjJiZXdCgwLCJwIiwzMCksMiZjKXtjb25zdCBhPUxlKDMp'@; put 'O01lKCJpbm5lckhUTUwiLGEubGljZW5zZUVycm9yc1thLmtleUVycm9yXSxWNCl9fWZ1bmN0aW9uIHlidChjLGwpe2lmKDEmYyYmKGRlKDAsInAiKSgxLCJzdHJvbmciKSxPZSgyLCJEZXRhaWxzOiIpLGhlKCksT2UoMyksaGUoKSksMiZjKXtjb25zdCBhPUxlKDMpO2ZlKDMpLExyKCIgIixh'@; put 'LmVycm9yRGV0YWlscywiIil9fWZ1bmN0aW9uIGJidChjLGwpe2lmKDEmYyYmKGFpKDApLGd0KDEsbWJ0LDIsMCwicCIsMjcpKDIsdmJ0LDEsMSwicCIsMjgpKDMseWJ0LDQsMSwicCIsNCksc2koKSksMiZjKXtjb25zdCBhPUxlKDIpO2ZlKCksTWUoIm5nSWYiLCFhLmtleUVycm9yKSxmZSgp'@; put 'LE1lKCJuZ0lmIixhLmtleUVycm9yKSxmZSgpLE1lKCJuZ0lmIixhLmVycm9yRGV0YWlscyl9fWZ1bmN0aW9uIF9idChjLGwpezEmYyYmKGFpKDApLGRlKDEsInAiLDI5KSxPZSgyLCIgVGhlIHJlZ2lzdGVyZWQgbnVtYmVyIG9mIHVzZXJzIHJlYWNoZWQgdGhlIGxpbWl0IHNwZWNpZmllZCBm'@; put 'b3IgeW91ciBsaWNlbmNlLiBQbGVhc2UgY29udGFjdCAiKSxXdCgzLCJjb250YWN0LWxpbmsiLDMxKSxPZSg0LCIgb3IgeW91ciByZXNlbGxlciB0byBhcnJhbmdlIGFkZGl0aW9uYWwgbGljZW5jZXMgZm9yIHRoaXMgcHJvZHVjdC4gIiksaGUoKSxzaSgpKX1mdW5jdGlvbiB3YnQoYyxsKXsx'@; put 'JmMmJihhaSgwKSxkZSgxLCJwIiwyOSksT2UoMiwiIFVwZGF0ZSB0aGUgbGljZW5zZSBrZXkgYnkgdXBsb2FkaW5nIHRoZSBsaWNlbmNlIGZpbGUgb3IgYnkgcGFzdGluZyBhIGxpY2Vuc2Uga2V5IGFuZCBhY3RpdmF0aW9uIGtleSBpbiB0aGUgaW5wdXRzIGJlbG93LiAiKSxoZSgpLHNpKCkp'@; put 'fWZ1bmN0aW9uIENidChjLGwpe2lmKDEmYyYmKGRlKDAsInNwYW4iKSxPZSgxKSxoZSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQsZD1sLmluZGV4LGg9TGUoMik7VHIoIm1pc3NrZXkiLGgubWlzc21hdGNoZWRLZXkmJmgubWlzc21hdGNoZWRLZXk9PT1hKSxmZSgpLEJ1KCIgIixhLCIi'@; put 'LGQ9PT0obnVsbD09aC5zeXNzaXRlLnZhbHVlP251bGw6aC5zeXNzaXRlLnZhbHVlLmxlbmd0aCktMT8iIjoiLCIsIiAiKX19ZnVuY3Rpb24gU2J0KGMsbCl7aWYoMSZjJiYoZGUoMCwicCIsMzIpKDEsInN0cm9uZyIpLE9lKDIsIkFsbG93ZWQgdXNlcnM6IiksaGUoKSxPZSgzKSxoZSgpKSwy'@; put 'JmMpe2NvbnN0IGE9TGUoMik7ZmUoMyksTHIoIiAiLGEubGljZW5zZUtleURhdGEudXNlcnNfYWxsb3dlZCwiICIpfX1mdW5jdGlvbiBNYnQoYyxsKXsxJmMmJld0KDAsImNsci1zcGlubmVyIiwzMyl9ZnVuY3Rpb24geGJ0KGMsbCl7MSZjJiYoZGUoMCwiZGl2IiksT2UoMSwiIERyb3AgLyBC'@; put 'cm93c2UgbGljZW5jZSBmaWxlICIpLGhlKCkpfWZ1bmN0aW9uIEVidChjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIpLE9lKDEsIiBTZWxlY3RlZCBmaWxlOiAiKSxkZSgyLCJzdHJvbmciKSxPZSgzKSxoZSgpKCkpLDImYyl7Y29uc3QgYT1MZSgzKTtmZSgzKSxTcihhLmxpY2VuY2VmaWxlLmZp'@; put 'bGVuYW1lKX19ZnVuY3Rpb24gVGJ0KGMsbCl7aWYoMSZjJiYoZGUoMCwiZGl2IikoMSwic3Ryb25nIiksT2UoMiksaGUoKSgpKSwyJmMpe2NvbnN0IGE9TGUoMyk7ZmUoMiksU3IoYS5saWNlbmNlRmlsZUVycm9yKX19ZnVuY3Rpb24gQWJ0KGMsbCl7aWYoMSZjJiYoYWkoMCksZ3QoMSx4YnQs'@; put 'MiwwLCJkaXYiLDQpKDIsRWJ0LDQsMSwiZGl2Iiw0KSgzLFRidCwzLDEsImRpdiIsNCksc2koKSksMiZjKXtjb25zdCBhPUxlKDIpO2ZlKCksTWUoIm5nSWYiLCIiPT09YS5saWNlbmNlZmlsZS5maWxlbmFtZSksZmUoKSxNZSgibmdJZiIsIiIhPT1hLmxpY2VuY2VmaWxlLmZpbGVuYW1lKSxm'@; put 'ZSgpLE1lKCJuZ0lmIixhLmxpY2VuY2VGaWxlRXJyb3IpfX1mdW5jdGlvbiBrYnQoYyxsKXsxJmMmJihkZSgwLCJidXR0b24iLDM0KSxPZSgxLCIgQ29udGludWUgd2l0aCBmcmVlIHRpZXIgIiksaGUoKSl9ZnVuY3Rpb24gRGJ0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiZGl2'@; put 'Iiw1KSgxLCJkaXYiLDYpLE9lKDIsIkxpY2VuY2luZyIpLGhlKCksZGUoMywiZGl2Iiw3KSg0LCJkaXYiLDgpLGd0KDUsYmJ0LDQsMywibmctY29udGFpbmVyIiw5KSg2LF9idCw1LDAsIm5nLWNvbnRhaW5lciIsOSkoNyx3YnQsMywwLCJuZy1jb250YWluZXIiLDkpLGRlKDgsInAiKSg5LCJz'@; put 'dHJvbmciKSxPZSgxMCwiU1lTU0lURToiKSxoZSgpLGd0KDExLENidCwyLDQsInNwYW4iLDEwKSxkZSgxMiwiYSIsMTEpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPWRhKDE0KSxmPWRhKDE2KSx2PUxlKCk7cmV0dXJuIEN0KHYuY29weVN5c3NpdGUoaCxmLHYuc3lzc2l0'@; put 'ZS52YWx1ZXx8W10pKX0pLFd0KDEzLCJjbHItaWNvbiIsMTIsMCksZGUoMTUsInNwYW4iLDEzLDEpLE9lKDE3LCJDb3B5IHRvIGNsaXBib2FyZCIpLGhlKCkoKSgpLGd0KDE4LFNidCw0LDEsInAiLDE0KSxkZSgxOSwiY2xyLXRhYnMiKSgyMCwiY2xyLXRhYiIpKDIxLCJidXR0b24iLDE1KSxP'@; put 'ZSgyMiwiVXBsb2FkIGxpY2VuY2UiKSxoZSgpLGRlKDIzLCJjbHItdGFiLWNvbnRlbnQiKSgyNCwiaW5wdXQiLDE2LDIpLEZ0KCJjaGFuZ2UiLGZ1bmN0aW9uKGgpe3JldHVybiB3dChhKSxDdChMZSgpLm9uRmlsZUNhcHR1cmUoaCkpfSksaGUoKSxkZSgyNiwiZGl2IiwxNyksRnQoImNsaWNr'@; put 'IixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChkYSgyNSkuY2xpY2soKSl9KSgiZmlsZURyb3AiLGZ1bmN0aW9uKGgpe3JldHVybiB3dChhKSxDdChMZSgpLm9uRmlsZUNhcHR1cmUoaCwhMCkpfSksZ3QoMjcsTWJ0LDEsMCwiY2xyLXNwaW5uZXIiLDE4KSgyOCxBYnQsNCwzLCJuZy1jb250'@; put 'YWluZXIiLDQpLGhlKCkoKSgpLGRlKDI5LCJjbHItdGFiIikoMzAsImJ1dHRvbiIsMTUpLE9lKDMxLCJQYXN0ZSBsaWNlbmNlIiksaGUoKSxkZSgzMiwiY2xyLXRhYi1jb250ZW50IikoMzMsImZvcm0iLDE5KSgzNCwicCIpLE9lKDM1LCJMaWNlbmNlIGtleToiKSxoZSgpLGRlKDM2LCJkaXYi'@; put 'LDIwKSgzNywidGV4dGFyZWEiLDIxKSxwaSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oaCl7d3QoYSk7Y29uc3QgZj1MZSgpO3JldHVybiBnaShmLmxpY2VuY2VLZXlWYWx1ZSxoKXx8KGYubGljZW5jZUtleVZhbHVlPWgpLEN0KGgpfSksRnQoIm1vdXNlbGVhdmUiLGZ1bmN0aW9uKCl7cmV0'@; put 'dXJuIHd0KGEpLEN0KExlKCkudHJpbUtleXMoKSl9KSxoZSgpKCkoKSxkZSgzOCwiZm9ybSIsMjIpKDM5LCJwIiksT2UoNDAsIkFjdGl2YXRpb24ga2V5OiIpLGhlKCksZGUoNDEsImRpdiIsMjApKDQyLCJ0ZXh0YXJlYSIsMjMpLHBpKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihoKXt3dChh'@; put 'KTtjb25zdCBmPUxlKCk7cmV0dXJuIGdpKGYuYWN0aXZhdGlvbktleVZhbHVlLGgpfHwoZi5hY3RpdmF0aW9uS2V5VmFsdWU9aCksQ3QoaCl9KSxGdCgibW91c2VsZWF2ZSIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoKS50cmltS2V5cygpKX0pLGhlKCkoKSgpKCkoKSgpKCksZGUo'@; put 'NDMsImRpdiIsMjQpKDQ0LCJidXR0b24iLDI1KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKCkuYXBwbHlLZXlzKCkpfSksT2UoNDUsIiBBcHBseSBsaWNlbmNlIGtleXMgIiksaGUoKSxndCg0NixrYnQsMiwwLCJidXR0b24iLDI2KSxoZSgpKCkoKX1pZigyJmMp'@; put 'e2NvbnN0IGE9TGUoKTtmZSgzKSxNZSgibmdTd2l0Y2giLGEuYWN0aW9uKSxmZSgyKSxNZSgibmdTd2l0Y2hDYXNlIiwia2V5IiksZmUoKSxNZSgibmdTd2l0Y2hDYXNlIiwibGltaXQiKSxmZSgpLE1lKCJuZ1N3aXRjaENhc2UiLCJ1cGRhdGUiKSxmZSg0KSxNZSgibmdGb3JPZiIsYS5zeXNz'@; put 'aXRlLnZhbHVlKSxmZSg3KSxNZSgibmdJZiIsYS5saWNlbnNlS2V5RGF0YSYmYS51c2VyQ291bnRMaW1pdGF0aW9uKSxmZSg5KSxNZSgibmdJZiIsYS5saWNlbmNlRmlsZUxvYWRpbmcpLGZlKCksTWUoIm5nSWYiLCFhLmxpY2VuY2VGaWxlTG9hZGluZyksZmUoOSksZmkoIm5nTW9kZWwiLGEu'@; put 'bGljZW5jZUtleVZhbHVlKSxmZSg1KSxmaSgibmdNb2RlbCIsYS5hY3RpdmF0aW9uS2V5VmFsdWUpLGZlKDIpLE1lKCJjbHJMb2FkaW5nIixhLmFwcGx5aW5nS2V5cykoImRpc2FibGVkIixhLmRpc2FibGVBcHBseUJ1dHRvbiksZmUoMiksTWUoIm5nSWYiLGEuaXNBcHBGcmVlVGllci52YWx1'@; put 'ZSl9fWZ1bmN0aW9uIElidChjLGwpezEmYyYmV3QoMCwiYXBwLXRlcm1zIil9dmFyIGY4ZT1mdW5jdGlvbihjKXtyZXR1cm4gYy5rZXk9ImtleSIsYy5yZWdpc3Rlcj0icmVnaXN0ZXIiLGMubGltaXQ9ImxpbWl0IixjLnVwZGF0ZT0idXBkYXRlIixjfShmOGV8fHt9KTtjb25zdCBSYnQ9W3tw'@; put 'YXRoOiI6YWN0aW9uIixjb21wb25lbnQ6KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmKXt0aGlzLnJvdXRlPWEsdGhpcy5saWNlbmNlU2VydmljZT1kLHRoaXMuc2FzU2VydmljZT1oLHRoaXMuYXBwU2VydmljZT1mLHRoaXMuYWN0aW9uPW51bGwsdGhpcy5saWNlbnNlRXJyb3Jz'@; put 'PXttaXNzaW5nOidMaWNlbmNlIGtleSBpcyBtaXNzaW5nIC0gcGxlYXNlIGNvbnRhY3QgPGEgY2xhc3M9ImNvbG9yLWdyZWVuIiBocmVmPSJtYWlsdG86IHN1cHBvcnRAZGF0YWNvbnRyb2xsZXIuaW8iPnN1cHBvcnRAZGF0YWNvbnRyb2xsZXIuaW88L2E+IGFuZCBlbnRlciB2YWxpZCBrZXlz'@; put 'IGJlbG93LicsZXhwaXJlZDonTGljZW5jZSBrZXkgaXMgZXhwaXJlZCAtIHBsZWFzZSBjb250YWN0IDxhIGNsYXNzPSJjb2xvci1ncmVlbiIgaHJlZj0ibWFpbHRvOiBzdXBwb3J0QGRhdGFjb250cm9sbGVyLmlvIj5zdXBwb3J0QGRhdGFjb250cm9sbGVyLmlvPC9hPiBhbmQgZW50ZXIgdmFs'@; put 'aWQga2V5cyBiZWxvdy4nLGludmFsaWQ6J0xpY2VuY2Uga2V5IGlzIGludmFsaWQgLSBwbGVhc2UgY29udGFjdCA8YSBjbGFzcz0iY29sb3ItZ3JlZW4iIGhyZWY9Im1haWx0bzogc3VwcG9ydEBkYXRhY29udHJvbGxlci5pbyI+c3VwcG9ydEBkYXRhY29udHJvbGxlci5pbzwvYT4gYW5kIGVu'@; put 'dGVyIHZhbGlkIGtleXMgYmVsb3cuJyxtaXNzbWF0Y2g6J1lvdXIgU1lTU0lURSAoYmVsb3cpIGlzIG5vdCBmb3VuZCBpbiB0aGUgbGljZW5jZSBrZXkgLSBwbGVhc2UgY29udGFjdCA8YSBjbGFzcz0iY29sb3ItZ3JlZW4iIGhyZWY9Im1haWx0bzogc3VwcG9ydEBkYXRhY29udHJvbGxlci5p'@; put 'byI+c3VwcG9ydEBkYXRhY29udHJvbGxlci5pbzwvYT4gYW5kIGVudGVyIHZhbGlkIGtleXMgYmVsb3cuJ30sdGhpcy5saWNlbmNlS2V5VmFsdWU9IiIsdGhpcy5hY3RpdmF0aW9uS2V5VmFsdWU9IiIsdGhpcy5hcHBseWluZ0tleXM9ITEsdGhpcy5zeXNzaXRlPXRoaXMuYXBwU2VydmljZS5z'@; put 'eXNzaXRlLHRoaXMuY3VycmVudExpY2VuY2VLZXk9dGhpcy5saWNlbmNlU2VydmljZS5saWNlbmNlS2V5LHRoaXMuY3VycmVudEFjdGl2YXRpb25LZXk9dGhpcy5saWNlbmNlU2VydmljZS5hY3RpdmF0aW9uS2V5LHRoaXMuaXNBcHBGcmVlVGllcj10aGlzLmxpY2VuY2VTZXJ2aWNlLmlzQXBw'@; put 'RnJlZVRpZXIsdGhpcy51c2VyQ291bnRMaW1pdGF0aW9uPXRoaXMubGljZW5jZVNlcnZpY2UudXNlckNvdW50TGltaXRhdGlvbix0aGlzLmxpY2Vuc2VLZXlEYXRhPW51bGwsdGhpcy5pbnB1dFR5cGU9ImZpbGUiLHRoaXMubGljZW5jZUZpbGVMb2FkaW5nPSExLHRoaXMubGljZW5jZWZpbGU9'@; put 'e2ZpbGVuYW1lOiIifX1uZ09uSW5pdCgpe3RoaXMubGljZW5jZUtleVZhbHVlPXRoaXMuY3VycmVudExpY2VuY2VLZXl8fCIiLHRoaXMuYWN0aXZhdGlvbktleVZhbHVlPXRoaXMuY3VycmVudEFjdGl2YXRpb25LZXl8fCIiLHRoaXMucm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKGE9Pnt0'@; put 'aGlzLmtleUVycm9yPWEuZXJyb3IsdGhpcy5taXNzbWF0Y2hlZEtleT1hLm1pc3NtYXRjaElkLGEuZGV0YWlscyYmKHRoaXMuZXJyb3JEZXRhaWxzPWF0b2IoYS5kZXRhaWxzKSl9KSx0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUoYT0+e2xldCBkPWEuYWN0aW9uO2QmJk9iamVjdC52YWx1'@; put 'ZXMoZjhlKS5pbmNsdWRlcyhkKSYmKHRoaXMuYWN0aW9uPWQpfSksdGhpcy5saWNlbnNlS2V5RGF0YT10aGlzLmxpY2VuY2VTZXJ2aWNlLmdldExpY2Vuc2VLZXlEYXRhKCl9dHJpbUtleXMoKXt0aGlzLmxpY2VuY2VLZXlWYWx1ZT10aGlzLmxpY2VuY2VLZXlWYWx1ZS50cmltKCksdGhpcy5h'@; put 'Y3RpdmF0aW9uS2V5VmFsdWU9dGhpcy5hY3RpdmF0aW9uS2V5VmFsdWUudHJpbSgpfWNvcHlTeXNzaXRlKGEsZCxoKXtjb25zdCBmPWguam9pbigiXG4iKTtuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChmKS50aGVuKCgpPT57YS5zZXRBdHRyaWJ1dGUoInNoYXBlIiwiY2hlY2siKSxh'@; put 'LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCJpcy1zdWNjZXNzIiksZC5pbm5lclRleHQ9IkNvcGllZCEiLHNldFRpbWVvdXQoKCk9PnthLnNldEF0dHJpYnV0ZSgic2hhcGUiLCJjb3B5IiksYS5yZW1vdmVBdHRyaWJ1dGUoImNsYXNzIiksZC5pbm5lclRleHQ9IkNvcHkgdG8gY2xpcGJvYXJkIn0s'@; put 'MWUzKX0pfWFwcGx5S2V5cygpe3RoaXMuYXBwbHlpbmdLZXlzPSEwLHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJhZG1pbi9yZWdpc3RlcmtleSIse2tleXVwbG9hZDpbe0FDVElWQVRJT05fS0VZOnRoaXMuYWN0aXZhdGlvbktleVZhbHVlLExJQ0VOQ0VfS0VZOnRoaXMubGljZW5jZUtleVZh'@; put 'bHVlfV19KS50aGVuKGQ9PntkLmFkYXB0ZXJSZXNwb25zZS5yZXR1cm4mJmQuYWRhcHRlclJlc3BvbnNlLnJldHVyblswXSYmIlNVQ0NFU1MiPT09ZC5hZGFwdGVyUmVzcG9uc2UucmV0dXJuWzBdLk1TRyYmbG9jYXRpb24ucmVwbGFjZShsb2NhdGlvbi5ocmVmLnNwbGl0KCIjIilbMF0pfSku'@; put 'ZmluYWxseSgoKT0+e3RoaXMuYXBwbHlpbmdLZXlzPSExfSl9b25GaWxlQ2FwdHVyZShhLGQ9ITEpe2xldCBoPWQ/YVswXTphLnRhcmdldC5maWxlc1swXTtpZih0aGlzLmxpY2VuY2VmaWxlLmZpbGVuYW1lPWgubmFtZSwhaClyZXR1cm47dGhpcy5saWNlbmNlRmlsZUxvYWRpbmc9ITA7Y29u'@; put 'c3QgZj1uZXcgRmlsZVJlYWRlcjtmLm9ubG9hZD12PT57aWYodGhpcy5saWNlbmNlRmlsZUVycm9yPSJFcnJvciByZWFkaW5nIGZpbGUuIiwhdnx8IXYudGFyZ2V0fHwyIT12LnRhcmdldC5yZWFkeVN0YXRlfHx2LnRhcmdldC5lcnJvcnx8IXYudGFyZ2V0LnJlc3VsdClyZXR1cm47dGhpcy5s'@; put 'aWNlbmNlRmlsZUxvYWRpbmc9ITEsdGhpcy5saWNlbmNlRmlsZUVycm9yPXZvaWQgMDtjb25zdCBNPXYudGFyZ2V0LnJlc3VsdC50b1N0cmluZygpLnNwbGl0KCJcbiIpO3RoaXMuYWN0aXZhdGlvbktleVZhbHVlPU1bMV0sdGhpcy5saWNlbmNlS2V5VmFsdWU9TVswXX0sZi5yZWFkQXNUZXh0'@; put 'KGgpfXN3aXRjaFR5cGUoYSl7dGhpcy5pbnB1dFR5cGU9YX1nZXQgZGlzYWJsZUFwcGx5QnV0dG9uKCl7cmV0dXJuIHRoaXMubGljZW5jZUtleVZhbHVlLmxlbmd0aDwxfHx0aGlzLmFjdGl2YXRpb25LZXlWYWx1ZS5sZW5ndGg8MXx8dGhpcy5saWNlbmNlS2V5VmFsdWU9PT10aGlzLmN1cnJl'@; put 'bnRMaWNlbmNlS2V5JiZ0aGlzLmFjdGl2YXRpb25LZXlWYWx1ZT09PXRoaXMuY3VycmVudEFjdGl2YXRpb25LZXl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUoeXUpLCRlKGMxKSwkZShWbyksJGUodUwpKX19c3RhdGlje3RoaXMuXHUwMjc1'@; put 'Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImFwcC1saWNlbnNpbmciXV0sZGVjbHM6Mix2YXJzOjIsY29uc3RzOltbImNvcHlJY29uIiwiIl0sWyJjb3B5VG9vbHRpcCIsIiJdLFsibGljZW5jZUZpbGUiLCIiXSxbImNsYXNzIiwiY2FyZCIsNCwibmdJZiJdLFs0LCJuZ0lmIl0sWzEsImNh'@; put 'cmQiXSxbMSwiY2FyZC1oZWFkZXIiXSxbMSwiY2FyZC1ibG9jayIsMywibmdTd2l0Y2giXSxbMSwiY2FyZC10ZXh0Il0sWzQsIm5nU3dpdGNoQ2FzZSJdLFszLCJtaXNza2V5Iiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwidG9vbHRpcCIsInRvb2x0aXAtbWQiLCJ0b29sdGlwLXRvcC1yaWdo'@; put 'dCIsMywiY2xpY2siXSxbInNoYXBlIiwiY29weSIsInNpemUiLCIxNSIsMSwiY3Vyc29yLXBvaW50ZXIiXSxbMSwidG9vbHRpcC1jb250ZW50Il0sWyJjbGFzcyIsIm0tMCIsNCwibmdJZiJdLFsiY2xyVGFiTGluayIsIiJdLFsidHlwZSIsImZpbGUiLCJoaWRkZW4iLCIiLDMsImNoYW5nZSJd'@; put 'LFsiYXBwRmlsZURyb3AiLCIiLDEsImRyb3AtYXJlYSIsMywiY2xpY2siLCJmaWxlRHJvcCJdLFsiY2xhc3MiLCJzcGlubmVyLXNtIiw0LCJuZ0lmIl0sWzEsImNsci1mb3JtIiwibGljZW5zZS1rZXktZm9ybSJdLFsxLCJjbHItY29udHJvbC1jb250YWluZXIiXSxbIm5hbWUiLCJsaWNlbnNl'@; put 'LWtleS1hcmVhIiwicGxhY2Vob2xkZXIiLCJQYXN0ZSBsaWNlbmNlIGtleSBoZXJlIiwxLCJjbHItdGV4dGFyZWEiLDMsIm5nTW9kZWxDaGFuZ2UiLCJtb3VzZWxlYXZlIiwibmdNb2RlbCJdLFsxLCJjbHItZm9ybSIsImFjdGl2YXRpb24ta2V5LWZvcm0iXSxbIm5hbWUiLCJhY3RpdmF0aW9u'@; put 'LWtleS1hcmVhIiwicGxhY2Vob2xkZXIiLCJQYXN0ZSBhY3RpdmF0aW9uIGtleSBoZXJlIiwxLCJjbHItdGV4dGFyZWEiLDMsIm5nTW9kZWxDaGFuZ2UiLCJtb3VzZWxlYXZlIiwibmdNb2RlbCJdLFsxLCJjYXJkLWZvb3RlciIsImQtZmxleCIsImNsci1hbGlnbi1pdGVtcy1jZW50ZXIiXSxb'@; put 'MSwiYnRuIiwiYnRuLXByaW1hcnkiLCJhcHBseS1rZXlzIiwzLCJjbGljayIsImNsckxvYWRpbmciLCJkaXNhYmxlZCJdLFsicm91dGVyTGluayIsIi8iLCJjbGFzcyIsImJ0biBidG4tc20gYnRuLWxpbmsiLDQsIm5nSWYiXSxbImNsYXNzIiwia2V5LWVycm9yIiw0LCJuZ0lmIl0sWyJjbGFz'@; put 'cyIsImtleS1lcnJvciIsMywiaW5uZXJIVE1MIiw0LCJuZ0lmIl0sWzEsImtleS1lcnJvciJdLFsxLCJrZXktZXJyb3IiLDMsImlubmVySFRNTCJdLFsiY2xhc3NlcyIsImNvbG9yLWdyZWVuIl0sWzEsIm0tMCJdLFsxLCJzcGlubmVyLXNtIl0sWyJyb3V0ZXJMaW5rIiwiLyIsMSwiYnRuIiwi'@; put 'YnRuLXNtIiwiYnRuLWxpbmsiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZCxoKXsxJmQmJmd0KDAsRGJ0LDQ3LDEzLCJkaXYiLDMpKDEsSWJ0LDEsMCwiYXBwLXRlcm1zIiw0KSwyJmQmJihNZSgibmdJZiIsInJlZ2lzdGVyIiE9PWguYWN0aW9uKSxmZSgpLE1lKCJuZ0lmIiwicmVnaXN0ZXIiPT09'@; put 'aC5hY3Rpb24pKX0sZGVwZW5kZW5jaWVzOltRcyxiYSx4MixkcCxsNyxHbCx0bCxzNyxXbyx3cCxPbCxWMCxIMix2bSxibSx4Nyx5bSxtbSxTNyxSZCxsMSxnYnQseU9dLGVuY2Fwc3VsYXRpb246Mn0pfX1yZXR1cm4gY30pKCksY2FuQWN0aXZhdGU6W290ZV0sY2FuRGVhY3RpdmF0ZTpbb3Rl'@; put 'XX1dO2xldCBMYnQ9KCgpPT57Y2xhc3MgY3tzdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKX19c3RhdGlje3RoaXMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9KX1zdGF0aWN7dGhpcy5cdTAyNzVpbmo9QXIoe2ltcG9ydHM6W0JjLmZvckNoaWxkKFJidCks'@; put 'QmNdfSl9fXJldHVybiBjfSkoKSxPYnQ9KCgpPT57Y2xhc3MgY3tzdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKX19c3RhdGlje3RoaXMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9KX1zdGF0aWN7dGhpcy5cdTAyNzVpbmo9QXIoe2ltcG9ydHM6W0xhLGtj'@; put 'LEIwLExidCx4d119KX19cmV0dXJuIGN9KSgpO2NvbnN0IFBidD0oKT0+KHtzdGFuZGFsb25lOiEwfSkscDhlPShjLGwsYSk9Pih7YWRkZWRSb3c6YyxkZWxldGVkUm93OmwsdXBkYXRlZFJvdzphfSksZzhlPWM9Pih7ImNoIHRvb2x0aXAgdG9vbHRpcC1tZCB0b29sdGlwLXRvcC1yaWdodCI6'@; put 'Y30pO2Z1bmN0aW9uIEZidChjLGwpe2lmKDEmYyYmKGRlKDAsInRkIiwxOSksT2UoMSksaGUoKSksMiZjKXtjb25zdCBhPUxlKCkuJGltcGxpY2l0LGQ9TGUoKTtNZSgicm91dGVyTGluayIsIi9zdGFnZS8iK2QuanNQYXJhbXNbYV0pLGZlKCksTHIoIiAiLGQuanNQYXJhbXNbYV0sIiAiKX19'@; put 'ZnVuY3Rpb24gSGJ0KGMsbCl7aWYoMSZjJiYoZGUoMCwidGQiLDQpLE9lKDEpLGhlKCkpLDImYyl7Y29uc3QgYT1MZSgpLiRpbXBsaWNpdCxkPUxlKCk7ZmUoKSxMcigiICIsZC5qc1BhcmFtc1thXSwiICIpfX1mdW5jdGlvbiBOYnQoYyxsKXtpZigxJmMmJihkZSgwLCJ0ciIpKDEsInRkIiw0'@; put 'KSxPZSgyKSxoZSgpLGd0KDMsRmJ0LDIsMiwidGQiLDE3KSg0LEhidCwyLDEsInRkIiwxOCksaGUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O2ZlKDIpLFNyKGEpLGZlKCksTWUoIm5nSWYiLGEuaW5jbHVkZXMoIlRBQkxFX0lEIikpLGZlKCksTWUoIm5nSWYiLCFhLmluY2x1ZGVzKCJU'@; put 'QUJMRV9JRCIpKX19ZnVuY3Rpb24gVmJ0KGMsbCl7aWYoMSZjJiYoZGUoMCwidHIiKSgxLCJ0ZCIsNCksT2UoMiksaGUoKSxkZSgzLCJ0ZCIsNCksT2UoNCksaGUoKSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQsZD1MZSgzKTtmZSgyKSxTcihhKSxmZSgyKSxTcihkLnN1Ym1pdERldGFp'@; put 'bHNbYV0pfX1mdW5jdGlvbiBCYnQoYyxsKXtpZigxJmMmJihkZSgwLCJjbHItdGFiLWNvbnRlbnQiKSgxLCJkaXYiLDIyKSgyLCJ0YWJsZSIsMykoMywidGhlYWQiKSg0LCJ0ciIpKDUsInRoIiw0KSxPZSg2LCJOYW1lIiksaGUoKSxkZSg3LCJ0aCIsNCksT2UoOCwiVmFsdWUiKSxoZSgpKCko'@; put 'KSxkZSg5LCJ0Ym9keSIpLGd0KDEwLFZidCw1LDIsInRyIiw1KSxoZSgpKCkoKSgpKSwyJmMpe2NvbnN0IGE9TGUoMik7ZmUoMTApLE1lKCJuZ0Zvck9mIixhLnN1Ym1pdEFycil9fWZ1bmN0aW9uIGpidChjLGwpe2lmKDEmYyYmKGRlKDAsInRyIikoMSwidGQiLDQpLE9lKDIpLGhlKCksZGUo'@; put 'MywidGQiLDQpLE9lKDQpLGhlKCkoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0LGQ9TGUoMik7ZmUoMiksU3IoYSksZmUoMiksU3IoZC5qc1BhcmFtc1thXSl9fWZ1bmN0aW9uIHpidChjLGwpe2lmKDEmYyYmKGRlKDAsImNsci10YWJzIikoMSwiY2xyLXRhYiIpKDIsImJ1dHRvbiIsMjAp'@; put 'LE9lKDMsIlN1Ym1pdHRlZCBUYWJsZSBEZXRhaWxzIiksaGUoKSxndCg0LEJidCwxMSwxLCJjbHItdGFiLWNvbnRlbnQiLDIxKSxoZSgpLGRlKDUsImNsci10YWIiKSg2LCJidXR0b24iLDIwKSxPZSg3LCJCYXNlIFRhYmxlIERldGFpbHMiKSxoZSgpLGRlKDgsImNsci10YWItY29udGVudCIp'@; put 'KDksImRpdiIsMjIpKDEwLCJ0YWJsZSIsMykoMTEsInRoZWFkIikoMTIsInRyIikoMTMsInRoIiw0KSxPZSgxNCwiTmFtZSIpLGhlKCksZGUoMTUsInRoIiw0KSxPZSgxNiwiVmFsdWUiKSxoZSgpKCkoKSxkZSgxNywidGJvZHkiKSxndCgxOCxqYnQsNSwyLCJ0ciIsNSksaGUoKSgpKCkoKSgp'@; put 'KCkpLDImYyl7Y29uc3QgYT1MZSgpO2ZlKDQpLE1lKCJjbHJJZkFjdGl2ZSIsITApLGZlKDE0KSxNZSgibmdGb3JPZiIsYS5rZXlzQXJyYXkpfX1mdW5jdGlvbiBVYnQoYyxsKXsxJmMmJihkZSgwLCJwIiw3MiksT2UoMSwiIFRoZXJlIGFyZSBubyBkZXRhaWxzIHRvIHNob3cgIiksaGUoKSl9'@; put 'ZnVuY3Rpb24gWmJ0KGMsbCl7aWYoMSZjJiYoYWkoMCksZGUoMSwiZGl2Iiw3MykoMiwic3BhbiIpLE9lKDMsIlRhYmxlIElkOiIpLGhlKCksZGUoNCwic3Ryb25nIiw3NCksT2UoNSksaGUoKSgpLGRlKDYsImRpdiIpKDcsInNwYW4iKSxPZSg4LCJTdWJtaXR0ZXI6IiksaGUoKSxkZSg5LCJz'@; put 'cGFuIiw3NSksT2UoMTApLGhlKCkoKSxkZSgxMSwiZGl2IikoMTIsInNwYW4iKSxPZSgxMywiU3VibWl0dGVkIG9uOiIpLGhlKCksZGUoMTQsInNwYW4iLDc1KSxPZSgxNSksaGUoKSgpLGRlKDE2LCJkaXYiKSgxNywic3BhbiIpLE9lKDE4LCJTdWJtaXR0ZWQgUmVhc29uOiIpLGhlKCksZGUo'@; put 'MTksInNwYW4iLDc1KSxPZSgyMCksaGUoKSgpLHNpKCkpLDImYyl7Y29uc3QgYT1MZSg1KTtmZSg0KSxNZSgicm91dGVyTGluayIsIi9zdGFnZS8iKyhudWxsPT1hLnRhYmxlRGV0YWlscz9udWxsOmEudGFibGVEZXRhaWxzLlRBQkxFX0lEKSksZmUoKSxMcigiICIsbnVsbD09YS50YWJsZURl'@; put 'dGFpbHM/bnVsbDphLnRhYmxlRGV0YWlscy5UQUJMRV9JRCwiICIpLGZlKDUpLExyKCIgIixudWxsPT1hLnRhYmxlRGV0YWlscz9udWxsOmEudGFibGVEZXRhaWxzLlNVQk1JVFRFRF9CWV9OTSwiICIpLGZlKDUpLExyKCIgIixudWxsPT1hLnRhYmxlRGV0YWlscz9udWxsOmEudGFibGVEZXRh'@; put 'aWxzLlNVQk1JVFRFRF9PTl9EVFRNLCIgIiksZmUoNSksTHIoIiAiLG51bGw9PWEudGFibGVEZXRhaWxzP251bGw6YS50YWJsZURldGFpbHMuU1VCTUlUVEVEX1JFQVNPTl9UWFQsIiAiKX19ZnVuY3Rpb24gV2J0KGMsbCl7MSZjJiYoZGUoMCwic3BhbiIsNzYpLFd0KDEsImNsci1pY29uIiw3'@; put 'NyksT2UoMiwiIE9ubHkgdGhlIGZpcnN0IDEwMCBpbnNlcnRzLCB1cGRhdGVzIG9yIGRlbGV0ZXMgYXJlIGRpc3BsYXllZCAiKSxoZSgpKX1mdW5jdGlvbiBZYnQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJkaXYiLDQ5KSgxLCJkaXYiLDUwKSgyLCJkaXYiLDUxKSxndCgzLFVi'@; put 'dCwyLDAsInAiLDQ1KSg0LFpidCwyMSw1LCJuZy1jb250YWluZXIiLDgpLGhlKCksZGUoNSwiZGl2Iiw1MikoNiwiZGl2Iiw1MykoNywiZGl2Iiw1NCkoOCwiZGl2Iiw1NSkoOSwiYnV0dG9uIiw1NiksRnQoImNsaWNrIixmdW5jdGlvbigpe3d0KGEpO2NvbnN0IGg9TGUoNCk7cmV0dXJuIEN0'@; put 'KGguZ29Ub0Jhc2UobnVsbD09aC5qc1BhcmFtcz9udWxsOmguanNQYXJhbXMuVEFCTEVfTk0pKX0pLE9lKDEwLCIgVmlldyBiYXNlIHRhYmxlICIpLGhlKCksZGUoMTEsImJ1dHRvbiIsNTcpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKDQpO3JldHVybiBDdChoLmdl'@; put 'dFRhYmxlKGgudGFibGVJZCkpfSksT2UoMTIsIiBWaWV3IHN0YWdlZCBkYXRhICIpLGhlKCksZGUoMTMsImJ1dHRvbiIsNTgpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKDQpO3JldHVybiBDdChoLmdvQmFjayhudWxsPT1oLmpzUGFyYW1zP251bGw6aC5qc1BhcmFt'@; put 'cy5UQUJMRV9OTSkpfSksT2UoMTQsIiBFZGl0IGJhc2UgdGFibGUgIiksaGUoKSgpKCkoKSxkZSgxNSwiZGl2Iiw1OSkoMTYsImJ1dHRvbiIsNjApLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoNCkuYXBwcm92ZVRhYmxlKCkpfSksT2UoMTcsIiBBQ0NFUFQgIiks'@; put 'aGUoKSxkZSgxOCwiYnV0dG9uIiw2MSksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSg0KS5yZWplY3RPcGVuPSEwKX0pLE9lKDE5LCIgUkVKRUNUICIpLGhlKCksZGUoMjAsImNsci10b2dnbGUtY29udGFpbmVyIiw2MikoMjEsImNsci10b2dnbGUtd3JhcHBlciIp'@; put 'KDIyLCJpbnB1dCIsNjMpLHBpKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihoKXt3dChhKTtjb25zdCBmPUxlKDQpO3JldHVybiBnaShmLmZvcm1hdHRlZFZhbHVlcyxoKXx8KGYuZm9ybWF0dGVkVmFsdWVzPWgpLEN0KGgpfSksRnQoImNoYW5nZSIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSks'@; put 'Q3QoTGUoNCkuZm9ybWF0dGluZ0NoYW5nZWQoKSl9KSxoZSgpLGRlKDIzLCJsYWJlbCIsNjQpLE9lKDI0KSxoZSgpKCkoKSgpLGRlKDI1LCJkaXYiLDY1KSxndCgyNixXYnQsMywwLCJzcGFuIiw2NiksZGUoMjcsImRpdiIsMzEpKDI4LCJkaXYiLDY3KSgyOSwic3BhbiIsNjgpLE9lKDMwLCIg'@; put 'Q2hhbmdlZCBSb3dzICIpLGRlKDMxLCJzcGFuIiw2OSksT2UoMzIpLGhlKCkoKSxkZSgzMywic3BhbiIsNzApLE9lKDM0LCIgQWRkZWQgUm93cyAiKSxkZSgzNSwic3BhbiIsNjkpLE9lKDM2KSxoZSgpKCksZGUoMzcsInNwYW4iLDcxKSxPZSgzOCwiIERlbGV0ZWQgUm93cyAiKSxkZSgzOSwi'@; put 'c3BhbiIsNjkpLE9lKDQwKSxoZSgpKCkoKSgpKCkoKSgpKCl9aWYoMiZjKXtjb25zdCBhPUxlKDQpO2ZlKDMpLE1lKCJuZ0lmIiwhYS50YWJsZURldGFpbHMpLGZlKCksTWUoIm5nSWYiLGEudGFibGVEZXRhaWxzKSxmZSgxMiksTWUoImNsckxvYWRpbmciLGEuYWNjZXB0TG9hZGluZykoImRp'@; put 'c2FibGVkIiwhYS5sb2FkaW5nVGFibGV8fCJOTyI9PT0obnVsbD09YS5wYXJhbXM/bnVsbDphLnBhcmFtcy5JU0FQUFJPVkVSKXx8YS5ub0NoYW5nZXMpLGZlKDIpLE1lKCJkaXNhYmxlZCIsIWEubG9hZGluZ1RhYmxlfHwiTk8iPT09KG51bGw9PWEucGFyYW1zP251bGw6YS5wYXJhbXMuSVNB'@; put 'UFBST1ZFUil8fGEubm9DaGFuZ2VzKSxmZSg0KSxmaSgibmdNb2RlbCIsYS5mb3JtYXR0ZWRWYWx1ZXMpLGZlKDIpLFNyKGEuZm9ybWF0dGVkVmFsdWVzPyJGb3JtYXR0ZWQiOiJVbmZvcm1hdHRlZCIpLGZlKDIpLE1lKCJuZ0lmIixhLmRpZmZzTGltaXQpLGZlKDYpLFNyKGEubGVucy51cGRh'@; put 'dGVkKSxmZSg0KSxTcihhLmxlbnMubmV3KSxmZSg0KSxTcihhLmxlbnMuZGVsZXRlZCl9fWZ1bmN0aW9uIEdidChjLGwpezEmYyYmKGRlKDAsImRpdiIsNzUpKDEsInAiLDgxKSxPZSgyLCJMb2FkaW5nIHRhYmxlIiksaGUoKSgpKX1mdW5jdGlvbiAkYnQoYyxsKXtpZigxJmMmJihkZSgwLCJk'@; put 'aXYiLDc4KSgxLCJzcGFuIiw3OSksT2UoMiwiIExvYWRpbmcuLi4gIiksaGUoKSxndCgzLEdidCwzLDAsImRpdiIsODApLGhlKCkpLDImYyl7Y29uc3QgYT1MZSg0KTtmZSgzKSxNZSgibmdJZiIsIWEubG9hZGluZ1RhYmxlKX19ZnVuY3Rpb24gS2J0KGMsbCl7MSZjJiYoZGUoMCwicCIsNzIp'@; put 'LE9lKDEsIiBUaGVyZSBhcmUgbm8gY2hhbmdlcyB0byBzaG93ICIpLGhlKCkpfWZ1bmN0aW9uIFhidChjLGwpe2lmKDEmYyYmKGRlKDAsInRoIiw0KSxPZSgxKSxoZSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7ZmUoKSxTcihhKX19ZnVuY3Rpb24gcWJ0KGMsbCl7aWYoMSZjJiYoZGUo'@; put 'MCwic3BhbiIsODYpLE9lKDEpLGhlKCkpLDImYyl7Y29uc3QgYT1MZSgpLmluZGV4LGQ9TGUoMikuaW5kZXgsaD1MZSg0KTtmZSgpLExyKCJPcmlnaW5hbCB2YWx1ZSBpczogIixoLmFyck9mQ2hhbmdlc1tkXVthXSwiIil9fWZ1bmN0aW9uIEpidChjLGwpe2lmKDEmYyYmKGRlKDAsInRkIiw4'@; put 'NCksT2UoMSksZ3QoMixxYnQsMiwxLCJzcGFuIiw4NSksaGUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0LGQ9bC5pbmRleCxoPUxlKDIpLmluZGV4LGY9TGUoNCk7TWUoIm5nQ2xhc3MiLGxwKDMsZzhlLDE9PWYuYXJyQ2hhbmdlZFtoXVtkXSYmInVwZGF0ZWQiPT1mLmNoQXJyW2hdKSks'@; put 'ZmUoKSxMcigiICIsZi5kaWZmVGFibGUuZGF0YVtoXVthXSwiICIpLGZlKCksTWUoIm5nSWYiLDE9PWYuYXJyQ2hhbmdlZFtoXVtkXSYmInVwZGF0ZWQiPT1mLmNoQXJyW2hdKX19ZnVuY3Rpb24gUWJ0KGMsbCl7aWYoMSZjJiYoYWkoMCksZ3QoMSxKYnQsMyw1LCJ0ZCIsODMpLHNpKCkpLDIm'@; put 'Yyl7Y29uc3QgYT1MZSgpLmluZGV4LGQ9TGUoNCk7ZmUoKSxNZSgibmdGb3JPZiIsZC5yb3dLZXlzW2FdKX19ZnVuY3Rpb24gZV90KGMsbCl7aWYoMSZjJiYoZGUoMCwidGQiLDQpLE9lKDEpLGhlKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdCxkPUxlKDIpLmluZGV4LGg9TGUoNCk7ZmUo'@; put 'KSxMcigiICIsaC5kaWZmVGFibGUuZGF0YVtkXVthXSwiICIpfX1mdW5jdGlvbiB0X3QoYyxsKXtpZigxJmMmJihhaSgwKSxndCgxLGVfdCwyLDEsInRkIiw0Nyksc2koKSksMiZjKXtjb25zdCBhPUxlKCkuaW5kZXgsZD1MZSg0KTtmZSgpLE1lKCJuZ0Zvck9mIixkLnJvd0tleXNbYV0pfX1m'@; put 'dW5jdGlvbiBuX3QoYyxsKXtpZigxJmMmJihkZSgwLCJ0ciIsODIpLGd0KDEsUWJ0LDIsMSwibmctY29udGFpbmVyIiw4KSgyLHRfdCwyLDEsIm5nLWNvbnRhaW5lciIsOCksaGUoKSksMiZjKXtjb25zdCBhPWwuaW5kZXgsZD1MZSg0KTtNZSgibmdDbGFzcyIsYk0oMyxwOGUsImFkZGVkIj09'@; put 'ZC5jaEFyclthXSwiZGVsZXRlZCI9PWQuY2hBcnJbYV0sInVwZGF0ZWQiPT1kLmNoQXJyW2FdKSksZmUoKSxNZSgibmdJZiIsInVwZGF0ZWQiPT09ZC5jaEFyclthXSksZmUoKSxNZSgibmdJZiIsInVwZGF0ZWQiIT09ZC5jaEFyclthXSl9fWZ1bmN0aW9uIHJfdChjLGwpe2lmKDEmYyl7Y29u'@; put 'c3QgYT1PbigpO2RlKDAsImRpdiIsMjkpKDEsImRpdiIsMzApKDIsImRpdiIsMzEpKDMsImRpdiIsMzIpKDQsInNwYW4iLDMzKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKDMpLmdvVG9BcHByb3ZhbHNMaXN0KCkpfSksV3QoNSwiY2xyLWljb24iLDM0KSxPZSg2'@; put 'LCJCYWNrIHRvIGFwcHJvdmFscyBsaXN0ICIpLGhlKCkoKSxkZSg3LCJkaXYiLDM1KSg4LCJoMyIsMzYpLE9lKDkpLGhlKCkoKSxkZSgxMCwiZGl2IiwzNykoMTEsImEiLDM4KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKDMpLmdldERldGFpbHMoKSl9KSxXdCgx'@; put 'MiwiY2xyLWljb24iLDM5KSxoZSgpKCkoKSxkZSgxMywicCIsNDApLE9lKDE0KSxoZSgpKCksZGUoMTUsImRpdiIsNDEpLGd0KDE2LFlidCw0MSwxMSwiZGl2Iiw0MiksaGUoKSxndCgxNywkYnQsNCwxLCJkaXYiLDQzKSxkZSgxOCwiZGl2Iiw0NCksZ3QoMTksS2J0LDIsMCwicCIsNDUpLGRl'@; put 'KDIwLCJ0YWJsZSIsMykoMjEsInRoZWFkIikoMjIsInRyIiw0NiksZ3QoMjMsWGJ0LDIsMSwidGgiLDQ3KSxoZSgpKCksZGUoMjQsInRib2R5IiksZ3QoMjUsbl90LDMsNywidHIiLDQ4KSxoZSgpKCkoKSgpfWlmKDImYyl7Y29uc3QgYT1MZSgzKTtmZSg5KSxMcigiICIsbnVsbD09YS5qc1Bh'@; put 'cmFtcz9udWxsOmEuanNQYXJhbXMuVEFCTEVfTk0sIiAiKSxmZSg1KSxMcigiICIsbnVsbD09YS5qc1BhcmFtcz9udWxsOmEuanNQYXJhbXMuVEFCTEVfREVTQywiICIpLGZlKDIpLE1lKCJuZ0lmIixhLmxvYWRlZCksZmUoKSxNZSgibmdJZiIsIWEubG9hZGluZ1RhYmxlKSxmZSgyKSxNZSgi'@; put 'bmdJZiIsYS5sb2FkaW5nVGFibGUmJmEubm9DaGFuZ2VzKSxmZSg0KSxNZSgibmdGb3JPZiIsYS5yb3dIZWFkZXIpLGZlKDIpLE1lKCJuZ0Zvck9mIixhLnJvd0tleXMpfX1mdW5jdGlvbiBpX3QoYyxsKXtpZigxJmMmJihkZSgwLCJkaXYiLDI3KSxndCgxLHJfdCwyNiw3LCJkaXYiLDI4KSxo'@; put 'ZSgpKSwyJmMpe2NvbnN0IGE9TGUoMik7ZmUoKSxNZSgibmdJZiIsYS5sb2FkZWQpfX1mdW5jdGlvbiBhX3QoYyxsKXsxJmMmJihkZSgwLCJzcGFuIiw3OSksT2UoMSwiIExvYWRpbmcuLi4gIiksaGUoKSl9ZnVuY3Rpb24gc190KGMsbCl7MSZjJiYoZGUoMCwiZGl2IikoMSwiaDMiKSxPZSgy'@; put 'LCJMb2FkaW5nIHByZXZpZXciKSxoZSgpKCkpfWZ1bmN0aW9uIG9fdChjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIsODcpLGd0KDEsYV90LDIsMCwic3BhbiIsODgpKDIsc190LDMsMCwiZGl2Iiw4KSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoMik7ZmUoKSxNZSgibmdJZiIsIWEubG9hZGVkKSxm'@; put 'ZSgpLE1lKCJuZ0lmIiwhYS5sb2FkZWQpfX1mdW5jdGlvbiBsX3QoYyxsKXtpZigxJmMmJihkZSgwLCJkaXYiLDIzKSxndCgxLGlfdCwyLDEsImRpdiIsMjQpLGRlKDIsImRpdiIsMjUpLGd0KDMsb190LDMsMiwiZGl2IiwyNiksaGUoKSgpKSwyJmMpe2NvbnN0IGE9TGUoKTtmZSgpLE1lKCJu'@; put 'Z0lmIixhLmxvYWRlZCksZmUoMiksTWUoIm5nSWYiLCFhLmxvYWRlZCl9fWZ1bmN0aW9uIGNfdChjLGwpezEmYyYmKGRlKDAsInNwYW4iLDc2KSxXdCgxLCJjbHItaWNvbiIsNzcpLE9lKDIsIiBPbmx5IHRoZSBmaXJzdCAxMDAgaW5zZXJ0cywgdXBkYXRlcyBvciBkZWxldGVzIGFyZSBkaXNw'@; put 'bGF5ZWQgIiksaGUoKSl9ZnVuY3Rpb24gdV90KGMsbCl7MSZjJiZXdCgwLCJkaXYiLDQ5KX1mdW5jdGlvbiBkX3QoYyxsKXsxJmMmJihkZSgwLCJkaXYiLDc1KSgxLCJwIiw4MSksT2UoMiwiTG9hZGluZyB0YWJsZSIpLGhlKCkoKSl9ZnVuY3Rpb24gaF90KGMsbCl7aWYoMSZjJiYoZGUoMCwi'@; put 'ZGl2IiwxMDQpKDEsInNwYW4iLDc5KSxPZSgyLCIgTG9hZGluZy4uLiAiKSxoZSgpLGd0KDMsZF90LDMsMCwiZGl2Iiw4MCksaGUoKSksMiZjKXtjb25zdCBhPUxlKDQpO2ZlKDMpLE1lKCJuZ0lmIiwhYS5sb2FkaW5nVGFibGUpfX1mdW5jdGlvbiBmX3QoYyxsKXtpZigxJmMmJihkZSgwLCJ0'@; put 'aCIsNCksT2UoMSksaGUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O2ZlKCksU3IoYSl9fWZ1bmN0aW9uIHBfdChjLGwpe2lmKDEmYyYmKGRlKDAsInNwYW4iLDg2KSxPZSgxKSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoKS5pbmRleCxkPUxlKDIpLmluZGV4LGg9TGUoNCk7ZmUoKSxMcigi'@; put 'T3JpZ2luYWwgdmFsdWUgaXM6ICIsaC5hcnJPZkNoYW5nZXNbZF1bYV0sIiIpfX1mdW5jdGlvbiBnX3QoYyxsKXtpZigxJmMmJihkZSgwLCJ0ZCIsODQpLE9lKDEpLGd0KDIscF90LDIsMSwic3BhbiIsODUpLGhlKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdCxkPWwuaW5kZXgsaD1MZSgy'@; put 'KS5pbmRleCxmPUxlKDQpO01lKCJuZ0NsYXNzIixscCgzLGc4ZSwxPT1mLmFyckNoYW5nZWRbaF1bZF0mJiJ1cGRhdGVkIj09Zi5jaEFycltoXSkpLGZlKCksTHIoIiAiLGYuZGlmZlRhYmxlLmRhdGFbaF1bYV0sIiAiKSxmZSgpLE1lKCJuZ0lmIiwxPT1mLmFyckNoYW5nZWRbaF1bZF0mJiJ1'@; put 'cGRhdGVkIj09Zi5jaEFycltoXSl9fWZ1bmN0aW9uIG1fdChjLGwpe2lmKDEmYyYmKGFpKDApLGd0KDEsZ190LDMsNSwidGQiLDgzKSxzaSgpKSwyJmMpe2NvbnN0IGE9TGUoKS5pbmRleCxkPUxlKDQpO2ZlKCksTWUoIm5nRm9yT2YiLGQucm93S2V5c1thXSl9fWZ1bmN0aW9uIHZfdChjLGwp'@; put 'e2lmKDEmYyYmKGRlKDAsInRkIiw0KSxPZSgxKSxoZSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQsZD1MZSgyKS5pbmRleCxoPUxlKDQpO2ZlKCksTHIoIiAiLGguZGlmZlRhYmxlLmRhdGFbZF1bYV0sIiAiKX19ZnVuY3Rpb24geV90KGMsbCl7aWYoMSZjJiYoYWkoMCksZ3QoMSx2X3Qs'@; put 'MiwxLCJ0ZCIsNDcpLHNpKCkpLDImYyl7Y29uc3QgYT1MZSgpLmluZGV4LGQ9TGUoNCk7ZmUoKSxNZSgibmdGb3JPZiIsZC5yb3dLZXlzW2FdKX19ZnVuY3Rpb24gYl90KGMsbCl7aWYoMSZjJiYoZGUoMCwidHIiLDgyKSxndCgxLG1fdCwyLDEsIm5nLWNvbnRhaW5lciIsOCkoMix5X3QsMiwx'@; put 'LCJuZy1jb250YWluZXIiLDgpLGhlKCkpLDImYyl7Y29uc3QgYT1sLmluZGV4LGQ9TGUoNCk7TWUoIm5nQ2xhc3MiLGJNKDMscDhlLCJhZGRlZCI9PWQuY2hBcnJbYV0sImRlbGV0ZWQiPT1kLmNoQXJyW2FdLCJ1cGRhdGVkIj09ZC5jaEFyclthXSkpLGZlKCksTWUoIm5nSWYiLCJ1cGRhdGVk'@; put 'Ij09PWQuY2hBcnJbYV0pLGZlKCksTWUoIm5nSWYiLCJ1cGRhdGVkIiE9PWQuY2hBcnJbYV0pfX1mdW5jdGlvbiBfX3QoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJkaXYiLDkzKSgxLCJkaXYiLDk0KSgyLCJkaXYiLDMxKSgzLCJkaXYiLDMyKSg0LCJzcGFuIiw5NSksRnQoImNs'@; put 'aWNrIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgzKS5nb1RvU3VibWl0TGlzdCgpKX0pLFd0KDUsImNkcy1pY29uIiw5NiksT2UoNiwiQmFjayB0byBzdWJtaXR0ZWQgbGlzdCAiKSxoZSgpKCksZGUoNywiZGl2Iiw5NykoOCwiaDMiLDk4KSxPZSg5KSxoZSgpKCksZGUoMTAsImRp'@; put 'diIsMzcpKDExLCJhIiwzOCksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgzKS50YWJsZUZsYWc9ITApfSksV3QoMTIsImNsci1pY29uIiwzOSksaGUoKSgpKCksZGUoMTMsInAiLDk5KSxPZSgxNCksaGUoKSgpLGRlKDE1LCJkaXYiLDUwKSgxNiwiZGl2Iiw1MSko'@; put 'MTcsImRpdiIsNzMpKDE4LCJzcGFuIiksT2UoMTksIlRhYmxlIElkOiIpLGhlKCksZGUoMjAsInN0cm9uZyIsNzQpKDIxLCJzcGFuIiksT2UoMjIpLGhlKCkoKSgpLGRlKDIzLCJkaXYiKSgyNCwic3BhbiIpLE9lKDI1LCJTdWJtaXR0ZWQgb246IiksaGUoKSxkZSgyNiwic3BhbiIsNzUpLE9l'@; put 'KDI3KSxoZSgpKCksZGUoMjgsImRpdiIpKDI5LCJzcGFuIiksT2UoMzAsIlN1Ym1pdCBNZXNzYWdlOiIpLGhlKCksZGUoMzEsInNwYW4iKSxPZSgzMiksaGUoKSgpKCksZGUoMzMsImRpdiIsNTIpKDM0LCJkaXYiLDUzKSgzNSwiZGl2Iiw1NCkoMzYsImRpdiIsNTUpKDM3LCJidXR0b24iLDU2'@; put 'KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7d3QoYSk7Y29uc3QgaD1MZSgzKTtyZXR1cm4gQ3QoaC5nb1RvQmFzZShoLnN1Yk9iai5iYXNlKSl9KSxPZSgzOCwiIFZpZXcgYmFzZSB0YWJsZSAiKSxoZSgpLGRlKDM5LCJidXR0b24iLDU3KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7d3QoYSk7Y29u'@; put 'c3QgaD1MZSgzKTtyZXR1cm4gQ3QoaC5nZXRUYWJsZShoLnN1Yk9iai50YWJsZUlkKSl9KSxPZSg0MCwiIFZpZXcgc3RhZ2VkIGRhdGEgIiksaGUoKSxkZSg0MSwiYnV0dG9uIiw1OCksRnQoImNsaWNrIixmdW5jdGlvbigpe3d0KGEpO2NvbnN0IGg9TGUoMyk7cmV0dXJuIEN0KGguZ29CYWNr'@; put 'KGguc3ViT2JqLmJhc2UpKX0pLE9lKDQyLCIgRWRpdCBiYXNlIHRhYmxlICIpLGhlKCkoKSgpKCksZGUoNDMsImRpdiIsNjUpLGd0KDQ0LGNfdCwzLDAsInNwYW4iLDY2KSxkZSg0NSwiZGl2IiwzMSkoNDYsImRpdiIsNjcpKDQ3LCJzcGFuIiw2OCksT2UoNDgsIiBDaGFuZ2VkIFJvd3MgIiks'@; put 'ZGUoNDksInNwYW4iLDY5KSxPZSg1MCksaGUoKSgpLGRlKDUxLCJzcGFuIiw3MCksT2UoNTIsIiBBZGRlZCBSb3dzICIpLGRlKDUzLCJzcGFuIiw2OSksT2UoNTQpLGhlKCkoKSxkZSg1NSwic3BhbiIsNzEpLE9lKDU2LCIgRGVsZXRlZCBSb3dzICIpLGRlKDU3LCJzcGFuIiw2OSksT2UoNTgp'@; put 'LGhlKCkoKSgpKCkoKSxkZSg1OSwiZGl2Iiw1MykoNjAsImNsci10b2dnbGUtY29udGFpbmVyIiwxMDApKDYxLCJjbHItdG9nZ2xlLXdyYXBwZXIiKSg2MiwiaW5wdXQiLDYzKSxwaSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oaCl7d3QoYSk7Y29uc3QgZj1MZSgzKTtyZXR1cm4gZ2koZi5m'@; put 'b3JtYXR0ZWRWYWx1ZXMsaCl8fChmLmZvcm1hdHRlZFZhbHVlcz1oKSxDdChoKX0pLEZ0KCJjaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKDMpLmZvcm1hdHRpbmdDaGFuZ2VkKCkpfSksaGUoKSxkZSg2MywibGFiZWwiKSxPZSg2NCksaGUoKSgpKCkoKSgpKCksZGUoNjUs'@; put 'ImRpdiIsMTAxKSxndCg2Nix1X3QsMSwwLCJkaXYiLDQyKSxoZSgpLGd0KDY3LGhfdCw0LDEsImRpdiIsMTAyKSxkZSg2OCwiZGl2IiwxMDMpKDY5LCJ0YWJsZSIsMykoNzAsInRoZWFkIikoNzEsInRyIiw0NiksZ3QoNzIsZl90LDIsMSwidGgiLDQ3KSxoZSgpKCksZGUoNzMsInRib2R5Iiks'@; put 'Z3QoNzQsYl90LDMsNywidHIiLDQ4KSxoZSgpKCkoKSgpfWlmKDImYyl7Y29uc3QgYT1MZSgzKTtmZSg5KSxMcigiICIsYS5zdWJPYmouYmFzZSwiICIpLGZlKDUpLExyKCIgIixhLnRhYmxlRGVzY3JpcHRpb24sIiAiKSxmZSg2KSxNZSgicm91dGVyTGluayIsIi9zdGFnZS8iK2Euc3ViT2Jq'@; put 'LnRhYmxlSWQpLGZlKDIpLExyKCIgIixhLnN1Yk9iai50YWJsZUlkLCIiKSxmZSg1KSxMcigiICIsYS5zdWJPYmouc3VibWl0dGVkLCIgIiksZmUoNSksTHIoIiAiLGEuc3ViT2JqLnN1Ym1pdFJlYXNvbiwiICIpLGZlKDEyKSxNZSgibmdJZiIsYS5kaWZmc0xpbWl0KSxmZSg2KSxTcihhLmxl'@; put 'bnMudXBkYXRlZCksZmUoNCksU3IoYS5sZW5zLm5ldyksZmUoNCksU3IoYS5sZW5zLmRlbGV0ZWQpLGZlKDQpLGZpKCJuZ01vZGVsIixhLmZvcm1hdHRlZFZhbHVlcyksZmUoMiksU3IoYS5mb3JtYXR0ZWRWYWx1ZXM/IkZvcm1hdHRlZCI6IlVuZm9ybWF0dGVkIiksZmUoMiksTWUoIm5nSWYi'@; put 'LGEubG9hZGVkKSxmZSgpLE1lKCJuZ0lmIiwhYS5sb2FkaW5nVGFibGUpLGZlKDUpLE1lKCJuZ0Zvck9mIixhLnJvd0hlYWRlciksZmUoMiksTWUoIm5nRm9yT2YiLGEucm93S2V5cyl9fWZ1bmN0aW9uIHdfdChjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIsOTEpLGd0KDEsX190LDc1LDE2LCJk'@; put 'aXYiLDkyKSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoMik7ZmUoKSxNZSgibmdJZiIsYS5sb2FkZWQpfX1mdW5jdGlvbiBDX3QoYyxsKXsxJmMmJihkZSgwLCJkaXYiKSgxLCJoMyIpLE9lKDIsIkxvYWRpbmcgc3VibWl0dGVkIHRhYmxlIiksaGUoKSgpKX1mdW5jdGlvbiBTX3QoYyxsKXtpZigx'@; put 'JmMmJihkZSgwLCJkaXYiLDEwNSkoMSwiZGl2IiwxMDYpKDIsInNwYW4iLDc5KSxPZSgzLCIgTG9hZGluZy4uLiAiKSxoZSgpLGd0KDQsQ190LDMsMCwiZGl2Iiw4KSxoZSgpKCkpLDImYyl7Y29uc3QgYT1MZSgyKTtmZSg0KSxNZSgibmdJZiIsIWEubG9hZGVkKX19ZnVuY3Rpb24gTV90KGMs'@; put 'bCl7aWYoMSZjJiYoZGUoMCwiZGl2IiksZ3QoMSx3X3QsMiwxLCJkaXYiLDg5KSgyLFNfdCw1LDEsImRpdiIsOTApLGhlKCkpLDImYyl7Y29uc3QgYT1MZSgpO2ZlKCksTWUoIm5nSWYiLGEubG9hZGVkKSxmZSgpLE1lKCJuZ0lmIiwhYS5sb2FkZWQpfX1sZXQgbThlPSgoKT0+e2NsYXNzIGN7'@; put 'Y29uc3RydWN0b3IoYSxkLGgsZix2KXt0aGlzLnNhc1N0b3JlU2VydmljZT1hLHRoaXMuc2FzU2VydmljZT1kLHRoaXMuZXZlbnRTZXJ2aWNlPWgsdGhpcy5yb3V0ZXI9Zix0aGlzLnJvdXRlPXYsdGhpcy5kZXRhaWxzT3Blbj0hMSx0aGlzLnJlamVjdE9wZW49ITEsdGhpcy5sZW5zPXtuZXc6'@; put 'MCx1cGRhdGVkOjAsZGVsZXRlZDowfSx0aGlzLmxvYWRlZD0hMSx0aGlzLmxvYWRpbmdUYWJsZT0hMSx0aGlzLnN1Ym1pdFJlYXNvbj0iIix0aGlzLmluc3RhbmNlPSJob3RJbnN0YW5jZSIsdGhpcy5hY2NlcHRMb2FkaW5nPSExLHRoaXMucmVqZWN0TG9hZGluZz0hMSx0aGlzLnN1Ym1pdHRl'@; put 'ZD0hMSx0aGlzLnRhYmxlRmxhZz0hMSx0aGlzLnJvd0tleXM9W10sdGhpcy5jaEFycj1bXSx0aGlzLnNlY29uZE9wZW49ITEsdGhpcy5mb3JtYXR0ZWRWYWx1ZXM9ITAsdGhpcy5jaGFuZ2VzQXJyPVtdLHRoaXMuZGlmZlRhYmxlPXtkYXRhOltdfSx0aGlzLmRpZmZzTGltaXQ9ITEsdGhpcy5y'@; put 'ZWNvcmRzTGltaXQ9MTAwLHRoaXMucmVmcmVzaFN0YXJ0dXBzZXJ2aWNlQWZ0ZXJBcHByb3ZlPSExfWdldCBub0NoYW5nZXMoKXtyZXR1cm4gMD09PXRoaXMubGVucy5uZXcmJjA9PT10aGlzLmxlbnMudXBkYXRlZCYmMD09PXRoaXMubGVucy5kZWxldGVkfWdvVG9CYXNlKGEpe3RoaXMucm91'@; put 'dGUubmF2aWdhdGVCeVVybCgiL3ZpZXcvZGF0YS8iK2EpfWdvVG9BcHByb3ZhbHNMaXN0KCl7dGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKCIvcmV2aWV3L2FwcHJvdmUiKX1nZXRUYWJsZShhKXt0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoIi9zdGFnZS8iK2EpfWdvQmFjayhhKXt0aGlzLnJv'@; put 'dXRlLm5hdmlnYXRlQnlVcmwoIi9lZGl0b3IvIithKX1nb1RvVmlld2VyKCl7dGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKCIvdmlldy9kYXRhIil9c2hvd0RldGFpbHNTZWxlY3QoYSl7YS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMudGFibGVGbGFnPSF0aGlzLnRhYmxlRmxhZ31nZXREZXRhaWxz'@; put 'KCl7dGhpcy5kZXRhaWxzT3Blbj0hMH1vbkhvdFNlbGVjdGlvbihhKXt0aGlzLmhvdFNlbGVjdGlvbj1hLnNsaWNlKDAsNCl9b25Ib3REZXNlbGVjdCgpe3NldFRpbWVvdXQoKCk9Pnt0aGlzLmhvdFNlbGVjdGlvbj1udWxsfSwxMDApfXJlamVjdGluZygpe3ZhciBhPXRoaXM7cmV0dXJuIFEo'@; put 'ZnVuY3Rpb24qKCl7YS5yZWplY3RMb2FkaW5nPSEwLGEuc3VibWl0UmVhc29uPWEuc3VibWl0UmVhc29uLnJlcGxhY2UoL1xuL2csIi4gIik7bGV0IGQ9e1NUUF9BQ1RJT046IlJFSkVDVF9UQUJMRSIsVEFCTEU6YS50YWJsZUlkLFNUUF9SRUFTT046YS5zdWJtaXRSZWFzb259O3lpZWxkIGEu'@; put 'c2FzU3RvcmVTZXJ2aWNlLnJlamVjdGluZyhkLCJCcm93c2VyUGFyYW1zIiwiYXBwcm92ZXJzL3JlamVjdGlvbiIpLnRoZW4oaD0+e2Eucm91dGUubmF2aWdhdGVCeVVybCgiL3Jldmlldy9oaXN0b3J5Iil9KS5jYXRjaChoPT57YS5hY2NlcHRMb2FkaW5nPSExLGEucmVqZWN0TG9hZGluZz0h'@; put 'MX0pfSkoKX1hcHByb3ZlVGFibGUoKXt2YXIgYT10aGlzO3JldHVybiBRKGZ1bmN0aW9uKigpe2EuYWNjZXB0TG9hZGluZz0hMDtsZXQgZD17QUNUSU9OOiJBUFBST1ZFX1RBQkxFIixUQUJMRTphLnRhYmxlSWQsRElGRlRJTUU6YS5wYXJhbXM/LkRJRkZUSU1FLExJQkRTOmEucGFyYW1zPy5M'@; put 'SUJEU307eWllbGQgYS5zYXNTdG9yZVNlcnZpY2UuYXBwcm92ZVRhYmxlKGQsIlNBU0NvbnRyb2xUYWJsZSIsImF1ZGl0b3JzL3Bvc3RkYXRhIikudGhlbihoPT57YS5yZWZyZXNoU3RhcnR1cHNlcnZpY2VBZnRlckFwcHJvdmUmJmEuc2FzU2VydmljZS5yZWxvYWRTdGFydHVwRGF0YSgpLGEu'@; put 'cm91dGUubmF2aWdhdGVCeVVybCgiL3Jldmlldy9oaXN0b3J5Iil9KS5jYXRjaChoPT57YS5hY2NlcHRMb2FkaW5nPSExfSl9KSgpfWdvVG9TdWJtaXRMaXN0KCl7dGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKCIvcmV2aWV3L3N1Ym1pdHRlZCIpfWNhbGxDaGFuZ2VzSW5mbyhhKXt2YXIgZD10'@; put 'aGlzO3JldHVybiBRKGZ1bmN0aW9uKigpe3lpZWxkIGQuc2FzU3RvcmVTZXJ2aWNlLmdldENoYW5nZUluZm8oYSkudGhlbihoPT57ZC50YWJsZURldGFpbHM9aC5qc3BhcmFtc1swXSxkLmpzUGFyYW1zPWguanNwYXJhbXNbMF07bGV0IGY9W107Zm9yKGNvbnN0IHYgaW4gZC5qc1BhcmFtcylk'@; put 'LmpzUGFyYW1zLmhhc093blByb3BlcnR5KHYpJiZmLnB1c2godik7ZC5rZXlzQXJyYXk9ZiwiTVBFX1RBQkxFUyI9PT1oLmpzcGFyYW1zWzBdLkJBU0VfRFMmJihkLnJlZnJlc2hTdGFydHVwc2VydmljZUFmdGVyQXBwcm92ZT0hMCl9KS5jYXRjaChoPT57ZC5hY2NlcHRMb2FkaW5nPSExfSku'@; put 'ZmluYWxseSgoKT0+e2QubG9hZGVkPSEwfSl9KSgpfWZvcm1hdHRpbmdDaGFuZ2VkKCl7dGhpcy5jYWxjRGlmZigpfWNhbGNEaWZmKCl7aWYoIXRoaXMucmVzcG9uc2UpcmV0dXJuO2xldCBhPXRoaXMucmVzcG9uc2UubmV3LGQ9dGhpcy5yZXNwb25zZS51cGRhdGVzLGg9dGhpcy5yZXNwb25z'@; put 'ZS5kZWxldGVkLGY9dGhpcy5yZXNwb25zZS5vcmlnaW5hbHM7dGhpcy5mb3JtYXR0ZWRWYWx1ZXMmJihhPXRoaXMucmVzcG9uc2UuZm10X25ldyxkPXRoaXMucmVzcG9uc2UuZm10X3VwZGF0ZXMsaD10aGlzLnJlc3BvbnNlLmZtdF9kZWxldGVkLGY9dGhpcy5yZXNwb25zZS5mbXRfb3JpZ2lu'@; put 'YWxzKSx0aGlzLm9yaWdpbmFscz1mLHRoaXMucm93S2V5cz1bXTtmb3IobGV0IGR0PTA7ZHQ8ZC5sZW5ndGg7ZHQrKyl7bGV0IHF0PU9iamVjdC5rZXlzKGRbZHRdKTtmb3IobGV0IG1uPTA7bW48cXQubGVuZ3RoO21uKyspZFtkdF1bcXRbbW5dXSE9PWZbZHRdW3F0W21uXV0mJnRoaXMuY2hh'@; put 'bmdlc0Fyci5wdXNoKHtpbmQ6ZHQsZmllbGQ6cXRbbW5dLHByb3A6ZFtkdF1bcXRbbW5dXSxvcmlnaW5hbDpmW2R0XVtxdFttbl1dfSl9dGhpcy5sZW5zPXtuZXc6dGhpcy5wYXJhbXM/Lk5VTV9BRERFRHx8MCx1cGRhdGVkOnRoaXMucGFyYW1zPy5OVU1fVVBEQVRFRHx8MCxkZWxldGVkOnRo'@; put 'aXMucGFyYW1zPy5OVU1fREVMRVRFRHx8MH07bGV0IEc9W10scmU9ZC5jb25jYXQoYSxoKTtmb3IobGV0IGR0PTA7ZHQ8dGhpcy5yZXNwb25zZS5jb2xzLmxlbmd0aDtkdCsrKUcucHVzaCh0aGlzLnJlc3BvbnNlLmNvbHNbZHRdLk5BTUUpO2xldCB1ZT10aGlzLmxlbnMubmV3PnRoaXMucmVj'@; put 'b3Jkc0xpbWl0P3RoaXMucmVjb3Jkc0xpbWl0OnRoaXMubGVucy5uZXcseWU9dGhpcy5sZW5zLnVwZGF0ZWQ+dGhpcy5yZWNvcmRzTGltaXQ/dGhpcy5yZWNvcmRzTGltaXQ6dGhpcy5sZW5zLnVwZGF0ZWQ7dGhpcy5kaWZmc0xpbWl0PXRoaXMubGVucy5uZXc+dGhpcy5yZWNvcmRzTGltaXR8'@; put 'fHRoaXMubGVucy51cGRhdGVkPnRoaXMucmVjb3Jkc0xpbWl0fHx0aGlzLmxlbnMuZGVsZXRlZD50aGlzLnJlY29yZHNMaW1pdCx0aGlzLmFkZENvdW50PXVlO2xldCBCZT1bXSxHZT1bXTtmb3IobGV0IGR0PTA7ZHQ8Ry5sZW5ndGg7ZHQrKylHZS5wdXNoKHtkYXRhOkdbZHRdLHJlYWRPbmx5'@; put 'OiEwfSk7dGhpcy5kaWZmVGFibGUuZGF0YT1yZTtmb3IobGV0IGR0PTA7ZHQ8cmUubGVuZ3RoO2R0Kyspe2xldCBtbj1PYmplY3Qua2V5cyhyZVtkdF0pO3RoaXMucm93S2V5cy5wdXNoKG1uKX1sZXQgc3Q9W10scHQ9W107Zm9yKGxldCBkdD0wO2R0PHRoaXMuZGlmZlRhYmxlLmRhdGEubGVu'@; put 'Z3RoO2R0Kyspe2lmKGR0PHllJiYwIT09eWUpe3N0LnB1c2goW10pLHB0LnB1c2goW10pLEJlLnB1c2goInVwZGF0ZWQiKTtsZXQgcXQ9T2JqZWN0LmtleXModGhpcy5kaWZmVGFibGUuZGF0YVtkdF0pO2ZvcihsZXQgbW49MDttbjxxdC5sZW5ndGg7bW4rKyl7bGV0IHduPXF0W21uXTtmW2R0'@; put 'XVt3bl0hPT1kW2R0XVt3bl0/KHN0W2R0XS5wdXNoKCEwKSxwdFtkdF0ucHVzaChmW2R0XVt3bl0pKTooc3RbZHRdLnB1c2goITEpLHB0W2R0XS5wdXNoKG51bGwpKX10aGlzLmFyckNoYW5nZWQ9c3QsdGhpcy5hcnJPZkNoYW5nZXM9cHR9ZHQ+PXllJiZkdDx5ZSt1ZSYmQmUucHVzaCgiYWRk'@; put 'ZWQiKSxkdD51ZSt5ZS0xJiZCZS5wdXNoKCJkZWxldGVkIil9dGhpcy5jaEFycj1CZSx0aGlzLnJvd0hlYWRlcj10aGlzLnJvd0tleXNbMF0sdGhpcy5kaWZmVGFibGUuZGF0YT1yZX1uZ0FmdGVyVmlld0luaXQoKXt2YXIgYT10aGlzO3JldHVybiBRKGZ1bmN0aW9uKigpe2lmKGEuX2RldGFp'@; put 'bHNTdWI9YS5zYXNTdG9yZVNlcnZpY2Uuc3VibWl0dERldGFpbC5zdWJzY3JpYmUoZnVuY3Rpb24oKXt2YXIgaD1RKGZ1bmN0aW9uKihmKXthLnN1Yk9iaj1mLnZpZXdEYXRhLGEudGFibGVJZD1mLnZpZXdEYXRhLnRhYmxlSWQsYS5zdWJtaXR0ZWQ9Zi52aWV3RGF0YS5zdWIsYS5zdWJtaXRE'@; put 'ZXRhaWxzPWYuZGF0YSxhLnN1Ym1pdEFycj1bXTtmb3IobGV0IE0gaW4gYS5zdWJtaXREZXRhaWxzKSJzdWIiIT09TSYmYS5zdWJtaXRBcnIucHVzaChNKTtsZXQgdj17QUNUSU9OOiJTSE9XX0RJRkZTIixUQUJMRTphLnRhYmxlSWQsRElGRlRJTUU6KG5ldyBEYXRlKS50b1VUQ1N0cmluZygp'@; put 'fTthLnNhc1N0b3JlU2VydmljZS5zaG93RGlmZnModiwiU0FTQ29udHJvbFRhYmxlIiwiYXVkaXRvcnMvcG9zdGRhdGEiKS50aGVuKE09PnthLnBhcmFtcz1NLnBhcmFtc1swXSxhLnJlc3BvbnNlPU0sYS5jYWxjRGlmZigpLGEuY2FsbENoYW5nZXNJbmZvKGEudGFibGVJZCl9KS5jYXRjaChN'@; put 'PT5NKS5maW5hbGx5KCgpPT57YS5sb2FkaW5nVGFibGU9ITB9KX0pO3JldHVybiBmdW5jdGlvbihmKXtyZXR1cm4gaC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKSx0eXBlb2YgYS5yb3V0ZXIuc25hcHNob3QucGFyYW1zLnRhYmxlSWQ+InUiKXJldHVybjthLnRhYmxlSWQ9YS5yb3V0ZXIu'@; put 'c25hcHNob3QucGFyYW1zLnRhYmxlSWQ7bGV0IGQ9e0FDVElPTjoiU0hPV19ESUZGUyIsVEFCTEU6YS50YWJsZUlkLERJRkZUSU1FOihuZXcgRGF0ZSkudG9VVENTdHJpbmcoKX07YS5zYXNTdG9yZVNlcnZpY2Uuc2hvd0RpZmZzKGQsIlNBU0NvbnRyb2xUYWJsZSIsImF1ZGl0b3JzL3Bvc3Rk'@; put 'YXRhIikudGhlbihoPT57YS5wYXJhbXM9aC5wYXJhbXNbMF0sYS5yZXNwb25zZT1oLGEuY2FsY0RpZmYoKSxhLmNhbGxDaGFuZ2VzSW5mbyhhLnRhYmxlSWQpfSkuY2F0Y2goaD0+e2EuYWNjZXB0TG9hZGluZz0hMX0pLmZpbmFsbHkoKCk9PnthLmxvYWRpbmdUYWJsZT0hMCxhLnNldEZvY3Vz'@; put 'KCl9KX0pKCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9kZXRhaWxzU3ViJiZ0aGlzLl9kZXRhaWxzU3ViLnVuc3Vic2NyaWJlKCl9c2V0Rm9jdXMoKXtzZXRUaW1lb3V0KCgpPT57bGV0IGE9d2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY2NlcHRCdG4iKTthJiZhLmZvY3VzKCl9LDIw'@; put 'MCl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUoSWgpLCRlKFZvKSwkZShtYyksJGUoeXUpLCRlKExvKSl9fXN0YXRpY3t0aGlzLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJhcHAtYXBwcm92ZS1kZXRhaWxzIl1dLGhvc3RB'@; put 'dHRyczpbMSwiY29udGVudC1jb250YWluZXIiXSxkZWNsczo0Mix2YXJzOjEyLGNvbnN0czpbWzMsImNsck1vZGFsT3BlbkNoYW5nZSIsImNsck1vZGFsT3BlbiJdLFsxLCJtb2RhbC10aXRsZSJdLFsxLCJtb2RhbC1ib2R5Il0sWzEsInRhYmxlIl0sWzEsImxlZnQiXSxbNCwibmdGb3IiLCJu'@; put 'Z0Zvck9mIl0sWzEsIm1vZGFsLWZvb3RlciJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXByaW1hcnkiLDMsImNsaWNrIl0sWzQsIm5nSWYiXSxbMSwiZm9ybS1ibG9jayJdLFsxLCJmb3JtLWdyb3VwIl0sWyJmb3IiLCJmb3JtRmllbGRzXzgiXSxbImlkIiwiZm9y'@; put 'bUZpZWxkc184Iiwicm93cyIsIjUiLDEsInctMTAwIiwzLCJuZ01vZGVsQ2hhbmdlIiwibmdNb2RlbCIsIm5nTW9kZWxPcHRpb25zIiwiaW5uZXJIVE1MIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tb3V0bGluZSIsMywiY2xpY2siXSxbInR5cGUiLCJzdWJtaXQiLDEsImJ0biIs'@; put 'ImJ0bi1zdWNjZXNzLW91dGxpbmUiLDMsImNsaWNrIiwiY2xyTG9hZGluZyJdLFsxLCJjb250ZW50LWFyZWEiXSxbImNsYXNzIiwiY2FyZCIsNCwibmdJZiJdLFsiY2xhc3MiLCJsZWZ0IGxpbmstaXQiLDMsInJvdXRlckxpbmsiLDQsIm5nSWYiXSxbImNsYXNzIiwibGVmdCIsNCwibmdJZiJd'@; put 'LFsxLCJsZWZ0IiwibGluay1pdCIsMywicm91dGVyTGluayJdLFsiY2xyVGFiTGluayIsIiJdLFs0LCJjbHJJZkFjdGl2ZSJdLFsxLCJvdmVyZmxvdy1hdXRvIl0sWzEsImNhcmQiXSxbImNsYXNzIiwiY2FyZC1oZWFkZXIgZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50'@; put 'ZXIiLDQsIm5nSWYiXSxbMSwib3ZlcmZsb3ctYXV0byIsIm1yLTEyIl0sWyJjbGFzcyIsImgtNzB2aCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIiLDQsIm5nSWYiXSxbMSwiY2FyZC1oZWFkZXIiLCJkLWZsZXgiLCJmbGV4LWNv'@; put 'bHVtbiIsImp1c3RpZnktY29udGVudC1jZW50ZXIiXSxbImNsYXNzIiwibXQtMCIsNCwibmdJZiJdLFsxLCJtdC0wIl0sWzEsImNhcmQtaGVhZGVyIiwicC0wIl0sWzEsImNsci1yb3ciXSxbMSwiY2xyLWNvbC1tZC00IiwiYXBwcm92YWxCYWNrIl0sWzEsImJ0biIsImJ0bi1vdXRsaW5lIiwi'@; put 'bS0wIiwzLCJjbGljayJdLFsic2hhcGUiLCJjYXJldCIsImRpciIsImxlZnQiLCJzaXplIiwiMjAiXSxbMSwiY2xyLWNvbC1tZC00IiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciJdLFsxLCJtdC0wIiwiZm9udC13ZWlnaHQtMzAwIl0sWzEsImNsci1jb2wtbWQtNCIsImFwcHJv'@; put 'dmFsSW5mbyJdLFsxLCJ0b29sdGlwIiwidG9vbHRpcC1zbSIsInRvb2x0aXAtdG9wLWxlZnQiLDMsImNsaWNrIl0sWyJzaGFwZSIsImluZm8tc3RhbmRhcmQiLCJzaXplIiwiMjgiXSxbMSwidGV4dC1jZW50ZXIiLCJtdC0xMCJdLFsxLCJjYXJkLWJsb2NrIiwicC0wIl0sWyJjbGFzcyIsImNh'@; put 'cmQtdGV4dCIsNCwibmdJZiJdLFsiY2xhc3MiLCJoLTI0dmggZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIiw0LCJuZ0lmIl0sWzEsInRhYmxlQ29udCIsIm10LTAiXSxbImNsYXNzIiwidGV4dC1jZW50ZXIgZm9udC1zaXplLTE4'@; put 'Iiw0LCJuZ0lmIl0sWzEsImQtZmxleCJdLFsiY2xhc3MiLCJsZWZ0Iiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbImNsYXNzIiwiZC1mbGV4IiwzLCJuZ0NsYXNzIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiY2FyZC10ZXh0Il0sWzEsImNsci1yb3ciLCJmb250LXNpemUtMTUiXSxbMSwiY2xy'@; put 'LWNvbC1tZC01Il0sWzEsImNsci1jb2wtbWQtNyJdLFsxLCJjYXJkLWJsb2NrIiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciJdLFsxLCJkLWZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiwibXQtMCJdLFsxLCJjbHItcm93IiwiY2xyLWdhcC01IiwiY2xyLWdhcC1zbS0w'@; put 'Il0sWzEsImJ0biIsImJ0bi1zbSIsImJ0bi1vdXRsaW5lIiwidGV4dC1jZW50ZXIiLCJtdC01IiwibXItNWkiLDMsImNsaWNrIl0sWzEsImJ0biIsImJ0bi1zbSIsImJ0bi1zdWNjZXNzLW91dGxpbmUiLCJ0ZXh0LWNlbnRlciIsIm10LTUiLCJtci01aSIsMywiY2xpY2siXSxbMSwiYnRuIiwi'@; put 'YnRuLXNtIiwiYnRuLWluZm8tb3V0bGluZSIsInRleHQtY2VudGVyIiwibXQtNSIsMywiY2xpY2siXSxbMSwiY2FyZC1ibG9jayIsImQtZmxleCIsImp1c3RpZnktY29udGVudC1jZW50ZXIiLCJjbHItZmxleC1jb2x1bW4iLCJjbHItZ2FwLTUiLCJjbHItZmxleC1zbS1yb3ciLCJjbHItZ2Fw'@; put 'LXNtLTAiLCJjbHItYWxpZ24taXRlbXMtY2VudGVyIl0sWyJpZCIsImFjY2VwdEJ0biIsInR5cGUiLCJzdWJtaXQiLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1zdWNjZXNzIiwibXItNWkiLDMsImNsaWNrIiwiY2xyTG9hZGluZyIsImRpc2FibGVkIl0sWyJpZCIsInJlamVjdEJ0biIsMSwiYnRu'@; put 'IiwiYnRuLXNtIiwiYnRuIiwiYnRuLWRhbmdlciIsIm1yLTVpIiwzLCJjbGljayIsImRpc2FibGVkIl0sWzEsIm0tMCIsIm1sLTIwaSJdLFsidHlwZSIsImNoZWNrYm94IiwiY2xyVG9nZ2xlIiwiIiwiY2hlY2tlZCIsIiIsMywibmdNb2RlbENoYW5nZSIsImNoYW5nZSIsIm5nTW9kZWwiXSxb'@; put 'MSwiZm9ybWF0dGVkLXZhbHVlcy10b2dnbGUiXSxbMSwiY2FyZC1ibG9jayIsImQtZmxleCIsImNsci1hbGlnbi1pdGVtcy1jZW50ZXIiLCJjbHItZmxleC1jb2x1bW4iXSxbImNsYXNzIiwicm93cy1ub3RpY2UiLDQsIm5nSWYiXSxbMSwiZC1mbGV4IiwiY2xyLWZsZXgtY29sdW1uIiwiY2xy'@; put 'LWdhcC01IiwiY2xyLWZsZXgtc20tcm93IiwiY2xyLWdhcC1zbS0wIl0sWzEsImxhYmVsIiwibGFiZWwtd2FybmluZyJdLFsxLCJiYWRnZSJdLFsxLCJsYWJlbCIsImxhYmVsLXN1Y2Nlc3MiXSxbMSwibGFiZWwiLCJsYWJlbC1kYW5nZXIiXSxbMSwidGV4dC1jZW50ZXIiLCJmb250LXNpemUt'@; put 'MTgiXSxbMSwibXQtMTUiXSxbMSwibGluay1pdCIsMywicm91dGVyTGluayJdLFsxLCJtdC0xMCJdLFsxLCJyb3dzLW5vdGljZSJdLFsic2hhcGUiLCJleGNsYW1hdGlvbi10cmlhbmdsZSIsMSwibWItNSIsImNvbG9yLW9yYW5nZSJdLFsxLCJoLTI0dmgiLCJkLWZsZXgiLCJmbGV4LWNvbHVt'@; put 'biIsImp1c3RpZnktY29udGVudC1jZW50ZXIiLCJhbGlnbi1pdGVtcy1jZW50ZXIiXSxbMSwic3Bpbm5lciJdLFsiY2xhc3MiLCJtdC0xMCIsNCwibmdJZiJdLFsiY2RzLXRleHQiLCJzZWN0aW9uIl0sWzEsImQtZmxleCIsMywibmdDbGFzcyJdLFsiY2xhc3MiLCJsZWZ0IiwzLCJuZ0NsYXNz'@; put 'Iiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwibGVmdCIsMywibmdDbGFzcyJdLFsiY2xhc3MiLCJ0b29sdGlwLWNvbnRlbnQiLDQsIm5nSWYiXSxbMSwidG9vbHRpcC1jb250ZW50Il0sWzEsImgtNzB2aCIsImQtZmxleCIsImp1c3RpZnktY29udGVudC1jZW50ZXIiLCJmbGV4LWNvbHVtbiIs'@; put 'ImFsaWduLWl0ZW1zLWNlbnRlciJdLFsiY2xhc3MiLCJzcGlubmVyIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNhcmQtYmxvY2siLDQsIm5nSWYiXSxbMSwiZC1mbGV4IiwiZmxleC1j'@; put 'b2x1bW4iLCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIl0sWyJjbGFzcyIsImNhcmQgbS0wIiw0LCJuZ0lmIl0sWzEsImNhcmQiLCJtLTAiXSxbMSwiY2FyZC1oZWFkZXIiXSxbMSwiYnRuIiwiYnRuLW91dGxpbmUiLDMsImNsaWNrIl0sWyJzaGFwZSIsImFuZ2xlIiwiZGlyZWN0aW9uIiwibGVm'@; put 'dCIsInNpemUiLCIyMCJdLFsxLCJjbHItY29sLW1kLTQiXSxbMSwibXQtMCIsImZvbnQtd2VpZ2h0LTMwMCIsInRleHQtY2VudGVyIl0sWzEsIm0tMCIsInRleHQtY2VudGVyIiwiY29sb3ItZGFya2VyLWdyYXkiXSxbMSwibS0wIiwibWwtMjAtaSJdLFsxLCJjYXJkLWJsb2NrIiwicC0wIiwi'@; put 'b3ZlcmZsb3ctYXV0byIsIm1yLTEyIl0sWyJjbGFzcyIsImgtMjV2aCBkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIiLDQsIm5nSWYiXSxbMSwidGFibGVDb250Il0sWzEsImgtMjV2aCIsImQtZmxleCIsImZsZXgtY29sdW1uIiwi'@; put 'anVzdGlmeS1jb250ZW50LWNlbnRlciIsImFsaWduLWl0ZW1zLWNlbnRlciJdLFsxLCJjYXJkLWJsb2NrIl0sWzEsImxvYWRlciJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihkLGgpezEmZCYmKGRlKDAsImNsci1tb2RhbCIsMCkscGkoImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24odil7cmV0'@; put 'dXJuIGdpKGguZGV0YWlsc09wZW4sdil8fChoLmRldGFpbHNPcGVuPXYpLHZ9KSxkZSgxLCJoMyIsMSksT2UoMiwiQXBwcm92YWwgRGV0YWlscyIpLGhlKCksZGUoMywiZGl2IiwyKSg0LCJ0YWJsZSIsMykoNSwidGhlYWQiKSg2LCJ0ciIpKDcsInRoIiw0KSxPZSg4LCJOYW1lIiksaGUoKSxk'@; put 'ZSg5LCJ0aCIsNCksT2UoMTAsIlZhbHVlIiksaGUoKSgpKCksZGUoMTEsInRib2R5IiksZ3QoMTIsTmJ0LDUsMywidHIiLDUpLGhlKCkoKSgpLGRlKDEzLCJkaXYiLDYpKDE0LCJidXR0b24iLDcpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaC5kZXRhaWxzT3Blbj0hMX0pLE9lKDE1'@; put 'LCIgT2sgIiksaGUoKSgpKCksZGUoMTYsImNsci1tb2RhbCIsMCkscGkoImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24odil7cmV0dXJuIGdpKGgudGFibGVGbGFnLHYpfHwoaC50YWJsZUZsYWc9diksdn0pLGRlKDE3LCJoMyIsMSksT2UoMTgsIkFsbCBEZXRhaWxzIiksaGUoKSxkZSgx'@; put 'OSwiZGl2IiwyKSxndCgyMCx6YnQsMTksMiwiY2xyLXRhYnMiLDgpLGhlKCksZGUoMjEsImRpdiIsNikoMjIsImJ1dHRvbiIsNyksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBoLnRhYmxlRmxhZz0hMX0pLE9lKDIzLCIgT2sgIiksaGUoKSgpKCksZGUoMjQsImNsci1tb2RhbCIsMCks'@; put 'cGkoImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24odil7cmV0dXJuIGdpKGgucmVqZWN0T3Blbix2KXx8KGgucmVqZWN0T3Blbj12KSx2fSksZGUoMjUsImgzIiwxKSxPZSgyNiwiUmVhc29uIE1lc3NhZ2UiKSxoZSgpLGRlKDI3LCJkaXYiLDIpKDI4LCJmb3JtIikoMjksInNlY3Rpb24i'@; put 'LDkpKDMwLCJkaXYiLDEwKSgzMSwibGFiZWwiLDExKSxPZSgzMiwiUmVhc29uIGZvciByZWplY3Rpbmc/IiksaGUoKSxkZSgzMywidGV4dGFyZWEiLDEyKSxwaSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24odil7cmV0dXJuIGdpKGguc3VibWl0UmVhc29uLHYpfHwoaC5zdWJtaXRSZWFzb249'@; put 'diksdn0pLGhlKCkoKSgpKCkoKSxkZSgzNCwiZGl2Iiw2KSgzNSwiYnV0dG9uIiwxMyksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBoLnJlamVjdE9wZW49ITF9KSxPZSgzNiwiIENhbmNlbCAiKSxoZSgpLGRlKDM3LCJidXR0b24iLDE0KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0'@; put 'dXJuIGgucmVqZWN0aW5nKCl9KSxPZSgzOCwiIE9LICIpLGhlKCkoKSgpLGRlKDM5LCJkaXYiLDE1KSxndCg0MCxsX3QsNCwyLCJkaXYiLDE2KSg0MSxNX3QsMywyLCJkaXYiLDgpLGhlKCkpLDImZCYmKGZpKCJjbHJNb2RhbE9wZW4iLGguZGV0YWlsc09wZW4pLGZlKDEyKSxNZSgibmdGb3JP'@; put 'ZiIsaC5rZXlzQXJyYXkpLGZlKDQpLGZpKCJjbHJNb2RhbE9wZW4iLGgudGFibGVGbGFnKSxmZSg0KSxNZSgibmdJZiIsaC50YWJsZUZsYWcpLGZlKDQpLGZpKCJjbHJNb2RhbE9wZW4iLGgucmVqZWN0T3BlbiksZmUoOSksZmkoIm5nTW9kZWwiLGguc3VibWl0UmVhc29uKSxNZSgibmdNb2Rl'@; put 'bE9wdGlvbnMiLFpvKDExLFBidCkpKCJpbm5lckhUTUwiLGguc3VibWl0UmVhc29uLFY0KSxmZSg0KSxNZSgiY2xyTG9hZGluZyIsaC5yZWplY3RMb2FkaW5nKSxmZSgzKSxNZSgibmdJZiIsIWguc3VibWl0dGVkKSxmZSgpLE1lKCJuZ0lmIixoLnN1Ym1pdHRlZCkpfSxkZXBlbmRlbmNpZXM6'@; put 'W3Z1LFFzLGJhLGw3LEdsLE1kLHRsLHM3LFdvLHdwLGwxLE9sLGVvLHJ1LFl1LFYwLExiLEgyLGNvLElkLEZiLHhoLHZtLGJtLHg3LHltLG1tLFM3XSxlbmNhcHN1bGF0aW9uOjJ9KX19cmV0dXJuIGN9KSgpO2NvbnN0IHhfdD1jPT4oe25vQm9yZGVyOmN9KSxFX3Q9KCk9PlszLDUsMTAsMTVd'@; put 'O2Z1bmN0aW9uIFRfdChjLGwpezEmYyYmKGRlKDAsImRpdiIsMTApKDEsImRpdiIsMTEpLFd0KDIsImNsci1pY29uIiwxMiksZGUoMywiaDMiLDEzKSxPZSg0LCJUaGVyZSBhcmUgbm8gYXBwcm92YWxzIHJlbWFpbmluZyIpLGhlKCkoKSgpKX1mdW5jdGlvbiBBX3QoYyxsKXsxJmMmJihkZSgw'@; put 'LCJoMyIsMTQpLE9lKDEsIiBSRVZJRVcgIiksaGUoKSl9ZnVuY3Rpb24ga190KGMsbCl7aWYoMSZjJiYoZGUoMCwicCIsMTUpLE9lKDEsIiBZb3UgaGF2ZSAiKSxkZSgyLCJzcGFuIiksT2UoMyksaGUoKSxPZSg0LCJhcHByb3ZhbHMgcmVtYWluaW5nICIpLGhlKCkpLDImYyl7Y29uc3QgYT1M'@; put 'ZSgpO2ZlKDMpLExyKCIiLGEucmVtYWluZWQsIiAiKX19ZnVuY3Rpb24gRF90KGMsbCl7MSZjJiYoZGUoMCwic3BhbiIsMTgpLE9lKDEsIiBMb2FkaW5nLi4uICIpLGhlKCkpfWZ1bmN0aW9uIElfdChjLGwpezEmYyYmKGRlKDAsImRpdiIpKDEsImgzIiksT2UoMiwiTG9hZGluZyBhcHByb3Zh'@; put 'bHMgbGlzdCIpLGhlKCkoKSl9ZnVuY3Rpb24gUl90KGMsbCl7aWYoMSZjJiYoZGUoMCwiZGl2IiwxNiksZ3QoMSxEX3QsMiwwLCJzcGFuIiwxNykoMixJX3QsMywwLCJkaXYiLDkpLGhlKCkpLDImYyl7Y29uc3QgYT1MZSgpO2ZlKCksTWUoIm5nSWYiLCFhLmxvYWRlZCksZmUoKSxNZSgibmdJ'@; put 'ZiIsIWEubG9hZGVkKX19ZnVuY3Rpb24gTF90KGMsbCl7MSZjJiZXdCgwLCJjbHItaWNvbiIsNDApfWZ1bmN0aW9uIE9fdChjLGwpezEmYyYmV3QoMCwiY2xyLXNwaW5uZXIiLDQxKSwyJmMmJk1lKCJjbHJTbWFsbCIsITApfWZ1bmN0aW9uIFBfdChjLGwpe2lmKDEmYyl7Y29uc3QgYT1Pbigp'@; put 'O2RlKDAsImNsci1kZy1yb3ciKSgxLCJjbHItZGctY2VsbCIpLE9lKDIpLGhlKCksZGUoMywiY2xyLWRnLWNlbGwiKSxPZSg0KSxoZSgpLGRlKDUsImNsci1kZy1jZWxsIiksT2UoNiksaGUoKSxkZSg3LCJjbHItZGctY2VsbCIpLE9lKDgpLGhlKCksZGUoOSwiY2xyLWRnLWNlbGwiKSgxMCwi'@; put 'ZGl2IiwyOCkoMTEsImEiLDI5KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7Y29uc3QgaD13dChhKS5pbmRleDtyZXR1cm4gQ3QoTGUoMikuZ2V0Q2xpY2tlZChoKSl9KSxXdCgxMiwiY2xyLWljb24iLDMwKSxkZSgxMywic3BhbiIsMzEpLE9lKDE0LCJHbyB0byByZXZpZXcgcGFnZSBzY3JlZW4i'@; put 'KSxoZSgpKCksZGUoMTUsImEiLDMyKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7Y29uc3QgaD13dChhKSxmPWguJGltcGxpY2l0LHY9aC5pbmRleCxNPUxlKDIpO3JldHVybiBDdChmLnJlamVjdExvYWRpbmc/IiI6TS5yZWplY3RpbmcodikpfSksZ3QoMTYsTF90LDEsMCwiY2xyLWljb24iLDMz'@; put 'KSgxNyxPX3QsMSwxLCJjbHItc3Bpbm5lciIsMzQpLGRlKDE4LCJzcGFuIiwzMSksT2UoMTksIlJlamVjdCIpLGhlKCkoKSxkZSgyMCwiYSIsMzUpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtjb25zdCBoPXd0KGEpLiRpbXBsaWNpdDtyZXR1cm4gQ3QoTGUoMikuZ2V0VGFibGUoaC50YWJsZUlk'@; put 'KSl9KSxXdCgyMSwiY2xyLWljb24iLDM2KSxkZSgyMiwic3BhbiIsMzEpLE9lKDIzLCJHbyB0byBzdGFnZWQgZGF0YSBzY3JlZW4iKSxoZSgpKCkoKSgpLGRlKDI0LCJjbHItZGctY2VsbCIsMzcpKDI1LCJidXR0b24iLDM4KSxGdCgiY2xpY2siLGZ1bmN0aW9uKGgpe2NvbnN0IGY9d3QoYSku'@; put 'JGltcGxpY2l0O3JldHVybiBMZSgyKS5kb3dubG9hZChmLnRhYmxlSWQpLEN0KGguc3RvcFByb3BhZ2F0aW9uKCkpfSksV3QoMjYsImNsci1pY29uIiwzOSksaGUoKSgpKCl9aWYoMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O2ZlKDIpLFNyKGEuc3VibWl0dGVyKSxmZSgyKSxTcihhLmJhc2VU'@; put 'YWJsZSksZmUoMiksU3IoYS5zdWJtaXR0ZWQpLGZlKDIpLFNyKGEuc3VibWl0UmVhc29uKSxmZSg4KSxNZSgibmdJZiIsIWEucmVqZWN0TG9hZGluZyksZmUoKSxNZSgibmdJZiIsYS5yZWplY3RMb2FkaW5nKSxmZSg4KSxNZSgiaWQiLGEudGFibGVJZCl9fWZ1bmN0aW9uIEZfdChjLGwpe2lm'@; put 'KDEmYyYmKGRlKDAsImRpdiIpKDEsImNsci1kYXRhZ3JpZCIsMTkpKDIsImNsci1kZy1jb2x1bW4iLDIwKSxPZSgzLCIgU1VCTUlUVEVSICIpLFd0KDQsImNsci1kZy1zdHJpbmctZmlsdGVyIiwyMSksaGUoKSxkZSg1LCJjbHItZGctY29sdW1uIiwyMCksT2UoNiwiIEJBU0UgVEFCTEUgIiks'@; put 'V3QoNywiY2xyLWRnLXN0cmluZy1maWx0ZXIiLDIyKSxoZSgpLGRlKDgsImNsci1kZy1jb2x1bW4iLDIwKSxPZSg5LCIgU1VCTUlUVEVEICIpLFd0KDEwLCJjbHItZGctc3RyaW5nLWZpbHRlciIsMjMpLGhlKCksZGUoMTEsImNsci1kZy1jb2x1bW4iLDIwKSxPZSgxMiwiIFNVQk1JVCBSRUFT'@; put 'T04gIiksV3QoMTMsImNsci1kZy1zdHJpbmctZmlsdGVyIiwyNCksaGUoKSxkZSgxNCwiY2xyLWRnLWNvbHVtbiIpLE9lKDE1LCJBQ1RJT04iKSxoZSgpLGRlKDE2LCJjbHItZGctY29sdW1uIiksT2UoMTcsIkRPV05MT0FEIiksaGUoKSxndCgxOCxQX3QsMjcsNywiY2xyLWRnLXJvdyIsMjUp'@; put 'LGRlKDE5LCJjbHItZGctZm9vdGVyIikoMjAsImNsci1kZy1wYWdpbmF0aW9uIiwyNiwwKSgyMiwiY2xyLWRnLXBhZ2Utc2l6ZSIsMjcpLE9lKDIzLCJJdGVtcyBwZXIgcGFnZSIpLGhlKCksT2UoMjQpLGhlKCkoKSgpKCkpLDImYyl7Y29uc3QgYT1kYSgyMSksZD1MZSgpO2ZlKDIpLE1lKCJj'@; put 'bHJEZ0ZpZWxkIiwic3VibWl0dGVyIiksZmUoMiksTWUoImNsckRnU3RyaW5nRmlsdGVyIixkLnN1Ym1pdHRlckZpbHRlciksZmUoKSxNZSgiY2xyRGdGaWVsZCIsImJhc2VUYWJsZSIpLGZlKDIpLE1lKCJjbHJEZ1N0cmluZ0ZpbHRlciIsZC5iYXNlVGFibGVGaWx0ZXIpLGZlKCksTWUoImNs'@; put 'ckRnRmllbGQiLCJzdWJtaXR0ZWQiKSxmZSgyKSxNZSgiY2xyRGdTdHJpbmdGaWx0ZXIiLGQuc3VibWl0dGVkRmlsdGVyKSxmZSgpLE1lKCJjbHJEZ0ZpZWxkIiwic3VibWl0UmVhc29uIiksZmUoMiksTWUoImNsckRnU3RyaW5nRmlsdGVyIixkLnN1Ym1pdFJlYXNvbkZpbHRlciksZmUoNSks'@; put 'TWUoImNsckRnSXRlbXNPZiIsZC5hcHByb3ZlTGlzdCksZmUoMiksTWUoImNsckRnUGFnZVNpemUiLDEwKSxmZSgyKSxNZSgiY2xyUGFnZVNpemVPcHRpb25zIixabygxNCxFX3QpKSxmZSgyKSxaZigiICIsYS5maXJzdEl0ZW0rMSwiIC0gIixhLmxhc3RJdGVtKzEsIiBvZiAiLGEudG90YWxJ'@; put 'dGVtcywiIGFwcHJvdmFscyAiKX19Y2xhc3MgSF90e2FjY2VwdHMobCxhKXtyZXR1cm4gbC5zdWJtaXR0ZXIudG9Mb3dlckNhc2UoKS5pbmRleE9mKGEudG9Mb3dlckNhc2UoKSk+PTB9fWNsYXNzIE5fdHthY2NlcHRzKGwsYSl7cmV0dXJuIGwuYmFzZVRhYmxlLnRvTG93ZXJDYXNlKCkuaW5k'@; put 'ZXhPZihhLnRvTG93ZXJDYXNlKCkpPj0wfX1jbGFzcyBWX3R7YWNjZXB0cyhsLGEpe3JldHVybiBsLnN1Ym1pdHRlZC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoYS50b0xvd2VyQ2FzZSgpKT49MH19Y2xhc3MgQl90e2FjY2VwdHMobCxhKXtyZXR1cm4gbC5zdWJtaXRSZWFzb24udG9Mb3dlckNh'@; put 'c2UoKS5pbmRleE9mKGEudG9Mb3dlckNhc2UoKSk+PTB9fWxldCBqX3Q9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmLHYpe3RoaXMuc2FzU3RvcmVTZXJ2aWNlPWEsdGhpcy5ldmVudFNlcnZpY2U9ZCx0aGlzLnJvdXRlPWgsdGhpcy5zYXNTZXJ2aWNlPWYsdGhpcy5jZHI9dix0'@; put 'aGlzLmxvYWRlZD0hMSx0aGlzLml0ZW1zTnVtPTEwLHRoaXMuc3VibWl0dGVyRmlsdGVyPW5ldyBIX3QsdGhpcy5iYXNlVGFibGVGaWx0ZXI9bmV3IE5fdCx0aGlzLnN1Ym1pdHRlZEZpbHRlcj1uZXcgVl90LHRoaXMuc3VibWl0UmVhc29uRmlsdGVyPW5ldyBCX3R9Z2V0VGFibGUoYSl7dGhp'@; put 'cy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKCIvc3RhZ2UvIithKX1nZXRDbGlja2VkKGEpe3ZvaWQgMCE9PXRoaXMuYXBwcm92ZUxpc3QmJih0aGlzLnRhYmxlSWQ9dGhpcy5hcHByb3ZlTGlzdFthXS50YWJsZUlkLHRoaXMucm91dGUubmF2aWdhdGVCeVVybCgicmV2aWV3L2FwcHJvdmVEZXQvIit0'@; put 'aGlzLmFwcHJvdmVMaXN0W2FdLnRhYmxlSWQpKX1yZWplY3RpbmcoYSl7dmFyIGQ9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXt2b2lkIDAhPT1kLmFwcHJvdmVMaXN0JiYoZC50YWJsZUlkPWQuYXBwcm92ZUxpc3RbYV0udGFibGVJZCk7bGV0IGg9e1NUUF9BQ1RJT046IlJFSkVDVF9UQUJM'@; put 'RSIsVEFCTEU6ZC50YWJsZUlkLFNUUF9SRUFTT046InF1aWNrIHJlamVjdGlvbiJ9O3RyeXsoZC5hcHByb3ZlTGlzdHx8W10pW2FdLnJlamVjdExvYWRpbmc9ITAsKHlpZWxkIGQuc2FzU3RvcmVTZXJ2aWNlLnJlamVjdGluZyhoLCJCcm93c2VyUGFyYW1zIiwiYXBwcm92ZXJzL3JlamVjdGlv'@; put 'biIpKS5mcm9tc2FzWzBdLlJFU1BPTlNFLmluY2x1ZGVzKCJTVUNDRVNTIikmJigoZC5hcHByb3ZlTGlzdHx8W10pW2FdLnJlamVjdExvYWRpbmc9ITEsZC5hcHByb3ZlTGlzdD8uc3BsaWNlKGEsMSksZC5yZW1haW5lZC0tLGQuY2RyLmRldGVjdENoYW5nZXMoKSl9Y2F0Y2goZil7ZC5ldmVu'@; put 'dFNlcnZpY2UuY2F0Y2hSZXNwb25zZUVycm9yKCJhcHByb3ZlcnMvcmVqZWN0aW9uIixmKX19KSgpfW5nT25Jbml0KCl7dmFyIGE9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXthLmZldGNoQXBwcm92YWxzKCl9KSgpfWZldGNoQXBwcm92YWxzKCl7dmFyIGE9dGhpcztyZXR1cm4gUShmdW5j'@; put 'dGlvbiooKXthLml0ZW1zTnVtPTEwO2xldCBkPXtTVFBfQUNUSU9OOiJPUEVOX0FQUFJPVkFMUyJ9O3RyeXtsZXQgaD15aWVsZCBhLnNhc1N0b3JlU2VydmljZS5nZXRBcHByb3ZhbHMoZCwiQnJvd3NlclBhcmFtcyIsImFwcHJvdmVycy9nZXRhcHByb3ZhbHMiKTthLnJlbWFpbmVkPWguZnJv'@; put 'bXNhcy5sZW5ndGg7bGV0IGY9aC5mcm9tc2FzLm1hcChmdW5jdGlvbih2KXtyZXR1cm57dGFibGVJZDp2LlRBQkxFX0lELHN1Ym1pdHRlcjp2LlNVQk1JVFRFRF9CWV9OTSxzdWJtaXR0ZWQ6di5TVUJNSVRURURfT05fRFRUTSxiYXNlVGFibGU6di5CQVNFX1RBQkxFLHN1Ym1pdFJlYXNvbjp2'@; put 'LlNVQk1JVFRFRF9SRUFTT05fVFhUfX0pO2EuYXBwcm92ZUxpc3Q9ZixhLmxvYWRlZD0hMH1jYXRjaChoKXthLmV2ZW50U2VydmljZS5jYXRjaFJlc3BvbnNlRXJyb3IoImFwcHJvdmVycy9nZXRhcHByb3ZhbHMiLGgpfX0pKCl9ZG93bmxvYWQoYSl7bGV0IGQ9dGhpcy5zYXNTZXJ2aWNlLmdl'@; put 'dFNhc2pzQ29uZmlnKCksaD1kLnNlcnZlclVybCxmPWQuYXBwTG9jLHY9dGhpcy5zYXNTZXJ2aWNlLmdldEV4ZWN1dGlvblBhdGgoKTt3aW5kb3cub3BlbihoK3YrIi8/X3Byb2dyYW09IitmKyIvc2VydmljZXMvYXVkaXRvcnMvZ2V0YXVkaXRmaWxlJnRhYmxlPSIrYSl9c3RhdGlje3RoaXMu'@; put 'XHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUoSWgpLCRlKG1jKSwkZShMbyksJGUoVm8pLCRlKHhvKSl9fXN0YXRpY3t0aGlzLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJhcHAtYXBwcm92ZSJdXSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFp'@; put 'bmVyIl0sZGVjbHM6OSx2YXJzOjgsY29uc3RzOltbInBhZ2luYXRpb24iLCIiXSxbMSwiY29udGVudC1hcmVhIl0sWzEsImNhcmQiXSxbImNsYXNzIiwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIiLDQsIm5nSWYiXSxbMSwiY2FyZC1oZWFkZXIiLDMsIm5nQ2xhc3MiXSxbImNsYXNz'@; put 'IiwiY2VudGVyIGNsci1jb2wtbWQtMTIgdGV4dC1jZW50ZXIiLDQsIm5nSWYiXSxbImNsYXNzIiwidGV4dC1jZW50ZXIgZm9udC13ZWlnaHQtNzAwIGNvbG9yLWRhcmstZ3JheSIsNCwibmdJZiJdLFsiY2xhc3MiLCJhcHByb3ZhbHMtbGlzdC13cmFwcGVyIiw0LCJuZ0lmIl0sWyJuZy1pZiIs'@; put 'ImxvYWRlZCIsMSwiY2xyLWNvbC1tZC0xMiJdLFs0LCJuZ0lmIl0sWzEsImQtZmxleCIsImp1c3RpZnktY29udGVudC1jZW50ZXIiXSxbMSwiY2FyZC1ibG9jayIsIm5vYXBwcm92YWxzLWluZm8td3JhcHBlciJdLFsic2hhcGUiLCJ3YXJuaW5nLXN0YW5kYXJkIiwic2l6ZSIsIjYwIiwxLCJp'@; put 'cy1pbmZvIiwiaWNvbi1kYy1maWxsIl0sWzEsInRleHQtY2VudGVyIiwiY29sb3ItZ3JheSJdLFsxLCJjZW50ZXIiLCJjbHItY29sLW1kLTEyIiwidGV4dC1jZW50ZXIiXSxbMSwidGV4dC1jZW50ZXIiLCJmb250LXdlaWdodC03MDAiLCJjb2xvci1kYXJrLWdyYXkiXSxbMSwiYXBwcm92YWxz'@; put 'LWxpc3Qtd3JhcHBlciJdLFsiY2xhc3MiLCJzcGlubmVyIiw0LCJuZ0lmIl0sWzEsInNwaW5uZXIiXSxbMSwiZGF0YWdyaWQtY29tcGFjdCIsImRhdGFncmlkLWN1c3RvbS1mb290ZXIiXSxbMywiY2xyRGdGaWVsZCJdLFsiYXJpYS1sYWJlbCIsIkZpbHRlciBzdWJtaXR0ZXIiLDMsImNsckRn'@; put 'U3RyaW5nRmlsdGVyIl0sWyJhcmlhLWxhYmVsIiwiRmlsdGVyIGJhc2UgdGFibGUiLDMsImNsckRnU3RyaW5nRmlsdGVyIl0sWyJhcmlhLWxhYmVsIiwiRmlsdGVyIHN1Ym1pdHRlZCBkYXRlIiwzLCJjbHJEZ1N0cmluZ0ZpbHRlciJdLFsiYXJpYS1sYWJlbCIsIkZpbHRlciBzdWJtaXQgcmVh'@; put 'c29uIiwzLCJjbHJEZ1N0cmluZ0ZpbHRlciJdLFs0LCJjbHJEZ0l0ZW1zIiwiY2xyRGdJdGVtc09mIl0sWzMsImNsckRnUGFnZVNpemUiXSxbMywiY2xyUGFnZVNpemVPcHRpb25zIl0sWyJyb2xlIiwidG9vbGJhciIsImFyaWEtbGFiZWwiLCJUYWJsZSBhY3Rpb25zIiwxLCJjbHItcm93Iiwi'@; put 'ZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWFyb3VuZCJdLFsxLCJjb2x1bW4tY2VudGVyIiwibGlua3MiLCJ0b29sdGlwIiwidG9vbHRpcC1tZCIsInRvb2x0aXAtYm90dG9tLWxlZnQiLCJjb2xvci1ncmVlbiIsMywiY2xpY2siXSxbInNoYXBlIiwiY2hlY2siLCJzaXplIiwiMjQiLCJhcmlh'@; put 'LWhpZGRlbiIsInRydWUiXSxbMSwidG9vbHRpcC1jb250ZW50Il0sWzEsImNvbHVtbi1jZW50ZXIiLCJsaW5rcyIsInRvb2x0aXAiLCJ0b29sdGlwLW1kIiwidG9vbHRpcC1ib3R0b20tbGVmdCIsImNvbG9yLXJlZCIsMywiY2xpY2siXSxbInNoYXBlIiwiYmFuIiwic2l6ZSIsIjIyIiwiYXJp'@; put 'YS1oaWRkZW4iLCJ0cnVlIiw0LCJuZ0lmIl0sWyJhcmlhLWhpZGRlbiIsInRydWUiLDMsImNsclNtYWxsIiw0LCJuZ0lmIl0sWzEsImNvbHVtbi1jZW50ZXIiLCJsaW5rcyIsInRvb2x0aXAiLCJ0b29sdGlwLW1kIiwidG9vbHRpcC1ib3R0b20tbGVmdCIsImNvbG9yLWJsdWUiLDMsImNsaWNr'@; put 'Il0sWyJzaGFwZSIsImNvZGUiLCJzaXplIiwiMjgiLCJhcmlhLWhpZGRlbiIsInRydWUiXSxbMSwicC0wIiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciJdLFsiYXJpYS1sYWJlbCIsIkRvd25sb2FkIGF1ZGl0IGZpbGUiLDEsImJ0biIsImJ0bi1zdWNjZXNzIiwzLCJjbGljayIs'@; put 'ImlkIl0sWyJzaGFwZSIsImRvd25sb2FkIl0sWyJzaGFwZSIsImJhbiIsInNpemUiLCIyMiIsImFyaWEtaGlkZGVuIiwidHJ1ZSJdLFsiYXJpYS1oaWRkZW4iLCJ0cnVlIiwzLCJjbHJTbWFsbCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihkLGgpezEmZCYmKGRlKDAsImRpdiIsMSkoMSwiZGl2Iiwy'@; put 'KSxndCgyLFRfdCw1LDAsImRpdiIsMyksZGUoMywiZGl2Iiw0KSxndCg0LEFfdCwyLDAsImgzIiw1KSg1LGtfdCw1LDEsInAiLDYpLGhlKCksZ3QoNixSX3QsMywyLCJkaXYiLDcpLGRlKDcsImRpdiIsOCksZ3QoOCxGX3QsMjUsMTUsImRpdiIsOSksaGUoKSgpKCkpLDImZCYmKGZlKDIpLE1l'@; put 'KCJuZ0lmIiwwPT09aC5yZW1haW5lZCksZmUoKSxNZSgibmdDbGFzcyIsbHAoNix4X3QsIWgubG9hZGVkKSksZmUoKSxNZSgibmdJZiIsaC5sb2FkZWQmJjAhPT1oLnJlbWFpbmVkKSxmZSgpLE1lKCJuZ0lmIixoLmxvYWRlZCYmMCE9PWgucmVtYWluZWQpLGZlKCksTWUoIm5nSWYiLCFoLmxv'@; put 'YWRlZCksZmUoMiksTWUoIm5nSWYiLGguYXBwcm92ZUxpc3QmJjAhPT1oLnJlbWFpbmVkKSl9LGRlcGVuZGVuY2llczpbdnUsYmEseG0scjMsUjcsZk8sS2IsbkUscE8sU20seHAsTDcsSmIsTW0sazcsQ20sRDcsV2IsT2wsUmRdLGVuY2Fwc3VsYXRpb246Mn0pfX1yZXR1cm4gY30pKCk7Y29u'@; put 'c3Qgel90PWM9Pih7bm9Cb3JkZXI6Y30pLFVfdD0oKT0+WzMsNSwxMCwxNV07ZnVuY3Rpb24gWl90KGMsbCl7MSZjJiYoZGUoMCwiZGl2IiwxMykoMSwiZGl2IiwxNCksV3QoMiwiY2xyLWljb24iLDE1KSxkZSgzLCJoMyIsMTYpLE9lKDQsIiBZb3UgaGF2ZSBub3Qgc3VibWl0dGVkIGFueSB0'@; put 'YWJsZXMgIiksaGUoKSgpKCkpfWZ1bmN0aW9uIFdfdChjLGwpezEmYyYmKGRlKDAsImgzIiwxNyksT2UoMSwiIFNVQk1JVCBRVUVVRSAiKSxoZSgpKX1mdW5jdGlvbiBZX3QoYyxsKXtpZigxJmMmJihkZSgwLCJwIiwxOCksT2UoMSwiIFlvdSBoYXZlICIpLGRlKDIsInNwYW4iKSxPZSgzKSxo'@; put 'ZSgpLE9lKDQsInN1Ym1pc3Npb25zIHdhaXRpbmcgdG8gYmUgYXBwcm92ZWQgIiksaGUoKSksMiZjKXtjb25zdCBhPUxlKDMpO2ZlKDMpLExyKCIiLGEucmVtYWluZWQsIiAiKX19ZnVuY3Rpb24gR190KGMsbCl7MSZjJiYoZGUoMCwic3BhbiIsMjEpLE9lKDEsIiBMb2FkaW5nLi4uICIpLGhl'@; put 'KCkpfWZ1bmN0aW9uICRfdChjLGwpezEmYyYmKGRlKDAsImRpdiIpKDEsImgzIiksT2UoMiwiTG9hZGluZyBzdWJtaXR0ZWQgbGlzdCIpLGhlKCkoKSl9ZnVuY3Rpb24gS190KGMsbCl7aWYoMSZjJiYoZGUoMCwiZGl2IiwxOSksZ3QoMSxHX3QsMiwwLCJzcGFuIiwyMCkoMiwkX3QsMywwLCJk'@; put 'aXYiLDMpLGhlKCkpLDImYyl7Y29uc3QgYT1MZSgzKTtmZSgpLE1lKCJuZ0lmIiwhYS5sb2FkZWQpLGZlKCksTWUoIm5nSWYiLCFhLmxvYWRlZCl9fWZ1bmN0aW9uIFhfdChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImNsci1kZy1yb3ciLDMwKSxGdCgiY2xpY2siLGZ1bmN0aW9u'@; put 'KCl7Y29uc3QgaD13dChhKS4kaW1wbGljaXQ7cmV0dXJuIEN0KExlKDUpLmdvVG9EZXRhaWxzKGgudGFibGVJZCkpfSksZGUoMSwiY2xyLWRnLWNlbGwiKSxPZSgyKSxoZSgpLGRlKDMsImNsci1kZy1jZWxsIiksT2UoNCksaGUoKSxkZSg1LCJjbHItZGctY2VsbCIpLE9lKDYpLGhlKCksZGUo'@; put 'NywiY2xyLWRnLWNlbGwiKSg4LCJkaXYiLDMxKSg5LCJhIiwzMiksRnQoImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IGg9d3QoYSkuJGltcGxpY2l0O3JldHVybiBDdChMZSg1KS5nb1RvU3RhZ2UoaC50YWJsZUlkKSl9KSxXdCgxMCwiY2xyLWljb24iLDMzKSxkZSgxMSwic3BhbiIsMzQpLE9l'@; put 'KDEyLCJHbyB0byBzdGFnZWQgZGF0YSBzY3JlZW4iKSxoZSgpKCkoKSgpLGRlKDEzLCJjbHItZGctY2VsbCIsMzUpKDE0LCJidXR0b24iLDM2KSxGdCgiY2xpY2siLGZ1bmN0aW9uKGgpe2NvbnN0IGY9d3QoYSkuJGltcGxpY2l0O3JldHVybiBMZSg1KS5kb3dubG9hZChmLnRhYmxlSWQpLEN0'@; put 'KGguc3RvcFByb3BhZ2F0aW9uKCkpfSksV3QoMTUsImNsci1pY29uIiwzNyksaGUoKSgpKCl9aWYoMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O2ZlKDIpLFNyKGEuYmFzZSksZmUoMiksU3IoYS5zdWJtaXR0ZWQpLGZlKDIpLFNyKGEuc3VibWl0UmVhc29uKX19ZnVuY3Rpb24gcV90KGMsbCl7'@; put 'aWYoMSZjJiYoZGUoMCwiZGl2IikoMSwiY2xyLWRhdGFncmlkIiwyMykoMiwiY2xyLWRnLWNvbHVtbiIpLE9lKDMsIkJBU0UgVEFCTEUiKSxoZSgpLGRlKDQsImNsci1kZy1jb2x1bW4iLDI0KSxPZSg1LCIgU1VCTUlUVEVEICIpLFd0KDYsImNsci1kZy1zdHJpbmctZmlsdGVyIiwyNSksaGUo'@; put 'KSxkZSg3LCJjbHItZGctY29sdW1uIiwyNCksT2UoOCwiIFNVQk1JVCBSRUFTT04gIiksV3QoOSwiY2xyLWRnLXN0cmluZy1maWx0ZXIiLDI2KSxoZSgpLGRlKDEwLCJjbHItZGctY29sdW1uIiwxMyksT2UoMTEsIkFDVElPTiIpLGhlKCksZGUoMTIsImNsci1kZy1jb2x1bW4iLDEzKSxPZSgx'@; put 'MywiRE9XTkxPQUQiKSxoZSgpLGd0KDE0LFhfdCwxNiwzLCJjbHItZGctcm93IiwyNyksZGUoMTUsImNsci1kZy1mb290ZXIiKSgxNiwiY2xyLWRnLXBhZ2luYXRpb24iLDI4LDApKDE4LCJjbHItZGctcGFnZS1zaXplIiwyOSksT2UoMTksIkl0ZW1zIHBlciBwYWdlIiksaGUoKSxPZSgyMCks'@; put 'aGUoKSgpKCkoKSksMiZjKXtjb25zdCBhPWRhKDE3KSxkPUxlKDQpO2ZlKDQpLE1lKCJjbHJEZ0ZpZWxkIiwic3VibWl0dGVkIiksZmUoMiksTWUoImNsckRnU3RyaW5nRmlsdGVyIixkLnN1Ym1pdHRlZEZpbHRlciksZmUoKSxNZSgiY2xyRGdGaWVsZCIsInN1Ym1pdFJlYXNvbiIpLGZlKDIp'@; put 'LE1lKCJjbHJEZ1N0cmluZ0ZpbHRlciIsZC5zdWJtaXRSZWFzb25GaWx0ZXIpLGZlKDUpLE1lKCJjbHJEZ0l0ZW1zT2YiLGQuc3VibWl0dGVyTGlzdCksZmUoMiksTWUoImNsckRnUGFnZVNpemUiLDEwKSxmZSgyKSxNZSgiY2xyUGFnZVNpemVPcHRpb25zIixabygxMCxVX3QpKSxmZSgyKSxa'@; put 'ZigiICIsYS5maXJzdEl0ZW0rMSwiIC0gIixhLmxhc3RJdGVtKzEsIiBvZiAiLGEudG90YWxJdGVtcywiIHN1Ym1pc3Npb25zICIpfX1mdW5jdGlvbiBKX3QoYyxsKXtpZigxJmMmJihkZSgwLCJkaXYiLDIyKSxndCgxLHFfdCwyMSwxMSwiZGl2IiwzKSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUo'@; put 'Myk7ZmUoKSxNZSgibmdJZiIsYS5zdWJtaXR0ZXJMaXN0JiYwIT09YS5yZW1haW5lZCl9fWZ1bmN0aW9uIFFfdChjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIsNiksZ3QoMSxaX3QsNSwwLCJkaXYiLDcpLGRlKDIsImRpdiIsOCksZ3QoMyxXX3QsMiwwLCJoMyIsOSkoNCxZX3QsNSwxLCJwIiwx'@; put 'MCksaGUoKSxndCg1LEtfdCwzLDIsImRpdiIsMTEpKDYsSl90LDIsMSwiZGl2IiwxMiksaGUoKSksMiZjKXtjb25zdCBhPUxlKDIpO2ZlKCksTWUoIm5nSWYiLDA9PT1hLnJlbWFpbmVkJiZhLmxvYWRlZCksZmUoKSxNZSgibmdDbGFzcyIsbHAoNix6X3QsIWEubG9hZGVkKSksZmUoKSxNZSgi'@; put 'bmdJZiIsMCE9PWEucmVtYWluZWQpLGZlKCksTWUoIm5nSWYiLGEubG9hZGVkJiYwIT09YS5yZW1haW5lZCksZmUoKSxNZSgibmdJZiIsIWEubG9hZGVkKSxmZSgpLE1lKCJuZ0lmIixhLmxvYWRlZCl9fWZ1bmN0aW9uIGV3dChjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIsNCksZ3QoMSxRX3Qs'@; put 'Nyw4LCJkaXYiLDUpLGhlKCkpLDImYyl7Y29uc3QgYT1MZSgpO2ZlKCksTWUoIm5nSWYiLCFhLnN1YlJlYWR5KX19ZnVuY3Rpb24gdHd0KGMsbCl7MSZjJiYoZGUoMCwiZGl2IiksV3QoMSwiYXBwLWFwcHJvdmUtZGV0YWlscyIpLGhlKCkpfWNsYXNzIG53dHthY2NlcHRzKGwsYSl7cmV0dXJu'@; put 'IGwuc3VibWl0dGVkLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihhLnRvTG93ZXJDYXNlKCkpPj0wfX1jbGFzcyByd3R7YWNjZXB0cyhsLGEpe3JldHVybiBsLnN1Ym1pdFJlYXNvbi50b0xvd2VyQ2FzZSgpLmluZGV4T2YoYS50b0xvd2VyQ2FzZSgpKT49MH19bGV0IHY4ZT0oKCk9PntjbGFzcyBj'@; put 'e2NvbnN0cnVjdG9yKGEsZCxoLGYsdil7dGhpcy5zYXNTdG9yZVNlcnZpY2U9YSx0aGlzLmV2ZW50U2VydmljZT1kLHRoaXMucm91dGVyPWgsdGhpcy5yb3V0ZT1mLHRoaXMuc2FzU2VydmljZT12LHRoaXMucmVtYWluZWQ9MCx0aGlzLmxvYWRlZD0hMSx0aGlzLnN1YlJlYWR5PSExLHRoaXMu'@; put 'ZGV0YWlsc09wZW49ITEsdGhpcy5zdWJtaXR0ZWRGaWx0ZXI9bmV3IG53dCx0aGlzLnN1Ym1pdFJlYXNvbkZpbHRlcj1uZXcgcnd0fWdvVG9TdGFnZShhKXt0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvc3RhZ2UvIithKX1nb1RvRGV0YWlscyhhKXt0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5'@; put 'VXJsKCIvcmV2aWV3L3N1Ym1pdHRlZC8iK2EpfWdldERldGFpbHMoYSxkKXt0aGlzLnN1YlJlYWR5PSEwLHNldFRpbWVvdXQoKCk9Pnt0aGlzLnNhc1N0b3JlU2VydmljZS5zZW5kRGV0YWlscyhhLGQsdGhpcy5zdWJtaXREYXRhKX0sMCl9bmdPbkluaXQoKXt2YXIgYT10aGlzO3JldHVybiBR'@; put 'KGZ1bmN0aW9uKigpe2NvbnN0IGQ9YS5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMudGFibGVJZDthLml0ZW1zTnVtPTEwO3RyeXtsZXQgaD15aWVsZCBhLnNhc1N0b3JlU2VydmljZS5nZXRTdWJtaXR0cygpO2lmKGEucmVtYWluZWQ9aC5mcm9tc2FzLmxlbmd0aCxhLnJlbWFpbmVkPjApe2Euc3Vi'@; put 'bWl0dGVyPWguZnJvbXNhc1swXS5TVUJNSVRURURfQllfTk07bGV0IGY9aC5mcm9tc2FzLm1hcChmdW5jdGlvbih2KXtyZXR1cm57dGFibGVJZDp2LlRBQkxFX0lELGJhc2U6di5CQVNFX1RBQkxFLHN1Ym1pdHRlZDp2LlNVQk1JVFRFRF9PTl9EVFRNLHN1Ym1pdHRlcjp2LlNVQk1JVFRFRF9C'@; put 'WV9OTSxzdWJtaXRSZWFzb246di5TVUJNSVRURURfUkVBU09OX1RYVH19KTtpZihhLnN1Ym1pdHRlckxpc3Q9ZixhLnN1Ym1pdERhdGE9aC5mcm9tc2FzLHR5cGVvZiBkPCJ1Iil7Y29uc3Qgdj1hLnN1Ym1pdHRlckxpc3QuZmluZEluZGV4KE09Pk0udGFibGVJZD09PWQpO3Y+LTEmJmEuZ2V0'@; put 'RGV0YWlscyhhLnN1Ym1pdHRlckxpc3Rbdl0sdil9fWEubG9hZGVkPSEwfWNhdGNoKGgpe2EuZXZlbnRTZXJ2aWNlLmNhdGNoUmVzcG9uc2VFcnJvcigiZWRpdG9ycy9nZXRzdWJtaXRzIixoKX19KSgpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuX3JlYWR5U3ViPXRoaXMuc2FzU3RvcmVTZXJ2'@; put 'aWNlLnNldFN1Ym1pdC5zdWJzY3JpYmUoYT0+e3RoaXMuc3ViUmVhZHk9YX0pLHRoaXMuX2JhY2tUb1N1Yj10aGlzLnNhc1N0b3JlU2VydmljZS5zZXRTdWJtaXRMaXN0LnN1YnNjcmliZShhPT57dGhpcy5zdWJSZWFkeT0hdGhpcy5zdWJSZWFkeSx0aGlzLmRldGFpbHNPcGVuPSExfSl9ZG93'@; put 'bmxvYWQoYSl7bGV0IGQ9dGhpcy5zYXNTZXJ2aWNlLmdldFNhc2pzQ29uZmlnKCksaD1kLnNlcnZlclVybCxmPWQuYXBwTG9jLHY9dGhpcy5zYXNTZXJ2aWNlLmdldEV4ZWN1dGlvblBhdGgoKTt3aW5kb3cub3BlbihoK3YrIi8/X3Byb2dyYW09IitmKyIvc2VydmljZXMvYXVkaXRvcnMvZ2V0'@; put 'YXVkaXRmaWxlJnRhYmxlPSIrYSl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUoSWgpLCRlKG1jKSwkZShMbyksJGUoeXUpLCRlKFZvKSl9fXN0YXRpY3t0aGlzLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJhcHAtc3VibWl0'@; put 'dGVyIl1dLGhvc3RBdHRyczpbMSwiY29udGVudC1jb250YWluZXIiXSxkZWNsczozLHZhcnM6Mixjb25zdHM6W1sicGFnaW5hdGlvbiIsIiJdLFsxLCJ3LTEwMCJdLFsiY2xhc3MiLCJjb250ZW50LWFyZWEiLDQsIm5nSWYiXSxbNCwibmdJZiJdLFsxLCJjb250ZW50LWFyZWEiXSxbImNsYXNz'@; put 'IiwiY2FyZCIsNCwibmdJZiJdLFsxLCJjYXJkIl0sWyJjbGFzcyIsImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiw0LCJuZ0lmIl0sWzEsImNhcmQtaGVhZGVyIiwzLCJuZ0NsYXNzIl0sWyJjbGFzcyIsImNlbnRlciBjbHItY29sLW1kLTEyIHRleHQtY2VudGVyIiw0LCJuZ0lmIl0s'@; put 'WyJjbGFzcyIsInRleHQtY2VudGVyIGZvbnQtd2VpZ2h0LTcwMCBjb2xvci1kYXJrLWdyYXkiLDQsIm5nSWYiXSxbImNsYXNzIiwiaC03MHZoIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciIsNCwibmdJZiJdLFsiY2xhc3MiLCJj'@; put 'bHItY29sLW1kLTEyIiw0LCJuZ0lmIl0sWzEsImQtZmxleCIsImp1c3RpZnktY29udGVudC1jZW50ZXIiXSxbMSwibm8tc3VibWl0dGVkLXRhYmxlcyIsImNhcmQtYmxvY2siLCJkLWZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiwiZmxleC1jb2x1bW4iLCJhbGlnbi1pdGVtcy1jZW50'@; put 'ZXIiXSxbInNoYXBlIiwid2FybmluZy1zdGFuZGFyZCIsInNpemUiLCI2MCIsMSwiaXMtaW5mbyJdLFsxLCJ0ZXh0LWNlbnRlciIsImNvbG9yLWdyYXkiXSxbMSwiY2VudGVyIiwiY2xyLWNvbC1tZC0xMiIsInRleHQtY2VudGVyIl0sWzEsInRleHQtY2VudGVyIiwiZm9udC13ZWlnaHQtNzAw'@; put 'IiwiY29sb3ItZGFyay1ncmF5Il0sWzEsImgtNzB2aCIsImQtZmxleCIsImp1c3RpZnktY29udGVudC1jZW50ZXIiLCJmbGV4LWNvbHVtbiIsImFsaWduLWl0ZW1zLWNlbnRlciJdLFsiY2xhc3MiLCJzcGlubmVyIiw0LCJuZ0lmIl0sWzEsInNwaW5uZXIiXSxbMSwiY2xyLWNvbC1tZC0xMiJd'@; put 'LFsxLCJkYXRhZ3JpZC1jb21wYWN0IiwiZGF0YWdyaWQtY3VzdG9tLWZvb3RlciJdLFszLCJjbHJEZ0ZpZWxkIl0sWyJhcmlhLWxhYmVsIiwiRmlsdGVyIHN1Ym1pdHRlZCBkYXRlIiwzLCJjbHJEZ1N0cmluZ0ZpbHRlciJdLFsiYXJpYS1sYWJlbCIsIkZpbHRlciBzdWJtaXQgcmVhc29uIiwz'@; put 'LCJjbHJEZ1N0cmluZ0ZpbHRlciJdLFsiY2xhc3MiLCJjdXJzb3ItcG9pbnRlciIsMywiY2xpY2siLDQsImNsckRnSXRlbXMiLCJjbHJEZ0l0ZW1zT2YiXSxbMywiY2xyRGdQYWdlU2l6ZSJdLFszLCJjbHJQYWdlU2l6ZU9wdGlvbnMiXSxbMSwiY3Vyc29yLXBvaW50ZXIiLDMsImNsaWNrIl0s'@; put 'WyJyb2xlIiwidG9vbHRpcCIsImFyaWEtbGFiZWwiLCJHbyB0byBzdGFnZWQgZGF0YSBzY3JlZW4iLDEsInJvdyIsImp1c3RpZnktY29udGVudC1hcm91bmQiXSxbMSwiY29sdW1uLWNlbnRlciIsImxpbmtzIiwidG9vbHRpcCIsInRvb2x0aXAtbWQiLCJ0b29sdGlwLWJvdHRvbS1sZWZ0Iiwi'@; put 'Y29sb3ItYmx1ZSIsMywiY2xpY2siXSxbInNoYXBlIiwiY29kZSIsInNpemUiLCIyOCJdLFsxLCJ0b29sdGlwLWNvbnRlbnQiXSxbMSwicC0wIiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciJdLFsiYXJpYS1sYWJlbCIsIkRvd25sb2FkIGF1ZGl0IGZpbGUgZm9yIHRhYmxlIHJl'@; put 'Y29yZCIsMSwiYnRuIiwiYnRuLXN1Y2Nlc3MiLDMsImNsaWNrIl0sWyJzaGFwZSIsImRvd25sb2FkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGQsaCl7MSZkJiYoZGUoMCwiZGl2IiwxKSxndCgxLGV3dCwyLDEsImRpdiIsMikoMix0d3QsMiwwLCJkaXYiLDMpLGhlKCkpLDImZCYmKGZlKCksTWUo'@; put 'Im5nSWYiLCFoLnN1YlJlYWR5KSxmZSgpLE1lKCJuZ0lmIixoLnN1YlJlYWR5KSl9LGRlcGVuZGVuY2llczpbdnUsYmEseG0scjMsUjcsZk8sS2IsbkUscE8sU20seHAsTDcsSmIsTW0sazcsQ20sRDcsV2IsT2wsbThlXSxlbmNhcHN1bGF0aW9uOjJ9KX19cmV0dXJuIGN9KSgpO2NvbnN0IGl3'@; put 'dD0oYyxsKT0+KHtyZWplY3RlZDpjLGFjY2VwdGVkOmx9KTtmdW5jdGlvbiBhd3QoYyxsKXsxJmMmJihkZSgwLCJkaXYiLDEyKSxXdCgxLCJjbHItaWNvbiIsMTMpLGRlKDIsImgzIiwxNCksT2UoMywiVGhlcmUgaXMgbm8gaGlzdG9yeSB0byBzaG93IiksaGUoKSgpKX1mdW5jdGlvbiBzd3Qo'@; put 'YyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJhIiwxNyksRnQoImNsaWNrIixmdW5jdGlvbigpe3d0KGEpO2NvbnN0IGg9TGUoKS4kaW1wbGljaXQsZj1MZSgpO3JldHVybiBDdChmLmdldFRhYmxlKGYuYXBwcm92ZURhdGFbaF0pKX0pLE9lKDEpLGhlKCl9aWYoMiZjKXtjb25zdCBh'@; put 'PUxlKCkuJGltcGxpY2l0LGQ9TGUoKTtmZSgpLFNyKGQuYXBwcm92ZURhdGFbYV0pfX1mdW5jdGlvbiBvd3QoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJkaXYiKSgxLCJhIiwxNyksRnQoImNsaWNrIixmdW5jdGlvbigpe3d0KGEpO2NvbnN0IGg9TGUoKS4kaW1wbGljaXQsZj1M'@; put 'ZSgpO3JldHVybiBDdChmLmdldEJhc2VUYWJsZShmLmFwcHJvdmVEYXRhW2hdKSl9KSxPZSgyLCJWSUVXIiksaGUoKSxkZSgzLCJzcGFuIiksT2UoNCwiIC8gIiksaGUoKSxkZSg1LCJhIiwxNyksRnQoImNsaWNrIixmdW5jdGlvbigpe3d0KGEpO2NvbnN0IGg9TGUoKS4kaW1wbGljaXQsZj1M'@; put 'ZSgpO3JldHVybiBDdChmLmdldEVkaXRUYWJsZShmLmFwcHJvdmVEYXRhW2hdKSl9KSxPZSg2LCJFRElUIiksaGUoKSgpfX1mdW5jdGlvbiBsd3QoYyxsKXtpZigxJmMmJihkZSgwLCJzcGFuIiksT2UoMSksaGUoKSksMiZjKXtjb25zdCBhPUxlKCkuJGltcGxpY2l0LGQ9TGUoKTtmZSgpLFNy'@; put 'KGQuYXBwcm92ZURhdGFbYV0pfX1mdW5jdGlvbiBjd3QoYyxsKXtpZigxJmMmJihkZSgwLCJ0ciIpKDEsInRkIiw2KSxPZSgyKSxoZSgpLGRlKDMsInRkIiw2KSxndCg0LHN3dCwyLDEsImEiLDE1KSg1LG93dCw3LDAsImRpdiIsMTYpKDYsbHd0LDIsMSwic3BhbiIsMTYpLGhlKCkoKSksMiZj'@; put 'KXtjb25zdCBhPWwuJGltcGxpY2l0LGQ9bC5pbmRleDtmZSgyKSxTcihhKSxmZSgyKSxNZSgibmdJZiIsZDwxKSxmZSgpLE1lKCJuZ0lmIixkPDImJmQ+PTEpLGZlKCksTWUoIm5nSWYiLGQ+PTIpfX1mdW5jdGlvbiB1d3QoYyxsKXsxJmMmJihkZSgwLCJzcGFuIiwyMCksT2UoMSwiIExvYWRp'@; put 'bmcuLi4gIiksaGUoKSl9ZnVuY3Rpb24gZHd0KGMsbCl7MSZjJiYoZGUoMCwiZGl2IikoMSwiaDMiKSxPZSgyLCJMb2FkaW5nIGhpc3RvcnkiKSxoZSgpKCkpfWZ1bmN0aW9uIGh3dChjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIsMTgpLGd0KDEsdXd0LDIsMCwic3BhbiIsMTkpKDIsZHd0LDMs'@; put 'MCwiZGl2IiwxNiksaGUoKSksMiZjKXtjb25zdCBhPUxlKCk7ZmUoKSxNZSgibmdJZiIsIWEubG9hZGVkKSxmZSgpLE1lKCJuZ0lmIiwhYS5sb2FkZWQpfX1mdW5jdGlvbiBmd3QoYyxsKXsxJmMmJihkZSgwLCJoMyIsMjgpLE9lKDEsIkhJU1RPUlkiKSxoZSgpKX1mdW5jdGlvbiBwd3QoYyxs'@; put 'KXtpZigxJmMmJihkZSgwLCJwIiwyOSksT2UoMSksaGUoKSksMiZjKXtjb25zdCBhPUxlKDIpO2ZlKCksTHIoIiBUbyB1bmxvY2sgbW9yZSB0aGFuICIsYS5saWNlbmNlU3RhdGUudmFsdWUuaGlzdG9yeV9yb3dzX2FsbG93ZWQsIiByZWNvcmRzLCBjb250YWN0IHN1cHBvcnRAZGF0YWNvbnRy'@; put 'b2xsZXIuaW8gIil9fWZ1bmN0aW9uIGd3dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImNsci1kZy1yb3ciLDM5KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7Y29uc3QgaD13dChhKS4kaW1wbGljaXQ7cmV0dXJuIEN0KExlKDMpLmdldEFwcHJJbmRleChoKSl9KSxkZSgxLCJjbHIt'@; put 'ZGctY2VsbCIsNDApKDIsImEiLDQxKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7Y29uc3QgaD13dChhKS4kaW1wbGljaXQ7cmV0dXJuIEN0KExlKDMpLmdldEJhc2VUYWJsZShoLmJhc2V0YWJsZSkpfSksT2UoMyksaGUoKSgpLGRlKDQsImNsci1kZy1jZWxsIiw0MiksT2UoNSksaGUoKSxkZSg2'@; put 'LCJjbHItZGctY2VsbCIsNDApLE9lKDcpLGhlKCksZGUoOCwiY2xyLWRnLWNlbGwiLDQwKSxPZSg5KSxoZSgpLGRlKDEwLCJjbHItZGctY2VsbCIsNDApLE9lKDExKSxoZSgpLGRlKDEyLCJjbHItZGctY2VsbCIsNDApLE9lKDEzKSxoZSgpLGRlKDE0LCJjbHItZGctY2VsbCIsNDMpKDE1LCJi'@; put 'dXR0b24iLDQ0KSxGdCgiY2xpY2siLGZ1bmN0aW9uKGgpe2NvbnN0IGY9d3QoYSkuJGltcGxpY2l0O3JldHVybiBMZSgzKS5kb3dubG9hZChmLnRhYmxlSWQpLEN0KGguc3RvcFByb3BhZ2F0aW9uKCkpfSksV3QoMTYsImNsci1pY29uIiw0NSksaGUoKSgpKCl9aWYoMiZjKXtjb25zdCBhPWwu'@; put 'JGltcGxpY2l0O2ZlKDMpLFNyKGEuYmFzZXRhYmxlKSxmZSgpLE1lKCJuZ0NsYXNzIixjcCg3LGl3dCwiUkVKRUNURUQiPT09YS5zdGF0dXMsIkFQUFJPVkVEIj09PWEuc3RhdHVzKSksZmUoKSxTcihhLnN0YXR1cyksZmUoMiksU3IoYS5zdWJtaXR0ZXIpLGZlKDIpLFNyKGEuc3VibWl0dGVk'@; put 'UmVhc29uKSxmZSgyKSxTcihhLnN1Ym1pdHRlZCksZmUoMiksU3IoYS5yZXZpZXdlZCl9fWZ1bmN0aW9uIG13dChjLGwpe2lmKDEmYyYmKGRlKDAsImNsci1kYXRhZ3JpZCIsMzApKDEsImNsci1kZy1jb2x1bW4iLDMxKSxPZSgyLCIgQkFTRV9UQUJMRSAiKSxXdCgzLCJjbHItZGctc3RyaW5n'@; put 'LWZpbHRlciIsMzIpLGhlKCksZGUoNCwiY2xyLWRnLWNvbHVtbiIsMzEpLE9lKDUsIiBTVEFUVVMgIiksV3QoNiwiY2xyLWRnLXN0cmluZy1maWx0ZXIiLDMzKSxoZSgpLGRlKDcsImNsci1kZy1jb2x1bW4iLDMxKSxPZSg4LCIgU1VCTUlUVEVSICIpLFd0KDksImNsci1kZy1zdHJpbmctZmls'@; put 'dGVyIiwzNCksaGUoKSxkZSgxMCwiY2xyLWRnLWNvbHVtbiIsMzEpLE9lKDExLCIgU1VCTUlUIFJFQVNPTiAiKSxXdCgxMiwiY2xyLWRnLXN0cmluZy1maWx0ZXIiLDM1KSxoZSgpLGRlKDEzLCJjbHItZGctY29sdW1uIiwzMSksT2UoMTQsIiBTVUJNSVRURUQgIiksV3QoMTUsImNsci1kZy1z'@; put 'dHJpbmctZmlsdGVyIiwzNiksaGUoKSxkZSgxNiwiY2xyLWRnLWNvbHVtbiIsMzEpLE9lKDE3LCIgQVBQUk9WRUQgLyBSRUpFQ1RFRCAiKSxXdCgxOCwiY2xyLWRnLXN0cmluZy1maWx0ZXIiLDM3KSxoZSgpLGRlKDE5LCJjbHItZGctY29sdW1uIiksT2UoMjAsIkRPV05MT0FEIiksaGUoKSxn'@; put 'dCgyMSxnd3QsMTcsMTAsImNsci1kZy1yb3ciLDM4KSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoMik7ZmUoKSxNZSgiY2xyRGdGaWVsZCIsImJhc2V0YWJsZSIpLGZlKDIpLE1lKCJjbHJEZ1N0cmluZ0ZpbHRlciIsYS5iYXNlVGFibGVGaWx0ZXIpLGZlKCksTWUoImNsckRnRmllbGQiLCJzdGF0'@; put 'dXMiKSxmZSgyKSxNZSgiY2xyRGdTdHJpbmdGaWx0ZXIiLGEuc3RhdHVzRmlsdGVyKSxmZSgpLE1lKCJjbHJEZ0ZpZWxkIiwic3VibWl0dGVyIiksZmUoMiksTWUoImNsckRnU3RyaW5nRmlsdGVyIixhLnN1Ym1pdHRlckZpbHRlciksZmUoKSxNZSgiY2xyRGdGaWVsZCIsInN1Ym1pdHRlZFJl'@; put 'YXNvbiIpLGZlKDIpLE1lKCJjbHJEZ1N0cmluZ0ZpbHRlciIsYS5zdWJtaXRSZWFzb25GaWx0ZXIpLGZlKCksTWUoImNsckRnRmllbGQiLCJzdWJtaXR0ZWQiKSxmZSgyKSxNZSgiY2xyRGdTdHJpbmdGaWx0ZXIiLGEuc3VibWl0dGVkRmlsdGVyKSxmZSgpLE1lKCJjbHJEZ0ZpZWxkIiwicmV2'@; put 'aWV3ZWQiKSxmZSgyKSxNZSgiY2xyRGdTdHJpbmdGaWx0ZXIiLGEucmV2aWV3ZWRGaWx0ZXIpLGZlKDMpLE1lKCJjbHJEZ0l0ZW1zT2YiLGEuaGlzdG9yeSl9fWZ1bmN0aW9uIHZ3dChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImJ1dHRvbiIsNDYpLEZ0KCJjbGljayIsZnVuY3Rp'@; put 'b24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoMikubG9hZERhdGEoKSl9KSxPZSgxKSxoZSgpfWlmKDImYyl7Y29uc3QgYT1MZSgyKTtNZSgiY2xyTG9hZGluZyIsYS5sb2FkaW5nTW9yZSksZmUoKSxMcigiIExvYWQgIixhLnJvd3NMZWZ0VG9Mb2FkLCIgbW9yZSAiKX19ZnVuY3Rpb24geXd0KGMs'@; put 'bCl7aWYoMSZjJiYoZGUoMCwiZGl2IiwyMSkoMSwiZGl2IiwyMiksZ3QoMixmd3QsMiwwLCJoMyIsMjMpKDMscHd0LDIsMSwicCIsMjQpLGhlKCksZ3QoNCxtd3QsMjIsMTMsImNsci1kYXRhZ3JpZCIsMjUpLGRlKDUsImRpdiIsMjYpLGd0KDYsdnd0LDIsMiwiYnV0dG9uIiwyNyksaGUoKSgp'@; put 'KSwyJmMpe2NvbnN0IGE9TGUoKTtmZSgyKSxNZSgibmdJZiIsYS5sb2FkZWQpLGZlKCksTWUoIm5nSWYiLGEubGljZW5jZVN0YXRlLnZhbHVlLmhpc3Rvcnlfcm93c19hbGxvd2VkIT09YS5JbmZpbml0eSksZmUoKSxNZSgibmdJZiIsYS5sb2FkZWQpLGZlKDIpLE1lKCJuZ0lmIixhLmxpY2Vu'@; put 'Y2VTdGF0ZS52YWx1ZS5oaXN0b3J5X3Jvd3NfYWxsb3dlZD09PWEuSW5maW5pdHkmJmEucm93c0xlZnRUb0xvYWQ+MCl9fWNsYXNzIGJ3dHthY2NlcHRzKGwsYSl7cmV0dXJuIGwuYmFzZXRhYmxlLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihhLnRvTG93ZXJDYXNlKCkpPj0wfX1jbGFzcyBfd3R7'@; put 'YWNjZXB0cyhsLGEpe3JldHVybiBsLnN0YXR1cy50b0xvd2VyQ2FzZSgpLmluZGV4T2YoYS50b0xvd2VyQ2FzZSgpKT49MH19Y2xhc3Mgd3d0e2FjY2VwdHMobCxhKXtyZXR1cm4gbC5zdWJtaXR0ZXIudG9Mb3dlckNhc2UoKS5pbmRleE9mKGEudG9Mb3dlckNhc2UoKSk+PTB9fWNsYXNzIEN3'@; put 'dHthY2NlcHRzKGwsYSl7cmV0dXJuIGwuc3VibWl0dGVkUmVhc29uLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihhLnRvTG93ZXJDYXNlKCkpPj0wfX1jbGFzcyBTd3R7YWNjZXB0cyhsLGEpe3JldHVybiBsLnN1Ym1pdHRlZC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoYS50b0xvd2VyQ2FzZSgpKT49'@; put 'MH19Y2xhc3MgTXd0e2FjY2VwdHMobCxhKXtyZXR1cm4gbC5yZXZpZXdlZC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoYS50b0xvd2VyQ2FzZSgpKT49MH19Y29uc3QgeHd0PVt7cGF0aDoiYXBwcm92ZSIsY29tcG9uZW50OmpfdH0se3BhdGg6ImFwcHJvdmVEZXQvOnRhYmxlSWQiLGNvbXBvbmVu'@; put 'dDptOGV9LHtwYXRoOiJzdWJtaXR0ZWQiLGNvbXBvbmVudDp2OGV9LHtwYXRoOiJzdWJtaXR0ZWQvOnRhYmxlSWQiLGNvbXBvbmVudDp2OGV9LHtwYXRoOiJoaXN0b3J5Iixjb21wb25lbnQ6KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmLHYpe3RoaXMubGljZW5jZVNlcnZpY2U9'@; put 'YSx0aGlzLnNhc1N0b3JlU2VydmljZT1kLHRoaXMuZXZlbnRTZXJ2aWNlPWgsdGhpcy5yb3V0ZXI9Zix0aGlzLnNhc1NlcnZpY2U9dix0aGlzLmhpc3Rvcnk9W10sdGhpcy50YWJsZVRpdGxlcz1bXSx0aGlzLmhpc3RvcnlBcnI9W10sdGhpcy5sb2FkZWQ9ITEsdGhpcy5pdGVtc051bT0xMCx0'@; put 'aGlzLm9wZW5Nb2RhbD0hMSx0aGlzLm5vRGF0YT0hMSx0aGlzLmFwcHJvdmVEYXRhPXt9LHRoaXMuc2FzanNDb25maWc9bmV3IHloLlNBU2pzQ29uZmlnLHRoaXMuYmFzZVRhYmxlRmlsdGVyPW5ldyBid3QsdGhpcy5zdGF0dXNGaWx0ZXI9bmV3IF93dCx0aGlzLnN1Ym1pdHRlckZpbHRlcj1u'@; put 'ZXcgd3d0LHRoaXMuc3VibWl0UmVhc29uRmlsdGVyPW5ldyBDd3QsdGhpcy5zdWJtaXR0ZWRGaWx0ZXI9bmV3IFN3dCx0aGlzLnJldmlld2VkRmlsdGVyPW5ldyBNd3QsdGhpcy5oaXN0UGFyYW1zPXtISVNUOjAsU1RBUlRST1c6MSxOT0JTOi0xfSx0aGlzLmxvYWRpbmdNb3JlPSExLHRoaXMu'@; put 'bGljZW5jZVN0YXRlPXRoaXMubGljZW5jZVNlcnZpY2UubGljZW5jZVN0YXRlLHRoaXMuSW5maW5pdHk9MS8wLHRoaXMuc2FzanNDb25maWc9dGhpcy5zYXNTZXJ2aWNlLmdldFNhc2pzQ29uZmlnKCl9Z2V0VGFibGUoYSl7dGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL3N0YWdlLyIrYSl9'@; put 'Z2V0QmFzZVRhYmxlKGEpe3RoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi92aWV3L2RhdGEvIithKX1nZXRFZGl0VGFibGUoYSl7dGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL2VkaXRvci8iK2EpfWdldEFwcHJJbmRleChhKXtjb25zdCBkPXRoaXMuaGlzdG9yeUFyci5maW5kSW5kZXgo'@; put 'aD0+aC5UQUJMRV9JRD09PWEudGFibGVJZCk7ZD4tMSYmKHRoaXMuYXBwcm92ZURhdGE9dGhpcy5oaXN0b3J5QXJyW2RdLHRoaXMub3Blbk1vZGFsPSEwKX1nZXQgcm93c0xlZnRUb0xvYWQoKXtjb25zdCBhPXRoaXMuaGlzdFBhcmFtcy5OT0JTLXRoaXMuaGlzdG9yeS5sZW5ndGgsZD10aGlz'@; put 'Lmhpc3RQYXJhbXMuSElTVDtyZXR1cm4gYTw9MD8wOmE+ZD9kOmF9ZG93bmxvYWQoYSl7bGV0IGQ9dGhpcy5zYXNTZXJ2aWNlLmdldFNhc2pzQ29uZmlnKCksaD1kLnNlcnZlclVybCxmPWQuYXBwTG9jLHY9dGhpcy5zYXNTZXJ2aWNlLmdldEV4ZWN1dGlvblBhdGgoKTt3aW5kb3cub3Blbiho'@; put 'K3YrIi8/X3Byb2dyYW09IitmKyIvc2VydmljZXMvYXVkaXRvcnMvZ2V0YXVkaXRmaWxlJnRhYmxlPSIrYSsiJl9jb250ZXh0bmFtZT0iK3RoaXMuc2FzanNDb25maWcuY29udGV4dE5hbWUpfWxvYWREYXRhKCl7dmFyIGE9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXtsZXQgZD17U1RBUlRS'@; put 'T1c6YS5oaXN0UGFyYW1zLkhJU1QrYS5oaXN0UGFyYW1zLlNUQVJUUk9XfTthLmxvYWRpbmdNb3JlPSEwO3RyeXtsZXQgZixoPXlpZWxkIGEuc2FzU3RvcmVTZXJ2aWNlLmdldEhpc3RvcnkoZCwiQnJvd3NlclBhcmFtcyIsImFwcHJvdmVycy9nZXRoaXN0b3J5Iik7YS5sb2FkaW5nTW9yZT0h'@; put 'MSxhLmhpc3RQYXJhbXM9aC5oaXN0cGFyYW1zWzBdO2NvbnN0IHY9aC5mcm9tc2FzLnNsaWNlKDAsYS5saWNlbmNlU3RhdGUudmFsdWUuaGlzdG9yeV9yb3dzX2FsbG93ZWQpO2lmKHYubGVuZ3RoPjApe2NvbnN0IE09djthLmhpc3RvcnlBcnI9dixmPU9iamVjdC5rZXlzKE1bMF0pLGEudGFi'@; put 'bGVUaXRsZXM9ZjtsZXQgST12Lm1hcChmdW5jdGlvbihHKXtyZXR1cm57dGFibGVJZDpHLlRBQkxFX0lELHN1Ym1pdHRlcjpHLlNVQk1JVFRFUixzdWJtaXR0ZWRSZWFzb246Ry5TVUJNSVRURURfUkVBU09OX1RYVCxzdWJtaXR0ZWQ6Ry5TVUJNSVRURUQsc3RhdHVzOkcuU1RBVFVTLHJldmll'@; put 'd1JlYXNvbjpHLlJFVklFV19SRUFTT05fVFhULHJldmlld2VyOkcuUkVWSUVXRVIscmV2aWV3ZWQ6Ry5SRVZJRVdFRCxudW1PZkFwcHJvdmFsczpHLk5VTV9PRl9BUFBST1ZBTFNfUkVRVUlSRUQsYmFzZXRhYmxlOkcuQkFTRV9UQUJMRX19KTthLmhpc3RvcnkucHVzaCguLi5JKSxhLmxvYWRl'@; put 'ZD0hMH1lbHNlIGEubG9hZGVkPSEwLDA9PT1hLmhpc3RvcnkubGVuZ3RoJiYoYS5ub0RhdGE9ITApfWNhdGNoKGgpe2EuZXZlbnRTZXJ2aWNlLmNhdGNoUmVzcG9uc2VFcnJvcigiYXBwcm92ZXJzL2dldGhpc3RvcnkiLGgpLGEubG9hZGluZ01vcmU9ITF9fSkoKX1uZ09uSW5pdCgpe3ZhciBh'@; put 'PXRoaXM7cmV0dXJuIFEoZnVuY3Rpb24qKCl7YS5sb2FkRGF0YSgpfSkoKX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKSgkZShjMSksJGUoSWgpLCRlKG1jKSwkZShMbyksJGUoVm8pKX19c3RhdGlje3RoaXMuXHUwMjc1Y21wPU5yKHt0eXBlOmMs'@; put 'c2VsZWN0b3JzOltbImFwcC1oaXN0b3J5Il1dLGhvc3RBdHRyczpbMSwiY29udGVudC1jb250YWluZXIiXSxkZWNsczoyMCx2YXJzOjYsY29uc3RzOltbMSwiY29udGVudC1hcmVhIl0sWyJpZCIsIm5vRGF0YUNvbnRhaW5lciIsImNsYXNzIiwiY2FyZC1ibG9jayBkLWZsZXgganVzdGlmeS1j'@; put 'b250ZW50LWNlbnRlciBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIiLDQsIm5nSWYiXSxbMywiY2xyTW9kYWxPcGVuQ2hhbmdlIiwiY2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxTaXplIl0sWzEsIm1vZGFsLXRpdGxlIl0sWzEsIm1vZGFsLWJvZHkiXSxbMSwidGFibGUiXSxbMSwibGVm'@; put 'dCJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwibW9kYWwtZm9vdGVyIl0sWyJ0eXBlIiwiYnV0dG9uIiwiYXJpYS1sYWJlbCIsIkNsb3NlIG1vZGFsIiwxLCJidG4iLCJidG4tb3V0bGluZSIsMywiY2xpY2siXSxbImNsYXNzIiwiaC03MHZoIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2Vu'@; put 'dGVyIGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciIsNCwibmdJZiJdLFsiY2xhc3MiLCJjYXJkIiw0LCJuZ0lmIl0sWyJpZCIsIm5vRGF0YUNvbnRhaW5lciIsMSwiY2FyZC1ibG9jayIsImQtZmxleCIsImp1c3RpZnktY29udGVudC1jZW50ZXIiLCJmbGV4LWNvbHVtbiIsImFsaWdu'@; put 'LWl0ZW1zLWNlbnRlciJdLFsic2hhcGUiLCJ3YXJuaW5nLXN0YW5kYXJkIiwic2l6ZSIsIjYwIiwxLCJpcy1pbmZvIl0sWzEsInRleHQtY2VudGVyIiwiY29sb3ItZ3JheSJdLFsiY2xhc3MiLCJjdXJzb3ItcG9pbnRlciB0YWJsZS1saW5rIiwzLCJjbGljayIsNCwibmdJZiJdLFs0LCJuZ0lm'@; put 'Il0sWzEsImN1cnNvci1wb2ludGVyIiwidGFibGUtbGluayIsMywiY2xpY2siXSxbMSwiaC03MHZoIiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciIsImZsZXgtY29sdW1uIiwiYWxpZ24taXRlbXMtY2VudGVyIl0sWyJjbGFzcyIsInNwaW5uZXIiLDQsIm5nSWYiXSxbMSwic3Bp'@; put 'bm5lciJdLFsxLCJjYXJkIl0sWzEsImNhcmQtaGVhZGVyIl0sWyJjbGFzcyIsImNlbnRlciBjbHItY29sLW1kLTEyIHRleHQtY2VudGVyIiw0LCJuZ0lmIl0sWyJjbGFzcyIsInRleHQtY2VudGVyIGZvbnQtd2VpZ2h0LTcwMCBjb2xvci1kYXJrLWdyYXkiLDQsIm5nSWYiXSxbImNsYXNzIiwi'@; put 'ZGF0YWdyaWQtaGlzdG9yeSBkYXRhZ3JpZC1jdXN0b20tZm9vdGVyIiw0LCJuZ0lmIl0sWzEsImxvYWQtbW9yZSIsImQtZmxleCIsImNsci1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiwiY2xyLWFsaWduLWl0ZW1zLWNlbnRlciJdLFsiY2xhc3MiLCJidG4gYnRuLXN1Y2Nlc3MiLDMsImNsckxv'@; put 'YWRpbmciLCJjbGljayIsNCwibmdJZiJdLFsxLCJjZW50ZXIiLCJjbHItY29sLW1kLTEyIiwidGV4dC1jZW50ZXIiXSxbMSwidGV4dC1jZW50ZXIiLCJmb250LXdlaWdodC03MDAiLCJjb2xvci1kYXJrLWdyYXkiXSxbMSwiZGF0YWdyaWQtaGlzdG9yeSIsImRhdGFncmlkLWN1c3RvbS1mb290'@; put 'ZXIiXSxbMywiY2xyRGdGaWVsZCJdLFsiYXJpYS1sYWJlbCIsIkZpbHRlciBiYXNlIHRhYmxlIiwzLCJjbHJEZ1N0cmluZ0ZpbHRlciJdLFsiYXJpYS1sYWJlbCIsIkZpbHRlciBzdGF0dXMiLDMsImNsckRnU3RyaW5nRmlsdGVyIl0sWyJhcmlhLWxhYmVsIiwiRmlsdGVyIHN1Ym1pdHRlciIs'@; put 'MywiY2xyRGdTdHJpbmdGaWx0ZXIiXSxbImFyaWEtbGFiZWwiLCJGaWx0ZXIgc3VibWl0IHJlYXNvbiIsMywiY2xyRGdTdHJpbmdGaWx0ZXIiXSxbImFyaWEtbGFiZWwiLCJGaWx0ZXIgc3VibWl0dGVkIGRhdGUiLDMsImNsckRnU3RyaW5nRmlsdGVyIl0sWyJhcmlhLWxhYmVsIiwiRmlsdGVy'@; put 'IHJldmlld2VkIGRhdGUiLDMsImNsckRnU3RyaW5nRmlsdGVyIl0sWzMsImNsaWNrIiw0LCJjbHJEZ0l0ZW1zIiwiY2xyRGdJdGVtc09mIl0sWzMsImNsaWNrIl0sWzEsInZlckNlbnRlciJdLFsxLCJidG4iLCJidG4tc20iLCJidG4tbGluayIsIm0tMCIsMywiY2xpY2siXSxbMSwidmVyQ2Vu'@; put 'dGVyIiwzLCJuZ0NsYXNzIl0sWzEsInZlckNlbnRlciIsInAtMCIsImQtZmxleCIsImp1c3RpZnktY29udGVudC1jZW50ZXIiXSxbImFyaWEtbGFiZWwiLCJEb3dubG9hZCBhdWRpdCBmaWxlIiwxLCJidG4iLCJidG4tc3VjY2VzcyIsMywiY2xpY2siXSxbInNoYXBlIiwiZG93bmxvYWQiXSxb'@; put 'MSwiYnRuIiwiYnRuLXN1Y2Nlc3MiLDMsImNsaWNrIiwiY2xyTG9hZGluZyJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihkLGgpezEmZCYmKGRlKDAsImRpdiIsMCksZ3QoMSxhd3QsNCwwLCJkaXYiLDEpLGRlKDIsImNsci1tb2RhbCIsMikscGkoImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24o'@; put 'dil7cmV0dXJuIGdpKGgub3Blbk1vZGFsLHYpfHwoaC5vcGVuTW9kYWw9diksdn0pLGRlKDMsImg0IiwzKSxPZSg0LCJBcHByb3ZhbCBkZXRhaWxzIiksaGUoKSxkZSg1LCJkaXYiLDQpKDYsInRhYmxlIiw1KSg3LCJ0aGVhZCIpKDgsInRyIikoOSwidGgiLDYpLE9lKDEwLCJOYW1lIiksaGUo'@; put 'KSxkZSgxMSwidGgiLDYpLE9lKDEyLCJWYWx1ZSIpLGhlKCkoKSgpLGRlKDEzLCJ0Ym9keSIpLGd0KDE0LGN3dCw3LDQsInRyIiw3KSxoZSgpKCkoKSxkZSgxNSwiZGl2Iiw4KSgxNiwiYnV0dG9uIiw5KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGgub3Blbk1vZGFsPSExfSksT2Uo'@; put 'MTcsIiBPSyAiKSxoZSgpKCkoKSxndCgxOCxod3QsMywyLCJkaXYiLDEwKSgxOSx5d3QsNyw0LCJkaXYiLDExKSxoZSgpKSwyJmQmJihmZSgpLE1lKCJuZ0lmIixoLm5vRGF0YSksZmUoKSxmaSgiY2xyTW9kYWxPcGVuIixoLm9wZW5Nb2RhbCksTWUoImNsck1vZGFsU2l6ZSIsInhsIiksZmUo'@; put 'MTIpLE1lKCJuZ0Zvck9mIixoLnRhYmxlVGl0bGVzKSxmZSg0KSxNZSgibmdJZiIsIWgubG9hZGVkKSxmZSgpLE1lKCJuZ0lmIiwhaC5ub0RhdGEmJmgubG9hZGVkKSl9LGRlcGVuZGVuY2llczpbdnUsUXMsYmEseG0scjMsUjcsS2IsU20seHAsTDcsSmIsTW0sazcsQ20sRDcsV2IsT2wscnUs'@; put 'WXUsVjAsSDJdLGVuY2Fwc3VsYXRpb246Mn0pfX1yZXR1cm4gY30pKCl9XTtsZXQgRXd0PSgoKT0+e2NsYXNzIGN7c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSl9c3RhdGlje3RoaXMu'@; put 'XHUwMjc1aW5qPUFyKHtpbXBvcnRzOltMYSxCYy5mb3JDaGlsZCh4d3QpLEJjXX0pfX1yZXR1cm4gY30pKCksVHd0PSgoKT0+e2NsYXNzIGN7c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NW1vZD1BaSh7dHlwZTpj'@; put 'fSl9c3RhdGlje3RoaXMuXHUwMjc1aW5qPUFyKHtpbXBvcnRzOltMYSxrYyxFd3QsQjAsWjksY2YseHddfSl9fXJldHVybiBjfSkoKSxBd3Q9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe31uZ09uSW5pdCgpe31zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5l'@; put 'dyhkfHxjKX19c3RhdGlje3RoaXMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImFwcC1yZXZpZXctcm91dGUiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGQsaCl7MSZkJiZXdCgwLCJyb3V0ZXIt'@; put 'b3V0bGV0Iil9LGRlcGVuZGVuY2llczpbbmddLGVuY2Fwc3VsYXRpb246Mn0pfX1yZXR1cm4gY30pKCk7Y29uc3Qga3d0PShjLGwpPT4oe3JlamVjdGVkOmMsYWNjZXB0ZWQ6bH0pO2Z1bmN0aW9uIER3dChjLGwpezEmYyYmKGRlKDAsInNwYW4iLDYpLE9lKDEsIiBMb2FkaW5nLi4uICIpLGhl'@; put 'KCkpfWZ1bmN0aW9uIEl3dChjLGwpezEmYyYmKGRlKDAsImRpdiIpKDEsImgzIiksT2UoMiwiTG9hZGluZyBzdWJtaXR0ZWQgdGFibGUiKSxoZSgpKCkpfWZ1bmN0aW9uIFJ3dChjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIsNCksZ3QoMSxEd3QsMiwwLCJzcGFuIiw1KSgyLEl3dCwzLDAsImRp'@; put 'diIsMyksaGUoKSksMiZjKXtjb25zdCBhPUxlKCk7ZmUoKSxNZSgibmdJZiIsIWEubG9hZGVkKSxmZSgpLE1lKCJuZ0lmIiwhYS5sb2FkZWQpfX1mdW5jdGlvbiBMd3QoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJidXR0b24iLDI4KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0'@; put 'dXJuIHd0KGEpLEN0KExlKDIpLmFwcHJvdmVUYWJsZVNjcmVlbigpKX0pLE9lKDEsIiBBcHByb3ZlICIpLGhlKCl9aWYoMiZjKXtjb25zdCBhPUxlKDIpO01lKCJkaXNhYmxlZCIsIkFQUFJPVkVEIj09PShudWxsPT1hLnRhYmxlRGV0YWlscz9udWxsOmEudGFibGVEZXRhaWxzLlJFVklFV19T'@; put 'VEFUVVNfSUQpfHwiUkVKRUNURUQiPT09KG51bGw9PWEudGFibGVEZXRhaWxzP251bGw6YS50YWJsZURldGFpbHMuUkVWSUVXX1NUQVRVU19JRCkpKCJkaXNhYmxlZCIsYS5yZXZlcnRpbmdDaGFuZ2VzKX19ZnVuY3Rpb24gT3d0KGMsbCl7MSZjJiYoZGUoMCwiY2xyLXRvb2x0aXAtY29udGVu'@; put 'dCIsMzEpKDEsInNwYW4iKSxPZSgyLCIgUmV2ZXJ0IHRoaXMgYW5kIGFsbCBzdWJzZXF1ZW50IGNoYW5nZXMgIiksaGUoKSgpKX1mdW5jdGlvbiBQd3QoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJidXR0b24iLDI5KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEp'@; put 'LEN0KExlKDIpLnJldmVydENoYW5nZXMoKSl9KSxPZSgxLCIgUkVWRVJUICIpLGd0KDIsT3d0LDMsMCwiY2xyLXRvb2x0aXAtY29udGVudCIsMzApLGhlKCl9MiZjJiZNZSgiY2xyTG9hZGluZyIsTGUoMikucmV2ZXJ0aW5nQ2hhbmdlcyl9ZnVuY3Rpb24gRnd0KGMsbCl7aWYoMSZjKXtjb25z'@; put 'dCBhPU9uKCk7ZGUoMCwiZGl2IikoMSwiZGl2Iiw3KSgyLCJkaXYiLDgpKDMsImg0Iiw5KSxPZSg0LCJTdGFnZWQgRGF0YSIpLGhlKCkoKSgpLGRlKDUsImRpdiIsMTApKDYsImRpdiIsMTEpKDcsImRpdiIsMTIpKDgsImRpdiIsOCksT2UoOSwiQmFzaWMgU3VibWl0dGVkIERldGFpbHMiKSxo'@; put 'ZSgpKCksZGUoMTAsImRpdiIpKDExLCJzcGFuIiksT2UoMTIsIlRhYmxlIElkOiIpLGhlKCksZGUoMTMsInN0cm9uZyIpKDE0LCJzcGFuIiksT2UoMTUpLGhlKCkoKSgpLGRlKDE2LCJkaXYiKSgxNywic3BhbiIpLE9lKDE4LCJCYXNlIFRhYmxlOiIpLGhlKCksZGUoMTksImEiLDEzKSxGdCgi'@; put 'Y2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKCkudmlld2VyVGFibGVTY3JlZW4oKSl9KSxPZSgyMCksaGUoKSgpLGRlKDIxLCJkaXYiKSgyMiwic3BhbiIpLE9lKDIzLCJTdWJtaXQgRGF0ZToiKSxoZSgpLGRlKDI0LCJzcGFuIiwxNCksT2UoMjUpLGhlKCkoKSxkZSgyNiwi'@; put 'ZGl2IikoMjcsInNwYW4iKSxPZSgyOCwiUmV2aWV3IFN0YXR1czoiKSxoZSgpLGRlKDI5LCJzcGFuIiwxNSksT2UoMzApLGhlKCkoKSgpLGRlKDMxLCJkaXYiLDE2KSgzMiwiZGl2IiwxMikoMzMsImRpdiIsOCksT2UoMzQsIkFjdGlvbnMiKSxoZSgpKCksZGUoMzUsImRpdiIsMTcpKDM2LCJk'@; put 'aXYiLDE4KSgzNywiYnV0dG9uIiwxOSksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgpLnZpZXdlclRhYmxlU2NyZWVuKCkpfSksT2UoMzgsIiBWaWV3IGJhc2UgdGFibGUgIiksaGUoKSxndCgzOSxMd3QsMiwyLCJidXR0b24iLDIwKSxkZSg0MCwiYnV0dG9uIiwy'@; put 'MSksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgpLmdvQmFjaygpKX0pLE9lKDQxLCIgRWRpdCBiYXNlIHRhYmxlICIpLGhlKCksZGUoNDIsImJ1dHRvbiIsMjIpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKCk7cmV0dXJuIEN0KGguZG93'@; put 'bmxvYWQobnVsbD09aC50YWJsZURldGFpbHM/bnVsbDpoLnRhYmxlRGV0YWlscy5UQUJMRV9JRCkpfSksV3QoNDMsImNsci1pY29uIiwyMyksaGUoKSxkZSg0NCwiY2xyLXRvb2x0aXAiKSxndCg0NSxQd3QsMywxLCJidXR0b24iLDI0KSxoZSgpKCkoKSgpKCksZGUoNDYsImRpdiIsMjUpLFd0'@; put 'KDQ3LCJob3QtdGFibGUiLDI2KSxoZSgpLFd0KDQ4LCJkaXYiLDI3KSxoZSgpfWlmKDImYyl7Y29uc3QgYT1MZSgpO2ZlKDE1KSxMcigiICIsbnVsbD09YS50YWJsZURldGFpbHM/bnVsbDphLnRhYmxlRGV0YWlscy5UQUJMRV9JRCwiIiksZmUoNSksTHIoIiAiLG51bGw9PWEudGFibGVEZXRh'@; put 'aWxzP251bGw6YS50YWJsZURldGFpbHMuQkFTRV9UQUJMRSwiICIpLGZlKDUpLExyKCIgIixudWxsPT1hLnRhYmxlRGV0YWlscz9udWxsOmEudGFibGVEZXRhaWxzLlNVQk1JVFRFRF9PTl9EVFRNLCIgIiksZmUoNCksTWUoIm5nQ2xhc3MiLGNwKDEyLGt3dCwiUkVKRUNURUQiPT09KG51bGw9'@; put 'PWEudGFibGVEZXRhaWxzP251bGw6YS50YWJsZURldGFpbHMuUkVWSUVXX1NUQVRVU19JRCksIkFQUFJPVkVEIj09PShudWxsPT1hLnRhYmxlRGV0YWlscz9udWxsOmEudGFibGVEZXRhaWxzLlJFVklFV19TVEFUVVNfSUQpKSksaHIoImFyaWEtbGFiZWwiLCJSZXZpZXcgc3RhdHVzOiAiKyhu'@; put 'dWxsPT1hLnRhYmxlRGV0YWlscz9udWxsOmEudGFibGVEZXRhaWxzLlJFVklFV19TVEFUVVNfSUQpKSxmZSgpLExyKCIgIixudWxsPT1hLnRhYmxlRGV0YWlscz9udWxsOmEudGFibGVEZXRhaWxzLlJFVklFV19TVEFUVVNfSUQsIiAiKSxmZSg3KSxNZSgiZGlzYWJsZWQiLGEucmV2ZXJ0aW5n'@; put 'Q2hhbmdlcyksZmUoMiksTWUoIm5nSWYiLCJZRVMiIT09KG51bGw9PWEudGFibGVEZXRhaWxzP251bGw6YS50YWJsZURldGFpbHMuQUxMT1dfUkVTVE9SRSkpLGZlKCksTWUoImRpc2FibGVkIixhLnJldmVydGluZ0NoYW5nZXMpLGZlKDUpLE1lKCJuZ0lmIiwiWUVTIj09PShudWxsPT1hLnRh'@; put 'YmxlRGV0YWlscz9udWxsOmEudGFibGVEZXRhaWxzLkFMTE9XX1JFU1RPUkUpKSxmZSgyKSxNZSgiZGF0YSIsYS5ob3RUYWJsZS5kYXRhKSgic2V0dGluZ3MiLGEuaG90VGFibGVTZXR0aW5ncyl9fWNvbnN0IEh3dD1be3BhdGg6Ijp0YWJsZUlkIixjb21wb25lbnQ6KCgpPT57Y2xhc3MgY3tn'@; put 'ZXQgaG90VGFibGVTZXR0aW5ncygpe3JldHVybnsuLi50aGlzLmhvdFRhYmxlLnNldHRpbmdzLGNvbEhlYWRlcnM6dGhpcy5ob3RUYWJsZS5jb2xIZWFkZXJzLGNvbHVtbnM6dGhpcy5ob3RUYWJsZS5jb2x1bW5zLG1heFJvd3M6dGhpcy5ob3RUYWJsZS5tYXhSb3dzLGhlaWdodDp0aGlzLmhv'@; put 'dFRhYmxlLmhlaWdodCxsaWNlbnNlS2V5OnRoaXMuaG90VGFibGUubGljZW5zZUtleSxhZnRlckdldENvbEhlYWRlcjp0aGlzLmhvdFRhYmxlLmFmdGVyR2V0Q29sSGVhZGVyLGFmdGVySW5pdDp0aGlzLmhvdFRhYmxlLmFmdGVySW5pdCxzdHJldGNoSDoiYWxsIixjZWxsczp0aGlzLmhvdFRh'@; put 'YmxlLmNlbGxzLGNsYXNzTmFtZToiaHREYXJrIn19Y29uc3RydWN0b3IoYSxkLGgsZix2LE0pe3RoaXMubGljZW5jZVNlcnZpY2U9YSx0aGlzLnNhc1N0b3JlU2VydmljZT1kLHRoaXMuZXZlbnRTZXJ2aWNlPWgsdGhpcy5yb3V0ZT1mLHRoaXMucm91dGVyPXYsdGhpcy5zYXNTZXJ2aWNlPU0s'@; put 'dGhpcy5sb2FkZWQ9ITEsdGhpcy5yZXZlcnRpbmdDaGFuZ2VzPSExLHRoaXMubGljZW5jZVN0YXRlPXRoaXMubGljZW5jZVNlcnZpY2UubGljZW5jZVN0YXRlLHRoaXMuaG90VGFibGU9e2RhdGE6W10sY29sSGVhZGVyczpbXSxjb2x1bW5zOltdLGhlaWdodDo1MDAsc2V0dGluZ3M6e2FyaWFU'@; put 'YWdzOiExLHRhYmxlQ2xhc3NOYW1lOiJodENlbnRlciIsb3V0c2lkZUNsaWNrRGVzZWxlY3RzOiExLGF1dG9XcmFwUm93OiExLGF1dG9XcmFwQ29sOiExfSxsaWNlbnNlS2V5OnZvaWQgMCxtYXhSb3dzOnRoaXMubGljZW5jZVN0YXRlLnZhbHVlLnN0YWdlX3Jvd3NfYWxsb3dlZHx8MS8wLGFm'@; put 'dGVyR2V0Q29sSGVhZGVyOihJLEcscmUpPT57Ry5jbGFzc0xpc3QuYWRkKEpuLmhhbmRzb250YWJsZS5kYXJrVGFibGVIZWFkZXJDbGFzcyl9LGFmdGVySW5pdDooKT0+e3RoaXMuZml4Rm9jdXNDYXRjaGVyQWNjZXNzaWJpbGl0eSgpfX19c3VibWl0dGVkVGFibGVTY3JlZW4oKXt0aGlzLnJv'@; put 'dXRlLm5hdmlnYXRlQnlVcmwoIi9zdGFnZS8iK3RoaXMudGFibGVfaWQpfWFwcHJvdmVUYWJsZVNjcmVlbigpe3RoaXMucm91dGUubmF2aWdhdGVCeVVybCgiL3Jldmlldy9hcHByb3ZlRGV0LyIrdGhpcy50YWJsZV9pZCl9dmlld2VyVGFibGVTY3JlZW4oKXt0aGlzLnJvdXRlLm5hdmlnYXRl'@; put 'QnlVcmwoIi92aWV3L2RhdGEvIit0aGlzLnRhYmxlRGV0YWlscy5CQVNFX1RBQkxFKX1nb0JhY2soKXtKbi54bG1hcHMuZmluZChkPT5kLnRhcmdldERTPT09dGhpcy50YWJsZURldGFpbHMuQkFTRV9UQUJMRSk/dGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKCIvaG9tZS9leGNlbC1tYXBzLyIr'@; put 'dGhpcy5ob3RUYWJsZS5kYXRhWzBdLlhMTUFQX0lEKTp0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoIi9lZGl0b3IvIit0aGlzLnRhYmxlRGV0YWlscy5CQVNFX1RBQkxFKX1kb3dubG9hZChhKXtsZXQgZD10aGlzLnNhc1NlcnZpY2UuZ2V0U2FzanNDb25maWcoKSxoPWQuc2VydmVyVXJsLGY9'@; put 'ZC5hcHBMb2Msdj10aGlzLnNhc1NlcnZpY2UuZ2V0RXhlY3V0aW9uUGF0aCgpO3dpbmRvdy5vcGVuKGgrdisiLz9fcHJvZ3JhbT0iK2YrIi9zZXJ2aWNlcy9hdWRpdG9ycy9nZXRhdWRpdGZpbGUmdGFibGU9IithKX1uZ09uSW5pdCgpe3ZhciBhPXRoaXM7cmV0dXJuIFEoZnVuY3Rpb24qKCl7'@; put 'aWYoYS5saWNlbmNlU2VydmljZS5ob3RfbGljZW5zZV9rZXkuc3Vic2NyaWJlKGQ9PnthLmhvdFRhYmxlLmxpY2Vuc2VLZXk9ZH0pLHR5cGVvZiBhLnJvdXRlci5zbmFwc2hvdC5wYXJhbXMudGFibGVJZDwidSIpe2EudGFibGVfaWQ9YS5yb3V0ZXIuc25hcHNob3QucGFyYW1zLnRhYmxlSWQ7'@; put 'dHJ5e2xldCBkPXlpZWxkIGEuc2FzU3RvcmVTZXJ2aWNlLmdldENoYW5nZUluZm8oYS50YWJsZV9pZCk7aWYoIWR8fCFkLmpzcGFyYW1zKXRocm93IG5ldyBFcnJvcigianNwYXJhbXMgcHJvcGVydHkgaXMgbWlzc2luZyBmcm9tIHJlc3BvbnNlLiIpO2EudGFibGVEZXRhaWxzPWQuanNwYXJh'@; put 'bXNbMF19Y2F0Y2goZCl7bGV0IGg9e307ZC5NRVNTQUdFP2g9ZDpoLk1FU1NBR0U9ZCxhLmV2ZW50U2VydmljZS5jYXRjaFJlc3BvbnNlRXJyb3IoInB1YmxpYy9nZXRjaGFuZ2VpbmZvIixoKX10cnl7bGV0IGQ9eWllbGQgYS5zYXNTdG9yZVNlcnZpY2Uub3BlblRhYmxlKGEudGFibGVfaWQp'@; put 'O2lmKCFkfHwhZC5zdGFnZXRhYmxlKXRocm93IG5ldyBFcnJvcigiU3RhZ2V0YWJsZSBwcm9wZXJ0eSBpcyBtaXNzaW5nIGZyb20gcmVzcG9uc2UuIik7bGV0IGg9ZC5zdGFnZXRhYmxlWzBdLGY9W10sdj1bXTtmb3IobGV0IEkgaW4gaCloJiZmLnB1c2goSSk7Zm9yKGxldCBJPTA7STxmLmxl'@; put 'bmd0aDtJKyspdi5wdXNoKHtkYXRhOmZbSV19KTtsZXQgTT1mdW5jdGlvbigpe3JldHVybntyZWFkT25seTohMH19O2EuaG90VGFibGUuZGF0YT1kLnN0YWdldGFibGUsYS5ob3RUYWJsZS5jb2xIZWFkZXJzPWYsYS5ob3RUYWJsZS5jb2x1bW5zPXYsYS5ob3RUYWJsZS5jZWxscz1NLGEubG9h'@; put 'ZGVkPSEwLGEuc2V0Rm9jdXMoKX1jYXRjaChkKXtsZXQgaD17fTtkLk1FU1NBR0V8fChoLk1FU1NBR0U9ZCksYS5ldmVudFNlcnZpY2UuY2F0Y2hSZXNwb25zZUVycm9yKCJhdWRpdG9ycy9nZXRzdGFnZXRhYmxlIixoKSxhLmxvYWRlZD0hMX19fSkoKX1uZ0FmdGVyVmlld0luaXQoKXtzZXRU'@; put 'aW1lb3V0KCgpPT57dGhpcy5maXhGb2N1c0NhdGNoZXJBY2Nlc3NpYmlsaXR5KCl9LDUwMCl9cmV2ZXJ0Q2hhbmdlcygpe3RoaXMucmV2ZXJ0aW5nQ2hhbmdlcz0hMCx0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgiZWRpdG9ycy9yZXN0b3JlIix7cmVzdG9yZV9pbjpbe2xvYWRfcmVmOnRoaXMu'@; put 'dGFibGVfaWR9XX0pLnRoZW4oZD0+e2QuYWRhcHRlclJlc3BvbnNlLnJlc3RvcmVfb3V0JiZ0aGlzLnJvdXRlLm5hdmlnYXRlKFsiL3N0YWdlIl0pLnRoZW4oKCk9Pnt0aGlzLnJvdXRlLm5hdmlnYXRlKFtgL3N0YWdlLyR7ZC5hZGFwdGVyUmVzcG9uc2UucmVzdG9yZV9vdXRbMF0uTE9BRFJF'@; put 'Rn1gXSl9KX0pLmZpbmFsbHkoKCk9Pnt0aGlzLnJldmVydGluZ0NoYW5nZXM9ITF9KX1zZXRGb2N1cygpe3NldFRpbWVvdXQoKCk9PntsZXQgYT13aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcHJvdmFsLWJ0biIpO2EmJmEuZm9jdXMoKX0sMjAwKX1maXhGb2N1c0NhdGNoZXJB'@; put 'Y2Nlc3NpYmlsaXR5KCl7c2V0VGltZW91dCgoKT0+e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5odEZvY3VzQ2F0Y2hlciIpLmZvckVhY2goKGQsaCk9PntpZihkKXtkLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsYFRhYmxlIGZvY3VzIGNhdGNoZXIgJHtoKzF9YCksZC5zZXRBdHRy'@; put 'aWJ1dGUoImFyaWEtaGlkZGVuIiwidHJ1ZSIpLGQuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIi0xIiksZC5zZXRBdHRyaWJ1dGUoInJvbGUiLCJwcmVzZW50YXRpb24iKTtjb25zdCBmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxhYmVsIik7Zi5zZXRBdHRyaWJ1dGUoImZvciIsZC5pZHx8'@; put 'YGh0Rm9jdXNDYXRjaGVyJHtofWApLGYuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKSxmLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGYudGV4dENvbnRlbnQ9YFRhYmxlIGZvY3VzIGNhdGNoZXIgJHtoKzF9YCxkLnBhcmVudE5vZGU/Lmluc2VydEJlZm9yZShmLGQpfX0pfSwxMDAp'@; put 'fXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpKCRlKGMxKSwkZShJaCksJGUobWMpLCRlKExvKSwkZSh5dSksJGUoVm8pKX19c3RhdGlje3RoaXMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltbImFwcC1zdGFnZSJdXSxob3N0QXR0cnM6'@; put 'WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6NCx2YXJzOjIsY29uc3RzOltbMSwiY29udGVudC1hcmVhIl0sWzEsImNsci1jb2wtbWQtMTIiLCJjYXJkIl0sWyJjbGFzcyIsImgtODB2aCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1j'@; put 'ZW50ZXIiLDQsIm5nSWYiXSxbNCwibmdJZiJdLFsxLCJoLTgwdmgiLCJkLWZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiwiZmxleC1jb2x1bW4iLCJhbGlnbi1pdGVtcy1jZW50ZXIiXSxbImNsYXNzIiwic3Bpbm5lciIsNCwibmdJZiJdLFsxLCJzcGlubmVyIl0sWyJuZy1pZiIsImxv'@; put 'YWRlZCIsMSwiY2FyZC1oZWFkZXIiXSxbMSwiY2FyZC10aXRsZSIsInRleHQtY2VudGVyIl0sWzEsIm10LTAiXSxbIm5nLWlmIiwibG9hZGVkIiwxLCJjbHItcm93Il0sWzEsImNhcmQtYmxvY2siLCJjbHItY29sLW1kLTYiLCJuby1ib3JkZXJzIl0sWzEsImNhcmQtaGVhZGVyIiwicHktNSJd'@; put 'LFsxLCJiYXNlVGFibGVMaW5rIiwzLCJjbGljayJdLFsxLCJtdC0xMCJdLFsicm9sZSIsInN0YXR1cyIsMSwibXQtMTAiLDMsIm5nQ2xhc3MiXSxbMSwiY2xyLWNvbC1tZC02IiwiY2FyZC1ibG9jayIsIm5vLWJvcmRlcnMiXSxbMSwibXQtMjAiXSxbMSwicm93Il0sWyJhcmlhLWxhYmVsIiwi'@; put 'VmlldyBiYXNlIHRhYmxlIiwxLCJidG4iLCJidG4tc20iLCJidG4tb3V0bGluZSIsInRleHQtY2VudGVyIiwibXItNWkiLDMsImNsaWNrIiwiZGlzYWJsZWQiXSxbImlkIiwiYXBwcm92YWwtYnRuIiwiY2xhc3MiLCJidG4gYnRuLXNtIGJ0bi1zdWNjZXNzLW91dGxpbmUgdGV4dC1jZW50ZXIg'@; put 'bXItNWkiLCJhcmlhLWxhYmVsIiwiQXBwcm92ZSB0YWJsZSIsMywiZGlzYWJsZWQiLCJjbGljayIsNCwibmdJZiJdLFsiYXJpYS1sYWJlbCIsIkVkaXQgYmFzZSB0YWJsZSIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLWluZm8tb3V0bGluZSIsInRleHQtY2VudGVyIiwibXItNWkiLDMsImNsaWNr'@; put 'IiwiZGlzYWJsZWQiXSxbImFyaWEtbGFiZWwiLCJEb3dubG9hZCBhdWRpdCBmaWxlIiwxLCJidG4iLCJidG4tc20iLCJidG4tc3VjY2VzcyIsInRleHQtY2VudGVyIiwibXItNWkiLCJtaW4tdy0wIiwzLCJjbGljayJdLFsic2hhcGUiLCJkb3dubG9hZCIsImFyaWEtaGlkZGVuIiwidHJ1ZSJd'@; put 'LFsiY2xyVG9vbHRpcFRyaWdnZXIiLCIiLCJjbGFzcyIsImJ0biBidG4tc20gYnRuLWRhbmdlciB0ZXh0LWNlbnRlciBtdC0yMCIsImFyaWEtbGFiZWwiLCJSZXZlcnQgdGhpcyBhbmQgYWxsIHN1YnNlcXVlbnQgY2hhbmdlcyIsMywiY2xyTG9hZGluZyIsImNsaWNrIiw0LCJuZ0lmIl0sWzEs'@; put 'ImNhcmQtYmxvY2siXSxbImlkIiwiaG90VGFibGUiLCJhcmlhLWxhYmVsIiwiU3RhZ2VkIGRhdGEgdGFibGUiLDMsImRhdGEiLCJzZXR0aW5ncyJdLFsxLCJjYXJkLWZvb3RlciIsImQtZmxleCIsImp1c3RpZnktY29udGVudC1jZW50ZXIiXSxbImlkIiwiYXBwcm92YWwtYnRuIiwiYXJpYS1s'@; put 'YWJlbCIsIkFwcHJvdmUgdGFibGUiLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1zdWNjZXNzLW91dGxpbmUiLCJ0ZXh0LWNlbnRlciIsIm1yLTVpIiwzLCJjbGljayIsImRpc2FibGVkIl0sWyJjbHJUb29sdGlwVHJpZ2dlciIsIiIsImFyaWEtbGFiZWwiLCJSZXZlcnQgdGhpcyBhbmQgYWxsIHN1'@; put 'YnNlcXVlbnQgY2hhbmdlcyIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLWRhbmdlciIsInRleHQtY2VudGVyIiwibXQtMjAiLDMsImNsaWNrIiwiY2xyTG9hZGluZyJdLFsiY2xyUG9zaXRpb24iLCJib3R0b20tbGVmdCIsImNsclNpemUiLCJsZyIsNCwiY2xySWZPcGVuIl0sWyJjbHJQb3NpdGlv'@; put 'biIsImJvdHRvbS1sZWZ0IiwiY2xyU2l6ZSIsImxnIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGQsaCl7MSZkJiYoZGUoMCwiZGl2IiwwKSgxLCJkaXYiLDEpLGd0KDIsUnd0LDMsMiwiZGl2IiwyKSgzLEZ3dCw0OSwxNSwiZGl2IiwzKSxoZSgpKCkpLDImZCYmKGZlKDIpLE1lKCJuZ0lmIiwhaC5s'@; put 'b2FkZWQpLGZlKCksTWUoIm5nSWYiLGgubG9hZGVkKSl9LGRlcGVuZGVuY2llczpbdnUsYmEsT2wsVjAsUDIsSDIsdjcsYjcseTcsJGddLGVuY2Fwc3VsYXRpb246Mn0pfX1yZXR1cm4gY30pKCl9XTtsZXQgTnd0PSgoKT0+e2NsYXNzIGN7c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9u'@; put 'KGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSl9c3RhdGlje3RoaXMuXHUwMjc1aW5qPUFyKHtpbXBvcnRzOltMYSxCMCxCYy5mb3JDaGlsZChId3QpLFo5LmZvclJvb3QoKV19KX19cmV0dXJuIGN9KSgpO2Z1bmN0aW9uIFZ3dChjLGwpe2lm'@; put 'KDEmYyYmKGRlKDAsInAiLDE3KSxPZSgxLCIgVmlld2VyIHJvd3MgbGltaXQ6ICIpLGRlKDIsInNwYW4iLDcpLE9lKDMpLGhlKCkoKSksMiZjKXtjb25zdCBhPUxlKCk7ZmUoMyksU3IoYS5saWNlbmNlU3RhdGUudmFsdWUudmlld2VyX3Jvd3NfYWxsb3dlZCl9fWZ1bmN0aW9uIEJ3dChjLGwp'@; put 'e2lmKDEmYyYmKGRlKDAsInAiLDE3KSxPZSgxLCIgRWRpdG9yIHJvd3MgbGltaXQ6ICIpLGRlKDIsInNwYW4iLDcpLE9lKDMpLGhlKCkoKSksMiZjKXtjb25zdCBhPUxlKCk7ZmUoMyksU3IoYS5saWNlbmNlU3RhdGUudmFsdWUuZWRpdG9yX3Jvd3NfYWxsb3dlZCl9fWZ1bmN0aW9uIGp3dChj'@; put 'LGwpe2lmKDEmYyYmKGRlKDAsInAiLDE3KSxPZSgxLCIgU3RhZ2Ugcm93cyBsaW1pdDogIiksZGUoMiwic3BhbiIsNyksT2UoMyksaGUoKSgpKSwyJmMpe2NvbnN0IGE9TGUoKTtmZSgzKSxTcihhLmxpY2VuY2VTdGF0ZS52YWx1ZS5zdGFnZV9yb3dzX2FsbG93ZWQpfX1mdW5jdGlvbiB6d3Qo'@; put 'YyxsKXtpZigxJmMmJihkZSgwLCJwIiwxNyksT2UoMSwiIEhpc3Rvcnkgcm93cyBsaW1pdDogIiksZGUoMiwic3BhbiIsNyksT2UoMyksaGUoKSgpKSwyJmMpe2NvbnN0IGE9TGUoKTtmZSgzKSxTcihhLmxpY2VuY2VTdGF0ZS52YWx1ZS5oaXN0b3J5X3Jvd3NfYWxsb3dlZCl9fWZ1bmN0aW9u'@; put 'IFV3dChjLGwpe2lmKDEmYyYmKGRlKDAsInAiLDE3KSxPZSgxLCIgU3VibWl0IHJvd3MgbGltaXQ6ICIpLGRlKDIsInNwYW4iLDcpLE9lKDMpLGhlKCkoKSksMiZjKXtjb25zdCBhPUxlKCk7ZmUoMyksU3IoYS5saWNlbmNlU3RhdGUudmFsdWUuc3VibWl0X3Jvd3NfbGltaXQpfX1mdW5jdGlv'@; put 'biBad3QoYyxsKXtpZigxJmMmJihkZSgwLCJwIiwxNyksT2UoMSwiIFRhYmxlcyBpbiBsaWJyYXJ5IGxpbWl0OiAiKSxkZSgyLCJzcGFuIiw3KSxPZSgzKSxoZSgpKCkpLDImYyl7Y29uc3QgYT1MZSgpO2ZlKDMpLFNyKGEubGljZW5jZVN0YXRlLnZhbHVlLnRhYmxlc19pbl9saWJyYXJ5X2xp'@; put 'bWl0KX19ZnVuY3Rpb24gV3d0KGMsbCl7aWYoMSZjJiYoZGUoMCwicCIsMTcpLE9lKDEsIiBWaWV3Ym94ZXMgbGltaXQ6ICIpLGRlKDIsInNwYW4iLDcpLE9lKDMpLGhlKCkoKSksMiZjKXtjb25zdCBhPUxlKCk7ZmUoMyksU3IoYS5saWNlbmNlU3RhdGUudmFsdWUudmlld2JveF9saW1pdCl9'@; put 'fWZ1bmN0aW9uIFl3dChjLGwpe2lmKDEmYyYmKGRlKDAsInAiLDE3KSxPZSgxLCIgTGluZWFnZSBkYWlseSBsaW1pdDogIiksZGUoMiwic3BhbiIsNyksT2UoMyksaGUoKSgpKSwyJmMpe2NvbnN0IGE9TGUoKTtmZSgzKSxTcihhLmxpY2VuY2VTdGF0ZS52YWx1ZS5saW5lYWdlX2RhaWx5X2xp'@; put 'bWl0KX19ZnVuY3Rpb24gR3d0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiZGl2IiwxOSksT2UoMSwiIFJlZnJlc2ggRGF0YSBMaW5lYWdlICIpLGRlKDIsImJ1dHRvbiIsMjApLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoMikucmVmcmVzaERhdGFM'@; put 'aW5lYWdlKCkpfSksT2UoMywiIFJFRlJFU0ggIiksaGUoKSgpfWlmKDImYyl7Y29uc3QgYT1MZSgyKTtmZSgyKSxNZSgiY2xyTG9hZGluZyIsYS5yZWZyZXNoaW5nRGF0YUxpbmVhZ2UpfX1mdW5jdGlvbiAkd3QoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTthaSgwKSxndCgxLEd3dCw0LDEs'@; put 'ImRpdiIsMTgpLGRlKDIsImRpdiIsMTkpLE9lKDMsIiBSZWZyZXNoIERhdGEgQ2F0YWxvZyAiKSxkZSg0LCJidXR0b24iLDIwKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKCkucmVmcmVzaERhdGFDYXRhbG9nKCkpfSksT2UoNSwiIFJFRlJFU0ggIiksaGUoKSgp'@; put 'LGRlKDYsImRpdiIsMTkpLE9lKDcsIiBEb3dubG9hZCBDb25maWd1cmF0aW9uICIpLGRlKDgsImJ1dHRvbiIsMjEpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoKS5kb3dubG9hZENvbmZpZ3VyYXRpb24oKSl9KSxPZSg5LCIgRE9XTkxPQUQgIiksaGUoKSgpLGRl'@; put 'KDEwLCJkaXYiLDE5KSxPZSgxMSwiIFVwZGF0ZSBMaWNlbmNlIEtleSAiKSxkZSgxMiwiYnV0dG9uIiwyMiksT2UoMTMsIiBVUERBVEUgIiksaGUoKSgpLHNpKCl9aWYoMiZjKXtjb25zdCBhPUxlKCk7ZmUoKSxNZSgibmdJZiIsIlNBUzkiPT09YS5zZXJ2ZXJUeXBlKSxmZSgzKSxNZSgiY2xy'@; put 'TG9hZGluZyIsYS5yZWZyZXNoaW5nRGF0YUNhdGFsb2cpfX1jb25zdCBLd3Q9W3twYXRoOiIiLGNvbXBvbmVudDooKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYpe3RoaXMuYXBwU2VydmljZT1hLHRoaXMuc2FzU2VydmljZT1kLHRoaXMubGljZW5jZVNlcnZpY2U9aCx0aGlzLmFw'@; put 'cFNldHRpbmdzU2VydmljZT1mLHRoaXMuYXBwSW5mbz17YWRhcHRlclZlcnNpb246IjQuMTIuMiIsYXBwVmVyc2lvbjoidjcuMi4xIi5yZXBsYWNlKCJ2IiwiIiksYnVpbGRUaW1lc3RhbXA6anNlKCkocGFyc2VJbnQoIjE3NTQ2NzQ1MTAzMjUiKSkuZm9ybWF0KCJERC1NTU0tWVlZWSBISDpN'@; put 'TSIpfSx0aGlzLmh0dHA9Imh0dHA6Ij09PWxvY2F0aW9uLnByb3RvY29sLHRoaXMucmVmcmVzaGluZ0RhdGFDYXRhbG9nPSExLHRoaXMucmVmcmVzaGluZ0RhdGFMaW5lYWdlPSExLHRoaXMucmVzcG9uc2U9Ik5vIHJlc3BvbnNlIix0aGlzLnJlc3BvbnNlTW9kYWw9ITEsdGhpcy5JbmZpbml0'@; put 'eT0xLzAsdGhpcy5saWNlbmNlU3RhdGU9dGhpcy5saWNlbmNlU2VydmljZS5saWNlbmNlU3RhdGUsdGhpcy5zZXJ2ZXJUeXBlPXRoaXMuc2FzU2VydmljZS5nZXRTZXJ2ZXJUeXBlKCksdGhpcy5saWNlbmNlSW5mbz10aGlzLmxpY2VuY2VTZXJ2aWNlLmdldExpY2Vuc2VLZXlEYXRhKCksdGhp'@; put 'cy5lbnZpcm9ubWVudEluZm89dGhpcy5hcHBTZXJ2aWNlLmdldEVudmlyb25tZW50SW5mbygpLHRoaXMuc2V0dGluZ3M9dGhpcy5hcHBTZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3MudmFsdWUsdGhpcy5lbnZpcm9ubWVudEluZm8uQVVUT0VYRUMmJih0aGlzLmVudmlyb25tZW50SW5mby5BVVRP'@; put 'RVhFQz1kZWNvZGVVUklDb21wb25lbnQodGhpcy5lbnZpcm9ubWVudEluZm8uQVVUT0VYRUMpKSx0aGlzLmFwcFNldHRpbmdzU2VydmljZS5zZXR0aW5ncy5zdWJzY3JpYmUodj0+e3RoaXMuc2V0dGluZ3M9dn0pfW5nT25Jbml0KCl7fXNldHRpbmdDaGFuZ2UoYSl7dGhpcy5hcHBTZXR0aW5n'@; put 'c1NlcnZpY2Uuc2V0QXBwU2V0dGluZ3ModGhpcy5zZXR0aW5ncyl9ZG93bmxvYWRDb25maWd1cmF0aW9uKCl7bGV0IGE9dGhpcy5zYXNTZXJ2aWNlLmdldFNhc2pzQ29uZmlnKCksZD1hLnNlcnZlclVybCxoPWEuYXBwTG9jLGY9dGhpcy5zYXNTZXJ2aWNlLmdldEV4ZWN1dGlvblBhdGgoKTt3'@; put 'aW5kb3cub3BlbihkK2YrIi8/X3Byb2dyYW09IitoKyIvc2VydmljZXMvYWRtaW4vZXhwb3J0Y29uZmlnIil9cmVmcmVzaERhdGFDYXRhbG9nKCl7dGhpcy5yZWZyZXNoaW5nRGF0YUNhdGFsb2c9ITAsdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoImFkbWluL3JlZnJlc2hjYXRhbG9nIixudWxs'@; put 'KS50aGVuKGE9Pnt0aGlzLnJlc3BvbnNlPXRoaXMucGFyc2VSZXNwb25zZShhLmFkYXB0ZXJSZXNwb25zZSksdGhpcy5yZXNwb25zZU1vZGFsPSEwfSkuY2F0Y2goYT0+e3RoaXMucmVzcG9uc2U9dGhpcy5wYXJzZVJlc3BvbnNlKGEuYWRhcHRlclJlc3BvbnNlKSx0aGlzLnJlc3BvbnNlTW9k'@; put 'YWw9ITB9KS5maW5hbGx5KCgpPT57dGhpcy5yZWZyZXNoaW5nRGF0YUNhdGFsb2c9ITF9KX1yZWZyZXNoRGF0YUxpbmVhZ2UoKXt0aGlzLnJlZnJlc2hpbmdEYXRhTGluZWFnZT0hMCx0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgiYWRtaW4vcmVmcmVzaHRhYmxlbGluZWFnZSIsbnVsbCkudGhl'@; put 'bihhPT57dGhpcy5yZXNwb25zZT10aGlzLnBhcnNlUmVzcG9uc2UoYS5hZGFwdGVyUmVzcG9uc2UpLHRoaXMucmVzcG9uc2VNb2RhbD0hMH0pLmNhdGNoKGE9Pnt0aGlzLnJlc3BvbnNlPXRoaXMucGFyc2VSZXNwb25zZShhLmFkYXB0ZXJSZXNwb25zZSksdGhpcy5yZXNwb25zZU1vZGFsPSEw'@; put 'fSkuZmluYWxseSgoKT0+e3RoaXMucmVmcmVzaGluZ0RhdGFMaW5lYWdlPSExfSl9cGFyc2VSZXNwb25zZShhKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGE/SlNPTi5zdHJpbmdpZnkoYSk6YX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKSgkZSh1'@; put 'TCksJGUoVm8pLCRlKGMxKSwkZShKUikpfX1zdGF0aWN7dGhpcy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1siYXBwLXN5c3RlbSJdXSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6MTM4LHZhcnM6MzYsY29uc3RzOltbMSwiY29udGVudC1hcmVhIl0s'@; put 'WzEsImNhcmQiLCJwLTEwIiwiZC1mbGV4IiwiY2xyLWZsZXgtY29sdW1uIiwiY2xyLWFsaWduLWl0ZW1zLWNlbnRlciIsImNsci1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyIl0sWzEsInRleHQtY2VudGVyIiwibS0wIl0sWzEsInctMTAwIiwibGlnaHQiXSxbMSwiY29udGVudC1ib3giLCJkLWZs'@; put 'ZXgiLCJjbHItZmxleC1jb2x1bW4iXSxbMSwic3lzLWluZm8iLCJkLWZsZXgiLCJjbHItanVzdGlmeS1jb250ZW50LWNlbnRlciIsImNsci1mbGV4LWNvbHVtbiIsImNsci1mbGV4LWxnLXJvdyJdLFsiY2RzLXRleHQiLCJzdWJzZWN0aW9uIiwxLCJtYi0xMCJdLFsxLCJkYXJrIl0sWyJjZHMt'@; put 'dGV4dCIsImxhYmVsIiwxLCJtLTAiXSxbMSwiZC1mbGV4IiwiY2xyLWp1c3RpZnktY29udGVudC1sZy1jZW50ZXIiXSxbImNsYXNzIiwibS0wIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbMywiY2xyTW9kYWxPcGVuQ2hhbmdlIiwiY2xyTW9kYWxPcGVuIl0sWzEsIm1vZGFsLXRpdGxlIl0sWzEs'@; put 'Im1vZGFsLWJvZHkiXSxbMSwibW9kYWwtZm9vdGVyIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tcHJpbWFyeSIsMywiY2xpY2siXSxbMSwibS0wIl0sWyJjbGFzcyIsImFkbWluLWFjdGlvbiIsNCwibmdJZiJdLFsxLCJhZG1pbi1hY3Rpb24iXSxbMSwiYnRuIiwi'@; put 'YnRuLWluZm8iLCJidG4tc20iLDMsImNsaWNrIiwiY2xyTG9hZGluZyJdLFsxLCJidG4iLCJidG4taW5mbyIsImJ0bi1zbSIsMywiY2xpY2siXSxbInJvdXRlckxpbmsiLCIvbGljZW5zaW5nL3VwZGF0ZSIsMSwiYnRuIiwiYnRuLWluZm8iLCJidG4tc20iXV0sdGVtcGxhdGU6ZnVuY3Rpb24o'@; put 'ZCxoKXsxJmQmJihkZSgwLCJkaXYiLDApKDEsImRpdiIsMSkoMiwiaDQiLDIpLE9lKDMsIlN5c3RlbSBpbmZvcm1hdGlvbiIpLGhlKCksV3QoNCwiaHIiLDMpLGRlKDUsImRpdiIsNCkoNiwiZGl2Iiw1KSg3LCJkaXYiKSg4LCJoNiIsNiksT2UoOSwiIEVudmlyb25tZW50IERldGFpbHMgIiks'@; put 'V3QoMTAsInNwYW4iLDcpLGhlKCksZGUoMTEsInAiLDgpLE9lKDEyLCIgU1lTU0lURTogIiksZGUoMTMsInNwYW4iLDcpLE9lKDE0KSxoZSgpKCksZGUoMTUsInAiLDgpLE9lKDE2LCIgU1lTU0NQTDogIiksZGUoMTcsInNwYW4iLDcpLE9lKDE4KSxoZSgpKCksZGUoMTksInAiLDgpLE9lKDIw'@; put 'LCIgU1lTVENQSVBIT1NUTkFNRTogIiksZGUoMjEsInNwYW4iLDcpLE9lKDIyKSxoZSgpKCksZGUoMjMsInAiLDgpLE9lKDI0LCIgU1lTVkxPTkc6ICIpLGRlKDI1LCJzcGFuIiw3KSxPZSgyNiksaGUoKSgpLGRlKDI3LCJwIiw4KSxPZSgyOCwiIE1FTVNJWkU6ICIpLGRlKDI5LCJzcGFuIiw3'@; put 'KSxPZSgzMCksaGUoKSgpLGRlKDMxLCJwIiw4KSxPZSgzMiwiIFNZU1BST0NFU1NNT0RFOiAiKSxkZSgzMywic3BhbiIsNyksT2UoMzQpLGhlKCkoKSxkZSgzNSwicCIsOCksT2UoMzYsIiBTWVNIT1NUTkFNRTogIiksZGUoMzcsInNwYW4iLDcpLE9lKDM4KSxoZSgpKCksZGUoMzksInAiLDgp'@; put 'LE9lKDQwLCIgU1lTVVNFUklEOiAiKSxkZSg0MSwic3BhbiIsNyksT2UoNDIpLGhlKCkoKSxkZSg0MywicCIsOCksT2UoNDQsIiBTWVNIT1NUSU5GT0xPTkc6ICIpLGRlKDQ1LCJzcGFuIiw3KSxPZSg0NiksaGUoKSgpLGRlKDQ3LCJwIiw4KSxPZSg0OCwiIFNZU0VOQ09ESU5HOiAiKSxkZSg0'@; put 'OSwic3BhbiIsNyksT2UoNTApLGhlKCkoKSxkZSg1MSwicCIsOCksT2UoNTIsIiBBVVRPRVhFQzogIiksZGUoNTMsInNwYW4iLDcpLE9lKDU0KSxoZSgpKCkoKSxkZSg1NSwiZGl2Iiw5KSg1NiwiZGl2IikoNTcsImg2Iiw2KSxPZSg1OCwiIERhdGEgQ29udHJvbGxlciBEZXRhaWxzICIpLFd0'@; put 'KDU5LCJzcGFuIiw3KSxoZSgpLGRlKDYwLCJwIiw4KSxPZSg2MSwiIEFwcGxpY2F0aW9uIHZlcnNpb246ICIpLGRlKDYyLCJzcGFuIiw3KSxPZSg2MyksaGUoKSgpLGRlKDY0LCJwIiw4KSxPZSg2NSwiIEJ1aWxkIHRpbWVzdGFtcDogIiksZGUoNjYsInNwYW4iLDcpLE9lKDY3KSxoZSgpKCks'@; put 'ZGUoNjgsInAiLDgpLE9lKDY5LCIgQWRhcHRlciB2ZXJzaW9uOiAiKSxkZSg3MCwic3BhbiIsNyksT2UoNzEpLGhlKCkoKSxkZSg3MiwicCIsOCksT2UoNzMsIiBIVFRQOiAiKSxkZSg3NCwic3BhbiIsNyksT2UoNzUpLGhlKCkoKSxkZSg3NiwicCIsOCksT2UoNzcsIiBEQyBBZG1pbiBHcm91'@; put 'cDogIiksZGUoNzgsInNwYW4iLDcpLE9lKDc5KSxoZSgpKCksZGUoODAsInAiLDgpLE9lKDgxLCIgQXBwIExvY2F0aW9uOiAiKSxkZSg4Miwic3BhbiIsNyksT2UoODMpLGhlKCkoKSgpKCksZGUoODQsImRpdiIpKDg1LCJoNiIsNiksT2UoODYsIiBMaWNlbmNlIGRldGFpbHMgIiksV3QoODcs'@; put 'InNwYW4iLDcpLGhlKCksZGUoODgsInAiLDgpLE9lKDg5LCIgVmFsaWQgdW50aWw6ICIpLGRlKDkwLCJzcGFuIiw3KSxPZSg5MSksaGUoKSgpLGRlKDkyLCJwIiw4KSxPZSg5MywiIFVzZXJzIGFsbG93ZWQ6ICIpLGRlKDk0LCJzcGFuIiw3KSxPZSg5NSksaGUoKSgpLGRlKDk2LCJwIiw4KSxP'@; put 'ZSg5NywiIFNpdGUgSURzOiAiKSxkZSg5OCwic3BhbiIsNyksT2UoOTkpLGhlKCkoKSxkZSgxMDAsInAiLDgpLE9lKDEwMSwiIEZyZWUgVGllcjogIiksZGUoMTAyLCJzcGFuIiw3KSxPZSgxMDMpLGhlKCkoKSxndCgxMDQsVnd0LDQsMSwicCIsMTApKDEwNSxCd3QsNCwxLCJwIiwxMCkoMTA2'@; put 'LGp3dCw0LDEsInAiLDEwKSgxMDcsend0LDQsMSwicCIsMTApKDEwOCxVd3QsNCwxLCJwIiwxMCkoMTA5LFp3dCw0LDEsInAiLDEwKSgxMTAsV3d0LDQsMSwicCIsMTApKDExMSxZd3QsNCwxLCJwIiwxMCksZGUoMTEyLCJwIiw4KSxPZSgxMTMsIiBWaWV3Ym94ZXM6ICIpLGRlKDExNCwic3Bh'@; put 'biIsNyksT2UoMTE1KSxoZSgpKCksZGUoMTE2LCJwIiw4KSxPZSgxMTcsIiBGaWxlIFVwbG9hZDogIiksZGUoMTE4LCJzcGFuIiw3KSxPZSgxMTkpLGhlKCkoKSxkZSgxMjAsInAiLDgpLE9lKDEyMSwiIEVkaXQgcmVjb3JkOiAiKSxkZSgxMjIsInNwYW4iLDcpLE9lKDEyMyksaGUoKSgpLGRl'@; put 'KDEyNCwicCIsOCksT2UoMTI1LCIgQWRkIHJlY29yZDogIiksZGUoMTI2LCJzcGFuIiw3KSxPZSgxMjcpLGhlKCkoKSgpKCksV3QoMTI4LCJociIsMyksZ3QoMTI5LCR3dCwxNCwyLCJuZy1jb250YWluZXIiLDExKSxoZSgpKCkoKSxkZSgxMzAsImNsci1tb2RhbCIsMTIpLHBpKCJjbHJNb2Rh'@; put 'bE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKHYpe3JldHVybiBnaShoLnJlc3BvbnNlTW9kYWwsdil8fChoLnJlc3BvbnNlTW9kYWw9diksdn0pLGRlKDEzMSwiaDMiLDEzKSxPZSgxMzIsIlJlc3BvbnNlIiksaGUoKSxkZSgxMzMsImRpdiIsMTQpLE9lKDEzNCksaGUoKSxkZSgxMzUsImRpdiIsMTUp'@; put 'KDEzNiwiYnV0dG9uIiwxNiksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBoLnJlc3BvbnNlTW9kYWw9ITF9KSxPZSgxMzcsIiBPayAiKSxoZSgpKCkoKSksMiZkJiYoZmUoMTQpLFNyKG51bGw9PWguZW52aXJvbm1lbnRJbmZvP251bGw6aC5lbnZpcm9ubWVudEluZm8uU1lTU0lURSks'@; put 'ZmUoNCksU3IobnVsbD09aC5lbnZpcm9ubWVudEluZm8/bnVsbDpoLmVudmlyb25tZW50SW5mby5TWVNTQ1BMKSxmZSg0KSxTcihudWxsPT1oLmVudmlyb25tZW50SW5mbz9udWxsOmguZW52aXJvbm1lbnRJbmZvLlNZU1RDUElQSE9TVE5BTUUpLGZlKDQpLFNyKG51bGw9PWguZW52aXJvbm1l'@; put 'bnRJbmZvP251bGw6aC5lbnZpcm9ubWVudEluZm8uU1lTVkxPTkcpLGZlKDQpLFNyKG51bGw9PWguZW52aXJvbm1lbnRJbmZvP251bGw6aC5lbnZpcm9ubWVudEluZm8uTUVNU0laRSksZmUoNCksU3IobnVsbD09aC5lbnZpcm9ubWVudEluZm8/bnVsbDpoLmVudmlyb25tZW50SW5mby5TWVNQ'@; put 'Uk9DRVNTTU9ERSksZmUoNCksU3IobnVsbD09aC5lbnZpcm9ubWVudEluZm8/bnVsbDpoLmVudmlyb25tZW50SW5mby5TWVNIT1NUTkFNRSksZmUoNCksU3IobnVsbD09aC5lbnZpcm9ubWVudEluZm8/bnVsbDpoLmVudmlyb25tZW50SW5mby5TWVNVU0VSSUQpLGZlKDQpLFNyKG51bGw9PWgu'@; put 'ZW52aXJvbm1lbnRJbmZvP251bGw6aC5lbnZpcm9ubWVudEluZm8uU1lTSE9TVElORk9MT05HKSxmZSg0KSxTcihudWxsPT1oLmVudmlyb25tZW50SW5mbz9udWxsOmguZW52aXJvbm1lbnRJbmZvLlNZU0VOQ09ESU5HKSxmZSg0KSxTcihudWxsPT1oLmVudmlyb25tZW50SW5mbz9udWxsOmgu'@; put 'ZW52aXJvbm1lbnRJbmZvLkFVVE9FWEVDKSxmZSg5KSxTcihoLmFwcEluZm8uYXBwVmVyc2lvbiksZmUoNCksU3IoaC5hcHBJbmZvLmJ1aWxkVGltZXN0YW1wKSxmZSg0KSxTcihoLmFwcEluZm8uYWRhcHRlclZlcnNpb24pLGZlKDQpLFNyKGguaHR0cD8iWUVTIjoiTk8iKSxmZSg0KSxTcihu'@; put 'dWxsPT1oLmVudmlyb25tZW50SW5mbz9udWxsOmguZW52aXJvbm1lbnRJbmZvLkRDX0FETUlOX0dST1VQKSxmZSg0KSxTcihudWxsPT1oLmVudmlyb25tZW50SW5mbz9udWxsOmguZW52aXJvbm1lbnRJbmZvLkFQUF9MT0MpLGZlKDgpLFNyKG51bGw9PWgubGljZW5jZUluZm8/bnVsbDpoLmxp'@; put 'Y2VuY2VJbmZvLnZhbGlkX3VudGlsKSxmZSg0KSxTcihudWxsPT1oLmxpY2VuY2VJbmZvP251bGw6aC5saWNlbmNlSW5mby51c2Vyc19hbGxvd2VkKSxmZSg0KSxTcihudWxsPT1oLmxpY2VuY2VJbmZvP251bGw6aC5saWNlbmNlSW5mby5zaXRlX2lkX211bHRpcGxlKSxmZSg0KSxTcihudWxs'@; put 'IT1oLmxpY2VuY2VJbmZvJiZoLmxpY2VuY2VJbmZvLmRlbW8/IllFUyI6Ik5PIiksZmUoKSxNZSgibmdJZiIsaC5saWNlbmNlU3RhdGUudmFsdWUudmlld2VyX3Jvd3NfYWxsb3dlZCE9PWguSW5maW5pdHkpLGZlKCksTWUoIm5nSWYiLGgubGljZW5jZVN0YXRlLnZhbHVlLmVkaXRvcl9yb3dz'@; put 'X2FsbG93ZWQhPT1oLkluZmluaXR5KSxmZSgpLE1lKCJuZ0lmIixoLmxpY2VuY2VTdGF0ZS52YWx1ZS5zdGFnZV9yb3dzX2FsbG93ZWQhPT1oLkluZmluaXR5KSxmZSgpLE1lKCJuZ0lmIixoLmxpY2VuY2VTdGF0ZS52YWx1ZS5oaXN0b3J5X3Jvd3NfYWxsb3dlZCE9PWguSW5maW5pdHkpLGZl'@; put 'KCksTWUoIm5nSWYiLGgubGljZW5jZVN0YXRlLnZhbHVlLnN1Ym1pdF9yb3dzX2xpbWl0IT09aC5JbmZpbml0eSksZmUoKSxNZSgibmdJZiIsaC5saWNlbmNlU3RhdGUudmFsdWUudGFibGVzX2luX2xpYnJhcnlfbGltaXQhPT1oLkluZmluaXR5KSxmZSgpLE1lKCJuZ0lmIixoLmxpY2VuY2VT'@; put 'dGF0ZS52YWx1ZS52aWV3Ym94X2xpbWl0IT09aC5JbmZpbml0eSksZmUoKSxNZSgibmdJZiIsaC5saWNlbmNlU3RhdGUudmFsdWUubGluZWFnZV9kYWlseV9saW1pdCE9PWguSW5maW5pdHkpLGZlKDQpLFNyKGgubGljZW5jZVN0YXRlLnZhbHVlLnZpZXdib3g/IllFUyI6Ik5PIiksZmUoNCks'@; put 'U3IoaC5saWNlbmNlU3RhdGUudmFsdWUuZmlsZVVwbG9hZD8iWUVTIjoiTk8iKSxmZSg0KSxTcihoLmxpY2VuY2VTdGF0ZS52YWx1ZS5lZGl0UmVjb3JkPyJZRVMiOiJOTyIpLGZlKDQpLFNyKGgubGljZW5jZVN0YXRlLnZhbHVlLmFkZFJlY29yZD8iWUVTIjoiTk8iKSxmZSgyKSxNZSgibmdJ'@; put 'ZiIsMT09PShudWxsPT1oLmVudmlyb25tZW50SW5mbz9udWxsOmguZW52aXJvbm1lbnRJbmZvLklTQURNSU4pKSxmZSgpLGZpKCJjbHJNb2RhbE9wZW4iLGgucmVzcG9uc2VNb2RhbCksZmUoNCksTHIoIiAiLGgucmVzcG9uc2UsIiAiKSl9LGRlcGVuZGVuY2llczpbYmEsbDEscnUsWXUsVjAs'@; put 'SDJdLGVuY2Fwc3VsYXRpb246Mn0pfX1yZXR1cm4gY30pKCl9XTtsZXQgWHd0PSgoKT0+e2NsYXNzIGN7c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSl9c3RhdGlje3RoaXMuXHUwMjc1'@; put 'aW5qPUFyKHtpbXBvcnRzOltCYy5mb3JDaGlsZChLd3QpLEJjXX0pfX1yZXR1cm4gY30pKCkscXd0PSgoKT0+e2NsYXNzIGN7c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSl9c3RhdGlj'@; put 'e3RoaXMuXHUwMjc1aW5qPUFyKHtpbXBvcnRzOltMYSxYd3QsQjAsa2NdfSl9fXJldHVybiBjfSkoKTtmdW5jdGlvbiBKd3QoYyxsKXsxJmMmJld0KDAsImNsci1pY29uIiwxMil9ZnVuY3Rpb24gUXd0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiY2xyLWljb24iLDEzKSxGdCgi'@; put 'Y2xpY2siLGZ1bmN0aW9uKCl7d3QoYSk7Y29uc3QgaD1MZSgyKTtyZXR1cm4gaC5ncm91cFNlYXJjaD0iIixDdChoLmdyb3VwTGlzdE9uRmlsdGVyKCkpfSksaGUoKX19ZnVuY3Rpb24gZUN0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiY2xyLXRyZWUtbm9kZSIsNykoMSwiZGl2'@; put 'Iiw4KSgyLCJpbnB1dCIsOSwwKSxwaSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oaCl7d3QoYSk7Y29uc3QgZj1MZSgpO3JldHVybiBnaShmLmdyb3VwU2VhcmNoLGgpfHwoZi5ncm91cFNlYXJjaD1oKSxDdChoKX0pLEZ0KCJrZXl1cCIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUo'@; put 'KS5ncm91cExpc3RPbkZpbHRlcigpKX0pLGhlKCksZ3QoNCxKd3QsMSwwLCJjbHItaWNvbiIsMTApKDUsUXd0LDEsMCwiY2xyLWljb24iLDExKSxoZSgpKCl9aWYoMiZjKXtjb25zdCBhPWRhKDMpLGQ9TGUoKTtmZSgyKSxmaSgibmdNb2RlbCIsZC5ncm91cFNlYXJjaCksZmUoMiksTWUoIm5n'@; put 'SWYiLGEudmFsdWUubGVuZ3RoPDEpLGZlKCksTWUoIm5nSWYiLGEudmFsdWUubGVuZ3RoPjApfX1mdW5jdGlvbiB0Q3QoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJjbHItdHJlZS1ub2RlIiwxNSksRnQoImNsaWNrIixmdW5jdGlvbigpe3d0KGEpO2NvbnN0IGg9TGUoKS4kaW1w'@; put 'bGljaXQ7cmV0dXJuIEN0KExlKCkuZ3JvdXBPbkNsaWNrKGgpKX0pLGRlKDEsInAiLDE2KSxXdCgyLCJjbHItaWNvbiIsMTcpLE9lKDMpLGhlKCkoKX1pZigyJmMpe2NvbnN0IGE9TGUoKS4kaW1wbGljaXQsZD1MZSgpO1RyKCJhY3RpdmUiLGEuR1JPVVBVUkk9PT1kLmdyb3VwVXJpKSxmZSgz'@; put 'KSxMcigiICIsYS5HUk9VUE5BTUUsIiAiKX19ZnVuY3Rpb24gbkN0KGMsbCl7aWYoMSZjJiYoYWkoMCksZ3QoMSx0Q3QsNCwzLCJjbHItdHJlZS1ub2RlIiwxNCksc2koKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O2ZlKCksTWUoIm5nSWYiLCFhLmhpZGRlbil9fWZ1bmN0aW9uIHJDdChj'@; put 'LGwpezEmYyYmKGRlKDAsImRpdiIsMTgpKDEsInNwYW4iLDE5KSxPZSgyLCIgTG9hZGluZy4uLiAiKSxoZSgpKCkpfWZ1bmN0aW9uIGlDdChjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIsMjEpKDEsImRpdiIsMjIpKDIsInRhYmxlIiwyNCkoMywidGJvZHkiKSg0LCJ0ciIpKDUsInRkIiwyNSko'@; put 'NiwicCIsMjYpKDcsImIiKSxPZSg4KSxoZSgpKCkoKSgpLGRlKDksInRyIikoMTAsInRkIiwyNSkoMTEsImkiKSxPZSgxMiksaGUoKSgpKCkoKSgpKCkoKSksMiZjKXtjb25zdCBhPUxlKDIpO2ZlKDgpLFNyKGEuZ3JvdXBOYW1lKSxmZSg0KSxTcihhLmdyb3VwRGVzY3x8Im5vIGRlc2NyaXB0'@; put 'aW9uIil9fWZ1bmN0aW9uIGFDdChjLGwpezEmYyYmKGRlKDAsImg1IiksT2UoMSwiTm8gTWVtYmVycyBQcmVzZW50IiksaGUoKSl9ZnVuY3Rpb24gc0N0KGMsbCl7MSZjJiYoYWkoMCksZGUoMSwidGQiLDMxKSgyLCJiIiksT2UoMywiTkFNRSIpLGhlKCkoKSxkZSg0LCJ0ZCIsMzEpKDUsImIi'@; put 'KSxPZSg2LCJFTUFJTCIpLGhlKCkoKSxkZSg3LCJ0ZCIsMzEpKDgsImIiKSxPZSg5LCJDUkVBVEVEIiksaGUoKSgpLGRlKDEwLCJ0ZCIsMzIpKDExLCJiIiksT2UoMTIsIlVQREFURUQiKSxoZSgpKCksc2koKSl9ZnVuY3Rpb24gb0N0KGMsbCl7MSZjJiYoYWkoMCksZGUoMSwidGQiLDMxKSgy'@; put 'LCJiIiksT2UoMywiSUQiKSxoZSgpKCksZGUoNCwidGQiLDMxKSg1LCJiIiksT2UoNiwiRElTUExBWSBOQU1FIiksaGUoKSgpLGRlKDcsInRkIiwzMSkoOCwiYiIpLE9lKDksIlVTRVIgTkFNRSIpLGhlKCkoKSxzaSgpKX1mdW5jdGlvbiBsQ3QoYyxsKXtpZigxJmMmJihhaSgwKSxkZSgxLCJ0'@; put 'ZCIsMzIpLE9lKDIpLGhlKCksZGUoMywidGQiLDMyKSxPZSg0KSxoZSgpLGRlKDUsInRkIiwzMiksT2UoNiksaGUoKSxkZSg3LCJ0ZCIsMzIpLE9lKDgpLGhlKCksc2koKSksMiZjKXtjb25zdCBhPUxlKCkuJGltcGxpY2l0O2ZlKDIpLFNyKGEuTUVNQkVSTkFNRSksZmUoMiksU3IoYS5FTUFJ'@; put 'TCksZmUoMiksU3IoYS5NRU1CRVJDUkVBVEVEKSxmZSgyKSxTcihhLk1FTUJFUlVQREFURUQpfX1mdW5jdGlvbiBjQ3QoYyxsKXtpZigxJmMmJihhaSgwKSxkZSgxLCJ0ZCIsMzIpLE9lKDIpLGhlKCksZGUoMywidGQiLDMyKSxPZSg0KSxoZSgpLGRlKDUsInRkIiwzMiksT2UoNiksaGUoKSxz'@; put 'aSgpKSwyJmMpe2NvbnN0IGE9TGUoKS4kaW1wbGljaXQ7ZmUoMiksU3IoYS5JRCksZmUoMiksU3IoYS5ESVNQTEFZTkFNRSksZmUoMiksU3IoYS5VU0VSTkFNRSl9fWZ1bmN0aW9uIHVDdChjLGwpe2lmKDEmYyYmKGRlKDAsInRyIiwzMyksZ3QoMSxsQ3QsOSw0LCJuZy1jb250YWluZXIiLDYp'@; put 'KDIsY0N0LDcsMywibmctY29udGFpbmVyIiw2KSxoZSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQsZD1MZSg0KTtNZSgicm91dGVyTGluayIsIi92aWV3L3VzZXJuYXYvdXNlcnMvIisoYS5VUklNRU18fGEuSUQpKSxmZSgpLE1lKCJuZ0lmIixkLnNlcnZlclR5cGU9PT1kLlNlcnZlclR5'@; put 'cGUuU2FzOSksZmUoKSxNZSgibmdJZiIsZC5zZXJ2ZXJUeXBlPT09ZC5TZXJ2ZXJUeXBlLlNhc2pzKX19ZnVuY3Rpb24gZEN0KGMsbCl7aWYoMSZjJiYoZGUoMCwidGFibGUiLDI5KSgxLCJ0aGVhZCIpKDIsInRyIiksZ3QoMyxzQ3QsMTMsMCwibmctY29udGFpbmVyIiw2KSg0LG9DdCwxMCww'@; put 'LCJuZy1jb250YWluZXIiLDYpLGhlKCkoKSxkZSg1LCJ0Ym9keSIpLGd0KDYsdUN0LDMsMywidHIiLDMwKSxoZSgpKCkpLDImYyl7Y29uc3QgYT1MZSgzKTtmZSgzKSxNZSgibmdJZiIsYS5zZXJ2ZXJUeXBlPT09YS5TZXJ2ZXJUeXBlLlNhczkpLGZlKCksTWUoIm5nSWYiLGEuc2VydmVyVHlw'@; put 'ZT09PWEuU2VydmVyVHlwZS5TYXNqcyksZmUoMiksTWUoIm5nRm9yT2YiLGEuZ3JvdXBNZW1iZXJzKX19ZnVuY3Rpb24gaEN0KGMsbCl7aWYoMSZjJiYoZGUoMCwiZGl2IikoMSwiaDMiKSxPZSgyKSxoZSgpLGd0KDMsYUN0LDIsMCwiaDUiLDYpLGRlKDQsImRpdiIsMjcpLGd0KDUsZEN0LDcs'@; put 'MywidGFibGUiLDI4KSxoZSgpKCkpLDImYyl7Y29uc3QgYT1MZSgyKTtmZSgyKSxMcigiTUVNQkVSUyAoIixhLmdyb3VwTWVtYmVyQ291bnQsIikiKSxmZSgpLE1lKCJuZ0lmIiwwPT1hLmdyb3VwTWVtYmVyQ291bnQpLGZlKDIpLE1lKCJuZ0lmIiwwIT1hLmdyb3VwTWVtYmVyQ291bnQpfX1m'@; put 'dW5jdGlvbiBmQ3QoYyxsKXsxJmMmJihkZSgwLCJoNSIpLE9lKDEsIk5vIE1lbWJlcnMgUHJlc2VudCIpLGhlKCkpfWZ1bmN0aW9uIHBDdChjLGwpe2lmKDEmYyYmKGRlKDAsInRyIiwzMykoMSwidGQiLDMyKSxPZSgyKSxoZSgpKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtNZSgicm91'@; put 'dGVyTGluayIsIi92aWV3L3VzZXJuYXYvdXNlcnMvIithLk1FTUJFUklEKSxmZSgyKSxTcihhLk1FTUJFUk5BTUUpfX1mdW5jdGlvbiBnQ3QoYyxsKXtpZigxJmMmJihkZSgwLCJ0YWJsZSIsMjkpKDEsInRoZWFkIikoMiwidHIiKSgzLCJ0ZCIpKDQsImIiKSxPZSg1KSxoZSgpKCkoKSgpLGRl'@; put 'KDYsInRib2R5IiksZ3QoNyxwQ3QsMywyLCJ0ciIsMzApLGhlKCkoKSksMiZjKXtjb25zdCBhPUxlKDMpO2ZlKDUpLExyKCJNRU1CRVJTICgiLGEuZ3JvdXBNZW1iZXJDb3VudCwiKSIpLGZlKDIpLE1lKCJuZ0Zvck9mIixhLmdyb3VwTWVtYmVycyl9fWZ1bmN0aW9uIG1DdChjLGwpe2lmKDEm'@; put 'YyYmKGRlKDAsImRpdiIpKDEsImgzIiksT2UoMiksaGUoKSxndCgzLGZDdCwyLDAsImg1Iiw2KSxkZSg0LCJkaXYiLDI3KSxndCg1LGdDdCw4LDIsInRhYmxlIiwyOCksaGUoKSgpKSwyJmMpe2NvbnN0IGE9TGUoMik7ZmUoMiksU3IoYS5ncm91cE5hbWUpLGZlKCksTWUoIm5nSWYiLDA9PWEu'@; put 'Z3JvdXBNZW1iZXJDb3VudCksZmUoMiksTWUoIm5nSWYiLDAhPWEuZ3JvdXBNZW1iZXJDb3VudCl9fWZ1bmN0aW9uIHZDdChjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIpLGd0KDEsaUN0LDEzLDIsImRpdiIsMjApLGRlKDIsImRpdiIsMjEpKDMsImRpdiIsMjIpKDQsImRpdiIsMjMpLGd0KDUs'@; put 'aEN0LDYsMywiZGl2Iiw2KSg2LG1DdCw2LDMsImRpdiIsNiksV3QoNywiYnIiKSxoZSgpKCkoKSgpKSwyJmMpe2NvbnN0IGE9TGUoKTtmZSgpLE1lKCJuZ0lmIixhLnNlcnZlclR5cGUhPT1hLlNlcnZlclR5cGUuU2FzVml5YSksZmUoNCksTWUoIm5nSWYiLGEuc2VydmVyVHlwZSE9PWEuU2Vy'@; put 'dmVyVHlwZS5TYXNWaXlhKSxmZSgpLE1lKCJuZ0lmIixhLnNlcnZlclR5cGU9PT1hLlNlcnZlclR5cGUuU2FzVml5YSl9fWxldCB5OGU9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmLHYpe3RoaXMuc2FzU2VydmljZT1hLHRoaXMuaGVscGVyU2VydmljZT1kLHRoaXMucm91dGVy'@; put 'PWgsdGhpcy5sb2NhdGlvbj1mLHRoaXMucm91dGU9dix0aGlzLmdyb3VwU2VhcmNoPSIiLHRoaXMucGFyYW1QcmVzZW50PSExLHRoaXMucGFyYW1VUkk9IiIsdGhpcy5ncm91cFVyaT0iIix0aGlzLmdyb3VwTmFtZT0iIix0aGlzLmdyb3VwRGVzYz0iIix0aGlzLnNhc2pzQ29uZmlnPW5ldyB5'@; put 'aC5TQVNqc0NvbmZpZyx0aGlzLmlzVml5YT0hMSx0aGlzLmxvYWRpbmc9ITEsdGhpcy5TZXJ2ZXJUeXBlPU4wLlksdGhpcy5zYXNqc0NvbmZpZz10aGlzLnNhc1NlcnZpY2UuZ2V0U2FzanNDb25maWcoKSx0aGlzLnNlcnZlclR5cGU9dGhpcy5zYXNTZXJ2aWNlLmdldFNlcnZlclR5cGUoKSwi'@; put 'U0FTVklZQSI9PT10aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGUmJih0aGlzLmlzVml5YT0hMCl9bmdPbkluaXQoKXtKbi52aWV3ZXIuY3VycmVudFNlbGVjdGlvbj0idmlldy91c2VybmF2L2dyb3VwcyIsdm9pZCAwIT09dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMudXJpJiYodGhpcy5w'@; put 'YXJhbVByZXNlbnQ9ITAsdGhpcy5wYXJhbVVSST10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy51cmkpLEpuLnVzZXJuYXYuZ3JvdXBMaXN0JiYhdGhpcy5wYXJhbVByZXNlbnQ/KHRoaXMuZ3JvdXBzPUpuLnVzZXJuYXYuZ3JvdXBMaXN0LHRoaXMuZ3JvdXBTZWFyY2g9Sm4udXNlcm5hdi5n'@; put 'cm91cFNlYXJjaCk6KHZvaWQgMD09PUpuLnVzZXJuYXYuZ3JvdXBMaXN0Pyh0aGlzLmxvYWRpbmc9ITAsdGhpcy5pc1ZpeWE/ZmV0Y2godGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwrIi9pZGVudGl0aWVzL2dyb3Vwcz9saW1pdD0yMDAwIix7aGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlv'@; put 'bi9qc29uIn19KS50aGVuKGE9PmEudGV4dCgpKS50aGVuKGE9PntsZXQgaD1KU09OLnBhcnNlKGEpLml0ZW1zLm1hcChmPT4oe0dST1VQVVJJOmYuaWQsR1JPVVBOQU1FOmYubmFtZSxHUk9VUERFU0M6Zi5kZXNjcmlwdGlvbn0pKTt0aGlzLmxvYWRpbmc9ITEsdGhpcy5ncm91cHM9aCxKbi51'@; put 'c2VybmF2Lmdyb3VwTGlzdD1ofSk6dGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInB1YmxpYy9nZXRncm91cHMiLG51bGwpLnRoZW4oYT0+e3RoaXMubG9hZGluZz0hMSx0aGlzLmdyb3Vwcz1hLmFkYXB0ZXJSZXNwb25zZS5ncm91cHMsSm4udXNlcm5hdi5ncm91cExpc3Q9YS5hZGFwdGVyUmVz'@; put 'cG9uc2UuZ3JvdXBzfSkpOih0aGlzLmdyb3Vwcz1Kbi51c2VybmF2Lmdyb3VwTGlzdCx0aGlzLmdyb3VwU2VhcmNoPUpuLnVzZXJuYXYuZ3JvdXBTZWFyY2gpLHRoaXMucGFyYW1QcmVzZW50JiYodGhpcy5sb2FkaW5nPSEwLHRoaXMuaXNWaXlhP2ZldGNoKHRoaXMuc2FzanNDb25maWcuc2Vy'@; put 'dmVyVXJsKyIvaWRlbnRpdGllcy9ncm91cHMvIit0aGlzLnBhcmFtVVJJKyIvbWVtYmVycz9saW1pdD0yMDAwIix7aGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn19KS50aGVuKGE9PmEudGV4dCgpKS50aGVuKGE9PntsZXQgZD1KU09OLnBhcnNlKGEpO3RoaXMubG9hZGluZz0h'@; put 'MTtsZXQgaD1kLml0ZW1zLm1hcChmPT4oe01FTUJFUk5BTUU6Zi5uYW1lLE1FTUJFUklEOmYuaWR9KSk7dGhpcy5ncm91cE1lbWJlcnM9aCx0aGlzLmdyb3VwTWVtYmVyQ291bnQ9aC5sZW5ndGgsdGhpcy5ncm91cFVyaT10aGlzLnBhcmFtVVJJLHRoaXMuZ3JvdXBOYW1lPXRoaXMucGFyYW1V'@; put 'Ukl9KTp0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgidXNlcm5hdi91c2VybWVtYmVyc2J5Z3JvdXAiLHtpd2FudDpbe2dyb3VwaWQ6dGhpcy5wYXJhbVVSSX1dfSkudGhlbihkPT57dGhpcy5ncm91cE1lbWJlcnM9ZC5hZGFwdGVyUmVzcG9uc2Uuc2FzbWVtYmVycyx0aGlzLmdyb3VwTWVtYmVy'@; put 'Q291bnQ9ZC5hZGFwdGVyUmVzcG9uc2Uuc2FzbWVtYmVycy5sZW5ndGgsdm9pZCAwIT09ZC5hZGFwdGVyUmVzcG9uc2Uuc2FzbWVtYmVyc1swXSYmKHRoaXMubG9hZGluZz0hMSx0aGlzLmdyb3VwVXJpPWQuYWRhcHRlclJlc3BvbnNlLnNhc21lbWJlcnNbMF0uVVJJTUVNfHx0aGlzLnBhcmFt'@; put 'VVJJLHRoaXMuZ3JvdXBOYW1lPWQuYWRhcHRlclJlc3BvbnNlLnNhc21lbWJlcnNbMF0uR1JPVVBOQU1FLHRoaXMuZ3JvdXBEZXNjPWQuYWRhcHRlclJlc3BvbnNlLnNhc21lbWJlcnNbMF0uR1JPVVBERVNDLHRoaXMuZ3JvdXBOYW1lfHwodGhpcy5ncm91cE5hbWU9dGhpcy5wYXJhbVVSSSkp'@; put 'fSkpKX1ncm91cExpc3RPbkZpbHRlcigpe3RoaXMuaGVscGVyU2VydmljZS5saWJyYXJ5T25GaWx0ZXIodGhpcy5ncm91cHMsdGhpcy5ncm91cFNlYXJjaCwiR1JPVVBOQU1FIiksSm4udXNlcm5hdi5ncm91cFNlYXJjaD10aGlzLmdyb3VwU2VhcmNofWdyb3VwT25DbGljayhhKXt0aGlzLmxv'@; put 'YWRpbmc9ITA7bGV0IGQ9dGhpcy5yb3V0ZXIudXJsO3RoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKHRoaXMucGFyYW1QcmVzZW50P2Quc2xpY2UoMCxkLmxhc3RJbmRleE9mKCIvIikpKyIvIitlbmNvZGVVUkkoYS5HUk9VUFVSSSk6ZCsiLyIrZW5jb2RlVVJJKGEuR1JPVVBVUkkpKSx0aGlz'@; put 'LmlzVml5YT9mZXRjaCh0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybCsiL2lkZW50aXRpZXMvZ3JvdXBzLyIrYS5HUk9VUFVSSSsiL21lbWJlcnM/bGltaXQ9MjAwMCIse2hlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiJ9fSkudGhlbihoPT5oLnRleHQoKSkudGhlbihoPT57bGV0'@; put 'IGY9SlNPTi5wYXJzZShoKTt0aGlzLmxvYWRpbmc9ITEsdGhpcy5ncm91cFVyaT1hLkdST1VQVVJJLHRoaXMuZ3JvdXBOYW1lPWEuR1JPVVBOQU1FLHRoaXMuZ3JvdXBEZXNjPWEuR1JPVVBERVNDO2xldCB2PWYuaXRlbXMubWFwKE09Pih7TUVNQkVSTkFNRTpNLm5hbWUsTUVNQkVSSUQ6TS5p'@; put 'ZH0pKTt0aGlzLmdyb3VwTWVtYmVycz12LHRoaXMuZ3JvdXBNZW1iZXJDb3VudD12Lmxlbmd0aH0pOnRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJ1c2VybmF2L3VzZXJtZW1iZXJzYnlncm91cCIse2l3YW50Olt7Z3JvdXBpZDphLkdST1VQVVJJfV19KS50aGVuKGY9Pnt0aGlzLmxvYWRpbmc9'@; put 'ITEsdGhpcy5ncm91cFVyaT1hLkdST1VQVVJJLHRoaXMuZ3JvdXBOYW1lPWEuR1JPVVBOQU1FLHRoaXMuZ3JvdXBEZXNjPWEuR1JPVVBERVNDLHRoaXMuZ3JvdXBNZW1iZXJzPWYuYWRhcHRlclJlc3BvbnNlLnNhc21lbWJlcnMsdGhpcy5ncm91cE1lbWJlckNvdW50PWYuYWRhcHRlclJlc3Bv'@; put 'bnNlLnNhc21lbWJlcnMubGVuZ3RofSl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUoVm8pLCRlKGJ1KSwkZShMbyksJGUocGgpLCRlKHl1KSl9fXN0YXRpY3t0aGlzLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJhcHAtZ3Jv'@; put 'dXAiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xzOjcsdmFyczo0LGNvbnN0czpbWyJzZWFyY2hMaWJUcmVlSW5wdXQiLCIiXSxbMSwic2lkZWJhci1oZWlnaHQiXSxbImNsYXNzIiwic2VhcmNoLW5vZGUiLDQsIm5nSWYiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0s'@; put 'WzEsImNvbnRlbnQtYXJlYSJdLFsiY2xhc3MiLCJsb2FkaW5nU3Bpbm5lciIsNCwibmdJZiJdLFs0LCJuZ0lmIl0sWzEsInNlYXJjaC1ub2RlIl0sWzEsInRyZWUtc2VhcmNoLXdyYXBwZXIiXSxbImFwcFN0ZWFsRm9jdXMiLCIiLCJjbHJJbnB1dCIsIiIsInBsYWNlaG9sZGVyIiwiRmlsdGVy'@; put 'IGJ5IEdyb3VwcyIsIm5hbWUiLCJpbnB1dCIsImF1dG9jb21wbGV0ZSIsIm9mZiIsMywibmdNb2RlbENoYW5nZSIsImtleXVwIiwibmdNb2RlbCJdLFsic2hhcGUiLCJzZWFyY2giLDQsIm5nSWYiXSxbInNoYXBlIiwidGltZXMiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJzaGFwZSIsInNlYXJj'@; put 'aCJdLFsic2hhcGUiLCJ0aW1lcyIsMywiY2xpY2siXSxbMywiYWN0aXZlIiwiY2xpY2siLDQsIm5nSWYiXSxbMywiY2xpY2siXSxbMSwibS0wIiwiY3Vyc29yLXBvaW50ZXIiLCJsaXN0LXBhZGRpbmciXSxbInNoYXBlIiwidXNlcnMiXSxbMSwibG9hZGluZ1NwaW5uZXIiXSxbMSwic3Bpbm5l'@; put 'ciJdLFsiY2xhc3MiLCJjbHItcm93Iiw0LCJuZ0lmIl0sWzEsImNsci1yb3ciXSxbMSwiY2xyLWNvbC04Il0sWzEsImNhcmQiLCJncm91cC1kYXRhIl0sWzEsInRhYmxlIiwiZ3JvdXAtaW5mbyJdLFsxLCJsZWZ0Il0sWzEsImdyb3VwLWluZm8tdGV4dCJdLFsxLCJ0YWJsZS1jb250YWluZXIi'@; put 'XSxbImNsYXNzIiwidGFibGUgbWVtYmVyLXRhYmxlIiw0LCJuZ0lmIl0sWzEsInRhYmxlIiwibWVtYmVyLXRhYmxlIl0sWzMsInJvdXRlckxpbmsiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJ3aWR0aC0yNSJdLFsxLCIiXSxbMywicm91dGVyTGluayJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihk'@; put 'LGgpezEmZCYmKGRlKDAsImFwcC1zaWRlYmFyIiwxKSgxLCJjbHItdHJlZSIpLGd0KDIsZUN0LDYsMywiY2xyLXRyZWUtbm9kZSIsMikoMyxuQ3QsMiwxLCJuZy1jb250YWluZXIiLDMpLGhlKCkoKSxkZSg0LCJkaXYiLDQpLGd0KDUsckN0LDMsMCwiZGl2Iiw1KSg2LHZDdCw4LDMsImRpdiIs'@; put 'NiksaGUoKSksMiZkJiYoZmUoMiksTWUoIm5nSWYiLGguZ3JvdXBzKSxmZSgpLE1lKCJuZ0Zvck9mIixoLmdyb3VwcyksZmUoMiksTWUoIm5nSWYiLGgubG9hZGluZyksZmUoKSxNZSgibmdJZiIsaC5ncm91cE1lbWJlcnMmJiFoLmxvYWRpbmcpKX0sZGVwZW5kZW5jaWVzOltRcyxiYSxsMSxH'@; put 'bCx0bCxXbyxBaCxQZCxPbCxZMSxhNCxpNF0sZW5jYXBzdWxhdGlvbjoyfSl9fXJldHVybiBjfSkoKTtmdW5jdGlvbiB5Q3QoKXt9ZnVuY3Rpb24gZHRlKGMpe3JldHVybiBudWxsPT1jP3lDdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3IoYyl9fWZ1bmN0aW9uIGI4ZShj'@; put 'KXtyZXR1cm4gbnVsbD09Yz9bXTpBcnJheS5pc0FycmF5KGMpP2M6QXJyYXkuZnJvbShjKX1mdW5jdGlvbiBfQ3QoKXtyZXR1cm5bXX1mdW5jdGlvbiBfOGUoYyl7cmV0dXJuIG51bGw9PWM/X0N0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvckFsbChjKX19ZnVuY3Rpb24g'@; put 'dzhlKGMpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hdGNoZXMoYyl9fWZ1bmN0aW9uIEM4ZShjKXtyZXR1cm4gZnVuY3Rpb24obCl7cmV0dXJuIGwubWF0Y2hlcyhjKX19dmFyIFNDdD1BcnJheS5wcm90b3R5cGUuZmluZDtmdW5jdGlvbiB4Q3QoKXtyZXR1cm4gdGhpcy5maXJz'@; put 'dEVsZW1lbnRDaGlsZH12YXIgVEN0PUFycmF5LnByb3RvdHlwZS5maWx0ZXI7ZnVuY3Rpb24gQUN0KCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5jaGlsZHJlbil9ZnVuY3Rpb24gUzhlKGMpe3JldHVybiBuZXcgQXJyYXkoYy5sZW5ndGgpfWZ1bmN0aW9uIHZOKGMsbCl7dGhpcy5vd25lckRv'@; put 'Y3VtZW50PWMub3duZXJEb2N1bWVudCx0aGlzLm5hbWVzcGFjZVVSST1jLm5hbWVzcGFjZVVSSSx0aGlzLl9uZXh0PW51bGwsdGhpcy5fcGFyZW50PWMsdGhpcy5fX2RhdGFfXz1sfWZ1bmN0aW9uIE9DdChjLGwsYSxkLGgsZil7Zm9yKHZhciBNLHY9MCxJPWwubGVuZ3RoLEc9Zi5sZW5ndGg7'@; put 'djxHOysrdikoTT1sW3ZdKT8oTS5fX2RhdGFfXz1mW3ZdLGRbdl09TSk6YVt2XT1uZXcgdk4oYyxmW3ZdKTtmb3IoO3Y8STsrK3YpKE09bFt2XSkmJihoW3ZdPU0pfWZ1bmN0aW9uIFBDdChjLGwsYSxkLGgsZix2KXt2YXIgTSxJLEVlLEc9bmV3IE1hcCxyZT1sLmxlbmd0aCx1ZT1mLmxlbmd0'@; put 'aCx5ZT1uZXcgQXJyYXkocmUpO2ZvcihNPTA7TTxyZTsrK00pKEk9bFtNXSkmJih5ZVtNXT1FZT12LmNhbGwoSSxJLl9fZGF0YV9fLE0sbCkrIiIsRy5oYXMoRWUpP2hbTV09STpHLnNldChFZSxJKSk7Zm9yKE09MDtNPHVlOysrTSlFZT12LmNhbGwoYyxmW01dLE0sZikrIiIsKEk9Ry5nZXQo'@; put 'RWUpKT8oZFtNXT1JLEkuX19kYXRhX189ZltNXSxHLmRlbGV0ZShFZSkpOmFbTV09bmV3IHZOKGMsZltNXSk7Zm9yKE09MDtNPHJlOysrTSkoST1sW01dKSYmRy5nZXQoeWVbTV0pPT09SSYmKGhbTV09SSl9ZnVuY3Rpb24gRkN0KGMpe3JldHVybiBjLl9fZGF0YV9ffWZ1bmN0aW9uIE5DdChj'@; put 'KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGMmJiJsZW5ndGgiaW4gYz9jOkFycmF5LmZyb20oYyl9ZnVuY3Rpb24gWkN0KGMsbCl7cmV0dXJuIGM8bD8tMTpjPmw/MTpjPj1sPzA6TmFOfXZOLnByb3RvdHlwZT17Y29uc3RydWN0b3I6dk4sYXBwZW5kQ2hpbGQ6ZnVuY3Rpb24oYyl7cmV0dXJu'@; put 'IHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUoYyx0aGlzLl9uZXh0KX0saW5zZXJ0QmVmb3JlOmZ1bmN0aW9uKGMsbCl7cmV0dXJuIHRoaXMuX3BhcmVudC5pbnNlcnRCZWZvcmUoYyxsKX0scXVlcnlTZWxlY3RvcjpmdW5jdGlvbihjKXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0'@; put 'b3IoYyl9LHF1ZXJ5U2VsZWN0b3JBbGw6ZnVuY3Rpb24oYyl7cmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yQWxsKGMpfX07dmFyIGh0ZT0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI7Y29uc3QgTThlPXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4aHRt'@; put 'bDpodGUseGxpbms6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHhtbDoiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8ifTtmdW5jdGlvbiB5TihjKXt2YXIgbD1jKz0iIixhPWwuaW5kZXhPZigi'@; put 'OiIpO3JldHVybiBhPj0wJiYieG1sbnMiIT09KGw9Yy5zbGljZSgwLGEpKSYmKGM9Yy5zbGljZShhKzEpKSxNOGUuaGFzT3duUHJvcGVydHkobCk/e3NwYWNlOk04ZVtsXSxsb2NhbDpjfTpjfWZ1bmN0aW9uIHFDdChjKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZShj'@; put 'KX19ZnVuY3Rpb24gSkN0KGMpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlTlMoYy5zcGFjZSxjLmxvY2FsKX19ZnVuY3Rpb24gUUN0KGMsbCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zZXRBdHRyaWJ1dGUoYyxsKX19ZnVuY3Rpb24gZVN0KGMsbCl7cmV0dXJuIGZ1'@; put 'bmN0aW9uKCl7dGhpcy5zZXRBdHRyaWJ1dGVOUyhjLnNwYWNlLGMubG9jYWwsbCl9fWZ1bmN0aW9uIHRTdChjLGwpe3JldHVybiBmdW5jdGlvbigpe3ZhciBhPWwuYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PWE/dGhpcy5yZW1vdmVBdHRyaWJ1dGUoYyk6dGhpcy5zZXRBdHRyaWJ1dGUo'@; put 'YyxhKX19ZnVuY3Rpb24gblN0KGMsbCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9bC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09YT90aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKGMuc3BhY2UsYy5sb2NhbCk6dGhpcy5zZXRBdHRyaWJ1dGVOUyhjLnNwYWNlLGMubG9jYWwsYSl9fWZ1bmN0'@; put 'aW9uIHg4ZShjKXtyZXR1cm4gYy5vd25lckRvY3VtZW50JiZjLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fGMuZG9jdW1lbnQmJmN8fGMuZGVmYXVsdFZpZXd9ZnVuY3Rpb24gaVN0KGMpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoYyl9fWZ1bmN0aW9u'@; put 'IGFTdChjLGwsYSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eShjLGwsYSl9fWZ1bmN0aW9uIHNTdChjLGwsYSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGQ9bC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09ZD90aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KGMp'@; put 'OnRoaXMuc3R5bGUuc2V0UHJvcGVydHkoYyxkLGEpfX1mdW5jdGlvbiBrdyhjLGwpe3JldHVybiBjLnN0eWxlLmdldFByb3BlcnR5VmFsdWUobCl8fHg4ZShjKS5nZXRDb21wdXRlZFN0eWxlKGMsbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShsKX1mdW5jdGlvbiBsU3QoYyl7cmV0dXJuIGZ1bmN0'@; put 'aW9uKCl7ZGVsZXRlIHRoaXNbY119fWZ1bmN0aW9uIGNTdChjLGwpe3JldHVybiBmdW5jdGlvbigpe3RoaXNbY109bH19ZnVuY3Rpb24gdVN0KGMsbCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9bC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09YT9kZWxldGUgdGhpc1tjXTp0aGlzW2Nd'@; put 'PWF9fWZ1bmN0aW9uIEU4ZShjKXtyZXR1cm4gYy50cmltKCkuc3BsaXQoL158XHMrLyl9ZnVuY3Rpb24gZnRlKGMpe3JldHVybiBjLmNsYXNzTGlzdHx8bmV3IFQ4ZShjKX1mdW5jdGlvbiBUOGUoYyl7dGhpcy5fbm9kZT1jLHRoaXMuX25hbWVzPUU4ZShjLmdldEF0dHJpYnV0ZSgiY2xhc3Mi'@; put 'KXx8IiIpfWZ1bmN0aW9uIEE4ZShjLGwpe2Zvcih2YXIgYT1mdGUoYyksZD0tMSxoPWwubGVuZ3RoOysrZDxoOylhLmFkZChsW2RdKX1mdW5jdGlvbiBrOGUoYyxsKXtmb3IodmFyIGE9ZnRlKGMpLGQ9LTEsaD1sLmxlbmd0aDsrK2Q8aDspYS5yZW1vdmUobFtkXSl9ZnVuY3Rpb24gaFN0KGMp'@; put 'e3JldHVybiBmdW5jdGlvbigpe0E4ZSh0aGlzLGMpfX1mdW5jdGlvbiBmU3QoYyl7cmV0dXJuIGZ1bmN0aW9uKCl7azhlKHRoaXMsYyl9fWZ1bmN0aW9uIHBTdChjLGwpe3JldHVybiBmdW5jdGlvbigpeyhsLmFwcGx5KHRoaXMsYXJndW1lbnRzKT9BOGU6azhlKSh0aGlzLGMpfX1mdW5jdGlv'@; put 'biBtU3QoKXt0aGlzLnRleHRDb250ZW50PSIifWZ1bmN0aW9uIHZTdChjKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PWN9fWZ1bmN0aW9uIHlTdChjKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbD1jLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLnRleHRDb250ZW50PWw/'@; put 'PyIifX1mdW5jdGlvbiBfU3QoKXt0aGlzLmlubmVySFRNTD0iIn1mdW5jdGlvbiB3U3QoYyl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5pbm5lckhUTUw9Y319ZnVuY3Rpb24gQ1N0KGMpe3JldHVybiBmdW5jdGlvbigpe3ZhciBsPWMuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMuaW5uZXJI'@; put 'VE1MPWw/PyIifX1mdW5jdGlvbiBNU3QoKXt0aGlzLm5leHRTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodGhpcyl9ZnVuY3Rpb24gRVN0KCl7dGhpcy5wcmV2aW91c1NpYmxpbmcmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcyx0aGlzLnBhcmVudE5vZGUu'@; put 'Zmlyc3RDaGlsZCl9ZnVuY3Rpb24gQVN0KGMpe3JldHVybiBmdW5jdGlvbigpe3ZhciBsPXRoaXMub3duZXJEb2N1bWVudCxhPXRoaXMubmFtZXNwYWNlVVJJO3JldHVybiBhPT09aHRlJiZsLmRvY3VtZW50RWxlbWVudC5uYW1lc3BhY2VVUkk9PT1odGU/bC5jcmVhdGVFbGVtZW50KGMpOmwu'@; put 'Y3JlYXRlRWxlbWVudE5TKGEsYyl9fWZ1bmN0aW9uIGtTdChjKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhjLnNwYWNlLGMubG9jYWwpfX1mdW5jdGlvbiBEOGUoYyl7dmFyIGw9eU4oYyk7cmV0dXJuKGwubG9jYWw/a1N0OkFT'@; put 'dCkobCl9ZnVuY3Rpb24gSVN0KCl7cmV0dXJuIG51bGx9ZnVuY3Rpb24gTFN0KCl7dmFyIGM9dGhpcy5wYXJlbnROb2RlO2MmJmMucmVtb3ZlQ2hpbGQodGhpcyl9ZnVuY3Rpb24gUFN0KCl7dmFyIGM9dGhpcy5jbG9uZU5vZGUoITEpLGw9dGhpcy5wYXJlbnROb2RlO3JldHVybiBsP2wuaW5z'@; put 'ZXJ0QmVmb3JlKGMsdGhpcy5uZXh0U2libGluZyk6Y31mdW5jdGlvbiBGU3QoKXt2YXIgYz10aGlzLmNsb25lTm9kZSghMCksbD10aGlzLnBhcmVudE5vZGU7cmV0dXJuIGw/bC5pbnNlcnRCZWZvcmUoYyx0aGlzLm5leHRTaWJsaW5nKTpjfWZ1bmN0aW9uIGpTdChjKXtyZXR1cm4gZnVuY3Rp'@; put 'b24oKXt2YXIgbD10aGlzLl9fb247aWYobCl7Zm9yKHZhciBmLGE9MCxkPS0xLGg9bC5sZW5ndGg7YTxoOysrYSlmPWxbYV0sYy50eXBlJiZmLnR5cGUhPT1jLnR5cGV8fGYubmFtZSE9PWMubmFtZT9sWysrZF09Zjp0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoZi50eXBlLGYubGlzdGVuZXIs'@; put 'Zi5vcHRpb25zKTsrK2Q/bC5sZW5ndGg9ZDpkZWxldGUgdGhpcy5fX29ufX19ZnVuY3Rpb24gelN0KGMsbCxhKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgaCxkPXRoaXMuX19vbixmPWZ1bmN0aW9uIFZTdChjKXtyZXR1cm4gZnVuY3Rpb24obCl7Yy5jYWxsKHRoaXMsbCx0aGlzLl9fZGF0YV9f'@; put 'KX19KGwpO2lmKGQpZm9yKHZhciB2PTAsTT1kLmxlbmd0aDt2PE07Kyt2KWlmKChoPWRbdl0pLnR5cGU9PT1jLnR5cGUmJmgubmFtZT09PWMubmFtZSlyZXR1cm4gdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGgudHlwZSxoLmxpc3RlbmVyLGgub3B0aW9ucyksdGhpcy5hZGRFdmVudExpc3Rl'@; put 'bmVyKGgudHlwZSxoLmxpc3RlbmVyPWYsaC5vcHRpb25zPWEpLHZvaWQoaC52YWx1ZT1sKTt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoYy50eXBlLGYsYSksaD17dHlwZTpjLnR5cGUsbmFtZTpjLm5hbWUsdmFsdWU6bCxsaXN0ZW5lcjpmLG9wdGlvbnM6YX0sZD9kLnB1c2goaCk6dGhpcy5fX29u'@; put 'PVtoXX19ZnVuY3Rpb24gSThlKGMsbCxhKXt2YXIgZD14OGUoYyksaD1kLkN1c3RvbUV2ZW50OyJmdW5jdGlvbiI9PXR5cGVvZiBoP2g9bmV3IGgobCxhKTooaD1kLmRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpLGE/KGguaW5pdEV2ZW50KGwsYS5idWJibGVzLGEuY2FuY2VsYWJsZSks'@; put 'aC5kZXRhaWw9YS5kZXRhaWwpOmguaW5pdEV2ZW50KGwsITEsITEpKSxjLmRpc3BhdGNoRXZlbnQoaCl9ZnVuY3Rpb24gWlN0KGMsbCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEk4ZSh0aGlzLGMsbCl9fWZ1bmN0aW9uIFdTdChjLGwpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBJOGUo'@; put 'dGhpcyxjLGwuYXBwbHkodGhpcyxhcmd1bWVudHMpKX19VDhlLnByb3RvdHlwZT17YWRkOmZ1bmN0aW9uKGMpe3RoaXMuX25hbWVzLmluZGV4T2YoYyk8MCYmKHRoaXMuX25hbWVzLnB1c2goYyksdGhpcy5fbm9kZS5zZXRBdHRyaWJ1dGUoImNsYXNzIix0aGlzLl9uYW1lcy5qb2luKCIgIikp'@; put 'KX0scmVtb3ZlOmZ1bmN0aW9uKGMpe3ZhciBsPXRoaXMuX25hbWVzLmluZGV4T2YoYyk7bD49MCYmKHRoaXMuX25hbWVzLnNwbGljZShsLDEpLHRoaXMuX25vZGUuc2V0QXR0cmlidXRlKCJjbGFzcyIsdGhpcy5fbmFtZXMuam9pbigiICIpKSl9LGNvbnRhaW5zOmZ1bmN0aW9uKGMpe3JldHVy'@; put 'biB0aGlzLl9uYW1lcy5pbmRleE9mKGMpPj0wfX07dmFyIHB0ZT1bbnVsbF07ZnVuY3Rpb24gc2QoYyxsKXt0aGlzLl9ncm91cHM9Yyx0aGlzLl9wYXJlbnRzPWx9ZnVuY3Rpb24gUjhlKCl7cmV0dXJuIG5ldyBzZChbW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF1dLHB0ZSl9c2QucHJvdG90'@; put 'eXBlPVI4ZS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnNkLHNlbGVjdDpmdW5jdGlvbiBiQ3QoYyl7ImZ1bmN0aW9uIiE9dHlwZW9mIGMmJihjPWR0ZShjKSk7Zm9yKHZhciBsPXRoaXMuX2dyb3VwcyxhPWwubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDtoPGE7KytoKWZvcih2YXIgSSxHLGY9'@; put 'bFtoXSx2PWYubGVuZ3RoLE09ZFtoXT1uZXcgQXJyYXkodikscmU9MDtyZTx2OysrcmUpKEk9ZltyZV0pJiYoRz1jLmNhbGwoSSxJLl9fZGF0YV9fLHJlLGYpKSYmKCJfX2RhdGFfXyJpbiBJJiYoRy5fX2RhdGFfXz1JLl9fZGF0YV9fKSxNW3JlXT1HKTtyZXR1cm4gbmV3IHNkKGQsdGhpcy5f'@; put 'cGFyZW50cyl9LHNlbGVjdEFsbDpmdW5jdGlvbiBDQ3QoYyl7Yz0iZnVuY3Rpb24iPT10eXBlb2YgYz9mdW5jdGlvbiB3Q3QoYyl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGI4ZShjLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9fShjKTpfOGUoYyk7Zm9yKHZhciBsPXRoaXMuX2dyb3Vwcyxh'@; put 'PWwubGVuZ3RoLGQ9W10saD1bXSxmPTA7ZjxhOysrZilmb3IodmFyIEksdj1sW2ZdLE09di5sZW5ndGgsRz0wO0c8TTsrK0cpKEk9dltHXSkmJihkLnB1c2goYy5jYWxsKEksSS5fX2RhdGFfXyxHLHYpKSxoLnB1c2goSSkpO3JldHVybiBuZXcgc2QoZCxoKX0sc2VsZWN0Q2hpbGQ6ZnVuY3Rp'@; put 'b24gRUN0KGMpe3JldHVybiB0aGlzLnNlbGVjdChudWxsPT1jP3hDdDpmdW5jdGlvbiBNQ3QoYyl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIFNDdC5jYWxsKHRoaXMuY2hpbGRyZW4sYyl9fSgiZnVuY3Rpb24iPT10eXBlb2YgYz9jOkM4ZShjKSkpfSxzZWxlY3RDaGlsZHJlbjpmdW5jdGlv'@; put 'biBEQ3QoYyl7cmV0dXJuIHRoaXMuc2VsZWN0QWxsKG51bGw9PWM/QUN0OmZ1bmN0aW9uIGtDdChjKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gVEN0LmNhbGwodGhpcy5jaGlsZHJlbixjKX19KCJmdW5jdGlvbiI9PXR5cGVvZiBjP2M6QzhlKGMpKSl9LGZpbHRlcjpmdW5jdGlvbiBJQ3Qo'@; put 'Yyl7ImZ1bmN0aW9uIiE9dHlwZW9mIGMmJihjPXc4ZShjKSk7Zm9yKHZhciBsPXRoaXMuX2dyb3VwcyxhPWwubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9MDtoPGE7KytoKWZvcih2YXIgSSxmPWxbaF0sdj1mLmxlbmd0aCxNPWRbaF09W10sRz0wO0c8djsrK0cpKEk9ZltHXSkmJmMuY2FsbChJ'@; put 'LEkuX19kYXRhX18sRyxmKSYmTS5wdXNoKEkpO3JldHVybiBuZXcgc2QoZCx0aGlzLl9wYXJlbnRzKX0sZGF0YTpmdW5jdGlvbiBIQ3QoYyxsKXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLEZDdCk7dmFyIGE9bD9QQ3Q6T0N0LGQ9dGhpcy5fcGFyZW50cyxo'@; put 'PXRoaXMuX2dyb3VwczsiZnVuY3Rpb24iIT10eXBlb2YgYyYmKGM9ZnVuY3Rpb24gTEN0KGMpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBjfX0oYykpO2Zvcih2YXIgZj1oLmxlbmd0aCx2PW5ldyBBcnJheShmKSxNPW5ldyBBcnJheShmKSxJPW5ldyBBcnJheShmKSxHPTA7RzxmOysrRyl7'@; put 'dmFyIHJlPWRbR10sdWU9aFtHXSx5ZT11ZS5sZW5ndGgsRWU9TkN0KGMuY2FsbChyZSxyZSYmcmUuX19kYXRhX18sRyxkKSksQmU9RWUubGVuZ3RoLEdlPU1bR109bmV3IEFycmF5KEJlKSxzdD12W0ddPW5ldyBBcnJheShCZSk7YShyZSx1ZSxHZSxzdCxJW0ddPW5ldyBBcnJheSh5ZSksRWUs'@; put 'bCk7Zm9yKHZhciBtbix3bixkdD0wLHF0PTA7ZHQ8QmU7KytkdClpZihtbj1HZVtkdF0pe2ZvcihkdD49cXQmJihxdD1kdCsxKTshKHduPXN0W3F0XSkmJisrcXQ8QmU7KTttbi5fbmV4dD13bnx8bnVsbH19cmV0dXJuKHY9bmV3IHNkKHYsZCkpLl9lbnRlcj1NLHYuX2V4aXQ9SSx2fSxlbnRl'@; put 'cjpmdW5jdGlvbiBSQ3QoKXtyZXR1cm4gbmV3IHNkKHRoaXMuX2VudGVyfHx0aGlzLl9ncm91cHMubWFwKFM4ZSksdGhpcy5fcGFyZW50cyl9LGV4aXQ6ZnVuY3Rpb24gVkN0KCl7cmV0dXJuIG5ldyBzZCh0aGlzLl9leGl0fHx0aGlzLl9ncm91cHMubWFwKFM4ZSksdGhpcy5fcGFyZW50cyl9'@; put 'LGpvaW46ZnVuY3Rpb24gQkN0KGMsbCxhKXt2YXIgZD10aGlzLmVudGVyKCksaD10aGlzLGY9dGhpcy5leGl0KCk7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGM/KGQ9YyhkKSkmJihkPWQuc2VsZWN0aW9uKCkpOmQ9ZC5hcHBlbmQoYysiIiksbnVsbCE9bCYmKGg9bChoKSkmJihoPWguc2Vs'@; put 'ZWN0aW9uKCkpLG51bGw9PWE/Zi5yZW1vdmUoKTphKGYpLGQmJmg/ZC5tZXJnZShoKS5vcmRlcigpOmh9LG1lcmdlOmZ1bmN0aW9uIGpDdChjKXtmb3IodmFyIGw9Yy5zZWxlY3Rpb24/Yy5zZWxlY3Rpb24oKTpjLGE9dGhpcy5fZ3JvdXBzLGQ9bC5fZ3JvdXBzLGg9YS5sZW5ndGgsdj1NYXRo'@; put 'Lm1pbihoLGQubGVuZ3RoKSxNPW5ldyBBcnJheShoKSxJPTA7STx2OysrSSlmb3IodmFyIEVlLEc9YVtJXSxyZT1kW0ldLHVlPUcubGVuZ3RoLHllPU1bSV09bmV3IEFycmF5KHVlKSxCZT0wO0JlPHVlOysrQmUpKEVlPUdbQmVdfHxyZVtCZV0pJiYoeWVbQmVdPUVlKTtmb3IoO0k8aDsrK0kp'@; put 'TVtJXT1hW0ldO3JldHVybiBuZXcgc2QoTSx0aGlzLl9wYXJlbnRzKX0sc2VsZWN0aW9uOmZ1bmN0aW9uICRTdCgpe3JldHVybiB0aGlzfSxvcmRlcjpmdW5jdGlvbiB6Q3QoKXtmb3IodmFyIGM9dGhpcy5fZ3JvdXBzLGw9LTEsYT1jLmxlbmd0aDsrK2w8YTspZm9yKHZhciB2LGQ9Y1tsXSxo'@; put 'PWQubGVuZ3RoLTEsZj1kW2hdOy0taD49MDspKHY9ZFtoXSkmJihmJiY0XnYuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZikmJmYucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodixmKSxmPXYpO3JldHVybiB0aGlzfSxzb3J0OmZ1bmN0aW9uIFVDdChjKXtmdW5jdGlvbiBsKHVlLHllKXtyZXR1'@; put 'cm4gdWUmJnllP2ModWUuX19kYXRhX18seWUuX19kYXRhX18pOiF1ZS0heWV9Y3x8KGM9WkN0KTtmb3IodmFyIGE9dGhpcy5fZ3JvdXBzLGQ9YS5sZW5ndGgsaD1uZXcgQXJyYXkoZCksZj0wO2Y8ZDsrK2Ype2Zvcih2YXIgRyx2PWFbZl0sTT12Lmxlbmd0aCxJPWhbZl09bmV3IEFycmF5KE0p'@; put 'LHJlPTA7cmU8TTsrK3JlKShHPXZbcmVdKSYmKElbcmVdPUcpO0kuc29ydChsKX1yZXR1cm4gbmV3IHNkKGgsdGhpcy5fcGFyZW50cykub3JkZXIoKX0sY2FsbDpmdW5jdGlvbiBXQ3QoKXt2YXIgYz1hcmd1bWVudHNbMF07cmV0dXJuIGFyZ3VtZW50c1swXT10aGlzLGMuYXBwbHkobnVsbCxh'@; put 'cmd1bWVudHMpLHRoaXN9LG5vZGVzOmZ1bmN0aW9uIFlDdCgpe3JldHVybiBBcnJheS5mcm9tKHRoaXMpfSxub2RlOmZ1bmN0aW9uIEdDdCgpe2Zvcih2YXIgYz10aGlzLl9ncm91cHMsbD0wLGE9Yy5sZW5ndGg7bDxhOysrbClmb3IodmFyIGQ9Y1tsXSxoPTAsZj1kLmxlbmd0aDtoPGY7Kyto'@; put 'KXt2YXIgdj1kW2hdO2lmKHYpcmV0dXJuIHZ9cmV0dXJuIG51bGx9LHNpemU6ZnVuY3Rpb24gJEN0KCl7bGV0IGM9MDtmb3IoY29uc3QgbCBvZiB0aGlzKSsrYztyZXR1cm4gY30sZW1wdHk6ZnVuY3Rpb24gS0N0KCl7cmV0dXJuIXRoaXMubm9kZSgpfSxlYWNoOmZ1bmN0aW9uIFhDdChjKXtm'@; put 'b3IodmFyIGw9dGhpcy5fZ3JvdXBzLGE9MCxkPWwubGVuZ3RoO2E8ZDsrK2EpZm9yKHZhciBNLGg9bFthXSxmPTAsdj1oLmxlbmd0aDtmPHY7KytmKShNPWhbZl0pJiZjLmNhbGwoTSxNLl9fZGF0YV9fLGYsaCk7cmV0dXJuIHRoaXN9LGF0dHI6ZnVuY3Rpb24gclN0KGMsbCl7dmFyIGE9eU4o'@; put 'Yyk7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXt2YXIgZD10aGlzLm5vZGUoKTtyZXR1cm4gYS5sb2NhbD9kLmdldEF0dHJpYnV0ZU5TKGEuc3BhY2UsYS5sb2NhbCk6ZC5nZXRBdHRyaWJ1dGUoYSl9cmV0dXJuIHRoaXMuZWFjaCgobnVsbD09bD9hLmxvY2FsP0pDdDpxQ3Q6ImZ1bmN0aW9uIj09'@; put 'dHlwZW9mIGw/YS5sb2NhbD9uU3Q6dFN0OmEubG9jYWw/ZVN0OlFDdCkoYSxsKSl9LHN0eWxlOmZ1bmN0aW9uIG9TdChjLGwsYSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goKG51bGw9PWw/aVN0OiJmdW5jdGlvbiI9PXR5cGVvZiBsP3NTdDphU3QpKGMsbCxhPz8iIikp'@; put 'Omt3KHRoaXMubm9kZSgpLGMpfSxwcm9wZXJ0eTpmdW5jdGlvbiBkU3QoYyxsKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgobnVsbD09bD9sU3Q6ImZ1bmN0aW9uIj09dHlwZW9mIGw/dVN0OmNTdCkoYyxsKSk6dGhpcy5ub2RlKClbY119LGNsYXNzZWQ6ZnVuY3Rpb24g'@; put 'Z1N0KGMsbCl7dmFyIGE9RThlKGMrIiIpO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKHZhciBkPWZ0ZSh0aGlzLm5vZGUoKSksaD0tMSxmPWEubGVuZ3RoOysraDxmOylpZighZC5jb250YWlucyhhW2hdKSlyZXR1cm4hMTtyZXR1cm4hMH1yZXR1cm4gdGhpcy5lYWNoKCgiZnVuY3Rpb24i'@; put 'PT10eXBlb2YgbD9wU3Q6bD9oU3Q6ZlN0KShhLGwpKX0sdGV4dDpmdW5jdGlvbiBiU3QoYyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKG51bGw9PWM/bVN0OigiZnVuY3Rpb24iPT10eXBlb2YgYz95U3Q6dlN0KShjKSk6dGhpcy5ub2RlKCkudGV4dENvbnRlbnR9LGh0bWw6'@; put 'ZnVuY3Rpb24gU1N0KGMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChudWxsPT1jP19TdDooImZ1bmN0aW9uIj09dHlwZW9mIGM/Q1N0OndTdCkoYykpOnRoaXMubm9kZSgpLmlubmVySFRNTH0scmFpc2U6ZnVuY3Rpb24geFN0KCl7cmV0dXJuIHRoaXMuZWFjaChNU3QpfSxs'@; put 'b3dlcjpmdW5jdGlvbiBUU3QoKXtyZXR1cm4gdGhpcy5lYWNoKEVTdCl9LGFwcGVuZDpmdW5jdGlvbiBEU3QoYyl7dmFyIGw9ImZ1bmN0aW9uIj09dHlwZW9mIGM/YzpEOGUoYyk7cmV0dXJuIHRoaXMuc2VsZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXBwZW5kQ2hpbGQobC5hcHBseSh0'@; put 'aGlzLGFyZ3VtZW50cykpfSl9LGluc2VydDpmdW5jdGlvbiBSU3QoYyxsKXt2YXIgYT0iZnVuY3Rpb24iPT10eXBlb2YgYz9jOkQ4ZShjKSxkPW51bGw9PWw/SVN0OiJmdW5jdGlvbiI9PXR5cGVvZiBsP2w6ZHRlKGwpO3JldHVybiB0aGlzLnNlbGVjdChmdW5jdGlvbigpe3JldHVybiB0aGlz'@; put 'Lmluc2VydEJlZm9yZShhLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxkLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8bnVsbCl9KX0scmVtb3ZlOmZ1bmN0aW9uIE9TdCgpe3JldHVybiB0aGlzLmVhY2goTFN0KX0sY2xvbmU6ZnVuY3Rpb24gSFN0KGMpe3JldHVybiB0aGlzLnNlbGVjdChjP0ZTdDpQ'@; put 'U3QpfSxkYXR1bTpmdW5jdGlvbiBOU3QoYyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5wcm9wZXJ0eSgiX19kYXRhX18iLGMpOnRoaXMubm9kZSgpLl9fZGF0YV9ffSxvbjpmdW5jdGlvbiBVU3QoYyxsLGEpe3ZhciBoLHYsZD1mdW5jdGlvbiBCU3QoYyl7cmV0dXJuIGMudHJpbSgp'@; put 'LnNwbGl0KC9efFxzKy8pLm1hcChmdW5jdGlvbihsKXt2YXIgYT0iIixkPWwuaW5kZXhPZigiLiIpO3JldHVybiBkPj0wJiYoYT1sLnNsaWNlKGQrMSksbD1sLnNsaWNlKDAsZCkpLHt0eXBlOmwsbmFtZTphfX0pfShjKyIiKSxmPWQubGVuZ3RoO2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7'@; put 'Zm9yKE09bD96U3Q6alN0LGg9MDtoPGY7KytoKXRoaXMuZWFjaChNKGRbaF0sbCxhKSk7cmV0dXJuIHRoaXN9dmFyIE09dGhpcy5ub2RlKCkuX19vbjtpZihNKWZvcih2YXIgcmUsST0wLEc9TS5sZW5ndGg7STxHOysrSSlmb3IoaD0wLHJlPU1bSV07aDxmOysraClpZigodj1kW2hdKS50eXBl'@; put 'PT09cmUudHlwZSYmdi5uYW1lPT09cmUubmFtZSlyZXR1cm4gcmUudmFsdWV9LGRpc3BhdGNoOmZ1bmN0aW9uIFlTdChjLGwpe3JldHVybiB0aGlzLmVhY2goKCJmdW5jdGlvbiI9PXR5cGVvZiBsP1dTdDpaU3QpKGMsbCkpfSxbU3ltYm9sLml0ZXJhdG9yXTpmdW5jdGlvbipHU3QoKXtmb3Io'@; put 'dmFyIGM9dGhpcy5fZ3JvdXBzLGw9MCxhPWMubGVuZ3RoO2w8YTsrK2wpZm9yKHZhciB2LGQ9Y1tsXSxoPTAsZj1kLmxlbmd0aDtoPGY7KytoKSh2PWRbaF0pJiYoeWllbGQgdil9fTtjb25zdCAkOT1SOGU7ZnVuY3Rpb24gZ3RlKGMpe3JldHVybiJzdHJpbmciPT10eXBlb2YgYz9uZXcgc2Qo'@; put 'W2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoYyldLFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdKTpuZXcgc2QoW2I4ZShjKV0scHRlKX1mdW5jdGlvbiBfbyhjKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGM/bmV3IHNkKFtbZG9jdW1lbnQucXVlcnlTZWxlY3RvcihjKV1dLFtkb2N1bWVu'@; put 'dC5kb2N1bWVudEVsZW1lbnRdKTpuZXcgc2QoW1tjXV0scHRlKX12YXIgS1N0PXt2YWx1ZTooKT0+e319O2Z1bmN0aW9uIEw4ZSgpe2Zvcih2YXIgZCxjPTAsbD1hcmd1bWVudHMubGVuZ3RoLGE9e307YzxsOysrYyl7aWYoIShkPWFyZ3VtZW50c1tjXSsiIil8fGQgaW4gYXx8L1tccy5dLy50'@; put 'ZXN0KGQpKXRocm93IG5ldyBFcnJvcigiaWxsZWdhbCB0eXBlOiAiK2QpO2FbZF09W119cmV0dXJuIG5ldyBiTihhKX1mdW5jdGlvbiBiTihjKXt0aGlzLl89Y31mdW5jdGlvbiBxU3QoYyxsKXtmb3IodmFyIGgsYT0wLGQ9Yy5sZW5ndGg7YTxkOysrYSlpZigoaD1jW2FdKS5uYW1lPT09bCly'@; put 'ZXR1cm4gaC52YWx1ZX1mdW5jdGlvbiBPOGUoYyxsLGEpe2Zvcih2YXIgZD0wLGg9Yy5sZW5ndGg7ZDxoOysrZClpZihjW2RdLm5hbWU9PT1sKXtjW2RdPUtTdCxjPWMuc2xpY2UoMCxkKS5jb25jYXQoYy5zbGljZShkKzEpKTticmVha31yZXR1cm4gbnVsbCE9YSYmYy5wdXNoKHtuYW1lOmws'@; put 'dmFsdWU6YX0pLGN9Yk4ucHJvdG90eXBlPUw4ZS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmJOLG9uOmZ1bmN0aW9uKGMsbCl7dmFyIGgsYT10aGlzLl8sZD1mdW5jdGlvbiBYU3QoYyxsKXtyZXR1cm4gYy50cmltKCkuc3BsaXQoL158XHMrLykubWFwKGZ1bmN0aW9uKGEpe3ZhciBkPSIiLGg9'@; put 'YS5pbmRleE9mKCIuIik7aWYoaD49MCYmKGQ9YS5zbGljZShoKzEpLGE9YS5zbGljZSgwLGgpKSxhJiYhbC5oYXNPd25Qcm9wZXJ0eShhKSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIithKTtyZXR1cm57dHlwZTphLG5hbWU6ZH19KX0oYysiIixhKSxmPS0xLHY9ZC5sZW5ndGg7'@; put 'aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXtpZihudWxsIT1sJiYiZnVuY3Rpb24iIT10eXBlb2YgbCl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY2FsbGJhY2s6ICIrbCk7Zm9yKDsrK2Y8djspaWYoaD0oYz1kW2ZdKS50eXBlKWFbaF09TzhlKGFbaF0sYy5uYW1lLGwpO2Vsc2UgaWYobnVs'@; put 'bD09bClmb3IoaCBpbiBhKWFbaF09TzhlKGFbaF0sYy5uYW1lLG51bGwpO3JldHVybiB0aGlzfWZvcig7KytmPHY7KWlmKChoPShjPWRbZl0pLnR5cGUpJiYoaD1xU3QoYVtoXSxjLm5hbWUpKSlyZXR1cm4gaH0sY29weTpmdW5jdGlvbigpe3ZhciBjPXt9LGw9dGhpcy5fO2Zvcih2YXIgYSBp'@; put 'biBsKWNbYV09bFthXS5zbGljZSgpO3JldHVybiBuZXcgYk4oYyl9LGNhbGw6ZnVuY3Rpb24oYyxsKXtpZigoaD1hcmd1bWVudHMubGVuZ3RoLTIpPjApZm9yKHZhciBoLGYsYT1uZXcgQXJyYXkoaCksZD0wO2Q8aDsrK2QpYVtkXT1hcmd1bWVudHNbZCsyXTtpZighdGhpcy5fLmhhc093blBy'@; put 'b3BlcnR5KGMpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK2MpO2ZvcihkPTAsaD0oZj10aGlzLl9bY10pLmxlbmd0aDtkPGg7KytkKWZbZF0udmFsdWUuYXBwbHkobCxhKX0sYXBwbHk6ZnVuY3Rpb24oYyxsLGEpe2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkoYykpdGhyb3cg'@; put 'bmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrYyk7Zm9yKHZhciBkPXRoaXMuX1tjXSxoPTAsZj1kLmxlbmd0aDtoPGY7KytoKWRbaF0udmFsdWUuYXBwbHkobCxhKX19O2NvbnN0IG10ZT1MOGU7dmFyIF9OLElBLER3PTAsa0E9MCxEQT0wLFA4ZT0xZTMsd049MCxLOT0wLENOPTAsUkE9Im9i'@; put 'amVjdCI9PXR5cGVvZiBwZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93P3BlcmZvcm1hbmNlOkRhdGUsRjhlPSJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOmZ1bmN0'@; put 'aW9uKGMpe3NldFRpbWVvdXQoYywxNyl9O2Z1bmN0aW9uIHZ0ZSgpe3JldHVybiBLOXx8KEY4ZShKU3QpLEs5PVJBLm5vdygpK0NOKX1mdW5jdGlvbiBKU3QoKXtLOT0wfWZ1bmN0aW9uIFNOKCl7dGhpcy5fY2FsbD10aGlzLl90aW1lPXRoaXMuX25leHQ9bnVsbH1mdW5jdGlvbiBIOGUoYyxs'@; put 'LGEpe3ZhciBkPW5ldyBTTjtyZXR1cm4gZC5yZXN0YXJ0KGMsbCxhKSxkfWZ1bmN0aW9uIE44ZSgpe0s5PSh3Tj1SQS5ub3coKSkrQ04sRHc9a0E9MDt0cnl7IWZ1bmN0aW9uIFFTdCgpe3Z0ZSgpLCsrRHc7Zm9yKHZhciBsLGM9X047YzspKGw9SzktYy5fdGltZSk+PTAmJmMuX2NhbGwuY2Fs'@; put 'bCh2b2lkIDAsbCksYz1jLl9uZXh0Oy0tRHd9KCl9ZmluYWxseXtEdz0wLGZ1bmN0aW9uIHRNdCgpe2Zvcih2YXIgYyxhLGw9X04sZD0xLzA7bDspbC5fY2FsbD8oZD5sLl90aW1lJiYoZD1sLl90aW1lKSxjPWwsbD1sLl9uZXh0KTooYT1sLl9uZXh0LGwuX25leHQ9bnVsbCxsPWM/Yy5fbmV4'@; put 'dD1hOl9OPWEpO0lBPWMseXRlKGQpfSgpLEs5PTB9fWZ1bmN0aW9uIGVNdCgpe3ZhciBjPVJBLm5vdygpLGw9Yy13TjtsPlA4ZSYmKENOLT1sLHdOPWMpfWZ1bmN0aW9uIHl0ZShjKXtEd3x8KGtBJiYoa0E9Y2xlYXJUaW1lb3V0KGtBKSksYy1LOT4yND8oYzwxLzAmJihrQT1zZXRUaW1lb3V0'@; put 'KE44ZSxjLVJBLm5vdygpLUNOKSksREEmJihEQT1jbGVhckludGVydmFsKERBKSkpOihEQXx8KHdOPVJBLm5vdygpLERBPXNldEludGVydmFsKGVNdCxQOGUpKSxEdz0xLEY4ZShOOGUpKSl9ZnVuY3Rpb24gTU4oYyxsLGEpe3ZhciBkPW5ldyBTTjtyZXR1cm4gZC5yZXN0YXJ0KGg9PntkLnN0'@; put 'b3AoKSxjKGgrbCl9LGw9bnVsbD09bD8wOitsLGEpLGR9U04ucHJvdG90eXBlPUg4ZS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlNOLHJlc3RhcnQ6ZnVuY3Rpb24oYyxsLGEpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBjKXRocm93IG5ldyBUeXBlRXJyb3IoImNhbGxiYWNrIGlzIG5vdCBhIGZ1'@; put 'bmN0aW9uIik7YT0obnVsbD09YT92dGUoKTorYSkrKG51bGw9PWw/MDorbCksIXRoaXMuX25leHQmJklBIT09dGhpcyYmKElBP0lBLl9uZXh0PXRoaXM6X049dGhpcyxJQT10aGlzKSx0aGlzLl9jYWxsPWMsdGhpcy5fdGltZT1hLHl0ZSgpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5fY2FsbCYm'@; put 'KHRoaXMuX2NhbGw9bnVsbCx0aGlzLl90aW1lPTEvMCx5dGUoKSl9fTt2YXIgbk10PW10ZSgic3RhcnQiLCJlbmQiLCJjYW5jZWwiLCJpbnRlcnJ1cHQiKSxyTXQ9W10sVjhlPTAsX3RlPTIseE49Myx3dGU9NSxFTj02O2Z1bmN0aW9uIFROKGMsbCxhLGQsaCxmKXt2YXIgdj1jLl9fdHJhbnNp'@; put 'dGlvbjtpZih2KXtpZihhIGluIHYpcmV0dXJufWVsc2UgYy5fX3RyYW5zaXRpb249e307IWZ1bmN0aW9uIGlNdChjLGwsYSl7dmFyIGgsZD1jLl9fdHJhbnNpdGlvbjtmdW5jdGlvbiB2KEcpe3ZhciByZSx1ZSx5ZSxFZTtpZigxIT09YS5zdGF0ZSlyZXR1cm4gSSgpO2ZvcihyZSBpbiBkKWlm'@; put 'KChFZT1kW3JlXSkubmFtZT09PWEubmFtZSl7aWYoRWUuc3RhdGU9PT14TilyZXR1cm4gTU4odik7ND09PUVlLnN0YXRlPyhFZS5zdGF0ZT1FTixFZS50aW1lci5zdG9wKCksRWUub24uY2FsbCgiaW50ZXJydXB0IixjLGMuX19kYXRhX18sRWUuaW5kZXgsRWUuZ3JvdXApLGRlbGV0ZSBkW3Jl'@; put 'XSk6K3JlPGwmJihFZS5zdGF0ZT1FTixFZS50aW1lci5zdG9wKCksRWUub24uY2FsbCgiY2FuY2VsIixjLGMuX19kYXRhX18sRWUuaW5kZXgsRWUuZ3JvdXApLGRlbGV0ZSBkW3JlXSl9aWYoTU4oZnVuY3Rpb24oKXthLnN0YXRlPT09eE4mJihhLnN0YXRlPTQsYS50aW1lci5yZXN0YXJ0KE0s'@; put 'YS5kZWxheSxhLnRpbWUpLE0oRykpfSksYS5zdGF0ZT1fdGUsYS5vbi5jYWxsKCJzdGFydCIsYyxjLl9fZGF0YV9fLGEuaW5kZXgsYS5ncm91cCksYS5zdGF0ZT09PV90ZSl7Zm9yKGEuc3RhdGU9eE4saD1uZXcgQXJyYXkoeWU9YS50d2Vlbi5sZW5ndGgpLHJlPTAsdWU9LTE7cmU8eWU7Kyty'@; put 'ZSkoRWU9YS50d2VlbltyZV0udmFsdWUuY2FsbChjLGMuX19kYXRhX18sYS5pbmRleCxhLmdyb3VwKSkmJihoWysrdWVdPUVlKTtoLmxlbmd0aD11ZSsxfX1mdW5jdGlvbiBNKEcpe2Zvcih2YXIgcmU9RzxhLmR1cmF0aW9uP2EuZWFzZS5jYWxsKG51bGwsRy9hLmR1cmF0aW9uKTooYS50aW1l'@; put 'ci5yZXN0YXJ0KEkpLGEuc3RhdGU9d3RlLDEpLHVlPS0xLHllPWgubGVuZ3RoOysrdWU8eWU7KWhbdWVdLmNhbGwoYyxyZSk7YS5zdGF0ZT09PXd0ZSYmKGEub24uY2FsbCgiZW5kIixjLGMuX19kYXRhX18sYS5pbmRleCxhLmdyb3VwKSxJKCkpfWZ1bmN0aW9uIEkoKXtmb3IodmFyIEcgaW4g'@; put 'YS5zdGF0ZT1FTixhLnRpbWVyLnN0b3AoKSxkZWxldGUgZFtsXSxkKXJldHVybjtkZWxldGUgYy5fX3RyYW5zaXRpb259ZFtsXT1hLGEudGltZXI9SDhlKGZ1bmN0aW9uIGYoRyl7YS5zdGF0ZT0xLGEudGltZXIucmVzdGFydCh2LGEuZGVsYXksYS50aW1lKSxhLmRlbGF5PD1HJiZ2KEctYS5k'@; put 'ZWxheSl9LDAsYS50aW1lKX0oYyxhLHtuYW1lOmwsaW5kZXg6ZCxncm91cDpoLG9uOm5NdCx0d2VlbjpyTXQsdGltZTpmLnRpbWUsZGVsYXk6Zi5kZWxheSxkdXJhdGlvbjpmLmR1cmF0aW9uLGVhc2U6Zi5lYXNlLHRpbWVyOm51bGwsc3RhdGU6VjhlfSl9ZnVuY3Rpb24gQ3RlKGMsbCl7dmFy'@; put 'IGE9eDMoYyxsKTtpZihhLnN0YXRlPlY4ZSl0aHJvdyBuZXcgRXJyb3IoInRvbyBsYXRlOyBhbHJlYWR5IHNjaGVkdWxlZCIpO3JldHVybiBhfWZ1bmN0aW9uIGw0KGMsbCl7dmFyIGE9eDMoYyxsKTtpZihhLnN0YXRlPnhOKXRocm93IG5ldyBFcnJvcigidG9vIGxhdGU7IGFscmVhZHkgcnVu'@; put 'bmluZyIpO3JldHVybiBhfWZ1bmN0aW9uIHgzKGMsbCl7dmFyIGE9Yy5fX3RyYW5zaXRpb247aWYoIWF8fCEoYT1hW2xdKSl0aHJvdyBuZXcgRXJyb3IoInRyYW5zaXRpb24gbm90IGZvdW5kIik7cmV0dXJuIGF9ZnVuY3Rpb24gQU4oYyxsKXt2YXIgZCxoLHYsYT1jLl9fdHJhbnNpdGlvbixm'@; put 'PSEwO2lmKGEpe2Zvcih2IGluIGw9bnVsbD09bD9udWxsOmwrIiIsYSkoZD1hW3ZdKS5uYW1lPT09bD8oaD1kLnN0YXRlPl90ZSYmZC5zdGF0ZTx3dGUsZC5zdGF0ZT1FTixkLnRpbWVyLnN0b3AoKSxkLm9uLmNhbGwoaD8iaW50ZXJydXB0IjoiY2FuY2VsIixjLGMuX19kYXRhX18sZC5pbmRl'@; put 'eCxkLmdyb3VwKSxkZWxldGUgYVt2XSk6Zj0hMTtmJiZkZWxldGUgYy5fX3RyYW5zaXRpb259fWZ1bmN0aW9uIGM0KGMsbCl7cmV0dXJuIGM9K2MsbD0rbCxmdW5jdGlvbihhKXtyZXR1cm4gYyooMS1hKStsKmF9fXZhciBrTixqOGU9MTgwL01hdGguUEksU3RlPXt0cmFuc2xhdGVYOjAsdHJh'@; put 'bnNsYXRlWTowLHJvdGF0ZTowLHNrZXdYOjAsc2NhbGVYOjEsc2NhbGVZOjF9O2Z1bmN0aW9uIHo4ZShjLGwsYSxkLGgsZil7dmFyIHYsTSxJO3JldHVybih2PU1hdGguc3FydChjKmMrbCpsKSkmJihjLz12LGwvPXYpLChJPWMqYStsKmQpJiYoYS09YypJLGQtPWwqSSksKE09TWF0aC5zcXJ0'@; put 'KGEqYStkKmQpKSYmKGEvPU0sZC89TSxJLz1NKSxjKmQ8bCphJiYoYz0tYyxsPS1sLEk9LUksdj0tdikse3RyYW5zbGF0ZVg6aCx0cmFuc2xhdGVZOmYscm90YXRlOk1hdGguYXRhbjIobCxjKSpqOGUsc2tld1g6TWF0aC5hdGFuKEkpKmo4ZSxzY2FsZVg6dixzY2FsZVk6TX19ZnVuY3Rpb24g'@; put 'VThlKGMsbCxhLGQpe2Z1bmN0aW9uIGgoRyl7cmV0dXJuIEcubGVuZ3RoP0cucG9wKCkrIiAiOiIifXJldHVybiBmdW5jdGlvbihHLHJlKXt2YXIgdWU9W10seWU9W107cmV0dXJuIEc9YyhHKSxyZT1jKHJlKSxmdW5jdGlvbiBmKEcscmUsdWUseWUsRWUsQmUpe2lmKEchPT11ZXx8cmUhPT15'@; put 'ZSl7dmFyIEdlPUVlLnB1c2goInRyYW5zbGF0ZSgiLG51bGwsbCxudWxsLGEpO0JlLnB1c2goe2k6R2UtNCx4OmM0KEcsdWUpfSx7aTpHZS0yLHg6YzQocmUseWUpfSl9ZWxzZSh1ZXx8eWUpJiZFZS5wdXNoKCJ0cmFuc2xhdGUoIit1ZStsK3llK2EpfShHLnRyYW5zbGF0ZVgsRy50cmFuc2xh'@; put 'dGVZLHJlLnRyYW5zbGF0ZVgscmUudHJhbnNsYXRlWSx1ZSx5ZSksZnVuY3Rpb24gdihHLHJlLHVlLHllKXtHIT09cmU/KEctcmU+MTgwP3JlKz0zNjA6cmUtRz4xODAmJihHKz0zNjApLHllLnB1c2goe2k6dWUucHVzaChoKHVlKSsicm90YXRlKCIsbnVsbCxkKS0yLHg6YzQoRyxyZSl9KSk6'@; put 'cmUmJnVlLnB1c2goaCh1ZSkrInJvdGF0ZSgiK3JlK2QpfShHLnJvdGF0ZSxyZS5yb3RhdGUsdWUseWUpLGZ1bmN0aW9uIE0oRyxyZSx1ZSx5ZSl7RyE9PXJlP3llLnB1c2goe2k6dWUucHVzaChoKHVlKSsic2tld1goIixudWxsLGQpLTIseDpjNChHLHJlKX0pOnJlJiZ1ZS5wdXNoKGgodWUp'@; put 'KyJza2V3WCgiK3JlK2QpfShHLnNrZXdYLHJlLnNrZXdYLHVlLHllKSxmdW5jdGlvbiBJKEcscmUsdWUseWUsRWUsQmUpe2lmKEchPT11ZXx8cmUhPT15ZSl7dmFyIEdlPUVlLnB1c2goaChFZSkrInNjYWxlKCIsbnVsbCwiLCIsbnVsbCwiKSIpO0JlLnB1c2goe2k6R2UtNCx4OmM0KEcsdWUp'@; put 'fSx7aTpHZS0yLHg6YzQocmUseWUpfSl9ZWxzZSgxIT09dWV8fDEhPT15ZSkmJkVlLnB1c2goaChFZSkrInNjYWxlKCIrdWUrIiwiK3llKyIpIil9KEcuc2NhbGVYLEcuc2NhbGVZLHJlLnNjYWxlWCxyZS5zY2FsZVksdWUseWUpLEc9cmU9bnVsbCxmdW5jdGlvbihFZSl7Zm9yKHZhciBzdCxC'@; put 'ZT0tMSxHZT15ZS5sZW5ndGg7KytCZTxHZTspdWVbKHN0PXllW0JlXSkuaV09c3QueChFZSk7cmV0dXJuIHVlLmpvaW4oIiIpfX19dmFyIGxNdD1VOGUoZnVuY3Rpb24gc010KGMpe2NvbnN0IGw9bmV3KCJmdW5jdGlvbiI9PXR5cGVvZiBET01NYXRyaXg/RE9NTWF0cml4OldlYktpdENTU01h'@; put 'dHJpeCkoYysiIik7cmV0dXJuIGwuaXNJZGVudGl0eT9TdGU6ejhlKGwuYSxsLmIsbC5jLGwuZCxsLmUsbC5mKX0sInB4LCAiLCJweCkiLCJkZWcpIiksWjhlPVU4ZShmdW5jdGlvbiBvTXQoYyl7cmV0dXJuIG51bGwhPWMmJihrTnx8KGtOPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0'@; put 'cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJnIikpLGtOLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIixjKSxjPWtOLnRyYW5zZm9ybS5iYXNlVmFsLmNvbnNvbGlkYXRlKCkpP3o4ZSgoYz1jLm1hdHJpeCkuYSxjLmIsYy5jLGMuZCxjLmUsYy5mKTpTdGV9LCIsICIsIikiLCIpIik7ZnVuY3Rp'@; put 'b24gY010KGMsbCl7dmFyIGEsZDtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgaD1sNCh0aGlzLGMpLGY9aC50d2VlbjtpZihmIT09YSlmb3IodmFyIHY9MCxNPShkPWE9ZikubGVuZ3RoO3Y8TTsrK3YpaWYoZFt2XS5uYW1lPT09bCl7KGQ9ZC5zbGljZSgpKS5zcGxpY2UodiwxKTticmVha31oLnR3'@; put 'ZWVuPWR9fWZ1bmN0aW9uIHVNdChjLGwsYSl7dmFyIGQsaDtpZigiZnVuY3Rpb24iIT10eXBlb2YgYSl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGY9bDQodGhpcyxjKSx2PWYudHdlZW47aWYodiE9PWQpe2g9KGQ9dikuc2xpY2UoKTtmb3IodmFyIE09e25hbWU6bCx2'@; put 'YWx1ZTphfSxJPTAsRz1oLmxlbmd0aDtJPEc7KytJKWlmKGhbSV0ubmFtZT09PWwpe2hbSV09TTticmVha31JPT09RyYmaC5wdXNoKE0pfWYudHdlZW49aH19ZnVuY3Rpb24gTXRlKGMsbCxhKXt2YXIgZD1jLl9pZDtyZXR1cm4gYy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGg9bDQodGhpcyxkKTso'@; put 'aC52YWx1ZXx8KGgudmFsdWU9e30pKVtsXT1hLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pLGZ1bmN0aW9uKGgpe3JldHVybiB4MyhoLGQpLnZhbHVlW2xdfX1mdW5jdGlvbiB4dGUoYyxsLGEpe2MucHJvdG90eXBlPWwucHJvdG90eXBlPWEsYS5jb25zdHJ1Y3Rvcj1jfWZ1bmN0aW9uIFc4ZShj'@; put 'LGwpe3ZhciBhPU9iamVjdC5jcmVhdGUoYy5wcm90b3R5cGUpO2Zvcih2YXIgZCBpbiBsKWFbZF09bFtkXTtyZXR1cm4gYX1mdW5jdGlvbiBMQSgpe312YXIgRE49MS8uNyxJdz0iXFxzKihbKy1dP1xcZCspXFxzKiIsUEE9IlxccyooWystXT8oPzpcXGQqXFwuKT9cXGQrKD86W2VFXVsrLV0/'@; put 'XFxkKyk/KVxccyoiLHU0PSJcXHMqKFsrLV0/KD86XFxkKlxcLik/XFxkKyg/OltlRV1bKy1dP1xcZCspPyklXFxzKiIsaE10PS9eIyhbMC05YS1mXXszLDh9KSQvLGZNdD1uZXcgUmVnRXhwKGBecmdiXFwoJHtJd30sJHtJd30sJHtJd31cXCkkYCkscE10PW5ldyBSZWdFeHAoYF5yZ2JcXCgk'@; put 'e3U0fSwke3U0fSwke3U0fVxcKSRgKSxnTXQ9bmV3IFJlZ0V4cChgXnJnYmFcXCgke0l3fSwke0l3fSwke0l3fSwke1BBfVxcKSRgKSxtTXQ9bmV3IFJlZ0V4cChgXnJnYmFcXCgke3U0fSwke3U0fSwke3U0fSwke1BBfVxcKSRgKSx2TXQ9bmV3IFJlZ0V4cChgXmhzbFxcKCR7UEF9LCR7dTR9'@; put 'LCR7dTR9XFwpJGApLHlNdD1uZXcgUmVnRXhwKGBeaHNsYVxcKCR7UEF9LCR7dTR9LCR7dTR9LCR7UEF9XFwpJGApLFk4ZT17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZTox'@; put 'NjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6'@; put 'MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFy'@; put 'a2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4'@; put 'NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUx'@; put 'LGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2'@; put 'NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxp'@; put 'dm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1'@; put 'OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6'@; put 'ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9v'@; put 'bjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxt'@; put 'ZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2'@; put 'NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0'@; put 'cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxy'@; put 'b3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1'@; put 'ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3'@; put 'MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtmdW5jdGlvbiBHOGUoKXtyZXR1cm4gdGhpcy5yZ2IoKS5mb3Jt'@; put 'YXRIZXgoKX1mdW5jdGlvbiAkOGUoKXtyZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRSZ2IoKX1mdW5jdGlvbiBYOShjKXt2YXIgbCxhO3JldHVybiBjPShjKyIiKS50cmltKCkudG9Mb3dlckNhc2UoKSwobD1oTXQuZXhlYyhjKSk/KGE9bFsxXS5sZW5ndGgsbD1wYXJzZUludChsWzFdLDE2KSw2'@; put 'PT09YT9LOGUobCk6Mz09PWE/bmV3IEpkKGw+PjgmMTV8bD4+NCYyNDAsbD4+NCYxNXwyNDAmbCwoMTUmbCk8PDR8MTUmbCwxKTo4PT09YT9JTihsPj4yNCYyNTUsbD4+MTYmMjU1LGw+PjgmMjU1LCgyNTUmbCkvMjU1KTo0PT09YT9JTihsPj4xMiYxNXxsPj44JjI0MCxsPj44JjE1fGw+PjQm'@; put 'MjQwLGw+PjQmMTV8MjQwJmwsKCgxNSZsKTw8NHwxNSZsKS8yNTUpOm51bGwpOihsPWZNdC5leGVjKGMpKT9uZXcgSmQobFsxXSxsWzJdLGxbM10sMSk6KGw9cE10LmV4ZWMoYykpP25ldyBKZCgyNTUqbFsxXS8xMDAsMjU1KmxbMl0vMTAwLDI1NSpsWzNdLzEwMCwxKToobD1nTXQuZXhlYyhj'@; put 'KSk/SU4obFsxXSxsWzJdLGxbM10sbFs0XSk6KGw9bU10LmV4ZWMoYykpP0lOKDI1NSpsWzFdLzEwMCwyNTUqbFsyXS8xMDAsMjU1KmxbM10vMTAwLGxbNF0pOihsPXZNdC5leGVjKGMpKT9KOGUobFsxXSxsWzJdLzEwMCxsWzNdLzEwMCwxKToobD15TXQuZXhlYyhjKSk/SjhlKGxbMV0sbFsy'@; put 'XS8xMDAsbFszXS8xMDAsbFs0XSk6WThlLmhhc093blByb3BlcnR5KGMpP0s4ZShZOGVbY10pOiJ0cmFuc3BhcmVudCI9PT1jP25ldyBKZChOYU4sTmFOLE5hTiwwKTpudWxsfWZ1bmN0aW9uIEs4ZShjKXtyZXR1cm4gbmV3IEpkKGM+PjE2JjI1NSxjPj44JjI1NSwyNTUmYywxKX1mdW5jdGlv'@; put 'biBJTihjLGwsYSxkKXtyZXR1cm4gZDw9MCYmKGM9bD1hPU5hTiksbmV3IEpkKGMsbCxhLGQpfWZ1bmN0aW9uIFJOKGMsbCxhLGQpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9mdW5jdGlvbiB3TXQoYyl7cmV0dXJuIGMgaW5zdGFuY2VvZiBMQXx8KGM9WDkoYykpLGM/bmV3IEpkKChj'@; put 'PWMucmdiKCkpLnIsYy5nLGMuYixjLm9wYWNpdHkpOm5ldyBKZH0oYyk6bmV3IEpkKGMsbCxhLGQ/PzEpfWZ1bmN0aW9uIEpkKGMsbCxhLGQpe3RoaXMucj0rYyx0aGlzLmc9K2wsdGhpcy5iPSthLHRoaXMub3BhY2l0eT0rZH1mdW5jdGlvbiBYOGUoKXtyZXR1cm5gIyR7SjkodGhpcy5yKX0k'@; put 'e0o5KHRoaXMuZyl9JHtKOSh0aGlzLmIpfWB9ZnVuY3Rpb24gcThlKCl7Y29uc3QgYz1MTih0aGlzLm9wYWNpdHkpO3JldHVybmAkezE9PT1jPyJyZ2IoIjoicmdiYSgifSR7cTkodGhpcy5yKX0sICR7cTkodGhpcy5nKX0sICR7cTkodGhpcy5iKX0kezE9PT1jPyIpIjpgLCAke2N9KWB9YH1m'@; put 'dW5jdGlvbiBMTihjKXtyZXR1cm4gaXNOYU4oYyk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsYykpfWZ1bmN0aW9uIHE5KGMpe3JldHVybiBNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKGMpfHwwKSl9ZnVuY3Rpb24gSjkoYyl7cmV0dXJuKChjPXE5KGMpKTwxNj8iMCI6IiIp'@; put 'K2MudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIEo4ZShjLGwsYSxkKXtyZXR1cm4gZDw9MD9jPWw9YT1OYU46YTw9MHx8YT49MT9jPWw9TmFOOmw8PTAmJihjPU5hTiksbmV3IEUzKGMsbCxhLGQpfWZ1bmN0aW9uIFE4ZShjKXtpZihjIGluc3RhbmNlb2YgRTMpcmV0dXJuIG5ldyBFMyhjLmgsYy5z'@; put 'LGMubCxjLm9wYWNpdHkpO2lmKGMgaW5zdGFuY2VvZiBMQXx8KGM9WDkoYykpLCFjKXJldHVybiBuZXcgRTM7aWYoYyBpbnN0YW5jZW9mIEUzKXJldHVybiBjO3ZhciBsPShjPWMucmdiKCkpLnIvMjU1LGE9Yy5nLzI1NSxkPWMuYi8yNTUsaD1NYXRoLm1pbihsLGEsZCksZj1NYXRoLm1heChs'@; put 'LGEsZCksdj1OYU4sTT1mLWgsST0oZitoKS8yO3JldHVybiBNPyh2PWw9PT1mPyhhLWQpL00rNiooYTxkKTphPT09Zj8oZC1sKS9NKzI6KGwtYSkvTSs0LE0vPUk8LjU/ZitoOjItZi1oLHYqPTYwKTpNPUk+MCYmSTwxPzA6dixuZXcgRTModixNLEksYy5vcGFjaXR5KX1mdW5jdGlvbiBFMyhj'@; put 'LGwsYSxkKXt0aGlzLmg9K2MsdGhpcy5zPStsLHRoaXMubD0rYSx0aGlzLm9wYWNpdHk9K2R9ZnVuY3Rpb24gZTdlKGMpe3JldHVybihjPShjfHwwKSUzNjApPDA/YyszNjA6Y31mdW5jdGlvbiBPTihjKXtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLm1pbigxLGN8fDApKX1mdW5jdGlvbiBFdGUo'@; put 'YyxsLGEpe3JldHVybiAyNTUqKGM8NjA/bCsoYS1sKSpjLzYwOmM8MTgwP2E6YzwyNDA/bCsoYS1sKSooMjQwLWMpLzYwOmwpfWZ1bmN0aW9uIHQ3ZShjLGwsYSxkLGgpe3ZhciBmPWMqYyx2PWYqYztyZXR1cm4oKDEtMypjKzMqZi12KSpsKyg0LTYqZiszKnYpKmErKDErMypjKzMqZi0zKnYp'@; put 'KmQrdipoKS82fXh0ZShMQSxYOSx7Y29weShjKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgdGhpcy5jb25zdHJ1Y3Rvcix0aGlzLGMpfSxkaXNwbGF5YWJsZSgpe3JldHVybiB0aGlzLnJnYigpLmRpc3BsYXlhYmxlKCl9LGhleDpHOGUsZm9ybWF0SGV4Okc4ZSxmb3JtYXRIZXg4OmZ1bmN0'@; put 'aW9uIGJNdCgpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdEhleDgoKX0sZm9ybWF0SHNsOmZ1bmN0aW9uIF9NdCgpe3JldHVybiBROGUodGhpcykuZm9ybWF0SHNsKCl9LGZvcm1hdFJnYjokOGUsdG9TdHJpbmc6JDhlfSkseHRlKEpkLFJOLFc4ZShMQSx7YnJpZ2h0ZXIoYyl7cmV0dXJuIGM9'@; put 'bnVsbD09Yz9ETjpNYXRoLnBvdyhETixjKSxuZXcgSmQodGhpcy5yKmMsdGhpcy5nKmMsdGhpcy5iKmMsdGhpcy5vcGFjaXR5KX0sZGFya2VyKGMpe3JldHVybiBjPW51bGw9PWM/Ljc6TWF0aC5wb3coLjcsYyksbmV3IEpkKHRoaXMucipjLHRoaXMuZypjLHRoaXMuYipjLHRoaXMub3BhY2l0'@; put 'eSl9LHJnYigpe3JldHVybiB0aGlzfSxjbGFtcCgpe3JldHVybiBuZXcgSmQocTkodGhpcy5yKSxxOSh0aGlzLmcpLHE5KHRoaXMuYiksTE4odGhpcy5vcGFjaXR5KSl9LGRpc3BsYXlhYmxlKCl7cmV0dXJuLS41PD10aGlzLnImJnRoaXMucjwyNTUuNSYmLS41PD10aGlzLmcmJnRoaXMuZzwy'@; put 'NTUuNSYmLS41PD10aGlzLmImJnRoaXMuYjwyNTUuNSYmMDw9dGhpcy5vcGFjaXR5JiZ0aGlzLm9wYWNpdHk8PTF9LGhleDpYOGUsZm9ybWF0SGV4Olg4ZSxmb3JtYXRIZXg4OmZ1bmN0aW9uIENNdCgpe3JldHVybmAjJHtKOSh0aGlzLnIpfSR7SjkodGhpcy5nKX0ke0o5KHRoaXMuYil9JHtK'@; put 'OSgyNTUqKGlzTmFOKHRoaXMub3BhY2l0eSk/MTp0aGlzLm9wYWNpdHkpKX1gfSxmb3JtYXRSZ2I6cThlLHRvU3RyaW5nOnE4ZX0pKSx4dGUoRTMsZnVuY3Rpb24gU010KGMsbCxhLGQpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9ROGUoYyk6bmV3IEUzKGMsbCxhLGQ/PzEpfSxXOGUo'@; put 'TEEse2JyaWdodGVyKGMpe3JldHVybiBjPW51bGw9PWM/RE46TWF0aC5wb3coRE4sYyksbmV3IEUzKHRoaXMuaCx0aGlzLnMsdGhpcy5sKmMsdGhpcy5vcGFjaXR5KX0sZGFya2VyKGMpe3JldHVybiBjPW51bGw9PWM/Ljc6TWF0aC5wb3coLjcsYyksbmV3IEUzKHRoaXMuaCx0aGlzLnMsdGhp'@; put 'cy5sKmMsdGhpcy5vcGFjaXR5KX0scmdiKCl7dmFyIGM9dGhpcy5oJTM2MCszNjAqKHRoaXMuaDwwKSxsPWlzTmFOKGMpfHxpc05hTih0aGlzLnMpPzA6dGhpcy5zLGE9dGhpcy5sLGQ9YSsoYTwuNT9hOjEtYSkqbCxoPTIqYS1kO3JldHVybiBuZXcgSmQoRXRlKGM+PTI0MD9jLTI0MDpjKzEy'@; put 'MCxoLGQpLEV0ZShjLGgsZCksRXRlKGM8MTIwP2MrMjQwOmMtMTIwLGgsZCksdGhpcy5vcGFjaXR5KX0sY2xhbXAoKXtyZXR1cm4gbmV3IEUzKGU3ZSh0aGlzLmgpLE9OKHRoaXMucyksT04odGhpcy5sKSxMTih0aGlzLm9wYWNpdHkpKX0sZGlzcGxheWFibGUoKXtyZXR1cm4oMDw9dGhpcy5z'@; put 'JiZ0aGlzLnM8PTF8fGlzTmFOKHRoaXMucykpJiYwPD10aGlzLmwmJnRoaXMubDw9MSYmMDw9dGhpcy5vcGFjaXR5JiZ0aGlzLm9wYWNpdHk8PTF9LGZvcm1hdEhzbCgpe2NvbnN0IGM9TE4odGhpcy5vcGFjaXR5KTtyZXR1cm5gJHsxPT09Yz8iaHNsKCI6ImhzbGEoIn0ke2U3ZSh0aGlzLmgp'@; put 'fSwgJHsxMDAqT04odGhpcy5zKX0lLCAkezEwMCpPTih0aGlzLmwpfSUkezE9PT1jPyIpIjpgLCAke2N9KWB9YH19KSk7Y29uc3QgVHRlPWM9PigpPT5jO2Z1bmN0aW9uIHI3ZShjLGwpe3ZhciBhPWwtYztyZXR1cm4gYT9mdW5jdGlvbiBuN2UoYyxsKXtyZXR1cm4gZnVuY3Rpb24oYSl7cmV0'@; put 'dXJuIGMrYSpsfX0oYyxhKTpUdGUoaXNOYU4oYyk/bDpjKX1jb25zdCBQTj1mdW5jdGlvbiBjKGwpe3ZhciBhPWZ1bmN0aW9uIFRNdChjKXtyZXR1cm4gMT09KGM9K2MpP3I3ZTpmdW5jdGlvbihsLGEpe3JldHVybiBhLWw/ZnVuY3Rpb24gRU10KGMsbCxhKXtyZXR1cm4gYz1NYXRoLnBvdyhj'@; put 'LGEpLGw9TWF0aC5wb3cobCxhKS1jLGE9MS9hLGZ1bmN0aW9uKGQpe3JldHVybiBNYXRoLnBvdyhjK2QqbCxhKX19KGwsYSxjKTpUdGUoaXNOYU4obCk/YTpsKX19KGwpO2Z1bmN0aW9uIGQoaCxmKXt2YXIgdj1hKChoPVJOKGgpKS5yLChmPVJOKGYpKS5yKSxNPWEoaC5nLGYuZyksST1hKGgu'@; put 'YixmLmIpLEc9cjdlKGgub3BhY2l0eSxmLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbihyZSl7cmV0dXJuIGgucj12KHJlKSxoLmc9TShyZSksaC5iPUkocmUpLGgub3BhY2l0eT1HKHJlKSxoKyIifX1yZXR1cm4gZC5nYW1tYT1jLGR9KDEpO2Z1bmN0aW9uIGk3ZShjKXtyZXR1cm4gZnVuY3Rp'@; put 'b24obCl7dmFyIHYsTSxhPWwubGVuZ3RoLGQ9bmV3IEFycmF5KGEpLGg9bmV3IEFycmF5KGEpLGY9bmV3IEFycmF5KGEpO2Zvcih2PTA7djxhOysrdilNPVJOKGxbdl0pLGRbdl09TS5yfHwwLGhbdl09TS5nfHwwLGZbdl09TS5ifHwwO3JldHVybiBkPWMoZCksaD1jKGgpLGY9YyhmKSxNLm9w'@; put 'YWNpdHk9MSxmdW5jdGlvbihJKXtyZXR1cm4gTS5yPWQoSSksTS5nPWgoSSksTS5iPWYoSSksTSsiIn19fWk3ZShmdW5jdGlvbiBNTXQoYyl7dmFyIGw9Yy5sZW5ndGgtMTtyZXR1cm4gZnVuY3Rpb24oYSl7dmFyIGQ9YTw9MD9hPTA6YT49MT8oYT0xLGwtMSk6TWF0aC5mbG9vcihhKmwpLGg9'@; put 'Y1tkXSxmPWNbZCsxXTtyZXR1cm4gdDdlKChhLWQvbCkqbCxkPjA/Y1tkLTFdOjIqaC1mLGgsZixkPGwtMT9jW2QrMl06MipmLWgpfX0pLGk3ZShmdW5jdGlvbiB4TXQoYyl7dmFyIGw9Yy5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uKGEpe3ZhciBkPU1hdGguZmxvb3IoKChhJT0xKTwwPysrYTph'@; put 'KSpsKTtyZXR1cm4gdDdlKChhLWQvbCkqbCxjWyhkK2wtMSklbF0sY1tkJWxdLGNbKGQrMSklbF0sY1soZCsyKSVsXSl9fSk7dmFyIEF0ZT0vWy0rXT8oPzpcZCtcLj9cZCp8XC4/XGQrKSg/OltlRV1bLStdP1xkKyk/L2csa3RlPW5ldyBSZWdFeHAoQXRlLnNvdXJjZSwiZyIpO2Z1bmN0aW9u'@; put 'IGE3ZShjLGwpe3ZhciBkLGgsZixhPUF0ZS5sYXN0SW5kZXg9a3RlLmxhc3RJbmRleD0wLHY9LTEsTT1bXSxJPVtdO2ZvcihjKz0iIixsKz0iIjsoZD1BdGUuZXhlYyhjKSkmJihoPWt0ZS5leGVjKGwpKTspKGY9aC5pbmRleCk+YSYmKGY9bC5zbGljZShhLGYpLE1bdl0/TVt2XSs9ZjpNWysr'@; put 'dl09ZiksKGQ9ZFswXSk9PT0oaD1oWzBdKT9NW3ZdP01bdl0rPWg6TVsrK3ZdPWg6KE1bKyt2XT1udWxsLEkucHVzaCh7aTp2LHg6YzQoZCxoKX0pKSxhPWt0ZS5sYXN0SW5kZXg7cmV0dXJuIGE8bC5sZW5ndGgmJihmPWwuc2xpY2UoYSksTVt2XT9NW3ZdKz1mOk1bKyt2XT1mKSxNLmxlbmd0'@; put 'aDwyP0lbMF0/ZnVuY3Rpb24ga010KGMpe3JldHVybiBmdW5jdGlvbihsKXtyZXR1cm4gYyhsKSsiIn19KElbMF0ueCk6ZnVuY3Rpb24gQU10KGMpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBjfX0obCk6KGw9SS5sZW5ndGgsZnVuY3Rpb24oRyl7Zm9yKHZhciB1ZSxyZT0wO3JlPGw7Kyty'@; put 'ZSlNWyh1ZT1JW3JlXSkuaV09dWUueChHKTtyZXR1cm4gTS5qb2luKCIiKX0pfWZ1bmN0aW9uIHM3ZShjLGwpe3ZhciBhO3JldHVybigibnVtYmVyIj09dHlwZW9mIGw/YzQ6bCBpbnN0YW5jZW9mIFg5P1BOOihhPVg5KGwpKT8obD1hLFBOKTphN2UpKGMsbCl9ZnVuY3Rpb24gRE10KGMpe3Jl'@; put 'dHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlKGMpfX1mdW5jdGlvbiBJTXQoYyl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhjLnNwYWNlLGMubG9jYWwpfX1mdW5jdGlvbiBSTXQoYyxsLGEpe3ZhciBkLGYsaD1hKyIiO3JldHVybiBmdW5jdGlv'@; put 'bigpe3ZhciB2PXRoaXMuZ2V0QXR0cmlidXRlKGMpO3JldHVybiB2PT09aD9udWxsOnY9PT1kP2Y6Zj1sKGQ9dixhKX19ZnVuY3Rpb24gTE10KGMsbCxhKXt2YXIgZCxmLGg9YSsiIjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdj10aGlzLmdldEF0dHJpYnV0ZU5TKGMuc3BhY2UsYy5sb2NhbCk7'@; put 'cmV0dXJuIHY9PT1oP251bGw6dj09PWQ/ZjpmPWwoZD12LGEpfX1mdW5jdGlvbiBPTXQoYyxsLGEpe3ZhciBkLGgsZjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdixJLE09YSh0aGlzKTtyZXR1cm4gbnVsbD09TT92b2lkIHRoaXMucmVtb3ZlQXR0cmlidXRlKGMpOih2PXRoaXMuZ2V0QXR0cmli'@; put 'dXRlKGMpKT09PShJPU0rIiIpP251bGw6dj09PWQmJkk9PT1oP2Y6KGg9SSxmPWwoZD12LE0pKX19ZnVuY3Rpb24gUE10KGMsbCxhKXt2YXIgZCxoLGY7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHYsSSxNPWEodGhpcyk7cmV0dXJuIG51bGw9PU0/dm9pZCB0aGlzLnJlbW92ZUF0dHJpYnV0ZU5T'@; put 'KGMuc3BhY2UsYy5sb2NhbCk6KHY9dGhpcy5nZXRBdHRyaWJ1dGVOUyhjLnNwYWNlLGMubG9jYWwpKT09PShJPU0rIiIpP251bGw6dj09PWQmJkk9PT1oP2Y6KGg9SSxmPWwoZD12LE0pKX19ZnVuY3Rpb24gVk10KGMsbCl7dmFyIGEsZDtmdW5jdGlvbiBoKCl7dmFyIGY9bC5hcHBseSh0aGlz'@; put 'LGFyZ3VtZW50cyk7cmV0dXJuIGYhPT1kJiYoYT0oZD1mKSYmZnVuY3Rpb24gTk10KGMsbCl7cmV0dXJuIGZ1bmN0aW9uKGEpe3RoaXMuc2V0QXR0cmlidXRlTlMoYy5zcGFjZSxjLmxvY2FsLGwuY2FsbCh0aGlzLGEpKX19KGMsZikpLGF9cmV0dXJuIGguX3ZhbHVlPWwsaH1mdW5jdGlvbiBC'@; put 'TXQoYyxsKXt2YXIgYSxkO2Z1bmN0aW9uIGgoKXt2YXIgZj1sLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZiE9PWQmJihhPShkPWYpJiZmdW5jdGlvbiBITXQoYyxsKXtyZXR1cm4gZnVuY3Rpb24oYSl7dGhpcy5zZXRBdHRyaWJ1dGUoYyxsLmNhbGwodGhpcyxhKSl9fShjLGYpKSxh'@; put 'fXJldHVybiBoLl92YWx1ZT1sLGh9ZnVuY3Rpb24gek10KGMsbCl7cmV0dXJuIGZ1bmN0aW9uKCl7Q3RlKHRoaXMsYykuZGVsYXk9K2wuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBVTXQoYyxsKXtyZXR1cm4gbD0rbCxmdW5jdGlvbigpe0N0ZSh0aGlzLGMpLmRlbGF5PWx9fWZ1'@; put 'bmN0aW9uIFdNdChjLGwpe3JldHVybiBmdW5jdGlvbigpe2w0KHRoaXMsYykuZHVyYXRpb249K2wuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBZTXQoYyxsKXtyZXR1cm4gbD0rbCxmdW5jdGlvbigpe2w0KHRoaXMsYykuZHVyYXRpb249bH19dmFyIG94dD0kOS5wcm90b3R5cGUu'@; put 'Y29uc3RydWN0b3I7ZnVuY3Rpb24gbzdlKGMpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoYyl9fXZhciB4eHQ9MDtmdW5jdGlvbiBkNChjLGwsYSxkKXt0aGlzLl9ncm91cHM9Yyx0aGlzLl9wYXJlbnRzPWwsdGhpcy5fbmFtZT1hLHRoaXMuX2lkPWR9ZnVu'@; put 'Y3Rpb24gRHRlKGMpe3JldHVybiAkOSgpLnRyYW5zaXRpb24oYyl9ZnVuY3Rpb24gbDdlKCl7cmV0dXJuKyt4eHR9dmFyIEtnPSQ5LnByb3RvdHlwZTtkNC5wcm90b3R5cGU9RHRlLnByb3RvdHlwZT17Y29uc3RydWN0b3I6ZDQsc2VsZWN0OmZ1bmN0aW9uIGF4dChjKXt2YXIgbD10aGlzLl9u'@; put 'YW1lLGE9dGhpcy5faWQ7ImZ1bmN0aW9uIiE9dHlwZW9mIGMmJihjPWR0ZShjKSk7Zm9yKHZhciBkPXRoaXMuX2dyb3VwcyxoPWQubGVuZ3RoLGY9bmV3IEFycmF5KGgpLHY9MDt2PGg7Kyt2KWZvcih2YXIgcmUsdWUsTT1kW3ZdLEk9TS5sZW5ndGgsRz1mW3ZdPW5ldyBBcnJheShJKSx5ZT0w'@; put 'O3llPEk7Kyt5ZSkocmU9TVt5ZV0pJiYodWU9Yy5jYWxsKHJlLHJlLl9fZGF0YV9fLHllLE0pKSYmKCJfX2RhdGFfXyJpbiByZSYmKHVlLl9fZGF0YV9fPXJlLl9fZGF0YV9fKSxHW3llXT11ZSxUTihHW3llXSxsLGEseWUsRyx4MyhyZSxhKSkpO3JldHVybiBuZXcgZDQoZix0aGlzLl9wYXJl'@; put 'bnRzLGwsYSl9LHNlbGVjdEFsbDpmdW5jdGlvbiBzeHQoYyl7dmFyIGw9dGhpcy5fbmFtZSxhPXRoaXMuX2lkOyJmdW5jdGlvbiIhPXR5cGVvZiBjJiYoYz1fOGUoYykpO2Zvcih2YXIgZD10aGlzLl9ncm91cHMsaD1kLmxlbmd0aCxmPVtdLHY9W10sTT0wO008aDsrK00pZm9yKHZhciByZSxJ'@; put 'PWRbTV0sRz1JLmxlbmd0aCx1ZT0wO3VlPEc7Kyt1ZSlpZihyZT1JW3VlXSl7Zm9yKHZhciBFZSx5ZT1jLmNhbGwocmUscmUuX19kYXRhX18sdWUsSSksQmU9eDMocmUsYSksR2U9MCxzdD15ZS5sZW5ndGg7R2U8c3Q7KytHZSkoRWU9eWVbR2VdKSYmVE4oRWUsbCxhLEdlLHllLEJlKTtmLnB1'@; put 'c2goeWUpLHYucHVzaChyZSl9cmV0dXJuIG5ldyBkNChmLHYsbCxhKX0sc2VsZWN0Q2hpbGQ6S2cuc2VsZWN0Q2hpbGQsc2VsZWN0Q2hpbGRyZW46S2cuc2VsZWN0Q2hpbGRyZW4sZmlsdGVyOmZ1bmN0aW9uIEpNdChjKXsiZnVuY3Rpb24iIT10eXBlb2YgYyYmKGM9dzhlKGMpKTtmb3IodmFy'@; put 'IGw9dGhpcy5fZ3JvdXBzLGE9bC5sZW5ndGgsZD1uZXcgQXJyYXkoYSksaD0wO2g8YTsrK2gpZm9yKHZhciBJLGY9bFtoXSx2PWYubGVuZ3RoLE09ZFtoXT1bXSxHPTA7Rzx2OysrRykoST1mW0ddKSYmYy5jYWxsKEksSS5fX2RhdGFfXyxHLGYpJiZNLnB1c2goSSk7cmV0dXJuIG5ldyBkNChk'@; put 'LHRoaXMuX3BhcmVudHMsdGhpcy5fbmFtZSx0aGlzLl9pZCl9LG1lcmdlOmZ1bmN0aW9uIFFNdChjKXtpZihjLl9pZCE9PXRoaXMuX2lkKXRocm93IG5ldyBFcnJvcjtmb3IodmFyIGw9dGhpcy5fZ3JvdXBzLGE9Yy5fZ3JvdXBzLGQ9bC5sZW5ndGgsZj1NYXRoLm1pbihkLGEubGVuZ3RoKSx2'@; put 'PW5ldyBBcnJheShkKSxNPTA7TTxmOysrTSlmb3IodmFyIHllLEk9bFtNXSxHPWFbTV0scmU9SS5sZW5ndGgsdWU9dltNXT1uZXcgQXJyYXkocmUpLEVlPTA7RWU8cmU7KytFZSkoeWU9SVtFZV18fEdbRWVdKSYmKHVlW0VlXT15ZSk7Zm9yKDtNPGQ7KytNKXZbTV09bFtNXTtyZXR1cm4gbmV3'@; put 'IGQ0KHYsdGhpcy5fcGFyZW50cyx0aGlzLl9uYW1lLHRoaXMuX2lkKX0sc2VsZWN0aW9uOmZ1bmN0aW9uIGx4dCgpe3JldHVybiBuZXcgb3h0KHRoaXMuX2dyb3Vwcyx0aGlzLl9wYXJlbnRzKX0sdHJhbnNpdGlvbjpmdW5jdGlvbiBTeHQoKXtmb3IodmFyIGM9dGhpcy5fbmFtZSxsPXRoaXMu'@; put 'X2lkLGE9bDdlKCksZD10aGlzLl9ncm91cHMsaD1kLmxlbmd0aCxmPTA7ZjxoOysrZilmb3IodmFyIEksdj1kW2ZdLE09di5sZW5ndGgsRz0wO0c8TTsrK0cpaWYoST12W0ddKXt2YXIgcmU9eDMoSSxsKTtUTihJLGMsYSxHLHYse3RpbWU6cmUudGltZStyZS5kZWxheStyZS5kdXJhdGlvbixk'@; put 'ZWxheTowLGR1cmF0aW9uOnJlLmR1cmF0aW9uLGVhc2U6cmUuZWFzZX0pfXJldHVybiBuZXcgZDQoZCx0aGlzLl9wYXJlbnRzLGMsYSl9LGNhbGw6S2cuY2FsbCxub2RlczpLZy5ub2Rlcyxub2RlOktnLm5vZGUsc2l6ZTpLZy5zaXplLGVtcHR5OktnLmVtcHR5LGVhY2g6S2cuZWFjaCxvbjpm'@; put 'dW5jdGlvbiBueHQoYyxsKXt2YXIgYT10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP3gzKHRoaXMubm9kZSgpLGEpLm9uLm9uKGMpOnRoaXMuZWFjaChmdW5jdGlvbiB0eHQoYyxsLGEpe3ZhciBkLGgsZj1mdW5jdGlvbiBleHQoYyl7cmV0dXJuKGMrIiIpLnRyaW0oKS5zcGxp'@; put 'dCgvXnxccysvKS5ldmVyeShmdW5jdGlvbihsKXt2YXIgYT1sLmluZGV4T2YoIi4iKTtyZXR1cm4gYT49MCYmKGw9bC5zbGljZSgwLGEpKSwhbHx8InN0YXJ0Ij09PWx9KX0obCk/Q3RlOmw0O3JldHVybiBmdW5jdGlvbigpe3ZhciB2PWYodGhpcyxjKSxNPXYub247TSE9PWQmJihoPShkPU0p'@; put 'LmNvcHkoKSkub24obCxhKSx2Lm9uPWh9fShhLGMsbCkpfSxhdHRyOmZ1bmN0aW9uIEZNdChjLGwpe3ZhciBhPXlOKGMpLGQ9InRyYW5zZm9ybSI9PT1hP1o4ZTpzN2U7cmV0dXJuIHRoaXMuYXR0clR3ZWVuKGMsImZ1bmN0aW9uIj09dHlwZW9mIGw/KGEubG9jYWw/UE10Ok9NdCkoYSxkLE10'@; put 'ZSh0aGlzLCJhdHRyLiIrYyxsKSk6bnVsbD09bD8oYS5sb2NhbD9JTXQ6RE10KShhKTooYS5sb2NhbD9MTXQ6Uk10KShhLGQsbCkpfSxhdHRyVHdlZW46ZnVuY3Rpb24gak10KGMsbCl7dmFyIGE9ImF0dHIuIitjO2lmKGFyZ3VtZW50cy5sZW5ndGg8MilyZXR1cm4oYT10aGlzLnR3ZWVuKGEp'@; put 'KSYmYS5fdmFsdWU7aWYobnVsbD09bClyZXR1cm4gdGhpcy50d2VlbihhLG51bGwpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBsKXRocm93IG5ldyBFcnJvcjt2YXIgZD15TihjKTtyZXR1cm4gdGhpcy50d2VlbihhLChkLmxvY2FsP1ZNdDpCTXQpKGQsbCkpfSxzdHlsZTpmdW5jdGlvbiBmeHQo'@; put 'YyxsLGEpe3ZhciBkPSJ0cmFuc2Zvcm0iPT0oYys9IiIpP2xNdDpzN2U7cmV0dXJuIG51bGw9PWw/dGhpcy5zdHlsZVR3ZWVuKGMsZnVuY3Rpb24gY3h0KGMsbCl7dmFyIGEsZCxoO3JldHVybiBmdW5jdGlvbigpe3ZhciBmPWt3KHRoaXMsYyksdj0odGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0'@; put 'eShjKSxrdyh0aGlzLGMpKTtyZXR1cm4gZj09PXY/bnVsbDpmPT09YSYmdj09PWQ/aDpoPWwoYT1mLGQ9dil9fShjLGQpKS5vbigiZW5kLnN0eWxlLiIrYyxvN2UoYykpOiJmdW5jdGlvbiI9PXR5cGVvZiBsP3RoaXMuc3R5bGVUd2VlbihjLGZ1bmN0aW9uIGR4dChjLGwsYSl7dmFyIGQsaCxm'@; put 'O3JldHVybiBmdW5jdGlvbigpe3ZhciB2PWt3KHRoaXMsYyksTT1hKHRoaXMpLEk9TSsiIjtyZXR1cm4gbnVsbD09TSYmKHRoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoYyksST1NPWt3KHRoaXMsYykpLHY9PT1JP251bGw6dj09PWQmJkk9PT1oP2Y6KGg9SSxmPWwoZD12LE0pKX19KGMsZCxN'@; put 'dGUodGhpcywic3R5bGUuIitjLGwpKSkuZWFjaChmdW5jdGlvbiBoeHQoYyxsKXt2YXIgYSxkLGgsTSxmPSJzdHlsZS4iK2wsdj0iZW5kLiIrZjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgST1sNCh0aGlzLGMpLEc9SS5vbixyZT1udWxsPT1JLnZhbHVlW2ZdP018fChNPW83ZShsKSk6dm9pZCAw'@; put 'OyhHIT09YXx8aCE9PXJlKSYmKGQ9KGE9RykuY29weSgpKS5vbih2LGg9cmUpLEkub249ZH19KHRoaXMuX2lkLGMpKTp0aGlzLnN0eWxlVHdlZW4oYyxmdW5jdGlvbiB1eHQoYyxsLGEpe3ZhciBkLGYsaD1hKyIiO3JldHVybiBmdW5jdGlvbigpe3ZhciB2PWt3KHRoaXMsYyk7cmV0dXJuIHY9'@; put 'PT1oP251bGw6dj09PWQ/ZjpmPWwoZD12LGEpfX0oYyxkLGwpLGEpLm9uKCJlbmQuc3R5bGUuIitjLG51bGwpfSxzdHlsZVR3ZWVuOmZ1bmN0aW9uIG14dChjLGwsYSl7dmFyIGQ9InN0eWxlLiIrKGMrPSIiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpcmV0dXJuKGQ9dGhpcy50d2VlbihkKSkm'@; put 'JmQuX3ZhbHVlO2lmKG51bGw9PWwpcmV0dXJuIHRoaXMudHdlZW4oZCxudWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgbCl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIHRoaXMudHdlZW4oZCxmdW5jdGlvbiBneHQoYyxsLGEpe3ZhciBkLGg7ZnVuY3Rpb24gZigpe3ZhciB2PWwuYXBwbHkodGhp'@; put 'cyxhcmd1bWVudHMpO3JldHVybiB2IT09aCYmKGQ9KGg9dikmJmZ1bmN0aW9uIHB4dChjLGwsYSl7cmV0dXJuIGZ1bmN0aW9uKGQpe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkoYyxsLmNhbGwodGhpcyxkKSxhKX19KGMsdixhKSksZH1yZXR1cm4gZi5fdmFsdWU9bCxmfShjLGwsYT8/IiIpKX0s'@; put 'dGV4dDpmdW5jdGlvbiBieHQoYyl7cmV0dXJuIHRoaXMudHdlZW4oInRleHQiLCJmdW5jdGlvbiI9PXR5cGVvZiBjP2Z1bmN0aW9uIHl4dChjKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbD1jKHRoaXMpO3RoaXMudGV4dENvbnRlbnQ9bD8/IiJ9fShNdGUodGhpcywidGV4dCIsYykpOmZ1bmN0'@; put 'aW9uIHZ4dChjKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PWN9fShudWxsPT1jPyIiOmMrIiIpKX0sdGV4dFR3ZWVuOmZ1bmN0aW9uIEN4dChjKXt2YXIgbD0idGV4dCI7aWYoYXJndW1lbnRzLmxlbmd0aDwxKXJldHVybihsPXRoaXMudHdlZW4obCkpJiZsLl92YWx1ZTtp'@; put 'ZihudWxsPT1jKXJldHVybiB0aGlzLnR3ZWVuKGwsbnVsbCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGMpdGhyb3cgbmV3IEVycm9yO3JldHVybiB0aGlzLnR3ZWVuKGwsZnVuY3Rpb24gd3h0KGMpe3ZhciBsLGE7ZnVuY3Rpb24gZCgpe3ZhciBoPWMuYXBwbHkodGhpcyxhcmd1bWVudHMpO3Jl'@; put 'dHVybiBoIT09YSYmKGw9KGE9aCkmJmZ1bmN0aW9uIF94dChjKXtyZXR1cm4gZnVuY3Rpb24obCl7dGhpcy50ZXh0Q29udGVudD1jLmNhbGwodGhpcyxsKX19KGgpKSxsfXJldHVybiBkLl92YWx1ZT1jLGR9KGMpKX0scmVtb3ZlOmZ1bmN0aW9uIGl4dCgpe3JldHVybiB0aGlzLm9uKCJlbmQu'@; put 'cmVtb3ZlIixmdW5jdGlvbiByeHQoYyl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGw9dGhpcy5wYXJlbnROb2RlO2Zvcih2YXIgYSBpbiB0aGlzLl9fdHJhbnNpdGlvbilpZigrYSE9PWMpcmV0dXJuO2wmJmwucmVtb3ZlQ2hpbGQodGhpcyl9fSh0aGlzLl9pZCkpfSx0d2VlbjpmdW5jdGlvbiBk'@; put 'TXQoYyxsKXt2YXIgYT10aGlzLl9pZDtpZihjKz0iIixhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgdixkPXgzKHRoaXMubm9kZSgpLGEpLnR3ZWVuLGg9MCxmPWQubGVuZ3RoO2g8ZjsrK2gpaWYoKHY9ZFtoXSkubmFtZT09PWMpcmV0dXJuIHYudmFsdWU7cmV0dXJuIG51bGx9cmV0dXJu'@; put 'IHRoaXMuZWFjaCgobnVsbD09bD9jTXQ6dU10KShhLGMsbCkpfSxkZWxheTpmdW5jdGlvbiBaTXQoYyl7dmFyIGw9dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgYz96TXQ6VU10KShsLGMpKTp4Myh0aGlzLm5vZGUoKSxsKS5k'@; put 'ZWxheX0sZHVyYXRpb246ZnVuY3Rpb24gR010KGMpe3ZhciBsPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgoImZ1bmN0aW9uIj09dHlwZW9mIGM/V010OllNdCkobCxjKSk6eDModGhpcy5ub2RlKCksbCkuZHVyYXRpb259LGVhc2U6ZnVuY3Rpb24gS010KGMp'@; put 'e3ZhciBsPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChmdW5jdGlvbiAkTXQoYyxsKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgbCl0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7bDQodGhpcyxjKS5lYXNlPWx9fShsLGMpKTp4Myh0aGlzLm5vZGUo'@; put 'KSxsKS5lYXNlfSxlYXNlVmFyeWluZzpmdW5jdGlvbiBxTXQoYyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGMpdGhyb3cgbmV3IEVycm9yO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gWE10KGMsbCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9bC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7aWYo'@; put 'ImZ1bmN0aW9uIiE9dHlwZW9mIGEpdGhyb3cgbmV3IEVycm9yO2w0KHRoaXMsYykuZWFzZT1hfX0odGhpcy5faWQsYykpfSxlbmQ6ZnVuY3Rpb24gTXh0KCl7dmFyIGMsbCxhPXRoaXMsZD1hLl9pZCxoPWEuc2l6ZSgpO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihmLHYpe3ZhciBNPXt2'@; put 'YWx1ZTp2fSxJPXt2YWx1ZTpmdW5jdGlvbigpezA9PS0taCYmZigpfX07YS5lYWNoKGZ1bmN0aW9uKCl7dmFyIEc9bDQodGhpcyxkKSxyZT1HLm9uO3JlIT09YyYmKChsPShjPXJlKS5jb3B5KCkpLl8uY2FuY2VsLnB1c2goTSksbC5fLmludGVycnVwdC5wdXNoKE0pLGwuXy5lbmQucHVzaChJ'@; put 'KSksRy5vbj1sfSksMD09PWgmJmYoKX0pfSxbU3ltYm9sLml0ZXJhdG9yXTpLZ1tTeW1ib2wuaXRlcmF0b3JdfTt2YXIgVHh0PXt0aW1lOm51bGwsZGVsYXk6MCxkdXJhdGlvbjoyNTAsZWFzZTpmdW5jdGlvbiBFeHQoYyl7cmV0dXJuKChjKj0yKTw9MT9jKmMqYzooYy09MikqYypjKzIpLzJ9'@; put 'fTtmdW5jdGlvbiBBeHQoYyxsKXtmb3IodmFyIGE7IShhPWMuX190cmFuc2l0aW9uKXx8IShhPWFbbF0pOylpZighKGM9Yy5wYXJlbnROb2RlKSl0aHJvdyBuZXcgRXJyb3IoYHRyYW5zaXRpb24gJHtsfSBub3QgZm91bmRgKTtyZXR1cm4gYX0kOS5wcm90b3R5cGUuaW50ZXJydXB0PWZ1bmN0'@; put 'aW9uIGFNdChjKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7QU4odGhpcyxjKX0pfSwkOS5wcm90b3R5cGUudHJhbnNpdGlvbj1mdW5jdGlvbiBreHQoYyl7dmFyIGwsYTtjIGluc3RhbmNlb2YgZDQ/KGw9Yy5faWQsYz1jLl9uYW1lKToobD1sN2UoKSwoYT1UeHQpLnRpbWU9dnRlKCks'@; put 'Yz1udWxsPT1jP251bGw6YysiIik7Zm9yKHZhciBkPXRoaXMuX2dyb3VwcyxoPWQubGVuZ3RoLGY9MDtmPGg7KytmKWZvcih2YXIgSSx2PWRbZl0sTT12Lmxlbmd0aCxHPTA7RzxNOysrRykoST12W0ddKSYmVE4oSSxjLGwsRyx2LGF8fEF4dChJLGwpKTtyZXR1cm4gbmV3IGQ0KGQsdGhpcy5f'@; put 'cGFyZW50cyxjLGwpfTt2YXIgRHh0PVtudWxsXTtjb25zdCBJdGU9e2NhcHR1cmU6ITAscGFzc2l2ZTohMX07ZnVuY3Rpb24gUnRlKGMpe2MucHJldmVudERlZmF1bHQoKSxjLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIGM3ZShjKXtyZXR1cm4oKGM9TWF0aC5leHAoYykp'@; put 'KzEvYykvMn1jb25zdCBIeHQ9ZnVuY3Rpb24gYyhsLGEsZCl7ZnVuY3Rpb24gaChmLHYpe3ZhciBzdCxwdCxNPWZbMF0sST1mWzFdLEc9ZlsyXSx5ZT12WzJdLEVlPXZbMF0tTSxCZT12WzFdLUksR2U9RWUqRWUrQmUqQmU7aWYoR2U8MWUtMTIpcHQ9TWF0aC5sb2coeWUvRykvbCxzdD1mdW5j'@; put 'dGlvbihNbil7cmV0dXJuW00rTW4qRWUsSStNbipCZSxHKk1hdGguZXhwKGwqTW4qcHQpXX07ZWxzZXt2YXIgZHQ9TWF0aC5zcXJ0KEdlKSxxdD0oeWUqeWUtRypHK2QqR2UpLygyKkcqYSpkdCksbW49KHllKnllLUcqRy1kKkdlKS8oMip5ZSphKmR0KSx3bj1NYXRoLmxvZyhNYXRoLnNxcnQo'@; put 'cXQqcXQrMSktcXQpLGhuPU1hdGgubG9nKE1hdGguc3FydChtbiptbisxKS1tbik7cHQ9KGhuLXduKS9sLHN0PWZ1bmN0aW9uKE1uKXt2YXIgTXI9TW4qcHQsa3I9YzdlKHduKSxxbj1HLyhhKmR0KSooa3IqZnVuY3Rpb24gRnh0KGMpe3JldHVybigoYz1NYXRoLmV4cCgyKmMpKS0xKS8oYysx'@; put 'KX0obCpNcit3biktZnVuY3Rpb24gUHh0KGMpe3JldHVybigoYz1NYXRoLmV4cChjKSktMS9jKS8yfSh3bikpO3JldHVybltNK3FuKkVlLEkrcW4qQmUsRyprci9jN2UobCpNcit3bildfX1yZXR1cm4gc3QuZHVyYXRpb249MWUzKnB0KmwvTWF0aC5TUVJUMixzdH1yZXR1cm4gaC5yaG89ZnVu'@; put 'Y3Rpb24oZil7dmFyIHY9TWF0aC5tYXgoLjAwMSwrZiksTT12KnY7cmV0dXJuIGModixNLE0qTSl9LGh9KE1hdGguU1FSVDIsMiw0KTtmdW5jdGlvbiBROShjLGwpe2lmKGM9ZnVuY3Rpb24gTnh0KGMpe2xldCBsO2Zvcig7bD1jLnNvdXJjZUV2ZW50OyljPWw7cmV0dXJuIGN9KGMpLHZvaWQg'@; put 'MD09PWwmJihsPWMuY3VycmVudFRhcmdldCksbCl7dmFyIGE9bC5vd25lclNWR0VsZW1lbnR8fGw7aWYoYS5jcmVhdGVTVkdQb2ludCl7dmFyIGQ9YS5jcmVhdGVTVkdQb2ludCgpO3JldHVybiBkLng9Yy5jbGllbnRYLGQueT1jLmNsaWVudFksWyhkPWQubWF0cml4VHJhbnNmb3JtKGwuZ2V0'@; put 'U2NyZWVuQ1RNKCkuaW52ZXJzZSgpKSkueCxkLnldfWlmKGwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KXt2YXIgaD1sLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybltjLmNsaWVudFgtaC5sZWZ0LWwuY2xpZW50TGVmdCxjLmNsaWVudFktaC50b3AtbC5jbGllbnRUb3BdfX1yZXR1cm5b'@; put 'Yy5wYWdlWCxjLnBhZ2VZXX1jb25zdCBGTj1jPT4oKT0+YztmdW5jdGlvbiBWeHQoYyx7c291cmNlRXZlbnQ6bCx0YXJnZXQ6YSx0cmFuc2Zvcm06ZCxkaXNwYXRjaDpofSl7T2JqZWN0LmRlZmluZVByb3BlcnRpZXModGhpcyx7dHlwZTp7dmFsdWU6YyxlbnVtZXJhYmxlOiEwLGNvbmZpZ3Vy'@; put 'YWJsZTohMH0sc291cmNlRXZlbnQ6e3ZhbHVlOmwsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9LHRhcmdldDp7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0sdHJhbnNmb3JtOnt2YWx1ZTpkLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSxfOnt2YWx1'@; put 'ZTpofX0pfWZ1bmN0aW9uIFhnKGMsbCxhKXt0aGlzLms9Yyx0aGlzLng9bCx0aGlzLnk9YX1YZy5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlhnLHNjYWxlOmZ1bmN0aW9uKGMpe3JldHVybiAxPT09Yz90aGlzOm5ldyBYZyh0aGlzLmsqYyx0aGlzLngsdGhpcy55KX0sdHJhbnNsYXRlOmZ1bmN0'@; put 'aW9uKGMsbCl7cmV0dXJuIDA9PT1jJjA9PT1sP3RoaXM6bmV3IFhnKHRoaXMuayx0aGlzLngrdGhpcy5rKmMsdGhpcy55K3RoaXMuaypsKX0sYXBwbHk6ZnVuY3Rpb24oYyl7cmV0dXJuW2NbMF0qdGhpcy5rK3RoaXMueCxjWzFdKnRoaXMuayt0aGlzLnldfSxhcHBseVg6ZnVuY3Rpb24oYyl7'@; put 'cmV0dXJuIGMqdGhpcy5rK3RoaXMueH0sYXBwbHlZOmZ1bmN0aW9uKGMpe3JldHVybiBjKnRoaXMuayt0aGlzLnl9LGludmVydDpmdW5jdGlvbihjKXtyZXR1cm5bKGNbMF0tdGhpcy54KS90aGlzLmssKGNbMV0tdGhpcy55KS90aGlzLmtdfSxpbnZlcnRYOmZ1bmN0aW9uKGMpe3JldHVybihj'@; put 'LXRoaXMueCkvdGhpcy5rfSxpbnZlcnRZOmZ1bmN0aW9uKGMpe3JldHVybihjLXRoaXMueSkvdGhpcy5rfSxyZXNjYWxlWDpmdW5jdGlvbihjKXtyZXR1cm4gYy5jb3B5KCkuZG9tYWluKGMucmFuZ2UoKS5tYXAodGhpcy5pbnZlcnRYLHRoaXMpLm1hcChjLmludmVydCxjKSl9LHJlc2NhbGVZ'@; put 'OmZ1bmN0aW9uKGMpe3JldHVybiBjLmNvcHkoKS5kb21haW4oYy5yYW5nZSgpLm1hcCh0aGlzLmludmVydFksdGhpcykubWFwKGMuaW52ZXJ0LGMpKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4idHJhbnNsYXRlKCIrdGhpcy54KyIsIit0aGlzLnkrIikgc2NhbGUoIit0aGlzLmsrIiki'@; put 'fX07dmFyIEhOPW5ldyBYZygxLDAsMCk7ZnVuY3Rpb24gTk4oYyl7Zm9yKDshYy5fX3pvb207KWlmKCEoYz1jLnBhcmVudE5vZGUpKXJldHVybiBITjtyZXR1cm4gYy5fX3pvb219ZnVuY3Rpb24gTHRlKGMpe2Muc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gRkEoYyl7Yy5w'@; put 'cmV2ZW50RGVmYXVsdCgpLGMuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gQnh0KGMpe3JldHVybiEoYy5jdHJsS2V5JiYid2hlZWwiIT09Yy50eXBlfHxjLmJ1dHRvbil9ZnVuY3Rpb24ganh0KCl7dmFyIGM9dGhpcztyZXR1cm4gYyBpbnN0YW5jZW9mIFNWR0VsZW1lbnQ/'@; put 'KGM9Yy5vd25lclNWR0VsZW1lbnR8fGMpLmhhc0F0dHJpYnV0ZSgidmlld0JveCIpP1tbKGM9Yy52aWV3Qm94LmJhc2VWYWwpLngsYy55XSxbYy54K2Mud2lkdGgsYy55K2MuaGVpZ2h0XV06W1swLDBdLFtjLndpZHRoLmJhc2VWYWwudmFsdWUsYy5oZWlnaHQuYmFzZVZhbC52YWx1ZV1dOltb'@; put 'MCwwXSxbYy5jbGllbnRXaWR0aCxjLmNsaWVudEhlaWdodF1dfWZ1bmN0aW9uIHU3ZSgpe3JldHVybiB0aGlzLl9fem9vbXx8SE59ZnVuY3Rpb24genh0KGMpe3JldHVybi1jLmRlbHRhWSooMT09PWMuZGVsdGFNb2RlPy4wNTpjLmRlbHRhTW9kZT8xOi4wMDIpKihjLmN0cmxLZXk/MTA6MSl9'@; put 'ZnVuY3Rpb24gVXh0KCl7cmV0dXJuIG5hdmlnYXRvci5tYXhUb3VjaFBvaW50c3x8Im9udG91Y2hzdGFydCJpbiB0aGlzfWZ1bmN0aW9uIFp4dChjLGwsYSl7dmFyIGQ9Yy5pbnZlcnRYKGxbMF1bMF0pLWFbMF1bMF0saD1jLmludmVydFgobFsxXVswXSktYVsxXVswXSxmPWMuaW52ZXJ0WShs'@; put 'WzBdWzFdKS1hWzBdWzFdLHY9Yy5pbnZlcnRZKGxbMV1bMV0pLWFbMV1bMV07cmV0dXJuIGMudHJhbnNsYXRlKGg+ZD8oZCtoKS8yOk1hdGgubWluKDAsZCl8fE1hdGgubWF4KDAsaCksdj5mPyhmK3YpLzI6TWF0aC5taW4oMCxmKXx8TWF0aC5tYXgoMCx2KSl9ZnVuY3Rpb24gZDdlKGMpe3Zh'@; put 'ciBsPXt9LGE9Yy5ub2RlKCkubm9kZU5hbWU7bC50YWc9YSwiI3RleHQiPT1hP2wudGV4dD1jLnRleHQoKToiI2NvbW1lbnQiPT1hJiYobC5jb21tZW50PWMudGV4dCgpKSxsLmF0dHJpYnV0ZXM9e307dmFyIGQ9Yy5ub2RlKCkuYXR0cmlidXRlcztpZihkKWZvcih2YXIgaD0wO2g8ZC5sZW5n'@; put 'dGg7aCsrKXt2YXIgZj1kW2hdO2wuYXR0cmlidXRlc1tmLm5hbWVdPWYudmFsdWV9dmFyIHJlLEk9Yy5ub2RlKCkudHJhbnNmb3JtO2lmKEkmJjAhPUkuYmFzZVZhbC5udW1iZXJPZkl0ZW1zKXt2YXIgRz1JLmJhc2VWYWwuY29uc29saWRhdGUoKS5tYXRyaXg7bC50cmFuc2xhdGlvbj17eDpH'@; put 'LmUseTpHLmZ9LGwuc2NhbGU9Ry5hfWlmKCJlbGxpcHNlIj09YSYmKGwuY2VudGVyPXt4OmwuYXR0cmlidXRlcy5jeCx5OmwuYXR0cmlidXRlcy5jeX0pLCJwb2x5Z29uIj09YSl7dmFyIHVlPShyZT1jLmF0dHIoInBvaW50cyIpLnNwbGl0KCIgIikpLm1hcChmdW5jdGlvbihxdCl7cmV0dXJu'@; put 'IHF0LnNwbGl0KCIsIilbMF19KSx5ZT1yZS5tYXAoZnVuY3Rpb24ocXQpe3JldHVybiBxdC5zcGxpdCgiLCIpWzFdfSksRWU9TWF0aC5taW4uYXBwbHkobnVsbCx1ZSksQmU9TWF0aC5tYXguYXBwbHkobnVsbCx1ZSksR2U9TWF0aC5taW4uYXBwbHkobnVsbCx5ZSksc3Q9TWF0aC5tYXguYXBw'@; put 'bHkobnVsbCx5ZSk7bC5iYm94PXt4OkVlLHk6R2Usd2lkdGg6QmUtRWUsaGVpZ2h0OnN0LUdlfSxsLmNlbnRlcj17eDooRWUrQmUpLzIseTooR2Urc3QpLzJ9fSJwYXRoIj09YSYmKChyZT1jLmF0dHIoImQiKS5zcGxpdCgvW0EtWiBdLykpLnNoaWZ0KCksdWU9cmUubWFwKGZ1bmN0aW9uKGdy'@; put 'KXtyZXR1cm4rZ3Iuc3BsaXQoIiwiKVswXX0pLHllPXJlLm1hcChmdW5jdGlvbihncil7cmV0dXJuK2dyLnNwbGl0KCIsIilbMV19KSxFZT1NYXRoLm1pbi5hcHBseShudWxsLHVlKSxCZT1NYXRoLm1heC5hcHBseShudWxsLHVlKSxHZT1NYXRoLm1pbi5hcHBseShudWxsLHllKSxzdD1NYXRo'@; put 'Lm1heC5hcHBseShudWxsLHllKSxsLmJib3g9e3g6RWUseTpHZSx3aWR0aDpCZS1FZSxoZWlnaHQ6c3QtR2V9LGwuY2VudGVyPXt4OihFZStCZSkvMix5OihHZStzdCkvMn0sbC50b3RhbExlbmd0aD1jLm5vZGUoKS5nZXRUb3RhbExlbmd0aCgpKTtyZXR1cm4idGV4dCI9PWEmJihsLmNlbnRl'@; put 'cj17eDpjLmF0dHIoIngiKSx5OmMuYXR0cigieSIpfSksIiN0ZXh0Ij09YT9sLnRleHQ9Yy50ZXh0KCk6IiNjb21tZW50Ij09YSYmKGwuY29tbWVudD1jLnRleHQoKSksbH1mdW5jdGlvbiBldihjKXt2YXIgbD1kN2UoYyk7cmV0dXJuIGwuY2hpbGRyZW49W10sZ3RlKGMubm9kZSgpLmNoaWxk'@; put 'Tm9kZXMpLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1ldihfbyh0aGlzKSk7ZC5wYXJlbnQ9bCxsLmNoaWxkcmVuLnB1c2goZCl9KSxsfWZ1bmN0aW9uIE90ZShjKXtyZXR1cm4iI3RleHQiPT1jLnRhZz9kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiIik6IiNjb21tZW50Ij09Yy50YWc/ZG9jdW1l'@; put 'bnQuY3JlYXRlQ29tbWVudChjLmNvbW1lbnQpOmRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGMudGFnKX1mdW5jdGlvbiBQdGUoYyl7dmFyIGw9T3RlKGMpLGE9X28obCksZD1jLmF0dHJpYnV0ZXM7Zm9yKHZhciBoIG9mIE9iamVjdC5rZXlz'@; put 'KGQpKWEuYXR0cihoLGRbaF0pO3JldHVybiBsfWZ1bmN0aW9uIGg3ZShjLGwpe3ZhciBhPV9vKGMubm9kZSgpLnBhcmVudE5vZGUpLGQ9UHRlKGwpLGg9YS5pbnNlcnQoZnVuY3Rpb24oKXtyZXR1cm4gZH0sZnVuY3Rpb24oKXtyZXR1cm4gYy5ub2RlKCl9KTtyZXR1cm4gYy5yZW1vdmUoKSxo'@; put 'fWZ1bmN0aW9uIEZ0ZShjLGwpeyFmdW5jdGlvbiBZeHQoYyxsKXtjLmRhdHVtKGwpLGMuZGF0YShbbF0sZnVuY3Rpb24oYSl7cmV0dXJuIGEua2V5fSl9KGMsbCksZ3RlKGMubm9kZSgpLmNoaWxkTm9kZXMpLmVhY2goZnVuY3Rpb24oZCxoKXtGdGUoX28odGhpcyksbC5jaGlsZHJlbltoXSl9'@; put 'KX1mdW5jdGlvbiBIQShjLGw9MCl7dmFyIGE9X28odGhpcyksaD1jLmF0dHJpYnV0ZXMsZj1hLm5vZGUoKS5hdHRyaWJ1dGVzO2lmKGYpZm9yKHZhciB2PTA7djxmLmxlbmd0aDt2Kyspe3ZhciBNPWZbdl0sST1NLm5hbWU7aWYoInhtbG5zIiE9SS5zcGxpdCgiOiIpWzBdJiZNLm5hbWVzcGFj'@; put 'ZVVSSSl7dmFyIEc9TS5uYW1lc3BhY2VVUkkuc3BsaXQoIi8iKTtJPUdbRy5sZW5ndGgtMV0rIjoiK0l9SSBpbiBofHwoaFtJXT1udWxsKX1mb3IodmFyIHVlIG9mIE9iamVjdC5rZXlzKGgpKWEuYXR0cih1ZSxoW3VlXSk7Yy50ZXh0JiZhLnRleHQoYy50ZXh0KSxmdW5jdGlvbiBHeHQoYyxs'@; put 'KXt2YXIgYT1jLnNlbGVjdEFsbChmdW5jdGlvbigpe3JldHVybiBjLm5vZGUoKS5jaGlsZE5vZGVzfSksZD0oYT1hLmRhdGEoZnVuY3Rpb24odil7cmV0dXJuIHYuY2hpbGRyZW59LGZ1bmN0aW9uKHYpe3JldHVybiB2LnRhZysiLSIrbH0pKS5lbnRlcigpLmFwcGVuZChmdW5jdGlvbih2KXty'@; put 'ZXR1cm4gT3RlKHYpfSksaD1hLmV4aXQoKTtoPWgucmVtb3ZlKCksYT1kLm1lcmdlKGEpO3ZhciBmPXt9O2EuZWFjaChmdW5jdGlvbih2KXt2YXIgTT12LnRhZztudWxsPT1mW01dJiYoZltNXT0wKTt2YXIgST1mW01dKys7SEEuY2FsbCh0aGlzLHYsSSl9KX0oYSxsKX1mdW5jdGlvbiBmN2Uo'@; put 'YyxsKXt2YXIgdixhPWw/bC5sZW5ndGg6MCxkPWM/TWF0aC5taW4oYSxjLmxlbmd0aCk6MCxoPW5ldyBBcnJheShkKSxmPW5ldyBBcnJheShhKTtmb3Iodj0wO3Y8ZDsrK3YpaFt2XT1WTihjW3ZdLGxbdl0pO2Zvcig7djxhOysrdilmW3ZdPWxbdl07cmV0dXJuIGZ1bmN0aW9uKE0pe2Zvcih2'@; put 'PTA7djxkOysrdilmW3ZdPWhbdl0oTSk7cmV0dXJuIGZ9fWZ1bmN0aW9uICR4dChjLGwpe3ZhciBhPW5ldyBEYXRlO3JldHVybiBjPStjLGw9K2wsZnVuY3Rpb24oZCl7cmV0dXJuIGEuc2V0VGltZShjKigxLWQpK2wqZCksYX19ZnVuY3Rpb24gS3h0KGMsbCl7dmFyIGgsYT17fSxkPXt9O2Zv'@; put 'cihoIGluKG51bGw9PT1jfHwib2JqZWN0IiE9dHlwZW9mIGMpJiYoYz17fSksKG51bGw9PT1sfHwib2JqZWN0IiE9dHlwZW9mIGwpJiYobD17fSksbCloIGluIGM/YVtoXT1WTihjW2hdLGxbaF0pOmRbaF09bFtoXTtyZXR1cm4gZnVuY3Rpb24oZil7Zm9yKGggaW4gYSlkW2hdPWFbaF0oZik7'@; put 'cmV0dXJuIGR9fWZ1bmN0aW9uIFh4dChjLGwpe2x8fChsPVtdKTt2YXIgaCxhPWM/TWF0aC5taW4obC5sZW5ndGgsYy5sZW5ndGgpOjAsZD1sLnNsaWNlKCk7cmV0dXJuIGZ1bmN0aW9uKGYpe2ZvcihoPTA7aDxhOysraClkW2hdPWNbaF0qKDEtZikrbFtoXSpmO3JldHVybiBkfX1mdW5jdGlv'@; put 'biBWTihjLGwpe3ZhciBkLGE9dHlwZW9mIGw7cmV0dXJuIG51bGw9PWx8fCJib29sZWFuIj09PWE/VHRlKGwpOigibnVtYmVyIj09PWE/YzQ6InN0cmluZyI9PT1hPyhkPVg5KGwpKT8obD1kLFBOKTphN2U6bCBpbnN0YW5jZW9mIFg5P1BOOmwgaW5zdGFuY2VvZiBEYXRlPyR4dDpmdW5jdGlv'@; put 'biBxeHQoYyl7cmV0dXJuIEFycmF5QnVmZmVyLmlzVmlldyhjKSYmIShjIGluc3RhbmNlb2YgRGF0YVZpZXcpfShsKT9YeHQ6QXJyYXkuaXNBcnJheShsKT9mN2U6ImZ1bmN0aW9uIiE9dHlwZW9mIGwudmFsdWVPZiYmImZ1bmN0aW9uIiE9dHlwZW9mIGwudG9TdHJpbmd8fGlzTmFOKGwpP0t4'@; put 'dDpjNCkoYyxsKX1mdW5jdGlvbiBwN2UoKXt2YXIgYz10aGlzLGQ9X28odGhpcy5fc2VsZWN0aW9uLm5vZGUoKS5xdWVyeVNlbGVjdG9yKCJzdmciKSk7aWYoMD09ZC5zaXplKCkpcmV0dXJuIHRoaXM7dGhpcy5fem9vbVNlbGVjdGlvbj1kO3ZhciBoPWZ1bmN0aW9uIFd4dCgpe3ZhciByZSx1'@; put 'ZSx5ZSxjPUJ4dCxsPWp4dCxhPVp4dCxkPXp4dCxoPVV4dCxmPVswLDEvMF0sdj1bWy0xLzAsLTEvMF0sWzEvMCwxLzBdXSxNPTI1MCxJPUh4dCxHPW10ZSgic3RhcnQiLCJ6b29tIiwiZW5kIiksRWU9NTAwLEJlPTE1MCxHZT0wLHN0PTEwO2Z1bmN0aW9uIHB0KFBuKXtQbi5wcm9wZXJ0eSgi'@; put 'X196b29tIix1N2UpLm9uKCJ3aGVlbC56b29tIixNcix7cGFzc2l2ZTohMX0pLm9uKCJtb3VzZWRvd24uem9vbSIsa3IpLm9uKCJkYmxjbGljay56b29tIixxbikuZmlsdGVyKGgpLm9uKCJ0b3VjaHN0YXJ0Lnpvb20iLGdyKS5vbigidG91Y2htb3ZlLnpvb20iLHFyKS5vbigidG91Y2hlbmQu'@; put 'em9vbSB0b3VjaGNhbmNlbC56b29tIixfaSkuc3R5bGUoIi13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvciIsInJnYmEoMCwwLDAsMCkiKX1mdW5jdGlvbiBkdChQbixVcil7cmV0dXJuKFVyPU1hdGgubWF4KGZbMF0sTWF0aC5taW4oZlsxXSxVcikpKT09PVBuLms/UG46bmV3IFhnKFVyLFBu'@; put 'LngsUG4ueSl9ZnVuY3Rpb24gcXQoUG4sVXIsdHIpe3ZhciBCcj1VclswXS10clswXSpQbi5rLFlyPVVyWzFdLXRyWzFdKlBuLms7cmV0dXJuIEJyPT09UG4ueCYmWXI9PT1Qbi55P1BuOm5ldyBYZyhQbi5rLEJyLFlyKX1mdW5jdGlvbiBtbihQbil7cmV0dXJuWygrUG5bMF1bMF0rICtQblsx'@; put 'XVswXSkvMiwoK1BuWzBdWzFdKyArUG5bMV1bMV0pLzJdfWZ1bmN0aW9uIHduKFBuLFVyLHRyLEJyKXtQbi5vbigic3RhcnQuem9vbSIsZnVuY3Rpb24oKXtobih0aGlzLGFyZ3VtZW50cykuZXZlbnQoQnIpLnN0YXJ0KCl9KS5vbigiaW50ZXJydXB0Lnpvb20gZW5kLnpvb20iLGZ1bmN0aW9u'@; put 'KCl7aG4odGhpcyxhcmd1bWVudHMpLmV2ZW50KEJyKS5lbmQoKX0pLnR3ZWVuKCJ6b29tIixmdW5jdGlvbigpe3ZhciBZcj10aGlzLHdpPWFyZ3VtZW50cyxCaT1obihZcix3aSkuZXZlbnQoQnIpLGhhPWwuYXBwbHkoWXIsd2kpLG1hPW51bGw9PXRyP21uKGhhKToiZnVuY3Rpb24iPT10eXBl'@; put 'b2YgdHI/dHIuYXBwbHkoWXIsd2kpOnRyLHZ0PU1hdGgubWF4KGhhWzFdWzBdLWhhWzBdWzBdLGhhWzFdWzFdLWhhWzBdWzFdKSx4dD1Zci5fX3pvb20sJHQ9ImZ1bmN0aW9uIj09dHlwZW9mIFVyP1VyLmFwcGx5KFlyLHdpKTpVcixZbj1JKHh0LmludmVydChtYSkuY29uY2F0KHZ0L3h0Lmsp'@; put 'LCR0LmludmVydChtYSkuY29uY2F0KHZ0LyR0LmspKTtyZXR1cm4gZnVuY3Rpb24oJG4pe2lmKDE9PT0kbikkbj0kdDtlbHNle3ZhciBhcj1ZbigkbiksR3I9dnQvYXJbMl07JG49bmV3IFhnKEdyLG1hWzBdLWFyWzBdKkdyLG1hWzFdLWFyWzFdKkdyKX1CaS56b29tKG51bGwsJG4pfX0pfWZ1'@; put 'bmN0aW9uIGhuKFBuLFVyLHRyKXtyZXR1cm4hdHImJlBuLl9fem9vbWluZ3x8bmV3IE1uKFBuLFVyKX1mdW5jdGlvbiBNbihQbixVcil7dGhpcy50aGF0PVBuLHRoaXMuYXJncz1Vcix0aGlzLmFjdGl2ZT0wLHRoaXMuc291cmNlRXZlbnQ9bnVsbCx0aGlzLmV4dGVudD1sLmFwcGx5KFBuLFVy'@; put 'KSx0aGlzLnRhcHM9MH1mdW5jdGlvbiBNcihQbiwuLi5Vcil7aWYoYy5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciB0cj1obih0aGlzLFVyKS5ldmVudChQbiksQnI9dGhpcy5fX3pvb20sWXI9TWF0aC5tYXgoZlswXSxNYXRoLm1pbihmWzFdLEJyLmsqTWF0aC5wb3coMixkLmFwcGx5KHRo'@; put 'aXMsYXJndW1lbnRzKSkpKSx3aT1ROShQbik7aWYodHIud2hlZWwpKHRyLm1vdXNlWzBdWzBdIT09d2lbMF18fHRyLm1vdXNlWzBdWzFdIT09d2lbMV0pJiYodHIubW91c2VbMV09QnIuaW52ZXJ0KHRyLm1vdXNlWzBdPXdpKSksY2xlYXJUaW1lb3V0KHRyLndoZWVsKTtlbHNle2lmKEJyLms9'@; put 'PT1ZcilyZXR1cm47dHIubW91c2U9W3dpLEJyLmludmVydCh3aSldLEFOKHRoaXMpLHRyLnN0YXJ0KCl9RkEoUG4pLHRyLndoZWVsPXNldFRpbWVvdXQoZnVuY3Rpb24gQmkoKXt0ci53aGVlbD1udWxsLHRyLmVuZCgpfSxCZSksdHIuem9vbSgibW91c2UiLGEocXQoZHQoQnIsWXIpLHRyLm1v'@; put 'dXNlWzBdLHRyLm1vdXNlWzFdKSx0ci5leHRlbnQsdikpfX1mdW5jdGlvbiBrcihQbiwuLi5Vcil7aWYoIXllJiZjLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIHRyPVBuLmN1cnJlbnRUYXJnZXQsQnI9aG4odGhpcyxVciwhMCkuZXZlbnQoUG4pLFlyPV9vKFBuLnZpZXcpLm9uKCJtb3Vz'@; put 'ZW1vdmUuem9vbSIsZnVuY3Rpb24gbWEoeHQpe2lmKEZBKHh0KSwhQnIubW92ZWQpe3ZhciAkdD14dC5jbGllbnRYLUJpLFluPXh0LmNsaWVudFktaGE7QnIubW92ZWQ9JHQqJHQrWW4qWW4+R2V9QnIuZXZlbnQoeHQpLnpvb20oIm1vdXNlIixhKHF0KEJyLnRoYXQuX196b29tLEJyLm1vdXNl'@; put 'WzBdPVE5KHh0LHRyKSxCci5tb3VzZVsxXSksQnIuZXh0ZW50LHYpKX0sITApLm9uKCJtb3VzZXVwLnpvb20iLGZ1bmN0aW9uIHZ0KHh0KXtZci5vbigibW91c2Vtb3ZlLnpvb20gbW91c2V1cC56b29tIixudWxsKSxmdW5jdGlvbiBMeHQoYyxsKXt2YXIgYT1jLmRvY3VtZW50LmRvY3VtZW50'@; put 'RWxlbWVudCxkPV9vKGMpLm9uKCJkcmFnc3RhcnQuZHJhZyIsbnVsbCk7bCYmKGQub24oImNsaWNrLmRyYWciLFJ0ZSxJdGUpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtkLm9uKCJjbGljay5kcmFnIixudWxsKX0sMCkpLCJvbnNlbGVjdHN0YXJ0ImluIGE/ZC5vbigic2VsZWN0c3RhcnQuZHJh'@; put 'ZyIsbnVsbCk6KGEuc3R5bGUuTW96VXNlclNlbGVjdD1hLl9fbm9zZWxlY3QsZGVsZXRlIGEuX19ub3NlbGVjdCl9KHh0LnZpZXcsQnIubW92ZWQpLEZBKHh0KSxCci5ldmVudCh4dCkuZW5kKCl9LCEwKSx3aT1ROShQbix0ciksQmk9UG4uY2xpZW50WCxoYT1Qbi5jbGllbnRZOyhmdW5jdGlv'@; put 'biBSeHQoYyl7dmFyIGw9Yy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsYT1fbyhjKS5vbigiZHJhZ3N0YXJ0LmRyYWciLFJ0ZSxJdGUpOyJvbnNlbGVjdHN0YXJ0ImluIGw/YS5vbigic2VsZWN0c3RhcnQuZHJhZyIsUnRlLEl0ZSk6KGwuX19ub3NlbGVjdD1sLnN0eWxlLk1velVzZXJTZWxl'@; put 'Y3QsbC5zdHlsZS5Nb3pVc2VyU2VsZWN0PSJub25lIil9KShQbi52aWV3KSxMdGUoUG4pLEJyLm1vdXNlPVt3aSx0aGlzLl9fem9vbS5pbnZlcnQod2kpXSxBTih0aGlzKSxCci5zdGFydCgpfX1mdW5jdGlvbiBxbihQbiwuLi5Vcil7aWYoYy5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciB0'@; put 'cj10aGlzLl9fem9vbSxCcj1ROShQbi5jaGFuZ2VkVG91Y2hlcz9Qbi5jaGFuZ2VkVG91Y2hlc1swXTpQbix0aGlzKSxZcj10ci5pbnZlcnQoQnIpLEJpPWEocXQoZHQodHIsdHIuayooUG4uc2hpZnRLZXk/LjU6MikpLEJyLFlyKSxsLmFwcGx5KHRoaXMsVXIpLHYpO0ZBKFBuKSxNPjA/X28o'@; put 'dGhpcykudHJhbnNpdGlvbigpLmR1cmF0aW9uKE0pLmNhbGwod24sQmksQnIsUG4pOl9vKHRoaXMpLmNhbGwocHQudHJhbnNmb3JtLEJpLEJyLFBuKX19ZnVuY3Rpb24gZ3IoUG4sLi4uVXIpe2lmKGMuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgd2ksQmksaGEsbWEsdHI9UG4udG91Y2hl'@; put 'cyxCcj10ci5sZW5ndGgsWXI9aG4odGhpcyxVcixQbi5jaGFuZ2VkVG91Y2hlcy5sZW5ndGg9PT1CcikuZXZlbnQoUG4pO2ZvcihMdGUoUG4pLEJpPTA7Qmk8QnI7KytCaSltYT1bbWE9UTkoaGE9dHJbQmldLHRoaXMpLHRoaXMuX196b29tLmludmVydChtYSksaGEuaWRlbnRpZmllcl0sWXIu'@; put 'dG91Y2gwPyFZci50b3VjaDEmJllyLnRvdWNoMFsyXSE9PW1hWzJdJiYoWXIudG91Y2gxPW1hLFlyLnRhcHM9MCk6KFlyLnRvdWNoMD1tYSx3aT0hMCxZci50YXBzPTErISFyZSk7cmUmJihyZT1jbGVhclRpbWVvdXQocmUpKSx3aSYmKFlyLnRhcHM8MiYmKHVlPW1hWzBdLHJlPXNldFRpbWVv'@; put 'dXQoZnVuY3Rpb24oKXtyZT1udWxsfSxFZSkpLEFOKHRoaXMpLFlyLnN0YXJ0KCkpfX1mdW5jdGlvbiBxcihQbiwuLi5Vcil7aWYodGhpcy5fX3pvb21pbmcpe3ZhciB3aSxCaSxoYSxtYSx0cj1obih0aGlzLFVyKS5ldmVudChQbiksQnI9UG4uY2hhbmdlZFRvdWNoZXMsWXI9QnIubGVuZ3Ro'@; put 'O2ZvcihGQShQbiksd2k9MDt3aTxZcjsrK3dpKWhhPVE5KEJpPUJyW3dpXSx0aGlzKSx0ci50b3VjaDAmJnRyLnRvdWNoMFsyXT09PUJpLmlkZW50aWZpZXI/dHIudG91Y2gwWzBdPWhhOnRyLnRvdWNoMSYmdHIudG91Y2gxWzJdPT09QmkuaWRlbnRpZmllciYmKHRyLnRvdWNoMVswXT1oYSk7'@; put 'aWYoQmk9dHIudGhhdC5fX3pvb20sdHIudG91Y2gxKXt2YXIgdnQ9dHIudG91Y2gwWzBdLHh0PXRyLnRvdWNoMFsxXSwkdD10ci50b3VjaDFbMF0sWW49dHIudG91Y2gxWzFdLCRuPSgkbj0kdFswXS12dFswXSkqJG4rKCRuPSR0WzFdLXZ0WzFdKSokbixhcj0oYXI9WW5bMF0teHRbMF0pKmFy'@; put 'Kyhhcj1ZblsxXS14dFsxXSkqYXI7Qmk9ZHQoQmksTWF0aC5zcXJ0KCRuL2FyKSksaGE9Wyh2dFswXSskdFswXSkvMiwodnRbMV0rJHRbMV0pLzJdLG1hPVsoeHRbMF0rWW5bMF0pLzIsKHh0WzFdK1luWzFdKS8yXX1lbHNle2lmKCF0ci50b3VjaDApcmV0dXJuO2hhPXRyLnRvdWNoMFswXSxt'@; put 'YT10ci50b3VjaDBbMV19dHIuem9vbSgidG91Y2giLGEocXQoQmksaGEsbWEpLHRyLmV4dGVudCx2KSl9fWZ1bmN0aW9uIF9pKFBuLC4uLlVyKXtpZih0aGlzLl9fem9vbWluZyl7dmFyIHdpLEJpLHRyPWhuKHRoaXMsVXIpLmV2ZW50KFBuKSxCcj1Qbi5jaGFuZ2VkVG91Y2hlcyxZcj1Cci5s'@; put 'ZW5ndGg7Zm9yKEx0ZShQbikseWUmJmNsZWFyVGltZW91dCh5ZSkseWU9c2V0VGltZW91dChmdW5jdGlvbigpe3llPW51bGx9LEVlKSx3aT0wO3dpPFlyOysrd2kpQmk9QnJbd2ldLHRyLnRvdWNoMCYmdHIudG91Y2gwWzJdPT09QmkuaWRlbnRpZmllcj9kZWxldGUgdHIudG91Y2gwOnRyLnRv'@; put 'dWNoMSYmdHIudG91Y2gxWzJdPT09QmkuaWRlbnRpZmllciYmZGVsZXRlIHRyLnRvdWNoMTtpZih0ci50b3VjaDEmJiF0ci50b3VjaDAmJih0ci50b3VjaDA9dHIudG91Y2gxLGRlbGV0ZSB0ci50b3VjaDEpLHRyLnRvdWNoMCl0ci50b3VjaDBbMV09dGhpcy5fX3pvb20uaW52ZXJ0KHRyLnRv'@; put 'dWNoMFswXSk7ZWxzZSBpZih0ci5lbmQoKSwyPT09dHIudGFwcyYmKEJpPVE5KEJpLHRoaXMpLE1hdGguaHlwb3QodWVbMF0tQmlbMF0sdWVbMV0tQmlbMV0pPHN0KSl7dmFyIGhhPV9vKHRoaXMpLm9uKCJkYmxjbGljay56b29tIik7aGEmJmhhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19fXJl'@; put 'dHVybiBwdC50cmFuc2Zvcm09ZnVuY3Rpb24oUG4sVXIsdHIsQnIpe3ZhciBZcj1Qbi5zZWxlY3Rpb24/UG4uc2VsZWN0aW9uKCk6UG47WXIucHJvcGVydHkoIl9fem9vbSIsdTdlKSxQbiE9PVlyP3duKFBuLFVyLHRyLEJyKTpZci5pbnRlcnJ1cHQoKS5lYWNoKGZ1bmN0aW9uKCl7aG4odGhp'@; put 'cyxhcmd1bWVudHMpLmV2ZW50KEJyKS5zdGFydCgpLnpvb20obnVsbCwiZnVuY3Rpb24iPT10eXBlb2YgVXI/VXIuYXBwbHkodGhpcyxhcmd1bWVudHMpOlVyKS5lbmQoKX0pfSxwdC5zY2FsZUJ5PWZ1bmN0aW9uKFBuLFVyLHRyLEJyKXtwdC5zY2FsZVRvKFBuLGZ1bmN0aW9uKCl7cmV0dXJu'@; put 'IHRoaXMuX196b29tLmsqKCJmdW5jdGlvbiI9PXR5cGVvZiBVcj9Vci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6VXIpfSx0cixCcil9LHB0LnNjYWxlVG89ZnVuY3Rpb24oUG4sVXIsdHIsQnIpe3B0LnRyYW5zZm9ybShQbixmdW5jdGlvbigpe3ZhciBZcj1sLmFwcGx5KHRoaXMsYXJndW1lbnRz'@; put 'KSx3aT10aGlzLl9fem9vbSxCaT1udWxsPT10cj9tbihZcik6ImZ1bmN0aW9uIj09dHlwZW9mIHRyP3RyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0cixoYT13aS5pbnZlcnQoQmkpLG1hPSJmdW5jdGlvbiI9PXR5cGVvZiBVcj9Vci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6VXI7cmV0dXJuIGEo'@; put 'cXQoZHQod2ksbWEpLEJpLGhhKSxZcix2KX0sdHIsQnIpfSxwdC50cmFuc2xhdGVCeT1mdW5jdGlvbihQbixVcix0cixCcil7cHQudHJhbnNmb3JtKFBuLGZ1bmN0aW9uKCl7cmV0dXJuIGEodGhpcy5fX3pvb20udHJhbnNsYXRlKCJmdW5jdGlvbiI9PXR5cGVvZiBVcj9Vci5hcHBseSh0aGlz'@; put 'LGFyZ3VtZW50cyk6VXIsImZ1bmN0aW9uIj09dHlwZW9mIHRyP3RyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0ciksbC5hcHBseSh0aGlzLGFyZ3VtZW50cyksdil9LG51bGwsQnIpfSxwdC50cmFuc2xhdGVUbz1mdW5jdGlvbihQbixVcix0cixCcixZcil7cHQudHJhbnNmb3JtKFBuLGZ1bmN0'@; put 'aW9uKCl7dmFyIHdpPWwuYXBwbHkodGhpcyxhcmd1bWVudHMpLEJpPXRoaXMuX196b29tLGhhPW51bGw9PUJyP21uKHdpKToiZnVuY3Rpb24iPT10eXBlb2YgQnI/QnIuYXBwbHkodGhpcyxhcmd1bWVudHMpOkJyO3JldHVybiBhKEhOLnRyYW5zbGF0ZShoYVswXSxoYVsxXSkuc2NhbGUoQmku'@; put 'aykudHJhbnNsYXRlKCJmdW5jdGlvbiI9PXR5cGVvZiBVcj8tVXIuYXBwbHkodGhpcyxhcmd1bWVudHMpOi1VciwiZnVuY3Rpb24iPT10eXBlb2YgdHI/LXRyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTotdHIpLHdpLHYpfSxCcixZcil9LE1uLnByb3RvdHlwZT17ZXZlbnQ6ZnVuY3Rpb24oUG4p'@; put 'e3JldHVybiBQbiYmKHRoaXMuc291cmNlRXZlbnQ9UG4pLHRoaXN9LHN0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIDE9PSsrdGhpcy5hY3RpdmUmJih0aGlzLnRoYXQuX196b29taW5nPXRoaXMsdGhpcy5lbWl0KCJzdGFydCIpKSx0aGlzfSx6b29tOmZ1bmN0aW9uKFBuLFVyKXtyZXR1cm4gdGhp'@; put 'cy5tb3VzZSYmIm1vdXNlIiE9PVBuJiYodGhpcy5tb3VzZVsxXT1Vci5pbnZlcnQodGhpcy5tb3VzZVswXSkpLHRoaXMudG91Y2gwJiYidG91Y2giIT09UG4mJih0aGlzLnRvdWNoMFsxXT1Vci5pbnZlcnQodGhpcy50b3VjaDBbMF0pKSx0aGlzLnRvdWNoMSYmInRvdWNoIiE9PVBuJiYodGhp'@; put 'cy50b3VjaDFbMV09VXIuaW52ZXJ0KHRoaXMudG91Y2gxWzBdKSksdGhpcy50aGF0Ll9fem9vbT1Vcix0aGlzLmVtaXQoInpvb20iKSx0aGlzfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gMD09LS10aGlzLmFjdGl2ZSYmKGRlbGV0ZSB0aGlzLnRoYXQuX196b29taW5nLHRoaXMuZW1pdCgiZW5k'@; put 'IikpLHRoaXN9LGVtaXQ6ZnVuY3Rpb24oUG4pe3ZhciBVcj1fbyh0aGlzLnRoYXQpLmRhdHVtKCk7Ry5jYWxsKFBuLHRoaXMudGhhdCxuZXcgVnh0KFBuLHtzb3VyY2VFdmVudDp0aGlzLnNvdXJjZUV2ZW50LHRhcmdldDpwdCx0eXBlOlBuLHRyYW5zZm9ybTp0aGlzLnRoYXQuX196b29tLGRp'@; put 'c3BhdGNoOkd9KSxVcil9fSxwdC53aGVlbERlbHRhPWZ1bmN0aW9uKFBuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZD0iZnVuY3Rpb24iPT10eXBlb2YgUG4/UG46Rk4oK1BuKSxwdCk6ZH0scHQuZmlsdGVyPWZ1bmN0aW9uKFBuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz0iZnVu'@; put 'Y3Rpb24iPT10eXBlb2YgUG4/UG46Rk4oISFQbikscHQpOmN9LHB0LnRvdWNoYWJsZT1mdW5jdGlvbihQbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9ImZ1bmN0aW9uIj09dHlwZW9mIFBuP1BuOkZOKCEhUG4pLHB0KTpofSxwdC5leHRlbnQ9ZnVuY3Rpb24oUG4pe3JldHVybiBhcmd1'@; put 'bWVudHMubGVuZ3RoPyhsPSJmdW5jdGlvbiI9PXR5cGVvZiBQbj9QbjpGTihbWytQblswXVswXSwrUG5bMF1bMV1dLFsrUG5bMV1bMF0sK1BuWzFdWzFdXV0pLHB0KTpsfSxwdC5zY2FsZUV4dGVudD1mdW5jdGlvbihQbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGZbMF09K1BuWzBdLGZb'@; put 'MV09K1BuWzFdLHB0KTpbZlswXSxmWzFdXX0scHQudHJhbnNsYXRlRXh0ZW50PWZ1bmN0aW9uKFBuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odlswXVswXT0rUG5bMF1bMF0sdlsxXVswXT0rUG5bMV1bMF0sdlswXVsxXT0rUG5bMF1bMV0sdlsxXVsxXT0rUG5bMV1bMV0scHQpOltbdlsw'@; put 'XVswXSx2WzBdWzFdXSxbdlsxXVswXSx2WzFdWzFdXV19LHB0LmNvbnN0cmFpbj1mdW5jdGlvbihQbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9UG4scHQpOmF9LHB0LmR1cmF0aW9uPWZ1bmN0aW9uKFBuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oTT0rUG4scHQpOk19LHB0Lmlu'@; put 'dGVycG9sYXRlPWZ1bmN0aW9uKFBuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oST1QbixwdCk6SX0scHQub249ZnVuY3Rpb24oKXt2YXIgUG49Ry5vbi5hcHBseShHLGFyZ3VtZW50cyk7cmV0dXJuIFBuPT09Rz9wdDpQbn0scHQuY2xpY2tEaXN0YW5jZT1mdW5jdGlvbihQbil7cmV0dXJu'@; put 'IGFyZ3VtZW50cy5sZW5ndGg/KEdlPShQbj0rUG4pKlBuLHB0KTpNYXRoLnNxcnQoR2UpfSxwdC50YXBEaXN0YW5jZT1mdW5jdGlvbihQbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHN0PStQbixwdCk6c3R9LHB0fSgpLnNjYWxlRXh0ZW50KHRoaXMuX29wdGlvbnMuem9vbVNjYWxlRXh0'@; put 'ZW50KS50cmFuc2xhdGVFeHRlbnQodGhpcy5fb3B0aW9ucy56b29tVHJhbnNsYXRlRXh0ZW50KS5pbnRlcnBvbGF0ZShWTikub24oInpvb20iLGZ1bmN0aW9uIGwodil7X28oZC5ub2RlKCkucXVlcnlTZWxlY3RvcigiZyIpKS5hdHRyKCJ0cmFuc2Zvcm0iLHYudHJhbnNmb3JtKSxjLl9kaXNw'@; put 'YXRjaC5jYWxsKCJ6b29tIixjKX0pO3RoaXMuX3pvb21CZWhhdmlvcj1oO3ZhciBmPV9vKGQubm9kZSgpLnF1ZXJ5U2VsZWN0b3IoImciKSk7cmV0dXJuIGQuY2FsbChoKSx0aGlzLl9hY3RpdmV8fE50ZS5jYWxsKHRoaXMsZiksdGhpcy5fb3JpZ2luYWxUcmFuc2Zvcm09Tk4oZC5ub2RlKCkp'@; put 'LHRoaXN9ZnVuY3Rpb24gSHRlKGMpe3ZhciBsPXRoaXMuX3RyYW5zbGF0aW9uLGE9dGhpcy5fc2NhbGUsZD1jLmRhdHVtKCkudHJhbnNsYXRpb24saD1jLmRhdHVtKCkuc2NhbGUsZj1OTih0aGlzLl96b29tU2VsZWN0aW9uLm5vZGUoKSk7cmV0dXJuIGwmJihmPShmPWYuc2NhbGUoMS9hKSku'@; put 'dHJhbnNsYXRlKC1sLngsLWwueSkpLChmPWYudHJhbnNsYXRlKGQueCxkLnkpKS5zY2FsZShoKX1mdW5jdGlvbiBOdGUoYyl7dGhpcy5fem9vbUJlaGF2aW9yLnRyYW5zZm9ybSh0aGlzLl96b29tU2VsZWN0aW9uLEh0ZS5jYWxsKHRoaXMsYykpLHRoaXMuX3RyYW5zbGF0aW9uPWMuZGF0dW0o'@; put 'KS50cmFuc2xhdGlvbix0aGlzLl9zY2FsZT1jLmRhdHVtKCkuc2NhbGUsdGhpcy5fb3JpZ2luYWxUcmFuc2Zvcm09SE4udHJhbnNsYXRlKGMuZGF0dW0oKS50cmFuc2xhdGlvbi54LGMuZGF0dW0oKS50cmFuc2xhdGlvbi55KS5zY2FsZShjLmRhdHVtKCkuc2NhbGUpfWZ1bmN0aW9uIGlFdChj'@; put 'LGwpe3JldHVybiBmdW5jdGlvbigpe2NvbnN0IGE9Yy5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIFZOKFtkWzBdWzBdLGRbMF1bMV1dLFtkWzFdWzBdLGRbMV1bMV1dKX0pO3JldHVybiBmdW5jdGlvbihkKXtyZXR1cm4gZDwxPyJNIithLm1hcChmdW5jdGlvbihoKXtyZXR1cm4gaChkKX0pLmpv'@; put 'aW4oIkwiKTpsfX19ZnVuY3Rpb24gZzdlKGMpe3JldHVybiJlZGdlIj09Yy5hdHRyaWJ1dGVzLmNsYXNzfHwiYSI9PWMudGFnJiYiZyI9PWMucGFyZW50LnRhZyYmImVkZ2UiPT1jLnBhcmVudC5wYXJlbnQuYXR0cmlidXRlcy5jbGFzc31mdW5jdGlvbiBtN2UoYyl7cmV0dXJuIGMucGFyZW50'@; put 'JiZnN2UoYy5wYXJlbnQpfWZ1bmN0aW9uIHY3ZShjKXt2YXIgbD10aGlzLl90cmFuc2l0aW9uLGE9dGhpcy5fb3B0aW9ucy5mYWRlJiZudWxsIT1sLGQ9dGhpcy5fb3B0aW9ucy50d2VlblBhdGhzLGg9dGhpcy5fb3B0aW9ucy50d2VlblNoYXBlcyxmPXRoaXMuX29wdGlvbnMuY29udmVydEVx'@; put 'dWFsU2lkZWRQb2x5Z29ucyx2PXRoaXMuX29wdGlvbnMuZ3Jvd0VudGVyaW5nRWRnZXMmJm51bGwhPWwsTT10aGlzLl9hdHRyaWJ1dGVyLEk9dGhpczt2YXIgdWU9dGhpcy5fc2VsZWN0aW9uO2lmKG51bGwhPWwpe3ZhciB5ZT10aGlzLl9qb2JzO2lmKEkuX2FjdGl2ZSlyZXR1cm4geWUucHVz'@; put 'aChudWxsKSx0aGlzO3VlLnRyYW5zaXRpb24obCkudHJhbnNpdGlvbigpLmR1cmF0aW9uKDApLm9uKCJlbmQiLGZ1bmN0aW9uKCl7SS5fYWN0aXZlPSExLDAhPXllLmxlbmd0aCYmKHllLnNoaWZ0KCksSS5yZW5kZXIoKSl9KSx0aGlzLl9hY3RpdmU9ITB9bnVsbCE9bCYmdWUudHJhbnNpdGlv'@; put 'bihsKS5vbigic3RhcnQiLGZ1bmN0aW9uKCl7SS5fZGlzcGF0Y2guY2FsbCgidHJhbnNpdGlvblN0YXJ0IixJKX0pLm9uKCJlbmQiLGZ1bmN0aW9uKCl7SS5fZGlzcGF0Y2guY2FsbCgidHJhbnNpdGlvbkVuZCIsSSl9KS50cmFuc2l0aW9uKCkuZHVyYXRpb24oMCkub24oInN0YXJ0IixmdW5j'@; put 'dGlvbigpe0kuX2Rpc3BhdGNoLmNhbGwoInJlc3RvcmVFbmQiLEkpLEkuX2Rpc3BhdGNoLmNhbGwoImVuZCIsSSksYyYmYy5jYWxsKEkpfSk7dmFyIEVlPXRoaXMuX2RhdGEsQmU9dWUuc2VsZWN0QWxsKCJzdmciKS5kYXRhKFtFZV0sZnVuY3Rpb24oR2Upe3JldHVybiBHZS5rZXl9KTtyZXR1'@; put 'cm4gQmU9QmUuZW50ZXIoKS5hcHBlbmQoInN2ZyIpLm1lcmdlKEJlKSxmdW5jdGlvbiByZShHZSl7dmFyIHN0PV9vKHRoaXMpO2lmKCJzdmciPT1HZS50YWcpe3ZhciBwdD1JLl9vcHRpb25zO2lmKG51bGwhPXB0LndpZHRofHxudWxsIT1wdC5oZWlnaHQpe3ZhciBkdD1wdC53aWR0aCxxdD1w'@; put 'dC5oZWlnaHQ7bnVsbD09ZHQ/ZHQ9NCpHZS5hdHRyaWJ1dGVzLndpZHRoLnJlcGxhY2UoInB0IiwiIikvMzooc3QuYXR0cigid2lkdGgiLGR0KSxHZS5hdHRyaWJ1dGVzLndpZHRoPWR0KSxudWxsPT1xdD9xdD00KkdlLmF0dHJpYnV0ZXMuaGVpZ2h0LnJlcGxhY2UoInB0IiwiIikvMzooc3Qu'@; put 'YXR0cigiaGVpZ2h0IixxdCksR2UuYXR0cmlidXRlcy5oZWlnaHQ9cXQpLHB0LmZpdHx8KHN0LmF0dHIoInZpZXdCb3giLGAwIDAgJHszKmR0LzQvcHQuc2NhbGV9ICR7MypxdC80L3B0LnNjYWxlfWApLEdlLmF0dHJpYnV0ZXMudmlld0JveD1gMCAwICR7MypkdC80L3B0LnNjYWxlfSAkezMq'@; put 'cXQvNC9wdC5zY2FsZX1gKX0xIT1wdC5zY2FsZSYmKHB0LmZpdHx8bnVsbD09cHQud2lkdGgmJm51bGw9PXB0LmhlaWdodCkmJihkdD1HZS5hdHRyaWJ1dGVzLnZpZXdCb3guc3BsaXQoIiAiKVsyXSxxdD1HZS5hdHRyaWJ1dGVzLnZpZXdCb3guc3BsaXQoIiAiKVszXSxzdC5hdHRyKCJ2aWV3'@; put 'Qm94IixgMCAwICR7ZHQvcHQuc2NhbGV9ICR7cXQvcHQuc2NhbGV9YCksR2UuYXR0cmlidXRlcy52aWV3Qm94PWAwIDAgJHtkdC9wdC5zY2FsZX0gJHtxdC9wdC5zY2FsZX1gKX1NJiZzdC5lYWNoKE0pO3ZhciBtbj1HZS50YWcsd249R2UuYXR0cmlidXRlcyxobj1zdC5ub2RlKCkuYXR0cmli'@; put 'dXRlcztpZihobilmb3IodmFyIE1uPTA7TW48aG4ubGVuZ3RoO01uKyspe3ZhciBNcj1obltNbl0sa3I9TXIubmFtZTtpZigieG1sbnMiIT1rci5zcGxpdCgiOiIpWzBdJiZNci5uYW1lc3BhY2VVUkkpe3ZhciBxbj1Nci5uYW1lc3BhY2VVUkkuc3BsaXQoIi8iKTtrcj1xbltxbi5sZW5ndGgt'@; put 'MV0rIjoiK2tyfWtyIGluIHdufHwod25ba3JdPW51bGwpfXZhciBxcj0hMSxfaT0hMTtpZihoJiZsKXtpZigoInBvbHlnb24iPT10aGlzLm5vZGVOYW1lfHwiZWxsaXBzZSI9PXRoaXMubm9kZU5hbWUpJiZHZS5hbHRlcm5hdGl2ZU9sZCYmKF9pPSEwKSwoInBvbHlnb24iPT1tbnx8ImVsbGlw'@; put 'c2UiPT1tbikmJkdlLmFsdGVybmF0aXZlTmV3JiYocXI9ITApLCJwb2x5Z29uIj09dGhpcy5ub2RlTmFtZSYmInBvbHlnb24iPT1tbiYmR2UuYWx0ZXJuYXRpdmVPbGQpe3ZhciBQbj1kN2Uoc3QpO2lmKCFmKXt2YXIgdHI9UG4uYXR0cmlidXRlcy5wb2ludHMuc3BsaXQoIiAiKS5sZW5ndGg7'@; put 'KEJyPUdlLmF0dHJpYnV0ZXMucG9pbnRzKS5zcGxpdCgiICIpLmxlbmd0aD09dHImJihxcj0hMSxfaT0hMSl9fWlmKF9pKXt2YXIgQmk9aDdlKHN0LEdlLmFsdGVybmF0aXZlT2xkKTtCaS5kYXRhKFtHZV0sZnVuY3Rpb24oKXtyZXR1cm4gR2Uua2V5fSksc3Q9Qml9cXImJihtbj0icGF0aCIs'@; put 'd249R2UuYWx0ZXJuYXRpdmVOZXcuYXR0cmlidXRlcyl9dmFyIG1hPXN0O2lmKGwmJihtYT1tYS50cmFuc2l0aW9uKGwpLGEmJm1hLmZpbHRlcihmdW5jdGlvbihXbil7cmV0dXJuIiMiPT1Xbi50YWdbMF0/bnVsbDp0aGlzfSkuc3R5bGUoIm9wYWNpdHkiLDEpLG1hLmZpbHRlcihmdW5jdGlv'@; put 'bihXbil7cmV0dXJuIiMiPT1Xbi50YWdbMF0/bnVsbDp0aGlzfSkub24oImVuZCIsZnVuY3Rpb24oV24pe19vKHRoaXMpLmF0dHIoInN0eWxlIixXbiYmV24uYXR0cmlidXRlcyYmV24uYXR0cmlidXRlcy5zdHlsZXx8bnVsbCl9KSksdiYmInBhdGgiPT1tbiYmR2Uub2Zmc2V0KXt2YXIgeHQ9'@; put 'R2UudG90YWxMZW5ndGg7c3QuYXR0cigic3Ryb2tlLWRhc2hhcnJheSIseHQrIiAiK3h0KS5hdHRyKCJzdHJva2UtZGFzaG9mZnNldCIseHQpLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK0dlLm9mZnNldC54KyIsIitHZS5vZmZzZXQueSsiKSIpLHduWyJzdHJva2UtZGFzaG9mZnNl'@; put 'dCJdPTAsd24udHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwwKSIsbWEuYXR0cigic3Ryb2tlLWRhc2hvZmZzZXQiLHduWyJzdHJva2UtZGFzaG9mZnNldCJdKS5hdHRyKCJ0cmFuc2Zvcm0iLHduLnRyYW5zZm9ybSkub24oInN0YXJ0IixmdW5jdGlvbigpe19vKHRoaXMpLnN0eWxlKCJvcGFjaXR5'@; put 'IixudWxsKX0pLm9uKCJlbmQiLGZ1bmN0aW9uKCl7X28odGhpcykuYXR0cigic3Ryb2tlLWRhc2hvZmZzZXQiLG51bGwpLmF0dHIoInN0cm9rZS1kYXNoYXJyYXkiLG51bGwpLmF0dHIoInRyYW5zZm9ybSIsbnVsbCl9KX1pZih2JiYicG9seWdvbiI9PW1uJiZtN2UoR2UpJiZHZS5vZmZzZXQm'@; put 'JiJwYXRoIj09R2UucGFyZW50LmNoaWxkcmVuWzNdLnRhZyl7dmFyIFluPV9vKHN0Lm5vZGUoKS5wYXJlbnROb2RlLnF1ZXJ5U2VsZWN0b3IoInBhdGgiKSksJG49WW4ubm9kZSgpLmdldFBvaW50QXRMZW5ndGgoMCksYXI9WW4ubm9kZSgpLmdldFBvaW50QXRMZW5ndGgoR2UudG90YWxMZW5n'@; put 'dGgpLEdyPVluLm5vZGUoKS5nZXRQb2ludEF0TGVuZ3RoKEdlLnRvdGFsTGVuZ3RoLTEpLEd0PTE4MCpNYXRoLmF0YW4yKGFyLnktR3IueSxhci54LUdyLngpL01hdGguUEksYm49JG4ueC1hci54K0dlLm9mZnNldC54LHhuPSRuLnktYXIueStHZS5vZmZzZXQueTtzdC5hdHRyKCJ0cmFuc2Zv'@; put 'cm0iLCJ0cmFuc2xhdGUoIitibisiLCIreG4rIikiKSxtYS5hdHRyVHdlZW4oInRyYW5zZm9ybSIsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oV24pe3ZhciBmcj1Zbi5ub2RlKCkuZ2V0UG9pbnRBdExlbmd0aChHZS50b3RhbExlbmd0aCpXbiksRHI9WW4ubm9kZSgpLmdldFBvaW50QXRM'@; put 'ZW5ndGgoR2UudG90YWxMZW5ndGgqV24rMSksT3I9MTgwKk1hdGguYXRhbjIoRHIueS1mci55LERyLngtZnIueCkvTWF0aC5QSS1HdDtyZXR1cm4idHJhbnNsYXRlKCIrKGJuPWZyLngtYXIueCtHZS5vZmZzZXQueCooMS1XbikpKyIsIisoeG49ZnIueS1hci55K0dlLm9mZnNldC55KigxLVdu'@; put 'KSkrIikgcm90YXRlKCIrT3IrIiAiK2FyLngrIiAiK2FyLnkrIikifX0pLm9uKCJzdGFydCIsZnVuY3Rpb24oKXtfbyh0aGlzKS5zdHlsZSgib3BhY2l0eSIsbnVsbCl9KS5vbigiZW5kIixmdW5jdGlvbigpe19vKHRoaXMpLmF0dHIoInRyYW5zZm9ybSIsbnVsbCl9KX12YXIgSW49ZCYmbCYm'@; put 'InBhdGgiPT1tbiYmbnVsbCE9c3QuYXR0cigiZCIpO2Zvcih2YXIgWG4gb2YgT2JqZWN0LmtleXMod24pKXt2YXIgTm49d25bWG5dO2lmKEluJiYiZCI9PVhuKXt2YXIgQnI7KEJyPShHZS5hbHRlcm5hdGl2ZU9sZHx8R2UpLnBvaW50cykmJm1hLmF0dHJUd2VlbigiZCIsaUV0KEJyLE5uKSl9'@; put 'ZWxzZXtpZigidHJhbnNmb3JtIj09WG4mJkdlLnRyYW5zbGF0aW9uKWlmKGwpe3ZhciB2cj1tYS5vbigiZW5kIik7bWEub24oInN0YXJ0IixmdW5jdGlvbigpe0kuX3pvb21CZWhhdmlvciYmbWEudHdlZW4oImF0dHIudHJhbnNmb3JtIixmdW5jdGlvbigpe3ZhciBXbj10aGlzO3JldHVybiBm'@; put 'dW5jdGlvbihmcil7V24uc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLFo4ZShOTihJLl96b29tU2VsZWN0aW9uLm5vZGUoKSkudG9TdHJpbmcoKSxIdGUuY2FsbChJLHN0KS50b1N0cmluZygpKShmcikpfX0pfSkub24oImVuZCIsZnVuY3Rpb24oKXt2ci5jYWxsKHRoaXMpLEkuX3pvb21CZWhh'@; put 'dmlvciYmTnRlLmNhbGwoSSxzdCl9KX1lbHNlIEkuX3pvb21CZWhhdmlvciYmKE50ZS5jYWxsKEksc3QpLE5uPUh0ZS5jYWxsKEksc3QpLnRvU3RyaW5nKCkpO21hLmF0dHIoWG4sTm4pfX1xciYmbWEub24oImVuZCIsZnVuY3Rpb24oV24sZnIsRHIpe2g3ZShCaT1fbyh0aGlzKSxXbikuZGF0'@; put 'YShbV25dLGZ1bmN0aW9uKCl7cmV0dXJuIFduLmtleX0pfSksR2UudGV4dCYmbWEudGV4dChHZS50ZXh0KSxmdW5jdGlvbiBHKEdlKXt2YXIgc3Q9R2Uuc2VsZWN0QWxsKGZ1bmN0aW9uKCl7cmV0dXJuIEdlLm5vZGUoKS5jaGlsZE5vZGVzfSkscHQ9KHN0PXN0LmRhdGEoZnVuY3Rpb24obW4p'@; put 'e3JldHVybiBtbi5jaGlsZHJlbn0sZnVuY3Rpb24obW4pe3JldHVybiBtbi5rZXl9KSkuZW50ZXIoKS5hcHBlbmQoZnVuY3Rpb24obW4pe3ZhciB3bj1PdGUobW4pO3JldHVybiIjdGV4dCI9PW1uLnRhZyYmYSYmKHduLm5vZGVWYWx1ZT1tbi50ZXh0KSx3bn0pOyhhfHx2JiZnN2UoR2UuZGF0'@; put 'dW0oKSkpJiZwdC5maWx0ZXIoZnVuY3Rpb24obW4pe3JldHVybiIjIj09bW4udGFnWzBdP251bGw6dGhpc30pLmVhY2goZnVuY3Rpb24obW4pe3ZhciB3bj1fbyh0aGlzKTtmb3IodmFyIGhuIG9mIE9iamVjdC5rZXlzKG1uLmF0dHJpYnV0ZXMpKXduLmF0dHIoaG4sbW4uYXR0cmlidXRlc1to'@; put 'bl0pfSkuZmlsdGVyKGZ1bmN0aW9uKG1uKXtyZXR1cm4ic3ZnIj09bW4udGFnfHwiZyI9PW1uLnRhZz9udWxsOnRoaXN9KS5zdHlsZSgib3BhY2l0eSIsMCk7dmFyIHF0PXN0LmV4aXQoKTtNJiZxdC5lYWNoKE0pLGwmJihxdD1xdC50cmFuc2l0aW9uKGwpLGEmJnF0LmZpbHRlcihmdW5jdGlv'@; put 'bihtbil7cmV0dXJuIiMiPT1tbi50YWdbMF0/bnVsbDp0aGlzfSkuc3R5bGUoIm9wYWNpdHkiLDApKSxxdD1xdC5yZW1vdmUoKSwoc3Q9cHQubWVyZ2Uoc3QpLm9yZGVyKCkpLmVhY2gocmUpfShzdCl9LmNhbGwoQmUubm9kZSgpLEVlKSx0aGlzLl9vcHRpb25zLnpvb20mJiF0aGlzLl96b29t'@; put 'QmVoYXZpb3ImJnA3ZS5jYWxsKHRoaXMpLEkuX2Rpc3BhdGNoLmNhbGwoInJlbmRlckVuZCIsSSksbnVsbD09bCYmKHRoaXMuX2Rpc3BhdGNoLmNhbGwoImVuZCIsdGhpcyksYyYmYy5jYWxsKHRoaXMpKSx0aGlzfU5OLnByb3RvdHlwZT1YZy5wcm90b3R5cGU7dmFyIGRFdD1BcnJheUJ1ZmZl'@; put 'cixBdT1VaW50OEFycmF5LEJOPVVpbnQxNkFycmF5LGhFdD1JbnQxNkFycmF5LGpOPUludDMyQXJyYXksVnRlPWZ1bmN0aW9uKGMsbCxhKXtpZihBdS5wcm90b3R5cGUuc2xpY2UpcmV0dXJuIEF1LnByb3RvdHlwZS5zbGljZS5jYWxsKGMsbCxhKTsobnVsbD09bHx8bDwwKSYmKGw9MCksKG51'@; put 'bGw9PWF8fGE+Yy5sZW5ndGgpJiYoYT1jLmxlbmd0aCk7dmFyIGQ9bmV3IEF1KGEtbCk7cmV0dXJuIGQuc2V0KGMuc3ViYXJyYXkobCxhKSksZH0sTkE9ZnVuY3Rpb24oYyxsLGEsZCl7aWYoQXUucHJvdG90eXBlLmZpbGwpcmV0dXJuIEF1LnByb3RvdHlwZS5maWxsLmNhbGwoYyxsLGEsZCk7'@; put 'Zm9yKChudWxsPT1hfHxhPDApJiYoYT0wKSwobnVsbD09ZHx8ZD5jLmxlbmd0aCkmJihkPWMubGVuZ3RoKTthPGQ7KythKWNbYV09bDtyZXR1cm4gY30sZkV0PWZ1bmN0aW9uKGMsbCxhLGQpe2lmKEF1LnByb3RvdHlwZS5jb3B5V2l0aGluKXJldHVybiBBdS5wcm90b3R5cGUuY29weVdpdGhp'@; put 'bi5jYWxsKGMsbCxhLGQpO2ZvcigobnVsbD09YXx8YTwwKSYmKGE9MCksKG51bGw9PWR8fGQ+Yy5sZW5ndGgpJiYoZD1jLmxlbmd0aCk7YTxkOyljW2wrK109Y1thKytdfSxwRXQ9WyJpbnZhbGlkIHpzdGQgZGF0YSIsIndpbmRvdyBzaXplIHRvbyBsYXJnZSAoPjIwNDZNQikiLCJpbnZhbGlk'@; put 'IGJsb2NrIHR5cGUiLCJGU0UgYWNjdXJhY3kgdG9vIGhpZ2giLCJtYXRjaCBkaXN0YW5jZSB0b28gZmFyIGJhY2siLCJ1bmV4cGVjdGVkIEVPRiJdLHF1PWZ1bmN0aW9uKGMsbCxhKXt2YXIgZD1uZXcgRXJyb3IobHx8cEV0W2NdKTtpZihkLmNvZGU9YyxFcnJvci5jYXB0dXJlU3RhY2tUcmFj'@; put 'ZSYmRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UoZCxxdSksIWEpdGhyb3cgZDtyZXR1cm4gZH0seTdlPWZ1bmN0aW9uKGMsbCxhKXtmb3IodmFyIGQ9MCxoPTA7ZDxhOysrZClofD1jW2wrK108PChkPDwzKTtyZXR1cm4gaH0sbUV0PWZ1bmN0aW9uKGMsbCl7dmFyIGE9Y1swXXxjWzFdPDw4fGNb'@; put 'Ml08PDE2O2lmKDMxMjY1Njg9PWEmJjI1Mz09Y1szXSl7dmFyIGQ9Y1s0XSxoPWQ+PjUmMSxmPWQ+PjImMSx2PTMmZCxNPWQ+PjY7OCZkJiZxdSgwKTt2YXIgST02LWgsRz0zPT12PzQ6dixyZT15N2UoYyxJLEcpLHVlPU0/MTw8TTpoLHllPXk3ZShjLEkrPUcsdWUpKygxPT1NJiYyNTYpLEVl'@; put 'PXllO2lmKCFoKXt2YXIgQmU9MTw8MTArKGNbNV0+PjMpO0VlPUJlKyhCZT4+MykqKDcmY1s1XSl9RWU+MjE0NTM4NjQ5NiYmcXUoMSk7dmFyIEdlPW5ldyBBdSgoMT09bD95ZXx8RWU6bD8wOkVlKSsxMik7cmV0dXJuIEdlWzBdPTEsR2VbNF09NCxHZVs4XT04LHtiOkkrdWUseTowLGw6MCxk'@; put 'OnJlLHc6bCYmMSE9bD9sOkdlLnN1YmFycmF5KDEyKSxlOkVlLG86bmV3IGpOKEdlLmJ1ZmZlciwwLDMpLHU6eWUsYzpmLG06TWF0aC5taW4oMTMxMDcyLEVlKX19aWYoMjU0ODE4OTM9PShhPj40fGNbM108PDIwKSlyZXR1cm4gZnVuY3Rpb24oYyxsKXtyZXR1cm4oY1s0XXxjWzVdPDw4fGNb'@; put 'Nl08PDE2fGNbN108PDI0KT4+PjB9KGMpKzg7cXUoMCl9LHR2PWZ1bmN0aW9uKGMpe2Zvcih2YXIgbD0wOzE8PGw8PWM7KytsKTtyZXR1cm4gbC0xfSxWQT1mdW5jdGlvbihjLGwsYSl7dmFyIGQ9NCsobDw8MyksaD01KygxNSZjW2xdKTtoPmEmJnF1KDMpO2Zvcih2YXIgZj0xPDxoLHY9ZixN'@; put 'PS0xLEk9LTEsRz0tMSxyZT1mLHVlPW5ldyBkRXQoNTEyKyhmPDwyKSkseWU9bmV3IGhFdCh1ZSwwLDI1NiksRWU9bmV3IEJOKHVlLDAsMjU2KSxCZT1uZXcgQk4odWUsNTEyLGYpLEdlPTUxMisoZjw8MSksc3Q9bmV3IEF1KHVlLEdlLGYpLHB0PW5ldyBBdSh1ZSxHZStmKTtNPDI1NSYmdj4w'@; put 'Oyl7dmFyIGR0PXR2KHYrMSkscXQ9ZD4+Myxtbj0oMTw8ZHQrMSktMSx3bj0oY1txdF18Y1txdCsxXTw8OHxjW3F0KzJdPDwxNik+Pig3JmQpJm1uLGhuPSgxPDxkdCktMSxNbj1tbi12LTEsTXI9d24maG47aWYoTXI8TW4/KGQrPWR0LHduPU1yKTooZCs9ZHQrMSx3bj5obiYmKHduLT1Nbikp'@; put 'LHllWysrTV09LS13biwtMT09d24/KHYrPXduLHN0Wy0tcmVdPU0pOnYtPXduLCF3bilkb3t2YXIga3I9ZD4+MztJPShjW2tyXXxjW2tyKzFdPDw4KT4+KDcmZCkmMyxkKz0yLE0rPUl9d2hpbGUoMz09SSl9KE0+MjU1fHx2KSYmcXUoMCk7Zm9yKHZhciBxbj0wLGdyPShmPj4xKSsoZj4+Mykr'@; put 'Myxxcj1mLTEsX2k9MDtfaTw9TTsrK19pKXt2YXIgUG49eWVbX2ldO2lmKFBuPDEpRWVbX2ldPS1QbjtlbHNlIGZvcihHPTA7RzxQbjsrK0cpe3N0W3FuXT1faTtkb3txbj1xbitnciZxcn13aGlsZShxbj49cmUpfX1mb3IocW4mJnF1KDApLEc9MDtHPGY7KytHKXt2YXIgVXI9RWVbc3RbR11d'@; put 'KyssdHI9cHRbR109aC10dihVcik7QmVbR109KFVyPDx0ciktZn1yZXR1cm5bZCs3Pj4zLHtiOmgsczpzdCxuOnB0LHQ6QmV9XX0seUV0PVZBKG5ldyBBdShbODEsMTYsOTksMTQwLDQ5LDE5OCwyNCw5OSwxMiwzMywxOTYsMjQsOTksMTAyLDEwMiwxMzQsNzAsMTQ2LDRdKSwwLDYpWzFdLGJF'@; put 'dD1WQShuZXcgQXUoWzMzLDIwLDE5NiwyNCw5OSwxNDAsMzMsMTMyLDE2LDY2LDgsMzMsMTMyLDE2LDY2LDgsMzMsNjgsNjgsNjgsNjgsNjgsNjgsNjgsNjgsMzYsOV0pLDAsNilbMV0sX0V0PVZBKG5ldyBBdShbMzIsMTMyLDE2LDY2LDEwMiw3MCw2OCw2OCw2OCw2OCwzNiw3MywyXSksMCw1'@; put 'KVsxXSxiN2U9ZnVuY3Rpb24oYyxsKXtmb3IodmFyIGE9Yy5sZW5ndGgsZD1uZXcgak4oYSksaD0wO2g8YTsrK2gpZFtoXT1sLGwrPTE8PGNbaF07cmV0dXJuIGR9LEJ0ZT1uZXcgQXUobmV3IGpOKFswLDAsMCwwLDE2ODQzMDA5LDUwNTI4NzcwLDEzNDY3ODAyMCwyMDIwNTAwNTcsMjY5NDIy'@; put 'MDkzXSkuYnVmZmVyLDAsMzYpLHdFdD1iN2UoQnRlLDApLGp0ZT1uZXcgQXUobmV3IGpOKFswLDAsMCwwLDAsMCwwLDAsMTY4NDMwMDksNTA1Mjg3NzAsMTE3NzY5MjIwLDE4NTIwNzA0OCwyNTI1NzkwODQsMTZdKS5idWZmZXIsMCw1MyksQ0V0PWI3ZShqdGUsMyksQkE9ZnVuY3Rpb24oYyxs'@; put 'LGEpe3ZhciBkPWMubGVuZ3RoLGg9bC5sZW5ndGgsZj1jW2QtMV0sdj0oMTw8YS5iKS0xLE09LWEuYjtmfHxxdSgwKTtmb3IodmFyIEk9MCxHPWEuYixyZT0oZDw8MyktOCt0dihmKS1HLHVlPS0xO3JlPk0mJnVlPGg7KXt2YXIgeWU9cmU+PjM7bFsrK3VlXT1hLnNbST0oSTw8R3woY1t5ZV18'@; put 'Y1t5ZSsxXTw8OHxjW3llKzJdPDwxNik+Pig3JnJlKSkmdl0scmUtPUc9YS5uW0ldfShyZSE9TXx8dWUrMSE9aCkmJnF1KDApfSxTRXQ9ZnVuY3Rpb24oYyxsLGEpe3ZhciBkPTYsZj1sLmxlbmd0aCszPj4yLHY9Zjw8MSxNPWYrdjtCQShjLnN1YmFycmF5KGQsZCs9Y1swXXxjWzFdPDw4KSxs'@; put 'LnN1YmFycmF5KDAsZiksYSksQkEoYy5zdWJhcnJheShkLGQrPWNbMl18Y1szXTw8OCksbC5zdWJhcnJheShmLHYpLGEpLEJBKGMuc3ViYXJyYXkoZCxkKz1jWzRdfGNbNV08PDgpLGwuc3ViYXJyYXkodixNKSxhKSxCQShjLnN1YmFycmF5KGQpLGwuc3ViYXJyYXkoTSksYSl9LE1FdD1mdW5j'@; put 'dGlvbihjLGwsYSl7dmFyIGQsaD1sLmIsZj1jW2hdLHY9Zj4+MSYzO2wubD0xJmY7dmFyIE09Zj4+M3xjW2grMV08PDV8Y1toKzJdPDwxMyxJPShoKz0zKStNO2lmKDE9PXYpcmV0dXJuIGg+PWMubGVuZ3RoP3ZvaWQgMDoobC5iPWgrMSxhPyhOQShhLGNbaF0sbC55LGwueSs9TSksYSk6TkEo'@; put 'bmV3IEF1KE0pLGNbaF0pKTtpZighKEk+Yy5sZW5ndGgpKXtpZigwPT12KXJldHVybiBsLmI9SSxhPyhhLnNldChjLnN1YmFycmF5KGgsSSksbC55KSxsLnkrPU0sYSk6VnRlKGMsaCxJKTtpZigyPT12KXt2YXIgRz1jW2hdLHJlPTMmRyx1ZT1HPj4yJjMseWU9Rz4+NCxFZT0wLEJlPTA7cmU8'@; put 'Mj8xJnVlP3llfD1jWysraF08PDR8KDImdWUmJmNbKytoXTw8MTIpOnllPUc+PjM6KEJlPXVlLHVlPDI/KHllfD0oNjMmY1srK2hdKTw8NCxFZT1jW2hdPj42fGNbKytoXTw8Mik6Mj09dWU/KHllfD1jWysraF08PDR8KDMmY1srK2hdKTw8MTIsRWU9Y1toXT4+MnxjWysraF08PDYpOih5ZXw9'@; put 'Y1srK2hdPDw0fCg2MyZjWysraF0pPDwxMixFZT1jW2hdPj42fGNbKytoXTw8MnxjWysraF08PDEwKSksKytoO3ZhciBHZT1hP2Euc3ViYXJyYXkobC55LGwueStsLm0pOm5ldyBBdShsLm0pLHN0PUdlLmxlbmd0aC15ZTtpZigwPT1yZSlHZS5zZXQoYy5zdWJhcnJheShoLGgrPXllKSxzdCk7'@; put 'ZWxzZSBpZigxPT1yZSlOQShHZSxjW2grK10sc3QpO2Vsc2V7dmFyIHB0PWwuaDtpZigyPT1yZSl7dmFyIGR0PWZ1bmN0aW9uKGMsbCl7dmFyIGE9MCxkPS0xLGg9bmV3IEF1KDI5MiksZj1jW2xdLHY9aC5zdWJhcnJheSgwLDI1NiksTT1oLnN1YmFycmF5KDI1NiwyNjgpLEk9bmV3IEJOKGgu'@; put 'YnVmZmVyLDI2OCk7aWYoZjwxMjgpe3ZhciBHPVZBKGMsbCsxLDYpLHVlPUdbMV0seWU9R1swXTw8MyxFZT1jW2wrPWZdO0VlfHxxdSgwKTtmb3IodmFyIEJlPTAsR2U9MCxzdD11ZS5iLHB0PXN0LGR0PSgrK2w8PDMpLTgrdHYoRWUpOyEoKGR0LT1zdCk8eWUpOyl7dmFyIHF0PWR0Pj4zO2lm'@; put 'KHZbKytkXT11ZS5zW0JlKz0oY1txdF18Y1txdCsxXTw8OCk+Pig3JmR0KSYoMTw8c3QpLTFdLChkdC09cHQpPHllKWJyZWFrO3ZbKytkXT11ZS5zW0dlKz0oY1txdD1kdD4+M118Y1txdCsxXTw8OCk+Pig3JmR0KSYoMTw8cHQpLTFdLHN0PXVlLm5bQmVdLEJlPXVlLnRbQmVdLHB0PXVlLm5b'@; put 'R2VdLEdlPXVlLnRbR2VdfSsrZD4yNTUmJnF1KDApfWVsc2V7Zm9yKGQ9Zi0xMjc7YTxkO2ErPTIpe3ZhciBtbj1jWysrbF07dlthXT1tbj4+NCx2W2ErMV09MTUmbW59KytsfXZhciB3bj0wO2ZvcihhPTA7YTxkOysrYSkoaG49dlthXSk+MTEmJnF1KDApLHduKz1obiYmMTw8aG4tMTt2YXIg'@; put 'TW49dHYod24pKzEsTXI9MTw8TW4sa3I9TXItd247Zm9yKGtyJmtyLTEmJnF1KDApLHZbZCsrXT10dihrcikrMSxhPTA7YTxkOysrYSl7dmFyIGhuOysrTVt2W2FdPShobj12W2FdKSYmTW4rMS1obl19dmFyIHFuPW5ldyBBdShNcjw8MSksZ3I9cW4uc3ViYXJyYXkoMCxNcikscXI9cW4uc3Vi'@; put 'YXJyYXkoTXIpO2ZvcihJW01uXT0wLGE9TW47YT4wOy0tYSl7dmFyIF9pPUlbYV07TkEocXIsYSxfaSxJW2EtMV09X2krTVthXSooMTw8TW4tYSkpfWZvcihJWzBdIT1NciYmcXUoMCksYT0wO2E8ZDsrK2Epe3ZhciBQbj12W2FdO2lmKFBuKXt2YXIgVXI9SVtQbl07TkEoZ3IsYSxVcixJW1Bu'@; put 'XT1VcisoMTw8TW4tUG4pKX19cmV0dXJuW2wse246cXIsYjpNbixzOmdyfV19KGMsaCk7RWUrPWgtKGg9ZHRbMF0pLGwuaD1wdD1kdFsxXX1lbHNlIHB0fHxxdSgwKTsoQmU/U0V0OkJBKShjLnN1YmFycmF5KGgsaCs9RWUpLEdlLnN1YmFycmF5KHN0KSxwdCl9dmFyIHF0PWNbaCsrXTtpZihx'@; put 'dCl7MjU1PT1xdD9xdD0zMjUxMisoY1toKytdfGNbaCsrXTw8OCk6cXQ+MTI3JiYocXQ9cXQtMTI4PDw4fGNbaCsrXSk7dmFyIG1uPWNbaCsrXTszJm1uJiZxdSgwKTtmb3IodmFyIHduPVtiRXQsX0V0LHlFdF0saG49Mjtobj4tMTstLWhuKXt2YXIgTW49bW4+PjIrKGhuPDwxKSYzO2lmKDE9'@; put 'PU1uKXt2YXIgTXI9bmV3IEF1KFswLDAsY1toKytdXSk7d25baG5dPXtzOk1yLnN1YmFycmF5KDIsMyksbjpNci5zdWJhcnJheSgwLDEpLHQ6bmV3IEJOKE1yLmJ1ZmZlciwwLDEpLGI6MH19ZWxzZSAyPT1Nbj8oaD0oZD1WQShjLGgsOS0oMSZobikpKVswXSx3bltobl09ZFsxXSk6Mz09TW4m'@; put 'JihsLnR8fHF1KDApLHduW2huXT1sLnRbaG5dKX12YXIga3I9bC50PXduLHFuPWtyWzBdLGdyPWtyWzFdLHFyPWtyWzJdLF9pPWNbSS0xXTtfaXx8cXUoMCk7dmFyIFBuPShJPDwzKS04K3R2KF9pKS1xci5iLFVyPVBuPj4zLHRyPTAsQnI9KGNbVXJdfGNbVXIrMV08PDgpPj4oNyZQbikmKDE8'@; put 'PHFyLmIpLTEsWXI9KGNbVXI9KFBuLT1nci5iKT4+M118Y1tVcisxXTw8OCk+Pig3JlBuKSYoMTw8Z3IuYiktMSx3aT0oY1tVcj0oUG4tPXFuLmIpPj4zXXxjW1VyKzFdPDw4KT4+KDcmUG4pJigxPDxxbi5iKS0xO2ZvcigrK3F0Oy0tcXQ7KXt2YXIgQmk9cXIuc1tCcl0saGE9cXIubltCcl0s'@; put 'bWE9cW4uc1t3aV0sdnQ9cW4ublt3aV0seHQ9Z3Iuc1tZcl0sJHQ9Z3IubltZcl0sWW49MTw8eHQsJG49WW4rKChjW1VyPShQbi09eHQpPj4zXXxjW1VyKzFdPDw4fGNbVXIrMl08PDE2fGNbVXIrM108PDI0KT4+Pig3JlBuKSZZbi0xKTtVcj0oUG4tPWp0ZVttYV0pPj4zO3ZhciBhcj1DRXRb'@; put 'bWFdKygoY1tVcl18Y1tVcisxXTw8OHxjW1VyKzJdPDwxNik+Pig3JlBuKSYoMTw8anRlW21hXSktMSk7VXI9KFBuLT1CdGVbQmldKT4+Mzt2YXIgR3I9d0V0W0JpXSsoKGNbVXJdfGNbVXIrMV08PDh8Y1tVcisyXTw8MTYpPj4oNyZQbikmKDE8PEJ0ZVtCaV0pLTEpO2lmKFVyPShQbi09aGEp'@; put 'Pj4zLEJyPXFyLnRbQnJdKygoY1tVcl18Y1tVcisxXTw8OCk+Pig3JlBuKSYoMTw8aGEpLTEpLFVyPShQbi09dnQpPj4zLHdpPXFuLnRbd2ldKygoY1tVcl18Y1tVcisxXTw8OCk+Pig3JlBuKSYoMTw8dnQpLTEpLFVyPShQbi09JHQpPj4zLFlyPWdyLnRbWXJdKygoY1tVcl18Y1tVcisxXTw8'@; put 'OCk+Pig3JlBuKSYoMTw8JHQpLTEpLCRuPjMpbC5vWzJdPWwub1sxXSxsLm9bMV09bC5vWzBdLGwub1swXT0kbi09MztlbHNle3ZhciBHdD0kbi0oMCE9R3IpO0d0Pygkbj0zPT1HdD9sLm9bMF0tMTpsLm9bR3RdLEd0PjEmJihsLm9bMl09bC5vWzFdKSxsLm9bMV09bC5vWzBdLGwub1swXT0k'@; put 'bik6JG49bC5vWzBdfWZvcihobj0wO2huPEdyOysraG4pR2VbdHIraG5dPUdlW3N0K2huXTtzdCs9R3I7dmFyIGJuPSh0cis9R3IpLSRuO2lmKGJuPDApe3ZhciB4bj0tYm4sSW49bC5lK2JuO2Zvcih4bj5hciYmKHhuPWFyKSxobj0wO2huPHhuOysraG4pR2VbdHIraG5dPWwud1tJbitobl07'@; put 'dHIrPXhuLGFyLT14bixibj0wfWZvcihobj0wO2huPGFyOysraG4pR2VbdHIraG5dPUdlW2JuK2huXTt0cis9YXJ9aWYodHIhPXN0KWZvcig7c3Q8R2UubGVuZ3RoOylHZVt0cisrXT1HZVtzdCsrXTtlbHNlIHRyPUdlLmxlbmd0aDthP2wueSs9dHI6R2U9VnRlKEdlLDAsdHIpfWVsc2UgaWYo'@; put 'YSl7aWYobC55Kz15ZSxzdClmb3IoaG49MDtobjx5ZTsrK2huKUdlW2huXT1HZVtzdCtobl19ZWxzZSBzdCYmKEdlPVZ0ZShHZSxzdCkpO3JldHVybiBsLmI9SSxHZX1xdSgyKX19O2Z1bmN0aW9uIHp0ZSgpe3JldHVybiB6dGU9UShmdW5jdGlvbiooYz17fSl7dmFyIEcscmUsRWUsYT1jLHVl'@; put 'PWNvbnNvbGUubG9nLmJpbmQoY29uc29sZSkseWU9Y29uc29sZS5lcnJvci5iaW5kKGNvbnNvbGUpLEJlPSExO2Z1bmN0aW9uIHN0KFVlLGx0KXtVZXx8bWEobHQpfXZhciBkdCxxdCxtbix3bixobixNbixrcixxbixxcixwdD1VZT0+VWUuc3RhcnRzV2l0aCgiZmlsZTovLyIpLF9pPSExO2Z1'@; put 'bmN0aW9uIFBuKCl7dmFyIFVlPW1uLmJ1ZmZlcjt3bj1uZXcgSW50OEFycmF5KFVlKSxNbj1uZXcgSW50MTZBcnJheShVZSksaG49bmV3IFVpbnQ4QXJyYXkoVWUpLG5ldyBVaW50MTZBcnJheShVZSksa3I9bmV3IEludDMyQXJyYXkoVWUpLHFuPW5ldyBVaW50MzJBcnJheShVZSksbmV3IEZs'@; put 'b2F0MzJBcnJheShVZSkscXI9bmV3IEZsb2F0NjRBcnJheShVZSl9dmFyIHZ0LFlyPTAsd2k9bnVsbDtmdW5jdGlvbiBCaShVZSl7WXIrK31mdW5jdGlvbiBoYShVZSl7aWYoMD09LS1ZciYmd2kpe3ZhciBsdD13aTt3aT1udWxsLGx0KCl9fWZ1bmN0aW9uIG1hKFVlKXt5ZShVZT0iQWJvcnRl'@; put 'ZCgiK1VlKyIpIiksQmU9ITAsVWUrPSIuIEJ1aWxkIHdpdGggLXNBU1NFUlRJT05TIGZvciBtb3JlIGluZm8uIjt2YXIgbHQ9bmV3IFdlYkFzc2VtYmx5LlJ1bnRpbWVFcnJvcihVZSk7dGhyb3cgcXQ/LihsdCksbHR9ZnVuY3Rpb24gJG4oKXtyZXR1cm4oJG49UShmdW5jdGlvbiooVWUpe2lm'@; put 'KCFFZSl0cnl7dmFyIGx0PXlpZWxkIEcoVWUpO3JldHVybiBuZXcgVWludDhBcnJheShsdCl9Y2F0Y2h7fXJldHVybiBmdW5jdGlvbiAkdChVZSl7aWYoVWU9PXZ0JiZFZSlyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoRWUpO2lmKHJlKXJldHVybiByZShVZSk7dGhyb3ciYm90aCBhc3luYyBhbmQg'@; put 'c3luYyBmZXRjaGluZyBvZiB0aGUgd2FzbSBmYWlsZWQifShVZSl9KSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEdyKCl7cmV0dXJuIEdyPVEoZnVuY3Rpb24qKFVlLGx0KXt0cnl7dmFyIEh0PXlpZWxkIGZ1bmN0aW9uIFluKFVlKXtyZXR1cm4gJG4uYXBwbHkodGhpcyxhcmd1'@; put 'bWVudHMpfShVZSk7cmV0dXJuIHlpZWxkIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKEh0LGx0KX1jYXRjaChrbil7eWUoYGZhaWxlZCB0byBhc3luY2hyb25vdXNseSBwcmVwYXJlIHdhc206ICR7a259YCksbWEoa24pfX0pLEdyLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBibigp'@; put 'e3JldHVybiBibj1RKGZ1bmN0aW9uKihVZSxsdCxIdCl7aWYoIVVlJiYiZnVuY3Rpb24iPT10eXBlb2YgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmcmJiFwdChsdCkpdHJ5e3ZhciBYdD1mZXRjaChsdCx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pO3JldHVybiB5aWVsZCBX'@; put 'ZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZyhYdCxIdCl9Y2F0Y2gobHIpe3llKGB3YXNtIHN0cmVhbWluZyBjb21waWxlIGZhaWxlZDogJHtscn1gKSx5ZSgiZmFsbGluZyBiYWNrIHRvIEFycmF5QnVmZmVyIGluc3RhbnRpYXRpb24iKX1yZXR1cm4gZnVuY3Rpb24gYXIoVWUsbHQp'@; put 'e3JldHVybiBHci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KGx0LEh0KX0pLGJuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBYbigpe3JldHVybiBYbj1RKGZ1bmN0aW9uKigpe0JpKCk7dmFyIEh0PWZ1bmN0aW9uIHhuKCl7cmV0dXJue2E6cFJ0fX0oKTt2dD8/PSIiO3ZhciBYdD15'@; put 'aWVsZCBmdW5jdGlvbiBHdChVZSxsdCxIdCl7cmV0dXJuIGJuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0oRWUsdnQsSHQpO3JldHVybiBmdW5jdGlvbiBsdChscil7cmV0dXJuIGZ1bmN0aW9uIFVlKGxyLElyKXtyZXR1cm4gbW49KFlBPWxyLmV4cG9ydHMpLkEsUG4oKSxmdW5jdGlvbiBmUnQo'@; put 'VWUpe2EuX3dlYmlkbF9mcmVlPVVlLkMsYS5fZnJlZT1VZS5ELGEuX3dlYmlkbF9tYWxsb2M9VWUuRSxhLl9tYWxsb2M9VWUuRixhLl9lbXNjcmlwdGVuX2JpbmRfVm9pZFB0cl9fX2Rlc3Ryb3lfX18wPXo3ZT1VZS5HLGEuX2Vtc2NyaXB0ZW5fYmluZF9HcmFwaHZpel9HcmFwaHZpel8yPVU3'@; put 'ZT1VZS5ILGEuX2Vtc2NyaXB0ZW5fYmluZF9HcmFwaHZpel92ZXJzaW9uXzA9WjdlPVVlLkksYS5fZW1zY3JpcHRlbl9iaW5kX0dyYXBodml6X2xhc3RFcnJvcl8wPVc3ZT1VZS5KLGEuX2Vtc2NyaXB0ZW5fYmluZF9HcmFwaHZpel9jcmVhdGVGaWxlXzI9WTdlPVVlLkssYS5fZW1zY3JpcHRl'@; put 'bl9iaW5kX0dyYXBodml6X2xheW91dF8zPUc3ZT1VZS5MLGEuX2Vtc2NyaXB0ZW5fYmluZF9HcmFwaHZpel9hY3ljbGljXzM9JDdlPVVlLk0sYS5fZW1zY3JpcHRlbl9iaW5kX0dyYXBodml6X3RyZWRfMz1LN2U9VWUuTixhLl9lbXNjcmlwdGVuX2JpbmRfR3JhcGh2aXpfdW5mbGF0dGVuXzQ9'@; put 'WDdlPVVlLk8sYS5fZW1zY3JpcHRlbl9iaW5kX0dyYXBodml6X2dldF9sYXlvdXRfcmVzdWx0XzA9cTdlPVVlLlAsYS5fZW1zY3JpcHRlbl9iaW5kX0dyYXBodml6X3NldF9sYXlvdXRfcmVzdWx0XzE9SjdlPVVlLlEsYS5fZW1zY3JpcHRlbl9iaW5kX0dyYXBodml6X2dldF9hY3ljbGljX291'@; put 'dEZpbGVfMD1RN2U9VWUuUixhLl9lbXNjcmlwdGVuX2JpbmRfR3JhcGh2aXpfc2V0X2FjeWNsaWNfb3V0RmlsZV8xPWU5ZT1VZS5TLGEuX2Vtc2NyaXB0ZW5fYmluZF9HcmFwaHZpel9nZXRfYWN5Y2xpY19udW1fcmV2XzA9dDllPVVlLlQsYS5fZW1zY3JpcHRlbl9iaW5kX0dyYXBodml6X3Nl'@; put 'dF9hY3ljbGljX251bV9yZXZfMT1uOWU9VWUuVSxhLl9lbXNjcmlwdGVuX2JpbmRfR3JhcGh2aXpfZ2V0X3RyZWRfb3V0XzA9cjllPVVlLlYsYS5fZW1zY3JpcHRlbl9iaW5kX0dyYXBodml6X3NldF90cmVkX291dF8xPWk5ZT1VZS5XLGEuX2Vtc2NyaXB0ZW5fYmluZF9HcmFwaHZpel9nZXRf'@; put 'dHJlZF9lcnJfMD1hOWU9VWUuWCxhLl9lbXNjcmlwdGVuX2JpbmRfR3JhcGh2aXpfc2V0X3RyZWRfZXJyXzE9czllPVVlLlksYS5fZW1zY3JpcHRlbl9iaW5kX0dyYXBodml6X19fZGVzdHJveV9fXzA9bzllPVVlLlosbDllPVVlLl99KFlBKSxoYSgpLFlBfShsci5pbnN0YW5jZSl9KFh0KX0p'@; put 'LFhuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX12YXIgTm4sdnI7Y2xhc3MgV257bmFtZT0iRXhpdFN0YXR1cyI7Y29uc3RydWN0b3IobHQpe3RoaXMubWVzc2FnZT1gUHJvZ3JhbSB0ZXJtaW5hdGVkIHdpdGggZXhpdCgke2x0fSlgLHRoaXMuc3RhdHVzPWx0fX1jbGFzcyBEcntjb25zdHJ1Y3Rv'@; put 'cihsdCl7dGhpcy5leGNQdHI9bHQsdGhpcy5wdHI9bHQtMjR9c2V0X3R5cGUobHQpe3FuW3RoaXMucHRyKzQ+PjJdPWx0fWdldF90eXBlKCl7cmV0dXJuIHFuW3RoaXMucHRyKzQ+PjJdfXNldF9kZXN0cnVjdG9yKGx0KXtxblt0aGlzLnB0cis4Pj4yXT1sdH1nZXRfZGVzdHJ1Y3Rvcigpe3Jl'@; put 'dHVybiBxblt0aGlzLnB0cis4Pj4yXX1zZXRfY2F1Z2h0KGx0KXt3blt0aGlzLnB0cisxMl09bHQ9bHQ/MTowfWdldF9jYXVnaHQoKXtyZXR1cm4gMCE9d25bdGhpcy5wdHIrMTJdfXNldF9yZXRocm93bihsdCl7d25bdGhpcy5wdHIrMTNdPWx0PWx0PzE6MH1nZXRfcmV0aHJvd24oKXtyZXR1'@; put 'cm4gMCE9d25bdGhpcy5wdHIrMTNdfWluaXQobHQsSHQpe3RoaXMuc2V0X2FkanVzdGVkX3B0cigwKSx0aGlzLnNldF90eXBlKGx0KSx0aGlzLnNldF9kZXN0cnVjdG9yKEh0KX1zZXRfYWRqdXN0ZWRfcHRyKGx0KXtxblt0aGlzLnB0cisxNj4+Ml09bHR9Z2V0X2FkanVzdGVkX3B0cigpe3Jl'@; put 'dHVybiBxblt0aGlzLnB0cisxNj4+Ml19fXZhciBaaT17aXNBYnM6VWU9PiIvIj09PVVlLmNoYXJBdCgwKSxzcGxpdFBhdGg6VWU9Pi9eKFwvP3wpKFtcc1xTXSo/KSgoPzpcLnsxLDJ9fFteXC9dKz98KShcLlteLlwvXSp8KSkoPzpbXC9dKikkLy5leGVjKFVlKS5zbGljZSgxKSxub3JtYWxp'@; put 'emVBcnJheTooVWUsbHQpPT57Zm9yKHZhciBIdD0wLFh0PVVlLmxlbmd0aC0xO1h0Pj0wO1h0LS0pe3ZhciBrbj1VZVtYdF07Ii4iPT09a24/VWUuc3BsaWNlKFh0LDEpOiIuLiI9PT1rbj8oVWUuc3BsaWNlKFh0LDEpLEh0KyspOkh0JiYoVWUuc3BsaWNlKFh0LDEpLEh0LS0pfWlmKGx0KWZv'@; put 'cig7SHQ7SHQtLSlVZS51bnNoaWZ0KCIuLiIpO3JldHVybiBVZX0sbm9ybWFsaXplOlVlPT57dmFyIGx0PVppLmlzQWJzKFVlKSxIdD0iLyI9PT1VZS5zbGljZSgtMSk7cmV0dXJuIShVZT1aaS5ub3JtYWxpemVBcnJheShVZS5zcGxpdCgiLyIpLmZpbHRlcihYdD0+ISFYdCksIWx0KS5qb2lu'@; put 'KCIvIikpJiYhbHQmJihVZT0iLiIpLFVlJiZIdCYmKFVlKz0iLyIpLChsdD8iLyI6IiIpK1VlfSxkaXJuYW1lOlVlPT57dmFyIGx0PVppLnNwbGl0UGF0aChVZSksSHQ9bHRbMF0sWHQ9bHRbMV07cmV0dXJuIEh0fHxYdD8oWHQmJihYdD1YdC5zbGljZSgwLC0xKSksSHQrWHQpOiIuIn0sYmFz'@; put 'ZW5hbWU6VWU9PlVlJiZVZS5tYXRjaCgvKFteXC9dK3xcLylcLyokLylbMV0sam9pbjooLi4uVWUpPT5aaS5ub3JtYWxpemUoVWUuam9pbigiLyIpKSxqb2luMjooVWUsbHQpPT5aaS5ub3JtYWxpemUoVWUrIi8iK2x0KX0sdW89VWU9PnsodW89VWU9PmNyeXB0by5nZXRSYW5kb21WYWx1ZXMo'@; put 'VWUpKShVZSl9LFdzPXtyZXNvbHZlOiguLi5VZSk9Pntmb3IodmFyIGx0PSIiLEh0PSExLFh0PVVlLmxlbmd0aC0xO1h0Pj0tMSYmIUh0O1h0LS0pe3ZhciBrbj1YdD49MD9VZVtYdF06WXQuY3dkKCk7aWYoInN0cmluZyIhPXR5cGVvZiBrbil0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVu'@; put 'dHMgdG8gcGF0aC5yZXNvbHZlIG11c3QgYmUgc3RyaW5ncyIpO2lmKCFrbilyZXR1cm4iIjtsdD1rbisiLyIrbHQsSHQ9WmkuaXNBYnMoa24pfXJldHVybihIdD8iLyI6IiIpKyhsdD1aaS5ub3JtYWxpemVBcnJheShsdC5zcGxpdCgiLyIpLmZpbHRlcihscj0+ISFsciksIUh0KS5qb2luKCIv'@; put 'IikpfHwiLiJ9LHJlbGF0aXZlOihVZSxsdCk9PntmdW5jdGlvbiBIdChScyl7Zm9yKHZhciBLbz0wO0tvPFJzLmxlbmd0aCYmIiI9PT1Sc1tLb107S28rKyk7Zm9yKHZhciBEbD1Scy5sZW5ndGgtMTtEbD49MCYmIiI9PT1Sc1tEbF07RGwtLSk7cmV0dXJuIEtvPkRsP1tdOlJzLnNsaWNlKEtv'@; put 'LERsLUtvKzEpfVVlPVdzLnJlc29sdmUoVWUpLnNsaWNlKDEpLGx0PVdzLnJlc29sdmUobHQpLnNsaWNlKDEpO2Zvcih2YXIgWHQ9SHQoVWUuc3BsaXQoIi8iKSksa249SHQobHQuc3BsaXQoIi8iKSksbHI9TWF0aC5taW4oWHQubGVuZ3RoLGtuLmxlbmd0aCksSXI9bHIsJHI9MDskcjxscjsk'@; put 'cisrKWlmKFh0WyRyXSE9PWtuWyRyXSl7SXI9JHI7YnJlYWt9dmFyIHZhPVtdO2Zvcigkcj1JcjskcjxYdC5sZW5ndGg7JHIrKyl2YS5wdXNoKCIuLiIpO3JldHVybih2YT12YS5jb25jYXQoa24uc2xpY2UoSXIpKSkuam9pbigiLyIpfX0sU3M9dHlwZW9mIFRleHREZWNvZGVyPCJ1Ij9uZXcg'@; put 'VGV4dERlY29kZXI6dm9pZCAwLGZvPShVZSxsdD0wLEh0LFh0KT0+e3ZhciBrbj0oKFVlLGx0LEh0LFh0KT0+e3ZhciBrbj1sdCtIdDtpZihYdClyZXR1cm4ga247Zm9yKDtVZVtsdF0mJiEobHQ+PWtuKTspKytsdDtyZXR1cm4gbHR9KShVZSxsdCxIdCxYdCk7aWYoa24tbHQ+MTYmJlVlLmJ1'@; put 'ZmZlciYmU3MpcmV0dXJuIFNzLmRlY29kZShVZS5zdWJhcnJheShsdCxrbikpO2Zvcih2YXIgbHI9IiI7bHQ8a247KXt2YXIgSXI9VWVbbHQrK107aWYoMTI4JklyKXt2YXIgJHI9NjMmVWVbbHQrK107aWYoMTkyIT0oMjI0JklyKSl7dmFyIHZhPTYzJlVlW2x0KytdO2lmKChJcj0yMjQ9PSgy'@; put 'NDAmSXIpPygxNSZJcik8PDEyfCRyPDw2fHZhOig3JklyKTw8MTh8JHI8PDEyfHZhPDw2fDYzJlVlW2x0KytdKTw2NTUzNilscis9U3RyaW5nLmZyb21DaGFyQ29kZShJcik7ZWxzZXt2YXIgUnM9SXItNjU1MzY7bHIrPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTZ8UnM+PjEwLDU2MzIwfDEw'@; put 'MjMmUnMpfX1lbHNlIGxyKz1TdHJpbmcuZnJvbUNoYXJDb2RlKCgzMSZJcik8PDZ8JHIpfWVsc2UgbHIrPVN0cmluZy5mcm9tQ2hhckNvZGUoSXIpfXJldHVybiBscn0seDA9W10sWWg9VWU9Pntmb3IodmFyIGx0PTAsSHQ9MDtIdDxVZS5sZW5ndGg7KytIdCl7dmFyIFh0PVVlLmNoYXJDb2Rl'@; put 'QXQoSHQpO1h0PD0xMjc/bHQrKzpYdDw9MjA0Nz9sdCs9MjpYdD49NTUyOTYmJlh0PD01NzM0Mz8obHQrPTQsKytIdCk6bHQrPTN9cmV0dXJuIGx0fSxRZD0oVWUsbHQsSHQsWHQpPT57aWYoIShYdD4wKSlyZXR1cm4gMDtmb3IodmFyIGtuPUh0LGxyPUh0K1h0LTEsSXI9MDtJcjxVZS5sZW5n'@; put 'dGg7KytJcil7dmFyICRyPVVlLmNvZGVQb2ludEF0KElyKTtpZigkcjw9MTI3KXtpZihIdD49bHIpYnJlYWs7bHRbSHQrK109JHJ9ZWxzZSBpZigkcjw9MjA0Nyl7aWYoSHQrMT49bHIpYnJlYWs7bHRbSHQrK109MTkyfCRyPj42LGx0W0h0KytdPTEyOHw2MyYkcn1lbHNlIGlmKCRyPD02NTUz'@; put 'NSl7aWYoSHQrMj49bHIpYnJlYWs7bHRbSHQrK109MjI0fCRyPj4xMixsdFtIdCsrXT0xMjh8JHI+PjYmNjMsbHRbSHQrK109MTI4fDYzJiRyfWVsc2V7aWYoSHQrMz49bHIpYnJlYWs7bHRbSHQrK109MjQwfCRyPj4xOCxsdFtIdCsrXT0xMjh8JHI+PjEyJjYzLGx0W0h0KytdPTEyOHwkcj4+'@; put 'NiY2MyxsdFtIdCsrXT0xMjh8NjMmJHIsSXIrK319cmV0dXJuIGx0W0h0XT0wLEh0LWtufSxEYz0oVWUsbHQsSHQpPT57dmFyIFh0PUh0PjA/SHQ6WWgoVWUpKzEsa249bmV3IEFycmF5KFh0KSxscj1RZChVZSxrbiwwLGtuLmxlbmd0aCk7cmV0dXJuIGx0JiYoa24ubGVuZ3RoPWxyKSxrbn0s'@; put 'JG89e3R0eXM6W10saW5pdCgpe30sc2h1dGRvd24oKXt9LHJlZ2lzdGVyKFVlLGx0KXskby50dHlzW1VlXT17aW5wdXQ6W10sb3V0cHV0OltdLG9wczpsdH0sWXQucmVnaXN0ZXJEZXZpY2UoVWUsJG8uc3RyZWFtX29wcyl9LHN0cmVhbV9vcHM6e29wZW4oVWUpe3ZhciBsdD0kby50dHlzW1Vl'@; put 'Lm5vZGUucmRldl07aWYoIWx0KXRocm93IG5ldyBZdC5FcnJub0Vycm9yKDQzKTtVZS50dHk9bHQsVWUuc2Vla2FibGU9ITF9LGNsb3NlKFVlKXtVZS50dHkub3BzLmZzeW5jKFVlLnR0eSl9LGZzeW5jKFVlKXtVZS50dHkub3BzLmZzeW5jKFVlLnR0eSl9LHJlYWQoVWUsbHQsSHQsWHQsa24p'@; put 'e2lmKCFVZS50dHl8fCFVZS50dHkub3BzLmdldF9jaGFyKXRocm93IG5ldyBZdC5FcnJub0Vycm9yKDYwKTtmb3IodmFyIGxyPTAsSXI9MDtJcjxYdDtJcisrKXt2YXIgJHI7dHJ5eyRyPVVlLnR0eS5vcHMuZ2V0X2NoYXIoVWUudHR5KX1jYXRjaHt0aHJvdyBuZXcgWXQuRXJybm9FcnJvcigy'@; put 'OSl9aWYodm9pZCAwPT09JHImJjA9PT1scil0aHJvdyBuZXcgWXQuRXJybm9FcnJvcig2KTtpZihudWxsPT0kcilicmVhaztscisrLGx0W0h0K0lyXT0kcn1yZXR1cm4gbHImJihVZS5ub2RlLmF0aW1lPURhdGUubm93KCkpLGxyfSx3cml0ZShVZSxsdCxIdCxYdCxrbil7aWYoIVVlLnR0eXx8'@; put 'IVVlLnR0eS5vcHMucHV0X2NoYXIpdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoNjApO3RyeXtmb3IodmFyIGxyPTA7bHI8WHQ7bHIrKylVZS50dHkub3BzLnB1dF9jaGFyKFVlLnR0eSxsdFtIdCtscl0pfWNhdGNoe3Rocm93IG5ldyBZdC5FcnJub0Vycm9yKDI5KX1yZXR1cm4gWHQmJihVZS5u'@; put 'b2RlLm10aW1lPVVlLm5vZGUuY3RpbWU9RGF0ZS5ub3coKSksbHJ9fSxkZWZhdWx0X3R0eV9vcHM6e2dldF9jaGFyOlVlPT54MC5sZW5ndGg/eDAuc2hpZnQoKTpudWxsLHB1dF9jaGFyKFVlLGx0KXtudWxsPT09bHR8fDEwPT09bHQ/KHVlKGZvKFVlLm91dHB1dCkpLFVlLm91dHB1dD1bXSk6'@; put 'MCE9bHQmJlVlLm91dHB1dC5wdXNoKGx0KX0sZnN5bmMoVWUpe1VlLm91dHB1dD8ubGVuZ3RoPjAmJih1ZShmbyhVZS5vdXRwdXQpKSxVZS5vdXRwdXQ9W10pfSxpb2N0bF90Y2dldHM6VWU9Pih7Y19pZmxhZzoyNTg1NixjX29mbGFnOjUsY19jZmxhZzoxOTEsY19sZmxhZzozNTM4NyxjX2Nj'@; put 'OlszLDI4LDEyNywyMSw0LDAsMSwwLDE3LDE5LDI2LDAsMTgsMTUsMjMsMjIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF19KSxpb2N0bF90Y3NldHM6KFVlLGx0LEh0KT0+MCxpb2N0bF90aW9jZ3dpbnN6OlVlPT5bMjQsODBdfSxkZWZhdWx0X3R0eTFfb3BzOntwdXRfY2hhcihV'@; put 'ZSxsdCl7bnVsbD09PWx0fHwxMD09PWx0Pyh5ZShmbyhVZS5vdXRwdXQpKSxVZS5vdXRwdXQ9W10pOjAhPWx0JiZVZS5vdXRwdXQucHVzaChsdCl9LGZzeW5jKFVlKXtVZS5vdXRwdXQ/Lmxlbmd0aD4wJiYoeWUoZm8oVWUub3V0cHV0KSksVWUub3V0cHV0PVtdKX19fSxrbz0oVWUsbHQpPT5N'@; put 'YXRoLmNlaWwoVWUvbHQpKmx0LG9kPVVlPT57VWU9a28oVWUsNjU1MzYpO3ZhciBsdD1sOWUoNjU1MzYsVWUpO3JldHVybiBsdCYmKChVZSxsdCk9Pntobi5maWxsKDAsVWUsVWUrbHQpfSkobHQsVWUpLGx0fSx0cz17b3BzX3RhYmxlOm51bGwsbW91bnQ6VWU9PnRzLmNyZWF0ZU5vZGUobnVs'@; put 'bCwiLyIsMTY4OTUsMCksY3JlYXRlTm9kZShVZSxsdCxIdCxYdCl7aWYoWXQuaXNCbGtkZXYoSHQpfHxZdC5pc0ZJRk8oSHQpKXRocm93IG5ldyBZdC5FcnJub0Vycm9yKDYzKTt0cy5vcHNfdGFibGV8fD17ZGlyOntub2RlOntnZXRhdHRyOnRzLm5vZGVfb3BzLmdldGF0dHIsc2V0YXR0cjp0'@; put 'cy5ub2RlX29wcy5zZXRhdHRyLGxvb2t1cDp0cy5ub2RlX29wcy5sb29rdXAsbWtub2Q6dHMubm9kZV9vcHMubWtub2QscmVuYW1lOnRzLm5vZGVfb3BzLnJlbmFtZSx1bmxpbms6dHMubm9kZV9vcHMudW5saW5rLHJtZGlyOnRzLm5vZGVfb3BzLnJtZGlyLHJlYWRkaXI6dHMubm9kZV9vcHMu'@; put 'cmVhZGRpcixzeW1saW5rOnRzLm5vZGVfb3BzLnN5bWxpbmt9LHN0cmVhbTp7bGxzZWVrOnRzLnN0cmVhbV9vcHMubGxzZWVrfX0sZmlsZTp7bm9kZTp7Z2V0YXR0cjp0cy5ub2RlX29wcy5nZXRhdHRyLHNldGF0dHI6dHMubm9kZV9vcHMuc2V0YXR0cn0sc3RyZWFtOntsbHNlZWs6dHMuc3Ry'@; put 'ZWFtX29wcy5sbHNlZWsscmVhZDp0cy5zdHJlYW1fb3BzLnJlYWQsd3JpdGU6dHMuc3RyZWFtX29wcy53cml0ZSxtbWFwOnRzLnN0cmVhbV9vcHMubW1hcCxtc3luYzp0cy5zdHJlYW1fb3BzLm1zeW5jfX0sbGluazp7bm9kZTp7Z2V0YXR0cjp0cy5ub2RlX29wcy5nZXRhdHRyLHNldGF0dHI6'@; put 'dHMubm9kZV9vcHMuc2V0YXR0cixyZWFkbGluazp0cy5ub2RlX29wcy5yZWFkbGlua30sc3RyZWFtOnt9fSxjaHJkZXY6e25vZGU6e2dldGF0dHI6dHMubm9kZV9vcHMuZ2V0YXR0cixzZXRhdHRyOnRzLm5vZGVfb3BzLnNldGF0dHJ9LHN0cmVhbTpZdC5jaHJkZXZfc3RyZWFtX29wc319O3Zh'@; put 'ciBrbj1ZdC5jcmVhdGVOb2RlKFVlLGx0LEh0LFh0KTtyZXR1cm4gWXQuaXNEaXIoa24ubW9kZSk/KGtuLm5vZGVfb3BzPXRzLm9wc190YWJsZS5kaXIubm9kZSxrbi5zdHJlYW1fb3BzPXRzLm9wc190YWJsZS5kaXIuc3RyZWFtLGtuLmNvbnRlbnRzPXt9KTpZdC5pc0ZpbGUoa24ubW9kZSk/'@; put 'KGtuLm5vZGVfb3BzPXRzLm9wc190YWJsZS5maWxlLm5vZGUsa24uc3RyZWFtX29wcz10cy5vcHNfdGFibGUuZmlsZS5zdHJlYW0sa24udXNlZEJ5dGVzPTAsa24uY29udGVudHM9bnVsbCk6WXQuaXNMaW5rKGtuLm1vZGUpPyhrbi5ub2RlX29wcz10cy5vcHNfdGFibGUubGluay5ub2RlLGtu'@; put 'LnN0cmVhbV9vcHM9dHMub3BzX3RhYmxlLmxpbmsuc3RyZWFtKTpZdC5pc0NocmRldihrbi5tb2RlKSYmKGtuLm5vZGVfb3BzPXRzLm9wc190YWJsZS5jaHJkZXYubm9kZSxrbi5zdHJlYW1fb3BzPXRzLm9wc190YWJsZS5jaHJkZXYuc3RyZWFtKSxrbi5hdGltZT1rbi5tdGltZT1rbi5jdGlt'@; put 'ZT1EYXRlLm5vdygpLFVlJiYoVWUuY29udGVudHNbbHRdPWtuLFVlLmF0aW1lPVVlLm10aW1lPVVlLmN0aW1lPWtuLmF0aW1lKSxrbn0sZ2V0RmlsZURhdGFBc1R5cGVkQXJyYXk6VWU9PlVlLmNvbnRlbnRzP1VlLmNvbnRlbnRzLnN1YmFycmF5P1VlLmNvbnRlbnRzLnN1YmFycmF5KDAsVWUu'@; put 'dXNlZEJ5dGVzKTpuZXcgVWludDhBcnJheShVZS5jb250ZW50cyk6bmV3IFVpbnQ4QXJyYXkoMCksZXhwYW5kRmlsZVN0b3JhZ2UoVWUsbHQpe3ZhciBIdD1VZS5jb250ZW50cz9VZS5jb250ZW50cy5sZW5ndGg6MDtpZighKEh0Pj1sdCkpe2x0PU1hdGgubWF4KGx0LEh0KihIdDwxMDQ4NTc2'@; put 'PzI6MS4xMjUpPj4+MCksMCE9SHQmJihsdD1NYXRoLm1heChsdCwyNTYpKTt2YXIga249VWUuY29udGVudHM7VWUuY29udGVudHM9bmV3IFVpbnQ4QXJyYXkobHQpLFVlLnVzZWRCeXRlcz4wJiZVZS5jb250ZW50cy5zZXQoa24uc3ViYXJyYXkoMCxVZS51c2VkQnl0ZXMpLDApfX0scmVzaXpl'@; put 'RmlsZVN0b3JhZ2UoVWUsbHQpe2lmKFVlLnVzZWRCeXRlcyE9bHQpaWYoMD09bHQpVWUuY29udGVudHM9bnVsbCxVZS51c2VkQnl0ZXM9MDtlbHNle3ZhciBIdD1VZS5jb250ZW50cztVZS5jb250ZW50cz1uZXcgVWludDhBcnJheShsdCksSHQmJlVlLmNvbnRlbnRzLnNldChIdC5zdWJhcnJh'@; put 'eSgwLE1hdGgubWluKGx0LFVlLnVzZWRCeXRlcykpKSxVZS51c2VkQnl0ZXM9bHR9fSxub2RlX29wczp7Z2V0YXR0cihVZSl7dmFyIGx0PXt9O3JldHVybiBsdC5kZXY9WXQuaXNDaHJkZXYoVWUubW9kZSk/VWUuaWQ6MSxsdC5pbm89VWUuaWQsbHQubW9kZT1VZS5tb2RlLGx0Lm5saW5rPTEs'@; put 'bHQudWlkPTAsbHQuZ2lkPTAsbHQucmRldj1VZS5yZGV2LGx0LnNpemU9WXQuaXNEaXIoVWUubW9kZSk/NDA5NjpZdC5pc0ZpbGUoVWUubW9kZSk/VWUudXNlZEJ5dGVzOll0LmlzTGluayhVZS5tb2RlKT9VZS5saW5rLmxlbmd0aDowLGx0LmF0aW1lPW5ldyBEYXRlKFVlLmF0aW1lKSxsdC5t'@; put 'dGltZT1uZXcgRGF0ZShVZS5tdGltZSksbHQuY3RpbWU9bmV3IERhdGUoVWUuY3RpbWUpLGx0LmJsa3NpemU9NDA5NixsdC5ibG9ja3M9TWF0aC5jZWlsKGx0LnNpemUvbHQuYmxrc2l6ZSksbHR9LHNldGF0dHIoVWUsbHQpe2ZvcihsZXQgSHQgb2ZbIm1vZGUiLCJhdGltZSIsIm10aW1lIiwi'@; put 'Y3RpbWUiXSludWxsIT1sdFtIdF0mJihVZVtIdF09bHRbSHRdKTt2b2lkIDAhPT1sdC5zaXplJiZ0cy5yZXNpemVGaWxlU3RvcmFnZShVZSxsdC5zaXplKX0sbG9va3VwKFVlLGx0KXt0aHJvdyB0cy5kb2VzTm90RXhpc3RFcnJvcnx8KHRzLmRvZXNOb3RFeGlzdEVycm9yPW5ldyBZdC5FcnJu'@; put 'b0Vycm9yKDQ0KSx0cy5kb2VzTm90RXhpc3RFcnJvci5zdGFjaz0iPGdlbmVyaWMgZXJyb3IsIG5vIHN0YWNrPiIpLHRzLmRvZXNOb3RFeGlzdEVycm9yfSxta25vZDooVWUsbHQsSHQsWHQpPT50cy5jcmVhdGVOb2RlKFVlLGx0LEh0LFh0KSxyZW5hbWUoVWUsbHQsSHQpe3ZhciBYdDt0cnl7'@; put 'WHQ9WXQubG9va3VwTm9kZShsdCxIdCl9Y2F0Y2h7fWlmKFh0KXtpZihZdC5pc0RpcihVZS5tb2RlKSlmb3IodmFyIGtuIGluIFh0LmNvbnRlbnRzKXRocm93IG5ldyBZdC5FcnJub0Vycm9yKDU1KTtZdC5oYXNoUmVtb3ZlTm9kZShYdCl9ZGVsZXRlIFVlLnBhcmVudC5jb250ZW50c1tVZS5u'@; put 'YW1lXSxsdC5jb250ZW50c1tIdF09VWUsVWUubmFtZT1IdCxsdC5jdGltZT1sdC5tdGltZT1VZS5wYXJlbnQuY3RpbWU9VWUucGFyZW50Lm10aW1lPURhdGUubm93KCl9LHVubGluayhVZSxsdCl7ZGVsZXRlIFVlLmNvbnRlbnRzW2x0XSxVZS5jdGltZT1VZS5tdGltZT1EYXRlLm5vdygpfSxy'@; put 'bWRpcihVZSxsdCl7dmFyIEh0PVl0Lmxvb2t1cE5vZGUoVWUsbHQpO2Zvcih2YXIgWHQgaW4gSHQuY29udGVudHMpdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoNTUpO2RlbGV0ZSBVZS5jb250ZW50c1tsdF0sVWUuY3RpbWU9VWUubXRpbWU9RGF0ZS5ub3coKX0scmVhZGRpcjpVZT0+WyIuIiwi'@; put 'Li4iLC4uLk9iamVjdC5rZXlzKFVlLmNvbnRlbnRzKV0sc3ltbGluayhVZSxsdCxIdCl7dmFyIFh0PXRzLmNyZWF0ZU5vZGUoVWUsbHQsNDE0NzEsMCk7cmV0dXJuIFh0Lmxpbms9SHQsWHR9LHJlYWRsaW5rKFVlKXtpZighWXQuaXNMaW5rKFVlLm1vZGUpKXRocm93IG5ldyBZdC5FcnJub0Vy'@; put 'cm9yKDI4KTtyZXR1cm4gVWUubGlua319LHN0cmVhbV9vcHM6e3JlYWQoVWUsbHQsSHQsWHQsa24pe3ZhciBscj1VZS5ub2RlLmNvbnRlbnRzO2lmKGtuPj1VZS5ub2RlLnVzZWRCeXRlcylyZXR1cm4gMDt2YXIgSXI9TWF0aC5taW4oVWUubm9kZS51c2VkQnl0ZXMta24sWHQpO2lmKElyPjgm'@; put 'JmxyLnN1YmFycmF5KWx0LnNldChsci5zdWJhcnJheShrbixrbitJciksSHQpO2Vsc2UgZm9yKHZhciAkcj0wOyRyPElyOyRyKyspbHRbSHQrJHJdPWxyW2tuKyRyXTtyZXR1cm4gSXJ9LHdyaXRlKFVlLGx0LEh0LFh0LGtuLGxyKXtpZihsdC5idWZmZXI9PT13bi5idWZmZXImJihscj0hMSks'@; put 'IVh0KXJldHVybiAwO3ZhciBJcj1VZS5ub2RlO2lmKElyLm10aW1lPUlyLmN0aW1lPURhdGUubm93KCksbHQuc3ViYXJyYXkmJighSXIuY29udGVudHN8fElyLmNvbnRlbnRzLnN1YmFycmF5KSl7aWYobHIpcmV0dXJuIElyLmNvbnRlbnRzPWx0LnN1YmFycmF5KEh0LEh0K1h0KSxJci51c2Vk'@; put 'Qnl0ZXM9WHQsWHQ7aWYoMD09PUlyLnVzZWRCeXRlcyYmMD09PWtuKXJldHVybiBJci5jb250ZW50cz1sdC5zbGljZShIdCxIdCtYdCksSXIudXNlZEJ5dGVzPVh0LFh0O2lmKGtuK1h0PD1Jci51c2VkQnl0ZXMpcmV0dXJuIElyLmNvbnRlbnRzLnNldChsdC5zdWJhcnJheShIdCxIdCtYdCks'@; put 'a24pLFh0fWlmKHRzLmV4cGFuZEZpbGVTdG9yYWdlKElyLGtuK1h0KSxJci5jb250ZW50cy5zdWJhcnJheSYmbHQuc3ViYXJyYXkpSXIuY29udGVudHMuc2V0KGx0LnN1YmFycmF5KEh0LEh0K1h0KSxrbik7ZWxzZSBmb3IodmFyICRyPTA7JHI8WHQ7JHIrKylJci5jb250ZW50c1trbiskcl09'@; put 'bHRbSHQrJHJdO3JldHVybiBJci51c2VkQnl0ZXM9TWF0aC5tYXgoSXIudXNlZEJ5dGVzLGtuK1h0KSxYdH0sbGxzZWVrKFVlLGx0LEh0KXt2YXIgWHQ9bHQ7aWYoMT09PUh0P1h0Kz1VZS5wb3NpdGlvbjoyPT09SHQmJll0LmlzRmlsZShVZS5ub2RlLm1vZGUpJiYoWHQrPVVlLm5vZGUudXNl'@; put 'ZEJ5dGVzKSxYdDwwKXRocm93IG5ldyBZdC5FcnJub0Vycm9yKDI4KTtyZXR1cm4gWHR9LG1tYXAoVWUsbHQsSHQsWHQsa24pe2lmKCFZdC5pc0ZpbGUoVWUubm9kZS5tb2RlKSl0aHJvdyBuZXcgWXQuRXJybm9FcnJvcig0Myk7dmFyIGxyLElyLCRyPVVlLm5vZGUuY29udGVudHM7aWYoMiZr'@; put 'bnx8ISRyfHwkci5idWZmZXIhPT13bi5idWZmZXIpe2lmKElyPSEwLCEobHI9b2QobHQpKSl0aHJvdyBuZXcgWXQuRXJybm9FcnJvcig0OCk7JHImJigoSHQ+MHx8SHQrbHQ8JHIubGVuZ3RoKSYmKCRyPSRyLnN1YmFycmF5PyRyLnN1YmFycmF5KEh0LEh0K2x0KTpBcnJheS5wcm90b3R5cGUu'@; put 'c2xpY2UuY2FsbCgkcixIdCxIdCtsdCkpLHduLnNldCgkcixscikpfWVsc2UgSXI9ITEsbHI9JHIuYnl0ZU9mZnNldDtyZXR1cm57cHRyOmxyLGFsbG9jYXRlZDpJcn19LG1zeW5jOihVZSxsdCxIdCxYdCxrbik9Pih0cy5zdHJlYW1fb3BzLndyaXRlKFVlLGx0LDAsWHQsSHQsITEpLDApfX0s'@; put 'cWc9ZnVuY3Rpb24oKXt2YXIgVWU9UShmdW5jdGlvbioobHQpe3ZhciBIdD15aWVsZCBHKGx0KTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoSHQpfSk7cmV0dXJuIGZ1bmN0aW9uKEh0KXtyZXR1cm4gVWUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxKdGU9W10sekE9KFVlLGx0KT0+e3ZhciBI'@; put 'dD0wO3JldHVybiBVZSYmKEh0fD0zNjUpLGx0JiYoSHR8PTE0NiksSHR9LFl0PXtyb290Om51bGwsbW91bnRzOltdLGRldmljZXM6e30sc3RyZWFtczpbXSxuZXh0SW5vZGU6MSxuYW1lVGFibGU6bnVsbCxjdXJyZW50UGF0aDoiLyIsaW5pdGlhbGl6ZWQ6ITEsaWdub3JlUGVybWlzc2lvbnM6'@; put 'ITAsZmlsZXN5c3RlbXM6bnVsbCxzeW5jRlNSZXF1ZXN0czowLEVycm5vRXJyb3I6Y2xhc3N7bmFtZT0iRXJybm9FcnJvciI7Y29uc3RydWN0b3IoVWUpe3RoaXMuZXJybm89VWV9fSxGU1N0cmVhbTpjbGFzc3tzaGFyZWQ9e307Z2V0IG9iamVjdCgpe3JldHVybiB0aGlzLm5vZGV9c2V0IG9i'@; put 'amVjdChVZSl7dGhpcy5ub2RlPVVlfWdldCBpc1JlYWQoKXtyZXR1cm4gMSE9KDIwOTcxNTUmdGhpcy5mbGFncyl9Z2V0IGlzV3JpdGUoKXtyZXR1cm4hISgyMDk3MTU1JnRoaXMuZmxhZ3MpfWdldCBpc0FwcGVuZCgpe3JldHVybiAxMDI0JnRoaXMuZmxhZ3N9Z2V0IGZsYWdzKCl7cmV0dXJu'@; put 'IHRoaXMuc2hhcmVkLmZsYWdzfXNldCBmbGFncyhVZSl7dGhpcy5zaGFyZWQuZmxhZ3M9VWV9Z2V0IHBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuc2hhcmVkLnBvc2l0aW9ufXNldCBwb3NpdGlvbihVZSl7dGhpcy5zaGFyZWQucG9zaXRpb249VWV9fSxGU05vZGU6Y2xhc3N7bm9kZV9vcHM9e307'@; put 'c3RyZWFtX29wcz17fTtyZWFkTW9kZT0zNjU7d3JpdGVNb2RlPTE0Njttb3VudGVkPW51bGw7Y29uc3RydWN0b3IoVWUsbHQsSHQsWHQpe1VlfHwoVWU9dGhpcyksdGhpcy5wYXJlbnQ9VWUsdGhpcy5tb3VudD1VZS5tb3VudCx0aGlzLmlkPVl0Lm5leHRJbm9kZSsrLHRoaXMubmFtZT1sdCx0'@; put 'aGlzLm1vZGU9SHQsdGhpcy5yZGV2PVh0LHRoaXMuYXRpbWU9dGhpcy5tdGltZT10aGlzLmN0aW1lPURhdGUubm93KCl9Z2V0IHJlYWQoKXtyZXR1cm4odGhpcy5tb2RlJnRoaXMucmVhZE1vZGUpPT09dGhpcy5yZWFkTW9kZX1zZXQgcmVhZChVZSl7VWU/dGhpcy5tb2RlfD10aGlzLnJlYWRN'@; put 'b2RlOnRoaXMubW9kZSY9fnRoaXMucmVhZE1vZGV9Z2V0IHdyaXRlKCl7cmV0dXJuKHRoaXMubW9kZSZ0aGlzLndyaXRlTW9kZSk9PT10aGlzLndyaXRlTW9kZX1zZXQgd3JpdGUoVWUpe1VlP3RoaXMubW9kZXw9dGhpcy53cml0ZU1vZGU6dGhpcy5tb2RlJj1+dGhpcy53cml0ZU1vZGV9Z2V0'@; put 'IGlzRm9sZGVyKCl7cmV0dXJuIFl0LmlzRGlyKHRoaXMubW9kZSl9Z2V0IGlzRGV2aWNlKCl7cmV0dXJuIFl0LmlzQ2hyZGV2KHRoaXMubW9kZSl9fSxsb29rdXBQYXRoKFVlLGx0PXt9KXtpZighVWUpdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoNDQpO2x0LmZvbGxvd19tb3VudD8/PSEwLFpp'@; put 'LmlzQWJzKFVlKXx8KFVlPVl0LmN3ZCgpKyIvIitVZSk7ZTpmb3IodmFyIEh0PTA7SHQ8NDA7SHQrKyl7Zm9yKHZhciBYdD1VZS5zcGxpdCgiLyIpLmZpbHRlcihScz0+ISFScyksa249WXQucm9vdCxscj0iLyIsSXI9MDtJcjxYdC5sZW5ndGg7SXIrKyl7dmFyICRyPUlyPT09WHQubGVuZ3Ro'@; put 'LTE7aWYoJHImJmx0LnBhcmVudClicmVhaztpZigiLiIhPT1YdFtJcl0pe2lmKCIuLiI9PT1YdFtJcl0pe2lmKGxyPVppLmRpcm5hbWUobHIpLFl0LmlzUm9vdChrbikpe1VlPWxyKyIvIitYdC5zbGljZShJcisxKS5qb2luKCIvIiksSHQtLTtjb250aW51ZSBlfWtuPWtuLnBhcmVudDtjb250'@; put 'aW51ZX1scj1aaS5qb2luMihscixYdFtJcl0pO3RyeXtrbj1ZdC5sb29rdXBOb2RlKGtuLFh0W0lyXSl9Y2F0Y2goUnMpe2lmKDQ0PT09UnM/LmVycm5vJiYkciYmbHQubm9lbnRfb2theSlyZXR1cm57cGF0aDpscn07dGhyb3cgUnN9aWYoWXQuaXNNb3VudHBvaW50KGtuKSYmKCEkcnx8bHQu'@; put 'Zm9sbG93X21vdW50KSYmKGtuPWtuLm1vdW50ZWQucm9vdCksWXQuaXNMaW5rKGtuLm1vZGUpJiYoISRyfHxsdC5mb2xsb3cpKXtpZigha24ubm9kZV9vcHMucmVhZGxpbmspdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoNTIpO3ZhciB2YT1rbi5ub2RlX29wcy5yZWFkbGluayhrbik7WmkuaXNB'@; put 'YnModmEpfHwodmE9WmkuZGlybmFtZShscikrIi8iK3ZhKSxVZT12YSsiLyIrWHQuc2xpY2UoSXIrMSkuam9pbigiLyIpO2NvbnRpbnVlIGV9fX1yZXR1cm57cGF0aDpscixub2RlOmtufX10aHJvdyBuZXcgWXQuRXJybm9FcnJvcigzMil9LGdldFBhdGgoVWUpe2Zvcih2YXIgbHQ7Oyl7aWYo'@; put 'WXQuaXNSb290KFVlKSl7dmFyIEh0PVVlLm1vdW50Lm1vdW50cG9pbnQ7cmV0dXJuIGx0PyIvIiE9PUh0W0h0Lmxlbmd0aC0xXT9gJHtIdH0vJHtsdH1gOkh0K2x0Okh0fWx0PWx0P2Ake1VlLm5hbWV9LyR7bHR9YDpVZS5uYW1lLFVlPVVlLnBhcmVudH19LGhhc2hOYW1lKFVlLGx0KXtmb3Io'@; put 'dmFyIEh0PTAsWHQ9MDtYdDxsdC5sZW5ndGg7WHQrKylIdD0oSHQ8PDUpLUh0K2x0LmNoYXJDb2RlQXQoWHQpfDA7cmV0dXJuKFVlK0h0Pj4+MCklWXQubmFtZVRhYmxlLmxlbmd0aH0saGFzaEFkZE5vZGUoVWUpe3ZhciBsdD1ZdC5oYXNoTmFtZShVZS5wYXJlbnQuaWQsVWUubmFtZSk7VWUu'@; put 'bmFtZV9uZXh0PVl0Lm5hbWVUYWJsZVtsdF0sWXQubmFtZVRhYmxlW2x0XT1VZX0saGFzaFJlbW92ZU5vZGUoVWUpe3ZhciBsdD1ZdC5oYXNoTmFtZShVZS5wYXJlbnQuaWQsVWUubmFtZSk7aWYoWXQubmFtZVRhYmxlW2x0XT09PVVlKVl0Lm5hbWVUYWJsZVtsdF09VWUubmFtZV9uZXh0O2Vs'@; put 'c2UgZm9yKHZhciBIdD1ZdC5uYW1lVGFibGVbbHRdO0h0Oyl7aWYoSHQubmFtZV9uZXh0PT09VWUpe0h0Lm5hbWVfbmV4dD1VZS5uYW1lX25leHQ7YnJlYWt9SHQ9SHQubmFtZV9uZXh0fX0sbG9va3VwTm9kZShVZSxsdCl7dmFyIEh0PVl0Lm1heUxvb2t1cChVZSk7aWYoSHQpdGhyb3cgbmV3'@; put 'IFl0LkVycm5vRXJyb3IoSHQpO2Zvcih2YXIgWHQ9WXQuaGFzaE5hbWUoVWUuaWQsbHQpLGtuPVl0Lm5hbWVUYWJsZVtYdF07a247a249a24ubmFtZV9uZXh0KWlmKGtuLnBhcmVudC5pZD09PVVlLmlkJiZrbi5uYW1lPT09bHQpcmV0dXJuIGtuO3JldHVybiBZdC5sb29rdXAoVWUsbHQpfSxj'@; put 'cmVhdGVOb2RlKFVlLGx0LEh0LFh0KXt2YXIga249bmV3IFl0LkZTTm9kZShVZSxsdCxIdCxYdCk7cmV0dXJuIFl0Lmhhc2hBZGROb2RlKGtuKSxrbn0sZGVzdHJveU5vZGUoVWUpe1l0Lmhhc2hSZW1vdmVOb2RlKFVlKX0saXNSb290OlVlPT5VZT09PVVlLnBhcmVudCxpc01vdW50cG9pbnQ6'@; put 'VWU9PiEhVWUubW91bnRlZCxpc0ZpbGU6VWU9PjMyNzY4PT0oNjE0NDAmVWUpLGlzRGlyOlVlPT4xNjM4ND09KDYxNDQwJlVlKSxpc0xpbms6VWU9PjQwOTYwPT0oNjE0NDAmVWUpLGlzQ2hyZGV2OlVlPT44MTkyPT0oNjE0NDAmVWUpLGlzQmxrZGV2OlVlPT4yNDU3Nj09KDYxNDQwJlVlKSxp'@; put 'c0ZJRk86VWU9PjQwOTY9PSg2MTQ0MCZVZSksaXNTb2NrZXQ6VWU9PiEoNDkxNTImflVlKSxmbGFnc1RvUGVybWlzc2lvblN0cmluZyhVZSl7dmFyIGx0PVsiciIsInciLCJydyJdWzMmVWVdO3JldHVybiA1MTImVWUmJihsdCs9InciKSxsdH0sbm9kZVBlcm1pc3Npb25zOihVZSxsdCk9Pll0'@; put 'Lmlnbm9yZVBlcm1pc3Npb25zPzA6bHQuaW5jbHVkZXMoInIiKSYmISgyOTImVWUubW9kZSl8fGx0LmluY2x1ZGVzKCJ3IikmJiEoMTQ2JlVlLm1vZGUpfHxsdC5pbmNsdWRlcygieCIpJiYhKDczJlVlLm1vZGUpPzI6MCxtYXlMb29rdXA6VWU9Pll0LmlzRGlyKFVlLm1vZGUpP1l0Lm5vZGVQ'@; put 'ZXJtaXNzaW9ucyhVZSwieCIpfHwoVWUubm9kZV9vcHMubG9va3VwPzA6Mik6NTQsbWF5Q3JlYXRlKFVlLGx0KXtpZighWXQuaXNEaXIoVWUubW9kZSkpcmV0dXJuIDU0O3RyeXtyZXR1cm4gWXQubG9va3VwTm9kZShVZSxsdCksMjB9Y2F0Y2h7fXJldHVybiBZdC5ub2RlUGVybWlzc2lvbnMo'@; put 'VWUsInd4Iil9LG1heURlbGV0ZShVZSxsdCxIdCl7dmFyIFh0O3RyeXtYdD1ZdC5sb29rdXBOb2RlKFVlLGx0KX1jYXRjaChscil7cmV0dXJuIGxyLmVycm5vfXZhciBrbj1ZdC5ub2RlUGVybWlzc2lvbnMoVWUsInd4Iik7aWYoa24pcmV0dXJuIGtuO2lmKEh0KXtpZighWXQuaXNEaXIoWHQu'@; put 'bW9kZSkpcmV0dXJuIDU0O2lmKFl0LmlzUm9vdChYdCl8fFl0LmdldFBhdGgoWHQpPT09WXQuY3dkKCkpcmV0dXJuIDEwfWVsc2UgaWYoWXQuaXNEaXIoWHQubW9kZSkpcmV0dXJuIDMxO3JldHVybiAwfSxtYXlPcGVuOihVZSxsdCk9PlVlP1l0LmlzTGluayhVZS5tb2RlKT8zMjpZdC5pc0Rp'@; put 'cihVZS5tb2RlKSYmKCJyIiE9PVl0LmZsYWdzVG9QZXJtaXNzaW9uU3RyaW5nKGx0KXx8NTc2Jmx0KT8zMTpZdC5ub2RlUGVybWlzc2lvbnMoVWUsWXQuZmxhZ3NUb1Blcm1pc3Npb25TdHJpbmcobHQpKTo0NCxjaGVja09wRXhpc3RzKFVlLGx0KXtpZighVWUpdGhyb3cgbmV3IFl0LkVycm5v'@; put 'RXJyb3IobHQpO3JldHVybiBVZX0sTUFYX09QRU5fRkRTOjQwOTYsbmV4dGZkKCl7Zm9yKHZhciBVZT0wO1VlPD1ZdC5NQVhfT1BFTl9GRFM7VWUrKylpZighWXQuc3RyZWFtc1tVZV0pcmV0dXJuIFVlO3Rocm93IG5ldyBZdC5FcnJub0Vycm9yKDMzKX0sZ2V0U3RyZWFtQ2hlY2tlZChVZSl7'@; put 'dmFyIGx0PVl0LmdldFN0cmVhbShVZSk7aWYoIWx0KXRocm93IG5ldyBZdC5FcnJub0Vycm9yKDgpO3JldHVybiBsdH0sZ2V0U3RyZWFtOlVlPT5ZdC5zdHJlYW1zW1VlXSxjcmVhdGVTdHJlYW06KFVlLGx0PS0xKT0+KFVlPU9iamVjdC5hc3NpZ24obmV3IFl0LkZTU3RyZWFtLFVlKSwtMT09'@; put 'bHQmJihsdD1ZdC5uZXh0ZmQoKSksVWUuZmQ9bHQsWXQuc3RyZWFtc1tsdF09VWUsVWUpLGNsb3NlU3RyZWFtKFVlKXtZdC5zdHJlYW1zW1VlXT1udWxsfSxkdXBTdHJlYW0oVWUsbHQ9LTEpe3ZhciBIdD1ZdC5jcmVhdGVTdHJlYW0oVWUsbHQpO3JldHVybiBIdC5zdHJlYW1fb3BzPy5kdXA/'@; put 'LihIdCksSHR9LGRvU2V0QXR0cihVZSxsdCxIdCl7dmFyIFh0PVVlPy5zdHJlYW1fb3BzLnNldGF0dHIsa249WHQ/VWU6bHQ7WHQ/Pz1sdC5ub2RlX29wcy5zZXRhdHRyLFl0LmNoZWNrT3BFeGlzdHMoWHQsNjMpLFh0KGtuLEh0KX0sY2hyZGV2X3N0cmVhbV9vcHM6e29wZW4oVWUpe3ZhciBs'@; put 'dD1ZdC5nZXREZXZpY2UoVWUubm9kZS5yZGV2KTtVZS5zdHJlYW1fb3BzPWx0LnN0cmVhbV9vcHMsVWUuc3RyZWFtX29wcy5vcGVuPy4oVWUpfSxsbHNlZWsoKXt0aHJvdyBuZXcgWXQuRXJybm9FcnJvcig3MCl9fSxtYWpvcjpVZT0+VWU+PjgsbWlub3I6VWU9PjI1NSZVZSxtYWtlZGV2OihV'@; put 'ZSxsdCk9PlVlPDw4fGx0LHJlZ2lzdGVyRGV2aWNlKFVlLGx0KXtZdC5kZXZpY2VzW1VlXT17c3RyZWFtX29wczpsdH19LGdldERldmljZTpVZT0+WXQuZGV2aWNlc1tVZV0sZ2V0TW91bnRzKFVlKXtmb3IodmFyIGx0PVtdLEh0PVtVZV07SHQubGVuZ3RoOyl7dmFyIFh0PUh0LnBvcCgpO2x0'@; put 'LnB1c2goWHQpLEh0LnB1c2goLi4uWHQubW91bnRzKX1yZXR1cm4gbHR9LHN5bmNmcyhVZSxsdCl7ImZ1bmN0aW9uIj09dHlwZW9mIFVlJiYobHQ9VWUsVWU9ITEpLFl0LnN5bmNGU1JlcXVlc3RzKyssWXQuc3luY0ZTUmVxdWVzdHM+MSYmeWUoYHdhcm5pbmc6ICR7WXQuc3luY0ZTUmVxdWVz'@; put 'dHN9IEZTLnN5bmNmcyBvcGVyYXRpb25zIGluIGZsaWdodCBhdCBvbmNlLCBwcm9iYWJseSBqdXN0IGRvaW5nIGV4dHJhIHdvcmtgKTt2YXIgSHQ9WXQuZ2V0TW91bnRzKFl0LnJvb3QubW91bnQpLFh0PTA7ZnVuY3Rpb24ga24oSXIpe3JldHVybiBZdC5zeW5jRlNSZXF1ZXN0cy0tLGx0KEly'@; put 'KX1mdW5jdGlvbiBscihJcil7aWYoSXIpcmV0dXJuIGxyLmVycm9yZWQ/dm9pZCAwOihsci5lcnJvcmVkPSEwLGtuKElyKSk7KytYdD49SHQubGVuZ3RoJiZrbihudWxsKX1IdC5mb3JFYWNoKElyPT57aWYoIUlyLnR5cGUuc3luY2ZzKXJldHVybiBscihudWxsKTtJci50eXBlLnN5bmNmcyhJ'@; put 'cixVZSxscil9KX0sbW91bnQoVWUsbHQsSHQpe3ZhciBscixYdD0iLyI9PT1IdCxrbj0hSHQ7aWYoWHQmJll0LnJvb3QpdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoMTApO2lmKCFYdCYmIWtuKXt2YXIgSXI9WXQubG9va3VwUGF0aChIdCx7Zm9sbG93X21vdW50OiExfSk7aWYoSHQ9SXIucGF0'@; put 'aCxZdC5pc01vdW50cG9pbnQobHI9SXIubm9kZSkpdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoMTApO2lmKCFZdC5pc0Rpcihsci5tb2RlKSl0aHJvdyBuZXcgWXQuRXJybm9FcnJvcig1NCl9dmFyICRyPXt0eXBlOlVlLG9wdHM6bHQsbW91bnRwb2ludDpIdCxtb3VudHM6W119LHZhPVVlLm1v'@; put 'dW50KCRyKTtyZXR1cm4gdmEubW91bnQ9JHIsJHIucm9vdD12YSxYdD9ZdC5yb290PXZhOmxyJiYobHIubW91bnRlZD0kcixsci5tb3VudCYmbHIubW91bnQubW91bnRzLnB1c2goJHIpKSx2YX0sdW5tb3VudChVZSl7dmFyIGx0PVl0Lmxvb2t1cFBhdGgoVWUse2ZvbGxvd19tb3VudDohMX0p'@; put 'O2lmKCFZdC5pc01vdW50cG9pbnQobHQubm9kZSkpdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoMjgpO3ZhciBIdD1sdC5ub2RlLFh0PUh0Lm1vdW50ZWQsa249WXQuZ2V0TW91bnRzKFh0KTtPYmplY3Qua2V5cyhZdC5uYW1lVGFibGUpLmZvckVhY2goSXI9Pntmb3IodmFyICRyPVl0Lm5hbWVU'@; put 'YWJsZVtJcl07JHI7KXt2YXIgdmE9JHIubmFtZV9uZXh0O2tuLmluY2x1ZGVzKCRyLm1vdW50KSYmWXQuZGVzdHJveU5vZGUoJHIpLCRyPXZhfX0pLEh0Lm1vdW50ZWQ9bnVsbDt2YXIgbHI9SHQubW91bnQubW91bnRzLmluZGV4T2YoWHQpO0h0Lm1vdW50Lm1vdW50cy5zcGxpY2UobHIsMSl9'@; put 'LGxvb2t1cDooVWUsbHQpPT5VZS5ub2RlX29wcy5sb29rdXAoVWUsbHQpLG1rbm9kKFVlLGx0LEh0KXt2YXIga249WXQubG9va3VwUGF0aChVZSx7cGFyZW50OiEwfSkubm9kZSxscj1aaS5iYXNlbmFtZShVZSk7aWYoIWxyKXRocm93IG5ldyBZdC5FcnJub0Vycm9yKDI4KTtpZigiLiI9PT1s'@; put 'cnx8Ii4uIj09PWxyKXRocm93IG5ldyBZdC5FcnJub0Vycm9yKDIwKTt2YXIgSXI9WXQubWF5Q3JlYXRlKGtuLGxyKTtpZihJcil0aHJvdyBuZXcgWXQuRXJybm9FcnJvcihJcik7aWYoIWtuLm5vZGVfb3BzLm1rbm9kKXRocm93IG5ldyBZdC5FcnJub0Vycm9yKDYzKTtyZXR1cm4ga24ubm9k'@; put 'ZV9vcHMubWtub2Qoa24sbHIsbHQsSHQpfSxzdGF0ZnM6VWU9Pll0LnN0YXRmc05vZGUoWXQubG9va3VwUGF0aChVZSx7Zm9sbG93OiEwfSkubm9kZSksc3RhdGZzU3RyZWFtOlVlPT5ZdC5zdGF0ZnNOb2RlKFVlLm5vZGUpLHN0YXRmc05vZGUoVWUpe3ZhciBsdD17YnNpemU6NDA5NixmcnNp'@; put 'emU6NDA5NixibG9ja3M6MWU2LGJmcmVlOjVlNSxiYXZhaWw6NWU1LGZpbGVzOll0Lm5leHRJbm9kZSxmZnJlZTpZdC5uZXh0SW5vZGUtMSxmc2lkOjQyLGZsYWdzOjIsbmFtZWxlbjoyNTV9O3JldHVybiBVZS5ub2RlX29wcy5zdGF0ZnMmJk9iamVjdC5hc3NpZ24obHQsVWUubm9kZV9vcHMu'@; put 'c3RhdGZzKFVlLm1vdW50Lm9wdHMucm9vdCkpLGx0fSxjcmVhdGU6KFVlLGx0PTQzOCk9PihsdCY9NDA5NSxZdC5ta25vZChVZSxsdHw9MzI3NjgsMCkpLG1rZGlyOihVZSxsdD01MTEpPT4obHQmPTEwMjMsWXQubWtub2QoVWUsbHR8PTE2Mzg0LDApKSxta2RpclRyZWUoVWUsbHQpe3ZhciBI'@; put 'dD1VZS5zcGxpdCgiLyIpLFh0PSIiO2Zvcih2YXIga24gb2YgSHQpaWYoa24peyhYdHx8WmkuaXNBYnMoVWUpKSYmKFh0Kz0iLyIpLFh0Kz1rbjt0cnl7WXQubWtkaXIoWHQsbHQpfWNhdGNoKGxyKXtpZigyMCE9bHIuZXJybm8pdGhyb3cgbHJ9fX0sbWtkZXY6KFVlLGx0LEh0KT0+KHR5cGVv'@; put 'ZiBIdD4idSImJihIdD1sdCxsdD00MzgpLFl0Lm1rbm9kKFVlLGx0fD04MTkyLEh0KSksc3ltbGluayhVZSxsdCl7aWYoIVdzLnJlc29sdmUoVWUpKXRocm93IG5ldyBZdC5FcnJub0Vycm9yKDQ0KTt2YXIgWHQ9WXQubG9va3VwUGF0aChsdCx7cGFyZW50OiEwfSkubm9kZTtpZighWHQpdGhy'@; put 'b3cgbmV3IFl0LkVycm5vRXJyb3IoNDQpO3ZhciBrbj1aaS5iYXNlbmFtZShsdCksbHI9WXQubWF5Q3JlYXRlKFh0LGtuKTtpZihscil0aHJvdyBuZXcgWXQuRXJybm9FcnJvcihscik7aWYoIVh0Lm5vZGVfb3BzLnN5bWxpbmspdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoNjMpO3JldHVybiBY'@; put 'dC5ub2RlX29wcy5zeW1saW5rKFh0LGtuLFVlKX0scmVuYW1lKFVlLGx0KXt2YXIgJHIsdmEsSHQ9WmkuZGlybmFtZShVZSksWHQ9WmkuZGlybmFtZShsdCksa249WmkuYmFzZW5hbWUoVWUpLGxyPVppLmJhc2VuYW1lKGx0KTtpZigkcj1ZdC5sb29rdXBQYXRoKFVlLHtwYXJlbnQ6ITB9KS5u'@; put 'b2RlLHZhPVl0Lmxvb2t1cFBhdGgobHQse3BhcmVudDohMH0pLm5vZGUsISRyfHwhdmEpdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoNDQpO2lmKCRyLm1vdW50IT09dmEubW91bnQpdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoNzUpO3ZhciBEbCxScz1ZdC5sb29rdXBOb2RlKCRyLGtuKSxLbz1X'@; put 'cy5yZWxhdGl2ZShVZSxYdCk7aWYoIi4iIT09S28uY2hhckF0KDApKXRocm93IG5ldyBZdC5FcnJub0Vycm9yKDI4KTtpZigiLiIhPT0oS289V3MucmVsYXRpdmUobHQsSHQpKS5jaGFyQXQoMCkpdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoNTUpO3RyeXtEbD1ZdC5sb29rdXBOb2RlKHZhLGxy'@; put 'KX1jYXRjaHt9aWYoUnMhPT1EbCl7dmFyIHBvPVl0LmlzRGlyKFJzLm1vZGUpLHhzPVl0Lm1heURlbGV0ZSgkcixrbixwbyk7aWYoeHMpdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoeHMpO2lmKHhzPURsP1l0Lm1heURlbGV0ZSh2YSxscixwbyk6WXQubWF5Q3JlYXRlKHZhLGxyKSl0aHJvdyBu'@; put 'ZXcgWXQuRXJybm9FcnJvcih4cyk7aWYoISRyLm5vZGVfb3BzLnJlbmFtZSl0aHJvdyBuZXcgWXQuRXJybm9FcnJvcig2Myk7aWYoWXQuaXNNb3VudHBvaW50KFJzKXx8RGwmJll0LmlzTW91bnRwb2ludChEbCkpdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoMTApO2lmKHZhIT09JHImJih4cz1Z'@; put 'dC5ub2RlUGVybWlzc2lvbnMoJHIsInciKSkpdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoeHMpO1l0Lmhhc2hSZW1vdmVOb2RlKFJzKTt0cnl7JHIubm9kZV9vcHMucmVuYW1lKFJzLHZhLGxyKSxScy5wYXJlbnQ9dmF9Y2F0Y2goWG8pe3Rocm93IFhvfWZpbmFsbHl7WXQuaGFzaEFkZE5vZGUo'@; put 'UnMpfX19LHJtZGlyKFVlKXt2YXIgSHQ9WXQubG9va3VwUGF0aChVZSx7cGFyZW50OiEwfSkubm9kZSxYdD1aaS5iYXNlbmFtZShVZSksa249WXQubG9va3VwTm9kZShIdCxYdCksbHI9WXQubWF5RGVsZXRlKEh0LFh0LCEwKTtpZihscil0aHJvdyBuZXcgWXQuRXJybm9FcnJvcihscik7aWYo'@; put 'IUh0Lm5vZGVfb3BzLnJtZGlyKXRocm93IG5ldyBZdC5FcnJub0Vycm9yKDYzKTtpZihZdC5pc01vdW50cG9pbnQoa24pKXRocm93IG5ldyBZdC5FcnJub0Vycm9yKDEwKTtIdC5ub2RlX29wcy5ybWRpcihIdCxYdCksWXQuZGVzdHJveU5vZGUoa24pfSxyZWFkZGlyKFVlKXt2YXIgSHQ9WXQu'@; put 'bG9va3VwUGF0aChVZSx7Zm9sbG93OiEwfSkubm9kZTtyZXR1cm4gWXQuY2hlY2tPcEV4aXN0cyhIdC5ub2RlX29wcy5yZWFkZGlyLDU0KShIdCl9LHVubGluayhVZSl7dmFyIEh0PVl0Lmxvb2t1cFBhdGgoVWUse3BhcmVudDohMH0pLm5vZGU7aWYoIUh0KXRocm93IG5ldyBZdC5FcnJub0Vy'@; put 'cm9yKDQ0KTt2YXIgWHQ9WmkuYmFzZW5hbWUoVWUpLGtuPVl0Lmxvb2t1cE5vZGUoSHQsWHQpLGxyPVl0Lm1heURlbGV0ZShIdCxYdCwhMSk7aWYobHIpdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IobHIpO2lmKCFIdC5ub2RlX29wcy51bmxpbmspdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoNjMp'@; put 'O2lmKFl0LmlzTW91bnRwb2ludChrbikpdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoMTApO0h0Lm5vZGVfb3BzLnVubGluayhIdCxYdCksWXQuZGVzdHJveU5vZGUoa24pfSxyZWFkbGluayhVZSl7dmFyIEh0PVl0Lmxvb2t1cFBhdGgoVWUpLm5vZGU7aWYoIUh0KXRocm93IG5ldyBZdC5FcnJu'@; put 'b0Vycm9yKDQ0KTtpZighSHQubm9kZV9vcHMucmVhZGxpbmspdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoMjgpO3JldHVybiBIdC5ub2RlX29wcy5yZWFkbGluayhIdCl9LHN0YXQoVWUsbHQpe3ZhciBYdD1ZdC5sb29rdXBQYXRoKFVlLHtmb2xsb3c6IWx0fSkubm9kZTtyZXR1cm4gWXQuY2hl'@; put 'Y2tPcEV4aXN0cyhYdC5ub2RlX29wcy5nZXRhdHRyLDYzKShYdCl9LGZzdGF0KFVlKXt2YXIgbHQ9WXQuZ2V0U3RyZWFtQ2hlY2tlZChVZSksSHQ9bHQubm9kZSxYdD1sdC5zdHJlYW1fb3BzLmdldGF0dHIsa249WHQ/bHQ6SHQ7cmV0dXJuIFh0Pz89SHQubm9kZV9vcHMuZ2V0YXR0cixZdC5j'@; put 'aGVja09wRXhpc3RzKFh0LDYzKSxYdChrbil9LGxzdGF0OlVlPT5ZdC5zdGF0KFVlLCEwKSxkb0NobW9kKFVlLGx0LEh0LFh0KXtZdC5kb1NldEF0dHIoVWUsbHQse21vZGU6NDA5NSZIdHwtNDA5NiZsdC5tb2RlLGN0aW1lOkRhdGUubm93KCksZG9udEZvbGxvdzpYdH0pfSxjaG1vZChVZSxs'@; put 'dCxIdCl7dmFyIFh0O1h0PSJzdHJpbmciPT10eXBlb2YgVWU/WXQubG9va3VwUGF0aChVZSx7Zm9sbG93OiFIdH0pLm5vZGU6VWUsWXQuZG9DaG1vZChudWxsLFh0LGx0LEh0KX0sbGNobW9kKFVlLGx0KXtZdC5jaG1vZChVZSxsdCwhMCl9LGZjaG1vZChVZSxsdCl7dmFyIEh0PVl0LmdldFN0'@; put 'cmVhbUNoZWNrZWQoVWUpO1l0LmRvQ2htb2QoSHQsSHQubm9kZSxsdCwhMSl9LGRvQ2hvd24oVWUsbHQsSHQpe1l0LmRvU2V0QXR0cihVZSxsdCx7dGltZXN0YW1wOkRhdGUubm93KCksZG9udEZvbGxvdzpIdH0pfSxjaG93bihVZSxsdCxIdCxYdCl7dmFyIGtuO2tuPSJzdHJpbmciPT10eXBl'@; put 'b2YgVWU/WXQubG9va3VwUGF0aChVZSx7Zm9sbG93OiFYdH0pLm5vZGU6VWUsWXQuZG9DaG93bihudWxsLGtuLFh0KX0sbGNob3duKFVlLGx0LEh0KXtZdC5jaG93bihVZSxsdCxIdCwhMCl9LGZjaG93bihVZSxsdCxIdCl7dmFyIFh0PVl0LmdldFN0cmVhbUNoZWNrZWQoVWUpO1l0LmRvQ2hv'@; put 'd24oWHQsWHQubm9kZSwhMSl9LGRvVHJ1bmNhdGUoVWUsbHQsSHQpe2lmKFl0LmlzRGlyKGx0Lm1vZGUpKXRocm93IG5ldyBZdC5FcnJub0Vycm9yKDMxKTtpZighWXQuaXNGaWxlKGx0Lm1vZGUpKXRocm93IG5ldyBZdC5FcnJub0Vycm9yKDI4KTt2YXIgWHQ9WXQubm9kZVBlcm1pc3Npb25z'@; put 'KGx0LCJ3Iik7aWYoWHQpdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoWHQpO1l0LmRvU2V0QXR0cihVZSxsdCx7c2l6ZTpIdCx0aW1lc3RhbXA6RGF0ZS5ub3coKX0pfSx0cnVuY2F0ZShVZSxsdCl7aWYobHQ8MCl0aHJvdyBuZXcgWXQuRXJybm9FcnJvcigyOCk7dmFyIEh0O0h0PSJzdHJpbmci'@; put 'PT10eXBlb2YgVWU/WXQubG9va3VwUGF0aChVZSx7Zm9sbG93OiEwfSkubm9kZTpVZSxZdC5kb1RydW5jYXRlKG51bGwsSHQsbHQpfSxmdHJ1bmNhdGUoVWUsbHQpe3ZhciBIdD1ZdC5nZXRTdHJlYW1DaGVja2VkKFVlKTtpZihsdDwwfHwhKDIwOTcxNTUmSHQuZmxhZ3MpKXRocm93IG5ldyBZ'@; put 'dC5FcnJub0Vycm9yKDI4KTtZdC5kb1RydW5jYXRlKEh0LEh0Lm5vZGUsbHQpfSx1dGltZShVZSxsdCxIdCl7dmFyIGtuPVl0Lmxvb2t1cFBhdGgoVWUse2ZvbGxvdzohMH0pLm5vZGU7WXQuY2hlY2tPcEV4aXN0cyhrbi5ub2RlX29wcy5zZXRhdHRyLDYzKShrbix7YXRpbWU6bHQsbXRpbWU6'@; put 'SHR9KX0sb3BlbihVZSxsdCxIdD00Mzgpe2lmKCIiPT09VWUpdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoNDQpO3ZhciBYdCxrbjtpZihsdD0ic3RyaW5nIj09dHlwZW9mIGx0PyhVZT0+e3ZhciBIdD17cjowLCJyKyI6Mix3OjU3NywidysiOjU3OCxhOjEwODksImErIjoxMDkwfVtVZV07aWYo'@; put 'dHlwZW9mIEh0PiJ1Iil0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gZmlsZSBvcGVuIG1vZGU6ICR7VWV9YCk7cmV0dXJuIEh0fSkobHQpOmx0LEh0PTY0Jmx0PzQwOTUmSHR8MzI3Njg6MCwib2JqZWN0Ij09dHlwZW9mIFVlKVh0PVVlO2Vsc2V7a249VWUuZW5kc1dpdGgoIi8iKTt2YXIgbHI9'@; put 'WXQubG9va3VwUGF0aChVZSx7Zm9sbG93OiEoMTMxMDcyJmx0KSxub2VudF9va2F5OiEwfSk7WHQ9bHIubm9kZSxVZT1sci5wYXRofXZhciBJcj0hMTtpZig2NCZsdClpZihYdCl7aWYoMTI4Jmx0KXRocm93IG5ldyBZdC5FcnJub0Vycm9yKDIwKX1lbHNle2lmKGtuKXRocm93IG5ldyBZdC5F'@; put 'cnJub0Vycm9yKDMxKTtYdD1ZdC5ta25vZChVZSw1MTF8SHQsMCksSXI9ITB9aWYoIVh0KXRocm93IG5ldyBZdC5FcnJub0Vycm9yKDQ0KTtpZihZdC5pc0NocmRldihYdC5tb2RlKSYmKGx0Jj0tNTEzKSw2NTUzNiZsdCYmIVl0LmlzRGlyKFh0Lm1vZGUpKXRocm93IG5ldyBZdC5FcnJub0Vy'@; put 'cm9yKDU0KTtpZighSXIpe3ZhciAkcj1ZdC5tYXlPcGVuKFh0LGx0KTtpZigkcil0aHJvdyBuZXcgWXQuRXJybm9FcnJvcigkcil9NTEyJmx0JiYhSXImJll0LnRydW5jYXRlKFh0LDApLGx0Jj0tMTMxNzEzO3ZhciB2YT1ZdC5jcmVhdGVTdHJlYW0oe25vZGU6WHQscGF0aDpZdC5nZXRQYXRo'@; put 'KFh0KSxmbGFnczpsdCxzZWVrYWJsZTohMCxwb3NpdGlvbjowLHN0cmVhbV9vcHM6WHQuc3RyZWFtX29wcyx1bmdvdHRlbjpbXSxlcnJvcjohMX0pO3JldHVybiB2YS5zdHJlYW1fb3BzLm9wZW4mJnZhLnN0cmVhbV9vcHMub3Blbih2YSksSXImJll0LmNobW9kKFh0LDUxMSZIdCksdmF9LGNs'@; put 'b3NlKFVlKXtpZihZdC5pc0Nsb3NlZChVZSkpdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoOCk7VWUuZ2V0ZGVudHMmJihVZS5nZXRkZW50cz1udWxsKTt0cnl7VWUuc3RyZWFtX29wcy5jbG9zZSYmVWUuc3RyZWFtX29wcy5jbG9zZShVZSl9Y2F0Y2gobHQpe3Rocm93IGx0fWZpbmFsbHl7WXQu'@; put 'Y2xvc2VTdHJlYW0oVWUuZmQpfVVlLmZkPW51bGx9LGlzQ2xvc2VkOlVlPT5udWxsPT09VWUuZmQsbGxzZWVrKFVlLGx0LEh0KXtpZihZdC5pc0Nsb3NlZChVZSkpdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoOCk7aWYoIVVlLnNlZWthYmxlfHwhVWUuc3RyZWFtX29wcy5sbHNlZWspdGhyb3cg'@; put 'bmV3IFl0LkVycm5vRXJyb3IoNzApO2lmKDAhPUh0JiYxIT1IdCYmMiE9SHQpdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoMjgpO3JldHVybiBVZS5wb3NpdGlvbj1VZS5zdHJlYW1fb3BzLmxsc2VlayhVZSxsdCxIdCksVWUudW5nb3R0ZW49W10sVWUucG9zaXRpb259LHJlYWQoVWUsbHQsSHQs'@; put 'WHQsa24pe2lmKFh0PDB8fGtuPDApdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoMjgpO2lmKFl0LmlzQ2xvc2VkKFVlKSl0aHJvdyBuZXcgWXQuRXJybm9FcnJvcig4KTtpZigxPT0oMjA5NzE1NSZVZS5mbGFncykpdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoOCk7aWYoWXQuaXNEaXIoVWUubm9k'@; put 'ZS5tb2RlKSl0aHJvdyBuZXcgWXQuRXJybm9FcnJvcigzMSk7aWYoIVVlLnN0cmVhbV9vcHMucmVhZCl0aHJvdyBuZXcgWXQuRXJybm9FcnJvcigyOCk7dmFyIGxyPXR5cGVvZiBrbjwidSI7aWYobHIpe2lmKCFVZS5zZWVrYWJsZSl0aHJvdyBuZXcgWXQuRXJybm9FcnJvcig3MCl9ZWxzZSBr'@; put 'bj1VZS5wb3NpdGlvbjt2YXIgSXI9VWUuc3RyZWFtX29wcy5yZWFkKFVlLGx0LEh0LFh0LGtuKTtyZXR1cm4gbHJ8fChVZS5wb3NpdGlvbis9SXIpLElyfSx3cml0ZShVZSxsdCxIdCxYdCxrbixscil7aWYoWHQ8MHx8a248MCl0aHJvdyBuZXcgWXQuRXJybm9FcnJvcigyOCk7aWYoWXQuaXND'@; put 'bG9zZWQoVWUpKXRocm93IG5ldyBZdC5FcnJub0Vycm9yKDgpO2lmKCEoMjA5NzE1NSZVZS5mbGFncykpdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoOCk7aWYoWXQuaXNEaXIoVWUubm9kZS5tb2RlKSl0aHJvdyBuZXcgWXQuRXJybm9FcnJvcigzMSk7aWYoIVVlLnN0cmVhbV9vcHMud3JpdGUp'@; put 'dGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoMjgpO1VlLnNlZWthYmxlJiYxMDI0JlVlLmZsYWdzJiZZdC5sbHNlZWsoVWUsMCwyKTt2YXIgSXI9dHlwZW9mIGtuPCJ1IjtpZihJcil7aWYoIVVlLnNlZWthYmxlKXRocm93IG5ldyBZdC5FcnJub0Vycm9yKDcwKX1lbHNlIGtuPVVlLnBvc2l0aW9u'@; put 'O3ZhciAkcj1VZS5zdHJlYW1fb3BzLndyaXRlKFVlLGx0LEh0LFh0LGtuLGxyKTtyZXR1cm4gSXJ8fChVZS5wb3NpdGlvbis9JHIpLCRyfSxtbWFwKFVlLGx0LEh0LFh0LGtuKXtpZigyJlh0JiYhKDIma24pJiYyIT0oMjA5NzE1NSZVZS5mbGFncykpdGhyb3cgbmV3IFl0LkVycm5vRXJyb3Io'@; put 'Mik7aWYoMT09KDIwOTcxNTUmVWUuZmxhZ3MpKXRocm93IG5ldyBZdC5FcnJub0Vycm9yKDIpO2lmKCFVZS5zdHJlYW1fb3BzLm1tYXApdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoNDMpO2lmKCFsdCl0aHJvdyBuZXcgWXQuRXJybm9FcnJvcigyOCk7cmV0dXJuIFVlLnN0cmVhbV9vcHMubW1h'@; put 'cChVZSxsdCxIdCxYdCxrbil9LG1zeW5jOihVZSxsdCxIdCxYdCxrbik9PlVlLnN0cmVhbV9vcHMubXN5bmM/VWUuc3RyZWFtX29wcy5tc3luYyhVZSxsdCxIdCxYdCxrbik6MCxpb2N0bChVZSxsdCxIdCl7aWYoIVVlLnN0cmVhbV9vcHMuaW9jdGwpdGhyb3cgbmV3IFl0LkVycm5vRXJyb3Io'@; put 'NTkpO3JldHVybiBVZS5zdHJlYW1fb3BzLmlvY3RsKFVlLGx0LEh0KX0scmVhZEZpbGUoVWUsbHQ9e30pe2lmKGx0LmZsYWdzPWx0LmZsYWdzfHwwLGx0LmVuY29kaW5nPWx0LmVuY29kaW5nfHwiYmluYXJ5IiwidXRmOCIhPT1sdC5lbmNvZGluZyYmImJpbmFyeSIhPT1sdC5lbmNvZGluZyl0'@; put 'aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZW5jb2RpbmcgdHlwZSAiJHtsdC5lbmNvZGluZ30iYCk7dmFyIEh0PVl0Lm9wZW4oVWUsbHQuZmxhZ3MpLGtuPVl0LnN0YXQoVWUpLnNpemUsbHI9bmV3IFVpbnQ4QXJyYXkoa24pO3JldHVybiBZdC5yZWFkKEh0LGxyLDAsa24sMCksInV0ZjgiPT09'@; put 'bHQuZW5jb2RpbmcmJihscj1mbyhscikpLFl0LmNsb3NlKEh0KSxscn0sd3JpdGVGaWxlKFVlLGx0LEh0PXt9KXtIdC5mbGFncz1IdC5mbGFnc3x8NTc3O3ZhciBYdD1ZdC5vcGVuKFVlLEh0LmZsYWdzLEh0Lm1vZGUpO2lmKCJzdHJpbmciPT10eXBlb2YgbHQmJihsdD1uZXcgVWludDhBcnJh'@; put 'eShEYyhsdCwhMCkpKSwhQXJyYXlCdWZmZXIuaXNWaWV3KGx0KSl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGRhdGEgdHlwZSIpO1l0LndyaXRlKFh0LGx0LDAsbHQuYnl0ZUxlbmd0aCx2b2lkIDAsSHQuY2FuT3duKSxZdC5jbG9zZShYdCl9LGN3ZDooKT0+WXQuY3VycmVudFBhdGgs'@; put 'Y2hkaXIoVWUpe3ZhciBsdD1ZdC5sb29rdXBQYXRoKFVlLHtmb2xsb3c6ITB9KTtpZihudWxsPT09bHQubm9kZSl0aHJvdyBuZXcgWXQuRXJybm9FcnJvcig0NCk7aWYoIVl0LmlzRGlyKGx0Lm5vZGUubW9kZSkpdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoNTQpO3ZhciBIdD1ZdC5ub2RlUGVy'@; put 'bWlzc2lvbnMobHQubm9kZSwieCIpO2lmKEh0KXRocm93IG5ldyBZdC5FcnJub0Vycm9yKEh0KTtZdC5jdXJyZW50UGF0aD1sdC5wYXRofSxjcmVhdGVEZWZhdWx0RGlyZWN0b3JpZXMoKXtZdC5ta2RpcigiL3RtcCIpLFl0Lm1rZGlyKCIvaG9tZSIpLFl0Lm1rZGlyKCIvaG9tZS93ZWJfdXNl'@; put 'ciIpfSxjcmVhdGVEZWZhdWx0RGV2aWNlcygpe1l0Lm1rZGlyKCIvZGV2IiksWXQucmVnaXN0ZXJEZXZpY2UoWXQubWFrZWRldigxLDMpLHtyZWFkOigpPT4wLHdyaXRlOihYdCxrbixscixJciwkcik9PklyLGxsc2VlazooKT0+MH0pLFl0Lm1rZGV2KCIvZGV2L251bGwiLFl0Lm1ha2VkZXYo'@; put 'MSwzKSksJG8ucmVnaXN0ZXIoWXQubWFrZWRldig1LDApLCRvLmRlZmF1bHRfdHR5X29wcyksJG8ucmVnaXN0ZXIoWXQubWFrZWRldig2LDApLCRvLmRlZmF1bHRfdHR5MV9vcHMpLFl0Lm1rZGV2KCIvZGV2L3R0eSIsWXQubWFrZWRldig1LDApKSxZdC5ta2RldigiL2Rldi90dHkxIixZdC5t'@; put 'YWtlZGV2KDYsMCkpO3ZhciBVZT1uZXcgVWludDhBcnJheSgxMDI0KSxsdD0wLEh0PSgpPT4oMD09PWx0JiYodW8oVWUpLGx0PVVlLmJ5dGVMZW5ndGgpLFVlWy0tbHRdKTtZdC5jcmVhdGVEZXZpY2UoIi9kZXYiLCJyYW5kb20iLEh0KSxZdC5jcmVhdGVEZXZpY2UoIi9kZXYiLCJ1cmFuZG9t'@; put 'IixIdCksWXQubWtkaXIoIi9kZXYvc2htIiksWXQubWtkaXIoIi9kZXYvc2htL3RtcCIpfSxjcmVhdGVTcGVjaWFsRGlyZWN0b3JpZXMoKXtZdC5ta2RpcigiL3Byb2MiKTt2YXIgVWU9WXQubWtkaXIoIi9wcm9jL3NlbGYiKTtZdC5ta2RpcigiL3Byb2Mvc2VsZi9mZCIpLFl0Lm1vdW50KHtt'@; put 'b3VudCgpe3ZhciBsdD1ZdC5jcmVhdGVOb2RlKFVlLCJmZCIsMTY4OTUsNzMpO3JldHVybiBsdC5zdHJlYW1fb3BzPXtsbHNlZWs6dHMuc3RyZWFtX29wcy5sbHNlZWt9LGx0Lm5vZGVfb3BzPXtsb29rdXAoSHQsWHQpe3ZhciBrbj0rWHQsbHI9WXQuZ2V0U3RyZWFtQ2hlY2tlZChrbiksSXI9'@; put 'e3BhcmVudDpudWxsLG1vdW50Onttb3VudHBvaW50OiJmYWtlIn0sbm9kZV9vcHM6e3JlYWRsaW5rOigpPT5sci5wYXRofSxpZDprbisxfTtyZXR1cm4gSXIucGFyZW50PUlyLElyfSxyZWFkZGlyOigpPT5BcnJheS5mcm9tKFl0LnN0cmVhbXMuZW50cmllcygpKS5maWx0ZXIoKFtIdCxYdF0p'@; put 'PT5YdCkubWFwKChbSHQsWHRdKT0+SHQudG9TdHJpbmcoKSl9LGx0fX0se30sIi9wcm9jL3NlbGYvZmQiKX0sY3JlYXRlU3RhbmRhcmRTdHJlYW1zKFVlLGx0LEh0KXtVZT9ZdC5jcmVhdGVEZXZpY2UoIi9kZXYiLCJzdGRpbiIsVWUpOll0LnN5bWxpbmsoIi9kZXYvdHR5IiwiL2Rldi9zdGRp'@; put 'biIpLGx0P1l0LmNyZWF0ZURldmljZSgiL2RldiIsInN0ZG91dCIsbnVsbCxsdCk6WXQuc3ltbGluaygiL2Rldi90dHkiLCIvZGV2L3N0ZG91dCIpLEh0P1l0LmNyZWF0ZURldmljZSgiL2RldiIsInN0ZGVyciIsbnVsbCxIdCk6WXQuc3ltbGluaygiL2Rldi90dHkxIiwiL2Rldi9zdGRlcnIi'@; put 'KSxZdC5vcGVuKCIvZGV2L3N0ZGluIiwwKSxZdC5vcGVuKCIvZGV2L3N0ZG91dCIsMSksWXQub3BlbigiL2Rldi9zdGRlcnIiLDEpfSxzdGF0aWNJbml0KCl7WXQubmFtZVRhYmxlPW5ldyBBcnJheSg0MDk2KSxZdC5tb3VudCh0cyx7fSwiLyIpLFl0LmNyZWF0ZURlZmF1bHREaXJlY3Rvcmll'@; put 'cygpLFl0LmNyZWF0ZURlZmF1bHREZXZpY2VzKCksWXQuY3JlYXRlU3BlY2lhbERpcmVjdG9yaWVzKCksWXQuZmlsZXN5c3RlbXM9e01FTUZTOnRzfX0saW5pdChVZSxsdCxIdCl7WXQuaW5pdGlhbGl6ZWQ9ITAsWXQuY3JlYXRlU3RhbmRhcmRTdHJlYW1zKFVlLGx0LEh0KX0scXVpdCgpe2Zv'@; put 'cih2YXIgVWUgb2YoWXQuaW5pdGlhbGl6ZWQ9ITEsWXQuc3RyZWFtcykpVWUmJll0LmNsb3NlKFVlKX0sZmluZE9iamVjdChVZSxsdCl7dmFyIEh0PVl0LmFuYWx5emVQYXRoKFVlLGx0KTtyZXR1cm4gSHQuZXhpc3RzP0h0Lm9iamVjdDpudWxsfSxhbmFseXplUGF0aChVZSxsdCl7dHJ5e1Vl'@; put 'PShIdD1ZdC5sb29rdXBQYXRoKFVlLHtmb2xsb3c6IWx0fSkpLnBhdGh9Y2F0Y2h7fXZhciBYdD17aXNSb290OiExLGV4aXN0czohMSxlcnJvcjowLG5hbWU6bnVsbCxwYXRoOm51bGwsb2JqZWN0Om51bGwscGFyZW50RXhpc3RzOiExLHBhcmVudFBhdGg6bnVsbCxwYXJlbnRPYmplY3Q6bnVs'@; put 'bH07dHJ5e3ZhciBIdD1ZdC5sb29rdXBQYXRoKFVlLHtwYXJlbnQ6ITB9KTtYdC5wYXJlbnRFeGlzdHM9ITAsWHQucGFyZW50UGF0aD1IdC5wYXRoLFh0LnBhcmVudE9iamVjdD1IdC5ub2RlLFh0Lm5hbWU9WmkuYmFzZW5hbWUoVWUpLEh0PVl0Lmxvb2t1cFBhdGgoVWUse2ZvbGxvdzohbHR9'@; put 'KSxYdC5leGlzdHM9ITAsWHQucGF0aD1IdC5wYXRoLFh0Lm9iamVjdD1IdC5ub2RlLFh0Lm5hbWU9SHQubm9kZS5uYW1lLFh0LmlzUm9vdD0iLyI9PT1IdC5wYXRofWNhdGNoKGtuKXtYdC5lcnJvcj1rbi5lcnJub31yZXR1cm4gWHR9LGNyZWF0ZVBhdGgoVWUsbHQsSHQsWHQpe1VlPSJzdHJp'@; put 'bmciPT10eXBlb2YgVWU/VWU6WXQuZ2V0UGF0aChVZSk7Zm9yKHZhciBrbj1sdC5zcGxpdCgiLyIpLnJldmVyc2UoKTtrbi5sZW5ndGg7KXt2YXIgbHI9a24ucG9wKCk7aWYobHIpe3ZhciBJcj1aaS5qb2luMihVZSxscik7dHJ5e1l0Lm1rZGlyKElyKX1jYXRjaCgkcil7aWYoMjAhPSRyLmVy'@; put 'cm5vKXRocm93ICRyfVVlPUlyfX1yZXR1cm4gSXJ9LGNyZWF0ZUZpbGUoVWUsbHQsSHQsWHQsa24pe3ZhciBscj1aaS5qb2luMigic3RyaW5nIj09dHlwZW9mIFVlP1VlOll0LmdldFBhdGgoVWUpLGx0KSxJcj16QShYdCxrbik7cmV0dXJuIFl0LmNyZWF0ZShscixJcil9LGNyZWF0ZURhdGFG'@; put 'aWxlKFVlLGx0LEh0LFh0LGtuLGxyKXt2YXIgSXI9bHQ7VWUmJihVZT0ic3RyaW5nIj09dHlwZW9mIFVlP1VlOll0LmdldFBhdGgoVWUpLElyPWx0P1ppLmpvaW4yKFVlLGx0KTpVZSk7dmFyICRyPXpBKFh0LGtuKSx2YT1ZdC5jcmVhdGUoSXIsJHIpO2lmKEh0KXtpZigic3RyaW5nIj09dHlw'@; put 'ZW9mIEh0KXtmb3IodmFyIFJzPW5ldyBBcnJheShIdC5sZW5ndGgpLEtvPTAsRGw9SHQubGVuZ3RoO0tvPERsOysrS28pUnNbS29dPUh0LmNoYXJDb2RlQXQoS28pO0h0PVJzfVl0LmNobW9kKHZhLDE0Nnwkcik7dmFyIHBvPVl0Lm9wZW4odmEsNTc3KTtZdC53cml0ZShwbyxIdCwwLEh0Lmxl'@; put 'bmd0aCwwLGxyKSxZdC5jbG9zZShwbyksWXQuY2htb2QodmEsJHIpfX0sY3JlYXRlRGV2aWNlKFVlLGx0LEh0LFh0KXt2YXIga249Wmkuam9pbjIoInN0cmluZyI9PXR5cGVvZiBVZT9VZTpZdC5nZXRQYXRoKFVlKSxsdCksbHI9ekEoISFIdCwhIVh0KTtZdC5jcmVhdGVEZXZpY2UubWFqb3I/'@; put 'Pz02NDt2YXIgSXI9WXQubWFrZWRldihZdC5jcmVhdGVEZXZpY2UubWFqb3IrKywwKTtyZXR1cm4gWXQucmVnaXN0ZXJEZXZpY2UoSXIse29wZW4oJHIpeyRyLnNlZWthYmxlPSExfSxjbG9zZSgkcil7WHQ/LmJ1ZmZlcj8ubGVuZ3RoJiZYdCgxMCl9LHJlYWQoJHIsdmEsUnMsS28sRGwpe2Zv'@; put 'cih2YXIgcG89MCx4cz0wO3hzPEtvO3hzKyspe3ZhciBYbzt0cnl7WG89SHQoKX1jYXRjaHt0aHJvdyBuZXcgWXQuRXJybm9FcnJvcigyOSl9aWYodm9pZCAwPT09WG8mJjA9PT1wbyl0aHJvdyBuZXcgWXQuRXJybm9FcnJvcig2KTtpZihudWxsPT1YbylicmVhaztwbysrLHZhW1JzK3hzXT1Y'@; put 'b31yZXR1cm4gcG8mJigkci5ub2RlLmF0aW1lPURhdGUubm93KCkpLHBvfSx3cml0ZSgkcix2YSxScyxLbyxEbCl7Zm9yKHZhciBwbz0wO3BvPEtvO3BvKyspdHJ5e1h0KHZhW1JzK3BvXSl9Y2F0Y2h7dGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoMjkpfXJldHVybiBLbyYmKCRyLm5vZGUubXRp'@; put 'bWU9JHIubm9kZS5jdGltZT1EYXRlLm5vdygpKSxwb319KSxZdC5ta2RldihrbixscixJcil9LGZvcmNlTG9hZEZpbGUoVWUpe2lmKFVlLmlzRGV2aWNlfHxVZS5pc0ZvbGRlcnx8VWUubGlua3x8VWUuY29udGVudHMpcmV0dXJuITA7aWYodHlwZW9mIFhNTEh0dHBSZXF1ZXN0PCJ1Iil0aHJv'@; put 'dyBuZXcgRXJyb3IoIkxhenkgbG9hZGluZyBzaG91bGQgaGF2ZSBiZWVuIHBlcmZvcm1lZCAoY29udGVudHMgc2V0KSBpbiBjcmVhdGVMYXp5RmlsZSwgYnV0IGl0IHdhcyBub3QuIExhenkgbG9hZGluZyBvbmx5IHdvcmtzIGluIHdlYiB3b3JrZXJzLiBVc2UgLS1lbWJlZC1maWxlIG9yIC0t'@; put 'cHJlbG9hZC1maWxlIGluIGVtY2Mgb24gdGhlIG1haW4gdGhyZWFkLiIpO3RyeXtVZS5jb250ZW50cz1yZShVZS51cmwpLFVlLnVzZWRCeXRlcz1VZS5jb250ZW50cy5sZW5ndGh9Y2F0Y2h7dGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoMjkpfX0sY3JlYXRlTGF6eUZpbGUoVWUsbHQsSHQsWHQs'@; put 'a24pe2lmKHR5cGVvZiBYTUxIdHRwUmVxdWVzdDwidSIpdGhyb3ciQ2Fubm90IGRvIHN5bmNocm9ub3VzIGJpbmFyeSBYSFJzIG91dHNpZGUgd2Vid29ya2VycyBpbiBtb2Rlcm4gYnJvd3NlcnMuIFVzZSAtLWVtYmVkLWZpbGUgb3IgLS1wcmVsb2FkLWZpbGUgaW4gZW1jYyI7dmFyICRyLHZh'@; put 'PVl0LmNyZWF0ZUZpbGUoVWUsbHQsJHI9e2lzRGV2aWNlOiExLHVybDpIdH0sWHQsa24pOyRyLmNvbnRlbnRzP3ZhLmNvbnRlbnRzPSRyLmNvbnRlbnRzOiRyLnVybCYmKHZhLmNvbnRlbnRzPW51bGwsdmEudXJsPSRyLnVybCksT2JqZWN0LmRlZmluZVByb3BlcnRpZXModmEse3VzZWRCeXRl'@; put 'czp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udGVudHMubGVuZ3RofX19KTt2YXIgUnM9e307ZnVuY3Rpb24gRGwocG8seHMsWG8sazEsQTMpe3ZhciBHaD1wby5ub2RlLmNvbnRlbnRzO2lmKEEzPj1HaC5sZW5ndGgpcmV0dXJuIDA7dmFyIGszPU1hdGgubWluKEdoLmxlbmd0aC1B'@; put 'MyxrMSk7aWYoR2guc2xpY2UpZm9yKHZhciBEMz0wO0QzPGszO0QzKyspeHNbWG8rRDNdPUdoW0EzK0QzXTtlbHNlIGZvcihEMz0wO0QzPGszO0QzKyspeHNbWG8rRDNdPUdoLmdldChBMytEMyk7cmV0dXJuIGszfXJldHVybiBPYmplY3Qua2V5cyh2YS5zdHJlYW1fb3BzKS5mb3JFYWNoKHBv'@; put 'PT57dmFyIHhzPXZhLnN0cmVhbV9vcHNbcG9dO1JzW3BvXT0oLi4uWG8pPT4oWXQuZm9yY2VMb2FkRmlsZSh2YSkseHMoLi4uWG8pKX0pLFJzLnJlYWQ9KHBvLHhzLFhvLGsxLEEzKT0+KFl0LmZvcmNlTG9hZEZpbGUodmEpLERsKHBvLHhzLFhvLGsxLEEzKSksUnMubW1hcD0ocG8seHMsWG8s'@; put 'azEsQTMpPT57WXQuZm9yY2VMb2FkRmlsZSh2YSk7dmFyIEdoPW9kKHhzKTtpZighR2gpdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoNDgpO3JldHVybiBEbChwbyx3bixHaCx4cyxYbykse3B0cjpHaCxhbGxvY2F0ZWQ6ITB9fSx2YS5zdHJlYW1fb3BzPVJzLHZhfX0sRTE9KFVlLGx0LEh0KT0+'@; put 'VWU/Zm8oaG4sVWUsbHQsSHQpOiIiLGdsPXtERUZBVUxUX1BPTExNQVNLOjUsY2FsY3VsYXRlQXQoVWUsbHQsSHQpe2lmKFppLmlzQWJzKGx0KSlyZXR1cm4gbHQ7dmFyIFh0O2lmKFh0PS0xMDA9PT1VZT9ZdC5jd2QoKTpnbC5nZXRTdHJlYW1Gcm9tRkQoVWUpLnBhdGgsMD09bHQubGVuZ3Ro'@; put 'KXtpZighSHQpdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoNDQpO3JldHVybiBYdH1yZXR1cm4gWHQrIi8iK2x0fSx3cml0ZVN0YXQoVWUsbHQpe2tyW1VlPj4yXT1sdC5kZXYsa3JbVWUrND4+Ml09bHQubW9kZSxxbltVZSs4Pj4yXT1sdC5ubGluayxrcltVZSsxMj4+Ml09bHQudWlkLGtyW1Vl'@; put 'KzE2Pj4yXT1sdC5naWQsa3JbVWUrMjA+PjJdPWx0LnJkZXYsdnI9W2x0LnNpemU+Pj4wLChObj1sdC5zaXplLCtNYXRoLmFicyhObik+PTE/Tm4+MD8rTWF0aC5mbG9vcihObi80Mjk0OTY3Mjk2KT4+PjA6fn4rTWF0aC5jZWlsKChObi0rKH5+Tm4+Pj4wKSkvNDI5NDk2NzI5Nik+Pj4wOjAp'@; put 'XSxrcltVZSsyND4+Ml09dnJbMF0sa3JbVWUrMjg+PjJdPXZyWzFdLGtyW1VlKzMyPj4yXT00MDk2LGtyW1VlKzM2Pj4yXT1sdC5ibG9ja3M7dmFyIEh0PWx0LmF0aW1lLmdldFRpbWUoKSxYdD1sdC5tdGltZS5nZXRUaW1lKCksa249bHQuY3RpbWUuZ2V0VGltZSgpO3JldHVybiB2cj1bTWF0'@; put 'aC5mbG9vcihIdC8xZTMpPj4+MCwoTm49TWF0aC5mbG9vcihIdC8xZTMpLCtNYXRoLmFicyhObik+PTE/Tm4+MD8rTWF0aC5mbG9vcihObi80Mjk0OTY3Mjk2KT4+PjA6fn4rTWF0aC5jZWlsKChObi0rKH5+Tm4+Pj4wKSkvNDI5NDk2NzI5Nik+Pj4wOjApXSxrcltVZSs0MD4+Ml09dnJbMF0s'@; put 'a3JbVWUrNDQ+PjJdPXZyWzFdLHFuW1VlKzQ4Pj4yXT1IdCUxZTMqMWUzKjFlMyx2cj1bTWF0aC5mbG9vcihYdC8xZTMpPj4+MCwoTm49TWF0aC5mbG9vcihYdC8xZTMpLCtNYXRoLmFicyhObik+PTE/Tm4+MD8rTWF0aC5mbG9vcihObi80Mjk0OTY3Mjk2KT4+PjA6fn4rTWF0aC5jZWlsKChO'@; put 'bi0rKH5+Tm4+Pj4wKSkvNDI5NDk2NzI5Nik+Pj4wOjApXSxrcltVZSs1Nj4+Ml09dnJbMF0sa3JbVWUrNjA+PjJdPXZyWzFdLHFuW1VlKzY0Pj4yXT1YdCUxZTMqMWUzKjFlMyx2cj1bTWF0aC5mbG9vcihrbi8xZTMpPj4+MCwoTm49TWF0aC5mbG9vcihrbi8xZTMpLCtNYXRoLmFicyhObik+'@; put 'PTE/Tm4+MD8rTWF0aC5mbG9vcihObi80Mjk0OTY3Mjk2KT4+PjA6fn4rTWF0aC5jZWlsKChObi0rKH5+Tm4+Pj4wKSkvNDI5NDk2NzI5Nik+Pj4wOjApXSxrcltVZSs3Mj4+Ml09dnJbMF0sa3JbVWUrNzY+PjJdPXZyWzFdLHFuW1VlKzgwPj4yXT1rbiUxZTMqMWUzKjFlMyx2cj1bbHQuaW5v'@; put 'Pj4+MCwoTm49bHQuaW5vLCtNYXRoLmFicyhObik+PTE/Tm4+MD8rTWF0aC5mbG9vcihObi80Mjk0OTY3Mjk2KT4+PjA6fn4rTWF0aC5jZWlsKChObi0rKH5+Tm4+Pj4wKSkvNDI5NDk2NzI5Nik+Pj4wOjApXSxrcltVZSs4OD4+Ml09dnJbMF0sa3JbVWUrOTI+PjJdPXZyWzFdLDB9LHdyaXRl'@; put 'U3RhdEZzKFVlLGx0KXtrcltVZSs0Pj4yXT1sdC5ic2l6ZSxrcltVZSs0MD4+Ml09bHQuYnNpemUsa3JbVWUrOD4+Ml09bHQuYmxvY2tzLGtyW1VlKzEyPj4yXT1sdC5iZnJlZSxrcltVZSsxNj4+Ml09bHQuYmF2YWlsLGtyW1VlKzIwPj4yXT1sdC5maWxlcyxrcltVZSsyND4+Ml09bHQuZmZy'@; put 'ZWUsa3JbVWUrMjg+PjJdPWx0LmZzaWQsa3JbVWUrNDQ+PjJdPWx0LmZsYWdzLGtyW1VlKzM2Pj4yXT1sdC5uYW1lbGVufSxkb01zeW5jKFVlLGx0LEh0LFh0LGtuKXtpZighWXQuaXNGaWxlKGx0Lm5vZGUubW9kZSkpdGhyb3cgbmV3IFl0LkVycm5vRXJyb3IoNDMpO2lmKDImWHQpcmV0dXJu'@; put 'IDA7dmFyIGxyPWhuLnNsaWNlKFVlLFVlK0h0KTtZdC5tc3luYyhsdCxscixrbixIdCxYdCl9LGdldFN0cmVhbUZyb21GRDpVZT0+WXQuZ2V0U3RyZWFtQ2hlY2tlZChVZSksdmFyYXJnczp2b2lkIDAsZ2V0U3RyOlVlPT5FMShVZSl9LEx3PSgpPT57dmFyIFVlPWtyWytnbC52YXJhcmdzPj4y'@; put 'XTtyZXR1cm4gZ2wudmFyYXJncys9NCxVZX0sWjA9THcsVDE9KFVlLGx0LEh0KT0+UWQoVWUsaG4sbHQsSHQpLGxzPVswLDMxLDYwLDkxLDEyMSwxNTIsMTgyLDIxMywyNDQsMjc0LDMwNSwzMzVdLG1yPVswLDMxLDU5LDkwLDEyMCwxNTEsMTgxLDIxMiwyNDMsMjczLDMwNCwzMzRdLHphPShV'@; put 'ZSxsdCk9Pmx0KzIwOTcxNTI+Pj4wPDQxOTQzMDUtISFVZT8oVWU+Pj4wKSs0Mjk0OTY3Mjk2Kmx0Ok5hTixFNj0oKT0+RGF0ZS5ub3coKSxPdz1bXSxWSXQ9VWU9Pnt2YXIgSHQ9KFVlLW1uLmJ1ZmZlci5ieXRlTGVuZ3RoKzY1NTM1KS82NTUzNnwwO3RyeXtyZXR1cm4gbW4uZ3JvdyhIdCks'@; put 'UG4oKSwxfWNhdGNoe319LHRuZT17fSxXQT0oKT0+e2lmKCFXQS5zdHJpbmdzKXt2YXIgbHQ9e1VTRVI6IndlYl91c2VyIixMT0dOQU1FOiJ3ZWJfdXNlciIsUEFUSDoiLyIsUFdEOiIvIixIT01FOiIvaG9tZS93ZWJfdXNlciIsTEFORzooIm9iamVjdCI9PXR5cGVvZiBuYXZpZ2F0b3ImJm5h'@; put 'dmlnYXRvci5sYW5ndWFnZXx8IkMiKS5yZXBsYWNlKCItIiwiXyIpKyIuVVRGLTgiLF86Ii4vdGhpcy5wcm9ncmFtIn07Zm9yKHZhciBIdCBpbiB0bmUpdm9pZCAwPT09dG5lW0h0XT9kZWxldGUgbHRbSHRdOmx0W0h0XT10bmVbSHRdO3ZhciBYdD1bXTtmb3IodmFyIEh0IGluIGx0KVh0LnB1'@; put 'c2goYCR7SHR9PSR7bHRbSHRdfWApO1dBLnN0cmluZ3M9WHR9cmV0dXJuIFdBLnN0cmluZ3N9LGVSdD1bXTtZdC5jcmVhdGVQcmVsb2FkZWRGaWxlPShVZSxsdCxIdCxYdCxrbixscixJciwkcix2YSxScyk9Pnt2YXIgS289bHQ/V3MucmVzb2x2ZShaaS5qb2luMihVZSxsdCkpOlVlO2Z1bmN0'@; put 'aW9uIHBvKHhzKXtmdW5jdGlvbiBYbyhrMSl7UnM/LigpLCRyfHwoKC4uLlVlKT0+e1l0LmNyZWF0ZURhdGFGaWxlKC4uLlVlKX0pKFVlLGx0LGsxLFh0LGtuLHZhKSxscj8uKCksaGEoKX0oKFVlLGx0LEh0LFh0KT0+e3R5cGVvZiBCcm93c2VyPCJ1IiYmQnJvd3Nlci5pbml0KCk7dmFyIGtu'@; put 'PSExO3JldHVybiBKdGUuZm9yRWFjaChscj0+e2tufHxsci5jYW5IYW5kbGUobHQpJiYobHIuaGFuZGxlKFVlLGx0LEh0LFh0KSxrbj0hMCl9KSxrbn0pKHhzLEtvLFhvLCgpPT57SXI/LigpLGhhKCl9KXx8WG8oeHMpfUJpKCksInN0cmluZyI9PXR5cGVvZiBIdD9xZyhIdCkudGhlbihwbyxJ'@; put 'cik6cG8oSHQpfSxZdC5zdGF0aWNJbml0KCksYS53YXNtQmluYXJ5JiYoRWU9YS53YXNtQmluYXJ5KSxhLlVURjhUb1N0cmluZz1FMTt2YXIgejdlLFU3ZSxaN2UsVzdlLFk3ZSxHN2UsJDdlLEs3ZSxYN2UscTdlLEo3ZSxRN2UsZTllLHQ5ZSxuOWUscjllLGk5ZSxhOWUsczllLG85ZSxsOWUs'@; put 'dFJ0PXsxNzM1NzY6KFVlLGx0KT0+e3ZhciBIdD1FMShVZSksWHQ9RTEobHQpO1l0LmNyZWF0ZVBhdGgoIi8iLFppLmRpcm5hbWUoSHQpKSxZdC53cml0ZUZpbGUoWmkuam9pbigiLyIsSHQpLFh0KX19LHBSdD17YTooVWUsbHQsSHQpPT57dGhyb3cgbmV3IERyKFVlKS5pbml0KGx0LEh0KSxV'@; put 'ZX0saTpmdW5jdGlvbiBLTihVZSxsdCxIdCxYdCl7dHJ5e2lmKGx0PWdsLmdldFN0cihsdCksbHQ9Z2wuY2FsY3VsYXRlQXQoVWUsbHQpLC04Jkh0KXJldHVybi0yODt2YXIgbHI9WXQubG9va3VwUGF0aChsdCx7Zm9sbG93OiEwfSkubm9kZTtpZighbHIpcmV0dXJuLTQ0O3ZhciBJcj0iIjty'@; put 'ZXR1cm4gNCZIdCYmKElyKz0iciIpLDImSHQmJihJcis9InciKSwxJkh0JiYoSXIrPSJ4IiksSXImJll0Lm5vZGVQZXJtaXNzaW9ucyhscixJcik/LTI6MH1jYXRjaCgkcil7aWYodHlwZW9mIFl0PiJ1Inx8IkVycm5vRXJyb3IiIT09JHIubmFtZSl0aHJvdyAkcjtyZXR1cm4tJHIuZXJybm99'@; put 'fSxlOmZ1bmN0aW9uIHg2KFVlLGx0LEh0KXtnbC52YXJhcmdzPUh0O3RyeXt2YXIgWHQ9Z2wuZ2V0U3RyZWFtRnJvbUZEKFVlKTtzd2l0Y2gobHQpe2Nhc2UgMDppZigoa249THcoKSk8MClyZXR1cm4tMjg7Zm9yKDtZdC5zdHJlYW1zW2tuXTspa24rKztyZXR1cm4gWXQuZHVwU3RyZWFtKFh0'@; put 'LGtuKS5mZDtjYXNlIDE6Y2FzZSAyOmNhc2UgMTM6Y2FzZSAxNDpyZXR1cm4gMDtjYXNlIDM6cmV0dXJuIFh0LmZsYWdzO2Nhc2UgNDp2YXIga249THcoKTtyZXR1cm4gWHQuZmxhZ3N8PWtuLDA7Y2FzZSAxMjpyZXR1cm4ga249WjAoKSxNbltrbiswPj4xXT0yLDB9cmV0dXJuLTI4fWNhdGNo'@; put 'KCRyKXtpZih0eXBlb2YgWXQ+InUifHwiRXJybm9FcnJvciIhPT0kci5uYW1lKXRocm93ICRyO3JldHVybi0kci5lcnJub319LHk6ZnVuY3Rpb24gWE4oVWUsbHQpe3RyeXtyZXR1cm4gZ2wud3JpdGVTdGF0KGx0LFl0LmZzdGF0KFVlKSl9Y2F0Y2goSHQpe2lmKHR5cGVvZiBZdD4idSJ8fCJF'@; put 'cnJub0Vycm9yIiE9PUh0Lm5hbWUpdGhyb3cgSHQ7cmV0dXJuLUh0LmVycm5vfX0sazpmdW5jdGlvbiBxTihVZSxsdCxIdCl7Z2wudmFyYXJncz1IdDt0cnl7dmFyIFh0PWdsLmdldFN0cmVhbUZyb21GRChVZSk7c3dpdGNoKGx0KXtjYXNlIDIxNTA5OmNhc2UgMjE1MTA6Y2FzZSAyMTUxMTpj'@; put 'YXNlIDIxNTEyOmNhc2UgMjE1MjQ6Y2FzZSAyMTUxNTpyZXR1cm4gWHQudHR5PzA6LTU5O2Nhc2UgMjE1MDU6aWYoIVh0LnR0eSlyZXR1cm4tNTk7aWYoWHQudHR5Lm9wcy5pb2N0bF90Y2dldHMpe3ZhciBrbj1YdC50dHkub3BzLmlvY3RsX3RjZ2V0cyhYdCksbHI9WjAoKTtrcltscj4+Ml09'@; put 'a24uY19pZmxhZ3x8MCxrcltscis0Pj4yXT1rbi5jX29mbGFnfHwwLGtyW2xyKzg+PjJdPWtuLmNfY2ZsYWd8fDAsa3JbbHIrMTI+PjJdPWtuLmNfbGZsYWd8fDA7Zm9yKHZhciBJcj0wO0lyPDMyO0lyKyspd25bbHIrSXIrMTddPWtuLmNfY2NbSXJdfHwwO3JldHVybiAwfXJldHVybiAwO2Nh'@; put 'c2UgMjE1MDY6Y2FzZSAyMTUwNzpjYXNlIDIxNTA4OmlmKCFYdC50dHkpcmV0dXJuLTU5O2lmKFh0LnR0eS5vcHMuaW9jdGxfdGNzZXRzKXtscj1aMCgpO3ZhciAkcj1rcltscj4+Ml0sdmE9a3JbbHIrND4+Ml0sUnM9a3JbbHIrOD4+Ml0sS289a3JbbHIrMTI+PjJdLERsPVtdO2ZvcihJcj0w'@; put 'O0lyPDMyO0lyKyspRGwucHVzaCh3bltscitJcisxN10pO3JldHVybiBYdC50dHkub3BzLmlvY3RsX3Rjc2V0cyhYdC50dHksbHQse2NfaWZsYWc6JHIsY19vZmxhZzp2YSxjX2NmbGFnOlJzLGNfbGZsYWc6S28sY19jYzpEbH0pfXJldHVybiAwO2Nhc2UgMjE1MTk6cmV0dXJuIFh0LnR0eT8o'@; put 'bHI9WjAoKSxrcltscj4+Ml09MCwwKTotNTk7Y2FzZSAyMTUyMDpyZXR1cm4gWHQudHR5Py0yODotNTk7Y2FzZSAyMTUzNzpjYXNlIDIxNTMxOnJldHVybiBscj1aMCgpLFl0LmlvY3RsKFh0LGx0LGxyKTtjYXNlIDIxNTIzOmlmKCFYdC50dHkpcmV0dXJuLTU5O2lmKFh0LnR0eS5vcHMuaW9j'@; put 'dGxfdGlvY2d3aW5zeil7dmFyIHBvPVh0LnR0eS5vcHMuaW9jdGxfdGlvY2d3aW5zeihYdC50dHkpO2xyPVowKCksTW5bbHI+PjFdPXBvWzBdLE1uW2xyKzI+PjFdPXBvWzFdfXJldHVybiAwO2RlZmF1bHQ6cmV0dXJuLTI4fX1jYXRjaCh4cyl7aWYodHlwZW9mIFl0PiJ1Inx8IkVycm5vRXJy'@; put 'b3IiIT09eHMubmFtZSl0aHJvdyB4cztyZXR1cm4teHMuZXJybm99fSx4OmZ1bmN0aW9uIFVBKFVlLGx0LEh0LFh0KXt0cnl7bHQ9Z2wuZ2V0U3RyKGx0KTt2YXIga249MjU2Jlh0LGxyPTQwOTYmWHQ7cmV0dXJuIFh0Jj0tNjQwMSxsdD1nbC5jYWxjdWxhdGVBdChVZSxsdCxsciksZ2wud3Jp'@; put 'dGVTdGF0KEh0LGtuP1l0LmxzdGF0KGx0KTpZdC5zdGF0KGx0KSl9Y2F0Y2goSXIpe2lmKHR5cGVvZiBZdD4idSJ8fCJFcnJub0Vycm9yIiE9PUlyLm5hbWUpdGhyb3cgSXI7cmV0dXJuLUlyLmVycm5vfX0sZzpmdW5jdGlvbiBKTihVZSxsdCxIdCxYdCl7Z2wudmFyYXJncz1YdDt0cnl7bHQ9'@; put 'Z2wuZ2V0U3RyKGx0KSxsdD1nbC5jYWxjdWxhdGVBdChVZSxsdCk7dmFyIGtuPVh0P0x3KCk6MDtyZXR1cm4gWXQub3BlbihsdCxIdCxrbikuZmR9Y2F0Y2gobHIpe2lmKHR5cGVvZiBZdD4idSJ8fCJFcnJub0Vycm9yIiE9PWxyLm5hbWUpdGhyb3cgbHI7cmV0dXJuLWxyLmVycm5vfX0scjpm'@; put 'dW5jdGlvbiBRTihVZSxsdCxIdCxYdCl7dHJ5e2lmKGx0PWdsLmdldFN0cihsdCksbHQ9Z2wuY2FsY3VsYXRlQXQoVWUsbHQpLFh0PD0wKXJldHVybi0yODt2YXIga249WXQucmVhZGxpbmsobHQpLGxyPU1hdGgubWluKFh0LFloKGtuKSksSXI9d25bSHQrbHJdO3JldHVybiBUMShrbixIdCxY'@; put 'dCsxKSx3bltIdCtscl09SXIsbHJ9Y2F0Y2goJHIpe2lmKHR5cGVvZiBZdD4idSJ8fCJFcnJub0Vycm9yIiE9PSRyLm5hbWUpdGhyb3cgJHI7cmV0dXJuLSRyLmVycm5vfX0sczpmdW5jdGlvbiBlVihVZSl7dHJ5e3JldHVybiBVZT1nbC5nZXRTdHIoVWUpLFl0LnJtZGlyKFVlKSwwfWNhdGNo'@; put 'KGx0KXtpZih0eXBlb2YgWXQ+InUifHwiRXJybm9FcnJvciIhPT1sdC5uYW1lKXRocm93IGx0O3JldHVybi1sdC5lcnJub319LHQ6ZnVuY3Rpb24gdFYoVWUsbHQsSHQpe3RyeXtpZihsdD1nbC5nZXRTdHIobHQpLGx0PWdsLmNhbGN1bGF0ZUF0KFVlLGx0KSxIdCl7aWYoNTEyIT09SHQpcmV0'@; put 'dXJuLTI4O1l0LnJtZGlyKGx0KX1lbHNlIFl0LnVubGluayhsdCk7cmV0dXJuIDB9Y2F0Y2goWHQpe2lmKHR5cGVvZiBZdD4idSJ8fCJFcnJub0Vycm9yIiE9PVh0Lm5hbWUpdGhyb3cgWHQ7cmV0dXJuLVh0LmVycm5vfX0sajooKT0+bWEoIiIpLG86ZnVuY3Rpb24gdWMoVWUsbHQsSHQpe3Zh'@; put 'ciBYdD16YShVZSxsdCksa249bmV3IERhdGUoMWUzKlh0KTtrcltIdD4+Ml09a24uZ2V0U2Vjb25kcygpLGtyW0h0KzQ+PjJdPWtuLmdldE1pbnV0ZXMoKSxrcltIdCs4Pj4yXT1rbi5nZXRIb3VycygpLGtyW0h0KzEyPj4yXT1rbi5nZXREYXRlKCksa3JbSHQrMTY+PjJdPWtuLmdldE1vbnRo'@; put 'KCksa3JbSHQrMjA+PjJdPWtuLmdldEZ1bGxZZWFyKCktMTkwMCxrcltIdCsyND4+Ml09a24uZ2V0RGF5KCk7dmFyIGxyPTB8KFVlPT4oKFVlPT5VZSU0PT0wJiYoVWUlMTAwIT0wfHxVZSU0MDA9PTApKShVZS5nZXRGdWxsWWVhcigpKT9sczptcilbVWUuZ2V0TW9udGgoKV0rVWUuZ2V0RGF0'@; put 'ZSgpLTEpKGtuKTtrcltIdCsyOD4+Ml09bHIsa3JbSHQrMzY+PjJdPS02MCprbi5nZXRUaW1lem9uZU9mZnNldCgpO3ZhciBJcj1uZXcgRGF0ZShrbi5nZXRGdWxsWWVhcigpLDAsMSksJHI9bmV3IERhdGUoa24uZ2V0RnVsbFllYXIoKSw2LDEpLmdldFRpbWV6b25lT2Zmc2V0KCksdmE9SXIu'@; put 'Z2V0VGltZXpvbmVPZmZzZXQoKSxScz0wfCgkciE9dmEmJmtuLmdldFRpbWV6b25lT2Zmc2V0KCk9PU1hdGgubWluKHZhLCRyKSk7a3JbSHQrMzI+PjJdPVJzfSxtOmZ1bmN0aW9uIEUwKFVlLGx0LEh0LFh0LGtuLGxyLElyLCRyKXt2YXIgdmE9emEoa24sbHIpO3RyeXt2YXIgUnM9Z2wuZ2V0'@; put 'U3RyZWFtRnJvbUZEKFh0KSxLbz1ZdC5tbWFwKFJzLFVlLHZhLGx0LEh0KSxEbD1Lby5wdHI7cmV0dXJuIGtyW0lyPj4yXT1Lby5hbGxvY2F0ZWQscW5bJHI+PjJdPURsLDB9Y2F0Y2gocG8pe2lmKHR5cGVvZiBZdD4idSJ8fCJFcnJub0Vycm9yIiE9PXBvLm5hbWUpdGhyb3cgcG87cmV0dXJu'@; put 'LXBvLmVycm5vfX0sbjpmdW5jdGlvbiBrdShVZSxsdCxIdCxYdCxrbixscixJcil7dmFyICRyPXphKGxyLElyKTt0cnl7dmFyIHZhPWdsLmdldFN0cmVhbUZyb21GRChrbik7MiZIdCYmZ2wuZG9Nc3luYyhVZSx2YSxsdCxYdCwkcil9Y2F0Y2goUnMpe2lmKHR5cGVvZiBZdD4idSJ8fCJFcnJu'@; put 'b0Vycm9yIiE9PVJzLm5hbWUpdGhyb3cgUnM7cmV0dXJuLVJzLmVycm5vfX0sdTooVWUsbHQsSHQsWHQpPT57dmFyIGtuPShuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKSxscj1uZXcgRGF0ZShrbiwwLDEpLElyPW5ldyBEYXRlKGtuLDYsMSksJHI9bHIuZ2V0VGltZXpvbmVPZmZzZXQoKSx2YT1J'@; put 'ci5nZXRUaW1lem9uZU9mZnNldCgpLFJzPU1hdGgubWF4KCRyLHZhKTtxbltVZT4+Ml09NjAqUnMsa3JbbHQ+PjJdPSsoJHIhPXZhKTt2YXIgS289eHM9Pnt2YXIgWG89eHM+PTA/Ii0iOiIrIixrMT1NYXRoLmFicyh4cyk7cmV0dXJuYFVUQyR7WG99JHtTdHJpbmcoTWF0aC5mbG9vcihrMS82'@; put 'MCkpLnBhZFN0YXJ0KDIsIjAiKX0ke1N0cmluZyhrMSU2MCkucGFkU3RhcnQoMiwiMCIpfWB9LERsPUtvKCRyKSxwbz1Lbyh2YSk7dmE8JHI/KFQxKERsLEh0LDE3KSxUMShwbyxYdCwxNykpOihUMShEbCxYdCwxNyksVDEocG8sSHQsMTcpKX0sbDpmdW5jdGlvbiByVihVZSxsdCxIdCxYdCl7'@; put 'dmFyIGxyO2lmKHphKGx0LEh0KSwhKFVlPT5VZT49MCYmVWU8PTMpKFVlKSlyZXR1cm4gMjg7bHI9MD09PVVlP0U2KCk6cGVyZm9ybWFuY2Uubm93KCk7dmFyIElyPU1hdGgucm91bmQoMWUzKmxyKjFlMyk7cmV0dXJuIHZyPVtJcj4+PjAsKE5uPUlyLCtNYXRoLmFicyhObik+PTE/Tm4+MD8r'@; put 'TWF0aC5mbG9vcihObi80Mjk0OTY3Mjk2KT4+PjA6fn4rTWF0aC5jZWlsKChObi0rKH5+Tm4+Pj4wKSkvNDI5NDk2NzI5Nik+Pj4wOjApXSxrcltYdD4+Ml09dnJbMF0sa3JbWHQrND4+Ml09dnJbMV0sMH0sejooVWUsbHQsSHQpPT4oKFVlLGx0LEh0KT0+e3ZhciBYdD0oKFVlLGx0KT0+e093'@; put 'Lmxlbmd0aD0wO2Zvcih2YXIgSHQ7SHQ9aG5bVWUrK107KXt2YXIgWHQ9MTA1IT1IdDtsdCs9KFh0Jj0xMTIhPUh0KSYmbHQlOD80OjAsT3cucHVzaCgxMTI9PUh0P3FuW2x0Pj4yXToxMDU9PUh0P2tyW2x0Pj4yXTpxcltsdD4+M10pLGx0Kz1YdD84OjR9cmV0dXJuIE93fSkobHQsSHQpO3Jl'@; put 'dHVybiB0UnRbVWVdKC4uLlh0KX0pKFVlLGx0LEh0KSxoOkU2LHE6VWU9Pnt2YXIgbHQ9aG4ubGVuZ3RoLEh0PTIxNDc0ODM2NDg7aWYoKFVlPj4+PTApPkh0KXJldHVybiExO2Zvcih2YXIgWHQ9MTtYdDw9NDtYdCo9Mil7dmFyIGtuPWx0KigxKy4yL1h0KTtrbj1NYXRoLm1pbihrbixVZSsx'@; put 'MDA2NjMyOTYpO3ZhciBscj1NYXRoLm1pbihIdCxrbyhNYXRoLm1heChVZSxrbiksNjU1MzYpKTtpZihWSXQobHIpKXJldHVybiEwfXJldHVybiExfSx2OihVZSxsdCk9Pnt2YXIgSHQ9MCxYdD0wO2Zvcih2YXIga24gb2YgV0EoKSl7dmFyIGxyPWx0K0h0O3FuW1VlK1h0Pj4yXT1scixIdCs9'@; put 'VDEoa24sbHIsMS8wKSsxLFh0Kz00fXJldHVybiAwfSx3OihVZSxsdCk9Pnt2YXIgSHQ9V0EoKTtxbltVZT4+Ml09SHQubGVuZ3RoO3ZhciBYdD0wO2Zvcih2YXIga24gb2YgSHQpWHQrPVloKGtuKSsxO3JldHVybiBxbltsdD4+Ml09WHQsMH0sZjooVWUsbHQpPT57KFVlPT57KChVZSxsdCk9'@; put 'Pnt0aHJvdyBsdH0pKDAsbmV3IFduKFVlKSl9KShVZSl9LGI6ZnVuY3Rpb24gJEl0KFVlKXt0cnl7dmFyIGx0PWdsLmdldFN0cmVhbUZyb21GRChVZSk7cmV0dXJuIFl0LmNsb3NlKGx0KSwwfWNhdGNoKEh0KXtpZih0eXBlb2YgWXQ+InUifHwiRXJybm9FcnJvciIhPT1IdC5uYW1lKXRocm93'@; put 'IEh0O3JldHVybiBIdC5lcnJub319LGQ6ZnVuY3Rpb24gWEl0KFVlLGx0LEh0LFh0KXt0cnl7dmFyIGxyPSgoVWUsbHQsSHQsWHQpPT57Zm9yKHZhciBrbj0wLGxyPTA7bHI8SHQ7bHIrKyl7dmFyIElyPXFuW2x0Pj4yXSwkcj1xbltsdCs0Pj4yXTtsdCs9ODt2YXIgdmE9WXQucmVhZChVZSx3'@; put 'bixJciwkcixYdCk7aWYodmE8MClyZXR1cm4tMTtpZihrbis9dmEsdmE8JHIpYnJlYWs7dHlwZW9mIFh0PCJ1IiYmKFh0Kz12YSl9cmV0dXJuIGtufSkoZ2wuZ2V0U3RyZWFtRnJvbUZEKFVlKSxsdCxIdCk7cmV0dXJuIHFuW1h0Pj4yXT1sciwwfWNhdGNoKElyKXtpZih0eXBlb2YgWXQ+InUi'@; put 'fHwiRXJybm9FcnJvciIhPT1Jci5uYW1lKXRocm93IElyO3JldHVybiBJci5lcnJub319LHA6ZnVuY3Rpb24gcUl0KFVlLGx0LEh0LFh0LGtuKXt2YXIgbHI9emEobHQsSHQpO3RyeXtpZihpc05hTihscikpcmV0dXJuIDYxO3ZhciBJcj1nbC5nZXRTdHJlYW1Gcm9tRkQoVWUpO3JldHVybiBZ'@; put 'dC5sbHNlZWsoSXIsbHIsWHQpLHZyPVtJci5wb3NpdGlvbj4+PjAsKE5uPUlyLnBvc2l0aW9uLCtNYXRoLmFicyhObik+PTE/Tm4+MD8rTWF0aC5mbG9vcihObi80Mjk0OTY3Mjk2KT4+PjA6fn4rTWF0aC5jZWlsKChObi0rKH5+Tm4+Pj4wKSkvNDI5NDk2NzI5Nik+Pj4wOjApXSxrcltrbj4+'@; put 'Ml09dnJbMF0sa3Jba24rND4+Ml09dnJbMV0sSXIuZ2V0ZGVudHMmJjA9PT1sciYmMD09PVh0JiYoSXIuZ2V0ZGVudHM9bnVsbCksMH1jYXRjaCgkcil7aWYodHlwZW9mIFl0PiJ1Inx8IkVycm5vRXJyb3IiIT09JHIubmFtZSl0aHJvdyAkcjtyZXR1cm4gJHIuZXJybm99fSxjOmZ1bmN0aW9u'@; put 'IFFJdChVZSxsdCxIdCxYdCl7dHJ5e3ZhciBscj0oKFVlLGx0LEh0LFh0KT0+e2Zvcih2YXIga249MCxscj0wO2xyPEh0O2xyKyspe3ZhciBJcj1xbltsdD4+Ml0sJHI9cW5bbHQrND4+Ml07bHQrPTg7dmFyIHZhPVl0LndyaXRlKFVlLHduLElyLCRyLFh0KTtpZih2YTwwKXJldHVybi0xO2lm'@; put 'KGtuKz12YSx2YTwkcilicmVhazt0eXBlb2YgWHQ8InUiJiYoWHQrPXZhKX1yZXR1cm4ga259KShnbC5nZXRTdHJlYW1Gcm9tRkQoVWUpLGx0LEh0KTtyZXR1cm4gcW5bWHQ+PjJdPWxyLDB9Y2F0Y2goSXIpe2lmKHR5cGVvZiBZdD4idSJ8fCJFcnJub0Vycm9yIiE9PUlyLm5hbWUpdGhyb3cg'@; put 'SXI7cmV0dXJuIElyLmVycm5vfX19LFlBPXlpZWxkIGZ1bmN0aW9uIEluKCl7cmV0dXJuIFhuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0oKTtmdW5jdGlvbiBoZigpe31mdW5jdGlvbiBpVihVZSl7cmV0dXJuKFVlfHxoZikuX19jYWNoZV9ffWZ1bmN0aW9uIHJuZShVZSxsdCl7dmFyIEh0PWlW'@; put 'KGx0KSxYdD1IdFtVZV07cmV0dXJuIFh0fHwoKFh0PU9iamVjdC5jcmVhdGUoKGx0fHxoZikucHJvdG90eXBlKSkucHRyPVVlLEh0W1VlXT1YdCl9IWZ1bmN0aW9uIG5uZSgpe1lyPjB8fFlyPjA/d2k9bm5lOmZ1bmN0aW9uIFVlKCl7YS5jYWxsZWRSdW49ITAsIUJlJiYoZnVuY3Rpb24gdHIo'@; put 'KXtfaT0hMCwoVWU9Pntmb3IoO1VlLmxlbmd0aD4wOylVZS5zaGlmdCgpKGEpfSkoZVJ0KSwhYS5ub0ZTSW5pdCYmIVl0LmluaXRpYWxpemVkJiZZdC5pbml0KCksJG8uaW5pdCgpLFlBLkIoKSxZdC5pZ25vcmVQZXJtaXNzaW9ucz0hMX0oKSxkdD8uKGEpKX0oKX0oKSwoaGYucHJvdG90eXBl'@; put 'PU9iamVjdC5jcmVhdGUoaGYucHJvdG90eXBlKSkuY29uc3RydWN0b3I9aGYsaGYucHJvdG90eXBlLl9fY2xhc3NfXz1oZixoZi5fX2NhY2hlX189e30sYS5XcmFwcGVyT2JqZWN0PWhmLGEuZ2V0Q2FjaGU9aVYsYS53cmFwUG9pbnRlcj1ybmUsYS5jYXN0T2JqZWN0PWZ1bmN0aW9uIGdSdChV'@; put 'ZSxsdCl7cmV0dXJuIHJuZShVZS5wdHIsbHQpfSxhLk5VTEw9cm5lKDApLGEuZGVzdHJveT1mdW5jdGlvbiBtUnQoVWUpe2lmKCFVZS5fX2Rlc3Ryb3lfXyl0aHJvdyJFcnJvcjogQ2Fubm90IGRlc3Ryb3kgb2JqZWN0LiAoRGlkIHlvdSBjcmVhdGUgaXQgeW91cnNlbGY/KSI7VWUuX19kZXN0'@; put 'cm95X18oKSxkZWxldGUgaVYoVWUuX19jbGFzc19fKVtVZS5wdHJdfSxhLmNvbXBhcmU9ZnVuY3Rpb24gdlJ0KFVlLGx0KXtyZXR1cm4gVWUucHRyPT09bHQucHRyfSxhLmdldFBvaW50ZXI9ZnVuY3Rpb24geVJ0KFVlKXtyZXR1cm4gVWUucHRyfSxhLmdldENsYXNzPWZ1bmN0aW9uIGJSdChV'@; put 'ZSl7cmV0dXJuIFVlLl9fY2xhc3NfX307dmFyIHpvPXtidWZmZXI6MCxzaXplOjAscG9zOjAsdGVtcHM6W10sbmVlZGVkOjAscHJlcGFyZSgpe2lmKHpvLm5lZWRlZCl7Zm9yKHZhciBVZT0wO1VlPHpvLnRlbXBzLmxlbmd0aDtVZSsrKWEuX3dlYmlkbF9mcmVlKHpvLnRlbXBzW1VlXSk7em8u'@; put 'dGVtcHMubGVuZ3RoPTAsYS5fd2ViaWRsX2ZyZWUoem8uYnVmZmVyKSx6by5idWZmZXI9MCx6by5zaXplKz16by5uZWVkZWQsem8ubmVlZGVkPTB9em8uYnVmZmVyfHwoem8uc2l6ZSs9MTI4LHpvLmJ1ZmZlcj1hLl93ZWJpZGxfbWFsbG9jKHpvLnNpemUpLHN0KHpvLmJ1ZmZlcikpLHpvLnBv'@; put 'cz0wfSxhbGxvYyhVZSxsdCl7c3Qoem8uYnVmZmVyKTt2YXIga24sWHQ9VWUubGVuZ3RoKmx0LkJZVEVTX1BFUl9FTEVNRU5UO3JldHVybiBYdD1rbyhYdCw4KSx6by5wb3MrWHQ+PXpvLnNpemU/KHN0KFh0PjApLHpvLm5lZWRlZCs9WHQsa249YS5fd2ViaWRsX21hbGxvYyhYdCksem8udGVt'@; put 'cHMucHVzaChrbikpOihrbj16by5idWZmZXIrem8ucG9zLHpvLnBvcys9WHQpLGtufSxjb3B5KFVlLGx0LEh0KXtIdC89bHQuQllURVNfUEVSX0VMRU1FTlQ7Zm9yKHZhciBYdD0wO1h0PFVlLmxlbmd0aDtYdCsrKWx0W0h0K1h0XT1VZVtYdF19fTtmdW5jdGlvbiBmZihVZSl7aWYoInN0cmlu'@; put 'ZyI9PXR5cGVvZiBVZSl7dmFyIGx0PURjKFVlKSxIdD16by5hbGxvYyhsdCx3bik7cmV0dXJuIHpvLmNvcHkobHQsd24sSHQpLEh0fXJldHVybiBVZX1mdW5jdGlvbiBKZygpe3Rocm93ImNhbm5vdCBjb25zdHJ1Y3QgYSBWb2lkUHRyLCBubyBjb25zdHJ1Y3RvciBpbiBJREwifWZ1bmN0aW9u'@; put 'IHJzKFVlLGx0KXtVZSYmIm9iamVjdCI9PXR5cGVvZiBVZSYmKFVlPVVlLnB0ciksbHQmJiJvYmplY3QiPT10eXBlb2YgbHQmJihsdD1sdC5wdHIpLHRoaXMucHRyPVU3ZShVZSxsdCksaVYocnMpW3RoaXMucHRyXT10aGlzfXJldHVybihKZy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShoZi5w'@; put 'cm90b3R5cGUpKS5jb25zdHJ1Y3Rvcj1KZyxKZy5wcm90b3R5cGUuX19jbGFzc19fPUpnLEpnLl9fY2FjaGVfXz17fSxhLlZvaWRQdHI9SmcsSmcucHJvdG90eXBlLl9fZGVzdHJveV9fPUpnLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1mdW5jdGlvbigpe3o3ZSh0aGlzLnB0cil9LChycy5wcm90'@; put 'b3R5cGU9T2JqZWN0LmNyZWF0ZShoZi5wcm90b3R5cGUpKS5jb25zdHJ1Y3Rvcj1ycyxycy5wcm90b3R5cGUuX19jbGFzc19fPXJzLHJzLl9fY2FjaGVfXz17fSxhLkdyYXBodml6PXJzLHJzLnByb3RvdHlwZS52ZXJzaW9uPXJzLnByb3RvdHlwZS52ZXJzaW9uPWZ1bmN0aW9uKCl7cmV0dXJu'@; put 'IEUxKFo3ZSgpKX0scnMucHJvdG90eXBlLmxhc3RFcnJvcj1ycy5wcm90b3R5cGUubGFzdEVycm9yPWZ1bmN0aW9uKCl7cmV0dXJuIEUxKFc3ZSgpKX0scnMucHJvdG90eXBlLmNyZWF0ZUZpbGU9cnMucHJvdG90eXBlLmNyZWF0ZUZpbGU9ZnVuY3Rpb24oVWUsbHQpe3ZhciBIdD10aGlzLnB0'@; put 'cjt6by5wcmVwYXJlKCksVWU9VWUmJiJvYmplY3QiPT10eXBlb2YgVWU/VWUucHRyOmZmKFVlKSxsdD1sdCYmIm9iamVjdCI9PXR5cGVvZiBsdD9sdC5wdHI6ZmYobHQpLFk3ZShIdCxVZSxsdCl9LHJzLnByb3RvdHlwZS5sYXlvdXQ9cnMucHJvdG90eXBlLmxheW91dD1mdW5jdGlvbihVZSxs'@; put 'dCxIdCl7dmFyIFh0PXRoaXMucHRyO3JldHVybiB6by5wcmVwYXJlKCksVWU9VWUmJiJvYmplY3QiPT10eXBlb2YgVWU/VWUucHRyOmZmKFVlKSxsdD1sdCYmIm9iamVjdCI9PXR5cGVvZiBsdD9sdC5wdHI6ZmYobHQpLEh0PUh0JiYib2JqZWN0Ij09dHlwZW9mIEh0P0h0LnB0cjpmZihIdCks'@; put 'RTEoRzdlKFh0LFVlLGx0LEh0KSl9LHJzLnByb3RvdHlwZS5hY3ljbGljPXJzLnByb3RvdHlwZS5hY3ljbGljPWZ1bmN0aW9uKFVlLGx0LEh0KXt2YXIgWHQ9dGhpcy5wdHI7cmV0dXJuIHpvLnByZXBhcmUoKSxVZT1VZSYmIm9iamVjdCI9PXR5cGVvZiBVZT9VZS5wdHI6ZmYoVWUpLGx0JiYi'@; put 'b2JqZWN0Ij09dHlwZW9mIGx0JiYobHQ9bHQucHRyKSxIdCYmIm9iamVjdCI9PXR5cGVvZiBIdCYmKEh0PUh0LnB0ciksISEkN2UoWHQsVWUsbHQsSHQpfSxycy5wcm90b3R5cGUudHJlZD1ycy5wcm90b3R5cGUudHJlZD1mdW5jdGlvbihVZSxsdCxIdCl7dmFyIFh0PXRoaXMucHRyO3pvLnBy'@; put 'ZXBhcmUoKSxVZT1VZSYmIm9iamVjdCI9PXR5cGVvZiBVZT9VZS5wdHI6ZmYoVWUpLGx0JiYib2JqZWN0Ij09dHlwZW9mIGx0JiYobHQ9bHQucHRyKSxIdCYmIm9iamVjdCI9PXR5cGVvZiBIdCYmKEh0PUh0LnB0ciksSzdlKFh0LFVlLGx0LEh0KX0scnMucHJvdG90eXBlLnVuZmxhdHRlbj1y'@; put 'cy5wcm90b3R5cGUudW5mbGF0dGVuPWZ1bmN0aW9uKFVlLGx0LEh0LFh0KXt2YXIga249dGhpcy5wdHI7cmV0dXJuIHpvLnByZXBhcmUoKSxVZT1VZSYmIm9iamVjdCI9PXR5cGVvZiBVZT9VZS5wdHI6ZmYoVWUpLGx0JiYib2JqZWN0Ij09dHlwZW9mIGx0JiYobHQ9bHQucHRyKSxIdCYmIm9i'@; put 'amVjdCI9PXR5cGVvZiBIdCYmKEh0PUh0LnB0ciksWHQmJiJvYmplY3QiPT10eXBlb2YgWHQmJihYdD1YdC5wdHIpLEUxKFg3ZShrbixVZSxsdCxIdCxYdCkpfSxycy5wcm90b3R5cGUuZ2V0X2xheW91dF9yZXN1bHQ9cnMucHJvdG90eXBlLmdldF9sYXlvdXRfcmVzdWx0PWZ1bmN0aW9uKCl7'@; put 'cmV0dXJuIEUxKHE3ZSh0aGlzLnB0cikpfSxycy5wcm90b3R5cGUuc2V0X2xheW91dF9yZXN1bHQ9cnMucHJvdG90eXBlLnNldF9sYXlvdXRfcmVzdWx0PWZ1bmN0aW9uKFVlKXt2YXIgbHQ9dGhpcy5wdHI7em8ucHJlcGFyZSgpLFVlPVVlJiYib2JqZWN0Ij09dHlwZW9mIFVlP1VlLnB0cjpm'@; put 'ZihVZSksSjdlKGx0LFVlKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHJzLnByb3RvdHlwZSwibGF5b3V0X3Jlc3VsdCIse2dldDpycy5wcm90b3R5cGUuZ2V0X2xheW91dF9yZXN1bHQsc2V0OnJzLnByb3RvdHlwZS5zZXRfbGF5b3V0X3Jlc3VsdH0pLHJzLnByb3RvdHlwZS5nZXRfYWN5Y2xp'@; put 'Y19vdXRGaWxlPXJzLnByb3RvdHlwZS5nZXRfYWN5Y2xpY19vdXRGaWxlPWZ1bmN0aW9uKCl7cmV0dXJuIEUxKFE3ZSh0aGlzLnB0cikpfSxycy5wcm90b3R5cGUuc2V0X2FjeWNsaWNfb3V0RmlsZT1ycy5wcm90b3R5cGUuc2V0X2FjeWNsaWNfb3V0RmlsZT1mdW5jdGlvbihVZSl7dmFyIGx0'@; put 'PXRoaXMucHRyO3pvLnByZXBhcmUoKSxVZT1VZSYmIm9iamVjdCI9PXR5cGVvZiBVZT9VZS5wdHI6ZmYoVWUpLGU5ZShsdCxVZSl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShycy5wcm90b3R5cGUsImFjeWNsaWNfb3V0RmlsZSIse2dldDpycy5wcm90b3R5cGUuZ2V0X2FjeWNsaWNfb3V0Rmls'@; put 'ZSxzZXQ6cnMucHJvdG90eXBlLnNldF9hY3ljbGljX291dEZpbGV9KSxycy5wcm90b3R5cGUuZ2V0X2FjeWNsaWNfbnVtX3Jldj1ycy5wcm90b3R5cGUuZ2V0X2FjeWNsaWNfbnVtX3Jldj1mdW5jdGlvbigpe3JldHVybiB0OWUodGhpcy5wdHIpfSxycy5wcm90b3R5cGUuc2V0X2FjeWNsaWNf'@; put 'bnVtX3Jldj1ycy5wcm90b3R5cGUuc2V0X2FjeWNsaWNfbnVtX3Jldj1mdW5jdGlvbihVZSl7VWUmJiJvYmplY3QiPT10eXBlb2YgVWUmJihVZT1VZS5wdHIpLG45ZSh0aGlzLnB0cixVZSl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShycy5wcm90b3R5cGUsImFjeWNsaWNfbnVtX3JldiIse2dl'@; put 'dDpycy5wcm90b3R5cGUuZ2V0X2FjeWNsaWNfbnVtX3JldixzZXQ6cnMucHJvdG90eXBlLnNldF9hY3ljbGljX251bV9yZXZ9KSxycy5wcm90b3R5cGUuZ2V0X3RyZWRfb3V0PXJzLnByb3RvdHlwZS5nZXRfdHJlZF9vdXQ9ZnVuY3Rpb24oKXtyZXR1cm4gRTEocjllKHRoaXMucHRyKSl9LHJz'@; put 'LnByb3RvdHlwZS5zZXRfdHJlZF9vdXQ9cnMucHJvdG90eXBlLnNldF90cmVkX291dD1mdW5jdGlvbihVZSl7dmFyIGx0PXRoaXMucHRyO3pvLnByZXBhcmUoKSxVZT1VZSYmIm9iamVjdCI9PXR5cGVvZiBVZT9VZS5wdHI6ZmYoVWUpLGk5ZShsdCxVZSl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0'@; put 'eShycy5wcm90b3R5cGUsInRyZWRfb3V0Iix7Z2V0OnJzLnByb3RvdHlwZS5nZXRfdHJlZF9vdXQsc2V0OnJzLnByb3RvdHlwZS5zZXRfdHJlZF9vdXR9KSxycy5wcm90b3R5cGUuZ2V0X3RyZWRfZXJyPXJzLnByb3RvdHlwZS5nZXRfdHJlZF9lcnI9ZnVuY3Rpb24oKXtyZXR1cm4gRTEoYTll'@; put 'KHRoaXMucHRyKSl9LHJzLnByb3RvdHlwZS5zZXRfdHJlZF9lcnI9cnMucHJvdG90eXBlLnNldF90cmVkX2Vycj1mdW5jdGlvbihVZSl7dmFyIGx0PXRoaXMucHRyO3pvLnByZXBhcmUoKSxVZT1VZSYmIm9iamVjdCI9PXR5cGVvZiBVZT9VZS5wdHI6ZmYoVWUpLHM5ZShsdCxVZSl9LE9iamVj'@; put 'dC5kZWZpbmVQcm9wZXJ0eShycy5wcm90b3R5cGUsInRyZWRfZXJyIix7Z2V0OnJzLnByb3RvdHlwZS5nZXRfdHJlZF9lcnIsc2V0OnJzLnByb3RvdHlwZS5zZXRfdHJlZF9lcnJ9KSxycy5wcm90b3R5cGUuX19kZXN0cm95X189cnMucHJvdG90eXBlLl9fZGVzdHJveV9fPWZ1bmN0aW9uKCl7'@; put 'bzllKHRoaXMucHRyKX0sX2k/YTpuZXcgUHJvbWlzZSgoVWUsbHQpPT57ZHQ9VWUscXQ9bHR9KX0pLHp0ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dmFyIGpBLFV0ZTtmdW5jdGlvbiBSRXQoKXtyZXR1cm4gVXRlfHwoVXRlPWZ1bmN0aW9uIEVFdChjLGwpe2Zvcih2YXIgYT1bXSxkPSshbCxo'@; put 'PTAsZj0wO2MubGVuZ3RoOyl7dmFyIHY9bUV0KGMsZHx8bCk7aWYoIm9iamVjdCI9PXR5cGVvZiB2KXtmb3IoZD8obD1udWxsLHYudy5sZW5ndGg9PXYudSYmKGEucHVzaChsPXYudyksZis9di51KSk6KGEucHVzaChsKSx2LmU9MCk7IXYubDspe3ZhciBNPU1FdChjLHYsbCk7TXx8cXUoNSks'@; put 'bD92LmU9di55OihhLnB1c2goTSksZis9TS5sZW5ndGgsZkV0KHYudywwLE0ubGVuZ3RoKSx2Lncuc2V0KE0sdi53Lmxlbmd0aC1NLmxlbmd0aCkpfWg9di5iKzQqdi5jfWVsc2UgaD12O2M9Yy5zdWJhcnJheShoKX1yZXR1cm4gZnVuY3Rpb24oYyxsKXtpZigxPT1jLmxlbmd0aClyZXR1cm4g'@; put 'Y1swXTtmb3IodmFyIGE9bmV3IEF1KGwpLGQ9MCxoPTA7ZDxjLmxlbmd0aDsrK2Qpe3ZhciBmPWNbZF07YS5zZXQoZixoKSxoKz1mLmxlbmd0aH1yZXR1cm4gYX0oYSxmKX0oZnVuY3Rpb24gREV0KGMpe2xldCBsPWMubGVuZ3RoLGE9W10sZD0wLGg9MCxmPS0xO2ZvcihsZXQgdj0wO3Y8bDt2'@; put 'Kyspe2xldCBNPSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSEjJCUmKCkqKywuLzo7PD0+P0BbXV5fYHt8fX4iJy5pbmRleE9mKGNbdl0pO2lmKC0xIT09TSlpZihmPDApZj1NO2Vsc2V7Zis9OTEqTSxkfD1mPDxoLGgrPSg4'@; put 'MTkxJmYpPjg4PzEzOjE0O2Rve2EucHVzaCgyNTUmZCksZD4+PTgsaC09OH13aGlsZShoPjcpO2Y9LTF9fXJldHVybiBmPi0xJiZhLnB1c2goMjU1JihkfGY8PGgpKSxuZXcgVWludDhBcnJheShhKX0oJ3Y3I2FTWHAwfEQ1Rmo6Rz4hWU00VTJodHo4ey9ieX5sdExkZzcsVXFtKTJvOWBZVG1G'@; put 'e34saVM8ajV8Ql5WaVUpLC8/cDJveGQ5ZHBMRCw1czlOYWM+Mmg3JntoR21mdy5bMkRaeCFwW1M0IV5DNEx5ck5hdCk7THhFUWxfZy9DcH1seTNDT14sJm4peWBXKUFxWT0lanhNJClqcEt9dnluZVB8XXlteSpiTzUkNn08eyVjM0Uvd1g0VWJfeXIzLmtyOTZAL3hfdyV5JW0/QXFIc1kxQjtu'@; put 'T3c+InB2XS5MITomVkREXnk+al1vX1BAL2o8T2RARllIISoyY0QoMiUoLms7K2I7bTliInA8cGJfJHxFfGM/XWddTWpzT3xCM0t8ejFjJkRTUytNV0t9MDsuRWM3KjklYyU6Jjc0eik9R3NSTH0zODpSX2hLPXs0ekd7TG1VWjBvWDhiZXt6Oj1XIyFFPlY0JDVtY188V11JaV8iVjwzPD1FX0Fx'@; put 'akk5I19YYmVIZUM+aiVUc0t7dDN6eVptT2g1c0JlQTsqNG1zfG9IeXc3XTVjb3QrWlVJNj9+Mk18Tyh3bGp6ZzRHTmN6PHw3XyhKImNxb2RRTUU9dWFgW11NKS5oUSR4XzdJbX4hUjpNYUZwYnkpc0MkUm4kYW9wcUhaXzF9Q2siN3FvdU0pLnRHM0ksOj5uQ3lbO3xrVmd+eVAqVFR0bEZzMmN5'@; put 'I0A4Myp2NjE5Q3IieCwvXShHXXw+fU5+Z1h1VTc9S1Zrclp6JkRaZDdzNUF7bU1vR2IrejhVTmpDQUxLeFZTT3l8LzZ6ZktaXyMuN1BUR29hdzI2VTN5LjpbS3VvPk0kPn1afT5rUTEhSWFnazt0Pzx8bz56WkM3Nnk8QnJ1cjwqejhgezsycnomNkQvNHpqclRUWmh7KUcyQXt5I1pDTXxoMXwr'@; put 'ZWNOVzQoUTVoPjQ7bmFGbkojQ2xROUc/O1E3PmJFVFFwRz46bF5HWGE4TCRGPXBHPXFHRnc3dFYyMjglKTF6b0dhczc/OHpiUCpsP0xZVmclSnprPDB8LyQ1JDc7IVpSRWIkWGAwIT5YWnNSKXJvXU13V1UuWTt7KU04TWpnLklzNV1ZODpJZnJ7em86Nl4lQG8qWDxsMHUyJVpNQDReUzosOXho'@; put 'eHs2KHckcCVKdldvKnV+c1NMe3xEQEpsRVEoS2BDYloyI2BVRGldc3I4fEsjdXpAJUEhdUV2UysvUUlHb0o/RzEmJj9LI29ZMUprbm0vPUxhQWMwJiZMT3FmWTE+UDB5MlNoZ0hwPzN5L2p4VHc1NnY7fXY2bD1MODBDMlVHVmtwLloybD5ydGNQLk9wXSMjQlBwSztlMm0kME1MIzo+PFkiRH09'@; put 'U3hWOElON3cwO1Q3P1M+XnNkZ3NFKjJhKjFYMWM2Ji9FPkZsNG09QmVOOSFoQm1bK1NtUmY1d3lpW0k4PV1EbyhWXnl3U19yXW9Ke0x7QXwhI2dEQyZBY0hQdnMiUyohdD5MYWduZjpqPE9MWVJSbkFQMSFreWckVk9aXyY/O0hzNjY/NDJQPW12Llo+Mjkza2E9dWUzZ1lwR357fm5LZHcqKSZJ'@; put 'c1Y9NXouLk9wcVA8U1U/PGIueWUsWDVLQV4lL11xclNfPV5nOXJGPTpdM19edz5EflM1TmJiaUVqMGw8PSM2YGY4TndHQ1BWYXs9KEZeS1tLUW4sRXs2NlVpY1ReRmtmZ2Qkd2wlMj94eihXcDxbOmE7cyg9UUtOWUNnPTp1YDd5JSVQPCxFNyVLZWBpW0xVazxyaXJ9RjcuMl1Gb1tLWW4rYHZx'@; put 'WlA4N2cqVnBOVG51LCUrOG52bFt0TCMhQWxwVDsociFreUpYVHheZnFySmZWYWVFaV9eOyZAbFp2QFp3T1U8cnpmLDZNU1ohfGF4Jk5XQW5KUUE5RENuVjwjNUgzIjlAYVBbbXlsdyZBSkM5LlsybjsrTjBZOFY/NGxgWzhANjBZK3JwUHxOZSxmJGVzXmgudTtRU2hHL19BYGBsP2FOZXxhfHM6'@; put 'LzJ9ezw1P3NSJm1qa00wNVRYQGZEW05IUG9Hc1F9e2FSbkYxdykwRH4sJks6YUt+WykwJFFPRihVO0FlfGdMOEgsPWVodWJKRmFMIzx6e1JdJUZQJDlbXjo4VDxaeUcvNyEjSTd9ZHBaXUZObF9TVSswWG4+aUtjeEpxZklSRj1LRVgzTVhze11JcntYZFAod0wqVzdXU25DNkA6djQrWFRQRmJu'@; put 'WmsydFc2L1pCL2prfW5VQTlSbFQ3MClibThTZEx5SlZ+eTg6ejBXLCVKVF9kSC94VkVrYVJnWn0jMndUdlZ5ZjFuc0xAQkgreWw1YGk6YUdWOSMoflckaT8vTnNoKzVNaXlRQld+VFpzfTQ1N2d9OGUxaiZCX0JuTCQuJmJzKDhCcVRnUSVkZmsmcmtzO0AhVUZFPngjM2JzWz5QOF53aWdySVda'@; put 'UUojYSFrSCwhemRFMztOIVErL1Iwc0xyMG4kXjxweChtTT5iVCNFQUtAQlZfJCsmaDRnNHdHWXtyPDJKI2tIUnNQbTFsKHcuMkw5dSZqVmZCUmBbV0g4VXliK2ByfG9GdXhwR2pNeFV4W2RoUmc8UXB4Vm5wVytRSURGQlQmcGw5YilLOSw4VC4oIX5XSigsOHR6allPNU86ZFglX1N7Q0oobEsh'@; put 'KnAuZj9TRXl3IUw6UytPIz4xN1pOZTtFYzdqW0xUM110aG81KFZZe0tnZl89XnB5TF4/U0BldFY4TDUyLjpDMXglMzAlKn5uQUUwXjFmNzE+d2E4Z1l7QElDfHt8bCM6TyV9eyw9RH4+OVBvajk0aVU5RVdoX2FtWWp5NU1iblk7bXl+X2lwYS9iRStmN01iZHtgckJdVnd3PjRdOG9YTlEzM0p3'@; put 'bCI1LlMkWDw3fXx7PDFTJGZOZjUka0hWZzhAaGVKcDRrciRtenomQHV5N3RWXlc2QC50USJ8MzplOFZLTSx3cmlxUHkyXjdMQHxjYFtYMXY0fVNvQ0lkVlNvQ0lkJFZDQV9eMHpmUFhvNDZdTEhdXyplYDEmZiprTz1tKWxuL1VlaV8sNSNKOCZSR3d6UDsyfT13I2Z6fXZFfCYmVmc5IUtoe0ZS'@; put 'S3NValVkTDZORDpCYDg8TG87bChTRVV9ZHp7bkImQl4oKWh8PGdDL1I8e2dTI288al12WlN7RTwpeiEqXWExdT86Ilh9YHg3I1l7QEo7NzdiajI7JFYjZSpGPDJmQ1pyQV9JZ05lI31vYWxIQjAiOE5ecGZrTEZBNklCMG4qPVROZVREQjojRWwoM3F8K3diX09yJTtdVCt4bzw6NCU8OiRQKjQo'@; put 'dzc7NUJeLCo7eWxnezJmeSVmMG56NyxLUypWbCw/aks2KkwvYzB4a10reHBvP0c/bEJ8LyErOEBQPFlpcjA2ekhJb0FyMT87IVp1LG8sSyR2W2M5OVtaU0g9Vl0mMFk9eiw6aWgpVV1taXJ1TV03bXkjNUpyInUobWk4ZDNPdyhtSE5AWD94Vz8sVWdCcGg9RS99b30ueDxOI19MKVl+TilLOTNm'@; put 'NTtDc1Q5ZmRxK3tqLHEmMj8iTU1VbW1aPkwjLEltMykvUlYuOkA4QHJCQ0UlREI6cEdrRj9TfHpEMV55UUYuVnguZ2VdakhOW0QiRGd6an1RRlV2XyZWZ3lsRnBKUW1sfUQkLz0zRjlTcmBkOyFuZnpaa1IrSz1je0k2SVtmfGlDc1hVQWdga184eFV6JnEpYGRSOH11OyFYYlRnVGkyN0ZXXzsk'@; put 'djtwKSVVfml+OW9rMnVuSyRdY3ViTyE4KzF9fXB5bFhGZytiOnQ9UU8oNTlaRFVXYjwjaTgqI3V3Q3crUyxranE0OyVLNzhWMkwvZ0ZTWn19ImJTem8rMkNZRHlnbEtdMkY7dmNkPDhbJD1jckVnXXxoZXNGK0Z3TDFnUDJ5O2kkNkpzO2ljQCMyZEAje3cxTmoyeGdNUFM2ISVuT0I4VHljMT9t'@; put 'TT1BNiZMVG1KPDwjUV1kL00mbXksPTVUYi5bdVY9KzgqbT07ODZwJCJ1X09RYm04NHJ5dWlkPjo0emdzfFpCMywrfDx6RGhxS31tUnpSIyo+T3AyUFNAOFZmSDM0JV5HREclRUwuRVM0YjE2YmQ7T3xfal0/TFNnPXdNTV1tTkxicltOMTh7Yi96djkqOjIjbDdCN21yKFQ0OjtkN3ZCXVVYezhK'@; put 'KVMjPTFncUVLLjgyLmtAfjhtOCo6TVtPZ0g5Rn08PXBkeDd6VSFEPFtKfTgubD9GKXcpeitkdk58cm1CNypdZGZCYlNIKUtPKm9YInFjN3Q7dlZaLGczQToueCwjclIqS04iYCokN15eYnYoNDZvMk0qNzhSUGw3bGY6K1NRLDNgYXM0JDREcSRMZW5Zbnc/NS9qXjFeXk87Y3JYfDhUXXpeKGdx'@; put 'bCY6dyMqIypkMClVQXNTWE9nN31iT0thWmsydCorKDo+R24wbCFadmk+dnhDTXZQcjtpe3E8dWQ0ZUElNG1sfT5LN2F4PT94cllUeyZ4NHQrZFtIOi9bIzNjSUksOno8QG1BeDR0LDpOJHU3cVgxLzcxa11AQ1NpViokYUx3JkxyUXo9T2ElVnZBL0l+R0heOThDckY5RGIvJH46d0NacithIm5z'@; put 'clZkYE0/M3M2aD9AOltWWng2ZW0mbSJNWkZ7TDdBezVCeCY0enhkY0hHbXQ9aWwyVW8hd1dBPmxrOTpueWVNSTlKOFQ5NSVCe0YqRVd+RGhMcVJSSWRQVTZ8K0xIaHdAfEpiQj0hUFs0MEg9Sys4OlYhKDdzPmp1e0NxKlhSNzI+MHYmNWVKRldaOUF4Kmx5XTpEdVl5QlZzJU1pLk9AdDZCfkZK'@; put 'JExybWQrRyQzTSQlJjlAIzxqMk0sPSQ+K15LOCJyISRCJkJ7MHkzb2dlQHAyVnY1QnRHJk98Wy9zVj94ciRLfEF7V3ojVHZ5czYwXis1T2xybUhRP05oVWdPezxbI0ZvfDVhay5xMj1LaEEzMjZ0Mj5GRytdUmthU18kKlswKF5oX2Aqc3IjPTgwMy5jOmUmdDxpYnwqfGJUPXpiTipAXlJ2N3Ni'@; put 'MnRUTy43V3ZYYTlbT0ZMMGxQXnRtMl19aUJyIUNPbWdPNklhbyIkeHlMfWEubUArTn46Y3w2VDlJUkh5Ljl+TF5gIWspaj9BQz0/VFpoXmlkeSNWOXg1Pnc7b11tSFlac3FyWzp0PT0zdl1admZSfHBMcFluND47NG08SSVLclFrJGRAU11vYi5Ic1coIjMvbGluOURyY2ZfL1p+ZlY6K2xUXyJO'@; put 'b082RlN+fVA4RHReZ1pMV28hKiM2WCU6byh0dno0QTRCL3xhajohU0d9e1YkOz1qMSs7KlFYWnJPZ1psQGI4MDhKaDNETjx1VGRBOFBFMiVCXVVEelZYXTo9fU5YN3A0elZqYFh5U1owPnhdeT0jPlVmP1M2TT4/bXIqTjE+QCpvYXVqOiQoVkZXfTI+LihlOyhybC9PfHBPRE9re2NCXy9GVlh5'@; put 'UGg/X0ZXKV8vcXpwP2MkO0VjN2sue2xUe3xKfSJtSHlCe3hsUEpmYzM0T3U1LnBTNyY/QUlxJFBvdEc5aEtONTx2VHhHQ3FOa2tEXiF5P0hyT11hWmtldnMyYT5pN1Yrc3xaPFpFZ0lwe3p3IWBZJEhvPTRASn5ueSQ+PCs4UFpfdSYsbmdOOSE/IyJ8KWd6UyJxSztEcl8uJnhRfE5ENn1seSZ1'@; put 'fns6c2N6bDRkYFEoOi9fZVMhc100T2Q4fm58YSJmNnIuKSNWd2VreS4hbCgmMWM2antVW1AxODZ0ZFhfSiVFSl4hUFJUbTxeITJdN0RvLDE6QE44Mk08MlY4RjdsY3pvMXVZJDkhZ0Q8dTdARmE2SjtlQGshIzVPMjVAZnFyQjZeTSVWPX1YKm8yfVpSYVZGPU9RYi96RFZBYHNbdWFIOT13R240'@; put 'VTV6Qj4wZkxtITBuLiQpPHJmSjxta2wvT14xT2dGXV9eW2siZDVzSzteYmA/IWlpZVY5T21KOz5kbkx3W3B5U1pIJmB1Ki9oam5DPkpgRFgrVmNBbXpIOjNhL05SYyJ9RHJUNSp7OX0oTEIrU0EkZDQ7I3Y4QGhEQnxFJEA9Snw5eHQ3Q1ByJmFbaCFBO0liLD9qTT4qKHBCI1hMdnw5bSI5RXVh'@; put 'aTYvaHA1ekZhaXExIj58OXMiYmFNTDZtKGE2KEFDc2dYOzpoREIrUUZCXzliP0hDXzxLQzpoX0E7STAwfGU7KFdDZ2siU3o4ayI1RVBnQWdeUTN0QkNERXFtQEA7aFVCeFBQZ0B3XlE3IktGeV1+bHQrW3oqd1hQO0hoPHorb1kvSCh6IThqK0V1bmZLdTMhdkxuRVpiSVRTaldNREk9cmtFfTkp'@; put 'WVlLdGBlPDErYkI2VzRZQjwuKGt1d1UrcE9HfGVTdElESzp0cC9oLkEvR2xSfTthIiV0RlFbPVk7OnlheFZWZjtTamVNKElAcmx4YmpoTUFKMXNrRW0rSk4pRmhEZDw6eUFEL3dKMVNqLHRFRlU2SzFTai50RUYvTFJRbCs0dWxsVmQ0IVE/KENGOD5pNCE5TFtHbyFRXm4rK3VxbVY1cjFVamxY'@; put 'OE9oNTNSV3opRCo4UF5vK3t1bmZxNlVqdVhXUSFdM1IrTC5KSSg3UHErfVliUnhKNFIvTCMwN2o7SDhSOkxGS09bVHZWandNWUo1N2Q8X3kqRWA8XixyK3B2dm47SFdqKylzRmByNWxtK3h2X29lZVdqL1glUH1eZStVamRCTUkmQDd5cCtIWnZWRj08Vjx8KERqWXNrWXwud001KW8+Vig/K0g0'@; put 'TX0zQj9MSSpgTFZLPypLaEI2cnIqY1JWWlp8V0NzL11LW19CSUdiQTdwblMpbVQodiZyeipNaGl1NnIzKkxVc2thfGRbbTNocSQifWJyfDZDc21zayhyJSoyajt8by5hfHR4My50W2F8OkNyYyRqOHJvdTF1fS4wX09KfUYqMDVfSEd6UjtWXz92TWl1N3I0dSU6VlpjfGZENVNeS1Y/aVRHbztW'@; put 'fD9fTlgjN3I2QEpPIkc4cl4qXmNza2R8KERhZl8zc3R+RDAhckY2XzxIQHF7M2E/SVJAKVVqSlgoSnMucTFJaX5FImpSTno4SClNS2ovQHdKZlB1I1NeZnY4SykjSjImKUhSZld1X1QzenY4TilVS0Q7WGVSZmR1T1ZiLHY4a2lpRil7TTg5ZWY5PW4uRH5LPHc8XXFnKD9XMHtQLkBpZyk/RFFN'@; put 'QGxnRlhrbml4YWpWYFRkfCQqKlVRVHA/Kz1hOj9sSDtuLEM3PzdGWVlrW1hKc3gvbEp0NTswbkFEOXVHTypMSkkiJG91LlpdXV5dRUh2Sz4uR05HcSM9V08qYVtBVFY+TFIsYU93d1ZKZGxIT2kkaiNaNFlAWSE1V0J3fCl6THZuQDJnL0VYUkNNUWAoZHNWfD8+eygqRUdUWVlWRm8ia2t9WEVi'@; put 'VSkySFQlMCxhUVM/M0p8JDpdOyRSdnIzNzN9UTBxTTx7WF9uLkR5IzpdLyQ8dVFoN0htZzFHI1l0RmwsaVMsX0YqSmlISllZQE5VYSpGLnU/VHxYU0d2dWtNbTZIT2N5NTF9KVRHN3VaTmFlSG0iNFYiK19fdmpYUEhEPU0wazZpaXxKcDcqW3dpPkZdQkdHT05bRHNmcD1+TE1SV0ZdXk08filW'@; put 'R0t2fVF3dyxUYio/VDBXWD4qTXU/Typ5QXxxYVhbRiE0O1NFR0wmWHE7JGZSRURveEdPfTxGeHhuVHU0Skk4IXUrYS5BcWd0d3B3I2lmSm5lOFlUJkFHRFl0TE1hQUUmZ0dPWVlrW11JfDE0O11GU057RS86Z3diOUFvRHkja3dZWTlmP25KO0IzZSFuPUVNUTQmSkkyZyopSlVxMmtOVD9jS3E8'@; put 'M2V9YWA/MEshQDNlQyUjdmlyYzB9KXVMTUM4MWM4LyRbKkxPN3pTUVY/dEg+Z0pJNW5CRTglOl10ZzApKVROelQ6c3F0dzYpSUpYW0FZSzdEPzFFUG1HbUE1X0ZHWnBKVTpOWnhpYEZ2Q3VVWWdLNzFMUEZMcilrQSpjd2NCREVHSWpxOyx0aXZxJVgrS2s+clBDZikoe0FSUG9ZRW5Ga11RWiIi'@; put 'QlRmJmEiUXAic0RWNX5sNShbQiZlKTA6aFVCQEpSKiJdIlE2dDFFPVtpNjtoVkJlSWoscUlOdFBDbmooLDEoSUNZS0I9W1FIaVApZXVWRXtpP0ReOTJ0KURhVXshXzlBKTZDIXE7I3Y4XmhBLGtZT0loNTMheExMSSElPDBTaiIrK1lnU0Q5OFBvK05OcklsMy9JbGpAfGlDX1tdS2BfcUY1ZmBL'@; put 'WT9qUWhCQmZMdUVUPiFVOUE/W0Q0JjM7dm5iQ2gmeCpqZ0A/SUciODpsLyQ9KkFQJDFiUDokUHZKbUNDQSpBP01Lc2Y5KklJdm5RLFBTPT84MH4pd0xnQ3dUW2ArX0RZMExieDlSanRMZnxYN0wjeHBONiFAVH4pJkx+RFdoYDVuZzpYMEkoI3NjSCo6TCFFSWtqfFBWPExuRmcmNl00KF5CTkZu'@; put 'KlI5NldjP0FEMz1TQ3tRKEw2QXYoIk94Z3N4dEUkaThwLz4xaXxQOiZ6KntBfiMmajVyR3g6QmgxN3AuPlBVYWE9SjB2N0d7XUpteigrKHJYM3JyQypDJFEvUDNfeUp3MGxoTCk2QVY7Qm19PnZVVU07JjcqTkR+I0JteSh3bEBnPCZpdVRHYGwzODJfXTlkKXkjdjtvWVhNa2NfSWR+YHg1RV8l'@; put 'cVlpT1FNU2lpYUA/YzhjM0czUkhYZD5HSVJnRHlPOjo+dmdSITdmZGcsZ1B1QFN5OWd1cjc8fi4qcjY8QGpsVG42ZSQ1NDtvJWRCOGlZZ1B7bThkdF1PZyQ4Mm94XXUkSms+N0I+RyE/QjxuSnEuOU1QLkcqcTdGKiI4MT99X0dHU1dYdW8uVlMuOHd8UlF2VEhkZH0wOCxOOW1XRn5SKjQlO184'@; put 'aXRUOWlwNjcsOHdhWSIxeiZBcXFyM2MxNjtFek8lTE4/NSxMckxlT3x3eVh9L2NdLDg2Y3tSO2A3bzpsd05sMFNGfSFDPi9PXXZwJiUrZ04hZGRVbWh6Ukl5ZzlpPjpLcjFjaTJoJmE3M1NxUmU6elRrYjVzPW02bzIuNz53c187MTZ5Vi88QWUhbCVqISpMfCQ2QDpeOzFOTHxrPlJPY1tLVXds'@; put 'OGFtYjE2JFNmK2JMJEFOdi55Qi5zd0IuQWt2YEpbdmBwdXpMS01OQl1DSWRRXlkkb0ZYfHRwVEBxblI+MHdBZVZBVD9gUFU1RUlgQm1LI0M7RXQyMTR7dkImMjZjVC8ldSQ3bzVzRyFqLltbOktyLGhwOURJQCkybmZvaUg3aiprWjFVWTRSOHomM0NoPVJreUMmJTxkQiZ2cWdVODkrIzdAOGdC'@; put 'JlRLLCNwOFF7aGJ6T35mIzheaCpTel9aRnVARn5vb2ZVQkg0JlkuKUwiUGgyay8zV0ssbFVULmUidThEVmRvdF5WcGcxWXVZflJaLGtlc1d5QWhecGclSjleRj40O09we3VRWEElYlRxWS82clkmKGFtN0VZaTwrI3FpQi55U11LZEF3fWs+MCpiK09eOCZ4QzBMVCtacz1teHJYLlo+OVNAMkpO'@; put 'eTo7T2YrQUEoIzROLkd+MDc6el5WXmd4JGkzSFEzPEZ5X2hVTT9yXkVWIkkkVkEyTSghb3lbQT4sdkVyTyF4SVFdcntwdWV8fjt6X0QyMkxie1h+PFdJUCNVdypRUTZ5WnVHIWNIRF5jWzk9dVlaKy5GK2NpMkclQ2drXyEwWGVTd1BQeUs3RE8pZFhBQWRkZj5DZmRVTD9SYkhlYFM4MWhiOnhu'@; put 'M3NgbVUqcGIkaSZXSXVXKHE6b2tFZVIwKHVnP1BvcW9NL0JpRHhSO2NiRFtOPjBhW2N9LjthWSMyUSV4SWZ3UElmcyZ7R2AuSnNYWDsmQTNzdHcuUDFyWlp6Pjdvd2c2KnF4KTBZdV0sUjxzcnteXXQsN1Qud0drS35TL0JxQkpyRlIye01yTHZbRnJEXnRpW2NfLCQ1czZpZDtzTDBAaU90SHRT'@; put 'bCoxV1A0a3FTblVGV1ciSExrZUUsMktPRisudmtnLlYsKn4kMzpybG9yT15sNzFyTH5iM3FbNXpIaVthI2QpXnpzJlAqXXdleCF3aHpCOl1OaTM+YVsiQTxuZm9rRSFOOzBIdCw8e0JGW09kQThCWSZTNnluPipqODNrYHFyQ1hFdWEyc0UhPURARWpVVk0iUkdQZ25pQ2hmT0BySXl9KHR6LkNQ'@; put 'YGwzJmpQKyY7MVJqOCxBczJkX0VEPD5lJU9fZDhge0BLdGdqVWwrWGNJfGBeNiVZaTpLcGshKjozNnNPVzRTYEVqSFpCNzooSSttPjtJTTshVCZ4Wy4lU19kVXxAdkZYc15uUkhyciMwWyxLeVtLNT43b3BGayRCaEcjMSxaP0tqVHNmUUI/Pz1zRiFBKCZWK1NuM2NQaytwTjloQmJ+Y3NVTHxy'@; put 'Nj5+MnpRPDdvYHpWOlVLfHc+XURlR2pUfSNMQFpmZVtMUCZDMXkzNWwvZUZ2Ui5WSCtveXl8Lmo6bz5ScD0xeTNffEcvcF10VXR6MWg9dDFvZCEyMmU1R3JEPz5EVDlOcTo2d1N0JEJIZ1N0JEJFPW5MTzBmYkRYP0U6PmAob2kjQSI+YChyeyQkdF9dVVtOZmIzN15HOU5ibjVBbURuPWAoPnR6'@; put 'KU1YXW40byRKb2NjJXAuR3ZvW1NZZDRwakpTXitUW2xUOnF2VGoyUltEflRCckBTY2tjaTpxQVo6d258VHFBN0VSY3MyUG5fQSZXdj5tQ2k0cUM6JDN7KlRMKTAjT3s7bSpCai53biRTKT9WWygydkQ5MnFDdG5oYl9BQEJ+KGw0cUN0blZCJEJ5SV9KckBieFsyL1dFSG0mYCgwWEVISD9dU2Y+'@; put 'JjZyQFEmbDJudjJUVmIrdVdCa1RMKXAuOnpJSHB0SU9rMm52M29bbTgmPUV1ZzA9Xm4ybyUyNE4uSl1FYCs4Mj9uMm86N3NufFQjN3BqKilNKTs6Y31XdSI7X3c4KmdUKT8mNnFqKikhTmlpSD9+Kl1aOTFNQ0NfKlhlR2t3OChsNFlFPzp8KCk2L0k0LEp0OlIhQzQsSXQ6UnR4VzhaLz91XUBx'@; put 'dFNwViMpYWZzYlUlR3Q1YlVBWlNlLERubX5kIS9TSG9kYUhWMiRgUEg8bk9dXURHdHEwYHlOX155YHlTMSVYQ3M8dEtuPjNkfERjem5VMT4uamkrckVkeVNwSltjeVNNajlNK3E2SFpKeD4+YWtZSEsuMlUqP3M6MGV7dyZtcCxzZ0pjWWYpdz5sPkpXJFR0SHdFV3R5fD9kdDhXcltpWU9UTXt9'@; put 'Pm46KiwiTi59WntsW0RWMmx5I2Ntb0BpOElnVFc6Um80Ul1SJVhaMzh4PEVTKjV0Y3dlVXIwN3MrNXF3RFowVS8pOU81bnxuTDA8Mk5NMERJLkVqflk5XUpKMVEsNW9BIiRdRFYycE5udnglcWpibE9ZXiFQNTBjUj9pYlhARyxRcDUjZlohNiI6Vmt0X2d7WW1oVFc6Vi4hKHxDcXV7YW5mdHtr'@; put 'clNwdnBFUyZ3SH5lNV5kNTZySDpbJSQuXSYoVmc5RzgyZ3ZHNTklMkhUX2liVz9odE1iUGZCJl9NYjlBd0pudkJdMUgsYCQlXlUmXyg4fVlOaXdmdD9Bc0AqTmxYaWFCKzc7OEJXb3Y1QW1HckB1PmNSP2whVltHOSlMPXp3Zzt8dyVPZUdUTTZbdUQhaTl1c1M1QTwlbHQ5cjU/UyQ9bj1peXtt'@; put 'Uj1peSQ+OFUhPjVeWjAzMzBBZmoiQCgvdHwsIT9rYG9gYTVzU0Q7TmxHRU1BL2c1eT9MJEJQM3wsUHkxN3FuIzQ2On1AS2ZHZSVzbGF8RTd0ZSVwRzBnVU84Nz9leF1tRiUpcEpMbj4yXlo/LjdJTWQjW0tldz8qLjAlbFkme2FqWldVbUdUMTJHJngpZmxDMkFqN2FUcDE1MGR1XjExNWQpP3F+'@; put 'PnpUYkdzMkMpbHlJUmJkOnU9TXEzU3xBNHUzZ2VDXiVae1ssT1csUlpoKEJ8bUcqaGZdWyNRRzxfVUg+ZjtOODdqO09QbWZVXl9IWE4zNVJfdE5zXmRRRkVsQ1RaIl9KOG1ydSZKcTxFcUtLbmN8Vnc5fmZOYFt8OV9uTzdpd0xbcXVhe2hseUAwY1RIZl0wNyhbRjp0REZRKzsidU9rUFkvOWZ1'@; put 'bjAjdUMqeDBQTWxUZHQuT3JFPDRAJmxzVHpOQ2Q3Uj1vMll9RkJzXjhEbXhWYWpwc1JUMyFDVUswOj1GYDhsd0wqUn0vMnJoYmxSX29KbD5ILCNmRGclMl1PZXo6ZHkyfkxjbFgmezV1KyRsPF1mNGhJciU7ZiZSX2gyOjt6TENpN1t6aHU+NHMyIUt9d2psRXFGdlRsKykoSGdQfUVlTElLdjhD'@; put 'VzpuRE5OTiUlNG9RcGIsQEdgekxvZiUsZHg3fnthN3ElMVVOTkhPQlMxcH0zdzdtdCN2KSRveUlbezhoVU1YWzAkPjkzVGE1SClsP1g+RTleTyZTemUzd0xMVUdYPF1DODleekA9NVA5TU47dF1QP21ne3MzMyF3aHIvaj9UbGRQXjAkPmNLXTA7OUIzdj11YUdzb2xoKEBeYCtbOyw6TzpEaDMv'@; put 'MS8xZ0dSNThdbVJ0c0Z7dkpNQl9CdDJtUkhVUFpQUFAyUlpQWWQjcEtyRSNIPDE+cT0ldGxgcVgqMX52K2BVc0tuOWRxYzo9JGNxZFNwPW1uMGRlfXtuP0tMOHAkRXlkR2lHc2U7RyFMN1dlJHdyJGE4aHhyQ3RdVmJFaj92KUh7QzZnTmVON00pUjVZYG9tPTVlRVtJMGs2Y1giTW86U3wiNy5G'@; put 'P0dCJkcmdHRYfT5Ne3FlMUduRixkIW4kQ2pyQFdLWzlaXmxPY04jMTpdJENmVlBdW0ZaO1VBcDE1NCU+YklWMD5RWldqSkZ6dFVqbWFncXg1cE9lVkVkLFFqZ29FPzpkWT0pKHNfOiE1Ly8rSmVWcilHLEFaOEImTGM7SmQuUHxlSHBIaUx6UlFtTT0lUEEjIThVanlzbis6KVVlR1ApTzddOVY1'@; put 'YGk0bDF6VEBxY35UL0ovXiREbiFTSUw6I3Z5cipGfF5eJW1gfCVNP0dxQjI4fjgrQER1JWJwNzk1Xmhic0JyVEReIz1hJF1LfEMrRUBeUEdvWmlVPTZ4LFpvey5pJSZdL2pmMiwxVCp2fCg4KUciUmxlQnUmezVnQjhmUmVQbippa1VaWm9JMzQ1JUchSlg8b2FCKHQ7aU9TWD4rd2xTWXY6MWN3'@; put 'bFl7OnxlKy9eQjh6djRvLFh7Q0t8P3BkI2poL3c2LGJkLmolV1sxIUZuLkBNTlghO34vflVvZzJMX1IlK3FSdUZQMGVKUDJrTzZoSzspPUlqPDVBT0YjVjk8WlJAOG9+JGNsNyUlSiU6dj5rT30rU14oIyx1bkssTkB0Wzx4ZGRLQDcseSZ7Iyo4M143MkE8ZmNUX2NqJFd+LCtwKUh9aGVMSWNa'@; put 'ZDopMTg5NDsyT1smaDdaeHw6XzJvSD5RK1BjfFs3MUlbT0JoJCw7JSx6YzhAPCU5bylpUHlVV29SazU/fmx4MDc5M3sxfi43NDVwRzs9MmY1OE96Jl4oX0RdUEpfXm85Wlt1W2hRVVZ1NFNndWtvUjBkVismUG5HUk4yN0BQZmNrKi5hIilVUTlMKU97MXtPN2dBblhOd2whUlpfPF52WixkNXFR'@; put 'bj10RXNEKDR6bSJrXUQuWVd0cmlMajBwQkdWYSVmV3E7TFRlZGVgWi5vZEZYJSVTd3RQYkpwPy45PHdfWXhibDZjJVYwZEMzJXxZeGJbey9Xb3JyY1VPY1FzP28rZWdTeCwsYkpROHJVXldWei5JTFVKb3YkN3J5UjU/UWpXL1g2IWxPen44Z3NUOmZHN0B+QjReZWBSe2RZLDxuLlA2cjNQdjB9'@; put 'YWp7P3U7dX1EaDVeWnNIcDA4JkkyX1ArYT1zNlIhfHBfMjAsYnpteGRzT0R1dm52c0QhYl90Vz8wL3lWfW92QGgrPVU7bU95YWhTdWQxR2FoOUN+LnRdMS55U194L1o6Pi9uZVNeaFpENCNCbX5gdmB3P3tHPkIyT0Qrc1VqX2x4cjx7L1B7Mm17Il47e0c6XSQ/KmQ7KVY7MUkrcVJYNktzVj0i'@; put 'bzByenI0ZmduT29wXUVWeVVRU0V6V3B7e0h+blQ6P1hkeUF8cH4hKy96PVJvLkY9Xm96JHBqKnBmJH1qNl1tNm5TcGZROmw0c25KajlPZ2pvKDI9TiEhVXQjaTovOjQ4WT1NMFIsL1gmMlp0NnRpfjhnRy50NmVyQnJSRDV7OT48K3I2RiFjbSsoIU8wNVJQeW1ATVklI216eFdXPTlsaEwlPkgp'@; put 'IWRiNCwvKCFyRmgjJk5nQFZjKlIrK2A+VkhFd0MpV1AmSi9oUSphXmwrRGVDWmlhZVBSKCVYNGc9PEl9NDYkU25MUXZyTEliTjlKU0p0XmkvMDpfJWV3Y19BME5pX35+X2t8Ik1iKWc+TFlaT18pZEhrPUNPcyZVa3BhWDtEWiRJZFMoKSVOPywycCFLPkh7Y2VKbG1JN2VTPndFUWksSk8uM01X'@; put 'b1t6JkRna04qI1kpSDo0R0pbbVNKLzJxVG9fS0pUMl9GJWBRME4lX0ZRNDtDRmxiKnA9IygpKn12V1Bneno9PUQuKlJAcCVrcjw2dDZscng3fC9oRyNVcGNaekFyUSJ0OlpPfnRiOj5iQSlmP3R7e0JJW0FuMndyTEoueCFTOn1nKXlidl5TMmljOyJWLjJwIWw9ZjBNbipCdlBjMioycCF8fDxb'@; put 'O20sKl0kalt9XXMmTUguc2IwSVtYPkQsTE99fW1geVRrYn5oajpSW2FrYkRRXzB4RXpaPC4qOj5OKEgzQXlvQy5tQzZ9VkBdZk9WdGReSmlPWlYwMTZEKyk2R0oxaU4+X3FKT2U+WUZRT31ePDJvUjRyTG4yb25OOVpVQi4sQiY8QC4qK2thTltFMGcyclJPfmhddi9ESHIldnNAeTYmflU0cEMk'@; put 'IV5zTlM3Qip+Vz52REZeJDpMdHlAMWFwQXxuOFtbaW4re1hVQj1JUjBLM3AvL2A4ZHhie0gxUH00eyU6dVBaMUBmP1FsKmRhb1tyZSE7djhlSz0rMzRtQT4mK3xDPTlsTV8rTGRCY0ZlUzVVb20xOWFMYiZhbnYxUmdUb19Ia2I6UVB0Q1ROcV06TyltUzJnNnZlSi5nTFNZIUJ3cCEkNEhGeiNx'@; put 'SGxETmZVMT9POnMuX2JnOX5gX01yPWBNYjltPj45Q2JRa0gzOmV3L25fYiFYXXQwITpJbUdyPik4fXcuekJrQChEKysuRHNhPzM/ZG0jJSk6NENWWmR4Yll4TkxeOG5iV29uKnp9NTYoV0Z8PkYoZmZoOj1pIltEfTlaaXRjSiUrYlRhNjBkWWQoRVBHRl95cG5vSDN2cUFde3FaUXBFaEFHP2Mi'@; put 'a0V7LmFKTzZUUnYlbkYkRVVEdm8/Wi89PXdnSTpnXVFQcTV4RCF2Jm0rRH4kblBRR2E+Zjp2ay9QKy87R3U9Y3E2ITVPYTFHM3NAKjVMN017ezYjZE14bUAsazQoUHlve041XldxWExkW20yYFtUMF1TPSJ5NGtWOldTdT10O3dmVHRyUmduKWxHNFtLMSZ0O1JhLDcrJkVUUThaImdAXip9T3R9'@; put 'WiJUSDQhOTwrbmlbVkZkTV8jbD48bEptWjkqYSJbe3VKTnw8UU03MGtqZEs7ZSVYLjo+dDFlNGUifGBkNTJJdS57QDpEZDMwYHlCeisvUD8vcVNMM3F7Yl0oOCNdOHFSSlJeaEUvTGZwcjhvYiEqOkJoODN8VWMyNHQ3SCx4bWQ4fnVDUD5tMHRZVz1md0FYdFZeKk9YMX1KMmxaSSpJWEdWLFsw'@; put 'bnc+dCF5Xys6SnNvTyREcmFmLGZnSUc8SjFDNzhdanY0K2hndGw+T11FcnB5L3VlT1ZILl4zdVplSjhuekZTPDc/Kig3KFQ1Xz9TNkVTd2RvIlsyTk9vRTM6JE44ej9SX1VNdzt4WHxSREclRSVEMjBgeU5hPU0yTHdnQCxjb0o4PT1jXTAxOVJNbEYlfjhGZkZXQyhKaX1EJV9kZE1HcDBBTXN1'@; put 'e2hmekFkTj5EbkQoZ3dweEVNM200UChRRU1BRE1pOFkiKTp5bEViJkZCS1luSlBNejZFST09ZDB4MVBLIiFGJFRyMyJUKGYwaiM2RVJgRFkqa2tyU2k9ZDZafFg+UURgN1s9SnRZYnI0dzI6QC9bYyR2dEYuSTIwem81eGM2SDh6bzV4KDFnXVpVTzZCfC4kczI7b2EyfGtSWnFmcGg9W2NdS2Nu'@; put 'cCFYaF1lUUFpb14rU09LVHZDNDlfZ109cU0yRUhAeXtmUnlAJkx6WyhLdmhROiFSImJdeW87RHVqdzVpWE5lVEd5bVZJdnFuMDAkKTFeb2B4fTJxPSNYU1dKVEFnUDpuSkI5OFQmWH1QaChHZGtwR3BAcCkjJEV1ZWBrV1ZpZGo6QDBaZSVkOTojPktyUUVQOG9dVF89NlFxV15OPFA7JDsrU2cq'@; put 'MkAqYi9jfTgwRDt5Z0MyTDJTdzM1T3dyMmx1JHAwLylXdiI4KDx0LDYkPjdUPzgjPllSOD8qWk84OmJPM0Q2aF10UTxmYkg0e1ViSiF5TUZwXWo6aXUiSENRKjRnSlQhbXpqWV0qTzV8b0V4VGRLWC5FIWIuOzEjTHppWlI5bSJPRTN8WmhGJWksPVs7Kk9TY31VKTtGRWE5KnRVLn1FV3pKI0pa'@; put 'LEBOPWMwPSwpOVpOWW5sPWZ4PXNbSlIzfHxXcnJBX1skUSo3c1p3aEJlTUBCbDcpeW92T0JPRHBib0htWX1pSWFQfGVMbGd8PkVrOSt0eWBKQjkkOiVFMGF2VyxKI2NiZDY0JG0yeyQ5JHo9T209UF5pbEJsQiUjbFdSckYyP3xKbyY9bihQSl5oSFVETHgmdXp9XzdVQHk4ZXM/fSQ2TW54cm1y'@; put 'aEgsJTwwIX16Vlt6LzZlc3BtZ11EJSQ6eiFdYndLRjJbS2FuRTJ8JSQ7Vm80OCpAblh6bD9wPEZPJT5qSFF5fmR8LG10VFpHfS9kLikxQWE9eitQO11RXU9kLC4/bWRmITtmT29tKEt7Q1c9Snx1Nyw9eGpfL1RZKUpDKGFePmpLclA9S31lMmNkMlNKcCoreXBjNW10QFtQOjNaLEMlKl4lfCRp'@; put 'JVYudiFxci82LC90SCR9Inw+X3JJVSFaOWB5VkwwTCZWJmFhP3ElclpHKDg9PDMyYmdAQnF8PWd1ejtEbF1FKjZrVn4pV05NUmA3SCU/QyQmPWZiR1h8a3lIPEwxVyQ3d01vVHx0SXd7XnlIe2RZayRnZStmOjY8JiZNbDZZYGoqWlZ7U3ovLF9taDhIO0MlWigpWiVfRkFWK008ZVAlM2ghK15V'@; put 'VEgrbEF7Y25LMD8mW0NNP3lybjs2ciNRIVloZVN1fExoOHc+emJ+NSF9Vzw+XS91JVhJPiNoaHg2SEZzPE5jOnBVNTtHfkU2RXMsNUZue1YxUkAhPjhVOFhKYWQ/KFtdczlVLzJmSk0pYjQ0e3tiL24wVSNVLiVLV1swbW4wWT11WHR9cCRASyw2W11kYWE1Ny8kKH1dZjcpJW9dcjJ9S3p8TmJo'@; put 'OnlyY2g4aGhXMnJ4P1I4eH1UK3VvK2ZhbVVDWTFPd0w5YjpsZEohL11FXnlZRE14IWs1Z2hxcF9vYFN2Mm5sIUFwdzhTZjI5eGRKemFHI3FNMjZRXzBINntyLzVrWn1nXUk0WS5dJGI1aiksOjhJPHk0THF4M0g1XSxLZFBQLzw9InFWOSl2Y2VmbU0kV1BUTXNjb1RvX2FoIU5XUDg5Ky5faTFV'@; put 'Olc/L2hBamUlWFJiI3FybTw9eyMobFRIPCw/PS9aQnRBPj83eUxDNjVvUnNIRGBfWTNrKzZNS3ZkSHkyT2coY0BseD0vZDBpNjsrM017PSVeQiljMGY9JDRPK2tDeEhrNkVmNXhHMFFDb1NwJDsiWC9BNkBzRk9FP3B5PyNsK15MdmJ0Wnl2cXl1bTpxe0VTKCpCM1d3cUdka3JtOmFeTFNZJDY8'@; put 'YHhdaTl2dSl6ISorfktsd3tHIT1fZEdQLnhxXmJfZlldfC9NO1AyWy9maC4pOVQ0THBCWnNiLyF6Tyt3VnUlW2Z2ST9lSEsuTU1fWitqXTpmQ3NPYXcxSjM6ZSpLaFFldjJGfVM5UCZUYkwjV2pMMWBwLkUvX0ZfSWp0T1QmbGplRC8sZy8kTnJDTSVFWEZjZWBwJnFZaGY8N0kpKlp6fHJwejAr'@; put 'V340S3ksJn5Acis0UFgiWzdKPVAsWC5AUDdbZEE2Xk1gdDxhXTA3SEdheEokKEY7TCFHci98Uy53RntoTVluSj1MZ3VkRCpkay9dJDhDfGE1MjIjVzhaOyEhfHY+UypTUH4jPmc5S1NeUlYud3suc3xvfSRtLjNaUTZ9XWprNytLKzRdTnlCa1U9YSQrc1YuR1Y7RXFsJG49eikjYExvMjQsTioo'@; put 'MmNEKmRuI1Y5cmN+OCk/T0QlX0BtP1ZofHg9UmhyWiRWdDhdQV5FUyszKURbJWB0PihCS2sxeylbJihIL1hrQUxMZFUrXWpCXVp3YElTeHU3aVRReXk+NV4+aFdWfE47I0REV2RBckopb0Escn1lUSg0SThnJmNBci8idFZYXT91UU00LkJjN0hSWi9IY1IyOH5ffjRAZiNrUHh0fk1dR3Riek9+'@; put 'OUI5diZzS1c1WCYsdXlWaFUveXBXS10+bnVnS2pMRklheGw5W0hESE1FWHVqY3hXT0d3PzhbSGk9PThbTyk7ekZRfEhGSUYkIWRwQWU9VyhOXlN7b3luRE9xJUc4WncqYWo1PFouZC59aW13NS8vX2VZb2shaVtgRGVYeV8vVT83OUAvZCFdZDdjJG85QENZcCVfTGZfV0d9V2R3Vz9kdV1NKW5X'@; put 'VSJ5RXQuSTFZUUZuez44a1picDNWcDp7VlM/ejJZRHpWMHpHM317Y15rcCxeSnZEUUd4TiYhR2F1SFo4YVQ5UmluRDxYeTU+NHM6KzM/ZC5MLDZtSiU+OmV0JSgpO210P09TM3xHTTk+bH5SQFNjaUJueStdRVYoeXclLzxSQH1PeT1LTCklISsoc3A+TndPPGhRRyU8WjZLTW5jfF83Ll5CQEwz'@; put 'dmkjLE9nNnMpNCF7UHJfJHpHc0s/LkJmSFNie2cubUBlYDY7O21COnwlXztwQldrLnFubF0jVUVxdTw4VTA/N3F5RyUxfD13YTo8dyRZWDlkeE86eVorbT4+ejxiWSk6MSZdb2M9LEdFamdWbyQ5L2Y6Y25uV1VweWd6cnxvUntiX3ZyJjlvJCI4OVRrcDsyTmJEb3pJYFl2OjspKD13Jj87MXx1'@; put 'W3xyXyFtYyNkfUhRbFdINSUpKkVEZy88d2d3YHkhSFBHcVRGTnNdU3omdjx3Tz55WlcyS3opKkZ3aU1tWT8/V0BpNS5xX14iVm87Pmc0Wk9yfEppOTF5W3g4PWpbYm9mOTlndXIuOi5mK3NbYkR3SW95RF8sVkBZTHJ1eHhDTFE4KiZ0cHx6Xjxke3xwKGk5ZH5dZ2pEZS9jVEQmM3ovO21bSzhA'@; put 'b29WNDtVWl9xJXczYy9qSz8qazNWOkh5TGcxOE01JCV6JTg9UjsrVkd6SVNGYG1VP35ZPDUmJDJieWw7TXZOWDl7Xm83fVhFcSU6LzVxSVVkOlNjPyVhX197UF0way9qWHUyfit8TVMmYDBANk5WPl5UWF4hLyVIdzFNanRaS05jVX1MIWxCNkVtayNlJSVsclNsI0RaQlkmSmBKI0VgR2okWE18'@; put 'PFhkQDIqdmlaTTIjR3h5IUtWY3clMnY3Y3o8KUs8Y0BNbHBnTnVjRyJ2Py5sNXljcHQlYnNLKnd4fnJHb0wzLG5fW3xCaEkkS117fUp3QyFCeX1uWkFrMWQrbz1eIyMqPUdhTGxbbVdzJDl+cU9sJUwpdixxSFhlOiw6TSokPn0/NiY+eEUzWndqV1haS2d5RzY8T2Vdb3w8bT81NTw5XWFQPDlF'@; put 'TzVnPGl4XkkzfCZMTk01JG13b0lHVT1RNnddNmkrTmp0R1hyImVZTGx7S3h3NEZUOUw6Ly8zfDs8MWJ+PTtjWHU+ODY/S1UiQCxdMl5NMHltWHs8QDxAWiw3TmF+bHU2Nk1mcnhKNTVdTDFKNFszKndyKFUoRnBMcDspQ3w7U2ElXzBuVz95dWg+VisySlFEVU4zZW4oYTlgMkpVJmZYcDpYRiN2'@; put 'eFRfXXQ5TlZwVFl3SypoZF1fbXM3VndmO05fIT0mVUZ9M1NOPjB+Jm08eW14aiFLYUZ7QkY4ZG1ZPTVDZmdZV29qZEBSPkNeU3JSeFNFOGBQaThne29tUmgvWzJjVGlscjc7e0BgPGkmM0piSWJOfWQ5SnokKHEwTk1bSCYhISx5LFloKjhxfEQrZHorb2JRSFVuenxqcDRIais9Z15zNHRnOFNu'@; put 'LjRSNyw4MDJLW1B5JmNqXTp8RlozQmdBbTJmVFBETHQxRkdFOSEuZyRWNlk/OG55bXlzWS9yYzs2O1hDTCQ0UkE1Z2w4NGYlYXRjaUwhNHF+O1Y7ektZPigzaCFyZiR6L19BUU1ffSV2JHk/MEM4cFp+QjFNaDFaQzUoPCs0aS5PWUdeSGJYK0ExZFNZYklefi4scSg2QjRNVHJPOHBUI1R3V2Aq'@; put 'YHNqeSw8LmdxfltqeFM2JVVpS21IZUIvdE9WOnU6TT1SW3EvfE1YTDRCezgicHVUPkNQSVMsY2ptZy51Onk4Zy4iIXNDeVRRazkvVkNSdyJlcHZZeHRLeXZ9QjZESmFPJEE+dloyVXZvZ2dMR1Q9a2F0fXVFMlhTcDp6TjYqSjVpMmQveDxkKzU1fGhMOH1AJkYsfiJPRjZCLlhGI3FAQDolKlBi'@; put 'cGxZa2QpIlpPY3g4IXd0VGQ7Y0A/ZElLOi9YOXB8KmZ9JSRmYH1GXiZkVUJZbmM+c2w5VWtZY25bKn49bFo/PT5lOz02YDZ1PF9bZFlLVi5hNVcybD1nSjhaJSkpNyEudjVhJSo2UWJ3enRaL0VrKFY7KS45QD1uK3RmZlQ/O0QkbjchWVVZZTpacTAhME1BXW9QWXd5TDxRaCo9ZyxLU0VFIzRz'@; put 'IThFJXdSSjI9akxieEBPfV8pQX42MUQ6Mz9kakpybUMkSVNkNWksWEN6fUBtfjNPTCQyYnlPTGFifHllWX0meWxVWUosaXpfOVEvLlgibyFoREpSL29oTWBFMVYre3olVWx0Xnwoc05rIShjIkBLPWwqYEMlKUBvVi5CLFV3S2BzPDIhWTYqdD5tJXFMS3VVMHksUzh8R1MzSls+Wls4V34qcTdh'@; put 'alM1eiVmfFVMSCt5LHQuWnY4Xko8NzhuRHNnS2w0clNkdj9bRTMvfjE5ME8jRS5uRWRqPmFJXl5xZDJNQyZ6JGl5Lz1HZC5lcnU/MyN2cCVGRD54bWR0USR2KFZIbX1xL3g0amBgckh7KmtNYGBMSHsqOFh3ViM1V2YhZEVdWyQpWld9QEtVcnAhXW1AJDVYOnIjbiltVEBlSHZoNCwiTiwmfnFT'@; put 'fj95ayM9MVdmdSFRa0p3UHwxcXsubEsvTlgzREZDczZadzFgO012TlcrTixeQ3ZpfWhRNE9UYTZkXyE2Tm5MYnZHWnRQbXhOWSl6WFFkPzdLMSt+YHR0PUlTNmRudyFgX05GWkJ9YV5QZEVTSSwwO080WHk2JmdifSsqKHosXm9GSDdoU2I3b0VQMltvQ1J6K2hRO1NQKE0+YGtDPzwvNy9XNmBt'@; put 'UnRFcTwqc25oSCpOUU9xfVB9YS4hdW52cmVKcC4xWkoiVmIqVTBMaT8hK2NJVWRnIkJUWSlMZkhqWTl8LnNQWnwlSWd7V0U8WU9NL0RnUlA2YUcwZH1qPCwzWz1lNT1XaXJdSC5GIm5HajE6RkRRYy5gO0s1fSZyIUF5V3cock4qTGs0cWtySF9UOFt7Qi5hXjo7bX08IVY+Nzw8PDVQO3x0Rjs9'@; put 'OiRQQHJnJG88TkRKc3R0ZzhBRyF5VF9NN05zSVFUQClsfU1GSVRURm9ZPEMqc2pnWk0/Mzo0SDd1PHd5MjtER2RBcmBjU3BEVVh8dGk0K3FMa3BiPEYlVEUra01UIS9LRkdaOixdSzdFLixndz1XU0hudzZWJTMpZD9qKzpfUn5JI1NwOH1ieX1LNyVMSTlJdnRIfCV1UF4yI1RCNDt1S3Q5JDg5'@; put 'JkNXPShnNG59SXxkKUs6VzFkVXUwKFdVOz04bmFLOz04SDFLbXV3VitDX15MTk5RSGV4ZDs6aUVOSXR9bXV+TjQ6UEQ/P0YsS3NPeHE+N0NuKVJ0VCg0IWUlLE1abSFxZSpVLyZtXi9NdkkyPDpdNWwyTzBgb3c9O2ZJI2p5RFdwa2IoLCslKjR3Qz5VYzh3L1E4d2NIMXdhWU81QS51OUJkUkQs'@; put 'ZFhIVFFbKyxbejYsRyY/UT1tZno3U240ZUlfaCI6QmM3UmJoeXI2TkR2bUJRPHVncXNQRXVkcWxVdU1FNUJpOjdgL2JAX3dSYG8sb2MkVm9lLiVhS3FSSGd2YmVqOERxfFRkaT4zYiRJOEZWWGlTL3RtSTVIXVdWZUw2RT5pWmsweDdUXzNBMGRRJEw8cV1NPlBlMk1LRSN2TXF6SmN6Ykl3PnZl'@; put 'WWdQKDQ3JDJpUXJtUHArWD8vPF4jOkImaT8sNXhNRF9jQ1cveWYiSlU9ODcySlcuSWUpdD5TUEAhclVANkxgfTQuZjdSWEZALk9Eb3hAVHlSPjBkOmcwWWg3V2g1eHwvK3ZPMG02PV0uTmtidTdoOm5QVDNSNmdsIz5ob1Jae0gxUyNpR10+OlJTNW5tQHp6cmwqZTReYTxDbUJRInBAZEBkQGRA'@; put 'ZEBkaUhhaG5jJXciNUlObSRzaTxyazh3JWF0WUw0RmR7YnxWOl57dDxbe1NkQFZHKzg7enk/QH59L2FgfTVgVUV+N3dxeUM1NzxGZUZ5Z0x5Z3FfR0lfPn46cW86MTprfjdgSys1S1twJWd2SXMlQSw5eUx+M09Namgje2E/IzF2OEklbE9GU1codmNuZXFwbDY9XiNVanQlYz9GQkd8PkloanQl'@; put 'aD9GQkd8Y2o6ImB+cjNeZD93YUtOcXU6YU9DN04rIzYjO00odEM0T2lZJkJ4PXZDfCVDOk94ZVliNzxGdFE8Wys0RX59czh3IWM7X0BwYHNzUXs2cCY0MSZnN2IodjtAcD8rNEo2TEY6VUFhUFVYXj9iOEl5NVspYTl7NE83KElSWEtwekQyJSJfY102QC50MFVdXz1XIzY6V1RwXylodVErXXAm'@; put 'PWRfZSNZdXx7Wi5bbz4lbHpTNCNkR2lYRm02WUpEUlRfVy83anwpW25meUR1I2QiLFhocntkJEBdW2dbeDxLcCFxbndWXlt1dkZ7IzI4WzNoYytOQEldSzlAJW5nTmpnS0xUbStidSt+eHJ5IUdmYzNrbUM2ZHJhJVU7OlR6Uj5YMk16bV1TZW5fIWQ6TGFNPWE8cVZ4KUBPX3lwZmd8aWRrOilh'@; put 'anl1WUkqLnRTW1AqMj1TfC4kPURnYnFeLmxibV5PWl9mS1RNYj5nNW4+PGQ8d2NvaXptZ3VaYXAoPXpNajdwRzk7JSM4IyNZTmVSPFdbQzg+Y34+PV1weStdejs0I2tIYGcrdklbYzZSUVFrTzpuPURyRyt1TnBSUWtbUlc5cj1mWElTSWAuOXd4Uzd1Z2xMfWBtVVFYcDp0Q0Z8MTUjSVFwUmtr'@; put 'dU0rTkk6Ly41MiUrNEZgVl9bYHl8WVZPRXg3IlY/MSt5MCo6b11Ld1ppdTcvcSVRSXgpT0hBRCIhd1ZVS0JQKGk5ZHVKNDErZEZdTzVkaFdwNi8qRjJVJXF3Z0h8c0U+YyM0O0BHYC4xLzpyeWwrUEAxUjI3aXorLH4lXSJLVzd4TSlEclpkIkVZOlNqPWp5b34xaHQ2eyN2K0dWV2RycHZAV0I+'@; put 'TVlqejAsNVspKGNQdDUrTTIqI19DZ2dZPjhdWlE9ezkpd1dLTHhKVDlZQCR7KSslI19KNVl7YFtbJE99X0hLfH1naHwuZjlAWGQlMEQuTylPXWNPPGU8NnZ0fDpYOkxhZUtXUFZnU1tzSTUlPG4xImZHX1F+RV1jUWt4KntAQW5SLDhTcGJWPHs5bylLOUBeRWJdYC5JdlhnN0JYXXtrXVJGOypt'@; put 'UV1ZTV5BbTxZRlROYEJfKyRkXTVmYG18IVFpMmdxcEhNRy84b0khdEFzISsjVWorNS9ue25LOWtCSVNGb1Uxdi9UMll4SXw6OjAsd1hAPzppMysjKnhyLGpTd1EhTUh7KXljJnl2LzZYUm50MXRSKEtoOGpXVmt7eGlRQ1FVNjEwUEtKdW9nKThdZ1J0fUxSVnt3ZjIqYVlGQ3MlIyZST01lSzEx'@; put 'Mm9NND5PRSpbcy5dU3tBNFR9ckRjaH1MTjIsOipGN3FwKW57KDJwSUd1PkMzN25SczFPSjsjTV81XjliY2A7IyYxLFJzWXN4LihaLyFHVlRVZCgqTnQ0LHNFT2tRbzNTfDpOfCxLfShud3o5JWVqMCI6WiMpVkBtamI/MWFMfFglNSVjRkc3ND9Tdz4pWU45Sn06bj5jSC9yOzdOaS5vYTJsIUpY'@; put 'PWZTPFgxLF9SPFgxLGM5OmptUkp+I2g7TUtyKCZzY3E2U31TWi9hMyp6WTR3d2VJTC5HaWVzRmZIOzdddmMsfENGUT5PaS80NXo9YTMrTC9jdF9TM0E5KDwsPWA0aFcpNSVVO1g7RmwiNmVuMUFMYk48TSwsNiw4QDs/UDNAJStTYjdhe0VrQkY5O19SNUM9XVpUOTt2a2VlSEkwJmtPRU5FQSpX'@; put 'ciVwbEB2e2EwO11vblluREczckAvLmZqXS5PNU1FQjc2ZTd1SHN5PUBldz5uJjwwRWwrL3QmPyp+TGZveCx8KkxaKzUqT1MmI0pdJDUxJjd4b2RLK1M5WW80W1JpTCNyNU8mRkohYjplcVJiOVV9JH1aY1t3RUYlciFEKDltY1A0UElTJXxFVnM9RHJHUzFTOU1LOntxYnpodWhiWHVqeVMxaWIj'@; put 'Mkd4W0c1V1ZDdFp0dVFJUXV2L2xnYjNeVGhWaC50RS9YIiV5YnEje1oheClLMW94R2UrWEtddShWe2hwJSJnO0M7VTd6LERhWTA/VWN4TUxVJDcmYzd9Y3Q/QTsxT3pScEVLanlJdV58aHlIYmReLm95PjN7M0xqb2dWVnl4MlVYXyZBRmsmUHYpYjd2Y1ZLMX5wK1VHSWgiRWc9I3k6IklUaiIw'@; put 'WHRIMUZNLFI9Q00qTTJBTX5rR0dUWV5Hcy90PikqLFVUWjt6O1VvUXhLeHE6eX1ecX1pJnV5TitaJik1djNheS9DREdjM0RVeD04M0Z4dz1JXlQjeWJCelRYT2owMmBMfUdvVkkma3hjVnJ3ckZnR0FoU1UxT05AR2A6cSo4PzFpfF9zX2NCekVxK1VOXjdrUF0lR3JZYlVVL3E3emxAR1JVb3F0'@; put 'Xlc8P0FLQEFyTTVEK1U4TFQzaWFuLCU1KzJaV2IidXtpOVQ+cDdxI2BVIzVDaHVseDYsWi4xaVp5JV1+LkpAXWBtV2BHRmBRMCo1KSEsQFhga2dqeEN3NVs0aTVLQll1WTBDa3doSH5VYykzVXNOZ01JU1FYQlk8NnZ4Uk91WmNebk92KyhrTTBYak8mRzkvN0dpJnV8Vix9U2F3MVVaNCtzWERS'@; put 'NmJ4cncyKCtwJTBESnM7bVg4cFl5WDlhZ3UoWFBTOXRBPkBodHUvYjovNnkvU2lLaDNRez9eKno/OmElbGNPVFFGVHBkSn1uZFAyelImNVtDcV1keTA9XVJkMTQ6OUQufnZrc1FTfitxTXpERi8kVSJhT1RCWXx0bjozY0cjQUpXcCQvdVtUMz94ITI0YmddSS5idXRrSkR2aztZXUtIbTFZU1tW'@; put 'az8lVyp1RjtGVyl4K1h8MDU0cHtYVjsqfVlddXo+T2EsR3ltezJSPkBOb1lbdnZwWVRWanlxMklRKEtUZWF8QiZtKW5gZTw2LDxpPjYlcH5gZWVrMllXdjhmMmhoKVV6RCRgNn5PdVAsUHZIM1NjWnZzVjd9bzRRaHI+V2R5USJxRjklTyZKbm52fGJDcH0+Rm5RJSpeY3Z0XUdtMmwuVihYcGx5'@; put 'WlpoQEFSIU9RRzpENEdwfT1pdHV2fU5DKjh0MVAqK0F4Ni9fMlZNU0slRT4wKz8jZ1ssUTRHVzt4JlVpN1ZUOU55eHBIfHVofFs5VFh9Lz0zdWFlJExJO2JSXSp3VTo9OzQxY2MmTDViJDUwcmZVZ0omaHc4Lip5ZW56MFBwSUwrRmJ9Sl1IWCxWfE5qeU9nKGNRclBeKFFQOigxanZ0OlJre2pV'@; put 'R05vLmVAaXpxcnVYOzhZOlhoPDNKcThnQ1ZqRFVGRipuSFFeZmtgMDgyTSM0Nn0+ayJQWio+bEZFSkM4eTtRb3xLcGgrVi9veUJwWy9RN1ZmJGgvN3dWQSw+PG5YUmArPTZXLC4qYHxTRjJ3fEhWYkJ0NmRnVil4fEJzYSsyN3JXJFN2SWFzcH46THcxSnE2fFU4JlYme1IuITlDbz5rJlk/ODA3'@; put 'Kmx7YUxiY2xTXW9iUEdDQFFJdHZ9R3F4S3s2NSVsMT5qSz1XK2ZYKlsseCNGVkZqVjIkd1EpLFU5OzYqbFAzdlVnR1hHWCxeZXVnQFFeVVgvampzN0swW3sxIiwkYWsvbTxxK012JUt3Uls4bENqbF96d3FhOGRJVWp4N01oRURfMHJLZkBeYksrdVgvKUduTVhQTW5BNTxecXIlTTFmfVlkKk4z'@; put 'NU83dWdxY29QTjJmSG9EdGs+cnIlMUtkVlFvfkUwMlBiJSlCY3JSKEVlYHVYUm9iPzxoMyk3a0BDckt3cTp5Vl14JE5kUVZJQH1eRixoR29fTHFSaDw2Tk8veWd3KmFQUWRWXVdrMFhFY2clM1FsSnN+YUdJfjhkbWhEdzFAcUxUWHU9OEdibnQoeSxrPyN1O1c6LntFR3cxZCZBRzBJRDY7bWRg'@; put 'NDAkTyh6KyZLKTM2cVIqPVA4MyRoKyo0TXFaUlZteXt7MihEUndda058U1pOTThobFhkN3hudkJyOEQhemFvK2xIVGhUdXlCeT0mY21wR3pAZUVNLHFsNnZ7OlhVVixyTnt7VEZYLztGd0VzNkVXbzdgN35mRmBbKFshZ3RaLyNAdWdAWld5aV5fSDhCPnI9SH4uek05bzpVOmE4bDdsUG0vQWJ2'@; put 'WT04Nnc5VCVgRHg5ZmgveDdua01ISF0/bWtYN0B6WT04UCpQZmgvaX0xWyRtR3k4NkBXfmsvVCs5RHxSfDd+QyRnR2NtfXFsOW5VMHEqJT0iQU9tKGhSVHtJU1F8cCVtRVhdQGJVXkZEbkQoKiIlQHZIZUkqQlsxcjNdYX5NTCE9eDRBZSRkRUw4ZXpPI1ZUOU8rVFo/NS5WQW1JQlJLXnV8aV1r'@; put 'SHFmSj1LMjVQZ29ne1t7MGpaUnUzJVRFc0xSYG9qbUM1XyVncD1SeV1veXtCZFNqOmFGcz0pKmRmO3whSXcrS1FiSGZBeHxgKjxiMkRoM0o6RWt+OERdcm9dPXMiMGdlbD0yaFRZLEE5JmBOY3k3VU1AZmAxW21YZFQkfFNMWDowfFo8RDFLZFpueXBGWy9ba110VnR4dEQhb3U9OFVBOnlyQWNO'@; put 'fmRvLE5iKTRkYVd3VyFpQnA1ZTYkVlVhJWsjezpEc35XMjc5Iz97W1ZvMmkpVVQkfGFPO11fKmYoKU5VO08reTk+eDg5cWJ8KjRVW2F8KiRVaWVpel8qSThlfTVgTCtiYmg0L11Lbk0zJmdkbX00bFFYV1NUeS8vSUlaLzYsbH0sNUAhXl5hPX1meCUrIT9TJlFAODJRM1syTCVzbl1bLDFadTMx'@; put 'aGU2O3lHd0NgVWJZZ01PdUczRmkvSU4zQ2RTM1ZLWmhDOWhUfUVTNzhEfXxaMiQvVzZBYXk2bEE1ZC5XOFg4SCVRK3l1OWteP2U7MXRnYT1DMncrV1QvRVZhKm9ZIVVXZWVYaDFuYyZXJGlHUXA9O3BJMjxpKDIzbTEuVkdyL3kpVnxoTHl7b2VDR3JfaHNLeU8veTtEfGh1Qj0vJS5IVlddUVht'@; put 'a0MqW2hXQCs2N2QkVns2d1ZPRkVZSVkpKDA2QWR3YlcmbHVBekFxYilhYyRWREZQIToifiIoMSR6Sm82O2tyNEw4aHl0KFs3SHZlT1tmbWN9Sm96Qzhje3ojWyxLZ0NFOShINCx8cTZlb3AsRDQsMlhCRCluY1g1Sjl8MXlWay5JY1lEVDBZWmtUR1FAZWdYQF1kW28wMj1BM0heflFrMlMzJlBb'@; put 'dz4sMiQkYHhAU09iNGlFJGF9dlVSRyg5b11KXStTcygwPjE4SzlUbzVVQHo9bV0yJit8eFc8eCVRbSp9OCthJTlJRl5FM3B3eXJWTjpkNUp9dCxGQC5PSUA6XUcmUH4zLGp2YEVxIixBWzt6eD5OVkdOOlR8cD1pOzJvLG0kOmN6ZzkmXlZSfnFxeWcmdXRxPDVpfD1bYjsxdXZdfGw8K3ZdczJC'@; put 'O2cqPnh7P1guVCovKz8qNj9GNzkxTnx6bzxOZCE3SjxoPD1xNW1hNDpZPTorYjdYS1dwOUduNHgjMFhkLlNjQD1qZXx7SXF9PSJePT54Rz49aEVCY3pnIU43VXd6XUo2YjlYOndGcWQ6TGFhbHp6ZG55VSpzdSU5MUlXOU5iI0xsXXAhXzNkZHRnSStGW2NQfi5NJWFydT8zKl1KSEhRSllFIj0q'@; put 'Zl1+NyIkckh7ayNmPjNMdU8+dFsvTCJmbEMieXhxZFosWmdAb05lRU1SZWVQKUFmLHkvOjJPfW5JKkg9VywlYT5LLl1YOU9xdTs4Q3o2Q3lLdzNhQC9fcmVgRzs5VG4xbUIuXjlNYGUmfiR5L2NzOyE+dWdlPHJrNkdeSz5iQXJHKj95Wk5QM1h+K3dgJktvVXBEaX1EKS9CX0xrM35qSXBzKiZ8'@; put 'bD47cGZ0ZzJNbFdfWj1jdyQwY3EraFtTeSF4eCo/N2x5SEo3JV1ffDZTWkc0UCU7MSJhfT91T01HUDpMMU4rJFZ0MF9daXdIb2NuRn1ueTRdKWxFbyImVCslPkNzajlQRkVnQktNOV0xfkhkbXM2YGdHO2lecXkuYC9LZmVAZkFbc1Z0LDkma3k8LjA5MzVJS2ooXltsSzhbRmBWYClffERMTyM6'@; put 'bnl+W245Uzw5eEN1Izp3fDpXbyRAKllaJXZEI2pQKCUiY2QrbXlnYj8qfHcmP2dQViZ6OT9fVSZuKng2KnlVT2cyO35gVmJdb1M0Q1Y7ST8sLk5deHMkcDNVSzJgcHpMWHk0NURvOlt2PTp3YGJTZV93ITJgVTshOmlsWjspWXg0TEV+ZUJtP0dwJWBWfjhUbWwxdkJ5NXZBT3NLbCNZdVNWbUxX'@; put 'Ris5KyxqV3NLXW9IaW5mMXtTZjohdFlLUXlJNUBhckR7YSUwRHE3TWp0bF1tZkBuJU5vUVRtTTtrbUhdUEYySTJNd2BMUTdbZExtLGxkbWg3fEpYZFJkaDdCV183TTslMCJRaGM+eCFHUWk2ITo0JmRtJlA/UmUue3N4T0Y6NU1TUGk+PCQhdllaX1BQd3hPdysqPFtrfG0jMlFuRFhyaU5YTG5B'@; put 'K0k8QW43b0U6eGI3Lms3d2JHYnBAKntxdVNQJXM2UG9aXy9AKW5uTWojMmx8MDNsUlNRP0xUVy5STV91K11ZPD0vYVpOKjN0aFtvKWpKY1l4JVgzdF0rLldwVk5ddjs3KzZycFFhMTBLei9IN2MwQFEwTChHZFgrY3l5RUt8JlZxKlY8PzdPZ1JjQS5nPFhPVlVzPWFBQTEqdnwxUl52WjkiX2I/'@; put 'S0htQl92WlVscX18ZGU8dXIjNVN0P1NxQEE2Vyp6WzZWT1A6OD5LODp4cHtwWztMeTdwTnBSIyVkT2JObywlL3RuYXpIeytEeVVUMnFoLHg9a1ZvdClnKi9eYGpae3UrVCEzTDJkRHFBKzV+YFIqN2RATFU7PiZrJilILzRoLjMrLl1xVEY9KFRLYXp7UTNydkFVQ2lUVEtpcFk/WVZhPGJoNz48'@; put 'Z11uVjRVLC96XWRgVFM8T11eMj40VVAsbU5gMTMlKVhRMjJSb0pUZ0hZe2l4ak5YdFA8dDpaRjxob256amRBR21YKV1OWjtVRFJTMyVLYl9KYEo5TnNJWnIwW2lGZDVANGIrZDUjMiVFb2RWQXBQIzE2PHEydlFWVDA5Oig+eTVsSz43W3t2SzhiMFQ8dyphWEhtVjkzYl9iKDFkZ2QuUEtWcSMs'@; put 'SmwqaU4xclZhezl6ZCs2bnAwJi9vTSlbL290VVQ+M2ZSRk5nUyEuZ3AzN3B2dzckOl5kN3lCRiEiSGZ1W31vIjkjNUlwK1N8Ik1GQkprJCJFSzl0VkpVYTQ/ZEo1NCh2X11sYHRDNn1kMCFDLk9zNmpXb2A/LkV4VnFSISNuQihdcEV+UVhadFApKDsqNGV+V3IjTig8W0J7anRPTlJEUCokQ0hN'@; put 'UzZJOztLdl4qMHZPZSFTOk19PHk1O0lKemdQZkpsMiY4VmRaVTZHekB3OEw+T25PfHQ0R3hWfl8sQXVWMHosZFlEc0xRMHd2K1NAKjE7cEphKz0wTG8mSHJGXyRDYio7QEZ4eTI/clJpPjduNjlRZTMkVGU/TlV8W1AmZHA3fmJ7cUFNLzU4Ui9MMzU0TCpLVXYicUFNUnJMYiJxN0xzXj4vLkJQ'@; put 'bWl4P1Nje2xqTjZQW306NlooeiJdbSQ5emkwNyxvXkIrMz5bPjk9I0VfQmBfMjlzK2BtO25XY31uVWQsUVQlXld7PE9nZjVuTD5UNTpsbzAxXmB+dEFPSl8sJkd6JShtdnVfbHltT1Ffal1mOkZvRiU0dlNQUm5uSml6ck1QJTsxRipPd0o8VU82NGw3OFhGNWFYN2wuLHU2dSZEaFo5TmhRWTNs'@; put 'XWo1JWdpPE94K2FwWzViOXE2SnElQ0MqcitnaDpsV1QjYEYsJHlST1NjdUI7NjNweDV6cGZCKW4kJEZCKXc7MzBRXV11d2hYUF4saEh2RFEqcyhvRH5GVDE/ZT13NVFjMTFzQ19OY3sjQzNNcktRZXxMbjI9KVlPWFJrSCtbWj1qMFI7KWJPQ2pXO057PV1HLkxpWjdYaTlPfmRsazkhPytUP1dg'@; put 'YlBDZTFqN115azpONVJ1T0RMRkdiY3dWP2V1PWQ5aC50JD5rNyttSWVbI1BuN1ZxV2hOPEFwJGJwQltPYXYzfElUTW5NeCVNYlZ7K2w1NmliL19yWkBWZ1hIWDpzVTt4JmtbWz9WbntecnBNbDUkbHl6MEclYXR9XTc9cWVdM09eUExIWSImJUdTK25OWDhdayxNalRrZ1svfENEa3YuTVs2KVlb'@; put 'WEBpTTo3QG1lNChRazU/Yi5ARmA3KztAWnpMRU1aT1FObWNRN2tIWnF3ST8zPilAYjc5eThbOll2WGR1KCpNdkhJbnBhaTB2UHFlPyIxeHxoTWBuNFJIVXwwRWgpbWU0Rj5wPUo1dmJTK2pvY152ckZWRWBJaWNeOnF5ITwjMDRzM0JVQzNwW1dxa3d3cW5zdnNaeTFjfTl0Q0dWLEZlRkkhI208'@; put 'RWk/bj1ySEQqbTQqS0VRZFYzan5bTStXeXFzc1E4Q0dWXnBPQFNVWy4vJDA0JTZNajhDbnlHVH1LM1VhenB5clVgVl5wT0BSVVthNytWK0FyTTVOPlt6czJ6LG0lZkgiPVsmJH4zT3Y1ZyJZOTFxRSVqXm88d0RqWm5xP15rVVNVZFtiJio9cyxMQHpSMmY/UkA/cGBASz1dcGBYMWxNRFI1Q2pl'@; put 'RFJHOyZiWzVCN0xrPTJ0Yn4rViwiJklYT25aYzQ6eWosOTI5WDZKb2BdfiN7aWw3RngzNl96M2xGKjYqJTBZeDpqR2k5PT8qdy5WKndXUmNpSyxYZiNbUUdHJTdHaWQzZjR7WFMjJjIiel8vWkdaTy9reFVKWCxsKGpgMEk4UF0wbEFlJTArLHVdT2hqe0BTLlB5a0I7UFJIVFFvc2pnSFNbd093'@; put 'YVluMUh2JUglX0ZVTTc9ciNvcTttIVlHaWNLUXE7NGBuMzdvJG90diY7TnNGKEsxVVt4SERRaUpiJCIzbkpbQFN5N3psKmxBOUI4bzJVLktFYUI5eHU3Wi5SIjVeYmxxV2RmW1pjJCZZO2d5N142ZVk4LmR7YWQwdzJBXTBGbGY6ZTN5dj5ZVSxbNGNiKTF2LmQqbk4md35IdzdqQFEuPjkvJGsr'@; put 'R1NObChsRGVCY0s7U1VVcHwpNFA4Z3ZLVk1EQlQ9MDVQM1g9TFc6b2YrPj1ufnREQV9dVW5SMyRBaFNFQ1lMZ1deJSRrPjxkcjI+ZzBaUmEpWUcmJWQ+ZT91a0kyPkM7dHwsJkJfXTcwRjxCe3AwI3pwK3IiNDdyQVNqLit+WiVpWjByUUU6UjBtbXZBREAjQXxCLHVIIjtmJEBPaXY8d2Q1aGkk'@; put 'dTtwYmYvY095cGpNcjE2SlMpWk1dXTs3N0RQZ0JuaD1FMjV7LnQzOD1QeD0jNHBHJVN3SyFeJUBUOldzeV5qK209aFlRSkFiM3BYTThBQ3wpQUlTQFcpXjpSRSZmInooNSFNNjchIU46WXZOKDBFP1AqNFcsejhSamVeeHxdPTF5IT1yWnk2TE0jPiJbIyJpfVBiPXtbM004dVR1JTksQTUsXlor'@; put 'Iz0xPzN3WXA1dVksVk46ZFFxWWpjPSJ7WUR9Om1naVRbezlSdFE7eSNuKjFuWTZHLEIjIUB3VjJtMVgieFpaXngwS1Y0LEx0SDNkcjpoQGJYWV5rcT03V1RaREZ9QFdxRlZgbkhOLlsvP2dETlg3VCVReGx4ckIvN1hNWW5KQXNAJSxQJE84MGIqMSM1WzVefjA2JnJhRmVHbzpMa3xQOXx7JUZg'@; put 'b0xWYnRvVHo5Ji87R0ZgQlV6JVYjUWA/ck19MWF3MT1yVU59RGRnQzdZTHA7O3AqKl1bSlpfL2lOXVZAc05rUCIoZjQ1Lmx0L28mcVYoT2hUI0s4VkB8YGZUd19vJWVzJSJabDJpKU1eS1MxYlM5U3BxcGU1RTFHWTsuVHZ4YDFwT21dT2g8UTlTNWd9S1E4ZF9wYj9ua2U7PDdRWk9+bitJZktw'@; put 'InM8KkFefkhwfVN4dF1vSSYrOE1Tb2k1NDVeQSs5bisyJS9jJGVqWmQ0b3ldVGEucV8iWVhAbVEseX5GVDY1PGt2PTZTOjVNTDRYbnFMbWRQO0U+ciRmJUZYN2hHYn0pTmpMNz1lKUlXM2daMXI5ZCJIfng5Y3BiO3tLNkZvaTAsejJjOT5RdyM3cCkrZCZuK0tBZlBEMS5iSH00d0twK0ZbX29l'@; put 'MSQ+NSM3Izc9Q1ZYaHklVXAielZhM2lZTFlVQ1QhP0ZtPjpwYDtGNkJCXX4rO31WcDtFeit0TUdoV29qZEM3NGFdQjphMS9NVUNUIyh6Tk8weCVdO3IrTjowR1ZCM0c7TzVyU21sQCpONTpWIUo1QFdyTkUoKTdQcCJ6VmFEVkAyOFY0VS5OUTNzQG5YaD0qSztkK3okNEU+c1FMVmA3dmJzYmM3'@; put 'OSNmWX5gLiRNe29reD44ZSFhWCx3YiZrMGNyQT8rZUVwQTFFX3o5ejZdOCN6XnNIUHlmeDg6dG5HcmtNNlJlaXN0dFZoVUBVLExPa3NkPWleUEpvL1pUWmFZPVFwY2ZvQThSeCQpfCszJXM1PWpVTnZlNUA/NCk2RnVFcyQ3b3kzN0dQWl9gY0RXenNMbXNvY0tveGdJaytfYlFlMD1id1d5UUtp'@; put 'IXpkKGhzTGhpVz1jYTlBe15UMzlIRDlONjtWVnYhZEh7Z31jOnlbR35+JT0kd10zbS4rJjomeEB4OiMiMXFsITphbnteRlI7PUA9bFU6L0dRJmRmbTNgeDduaz5pZ2BUMzlxNUZaclVaSHBxM10yd3giKyM2e15UMyJBbFt2JUFyQldGbz1lKzE3fmhQYy96U2FaQE1ucCxzPFtKYjEzcWFIJiI/'@; put 'SllkKXohP3tNWU1LOi8pcmVGZTU8NjdSciU7QztlMjQ4VkQ5MElhOWdgVDN2Uml9OEsyWXtGY3xuUWV1K01nYFhMRCheTCE6VFYrSkIrMStQVkM0djNyJFd3UH1xYUZQeXpaNSxVTWhNK0Apd3hqXSM9ajhJOG9PQ1ZuajVLX3xLK0RnamA+ZFFqKzVzS3A6fWUsWjovSFZhTTJNIXBfWUhITXFs'@; put 'ViM8eiMvSiNbK3g2QiQybV12PXpDc1h8YTtNWy8hcjVLVCEkV2xyWHk9cW5PRChsRzpJcT5QK1N4NElCOGhESGFCKk8wYCRmKzRYITp2NjhZUHZxPFc3eDo0SENvdn1XKHd4cXNfc21XaUhqRzUlJVlYOVcycjM/eHtPLk8qWmJdYDIlNyEyeUZkVlFvLDYwT1FraU8veWYsNDFhKWo2KHV7Kj95'@; put 'IlRFNUtycjBLW3xPMiFHdkE+OUIxUipoY100Oi57XVpvNSx0Klcrb3V+MEg8SUQhZnptUmBBWmJ7M2l5anBjNFgqN0l2ezZLNT59Ym9zPDhJckZCWEVWfSNmS14/PT1BI1UrWXsqdm8sd3ZbX3tLeH5hPyMyYC5bUVRXNCVsJlJPY3JNWypIcj44ZUpBVDQ6Ljc9V281Qm4lTFQ9e0tFcz1GOkt3'@; put 'O1c3bXtnei49VkVUR1A8IVFpS1tSbmkiNyFSZ1BGPTtPRzo4NlBpfVJhflopZ0lmS10xezA2LlRkeTRHWFRnKCZWQDJmVzZ2YkR5bnpWNlB0ODxrVVJ5dSJlVXI1UG8sOlVmeGw/IzZkWyp4JWdQUW1DPExtbTl9MElvOmJwbzAzWjs3XVJaMFYqeFVdUlJ1ZXs8ZDEjZStOI1kpayxHb2FQLzo/'@; put 'JnpySkFRVVgmWCg5I3ZFfTs7Tl9bQXJIbjpydVhDZGFJKlhQQV8xfWU2KG9Ue1QqVTlAPF93VG08JFlkcWE/YzVheEo+S002OkB0L1R0PVZNOkFwI3lAVlg1clY+a3ZSVmhLLnRWOi5TOS4yVnFhKUR5QjtLazxJeWdaaTVpSSovJHREZUVLO0A4bVJuOzloPjgzT1QvaG1COkUoe3E+XWY+dFY1'@; put 'clUrSTxMc3B7KWdMQExeP1gwSShHTyFXdyZ0YlNLQmUrREcrYT8jYihQMSVsPWt1I1ZeYk9UL3FATVRpPDlNJHg0RXxbVix4PDwuL0kqRGc8a0tuP1h4eXZPdylmclklb0BJVFh7KjVYQTwlK2g1I2Q4KyEpYStQcio4a2ApLDB5UnQwWXJMcD9KIn5OK0YmQVs5MklTUi51WDtBWEJ0USxoQE9a'@; put 'SWZiay9qOVY6ZTJaWUg0PltuMCssLyhncHlFeDZZZ3UxRHE3R2BHIytLVk4/OSRSODtYTy81JlVUek06PUlheFgsTyNIRCR5dFpiU3dJMHo3ZCQ/TylXNWp6ejU5cCkhK0lybSldWng4L0xtKHghK0MzelNRM2U1JVJQP0FiN2c/I3kxWlUpRDdLVDB2e2R2ZXliKWd3Oml6N19kMWdWa0xqfHZL'@; put 'InUvRSJRQVRYbkJ+TX5MJEYkdF52bE4/Vj92NFFUWDg0UHdkRWt8aEY3X1N5elp+VlAhNyxpWTl3ZEVSeGV4MGBBe3c3O2dhOGJMZkIsZEszbzUkW2V3U3VhQl03LFBsc0Q2dS4hOWp+V2RATW1vUnwlczovIlJxTzJLOWp1Qnt3JFAxXypreDRNXWpaTmkxNFVOdn5LVFpHaVJpfXFKWCFkXkp6'@; put 'PzxpJWdRa3hlYSJxVjk7IV84OEd0JWdfQjxkXT12O0AxZ2xMeHZoRlh7d1c9emxReDpSSTpnZEImVnR7YmY/I0JdbSI0ajRHQCpvN2lLY2UoZlp7QEg7OGY7Ziw4Kyo4UHJAQzRWV0BPY3QueXpeLls4QGpbL05pY3BIeyM7SHNAbzpGaUZYe0EhYzY/U1dTXWpuIyR4KypmNzdENGwmRmpGL3Ix'@; put 'aSpabFo3eFNVUnRyO3RFenkqX0lFczBTP08/KW4sMVZEQCRAaUY8W1kwemQ0eipbOEokKkQ1ZGM+PEQzUVlqc3AyVXd4TGtfODYlX1coV3tpY0tlTTN7TmttQ31IO0UiLk03QVBSeSRPZGVxJCk7RjM3I1E4JlVfUHZQaTt1clhYXW1FV2RNTFlZVnlyKiosd3l0clJReTcuX1dkSVFIaHpvRDNq'@; put 'P3gvMiZaWDdxK2QwQXdJIVFsQiZYQSpUKUp3fmJZUDdoUXF6RnB6Jih6aGVXfEZTTXV3PUZqRGNCWW5YS1F0Jmp4ODk/ZWNUQmZ+aU1zNU8qOFUwc1IkLlI8YEtKLFU3NSFfL007MTxBcmRYOk9+fGBmODdFMms0T3Aye2BKQD02WH5UXTUpK24yckBKPSJSPDZEOHBYTzo7IlpMVGs6dEtMeyJn'@; put 'UVIid25tNEt9a2cpejt2OXwzVE18Z0REVUNyJko6KWRTeWYsb2NzXjt3XWtdRF5Hb3lJTSZpLnl+bXtnMVhGZVUkeCR4XjkuQ3orfGVWaTkzOl0rcl51dzcuOHxlfldON1QpVz0sfTE0Q3xZQCZ0S31fV1VnZ1BVZ1phTHsuMWJUOHE6bTNQbjp9MUFeL1lSWldvJjpJJSljL1FyVk1TOjdiVitf'@; put 'XWl3KjlZezxFV2AoQE9dZnIpZ28iNWpKY3p8S1JYc2ZOUjdMe2BbVnJ+ekk6LyxFXnpHM25+KEltWUBLTlkuMW9KMTx5ZmhqS2UpbD48b05rRi5lUCZAdXk3dks5UmJjM2RLfWhFJG4zTyFRM1EiQHNzOyFtenQuTV5HUjErU1EyOH1FTFRCRnUhZDR7UmtpSnhEO3RKLHYjNS50NDAvRl8sbzRp'@; put 'JEM1UlpXNT91bnxPMmZEYlJrYXByMU08JjRAfmk+ZERoRSFSWiUuOjNmQ31TRT9iPiZnNVJMVXwraElFOixfNEBrcDM1YSxXb2IsQSVXazB7KTxpeU1lJi49JHh0dVY4NkdbNnRUQU5hRSFteWlld0tdWyUvSDooNU5GOU9tUylZPVtkZiRuRTNNRywrZloiQypZKTxwT3pkUlpedGpTR3gvRl5h'@; put 'MSswNjRYS2A7PXJEREwjek56UjhUYXtxRjl4YkY0Kz9WMz8qc31BdSw2bDNGcjI2SXRoW2NvOSQ0QEwkMiVfVFF8RlNSLFYwKXspZ2hDWWNOInhwYlVEdmZ4K1oqeG9iInZxUz5BVX1zV1hQImVIRXg3Qlc3bX1xMzNjU25KQmM2dihLT1pjNSNZSSpuOjM4eDJ8OiE6TW5FXXxuVGFuQ34uTFMr'@; put 'I0QvcWRbfD46VDIuIng/YDoiNE5QI2c3eTtEQV4wbnlbRnFrMntkOE05XShLVURqYH1WUU5SazV+PFh7bkhzNT1OK2k3RWB+LHgjfkJhO2BIbWMpbDUkRyRXNjJkSm18UDtZPyN+LCZLIjBtL2dQcjtAU31AT1FzLyJ5NlRMI1l4PXloR2ZYMlRCemp5PzN1Ok9iL1JQTmdsY31sNzssTGxdJTxZ'@; put 'XjFVNj5TNjRTWmkpeTxAOmdAUmshcVFRYkdrJXkrVmprZ2ArPyN7RitkIV4ieU9CQUxRdXpGc3cxL2NhWmJgZnM7Y31AI0dJVWpeMV82PlNnO0E3dGkmeCtOU19wdWpaez89W1IzKG8xPiNuZV9xeUE+LzVVaSZ4Jm96Tm1kWHJhT3tNVFRfJHFIUyk6TnsrKSNmRzA4UG9Qci94VVpDc31wME4j'@; put 'ZTEheT9tLkZeJTUkT306anlGfXdKa04vYyFuVWh5TTg8ZF1Ybl1NdHJiM3xYUmtCVy5mSHVFSW8wfVhWWWVkIm4qd3FmditYIkA1TjhiX1szKG90XnZ0JGA2byo9ai47cmYrZzRYLGRVPWVFcmErb3kwTDw3YHkzQnBGUV1uMTU/KUNpMTErMH5GJkt9TjtFbmw5OTFQOV9dTFA7ZWYiOVNQRnVY'@; put 'emVLbGdyRjd2YWYwKFVBNnRhIitwa2xIMSQjRF44byk9PCs6IWE/OE81SWw/I342OCF4U0s4flYmL0Y/YllvaixeYzUqeH5BbWFGTiNtSXdFSmE/I3M9R0VKXl8jcypHSVNUKSZtP1YqMWFTdGw0Rk58az55eUh9aVcvVmo1aFgwITBSMXFnQG5+Vm0wMj89SisleU9xcmYuMlNrME44T1JUY3tj'@; put 'fC9hJVc8fkl1Zip4RnpzeEZUTFBiYU9YNy5NdT4vMCo0Tzc5P0FySWslRCQ+cWQpTWc0d09yUkUocEA5eExeeGJMNT1gKGFkMFtfPG9dRz03VUpSd3E3I0Q/W1Y3KWZZcDoqai5na01obSF4cWlle2RqdmJJfn1pJmk8VzcxIU5QQUImajxfITBLemRTMXl4cUp4NDFdLF5IK3lVSj19cj5vekEp'@; put 'VCwoRU8jKmZYfTJ3dElXLmlCX1hMIkc2V0tjajpVSm9EVTwvKH1IaiEqNyoxM25VTjcxfXNFdzNVRDNFdzZeRDQ6NTQvWDtZUW9iPzIjIkVuJURSc2hCSk9qPm8uMS8/UG9WdjpMd1Y3bDhQR2FJKj58TF1oc341Xk1BUlpobDVZK1NPTjc7a1BmLjROTHpGUj9bP1lbbnd3eGMvand2RTtNUyw+'@; put 'WTdpdmBpLlcrSSVLeV0sNFEveD08fVRbPVlRXUcmST9dQ1lHRTZadkk1UT5TQD1iMk95M2gpdlolPltVODJbdSZMZzxZbzZgSylReHl2dypbcXNidnRoTXEkLyM+JixORiFSM1VCfjEjNDt+SDFSKlc2JjteUWFnUWMmQ1VOYERDTVhlZE9KOi86TVR5IkhaRiVwM3ZXVzNqK21DTTtfcX05aDdY'@; put 'fVUmfEE1KzMqW0lvWTc9N2JJOEtKJUB7Wit3Vk9dezxXcStuK3xJTFFWU1ZRb2VGcSZPbVpKbGQjZGo3Ulo+czpYci4qd3VIcktoQ3k1KkswRGFwa344VUVgLD1PIk8mY0ZrWXR9VFpsOXI2Ji5YNyRMKTE1UU0wRGxlKyxRXXV8cG54RzJndzV8XXEhXXF5clYlcmU1ZXxyWW8xRltbYUFMPnN1'@; put 'eFpwIiJwMHs2JDxCdHI4a25xXUs2aXlkRkZPOi9BSz9kUlpqaTxuK3wqKWA2ViUhMlUjZi9gbF9kcmgoMTgiWzMwfko7aykqN21WN0RyIU1Ta3FoQEp4TUkveUptd2lbeWJHM1ZeJEJ6emQ8RW9yZGtlKVpfTG1TPl5TcyF3Z0dSaU5YbkAyMmRJSDhhai4rQyliaS8remJDK0RXRndnQT45IXJ3'@; put 'XVQze1ZPNHhGKWU1Q1koa0swIUNHQDxgN2s0UXQrTXZocjQ0cyRNazVwZUdvZ2Y0Mnxzc3xYSEA+UHE/P1AwZ19qPlNBVil2ajVlSy8xUFh9T0lvd3xaRnlnIVs9fD5+S3lfT3ZJfj1EeUt6Rno0ZXtLOUo0T21ZL0I0bnRQfkUqXmd0KmF1I15wJHt6MTdILmIjR21ZNGcrNlpVdXRrZD9LJDI0'@; put 'YkQyd3w/O0xDaUUsWn14TU5CSnpGK001cTZXIVViJSpRMmJ0X2xJPCNSUCtLQFguakh2SnM7bntNI0lreWR0JUVSfW1lTjRTclh2PUBrekxkSFcqQCRxMFJyUkNfaDNOWltWbmBEZ3ZdRWFAOElyImpna20xQiZKX28lX0dsVHhSMlN5ZUprejBSTEdYNHdWTHh5d0xsdEtXbjF3TEFzOWhyLypG'@; put 'RlhyL0YyPEY7V1NAelJSQH0xcD8wUnBVWy4lfVVzWU1mQXBMVH08VjFqKjUzJGpaYyV1MjJdWCVCOCNxI2shb2syOWQwK0ZZeDc7VUQ3di9Lb1Z7cSNzP3RvJFZsezwxcFM+TDkrPyN9ViY4JSoxZjx5V316fi45aC48QElgeXBNQH1yazN5fFI+ZHt0ZmU5WEUwWTs0UUxXSGZdW1AqS20lK1NO'@; put 'd3wrazV5bFg9VDk0Z01tZn46YVR0a1pfMDlDVUQjWGQjVTRWK2VkY3kubGMvXSRVK11SKHU1W3gkbFY/TkI6bFFDSCFAYWxVOV5BfDRYMUs5Y0RhNUBgRGtRRiVfIStmJiJtP1Y7blNLZiJxV0ZMMHA7bUNNfEpHK19KZDZELiRbVDxyeWQrNlZqVDxGbElFYGJTWSt4VU9PXn5iSFl2R2kpQzRP'@; put 'SGlISmllWXhbdlR6YjlJVXlvYEtiXUkrPFsrU3hUOU12K2AmIl9XK3hdI1dFYG5Ed0Jwb056c11gWHlZQE9+IjV4YjkjI0UoViRuZl08fXV8OjYkNDE+Km91VDl6emFNK0Z3TGVoaDc7c35pPDVGXyErX3pzXyl8TE4sfF5SOzhNKVp+fEA0SkRSJT9wdmB5VE0pZW52I0h1NWVmK21jVEM0LDpK'@; put 'cSkxX3Y+JDBxIj9xZ2FWOXFaZTx3U2UrSi9jWlMmfCRoIW4rfH5JLjFPVytgYUw2e1tfXV5Pcyk2cnwjbXpGdnN1dV9uWUA/KlNRNll8aVdbSUV6NDpAezYzRF5tVnYrbXlVWl91Z31FOGJ3VjEsRUsmUFpfe2JzNkBNez98TmNwe2ZCWXNhNTdUJDUwJTVGcnNec0QpX2d+YytsZ1QiJGc+TENv'@; put 'T2Aza2tUJkd1PVZUMD82PkxXVltQM3E3KmVjfTpZYCR6cX1sJW1PPjMwV1Q4QDVFVE1+aVNlY1BQWmM7TSFdeEp9WzMrLmJkWzx3SHFAS1U3Tn1QIjwhNk1ybkk3VkQ5LEtTYmR7OUApR0l7JjRnUSl5WitvQmx+dEMvN3cvYCkjfV57eWRgV0ZMbjEpKnVOWGpObFdsMFdNVyxtP1YiJnJCT2Jf'@; put 'eHZiZStuVVpWc31iSG9EQF5MSUxXVkxJYDQ0NkFWc19zPFFRNUZHJHNmdXFdW2B6fFFoaC5MSHVDbiUxS0olKDkqYS5WOF5KT1F0PkNlRiZGSyZOci8xfW9zUnhnRnhAZWFwLEJVO01+QSMrVDg3YHxPL0IzMCQuVStJQGN2MGprMT8xWyRtMEVkb1t2cWVrcF5ZM0NuQzEjRkJGOE9rcm90fS9h'@; put 'Qld0eyV9NDtpfH59VTkkOzJOPihhN2xUaDxWUGwjRihtJDIjNHFRaiJiazdaL3JIZGwueHVoIVAsYWFTNEhoK3BFcTxQOzZNVDxQcFVaNmMyIz5JRENlNyplZmQiKlc5Vy9yQzM6UjlaOS8mfFsxVUlkSEVZOWRKR0pqLzA6Tyk5eV47Nz05bjlTSVNDJiFbKUdmKyE0USM0clhnNVtxRUhYRURI'@; put 'bVAmJFkrXUFjL1tLNkZae2h1ImRdWXFFR2hkbStJTixjQmVBQFI3MkZYdTJYRXMrTnIhQ1VUITlyZ1o0TGFGaWpnbHBVSCJbSmtYKDIuOjtIPVJoXW8rKT1iWHQ/Uloramg5bTBgZ2VyU18yaDtkcGhjcmY3Wyx7IWYzamVkMDI6cjlqcFJsIiVeWTI6LldPflh2YXEkZXx5JCM5fShoeSJxe0Fl'@; put 'UHlSeiVkL2QzNWx0MDVdY3EzXWBzX2w5U1o2Yl1SSVMjYmBZUWsvYiI1Xlsvb2VraFRdVGxLZjB6azRLa3d0b0kqZVlZMTF7IU8zNUtNTEA4VlFeRDo+aHp6dVUiYVdLdEZQbCU1Tz9NbVZ2TTJJVSJhWV9JWm03IkopSSVCfD84SyphJCR7I0JmcDAhQ1lEYmYxfS9eR1hOZHYyPHV1KzAxTmhu'@; put 'WGA3NyRSImBGaylpY2pdQVZBMWZvKiIhUEExMi9GZyNaamBnTWNqI3V4SUB6RFMrQnJScXlUSFJNOjRncWlWSnp6aCJ8OV4xQm9AUDN6QVdfT1RbRmYqRWhXc18mQWV4amlFJWc9eHVSV3FPSjYsYkdicGZmOVJXakp9QkJaQTZlY3FiXSUySDhrXSZMXW1SP2NvU3lAJEZdPHVfQ1ZqeElKRS5h'@; put 'L2d8cGkrW0goOTdSYT8xU1cxW314fHlSOTI2fjM1fEBPZCVXQG05O1VlKiFXcmtoVihEXXVvW0VfM2UrVHNTe1RJSGVuMjRWQn5jZE8pNz9dIyo6M280VFNPfkohZVFENGI3QiIwRDtCMG0mZn1AUS89OmdwWHB8UVBfdzg2cWZbcHJzdVc6SixeXlNlZSlOYTI4fV57SW9fMVFCbX5sUzxITXlO'@; put 'ZkFIYCE/Zj8/N1ljQ3pMbzJIYyxYcnA6ZjlNRDdZVCNNaGE3TDNTKE1EN2RrNEc9bG5tayt0SGNEfUdiYyhhKyV9V1gxb2dzTExTKVRYIj5CfmdOPz5MOWEqPTdUMnF2dXF2c1EmZDppXXVCPTJUKCFAeWk7Z0daaitpWmksVzQ+TU1oLmtRT29eL3l6YWR3Zzg5XiV0REF4YGhjcHp4OVFlZUxr'@; put 'dl1BZTVnKTlKI2c8IzRMbFBFVm4sbHBhY11naEZBMF5qKyhHI0pbZm9EQmFFczRHXiZeKzFYc3klNUlKKyM+Y1FEU04jOyozNkdaaUp6IzlSYnkvPmZ7cXRsKTo9M088dmN2SnokL2M9Zklwa01KJUlHO1k/I1JdMzZbLnY6eUcpMVVaLkdkelt2Jnc4KHA7QTZzSkI5W25hQ0d0eWVdUFp4TWEu'@; put 'XXVBPlIyQ1lWa1pvZFtDOWAhWGN6PVNuT1lHe3JCNyYzIjVXXmZJaG8ld0lWUG0wMlV3Jkh+XVVIPDtRfVpMJm5GUmhyT11HTHJWd3spSiJGL2NtRHJxOEQhWj9tfU0ib3h7eElsRERvdnRlWUg1dGF5MGdOSndEaz1GdGZBM2tYKGYlUEt7S1R5enE3QHghNVR9L2s9RlU2cD9SYDZLKFI0U0U1'@; put 'bWR8Lk1YN2Q0bE4+MiZSXWI+SntfUyQ6QmZeMnBeYy5iMlhURDNiOV82dGkmTG9ffWdHaHxdQ2JnTDF3Kj95XV1WZHh5PVs9KFJbXmdbWERQREt2enpwPW8zbC86b1omZE5hWX1FV18/U0FoR004JnhaQjJiX3hHflpkWjtBWDdBcVNuY0VoLnp2TnwhMXl2UTVGVTFaRUp5Ykl9WV9rd1l4Qzdk'@; put 'VzoqaGVKaytOQWV8bn46ZWMyaDxeZkR2SVYoNytWK21iMnZYMyE0UXt4anAhX25xVHp3UUMhWlZZKzZoMjFDIkxQNWBXdWRPeWRGeWdWayZsXjYqKntAJTdjM0l5KywzYXcxOGRbI0VGOCEpak1yMTl1Mz0yQV1hNWVvLG4lTCkyNnM8OnNIcU5HaSJtVGF2SUhAQz58I3dKZU1Mazg1ITV0Oz44'@; put 'cmtyVDo8d1B2UHhyODo/dzw6cWVWd2Q2JH1GXmFPOkdJcCZsaDdpYiZSIWtybUw5KF1kb3g3VTU4IyskKXxXeX5iOmAsPTEyO0RkSGpXUE02LE5GSn1iWmdaISUkN2k3a2xySENVJDFDSVJ6PiUlcGo4JXB5ZjxUJi9JJVRvaDdwO2x2NWVqeSsuMDBGPCZLZ0RESjQ/dkIjIUhMa3lRZSM9bHoq'@; put 'RmJZIi4seXk7MHdxeTt5W0xGSW09MC9yQjF8OytuY2xTI2NiKjo9Y1FVYihmcEdaIXlaaFpNPWQ2dFlMcDtWLEVgbi94NCt7LGpaVG9pYSJbS1t9dmFga09yWGdTdSRtX1EwRXNVTjk6eWZ4ZDdkIjJ9fU1iR2IweTteaUZEIX5GT11qLlptbUAvKmduTixvQmFdMUVnL0wsbzRLVkN7LFZdQmla'@; put 'aENxUCZHZSZyaEF6OmVeJGhjSiRYW053TDIueXglKndoem5ZZmpaa3tjQjgzJStiUHtQImRScFhZd2NQNCZBZUcxVV5lPkAyOl9BWCNrMVZZPj4hPnd8KnMmPVBxYUVqO1tKTSRIQVhVMkhqbHtgYDdkelRCKVB1WD5SNUNRaEY7ZDplfkJzU15tWD5SNSY/JVhwKCZTPkwhN11pJm1BfWc5eDZE'@; put 'KCIsTDUxPyNhaTVsPSM+fFRfJWM/bWIjZTZlOEBPR3J2UiFSQH1JZ0VTQmU5SCUrVVtDbWg7SEl1NShrNkVVRlthZ0RSVylgUkdDM2MsYS9vSGIsRWA/QGhvJUVVZUN2NWs0dWh2ViM1OkpeU0I2U0c9cGJVPlM9T3RWVms+VSQ0VXFtSGMwS1hqK01IcUhtPkokTiNUKjVjSTg4JE1Saj56KXp0'@; put 'VHJKb2wjMEN3I2g0S01FajRmcExtWHxqQ1NSekFBeyFUQXZEKU1OZkkpOz8ld3Buc2RbOW0lczZjXW5rWm8vMVZYO2gyV0FBQUFBQUFBQyI/eX0+THksQkptcUB7alVoYntxQ303Sj04MHNLVGQhPEIxKHVXW0F0ZF02Slc6Kj1CNC5jc3I0Om06WFMlbTA5fTsoazZ3cUJ5SC5IcWlkez1KVGZT'@; put 'eU5VKmUkT2w8b0tzd3ohW1FSY2tbbHNhZT8sdmJ8ZGtqJShraSV2TT9EZ2xge1JzYXsmN2QoKmE+UVQpbTJIaH15X2hiaz9IWzddbip2fDt7c1h5bC8kXWo5T0M3Vi9+SXIjWmQ1RFFvQUUpdHB8cEEzKywibWwjWksvZHRhWzNyKiN2Okk6ZCwrUHFBTGFHemV9MXNGQjh2QHdNanI4NnA1XjpM'@; put 'RH1gS19yX2cvJF1rQj1pQHp9TDVpbmhSQXhNeDxTXzBKfT4xOVFPTHQhYDozPUszNHY2O1kzRlJwKlh7KnQ0JjwqW0Y3Lmgwdz1xY28/YFMlNCsrfWtVPV89NylmMWZncDJnRSR+czFQVWkmJTg4Y2VhOTxtLlZCSG15eUFSUyJQL1B6JjhSVDY3RE1dJHM8bVY6VyplTFdIa0JlV0l8V2JmY1Ym'@; put 'IzU0KkZvRlFxRyhWKk14MlZXPkxyPzBHN0FQMG9oTHJ0MExRYlVCRmBCTSN6RkBxZkM+QFV8MWRyfV1iTHZFPHZxL1BJNnxSTGFkO0NMYnlsS1csY1AsKk9NTjRbOmNTe2FndzIyPk48cVVHe0gyVy8xMFpyRXMyN0EpPzQjb1tQPyhqe142eGEiejVhaytkJHw+Z2FKXjxzS3NTe2JtYS51OyJu'@; put 'WD9zNXs+UisufjUqfWZEUUxVbjJXSEJxRS9RcTomO1Jefn0iTX5qQnZlTnZNYFRCUVdEej9jKCQjUzdDI1JjX1NpP0BYUyk5Li8kYEFSOHZtRUJpLzZLWnk9cU5CZX5mNHo7TCh1bVAzPj5nbyhZTzFGe1FWMzhOYEBUXjNxe2R3PHE6TyNBODVVW1JVQmtkalswI15hVXdPJmsySFMjSCNecXRs'@; put 'KipJYlkjdyMrKUhrOjZIQ31OK3hgW0UmUWI1UDs7L1FvVjhNJXZqKFRCT3s3LGpMIXY9cml9PF5aUjJDfVJNc01INmdfSFRzait5Olo+aFgvSztMPDRIWnBDPyVBWCpoYTRLPVgpbm4raVlmNU9jOmZOPS5VeyReZiVfZjNXQXlSY0xaMjdbfSZxYWltI0duN1drRTpuV3IqYHc5dzRzcTc5cWIv'@; put 'PGF1YyokPHRaYURbUSlSdnJteXUlTTZpb2hNSHpEWyJhWUYqeTJEWktlaXVucV16N2A8LD9ycT1bW0RdZjFWRkAubyg2aWFdRldLQUBpNmokVzx3VWhLR19YKyEsZlB5cWNLS0tbNXpbXkYrWHt2OWlqQTAvWFU5UGNUaUYzLy53M01jfFp9N118V3I0dWVVcXpjZ1V3aCY1amR7PypTJiZYJSwz'@; put 'KVleUVdwKFtBa2pbKWZfSyglSWM2eit1OEdXKWE5T2YsPz19cDBgSyRJI1VkNS9mc0hRQmAzJmdadV1iezhjcVgmTCh0UmZIakcxVkYoUChCUnxkMW01XXQsSzZCMGMoRmpeLGkuOXRPcW5ESEE6fnhwS2N0ZFtFeil9WXdGeV45UU53RTVONHBqMCEhe0kkZ2FRZXNUT2YzdiF4T3hyfDpkYUgr'@; put 'UT0wI0guVjRLNFRRWE4+QzsiUnVKfmtISVZ8RXxdN0J3KmxSUmcvSVVxbE5rdUtmVV1EM2Rke1NAKWRKMiYofFBneTtXIStWO1JMNVJhMTh7X3NHRkptO0JXPE8sQ0tbdXo/LnA8OEhJV3wsSHl0RzhGPVJfSmhATSRiW2F9Ly43UGNwN1F7UHF4Zm1qbGUsW15qRzxFMmdEei80cFZoeyhvO2cp'@; put 'UH5aQ1A4RCMlflBWamlVUnN0VTxkWzxEPy8iUDtGUlohQUchXmtvdl1Mc29ha1A0ZHB3XlNbOW1sZzkjeVM6TlVXSHF6aCt4M3Apb2IqL1A8cCNOfTU0NX5OVSVGKEMiMS87KUcqPVE3ODtbe1RwQ1o7fUs3R09oWj1Xe0pgeCVfa0leO2ZZYlBEfGtjXl5KNkAlKHVMMlh0N2YvL2xaJiwpSW9j'@; put 'MzU6U0RFMm13QnJdT2xCfnQhRGRLQ0U8Zzw7ZVBjZFsrSEw0dk5HLzwoITRHWFAoPUo/TyhZdkJheSRzW1NoYDp3SHsvMjt8KH5sMzxLIlNOfWtlLDZBXnpFMChHfFJAPTlrS3BlMClhKC5LNk1Sa2k8bnQzdzRjLzopM21sejRGUXMyYj1CJF5oK15gXU93KzkiZzFFNiE9X182SzBgLmE0Njdw'@; put 'K1c/b24yNnxPc2tGbis5Zy9AfG1Vcig4KjlMTlciP25ZU1o/dz1Qc3FAPihua3xbaTpIJW4meV4mPjExYlcpV1FgUj5RL2QyQlRlYEdHZW8vbW16WU4/TzleVl1BfkhgWmc+VGoyUnZEezt3ekJ7JmBnWmlkIyZmb2dLcztHZFZuRHkiWDo4K15BMS9deT58OEZUKTBhcHRtaihbN1VdWXhXLjdS'@; put 'T3o1Q2F5dX1KelFsUEVOWl9IWl1LcEJQU1k8ey8jLz0qJnFfMGV+WGd8Wixrd1FzezdFM3VxMHpDVUIleFd5VDxeWHhLQXZ6X3BbdzM/QmU5VmZJdVdZMCQ0ci96NWgoMEBDa3JSLmNjeVZbYTlEKFZEaD9XWD5Jbj1WQmpwSkxDKXFmZz5YMWY0dik8JEMqNTQ0RFs4KiNTKjApd1Y7Oi4xN1Qj'@; put 'R042Uks9b0Y0NFVwcyVKcEZwc1BKLjk2VywmPFtwJT4pKmN+NFdrK0wuVz10TU1pRz9APl8+KXsmZnZmNUArQUR4SXJ6NzREbT9ZZyZJRzRoQEJZIU1rTDZvLFh8ZGJmKCNmQWZ+OVQ5dFAydEg9PiVgSU1XLn40SX5YeEBwPCkjLlVZIjhFMld6KURvSzZMMz9CZ3g7QzM5aVYyQHFZWmtKXlQ6'@; put 'TS5ealNifXBIUjdBPT9ZS0BKbixibU5wTzsqWiZTLkx5RCZIY2NIT0lvPWYyK1QkNEdfIWBGQFRyMXhnTmg6Jl5Jb25OSkgqSzZlRzZOaj12PlI9RnpKe3hveyV0U0UrVzljXz40T3hSL2lRXm1KIWB9OEpTfWRPQVUjPlBfJUQ1fWEvcCh3TSU8PFZGTlNJQj48K1A3Oi8/cTN0JiFdKSs8NiNq'@; put 'ZG9aU20mbSxLW10vZ2sxO31FKix2OikyNCREdUNjSmpIZjxXaUIwXzY9e3hyW3pjaj5Mdmc6aD9gNkJRUSosRlpMMW41PWJKdHY3cDRCWHg8Qnc7OyRjITk4alpDKmFQLkVLZ0lfQCtMbXNXT0Z1QH19NEhMcUIuQEwuREJTQnRxbSxTMktPejdkKk0waGxJdzZfaE9Ee0ZlJEk5KVssTiQue1NK'@; put 'OGxLNDN2IlN2dTosS1dMMHhnO2kwNmxCTGJbPmdtWjclKDFLdzIqTmshTnQkVFNPfElxYzp0bmM3RSVtek9GT2pwTSNeRCpVR2Vdc059RWY1SFtVITd8YjEuQXlCTXI1NW1gVG44QWIzViM9JilKNG5ZcXlxd0xDelc0dU4+TCMlK3g0eFhTajQrcChLM1N8Jj9ieiRAJTRHalhscEBxQW0+Kzg5'@; put 'dGQoQ2ZAbz9dWj5ORDtTb3BCVEFQNH49OiJULnNARUZzO0QoWS9SfUsoTkEkQTxnW2EvNWQrVmIuJFhoPkJbQGxSXT1qZ3o9dFJPbDMuOCx3R0dZMS9Hd3JxLElFUGtUTz44bDJqPlB6OikxPkMhTDthbTQhK0xOVWBbVy5gZWFXZno+a2s/RlUxTihMZGUkMDRyPm85KSY5N01kMSxNUWQiL306'@; put 'N1JhKTBaUW8yei8pImFeYjdocGl3M0tpNlIzOyI3Y2FEbDR9c0lMRUphd0BiZl06VkddRHt3am83e3twXXZZZE5XaTx1Qkk3KiFhMHpJZlV8QDhoZi4iXixSI1Q7bVJXI0x9Sl0oRTVbZTBRdThyZHwyUUcpaVFEOCtQYkdZODE3UnoiYklwaCJhOFFFPjQhKll3LkNNPV5qI2teKGlLMERlQ1Mh'@; put 'QUhYalN2SzcmKWlYKXVScGR6WmN3RSUhKE1NVCl3KnBFN1dEW1hlZlB4RW1CcDlTZyVrYXtfPHtKTDBPOVZlXUxdNWIiJUBzalZrVV8zRXo4bjlJS1dkcldOWGZZL2Z4cj1GPiF9QDhdc2ZZJm1EUCE1PzcqVVJHdzI2OlQjTkgzOm5SXlZDL3BjeTJ6TllLXiI+REkxallhNXsucShDcHtIOTp8'@; put 'anR3ayMzem5QWWx7ZElZZTs1dDw0OE4sR2JFcEZ3VTtfdF5gdEQ4eHAsNm11JXIhS103W3dBSnkjKk5vflJXeVk+ZndyTz8kfShtTDomckJSUmIoWzQzLENTUlVHV1F5TmkhUGtLQ2w1aG5lPWwyWGA1VUlLK2tta2hIc3RNP14lfUV2aCE2YmgqTzI/XmdZPE9qTVNlezBXeDFRemJOdUNoTl1y'@; put 'elhqc3p9Xyt+KzdXJGhOdD8rQjVFemBmP0ZkVzZZSiR1ckooOlZUJCN0TjZVUCReSiIvbylGfDoxP19eRWQ1NTw7T20qa1ArLy9xP35OV0AvbVY7Un5Ie3l2UXxpNHJdfXpiaE5WUX1PNkp9d0IpfHMxanMiYm10W3FfNVole29fS3FYdUJNQk0lPE1nLjNvbldNczo9b0EmYD5Gd3clZnFHOXgy'@; put 'dVdGOHEhVk18dm5WbE9tI20qY3JvJF5yQG5vb21OV1JtdUZSPkdpeXE8ZCxMOSVdO1cleUtQW0Bzb1RsXXBrQnIyVDZhK2Asd1pRQk5rZHY9S2g3aU81Y1cpXURyVTA6bjI7YkJSUkR9KFs8K2ptZl5aMHJKVnUmaUcjbCI4WXsqR20sSTQuUXR9NFFdbDdjV3haRzRsREU2UiMofWlaVFAqKXs/'@; put 'MnJ5PktWLyNqLi88PEh2RXpLYntvQT5zWVIuLjdUfnQ3MCtbNHxbSTBhZCgpVG9IPDJ9c3FZXTppZj12OXA+cFE/TnMlMTJJI1tHbXhXZG55YSxvLClEaShfJCZtMjM+TyZwZmdzMHNhQz9oI0tiLzEhWnhPJnIzNj9bNVsmT1R8TXh5fUk0Z1JYKlZyJkNwdF5kIU0jTzh2PlopRjs1UkkiQF5S'@; put 'Q3siXmtpNl5jaFRJKXRIIldAbTklTWhvY0k0WFJBIi4rPml4JV17WGRhIXROIWkudUwpRSF1dTQ/JjBsWH0pXjkmSnM4VGZ5fm45WDlRNXJMfWQldTd5LGhwezFbeEY6L3djdkdtKl1rb21Mfnw6OiRTLjAwN3F3fnJGVVt1Mz8wblt0WjFZWHxWdTt3eSM6KGpGeFAlMSRaOXV7O3MqeUU0bDxT'@; put 'IywrN1hUXk59WFlwb35GQ3p1ZjZpLEVZMldLKj57SncuLklMNjZnYmphQlBJX1c9OjY0cShuVkY+cEZFM11beX4yL1VoYU1xYyoqPWBTXSV3SGoyNGp0dHhbQWMjTHtOdXtzJGEoNWA9QTk6SFBkd2thRklETm5MWE1LN3EqSXdNSXtGLnFlSjNgZy9UPyExMDMrKEppcmFFajFQMyk2ZCppMUVL'@; put 'cS9PTHVnUF98JiMhUCNEaWQsaC5wS1BPalBLOkpzX0dqdEtMXmg6YDozRmVSQDlPX3NNJnVHSXZNKTdIYThtSHlGTytvSitiSHVrcHUzZkQ1L0ZJcSYoeDkkQ0Y0MH1hfHRVQklBfkwmfV13MzRPYGE7LFtrSXxocXN4OlVvP20pP1lsJXFLLkJ5QnojTlZsaWh9LHA4PC9tQjppZ3tDRlZ6VHoi'@; put 'UVdbUywrLk5xPiRzby5CSER4Lil9dVkoXk0mUGMvRls0MlZ5LzlpZmIzSCl8NGllUTRsOltdSSpLX04sMmFRUjk+fDVAYig0Nm1sdT1Zb2ZMd1lqRUVRZDRoLjZxRywkeGA8LzVUeV5pLFtwJUR3ZlFiXnMqOiZndE51W1Q+dXsqPH4pNDgraV9kX0VEdEEyJW40I3t5el09RDdQKSVWYzlbK0hP'@; put 'aXBCXi81SV1GUikwMi9YQjNYVEwwRGJCP1RmbjdRVV5kR3RAMTlHMm5sIkUpLDZqVUUxUlQqRn1BYH5RNiwpMG45NmkoUiIzX1M9UDxzVzQ8JFpGOk1BLFEibkgwPVNjOSpmYkl3SXNdeTlsaDVyV2AyVXQjZXJ6MnVfKVlgQH5eQT0/cntLPD1TMGd2e09JW3V6SnhoZClmPU03VjlAe3ddQSYm'@; put 'ZGF8UHJQTTtJamNAPlF8a0kpR3FrKSwrPGhTeHJQUnQsUDkxUz5CZyNxWUA8KExKRkJRLlRSMTUkWU9GSWtqYHJJbnExQkNDOXtPN2taKUpQJWRoKkVvNj0iUzt5NEVJOjlFKUtlLmckUCg+eDIoU1o6a0JgTkM/QW51L3o3b2JGMHVFR0V6PkRMZ1JUbzE5b0ZBL1hRXjZ7QX4lKnsjUk9oR2ow'@; put 'cG9zM21reCFVWSR1eX1VfFI3eyZjRl9yOnp+Jkd5LE4kfmZCU3NNWm5LRVV3JFVFQDxpaChKdnRiMS97LC5sZHUhYSpYczVLaVJkTk9gLkAyMF47RChYdC4+aTkyPCImTmBbcTteWCZtNFhEe2VQVWsieU5hel5UQiUqZ2cxaXQvZ0kxPCZtcGlobGdtfnU0fTZ3T0c1TzE8S1Rgb0V7KEJFLEtJ'@; put 'Xz81WTttWD01IjsxOy9xd1g0KjZPUTlLYTIyYXdAdFE/PEBpQjQhUXNbbG9WfCUjWn4/NWRkTTVHYitpMyF5X0VOO2ZtWW8zTH1XNjVKTStmZ1BPIT5dRWxTUU0sUVBgdytaJiVUL3Q2T2xuYkMuR0VvdzRTLnpBXV5HdEV6amp5cl9WLEEyUW9LV3tQZmN0Izd6QCMjNCxGUzxWYn0xeXk3KCtM'@; put 'SzJpImI8WWhlaXUoVG0zO25+SUBxSTI1I05LNDJhNkpRaWUwVVM8Yjk8dEhmP1pTTlpmJEg5Lmo4OlM8Q286OVB5JUMoOzsmLj5hb2kuXzhgIztQSXhMTzs6JipBMkYyb3M4SzFEIUgmc3BnSFVZdkdjRS5veS5HPUhuPS83VX1vcGcmPjghJkhsOntvNTxwUEtFQUlyQmYrXSooJiFtMF49fT13'@; put 'fl44O3c1diYkbW95fSspNUdjOjNBVURuRzl0NSpbJit4ISF3TCpmd3VJPUFWe2o5QCIxYHQuaWV5c2xIOlNfPWNlZHhxSW5FUSlCNEhtZ1srVytje01oSXA8JkdYZiVTNlF4TyYofnIlb19veCNEO3FyVmAjezt1TzM/T2R1L0hCW2F1SV9aRk5LRUZOPUJJOUskOXdad0hpbnlZRV9kTF5WIzZn'@; put 'VlplQSVMSkIqOj9CSjNiQlBoX1gzSlRBQGAob2QrPiolZUJMdlFWOT5IV1VPS1A7PE4iX1srZVkjSjZZQkdaS3JWPjNOKWJWbUtdYVB5Nmk1NjdFR3gzOmpqbTp4flk0MUQ7L1VWTkIkNElLM1l1YVI6KEU9YDkyRCFNLFc3eWwoQ0pjfWVTYjhWYFhBT145RjpkVitASioqTGlXOVl2YjdlPGFu'@; put 'fD44X15vIUpQZlFYcDdbTl9NZDtpand9QnI/fV1jWkpgWE9gMjxPZj4lPFpybGBreyowKWJgb2ZCQSQ/YjZNSXM+aSRLYD4zYzZAaCRCT1lgaSE8eipfdHV4Ul5wcUxCQ1M8amMrb1ohKTdtWyZOPz8+OTBeYkBeSGFWUGROIWNWK05DYHk0cVN6aCRgZz4wcTpEQEspPDs2eCNPPXxAWyJXTk05'@; put 'bHpyQ0Y1QVk4azYxfkR+P2pIe1Q4IU9fLCglXmJoNyUzeGd5PWddKUEiXihea1NNR1B+KlpCN1BaM2pgdi54VlUrPy8uOHg5TSN0LiZaTDg/fHp5QypJI3pkL3p8fiMzSHlmKk5ZQ011WFJmOjFOSn06Nkd5bkpPLlpSSnpZP2FDYnJsYndKeEt7Zj5yclFQPmlWL3NRNXNrfFc6RlVgMSRBLzF0'@; put 'IyZycH06QEJqMzdjI0F0NDd6ZyZkRF5oUnJiKUssekpYO2gvSUl5ay5tcyN2PFBlWk8sQSxCWWIqM0dsUD1eS0xWa3F+P097eHFzS1k1QC5RYyYpKkQwQ0o+LGl3X3BIaTZAUUVhOFBPSkspRzkpZnpYSCpNcWQ5USJvKzZaUmNWNUs1VD03WmhddV1QVytKNjdCeTx+ci5HKzBKZCtkaCYsQV0k'@; put 'U3RuXlQuRFo4dj10SjImTDBgcSYhTG9qRCMmaUo3ZEVXR31yOzlFV14/SC5FSit5fDYvUzExPn1UeDEudjxgUXBnN2tpYWRHMXB3WiRxRmAvMzNZRiZ8TUVlcEYiMmlNalk8Z30wPllvIy8vSHBfNit7JUM8bEBnWFdsUkhvdndXVjNAZGxqX3QuP00oYiFhOnBYSCtxQDEoVC5QWkZPXl9mJHxk'@; put 'cT9XdDtzTCh4bFE5b0gpL2UvUDolb00pPmgjYT1oNFpbR1R4enw1LGVnaik1IlRmLF1NZTFtWltMVDRAYFJGMzZwWl48SCI9U310K0ZKXik0anhuaWopJCxYQkkvbUkwXi8sJDpyNG0haHFyMDpbQ3lPfltiTW8sRTt5QDpqKj9wdTF0YlRNb04oPHVEeGN+ITlpSDQwJEtaMHRyekg5fTEhcE15'@; put 'Mls1Lm4+d3tGV2k2SEo2e3V7KytRPUYyO0EwdjtpSUs8TyNBXkU8OkFHTVppNjMjQypkRmEsXnIhSlhHMlZFej8yfTQ3dGAhQF9+O0NEV2RQJVpSK3d4cmtZZ1h9ZD5dPmtDM2t6cENJfFY6KyNkV14pRWVnPEp7VCNwUSZSOihuMiQjXi4idzhaMkdobjRha3QvamozKyVyS3IhJWZEK0RKOUc3'@; put 'WUY9PUQkKjJLLzxXNkRMd2hiMiJ3b3IwRlEiJTdFPWpRczRWMDRvL0w9V1EzJFpULmRTeFA5R19eJXZXKClJPi59QC43ZzciJlM/fU9lRWN3ckZMIlUsXixIXm86M2ppNnVYbWYwK3RDYnswNC8sKlB9YVZDL15FOmU9Yk9uYHFUeV5yazg9TWdBazQmOGBYKTd+UXZVPj0+Zixfb1RyWlBaQCM6'@; put 'RlpVKD0zQGZFTm4iKU85fSJsWmVNLiJBTTVnOX0jbStXbXhaZU1tdSVVUXcoaT9vV3dwdnwpXWkvRlJ8KHJWampRMj1hZyNKNjw0MGxqKnp+dyslWUBecVArfn5mdkcuUmg4ZCwmKEQ1QndMfDUqNFp6QzNVYTxJKlpyX3BePykzWnYwQ2goPVQxVElnWyljRH1COiZZdHk5JVQiMG87dFFGbltg'@; put 'Knp0SiZAbzQ8WXdwMGk4Ml9RPCRmU3kzTFBIRjZiT21RdnxtWERhSG4jRUh3KnpKdiV8Wms/SnduL2Q6SWMlKjcmX1V4Kjp9aVgzc3tEOD13dStTOkomeyFsez51Pl8qYGV1SlA5bmFpNjhraSRlNDttPUxdaCxhRllOX2NdLnJnNkJiLipFS08oMztafmlPSkV3UCFxbjx5TkZqNEQqbXF2KnlV'@; put 'aUVgLlhobHsmXUwjel55aElObn1ZcUBvKUdYSS5yRF5YcXxeJHFaVCo4WlFraTJiOmdrWntETzY2bDldRlJCckY6RXJwJFMya2l4UUwvZkRzPzZScipza05rPTxlZiZiQmFLZmR8bjFNTEZJV1BCQz5qTiQ9VixBRzN8OzBbMklucjZNPDUoOW9fMFl4fHQ2SmJlQGhWRnZ+YHRkWjNDNXcrKWBk'@; put 'OSJYOmskJE5mJXVtaHshcTFyMn5eLkA0RHY/XnNsZGp5KkZhIV4rciU+ZVVdcyE8RjNTOzRLNVdlLi4ucTlGTHQ5WHRHa0tNPjVBTCRTeUdCVTM6TXtHWnJ2emlHfUEmKl91djVadDR3Xj81LGM6O3wkTiVHXjNZV0NVU1p1WGBAKVdDO2wmZUVUK3txZXJ8dUtvLEdwUHVVPktRV1VfMUYwdlVt'@; put 'UncyKktbVXUkZkg/UXtRNyY3LzFCaEFCeVAicHhkJDBjTHZdIk88bj0/czh4b2ZgaW53fk4oU11UY3plcGBuVF8sOXo1KGByL2NITiFyXjE2RDJEYz9GakpxO1tQQl8ycSthQ1E/KTQ9e11GSE1AITVCNTRSQkFmbj83aVRJSEhkVz5XRExLR2c7fEBXdXNvWDdfK2Exdi5IIl0mb2ZadShoZDBz'@; put 'ZmBOVGEhejQmNHV0ZVZGYTlXKSI5OXxyfDRHOnp3diN+NjsvYmN6Y01OakBOYzRRPyFgc2ZnaXkwS3owPzt6NDtGWnBtKldIWWBqaCEyUk4uIjUxOEpWNDBlJlVxNVYuOWAvR1ppKTEjTk4oKVFVPVJWZFJ9eHBSPi90YkdAMG9PbEJjNzRBaW1XYz5gRV1rOUBrS3YhY0dbeVJtJTJsaCttMEAm'@; put 'Qk81P2VKTkY7eUpJKEk8Ti5iZV9zfkRhYnpBUT88TT1PL0lrM19kSlNhSWRedXZNUmJrbTp2UztFNVBCOEFwKigsZjR7VjImRDBGJitgOFFSdGgqeSZ4NV16JCNlK1Z8dXRla2d2cHkiJVdGQ2hXdG1UJmc0eEhFXzN+PXsiUEpyRVtnOFU5VlVWXkIhMTIhK0NLX1pwLHtiU3tzNSQoaFRra1Zw'@; put 'MiJuelBCNX4paCRAfUlEZGhlJmtSZGBwcFhAPzEuZiVqQk95eWlDNkdRR0YsYm9RZWNWRHAvXmFLRkZ8Sj5YKldOSFFAOWE8NjZaPTMuX35eS0lRTlVwKVBAbVRVTCxTZi4hbUB3bHIzUlFRZTgsdUhMezY3Ly97eCNTLkVsUnBpLkNCOGhzT0gmTEZDRFlMLlgkLn1OfXcld19vUj00bmJxMkkm'@; put 'QFhxeERAWn1GQFksTSFxZkUkQjl3VnoxYUp+fEV9L1dnREM8KjpkK2NMJV13S2tbXWolIjV5dHMyW1d4e1BJNFRkejR8cSJEKkIyIywjWEFDP2wyMUJVaGN2eD5wN05YZWRjN0xiUjgwXmJgalFIRj1gPjQjYyIhRm89WUxYUV5kYzp3Q0sjenxXUSNYTDFgXWBWeUVnKDgrIUpYPlglRmYoXmFu'@; put 'W2lIWG4zVFJabExhQ3Z3OVs8X2V9c3Z9eXIvbDZkdCw1UytaUUdnYX0rI0trXT8uSnRgL0k3PzR0WGM6aiU3Jlk+Rl1YMjQsTjFYOTksIz1GUERrP0o7cSt1NHN8cG9PMXFFenY/bnBgWiQxclRZYWpVOFF6RUd4LjVpVXVyO3d8L1BLKmFSZHVEZzBOJiwuZVtoeSkiRkRZIWc/dlZrPmFJJHc4'@; put 'NEssa2NwcDdze2J9NiRdRDNUM2luNjVTKzNQX0JLZDZZKUY0XlE5VWsufjYjYzk5KVE6WUprKU1hNUhNSC4oWV5pdF4wSWVjTEEmWUwwRloiQiNHZFpCSm50eUh6NVJSfVFpNjx0QCZEdSkkPDV2XlomdzkuSWNadH4sRlBhZ1ZEZFgoTnAzaCJyKlNHNnBWfWJ9XmpuS3dgfSNzQnlFPXNEKUY5'@; put 'QWRCXnclKEV0VHhySipoI2pHdEsjM1hlbmNpOSJyeUZlKj4/fDpgcCNBc05oODdndTpEZnZSXXA9elF9ci5Ge1pvNXBhKzx0MT1+Z3czPm9KNHhydC5qNzFhSGkyLiYhcyQudzNXXl94SD9sUz99RGlmTF0/fVc/NWNjKFpjWVc+bHFUcTN+QjptYFB2VFE+SHohdiFMW1Z0Om9UZHojO0dLKDQq'@; put 'RXZ6aVF8LkpeaXdiPilhXlJOe1toRHFCWUhiKSlPS1IuSTJKRiFTWF44JEdHNEhQRVhhRXxlLF5COlMvSm00ezVxYUU7dklSL15PL0VETnE8SnpKNFFxImhUPVomLmYqaDhtIXt3KihhQz4mLGc3Tzdaai5MeGopa2JpUmtnZ2R6NEguOENYKHg3QlJiX1RsMFg/SiJyPVFeOU8sKkdmZlI4dC9b'@; put 'bH51QHcoZVh8UyNNaTc7UEM9bm02K0xWR24qWzlfMENVUzNiSSIvVWFzfiJUQU18M19jUz5LNjkvTTsrTmt6dzshR25EUmZDeWB1L01ST09wQz00Kk1OQFNWWWBxUih8RUwlW1Q3OnUsfS8zXkIlN3RffnRfUiV2bSRGWiQhNld8WmJPTXJkbiJ3Wit3K21DQ1I9aSNGc25fdEkkcTBPfThRUzJE'@; put 'RV9BeiMjamkle1d7cGljVixpSyRNS01hUnMvUztzVnhFX19QSjpzLE9ddmlxI3guS11eUEdwbkQ0VWJ4Ukx9cHUmZj4jXkM2MEhGb3M0QlpHUUlGIVE1dTZ7YVteQikoW2ttWCRMZl17Tlh+XzomJShqUS9GIzdXcyhBc2NXbV9eOitzVj4jI01oNHx2ViZbcmNZJjc3QV1GbytLMHBXISovalI0'@; put 'PD1PZTJ7YH1eSFtzfn54NVpgcl9jdmo1Ryx8MSJaZD52XitLUjp1OzNkWEc8T0tzJjp8c2IhRWlPNnl1RjlqQV1gZjMlak5SdEdYZlR8dWJKJWchfnhENkA0bWZXbTtdJEhJJmV3YXReYGVOVzh1OTFkRCZkdzpEe3tPWXJvREk0JSheenB4c245ViV9Q0glK2NyYTVZJGNEdi5+WnB6ezIiNlc9'@; put 'T3k4NDh2dXEwPFp8WCFVSjY+S28kYktxaUc+dW5qTn1tcDYjcThpJF56Y2lXcGxKPD10RzNRSXRgOCJdPXBTJH1zY2dkWGBnXm1YUVglKG5mcilTbSZ9dFNySnojalJMWyRiZ3RDXk8lRTwrKXFIaHImR0h3Jk5CRjQiQkNJYSFOeDIrIVt2QixAQGYzIkNoXXJFTSVtdWJkZ0NdOjFucSIwZip+'@; put 'UkcxJndTRz4iJFVaZEtUdCk3fX5iYm53OSpKSXh8OzNScE1jLCQ7VGpkKCVpaCNKRixPNi9GZzF0Vns8bHI5N2U8I1R2Kl9IXXYmaTloNkhDUkEvQFN4aj47RixuQVgpRT06Qi9gLjhvYixPfkxIV2VKVkZjSm9ZQi9JbUhLPy48VHFqS35kImpyWTZ8TGBzInozZlM6L301fVgsPWlaUT1lJlpZ'@; put 'THZhNypOeDRMfmdUbUJPWXk/aHFicnU9NkhgdTQxM01TU146OnR1ImlzcSxXXW9SIkY9alkmWk9eTkpoUCg/UGBtLGRuPiVFPllQU2FHVnlUfnRPSV1UaTpZRk1MSWE0JT1MS20mbCpDWCQ2W2l2b1hSXX0jTXo3UUF7QTw+emBjV2sxV3o1SyFQWEUmfFhxP1QqNmNYWzNfdmw3Mz9gUzV9aSJj'@; put 'fSRKcnN9X2dAMShMSSZDITdWY105M0hZP3d7UVNfJCspcVYwZ21JW0Z6QGEvQ18pcjB8dGwyTylkIl9TUFB1cF8xI2peRmVrJT88PTF9RWpJcGppQWQlZ2lPMGMqdUA/QFo+OFUwSm55MGp+JnA+cjNEUkR4PDUuNTo5SmVWOCJQeHJsMX5CSSpLT3xgci4ycDRvX3dAfix+bW1iZHtMdWE+PzV9'@; put 'dHFGRmRlSkJdMls9Ql4vUFU1LnU4TyNxUy4zPHJyT2gzIWs2U15OOkhkaG9jcyx2XipvN3QyYiosfFRteV50TSQhS3tMcSFyKVVdQjRIXSl7NEo6bmcmSFFlW3okISV3ZWR3MnowJC5jJm1FOndwZExoe2dHalcyMyhrP1YiWEYxfEFdXkRxIWV0WmdyZiVrdTspdClKfnk+VVl8K0JVbiQ8UEh5'@; put 'ZEZQaCw7WjR8fV11OG9IW2RyVncsSm06bywhYmIpUFs2WXVCIXluK2g9c1U1TVp5Y3E1Rms9bzc4NmZdeVJ8OmIqNmhaXll+MGs5U0MkPzJSMEJPKjJYQ0pfeHk+JDcyfEE/bCp+fTA5QCw8NW1Ze2lzXyxjeXhmJHFSYnVbfk5TNC8xWzJjJn43Lig+Y0BHZHxeJTgheHtdRno3cTBGMGxFKUNn'@; put 'PFh3eT5VSmtATyVUQnQxTjlhQkc3cEw4YiQqNUlyUUNgRCVIPnR8ay44IXAjI2BFTShJeCkrLz5yTDN9V1k2L1dwXVgvKHMyaE1JZihgZ3QkOCtEUTZlSUp5NntRZm8/fkciQS5EZjNiMXwqM3htRnNpIT9dbnE1SF19UW03JCMzaiNOWCQveUc8RixJPTUkfmlJKS9Afipsc3NDWS9LZmE/KDkk'@; put 'QEhpTU0zeUMwekskdTdLJC9CRmE5eGNfZmArVi95Rz9CVilifDBnTTlUemZuJiI1WWFdaDpzZXl7YHMyeF0pcDEwLkFaTWMmdGtrK1pVSWN4MD5eOVJ2aihjQ2FOUF42YD09L0ZzSWQ2Wi5WeTFoUzhBXjg/cTZ4M0s9eGpRSjpYNyUlej9WdHJyTnZtKzF0Q0JCZHdxSHUpNDZPfmFQKVVDVzMm'@; put 'LnpOMmoqbC48WGhNOFhqXlVAdGJEXmY/R1Z8LGlIZGsmMyprdWdQT312M1hLNXxIUXJEMlJVN1A9V3E0eCZiLFhqeE9dYiZ6QlE+M1JgWGRJeUwueGFdJilKbXgiYU80ZTchdVtYMj1qI15VITNaSVMvKC8pazdnWTlAVT1mMXBmcEdKQEYlUmckcT9mZEd4YyNpJStNZlBkPHIuO2FTKC5NQFsk'@; put 'R2BxV0BKJT9jfU58cD5XU0IjVFczal4iLzg4NkAwdFo5QEMqdXQiV3lweSFZJXx8dCtoaVYpVyY8ZnNVXjoobVl3ZHBHN1FlMl5CdjIuTjAmb0BCXX5ubzFITSJKSDNYY2xPZX1pJFZURC93fl4xWDxMQmZsaTxhfDhaMkt6VS9PUWBHailPP2omOF8zJisvY2svZnQsOiZoeVUjYSNjRygoX0hT'@; put 'QjQiTX0+aTBoK14hWTJwKFovZktGWmdlYzNPeU1ibFUsJH5ONyx0Kyxrc35HQFlYe1lzeGZdZF9FWW4iLCt7P0d+Tyg1aTQmV2BmRy4zYDR3eWxqRD9KJjs/LnI8JCkmJjBAPn4lRHZZLFcxdWg5NyYzL0xQOTs/ITdNVV96IncrV2MibnlWdkRSUjM1PV0uYDxON3EuNH0mLmF0fkw+QFM+Oz91'@; put 'cEJjOVQ9ak5zZ1NyOW9RJSgpUmsrRk5yUDxDbjI6UUVLMltFUnt9VSVLYzc4MTdgT0ZWKlUvQHNlSnJ+JlFEIk94SURWbSFzQS45PEhtZTxERE9xWm83ZkRPZjQ0WGoiWW9fKm4mfU5PYTE2cCVbaTFHVk5Te2xKRHQ0ZW5IfFB2OjtTUkJEeC5oRUB1MEpab3F3SDpzNkpTPzZvWksifTBuMl83'@; put 'Vk08cVFuK1VxbCtbNUNxajUqNSs1PHhvVD5BbkZeYkd2P1VsYT4veHc5dzZeSCJTdltUdEUwXio+eltzPTYjSyNIfTBLTC5+dWxWW2JYNX4xP28qbyp0YyxfUiM1Wm1aIlRPVCR0RnBRQ2xMdUk5bjJsaSJuW0ZxPEBtZ3VbQXFeXixvK1ZdS1lFbFFuKExUJHxiZi4hSm0zLHRqZUY5O2J2XXcx'@; put 'PTBRLlZdV05PJD47Rnh3SV4xek58Z3BZVmE6V14oOyhuKWo2PTlJUlBCYiRKNyQvPVNLK3hHND94MU5WT3Mod1JUamREY0thKlhsUjw9NXtCZmlXYCZDfmZbXj5fUz1zbnBAb2tsQHYwVi9laClzezEkb1JLNSVTUjI2bFB6SkBAcWt+PUUmWyQxIXtpJFdbLyxSOy98PWA4NmVjRjhjIi9RL2Q7'@; put 'Mno/LF9DN0UoMkV3LHdYa3ZRbjt0UTola2dhWTpFIktZcDx3UVNobFh+MmYiUDRKYXF2c1Z0OTBuT30md05qVHlgUUtMez8qJTEyR0ljQHpzaUU2MFZPPmt+MFRPW3Z4JXpBRXBdfkJaRl5IWkI3V0k3dkRzSSF7VmV2az8hMTphbChIW1dQKWptRi5xfkBLKD14KDlhOGluNE09aVteRHJ4Wk5P'@; put 'Jkxyd0VLX2piLGA5fSlYcklnbVNmbXFLeGgpaipveHo0clcuNmd6QkVDPD1+aCNVKz13aX08MjpHSEEwNDdzO1ZRcStSR0M7LmRLYzRge1gwL1hWSHAlaURabjJTNEt7QEphdEIpKypPbEJhWV1QKERpbHNaPG9RSzhgUSIlVFJ1KXg8RUR5PHNsZiU/SVBndnh1fCxhNzVZPEgqMW0kLjFKV0tj'@; put 'eHhwUDpYJXtxTzVTRywpQiYvYXUzSjwwQiMucGd9VDJecXVuZC9ASnRGWWo+fHJgaiVxInVNP3gvWDQ4IShTZz1tb0ZuSTR+UjpVaH5hRSlheSldb3RlLy9MbDVvZnQqelVIam02R142VjxgQ054eEU4dlU6M3BGIylWND01eFVHTTxNMnlLcD1afEVqUmQ7MkdPb1JlRDZrTyl5dSVMcFg4YkVq'@; put 'S1trcG1kSWpKQDAmPSkxY0AzbiI+aUA2Q3ZSeTVFc1J4IW52TFtHI1twUFNIUXlANDtlP2JJTTVhbCxZY305eHs4IUFwckxdL1t2VU5JK3VlZjtVeGFrZ3x5OlBRYFs7JlZIQ3hLKTNEYShhTyxoTD4iVWgkcVVyKztLSDxJM2NGUFM5RU0qfnBbdEFsc2VNZ1cuWTRjTj5OJkk6P3dLdiVyeDhT'@; put 'biFpV0k1Jjtibj4pTlt4Q0RjJGcsRWl4dzRDKyMoZmQ3WWh6V2M/L0p7NCVwKSgyVTppelZ2TnZlOiUmM0dPVE8qLDhVWyhWa3EuZDcpYEVwXUExIikmeS9BTm1rRzw8V2ZmdCkuMyFOIURMNWtVWGlLZzUybFdDJVZwUXR0fmA6NGcycDhXTU9LNyQ/emFyKUJ9dj5SbU5dZFVXWyUhNTIlN1d2'@; put 'QH1geG5VcnF5VlpJbS82QXxycDElNEtpaD8xcXxQe0NnTld6YXB1QTlfV2FfKnsqOXg2eFdhQj58TFJ2KyZ7TF40V1lDMFR2OXhLIz9BI0VHekgvQHRrb1BXPTxZQ3IyOkF3Lk9OcmBCMEdsanZ7ZGNvcWNucT14cERQdktSLDViK1NTODw8bT5AdjIvLEdIaXBMNHJqazJtWkxNT3RjK3VweCt5'@; put 'X0tzbkFhT2JSYEU2JU07STpFWHo1Z1MqTSpfUWpTelM1WkNCYjxzVFslJjVRTixPVShSOHN5d0xhdTNKXWNhQ1hzTGZ9YnFVS1ZKTn45Yno1XSJRens9OzNXMU9XUFJyPCtARjB9QyZdN2FaWnBVUUBud0ImciEmUlhVZyJJfiZbRzA6cXEoRTt6Z19fT115fH5nb2lPJF5xVSNkMjxiLkklRGpM'@; put 'OSM5blpeZUIpdHZJUjtYZG1ke3NzUldISW4/N0RMJE1vWnlGMVh1angiUzdmKTVHLj4wZCMlSnlLOCopTUBiYnBRJm4wZC81KDMsWzdNKGMxOGZQJj1DPXQpQTlJS25zSSQ6TVtRVmgzKk1GXz1gbVlfOktwJm8qO31BT2w4aWBgV25vMXldQmJzcU9MZlJVQmlHY1J2LEpbaUtSPTxVMVlvRVhI'@; put 'P0N1WGp2KStIPilTJnQ4bmhOT1IscWZuKUdOL09EUiwhTXRYWjUwZmZ1Wjx9QWwyezgjSG57WXhsLDA0YnRNMG9PVDg/VHJ4eC9zU3dYLl1hdlg6YHpRZT0wWHEibGZ3Wno4Ll9kQH1zP1g8OWE1aj9ENHBZazloJmxOQj08QDR5em5ANDEmeyVFcz9SOVNeLFlLVnNSUmlDW0Y3LyQrXis+OzI0'@; put 'Rjdoa0xrOztAdz1oaHBPZVR+YjFESWt0MTNmbTdYQXc7UmxnaXRFQH4xXUNzUl9qO31ZJGNITiQpR1JAUnJFOyomYmdodVBYWzZJPlBYZXx5P35nPlgpfWghQ3VxcEJpNzdnMHhFd116RW5rdFc4e2J6am9fbCFTcjIsOSR1WkJYVmpbMShmNm45ODtUZj5QTkZTW0hwakhEaGllQ2JDZm92UD17'@; put 'LDIqe2I9YUR+Zy9KRWM3PGBeVU5LOjdEOWR5K1hvX3NHSSRZKCFoPDx2aHwqTmxGak5nWVchSF1odXY1aHIscXVAKChNUTRFJSNhTitoS303d3xoU3RqfFQxfnRfJGh0PStvLnQ/QElpdSxtSG9ydkN0Z1pAalVyM2A7NzU9NTh8bWIhck4/VTRCSj5qWG5FM2NtViNpSnRHMjM6VyREaD9nSWVT'@; put 'V2BgSGBAL0xWaXdoVXtdOVcpMmp0dUJeYThoRXZveytLTSN7WFBoVV9qSCkhbkx8UF9gVUFBVVkoamE5eyUsOlo5Z0NgNDR6QzYpJCY5VCEoUFp1Nzo5NFMrKjlvdX00Q2FqKCl0I2VmTn5NUStHa2hKVDh1KGNMSzAydTRZSVEvcDZMLi53QkIhNDtEJElqcXkjYFFmZ0hiZ3R0VUFlM1d7SkAx'@; put 'PlksR0s5Q2YwfHp7KiozQnEzfjVLViEvUXYiYiE/ektmOSs1VSZlVlZmW2A0Zl1ZRVcscWRMWyNEbCg1UiEjWCxQaDFyRFo+IXxieHRvbnVqLmZaX3xfZk9BeE5gTlRxej17e3xsOSNVJFpyP24sW3wjfldHfiJGNnF5PF1zYkBCSn5WeE47Pj1XITxqRzxFXT1dU1JLPiZlPV8pN3klYlIzU0VR'@; put 'MjdIV0Y3QiZ5cWhbR24wQ3I6cnF1ZHdPRyFYajA8d1RnSF06OywuTkNBRzx+NDpLUGlSI34jLEpWZSglM3YvO1J3QFMuJkVPXypIS01tOHZ2cTVTL2ojV1dMMVF6TE4weFVnKlJVWS9jUF43Q30lWyZGKXFDKzpSQ2VOO3JCMlpHcDZNeUNaSyFiRUJOImdUbWF4V1UxPzBDayt5ZSwjVHhxOUQo'@; put 'Tnx8WF14Q3o3PFl1amlpKzVnZyhiTnYoUDxDSG5HOWVYTTF4LDYzZ2VoXmQ0fXhZUm5Tci5nM29AdkEvJCsiOjI8akg7Z0JAWyVdLldQK2gvOjJRNmQwITZfb3ZFY3JpYyZvTiV2QWp4QyVSZjgrUVlBOzV7WHVbSjF5RkY3MHIoRE80PFAqSnwqdDBZQjVGfXpxMHtkJHN5Vkk0MUUpIXwyNUtb'@; put 'ZXZALkV9Ul1LJGxyYGxQQGFCdytdXjBqTlNESj1dQ149Wi9WP30pfGpuYkB7PXRuZVZVZVFqN0VIYVZVKlh0bHxgSUp1NWo7TjxsUzldTCNELmxrR15dMTVkVHJze3plRjpjSltXZEQqaWxMd3ZJbncsTyZjV1BwX0lIbXFMXWtCXUsuXjZzSjNiclh0bXdFLGIvQihXbGFCZXxtVlRoSEQ+OFpH'@; put 'aFEpMGlXMyJkMFZjYkU3bnB7ayZuWz82LjNbdWVARHh3W2FiWmpMblIvVVpsNlQ3Ii9+fkAoS0Y2cCFEa247c1s9TFJ9ZXZGaFMvQj5FQ1p1OXl0aE8pWkByd3dLOTVNPz9HQSshNX4mZ3g9OllwfFJZOTQ8N1RWRlFUXnthJEdDPzMpRVkwdV5wdFBgUjpoWk1uX2xJQFE6fVg8bms/Y31OKH5D'@; put 'IUcpWWRqKHJaPlIhJlcmVEhRLmomeE5zIjoyTyVXeDY4RWJdK2s1N35UdlEwMiVIajUyR2l9JSFKUUFPL198UV12MSxTLlRNcEdDJjQsWjA+RU1+XWFJemdYPmNQfkV2W0E4OnlRYzE+cyZOOF9tIW02ZUh2XjJhRzY6alFDNC46JmUqfG9AUDZhMnRqMmpsL3JqQiFJSWB4SkpiOyReJHpPZiw5'@; put 'I1lufEU0Omh7LnUkYjBweVdRdzQ4V147VjxyZyNwJEAkWFpKXnBlS2swU1hVVXU2Kz1rRD1hJVdya2pqVklmRlQySTZ5cD5hdF0wM3ErLGxkQm1dInh2JjZlaH4sJHUlJVd6c0pGS2pUeFpwRGsqOS5ffCwvYDk3JGlVaUJeUkteUH1LQH1RfXlEeGBCe3BLcWMyel8ie0VrUnU3JVhzTEdFb21d'@; put 'VUozM2p+L2tjY3pJW3lyKyhLVX0kSjBbWWo1R1dFZT1mSChIYl1XRi9OYmF4NFFNenhaLFNdbTdScXVFcTk9VzRaQkA8TkdiMStQS2EmdiQzISFPTT5Kdy4uYUtZejRjPENrdkpffEc+akBOY2hpSlVXaGNLbzVeOTZ1O3oyZ2ZMK2EycHQ0Iitdb1l0Wj59Tk9XbGQ+NngyR3osQFY3XnZmOXF9'@; put 'ZTJEIiNZJiQieVUuLi50cXBHVExMSU82YzFmPmdDPUsjUXlYX0hEQSl3M2JUZyJYMzNLRy4hfGZ2KXpGPWhyU2gmcSw1KSlQMmB4Ijs/ZG0iaUhrflZYP0tHYjlDWzd9QWAzKFozYXNXYDxMfG9BeyxhRWIrNGQsKT9UIURVWlU5OTZbbGVfOTR+Vls6a1RJVnolNS5VaTVZUSJ+NiFWL3FuSEEw'@; put 'Z0x3QUw2UXhffH1TdDElXVheeD5eeWFNQ1I3W35hcEVISShFUi4/SnxIRUthOFA0IjwsKk1BbkY4IjlOYVVCIkokaFhXVGpDOCFedWBNaSEkPD9NKjd7K04hWEUrcXlJITpnW2l9KEI5OCxoLiVxY2h+LFUoYDRAYW5rR1V8Nj1zLiFZOC9pKio0T3JpOkpdd19hfVtKdENIN1JCIWpaODVHbXVd'@; put 'SHcmMyEmakR6JVp4LDFhaSxNP1B+Ky9ifV9jeXt2SThxR2N4V2k5YTpLbXV9Xi9tcixaWXZpSTpmeFI4OjImW3YvOyooJXdEX3AiSzZRREA7UGlJbntBQ0ldQzNqP2x9dVJBLnA4PWVsJUBobD54Mk85Sm4/WEJhOVNMSjg8Ti9qMkJpRktyLjk0cE93fWo9TipnZG9oKCM+WjdRI1h3fmgxKXQi'@; put 'cn0hNVJ5cC8wVShAfWAjKmxhSXZSbiEieGFSclBKL3R3XylyUzd3Zj9NNUhGIm1RYkQ1VWRANX00RCFVKXFtXnNdPD5mfW1HOWQwbURaImpZZ3lObFUwe2B1Lm5CNSp4W3lSPHdIS1U/alAlaGNieV0lbDw8UWc5fU0+WmVFMGdOWHpfRksmUW8lSEhCQndwJWshPVYkNVBWflVeQ3h4PDspZVV6'@; put 'QWBhMSNxJnU7MVN+Y11yayNiJDM4L0lNWnZJQlFeUXVwampSd11VViF5I3VRJF1Oa3twKmNfQ0gsMmB9ODs0MCY0a1g4X31FdExGKnBKdWo8eDM0cDFHTjMybyk3Q0YyfixWL3lvXWxlUl0qcHRZfXQ1TC5ZU2tsKH1PXy5PPyRFS0JDXiRGNGNCPEQjKEtTWkRzW1QkbUx+e1NxLz5iOEpYKCY2'@; put 'VSJdJV0zSU1GcnJqN0p9XmJ9cz8mSClAPG94NitIJSVOPDV9QD86bXk2RDBXXVcvRXkzd15RS0R3bUY0QypaKUBNMXdXM1JbK1I4JiVXLF1HLzpwUXcmXzpOUX5jPzlAITB7LF4oOGRkdGdENjlNMUhqJFYpby5fdD9wPVUpeCZRXTB0bldUPlQrMzZ7RXYieGR0L0dJdXF9eTFibVIzL3dnMzY8'@; put 'aT0/eWF8MD5LZj9MbHNTSS9KeTV1bVZoVitMe3Y+SCJdNEFqbENgW1JJO0NZbCNHQ3RXdXdTdElpRVl8MS4lPURyXUVOdj93Rj5wLGVOSlZmUllIbV9CQClvJUFjeUNMKzBeRUksMDo7XlgyRyZ8P2RfW0UmL1JTKG5CSiJaVnR9PXZ3Lk4hLGlCQE5xPV5yPzQ7eiN6N1QpZX1lezt8Ons3Ljcx'@; put 'bWNde0dFOTJDfHx3a1B6YXc8WSkxMGNWdSI5L24oRG1NWXFmSGtkLz51NntRdjA6O3tpLldQcExefTA9MWpyPCRJY3o/P1coO1lFZ2BQKlVqY2FsbFlGXlJNUDs7PnpFe3lvYmJkZnspISVlNElKZS8hKHRITl1xWTVkTixUZWU4XkZsT2ZeUzwmOitUNk9zYHR9LGMvREZ2I3RpRnBSfktld2JD'@; put 'RjtJVXlSb3VNWXppJUg/OD1CfVo2Qm9qe1BuR2YpREhxZ0sqZisvK0xOJC4yKitzMlBaW110NHpDYWlJfS97Mi5QNFpzcVhnPFpxd3IzZzIlSnUrcnhneTx4VU9SM3xid0JoYFBmPyJeZSZdbWF3XnNKdWcrQ3w+ZH5Na3FGVEpCJU0rYmhyV1JFXy8hKWk0bmJKbHx8MF8uS0p0T25AWGkpdWA1'@; put 'NFQ1by4/aiRZaDR4L1o8Q1BhMiIkQzt0bEk0OU9OKExNWHZ0JV8uQFlwOFZbYjRKJDQoXzY0O0RiP2c+YC4ucWg8aXE9WVZjIl8heVRJSEs9UzFSMCoyTmZfOiI1Xkd4TE5nbkcsWUoxUHk4KE9pR0koZlVPNylRPTNWKyQzZ2NHS01Ia2YzUG5qfmZnPHNsbUdLYzR+JlRNL2IsYjFSIiY0TCFT'@; put 'cG5IMmhkRXFvMUk4biEwMT5kXz9dW2tNfUVZJmFYejwkW0lwQy5DMSxuPVEvWHhLcDRDSnIuVykqYTJfKnErXy9SXjUoTGt6YG43eDduJihMZTFbc11UXUFOO2gkWVQuZ2ZbYj97dykvZk4zM2YrWFZZckpTJCtAMmRVKDYhfHNea08xbFt0VHpgQ19uYXFoNEsoRD47U1dMQnx+QGwxc2g0WStx'@; put 'P2pnbUlfTHckRiIxUj5fI0FEVmpkeGI0cDV2UCwsO3VTfmA2TD5gY2IuOGQyWigsZkAqdUBNdj1vJUUlemhafl1xUXJuPDh3TiIwZ3dFVz9OMXBVdXBWRGx1PzdLP2tOY0dMNyYoVnI2c0QkTl16fk5IRiEhSTtrTTdbYSxJV2MiKm5yX0RsXz8zcGFeQ0JDQENPZ3oxRGtoMS9KdnF+OVpwUjlq'@; put 'cDJwQHJJW1FdKWh6PXNiS2JvZU9sSklnT0BGJjtSO2tCREJILm1YcUs9KFFJKVhxd1FaQ2h7eF88aWI6fEx8azNFJHxzWXpHS1h6X1JrKWUzJShmc1NNI2R4Xks1Mn56Yk9NZms0Ny5+cjN3KHBpNSZ5VDJ3eGFsWXxkXT5Dez0kRS9EKHt+WTpaZFppZyZKfjFDXSomWTZULn04Tmt5Lnw/cC9C'@; put 'PCJIIzxQO0VHc0puQV19U1hvflQmTllJMX1qelF4QWc9eiN2OE5aak44cUY5KDVlUSRzITw6K1YmPj9RejBzTTJDPDN3YFIwVEBZbiloZFFYeXVeWHdEZjNCLmRScFhqdXt8cWlQez1vJHwudW9yKE9SZFFaKEk8Vnc2KVl0ay9KUk53M3dDK3Z5XVp9WmNidlRtfC9rR2dhKm9eN2xvWUtROm1Y'@; put 'MVNORigqWi43NE1FUXEqbyRiX0dkYywxN2ZQY0UsLGVFflAvJFYkZDJEfDxDTC53TXpbN2tuRl1JcitPQ2tINzomXmlKSDAwVUkwVEt1SnQkPVpNLzA0QXh6JiZQPjRHbDp0JEA/Pih+YyR7WHAwPDk0SV9fTE9AbUx9O2R6b14sYUFMPjtMQ2dEPTdmJSJPR1ZUYktdN0hLb0gjUW5KIWs1eHts'@; put 'TTlwdzddVyFgWGMsbXRiVGcrZWYlQXFQezB6ciFfTkRQPV1rXn1ZdkckeUlRX18oYHxZJiZiV3I5fnheSnd9c2RQLH1xbEQxSFRMJnhbR0xGcjNNcjc4c31ObE4qVSt+aiJvUGx0VjZnbDkkZl9MW295NUUsTHhzcHdKLCszdlVWY0ZIdjRRKnBNVXI7NGBXIlkpSWIySn5MaXY4V21ld0dqISZA'@; put 'bDRfaTdiWC5kKCQ+dmwlOX13bS9GZ3ZKWmJwQkNMXmRrV21FZl9Nbi5zSzh8JV9WemBSKTdDYyt+L2pHXkVASFhraXFIamhhPEI6SGwleUkxNn1KOkZRS35mS0pIUzFibWtMKSU1NTEpaEVvQWlOX2Z9I3p5fGZoanp9eiYqdnw9KT91Z2xEPipiSX5qN21GJXEuM3o4XXt8JVF3SWMiaih6ZSsw'@; put 'SSx0UGklV0AmK20zeCtrWW9KU2k2T2FWNjp9d2VuaFglO1EmeyRTejR9WD9KfHdNN2R1TXRzdD0wOSlgO0ZyVzplMzg6LlJRX2xFWUdAc1hqTTdKUEdLaT5YbXN8RWJdSmlwOCt3YHwpaTtyIikrbTE/UzNESzJpNDw0eyhYIj43ajMyUXl2bXpFOD1wb19hNUJNdXJvKEI7JXkjM3g7UWJrZSE9'@; put 'eUNQc3dZMTdlTitiaThecCgyUjgweCFkWnVbLD9ge00uVGpYe3c1akQwakdjREphWn1hU34+YjVOREBnWVsvV3s+Slc5fVd0UVFBWWh+OGVMTjp4eFVdbGhSbiFRTl9VeTM4R2oqUk9kfG5MTmJ0dHkrT1pvbnhJbzlgazokPXpJUVtgMCpMdDA+VkZObiIpKy4xWX5MTlpdJCpfUW1pOHpUVGdU'@; put 'YV4kXUI5QWxUT2I7R1BwMkEpdmxxaUdvZFo5Kj09RF8vL1N+UzF2P1dRdl1ZaWxhaG4/KGIubyp2MkJ2U1UmeVVEIWZLIWU6SE1XYmAsamt0YEp+dSxLVUUmWTZxZ257M3ZrbGl3JWxXazhybGx+MWVFbFtESlRaQGZuKEB+MlV1RHdtLlVwX3l6akZ0PlM+LDM3Tmc2SnhUbylrSFdNRF9taCl1'@; put 'djRMLCFxODd1VlpMS1RUMnt6QTtGTV9KWCZ0TkhbUVNtKXQwYyRzamYzKE81JnFTPWc4MDA7SG8xYjtZMW9FfFVEfSh8Il1CYyJqJTVdVFNlKHNCWz55Skc2azFDOzY3cXNaW0FUeCYzKmJoWWVyKV5ZRH0qPFsvIm5DZW5aUkZyV2YvMGpfOUZ0ZFBkbmd4bVlBMHp4K0kuMVZsXz1deSFGeSo1'@; put 'WH1iUDxJTD51L2dudEQ0Qk0/Rm5XXWxWekl7UTxXLF5BT2JxP1V9QCVeVmJkdnU0RSUpWFpXVVF7PU0rcjNGUXQpImBFbCJ+e0U1eyozVEs2eWRbNlF+K0ViPHJjQ2xCRWshb2JfeWtYQlFJWH0hUENZVkxSTzZiQWRVW1kqYlVda1BgKkFzW0pOZCFnKn19RkB9XToran1vUlUuTHpGOSRAMkEs'@; put 'NkAvOkFCPi8kfHBXVXtnUDh4JWZ4PSM6R1VUamJealswc3chOjl0ZkNEZjxPPkx0aDlXNzRLLEI0WkcwSDRaKDhMQCFubyhmfjdCPSFmN3BRN2RmS0EvIjBDRnlaRjwwcEloTjgzMTswajxSOyRiZlJFc2JAZHAzbClvWVd2NUkoSGpNQF9rVV4haG1pR2Q7Y1pBKzEhYXpqdzNrYlhUVkhZMTF7'@; put 'LyxiPW8sX2QmbVFZJEYuWVNdQnM5NUgyfitGOnZNTy9pTDhoVkVTWCN0S34wdEJQfWZnYGZBMFJRaF8yazlOQXVHI2l7ZlNjWmJDPGMkYXRreEhVVD9sRSxKPCVNeTtHd0hkNi5uZ0koRCsxNGhgeT9gUjVfTiJIbyVZenYzY1tIKGBvVHkjODMuM2lJPUBibClodmF6OF5IeyRQMSp7czI0U3Rv'@; put 'JmgjOip4aHsjRyJ3SS9OPDEhViM0SklqcFF7NUlhTVFAMzFbUTRdaVgjQSE3MTY4KiRLaEclN2koIWxubGtAay5Da0k+OWN7MmpCKVtgOzpHbEldNk1WLyUjQDpqc1MwZz5HIXBzXkY6MkhTcF8lLm9lTXY7bUxXRmVKd3dnMVl9ZjIma2NHZDJLcVBTeU5TanwuYE9uaEwrU2R6cmBFMzVyP2Nv'@; put 'WXElYk07Sng9ckh1WCg1YmxEcm0xNk1TTlhtfl0rYzEoTU9ANENWTktVJl0za19fdVIwTzJQXmpXOVVHcH08O2ZHRCxBekhLVno4UjlNOjkxSHF5JUE1UDx1QSxTZCF6NSZ3ai5DOTVTbyVnMCJfUnZuRmZ1OHA/WTd9Q3EvdX1WO1ZyLj5xdTpZN1R+bUEjbSpecTZnTkIsVXksNFczbzYjKyha'@; put 'NX1QO0gvbFtPWHljJElvaCg5eHwkRW5nIXJGfGI5RHV6bWFZXSJTazNfMmV+ezwxfHIvdDRpIlJkZ01oQXBmVmoyIiRdWDl0fWdqKUc/eEZNeFkqfUFIZ15QWyoiZ0hhTmdFVDImXXpwUFBneEgiQ3NOUFNBUD02UnI1VWFnPCp9cio/dHdxQD09YUh2JjBmLE9XRGZ8W3BQKk9dZyZGSlM/L1o1'@; put 'SGIhP1pMfCVjZlpsMiVtV14qTm9QOWN0WyUpR3c4KiVGX1MwZnRiU2ZMOHddYENrXy9hXj8vO0owQWwlNWVqIl1iOTdubyNrQl0zZ2M1MmdDIkAydU4yJDZvWEFlJT4rUXJNSjEuLk5IWW5FYm5NOTYyb3Z4Yzh1fEAqdzZsdkxvQkRUYEAqPkNFTkolV1NiP0pFcm5+ImpJKy5Scz05QTx+d2pK'@; put 'IURuZnBVW2EpI3clQnUpflRrPjh3VFV6VFhlU0RiOlk+fHN7clptbU9AMy55YlZsKjdBbVsxcig5TnVfSTskKnY1Y187VSRKPUxtJipMOVomWD9hMndVYUowMypZaGJKI1FPIU44S3NeOn18azJ0akUodEAlZGo4YTBDJEVXfEp6RHF2TGMkTWokIyYsPnsodjpoJFZKWEMpTkVORTFYU0N2djl4'@; put 'ODMjJSRVOE8wSyExeS5mWXVIeUU1ay4iLCZDMGg+QlErZF9eRmA6PHY+KD5+RmRdVnxKZnEwNS9HRDZBRWZBfC9Sfjx1NEBVJGdVaV59MSZleDsmfTtXVFdzd3crIU1ZY3FuUmtnJk14aGtkOmwqRCJGWH47O3plRzNiNCY+aXx4dGdxayhBLzR7Iy9FTF4zWykoZj1KfGtFRTdbWnczNDU8bWpl'@; put 'eUN+NXRDMz43Zk9NZmlxZjhjNUdnb3B2NH5NZCMhZzc5cllyT3RwOFpAXmgoRytOKmdiSU1HNT1rNmEsOlklMkU0P2d3Qj8obnFKUWwrb2Q/bFt7dCt8WD82PFVBTUloL30/P3h5NTVHfXBkV1p+L1tdamR7byNGOnZuPWZILGtkeD9HY19rLHtiM0RsOnwzeXQ6WGRQaFdMKVkzJVJxMStCfD5h'@; put 'MnY0blAyXVE2JDZJMDhoSm52WC5wPDUuR2FXViFgPTRrRGArNCUrNX00OVZ4fWs3JEQpPGlsbm54O2lLV3I2Ylg4V3E1JjJObiNoRkNdJHRhSz0hUl9yfGNXa1tsT2dMQUR5WkwvRy8mMX1yVVNIbFRiVismaDBWMHZIdT1oOUlKTjZCPnBnOjt6dldVckBfWShIdGRmWVd6XVB0MT0uS1BwIiNC'@; put 'TX1+ZS5vYWM6IU9DekNaQzN+JmlgPlojNX1hTFU2SmFgUklUIjt5R0ZZST8mWn5xXixNJnomMTgyXWE0TGRBVUZOZzglJVQ0biNTeCVyfDJ8PEY8YXd0bHpULEg0WEhAQVkrWktDYTdTWm81VilVe2U8N3k2cT09ITk7MngvdDkkQ1Z0eTErRl1oUXZNSDQuT1hvMUltN0JlWmNZXyR2UklPTUV3'@; put 'Tl5Uc3gmeUdrXXdrY34ycnwwUUh3Zi8rQVI0aGMyUnpIMl92YzRNemk0P3duKEtlRXw4RVl3YSldSH09VWZFaz9pNElObTpIdSk6PC5aR3RNYVM8b31OSnZzdVRKRiZlMltNa2tAUUBpNDx5amVVLygzPVQvZTttKHdUc0AvYGREWnRNVmdGKnBjWW9uZSN0MVh2S3M/YE1mUWUhQ1BIbFNKQmE7'@; put 'NGd5UDd5RFNsJGdxQXJsdXAmKUVpO3p7WixyaF0yM0IsW1dfSyNwRTRJVkNnM2skZGs+WWMxR3UjJkArYkMuLkY0TjcjVGcjM3R+P0RPRDlSWEQxWkhAOiZJfHxlVSoueFIsSnw6NENDZHl7NC9Gc307c2dYNGo/aWQ7P3J2U1hoRVVeZVgzTUhbNmpRKTBdYV9JPXFrbHhxcVg3I1IvdGMybHky'@; put 'SHhicXtmVVNicCxpPmZMb2JUdmxSNVVlP0MvQXsqdyNUN3RuK150NWpKd0FEXk5wK2U8ZiR5Jj9fcDo1TkF0RD1yT1hKWVUzeyJGOEoudlh1UFd9aSpKKiZSLDh+UE1rdUx5IVIxVThNJntbbSNoRFNoP059O2BAaTpiYGl5LG9DNSZMJk5OLmklczBZNSo3dFNfeHFQNlUpYCtKaD4xW1J1NU9m'@; put 'VVV3Umw4JVQoN2U7UE8qY1EyVUhdTlBtW3I0fTwzdWEwV2FocTklUHJPeUxrajlTTVlKWEtOMmFaeS99ZTdAfGMpWjwsPE9xens/UlA9PVVzODc9XztTVTZLIm9PZHh7OUNNMUIwajsiQkFUOSNlN1pCalckRW02QUc+MVg9b006THYvWG9JWiFGUXZSIy8uS3FkcGVbO0tfI0VTSWkkallWLnM3'@; put 'fXkoeUdUWVV0cyheVSY3aiNjbT9EdylMP1Z1Zlo8X2hxNU86YFlPLDMwIzIkNypBXWF6YXF1W00iemAzUDMpXj5wT1p3I1M2NkFHIXshKENNXUomQ0c4RTNycD8pZzNMWTNxYGErO3pOPTdFJCokbVhtfCk9IjlXYD1wd2RPWlI3bnI4Tj1xRjtEcVc8RTVtX0xrNkM7aCl3YFo7ZXY+ZyJ1Q2Ry'@; put 'PUQ3fj1feWhMPzxyNmV1UHh+Ki47Qk8zeUomLyozbEt4Y0EzZjVnSCk0JSNRNkEra0o5dEJjeXtdbWpIVDhdenYuak5wcnh7ZU9SK1lCNFBNQklMS3RTek0/Z05ncDVXcHtPIzcpT10pNWJuTS9wcilKSyRkJDJ2cntxRWgmPXAuaSpCbGtHM1MpZkpXJlojV3xTbW9RRCJsdUshIX5uWG50PH02'@; put 'VThJcyRSckUlU1FnOWckR3NXZDpCNjAyVyEmez1JZXxwYVJNQHZYdFpvKlNpKEcrckgvbEl6IWVvfk0wd2ZCPldpYjpHJXhPLn5OdDgjZTQ3NnZlTEJXeVU6KDhjRzwhWWRaK2pdYFc4fHx0Yk9RSl5ifU5bKF8oaHFHRnkjSzZ8R1c3P0BSdnVWOzZfcGgmVEB3PWUiMEQwQWYoe2pPb2JbNW9z'@; put 'ZUt9fkBkaDw0RyJXOkdLKE9LKU9hfj5OS1NwNHxwOEVbRE5fL3x0LGM7akAsQjV3ZkIzUF93QSEmKGgwNiNyP09edm80Um9rQXZxWmZpK0RyLmFMX2QvS3xKVkszSEpUPkVQaFpBYmdCSkhQKjJddm9TVnMsTSQzO3kxNTJVcmlWPFB2PT5GfiZJfi5afE9PSTx7QEJOQEZ6NTA7WV1NZ3hFXmBa'@; put 'OlloanRqfGtRWHVLNll6ZTQlbVk6eFgyTzBvMWolQGw6SkwlVi5gL3okVmZubkdvaEQuWj1bIUcwWC5+OmVeMD5tQ2E7dzt8fDBKMDQzKmpCXUx0V2pjYSU4eDYuWGpzMikkSWtDfWJlYTVPZ25CYnFOdkZlbiptI111UWBdbmpFdnE0MGd+SCZAVngxP1NSaG8xfl8qeCZ7dnxzKmI7RHczdG1o'@; put 'IksyXj5KelNfOklkai49RitdaFBPNmx8eGFmfDFTRjhCNFJ6OzNnPSI0RjFvTWdmfjh8XjNRI11lZ0tkXlByUV9oNi91e056QT1pNlZVaVhQKSYyMTxTOFZOIS9FcSp+W2VWdkNPRHQ8YkdwViNiQDMiYWUyWmx2NChqNzdmZG1bUzgxOTxwTzIzOExIJEdZL0d4e2ViIkR0ayVyQFReZjFMJHF+'@; put 'T1lrbCVDTlAlYSYhdGh2WVg/PSJneFtRSFpfVCpvejs/TyR8KDh5amhlciQqXlFTLkE1MEk8MX54SGlFS25iSnVzN1dDSlBSUCxhOS42ZVZZJl9fUVROOHAkeWh+anBWa3xKdUdTSilPdVdhNlRIdEVrMi5xQVZjNHs3UTQpV3debklZfFsifmk+NVsjTEpFamNyI3t6RjI1ImE9dkR7UHhBYWNS'@; put 'YX5uWG4rJkZdfThyeG9HZVkrRiRAa21MMl9FQn5+KEMiOUR7KigqeVloSl1fLkwoUkZifEU4PztOVnQlQjYqSTdMVGNbZEIsMkpPdTNWZnUwUENYZ3hPOTRGdHFWdUBDWGhOZm1IayFzZTolI2JYTERMX3VETFckJmJgWk9EKCN4XW4xIm0zejxJQWB7fkF+QUImdl05WXN4dGpPXUMpKXkiZzdi'@; put 'QzxSJnFvcmpCYCg4NXdLbHZVUHdoc3Q1MjUmMUYwe0Nhdy8wU1d5dnUyVyYmWXFSVzB5bjdgOE5sY0EmfGdoPDYiLEtKO104NHxXYD49cGBkU2pmSloyODshdTdpUXp5ZElYQGQjW0lHbkZrbiFmJWUhY1hyKmxvdGwoW19lSEdyL3xON15hNjF6SVREej8jbmpNJTQ2bi51MEQhTWV9VlB0Sm52'@; put 'SDdzOGpoQihhJTlmaiUjdGMiZVFleUJNe0BgXT17ODJpR1tJeyhdLCIzN1ZScVJKcXFXSmBEbU84dGxxd1Y6QDJHYnkmR3tTQ0V1bF10UURgbEpVMywhTyMqXmlKNkJWQnNUfipmYFVuamojQ1ZdIVVEbUVmfGtrM3I9QE94XUtwMEIjNHdKM15BWVZIU01Zd0R5KkNbbFdYTHM9LntAL2pacigh'@; put 'SCopMFlDOSojfXFWaV9McFFYfD0jNE52OX1jTio/azJIaWpNJmRwSjE7dz44JXsmYyw3PCZdW2hUfkUsRyxVN2wiISQwdVY1dUZKLC4ka11IY2pGVWNjNFVfIV1EIlQpWXdRbltfQEJ4X2VRVzAhPltZS3tDOmdSdTxJa2tFO04/UH0ibipWZV9BdGZ2R3QxUnRaSndBbEQsKlVIJTJWc1Y0Rz1V'@; put 'UUxaZTI5SiliWll0MjtAbHpZVklEYD1QclNSWFRERltMKDttMzk+LHQ5IUFFeWE7NUNSRlV8MV9DdXxYZEJOWlM7aXVKVmxOMHhVZmhNdSF9NX4jUENOJU51fFRBVyUsM29BNkclcFJydmk8cDQkQSpfbiRZZEc9MT81PFY3R3tSLk5SNjIxWEJ3SilSK1clNnR2O3k2fVRHbHxCWWRFTEhlZ3Za'@; put 'QStEV2xjU3wiTXhNIllGJXQxZzpRMz08TlROOUQpbVJxLjttRElMeSFsYFtjejYrV2pIcFRxJEtMLHJeZlNePWlpfV4mIWgjZD1QZ31zKmZwSTJERWdWYX4jZyZTWVN6dDRfck9bbjIzISV4cSZIRDtHbj5ReS9TcWQuVmcyUUt1ZUclakB9VUxVVDlaWCt5Vk5Td2VeTjtkTmEyUlkwKFJATVZd'@; put 'Vn1DZEAoYzk2SjdrPXAhazFzYX4kQHcqNyFOL3tmYmVIeVAiNUZfWCtMfih3QnpoVzROeUBqTHF3ZlJ7Pio8e0tyWEBzOSM5ZWQrXi4rYWo4ImB5cmM1ckxXUmRkUVIkWHVWP1tmQFgpciZUL1d9QzFQNHI8MX0ydzEjMEhMMTwxVSZDUyZaaXwrS1h1NEovS1pBaSprOl9xMUE/MEB2PldvaVNl'@; put 'JEheKUI9STVlOU8vSGw0Iz5YdktpMWZYRV8hUkRgTk81ZyNwTU1gP1REO2ZMTCFTMCorXmZ+djVaYTtaIjBuYXxmbnVYaj9gKzBjdihxZHJQRX1GclVQQGFYMSxZNzBgdXlGSCx2Ty9daCk9UEYyKjZhUnA0WSEwZnxBTjpXW2FJRUhHW154QU90VjxEeXh5TkksdkJEO0VuKTdjREBaWVpnb3km'@; put 'W0x9JTx1cnR3SDcuQTpINEcvQlFUNUkrK2opIlZ3RFNxdFU3ZCheaFF5dl5TQUkrKDp0QCIvUUpzLFsjS0MpW086NyN+SjpFRzsvajJ7OHsrIUpAOzlNKklTJTcwZ19QJFVbZVIyNnd4T3k7Yj9uNVoxZUIqKlhqYi9DOSp4eDN1KzgxPG5GVUtTPkBbQ1BMeih5aUdwZUJAL0RPLyE8JCV1Vjg+'@; put 'ZT0vWj09UHBdaUtscCRkYS54TUZxPkghdHVqTn0oX2BIWTtKIUhQYWksUnRASWJbKmxbZ0lnN0x0WyFJbD51IkEkMjVIb2ohZihSJVM0NSEyeEZ0My5ZelNPdFEpeEc/QkpaMEJrTzlYU0gsRVE7ZCx8TTFsRUEkfSZ1Q3E/fVgscztCQ2IxUjUjKnNEY01QfiRCcENadW5VRypba3F4aHB5WEdi'@; put 'ZX0qUUtdMDNDTEwjUSZMe1lMYG1PUCk5PyU4M2l+QUYrQCRCUjBIej9RQnlLJVI1Nko8UTZbO3IxWV1Jei5hYUs4NzFzeV0zY3hqK35zNGx4SXN7TTUidmNbT085e0pERiNnJVRRZHxxai9eRXIyNkkrKFBKYEt7JiR8N2dvP0U2JWlwXVNIKlliTWVjeCQubSp0JGZNY2gzYHg/ci9WOilbWEh0'@; put 'LnFuKUsqS2ZWQy5zYjoiI3QuVFspdyUvOHhrTzt6JGQkUk5XMFIqI2o1KUZ1QkQ8aFhNbXNmTFJka1lvV0U9XmlSdzlJdVcyNDYkbzR8eDJKQ20qdTpTflQ0MkFQIXpVZltlKUB9YVh4NC5JbDV9dy9dUU5XKDpfQ287R1g0P1t8XmI7NWBMW0drdCp1RVJIYUhOJlR5NyZ6fX52Q3RnSXc0eFpS'@; put 'eUJmXShFUmU6cmZkZV9yK25hOz1LLzdHbnx4cF9eV1ZEYSJOS31JT256Z3pbLippe2EzL0FgcFlaRmEhXmFycC54W2Z+KTplLD07OSxPMyF8KSklaT1EZ2ErU359aHtZQUl7TGtfT0h8ZVNlKSk+dSU9PENsKU44Wlk8Y2tXY3AwY0IoZGhAc05iMFVNdURJVUt6fFY5bTt2VWh0KU5MLmYkPXg8'@; put 'fV1VdiMqIyVeYnFPX2B1JEgmIUtGQl0xdC5LLnwpL0hWfD59LCRxPk5OSDQmXWdrYVAmYkYqSyF1UG5rTi9mNGopL1koUXhGYTtxcUQvTkghSWVyKz4ienFXRDs5KDJEaih7RHhOfX54Mj0od0whNUJkP2gra0pCKjZLaWVwXU9hR3RUJmFOUHB8QSVkZlIlYHNANEZtXSwjRVZ3SjMpSjFTVGhm'@; put 'MEg0dTx2YVovVUR8Nns1VVRONWoqRSp+SDZaUz8jfGZBL2I8SCN7X29lJURaUn1XNkJUakslQFJ2Iy92NVc6YHZ3TCMxYWdXQHtjfUQlYlteMn0uNWImI2hJLzJfZzNwZSYjKF00QjBCRmsqJWhfQVdVQVlDbW1vRk9lUVc1QyRMQFoqc0hdSCkvc3tKdilnbl4/PTs4NVNoIXpZPz4sX0I1WWI/'@; put 'dHFAPVdmRV58UnQiWH5yeHhfV1N2MyVbaHEjSSN+QFNtQldlWmNZU2ZEYnN+RU5YeSF2TEVrNWltTWZdQjtSXz1GLktVPksuWVZ1MUZ1YkpyRH1EREleS192e0hhekZDTygzQXosME9oUTMhfTA/IUoiQTwhUCF9L3lvTnRgNjVHSFAmdFN6QUJ9d0Z8ZnZ0MHN+WTtbYUpQLERJVDJwTXojRVNq'@; put 'Sll+RHlDcWZEPFhwVGEkcFcqKiVPbjEhbChpdHBhQVEoWkQ3QmIsPjgjNitxKCw+JjFEP35gO0JVTVIvIlRNIURNSTZIPj89bD04TSU/VEt0U3lWOEIuZENdP2NHKkdbbjZKK2xDOnFoKX1IIWhuVng/RT9uNHhgOSFhPlg/NGUzYSJJR21zQ2MrPGY/bGI1PmlJKmhhYC8pbm5iTDo3cD9MJiNj'@; put 'Lj89cVF3PiZiUyMlIk9xSns3Ol9CRzNzKHhxcG83NjdreV9uRj0meSlDfSJZM3ZpQzdpRTpobzxZYTF6bTdfNStKVFJwVkhdZVpCWDoxOW0hblVHTHhrdkkiV0ExSyR+KyxKRXc3ekdvVi8lVS9kZz1fV19qa0tpZVVITGN0d0xgamViMmIuVGw0PD1Ne3dnR057O2hLOll1ZShNenNpTjxIIX05'@; put 'YmtxeGdqals3RzcrZmxqbGdWUjZkVSU+VWlMaEZIa2ciVFc/Yn5sVkhkai5tNF1Me3k1LC8iSyRYamtRWyUmUz5+eDVuWSVvPUVbUH1YVHdpKyEmKilYVmAvY1klMVFsSkMoMn0qfWM5OlN8eWN0OEpZMGR1QzFgRHwmKHR7R2BtIU1kal9XZEx+RFhrP35VWDZyN11DcG10U1E9L0VEYWAlXiNP'@; put 'MFArU1MqXnpeOCg7UG9gM2o/WDhHcWhpLjhCT2oqS1Y5bGBYIlN1SjtqUVcjSkImWGU9I2IxckxyTGFse0tnJWYzay4kb00+SWNkUFNKVXhdby94YWooMj05cFopZHBIay9XR3E/dTU+KmZXdGI3RGQjLzxJXmx3ejZvJl1ZJVJMaXN3ZkddZy4qNTJzLGlZND1eLGR6fW88RXZBPmNkUHkuVE5p'@; put 'KmY5cE5OZU1NI3QsTSVhT31mVW50dC9mU1FpUUhVPmx9NUclK1svYjtEbzRMTn1bJE1IUUVMenU7UCVNfEV5KTYsWDxBfk9wUHpiPCRpMypYWzRKVGZnbUp4RE9KMSQpOVYmREw2YzVrImNVekllVFMlb1ZQcyR7TSpIZ185PTU3cSE5eUJdfW54WyEjWHJQTUUqTy8mfSV3Z0RiajZIJUpAKE9l'@; put 'LndUWHdHKVpmSnBkW1VXLkZ3YiloP0p6OXBHfVpDaz1LOzx0fnVwcGphMUpudEJOfncyRmo6Kl98KCg4NChVT0J9XUBuSURmRDZeW3pZZCxHeEA8KXlUIV48QDNrOjVVdzp9UGxWXVdpL1tCUE1yeXYuejxoWnNJZiU8Q309ZSUhYU1ZfCJMOWZlM2ZyKjVxQks4MipfZ0ImfTNZJUZCbGxCYXU4'@; put 'eDtwbW8/Uzd7XltwQSYzdE1qZXI0OV43Ol11SUM5YzVFMHorc2J8KFhgd1o8NFk+YUN4UyM2cyxRWFAzViVWVGt9RE0mZ244W3A7VCIyeTlhT3IrKXIlRE97e0BxcC8lUWVeJUszXiE4JiRDfWpdMFcjaSh5O0U7ZFEkLiVmQ15XSmo6ODxkbXhiKiFhQ35sajx5NSl7MnJpX0tJME51M3pyJHZw'@; put 'UjVIVjsscj9DSDZtcyYoLCVffERdP3t8TUNQYmU6aDh4Y2tbfjpKWThCZkNXJC5+OnA4Zyp8KV0vNXJAQz5zfkU1cFN3UTF2KkUmY2FXV21qW3xQRGppYURnYVdyMHBJNG97bypxc3I/TH1iWSFdU29QM2ptIi9VSSsqYGdDa0x2eXMra1trQ1RZME8wRDZXd3smcVBVYmRpImwpK3tRPHlIZF5w'@; put 'QDRJWT1ZclI5TE1Ac1A9WE1QMEUidlpLMF8kUj0vWkNPTlpVLCsufCU3cTBqc09wYWwkTVAhJHZiTmFHTD01WmEudil5aW1ZeF9ORE1nSyEpTUlmNk47PHBuV1ZMI35lRHFnbHJqIWM9QllDSmRtJGNGKn15b3NeNyl7UEpwXT9waWM6Imd9cExFSER2anVyWCU4SXZKM1F9bFBOXjYlJmlxWH1s'@; put 'Jj1sQExkIjRtcSwpPzhnclI6ITNqNk0oMFs0LD5IclY1Sk52Zl9AdClYTEFFKXNwdWo7KmJzPmRSTi52WWhWXkt8PWVHJUxCVSI6N25kNmg3b1FCNGFSYyJzSTdmVXpWZl4+W1REVCZrO2FxWCJ0cHw4VG0vKGYkUTlMU3kkO0JHJGopOC9YMC98Lm5gfDh3O2BQOigvZyJDa0t7b1VNXkI1QilF'@; put 'ekJNWTMhdVBXSndEK1UjOXhMIl5HZzM+IXJad1MkOC5eM1hqeEY0Ry9ndChzKnExd0JIN0NuXy9FdTwlUEQ5KGo1TnQ/ezlxQGY+SyZVWmlBKV5ZWmo/P1tEYFZAaSFJPjF5OzslXVV0X3EyaGIxYXJjK1A1a0NYUyNUVDlHT3NRKlg/QFc/dGs7fVNiOF5VYkQxLmxxYm1BWlVka0l6TWZjc01a'@; put 'M2wqWCtBNF1+YUdSQDdoZDRIJmNudCgwb1omKltyWT1nbHp9YSUrMy9JLjlbMUxuYUJkYF1jUCRMay8qM3BLKFYoc14kIU9PfUxdLHEkc2V8KEhyaV5SI2NdYSp1Sn1IRmBfN11vSTNBJiRLLFVqLH10c1BqRS59ZXNwLzVZKkspWDtvNFhvKUFvZkRYbUxFX252MENnSTh8IXZBZkpLejx4Y1lr'@; put 'KGRmZlN9cDFBISJ1WjliPUw5c3ZMKSF2dnZoc1JWQDN0LCJ1Tk4uL2giZ2lqa2Y5cG03NzBkbG5zYWh+VX05Njo9VSwvfU1WUn54cXRBelBuc3QwK3REKmI6LDVAIzNHWyFJRU5NLDJUQUhIb0UkOSJKKWNmVE8uSSRyT3pNX2NbRl92fTpKZUB2WmQoTVdVKTI5Vjp+Xmw/eSF1Xk4iaS5dY2x3'@; put 'dSk9a1A0WiVCITIzN04+ayImJVY4UjhAZmBUJWF3WG5MITVHSDxOJm4xUFtpX05xRV86K3NgMnM0bWhrd3tAWEh1PjZCP2hiZGRbd0w4TGk9T1VNSTVKVEBxfiNPOkIoW1UoVU42dm1RJEwvWm5uVmNSekNWIyVdYl5LIy5ZYzw2b0kzXnNfKUsjPkx5PDcvaDkhc0R0Oz1kWTQ4akpvZmY7TDk+'@; put 'JUooJitpI09hRklmYmI5Nm9TTVg0TGBVPGlzTmVNLlg9WiRtQUhvblhrOE17Xjl3cGwzcCVldWVeM3M1SFloYVMocylrej1VSHR+PXc0OX5rZElNNkRCLCgoekxTWGAwZjVpNi91OG9mUlM+Nk1DWU1wTzdeLDR1MnVydyYreUdTPiExKGdkMihbXjAwP2o3ZnwxVntuPGRWU2RBUyxvViNHbUNg'@; put 'YnUmckMufik1IjdfJjVqcWN4eE8vd0I/WmAkO0cjZnZyNmM4VUZmeH5CVFY8ZF4rTUM3c0ZgLndHY1R7WT0raD1iZTVhUEQybSJFQit5dFNlMHlNLyVxTT5YfWNoc345bVcuWz4lfTI3QkhFIVBjQlV1NWNoblM3ei4oLHc0aCZJfDRFWjA3Mk86Zl1MaFhpWktNJmgvUVQoe2l3YWt0PFt7ay9r'@; put 'TCVmWTdKaj9jYlp4PzJBI3g5TngxWFtwUEVdMzo8QDo6fT98IWlvc1JyPXVbcmJzUDZ0dE19ZWExKT19TyV6bTpbWls2WG19TllpaTV7ZFcwJStTMWxMeUVIS0A9TG9fJjI6Q2M+bk1vKnp4NXFYVEwuei9vKUhzaFgufCQzd3JMX3ciWXU4djEhb3NScWJaYEpCQC5aOjZaKzE4Lm1SU2Y2TSYr'@; put 'QmhzeDJ1NX5sLF8yN3dCaCpBJEBWZkpLN31MOjNWX3BPLiJ6fE9PclBSeUF6KmxOSihXbERjQHosWkFiV09jazkxSCtaMyhtSltIQVlnYVowMnQ5RX07JHpxZlV2XUJnQUUsPkomNGptSXc3RlkwPlo0cnN7ZnA6OHUzRCVfRV18eyo+PkBGWXdbUWE0RmIpLDNQfnZbLDhbPFsmWltbQDN6fGZ3'@; put 'YG5JaSMid2FsPCVjQTFASjpGYXc6TDBNY3xwcXowVzxuXjlPNnlkV2YrO0xNV0p6cSwpIyZ+dTRXbiZtWVlBPnFIVEt8MX00QkdYdmZxdC5OYU1dWFZ4SUJUdWN9JnxjNnhGKUxaOHNaY1Joajd1cjVmInVOd3BScUQsZiRSZ3pCe0hUNiVJRXlVLGVibF1lYSRZUiMwayZLaU5MQjVddCVzcGVx'@; put 'Lkk8NV00TjQhRj1uQDhETkF+UkAyO3lQPE82VXw6dlorfEV3OltkT2RELz9eXmJNUjEoPiV5PGFJOmYwU05TMUhSLzgiJWVmXiZxYUI1e1paaERTc3U6NnxnYWV2M29leD5iJl8zRygkfnQiTEZtKG1kUThZSnY6KmVKK2lCI3xZMT57eSpQVzZ+ISV9IyIqIVNDWW5gN15EOmVTQzJkUl5ZP1li'@; put 'aG09K3lSRyN6ekBMPERGPjYjfSFddmsyWWlSbUlWK15pPldGJSFIS1tBS0B9VkN7Q303IzBWfDFKeT9hfEswJmp4W0JNZFN6SiQlSS9YV1Z8PDB+N3ZBKkxZNkcqJDI2R1pjViRxMCk8W1FhOmRsKG4pMyNgaGxdKiklc2lmeCxUO0Z0NywoWSh+UFByLlZAXSkhO2ozfmF2dTpBVm9YKjN5KU5f'@; put 'P29GWTBON0FkZjwuIyV0eWpsKFBHfCFvYmRDel5QSXFtJT40P0J7d0k6alt0OT03U21CZzNATGE4UXdMI296Mm97Rnw+K3o9bltEX3tMRjF0YEJMOmNxX2UiS3Zja2Vbe2BLfl5TPTxeR3I1PVtJIWd8fi8oXkQsUSFvdXpqX189QUBxRFA1YHl8NVUxNDZrKSheLDwzSDEwS1tqel1dIjM+NnM/'@; put 'I29OdCRoN3IwP045RU8sQ0ZQdFtIQCkvWH1KPSZEK1JvKEgzekdAMmhnTlIzQ2VIKklkIT9kMyJvYWlxV2pCK1c/KlF0SDYiazt4XSs/YCopWnJBUyopVkJ0c3x+KyRFIjIhPV5vSDRYeXReOyRFVU0sbDZqdEtze29kby4wZ3IsZHhpV2pjUkw+TWdRfV0lSUlMXmg9UzIrNGVVKGhCNGVWNkJF'@; put 'fD8sSitiezpRLl9GXzxKYmV4fkZjQXU6d053Rj9Ca3laI3N5O0xEVXAkIjAzcSVIXX5PR0kxbFI4JVclXUlXdjdxazFCNjFhTmZVRnFkT1dnTElWbEs7ViYxNSN6O1I4dW5NNkxQLyhuazIrQD07R3VNKkF8K2FGOGlLRXZMME4vTjRyNGtQeUc5a3k/U1N9fGo+WWAhNnozbGcxYiEmTnRnWz1O'@; put 'VGlAQG8kVDVSPyt3YkhxIl83UCRASEpmZzt0UjtGblZeRD1sMzM3KDpleW1IfmYyXzRVPyVyOz12fE9velJdaUQ2aUh4SiVUfl5JTzBxWUZ0UXhUNiw4PkdqdDlLOnRWKmBoMHxnNF5UNW4vayxUUmllKCFJKXtQZHxpTFYjYERnSnhnNztzZmdVQjZXKlNBIShMdCg2aTh2Tj8rbWFqLDs1bUV0'@; put 'UDV9T281ZWMlaFpUVnN6cVQ9JjF9fl4udWFuT1pgPnJ8ZUM3KjkxbngiQiV5bFpReygpN2ZIPEVEW2JFSnNtTnYpaVlNfnpTMiExeSNtIjB0P28sZmRKe2NOWC81UTFQZT0rLHFAQFVWT0I0TDtCX1A2VUpzNiVLRTdpQT54SWxoNXF+dU4iWX18TjVUcUExZTN+PjVkTil2NmJYZ1hkaFZiYi5a'@; put 'X3JdISlYJk40SmBeU3Q+eSg7Tk1ZRFdAX2UsLEdqPi9tXXZ7PytmKE5weDM1KUwwOTtHZ1g8dndeVWBJWTt9cXMwXjwlQDBWXnVkYHxwRG15fVJ0an5rSERmZF9ybXRoSjUvNztFYjJaOTN0YHxhcmAqUSFpeS5EbUp7OjF7Uzd+T19Nfj5BISlHd0Z2TVh6eGlSKk59SjQrWE5KdmhFaio4X142'@; put 'UHI9R2YsYnxDTEdVIjdXNUN+RWI5S3pSMDhuUEJaZSllNzpIIkNQNz8jWT46SUBoSmE1Q1BNS289PjRNWF9WXTc3MEA3WG0jfF5LYllMMHE0W0d4KDN4NE1gUT0jVHp8NTx0PTlkeSk5Kmh6OVszY3Y9NEtNfmdzZHl2XXN9fj47eDAldz5eZW9aYiosIV5BIWZXNVRFcSJCVGFZRXhPOlpXX3VV'@; put 'RC9Nci4pRGM7RVNIWnRwNHxieilSTWVvTm9lSnJJaTYuN3RGJkdBZyUrNkVKTCtJIkY8YkpNR015Q2Y1S2FXR05PUXEsTC83YkB1fWV1WkI2JjNPVCFNQHUic3M9L1FRXl1GaFZHWk47VD5va2FUditZZmNQakcpV3sjc1gxR1s5MWUqQT5qbSNjLzAlYWwkY0ErLlMuPkVMZntHPWJ9dHcoVTVT'@; put 'IUw1VDYia3J0WDd6RzYvfm1maChZKzAmQVpJOXJ6cXB+QkZPNHl2O19aditZbiV5b20wbzhvSXFJSlVNfFE3cUxxWXdMdElDem0hOj10OmdJeW1mPyE5Ol5KWEhxPWoval0zVVluV20pZTJKdmhXWlZmKSFCUGNuamdnQjc7UC8udV8mQGVXN2ZZaSUwQ04/a1VDOkxvd2FFaEdrPUA5Q0I9ajJo'@; put 'KWM0Q3dQXVFEXTE9fjFbIVRqenQjYl8sKlp7YlN7WGIpcVppTGx8I0cqW2coY2YrO3V4TGYrd05sJm1+ZXEvSG9VZEF3V2B+QXRGSHtXLlBGe0BZPG9JZkB6NFJ2XSZIcHR3TChIMHoxfHZSJktLd2hERTZHRU96Wm4+OUluOSFoOzNoQHZLZUojbDxiPnx1YiRWJWZCL1gxUEg4bVdIRF5XcCZb'@; put 'TF02KVB0MlgqPD1QaVpmTHQxYklVM2A7cytDNCpKJUBuYGJDeyV5PWdoXT4pZTV5OnU6YkUjVyshckdndEpgKFJealVhMilhMDFtP0ZDRTV6Skw5TVFBVHhdc19eVCUmZThHPm97aENJbj4vY3tZVGkpY2dRKl91Tk9hNDo5dVphY0JpZ3VZdzdPRmVhSlJfTC8zUypCJGsqN1I2ek81bmZjRWYx'@; put 'eSZRbGJjaFhzZm5jKX12c0tXYFk/MipARmA+eDBHYmhNZzhrOkx4I35KZiw0TkFqeGl4JD9uJUJBRzAsamZZPihEYmxnYjRFJEd3YTl1LkxdTHQraWwzVnYiczVGLG5vd204K1dfdj5mYmJ6M3NOU0hSL2Y7eXJRS31yOHtya3NrPW1wP1hQZTYrO3VubUd4LzJmSDJmOVdIKjM8RjMxent3IX4l'@; put 'LGs2UmJMS3RHQE5PJUkjfCpjTz98TGhhaWI0bCUpZD84UGoyMm8wVG8pNXB0N0x6Zzhpby5UQ00lZVlNciNyWHZoaFVrJW9CQi43N0FjS3lSVnQzcnFRMEthXXovOjR6JHhHUyl0MUlvNX5YP09PYEJOXX1CfXtSYiFnLzpmOVFAKXo7YkIqQno2bHNQLF5DRS5+RHlEImVFaigsNjl4NTdUSFhl'@; put 'YE81OzllcGJaaiRHfj1TOV0xPTFsQDxgZis6fFdNUFB4fV1mUV8hbVJyV3kjJTlocDw6SUZFQX01KnNjakJ0ImU2d3Z1NS4sRE16PXZOUVdGUTRDeCtAfmJ9X0RiW3hwXlBrY2w9fDlqd2l6K25TcGo6P2JdW2tfYUp7ZVQ3NDZlfG5tLjF7WXhxeFdYSXhRVUl+Q0QqenovJnxPeEtMVUh1W3d5'@; put 'L18/TGlhW1tDPEZ5bGBVUXpUY3hCQ3pKR0JYLnRheGlsPXkkZzs+Nk1MU2sxR1txZXVWQHM4cHhGRzEsRF1lSnhzI0AvdnxPcElPXSQiZWBqPDNmTmw+cCtvfU48a3BRTU9zcWFqU2xUNDYvY3w0I1kkJCUoVWAhcSlVVXVrdV1wYiJAfCZbbFRsNV4uIzcoYV9Oc2dRMk4xTVtoOEBKVi9ffSVn'@; put 'KWpdT217NkZTJnl0a0pWXks9OHdtclRzN3p5Tkh0JE9APDVIRGNmOVQyI2tiZyh1Mlc6VHsiQns+WyNgej1IQXs4Nyl+WDo9KCx3S3dURSVLPDFPWzZtNHJIZi8lLHhCNisodEIvIllLdHtzaihDJXF5XjtqdWIkYHYrdGEqenZoMnA5OD5sc3kzRGJfKUgrPmBkX3RfQVV6ZVUjMm4kN2N+NTQx'@; put 'S1BbQ3NtWXpoVEAvRXlDe3F5YilTREtWIzN2bTwqLDZJX1tbUV5OJDtQRTIySm9lNmdKdDt9UkEuSFpbeixvciM2Ljd7PGo0bnEqfigielM/REhpfD8qPmVdJEYmL1haVEAme3YwZjE2eU1fTEFMKEhydiN8byRLY1pGUjNsdW5CSkwleExdPlI3R3pbQShFbWpbRUA4KEdPKSNNO3x5c3h0SXIv'@; put 'ZEImcjZFcjFveEVCK0BsYkhQSCM3Uz9Kb2ROYTZJa1pyUGlTM1tBR1RjKigrJHY9RV9+cWVZK2hVSE0rcC5dblA4TnVCcCFObUc7UVdwfixaSnVnOUZUWmxdXmM5OV9mZilxK1NvS3ZUaEVXSklPSz1seGo7am4pNztDcyNLSVQvMGIrYSUvNWRHbTo7fnooJkQraSZ0UW5AYnopdWdYWiwyJSR4'@; put 'cldMRS5sOmB3dTRrVnFrfChrW1IpMjl6L3g4fUdpSzExKDxhe1BvejQwQXxqbjRAYmYxbExEeCxQPlZYODI4SCF3MTpfIm5VdTxue2oqbHZ6WlppMGw6YGRrejdoVGJabXM9PUI+PzhnZyw+LEw/dH1Bel9kUDAre1ZaVX1wQjVdYmlYYHJDKiZSUXosT0sqPUI1M3kpNmRPSzJ7KDk5K0giQng7'@; put 'Jkl0Iz1UNm9fSys/KDRsPGdnR2szJjUsKjsibytMflRbKjdBV0o5R3JWemoxWzBSenx7LnlNP2gyIVlfQzBoPzNXSiNzST1LMj9XMy5xNiJiNXVlQTtrcU1eSXhWdz5BIko1MGF1TjhsSHRCJHAxKWJYV2IrQDJFK0tGYip5dFVgclNyR09WUzVUcnpnfDpBMmFnRjV1biRCdDwyQl1MIm9FYCRZ'@; put 'RlE6Q1JaOyt4cU80ZyNtYjczSG90PmB6ajM6KX5bPChVei48OyMoM1hiUUxjSilGTzdfKShONW9EWVlOL3UrbXZMcDcxOCg8WmkrI21EYSVfWlRfQyMoKGM5Zk0mY2BZclFqZTBrLyUrUnZXV0s1O30qT1E7Q2UxS2IpQGpyTyF1bVV8RTg1bC9JMFgpUlFvUlF4K1Z5OCY0ZHZuTXI2dkdnN2A9'@; put 'NFdJQzZUSlJIaHkvPX1VTSJOdlY5ekZOK1FsLlN+eX0zUlZaRjtMOkdydjpZaCshUUJRJGFDfnYyIzlseDtGNkdxRmxyallYPyRGSWBMPGBgeXFESW9eKEtSbSlUPSModEwkIyt+a3siSnJmczJ2PyZDZStwYm85RE0lV2Y5eGRAfi53TURVV09QezQ2X30yT24+OClPbXdKUnJHUGo4K29Ddk4s'@; put 'c0VZTThSI3FXUnRTfGE0Pi5KdiFAYXl2SW00UCpSVzAycnFnPXNCaUM9QDthWik6IUZmTGkyVyQkekRsQz5CfHJgRTYzdkJ5fmR6Y2w3c2o4WWshO1YiQ0t1LkkufnQ/YURpPElaS1g2SyNBeS4hZEZsVTlnZUBVbGxjU2N+V0Vgby4rOy9AKHVbVEwoRigqRCVUMDs4YCtleEAhWj5xL3EzaEZw'@; put 'RHFTaT1VZ3NmKih7YWZuVlRlbmslVUtlenswM3tGN3dAIyFQcjs/fFN6KT84fD1JTVlnelA8bTM2PzJeY0I2PVAkKU5PdXI/SERLMlg8YFdMRGZQTXsyO2IhWzpYejdfPkZaWltLRGY4QVQkZzBJSipVez1zVUNsNzVObXxUdjgyZHtISCVzQVpBV29ETEJWZUJddE12PT1kODs2VjRPOzo+bjo+'@; put 'MTNKXW1eNztWailoOkc1RTVmUWFdIWNJQF9HLi8sME57cnBCUXU5YW5mOGBuXklJQ2Y3NU4lU1VtdjojbXZ7bDIoOXwvTlU1Szc+P0RxQGgmQHt7LH5YSG5JLHlmRD1HMGpLPjRLe1VgYjZ+NHtDbU91YS5UUDwiSDYjV2ptRkFNYTQpaCp7bUlbR0ljKmAhKElXQl1fWzJzZzhUTCFUcnlARXlE'@; put 'RTV0O2NkK08oS2ZyW0ZIUns2Y3dEVEQ3XmNgIyJAd2FII0w7dmFQKmxTZj1tdW0palEuXTYmKllWJXA7IV5WeHtGcC5eLCNyOiFNd21QU357SSpnbTFNRksyU209am5MTU5yRCYrTzA7REVqPmtsfll0MmZXMyVxd1Z8Xyx8MzclaSFdJVFVSH5wYmpoaWN4eFgmW2g4PCl0e29GUEx+c11tRyUm'@; put 'PVs4PH47Q3ZNN0xFPnUxPmF4S1VMJFVHP1pDd0ZLbUtlKlFxako1Ym94RU5NfFN4VVUvREtJfmkqRVZRcWhPL0s0KnByN3hLfnZ8I0xoNVB1eS4xWiNkTCV3QyZoV3oyb0F8M1QpPUp6VihmZVAuQ2djWDdnTS8uen48cTlkO14/cTliR09lKUMvXntjbDs3MjpWdiFAUiUjNX14eHUkRTpUdV07'@; put 'NjdNKDY9cnBqOW1xNnc1OUZJLkF9KlohfDpASSohRi5bRkxfKWU9KjtdXXVDdDU+JUg9aH1VI3JaTFJDX203Kl8kKm5JUGVPeWR5KShgNUs9b01Ae1QmaDQyYyY6QFR9OU4ye2kvSTpAdSY6OF15ZlZMOztGNkNaQig7VipWSDwhIy5AUVBrXkRKaV1WSUJqQU5rMzM+bGk1anBiXyYiej1hZm5z'@; put 'WFRzRDhDL1IueSUrOXcrO3NLWzFgMV91QkcuMSEpVSMyPmMxZntgZXBCPm1TNDc+QFZWIXUsNSRCX2krKCY1eldCWSZXM2Z3emVAVE5VbWt6RUksbT1gUzArI3JFY1cuPXQ1aUI2VmEzWUY3KVcjPFk0WWBoXntZTSZiOilxInsrXm1QY2tfM2VDfF52RVQhUW8/dCw6fSU6LHBuTXkyL0Y0IVo2'@; put 'aT5xVks+V1JDd0s1ZUh8KTdlPUZsNW9NN3xMeD1FMkYoTiE0eDZIfVlveCVeOi8qTWx3IzRbZDZ+S2R2MG8sYn4kXVFvJWZfK3B5IUU6YHpkWGQsMDR2RjAxeGNnVjBjaHhfLERLcE9hNyRxQHk0Z3BodU13VyR+Z0NTP3o1VX5ZWU13KmFGSjVRMHBDR0d5Y3JeRixOUTouNkpqfnBmI0B0Zn4q'@; put 'RV0/PURzRnkxe1hrcW4rYUwoYVtEcll4S2p6V3ZRKWx5WU9yRFo0JFU+Q04hSnRDdXVgVj98V0B3RHwwOUp0d1ZkcXFvfkpHPEN1SlFwb1B8THxXaTFfZ3U7TWQpZFNFbkJyTU0rYEBCfmM3T3pOamtuQTo5aF1sYXxHIT94d0chUmh9VG1gKTVsTV9SWEJuQUNqfHhSaHJ8R2grV00oUCRyQn5W'@; put 'PUxzPXlfPl16KGtkM0w5QmUpWSNdLE9HbTpaR31jS3h5ZkpfWlFuSHtiWzMiKyJ6fU4pL1JwbEomdXpdI1FWfWZQdUQrJDJld18lbSxxfkU8fVQyVVVrdmVaWkdeQTRfRnxFZWtBaWgxVEw0YDo7WUVCKUF0Z0ZoTitefV9US3lEWjM2JDFibl5ZLEk1dXN3MSteckBOPj5HPTlnR0w+d08/LFZB'@; put 'U0ZKb09vVTgwQ0g1UiRmLkpVO0R+K3A0W3lyW3YjNT97MVkwU0ZsKzhGKjJVNWpWeTAvVlFXXz1aeVFQaU90a2clSWpnb145dkN1QSNsb3w4Q1BfRENqfm0zayptZFA9bTF8O0pBNE5ncDdgRTElUFJ2cTRlZmR3OXV5MktKSVszbjpgNHtxXztFO0wlNU1fSWE9eiJjdVZgZVBUa1NpYF8le2V+'@; put 'NHIke2RzWT56cTx8PVJEcUh4MjI7b0h4XW45d0o1SDRGeEQpVDJbUnVTKlk8aSNka2p8Sy5QWGEkaWZ1STNRUH02UGZdMCVTWFopfk5sZW8mYHRTLmYzWj5VMzgiTzJ4I0AwN2RYLDBmNE9KfTY/ZkgxJiMoOSlvQThqR2tVMWYqIytHd01KMmJ4amUuR2wleSRUVG0lVGQ5RjRWaz5LfTRdbjhu'@; put 'IXJMbVtbIShafTAzSzgsYjB+aVNOYWkjanNtRU4rcC9KR2J7Szw1KjsuI1ZxMDlHcyM2WTZPUEMyRm5YcERud1FwQ2hfSS9NcjxgVm1iZ3EhVUU9JWR6IXwueXNnW1lJPiMrOT9KMENTMXQ/bEolV19KZCFAb3B5Z1UjSlI9a2UwJHFoSERKYUoyZ3gzdlBEUU4/NjkwPH1gbVJ1Qk01KTwiWH4x'@; put 'azk+Z2U/fDVfMUM4SStsOF07RlZVZWNeS3FOYj1dcTJpTSs4R1d1bkA+Z2N+SWAxb11Tb1k9JWojXz5aPFtvLCVqVzNodHU7JDVuJEdNeSRGOERHUTtVVVlxKG85d3lpYXN6b2d5VC9MMSVqeFhuVVIxOmVUYHhsaztjUkN0WD1fVV0hOzxPN2t9ZixQWVF+XSV0RFV6MFMqPSY7a11VejxqI28r'@; put 'M2BdPjRiX3UuKyNufCFnTUV9PU5bVE4yMH1gcWFoNTRsZU9yeSRlLHBOJilnXk1NcTVRfHt6Kjo4ZHdvfTkzZGdHRiJkcWhnMk9JVl59Xm84Sns1IWs/NGdvVFUkPiw2W3xyQSZXP089dTB7SFFrUFIpaVMrQ0xHWmRlKS4/bSQ9YDw7bCIkKD9xJko0XiptYFYrfW9WXnRaQTNyPk1IRHptfWkh'@; put 'S2xpJkBOOiQ3VExuO2NaW1RzbkAlJXR3ZzUvaUtOT2w4KXNDZyw7PGs6OWgqc1k1PVtoPDNjLypnYHJdZ3ZnNyNTI2R9PyFTTG15IWlzY3YjU2NHX1YkdXdlLFowN31fVzJJMzphOWNCcEBGd3JfRy8waXYpcnhKbTc/VmwsPjdyeTdKVGlYaypjIl8iJEghfXYrJmViZng3SmIient7a186azpg'@; put 'W0h6OnV6MmMjblB4IVRDXj9RJTo1YFtSVSw1c2o4TSMwazR6e292QTlpWCV1OjhJPkM6Xy9LeDI2PltVXihTLiE2TlReSFc0REUoLzwqJih4Q11CR3NxI2tuSGR9fXJ0TmdgT05weENycTk8Tix4QlQmMEsjWFhHbl5TaE9gP3NWbWElNVY2ZHl8I0s4RGhRTE1xQ3RfJlF2WT8wIXBaPGVrTmR2'@; put 'am1SKjt4UkNKXWsoRlk4IWkhOEo5OEs6LzE+clRIaEsick81OGVZWVhwSCNEIlk4SHovS2h0M3ZWJXteLF4zSHVNPWUoYkg/cj1GV34pY3o8OjhHUENJJUUxVXJCOEp4dFFVYkpoLjozR1oxQT06JSs/XmdlYGhWaS5FQi9vLzx9Y2BTKTtLWW98MEB1dkJsZzRmd1QjX2NkZUp4QTFfPjQjeWwr'@; put 'RFI2S1pBZjA+cWtreHxnNElkcmRTbW9leno4OVVbalZlWlImZmtqJE0+WltaMCNeWChQJXwub0p4RU1KWW9PJi9XNTJjWlh9T0VlXnVVKEJIOjY/RjQ3LnpMbE5iKjojM091Qm54fWYqZiZpYCYpNGRgV3o4XVtPVn5IP19QVTo2WDZWWkAsdyQ7UUZsRjc0Ll82NCFSNj4lZy9nYG5YZUlqUzFj'@; put 'bWZERUMkWj90TDVVUj00eGI/NU8obE1YblB2UH5fLDo5MVZqIzpHMzdEIzpHM2BgPTdlKjtvUHhzYXA0IVU3dXh3NUxjOUdCfldgVDdYTk9BTXZqRV97NWM0dnNmbD8jWGQ2dTI0ZUh2dTI0MGM1T1lhaTpiPzN3QmJIZWYvaiRdPjRmP01ZMDZQRSxMJk5BOUZMRUZdOVdlVF0+N20rV3koI24u'@; put 'TV4ufkhXeHgjKUA7NE9udGtXcCZVJDh6am9CaDtjY113Wl9EaDkvJlF8N3FiYURZUDRxcyxSRm9SazwzNlh7NTZUU2ZLNWlxeFYpM3s/MGFmKW44c15sWnQueUwrQyhjMUc7Vl9XXzN0cyQuWjJLKDlCMXpPZ2Y8JmlMU1NeJXVYam9JUXdpK1d7cl0sd0dHQHlgPDQkc3xzdWx2LHwmcGZmVkdq'@; put 'UVRsJjswcG9HJnNtcnc3X1lUSjwxcS54Zm5VVV4uYjdYU3gvelBxLGRYUSVdK2VWTVZAQ10lMi8wWCJyaE1Gaz82RWp9YWsycGVHISpwPzgqYCs7LjFzVjBeNVghNylQTGltN286ayFVaHk0TmJMcissdCkqUEEjanN8MExhL041VHJfaWhnPi58MEMxbyE8Y0ZQWzo+bG0yJGMzLCZkM2g+OkVQ'@; put 'PXYqVi5zNDsoMV0oP2orbWtNTkRDeER8XTNbeyM0XVApRCYiUD5XKV9XOng4NWt8V3YlQHlifiRqJDZ3SS5fcHdOTDIyImdpKmdQQCJzbjRaSmhobndlbG1ZQmJ9ays6ajFBajBhN1lZTXc1NFRJdUV3YTJpPGFjSGJvb2ZEYXhaMD1kIVZ3VWlTQD1gbz1GMzhFcT8wS31TLHZbZXRdRHlQU0lZ'@; put 'Y2t3KVc7THJHNnBnQHF5YVlLNkN1InpNbVk1KFpTLzBWdHA/YXR6Qll5dkRpSWRQbVk0LD5EKGh1bH07e2NkfmUrOz5OdzhoIighdEhmXkpUJiJZaF5kL1ImdV96QjFWWjtLVjRSfSwsNzFvaFQ2aWB8YVNPeSFybUJVN2F3a2UwVDh2Vl9tPGEkST9CaDcranMpWlkwanozclNgLCFXMF01U20x'@; put 'XWMhOEBgWz4sLCxsbzxbJlYvN3lXITJLTEFgQl89OklQOGxvNDVpPkNnYHVsMkRGNHBdJDR3LFVwZ2NPSSV7WTQmaGg3ckRzPnQ2L3xVTWlDWipmaVNzaFBdMFRITn0jXThiMVNPa15gaFlKJWsyfDV7TnIjbkRYbl44PXVXLkRmbixdQV0lSlldYltUWjhtTTRnajJIMyJpfERIMzxSfWl1PGgz'@; put 'OSkmNldLPkBDP1QrZC45I1NoJU8rTigpT0NIYF9CMXhvS3YjNTYqa3hnVUA8dENgOyRuNDZ2ZjVOQE53dn1aUEI/VEUwamssWjlnVHNDaSk9fTNtI0omM01UJD9TWm84WHQpMj54e0x2aDR5LGhMfkR0Kzw4VzNYUEAwRHskdWFRR1VnJjpUTWAxclVdK1gmPCx+TzZzUSlTaW1ZPVJtZUo5eHxA'@; put 'KGssVVFZYkxAYTNzQFZkU2FdQEtpfFp+KCosOTxSKjBiZj90TChnIjZtZ3pxUik2N1FpMWsxW0ZoL0h3QShEVkMqRF9JNmkjaloqNiZhOD9OIXg5X3NIRUxTNSk8M3dHcTh3d3k9X3x8Tlo/dFhNVXZRc11DV294JUk0aH10eHluS2xQd2ZtZ3QvbnpnOVtyfShYJT9VVWh2dWw7Xi5ITT5AdV18'@; put 'KmhwfTlEcTIoJiM9b310REsmeHEjSS5XZkAuJn45Znw2fm5iNUNvWjVDc1o1Q3Z3WEZoSDteWU9VZUt8TUk0XTU5ZV0sQysmO3QvWEM6L0YwPio2Y0VUTUtLIURDRFVOaS98XnBQNWVMXzBwcTgvTz1SN3ZkV2UzOSlUblYkaHg5Y1R4L0dyc0VfeT8lNDRNN3JsPURYTHx6dkwlZVlGaVA1R3ws'@; put 'VStlNDlYQGteSiE0MEFCdCw9djJwei9ZLzh4TVhdQ0ouLHpeSWomQWVmJDxqYDl2STRkdWA9QDxhTVpldlordjlBdWJNd2xNdkNpQWs8aSVaKTxAVm9feXRYTjwoMV1eODA0aikpTFE8MCtPfGh9NH00cklPSEI1RDxJfi8kImAiajV6TTI0cDdhWTBTPGtsM0M8Q1pnbWQxW2FIa3JKTnJqbGN9'@; put 'X0BlLmkwMSMzUl44ZVJKNjYhSjZuXnZPNnAha1peZmoxe3ZkSjZ0ZjJTMz9IY1c1LzdTNSNHZ2RQOCJ3KERORWI6bFIwe1creXtJO14mfEhKL29OSXVpN3ElWWVRUko5PT1GNVI4QyhiejQ8JStYJD9yVF8sJjhoX2Fram8zKiwrUm1iW0BaTnA3JHFyYTVjYG1tMSlqMiUkYTpeZlBAISRTRX0l'@; put 'OTVqZiM5cGc0UFRFYDtLbipsdzo1W2JCWllpLiZhdWslKVdQcHV5YU0iJW4wZHBhVGJMemV6P3N5K3J6KnhSUWtUPyNAOUJtTkAoXUZdQzRMe0M/PStzRUwmLkVMKlBqen1EQDU7KWh6dkZwTlhiRFZlRzNdJDZzd3ZGcGQ2dnxLeiQpT0lXSjFqOzMvR29KOHs2TmJMPS5iMUlsU30ofmtUZlRr'@; put 'IjdTdVVScHF+e2EuTCZwRHplIlg8Ji8pbHR9L0dvfFN+YyY9aWxhVTJbY2ZKVT4qNlI5WCNuU0RoRm1PRkgvJVVuOSxOVk9sO2JHKiNXRmM1PXh7Q2VybzBzRkwySUpnJF5IbV5idHgpZ3p6MF1eLiV8N2JxZXM3U2RET3MkfCo7Wj9lezAwakVOSHE/amxRTlclKVpoLjMhZW5pe3d8IVFHMC43'@; put 'dFYlVGAxX0FQSEdvYCltWX1Lal91X1loT31CZHxwcTUrYHJDLyVlQ1BiIzBqTCRGLmp7RkphYTw5WEZpSVsrWTJyO0AhWWcmOCpiInV3IjQ+RitvVXFgPT59TksmKTlsIlJaPVpFNTdNSCU2TClCVEglOXspTXdbYlNxNiMxTDA1N2pGMFZxRWpnLDxCXyh4SzJbLGtZfn5yWkc4fjJCfVlFUU1u'@; put 'JXlgW099cV5Mfllmcl5RNjR9U0RgeEI9MyQsX09xdlQ1WzFdKWd8eVpQTzN2VSQ/bn5MaDVGM3ZQP1Q3PCZkSk13P1cwXXxye2JRUEtLN3VgTSsxfltyLCsiZXNCfTpPYDE6V2VBPH0xSlp4JWBFVl9LeXxXK3x8USYyM1s+Tmw0UlhYPVIodUhEXSg7XVZiPkhzWFJHNmdvQWFwTXQ4PnlybTFM'@; put 'YUptLCYpfVszcntbK2V3O1ZwbzRfOiw9PCJDX3tjbVU+NWcsY0RITkJnKWh3fVFEPDIqLE5IMV9EP3UzfHcpYkJlVnBDY1B+R2xDZj8xXjEqPC5nNHVsUj1jcDlpQXwwQEx4dEUpKk1JN3xYZ0RkKmZiYGhMNWVNYX53UFU2PUFhXTk2V0ovYnN3SzBiRC9bTGAxZnVAcStWeHF5PytwSVclJnEq'@; put 'ZWNNISVbZCQ4XjNbQz01cTIjTVhOXyVodiYwXV8qZVMhM2s4PVE4WyhAayNGOEQvUD46KS5wKjV5fTg/S2ckOFBvJCpOdFo5Tyx4eXdqR2BOUW8rMVpdV3NZQV5vUGwjMHoxNTxnYTxmJH13QHVmOkVIblt5RDQkel4wTUw+eXo+SFksSGhdQXdDaGIzZnR1NnRfIU9bX1k/biVNdXteX11yMDB0'@; put 'RXYyW1UzL1lGW3h5SF0zTGVJWUh2VV1oPkgjVyx8Kk1tNiRLVmFQQSxtPXtpdH14MWpRIkdrKWZvJF5NRiM7T1ZTLzspa3R3KCxLdno8OGs8JVAqeTRMJTtaaXdkVTpsbkFQciYsWl4iRT50JUB0KEM0a3hzPmEwVFJmYUl9YWl7OmdVbEdMcHVfbkpPOk8+azl9Yi9fNiFqajc3ZGF6bX0+U0A8'@; put 'eyVqdT8lNT0hJH1tbSRJbDJIcGdtUVgjY0tnSXI6amN4Jllycl4+VUxxL3xQX1J+OUhyOk9vdzk5Lis4bzpYRj0yWHowOVtPOX55PH50YmhTWktPMnYpUCk6SFhCY2JWJSlafjc2OzlpbUdzWmdeV0cpLjgzQGdadjF3cE9IKnYjTyN1ZTBkKnwpKDxMJWYqP25jam4rN0NePU50ZFhWMChPdl0k'@; put 'UCRlXkAoTzdhSjxzSj4uT3N+MTwiO2x3dTVKPHpBI1ZhMkBpfSRoNnM+NjBoSDVLWHhqdDB+dGZ+YmFadGFzNDpFTUVCP0IsZjJ+cylCJXppdkw+bTA/bThLLGZDLipuYWAmLjErO01aVnUoZipfZ3UubDcoci9VRDkmWGVFNk4jaGVVM1d7S1ROaDBnTnxIX1FFRXxuX1NaTyZGbzh+Mk1pa0dU'@; put 'ZyhtQjJrQ0dpTXNOO19YaGdbejw4UEA/YyQrKiVsJCNEZVh6a3hVPVBsYFksVjo/TFlJfGdUMXxsQzlZPCFiPUlTRjRtQ0l1Z2khelYuZylzQH5nZGhPa3FwWk9rKjZKaTxBZip6OXVCbzBaQ1FBQ29aMStDdXkqb05CSSs/b3tYVko1MzUrKmNSajhdLlRlKWc7ZUB5QVJbXSxLeD48ZWRiT0Nu'@; put 'eyU7RShSMnosfm1qMyN1fmd6IWoqKEskeCN4Jjx+fFBiYCVIN0EyYWV9bmEwJm0sNlJzJmVpLnhwe0c3R2EqYlJTJUFSMSsuX1N+LFN3MVcqe1Jwbz4zMnxNeE89eU8sKURYP2FRY2NuQncsNm1IVj9LVEdUYEQwLk9FSk42V3dSQyExMXkxb3BseWspZD82Y2wjMD89SGIqZXskUktqIlJwb1JU'@; put 'PkgzSTNZLyZsdzFgL2orWjZ7UmhnPllyOCQyMSY4P1ZFbio4eHhGdXRvemVKfDNOKGpYNmtBcGNlKUohWT14fDJ+JXhaTWhETyM2OEZUJHIhTXE8NFF8P3Y0cndVNUJyN2M3UUx4cmtgT1pvSFJZZHQ9b01IQ0gmeS8yYG8+IiZ8eUVmNkUobC9lInA9T0s6JEQzPSEkVy5+QFhYSCQ+ZCRAYX1w'@; put 'WnM9TXN2a2ZMP0ZSMHNSLjtkTCRUO0hCWGZWRFhrVSFvSHc8eGNvKU5fM3ZCcFtHPk9tR15HKCM2N1trYSpDMGpnSzhCYnd3Mk0jST4haEtSc045UX1hWCQkL08xUj55cz5UTWEsMiwvb256ZzJrXU1bdFFxPVdaVX1tYWMwYkE9YT1vIyM9PFcuK2dZeyN7RF5teSMudmskUSRnQDUsUGtYMGwr'@; put 'LE5sVDQ1aittfVBrZEMhKmxDUThXJXIsZil2WGsyVkklMjU8Wk03dWw4P2d6T08qQy8wYGkzeFZUPDw3cHdOZXp7JnI3JlFWZiQ2TSUoeVFiMjZwRk1BXlRNREA6Z2F3NXByXzpVJjhGNkRUMTJAPUA2YmlDeyEyVE8yKllOPXwzbVp7Ry9XKyxbIWFSflR5WDpncj07YEh+ak47T2hdciJ9Tm5S'@; put 'XXdpYywmWWppVDZkZn5OemJiTGpmaGUyOUhASV57RyNAa1ZlJTBvXWdWXStKZy8wT3w8TEMqQG51QnV+VnMySUs5XjlWYi4oMnlAJFdlZk5EIzVdQGlvb1E1PVRQSiZXKWYpfGYmZSNYe2c6bTRNTUk6bXkrQUdPI1spWm1uRU8mV1QxUz0reSFNVEZxSiRhSjZEYEpCZnljd3BiRyI5ZTlePH5Q'@; put 'bntYKmEoVj80MU8zYjFpIkBdbiFqPUQvImhQIUJpfGBnezJkVkRRb2YkWm18WUpZXiZlR31hYy9ZZ1UwKy9rUCMqalBMaHtsRVdFdTh7Wkw1e0AyODFSaU0zfS84dTJ8Pk8uP2pWV3tnLHA3WEZTa1kxd2U5e2BoSVJfWjY9RV59cjF6WEk9WG5bV1s6IXwrL2ovIUpqNWQzOEFlc3h7YmJyW0BY'@; put 'UkRlIkd9YS5UQ1h+NUZFbHZkdkJ6c0lMLnlaVUh+LClJY3dIYGssKGpzNjc3I2peP0NJWHBJIyFwNjJfPl1CckBgTjQ/YC5aZmwkOEteeHxiNHVBI0M1Yl5ZZ0NlUSNNb31pTnx1cE5Nb2VhPGBEa0JlaCNqOmcweFpNbXcidV9+cEltOXMsXjM9WjYlLl9BUkhEMWtCUHQpS3gja0h3Nzt4cjxU'@; put 'SHh2UCwwN30vbHlSQiFCWzJWVkQiakUqfWgqOmBifihVUnwkK2FxQD5id0BIYUp3cEFYL0hgQ0MpTEY0dUcoOTN2bWJiO3BROHVjcCpEeXwodiokXWc/bCslTn0ydyF8Ymo/PTI4TGolW2Y8SVNwZ3w9dUg5OGZ5eityamwoNko1OTo4fHRoclhOa3xzb0MxaGRCVV0semlSJmAwcl8qZkAoND83'@; put 'cyYlfnBFXzdqKT9NVGFoWXJ+ITZ0Vl5daHQ9MWZke2dlKCU0XUM4Q2U/IXE8RDl1OTpEIzBTQiV3eHxuUWc+TkZ2XVlVUTo1OUltLiZsNSxMSWlZNnAlWDZFPlIhST9deGopZGB0W3ZsKyxKQCNjdGFQJlIpNW45d0BBQS83S1o/ZUpnPFpGaSJ4dGFpPko5TyJZJH0/VmgkOzRxNE5WMzElbVt0'@; put 'QFYyNTghdTpyKlFwO18qTl93fEBLRjlgcTMiWC5jW0tnNCt8Tk91blp5QFVsTHp4eGV9UD8kMF1JJEB2W2lfMSpyWUAodjFbbTlEZ0x4bmZDYGo7NiRJXVhJJjJrYVN2VVh3eC42aUoxKmdTTHpkcF0vayRYTWZKQChwMVlJMEM0NEx0bkRCYG9EWWJRKnAvLkwySU43dl9oVkFAWCl1LlFGNi5K'@; put 'eW5KITdKWT93QUtpcGVHOik/eXtlKzlUe00oK0t9cnRjNkAmRn00THhqUVVUPzcqMCEwY0s+bmVILkU1T2JSXVg+cSQ0flZFbCJoZC5DTTo6ZGQ+fExVY2Z+KiopelIhKGldPyNBYmliWTg4SjckRjh0SHleeFJ8b2QxT2p9eU1leHkhIypUUTIke1k/alB+bSw2d0doXSt5UXZkJXRrYTFPI10s'@; put 'cm9Ab0ZsJGoqOCZzJnA9ITRwRlZCQFZNWTkjc0syRT8ocUxyb3FtcFQ7dzUwQ1RbUmgjMCk/YjMzIU54TWpeWyRpPSlwOjpVVExRWiRkdmlbP0VzVF9uIlBib3BIYUY0X19adjEoZldmRihdcio8Zk4mVU19cnVxZVFqN0gpLHlyWGBnXyxNYEgpc2BaVnY9VFRwVU44MT9iM3pLIXZGQGs4TUtZ'@; put 'Z2ZlXV05JVEzTVRzNEhWVVF0OChCOipsVWlDcEZnZyIhW0ZBY3pfVnNAKmpNPSRqbEdfNyVbQHtrYEYpUXhiYCUrLChDck1VUWxeOTwwd0ElYlFJaX0qWEJqezZRTyt3PjAxeGUrZm1fZHJwLENealgraUxrdCkyUzJnVm0lal5FJWhAXWVZcWpvUkZQdzd6ejB6IjZnb3V8Iyl+LyM/bGE+RmY0'@; put 'JHE5VlRHeFhHRDh0I19OLzVGMUxdWV5PeUpfeHJkLjhPSndsQFZnSE46SHg/ZDVRNHpBYV49bXBYTSQ+b3BTTjRbbzlASnNzNU1iKEBLTDojeC5qblEwJkwzOD5FczFJTCsmY3FBKkl0b1RGQjtMMykycVF2U0gjYDwsentjSjhoLGF3dGR8KEs+dHJmVmw8Mm0hNk9PcmpAT31FMGMoOWQweTcw'@; put 'Z0QlSz4wIlpyXkBKazI4SHorRTlLWyojcz5FVTEySlc9P2dVR3IyTCtePEZlaTdhM1JCWTA6Xl13NiRRXmY5Knk8YmtoTWlIKC4zSDJ9IVc8QkduTVVkI0JRc0lUWjRoLzswMkI+Kl4wNEA5d24/Ry9lOyRfPiF1YT90Zk43THcrbkJaMVBbXSZ4ckAhaSJbNkh5bzhhbiJfWlNWK1FUe1Bbe10l'@; put 'ZismPC9zO153ZTI/SHc6XmRIe1gueHNEdnslKE5HZGk5X1ExcTZQJjNlcHVSUUpDQEZyZ0Y3RyEmIW4jPyRlU3FLbVVAbWdbQUdgMURSWlFvYDReL0A+Xl58eCVbL3xgNCM2NUteKVEjZzFKdj56Pn42aU5tLmxLMD5rRlcrYF1yRjIsMm5EZ0R0a2F7VTgjMUpsY3FLJUJMa2JITDFINnRGPSk7'@; put 'd00/IlUpZyE9YFs0IVZoQHkjWEd2UEtOO1F6TzNVOEMoO3FKJig/YyhbX2MoPVd+cltVTTJxZH1LYVtiI2heNnZOQH0lVlFaIixGJV9pLzBIckQoP3RxO0Yyb149RGg3WCtMI1J4KnBma2pII2lMZmM7WHl0LiZPd2NSMEpiVVtuOCMxYjd9RUVlZkk2MXZlKWlnSk5hKWp7NWFtLCNqXWdyZ1lF'@; put 'biQjRz8qYURzJCtYNyE/azh0YVcvRiFAI0E2S1p+I2I7XmJjfWVRXn45QmN5TTd+YUE0SHg9aUQwUjRAWnZ9R0ZhWUZzUnpLeX16YGh8fHcubTNJdyJxOUZSZjQ8fG11RHZqSjR9ZjBOcVB2U3FnQ1RkeW9FSD1qQ2tKZS9wTVsxRi9EMERBaCt1JFY+S2xaWy9UM2hTTCgxIUNhRSFKYWdebiVm'@; put 'Pnkqalo0VkBnUEVhfkBJPT9ifnwmWGBLT2dgQE42cV9MaXxOPm5HOjI8VmZuIT5gRXRnKENyJnxiTGAlOUUsbXAkejl4Ync6L2s0P0t+JCRQPV0vUzNXSj9FKzpAQ259eE99JWhjXkZFQkNBemYpOntLPlp+flFHXiV7VyVnMWdFOixnMXl0XlZbalMpeXRWO2BXaTM8JFR0Z1Yld1A7UXo0fkZ5'@; put 'O2U8Skk3blB4dCpmVHQ0XTR0KU8zZXdDL3MuJj4zKkpKTmYsMV1OPnAzOXQxbThgNCl8cjJyKzU9dm9JdXkxdUtCfEs7L2k0cVE7a0RCM0MmfGo0JltQYzpzOTxdPyIycVZsYF8jS0lVVUwzK2VEcD0mbWUvcD1OXlJhZnBII1duPj1DfGk1LDgscmRDOCtMKiwpaldyWGJqd1MuUTwvTm1JfF1B'@; put 'XmEpU0ZrQi8qZHVuUWdCNmk+dDZuPkJwJHpQSE14aERbdltMPWFxUElrOV1RZHxuKFpZRjUzV19fcy5HPFdmL1p5IUNEV3ZackZDPilrUjBJQXs6YHJXejxreGZULHU4cDB4QipmfjVlfXpJc0YvVypGbmZ4RE90IX1DdWtsKzlaPVJnVUk9WihCOzo2USVpeXZtYz9DZXNmOy98cTYwQld7M3w6'@; put 'aHhjUGA6QTRzOjtkanpPTCQ9N2EsW3dWY3ZTVl1bLjhFJjE8PmxAYCZVXyUjO3k8KjtlM2pgXmo6M3whOExBKHpzemVbITQhd3w/YHReVno9JTBDYTVlckg5aTg0XSg4RT0kKVdUMC9RaitkfVUjJU1fMV40ZzMmRC5xbUxyP1sqNGZmZyY6QXg1I0BqMlNLLlBHO2xJSTFMTnJHPnpHKjgqV1B9'@; put 'LGMpZD9xbGJqNS4iXyIsYyl6dGdgO3RRPUpQUndGJWRVe2VhODloQTtMLHBVcSN9TzRFXVRrS2R2ayN5PCh8UnpMRE1US09AJFNRQ0c3dFRzQFtLVyo3cnc7XnZLU3tHWUFETU8lKVVfY3JXJXRePGkpYjBURkNHSzZCNCtaKVFnVVA5RW0zMiM4biNzTnkjSjY9YEBsaCJ2W0AxOWd3VzNrKStE'@; put 'ImtDLjMkbm4yPSs1S2FzNjAoQ3khbVM3NU8/Z3ZPaTF5T0hdXXVuRzRrLkh7IW8/Pl12cEhPa0ZlNVIhdUp8TjhLXlNXJU5oVD8zaWpQNnNCLyY/QUR5azNCN0V9eGd6LyxifWVpSlA4NC9GM1dqTFB2SURLPlM8aWlYZjNnKWE5JUZSTWh0UF1EXy8pIk9MK2xwQXFyNGYqLDd7TVhrbzc+QGpH'@; put 'RygoM00kYVt+NF1raz92Y05OWGYscVo8byklUF9jW204QWVMYWJycGtZNjRKXSRddTtMLDtsYVMrLG1LKERNSmJ3LGdzVDZKOklKNWEjamNtcUI2cyNmRy9tdD1DWn5HKys7bncyTD9eIlomPjJMLCwwdlI4XmhLQkF8eUBJK3A4VUFPSEBPcilsd3VgeEQ+Xjo3WCw3MjAzcX0xQlkwT3xyfXFP'@; put 'NWB0TWBkSiNTKXNnOWk1MUV8empQRix1eEQ+YGxjRlpVOnh0T1MxSUAwPEJoO0A7XzFwZltIaXZCND5nUTpXMFlPdUQ6MTFYKSkrKmZ4ZmU2aEtSJmVfUjRoJTBVO0UpXUZ2TmIobGZEa3wmbTh6MXlKYXJVZk12aDxmNEN7JmskUCNMOXdxJGRkLnwzZThpYjo0Y15tQmtvUVMwZld0NColLzdQ'@; put 'UH1ESDYxKSQ/fGp5Mmx4Y1JuMHBwYDxmOU5CSy45V302QEh2XV41bmJiOmBkS0xIU11qVjhyL3VIYlZBLGpYciZiWC5Lbyt7ajYpVUhKT04hVyxOYU4wc0MvVHM0PWAzK3w3STxRUEswRGRNYSQvQU5xZm1seGMwXXUvPiFJLC4wSTxRUGoyYWYuZk4wbzYwWEJlRHNDIWhlMzpUd1VOZzMhd14h'@; put 'cT5dOEdhQUxoVDFxImArSCYxSTxUK2lXT2gwNlVdQTsiN1Ywe2o2RTE2LkVnfmhaYndIeGVpKi88OmI/Nzk/L3xkcE92LnUrRDhqXjVpPDAzYTckZn0/fGooTl4yXTIjfTJVSXp7OTkrIWRkMnRsLDdMUnlwKXE8dGxaKl13TXVoRzlPbTxgNW1NUmMrbyx1bWB1RWJKOjBfIV5iV20pU01NRVpj'@; put 'YXB4Q2dfNVdwNnFDTllQLDxKbDdIMlMwYkE7TCxaSlQvaFp8a3kqbTZVY0Y4KEBnM0ZPaSk0Y31tNzZtTStOKDtkZDJ0USt9b1c1MzlwKWRecVl7ZEpPMF1VLixaMWcpUys3Litvfl93cDQ6IjsiLyIqN1RkeFpPdkZjOHdYRlkmIXtjfF15RlVgN0p7N1BRT2EoTzYwRDR8SlQwezFJaVU1TkVM'@; put 'ZGl7RT9kNDNIek5iNV9IR19NNFJTSmpaVUBkRUV2SFVDXiN8NzlFWFtFSGtzZHt3ZnBFLmVpbTxJUlAwamJyUnU3JTxwe0BGPlNWa3tRLnYrSSJreVMrMyMkWFhJVyxiUmxndF8vLi8kInpSOmw+KHtSdjxmQlkwaCNZN1paYFRhSi41PGwzWiJ6Nmh3Vk1yTUxnNi9VWDAlV3BZV2g/bEFVLHV3'@; put 'byRxcSU8LE9sdHpzcGF3M3liOnJqZzs6ZD1kJkVtLGF3I2V5SmV2QjQiTU1hMlYrT3heYC8/WHJuX3FNVTZFYjomdUJia05FQGVpbVVrSGV2IVskU2ZYUlgqRzhhKmRtOl94VHgxbzxVQ30uNS4vLi9OSzksbHEwI2ZCUU15TGd2S205cjJBdkM+d31TIiYiRCZFNWlpNH5YPzdhOit1UE1hSjE2'@; put 'YTo2U19OMFN+STA2eHcjKXZEYjpBVWFKeFp8Tjdhbi9qWHImZENoP2orJW1daTxFWSM1MCFlOEd1VnBKXj92TzU8NEM+d1FhR1pvS3VLYTVyOTlId1g2KXd6ZW02M3xwKjlvY206PTpeZFptVD84TG9IcmVgWzEpfXxgcGw4Mj1MaGdufDUkaVZhWWouUjdHNU1QMEkkWGRyNSglSXJ9IyM6YSxM'@; put 'eC5Xd1NUYFBSKVddPDUsOnA3dCZQfTZAV3ZHW288WVczfDoreHc+Z3ZuPjAhWG9KNH4rMChyM304cF5ZO0ZCSX5Wc1UlMG84c15YRGt8WSNqPyE/PU4+UXhpT0VmTCtTZl4sPCgxXWlzQX1zaSpHVmEveyk+ezRac3ReeDJ8U1F5bnFRbDt+UyQoa2dWKWZ8XWs3OVREQ34kemdoeD8wZWo9Ylt4'@; put 'czlJaD8/ZEhSWW1LW3thLm1oMy8xbXpRenUkN2F+PjJjSmQ+eFJacTw/JnJeXzpOYnxlKDRybiE0TDdyU2ZLX2Z8SlB4SyR7akJnOlZyJFFSX04+Xj4sI2tSYzo2c0c+NCRaLEtfKTlEcFd8bV4udj07WVJFYV9QNTNhZl4vPndzTGZWQmhjYHtkeSMzb0c4eX51WV5xQmVKUDold1BUP0JrZ2Rm'@; put 'ZWFvZVlVVSo0SDgvXzMmVF5VbWg0VH1YI0Q0fmkuN1ZxbjxibV9COCYycCF9RDJHYGd6b3YjQG5TSE10UiFiT3AiYDNnU2ZwRHR5cm5WSWspb34zU3Y1OzJwb2NjeTFfKEpwNVVUfFYqPSF7Yk9TblFlI3ZveVFuSXZhYlgmPDk9JDw6VFh6cGYqLEQyQlt1S09rSzBdRHs7bl9fRFlCK3VVeHs+'@; put 'aV5pK0xvR1JqO0oxUD47QTp0ZS9XR0lYO0ZBTjFaRlZdWX5bST84QnQ5PlpEVjNUISo4MX4hUkV+eFNBXUImdm8vdjFTZnw5W3Y4PCElLF1hWm9MfmtESHZVVXV6QShDY3F8RyNuPGJZbzlzODw5R1lfRUxYX2laLyo/Y0VIPzlpNF8weWpWY1ZaT3wwNnBJYU9YXlorQTJVTkN9R19lLHpyP0hU'@; put 'PzAqZD9WJkY+L2RqZHY2S3t3fi5McjU2W0NOOE1femp5RDxBUWp0Qj9LdFJwW3o+NGxIdiZAUUNBQDdqWix6fShJQWBSbkRFU3J1R1IhOlh1VGNFIlJwI3g+RilUWTRqQVdCOE1fejJuP0d5YWs2Y0VNQT01YDdmR2F1VnRrXyxUWkxBO3BGcVMxYDxgVUU+PkFSMVV7ZGxxIj4iN1YwWV0pN0cz'@; put 'N0QuQXFPNFQxIX06YTNfaT12aUdmMl5LZFo7TlM/VHEseG9BMChYTCRMW2Q1RlFCL2g4fUNONnlyNFBEKUUkWE4iQklXQj01T0FRUiF9MUJDQ0UpSnRNNFs3N3M0WldYR2lMcC5PdTFwRHoxdDg+RzY8W0RbRjhNXkdPY3l2ST90XzZZb0lmen1HOHVocWI0c01pRHhXZG5lSHx9N2JQXT5KcUM0'@; put 'QTIofGV3VzJVfCs4RlJjT0pddFpMRSI6dWtfbF94SnJYKnk6Q203OmMmOWQwTGtYSnEuL2BVUWlAWjlZfSl3eDQ0T0x1aHhuT2VNLm1bTjVWQXkyQC4iO0RdSV85dDMqLHZLfklLdT1nTWkjZCJDOWBnLFdZfFd+S3EvNmUzcE5hIk5NUnM2M0RadSMuWXMqLCY5S01+JGJwY1U6ZVBkTUM7TEsm'@; put 'bD9Xdn5DPGc7VyNnKmp1IkJBRT5QeTMsezBgRGBzeEkoYWpEYSpfRVdEdDZybzVvQWlEaUJ4OzwqRWtgQWl5XztBLnR3R1U7bGU8YmVfWjcsel1vcWF2aV4lSTVSe2VIQTRwNzdGRHklWiJofXZvXz5DTFl0eX1UP20ycjZHNV51VDUlfjBJWSU0eHlTOSowN2ozPEY7LDgsZVFmPiFgcWhvV1BX'@; put 'OyxMb1AhfCMpZmp4ITQ8JWl4IXY7MVtSVEFhSkdsQE9rPi5vfSFxVWBIIkAhOll5bWFud3t3SD5YR1BNPkZIQkQpP29TN1ZHT0NjI1dLO3Jza1lUaVFPayk6NFhSRntKNHdMPWB0UDgxeE9pVl0zL3QlWmkpd3E4R1UuZylwaVI/NXxQVzRqdTcrQyl8Z3hOZzAxPjZYK1pURF1HXXJ7dHglIUhI'@; put 'andsJH1OPDYlcVZya31XNlVqMVNUVUFaWD1jb2ErQmc4aiguQCVLfldQOSgmT3d8ei52PzVASXdzZClwKDdLM10lZVZIcyRlOCo8e0luVnkjcUdfRz0wdlBhTj5IVWRkV01OPlplfWp2Z0kreE1IS0lGbk05YyN2TEc0VTRjKnQob1Y1Oml8WWR7KklyeUQkd2hFR2FpczkuekV5bzEiQTYzWmVi'@; put 'cWk6dzcjJDtuTHMvVEFLZDdDJWtiXlVQO1pQZlZ4JEQ5KTltVEYmYz5KRSE2X2YjVUlORHc7X0Q5MGI1KkdHe2ZvS01fIzkwNzssVE9ZMDgxd3EueFFvLEVbYH5gVVRuY0B4WCVqUkYrX3l0TmtlcG9HUnA2Tk9SPyxEaH1GWzpML0ZBMjE8WiR4L2M1P0RJJjVnRllUTyQwdUc9N1BZTmVDN2A7'@; put 'dWpAZHdXQkB8NkxjUWlUKz5+ajxiPS86RnQzflFTPkY+UVMsQ1VFNE4vczpBWjtHTDspdXV2UFMhcjFRNExVQHFRNFZ7en1CczpAZHY9Rjc9e2l7ZVkkbilXUmFIV2t+SzQ4MlB+SH1pJmE8fmZaOnM8YDtGdEErIXohI1ZjUyEhO3M8WlBbbkgoOGlGcClJTkwwViRdU3krYCpRI2AoXiVxVi5n'@; put 'KDxAay46VTk/ZnlyYGM3VSR2eiU2cUtUaSx4U2krTVcwNVFqaTx0RWErKW1BeS4yQHdjZ1VDMElUNGMsb3F7fDZaXllyI2pDbTRld3x+fmViRmZ3STZtdyEmLCx1MERNaHZNUG9vfXVELEAmU1lYRXw0Y2lpTXAjSC4sRlBRanJNaXx1JDp3aVQwX1JUbl1xM0h8MDl0PS9zSVtyPjleKHFJYHUk'@; put 'eDZ5YFpyUy5VIT45T1R6REBYRlZXfXkxfnp+UWc9OnVydTJbbnM8X113fHhJYDNjSlgpXWltV21+bX1wRzphRV5qa1AwU2IyTmJiLjNlNC9ObDBTYjJOYjE2aH1rUyE5YExFTEFKJTBqV303dEhaPn03WXssWks4ciJwP0lXYXltNmlCUkRyVSV7Pi9FPSoxWlBWaGNQTHp2RkZQSVdzVSNJX01n'@; put 'aDYlVl5ZOjpwUE1dc0YkeD5IS0A8R2h7Tz5lUyVkaShoOilBNnA+Uz1YVktSdzBxZEZAV3AjPnBkLDZ0K15tOCVUXU1gNSUyPit1fmw5cU9mZ2xwNHkmQ1dCTW5gfkxoSEFBejM3VmcxUXBzZDw2dXF6VmY9RWREYHdxcUE5PUZAYzNFOjdDLGIiKnMzZlVQMEpmYVJFRDg5ZDAmSGt+cmxiOEk+'@; put 'QUF5Omw3QjVEWm9QaXZIdTsvdTVFKytseWgsRDNvRChScnNyc1pKaG5TQmBjKDBTKEoxKkJnNGwhYWZDdjZoJGF2JmImXkRJWHw1WG9MeGNpQDQ+OClKRT5LUXVuc3pFd0ZJL1s4QlsmUCY7V1pqZ04vMV41OVU3SUlFPEt3WT5rRkk8PDckOU4+ZDl4W2FlNkIwXVRvO1MxXnYxUEtEYU5SdkN0'@; put 'bmxjPVJhR1BSUEoxRGc1OS83NGRNQEkxRXY1OGNDWjgpLktQPUM0L3UqMHhJOm1KUit1eFlmP2FaJV0wdVEmd3FMbGY9QF0sdHtVUEo9PXFNTiUjT14mO2NDaVtuZVNxeyNyYHBaUjRnX3cvbzVGMildSykuREZ3cHlhazQlXl11eSkuJGVZJV93dkBqKS5vKzVyOmwlcjovYklBZncpW11wUyFZ'@; put 'NFg5ayJVeCFrLEkjOV1vZVsmamtDbCMvXU4qYmh9SGokL2NHTUI9WHZBO0xWQ3FGIWsrd3Y0SkxYW3B9UX1dU0hFPVhpdDIhZGYudUE0YlNYQ116UDx6NFRsLCtYezIkNDkpSFJ5fEJPI0haX2NScUk1IyxhaTk0U2U2V0VMeVlvPzp3T3NqezhQN1ExW2w1K2ZbU05IMyhOUiRaWHpmaTg6dldW'@; put 'QilsRm5NWl0zRWR1N1YlVWNQJkAjPDlUbFBvezNJcTV6Smxba0JScXxhcC9SPlV7VkFgPiNldmpUOk0uLEYkSXZQeVNDZkxQYzReaDJCIU9hXTRyLixqNnQ9JFZfUGlqJnZ6eFhUNGMkZWtebVY4eUJ9bXFPc3xqYmMrdyNDOE8jeExZMXIpVlEkZEBJWHNPWipSNklBYEE1fFZKNW9pKmRwb1J5'@; put 'PV1aMz1SZm11fG9lM3ErI3pScSxvOnJmdEZnUFdnYGssdUs4RFpfKjxbIy5XPTUhfV10QXReXjx4aTBvKWNbOW4hMFNAbitvKzwoTSpkRjo3QTV3Ty8uJWdlb0tNNTNxbzJHLGx7UF9uUXVxMiRCLitFQkAzXkZ5aiRING9VZV08O19+SnJmaSEwNjhnLmZkK3k5OUhTfnIyIUJNc15wbSpEVDFn'@; put 'cmhGSCsjW3d3PEdIdyY+O00mV0tOW2NsKjcwUngyNGIrVWgqPUVjYFZCLDFCfkA6Tj9hIXVVfitDS091R1ZIJTRpZCk2JkdYK2pNXVcyMDZiTHpVbz4xc1l3Wl1yQnU+Q1VGb0NGRWExe1cyamxMYC5FXWJ3I3t6YUVhV1Z3Oj5he1t4JGAwUzwqeGBlX1Z7OzRPZ1tOOVo9Ii5OMzArSSZpVTh7'@; put 'P2kyb1pgWy9uO0A9MT4/Vng+WSNHeG0kSEo9WCg3fCswb3tnbE57cTAvVHNrU3BVai9CeD8qdWFTd1ssUUMvbENUZz5mc2FKdV1CQH5fSyg9N15PWjRbc0JvfjU5NiNCT05LfXZzYFBZe3U/ViRrT31+VSUiWn1GPkZlNFQ/bHBpT3dbc2tsWTB2e2w8a25Zd3YzOng1XmRDSEFLNjNtSF1+YnJI'@; put 'YzQ2SFU3OS5hfF1ndnI2R2RTITtlT3Z6bHU3KTIpeHI5NXUxM3NFOmV5bCJHZFtAeGdATGhmaD94IiNjLyw8YClKYWheSUxSd0JQO2BjSz9ieExCWF12Pl1qZFo+OUU2TG1NN282dG5ecVV7KnxZc1QlenI1VG15PDhvVW0zdEx1fmdobX5uaktOWUdYcCFheENTd3VkcW08K3VMNnUxaF5lME0y'@; put 'YVREdnxJWm1lX2g0QENWQ2BeVEYvdi9wYklwXy52SXwxeXQkL0lOIy9HfjZiOGlSfitBQlUoU0xdXShLMXpSaWR6PU5UOSkwaTVuUD1STiFEdmZ9KiVSUW84Ziw2cztjd0dKRjhmWUckKyN6VUhhdD4/JDJnfHt4KUheRDdfT01LQkRYQyFFfXpzTi9+SDdYVy85Sk1JUyldSnlqemJpVjA5eT9l'@; put 'NSNqOkFZSD0lI09BYGhkLCVEU34/MylqLGFHRUgsVzxIPVJoKHwzI2pqXk0qPig1fCJsMDZgOEZ6QF86Nk5ib1A0KXRUa3dTPyNXZ2B8QH50ZDRdOS5bMix9QUV0YSh6dit1X1dVZnozUyZbPSY7P11ucCYlPmdvOSY7P11ucCYlfDFnXUwhPVJjJTVtMShvb30lLGNyaEUqJlBdQCI2ZldRTERa'@; put 'ISNSR2JfeWc8RU1JVnIoaiFlRVc+QnVQZjxJUDVZNkJbV2kkJXVxPGVrK0BdTGRzUWFlPi9dazBiVlRDOVJVRXFFQ2lzRyl9X1U+QHxVSU5nWz9vfTNWJTQkT1Y1ZVdFPn1wbywhO3RbQEglRHxpeiRbe3p5Z11danFrY0hWUUxQRmEkLDQwNDJ5IkdudF5OaTxDUUBSSHhiP3xOTSt2MS88b2lb'@; put 'KUBucW9PVERkfCVabXVbfSFDJTskeVIlV3s3UWdWJVJTXXsvSUEmc2ZfbkBQRUkucG9Nb25DT31+VnpKN3YpQEIjRCxOb242bX1sL2Q9X057ckZTPTNEZnZOeEYufWh+UDtPK31rVzlFPSY+d24wK2w5QH1raSZwU2cjYFdlaXduOixEYz1SPVJIaWZPRCQ2Tz1zUVQ0KEhVPEM0THF1ZHt0KVU/'@; put 'bWJrLG9FIU9HeXc7JU1VLHRPZG1ybi4zaz4jO251d3JiY3NFTiVqRVlZcX1AS2tNQmt8KEw3JF4kayxgcF9rNF0sNyE6VmsvezlZY24oIWRRdyQsRURqdUElKUg4XSwmS3xMP2d4Xl8/Jkt8eHxrPiJKejVaN3h8SlRAIXdXdkVbIThKPDB7Yk95S0V3OUtpUnlHMTttNXZCbihqKncvTDcsQCtU'@; put 'bGVzYjR2JHpEeUJtc0NUejpRPE55JXFZOEAuKGJNVUtgJVhLU0Zkb1Q6TEZjUn18PUJwd35KMll4TU08OVEmQjR5M0tpKkNEJjl7TVFEZjtVVilxI0tgKzQ2NVA3JjJJSno8Iz8/QGMhO1VsMGc6JiwyPVV1VjhTQHYmeypgSEJDWFdKdigmVyE9Y1BLSnVILHNUXm1kMyVxdF0kUTteRShVVVBM'@; put 'P2g2aU0ybzhiNXx6RiFndUlZWz15Y2BWLnBtfGxUe2h0e1F9MmYzPkxLJWg1PU9IMHN7VjVtKU14IXJhdWZsUEQ5PjE0T14sLCx2UFtjXTRRNChfLkghKW4mVGpZNF1SMSUifVMpNn1WL0o5Q0RxRTVFMUZpcGg3Zld2S31hWWJbeHphRSUlQHNGaV9ycHYpXkZGaF1DUCEwajhOKjB2LCVrX2Jl'@; put 'amlRcyY1TiIodDdHTiREViwmcjg3Z0RSbX5WYDFyQURTMXdFT0FZY0lZKG9VUnU9YGIoWzE/a0ReWz0/KW1NTV89ITheaHQ/JSllaj02K09AIUlaOHhjL2NrLEJwVnF3THtndiFURm0/Y08oNk8xRXhHRm5ISzk0W1FnViVmJmBQKDZjYT9DNCtfITk4bURRWG1LPzkyOWUveHpLJl1lfih4MGo9'@; put 'TUVdfExLKzJ+PCYwVS9NflA2RGh5TXkvdWVjK3llMG9jLnFsNGlmOT58LFMoPCI1cVZ2MEguVj9yOlAxPS49OlNVVldPbD08Z1hMUkYmJXtNT0t1Z0Q1QGBoUmBtPW5CNngkNStGKjlZLz9wVi9CU3dAKCU8LFpfOHtxXmguYVZrV018cGF0YWNYM0Z7UCIqPmNwb08rY0t8OG0wIj9Be0p1WEIr'@; put 'TG09SjdALjA+en46TklLa3VKR085R3YzZC4pNC9vLGRzJEkxbUUqOklGe1E9IXdbeEZFPEMsSE9PVUtFYUNKTlhwTFtJSDtiMn1EZGBpaDVuTTFqLHFpW0BuaDshXVtEZXc+M2Q5Sj9CckBPYj52X1E/PkRHJkYycHE+ZUl8cjdfKStqeytTbjV5QX5Eb3AmJSN2QG40P3E4SStsM259MEtrLFhy'@; put 'ViFxejhDXUBKPys6Wz5XcXUxKH19YHlKUEUrT2FSJFtmTWtjPFU8RXk3X1NVP0JQXX4sQjYoLjRxTEZlZ1BdJnclUXxFJGFSSkZOZT5gd1djRTZyUWdkb08hamc2JUw9MHF5UkZfOEZxIS54SXldcXpQdWNsUlp+akROZVRrLkZ1eXErZGZXRmsuOz0mbX5AbT8qJFBGcFlkOk5sQl86MSswXVVh'@; put 'cE4vPTxtOFJiVjY0YzI7SDZZMERkTWF2T0g2WTBEZE4sTUdCbFk9Q3dkO343ej1hIXdhLiolRXFhU3IsPHxaOm1bdWYjQj5+PEFQPD13LGpkImxxbTZsRiRbTElSJFcyL1QmWCN1XSUlV1M/eyE6Vyk+LGcxYU4zTF0yLHRabkBhVDw0LFA9OFFUVjZpdHsqeyIxcV46YlcyTjdKRjJFMnsqZCxU'@; put 'YUpKan55NkV0WXpLPlhzTFE3aVtWKDkkO0dHPEFGJTJ3aTtfZGc2VURxTToobDZzQmgsZmhFLCl6YDc1QmZIIWJpMzEjXTxTLGlVWUQvWnAvLHwhOjhGbSVqMGAyTTxoUj1gQGF9eilAK3c+OF9bcHpSUDJ8OXhRbkRrIX51NSlKTFE4fmlESD9OI1htK3lITVU+KlZSfFImRDRCfntRb3ZTVHZW'@; put 'Umt8OGNNNkJSJV1vd3w0XVs4O1JYJWpTKn1NfTh8QiRIbnV1YCZ1OUZLaThXY1VFfHFic1UuO2hHfjpDKmx5RldGKUs8fkdkS0l1JWl5PEksRjtuPnVmZ3ZnSyxgUWVadW9ETFRDIytZRTg1cjNJOmopQmFwYkh3RVhYPixxeEhHX0lfbmh7cmkoYl0oKXE7Y1tZcXRFK3MueX1ARElhWjBXUmcp'@; put 'RjBfV0Rzan4vVnxdVXxTaT1rWDVVVXJwWGEidTRYfHZ0YyY+UFl8S2VFd0NpdlNsbT19TnV6UCYlTHx2WE9gMT1PTCxDaUcpKXFuKU5AVT9gbm9WTkJBUUwraHxOakxocV5YOHJCXm0wfWIrbTRnOW5sfj8peHZ1czxxPD49eCprb109YjdpXiJeImUicDh6djEzRFU9YnlbeD9BUGgkZFRrJlh5'@; put 'cTA5aWAyS3MyU1NIfHVrMUY3VW9xW3VWOU5LZFJaUF9GJSVgX1VfeT9uPHEkc0hgIS5OOV5ZPmN1WnhgKm12bklOQTdeXj1STDBBW2tjLGA8NDdMKFQ4SVBtPG5CdlsvXmtVdlc4MHZUfj87R3E1SiExOVhAaGVsZyltOkcwQC4mP0lacFRqPyFmc0JEdzBuTTRWR2NxVC82R0Y1LHhdczxJd3Zp'@; put 'Ymh6KytpfCMyRFYlMlQuSWNGY1ZhazBTYj56bXRVWUl6UkZ7T2xHXWwxUWA8Jkc4QDFUZClSRD5aUkFwdmtGPyxDTGopYkh2bT9lfExkUWMoJiEpKD5+WzBtS3wzWGspQT9yZ0NFSzZZMHI4Xk1+JnVUXTxYIV9RJCoyKyZwWUl4eVo0JFg3bkRfd0I5YE5qITt0LnZMeFBGaWd7Xnxxc3FmVVJ1'@; put 'VjxYemd5RWpdOmBNaDE9Vis5dEkiRWxNT1gjI3QubUVXT2F+eWI5Mi9zPW9pL15XNXxAbz5UMCVCSkpra21DOipyajNXNElGe2ZbTyp4ZHQpbHdAQmwkYVM0Q1ojJjI7SC9wMGc1LFBrM1VNfEN4XkdhODxpNDg0WS5QVkVSKXFCYHFvfVR+ejt8USFDN19kWWYyfF5NK1ppQUcuRkBddFM3bUxx'@; put 'ZHUyJGpIey5MbDNGN3Ysbm56X1Z3MD9udD5uRVJ4W0VQWzF4d1R2MEolTSRuPzA0KDhXOTFWQmV7JFJvTSVnQ09KaXw2Ik1JfUpnQEp2WGVJUT9DNiRTY2dUQyFUOWYha0JbTCJLKSg+e1kjb1VtQ35hbz0+e3xpbVVtQzNnMCs+Y0MuUmhQSjN2WDY/azFPP2h7aiZCPzZXJX5nZnZXJk5oI0hJ'@; put 'a1pxQ2IhdTUpVWBld1U6VW9DbnsxeTFFVmVEX1FJbFZXUyYuMSUuJHR3fSJsZThZd0lUXU9vTyYhTy9IfSpFInpsTXdJQzp9YFJJPEVVJjhbPGx3dXJWcH5UNzhtWnRdVCtKKHQ4U1Z1JVcjR25kfmRNdDxHQTQ6I0dzcGlfck5mcV9DeU13T0xMRE0iWz9jRUtWZT1sR1MzfVl6QkVJeylvJTJl'@; put 'RWYpLztOKy5LazIqd0lzP0hRaWIsZnt8VnB+REc4SmppL35keHU+JGorO0kqTDFuRTFUVmQ/K0BQcyp1cDpNJks7ISM7ZHg8dT8pcnViOUVMcn53Z0NIfmJ5NVk9WHhkeCJxQk5YdDtvLy5XcmVPRk8mIzhRYzJne3ZrJHpbQmVTOUUwUituPUJ2NFZobDEjUzpuPkF9TWFqSG9QPnI9T01QRWV7'@; put 'dEI4QWVEOEs4Q2VBUGtDTVUoa349aTBdYHJ7SDcuJmNxQzV0ZVRAWDZsal9Me1BtVWVlTXQvZiUhYWNmZWY7MyFAL20hR10pKmB8bWVkZHIhZzwvaU9tXnwkTCw7OExiMkczRmhVZ29nOV0lUGtATX4qTn46N0ROclksTXEsaVUxQE5DZU99UkpiUk84Vk8kUks4fjolJT5neChuX09AOmxFZXA7'@; put 'SXw1YDxnImNOSEQ4aGVZN18jbm5QKDw0Xj1Ha0UxUEMmJXZMRyNpMDw/O0FJb29GXUNeeSw8QzJweSNOK2tEZFtUZ3UrSU4sVlhFdExaSXYyL1tpbGxJezMpNTcocSxyS3g6YURHTV9EKmMoRC5GLiZbOTI3V2QmPip3YmhYWnlUZVsuI05uYHs3cC5EL0RGallCa3Zdd2J+NVMmLHNEWzowdEJu'@; put 'OH4hNTZmLDg6JShsXzZbLEtqKS5dUTV4b0gvLHM1WFgqVS4xdmVpJkNwKV4xcDRqWGl1OVhGZWwpKFBgaU1lclFkLC4iTyEpWSs9fSlPYD4pK3dtSkJlWmtVbltHUkReU1JoeXVlaTBtblFgV2NEZSJValcyfTpZfjIvWiVbM11IZXZzSERaPTY5VktbSHxUfl95LyxwLHVAVmRAaWc0ZEo/YCg4'@; put 'SCErdzc9Ry4pOnM8YWNdeHMja0pnU3gvUHI3XnxPJSliamt0L0tlJmM7NyxZbkd8JUcrLk5sL25QUiJec0MoYjhFcklAS0hWc15+PXx3LnBsdiY9eU85RWBxV09JeG9MUXhFdmV3UUtqUWJYSVdgTFVLUlohNHVYQnE9dzg8SlpOR09bX0BVOk5pP2xCUGRgSWV+SS5kP05KW2Y0ZlR1SDhxQDQ1'@; put 'Vl5hZ3NaLDU4Wz9gfEhPUDsmbDQ4I2h2KmplMmRzKy95bStmLmcld2k0bmZ+VSVJNzZoXkVXZ3NoM1U1OVUxTG06Pl9qUWtvWE8xcVluOC4vKkVjLz4sXmliSjxsMjRHZTAhfmo1X09vR1JxMmdtMWZKO19ARDtnMXUwTFI1NHlKKTNfMj9qSjpJJiwkU1ElaHQrMUNVKDsqbFVVc0k/fF1CJDlP'@; put 'eVlVYz5tV0R3KTByMkRAdEF1JTBbOlJ+UGhpU0w2Q2ByfXlVdCk1TCFAcy9iUDpYW0s2dlZ5Wy86UiMqZiZ4dTcjJXw8VFJRMEkrZ3BCZiZtVm1DQjhCO2VmfC8zVFgpPj5wKXhPKXhCPldfa1JGakBSNGh3WHQzVn1zS0VgJjxaeyxpa2VfVkA7KDlXUFc2LmFgVnBGP1NESUIsb2E3LCoqaXUm'@; put 'XzlhTlZQY3BCI0JbSjgxS3Z0b2NUbFdMb094JmdqJSo4JFF3YX1fLywoTUV2PHc9JilvW1F3KXR5NkNweFZZeTlCIWFPLnBaaTp7YnlCVjAoaXdlKlNTVDhuLGpTQzY0ezdbSHE5NCo4JFEwPm9LbEEkMmZNJXxZMVtLR1JOJmZidU1iXypnNipydEFVdjF5cixSIypUSFtJOXlRdihdU15TY0hX'@; put 'eHltZX46aUxHRWd5OVg3VjtaTVpbOGw7OVp1ezdMO0AhYVdPQTxKZV0oR3NeKn5bU1JSXmRoeHIkMWskRSYyXmVaXnFHWUg9Y0xlfURWITA6OGVAJnpfWUolajIubV9mcEQsPmApakcyXzdCbWVycj5FJnZqMGFSYSleX2s+WzJhSXdQRDV6RGZFUkgrLDBERitWWHBvU1IoTEshRX1QS3FOfWc5'@; put 'dzN0XUBpaVVVOWowKl0xQn5mNjJmImNURzViezNNbDM0QWpYQWRXTTgxPCIxQWJ7amZ+VVFbQE1zb2tmPl5WbTUzWkEzP1ZvNUx4TXg0V3YidigvWHYiQUEmMmY1dnJlWHAjeWpEJDhLPCFlPXlPJTY9cigvO1YheE1xUWM0VmReOiRATWVLSDFYdEJ0LylrTUR1d3U3fnlrbFUxSWguZnspWmA6'@; put 'dCVqSHImVGxiWE5xYSg3I2xCMGtKIXlrSi5vbzRfRlFoN01aeGRRbG8zV2d2SzEwdTB+RSwpUzJOX3RwLD4jQ29hSTEsZH1RS0syUF9JZmozP2RaIjh7ey5ZVjooJDl1QlRrLERUOkdPSV5VZHpwQCVNTGJSKyEvfkJafnwlXig/bjxgUmpxSUsmdkZ1Pi4/R0huYGZRdFpMV0xpJCIrdU9NI2g9'@; put 'UjpKZFdCbj0hZURkU3p9aWgrdSZ5JilhSV4/b3AvS2tSJExNMS9zLypoaGlKXXhdTzhFfFI5JlgqeGNgfTBJOjAqODBhKTw8KDFdM11QfFRuI2pvPnJ9W0h+LEQhW2hIM1UoPzJaKHRCe2hdX1NbMFZPa1BbZWV5a0c9XSVFI3hFSXhfeC5fW0hyU197OzFPY1d0QCZZeEh4T24hJW5hPVMkfCRR'@; put 'QylXVVthJXRHMSYvSTUvWjRlayN0PEUhYEhFbGAxRmNBYmlFcUZ6YEpraC4lUCE3TmlLIV1PU0xWTnkvQSNuM0laLkxCXmVNS0taUyt0aC5ERD94KHB3P0ojTFNkOTVqdUJXdiJMITw1WV8jR0l0fD9dSjt7JVRUYlhPWSZdZW89KFlKN09HejA6IylUbl0yZk0qek0wciIrSSlwJFB1bmozUGVB'@; put 'UCE7KEMlXlNTODFwP2dtbTd+SWBMXX5WLC5DMX1eU2ElIjx2dHZMaXFgWHJzNTleMUwzcUc+ZjwwMSpaMyp4YUU9U3ZKTlQpMXE8L1EiVmNIPm0xe3lidCVqSnNxb0gvKn5pZCFQMnNxLEt0VE5YMWV4IXpMYjJsXkQ4UDhlb1JfTn5eISxlJFBGUk0lJmQhRHJiIj8zdDE6MjlAejBTVSloaixp'@; put 'c0pLMGI1V2pFYF0mZlY9bFhJL3pVU15AYnIpPEwqQj4iOGpseFpnaVdURkd2OlZfU01MM1BYYV9JeSZpVnVYOWFDQjRrSmo1PCpgcyI6fWd8VnkqcERdPCMpfGRwT2Y8WFY+NT4jZCxbPFZwRWF4a2VKTXA8TWtfW04zNjlYeWdaLmFGTVFWdyoyaF9CIyl8QEVEVkV8dmNkT157c3Z4Z2A0L0px'@; put 'KXs3aWhMcmdqQnExLk4sOlc5VSVuTlROSyFod05qbXBwRjBjLHVhQjhqNHZIaGUyRzJFOHpwO3xHdWRXM11jdWMzWikzY2VbYmQ8N2IoUnNiJUROUXNWTHIjW1Yzb0hlbDFlMmNkPHFUYSldbi54MSpiSkxOZmlTV0dzODtQeiQmakM/RVI6RDkhUUwzL3IoS0w7UnNAIWN3Izs+dV1SQlFaVzl4'@; put 'aztuI3JKVW1eNzxkYDFHNDZ2PVE9cVIje2lWTi4jU2xmKT4rZTp9ISQxOEZ1PlgmdV8+KSQ+dEwlUGtiSHFvLCVqUFMzXWc7fG16M2JpelNPJmRFWHVtflI+T15HK1dzYlNbezI5LCRpfEc/N1pHeTosXUArLlVxV0l2N1BSSX5BOCw7JCNBTWElejlJQl9ddiE3fltjUkNfZzteRWpnKlFzQyIi'@; put 'ZmNDYV1QX0xINmRramk1MiNqZF9WR2MhUC5kMjAoQEdsPnhsKl86Vkh6Ll13L0RIPXh3MTd2UGUpbCxfOTU1NFpDR1M8PmYkaUM7Pyg0XXZsLnokI05sdnVCTVhNMGNhM1FhOUB0P2w8NXRwZDMiaVZwVHF1RUZoWjk3TVk8W0VQKitIO1IheSxdN346I0AlfF8/JmNUYWZDdm5CdF52QCo5d0s1'@; put 'KG9IZ0tqR3BaNVA+PDRlSnkvYCphZjlUeSowPWE8MDQxP3ZlXkdDRXZwIk5UVC8rTVQmZ193Kix8cW41ZWpOTV9LaDAoRi5GY09pUTdWS3BqbD0uXjZDfSEzI3hddn46SF9bdzdGOStMcH0rNTN0LERAan4vO09hRyFMNio1Pm9GSmt1bmN0PlhMKD1pLktUfXJSP1hOSWl6SiU0aDViWUdjOXE8'@; put 'NnZxO051cXVVRkpLI288NHcoblZ0RWMjcTtOd3E8NipfXyRebzk4VSo+LFBwP1tDYGZjMi93WVpdR0s4T2s5QSU0UShPazl3c0F9WDomLy9pVGFdKnBVbnM0K20wdCxIYTx2YWpbTSNyZnZhPTpHM1shKSR3YDsuNHldeyN4NXFKO25UJlRZTEcsOGlZOlJlMmYhVUh6fkojemBud29kfEJ0ZS9Y'@; put 'cW5eO3whLitQL2IvWktXXSxCSz4zaG5nMDZhRmQoIik0VkRmVnR+Rkh6V2kvWjR+dVFPXjRAMmMmIy8qdFpHcFR7aXojZDdiUSVXVz4qLlJ4KUlyVV0oTSE/Q01Bc3tvfXpRSV1kMlo6R2hYelZFRDdkNjlKNHZCSSxpc1JXLCZyWT9ma3ZkZ10wcmReZTtKWWxlNk8wNzFUJXZYYTZTWSlsSDU7'@; put 'QFdiYG9BJVg3IXg7SlJLKnd3MEREODpKXmNyP2ZiSmEwZmxKQllhXj9LNmhgKTNkLHs/UGdxXzo4Zi9FY0NsIS9nYE1ZcSxmJDxfelpnen5FOCltMCxbJi8lY3pVOkJ9RTMzfFt1JldRelZoMHQsam8kT1NKJEZ7NytONjUoQFUpKjNuLCg5LDNRYXN2Zl1YSFJJL2I5QHw2djI3RmQ3RWRoIWMz'@; put 'Xj9dMVE2Xj98bkM3ISFjM2VvUSFfOG5QaSx7O0psU05maUhkeD5GNSsjRnZfOEBVT3dROnhHNzZmSjpoPXcrPG1kJldYNTdbRXdDTUFBdigvTkMid0RlTGdjaSEwKVArOz4wRipCakhebDxOUFlESygrQExLdXtDMldBQUFBQUFBQUN0NUZlVmdpYVd8dzI/PENOYF9RI3ZmOj1JKF9LW1p9cU8m'@; put 'JjJ7UFM+aTxGdVNzVXxlM11rd1BnX2JubytTaTwySH5NNyEvZzFLbyNbV2t0M2F6TXErM359cDJOXXNHQERwKC98YT1lJEN0eillKG1CMmVUcGB6TVVPbklHd29LeHNaYX1aMXE8dypXQWEyc2FGN1dAKFFyKF8iZis6NWModyNvW1NKMHNraz1eVkR0JDEzZE1kVHxTUmZ9TlRRSH5wKGpibF9F'@; put 'aUwlRzBJeGl5I1VnNlU/UjtxS1UoQEIzIkNGTkR8YGA1eCtGd0ZabypWcHlqVkhtWXp3dXZgaCttR2B1YjAoPF0+Migkdi4rYUwoQ25IYz1DZVNlJXx9OSMrT3IyPSRzPVFIOmI0bzAmPkslQkxoTClrISJ1enM/SVBffEBjJSs7dVd1aXQ1VU5kWkokO19DMjxDI2VnTURkQmwrVmpjZ1dxXVhH'@; put 'JEU0TG4lQEwyYGIzXiJWYCY3M3A9Kng4ezJAVSw5X3E6Y0p1UUZzI0o1UE9rc0xYSiFwSn0rP0RnbUtvJlYzOS9xVWZCUylaPDdaUHFRRXkhKj1JJE1oTkglWn1zVmNVJmg2JSVMPUNXXiolPUhVKnlRPl1NVyx8WkV5az1qY0tDWX4kMHZXblVEVSlIIUh7LklbXjNuKUN8JiVgeDZXYi9PL3U/'@; put 'OjJiJT8rNTdzem0uISxbVWhNNGZTazZETy9fV0dCZWpnfUVwWT9YcH5eeyYhezI6U3pyNyRAWTBGNi9kdEt+YEQqbndhK1ZEKn1HZWRaJTVhJCZbTVQ8VnhQImFjamRpXkxLSnd1RjJ4TERdOW1XQ3Uqd0VYUypAMj11YEAxV0Q8P0wuIyhhbjJoNXZbQTJhPTxDRUZqW0JNTHEuQD5YfmBvJSww'@; put 'aHlbNE9bRTU+bC5oWERFY2s1VTFdXU5iI3JwKz5yW1A5OCsqQjR6dW5VNjE4dmtVJU9YUDlAZHkxeCxZWHFbZmEvLkFBJSNlayQ2biNAaFpOITpHXlc0MG1ja0hVOVorW3BwckJUMklAJitVLiNbOXJkTV0kVCw+MHBeJk1AMTt4KT5qfFpOWHUkblFgJiI6YC53fCZIaH5GNkMweXI7QDtqNXhL'@; put 'emBlSlk1SG1lbCY2QiNmaz1uTkVaRCZsaTMjc0tKRVEuN1QhNlFpZ3t1O0JjIU5vfmtlQSYlbThEeyNyXnx6LDY0fipnYDUqYUMiRl1sQDBpc2BTVzxkZGo8dFRJTHEmYEF5cTx4QV4re09YTHhzbltMQF82WFo3NWghU35RdW1SYDlzdGFwMkNfTEZCTUZze1k1Oy8hQURWckEianVgYS4pSSQp'@; put 'KT9yZShQQWtISCh7IUJYUjJrRkw0YihMPjQrPnhtSlc4VWZwZTFselgscXVnR11iJjRVKzNbJUlGW1RFbER1UyVvSDt8encxNlAhSylBUzB5P0pwdX13RS5CWDZYTSo9cE90JkVebjs0Xy82WiY/TDZgV0pIOUpbQzFddCQ1LE1dY0NyUiRHdWdOWl1VIWBKIT1nP15GdmFmUF00RHpaJFNzdFpR'@; put 'JFlBTT13LDZ1TlFLXk83UCNDbHNsNDU9LmtjRUloW0I0QTthfkxdekklO3BxQWxINENYPHxXcFU0Xnl3SCZ5S1koeSgybF83RCxpRHZwRygzdiI2c351LEdsR0NsSyZebjhpVF1GTyNOWXNxY2FWPVVRWz1WWXxrSEJ1QC91VlREbm1sK3pCQl1uUlkzOH14SXd7Nyt4KCViTl08M1tGckdlK08u'@; put 'fjgpaSZnaHwqLjZxU2tPfGZnJkY9RGp4SVM9ZDh9XmdHUnNxO2k9PiFIWDVrX1FRUG5DaDtzXjtRXjlGX0lLITA3M3w1RDFgeVpteVdbd2RkXzE2TGYle2ciU2sqclF6ZVQjNT9eRHJfc3VfOXlPIilsVWgiVix5YEhkNi9iPig2d192OSFnalM3SCRGUVNRZSZ7JltoTVArQ35KOiUqdFtFY014'@; put 'RUZeaUBna3o7WzMuYlgjOS9Jai9fTy5LQlFNYiJfOkA1YVVfLnQ5PU0/dVdxcGJ9aGZvVSpZWjFmTz4hQjo7VGJUU1s4UU0rL0BOYiZlNTZEYlldSjNDeDk9bTw0MDQ8X0BddC9ZPWNsNW1XL1hrLzQ0aytwKXNsXlE+b1tNKnFLPS9Mb1JUSSI+Oyg7LD1tOmZAUXprLk9MIXpYN2J8cV8oL1RV'@; put 'eUlKe0YqSzArQDpXKlo3XmVaOGhnNnp9S14vcnRScC80NDEmUCoufWYzU30kUkc3Q2owdDUmP0k9dmlGNkEpbTBuVXlgUSx8PEFlS1VvdHJuXnEwcnBTLzxWa0lJczlYOHsrQj4kKDdyV0ZyPHhzVGxPQjhbXm9zNjB9MXVvJTlgOyRPOl59OzNbNWdXNHE9MG0kP19Ed01XJFZBLzYyPldldUpp'@; put 'O2d6R3FtczVZTDxNaToid3MyWSp9bCQkQksoRGJ7fiE1blVLWkU5cF0rS3Arc25HfjxBZiw2eWlWP3MwImA8WnEqV2dlKFg8aGNJWTAhV3NkKWRiQHdYYUxvKUxeZjtqaWVyTE0wPD8jWGNzZz57XVB7MGNeKytBbCl6OkpoUUgkMnhJZGg3VVkvbTs5R1d0bW0qMHZuLlhedkdveklyRF14aiRE'@; put 'dmhZYlo1THpJKlZ6ezdYbGZOMUBOfik8PyxxaCU2fHNsbVU3bjtkNiVTOHV9TiUlenBGY25hZT87akR+anU9K05ee3V6RWhzXjNLREhMZS88Q2lGSVRiVDlTSiUzaCV3PUhNPH1DTGQ0XSFNOEtdNSUyWEQoPGwuW2gpNG9NSFE/OVNeeGpWeX57VGphYCl6TmVLL2dDIXVscVVYbjJYT002d0dE'@; put 'Kj1meSRJZzBHIyJ2MTFhOkVORF1qUnE4QE5wV3FCRS4/N3xwSTRsfDlWPjw1W2FVUVdJIXJ8eFpwfEYuUUw3JWd1cyEmXUsvcClTMXBMIUl5PTl9XXlJUm9pJlJlT356MWN4QF1EWl4jamwzL2JiYj9sWHlufnQwTnZHcXdxbiJIR1tjQVRDNixNT19qLHFPWnY8dUIhZXhoJW8hNWVfXUpPKlRY'@; put 'QjBZdih0WCh0InFLTk18em80fjo/NC5YNkdUc3tHZUB1V1dUY3J1JXdBX2x6S2YsLld5KFdAUVZkQih8UyNxPDdnV0xtdVheU0g7RzJmPFh0fnN4W3IoL1FPV2pkZm9HeXB0a0omLjd0YXpDLyl5ZHdERT9JJTM4IVs7VTlhJWkzbjV1WlZzcHZPakwqUHc+WTYhNC4yZ2hhbC5jKHNeQjluPGtb'@; put 'Mz1od3gqVU4haF5ZYTd8dVtyXTgwIUQuIzUmKitUTiRubilWLEl9dy9OY1k+TSM0ey9fV2JPMDU8bnB7P3Y3RCt2SU13W0d6LGM/KXBYVnFjRFdEZ15ISEI1bUZLWE46TmFjOlRHKmg6P0BVQkhDWGx1WUN3ODswTExUNjMhNC9MQmY8ejJmflg0TCo7SiFrOCohazRbenlmNXdjMj5+PHN1e21T'@; put 'cEd+OzFlejRmWzAvUzA+OVs7ZGIhRz5PdU4kZmxtd0dHcXF6fU1EcERFRXYsfE8oUkY4MHQ/fjpgNy9rK0tdU1dvOS8qXXo2JW5KIkl3cnMyMGVUXnchWmlaaFFtUmhKSTVpZDYuODB0JSE/a2N1IkM4cHddbzR+ISU0K05RPTZKaWZtNCtiNSlbdl5FZF4lbXA6X01dTSsuTz05SE15b3o0K19v'@; put 'aiR4SF9WP3pueD9MSy9YXkhrKDMsPD9vJjhVdC5qJjhmcUx7Tm1NPU8mcTgmc0E2VmY0JTBwfXtPPUNjMTozQEg6aWBuaShPKkNETn0kKXVDSHRwRFZ1JGArYChqUEpWOUkqM0RifWp+X1FmKzJmYkJsfTpQZnlqMyFZelk2ZUpNfVo5bG9tQU0+R3duP1ghfCYvd2FqSzUxdXEuSmVNW35ZIkh5'@; put 'b2BOezRuMTd+QyoyYDxEMyRSQlBfN2YvMUdVaC5WQ3dJNVBoLlhqWnF2K19ZX28/YGdYcG9AQ2FxQEomeixMWTheUyFKMT9oSDI5Q1t6TnZSPUAoJU10NTBWPFZyKjJGIXhidGE4ZVU+eDJGezt9JkRXcEZ1OFk1TF8sVkpASFI/JlJxc0A0cHszOFdJcjlERVQpdj45NCxmeHpFSWMoK2crO3lf'@; put 'Qm0+X0ZlSFZfaEtJTT5IcklDOEVmOzNtd0wjbmlrJF5Ydz9Sc359fFtUcS8zcGtfdjBnVmE+VHAydDhORFBtTDNDNnVvezV1OSJeW2M1YFY4L0FtO0N7PGFJQmx0MnZzdXBidm5ffkJifTtoLDFLYXE9dmZnZkZLfihFV2c1MUBPZ0R6eVtAe3IqcGVbRF9WaigiIlAlc2R3WkxFYUUpemZwTVJY'@; put 'TyU8IWJEUztufGRCeVFzczZvZmQrKThGOyJ4LCYwRTFvakBzMUxkeUF5S1FrPCw4YSQ9V1FrPlp9TS4vR1NOLEksamc6K20+enpONEFqeFJoL3U5aG9jcDg6aixsRmZFNHRlTTtBZ3xaS1F1Xlt4Wn5aPStHcSpTMStxQiwraDU4QytUNHxiM2hSOmt2QFFScUMzLjNZYVRLbGV7Lm5tdzJqPVFV'@; put 'SjI4aFYkQkB9cXsoQGtxYFguP3suX2g+e11zTD41LFcxPHpUYG48fDFsYDhpUCkpMGJbWlFaXyN4Z2d5KEtZMiExcDNAOCNeYnM8NGx0QiJhUikiOGZLa182XSZmMVgoTHxhKHQ4e3wiJVhUOWhxLzMlYFpSc1lbTVJVT3NSKGBrYXtFO0RkfDtzMXFEeEY4OmhfKU1kWj9TUl4jdGtfRGpMLFAz'@; put 'ZUg5LnNYOmBJZ0QiXj9FLFArYVpsfkRodFdJZnFLdzBCXmxmU3h0MV19VzY6eUZ3Jj90RzBHQUsoT0hQXSNaPiZlSClkPj5BeDgoWCR6PE5Nbz97SnloaV0uOzQ/PVJ3aSgzdUp2Zk5KPzAhcnp1L3VvdGY8YTdOIlNCWHJkWCIsQjJgZXNyYDtPfXMvIjhuVW5yXzwkO110bWxmekl0bzMifEBd'@; put 'Zlt2QH1zZl9GMkQlZGpxWWQ4XXdqeEV4MzdfT3s0SDBoYEI6QF9wdFo+UUp4SjNSLCRQSUB6dntKNXNFXW9WTlswS0pAKGFmTmk1XVtscUBnd3NDKFgvQmk2VS9WUGZPSW9HV1Z1NWw8fCxsd1RAdH5WNGBpUl4+JXxHKVYmfFo+KHlJOUxWUFEwU3t7azojckxmdixKU3k6V25IITlBdWlkZ0Nw'@; put 'dysvLm5kQUI8UDB2JD48QWooMncxTDcxTFlgbkprUT0qcE4pcUAkWXNHVF9FbksvdldZcSosLDV4TVRXbEI4QzM5XkdaPWhWdyVbLDMmO1taUkIzKTZDQDoqTGA4eVViYXlEQ106RilhOnl1aFN7XmJCMzdjRkRaaUReaGBJd3JhfEVJKUExT1g+Q0R+Vj1DJHVVNmpeIi5LbkIobHoyfCJrME1j'@; put 'T3h2OWNYOCRVPTZ+b1pDelRwb3JNLi52WmghK0FTS0dTbW1ldGJDMCZXfUd7SHdpOUwvc0NMW3B7Y1B6XlFgSm0/aj4hXXFZUDRlOnRNRyt9LnArTD1+L0xtYSs6ZSM2eUppU0dnUlQsMElAXncvTE0lPU8sWyQuakZuYVYyeipkdTgyUjB7dV5neFpBcD1fWHkmPShuUC9oPXJvdmNyL2xDMWxP'@; put 'U3gpUVkxOkw7IWBoOixhcTd7ZS5xVj5HYX5IMHRGXmw9bWgzVVhiYyF8XUc3ZjZTNGhZezV8eCQzSUVFcjAqcG5Yakc7IT9GK3tgJUtOWmg0JVZiOyJ7Iyt9SC5CanxYfnd9X2V7R0t3KHo5XzY5eEMyMXdDWXl5RSpkPW9qPXNpMlNZQykhJmF7XTxOTSJuRj95PnRKbzpYTT9pTVQxYn0sbVMz'@; put 'UGkmPnBOM3JpMHFtUktlU299dmdeR1sxPGUycnVyZWAjJi9BODckXV9aRiVCJFBQd3FfMXNTJG46JU1vJWJDMCFAKmdjfn5aazQ9PEpkW3lUeGBXZlpfNnE8fSl7NkpLQnFPLi4+ZiteXmhiazNCRnYheypmcWVOMk5lW31NbSFsRHRZIzlwdzMxZyxmU21dcl5ZJSxCYkVmJWlaVVZ0YGc6LHBt'@; put 'XTdOSi4zNHBdJFNOcHI/VTcvRkYjJiYsP11AaWN3UyJCJVQjPH5Le19ibGBkV0Y4TWdIbn1QKWtjRGA9PT5fXkQ4VyxTJjIyfHt2Xzh7ciJWYEwhWlp4eVpfL0M/LDg8NXg/OVU4am9VcD59U0p2ZmYoLytNL0osQD4xXnlqRHcpKVlQZEQhPldbM244Xz4pZDFNPmdiP1dtVmhwQFBlMjw8OjRU'@; put 'Ump8L309e05ac3U0Z05zV1dEZG1sa1dEckhmJlYoK0dvRCg0TUkzXSZSKFRBI1ZAOHpgWlBxMTA8UXFjSmt7RTx1WS4xTilqNTtmLCRBYiRnNV8kRStudS9WKltBJWRsYTksKERHL3J6JTxZLzFTNzUjPEZuS2I1bjtGYk1LfD4vaWwqME9BTTpASykwRHA+M2tEP1FtXn47Rzt1YDldWzdCIm9V'@; put 'SzZWUUUpQ2hKSShvcCNYeytzP2w2OGZzXW8+dz5FVCpRZF5XbXdCcFE/dW5Lfnl0RX1JKjRbZVAhIjA1OE51ZjVyWSFjbltxI2dWfHQjbF8rTzgjPzAxInohZmB4Mj4vLkFRR1I0V25oakJjTn0oVGszMkw6WCxdNl51P1t+MFRxfTRPSSYuLjcoUCkiaVF2SnhHX31dSkprYWBQOFZ4SUJMLi5H'@; put 'Tm9dJGI8TlRzSlVOJVV1Ti5OX1VbZmRuWE49R0d9WFJLLGdwbS8mNDRxTWo2dmRqRG8mUlh4K3x3NmhUcnclPF43U2A1QjRCUFlqdHxxISVlOFNyeFg3Tz4ld2ZmMEVwPC9rV0t4Rm8wRUYwO2MzJlVbXUVqZXlUUVQ0fHQ4LigzXmFWVWU3SXwuTFBlITFhZlY5JTxxU1JMeFN4dlR5aH5CUWQi'@; put 'K0c3SXApP0l4JDZ1ITRtX14jPyZLcXI+VHJNenYrS3k7bFFeNFQiSXRCOXQmSGJ3ZWoqUzRyNiU/K14jenspImQ9PmxKNWwpZjU1Tk46R3hLTi9OLExsdjBbPVg5QUh1REhpTipsNFZbM3RdZ1E/czNtSlMqdncoQzQwRGJHWmxUVz1ydmRra344L31mVzZEP0tgIj0jT3A0ZnxrMTBZWWFOJDMx'@; put 'IkVzVGtYOUBBN3ZjV0V2LiJeQ2tXLndXNXltSl9oZlpvaWNNMiVpL29HO291V1Mqb0VsNT81QXU5MXdaRDVPanBfLykpY2wxcElNcUhnP2tkZTBkVl9daEFMVlhZWis5PS5ORXhFMHp0ZHl8eSYldCxlQGw+bVtKK1FpZW5kOEg1Rll6WlFYaTddb1tYVXE3bzdTMGMxWGd2JTgsRSN0Yl8pU0Vw'@; put 'aE9MREVIO3ZuSnY7aER0aT1EMWNWLkleaFdgXzMqKnltSDtWUWw6Zk1oeDExcHo+VCFObkRDVFFJUy9XeHVPS3AzWnVSUGw0NSRDb1p+L2BANks5MGBMeEsvdyNMMClmbmlEWyV7T1hkQm1jOnFQNHJPVit2I2JSb15kdGA4RUJdYzVNTHdeaDpjLDkwQXVCYCM/T15UYVosRlpnSF08ZUsuI08o'@; put 'MUpnfSFFbnJ1Z24qanNlIlJQXX5PWTMyI0pZVWguW09KVXhMfjlKbUMyZHtFclAsQDQ5RT4xOWlIMiZDYmpZRlJHNS9uYlFTVHU9Tk5wcXlNOHJHVTpxY0YhfHxPXyFAdWguIUBTaUNuNXtsfkl7JCFIO2BhSz4hNkVGcylIWDFZZmMmM0dBcnpDfXl6Ol10OjI1ayVObXJxK1JhczYzOU9NeSM4'@; put 'dUR6XStZMVsrSFUsanRfRX48fiQuSEJRZzhbTCN0aHkrNzsmJFZpLy5ObGpwNjM8WHV0Rnp5cT9wRCN+bUpxSzp3PSV3cWlRfSMleHh0QTd6aTpJLml7S1VTcElvYDBAZnMoKDkqVzMwP2JjendfQmomIzM3SDlmJjpGN3dGOyxael98Y10jck1BWjpOYD0vOTpyWURLOmRSSWFMYTczbyRQbnw9'@; put 'QGAhWzNoK3lkOmhyWkwqVCM2O0YzOHVgVD5hOCMoTj4leXcsKDF4MSxHNGopPH0vXmNKKGNNciNXK1hIfDR1cn1BVH1IKHRPSH5wZGBCfWRne0ZXY0Q4L21UZlliMUB7R3BZZEU5JSh1cFhIblpkUUokbmhyK2ZTPExBfCNtOkxtUVd+LE1mWlohMUFEfEJ3eDx5YFFKZn5FRE5MamZMPHt1eykl'@; put 'K2dQLDE4YUVfSzwzSylKKU4rLiM1UTYvZWJYVmRCM3RqazImQkI7OnNFP1p5Wzl1PmtjZ0koLCZpXzUzakcxSGJUOyFlQ3QpXkRkc1k8LDpUSHZAP2UmVzpZVkx2UElBM1EmKXBlaVAmOHZnYEhOVHxFYU1GMGtiLFNxODkuSmlsPVpKa2s4LER2L2Z4REZTQmxRSS99bWxvKFF0Snp0S1UhfVgq'@; put 'Qjh3KnVlVDFtbkExMWFKW2U+Sl9oK1c6RCQicmdOaGMyOVFYcVNNYDUhP3sweWdrS01FZEk8WjkhTCRXRDlRcFI5Ziwjd3FXfF8vXmpEXVRpdWR0KXEucUlTSV1ENTQzYkx+bEFpTmhRMnJgTFBzVUlMQ2N4M3RxTV41WkNfLl8iN1N3YGtkJnhrTUl+NExDIVRKJCZEIm9QcURXZDRBWzBUQEE+'@; put 'QlNTbT44PmRbRWcicCEkNmV0QlRYSjVpcD5uSHlmfHJSO3ZzXW0sVUVoZ1t9LHwrU1I8MCN+QDBPQHNwTjFOM0w2d3lSXkBNVXRsRmBraCFIOyRDcDojLjk4MT9DUEhDKlhFQk5EZTcwOCk7RHZuRyMyX3k2O3VPTiFjQFkyQ3hVOHIwWzBTXnk/ZDs0K3JYQFNlOTQoRkpbIlRJUyxSVUtlTCxR'@; put 'PEZnQH1qUWlmYkRLZmZ6RHpNc3plY0FoKmlCTWdhJUJkQnhdbEB9Q280ai57eX1ZNE99ZlQ8L2MlMl8razlpI19TfE9II0AzfFtyT0g/SXkqXzlUUk8wQ0pMUWVkZmlCfT5BOnkoV3JhYV9dP3QvZGdnbUtJMjl3PVl7dSo1NDlNZ2pNcFhRcnB4MERAOUxbOUBlbSlWWXZfeVJhfENrNGIjfF5Y'@; put 'VHVjTSJxfilNXU8mcFheRDVOdFBpW15jJCNvSkxedyJDYHVpcmAkZkN5V2ZeTEQ6SlQjPDpjejBCeTxUajpxK0YkOkZxJFRjYXZTWWxxRCp0b0twOHNaR2kjUGFmWHhUSXw6QlI8TVJLfFhockM3ISFvKH0qU0tiayoyQGBWSTBXeF9+V2lCNyFLbTNsZ35gbjhRMHhJcHU7L2BRcmxDUUN4M15R'@; put 'KmFOMz1gX1pLYX01SjkkNHc8ImBHMWFyQU8zS15RejBWNjhafkpOUlVePCtlPm5vVCZFYDp0eUNBcz5LVnpBaThCXW9hXlNEVklmJmBUU0kqZE5fa2NHIWAzUT9SQjNleSh+VCpkdmZhMGZ4VzRzYlU0LFtqQDVMLDYzdjApM1oiRFMlQUNmUCN4JGRZfWl1InUmSkckU2l+Jl5wQSNdVV15IWdT'@; put 'RVd3MSM4Tl1oQkBxbS5KajQhKnYvZXBgO0YwIiZYY21NQ2s+ZjtDa1RwLH5JR3l9fFRsKGBVVHp5bXRgSnclZn5zPHhgRitrLlV4MWJmIToxW0ZfYi8oUiwhKzw9IVJ1e11uLnxHWlcvLigpUCtVdS9LREZlXUd8SEFrSVAqdkVoeFdta3Nndm5wXU1PSyMkX18lIUc9KTI+SU0pUklnNi4yfHVn'@; put 'RkVdJUhjInA4cV5+QHZZbyZHXzAoNnRZels9JXQzZDBSTCtfZEFUIVBrb3Y5bWFyUz1CcixxZkhAWSJvVyo5Kn5seDpYZyl5eGpCSk4/fG97MzNNTXxaXV1PSFlhZWg0VXtWKGQmRzYxSEtsRHQsRj5+U0Y2Y191IXdKZW93ZEZnIiJoRyxueV9dZDZyW3cpP2YlPFlYaVF9UDcldnZRJUc9TXMk'@; put 'THwzJXVYO19PO2xDISRAQDk9RThlaUdrOXQsQzpsOUQwYnw2IjVlUml7U0xEW2NJanIzeE4oaHM7QF4vYWspe3pOX1NNPlt9WGp3TUZHK3NedE15XUdpWlE7VHxaMnsrc31lK19xe2VpdUN3UWF2eX1bP31naUEqP0osUldUayhMMUMsJD4qdFJnTiRSVTlyOCNZPSs8MFMqPX4qNnQ1dC9VWmhD'@; put 'Qno6YHklW30iSTxnRjF9eiUjOjM2bG9NYC9faUJvMnZXWkojVTMjN2FdRkkpYipGJS5FbU84aU5UT2cxLmhjMUBdV3ZoW1pKSGQkSUduKzs0LyIvc2Z+SUs7bV02L14sSV1Ba2EzZmY2XXkvfl0zcllAW09RVUpIYmFqblM3Y2NHO3l9VDwmJjkzOXdARWwzaWVzeElfP0N3K0hFVDheI1NLV2A3'@; put 'KnJ1emoidnAsY1ZKJlI6Q3xeZyRHMExIViw2SnAkdEROUW1lPldHME4xLD4wRCEycUswSD16WUAicygyWWZCYiIjcFZFbGIzcVFDby9nJVp9Z210a3cucGV9WHVZdFkuTyE2fTdgXi5rWDg1Tl1kek9qN1g4Z0VURiI9UElFalZUKG82eXZDKjwucFc/RUJ5U3lxdEshZ31aUFo2L0UhTkRyRjk0'@; put 'NV91Pzt8W3hmN3hKKVs4NlBqb28/QjlfNSZHUmxaWik5VXsrN0J+RF0iNTcrJWJPbCVsKmJaOUptSCEqfm05c2VndlorfSplQ0c7bilOJkBqTCYmKCg3UWEzTlJsOXFsOFVhek4sVz1IcXE0MHRZRTNVeCs1ez9wL2hWW2lMfmRhbDxHdXs9YFMwSXkzKzphOTIubk5YVi5hRWxDTShqJXNtYC9k'@; put 'ZmNxXjtGbVNVWUteflYidGRkbmh9ITZQMH1nNyhfSzwjM2BuO0dgNWdVVjNlX1o7O210XyN6RkFgYWQ6dlFRUHk+cCYqa1lkTSRbUFpzY2EoVD1VJTQqKlBvfDhZKXRfVVJyMSRTe0ZrNEpqeXI2ITMvfCREVjJZZSVrcm09Wlp9Q2h0UlIuNi9EazsqTSM1SV5TZW1EUGReODAhL150WGRNNyJr'@; put 'fkRHfCpTVWIzOSFnWCtyS3gxYGpHMTY7PEpERipJXl9SV0htWzdOYzI2cVVNaUBafnRvTVhrPE0zPFpZbmFzYDlwLm95NXBhbjZvTCVMfVBELmwoQD98YzNDOH5MITkkZWJBWCVOZFlha1UpNDdXOmdOM0hvMXxuU35kel9gXWFZYTp8TThhUmtDS35uKmxmPyQvMWp0NVteXiFWfixFVFAvSXZm'@; put 'bHNGZ11gbkdGeCU/PTkxKUdKNzhCSiQ3NXQ4LmdjZEglOW0xYWp2N2IsQkRwdGp+U25VXUtveFROTy99M1lbPDMwbCspS3lPYkBnOTxkY2lsZCosM0d4blEoRGA1SlMrX2ZbITN8b2I5OGE9PCY8NEI+azZNbFg2WyxaanVGT1E5MGxfTkVjQlcse0o8e0tWP2JgTUtLLmx8dHNRY1Q5cXJjX044'@; put 'NkJ8XztbanZxQzpDWCg3Kz1pa00+VW1hYDI5KSFYNyE3SSxQQWJIV1dKUDRofn5gTy4qTV9tSHo7RH0oaDxId2JOJDQlKzNTYCE2K1l7MGB7aHA3XT1JOFEhSHc3azRnZ1h2YTxOK3JBbk9sJmwvOGdvV2NkTH1GP2NzJjNNaz1CUjNUaU0zQ1tZQUApfi58d15XYlE3WUM0TW51IkwqPChxKGRm'@; put 'Y0QzPlhlfDBsVWo3MWc6NDpHXSM9NldBKVdATHk7TntsRmRMKnd1KitOaT8qS1ZrZlBffTU3diMrWXRwVURVZVZaITtYPERkI35abUUuPTRRbkRlOzIkNVBtbEdJOEBSJGM+QFkvLFhbaD5pSCxIVzYkZlpBL0gyOW1ELnlpNiFyKFYvLnc2JVNZd1kpKWNlWzRWKmtSNzUhdU06ITJiMDZnZ1BE'@; put 'Jns2Z1ZueWBnSDF6TyZ5VCkuTFguNlguMT98Oy5DKGg5dT8oMFlYL3xiVkghIXtxRUBWNzMoM3NeWHA5T3YyczlpYTRbLFtpNVJNOU1jM0NsSmZzT35hVnxHRFZ+SjQhQEVOJnMyVXNmWHhQX25ebjU0YjltWDIxWDxaNzNkR2JgRUReTHt+Q3EyQmpOdDk/YjpbbjsjWU02JClQW1BYXjBKLlpe'@; put 'fF8hMldmUTFeKFlydkc3SzV1Sk8mQ3NudVVOPCNOQXA0aEEsdz9hYktqNyRvYG1zODRtKWRuO3IwYiFOZHQsYmoxMyNAYXc3OG4+Undpd2QzcyVFQ29MdCRHMyZ0QWo0bnRmbUIrbEk1JVh7a1FtRTBWamQkSiF0XVU5UUtUVnRCKl9fZ2ZzW2dUNXQ6aVV5WHs6UEAvbzFWdD1eSE5yYTBsRyJe'@; put 'fWpJa3A+STJZbFNHKkdrflVicntRZyw7Wy4zaVcxOl0kQCMqb29mPDd1YHU7V293KSlidTIyWDltYkMlOmR8OGl8aFprakohJX0idnF0QXxuL3RWQnQ0QEl9KmB0ZyFvb3g1UWtXNUBwfD0+MS9qMzkqPVB8b2cvaDlJa0pBVl5SZ1MsPSwqNjBJKUVoVFcsM2xLLy9+LlN3ZiFAbzxbNnVmXmBf'@; put 'S29tI0kzTmRsNl42dyI5OktqNGFSUDZaYzJUeVBAeFs1THZDKVFOeUB2TmNwMWRGVmo8Pnc6cW0xIVUxeGQ3Ln12NVI8dTYkKnNlbnRnXWUrLzhDeCZsdE9DW1dvPVR+Wi5xQm5GN2E6NSkmI0V8c2djIyh5TDF5cHROQmVpYylbTDNZZSo4aCNUZjRJVlUmREBzWmY6V1FreElVay4jJT9MfCpU'@; put 'WTppbkp8I1tAdWFXfkVoIzQ7OT4vSlNiLnFmRDZFJmc+PWhqdDpCem9rcHJBOldhdk5rWzZXV08oMHRBe0NtKVkueSJsODUuP0pSeUwpailIWW5lY08oeW09NDUqNW5gTHtkb3VpOl0kbCo5ekpOM0FCTWNNNXp4Q2ptRnEsIntlVlFyU2NhNX5uZS9XN1RdO2AsNy5ScHx6WiolY1lXO01FPlta'@; put 'fGFOP2trPm1hIlhhODNdWnhfNVp8P2Q5ZV9lQElZJWA5QXxKcXRtOUsrSUdwWEtGZCx5X2cuPk9MOjRlYVZNe3Y2VCNOWU4wWGNfYkB0WkAhMDAhcTFbd0VzUXVWTnByd0R1Rn03IW4uKCpgQFtuMURLNikodzVDZm9Valpsb2V8OSlRNV0vR1RvIzlFT1NTOiRdPG9VNTRHOkddfSJ6eC5fODUl'@; put 'RU45QD15aWcpZCM8bk9xNiNXUTdzPVghLCkqQClgKVB4T0BAXmE9Ono2ZHwyQFIoYCYiZ3ZlMlNHbEUyJEtfeV9yXlBvSEkyNlk9WmhwaU1ZKlcjU25OL3RdR3YuME1xMjRMRilGKFBxSHFua0JGeT9kIm4sM3dFMHh9TTVOPlJCezV8aixHZFUqRCsoKjJ7VEc9QHdxKV5eWE5ROjVDYz4yOyM3'@; put 'a147QER8ZXw8PEM+dzwpcF84QT1KWE5xMm50LFIiSSwrPjB6TzxYUVN1Ty99VENBTUVVakVfbzR9VFlUc2M1S3thW3xJVFNrfm1qT0ZENUBrXUJBdSp+ZU9BU3tMfV9oQnVZdGZ7K2BFNDopLHFRYi9KZTsxSDZtYnRySUd+Y0pzZEtnJDcuZmo3VCozbTAsTiVQS2E/cVM+NilCWG5sTjlRbiVI'@; put 'S0JMMzV8KXJ3QkhaLjhidTxleDkrdSlpNVBSZWNoJVFmV0dPcW8rQTFvOXp+QDQ6eyZLMmlsQGFuLzw1bXBbWmdhaWY+YiMzS31maCM7RlE8SUwweyo7IUg9VUI1WEhxN2BkKmR7T1NaV2l9d1ZoeDgqPkQiX3AkcCNVL2dNZVouTVJMWW42XXpjSGRMNSsrZD01LGo/JGF9YWo5Qz4uVEptdEx9'@; put 'VylxPUMrcUt3PzdJNzR2SCRud2hmRU4odUBdM25lUnFRa1JCMUAxVkZjRGEpQUxsRHVSN0lOaz9XZE1mPkZmPjRrfD5gQio8WipHVDk1TFNFcE0waG9xIStfZF9dKShWa1RERGlCNj9fVj1QKiQkRlQ7Wj1QTHFqXUFyfjxyNEJdUkpGV0tUYUNrd0phbXlAKXV7Z1k4Z35mSVFWbWhNTHpIOEtt'@; put 'bFNaSFJwdCU7WDluXl5Zc146Qyo9R0kuVWdiLyhjKSxAWm9ddkAuYkhRTzdjdE4pOWdGdEo5U14lMVUuX3RsfCszNXkkPGdiM1M4L2JENSpEbCFeZHNgSiskWDdXUyUmdkJASFE8VSxpdks4cmRKNig5e1JxXjhtbVY8QE9HVUx4e3F7YEwiJHssX2N7em1+JFReXVt+WVdwQjh8Wi4/P2JvTHBx'@; put 'WSErWlgjTy9tTF9bQn4hI19bUzNBV19vb3hXMzskXyxnT192azxKalJNOlIsP01zTThrMHJfPF4wIWhTezMxXVZ3ZCZ4eUw5UHJjZzFTdDkyK0NKWH11PFFWN0omSThKSVBBPy9lOl44eWFMZyJCfV95KDc8Lzs7QFZUJldsaFc9b3I7dCVOLHFQfl04UFkqYEB8QVojNX00Y2RFRlgsaExGfjxQ'@; put 'ZWkobC5gZDJ+Vzt1NXt3ITRufjF9QFhwIShBVzA2XiVhYzxZWT4uR189OT0vRVtGbF0yZT1VVXV7TixlODYjRCVGZzc4MyRHYldYMzF7a1c5RFpVcEl6JVFnX2p5YkFdJDh2JGlwPyZpdXhjJmooPSZZX0duO2RweCFUYy5bXV08P1J8RVAoMGlGU0o9IX12SjhMVSshZFNffFtVbkIvN0FkYyIs'@; put 'PFQ0OXQiQ2QxITNpbj85MXgsXyhXNzxlOV9Ec08rR1RDSUZOWV9nR1hlekFJT14+MmdVUykiaXRqKmBIZkNsQVE0IjRPendyP0ZxNEVtfW10WyhbLnxFZU5BUXE3Q281fDEoTW5edld6VSFrOFM6R25AeHQqR2xJWCJXUHJiOX4yampfQGByLiw+TE8weyNuPU5WcGFzQjNtLDg7Yjg6bCVCNEd0'@; put 'QjM3WjZTeURwbHdFQEM0QnokK0JtSEkiVzpEJENCR3NOVmdJT05yPHwsdUd6PTl6WClyb2tzNiRmIUouR15lfjY4PTQsLn1NMzFEb2tHaG8sLncjJUd0cVQ1Q2ZHekJiUz8mKDxubD9QNz9EXWhqOSxvSXFFXXNzJjIvUVFVSiVgamphPigqfUFHZSVMNHY6QlJ+SF19NSZHckowQ2FQWGc7IytO'@; put 'cj5+VkhrZCglUTpTKCVqL11jZXcrOVUxdHlWWzcsTGoyZlV+VF4+XUY+aTpOUzlbQndhX1YzWkdOMzxpWlBTXVZ8aG1fNz46WTg5VTZ7QCZ0LldWOWZqNW91Z0p2PlcuczBgOXZpKXx8QkEsXjExfXZGMFRpX05LUVszJiZxMnoiTmBmbCFLS0hwO09Ka3o6SzsiOUs3KXp6Jjoma251WDtRP3Ve'@; put 'aUF3Rl4qInVbNTtQJCNaZS9vJWpYbSw3azQ+JHdVeX4iNVlFaG1YS3dXXyRoJSh9K1tXeHQ4QHAqfkcjT297eExvUE10e11kUHQvTmlEVVVmYn09ai90bEt6KzRWa35nJk9EWVh5d283TEJxWypAb2YpO1JRcE4qZGg4YShnWE87V0d+SCwlKlp5KlZBVikpTWtFanIlMkVjTSkyemBtNSZJUCJg'@; put 'dXZWbyVAcEB8aDgjaUNFRCF8PjFqcEQiPDpLK0RUQTF6flVKVGQwOGBLaHU5fnBJQkBfQ01sa2lUO0UuY3VWRFRecGcwKUdAOlZnJS5Bel8wUkA4QDJEUFYkLnx6JHdIInZRYXE4TDx2S2hRQWA6cjF3ND4oeGwzdWd6MzAuZ3I9TW8sOEtoKXt6PXAxRDlOKmIkQWk2dE07ZXYpWVd7XTdfdmFZ'@; put 'fT9YfHNtWFtwSjdvW2tvdEpTQnphMHRAcGFrfDtqXlNdJGRSOWNtJFE+a3FBKlU1QTt8b3NFS0d1Y05oel5NWHpiK0xufExwXVh+Y2xrKENiO2J0aE98KDhzfnZ+ZyJmRlZTcF1sJi91dDxpKkk/Tlp4IklDMWJqclFIeHx5OiI9XXlTTDNfbFVjL2dkXyxOajw7S3YxXWZlM2lyeW8oZlFFYXFB'@; put 'JkhwYVhRR31lXiFFW3p6TWBNJlNpfERreUghViYjUjFIbXoiKEgkSTxqeSo9RnBkOSlGQm96UnQoMGVnQyNCZEo7fTJzRUY5SSNFQX1xIyV7RENmZ3Mlb2RRK2dMVUhMUV4/bnExT3t5KjdnP1UlU2ZHbUFIX1B0dzZjaXhjP2RJO2NLdjlNMEhweFVpYSJicnJHITRmOjl6Lk06R3U9W1ptIllt'@; put 'M2MleHdUZ0NhQ0VJfl5xWUExbC5MVW5FMmtbKiFUZWdSP01IWSthfE1iKTpHIi9sM1N6OlQjOzd7I35hQVBwbiI4JmJkWCwmdj1YMWI3enN2OmQ2UHtddHZqRDJRQm1dfmJadiEoQWZKO3J+MUVaTCo2YE9fRV5mMXoqd1F5eXg/MjRlWTI/LCF7WS9QQk5iZ0NHZiZzKG9qMz1RU3l0Jjxbd1Ai'@; put 'TUsmSkY8SlBuYzdlZnFtaUBafHE2W0I7RnZMPVRTYnJWLyI2bCNNVj5mKiNYPE8lX2cpKChbKVN1ODpeRH03cFpoSSJ1dFNhaWldRnQiUl02QXV3UjpHamE1JkQ2UUhgdE0oLis9fkBeXmpFe3o3bjJhXURkQkV8IUdYXUlTNj44Sk5NezZNPUk9dyVJPFVDOE0sfCxGZGQ8eDt5Y0I0SDcyLyt5'@; put 'fSVjQnVOVzNNJV1TVypIVDBpMEduLH1Ue2cpTT9oX3ZzPUNKXVZ6PkxvRGpDV2NfKnwjUS9XQT5NP2FNJSpBMzlGWEtMeUY9Lj0kVC8oJmgkV1RwQlNXMTVnPVl3Q3JIN0lnX24wbXZsTV1OYjNzRkMqYW0mcGp0KWdoYFFUb2NVMUdea3smc0VNQVArTTFbe1Z8Zjh4cEdLP3FHV3Q6WX5IPzsr'@; put 'U2lLW0gmREh0SktwZkNvUjc8I09qRzd+YGd3KihmTWswWUo6IkdUVnpNYyQ6a1E+Ull0X0QxNTkxezBCL1pIejdXJTU/P2VOQC41T2U1cTEmWUB2M0pIQTkhQF9ULHlBX0RmJHxVeEVaLk8yLE00W0lOYyZKN1sxYyR+c2p7Y0tuTmYrb2dPOEJRNShAJEU3JTVGdHxyY2A5ImJRe2YxakRuKn5o'@; put 'bEl2R3c3WiQ1YHY6fEYlbWpqKF1PLitFNVpYIWF5PTxQJjJAcVBeZUpPKFdteGNfIWkoSTp5YGFdMWVEMkgjSzhZWFZmQ3t4VUx2OmlHMDdSbHlMKDNRWFlzI1AuQ2Jdb3coZHs4X0YuZ1pLbisxYjQmIiZleXJVRHBFdl5Yc1poWk4vM2t1c1J7ej57NUQqaUxgTDRsXVRlKjU6OUpofDdtbXhV'@; put 'bWIpRmhSP00iLGM9W1h3aUtYM1ZITHJoS0FwZFpLez85PG4pQkx4OUZAZnJAd0xsMXgrMyskR0phJHthaiN7T3o/NVhnaHorRigpdWk6cSJNP1NrKC4kWTZeMFhSdDg3eWJsTzxoQSNwI0ZtcT5gNGVEek5ibyQqInlUJVslL1NedmJdeUR+ZTlVOF9bPXhVMFk1Ji4+Wi9aSXhhZnQhNUwqO35d'@; put 'ZyReZyUlWTh1S11jaDg0cWs+TGd7bGQyTysscCNLOn1SMmVPLkd7aCZoS1hiZUNaej05b3FLNS8/PERJciE5NlZCPSQrQk92diwseGImS2YhI213IjtRXnVweiJ+R30oSWN4PjsiVGZSa2ZqIWY/ZT06YkZPIi84M3VwdmwwTEp5S0dJOnN6TFVaPTNvR0smTmNCZFEjeSEmQllYVHJGbX1lUV83'@; put 'L000ZXpCLGg4Q0tYSSZCQCZUYGtvNGJIeU14WEE1fmVdWFJgfjdrNSI+RkkhakZec2hOVn5UWEcrQE13cE8wfWc2RD55Z3pjR0R5LH1ZNDhRZXQubnFibFJ7SXV+LzZSWFNIZ15SLzNQeHtic3h5Y1Y8XTNrVHV8aD8uXTpSNUJpPEc+LFRiVDZEKHlqeW1+IyhgJi5wYFlyaUtaQyImNDdGbFBT'@; put 'JEMhTVM5fmtyJWBhWSxJVz1OQzdvN1UqTWJLWjdBY2BLV0JtIz9xZFNiTFlpP3UrXT0hV0pmVj53Lj9pN0hHNz4lR343UmE/S2VYbHU4PFA0R1YvKWl4U1A+e254emtGd217PS5hTSlATW8waVMqZTxMUFFeUUxRazBhJWRFR0ZtSVs2QUc8KnpQfGVJRk1wVjBLbms3Wkwkbyo4KFFsTElkaSpk'@; put 'cXtZeDUjbGlIMHcoKXxiNGRefCtKPStSalZaalNGTXgwY2w8OzlxX1QuWG5RKG5uSlFqTGxHXlpaTm1+XnNvXjxON0dzITsmYy9jZ3pgZDZ7NCpleig7PTU0NGl0Mi4/JUQ/ZmFiKDxfWEtYNDE0XmAhSWZhXkh7THphb2Mhd1Y+K0hPVyY7aCZ3TF0vYUo8dUc1TChUcHZFO05FaVU/Zk4hYig0'@; put 'Ik1BLH5wT2s1R0BLIkpudzsqTCJtRXYzVlQ5XkYiWUJmWV1Qdy8rMztZM2BGPl5nQUAvXTowX1ZAMlFmUnxhN11UNXlMITJ9UXM/Ml56TTNrSGNuNTRQRXdvVlBAblBOcFZALF5MUiM6djJlYW5URl9nPUdKbF9+b2w9KHRUYHBUZTRxSWtYbVpMdSt0UVVNakpFNVp8U2sjTkx5Lkt1RldTKEBW'@; put 'ZSFSYHBUPSpyI2R8bEpJTlhHQnRqZnpQVD4/LnU6enlzR0lGK2VBckg7Kz46UHBIO152IiNzTEVwPjska1k/Xig1YilzdUI9KSw0TDBeQ258TiZrPHt4eEw/RVJgTS52eDpjVjE2bC8sL3VgJiRSTEJwNz14d1goUDZvfnkrSDg/VD5dZ3JIfCRYfklHOzRsPT8yUGBlX29DQSI9WVpNYC4mU0p+'@; put 'RXBzS3UrQl5rY0FwXXdoVDpKVHdBOTB9OUJWazBnRXcmQihuNV4wOlNLUTswPTc2X0V+KHJscHJJQE1Ga0ViN0hLVX5MaVJqd0BxQF5bd1YyWkY4T0c6dFg0YkxzVSkpPlZ2enJSd0lXc0JOT2lNal5gLFp6Tjw+T0ReOihjI1U6dXdKeiZ3MD94ekwpbldHXl1sW1ZjdG44TThJIXc3XSRlW1Rn'@; put 'NEwpb3ZOSFk7dmtuZkgpTH0iVzNDWXYvRnEvPH13RUlfJGc8YyZSOUw5aHNEJnM/YVNWQnU0KnxfQDdpW1lrOWtNR2g0SERpY29YVUpNfnt9VFM3S1QwOHRtOHlrVjhfdDtUSVRLJVQiLkZseW0+aCZfMGRwKUl7KSVxe1IkP1tYQWhSakBHTFMwPVZGXjZRMyZsO0hCaWkueG9IXXxXMzpTYFFH'@; put 'RnVhJCk9RWtYdHVeME9HJT1MSUlTRSxdLi88d09NRjJYJit9T1RkWkw2ZHZLO1FqLyVnTix9cFNfPkIkOiY3JGlUPm4qdUBmWWY1MjxPaFdIWyRKXU5FXUJVcU8qTFsyPWhUS3Jdd19hZzRLVikxRylBVyhlfiVtc19PJV4yT2YmO1BENVE5PFkpV2oxNmRqMVAwbWRpPFJDVy5HaWhheXFhXn5K'@; put 'dmVkbiR8PU15NkxaSFE1KXtOdT1nZSNwcXhQVF5iLCE6MTViKHlAXWNgZGlRNEdvOVVHXzF2RE9wQ2B5eyFrYEZ7T1pVL18xVXl5WFNubHhRX108O2BoZiNVMTheTTJbWkFYeD1aa3A7OUE3IyYsKnZiaVplbUIxV1t3Z2txUEA4fGdwbWhnVzYzI19LL2dlRTNBYWt7ZjVaPm5vSWFHWVRJUls1'@; put 'SCZXeXgiNz15Uk1rMkJHMlZqanA6NUtWMjdRRmtJXUdte1J2PWxmcU1RYzIjZkZPcilGeWNpMWFTYCRMb28sPltXflVJaCM3bDB2enhPIlVjTVFYSkIsKVFBJjR5ZTM6JCUhQ1RTS2Q1am4zXmk8ZEFFWk9MPSpGOWFBQ31feXAmVmxoQCQrLGM1QCguUzAjL2h1Qj81WUNCUFFGci8heF4pPWBn'@; put 'OyR+I1lvXnJpS159KyE/dF9rNnFbMnVQIXpwREtUSGhlfGFvLFs2bl9+PmUlRU1CUFh0cngkcnltYHAqPTwyRU1hS3BgTz1fS2dgSERNfEB4REhneSR+JGJyZnV4VTNiKVJ3W2R2blpHfCtsaU05VUh6LldmVihtSDoqX1dYRGFTTnxFcU5JSz95JEFebzExNlJrQE1zSikiO1ZiYyR+KWsyfGpa'@; put 'UihEOTtIa2E2Ky8uMEY2ZyR5ak8ydzJDZyxfKXpPYlM2L10+NlJ2UF8vR0dWeXYhTjgoI0Y+JFVgJjg8fkhiYFlIT1YldEEvdXxJNG8va1ljOzdiMXQlI2czMWg+QjpMPTd6VEE1Knl2SXZTbHIvc2AwQy48L2F0JjVGNGZgLztiJismfGg5RmVjT0RKZU5YdGV4PUMxT3NmIjtPP3g2RnhlOE1a'@; put 'QXMoRFcpWUJxLlc6QyY/PDJkNiVwP148I09Bd0F8L1FwVDR6RnAlJnd5MV0kIzJuY1c5Q3txdnlOL0MxTkMqLyw0SWNBR3tYTFlRfVMvQ2ZEWX5qWjVTa1R5WlUkdlZmbktTIyR+Vn5KSzZQZ21UWGUyMlReNStLUlM9LmJAd0dXIi9ad3hKbVFSWGZLYWNiV3ZQJShbcC9MYWZgUihBcEFWOy42'@; put 'NlFvVX57blVCL3BoKEx7M2pGY3gudmRnTnFQZTIpNHVvN21QJV5rXm19c2UsNlZLJlV6O0I5ZlBDZWEwRF52c2ZeUEVgfUBuNltsempNYkJTOUA7RGRtJWIseWJrMFBeZXc7O00kVmRuW09dTj1eXl9wO0ZreCRTQDMid1dRUmMjO1ZEWjB9Z1BhO3pQSllMd2dFdkx9Q3shR3BJXXpJQ1FlYTB2'@; put 'TG1pQ2VQLiV+K11LbXt7Wn48Kzo+cDtGSigjMUIkVzxmI0N5d15rW2prZTB2N0ZNN2BERnJXdFhlKj4kc3JJVTFoT2dhNH5PZkV2O30mLzQ0WGxyaiV8InBweyR3XUlEc314Kl4yV3BnVnYkfnVCKjtJQ0IpZT5bQzRqR1BbUmZsb1RkWVBPVWk9VmdvJDB9TUMvQS9Rd2ByRGV2UUs7Mj57WCtY'@; put 'eUxiSUFxbC5vYE92ZXAkd21bPSNbfSFgUCo4KS52WCl6YCU+XiM1KFhePixFWjAzNCV3M29wJnExYT12KVlHNWJsLF9IU1NSUlZDPE4sIU40RzheZzV+VUVNJTVvcWcxZkdwSSNgMiNZZnMmPCo/PEBmcj55Tnh+YjAlT3pKUElMVGlBQ24zRyI7alRKZ2IwRXllYSpUcHR5ekJAQ3ZbO3hvQk1X'@; put 'bHY/UCNdeFBlI1U3UnUmMlJZfWQqZSM1QVFYWz4mW3RdL2cxTHpzaks/bCMzX3NYP0AlTSk/UUxXbDpeIWZabX4qTFtxT2F3ZEw2ZlNSUy5GL15ybihKaF9zRV5Icyo1UT59TXtRfSM+SXxDeU1HbD1rKGFMamh9e1srLFZJXTkoaCIiNSJkVj9lKnBUIUUlTytgKn4jRWNYJXx0RXZeZlFwLktk'@; put 'fDc2KklxbnpaUDxdJUdobHBjWSk9Ll5ZKzRNITpeR3cpLCtxRnk/fSUkTisiNTFBd3BzQ0B2OnlAayM/NSw2bEEyIjdfIy8oKVRLWHRsUTFZdWMrL0UpLDgzNjBOcllILlBBJnBRJSFtenRRNnhtK3Qrclt4TzUpfD9CfjhYMmFfWUx3IXhHYXo1NntuT3ByTVlmJGYvb3VLZ3ExM3V4O1VUVD9A'@; put 'Xj4ybk5aNnU2Z241WUZ1QC4/VU51anFxW3osMH5hbV9RYmRsYlQ/WjxnUGd6ayV0MW1KN0RQZ08rMGVKRnM9WDBgS0olbFpyN3V5KSFtOCZOYnxJRVs+cDlENzRdZCVPOHJpTUVNZG5+c300V0JzRDA0dXlaOFVZcEZvR2UvOlJOYFN5KF5oWWtoSkYscEopYD9ESkxUTClAY0dJKS9KeTo6TnBE'@; put 'Sm5SW3V9aFJtKG47PlEoK2A4bWBUN3c0TDR7Q2JuOWNoN0YlM113Szs+ND5PQ1M2eFBiYnMuMk0uSWRvTTE3ZjkhQkw4Plo/OEsxJk4+TyV9XmlNPFNTM0Z2Y15ebTdNKEB4JldwZyssNyVJTTtXU01wUyF8MiZdK09PV2BIfDI/b0dzNS8oNz1FSUpAPmBFbmRzfkpIIyo8fVB9PCpHPlNNWUxE'@; put 'I2c6eTpMfjAlfGw7fmN3UV1AZzhSQj9MPXgqaG5MOV1oJmQqZURPJW5vfDRWYUQiRUA3SU9DWTI9ZHshO0VlRyQ/MDw4a0lrfC86bGAxITxNNHxgRCFrfD5hRXZ6cihjKHRCIjBUfUV7WERITFV6bm1pSWU+KFE+VlVqaEpgUnJ6Qmp8dGxDQ2NCSmxSNU4kfCsydTJrZThRUWZlT0pJQ2M3LmE5'@; put 'bHNTdnRiTkgrPT1ieT9aLyp+PDw6MTY5YVhGJUV4NGpuWlVRMnhkdzxkVEdpeE5+Vj0+WiFGWEcpNVlYPl95L0VFO3U2cCJ2YGJGQHMhSlp0LC4/L3hDVVEsKSZ+JWJFUUIjaWlKLytMZl0kcDk2R2gzPzR6TSomYWhzTTBIR0V9VTE6IWtJbCgseTVfckZjVGlDKF94RGNpSSI7KlojKDA0V0FY'@; put 'OUNmKlk5aCZCO0leb3FNLkc5SzZWMUl4TX5yRV03WiJ8ODxESHRRSDQmaj5jQUR2QE57aF5IP0NHKyssam5SKk1lKjlvMzVbciY+XVdpSz4qYTxeUlFIMUJ0NzRwOWtkbndPZWRufHU6fWghTDpZT0dNXz9NUU8+Km1ecytiXkRyWT81TDdxcyh6dkhDUVhHQ3E7QWVhfUgjfTsoLmNxVD1EXTRA'@; put 'MzZDYXtnRjl9MENHWHIzQUkrXnVNbjpEaUJ5SW9rbmVFUzBTZCljc2tFZmgiNVhgVzVbNGtnZUw3PUglL0EsSFpudVBzT1NGbl1OYm9iYm9GZldqPyUyKTVXQUBVZkxfOClWXmFraFQ7ZGhpb3s+RjI2ZUk6czJIbntGLG1hY1VwRV5xO3RSNz1UeUMickJ7bkB7RUUmQFhkYll4aD45P0lsXSF8'@; put 'V01YNjpqMzAuTTA9ZypbVT0sKEx+KTZdSkQ2aSx7ZDhGUn1gTXoyUFJnalVNJGsmYmNaKm9DRilVWyY6WyRUfWVxXUB8ZGokaDA/Xk1vNUt2UmxhZmNzRiVCOCkoKUNzTWp6TDE0L1huPjczI0Naey9zPCxzYkw+T2NxKitqOEZdR3clIm1lZCQrNGxEeTwkRy8jamJCckV1P31zMHV9RCQqbn1L'@; put 'Km56USF8PHkxP0ZLPklwaiU1eEUzYTJIZ0gmJkB3ST8lclFLOnBnJEBfRSNWJTdiJSIpVmYuKmleT2EuLip5aFN8aW1zX3NJej9sbF9CRzNvYWt0YWVzWSlKU3ZkeGN5IkoiRDwrO11dekBYZHlPRW15eTwlV2duc1BQW0QjQm4pUmw3JHY5eC96K0AxRGV6WERFUHVue1JHPWF4ayRdWGAodH01'@; put 'ZWB1P1ssTVolTzVBO3B3dyZpNX5zJjEpakkyc1pTQnJ3RS9TQ150S2dFaDVPQWdecWs4eltVV0BGY3QyOG1tP11pXVhzPSNzdjduRV1semEvT1s+O0RFInNCKzh6OUBIYFJfSHZTXThjUndTYG1OXTlma3hgTmJZVlM1Kk5SYUQ6XUcuM3RZLkZgZylgfHN2RHxtXz9zPmVMWVUpfGtmW1p6TGdO'@; put 'ZGwiK30vbjlsY08+OmgqKlZiNmkpXThAZlA4MEBGPX5qZnNMZ2QjUG8vRVtaSjNEZUwmJHZZYyVZXSRwYW9yMTs5YlNOXXpBZWw+MmF8VThsRmldb25kLHlXNUI4VjMuODxxYjpIJno8SF9MUTFPUjAveHE1KGBxYHJAIT4uWlFrYjVKSzJGWX5HUFM/QzE2fGNwVz0oLG5tcHQ8dE0kJGFeKnAq'@; put 'PUAxRlFSVHRNSHoxVWxvYGoxaHlVPDtZJT1sXntOJFVwbmVGa01ofjQoeVRFQWZseC5OJFV9SDlNTndwdj9+JHR5ITxnKEQhNH46a3EwRSltNkt+ajloSzNlRjEwOnkmeD1dRkl6YU9VandFQ0xzWGlYW0gzbEJ7LENzMWVTSDd+Q2Z+KD14YHVMZnBQN3k7RitUPT0/Tzp4Z3ByN2VxQXN2LmZC'@; put 'KyNXJVAveDdmdik7ImE9WnA/NFVtajJQfW59PDZ6OXRQSnt4Ozo9LDg7UjhPZEI0eSxBTnR4fnFzZmxCQjBPTTdXYHMxJUxkZjlhcSt7bzJGOH1qVXdrXmJ0cGhoY15bUXlMM3pCPHZJQ0ddVDY/PDtwKWNZbjQzNGt0ZVdAZ0w1PElTQn5MKkVxQUo0RjMuJl0rPTRqVG1WZzslZiE0fm15WG1s'@; put 'T3JKfUdDdCRhakY0L0AkRVFqPGFwSC49fiorZyUrQykwWW4uVS5rQlZPaXh4NjxMbGpwTyshWUNPYFFQTUQ2KHFXNUFnJSN9ZyZ0YzAsUlY+UmhmX31OLE4jNU9VJUY4Z2Y4VmNIZGV5XmRfS1dCJnZzYiJWfV1hbzQ8ZVVfandrTVhXTy8vW2lvT3dNaTltbkBdWStpWFc1fSNbW21ZNVJ2Y3R1'@; put 'PWZodVZTLFJufWhjejwrWSs2d25FUjEsMDVraDE9SC9xIUxabjpZJXo4JSJ2bkBIPVFaMWVgUUtWRGYsRU4+cSxyJXNxSUNlTi5xRWJqX2Z1UWo+RTArWU9SZ2tmSTY7aGpuN2xzYj9ZLlQ1PTl1Q2ZIQ29mIXhmUVp1MDYzTDR7IVdZM3ZbKV08RjpvRj1AYGZsJXsuWk83JXZMOzJWZzxYPW02'@; put 'OVRHQzgzdFRlZzMuaipDRS8qOkx0Y1VtN0tfY1ZjT1khIzUraFR5ZnlyZWhBS2RDOTprcWNSIUJfd1QkdCQ+UEUiPFcqPTlSXTVOY2FffStnUGAwVHs0R10hInR8d0c1V0VNaTIpUkJAZWFpOmRxKVlNT3EsNUw9RzlCd0YwU2I4WFk4JXlZXXRNeDptJEYjU2xHNj1QR049UXIqImFYKHwjU0o5'@; put 'PWBvQHJnUHlVSE5VOSVwT1VrSk5HI0RFemlZMkVnOnBDZitqaVVCMm1zOFMpW15FcTY1TDovMEJFdk1VODwxVF04Lm50TVM4JX55YF9jYzkzOlU8NkUkJWVtZVcpcT1fNzNPJTUlallBYltsZHA7KF1uRDlxey84Imx9UXQpLlBwZyt7eV13NX10ZkIsVWVrJmEzSW1MfjRxL21BJD90U2dNQjc9'@; put 'RjFfWFVMMEdsTkcwPmAkIXdqOSg+UlRMIkhmYFNWWX18X2Fld05ge2svfDBDdUtPWTUoPW1aVmMxXWZQUFBfSipyaGBTcXcyKU4hTHNJPjdaRjo9dEJodytaSGtXUyJ9Jl5eT3w4U0JJOXd3YU1ldyZncnN+P1BEXnZ4ZSxnXTxLZz9dcVJ3WSlWcnlbMyIpazd8ciRLSi9xUUh6bGRgKjI/aChM'@; put 'Yn19MH18Sy5yMWcweytgL0JQJCpiSFhgMWMsNzo/QXYweH1nfC5vbUd2Jjp0fk14cSFyZVlZeSRSMkZLRDYxODJIRl86Qm4vbCF9dF9ZIXF5THdnSCtBbEFoZHw3KT0kazdvO3hjJH1bJkIuQmwobUZpaW51NXxZLlJmYFBiR3dXeEJMYmZxZzR1RkZffkw9VVlzVCEwN2VqNFohQS9JY29lUGVM'@; put 'Mjx+RDtIcjBrWTs5fFhCQSMjTmJ5NDw3XXQvPShacmxRLmJLOis4dDR7OSwjYkhLMlhyWzBlc2hmSXpgJHBoT0ZaPUZadkkjPDNkTGMldD1yPTpkTFIpWm0vWnljc3YiUk47alg3Om9JVklUMU4oRUszLjlJVyI5RF8+NEk1W0FnQnB1Jk5zW0NYYTJmY0csWnlPKj1PRSlmfktsXkh6d3hQN09T'@; put 'XnJ1NWxNYm0ybDBsWHRRPlcmND17ZiI9XypTYG1iPzt7djI3VjpJJlR5YTJFWFk/eTJaR2I+I3pUM3swaFhgZllTcGk2RFp5bkNkcFVEZTNTNigpQ1RzL3h7YilKNEYvTCpWZk5YX04mSitsKT9TKmp9PCpOV2g4Vy9edGcuVkY/b0pGJjs6e1VMPHEodiw7S01qZyosI3dRPkJvP05KQ0MlSWxx'@; put 'cHJbOV5FLkJhO1NPe2tLSyxXaXlhXjNoL1NdSVRkd21nbjomLHd4aHg0WjwucjJmYFh4XSM1LGZMZ3dKZTI3e2k/dT89QW9gOT1idzBIV3FjXkhkbCMsQEUvT0BOTms+SEBbPTRVaWNDIXhsNn4peClpQmp0Q0MiZ1k2InoodVgwKWNEOk8qenl0Njs+MEFRVFtQXmYiJSNIcHwpTWUrJWdFJkQy'@; put 'b3xjLDo6RiU7Nj5xJnAoWVpxXlRdK0ckTFcjaEExVEwxanxjVEgjUXt1WDhsNW17Wk5aW2Q8TlhAPGh2WmN1LCI7UygwcXlwMiVdMiJ9TDZHRnArbF5FX0JLVldkWG4xYnBFWTtJYVFZbGRLOUBMczRxYj1QWitDJXVQVF85ak06PkxRWnksX1lLJnl0VzBaSUI+dDNaXS83UUs5MylkO1heOFVu'@; put 'b1RCNDklTCZFeXFHNmQ2N3NsUCQlLlBFTjBvTC4mfj8jS1JxYVMyZHhrZ3dnSnVDR2tfIXluOlc3OSxCRFImYVQwVnhDYXh0aUgiXkY8MHFldEl+LDhCKnc1d20ydVpjUyZVYTQxWWlrSjFUXiErUXNQK3xrWX5RWll+R1B6LmhZVzFsMj4ybXNALjp2aiw/Ny50OmE/RGcwITRQNVJYcEI3Oz8y'@; put 'MWY/K1lUZ1tFelpzOyRlREBOSCxUalkpdzBXOWBgYV52aTlmMUgjaltZY0k5Wjx5ZFI1X2hXfkdiaVQxMERBUCFdV3E6K1ZQOE9lJCl0NU02TjtCLygkV0kpJlhXdztdKVhlNS9dPEdiUC9qWyFuPU91ayJQRHNFR2NFNXRtOnorZ1E6Y2tTTWt4eUlAXiNOdk4oJlA3JXIsTyE6Yj5YNlBHQFAk'@; put 'WlN1N0VnYGdaKFk2N2hHeF43Nmd4R2dJKmF8LGZLZS83RmdnaS9jPSNQWHZpdyo7a3NvVDpLYlQvdiFsaTtMbTI+eGhhIU0+Wi9Jbzp6WDFQPnNrJmVbbTZ5eTguRCxjNTldVHpTZFN2YlolXy5SPSp7KHAuajNWdUUzUVRiU1N2fTA0XyVAI3MvQ0c8Q2hTXVRPPSZiR0shUz5lQU19NiUwQjJ6'@; put 'Nzx+OS5NNk9UfSEzXnNfM1F3LytJJVYlLHtHaWB3fEV6Yn42MngobypAZDJZOmM6K3IxSDRuQGFKRkcvTnRCR2dFTGlVOEdOeSQiYW4vJlJHKVdAWURoUlM/Z0pLUV0+WWpsJntaJjpBTUMiZUxQYVRWKkYzSGRgZ1haP2dEY01ZRWtYVz9tbWdUfGN8TmN4XzI9ek9IL1QhM1JZZXtxbmVZNzNo'@; put 'KmVaRDoyOEEvIzZCL0xDQ3J0XW1iIiYiQzlDbUBBSSFbZzo0fERaWj9ddkxyUE9xMzI2JllNITh1KFI5UmFqdUd0WXlOWihWLzoqOCxZd1MxbTk4M349ak5He1BNSCYpOyI6WTIraH43QzMpPHNeTmc3a3Z+U0pFak8vYzVfQndDJFF3PTRMVDklbTt0RUZCTV5fUktOXnIiWCsyQlZjKjVwQlgp'@; put 'bHpPKU0mRHZmcDRvdys2dEooXVFGaDBkbXZ+fGtpbX09ejluUD1faCtUWThOYF0oYS5mSSlhVllGQ2t6WjI3UmleLzpaSXxLQGolSClHeH5wLlZMS29dMTJ1Y3pDUlReOFFIaVt1ZVU1Y3czaj46djpVblVDfDo9L198bHU+MkQ9YzJxZXBibDspcjdabktTdndMRT04YkdqZUBTXWcibihSIl54'@; put 'QThdKGtVOkVYenpET31aRCwvIyFfaWphJWImeiRuNHRiOzAmVSRVdj05fWlUIyhqZFdjbEw8KFMqUWsyJi5mJlJzSkgvNTo8ZVdpRVM4fVJhP1JqOW0kOX1bYzBsSUUmckQjdyFeRFkhR31LXllKXyhNR3lebnJleDZKcSNwMTxnYTJKRGpQbjQ/X1JVNyV0cDNNbjZEXnNvX3hQNFA2akh0fGA6'@; put 'LE9kazIuTEtbVDpMXi5SSyo+Xkl+bXF7XnpCPjd4QVZwb1Q2S0k8YUlseDFGOzFULDAsclpoQnE5cj9yPFYoUm19Lko0aGp8fj8/bUx+Xnk8UWw8RjFSKH1MRnNpUEMjcTQ9VTRtbFJONHJ0dHgmNlNWMGleQDE0Vm1jcHgxRTdqKnlWYXQwKzd4IU9VK258bipmTTEjeFlPWSlpMWNHeH0vVCV8'@; put 'Mm98O0BsfngxbHBCQmRhT0tzcG0+dDU1UVVVRzhgRjU7RXh2LiUrbTBAVkZiPFV2Qjc6OS5kSmVdcVoyckhpaUdQS2FKJGplaTghW1d+VXd6WHlmXkRHWD5BSj8pVHhZYE9zTWdyW3o/fVQ8fl15RUdjIjkkPz53TDNOSW5rK2JNYDR+JTU6IiFRSEJ1bWBgcStBYSV9YmU4N2EoNSlMNGpzTy47'@; put 'VnRBbV1xWilWck48dSxfOWFmYVosQm5GbTRwRFBVbTJNMFJXWU93aCR2ezhXPj5yKGBDOk5PUmo/Plk9aGp0K3wldztFQDtlbzsjOHVvU1hjPTlUfVd6ZVohay5ZcyJRNTVBeHhjdWZUPG8zIlZ3fGI2fFU6TDtbbyN3Wmh7Mlg2RDA1RT55Lk06LDwoNGA1ZWJBODpUJExyQCUqXjFCX1JSbys5'@; put 'TFZdeThDc1Jqek54SnYyanxqRmgkT2hfeCx2RnM7UVAzOiYkdGUuWS5oSl82ZFg7YkN5Wm8sb0xraU0wXSJHTSs4Wnoyc2BXfTozcG9qS1RTRUMlcWxPakk0dGxvKztKLnQpcyMkVk5SOigxZmAveUBFNjlEJVc2cWpqfWt2VGs6XkF7Vj9rT0csY2E9aWlsN3J3VjVmSkM9eHcucT58c21dbSpa'@; put 'cmVhP1txbVVpfExgVE5qdEdTWEJzSWkxeWtoMj0zYWhRcS8+NXI8KkdYTX4/N0o3VVJ0bmVQZDohdFlnYndKZE18ZXpDPiJ1ZV8sZE1qWjRjanJsTSk0P1JVS3gqSjVreVVvZnpNPmtraUljWXR9Kz4wY29DU2xXXk9mW0dSIn4/bz1IYiZSallkc243cHhOIzBQWH5CbXkvbiwjY1tielIwdC80'@; put 'KDlkJWU1TFFXUyhfMVciR0t9UCNjVV4wUlNtIyJLdi50MGUvIkIxR0V2UVg4OFJnN0RSL3xJYFFqIzZUbDtCWnVxPmAxZWFgSlhsZENeYFhwM1FkdTwmTCZHWnF5R18pVV9nfSMzRWtdOCVgRV1tK0IsMihwe3NEQltOSVkqSE97OUIvIzE4ZlNJNCtme04kYilYL19hOUU3dHUqLEFvRTxmRzY0'@; put 'cipFVEwiJTRSejFPWmN4Sld2Lj9idXI4LkRCOlZKSldHTFZicSQjcl5dNmNXRUJPN1JdIUheWlY5b1oySHl1KG90K1ViY0liYDk4cGlveyUuNFh3JksiLE4/JkY5bG49ZnpUR0BiI2ErZzc1IlIpPUltQHB8Lyw+IyhTdSlkSDNJVmRESTR2MGdzanZUcHFDVCZEdUBwdlZiNztMcnVPZTwxYWUh'@; put 'Mz5lXiZPLCQ+ME0wQiZxLnFCTiRCeT5hXSg/fHR3MiRdTW98aXpeaDY8fFlKOzpIZWk4Skcvbmp6X1dlJEFOWCN7ajR8aDdbOHg0aDNOKHdTdjBsekQsVF1MZlZWOyFbcmhodlFyRntzOXJDLikmcXpLVTtkYjhaOiJOfWBDS2hPdCZlU2s5Nj5WUCNGVipqUko4TEI8MCNHcHtaTG8zOStzST85'@; put 'NSZtVEgrdXZRLiw6cWx9TGtkT1kwU3pjbFFLYE0sJnBQODUxe2QxSlMqPUNuNzNZR1QwXllPbUkoIT5wZSFdRTRadHFTUEwlLEs6Ylo5ZF4wPjNlNVshTyQhIkdTezlLIWcvTUNefFh5KVd6U2lELnJPbyNCVDdCWmQsVEdvbVFgb0R2VX1feTo2ZnMyLGk6eChMelAxJmBkfWUwJnt5OTgkIixC'@; put 'XnZuQ1Z3JE84OUd7NDM1Z0U/RDk/UEUxJUZnVUpJQFgodnVjQ1BeJkJja0EoM3QmXWVzcUJCRCRIPW1Je2BNIXdYJkcyOT9XPH1JUSs+MXhYakMrYDFvdCladER0dFF3QThRIUovK0JZZ1R1Qj99e1Q8TV4scjIvU008clZAVzYuI3J4dylucTJFTFtGdyh5V1tuIV4zU31mcGFFZzdHTFYjJnhS'@; put 'ZmRPOzh0VT48OTV8PCNQVFZ4bGQ7c3NnZzhPYSxdNE4lZWE1dHIvUU9bIl5+fS5ZYVIrY0VTZElmN0dJR24vb3IybV44UyIoYCxTeHlMLlFFbmBJI0Z5bm8+Piw9QHQ0IndwbklFZlVTIWEpX3pqI2FYYDJAcGt4ais3OGB8QDB5UUM0e0kyOFlmS3UxfThMVF0+Wy9pfHUiezYoJGJIfjN3ZyFn'@; put 'VDlnPjZ5RHh8YVBIMTptZXJIKUtvaHw1MjguNH1PcWZaLDFoWUx5dV14VWFUOXZmOlpANk81OHVKXkImWVRtUSVuQDdjSVljfVVhfEhGJlFMMH5SQmZHTkRRX0M1TXcjVGwhKFdKZFg/Mm87fC8lKkglMWxVK29famt2Uk52ZT4jM11BJmI/JmxdT1AybyJUUEh1QnlvfT5fUXZKTy4kNHN6fmpE'@; put 'X2RmU0lJZztpY2RqIkVIbS9SPjteSysqbytSanRyakA6eTd2VkZKIW8pJH1WPFVOXnlfUmY6WEoid3Q7QzhwZyMyc2JAXXVacSoycV47MjlgfE0qKmQxbD4kWFdpb0pgJX5SUEUpN2ZIL0BBS01DLFo9dXY9TF1gX0NgPkQyXkB4UERVaDJZKkQvWSN+KChzWThrO3pXcTEvN01nYmhtTltgQigm'@; put 'NEk8c0wvTzh5WWJ7a01OPjJGdTs0Nnd+O2R+LDVYKnF5SCo+OTZ2U2swcnBKMz9+SHw7Yig+djNqdC4vNEZ1PD5MUlBMR3VIdDVEZ2NPfGdDYEcrNCYjTTtDN1hjfi9Ja089dXpDUDY9XjxBQ0goZ2hqQlJBdVMjRi9TZiJbZXp9cGlUejE+eEtXaSFvaGtjVEt0VmdvWVp3OkA5YiRkOitqMUZ+'@; put 'N1s3d3BQQ0k6SitiVl5SSWdpZ316em9CcFsoc0d4LGhFZEA0aCFzSEklTj9RMTl9bmhPP01SUCIuS3E5dlcze1lWMVdKRyNgIjtLbkxfZzUvVWMzXlJBKjokWys5NVNHJHAiWzNxJXcvMzY5P3BsZUo0TWkrKCtSZ2VBN043ekQ6RFVZPExvXld9aCwzUDs1WytrIytManpfNnUkTWVVMHhieXxT'@; put 'cmwzLCguTj5XbU1gVEJDbmFOQ3trU1J6JT5od042JHhaaEdDcmtpTl9IPEg3PCR6UTQxbn4hZUl3cUdbanJRKzBmKzxbXl1kcE5gRFAobm0vNHo7c2lYIkp2cHp8PDIqWiRNb05MZz1PVWhzcGpGWnYiTDx1M0UrTXxHYkZWXzdPcHdjbSNJQVdbdGEsQDEybiJLWVs0WzhgXVpyYDhCZj1FRGQ5'@; put 'LjAka0VAM1VCdE9CZiNeXmkqYk14bU52JX49eH5BRFYvfHkmMzNFP2dgXl4hdkM+T1pAenhrY3AxNn0yUFNbdUtmVkhuMzgvYVpxJj9JbnlWeiRZOXIuKD54I11PaSVLN0JlXVJpImo6YS5gdEFtaHpqRD9jLi5vRGNLQTZDI1QrdHdTaHtpZSMvUGkpZXo1TDBnL2NBQEEyb1QmYUdzVkRlVFA3'@; put 'dip+TypwTFBHLEpXbTA4WDU4UUtCIToxTnJYaWdadUhJbT5Zcn1kJV1bQEosaDt8Uk8hdn49eipZVnZsSkxCKis2OXR3MVhFaEFuY1FYfGIkbnMhPWBWQFRNP059d3FLOzZtSUglezxuMSRESW9MSWQjNlZVOTgsPmgyM2MwUzlFcHFkWDV1VjZDRlIqciFjbEVWeCZnWkdobk0oKzZkJCoyOkhF'@; put 'dmp+OnlGblouQCU5eHt8UDsvVjZTdG1iVFRAVzFXaX49VipuLGQiV0tsZ2VHPEYpLDFAMW0zYzEpL0xVUGJAUlNyQnMlMTdCM2VpTHxeeEUuXW5xdnp1dVlaKjVqVEhTbkN3TmQ0fD0uVUtOaFF0NCpaRENPSkUpIUpxO1tHZ3hRVDJXdTtsUDcpVXg8SFk0Y0FXZXpjRU4kMjZaOCsjRTY0SVVC'@; put 'e3tibFB1W0ljKEVDRFF0b2s3S31ue3lxZml3JD1ELCFjSD1vbitNXjR7ZVFHOFBWNSleLm4mLGw9NFdjVGtWeH5ORXcuZm9SM30uUXZDLEp2dUtAZ3FnY35fWVQpTWRsSFlNeX5KYUl4Tk0mN18lNlVzc35je3lXMjZqblo6Ol0jcShocWtXP1ViPk8oK2Z6bylVZkNuQndAOTkwSTBraT1vUzBV'@; put 'ZEQoTmBiKUU6dUdzVzNUPE9uOE9ncmwjU3hVMW1MaiZgYipeNGpZI3R6QWVheHM/Zyl8c0tfJjl2NGxOcEdCaiguOlR6L0NqSERjQE0iR29OSyRwRXx5dl09LGg2a1pUcEUlPWlYYmVSaXcoRGUrQlhVWXRuUTpgWU1dWHd+ISE7MHZXKnElU3MqXSxQNX45SHEqYk1jWVdZJD10dCxfaS8qbzYr'@; put 'UHhNeCpbUmAsO3x0eFohNHd4Oj91eVl2JW57JkBkVmQlbzAjb0JMZ1c+cUpTW2cwfnhlKiF3WCxpQ3kxSX1ebmJGTUlILDsvXlNHRGlZXT08fTF2ZGlHbzJabit5SkQmVDNaej14U2cyT09iJWA+U3hFdj89KFclNTA8dzBkXV1+PD1MPXFCV1ZnVUQ2PF47Rn1sYWlJWXhWPiNGcGp+OmkmUkRd'@; put 'dFt8XnZyfiNQVSU6RylHRkBvaD0vMm1PMTo3dWp3RCJQU1Q/OFAkcGtaLkJZfllsM21ZNzV8MGUkaUhjRTBuTylmc2Y3IUA9L3QyRVdaejcoQj4kfCFDZnVLYUptbkwzMW06JVAzITAqNmZkclN4Oj5tLy87UHt1PnZXOFtOZUNYTCNqbFokJXMxSSFBXTE4VHdrckVYW2doeExjaSpuXWx5OUpg'@; put 'Sm58IWkzVltvcDlQJFBVcVc/dzVmYyM+KkpldFpdfmJeVGdDRi9nRGtmZHw6TmUzJSlRMDpuQ2YyT0g1eWNoW3gsLHFrW0ZOPUNTJEEhXXJJVGBVYUh4WDRGYjVfOjRYYzEifEwkPSpedWRVaSR4ezFoQ2FSOVYjcjVKKTdASSNGSm0lX3tVfDR+YW4yNW1STjIxQlZAXShoSUV+QElnTUkuSWpj'@; put 'MWJYI2Bxdlc5Xzo8c3hHKFJGPV4lUHVUK3tBOWVTKnFkNGRIMSZaLiNnZGclLEpFaHB4NyJnVWh5WGhuQyV0OjVlWS9PbSgmfHJPaixeZXU+T1UkMXd2RlFWX3FtY3ghQkVmRytsRkQscyxPM1FrK0opSl1dR2ooMS5sQ0xtKVI4Vj5SbUtZcSpaSllWPz5xODYxYGUxZW0/aXZ7NT9HUnY8ai96'@; put 'LHN+Wio+YWxvMD50OSJNM3B4c2Bqdy4jdTYxKjwxZlZQOVtjYz4jZVAiT0llTnJpRFZEW3QxYVBqSyNYM34qTEZhNm1hbXNjS3V2cWokPzk3TUh7K0dTQXYlZER8dlVWNnM6bm4lZmw7M3QzK043ailwblExNzJlTzh+SzFUdERYMXE9I21TUFt5LENYb29vSnkuYGxgUFhKeWdxTlpOYihtUjZI'@; put 'a0svaFhqfmtOTFM2MXAjT3N8YlVkS1FZdGJUNzM3fUFQNHxgUm13I0FyZWx8eDN0KklPajd8ajVtfTlTKDBaLyp6VDduSi9kPj94PHE9SzReWUslYXlUM1RMRiV8cX0lITNTNnRzTyVPNHg1czpCPGJ6d0ZUYzpGWnwiRlQjUTJDYTRld2c1PnVrQGtxWD9JT08xM3pRP0ovTnxialV9WWw+QEd5'@; put 'MWkuaS4leD5MLmZCKFtFajYwXVhsRSNbeSwxRX5NejshMGRsTlVHJjI9YD0sUHdOcXNocmg6dnldKllNel1HeDxQNTNZVGtvYjgkMnMqdHV3SXVzbmVuMElQKHw2altZeTB1LEMmU35HaCFjLjJIIWV3Y0xpPV86XzJGImw3XXtYK3VzRXVgPXN6UWRHLFJQZl1kaGRZVXhkckx4JDlMZWZgVnB7'@; put 'QUVgUHEvKVtedUI/OyphPW96OjB4K0ZMSy9JUFYxWXwmQzp4OlheWW9RJjV2bGhZLCh7K2JQM0oqPnYrZThKRjRPKyhzQjlEdmBuO1NMYE8iTWRIMVoreEE8amR9RShAO1B5QjtvdHxOckgwUEVTU0k4S2huNToyJGB2fm1iaD1uV2FzRD44V0U6bnQzclt7YUhCbiFkSksqJlFkTT5jYGJ1N0Au'@; put 'NHMrL11NZHp7fFY2eiYlOXBPbjJCa3kwNiwmcEhuVmA6KmY/d1Y0XkRENVpEIU94LDc+VmphYXFweUxPaF8pOGF8NF5NTWpzeC5oZ1ZjJW4hRz8lcDZkQyg5Ri48NU98Kis5NixhcjJNWkZ7c2ZsXz4zK1lvbEc0b1VfQittUl1GNEJMeTk/UzB9PUldSmgmOjxOUWc5fihzfSwoMihMI0x1U2RF'@; put 'RytgYSJrSj0hPEY3bGcoSSU6PHEqMWBHVCYpJGQ/WC54dD5bfU9DO3ZaTThOIUpgSTlMUURNM2N3V1BOemlqTFBDKTs8eX4qejo8RTw6X2AlVDI7L2FvLjo6VilLVTM4QEwhPWlMO09VZ2cibzBkMiNZez8mdmkiSlgvaHBCUltMRFtoSSFDcj9vPyF9KkEzKlE5THd3M3k4OE5pdzV+dnkrYHZr'@; put 'Rms/PTdPWCl3bGNhPm19cUo6LyRaRzJiRTR2cyRQNm1INmwwXlNgdD16ZjYlJGZzd3o7NVIhYVpVViYhYVVVIShoaShSWnpRVCtWZ25IbVQ9T1FGMVoocXMqW3tpaF5fKXc5Pl9tN2FydVlNW3hmKzY4JlhmK2Fxak1GSDtFS3dKXldKUXFOOGNpVUkwcD8yRzolVixxVjg4XnlnWjlbfUd7V3Ns'@; put 'di4vZiJeRGo8P1ombltnfWMvYy9FOUwyb2sjLmJKN0hJSk9FKisrKjFQeG9LLCRUJmtkcUg4Y05weVRZYzFBVmJ3eEJrfSNpJmp1UyxzNzs3THNKczM0N31GLyp1NHpPKXdLRXFNQ1dQSkVfRjswZWcpOzVsSCFPKnp+JF9rLzx+S2BXQVdvSzN7XjNNcjpMIUE6XzszLCkhc11mOmVuPSohaTR3'@; put 'SD5dKlVgTXsscEUiN2wwY0BmSClvL28+Z1M8WjE9aF1hWj9MIXR5fDgjWSFtZjlzbHdwUS9OLGA7PV82WHA4PTc7O1gzPERvekpgQXJYfTdfc0RdXXB7emZXJUtnKDAlcjBiSG0uXjY5YCVwaFFkYnJRM35+Nlh9I1IkV0lFejtwWSUsIiVVUUVKelE5MFtURlNHP099JipnPnlPQj1JWThqWT1M'@; put 'ayRgKTV7d28mXXQqZCVxSlB3fWM2RihOfnNCaFFqcyVqWX5dKWw3O2FRUSxISmIzZkZUXWJtKEMre190Vit2UEVZWXJtRFZFcjZFfXpRYDdtKWgqQ2RRM2htQkdZMGY7VlgpQ1AsdXJtW31AZSReUjZ+Y29kLis5VzpmdyIpP2IhTkt5KiM3KFE0d0U+bCRbNkBJRTB4S1V5PX56L2dgU0FpS1VI'@; put 'RlovZyRJUjdwNjJ2LnFtaihTZE9iPHJRJXR9dkIpM1RlQUc1YVVNVC5UQkJleX5wU3Q/NTRAZlFRUXlFMFJaMTpSJnArX0NxSUp6PG9lVnw9dzFpTC5LeVkqV3B+SzslMUksRChbKnBPZ3pTTzVNUVVSVFd1NEhyfGhBSGhVTG9qKTFiLmZsUWplakhpakt9JFRHZjt+OGhiZFBWPXhvRzliMzFI'@; put 'MFs6QHFhcTBBZXBFKFdXNCYrZENWYFprWjoiYldSJWJsVkFZTzJreiJCb3RdK1lQVmFQdFg3PVlFZU5iKFNGUjkqS35CalE/K0hyLDk6I3JFIkFySWdkNTJPPnQ4Ol1nV1lqfjlZfWhMVUouIUhnSzpCYUleQ1VVenwiYCojSH02I0N6fkB3ZGhoInVMSkFFMyFhSkovUTNwTEQweXs8P1Z0VkIy'@; put 'Lk5selUrJFEmRkRoZyFMbmZJRFsyZXtJO0xiLit1WH5jPGs8TTBhLkdhaFpQXnxDX09dbCpxSS8kfSQpSGR4ZFV6UFJQQ2dbX3cyQlR+SnJqaSRdVGlWbSNKV3tHQUJfL0MuUFYyUyUrV3sye1szSCQoZ3hjI3toam51MGd5cXM7VU5AJjpIMXoqQHs5Z0c+QF1AZDZeZEBUPGFhUDVUQmZVa1lZ'@; put 'K3A1akAkT2RBTW44SEY7JlJoNndkamJBLyw3bm9SYDFUe15lZ2VMOnFGe2Q0cmBNIn5KaDRvWUQ3UzJAV0pbXURJPkgvKTlnVHpKWDNteG9lV2BKQF5+TE9ZeUR2SSMsS0d+UDA5KEROems3Om9Ie3pHKHBlL3B5TUdnezNTY2M2LjFrSGFnRlZ8PiFiV2JLd2JeRFBmPXAiZEx8dkxCXkhJRjN2'@; put 'dnxoMXAwTWJQS31RO0NsdlJgTmFOfCopTX1heHYlOWVHOXFJJWl4SjFwRFZIb0lzY1YlPGhuPFE3RV16TldVdiU6L3NUND9GLmQoWD54RE9DZ0RIeUU9LjdpSX0iaUpqcCY/YT4ia0ZGOGNye00jeDBhNDhJIy5GTXljW0pWcVsrMF9Hc2RbOmhgaXp8dXErZG4zcXpWWjkyNnlVSWV3Q2RDeG5T'@; put 'Pm9dfTA2OSgmQ19TZjFMcjJlV1h5SFEqXk1yWGBaSnB1KmF+ISo9X301ck80fkMuWiF8KSJpKXVgRnJyQj52QGclQ0omYXZ5dzwiUXdiRysqUUNQNGlXRStOd2dwfUFvSlEvXSF6YjhxPlVJUC5OeDxHISFnJDk+NTtgdyN9blp8V2guNDVLPkNJOU4hcjkxLk5gTVdnV2FZPFhjVk97YEdRPExu'@; put 'aSYzMXt6MnB6OE1YNG8hajMuIUhJZWFvSzYpO3JscEpTOnM9UnEkaC5CIz1hUUZ+WjduSVBgelk1InMubDteSUgwM1opST80TylNQCV3XXhVey5FRSJlWWkhc3wrUGl8aChsfXQwVU06dGM7Wj5iQS5iIUhzLFlFRDRFRzFZIzt0YkgvK0A3KyNaSkkwayMySVJyd3BSfX5QMjVMKyEiNEB4KkdN'@; put 'Rzt8UGl1KylRQFNOWH16JGVmKEYoZD91MntgTEVpYnVkNFBHdkJ0QDd6N18zI2dzVVFQMWxFKShwPWJmMVtFSyNuYiYkeXFsdVsmI04pSmF3RUxZOlFfWEVSanMlN0NqRXNPKSI1OnQocSZvejdyVSg7fEo9VilFcz4zN1BjaHZgI3dhRVg5Unl1bUU8fGd8LGcmflZPXWU0YVJGdiZRR0dqcGwh'@; put 'NGY0WmJdP35HNmBiaXcrfGg1emd7anFrb094flFPJnZXT0h9WCZQIXl0O2AhXzFdLmguQGpVbDwvTy94bDhbM3ppblZAVmIhWmBucUV0UncwOHt8cGVsW3FQUlJSUENzaDtQcXhYdUV9ZX10THVTd1JeRFB0YStUTmR5YiEqUj15OiozPWRubWdOLyFeNiwuYjoqZCkjR0daWXVzLmEsSXd5MWsh'@; put 'S1VeUGE9NkppLyQvVSNUXSNIXzhaTTIlWEMuTShNSVAjWyZoZClvNjRUYyt3bnBSS2I7MXglZ1hDQmx1XnpONypfdCZ2U28lbTxqVzZnNCQhWGVPfjVWKXRNbndNN34pdHgzcD1FfDVYIVMrdDVBSHFLIXRFQjVCIiQ8KHs0QElVIURUW2Rlaks/O0JAdkB6UF03Znw1QVRET0sxWk9bLEE3alIz'@; put 'KzJ3JUpAQTVOY1YlMjN0SyM2alt7R01vVnpEQiVZbkE5ZlVsTG5MV1d1fn5OJWxNfmYpSXVDWEVRYSVdVXxSVXVIKC9rQzQjelooeUUqOV1zYX5SU0thJG5iYHk5cGZLJnp5czkyLk9seylYMUlKOWArNCRzNzNhOU9ifkZLeD5+bEddQCxrZFpqX3ouK1hjQDxNYkU3LzUmJGNxYElrOkxga2xi'@; put 'WmcmWDUvZjVeUkQhNDVoajQzJiFDSXt6byh4NmBFazYiKEQwV3xNQWZ1SFdMbCRmREtmJXsqUzoxekQ/QE9CaD4+dHE7JWR1Zy4qKkgsMmZnezN6MCsmcCkhaD5EWmIwRiNjVj58YlQ5VSMoLjpVcD8mXlRBOXJeWlVoaWV8Oi5MTFBkNCpnWFZ6cF9DJEhYX3VIXWVoditRaXBHU1pCMUpjWTBX'@; put 'e0FnPDosIXh6VGF4LmRiTV1EODUpOURKczRNdld6QysjbF4iIz5CZEFJPlNOVCk3VjMlfmBYNXJrZDp0aW5WViZSSmwsPVc3WV9YYDpSREk+bHV2aFROSzNpT3UrJTp1ZUUzUiRqdSYqQTZobjRtZCwjQUBycTNuVmtmTSVXNSxuTmA4bTM2eCpbVjhbfVs8W30yP1J5NlM5XjByYldQOk1YQ3pL'@; put 'c1QxdG1JOE05VUxxK3Y6NjtjZHZ9VXp9RnlsZilBQGtpKCROZ0dIb09hUHN1PW4sT3VjUDkofUwyUFtWcSxpYjZNMGRLaFk6TiVkdl41dF5XJGhmanxLVSNkMTk5bkdVYGBrdiFST3l5bjB0NCREPkljQ1VhZU9mdS8lbi44TGJRdiVaVH5uOz9zaCVpQTJFSFpzRmJVaz46YTdEdX4xX1IyQSIp'@; put 'KWFqXjVYdkZIX21rfDEpVzFWSmx2Z3EzZT4uMDoyPXo1Q21COm9LWmFDc2kxWWRgKDxIPVQ7Ni9NJitoUGltdVB9UXE/QTdBS3EmQnlqaj96bX5ebTFfYnlaJUpvYyU3eSgsYH5+Yjk0SGxsS2VETnpSRlE4Q3FwKWk1Ui97PjgyZW0vfT42dVYhUiltY1JVUitweztTbCJIOzhaXUssQHdoM3Vj'@; put 'LiZ0STNhVyZLTDRbaE5sVlBQbE5ZVVZIbFU2MEBEX2J2Ryk3TWslW0Y2RTNVR181TUc3XVhEQk48dm5UKEJ0VEhDXXVNdzV1L1dZNFdXRm0rQGZKVVJQUzl7NlFZfDoreUMhQSkyfFMiOyFJeXk4Ri9uZ2lCJEA3SW9DeSFafCl+dGg/N09PL2RjZD1vS0wufj5hKStFT3IxUloqUFNXUCQxK058'@; put 'Sz51SmJ9TW4vSSQlS3NnclUrZjFJQFdRY3c3Ui9wXUFfL0Bbfkk3RCxVTCV2W08uS3RsPXY+aWtoaTgiPWooJnZVejdxM3U2cChbJm9manxJJHRZV3JCLFV0JXo5QkwqfU93eHYvR29Jc0wpNHheWj52bWV7S0x6TGBRVlM9bHo8UXV3WUM9N0kxRyVEVzUsfDFtNGA8ZURRJnxpMiQmRF4lbmFh'@; put 'aCFZRH1Te0BLV19keXVkQnZjbnA0N34/a15gP3M+LHRtcl1OJmA/ZHpZem0uNUVzNkYpTkdHJXRmQF5GV1lZVm9se1VJe3ZKMlFuUkBjZntMSkJUXXAkaztia0k6LnM6LCVOZ29Da2R2NmNbT0swNyg9c2pJZHEuemEzRkIqXm59MUAxUkA5UyJlOUlRSzw0QT9MSD5rclkmZF8pSUxkPk5dVGRk'@; put 'ZygpTFZ4Nm5LdjIyYlM3RkImV0Mjfj5aan07OywiU2wlJnRIdnwhKTBXK156PzlwQitIei9QWkZZP3JmcHBDUWxFOVNMYW5dT0NAYCVoZ1UvXzNQdUJHUk48alc3bnZ1Xl9afW81Rl16Lm9hWSM5LnxUP2BVbDo0SXV8W0xrP0lVS3gqYEkrNEp3eFZ6SHsjXXtfPThzMFM7b0Miazg2cihnUmJC'@; put 'XXx8UClWUDd1WEtfcHtKdkB4dTlabztfUyI7NShrLElxT111IjYscSZsfEVFYDF2VDVTdDNtcjd3NlltTUNHN3RAbkJwJkZic0c0YWZJQ0t5ZHhmSGQ4UmUvL3osfDc7IiJheFFNJGNqaEQ2SDpWZE1YW2RtNlltdihkWFUoZTVbOEJJOT12aCNdc05HaEZaU0VBZGQrY0A0Q2ZlX2t2cm1bU0h7'@; put 'XUA2cSo9ISFYKlkrW1FJNStXYm1uO0NgeWEyNlRiLzBMI0g2ZnghbDt+ezQzbWdgNCVHVk0mQWxISSlNeEVpPzJpNjZbTUI0ZTYzUEoqYVQmWWtJeDJOUEtadlBgVihGTmMyL2IvViRvI3loQkhYNWVmNWw6OV59T2AxYFFGaUxTN0JCNEJdIXg1ST51WnlQT2oqVW8sUiNuRX1qVlFmcFlzT0BV'@; put 'cTRKXWA1W24xUDM0Vnd9V1R7SytNfkcpX1ZEaz1rQEU3LywmPmxgZTx7PigqbXw5SVolLloxY1pnXSF5T0hxYzZtU0k6TipxITlJLGs8fiRFdlA7RlYhUUl9VlNgY31MYDgsW34jODowd19NNCQ3S3swQjJVSV8qe1ZBQiZCQT86LGM8XTR3Q18zQGQ8TWQ3XXEzTTJkVWVLSzFlKG1ZaFs1biJz'@; put 'djRYTGAuJl5daUtweCNWKjooND1IVC9JQ3V8d08kKTxbSEI9Km9UJWpuZWRjOWA1JTljITg2KDRnPyF6bCM6MisyZ0FMU19jcilbM2c6RXF3V3hCZCJFVzxOOCIwPS5LMUVYRC5SQGJjc0VhSDtqYSFONUkjXTNvP11veCU3SWVeZmY3PHcoVnpgd1NUMylBXkw6dW92cnFsMTF9RXBzYmhDWXda'@; put 'Z2ghdXskbjB4Y3VHYWM2VFA9K1A7SiJDLldCTjJ0IyIyY35GUGl7UFtkOG9QMCMjV20ze2AybmlMM0kiMiohXlNfTn4mPzR1TVQ2WVF5NjlCRUc3PSpBRWFWPlZhJFlTemgzMUB8XW5ffCM+UmFgcDBtc10lTiVZYmhnSittOypPTHtMbzZCTjBvMEU/OHBha3JJLEZwUHZUS246dDpydyg1YlZG'@; put 'UX43PlJqT1EoI1g+QTpHZGZUJTxAZyZJSSJrTkdjbSo0ZU09NmRPSCRsbzhFPFBtOnNaTVF8eChHYTh9Mn4yRipsT1U5Q0FTSHtiPENEK2IsXWBYaUlKT25NYCVqOl40QUhjKT8rXj4haW1dVXtvSiVFSy8ySD1FK2RmfF5EOlp5NFYrem5CWWAufls9TU9APXRlZEMiUUtrWTpFaXdMPk1DYzVs'@; put 'VSxycUJOSDhXYDFkcnhhfU06ZEgxeFd3fS9rOWVAaEV7LkE2Z0hzb3VPVHdSZmQmI1clalE+T2lReFNZWE1RR1VkV3pRU0F6KmkhUUt0JjQpYEF6KHdwKitCamJ2RTYpPE0jYHJeJDVKZ0JGZCVsMyJZSlNBcTNHNTRqKTRYOTchZ3wjMzZvMjBuZXhqNH4yQU50VUd0VVIiUG5XUzRhTmUiKmt7'@; put 'Mm1rQ2g7LjR6eC52NDJRUEVGbFhqbFUwLmFnUGtmJncmejU2Q1AuP1EjaVBAKCQyUHlXfjcwVTslXU9yTT4vPWA8byY4LHRMPz9TZ20qK2U8Ims+PClOKG5hVmVUKi5HWHllV05dUjkrbmdrJUdUOWBgZixofmRPPyMkLnk4blRRI2M/OWZueWtnWTpvRyFGS1lXPl9kWC4wIXViMyozRTpwUlt8'@; put 'bTJOZWJNVjMjcF9BK2IucygzfHFIZE9Tdz4+TGhTKHIvMy8uXWxofm9yRTRnMm5QPl8vSThEMntOPDdXV3cjInUzfDFgIVUxZ2kzUFpCQGEzaDwkUE0ocUBEXjRiQGlPcDNVdnxFZXg6PTFRNlp5ZUoyPnp9UDJMdkBZa1VOe1V5JntuPlVeJUEpeDE+RV9VYmcsL1IqX2BLLFEkYHFHRGM9Iy8v'@; put 'fFgqb2dmfiheYldMPHZlOjBfREJsMWhpUDIuSzhDXzlgQ1V0TThTM1sqay4kT2AlNihLVCIwVVY7LlttQCFiXnlidTkrTy90YnRVXjYjfSRzUil6M2NKezE9UFJdTHNJW31aNnlMPkQsM0k7P3F8N2NBcVcpVVJyUGgpV0BhW3hIJFJqay52WEh4K3hiUFpPSmZfSSJdJT5IMzd4RCNJUDpfYUR4'@; put 'LjFeZ0VxcTArci9HRFd0anRTbSZeYTIuZ31FfT02R0xmcilyZnJ5P2xiJVZITWBuUlleL0QuOEJwKWVEW0A6PU8xaF45JHNjeFNYSHxUfGh6VT9ISVYkL1dLSmJ9eTlrLFdFc3guejJPSFJWVSEuaylnI1pGbyRdc0I3RU8sckUxLGghUSxXT3pXaVBuRjFDUEdCKip5ZnM2XiYzZ0RhQDAvcHFv'@; put 'dUBFKDdmJHtMeVIyb210RzBhT0J4PF8kXXdTRjwuKEQiQ3x9cDdOInM/QkE+YHluekJwfmVHK2lkT09ZfFtFZVI6LH5PInpHMVdueikrVGkpeUJebilqLlg4SDdKRmluKHJ9XkdTNWM1VC5genEvOW4vPVFRbm46NUh1NGk2M24+flc3UUVEMW5KRmZ9YSE9UVJXcVAjTyJzR3ZGLCFtelBZfWNs'@; put 'V2hxSFgzJEciOSpoIng5I3lDY1NXMC9ncXtkOzRqRX1qSHh+WmE0OVIjNXlxZEk0UURjNVsyV0xSdmZ0eD16dlR2P2h2Y2tQJjwjajR+VSU9VyZTUTN7cV05eVk7dmtWfFVOZSlWP158Yz93QCo2JUlEW09lcHE9W2w4LE94dCRPMnVDQGhzTiFTM2spVD81YEQpbT5wYXkrYzI4Qi94JDVROHx6'@; put 'cT96eS5ZYkthRVU6cWplfGRhOWFFLnVYfTJKeExybno4MiJyKjlxQz02WTpUMEl7TThGLyIuKjBjMkglUipANkk4V2A3SDlNUS5wZ0IoIUYveTY6RytWck5xQnpqbVJUMnhTPnR3LHh4KUhsVTFpZko1eFJlLFIqNmdSOkFwYi86Z2NsKDA4d300aT4+eVcpaW0iTl11bFhveUh+RElRbD5TezJj'@; put 'JEJJOFMoL2tyOGgjYGx4YH18Pk11NDo4SzhlVylTOFtId1NaMVp7aF5UaW9SR0tWaVtQW2VoMDVWQ3ZYRUgjc00wcThRVTNRRUspR1Y0SUJTeWZ6OXMhRHw7OEF7Oj1ZI05YPz49d08mNzVFSFQrPkJiJEVvbj8zcnEzbTY6P34ibjFLREJWQFltNV1FTGsmey9MfTYvPGs+MTErWTRePlpwQTQ/'@; put 'WzglXyJHdGpBUy9jJSZ5TCFaJmZ4RnJKVCV1IldjOGYlN3xvTj9kN2ZYW2diIiRJPllPeDdFJWpTTj80S3FOPWdZKXx7Ryl5YHRKMTFPPEMvfmQkUiUoQzR8PH4rKE9adWZALlhOLmNZIjFbPVRSJjxvdWJmbDVoPXIrUHNqbUBHKlZfTUY4KHcmKTZNe0sjNG55RnA8bDdieUJ+SmIxK0BnQGJN'@; put 'W2g5NzN4c15OYUk9diU3KWh3al15TDdkYXJtdkk/QDw5JXlvcTFIMGw4USYmejIjW0IkaiJ5fn5RPUJwYkE7REZvL0B1JWloOShqYXFOdTMvJWVbbGd8RyNxUDVHQzkiYTokfnVhSzZdcUx9QHxXY1Q/SWlCd250Znl4cV12Tzh7XUB+ZkhvSXpLZCtKZDdHVSVFelVgcTImTjlOIUxVMHY/NFpQ'@; put 'XmI1WUBaMVF+OTphKTd1LmIuVVk2QXBZV0dQQWMpLE9pJXJBZzBxaFtOdWlWfiRpUTt1eksyNnV3NS9gZElwVDMoKzZ6TzpFPDJFYUVGPU9fUCRiVzE/Mj4xeCJ8SWNhWVoxbU5wNENWQXNFYHA8Nn4hfTRjcmghek5QaXwiUFJBQ0xFay5vLDg1cCR8Ll1AMV5qZ3Yyd2UhSiJ5Q28lUktOPyVK'@; put 'WnZ2bkpeSCl7Z2xic0Z1JDoiKTtVdzV3UXdpeX5lbEYkZWFKWUUpISEuLk0qSCY0VSJfdjMqOjlaWVcrSkhpMUpOXk4wYTg2JGwud0dzYlViU1d4X3ElNX1IJnFqJWlqalgoXiNESmBdY1VVbFdvVFE+M0ZfOFs0UDYka05ydnU5ailYMUo/TU5QJUUkc10lMGliKHJsdSUpNS5iMSkzdU1OaHoy'@; put 'TXNCWmska11lYGNEe3NaP3ZHQmEoWSs6bkg9SmRyVjEhPT00fi5IXSlRRWZWdGRjdF5MOnRYfnA6T2FkNCZQfDVEfnppMWFxMU19TlM/aXA7Lj5fOCRjMzI2IzFJISFudjJ0aGRIeSIuVWNUb3NxYC82MSM4UmMqKUdyQnh1OkdXUlhDJjZEJDhGJl9dPDYldCs7O2FabEJ4cGZeK0lhR2h5SW8h'@; put 'LEJ7I3J4ZEFgYyVCV1lfTHI9YVNgTlFQdkx6VndXU3ROOXolQG9mRGs8KlVBUFlQIWlQVEdGP010OCpDOGIjRSxIMz1hKkZ3NTpVXUpqQy8sYkhmSWU8MUxGQmlNSHBSPEpsLlRuQlN4PC8xMCJCMlVXWmk6ZzZ5aF9UV1sqaUNnOFkpNilZZHlPYl9nW2l6bzxOQmlXLDZBekhGJmosQGl9W0ZC'@; put 'cyRLQmtWc3owJD1xV0lyKnh4dm1PQEx8Qy9jWSw+bTc8X3RWIVkma0sjfDpmVixQKHBRJGhQKmZaXiklbCZWVVR2RXYrdiVtZ3AkTUhwNWlIR3pdOjNjOl0iVzxZU3J6bUspbzlmZTBHYkxLalheUChKdEpPWWFFeFpuUmxUS1hbaTQkbUN3PTE1SlovW1hQekN7NWclcUNkQ040eHplQm98Si5h'@; put 'ZGxyRWxuOnI0a0dzfCZsd3wzZ29OSFtpWF5EUnpESmN7TkY5dUhPdzhePS9uLn18OHsxTVF9ZUJbbDlXVCppY0xUTjIvZzp+ZU98RVpDVU98Pyh0dW1qZX11IkY4RDNkI2tBMUJRMkE4KUcsfWhjN0deMDQ9MFBDR1IzKn5+fW1KPn1WMWAkNiEuOXNGPFk4T1ZCKiNxbTNYRUJeRHgjc3xlcyFz'@; put 'UU0mbXl1KUN6IWltRWYmOF57SCF3OjpaLnhhVHs5QmE0UzgiS2I/WyxJY1daQ1Fbdj1LTjEsd0t3eitxOlkhNDVESUkwYndLVjxJPyp+ZVtHeFFmel02XWNLaSJSOHgsbHVMZFYrIX5zd29rS145KmhOdF5aPHdoW2N7RiNicTo8JE1YbWUwOzV3TzVZbTU+aHgiVkZqVDQjWktwQz00ckIrRjFf'@; put 'K1RSJCRtdDwpciUqR1pLPStAfEoycXBga1puPEcqNkssQiY0WUBJX05FTVVjTmJtMi44YkQvLmp3NXRKfn5dQj8oRkJ+NHo6K3AqTSR8RW56eyslKTFrNSIqUnB6XnM0dEVuIlFDJjVdJEtVT3xPKUtMb2lmVExIaHJgPjk+UFp4WSo+dz9RQF14XixmSjpnTTVFUlJWL2V1VktHZGloZXVUOXg7'@; put 'ZGIsa1N0N214enN3MUZAUnJVbl9bNkA/ZjRIczpRakNYbCVmTElRIitDXVpqPVo2KFsmMUVXKyo6ZS9kKHE0KG5ISlo/PFZvPUpgZUEkT2JPdXI1MUJNJkY3SS8sKU5xM0tkalFNLnEpJih1fkVOTmQ+dlc7Z3Fpd2ZpKiVMNW1NTCJ0KmxqXTJJTitPJVM4WVprMCt6NlFdW1Z4ezZnWXR5cHsw'@; put 'XVltbUFXX1FvIT8jeTUiW1s0a0QiNT9wKTpFbj1iZllWfENdV31dNS8pYF04LnV4X1pMZXE2QD10Qj86IzBXU2I/T3FbNz88e2ZAI1hDfjZmI3xgVGk0Q04jNjY9Mj1eS05OWUZxUHJFfSUoZWF5T1lRalUmPSQ8VTc/WkhlOmoiOkFeLlUyUjg1X3YkOF05TDUpbygsSG1vTGdxe1tRWDVsbCxK'@; put 'dDYjKWpkeEYhIzVhfjtYQDx5Xzt9MzRLOnhKUWJ6fXBzQ2UlKlpPN1daOldSQWEwNEsuYEcxJGJEcnJ1QD5saTBvLyZDOSgvQlpIa25ENVh4LnRYaCQzfTEjaj1iN2srV2g1Nz51UlhXUT5QJktnTiU7LkIhaDVlOjlTb3c9JCZTZXhBbHxzRVFXLms7ZGh5TDMkZUJAeHV3fEpjSlgha054Ynl1'@; put 'X116N1oqSUA4Xyh2byNWJTFKRUpkcy93dVAxajc5TWc/ekQ3Y2JYPyFfMH09eSIxeD17PWVuIVtUXndhdX5rZUI+RGlwWiFzJW5ILEoqezdlUWl5JlFBcyY2PTpMemsrJF0lQGtRNE9ldFg3K3l7QkhGIWVIXzByOFNdIzBBVGVhYVU7Z1c2W2VZTVI4KlpKXV5nVnVbP0pYNTNnTmNQVkteJWVp'@; put 'QldhOm4/Lz5OamJsZXcoX2pUeDJjWWRBekpkKDpmUmgySFdNYXZbYVZdZn4haktfVWkxPGZ7IWxhflhaSkBKW2Y0fX5zdGpoPChYRlhlMV1aaWFKfC9lTVFEZDxlNmhNb3lAN3gmZ3FrM0JyZG9HLHJibzBSaEhEY0hgRjdDc25mJGhtSFNGaTJBQkFfXyhFcy55Y2hsdylwfVlkTyQ8ckM/c2h+'@; put 'LFZdUyM2VC5zZip9XU98IX5NJVNIR1BnRDdgfHMlWjtxQE9ubk5jaFNCODd7VD9fO3EuYT1ud3NBfDRPcENgQDhhYUtjRyhhOikleXdedWxsLio6JnY4U0svdEloelpVUW97PXk+LltrflE2THp1UkRKeDRvWGdybCF5KnRYUjVoSEdNcEI4JlF+Mks6R3k9bjtHYXxlbjc7MXBFWTo2cGxMbE9F'@; put 'SkJ2c0lsJXFpYFs5TUV5NityfC8vTm1QTmJwQGR9QDpJUU4oZ2EiPVRxLHZQVm8/InA8N3NMdyNeW3dsNTxOai9bWGBJe3BAY0drVmpqfE5oRnUmXSN7JkVafFBPcTRbfiJLcTQmfEMhL2xofjRTeWtsLzsvbiRfVztbcDNFaypIIzgwZWwjbltTeFpsbHYoTm1HQW01cDY3TUVYejs6USg4L1Fi'@; put 'TW9JNmZ+Oip6NXZiJEhUP2d4TUtNSGNDPVlqez9Rez5DVzkzPjMoPEphcFZJY3dnNEQybFs+eDc/P1VCQlVQSFdnMDQmK3BUTUFFNDBhUEg4aGp8UmhtKlRRSDQ2SU9+N3ZyXkQqKH1nVnBfcUIjSj5CciUhRDx7SVlVX0owMTYvcFJuP2ZlWisoT2NSei9XVWw+ZS8zbSNSY3tmOWtnNlZ7cXRv'@; put 'ZTk7RjslQFc3UlM/UUxNRSZVU15HeVRSS2Q4Sm0iP3QmRHx2MHJpc3pSTCFCNi50MXt1Nl8qeT9OfDtlRGcuMHk0TSksSVVkUmVGSyV+fWsxQFNVailJOSNNe2RCcSRUQiZeNE93QDY9MEMrRU9UMCxRaz4vLD5gaz5VTk8sPVZOVT88OSFJLE93PzVAfFV5SnxjQ3VtLis9NGNpN1p7PTleNWA0'@; put 'I1pJUipudFhVajlgQHNsdD9aTnBLYlpTRXE8JkFieT5VQ15ZM1s3XS50YyVeP0hDV259NyFSM2oyUztWPkhoSnR5V3lyalQ8UjgrOCFLVWlFcFdFYGJnWV0oKHVba3hUb2tZbCZGP3d5dDIoP1FBJkxTPix6YGY9UVVzZ3EsNCtofDZGMGNHQHEzLmc7cjZSO2YqU0g9Wl5gNml2ZDQlWz4mSnZK'@; put 'aHYlO1N1Y2BaR2FCUnF+cFZ2T2pmVVE2UiV0UmlJX0xMPURJRiN+dH1mMWxvWzYybE4vK1tDOmExc3pdUyMifT1OV0Y8fVBJQktGcltrfm8pXlVNL2Z1U01TUU16XnVKfTZDSHB6MzYjI1FTR2gpVDlTOWV1YT9YeGw4eyNaNmpQSihjeWRwR09ubmVTRHB6LitXP2tOSnMlc0dlREwjQ3hPLzhw'@; put 'OEw6b1o5R1ZTOVRrNk8waHdLX1Mpfnlna106LHFDMiN0M2tvRSpDbXhHRFdDZyQhY2olWnZbPjZ9S1BUQmRzbj46WUlfRFopZylOOy5CQ0x2QlFmXm5HejJ2P0VNM2c/NSQ0WWc6cEVPP11YTXY8VDNVJl1fVHJ6alJOaVJpOHQwIzZaYTJZU1pwbEpkIT9XJFFMXSkxZUhqJH41UjtTciJAXkM1'@; put 'WERYJVlSPVNrSTM8aXxJNEVCSmVIeENoO18qb0VAOCpNaURCUSQ1Lmh5dkJ3fTQ3MUhKYEpeeXx+OEU2UHlWQiRoYGtQTCgiU1hfMCshfi88ZSx1RGtneVpFWUxHRH0pRzNHSm5kbl4iL2ttY08zYjxHMX1kREQoNjRIbG8+UUopOyZYUTBATipvVV10dkclfSJbRTA+cGlQT3RDQzR0ZzNbTk9l'@; put 'VSNUSV0mdXk1L0lhQCZuY2F9dl5MSC9CImhmUTFjN0guZSVlbGh8V19QeStwe20kWUV9O3l5a1tPUzNnJVFIeHBMUk0kOTlRYTx2NTxuXzxgdiE1KHZtc19JL244XXJLRUlsMDBHO1N9RGxvRWBOc0VwVzdNTn5vMixTWjVWUUcicT5qO3JlcmRDQXh6NFU7Z0BuMltiVHRoPmREbD0pRVdwW0Zt'@; put 'THZvODhmYzNrPUZ+Ul92NlBxS3tfJVt2RzJQWW8+Iy93LDVhS1BOTDFpK1BAUF4qQlk1Qms/ZW1lQWd0P2U7REJnWFRpXmtGelBUQisoS1Z0b11hbWJFIlomXmV5SyVWNVQ4V3BhJEdqc3JXJlBURzBHJUFkRkJPI1dnOmhxeEpvPDlSensqIl5CMFhFKGhTa10xW1NIJnJKPWpWaWR5clFZdyIp'@; put 'Y3NvI21DbGxaRXc5U2c3QiUmXjcydEN3I3ghX30qKkxSZm1+V0ZJRCxadDljKVtzczJtJWVIPj1uUXkvJHAvLH56bXtpXndNSThrZHVOQTQ1Om5QeXpFWEBTeSFEYGomTkxiTUdkWWN2eHNPNU0oWDxNUHsoTEZjUXNsUylLLjB6PGxCLnYuTithISxnKT1ObzIsZHYoST1xOyMzW1tVXS8hWXd1'@; put 'cGUjRV4vMFp3NEdaT3U5VXEsfVlKfF1BUjZCVVJuMFZSQDYpJkgoUVg6KzcjdCo3cG5RRFZMPFp6P0wuSiZfYFA7W29aQDlGLj5SQztNUkIzNm9lVFFBeyVMSnFucWYjUkpYd01XPj92VldJVytRfltbNWtSaCNTWC5YamIjQnRkfSosVUpWOCM9NkZZYnQlMU1FIylHazpZYDZJWlZqQ3E+TCQk'@; put 'OW4yb2hibG0vOHlabDpDQncpPXQqQS89dGZNSWldYXFEJD1wKD0/cUhwTjUpeTpQfk4ycSZLIUpRPmxBQ2pdPltELz4waWhMLjhgWlYyMUoqKiFyTWhSM2hxSGh3cUs/UytkdUQ6MmUrYSk9V3VOK1plSnohbzldPXYzUnB0P2p5SnJIS3VnfWp9PUJkS2V6JSIpSVN8WnxFSiJ9JmZSe3hmVlhd'@; put 'QzRMYnI6Xkhpa3FPKkNOJGU5RFc6am9EVixFTnA3ZVBha08pYXpaZW83LlpyWUdkUFphX2dXZC4+cWJfRWZEeC9BNWtseDwrIUR9SVJaJFV1Mj1HcSk4V1NvPG9UQjosdGxVQ25GJDRIOSx5emhIPiVEPShsbT1gKU4jfDdWRm87RSU3SHR8aVFOPnd3TmsrUmNfXmBNcXlOYHNIIl1vQD9pRUVI'@; put 'RFFVIyM4SW5gNCNiLzN+Nk1paE83UCtKRFZRbWZ4Pit4aUBOT25LSHhtYmdFUX5NM046byVVMVQ2Vl98fGImSyhZSFU1Li4zQHBFNXpxNiN3PGRkOFBRaF53VFI6R1UqYyFPbmI1UTwlPF4hRV1tL3lwTSRYNiZbaz1lPjoqcnEvT0dOTHhubCx9V2tARVF2MSl5USklYmRzMjhiWjImVWksNjdx'@; put 'Izd6WzBFd2Q6fVZFOlNmVXtDSiZYeXxGY3B2XmZKUEJMVXtkanIvaT9PbH58dDN3VDMvUEwwfHBHJGNwW35LITZ2QXt5a2B0Jk5mbE5iaThJXys8dXMpb1dGbkYsKkp6eTZ5O1goWTQ2Yjo+Z25RLExeNUJ7dH1ZW09QNWJ3Y1d5LHJoQCo2YjdhWy9xbWplRWhVfmlWaVNLPk85U28waU5OTXEj'@; put 'azpabHA6RDRRUnJHQDVPPEBdWlRjcjI8Omp4IzpiTCt1OVAmfWJuLGolZT03aCY4KTteZ1hIKFkpanRTKVZEOkYmNmd5QEpOTXw/eldteWFZUkAyIk4hT2dKKHd4R05FX2k5Y2pIaF8yIXQxVTAvS1lMRzswKkk3cFJAQyZJSUVoX0FXM0A8QHFxTC5xaDxid0pBbCNWNyRiVmFbTzFWbWBnNHA9'@; put 'Iy4+L2ledVgmQnt6OXg0Ymgjdl80Ul8pJlQ3YlZ2Tkg2WTBPUjM0PVUiPEFgXisicm1LT3dZT2s1KGciOCVKM3BOXyw/eTpSX091dXtgTV8vdlFQWW9aXlpXL203XnojOTN+NGhMSjBBVmMvXWc4U1ddODhAXVUsNm4lfTUxJW9QQE5gZyMzPW50TyNNZFNaLio8TnNHV1lNQEExfGlHbn5YfVos'@; put 'eVUmQnJJUipsTntRSDl3fkZPfHhQZWc4IiR6bS9ZUTAwUzFnO2t2N144cCtgRCFfKXdpNGhkOHFMdW85ckhNYSNlSlJ4dF8sL2lUXztpVH1CdVNseFJIOV9SMmNAPihzZ1J+NjwqU3JdbEpwZWR6VTtefVdyYDNnPlZJKEE4VCxQOUkhYzgzaVJUI2NQeHdLRjpCe0lafHAvJU5JM1NySj17YSZP'@; put 'Jn5SfEBgYVBSQi5nRD5gQXNCLEd5Xk98LFhmXkkzK293P3JtJDNLYl1RV3AiRmN5ZjBtVlNLWzN7N2V+Y3dROixYXTQwRHc+eDthYFY8bCZEYkk1Mk9FVmNMY0kwJVRaJG1vWitZJHolRkZFPWp7K3RIcmUzI3ZMN15AMmNAPmpeMWk+WTpqT2c5NzxjZiJAKnZ1bn1jMTUyeDt9I2g+YmhiSkMs'@; put 'JjxXYX4oNyNYOHZQP30lPzQ2XkhYaWJ5QGA7d0FXelk0eHV9fSxgRFQqIUQzNzdZUjJVMXsvYDJJbWM6ajI1Pl5gbHZKb3ovRFF1MHA7Tn5ZYmczXit5X2VpT2pzbCs4MnB9P2c8XiRQa2Iua2RkN3NTOmZWXlIvVjNvLExsRmxdPUdTdjcwJFh1OHBBKEVLQGZCW0tdVWFvS1t7c2dZaEMzRV1R'@; put 'JXpxPSV1eTIuOHVJZXYvTHMkeDg8OHs5bV88eyJJQFlqJClCRGNoR3FHV2RDOC8sLmopWndAYXkyNUVbPHA+bywlak00OzsiJSojXmxRVjRtTighYlkxYlElIUklV3YrKjMpbGpPdilUTjRSYlovYi5mdkJySVtJUkheIXRmVyV1JkQiM3EhZk1TeE9ZTD41cHI+aH5wayhpWDdGVTl4K2BsWnZ+'@; put 'SEYqLE5zdWtiWyJSLzZifVR6TEtMI2k8T35jfW4yLnM7UzYqIS44LmlrIzwoUih7LGdjZXxkJnNqaXxsV3IuMSkqPkBDdjo5QCx2dSohOTdsITk3bSE5N24hL3wkRWtiPVNlaTkzZThKZFE3fG1EUyQ0VSE+Ikh6SVNCL2Z1WFVNV0Nsak87PiRFbD45aXFQSis7Unk1X2BqWEJzcmspJWgoNn0x'@; put 'UHpmaV5nISUmT2xuLEVaTWQxODVwMVE3IXM7Qi9rPkRlLk9HN0N9JFJiMy5YbVZ3Wi9LV1ZudT5nUmslbXY5ZlcodX5QUzt1ZExPbDZCfEA2bHlSX1ptY19WeT8heiVDRXUrbz9aS0EoIXBDOSNrNCprQ3kyV3ZPWnhmcTlRailKOmF8VTRkUF1iO2NPfSFlcmthakl5WHRyQ29ZSyJoTiRgOSR+'@; put 'dUVNcCgjYDRjR3wwOnE6WkxofkldMX57JjVPaGEyeFtIcSF4TEkpXTFmLzZ6ViRdWClscFZuSkV7a00hbGV4ZWU3Yio9cT9IbCY6S3d7RkA6UzZGVXlpd2BbQGdEaF0mVVZHeDRpe21qZk9eMSQ5SV9kclJZIl5dIT1vdiElZDovP1t9e19ZbjtPbi55QEMxMml+VmI8JUc+Z0A0cVh+M3dpe3Ij'@; put 'TFd5azdMIWB1TVA8WGE1fmQlYmJgPyxkRHVwUy5AVjk/VzgocVszLi42LGc4Jm96YWlbYSpkZzolfmRKanxZW0spVXlSVzcsZn1hSSQ+I2FQVzFGVFBfX05waGNPQEdYT2ZCUV8yW1M1Llc5aW02VGRjZG85NyRoXkxuYjEvYyVPdiYmI1BpcjJSZXhaSTA8XnpgeTJCeG5VTl5HSjRkWCtseUFU'@; put 'cyhTQzY5Qk9+NTgqX1pWPiU0SFkyb3FGS3JXXz46fWsjTFV7UmNiU1lKJnBdakFWcSQmTFV7Xk0/PXl6aEZ1KW00PW9PNEgqZnlna2ZJMzchJWReMy9BR0F2O1dbPl98JiR8MX13MXBgZzhhaFgmPVRHRzp8Kz5rTkZbWyhxJVkmdk1hQV1JX1IyIyNfNiN4Z11fRUZ7R3U2b003XzZCUl8hSHx2'@; put 'K3g5WURNPlRuNUU8bkt5T1lHbHA6OFZrWFYwRWhvOTJQaFBdPD9dbnBvejE3MmRqLlEuWGpILk9NJnxqK1JXPz5+PyhqTlMkcGxMdXIrJFNgJTpdP0oqZE5gJk1DVFd+eU8lN2QsaD9lJmlJbDR4eXUxSSVwWkNAPTgwZSZsO35gNiNVbyV9T1NNLFZiZ2k9NVZTYzA+SCJwX0lDPTRReG5CcFow'@; put 'PEdWe1tvTittbU14fGtmc0h8RT5Zb2hdRV5gNHxeK1ouVU53a1tJVkNuMiFaa01ZW300Ik14Py96WnxxfFhnViRaKndkRVJ6QThIUGQzR1hVUyNiRVRyYk1oQiUhTz91Nl5UM3RMMT00SGVPeXA6JT89ciNbI10leG1iM1EqYWlFcCw/VTBeTnU8RywuTXNqXy83Sjphb1t9MDdFTFNIbjgsVU5r'@; put 'YHZaOkhMPi5NKis5eExTXj10Lj8wTkZkPlYwND5vXnFxWSUzZDRQSC9pKFYxTDRpIV1TdyNhYFQpUW02TGpvVlFdcTwrI08vamQ1TiN4KCxydSZiXnJhPUt9K0U2P29iQlpMZDg0ZWk5Lj1NSDB0K31SdEVNI0RCJEB3TGxoOX5xOWxTQG1GaUtDUEw7XjZTQ1BlamE2Zz5GVTJ1SH41UGUoYV00'@; put 'Yjkha19ELDI6WlFILFJUY2tzblZqWGByJmBAb2c+WD43U3BHNzlqfUNjQ2J4RDE6O1pGXig3MjFLcHVFeDw3e2VscWs/NEkwPyo0ZWg9Vz5tM1s4U2xwVjheTk56LG0uWTk/PS54fDB4RHIwMmwuRnVEak8lU1FjUk4hVG9WSzRoeSJ7eiN9c0p4WFVmQmxqNjMvR0FdMGNNUn1TPDYwV3g2e19g'@; put 'eWJPTDhUSzh6cUtYNnFLMz1ZRU0+aUR7I19vcV9UOTw9P11Zd0EoTEpEM3pGXVdYfTQ5X2RwYl0lNj4wT05JZkhOSVtaIU87WjJAeWFCdCt0YTB4VS83W0ltUylqImtPSW1sYmE1ekBMZUltbDdhQ285O19EQyMhW3lAQzRoUkEvVkhrdGl8YFVib0BTJnF6UTlZe1RHLExPQmkmOlNwTHBxX0lP'@; put 'WkhzPWJ6dWQjYGtjTS4yWFgvKFEjS3NiaH0/SHA/ImZhUXMwSHJMQzY5SHA1Ylg4Q3ZsKnFxMixeUixgNUk9RyJ3fjZDek9oZSh5VWRmO2ozSz58OFAuXig/X1ZhK2VYUXxsdC5QXnhTM0pLMEtZZjRzSUd1OTpgfiVXLHk0RSZnKj9VQFhCfG1xSFlrPDplO2t+ZztwfHdkXkNoLkU4ViRdQmhy'@; put 'MGEuPCFobWRkPjNnJjQjJG8lUG55cjA7Kz1MdWI0ZCxWL31NRDwzcCNiMWROY0t6YE1uU0gwe1Y8ZVB5SDBgbmV+UkRNR1JZPm1LTW51O0haOV9gRiZgJl1ATGspT3lLSCFVNTNwNlkmX259QHR1KDxiXipKcnF7fE1rIzIlcWl7TTxobGpteyt3VGFvW1hIai9idywrMm5vW3hXJmV4V1h5M2lW'@; put 'IjYyNUQyaz5NP287RHFifC8vPT9GWSE3VitqQFZ2XV9wSkdhJT0uRVtAPHREJjZSXl9JQkZ2Zno7LCMrL1ArJm5rVFdkNEJPaXFeTTxNcmBrM1d4TG12bWlHcChnUWdML3VbYDM7Rj5UP3czXlo/OG9kVHd7e0VNQmhMQChNbmYrL29ReEtgMFl5UEg0OFlRUyJNIUErX0VAeCMiNl41PzxsfiN+'@; put 'Mzk3citBOmF6MVgpKm8vc1pgLnRVUWxJPGVOR25sNWtROEhCWTxARjJ2eDY5UUl9WH1mdGxyVEV3fHFvJlgpQXtOXyRZTEtIUjZUSjFuVisjXmdkUihJcXpmRmQpUChCRy4wajMvUUU2WSgkP0slYCgoPVpALF88K1NlJGNrczYrQFEoYDlbVGxxSFMqIUtQT1E6N29PUWBJZVt6MiNKXWpmUD0s'@; put 'KjN7QDdhN3E8M3lPQD8/Z285PWFAMUA2OXlreD80VyY3ejxuMi4zK05TQ0BQM2JgOFBRO2lzT1NefVQ1XSNPeW9GNnhRemMqSnUmUFtYTXwoemQkUjE6Qi5YcGg6WFYmayw1OjJpWmBiWnhQQHUzYlhaelVpei5HTHVQISZTRil0NEdQRykqNDQ6fjUzbCo0UiwuTUhTeTRPa1U1NTNLO3BgKDVq'@; put 'ZVtnTCVkSlpdO29FMy5PKTpNRD1nQndZYyJjdS9xVTdSP3UvUD9Ea0V5WVl6MStfcG40Pm9XPDchImdGJls6ZmF0N2IxWjw/IWVzOmMvJjV1Yl06Nn5TJndtei83UjFbZzs7VUd3MHZxSXIrdF40QGxNeEFFYD83IWlofGlmKU97eHtPVDg6WF5NRkdqay5Gak1weHZaMXMwQWxXXnhjSW5xcVUy'@; put 'eyxzJHt6UDVscm5US1lCSns8JD9uNF4lNmxEQDc9d2Y2VzdPRF1BSjlgP3BjKWZ6SXZZRT9wYyllRztoSUc2a1tRYCVTYW5dIks3WEBWc1B8cU5qRlo5NH1aOzR4Mj9eZT4lfVNTeDVnL0s0Yy9Ne1suayphekhgeG9FQWJpJkNqT3xxQ19TNnhgLnx3PE9iVihLNnNoOHg7NFRdV2taNW4wJXFN'@; put 'JDxOeUQzezZTJjxYUHRQakMxJkAlK1E8NiJ3JTcpaWZjUkchR2IuJXwxZExePDduIzJwMD5fKzI0KTYuaiUuPUg5UztLa1EhcDo8V1ZjZTQ8Lnl9Yyh1Sl5yKmgqIiFuXllDSTJTL0V7IzdYREp4RDosZSZQKV1gfENTZD4yZHljczVoREEzTjNYaDl4bSVOel8vUTohcGpedkJIQH4hZVFfYXMw'@; put 'TEVsSng0dCNRYzNTLzcldixQO2xdRj5YZG5pP246Sz9PN3BbN3AsK0VXOj02TWZEfl9JYnNeY1RHUHxHYXw5eD8kUmt2R3hjJll2LmE6NjRVV10rNUA2UztyWlpYSW03IlZgP3AkPDxwJkJfZEpOdXNxcyxzcjlsZC8obTwxQ2lJY20/enB7LlImK3VfXWExbkM+UzRheHVDP09pKVFfbk0uQ2Qh'@; put 'aFBEalY8N2BeMHc8NTB6aXYuK0hYYmVRTHd7fWJnOUcrTEtMWX5GIWEiejU/dzRxeD59LHZJfXBbZiZ0aT9gWEBIYHMsc2QpU3Z4InZBYypDZ3glNChpN0QkLHRmPmFxVlF2fUchbzNYc1NyUlM0UzBpeTVqc1tsIztuRE1XJDc/dCxKTiN2aFtaRypAXWozSV9DdnlWL1hNOFJCeERaRW1YPitT'@; put 'aTcrKipnSlpwQSh0VD93M1tdNU9kOytPP1hwJWAmOWxbYiZ2RDluXj5VX0Y/Zzo1NFRxeHxrTmpUZFBHP1BpVChIXVJfdGdPQzcyTF86Tjd7Z0ZEKEg8OEFbMWRfR09VdG5MPGpHVDdjJC43NEVucFlpeTRgeigwfU9jI2ROPip9SlQhfH1oflExSEQrOH59YVJwamh2bmA1cDAvUXQ1eilCIndp'@; put 'IyU5SXQqP1NORXdqJiJ5P3YpS1psT1pTZiREPUF7SjRbWjRvcTpDbE9tZTRCS0NoRjcjO1hKIn1ZV0MlciFYUiI8KSJxaUs1KWRJZ11aNEYoREhpWWM3IllnQzkveFdKc3hRR0BVQDJSbjxpRjcjSnY6eW5ueEZIalZRJktabFN4MUw8JDVBR0JJaXxxMVtOIndZTDxISEpMS0BhSWUhPlBMKlV4'@; put 'VyFPUjE6U1BnQHA0U3l6WkxkRiQyWTc/YEsiUlRIYioqRC9RO2FANDVxOUpndX0peENeNn1QcnljSjpqOzFrZDhXeVF9K3NsZThMP01oOCEmcChMfmp2PXIrc25SU1ZqSlljfGRmW19XQCF7OktxdyRJYHZvVExUUTlvdSR8Wk9scEdjc31nL318RVFuNkJ0KWM4d0JvLnRUbiNMVXt2fVhYV1JJ'@; put 'SFRkO1UpRzhUQy4yNm9ObTZ7dztKNGFfZDphVi40eHUpbTRFXnEmQDN2N09BNTFKXmYmUSVwdWtZdFNnP2Z1PkBwS1NGRFdiWiN2OSU5L1tdbzxsU1g3S2VOeHUuST9xJS5CZjUpW0d1SVd+eXJHPTRwI0NjOEdQJURBWDFSdUVdUGNBKH15WCY8MC50YD17T1omfEMuP2ZYQjQ9MWBjS2RlbEB0'@; put 'Z1t9fHUzT3pvJF1abnVEQlArViJJQCFbfHFlTGhiRiV5dmwmPWdRRTJLailIUSlfe0cyWV5ic2BPRk1hdk8rMk5sSi99VHdsQnosYChwV00uKjQ0d01Ia1Q+MUBgNF8hfX4hclVJLCNnWFs8OHk/bFUvWm56RTomfEwxWCsoY0x+WWl5eH1hTDp+fXJvJF4lfDRCcV4pUnFzemdIKDQ2fiU5aTh+'@; put 'ITghO2E8KFV8ISt9Jk8uMFNBXitDaiZPaz50LyUrZ1VidEpuQ21wODkidkxqQVguP2tseGJ7WmUwXnpDX2kyVzBqWWNgLFlBMmNSSGZieDR2PXxIXiUucFhpR3Zubn4obkRqTn00YDU2WEhBV08hRDQwWl0rOVNQbEwwcmlpUnZNKyokRUdGeXZ2TUdIQXZ7SUMyL08sZ1RdejJCW1QsZzN8bkEy'@; put 'T1AxR35qUHQpZEtPVl10MGRKWDxHLCY7Z1AqOXk3VkBXN0NVNUdZaTs7cXNsXlk2fjwhRlFtMnpGL1lkQl5OPUltPHY2M0s+NndhWiZkdHxnMilxWnxBamhrNiZJYz1FLFpuakE6Zm9Ae3djVlJTLGZvXVFaeXw+W3xndlcialsvUzhZbnJefjlwSSZqTD5YXiZPMD12fkkhe1F3KVhTQDFXe0x0'@; put 'USRGKXI9dkV8MVc7Y0lqdix7P158VSwzeXlie3N5R0klY31iNFYhblBVL0FkQTpxNUp4TDc7d1tmXnxMXVkzWkIvQFpsUGUlQjBCUURObiJCTExKM200ajA9ei9oW3t5UFJdKj1qUXBsNX5GcGQuJHVyJS9tLjgrW1psV35EXSF8blRkRiFGdT07ODFsPVMlY2peUFcyPXpmZmMkeSpJMlA5S3c7'@; put 'OCZid11tT1lhd3lHS05JITcpY2lUZiojOz1NeTVuXjdnMGEyREo/a34pYTpATmllYFpyc2cqOGQ5QDkvLkRCXXt0d2tJblpnKmcrTihPOz9+S0NYY1JmODEsYyR2JSJVUjomcDt3V1RuTWc9dCwmeDNtfm99aE9nUiUqPTQ9SGQpZXFNOThgTmh+YXVPPU0+U3N1b2FyZyFdZGR6RmZpXmU+SDpA'@; put 'L2VWPkMjal57eERHSjlVZ29UYWhpOjYsd3hIXTlMKGg9e1g+TD1AQmhySlJkOyxMV2JmQ3RfO2d0LF40TH5DfjBta1YraF5tXVVYU3x4TlFiYDZGRTMyYzo3amAhP1JKPFYrTkU/RUAjTFsuPCRuV0Y4fH5VfmB9cCpbe15GeHF6SHdYSFRoNWRJVj5gNjZ3NSJAUT4mQVVaRV4oQ2JWems1Vlp2'@; put 'e2QoUT1qUXl3W2tybC9PbDdVb3VTQzUhMlEodV9dVSFQMEJddk9bPnwlLkB+TXlVNSwvNl5IalFAZEUseiwuL0dmaGRuS1ZPcVUsdF9nI1VPP3Y3TlokJVNsfjIlO1lqUisjdXd4fiVBVih7STRvbUQ3bzI2ZyRmTDQ1amc6MUBzQCUxU15DX3NiX1NOeGxiT18xYGlrfVtUQmp5Tmwjcz8hZ21W'@; put 'Xm1UYHBTKH4/WFh4S0c1Lm1ZJHpCMT5VczAkMHUiezgrUmRJeXIqMSxyc2wwI1glYiMrS0UvIWFHVVFHPVZQNCwqYGFHN0xtNHV8dGdKJW51cjNnVmQjLzhATm0xSnx0fi59VCheIjVscEh8aUorIj9sPD9rbVU6TUw2REIvJTttazwucVBJRVBhPjhnanNMTUBvazgyYHQvRWI9NyImPnh1cjRl'@; put 'UVs9blYrWVJbKWRWcz9uXW8wT3gvW2Q0UC4zTUlaXXt6bkNHd25hbWFRT1QwNDhxbjJAJT8xOWhraXs/cHYzeT5PblFWPlJNKFZgT0ZXM1pAc2NmVGEsd09hZTdvMChLOUhueD5PJWdxWHc5TU5zSSw6cGQjbDQwR257KiI/elRNZ0JgdHFfSj40WlZOKzt5STlpTTl8N1BqbnNUbixDckxFWzlE'@; put 'KUxBbmIqQUNDRDMobis0eGJeRlhBZD5yK2U4OEFFODJ1cXI+ak92Oy9gdTp7QnQod3ZxTyQodypfOT03UD17VCEycWt4aThIekhEb0lFNi4vZClPaWE8X0klVUptZTltMGhpfik/JD5UYS9WfjZLJmNNJD9yTk59TWo+XiE+ZDM9RF4oellLLGswUzhHSkhCSDxHQzBBcWM3SlRIVT9aTnlYQ05P'@; put 'I3YwNFZNQldWYSp6WkoreC9mTDsleiZaMW47WnZ9OWIyTUlQaG5bV0hQe3NtPG9EKXosPXpUMipXSiw0YDImUisqWi9BMGxWd0V8cFFNcHJra1R3LGpJcjJ7RSZdbzZLS1MpM1dZTUhueTFlfW1yfFA2fCVlZmQsTG9MJmpZaiIpSmdTdll5TjNdVltXMzg7WXNZOW92XWsvKlg9Q3F2THByRGZw'@; put 'PndLSnElbTN0dHk6KU9vYy9ySj1MJExSPFZZdX4lfFA2M3k2Sj5qfm96VWJRQ3dybTMsfEAuODx3N1JCWCRLK1VeJGBuQi4kPyVuL2tebzhpUVRkOUchOUAlVko3YXkzTGZGU0BbaXR1QXk0bXEqJGpLbCRpQC87eHBDdUpSVFg9WXQiVVsvP35ZO0Q8N2d1WTttQTVhXSUyTH1VfXEpdmBYPGom'@; put 'QnsmKXdIUyM9Y0FsT1BzIzxaS3lQYD5JO0BPO3ckQCozMGJHO3trJiRwLHApJmI4W3J3ZkcqI3BTPn5nZ3llSzRNaUpEISFueXJdU3BeVSE9LCNpPmE4dVk5Y3E6WnVycjBye01Je2FIcEszJSVxQH0yWiUmKVNifDFjUCM7emdiXU5UT3FxTSRQIjBuNm1OeSV2LzU1c2I+az5MfjNZUlh4cU55'@; put 'JURnP1pdXlghTFJ9Wyo7dW9SZFtUWUJxelgyaWsvQGdjNVVZVkE6JEA0Oj5nfEZpREFlJDF6Z1RiImt0M1k5PVh1YUE+UGVYLF5MM05CX1JiVSFKWVRqYTtReXFnanJ1e0B9MjBGYGs9V2k8eHVpbTN2QG4hSV9kZyR2SWl9N3FSMmheUUduYjs1SVpbbj83SUl0JWUxVVZSIyoraE9ITDJTSHEl'@; put 'alpSa0hKMTAqQlcqV0V+R29dR3FHVCpUZWxRR3xrcnkpUlVoWm5KX2lrcWshUWo1bDp2KyMiWjx9LGoySy46MmJqK0lvL3UsQltKKEs/KHh2c1Mpa0xMSlBFYCVYOXUrTDA6L0o9QyteTFt5UiZrNiEqS0AkTTMsSntYSExdVk1OPHY1e2BlLG06PmJaM191Vmg8dTA2JSVbJXg1KShUaj1nSTlM'@; put 'S2FOZ1BpZWhmIm81YVVBcVVwR1g8MHNAJXI2RzhKZ3xHPyF5QCtMTHl0Q1lKW088KFRxIjd4ZnleIXQqXl5KSDl6ZnleQW9jLEsjVXlhOzB7fCQhSmZgTDdSYmFRTkl9PmxwQzk+KSQ/T05BKGBASFgqNkZ6cTc5TGdzUyhvcihGdnwiSmpzV1g9VlZndz9UYnY9fVchZkZ7PkgsRW5dYlZOREl1'@; put 'KGdQRnJRe0t2Y01ZN0s2IWkmUGZpNyt4P0tEPXhKYVR+fWhKTDQ+VWJPb3NqKkZjaldEN0JMaXVpfEE7LjZTLjhlM2ljJS9RYGB1SUtffF5qTzlEai5DaCo2Mm91VGh4MWVjJTFedGxHYz9TbjNFbWs8fV9jXz4+TmxDPklmKW5OJEMqbUp7b0UwbHo4dWs4Ri90Z3A9N3hCJmpYXmsmXzZ3YitW'@; put 'fU14WitFcVloZWVNZUA8YWNFPSomQCptYEtGY0Y1Sz8qPjlyJFMkdSkreDZULiNxM05dc0tUZF8lVHIqeHxAUy43PSshem8/a1NwPDhnVUdJMyVTIWRHOi5QK00zXW15NzFnb2dDR1FXSjclRnkwI3csXjRMaDEhTW5nYSt2K2E7Uk5MO1dYaT4jVFhGR148NmIifSl+KW5zcyghUTkkWyp1SltX'@; put 'KEklIXg3M20qYjksPWM8XlU5KTYvJUVUPFFEazU2YUUmQD5vaCQyOHw1dUpRUl08bS87NTxDTzNEMHl4SSwiPFhKeTc4anhESUhRT2djOnt4RF5dfj9uUWdjJDRqWCx1K0VyKSg0azxTNihke2NEXVF7e09ISTZASHBjXV5kdk89SFhhLip+M3tWcD9dcjclfXU4M3JnPyV8Xn1mc2FTVT9dQUtW'@; put 'cHd0UkkyM3t2WTh5XkVnQl90UW41SUpZUk15LHR7KT1fQmhjallgZzxEP3YjbDsqPWc8aGpmKTIvdXJ7UV4/NU8idWc5NERgNz9vK3FKcTNxVm1pQyt9LHA2NHFWOntDKkVJR1lAQ0ZkS3VOZCRxSD0sdF9FTVRSfjkmeU1iI0pxbWNoKjs8RkRvM0BeMUxKWSRxe2NUYFtuMiNSRnA4KUs4Jn5u'@; put 'VXBPaCNMSFlOJXJNfm9dYDVDWmpiP1pfPSxiNnd9JVpWbW4/aGRLMmJtaCV1S3Q6RU1mYW1wbmllW3kwUDlyclFlfk9rJjZiYTMxISEmfFZ8eiticj9HUCI5ezc+RkN8WDFPbTt6fkIiJWFqXitWRUEmNEtmdnFAenw0Z0FKQyFGJnlMWkl3JnNGfGRzYyVUVSlickJXcUxKNT1kbm1FJlFSbVou'@; put 'VFNdK3FMU0clKjxNNCRlUXFXTSZ2bHl+X3ZiK1JdXV5gSkQ2UltGJUVrZW1hRT9IcXd6WXhyKzIxYSMlJj5RRzopSmA7Ny9VNz13diUiTEopa0lwfmJvLH53MUAqajJydCF4TXAhJGJWcHV7Tz51KHhHVz4qJV0qSChkUzI3KUBWW3xiKDE+Yl92ayE5Rm5BVU8sS2loSDIrJkU4SF44Ujo2Z3JY'@; put 'VWE2OXJWTkY3UT8kc2g4IkpOdUhxemB3SkUlISFsWypSfFJSdWRMT3h7K2cyfSE+cSQ+anlIIyZ4QHZPb3MwJis3c1dzO2J7VmZGKkN5e3VdRCxBMT9GTGdOYTFBcGAkXjtkLmk2V2o3Ly9uMzhtTj9hUl09TzhbWXVSXUVJSjYkMmtvKktnTj4vO0krJm5RP0BEI0VxZiFJZCYwbmcoNiY+eWB5'@; put 'eVR8JjBbNmMsNnh+XkVxR1tNe14hJmAoQ3F+cSpzN19UQUtCeUIrTypZRH1kL2pKJCkycGAkOHhmcklMM0VURlg1PS8wRlg/ck5OWi8uKT1SQml5NipTS3ZuZlFzVzxlPjwhTDZ6MCIkYGtAKnxxSzZaVndsPlkjLHhHLFtVJSZ9aSppazdoTmxKMk8oQG14PExmYy5gNGFRZS8+UStFansheiZb'@; put 'Kzl0eTtRaGVFLkdoSy49bCU6aTBkOmZkZzpBYmFveSU4OmkjZlk8Mm11YWEqNVJSLH1KdDBnPWxrW2RsN1Q7QzM+LkA0TlRCT0k0ZSw4bntBeiZ4KiYrdWIoL3BdPX5DKEZAYXcmOEZDczlENi93JjtAMip9NnhVYURFWkNHLD1ePHRxXk4qL0xicXV2T2pASzVmOjVtV1lCcXslb0UhTT1AV0Al'@; put 'LHRnezJCK1tAVlg8Rl94M31SLD91M0ZWKGUvdkMyd0FdbFgxfktpZzpOcyIoW2BJNWp9eDVdMixbWjNIQ0lOX1M3R3tROnJVPE5bRjVTOWBwQGNPfmZuflVGP3QlM0VeQltoPSMyNjUpNy8uXlZlNU9pTTp6cGZPczFPS2ovaiMyeDVSaHtpPkREMkBebS43QntAQXUjN01VPFVbMmNdeU13M0dx'@; put 'JiU0cVhqXyYoUUNJbFBtPSIwMXtINVJlYzlsLHxFdHNAW19ZInJqIUsyOVFyTzhOKFVBTHh9KG1hZztLXzs2SF1gcEcoZ1pqendSNXtYX0UucmhsNlUlZ0RvMX5MRHB3STd3LjdvcHVhPzdJSXRSPUxzfEUoSUw6KSkkYWo9VWlSJFFDNSErW3I5YG8mbkprMjg+JGApbEdgWXRhdGFkNmRnW299'@; put 'N3RYND1uZ3RsOzZEMT59KERRcSpFbWBRIXdqQCpeNE56O3suU2xqSG1xYVteNHV+T2hnVE5PXUhySnFnVjVWaDdPRihPJVBqM0h4Xi8+RyNPQjlpaFZGJkk9b2ZLcDA3RW48NT5tTU9pVzNrOip4bC5tSDxENDl9Sns8NjQ9UDFWbV5GVW9Kb0ZMa1d6S3NjWDtKMl43XXlmQSg+ekFyYC9DTGhq'@; put 'IURJbFB3c1kqbjVjNyZMOEgzUH55LzFvY25jcn03L3gxZl0pZF1OKkx4TG0jUDJQNFpZb1E4bTFYQ1VZPX1MakoyNyR9JU8lUCgwaG5zbz9LeEtMfStpOWJDaXheYjNzQHtFZHc6eHl0JW5zPDN8PUppPnBdWFRXVXNsVzBtND10WjI9TGl7JFZGWG15aFBlfFV7a2A0dGFpLDsmLFVNUFZLaHk+'@; put 'Oj5UZC80LmxgRHI9ZCNMcWNnVlZOX09NLj95X2EhNCM3alg3P15TQUpYPHFDK1QoWD9ve0NfTz55NTQpNkxgNl1bUWt1KHliSE1ZVGZwYmUiQ2kvYlJqOWRNY3F1VlZvTDgrVEt9SWlHYXY+VD95QDE+eWFZWmo8YWRNWlhNN1h6Q3p9dCZEVWpJbk1YX09mLEE5KGpMPndMImU0TChuQSROSDBZ'@; put 'Yj5CcGZPVUx4SGcsdjl2JW4/Jm59N3s2cmQkdkdjbFErNz9kRH10MHRsYXJBUzxMQkthbntISmp6MHwlUjc1dik8eyM/cj1hVyY1Z31eaXN8dThreGImI3I1TiJMfjkxaXIxcEFTcnd2L0FoeW08ZnxaU1UqLmp2N1ZCMn51fEt7KnY+Q194UFEsfEBMfko8NTRzXnImbFF8WD5YX3hSISN8VXpj'@; put 'OWE1OWFDYz1kJVh2ZTk4eCYrI2BrPSEmY0NoU1Nwe1p3Wi98S21gNntkOXBqK3g4XkJKUjxHMndMWE9WUz80Xy5UO3k4KntscTAyMUN3NU0ydzR7LlZRLDppd0YlJDQqYk1PTFpPZHRuKmZSe0lTVnBmP1B7I09+Qk9fb2JRVE9fK3FZZiVYT2tGYz1MRjQzbDo3fTxtXlNkTnpQaCZuSnhvVWkq'@; put 'N0pGQGglK3VFJiRLJWF9IUJTKyNoOl91X1VAbDFlVCV+ZF0wOUYzOlUoYyZzYHVRNyQ7Kko4Xl1aR1k+T241ZHM7TnNCKHlaazUpIVouTzxmPCp4alh+ckUzXXdmeXQhY2BZajZyJHlgKlh1JVpaREdeYUg8clcsNCxBakl4cmdhTTslPT5HdXhTRykqJXF2ekdNfGlhLis/Tl9gV2s3KkJdVW14'@; put 'Uyx8L0VkfWdhYyxxWm1QIiNga10zenBbYDt2eEc3fTc/LmtpX35UVDJKJmt4SCYqcVJTbVBbcjNxVTdxRCo9aXJRRyF8fXw1QFdAKkQyalJHSkdlPVpIeXJRRzJzXmV2PnReXiUlUCx3TV4zVGB0Z1ZmZWtXX0Y8NjtASzBWSXh9SzNZeXF2JDomNzN+TzEodXVfUXtPJG09JV4jcXQrVzZKX1s/'@; put 'TlF6RWZxR2xEJiFfLD8+PCIuJTQkZlIsMi94LFVsVSFNWkhUbSgrMkIuIVZWfSo8Ozx2ZG1zbzFKJiFlP2VeYnteVDBgPU9EXSV8NGgwO2xhZX1dIXxqbVhqN1haTjI9OjFtMXhTOj1LX0VUPGVnbz8hSjJvZmFQMyFnL0FyN1Q8WUBDaz42VypiWmg3QWg4alA/NDk5PFE+NGIoZ2sib0AvQV0p'@; put 'enxnOlhjfXZDSlEwUT99ZjFrPXBAejNGaCJPTG1WZnU9VygjOFZscHtVMV9wYE9LSTZGfHw7OXlMamBBWHpdOUo7SUJfIyV8bzpYWE08ejtFbXg9ZCUxKlNTSmheQHYkeHpZdWx8XW85aXFgX2BiRk1qIzxAfCl5bm5zbktKKGxMMG8qIzRwRH1WNXtYVTddWnZ9PElCOn1teywyU0BiVEszYFVI'@; put 'TjVuPXU6dFFsYTp0OHFoRWM2Vi4vMUxFOFMmeyo9QjB0bmUjQDFOKXphUyFmSyxPVUU3YEJVWFZmcFlrYFN2MXByWUY1K19MOGVOTUZfOzUrUmMwU3ZpL31YMyxXdiFIRGRIVC9bIyspKlVhbDBOXmVzdzI3QntXMTYwe3J6T3tDT3FydkNHZCwqW0lQRThbN3o/PFRwVUl2QlcjSlNNeWl3P0os'@; put 'aCp0fDYzZD1EUTUmNzg2VmohRUdUcnZKRioxMSlVMUw9b002UCt2L053W0o6cGZPW1NwSE5OUWEqTnBJX2VKLDJ2Tz16OmU+XXlARnNnS31aVmMsX3J5K3J1dXFrZ142aXMhNStDMk5HQmZbZ0t8XzZQaG85THpTQ0hTPjAlKTR8PF1FYXJBYU5CP2U6dlFtcSMkRjNvPiQhbnF4MjJAJC9gXz9g'@; put 'V0ByInZKaWpPe0EoWnlDfC9iWkRibkksJl5NWjxAMV10M2spMWM+enZuV2MyezxJalgqVH18WiFKfXpCIURHKUVVWDxFSTNARkB1YDV9fj0+YUYjYn1AKXRSKlBqJXR5OnluTUl0TXsxdkQzQEIhT0hpbSFPfEU5VGVnOE93V3pARiF3WUJ2TFdWOHtXS019R2NEYFs7JlZ5b1h5USZAcmg1UFZ0'@; put 'fDhtU0QvSUJXL3xUNSpkZzQxcDBKJWgmUGQoNmNNYVsubWB6MmI4PWFEXVU3O200Z3A+ZUVrVERuUDlza1Q/bnwoUkQ2OzQ6NH5JdXwwR0lPbEtZdzN4Mz82OHZSW3k/SzxxQHBDMl9zS3FPZDZ3e3xtbkVvO1J2VklAbFIrRUgwfl8sJT9vX2RVRWNlVUV6cCYiSXU7Oz9dRTZgNEQ8alBFWF54'@; put 'aT9jeDc9azg1JD81O1Z+Iy9tZnYkXlEiRjo+cGV0QTpzRkFQKHN2aX5RfF55NzUkIUUwdT5KOWNmeHtlRUV0Pzt3JkBGVHs0QHhPMD8+Q3FXbilednEjN2UmKF9tKi9jaE0/T0ApYFsxSWB0NipjQmZIZzkhdnVweXZgRVhFenBoPWp8NyxwVVl4U2ZNPztbbCE1L1o2LGgmSyoyNERmaUkwSXFJ'@; put 'KCYpdSshR2A3ZHp4Lkd1RSVaIVhNSF9NKUl6U192UihUWl9AS2x1M1U2YEBLWXlGdEMmfT5uWEt8Xyg6PXx6Snw/MHUsRH16PzA8KzJnJm1fQ2lSPnByUyVsI15SQ2lXaCxUZTFDTEFAPVk7QHVWP28sdjJMdlpwWzlbWEcmbyU1IkxKWWBMUWVgRmJARVg2MSY2ZHQ5UH1oWz1+KSteMDIuT05l'@; put 'W0h+czVGJW4wITRNbE1NbGdWLnFxKz9XMkA1NXVoWnlUUChqay5BUEkpdyZBaklFNHY7el4/KnJxSHo5eVJrY05VdU1XUjNhMy56TVtwO1AyQ3RYWy50a15qPVU2QFtddFVORmVOQkx2JkcpdForP3FaLH0hMGJ6Lk9PRmdmakU+b01YQlIiTW9+bzxUN31nMF9IakMrNkhVW0ZacysrMlJBOUJr'@; put 'PVNWPm87cDx8Vy9GW0ZHPzhNRGtMXylmcXM/ZGFKRFl4LkYxZUFXd1RqPnJDb3RQSFlLLD1aRm8rKCw2O3JpRlpSRzpYOGloUUVAVWxhPHBaWExERmc3fExTc0h8NURdLmVoSlh6e1hgaj5PTjdlWTBtWWhNaHFhVktBMWV6VCo1JUZkdUU+Uyh3I2tJR1p7NmYie3gpXyw9UzU+TVMmOzZBbSJP'@; put 'QFhWfCR3KV86X0FHdUk6QjUwQFdqYj1PPXZpTj9iNVFIJmBBPztKQXEjQX5fenJ+Z1twZjlQcyFEb20mfVZQcm5zZiU9XjpZW0lsbXA9aXg6fHhIZ1sxXXQmYGF3NGhxWU1xUHRQJUw9ZCJxI2laYDozenUiTHA9ZDxqPil2di5QaFZNOC42T0I/UEo7T3spMEw7VkkiYyVWZHkxaGQsUEU3SHdZ'@; put 'aGhkdXlwOkg8S05CUjdKV2gvfEMqPkd1SVJhe3EqSi9Wck4+OnNJQ09hKS5UP10oUm57NHAuXnNJQlImVTFlYGFYfltOXXxlMkN3OjVYRVh4X1t0RiUrZnJ4eWFQViE7RnlMWi87d35RODBBbEcqK15+RGNdKVNgPzU/PXhXPCN2RC5hQ2p8JFRVWGdTPldYPGtIWjB8LypYUkRneU94PiQpQExs'@; put 'SlUwVTtpPUg6ZGNPdzg1RlJeRjspRmI+NylWcXxuSlM9ZVt7Uj8iUyEmQCokaz9YfkZ0fGQ5Jmc7Q3Irc0JKSkNycT5PMEU5Wy5xN2doOmJ5Q15Tb1VTbGgmcm5VTnJRVkc0WlZMQltyPEw/SlssJjUrWGtIZ3V5QjcsSmRnWUgoKUN1X3xSMWN5VjZ2OkRvRk5TTm07alhmMlpmYCE5I3RoQF0/'@; put 'RU1DRD48SXpJYHkuNTA5dkpuKmJ4ZjV0S3lKTWFAXmxyZUghbixaanN4Sj90THlgK0tFaH0zLEN1NVlHSXd8Um1mO1VLMjlja3RrRSkmQyg2M1ZrKyJSSE9vJXg+QWhPNDFJa0k1RV8pXXJ9RndfP2ZhQFg8Vkg5SWxhU3ApSzxIfnVRMjFdYm5HKU0qVSoyY1QyMTooZ3wqMUppUT02QXAhMVYm'@; put 'P25NOyQ8OVkxSVpIbGxsUTM+ck5CZjVRWSZhaTROJHg7bDxsMDcmRypCe2xoODsuPkAyOlNDRjg8XlZ5XW1eY3gyLnRAOjZtbCZBM2YuKGArLm5rRnxTKkJOZUVbN0oxRz1vUUlfb1ZqNExoRzpNNytFZGxPTzFaImhqXklQIkFbKlcveHxRWix7WWNnU25bQ2hIcSN4TX5dR0tnW0Q8WWo0RyRC'@; put 'aGYqU2FJVlF2bFBQZDVbOlNFXSZ4X10oKiN1fDZlMGUmLytJeGJtaWU/NUAvRjo8ei43fXZ6M2wxL2NPUzNnY2JON2pxb0lnSHRxXTR1M2glYTYoYCsuM0tdWmlFNTA2KkUxOnoyWD4qQzZWSSs3XXVCLkFrQVNCMjxpMTdrU15pMz9mY0d2Q29jQEN5bVIjKmNFZ3htUixSZmxxUmpQIypNRWd4'@; put 'JVswWHRTLyxiUk1fUTd1OUVYbS8+YnQpd0d3SENkTWFiaVkwRTpLYWBpcCopS11vPjY6KzQmLy9XTStQfFJtNUxqSmJqZD0qRyhJNyxlSnV5XThER1lAWFomVDZMSDFQS2ZoLkRkRURPdjEpdU9hRU92T05VYVVDZWBSPDFKd1I5OyJreXdRNWVWOTk5KiUqVyslTixgSkk0UH0xK08rSXhwb3Bb'@; put 'ZnhbdjhVcSlXTG16TyY2LGxkZGkhbT1Ld0kjfkw/aiZ3KmlHOTpJIV1ORl9eTD51SV1IOXhlMVUkbXN8T3MvaXJoNmNEPGAhUTdoSXlaRztRWCQsblN2L2xFJXViKWY9Z1ZWK0YiOkNpOGhZMFhoTF1+PzdtdClfJE1gYEg8MHttP3dtK3ZxdClwZl5fWkdOUlZNWz14PXRjYz8/XV9MXSNKMkRl'@; put 'OC5TI0Y2Rk5jO0xkZEhVYUJQRHB3UCUjLkAyOkBofFAkSDdJQXhlaEN7VjMqbEA/MHUoP15bWktvel5bOCY+a1lxOyp0M0VvcnldX1dFRFY6LCNZTUBwT2A1fEtNaTtgKV9LWXshUGttZWJiTUB+S3FqW05RVFp5QUF2cUcsfm1tSHJHPHo5d10wOCwlalZCL0VtNXZBeDZ6RGIpSEJ6TCxBPXlh'@; put 'fCU9JmB9Z2RPQ3Y+azFXJj15cG1WMkp+XS9qZ05ZYlZdQTUqZCglYjZ1RUBYWSFgT3pAdnZ9ZzohLjRjKiVObn02VSM6KkpUQlpiMHhPTXk5RT1oZCkuUGJPa3h6KVVYayYxLFY7bnwvbHo2KkJdcjU6P19PdWoycE45dy9nbDdzRFRpeGMqQ0dRKjpuJHJraTo2d19adl9Ual87d201V0BDc3N3'@; put 'TE93MmByNEdUQCN1blFvNWpzQSZHLnpwJVBMWnhQNENoUE0rU0pkdUdrYSojbG4zZUt4cjl4SF4+bSovMnRMcEZWNzhmTERNU21VaFJ+XUc5WVloUUw1QlFMfj1AJiYxNFZ6QF1dOXZiNT07aV5kOSFuYFMoM3gsQD9VN2BvW2lHLHdRSl5HMTV6Ijc5WVRZfTd+ZEF5LFJAK0xiVkQ6UiMqQ3Qy'@; put 'OSVuLk1OWTdGKlQ0P3thL24kIWh7cHB5QzBkKENpcVpPP2dfNkkoM1N5XmF1NioyVk86NzBOOVUscSNqTFY/SiVMIXE6b2JWQFBGNmtIQjxjQypmVGdwQlUqP1AicUt3ak4+WUwjTjBDclV4M2lFOmxUNWVBd1RPNUl6dzMrQ1NLXTQmVEh0K2hlKz5FVEt4V1t4P1hAaytKLj9rdjQlMk1ebFUp'@; put 'VWtSSEBFPHolckRgaWheazdpODhmc1lzYTpuc3A/blU7WllzKHZ6QlZITm1FUDxVU0s5eEFsS09JaiJ6PiQ0a1JSKzJPSVY4aCo1W1pQUFVtJWxhVy9WX11PKGElbiFPTkREYH1meSFmeTw4YipIdXdURyl4IzR3als6LnxLfGhxNC4vMXghX2A/aEdnaWI0S0hWe2hGTUw/cEUkQXNuLG5may50'@; put 'XjQxSHUrfCluYXxXQDp2KkpEeSg5NUBbKCVdNiR4S0gocDVbeHYsVnx9dnc9WSYpIVo+K31mUj9FJSkqJTVLRDdmPC5JfnBITEN3I3E0NXRyfEgmWU4+bXx5OVhWfF52OXIlI2tEJCRXa14zVEpGYEltTDw0aUY8U3IhbGtzRnE9VCMoNjpVYipEXTpdcXErSEZSOnFjN19iRVtSR1MpUGs/KSoj'@; put 'dktKPClFUiF+STVnWitAQE03emcrR35yeUcwbX0qOn1mbHZdeksyfm1Vbn49Skw3VElwV1tOfEU+TW9DJGtQeExiJWx4TiNLdztBcy4kRE9eUEguTV1jT11YM155SXMsITNqZTFaamJRazdJOylufGIiaGRaSUg6REpMcj5xbjB9Nnw6VlA5JFUmJGNxZCJlT3NUYTM2RT8rM0RqeHhOVGdpKyEy'@; put 'UkZKemAlVDJjVllqOlJXSGl8cj94UVRnVFY/PCpLY3RPIl9haSFwXV1HdGVbQVZXWkRGfGtKajhLYmFqUz5WVCorZ1QyImVrS0l7SDNeekcuMndhazw/fk1mMF9GWGNGJmZlP1o0Kn52M3ZEMSEmMGB1OGJOak94Kz91V31yLnN3SnkiOXhgY35pYmNbPE1vPjk8UERfT2woVisjKHAudVo+JkdU'@; put 'eHcidG5VSzVNeHtuV0JIWlMsRzZDe2pPeGtLJnkyeHohL2I4KWtbXTFRXTxMYmRYNFVtTnYxQDJaXkNkP09venFOJWt7L1lqK2tlSlFoXUVfWkleTShiUXFtRjtPbzpuY1ZVbFhVOHdlaW82W1VlWzw9YztJbF9IeU1rR0tARkZWTUFXcCY+Tm5eRWd1KUN5fSlBV0lXbFBURVU3RS5QI2NvfWFw'@; put 'cyRzWmtVVDxwVWsmbF1FNlZ2K0RRRF9Fc1prfmcxJXVocis4OFVZaGU5anssbi9Oe2JPMDBRcFkzajsqUjcsZzh1OiwqLGJsUEw0SVIuUGksIjkpQFBVQzldakMkV0Vyb1BrQlJJMDQmUzI+MHBeNTxySyoyVztmPi9PaWJjSnpmPV07OG57aVFFKi9wemROamAyUkVbNyg3QWxIZ2VsdltyIW5Q'@; put 'fH1FcmhlWDFVaHdQOHFoZWtvOHRtSkNJQk9EakRacW5FLmswXjA3QFQlaUZKdS9YXTluUDRsXSZAR1IlUSVhUWlbQlJkI18mQEdQJThnJjAjQGtnSzokMiYwSVJ7KmsqUSViZmlvNmY9JiJAIVJJSURgZGFaREo2WGE4TDh6MD9CcCosUmpbTjlnYFQsMkNoJElaenAsYG4hTiRCLFQ/Jk5tL0sw'@; put 'ZHU1RHdiU2c/XnoxNCN1I0lFNVhsYlpUTkRIQiNTTGJkeHxSXnNTIkpIWnxnLkcwenRyaVE8Y1o2RGFdfUMmZ3MqL3deKE5aeFcrbS88VStDdnEvPFJrMmtjNUAmQitqT2IzLH11STguQiY0PiM3ODJMUk5PO1lTVHRLNXwpZWN2Llc7PFU2ZT1TcDJRek9IMHkoYXFOdkdgTyF+IVhoPWBKYlVG'@; put 'ZkYkW2IueVFqaHkpeiRNYVJJPSorfV45S3lGUSxNU2tzMjt9QkJuMCxjUztYdn1ORz9+TyxjJno3ZCohamFBSTE6Ym5CWGl4LmZKaHNZeFNAal8wJmdGZF5vZGNdV3wyUjsmZ3xaODtePUMoSVhdL0lsTUMoW25ocnQ5eEtKciVgcE1pS29mVytuaGdZPTt5WFh8I3FrLmVaNWQxbzouc1FnQkRR'@; put 'VHVRdllbeClaemQySjguPWlbNCVHWFVKcypHQ258JCQkTi5HdTFpaHZpMGw6IiVmPD98WyVzPVRXa0xUW2oxQS5SSUdrMCl1PmtuPGE1JTdTezRZMUpERUY8MTo6XjZVcls7MCg/S3JOQ2k1MFl1YC5vNlpYe1RNRjY6QDZDWHEvQW5DLn1yXnN4dkYmWzIxPENfRzIrL3Y5VyM5ZEBwbXlefDlz'@; put 'O0A9N2dyKkZGNEtNLkJFQ3pFM3xqJjl0Nk0+Xnw0KHN4di8yPXBYa2U5KDRwellROyUyUmtFYDMhR300elZwI200fWVqTjBVW1hNRnhOPChdbHl7Vz58IXFWNzVxaWU2RVhye2pYMTxPZz9Le3NCW2pyblQiJVRLLEgjW31iZkQ0Q0EyZy8rI2lMd3E5dlc0P0VCVVhVZ29FPltGZn1uMm4ye0d6'@; put 'VyZ8YT9WOVFoRS5UKlRFSj9AcjVuQFZ+fHxXT3NSWDcvJl4mQ0FMQDNObmlxcCZPPnUxc3klbnkvSEBBNXNkMVl7YkFwUmE9RVteS0xuQ0ByOjN9eSxKRj0zUT5FKnwrTGxfNFgmUEI0TmF3IVtYSGBaWGs+O0guV20jOjZmSGBDNi99WihbfHN0Ul1wN35mOHNubTspJGJNIklROSFNLiI3NVo8'@; put 'OmBveF5fZzlyfUYhP1Vzc01zKUZkKCZxJntAfGFwJFhTWS5aPmVKbzU8cm0rJTRhZzxaOmI4byRRRDZ+YCVJKE1xODVyMkE+WX5AaixvYFl1L3YrXzshREJeNlZ2c2kodC8zfF9GeT5kXiFiej5mbk9iWyVkOGAoZCQ0dXQvSiNIOHY2fXxRMENPRWNNLDkhNDBYa0dCa3EvSXRPVTs0UWdPaTVy'@; put 'RDdZYiEodmQxMjBvYnI6O3owKHAqJWUvNWBfNHg6ZVEsMTJ3VFpvTT5DOj9fbHosKjRaJklFTnNUOk5lQFEzYWxWRkQxSlhNXi4pakxZYnc0WzV0e2VbdWteejg0K2A2d3pxKzUlekpicj5PaHt6aFlqcyElIztpZEZxImA4U0EmXjNpZGBoc3BVSXJue0c0YGVbKVNSNm5jdllWRndhPzRCcm0l'@; put 'YX1EWGs/RGZnd3ZNZyldUUZSRlJoJFtYZER2OH5XfTM1dXAuYXYhP0ZTMChVXmFvKHZDbUtBdmJNQypzN3p9L2BhSjs7ZltiS05FdSE/WSozZ3swfC9wRUxwQDU+MUwscXQ6IzFQTXY3RDVqeDYjW0lfRVJsSiYlVFB8PHpiQTEkRT19S3pJNGx3XjErTToyME1BWUs6bXE0NUFXcUVpNVplczpA'@; put 'KkMlME9rYj5bfiksSndwQV1jXzE/UW5mK3RuZUslcCRpX282fElQO05KOzVOV2tDUmM3OUYuRyVnISFyVz0vaV9JTyomfDw7Nypwa0JeXkxocDxVVHxVTkMmIyFneU8/b1JraU1zfmR1TmFxRTBhXlZaOU8sfjJSSm5vfGxMMXlHIXg5elNFSHgxdk5rIixrS3NgZmsoIWAhOVJYNCl9Pk5+OUtM'@; put 'PWBwfl9HZmZmansvUytFZ2IxOHlzaDs5dF9KX19HPnAmUFs6dX02RkVrSzVeJH0mSUMhcGdKUHlGR1cxPXZZNzk3MU07bmh2OVJ9UzosPj81NEJqVyY5WCZnYTE8LGFyTnhmNWM1ODtyMnFHdUlPRXs9NytNVTR4aWhZOUp7VmJJPHpHJkU3U3gzaEZhNVNyLkd0Jjc1ZDoleDImfXNoUUBie1pD'@; put 'PytsK3EpdjJRaUApU2NvbSl+b2hGOnB6cVR5IzpVPEZ0aXlaPX43ZlN7V2ohZHVlY3RrQlI+cF1paXRFU3xDREN+QWU0dWNLYSpXdFZqP3pVQ1dsWHpuKyRfVU54MHsuYXRNezZRSFlgOzcqfTtibGpJWmtiPjNYTCs+KXxuMFNEaCklTUoxaDRMIml5Wj1pSWJ1dks2dWZSVFo7ajhkbkx4eE9S'@; put 'PnBNX05aTVlAYjdMSTwyeEJfX3dHVSpreFl0PykvfXk4ZTBZa34mSkpUVU5VVD4/VCtIKU0ufHQ+JFFKWC93Jl1vS3kxWH5ve1Q+UnQ7Y2YkMzRdLyUrNkBJVmRKanQrQHpgciMxLk4/WUYkbCNlSjh2NiNYI0ZbNUNDKnZWQ3c3Kzs3XkZkZXhgP0dta0BoPSF2Q1UkRD9sTH5LVFo/b0UudXE3'@; put 'MD43ZTpVe0d9RVtDJkJdUWdYPkVobGQwSVBGW0dgX1ZyITwlbW5AQ2VuaUsqfiZEWVp1LnR+WDBfe0dvfFhVbm9FPjEvRDJ0Q1NiU31HOFJvc0N3Vm51S2tuU1VlKywlZXlCYT1XZyRsMDxKMl43RlE7fkZgfEBgXVJsSihBLFRiNkdSS3ImImF0STBAWVJrNkAyJE9CPkdbezN6cFBbdyYkUDhy'@; put 'dTpwOWJ6ZXhoWVVVLGc4Y1UsM35zR1gwYmBmJSt3TFoveko2QWt3JTI6dGtJS1JrQTdWVG1NQ0Rwb3pCUjVtOWNOQXkwUXpRRjZCSiFZTmEsK09GYHRdb3dFbmFUOkpKUTd4WnMwaTM7cUtJZy8mQ0EyRFFvcHs9KyFyJFlRSFZfMHFreSNLXlU+ImNCKEIrQ0JgVVk9N0YwLyJ+U150UXpmUDwx'@; put 'ZHs9UmNKcWxXVSlXNG1GMDtuMjNeeX0zeys7cy46d2RLPVM6ckBELiNqUi9DQDtlNkcwQkAsRHZJI0hWaXd0MCVxTkovQV1CJCVDYmFyNyNqN0puU3xaSHVXLHh6TiM3RGZINjBdNShiUGkuMl86W1E6QD4xTVgjL2JvbHpoUXVEUzFbcX5SeVAzZzpAXUhvNyUrJkBmITlxPTAuMGlqRn0xcDxi'@; put 'aktJUF41bWp8IiV6dCRfNmkrOTNRK3BkWk82NVdoImdQdCsyfGoreHJTRXUva2AoK1orTEV2Q0dXNXZiVGovUGFAdj9xWShFVz5rTE5iOlAjOWthRClCb1RfJTBzWFAxQ3UrWGJbe3owSCxtb2IqVXBHTHlBLHY7QGIwe0MqTGE1Z2BKOmEySDl1anhWekV1b2JFRzFhPzUwJC9STENnKkh4Ozcu'@; put 'aC4rJEVROUgzSl1XOS9NMDpMeF87bmVpMDFpIkYiQz5AaC9lKnN7JENTal41bGxBTG9QNC98WFVsUT42W2ZvX1AhT2UwUjZST09YakJHOkd2d3lfZ0xKOU4xNXN9fDBiOTEsQDFEMmYhWWx+b2lRd2podlR1KkpSPHc7fEhQLnBTfEl5SXBoTzErKnZDfCtHeTFNdFNsMkJbeVNeTlhVPDEiMVY6'@; put 'X0ozLFtIKjhtcEZ7XlBhO3k2RntJejIveyUkRXFZWWgid3BYe0l8XU9meixPR2NIWlolQ3Z3ekxuQCk2b11+d2oqaW1sOUg3bXRnS0h1T28rYFVjdHtKI3xqK1k8UnlaZGA8fTh5Kko3TnVVdWhAdjkzbEgxZ01ifW9YbyM1QntYaE4sM3ltSk06dWxodlBaUF5SYVMsI2laU1FlNWZHNlQ0Ni43'@; put 'YFkzQltfb1pTQGVhb0dQZyxJLiFffmMzbWBvTi4pOF5LNCw3UmBpeFlvPGRldnhuMkxxVmF1WVFtPkpTYUldRU5WYSp6QlttUy9vWmF0fnB+c2tlZV40bHQrcmVAMyhPXT86fFIoTXssS2tzK3M3cz92Nl55LE8jLyZWdVkxQ1Nqb1IrWHF3O3pYMiZgRndGMjZIJjYpY1NOe1Y7OGxzWHlaTVE5'@; put 'L1hbIUQqRmlYWTJVcSFLcmRpY10mTzg1aCYzZDx5KDNTT2UxRWE/Yk1pZnhLYSRWUGsyXjZTL0p2a1F1cyx4RSEvLzZRfSVbYWNlaChIdDU6YHFDW0U5JnIlcUt7NH1aNWkoXnBGaFV6MklKZjVNNT1ucyUwZCxkfFdrZEliKS57RyEvMy84biM9VWZ7fHx2NS54SFVibVZSUzhZJnZHd1leQjps'@; put 'bXc7XkhUKyM7SzZ+Nn16UHZMSkMrXXIxIit5Uyx5U11MRD9IZnUlTTExVVhXbm5FKUpAR3UhcTxvbDsiW3NjS2RYe35ldExTSixUXUpPKTRqN1g1PnxDX08pMlQpQTgzREB8V0p2NFUoVDJFI2Q8OCswUkY6Tiowbkw9fHllZkAyLEJ4XjtSaV0iMUd1KlhNXk8lbzAiVXhZZkZdWkRgKH08KHBV'@; put 'aipzKVkvMy9FKTxuRFh0UzU6SWNfMV0ycDtiOm8yWmsyZmtQMHVtJX1AXWQwQ35XWUZ7L3ZXbiYpcTl4QV9RUTc9PChxJUBweTRWUnIsQk4oNilnTzo8SWtxIzJwXkZuU2Z0bmwjXW5vYkJAVn42JHd7e09hUS5PJk0lP2MwV0BvJn1NKkZZSChqVitZJilUSSw6LjFjW0ZNeFhQc09FcXYqVy5I'@; put 'czwwNngyOXg2JVA9ajUpaFJJPGRiSWFNWVBXbTNAM09XIntxZFUhe2dMWyFCT1c5PSZjOCtBcSYvKTk0QGNPIkRNK350M1VtbE5oQihGcmxuSi5mKS9nZyorMmB5IWcwZGVAZ1IudSEvRUtATUMyQEUkfCUxODQ9LiokQUl1WEIhQj8rX2ROMCIjdT88WHYkL3J5R3V6Z0x5ZzBiakt5I3E5ajVa'@; put 'UHN1by9kflJ2LjdSWUJ+NX5JJGBWemkjIiskW1l3QHZBJC9vVWtLazNsKlJ2b1VrR2szbDVKO0Q6bnpOIi9PaSJDblA/cGI7KG4oTXssUyE+WzdhPzFHSkZvSUV7OitodFZfdUdTWzs/Z2VaRWc9ZCx5Xz9mVUdKMDJWUXNUa1tNVG9SbmxGMiwwajdZMCQvLCZgQ01PZ2NDMzxMNn5AQHlUZEZa'@; put 'RT1hNixjYHorRChEN0FwW214T1JdVCV+ODhAYysmfndoT2dBc1RXZCRqYEkzMCQ1filAS2x1KklFVzpKQ2p5cWRNZ1Qlcj9dTjlPTyV2T2xXVyV1fT9zTyw8YXZjOzoyZ1V7ezYuQDU3N2hnYiw5JHxdYkk5W3l4aG1gXjxgPlUuMyRIKDszNWZwZS9acjsueFd4eiFPLHBWPjBJMzdlMTBLTl1S'@; put 'RlFhLCtmWndqKCpqXnpBKXFqZ1tgd0hdQXl4ZkEzTWo6aSwhVWtvI1NMRiNEYn0scU43YFVOQiNzY2kzM0J8IlRWeXc5bjQrbGxjSjY6NjYwUm0lRSs3dylAeFZLLi9ILC8zIX48fGdFRn0+NSVeM1lMT3clbVJaLzgiYHJma0FYQ19PfnhLR3VJa2QqKVd6VWNOP3sycUtpKE56X3NoZG5RMHhV'@; put 'XnxtYUspTCwvcDkqW3RoMHAsQ1syRUhEQjA0QD14PXBRQ3cmUnhZKDxGWFRPLFI8MXM8QjprKTsuVD91Z2R2cjFXJmU2VyZuJUA2Sl5MN0FrQjMyNiZ3ZEpsaV56byZiZD5PQk59X1dwIjl5KC8xYjFHdW5QTENTRkd1YSssTFl6X29LKWlkL0VhY051XjZATzFAZGtneW04L1pAS1VHWCxnWmRj'@; put 'ejJGdHhvPCk2T0lOUzUzaDpGKkA5ZUFrUjMmUEwxaUUlVT85UTUvNXJTOypPZWxGTmFOcGtLLHdQKWlIK2MjW2VPRUBsdSE/W08xZE5qfkdVZGR4SEdFdiUxPjhpZHpiezBJPV5QcUNCVVp1P0NGNkBpcCtxY3BIblVMcWYlPWIuZSMqL1FNOmFvWHR7MGB6aTVESH4lOnJlezgxRGt0VU16ekh2'@; put 'ZlpdUWV9YlMpR2MjYlopeDhIJF8ucXFscWBxNjBMWFgvfTBCQ3A0cnckcVRLKVpGSVZnNVttWj5Nbkd5OH5oO3VpaTVrMTZYOnpVUHNQOjB7MElMdXUlSTdaLjVhQz9ZRTA6ZDAxZUs0Slouaj1aLDxTeX1Xa0Q/cFFvU09FUyhHODxncEA8I2NmMkg2WTBSPCpHTi5vQFtnfGtpazFadi4qJX5S'@; put 'PzRLXnMmPSUrfC8haUhnOXB7PV80XVUuKlFEVnJ3Yy48fDRjcDZ2dnMhM3l4ZiM8N2RMPnlDY2NSU0QwPl86X2xtZTdkXVNUSn0wYGFCUTE8fDoqWXorciteaFZLVW51ZVFPZj0qcWp1M25sNTtBQjR7STx8dWJYOWYmO20jWXxZQF5HPDNnSXohYWNffDdWVl9xUztdNWg9c0x7cX02OFIzIUZZ'@; put 'ViNlWVJ0aEdRUW5Vck80UW4iJXlNcHtvP2cmV3JmfWA0YCFdWzUhO182OTpbPV4vRHtzfE5xa3BVSEN8JV5qKllATlhaST1+VjBsJEcrJTVkdG1rLl5qeDxpLlgvQyNIKF9mU2Q0SFptNEh7Nn0qVjMwZTp6dU89ZXdHSCtBMWdRekpfempZdkVvOyYwSXFsRm4wcXZVOE9yeyM8M3R7VDJHbnJo'@; put 'eUAmWFQ1LnVaeiI3SChyZXdUN2B0eVNWSCxRMF80NyZhN3dWXXx8cmx+YHpJW3VwVHlaeVA7fF5eVmYqc01xIW5zcXc2KSpHdCtRSnRLMEszJmBZUjwjc3BtND44OGN1V1o0ayVuV152Yzg9bmE+RXNeR3dmPm14R2s3e0EmekZ8WyFnVzA1Wz9wSTA8XltoWyQsX1AseEU2L0dXfnlddEYkRlpp'@; put 'a11DKWJfYFZ3dTBqT3BZOzwod2kme1NBTnRjQT1+cmMmcTk+JDpMZVNpOFQya2VMeSZVSkVyKjNhSXRIdDVeTVd5SCNEMSVkJGZmfDcsQk1AQ0IoUypxYUw1dilBZVYvYlN0Yk5WdF4wQlpdb3lsQXk1e19JaFh3I3U2Ljo6dz1TdHQkfH1bVEtzOTxAT2xYP1ZOeiUobyJtVTtzZjwxTz1DKW1K'@; put 'KjhkNC48LzhBO1FZNT1LVmdeM3xPT0JVVTIvXXNAfWojKl16QDFWPFlId0hqc08pR2NaaFZGXm9gVVshXUs3TCI8JXhlNkpUIzQ6WXt6NT9VZEduIWQ4LCtkSSZQd1trc0lkSkZZSHlTMGd6NHdud00uSit9OTRvUkVlYHYzN0xHTFJYVjcpWDlgZyZZN2xFUkR+TUZSQEldOSlTNi5dJjZge10y'@; put 'RS8iKzJmUi51SjN5VHl7aDdwOWQzQ0ZOXj8oPVRYLjk6ZVhDKkZpTiEpJVghJTJSaDpLRlRIRyQuVGxgO08qU2VuMGt0KkpORDBZQS90ISR+ezh7U1NDfjhJZk1DPSkjWGsvUStUS0BTOXwmVXNjQUd0QjZ1ZWN3V2p0SnRMbFlONUIsJkFxaDVCOWVjV0VaRFF3fEwwX19TR05UZUVhRFhMYSgp'@; put 'aFQoSj5VdX1scDBHPWQ1LHZCP3BPYUBfc0Y9V3FmX2EhOSJ6W1RXaFZZKV9QYFFGbzB7ZF9WdUVpWCklO2lqQGAlNE1AJGBLdCMiRzUxWVJkdlhZbSNxK1J3Vk9ITHJaTUBKJCNsZ0k8MHR4WWAuRC4/ZykpUGJJcFRRTDMvblJVIkYpK3l3dGkvfXRNTTpJITYsQzpaMzx6U05GJHxsTWcwfjM7'@; put 'NEEjOEVJe2hJTGRTemtSPlhoTTJpQlpvMisvPkp1bmh2KSs8ayVvYCxecjJiJDRGaV9GOXxNKWBbajo2ZSlAJHQ7OHhAV0Q5ZllTOS4qUz9Qe1dtN0g5fG07SEAhP0M5Zk9zMlU7NiVbcE4uKStKUz4obiwkcnAhUnRsNnBZeF8wIi8hYn10JDQxUXJAQn0lN1k3O1AmfFRqQWNaej9xPnRuVXFF'@; put 'fF0kT0BobkJ1eE0zWEppYT5NJCF7S1RHNTRyPnVgfWJ1WjJ8RWdCXWtFQyU9YEhxalZvSlZTSWcrR2JmUTIoSmB2SiRGVGd4fChodn1ianZmVjgxPHx9XSkoMC4kRUdnRGdGN2wjKDdLW0YpeyhjMy4pNTwzM2czU3VsLy9MdHNQbUkkJlVCRTl2N2J0eWdYVjJ1SmJ4fDAmJS9OVjZoeD00K0p9'@; put 'NXMzY20yKC9vODJVQi9rXVYuSHNYMTYmVSRIRVhiUmA/RkZqQkZpTjBlaTVqPWFAZVt4L1dpI2RObGM9Ljore307eUB8U0txYGZKJHpWXkAyPlNlVWNbYCoxOnxeU19BJk0jIngxVW1VZ0tnNXFhJW8lV2deVGlQSHQ8Ozs2SGNWM3tHWikhYmpfdmg4PyFxZiwzLzVaLmMmaVZCckpZIiF3MlE5'@; put 'T0NsdU9NZ31aXjpOPj9AZV5qKFVSXU5lSXd2NXpVY0lxcFNoX0k2RGVwJHpXKD5YMVEhNH4ySzlJWEBWbHpGbjFKYkVvZW4vbFVWO2xyXnE/XiljOEtIdVY9ajQ7b04hTT5hUkAjPWtJSSVSIUJEW0FvdW95OlM5bGNzdTs1OF4wKFVLXjB3T0crTU4iWDhSS0FTJn59bHxhbDIrU1d1b3lDN1Ai'@; put 'MVJXUipGRm43SDd0RmYvYTFkel0vdmlEaSFHRGBAdCh3fURBdXFLbGtwWzxiTlZ8OVNLQmFpek91aS9EOlo5cTR+MilQPWlmVGd4MzRmTUc5TUJmLyY5S0gkUzI9RWE6YSZ4QnI6QTVqJFEoYFAjNyVUS01Ka0xiN3klSEMvIjo9REI0NE1uNmpFUjtvRW91b1NXM1l3aEw3Qns2R35PfDBRWG0v'@; put 'V3F+ZFVqckhZLzMiS3ckYlp3SVBOXjI7SWpCUU04MzYpJXQ3PTdtNXh4fkcsNWoyfG1sSXIhYHEkLHB7eXkyKW5sW2dTXmRyP20/bWZVQXFWME14PEB4Lk5VcFtQMzJVcz5rdlJEdUk/ZyQxY0VvdG4jMUk7VGwhLE03dGI5WFV9K2lrKU5CazFgR3kheDFvNi5hPUcqRDVJKXtXe1RjbGVsNTl8'@; put 'Sy46RUtVdEdbK3V8aywyfDdlSjlHTk8xWlp1VDkiS11ReTUleSFsbkxgNm4+U3A2MyFjKGxsUClTTU84TEt5KiZ1cixHOSl1S3FEcjBRSEF5OyY7LygrRW9+NGIyOjFgREVEYGczPygoPmFFKSo7a15zNjRqTkljeG1tMlg1JDJFfmtKYShxaDd6R19xa2NUdTI6czouKFM3XjhWKz91V30zL1dQ'@; put 'KSMxckpzUVhSLGVZIzs+Zjo1cmdSMS5bKW5tMHIzQHBZZHFmU11ASWJPKmsxZSJiX2lma2ojbnMrYHpmQTl+cmsuaDhmUGUqfktBNWxvQjRxS3VNbStYa2NwZi5be09OPXU0OTckc1NbXm9bZGdtWk8+YW4mWj8mSVl7cjI6ZD44anV5UEYvWldaNHZ4TFovNStSbSZkPVhoaWJLbnBGfUVvcj1F'@; put 'aENKX0NTLmhzYncjOWpkaGElZy88bjpqWDBQQ2kxWXFYcGwqO31bVSQlSik6KWdIYXRVUnNgJnlaMDdzcCY1MjZ5LHpNOi4zTCl3JTROX30zcnkwIXA5eEQuN3kqejJUOWFyQF9TTSJCVXBEKDc0OmBPXSw6SjdiODJQaXwuWDBQVUBHZ2JsO2pGQ0h1WmYmaWszKWJKaiVANXZFcTYkRjN2OlVW'@; put 'Q1d2ZXtTPzU+JT5LQFBzcjBjRDlQP013QjVGJjhuP1Q/JklkWjFJU0NVY2QoQGBhay5IcU4rfmJ2QndUND49LGJlUDlWWkNpZjtTI0Q3K19eIXkhMT5FcW4hIkxFVlRVfmgycCl4bXB8fGhjdT43IXtfOUxxelEwOWJXJl92NWhGe2RtTDZePFQhfWl7aTQqeEQ9elNfPV5JM0ZuOTBtKWRYX1A5'@; put 'd0BydjBkKEdMKXI7NGJ5MzBsZn53Ql1eJDxgRXk8Y2hoYFZpayxYN3BKVW1OQ3tSeSh0MXZuP0NnNmREOTA2WSlJVW4rKWteL2dBXUBtQVVFO1REek1NK0J9eEY1KEwlQ0giajQqUU4qezR9TUR5bk89aXx2dVdBQUFBQUFGUkFBZSl+XkZCLFpUNW02NTxvYGMwZnc9fFdnX1NkdnFONUh1NnxL'@; put 'aVVLOm9IMlJRfHZifW8sbmZGPVB8JDBWaGJpQjJpI0x8fH5GVzxJPDM4Jio2ejZzdH4xQCY+OVlEfnI8Q05yNDNNMUJzZGV4I0lMSD45MzJESHh9cW9IMEBpdmJhOz9BIyRiInZAdXlRP2ZHVz9gW2FaMztpaT8sJm58b0MuRDNSZD5GIUMoK1ZwPXhPd0B8WkFORH1TWU44az5Zdj01NzBqO0tZ'@; put 'e21SemEjd0dwWyJiWV5KWSsmQjs1O0drb1YlcnBdcUIsWlk5N3A8Z2d4IjMsRiNIJSw8N3UkclZpdU5PSy5idnt1dnlNdV5hcyNQSlYlRSJYJDljPiZFYEdERSJVQHZCO2Rqcy9lRXs4cFp+KllwJDQya2BKKU5pOU9sYn1+fnokO3YkfUwzMWxbXmldRiw2dT9fTlg8VT1iQlAobE1DLDV3Mnou'@; put 'NnNWNjZaMzpBS3QzLyszRWlxeCp3XllTNDlzb2BgalEiQ2RkPStLO2s9ZDNxeUo3K31HXUc7ISRlQENIaURbQ2EsKyghLCRRIXZ9Y2NWc0wvRDV+Ozo5ZnQhJlF8a2Mwalp4Mi9lfnxdXjJGbjNURX1sZUI1TXZ7U3BqIkleMzVaW3c4an1Dem0yJW0+ay9nTlkqaS54ZVNiVnwkOTpMK0tYb3JM'@; put 'MytQZiE3NyImYTFrZlc7amtVPmJsTThFfmBgZTNLSitgI2dLREF5ZDN6XkRNdE4kVHJ4RXVHUk0pJXoicmwhQmtMJUBKRWF+Myl0dERWc1J9YE92WDxPVUl7bWdQKlddTz9eVGZBKCZEWjdCbzlOU1YpN2A8eSZzc2opM1t6OUNYPWttMjYzalM0d05CY2tlaUk7fCh1Xk8udkY2RH5MQyFrcm1Z'@; put 'NkAudzNZXiRlakxhPz1VX093dD8lb0s6OG45XSU6fUx2bDc9JCJNT3NxVU9waXx2akU8OCZucWR2NCF9VlM3U35VTmB8NWJ8VnRoYXomQWV3Onw1XzVTdz4leENQSjF0azcvIil7TUVsV3VAQDYrLHhxfkFnWGNoRn5mV35COi5OWDgmUWgvWDRdJWREZVA4bEd8YEpyQkZ8PnVDUFhJSyhFTGMm'@; put 'PytWa1N8fUEjZ0luYnt0JWAqQCpPV28wTT4yU0gwMnxvcyhVO2xvNCY3aDhnOi4pPnxjaDlJJFZ0TzxDKD9sbktMRCokOkM3ZykyWDhUSWlLfXtKKTsrZVI7ZCMsL2dRNEVwaV1yfmF0VU47QCo1UVNDJmRuV1lafF1GfTdlIVNbZnJ2RmBeM141R3xtUnFQZDVdVSprVnRIWzxpJEw9UUp4Xjdt'@; put 'ezdBUHcyTlQ6JH13dSw2cyQoPT4yNDxeUFVCWktlTUo4W01DUD5CLyNdfVMjMjIxKD4lVUdrMDtPTVtJU1RDQlY9YkZhWn5IVThvZUxCciREUjokcS5JI0tbKT5bcnA1ISMoRj5CcV0ocFh4M0pnemdtcmE2JDtEcVY1WVp9cjQ7I01XcngmVSwkanAyYX1iSDFoaUswYm0iQ1NEMUsvVEtwOnNx'@; put 'OV4wfV1JI0tFfHtCQj85YzM7PEoxZ1tvJGVjW14lZG9yPXF9S3ZZSl4+byNScyJ+Ky5CfS5Md2oiWHtbPFMhNys0OlkxT2J0KltVS086Ok9wZU94NyErVlsuTXFwYnBbTU1YVEJaPj4qUkN4PWo/eC9jVnZQQ0IxPTdwOVlDWlRlLE9fLGU1Rl5ILm0vInpMZUBqeX5+YF9hazRTaVclYTRpUEQq'@; put 'Qkcwc158Uk5PJlNffS9tWjJVanM7Oz1rQFYockRZSWF+ankqR2hJPFt3eyxAUXx3PHk/WS49IlM2THNFSkckT2U1QkomUi8xKmUlYGhOVix5fVQrLkwhYV87LF5YaXpuYD1JaykjWkVmcWRAeVJyfmxhZjRiXlowZE1MP2VFPjNbQ2RtYX49bkZkO255LEJ7V2c8OE5CYnE1YnQqd3xyKmI1bF9K'@; put 'W2VncHhRJTNNW1Jqdz89eSlaSTMyWCk6OUFUTiJhci9EdCpjWHlmYlhuOkBGK0htdm5ONHJtO109RShTTzhbR0deW152Xl9yOXsqUkJuVXBkc1lecjh2ZjY5ZyZSYTl2O0t0SnlgYEh9U1VBN05vfU50JCY7Uzkoe0NVeUxCeV4qdDZgSD9je0ZgJTslLGpNbGhsK09fP2Y9RTIvSjQ9Q0MsVnw3'@; put 'YzZaalgoeVp2Qlh6PSZEUW1mfnNQSGU5Nz11VDtTUS9TMil7QmZXa3oxdk5WOnNjbmZ3JEhHJWdxLC9yT0ZZIS4lUlZAJDttW0JBdjB+fVFaNmRmNVZKZ01nUGlnZnw7d3tZOkhCd2VVUSV9cWM6XldxeWkqdGd6MlFgOj8wdFZ0dks7cEsicilyXmxRY3k+RXtHdmhWSHNzfVJaNiJtV3heWmxu'@; put 'Zjo0M3NCKSNMN3tReCtgZS57QCs1KTJXRzc5dEk8Y0AvIXAlRUJSfkgoNXJwInBVLj86a1IxRUBHYDtsMCI+SyREVV9uKHtCKTxnNzpDN25oKWlkMUs5SDIkb34sI006K2IsVT4jSEBvXyU3UDh3fXN6MTN0bGJbT0BmIWZefFc9JGNwdF80KTk6MWZDSHV9ZixOejN4X21Wc1lRcmkxVGkvXl13'@; put 'cF0ie1BzRW86Py8kIzQjR0lOfEhaU14pSyNpNnsqcTpBQDMxT0ZfdWRWcCp2cCFte2k3OTAmIkoiLGFZQjhbNz0rZDEkQz1VMUtPKiRSd111NlE/X2tdWWZ0cG0jMSN5fjUlWjw7ITgxOXJTbHMkZGkhNSpzNkRzYChefkxDPiJ2RUBoOkhLPmZyVzhPZlNtaE1nUCtqeiR2d2ModXJkVjJ0IkRY'@; put 'MCl+RmBOYWh6XlVTbGphW3JVPllDPUp7PU48Sk1YREw7VHxUXXo9LEFVelRWTE1bRHBDZTdzR1ZKJEdPPyJiSW83KWo4Pz09bW5XUUdVMnYjW0p6aT1sQE5INXtzQitvTDovRkA0XzBvdl9Zd3lJfXNKVksyVlF0c0R6anhIfmN7KkBQajQiUWY8e1FHVVh7UX1FXmB7ZmdqKj0/WTV+NkJhI2Jr'@; put 'eV5ANk9UXyl4fWRUQGVVQy4xVm5tdjZ9ak1VTHlIQSp6enw3SXkkTWpoLHk1dFR8KzJZSmtIQl8xKTo8aCZfcCQ6fFUqJGI/cEJFTVhpTDIxejBQUXYlZHthaVBhI0c1a2s6L3RSNjZoWjhPdVhMbz9WPypfXkdUJl4kaWRWOUxiKT9AZG5aSkhIKFoiSXYhPFgrdDhrVnpNWWwpMkp8SnE9VGcv'@; put 'eXw2X0RFNjtfRTx2ZGdTPTBlLy58cjFzNFEyWmJJSnJYJC45TVQvblB2cXYvKkJySWwjJl0ydm5PW2h4VyJLQW0weGRfdXZBckNsY0dGREFWJUhhaTo7O1AzUmgmJkpiUT5rPn5VPGhJPnIhNl4hcCtfdzVbemJTa0hFOF1icyU2YTc9dm8wNE1KNl8zWTdgL2h4VjRIdHF5IlZdNVs9Pnc8d04h'@; put 'dTwiYlAxRnNqITVkT2F1ZXUsTE1NWXhHVE83cDFeS3dUIXlaa0ZfcDV7NiZdKGY0Tn5vSWJAYXYsKTVhYGlFOF1kfHMha15OYGB+PlpPcCppOFpyQH5ZTUBGYn1kP2xRcGYiUk9vTiFnOXZwJFJeekBsfk1ITmBjPFdQbnw6YDVIc19ebXFmO1YpOXB7VXNHOVZUOl9nJWd7ZVMxJUwuTl1RTCp6'@; put 'aWc7S2p8KmwsTDNoZU48b0shLEJHfU9CT3ZRWSRmUmkiL219TzAybUxCYz1mX21WMndOP098fUtaJStiXS57TGlAM2E2Z2VdaXtxLkAiUUJoU2Y3Qns2eFYsUF12VzFfWV5RRmFiTGdTUlRjb3N3di9oN08wQEIqfWFHcmpMfj1YcDpjIVMoPElhX2VwVGlnYEApXV15Xl5nPHo9T2w2c186MF1s'@; put 'VCx6dz1yPjJiPHxUIkI2VDRGZXhVLiV6XnIlQVdROTozVXtAeWB5WDp3cXFXRzJnSVB6IW4leUtqOD17IVo8SVlgJnF4ajgrMl5qPig+cUtTPyw2eyt5VmptNzY5aGMwPG9wRzllNW0pTCpLS2VeMCgsaGIjNHdydU02VndEdm47PmRoYGpPNGokQ0l2PTtvUyFjeFlHdVA8UFIkImYuTj57Kns6'@; put 'QWZFIn46anB7P2olYyVfaldeQz1iPl8yU1VXTj1hLyRjPmprW0pjImZYVX1RdiVbUmhBOV9JJU40R2tPPnR2Pkh7Y0w9O098WDEvTTZiVGA2eGM2VWFLPGcxPihEdn12RGQobDYpOkY+Xkcke0JKNE8ldzN2U1JCL2ZwTj4+YXFvPiRCPEd9e0lJUUNibW5OWUNjaXAjZXF6KSRgSDEhRUhpUHtj'@; put 'VTYpUmxwOCkkOyU9ZEhPYS9ANStFYXVvQEdoN280TnUkQjdZL257ZktDVXBlUVRAKy89dH1SfGJsLCFmVWtUcEpAUkQvOWBre1FyITtlMEVWSSs3TzQqUUpIPk59OFE9WHFnfWdPanJmYlBWZlQ4MEM3MnVFRF98d3ouYWd0YHg8cWxXJUhSZFB1UlVTMH43b2B+T3MseDdfKXEqT0I9YSR4a3pL'@; put 'U34oZW83TG9EYVIha18jWkx8fC5LfjpTIVE0bFVaej5LYHRCJHlzSTBgSW5yLnZSVF5NTFF9RFZPdkZhYlVmTWZlVW5HSEdPbHpHS3w/M3cjJUl0ZloxMFgzKXNsalNedlBYfEt8IUFnOWc0LjldbmUyJmc9fmlbRWRGP3d4fWMoOH5xN3JiYmcidnBXQV8qL2tBQChkZ2VTcTMqcz9wcjZ9cnBT'@; put 'ZT13NCowIzZUInRVdUcoQ2xdXnZub0VAaih5RTQ5dTxUKERzSkdbMiUpZ2lKeXJkeUUwU09WdCp7QilDRzUlPCZKKTkzdWRDYkZdNTBKVHpjbXl4UmNEU0lDOFMmeU55MEMkcTU9RWxDLCtsaCUuW2ZKVlA3IX5yUiI/WWRte3dwekRaI2YzMFU+a1Q4UE1pMVdSKnVQIyh+eXMjRFRgbG1zXkB5'@; put 'N2Iwbm1HYFhRbSNTX3MxfTpmL0hpZUZUd2xaQFEsL25JMnpSX28mWHswNTZyNnxLLFcpXUNEY2xBXVAxJGMpfH4qdmxqWSVwPCV9RTgwSDs1STNNYUhaZzs7OX0hfkchdCxOLHpSbGNRZ1dmUUpucTJDITYpN3BYWCgrP3B1a0hwNlp9dSI0TC4sTiJmIlg9YSNoLE9eXmJ5Qk9pcmR0JjF0IlI3'@; put 'ZnpINXI0Q2tUNzFlX2IkNEpEbUhmNGFybThLSEhbaD9ofHk+PFMyMSs6TTVXYU5XNV5hXSlvZWBwbDxoOGZ1UGh4NT15Ym9ycUYhYUFGOWo0PyEqZ3pUXUhxWVVNSVhoUHw/Yj0uMiMkaDldOF88Wi81dTM9Xjs7a3k1U0RTPitTfTY2emZeTm5sPSltcyElJmJ9XUg2MSNqXVghSEJLIUJTW0tt'@; put 'YTRTL209bUdCXSZnSTkhWHM4UWh0X15tKSZ9fEhYPV9gTEUoNn1CTXxraCQ7SVEsOGpFZ3pdYVcobGJyRnFpSz9LcCRtalksJiJaaSYyS1RXSDBkJjhhQzpCQHlTSFdRcmxua1lmOjdzI3dOfVgxV1srVCIpcStBeCxZW188bkJYaXxUWFA6WGpkZGJUMDhoUjo1T1FddUNjNFBYWjBnWjNhZXos'@; put 'VnxaPyxXIlJpJTB2eCg9Yi5fd3pYZll2OX1DK3w4ZjtSVlk+LkU/OiN6KXcvWXwpOk1HQyF9MTY3IlZbe3RpNCp4PDlfPiZuaDgjdnVUVzUrfW02Lyo2bTw+JWFnbyh7P0hWNihgekoxVlFJTSJaZmlWTU4paSltPXJIZCR4Slg8RHArcmt0fFpGUypyNyg5bFtvZzZ2NmR5QH1AKjM9amRiKko+'@; put 'OSt0ekh6I0xMaDQ+ImV5YS89UjwwYWRaVFJVKjgzQUV1a2o/e2JqM04qV1lPNXxzbWM+UytZYCVHeXpNVUciWkkvNyJ6TEt8VlN7bkddXWsvbVJvdEVxPmRkb0J9Tnt1W1VpM11da048Ny87KXxoentxajU1JkAsPlhvL2oxJjU7PFpRX1I7Nmt5LzUrQmsmTGRuTDpMSDhNLGcsIiUmVWI/Tmk5'@; put 'aT9acnFDcFhhZz9Fa30mRmpWSWNgdCpSU0ZIRD0yOTZKaGh7IyVDXnk6MVZHOlhMa2x0UFR3X2p6dU9jXyYlSz00QzZIVm43THRPJiI2M1o7STtoXW18Yy4ydjk1e2NjfXwxfDwmfUN3NFs9eyQhNyR1Zj10SUFYMD5Jdmo2NVlDXk5UbH1IZi8xdG5AUyN1QWBCU2lHaGheYkomW3NOZUs6X3sw'@; put 'NT48ZDlKJmlET11hV2BESWcjPlM6TUgmRktyTDRtazRMS3xnPEwwRCUmW2RpQjZjKD1FX2ZGbHJvUiw+Kls/I0Asb21GazZAZV8kfXgyMEV7Ji4uKmN2I2B7VzIlWTlzeVI8a3wsQkxfK3xnLzgvK1M7OyFfRDlRQnQwYTdefFJdTn5HL1MsRGEwcG1FfTI3NzoyeWtpZisrdHNMSDo1Q2BTW2Zr'@; put 'TyVncD95LHxaR1l+aT8lRnVUdDYrTVFuZjRaO094d1FubnlHbiNDLlYrKEI0SWFWJW1feXYxaGwvZk88Jn1jLEFddXZyY3c7N115MTddbyNzayljPiw5TV17WHtma3NtNmlTSSV4Ul9qXy4kUEhGc1N3JEteO0wwUkhBcmk2MStmbV4wOT1QVyssRXRqNDgwVjk5dV9PIlF3W3wzWGE+ODlsS1BI'@; put 'XmxlOjAsLGhXYiFRNykxazkmMlAvR1oxOjY8ZHEsIUNHSH5+em9RMWk1NHlSenRhQDAmVS4reWcjdltVN1V8PTBZPlU7cjZRPnRNJk1idD1ZdSVSPT17WTc9KmhubU5NNGBUXVJMIS57VWFNRCxxdkJlZmA4L186OSpaVi9+ansmdUtPS0p6KjxGQGhwc2UqfHtaZmc/RXNJeTkhZUFwKDVZLE9j'@; put 'L1dgXS5YMyheS3BoKGN0dDpxc2BBLnZ8MSR3Xy8sY2U3SmplbDZHOlU/ZmI2aW0yZzVvM3IoOmFlTXlfMEJFM2tqfVJCcHVdNT0sbzhQKGN4fWZLe3VMcD9rRip5eU5HTVhULD9MMGd+Vj5RLnp8MEd5dmtUTlpYSkBzXTduQzErYVJKVlYsVnI4YmpJbng1WTdXRk5LZ0okdSg6MzorOSkrSmlX'@; put 'MnV1V1d0Skl+QWViS2haMyomJWU5KURyJVI3d2VBYk5AKjR4IiQ2O1YjWXI7SSwzb2ZwUDRqJXVfRiZDTzFoPWV7ZXE6fCUiIzpAV3glKjNNcnFmNDhbe2RJImwmRX4rN2VIQyx0Qk0oe0JZRVc4TU5nOEU4JU9rQVVOJmk2OzpuQ2ttTDAyWmQufk1XXiohL0tCanVIZTIhRlFDV3BoVzc8Tit0'@; put 'ZH4jdCZmIXt+dHZ6QHxoXkpzV15UeGNhXUc3JG9PUXVScnwhR2RueC9vRHEybmk3Ylk8NnVzbFRvQyNyejRdazczSmM9Lkt+MiE0Rj4zWGlPLnhmKVQiLyxKaDRxNUxtal9wWiUuOTRXc1trelAzcSJlaVFBNlNdPVdVZ25EUXQ3cGE6QyNdUV9JeT5CTDp7JHkhOGhLPzZNWi5hbW07OVRmJlRl'@; put 'VUprfmA1dyt7OzMqIVg3Rl8sKEFpWUtfRUJMRTQ6enh7UUU3OjskcEp1NCFQeV8mNnZ0PilLUSxZPl47dyluUnFuP2omSUl6QldfaUxbcCx6Jj45eVN1P3N3X2VOUj1fOnw4UUJnfFdHVF4kdTlDeGM5SktUelsrenU5YHVea2J9e2h+SyhvWEtmRypHNls/RjZ3bz49bXdmeGhpdnxIVTRSYjgm'@; put 'Z3pHaD9NWFowOVQre3tDQStfNCQ7eGY+Yy5RMSlEeUZ9blRIfTorbHBlfkhucFJyZ0xRJkkqb3lfYEEyJSFaYmgyWFh3ZXV7WTs2IU57QSpEX1o9ak16W0xNOFlhfU1rSU1qfSFUWWQxMXV0VnIlYSlVQTA9M08qUVIifn5EKn5VLDBUNCo7MGJqO0AxSFNJY2pHQ0leQE81Un0wSzErTDRNVHdu'@; put 'XUt3d1JOa09dYCx3dUd1ckZpO3hZJl99IU1VUTc5MHdMWF4seSF7all2aSVpWlRwSXk4QyoraUFHK2RaVDFGbXtFa0ErYGs+MFFaRTlyckg4bS5DbzF4Nz8oSVs0dXd+V1JsQzpTTX5vd2hOLn49ZFpObS5gSkpJPjtsV35PeXQkPW98TElGfCQkTjRVaFBpPTZYZ3dIbDl1bVtTPyooJCFXTD5b'@; put 'bys8NE5hTTh5ZFY/K3EhUmJRUGhHfX4uWkRaZV13JUNNJllqXTZtIn53VFJjKzF7MiMkSH15fVpON3QjZWlBTGJKVjw+LiZvQzFnLyM1MUAxc3c2VUAhP1htOltsWFNvPSRiUnBwKk9VQnwve1I9WU4mcX5WYE8lKz1lQlk/JW87dnJUc09IcGd5YCtLM0lWZn0/bSNwNis5TGkxR3BnLnA0NFBu'@; put 'Pzg9Uj5tdjtIXn0kTWVJbig1XlUqTGRWZFc6aEI2TmclOnwmd2tlOmw+Inc8TVs6YmlQaS42OnYhJjM/O0M+SzNpJl0hUV1KXmpSTV4zRkw/MlYzWlFPViVyTy8sZz00ZFVlV3JgJV00SXpuYlFgaUZnaCtjeUdUfUxSISNneHleTSs8N1tAZipJKi9mQzRCSURlRE9HZnlgczQqO2FzZWU8Xnoz'@; put 'RCZkcFpDUW9CQl9NdjNvM1B6ZCYoSG87UDZmNnU7fmJbJiRTVGVNWlspXTVPSUBTJjA8UW5PQHtEUjFnMCFOMGFqYUxfd1NWPjR6cy8jalR3NlZzM3ghaC5yITt1ViR1InEpeEIhRykuP21VRnxfVClQcyk8Yj9ZQ01FVXNac0JQd2tJc0JbXTFgP0A3PV5Tfml1blBQUC9pOH5SV1sod2F8YHFe'@; put 'XypdX14vTWpkaShQUXF4KiJaJWlhP2dxSC9jNyhPQHNKfnV5aEZ0IzhKTDQ9LCYjIlMuOUF6Kj5kXWg4L0tPTk5bNExZMjBHTHIyLyQ3V15YXUcvTTYyQ2w2eSRBaF4yendtNk0uaTRPMHpNQzFSOWNdWUgpd2Y9aVlpez9XbHtuTVQmLnJfJFdYPmBgYHxJPWdhNV9KbD5sKD9RcER3NntkSVB4'@; put 'JXtjM2hARWIiIiEjX2YwaEFGJH5MJkZ5WlhLcH5yezJPK0AuTnAqcFB2Pkh0W3laVURXMzA4OUpEKDM+T3s0Z3xRN2VoN2ZSYmU2VUtIdTN9JmtjMUhTYl9FKkIrJUBJQj9za0p2SjxmbGZxQ2lRT2daRmg5XkBjMmNBI3dYYWtUenhqSjNZKzVTWGQobmFCdURIVTlXZmM4YGdCNj0iUzhhcVU/'@; put 'byZ+QTVlLkxuLzcrWzMuYGZhNS5NSlE4fVFDLyptQzN+dGFUeWspP3poTW05YnYibXQ3cDw7Syoybi96cWZwWy5iY3dnU2teZU9sN0Q3XU9pMzo4flY0biVsYlNKPjYyJmclQDFDcEclOm9PY0pANmowQkdHWWp+dF1SaXM+S0RJKXEjY296cnMlNm9CRzN6U3Z0I3c7TVRSNm5lKUdveUdLYDgo'@; put 'fVlEYEVqUjk6LnRTUmJgU1tvPipMVyVsdyQhan52MXpPMi4sUS49PG1HMHBHYDFdek83PkcvcTVfVl9UJmgqSzRya0lfJiQ8WH42b3JLZXZpcWU+JDlnWkhZOUUoazYsMVQjcz1ocHhqUTopViooLnglbDI5dndfT0ZLVHFBRW9xUEhWWnU0KlslP0pnTmVjKStXLFErXm1aLnc2TUZtZ3pdfGli'@; put 'Q1BIKVYuIVgoaT0wNXhXOk9TcmNnQzFHKD8lWE9bXkQpWCxvczQqR25XNzM3YTE8eVQ3PVB5KC8wVntRPlIiPjwqSyZ4PmxuYk8uUlVbUC9ETE1kITgqe3FeWyF8Kk10dFJISVdZdVMld0IxS2RtX0kmNno5TnlhKH0+bWUzRTMkQ29dNmxXY0BPKGdUb0dWKHx2aF1fYzNDfDVXITpMK3dwSzBV'@; put 'XXRyKD9HVH1PRDxXezs+VTFffEpDX3dOdFc1TGgwVlBmPVs0VG5FTXE5IntCRC5RcS5FRGBXYWtLMiF6V1k5JXFZY3ZeVTZrej14RWY6OyIqSiVtRTxxV3J5LFlFeX4uSzZLJlcpNVJjUlEkTWt0U34yPDtVXWM5ZSVDJkpqQVchYykhPk9Ba2oxbmxqZH13YGRBXjtIOmA2OkVnfHcsVCxXOUdP'@; put 'Pzl7dVlYNz1vSXdiQEgqQyIsalE1aHooa2FqWCQ+R05ELHZyXW9Pc1N3Q2gqKztQTjt2L1RyNjJHOEVlXl9vfkU5X2AyOXp8Nj5dOmlGZCY6VSwjKkROX2RffUxAc3VqdkUqPj4jX0s1NHdAKHl8UVBVYzNRLFttSiRNOWk1d2EkcEl3YlR3bj1jU2x1VyNFU0IpWWxlJSlESXVyOjZVbUFGfEA9'@; put 'bjpWZXtMeHRgJn1rSixZdSYoXyJSJlBlaW9QS09tTSNdeEEkcnc7cmBEX3FpZH08IyROI0hLKlR1M0guNltkP2hpX1BOc1kseGdBKUJldCxCVVouIX5fRSpzSWx3TSt7R2tiO0lrYkY4QjNkPEoqR1RQbTAvWmhnIUpsWFdIQF0yRGNORF0/Zkt4UilSRHQyQV9hNyEvd3s3TTAxb18uWG99a1kj'@; put 'RTg9cmVAJW9dO3Vyd1YvLy90KlpOQ2EiWSl8KlVHcCshRytKZCVEVm04a2lyQH09UkVHY1YscnY3ej8pQyw0OFE/Ils0InZeP2lyO3woU1RYLzFsUVFeIV8pU1hhO0ssdiF8KlFtd0lZcHg1WyUmMDFgfFElTGwpdWVHci9FaVt0bTwpfS9YZXJ4XyRsYjVeOj5YRi5oWyh4Q3RtZWYqdGI9MlYu'@; put 'KFZxbkNVeCxNaVpHNEchdkIxOXNqM0lJeWJsdVtrQCJ0Z1ZBSXouMnJVVjV+LGZBNGlfPixiNVlMUDF4Zm9QWXJBRWFKfWwsMTBaWmNPNlFuPi8oIUBEZzgrdFg7YiFuSnpMV1IrOW8iUER5bkdbSFJseW5VTSVMckZXVEZeXVEjJDtzezZ7PFZeOypDSFdeclZlP15ULHR9KkNILFNLTTVKTkBL'@; put 'bTFfJWx6L0xOPFdZNSZpUSpXSW8kcDwselQ1XUY3KDhZYiMhZSFwcVk3N35Zelo6RkVZTCFAaWRGI35+VzEocUVoTDBJMFgpRjhbUkhQSDpWMzhCTHhSaEpDQiN8Q2pbdjp5c0NmNGtifj9aRy9RY1ROYGosI1ZhUGslRXBuT21DeU8xJCp7JWc6ekZxXzx4VHBbfXxsZnZxa1BVRnlSPnFhLmQo'@; put 'e3MjL2N4ZzsvI0RjTTQ0bHdeR3VUeFpRUTZSRDA/Z2QmfVokZWQ7W0BRY2EzbXh8XnRrLCp5JHpQSzp8WihZXWsrIT8qVW05Mnh4eTpfayZKOlRCNyR7RTc2dCFgdjhbIWRGbHVDNl9OJVVLdDQlLFlHIndRV3FvVl4jd31HdVMoO05YSy8+Q0Q3Zzs6V2VDOT5SMyR+VCxhNEpHViVVbCQqQ2Up'@; put 'NVUxVjVec3N+TyFTKjBdeGl3IWpMVEwpJCI2ZiUpe2ZhejxGLHh+PSpHd18kR2QqcVdNUDchOz13U0BYRiNUcGAzOm9AUG5KRiVkZ3w7T1l2WF9jJSozK11FU2E7V3RMM3kwXmFlRGQpWCRsbnJ3Y0hPNi47QWQ8Om01NFZRSFVDajBvLnd8W1IkfXM/PWRAL3xoejg6IVEhVHNAXThMVU0wS2A3'@; put 'KkYmXWNUZlk3WnsxbnMzPGkxdXpYRUZCLzBTbHQqPG8/Vk0mOURRYXUxNzxKVHdHP29rUVFteEQ6NDpqTHRnV1Z5aCombn5tbnhVcytSQ0VfWSI4NnVSTCNneHtyODBQJnxlZ2p+d1lOWzc4ckYsbXkhQjkvK2p1dFNnK2I6KSNvbCEsVnJzREJ9OShgfExwYXdwVGk2eSx5WC9QR0M2YkpVPXEx'@; put 'QnFIPH0hOTNuVU5GS3dsSnRdTXRUSy5BTHI5XlBASmVXJUYjQiJnPyZmIlRZTEUjQjRMKUMoIyptK3xCMzVSQ2tYI0lKW2J1O1VBaDpPNzRjciE6UVMjakduZWI8eEV8VFlnPEZZe29lJEZJSiMqRkBBQF5rbGJyX2FlK1Q8alpXd01TQkpNUyxrWS5idCVWV1ZsSk59aT9eekVCfnNzNWc3SVdW'@; put 'W3RkMFpvalBmP359SV9fJTZOSDdTa1EvWGhlMDVGcEBbJThJJHgzITdyYDtgSU9WVnVIfVBhZldxbU5kc3F2QkAuQXpAVDZlLDpPPlptbGVaRFFgfThRKjxmLFA/b3QmWys1ZFhtSltxPChDO05+OEhZRFE0XlheI1VUUDZeKkR+VGNKLDMsI19hamdbaXtiX3RmJn53Iik5cXk3YFhoUDI5LFBs'@; put 'RX1ZKCFjaWBhfGMxJFYvand6KE5yInBZJTxoKzFwem9PQWNATUJHIjhzZmUxSDZGWHglcWNuMHpQYXo1RzNXc0N2PHpYZHNwP3h7VW45RUI+O0ZrJUhoLl11aF0iTkMhWDlbJUcqeko5WHFFNmttKiFlKzdPdWJzenZddVNLMFI8XU0/MnZqQmJUaWsvKjJQLjYxdyN9PjBaZXAxREpEMy4sQkkx'@; put 'MnhPOzxoYUxYSChgcjRQNnNXTVYlSSwqeHd9Ln5PdCh7OjFiITopVWBSJUcxKHAwZ0xaJlYvOXpvQnAqSiIoVnNaKmtfJFVYazEyUkoxPytSOnJ5bnJzSShNekgxPWokbGFASUo5c1h+TG11W3I9blUyMCZySFY1WVJFVWQiSHBqcmBQV1lGLDEpKXZPUm87W1g3Sy5IW0R0fGBZYCZEcEs4XmYr'@; put 'W3VDWUl5ZGpnYDtOcnp0JkJZYSxQSU9FZmlFSVJvWEt4WE1Fe2h3fG52SnpZWn1dKmMjQmlDZkBzfEJjZGVnaihTVHBJL3FEQ2doUnI2TEZwUSZ0QnAoeH5VXi9IQyJGRHdraTc4RTc5Sz1xeHJ0PjJ7ODMlZDciY3lYUnMjPkU4JThpYVFTIVpOclI/USZ2XUIwdko8LEsmZD06YHpPczVoWnRU'@; put 'MVJuVkhvbiYkJStMdS4mYGpCcForK2FMVlV8dnFKVlJkcD5QaGYuaEVZV1g+fV93PkU/LzA2UipbaHNpXUY2S0JsVFhNS1IxWXIpM0NQeD5wUVFdVFNKYCVWO2xOTmZxWkwxWVA+RF9vLmZweVk4fWxNSlVtOGk5Z3VPKDgmXnZaPn5ha29SeypWLHlTfDRYUE90WmBPKXkpdEF1OkBCQHo2OVBx'@; put 'dEBwSz1vTFtuPVFCVX01Y0xTci97bmUvX0NLans3NFMwQitxU0E6PlZlcXllWmBnUyNfL2Y1UXpvSTZMQFl6WHMjdWozeWtyKCtZQ3FWZF4pNS8xPyJ2dGd9JmlLaDE6VFBeKVVkd2ouVGd6fWgvaGpUeWA0R0pxX2dyYHUkRVExUXtKO15TYmBkXUZWdkhaZzAyLDNbPCxrRT0iKmZkUG95eFlZ'@; put 'LmN5OlJmQzxKQz46c1RHYDkjfWhWPCM0KSsiWjlmbXdpa3dfS15rYF8heHtPaiwqJGlfSn1xKElnYzx+ZFVXcCtAOS9QIXkpYUwqQSJCSyU/KmVCeGwmM3c2fWZCI2lWelZoZTdsfi4pYUhbdFRGRCVCZ3Z6dXpjdVNXUkt2ako6MDQ8QUx8JCNReHRDVXBYWltzJT9ocztQLnw0RlRULzwxdX1x'@; put 'NlorX25GY349OS48VjJEO20xQytkNXkkUitacGRSQFVhXjRsNmNSM0J3Si5rekRYblBvMDpmeXJjMzJZTzcxRj55Z2tfXVNWaiR5SDdxVFE/biM0cSJAZ3xHJUNVW1QpZ1VPaUNZYChsOXBdb1d3PTRERW01THtYdl9XRWg1cGt9eH5EYkNTJW04OUdKZS9pWTByRyQ4NkY0P1FRL1JWcjQifj1m'@; put 'KD1iKTF1d2JTIipYbD0vYFFMN3RYY15HJSZ6RjdCIWJ0dmsheH5bWX5TUlVlWzZsKTAqZkRAIllyZTxJKiZ5fF5sTG5WNyNkXUg6XnloX1lXRjoxVzlxb3V4bGloOWg+IkNxb3NyQkg0b3ZCcm0qPkZuc0ZeVmI0Ym9JLz5NNiwicGdtdHA5OyVISVhefU5eOWJ3RG4wb0tFMXZxKFBGSlkoNE4v'@; put 'KUlOKjJ5cCVIY3YpVFIwUCFiMGdJWkUvKTVqN3Y4LEozN3tsbmVQdVNCT3dhb1NLNmpOQGNkSFhdWH50Zl8mfUlefD1JKy5IaEE7U1hgS0R2Wj8mOXcjSFRFQnJrPE9EPGk3Imx4T3AuMD5fSGxUeDElVzJBTCx1Sys0K1tRRE91LGBmeXM8SCEoMmVWLFgyVXhndFtPSUJSbiwqWiRaM3ozay5Q'@; put 'SyRDSmNVOHp8RzxNSm55R2Y6Rm5xandOfms2fUVCT1ZofUUwOGV5d0NscWY2VmllVXY6V0xWQjdDKDJ8MGlqOyV1VFVFbnpiS2BqInpMMSx2SmxpNFN9O19NOiUmcU9TTntDPE4qcCFbOFYrS1kmRkhYM20hU2wwc0p7Ol5Lem5wV1IsclRxayU3UyhvN3debWtiSHFPen1gKV8+NTJOaFJtS3Ro'@; put 'WyVZXkcjOjp2ejRodCw3TzBIcSQ0STNnV3FIam9ddnJRNXw/K3doOVBPaG1wQ3chXn0lWC5OI0sqWyNQRX5MYWdVWHsoKisyXVs2Tz1iPy9kOSVTO3l4dU59YyQua0E7IUg1RHddSHlOcDA/Xz1abSw7WVlDam5FXSMvemUiST8kcj9GN10/V2x0cXx3IXxBRztDbHRJbmNVenVgbXF0fld0IWRP'@; put 'JHFRaDI+KEopfWlLOERqUzUqMyNVWEw6XUpkSGNUJiQxL2c7XkwiI2lKIX1XMnx5RCVENTRQMFArOloie01GY2txM1ckUjhFL2s3OnAkekkic1EwQnk0ZWdNandbMmBVK1gsZ2Y/WVJbZixUSSJEXWg1WzI8THliSzxWJlBOJlFzbjArPW9LOmtiSG9mfnRuI3sjWDB1TmRRZHJicndeU0djSjp2'@; put 'ZC5YeHI9dU9Tc3svfWhjU0lBKWtpOWhxKyxdZWEiNXUmS2F0MHpDJllzVSlbNDkkM3dmV29QLCN+LkBWYjJ+aXh3LEtfISw0cj84aWdKIVFrKj4lV2NofVdrdDAqYW8/bzkwXzNBLHwxdUxPJSk/cjIuWGNsckVwZW0yLjp8fDxkd11Ke1drZGZFLlZjSFdHN1cqY059JXdJIml7V3tQKn5ZUVk5'@; put 'dk9oVkxoTnJ8WH5bdUpvaTtldmtSVVVJRD1+NV44WV1xMGdMIl92YjVjMGRWPWdfZlh6TTF1K09wJi8vRj0yUlp+LG95TjE5QV99XzNHbzRTOSEjdTVYZWNsYGRwUV1TWS5EXy9xPlpdMnRYIk9JMT8jbnA+fjA/cDZeeTEmXWtnZCN9clklSWw8UUpkQk4jYzhNIj47UWpSKlc5MEJVZiJKc0NN'@; put 'c3g1TGE6Zyh6dH5veUJ4aEwuI3FeKXEyclA7VFU5M0JaLlMiQSNTcVJeZCtiRnEmSk5YZzxzQXBaIXYmej1YaWdxeE1OKldCbWVXY1paZiUse1BIRUV2YldLdncuI2RqSC4mbXcqeTJxJkMhLGhVeHNJUGdtODl5YjJzUFJxQkpDc2kzSGRaJklieF1KSSw0L0c0fEhRVG94Nz9FTl5aOWw5d1Q5'@; put 'RT89UXJxaTYrWTIjRyg4eUUsVnwqTXk8bCt4KHBIQzQxQHVOazcmeGZedk1RIXx3bE5AUFtRS1dNWUluQlBHKXREcjguIS93VntmXzFgalpjOEhJUllgW0t9PTNrNDpxeTprPG9eUDpXLjRRY0t2RTpXWmAjNlR5cX1IOF1XZWBfM2Jqa1VKNF9ROWlkYWt+TmxTLD1RfTR4JktOXVEwL0J5RS5a'@; put 'aWdaXWl0dCk8Yn1bTWliTCZgNk90REJIXTNNPDdQVm14aHhdWTY5aDlPcnNxPl0qM3Y9OzJgYihVRUBSJi9fW1lUIkJwZlovQz0uIlpPMlk+a0ckOn17MT5IajwhO1duTEVMOyEyNSU8YFlwKTpYISZQJE9Janx7KUdle01HXTV4e2F6LDx9b1lGVzElNG9GW211Mys6XzpbazNdQ0dQdztecHNh'@; put 'fGcodF5MaWRoWVMwSS9uO1FsTTpbZ2E4JEl0VjM9NkI5MXx7UHEyV0pXcW8vWU4jbyNWWFE/Qj87LDEkRllwa2t0SEpBa24qMis7MGFpNEJ1P2tAY1pAUG1hNU9FOVM3ekxZZUAydTUrOSY3PVNkfEghbShEaVVyKlAmZiI/LntNISZoISJ2VDNCQ3VvPGxKJmghYGsmQEZDPVI8e3dPUFReZEp8'@; put 'eXM0VCJoPkx3RTtSVS92TWY2eTlrRSprd1E/UnZvajFQeUUlPSYqXiVDYHZUN2x9eDpJd21oS3s9KXErWngpdk14YFc3OCxPN2IrMHU/N2krRHdzSjs2VCRAWWB+P2JCUCN0VTFRVWFDfTpmY2UoWDdFNVtDeztUOFpNUj1QfkA4MWlhU3txe0haPDRMZ1l+fTZMWSExRGkmPThURnpzK1csdX5U'@; put 'PV5YcUVlZzxwTy9Yc0l2dFR9d09uYmc+fHcqN31UNH1CIkdPKFppQH1WflpfVlZ9I3krU2FUcFsycTQhMUl5cGV6SDZga2YrJj8sWCVkMGdkRmA/PU0pYW1CIXdlYCUuWD9NRHpQTiZdSGl7dzZMVXNZaHQ/P3w5PUZJbjxbOnJDdi5bYkldRk8oSmwoPmtuYUVET2JHUEpWa1g7d3FxVEs6V112'@; put 'KX47O3p6a3B+c0tmIn10ayticHJJVTlaOEo3dU87WDIqInJpPThiQ3tVfkU5XTd5UUg3fE1UfC8qIy9fPjJVRisrYntqYnRnV0dEZmVzeF16a3d7bkUmYzNYTD5GdENxVzUuVE1PMyVddks7RGxvISV8ZX5YVz47LFl7YSpUOGVyYFJ+d3srS1BuVT43WC9pfmVYRyxpMXMvRzFEWCkiKmVybFpr'@; put 'OlIpMXMhRWFGRyR1dkRMPklwPmYjO2lvZSRrNyspMD84ekBhfEphd1kmIUtpZFs3azRRNUd7WSROZ0diK24iNEJzblU/NSZyOXVJKUhaeW1sIzovMVBKaFJSbDAmMW5gTlAjQm4/fW48TnQqKWp0WVZFTV1TRk0+YFE9aFVkQUA9dyR7VjIqbk0vcStBWjlNYUR2YksxeEQjVG0rOWBHKCNKJVhT'@; put 'fSJtb2dtZUJ1eSJxTmhaKDpNRUlWeyswflAySypBS2M5KDlaZXI/dXk6fT8mNEQvWjg1W1pGaS88ISs3PTBzbj07LG1aLlpNX3l4fSg6IzckJDRFNmcqP2dWfENua2xNfl5YZS9aOlBfIjplWG1hVGZ3K3tOa1hba18sMFhiYXQ+fFk+bXhhaChpQztGZy58elJTY09WRjQ/cj11RD9keVlDQD0o'@; put 'RSg9NG9VTnkoOCpSQ0o6K2hxYVJoYyJMfSs4aWhMI3lzNV5eei5tMWUxMiRnYHImS1ssRkZqYEB2RkIsPH5BIz8iMWJKeFZBUn1KO0N1Q1ppOVd3UWh0RFclY185OkhVT2Q2TEhbdytReTlvayNVbk56XVQ5U0goLiY2Mm4uYyVATnNdQCFxZnhMXUhPLEw+UkRxPH5kNHc+dzRzaHg7YDVpdnRs'@; put 'QD4wImt4UUoqVT8/OCU1UE92U2NGSStueHY3NyZxTTFISXs/NDd4YDB0TFlebDhJbTZJPVcmfFpeQGJBez9pO1NuJk0+YT12Rz1aZjIyXz90PVpgTCFYSW0ubDp5b3opd0AvXmFwUWApWzV0LF9NdnVjI0FMaz4hcVs9YDAsJVZOX0BjantpSCVgeGU4ZU5PQmk3Ly95SHpqSXZsbC9VRXo9TSZZ'@; put 'JnBfKWpBMHBgZUdeKmhGO28vOEFsb2IlQ1N6NkB6a3dVIj8qMFEpL2Q2eVNDZkIsQUY0fkhIPTxoa2YxY1o2WWcwLCFpKUpqMHc8aUdDNXlrSyw5bjsyM1MvUUwrZGAye1N0KiI+VDtBbXIwe2l9bEk3RHxwZkFWMEdlc311TnBWNi8pXmJhM2tLcmFTfW5FaVY8dTtaTlAuPih7UyEvVmA0cWEu'@; put 'V0xQW09kJXVLYiRTa0d0XXZnZXpQR3lRJDtUOlMyUE9lRjVNJCY3fVlUNz5JN0xzQ30/Ri88NEZrZzBpXyVncW5qJGJKX0dLb1I5UF5SekJTfGI1QmFxRi4kcS5CKVFOfjo9SD1IfCVaT2UoMi88NDpfJjorSDUrMnFBPWIvL31OSDlxYXc7TER1QEo1YHhMPyVkUn1ULy8xNF5rSzh4MWQwdyxf'@; put 'QWkqZlQsW2lgdzRHKkZ9NS8sZEFrWXZ0SDJ2c3ZEUWdoUjw7SDxecWEuOkksUHFHd1dnRWd4eXZGNDxTVjlTVkYjXTQsKiF1XUxMRlhRXikqWz08OXA3dWIwQm9aZV1zRzl9ZVQqIT9DbGVgWlJFJV1la1Y5ejksPmlrJGBdUDFsbHM9ODQ9XyFtXjEobHh7dkRbWks/ZSZQTHo9LGxkM1lrVWEr'@; put 'V3RFSURTLjNYKngrSjR2e10ydEovYC9fMV5zQi9eZz9GSDNoPEpKblJ3N3ozO11MMlZLeEAqMEVhQVRDTjFKSE03Ol49bE9QN3kqSHBoeVsrZXJlR2UwYVJHTk5JIloiNjFYc3ZHajkiI2xzazskaG1bWDR+O3EyckxmInwlXmVBNmgjd3lqITZoW1FMKiNpT1d1YyQsKTA4NTx0PCldOnxqMmVJ'@; put 'RjxTUUdzKjBNXWR9MmMqWCZeSlpQR2Zqbm9ZQltoSz1GQEQpaUhvL0dsKV1BejgqP1I+LytDK2A7L3pdITB6PSVtaS44NEdlKCt5UEFzWEp0STlsek5WYHFxS0U0c1JCOClaWWJFbj9rXz8wVil3Q3F+Q15vP0BhQGZRbyMkb14lWT1VM3EyTXFaPHRMaSFIZFRHMSpMaF48a2RsVWxSZztUTUs6'@; put 'eHNdaE4+N0BIXSRjQm44JT9KaSkwX3wwNk1VXU1bb2p5c0A+Y2FQa1Fke2c1eWQzaCE2IUVYSFdRSj9DZVNSc0k7YipgPz90VUpnfUJBL0lIMkBqbT8wWTZxNkQpIVEoOztWYlFYUFp4bH5GQj18QUtSSH50fmdqOmV6QjsqKEhpNDghKSF8dCtCTmV8YTd9KU9zcG9eNkt2JVA5aWhfRV5GOTZ8'@; put 'YEBDcjN7PW1EKlFARilRNCIkYkghTF1ral9eRXBuTkZnaiJjT29WLjtgY35ZU1RMe308fjkoXip5QEZHNHY0WFJUeFBqLzk4Ny5WL2FYXm1YKkVfd19wK0xhIVVPdURBcV1kZlMsVGFfVldUNklXRVkrKGZQcDEvNXN3MzRkalllbzBCUVkpanc2cTJqQ3ElYWAzeiZVQXJTPXJ1Y0kue2xlYmdd'@; put 'Pn5ILDg3Ujt3YS57Nnk3fWZ0JTU7N0coKCZ6aT0kSkl8ayMhQHdGJXAxTnltPkBZTDxIbTZzdG1oaU9DY2ZCcSE8Ukw1VmpaMCgjbGRUVXUyQzdHSV1BQXFJSnxTS2JFWWM4K1Y0Lnc7ZlM4MCY9Z1pMV2UvN0NgUnlQaFdCV0ZOQ0s/a1V7TzBaZDQoX01tJjB2PF4weTp2PHo5dSNePmtqIUh4'@; put 'QXU6ViM1S3cqZyIxTThScDJ2PnYoW14la0cqOyJFdVIuXUxEWjZPRExCfT4pW1RKPCZyWWFhVWFkPTltfFtYV2kpW3RhMVQzWzJmeFdNYEBsazduRXlAYitpKUovXUZ6MVc+KCE5RTFhU1dYZ34wMzo2eW5pQltyKj51dSt9QVo7IXI+KTtUZytMNiI3UXU4OFgzbmpHcVpvdl59dF18TXlJRlBq'@; put 'aHVTVFI6N34hYytXOFtgeiVjYGEhIyZrWy91LkQ0bCYsdDBjQiw7KXdjMXJCaXMuRj0vWEwhOn13aGlPPkheMlJsbk9mMDlqdyJwblBYNCUxMTxePXtRQ1RTUlslNXheNnhudnZRV0l2bipmV2krJmwyI00uTzg4LyN6LDtGelArQVNAbG0xOlRGWE1oVSx+KE8yMSlMNDdrJWxSIjFsTDdyLzsu'@; put 'Uz0vWjFDImxjLnNXfVlIQl8zTm1XdSJiakEiMk8+R0JxW0AoTCorKCkyYyNoMVJCQn1uMGMiWUJPNjdANXpJM2t4MmJsano6P1MkQT53Nj1LI2ZASGw7fXBCL0wxTFF3Y0dhUi5QT1hrPDl5I3pKKXFve0d8bCpJS1I1UFFyc3pnLH4zPjRuSUAxUHtqZiFmJXVoX34sYTdTP0NgL2pyWDQjL2Q2'@; put 'bSVDZzRnKHZzYF1ZRFYjeF8wLzpneVg4ISYzR2dEWSxvfFc0NjYzQTg8QTpOKyRHK0hrRDQkdksvYV1BLEBmV0lIPEJoV0t4TDQ8TXliQiRXajI1X219SlE/UzVGSnIqMDBmdCYobFtaaG4pUzRNbUZ7VGEic2F3YixXZnR4cGlodGF6JCJtJVQzbTImaUxvd21BIVU8S1lsUVIzSEJMdiFiNylz'@; put 'c2hqXi9rYEt5ajxgbTUzPmFWdkc0QTQ8Q1dBRVs8VDc/RyNCNWN4cWlheWRZaU86TSRLbEdlRkZPSStlSD96fTQ1enZoe2w8Wm9BOU5+eHhoYDRzamBnRTNAUjtDUjJxL2Z+RVBScThwYlYzeUlJWkJzdzJFPytLN1p1bi9BZ1BJKUNXMHxHTj5QN18jIzJnblZEPCI4SEBhPDZAJm1vLiFqUiVK'@; put 'aXZpW108L25iSiZTWSooR2lsMnJSKW1sRCshRV9eVno5Y2IiPEA3cm46cCVMblFjOUpfei5UeiIuPmpnSkhfZS84L2NkVH4vdX5RbGg+dFpFNHQkXVFLVHxWWXNGeilPQ3toKi9AQUw6X1tVKzxGdW9QZCIqK2Q+KD1QRndiPnU4VCwmIyFGRj5lT0hxZiZMMktMPytjNEMoIkIidF49Z1BHVVtC'@; put 'bzZYc1EmUkg7bnJ4UCF9X31TdEg9V1t8aShIQ052QkROUyovfitzLDdue2d+N3RAK2A1M1JIVjFZLFglXjUiNnd3K1NkR1N4WDN6On5HdENzdHxVYSFvXzIuNlQzP05QQDNVUDs6SylhRUpsXVB5OCVHPjNRbXJfby9yfkwkcHtNbzd1InF8P19JTUR+X2FdKEg0Z09PYSs7dXU6JHhpKz4/Mjh6'@; put 'VmwxdURUK2U3blp9cGt8UjxOeStlay5BKS9VKENgUGxGUyxpRUdZI35LYXtASipVQkU3e3FxaXRJSXFLPzwwcTBnRW9AUU9JRGU4VXdDIT9eTSJxLGkoLCMkLipWeyVaT0hAS35wZj5sbE9MTFleamFlMz0oSSN0JmQ7ZnJOQm17Ll59R3A2Z0Rqe3d6Ok5aS0UlIVd3SC9HSztrdz9qJXE7OiI2'@; put 'OyslWi4oNC9yY0hEMG9eOnR2SEAkPlY3fkFoXktqb2hGPnhVfWM2fW5+NHJtZlM5PyMiYHpUJStlWD9wSlo8TjNmWm57YGsmTkY8Y1Z+RGFgTVdlc3x9MlNiYUx0bmp9Ul5ddUR2O1AwXk1FR2klYH5aOS4+M1I5LzdRIXExQkZMe2I+UjdtYWAvezU5fjwzcjtdUTU1JnVhel1PPSYjKztueV01'@; put 'W2x3MiZARnY/OkZmSXgqcV4+M1pGbGZ6TyIrKW1RYF0xUVlGSEYuZkRIclB7W05INSV5ZzJQPllCOlVaLkhyczdiYjs9RXJdTjBWVSRdUT96Zj52TGNeYm4jSEMlT0IkQFY7X2dKTEk8b25qdXwkcXhhXnpJayZlRzJueGNJMHE0TEdwWURXUHFmZ2BaRHJ9b3VtVVhCajJXX29NRGxOPThyKmwm'@; put 'MiQ9OlY4WUwwVEgiLDRrU0IocmxqSzhuaUtGfHM7I1k6U3BEPUg7MnlQVktRXm1eOXpfLHRyQ1ckUG9PPUYyeUlJdkdjZihIRnFFRGwyLn5IbDRJblBycXtKIWU8Qy4vTWd0am4hPjQvbzI4XyVOU0g3QUdTan5NUW9kb1taQTloYkBqXjAyUnF3STtkbDlIMmJXPiY2YHlYTzckd1tiMzs4MyFO'@; put 'bCZSblQ5SnFJS1Q6W2tFODtQRjwlcTRCOk5Id2ZZUExWa0w9IyFLJX5TTiIvJT5ZMnxRPW1PP0JDP1csJGJCXjVKQV1XLy8mLCs/KUQoK2dsIjBvOzQ1JiorTSNKaDtHNyRVOlY+I1JgIiRCOT5lKm9gWSIhJSxMUm54VDw8JUUvYEp2THw5THJhLCM9MGhwfFY8PzdVJXt4amUrd2J5XmB6Q3ou'@; put 'dXdPVGRuVWMqeXYhV2VadEJWUHs3djU3N0tFaGlaOi9gMl9ffS4kSm49RlIyQ2cvWWFNWGQxdlZrVT56bilQRDNtbk5IJE0vVi5xWX5bJHQ+ekN7ekk1e3tOSnhKQyZHanp1LGpYTkR+Um1rZlJtJHglYzE4LiVRaVdzXT5lKFA1Lm0rOFZyeUpULmJ7I3J6VjRtXVhoJWdtZEhtOl0oWGAvaz1R'@; put 'Jn1VQTVhTWJVRXJVRDhYfnVIeDRsMlBDS3tOO25gNT19bj9XQj1DM1RAQ3ZDMilzKjldbkw2Okl8LkxMb3s9W2RPMjpme2YhfmEwNltqJGhnSXd5Kjc/YlFbJkZyZ1g8UjJrUU8yOTUoVWk+IWcsN1I5cGg6cmZXQyRPKzIuZ05aRUljWnNXXTIwZ1VdXXIlY244OnBxa1kjeWZiSFpFN3F9fnB0'@; put 'fW4kNlssKk80OH1WcFZlSnBVInM/R1t6OVd2NFJ5c3BZVzpoIVhTfW97Kl5WcWlqczc+dzBrSG1nZ3M6PXJeNUxhVzZnOEs3T3ldSnVdM081S2U4ISpHMFthbGtxakN3RmMpbjMxK00odnU4O1s/cVpaMnRudFN3RGxyK3hrVGRXRWNyOE9dY0UkLD49NWc5QTU3dmpFSk5vdj5QPDxAUDBaUyZW'@; put 'OTs8bT9CRERLeX1jQzckKDcpLG87QWRPcjBfZ21xcTtgQl9WMSFsUmRrd2osekdgSVtoTExkc1VacXFOPS4meH1ncF5oOTpFaDNKKzFrWTFPKWtLc15tcDd+QUxeKiErX2hoPGpNdUxEJUdTZipILzRHOCZCcWBaQjBNMDYhI3dgKWxqfDdCREtSSmRFMXAxRWJUISMsPnhXcXBrTkRJaW46T3VX'@; put 'dj95IytQZmVUX31RS01oXlRKT2ssQX5qNldFX3lmTyV1I0JYeUdaQkpRTG8lWDpjQCk/KUI9NUcxfU1iOWRnNzdjbUlUT08kWH5NYlVVX0I0djNGLnduOXdtSXF8UTliby5COmJrPWN8S3pHNFFFMGg7Qn52cEZicGppWV41QWVTbDNqbUw5W1oyP3svYjQxT3o8KXVifkN3SDYsM2JJd3FPR0Vu'@; put 'VCVQYDcxdFFwPGNEO3JNfDZydGVCb2lUdlh7QXVvZj4pb3xeIklIYTsuIVp8bm9yJTJJI057Y3NnM3BWZyxiM3k3XnI5OyEkbUZvSU5RKzVLMjhJT1FGUmYhbU5ucHNwX3hefiFYcEc1MEI2ZTc5Zz89U2phdjF9QXV2NXxbbER1fT9FUCVMVW1acSNTJTdaPV9eX3NdTnYxblh8MiszJFNpV3pS'@; put 'Oi9bP19uM2IiLEVqa3lZTnpSRjIuQ0RPPnFSQ0YjRCR0emswUTNlIlJkTzddRkNzJSZ5ZEQvJXdgciEsQ3AjN21uJVRuMXckNU4wLGlwUFFwZ1cuNG86YCNVS2M+bkY3N2VqRzBaeTJoWFZCIVNGTCZtK20lfn1ZNSoyeEw2Uik4aEhwMUt6UGAqW2tsc29zVXM7OzJRemF+ajJ9VSYpJTt3Jk8l'@; put 'XnJ9JmNKaHRRME48ZWJGYWw0Uk8uO007JHJ5djRXRjVaaFhGYGZeLFRMXURMNGk0OSVPRGQsJlhII2s2ZVE3cj0+MTNdXTl9XU9hTj4kalVuP3ROT20xdnJmblQvMlpkJG5QWFlMSFYiOCU7KHFVfXVRMyRgWTowWnhNKWdVVnV1NyNFZFYvdlp3Mj1pUDBuWS9sWClSY3gyPCJrIml9RkhWZUdj'@; put 'QEIrY3A0ejJDTV85NVkqPVt+aCtlLyJUI1dXV0BAfSZvK1ZHY3lRPjtwWmVyMVV6KWVYMDxpQGhpLFNRdHBlbXpNUUQ6S1JKfjFlYV1fMmV8OXpvNHxXQk8uIX4hKGhlImNVKDBAbXNNMD5vfDpKX1dMOH1WIzZBdSg9Mmt2RCRdaW86SFskM2U5Rndoa25STGNocTU8OU1TKDtpVjIiUGd4MChF'@; put 'Oj5dPEBfeF5lO3VlLjRwSHxPOjgybz9kSzMlTXx+RX18cHU2SmU8LEZydk8xWDkhdVskaylrTmFAQUYmLmN0PGo4eDFfT1YpeiQ/PG9ha2k3aVRUSilJK0c3czErI3BRYGIjJDk3IzpqeXB2UmIyPyxfPXN4akxxKWksLFU5W2NMU2ZbY0RKdWFLZlRMNEZZUkIjX2UzcjcxL30oVnJXWkR2eiQo'@; put 'W19xZWk+aTs2cD1WRjZNQEMiLDZpQ11NbzQsODJjNXtabTZJK35bMEF4VTJUKGkxJHNLN2Q3O2tTfTtkcnpxeFNIazc3T0MlRzp7Qm45JksiSCx3QFFwX0hHZ114WDVEcFErJn56e0JEL0A/aiNjUml+YH1TaDRCPHouRj9gI2VZMCF9OUIqQWpJQCs5NWtWQHo2LjcqPiQ0RklhTUBNW359OC5x'@; put 'NCtuYFhNaVt0N008bj4uWE8kdnkqJVV2Sk8qMyVBZl1qNVVeWW49fXpYenJScTtuPl9VdkZgfFV7OUd6VCNAISpgWyY2eV1FeWFIZj8pWSxKQkhpJmhtWWdQc3pEdGNlWFdDUWc/Jk03aTAxK01sPUYlbTx8dCRHQmYrdT59cns8akhyY1V+SXAmXl0renU9ZXdASERuNkRWdD9pZmYuXkhZNXZa'@; put 'QEdweGJ6W2kkO1FuPklkclRDaFp9enwuTWteOjJLOnl3Z2dRYihkM2xxd0omaF92InhVd3pQLCEsRWFDKmhwZ3xZMCh2K3ZZWjN+TmY7XXA1Xkg7ZiNTWzcsST9ARGAyfVE/Wn5SS21qdWZAdyRpOHs9UzA+Ml57JkU1WD8sSyI0OEFGWmF+Nn1falYpcG1feVJwPCU3OnRLUWhgdkNBeGZaVCZW'@; put 'VlZ3KCE0O2h5MztaXytYO0gvUlRbVCp9YjpkZ2twUTpxZWlkX35iOzB2TjBDSmhReExgbFtQYng1WyF5Kj8xZF9WNXpEXyFQYXUkajYxW0FnQitTVEN3SCJmUSs9XilbYyN8WU5mLkN7dnIuS19EXVpSMm1xKUx2UnI7MDcmZWdrZVclI31DLGxFKUBpKT1IQmQuJVRxJGpPaWEwV0FLWClwNnxZ'@; put 'JDI9TyhhdCZmMWF8SFNeaDNkN2NqeDE7ZEtrd3AwQHc2YWg0P1MyOit6fGx0TiJNOWhiWlRTM3B2NnZKWTJhODZ0cmhLcTRVYi9wWHpFJDJYdiw5c0psMXY5OW5USVg1flQxUTprfH4oQyNjVXRpYFZ0MyFIdiFBaFBmP1RsTXdWTjcqK2gqczcoNlkwNWB5ST5oTmJVajo8O0Fvb340UEE0Wmx7'@; put 'R3crTzVnUGteJD08KiRBMUxlIn0ldmwpZVMwIylCMjt1IiVbOX5GWD5nImlPNHB1ZypBT0p7NFFiTy9gUV9ZSG9PZzUkZltbXnE3dyhYK00oNUIhR35FTyRvUXA4LDVZPXFvLC9QSUUlSiFpJSR8aTs4VylRbmNxJWI9VjsvOUdATTBOOXRQfSUycyU0eyhIN2lNemFNOmQ/MXlsP20uX20kZEpF'@; put 'OD8wdkVnXm1BZjcxN21NbDklLjtSR3ZBWFhiUiU/elZBLiJbLGNRdXIySTYiUTtGUjZBT2JMejZ4PGBQTmdPPSQiVUojPGA6MFMiXT1vPFJSWHdTNyFUTjc+SmNIUSo1VWsrRXgzUjpdPzE4NHw5QDNvTHlQXSNqc2o0dHRkRzxYMFQpaUNTZU0+a3tEJTMwSVhTN1ZROlEqek59bWRKdHpHXjE2'@; put 'REMyO3JgJVQ3YjJPLGdgZ3ozQTpSMEFCL3ozNDhGJVlCWiR2ZlFpJX5PRFIwSEZDSCtAYT93VyVkVXcmWiZqNzNSbSwkeG80TGRCJnE6eyNuezgkWk9fb0V5TFFDcWhWTFV8YnVoYmVHWih6NCUrIU5tbF01bl9dWXJgflF7W3Qyent8MS8iSEI7UGVWdGoodyRePF9BMWxJVEddOVZfVjhoWlVC'@; put 'YzJVd2RCVUJgIzA5IkNDTktzTUNqeTBFV2dhOVtzPExqMzYoSzxpRmd1bl5qO2UxXm8wM1I1cXglPjA3VlgpX21dLmRMQz85RjJJNUFuJTwmI3xIQHBLKHZ6eT1PS25AZ0QyXWl9MG9LKVJ2aT4vQ2Y6eUU/QGJ8VktFV35NRzpYQyZEaSpsK2BqbGN8KnJdaDlURzlgMCs9JUxpX204X1gpe2Ak'@; put 'N2tpT19uQXdWfW9ORDtII0goUDFValVCPjE2bCk6NVA5djh3eiwjenJWSm5qYDNyMVIsSSoicC8zTDRmUzhWSmBgM1hzWVErPUVfJUcpNUk5VlViYWxCPFsvTUdFP3hPRVIzRlF+JCkwYVRsfjtBMHJsL2VeYE9rVzxLb3ZYaFFqaCJGaVRYY2tnZzxaezpaJWR2NWs9Rnd7OjojcjR3SHpHOHlj'@; put 'VklyQ0w0ODhMZ0cvRUAhY3ZKKFA5bD19UGNgKnxpY2RifGE4aFNgSGo1OTB2TTg+emYscE5xXV48UiQjMj46OnFFJUJ7KjpQX0AsVDNkW3gwKTI5Lnc3ZURwJH1KVm5odXJAQHImLGBzTnBQblpEISltT1dnI3FsX0k0LjFhNDpqNStVcGNXTTd6cTRzKXNlaFAsdz9+LndSS1loIzohWEQ5WUQ/'@; put 'YCx5YiVdVCRAVTx0Om9GRyRbP2RWSjhLPmVpK0VBUHZgSUc5UnBNVjNfZEZQP2xmWl5oOmA/OWkvQFQ8Ty9ncyE1JFV8fltbYzM3X2MwL3xPNl1gInBYaDBvU3JIQXxpckkvQUQ2ayo6RUp0QSw/SnduS3NEalJXL2sjRUpuRDJgKiE+cywrJHpCKUNxNG4sMkxdWT1kTDkpT0RTNiY+e2o+TGE8'@; put 'dEhAbVNLbzkhVmgjRDo7dkxWZDhfSTlvW0V1dWhJYndwbWJ3OjN+Znd2S1RbTzU7VVVARiJKNUhkNUgjWTF9cWs0RDNoME42X2FAcTU6dnhvPypbZkw5dGwlcEN0ajdfW1ghT1ohI2x6PmpRQEw9Lk1SayhmKDxRQ1JIRzgsO00zTCwhNnU+bFs1ci93S3FsRiwrYlRRSjh9UUdGVD9HW2FMXnlr'@; put 'OjlfZ0luWz1WS0tzc2BmV2g2XmpaUDBZVTB+e0VYSyhrNWZadFY2VEo9MTZ6L2JsPlcmYC5yQFNyPm9AfCsqPkQ6TSwrd1s6eVErfFF8VD1iJURbNnEzRTRraXI1TSpJTiZ4O1FKdTRUbHd0UT93Pi5idiF4fmQ1P2dNVmFzJjlPMXl7WTRSYHcwcWBNM201RXRyc3xKOys8P1A6c2N6SX45OVhQ'@; put 'STM1UTtUXVNwZVVDSCR0KjxuPTI9QlY+KTxmSGliI2shPjZ8SzpuLkRBRk5NXlEjZnBmT043XT1QMFhoKUQmNUtDUUNbUEtkTCF9fkoqIm1RNGBKQjtBMCJkfk4wdGh2LzBIcjpdUlRifTBGYnNhZ2BaJTkzdEw8WUQvZWRxZVBGRnNmTGc1VVFxZG1ANU9RUzVGay5nLldsN2FyJGpNRDgxUndb'@; put 'dCh6PCpGZEFjcV5DN31oZzgrP35sNW1+aHxuWD4sN15XY2BafVZvXUY1aztzdi5SdGMufWluQW5UcllSRUlpYjRdKmhVQm4hQHBTb19SODEqS3gibywpLzRPKnV7ZWN7UH1TO0ZiUH1WLCViXm07WF07TF9qMz9eP0g7cF00fWZ3YVpZeCVeKSEjQVJhRmhtYC5vajs+T25WQXVqQ3xSVGtJWVIu'@; put 'RmpdIzJpaiQ/KyUyNlcoW0gockg5dmtMRFErb0xxRWU1LiY4JWJndigoNjVadTY2ezpzYmIoNzp0I0RgWHJ0elJxbTBxdmZHP2BGJmskKSg9V2pjPTBddzxMMEMjVlVEdF11K0tBTy4obzZrdXJgQjA5N3VFQ2czZTlQZHhGTXprJFI1b081bzNtfmQzfU8wJXtDbGl1dGZtd1dPQUh8KU0qcVBv'@; put 'NSxSJUczOzssTm0+SU1xWH5FajV+Tnh+OVAhMC9HalY3WmlAQzAleWllSX1pdEZmYUR8On1bK0pmYTJnWFE4fTdPbEtZSytrYyhGPXtKVVdSLmYyTS4lISZ9NnVMMU8jYSwvdjxzKT9ZMUN8dUlibDVhbnlXdjN+YHZhfWdWc0tgNFJ0QkYhMzNhNytocTVGQV9heiYle1pCLEJ+KWlrL1ZxTz5t'@; put 'a0h+eTp1WTp6dDVKaSpLMUFGKjF0V1hpYCo/TEFhcFFlXio/ViQ3Y1NEQENCdkZRLiZ+aH5gIS9OL1IkOmZIdmt9VyZHfExsVUtGeGM6WGdSeGhlWnw1e0tLN3NnaiIjT3c8MXxNUmJmTzBwTHEqcDdJXyosU18wN2hqPzZuaE0xd3ZzKFMvWWlTVlRtZ3xCKCVlWyVoKl4uRXUxUzU/bmMoTEN5'@; put 'bnB9OjwlQ2k6Mm5MTTg2blV4YyNkbSNLcGYkNEAoXkMrJHk5U15ZNlRGdVlIRjMlcGFVQTR9cnNQKSw5T1I/JlQmXjRtMlZESH1CZUNyO3VQVlkkIk5XL0ppSV1gMlhMIXIhQWZjTnVYQnxdQDh8b3ZZPnBbXSQlSHRudE88NGAmXUE0YDEvXUYsSFJlXnM1QEQuRyNea0YzJWhCNDh3YEBGbXUj'@; put 'Z2VeTV9FdyppbmVVaT0wejJAYTRpNlFPVElVdGIoWHwjZy9vMVQjYHIycSp3cmtNYDk+VXdTUF0qMmcsR2h3THBSKjNqT3Bhfjp5NUtvXmpzRyFzYHcqWD5yIUkyeWRyNiRsZDw2UlAma1VFcEZWNFkuY09sUEQrKUZSSWRwRnorbWpiLjk8I2YlaChtLnhDV2UyWWl+LCRBTzdzbTFVSzYmfTFS'@; put 'LzdXP19tfThMXjolfXlIeHd3ckEkSz07ayJDWFZPZiowXVF1IU9wSG99ZnF5ZGJGYWFHOWIsVWw0YShEOVg0MEtYX10rS2VrdDMxQ3RkUyQ+PX5BOzFiZ3gwb0FKVnQlcmtJdFE/L3VtcFR4QUJKLHdXOG9fPGM/a3loK2w/fkgxKGlxPmBLPGNdTklyO2UmP2JCTkhQLDw5aHRuVTF+fTsuYTRE'@; put 'WSUpXU81c15mTTA/Xkc+eUBmIk0vbj49OS5UfkVgR1Ixd2pPbyZ9YiphX2MmJH5UOE8+Zls2dUNbP3p0OkJgUEg8UEldPHlhW3cuQk4pWCtDRjREZClpKVs1TC8kQ1BITWN+MD9gXnhbNVhqSHRSSHsrOnIsZHhvVG93cnx1VV1eLGBIa247NkZJTU13VS5ueGx2Wz4+XyVGSWgoSitWdW15SC5i'@; put 'ZXwhMklCS3kqXjAvV1UhWn5xSDJ2bUtIeiZaVWpudHl3Si9ddXArRWxfPTpXLFVJVyNqdnEuJlhPQ1hPXmV1MntLS0Q8PnYwOkUlV01VbiorTVhYVURqQXU1ZSVWKz5ZV3BqKDdyUHwhNkJBOWFbOylGUzt2b0JJekhMbjslb0VCUEpmQlh6S2l3SkooSXB+TmN1eEBmej1VRkY5ViY2aHFzVEow'@; put 'OnJwX1IhIldzNm49aSZEaD9IZk8zOVMmUDJkNEkuaWx2OGJAOFJEQFkhXzciSyt1cz8yeCVSaGZqPXA3fCt8eGMoQGBkNEUiIiRYOll2XmJLbCFoRD5+JmBIeFp8LC5tI0klXjhRUnRlUTR2Ril4K2dXPklEVS91VnwuMyMkdnlZaGZeTnh0VmdSVHpnOT48PVNDSFl4XUo/MHkqRHxeOzJXPGUz'@; put 'YVJPdWN8K3gpX3d8VSthOHp3TSRtTGYxNmlsNnJ+WDtZaUs+OW95KXMwMEl6eVpeRkF9TzZaVGJZSkB2I1IwVCMmZVZpZk9wc3VEQ1Q/XUlsOkVwL1N1NWQsR2oxQk1CLiJ1OyYySzlfI2U/Knprd3xPSHpFaytjQyleXkJ6VnFGcWZyNklsL3A1SWI4PWBkRilXSGA5XToyd0ZSSiJ4O0c2eTF5'@; put 'IWExRUdLdS48PFZLeWNFSzJIMiprSGwsZzV5a01+ITpsVHg4P1o4M0xqPVpGJHFvUz5mSDdNVDNCUWtbUzFLbzcoUDlucUxPImE1OCJofj05bUg8YExZU0RFWUtkI0BZaWk2Q0tLQUlUU2lxJnAkVXN9VjEjWSpCW3BSd303IjlxI25yaTJ+cSRRSXZ6cmVpInxlcUJ9XjN3RExCP0Vqd1RlK1dL'@; put 'WFBNMW96SmQ9ZE4yS2wiKk13JSR3c1Y6JHMkW1gqPnZ8L00mP09jNDYqOyNNLCswRzY0RWQ9L05yZWV3SSx8WEg5VDIkOkcodWlwbWUufXBMPEMzQGl2KnY0eU88aCE1MiZKN1tEbEgmSnNhPDZ8UVR5ejFlYjNsLEp2Pn4lW0g2ZTxjMGxsbVBxYCk+azxrJHhWZiEkUTYoKmMvP3NfRCF8cU03'@; put 'OzJJbEQlZklKXzhmUXRYNShqbn04Qmc5NDBOR10+ViJQL1pXKkhuJSY1M2NQfXliaG0zPDdvdCQ8T2wsaXVuIUJ5WEtEUk4vX1hPczVvUj4rbnUlL1ZaMEtCVDFqQE8wXTpNZyFYPFA3ZGRdLGkhW1NRVCpVZjUxNks9eFhoTHldc0pVczhIdWx9LDA/XzA6Ti47IW54fntITyU4LkRgVDxtT2hr'@; put 'TF8hbjZqOilZZGZ5QWBwYz8/cVNNKkZ3OTElVTtKM05pNUZYPFEmJVt1KlExIzNtcEQlNk5KTkNVdmVmeSt7Tk4sdX5CanAhSS8vJkBmN3RQKzBKK2BANCJIY3ZbNShnZCRNN14uXS5yMTNHa1Q3IW9WRzw4TVE7TU5UbXMsR0JNVnd2TztXLz5DMUYsX1Y4aiFFWjgsY0M5bnxHdSN7dF8jXVNI'@; put 'M3JuQmEubWUsV0RSS0pWNVZIUitiTDx1b0c0RFg7S2R8KUhgJkApMlgyPC86SGM1QCE2W0AlU1dqREY3UyFNRSZ5KElKdCVGL1FtPFM/LnxFX34yYVp7YEVQKGBjUU5CUllFQXIqbFU6LHxXK1YuUXpXPUJiL25+ZG14TnpKO25tU0t4YF19LEI3R31rcW4oQ0VrYD5WQTwzei9nLz9fWiwmXyw8'@; put 'PzZ8W04hRjJqSHZwams7Ii5MN1F3QnlnJWUjaChvI2EjIn02ZXRecTVvPltDNHtzRU4oVHBLdmlCemMxcXsuXkh3PF18VC5zenFbdGpafitkIXR7cFNiQl8pcms4TEV8SHY6dmxSayFiPnFheSpNUCN0KCR2YTkwUjwkV3VAfX58fEAkZTtRemNRbjkkW35RbTl7ZWE3fHJJTHRLZ118U2B6akB2'@; put 'Sm0wKmFoPDFDZ0FKR19yVVI1YFMwTmpUc3l5JG92aSsma0pqeDlPU2ksNzshQUFlPk1DODJwNEBXKV87RnBdVntsYS5vQXZ9K2VFUSwlRVE3Q3csckg5YXQ8OUpqOzV2O2F9fUxxaVRJMTxGRWkxTERNYEV2elNacC4lO0YhPC49SFRPc2xsZU5CWFYvcjFZNCRRU31BNUVIcDo5RzJHZFM2eXQx'@; put 'Uykqb3NGcCNqSStCYDxpfG9nYkFkWyZOcmMkXiQ/SmFWfDEoVlVPbXNbX3FoUkx9YEQxYFt3WjlqLnJScFtqInlKUzg+ai9jI0BvaWtfNVI4W3RLa3hMUFp0RVosNVR1YC5sfGB2LH03QUc5Ozowdjxwem9FWVJ4VnZXIlcoKj9deWxwLzk7P05VJCFTZV9bN09LZCxnfklIMXsuIWNHU2RtLEdy'@; put 'YGshRSxHIlQlfHxmKWF0UH18Q3AjYUNIRT8qZ34uRC9lem11VyJuK3RXPmFbNi9aejtlQDJXWXZHLFVtT29XcWNNMCJxWl00Yj4wSiQ6YDRWMFB1dFpzUmxRS0RnXVJOR0lfPkRBOVRwI1ohN1A5bmRGP3pVLiZnMkwkakw7aUIkKnkxM0cuIjdxPEpzdyp7WyJdcGtlODhxfmFuYiNMMDBoNjwm'@; put 'WEFzbiVrTW51PmNFdjxtfk5fQC9uRml9LjNpeGx1MT1dK0kjIVNvT1FUNTZES1BfVzNwSngxR1hHNSpePDc8WF9IJlNzWEx+ITwqazssSTwrMzEjRntfcUNGWmIlVlNaeTEwJDtObWF7MSE2TFE0Pm9gSlI8MithRkQubFd5Qk5vK0tTPH4keiVoTWZVM2JlKm96aVR6QCFCe0JRXmdwOGV2Sih0'@; put 'YllLNXBZYVoqLlQlSkQ3WHpPTW9GcDh4fm1gciswaFFdPlcxR0x9aGRVfCMrMWkhbUpmN31IUjQiZHI/KnczP35wJDRjYV4hYGgjPCRwU2E5Q2FoNFY5XVc1LmZyOj1LIVh3bShuUk5BMGB2KlBIdXRFN35fWW1VPj51ZChwXi9SdnJpfHo/YX5WTVFlZj1UR3NHWUYicT52Kl9iN2VIMz0sNygx'@; put 'NE1GYy4+TUdWXkwidmZZcyR1dl8se21sQXpwYXRHZ1ssRTEsN0RadG5TcE1uNjE7LlYofFNMcEdoP11qJFtOIkV1O3l6cllWSzJPYEZITCZ+QmFsRW9fZlF0YHxDLkR3U3IsdTdtVT8hV1NicWRsdyJ4fntsPFM7Wjd2cTszN2ooUUZCZVVyOVNALkMmbmxwKms3cDc7dkhdOXYoLnBCdzEue0l5'@; put 'RVszN1EjSj0zTzNSajNNZSglMGM5dHNTKWhgVzROSD9BYzs6fSYuIWA4Ilh+SEtlWCQka2h+dk4jWXNzYG03eSp5LjQ8bXduMilwLlg7VDdeSCZGdz1XPSFDMEsra2s3Wm5AK1crY1tYUDUvbmluJUNJbXIwcHBoJjY9PSRZX1k5di5aK10vRS5aJTMuI1tAVzwmRyo5TDsjWC9MX2Niaz5mZkp1'@; put 'XjlQR3N0eHheJFVUZkN+Li54L0ojb1hRVSErXnY7W2lnfHV8ekExfnMiTEJRPD47ayFIOCs6YlkhZW15K1lLJGt+InZpMilsSyN9TUdhL3ByMWtnJVBtKUN1Q09dJThbW2N+LEAjOlElckZSKklNYXxQMGN3ZGB4TzkiUURrTnhXU1lMMl9yRGhddz4jQWFzdTMwUDdZRnpPJVguN3JSemdWSTss'@; put 'MThEcmtKZk8pdmJ1RVtVJCZjdTFkKXBaUTQ6SzdxWitDdTpbKyxuI2ZdOGtSOzZyRnVMd0QibVh5RjZwe3AlLjVrJFdpK3xQOXpkS35OezleKGw7IUdebWUrSl1UdjRKfTFIIjhZO1QvTz9KczFIPWxCTm1MQXxiXy54T0t4L1M5NFpjKUVDK3BXWDVxXWRuJSpGc3VEXlJzSjlMeTIsWllyQk5M'@; put 'V24zbCtDQT5YfWR2WGtGdnRAamlJKCliUDRQfjp2KW1kPURdLE1fKTd1N0Z2c0ZIcX50aFQlIk85bndOVEAvW21KVFkoU2JPWiQsdy53QX1TUFhZZUk2fFlNLktaT1UhMUZedkR6RTgiO05nMCEvZD88b2ZTXiQxRyZlVHBTIXBHZ2xCVyZ8eX1iSDlaQmZgJiFAO01QKW4jazVoVEpiMkB1bClA'@; put 'NXs5bHtFRk0xZilVdTdgM2FqS31fSVcuPGs9M1o0Im86JHk7eGA/QzYyPFBWMnJfPltuekFjOzBXfWMhNE9kQVZ6clFMYDVfak1fUDMmVnkmJUxSOihGJCQ1X09HYyp5JmAicEM8aiFGUihNfmpaV29YLlpXcWRxcyV8fEhvIURma10vWG1fS01GK1lheSJ5XVdRLE1tRjhpcWN+LGZ8e3xCTjhA'@; put 'LEs/dGZQUnx7ZVttSytlMFJSJl5hbzBMT2hjTVJVfDZWQVBHZ2xaNk4yPFo8ZjRkc25NMCRZMCFsKD5zKkc1PUJXLERzIi49TmBWblBkU3tVRD8+cXh4TU1iP0ooXVswO1FTM1FkUE5OaWB+Z0RQRk48UU1YSEpSeXBpei9gZVZTXj5JWV1uI3sqOWFTTEc1ZFVnXT9aNWE1PShNS1I4R0k7UG5D'@; put 'JUk9IWxnPmo9QVlvRjwiNnJeN3RxKjVPbUA1ZUhwaiNYRThWb1hOPj11d2VnaiEhOChFS0d+aig7elE/KGBQSGJ3WGcyZVpqKncsUiM/LiEiaDM1VS4kISVYfHJSUixyM3ZLKzlvIiEieXFWUVs1KEsvInhWSyg4KmdpK1R5OjV4TUR2T25NSUtQYSVRclBuaXZmc000aX5vdGkse2AkPmlkSyph'@; put 'SmFdSzhBP09JUWFnUnldcHwzQHVVP1VRWCJuVEcpTXsxWnMqM2xEWHEsfnkvWlRIVVt4NlkrWEEhOmh9YSwrfihRU1RZWDdbOFpjI3gpTE5NITpUcylTXTpsS3J9V3J5fnN3eTM1RHksYC5UIzkhd2F3Sl4oY3RSLF5mV2RFcjgyM35ZTCw7VUo9MkEzO24yLERNQHckVHczZW88QW41OC9iNFZz'@; put 'dz5ZZ19gWCxpYT5dS3QmYUNQajtjeik2QmtEfWNpO3UvfUkwOm03e1svMUlmMiRnZG59am5gRCtyNGxbYGxmbCtIVi4qPSZ5bkpTSyNfR0JeMW9zXyhgc0d1YG1TTixLKlAsIVQ6QTMobSRUVHdjUCo3MVRALF5BOThoR0kuXSMiKjEzUS85SXcrWmlQanIqYUtybExmJlJ7QzMzU3RldyNCOnI+'@; put 'NEB2QmZMZS46KGMseSIsIytxVk9eVmNuMUlaPW0reyRRW3QoJHFPQF54X0oscCFrSCVYUXchXTVnS2E9Qnt8YTlnaml6XkptNiZiWlRlWWNIeX55V0tnXk8yaiRJQCtBQCZIcThbeD1hYTZVSHlKTENpRWlQM3x+PXkvZ21odXFHK21XeTtqMmJrUHIuMVFnQm5DKlM/Wk8/Mmc6SSFheldZfUow'@; put 'RVN4WVdWRTRwMVdoOlU1SDZRNzxuQnhRZV9yYCpYX3NwfkFlJT9kWlI/ImwyaUE2ZSs5K0M7OkF4YS5afjtVTURUcmFQWURnT2kreV9IcT5PKmtNblUsOk04UDpwbXJdSUp7JURwO1tAUWREY1FhKHRRLGBeWEtXUzEmJTk1fEFiQUBUXUZsP14sTTxiUDl2UkF0UEgoVSF8Sl4sa2ZVK3Z4Mz9Z'@; put 'dClEPkdLQkNXQH1uIyNJfFl3THlaRV93X2FHMCxPPG1YfikyUyF3MUs/fmg7dnQwNmhrWCtsYTB8bywlQ2dJbnR8fnMueGZXYldxZCtHInJ8bWxxWnZXZiMpfE16SWp8THJnOj5EJWxHZ3IpS0U6ZipZXmw6czUuVk4/JVhRfTB2cHBwdz48NkJRfkB3e15+dkc5L2dUQUUuRW9JaGNuaWl3MUEu'@; put 'cVcqUGI4NH0oRzQ0NE5iZldCfj9SLmFTZztfYlRVKlQ8fDBqSjx1Y358L29qXVNNYWdxOlt1az9gLDY/eEV6Nz5iLnt2VDJQcUpoeytZWmliR0U5XTh9USJ0Rk1vTWBoZnRbSVBVM052RlRlNSlxenA8NkV0VmRHXmBMJkY+OlR1RUBbYEQlekhdYkJ9UGxqSj9xbWgjQ1JuYypYPS5qbXh2ISI6'@; put 'VTk2RmRmZ0lpRT9fWHo7elVmcj5FeFkjPll4eWNIcnAvJHhgV1JtK09UJSF4QGE3PEovMG82VDZIWHZrSXpESXFmalF0W09oKlBRe3ovQVFZUnw3O1NSOVZMNXhbOGYhKCh7ZiN6Tn1iczBwNik3LihGUnF1KVRhIXouciFKOzN1MUoofXcsU21kU2d+UkY+Ujs7LiFTdFheOUlpRlMrITBMVTsx'@; put 'M2xDL35wW0lMdlorcno/JUl7d1JHe1gpPS87PkRFbzZsXiF5PW8kZiUjd2MyVkpNLHJgNFckXmxAeCFSUkVYJE4kTUteUChJYGt6YjgkaFE3UDxMLCxJP3BtW3AzJltlVV5tYVMsYlMqOVkwU2Y/NipAcFFxTHI1RyI2bXlHTkRlZlJ8L3w7fEIlflI6QmxOQCZCQlpHPi9OfCJHe01XYj9XVl00'@; put 'R0s5XWQ2bkljTHZ4YlhUfCxMOkRGa2VhXXt5LDdhWDJDeCh1ZSFONU0wfjAyVFR0JjkuaHFkZFo/Wy5ySG5LM19YVTpHfkB2MDl7JlR0L0tuX1lQJWg+QGBzcTF8X3c2JUgpaCtvYG5LcVRvK004ZmRQaSI0RzhVWTREbGs4aSU/ZFlsPFNTfHl2JDNwVSVkKFd6UCNMTzJeWUJsSSR1U15sODRi'@; put 'ZF1KRCp7bThbNmdISi8wRjRqRGF1UXxuRHoqcFQoI05kZUlYLlspVWBkZ3ddPSwyUm9oZm93cWU4Q1FncixKeDF0KmgvdnNpdmwzMTJOSjhfV1hlRl9fUmlFYmxlTVMlY1c5PXRgWlM9RT5+Uk9uYCpPNlQjcXwrSUhfNHh0WEgjMTFPLnJmPEZhc0NreypHNU95R3FyKXM/MU5iZkIuJj5lKlpF'@; put 'dW1VKipDOSh1LExyQyxsNDF4SS5kKTRBZkhFZ3JlNG5ZclZ7W0U8ejdBQFBgNSVtb3xPbExpZzI6O2JEPTsrdkJZRWckYlteKGtbMXg2fDQkaEB8PVUuTD0raFBIbG18OmZnNzQhJSNbP3tqaEY5RjE+LmIhLkI6VlVtWmtrbGZIe2swKUdhZUNseW1TMz9ISTx1TzldR25leU9Lb2tlfFBFXTBP'@; put 'NylUYSt8Lj4xRDNVMnZyQGA3fFdnZENQW3ZgfDA+KFlPO1hOOiZudCZwS2sofDVvMXJITVErN1p1VmkpIVZLZERhc3d1PypTfi9lX3NmPVJdbjlqSCxRWVhnbWJaMEkma1A/S0ghYz5NIU9EUnNJTXtIbj8vLCRYV30lUnBZTVJ8ek9fcmdoTCVXTjs9TnU/JUgjUFRQKk9yaCgpN2JCd2hWVjFf'@; put 'PTxedDVmdzJUZ0JgRTp7SXpJbWFiUTxDRkskUlF+WXdGWk8jfmR6PFRDVWU3Q0p+cj86Lj1peDZVNjhbUSRzak1gYkZlXkRlViFYOzcwaG8vTzF+JE0xczU6OVRZeFRsLGlYdD05aG5mbEVNdGhYKktMUFkvViIoaDxVdTZaaj4rQixCdCFlYT9yRGVUWFRMU0ovZWo2bz0zLmU5Kzl4QVprflhK'@; put 'VHtyIyRXaGtCZ0lHUjs4Wi5dV3ovLloqYlBESG4zdXV9Pm4sWn5SMlV8NDVzVHZCTXRWMS4sQW92UHRTPWRlY0pXOUA3LDJaZz9xRylzPFB6aH5gaGdBcGFsUDZ5OHhdZ2c2ZSppLzo7KVdKQzNSUWcoNk9Re3RVRlI5PmUzRGApMTdgbERocGBRfltMTCRAPlY6fXo/YlUoWHluYFcpdntNd3I/'@; put 'WVc8ajIkak5pNDs5NmpPfmVKNTJYMH19NyV0LkJWTUElJW8xajlaS2NqJlJxRkw5PVtRQDpDVDF5Ml5iWmE7bVNhdWpeWCI7cWhPJSVaMnYwPlJ7T2BbU15MKkw4enpJb1pSfjM2Jm9CdkIwX11reFE5aUI6WC5lZkpZNCRsfCI9bndoUEcxRD5xfCx4eDArJDJfVipMUTxXem5lVzRMSXlTX0My'@; put 'als+RSNneUs7YXwzXjlfeSM0fiJDREoqQEpXVHlgdjtTX35yM1ZHOCYyeXxSMSYwTTh4dntQVnkqIkU4JHp5dikoa19NT2csdFI/KGxld1VYWmFCR3Z1Z25bcTVTO0pVOD5rLF1EVDBdaFZOd25ybXk/Qm1DUjVPPzZCcHdtdGN9aDxqcWhNaiRSVisxS3B4eTdeO1lDJFIpeTMyNWdWRXslejhJ'@; put 'PUA5NVVrdFtIJXRbW1drRXVNYkxNWDNCPXdWMENgaVJqcUlPQVNSU3V9VWh4KEdDXTdmYSF0W0xfSztda1I7WkdxM3R4SWRpXTJ+eVpyP3lHciFzOjtzQjtZPE0/ZHskdUU7ZFp9UnZsTXJOPn1YbyhkZmo4bzhafn11SjlUbldUVzlLWzw7VjRee1tzIjw9Mz9PMzRRL2ZKUj9Hd0s1QG8oSVVM'@; put 'WSoycmVeMygsSnI+ZU5qPk9pfTNUTUlGZD1oP0UqO3ZzIjhaKE52UDdWYi9ZQFFbeSwpPF8wTHk4ISR4Vk5IPDtRXT5rRSxFPiJsZyZIKipMTG5TT1MwVjh3ezUsX3x1Z0BnTWRnOjssRjQ6czswL2VBQkVHPjdNLCVnaDFFRnY0TWl4OnpeP2tkZ2NWQmpATX5rZmt2a3FDSkBEVCh3bnk4Kk59'@; put 'aGpyNUgwa2JVVGcqQn5ScnBmL0ZebFlgZTsyPjk+XTA+I1F5U2F+M0w+SXM+R253KGVxdDRjYVhIMWB2W3lgUGdzQCtPMUZfaX5MOlpkY1MhOFhlcl58QGhjMlR1PUVZMl1DO2l3UDx5Iyw1VDE2PyxoP3N6UjRVY2JNN3FpPkApRHgyUlhDRGcicmgveCk6KDZ4bSpaKSo8VnQqJWdPLjZ6OD4m'@; put 'fVd3M09yIUtALnl2U2lPK04qbDJWYkROOUNCN21xW11HdmZvaFtdOVZva2AxYk5YaDtHeHdfcF9SeisifTZzdX4wLmNzTiQxNj5dakpTSTQ+Vnhvdk0xfTF6WGIpX1JgVHxHNHpYKng0I2VdZU5xRklMb1E1NnI3U1hDQWxJWlJoTUpDdi5EYCg6QHouemtoQGh0cU0rW2cwQ01PS2RIMDtqP11s'@; put 'ZmpjKipLKWczczw7bkZ6VTZDREZRUzNiR3lGX053aXE8emp+aUA0VF43OGJmRzlkUm4paX59Tm9KZVhZX2UueThaekBDdWxbUFluI1lYUTdTdjw3dHpCJk93QVVSVTNNZnZMcFk2WFJydUxtJnp8PlBGfGN5RVYyYTF4PHxQKlNdRjxuZEtWL25+WXRIWWdPJTtte1M1IUFkMCQ9ayNrZjY8Tjg/'@; put 'fVt2Li9NZHh6dV02KCx0WHNJO0R7YDpye0RIcW81SWtKSXQ8REFhIl44dypgbFdKN1dDfk9rKUQpbVJbXTpvYWJYN3Q/SEo+K31YMUN1ZyhgYjtec04pfWhyOSp1ejI+dj41Qk8+WU1lUyk7IXQqbWdpKylnRyVqJDRYXT5uMEVxUF5CXiNtKX0+L2h0JEUxQzd8Nz8wSUd4Xyl5bk4uPiU1YXU9'@; put 'IUF5VUBhSCJeI29MRnsvZDJeflFsbjc2Ok0uejkoVFg7c3hqbGJtYDJ6Z3YvOEE0emVPfEdqUXQiX20yYTxpWCU1UyZ5P2E5Oyh5TldAISZocT5deiF5Qm0/QWFUbiEoKF5hZyhBZHlLPyx4bUArO3JKbVI1MVFidls0NWs7OU56P2podVtEVW5bTntTPisiJDlnbCwiY3k5bj5DSyxkbmwofj5J'@; put 'PWx3TlV9NmhWS09YVmElKkZuPVRJQD5KUy4jKXlIYlFKbDIvVSxxWzYoaE5kcGZ4VlhNb0dKQCZqIUEhaihDQCRYQz5QN2ksOmY1Kk50QTtJeSohbDJ4OmdQXWc6Mk00NylDfGJkfTQ+W2FQPT9aRG9AOT9vcHwxfEZgQkxLUTI0d1dEMEAwbSJHb0pRTHc4RHRRNHpDUnhQRkBnOCVwbTNgLix5'@; put 'JSU9NFpnS1F7R0tJbnd+JFo6RkVwW2IqcWx7MC5aPXs1T0tyUyUqcVF5Rm9LQC5pO1dVdTgyOTZ+dVIzOyZ6NiZeZCtAZzVbJHIoP31oUzx7JkcxLisoLzt5ZHF1c0BkciRFU08mbXE7ZTpCISNgI3N5UmN3JVRLY0dlUj9XQkpPUSZ8eCNzWzVGYm5oMWxxZ20rTDU/YXtlb3MuenlYUUF+YWZm'@; put 'Q3Yse0RDRHNiYSZiYV85YVAxc3pdVkY5T1FSelsuSHl5YW86MFh6e2dReyQ5UU0uLmFsRldgNkNeKE5dQn1BRVtYJW8mUClkaTAzN3J6V2BMcyUkUmMxejFsY2FYbTY8K2lbQipSViZ7MjRCc3B2W0Vde0YjN2R7dGFxaG9aSl4uOS9qLlcoYWxULlZvdylZO3Jkb0BFJUdpaE88aS5BPiNxS1JQ'@; put 'TE1DcVBkP0NUUFB9PkxJI2AwSHo6OjE+MkAkO1NkfDl+RTg3YndjR0cmInk0cVEifDp1UHdafXVaLF5sQl1ETWpyfUVpRGRGfV4jPHRBdypmVCMzeisyT1QwTi5qOWFqamAvPSY4MFZ7OlBgcFN9aF9CKzckY1NAT2xPQGt5JXFJQkVjZ3cmd0Q4TlA5JV8lUGArUV85OHghNWRFYEB0THN+WW5e'@; put 'aTJROGQwKCFQNDVmKTJjRFd7LlFfW258bDE5cj5hSHs4KEhSM0EsREgoL0w+MzIufVQhSUBgYXgkOmJKeS8jJVFSY1hoL3dIeiQvOW07ZmNvU2UwK3s7QUgmZyhiS1QyU1hbSHdYez1SJTRLMXVKZypud0RJMns7cHlVckFSWEh+JXNnIlBIazckWFJtZG4kQVE7QmpEb3dPUEdhNzR9flN0Ll0m'@; put 'ZUw0WXAsQzA3dzJzVCIvajVVKmUkcHk9K0pEbyEsQkA9VG81ckZxJHE9ZG5EQzpjbWd+LFhFTUFURCVpY1guW0VbV3pZUEdyRSxWNmAiK0ZkPFNQQyxYJn1sbDt4Oz5BWmleck8lTnAqVV1bR0JjVSUoX1RGMjdoYUdTUXYjfTdlW0RvK2F1IzM3UHQke11AT30lcWI3S0Q2ZS5GNzlzdnRGaD9z'@; put 'IVYyMVF0JDM5S11HM1cvMjsxSWlBQ1lYTmFfekpxUGdRSkBbYzdnQXV5Kj91R0wpR3VWeFlJLzEsWDNAMVk3cUVqIyI7a0BzeyhsZTluPTR9UX12fFUjbUlnRUxpQChbKUdQcWxCUzBmK2JNZz4kQ1BuNlpCPFB9Qk1mKHo/SDhzMXp8fkI5PkpURSgrLGNGbDloMF1EcyFUczlDNjZ8YEc5a3w9'@; put 'Mnd3VV5HdXJ6O3R1bHEpb0hYXTxvQitifDd6NzUzTDk3e2hedi9JOzomemxeeVVYTWIrbCpgNTBHajAuRVdNcnlYQDBLIiw2ZkVEVk48OFosWSFudyY6YzVFPSQ2a1Q9clZTUStBZDlSWHRsfWErLm9PSD8oVWdvb1I3SDVCOnoyRCZJN3ElX1NbSllzLHUwI2x5cyl8KjJRVUNAcDF5PXhLPDZH'@; put 'PngmOk1dOil8PiNnel9wXT5eUlZdamgkSlBhKThqfmEsT09YRUQvOnttb2Bbb0lkLzN8b2VPejY2MV4haERVc1FaKHRJezAjVGE5bXA7TEIhKEY+djIjbDwsUHVdZkI+cm1bS3RaTXM0JHppfHwzdSt2ckQ/OzUuW3EmTEE4Q2dPTiRQSnRkMT1obk9udmokK1omOzV9Umw7NWdIfmBhRmJhYWNg'@; put 'RjAxR2JUWVNVImh2TjUzU0AoY0tkVUhUJnZXY3ZqJXhsXzYzY1VQd1okY2gkU011RDpmV0Vke3Z4bVlfbU9Za0E/I3NpeHBicXNRQUR5cDF4PWI5QChBSWdyUG5YVyQ7IzJ8UH06a2VQNXxlZzM6UHVTcV1tNlROSjtLSEtZY342c2RRQ0k1ZXJ8NE40NTZlLGBIQyY6YCtWNiRdcCQoayYwak1p'@; put 'bT5PM1phK2Q4c05fTnIoY11daD1Pc2VecS8xI1d5RDUqI1B6b05gOy87ejxsO0piMWEjcyZaKShrTXBibF5yejNtTnkjJl1aZXRedzxtQEV5ITcmLFBAI0JDOiZwekttREB9a2xmNSwuZ3RmTHJ7NkVGOmVYMlt9PmlZdjZpQkJvSjNAKn1obCxSOHt9cVlrSHhPRUxaXktGbil+d3pzbHsuOXVY'@; put 'WCxgViI9ekRqVElTJkcxQio3SldidT1TKT90Y2lefG1qMyQ4PHtTT2VGbmFpT00mO25Ye2V3dC5PKFUiXSxgcSU0JldELHlsP0YofnQ3QlElfilvX1QpNSQ4ey9XNF4mQU9IWil7OW4kJFEoTU80d01ecEAwPUY0UCNoeXBHQD0sMGRIckBlR1guZ3xdMl1mIUB2PFVsbVIwfHEsfUQxLz03cHt4'@; put 'K2RkfTddOWddYW53OndlRTpUMGJzRD0+UDc0aU9hMitBT1lAUlBSP11rcSRWN0ZhP3VWdWdNSCQpb1RjVTJCZWFhWE9ldUQ+UyhPXnJDWy8vTjZaXXFTWzlxaGtVfXZtfF9yY2FJN0gwSGIzclU/VlRORWk6UnE5K2FNJGVKJXl5MUAmeXs1aS9TYyYhR0tOXlZEUFVqMVE4Sn5EVFFvaUlwVz5O'@; put 'MWg+LjtDcXUsNSQ1Y15OaCZ9a1t7Ml9Fdno/P3M2RHBCaz8vWWNDekFKJEp5V2Z5XX1KaHRtUjdvdl4/biwkdThnTj87Smp0L3Q9dWZNdFs+WjB6V3Q6NFIrXUtkT1dJSXYuJiFYKl9UJmwpPFc7InxbJn5NeE1gQ2JlOWx6ZXk+ZC48I05qe1ZuM3d3STorRnx1Kl1Ab25afS9BQns1aSF4Sldf'@; put 'YiZMMCNeUDxpWkNjay8kTSYlX1YhSz44Iyk+aGt9NjB8fSN8LGk2XilEQE4sI3ZrNEszKVs/PT47PmhHMFZrY2t3LCxFU0ZFIVZ3JmYqQUApZzooZVBWNldCL0JZcWxsRSQ+NEcuX0l0NF1SWGReUX49QyM4c1dsaF5RaTkvUlhbcW1bZ1t4WlVzRVVpVlB7Zl8+JWVTXjQjeG0hNGJtR3lBMVpW'@; put 'MFMzTGwxbSxfQlpoMkYhOH1mbUkiVF9OfkdPSFQlQ0F8NEJDQVBuWFtCensxK0E6PlhJJTJOTE5mYWI/QWl1WW5Dbz9bamAyKXB7bGckRShITkBQRnx3WWFLP1pOZlNeLFI4THZ7Qis0aUhmKyVWdCo4dSF5aUJHdEh5dkprXTguXy9kPXNtSzxZbV5Neit4bnJHJFIoWT5pVWEqTCZ7YHM8fnB2'@; put 'SD4wWSs0IWZ7fSVdY2MrM046U00+P1hQTk5ifnMwWWRjKi5DTVdnbEs+O35AcXp7MWpFXl1zZH1SeXMpIlBVIlt7NWEud1dVKE1NNjk+OkksSVI9TFpnXXR6ND5GKGF5OVJadXNORjVXQC5qJmJzNmowX1NUL1pzayZKRGAxZ3Q7MG5NVT1CXlJVfnc/Pz1Xa2JdcSFwSCs7MCo0fDghcFkrRCxs'@; put 'Sy9RU0J0YzdbYUAkfC9dfGpvaF46IStDSz4mcnRLY1IsITY5UUlMS3g+Pm5OdEJsXj4hS0V1VX5HO2lsMG5tay9zPTM4T1tYXXZFdzM8en5fZ1ZOVkwqRkc+QUJgTmFgSWs6VEB4PzVKa3d1VUhFU1FKSTQ/VEJsSlAwYXRDOHJYdlJ6Qng9aip+P3UhMjx1KlNkTFk5MSU/TjwpYCZ5U0dBTC4i'@; put 'Wl04cjRMWn4wVztsOU1HVl5XO3FfcjBDJHMkQlZDc0M/ZiJZKz9XZXkjKDNTNVgyQnM0IyMzIWJtcjptd3xwSWM5bm5aPiFTKDxqIWwmfVFedl01ZXpEcSVPYiV7dnElWC8lNCExdTJ6Ny9+PShPMmRlfFM1N0lYX08xQ31rTD5BbFBTeDVSeHxqT0I2RSIjTzBzMmF1IWxKKmVbaW1yNiNOeTRR'@; put 'KU16KkVvbEQ/d1k7JnJsLGBWNUIvQ0tFTVg1Jk03UzkkK0NwaCs5ajVyViMzV1Z7TWdIK003KHxgWllCPC9xKEQmYlMuTEtSUm1HO0VBPVRMT2VIK0xOPmdPVWQ7W35lbkh1O3V5TTgsaXImSyEpKTUkRU1tQF1TcTU6d2F8UUY+QyhqJGJHcnhKfC5YSjZUQ1N4eDhwenN3LGw5PnQmT01bUCU/'@; put 'Z3phRjQkSWRvSXxCSWZhUz0wJFdMO1d2KmQ/VWJMdjZ6bWdfP111VF9wfXU3T1dHYV5PZXxLaGdHUCpgdE9mQUNSMSpSZWoqMjN5JClrd0gsUT5xLm1RIz0zVEBKWE5+Jn4/ZHUrWyZRVHd4fHpTVVRmfkYvJSlDd2MwYGV3M2BxbHxRNXpQIT0qR0pPNGNhW2hKfGNMVz9NRWYyYmdqSXRaXXE0'@; put 'dkhrXj1WMUN4Z3ltJXdgVU1QUDMyflV9fChkdHR4QmlFb2FoR2psL0xVUWgvcSF3R0NrLkgicS93I0RXTWhWVzZSb3lrM3wkZCgleHhRaChke0RGSSpnOVhZbVIyVjBJYV0vIjlETnF4Wmc6SFFvOVttSDpGMXFlS2czJmxdcCgkfGU6cVpzMC4pRXY4fXhCR2Z8elVmNywvWlZ2dUw7XzN6dUFj'@; put 'OUBrUHosYC8uSGlMSm1FQGJoWGtfT2ZnOHFnb3gyYmVfa3M7ZEZtfTxiWEo9diNkLn1jMy5CfVk3RyVFU0FxcFM0JHBRS0MjJGouOkdGYDp4S00zKjAjNSpmI3huMFBYfDppNjczfiJaMVVpSjxhZiMoT0xIekpbRFB4U30oQ3gmKDM9cjkwZU5fMktgOVVgWVZ9dUgiYS4mRVgmdXs4QSlETXRU'@; put 'cUhUYCxyU0VVKFt5KmhIWTJJKmtMcHtINTlYKUFzbltESFN5WW1PTXQ9YGQ3V3c4cCYwSi5LXnt8K2VzXUlgQiUkWHYoUz4oMG8vZWkyMEFoNnAwQHBRSmQiRmRORT91Ni5iLklqWkNNdnc/S0ZjLCwjQ2YyMyM+UHw+VE9RRHR6Njs5WjA4LlIvYmJTI0kjNiw6JDJEUHx2bFY7NV5tdDpmeH5q'@; put 'JFE7KSV6OFUxTSo6ZislU21eaV1kKkA2cjc2TnMlQDY0RToxInlIdHpgdVlaPEZVM2woLFpqSmpiaFI1Rzs3UWt1b0VXTEZzfG1hLENMJEVfSjsyfj4sTkR8dm1jPHZUNyF2JlNkbmQscH1vXnFmWi9aWDxUdio+X3lITXZCOl8mZD1IOCFOQ2hxWSFzZU10PENuaVpiKC44dChyNThNOiRhJi5E'@; put 'Slh5c3QrfD1bOFVTUi9ecXZ8Q2JwPCJWM3ZKaTVISjciKCw3dmhPSDpBV3sxWzgoWChrQTEiIixXQSpHOkRiTG94d2AufD17Y0o6NGJPWFBZSnNtSG1uYj08PzwwUk43UTVVNUJzMDNAWix3ZTR2cGdnNlhfbm8yS01EaVFDRFoyR0BZc1NhRTFbfWIzam1be0EqRTU/NyNmbzpjWjBRMWNuWjtl'@; put 'K15TUWlJLntMe3R+Umc/I2N4VWZbTlNYQ15CdnFEWmdZOSZ4S0U5NX1pbWF6KWVoPitvR2xvNyNlend4NndtIXtOVkxwZVhedFp2SG5GZDRiK1g7XiY1eXMhcj00b2lucX1TU2k6TlJKaGlRYz5Mfn19PGRXYl80V1t5bUUlUXEmT2UuTzQ3bHFsQlpTNGFQI05rdCY0IVNXQHdhcCMlbTBIRS40'@; put 'JilvbEs9RyJOfVYmJls0ek1zUzN5cUk2a2VOLE9vRGJYT3N+YWp0OCZRRExfISEuIyNkXzFYJSYoT0lUTWYzJjtCKCJeUlYxbFQ+JjpwTkMhLCNJOSFEQz9QYy4vLit9Yl10NUg4Xn02flBYWGRxNntoO3YmOEY4KkIjMEJEfiN6NWY9PkZ+UHBVJHNBKiR9ZVFhW1g3dnlRXl5mOFYlRWg5STh5'@; put 'M1JUT35yNVJ2eDt5Pyg6WzVbMnJibCUlUmhqYF14YHFFdEZQVUNRY3c0YHlyR3VGXU4+cGxMYCtyUjQjUix7ci5dZ0I2ZzdgfV9acmhDKVJsKkBvYm5jP0JvNE5kKUlwVTEoMFJac1k8YlJsPnUrT0lxaFZ9OTZmYDouL3o0L1dIZlFZbj94RUtjNWksMVl8RGI0LiQ1JX1YdiJiX3IlO1s8ajRV'@; put 'KzZYcDt3QktBV0tMbX15eStdYDR3UHJvSilFZkVnSGI8VWo0SDlGU0RkUTd+UzloSFk8MlZFcVMpe0AzLyJOKjBJdVZlTCRpRDJHdkNbYVRZJH1FSHpZMkN6MFRHMChAN3FndFhTc05uLjp9T1ZGMCFgbU5bL01wRXtDeyo9RUVlVkMyU1pUfmNfLkw5cnNyaC5Vbit1MF9LU2NdcSFhVittOzQu'@; put 'QjRib2tbUE1MJERQOGxlM1tnZmZgMTkoJFRGcDNRZDFBcTVlJkxZJmZmYHRMVkFWSFIoKzhtd0NgUFVKX35GaX5nMH05flo/WjdDdUIzMzFfJXFIVik8b24wIV1xUUViM15AWEBvfUsrR09ubE8iUTp3PTpqfHZqOT1RRiF+NjhZdzFgIXY9fXVNRjwiQkNtQG0hKnNNXiMzPS81YDM0JV06bHss'@; put 'MHlCImxVMGgqSkJ0Ym9qVmYmIWJJVmZPXyReYUE2YyFwQVAsdGJGUUJXNjt4N1NrI019QHNjPTJZfF5tWX1Qc09odU1eRlohZ0M8Y30xbysrVGJ2cVA3S20xL3I7UyVYKkNCallKRUwzdylEJGJSWGpMWHhpP2A2IUhjcmdqcG9fW2pePytsdGMhJk13SmFhYHVFRTo3WTV+KCNGTEpYY0lgP18p'@; put 'a1BoSjVwdn5jO2hnR2w8SUVvYWhHO2shYDl4UVs5QFdRY34zOyNsWGRwaSZhb0ZlPT0vSSQ3KUI+IVJ4bE9LLDJGPjZxSWlzYWNuM29TIVM6L2V7KDk5Xj1SfDooQEMsemRgWyN1bTNGTS8rbS93XVVQSnopYFosLHYwRGhSK3JQQlgwY2l0ZjNoN15gakoyaG9XWSZZS35TPlJwM21jIWpHLzJZ'@; put 'aSxPbGE0MGFzPXk3IzJtdHhoRWdNN3lWe01XaVNKKV1OL3h5c0JyVVBQbG19JGI9MSFffkk5andTKHtCNyR7X2BqcS5FPWNhNDZ2LmkqSU1WbThheXxRQl1uTWJYUyx8ZHU8aGd1SSYuVyExUnJ4bFl2OEZGNmRhbEFAb017MmttLCpZN0M7Ii5jT14jXkJHPU00M2lFS2U0P3FMWk5AWUZSfTUk'@; put 'R0drWSxLLE5zUWlqMilZOE96Ii5fb31ld1Y6QlgkTzliOmtbSnRwT2RKUFhnOl5xdlNjVU4/a18wQ0gwa3IkLENeMT1waTx5a3YyWENfLH4/PiQhJXpQOFdgZ3peVFQ7ZTl6ak9mZkByR017XmtdIWEpTH4wKH55Sl5ud2ZzdyFXL1Jee3Zaejg6Uj5RfnV4QnF1cG1iRkxqI2UzJElsRUtgVC9H'@; put 'XUEqODtQdFQuKzAsblMreyl3cGNsQjZkfCY+SGpuYGB8LmFOfVY3anRdKSUwR0o5fkJ6eWskRUAkXmNITS5XKjk2WGk7KX0jM1Q9cEh8VnBhTjw0eUZjVkttV2xRaERseVspRjRxdmdIMk5FY0NSIzZIPGA/JndFYnUxNnNoJDZ3eGk6Q0BJV2twMS5IW1hSL3lBX3pkNDIvYDE1aTsmc0wrNCte'@; put 'dS8lcS5aY1QuKGU/VU9AbTdpWC9GTmd2QCgpRD1ielhiPWU9c01xMmBeRWFjQUZaZDEqM3E+LEQsTFIkSUghIX1GMFhnJHF6IixQMz5NX3E1JXdSP1g3MXczLixFPkZHZytIKlJ0QmB2cyxWQ2p4Rl9fb3p4YSIuPEM+QltNckJMNVojI1BhVT07bzhUc3o/c2tfPCFtU1tKemNgTHJgQFpJX18u'@; put 'byJsWkUuTCxqTEpsIzwzVWVaLjB4dU07eXJHdU5tNlUvfWksSmw5WFNYRCE/b25gSzBNWCwvZUQsKXpbRmo/U0d7M3oqaHBQJn4/Rk0rVzZ2a2R8SSJ2KFpJblQ8SkB3MlpMUitBb2Uzbn47YT1SR0AkTjFaUDU4WGQ1RTg4TFFAYW0jKEV8TCtKam4mNEtwUW1uKHAvMXZvYi5pIT1JPlNmWTMz'@; put 'STRgZEU3QCgkMzksVStkQmNodlJmM2VzOjMhYn14KXo3WVRMdShJeyk6XmM0eXBmMz5lWEtFTTxdWHVpaCNwRVRuZU0uXWZqM09Oej82ZUZ5JHB6cndDQjdjUk91eXlvYl85OHhGbHw6eXRfVzUyPkp6SW5nNiF8MThARlAlQzY4eUxCdHNIQDNDc3EieDFHNHBNSFA7LkhRbTgzWkohZVRENyVU'@; put 'SG8+ZHg1ZTtzeyE/Wk95TUJwfiY3ayZ5fW5yKy5dOnpeLloyMDNpd0ZmMlVCfHVyXnBkdXYyMGJEOTpfZE57byRwaVJXW3loOWJ3fHlrb1c0e3UzeiR5SENIckk8RklrVWxtRCkla2o2c1JBUkVDPDNKXkopdHVoYkdyYD50OVU4VileZGc7TjE6QigpUmBwSnhWW1BIOU5BZTsiYFV9eE52KnZg'@; put 'N2RgMExLZit1LFlQTEp5I3JAMnpvO15VQkxdK1dyKHUofDxrJGt3Yk1JJU5YT0pPRXVDNF9lSFU4PHpDWmJ6RHc5a3BFaHhIVX58KHM/SD0uYkl9OEEyVVthSnpJJGliQ1RWQjU3Y3JOVTF5JUZodnVHTGsmcW8lXjs4WXFLeDcxNWJ9T3MhOSl2fUJFdThYNVA7X1tuKzAjOj1bYktgbEg1T1Qp'@; put 'TVFYOnVUSzZifXA4RnU4RipzRGB3Lm9zUWZ4b1NwTHNwPy8rN0ZTS31WdE1ySVBKKEJhUEVMdC8hZjE5TXZad0V4KUI8Syl2aD1+bkRmdk9DcEVIXVNYeXVZVDQ4VGFYSmIuPkVaUlQpd1kmIzZ6MkNMQjdPLGI9M2g+dyFadzZQNEdVYSx6Z0x+aSVxdTp3UFt8KiFNZl84RiE0M21OWnVGOCIr'@; put 'cW1NYiRbdTZ8JH4/K2Nbamx4eFF1UldsZnkzYEI3VSUoOFhYcmltfmtLIntlNCZ+YSlfZCFJe1cwYUB3MU1yZzBZTWY/VlJOfklpRXRiS2BKQTo3M0xlYlpyd0ZULykkT3JrMDZ8cDQ3XjFOay4sUGQ8ekl0JEo9a1ovJT9QU3lHM197JTcheVRzSSpWQ0Q5RFdgPGokdD9wX2l1ZmZ2WSpXZCpv'@; put 'L2MufG83RmVkTHxEaSl2X1ZnN3JbLjswdzc7QkU2dCQkW1FmYkAkJFhqOFdGMEVMQlowUTlwcihaY1s3ZXNjQCMhe2Y7c1dZOUc3Y2xIT3FPeENJemFJQTEhXlM0W0VqeFhbZG8mPl9NZVReSCZ1KDpPemFeZm40MjI5bTQ5cC86YlBEXUZOYTVWXkVnKyFydWZjPlFYcDZIMEhrI141LGkuJXpI'@; put 'UXhAKSk0VkMiOnAsRXxmaURreDMzOC5nXnQlN19XLHBqb3dvLmckd0ozYSlmaWAkVmU1X3JGeENuNkhtNVFTZT0oOnpTTUlLbVpvbkIiYGdiTitsejcidzhfRCZ5QDdRXjEqOkBwcXhka049ZmtRVUZYN3BeSFZ4Z3dYPk11S0N+NHAkeFZJRCNGfSQ0Tl00ZStZIUBiZ3ZjNCQvN3NPJlk0TFtI'@; put 'cHFybm0kd343P2xWSHwpNj00UXExe3NgTkMoOXxJclteKX50ZVZ4fCRxZjxXOFg0WkdrQVpKZmUycyQkbCZNejlCc2lCX1QyOWZbOFE0YXxkRFkvK0AjUnBJX1Q/Pk08TDZVQnM2MSl1PHhxen5YKXouMFJJVnchWHppYD95Y1ghTXhaR2Z4V1Rfd1J4OzUoXVhvOlZ3M3RsaWFDd1h8emphTjpf'@; put 'W0QpcWdZWWJrdUZqX01qXUlZc1VDUndVUT9QcHdvMDpmeUp8UUtGeSoyX3hZT1hyK3tjIytpS1o2Z29aIVt3TjBQL3ZBJjhQbyxNIz1lcCxecnQ/dDtGbGlPaiZFPiNodDdAO31AZTZTWG9NWERLRjVsLGQlP0p+a3l+RD5pdiMvYXlhWnJuWntMfDRRMTdRWUk/TFB5N3gxa1ElUDtKJHtIb3d3'@; put 'UENWZE4oTj8+I2tHYFZpSyJlUVArfDNoTU18R1A+NS5WN1FhU0olLCZNbjJfRT5JKHM0dVgvcjVROSp0PkcpOS9MMiEucH54aWc6YDtxVGRJdWAsIWFPOEVPKGZ7TXQrPXd3OCF1fHRUcWk2V2E+KS9SL1tdSUhSZXgzbT17SD9MMFY2V1JwbV9NWnZjZllKRiZuOjdoK3RoUnQlLjJtbDJHaF8i'@; put 'IyJGYU1Dak9ER3FXcmpPdF06fnI2dV1zWnRFM0dAdS4vY2h8dTRNT3pLNyo/NVIxbFljYEpEQFE/YUdRQDl6WX0kNzd1aS9jJV15ZUh+ZT9vcDdrdUxkNEs/QkJ2VXdrM2EmbkoxQ3plOkF4Zzt8UWdeam93REB7elhdY3ZPXl5YNEFDZXtlKzhTK35RSCVOOGs8b3p6NV4oeT0/bTxwKjw2TVVr'@; put 'bWw7ciMqdnheVkdaO21iWDo6MEhJMk9hRXY3cVM7bUxZcWp9aiFZYF4mNkVefWl7VGhHR3Bwd21aIUl6PTlXUjMkNUNbeDswZEk+I1JAUnlNd2ByPihhMWdCezxkaXJ9TzQvYjk/UiwqaTxZKzNzZyEiPXZMMzNOPTt2aldfaCZFLmtKO0pRcDlUdnI/SktbSSkmKnk9MmJXY0VvbzBDNDJ5R2hn'@; put 'TkFiO2w4cjBzRmRhezZxckhkXyROdlNLM0J3Yj00RmE6NFR1I1dDS0JuU2A0Smd1V050NEAzN1srLG16NW91WkV3ODdJV3s+KVdnKX5sTDxCaismIW16W3BGPEc9TXAvW3dpO1k9e1h6UiNUQ19LIyM7PXd0emVQaGZ8PFEpOFsrMkY/Zy5sRn18Xj59dTk5dTF1Vi94Z1pjXWFOSGNjd1hUfDRA'@; put 'Qismc11FenMxfVdZUksrdS8pcGBxbWF9LD82SlNBRVFaTEVDVklqW3ZeJU9vN0BQJnZpOE54dHEqXmxoeHBmITVzMl1eayxdQXppUCwwakAraCVUWUhhfkt9cUAxNVQ6SXhebEpzbS9WOG0qbzVWV1Q0UDtKP0I0fGM4aEdXeiYxb0wxcF1TektNJFY3LHM4dkJpWWcrR0YrZCM3OHRdLksyP3g+'@; put 'JDNKbSxxOStLQmQsQmBWN24+Rl8oMkV4W0daVEVaL2xVX35fYlB8eVs6e2poUlExakE1fWJvJl40ZVA8SjchXTFAV1trYUxZK0A7Qi4zejldcG1vMmolOik4aEliRVU3L0deVC9OSHJhKWdtUzMpSkU8TFZ9fG00Q0E9NCpTTUNMLF8hVEcmJjd3OkNNbk5tMCt9M01HWmU6PGJ4UU9yU3EzMyFu'@; put 'S2xwZn0ycF0seld4dVUlIzQxM0YwczNHbSl8ZTdjXylZVXowPGVVcl9XZTp8fCN3TUEiJlZQeTJDSWZkXVJ9O1JjZz5HckFhUkxgejdadEYzSnpOSlNub21KeiMkZjEpYkAhd1NDP3sxOTg2RkQpTDg9a0x5NEhKeX1lWWlXfGZQeX0henI7NzJ8Ynl6aEpHVCp5JFVJbCl6NSlpSHomenRHSkZ0'@; put 'N20/fXsoTnI/RHQmXkopN110ZSM2ZFdJUlpKbD09bHE0OGY9N2ZbdWd1P3dRJFR4OUhJZCtFLjV8ZSNsfHs/UGk/KUAydFRMZm9DNWhdfDlhQGQoJFlYWXlbRyF2JHpMVlVIVDxAd29pPT9ifHY0ZG1CMzxPLi9ndHs/fmJzK2p9QlgoOnBpYnNqW2JRdVMofUwwa2p2bWk3djdmaF4mYWMybjEu'@; put 'YFJ5P0tPeUFKQltyfGY7Zjd1YzB0V0ZTYGImZStUamoqUntCdyx9PH51VEBtYmw1TGQ8NkZmQSspaEtYYlMrO1pIZS4rOmpeUEVSVTBETjhIPj89XUlRPzBzd2NJRFd0d01XM117LlN5eUxWPDImZzV0fXcyQ2MiSU1edk4melF9LjcjXT1qd30zMU4mS3xdS3haT2h6ZSJlK29HYFA5TDQyZ35P'@; put 'PVBYKT47M0lueGNpNz5feWR+bHdoTCNVO2pveE47Olo4Wi9pN3h6T2M1Jk9LN2pPSCZsYW1AYW5da00rc3RrK1VMKmx4VCpQXlNOMUxnS3p8eTZUPUQxdGF2U0s3RDJMSVZqVFkmXmVDej0wfkB+fWF1SXpeQSh5dlkkY05veCtePURDK3lmJClFbnNWZXg4bWtfITsjKDlVaXF4VUR5el5xdihK'@; put 'IXlGam5JViRDJCRYP2FMUHA4QyNgQXFhVDd1YFs1dylPXUBTJjNhTXYkLDhjZHAiTHphOzJ1QD87XV5AOm9XRllnWSpxQWMwdEZ1anVVWmtvVkhxZD4qUzt6I1hfSzJYRkFoWj4iemtWR1NZWzs3dj5aVDhVV1ZXaUokQjRlIVpHSzMoenw5Uz08ZTghYigjLy9xajUxLGw8a1RZUyxfc3I7ZlRF'@; put 'WkMvPzFwOkpLTkVpUmZXXjpRNkVMUiFFaWNyJWhSWzpKdCg4dnA+KDlCeSl9IW04LmpdMDJjXW9Bcy4xdkdNQHF3Xj0lU3kvPl8/SFIjOmNyTkIwellaaUdvcmExKVVNUHRFbmR6aEtEQ2k1Y3lzd2A3X2svRnEpVWA2Q1RPI1BMLnpob103I2ZqUFY7WD4pTFFENE5uKzV7Qi41dT5XYWdUX1ts'@; put 'eTFQeXcmYCFjdWQ3WUJnU3t6cHImdz5qdjMjL0hdQzRMZEZhdVsoSE11ZFdWXnBMZC5nM2JJWSxOeFo+U3soKjVpWG92WWV8ZWxnUVo/UD4qbiZIMi5yOzJlalNPK0UwOEdOK0VqUCN9T0lEbUpYPUN4JD02P1tPVnF1WUlieDN3QGo5eEtlaCVsM1RzJjhEKHlWMiZHUFEmfFNhSjlZPWAwcW57'@; put 'aVk7Uy5NQjdHZiFlTzkkN2opbHJBYHcublI1WntCITNpUz43b2xlTzVUOGNBY0A2bS5xaz1YeXlXNmVtPF1CMH5ydENkWXZATmxOVUI0ISt9fWVIek8kPkB2SHNRI0p8bnt8amFQUl8yTT8wW0BMO28sV1Z4IytVRU1namhGb0VmRVdocDxqWSg9blp+fHgvKS9UYkV6d0lxRWRRYUBBT0NTIyN1'@; put 'U2Rkc2VHbGxkOjZtYUtaXSF6L2ZHdnUpLzBJMFcwWkp4LjR+JG8kVzZAT3RRRXArZls1XnxAVD82cFZpL3s9QjdYeXFFdUVTUWRTIjdlaT1SUE5OdEFxT0VadV5uaDldTXJ0RnJCc2FiO0lOcyNwPVJEI3k4U1I4Wz9rI29MZC5XTiFzZ2ZbZ3VwLDo0dEQmc0xkVVUyKncka01XVXFaaWI+YF4x'@; put 'QHhhM0JZW2AzeyMveUVtckdKRkZTXmljWmVKd1d2TTp4JnE0KiEjdj8/aHooOkUhdkxycV5XQSZ5cUU6TFU+KWRPT2tte0hiTlksMEJ9SUU/UGhjL1tWYUZjfEUvS2V7bG55Uitjfi5sbnlSJEc8ZEIvPEdlY2Jee0kzLCNIRDV1RD1ZZUR4dl02RHxue319PSRnOXxRI2sidm8zcHY4ZzF1UTpY'@; put 'eWk0OmozL0FIeXhGXzApZDFyJlBnKUU2NTw1b0h2cEE6RUokSE4oeSsiS3tgajFEOzAkJk04eE0yOjdoRnhVZlIyZH1aR1JeRiVQL3VRPEZ5OHpUP2laNkRwK3l4JlBaT1Qoay5vREA7YyVTekNYVGlOXztMZVsoUEd1VTA+TDR0KzNHJWhna0YzdSlGSl5VWTMvZnMmelldLH44OyNaajVUZGJo'@; put 'JHpiPjRnSnV7OSZZaGZVO01TbFlXb3pISGA8TUJdazlTckdaMHxLQE5xS318JV9qbngodlVeSW5kejRWRUMqMGhLIXhBMUllT3h1YSVnMUg+djFiaGU3WWcxSEN8fDg5VTVOTnY6PDsvOS5+JkpzcH5dZV8qfTJ0PH1BYHRxS1JIPDgsV2F7QGtAP1pNcFFyblApR3NbPldtcXssTTw5d2F9RChQ'@; put 'TjpKOyxCWmd6LmlkUylKPElBSmBAVEc4MV5bP1pwQ3VRYWpHdXh4TnwmUClsR0duWkVwZmVzYmQwXjsxaE9hSSYkKF8xYyYxOmtAS3xtUjNxd1Z5elp5WVd5QjpdSFthXUl3VDlHI1U7S0prMFhbJi59bigoVFhaTURFK1h7WS5nLFVLSy87cj9kLzwoUnJleldlI11PLnxGL2ZDUUNlJk9QbE5Q'@; put 'TCZESWlMNW1kMElNZFRQVEMre0k/cGJZMC55ejEvYUhDJilfKjtFd0kqYih1VCMjUjZ1eUwmNTRQTTI5UTc4KlRYLj9CQjI9fWFNSGxYY0V7JSNGKTUjPFtEQlp2SFRYQF5mRV52SEhvdjRYaXhIJWRLWkV3e3A9ZVJSPktbcU51dk92QVdtJVZgVGg5ZiRiSHghOlU6bjc8N3VwKmJaajxmXjVl'@; put 'JllzbXRFXj0xZjM5dUFXT2h7eUZHVSVHdi9KflY+VnY5UldwPnMoMUd8alMpXiptam8lUFA/KlhSZHgqZjVOSXFiNCo0XWI7QEVxazBaL144UH1BZ3tIPmksfSEoS2lzL1F+ZkxBdyEvMDkuXy91eGhnWk5zPDAlSHp2aXlmeFp7TjBsLCU4Y2ghN1FeJDRoQ1Q1Pm1SNiRNT3NuVF1WS156V0U4'@; put 'RS90dUhpTW0oWllNYF4wQGVSL2NzPDEsZWNCNz5laFN2NUkwVUl7I31edFFOUCNIMWREY1ZpYyo2XW5WfmsvJThwKyVhWnV9Mz9BaXcqPFFIbktzfU8pKjIhdUNjMzhiRTxlQ0leVTJoW2NZS3N3ZWA6cnd5YzV4aU9aX0JjbCZyUG9eeExZLC9GNTFZdHZdNFhbOVpqS31lQ3NIcn1IYHZ0VHYq'@; put 'SiUoTERCWzJWV0BqQnZgRTIqdz9qU2s0WDZHT3RUdlt0YC5AJC8xUTJ2JXIjbmYpOy5GYGRWYG00PDBeNT9ITFFIMzpKbyNyclhyZnRhZUhgRzxvPV10PHJubypRW1ZJXjpqN3lVOzt7PyNqIkokUDMqeVRNOFVvPWB0Typ6PS87LzU+Qjk2dThEQF46XWI8TzQrd3A0eiouMXBCViZXIW9taUsk'@; put 'ajNja3o4R3NYSHJUXVAycjFiUkc8PT1bKiE/czFHd2FTRDNON1VxO0QqWVhuJnJrNSRVPmxkdlNTUUIwLnF9WmpdNFpwdzcwc1lMYVU+Q1B1YTpKeU9lRTBsYUZLd19WeUpqOmJqI1lrbyg6biwlZWghZFUwaGc2aS5OUn0wJWVvTV9WPmwvZj5qOi9lJSRJRzFkWndbaVtuJjwraHAkU2lgVCU+'@; put 'N08zMFhAbm8/Tl5ATHdsakdddFY/PVhDd3BqbyhTR0xGRmNBcG5pPGpDeTNWXXV6cWVzRyVNdnhbPilEMVU0KlhdK2dZZXxFJmZCWnAhLEhZbGRCPSpxcyk7LzVGfTl1eXQjdXoiNzwpcWIsSnMqWWF0azU8THI+Ny9nNThYUTk3Kz86Yls6fDRBPmY2OkA+PEtKRHhiSTpKc2ckMGdsazUkfD5u'@; put 'bz85amFAQioqejYxaCYhM0RQJE9pYHteN1lsW3FoTlJ7ViVxQWMzYGpkVGx3Z1RyWyokdjY3WTElQCNzSmIyP10kQ0NDMV1FT3lPSTsyW1tZKCI4dFFZfWt3fTd7Wls8NTk6fW02QjReW0Q5fkMwMTNRSDhtUTpab3w0SlRlcFlWcEdgLFh5U1kxWGltOSVLc2ReNjIjNExxMXZCaDBEcnFnNlhD'@; put 'Nyxba0BIUUpQTU5hMnV3fUNyOlAoaDpnPUFXMSRYbjBlSmxBY14rZFE1VHo8dXA+Q3dhdkBLb0ZjcXJbNXtzTyV9VnpiVnhKdWBZZT9fN2BdV0N6N0khL1J7LkZAW1B4ezVoJmRsMlswX3t3KiJ7VHZRIzR1XWZTXnFjRnN2c1ExeXVbL2E3S3N3ZWg6ay96K0wkM3tKSTBRPnZDUDUwZ1NCME1s'@; put 'WktuLl00JkpxQnUsVy9zdzMmOkA4MFhTPzIufTNseDImblBvOGFPa3EiLkhadj8zUW1pdDd2PiorSDJLYFdMPzZsYDR0Oj1ZLjVqPCtWNSREZF5sQXFUU2ZRRldEbHk9X1tbVXY+X0F3W3t5dT5rVXVKRSU8N1BeKlheb0okUWdePUg4VDdYZWtvbWNJLH5GZ1k+W0pvN0VQNS91SDEjY25KcHJQ'@; put 'MDdQPkMoJkFmTUMhTDMkcHg+SUxCM1dQOH1fXS9XT1k2a1psNlNDdlgxKEFnfEI3TE1eRiV1KlBPSSVLdmlMLjkvKm8rTlFMOjZ6PGA4dVg+UEowJFJ4R0k4L046fHE7JFRIKCZHTjtIb2soRFk8STc4RUJpLjU1RkR2ZSFXZGEue2U1UHgqKkZDJF5Ed1h+VFllO1BzKSJseFFCLDBoNyw2SVQo'@; put 'cSI4IXg+M0R1WFprbkQwKWNAdWtVam5EazVOdDJSWXVHKVBjTnZGUlpCJVdOJmhSTng6ZC99RUN8aGxnNXhpIXkuXVFTYWN1Vik/Q2FYSHR+WHxPbFgkV1dFTXYuYVV2eCkuJjdCbnVDY2BXIj5UQFhRNylsalBJT2lHRy5ZV2d1bDxIbWsoQnRMQj49LnZEVFhIVjteXmk2WG1AfEp1TEpFSDtP'@; put 'TXR4djM9Ty5VL0tzKVFqVGlYeWVFRXQufUNAUmpdOSo7dntSSlQoLFlIeH5VUGMufVBOQlgpLmJlMmRbSGZ2UHxyTnVyYHR+VUU0LE87bF5IdlR7QUJ7M2lITkMkfUl5ejtZfSplMDgvO19PU25IRnYie1p2WkNrS2N0LGhTem1gKyx+aUVFVGRbJEhBM3dWMXhZRnlfbCh3fmhhYllyXnFzSjNG'@; put 'Iys4XS8qUTw2TV1DX0hMRTw/N29MPzM0N2A4RjJXNmFpIV1DT007QDYzOUxsSzVwajVVclpseD82dXhbZkI+QHQ7M1Y3ei59R2NRY0MzMHw9VTdHZ1tPSzJuTD5dRjdSZlI3TzR3T3Fna3dJVHQpRlo9UyF3KVVAZEMsP2dEbGB+Qi5MdURzQUlmPCZoTn1BOyh0PUZoZjtDPTtBY2puZ0VyTlgk'@; put 'eV1SaUs1KDMqY1tpPjptYnZ6VVNDO2wsU3QpOWR9KXRQa01zJUkyJlBoW2x1TypNKT1ITXZTTnRLYDZiODBOfCFMS3MpZyU4LHclV2klJlhMfiY9amgqNiRgNEZoKkJhTS5CYU10aURQaUN6fCtCYU1NOSFjM09uUUcvMlp2SGoudXg1fi42JE11aEJ9YylYMkJ9en4vRndpWFhdQypfN1ljQFBv'@; put 'NSs5V2l0UUcvSzxUZi5zSD5pUitjIW08ZCEwbzUzP0JZVG5XLjxrSGNZKTJeOTJlPF0uOyJwdDEvbz8uX2AuXmZWKVUrM1RyUFddX3dZSWNLc1RfKndeeFcjJWB+ckU9fHFwcjsjJmtYcU9tWCtScmNKXm9Ad3ZSLnVgYypWIWsvViIpQHZfQjo2RkJMMjRPcUc8Qlcvakw3VSRYRWtFVWh2T0A+'@; put 'S1EmVCQmbWZMXkIkZW1YMHRnT0NTOChSY0toK15uaWtMYHl7NCM7XWFBb3Jab2t6MWJQbEptK3I9JV9iY3hpZngyOkpVeERqdkZkbk85RkE/TjZyPTRsVkZDX0JbOlEmQFU/Qj5iX11COlh2fmo9QFRrZ3tvPVlNc1AwNSlZdFApPnZ2MiIpTjl2KWoqQj5PRH5Gb0lLc14qfmUmbT93TTssP3h0'@; put 'OipebmYrVWkxT3RLXjpEUjp1OitXXU1RTyY9VUVJVHM7SjdeLkJfRm5KfFIiQCF+dEJWWmojekRfSH1bWko+YDZwKnYhJTJhc3gzI0pLZ3ZxOT5fQ3BzNk9hSjNQOipncHJ9IUJ7X282RjlQdmY3VToxMEk+YHdiW2BOfF1keSF+aVJpN3MzKXEiYCtgNmRpW1RndCV3N2crb0dOeXl3Z3VoPCM0'@; put 'Q3FgMj1eKXkoSyIzKGRVNnxNRUk/cyVCOyUqbHJwKTgyNS8pRD1xWjkvZmlZYkZHOT1keGsvIyNOMCw8S29GTyxVTV5CP2NvK0FXSGFwXiUyUSY0RGRYZDtRQEchOFguQENWc0VIZVFNa3MjNStdMmguVU13SnRZQm4+fFY5RjhoTGN6Qjsod287XVBHXUp6X2BRczwqZ2M2NEtzNVZoQiZGJmYs'@; put 'e2FfLE5AcGB2fmFMVUFLNz9KOk0hInlpMklKOmhhPU9Pd2hxMHZgc0MiLDp5Q2JCeEJrQUsqZE5ETCN9VEF7dTBXP2o5QkVZRVA8KF14KUJDRllaeHYjPlt1cXtMdTkweSokeDxQKVIrJHVHd3l3Xz9BOyxIdVB9JUl5dGYuYVJqUEs/UkNITF4/WzlXQnF1enQ2Rm9ydjpBWXVDYnZuNGpaYDBo'@; put 'PVUwR3UlRillW0I8MklPX2d4ezJFNExvMDxDVWpgT09dTTdTTip4bVIjKnA5ezA0W15+M3t0flQlMHl0LlZMbUY/e3ZDP0RjL3dIPSREZjxrY1guO2lEW2UoIyJrWzo4VGIhL2goVTcuOllsaEU7XihKbE1wUU02UDp1cWY/MU40UFM4a0U9RDAwS1g/L2loeHsqdXVTekI+Q3hGUW40UjsrSzk4'@; put 'N2xbb2ZMd2pOR1F1PnFqYzU4cyQhZT5Yajg3PDNdKSQicnZoeXJeTzgvbHZKZjVCflFYT3FmentrVH0wNXhybVFoWUhCKERFMSYlcEdhcmVedXxWRERVWG8mND8wTF0yRTdrYkI0U2FYW29ZOXJSLyE3ZXBIWXZ7cUJ+PD81fnR6OVBJU2VnXU8mQjlmLlQ5ZGBiMUBvKHBjQnJ9K3FhPEFQITMw'@; put 'fkI9U29JfUZOMS9+ajpgVDw5YzIpZSFyJC5sXyFhe2J9bVJ0U3BrXTpDYWQ4anxiIzpGdUwjMkpNZjYjKH1OSkRfVn5QNnd+KSRuRCEsOFZAOF1LNFJWJkBpNUZDZng7ZTE6aHRMKFBeQnxGc20sYWpBSTQpdGo1OFE3NzAsTHhxRTRzKTJ1MFh8RmR7MGR1Z0JoLENJM1ldYzZye3tebTx2Xy98'@; put 'eHJfZlJdUD5pUnkjLmxbY00xJEMqTT0sPj0mUl4xJW4wbkBMXzh8angsJD4pTFJ0L0lnK1JqZUQmaTpuSzcxcj5SNE5gaUJbOUg8RllhTzhLVmNbcHBsLiFIJCx+cSwsbm9pUyt7Yz90ayZ2N0E1PHNENEN6dj54SkVEUHdwRDgsfTNhWzgmSzRwST8jZHxaWiIsKVhUK1BPWilbYTBubzM8QT54'@; put 'YGhGUDpsMWsxKCJJb0FIKjUsTF1aWV5LUTZRcj12I2E/ZyZhel0wN29IZEA7MTgoZHMzYkw0ciEmKSZeKFN9aTRCT3ghN0FIejdnOiI3dSkpJH1oTFJSNTU+JXxtMip3YVdVZDZ5XUFecUtyO3NhVlg4a0UsSURgaT5ZN1c4OWBrTGEpQndqWmZ4RGRYXUNBWGtNc0dyZ2hWMWYkRVp3U2h0NE0+'@; put 'TGRqSmh2ejdkMlhUUzwjJj0zaHRacFMueERpTm0kM1g8MzRmMDJUckpZeCNDdHpOQjc2cTRnXlYuYTApX2dDfThJSUJRODI/PU9TNldQNEB9QC9ET1UvZj5fN19SS2NRQXZnbztmZkBiQ3Y6YiFuYkVXdCl2NCxwPkprc0R1JnlYfXtLKExwNFdAbSg0MWhrNGN5S1QoOTZnZHRRN2MqXzVmOVo3'@; put 'MzZGK3ZGU04xdjQjJWRpT3Qyank9NEZ5N1BpKlUoXS5vPiFLZHtrWDpGQnE5VnV0QE9CMylPSVVqO1hJe0pNUkhzcSNne1JAbDxsdE5ZJX1wSyVCKHEwVjArY01hX1BtRz5PU1BtYXh9VHJKSnU1NCE0MGA8MyspKGtGSys1NFI7UHJkN1FJZmZ6MFFoXS4pOmFvY2NPLDw/WX0zI2FPYWVkVT8z'@; put 'JWB8Uz5wVSZrLFhJTEpWUGYjeXdfa1QrfXV5RWI4TlJWL0prRG1aQ3JCZmBdWkErZWZqVFU2SXhwOTd8WFdsZE45KHF7IV9UJVtVaS42cmlLfWhmaUgzZWl0ZVZMYX1OSVokfHNeaDgjTkNyXlc2XUJqTCFJOi9odld6KEB2ejtze2tTcSh2eSJLRzFkMSQ0LEZPTy8sSzdWfU0pKzE9cX1eISok'@; put 'STFIZlNUfVc2JXRhO0NnYXZ5ZnE6SSwhV0FWSnllcyk2LG5kZ1AwYU9uJlZtYFBpUF4uVD94YHQrUVpwQzhHOlVQNX51XmkzMjB7OSEoel0sPyFlclZedDwlTzpZaFI9TDh9X3ouXVNCNyI4fGdWLHwoZkN+RTwsOzZwQW5bNSlTbih7RCF2L3pUJT8ufFpCTyh4PkMrXWsyQ0s1MVJVZW0uRj1V'@; put 'fnxhcXMqOXRIe25wWzRGUFRVaFBbdTpbT3okKiZVczVScEx7b3tYZyZgbls/X2NPN2l9RywkfmVUMnhxPHEqN0xVfEM5Q3JoLG9xZDI0MFYjYSN4aXtRLnA9eUtJal1TJjghcSQzPkBRJV9+fW8sJCVHOUNHZzBzTXZrKEN1d15GZ2U4IkY3Y1RrW0QzfWdTd1M2clg1Om1kSjNIRzp+K0V4PyF4'@; put 'JGxKZytKSFohKUQ5LDlYKVF9Kj52OytrNUlidDdWd31wQiZEZzY8MV9mMWdsX3Yve2EqLlYsLDtZJF5pZSF8YkJwIT1pdCRySkV4aVZ1PCQjR30xQjlhTFEoMi9qN3FLSnFSNWNZNWwyI1h3aj9TQlhETkg1TU9VeVJoRlcoc3IyPzs4O0FkU3olIT9ndHpNZVVRP2ZRPj0jbVFhW3wjdilQNVB4'@; put 'OzdDdlB1R1UzNXhScEokSj5AJVFXVm4hPmxLdjQ5e2RXcllndnh6OyYvQWNyJns3aTMybywqQ2xFJjU4Tk11fnQqSl5pXSVXWjYpTzN8fGVaIVJ8S3BCdlk1V2hsWjcsbzdRST0rJXF8QyEsdWg6UCVGV3tnNEVEY1skXTU8V1plW2IzNSl7Rzs7MjFvYk1FRXVYYiZOMiZ2VE9Id3l2WD9dYVY/'@; put 'fHBUS1FoUTR0JnFVeWdTeiMuTkdOTVkqQFFoRjcmKnxjKnVYU0tmfD8hV11RUEVUZ0M0c1FydGNASW1CT0lXeFkiez8vfDB5ZENsNHokJTVRW3hGR093bDYwaCZDdiQmUHZRdlFLV0xiQVdNWEl+e1cwJnVhR3NuUixyImwrYjVUZylvZ1s6dVRAWUV5TXg2VWp+cns9OC9OdWQ6MnZVN2Q9ZSJE'@; put 'Uz9xYE82QklmWiR+aHgjfCMzTU89Xm8sZiFkenowPkBQZiV9NkxMOkhJPXMxPlElXSQsfnc/bEBUV3tlfldBKCEoWWFmZ1dhSDMsJThyRm55OSxgS0xTbU45WVllbiQwcnNhIUR7KnMrX2A+USh6Rjg6Q30/PXZzPUYjcnx+OEhHXld8Ni8sbz0zO3xhYTB9JHRBKjwhbkJOUCU5VGRieEFJNENW'@; put 'RnFLdGdqPW5Pa0t8dUN9QnJZKmRAM1MjR0REZ2IpUl5KRC9CSzYyWVkrbX56YF9Nc09ATXMofnNRTnMyUSRCN2hTM2w6JWp0KVhiTU1qVEEsZjdrOEBkSVQzJl5WYVZkVlU0bH5EYUM+S3JsfCpyTGNHX2MyL2BEbUZIRyVAYlFDRC8pUkU0RT5pQiZ8eXxRc2F5c2FBXiJsVFA6Z1pPNSlhbzEh'@; put 'WGxqR0tsaEY2dmI6YFdWUnZwRm58bjx5bF4/PEclJksrY19IWiZvSno4b3UiNkIsIUVGfVE4JV5fQCsrZFtlYmlPMj4obiVIPDkiem1odyRiYFFoeik1bEJPPzAmaGF3Z1MrX3U+QnhtUiMqZU89aWh4YF96LzlZW0lGNjVCbUJPMDg3UF0iN1kwa0tKe000cVlkbXU4WW5eK000PnR6ZXM2ZE9g'@; put 'b1NfMip6c15fLCZmcjRkLlY/WytpUXMiUENeWzNtIzk9OjVWfXEkYmppPn57MGpCJkI+aktRfmRZdnx7c0tObi9jKWtdUixpe1AhRVAqXWllX2Ftd21sTlNLaz5SOStkTjxYIShoO1huLDVDczAmbSZ0VDU7RGR3S2IyMVpLNjM/SW5HbjNAS3diOnlFPTpjITp6UDwmaj5SYC4lakByYD9OXVU8'@; put 'UFN9bjRqPmdTdHZUZTBBTzdkVCk5cGZVeF1HNismdWF2T0g2WyVAXVN5SCtwUjlvd1kvbk1AUHMjKkZKVyN+R19gIjAiQXNvYGFwXTlrUTp1ZFRsZzp7LHtTalt8Pyw9aC5iVGA/SSkydHklVz9JIW09QShbMGlsd1JPY3YlY0BZRmhNfFo6Sj5tfkBlWVtBMi5KNkAqVmFwQVtyLjZ0a0VPK2dn'@; put 'U2lQVmEqcG0kfDlDIWs9cEk2R3t7RV00T35AfHBFcGQwMzdkOVd2RlR4PltgV2hTfGFkeDcqIUE+QD1fO2tjdiVPYSQsVHZmRldyKmNONWoue29sYTtMPVFUVUw2WThkMXAyQix8WjMxQyFfKFo8fUttckcpYGZrLnkpMGw5PVEzN29ZTn5APV5iTjwxVyw2e3U5S0VCY31yU2JreyFfO1gvSyNb'@; put 'V29WPTs8aTs8cCUvZE55Xmg4NWheTVlIZlNWU2ZbMTdBcUQyZzt9ZEZTUT9keGpdIVBRUks6Qiwlck1mamp2ZkNVSlR7SjwlT0M7U3B3YGJodjcwYGRxUmtpcEtAV0N8czRAb0Ymc1tSUmYvc1tAOGRPWHNFbilQc3xrPCxlQiZ4IUFMcXB8bUEmdUhIMVEoemMwYXJwPXluLFlpS1tbK0ZbPU1H'@; put 'SHV8PzZaSkx3KS9FZ1VbSFU0U2h6PlZUd0FxNCt5TEQvfElCWX1Qb1ReTkxzdzVpRlNEKD5CPl87ZzxtLm9wT3pId1ohOkYvYEJZdjtJMjh3MVo0UTVeNzR1dWx9WEllRU5xb1d6TF41cEoiP2p4fX13cEIwY09HImlfNUlDWXlWVSNdI093OCNTJlUsU2k9VylwbnFeUi8+RTBJZVRGRUNQXkZY'@; put 'V1RFdDtaQjAuWCFMSmV1PW53KE11UG09WWJIYHZMRGlTUks/L31WS2w9Y2N0YyxefDxVaFImLHhzeX5uSko5Yl5qI2lAZFBnSjs8NVRHQj4wTT84VWhucSIhV2dvOSoqdDlYckxNJVBWPGdYKE58Unk4VFZLRUZrbD0iaCFMJFYsTWRHVkZWMU9USisqQiFWeGNNaygwPTI8dC9zLCU/XV9TP2dv'@; put 'OUgyeERSO204LGAqV3I5alhCYEVDb2V1QjB7OndOOCNSfjtTJTdVK117VysjPmR3PE0sS2l5SD0waHhuUn0rRCZdZmZMayIsajY9SnAySV9hQ2U3cUJERGNQfCMlYjYkXzhPMU9INkE4b0VpP3gwVDVuYXNlJFJ+dUVuJmM2TnR7WTB0dENPbmB7ZF0xaiNNNitDVTNPI25mOF9QY1Z2VXpYIVRg'@; put 'RjtbTFosV31LZTJscnU8R2pZJWpHaEFPeiYvKVFiTzNKIXBqK2B+XldpPHxdazBqMGBKLGk7Y3dzUWxGdU9OdVRIQCFFX0tpM0oiJTQuZFUjM3N4Jlp5UlNQWm5SJXB3S25RM0M3RWpDdk8sOGAsbERONU5Tb2NwTmVNYT9JMGo7ajtyWTBEZFcpPmswWFBJazdsLmVVZWlYYXxtJlV9RFFqdS5n'@; put 'cixVejgmM2MyLEYlWD09Wm5hOmlmVXBQRmszNE0wZUlHbyh0Uk1TX1dIQlR+TVQ7RkFZfl1dKTVieUpEXkpfcCU9OzlvcSEsNWtJeTs7dUU4S31wVT8wUy9FXkUwTVN3MHhwRHMpNz9UM3RgZjw9ZDZxdXtIOnVVX2V7OGZMWz9pKSosSmZVYXlYPl1sT2Q5TyJfVE9BNnF7YlhSSXFlU147QGNM'@; put 'd3RCJmk3RzVyeztaPml0aU5PWyFQaUZhRjxRWm4vNXd1d1NaOVN5PEBHW0RydVM/NnU1Y1U1JWJfRlVfR0RIPFFUVipYYkU8ZDFndnVtbTFGJGozJDs9KmhjQX1GeVc+X2kwVlVyYm5VJU0yQmAkK2hefGN1Ln1VfUNTJkQ+PSwjTUw/QGwqZXIuZ3s2OiQxMSV5fTc4OEBWOyU+K2A1djlATF9+'@; put 'aTNEWUhJP1Q4N3UuRXJmXUNmK3U4Ink7OCFZIW49SCg0I1NHek9EV0pRQ2JSIXlmRCMiTz5VPD12IkM4dFh0KU51KzF1IUN6KVlETkIkaz12Wn5WVzF6TSZqRV4+dT9BbVBBQkRMZGl8TUJ2ejBHanZjP1pqNUwpZ2JOfGcmM2UmSFZCbWMpXzRXfC5HQWRYT3BZSSwxcnZKVmEpclgmRHp1UWBj'@; put 'UUQ0TSFveiEsT0QmQ0RQPip3YDVmTnZGOmdDW15oZ0ZKPjkqdmBxVH5qQ01xbF4kPCxgJl89Mi4+LyluUVFiWDRSR1pNU2hCI3phQ2hRfkVUYl4vMGZRU107UyEldilpbispZUBUNjJtRkhDdWo5UXZLfXxiciJ6NVR0UTFCLHtdc3d7TihxNCohNixSaj4ySyhxb1VfU2duJEVGLzNxSz9yWnJt'@; put 'KDFsSTNNekB+PHdyLm1wSSplVSs5WV1pc0Qma3RvVVgveHIsP0U7TFUxMTNNaGZsRk5XZFVIRktQU1VRRk0rLCx4aSVEeVRvQ3grW3BbPm9jUytJLzJ2WytiLCFCbz9kUX05VEtBeSRCUFc3clAuTGhmV3lZLzlwK1AoOmk2RzVCdjtNKFlbOiEweVhvTCM0eHJ9NCJHRnhMNlIoRlFmLClAQHFx'@; put 'X29OZDY5cmZFYnhKaSF7XW8reWdfUkBsXiY/L2x+Okl5fnd7OUhUTjZmcFYkWXBrMFlLc2h3Y1VgWUJAS0xsYyhZQ3t6OHhyRThlUV1SVi4oIixEeV9NKGppNj19REg/V1YofFdAPjsxbjV2IVgiSmBKWFBHZDljJFF2P0VuOV9ub1JTR3hbT0NkaTtyb2lUbkJnL1IqYnUrL1o9bTYoPUxXIUU0'@; put 'OS47T3lBYnYuODdKNEJaYkB1MmRSa0BBVUlGfkhVeUN6fSV0PDgsTWliPnclQSZmNmlXalhBVj9nYzZwLGJkL2UsUzg3RHk8LEpAVHBfOV5AXko+Kl9bXjpDe2smYGpFb25vOm1ZYEhraDdkMVgxcG9mcyZeVm44RSYwXyMsPWk8cnBCI1lLRShhRnJeUV89S2ZGemJEez1lYS4iaUw2Qj5AVSZH'@; put 'Qz0mLjVwMUdEPjgmN3pyc0gqUEBVTnZBMShUIVlhZUJ2TWllalUjfnx1SypBJX4lXkB7VytNOnM0b2AoaC4qY1VVJFZvbkdeWyRmYEBKTVE4dS5eIUQiXT1wQG9GIlUjW3BXTkFvJXF4YSlle1B5Rkl5WzJBeVteLCtabk06S1l6b1BvaVpmRkFuKFI8WyJALGMjaEN9dU9BJWQ5YEAjblpPZU5P'@; put 'NmV0cGZ4Xk8oSSRfV29vdl9ZO2ZQbUJDUTRvMygyeGJeImR8aCNSZUA1b116REA9YFBkN29dZi4jRXlGfjEvciVPW2gmZnJUaHVMe0VDMlUxIyY9aiJWTDp8PyZTL3hjZGpxXld1aktKM1dLJTNCeno9Z09LLCQzQnl6MmxJc1s9QGU/WmhTOmJASSFXInFveF1FTl9GXTooQntXaGp1XVsxaHpI'@; put 'MDRyRGoubmFeW2BrVz9BX0BWMXpAfipsXy4iPSVUWiZ8XnhdWWh8KlEpT1smcXshOnd9JS9EKX4kelsrRDBvW0MrJXpMeWdyb0gqa0EmeiQiO2ptZjt7cTgsW3R5XiJrWXtkMWEzVXJ7dz9nQWMlcT1AKSw6cExtci5LL2VIcUs/TEFHPmo/MldQVCl7dXYsL1BOTDxbcGVTUnJETmlJM2ljcTRE'@; put 'W3sucipeals/JFVsOzs6eF0sI2h7Y2s/ISZxQjlMZWYzZHBDYHIxNCFKIXtJYnh4TEFwLlFZdWAqPy9vSn1IMXdwOW1meyRxLlh1ST82OF58R3dVIzdDIndWSC8wdXRbVXwyTmF5eyVJKVRRRkVaU0pQRzsoK29AYX1VZWdCM2cpQHU9dF1gdjByUCRLb3RxQ2UsV0hfVSMqbXdYWTVweSE6cDIu'@; put 'LEdVdnhEJU1pYnFmWz0qKGUrQkw+XWdAYnswVnxVNjtMMiZMWUB4SkdrQHFKKEIuQWxtOmcyKmNtbGEuME9qTH5BIXx+VjFhQzdGUjFJbVFTI1I+YGY/Wjl1bkY4PihvcTRHWFM3PmhaQzsrczs7RyZraT54PW9MNiVWVlRpdEcyfEdoZDAhPD9NMG5ySVVxYDNYJnFyZGh6K1NvJX4kW1c3QixZ'@; put 'cjN+bW9lYU10ZUdLQF4pUFA5USZbazIiTX1VfHc9ZjU2clRWfW8lMWprYzhRU09HREZPMjh1M1p2eF0rd3lmaC5maTJ9dHF8Umd5WmU5b1FJQ1FZZ3NgSmh2eHx6ezA3bHVCWVRsaWM5ZVh1O31TNik1cTxYc1Y9RjJZaWkwQkxaY1pAZGo9YDBhejp9SG5MXyJrZzpUcnl2UlMkSkcoQiMmOVg1'@; put 'djZDaF8mS3R7QFpnLClzdyZgMDtLImNLcUxHdSp3TXZqNkN7NihNd3NlVVUyKTR9PkgsY05reWxKVWl5c3MqQU1FbD9IQ2BpN1tFOD4pRnVodFQlKDRJWXFYV1lqI3xEMHg4MiliKEFOaUdeViwlam89UV4oI0hrYDk3KUFxfV5jOm0pR312OEh5aTljQD1bJlk6MD1veWhqdSlyMWxpTE08Z2xK'@; put 'dHc1PTtLT3ZGO3tMaSszW2BwbFdXT0B9RH55bjEhajgxNnkxaGxyVzYmZkhsNVc7Nn0+b1NXeV5bX1slbk4+fSUjYiY3IVBaO3RJWF53PHRJejFvaVBSSjxGNHR+U2clcW8kTHo3Lz49I0ZBWWx7Z3RlR1Q5ZEc5UG48bFNXMGpwNF9tSGtYcVFBOWswdHkiOGswOjtsZ0kqfG9gIWg9anF6fWVv'@; put 'dDg3JCZQZixIYiRJUS8lKmYsMXA/ZWF7T3V8Xy43L2hxT1l3IURIYGMrVldfbXhrNTAjKHlIeXw1U3d5az06bE1NNDFGSD0pSj5BP3g6Nig2P1BFOXh4NEQ7WWxFNDJMLGJPSz1AQjI6Q19ILCQ3ND99JGNwSl5sZSohKWFoLmc3VWZMdjxaMyhyenZJNGBFUTtHPm1vIkp1a2tHeT9GY0JyWVA8'@; put 'YmFocDNPWERxTD9IKVY8dXg5XkNbQ2sofmEqdDVZMC9nSjN5Kjw7SE4hUzsvO2dPMT9eUFo9T1Zqb3YkcUhiejVbUztZfmsiUCFOVlJbYTptKiFeSX4kbyt5NmdyQCxObHI5VTsjcCFPYUMhOW5SIW9+M1lnUCZnV1hVSz59ODY9XjEwSG4vbXZEeC5NMWE2ZywkZjxvdkVudDRCK29sNFd8TSIz'@; put 'RlsrfEMhbkd6d0I0Z2JILk9CYVJuNGxsPEBxa01TcjJSUjtyWnwmZi5vWD5eJGMxKnc6d3MuXU9LWmYlLjFgakZ2fmBrL01sITRiOk85IzFjbiJCcHN7UCYpYjhEbSE2ZDBdaVZ1b0J2SisyPjFNaCt6VyM9YTEkKCQvZU42YmpRTTRqNzslTDtJRURCRE5lQWc3ZWU4M3skISR4OGViSUh7YCZW'@; put 'cGdpKG95WSM4PkNaW0tvMi49bys5NEowWTl7Y3EkPzgsUnMrL11SOUVpKDZHKDVCaXB5ayFGRCklcWZ4dXVMO2pPKDtyTmZaeHxDMTRYZC5hd0pkTVp4dkxycllxOmByem5jKDg6NmU4UDNzIXJ5eklCeyVrMXI8Q28lbiNXNjVsazsldmYvbFVOUWh2LHMoJkBSIlpoRkJncElMZUIqZ0ZzYTlV'@; put 'cHBXTTNZQkxFbS5mUUdHUWhlMCtMZSlZaTh0UF1GNk9JbGZQc2QsPHA6ZThpM106QU9eLCguJkxMZCh1T1ZfSStXY3V7LjZsJjVHJVdOPXA9MyVCOykyeDxuPClPdytSLiY7a2FyPSFxdUQ8RDx4Tl84KXh2IXp6WDZ3PClaSzNaJnUkW0IsTj91ekZPMzl6LykqWmlQcSx8W25wbUczdTslKXQ+'@; put 'cEUmQjJMVzg5fGM+TV5Vd34yOSYsQFt8YXlHSFREajNzTD5sOz5nRH5bPlFJPmgqRFYoPCUoPTZaRHkqSmBwQVtzPjtoMExhJjgocGpJX1NCM1ZTaVAjKE96ZDBKWyNzZWMoPXo5b1s8JXtIWnkjNHIwR1pNRlZGbTNlc2N3W2BvdXRxcHE3UDVOYVEwJDh1Ynl2ekAyOXtxQWhHIzghSUowWDxP'@; put 'SzBVWEgvV3Y0Q3tYLio6XWgyMVhIemFGLk8zWjxVfEkvZil4dllYUDIpaXBnRUU0YTFbQ1M7cnQ5b2QyK0FISk4sXWImeWFFVEdqLkBnP1cqTmB5YWkobGdpQ3tKczg/Wl5pSitFYWgyeG5gNUJAbXJjfGFqeXc3ck5VezAmcGZtRjFZUmV5RGFoXVlOM0lmIVcmUWouNF12WDIuRXZvbWQrazQr'@; put 'c0BbZWhrMWdGQ3NCOlMoUENGdWVwW15kNyRuM1FTciMpZzpzMkp0Mi5ZbiRLPyViXjZ4c2l+Wzh3ak8xO2haVk1KPDF3e2I9Q1IvYGk5N1lyKmxuNDh7eyE5OUIwQ0BeaEJIQ3hiJFViVTBiWXpqcDpqTEBFPjEwL1N0Kzhme34kdDh0JSxFS2Z5elhAcUQkIUc2NnVkYzslfCRTMkklUV19aCl7'@; put 'SXcrZEg2cHhLPFgmQjc6diRQdHlnMXFsMXthSlMwJjtjQik5T24hS3IkJUAxcTRdcXY9P2ApdFA9azw4TDZSMkI4ang2aUU9Xm9SPkdXdmFiMUhZV2tzcCZGUjFkVlE8cV5WUXZPW2d1JSIlbUkvPXgoSndqNjZTSkI9QXVfTHZ+JUFoSWxURix4WipnPUg5cF0sbUZXKV5AQChQLltiJEEoLF1R'@; put 'PSgvQWAsVGtOQmN5eDhkVyVmQjR6ZllNV0k8LGs0SFt2THs4SWh4d2ooZzkwSX0kZz5GPHVxWSo5KE0pMUZUKSY9dTowJF03L1AuWj5PSXY6eSEzTn10T0kmYCQlYkAxc0xNOTg2aVUoaDBhKjE/c15PYDdUOStWbl1ueVIhWXpMRC8lcTxAPVErXSFVdipYL3wpSXt1QCJPLiNZWXBaR0c6WHsw'@; put 'VVFaQ0heZEBSRl1DenlWLH55RGRNYX1wYi5OU0t3c0VbdSZgd200TT9AO0tJfUFYUSNDPWE7aGI/RmZ+VHZSNT1hWV5heF1FN212UVpHWkZgNilgbGVNJDo8WVRQblV9dDNBI2YzIyVTbm04N2R9NyVqRFZ3enREfFpNcDovODwmajh6KjVRZm9lfFBKKGsjdjd+NWJvYDcvbmZsWn1neFFdN2de'@; put 'WypLOltTXnBxdihqSVlWQkJAIztjQShbfV1KWDZ+M04hUXlQWygqSGR9aXUvIUxBKDgsU2E1VDh2NlY7S3RJVzhIYyZEVVoqNjNxYEF8XWttSChpS0ZuUzlBTDpbUm1pSHhZZzNgRS9jbk9uITQsS2QqfiRkekwxfWN5L2E0cipJNj5CTWhmdk8oIWc+aE9vU0pENEM+LlMwUW0vWF9DZGk2bmww'@; put 'MjVSTFJOQVdWfSg6NTYlKzBQVFpjKkJhKkVte2BwbEBpMm5yISJ4RWxNMXt0MGtDWm0xYENUWz02K0BJQDtVfjE/TWBbaiFwUm1QJiZSRmwlLGZoT15lSTpKenZZTl9DXkQ6TXJHIU09cGdzJHA2YURUengqRk8mOmRfUXdCbkJVWHVPST4pLEw/Yns6eVZ2fD9MTTpKflQ9KWU1fXJgQ1Ntc2Fu'@; put 'Mis6XVYyL2xtZWhkaWxYc04qU09hJSM9KVdKYURNP0U8LmJNOytba01XR0kwN0YhMFk7c2oiTF8vIm5bNChabW53O3VUI2hEV0x6XmJ9Q0tbOzxZd1NhQ1UwK0o+O24vJHtRKXlZOyw2RiUpQHdoSn0hdy5mO2ZweHBZejspc0pRWlpCc2d7QF4qaFNCY0I+UVR7PEgwdS9GMEtzRj1ROkM5X3k8'@; put 'enZXQ3pQaU9MKWdRdnZGTn52P0ZaSD9MZz5MWzRMJSM+InRpdk09WEpkcHZlUyNoPmNBR1FDcnZMLF9GcmcxayxBRTZKNnVTTTpWQmAjKklUU3RkQ2RdV05yOyYiW3E3ODwlT29NclRkT1psOkEvY08sNm82Y1AwI1BnMHsjNlQwUXFYdCo9KnEhUn5JZU4vbTVNczA1Lyh+US4kKDR4amh4Rj99'@; put 'ZHJEKGkqNUJwbHxCRXc1QSNpTGorZ1lLe3tDNTlCMkQmfGMscl9RSnRHfSYpQXE7b3hVYTRYOHhFVj06TGdZQGtaTktLaXQ/PSY6ckUoentkLk8vNkt4RHVkZ0Z0P11OUj9INTtzT1tAXylmaEduUHZ3aUczOVlQTz1pfCxIMXhUUkp6N1JyLEFENGBeOjdpaEV5ciI9eiR2LEZxdVlvc2k8Rlcp'@; put 'KjJYP0JHTlhyM1h4QkUubVg7WncrLHdUQnN4XkJ8RVY7PUFudTtZa0J1RTpUQ2deVHRLRUUmeEBIUDEiM15yNnMpIVk1TEwxUHcre29UfklAJEEsfVA2XyxMMVBIdCw+VnBQJnd7cmhgeH1naG5ASnFGcnZ1TT1EZV1pYiJKL0RoWGx6fUZDeVtsRDddRWlxWCZFWnQ5SCp4PkNENUlhQ10oX3Zq'@; put 'Q2N1Q3lRJDpMXylvYHM0fERtZmtINGBrR19JcD1lTDNtaHRWW31ucEtebktzQXNkeEFXQX1BdyR6YG0xWy9MQiVwcGhpJkhgdT8/OUlvKkZSc3xHKHZudkklTjk9fjBBVT9nO2wuMERtflE9KEouNCwwVTxLejQpbiNXTD9Vc2RaWUV8eGVEOyhgTGJ1d3F8Z1JDTDlZJCtKVUJHPnt6Q0xAS2dR'@; put 'dzglRnpwJm51O0FEPUo5SVR8Ol1CNy9zZkFsYFNxQ298MWxWJSVwSmZAT29FaSVlUHl2P1dtaUUvQ0tEajpuYkk8PiRoPn0+UmxpKnFLYkJ4bnI5RkBJPiIpYT9SRjtFeDFrXkxYPiYmXmYxOylqWUJWfElsOlhlWlI6LC4jVEE+N0RhM2hZVj1uQypWeitLVGchIiUmIUt9XSZZQD1OQmFOeD1k'@; put 'eDw0aEF3P3N4LzlsU25RcCs4WDdJcUJbOSMvSXdFTkxCJmBtQn1RK3IkQE4jVFpOJkZrayZHIyI7NWhvOVRJN1trdyRpPClCS3A/I1ojMzxxQS54KHElSjIyIWpuRyU4dH5BNEF+PVYwc0FzTXh2WEFEODRnUlYkJGAmUkFoSFZGU1QmRzUhMU1ORlNvP30/Y1NvKG5sby55Pis8RGZFYH03ZWUx'@; put 'WEB3KDB6JkwuIWNQfSVKT2ZwZmJxfHFNWVBvLE1bcjU9MFZHK3QkJFshI3xKJXVpcD1pUlFbaT9aOVQibHA8WCNkXWZMZEUyYVUiYG9UZkEzekdmPnI9XTtYJEYkVm57Kl4leG1eZTRKRUNeNkthMzU/LGUhPV1JNkNPRil4LjkuXSw7alAmOGZsRltzcVYuUEJLa31uZHZBZjVCKyFtYSZTXXEq'@; put 'fWJDQFM2VXxTSlAjeHFiYlM9KipTT252MVpIIzsqMF98Z1k8V3NyJl81VWBtaVNSSHo0PXZhWCVhRFtvUHh2UC4lRzY3U3AzWytGYjJTXSxnfThueHtfMihuUzp2Ri5LXlclUVtEZzt0bW9KWVlLQjxpN1dWbFRBbntMUDFzZjxdSD9yb14hbDRZIVVSa0I3eDJGfFc8LHBePXpzTn1oLl1RU3Fl'@; put 'WDNke3BwaDNQKC49UFJ1O1ouZzhLLnElJEd8MEpAfD5LLGhlbz5hfUJQYFVOWSQobHs1I15oJGtuMSQlaHxpWVttUyQ7XUQ2OHV9aHY7QVAyNClMJD8hVm5gT1NIeTxhUTJGOihicEdNSzhHbGJrIT5HXU9lVWQ5KXl4dnwxcV44Q15wc1VvY3R1WkJvQzVDbFtYOldqQldTWyhXYDoiLzVSbEQ7'@; put 'em50QjE9VDhPPi9LVmZLd3E5VTNOTT9nN314QW5xTEQ7aTtsVXEhNzsoSCRuVnksdD89RkhPQnhvNXo9bDNQTU50YVRpSFFQVV5mMzpMPEt7fGg3elM7YyZKXT1nJjFsL0YuZU8pYWAhaUV5dlo9QVI0OGouWlA1KThZM2JwTGo7dyNGTjA9fEQsdF1XaHddRndWfHxJISVmKGcmekE6TGE4I2Z2'@; put 'JDBWcnA7dT09WjBQQ05zQGYlRSFMYV0rRkBBPGlwWERkTlRuKnQmIiNkNVtYaE5TOTt1NUxkezlLL0Q3OWlEJjw6V2VAIy5VQiVyS2pkWyE5QnYmfUc6ajxmXjBMR2x5LFhAVztUKCJCWjRXPyh7WmRVNjljVW1ua1ozLmhraT0+L0I/Z3VwW1ZbZGcweH4vPD1TYkIzcGJrcy5QWEBSRkVFSzkj'@; put 'U0JzVCRBN0FVPyZYKCQoe0A/PDJPaVkiMG0uQUI1SjFDNEpnWERFOUYsbkxGclklNnZia2lXL21EIjV5dnRTfFpHXn5yU15XS1B4bS5+WiN9fnJAcExGUHVsYl83fVE1OFswPFtCVG9SaU8kOSs6SyQjVnExZktkMWsvO2tOZXNhMGZbbXNhS1tpOm9jLClxbFhaWml9MG1OTDlDQis1V2gpUXdq'@; put 'aHo4PW01TE1POUJzfFs/QSNjW116NFssS2dPWUo1Yk0jcGBBbHEjRz10RWZ3LC57IWN4Okoqb2FSOSohWnApSkt4Q19EPT8vbSllaSo5eSlHazUmSFVKS3hYREZ6QGtraz8vZk9VMkdHVSJtaz8wO343fDpOWylCay5Xblk+bTVKUz5EfmowOywhMVBoYFNfe2w8JSZ2YCI7aGcoKyY6I2xyY19Z'@; put 'ajx7Mj5jaD1rMn0vek9OTmsyNiJLL1MyfmZiejUoblJtWSZwaiwpKCE5b1pYY0VjRkUyVyojbk8wY1JSOXg4bCpxPkVIS1UxYkpoTy5YdUZGbTdadTd2UjVFdypSfT45USUrTyNRMCMqXkorX2VFaHdKMCsyejNITlFtVEojVWlJfkxxQDp3S1VbeFZvJGxFPnZHKSJLYiJTUGo9eGxtJV99YVpn'@; put 'RGdXVTAmJm0kLHJ0aWtmbWxxXyZeJjA/RltdJFQ1W2oyP0VXIzpEWj9dMyNxMUZXaEopcF9yZXZIdStqUmFAZzU7LDJnJENpQXhkQjRVTkFBO2M5IzJyQi98NXxfVEc+KSQ9di5xRkttOWYlM1VBVlcyQ1FeUzUpQWQzcl4mMFFrX3VVI0lIKX1zOSo9Rn1SfDdhOUUhdFV0R0xzR3A4Mklja2wq'@; put 'TTtdajdjMHZaRm57VXpPOTRTXj50OylyXUslTy4/NHg5dmQ0fTxCKEhVZDx3LG51O2pLalJNdTFyVmpfSiExZV9mMT0ybXZNXlVVIWBWPjhxN3FHfFlzd0pQITZRTyxdTDA/WlVmUnRJb01WXyY/NWxadUxtV0A6QD16V1BfdVU+W3BVTD90fHVgJHBiI04jLm0qdDQoTn5uPVspKVNhXSRIRjFb'@; put 'U2Vge2tbd1U9ZSk8bHBsYEhIUjRAOXdKbFdvOHI0LCUsbVEzPitObDEjYTJWXnJlUlB4R34xNVV8Qm57RVVvQyR6MXAzUVNCYDtVO0M/K0xEQ30lSTg2TnRDSDh9ZkJUS0BsPzA/YzE4cGh5Pz9pZE9uQDtpaTVQPnUqXSgjbVVzWjQ5cWlYSDN7dmQhPi4pe1ImIzZxOVV0ZS9OM1oyJEQzOiRR'@; put 'eXNUUlIpcFtLWEEyRFVDT0RFJE5eV3t4PUhqVE1eXXllZFsxV3QrM004MSFydkorW05Sckc+ekAqWlk+YWNQYXVhSmU8NXEuQE0qbFlsfEN0Y3I5JUxtPmchWU87aWldJDVOTVFsNnB5MH1iMXZEdDtaTkJjR28ubkx1TnhdXyxGeyVCMlJXZGx0VGd0KndaQW5qSUdXPmdZODlXR11XS007MktL'@; put 'V3F3aCNvIlk4LHBxW2xSK20le11jeiNoZ0Z4U3JSfVNzQih5QCpWMUxmQVZZVkpobmdJV1grQ3QsOFlgVl8vbEJPeHE8elYrYHFSbUZvY247eVNNTHJoLktiIjgvbHx5SXRTVFY5TCUvZSExTEBDZFZ2Y3QhW0VhSERRdDw2d3E1OUxCVG8uVnVZd0hYP0V8XVZ1QTRNUiYqbUZzckZEJU9dOnJX'@; put 'K29CYTlgJmdUQ2MoY31SMSNSZkImcHtOVS5vaEohO0xVJkA8MGY8Im9bLElVSUtAWXVSdiQ1JFYqK0B0UlVvTixOVWZVT3NJM2B1REBxQzk9dl15Z01hTUF2Llt1Rlo6bFlmRUs3fnpEQSsrMUhGT3AiOHpIZVUkUGNQeU5OYFdaPU5gX3p6Vjlubks+W2JnTj5nMUNYL1VQSkxaZixjLzYoTj1H'@; put 'LFpGbjZ9ezNXb31mSCRZXjZSW28zQjh7ISNvQz1UVGhJQkVFZjJmcGB+ZHg1aXZoW2ZuQG4qcGhYImVEeCtUJnYrTEEhSV00cDtJTDJEYF52RH5hZV5UcH5wcHVZZ0h2JGBxfWJSVTN9NTVbMW5MZFd7Y0xqMD1PZERlfE9gMUs3Y0dgZjEmLDdhNm1qNXx0QS4yaH10XzguIWR4NitBWENsb2pe'@; put 'UXQmQzRAcFVMVTV9UzxoKU9nL2pBWilPT0hHSFUiLnwyPGBqOWFCTC99TGx0Y0h1SFdMTC8pfX5wKkclKjQkeyVwT31UXUo3LyFOOmBsaCQ/RUIoXll1NUZ9VG06PXxOTC9delgwRkg3NEFSSExiYiY+S0IzPjM4Zy80S0wzOzBXc0NAe0wwW24rK1JrN29fWSJtMEB1cVskZGFkVT5BdFRxQHZ8'@; put 'eT1pUkYrZEByNWRVYU1YZ0ozdEN8JWBAKV9FdyJtKXw2M2tBO0RRVEZbVWcmWDopMG9qNSQvemw8SyFOWz5YJlhdUjdUe3NWeSFSJj1qPC8/Y31MKE08bzsyKkpheno9aj9bVD8/OUpwJmdeWGxzUmdnOWcuKExoX2RHMWMqS3s9LF9SOEJrNX0yejAoUTkwW3c0O1p6fkFbQGdZQkd5UiwuL213'@; put 'MCVoMklKZTBhJlM8NlZ3MjYzYTNTI05saz8kK2QuS3xsdDs7JG89Sno1IX1KMn1wXn15XW9BXnNSTyhbajV0QXV3fG5mVyhZc0xLUkgrOlc2YlI5TihYOShJN2k4RFdfNXplT0VfT1VPa2p6T1N4aHh8dChRYl1GbUZyM3tNYjl1WVMhemdbfihuckRfO15yP3ZUakZSNlE8V2IzL35nSisuLCpL'@; put 'U1Vme2osfDlYUkpCdHFVPkNUY1FfcFFQWj1ESVVgbSY8K3J1U1NTNXFxL284OV40c3ZkWzdCNToiXlloSWp7Xk9NI25VNzFiPyRabUFfWjBRYXsySTl2VUUsfTRUb3RsYj86Q25AZXdGd25AMGVBUmNudFlxc3tQNWAwbHJDR2prKk0zP1NiaEZXWlE4SD1QJXxUTmA2KSl9PzgiPG0lXkQpUCEp'@; put 'UyIuKV5RKDdQPnhkVz94WnQiJVhWcE1lYUF2IiVqeCNqP2h1OUpPZHBSeTBzaGtaJXE8PS4/NyJTQi9BVTNmMmxdSldMUFlAe2JWIUpkMFJWM0w/b30yPzR8RGFmeC5TdEdpJV9KQFZbKnZEeSk5UVlmK0gyeWVkOiRtSSgjUHdBQiZncSY+XzFZIms9RTMrREl5dVBONyR3VkNoVjA8OCY9X1lL'@; put 'NnNmOVZja28yLCoodnt4LjYqbj95ZkdeNSN1T3JadXExdF1KYDIya1JGTGRQKTFVIT00Lzc7fmdjWn1oIldNYiNOL0ZIa0hpT3JIKGc7Znh1WGJAbmp+IU5vTmxvITtgUEpybzpzNWBSaTtsNjElMSUxJTElMTpeKCw9YUxrPSxyNjlvdyRvLltPLy55P1VhMT5MOkZsL2ErakI3TmxwdmA6ZCVZ'@; put 'MFF9O0dDJHppXiMzMWdxMGBXK0pbPzRQMXxRencjcD4rdnl2Vz9HKlNLRjhhfXRbL1RCc0dzeEJDTDVXMiwsMWFaSD5oSTZKPC5mKVQ6X08yd3cxJFZMLHdueVlbS0M6Pi5Ze0EoSl9oTyQwTnhDfSVaMGVFZio4dnJhUWMjdW54QUtHOyx4QUtGR3pucUNZJnN1JlRWQnFucXs9SEwucntKVEls'@; put 'VT8zP3ZYVk45M152d3ROJm9uIk1FZVp4OGxFTz8uTENuMntrbypGa3t0NiFOTjwkWVtyVk81Tjt4Um1MdzZvLGdHQH12NUBldGFofU99cy87JnBiWlBeQjpbJFU9UjpdaDJdIWxiWWkmW3wrLkhIKW8kSm9TITQuU0JtJmJbWFt8dEJiREJmRFFFVUVMaCNkXm92bzhvTUI+O3UzJG5BKjRwWzpF'@; put 'OkZOU09uLHtgV0c8R3I0Yk52O2J1dSRiYDVrJkE6L0dVNzBPS3l2ZSU3QHFXMCh3ZGg9ZSkrR0w0RkFbK11CPmF0Tj9eeTAqP0ouSmImLmE4ZWomV2g1JmdKW2dTVWMpXXFlJVA9RiJ7LlA9eDtVcXlCYkozLEc8KjRLfDkqO1RLJixZLC5EUDpAWSVfY04kVnVYVnYmVEY3ekMvOiluXkR7Kk98'@; put 'fG42YS9HVlF0ayxvbHNSMHM/THFPRG5UdHcsKUdodGt2Q0dqRHl+cWJ6aDFZc3dYKGclL2J8emFNcHNKPH46WU1wUjpCMTB9bnlVYCtsZlB+e1cyPjNKSmtmLHheZ3o5SjJNaCJTcHgrYEo8b3gxSzRYJEp4IlhdR1dCS315WSZYbCFRd2hUNW5EdWFtZnhKRWpjUjl7dFU/TlBRQ3wuU1NmLjNS'@; put 'Xld1KXV4KXV2Z1F5SWJ4dXckTVgxOFU+TDZDMCMwcVd+SnY5V0E2aVA2VUhsTyFGaTIrV0t3Qz9SUUU6dTNQWCZAXyYqZih3JD5gNnAuWSROeS9CfT8wXVA6O3gvNSZ8dFZQXy4rZlBrRk5VaCJocyFLNih6XVtbK3NYVDJSQUFBZ0FiNEFBS09adHxMe0JYRShNbDkrPEdILm8jN3c3eE4mQF10'@; put 'WlI8dWx4LkxBR0FBQUFBQUFBQUE+ZUFzIU1OS1c7S2tBPTs4d21oXXRVZzpZQFA0b3NKQEdJYj1+fXk8WGR6X3lPfG9DTDl9bWtxO31YIV1wJFhGdzNJTk8ydmVgU2NCJSpfP2B5aX1EZXgySWl3cSxHWChtWkhIeF8kQnlGJWN1JiFhMUw0b1QvVXdbNXttLC5OWXREe2koXkc3bmxkIV52Mkk/'@; put 'Q3xlX0EyUkFnSUZrfmN2PXlDLiRxOmFZKS9oXTUjTWVFSix8SHRuSWZ6LFpvbiFmMHpLVXAxO2J1eERjbCIqYDgjKzV0MGdULiVtRzFiX3ZkNVt1cGRZTFoyW0NlYnx8SF9KO3NFeTVta2A6cnhBayt1NXN1JFduPHZbTVclNywxXUJqcV9aSCRgU3BUSnQ8blE6WyhafTI5Ok9wL2Via1VeXkUk'@; put 'ISwoS2hJLn0zXiUsJi94cVtRdDZCPXUkIXdCSjgzInAuTm83KjcuKFo3cTcuSGVmRHB4dUQ7alcoP0RqNzd7dSNgfD1TLDVYdV41Pjg8fjpaVWxiZEV9fCx9aXFDXmIjQiRtIyZGJjRpJHc0bDlSNj9zT1daQmdvMEU6UEQuVHBfJntbYkJmLjssdTd1Y259JW8vT2hHQCMrYzIhJFl2UF5OJWUq'@; put 'YyNhcDFKIzIsN0NCUCpCR344aShjYGxpaVg2K15gOnMzVkdPJj47fkpuS3xheUpWYl9wMy9FXVUwLGk+SSE6PC9BfHhZaVhNREM5NDE9Xmoqe1RjQmgwUVNeeV5XZ1hVV0M3R0RbbURMKi53dT9CbD5PQC53dDJ5QUFIJCpEPi8yRVpCcFF4Xj9GU01iTVVLU3hWL2c3OHl+TWoqM2NpfDJtaE92'@; put 'RGM3LmtnV0szK2RoRTJgYTIwI1QjcF8kfG1wPVUvZVhfb01naXpVMlZNcWdnbFBEKXYyIXN8Kk0uXSZ3eWo8Sy5DJnZuRD4pRWA7RjpdM3EvL29QaVJeMFkqNSFAODNhXW5jal17ejRJVkFKMWgpKiU4O2dpa2BRUSZEa1oyPFkqMGxrUTpEMVYsXm1tfk82QjlKLCJHRXRIaVVrTFp6Ik5CI29R'@; put 'eG1Ae04+a2g6YWl2eCFZSHJGXzZbWyI+bDNUKmA6Im1TXU5bR2BnQ18jSE1NLDZ6SntCV2tFSCt0PE4qUnlXXU0qPz02N2lMSU1TfmtSenRST3dwNzk+Z0g3N0FrOHNAOD4maypFZl9bMmhYMz54UnVrcVNFYnU+O0ZUdkZVclQ4Z199dXBycS56NE94WmNkMXkiU0lIUS9aTCQxd3VeLGhCTUB3'@; put 'PDQjYTpEX21jZyM8YitWcW5PKDs4S3A6YSRKL21DQGF6MEBnKjlsfnhTbUlDXzJEIzdvRiUhdXBNXW97cFNyXjlvJFIxNSptRVA+QGN7Rz5zLHRkQm4yJnI/amgpfjAjeWFEQGwkME1yLzRPV1FQJmZJTEs0N0x0aSt9T3VES0spSSU3JHhUbkYqY2pLe2JNIl11SVY2VHZsLC5jJiFhVT9YUkgv'@; put 'Y21dbGEpRCQhQDFddjZ4Z01UOjolJSoxUWNDRls9bD9qQVQ3NVR3fEJzUzBUOVtzJVBmPCokNkFzJUR4T1Y4aWpmU1Z8fUdKKUA0V01zTEg+bERbSnsmXXJ6NUIyTTg5UXBPVkRHNkQ0TGdnc3JMQns+ZXBFd3VTbk1gUUUwL25tb1R2KDxmX2FSVnYhVWt2P0goTCFDdVI0b1pJOWI5ZDF+WyVL'@; put 'fnszVkJTW0xII3hEOnZwQl4odzBWamBjMjpJaTkrWEA4O2peZDwxVTx3d05PKXgyP2hpWldEY207bz9eSGtIdDxfdnkjPnBQMjNfYyQhenFJRC9nXlpYWz5TQXdQIXFDa1gsU3c6YnxsMn1gaVt8NjJPQTR4PzkxV0d0KHUmSDBlMmZtVG5PJiFmNFFZTV9HOil4IVtaRGsrZSQ7K0sjNH0+Ojhz'@; put 'eVZCUWVrN1R4a3lLU1lZOiRdaGZqaDh9SnFtMl8/TnQpJmExQChxKnwhSGBRX0VDeXA4K0ROJF4oO19mJGxOUF1KaHc4OzYhY1Z0S2l1X2hpeHw6VCkjITtGakArJFdNbmI5YUUwOnFfWWJmXl1DWm5YUm5DTHo3MG8qI1dRY31MbU5UNDByKiYjY0IqQTBeK31gU2RaIyRrbShCY2E0X2khJTBX'@; put 'NjdlelNjbUh9eEMlakU6czI1UDZpbHdKKjdibGRAU0ZEXXtWMWpvdG09TXE+NVRaTkJ0bW51NDNWPyEyN3lnZXxLNGIiNmtMLltSJCJiOEVFVj1sMkBvMDF9JnxQPV16cD8hWkN2PCtiX2dvIW5XISUxcDFZP0BBQjNzSj9sXSNfRSYxZyl+K3YwOHJzZkNxMkBeUX1idDJ8KSNqcVc4M1EuXjcs'@; put 'cmVOen17d283aE5HMFpZTDxESF00Y3B+KiJLMVBodXdjP2A6fWVGNWF7YH5VeHlxYXM+MUomVzk1QUx0XS8pWmozSjZ7aEhpPTojeV9XKC51eD1oKmN9OU1DUEl4N3lAL3g7LCRfVD9kMnokRyYkeVM8UHlhIXk/cG9ISTVPfSJdXXg5fmJUaXZqdU8xUSJRUU5sdSF4eXN8XmE6QWUoUCh4WHJk'@; put 'ZlRafkVAKU1CdHB+b25JSCEqQkRhLj55S2lnfXApUTp0SSR+e3QjZUp5OU9nTjRYQip+VFg/MU9oMGk2RWVNbnZbPzhISjVrdklGeHxSQiRUbkpwUXpfPndZP25mUFlxIXAuSTZMdWpiOWh9WGkuOEdOfExPVShHalY+dT9aR3Q+Vi9rV0M8QytVOE5OdkpIRCw6Z0VrfWtLJCR0IjJ9ZV87Oy4x'@; put 'S0FKZH1VOXFmfS42Lz8/eTY1QllUMUUwSFsjJFYiO20leTtuaXdodHAqY2x0bVchM2xKNmpnfSZYSGpnLytZQFsxcWdeJWwkQGhpLH1HdSFmbX1NNjZFaUxkQWUhR0RwVTAydC5jImNVX2V5cTZTVGZnbGxIPywpfXpLUm8xW3EhPXZWKn0vK3VOZGJXQkYqJDsqRnZYcUdMSmM9dHYoUyZkay9u'@; put 'TS4reC5ZL1NNV194clJFVyQ6cihSJllAPl5GYWc0eDNsc1BnRmIkQDgpSFlEfTE4ZFcxXVBWdXxgT3tJdjo+MXkwSnJXbzsxTSZYLEtLXzduKnN7M05hSEx4fFNjaE9YezB8ZmxHOHtzXzszPlkweXlFKGtTPnBKWyh5MWF7KCZhfG9KVSlqZF9KYyVaSHxyNzpXemxYSjU9TkE/O09TV0x+MnRk'@; put 'ZEFnVDJLa2EkV09ZIjlISzBQL2QuLm1dX0lIPEomfFRSXS9AY0QqamQofGV1TDFVPTxua0JjZ2ByYnZePWheam4xakZTeV8oOD5faXM3JjZILDgkKjc6QTw0Wj8pWWlUWD1PZSFdSiZCdn1PKiQhYmdmPnBSb3dpR2B8PF9OcXlrJGxTe3RbdHZ9RnBIbX1mKFRUOGVxd0BFfV5IRHQ6fVlyZDs/'@; put 'PSNQaW4uWVlvdDxYdEpMZixbe0J7VCh6fmwyc0x7e1EjSExxMUwpJkVKTFEyMW1HUyhPPjteUlMzamorIkpybl12bWxOSE46LkxgNzQ5dnI4VG4wZC9iZEJ0bWExNnZZRSNsfHMlfHwvWmRddn5LMn5yLnh9Kyo/YFZjRm9ebnE4I3NhQ0hXMHUmQ2VfaFR8M1AoczU1cW5mdDZiYVExM0pvVTdU'@; put 'M09XPEUlUjhueVJifHpWWV8zRkN2PVhafTpeMDYlNSleNlckdWZdPFNHKHU0QyxqJUJjRzNpImwxPiYuK2hFa3gmNkhGaHRJYEpSQjk4USJXcSFTeFBMZGZZbS5ePCE6O3liNjolXmxqVDMiPTJZOSZ7Jn15XVkwfmI0amZRPyF0XytJY3pZflpib1gkUUpdTiE6al9FUG0zdyhtND1hRyp9RDo1'@; put 'UUBKdWMrKiQhY3c6V0oobTBSOUhvakxZLyUpJjxFOTkydGNZZzpvVHckMmZuOSwrJnRHP0E2cTpIfUQ+YF1rLyF8R1dYZjt4fHxVOEVZZTBsTzQxejNufWI/VUY3W1lFeCVqV0FIMVgkdXV2aSZUNHVGS30uPHkjPG9yNHAjNVlFYUQ2V01RSHJJaHZodV5qaGwmRlNzOSQrJnYzOGBmJWl1XkZb'@; put 'aTpAWmRwcUpVXXNwRX5mNDRJZHVsUnheJl9ZUEgvQj5zM1NsJWVXISFicTxLbzcrb3dZVU9pL1lHLFIoNiIhR3pHPFdjOll6PT84XTIpQFlYZGdnYypOYTBRZnlIc0xPXWZ8eHRXMTppJUl3Wj43MUw2b2g8RnM1e3ZsL0FdWnFbNHczUig1RUIodk1WJTZeYU1DTWosRCFoODw0eEB9O01kbSZg'@; put 'OWFPZzR2cV57eThlVEhiaishcldVb3ore0YoZVF6X3ZCSHM3OjdUX0R5I3hXRCMmRjZiSVFdU3NdTGI9MkNTcXVXaWpxdngwJExELns5TC8+Y3oyQFFAP0V1X2peZVtwRTQrYGEjd0tfKkJoIzJzNEV0NENfaXFkQkJaUUo3b2A4Z0RpQGBwWVojcHdYej8+KU94aTdESE40fDRyYEgxLjtvMjdT'@; put 'azdsVUA8JXx5W0o1fWojQCtJfV1kKiZsNV9gYXdeN3hyPkx5cE9YYjZkcnJ+WXp6Pm8pT3ZzSzEyZW9GfDd6MCokTGwwRiM+RFAlZUE3JEAiWCNKT0VVfDdKJG9MciF3LzIvLHJwanEkeH5ecisrIVcxLixQUjw1YDI5X3RBQz18TkFaJWtHNHleMnEwM2N7TVovZXhQM0h3WTA2dGYzI0MrXSsp'@; put 'cWYkJC9rYkdUdF18fW9ddzRlKj5lQnlha0xuZ2hMQDAxfVZdIjJRM2ZEWHIjJG9sOmVffnNuN3hBQThXRi5sMCxeUEhzVG1ZX0AlVDNIbWJfOnwuO3ljZUdhNi5IelVEUElQdD95MXAqPW4kPjZgVyQheCQ2b2g8Q1g+aXdVKkUodCNkcj5RZDtOdDRJTk5PK3VrMkY6XzFKLnhEWlhlcEVufD1n'@; put 'R0t7MFtuOFgpL2NKfUh6Z10sNFQ3Q2l4L2A9Xk9pYUFUT3ojak90SVsmMiJJVz1+dE1YMDtiR2J7YllgcS5GV0JuI3lVYkAsL3I8VktCInxxJFU2RGJoJFQwKyQyUjxkfHA5JVN6b31iQzw5SEUwN0VLcE5QfSgmIzhfUihKSXRmL1dEQ0ErYjwqOkBPPFp1PSNScFEoNmNGKVEja2orQ3AxQDoq'@; put 'Q2ciXjhdVnNlRmFCV15wPTFNJSo4RVI2aEUrLzlaQz4vKmlrYHVvND8mQjEqaGJAZSZQfkcmOj1qVDFXeFZVUz5GXiJpK3ZDVD5BYGlebiQmM21oQHElUSF1QGBNUTY6RkMxJWFoQzgwV1BIUyxVbjc4KH57aCQ5cXx+Rm9Cen0vdCw4LCpSYG0/WSo+ejI2NF5WalUlTXU6OzI0fTFrXnc+THZ2'@; put 'I2BkV3FtPHNMSzVQWUFyX1FzImJZe0gqWHxLKzQvKkhgXlIzI0V9UXFYSU9HNih0NUxXfnIuY1lCbnIoe10rTWYkXjtEKmpKMlZUKj9CeXFsKGNuWTtsYlslajVxe3NeIWoodCFdNj8hQE17Oj49ciUmW35CXlJGKlJAfjorVnlIYz5ZKj5uVDE3RkViY3pGP1RgNW5BSEUoQnI6dV15Iz4lZDA0'@; put 'R3d0I1kxVXFvTlRVczIyUD5YYk5Rdl4kbGQqaG5pNSpINW5XKjZsUylzfCYrMFt4cypfTkJONHNaVU5rTzc0fj8uVT5DaDZwdF9YVEwpfFFTIU8zc3FFWDosU00yfShqdG90Omh9OXwuTEpoY25IRHxeRXc+JGE3dVV1Sjp5JCtDY1c5QUBhP0YwT3lXa2ZZXlRnRmB6Vio9e09gYls4RXRZdTVl'@; put 'L35HV3s0LEYkdCJKJGJAS2E1Jj0xUVpxMl9taXtWQD5iMl87QEpfNC9AI1V8TWw8NjRRNFIpbUE1PDgyRDF2WEhNYzh3elY3eVJNOn1RTV9acFlqJFVkOXcvKTZYfEpGZiFEMks2RDk4P183JDQ6OUo1Jl0pelptSkl+Ung2UUIoOzI5UzB8W3M4Y0I7JkpYNU1YbUckWFY0Z0B+N3F6amlgTSov'@; put 'L0JDXkE+PypTRVU+IWw+ZFIkZSl8WyMlcnU+TThEfXglI2tTVVRAV2RWZnkkYSwvLGcvbCpncnZ8W2EpWCM/aFNkU3g7JFVDZFIpVFFKcSxKIWY+M144Qkt4UnF7Sl57STc7W2ImKWU5U3RscVd9ZHtPKXcoPTQqOkZ8SkRKK2g7eCMoSSRvJkRFdGk6UU5qMnNCMSFjI0BBczxgdyNFUiRvInxV'@; put 'Xls5Uk1hSk4rdC9+XlVoV2JJKmghQUBtJW9fcWJ7el1PYDxJZ3E9RyhyfV9WRW9HLHwkQDJmLnFKfUZEMUNUVnlwPXZHRFVOYCl3IWBmIzI7XzgmQDZXdWwweURfKnJ4VllJbFZ1WyNleShYNnM+cGxkRH4vKW53U2N6KD0hIzMybjBua0x3MG4ifCQrVXNaRzhNVWwpXyhjNjdOTzdGZlV9YHUh'@; put 'RlM8RENMJiEoWCglKVg1P3xwbExvM09HK2J7YXlKLyp9XW89dmIpeEMjbFg7VXx3QzA4Vi4wO2w8dDxkbS9yZlVOKkZnSy5La0loPTY8Z2JoYHZgOXUjMTMwST9BcUdCbltASHhMM1R1OWheNG9QNUhXcmlGMC5mdS48RGB5IiFpaTE7bE13UnBkQW5gbXlIMlU0e2ssOHI4TStoaHV2NnEjTUwy'@; put 'V1M/fTEzNzx5IzdmUzh1S342XSN2dFklU0JyOC9EPixIaTRxeEBENXZPZCErJEdbezFMdEkobW5UQHtuNFtib3smXjdMMG06Oi9IXjl9NV9CVkM1S2slNTw8Z0JlfWdmRls/Ji46fTQ+T20sZ1dWWT9xUVA3IWV8SixQV2VQckQoNmVQVmZ2OSE6XkAsb2B2KG1gVTk6YlUyODUqZ2d9S3B2IWs4'@; put 'K3VhcTAyPjhhN1BmQGVLL1AiWlJde0VwW1kkXzlmO0JeU0JfYFEuLiRYJiZgLDdiPmI6IiNkaChCOHlzfmoodkJGfU8iKzRHSzpYJlRic3hGeVBpRDZoby4uVFpOYTxQakJqYChmImM7JkAyUDAjcVEvWiV0els7bmlVRSpdei8/SU19aGQsMnVAZ2QuLmw1bH5UW18sUEp2JDducGEpQmk8PmEp'@; put 'SE84SFU7bWQ1WngsM3BCSjZ9MmczPjJHZjMlLzklWUNSS2wxTENLLCQ4bDUhV3FkXz1NSm9vLENpQHckZnBaOyNuIW5xP0wianA4RCN+SVc8S09XVjM6VmxTSVUyQn17SXhjOENCUFlaTHs4QSt0YChnXkJRN2YuZTRCayFLZ19rPCZiOW5xIlBUYX40X2tFN2lHP2Q2VGgsWmF2ZlI3ITpIaiky'@; put 'ZCJxaU5DaVtGb0ZtSn0lNSgiN0NhY2BFXmFbRHB1dTl9JUFMZSNZc0NNJj09I2drTnVrYWpjQkR0UXl7cz0hXVh6UW5iNCNuNWI5W217TnJSb2BjNyIjO1R0MFV8ZlM4LGBRNlpaPnh9W0tZRXVDTSNkS3c9dktkK1dRVEAyO1c1PD1lMTUxXnlIPUI9bkUhUj82VTtWZkpYYFQ0Z100TDQySXlN'@; put 'UUhGQ0hySTguUjc0eFtKPjBRX2F8Xl9pY3YlIiltNkthdzU2RXJSXipkNX5mKCRXPlNIMS86NTRrKkxtLD1GUDpvbUYkfkxzMXFyQ3FTTD1GSiYhP2dTO1REMFEmb1VWZVg7SzVjb3VVSDBkXUZpfHlbP1RWQl9eXiFeQm5PJFd2VF5lYmhwYS5EZikzWiMzeyxkRHdmQ3R+OENvTi5+O3g1M3k/'@; put 'aTh1Y01zOzFCfik4YXguOFZkcHRnIXlqekp1alcyQ2RFVV9AekVRNEh6JCokciZ8Ojd2KnFpVFYydjE8eiYya0crcU1Nb24qezl2Syp5ZmNCUTRUeTxmNn5FUSwkckEqSio3dk5PXzpHLz1dXmtKdXBqKXQlcGFvfFNCUXgmSWBxNTApOitxXmRQNWBGSXA0Nj5pUGssPVg2fjhdYTkxUjloaUlf'@; put 'P1JWOXcsdChnRUt3MHFEOk1TdGZZMX5NTDE9RjEkektSQ2FjJD41UEtgJl0pfmojMEVdczd9T3g/M0UifmR9MyMkP1ElWjp0eDspVX1TREdNalBBOm8uM0hjUTpMQnZ1ejU9VERSYWwpVUNrWSJZfW92MGxLMGRJPEUvYEhlQ21IIUxBNUFLfFdaS09LemRKeFg+bm9sJnNIImhHT0IxWGRyKWdO'@; put 'NldXdXUyNi5sW0sjRlBVWGNJalY1U1RIRUlHYClRdl1uNDY/aCg2SCgiV0cqcTNyYTVYajxjJiNjYS9mPkxaOUNydSs9WGVhMTJJaVZ7JTpeKjk8cjZFNDMleTRrUkh+OkVDT11dJVlwSWghS0U0Y1JLYThac29GWW1TQHF+P2xXZWFsRmZWZmtYMnR1Z0Z9MnlVQy96L0NhNEgyZFJzaigxekZy'@; put 'OmYmWD1DfjVSdDxlb2tuYVo0NCxrLFAxPU11YSl5ZUhNKiF4RSVYSmhyNT9TdihWSFViOUMpNjphSGRCeWpuWUw5KGxeWW9bSSJsVV0rKlNgYCZkTDM6W2ljWW1+WFlpYno+LkkpaFZLbT1bOE0qc2BGRltWVnZSPzZ+cFhNSX5uR31sNj05WyoxfSN5RSkxQ2csZj5Sbj1LOWRdUyNNdmhzcDF3'@; put 'fDk0Z340eGE0JGEoVDwvdysuUWlbVkQzc219UV5pOmQsaV0/Ry5IITByY0JyVnxMJEdhV1RKbG52Tk5oRDc/bFcuNXBJKj5GbG43anpgal9DZnldWGF6OFYxSWlScEhBQHE+YVI8TEtDe2c1PGV1SSs5ZTJCWG9YS1h9Vyp1dlNAczxMOXFpLC5zW0V9ajBPaj1zKSgobDl7dTFLeUwxVz12XmJK'@; put 'SzxWME9tNipHQ1c1ezU9PF5YbiJXLEt0dEJeKUV3SlNRT110K2EjQSw4azhdPnMicH0pNyJxPnQ2cEgjKEx0S3h8PyxuUTY+N0JHX2RgfTZrSHVqSFpmX2VQX31INipXUzNuN3JAL3wmbWFRYn1bRU9UM3hvd2RmSmpRKyh1SnlXMHEzMWNiUjNGN0o/JUg+Z3ZtVGQsKU9mWCR1W3x9NklSTyhX'@; put 'Iz1VLyJtIytAamk4VX1XWHxIOVIxb1NKcUNUZj57YWhxYDEkSlNpS3pgOXdWbDUlYjJZeHc6ZUdUa2RCPXI8bTxAVnEwWGYia35RLlZiaWsufmNnS3YqRl1NKGRmWGhISXBRUnJgUUdoSGIxMkZGeDM0VF5QWHh8SXw6aFlkRFZSbWRHPERxXUlPWSY9bjFQPUtHbzpbdmUiP3cwX2IkOCVWbGRb'@; put 'SGBOYkYpemtiXUJObWhGQ2hxZDszW0U8LkBzenBhX3RZOHN8OF5gbXJ7eEw4b1E9SXxXZG9IKnVlS21XdzAke3ltMCJsUGVNfXlRUXEsZGk2Yyt0U0k7PCtMKzc9NVldSEBKfSJgdDN1Uk15K1ptLGkmXXhsIkA1OnJ8QzE6MUBsXSZsZCw+IzVwSWUkW0JDXkkzen04QVFYI1YvcVoxZ3xCU1RP'@; put 'R0V5KUlrLjJnOSQxKExpQXY0TTcvPGJnMi40PkVBLypqNkpoOkArWjpveGpKXnFzZXslQUtkfFsmaTtQd1YmKXpdeWhjfDVue2t3ciR7ang1OzYrellWbnZ4TGF6SVtweFp+TiY6KW8veHEmZSN+OzZufk5xY1MjWllzeGBFRWA0Xmw1IXc4Ly82TW1VZjhdWkpwN215cyxkVkN1dkJXTGVbd15f'@; put 'JHdmeyo0KTFCNHUqSF56Pk11RSY8cUMzWWR1LzZ7PWFmQ288dWZ1Vnk6Ki58PEhXfTJiZ3ZeRWN1WSlqbzUxZmIpNDlYPWAmel4sQUxCIXU9N2JsL0FxbEBmMlh5b002R3JyT0RZT19MfU9NfG1HV3dHKyh7PWR3KGpGcS5PIiV0V28yKEo+bExgfjRuXVcuIlE0alEuT1N0REU1dTI1OHVeUXRi'@; put 'W1p8InFjTChDWy5TKz12WFlJfVgydzUwKlVpa3VgOVIyQTkqUWY2eWBDRSsic3kjKlVSZk9lQ0NZclRefnV5UUpnTTJPUH1RdUc3M1t2ektMRSg8STQ0bWQ0PF9FKDVpbUBwJTZsVkI3MnZBKkY8d3o1dEp4fCNWQSpNS0lXb30oLEtLdUVRKWQ7T19GYEQib2s4UzopcGI8TC87OltjV1NGdHNK'@; put 'ODExZToyeWZbWGwzKFsjJndoTGs/dGxyLy8wZz44UVt+QT5XeSR0SUkpMjhsMit1OUE2VU4kejhvcz9sRU9iJiZtbU9ncDBLd1pZQFJEVlNFKVIifn1GWDJdTldCSjUxSHIibiQqVixxJURxOy4qYWJrL3k5ezpeWUNCUWhTWFo/Y2ZnQ2YobCNRdmhPa35wOyx9VSZrfTJrRTd+ciJaMyZkdGE0'@; put 'KSE+fn11TGZqYHBhd0RRR2hKOyhJZz9IVDN1Qnt9JihEKihzPFJtJDZnIncoXVguPlBzdFVUcE49XUxDfDcmIUJJP2lQWmZlQFAoREtWMHY2cjEhYXJTNyVEYEs/dWUyIztJMl5WdEUxKkVpZGxQSjZPPisjOClLYlY/eV1mWiFISzptTkVFN31XKEtQQj5QIywxO2FfPn1MWG1dPSxzTkhmbHs3'@; put 'ZFtAKGI2UmUrKWooNTNJLHNteXY2fnNdYXFNeTU5Okw0SzZRWChmWERSYGkkdm0zYSpNaHFbKklVZE9ya3F1TlMrfT9DJFs+UmBgdU41fj1Cdm5HeCoqO3Rna2tYSnsyOiVVT2AkVlddKzN3OTlSRVooKiE/LjM1cEtmcjVtKUBRVTsyK3BIfjZlenhMUG4rWkYwcDI8e28+ZnFMZCw5dXs+eT5s'@; put 'ZSpAUnFeTXw1YisqSkdyWDY7KmU6VTFfJnl2SCJKSiZOPGQjQCk/QE5EL34qfDVEIXpoS0wzejU/b2o3cC5+VzI+b20pTVM1IW1VPm41RXpabSQqX31QRD9RYDFKVmxoZ3FVSF1KTW9VQU15b2dbbnt5NWJsZERkdkM5RzxZVykrI2l4Y0ozRzdxI1VsRU1+UjlSVGF2fDl9alVxd0ApY0U/KFNn'@; put 'akxReUleL25NMCQsXXVCRCNmbjgrNHF8WDpKd080NUdXNmV2NzFYaDtXRT9fMlRLP2lUT09OKytgOU5PPyw2bTBVfl44Uj9IOHlxPVhYdFtjLno1MW9lIiY4entKVUVGdSNIQ1kraCxXSiNTbm8oM19XdixZQjZBeEIuNDAmOEEhdzhZUXolU0xKWXY0bUcpVkQ+aDJULlVgXV8+JGh2bTxzdHs4'@; put 'KzxfN0k+VUJ7MV5nYWVkIlokQmsxcnAwQztiRi9GTF8je0c3WWJHYXFYQltufTtSSGZxfW1TamJLPClBfXJEZWs+RXI4YD0rb0pzU04lX1N5JTQ8YkxSVV9GOXYhIVc8LzJtcX5iTGp8OjZXaEs+dlZhdCRyKkUuJCwhLj4uOE1nZmBsfUpKbSY4eEF1TjUoRSEvJDxHOTk1NWJOPHZHKVRZKD9I'@; put 'ak9EUU9+RmdxOTU3Ul92NTl7K1BmTkxMe181ZGg9eHliJWpCIkciUjZZMC84YiR2RSJYVEN2WEF0V3BnTzhIK096Yl5nJXA/JmdEKT9AWTZxPHxwS3BHRkF8TEhoZlB9IUtyOTFDJkN8NW1dSSE1SlI3JmdvcERiWjs2KShLPl9aaltKTTBPVXdAcVVxO1VhXXdbVz93WWApWjNEXWE3KHRFT2Bp'@; put 'ZjtUK0lQVkxFeUh9M0hpI0p7WDF+fDgvXXVEVGNnQjVDLlBFQ3VCYS5HeWUzS3R4bmxQPiUlSVdXTFJwczQoWmxGXSUzSC8qdmdFTV90RHFGNGBKKWNQck5eJTBteFZiYTVHTXtRfnRQbVIlRV48ZlI+dj8oJCtTM0tScSl6cVdhUiQ4Z0BteX1vREFHPnJuKEZqfVVbWGszeVhlVCxrWGUra3BP'@; put 'RldZOEw5dk0jPHZudnpuKzpJQFtaa0xqVW0kV04oWj8rSm5dZDk+TVkpZnUqaWFnJlJlNzhaaUFAYG1jSEFPPmozNnZnJUdSM2xsRFNHWGJqNVpzYW8zdjdUW2wqZ218SyQ6cns0OkZ7ayx9MXU9WUpkYCR1Skl1S0BnKU8sXm1wMH5pRiVMRXdzNXZpcExqe3A6blQiYF9LTjBFUWVDT2VtPl97'@; put 'PSpHSXpebns/cDlCZyRSOGJTWFUhIkFTXVNvanhFMSkuT0VdcVFvMHJhW3w/a2h7fWVTLj5DaCZobS8kN1hIaEBWfT8rP0p2P0dkNWUuI0ZscGhoe29HVjt3bUEhKlIpd1BDZzYmMTdgNUN0T3t9XSs4Vyg5aCxuWj9DUFBJbSQ8WzNMbkgyWmp7c3duPSVPYEg1RldmRDR+eGxueEB8Tnlhdmc4'@; put 'bkt3Ti9tQkVILnE4VzdiKGhWL2thRHQja3NlcmxdcTpwMGlqOFp0aEpjXVNJNU02JXtEXWtOOXJQOz5eX21XW1soMl9sQkkoTDRadHNjP3g0fEtgQSYsbmV3SSxeQjpYc3VATGkkYkpuO1RdSmJiTmIqZUJQRH17ZWgvb35BRXxoUC5bcU1wb3RgYm90aThVVlAoUS9AWilaIzFAcyZGX3xgMns8'@; put 'TlJzSU1DVSNKUjQxVXY3Oj8+ezg4NCEqW1ZFbS8pVipiWilCRVU3OXNOcyU2RC40RDA3RT0jIXs/OzBpWjBJZmpBQ0k0MGlqaHYxc0BmOCgubHspUC9mQV9OfkVoQGIrL1IqX3x9X2xIRGp+fnY/fC5+JVZJN0shUDkqd3xqSHROPTkqYUVWUDchSVpUdGlIPHQ6fClMMTFRYi9idnB8L056KyQ/'@; put 'VTBKUnN8c3dlPCFgQ1F9MyVXTC88TSxaV0FEU01qTGpqaFp8NlY6ZDQjVlBPMzJ8S0Bnd0c8UGU3c3VsNndMVU45Ync4YEtfS31YOGwqeGQkLj86Ti92e2FYW2lNN3BtZk0lRl1GVmZmJUxWLEhxfWpgQmhnd09iPCQ4bEg3SnMoMkZ8WzxxOE1IOD18Q2VlOmdDPFRBVzM8OkJuTWdIdTQ8PWdE'@; put 'cnwlYXkrd3pxazNYIVJIekdSMmJdX2x5PWMqSXZudGtMNnklVntKe2JqPlAxOkBUdzlZezRBc3cqWmdMTThZTTBUTV1kQ1Uub2l1NWJ4fXpTfl5aNGhabEhWYHc+LnA8MzdnRzZxVl5kWG5WZS8uNEAxbSFmMUp1eklMMlF3bnBtbGklVF1EJnNPdUdMJnEvTHJLfkBWOFlvajJJQVRkbmpMXXZR'@; put 'fmhbWVQjeX5YbyYyLiVAPl0xY1pZRixbcyNtW3omLHZ8e3gyJEowcDhxWWJhQEJgO0gwU2N0VnlWYDo0ZTBrRmA5cy5yUlI4fnJSUSpHSnpnSjFNdmd4KU1oZHxMWDt5eVskbGMlZztTKlRmJkMsOVdjVW98PmFjWzZ1TGQiNCVDJmRhfS5yOjU5dip9WHtXUT1qQ3pRZCliOX5mUjpeOzxUNz1r'@; put 'XTZUd3l7NlYzPi9FUU1iWlRqIilPKzBkW3JVJnV0XyQ+X0ZWUFReRiNYckplYWwjKGZMRiFeQj1ATG4oWDxmPkx0WnNiOWlQMGptUiVSNndgc3FKbHY3OSQkNmlIfltmM2dpSyNUQndyWnhXYTA8Y0EydyUxUihMeFNbfEZ8IUtpdEA1fmRWRShhUXdedmA7KVY1eVFIazUlWGZmIjpGWjk4SVhk'@; put 'WDB4W0VlYTEjIyhpUyo2elozcGg1c01yNjtfXjVdfER3eFglbkA/RVlkPXRjbT9NT2ZgVW9iUjw9ZyhVSEBMajgqTF4jKlh6RV1+KmVSKX47ejZtWzxtYE0/PXE5SkRdM0J1ezlheV9WZnB4Q31kR0wuRzx1bmZwTlNSSHFHUUo9cF56bWl1Z0MoV3BLYCEmL19lSk5vZ0FjIzhsTCYmPmVIWS41'@; put 'NEszLFBfYn59ZT9tO3pTIXdaIX4uYThmTFVnPEclMnhvZ0M7OWpwUDVoKGZzW19xSyxxJTc2ODdfNEZaY2djUnA5e2UqUlI5bz15fWx4bCVYMTpeIW0ocyt4eSNmfXlxfS58YXd+YkczSEdmaDw2OkAhVU1zLFdDX31XKHN+JjhFc3wxYUl3TVMrcXlNSXF9diJvJjxAcXQuNWdxJH5ILjxgZTEj'@; put 'XnVpUUJeP05pNT5JWl9wU0M1TSlGRTRTU0c2Wn5ZNWF9YV52bSw+ZHdLNXRwbjouUGF5bShWNyRLQ2d5SCl0XXc3YD17eC4rWkpYRkIlOVt4flRDKzkvSDBVUiR3TWRtRjI0TncjSiUuV3hVZUhjWSpENn4yPV0qbUE8cXNTTXFEPmE6cyF1W2FHIj1CMENnfVRlWnA4Wl9KPmZVd34jJFcve1ps'@; put 'R1IhcHgpMTQ2JD1FO2x4eHF9YFowd3NwNzdpMDd1PTd4Mi53STN4eiNDVW1vK2U0byJpRmpKTj9VQDltYUV6SW99W2FRaltVQkJBViN8O0IsbXkvZ0BAO1RIOkYrZXFmK3N+Jj53V288UF5qTl8pKClEXTFyKjBHKFIsJCk1OWhna0I0TCNaS10xRWE7I2E3RjluMXR+TFU1YjlzMkkySUReZkY/'@; put 'MDlDM19yN05+NzdtXk4/LnVEJmo3I2lrMCFGdElyRHovano9TissQVNUNil9TilRamZne154X008K3lxSGBVSmNBISlKRjg4ekhibVJxWGBaRnI6fTJraTl9VzxRSzB6Q3F7KlVLODF2bzxYZUw7VH5mMiskUipZOXRIQHMrYUQxbn1ITW5beUcxc2h8MmNFJnFAQStyK154OjsiWVIvQiVOe3o1'@; put 'R0RATyp5QklrNVt9VypPKjZ9ZGhCSz4jamhpUWlZQU5eRGpULEFyT3Z6Wl1me2lKWjRdKGx2dSR9d1klYFdTJiwjUVBgVWoyNFdFZmg1Tk1sbiZuNXl4eS54MTEwQC91e3ciOUxUN2F0UXdqPU1uQmVabTdbdFJrRm8qSElCViN4OU9EPHRYWEpPWD1nLmFmQDtFb006QVpedUI5XmRFUzVKT2pv'@; put 'ZSJudFFIU216dnd4dThQaFt4aDJMTklMbGlJRUYrR0B6SlJ5eyZvK3VBL14vVWkoOSspVWoqMjglfH46O31TdG9vWD05TCtYLzdebWApOyRMclo+bUtiJWphUXFxcU1WRTEjUlI1dFN6Oiw4V1tESjFBMSs6R2ZadH5scyJVP3h9TVltJT5jaEE5RHtLLkZ3WS93WFg6PnUhc3hrNm1BMCVHT0Ax'@; put 'YXZiRCtBYnJ0ZXcxcComR3pHMSQ1RnYkQjx8PVZiSV0xaDsoMzN0cVppO2N4PTRwelcjRXhddmUxeTQjIiZQUjspM192YF10fXZEOX1nRmVTejomSUViWFp+X1F9T3RHezNHRWhgRWoiUmBBZFIoVlYlNjxodTVDd1t3UHZlSlFkM3NGY0tbIXZsaERuRj1mJjFjNWd9UkdJMlNNdygpPFQlZ2d+'@; put 'NS5id2pPbm1LflteenJSV1I5VSlFbUo4K3UoKTk8PEleR3RlRSp9QyJOMiYhLCIoend8Vy5UaUcvd2RgUnxCNV44cikwSDltbT1qe0JJQldHJFpPSH5wOVc8QD5UPC9kOypXOCZONCZSKU4pTzd0ZXQwdU9DTUdLV2dzUFtbU2pnaiNuNSE+UlNRXUooJkVBKlhDR09GamtwSE4uTXUsRHhbYExm'@; put 'MT4xSl8sWE5jS0w2JGl5RW5MS1dqISgkMXpEP11XbGhNVUozU0J2ak5+X1MobXpSbiRgV15DKkw2ZEhKZFVRZiFdPFkvbiRrb0VCPV9vbUxhfmJ+eEF9fmhJeHwlakZ8d2wvJFVjKEhjJEBaQUcxZnNFLGE/Q3AkPnpvSjtiX307U0N7KnBlOXpoK09faEVGWHUkZHZDdD1XVkdnPSFkQ0tyZiR4'@; put 'NCMiYzJCUjIvSEhOSzxtODsoP10zO0VVYypedXRfd3tIL3pFWmFbMmc6dT9tKSVWfUE/JmtqYElEMmV7PTI5Rl43QGEpfk0jdW5SITdTaTxmajhVWHthRlIqen05Oyghe3N1WU5oLyxKWmFrYz9qLEpyWF1GYioxXmJDb3pXJUVJMSVeMmNsTz8zXSNIJVJTdHVwNWI3YExVfV1jJiVIbWhsJF1T'@; put 'ZmBXWHg8SncxMkdkOTg3THB2dEBHSD9RSVdvOEw8YmA0Rm5HfldrSUJ8R257K2RYNDlbSVBGUCFtdHF1akwvNlc7VjZEbk1jLDF7aSt7UU4laVsjO1A9ZH0/UFdxQlBvWShjOWoqMU13TkJJI3FzcV5FfiRfPGpXKm5OfHpRZS4saWcjSHdtUnIkZnNXJTFweStXLDMsY10kKVgsJGRIUmhfajVk'@; put 'fj4jeERofSUuPW13RjZ6MihkMix4OEhxRUNOJWsuRXhJalUle2UwIUNERW0oVkZteG9DSDJmN3R5KkJKflk5NUw2bDY2SDUvZmNEe1V9TWM4ZnFkNEBXa1pIbD85PyFdNCN9SUVBdzhubTdPX3xtW3o+Y1FzckMwIztkRHUuNyQ6amJzSGA0Wz8uXUVnaSk5eGdgbiw3VkxafTRrWnJqM1VsVnNf'@; put 'QVZ+ZVIhK1A5UVhrKXFwRmtiKSgzPCFvbTA7JjJDSWVSWmdpMn1QekU+fXNVd2NlJlRWSX1XQnlfR3pufF0kOUBwPytQMEN6Nl5eezBWbS5eLlopelttKVkvKGYmTiZAYU9Sb19DTDUxQy9vN3tjUiR5YS81PiVRaTFBUUpUc1J0JkNgeCs+X3FvalRMOVB9azRxTUZjX0BxcG9JTDUue3t2eVF9'@; put 'JUY7WSVJZ3ZXMTxEYG4xSl5UZixvakFqQzcxOk9JfHZ2eExMaj5DLnkiQkROKDlzdmApXVVAV1U8ZnI/bDxbMUg2cjwjalByVERYYDZtbFNxMktuXTJ3dDFXKVpTZnNJNWhrakB8SmMkPU5PZ1J0Wm83bklXbilfITpAe2V4ISQ1MlszJHd5WGFWKkkrPyhZTSpsTmdtNGFacDlOTDBVN0ltRWg9'@; put 'MSRMW2R+YlUufVNwWHx4aWNhayZwW0lQNmwuO114Qmd+Ll1rP0VfK2syM1dgZHg9IjBjOE0ieFYvQktPO3d4cC85Mm1YI1FFK3RKOlIpMzRRKH1PWk5eP0hfVHBkTCxjTlJAQEwmOkdCIm5ML3JQI05KZTZTR2JxUmI5d2klP2BHJkJiSlVucipMYE57NiJfQlhULDhuVX4sbCNVSk8hLkBTa203'@; put 'KyR9ZV40ZGxDZE1VS09LTXkkNDZRX2xUKX1wVX1lK1BZV3dZXko5RDZTTXBjTV94RXImUkxhX0M/PmYkb2Y6Q3A7aXRvSGYuKktdSko8UjlucV1yR0ZXaEM1JVI4ZUlaRilCM2BIeFJaWFE0KTMicWU/I1VvLkpdTF0wSFFxQ0krfUF2dVRMS1U3LGQ+QUJEfXIxXWprRiZbOmxMMCVNOHtEfn44'@; put 'MHM5SnheNnhCQitddHtLRzs0dUNCQiE4PEJLeXg5c2N8alhGJS46TkU7RnBXcjViUCMuZyo2RkxzcFR4ajI9PWN4KHJ8XTNlN3M2N14yYkQkZGhbb044MWZHbHhBbkpUfSN5biVNUmZRV3cqUzZaXjcwPk1aQz95U0plLjBtSSZydGZ8dTlGc3gzc0k7eixlKU17WCUvNnYkX31CIVBzejB9QC9Y'@; put 'PyY0PSh5d2gpPjVdJn5ub31KdDVsZH4xc3pnWkdsZVFDQVVnSSFkS1tZQERBdXtrPEBtWj1fMnkuY2JGRkw0Q3xCQn1sZyo6WU1+YmksS3ZKNjVUaG1NQzFqZT9bY1txfVE6PjtpUCxgPywyQyZwNGAmY0xwLEBVRmc3MWlRb1MpYHxCfkA/JEcsRnBPQ1k1akxgWE9LQk1hfTxRKGtIbm03SUtV'@; put 'dGpVVlZfa1dTbTVCdjtUSE54WiwlQF5LWGI4Jj1PYF5HPEM4aEwiSmNaKWlDQ2pjQmklcWxnZHJlQV8sJGhndllMOSZrS0pXL2F8aFhZIyska2NaKiopMTdnaip7byx8JVZdInhwa1VmN3MpWDBCJCJAb0xCR2EhUiJWaVtEfmchdUNveCp0Vk1WeD8zWnZ6VncvaFhnVGcydmZFQyM/K3lvZUMj'@; put 'aHNCPEVeN3xOSSRqXnJ4JEpdUH10bVY6MFYzKWhlNjpIYj9BVXt+L2hwXVJYfUtGTERRMCxxdnV2aD1YfHZ9Ti8yLGFvPUsoU2hsTDVEeWR5ZlEyfSpzT0d0T0QoSk5qPUVJTF1ZSU1NfV0/Nml4bSEheyRtWlU2ZUUuYCp2MV03dXh3Y2Zxa0JVfG9QOFN1NlReLG5UeSprQS9FSnl5O08oZ0ND'@; put 'KDNnbm5iImhHMFtjfTgwKWdFWD9BZ3l0LnFpaUMuP1BkZF07KyxXT3k1I2s9cyt0QC5geiwqJXQ3TVQyXW9pbzd1cis+bixGb3RhejVjMih4NHZteShLWmlwMU5aKEMyIlk3bF98ISpQQnh0PHpZZCFSMyxedng+fUwpdWp4JXJweC5yZE5YbVRoSHdMWXA/WClXM0dySU8jZVA6WmpNMkg3XUd9'@; put 'MUAvK2BQO3FQSXZiNV4xMkciUWxII3d6V20yK1U6RF4qSFA0UngpRWxxcHt7XSYpXXtjbGtFJDAwdEYlW2JlW1FNYEEuYEp7cF53PFgzfFk5fkpfOSpJd3JqMmQ/KFcsN0hRT0pCaGt9eT9YO0ckODxnbS85VV1MS1g/YWxsMi98Lntze0haTkhhPkZrJkZTOkVwZUZOWn17MXFiZjlQWUNuZXc/'@; put 'SEY9JkVARmphaix+cjA9NTI1M1JIMnxUK0tlfSI9ezdhe1hDLDxXcT0wbWl1dWw3M0QvX0JTTVp2L0hLK3xmc3x5fDZedn0keVZMWFQsQHRCYUZVK3t9dHV0LE1tKyVgU2ZWXmswPiRuKEdRT3JNIjd5O2FPNyVJTmxqRnYlXjhueUIqSnZsUCY2P0xkcixPSlJxJX4kY1lkc1lmL3w9U3dXM2hZ'@; put 'a2U6QGFQQmVPQTAwd15ZL0Fhd15dLDpXdk5GQ0ZXNnYyKE8/UDtAU1h9WiNZO2lTZUBQPlQ4U0M9O35iZVFhUW9LZltBcS81UzdyS2IpQUQrbEptWXdeK0xxIVdPI094TSZGcDE2V2laOkxIfVBVPzIoMnpmbndLfFZ8WF1oY2QuZ3BrI25uVzJQWDVfUl1XLzBrRzVFdGBbWnlZQU13Ok0kUUAh'@; put 'U1ltKS8ja2c5ZngkbnRIfD49Wns4fnZ8TllMb0IkdHc7d0syR3JeRmIyaF1JfVhLZ3dnaWZ4OWIvTTsweVl5Sjo1bF1rbmc+dVErdVVfRXo3R0t3fDhyLiQ8UFlMJTAwLk1SdCFKMC8+Lm9fLHw+c0pDbWg9UD9QR3ZLb0dKOl9aYTJCVERAPE9iYE9iXiQ4TXdeO2xGKFFtcEB3dyslQTU2VyNI'@; put 'I0plezlgLFQ3TGsxQWNrOys2eGRIZ10/bjpwK2NwJHY/TERiN15RYXgiVGA+Tl8kMGV0c2diJTNyITxAYj1kflpuWURGI1BMNz5aWHBqNzIyVGNVOSF8NGU+VWNFYzJ+Wj43Qk92RTgoc18xJH02M3xHSy92L2t9PkVwS0pAbjo4IigyXjJlbT13SUp5aDtUbmtiJTtHTTNCOnUiPFNALCpPYz5K'@; put 'OzVuI3JiQ1FCS31XXWQ1UURFKT9xTHhzMSQ1JG9aYkh+KXk4WTdmOl5FSFM1QXkofGZUUTY2Zk5DUHcjdShVW0p0P2d3dTNDM0NaJn5zMSU4LCRYKU5SYn5DKl9yZGV4SXFsRy8wdWcyWTVxPEheUmpgbXUvKkt+eGc4RVFfYVgpbHBsQGE9S0UpYENNP2J1KiVjYSNyKGB9WGoyc14ubSMybjN4'@; put 'Py4rejw5TDcpbzZKR04qX2lRSHQhVkZUNWxAWVE3VXFHN0ZHJFN2Skg3QixhUlg5a0VVNHwhaGV3RVJdN1NAdllrfUZHRXJIZS8xYXQ5emg1KD9XdGg3JTJKQHpZaWE1XXFvRSx4VTgpc3xMSlFAUj9UXTR5PGV6NWhMNkdTNXMlNitCWUpgZXFAT1Y2QG9kPFpUTjB7RUs3IkhycldEODsyUkBJ'@; put 'fUMzTEtGaTxHUUFGXyw2bWJLWEJmVW5EMy9NPjc9Ty8kTnR0c1JtYTk+Rk09NDcoOGguWH1zYjwob1klLGg7NyF+Zi4pJGRfYVptMElQMU16YkFjZVkwZDB0XWwrJjhgXip5dWNSLERERTNMJUN2X3xHUFFZZHUpcUMuJWFlcGk1QHwuckA0WUN0InI2Qzc/PnghSX0laW9SJlFHYXJwU2xxK3U7'@; put 'KCVka3VuZEZZPnU9LCJTbHByeiJmQUdQe006Z2M4O10kcURoRUNfdzZqaXojbG8oeHJDQU1gSGI3Jkw6I3czMk9GLmFQXWJLL3g3Nyo9X0tGRjlsWTk/MGdwJnA/Tn5BJnolVXI+XlcpdFNqND0xPCF5UEVoPEhNYiRGT1ZCKWUuTVVBWjokIyljT2BeU2BjaTx0VW44cGl4MUBVWCVWejMsXTJR'@; put 'Q3VqNDM1ekxvfiE/JS5ubiw0O0FnNDZXQkd+KzJeWy5iTDBGJTZ2c0FrXyx4I3Nfdm9GSixJQ108dSEzMGdJY3wpZTlCMVhCY0J4cl1rd1lSdTR4XVd2WiZldXIrW3lUKCY4RGJReltvTEouOW8sUD9KZGY9Y2ZNMHA4IVAlQTpscX5FX357ci9+ZiM6N0tQMy5YZm1PLj5jd3hOJDFCKzphMVFh'@; put 'IW0uMmNvUChKMSVTe1o1Km5KZWx2RDV+TVVaQFJBWmNCOXMofVg+MC58Slk3X2IofWlIOj5XOmg3JGVFKXZhU3M1Yjt8aW83elNwPz9NIypkQjdlSHVhQSshOl9oa0N5JDdWeTJMNHthZTFQenk+LyNwaj88S1Q/ZnFbVnxIQ1tfcllAW3QrPjs2cTlIYDxIUls4JXJGTih6M30jdkQmX0AkcU8o'@; put 'RlUwPDh2L14/Z2FHWi9zTGwuRVhEYmBSKE0yJUh6bnBKPipWVTReUkFtbCM6ZSpadWg+M3B1M0I5Rz4zYU1JIVR9VGE6KnleTVZBTWFxZV49ZHh0XVdZPzQka3AuIiVvUz97fUVSQSZsTElCTlFgYENFLGsmKlJNWkhed3NiJE1TW2MrXmFqeCVOfWFsQz41fG45MUFKRFIuazcrVE4hfD00YHh1'@; put 'X2c7LCJVSFd6UCxtQ31DU3BPN3g/IndKWU9kc2Z7KEB+PkVxIipnZCgheXpWOkFobSRfbFNZUGlyYyRuSyZ9ZGEsPGNIXmxIOVhTZEhnWWt4LG0vdGpnfHd9dyxMbjFTUU4qTTJnV2QmIX00Qzo6TUFKI115NzNPJVlddkg3MzcvZE9JWk0/bF9xfko7RnptfTpJN0A+bUxXTlc7ZTNWQH5eY2JO'@; put 'blY9cEMoK1M1QmttX05DWF9TQS5zPSUyUkV3QylveWZsdyM6N2NEfiUwfTNtLjtia18zcW88ZkYjLjVlN2VGOFVHeUNDZChjVUlsLztAaTRgXmRsKWI3O3Q2XV40Ti9oQm50WyVANnp3PyJxOF9CMFpmXW1YTF5Qa2w+T0BhTERhOHw0QDxpfiQ0Omo8OUcjWmE2Q0tgfTc+JmNWSF0uYzJIWTth'@; put 'YjNLck1yO3J0d3dyWUYxVyN+MHBCdk06RER0RnhpME42IURKVS81Q0hEfEY8eX0jWmlgWUROcyVzNVlpLEh+c3xwU28wVD8mRTFYXztWIWUuakpRP3UhTFVDPkYqKT1nc308bEViZjV+cDlLV0E3X0xkOW5pemwzN18wPj5YfXVlS3gqJV9MIUQ7QzhiRCV5PS5yUX0+Qm4jYnlwP2xtJFY9KT1J'@; put 'OGtbTFJkPVN8JUQzfDI+dHM0VGQxR05mamElbWZNJnVFTytIUWg6VDkyZUNINSpFTjB+TmZfJX5INTFUaHUodCRwJWRWRCZlWUxAdUZ8WmQ5eyUzNjJJbk1+aT1jal16T0lWN28mQ2tyZnUoOUhbRDMkI0p+Q19Ge0pxXzlNdiombWVna2FDdWNxd2Ixcl4mbXpzOVhSZ0V1JSFCTzI7c0x8fGlI'@; put 'V3RhRmNISFhLN014PmZnTTpAbkVwTGMrN107bXRhbyR0XldeUkAqaFBvVzBQdTguSVp1Iiwmbl1GWXJaZnRAQyhbcXQ/LyRkUG4uXTZeLktgdjdrYmA7WjgxX102Zm4qeDAmbHYvaHROWX5NI1NSKlp7PTYyQDJvP3J8V29jM3VNVm0hajFDVVsqZ0t6fmIrOz45M0FOMn4mMCR2fnhWVTw5JGhE'@; put 'UldifiE4Wk5qaXw5ZX5edTcxUikoM1kqW3ZmcXo/KzdAI1l3Iz03blAmd1psJkdVcV1ZTCZfc31JPFRzaE13QH1YfFpCRyw0WTBEMk5Yc0I5Nn1yZDcsJmdXOnZtZVlFSUs3dVY6YkgsQ1gmL01qdEBpbTd1XS9YJV4hOy8kXl1ucDcwOmRMTGt4cCo5P04oLztiITR4WUJURTJ3YWZKMX4vSDVL'@; put 'JilGY1IvZU55Zm46OWFAQzkkJXZdSkMoZksrXSYoIjprVWVQRVB3RUNmfm5Bby43P2Q8bXpEV1Zhe297Tnk8IUZRZEopOFJ6aiVESDQzenRIQ3tpak49XztuYlJwXWVnKjF4O2FqQzNyO2J7KjI5dSlNbXk4bWlwWk1gbCVnJilUcFRoLkYiTEgzdEIvLD1KNU5ecWU2SnlwJHomZU86MnhgW1Mr'@; put 'Uig9OltNeiIjblg3fWtMeyEsJEtyRHJIJC45c18zLlh2Jk1yMGYvc083LDBgJTw8MzVrYT01fDE4SFFEQ0t3Y0okQE9NXllyMSlAYzZQfF0/d1F1IjtzKD5GJVBiQyl7V31JTSNyYW86IkEmNUdXW3gxNjY4WDl7JDZ8S2JaZHZ8an02Wmx6KWFpO21RP0xGfmJNa295PVBtMmk3ZGh+JnNRdjY3'@; put 'JSJGTkVqMWIxL01UfFs4W2g9P090e1BJKH54Ynw+QDA0aVpNMW8lZ2hpdk5OdWExYmc0aHxtZndrdUIyZ3U1MTN0fkhMSD5fTGF3cn5na3BMY2llWSFVeUVmcSg0W2orW1kwPkI5UXFHd1s0VD1kOU8+NDs1LFleNjEzYV1IJG56YVJ5ay5IITFCXXAwSCpdJEVrMHVZVUtbTzZyZSxSO21yT1NS'@; put 'ejh6PFZLRVt5fUIpciphbmAmYmM/PUR0L2IvbHgvRmA9SDddMnVtWy8rMnBDXU9JO2Q2IXFpXjpBSktFTGp3czM6ZV1UWURsVHpzNUhDeVpHOSU0ZS8hOXZWLl80Z349dlU5OFBaN3dEYkhqNmkhS3M1UVdPUHRQUzk7Rj9nPGh5cSN8JEd3P1lHRFpSM0RTaCJYfmA3M2xKQnFDKCRzXUZMWztp'@; put 'UVJBaSExJSpjVEhtenBmbjgrJU1CY18sUkBKbm5YdDchRl5OPypvdTVrJjg9OWslOCMye1hRdTojWypkPCFSIW9IWHljWlAhNUxDSGZ1OXIqd0Y5ciZ9aFo1SSVCOUo7I3J2YlgjNnwjLDJtfERraSFQdVZ3MmdQPDkkbnhLM2hzO1B9VTw6fiozaCREe2VSLz1GY0koMEQkdjJ0TTxsMmZ2N1Z3'@; put 'MzB+cVcrQEoiU1VAN2AlfG5SU2E1WjR8KC94KlpidGReQFA7WipMTCVzbjpVI3xrbl1NUGtVVCxUUjExRz1JQU1mcyw+Yz1peCtFIkAlYTpiIXI2JGk5a0dtYl1VSz9rbVpWXUpaQm5oPmo+RW54dGhxQ11xJS4+PSRyMDZYWGE5YVE1eSZ1dmdMR0Y8dXZaZyFGd2hbdmF1PGZOZ05TfndxfChI'@; put 'dyFgLyNyaE4sN0U/P1dqMSo5KH5YSCNNXnxlc3koKitRVnhVX1lQMkxbNiwwe3pOWX46RWouVSNaKVZeUEBTKl1LLmJHImozdTx9UWUhJXB6MXksImptYipFLmVee0ViViY/OiVTfXd3fEJxcGk6XWh0Wjppe2N+eytKVzw/RSxCaD5ILiQ1ZU8mcXFuNFB7KX1iYDpGMylFZHheTTNOOkxYVmt6'@; put 'amldbmNrI1dgcGREdENteGoyIT58VGZGNGR5KixAUHRyXlRDbWhjVityXjkuMFY9Pm4qJWZMa2clP3twO01AJFpwVzkxYmI/OlFpUjRBW1RpVVp6eUplNU1FRVtTNHU3JExCY1VDKldFbCYvUXZfRW47djpbR0ImN3NUMDtacWJaeUU2bSIqI1IqZFBIUmJ9UVNbb3UjZyt9UFhXIV4qVDAlIjA3'@; put 'ZF5taTAkKGFuJjVDKHxtSmFPMGZbQmsyKV9wc3VBZ250RTZyTHw0flFISVluLylgRV9FOU94OXpHSTpdZT9JY2RMNDIrWWUoV0tCOyNyRVFiczdXd1tPV0RdKnhYKWkuRnR1Rkt2PyNCX2pwX1VNeFkuYVt1bHEsfV5UfC80RWkrJTJyVjFrKzJOOSh6RXFsOEVDMDxHb21qPClZR1dWYVs3d1d3'@; put 'WGVmU3BuOiMwPyxGdFhFWzRvX2ErMWI0Zjt5KkQqfiZ7fnxOYC9jTV5yQVAoWVdbImE4OlEuJmddWE5dK1o7V209bjxnM2RPOF8zamlZfWkpYDNPd0JBezBobChyS2A9fmooMGx3Lk06ZlE4djpqenBUWFE2aXowImF6KzMwRFN8OysoVC5tI0o9VXMifWxSZy9AMiwyW1hCLl0rMnkiQCtFOX5u'@; put 'fTtvdSIpVmBoOFFyPVdqI2BvfWt1NWQoZE1XV3JLOWJ+MXhWWFc6Vz9AeStWIntmJWYkc08yTUojeGlqQFhreW5USERAc1dfJSt2JWhqYVlIP3JhVzB9TDJFVXs+N1FEKHE/WlVjKSt5PSVnbnhRRTlVUmg+cVQyUlN+dExSRlYqdUp8QnN6O0E3dlUhREYscjtSaiNHWzZVWWhtW2lyY3J1bEA5'@; put 'T0Q9ImF7Xk9qanl5fjRTViZ9Plg2OzB8Tjd3JDUhaFFqZ0ZVZ3h6KGpyJDQ2YDtBdFMkUShgYENBSWsxXlc/MlBWdGg8K0d2cVR0dltON1I6Xm09MTZAZCFwOnZgVEA7eEBrNUBxLHNAO3RbPkNRQWw+bkBUPHUlcSg9QWxsLyhQd0E9d2xue0hLR3Z6NjEoK1l1IyVSdnp8XTU2djxjLlJ8c0tZ'@; put 'Tm1DNzsqRSJIalY0VD0lXXhZY1FiOSUvfFh4YX01VWxgJjM8TjZLdTk+NnhdMn1ea3BRZVhJPDUxZ2k1K1YxX1UhWjlIPWs8U2Q0ME46flFbXWMkSVR+Imx7LHZbO1JNWT8hZnNMQ0p+WSNfTSU1UCVCJDsuO1hmMWs0e1FXV0k6RnNZbmcoKEVdPlY3VHJGQ0prclYlOV5pcV9bcWpIZDQmYVhQ'@; put 'Kkp+aUFNfipLTG4yL2pBZlMrX08rNSY1SnRPfXRlO35wKmg3T1lmQ0xedFd7LDJ9TD4iLk08I35QPzoxOk8qSGdxKXJDPj9wXyQ/dEM3M0FnZkg6aHUoSyoyWkViJVlfcEZ4PXNBW1N5MURGNmMqPnBlOiw5SS9HcDFVRG0+JSphQnhVQEZTIitkQWd3UjwpNy8zRUBlZC9HUzhvfjhYWDhCcih6'@; put 'KmlBKmNmWUlDW1FbOHFWNDAhZGFXWVQrZjJQZyk4bXdpRTxqYDE5LiFrWEA5a1kkflksVkN7T3s1TD96QT5iXUxKYmcqeTBIcjIoam9oX0tscnNMXnkySF50ZlV8S3R6RDVMXVk3JDAkcX1QWVhIKT5FPmk6a0YrJExnRUQkcyooR0YrT118NTtifTk3NHtybXFZP0ZpKjB4WDI+dihWVCx3anNP'@; put 'OCYuPDA8M0xLOn1jM1o8My9fUCtsamZNb2YpSX1DLitIbzxtby4/KyFtWlVsTE9mLFU2aV9dPWBsR3ksZjNgMVA2MG0oSE9lNW5vVHg1OWtaWDQ5XzNjck9nYTM2VnorTlo1SjcyezdzUm82OzNSbFZGeitYTXZrb2FYSjx6KGBuMTxrPGV1U09FXldCdnRKaDY9YHR8TnsvJUhldksuWEZUL09y'@; put 'LiZTJFEoSDBIbmI6YUVUe35aNDtGLlR6bHExSFNybVA6SU9dUz12Y0JjaWRbXzV0UkZXOmdzVDwoSEYiPmRicUdEVDYhfntEdTw9S0gsTTxvcUBpK0dPRFRNISZ8QHslaFE/eXgheXljVHRhVDdBYnd4UEIlWndmd0pVZzRzP3RfUSg+aD9rIXYpMUAmMXQ2WjlCVERDNV1PIkxXUl00MnpMRV5R'@; put 'W19DazJ+fXluLC5Qd3Z0SlIvVyoheisyT20oLiZIe054biRUPHQ4WmRqTmxub2N2O284LFQ+RmhMbjMqQj1oNTIsPyIuTlFIVjs2bG1IJm9OYGRjP3VWW1dVVXRNNDZ7eEIodmRTZ2h1Ly5QYSU2Q0BVQHpuTVBiR1I1XzxfXltYcV1GXnRAfUhSJlshSjM/NlA/U2hMbXdFTkg9KEZkSmopQSZ8'@; put 'bzJpO2w/OSxsJDBHOjcsM15nXWc+InIqLnkwOCMrWDFLPVFvaF1zR3lJdjlWVXRCTlB0cVU/UTRXVW5MeW4rPXRBTS49bCIhUShqXz4wNi4+ckdEdCYhe3d2IVIxSUNbSXRJJXUsancuQUxHKjtRTzI+UDhicG5weTdZbFNrUnJ1RXJNZyQmVXpQLlVfaFM2UzcoYUt2QytwRjBKSmh7VVJNUF1g'@; put 'fnRmej9weXVmSE1ZXSUpS1JCQF5SK0c0RC4uNU1JOV0wVzh3NkEyTixtYGhocGt4PX4jME8xaiJyPFUlcFFXVThqXXohY1hUajlAOjNydTJDQ1Y3Ok1+XTxkVX1nczpEM3dVamFyKntvYTVvQihjL0ZUX0VMTG5JZFcqe2BsWUBxRzNXWUgvX2psREQ2eEFTfV5sI0l7fCRrT3xOaHtASlA/KF4h'@; put 'UnxJTz0vVn1EODE7KDZebVUvNWx9JiEhPT92V3xCZFhRe282O1phIiIhLkZVQmhYd2V7MGBQa2lSQyYhIzhGJUdsYWtjIkZBPz8qKk1jZl1AbEgvI0ooKDQ6JHdFUWtyKUlDQTdAflsoM0VHcztEKG5nQEIxRWB1c2pxN3VxNUckTz9PcigoWnhOcVo/bG0xV05QQU0mN0RgQ2tRUG42eWRRa11r'@; put 'JD9YUXwmcU83O0ZBW1Q+eVVqQ3xVfjtnXk9jJnRhInF7bzBiV2d8dFhiXTZqYkRMd1luXi5daHUuY25SRFs8SXtuQnliPXtVVHlsdmt1UzgiP2A4cmBKU00jREZ8KlZuL0xCV3UmW1phMEVZMlRYQzs7c0N1JSNlZmNxKTRlOGV9SklnfCVoXmgjbl4mWHNsIWZYWFF+OXZUcU1KPD9SPik9eDV+'@; put 'RCg9bT5qJD1fJEV+WkkrV29OPEh4P2AoPWAoOWZpTW0/dV0kVCkpNighS2pDZmhlNDchVH5jOSkxRSFMRWsxLHEjUzxRRjFZaldOMnJsYENOWV4keXxXPEZ9cztsTyV+ejB2JHR9TnNhZiw/dkopKSUoal5aR3xAQm56U05bYiIrYj9qNnlAdWNSaTNHYnQmMXYsc2IvfUZ4a19pVGZeL1ZjNFM8'@; put 'MGJPbHI9TENGcmZKcDxHSFksTkR1WSMhNj44LENtZilCZ3FBOXNmO1ZCd1oxRGhCdihbdXdCT1tENCpAWFkqfkYhbyM6R2M5ezcwaGs+VVhuc31RXV1sYWMsWVghXj1ibiRDU3BWQDZySVowSExLNmtgZUB6LyJpUiF7Lnd3PzVPRElZIT1xYUZwN2d5ZWt9WSZYfCksKGRLYStnN0U7ZE46d3Ms'@; put 'a0IzM3N4RC9DSGhlVDQoOWZkUXlrZUpCP0p3MXp+TCFWMStEJnRYRmglbTIhNGxiT0wmaTU8fjVxPUxeekh6UWIuNUFUVTxBRCg3JTYzSzhgLyZMKH0/LmEjSXRzcTI6NUA+MktxQV5eUz8mKntvLElaeTY/KW9LRlFUZjU+Pm59XzE+cC5SPlkwUTV7dnk7XVlHYHlbISU3cEEwMSFYdXhmdVRs'@; put 'czExSChUSDRoXyhiYFM/LE9xXnpGSzlXci9sSDx8SH5sRTJaZ340aXVNcEgmP10rY2lnTjomJmk/YEwpPHNKODZqMCUoPX4+L2leWXp6ZkNAdVRRPiRwNyhaZlchV0dSdkVHLkUmbF07XzgmKDo4Vns7N2A2fD1pQ09nMnBTb0BRdDNXNGpmN1d6fSZgRj9+VSgzMm0zQEZrKytofkMjKDwzTilq'@; put 'aHg8VmV0eU1SNWFoRU8zL25NPC5yX0d9MmdAK0FBUGt5dFsiZiQpTVAyJiopPSExRDM8fjteJmpZKUYpLEMiJUdYS29aVmcoSjpyQlVBQ2I4fXhiJGRWcWBRb30hPTdJWDNSPEA4WTtrMlVZeFVMZ3JTI1h+VyxdakJENCtxRzpRTTJqbmFIT3lqU1dtYC92fUxfLls4PFIlc15mZ0dOZG9vTiFh'@; put 'W3VWYWYvXTBOc3tkZygsQ1kvaSNgeDxDZH49dWxdPTNIXTJnb3ZnLnk9Tk1NTlEifXdZUCQpbkt3cF9pOVY/ZWIpZyV9MzAjU1dvTDB3ImFoP3tlI1NBa0p2R1pvc01gMD9XbSZ3Y0NnV1pROFpgPXBvbXFEQj04dS5tRyFKcktIWEo7SD42Uml7R10sLDdkWldrYHg8SmZfdV80ImZhKCtYP0Ml'@; put 'O2ludSR2bnUuKV9OO2N0e1BqcmprKktEOD43S3ZyNltMcVNDclt5U1dUKmdJU04mKXZZYFtuXjIrTU5dczB3IVIuLi59OFQ7NWQ1JFJjMiwwcGd7NSRvcSo6JmU4NWFlcF5YKUFmQyk2JWxpWE80fCJaRjpQSyN3KWcrVElFVkJNZno7WF1ZZHlSfjBqOXY3JiEzJFhWMk4oai4jTzZvJmwuSWFe'@; put 'UDE7bVdpP1c+aG59MGs/Jj5VKUtDWWA7V2BQI1pva2RySnRJeVkwJisqQ3lVfTxpUG9odC5URS9zbD96KlgkYWooSkgkTFlLRyh0Jm96XlJpNXk2PT5ZKiQla25LJk4wezZLWmRaJTRmfSYze0IhO1g+bHNBcExZP1tLVV5NUlY8N2w9fHc+WTcxc0FROXdqSU5ofihmaFBCVi5TQWRpfD4yZjNe'@; put 'Om5fUG1kcTlIdF1uTnJTbmZaOywxTDx7MHUmVH49dCw+VjksPCZaWCNzLFZIaSFecHR1S304OGslR19WSk1wQkxZYjNeJkgwcEdUWFEzSTJzYmskY3R3Qkh2eHYkUyVZNHlFezgjdHIhNTF2MSNnZG9HJiF8cWRaVm07OSVSb0Z6MDQ/WkFlUTgxWlMxR2hFMlF7aDhuT3d9RlI3dlBqOCpXWkp7'@; put 'Z0tkM04xdDI6PU58SyQoP0MzREQuU3p6NmdSSD90UHBGTjM6PiRwLGVkUjFTNV14UD5DUEhiOzkofHFgJDRpfXpLWyxSeU45NjAmajV4Kl0ydWFiM0JGK2NLJFdPc15PUHxTM3U3KTVafmFJaXB5aH1nZ3hmLnNHMiVoVm9LNlAuODgzeU51I3JsYyZwQkBzVFBAKXRrRHlWdjhfSVZrJFUmLFNq'@; put 'N2xCMylkP1VJXTQkPnF2WChPMW4hSUE+aHp4O0ZSKmYzP3kmVXgkbkhvcT9JNiI2azhLejVHVURIWEVKZFRicUhbXiV5SUZ7QnU0RXU3cUlodigrYjJgQl0sY1JpO0k0d2JjUCRTV3tjN3YvTVNndm85YXF2aX10ZGdDTm9WcE5Dd0ZyVzBvR3NLMz5wbGRvST14bG5sXXluYXAmWVhSal1SOU1T'@; put 'XjNxP00kKClZclswIWQ9aUVQeWlSekdCSVAoTUIweGlRVStKdHRObyIvNFdiSXVJa3FTTDssZ0pSNyY6M0kjdWFKOnEoQjdrZiQyTS5DQF9fPG9kXkcsY3ooOTRyLmEjP0lqUnI4eEsxRVRZSmMhTFlUZDolKWZOemklN2xecEt9VGt0dmE2diswW2RTUkVdQFBSKDptM0x2ZVArNU0hYmd8clVP'@; put 'fT4kaF9XfnN2LDB+SnteJVBnK2AhJmp+Tld0e3hJcGQ8PUYvWUp1Sjl3fk9vZSouPzsmMD9qOSV1YkQzYllpSk5FYytnJnJ7cTJvWUNVPSwzbWE1NDJifFVKaEBGYEd9WUVhMXlCLFJVezJDNjU+VXhDIj1eU3VQeWc8TlN8NzF6O2YuZENZa0ZqYWxJQUd3bGpsMkIlS1pDajZHcVhiL1VTQiQp'@; put 'P09BKC9TaUN6QSM4bjMjUE1MKGdGcWIqWjFCTiUwYWJ7PCxjU3V0dXJUcHhDbSE+MDtZTlQrOEZbWU11TWxBLHw1JUJ+W0p4LEssTSNzWzFePXw5PFplPTEqSX1JfG9jREVHaEBjTCg7WVdfQktAP3hJSUhBLmtIdz0yY0QuM2VpYVtRbiR1a0srfXo+RTd2R0dWdDV2SCFPbipWV3BjJmZrSTZV'@; put 'YCRNLDUrRXc0QiUza2xMbSNJdj4zX2E2QVZ0a3s9ODYzMDd9fjhoNWs1eW9QVDpjQFNUdCVRTE52S2VTRm4wSTs0MVpEOCxPK2swUlFiSFRQcW9WPV9ATlIhb0FoJFpwJnR9ZzI3MldiYFdJW24zMl5HRSQ5PkltfWJbc2p5TXwrQk59clZXLEBTaSRAfWhST2M0Y1tDPEFGcFImeltTenQvXV9z'@; put 'RSt5fEoudHZyY2hIJFdeS29VSUVBWWF5ZGNjSV5dWyV6KCJJV1RGUkdKMlZvTEZyJk9kQkdJaWk1e3l7aXRrbC8zbm9ZPFU1YzVUN0xUcjUmMXc+V10qYXpJYFdCU10sSX5UJjw3U00pOk82W0RTQjBOISteekJ3TS5nSFhKemE6byZPe246PypLXVN9cG5TfDJob0BabmghWWtTUlpqNSQlV3dw'@; put 'Ty8lSVJQNX0qJVpgM2h8NysvI2hbKTxnUXEjcUZCfUkrem4zKDdgc15+bUheTXMrUSIsYkF3YVpCNSkrPVJ+eV0lUkdKfkE+Zm1+Lz5wSSF6cztsJVtOWzFkT1M7QlhLYktVcSNIYjooYTVVLCV0ajF2bFtCPU45ZktiakR9UCElOSh7Xl1AQmRaJTNkei9QR1AsdjVbKG4/clhZSVJfXTAqZ25k'@; put 'MSh9NU5nbz4lTERgUS5MLGZ3UVBPT2tWQjJDcjF7SXYqKyRCIltaS2tOQW1aTWdZYXBaIzc0S1M7IkB6cmZ1SkEiW1BZLzlZUzNdamFMdE0rWCZOYXoye3NMUVE/NHxFPithWi4lQ3sxPF9oWUl+KiJXOGU+O1JUU1RENFJReTluQG08a05iTFR9bT9hL25rW05Lcls+QzJuX1ZZJS83eWFhSj5n'@; put 'dmtfM1FfO1V8bCxaeDpCWSJQOUM/KH5oTGhWXTB6WS8wMXZJKTI2LnBvSEUmWUJGR1lRZnQxe3d1PiFVUTlZbH52QkZQJDBAVTNJalclWTRYUzZ5QTIzK0FPaUJLISh4SEdFOWlgd2Y7U0suZ3Z1RygjQ252aE8yWnlxQEwidT5IUmtITGdte1MrZz57V2Q5dHZMITxMejcjTGVfXVtMXShPQil+'@; put 'fG1wJEhYNDttZn1RTlRUUHZaO19iS3pCJkdtUkthTn1eUE1OOWwxUjE5fkpeRT9XVXQ+Wn5uaCUheWZZKUluOHtFZnd9MDl8Lj1ZZTl+eXp7ZyM1JiZ7Tm92JntdJmMhTVQ7PilCb15DXiFUc05UNGZWPF8oO3B1SSxYOiRnQT8uejEsIUBMRGJGRz03Y086fD5TJDh4LGE3TWgua251Li9iIUxW'@; put 'YHV+My9rOXomMmRIMDxzNSRRcWdmYH5SVTVEP3NLKzB0Yjk9VW46RkhsW2I6RGQvXyxJSCgjcEFIPEhuaGUzXyQyPT9TO1ojJHNfKzZfaSUxZElkUk4/RG81Li5wPFR7fkdWKl1FX3g0WztBfjU7UShXJTU4PSRYflc7QTUqd1lNd2tEU0pyY0tdd0Y5d3opMF8oSCN5SFYpPllsbHVQOmBMQHcm'@; put 'TUl7MkM/L0I7STBbU3NSQnR8QVBZeCt5Rjt4MF9TZWBGUFVNQj9dOTR7cnlDajVOQyUmeEl2Qz00QyMrLExwPitrKm51ITUmYlJHdX1HKyhhdkssKEBPSH1Xc05jNl8vITQ3WUZyPSNVRm87MDVIPDZ3U1p1cTBoKyp0eyolWCpYZzZfdktNNHkpT0x7bkFNM1NxbyRoZEcvTkU/JFNWMHQsWV1H'@; put 'fDBnbWA/d11IXj1pVSlBOEJid1EuNXZaS0w2TlMiKU01WysjMTFmfGAuPzxAczZaXTkyMiRtfnYldmJoODQwZ2AyI2dONGd4bVlZVVZIYVJfWjUjbFB6TmJsUHJtO3ZhfGo4djc0IWl3QnQld0JHbF0xNVdAdFVkTFFfbzBSPiY4V3BSSlBVUnZtaCkvWiU4eTB2dy97XUlYOmsxcW5DO0B5aCgv'@; put 'ezguLDRzIW9xTmdQYSFlQlN6aiY6KWVkSTcjPldLfiNYMUhiPk0uMkZpQTghT0QveC9mcGopOj1fd2UrZlM0LyZuN2VyY3NfNkoiV3MyXTY1WUZxMUZNdTU1Jisrdm49QXlDbHhzYW56fkBiQntmYURZK3hLVTRiXl1UZF8weW1zLmQ8fUh+WU5hLEY7dDByWVBgPWEhaFZXaF5JZEV9W11tfH5b'@; put 'MTYibXY6dHBFJSV6W24pVClFMDdNS0w1JD1aVXc7VEdjO3NgMmE5ckw2M31ZJVs2bXtDXShEP2VAYCFMZyolcjwxSD00RCo1X3pOcGZjIjJNPVdmTkFSdFJPLyRtOnljMVg4dk1PYXhWeHZ7TnBWSHxYZjEvTDEkenkmaVIrUnA7SnYiPHQ/bmJ0Zl9IVElDI1R1YEtbUS5sYFleWW9BWSY9dCx4'@; put 'ZSpTT3tqSX5sM2gkTEY1VWRUdT5ZPU5IUGcmXSQ4KGZae1t6Ik01MVBvZyliZ25gKzpgJFdrR1U8dXU1UGNvLj46NDYlXm90cCxgP3t5cmxVRHNEOnFFUj5pI31Pc2B5clE0LlFIb1hPXjwxXTQuL0JnSHVPXml3QSltQXR5THNkdCtldWlQfHl3Q3N7XVpkfmQmelVKdGQpTi81Ki8mem0oYz4q'@; put 'JDlEMHsrYSpFbCZlUTN9eUhEWHpbbE1sWjBNImxTTF5haj1OIjEmL240a2lyOmA3OUxWZUsiY1lFLFJkZkdtY2ZhQ0NvKF5KXlV8OmZfbHArMTdUbSREWlBAXys5M0NhOkEwZ09ZbyhfYTM9d1FkcHpTbjBiNXxFLHdxSHg7QEB4RS5sYDdYXUVUQ1NFd29TW0c2PmA4T1g9ZWA7PEZfQ2xZTF5k'@; put 'eEchW05iXjhSbCopOGdxW2xjVC52Pyl4YygzfSkxfnczckpSP0ZbL1Yma2QxM3MhSDJbJXVvQSQiRzRRV0lxUlciI0c8bEgkX0pCImpZdiRzZS9YYSRoTW9xezhYPkkkKEhIbEZXQTNgaVdDTzxsKlJAQ21YR11RZnhRXUhjMzBDV3c6V0RBMCkvT1Q0Yn58YSFNRnVlSTA0L2ltRTkydT1YVHUp'@; put 'VUZwfmUqSnJzPHt3WTRXNS4+MCo1TH19PGEkdnNrb0g3Ing1fWZEPyg2Kj9mQjkrW1YoPUwjdkIhOXBwWjw9UVBSY3AwZDBgdnMqbD1LRGgsIU14fX0rSUgzdSlnOiF2ZF0hUyN9OStscU1oTytzXzZBXy8jY0lBfVsoTkNYYS4xcEBDRT16KVd3bSxeOHl1SnEhOUlSfXEyWHd0ZUtXNzNlLjQv'@; put 'LypmL2RVYERlaz1wIVN7UnhtUjU+Okl0V1ZNSjt9O151aEI5T21TXTZ2RGdJbDdbS3B2XUs6IVhCYHMjTH13YUYve1ZzN2JNQSJbe1FPQG0hK2hHb1pAREN8bEpdZX52bntTeHVFY1VPSF1hXTJLJkxVOyh7SkAxI3BvMnwpNS98TzJXaHxQOk9nRT0vX0p3bTdiM0BASGEvKlh9elIuJGo+SSJC'@; put 'JDxASWAlJUojIzFVPFBDQ2ArRHNzeyMyczJELzRrRjE5ZTpBU3IhRDZkKVo3TUI4ZXdKUEp+anckOzIzPlAiaCF2clZVQ0U3alIvPnddRCRpczdKJUc1TXJlaG5Va216bVVEcV09SW0hLjdEXzRqbl08UkZEVG46bEdgWTJ4QHo8PVliOihVKWEreC9NQVNkcVNyVHFPOEdbP3JjJis/RjFYZC9u'@; put 'aVE4K09nWilWSGszKj5SWkB6WiRsZGdyYSViUnNNKUs+QkVUY14wczAyNFR5TH1wQmIiejFDMHZrLCVxV1RWPFBlJjp7I201UnlLPiUjaV5BfSg2fTUkKW5lOXEic180L0clLipRV21eMUVtQzJYITc1WUV2fipzInoqaiM3ZCRteUJDNEskOEF+TF57THNuXitYTSg8ZH5BYipPKUVvPSZbaERJ'@; put 'cDIyJntdZml+aktxdHhjfjk2fWhYUW4yd3V7cjJqRF59WEBUd0dlM05uLjs+JCZSUihpTTd3TmUkQ0V3aW5JekxMUGlYOXJZbG5bNEgkdGVafEV7T0ZMSkNeQ0tUdCxJSEsjPFUwM0xSYTFVTXpANyFoOzFAQEJqJldDPXdWXmROMG1kdkxZaHVUdVkjaEJGRkApYDU7L0RbQDVhfWpMImguSCYk'@; put 'KWBaS3F5RCE3e1M+aEV3c3B5TSNrSCVuc0k7QVZlMjRPN0pAOnFYYmttdk1gLnQ4clp7WEtAOlcwcSI+VFBJITsuSH5PSTFYeTYlNjhkZW51aDYyZXIlSUl3SSRBd0tNaj1sQ25SP01xMXFRY2tRdH1XQD0xVHtGaX5DdXZUYXVeRFRGVWlRaGV0a0ZDdVE4PU1MRjRqbn4+Vj9LLFJlbStobj5u'@; put 'SClaNlVLdTYwXiZtLj1UdjA1VmdEX0hLL1AoQi9pSlYvZlpGLC83Kj9YM3BRNjt9MUomPCUjPVthO3BZVkJpaWRNI1t3a05zN3JSeVdZMS59M1guSG9AXj08XUtJQk5GZF5+e1N2ei5ffUR4Knd3RCw2LnBgPCU4Xy9CYUg3LzxKcCFrWTcpMWI/Si8lb1EkKXwoRkc4LGkzZE4odXs6LGhaUXV5'@; put 'IzQ5LnVbbVo0ei5aby5EcXdpZkU1NUx2S1tYKThEcz9WX1IxSDMjUm8kQXtmJXt4Oit+JFkoQzxhKjEocz9oKjBCUzdgYV8vITc4c2xxaHF3I31RRmBAOCw/R3Yie0FJTC4jPiUyMG9IdFpkRUVLWntmOEY0dUp+YCVuVT1abG40TUtadjFUS1hoanY/SFR4PSZNXXFVfSw7YDs/a3pENW4rJS9r'@; put 'M2UjYDF6NGE0ZyRNMXkwYkhaXXxkUXB+aCVYbjd2JCtnLFJQdDBISi4mRltMKmBbLkFgR1o6TV5oRF1xTFVvd1A+KStZLCshN042RjZSTUEyLGFXN2JRTDx1YztaUGpPSn1HISMobmo+Kiovfj9uejw5JUdDMXZrOShhIm5hTGpua0lsLysvVTNpOnJMdTRuY2VzdChLQnEkbkh1NEcse0l6cVd2'@; put 'eGVpPEklQUdCRC5PQWhAMlpzIkd3WDdkOzdNNT05XzVwSHZXeT5TNVJFKmwhM3shKDJnMzpdVXE/bC50dDpmaEpRZ1NFUmVBVXxIQipXK0E0L20xSHVFUlcpNz9BLEg5SlllbFJENi9hR2U2V3FvMCpobysuMWBKJFdyWShjaHVgWkwpQ11JXzhnM1tEU0RwdTNBUExibmxaeUosMXJALmFHSUwj'@; put 'JWZ6Q2hCTTVTc1UzTW1aM2I0OTU0JndiVnEqNmFFelAwbmdvSzV2QjoxdnY+WTNXI204YHNJY21hVlhNKHZvbkB3KERVU15ZeEUjL0J5Kk55Oj9TfXhzPEpnbyt7eVZLXm91aGkyKEJCRSppem5aZVVWVjIqR3xNdHt3b3xQfk5nOz8xXVl8bDdXe1l0QUQ0OjZ0Q0Z8dUh2dkRlcFQlTHl5MSlK'@; put 'YURDWTBLeCxjITxFJiZOV25VYTR2XSIvNFFOSE5MIk1KTT1aeFRjeDgvc0tneEgoTVdaJEMhc0IxKj8wQSh5Q2ByYFs5W008fDxvXjo5IVJxJF89TXx5QD52TT1Se1Y5UlJ6IlRNe1hjNS87bCZxejsmck0sYWkqUEAwRDVGdGt5SSlBbUl9OCh8MGVoa2Fra0BsLFF8OXZUdVt6Q214WCpyUSRf'@; put 'ayNLKDQhejpQJlEmdS5gIToyIUUlU3MwW0R1JmZlTTk1Vkt9QypVWypuRCYmanw+InVXUS9OUUcvTXFJI2Rrb210S0BCZFFrbTJVdyU9aVBvK2QvWD49bChuW092NHtvJTcxNjxBUnxpIV5leGczLzN2Zzd0Nm4sIVNyIns1bkw7OHUqWjQ8Lltrfj98TGQlOj9oI0s/Q142M1h7TE90WXhAZVJo'@; put 'MCZDX1liSzF9PzM4fnVkUlkvKFM4Kz5NT0laRVVhbGswM31Ccj4vOD5PJF18Pi5dMH51PSZURWw4VVN9e11UZ01TMks5XjgsdSNVMjJHOCpGOVp8WTc7V05tRn02YSVfcElRL09aI1ZjNTNvej85S1Q9P0lQM3V2NTNOSV9fczduS0A8QSpBdnxAL0tAOX4sTyFrPXcpbTpeMzE/UW9OM2olTnch'@; put 'W1Z4PDs9NjJ0IVsmbS5PeFZ2L1F8eE8pTXlEfWUxRyQyenBhPmsoc2RzfF5RVU95Q21SJHJ0dnNYX29hP2N6MkQ6bX1FPjBBQjZsPXd3Y1ltd3B8M2QkTCIiZFZxJFg7bmRndispdVVpK1J+bixMI21fWG9sTTVueHlEKUh1O1ViYl59IzlUIUdhfCQ4JXVbJEp1RWgiTFp0SmZ+R1BoXUsqVTJj'@; put 'KGp9KktAVX44Q0o5U0J7QiokY01xcXhydGdBSURnJnFVezpCJXh0Rm1UWz0pb20jazF9e1JNQSJoVzV+P1o7UDBEOCt4aT80TT4+SVsofGpIRjVkMyQoJCY8LG83SFZLaXdyNUpUIjVgJmopKDowcytkOWwyXkVsYkZDVntvTUl0dH17VzFxSS5eajNkNk1mdWhOLyl3Sk5nSExpbWBRZzlpM2Ys'@; put 'PndsWXBSQm1kLjlvSDlJW3xyIXx7ZFEvWG5FcUlmWi9LXlhdcz9oPGJ8SigpXzk+R1VSTnhPWDlhKFZITjtGelhFV2UxSzZeZWtqaFpMSUZ8P1szTnRJQzRLIVA/TSQ8LldAP2BtT19RcmwzTEo+fSE8MlFIRC8xRGB9M29WX2hdPnFQW0E5SzsyZCg1azRITyo3dEl0K3QqYiZuIyFvOTZ2JCF7'@; put 'dW5tPHRePmlOKlVwdmVtLjRfek9RckFsO2BrdkVDWyFjZ15kUUpuW10odmpYfVclclMiQGw1aTg7NyJ7PHRiRHorcip8Ij15Ol10SGJHekZIQiQraD5JSUZgVUJxJmB3JW0scipZYHciQDFGeElNa0JSQiJmVXF4emJ3UVkpdXc0KjJeSVhVLHw5MF4iRChFPSRILi94fHddS24xeVc6Q3pRbTx6'@; put 'T09YSVBuZmp5S1BRUk5dQmxYUEchXUlLSmlVYSo0VFA3Z2JEciZ3VSxBQyZSZHwoZFFDNDkrMzAuKXNaRShUQjwiZ2RlNWc8THYyTUBzMD4ucF5jWkA1bnBwO0dldTRkNiY8SXNmKmM6ZFhHNl1EZTw7PHVAR0tSQ35EKGY3K259NDdjJDNFek8iMHNJKEhgLjgiKT8rdFNZQjNOSz1qLyJwU3xf'@; put 'THpFbHJAYE9QdzEmW2R1WDtRXVh0flg2UGo4a20yP3pNWypAc0B4YyEoX3ozZU1tbFp4a1R0RW9VaXtnaSVVUmshb09zYzhDI2F2fkhFXyZpeWYlR3pnJVNHcE4+WCxGY1leU2leWkc6Lmp0cTVyPS5EKVR1PihNJjQoO2pnMkFwJnU+SERGZCJmIn5DOHxyRnQuP11Acys7WGMiVXdDXnIqXzBK'@; put 'YzpZTTJuQkAlNGZ6dDFTXm1KbE83U2dme1YjbThkI3ErZ2prTHFPIyxoWF8md3BhP0YyNFVPUS53cWt2SS9iMmdTbmtnP0NjY0ZzJDooXyE/bC4kL05OYVR0ekg5ZD5zQ1NFIVooXVREKHJRfnJ1P0Q9YT4iRU55UCNqPDIwSzduWktnelBrIXh8TGBIQy9yeWRweiVVSVV3aX06Jn56X2dRW1V6'@; put 'Z3dXayNRa3UmKWR8e1FLPGU1b0hnWilvSU1LQD5rMG4oU3F9OCNCMGhhWzs4dmheZElsdzRoekszVVdHc0ooeH1WQ0hsWzVzWG9dZl0kdTwyVzt6QV99fSJYXXNLW1EyVjcyYkl2ZEsrPn1+NjN9LEBxOiw3Rkl9IyljbkVBMHw8bkt5Q0VmX0JdTntDdSVQMWZqOkVyei8vXkJiUl0yMngqfG4z'@; put 'WHhxVmRVfHVbX3kufmRyWC9Dcn5HUyRiIz06OVp3TXFdQjN9byFpMVhOYmk0Lys0bSp6aGdAc3l1LEAycUN0Rls9aFs+T3ZhfEBLRmY+Qjl0ZThNZlo8bVNec2A5fWZaanIuNCM3YzREUUtLbXkjenp1NzAjZFU4Om5YKDIhUEJfZGVgfGQjKG5vMGpmLDFZUlgkWVMmYU0sNCY3OWIoaUVLJDAy'@; put 'KlVlZE5+clE5TjdSYj46SGtNSklFdyMlQVEraCVFdUphbUthRXhKMSVaQTRBJFBgYE13a2B2Zm15PWEhOU9wPXtibU9rWzIvIllRJS91NVVzcClvYDtodWlbJURMaHlpVU0qek1pcC45MzZxYDp7Oi9jSUtUfnNJRXBlbUNwYiNXP1tGZFIje3ssX15rbT80Om53VzJ1I19vVmheOUtEVm1KUU5q'@; put 'b0BeQ0xaS0JmLHZ4IlRFSFk6Izx5M0FPbj5MJSxQYCZGVSk+fm1hMnFnTVVoJT16T0k+UCw1ZmJFKG4xQkZOJUNmb3ZqWFNrNHRebjtBVT47UVl+NGEka312WkUlS2xGTU1JWmBEdVJ3UUQuJngjezlbaCNnWGY/OzVJZ11IXyxjMG8oNkUmajF1NUJSZFFoJGxldXw0K15IcEVSXzhMZD8hXnpM'@; put 'Uzp+Inc3P2B8PkZyRy4sPmBGVX0iMV9uIjYwYUJfJFdlSC5FaVlQXmlOeDc4aXVufGIkQ0codiNtPTVnUSR2a0k8bGFda2VJcDxCRH1VOWtoOSk0fS9rYFFSSD11PGo5YVhDJF9xaEo6K2JwLkt7QFAzO05hcUE6PDtYaV83eStFV3pGXXNhKHJqZURSN0p5K31vYT1zQG9xUH5GdWkxVUh5KnJz'@; put 'WXpTbVdCMj5veHg/VnE0XW10RjEpT2oxL2xdOT19VVQsPUQ4JDBsNkFTSnFFb0t5STJhVFspXX0hUXBoZC9jN1ZPVn1VI2BUQG1RPWVUU2JMKHtwJVF+VWdIejVdTlF2Uy5YZX5+MGs3NXM7N31ISC9zSzZBdWIza19Qe047OGxLe2UpfTJkMysmKjJtNUwpNTpxMloiInwxJmthNy5AREtGZDx2'@; put 'Vk9mWDVzcDlOb1BdTk51dW05Zykjaz5JTFFbfkRGby9zLj5VMzguWCsoV1tHUmRyXnxEbXh7ZTx9JmZKQXZmdXdoSDdIITphO1ozemIjdj07SS5aRnF9JmYyWm9zY1s9UytkNGdbIWcuUmAsaEN2emhrSHMkTG1MK1oxdl0jRVNkNWEqNywxcHc7VX1CPEM9TUBsTztibih5VzhmOU8hOGpeZFUo'@; put 'XTtEN2dfZTp8dEBMQiZRezJhN2k7ZVt4bU8pNl4icmYrNXA+ez5vPV9PSVJAeE9eTWNqdD13XTdYRSNAS3h2OmBtQHdtaiJKOGNNRCVbM2Vma1NiT0J0Y1guLj1xSC56bnt0ZExwZVRyVzVkMVBKZDc6NlcrWWojaSh3SGs7LzMpT2cwe2cyaDJdUWJaaj01JSg6VCNwLEhBS0h8WSlLPCNyfUtS'@; put 'bXk8OW05R1BXPWFqaHR4Tj5zbXg2Y2UkfnFOdERRR2xPdm1UQSRaOj9SUzlBViYlO3ZfbX5pXVZoNnxOS0VVRnpGQWt8OCZCNm80Zi9QaF5NRVR0dUtMan5NQ3JvJHUmZWIjeFFrel0qb0x7VUB5T0VreSp6ZWt2YSwuPjM2eSVEQmxzb35LdDRWTUA9eW5hLjVOUEMqKCQ3ej9NJSRrYVFSPFAw'@; put 'SUtNZXFAIl5NW2RuO1RXX3BBKHAuZ3txOlo5YmojdXhSI3JIU3EwREI8XUpCI2A/eURPdVNRNDxnMVpfKigsfShZUzVxTG59Pm8kREUwWjpHV2ddKnZhTEJ7O1VfdUwydDw7fGs5N2d4VUkuKyNJQ2BlaCtAUDIldmRFJElgRUZxV2FPTDdMeSxgM1J0NHZTQl1hZ0A7bzZDPmB1UD1oNE58dWtf'@; put 'RXBJR2VmWTplc3x7cDE7akc8ZGlaIV1TcG4wRFR1ZnlMX30ocGkzZix2WEwicyMxYTd1cTgqai9LZzk2TmpaWShUUytjbUZSLzQmO3IjViRTPD53ckJydU04KDZtKWdTNF4mZ2Fda35ZYCN0UUh5dCE8Lz9pRz41UUVRbnBUazhwMG5tMnx8W29wTUF2MVJqPHxXK2NWZWpUT3YyfkZoIzIqfk06'@; put 'IUYuSD03TWsmM1JVYyV+IVR+YEJwbE90fCY8UkpERlVUQEwiQFVtWjliO0RmfmxIYX0xSUBZO3ZaZHtIZFc6LC5FVHs4eUtpZ2RNcigsMGFuXy9iLC5IbXlrOWZ4eiIudj4+aXdsRyNmfVtdaHxPL0xIPmZVNyFwclAldmE6b2E1Rnowa0pVL2RRL1olUyp4aFRGO2JbVlFdN3dKSFtSZ3I3L3Ft'@; put 'MGlKUm9iaDEmL18+cz8yaU4ubipTIVcwIzA6dT9bdVMsfGVXPHUzP11zWHR+Zl1NUTN6RVtBNCQ6UDFzTDN6PDx+Sz0vbktzQVklNTR9Wk85Z1t2cWdjLm1HZEt8STk/PUVQPGV1REY2ZmhiaFdIeiJKfWJPQVZXJEZaO35YX3g9KHA7c1dZOFFZXyxKc2c5eEltcXMhNkNUSmwqYmdEfU1pPjRM'@; put 'WTxWQTcoVSRvJmopYGlhS1c2bX5YezteT31iJkBKWHt4PGJ7PWNWQTRzQyg4QikmL3hLI1hIPFNqWSFbYXk+Z0l5ZkIsblVjLmFRVUNgYiM5Pm1yQ2EkMlc2bE1efndTbGBBeXEiUz5Lazs7UHM0OCpzODM7K21IdTwjPilaT1VpM3IuNDo1YGxkJShgX31mKWF+UFRHYTM9cnl5ODVaPyMkYF5q'@; put 'QFAuRUZQQXA4RDRAYk5sb0VocGZ9KCE0ZXFKOSF6bzc7Oz0ybTAlWXMjNzw6an5zQGYvVGp3KTc3QmhrPjohdTEySTR3XjhpWVtvNksydSQrbEwvaWcqdmZvfGw+PnZtRVomYGY5K3F5WCw0fXpLLj4lKTVWQndYSldEPXt0eEkmRkF4TmFMZmxQPzQ1UWBeN0w1ckp9R098JE1WZ3IvTkYuRC45'@; put 'MUZeIXQiSipSY2t1Kj9YV2B0b2JVPFVVJG03JXgiMzJILHI1eDc2Pm4memJqJkx+TGFsMGNkXzp3JnYxKW1XUHA9SnJSV2I2RWU2fS4zbk0oQ0tVUmVIalNvY1VQcXtfP116NCFIRDg0NWZbYGpPTyQ0aStROUgueWlSZEMzVjJsRmZtRWkrbEQvdWxbT3Q4KSU9My8sdnVHZk9MLCkkN0Y0Pm42'@; put 'fkx8eyg3L114X3sxPVpYKGtMT0poZlU2LGNMPyJpK3gzb1h4SiNkTkJnN0subks5XWVkKzJTS3lLXUpXMzM8cSZDdCpAcjZsPjJJQnh5TCYqaTNUYXEueU03aiJZa3pXeSNwYkpPQlJVQGdvYXpdUX14XWo/XShYSDBOUCFBLn0icFp0TTQ3fVo3eDB7Q2hvaXssTSksJH5MI0h2U0A3N2wqQ3RY'@; put 'JTsjUm9gR15wV2xVVHNfKVk7Q1B0JXN8Om88JTdee3VaJF1pan1MO3QpKmM0M0dhJm99OVhASDhBW1pEVytFakd7NzVLZFleZipHT3wqJD9+RzwrUF8+cHxfKSpPak5iKDZrKzAiQFVkX2xXTmIrWVkpV3VYP0QsKnlFMV5VPylyal9kSTV0Inl9TUZZZV5sSyhvQX1pYXZYOTdgbUsuNHUmcUUz'@; put 'YH0oJUN9ank6VjxsPHFGUlFbU2wsbC9GWjNNbWl7ZD1we3hAUj1qIXAvckd7OVosd2pkeT1jPk4vJEdsVV05WEB0UGFMJUFOLCxKSyFCfktrZ3NqOX51JSZ6fDhRJWlOPXt0OkdYZHlbW2IldHp1aUE7bTheX3dOSllxdjQ0Ul9QT2s8fjByJHJSekB7OkBVSG91NDZzRUJHe3pTSjgrWWF3cW5C'@; put 'LiE8PSE/YTkrSXtOOkZgO2h+NyU4a21bLmw1NjxZMndbSCZRY3poKExaWjdjRjchRF19VUMlUlI1bDRlP3wqaW9NPzVwI3Vye24/S1JZYz1fZTlHc3hoVDpibmhkNlo+NDY6VSRzfElxMCNWXng9bnwxPUBMe05bPyVkfGRNX2lobEV+O1Z2WUFnKSRJSWJueUM1OUNJL3wxL1NeJmQydFdsXThr'@; put 'cm81QT83ZiRdUShyYl5+UWpyfVlDKSo/S0Q3LGMoNW1xJFozIXRSdHFWX2s5fUZpLkMrdS50bVVxIW8penEvJEAsSlpqPzttOzJfRT1GMGx1YEl4ZlIvSjQpLyZ0fnp8ZHI6a0VeWUNzKzZWTF1DOU08cnMzXiQjSmplU1ssfEx9RTlbTDx4eTh1P1Bge3hAV1hvVn56QjNeb31OXkQuNllgSXF1'@; put 'MjYxU3kvQ2Z3ekRTei95OGxGRXguMmpWIVBDZHFsWltebWBkSzcqSkVPJiIsLmpRMH1OITYuTjpgQTIpcC8rPW5sZ0Y+Xl5iUzFIQ1dUOm1nb25DUV9HKSNmP2BpUzMzJn58Vlo5V1RKXn5kJTVGUyMjK1smX0F1enJ6fX0oSnp3fDptLi5lTTx2JSZ6e0ojIVZbIjc2MUM/O11FMSNNJllYM3Yz'@; put 'KyhsbCFUIzRPRCR+KXtBc15jIVJTQXRbSWNzW0RFQXRFO0tyWW5HJFRRYlF9aGhVfDhdQ15RV3x1eGg1Qyt2XTYhOn5+RyE/clcxXkBJVSlbRUV+TGFLTGNCSHZEMG9LMnA1VXApLnI5e1AhYG1QRDJNeXMvQXtaKVo2Tkk6Kj9UfE46c2d+XVR6Qkg6IVZKKXdfWiIkNm8pOVl5QypSYWdCRiwj'@; put 'IzZiaWFgSWVxPSFxJiYvdklQPjhZVVFKIVlHPn5xT2RdLm9BQVRSUHE4Q19zYWBuWlgvWE96ezUpN3R7MWEsMGIwTi4yUVVFbjwkXkhWfD5DSX04KVlkSXZpQE9EPl85SSNidkhFbFQ9fDRUOHhZfjlecDtgdDM/WUVsfj8jdnRnbHF4fSlXTSowamBWVSh3QEB9fix0bj9kP0lyb3FYWUdmb3kq'@; put 'fXdjcnt2fTBlMStQUnsqeE1ye14mUW5eRC9eMy4pdUJbXiJdSXhab0QzNj1SST1AMWs/WCZIdCtfdU9RXnRLKVNgW0QkdlRbc1Q/dEszaUghd1tGTnNlV2Q9NWBgNG91RktsMGRGa11gR01YI2AkbnY6OyZrfkh3YXQpfmFteDhyJC9eP3BWcHdqLmVpJj1lNmhscmx7SzMvRmxSLGB8QF45PGRs'@; put 'en42eEh6OjQpPlhGJjxRRDkxTkdOUlAlLG4rRDpjMlV7JDVHQDhaeDgzenY7dDhRbjJsK0pGVU8wbEsoR0FdVXhINUhRN2FMRCt5SVooOVRTej9uJmlmby5uMDo+Om03fmNBbEcjRH1nTWhCKH1CMTdJTDF2JXpjQX48JnAqTllNdihLdC5KXTZ7JCI6M3RHe2Ruc18+bVdGbUg4dDU3eUJ+Ll9U'@; put 'VE8ybWgvMF1ta0x9OURBemZgeGksPi88QDQ9VD82TGs2N2FiK1I0ZGZPV1J2UEtrNT5lblFzd19LLjd2TVV1TixOfG1FW3clJW99Kz5YJDteRWFOTkZ6VFFqUnA8JCxiSUMsN21gXXt7cDhQKlF0fGgkaFM/O2hOLFZyeCRiU3E4ejd0KzB6RjwpWV9URE5+JkRtZ1NpI3F9WWoje3UzQ2RzbjRo'@; put 'cEdrRG9fZmpFWHl9aEtYUjNOQVttSW1iSHtpXi50JHY+YnIhcnx0cUUpYDdWPGxpKjlgazNgeHIxe1NqMENJIS9AQEIwamo5d3BReHgoYk1aVWJpVWd0VFk9T2RwSlo1ciNdQilwNHpZQylCZ2hPQndpPjxeN1hTV3NKPks9JF9JeCNlemgzOih7Z34wWGBrMzo8MmsoZEFHVXJJMEhUSyE/RSRg'@; put 'cD15T0Y5TDIzMmdBe20oJlVicHJkPX14OU5mMmZHfEl0UExkWzw5QHx9ejAwP3BAYC88QHtqSGd3Mjg5OWxVTG4kIiNyTj0lPy5nNjtJIUY3RWA4fmgjJkk9dUZXeXYqKHBNZyx8ND9IankpRHh8XzJUeig2fSJjYGxKc3k0LyFTOjojY28/PHpWUEpuRWxfPCleL3pCVjVPQ0NUK3hBQksseFtv'@; put 'TDsuLC50NHFjOiQqUX5MJlJEKnBXe1BkXl1vQUJtSGREQ1R2XW0pXWxje0ExWiZUNmpKQmRPOTc1Uj9AQzVgL1UvXilvR0tVREUqNktlb2V4azZ5YmF2N1h4UjNVW3MpRSxeWjJQNyk5byxsVGk9cS9MVnFhXlNDU2lXRkAmWTFeQEhgIVElJXsjXSEmM1o2YEk1PlE8WDk6JF5JLGI7YVs2bG5M'@; put 'KmE0UjRTL04pRCpKMUBIPChKL3khR29NN0Z3Lj9RKXpYaWM1Kk1qfGFFU302elN2IlVLZWVBb0JHMEVXaVNATVhWS2poRltPaDdCSV9qTDNVUD9lRFQ6WXpkdD0ucD4pUlJsJE8sJCxGX2M1W35nRFllcWBsJVtxKy92K0FALiJGZjUjc3pxNj5PVEN5Jkt2Rn1OK3J+Mi4hIVp8Q010ZmxAMUVz'@; put 'fXh9dT5yK1JGMip4IzJrSSwpWlNPQlFHZX1kNVtUVntbVTZQSk4rOSNPT0oxKS4jTyllVnRVcXtpMHBHWSkxdmlvIUN3R2xQSGxSJDxUeTFMPk9wP3YyKWxpRSNpe1JzdFhYLjhPbE10TS53V2Z2Qm9MfiZkdDwsZmtjPDxOblQoO2V1RXgxcXBgU291fDw4OztsbjRkfSgjI0ZwQithcmlEdF44'@; put 'fXwlPkwrRkk1OHlyZkYkN099L3RVRVFnNndEbUBEaEV6UjVOR2l2SE9rYWUhe3dDOFVWcUBFKTpJTzhebmNmV0hkKndGenZlSHpDVF1WQHczQkJOMTNvMU9KN250LmhAWlorZlJrd0c2MCg2dVp8Y0IiIX1CdE94I0U3P0x7Xml+X3lsNT1JYDVCKVoxNlBecnBrOSxFSXJePmZUUVpZdn1AND5D'@; put 'X2tfNiVQPCVaSHxDdmk8L0cje21VVnhnMVt7d2E4aXwvUWt5a1l4fVsuWU5hLj54PCxEXmlnNmFCfDVXdSxucjFpJEtecGs/NCNUclR+WGQhfElGRl0mKlFoZnNLdl8uOV9QPTxLYiJwKHxLZSg8Wm41cHlXUVohKlJtOWxDTjdTUXowLmROXXtgd2VYSmhpUUNEJUh8V0U+S3VXVEdpYzlKcF9L'@; put 'MWxLZGE9RVo/RFUsfkglZF14MzZmQjNkWyMpND95O3BmfCQ+Zy9bYXdWWV9eKC8+ZSRmP0s/NE5qRk5pYmdvSHtEKEc8WVNAN1FtLmg4VXM4aGVDY3Vbc2AyWi4zdz13ckQ8I0hgbkBCP2M4V3E8Uj5aJW9kcX1abCprXmJVQnJ3d0xaZEU4V0x2e3lGLGM3TzhCd2B8QXc/ZVk3N2NSXnEmezAj'@; put 'aTtSZF1gWElKZS8wcHM7NHVNV0M8Kz5adCEoKUhEOHhRZTR8NHs6bFd2KyZlQSJEOmxXL0pHUXR6OkdoY1V9NkI9TXY7P25mM3JdPm0xRTlabiFYTX5MWUd9fDolMCVHPTUkQWx0ciZoNnRQX1p8ciRZUz9IcUBreSVNOmJ7Vz5SQzFaTEA1YUZGR09qcDd8bGF0SEVbRyVOTSg7eGdrbTdncnFD'@; put 'WzhjKz5bRmU6VHxdI2w+VXM3IztrSFc6bWs/O0MqQjdOXUUlXyFKa0RJT1oodXtUWHRPJndXcW1kalJ7IlBGTCNbVHwyUDtCY3EyX19kMEYvZ3IzRmF9Kj9pU1N1TUV1Y2FBcyVNR0g+YW5kNWhdRVdJSn18NjtUSUZOX1ZfWEl2SHpnSHozZSxQeFBgdjlTKmY7UFd1eG5zKXwpPnhVP1hoezFt'@; put 'fW18Nlo6eSFQciYsRlMjMjhkbDZFMXhoalt8PkcjTjxSR11KUkJ+YSs2RXoqZ1J0SWxASzMraj1rQzU3SVRFZWFsQG9BO3Nad3IwdGckI0BJOkc7OmZWJCwlKGVMJSNUcz1uXkglcDxVdEw2OlJqPUpPRztQZzt8SDlsVVBUJixLbGlEUmoxIU5Qalo/dEFlfTNoW2c4blhEOVpBfj5SbWc0eHde'@; put 'YEp4ZFpgVytDakN+PzVxTHx2Z2daUVY3Iz5SaF0pd0dIX1thRlpSbz5tTV0qdGY8dj97QHp7YVVdaWMqVSxiUDE7VkoyME4rMV9mI2VtVik6fmMpYm98MG1EaytxRUIkcDYkJHVNPnpnUHBANXM9cClMV3lzKFVAZWw/c2RrZ0VVKWpuYVEmYG5nTzJSP3o7KSIhTiJ1M0MjYWQ+WXAzcWk4SXNl'@; put 'akt7LEpvbE4haF5sPCh1QTYlPn5mWF1fTntCZmk5SnRxTzc7MzZLTipBZTtBRlFBOlYwU2RbTG51IiVGWzxud2FqOCZwPCh5Qk9oOU1xREA2LnAlQm5IZ1hyYHhkclJkWiRXS2c9cEB0MzU+PCkvdUpBdFJIP1pOJExjVSNrKm5rTnVXMHJrMUNXPnRRfnBIXmw/TVZKUyJdTUMqaSU8P2Q2U0BR'@; put 'Nm0qXT5POXtRciV7WTVYWVIpTC5lLkZCOi5CWyUwc0M3ZFNVOlN2VGpfPH5QPzJBPilrTXllWW1XUGoieihYMiEuPENRX0FjNWpLQyRbUzx5b3VyLHdUbntRNyg7SFV0fXkvfSNyS29iQVhhVntPNCVgY3IuWlNpdyxlb2wwMFNaTzF4RnEse2c2VWVyUkpSdzVQOjdfZFdaSFEiJnJMaHshYkV8'@; put 'ZT59KzR0IWBYcXA4PE1KSCpNM0gyODlBMUcwIW5fa2YoamtFUCtFYksjZThmRkZ3fXMmUChKSzZgfDxDVTs6WVpFNlNbfEQpd2UhP3BoXT9raHExUmlVfDhUL2U0c2JAfml+P2s8WERIcSEmSyZmJEBuUFBQczN9fGlNUStTdExfYkcmZ1ssJVRJOndZTHI+bT4sZFNvVls5P3huNDN2MDFuRTpq'@; put 'M3FPeEU3JTpNWHB8I281NyFrfWE3bE9KMzs2RDthentDJiZYe01TY1ojVDhzKkREOTgmLyxEWWhnbH5LJThlRmc/fmhPelF+ZUUwcT46QW8lNHZjQE5xITl6MEd2XiRMfFo7aXt9WnxDKENrV1RYLGEjS0ZuKlkwYihmYylLfkgycVFIS3UlRGM5a0RPYSVzVnJEJTcxJWhRXmZWNFhZdDNoaW0x'@; put 'VCYycUM0KyVkSiQoalFHcFZXdnRLQz5YbEZHPFJPR19Ac0sjQU1YPzB0a1VQL0t6Ozs8X2tSMUE4TGNOd14hZFtGNXR0elN2aEM4S2xJWl1tKSZVLnZlS0FAMEZ0dGRzIk9eJWokcUxwdikzTSUze1REVnMpMjkmRD9UcXImd2dbMjV+I2w2MFpRRC5HQW9ReFcyRzEpOiV1NmwseXFoKXNpOUZI'@; put 'TjM5fnw6cGUuVnA3eXBjXUNAUnhzTXZRL2BqdzNbWV09VWMjYEE1KS87IjReRyM1PU45MXtMN1QrR0tfRz1WZmF+aTFLNDZsblMibi5vIUcoUCxUUnUiR2xaKj1OLEtYayJiLjE+b3VOJHw5THo4NiU9cD8lKSpodCp2PzJXeVdyaC5HS3ZRYj4+KmJ8cXxePWVvOCUsTkJKa0l8aCRGTlAoRHRT'@; put 'PD5xcFp9I009RlpjbCNuOVlmNH4/Y2xiaUttZ0AhTC9xW3t5MnU5fEdeU1pHbz1KYFIvKnZ2OEpYc29WPlo+b18zQng6ZUdTNzh+TzVBcVJ2cXheJnNfUTBgJGwvTzIqa2lQNjsiLGdfTWEzQCpSITshTD18cjlIOyZ6ciswamNrSTReeiJQX3h0KWNxQkZQKSNmVyhPVUovXWZzT2tNPzJPO21K'@; put 'JFdrWGNyZ2pHaDt0TmFLO2xSTCt6Rj8pJSZuQy5tSF5mQ1IuWTNMYUF2TWV6QHpMYGJzfWZqRnA9Q0h5anl1cDV2X3QrfTgiYHR8d3k5dDZCY0pKcUs8KWl3XkJ6R2syNW9bRXdafShGNENXMCE9X1JOL1Fwbz1oY3dEWXc6OTFHO1pzJGBjTzFmOGNnIVtfMkc9W05KTCQpV0EuN3h4Jl4vQCxe'@; put 'OSklNENSZUgqVj8wWy41UUkmPFM4IWB3VFdzQ3ssNFZZenJkS2lhMVNvflcxO3l8dnsyZHNWeH1tVTV9ajw4MkRhZldlVEB6aFN8I3xIaGA/IyMrWDNlWEUwQHtXaT1xYHtPYmRYPHQoSSsrVlFHa0FwbGZkcl8hSjsjK3RPdUU0QFghYF1HMjB4ckYhZEZwWz5wTWNATUU0X1QkVmdjVkhIV1V9'@; put 'PiR5Zm5EX1leMzRwTDsiInpqTHV8I0ZPU1FJTCtWQmcvNCp4SCloZmJzcXFuOXhQYVs3QnFpS01PZiJ7KWEjYWk4IjIxS3k0ZF9TWkorX3xQKylNKn5AJmtiVHRVKyVvODw2cztfZj5VViJlcnU+dHZrZT14dzRhOj50dT5KTU5CLDRoMHQsXz08SHc4NWVgPSt4Kj5oe0QmM2Y7JXplWUgye3ZI'@; put 'LzAxRkd8KVRKaX5gOTxXQiY1T3Yrez5WK3dtajxXbHArdylDSXBgfX1RWShIQCg3MVVsP1lSQSomJiowLmFZeX5wNEsudE9TdEQkWStzY19RXlRJOUx8PHcscEZTQUR8ZTUkSWYrbGJ3M0BzPlo0N2JjKHhGPkZoTX0pbX4yVSZgL318dEApWDU7LmpvNHJaZjU+e2s7YWRkQ1s5bypLaDh1YC54'@; put 'NmQ3WDRZdVhpVSVoLyVJSW40PHQrSy9FK34xeEtmZERldmMwdjNeRV48ezhIeDI6bDxoKEpDO2R7TElrfiVraHM6P2t5RDcqeEBIV2hBalEhYHBTZz97cj1AVztKTjxFN3BbeGxuQy5Gb0AsKXAxXygubTVQTkVEI0hPd1IuQ0s9RVt6YG5ALzZtIlpWbERJajZuVHlGOCR0dnJ5Vko3a1c3MXtO'@; put 'ekRgLnlwR0ZAfGRVfDBBbkx+P192SDp8SDtHYTlCd3B4cHlbPj1PL31pWCNONzlfQEFuV11FVDJdPH1CMU5JU0NadSVhMzYoZ2pxd0hiSlMpeWhDYVtodSssfTlfVi9eU3h9d24wM3d0Vl5uNWJ7ez9WVVNbYlQkfS83eCppYW9xeDt9K3VOYVlddHJrUl8sKW84O3o1czw4d1hRRDNANDVSWWZI'@; put 'ZWpjWWhNa0VnY0NXZFk3MnM9VkQjVyk1S0x4OWxseTd1bjh7UCtec2BwdXY/V2QrTl5RKDpkQTdKPCRTUUhkZlFGYDZYdiVhVGVBTkA/WHY+enAiLkJNL2t8KFlwLGpEP1hzYk1kUUhkV0AyTTNYa0AxPkI7NEA5bTYke0Y+KzcrVytwUC4rQE9sdnMlYTZ0cWtZIWhEPjRzajJwXkBvYSwlVXVB'@; put 'OUZuOndARUFJR0ovPyRLXmxBVkdMTFJIcDtedit5Mj4oJj5uXlc8QCZ3R2tXKE1xdVc+fVM6ZER7bHhfIm5pYDwvIk1kTz0ubDZaaHJVclJaMklifGUuKnouc29IIXRkRjorLnoyOjBCYmNIXUheWXdiRS5lKjB4ZV1DXj9QPGpJM0x2PXM0PiVgKHJCU30yIlRUJUpreV1xfilYTDppOSx4S0t0'@; put 'JlFGaFFWdFU3KFR8dig5YFVzQm9yR0VwN29bWForQXhQcGpjNjU0KF9KNT5hbjlSb21WQ1coVzBuU3UqUDFeTU1ufXRWa14uTWdjNV82N21Wc2RTMjxAV3V0Xn5pJkB1UT1RR01ILixYaH5gUXt2I2FYNnFJMC5eV3prOGYjNy99WXFAWVo3czIqa3c/eTl5Tl5WPSkwQ1ByQ1RRW3NgR3B2KGF2'@; put 'PE1tdHEuRFQ+OSZjb3VuM1V9cUhYYXtQZGdAZFcjSTVMIXtqdThfLDEodGh4OFRoN2hpMC5qSkdzLCF5ZjZfVlFbLFY+ZiR6bl8pPn4wXiZzWE5aS253OzhhdGYqbWJ4VldzWnt8KmhGVTMwYFlIQmFWeyxIInJpP29Ca2RmPyR8QUdFNkJtMCEsUyZHbEVERmxkeTohSWJxZj9AXiZ0JVoqXTo1'@; put 'PlpidWJWWDlxX0d1eiEmcSF0YGJSdE5SKDA+IWdxQiZOSVUueWUlXWFzQ345K0o+Kl48bCo3PEN4d188VnRxOVY3SGV0RCQyYncrRWxKWUdHJGczZiQ0ZktbZ3thUmY2eSs2cjheKHx6YXExNTUueHQvbTw5VStNdShVWmJVcjFEan4+T09TLyZCYmtmNz5BSSpHM0VgeV0qOm5rVzxsUFJUe3NA'@; put 'VyElIn09U2whR3h7STZrc0JMd3lffjJDRSN0d2xyKkRNTHUyVGhRIV1UMW1aX3BxTUNZUGBGT0VbeSl1STF8d3RlKygvUWtzOkpfaltxWVphMnVKVzM5dzdofml0eFlUQ01HTlBkWHNzQkRkQzh3L1kkLENwQnI/RG5OUUpCfHsuWWhbPlN9MXRBUT5uQmBEUT5dPWs8ZmtLQ2NWcixnZjJxP0Fh'@; put 'cHBBW2Q3b0tsTE1nbUBJPnZlczJhSWkkNjFqWVBkYjFeP2c2MUt6REBTbWpuOkBocEtoTyRfNWMwTlFlOEUkWCRkbThySF5vbDBKSj9SVU1+Tn11QzdCR1pSIytkaHpWJE9sYUI+XiN6MnprSEdkQ0gyNkJzWXR0Tmc7dDFnI35iNEhVU0ZTNl4wXm4qVm8jIWQpKW0lZGc+UTlISS5IdkIpV3ha'@; put 'KGcoQ1NxeHU9e1MzNFgjPSFxQ3p0WCU3MTZjYExZbT9xV199S0k+JS9RO1ttMlU/bnQsM20rUDhlfmpsTzJLbEhYfihYZGlkRyptJjgyLGs2ejgqSnVqRylwTEZeeWA9bl9tQ3xrMmpwfixNLiY6PndyKygpdll9REc9MyV9RF96enNaeC5bNE01OE41VXBjMWtSNGV5Rz89ZHMremNpbnUmfU47'@; put 'R1c6QVhERUorQnQ5WF89SDBZb1o7cDhgcCNaTUFrOEY8fSVRQCh3NShIWmc6OnUmVjs5PkEhYEh3VFkzMTV8ITAjSyZSMH4re1RsP2hfYiNfQnFycyJwa0FUVGJ4dFJDX3FXaHppMCg0WVNNR2pHcnUyOm1WT3RyRT9+bHZqN0kqT0cuQ0JXPmhhVUp9WDtJa0k/cVZSfTojN242alFzSWlXZVI7'@; put 'WGhNPU5zbEN7W01HQCs5XUhxQ350bHd+e2IsK2JjKl9IdVNHeEBMXjFLNnQvOWZIVWVGOUkmX0xMenJrUVdQPl8idHx5RV15Z0ZpfWN4QHtsImpBT1pRVWZVJS9xQyF9Oz9wdH5dQiE6Ok8hKDNAWV1mI0lxel8zLD06NkNvVUQ+IzdjUDIye3w6OXI5NHJqKUNmX1FgOl4jdEk6ez91MXc7d1lQ'@; put 'I3AhKjNKPUNtXmtGPFNveGZCZ2J8IVopPWB5JmY5Yn1DUXJMcVFYT2pUYDN8eSxHWXJKLFBnfXhicUdJR0h8KTpkMHFrWmAjd2IrVHFFREZFfnxoRURhNngjT2p5ZylVYiE7VmByX200d3ZFdy9dakZReGVhSmpsbHkyUkB4Yj9Yaj87a1UzajFxRVI4JkNBYWZBTE1ufnU1MkREQURfYm1pYmor'@; put 'V1J4Q1VySV9tMy5yPS5nNXljI3VUX1J5KHxhPF9gOXsmJkkpfkl5LzlfOy42cmFhO0sqRmtRRTZFI2BNOWQ1KXl1NCpoVV49ZF5sQzVaa21IZTVFVUJ7OXMheyFzZHlifnFCcisxeTQvKFp4cSFrJlhpJj9+WCtpQWdpfWlxTDYrT3suezs/R2cqdXdgX0hAMEc6VHliMURpQnFaOXlVSkh0fF4s'@; put 'YmcySm1RJU9BVFVQdGdfbl1ZU0sqdnVhQG9TQkA/NzRsXlU3RmF8MSJ7Ojo4YHhUO2dAOHxGWkY4KT5uTFtCQnRFYipUZ2l3bF9GNy9gfXhnLEg4PTM2SlJleSNbKzhAOll9d21ASFViO3I/KFNMM04mcFoiSih0UGY5Z0xNXyF8Xmw+LmFkSkEkbUlMWGBCUHdMSFIvRWVBcHooT0FoS1t4TVlx'@; put 'ZFM9YGJ+RT53cTE8SDptPVgveWNxLj5wfGJudGd2XUo7aUZrY15Fa2wzNG5wbFhua24wfEs8d0plbTYse1U6UDgwfmZne2ZaITFpXkNmPk1kKjsiKXtMeEQoYSkkRXxdWk89d0V5O1RkU2B2bmxjPjFsZmptTVo0fmp5Kzc4JiVGfDBVdktCQUBXZ3lgJkdIWmtqVGwkIU4hcmlyb0x0Rm9yWFp0'@; put 'KV16ZEJNUTpCVypiKllVJEBDUlZ8VmsmRCxIYE86KFMjZEkvWk5vfFZEc18iby57VjEzblRjdWVYP0BNJTwsRiJkQzlGUndAUSVQWiwwYi9mbWIscmo/K2BwVCljPEdmO19HNn4/cEhtUnZwRmciZFtBbU1PVDBTciJXeHhPdkRfW3ElMzA+T25qZ29oY0Beb3soTSNXTVhXZntFYTdBWmlCeERk'@; put 'QiVURnJFNCljNXVFKyIxfEAjY19ZcDQwcDw6ODRuV0hyb0pQQX5uSGo9Sz1KRC9UPThrZWguWUdddSZhdE5pWH1lZnlLRyF3RjJ2O055JF1aJnU1bV1HalIlVWpSS2R2T1cqRCJeaHRnZ0tgYWcoSDxuWm5AYzJCc3M7P1c7enpsKTpvQk5YcCxQcF4sKV04RnR5RyMqbE88b0JxWyIod1duKSgx'@; put 'aXUvMlA2fit0ZSVIc0EmITQwOGpEaHpVRHtMZHtGU3MqWTVCOz5OZ2M+TiMoYm4zMFlKM3x6KTo8JSxYfFZOLHNVfFVxfTVoQFBUVSwjYD1TTi9IJnM/ZXZUcDVxd3RPTVJdPWtyIzosV1oyKUNFJGk3ZjMzRDQseyIvZE86YjM3ajdfWWJ4Qm1qOEtWTzFjXyQkanB3dE8pIixpOzI1SyMsQEdB'@; put 'ZFo/VyxwZl5Ibjp9ZFFjMmdjTGtFP3hiW00mSiEzJWFwS2EkTDoremY0UkhNVG8qZFpETF8xSH1YdENAIVp0Z2AmPEA/fk1EMmc1I1BzLEhyMy5kVWtYM3VePUIxNjl9YisiamlZRDYuLmJGOEd2Jn0mdS5mNmhkdXEjdndfeWpyYiVlPSRWMTZdNUc9SmZqTWhleytOSXR3c2p8VkBPRlFnVVR2'@; put 'NVpvMCpaZ2RAXk9lT019djYsQl97d09adzgsemAmcGVdKzY1SlkzYStpTzRDRyZ+NDNnSVZ8JXVzaVRRREBAcSI5KEhra0hHZTAjazolOS4oPXR3SF1DTWJpPC9GPW9pJVB0WTMyU0owL11NUitaRWQ/TU9IeHBRSmpUakg+ZGxwWSx2LnwjLzI+ZlQ9JXJpRm0kMnV8XUl5V1VsKSNjaTs4OEs+'@; put 'MGUpdiVTKXVhdFF7SC94OzR7IXRJM0ltQigqTjhmUSo2LG19bkVVeXx1fmh1NEZxdWxSQCYxKz8zeXkpPiZyTS95clRfLCZnSWxdSEBRIiZee2klMXNGWT5MYygufXl0dXJmXlpne3pxSztsc3F9TWlFTHByUVdrPklgSF9AdXJXWXsufXI+InN7cyNJLEhyRTFQR19bdkMwV0kkPE80KVE0REpe'@; put 'eU5jLDcjTFlLPyoyb1FMJjR6NyVMSVJ+eVRRaXw9P15kczg8PEp8cDg4SV9SWmw2Lk9YeVF1QVBKaUdReksqKmBsfS5NfSJnJVBOXXBKLmJvMG0kUzVmQHNKY0cjWiVaelJZOk0yLDpjWTkrY2k6SyhGPT9oeDxMW3Z8IT80Q09iR3ElJSs0Q1F2PXMlellpIzxuJEsqYTU1bUo1dS5vOnRUOmR2'@; put 'bGlRdURZeHUual46TSJxcTdwOVNOcXZ0WnI3WzBUIS50SVNgTGYjOFFzS2E3b3A1TUtkcFlCKEFsJlArJEphflRYMyJvfWk3MSQpYGN2XU1oRXoiVUxaRFo9amtHaytXWjZZIWkwdE8rZjxrXjR0MTNkYWU8ODM9JFtWZl49JmIjJXkrMFteNCRCdTBKaHZRY05bYmkzLF5yYCV2cntiTSo9Wmdj'@; put 'VmZ8ME5DfjssV0lAUCtBYmpMNDxNODsqQjRONkVgcWpweHRiWyEsam9Fe0kwLkdVUzg9OVc8ZmkyZ2BRMEpLNk1dMnQ/VmRSd0tNV2NRL2RlJFhTLmlxZDp0WmspOktkQ05UJiteSU9qX3M2cUJFPyxWWGNEa2IkKkZJSDxhdkpPeDExUXM+ckkwNVlwOlVlMXtMaTNYOXgkfEhUVlNRcHtUSHRn'@; put 'd0NZJGgyUikzJjJ2JV53QF5wQk1xWnlRUWpGa3N9PGl5c1Yya0xqRmohVjBRPUNPVCUuZk1+ZnUubjNTbH1UVjZVPG1tcD5zZmdrIlZtISNxQyEyJXssOi5uUk1haWtzZkVHKlI4KDpIV0Y+dz5uTD5PJm5fOU51S0ZWJkY9Tj1OQjpYeklGTXE1NC53Qk9wc1JENlBPRTkvdEBrZn1nMFV3XiZf'@; put 'KC5Ba0IjeUd7ZGoycF0vRlZYMzYrRnx8ayNpITVWPXpVXiMjfXA+X2ArTEVxfWxyTzhxPzo0a2crPWV+PE88VTQ1LDR0b2A1MGo5cUk8Q2B+V3J6alVpYGtJPSsuRllzPVBtN31aVWx5bH5qMm9OYU9SRWMlalgzL2B9ZiRXLC5eP0JCV1NhTVkld3ppT110PEYyZEMrPFtyYnNLRj5PekIuXXEu'@; put 'cWY/JDQ1Ri9hR21ma088VW1iJGElSGM3fD5jRTB+Z1UpLzljTVphWVtNLChAe34pLFglb29pOVciOEt9QjEzVE9YKT49T2kuX1FCP1gqalh2K2FwP3s/fHY0Q0JZYHMrL0gmVlZ2RFJxciVnLjAsJVA2Kz9HU3NyVjFsP21iQ0RxKG9VMjlKPihEdk1CLnJ9YDU4V2lWIiwlbGV6SEx8JXZAblJX'@; put 'Pj9pQlgpfkY7TE1wPiZbW2xiZ0RHZzFtM018enIrXyxlYyMqJElMaUw7b09ua0NEJD9JIns0Zy9nZ0k0eEYhdHgiIWh1cEJfK1ZDbF9xMCNTQU1dUnxwMmZNIXlKdF1nPH0qR2spWFE8RWYuU1owJX1wNVdmaSxPQFoheHthWDBEZF5WY0d1PlJXMXIpUjlOWEVxdnkwVVB6KmMoJipkeXtfME10'@; put 'YkBfZTorWHU5aWJOJTpCV1ZKSFtSXWE8Uk9OWmBiYUJWaXlELCpTJkQoZWJTYHJySy5Zb346aldNfHJWbXFCLC5MaTlvXU07SSpQMEZURHsjbDlaPD9PcjIjbGJsezM/dH1uYHZifkdCMS59ZHdkdDNFfHYyP2QpbWtAX0dLZ2k/MG1iJCUpUHp1T3F1Xm5pMDpWXUx+S11DOmIyWlFVOjBxTFhW'@; put 'N2BMQ2J5OEZlTFZjI0ZtNEddUWs8cG4oUlRueXFSSkx1QngyTGZGMW8sUnpBYT4wbyxAZ1VxXytGSEMqYHpzdXQlV3Z+TTExNkJjbV49bUN5RV5WVVhGeEhXZmxAb1debSU6eU9TdEMrNSUqfFQ5Wi9GM1IrfDkhInZuZixkL0ZiUzM2bGYrWDRzdUt9bmtZfCQ7XjR3QyZxVzsmfnRdOFFJe3pC'@; put 'ZXI/Wj96W2F4T3w6R3VeN1spIUlISStxdlF2XyRJZSshXVk5dE0yNTRPfDFjI0ozWCk2YzA9S2xwXWYieCRUK3VhVChqMypYOllJe3VKPzlEZ2VPLEY0bCFfJlhVJDRNIWw9dWM+Y3J2X1ZyVG5nMn1Wdi5qMCxaJldtWmBLU3c8NjMybisqXyRhelZCMX1sVEwsSDZVVWpYU2EzMSZUTkZsNipJ'@; put 'VEpjPm9FJF4pWUl8Uz8lKFo8S3FgP3hrZW9SNEtlPlB9bjcjWjF0fCp9aihCQH19TXI6PS9VJChuJmROPj5xc1lbaDZFOmk3VCU3UVRzUCs1OSV8IzpiaFdJIX0uNV03MEkoI3xVYSg6S3p1I0BwM0pqNXkiRVc+MWdKam4uY0ZJVFtbNk4sPUA/dGQ8U0g3aU0iSm9EOj92WmNZI0JyKzxAMzdU'@; put 'JW1deWJgOjFRTno7TDhgfS83YTptPT8+PDEsQ0N4dlBdaTFEMTtZdyxEVWxPYTF2WWsjWypUUFVQYEAxN1YlXU96YiFmQyFHa1tib2A8KldTK0Q3a2Q5NG1AQCJfaDdMWGxvMDQmcVdWOGsyQ1tQVjxsL0g7U1lMXjZsKHZUNnRmSXFXM3h+Qm1tSDtaSVBgN1F1WGRRTiZbeWRyMUZxX2pRUXZH'@; put 'P2gvSHJaejIzR3twZTA0b2ZOKHRbNFVVaFYzLDEjfHIweDlOZkRScGNHdT49dUZgTnhwP3J0OURLJCJXJj1AKDl0fVNVWCYmSllndU9Tby9GV3pqQks2PXJNNEk+ci9SQ1VxZFBNRjA0b10weWl1b0syTz9iUDZ8fmIpdW9acDQ8azZCSHdFKnkpW287MG1SKylVMH0+PUhleElLND9xS3ImdDkl'@; put 'QEV+PDNuZjoibF5AQE5OdTlhJWxWPkJpJVkyRUhjTmw9cU14Zk8+VjUjb15QRmdXKiM1dCNSVV4/XixfRSVrOmZPNU98R1NsWUBePW59UUBbPCRrayxfOF8hcEY7PVBUWkU0ZGFjUSlDR3dOeCtWPzs+PiEqbz4xMmo8VCliTCYwKElSaXxSMmRtZ01FOEQ+MTE3ek86U09mZTZIRlk7QWMhfH02'@; put 'YGVvbkpJSjtEZFNKejhbNFBrM2lTPVpfRnZrNFRiSyVZI3Q3M14/MEZOdWZze3VGLEVfZ1NhOEc8KEMlaFs5WWhjfjksPXd+cklXQ3BtVj1lKGE/bWdDMFFvViJlRDM0bW1lNHVUTn1wX050bT10T18oSCZdLEA0flkmdTV0bl81QSlDeTV5eDc4IyxkQiQ4Ny8rbG4lIlcmPXRlRTU1bTtSZzhe'@; put 'Q3NZTSlsVEwsSVBGO0hkaWs9NlchdkQlSUB3T2d0REl2eSIkZnhTYzRqR3hvR2N0VWVTUiVbW1hoMERyc049Ym9MQHhnXX1LWy5hRnh4ZyMqVEFpV1t1amElVm9Qbzd8LklOUklwNHNydT5UY3hTL0tVLlVWZGNtTX4uTkUiTjQ8JU02TVtITm47Pj5jOUdyRll6RXNfdil6QHlYejloTUdWRVh6'@; put 'QW9aYDBZSTAoVkN7Oz5Lb2U0KV1xY1p6V3t5ZEheSSpBKjxPQSR2YUtFRXNuK1pAeyxBcjpgQzV+TklJfnIsaXQxPGArL2VVNiY5O1dJXShtJkhGPzZsdSsvZVV3PEAwTzFJR35yP0g/Yi5VeFptQiwpQkQhWyQrb1RQc2U8YCk3eXFWQUluJW56UmtDYyFLPGFaSH1uajMyZnlZfmhSSVh5OWFC'@; put 'OkMlcDZQV2c3b0lpaypZcSVAcHkiX04qQltLaiZrV2tIanxUaDhXUGh4WDZueSpdcHdIMGN9VUc0Tzo4QHtvdWZaSH5VQlg1ODpjW19CI216cGNYbmRyQXN8KFV+U0QzaklPcVhJJCVdLk9BMzE1RH1aIVhGRG1MKHxAQVYpLGlTfEROdkJPa0tHPCVWW0R8X2Fjaj1JMjdXW3JBaUVnODRATCNL'@; put 'fCYsNUV2N2JGVW5oVng1dj05UCU1KDRsaXBVZyJlZS8wekZDPTk7PjYoWXR7ditsXTlVJS90fHgvdC83aEJAVz1GPHl4Tj96eXVydCxxZEdHUW54c01tMnx3YSFOaFFjcktbRCRmNUIhQTB3PEFydGB2el9IS0NCJjk1Wk8+fGEzemEmW2YuIzZHXk5PVyFzQXYzMzR9PExMRVNWfGVvZWNWdGNA'@; put 'Xm1fXWYuIzBAUiw9QWNvWXQ+anJyMCh+I3w7MUczTEg5TmlzSmVNJVtKdn54dzhlWEgxTTxgbWFEe0dCPU8wJStVVU0/MTBTREopfGFBJCVGaCgjeGw0c2kjdV92YUN2WEtNfWF0Qjw+Z1V6TlBjTjNJRUxDMGA8PiIoUTBCSChJQTMxNTlTfk1DZEgvUjBIeGtTdSoqalpsN0VORkJWbDQkKFVs'@; put 'K3VHPk9CaUJZQ0BFNEBEWGV0LCkrdW8uSHUhQTVHUWNrdGNLP0tNcWFdKVtyL00hSTc3KEplYXNnLGtXZGE3V0tCa11xYyJiQ3R9eWVxamEkKUVtQFlTI0NkUyN1SmE3M1p8U2A/NU9OLGZKfl9FZjRlNWVsKXNRRnNJe31fcUJOV0lLRVd8KCZxNlBPan5sTiJ2LGxQdlMsd3FpWlRqaVRsby4y'@; put 'Ny8pV3l3e1R4fGZ5K0w6SzkpWFRxRSopXVMhLjsoLGlmbX1sYFExQnpbTEcienlufCUjVmtsXS49VlF2d25RezRTOz5lVzEuMillNjtBQ25dYWlTWz5ZV0o9S0FTJjBWN1NSK3I9cig7WzdZP3hCekpbS3UzOChpNm0+cjYlMn5rOktOKStLR0JzMS5kVzVNUlMlfjFFdmpdKlNIZkt9elk7ITxN'@; put 'U2tKYFpkLDA0SF8veCpxYVVXaG09RnNEUit4V2JBKSR9VjZdLlB4fiNNKUo8JDcpUXFOanN4SklJJT1bQVd+dSpIalNqNCJ7ISVhR0hUWDxIaTJJM2ciJTpvaFlkbyRQPGN6UTZaenIzdFY1b3Bva2UxTzp9d3lXcFElNls3ZmkpPzZTXTckZWY+OVlsejYsPGtZPEMoOEJZW1IrdDskYXxQeGs2'@; put 'OVB2dDd4aEFWTSNwIUJ6fiQ5KndZX0lBMnxfO3hOV2w8TjpibUk4ci98ViJwIl91TDpkODxefD8oN3tbV1MkRCx1JFduOyUrbF8/WG5qJF42ZWsmM2dAY2lzbSo2YWxPQDksdiRSJHVKcSNTPVpkR2NnSStqTDxjS3BZfFZYNW5QeF59P1FuOStwM0Y5TSxtTU5fO31DR1kxVDIjLkZHJjIrYGkq'@; put 'TGNWbEA8Vkw+NiV3eWZOeVg6eGBnMmZGNDI4cUt0aDFnU0tQUTEiNTskNC96enxyJU5TIyklfFFucCsvWylHaCR2ci9gcVJGMFN4X2ZpenJTbjdrbGkhcnhzJlFCJDtUI2xFUGFhOilzK3BiczhJYXdER2JQMUdsQTdBRSx3cFo/I0lZVDJwWllbSFEkPWRYR1VrbHMscGFSVXpEKVkrZk06Ii4+'@; put 'ZiJrfDh4fCl3SlA8Oj4kfGhyLzIicFJuYXooaFEpcmlZSlNnZ3xxNjtkOGRbaHhHIVBHZDx3KldTb2o2U0F8fHtvbHt0WFt4eWlFMWslSyhBKkFpSEdPIkp1RXdYNHhOR3I/RnRgd2VESEx8T3wzaXdjPzpsOFc5ISQ8diohUyllK3N+LmtxamledHFkUlUxaVgxKHA5aH5feSNFLjx2SV5gJUtX'@; put 'UG89Vm9pWFJ0Pi9hMSo0Q3hlK3NndihHUH1SJXk3XkBje3BRcVI6UzhQSE1JfDJHUVUlYWBOJjpUOkUvT2ZwN2kob1UuXVg7OGM8cE9SNTE3LG1gL19EPWR3TDM8fGZETiR2OH4ufGhOczhgK3B3Q1ZOaW9KM3RfKGlLZlVOK2l+ISJlWnA1bDxpMlB4ODgjSTVRbkRMVGIsLDRiaWVeRUZGaHFG'@; put 'VnFjUSNHYElgWVE9aCRLXmFOcWN7dGxkM0w2QjsyKywzZmwuTjJvRH0zTXJddEp2djxMM1NoUGxKO1Quc1g7WDt9b1g4fmV1UEAuc1VVVSp0LEN6YkNEcjFmTWJgVVAmJEtyclQmJFU9XTx6Kk1TOCw8Ymtibm5tVDxnOCRZPCRCV3lKPFtmTyRyeiJnQkxVLlBQKFspT35ZSyVUX2xQYm5XcD8r'@; put 'Pm5jayF4KHR9blcvflE9Ymw1LnJDPkZYbD5AWChyV3k4MnR5aFFvYGMmKiFtcSEiRXY4InEueyZ5NEgyJUFrSC4sO0JzblchfXxCUjgjMCYsQFpgJmVXRj85UHk4RTZtOyRefEhyLnFTbkdPW0NfJmk9R3hsN28lMlVTN2wjezoueF0se3VsKUxKW1dmeV0qY3QwbSpzVHJpV3NsTDd5bXRxUS85'@; put 'UCw8djokbW80WWY2ay86Ni5lQkdfTVlPVFk4a3kkK2FyT154KjdKNGtpO0MlZmF1akVhMHhDV1tpem55PUQvI19yanpaIyxWLHJHRVJmLE1qUmdlYix8PDBpaEFPU2Z6RUI3QWUiXl82L2ZqMnEsTEtGW3xnQ0A5fFdVSC5UVG1IP08rZHg3YT5teCEra3xMdmlodEUsaWc9eEhPRjxLNVRTY299'@; put 'PDImKnVZREE0IV9ofnEwVVhVeHE2WC9DfFtIT1hMOVdBe097Mm9IYFp2UWhaTEM0K1JrRyVHVS5xZjNbO3l2fD1hTzZiW0loMTM0P19ub2lKU29TSHs5Q21nKmpRPzZOVTZYO3l7fVk3bmVmTk5gKnEsNyJDY2MmSzRINyZZTCw3JCY1SkklPixFZ1s+KTNsbkA1NXNmXjBYcVNgWXJPdEFbQCkk'@; put 'JCViT3NwYWE/elpmX0h+ZGVOV0NiQkhhc3F9QDZ8SE1Vck5qc1teZjVGYEB3VFU5MyQzfG5+VGFgZXVSNl4qMHJOK2VpflRea3lTKHJsfEt0RVF4K1glYHBSKWFgOkdkX08qOyZQdVYyKGZraEBicW5UY3c6WmBmc3ZVcUs2cWspUVNgNGprJShaUXdOMCFNX2s9SU9+KygoenR1WVIxNz4uOUxk'@; put 'QGkwdnkpJihhbWlMW0NJVzc7Ti9zVz1pVyZpPUVIPj1XbHV3QXVJZVdzREVOPklPeik4Uz17UWpZfi5iV35yU0hiUGNCbHwoPVozTSx4bmlXX1dsVVolfkBLN3trPj1pTWJCMyhrWVt8Nlh1aFVhdUV6cVdhTnh5c0Y1Mk1sS3sqKENtTi46KHtGaHc2c00uQWs2PWxHTkwuelF1fHIrOz5XWnk5'@; put 'WmNRTkxmR2xQN000TSFwO1NoQyImMEpyfTRAND5mSkw3ZXFqNEN8Myw8bztdP2N6MSVON0hicFkyTmQrNXQjezFGKkVVbXxOU0EzblFvRTdfS2xAa0pxfFZdVXdxW1ZvcEVFIl1TRkpWOCt6NWYkJnR3S24+RUdgQi80cmddW3BmITojMjlndSUsLzpxMVdTREVRJUMsam92MyxLbFMhVVQsVT00'@; put 'PTgiSy53QWk0V092djlkSjp7PTRVWG5HfFhSUVE/KDl4RW16SFFieGNNazg5a2FRfGgkZiRRcTwidzNnSUpdb3VgbXtsaDlNaT5DcS8lUVMiK30sbCZpUml1SyhRU2hwdWBuREMxZlp0TVp4P1dybiFCcj96e3tROSE/VU92VXVLUTdfYzRTbigmaC5aI3xCdGhhR2w1fHJibypjIWUzMUB7LCZm'@; put 'UlFDYV0mXj5fTlFBUGAodzVGdzt6bDY4MGVCVD92Qz1uLHdSWEB2JXRmPXZ2SXpxTClfcmRxS3hMSDZqaiZKQSZgeVR3aWk6N3BCfGRMXmZWdXAhV25QUyNsXTZiXU56IiU5JkZ+SyxnUTd1NUJSPWl2RUUpSjg7VVQsYUgqPUhhI3pNan1DMVZsb3VncHwhY2lVfDFzRkpRXSFza2ticG9FSSM1'@; put 'LH4yYTs3MV47Ji9MXXxhRjkwYURfY3Z7P09SfnRjfXI5aTxYOlM7M00uLjJWM0teK1goNTAqZWVoYVlZUylSOHRLe2RxeStELnsxQnRCYjRzUT5iW115R1BdfDF3QSk7XX1gQyZdaih2QmB3KTJbYml7NDNmISN0eipET01bLDwwbXtmaGhNQ0lnOElUM0BsIyUkIVUlPV58OWVZKyEpSU5wc2p5'@; put 'WEdPOl5+cjs2SDk6RVErOmI7JGExeUt6X0g2MjdwamhiIU5yU1ZXRGUxP0IvWG9BUG10ZiVPI3dPKDpzM3k3dTA1W0NyZmVbTUZyNVFET3ZrXzdMTno6eSVyNkp7Z2NyUjpTRj9qYjI9SWIyPV03OGBkMXlVeDhXcHwmJjJLZ3E7SDolIURYdXV7ZDt9Xn0xNUhnRC8kUUhMWVZhXnVdNDxMUHoz'@; put 'RCFoZSVrMGNIQF1VWXl7XmUuMFhqOC9INERoO1VnP3IsfClyckVYbzo/KXJaS1JdMEpacFNKdlFSMm99bjF7KilsOyhaI3lgYWJXWDphJXo1VmltOnMwInBSW14jPHBoPnhBMyhfanl8UVNMb3pGXkohd2kwI0hmZUlONylVYStrWkFaTClZWDdfWF83Q1MuSypTLyZQZHI6Sz4oL0Z8MSJiUHc7'@; put 'TDQud344WCksdXUrUjJaRylJNko1bVNRYmpJV3VlSV0/SDYxeH1yQVZeYU1hITIsQ3ZqYFltVFopUT06a3JiRjJTVzlTMnh+azx5M2J1R1gwRGQlenBdWTFdL2szRk0jNTlLO2w3dWldfmJGOG56RHpaUiVJaSMzWExTOEd+MGMvP1ByM05PLjpDJV8mSEFsYlJ2UVlwUjpTWm1MO0Bld3E4PER2'@; put 'dkA/RHosL3JkYT93dT17SUEzQkZ2YkFgJVo4aU5GfV99Tz9XS0AjIVVpWnR7IVlQelIiJSUxPVVqNV4xanovOiFfaShMPTAlWVBabXc9RXRyKjJEfjs/aD1Ub2p4TSF1QXlOL0szZ11XclArZ1kiJlkkbmBUPGkmdHImdXU+L2RNaW5kIzBzIjIhYEZ1KnlHVDopLGEwNEUhKlspaCp0QDpjaVB7'@; put 'WHpUW3QkeHp1WjA6KnMjVHJKcDpgLDBRVEtZUWNoJnpUPUJJTW1JJikyTnxIaj00cmxdQSFDPD5GfE0qLlV2SkhMTTpTYDB0bkQvNjA0Qzs4UzguO1dNOWZfVSYhWUdJTX0rT29mNT59diUoWWF0K2V3cUpoQUwrOTMsSWdUJmh4U3M9LnFfUyljVn16bl5lQW1XRFhyZ099UUk+QEFRIXJSYTNm'@; put 'cFAvIzQkQThpb11me2k1bCZnbEIuaW1SYmBOdFJjJCVqPXt6PEQrPE0mQzpCP209RUomfDs+JFFydllZWVkkTHElMU9fKDZuSj42blRRfFlfMXImOHxUQiokRUhrb203XUJhJE8pVCpCayVba2FIT1osJCJjQl9DKUZYL1FWeUZvZUJOQndefnwxTSpiVF12cH07JVt1fDheb0opZXw2azpsQCZv'@; put 'fSllM1I8eUF7dStVc29GZTEmIWk5ZDVPVTIwU3dwfV0wNE8qZzk2Uz0sJCFqVXMvXT8lRyZrXmk4b3dUXjUvc1h5cms0W1FUYi8jR1QycFJlaCo8SXtvN3M9YHohc2ddPHUlbSM9eVNkTChlenR6Z3ZfMkBePTVyPDJXNzEja1RGaypCaVE/Kl9GM2Usaj1BclkpYEN+ZVtORUk+eyUwSnZAalVz'@; put 'T3ouIysjMUNebkNuU1c0LyNUYFUucH08IzU7Kn1PWUgoPXA6LChibSp7Jl5SaEVWcUtxS1A2NURkOjJ0cHN4TkFhaThCfGpRcFQhUkZwdks1RCopJkJNVjN3NmNaMCE+T0hoMTVmdWt4b345SE4zVHlDcilZfDdINDBxSipGbzFFUUZIQWgxXzl2USo4MjExJF4yZmtRN3txQjZpRyZrS0xANlZk'@; put 'VF55KV5dclB3cj0lQ0QmX1E1QH0mTE1vSElQe3ByT2deRGtvMz0/PzhNYWpyTUBCZUdNbT89OE1hTThMTj4vaktKZVZ3TCtOXmFeIzhMTjhQOWtPOzAiJXQ3LF9DOmVnLGQsPGdeNiw5OUg7d21RO1gjRWh2U2I+PSVJaHAweEtZYGkpKSl9NHg6bVQsdylnaTwkcHk2Y0BxfGBCalpSNmM3JWAm'@; put 'PG1aQjhgQX47OCV8PC9XKGxYflcmXjgqOGFUUWpfYiI3QHJGJE41JUlQPT9uW3NVdGh0IkREOHFGdCpmaGZnRHImdmpjTHQiN2Yxen5bP25baTdQWXkkdTcqJGd5IXlAelliM2BwP3pDSjhGeypBW0FqLnpTflp0Z1k8UklCKD0jKlh7Q14xflpCfF1adDBjY0xDOEBsY11VLGo4aWsuK01oVElF'@; put 'L0xwMEhfRChOflRFWHwkb1JnSUYpfCRCSyw5cVFKWEdELHkkYms9YlBfZGhxJk4uQGJTfWd9fEsmQWR0PWd9ayR0Q1g/YWFfInRuKkV3dXF3TD80ZTBlL15nRTBAb2kjVkVfUmU6L1FFKl5nRTUqYkcreVl2bWA8KTFRWVZuYG9NKSM8eDg8cXl5LFU9Mzc9UH5BdFhicW5mZjRTcHteQXFKdWVj'@; put 'Nll4SXg+bU5eeXQxcFMoTylqSTYuKFIqOjZCPnBRekV9cFgpaCMyc05fbyVfbDskTHVTaVg3ZTtMRWJrSXgvOEI+YTE8Nk5pZVhnY1k3WTl4aX4vImEoXWt8fW9ILjxkbjJWayohJiUvK00+a0BJX1NjIyVxVDxvc3VQeWpQazE3dC9YNVJgQ2Irfm1AV0l2Yj90blM9dyliVzhXNDR0TFo8fGts'@; put 'WjpQR2Ajem9DMUI3b1czcUgodT5yWmJ8cnh3aCg+eHFzNyUifigsZUJYeE9kZy81OCJeXmlpVDdaRHpOYDFvJXRbL0tnVDlscT4/OCFHXy8yWjcrLEE3a0gwKkkyWUpRTiVXcXRJXlpwdyl8XW5wRDxeckM+byxMWHsuVyljZi5ARj4lPSwrU1puSCZzfUteOFNvUVgscG96QlpDUXpDJSlxaDxd'@; put 'cDQzODdbaVkxUWt4c0I9SEQ+Z2lvZX1wUFI8T2AjfHFyLF5uYkdKeCtWK0tnMTEycmtDXmpZV2AoTHkxe0Y/LypsXkBLan1dS3xVIXBpNzhMXXRSMSpjP2J+YTBta3AmeUNUc0BkXWVSPGcrZjRRSDtgbSVPSlFhTE1fRSQpXlZIT08oMmYvYH5BaD5iL3xuKmJua3hLT2JNeCY5dWIrUjV7IXhA'@; put 'UFZda3ZKbnIzRGQyKWMhbzxPfj0lZX1CMjkpSmxYbWRjPjYrSkZOX2AvWVJ8PU0hfC8sUUxMZEdqR2gsS3M/JUwvT006ZWhLT31DPkkyZ15XcCVrKjBtMy9Od0BLMzBELDRNVW9RPW1jXyZLbT1SP25ESUY2X1RESDgqVF0qMl8hNm8uYnBvLGpRc2Zedj1CX0l5bzk1bnRJNXdvejNXRC5tSnss'@; put 'Q19uZjhoSVZUWyZxPCo3OlR6QTo+Yns0dE1PWFUpfXxCJkV9KnMuaj18Ny9EQEApaF9VJXlVdlFANihiN3okZzVyeXpxeX0+bmw2NSNmaWZSbUF7Uy55cG16IltUeVc9JTMlWm1iKU5vOjoqTmt5NVVsUWw2K2AuaUVvcEZaKU57e0A4PzdRVWRNPX4jXkw8bnBsbW5KYyNsKkMjI3smWlljPypr'@; put 'dVgrP2NZT0woQU93TVQmQWthKiRnN0hULHJZd1todEBMVzshKHt5VF9ZRCh3YWZCd3pyMCYlSWdlfWFuYHM3K0cwU30mRSM7cShxX1ZwK1QrJVswaGpxI1tAQDAwOG8hIXlnVSN6eCxCV3lpTSwiPXFeTEJpOy9STk4vVT9mfn53THkmMyQze0t7d0Y/Zn5LcD9MNElKS3FJUDoiOGxrO0kqPUdg'@; put 'KGcyTyY2PS49UlojNURuTWp9WClRVjA5I2skNSomW0M4YHEqUEwmRGN4dS5WMUtLZm1rYFA8MS9TUl1VZDBzVGxSPyw6WSt1NUNKLiV6Li9JOlteRm56N2pURlJFdG1HP0RudnZMKHJBa2QoPUVFWDIrJGRkeEJPP2suQDEyPkleJTtJfCVSbzhmajhlfSYhS0dKPTlrXnNZd1l6dEtnNVQoP0xf'@; put 'JjZKa1FLKSJSQ218XmR6X25Oayl3USV2Q3BlfUNJRWRCKixTVU8jTnU9a1NvVXtgYWMzT2l2MWsoMW8mRkIlbSpKNEFlMD80M2Y/RzxPIkdSOEgyTUE8YENCYGEwNz9mOU03aUBNPGEiPUAhV05AZCRFb30mNUtDfHxRd0Z5S3QrRW90RG0wJkopcGZMMjcpeDgxRnsoTWs3TUNsTi4peG82I2Vh'@; put 'enZJW2tkUCpkdDIyeT9IXzBDREksNTxmUHU0SywpLlltaSwxOHxkRU8zdm95PzFxe3J2ZE4sVTw6LDhrRm1RbjZeeF09N2BQSiZzIjNUInpMKGsxajFmfUcmKUxyM3ZlYU9JTDBMMExGOmNUMklBbmJnZ1Uvak4zNDF8RFk7NC5vOT9CQiRbXmskREVOblp7e25JYGwsYCwwZmVJKHReNFNsO04l'@; put 'VyhdTE83dnZ+WGNvSzE/cFdWNGYuN0IyOU9YOyZET2EqZCpYJmIyUU8qV2AhXWsmNHBwejhWZUssP21TR1UjK3B0SXw7IVM8Ok1VOVAhRU8kTX1scXNmP25FJTRMaXpGNFtlOFFzS1M3bXZZI2hXK3RUQ0lEdTAiVCkkejFIZilfUF1iXSxkT3tVSFNOfjZbQypyJllLMHd2OiFsPSYxW0hKM11A'@; put 'fippYCwoWGZBfVs8TX0vbkA8V0RaY0w6NiZsRjwsNnsjcjVrfXtkYkhOQ2olUCxrYlF6JD4hUzZyWHN6RGQuQ1RiOkU4Ti9pTV17MWcpYjV8dXppTTRiWDxLdHNlelJ3MU1wdmt3LlQ7PEZIY1JjSktQZmshUEAxZF5mPjN4fV5BNmZtNDJCUVduJjhwLEBQPE4uW1dkIiwvIVVmP2I+UjpkOUx3'@; put 'PlNKNWE0LFl3LGRpY1YqfG8rZTpTSFdaZ3M1VGFpYFo+VV1vZmx0JS91czFQdyMxSHJ9XWt7Q01aa1dCWEJWcipNP053KnRWdUNxcy5lO3tbVjcqQ2hzOzR+XiZqO11keT1qU2YhX1MwKjdeZDIlX1k9NUFqPHEhLDAlP097LnpCeFAvX0lAQX1hdzBKWWMqVlIhKXdGY29YRnAmbDlVXkM/KFEl'@; put 'IU1DQ2hWdkZKSS5JWFc4VV4hI3MhRUk+V3g/JkpZKzFgJn5hSUhuRk8wKztmcnJiV19Qe3dhbiQ9cEJOQTYlMiNeaCovclp1ZH5oPVRhbisyU3tJSE1+VGdqfDc6MjxgYFlbMVFPcUkpYjJHd244eHQ2LFZeVzJxVjxZJiI7Y0I1Q0Nje1JIbD9SRlFqJj1JSE1QPz8wWSN2e3VrQ15bL2xvaygi'@; put 'Ok14dUJKUlAxTjZrSldWan5yNmhYPnBzNGx+NktpfD9eVlAhemtPZSM0O1ZKeENXa1VmfmB9a2VSSXNgcDxNTyV+ZG9NK3UwcHxbSmZoUU99ME10OzBKTmpRUF42WEVpVywxYjFELyF9WVlxJiZnalYjX0V4cjU1RTVDZUk4LEw6YTxpaGA7aWhTRztDMypdcFZKQGBJY19jcU8oZDg0cEdQX3t7'@; put 'cEU+cittTGJuYWhwZ1NNVyJGdXR4OTtEUj4lOFo5MVhYeVAjO1g2YDY3SztQWkozNTpuWXQ/My9vd2dHQjs4U2ohQj5YeTE3P2NLZGd0TSt7N3paSEBZWTEwQDRhUSJKZWdvY11weitLPiVHZzU/aXQ5KTZQbH1VM0l2SXU5KTZVKyorL3ZZKk1ialFMLFUqQz51S3tqfSlZLnovZ3NaWnJrMUs7'@; put 'SyMmRTVnUVNlOUFqTnN9YnY3JG49OFJ+PyxjOHszSytuIzo1UV10bSF0MikxWFdPcTpTYF89Pi9melRBRFd5TmxeQnA6VV1IWD1wU2kzaUc8czRwUSx3ZUIpTTQsSGQ+cj01KjtCWS4hNiFPVENxc2pDKm1gQmAwTWJZJV8lIm0/XiN5VVlkeTdKe3h7M0tWS3M7YDhkRFs8a11sOTBnfTBRJjhG'@; put 'eGA2NTpnWksoMkBpflRdL0k/cG1yYDVkIXRCWmlJSmVkfUsqcV5+XjZeWGVUWjNNQlZEbio9P0M1Q0xqYkd1S19MdUt9Lkp6RV80fXdYeFlPNSlRNncrY2gpbjpmYT86eWljQFF1bjd+MElwIjhaPkFHc3M5bCRqYmcvWkJdejdvTDE1MitaOVNmPXooR1JmeGpgR2czKTRJY04+ZGEzR0RXbCZ8'@; put 'VWp8RiNJRzVZaXdkMys0IXdbRFtiUTMxZjY8cnpYV3FRNmlaP3p5JV4sak9zUCsvTm13eG1HcGpbNCNnb2pbSUN2cF5LNzYwKkU3VithfXBPe1B8OSF9dmRINkZfd30/LHpBbiFnREU6S2tlL0E4YXw1M2tULnZ9WiE9Pjw9LEtkKz9bSC9fI2VSPj9wZlZwakpqPXBxSzNNdWg4NzQjfjoyZzNC'@; put 'UjdoJis6U117cDFoIiV9RmA5cV9YUWc9bV5YXjZie3pXN1hKU2Ngfi8qPCw4cihqSlVWfG0vKjtNbEUufG45Lz0pMSMlKGc6Y1VhNFBEaj4xWz13dkZRJGhwbVVZPWc1I2x4cllWc1VzSklUQ1U1KDhvW2FBWlNveHpCK00sLGYsJCZ6RTdzSFhCRSYjSm5rcWJzX28jey9BX0dnUSQzTi5hOlt5'@; put 'clRfWUw4Q2t3cStGVj5hTmE/Zm5QSE91Wl98Lm9CeVpJQ2MqPVpzdCVQRWFAakpYfiJeOD0uXXMuX0BBa3VvZGpdPlMofnUybzRUalhkeGt4aFhtVEtqOC4zeSR7SUBhWzx2JUkwU0NrLyV5a0JtSjJLY3RpcXk2KnJJbGFjMUllXngiSiE9eUNxdUJLKWtCZFU6UEdlaTlmdEpqeiUxYGFPdE5M'@; put 'XXRrPz5AOUIkRiwvQ2A/WEYrTTl5YXVYXV5Wfit8K0dOL05qP1VeIzJbbUhiX25bOVkpPnB6PyFMcGNCMUE7cn5IMzVrPlQjMSluazM7MHJgbFArbW1LZk1GZ0NxayskPT1EdlhARjBzNT9FLCwse0hPPXshWCxtTEQlfGprQDwkRzJjOlg/fjNibUZrRXEsSjd+UU1YdkJbfGRLfTdreWo5b0dh'@; put 'YHBoaHhgSGpsR0tXWlQmdzFsPXVOUX5PWzFyRGBqaClKMTE6RmBRKyxBazxuK0d5S3ouckxgRUUkLn1YdChMTCZDeGN6fHFbKz0zSE81QyQ/WnY/JSMsUUhnKUcseGQickFgOWZmbTZYTG5JSiE/UjdvZiIoOnBzdXdxQz5tY18yIT8uT0V2IiguSGlQc3FrJnUkOkwjUFAsKXJ0X2RRVmB5cmtb'@; put 'Xk1iYjtYX1Q5a09UezMiNW1yfT4qY21dXW5HbD97IWJFfiU8bCw/d3R1L11YcXd+Y104dnxOfk9dZnBecSF5XXpqaDpiVj1IJjczeSQoX1Y0flMraXx1USVxJGthbShpZzdwYEszWTF0SDtebEhMXiJgVi80LF5LTmdFKS5DUUJuMDBJT31iSCpCJjRSJlA7PGBKbFsqWipDV21KI1BgY053YFFg'@; put 'JiRJPS4sakdRKypucyp6RGRkLExtazgzQkp5dmZbVy8udk1dQzRMcXVAP0dvQHFmQEcwb2xBPFFtd0Buc11AO0hjdXclRCpGbEs2JFh1SU5SOWQ1LFRdd2hVNjRIOVlVXyZeXiNtVkU1fTFLUX03QG5kNy9ePiNBY2hmXmkuelFTcUZgTlRJK3poODFOW3M0JGVeM0hOT0xZW19aRDhQVjZoOCt9'@; put 'OzU+Wn5CNmx3OzE2YjpdIm0vajMofkNTaDo/TFkjPHx8eiM8bmdaPlJzT2M+PUR7fF51VUl9UkRbS0xTQFJKSmNWLEJ6RkEzOnNlMCJaTmNHQ35iY2coI3UucFRQZDF2Z1V0QkksbyNENyxfSGUpXkV+UVZKZXB8NHlzRk9SL0tjJHRIei5CNj9RKkBbSCF5ZTQ3bkhgS0RbL1BDbUxEfDNRPiQu'@; put 'ckkqYWIkO1VRWmZYJjIwQThdXmVDZHwqMnchflNEW0w2QCorcHw5eCpydHp0PixZNGY+UE9WMVd5cFZwKVQ4TytreVJwaktAcDMzUGFYdzhGLmFddyZ1ZXUlbWMuO3x7R2lUIk04V058TF9zZyJKYktDKntILz85SlZ1KmYhSXM9Imh8TjtgTH1YfHN5Qjt6XTdDZz1iZ35bbSVSR3hWKy5nLkZM'@; put 'Qig9NFhXXW5nLkNrR2d2c1gqZy5GL0Z6ImJ+LEhgNThgSHM9cmw5MTB9STZsTm1dSX0/Xms+WTc/dC9GODE8QFQiZU1JRTdNfVc+L1JjITp2dHRYbiVFNUUmRTVGSG9RVmg/bWhAUy94cV9YTl9ZNypCR0MjcHB5PUJ9fElPQEskRHVfUmNiX0RLNkZbS25ULk1zfW15NksscCtRblpAb1BIajYr'@; put 'ZSNQdDZGb31ReihCVjhmYkc6TWdhVCJdSm1oPTAmZ2AqKGN3dyIlbWh2fWF4K1BbQk4/LD0mL158M2tYMnQ7P2xnVjdVejwsKEpwZnB9bSliY3sxYFpCNUdsNEA9OzZgU3QwWjs+JjVLOXRUVmwoe0dESGIufFJZWlcrV2lvbl5IYWpAaU11NihHTWR8QXwiYClwcVJRKnxSbFNzMzkidXdgVTs8'@; put 'K1l7JCgueEYjOSheL1ZjMjMvZXRFK3RvaEJ2Pk1wVm06PzhXRSp0USF6Vjp2LDciOWY7SDdtQkljfG0yQSNjejN7b0x1cDcmKz19TSEmbGt2c3hVLD07ZTVJbWl6Z2gkNyJnSUVXW255Kl9yKS5Vc2ZvXktobUZSe0AqLFYyW11hK1NoWkttMnY7XWg0P1tLe3wzMTA5aHVrVzo4KzxRclYyL2FE'@; put 'WTB1bGlbfD9yIm99U1lPQFlIUFVVa2FreEp6anRKMmt4bT9MJWl2RFNUJXBwdDdyK252L3pfbDg5O0BsISpgRW03UU9mbUlKVEl9PTZYb0c5d2xZJHMyOCw0bEE3SyRkSUExKDB2W1tPKTczWXZVSnlbN2dVSnpvIjdPcjE6O2VdX1lUVzw9O0hBSHJsPDwscTwoSXt1ZzxnRkkmO0ZWbTJ7d0t4'@; put 'ZW5yMl0sKmMmOy94RmsuPy9iISM9aDo1I2ErIT8qeFcuJEUmRXZHXlh+IyJIam5TS19zcjtxS0dga1cqZFEiMy5OMm9sPnh4aEZvWF5obGcmeCM8bWBWSWdNT1RqT3h2aTE9Ji8qJWNyMyVQJWg+cTdhc05ZaENdUWgzbCpjQilAQGFSXW5bd0JFXnAwZiYhezFYMXMqQUNZMTo6cHF+Zlk/cHFg'@; put 'YCM1U05je21OVCVKTn58JCtLfTpOPjhWOVY7MSxuOktyJChDLixARXM/NTUpTmxuUlZIRk01WWcyaUdtei8/NDFOamdHbDhJUEZ6VV0vdUVaXmZgUjJMOlNgNkZRRmZ2OFkzIVB4OClQYml3LG5xTUYwOW8lZG5dPiVHbzNiZ257XzZKcm9xRXAofDFrTjpdMFtmTWdSVT9xY0BfZFomUD92SllH'@; put 'dytea0omdTA/N0UsaWtQWWoqP05jdyJPamtjd2hKWzZjdyhEQE4wRykjamtFMnMsP1pfSWVyaUskUi52diRxO2h0Ji9QZChHbDxEcCshNWM1Xns6RjRmS1phVCUraSNPMSQmJkYkbWRiMDlGTmNbSyMrYVVkNCIuSiM5MjFsYlErMjIuOTFkOiwxYmh4UiVEI3JyOHFKXThKZ1pLT1FeMHlSLj9r'@; put 'WDU8N00+Pi9mJiFHayppaz93Qk0rPS5LTV9VaGZVNVlQPlE9R19VQi8pPiNeeiNzMSsxTWdhbXJnWm5dNX5hTDBoazAsKCZJOilpI1UpNzAqdiopN3FySXNXNyteT095OmlGe0s0KkZMTVp4KmkhVEtSdzEqNk1VeWhZXWdKNzZiNjIrdyJCaF1yWlN3aSZCfld1VmJ8NjBWLyM9aF83VU91Ll1V'@; put 'U2BxTT5SPUpyI2ouSSIwSnNBeSJ1L2xrNHhYY3NlRURnSkl5QE1UQ1lhVDxxQmh4cDtUViNfbjBWPz1NUy9AcT92VD03XzcmJVY2SWojcF9uYillOkZIRSMlRClKMHZHI3JzYCNqJFIuYi9uRXpzIUc2NVRFNGUlUSFKNHBgQSVhZEFoSHJyZ25gNzpmbm8pYlREbHtTX2lNMkpeQWV9UFhuZU4y'@; put 'LHU2YWtsPENPS204OS48Kk1bXjMlTlF9ZCgxdXI6UzJ0JjI5Lk1GVS5zVjAuXWhZJlsmNy5qdT4xfCE4fl0pKzE6KU5RSiZfPkpmUnxbJjg+ZmJBUE5qRjtQZW98RHMyUUI4IjYuO3NrKnd9MV8qTmVSPD12NDFwXjI3OzNWJDJVQl5VJUkhU1E0dkE3a2xsKGF9IWR0JHxPOjtLNn4uLDNFZUAs'@; put 'JFdPOTxbYDhNPXZtfWxWLFkkYjUjYF1uOm5VeEQrJlVET1RJJDtNZzojM2wlMCI1VmU6WUQkZTFJOl9SJEhFPWxQaWJyODFRK0ltW3kmKiw4cUdZI2hxJGQ2bltMbnomdDhDVl03VT4rKkwoe01IcloyUkV3Um9aeX1mNn48Zk1NPXB6aCp2bW9AI0V3cHlXTnxHVEFgR2BGdnV8QkdrYUpoOGs+'@; put 'e1FWdV1NZix8O3pRWD5yfiRuQnxKSFosTUpZWypvI1UuY2l6TWlsW2Yme2pocDJgLyt1KCxWdzV4UlpPYz55d2dGeCQ8P2UzKDFsa1cpZ01yeHB+YTkhOFsxWDB2a3owckUufFYoIVtoI3I9c31BbmcxcEN4ZXxBRm5lI24vaSp8T3dBfS54R3kkNGU/JDZXQjZCUT9kUE1ASGlRREZGKHRSZVlb'@; put 'ZXFwfSYmMTJoa054fDhjRWZmXWRyP0NydXZFZVltKVt2SkE+Ik1QbThaPyJycGt+TjZsfDxTS19efjFMYypSNT9CcTUjVyklZ0JpVHgzYlNAQ3hTe1R1JCUoIWVmPWZPKFYoZ3BKMiF7eztdJWdMKFgxeUpLb3JOYjB9ZlEwYyZRYzcxWmw8b30mXlt7ZCVXR0tNOzxdTlFDP0xRUUs0RHxdOipe'@; put 'KHc1NjwzKlE9Kys3fiN+d0h7WFIvIk0vOFZEPmhhTD4rdWY9P3R7eWs6P3leKldEX35aV0VZX3hIPS5KdTdbOyxtWigoQnhEfH1OVUBfUFFLM0trczouSnVQTk00cixKdS92Y2ZUMyFAUSt8cj5XTzc0QjZZSj9EOllsIkpkRSltRHpWeik8cDNnc1VtMmZ0VkB5aH5ZMGRnekpUa2p6VlpvTzwq'@; put 'W3dsNm5xUSlFOjt8WTR1SWZNQWNETWZHZ3lKVmZaU0wyK2R5Tz9uTW9ZQ2R+VC90PC5QYHswLEEwQlBgZEJSVm5na3R5I3BZLDsma0xhSU9aMlNNVlVvMHFAel1qUjcvbWwpZnt6U0hBM1RTQTZLV1ElJC5IYVo8S2Q9cCw/YXJZe3w0JEo+RD5ZXio6PyEvdT11LnZ5c0ZyVGRGTFNjRmFWNkNu'@; put 'XlBYTWF+YzNNWyZMbHdhJFFjcEFyYzlXd1t+SHpYMTB6T3VWal4/Zj5tUVt9WTssdlNrKnx6VkZVX1dWSzJVei5JcVFiVHswZ3A4Zjk7PUBQQW8wNExYWHV6KnYqSDRGJFYkbCFsVjkkX31NM0xnOlpzZnY7fDp5O0QyL2tuQmFrfEttJVU9biRyTmtvZlZAXylyOilJdHlHdVdncjdmdU8/SEo3'@; put 'S0UxQE9xZntkWUB4WHdpRzJRImcoaihDWTBbJno3OE19bUZzQmozezJnL0BYMXxnOXxrdnpUblFiZXxQKFcwUlh1fnJpdCYhTGQsOVFPYERkWSFYa1IqNHBxRGIjezU8b2tfRCxbUiZVP3M3Ilc9bjUkV3hnbWQ1YzlvRjBDTm9Kd3wvb3dDQmAke18iRW9EcSkwZzUkfG5gPTcsPT1lYT9OL29a'@; put 'bkkpLiU+c0B0P204YEBqTVZnVDZVXU4+KThie3pNWztGJXRDZWxCcH5xSXd4OWZfbTNCSl50eWtGLjNkNUtEN0x4OXV9N2Z4MG5xJkN7KiVIPnkxSCI/TDpjUC5gYToiKHhIVmliOU01SSFlbz8yKSk3O1MzZ3FLQFFUQ2FCYG14eHMiRGAiP2hWNUE3N1NhNzIsTkJXTSVXT35WVTkrfiFidEoz'@; put 'MEpTY1YvVmRTSjpCPjB1fS5zdiVKU0cpYEJALHM+PytFMG5xKSVVcyxvQHJDaV58RiopXjhObGdfUCxEfiRaWkRYLC5VJnxQXSshbEtYNntqYVF3R1lYOU5IWi91T0hTQm46dm9RRzY8fSwuLklQK2VNYnhGKiRJTSU2T313Xkk0PGlXIyYmYillIUpsenFPSWFad2xNLF0wWnt6XSpiUGBLUE5G'@; put 'RDBrOilCP2orRV9qQDJrUjprXmA2UkdBSGkxVXZ2VyNjUlFgeGx4XyZbdFVhTUpmRVYxWkN5KzRgMl9WTyNvPVpCMkAqbzV7flVGfnNFT1hFO3I/OGJqc29MfVVKYz4wZ1t9fW5ySmtXY2c5U194UnVUXUZVciFSKXwqdT09eFgxcl0iKDk9fUBSekJvN1RVVXpVQW9AciExSF9CO310O3FwaXU1'@; put 'fXUuX2x2MkZMOG19ajczXSlbbzM2RylrW1NGZDRqOVNnSyo3eFNtMGZoaiRmV2xKUVJtMFB5P05rOX4re1NGbHQzUz5hXyhSYEwjOmwjMyZ6OSM2S3ZJKEBnd1tCdUsiXyYhIT9nKmt3QncjOytxckQvNkhuSVpuREU+UUIoXUI4OU1rb2pbOGJPSVhXUDVeQTlMO285YFt8OiRscDRMKD1ZIzRe'@; put 'XzFaS3dVMm1JYDh3fnd7clRFN2h7XzFCJmQ5eyYxUDxDazAiLH5LZjRBemcsWSxSREw4RzRtY2hzVCZ1Jjg8Vzh9SHB+OSxVfk8xQntXOH1Ib35rXTR+Y11CfixxP0haNEE5JEdXbkVEZW0wWDFbV1A+a0J1OHhmc1l8VC8jaklPQjssclp7JXpvcThBcVNqSG8pUERoRmNnVmx3V3ZUfERuZE52'@; put 'byZgZnEqMEkibHRabStALlVWOixId2xIKWNhY3RZaHE+QWpuOHJjQX0oSkg/bT9qWkY7bll3V1lzSCxYTyFtJWosYll5KEYhPnRKUkV1aEhSQWw3V3hHTzp1NVdTVixCNUJRdWgvMzBhZDZ5YmkjZkxgaFQ3di40dyJiUjxga2tmeD4pcV9GSCl1aD9bV0VSNn1CRj4pXlFXQyw0JERhdCksXXlY'@; put 'NUxwQzVRVkhCai9rSEhLJXROaU83ZXN2OV5EdHd4VCxEY3QwbktpOEU3enFCLkRhTGxfIUojdjVLYkg8KEZpc0lqSEtDInZoRHVDOXRvP0VIeHRBdyFaSFBfKVRIRkI8b3BpXXE7WCRmP2I5Rm1nKz9WY1RxLmtKQV5YYE55Lmk6UzVVRUI6fU9udjQlZ0FKWD1bLy5fJEJELyplMmNNbUN1Zjgw'@; put 'WEElPCZLRmIwMyM0RTN2dGJPVlhNUkpWWWldQ2lGPDVMO11JcilAeXZwSExzWVRIM0wlRn1HP2kjdl4+TE9WeFJ0T1ZFLHBJbSt8aEpMbz9nRHUidW5YQGZTTVVecWFxMUVgeCZfTEQvT0NJTGZfRXEpaU4mQz5jO28+XS5EWyZmVFdhUSJpQ2hHblV6Kncqe2AwdzBaTnZsQkNpfjFWdHRKcSk9'@; put 'RjpiTyImXzlCMClBeFgiIUcqQiQ/XVFURmJkPyk3SSl3U2lAVnJQXiMkIjtNeUsrR0d7W053V0FtImkieG9RMEV6QkdYbG59TGBOczZNQUp0Z1NoRnAvVnExNV4xckQjdDQ5QG5iI3BWSkp6RkhqZWU3UEFZYD4vd0JEWkJ5KCVXK0trT0pJY01KZkR0NkNwWzpSZkIxdHJCYEJ9R2tUPUI8d3Ix'@; put 'dyQ7YGU2QzRTUEZKVHV+UUM1VTh6Y2ZCeyhAYH5GekwlWzRqVE4vQnNpJnI5WmU6MUtePiFrV1hzUDppIUNPUU59bCk8Q19YOEE7RllCYE44S2NNbERmczA6YHEzbEE7PmJwfEJUfUwvPmY7Wk9tKUMhdTZeOTomQC5dN2RiTFZ4R25hUSJNZjcqW04+V001KGosYVI5LlFQdj0oIWYpKzd6WmFR'@; put 'N0wqLDVzZXlIQEQvbl1WXipqd2VJOGZKaipBZTElOE9jKSskcXovfmZ2byI3QmZCMkdERnRmfi9ZMHtLbjdkRm9JZyNocEYobCt8ZDlebEs2cEQ3ZkNUckpCO09lJmM3WS4pYDxXWzlDcWNEX3ZgcGNiOlJrZ0tYcH4laVZZcHUlOVY1bXteNVhRP1RXLFUxYVZmOksrIUhWR3xkay5zJVg0Qnw5'@; put 'QWYscktWITBOKzpgM1NyeSJYKGpVUCJVN0IiJWNKUT1PSXZpQVJwcXZwak4weTNRO1AyUGRZdyxacj8yPXI/ZSVRLHdyKl4/KGo3Un12VilTeTNbT0hUP0hXUCNGYnYxTHU1IUhma2wjJVlyfDkuQjI4VWNESHwpQzpAXnxWRz5WaDtyN1hhSnF1e0NVL1ZMTkYuZjJEUn5WN25mZnJeTlM9Ly9v'@; put 'MEdYVmp3ZmpWJTAhIjhTQjJYIV9pcmo2PEI1YVorXz5SZWE/ckdvMVJlNSxMYCpsTntRM0JlbzwlYVQoWWA4fUtEUE5wYEA9eXEpaGVhfVJ2dHN4eiF1c3NELDE5T2JXbHlPJEVAOFsjLj1ZO1BORFpiaXlTLGYuYW9HdVpTIytxJD9iMzc3WT9qUFkmNFNGUSRuZEt0NWM6U2lsNFV6bDttO2A8'@; put 'ZXNWUGdQMUZRc25mQzRRYkhTQHYrZHg3X3dOWWF3XjJGIUpSXUMhWkJSfDcyTTx1ZnhuISZMVzd6VlpiPj12Nk1hfkFqNm5mWGJAR1ZVfm99KyZAdWlLYXhFXlR1anlUfjBGSlk7TGROLDNGfmQjYmNaKSQ1ZTheI11HbCRxe2ZLZkxJSmZWZkZZNWxXIW8iMnQoIjg3I0daTTpTPTVhZHkxOFk8'@; put 'dCk0Kjs8bkNNPTZGYihieiYvTWBJLmEoKmhsd3tpSlM4IktiSWxpI11jLC9zaVpHSl8sKUMveFAvT3hMOl8mNDdRRUx9Pmd0MzJQfm81S18mcXdfNH1iIUAyTHw+JldydFV6OHRbIlV6bVh4ODV4YGEleywjQyQ1bGRGTU5uO1UoKDRBcFdEbn1aWEYvbURrbGFxfktbQ08/JSY9OCw4RT5LSH5W'@; put 'PUwqJCQsOEZjXWAqSnVyRyJ0Vm9yQGlkZX5DQiREbVpRSUM3Pl8oa1tGQj1NTyx5UzpyX0o4ZCMoa1tGNy8sTHQ5aSRPPVtmMW9DNi9bX3Zvb2MpSEQ0TCJHTDM/RntoL2Y1d29vPVhCZG9vOGE+aUVIN2M5PzZMJWd9MGxOM2Q7WW5rInY0dklbNlVMTFFKfmUvZShVblgwNHBZS2hWZjRsPiVL'@; put 'cXNgQTZyQEEsVTV9eTU1MnU2Y1ZHLmdRJFRPPTNCfHhgJDQ9WGIhfkphIypYXjpfZWpPKSRMSU9malBYP3huMnkmc1tzXXM7OEZRUyFZP3kmcm06KnVZaShDdT1QdmAkbmo3dF5BQFJsOmdsPytxcm0zQ0Ilcm16Q2pJa3hrWW8kdTV9Nlg7djMlIzRqeXVtUiE6KWNAdmVSNklkNSomQXlZVzY0'@; put 'JldydCx0ZGBZOmZhQl8/Pi9mSk1yMzVuYyQ/PnhuOSV1ZXFtNkRVLk5xe3U9UHw/cFNtUWNHVS4kaFYkd0IwYGdLKTR9d3R8Kn0/U0IsaDx5Ji47KCN+LkJbKGNsQFUpeFBReEl5Pjt+ZFhCfkl6LlYzSF9udkEpJj1XRGhTV1o9T2ElW2ZRaXo4XmRlaWo4dGd8Vn1JZUwyamVXSXdLQyslSC5T'@; put 'UU5zQT9LQElFNmxUfDMvNXRdNlNQeCFDITFQI3VSTXdwRnY8eCgudDNRI2FyKlReXmxCc1c1akdlfVVsOHU8Sj0qNlQuU1F7cDQ+RjBHOGpgOk0ybV1sW057Il9gO3dKO3ZpYEVnLF9HX25UczowQm5JNWwkckJtak42fGMpJHUlbVBAMmhzQmgqNHVDfFIpaUtVcCE9TlBLKztkbkJdLnlXLGIl'@; put 'MXg9SF53eUxvPkFId3ZSLDRffWAjOm9ZOFdmbVM9Zmx2fCw7ZS57OXx6Vl5zdSMzKD1vdn04JTpETSFbNURwa3YqcDwyaVMsQi5UWFR2YiROPTpFem1GYTYpYWlPUm5maHg5VkJfRD5uZkdRTCR8IUdBT3YxKUZYMElxRSwwVVhYdDdSWng5Y2NSL0x1VWFILyRCX1A1Pyo+cEImQj5CX0FxQiZC'@; put 'PkZJe15BcWMlaDtiYzk8Y0dWRio6Q0Q0eXNuVVlAYEtJO1sqN2EkN0BfcS5McjNWaUtQX1V2U05aX1VpaW9qeE1vbUBbcHk8IjVpezE/ZkY1SUJRamZqTFB3UUFrc3hRenkpU3lCZHl3YzJGUmN9RyIwbXh7V1JJaWxnWHQqZndMfkpndmt2UVNgRFc/ZFhdQ0h1WFJQJWJYNnphP2ZNLnFFU0NH'@; put 'SE54MXdQfC5IIyRAPXl3UFJVR2ZkUk0hcSEsR3wyYCpBayh+cVUlUCVgISx7MVlfZTgjcVJIVyxzLEppbmZgLyk6M1UjLkolZ1daMWlIY2czMTZmW2ZRcVRmLzNrejcsOTdfQktyV0ZUSn5Lb11LZGcwVXRsV3Z0VGkrOSVDVyw8YTg7QlZpZnNrayxMS0ZSaDZWRDJpWXNlcG1fYzY+QFppQGEq'@; put 'JXltYEAmUU18eiklODIjUXVEcGc6JHt5NGUxP2xuOUxUVlNUSXt3VHtgNVE6eSRecj4jKUlqTVM2c10rfCY+ZFs7N11kX2l9bGVOUW55Y0g5TVtGTUw6U14qNkU5Rj1ebDJ2bWBNanJSIWp0O0RXSnk0JFBnZlJTcS8hcGlTPFYhdno6XWlAa0U1ZiVQT24hYWA4R3JlW14mI0h7MVE6bllKbTRs'@; put 'MF57UDYudlN6PFZ6ZGtxJlJEeitNZTQwImt7ZihdRXpjY3NpeVMsZkRUWHFicX05cjZ2Wn1CdXA5RkBLSUY8fXhgeUFLfFZdUDNYZFhXcXAkZkN+Z1B7PHc6eWhmaFYuWWh1SFRQejZAZWBGTDZYOEsoODokIUdsTGJFMV1jXmVnZjwoTUtKKzUvcCYpLEQmc0hsLiFYWmMuPTMyb217cnchYX5x'@; put 'TSNXcy9fVWg6VXJUYDFndkhdaiRWaypaUjhFaX0wOVV9N1BiLjt0OzBQYTJOOmtVQkpdIkwrKl9qUmF3WSlxJUh+OzQjW3E+aUoyWy9qSjc4MCFYYDFnJm5gSzBxcjUqYWc+ZWUmX31vMjNGaVpdMEN5XihhWFp7dkhRZXtGdiU9dkgjIVthIj9zSGBWUSEpNnZYNVRoMHVJek8+a1VvUWVyaCMu'@; put 'ZVtAczclQy9lWU01dTlLM1lPcztjY0c5NGQhOkIsLyNwWE0mO0lHPHUlUk9ST0x6dzxaXXV7VDxNP1trPUBNenpaOz99ck1ZQVh1cElkRXh3dlRddGMkNHZYbWpVNnIqJENIPDBCTVpbeH1VUE9EO3BlamNpY3c8Jmd8cnQ8Wl0sckhaTSYsXypTbGxaVzVsU3c/RHUlKWQ6LjpfOl8jcSojWEtQ'@; put 'SGteQn5SQW9HWDIpRF1qSztjTy5MUmdRUHBEN3tIUUNTU0xVWGNZb28xeCZ1fEJUQylHUEQwZ0AyPnB+amJjQWt4b141dlglOiJjSDlmVnxxeCNMLCJPO05mXkVNYzArIUs4dylRaXdje3VDNEs1eVo+T11hZDRYN1IxJFQpJG9fZ0x7aCYobnRBWCgrazAiU1RDQnUodFNhQzZROEMvRnpAY31h'@; put 'IjRJQSRQOHoycVVhPk0pUHleOkxCbzRzM3B3bS8rXiMxZzcsR3AwWjg6IStEdkJLKixGMCVUYFE8aGxMKFdobXpuXVAhTzpTL0Y1RChiWGM/aF1oVVROQGcsRW9wakQlNlNYSEwzQ2IhNTJrYmIwRDxCSUh8cHJ5KDhANDskXiRMYj1wU3d2QmBHKUI0NiokXVQiZVVOVVVeT3E1P0xMM2kwRU1D'@; put 'KXdpKkw3W2NmaHxxY2VEKGJNYUpyYUQkRW1dYU9qSWt4bSFjbykoLyh9ZGRhOyNNPGJYT05VVUlQI2krYU1hSTw5XWMvJS9edzBuXW9ddn5FWTt6MzkhPU5naix1W1ghRDNmS1NibHtwRExJUWpmPk43X2hSaFFoJUo2fVFPYltjb29dWVVVO0IuNjZqODMjSzxwK2RWODVAQjkmYzBWV2QlN0V4'@; put 'bDZgQl03TEN9JGpZMFBZNihiME8ueVlPfDdQW2F7RHF9LyglW3soKDk9OjZSMEtMaWReI312MFhRQCw2OWVEcCV8KFFHXXZYa3RbL3RAeUI0Q28zaElwfmNdblliIXE1eTF9KypncTFdVz1ZVTMiTSNXPmo+blJiazd2JSo9NmhyU1ArZHlzZ1E0SmZSK2h0SjJnVXB6QkZKKGR9N3hpRHJMJj19'@; put 'W0pPYlhGMktlTDZLPjIsKiFyZmtiI283NlBLPXciTnJtJEhXOU8hcWssMDtbUmFOUVthWjg8Ylh1YDU1PDUleH5nc2tsUF8zS24wSEpLUl5rJmlyLylKOW9+ZXJJN0lZPjZ+YlMuQz5rd2NIVEk6bjRzZlhXayk1TFtzK3UzZ3pGYmJQVzI/WTJxMF0pdD1OLDdaRUs4bCx6VmNbJT09QV9qOzhV'@; put 'UEBkZSYldn1JO3hdOjgkUV5vfE1uXXlDZ0NKI0hsPHBBSX5ROl8oNUp7MXgxL099L2A8dnwqQyxaWSxqU3QpJCRRfW5xb2htaHFnaX15RGRNPlJ2JU19NVsxfk9meDB4R0o6TDV8blIoa1t8Y01IT1hZImd0e0UlPFdgc1Z7W056WHZbSmkuZiMqIjUpWG58QF5JTX5UQ0g3UiQscE5xKUhHSU9+'@; put 'NHA6T1dORFd1VTFHO1J6aiZjQFZeKjlBTzkuWDMoNU1yflQpaWwoTzt4ckJsUm9+ZyVYYSo4enNGZzE8JEJlIXp8dU9NWj5iRjRiT1RkV0o1Pn4reypqK1o1JE91P2lddlRgN2VCV1U1RWpDWWlBREFRQV9fSkFHdVdFYEokV0R6TkJpd3g4Uld2RDFSIjp9YVRQVm9ATUJGNEw+aXErQUFBQUFB'@; put 'QUFnQThNLEwjPHIxUD5kWTZsdENuKWJMcVBZdVZPfmQ3XWw9IXB9TjFDOzc/I0xbRDJPR21PdHtNcCs8diF2Tjh8S0EkIV1gTH0mTDJiXURSe0NaJWZ6Y0I5V2NqJCIpYiszcD5LSlhgRjxmVk9tQixoWHpgTX5lKz1vfHdHRzomaD41ai5kUjppYDUiVHtfTVZhU2Erc3t6TUAwfntCcFpPLi5d'@; put 'V1piZSVgaTYwRyljNTpBOUBoeVFxYlB+SUQqZipkbCo4fmtrVzt6eyQ/QGx8SWhCYkcqI0BVbVI3Tk1MVG5ifE8sNU0hU1leZihrSVJHPDl9XkpEUDxPOTRTeiM7O0I/SVJTbU5zNGlpdElpbTFbVztdbFRzWVpMcFdFM15DL2RIN3w3cHFvXSUpP0xaYGR9OTtzenhiZXE0MEBsZGFlfnp9ZUs2'@; put 'OTxgRkJAVTR0alhSJDp1blpifj9IVWErbFlKRytEZnhyYlBNI1g1ZC96NUJ9VTBwPEJUYHlkNmdESSIhIW1QL1ZBcTp+fnBCSVB5O2tKR3pAbUcvJStEX1JhTXsyZTJJcHRHejQ9dmc+REFBLHQ2W3ExZ2hNZWd3bTw0QGskVzRxTnpIVVpBQGZJX2tHZ2MqTzIid0RPIWZGUlVfQk9AeWE6LER3'@; put 'SEhWI2R9Zl0/RGtVYGQ9MHBbd1ZibzI2NktAOittZndFc3R5bkdUZ05DdkJGKD95VH5hYEJVeF1MSDxIT0llVTxRT094N3RDUnBpfF8/NyNbQiJaX3Q+X3N8TlUjWmJ+biJPcSN5WTtyO05KbnlLRkJ3NFpOUyZ0K2ljQzpqYmJKamtFQzMjZ0Q2U0ZJNzNqZn56USpqZyE2P0FBPl5GXSQzWW0w'@; put 'b0JSNnI6b05hPz03RE9lQSNeQzY0MSpEI1RlYytVaFhDRjJPLk8rVFo8TS5jTj58QiNHPldUPXBLSCk7X1FJfTkhSDZAMD9IbSlMX1JRMj1yci9KbWR6PE9KKVF+XXdONUNBYnIuYChRZDpEND47IVp7dGpdLEVWOHwxInU5WUU1JVVKOXBCOSY0fS57QjlvbyJPZ29Cb0hBY1JOIzxhUCM7RmZ+'@; put 'VDJkeCwwRmRyViNHViVNTklXbW49T19xeyZDJX18eWlFQFhKYTY3fiwoPHpuY2BxXVQ6OHtgaWtwYH1lalsxPmZqKXUsWXJRIUpYbmlhZ3I5MkQpcGEuK2JoJm1QfSg9WDIoSzZAVm9dcWJnJlVkZEdfNj05My9jWnlZQ0JiXS9nSXhyRnhWajxRUE5ZLmF5W2RXfjZdJFVWd15IY14pPig6SjhY'@; put 'L3ZuOUd1SSF3NSJwfUAvdGFKNlZ2dlh4WlZVVkosOEM+LzFENW9IUFVHXn1YOFV1ej14Y2dTVE5fZkZxO2N6elBFV2k2LGVpTittLGgrXiMyWjtFZTRqSTIuenx6SCJsPXF+cmssaGl4ZUprI2FYVUVyIWZpSFlQP2lqQ348bTcrR2Yse3JufWh9e0pESk0rUXh2RDMrQyt+UiZhUjt0KzspOmcw'@; put 'KVJ+Y1M6YGxiLypjZWFCTT99UVptX0VqTGBnRVY8MWg9IlowaiN0OWRYL3dMYkw1cjt+WHVPYFFwZjpvISxnYlppd21IXmpieT0pfS9YUGklQGk9Lm9wSSxBbX1RRlgkUlNCcEIodUlTVC9QbUNXRnApNDlfUm5WZyNlZ0c1dj1tMHxnIWNAXk52bXp7OS5UUXBWVFNbS25QKGZTalgmQmtHbDhV'@; put 'aHBxLyJDcT0mcnZwKlQ4fUw7IkVVO0VefDM+JkhzZFJ0c0B5XXwwZXpfQ2ZjO0cxa3g4NiVGL0VYLz80VEheWWpRW3IlPEklfVo9LnBZaGpRX2M+YmhZbVRxPUBlMWcxWGRxaX0xbmA8anNITTxpOyQlYjAiV2VoZz4pJmglXVE5LGQxXXFDZHl+eiEkaF16ISRBWntzQGw+WFgvUyluLndNNiFw'@; put 'aHBsJHFEYT0hX2g6PSh6eSpvQjVsKzU2JThydH5+ZmlUP0ZxZUFZPWZzLEJhT0RLfCFdKHJPfWFwPm52UGIqMTdCOGJQc0ArPUBGfHxOP2hMcmIoIy8/XlVeMkleKltpMVshcmIlOV95TzZ2SE5wYWJAeF10ZFE0eVMkQ3Nmcy9ndzZ2RTVTWHo3XThlIyhHVjFvNWdFVzsvUnghXkF+Yy9zU2ZG'@; put 'QGgjVGhlRllyejhKbXV+R35tdDEoX11IZGk+Mn4oOEtYKTNLUlp6Q3tGVU1CSHNVPV1MdmosNi9edFByJTU/UW0zYEp1YGo2Rk9WNC9TVjRWSCl2a3I9X2wuaH0rTkFocmNYPS5WKSorYHhVaFgkaDdhcTl+NWhoeUI0a0hNKi9SOS5oOWQ7P3wqO3JwL25ITlljUm5fdjF2TFM7YCEjdWs0Lj85'@; put 'U2g1dEdEYCRnQV02U2diImUsIWFNaTd2SEJuJTYwXXsrW0ZiPnpzWj1JYnlfKDluclQycE1sZ0M8OVAiQHQiUFJ5dz5aUlhvOUJ5ZTlVVGcrK0BLdEk8dkYxQXBsUz9mV25HfFZIdE9xeFssenN9PXdtI0FCQD9PVDBwQj1mW0JTN0xvaHxhSm9lLj0xZzUociQ+V1M7fT19ZjBrIVsyPlhdaWYq'@; put 'dF5CQ3RfWUk2Ml4sI31fVzg4clRoZG9sPWdxdWdqdVQ8OTpfa3xzWi9WUSZjST5qeHx5S2V1WlB6WDVQWnZ2SWxXJT9GRC8mRkBpPV41WU9YdEVpNSE9I0Nrc0ouLF9Xfmw9REVDeEVpdWB6MXooL2R7fk9LPnc8Lm9FfkBOPHN5IV5ma2NQb0VVPDJgcz8kJlo9SGo0Q1VFfnQvayIzREl+eipf'@; put 'K3tQMCtQLih+WlleVU1ldVF5MSNSPEl6aWhRZFM4dzduWSNOeD01ZjtdZSt6Y0B9SVhlZ2prQiwucCZsLFBSbnMhcjNaanRDRWslclVLPS5WYT1xWyZAQ2g/aiFAfkNZXjxiIk5POHxmYFpGaGA9YEBsa3dXXyxzQWEzOCtTVjBUY3JfTChZSnlbeDtmPTE1ejlfRGo1QjM6YGdbe2xmKHZWKyNE'@; put 'R2B2XT9DU0pVMH5rU2tncDomP1B8Ql04W25CRXt7KFV0ZCQsPFEwNSR9c2hXaShJc08mSVJfaClFZTQucGldJlswLEUqSSFUWVRqQVZoRGpeKlkxSW1qfksodygsQVhgUTM6UHA2QV9LdEFpZyJQMjF2Qzt9Xks+WTpDS2NGQmFMOTRvfE95NTV1aUBpMVdme3grRCVUST92VyEkISk5XkxncVUq'@; put 'MU5CZH1QIzlJfVUlKEBGeE0vc34qczhGM3JkXiJFX2dYU2lJIlooUUE+LH1Ucy5qOSZgO1NZOF8xcDRtRjNPe1s7ZWd4bjhgRFJjajpDTnwzfSZeY0p0JkFbbzNPKi9XMCNOWyFdWylGWFhGMypVeyQzXXRTUTNSPSVxdU5YbFtFYXBaVHkpNForZSJ7bEVhSl1KdDIyWEdbVTBzJHlrZ0d5US5P'@; put 'SVNCeDRGLGVtW2JqNHUxRDd4Yy5DW08xT0tXdUpFcEA7b0NOQkdxV0pteTBPeXJJVCs8b1E3XkRse2drKltpc2tqLEd8Zn05KThpNmZOUDYpMnY/MjZVJiFXKC9MLi8xNkJsJmZsaHZqMU99WjIoRzcsN1IvXmg8c1AzIz8xVV8kXUlUNDMlNih3Tmlifk1TSClvN1BeOXlDQjZOSjp2eElPfSZS'@; put 'TkRJQS9gOVVyM3ZhYjJsU0tuOS5eImN9UlFddCFLV0M7U1M4dnFwdz94UyZQUW0jWXdMUWYvKkdPYEdeQi8lZ0BpdW1dS0Z9XTRMKTUwRXVhS3ROWHNWYDA9aEtmKUR2aVAzTWBHbEI5XmM7PjFFYyhZQDdRaDNgV3UuezFIRy5ydjtdTG54Y1BYQ2g2PToqUVI5NjZOYi5NSmozL3lqfVVJc0xi'@; put 'IjomP31ERndyQCowSGNuZiFQfkh8UClpbllIO0w4d25PLm82ZXV9KDt8TTh6bC5uIz5lODdAVyh6R3BNdX11PFJLPHJfYjF4NXVPbDN0ImBXPWNLbGArOng9eGdIJltBZTluWDRpLzJaejB5Qypvd3E0e043ekA4ezxUNm5dPEIiSVB+Rzg2aTl+IjtrbnhRcnVTYVFkLlhiQ1twZXkiLzIhKHgq'@; put 'MjhZcj8sZCRjJSt8XzdAbkdDNWMveXl5fUpwPl41L2EyQGsiZHIyaSlmIy5NNzJ3KGltPkIvMytDWzNbJnkuOzc0WD8yUTB9bi94RHosTXdFZUdlflpfMCpRbSpJQkpgYz9HSjMzZkRQTSwybmUoZUMmZCReVE4+QyRGMERqUWdSbyReOz9EaT5NfjY7Un5UO3YyQnI5Vks3Im9oe0o6azl5TG5z'@; put 'QV1yYVFvemVuR3tsa0ZGcTA5Xng5b0t6ZDZvbX0zQk5sWHE4WTlCb3phTUdYVkBuU0B2X3B9YDplaV43UFg4NFBHVnQoOSNLOT05KXFtVWloUyhQVFNQeiRGeXRGcmcpTkwpblpKaGUpV2JHOGp9Jjcud3RsUys3YEFpPTNdQSF9WzF+dWI4Wz4mW2xbRVB7Wlg0d3p8NFo4dWp+Y2V4JlpJaXNH'@; put 'UWQ3VVpZcV1fV31MTmVgKnh1b2MrenokP2F1MH1lKipIVHB4ODYkJHU7UlBidShZRmRkND85Sm05SVBFbDdKeX47IjxJQlo7R1IseDpYSWoqMl5ndDU8RVI0VnRpaCF+OiR8JGtbQ0RIV2pILHAubSQwS19majVYfT9KaiMyYjpWUVtaQ0Q/RFdRIXZhVU5UdEV3S2RZbj54aTVDcVZfUjZrP08h'@; put 'ZCheZHI/WGBSK1FrLFZ1IVorWDEzK2MpS3xFZWJWWiR4bCJBI2NQc1FIYHFfOEtNSyVXTHdWJWQrRlBCPGNObElwQ3JIdyI0cypgPSZQKSlJdz89cGomWyZBbyl0SjN5eSksPmBLOEooW2BddCkzZ1NfeGR9K15dSiwsfX5LWjFoXzpsKzkzamAvRCt+OE10aS9eTiZNRzdyYFB9dFVkfEA2O3dv'@; put 'Sj9fQlloR2h8fj5lcz14XkIwYHFXQXkkbk9UKysoMnN9PlddfkVibF0jUFdkWUJVQ00icHNkdCRLIjRHWlFJQVlQS2tTeVBYMjxxdV8qTT8+PHJ7O2ZPcyZ9dlVEYkBjNFN7Wyp9K1gwJkhTOkFuW2c2a10lb0k2UlFNTHZ+cyIkcVROL1c9SGBlUj8pV2MlV2AqY0s+bHphUVoxM1pzKGx+dF52'@; put 'aEhrbkVFb2k/bFNZSSo7Xn45dnYhfkN8WzVSMWZtY1JNISxSJEM4TVMoTz95UHdQWlBBSGcvSVoxb1lxNUQoJlNASVdOVVopOFJ2PUh0PERjV1RwUSUhSmg3eihnJDJMVFA5Q05kJkszKj19amF5JiNiXnkjM3BhJlRdYTNkcFljR1J+SztQLnRRMkF2bDtWXVRjJWp8UzVJQWMoRFpYfi44cyY7'@; put 'eXphRntRL2FaRjVOU2Q8Ym1pSGR1bFYuSHlzXWR4R3pDeigvdV5mQVVWNjksNiJTMkcoM1RuZzpGSWJaZWl3QTZoeyNpJk8weDdvbn17ZExbP0xUU312c0VPYTpOYm93OGNFbEkqayI6UiUxZUhPKXdxcSpSbCQ/JD4/Ymg0dzd7Xjd7YVd4Pk5sWEBiflR5P2o9PHx9fFVnUUNjPzRrKExCVXpY'@; put 'LGI+TyIrY2U6d2RjYzhaPHVQV10zQHUuXm4+YzE2MT5GdEMyaiZ7Z25XMnZVOyY/VEsxbkFYS3s2SEN4X1EjPjsvSFA9RmJCZ2ZjUGF0T0t0QDZjUjFUUXhqWl84VC4kfWkwa3IxMHVASnxGflNXcWdJcjxgKlh7SUgzW31EelJtd3dbVVZCUGBDamFMYTlwb2NrQnBFNS5OO3w1MjRDNSE1dEpY'@; put 'P0hzJWBqTk50eEpHPGRIdzBMc2Bebi9LRFRuY1gkLFpIY3d0TyJzdjk3XyJzYklBYm9WR154W3NpcUZSZCFye3RxeUlYSkpHb0RqSGpzTXp8Z2gzcn42UixOfFJBKDlxUnk2bHIobW9rTyFLXmpeJC82Kn5JdEMlfi9vcV8vTjNLaVo/VXxtdnlxWDNCKE9vN3xgZEZmfjYhKn5YMnxWPWc/M1Mo'@; put 'YT0udnRXYUYmczZkYHJbTzFhYVlXZnxHW0MhW2pFJjd4X1pZTkUpNj9hTWAiX3glWSEyezhMJV17SDYvZ0VDYTYpd0lrUXdnKCo9ZSYzYj5nPD1rU01RTT5zcGw3dmdFXyVyUjE4Nk1WaTk9NCZHL2lRaXhaV0BxVztTZk8kPn40ZS9xa1Ikdzs+ciNFQlk3VTdLeUhHYHo8dVcud0VkeSxrWVpN'@; put 'aHZiP3ovTXF0VjtSNmJ4OCZ2Z08qZXZ4NVJ0TTh2YUQybSEmTWpSbjRhdT1xcD5sNHA8dyE5MGFQbUhpdTBYMExtNU51bXhRYDR+XVMmW2RsT0lvMEhtNXd0VTlIeylRPUxiOiRVSns5OnJERSlHIkckbV06cTF5RCJnZHpbQG80KzN4VHwqbHIje1N+OF9xWXEuUWg9L0hGKn4kYEd5TX5uOGk8'@; put 'dypKWyMiPEJJLyEqVTdQbURBJDFFTFokTj1ddjJEaT1RcEdNXXl9USY2Sj88d0pPbngkSnZtWEUmfTB+ZFE8Njw4VjRUI1h0MCQkbzdxWUJ8KX5te3cxO2FJOUAhcn5XU2Y/KkNwalc5RVohLnxmVWNlNytPZ3xaZk9VST0seTR5dStKPDpJb1FyfHxKPj5VY2VfYCw6fEhsN2NeMiF+d2woc2Mo'@; put 'PUF4RyFKKF5HdXtNYURKWSYkQ3xaVytZTH56Tj91fX0hKGtUbH44ZCVZMEVZYz8pVXxkdH5FNU8pIkNUYHJDVWdtcXs5bThEO0V5LFc0UWwpRmI9aiR1PH5UXlptdFA+L2R+YT1dS1hdKjYlOX46fGtsUVA8e047fmI9eyI8WE5fZygjMXxCa2JtdGksdEskem0udkdCYG18JlR1aCYhOGdjMUM3'@; put 'eiNlYSxqTyF3JkZGcmpJfnJTSEliIWZHU28sSXRpKmBjTzRJSWx7TW9mTHh0czlQYiRxbj5XVVBvUkVdeWJdbFhyd0w/X0BLYj5XLCRlV29TTUsjOyF+RlQxcDZTMXY3X0w0dW97b0drfXA7PHVQMXJNImpefjdya2Eua2BXc3A/eVRbSXFXeltiSS5xPUNFI1NzMUZSRlpsazVDKkdHbzhNUE09'@; put 'PC8pMTB4dG04P1k1Y0w0aWF1R2ohTHRMY1ZuRFh6PEY4MWpiYlIsMWkwK1M6THxoRnBCSkRFNlNxdko0IzR+ODw7SyVmZSJXdXFmVFp8Qj4kXXI2QDNuME8hWWMiYlIpNzYqO0E3PEA0T3RiOlpxTX5dRSFKTnQha2h7LH1eL2lGfHVCMTU5SlFJNGU9UntrdXtFKDopaExKL3QxTlE8dj0mM0Nr'@; put 'SFp9MTN0bkJURyElLFNmUGEoI1JqeFIlP2pgL3diIkY7VDR7S0YmTWJkekd0Z0pJYjlvOzAyR05WRWBGeng7PSpNYT4hU2lsRmM6dTtmXllBOG0zZksieyg8c18sK352UT1TWEB7fkg1fHYxPypaMDM3XS43LGJTRzJ+N3gxUzpeeyNjVEE0YltLZlZvbkJyOXo/WC5zSEpqTDpBZW1kJS8qRl1u'@; put 'WlVUNHM/cilyOTZtNWRyYUI1V0d0K3luWCFDYG03JFZpZlt0dC5rfXcrKi5FYDVnTCMuaC8qdFQiNktRPkozcklifFZKPjBRa3Q9RnxuK3h7KDlMRT9rO0VGcGQxMHtuKiR3SWtjaXxfZmxQTXppLFJzUGgjQmNaKzI6REplLj45eyRzcEc5QCo8JjxXRWVAUkojOCt7QHMoKG1dLGEjTXhefl0r'@; put 'Kns7Uy5QPXwleDZKX0kqLlkuR1BPKSFVTD5IcSQ1V2ExUHVWfSQuVGZBQnhRO11gYGxOXzh2cmokRzYwSTNrMio3VUZQKzdoW2xsJTtla1Y4KiRIO2BoYDtgSkdebkZValV0XUovc3s/LEw7e05nK2ZWRl0pTk11RHJPJVZlT25OcXw0LzVdbzZaOytodTYqaDVfMkw5L1VWUUtxVWs5QHkhJGMk'@; put 'LiRHXUs6IyFHJkM9RCtQcGleMitDY19KZHhgdT5JU11zNnxuWSlleWc0MS9XZz9uc3AoRS53fUp7YEx1cEpgajo9XVk0ezk3TTRBfV1VJV9gWHxKbUhFbXV8S2hlZUNeP3Rlbyg3Zn4/P3xJQD95Lm1ndDxCNmJfN3QpWVoyUl5eO31JbkpQLnhobUVfRyZ1VGwkbG0zLE85SjRYRjBTQjQvRThk'@; put 'IXEyRSxCZGN1aG1Ha2xXTlJTc1FEVi4pRkQxVjg8SztiTVFbK31+TCM7ZGVkKGBSPT1EYTtRVT14KjhgLEdZTlpHQzhbNTgmS3gwUyEwbiYmVjI8QHFuNCwiOVpnbW50UHh9SDglMmRbSnpLcDFnWGhraGk8U047MlZCWnlsI20wezElYm9aLz11O0UzRlNOO2hCNUJ1WnsxVE1Ze3lQcV8rL3xE'@; put 'XXpUbntNRjMoKig5Si4rQmxwWXhMNXF7OyI5JVEmJkV2PlRCK2MkUWs9LnN2QFZ2PllEfVY6b2JgLGJhPm5Aa0tvLHFqclh1LDZRQ20qVjs9KDpnVzsqN2NHI111RFBRVCUwTmV+Y3liX0s2UTs3SU1YNndyTUNBQ0pxdFZBIWpNcnVlV2JHTz95e11WcGBkKzBXcEllQCgvNSs1L1QvQklEQG5v'@; put 'RW1ScFVSUigmYVJhYmxoK28wS25vdThVUVhvNEIobm5LR0lsOXUqdiFDSk88QGA9PC9DfH1nYj5XRjchX2lrZFBtPXducExScW9QYTJ4WjZdMSpJRDlMUTB8Mi9vdnc8U1hiezVMckBKcVRFc0pFNzx0WCwzfC88SlRxRUZabmBBaUAyI15qPz04QGxYXmxXJiJsUi9dd2VIU3IsOHc7aHcyYEZV'@; put 'WWw/NzEydn0zZkpOTExTITZXRSxJS1RfdTBYfWZhU1Ykc01YW2ZaPltkYGE1VVMkO35bZGRtUWEhKi9SaDZXaT14MUdZYTE1ZnY/M2lwL3p7TGF3MFZ3cE8iTXlfTF43MlV2UVpwbWU/KCs7YykoWDFudXxxbFF+NHZWaEN7amBOOW9KM3lSOklsQG8zZ21TPkpyMVReTnVORWA5WnxUMFRzOT5G'@; put 'dFE0OlU1XzphSDlrMSlRWUdSXXdlMSUmTjtoakM9eWI4OTAmKUlXPEcySjRwUXBkMHVrL1VxPyUsYlVHLz9kcXNPJiM7fmMveTsvMWQmWGRkJndmKjI+KytxKWAhXmVlNG81MCkvMEU1T2ErKUYiKyU0anQlV09bc2xJM2xoPTJud3dnJU83bkJfWGh0cG9UYypkOzEpRns0KUsjNmxMdGNPe0ta'@; put 'IiNfa0JUPTldaCtgeF9QVHhlbDs+RUJRW2tNIkgrWXheUVJNVCpRMFlLeVNRZFp8Wk9QP2FvJUclcSh0RlcrdChEXSRGKlFdfGNMPG9EX2BLM1N0fEdPUi5EJUVqfkNTWFkoZ2ltazJ2T1c8QnZNaUljYGxiQks2PlliWDZufiVKfjNednYoQDpRQSZlZHZ8QWVKfjNSejZUe2ljaHtOfkFBYXoo'@; put 'aE0mfV1FckpwUl4zMHxGOl4kI3Y3NzQoW0N3L345P1h7JlM7Snc9dXFIUGxpJTxvMlpmSnshWEJ0OT5oN1FlWFdsMixgOT9wSSY3eXdAaD0ma1N6UDJoQCZaVVlDWkNAM3h2RXR+OlcqPjJ4MGBlPDkhT1BrVGEmT3RiN3YvcnQ/UnwjX3cscz83SCpvZStdIUdLNkY1WjxOPVE6aztjNUlOaGt9'@; put 'JVljQ1d1I31AXkVUYEMyImk6Ri4jK3B7XXBoUXk2N2FGfnl4MjFFMWUiQSM/NFtpbG9oLHFgIjhxY049ISRaSyNxdit3ZkxEbFRwM05kRilwTXx8ZyFkKC52ciJPM1FJdWBwdj9qQT8rQT1eV113QU9AYEBDXjYrWkNRJCVTRWIoV35GdH1MXmY7TmApfVAqfFM6UE1seyhhPTckQEcxMF9wOnom'@; put 'Y19GZShtRF9uWiMqL0UvVzh2L2x7OXk7WTJ1MEtOdVoweDMmMypdZG4lOnF+Ny9DPi9fUkYxUWo8Zltsa1tPezh2XjhsSW5rZn5dNmhqUzxGSyowJCh3Ol9hQ0A7Xlk7eFhveUwwNUFmeTY4dHYqailSWChQZl93T0kqYX1EQGRiSlloZE8rQDZnNl5ja31RPHV4d3ZCYVtPPkwsPGsuTjRuVEd5'@; put 'XTw1YlhSaCR7eyElaCRTRCpPbj5MdjZLajsjMHdKZzJocSFAM0B0VkozIUZVNWY5OiIzKmRqbGksbk5+QCZlOmF8fkptOSNRS25PflcxZWQoRG1iJH4qKH1UQ0F1PUUhKF1Jcn1jViFXQ3l0V3duPGhCNFFzb0l0SVA8UFpEZlFfTCslZ0YxLHd6UDFWPGA+TG9WYV1FOVNmVVtwP3BrUn1zT1VR'@; put 'aElRYUMhXWxuUj5pQkh3U3JuX0xXamRUd1o4Syl5en1zezVSNT93T3RAYiZpcTx6V1U9d2FuQ0FVJlU1QChSUnE2VWxVZT84TGZ+fXk+SFpYZD5yeT13WX4iZF5ULzlxJnM7diFDUGBhdnRdfltsUyt5e3c9NGVQayxLRXxlQUdkQGtPQ1NdTEgsISQ3X14yT0dlTGNFVWB5STdnIXo1X1VTIiEk'@; put 'Lj99PXZCTksySnBmeltPRnIkXmhXWkV6dGhRfnJCQjdmK3ZFYTJ5c0FzMnZ+fXZwUG5DZGBkSEo8bC9bekBwK09sTE4qZlBuPF4yenlydj1pMkZxOTs/anI3QkBKWDVkV0s4O2BbTGcuOFdSbiEqd2VHUDJ2I2h5K04xIVNEV2QrayUmb0FjJT9QczBafDVxS085JFpnbTRUYEdrSTohYmxIV3NF'@; put 'V0ZrQ3x5XmNUK0JgdnVaKyghSShzU0hkRWp0cHs2dFNncVh2Ry81L0o0Sm0vXTFmJFghcmJTRC8raSQlbD8hQHZgVUsqZVdGXVBPS2FMQFU/WlFQSFFMakA+ZlM/SDowXm9NKzFdRXt9cWZkQTxXSyxDMCUvQFFvK2lpOTRNNyFAKH0jfXJnZmM1I0YqYW9ESGIhJFRJXlhPejNEOihAXjcuVlty'@; put 'Tk5KNSMpZklAd0dacVFlWV5hYW8pYzoyczpYRTMifkF9XixqRkp9d2koeks6YiNJKklte3t4STBieGh3Iko8QG8zQ3JjMmB8Z2NFV0NbbkM6PHdmKCxaaWR8eE10S0olKCssUSkpM2ssclU1aFEkWklheiwxVjF7XTs3MTFKQlhiI34jVTRzSyVwW2FdMWVqKy43N31vdTRyUlRmOVM5VDAhSzxb'@; put 'RGhLdyZaSnZzcUAxK2tme2M0b2p4TXB2TksoU1I9OSUqV3lIKXtLWX5nblpGayJebWk+JmEiMlpgPHBaKU0oMGJ6U0JOQD0hIWQ1bnFbdG9mLjVbKjlWSFVlRHRmNksicUxxcW1MTjhtKUxTSE1qPzgiRDZhTD5nM2FrWGxYZTxPdU9MXzM4fl5MKSUxYHg7ZUAqLi9ZL104Z3dSQ0RhNDB1OHNq'@; put 'SzpXL159R3tqYU00Y3BsQ0cjPEskUFp4ZnZGb1NKPjt3THtINn1ZY1lSP0d1U2ZQQUh0dyNqfiUsQ34vbC8pby95Iik/ckViRj9EOWIveTRda314byRZOnJkOjhoJXUjVzNid3AvOVhvaDkhWC5TKzZiV3pEYzw1LHIxaWxmOWJ7bHIjcmN1by9EYm13ZWNVZmx0R29laj0lPUxTbDZIIks7PFkj'@; put 'MFJzbnM6WUFwekg1K081VVt3SlhdPlkxRCRTU2RNc2pdM29LcFI7PHVUInJPIy5MSjojSXVKTjx2dGQ8YHlKR096U2MlSWxoSHxSelplYG0zYmJZQl5XM0YoIktlJWE4W29PKE49I106VmNqKyhSNDQkTFhxdjFERHh9NEZHQ31DMix1QVVCKTIlWUdTd2pKbmcvLmJRNXR6YE46TD11JDtxfUM1'@; put 'eSQ1Q1dOcnNaMjs+dEBWaXlJeFtfZStPXzh6W2pzPGNnLGd7KXdodipjI0NsamJlazptRCZQamV7e1Q9cXc4XncjfW1EW2x0QH5EN0xTWG9tLCYiZUU3U09MIyxMOGlBTm8oVVh1dj9JWndZVDNgZ0dyemJtMEU1QThKSmB4RXViO2dCNVd3aGNEY3Uuc0k+fiNJJDZzbTQobzlPQlQwZkV8NEku'@; put 'Zk51V2BTOUwvTFo3YmE3Ymx7VWpTZmBlOng2bH1TcTwvWyZaKlQsX3FxaHVWQCh6PypZYzU8MlVWfUt3Xz5ibkNQXlNMdWtQZn0+IztsYj9KbSpkUSVsZVY+eW50X0Z1N2hZel9pLCh+TSQzbjxDQDssRXdYJXZnInVBKDdNI2tlPy97flN+InUhMztmL2ZtSkA7WzhncVEvb24uPzBXOndYK1po'@; put 'Q00wUjlCZWxtWCtESF55fkZFQ0pVYVo2cypDWy5GTXU5SCVpe0p2cVN+UktHXWJXISo7VSMoampheDNAWC5td1l7dzNsQyMpOGQuKSlAXzgoQUE7OV1uVlEjYUNzRDhYYVVlRE40dDtzUjVUblZkLkJSOVgmYWhKV3M7QHtpTX1lIkdBMmxiO1EhbTJJZEsiJTpHKGpHL2VlOk16ZlQkdD8pUmV+'@; put 'YXtzLmhNWzNqLm9nOiZ0LHJ3T1FScjJDK1hlfiNRUkRyN3pQbDZPdUcjZThBWVRqLkFFXyhdU1QrRHE+TnErWSNYezo4Pmp6a2RBOi8sYlt4eFdbSCZtR3haZnhzVn5wZTN5SVVDLmNkanlfRXYsW1Z+dF4mRk4hb2Z4bmY/Jj0sLmM9Vl9faSVPNn4scTpFTkcoTnJxRkgyYmwrPk8jblhxfVk8'@; put 'fHhAP1MyLjFGd35qK3spIWFaQHB2W2prej91OFdvQDZvKj86bklmU3ZCXl5LUTFTNSZLWFkufGw1IVBeeyJVSnVXJGoyRDZ6K0k0cVBFVHxoWz5fRWtmd3l3fGRpdy5gOFFtLzV1ZUJEMXVsRUs8KEZEPXYyenlUekMmb3VeMyp8WUcjN1glI21JMEBMY3xWUmcwSyZrbW0la2JgQ0Yiemo/NGFM'@; put 'Xj5Kdyp6VFJvNUclMVNvck9TMlQmSGghSTo6PjZVeGAheGIoN1RCTl8lRUF4cnc6SkJWNjs2PVR2bCpfbWpFMGcyWjs9cGhHJGtfdVNgWDY7Pkgsa0J3KzFAWDt4T2ZIeT9TNHJOWkRZISVqV18oQG46NUw9b01zZSFgKlJYeWo1bXBCenNiNWxuUHBafnAxIzRbbSlaUkBhKTZwR0UrRll2P2Fn'@; put 'bjZAMk5VKUt8eF4iTztJM1NKRVN2I2wpQ25FWFpPYEE5Q0huXWQjRD9eQjdoZWdSVyZeNVVHaikxJXglcWBgKW9MaSppeSN3R09vbWsxOFtyJHs4QGRwbng4TlJnby5NaS5GKX5OckZdXWk/OEp5ZXE/cGxUcilOTixyZ1NFTzxbOzAySTM7RE57SVpJbFspJUt3RVM7TFIkbE1SYi8lensxZ3tj'@; put 'fm06JF8pSilKdXtXO0wkalIkclpBd1B4fV4ieGNwM01CKmZ9Inw7SktTbGI0LmMoRUYlUC5vXiZ8YjJ6YDFCRX1tMD18USNhQkdvI2l5NXhIVm8sVnk7Q0AlRlJbcilwXSRtS2d8OERHYHpYOih6TGppakkjKE9bdGBQPDpHJnA9UCp+PD58SEZnSmsmKXcqNnkrU1g4QElhczkpTnB3SXxHUCND'@; put 'bzVzVWtaPCp3Z04xST52dmwzTyZXQHp+cTxsZzVHM1ovfHJFMCVAI0BHNXhJfjo6e2pOY01QVWtSSUwxbShTPilHMntaa106SyZtcDVtK3FzeTdwInw2WHJuYmlVd3Z2cVtqZTRbMlJGflAmdXkjSmlvX35wR1U0XSlrVm9GPjRuM1EmeVtPWkZwX2VlI2gyMCxBbXs1KH1+ZFlJU091NXhYPlZO'@; put 'O3A+NWJYcFsuciomLkNFWEBmXTB8bCgkZko0VUYve2AlekYhQnF3LzFbTlg/WWQ1VigoMklWcT4wW2lDazlQUGp2KDNfZzlGUUNQRkAuMUxTbjllOTlJdUs6SXJvcU84bWpQJnU4Zy5CVDQvVT1OaTUmSnVzKCRiS0gmLzcscSRpYFQzWS5+KTJhJlh3I1tIV2t8UXp6TldNc11uVXRqRXtKVWpX'@; put 'eF4vV2MuRTo7THRlI0lzKUUpPEpreXY2fEkzcDcuL0F3OUhgJE1LKkczSCkwMjJsbzFgZWE3VVZDSz56dn1pUFBPKiRVYyRpOyhyJmMhRSFBPW9VV2tBfVs0dzh7YnNsSV5KeGMhQk1rajVQfEpfRGVydE9mTD1zdX0mLDQ3aSNAU10sJCtPIiQ3Ll5nSnYuJU5RKzdfST1EVyV2TTVYdzkwSENA'@; put 'TmwsO0A9USxhX3NTUTpIZUspOUomX1hYYiliJWBHRGJoXkVNMVh1W35tPWkmJmdmKmFWYjFDUGM2dTl4Tk5lVi9gcUxFW1okRjd6VipoU3RxXnByQ1t7XmxMI35fYztabjliJH1qJD8uUUJePEZNciN2JihKdnliXUZXWmpwOilMKW54KUduI2ZaUi9YKWBKfnBXMFAwRiROfVhuUmFeODFiTnx4'@; put 'SGBvKFN6YTxBTktAQyo1flBfUUBuSEY7QlYuYHhnbkk/fSk9cHNPQFNpL2VzSkdVeHYxT1M0YTpVblE0M0FscDJoTkRjcjZvbSVuMjguMWpPQSNuZlQpIV9QdjBjMTY1ZTo1SE15T3BGUmV5QzYoZzBbUXBuST0zQjJXSHciKEMrKDM6TlUzV2EoVGJhXWdTaC4uR3ZWUWdDRnohKS9NLihLUHBV'@; put 'fi9RYEk0LGQobSU8PEdhZG1tdEl0UFBVUjw/WVVXfVZKJFBhXktIKEJ4VTQyM2M1L1oidTRgdT94RXZjcSZxdEFXME5bJlFKNEYucDN1aHlQbXZ1TV4uITBie1hOYz5UJkBpUH5iPHdhLlBKVnxjUmJjWlluXnZrXmBZZ0V1TUYhPlI3KXhRfVpbVCUmfjFva1J2cDNeWU9YSDs7QWovY2Q+JjdY'@; put 'PW9YNSR5PU9mYnxKe1YjKjhVdkNVXz4pSzcuNE4iI15Lb3ZgUnh1a0khL0w/UE1iT3QzeUdVZDBhTHE5KzR8b0pmUzE6Nzs6Z0Z8aSgsfEJYMXBuSms1JSZQSmVHaXExVl5pMz5kc2tAdWZ7SW5sdmFhdDZzV1VsNF1baFp6NSRmaHpFSjp5S2BCLj9QIWhaJXRlIW1fR3kqfjNSNnl6d3E6N0la'@; put 'ZXchaGl5WThaYCJSeGQqfmNeNTBOeEFaentEWGB9QnV4LktYWSkoNXVLXzlXT1R7diVHNXJuIzEqaklpbTk1UlVHM1omPUd3MUI2MV0+MnRvW0hSKChEYWV8OkdBdjtbb0VoPHYxPzFpNm9VMFhMc199Z25vYiZ3bCNKb34uZChuQTIjemYwc3tpb1lsQl97SkVqVDYlXi81QylYVGdofXRTN0lh'@; put 'YFhIVzQpYXRNJklVOGA4cy9qQWE+Y0dybjlpMzBPWi97a1YjJGc0ZzgzN29XWjltcEdmb0hDd1BiIl9AT3M2WVRYJVYuTTQkZzxCK29CO2olL1lraW9bNVUzemxodF5MajhwKik/JUhYLnh0OmEuUU9tay9HSjFZWndNcV9SfS9jNUZRNCkkSkJDIil0fTxSRH06JX4meXVfRG1gSWNfMDB7L3o7'@; put 'aCNPfG9mc21xYW19UWdfSjVCST54SFs9UGlqYXZPSF5TNzxDW1hXMUd6ZElDOEhdUEgoYSQ6JVR0KEpEVnpvREooPyY2Ll5NLnxQX0U9P0lHI2xVWC5SfjtSSkwud1dZVDYoYSl1Sz9meXk1UixNWCglT0BOcFFGIix2XXV4WkxgODtmW3AzUzZPbTVDP35MVylMKjdleFZdTVVNeCEqIW4+Xkdw'@; put 'aHt8VHhfWSUpMChVXU1YRzIvRUJCczFxN1ZDQExmL0kkUGZPP3hrOTRGQz5IQWpVNldPNkhVfSNAbF1NXTNEMVhoZ0p7LHY7Y1NTbiJbLl54KmRCXTVsTWBxZCokVjltMU9ETHcmTGBKe05gI0thUDZGMCJUOCxdOm0kdyJpK1ldLFhXLntRP0l7WlFEST9ic1hdKTRvamlrTCRRRGs+JGl6YkhQ'@; put 'P3leRVRwQSl+TEhnSG12PUhFSnhDVXVYbHs0Jn5kTiVDWTdQeGxsNjRwajpCNHJCSjdCRE9Ce1NbUTJkQHp4bjJ+OTgkSitNREo7IX5XJS5CcV8hTk4iUSxVdC9MODo9cF5YTms+UFV1MDJVK2NjPWJUbVFrWFJISFpyR2lRUjF3RHwhcnROKUdbWittcE4qV2diaD4yWmM/KHk1e0NdPV56Olln'@; put 'ditVMypoWXwrIWl4NGtxSXhLeURlLH5aTjZlUC99TlhGMSQma2RndVc2XTcmJDBWckpmXVYyRW5BazRiZnZmdHM7P10+e05uQHE1SDV9UVhMW0ZDVGkrK05kJExdIUgjZTc3OiR4V0ZHS3ZeMmcmPHJ0RXdMZ3YpbWJkWVFeZ3l5cFE+Jk9xO1hGd016d1prIW4+M1Z5TDQ5YHFoZGtyTXU7IT8j'@; put 'Ilp5LiNGRDRfc0ljelNaW05sTXJhYzluPD9wXzw+VEdJX0Z7UHtjU2lyK0J8aXpERl1+Yi9LN1BXclUrU0JHaDZbTFYkP2AvMUp7ZGBoTC5iX002Qj9PISYjKGxTNXo2KWNrN3p2UDVtY0IkSW9EMmskQT83KVVSPFM4RXAja3NBP19CRl11Y2kheGFATV0/QSwkb2QrIShgKlFXLGFZbXkrYUJN'@; put 'eWxqUXgzZzV6VmNLSG1pWSxbTDYvd0NUeD5dP0w3aCNkb0UzeF1qTm1wc0Jvc0UkM0lhdS5tIW53N0dXdH1vaVRRQWQ8TzJHIiVlOmZbblUvSG55T2U8NF1ZXU44cjpMOyR3JCEuMG8kcn4jdWpeWkBmWHR7PHJvXmBvPkd5ejIrVGspL3YqNl1YMVRsIiI2UnovTE1kQ1Q3OXhVanZeRT85Y1l2'@; put 'ImBaSHw2VzRYIX1TPmkkJkdLVkVDSU1RSlgiRiQiQ21qSz5faUx7Zl9JPGEvWW4oOzhRNDdhTmUvVzQwWig2SXkpKUNATiI3UlpuPmRGMDUrYXAlK05qdHhgdypILi9zQTBeLjYkbT92TH4re3hOLDRYc2xONFFQQnRBe2JeJjleNGtdQSpabEh1d1YzVyt3VkNGb1ZXU2BKYSlaIUM2dEMhQjxm'@; put 'MWdOZFJxcW1hNWs7YFJ7NiZuRTpOYUJuVDFEaz4pS0Vkc15RbGZLcXx1ImcwJk9PKHo2QlJFd3dSSEdmaX5LfEQvNGd3SWJVJnxNIXtJemUpY0RZRCpQZnN+aldsUF8jSmdfTktnN0k4L0xxRnprSmd6OSU0PiQkVEZZbG9oN2ZtVX16UjxOVzhyMGhZVE5QTTtvR21dJHwzKkQ3SXF5TmxbSEA+'@; put 'T2UhME08PjQoTk1jNmBmNX4jV1Q7SkoudylbcXFGLnk1STEraHd4Vj4kSTREZi9bNV5CTFlAWngqOEg4aUQhSmEzeW9NVXFjI1tbZ0k7Y142cXZefik2Tkd0fWkjazp5QF80WWNfOHteMnV1UEFoSHBEY3YiNVpmTjEwR3V3aE47dl16OnRKaz8ofmg3WlBmfUpLfl16QD1JTzRMa288WFllRkE2'@; put 'Qil0TUNkKFV9USVTe2VMM0MpRyRTQiQ0MFcwMUZYO19ncjs9eUNQRUQ6d2o8L2dESVNNN1FEN3omNWlnQzE2PmBySnpEeUUzXV9CZ0FfZ3RgZkdFSSFIVl55I1duQ0Y9XT4kZjB+JmhJX1FHRTs1ZVgpQlVJM0B1dzJeOTs3d3IlflRhOUhnOGBmQE5CMVBIZngkSFNbbSZvdF9iZ3dbLkYpLGw1'@; put 'TCkqZHJWRXw6NCk3WTQjJWZFc0JBeFNiUnZ+NHB1aUt6ZzVASEdfUXJoLE0qZmVhIWUsc14rck0lL3pGMn1+JjVPSTBBRU50JVoxMTtTXWp7TTw/WnpGJXs2ezRMemlecSVUSyV7NEYiWF1gRF5wOH1EfXlMPC9NbiNhMTwoQ01qazxkND9xb3QyKEBRd2ljXmFrbUQ3aXByRDc3I08zQT8rL3ov'@; put 'OldLR2wmeXIuRkU1RGBoU1Z8ZDZ+IXlmQ21ZLFA5N2JgV3tCVCp+aGRsflRCLyNFI1glUl1rQztIVTYiYClocEZweFh7R2YiTUY6L1tdMGZDKEo8JldeRnd0M3VPeEdzZ1cwWTc3NFM3SFtITHoxaUIjLGBZI0cocCZHVnAqSkNsZFYvO2lRPT1+b09vNVlPWDAxT2h5JjJwUSlHdHppTk5lcDNt'@; put 'SDNBM1lhM3NBKEExVWksZjohb2Q6cDEhWkxfPHpwRnBTbHliYHZOJC8yc2Neclp+ez56TyprbXt8Wz51VzopczI0WGgzJk9EI0hhLmBxK2xTLFsoelBoVURzdjlVOkAsRDs0TXs9d2JwKCpXTElPX3AlTDJ0Z1g/JSZkIkVNclp6Py4wPkR2MlJ6Olt1NiMyKXdfRz1gTCZiRn5vWHZRdit9LiQz'@; put 'NFRrO1VSNTkwRXF2R2w3QUImbV5pajolWjRKYHFFcX5rTitveClGKFVKRSJ9OGh5JXRKYHdEJVdnQFleWUFuKzZnZVQ4MG9WRk56dGB+L35jYz8iPiNOamBTSDdCPTdnSF1iOlYvWiUycGQwME1GQmRqOEx6eG88MD9eKmVjcCoqOTA6YGpiaDtUeGc9QnYlQ0t1VjRYSXZhRGZ9IltpeC59Q314'@; put 'JSRhRntLdDRhZXRlKURIZ009e0VqPT5ZcGdFRERFfWFZa3tpQFYic2s8LmJ+TkF1e019T30ha0wuZH05OGxqP0JsZ2JETzZwJUVdJUNdYHwoQj0sJWx8OVhuejUwREJ6M2M8c1RzKCN6LG8weXU5Ql5wb25WWjMuVlI7R18pIWJgVEMrLCFqUTphW1p6Z0x2akBDVDt3RyVXUDNWZ1RCI0Y8V3Zs'@; put 'TylQYXhBengrbj4wdzg7SGpxL199cy80X312b3wkdShCbnxWW059VSk2UylsZDV9eTZDQSFlfUYqWlhFJC9gKVAjPlddQW1JTjZNRF8rdzF5c085SzpDM2k+UEpkZikiQyRafjJkfVMrQnYvVzlqLywjQG9iREwpVTlaOjFZYltwRTBSIUtOZnZhN3BiSmE2dShWVGlPOStgIU5AYjV6amJ2d0g6'@; put 'ZlJzOTVCK2t8PkwwTV1QSTNHKjwhPmppLkM3NG4pPllZVi5vcFA+WU81NiRDbE1SKk84PEJIc2VGIiFAPzcyZ2xCK2Z2fFBCTihaR3I+Rnp9Z1dtMStJZW9OWkZhUFNEK1RoRUpPajBJLG9eMnAyUXU/Xj0mYzZ9bD5RVSN3UVJLRyRueHgkXm51PCVaPWBFSTh5QmBLdWFYMXZKZChsTDxTeHs0'@; put 'dkY1bUxTU1glVCY/byk7ZkZRZlM/NjxYdk8wRGl2ZD8mOnx8Nn5fbV1aUVZ7S2ZWQWlNPzpqMk5MSnYvelcqJiYuam93NFpdencqSyR+SWU/aGpBXXcjLDBKWFtuOGhXbE5kZzRlI2FFNytVKChPJWRAakluUTchfkMmM1ZZaSFXKUZHazZlPCRbSnNDQ2RBUileJFQ6ZXdTV2JfWiVAJGAid2BW'@; put 'Rk97YCtsP1smOSMvTDF3e0d7XkZUMUR4fWB+fXo8TnFSUyFDLzV2SWcrPF0hX19gZC9jJXNHXTpBK2xTdVt1Q2xXNHxhe3U1PD9gYyEvNWxrfChXd0Y6OU9eNGUmfHhId2ZeSmdALz1lWz5JRmw4S35mXlBzRj1ve0s4ZWA+RzIlSEQ/UFFsTVd4cGRqaz8scnZeNSU8WGBBfUV5dCRFRT15czFi'@; put 'SGxdXkcvZ1tRTDRHQ3YoWklQR2BwdmE5Y01SJGE2KmBCeDNnKCFtU2B1Ny9JPCltO3F4P05rMURSWnVPViJlP2tsWn1lZXwxVVNtWW5YUT4wImt+OFg1bU8yK3NHJVBLU355WXhtUnBWXzgxcVVMV3ljfXFhIT4pfGlWbjQhenZCTFphTD0pRWtHWiEwVSIlYEBUSGFkJTtaJCghfkRmQSZYOTpn'@; put 'VzJMQDJXXlltME1vN29JaDcvY2xaST4oJF8mKztCaU1+PkssWWA2dlJ0eHIidiJPITpiUiVRbGc0T0dSUj9ZM2srWmExSGB9bjZHVF5UM2x3NEoubDc7QnhVWmpjOlNxV04kNyJ+an1UPndtJXJVeW00ODE+ODI5UjdZdl59V2ZHby9WRXNVSWZ2UUVnKEMqeEdmWENVKXh3elV7S2R9P3h7ZGFb'@; put 'SjElX29TKSxGMm90TUVvLjBHJU8qekpaKkYlVmNYNDg5cHlCIiNXfUY0Ym9+PVMpaXp2Lk9WRm5mT2FjRHYxK0hrMGUvY3h3ZzY0I0NeR18wfWJvWSE4a3ZXJmp4Tz4sciRRciEkMU19cElCaVV9PFt4Kk9DSjZeLzdJSSlpY1ldWnt1fUl4S0t8cUgvRTtBazJzdyhoKH4oZm4/aCZeWUhZYkN4'@; put 'XUNoRktrPU1MQzVnZ1RqUChaSjBwWGN0Zl9eLFlVdHxjdUtuYVMjXT5DP1hlOyJQd1lbUSFdLnZaVW1MWkVWI1lmIzp5K2k/S19PYytlMHJDNVlvcldKbiQue3YvbndNVGRmO105cTFhKzl5JCpiYmg+PFlYPFZ0LHVRUixgdlNrOC80eC92eW10WUNiazVSWmB6bmw6RlJkYExaZyE9L1ptRyxL'@; put 'Kl5VeyNYd15RUDBVY0NLeVZ7ViR9bTdqWDZbQDFyXmc0XnFYOkxFW2xZT3U6W19UOkltJlsjMTdSTXdYb0laUnJHc1JPNlFyTSo1UT5bLG5mJFVENXImSUk2MS5XaD19XVcjL15bVzhgUGpASTE5eV5nYk8lT0RuXW0lQm4sYk9fLCkmUSJsK2J6QXVocHZ5LFNOS3A3O2cuIlpKak80I1osTG4+'@; put 'UWIxcXhkQnQwMDVXbnZCVX1JIk1MdS9qVjUkVy8zfmgzMFdrWk8rMi5YcCVTMih9T3FySkooQk05TjgyR0lSW1R9JEN8Xmg3MGUsXn14MEUhL05rYTVtfj5hXmkmdVNVW1Nsa3t+cV9RRW5nd2xZMm1hO0pqZGpvcVlRQ0pbVDhIKyhNIjRDeng1Mj5jOn03QSVnUVF5dCJ2P14+cXpxIyxPVyo3'@; put 'fXo/UWdZIXR8NiM0cVtFbl1MTHA1Tj0hYnEubjR4PUZBbXR8VWhTdl9icXVpaEdhLjEzJV95Z3hfOkY1Zk4+UWNGZVsjSyh1OT42NFBDIkpiQk5UbHtyWEJqSm1HMXJGdFtRJnZhOE43RCY5MVgqT3B4X1pOdk9CKVkmY1B6W2RfXURRLjJLTmcoQCxIUU51eHxqKjdmPnhSKDNvdzRKXkpReTFL'@; put 'JWFqW11FbjJ4S2FJcTQvNE1JJV84W2wlbW8mSkhzeUBYcXx8UEFJIUc1NGckemN5WE81d0MpJTZwSGpYeU5IQV1GNEMucGZPZj5sYyxhQU9VdythSyhnXlNwQWtoVXVDYk8oanlrWmIrezdIQ2F8ZXlDS0dJPHlgbmFuQ0t+OFk9Qk9ucDRDPk99MFtTbiguSHhCSktkIXxzS3QwPCloZGNUTDJd'@; put 'YDR2aWpoeVErbTFncCkyJVhEPjs+ZjsuLjB0QFI/KlNxaG4+Tjo+M3U/OFhiPCx+SCYuV3d7SUZuRSJhKi4iOyVuT1A9QUNyX0clalt6PXJGNVd5S0ZlRjRhTmdDOWVJKXI1djd6Milqc1JbfT1ReyRkMmNEbTolVjFbQV5hN31nTzcwRzNwVmIzdFMxaDZGYjJ1QTtRL1REWjxDI3R3MDorKkF2'@; put 'QHVbUXZkZUFjW3A0R2BAeV0vam9BTFZ1Njl1TnFhXXMrfm5wQCpTTVJmbzVzODI5cUBObTw2TWdjUnB7SUF2en5jTzJnUUdNOig8X1V1e2FBKlpkfHYqdTljfWJPRHpUVSFLUn1jYDwydWR9RmNPaT0sIkF3dGxaInpAN0Izbk9nV2ZuSWhxeGlsc11rPk94L2tFJSs8SXVaeklFZ1Qxal5JZG4i'@; put 'I2BsQSZlKSxpWVBHN0BWRnwvYzcjWyF2SW4sInVSUDRkPHc+K3FLYyhTeSExfVM3dGVIVyNhOG0hakJ8PWFhWVtScDIxXklnWnAqbiYoKkNnSl56TDBSWHJ0alRqMld+cDshR2d7ei81ZlJObTF+Xnk4JHRIRV99NUgqXltqZGpVJGskTm1RT09DLEg+eyZqZGZQcTgpbE4+RCwsd045Jj0mRWth'@; put 'VXBIVGdEWXc7I0paYXguakF9MnhFSWRVOHtqdUp0Ijl5SyIkWSUrYiRDRjkvNVlmQ15xRmk8NFk1dXN4c1kyM2l1Z2FNfDlsVHgvJCs5dXcrdWBnM2x9QmBsYi9rd1IpbGE8OyEuSzNadSNNSnhyZC8+Ym9eR1djelM8VFI6aD1CdndJfSEmSFlKY3xsVCFKKU9jdmVILEVxLnhwSSwpY3FKJm1a'@; put 'MH50QkAhdD8jXn5EJUt4ejdHZFZFPzxCRl9IQnE+OkM1QXdvIjh6bkF3R0hXI3pbY0l1SDZNQzM1YDpDWCYoX0d1QilJcy5jJUx6bGdPeWk/NW0qcipZbitiU010In1DS1dxYWxOKz4vO0ldc20hIkxdSXMvYlM+dis+bnEvWk82YEVfRCgxNXM5WncucHkud09jL0ZRWVRNe1E3I1loUExZLG57'@; put 'TD5bNXEuM3g3W2MqYG1tZUNsQDdiaWNJLiR4cVpLXWlJbmkqfHAqMjhSOjQ1SS9QTWFVO3dtWWpIUy9pbjdJXWBebjtrX0JxZDxqXi5DTyR5Ykped18yb35AP3A2aW5BJEt+WmppK09vcz09PjRtTDEwYX1MMHBOKTlPbn5JUmpOaG9TKStRRX4hYSEpJjw9fTVWSGBdQXZQOzUmIXV0PWo2VXQ+'@; put 'NHJ8O0dnXVpTRltAUltyWWNzPjdCcWpxVCRJVG13KCNvJklyXTFMc3wmZEgjJlJWKUprJTUwe1dWMEgveGw1LlU0JVV0flo4NEwwemZZWismN2dCO2shaWdDRFRmbFVBQT1RNFFJdkpOOk5gOiRrc3UxVVdwa1ZXWWFXX2RYdGp2LnY+P3V0bi84I1s0cmlJT3xrfU0uYE9lUVJXdDN0cj8jPGt+'@; put 'bkN+a2M8ZntvTlY1MnhkIXwqKWIpWjMweHB+ZSkzKnFSPlckOFg0YVg0MURqSipxUTlNPSVDd316R0U8czZzR3xoK2ExVmI0e0k3YVdNYGVJR0QkUjV6V1p+bE9BfVE1eTFTaXs1QlA6bzw8LyZBSyNhOltiO0pKWTRPaTMhRXQxUk4vVEc0TjJ0cSR6REtEXl9hRH17LlRWZHxUW1YvLH4uO005'@; put 'SCtESnMrZy5fIW8iInx3I2o2ZjhLNG9KMyNeUWJpbGZLbT1mOmd5RSZwPjUsJVFlPlsrcV0ySFZIWi9MTXozc19lbUQyKUkqZTJMbl1ON1BCemhoamswWUhwRSUublUyP0k1NVA3eXgqPWRNNyNJLmZwY3NEVyVxNGQzJDdwYiZaVjV0VnVEUShoSGBuPkwmbm1VUE1WQCF5IlVCKGNjZl9jYjYs'@; put 'ZlYpQFlYMTlOOSoxPmU0OT5+T1QuJTVRdXYqcFJ1Ulh3VVlCbFpZez5KVy5+LHZeZWFTbVB4JVp1IXEseSMqVFA4OE1FQTl8RkAuMD02Zk9Fd05KLkJxSVhSfDNCWnE9WlNqejFoKXomcjFdZykzMUV8VC4oSipMPzZ3PXdLXypJUTJqNkZ8MyRkIWBlaU5RdDI/R04yV0sidmJUZ21nNThlblV6'@; put 'SnRSLy5eazIsWDQ9P3g7TD5fOVpENkYjaGAvYGdhNiQsPEckT1NdRlo1Pn4xa1VGOnsrX2NVQmY3PXt0NWdEcmFhVlgpcTAkV0ldVmtHVltCPWt8NCQoRk1VLiNoMX4yaFM9Iyp1RTghNmswIVk3TDF8UiU8SWl3PTJbRUZedldIcHkkMyN6Ly5mI3Fzd3NXaHlPfHA4PVlrSE41KDZldXdfUTNs'@; put 'UzRfcHVHaWYlT0pMejcuJG1dRCNKVV1DMURAISleXmp6JF4lZGBzYWxlO2pmd1guUkxIdW5WSngiKD9CZ3hDeHVyJnRae11sNSNlR0NlJlNrRnQ6bDdPN016VWhzREdjUF4+OD9MOT4xVGUmd29UPFZddHtqZyJKdXtaMlYsX3hrI215a1h7emY/aXEjLCZpIyFNR35RYkpuQyZtckVAalsjSypm'@; put 'PHt6b1NbRjdOJEJlR24qYmAqPnwyfmEsbnZSQ0siQ2V8XkROYkJFZSw7TDBtME40Q3BAOVB6W3V5SCNOKVBjYVlMPVJPNUNpL0VITDdQO1FHUmRnblRjMzxMMXVJfF52eD1MLjhPNExAPiwqaUU6K2QvckBJRUYxe3MwZkAuS1R8e2B9XkpQbGoqRDhycm83XUFNUlcsQFZ8XWBueFddJlErdC9i'@; put 'VF1IRUBNVX1PcVtzX0lsPzFxRD1Efl9eM2tkSV1jbD9UR2oqRmQhdkgse2VZdiIoUTgzdGt+O207U1Y0YTd7WCZxRjBCU34je1QzLmxaVWwoRH5fRGhTKn5jLG4mSmdILjszNkQ3UkNOTjE5bGJrQ1daYC83bTFQOmA5QWN1YkhLdiVZRWF9L2tLYyFBQmFwR3xDS3okbFV7JGI1WTRDajk5XTxu'@; put 'KGZsOzBEOVpXbW5aSzVyZFpNWFphQFRxYjtJISokcWdAWlIoSXxmPkw8KT9JXjxGRUVdRXBZZUxGKVZKUEtFJS9jNSF3Z0l9O29vbXcvMT07TitVUy40RWA+Ki57MVc7azc7TmMod3x8Ky9kYGBxbyRNO3ptOS85MktTcXEwTURhOTpYdk5eKT0mS2pee1hMZlp2dEQ/YEVROHNnak5gX0sqJi4o'@; put 'UHE/SW4qTkdGNV11RT05XWBLS3tURWd1dSZCOjhQSVA7PzlrT2BySHlfNFFAVGF6ISlleGJQXWBAc316UXw3Sz4oSVQsYG1lYi52K2Aobm1eRz9COS92S1YjPH1ZPF86UU8jdkRJY2M7a0p3fElnIjQjLGEjZllMJm1yaTFNdjNgMDVbc28+Qlt+T0lKXjYkaT1ac0hHPHNpIzZXQ103bl5IaiVe'@; put 'c21wZ3h9WW8lb3Vhe0dCKUowRVBeSkpYJFNJRTgzIihZck1eVWVrUXZEMnFWUW17VXBifit2aUN+QnI9KEpzPD1UTTU1b0Y/PzxJUmhmVUFkO24rTDNsI0Jqc0QjI2A0eWpmVzw6I0JXJmEzfnl3Zzx6NGFHKHMuI3B1ZSNVP31AOTNvdVhlS1hJd201JVN2MCRkTFlLaSYyRVNQcEZ4S0t9Z1gv'@; put 'IjNRMkZJMk8ucztyWDxfTHVnNkg6PUxjMG5McWA2VTBfQTlbISRJNHo5IWM/UGwpY1MxTT5kI3RgekRkLkRqL2FvcEZOVk1NXmkpSXMpLk0iK0k4bCE9cnZ7aUgxTG9gJlhCJih2MWQpUSNwNlpUPjk7VTJWckFgPn5SJEFSNHk4ZlNobE9PVkAzZ1NrRFNAYG1TW1J2ekooeFcwMWtaPUA4MWl1'@; put 'Q3l7YUYsQHNTfExqd1RhVzw8R1Y7I3UkUT9uVUJKYUkoZTo+Xy95eDdwIT1OSj1ALGswcU1HQzQoOkVifU0vc2BkOkZkN21HcyFDenNsPmBzOGpRW09gOXYmJXNfQmhWIjJvdEl2YSRZa0p3RV13YG4hRzF4IX1sMS5kaE5uPXBgIXA9YnVtXVp9byVnKHAkcGRzMkBRYjElOjx+LyZJNnh4bG9Q'@; put 'bDxwfTBEXlpEfSQzbi5iTVtQR0oxVzpwNTJ1Qio3Ikt3IW0yJGF3SXQ4SnNOZGdsI14wQFZsOmJ2L2hbLjQvbGJuW2x1Rip7TUFKMmBPckR2P2IqWGY6Wl5vc1lHdTJ4ImV6ZU50JjlzTSpWRkhwUnpPIUJwa10wTyozSXF+SSslfTxPRzhqcjdxZmNOYnllSysofmQ2cG4/NHBIc0thIUFMMlZ7'@; put 'cHkrNztsYExNLyhyZiNOYHJiMHl4dD9MdF5GNUx8eFY/MCVxVGdpS3ReYVI9KUg3MyEkb3tmWVA4VDxyWyV1ZWJwSmNiUjNaZmF2UiwmTFojKFhDbXs/ZVJbZXhrR0x5Ni9kIyF3TGw2UFY8TXl7ZkF2eWFUQkYkayx5TWRBIkVbeFg3YDhfIlp6eVA2Rz5oaCMoS0RiMExxVitLeiQ6d31gJXs7'@; put 'fjI/KH09X1RdTHo+cDk0UFhoeS98QG9bMyEhJl1RcncwTTMmQUE3LGlffHQmZnhGOCw3JiY7KSYpdGFTYXY0U091bnltW1B5OX1DRHFFaz9OUkYsemJNUjd7Vm1qb0dgZnU2WC5YM2dbQCZUMWM2b3lhP3MqZ1A8b1hVP3UmeVBqfnRdMVFfRCNIdVckKiRAa09kS0Z5SXdHKHwvNWpTZjhUS2xh'@; put 'On50I1lFfT8iVjxCeyM7L3B1ayEvNEVNMEhTJm0qZDsuaFRvSCNAZV90a09UdCJ9L29lLGcuX3NQSFVlaXRDdVREUTFLd1liNCM8bmN4NkBuQ3NibjY3fWdbViFVW0l2b2hiJXszP1tbPn5hU09WJlV8LmBeQEc3WH1fKDBJV0x0Kl9ZdEY6enhYOj9WeWRtS1hFJl5SSmRtJSRtc21mNlgyLGNi'@; put 'd0ZLQHVwJVNvNFlteXF9WS89JTBhcml+RDIqLjN9PnxmTXVZX0chVCg0cThqckNsL3x3ZWVZOmt5Iy5rQWcjP185bnRnR1lPKyFNMl8scyw8KiojKGxoe0VxNjpOM3U1SHhnIVcoZjtsOUFRRDpoSFI2YnYwOi8wa3BwUFk9eWZSfUBNXmZCRmNWR0lRVEhZYyhXUl8sYj9xbjMwL0w1ZGlOTylx'@; put 'QGVbVStyQjZ7MF0mV3IzVz0xUzUoIUdbMHAhaT82bEN0OVJbMiFLWFYpMiRQX3kzfkhaL2h9cipAWkdWTU9kJD5NdXV9QVJaRFRCdiIsIz0wS3lbP3xYb10lZGJVbE1HKCVtaHsyND9JK0NKZiFJLkA1a3ciSDVpKSkkfShRIUxESGEhSTpFdUBzYXA2O29TQmJgbyRsRjA4Lmh0X35GIW9nYG5v'@; put 'SVJCYGNdfFl8cU9JQ2JhR0Z7Qm8pUExSbygrPzEsQUUuWmJGd29jOSp8YUlxNHF7V0ldW0B6OFcmaiN+O2AmOSFwOV4/NWdQOHlidUpoJjYsISEqbDk6bCRfdlR5NVcia2RzOXcuXjc2WnpxP34vZHJlPGxaQyJ5QXhjPGZAPF9uT0ZsLyZoIV1zVyRxe2pZIiRqVldsODBiK3FNajMlYytLfEMi'@; put 'JmNKL2NYPVNMbylWLDZSRGo3aCZYP2R1dGVsNWZedXlERHhpWF44cmBKMCoyVG9pcG1jRDUuVDQzPkBpVzFRVk9zMShGa202OGN6MjZFYTVOeUxUQlQ2Zy8sNzQ/L2dQSn48VjVIcCxdXTR5b3hNK2I3QXI7WWY1cjt3bF8yZjJMQCFARERfQFlUcmlzRykpNUo6bzFuSVhqNCxmQFRDKUdLL2N5'@; put 'LHRrO0M2cUBybVEjdD9WfCozRVpWYFJ9MV01L3t6czx6JlV6aWh1b0ZrSGcuUE85UWZKL351T0VEenQjSiJYXztdZFIhYiwxVT1BUyZYP0IxMiVsOGRhd1lCenYvVVE2JFs4YCNoKTd0QkQiX1JvXTk5eWdHTWIzXVBiOUZvSXI2MUVQdk4obFMsQns0Ik4/MGtXTTR6Syhteit5cDR0dkxQYlU5'@; put 'LmwhPn04VX5GRWtRZ1puQFRHVkYhYyRqTnJoSERObHoxPml2WU5mUT0mWUk1aVorLnc0RjFqekB1VmJtb05sQlo2JWJuKElAY3VSPipBOEk4Wz9jPCQ0SVZPdjovYyFqcn5yMHxJfS4zbT55RjByOERlMTVLZVA1W1Y8Q3B7bUJ0MW14PU0jQGlvZiwrYmlTMn1MLl9SQ21sX2FheFtBP2NRd2xS'@; put 'cismYGxXNSpDP3VnM1U9VnVXeXVBOyYiKkpBYD1uPkxkKURWdyNfNlY4UlN4Sz9fampeMlA4Y1RlSDxkdS45e1E8eTtxWlpzXU5QNGpuTXVqZHB2JmRAMGFKVWxxRyEyI1A8ZXBkSyhtZ2lbOFsoYmMkWkxSLi91VGkyOkNGdmtBdDw/UEwyWSkzfnJ3Ni97P059O0xEUz9SbSVDZiRYaigkeS97'@; put 'eltbMkFQL0E8Ozs/LmAwc1BEbT0hZWNfXk9XX19na0wpVnYqZkwwdnx9NlZXIT4wPl5ZSDx+d31SRU5VOExiY19Nez50NiZ+YT1GaD9zO0BDSHYqZE1hPFU9WjVJL05wdHpWWGssMVlNK196VFBrYVQ8Y1kyTzxbWW0wcHcuKE1iXy5uO0FbWko4JTAwZi9he1MoW045RXooeUVmSEV9bDZFaX06'@; put 'd28qWXtufFpPMFAqZT1zMV1kZnteSkIqcTsiKUIhTlR1NGJ7VChBUyluUCEkdTBhP2tgO2x0Qkc/XnVRc3hyb1sqc2pRUyl0OGRSPSJVVmFJUX5fZ3tnYHNuOWExeUg2STQ6ISxiRT1dYC9zQHI5TyE2fHElSCFRMXNqazlAVSg3JWZnMH1SNEB1NEtbZEcmVlB1fEMmWUQlZylUbndxOFBXYU9H'@; put 'OSxkWHdxY29IZnlDRypuKV46MXhiaW9nKWErdjZlbCtzb2QyWCxAJUZ3MCNndnQjVm9pTW88bjtsdklmUFUmRCU/Vz5xWVdjM1AzQ2lHZUAiKXdOflhtaU9dTmJHdzxfbmhnTCM5cTYpaExSXkdQJVBjUDR6OkwwKzFuQiVqLlYlIkt3b14ycjk7fiVAP3pJTGsrViwyKTs4MDEkbTo9OmVlJi5n'@; put 'RDkual14VyljeyNbamJLS2ZMQ1J4Nm1CfTB+fShXayloX3M0ZlIsa0JfQXksUFQwdltPd0VNJH1acHhldzMudUo3Q2cpaXs3LkU9fiZaUWVEOW1+PEh8ZGJBP21RYnZtMnZnYz1JQWRCU1oySSVkKntyQ2drd2xFfldCPj5sMT1ENltoYzssVkElZXtdIUNCV1ZOY3UreTRIMkg+QUhafF1rW3hj'@; put 'KTQqeTYqM2c2THF9RH5ZYnpKbXQzVkI8Uk1kayV9aTlxfXRdbzxpNjMiYlp2dndWJlFBVXtVUU9BPTIud1p2PHl2MkhJZ2oxOTxCe21XMTBRcV5AfU9nM1lIV0dtN3ZSJFNnPFJwMDJaYzN1LlJaSFs4c1tTbDUkRF0sZl82ekBbblU+X3FlRHMyXlg0UkgpKyVmN0FbfllufjsoWzphb187SlVm'@; put 'UGwxbnF4ZixYaU4vYHk7I1syJXckQlB3S1VNNW1lcV4hdkZNWl9OVG1HbXkpcShjQTg8c3QqJU1Yd0E7alJjJWs9NzVGbFVQLEIySXI6dWY/ckFGRyk7RlJpfSlpOX4ueW5icXpjRHcsVVVKT05xOzVkIypdOC4vQ19OV2I/Q0QlUFQ4cikyYVY/dDVJX01uNG5Zd1UhZlQveVooa3V5clBKanRW'@; put 'Olc3OX1Gc3RJT0hBVEl4SGZ5QjUvJmphZjY/bW0+UUhaJnF6bEhyM3UlfU1Aa1R3UUcla0c2dDszci9ZWkAjZTZxZGJZXWk2d0dKMmg6LmdwO0pGWVNAXkolaWoqUWVhdDxCWiNgOmxfb0VWanNDJm5nLFohbXRLJEJTeF9jWktqT3I0XVp0ZlF6biZ+fnYkKCEofVFDSzx8OCQrOj1uOF1ZMmhN'@; put 'Y0JMLilzWUpjQ0NnUVBnQEwxeF1bNCZePm8zblE7RFV5fkd7SW4ldWleY2dLODMkTzpPS3pTWkxFQ2I2JF8lWm1CfWNNUVlMLEAhYlRibCZNP3UlPl1VbnEqNGFrbzZYTi9bdyRkYVt4Rj1oRFdQP2tmN3hrISY1Uj5yJndZVEJSMURtP3pHUlQ7ME5xZFRpIWJeW2E5VFpoMXBzZCpmYTs9MDB9'@; put 'W3FqcWozRmNmMSo+dT9dUWVYUUdNflB9M2wrXTFSO2BJalZAb1BDYSVOfVFZa09OOGE3S1lrY3gqbno5bEluL1c6UWBKPV9vMyxMTyk4UXIyXjh8dmBIbChAWz1tU2JgVW9ZfmZXM346W2o9fUZWdEdMNTZ0aWQ3MXYwWFduMVFoOUN3L05yP3piPzpXODt+c0VneFRze1gwXz1aeE5zIVV1MnZW'@; put 'cGF9MldzczgjMjlRX19+bmR8PX4zMXF7Xlh1Y29wWCNWa100bjhnKnI1NjJSX2V3R11Ie1d0WStieVFtSnRrI1NgZS4oY0A7YEd9K2RzbkN8cHB7RXR2NS4hc19EeHdya1luRXN0MTteNkdFTS5zMlJuPUVdMTdWTEJqQjVNJWJWOipQZ2B2OEV5KHJtPkVRJXZ3UFdwKmhQMnwqdDJnQHc6Kjo6'@; put 'aEs7WWVZMS5bb0ovUFc0QjE4ST43IkFpdUxCLlUvUnIsInR7ezYoPTV7dT5QM1Q7OGx3PyEwYmghZTciNDl5OUYiWWtTOV9nKTBCIyU/ZExyLlcpfnJxKVN5KnRRZWA5d3QleztWVlAoSihLUDY1N000QiVXQCRDTDROSi9Fb25DazJhdlVXXmtHdyJLXkwuNElJI0B5Z35rS0JBa2dPeSUrdUFb'@; put 'JjoiPXYwPCZGRy42RCYuQVpJdXdfR2p6QUA7dSVMUVR7IUg5Ym8qJGZxI098JiFAN3RSWEhKU1phNHJQcSNGc3JFYGo4d1RVRHd1PzhCQ2drTWc5c0o8V0c2Uj8+L1ZhZXBjOG40Y3JrQ21OdEYsO014L2pkXkxRbyEwcV1NTUhmYmRTUy5EUl5VRDZ5K2FZXzAzWEJYcnZEeT0lcih2NSljel9x'@; put 'K1tfPk1sRlokaGYycm9MUXImO25+S2o1QSxTUj1zeC4rKWxJPnIpUSJrLDxXQz9iQz1eJSszRFQuPiZpIjpJIUQpOT8lTjZ9OmdAflN5IVs/cmIqKEEjMXM8N0tzMmxzSyYvcHByYD5gImpEL1FtNVVRTHZlRG44UkJgcillT2MzJTtUQVRafVc5b0Q/R1g9VjBXIS4qaXklVHxuZkU6Pnp5bFB7'@; put 'MUlKLmVhREZnVzJbVF89bC5JRXt7bmlJJi4zQFR5RVo/amJTZ2M1al5tKjdkJEMramd1ekdRXUJHdFhNM0dWMHUqK1lvZylZcj5zcT53fkQhcSslXUpFUkJaJXpOamJrMF0zcEApPjFeNixEPmhuJkZ2MSFucXYhNXBQeUhoQnI8TW5APSMzU25HVGoiQykpcDsjL3dFLH5jNyprVU5ValdtM3tf'@; put 'WVU/VzlodE1OYnV1a0JiTjgzW0k0ZVU/aHQjSk4qZXMmd1VuUWxjTVMjSmM3MUk6b1okNVE5MiN3W1F1NzU+aX1CQl05JnZmVHBYenhGeGxaUFMkWHpCNyVGPDh3cD9aS2RJbWFOdEI3e0UvVSVHX1gwOElyZys9I0dQOyQwI2VmLD5Rdzs/S2IjNy5uSVN5ezYoWmVBQ0E/fmx9bHUwP3F4ZEYk'@; put 'VTxAWUV+Yz1PPyR0Z1M7UnBsLldQUVBXQS85OzRFKX4qbU1nMj9pTTk5PmooXWxRPEJzZ0dDTTkya3c2IXglfT9EKiM+PE1DR2k+RW84SmlzdVZ5Z3hqaT5WOUpyXlBKPCYraHwrfSp+YEs4T1crcUdlLzA3M0xMQ0ZUcXA8O1MhWk1od1ZxLl04L3lEYUklfV07IyZqZ0lfeTB7N3l9RCJzUHB0'@; put 'XXpVJC5EdFV8I1VBPCg2UCxyQFV1W0NyWjloZ1B7YjRLVjNlNzFbNj5VZkFWZz83NCtJbjA7YTJKIX5TL0R7MDhTa2FXTlkxb3RjcXx7PkFIRnJLKGc+eUUlR0lGRC8lIzxeZz5jUG8zbi5FP1FrYCs8ZzZ0L2BGPSJxcmIlYEtbOGxrMmA6L1tROltdaSQ+R2BGTmRTZVgwbX5zRnBnd0JpO042'@; put 'cytkZkovVUtpYCJRIzo4dypEMz9BZWApWWpkJV5GcFE/Wy8zTDdTRDRbS3VlUE9tYik8dzA4YnlHRUVlUCViZi9Ka1EweEgqZHBLYHwuO18zemhdYzwpa3RzWWcmXk86RTxNQElYYTAxayovXWZOYD92IismX0FYRkNhaTAzdDZJbSF9WHYqelNbOlMwfX47PF5bTzd1SWJTQFJSOT15SltCUGhI'@; put 'cj5XNEN1MFZsS2pbOm9hR3ZwbXlteixJWUhVLCw/WGlnUUh5QGp6PV5ZO3BCRkxpd0tvRFIlZyx6R207bTV8c1syJW9AKHgzRldnIkMkQEReXWlBKWRXMi9Jbl90PUlkfUFDPGdlPDZ7eDZ3O080RldmaGZJP1FqbEFRM3RaUjxYNzomLz51X0tFeEJzUG5CVylDTy5oXkh1K0oxVyx3VDZCenBr'@; put 'cHFedDAoMndHJWYzU0EsIVs8WyQhWFliMlgyJVI5JDUjNG8lelsvTWZJfmxTSzN5SCJJRDxSLCZwRy82L2EjdzxALktKeVZBVD5ta1hsezVWUGdiKDorOyhzRkw9OS5UbD0vY2lfY3plQlRHfGJ0OV8qUCZJNCE8Y0xySnE9Rj5gcixgX28jO3t4TS5oWGE1di93LkNmUHshYSkob1BUKGUlPXhm'@; put 'WUNNK1FWa0xsWFUvNFNbYXcqLm5PKkk+bUR3KWpPQ142dio/REg8Iiped2pQW2NLPnheUFE4US9dc0NMLEJ7fEx7TXhtdkRtTiZ2U3siWitKX1NZMk5JLEk7KVtMQE5wZ0tPUWFWQ0JgQCN+O31CcCJmNXcwQyY4VHtyYil5MjxwUSFIdT9qezY0c0N7TzlORWI3fTtqTjZBLlIjZDJCfndUOjpO'@; put 'a3E/WTZ6T2ZGTSNqc1spPHx3Zi9VJFRzfCMieTs2UmA1TCVyZCowYSV5QnF3KkRyPk1nQkRmUjAwREw7KDpGKHMwc050MUZsYk06OmxOdnBYR00sel5aejlaeTY2alIhPkd1OHoqXiVjVFchYHlBa1VLZGM0fHEwZG1eX3YqeGxaP1c2djdgSi4oKGpRKDV4OGxLQklJNisvXVVDO2RfYWZmeG9U'@; put 'KzBrOFoiPl02b2tYZ21LcikqVnQkQCpYJiQ9Ul5AVUU0Zi5pRHg1ZCU4aTIhZCsxZ2VtL2cxfHtRdVMwJGUmMy49LlVSbnZddHJmOmJTaEVkTGRJfWZEd2tzKER9aTtjWE1EMzclNDBKY0xaMkIpImFqdHpzfC8xZkZkaWs4VkIsbUQjbVtefksqeE9KJGcld0xlKnNoYmdmWjZ1eHg1KzJiJFB2'@; put 'RzR5dmw1IThMfj1Rb2ZBZ1A4dnkkYnJ6eTZ+YGJLTyphNWJdWVJHcV1ELH5yX2h+MytgRzttRFFadFQubjNpaS9DLGA+cFdsUX1jazdCfHJnbUxCSGt+eFVwTyh7PF5aajg/YnlUfXppN3VIV1JZTGpuJUIzIzBadCV1VEYkYWt3fnBARjxPalhLT0hmRjZtIXVYRjYlK3pLcVIqOD5nWmopSi48'@; put 'PF5bQ3FiVHx6JkA+WFNSO1R2flFLWzhnP1VsT2ZXLmxpRUZdOFVARFhrZGE+XkZ9MylTRjY3fFtGJlJCeVUrTGM7O2NLQWc/ZzR6NGpKal1tJSVtVys7JFBnS0dAU0k/I2xCfkJYVW0pN2FgK25YKDkyYSVbfEIyQ05kVH5gMWJGNWw9Zj4laGNdPlUpIkhmYF5YIUQ6Zm5VfGBnSWtQX1V7P0JA'@; put 'S3Q0RygkN1l1XlszJUYoNDpOVDJeOCUpL244eDBxRHYufns3V1RMPWdURyF9bkZiS1Z5byE5eCk3KHUxQj1aOmttR1lQNCYjU2BUQk1RKSFLdFBDcTo8RUk8I3Y0VmFGSDVIbVZtZDI8N0RrVzwkKEhbcGZ4KTopN1lPTiE+Xk88fllkQlM9Kn1RcDkzdkNqVytzWE8iOW9+eFNYP3VuMiY7fDMo'@; put 'eCVZbGY8SHV6ZnZhSzhEUyFJKl02W3JFM0A5VFQ9KipUSkxvVE1nQ3B1UDJbUEc7QGZzI1ZoOHpzNmFZTSg9WUIsV0NrInpSZDc2YXxLXjw9QTJqeDN3NE5fYCIsOTdJbCx1VlE4Wy9jVk9ha3FeaTJ6T15ydWcvfmU1V2AhRU0maWR5KT0lWmFjXzVbYipnPHthJjtxRHpWJEZMY1BpZjNPWGJN'@; put 'Vk1MdCZgRGFeQiNITTtnT1dtMkIobzFSaV9mdD1pcEoxMlZHXzVnNWpsbSM/ITJdJCtpcyMhVUNMKkA6UlsxMHs7IlIvcUIhPy5SLERoUj5rfi9COG5qeTF0ak9uQl9NbFt1dixsbzZ+V2lENk8zeTYwaD1ffnA5TFNOcmdNNEtzYCZQQ0ZaMSEzLzh6RnR0ZE1ic24lMWluRDdkKTJPVCg6fmVe'@; put 'V2ZePjZARUF+IlN0anJtRmMzRiZhITN9bHFqISQjUyUmNkR0aC5aR0RdWDV4MG5bdWVzS3tJKilWUVtgaWVdPS9TUXpMI05FOHA5bjYoZiUlW0tnPGx7RSRCUVR0fUk0JClQSnFDbnIjM3JuKkdUcyNbfFFBe3ZgInNSeFAoeFRSeUhGQ1JpTFZ+MHZYJGBNRV9ZRiE9NyN6STgrYHBGTTpaTDhG'@; put 'fXlTMXosQ1BSej8kbjErRlF8eytaWUg8YytGLEt2S0ArZCtaRHJMSCprYEVXRyZNN2IjTThYSUh3Z2w6aW4iMCswQVRKanR9bU1eTm02bW1rWiU+W0hgdmRbfE9kKXNbZl9hfGBaVGhGWTVzTF1XT3deJDNLXS59em9CPVhbUj84IWBWVzdULllfT01BVEFdRT1WamZgOzdEeTQ1aUloLk9KJDxO'@; put 'bCI0fDw2RU45UjRab1RdTUx4ey5DQ084MVY/WjQhb2thaWYkW1pTZ34odGMve35SLm5bPHA9bWRvRENrSVZOLmddTil0YzNsV0g6XnFAez0iRTBHU3AuRlEhK0NKfih+WV1JOjFUajdFZSNta0c+KUIzQD5KZGZiLnF6O0UxJCM4Mlk3KkMhdFdZaFU/UitoVGFTN2ZnakBDMVhUbzlDPiplWV1p'@; put 'I31VUCFFSTMlTG18P0E2WVd6MH1JRF0pUnFfQ2xIWGxUV3JlNUhxZEpLPnBlbCM/MHVHJGp0d15ndDFfSXVaTGNTWH5abysxI0d0RSVZZCtHWC5PVURAOkJZdE1UOXAuc3hHemo6Rig8b0AqUjNEeStfdEp3TyNWP2QzZUpTaThkbTFBOkdWLHwmQ09feXpbaS43SWt3WXtQb0NASlpTdD9GRn0h'@; put 'NXl+fE0sfEc6dHkySWZwcyh0dkVsMU1ATUVMX1lpO0pLXms0P2ZHe2F4V3xOSlJHVm0iPVlTSjF4Vik2Y3t3cmFUfCRmeXthWFJEczYxUylTNSNWdjdLMGlML2N3aU9VWjRTNFdCZzFmLnhzNHZOdDJdRUNgcjx8OiYuS0VSN2B1aC98JlU+QjEqd0MkSXVZVWpEOi5WfHQmWWolS3YjYipeKix1'@; put 'bE51WVhlYG4+ZXxOWDJXaH02JDlFZSNyRThfOnM1Nilkdj5qXjY4LGYwRm9WPFU8PC8pQkpMWlZkfCEqVU99X1chXWZyaSlVPC9FVi4jWUU2KjB1OlcoYnEvWEc6VSVIIXNBR1NEejdyWWZpTGlleXh4VCJBcmpAdG0xa2hMVzF6OHxSaWk7d2s3alFiM00sa0lvZnReNklBMGdjPUJfW2NeVXld'@; put 'SytrO219PE1Ncl1QYkJ8U0NFRXhOZX0ha25hLnB1c1VqJkB5aDd5JVJdSmRAeDwwbFdNMzI6V3J4M0QlKX1IJDlqTCpeQ2dUTX1vcnhDSkBRSDR4LChSOntLV2VbbTI/VlFRJjFzOzBVSk4pIUtUS146SFh+b0M1Mn5uRTpgeztZOWhuJHBFXy5MR1dhKE11IUVibmJfd3xaSHUoJGV1PXh5c3Yz'@; put 'VilsMDA+Zk1uUDdKW14ocj1RZzRVQm1ES3spL1M0bFdEP1J0Q3F2QWc5T112blpkYjFGRihJZXN4djM7ciI5YkQ0InNZaFdjWyx5QikkTGBubGhjQ0MjVWt2TSI3M01jcV10YUJVV1BVUjokeHdKN1hHPCwoSzohKjlfPkFRfDdKOSYjWTIqY15RPiVHZDZdfnwsR1EpL2V7RiMofXl4ZjlpP3RY'@; put 'Xj8wNkspSVlaWWl9S0NYTzBXSCF9fm01bEliY2glcWdaUkY+WnUwR2hwcXJkdSk+d2g+VUcsfVdGbkdXZWo1Lm9KYXk5O083S3h+LHZKaUI5QGlqVF9gWj5KJmM1PEd3Xkk2TWdoSGM+SkVRLjx8L3F2P1ZEKkQxd094KCxfZ31OXW0qM3dEQ1EkPHJFbzZvM1gjLjBbanNYN3AuWF15OTVqKjQ7'@; put 'IU4sMiNxLGJnUig6bkUjR0tldHZkPGR9LkF0dnR9VHJ0aSpTSU12RElHN11xSkMxVVUla0VSTG9LXiVUb1Q1TWRwYn53KF90T317cDxwVHlrcCM3UkJkVSVfRiptUXZJQXx4dHpaRWRuXUBsR1lWbXVUbUJudXpgdEAxSEx3R3Z6OWJUTVZFVz12I2d7bUJOU3kxKm9jWSVBbipheFFKQEdsezUp'@; put 'RFUiKVtANWwofTl2SFI1PVVaXmxsXXlPVCFWWXNISGgqWHV3cjFqOEQ7SU07IWohIVpEP3w8bnw8Y3liZDEvbHheUGxIXWRmKVNHT2AxJW9fIio9VDxhbTJ+WFJjVDRLUyVDLmltMCgwfGZ+RENscGpbQlQ1UVRlbkAkWUkiaFY4NCkmfCh6QGUlUVZedCx1OHFMZWA0NzZaJWFvPUxfIUc/SUcl'@; put 'SUQvU2I5SCZOZzJPXmZCZlk3OGNScSpvP1AkX0VdNk0+RHpOamZQNlpETmFBVmBOS1Q0Ll8kZjFpPXU0bnAlN0RAOnxiJVAvTXN0ak9gM1B3UiZFZSFVdkI2MiQ8bGtwPmdYU3JIczQlU0BXOUFeZH1edyRySXR+UylJeiklbiR1I3p8ajdGVil5VDtYZmV6JExHazdKPTtdfnhxME5+JGlfQjtZ'@; put 'U31mOVBYPkNSX2h+Nkx6a2E3XzpAMGxaLiNNRkNsJU1sSmdWZixVdUJdTyhvQltZPlZFNGlnKl8oKzQ3OEV6b255UyRuRmEkQEpoVGYwZSQ4dlRCJjJ1fmQ3V0dSXk42eXlYdDE6YmA+ZiMwZUp4IT1IVyQ6P2FBOUt4Zlp4Jjt5aDU6YHNZd3hjOS9KX3ElZ0gueC52VkpxWnpWTSJ5ZmRLKiU9'@; put 'TWZKYyNadUBld19tclVFOU1YLzwoRVYxVGZxc1pacEk4MmZ6UjUvfGZ5dkdPb0lgaD9EfShvPG1NLGpKZCM9TlAoXzZgQl5kMWZmTFZuPXNmJE9naFN5ZDQ8TDxheD0lcEV5KHslR05XKyVvSnpOQmh7fHBYKz1FbGBpNGE1NWZSTl5kYl0ydmh3KVIvW0ZeJldUdiVuSG9vUSRtcEVVKztYUEN3'@; put 'WjQhW1clb3NWVH1OXzheTEI0QCxbMn5eX1B5OTlHYzVjeFYxOUFJYVp5XXBLTVJadmY4dCVBKi89M0J3SSQ7Si4mditkKkd+Km1HKXQxfGNVIjFpbXwjT3BDZWY0NFlVTF1vaiYzan4mekBINmhoJntsdV5CQy4zTVFgXlFNVnNwLEQ/V3M+I3dgMiQ/Y1d0MWJJXyplcSYqNCNYUG94TFFyNzdC'@; put 'e1UuPDR9JVE8fjYiNSNFXkNhN1kuUE9AIllCM2lvZzAqJUVvNUdadVl3OjM/dX4qfTIvdG5DMSkhJmN8WWJwUj4wclYsbz9QVFd9U2lGSlg5O0p+NixKPVZ0RlZXVl9DUCt2KD9UcntEN2QzSjRTJmQjLmtpLnRJalo0JWhdVEZfKnY0SE0jRDJsIylEfk5yPmRqSzhzZj9aa0pYOSMsWmE0KmZ7'@; put 'fl1XYUxBTjZQbSQpdF9ReWxnWG9VVE1ScVoxWEdZNG1dY1Jnc2dVPjI+Pm4vei9GfWhHRkVQWTxqYWFPV3U6emgwdEt9dkxLQjkjRHx5fDojNCkwfD0iYSl3Y1loPkRofUR9VHRoMXwxODRnZyw2JWRCeUdvfk5KLmImRDI2Nkw/PUBLJFVnV3ouXndSSzlNcSwldW9yYjl6dls3OyFUYytMdUZr'@; put 'Z1EqeCFLRDVzUUJ8PkEsZSMoY003JE94P3Y5ZmRjXjpqbGA5RC4qUEFtOm9WUnhiSiJYPjJZU1gqRFdlPEMuQ2UofDFxOTtLYGZDWX1fTF84Uis2SjVYe1kuXXpbd1hSc11YPCNtK0VoT2JTO1BiRVBVRV9acTolNFNyPXkiL0wvPmBlbHIjJWFNX1lYbmlDQlN1QGRKIjU4UWl3b1BaPmU5PVc1'@; put 'ckRGNn40Z2wlOFYldFtCTXpVTzp0WEVXLF03R0ZuY05jY29MYldOOC8mPk9eIlR5SWRrazM6ckVGO1ZzTmZXUk1sYFt4OnR3LypSZTV2eXthaDtnaVp1LiQhUXZqWFVoYyo/YFpxIVd4KV1YakhCek87fkMkeismS3g2MW80S3hyREp9I3hzLDhqRXQvT0xoN1FlNEhlcH1pcElOblckOz91a1Jv'@; put 'VH1rP1pRfExibWVRY2VpVmkqS2FQRUk8RnBMUEt2cU5zYSUuT2ovUmpsZjNFPz1YVlg/dWkxNUkuVyRHaWkrTUIlOGo/TTJ1X3ZeM2MwP2Nmbls6InhbKlg8NFMlNUdXS2c7b1sjMkQ7VTZbb0g3JlR1OmlXNTdTIlQySltiNExSSHlwUGNhSHkuP2dEU1lbbztAMVo2V0Bvbyh6dFskRlR+KmN7'@; put 'IUVHdnZVRk1kXWk7YFVXVl88dGIqNDA9aytRaENyNWBfIWlhdDliJEJJQ0lgalJXQEFDKzhWXkhuY2pbM2FiUCtERHYjWTUjL29lV0grKCN9NGp1UVM+I3R6L25nQWJoTUpsbmVgWEZIMW1Yd0xhU0BfOT4paTF4XmlOQURjYlBUe0cxd3cka1htdHFSanE5NWwwd159an0oXzkkdiYvSj5aXm11'@; put 'fGBJTnEubmpUQFFvbCNTLjF7YTs7PHdEYEx9TktySzFYdE96PCxUT085XkZ5YD5kcil2WUEwUH5IdTpiN0hDWVZhfTY0YyZJb2kuZD86X2BFTlE3Q3ZQbk5iZFdXUVhzJEdNKEU0VHZvcT58S0wldWtdXWlHPUxRKFNoT2ouIk4ySVQlUnYmNTlbSSt5PV8yRENZLmJMZFY1P186N19eTVEma05h'@; put 'KjVUIi8hOWBpcTRhUWN0OHtifD5mPmBXSThhYEdaREFUQD04RVAkOyk9Rlh4ODNmdDpiQ1BYbGp2eCs5OTVefC46MzVVbXVfV0ZwSSJMLEdQV0koL1hIV2o5ZjNMMU1AYkJGdFREJjZQSX44WChXU3U0Pi50NFhaNE11Qk0rMGZnM09NeSYiUlhoPyhXaEpCSnl4MVZxQVplN0Y8aC8oT0ZgQDlh'@; put 'SzhIan1xR3hxWFNZck4/fiRheFojNHhpWnE6MipNYjpSZHpIP3AmRkV+b21lflN9TmBUdyhXKGNGcSo4NCoiSldIPUM0ZHg2Kj5+fSZZNC5xSGM0QV5bbCVUfExZREJVNShxNGZINHhFRXdYRHQmLzhULmV4PF1jZnIiTkc/SzwyXndyOT9PXiguJF5DMX48PWQxMTVEKCNEMHdkIVt8ZUUzJDhP'@; put 'V30+QWlicWJpJX1ddDxOdSNwYCpYMT83dX1NREBlUCpLLHljTUtPbCM3eWV5bWRvcktmPmE1bzEkXXIwbEUsRipQOXw3OllxaCJLPUMwbE9VYGxvc01dZVEubWdWdn4oUV9VKCFEQ2FkPDRuIUpFOntSLkVacEB2RmdUS3BmWGchVjg7RH5FekAlNDVbM0NBL0UsJmMmYU0+RVNHdjBKX1llOV9n'@; put 'UnQuWChYfk9DdEZHKXF3QzIqVDNVTGZ5OSV5RUN0aUJPRkB6WkZ5ajE3YUA7UjZ8ZnUjVm1VY01VLGR1TDR6QjszQGg3diR9IU54cjhXZF5qIyQhb0w3MXVOVmFfVT43JC8+ekUrZnM9dDR7fVcxV2VXdTxsU0wjKVg8JHV8QVIkckR1a2FZUj9TaGVWY318OSp3NXlvNmVxUHRvSiQxKmo/MTdt'@; put 'ViVqNGFMP0cmeiUjb1ZzZjBNNSt7ZjRSb31KOH5XcDl8e2ppQyNbZSNnaHQjcCpNejlmSyRFJGdtMjBtaVg0IUpmaTFvSj00YURQM3woWjNEKDQ1VzlsMTtAQjZMfkxeRWJja0gue2BYaF5id3whJTApa1ROLCVTUVMhTiwzI21IUH1fSXE0I25odXRmRiZ6QTF4SHpoXiRFTClFN3ZPYE1la0Ql'@; put 'dXA2TEVeSTIhP1c4cnxOWEUwOWp7WnBwU3dUXnc4a0xJTW5xb3t7TXlsdDY3MWVwXShnMS49c1lEJEFeO0QvXnIua2RPWyIhaW0/Rzk9NTFlc2YraFJpXTY3NS5eNjszXUMhZkUxSTpudiNlNkkyR282I2RwcFQ7VDxJZzYmO0Q8MDhJQXZxIVFfTUo3U1RHLyVmU1FVKUwxfGd8a3k/UHRWM05G'@; put 'OnM0QmAoO1smKG5IQDRtN2VWSCF9akhMSnlub0NbWnJzLj5HZG1ZUikiX1BbZEZARm19QFBtQjQzbGE7Jko8TmMyNU9gUCRhYXovWTB9ZXF4X11He15idCYzal1mLGZRbihmN3dpXnM0RkRtfFN8I0c8X21UaWQ/aWZwQ15dJVk1RWJ6NXcvMn11fmwlZSNEKltzXzdrOHshKmlAYjBDM3Y0bDtx'@; put 'bG1lYClIXyM5dGN4TiUvUF9Lcm0rJThNQjQiUnxjaztxYjBqNSFDL2FMbFRZRGBUXmluY2I6UTciISJzcXhgMklYQ00lI2ZySD53KzFZLkspT0sxO1U1eG12SHFXd1ZNVmkqbjM2NGB6W1g0Y2VsUC87YW9SPC4pRWRNSFhqNmoxV0Fhd0M4QCpYYlh2Zj1ocHIlWWQiOnV4JXdfU2UvMyNqKW4j'@; put 'eS47dS51OmkmUXh9X05tZlchW29SemJkJU5edX0lQUFNbj9BMUJ+LmhtXyo7TURLX2hpLHpedi8xc3NLSH41b0tOa3BFLDdBYyliIkdZNT1reSR3dCx+W0F6R3gkMFRCVXJAfERTaihqWjEqcyluaj4oYlAhejcxZnBdNUZ4fXspR181aCUyY19mLCowWlVNSyt9cj04N2d5PC8pTz9uSWM9ZFps'@; put 'fjk3JjtFaV5KWmZaJEFZQC5AbFppez9wRThPZUoqbCtiQWtMcExNU3JFfUxgWF9+P1JnJnh+MDUhOkI5Q0ZiZiojb3N3c1IoRk5PajAkUm9xcVdlRWs0I0FnYWVtfmFfPHs1YjdhRHdeV1t5LEYubWN2cC5+SG9iTGE+NUxVWTR7PDhURltmTmFxbWc1T3Zpd0pnVVMuRV9JSnhUL0g9Vz0ofkNy'@; put 'JV0weEw3dCxVd3R0aVtoSjZkKnYrTmZMMDtFMHAocSJMfCF0YTdMWDRdO0lxNT9mVGFXQSVAMkVdRVcuOXEpImhFXjo3cW8/byM1KGhZOz9VdSR0b0J3Skd4cDlZcns5eEB2KSxpbFk5VVNjUkF9LFg4ekMzSzVZd2spWD83dlcyWWFbR0Zaam1TUDZvdkV5MXMpUFFqKXcsbnRxWTUyU1lfTD5a'@; put 'RH0qd3w/OUZIOzFIbWxNTihrTko1WEJJZG8jeDZnXShhfCJlNlJhMD9zZ0o+XmJQbDopKExSbDlkdzBPRGJQeDxTMWNhbUshLDpBKSN1QSRRaWF4PUx8N2Q+dyVVaEB8NSxzNmpgVDxPUzcqT1p5PjVidlchSnNOfjByRSl6UStPOEYzdFY0cmQiblhMMH5rbyNVXlcycFN2Rj1takdoZkoiLGBa'@; put 'X2VeWFVnMF9aaGQ8PDRrL0pqJmRQXW1NREArUFpUaFdtP3YqXnU/OCk9WXMsdFomYzUoV11oSCtuTHBRbXl7I0pLSCZScShoc1FmdUtbMDRsU25KWG82Y0xeaGIvIXpfeE92VjJ8NnB8UDRAfTxKI1A9SkMqbEU8XVZrNTB5aDg3bHkkYzFfVTJPKk0wKk5ALH1RWmdvOk8rJDlqfHZHVUYjVFYv'@; put 'PlAkTE1ZJjBlMlJUcVdoUS5XKFAoaDwrNnp0ZlAoOSYjKExiNTQ3eUw/PmUkSi5sI0cxeHtGYXYqWXM6Oys7Jkd0KSZ1WHwieTAsUEdWMEhocSVFI3RzUzN1eDFIe1B0TWZwdU5+cVclIy9rRUoheSFdQX54RDdYc2x4L3dGLlVSbVJWfUxTezY7PzthQ0hMeSJMOCRzbTFiaWJGeXxEYUM4SUF6'@; put 'Qjo8I3RxNVFSRmM8NFM6REdXZj5DandhIX0yYE9xSDl6aSRLJSxPdCJJcVN0Oixde2JJP3JjY3NCOXVlQ2ImWGc7I1AsVHZQJClWe3AqaTR8VSYqflBoNVA8eVh5dFJvSmBDcHJTN054Qnk6Zz87cSpbLCo4WWxRLG0kc1lzO1s0KF5HOGltYWc3PVoxWmBlLFhoMCZNazw2aGdKVWh1PT05Tk5V'@; put 'Y0IyY15qbT9RfXMlWTxZQCJ1OE8rOF1PYSVmMS9AM3dYJS46PTd1VTEhQ1JBZj1kP3s2N3lxe11DUlpzeDE0NXF2Vig9b3gkUk5UJDU5ST1rUHw/OEwrYUBTPiMsSGE6eyFRXj1EfEpYL358VSohZzwmNH5+QlIwRW9yVV5hJWw3JnlbISppfSh2PVJLU1VwRHV1NmBVcVE9c3A/UFRraG1fd2FG'@; put 'Pn1wZDl8NSQ5T2lLNldJSXJuSnhPYCMjKFBKL2ciZV9ocC90anpLcGt5KT0+KmFraThldnpRS0R6dF50aWAkNXNSVFgpRmM8W2VHZTVMMz5Wc3BfUC81cWFFcnskbldVa0F1T1s2U3dHWExYM0dhL3h2VmFQaGlONSFpMDFmVip9RjwsM0EjKUpGVDM/fVRKbG9QPU9fRkBQfXxrV1JkRyMuaXRZ'@; put 'YylgOnJzKnk+UTB4TSRjNHhycXdOQFQ3Vjh9eTh3QiJVaTtnVnhsPzZbfVRiK2VaQFBMdDYxd3lrPiZ7JGY/JC9VQUpgNlZmIilDO1Q6aUNIM1Zlakl0WWl8QjhNZ3QwP1VrZX1PRF9UIyhrPkJmIz1WXj5UMlArRnBEO0c+NUZYamlSPjNRVDZ0cWd2Yk1DZ1ZRTSUpdVtjSl40Pk97RFdmT0pe'@; put 'czhIRD9vXj9aXnFeKHlNPVtdfl4pWXZqezpkVk9wSUp0S1hmejpPa21tYFFafnQyRXRNMzo5SmUlMmF2c3soJHcoPko5KkwvZC8+Ll8jN30lNGxnX21bNl9UcF5RUSZ8XWJEVjVYfSI0KldeYChzQzM6K0ZqYG8hdyRCIU1ROmhwL1csbW11SztIZkFSXkxVbGV3dn5hekZ7Kn1zeyZtPUI/Jjlz'@; put 'PGQzT2o0UHMxWy8yOjpBLjNvTz9Fa1AsITdhNi4oUC5tfmxUP3x6bHN4RTFBXisicFIwYkg+NzAiT2N5aG1pNCQwKz5WTjBfLClXVjhDQjtxKHA+SVh7RHJFUFVwKiVFXygmdVdaP3FHaDtlansqJD5AP29DUl5OZCxrejo0Xlt+KGUoI3xAdjIuQitTXVJDRnd6L15qVVB7aGpsSnxzKGdxYEdn'@; put 'dU8/RCx3WWdrOFRdXWlrRHQ2LyNiajMue1h8SmsuSlNVflk1O012bmFkRHJhbVBVXnxjUFNTfWZycXA4JXEyRDpZYmtKJTh4I31DSTRwN0B2NzR5P1hFXVRXWGUqP0RrTVkuNCUzTyQ9ZmE5dlM6d2lOLns4dzNOakcqbTg3NktWMDF5MHl6I1QhTlUyL0VAJEZIUzcibzN3cl8ycXU7VihkdXRw'@; put 'VGJofjtTeVMmckh+JmphYjklUXJsPnsmfVFfbmxKKHk5V0dke3x2L2teMipGKk9kZlp4LmVvZjtyVF9QQ0Q/ODRFbVA4NGUhWVRyS0w3OTdIWiN5ZjdRWzFvXypMK3RSd04/QndZamg7LEs5U2plUyU3VXxtXyIobHRZSXIoanprS3loY05BL11KeS4pMkk8eXBMbm5HaGtLI2Nycio8S2VTTGc/'@; put 'Q21+PSRzUiYyOyVCQ0wyRjpJQnw2PHpze2RPYT9ZLD87OF16LFFESm9fUjEhRzk1eUkufVNKWDBsVi8uP3AxW0o6QXYxcm0keE5zKkttST01V3RpUTUyakd1NSZqMV0rY10wMHM7YVRkQy5pfXM9fF9BbEpBQX5BTTFeTURTY1Via3RAaWAqZzJ0WHxrLiR+Y3EwL1NZTiZOMyZMMlNiVl9RK0gv'@; put 'SUdtMEZQbUl8cXEraTNibD1MJEdxUnpMMSZOOHVTbF46ZCxmSHkkbmFZYyhzcTAmX0k0W31DRGlNe1NmL0ZPWTZYeW5ULkZeKDdHLCVrTHZJWTxacj82QURRaGBsOlVOX2txW1NmRl95U2I6L1RHd3prVyhbYV5+Xn1DSFEjQV5nPTM3b0JoaSlgVV90I2x1Mz5WbXsseCxRez5tMiw0fU1QZT4k'@; put 'a3VbNW5zfm1yQ2RJNWokZjk9WGNLSmJpNUl7ak1DTTBGaE46TSZDYTlhOnB0c11CMXRJPyRxJllvSXtbVEVoPCloVEsma307JlQ7MHgxNjRuYTV4QDZpR29uelQzeSglW0RLPSRVRShCL0A5YlBvYSswL25NQT8uTGJXLixsdFYpdlE3cSZ7T1lMUDtOfExMLihKP0FqQCV1UntbMHdVRUpVVkEu'@; put 'PWJDMCJdIllJX3RmNTRefXY+bS4id3xRfl4vN1d9OT1xNStRSiVfJHJscW14YXc/WEArZlIkJmQueCQ2NXpyU0U1dW58Xncma0Msayo6bCwmYEprYW9GJUNySjMuSTEoayxaIyl4IWZxSnN8R2EkKFA9ciUwM31aVHZbfi8lRCZ7REgxMChYdzFCRVQ8VShrRismdCJBeWg+dFV6bWYsRVY6KGNO'@; put 'XSxyNkNdLiYpOCRwJHdiMU5TOihpOE92JV03RlYmK1FXdHg9LzRWTE9oSSw6bGVJQGBXaCt2a3gqQ1VIcHRzeXtnMSw6elV9UUNIX00mMSI7Q0JudSM1Nk1MWVBNMjZxQ3tMPnh7aXo9JmJGRXopQVdhTUkud0IvIWlyYXRyVlRKQyhWa0owTXlFJjZGRzsmXWRzJktkOF1zLFtpblRrJCtrP2th'@; put 'QV1GbUpYeGhdfmMiZWJnK2BzWGBYdCVMNGRVV1lHbVlhRF1ZIXhxajBJeXQ2PHg8YVcpKHltLH17e08jPmtRVkZ8bVk3PkhrIWpbTDNQKEBmcDliVSE9KXVlU0BRJFZPQTcvbyZ6SlNgfnE7bGFEdnlLYH4xZGtiNGd5Q2NyWWArdm4oM3NiUDY7TVZDUTRqVF8jWF9bMCVQfTI9ZjBSJFJ9aSRJ'@; put 'PGZKVX4iJks7e1J0JnFFeFo8ZzwoRHJSYzAlQ2lxPWl7VmRvIX1USy52JD96Sy5wNlNvUkxJfTlAMSFzM3FPNkA6U3xOJUxOWEJ9fHkySzJ5bVNteEtvUllOQGNKOGZUMFMuclI9XSMzQE9zSTpWfXxubTd1JHQseW86W0UpTXQkK3YsX2NDLlJZTW1JO0xmOFFvLl13O30wMklybjxFYGhFN3Ak'@; put 'PD9laTZpN3kibUksJXYhZF90e3t5VzIqUWdFTlpESyhCWWFkWStkTFJaQHczJk5MTjBgJXBFIiYiaDM+ZEJVVmpwVHRDamMjNU1bVUN0enBjRS40Zz06WEJZY0ZWPEtBfGFQZyJeZ1s7MEs2OGU6Zlo2Z2pZb2xZZlg0eCh4IzM3UXskdGJESnNsKlNkfE0kVzg/N0AxMXBSOi9WQy59WG4ha3RV'@; put 'N2pXbTw2YlRdbkhiY1FrbnEvYzB3Xi9mcC9VaTxxQHBJYmdxK0Iud19SRyg7a0w7XSp6dFFRQkw/XU9ocDRmZEMyTEIyKW86OiQsWnI4XSk5aSspRnNmRSV8fTJlMDB2Q2AoMVAqdXw9dVRxRjgvRk9AYT82N2BCbVs5MzhOZF8mLjkyVGE2c204bjtgV2AiU2o7W3skfnhSYTcqYCJhaGAla1F+'@; put 'c0dhZndfS2YjLDRdTDtAZ1Fee1NGQzRea0Akajc+PT1BREt1KnRFOFE8cnZmIVVaQHREYSZLRHdwTzR8dlNbPHVnR21Pc3RxLGFnRF1GfVYjcmZWMT5ZaDg0fCtDWC5PViw6YlZYfkBPYGpOZmo5MXRIJlJNeiIpX1FPM3xsMWFycFc/WUlqfTgja2JPMyxeXnpDOz9BZlhoe3NHZ0UjYXlESyp2'@; put 'KllUJndMS2ZlLmp8NTNVfU8yfVJRUS50UW59XjFNU3pdLC5uKSNrZlNWUjQoUEIyUWleOk5tfGFVQ31SRFtZMF5CZEkwflR6REBweDh+VC5ZWEk+T0JRM2teezFXfVcucmk/TjBqQEQ0PHIjLykxXywiZVg3cDN2P0AhfDRadlZwV3NiMHFrXl1dTCtTY0hmWiZHeSI/dnlpOytkdm01UEo4ciR4'@; put 'fiYzLj9qN2JNVlhbI1d8Lz95XnZacig9OFU3N3wqYDBnaUBvMG42OyVxfDRgRXRLTGMzWT0hQTkqVVE1VFZmLjlbaGx+I0hFTV1dKCE2TkU8VlFJKEpyTlBpXVtSLGVAJV5jeT9LY2lNMj9JKmtbO2s3IiE2cyh2ZzFaOGJHfWEpcUZEaihlMmdsRmBhYHQ+NXpMfXFZbnYjVW10MX5sJDguKS45'@; put 'Mk5fYHtSfDd9LEVyTHcmQDEjdjZdVjEiQEJaQTRFdHMvb1kxR0dDJkRjS2hxeUoqXVViJjR1Yy4+czhFdXV3bjFZS2lNbDxwb0NvMjZmLlNmVixAd019O100dF12JHQwZ0FBdzFwMHYvdWJhZkJKYV9nXXdhbWdNN2hhZSpLNi5aRHA/c28xKVN8bypCbFtIVTtzPDIiVnEyfC9XMyI5InI/RCku'@; put 'SUhrMiFwQjRLPEhDM2FgWWk1V34hSGttS2VpJE9IMmJqPTw0LFFXQlpyczNFQUYhI0B1dURtUHRNLyhddk89RE1fYG1PN3NiODdHPVl4PkYrSWl6PyZQIW5jZiElWCJnLFUxWT9UPXUmdXJNe3dxazZkVXteVE86I248ZkE5dW98ZFFffmQ+V2BoejQ5UXFUamVIbHtMWHUzT2ozYFVtO2RCJTpY'@; put 'eUsxajpqRShrTFVsSj01YzZ1OWZgcFJDWm5HPn5fZ35gREcuSnVBQT04P31KTUdmKmpLNkl4clc3X3RSMFlJeUYwQ2JtOGBkYjw4OVdWUCpMdFM7UUopZ3BYSHksR34lKFIxJEBbbkgpfSlIWnZoMDtdK3x6TDk0UjN4ZEBmWixjfC46JXspMURTKn0iJXdwdS9ifHMsUFo2d2dzVyYuL21uXz9L'@; put 'YEA5QXU0UERfMX0oWShMTmtaWHlYcH5GKHRCZmprPShwX3h6Yi9KbztjQSlKa14+LDlQdnd0MF1SVnprISpfWVQkWDBkKiQ4ZSw0fTYuTSNmdzhASGNnfXdjYj9dby5rfF18TjNrNyFRY0E5W0ElSHtfe3pLN0A2YDtaQGBmJUxzPSkqRGU+OSRSQSIxX0V0N2JqU0NbVGBeSCNad240VDtXVF0r'@; put 'WVEkMllzemhZcH5GKEMxJFlKT08xYGNnKmUvS11xXTBeMkxIVEt0eTxiPSZuTGEoRipGV0xMS3smdSMzVjNVX0JPVmNJemE2O0l4dC8+T2FvQi9UTz83WjVXQHA/JlhJPEs/OXE7RTxRUlsrTWtFUWw4RkZ8IVMwWTRFRmBDY2RbPGVWI09aKEhNTyNlbElUO3U1Qn1vSTpyV1Y4JUIuP1hrPl02'@; put 'JkVNVmRqKkd4SEhIQCxPTlR+ZU8qbzxrYXVyQn4kPFdTPk1YeTVVUU5eZnUvQn1OMzJqejtsVjxWJFtwVHQ6TltsdnpNRV00SDBXNFdJUSE3U3ZEMG5tR05SaV1pJX5POzRNU0s2VWBadSJ4Zz9NclZqOHZAdTY6ZyJTVmtqeFVtaFUvTzx5WTYmQnorJHt0JmgoRG50OTIiYF09JDh2R15bW0o+'@; put 'TXJgcE8oTzNjQnFXMjJ7WDcxKzxZdGFJRG4pcVM/fFs2PW5bIWhJOk1LOyVQTFQvMVgrKl1nPStUZXluRz1CNEQsODVRW314XkBpIi9TQCV3fHEkbTlUZUcqMlZRbGUlPlE8JHZGU013US9kSiljcDNSO2duWzdfXWM2S3FxSlRCOHtwRj8kcHtCKFRYMUx+WkMoZDg7U21vUW5GM2wyRXowKVpR'@; put 'JlBQMl1mfkhwcHYpd1hueT5ISkhFfiE9fjE8ZiMseShKb2dbLiQmUU42LHUxbCs8VlhaZU5iQkRVe0VSWF80WHR1d0hYWkJMIjtddWxzM2w4YCJ9Piw6KFhgR3xmYmx4KSNkMUs5RnBrOj0mKiUmRkpzdXssY1c2W3ZVKTY5dlAibHV1fWpnZip6UmRwfGx8OENSfWB9aHFzP3h0ZVZqJV4oZXFN'@; put 'OGB4Y1FNKXpNZ3YoWzY7fjUiTXglT1p0TkxdMkoyQjMuI3ppcGR1cENUXkNtckhKMCNbS1siZnJUNlJpfjRhRksoYTlAdCVvT1NrT056Zm1ge0BnVXF4UlR7ZjBgTiRqZCYlNEl8c0NTYTZvey9oWU5bSU5gVkhDdEp4OGQhYkRQYzQiRFhBZzlddkx6Kjt7dkUjajExTnB9IVBGKXRkKlole0Uz'@; put 'NkcqQitULE13JXxsc2IlO0Y8NXQlMClRK0R9RTRZfVp8PDx1ImoyT2RgRlB6I3RURlVHWnNyO3wscXdzeWh7c3pTb1FtQFRlRGA0N2lHIz54MyttbyY4Y1VPI1pmdi5rckppeXNJSlJVZ0VuZk1ZRVlSO3FsXSt1Ij4+NUBsVUpASm5uVSMvTWAmNUciJlpNV0N8SFd+R3pvMyEzR2RwdUVZc28q'@; put 'XUE6amY0dDVWc1JUMzEsP3kkXilud1V7R3M4MDF0Sj5BJW06XixoaGkyJEIzXWJqPTBhdkU8TU5XPWRZfjkicSNCRzw2In1NUV04Yz5uJitFbUNAcUd5V1F4TnhCekVOT3w1biFLMHV4WUpkaSYyPX5bOXg6O0N2NCk8b0BZc0o3anNHIWV8fCpWNTx8JCtAMjN1KHZVVil0OjwlJWtkVXZwd3de'@; put 'QWpFKWx7aEZkWkxWcVVkUVpTOFVxJUo2Z3RzSDllITsoWXRuWD9UPTp+PjFGSnM+Z35mNjYqL1VBVXAqLFBJIlI+bGF5KkN4NnpZKzhQMjNJSGomPTk4LD9bdHVQP3h7Liw7JE5jPn5QUDFyM2RfbjpqUzF2K20mV3VpWkVQUkRYRVlFQ0tmU0o+a0dmTCRLdyg1OVZ2UE5TTk0kIypxODNhcUZS'@; put 'Vl07RGxXMzAodVt8ZUozSlNuK1FqITdpNmRJQUJAX0VGdTkpRHxGeiU/VyhDVFIhZEpqJikxU0hqbWElQmx3X2laN1hMVkp1KEpNNlhwR3xPZFlhZCR7a3olLHwsTkxsJTEuWXh5dk1COW9sT1NjVkcqNSxRfD9jRWNyN3xfKXk+X0V7Tjl+XjdVMGF5dExVU0g2OVdjV2Y6fVQmNlBLQVV1OjVZ'@; put 'ayFwInR8S1okU2QuWnQqeThGUUgkIkxeSXZxNj56MVRtUklqY3BoUXhEY1hieDZnb0xoZ0NhRCo3dGFLPUFmNFMyQHUoZywhKXlBSmBCe2lvWz9bLkZPTmRaWDAxLzVkcjFUWEMyM0JIeitSQFYibGpHXSllOTJ8SD50dDFJMl5APyFxeEV7Yn5bXS9DYVJJOEJvXkckLnZRPFUwXzRreVBDbD0o'@; put 'U1AhXXUrJSI+c114SWJBMWFISHJLMkszNntlJCRRRGpUOTRLcUdGfWwiJX0oOXdCP35pOW1zW34sVDpkazJiOFp6NX0lMCZTb0w1ci8wPD5YQWY7fCJmVDVTMENzbngiZ01pVygxQ1J9aX04QCRYeypYOFFYNGNSVyJZQFJUbkNSfWBAdUdgSmRkYUdUX15hSzA9MDNnRSM6VGQhSUV4cmFiJCYj'@; put 'e3dScEhvfCJHVUpROn1vUn15UCxJJkxQenZKQl1IYC5tJTtKclt9K1tbKyhZZmAiZkwkcHxUYGNTYXtMdTI7enVkNFphbk92JkhJSzMvYF9iP3MmKD9MSm8kaXN4Ky43SkM7Z2JabV1PbiJFT0MuKXxvUX1RU1EoI3wxNiw8OVYwR30jIn5RX1VZbk1MUz43ekRsRXg/PURrKDpIdERPczchKm0p'@; put 'KmMyYj5TVUMzOCNDemdgcnxaRXk8VShfSmFTPG8xKSo4M2FQPTwxfU18Wl5pWGRERltoQkp7LCpFOy9LejMmOF04UDV9Q0p4bSNsQk5HTXF2e1R5czF6O1MuQEFEVSE3OEBbYU81RlRTX1BNZUFGYGVkX180ekpBalV3MSQ/fiokfUpLUFNNQFpNSD9SKHdKS3c2RGZyVTBhRUZUfmJVczJUZF42'@; put 'd3NwVUJMYitMQSE0I1ZBSU0sR0ksUkBmY0d7eEVuK3hmfDFYOlVfal1zRDNDMloxPWohbEFNSFNkWXxoWTpCdWZDXXJpei4+aDxed19DRDdOMHpJZm0mTGZHTSNiYio7aVl3eGpMNFMzYz9AL1cxKkVNUjU/RDs/fSUiQmpFczlUZkozQ0RXY1cqPi5EQmxhSSM5K0FfUSYsQnp1dlRwM1hKSExb'@; put 'VnQ3VW1GIzw5P2wsWy5BPEclcmpVbzA4UkNyTWllZyZ3Vm8sYSk5K1VYQEp7TWJIN1MoWHpecEVhP3Z0RWRpIXZDVDVYQF1dYl17VzUka0xMaGJSVkNsdnJ1Kzd1bStVe0J0emV9Rl55MS9AVyh2bzxaJFQ5bSl8cDpXNGI8ISxLcEMsYF1+dzUvOVFLZWtGJmZeMSR0UH1nOHw8fHhSJHgmZyRv'@; put 'elAvJVBiTUpXWD9WPGJKajEpeSlJYzpWOHwkeFoqI3lvLCFJMTIxQzRFb19ZaCNxKyhSZURvWlJJakczdVs5dUJZKzhMams2M1k0c2omR2B7aDlEeGhEXlBRaEUjcmkpVjtkeXU8P30uOHpiYjwsbyVYcnlKUmRHYmc3RkJwcih2YGJgZ3t+YTNMQzt8bzx3aSk5QkdrakhkdFA6aFV8Lmleb3l2'@; put 'YXpPJVMqPlQvOkNPbnlNa242TWI3cnVALDwpUHVLLDNYJXY+Nj49ImBBXWh7fiorNnt0YHNOZXNoeWIibF0zbFZRR1s+RFJ1Y2llKTdvUV1kRyQ4THhoVHJubHhsO3U0ZnQ1WT47UldRVkJaS0I4eH1iK2JASlUrRFp8MjcxLyxJNExTQTZeSklhb2MzREZDKSF1P2I8dDxxS1RPNlQxY3QkfCR0'@; put 'cm4hbHZYc1oyRmtDM0R1QWYvSUFOcn1JajFSYHA/K11tUEUmVDlgd1FLW3JhdTJ5V35PfU0wQF9HQ1RHY2UxZ1hQKFYmOmc4cnVARmpobU11OjB3biZQKCRgb3E0Zz1KRVMrZWRFRlEsT3puJT9XS2gpTSRfSW5gXnJIREYhO1RdSCgpOyZmbDdJSEVNISVqOGNefmQzQ2I/PkMuWkx7UENNPD9Y'@; put 'clUhTUs4MmJbQHolSy40bjRhd3hyWTcmWGooJngzJlswT21WWF1DZj5TZ3FfIUJwTkBNUiRrWEt0TFBBYXVpZ2ouQks3RDZzIUNJYX5vSzckNzJUR2w6cEcsN2RRcUtLMFFHTk1QTkZZREQlMHpdbjVNOHY4KUklO0lIeF5HO3FTOit7ejYvZjkkU2o2YWosV2RZZTZhJi9bIWZ9PjorRTlWdE9z'@; put 'VThldkM6PDY9ODs1IktPUTpoTGZeKHQpcChacD44L1tQX2NXLCVEPTVEUTRtQnJjUDguITRjbzx6ZjhjcSpySUFZfTtFdC96dUN2VXV6WiR0bG98OHQvdFdOJShQSylYIWtJKmt8Jjtwa3RNbUBOXV0hT00wXTFCe0RMQDsiMThUUGlaRCwmfV96VWtBI1p6SGQxQlpmUStacCt7SjtsMFEyV2w+'@; put 'ZT5sQT48YDA8ZDxYbCk1bXBeZSs3IW9RRF9tSmlsdjQyUVUvNyNpWUFzPC8iKnwzZHNpbU1YU3BENnZaLEszUzlYNV5NP1szcGAwWVliM0pJb0dGMG0xOkwvV3U0JFhSQiJ0RkhzNEpyWio0MColSTZCUHghSGZaazVuNmtWJD0sNGlXNWUuSyRMPV0sbn1BKHo0SjphfEYhJn4+OEh6V0khYHYh'@; put 'fkIiPzprPiouLmVXP1E8TDc/R0lwVCtgM3h2d0I/YG9+N14hMTJQbWZgfTdqZSZlIjFsNFRtOyE3UWcxd2pCQGVoPXMpbXdtIWheZ2xVZj5CUi4kP103VyZqUmdaTi54QUI1IyNpXUYvWnU5aW0maUZnMzoiSHRkIURnNG5dIyw8XVg5KTR1RUswcnVVU0pXbComSXouJFZHczN4Tix0di8wX3tD'@; put 'ZWVpWEZLY0djU3dtOj1sYD90Vk1ocDAhQ0g3bH0oU1lXbFE7Nkp9fHxadjNhcz1pMSppWTVWRX17ciRBPjgvTkh7cHoiUj1XfkAhdWNMZzV2UFRtdyQoIWY2KkNfJWZuZUlEPUwwdCtKO2wpL2JxdHVYbnJVRl9scG00cjxFUlhCdlRVcXhRL3hpKTVPfmNwM0M/NTMxMFlNeDBSVjtvRCFkK0lj'@; put 'JksxX29NbEhyMll6UlBEQ30rdUtXPjUzbVt6bSQ0L2V5dzBaRjphYnVXMnoufFpdZ1ZNVFRJOztmb05naEZYYXp4SnFePDEwRlA1Lm1vcDVsa0ZgTSRgcmEzQ1ZucEFwKXI9JS8rZyZ9Y319NiR6IXlldEJaeVpyTXNHcTVJIT1hcl9Tb1FsIWl0c3dBWGhDbEs7YEE1JTxuPTUuT3dVa29UXnw4'@; put 'UDBKajZ7dE9efURGUHs8TGVTd1tITVZDeiVNSU9TSVZTOD15L1BdNjhkRHp4RmpzQl9TdTk6UkRrQk8qRGtuWHlzWDw4JTt0fXUpci9eQUBqTWBpVWFYbGtXc3Rvdmt1MH5tUiVQOHZlPW5YNXNoMjF1KjgjVSVIZ2xIQy4zaEc4TyQoWWpZVXlEfStOWF5rdDhTcFVJT2dVO09ndkgpdW43QGhE'@; put 'XmpBP0lONUM8QH1CaihYYjJxOXJ+I158eWA7YD94fkFVR1o4KSlrKVIwZkAqRG4rUkJkfGVnLytpO19ndWF5XkwoOyE2dSR6Xk1aYXBlX3ZzYHBCbmB9WUcsV1g3diN2a19dPjIkbjNgU2EyRjU3MktfTSZRKVApUmtralsqRV5+MkpLRGU3aC8vNWpZMWlUZyVQQERLOVV9VjE1L0duWV8oQjkm'@; put 'KlRvOUwxI2xmbzQ+Uioze2BYUF4wb1BDejFMenZ1eVZKQ0ptUHduYjo1akxrMTxrPCpxNmhfWn4rWF1iXkFdPmtARjFlWU1YUUwle3RQej80XkgsQmxHPjhPRW5aSjVfUzY1I2RNPlFedDFYUkthQVNHPmVSY2BrM25zQFYwLiU5Rn1MJlBNYV5Ra3kic0NQW2lDLzBYVSV0YVs+cn1hVT9YdnY3'@; put 'MSxCeXNaRylyZ2FzTXM8MEkwSUZXYFRTJmchdEdFSENUJmFKWCxrciVBaSRQdU8lV2gjKGEwLHJ+KT1fYGdycD5QMVcmfD86d25pZzBNJUJpUCwyZ1FpR2MhZGlmYj5AYmRpP0F1SExCJjxjVTNWYjAyKXl9UDV2e0xwLEg6O0Q+cE1FLHtGISlUdG9xVktpRmIpSmUoUG4pdmNRWSh1b3pNa0Jd'@; put 'UElRTGUzT1BEPmAze01dRltlfXRMWV49bkFDI1E0I1hKcHA0Iys8MnoxMWMzVmJuNFdeLnMmTikuZkZeZml1Q3FlOVVoRndFTipQa01TME0yMlA8JFdtTD1ZKFNgPGpqd0c+RGlRa2lKOHBfVWdwVzVrMEguOioyM01kP0M7JSsjUXZ8aDUsXlhlYGBmVUQvQS8+IzJmI2FAbmF3dTYqX2p5dCZQ'@; put 'KCZXaTlgMSUqU29wX1NoIld2MG5EaXhOIllCNGNbciJVIXRQWWh6VkU6ZFkycDVbNkZlOiReNztoOHNxWXUlT3xwSzVlXVs3KVI+JXNdb3ghMEM0XTpPVWpdViMhLHlAcClzLz5wWE5BUmdQZG97dmt0fURqcV1bUERGIXolLnk7akVmWUsuaVJ5emc8WkIqdWpCO3RYMktxXmZKbV95fXw2TH5W'@; put 'Nlo0cEp1aCNROGJXKjk0Vi9UcUs6Z3o9YTwpW3puOTN9d3VRdiMwfG9DRzF3MHR6OEFXTnMhPDlkWFkuJXF8X3FXXl43bEspYXtRfSRhcC4jMD1QXyg1dEBLb29yXiF2TygsTV1gbWB1dWhHfm4qWShlTWhGfWFUWjxNZEQ8TnUzWk53MDl6Ykd1SXcwdERmVWkxbEUhdCoocn16K21OaCVjaEI1'@; put 'O25xXy9way8sRWk4QUNCcUY7QG4zPDNjQGVVYStPN11XMkg6OltWNmQzW157S1RjW3trXXdteVpNeChpJT1JfCo7aXoxN2NpUkokMzxxaS91XykuMyVmdmkmOW5jOG1bcWdVUF91ZTMmRSZldTBXcHVTWzciY1JifXZXSTlhZXo2OCE4WDA+VTprZlB1bFtfJik3KXp7TDpeR25KPVJjXmVaM0U+'@; put 'O14+NkJkUyZVbzdzUFloKSZ4aFs3cERaRX1hWTY/W1NlX018KC84ZmFuSzlAYj86PCFlOz1IdSowaFhIdUdke3ZGLyx3YF17NCxCPjtlYFJqamguOnV9fV94Qj47Pj8/Q3RyVzUxVkAoYWtfaV1jezFLbGhNVFJ3L2ZYUmtBU1o6T2tZaWA0QTdaSXU0X09KWUJTQjJycUIydEVlYktUYEtnTUUu'@; put 'bGxCRHUqVFFgREReTDhSZVdWVm9VUGU5WmFnKjUpUmhMayVQTnFzbyYpZyl6e1FSS1JNakVWKlRjRFleejtKKEkjQ25zbyMhK3BbcnA6VGd6PmF7SH4lVl40KUoySX1pdiw7ZlklfV5ZLHEvY0ZTZls2Mno6eUU1c08+YT9rKG5hOTEoOz94XmpjfSQ5RThQe1dUQlkvdlphUVMzfVImSmZkdnoh'@; put 'PXJLZmR2enliMjhzOEBYO0gqQGc7TSEkLkZreUIwKiM1Km01MzJwTiFKS10oIzlCQyVvNlZXdipvPXorImFoZ2B6QC4oZSIlJVFeO0MoQF0maCZQREVheCpPL3oyKSUuO046YVlJQSReSkVpOGZwVHh1ZmlmR1BPOEFbOihtWWhbZ2cjOXZZa1JCT3lRbmtYYiFPakZHOnhQIndjbDsmbmtCV29r'@; put 'Wj4lLk03KCtgYElPQlBOaGIxWTA3KUdhQ1hOcVtAMWJ6KGNyZnc0PTg3RW9mWUJvZllBb2ZZLF8lcUpYNnI4RS80Y0N1TGsmdDl1eFptSTBsRl11dXwsWURuZE5dbmk4RCltZnxDd3tOIlNRUG4raE0hPkRna1RVNVdGXktBbCMpSjdhMGlhSVUiMkA7KTIzRjxhOU1JP2ptflUmYFhaaUJpfEV7'@; put 'Uk1PSHpbPjR6d3Q0XVYwUk9yX01eKTBlWjtoXnk7YEgwLmhhdEt1Rkc1a3deeit4M01OSCx4akBsQ2ZpJkIucnthV1JeajtEXjopTjNZPi9NKEpHSWBMSmUhUjZpPHI1WSQrSFJiaSNDRHZVVHQ0eFI3fH1dIVEoUDM5KyM5XzR0JSZtTStPbj5JZjNrQ0p0Tzh3fktNUVo/MSR+S3I5YFBuTiFZ'@; put 'OE5XYl8qfT9eeHJAZmJIKjB8XWxAVFU6bG9aL3gzZXdINyx3NiE3Z29AUyNmdHhEMCk1KWBsQ2xFZk03RyYrd1ljVjFZcFBFdzxzcDQ9Kz98KX47M3UmPEA9ezkjO1J4fHdKRFNla1hiT3hoMEQoT198YSUuQH5dW241JFFuWzExd0tPXzRiR0xMUTBuc0REWChHSWgmVlE2Zml4NXIxdEAmello'@; put 'Q0U+d0dJQmNLNFVoMXB4PytObHxUIjhQblovd3A7SCMzbV5qPEIpQXljQnxCN1BDNiI9YmYpRU50aCk3Q1l0LypvLGJNP2p8SGQxQysyK2RlPkAmel0sJHlpSEVYI1I7SDVwSV1ILGs+Mm0lOHdmTkp1a05iK0hnZ0xUPEZHUyhZRFNWPnR3OV41I1Q4cVFAdUAiP2BbSFE8QCNtS11MO1dLOUtJ'@; put 'WntLImRYN0dOY3M+THZzLGozYFNgSX5IUzhhfjBJLmFCbTJrbFpvQFFoN2FLKyVMcXVJNFtqYCFmSFp2d181KFFpbDQwKmwlX1YuRSwlbXtAPWVQbXpFO3s4aylmYixDaUQ3X3IiRSlnSXlJN19YWWFvLy53YD8sK09xZkRiYzRHa1QzSChefD1vT35GcWVwdUtuPywlTj56cTExMCh9MUMpYUNJ'@; put 'MmRxIjEvb20kRUZ+XjwrT0oiZ1l1RSZUb0JkL15uQyt1R19oPVtAQzVsJWRDNyNkRi4uTFRINy5uU3EpR3JgUC9ANkN0T3RiaGxVZzM1SF5EJiVDWCsldDR1MzVDTlFuPkt5ckl+JVRRP14yIj9MQmRdRXZ0MUR9VU5BdkNDcThBWEZYaWRxVGFqI3ddYFgwQV4xUz5aNGBWdWp1T14/Rl8pRCV1'@; put 'eGNTd31YOTxOQncsMGd7VVQpUHRdb25AU0tKRTI1dkByOVgvQF5oJXEpL20jaVZ0STBydVJlUXNLPyRhcjJCP2lHbn4zWHB0VDlXa3lHRTtiel8wUj9QWSpTR1BQbWQlaTYhR1dZTFBzIy96PEJzZywyUGlDKnNGXihjVDMvfE8iRE00eno+fCk7WzVqMmkjYV0qRGg1MEpxNDI2UWNpdFIjITVI'@; put 'T3tvbX1jNFElaCVJVzJbM1dPUls4Y29IOmk0QG5zaEJ9Ojk6dWdZWy5ob3xyMV1JT2skTSJyImN1d0YuLjoyejhUYX19YD1gOEZTQkA2cm5BRGs5VHJHNnYhZCwzZzBQe1FYVj54XW5YZFdEXnZ0ciIpQyZbYlhTNVdSPi5NPjQ/Yk85cEU7V11bZy9vN1o3fGUkM2NkPz5GInpBYFI9ejphflAv'@; put 'b2lVdEkwKXM/YEtFZ31XPiZ6OkMvbFNXPkJXPH5BTmd9Y11pT0Q3OU5EekZEWnNzWiVYX2t5fX1JQHFzTHJLT2wxIztSeFRvVnNXWV9TLjgxV2defEA/cE5qUCVMNFcpaDB2QF8ka2RZdzd6MSVQXmQ0e0NgaWk7L3JPLkIhM1tXJmNTXlBNT3tXKylKODR4ODwjUnR7WG0rPzFLLEt5U1lvL1JD'@; put 'VkJWInV1dH5ROS5bSF5kZ2NKYjlIITBBZGNmT35FX2I5VjNRTVB4JWZUSyJCPFp3VjBQKltbRyozWy9lZXgvVThIempPaTR7JiEvbDU0YyxEaFYkSlhGNGJ4Nl5kO0gvZE5IfHQpNHp6TDYrZntPajQjIldFUkdNMFBRen1kNE1YYUZWQzpHbihoMXF5aiJuJXtlMFpJTzROeDNSY2BMJWl7Ind5'@; put 'NEQ1KVd1aSlffS8xQ2FqeXl3Vm49TlIxVFM/NCJydXNyTzpPPHF8T0FwLjJWMUZWQHJpVDtyIUx2NEw0cVNeZDlyRWFJeEdWQXs9U2c8Ylo7K2FedzxJbmcvPDd3RWk0azRhXm5RYldaPnBjZzRqPlpLR0V+XmIuZD49S01JWmg0TnpZWygjNDQqJGF5TXBoV1JFW0ZdJkl9S01aVFspL05PMT1k'@; put 'eFhjOUR5JitmRUg2c0JfUT4pInl9XyZtRVVxUzVnYVh6aCVVSFFjSjhJT1phc3RYQmU9VzBKN187d1hieFZod0BefDIpdmhDOjpWd3MmdFclMixPPCRXIip3QEBaOGBXYz85K3dNTmdVczxXMCMibkM4SThXbj5FdiFCYk5rKWNOZUwpSXBSPjJjMENhV2QlfC8vbTZNN3lnNldHS21jV1F4UzB3'@; put 'V3ZpMXFfJSVRUUYwUUooKnM7Zz8zai9eUFNUN0wsTkkvYSVnfUVvKVZRe1QzRHMpZ0hvKTIsfkUzZkMkYEo7WGU0fGgobSxJZy9kMmY3MSxoRXFBVkVLaThQUD0lRChXXihzPWtHcUBbIytPUD1TRSRnfWk/RHgpIjlXTzQ9PVt1Y0xIQ0JhUXNSdiozX0YkLHovbWJqUlFvWTtbL0BRQzVuRHRg'@; put 'QmAkYCo/eiE0OlQ0ei9tSGZpTk1FfldIYVQlbVJCbUJRTXVPJWAqfERyKnYjRmhrbz1pTkhyaVd5M08vQkJEaSVmTXRuMCxleCMvayRlcTAsZXglNHt0TElpcTwpMUs6U1tjRV91TVdzLHkqaEQpaz0rQGlna29IQjJXVTBqNE4lVipMSGd0Lm1XIlNVeiJKTFFFcHQxLGV4bnRYUnw1WlFjUk11'@; put 'SnQ5NzJtZ1JNdTw0UTE3SUFYRVI3ZW4jPjIlMUxWSUk8aSw1eWQraVROVX5pa1ZDYnZCTj0/cERXTTE9XUZSY2c0SHhOYzcsYEU8PzxpMmswUl1WWk42blhjIiR+OCJqZmlnWF8/PEN0Z1FVTnBZKFlsW3lyZ313Ty8jZDJAQF0vKDs/Lmo0Z1B1ej1zang9RlJPUjIxTDFZSjx1NDFra3wrSzJa'@; put 'Vzo/Skx9MWZQS0V9X3U5ZDo3KUlvYyNjZHdYQCokJCJKXlBsdCRvNExNLlRHeH1gOXtQK1QmZ3AvaGhQfXRELjxHKDBMbmlbSmdRW3hgJU8rPEhMTHkkZC54aTRfLD9qejAzVC5oPylbP0w1WzcqPUs1W0hoXj1VNVYlfDZIdnlXS000XzRzekwlPXNAcnYrXkdASz4hTGB5ZStleDEzTktyamwl'@; put 'Ki5fO3NWaVF0KjJwYnl3L2dreUJxYnZnNy8xeVo9bnAoO05sYnRbUEhIWVIjWVs9NTJ9YW9bUjJSdkZ0VkRKQVBuUnMmdD18T2hJQyZqbzl2X1VDTmBvRElPV1F7O0pFSGh2bXdJKzR8aFNYWFAiXV9TemVLeDZzTz5HZismRkhHSzczdSQoe3Ywb0JPVntUP3RQSW4xQituamEiPiZeKzo8NlR9'@; put 'bTVgU10wLFJvVnoqR1Ulei5bbEQkRz1kNWNJOFkuU20yRktdKFtuKTZsWzNaST1CbnVtMSErMzZePzxAQ34mQShIfCJyMTxPfWtKVS57eHNfU117JVA6UGt6cTk7dTFPTD9HNUZuOTUsTiZhXzw0PUwwc0BYejkzU092eWpBQyYzYUk5LCZGOEdGSCYyRzMpSTB2VTkwSyFnNkxpaHViUCIoeCol'@; put 'PTNDXldoTjw0ejpUZVN8JmJsWGVuZXdSYFdjQGZ+V2p4eFZoTjxbLj5gSiMrM34yLm4oNmhoIylIQzRUY184RXcpclt4V2svMXlKQXc4ZHFaa3o/aElSXlB+NloyK055WS8xNHtjY29pNHxVamYwZX1bZ0EqKTk6LHQ4ZCNQMktZRjphMVpTLzpmbkgzajU2d0JfSVdXPj1LdH1SNkRXV3NUYkAr'@; put 'MXFxODxNTThrZStvNmFWNz82RXxpfCVFR3dAeiRkRT5ddW9fKjp8QyUpIUYuJnVeVjhMQ3tjNiMiXSZZfGxRZFEjdntIPEB5Xi5bZSJOaElAPiYoYiNiWTQ+azNWcCJtUmNMNm5BdVlEbnU3T0clQz4zdWRwbmp6IzclNE5FLzMyNn1bO2pASjdpeSw/LCVpJH5eUT5eL0ojS1NEeFcuKX1wayFX'@; put 'NE4uSUhdKmckL15nMDNIcDw0I213eSgjYXc8N1Ewdmw+WHpHKmZ6bVBrTGV5RXNbIzs9bkxrOSZ5XjFmTytJME4pJntUYiRVc2JnXmAmS1cyOS9uMSlyaE5LZ1NHU0BwKHFZKn4/dzhyUzUuUFhuZWx9d0UpI2loTz4+NmRvfT1RYzo+WG1TSFNVXV5dKE5KUzJ6LF9yQDZ3SFdeSFJRSXdhKHRW'@; put 'Mj0uIjFNRGIsRTltaFFrbEdINS9HSTA8OCQ/JjB9KzJ0WHJTUC5CXm9DUihMRDZvNUUsVk8ya2NtLFhpYmpiQC5VSiNrb3x1cW49d2xRPXEzd1pDR0M0IyMrT3tbUis2OEhObmlYeXE5fTwiQER1dFl1djNFIXd5amU1PnVuWGdGZlkrI0AzdjZ1PSZnMUs7Qy54WTVua3grUCZTdEc4UEBebmRp'@; put 'QFlzWWhiS2VOa3lLRmJ1Lj9aKFBzaT0hNXZEe3JxMUVzcXV4W0NJMmcoKiphamVqcjU8a2xAb0JgJEs1JD9vPCRCa2xPaGIrPT9tfU0wSENhU1AjNE5HOGhrUCVabXN4RT9APDEiN0AvW01ENU82TWIkZ2tRYCwkUFpmeSt3RlM9aW8scXhSPD5gfSslTGlNVFp5Pkhgfj0sTnxvPSR2TGUhXWoy'@; put 'KGFpTlJLR0JtSndtfmNjNnt+VkkjNWQvNyxHMkpRWEF3e299NytZJWJ6bTEjSj1pJGY+fXczPnEkKENiJnVRNiExVSluZXBXN0orcH1dPFhSMXQ+YGglWjFwWHVucnlGLklJfmtnIyJ5K2ZlNDc/UE5QQDssRi9FOClOQVh5a3x7T2BMWjlmZmwrOlNoWj9YeVE4S3ojXiVKczFmY0A2c19pT0ZQ'@; put 'MUw8OHlBcllfUyMzMS9PbFhNMyhDWl1banlWPnZzMW1SfjRecG9ZTmMuVjE7JSZ3PEA7VmBIOCx+KU9jOyVWWD9HVFBfUzM+RXZhTT1tMH56WnY9aHR8R30iYCRFOm1VbnUya3ZpZ0U2SXM0K3VrM0Jsc0x7aXtSQzAxWTBGfFFuVHAxYCJzZyo7P0Q0PUQyTSZJUVpvblhmUT1PbFskMiM1a29t'@; put 'WE4hcC4mVypebExjLmMuekJeMU1ERVE3LEpsODMpdnZ0YHQrPGZ2K3FqVmxXcGRfaiVyOG0lentaWklGT3I8d2hIamlIZFlVZl1EaVA9azIqKi4/Q1Z1OmQ5bWRhK3V0dWAxV01fPitxe0dxUDZ1eFAjVzVbW0A/Ky40Y1hhOzpyYmBWN2hUOEwsQUk3TEQyV157dEMmQiZ0TlY8aU1MdlJ4cGRC'@; put 'aj00d2Z4VkVzS2ZkQC8zISVtbUtPZzA0JT0qSlZPJCNuajIreHM5KmJEfCsxN1J3TVQrTVFqZWQpSy9aXldGSzRXVl5XbUFSZ0wzYypaRiF8MyF5MF4sWjNNYTFmJDtLfXo3THl8PDFfcH5bSytJeVRzY2VDekkjMGk0NWYzPHRUQ0k9dWljUWpBJm0peW5ER0dyb2tiKXd1NHV8WyMlPWtZX0VX'@; put 'a3dqcSxJN089JGc/SHFuS3c7bl5ndjlBcz8/b21gZi8qPm45IUJRe1JtOlI0K2c5SWZjSiEoVEZyIWU+ZDwlbyt+RnkmTXB6Wkg/WlthfE0+aSNPUF9LLEU6M3lbJEgrZDpQZkBAN0dyenp3VXZqWVkrNWthPGkycVBOYlEqQU5POjZqdFNeLFNrbF5iO3okSWgmZnleIjZJVHdoYnVEYjlENyhT'@; put 'SU9HRVlZK0xhUnZWb3VoYiUpenthZFVeLnpwdClLcnRkUDNxbzBfY0clanpZZEFhbihORlUzUWNoeEN7PmMrTVg3S2E5MCNYUyJVcW19WTcmSVMoJlN0fiN2QnBuSUBCbVRmKH4/ZjojWDBfcEI6cE5hIVJNNiZ+KzZmLHdweHc4JlQqNF05OGRQOlAjW0dOc3dRenc5VSE6KDIsVHtPMCRJIWgh'@; put 'aWg0ZWFjPzV6IXxgY292WWZFUTxdRzJBMUEjZCU8LHU8e2I4QGU8XWghO2VleDNuOHV3Mj1JfmVvaVhPZWpSXmwmLmwyK2xva05MP0VkPktkeCJ3WWdFU2JWaFl0fDE3OVp3UXorN2I1Pk05MXxoaCUlKkFQNTZlYX5oUDd4aktddzk5fF9fN0RuK1dpaSExKjgmOGpjQVc4b2kvSmlyI1M8TEIj'@; put 'dTkjWkZRdWEsJSxTXnc1dmV8TiQ3XXRyRzl+JEpQVGJXWn5IbV12YEU3eXV2Plt8WENLXSY/JjJbYiw9JE1SKGRKIkFSdCl6OGJgLEB3Z0JiI2BULEIiWjgkTTUlPUF6WUJtY209clteUUpLT31eUTJdMl51WWVVP21BcyZOZX0pSFY4W1ZnOXBIPl5ybUpLPG02JjkyTHx0TVgvUmswdCY7UVUy'@; put 'c05MWE4sKEZnODtBfXVZPXxpczdTfkJoJSE3dCh0JDJ0VzFFPWBiX1o+YSZXSkltUmh3UjI0c1RPeFhSN09hSzcwantjTTUoa0JRIkZ8bi97bF1wUHVNND1MNm4sSE9vMCRMX2R2anpMWzhSejhteyV1fW9iM21+azRTOltzN0hbNVFHQnEhbV1leCxHZU9rKUd0Z3U6WkBCelc0KDowUD4xPFZp'@; put 'Jm9YdE1mdyZHbUZXe2dPJCxUMWJ3dyRJUT9leFYweWF5cTZlZEdnNXVpY0BGWWh4Y2c7Z2FOPGlXIipzXk54OSkjVmMjaWNAUkttUjhDR0h7RWMjcFc2Zzs6cjRWWE0xaVU2KGQ7WFcpNmVIZk0vVUhtKWZ+a2oqREJ8aUI7ayxGfVB2QXJ5PENrWi5wQjVeSChFU0pJKkdnLjgyKzJiZGhXIU5i'@; put 'SFJ4LkojPWxbSD1heFN+e1A3PW5ZfWdhOHFLQ2cpOiVrSiM/d11eb1BGTTpPOXltZGQuV11lODk9RyJhXkIxPWxCVmIydkVoZVhBenttZnl4PyJ6NkA8cyZJJCYvNSRFZjEsVUdBaDd5KWJZSDlJPEYiPktdVTN4P2osbyVXcDZZRjAkSXVBRkg0US9CX2MzamB2XXEsYVpdRn5NVnNYI1B3MDcv'@; put 'c3dXJTtkL1pCe1tOWXxKMzlVT19CbENdfmt1QSJnb0NkU1Uvc0MxV2Y9QXV0ZjVKVTcyPEdkMmYjVyohOVE8aSRHPV0iZ0tnMGksZi5tPnZBQz8kayQ+N3s2aGhSJTxZWCo0Zys3PE9leCFKKzRQYVRxYHw2Yls6RyEmP1E4X04meChoTnkhUztaNzdORG4sPWxaVW47ZkxxRygxS2dmVjtaWUsh'@; put 'eyVGcUdzS0xHfTAoQC9pPl5rXi5aMSh9VX1EaUV6TW10c3cvNGthPCl3RGBIbGlBVGV4bXA7M2g8WHRBbDtLMGZlVSJaKzhKW3hVV2Nvd1AlIWJ9LCU3fiFKZCo4TV97MkdTP1dFeS8qfSswQ2ZwYCNtTS5lNjciOWtRN1M3P3pYK3taPVImKDtMO1V+QGZ3TXVod1J2XTIhRX1tYTNdeGljUVBp'@; put 'I2ZAQjh2JCNgUTlrei52NTxpaDNsRH56S3hNamQ5bUQ8S2JCTGYuPXd2KiI2ME1Fc05UQz5pSHs2JWNkV1gqbUY+Kz9ZP084LD1rViEsWWlhVUN8b3lpIjs3dW19Ny8iKTRPSV1xNmRGXzs1dmd8X14vdHkrPkNjVT1YeVlvWVQlakkoK3VLUGZwZnBJPjNpbX19Oiludj5LVWk/Yj9PNHd+YjtI'@; put 'Plgsd0RkSCtKXm1LLDp5aUtNcTokRzJRUW5kRCshdWZkfUglR0RWZTRCKWdxP3I0fUI9encka2ZwWFJpPFg8O0dzNSxpU2Zxc05LRD81K2shUz9XayYkdTlOIjwmK0wlNTpSVjc6SUwwbmV6bXtMREkseUY9Zk88Q0dpV30ua1FWbj8mO2ZASTJ4PCZhRkFSWVpjQDJBUTR3VnQ8aF4hYVhhO0pF'@; put 'K3A9OHJ1K2VPRjFuPGdEMHcuQn08L3s9PVF9Q1k9RiNlTDY/SGhgXk9lVHx2dG1vb3UoJFEkbktzUiFZOihUa20kUElELD5NTDMlaFdNXmBzMCVfeEI4ajspRndROVNVKUZUPyxveGR5KkFWVkhwYE9wLlU8SzV9Ri5qWFc9TzsuPiwqKzRfJnAmcDYuajdLIz1ZdD5eezV1TCNxMDJ6RjUuUTNh'@; put 'WmhxN2k5WCMzQzd3LGFeMFUrRExzRV9YO1o4VSVUZ2ArVz43O2ZTbD03e2RVT1h9Vn49YVdaKntLNTx+YCNLJkhtaylxK3RKU0FbTHlHZ1lXe3EqVFEvT3RgKSRKb19kNCsuX3JPVH5HT18sUFk4YTpEbGY+ZGd0QVUpNGZyIzZjfE5WPUMscG06VTglSUIuQGc+WENgPT9lW35MbEllTz9rYTdJ'@; put 'Q3p6PEZAVWl8PlY+Zm1pTXk2IilqSSYpUDZFfCpANjVMdzguZWA7ZXk/Nk0pOGE+MzZCcnh5bj8rQ244SFNLeUA6Xzc1TyJ3VnFYc2NJV3loKih1YFlFKVs4ZFZ9PTVXRHdwTzNNYzNMOiYwX0FpZUskRG84N0s/QXVwYW4sPGI6SWJReys2XUVzXzd8WUQpQUhtb0VZcSR7eFg9aWg9byJkJCsx'@; put 'LDV1elBLM0NWQ0BeIV8+Ly59WXJybGcma2tnZGR3U21Sfl4kPzU1RGt8YSltbDJpXiJVbDI7Ri88M1M/OnsleFArMWNCUHlRRF8wQUsqKXBnc114YEJeUHhqL1sufXEjbXUwYlJZOj9FPkR6PEAxRTpJW2pTUzdzYiRtNHFwRFgqS3BVJkI3NmJSaXpjNndbVSkzflI9OnVocWRud3tUKD14aEJv'@; put 'VnQhSGo0PHJvM2FwJjJIWkQpTWIoNkM3dC4kRnJMX308U09Ud2srdEsjZ3RVOjQ8Lyp6P0JzIWJCKG9bcTdhXisjJVAmayZeVE1Eb1BzZys7bXJnejhlPlZhXkcxO0Z5YiRFdmE/akpUU1FnV25UWHp4MEJnZyouamUyNUg6Mi4wRiVITmsmIk9AZDh3dmApfDBkW0pHV3AoOUBJYXsvdFM1P0VP'@; put 'Z1A+QyJKMnIrMHw4IWo4VF1tLiEpOThmWkVFdCRaXi9dcDpRK0A4JmJpSWE/Z1RESWRRcT4kLlswOCx0REVCWl5kVCZYdCphJCpWPXFyM2kvLnF1b0xgQWsvWH1WPCkuLEs8cVYqJnA1R2NDL25naGtHfnFvbzNkZXw1amlOTDdRXSZrfGorNixGRHBLekF9KSRnOnsjXT1eZlJqYE03KSxlQSlM'@; put 'YXVgZ2ZMeVN3V31FYUUiNEk8Y2JCK30/PmklbSIkYUpXSD1IeEdQdEBUa0NvQSFLak8/RVVmdGh6KS5oSkhDTkksKE81Xjs0O2R1Pj1FQUhsdlooanwuYW1nbW87ejRCQ3sxZ0B4Lnc4YjJpdXIlZmIoVTxhUlhgY1Y+enBRU1B4OmteTmtXX15tb2VWfTs1X204Q21NLDtZUTkyRy9hXm1DLG1f'@; put 'KnZ0fV01fDMlOjNHXyFlfm1CKEpKdj48ZyRqN09OJCltVVB6RyMwJjBKdUVhWFpDJU5BSCtmOVQ9Y1RIKHN6a3k4QDhpYzsjITV1dlB9TSlVTHo4MjsoWm16OHcwQkNQRTVMMGlZWCtjJVo6Tl14aFo/dzB6Ul4sa1lGS145b3Y7aiN5cixAST89Jj8yIntwZ3ZZJmlmIyRJdVpDI3olTG5pWDQ8'@; put 'KWRtZG9HaUFbdntOamhxWWs6QXIwcT9iUyZMJCJSeXYvVypUaCRjKEJ6RnxNZytlamQ+YzN2NEhXUEY9cE1gMFlpSSI0SUlFekExZClIZmVKNiNAeTdCOjI3UkQ6SE1uQ1hOO1M/dFQjKFlpSSI0SV0hXztOR1gxPStFdUZOPl44S1B4ZnRULGQ/WzI/PmR2aCwqQywuW1JeQFE+PGhAJkJrUSxf'@; put 'JnQ5S0VdUEQwfnJLW2E/XW9Md1g/RVljbSVOVkhIPl8sKUNYRSkvdkk8JEooX1UyLH0oNTZjPHB2TXZULjBLQnRrRFFRNUMqQ3xFfT1WPjsmZD5PQlR1PXBge2ZfKVRSW1c+RzRAUiZlJGsqOSpkXmlkOTRgU3VfTGVEV0dSUF9GN3x8YF9zalZpP0pEV0ROW3B4NE5xdTdWV1tQMzhWZCFtY0te'@; put 'KG02SGF+OyZnZm90YmxYWmRlUE10djQpTCtuPXRUOFEvcDhPPkA4YDg/dC4/JFs8P1UvNSE+eFlHRTpkLyM9bUcxUj0oK0RkTiwmUi5tJDJXeTwsWnFmcVgkd29xP0REWT08cE9CZ1tacSJbaG19V0FnRnx0Jn5LViUwTHJReW1HWzFDN0BHUFRoaFhmQClQYVNTfVpGM0FKMSlMLFlIWnA2fVpx'@; put 'VF9TS01uTitvWjQ6fW8iRnV0ZkdSTEhOLHNjdipWRU8wZXdIdUN3SzBMJDhmazE1XyokZyhpOVBXIVlKJXlNYzpMSEhOUi9sdzlHcUpKdDhCZUREJU1EL29WXndHP0ZXK2FvTCtIQ18lNSxrRUk2L1dFbiJiTEleP0ZVaEhUY3ZYWVEhe0xpR313Q3JfOTNbZzEzYyg2dUBvQnUiP3QqNXRLSXht'@; put 'XiZYcT02cD01c1paJU9uaGl0RXgmSHIjUmRWWE5fOz1Ee2pbWHhKWHhuTnspNmspYCZoPkVyMnpWekpdVTc1e1N1QyNUPjIrTXk7V3ozbGslez51MGJjNS9HSU5jTFpeZFtkOmlgOEhlJitqa1RUJU8ub0hta3wvJCEqUElQWTYpNlg6QHJPNTV4P25QYm8mJTNvazcuaXMwLGFidVd0Jip4YzUq'@; put 'd0Y6Pl94Y2NJR2w8cGtYNiNNS3dII0k+bmtrbDNFSERCa0h3KTBGWFFKcWt4NDdwNmkkPSV9ZlQ4dH1aLE0pLi8+UiU6Lns5MlcqL2pqJm8vW1tbcllwXWtZcCVVe1MyNUZTa3BDcX57UCs9LllKfD4/a2B3XnxQK11waVtDPkMmZm1tOWEoZz5+VGlVQ1ZeZz4hS3p7Ui5eWlh2QDpwdj16LlNw'@; put 'SVNJeXZrU3s4Q2xVJXE2UXxXblNqKUh5blNYUVYrOGBuT0FgcmdMSm49SDVLSHUiMn0/VDRXViE/Z2JaXSFrIiNNI11lUUF7XmgqIihWXW9HXk47YFojZm1Wb2JaRFpWQTByI3hWVmNeKHdET2M4LnFMJF5uZT5iVWFkWiFycExxL2ZbKHlBWWdtbjpxI2lBcio9d0x6eHx9YDl6UWBoWkkkNngq'@; put 'bzkqJFUoW1J+amFLQFk5SHgjNkBgc1plbVp9e2ZpaHVpdE9mYnFJa3pidntOUkZENCF5LnxsQCJDWC9iek0yaGM4cnJReU44KXpkZytDNC54clZ5XXE3UWBCWnJmIXtNMDVGQSleVGBwUDtBS3wvelFxNXZ6ajxdcVFrMUc8MEEwdE4wI3V6Vk07JmZkUUg0Yz9KY30oVC50en1HNVA2UkZdYklZ'@; put 'KFVfYykmMW1GM35rWy5HKkQ+NlVfY2dHVF9eb2BNfWdLYzFCVDF0OVlrPGYwTC93LnluclI6LGN6WnYlcUdkZl1bflo2SXpdUXdBVnpIQGUoQmJxd1omJkc6cSUjO3xHUD9aTWUzSVVJNUYmTDV2elVOZ0coZ1E4I01wW2R6a3oxZyZVYlglcW1Wbkc6OC55RngjWmJmKS5POHRWfnQ/d0VEI2Z8'@; put 'R1pSKFZkSzg0WWFsO0peI1dEcHg1RU5SKSxba1hBcjsjXk5Ranh3JTEscz5NTV9KY0tZOzY2I1NvcFheWmJmSExWTXMjU285Yl5aYmZpPHwoXXFHUDBmaDxPP15ufDlfOGdxNiEoM3JHZjsyOER3VyU6TTU4T0AqQjJsVXlOd15MQ0xleSUzVEQ8MHBwKEJ2dUhsYUI1ITVWbVJRRiV1TFlhZXFX'@; put 'Wk5UWmJmdUdDfkYhbmd3d21xWUw+T18ifCJKQiF3SFJVYEppTCFpbWdjKUthe0wqNGd0R2VlfWxSMzlVQG0qSFVPVU5ueUIvZk1pK1tqREhSUEYlTWhdNEZwL2xBcyVNJm16Ozchc2IrOnJwVDxSfjhhY11AYVM4M0Q+V2lNeGpmN0BJYiF2UENaZHRrV1hte2ZhJXc7fEtxXVsjWH5pRmU/d1dW'@; put 'eE0wd2pCI3t5KV5vbUI1dWd0fWRxR2hJJTpnYWFHUDUlbk8lO2lOZEsvSVp2RnZ0MHwhW3xpRlBufH1TKzNucCN1MGB2JjQxaE9gVThpWXJSbkw0SlQ/fVhAQkUjO0ZlUFZPUysyLzg0RCQkZzU+alhAMFs8bTl6IXZheEpQZkc1PEtjbnNwV1p7SGRSbnl6clR+JmZPYXddMXFNK0dzY3lhNSwj'@; put 'KDxtM3JVIzpKLj9afCNwU2AjdHxQbV1WV18/e057YzBEO1ExR3RfO0dyT2FvNDljfkY7WnJGM3ksL0daP1gxMHUlaUw9Mz9aSzI9VkoyPVpENy9FT190eX1hImd5XmExLjNWI2lPVTlxZSN2MUxJZ3w4XSlPTzsmOzhXX0N9UHJyTnN5K3pnfW18Ri9XPlAyTDEpUWk5bj4mS1hYKmVNSDtaYEcx'@; put 'VSNWI3ZtVXp6YUtXbWg5eSFrQ11mQDlndzwpTCFkTnFsZUtHcFVdS2peS3U1ImI1Ky5hK0NyWS9ZSHtATzRpezJDaz56JEdCT2syJjlNQmhoK1hHPkwkKCtvS25XQGV4Yjt5O0wkKiUxY3JSQC4oMHVePW92ZyVhekFRJk1tTEtpVCx9JUEjfG1OektUWVt2LGZkZ0M7KTpwYUUzQy9PNzhOdj1M'@; put 'JCkpKl1fW3BFKGk5YVZ+RWNxNVFNeE0lKlBiRDwuY21EelJGb1JORHE2VC8hW2VTbUlJVlB+VmJFb1pgInBJajxFVDNULHt6YTYqQVgmNm12Wzl4TCQ+JWlnQ2o/Zj9dfU8rdU1SU0c3QjtyMFh0a1R5UXpHdjAlfS5KOFohVTBhSytnMGRUeiFPR05zT3JNcUooZSFvRkVaMDxbcH5UM1taaHg0'@; put 'Pyo9fVBJK1pjXl4sMG1HI1JVNixEIjU2JV5xLzc5WHBZUDBHWywwTns8SF9dfiVCVHRrNztfanZPcCNKV3NIVyhsfW9lalclcWRtWn1QT35KdG9aJF9nSTxKfDFsYT1Tc0RXM1M/KUs0Jml3YyY3JENONGdLNVUxVUZ5ZCxYMj1eX157On1eWmJuK3hRL3xBVG1wPF0pZylOND83NChVO3o1SX51'@; put 'aSl3SGAhWGJGUDZOcUp2RnkpMHR0UEA2VU9NT2dgIi5vcl9VXUJ+aHlkQCZDZ3pZaF1MaC9SOzM9JGRFT3ZSby5nYi5MJl42WVo6N1U2OllvalFGKilONUBkYllua0JHLElaU1B4U1tTN1lxTG8yeF4oPXk/W3A/cmdKaW1nPSl0TEY5TEIsdS83Wm1fSXp0K0Y5NHVFanIofWU8XjFsRlFQckdM'@; put 'Ul5LRFVpWjAsaXZyVzBzVH57c1R+ST19QjB8WHgwLFlWVzFBXihQeywqQ244bXsmQ2hRLHRpO1FeZldHX1VLU200JWlkP0QpZUZYUSFITilnRlRzTlQkajxfPSE7c2ZjdHleenlefjt2VFo4ZE9CYH4vQEM0SWlVW0tMMVZ9Xn14aXdlTWd3K3BBPlhCJGVIRXlXUHNjOk5EMmRsYGBncG1MbWVY'@; put 'PGp5cklfZy9BTF0lcSsmYXE8Q11VWl1ZcnkiS0YuJS5xY1k1enw+SGBwXTAxTUlDcz5ob3MhOTVQeUdDP3JmPnEmVXUuaVlPSy9JWmU4bz9GTGlRaXJWfmQzOi9eZHM6X2RFNngidUY2LD02WSNGfEMmenI9fEwjd3plYGYxLiE1SnVmWTR0P1E2b0MmW3s6ejQoPTEmRGF3OW9DNysid0xsXjl5'@; put 'YVA8SChYYi9eSDlJJDJgYiRBa2ZeMlJMI1RvaD9mYk9UN29DST5wfmclb2skWDYmcXRZQitAX35+eUtQPXRSJjsmYDRtdVNOT10uRFpCPjhtQkpPfSt3RWpmYEJrVC80dlZrdGAkUyQpZ3NTdUlLbDcuOmRybEQrSmF+QGtVNWEmTTpaeHAkQGpuc3slOk1vfj1vQStCWUhJIXBZKHc1ZGNNWFg+'@; put 'fW9jZ2hJLitGJjsxITdYcVZXalYxUF9UQ3FGN10uUCp8XUl5RGBDOUsqei51fS5IcGw4cHEjWTlaPlk3ZXJTV3ElW25ORkxIc0lVPW4kZEgkLD0qblE2Y2djRipAZ3dqZUlNYFA3WygkIVUzWGtyS2pOK1AuY3xIeTVpZltQV3ZPcDZjTExEL0YhTzZJPEg1RU0zR2VqMSElKi86aCYiR31mXWUk'@; put 'cSxUWFpVK2pCeUpAZWdXJHNdd2Y7VzJEZ3k3XzpvbTQ+NVgiI3Y4JXtPeG0jTTRtZj1FVis0VGVbRDE2eC9kMV0lK2ZhYyshbFRfI1UobExiOUByNkxkfkt9MHxCP2BWUTYlJjw9fWxOUyQjMm4mOktLdVFWbj9NSGRzYjdvYFE7YE9xQCxqNCQxKitRQDxyIyEmPEFeezdXXWRjY1s3MEVqWXcj'@; put 'QkckOF5AVSt8VCkkfXxJNVhVbU5+Qm5zWmB5RjM4bGVdMEM3NDBNeT9bZj5iMXZORHJJVDJpUVBCXU1vQGU8TzlAWWk9UDJEKDIxJTpOezBRcD59Vj1mREozLjBBcHljPzJ1PEV3Uys5aTlmemopYGJJe1ByTl53TmF5N0hQaU0oWTRPISx5YjFqYmgialF9fmBgYX4vVnNTZi4xSDF1cUJgZVFr'@; put 'Nzp2XntzLCY/Vlk+KWM7VlcpTyI1dmtJbmBzdGQ3VkxXaCFaM0g0NmIlajYjLHZjOy82QzdjO1E4Mz5MZG1EYH1PbUl+dz0yY25NLGVrQ0B8e1tMYjhuWUllaCMlTGRDO2x9emZdeSxRZDYhJng5cV0hYiU/eHBPWSRRekp8YCg1d0JvcFtZLEZaeyIrQlBQZndbcWY1LCw0QnZHJkIwU1Q5MnVn'@; put 'JTtnfTRhYnsyZCpiJW96NFQ7X3pGM3EwNSw8JC5EL2A3ZS49JmsxdSosYU8vZVROI3hvTlpDRCtCQCVWJTxfO30vJEl3bFlUakk1RGptSnFBfGArR1gsdzxGUkdMbU92bWAwSU4/WzFJa1l7dWA5cUM5clYsNEBAay8yNW5zeCZhfWdqI299bk95YU88TVN7SnpyYGpjfnhHUCFnYVddXVFtQXhF'@; put 'N2QkYlQla1sveGJSJSRYW3Q6b2Y0PW5nJChAM0hzXV5zR3NdKyMyNXN3JEtUOjV9P0kocGwqIlRnPi4wMnhaX3d2eEFueX06ZTNBNm0yJWdwTnU2c1tgLGZPLGEwWk0/I3UmNWFQT0ssVGpNSmpdJnwiMkAmTzAkY1cqOWRlIUI1QyF9ZFRZb0VuZD8wZnpqQyQ7VCleZEY4NHZCK2BVSXF6R3do'@; put 'VDJSUkprRUJPKmV+NjFSRXh4QipYZUFHaFNoSF10TCVpa0drUDdbdztTIm1SSyR6ZU0ydTcxVE5Yai8yIztlQzxGSStVUD1QbjRDTSZYK3JyallWP0lFbTchd0R9QD1pd2tAMCYqOmtNeipsNjkkZmFXdH13Ny8xaDZmalMzVis6bTJaIW80YT1xa2F1eUtePTBHUFkrZ0sucCpQfHlkKHh6YHsq'@; put 'WnlqVlJqO1hRUytgMVVzWjVSfXgqQSZhMy8wOUBKJHQlOXF+cWYzUkVAfCZhKlNoYmo3UCNMMGwuZjlJJCguJH1IW0s7JW8yKktbPSUuPHdXcyJHWC5nTyx7dn04YkR2ZTdgQDhnSXA6PGE+eHBZSjlpTmAqKWhdIXVMQ3EvXiN4PWBpKXQlfDlzPTR2JmdOQ0s3fj1xQzl8dDQxblV+cyV4UF8y'@; put 'YCVuU2M2RV5ucE8hZ0t5ODpyb3psSEA/Ums1aHEsNTFuSVZvan57M1AhOj0zUT1yPkBRR0d5K2NVVUhaTEM2aFJ5MWYhR1cwd1YxZGxTfVB7V31WR31CYzwwWzpTUiMrJi5OLHt6KVskZiZbKCMxZE9sO3U0MFg1Q2g7MEw4Wl4hYFI4aG81LyhpO080M1Alb1hMZTVaIyRtazJSQGVUNitkfU8p'@; put 'IVhPK1dAI1E+Q2I6dVlkfj0odE8lWm0zUUVNeTNLbSNpeW1nKGBIZGsmWGltXkkrV2VkOy8iJWwrIipuPXVmN2dwVkJhKTdkK11wMTxPLCp2bz1jO1Z7MVFPJTp7U3pvYGsvc2tRfTd2Lip3ZCNzZntHfnoubW9vb0B9bCRFV1txMXhCTCZfWlN4XlFuSnNtb0wzPUBfPF1qRXR8Kz9uM3RBVzVU'@; put 'dC9fPUZ5NFA9fj0qez9AfCt4XyouYHRXZ2lYU1lbKDZafWdKMiRAcV5dPCUkeEM0ND0sNnJdQUpwXXleWmssM0BkdUpPJTxRPlI/R2lGRVcxITddUUo1Jm9sV1NWTHMvOWhlZ1s6OnEwPGFiR1k5bXJzKmx4bGVpZFUpUF1UL30vKkIwPHF7dWZ7TSxadkh5WzE4OWNTSXMraS9pbE0pJjg1MmI8'@; put 'bW9VIVQlLjMuZ1g5eyV1Tno5dzkmL31McWFoVlFJTENNIkBAZUdNIkAuMiVsJkpXMG10TFYrUnteSTAkd1sxc2cuLFVOMkFrREN7ekRId1glPDgxeHNEd0RCZHo4Kyl5fHpqKDZILH1AV3MraW83SCwkVTxJK1IoOEkuZjMscnNPMzR0NG87YnFPcGV9Uzl3czooZjlGamBma0xhSWd4cGowcXQl'@; put 'JUs3QENMO1l6OTgxMHBbbTQ/UU5yIjwkJlIhTlo+Y20mc01AIi5Vc25geH5gS2gmQ1VJTWsoXzwrNko3bVFfQitpNyl2NSxmOmV8MHN5TyQhYCw6Jnd7cn0pczJbaipNWjBxa3QwQDo5M3xbWnclVjVoNWFfN21hcjdRZiIsfWdXSWYwPDBpXWxvaCZZQzEyV3xsLCtSe1piYVFxdDV8VTc8fWYs'@; put 'cH1pKi5iZXw8L0BfJjE3JjcwcTQ5JD9ofktdOW4hbnxnbTlzSCReLDlAOChIWWkmZm49S1o+bCEpZHEqU1FtdHEvXkJQdSQsMnhoKCN4VTtwSzorcWwzc044aSFNaC5QdmFeIyUlIz9oc3RsZzd4cGliKHVjJVU7XXttcSVeI0hoKS5VUDBAcFBfOlRNOz1IakM1QT5sN21gRlddbDt4V3A2ejs9'@; put 'MnZFdUsidzQwMT97PFM9dlhhRSUxKncjcylrOy8pZV1Ec0Nab1BuIWd4REtFSndSIlV0Ym5KMCoyKyMyNUleYVtJd1JpdyVvOWMoKiRJeCEsVUZqRGN1ay81OVZzJVosO0lUJlhLcmU1UTEuXVgqb108cFZaXWB8PWBlby9XQk9gPyk2OmFDZHdjUTBPTXRzOEAlcEc6fHdjWXRWaEhnL0wxQy9Q'@; put 'JCpDc2RkZnx9WyVGITYzaHt1cG1Zd1U4WWc8bVJRXiQuX1EhNF87JSlWOVUxRkdjKGcpVy5UWmw9SSVdP2RePXRzYDpFL2FfQWEvWHNsM2h7L31IPWFse0R3SHhAJktgbjRARiFCT3dbKzUrVEQ0eXxgVnxzKW9ob29FPUBYU2pvfnpCamtOdCorNSFyQkhne2ImWm5FV3E5SSxHe0ppRVd7MHlq'@; put 'JiF1Jmh7PEh1KlJeKUBGQ017IU9xQG06bTVOe1Y8Y2oyel00SF1ocHtLJntOJkdxaUZ8fX5OTVdxUVg0c3F1fWZ2UF02Z2hudGI9RywubW1HaFQ8O1tzJXQwUlp1VExMSSgxKmk4Ml1XMDcrIUBgLjhSTFB2WDxZcHlkSjFzSCZrYTVqbm1fUDQjOjcwOVRhQnpeYlMxNipMK0swcX0sTzRecVA8'@; put 'XTNQIVlYTW47fjk1aSQzSmJ8WE1bNndRdXVZTn4yPFNjd1tuOVo5KDRZayMrM19+K1ZiXz58OipubmJsMGF3S2xkdDNYPipuZVROYU1vNmBTI1p2TzolPT1sd2BVYjx8aCJtXlU2ZkA1Q1lYL11ARTBiPCxZdz8/JGZmTy4sRWdobCI6VSsmOjxHUSNrdSVwbi5td2AzWzhbKG1tYn18NG0iW0hw'@; put 'MTRfYT9nOTpkQCVRXk52WmhafTUkRjRLJndGJmsjS0p7Q0c9NFZqZzFUPmtERGIpayQrL3hWPmtpbSRjKS9gSlQwcUpGWXNDeXd2b24jWG87K2taKG1mZyxDYSoheXp3RSkmJj5nUHNyJllDTEk2al5uMno8Y1lHRE4sJG5RcnUxQE4sOF5jbS80UGltazlweFpta0ZDfUI6fTFgXixPSkhwb1N5'@; put 'JXZdSSZCPk1EZ1IiZEM7cFg5ITo/KnJENldtbihCZ1UhVVVxJkEiY11hK35KYldEJTZKJjheTExMdmcrTHo1amNLVGJwZ0N3XWJsW3k2cyNiNkx5UyJud2xEV0N6Nm4zS1JTSDBMV0hTfns9SU0/MVFxZURfUlpHKFN3V15GUF9iMUpBJm8vKV1VKiFXQzJnbTtrd0hRcFFSY2FqZkw3ZkVrdyNr'@; put 'MV1fVjsvNENnIyt0RnZSQzElLiM1RUIjSTxvXmIvajlDT3IhYyNkPHd3fjx3akowXzB+XyRIK1h0YHNRRj03JCNHYW1vOlEmZiN6PWc/Iz9eS1A2PSpVXVtraXg/LD89e1NINig7Z1h3T2sxUmtxLGVpVjUkOHtfQkQ1OXtqOWk/VmM+L1YmPFc3S15DUGxeUyRtPFJXSkFlVlVaYGYvMGExQGZe'@; put 'PEVqN1Yyc35fW1AwamVyWjwld1p6fjw0LH5EMkY0LCJtckdTO2locDAyI1RJP0ZIdEZ2fWojVU9DXS9BQyJwU2FjPWZ2L0I3O0hVU3F2JkF6YTE/ZyglNCY9Mko9ZCNVUkVQR1BCRilRb3FZVEh3b1hUczIpdXV3OiM/QyV6OWpQLCp7OFYmNHE6XnpscHBlKGJad3xhVjJGbywmOz9dbnAmJT5n'@; put 'VUx2Qjd2KWtQeTkjYT9JP2lEbHRKLFRYSj1hTitFNWgqMjovYzQwfXlfKywmfjF6VmMrUlF8d30oa3B4dX1DNilmLyMpJSwqUmN3ZV42bjliU0o3NClrPGoqMjNMdUFRYy5QcD4rXn5WWlBrbTVrNGl4PF98REEoa0g1Qzxwd0hJeDlxP2d3fDRFOUAicDlwZm9TOFVxUDF3I3M8dnVhekwpSkNP'@; put 'Y1dSQjxNRVAyRnlNeFgvQkQhbCMsITxNfTBzVjhRMnZ5dX02MjltelVkYk40S2dfa2csUWVhOEc4bjk6eVFpVCxLRG5lMDNdOGQjKkcweVAxNjVJLEUkRjBxREpJdS89NHhJKS9yIU1pdyl8am9mTzdCVmkualI0e097Y3tJWVgoc3x4I1pKYnVsc3x9WyU7T3JOPnxHbEs7QFY1fkk+SE9LJTdk'@; put 'ZGd9LD5zM0NJWkFpPyVJVSkyMi9EZnYpTHlJMFZ9PiV1YWJ7XWpUc3BtXmI7Q305M0IrazE8O3c4cCsxN3tEUF5rK0xSJClEK2pmV1QoaG9ZWTczNFt4ZTowKGRVc18hSldNMSM7fGohVy5hY3xmOyxwOnssd2ozYCo5IjRoaFBhdl9BKDB1eUMlXkhjTjgqdGdUUX4kJlBua3RmRU05cFk9fWRk'@; put 'OmxweyZxITtyPFE5akdSaXA7bUQmPTh9ZmdQdl94YC5AMWJiLi5iYi5iQjpRKm1lLn1dLldyMmg0THEwK0hoQC5+UD1baU9TeldsRTFHSEN4OSR3Mit8UjxyTUlTbGBmVkxfWlZuUEBMaW1GIUVLRkBDZiE0bGtoV0E4RkxpRTBGIVY4YFQ9UW9pc1sqdjhVSmsqbGMpdiM4Ty4kUy40UEIrOUE+'@; put 'S2JFVWE6bGJkNjZgOkc8Oj87QkMmcDBYcSwxTkJvU1hyciFnPCtjdiUjdkI+flQsU1d8NFNsI0gkXmkmfUY5NVZBTGU/dlFObHUzMH40QCsoazN2Xkh0Z3NXOldPS2J1bHNOfnlGNEZxP3I/WFlFfl1qN0BXNyQyQmtOPVtYX2Jyc0kuXmkqb1pnTkspOzd9bDA5X1VMQzZ3I3xuZnB0RW1tZk5a'@; put 'aiFmOk4rYlszPkwhZD9ZUytsWGNtaHo8W25wOHpHZD5AKSUpfSx2L0M+M2w3ezBZOCI0JixmeW01cjlydXZNZzEoez1mT3NaYWpZYk9LaVoyeiZ8Tz5md2hGUCpLeTp5I0xOS31+bm5NWkleKlNjdVkuLlRkdGdfcXlsbEE6QzMsPjQ8bG1UdlJmenc8IntkVX4rPW5MMThJV3h9MzIvc3graVNk'@; put 'KWBPdiwsMHtafCNLKlZMR1pETjxgfkdoUTVGcGFKT2JBWnMxO3s+JT5LTTZNTFQxUm14d1M3NEtQfmBuRTg5eERrQFkrbk0vPTtjVVpHbCguRyxHLEd8T11sJnhgcXtuMz1dRHtsL1IvK24mZFtbOldPJHBxbC9SIXg7OXFPfTgrLm01Kzd9LFN6dWBJeXchKD4kXSVfO2RFbiM6bDc6Ln5YJCl6'@; put 'Wz99UypkVHhGJSZ9NndWaSVqL3Bde1A7eHlzOmVpYk1MSlRaMyZtfGtFMUdIfXZgTDF5Inc6NDNOaUx4JFhuZGl1QjxwaGRnRXpGIXdxRGxAOVF3UDhhalNOMigheTI+UkJJOXtdO0VKNkV3cDIyVnFQczQwZlFPeksrSlpNKHxwcGF+KSQ3c0N1fXo7KypxeG5wJC5Te2N6a05CKl1vcltJaCRd'@; put 'PjUoaW9sXTd3OnpobW88eDs3SWxKa1lKU0oxSkhPPEBWVT1Kcm86eEg7UWpZcip5U1crdFRaKnprIl87cSosVCwsYShQXldaTG87RTpqVVIjXlZ3TjhkTSlsVl1sOCJqZ2dPPSp3cGh+cD1ZWURpYisvVEAkSTxQVyZbJX1wPUsqXktJZmhJZTokSihHa3QmeComKT8/MilPZ1oxbVRLbmsyWiRA'@; put 'OC4wTFNdQ3tSalA/MDolQCtuVj8pKjdPPTBtV21ua3xuSUw7Mlokc1lBOilGPFVoaCtlP3dEZENAOWcvLDZFMjFYNWsweD9NNnJdfVFtZU8yJTFuKEA/OD1LTGlSW2N4JlA8MWhZKUtlXzQ7M1dGTExwVCtVUjpfZ3VMfTBPaCw7RV5zXVUmc3VkdXomYEM+a2BnTjY+JVMkfGdPcGxLeSsuOm9t'@; put 'ZlZYcyRtIVA2WHM5MSVTRntQQlkyZmhFYTRackFDVDdnVUVQS2RTMGRzfCl9WU9HSGhZQnFoUTw6clY4M2Z9QyM7K2VoR3V2a2s/cDp1WX0yeXZCTTgoWCZBaWVYaFZKMm8uWSZ5aEJfRHJuP2ddRHJuRl9wa3M7Ok80PWZpVU9sI1FjMjhOYzI4S2BJP1htM0ElU2A5eVhMZShQUWgjdF87MW9M'@; put 'MjR2VXIlUGojMy5kZDRqMVRxUz9ZK2k5e0Y2d11UY2NPUnQ5M3FkXXIhb2xWJTNLbkNALE5yayQjXUluOTRiW3ViOnl1IjRTOnJhQTIudV8/eyF9X2spTCQ0V1VnMEZ7T319MUV1SnZGXilHQnJNRnZrV2trW0xMfDFePHtKN31UUjckK2BVQVpQe0xLMVVWI3QsIkAkZVF0a3tiSGhWPTc1XTJ4'@; put 'dGZyMjFrL2s9SyhfTntLeUBFdjNaLjw3czooQlZbM2VBSGM3REF3QVBiUmtFQTNsc2RdM00zVihMQjNKIiwiP0s0JmNQTVpMUjUocnNjXnxVVEguLmByP3I4M15eYm40OlZZXWp5WCZvPVZXSylSVzJyPik/KXY6d0o7RXtQKyJ+PmFGaHE4VV9xdnIwRVldPEhxQThbJUE1QlFqMldHcl9zUnxr'@; put 'a3tSOkN1Xjh0Sig0ZDooQU9afDQ1QnJBIllfXnxAfmVHcEMmX2xbZWc4dlExNnYqQkB2JHJBIk0kd2JhKHdXKlZrP19AbkwpX2xbenQ1ViRtXil5e29pND5NPmZzZ0J0flRsJD0iNGIjKHMpW0JncUJ9LHM1XmA2XXdKaThXbnkmJCpmTHUmb3lHRFJPPENOXnJ8R19QYlR9PGxSfmtyc1lEaVZH'@; put 'ez0pe2RoKH5gczd9N2xaZWx5IzFCbTI2OUI1PipLfH02aE9oRVU1VCtzUSJtXSN3PDhYXUIuXikqXVVkOWlYUl0scG10SG9vX3JEa1d9TXJxMGJxT2VTKWtLV0o8ckJBbWxwVENxJn52e3dWMkArajBLUXFNYyV3NE82NWVFWG5jXnU7QUxBXWFGZ0YiSFdkJXppdF04RV1nPXZbTS9dMUJwJl90'@; put 'LHtdaHBqVnh+LllkMEVle2EoU343JCJpUC9hfUhTNVFlK1I/a2xlaiEqe3NbaHl1PCx+Uj5rfkRHNSk9dXJ5YGdJLFRuSF95RkttTGVCVC5zSCwlOSZAbnliezQsIV5ITUkrX2JodWxzTmpdM1VUJD1BT35qJT5LTFg4QjVNJDBba1d4alR+ajBwdmxoPnJUPU8xYmBVVTFJO0Bpcjgpa3V4U1ld'@; put 'S31HaHF8UWczNE1WQz5fP2RdKnMmbnFjdDp2c3N+TjpASSZgPDhlYGQ8cXBrWHV2Q1Y5dTR5QXl9ZjIkUjdQOEpsaGNXN3tZW3U0bW55cWdgTWdlTyl0bHxPNDdYNUBPb2t4bWBqJFVNU0VlW3UkPkFvaUo0ZCpJTkZNSkpebDJHNV4kMWp4ST04YFNaZyhiaDNyZzRRYnh5V3pVIzo9cyZma0V7'@; put 'fV96JDc6KEteJnFaazQxa34mcUxHcjtFT2R8Il8zcyMsK3cueHJOXXRBSFYjWiRmOm4lKlZpM1kweWdRMDl0M1pARUlEQEV3M15HNn5IPjElUj5xXmxiIzBKSi9kNXxNSFFfRnNQODdPUWlCIjhPWSFDOFsxXy5NNjpNUzgiJV9wentIMEBgcT50dyovX2F5O3swPXJiPjBreWIwQzJ8L1ttYURN'@; put 'ZmY6OG00cmZvOSY7TGFwcV4hYWQ2LFAwZzFtTiEzeGpWay5Yei4jYG88ejkmcG1xbXlMZ049RXE3NUxfVUldLip6OGUwUXxCRiZibkpQM3c/SC9jeithJEhEdyx2PjtGe29nOWdRYXRqOUE+ME5AVGhwPCQpJUVNQ2Q5YF1UVXRlfWNyQ09gXiQlP3lVXjBtPTxhMGttS14+OHdrWTA1X3xfbTRy'@; put 'ViFnXlZsP2Q9MGpkeENoQUY1b2lzRUx0flshLGZ9YTE2WiQlajEjPmdJJHxxM3FDTUZrI0x5U0N7UTBDM0dqaFZPejxOP3FNZmR9RHxnMyRmYzcmcHdIO0VoW0UmN1R8LlA5RDZyWWsqRGtXZkNXVHFaJEY2KUREYV53UzA/bjlZeTBbOjl8cl5XKTpyNjlsYWhKXm87WzluQH5Rc0EyfXomYHE8'@; put 'Ly8pLmYlWSM9P3QzeyM6ZlozW2cmcC9TWE5OZ0AzWWZya1I8VTt8Xndrc3hVTT9WRFR2YTFTODlwSF00MjZWKTQ2cmFVakEqK2ZGJDg2OE9DJCNHSzVHOFleSWBCUGRyQ1suNTVxNF4+c2ZlYWJZYHpnenViJVdfRkYlMHxnQCphYnNAQE95WXR7NVVpMHF4NmI6YjljWTpwMy9iTFhoKFtOTXtA'@; put 'ZndjWF1dQUlhJlpFME5sTV09MXR6Ok5PTl4rcDV0dSVAZm1IS2EufXV0PzMvfUIrW0pHdksoWSg9UGBRNUtRPnlVelpQRj1jJkY1Q0hPZHgvVHMyKUl1UGxAblpIZyxRNUxpTyEsSmhbQDA9Kk5qQ21iJE9bYGBnNSxVcVBtYERsLCVDfT5sIjsuaj0wIjVKeVRKPmxFSFFSYVdafUY8KiF6N15i'@; put 'dCVhcjx0KVU7eFViRUksKjNObGo+WVBiQWxoI3h6b2szMFk+QnNnZn11NCk8LlRCMjZFViQ7ZWt2XzpVaDpyNU85bS5AZXlUZzxsY0U4OHsqUEJwSWZCT3dgTyRvJnlITzsmM1RHL3pnSFY0fCMzU0I0Mj1jJlElIXx6VmBNPixaYC5YYz9mVEY9PGliMUUlWjhjPmE6a3VlaGY5InJmYFF2bHFz'@; put 'JV48a2FaOHt2RikxSUtfT3FsJmxQbEJSQllMUHokOkY1UyxtY0xqbDVxXSkvVFd8SlpNS3drT1piblMwNj5aeTcpZzdZbUJFbXsseW1QUmFKPUloNTB6OXVabzcpKiRSVDlSdyUiNUI2THtHUDM2JHpPIV5QamxmN0lHIm8qV1V0aCh5bzc+N2NgZF5QN3xrdUA/JlVfSWoofCp9ZSZDaHEpISxF'@; put 'NnhnIyVsSD5kOHhAW0RCbG05MzREfCFYJX1KWjhITjYidnE8WyMuLlo1M0E1aGVEPl5pdmo5OXN5VjBUQnBOKj83PHZ9JFg6bEJRQV5xfkZmTTo1T3A4WHpDaWAme2tdfV5OSmNKdzQmPDdhT0M5KlFFKSVhViZeUTV+S29QeHVOKj1aMFBXZyQ8akNUP20sKiU8NGpYOCtpO3dJLHU5ZWQ4Rj5F'@; put 'SG5gZXFDZW1JMWk2MSoycTwsXVc4WEAvamRlQSMzfjtpQS5EIX51ZFV0RTRMV0tlIVFOU1h4T1pXbFFwQzNfe11mKEYjNnRINnB4bVIhWVRadGBtYytSSk0oLk93LlkwI2s7VGF5O0ZpMmlSJnBAK080Vn02MkN2ITNXXUNNMWR4UTt1aWQ5UHdXJWFpbFs4c3h0bX1ZOUx3JWU1O1EqaE02dTN5'@; put 'WzFaMmxeRE1FIUhOKm5nUWdeZD5EbFRuJmcza1N0YVJWIz42W1lVVENdclUrNUtIZCwrZntaUzV8TywmNG0ob3V1dXlrPkpsRGVkN0o+Xmc/a0FXRzpTYH58blpiPjo3QnM1JSg5PTEsRDorPWY5OGMyQThKMG14JjslL3RUOSYyNnRmekxhMTtANChXJiVzfmcmRUFGdHh3Kk93eWJIX0FhP2ND'@; put 'ejd4fmpiMkVdfTc2c3RILlBnUDwlL1JLVFBiRX5BOzdbUklrNzNKYjdLaiNHMTduemFnfGxUcFM4Jn45eH13amVQVkN6YS5WdlthWl0rI0ptWUA5bHdtUGZ3bV9wU2hjNzA2RFp8LHQuYmR5TmhTd0I9bDRncFU6cHQqfWlWYFljdiJqPS56UkkwZ0JXQlM2dDc1WTdET0lsZTpOZWY8LFs4eFtg'@; put 'ezJmYXVrZGlBKkU7Xy86JTJRYDIjUEJdNkdKSCZ4LEBsNS9ZNHhUSnEqRjt2Y3skYmp9Wy86Zm9nJnRsTnUvb2tgZWdiKDlQYmRLQ2RreX4rKmksVGIkOnphVjJybGYxQ1psY1EwWT57b0ozI2R+TzY1QnssOldha1dAOkx9RXlGfit+U318T3VoKjwlZDV1e2x9WSV9VVQlTXhoUldmSlRacGAi'@; put 'JCFWYEhZd2M/Ryh9P2FVXy5vPG1XVzxqM2JUOjV3U2V4NDtifT08RzgjYEIqRiZgIUEvcFRnM216REddMGlvb0UkO3twMHFaWV55UmBxXT03UCxHSldFVWcqdml5Q3JzXXluMl85UGJkNFk1Nio0dj9RWWF9dHxHTjlYSW1YJkhhQCE/UFI1XVB8L3tIfms0emljKTMvWTR4XSJuZSxlMmVYMTlT'@; put 'KmdnSnZLQGprRGkwLlckREFlTU0+UHkhXnFyMjgkaFtNbWc6dylPd0gjfTBEOm01Sk5zNkBPWmoidXpjLywqSE0hblAzMkQofHBdcFBhTEVCNEUzbD07ZGAmazouZHNsYDgpIzVOSn10eyRWVUtqeCIqbC9bbFgjPE9PPHJjbTI4e3l1Jnh+ako4UTVLeXRRVm1ya2I+UVBHalM1MSV9JS9mNmNz'@; put 'O2BIY2EkZTovdzVSfjZiYDp0IzwmeWUwS1BmP31CTSg4KGpTNE9heHNQYi9AVjZbWFUsJXNNfXRZWlFaU1ood1NtaEQoQyguQFJITVIjO3FoZClRTjgvSU9QWGxFQThwWzQ+Lk9UJW5hJXxHbEZIdyMqWn54MUxLN1p3TSkleGNpbWpIIz03U1pPPz5HJFFMYX54Kk19bHAvWkdEfmllMjFySlR5'@; put 'SndQazUpWFFteSI5PTUhaF96UWdQfkM2YU9uIlBwNzM5R0h3N3RjVG8kKSUsIzhmVHVdPFQzMmlgU1gxWzxJOzo5PTFscHc7QE82QjZSJSs4QHU6JWkoMHgqQUwxc24iYGJRPVI2cHRrOkZRRDZKNyM9UjZMJWwxNnUvbzN3UEtCVkdjSSpQK115JjBAWkM1c0tFN3lIbm9YeEokSkVDWVVdPjgq'@; put 'RkEqITRHKHlXY0g+dDsiLm9aPFguJktMNzJ3SEpXKT16SXNWSlJ9YGBhS2g8TStOaEpib3csUm4vITZzfmN4Njp5ZGBeKXt2RlkobjV1SDRYOGFHTCYvRXJtN1FtS21hcD9nRktMVjh2aCVqeGgqSHFaRV1wek1gYFsueFYoZ3wyLjA9M1BtfC99Q295Q2x7XzkwQzQucihaeTV4U3FZSSx1aSZ0'@; put 'OEtRYTROJUR3MHJTb3lbSWs3W0MkTC4kIWNJfS5IKklNdml9JDhlTSkuZGVoNylOUGZ+fEBeNkp7Nn43WmNTbWJjNixrZi9aITdMcEY9TElkOjZMOms6W19QKnQwZG1FRGxTcCk1ZEghZDJVIS94TmxTUkBqfEpRbzZiU3hEQVhgb35gbnpmRkF9RUNnKyZJNldDaHZrTmA/bDYlKC5RNlNfRzZZ'@; put 'MCNKImtDLGhPIndGYl5eMklkYjdZXS9DKnp3LiNXdisqRTVjZklrTkJzOz1uSnFAX1Mkcj1vOSQrIjUuazg6KyokSXVSOyVeL2FAWzdCd1J6bTdld0xOeGpkRjFNTWxJYztHd0AuWj8uXXRgS0x6IWRKN3F+V19YdlZAayw7TiwuZUkzKnZhd3pWYDJkbmBlTl16R2gwaF9Ib2QlYHpxMXFgMSxn'@; put 'bHFpM2w0LmVeUmt5cC4mVTQxXztaJHlTSnUsJS5zLEx7dnc/dV9tZ1FfTyVhaTRdcSMmfT4xWkd0LkAuRS5PQ11KbG5GRzQiXV1Rekg2VHpCUH4/ZyY5JXNgTW1+RFZvVmUqVVhOUzs3JS5aZV17OFRWU3Q8L2oqSWhDP3d3bTEsTndtQFJjMl9tSTxUbXR5MTEmcCYlamBxP0BqOiJ6U186MWNB'@; put 'IWt5a0x4cj9iMW9LZXI5OzZVNW0mNFFwSS4/YHlAbDVoLztheDg2b0EvZX0od09EUFpxU2FJaVhebyNxZ0xzZX1wa21YRWtVQmF4b2VyRzsmZUkiQHMmQUpTTld4YkVHQ1p9Qy5tQyZJYDxRNWIuezVwenhReEk5QnchKyljWk5Gcy9iQEAvclVsRmM3KE1UNCwxek5oRkBOKkJzWmNPI3hBI18m'@; put 'Mmo1MnVPLndqLj5jWTdmTVM1bV12R1BhYEVEUHlHdTVrakdNb1NuNFl0QGB2K2tDQHwvd11vTEh3MH03a3ljaS8+Zk1iL1l3NXRRZSJVY15XMHZtOGBBI1dYVHtRT21NZGQ7byFrZ015QUFBRSlKQUd1e0UpTXhaZSE7P0RhMF5BV3ZEclBzSTlieXQhU0V5VWQoKi9GQURBQUFBQUFBQUFBdldg'@; put 'dno9dy5vLC5xWVhnPik0L1VWUng7XWI9KEl9PChnOEw/PzJEczI4KVQoN0p8VkkyPlpFdTUvWyNhJWE3eWNSMUw7KF1HOC5QKTc7O0c+KiZObX1OJmo7cEhOX3NqcUgvOCF9WGgqX2FmWCMjfEErfDRxfGMpezhjWGl7OWsqI201blZXaGdacF9Jc3VzWTZ4NXtWLlE1S0kvP2ZCN0gpKHwkQih3'@; put 'YFgzRzpqZl5zViJIVjIkPGhObCp7PHhKcTFWSFdUX1FzLlowYVFDaEYpUmNsIyVEdFhJb1VFU15xcWxyZWYwJk1XPEdHZntxO005PzVKP29we0JqVG9XSm5KYkNbd2VqTVZFRCE6bFl+KTNbNHkrZVdUSmI3a0MyWWthLkJ7MjxwYG4xU0MqTlBWIWRYeSkib3BKaT4pNEhQfllrTT96OilNW205'@; put 'ZVhSLzR6UXlZT0grRiZ4UDwqR05bSTtHcVlDOjgwSHdbeGI0WzpyT1JwQUglPTkjPVdtUjRicVFFYURfeml0YzlINiFKUSkucCojLmosQGJRdVpYQmAlVl89Vnp2SXsvdF9fIjNsMVhMbVRaKldyI3lzeEpJQHRKIjRuP01nLjU3OEc1L0lCYUcpRD05eFdBZDFvTyR7dzxPSDFkTHZhbTwhbWd+'@; put 'IVZNbk1Oe1h6Qlg5Nk95USZ3VixMOz8uYih6ZzxgRj9pJWp+amhZcW9TTDc5ZGI3en4/O11sOlBYWG57IU9Sblhqa2Q6LzNfZTdxV2lPKzpFZ0diN1c6PyZnKiFPPHVmUShWJCRnK3N5L0wrWXVgVjExJCxkflEkM0NEOkR2NDVhQj5qNFROMCQvY0tNLk9DUEAldWtlISVPdHtCLFpPO0J2dC8q'@; put 'RzVPSW8jZyNwOy80TDRYJCltZGR+Vl1yaUkmeDFLMnJ9IlY/KT5ZaFFCR2FnUS5EeV9KaVN2T3pYJj1mez01NzU/KC5PaHpUP2h1dz05bX5RQX4ifjYvcmguNGQkS2h1WXVGQWFhcnM7aFMrZDI8VVZVQytmcTcqbnZHKXhbNzU3Y2M7YyFYc2wiSG1sTUxXOXokYEo0ajRDbTxXd3xqT0I8LHxb'@; put 'WkwoTTp+ei9UWFBSSyRtN19zLlZJb3c0VVlNWT1GXlVqTjE4K2MxZnFMYmJkVF9hQks9JEllLllCLFUqRTlvZjA6ND90UHkmXVgxRTF+e21aMzRRKGZHU3dxQ1k6LnRDLik8TVpXaH1sbjNYYiguZG4sRn14MlBATzxTIUUmW19SPChYMC9FTGsjdjJkSi8vNSE8ZTdYTSROX1N8W1UuTDw+SjtA'@; put 'UW16dCM0MV1MXT52IWckJXVWOjtfXnhzXVNpOFI0SEBhenN1ai53KH5FJS5HUjxpMW87N3p2bkJ6I2RCOmRvK05iJiNgeV12fS8pbChWbShwX2dwVyshR3JwaiZYOnJVdWQmZVF3YzhCd0dtb0BSIjs7VVUwWzI3REwjXSRsOTlxd3M4TWBib113Tl5uSFpGMHlfcmdOd21ja2JFeD5NTmtLak1t'@; put 'JjU1SF90a05UN1d8dWsxMXdkam95XjRtX2dlQGYkejQjQjt8YD9KXztGdEV+UjtSJGNHRkkiRypFPTd6KzErLjFVLHQhJjFaMkt6OU1eMzheNTdhL3tLX3QrOUVpIVpbJkRxKmpUZEckR2Z0ImZXRFoqbmcjfG5oQShiV3hiZnQyWnRDZS41STpdXyk6cWpGTFZSKWlCQSY8PEEpXmhwSmZVd2lj'@; put 'cGU2MH5NZSNzTFBQZTdDfWJ6VW0qVi9aVTE3UUcoQXokQ3tNd20xbW8vdUN1O0dCNDU/U1dkfnVxMl0sK3Fibn1DKj9fdWw0JDVaU1VtUUZIYn1bYzs4a3tqVlB1YiNiNDxNQVpCMj9KKXw7RWNNdk84JGVlXS81MmwpRUxUbGBDQ01QV2s7aGQpM1EsWnlobzdqdnZOYXZYbj0jPUxrLHFNdm50'@; put 'dUNrcVlET0E+TTpXKDE2N2FbU1oxYE5scld4T1Z8ViZjQG44YSZ4OXwmWGJ8SVRKc31fWVJwMnx5ZXNMVXFfJHwlJD8paEx3QlBaIjdmdjYhJX4qfSxtT2M4JEd9bnNeW3Uydn1FPC5lPjI2V2EyayRRQVIpdF1KOzI8TUFPImI7YnowK2M+W2R9TyxCSF4zSSQ0OERgSFMmMCxJPUJYVH0lbmx1'@; put 'VCZmIkpPd0dPVWN0YC85ZDJIVjlLZX06VVZdOG5OIn56Sy9jZDVLQkd4bHdmbFhKO1NEfWs5Um9CeG57ZCEvR3ZGRnxTXSFmdiZGUEYjPzZgLG5QJCROW2FWd0kiX3wmT0JTcnExJHBUc2VuYkBrck1OSGo+SmNxUXp9LzxSd01qWnp2NGF1Vj9BOnkwRjNwVXAoMT1NJSxwbDg+ZEA3cX5wMmw8'@; put 'TndNdTxhU2ZfT198KGcwUUl9YG5nR3RIXVBsNTE2OnpkUn5he2VzQy9GeUNELCV1ISM4U0UqQnpnPENnV2FjJWZDSXM+V19dfiklNkBRNihqaTp4ZjZfbWwpcUlyNTgjd2IvOE47On57fGo1dHQjR1VhTn1uLj1gfFo1YX1LNWdkNHd3bCE3ZyZKfDdCNEJ5SjklX2I7bV5SbnhoNFVreHNyN05p'@; put 'XiNDO2xVVCI+PlgvLloqYXh1cDJ2dlVpKGBRM2wjdl5xXndGRDFdaVBxN1N2YEtLOjVPQ2RGISV7LGw/VyQ9SnVJUVQrY2EyfihVWVMjfFVzeVolOng7bCgyKDxvPjg6TD5jMz9NLiQhWzpzbWp5Q2ZdTCI5dmdyXzlpZ1NPa29XV3c5JHhzfmIvO119dWZoaDwhQXx4Wl00Zz5wfUFQWmlENGAy'@; put 'djoqZ29MRyMjVWZZM21qbzQjJnl1WGg7VlErXWciPX44JiswXUVBeihFcitAK3o7d3xyNTRMNi8seWtTbWpYTVNrcnViZ2VPQkchPk55bVUvPV4pbVkiTEFHTmxKVUAhZV1KdTNSX1dOUzYqZiZrJWJeankjeUtVKXNBUzNjd0w+LCN0QGlrYzBWNkxPd14ze2g/dEdzS3FESV50SEY5aUxdeEgq'@; put 'Wis9Wms8MTkhTls0JFAyUDNtLCRVNCRIdl5jLCIzZTI6OWYoNVkvfGtXVC98YFlgdUdUfDBtalBoLkgyZU4jZj91PUlvPS9bb3kjMCVmIyh6clZrNmA4NWxGJiFhPWBAZn5yWVRvYktWSFgoSmlFOU5hYEdZR2ZYXkE6OmEzWGZ2ZT9CdUR+JEBCRjcjOTpYNkZDfmVeZTJpWTdmUHRPdDNuPm5o'@; put 'bHB3ZHxmNlhTMjAzJi5ZVip0SXRTSnI/O3RXKHZMZmg4YlolYHZmV3V1PGZPWGZJc1tpW098eWUrdEk0eUpNcEtpR3plYk5qXz0wb3gyW05ZMHt1eTJWJXl8Wl4jSmRneHJLais7Wz5xaWFgVWBOTz9zKmlqL34xfXRaeXN6KU5dekA4cTt4K1Q/RjArSXJQSCs5dCxIMz8qfDA0ZjthbVAkdF9M'@; put 'P2s0b1VQLDBwR1NHX15NcENyWWhjS1Z+KExRW3hqUUpnI3AhMDFnLmw7fnt4flF6fV4uTmArW0lyIjhsWyhMRzVZIS9FOyVdSCx5dSpZMnxNe1l6IUMqX1FHNE4ofGA8PV5IaDtzQkpgYHpdW3daTGNqMis+JkVuQiNYKHxSUV9VOmFGNEppdzVidyFVMTRRczo5YSo6VlhiRjl0NXJARituMzZ3'@; put 'MHgsYHxrI09vOVhZYXgvamxtY0c6MjQqbjV5Iz9HUlJnUUBWfVpQamFvZyVSUlQuIjlmPV11OjZaJVlRXnpyOyNNTiM9LlJfJFdzUmgjdFFMbyNeI2lKQGAjRUk0Im5saTNjY0B+Nz4oTjhyWXJpN0hNfWRsbUNGbmFzbmhRfklVdjtyU1doOjB7Il5OcmY5UiUhIVcpUktWWH04QHwjby9ZfnVU'@; put 'SHApaDhdJXV1KzZ3c0s9Lk1FRT13LHJYeyhdcztYLzpyKXAjZjpES2w5KTt8ZWo9OE9+emIqdE5NLys4YiNwVzE9OFQ7O0tMTGgxZjg6OzM7Tk0kVHYpNWtIY2l2d3Q4RnQhYSlKIyJFdkRXdzxVTks4PHl4a21xUV5GUlRte1pYKkJ5M2tYOlpPdGAvWkBWeFttMltmejspJUgmYjFTUFlzJXB0'@; put 'fEJEOi5iSkBNOFtgQkVvRGVqaXQwTnZnWGRTKmZueCRYcCRgaFR+bitSelZebi9NZ3s+USw2Km9xZEZQdTZSa0JdcGt6fEo0LHpKV1o4c2pHLy8xIV1wJkl0ckVeflJdTXIpfUMwSFk3bko9N1ohOG9OZ2FARCNhJCEpPT5wVyFUOWoqMSY+IWFiNFomJjpMcm1BcURKVUhEdiQ3Zjc/REZzTX1W'@; put 'M2xyQTk8MyM1cnhnfGx9d1IyIzkiXjs1byk/e3gzOCZOMFNATl1WO3B9fkIjIkE7VWJeJk5scyJESXhmXl5nPSkkKlhsTTJEcV5KJV06IWNROkdJMUxmWnMqM01FXSFqVzd+I0AvU35ST1VSOHZydTdWdkJAbkJHXXQrYWNOMV03SVlwe2BmRHk9S3BnTXtidG86Nk1CI2xhJStFN3kxSWVBJklH'@; put 'O34/WnpzVmJKenB+Tk5lZ3l0JitRZWgkU2phZUNrQXl3PTcsKEteJj9La2A1TVRRRFtOciZXeiNzcmc+VyREWkBYREx6eiQ3U2treChPbnA5cWhmIXdOb0EuYGgiVyxLP0Y7NlZKUmRWd2d4P253S2h9OVdrRygzeHhTUXVgfGk5WHFxNyhERjY/WCMjUlBeaHppS0F5KyFfVEsrRE5PVzYhMkc7'@; put 'SSlUc3lFMGA/NnRtV0xAZ1JIUHJ8YjJ0ZWg4LHkmNSRGd1Q9WF1xWDErTVZXbypPYSVkUD44cUxjN0EwdCp4X2s9aX1nXkR+dl11RUY/ajZWVjdvc2hIOn1sPXJidW5tRixadU1yYkNsRn1UNSNmdX5rQ1puVig9dTk1dU5bc3EjQ1h5JWt0IllnbzghJUI/ez9dQlQzNX1yY1RlbFtLZmgremM2'@; put 'MVJuekk6PjNdVjBSdnUsfilXVjhPWWhYQ0d2QSorPTpEaX1dREUrS0hUXWZCPEM+UFFGV0N7PlRBc0FSWnxqXTNAOHpkP0U/WGt9eXVbIX1zbGA1WWpeTkViMDgseXBMKltJP2pHeUJaJXxzdl5RamBPY1Zud1EqPU5VTzwxTTx8WXVDVHpwRjNYR3ZjVEYpN3VxS25nS1FGMz4xYFJPfTJoN0ku'@; put 'TXA8aCRGJFVCNFNJOlg7OklKWTxvIi8melFpX31keGNydkR8ckcoQ0RxdSJMPnIxUXNGYD9xU1tXV1RGdmNIMkp1V2N1dltvVyZ7bmpAcSs/dUBBYFp7P0I6bXV1STI6RGIhIXhoKWtSOUw4azc5cSlAQkY6d3dqYE5hQSh6OmdiWVJATGE3O1VRRkJwMldgZT8hfjMsWTg3I19dPixQfGQ8UT8w'@; put 'aXgpRWx+OGA2aV1MM3t7SlsjSHZ+MHVAfG88MzFlbGIpW0psW1o/YSo2fD9eZ1giNU9jczV5L0Vje2xVd3MqSUgzTVVBQiNKUnpXensjeUdac2pHNWB7KFU2Lncxbyg1cXk7d0RAI11RbFRWS3xvfUB2MXAkQVElRjYyZkEmWiU2aV1MQzReejxYNispVC9oQz5WN18iQjpofHVYMC43ZU5sWG5X'@; put 'dkV6MDdDfjZpWmtINH1eZ1pHMSgxbjAiSUwyYyhbR3tCY0NmbDspQXc/fWFYfGVNTnVtfTFYMnZ+aV5TeT47blMxPWJAIlZ3Q31VSFRCS2p9KyFSLHcpKDdVTUNLbT0rLzxILmMqMXw1fm53fHJ2T0tOemduXzQsRkZuZ1JgZ2k6dkhYYXlpRCNDJGIqZkg/VCksUXdMYiM4QV9TQ3s1aiMsOT5q'@; put 'YDhCcDQ5dj1QSkRHP18zKyE2eSxmLCJ+Xn5GMnE2b3RxQkt6bVlsU0BFSk5AQiI1QGwkW3VGR3RbLz1oQiV9WFR8OkxEZXM6VlQ/O2xZNTohJXR3e2I4ZHRkPmR8TDlCbEZiKGp1YksxVE9rNVBAZ1dabVR1MDZeKUFzRXs/cGkrV0JyJFI7b0YhUj1jMG94S0gmYDg4Uih5Oj8wekJ9I2xFdis0'@; put 'dD0rPVh0PGdvRjJlRmxdTE5NSnNsP0ZxQD8lYz1iY2ZNIXklW29UbXxKIUV5M2lnQ0NXJi5lYzQmb2BNSDRdKGtFYS5ubmVrNmI5WipiIkFfTWRQfi88ZCFGQCVvQFV9VFV0Nll+TjVrUUNHJTtLaT1PQzpnIkBPcD1GfmIycix2eiIqY3glbm1vIVt7bGRKYm12X0M2dEdTKiRAeyxFeXosR2Ej'@; put 'e0YuXzd5Llo+RWd7dn1ROFFXO0VDalBuXipEOlB+IzA5YzNLbTIzL1AzJVcheGFVTk13MEwyS3NbJSpVYktITlFIdigrZE5HfVVGIUA1KF98ejEoXmcrI0x0TmhdLk9NVmlCaCxrJFpnfDpxcjI1VzVgQE8uRVRPfXRzYUpJfS5hN1g8XUshPjNtTGMuTjg9TzpTayxFd21bWFpPfmxwWGBWTzZI'@; put 'cCJ9OyVvXUVsRnVNPjJbRURiRmd8RjBMXiNsbDR0SnY7T202QkcjRXclL31MNCRzfil7VEMvR1ZbPj1YZEcqZkMpSDk0OnU0QE03JGc4QGpUNy9oQmJoYUtRQ1h+PWA5JEp0P0xHZSJRVSp7dU0vIVZ+WVFhek8qUn5vQiIrSFU2X2lPMCMhUygoVnBZd2tUOFlRdXs8bldDbEdCczR9anY/W3FD'@; put 'W3lgeHo1e2ljZWFseUY6XSZAN0ghd0QsZW96aWtmaHdAOTNNeWNXdCs+R1ZuaEg5enZHVyRLellCWl8kJGU9ZkFGTGUmdSZdQmkvPld9SlVJbG1EJkhnYihabiEoUmc2aEBSLy5HWmttMUJsQ3BYXnZgX01EKCY2dD10RUphfnxXXSlSb004MyFAQ1lZZ1cmVFNHRVZrRjZLO3BRVk0qU1VQVGNx'@; put 'c0clOCREdGoxTTlBV0RjT2tpYSxaW3hdREpkQFY1NU1ZV1ZJKzVyezVUKntbNHRaKGszfmJ6NEQ9VHpVMUFlNHs1eUByVEBbMyFSPWw3Q1kjKD1vbiEvS28wTDpZTl5VeF1JQFZnZ3QzMC5DV3sybDxeOW5qO1phbTZuPzpsSzJKTztxK0pFMFIrZn1beXZUe0I9STFyPitZVV9rI3h6O2dqd351'@; put 'dEoveV5lQyRtfmFiWmNnajJJYHJIQk8iNT0+fGZBM05xdDhGMFlWPCJkSEFUNjtCVmBrJTtAcV1LJFd6ZVIqVClKKVtkZXF1N0h7SyxoTkpsRWZXWiVUKER8Kmx0eSpuKys2amJzOk9jPEVuJHNZYkxpVEEzVVlNZiUkOzwqZTgzQ3FaW1VER309Jjd2Z2dkOD8xUWw2JVUvNkIsVVdNZlA0LGMx'@; put 'QSxROHhYSFhORkt6XjojPTQ4TWxTTzB9TF93ei9Qfl9jQyw7SHU+ezwpRnA+MyxhKWIpaWNkcUUiaXxgdVpHVk53WHh4KHNOYFNGW2tRai5FfkJqR3g1bkJ1SElXUEc6PSxLeiV8ckEsP1h0eG47QXxqTytXbSE5azA6TkdwOXlXWHNhSzYme2ErdnxYY3R9WDJqKjZOcXE2aUN2SXNVb1I9Rm5o'@; put 'd1t7TFg0YFd+WExqRnZpe1NfLklrJTYkQ0I9K31zUCQzazt2QHJHYyRoYTVdaWlDOHF0d1AkQHJndm8uaSJYWGEyJikucno7dyo2bHtNaSM6dHFqTiw3TDQ+PUpfPzsqPXd0Ii9zYSpQPU1WU2Btci53b31oQTlOe3xdYUBvTT9Cck1PKVNkLy8lWUZMQ2U9OkpgJnVZTzlvIWVBW1c9MUh+OHxC'@; put 'VlFELks3NWQ7RytDbD1UZjtscj9DPS8rWUpEMXYrODZiK0JBWTo6ODBZWWJzbUVMSy8mU30jMH5QZiIsPGlrWVE4cUdmLGROXyxkSm5FcShbMFo0RkpvJX5HMEFHZXhYJmJFIWApNVZ7OG5xfkBQUVo5IVRtX3h3NDQzV3Nfd3V2WC9FUX1bcTJsU1lRSlhKP3Vad11kcmlPVTJZcmEiNyF0Ul9E'@; put 'IStmUXFWQzAjPj5XS2VZRSVuOUZDKE5JM0MvT0hoNUk1Uio+ImhVKn0+OjokJEUzU3tpdG5+NHRfYFF8M1lDbjVpRHB5ckZFSiNrdng0XiZCPCI8dVpuKjowXlo2I2MyXTk7VE5nazk4Sm9IZUp6YVdCT1QpSlAsOVNAZG9SVXVsWyYmWFB7JmJ6MUN3ZXBhdEgwVkM5ei8mOz4yOnM9WzUhWSxN'@; put 'QlMwfHdNMVheenRKPHk1IiFrdCE2Wlo/LlpebU40LFR4fCVGPWlJckNQSnJWcW9+SEF0Old7VSU6ZyZuXSUyd0skJm5PUUs7PWZqMVVbOGJLan5tclI2IVluW1o6YE5gYThGd19baWJ0eCQmbkx6NC52SUdbT0Flekk1InwrWCZQO31+RjNaPzpDYj1kVHc9ej8xSzMlYyUxJCVgMzpGYz9DRXtK'@; put 'ejJOVE98UDhSMHUhMHl+WV0+fGBXWC9AS2xvO0ZPdjNZdXxPaWV4KjFsbEAwUU5qV1RfazRBNU5EQVc+VCFbY2tnInVZeW0lMUlAVi5zR0FGW1kuaUoyemsjNkNrTVN1JDwlS187bitpd0FtUWIoaiRrbUhgKj8qOUt7I0dXYCtUTGh9KHxbakBmUU8wU0JtRC5bO2dIL1AreSsvMHsicFVjdEM9'@; put 'YnlZeCF0ekd5RiQlWTgpaHwvMDN+JSw0fF8sUDFZZkBgKk04VHFfPn5kLGJ4L2JqZHB1S1p6XkZ6bE9Ie0tmU246N2Q1ejomS09lSlEwTiE2MmJhOy9DWyVWKH5zWUlmPiNSaE17JjtAV2EzPXF2d0MiPEt9JDZ+XXsoPWczfXx0bGo7cCxhPCU5Vlt0I0V9I1kjPGsjdEU2KkRAb3NGdm1UVTo9'@; put 'KjMjdG4wSmowW1Y/cEU3bjl8UmZJWCVaWlREeXg6PSl6eSh3Pl1PaGIqUHtNQ2JyPEt4diQuNSpoWVtGTWEsJnJ4VStTbTtMbGErIXEsREBaL1NzQzs/c3F9O0BGdVl6Sn1+di9QKDBJdzx1eCReY1BXaGUoMnZ9VitMa1lGZjJnSEpHfGcpVGdKa1dnJlovYDcmeH1ST0dVcFV4bG96Jk1Lc1JF'@; put 'T0xqeEcqa31WfnNZNXciQHNLcTdWSWdDYiQuaTt4PFNpej4walUjTkd1L0hsd2BvNWgraChqe1R9ZHlva1hSWiNbJUZSen5AbiYqIUAiUTApdFRhSVNESC9HUXN4NCEwYXR0MU9AL3VJMmdaYntNeXx9Xys+YV0vYigmbFc7VV10KlVgW2dkRWk3VWtvLCsrcFFoPzVkIVNRKlVqeXltPCtmNz9K'@; put 'NkY/NV9qaVk+VilsXTJGPCVZVWMrUm9vOVttUGM6SyVAYyEkVEohMVBvRHF2SVJNLGg7eDUucDFRbXk0KEhuR2xEailLaFFRczlIRmxDdChRMEN+RVdYPCQhZzArQG5CSloiNVJ2Zl94KUBHeEkhQGRATy9rUnwsYGorSyxPWXViUFtIMnRhZ0lRem0mL2p8MVtOISM+YU46eVVmZEZVMnF4c0c3'@; put 'ZzdnWGorUSxCXlRYdl8waCQiaEooaWlbJm5iZ2kzP2JuRThPeVtjdmJOX3gzRkIjRmVKJWQmR0lpOzhtfDJtSkY7eH1FVXIuLmVhcHkqSV5fQ1lYVGYsRX1hZVFIYmAqMzxnRih4aTtMRXllMjFaYVd5YVhdRHdVenQpJm1edyZxVFEkN15ZR0debTBXMSh+RjBlcl9USV5kTH4vWU9JUkI/KyF2'@; put 'bHNVPWt8dHJ+Q2JXSVFSNkhaciRpLj1WXTgsQyE9U3tJcXNSRT1OSGJtaXxRUDksJj9PQ3JWfX5BLEAzall8LkN1YX1oIUwoZk4hVWgseyVZOlswZ2FmbUFjVmhqIzF2Ylsvczg8aHNxNU1CaGEhQEZ3PERibWc3akZzemxgYzw2PDdGLiFNJUJ2TTNrMnByZVY9RFUucl9dZHhrfiNpIUtaQW0x'@; put 'PGFoP3QkIURnQVBxPWZNcjZjeCJnPjslT3M4MnQ4Llc2SGZGOnFCKWkqKiRJTWRCUjVlKSF0di9IKUNzXW5fIzIpIT5aLnZ0QHVQezoyVX5eeyxnbGt0MnIhdGRWaUhaMCtxak9KMC86c3d2MktgSCM7JGAoJDRTdSNhTGdUY04lRDckRTVIQT5FVT02KzNAJFdIQC9dNjZoTGlsUU1EZm5ZMFpT'@; put 'fCNXejgxTVpeP0olYFJDfTFxPihSVSghcEZJc0VkW2FobTx8cW1BKHRxUDUhc3dSNW51Xjx7e3JUO2hMZXNkRUp3PEpxUGdGQV4pe1BaR0Uze3Y4VDt6ZHAvI2M3OmVxWFY7R1R2UlNlbEZ5VEU4Kj90LmRWdUdWQFRVInYjQG0ibVEqUmI+LnwrRnhMU3Y8UkRodEVEbXhvNTFyNF9ZN3FTaEhq'@; put 'a2pifH47bT9WW0JyV0FEYyxMSmN5MTZIaiwrUU1wQUclZTI6WkpmZDMvOzwwUDh3NV4ofmtiWTJGZC9BLl9Jay4hUVJ3bGE0cnxKOXNXM0IuPEUjMSRvJD53VD4/KlpQNlM4b3csWXd3OXVVfU8zaWZ3fChsVXBKM2NbVDo/PzNdKiZTUWJjITlHSCpQYTt9ODMzJHJ5aU55TXBVc25RV1smRjZV'@; put 'KjtRYV0jSC9+d14uJndQR0JJLk9wSVFeX3RJbTluIVZ6OXN2Uj9YcXtAPUJfKTp3XygqNFkoPl5AM0xEaypwXWhTIktzXXl3YGBkMlUhWjM6LG0lP3tMV28hPzs2cWhAZCJdSyJnUkNXNXErcnNHdV11TGg6bj5ie01AaVpAO2lrRSFVSUZqcGpVWDhNeEQ3VT9qdSkxXk9hbzwrKS5nfEZpYUo9'@; put 'bT1SbncjWDl2NVpQIzZLPF8+KWNeRUppQU54Qk5KT3I2em9mQjl1eDcvUlJecXZnQ09DNm9jVDhsR2NCWjQ8W0ZEYnpxcWZCOz8wS3ZpW3NaaChkSypWUmZAKyhHOXouZT18cUBsLDZPVjdye3tnWD1mWkoud2J1LHhRLnF4SUd7XkZLa1FuaT0idSZldSk+KVA2QFleaWgocihANW9veylDKFZv'@; put 'NShdUH4vMWhnVkw3Y0I3YV9mOmdXUlk3JXJ6OzV2JFVpWXlua1J6OipLKlVtdSV0fV5nbS84dil2dHd3c3w1N0FeXXA6X2dIcURXPzw0Wl5kIV5RMDBlPkRTRDVtdnI6R1d7K3lSS3xSMDNRZmFKTFs3al51V0xwX2xJfVZqdSxiTV09ZX1GQzErWkFROiJTcVY4KylAIykqR1RaX2hnX28pZU40'@; put 'b2JFL3YlWz5EMjJQeT1WK0QhMS5vfWNHQkllOVcyQjpHdTpUMk5EIWV2bntPNz5LfFR1QypUWk8kaUVmZCRkczIqR11DRCJNXWs2K09CWWFDa1ZHdU5zM2gvcVl5SEcyQiNRb0xjI1MyT1huSVtwLzl5WEdOWXJ2SGxuPlh7YU10K1NxNkVeQD5EfF5RYUVOZlY5I0tOLHI0dH1eM2VRKXc3QkdC'@; put 'K2Y2R0VLSUxaPEkiT3QyYG5UcFl9Q0JWPFl3alU7emd9UHkuZlt2enJdelVoMCxDTkBtVShrNzYhW1Y+WXMpJkxVLHg1MGpFTm1oIyp0bVlKRWtxU1k/b1QpQmMjUSxeJj0+SFcwKikySWUmQl5GSz1WKDNBQHYkWWh9NmdTcH1LOVl6MS9OS1VQfW1WU0FfWCMmZy4yZSpwSmNlTUIjI2NzcUNq'@; put 'SF8iPnpvI1A4USl8OVdwUnlGR1pROF4mMjUmWnt1UUp8ZztOUTcqKm59O2p8R0I2THxuOHQveVQ0ezFAKGBFTmY7MmdsSy5HOSoqOFkpKGVvPCE2YVg4QldDQ25ucXxKKkh5Kk5fV25EcHhTLytEPzhGeD4pUjlTLFgiNC8pakhPTD07T2FXWzl2MUpiTGVNcj5qc0xda3t5OzJdQVd+Tm5Qe0gm'@; put 'NmNRfG5gWkMjT2giMXwoTFNfJHM/PEVYKSMjRytjXThFUTA0QG47MyNDaC87VFZ6ejlAI2ImI0tHeWBoMXgoSWE5fTk6fXlvaXw7VDZVdlR2KUYvdmBRUjNYXVAxalhabykoKEYvUXhmZShEdmdZT2Y1Ulh6R3V4WWFxYnc0SCNeXiZMaWokNigoJnY9cSwqWm54fiNfZEtARzAid2hJS3VZcE1W'@; put 'K2M8dnEwLEhhamtMalZZamJMRWRSTylGdnsqfjk6eHZJSjlFUWwpfHBaTl15UGkxaWlSIWVBOTNhOixhcWVeclRsTmF1YH42fUpGOXtdUmM+Pk5mUnp3SUN5MSIkUjgidDR9Qn02ZkNmeEh7KTszTz8kUC9RN2VfaChqP3V8RC8vQzs/bmk4cjB9RzQqYkhWZnpTKypzV1pPPGhFdHd3R1YyU250'@; put 'SVkkeWpCPGR+NFFjNy9mdHtWXkx5KD46bj1yRU1JdUtVU2gpRHxYJU9WTjpzTk50Zl1vL2ZwVn4jWTJCKTtYZU5vantaPCVOPChOXl8+MGp+IVBdXXFoI0FwTiJHc150fEg9OHgkfVl2a2xsUnAzQURFIU9pbUJ5XSM0QGJCVWpSInVRYElXdU08QyFjdGZTZTAqSChLQk5rTS5XfTYvdU86cHMm'@; put 'am0+JmR9LEBvMVY0cmlgSyolSzVTOy9GL2t3O205NyJDLCpkUj5+ZnpaSy55ZVdAYyp2Yz8hLzMiJF1Qd0hZRGIjSVQiKlh6Nk5IQGN9M254L3h6aXshUEpLUSgsNyhaS2RhKHArMGNuKlo/U0J+dmhFeD1iWmYjXkM9PChBen5FXS8qRyUkQVtedG82Qj1sUCV8c3NgWVhKUjZyLkx0YiwjNEFC'@; put 'cEdedSs0LlI/PWl8I14hL0BmLy9NJE1mSiFaRWtGWVFWZWV3KkAkTnVyZlR9cShpLjdMOClWXjFBO1k3QTIpfFVtOWg6WmlFaD48WFA5Q2tHTXl1KzNvYD95WSV6MnFjU287JDplQkhEWW9QcFBrIWJgPClzZGwoTWA/eGxzalshM3F3KyJXNHJSQSEyLHlgS2xDP0pXVT9iflowOG57Tz1+Sl43'@; put 'WkxpRm1iZV8ka3g6ejpsZmBTI3xyRiwla3FDe1ZFZSFWd1J4dV1pOyZaKUlrKFFncUt9K3Vgc1B+WXN6ayh4PmM3XUAxbzlNd11LJXFaNDJxaDp2dXFfJDx2cVBzOUEjVWwjOWlZTiwuM1J0ZGk8WDU6dFl2aUxpZ0V7P1FRM1FyQiQ9YCp+KS5OaWxJTUlSVnJTZyNtRFc3UGxYbXl3MG9FV11h'@; put 'IzgyQytiSWVmeHQhWT10QX0oNEQ4dS9mIXs4MjFUe2pMRyFfQW45d1M2ciQxcGxLS0F8Qy9EOEE4RGR0cmZOfWxVQzQ+Q35jM2RgM3lHanBEJTk8fkN2TCllaW8/cXpfWkliYyxKP0xQb05lX1tdfE0uMzFLP3x2P0tQUlVRUUFhbSghWEh6diZ5dyFkLm8vKE9TU0ZVV3V5MUJ5dS57YWw0RlA9'@; put 'XzZoIXUydWUlU3VOdzpQanoxekA8NDgoPy8xJDQha21bZmJbbHVGNk5yfWUzQFlWXypjNCREKyg+XWMvWSY+Y3tMKSFHOWFVQDVMVi5eOilleVVGdmJZYzAzSSI8LEMxdmdKPUhuTzlzQl9IajlWKytIMEpeMmtdfkFLKiVMLkBjQGFTIiRKZnFrMkxzX0pTSVVOZUJgKj8sQV93ODw1V1RdRTlK'@; put 'Z28rQl1JZy5pPCMvSCZjVHNrcF1wVDNYVihSTUFMLEpIPiRSXzAxeG0iaWBsSiIpXVA/ZiNLMG9YJVc1SmtgNXI7QXZfUSx3anNHbTVpYGI3Ij53KD1OfjBdVU1ZXlNTMWZFIU8uendtSnVMPF8+ZitVeDU0QV0xWSVCRXFCL2Z+K1Bqe0szdXY9JF5gZyQ4UTRhU1t2TWEpREh+OHI2P10yWD1j'@; put 'NGB8PVMvQWNyXTZWRilzUGYwPXxxR1JHJH5OP35lN09UW1gmSDVxRyNbKWlmdT1WNT9QJiVZSFJLOmlBYnphZTNhTWU6b2R7TyJCWTklUnZAMWx4NCQoOEJIJWEscl5+ZVM7eiZGR3ZbUzl0N00lOUsoYXssb2B1PzohUEt0ZE5hODQ1KH16dHk0Q0BCYE1pKDxyemQkMiJJQFoqOS5qVTBvZFhA'@; put 'YDNFfSUuKngoc1Avc3BObzRfYHRMdlZaWld1NlswaVsheStReiMsbXxyciNTVjlSZHhYWClgfVgrbithLmlEV1Vla3hSZSN9M2VXfFlZJmhoT2dFJWA3KG18QEpBK3lhMFdla2ZVbz1rYlJ0UmdOTEReKnI5X2J2KnZJOThSJih1e1VYe1BeL0hLdWd+eGkzV35NZitWfnJ9Zlk/YStaaXtoL210'@; put 'R1FKXmREOzYxcWM0Y2JSJG1ecElaWWlUI25sbHFAamB4cz9+QVZ2RHQ5aWZRaEhNLGpYRDpAakVsY2F6LDNbNDJ+MUt2byhgTSl1QD9vJi5JO145cHo9cDw2U1RodHMjIi9xPjREVk1CPWEsPlhHblViRztyN2s/TUJfS2MvbjRSNGEqLDAuSDosdik7JjVlO0k2KVR3SyE+SSlbeWN0P3MpTGRL'@; put 'WkNjLCxkTml3Uzl8RWJtdm4jPyU1MHBTbEtqST0zKFM/Ozx4SEozQWJ5X3VjMncuKDs6O2V6N1UrRmV+RE0jfS9Udmk+dGdUNVd3NSJ4WUlrOmFyJDZRTFh7IyZnY0AqKyo0fDl2XmpbWV9YYTZAejhOUzlRdFg7QUNzTmhOVk90SzIwUXRWTil7UVooS1hxI1VCIU8hWThbcUdyQjQ+aUR9c1Be'@; put 'TyNiOVpTaV18KjV2Rl52LjdtY3M1PHZ2eHlzYDQ5On5eTzxKcjVkKGAyJE8oXTpTX0YkWnd7dCN+WFd+ZlowXkFSbW8oPDVFbH4oWU5GVWxXOGM9PjhpciZHal9bVktBSFMyYVQheldmdE8uKGxVbmowcXNhbylZYlJdPTQ7YD4iTHl1VTAqZjklbVpjWiZaLEFmXTFAb2JqYDoyLnxVO0YhU3gh'@; put 'JXVJWitUTih1OitiMGVUR3dzNyE/UF8kPUVNNCwwMmlPUGlHOmcuXnlHOjBtZCFrOjxvPWAoWyFhV05wKVZMLjxPQWJfRjAhWGoqLlN1d0pAdlUrRk9yKENRXXR3cUdUTHpZMjtbLzpRSlNeXUleSU1gSiteYz5xVkZBTHVINn5wM2xVN2FgckRMQjdKPFJ9RjpvYHtzMnFhVU4ibywzQnBpNEJX'@; put 'JT0rWmpWelQkNjJpX35FWXxCbkdAb31MPkIxfm9MTXBgRndDUmQjL3NmJklQbHksfnpWPX1hYEs1OyEpSVl2YWhmUkNYeWFTJDZeTiF+WUYpdnplSF9lWiw8KEJhPnczQEg3Q1NjYHVFYFV8aCFsPUZwaEAjJWxTVlhYZkNreHNoYmpXUkN+ajI0Kj0mNTNUOXxdVlRDRShRZ3lEZDhYeFBfUVpN'@; put 'L3QidWBUeCpCUGkzI2kvLzhjbDNCdy89TFVTRmYzfmgyXTZDW2VQXSRoaW4uKUN5RT9IWWk+ckxuKiVOb3U0M3YoQShrKHhbcHgrNT12VkhJb0hgM2Z2Ll1pTDJTKFZqKlVmN3s7QEtYbDtqfkNzaDF9Uz5DcTFnZUBpak4/Qih6bylEIiYxRFB1XiVgUV1NeS5xQHFrOVUqeVtOZzx6Q2kkRF5m'@; put 'YX12VzhUJih5K3pVWDIpVCN0Z0FAR1o5QHJubVI/dSNSeHU2NzVRaWhIOjBraFpuI2M0Sz5saSpyaSYxRXA1RGJSZDhScmppMDBrVDI8VT1PeF9oX0c2SEt2KXJwP3ZfNSRgd3YuM0NSLjcmXVYrdTpBaXBHTWsqLj5IQ0JKakxqIilfdkJ4MDMmby5+ZGZ6YF48KlRzWWEuc3U8ZSVgSW8ubHF8'@; put 'JnNvdGZHVFNsb21iajpLMXB1YkxiOl58Vj9GV0d1dH1vT0NbTyVIXWIuU203czY8WiV1JmBaalY3ZUpwMFNTVEdZM0F4RihyOShHbGhoKDR9ZVF8UHdjbU8pcWJafEZGUTYrbkliSVgpaHY9V3ImcVReJDpzeTs+NDhqVCJtUnZTcTRhUFt9NWlIOHlUckA/R3xvNCMpV0dsVSxwdlhoLDJfaiVj'@; put 'czZyMFdFWlhlQUI1XVIpcnEsYj4xQjxNLzBzMVo7djlydXtgWktGMmlpNClDOiw/X0leeTt9RGlwOWxPQThucDNVQ3JSTntDTnJiMnRvOWhEdml4Q0A9Ly57eWB2S0g3PiMpUUJ9S00lTU16dkk0YSFMUC9KbVF0MS9NQH5iKG5KLEU4I3osJUFPaV09SVdFLDUmNV8zczI6PCFpMUpuRWYjMVYk'@; put 'TzAmLykhdzdhUD4wUG86SiJJJTFnfEV5cGhoQiJrVCZMTlZ0IjlRMUE0QExHOmRKTzIuKUR1amhOP0EwIihqe158SlhFM1l+a0ZQO3A8endyYHlxejNKQXZiYEdwTTl3MG1yfGdxWFRnW2ZCTTUmQj9GZSQmRDNlTEJbTzdPTi8sNHlVYGkxU214aTJCKkh4TkhfeTVAUj8oZkJQfHZAPCEmcmVp'@; put 'RTxKTT4+NCI1NV1ZJEpfQl46IUdlYjxEczkzKShVcSM7VGsrRU9aQUMwY19ZPWI5TjIxT15XXUV0NytZK3dMb2pmKGFrKSFQN1hsQUN2ezE+Mkd3VH0rK1EsdFFHQnVIUnRxdFhbRmE3a2ciUHd4VmMrKDVMQW03NFUzJm8kR1JDaXw5MyxodDVxYUkld2N3OHBSbmJLTDtSQEk5WlVUZUwxNT46'@; put 'JGYqZDdgPH1EJVBfcTVEUnR4XV4hRH4xVmNUbjZUSGtHPyNuQy90Vm0qR1BFbWIrdkpUWzdqQDBsYjg4MGhHbTx6bmFmS3FvT3l2T34wSnlHS1RYW0x1W1tleFszaC46K2x+dSghOj00N0JBeFEqKSFGJjZESVpyQTRgdXEoKT5jRF1Ycn1hU2x5d2NKYjQ3X34yInw/Z29YKHd9W0h1U1Y7SyJE'@; put 'R3R0MHteOnVueG1zQyxzMkMiMzxzMkxyLk9LMCYlZSpZP0VjLmJVJXR+LHJGXipDKT9eL2twMXxOIkIvP2dHUn1bRG5NLytgQ1F7K1VGeW1dYyM0Xit+XiV4RVJEQyRQQUVafE9UITkxVGhZLjYmISVCRFRLbyYiZGxsfTlGZUZuT1UhI2I/PnVRaGg+QyglXyQ1PitJWVFPTlk1KWY2RURXa2BM'@; put 'OF9nYCJFdGxrSUY7YVI1XlFLVChAOjoiY3o/P0lkVFh0WHk3TFR8XWFGQDRII3sqQGR0bSZgR1M1ISltYk5fYm00PXp0fG9ZKix7T1ZzayNjP2pRPDtxbmQvUHNEJDkzVWtqfEJwJEdeQ2pQelNoZ3dgT2JCcCxhZCxURntzc1hTOEIwUmRVNG5dcmU7bHQyK096U0tnXXljaD1TNSoyQVAjPWpQ'@; put 'dXxNTjBtWTc2YjIoNl0saC92eWZfcnpOQjd8P0Blc3o+NS9kfkFLLF9edE9aU2JufkJSQm5aVEUzYi4kbWtwdF5EfCJ5PmcuW3NFVDs7OjVuMnRBXSx5Vy9yeC8lPi4+NUFoZmV1XmRYLD5YLm53V0MzejlRajFjKFFFTypBMmhaSCRSI1syR0Y9KUVaNWlmUFRdTGZbOG11dVlvL3NQe0pQek0x'@; put 'bk5dWExGWFopMDkyTzZlUkVefSYrMl1nNGIwUkkwU0J1Kkd1W01gUCxEJTd2Ijt9ZGhuNlZOU0B0IS9ZJndxKGt3azB6OT1tL2BZKGVyPz56MCp1TXN9eVpafWNMYEliRXB9OT9yaC5SIUx0MERUMWk0Vnw7aX5Kb2c4PTR2YSFFcElUKGcrUCh9NFIqeSxpVSQwdEEwKWhnTWk0OWcwIUUhM3I9'@; put 'R0hIKVNde2BiMldvWkoiWyhXcmVFNlNrYFlZKz54UiZbSUNsak03JWEjWmdfWEloY19qOnw7aUlGYzVTKjplKXxCOWJ2aSZtM0FDLHhPfldnIWF9Xzgoa1VFOXslKV59JldwT35iKmlKbm1Qe1Vab3FRIT9tVyleKHopZUk1V2dRUytfcSZnVT1seFAwZF1scU19LEhMYU4oLjY1bDF7ZVJmPXZX'@; put 'MU92JDV3YHd3cFpkaCk/KCN+UTUhdmtVKGMrKU5KfEgxc3M1cF5yeGg7eixSbHMpP1V5fmM9OyxATzRHKmcyPHxQWjR9NWEjeVdLODR4dT1hc0xwOXksaGRZalM/JEd4SDF4ZGp7d2E/TDAwY3hDR3ZpQWdWbWh4PyRyP2FyeFRsSzV4b1FnRiVrWVhxY21rc30pXzs+aHRoYndPN3NgOTIhPHVx'@; put 'V1R1fFpkcm1xfn4hciVlS2dkXWNHQT1TQXJpM0A0T2d8QHdlWXM1cktPImsoWHhrelphWlNfcj9GQCYlSS45XkNkIjk4X2dSS1h6Izk0KV1BY2s+P05JXl55e05eVDUiSDkiKXEqb2A0WmBfTzhXflBiVGMlJmk3KDNnTDFnPWxISi42aCo+XkUiSHJnLzxxQkI1Rko/V0BhUW1lbTM6LDVZRkQz'@; put 'blpFKyJffi5CcWtqUmUyOXwrKDRlaGRINV5eU0cxKXU9IVBJcDgrW1hVPmozVlVBVzw4QHpvY1ZJS0BjXjVxTztlOSUkLzNPN3IxPHJOSDtqWCpySikvT3E+Tyg2NHNJU09DKDJ6P3I3K0xzVy44SkV9PlopJXc8ZVZaPmJRdzJdb0UrQ0k8TVI0aUhfQFVBJkdMQ0dCKF0wMCpQeVVtL1J4eVI6'@; put 'MWRkX2JWUjJ8Km5sS1RqWzBhT0FwTmc1OEFKT2IvR0txdm5Nb05pQyNwKVRjZGFhRit+X3xVWjwzUko6QWlpd2ZTai8pR3R1az8+KlR2ZG09XjNAX09gNm88ST5gaiRVLnVweG1jaWAhMi4uUUFUbilHQXBHKm51dHB0XilCWX4xMXM1VCtjalkkYDQlJE9iOn1PTVQ1d1NNd3JTfmlpZ0wkeWBp'@; put 'cyVTYClIcS4kRCEkc1paYUx1OTBpa3d2eVNaODRhbjdlPy8qK3gpaD5nMldJM2VUa2opMUNbJntiKSthQjZpTGlxLF0xUmk1NnF0ImpNPXhITm0lU1pfajBLYSxsOG1IfixMcSY8dEtgPDFgSnNyZWdyeCwqJmJhWXMxNUk/ZlNzY1RaVF91Uk10N0YqaylaYVBYNj1DSGtMfXhOQyVlWDE4QWFN'@; put 'ezVWNTloIWN3IjdfPm5EITJjMEs2U3c5OXVrJSUkc0NwayReI3crLFQ3bzQlYn05Kjc2Wn1+PklKdHo9a1Yobj9xQCU9bmJTZ3hJam0ze1FnTH1SUDE/QFJ8RnM3JCFbOU5FXjdLfng8aXw2MS9Wb3xPeUF7NzpnOEx7d2tYTzVjZSEhZmJ7LmIxP1ddQ3dgX3hsYXk8XmhBRm9LR0hlOGx2WnZE'@; put 'Mz5gcFVxa2RLMjsjQ3pNSytZOU5YP2ElflokXi5MPlNVL1d4NHU0YDBzL0M2NCVPa19NNkEjKSxQTTxZYkwhUjc4KlclfkpFfjF4SH07OjpiU1M2flhKfSxWVTY9V29dVTszVmopUzZ7MTNqVip3S1ZQKiVFb2FOUkk4b0J8ezJFY1oyQkc/aFArdzddTTkmUDt2VXEqTnh0Oms/akIob2JXXURq'@; put 'PjpzZn1RNTxPMVRVSTtuJFcwbWpuQX0veVVTdWVRe1VpXj1vN2lPUnZDNXJtJm9LWWZUO2BALlRHKlZiMXxBM2pqPyUsQl0icjVHVGoqSmp8KEcxZDRydys6NEVXN2c/WGRpKkA5dHgvNyw3M3I/eH0qPzxuS256YW5Lam5hS0F5OnldallRKXJNV2I0Vm1adzt8NTN4VzRdXWNubWckP0dYS1Qr'@; put 'SSgkW2RiRVN5VERnPjRpS15Edk9+Xzo2V3Z0T3dFakhIXnZNX0htRntuSXxCRXV2WkhxaDdjbShuXk00dks8N3w6bGwydURALiFvZUpWNW4/eEhPbSg1XTFpfTBmVnxiO1R1V25iYkF5dV4pZGQ9SWRiYjx0I00oYF1VMEd6SzhXYSMoZ08pTi8jTnR6JEU4LzpScFdhejVxYzhsTD83NCtKUm1E'@; put 'fX45I0M+dE9sfi5YQUBdMV9vZV9nSXA+SjlFVCJCR1dFMSVXZVVpcipEOmp0YmpeczRqb3p2RmM1ZXkiUTdrTDZZdSY4ZF9yYHt8U21hYGl1dGkrUmBIO2QhOCthYmJTMUImMDdYNVhRfTJiRExGd0l2R3ROT1lRUT1OWzR+SWxlI107S2w5XjJ1MlVLWURMYC56cml3QT97VSRiUn1CP3FkbTRJ'@; put 'blNFZT8oVnNKKTcmPSElRjhDKGxzP3hWfHFoKUhoWFJXPUU7VURzflVpeyF3N317cWRzW2l5cmlsNT58RiVvUUM7YyxhREV2V1ZwbUAqR21DZHtAWig3YkRkKXhEUW88XVlDKGRGOV4iMEEuJTZWX09OKXJhVVUkInVQeyglbkg7ODthPnEvN0kxUVpfcUxtQVIkOGsvR3NURzEkSm0zR0w0TSNi'@; put 'VjEjTDVkNGZXV1U2VjBjUDRmWDQyNSRhYlJFVF0uX01IMm1oUkQoT1sjIk5pZTJJSmVTZTtAbCRnWXBfPTI5Q257X0A1aEIyVis1MHZEVGZtRGg3fE9mRlJbVGJgdXAkRnQyaC8jVEU8Rz99fFpjOXVGZnQyNTRpREJEZlQ0OzAlS118Uy8sfmhbazEuW1dEOTBMdSlZP2ZuOG1TSEFuVkBkdlZg'@; put 'UWNMYj9dSE5qTjZHa2R+YnBEW08yMFAzLHwzKjQ/WlV4el1He1U4LyI0NG0yM0d9ek9Sa0l3YUJ8OmcuM1NeeERfOU1GSXw3VjEsW2M7RDUyPVpbIS5INyV1RT5MUE48KzY7LzxiWiVAYnRbfjZLN3h2STlVTF8jQl15LntDWGIuUXtnMk1pOH47LDkhd1dxeSM0RH1tVm1TfURwRD96WVpgXyNT'@; put 'LFtUcj9PZCxFSD0mfGhFcGp3T3hJPl9hOylBMG9KN1AjW1ciY2d0ZUIjKSxsWXt5R1EuKGJgWklLN2MkY1hIL3hNeCNtMVBbNEs3YVpYZmB0K3xHWyF4di4+IyNKOlU1dlF9QCZGdmBiOl06dV1IXkRnKD9BQXpZUjNvQk5bTiVQIUZMOTdmNGhxQXJPejQjWnk+TXR0cyZoV2phWXpKRmkoeHFZ'@; put 'RjMoXSFISllfUXQ/N3hXcGk8YD5lWHMzbTEwUEVpNFgkeD5+QzhOI1M3Y3RkX2FhZ1s+WnYpe2tLRiJ6O2tqa2g9ekY0bGlKMmNMPzdtQE1CdU8mOClheyMwP3w0IyImNWM5NGBXflNCSWpqJkg8XVpPWCU/ZTIwPVRMX1glZ1pJZmBUfio8PjU9UGJkVHtxQz1hI3hRMGQoVkklLFV2SEpfViJ0'@; put 'ejBeImBZK3QrVntYVzR+IkRVcmIhPzt6XUZVNlJbPng4I0M3NGZoRzJYL09VMHdYNjZJN3BleldjUi9nXXB5WT9qVH5qTFFTZnVMZiRVNVlCN2lsb11YKTwhLlI8NiRaXTk0IzlKJnVrSS4hRnomIW1lZ2VAJFo2USY5YmwjUTcxRDhbV2xwaiNDbF8kemtWVHVJLFhuQ0hCL2JDU0BwK2dtOHVS'@; put 'ZGwwUWB5SVRdTmtycTJqOlpmTWZESFt5ez9SWkF9cXxgIiZSPkxqKSVwIz5ISmVCfHE4Q3lrfF5kTUxseSNXS2s/aVljT1AoeytrOTsuTSp3Xll3ME1hfFJPcUksIUUuMGlZV2cpfnBqTy5rQz5JUm5OJHJIe1IiaVhre2k5Z2tia3E/OVVwQ0xIKWF3RjFFSHhWNi8kRmVSYzxWQ1tPd1F0SE5n'@; put 'dTtmWD9MVEMxYDhESUAuWkRRWiF6U0dDb1k1IlU6YSJRK0IrRWJiOWQ4Pj5QZlB0bGxWYWxNRVVKeTplSmp6bihKZTJ4OSxoXi4mYjZGd3huKXkzWHk3cUUqPnpYJkk5dmNPZHVJZDxdP2k7Wn5oSVRgKH1SdkdgQXojSEN0eXJ+aHxLXT9VbUYlWjQqRD9kSip0eztHUUhbUWtbaHRSTSNzZ1g9'@; put 'b0MrJkN+fkNXZXZVUS8pfTFqfVkvKjNiIXZJL0NNOFhiNl4yXUJ9cCZ5USlDYHlMQyMmXiJaR3BuaUB1JlJSUWcwP0hrYmM1P2pVLjZ1Yy4iVDVsdSVxbExDfD8zR3QuUFVKQEdwTD1aI2p9LHpgZTNDcHpUMUdfPW0/Wmw6SD4pM2VyKTFzayxSd0lQQksmM0N8bUdTT3padiIrKElpIzcyUHZZ'@; put 'RGY7OjZIaj1heSh1SVNFLmpkblJvanB1aWJRYjM9T1RSOCVAeGFiWHxePDNMYyNgd0ZyIjprV2tPM0JPZ0VeMyEuTTBDYiRjOioxVWZmbXRjT21iazR2IS9sMXNQW3M7eUB6UkJrUSNDND5IPy5oXXYrUWg5JEJvRW0mP0xwUjRPamlTTCNsdjUzNHJCPTdKITo8Oyg8bzohOFY1Kz1dZCpmLnc9'@; put 'LjpmaHNPY1Z1MmhVbS9WKVk/WzlGcXo1dHVqRTc/MWcycz8jRVZVdHxxK1NvTFkqeHF2dnJGZkhbMFJqLklSUmlvLElXTVtTW2YkXWpaa2gzQDRRIzdIIlQjS1hFMTU0WlE3KnB6PDhVSHY7PStqYGpedjYuPTJLJC5da1R3VTY0ZSlhdnlWP01EcUcoUG1vaFt7YF06alpFc0JnOXNiSVRqVjQy'@; put 'UHovRX1JO3daMXY4NyorSWpsOyxEfGdYYSQrTGw6c2tHPmtDPEIxdU1XOlJMeE9IXUkidzI5RCQucWJlTGlbU2lITWFTViQ+YCMmNXw9T1dSR1UvWXZJdDIkXXhsfGYpYUtPc0x1MUc/YT8kMkRPZzFGU3A3aWNnfiRUK3I8UkImay9PeTw9cFVldWo5L09MfDQrSUFVYzome1NwTmI/Y3tPMUZO'@; put 'YENfPFI5aH46SkU1UChGfmgxK3xZcSM1TXlhRUsrbnlXdV8kM31pU1hlOj4wQF0xRCZ3aUNseGFJdjRPUUcmbzxTP3pZJV40djAscWwrMkAjJFM4dDFqeWt6Y2p7dVpsY0U+JixrU190UGJxUUBHYC5MJVpHLjlSIktZLiZRKU9QOU9WOTJ2P1VhWTl9ITBrZ0AyTmcxTmpwTildd0d1XlpqU0t0'@; put 'Z3I8KiFVMyNXRnhAbVU4PUkjT2s5VDVBOWc6dmtFTFFiVzFjeiNDNXpFMTAsIyl1djNqZkVzZiNINU81SGFnKHpVYmpzP3k2Sjgqd2VPJi9DazJJOjVjLzd8KENnekBrb2dNLm1Uck1seGBvMXlMNyZMMS9udGMmdUs9cEUuJi4mVWpfanBMRkNQeiZnK2RPeiZKMXdGSjJveEUjRSpFMyZBfCk2'@; put 'LCE1cW1BYGNGMSRuU1opWyV6V3FoK2FoVS52Wm9HYitJZ2gkIjp3Z3JEQXVueHZfemQrUCkzQkc6cDcoNU56Nz5qKkZoRUxnUVQ9V2w5WXhaSHhCbVoiZFdJd2NKbzddNnJWVVE2TTd8b00+XXBLOihYLnBXN0VJNmpGKFlWZChAMkI3T054MzlecUVDbmZrM0tgaFY9InlCXT0sLCF5RTkhdmdT'@; put 'KGVZcW5BRm5keVpqdUssa35BOURgeU9ZczxGamskNUFIRTdrU3ltYm92ViNuUkR8R2R4VUg9PVIkKzJ+cUN5NlM+YjU2aStFPSFYSXduNHBFWSh5Nl9ASEd7OncvWXFLMndqKE9KQzUoOihJQC5bTm5Bfj86SihGLiQyUWJkSmNAJl8+fXkmWHZkIU49KS5WdS4lWlRCcWVSbUpWYTAkaSVsfXNK'@; put 'VGxtIUlCVmUkfiRwWl14ZX1zM2BzL3BhSmI1YVZ8UGBuUUxCZFZzUyMhc0suJDtTbEAmcW1namZIJHp2PF5UZk42ZkhuUXlTYTlLSStCZWlAaVRicUNRRDptREp9aCNxI30uLFJjUVMrLnl3b08rN2tmLiV5UHh0MWpfWkdWPyE8XzVOTXQuVSVfTVMoe0opQH43fH1JR2haPDU0PFJhMjY0UHl2'@; put 'KF8yQ35fJXZKfXZCX1VRYi4+OCxVO2hXU3QvOGhqWTlRYTFza0E7JV0lLl4mRVQ1JF13cSZ+OVZuJWkufDR8JCloe2YpeWZDPSJsJG4wbyk2XUxMRGlaVHsqTiVqO2E2QlM8O3Uxe3R8WGRXUSwhUjlsNkZLQUhzUClTQks9M0BVLmQ+R2U8Vy5OSlVoJDszNWZgdV50YVs1Tl9KP0QicGlNe0Mr'@; put 'YVs3dSxbQyg7RGg5Rk5TKCpnaldjOjM+PUhHIUV7TDdtXjhaIzQ+bGF2cz1TSF0kbjY5W2B7YkNaWWM/MjFYeUFZbDNYfW0vZTRxJUBYYXlXbVVaY2ZVaz5WfSRGKFVzeTQvb0Ywbz5GWjk3SW5uc303PX1fK21LZigmUjFiaWd+S2FqMjZGKlFINUE1NDxyRFU8JjJqOltkN1ErJTNhPGkpTG5Q'@; put 'Ri9FfWNoeFU9dFRBIStCWkI2YExyRS9BJiojQyRFOHlZezg1M1dUOjBlQXRLS3RwOiN2JV5XMlRSaUw5MEglaWUrTmZ9ZGh0OzVQUF1pUTprW3M0KzYjPFMzNCZ0OVJAKUhoN1tmQ0YiSW9GWVFwImNxbEFHU0gyVE57PFtHSkxPPltsPXBscnY2P1JBUk13TGZbbWk/NTtgJSFsZilYSUtPXk8w'@; put 'Ij5tY2wxLmJhMmRaX0lzIS5KWH02VkFWWEswXyMuRWZGdW09aVdmfFsoai4zITwpYXZEbSVWW3p0SXxEQDJUQ29SJilnQzEqUiZFNV5nWz43b3NKX0JOXSw9fU8qMGxQclp7XiZveCFuP0xKXXUxLm90VUI3Xn1DO3Z+cldJfit8ejtKPCY1VnBuQ1NNeXFwdnYxVFRJU3NEXktoTWN9Y0lYOCZB'@; put 'a2Uia0c4YzBpOyYjKWZhZ288LGByZCZKNXY9Kz50dCRmXVJWJU5MKkY+S1FSU1sxPTBHM3NwemUvWWNvYWRDdGVVWnwpdG41LnIiSDFDY0R1JFcqczBmSi41YlFiOVo7ITIlbG5HfXc6VWlPMURKKkNIXjEjfVtGUFBMKSwmREJYU0ZUL2R0NSN7Ny48cEgqbkk5LHFrUUhyZTo9NEpWWH1NQ0oj'@; put 'cj1gYE1YIiNPdWlCa2A3c290USNdTk92LEBHTlhpYnlaZzZyTktEeWN1eUVHWj5+InBxZHU1dzRzOWkxOy99aD9gSWRQWChlRFZGVSNWOix3YHlaa0FWRm0lN2lHPW05R20zbitGYVU0KWJweXhOWmw+YE04T0N+fmI2eUhgMVdPfmVoVTEvRnMmNjkkblA1I0NedX0qYlQhPXY6ZnFLM3JmP2xn'@; put 'K0ZNISojKSE4MG89cHJTKj99NT9GfiRFViRCOnFjKnNvQXtgRGhSbFRjOkx6Pll8XTowc1Zde3VXLDdPcmM0Kn5aQFUjV21xQ3tdQVQ6dVUre1tAKTVgdy9RPDV8aSUrKElfc190NkQ2RE5BLiVFNSFOQGVjcm9IQE9OPGlCX1ZvNXN6UlJmQSpONkczM3M0QzxEOnhCKEoqfW9hVXNvTXs9JXV2'@; put 'YEdFRjE8PFtRb2VLPislNkdUNiosfH1jd2IxVSJ3Z2VFbyNhXyYrbik9WHFwemJkYXU7Ri5aJUpWcWtOW3FJUCE+dD1GSUd8RWlDdyo9YCZyKmg8X3B2WHQlYXlqPiFfWE9RSHZyS0o9S2JpOztOOUpuQlRHOS9KV1tveEAjKjpvOSpJeyhRMEF1SispeHB7QS9vL0Q+JTN1eywkQEp9JT18SnhL'@; put 'd00+I14jRlZzSEAiTHciTit7XmBDaEsvcGA6ai4weEpWQGdpLnhaR0VtRDF7VzV6c0V2JnZjWTw7JDkiTHpvVFpkPiZgPWd0RFlocjE5SCNOMzRvRV59dSV1Z2s3S2EuN3pEaSMhW2piXkczOkdfMmh8YyZOVl9BIjwkb1BsbVMzPztjLGVaWXsuRHlCQHEud2xkKCVNW081bXN1aCVBRmt6bnF1'@; put 'dy46aGtXd3Q9MndBRkJAZURoaTtgYEs3MTZVKj9qY14lanhxJjJOaVZRX2c+T3AzVHNiUWkrVUIsP2UjME1AVTRFQ1pHVzxdZ2R3bGd6ZjJEQ3dkdWxZJVAzIzJTNjU3VGs1Nkt2PyIoNFFFPmhjZVd1SnR2W15gMFVwVzdTRFMxd29nK0RPMTE6XUltZChsRDNgRyt0RTI3ZkZZMUorVTMxRCVI'@; put 'M3dzTGdEP0dRUjxeODVgdXliM1hjdmRbQXo+TUM2M1hfYyFASkkkIVVOJjF1YTFaeUtzM0VOOl94YHFgVztraXgjQlg9ZE5KYnJYeUlta3QyK3RpSz1pNltRMD9mMEVfZyk4VnRxW05hPWl0JGxMci99MHNpIkdlIUp9WFMhU09bXmVxWXMkK2U6bj9LfjZHNEchR0o1MUpweG5DaUB+QVBNbTdk'@; put 'djNQQXR8OEl+KG94R20lcy5rIkowVlUsfnhuNV1iM1tQZj1wT2ciNWBtQlo1LDw2UyNPNV58LCN9Y31YRiMuV3BhNGg2amVob1VkdTRjQkAjP3xuYnEodHUlNyVPN2JRWDZ6YUllfSRSR3R5Q1FvOC4mZlk4VFZNeHE2OlRNW1VhUntgJjQraGc4MltXPmtme15SRkVVMjNjXipkfGdfMFJ4bkxd'@; put 'bXkhOmAiOUxWQUIjMUIvK3xYTDF3UjMrTC8wKDheISM4ImQ3IylvYkVtbWVHeix5I14wfUs/aDdSJHs6Q2pwIVU0ZyFUZFdCPUFCZXQrZ3FsZ2BeVXVrd2FTalRoNURod0A7e2VZQndlb1NlNW8xWz4xOjc/YkRXRyN9PDYsfn59UXxjWiZZVkVMS0FWK28xWSJabzpBXnJiQE4zdysvUmFBKkd0'@; put 'PCMrQiZPSk04TktoSWZ7V2FObjg6dF9DWVVsPzk6YDNRJkdGXzhTbyVXaFElWUdzIWVMQ1lraCpVeiVOQ0IsamBxcj1ZO2RKSXBOY3M0RCx3Py51N3IiSEU6bm0xLnNYbkhVc0ZdTVtsPzFXZ1sqVnc1P0M5MjZGL25NRGhIeDdodz0oa1svOTVyc3dIV289VCJVVFg5LkkmcDpSWEJsQkNEPnIp'@; put 'Vk1SL2NmVilZbXtmZ2UsflQ1OE1VJW01cnpAfDBPaDJpPEFxV2ZOeD1KKmQwOXJpbVdmVW49KTZAU2w5e1UsY0k+eSJFTU14c2cyd0A6cG5RRFQ6NExYI0A0YiopKlp7OFJIXUV8eH07fCFOQjRmZ05pR0w2VDJ7WiZ6RXRidT9uLzFqcyhvPC9kVSM/KS57ZkhERnt3R0h9Nio8LE4qfFdgRENs'@; put 'QGpNUyk5WnpDMm13VGpXSjpRX3BIPWtNJl9ZLHdkKiM8R0pkaG8saGRWMUh3NF13cTtkZU5jb29lJWE9ZXFLJW8zQkRqKlpoazs0ZDthRVRWJC85THZIX1I+LGE0YThGOXpeYjlafEdTOmkkdXBTX11wJSpHSitMZ34zI3Vscng0QVFBOWhPemFmd15AQHksQSo6UFIzQkYjQ2h+cj5sb2dFQExW'@; put 'Q3peaHp9RWomTzw7U146UmxAQHtSRnwxMDJULnp7QHBFcG5WYzJtQmY7YG1YLkp7bjlnKGVnZ2RKVG1ld31UOmk0LDtrWHE1K357S34iSGVadm8+KDJnSTFedWRHYkhvU2A+cG4lfXQmTXt4O0BrVzA3YkhpNFBoSTF2UUxyRDZdUiRCa3o+dm8vWTwsNmNMYlI2eSt2ZSY0dCpHal4/T3QmQm0m'@; put 'V0hiaSlIWyVsRClNNE9LN0pKdGowOnw4YGcoZ0V1VXtGYkU3Zk4jLDhpbVAoMXlbdEJiIis+RVN4KykvdnZ8XSopRWhxTXlaVSFnRERhW0xTVSk/cGVePFYvRlIhYVRlRC9qUml6TzphXkRtI0A0JWwqVEtIMlBYVW88N2EpIShlZilTOihpQm13UWlPKityaURtRmQ+VEghMDROPW9SNG5uLyZA'@; put 'OW5DM01OZl9gRCtFU1B1RHtrdSIsQzNabWhnU1JCdF9ZZlZNcV1zLzZsPyJRM2ttTl98KmFWUiFdaVh5ZltXQ3t4Y2xlO3I8VlQoWltrQGgoJl04WyRKdUF3P0dRemhtaCUhWEtIN144LH5+eD0+c0hdXmFhPCFrckVQdGdWL1swKVdPend3aEh5KDtHRk1WflI3Pnt5bVtwLFY5dVVsQkRhbHV3'@; put 'JXFTdUNzS2E3XXl9WERXeik7dE8oYlt2eFMoYUZsWnd4SGs8NmZBPX5iJjM3dXpmNzgpW29eTTFUYVIpfXZVK3QkJEkyZDlbVWljTD1UOjFpWU5aRW5pajZWcWUuNFo6e0VAQmF5WS49Z146RCZzbzZiRlpkY0dhbVJsWl9uT2dPb1pwY0A8Y0tfYShOUnsvOl1rXndgfUBbczF7YVElWlM6NkZq'@; put 'K1dQSk4leS92YWQrR0JzPCNHKEdvLzUhMHwqTXliT3xTJih6KTp1PnBNLCM5ZndyWmY/PXBsYG18RFEmWzc8XTUzLFB1T2M3KTJFQyhjT35iU0AhOVclUyY1PzJFJVU5dUFuVyZ8TD5PKncsWyQpIXk6UHVjXT1ATFhRPWY4NWpQTVFnej1bPiY/RzE7M0M/bVpQYlVWfWwlXTVhRylROj0+WkNt'@; put 'Xl92aDY1alozNHtqZy8waHNlLDQ7MEhARV09YSskO28/fnAzIjphaHxGYVRIIXpaOENqd0xdKmA6bi80aGtiJkpEUlRoSiUqYUtVYWhKPzomaSJ1ZCVje3VQdXspZkV8S2dxejZGcG01MHB7XTtDVDdhODIuIV5qU0tZWThUc1oqKCohTGBWeDEwY2hQKDIwN3hfdExJfUYkLjp5KD0sIXJnTXAz'@; put 'RkY7TTpCK3ouVjhGX2lnc3pAO15YNn5heChPfVs2Y3FbPDQiTkhyfHZadiEsPyYxcThdZzEyQjgkSDgzRl9eVnAqOVFxTmx2d3tzSGd1PjR4ayFjVjlHV3EyI31udXZXcGxUUWNNZUtpR04xUFAoe0o+OlJtL3s4N0FZL11vajZDTjdQUXNyd2RrOn1BUyF+aiRlT1hTejFgb00hKldyMyFSMFEz'@; put 'dkt3Um0pVnUme3U2YHY1VUlqMmJZNmVDQXN4Sit7Mm5DSWlibHZbQTFrS1AudUZqQzFtdXRaJi9EUkJCMUghP3YoYG5uSnYuV2VWOj43ZEIlI3w9SmRyOkV1IzpuXUlyZHRbTCI+PkhhNEl+UUNEZTNXSUg0MishJGhiYkxyU3hCTVA9bl00N29lSDsiWHNiMGRqWD4mWjguZCljWSxaUlUsQEZD'@; put 'ZStJXSh4VX1sYC8+KSg1TlR4dG9fTnVCbnEiKDtOK31uQyZnVzYsIW45VUE0L1dbRXooendgQlY/Yk5EcFRbRjBOfDpNZURnYEZqdD0lbil8U1ltLDpTWjd3dnNlPDpAaSJ4KDpyRCtnXWRAdDlGaFEhX3oqcE1yfTlYZztwaz5iP2ghUDhMK1k+RCw7XiVTQT9Je0xlMGk+TG1AKD0mJilob3cz'@; put 'dz9qNkVTIkYkczNGREMmZG84UW8haXpWbXprSFB2MWQyIzdsJlk6Yj52KTBuRyVtL1NFdTExV3x2WzZxYVY0MC9ZIjAyWGhtOlMsakpPKSlxZFc8N2Y6NWQpKnk/U0VzUnAvJkJ0ZjlFWllAOFh4ZGBoa1EmeiJsKj4hfm9scCZRS2B8MWlGS1c3cUk5MUswdkpze1MkUlYsdjVUPz5BWWtUN1hf'@; put 'QWt2dkdBb2l2ITJSc08jYjJ6cWVUUkxocCFJY1lQZ1tTWG9uXTE4TkdkPXVCO0RiOUohRyUrfmVyUmwwSTB4fUw+KlcoeFhrNGhffD9bNUYjeGNXbTE+JlArKH5eOiE8U088OiwuSSJhSVM4KCt7IWtCMU8qTnp1VWRVUTJCeF9LcldlJDs9ZXEheCI6QnUjbkt7ZzlsbE9gJmxGZntgeUcwSFhA'@; put 'OCZJJWAxISYjeG1EIUxne1NMcjxYQyZzOXFeJSU0dnwrSnw3bzF2Y1UuQlk+OnJNSUMpa3RqZ2VvNEErNDw1SXVYRCRsK0JeYDQqcV08TGk+d01teXhaODJkKn1dYEUpO0x1WUhUSjFKa2RnV21zXkIvOyVVWHVkSUVnY1tJIiZKSyRNR1psWXBUdnp7T2AzNzBfZUZ+RFBsIywhbDpdOmkxT35y'@; put 'NnJVRy4+dSV3ZHFePjxGaV90Ryk/YiZIcWR0OExsQk5aNkhfXUZLYko8T3xbSFNpazV7ajduPjZsKi5uK1ViMzZNK3YhZVBtQ2tWOlRjbEtlPSQ2ZEw+bl5kLmRCViRAQENrNWJlPENINlpLfm4jLyRmUnQ1Pks6cFV7KkBFZyZrVUwvZ0pCQ3t8LFU8X0Mxd1MyL3A4XW84ZDZNeHNHVkh3KkR9'@; put 'Q1d+LGd8YzBPckUoP1ZRP3k1dVJobmo9e19SRVksfUpXfF9fV2I7YlFJWEN7aWVrVzJoLzwjRG9IbSw7MWJAKEUlQUpNMn54JTNiYz1tYVFgN0V9OSRKWk8wTXJfZkdEN1Bqejp1OSJfO3dmWjouKCQlJDFBNXZbWF9HclNFe1ZlajFJfiJnOnAubm16eUIwRG9mR3R3aEtHOT9qOH5jM2IqTV9K'@; put 'NjlnKFhhdFhbSFgje31XfmdqT0c7YGJ6Ql00d180QUE3Zigod295M3phUlhUOns1SiR9a2NdWGJ3MGs9JSVMeEtQeXo6QHBPa0p7Z0dLSWRpejRNKkllQlJOO0RXOmwhZ3wvfVddXz0qfEBnWSpSX0ZVRTklI3okdCxbWGZ0Wnw4O3dLNHFbQCQ/KkBWZlhubTl5czxFR2l+TmV9clY8alhRMH5o'@; put 'aFBZMm5GYHtiNk1eaGI/bUNsNnROZGZlXU9zRWx1KUtVMyJrS2J8YihtOiNUeDAiSWY1TGI0QFAofUUhSTJWfUFaZHpsX3s3WHU+ISQ4OU5WeXIqN3FGIzxiei5NIUhHUkN2KTRqM3dNMHdfN3NXVX5hOFJXL1hqIXBxIzZ+U0tOUnlFcDZBMkpSIUlNXWdaZUEiRk1PPUUsQiskXzU1OCIxNjlE'@; put 'LDxVfGRAIWA1PnhIYyM0SEYhRVZkZ3V0Nkt5YitwKSJDMGl7aCZ1ezx6MVFbRSkjI2kmbU84dih5RTgzSjdOVzQ1b3UkYE5vaC5FKnU7NmJLW29GPFYpXTdsayZraiJpLnFUS286Mig5IjFJNWpadn42UWFGSGIwJnhlTitTQDB2WWw0dClmdXV1bjZFPy8wQ0lIaXlKdVUrUzZzMEBLelV7JVI4'@; put 'Wkk0WSRyQzBVOl9LbSR1elcial17bG8ueXUlVUJlTnRmcm9qeG9VYzNrfUoxI152K05ifislU3R2KSlbVXorMXtMLCFxZmdPInJwenN9ZSEmSGlLMjMwKko0YnBQWEB0MSs5WzozZHdRN0pDKW8/YkRuMU91I3hocTo0bipveDJUOGYrW3NGQF9jIzZqTkpRZiMoN3s6eTpPT2Q4JVBkNVUuUjV7'@; put 'bT1yKm4jRj92NTJEKThbUDZ4KXxvKlVLT3Y3ejJ9JXNYLFlQRlloYGBLZXxqQWQ+LyIuWmYhRjNLZXx0Jm9nfXJLRmJ5OGJ5bkE+NzEkeiMsSTBjSWt4Ijc/IzhAQy8rYiEjYW9mWn5ZaylGYy4jeHRRcjF7LnI6LFhEPDVtV21tV0I5aEpfWUl9OHxNV3lxaHZKNTd7VSg9SWNfc3NtWixnVTsp'@; put 'dU0rbTZGcT9+PDR7YWU6KGBNKl19bFBLVDI7MnVKZlt9bF57cixlPj1IVE16ezV2Uns+ZE5qMC5RI3paOUglNWdwUFpmfERSeG5IYHRaV3FvLHAkKUZ9QEN1I0RLVjNkMDh3SSYodksvbShDd3tieEpzVmA8UH1RUWxUalFFQ2tUeSpuW19WJElJRUs6QC51I3k/WWlUeTd9dEk3dm11P0phdjRZ'@; put 'WntDZUQ1KU04V1VuPFVKQiZUTDRPfFM5bTlQOlNTZUxPYlUhR1BhXTZPNVQvMFBKWSI2XXl1UGFFYjIjKnE8VXx4PXlyVGlXdHJYaFRwcEIiUTl+TiFxKG0qfGpMYDYmS31bNXlOeyVuSDJLYkU2fW1mJkVxPng6aEVjUWJUL0w3eDdxcFZOYDdseHFec1UiVzt5Ii5QRzpXRyUjKzk5IWJVYWsv'@; put 'SnQ+PlFRRXpsNmN3Sit5eWE0Ui55UVdvbFd1WDMhVn1fXT8lPyNXdHxDen0pRTgsQ15aQllAIXoxMT1XJUgiei5UQWRCS2NVanBFJEVBZSUzdWppVkFWPSkoa091NFdiezphIUp3TjkuQCQoeEJTSDJhM1kwKjwvZyEkN1c2QU49PE5iUFt+Q2taaWc7a3Ile05KMDgvcylZWTFNXnEiKUMpbm03'@; put 'PjdZaik9bnoifUc7fj5HejZWd1ZRVk1mUyRoOCF1YkQ3ZVQsVm9qZWpFdl04bzFGdjplMzAjSiswUUsqMGJ7Okt8V2xjVzoxZSs9c1RENWVRISJQZkNtUFg3NzxJMVBRN0xgd0dxdzRwKW5ZMV81SjtXYUA/ImEzJjhBRlJXQnVlIkE7VDUpTWBqcEkwQDRfZWVsZnFFbCliZGB8Sl11OmIme2M+'@; put 'QkUpMmBoTkw+dUpZfSNnMFtHYmIpXj9naD12VCp+OHohL094VF1waW4sSjFfWXBPNURFYWZdOktUJl4sSm9CfCwyOCM8eD5DRTRTUDg3XU0yWEk2XXppV2tMP3lFak4sJUppSmNzZ2N1SkFQIld3KyZGeE4hNjs7XU54ZUh7dSF1VChHaSFCTlVdfFFXeW9vIT98O0B1dHYyajhaOWNkNXIuODFt'@; put 'OkIrJWRkSSoke0dwKSIwc1drS1k5JCNmIXwucFB1S0IqUT1YYm9UYGx0U0pCXjNrY1hHRFp9QT0xU3gjYyNecUMqcU8qUEVmUTcvZzdyUSpva2RLMkVoc2QySEVhOkdGVDQuUzR+bjtGdHQoK1JNZ2tfOHBCKlgib2lzUmlTV0FbRGRuSyV2LjJNSDhEXjpEMVNlOCEvZ08wbE5EJUpXc3ljI0xz'@; put 'bVoma0FbWE5BbXoyUzliZkdgOSEpZiZ0M197MiF6MlpjckN8PF0kPmJKXld+UVQ/JWA2TzhFWCMlenxPN2JfNClgdHdubVFzcWglZlEobWRnWWxCalBZSkpsQVhlQGJGYUZBOFMrJVNHLEhtYjhQQExZaSZnbVc3dmNYe218KWYvX00uW3M/ZG9aSXAzJTJqV2lVfDcxeGRGNW5Ua1docUhsOX1l'@; put 'NSZOakdqNypHPzU/QFJ0aXtsR2wpd3sxQiouLHZBXVR4TnBKRzpJbHhkaENZMlUyJWZHIUtCWCVjaUdfQztiLG1DWjBLI1g1bi9COVNFWz06JllDRzVZZnpzbkIjbCZFTCspNWpiblokIU4vSih2TGJnTVNyRGpqNSgyKFZsQDFNPWVefF5YSWEmVil+eW9dZj1RPHssUlk/eHs+Y2ZaQUdhUWE/'@; put 'RU1ZOzZ4UmRYZ29BcHldNVRCeyRMYlNyYWQ8Rl5mQEBwZzA7dEhZWmlbNSpofiZ4LnV1UntRLFF3dTtlK2EsS0FwVj0yez59b2Z8VTJVOVUuPUx8cG0oIW40cGJ+SG05NWxnPmg0aEFBVmdATWJLYCs8ZyRHI3QsZDREOkplQC9TaERGRUlWUjksciwubUc8elRQVUJFdXMjdClgaFhvTDBwKHgy'@; put 'KUJsKSlPZm1LLjV8PVJad2ExaVJSQTlyVWF2VT8yaSNFfV5kPSpHWE49Plhkb1FbTi8hLGxxMDI2OCFVX2JYXk93WGNIXSxZVndlfn51bls/RGNEWGc7RkR5Rk88OjtQO0MyRntlWVgrREolUkR7PiNnM3ZjeHdOZDAuZkJWSjArUSJEO3ptUktZMmxhaVlgOSlRNF0oX0U2QyU/fjNqXkY/cERa'@; put 'P2JVdEhhRkQuVzdnZUo2WS5gZmhTMlRPIl9sOS9pY3QzaVpaQkpPTG5tamNuUHJ4UHtiJVIsMExoSk81YEspTXFpRC4vVWNsd1Rodkk8XV0vU2UoQVAlZUpXfStkWjhAW3VRYj9iaGs0Ni9uZVI+WiheLEZVS1oyO2VaYjt+bHxMRl9qLHlMbm1oYyhTTko1Tzd6S3NzSV5vKzgoSDspZzRiJHBI'@; put 'ciphamU9YnxIeSFuXzsuV2p+Tn1VNixhRl9KLjwiaFZjMmB1JSgzRTBkMzx5MzZxJTNadjkwJFRJaEAsQ0gjXUFxeStucndSNmI2KVRqdDhvXz4ocHIzOjQ5fmNGV15CfTIjX1t9V0NYI3Y1QHx+LldRX1FWTWN1L2M0MFhKeXxMWTlOPz0iLlhlbVY+KU83O0EyQXNqXmdpPyIuQnEsOVshTDMv'@; put 'PlZzI11CKUk0STl0UDRlKHp0KVVbeUEoSVFnUTdhMlNQKExHT0s4VCt6clVPPGh8eH4xXTk9fFRGY2ZiTigidj5hXjd+OlJ7TzViXSQ+Pks/JWVZSyVDMmpAT0ZRcXtaeEV0VkJwK2MvKkBAdSUzJC5ZTmRJPDVGc0siVUhFR1dpd3FlYnV6NkV8dEZfLH4zK3A5dkh1fCgxUUltd2NNZGlNSUgq'@; put 'TzFGI09DaVR+M2pHY3xpfGhrNHBzWjFeMCNCIWFZQF5vS20vfVNRaj1+fG90O3V6P2tJTCxlWCsjUDJwTiRNUWZnRVtrKjROcVo4Tm9rfm4sSEczRWQ7ZUxBZjtAbDRwU3VJMXosRDA6S11pIWY9MEUxNjouWCNWOixrdGVSZi9JN0d+ejdkQnJzclNGdjBGcSVnWTR4OixmMVY2KCwlNmpFbFpH'@; put 'azMpcyRqezg3Umx0LHR7JmUlT1RgYzRlb0gmek5JTmpeSVU6LkR2c04oYy45cC5Hfi8/fTVjRl1NW3ROVTw1L2QmLzlkRUR5ckskKSUuREA3Q19XO2R7M3lFa3YmOjpjXkBBISU1KjQpVVtkTnxRRD5OfEV5UEJDPGIueHlrTCpvIyFfa3dKd011WWp2QGo4byN1UCNlSn5ddzNEdElKW2h5REo1'@; put 'Q2IudjN1JFRbX3RIViJkOzZtKFc5e0J4aVt8QGVUXUtiKUguW1Z6XU04M1cuMnVUSn5ocylAIl9hVCg7ay9IJWFKKEtuXX4+QyxXWERQakNuTVczT09DU0BsUUkjInZTfjZMcjVMRVMxPTZiKm9iS3R+LGIqP25SQ0YwTjJyeGJzO2VOaFYzLlAyaVRqYkg1czB5THJYXU8kdjNuMVpOJUg/WFdv'@; put 'diQ5P0ZOaUkqJCYqUHxJX3A1eCF5XVhwXzN6QkEjeSxUZWo/IiQiQyJgZUtKSkd9RzQhOk9pKEosa1trJkBPREwmVj1fXnF8NiRfSn0ramk1SFMmaE1FP2x3P01NJHZIM35MODkqZ1Q3Yzw0QyZZTVlya2ghXiVrfH40TTl0M056NFE/eHpvdypIV0BgP29yaCJeM0Y2SjB7KnsoeEAvVU99OnEk'@; put 'SXc8fj0+KmVhamwsKCRARFlrIVhJa3k2bkRkOF4/Nz5fXmM5KSN+aH0/Okt1UCVkIXgqXTJHYXpsczRPPGQ0KDRteiRQWXhSVFh4QXE2RkVvd0lZPyNSTkdefVN8Mz1yOmkrWCwjSkh7e29jIWxZYDlqK3hDdEdoVXhueCkoNVRQNEVaey9rUk1XcWdpPWkzanckTU9jOzt8KVg3TkhnV2YkN0tV'@; put 'V3JKT2U5djVyVmZ9UlAyRCNGIWg3eT8oZm5OX19lWlQ9b35KQnRoW2VPUS5Je283N1slWzVEVGZUS2Z0fnQ6KykpfjVwPkl4QE9pfkNgSjlvWS4sT0BlLGN5WXl+Y3VWaUxPNWpgWCpfVFYvcU8sR0ZiQ0MoK1pxUDlHYXc3KH4hXyxVOVtGOz92YlBFTiMoTWo+TTQlRUBiZm41dTNCcncxKGZ3'@; put 'VGBHNl9KYFVrakJkV0Q5bUFwSm9VI2VvaiRqMjUrcWl8VjspaClzOXhdd0VLPyxFZWdhTSldP0U4Oi93cS9dYDhfdl5neD96Rj9Zel5mUSlMKjFNKXtgRTZXRVMyRiZzTUhAdDtffDR6Vn43eTVjYztIMH5OaX0seD9mJWo+ODA0PnFIaU9KJH1dUnpZbWBdUlo9eE9iXzM7eVdEL3J5WG90L0E9'@; put 'UWZfN3ZQYCRTQk1UPX00Uj48W2ZHNVUpY1VHUHs6O193c0ZgQTJ0QHJxK0Q5IXk6UEIjRWg5Z3NsVm4vMUApfjtzRTBvQmxTQH1bbXQ1dGZGLC9fIyxMemRmU1ErPXxFWipYZEFmdFdyV3VDR3dMVHYwKjwxX2hMVVkkQTVraGgyVSNSJkhlMWxlRHBAQyErMHU4cFZlL3l+JGA4NFpoc3t2QXgh'@; put 'RjE4azMmKkd1S2wseD4veSpPNl4uPyVMYDpmOHdWL0ghfWkiVG5dcVE/aVEpbmkyZSwkMUlTdFM2TGtab0NrWW9aWX5bM3p6RGtxTixpdm5JdDs7Q0RBbUR5ZjxANjRRcCMqcnhyT203Ny9pZFUkdj1wS2sqbWddKzg6XzIyQ0FfakZ1V1IvY0B0dVZ1Sy47fHp+e1M3RmNZNSUzfD90dl45XlVC'@; put 'MFdBIVFSMyYuN311cnlyM05eUll9T0x4Iyl0aVdfSDciPiJlOFVjczlgcCF4VVJMazdCMlZONWsrIk5oRmBaPEBiQFUraVFXeyZEdGR6aUV1XT15cDhGJT9ERXd1KUgmTXlZTlspVWFedVRKe0Q6TGBVdV55fWg5UngwSERYfl5PWDZsPE9pWmV4T2RjbVloejBoOVtOcmpILFUhQ1Aud2BdQClH'@; put 'b31FTjN+dFBkTTpUa3JJYXBgMGgrPmpXQztbVl9FSUcpOiY3U0FaRCx0MCwxdjBhIml3QGQiYj5xOXl7X14kZlElbDBdVEh1Mlk8M1tedC5wWk5xdGRbXyM0VmszZFhYbm89ZkhZQC41M2E4UjFxOVhlNklrRnZ9QExbcURSKzl3X2drIzs5UypdJXMoKSMxS295NXU3O0VUKzQsfGt8Sn5pbXop'@; put 'RkdOTldxXX0vZFo1Oj1zbz1qTyZLa29AM0NucE1RXzssQ10rM3U7ISVLRmN4eFQmTGFEeVlzU15HZGdNaHxdKHBMNW5pJkFhKDRISzczWiR4W14mSC59VTtgVDdgOX41ZzQqRTJYKSpwSDlMQnB1SmtdRm5DNjxwN0h6dkltck9wPEwpLzFUT0BXKV07eTw+VkZ0dHt9SEtaJE0vZHEoXTNgNzlE'@; put 'MzF7YGUmOm4rbkVibm1MaSNha3U/ck1yTkhLYURCMW8yOz8rKkg1Qj0oRl51Y3BKd2JYNlJQKjptaTx6IUBJYVYldEdIYlFpJl5MVSpkSV8lM0RxKntZOmN4Ml52dnp0N0whVH5vcG5AWCF6blpmeWwiMFtqVmRHYERVPE1ZU21rKzVaQ2JUQiRWelRDaTY8fW96aCJpL2Q8L2dZS14zQW8jT2FG'@; put 'RkVPR2soWz9NYnYyS1BQSWQwfGFGJSEmSndHL3MlPWdiMjVwfm5QZklwI3A/KFQ5a0ZURWFsQjxUdVoiYURFJWExPCUqUEd5Xkc8LzIqKWJ6TTYiejllbyYsa2kjTWZ3b2wwI2hARixjfjdvd11uUlJHQUhudU04Q0M9L09GaXdpLy9QWD9UVmRTTWVBJVJZNWg9OFs1e21hfSoiZ1NNe0hPIVBj'@; put 'fltZZHFsWC5+Y2BxM0k/LzBjcksjRmJxUkxxckc3aiFAW0N1N2hNJDosKHVYa0hVZzJPNGFpODt0K080UShAYVptVE1ZOXRjZTE9WFFsUD9UJUxiQjh4fnlLKXJbd2hOZkdpMD5abjZqNExDXyw+ZH5yPTxsdUtKU1h7RmV5VGkkdHppZjtmMS41UHFeOi9iYnNRUjFzbykxOEJWWThwbVN0WilE'@; put 'OT5hYFFPWkZ0e31Od0R7TmZYPFZ7SW1pX2BNUCxlY1EyYStgLzEic0ZXbV51NEFYck9qQyZTImJUMm1EMCZMe1g3c0olUHw3YDkrR2xNJVVSfno3MXpuRitRUFRDW3FhQWJeUSJDRyQ1Uzg9LlJjbm9mRzVmVSZjLHV3ZE10ZGNDOkkuXmUuIlJJfCY6Mlh6OjVEakgzREdJODU5TVgxMiJBJT8k'@; put 'MUIiI3o3ZEpYQz5bNWdRV2Y2S0godGYjNUphdzY3MDMzMlg7PDVQOD52dGgvQH5ZL0wwPFQzUE1BJVgsaEJ+cXIpKUYsS1U5ZkwxSWl9UCsqPUZsa0E5XSxxbjx0IXMwJitSdHkiTWJ0LjRTdUBHMHtwQDZtMmRaOTw1cyVIYlYzKClNeSZFai98fGVaNyY1a3s8NFp9VSlndzI8Y3lgb3hkIUBl'@; put 'dDlRTm5dVkVXV2A9b1spN0IrJHUrX3pselQqLHMoWDBUdTI+NmNQNmNdJEIsOVlUWVVoYUQ+OGsrVUNSTUNfciVQY08jWXtPUHw1dlMmcUN3P2oofUBDfjJhcVQ3WGg7eSpXZHp4MlNgT0t8P11lSzZfQjVCYX1Rb2V3YiFMVyR1Mks3YVs2PyFtcVdDSC8mTFQ6TUJaJVE6bE1jMH4sK1RkP3Bk'@; put 'PEFIXyxBbUk5Xm1pZWAjNiYkRlo7LCg/JD5KWDVQWE9RQ09Ldk0vZypmeX5GaE5tdnVtaWlsM3QpaCoxXiU/Klp5WD9wZ3lWW2pZcUkvYC5HWHt1IjR8QkIoIz9JeU10PyteJE98RHY5KkRPLiZCb1U8PkdPLjJzMDx2fEJYUmglKStRPG9jfEg2aFtaM3Q6fU5KPnhPdl9rJWc9ekQ2PWJBR09p'@; put 'NW5PdS5kNW9uR0VLISY+UFN0bmshWm9YRj1CMFclTXwlWkxNa0RAP19tPEVdNWpoNFo6dmdTdE5uVDh6QH5jNHVpK3EhIz0xUnJwfTJHVHpHSSIkX343fWRLTClLWEcidipZa1Jkc31CSTBSIm4ue1h3I21mcENtN2QqO3QwSk9oVSxiaEhfUWVJKUNBQWcsIWY9NnpzaTAwZUB7bD45fDkid3l7'@; put 'WH1bPDpkR29VeilkLko1VCxhb3pxe2F0fixxQF19ZHpbcXY7WkglaFIpR0BNKG4vVHJrNFdOQ3lvYzhffSZZfV5SbTEwMkcmNSsxdE0qKGB2bVIzcmZtNkpCS1V4OyludCFKKGNpXkFKVXNVNSpNMDlLMXh8bU1ZK0dSJFVIZGFdeEBhIytLInNpIUwreX5JT1I0M3V4Jkt6RHBVRFBOZWA5TTlU'@; put 'bC5wLHt6YkA7MEhZWVJJVG9xUGdFTHcwNGlFbDtoM0coVkRPY0wjSkE/enJlUDx2aEsxUG5dL2RgdnI6Ui9vaC45IUd+JVp1LjZTTTpRMGVbZnJfQDd5SChoQHA5d0FTfDQqbSVXTGwld2l6eFZbJDdPZDR7MVEvJGVUeEwpejpgW0Z8IlJvXmBuN1dedTVPRC9uPHpZfDx9YmY9ekQmbDVhITgv'@; put 'XlZXQ2p4L3gsTFhCcH5rOGhHNzZxOkNUN2t3N1lhI1IpbihTbzQ4S2tVWXkmTjh2Qis5YGJNJThzRH1pKkxLcFh8WTtTdC5XWHQ9MCI/PXUsVkVoPSs9MD1dIisiRTAwRSIwMEZBITF5eyY/ZWhvd25XZS5lVk4hRiNpbyhTfmR5ImFiT11PSXJWJnZbPDF4PkEjSShpWHIvODRWQD5WN0AwaiVU'@; put 'JVRWVUhsck04TFdMR0BjWVAzN1U+ZCVBe281OzI3Ozp2ajNKIUxiaGJgSXwmTE4sVjZHPEQzW3hfLjZVSi8hW0laRS5WPlVmYWtGaWwoQXE5TSJXV1hCKyo1Z3MoTHpqXnoueHZWInhvRDUvX3FTJFJ6I3oxZypELFI4KmhTN0VKaltdTnYzZWNsdkw9Xn5MLnBGZClrTi5NaW9wKX4mWTFHTjcl'@; put 'Uzt8QjF0fUhEJlI5Li44JEFaaXBWPEl6YyxDdTxgcTlzdEVqW2BsMTFrcDR3ZkFwaFFDUCwsR0BoRUo2Ym9YKyR0TW5pXiM1MX1PMDhKPXFgX2hecXJ6S3w+dTIkN0J8ekhxdlJgNS5qSzZCRWEsZ3A/b2FGJExzTFBqa20iYCZNRmtscGZ3NCZWMTt7cFczamo6d05pQlg/TEZMMUdpIyxOWkVQ'@; put 'YF5kcXlaU2lyKT9YcFBoTVNIXi9DOmwhKSF1ZGcrdT1PL1V7Z0EjYEk1Qjp1RnZUZkdIZDlaWExXa3YiVDA9cWluNVVqKldhPzY5SEU2aChBMmYwMWpiL1pNSVlzL3luMX15M1BeRm9DZ1o+YTQ8MzJZIjBxKk9DeH51ZzokcWN+OTk0OncpdklqQmhTUFIyPyFOY0UyZ1E5IXtMfEhVYjErUS5k'@; put 'YzJgbUJdQWN9d1k5PGQoWG1dfklYOW1KMXROcXp8KVczYjVwMkBiUC9mW0I7QmpyZkJWVzoyZjx1VWF2RkteKTNeZDgmdnZ5XUA6WWtMb2RkeiopNTRudXEiWGZfbiMwelY2K20xR2R8T1gjb3lYdlBhQD1VWFQrOVB7cXR+NjMkSE0pWDJlZT8oYktqWzhWMls6dFAyPEYkRGs5aStsJTJkQy4z'@; put 'YEtpN0lTXzM0NWE/X09TVjFzZ0ZSNVFrZVk6ODdWamF+PlNTUjVJOEA7b29SRnRfS3dpSypGKSRuY3dPJFpzUkN+Qik0UkRsQWRnO1ozWUsjXkZpZ3NvZGNyIzE7UD5naDdjWTZrTUdMTExxRiZqPTgjMnx6SklAR1okUyYhUEJoSWtSIjU6dDg9P0VsRlZiN3YoZTslJEk9MT5NVjwySG9Jfjco'@; put 'c3Y2K3BWMV5yYkx6MyFpI0U9ZG1hVkBCO35HaTg8V3RRJncpVDY+fU0uUER4LzVWZUg5XnVOdzNwIzo/LzQ2REJ+P2ZmJF5ANngzSCZBKSVYeVouSndoJWkvSTZEYkRrLDtzMjJwWU5iP3oiV11jeltkUFJ7VX1kc1gmSCg5X1prMG8/dD08NGlwdkFxSFJubXA8MGJfMlpIemcqJHlvbjtDb1tQ'@; put 'S3lBOiVGWVBGdD8yJFVPd3lRLmwiVTUuMmkwKT0hNVM3YFdRME06LCVpTUN4dXlDIkEhcl9hIn5yXXNfPG1PPjNCQiVpZUdMSzYoSCwjWlFEPTtJbUx8UTlDWklLYmQwWTlSSGhZXiwkIU8sZXxDb3A0Tm9KaWNGJl9jJC9obm99WHZieD85ZlRiW28ydTxgcW1eTWYoZWE4KWddZyxQZ0E4VkRk'@; put 'VCksKSRkZ1B1bDlgZF96dDwudGJBVkIoNiQjPnQ/T3daKzZpTTp7N1MkcThIQm5ORHt0N2NKUHtQUlBZTnUzdH1MUG1HUHNWU0N+KiN3LCEwZThFIXZCOm0pT3dEJUR0VHhbaDUrPFlmR19bb0FaYFl8UzljPSt2UH0zWDRUb28qOTRya2x9UHtkQl45ZUw0W3pWMTBaWXIjb2lPZ184SjF5MWZ6'@; put 'OFg/dzMpaUlfS0smSX0wW11BVilgYFg+Q0VQQ1J7S0JGeyY2dyFnfmcmcFBUTnUselJCVzQ0PFteYEZHXytMeGF0MnhNQDN9I2cuPjY3eTdjd1tmQ1BfcjQvQj5lUnkxN2VpK3pJP2BBZ2NDKERHe0NAdTMpInFUa0xLOVBKfDdneDRIWjwqQ2s4bFB3QVlvdjpeMGtPNmRkX3IsTTxZL0d8IVtf'@; put 'PXlzcWFnPlR5THN4P1gyXmp8al9La0UrOzZfeE0oUisydWlrJnAjNFh+NDBaNDtUR1RxdCR8WmczRmlJcXBJcjx7bnx2TVhRZCRvZS9XM1RyN1YhQHhsZVdLeVtabX4/PjQqIl9QTDl4cjgsMG1XPDhwS1RgcFl7OVpCa1FrQkksQCl7aWlyZzgkeiRHcFIjJT58UjBeaVZiRWpPWzBlWmNTTn5d'@; put 'IX4ob3pETXshaDg7cy88RnhfbnpGRHJjMFBwT1d3X0MvQkU+djJPNlpId2M7RkNkWD1KWmt4Ll9VXVhbaUhASzIrXW0hcHs2WWQ6aC5SLDRhPilbc1swJWY5UXVlZlRLN1cwTllxVkMlRm9fSVBncDV2O2IiMGNKcUpnXjFDKzBpTGldQ15IblF4M3MhJS4sRiROaThgQnY5IS43cVNONH51e2Ml'@; put 'IlM2PkRNUW5tbiZWXXZlT0sjWmh+PjVmS3U9XiNrOEomMX1VXmpBWmUmbHlIdlhFOTFhQlR5TiFhKHN3QFl2aVd2Y2U3PVo3XXQ+K3Z3TGdEWWFURENsMG4oN30oXlYzO0B8dVZXQkU2SUI0IyV0Z2thayJ1Pn4xNCE1TCJZWFMwezxtL1hxKCZPfXpITH5gWSViPCFxTHQ8TDV0YFVCYWhaQ1E2'@; put 'bGNgY3BoJC4sekRBQjsuOnhUVFIrfj0hW3dBWi5LSWMvTWNsQ1h6dkFBZDNVTksvZDNRcFFiRkwmNCVpTUxnOSQ8UWVoUzxFMGYheGFdM1pTR0VkZkdgMkZ9SlhwYSl8YD17MEkqXTolZ3t7WVU5akFFVF95JHZ9UFdYSTwzLC8qdyE2bGlEMWt0LytsaWFAOkM5LnJNKEVScGxVLEx1VCx0fTx+'@; put 'UDFfNi81P2J8KlsyeCNSTFFoMFsvV3UwKy99Vy4sZ0swU0w6Xj44NG5jL2U1U3VEITlHaDlibXlSREdrV0pYU01zd29jZjZzaWVBSEBjVSJrOzFGM09VSlQqOmpKQHQ7Uz40TGpaWDBOfk9QZXxCV2t9Wlt7SjkzKTArUTZdR2dTXjMsUHFVR0hhSGdgeEpofkNGI1c0eC40c087JVRoIz1uWEwo'@; put 'cyNHcllbWChGSCtITHdiXUUwVFUsbk1OPyshOTZARDwiTUdAflJwPihfTU9tSTJsemF5R3c3P3NKKTtIVEolSXVLNSpbUWtISEciVUJLRi9TMkt5Jnh+PyFociFgZyN5TSNzYmhmbm1JJW1yKlR5PjlQVSljQSU+cntbZHpgclgmSUZ+VEFsLEJdLld+bVtlJVBgPG0zTjNqdlg5PDVBfDVyR1Br'@; put 'YCFETXZALjtpW144S297e31WIzJ2fVNEeWVAI1pHOE5ZJmlrXzt3ZTxtKTN4ZW1XIy8jJjUkYTtDW3h3ODFhNmBsK2x5dDxpImxINCt8Ojs9MktEd3goTS5deiI0ckVOWiJtc1leUmJ5IUxJNSZ0YnpOYT58e3MsQWJfOn0mLzBfNCVpcVtFd0ZWJlZVSWdlbExaeW5WZX1ieEdRUntnaUhsZkpY'@; put 'dDxBLEROJHNVNHdqbGtwaHNJY0k4STI8RjM6TSJrPy58VSg2TXwlVF49NT0yRnx7OjpRUVUyW1dqQkpHUD8qNVRlWElCTUA9Rit9VjVMckhxLEZYPG9PN0tZSlpTNChscCU5c1hhM0w1ejgwTzorRTpPXkBVYlBiVmlAfEp1fEVBOXRLWjZESG43Oy9HMVtJMks/dFE2dnFeMDhHQVk8Tlcsdilo'@; put 'fTUlOSskNihlME52YzFYVHlReUJzWlRnVnM8TT9AcmR9NUxtJGR7OndrcG4xQmRoczZNc15WfWNYbCNXKnx5OVB1L19tVURHKmkjWDIhblc5QyZXLF9aZGtFeCt7P0pXZm1fO0t0eXY7cXM/YEtOOlNWb29MOCQldF5obzpXSjl6TD9fZXU8KGpIWnQyUmw6aT9oT31iJDRsJVRxfXUlM0NWfiFe'@; put 'RT5KPnVlK0crO1QkcmMlXmMrUzx2LndmMm9eKm14YG9ifD58QikkMjtOWzN5TXFwKUUoLFdgRjE1VC5xInlqdXlHNyFpXiQ+YHxpOUVrJHpSST9hdWdPaVNQemo3TFdUQk86aSlFPnJWQERrR2ttT1hvNWk9S2NpMGxeb0pwKGoqTV1hJFtIX3o1ejhgRi5GQGhoQEQ2TnBJVnt6VHA5RSl6dFBq'@; put 'QzR9c1F7UFI9bnFsRWxMSnBDcjxFWik3Q304ZnhXIUhXKkReRTw3NltlOVAmWTooM157eT9GU3kiPjpLVCFuT2ZSZTZfWTcra0pWUj5uVT1DOmwkTlNMb05zcWdRRlM1eG11eTNbJT0qKj1kLmFTZzZ4XTVKbnpnfSJWe28vTGFeSG1CdFkuPD8jIiQrIjQxPlgrbEgkNHRkS1JDa1VgajwqflIp'@; put 'QkN5cV4kYV40RmNvfVVSeldQN29bQ0hTKTR0KWE8MSE8ZDR3e2doIlovJl48W3tnUVtlK14kVHpkZV59XXtOVWxKRj17QnFaUkdeRjZCM2t9S2c4NzdVTWlQcFN2WzZpbHJwPkA9KV5qRmBbcixmdzhxLDpsMDAidTljI01sOXpTXV1sWyhoa2VBXTVIcyNBIUNkUmEzNS5ncGdGTH1mYE1AWD08'@; put 'W2wlVyVsfnZeZnNYQjwubXw6PHNQNExRXSw3bTspQyE9fk5GUyl6Ki98KlRDIWteXUdRJSVtOiVHaENid1szVm19Tjl2TkR+SCJeR2Z9RnYzZVhydENlI3d5P2ZpRSQpdEUxQE9BbjFUZklELFlNKmwhKmY4JiRoMmw9XiIuNE82Ti5lLi9EcGB6RGIjQGouel5TPl0pQyNKMj86d08pdF99VVhk'@; put 'JTFIZHFFLDxDVSU/UH4kNC8rZGhiITEjJntkRT97UWwhUSxeTUJ6ZnJGfnVkeTs2RUJSa1NZQFJjSjI5MXI1JkMkTlh+Y01pU2l4UDN0My5QVCt5XWg5TCJ3M352NyRtPT5sO1tvYXpMSj81VzlAQ2syPUJWPl1pKjh1WzRvQkwxN3VRWEtqUzk2cytxVUNidDBDKDppTUdlfjtdYUpGYjohOUF0'@; put 'MCpPVyRYR0oucE9YUzpaWTZ4Ln5kZyJkUVJ5cT1eUCtCVj5RfitVLlhqbyhbYG8kRkdnWmxAL19+UlZBU1o6RSZOXWV+Tm59bkJXb3t8bFpsRGlrRXxORj5eWkxMQnRaRD93JjYiSFZvQ15yTnRTbzxfQ0xROGB9fWdnbmY0b3MvQ1hlSFgsKCp2X3MlMntAfjQ5KjwuKEVhIj1qJC4mOElYPH40'@; put 'WS9PNVdeOHlTKE56eyRic3YyRjZtamNMeSV1YHxjKWp6bG0kc1t6MChjQU40UWVoemNLfGZHKl9hW0A4R2hyPW4qMG0xP3hXazljQkkiTD1UPmg4czZ4RT5oKVNKbyxiJW1IQGVxXnFDKlpBe10mU1I3aStqOm96e1RLQWZYXUd1OD08WT56a2ZiU0BVQzZgb3w0YzdXPERSODd7TVtJSlQzIX1l'@; put 'dEw4LmZxQy9rQjhjdiRUSyR0K35xc1RPJWdyflNpbnw4Zz5GYkh1QngkeVtXRVJNdGtZakRWYSYkcCJRLzFMJmtwcUJBfGJpPE8ra2txfVhrRDx1RHFXdTBAd0pOWSVYfmlRZjQ4MW9tUiMoJDFUfiZ+K1BAQlRXRShXZXR7VV1DSVMxZyIqcX1OfCRMejo8WVBoX0REI3tqbTBkZEJeNzIxaD9D'@; put 'TmRPTXtjVU1zOlYoIT1GMDVpTzRfYT0uZCxmV34sKXo/emtyTUtKVTY1a2VhX11yZT58VnAzPzNNQD88cUtORjRASiY3NG48aGVFbV1DUXRPYzk7LlRtKTchRmwxM35zUlViNio1bkttbTFAQi94ZVNrRzUxVnhhNzAsUTE1WCNjPmEyL3xRci5kdE8leCE9JGQyT3EqOGpUKm5AS0wkYmdqVV5q'@; put 'WiIzU3UhVjRSJlE5c2pVNF54dH5lJGQsYWM3TXh7JC5Acng6YVtFTjExMXAwamRAdD5YU0IqNWZYMWdtcSsvTnM3SnZdKzdjal86KCJXNCxVfSEicjleS3xkYGZGczl1TVBnL3dyc15lck1HI3R8bzUqc31QQDRKZFhWWHZibCNYKk8iVlI3flF9c2JtbXU/YTM/NjNrbEJHcz08SThfXjpOXldi'@; put 'bmZdcFFAdSV9KWtIK0xlfkFwQjRKSUAlYiZvbXEmb0s0akdfaDsvemdTWSZGcSRrKTNzaUlmVXwqWGtFRDx8cXNMWnRCb2FyfCtbPCUicV41WHJjR21oIyhDbnFuNztFP3ROaFlOdEp9L1BNNEg3Pi57YF0kdiVKK2tsW11hVik6VGhMQnIzfTU1WlteMG1YJjd4dllCZD1TNWNKbn1vVExjfEIu'@; put 'eFB+VWJMP0drd1U7bVtRJEZVfC99PixaJGxgeWdJNUQvSyYlYU5OdEhvZXdzKldiSyZQYG16R3xTaVUiND9wRW8hfHZrdyo6RiUsOTJOdXBvfH5MYzwyPjwiMDNEcUhsRTV4MW4jZD1HcDUiNTVtJT5KS3d8cyFxNn5OezRCe2BzKSRRaVJnSCR6cFljZiR4VHxvUG9zMis1eDpGTE9GamQ5ZWd3'@; put 'VitjVERxPFk2T11tRm48cU8sfEFZfDt3OlRjI2k4di82SnJUPiNPSyFaZSZiYzFsQT44OzhbQ3BgPjRtYmJZcTNaNXBDVC5dZig7cG1iLDFEfT0mRCtLfTtWfnszUiYwSUN1XndTbSV0fiR7Tkh+XzhrNjYiK1A6Y2Q8Om1ePCl1TXZmbUtMYWRrRnQraUh0W2gzRS5udl1VLCxyTjkqeDhZajZr'@; put 'dFM5QHt6OW4jdzNXQztKSDdlVlVQVmhHKWpgaD9zbjplRGs/SEptSj5XXT92Zlk8ZzNJNU18NDtvVVpoa2N7JkUmPVJlP2Y3IkRSV2Ukb0ZPaHE3Z1l1UTo8KnxERHlKUmpDVCllKSxKLy5qYF8rb0xAYH5MLnh9cXA8SD8udDg+fmple01VUCUxKH5rNF5dIyg/QiJkOmtMVC5lXWw+SFcyIUlB'@; put 'JjVEWj4sY2FxTzJ0WU9scnZ1PF9oZC5EUnMxOHsqUDBhVDAzLnFBUzhVQTM7KHJoMloxLnZXczYmYFJzRX1zTSxiOChqd244ck1dZCFMVV5gQl5NbVoxailVWiw6JmUrQHRqPD1XJV5kRD1GV2VjfjA1Ok58d218Wz9Qe1F3eG4qYSF6XWBQb0FzaVRZWnx2d0RiWS9MfkBJdnBVMjclVGFofShJ'@; put 'PEJjeEp9XmpdLEF7N0UvZHhDbGAsek1yeDxAazFzLE1oVm12Nl0peGNjOHg/fEJzTHBYWVZ8ZSk7MnVKLjhVSnE0aFo8bCxxfGo+Xkk0OSZLPllnbE5GLyovMXIha254alhYbmZLMTVkY11AdClxInt7InhYVHVdfFEhfkRNWFc/Zmw4Vn1RaTd6Z05ZaGtWbzlxZHd8N3xUYGY2QS4sRXJ+X0R4'@; put 'ZE5FVUB1YkIqTno2UUoudXFyU3VYb3Y6aSgpb3lsN2Rhb0lZIUNjTnFZL0dMYGxCfkklX1YwODxYbSEsPSklOFFTVj83O10vfjw0eD1qZFBIMTAlUn1wYngjRXAvUkBxX1t+PHZuVEZ6MHQoVHBbRiJhUkx9cUthK3g+e2EpSFo8emtHPVE2TW0vcHRNRjNTQkQ/bUpNKE56dmBecFFVI1BjbltC'@; put 'O15lb0NPdD1TY2V7aiQsVEtHXXIpRSpIdk05WDpzP0l1TSUoQEI2KUpAVGVjIiZZakcmdTwxX05iRmt2UUA2MzxNL2IzTE08aHxIMjNvJkxSbjNWTjZ3azc7QmtdWG9yW3dDXnIlbjg9d1pvaypmUm5WIyRaUUBYdGBIX0twQEl9QFFdQ2laanZVXV95SWhNelhUPVd0c3F0RTZjbDM8ci5oOEQm'@; put 'U3t6Y2ZiMG9JMEJ5NHZAcjdeQishKCosKWhibDJrZTZkUlZ+bjo8bXd0Ols8dkVBcGg1fVJndkdgfSolIj9jWjE+WTNNLjt2RHJ+UmcoPH0vZXxxeHhMVkB3QShpPE1XWyI6PVRIWERlL2I0Lzk0OXR4TjddITRlUzFhKGhKQjNUTmZZbDpgYHh4JDpJNm14QUxJSH5FaCFVdSpGW2txN1I9JHlR'@; put 'KmxSdWdzNzUuPF9RWF17RHxlT0JyKG1bQGd7dXYzVD5JPSxKdTZtSXVhSj56MFNmRUEoIUpKLHEpO0doanMvQixHeFR4JEpOcyN8VWEoaUkmSTFGRXI9TW5CIVJna3FlNHRpQ2J+V2tkZ3lyci5+TzI3eSk/ajFDZ3BwL1E9VSEkQilbWEVLcChzMHZ7bih8Qzk7JSRXIys7SG9rYj4hdCZpYl1I'@; put 'ajBbeFsvI09NOjtZU0U8KyZ1TkhRNClnJiE1d0hJb3lBej5OU2cqfTY9I15aZ1poY1h4Uz86eiFHRmJiXi48VywqTk91XlsiN0JbVTlgezdAZ34/aE1jYDpPTnowNlo3MEtaLEpvMyYlcyo6UHoxej1FODp+YkhdPTt2cGcke1J3OF97U3ZaPzRpVEZYWDk/a1FPe0ZSNGNjWksiZXdFaXVTRGZ7'@; put 'eyxSVyUlRUV2L1dsQV1vbiFyaXwpOFdCIVtJcy8kX2YmbDpXVUp8cFI0JD5RWmFoaWZWXklYbFU4JDVnZzYrTnZRaVghWD9yUE9hTnlbTmt3MDh3MHJGTCpBYSlqZ24xSTNgV0E8SVNRPFp6SEFpOUUmTD1FX2hENiMwLCp3YTUsRHJiMDQjZHorb1pPPypbajc3SlM/dmByVmhBS2VvOyZFVHdb'@; put 'L0J0a1FfSTg/djsyLC9BLzIsKVAjOk5NYF9sPHNUWGt9OFNJVE0pZEM8eTs6KG1rVm05fVNuIixaOlY0QChQQz5APSNaTSY0PkxRazdRJT0qK3JQW347Lz1MS2pxKmk3P1doImo4bCl5VExfeUx6PW8pQnBHT15CMVgwRDR9Zkk0XV8qZ150SGkqXWQ/Q2tXJVh2cX5ZK3hbaklOJFAzMH09Z3Na'@; put 'OHw9KmtTWXllfkksTHVjUX15YTFVJVNHQkpIVGpRam1EOH5peiFpJk1Ud2RAU0prZzFaa3s0ViR2cDt8VCxZaEklaSYzSFQxeCp6ZCN2MkNEJDRnaWdgaSNITEBxSFdWdEtsSWpSfCwxRlhBcyVMUTcsJmMxd1c3dXZgJFYibi4wSCpbZVt+ZUpwUltyIktuajVFVSpzNkReRUdXRE1OTUI7TjFl'@; put 'JDUlfUY0QF5pXXpfM3FBXm9DJFFsJUw8VUk8dzJXRCQ0ZFhwNkMqMzU5eTBTLlF5e1UiRlJwaiJHTUtxVFdfKkR1Tl83OVNOWl9BXlloLHFWTEh2XkVial5uJVZfWTs4OD1zcXZBOSQpNV8rbmluRzk7c14mOUhFYHgyLERkW0cuKDJjV2AyMlBiWkRjfVBdfU1He3BOMlhkZDpGUDFTQndbanw6'@; put 'cndzQlg2OiojSUsmXy83IXZTIXQ8S21pIyRLOTc/VDVTYDNpYExGfj0kZlt7ejxVdzB8SEF8TSRLWlgqS2REVF1nXmIjamt+QlNjTnA6RCJaTWY4JnRQVWBJKSheTTd9Nk5xaDokfCE3O1lNO2g5XkIqOlNrdmFjV2Y0XjRAOTVtTHliSz9+dVNeMjF7O35dOXpxQnxYUHx+XzJrcUhBYD4hR3RF'@; put 'TGpXL1ckTkN6YUM9ITpqV29oIWdrPlsxbjNXWVJQd1NbSkVdKkshKColNjYyNWBELEJHbmcmXSRMI2IhWFRxNVYlaUpLMlhsRVk6RjFNMU5fcnFpdllCSnZZIm5jTUN2LkA9KmQ9Q3lsREF3VChue35AP2pJMFh0Szo6PmVwb291VzhnXzQifmFHc2UvYzklK1pzRz4vVihbbF8zSm9yTVV3cyhG'@; put 'Uk51U1MxKTQ+ZmFYbHR+fFNJOVpxX1hpTCE6SDQ1fF1rUkM6STZeUX13YFFoSUh5e2d9ekZUUiRgMU9kP0YkbjRiNThranN1JTZGXl47KEtYfU02cmZ6cFc7dHdEdkw4bTdldFN1VnJuc14kMlVSa31dYSVrdi9sbVVQdjc+cCFzQWAoJHVlM0YmOVEseHkqXjJJSmcyemBEKGtCSXVbXTlCTFVN'@; put 'T35RTjl8TUZBLmQ+Uz4sQ2lAclZyWDhLbEI2MFF3YnZYOWpYWSMuI0VuUE9BOlQkQ0lsODNHKyFHdEhuTENhY2F4bVNYQ3VGYVBvdz9ZYFReJVclPFttbmJeIXBedjx4bWw2OCoueiFxPCRYJkI/NDxKZWQobWIzNnN8LDE2Q2xKS31YailyQG8oWn04KD0ieW9NWXdNQGNoS0t7LEhMRG4uREAp'@; put 'V215MmtLTW9vYXN3U3JRJiR0QFMsMSwhIlUpamI6Y2c3QUkiZWU6I0w7ZiZHK1hUV0FNOHheQntsPVhKKWsuL2UjKTtYQCZsZE9oNT1hNVIlZ3h1Ky8la341Ull6M2c2MGBAYVhpRjJuKFk3eERHaEcsRWJzOCY5KFgoQz9scXEqREY0eDczT2dJUyZTKlM2PDV5RUspbz1YIUthNUt6LFBoTm5J'@; put 'K0NSRS9zQGAucHBzdHpuJXtFUTwsYThSPzMlRCtvUkxSQzQmVk1tc3FKVT1uRHE8QW02T2NjfnFTJmtHfXVAdU92SHJ5WWMvem0yRl5yej1sKjwrTHA9PTpwOCgmclA6OFRZeT5bZUY+dkQuN3pdJC9rQDRlTHN9WEgzTitLalIiOmg9K04sOTomNGJbQldYV35MXVdbW35RJl9sRVh3KDRoWlJ9'@; put 'SV4mZFY+QDJwfi9idDpwfFo6SnJraj9vMDhja1EsMVpOSlNLVmtfRSIsUnE7bkNYRi46bl9nayp0OS9rWS5eKFtyMm9TMCZSYyo1ZDVkUSZzKW44Jjs+aCVyN2h6L11WbylwS0lTKl8jVmckSj40SnU0XiZ9Z3UlM3NZU2l0e08rRCpzI1RFUFEjdHB2JFR6eXRpaTxPYFpoXSlrW2FTOW9hblt7'@; put 'RTZ4VypsXXw2aGdxNGtHW0tQZ2xTOTAzY2Y3PHFFUzIxSE1jUmpTZ1Mvb3RHaG4lbTdWLGxvV1YpQTQvNzl3WyVKVyhCY106Q01wTHBLVFNZTkErUVlKY1VaTThwV2A7cX5rcWQiS2gmc196RHNzY3NrQTt3b1B+SFU9XStVWnlJJFtbRE56Zjxrck5pbVBpUWwyVyQ7cEJMI0RHKHBdRilmUig+'@; put 'blYyP01JL3N5IXZMPmNEK3RZel9wLjZMKkgyVDVhI081S1N3bEwiTjlMRCU7ZlUydFVOPTJSfCEvdDBENSFbaWQ6JCohLFdEXjpmU0ZWVlBhWylzXUFtemFkLjNlR2t0aWR4JDReJWtkU3pgRl0sfm17fEJ1MSRMe31GQlhxcTUwWE9rc1o+QnA8cmdhekpVUSNET0VieEwzVUtNaztWUU5KV2lm'@; put 'WD1KISxkRGsvSD9mPVIxOWNMTXt7eHZQYStONnU7Uk8vS30ycVpzayt3b1M2RCUlIjhWUCxgZjxCM0FmaERxVU0jPz14W2phRUorY3dKIkJuPmtYcnImVXhEJCVFKUFgNnBQZzM8bFtWSHVyVD41SEl+QiRdUnUmJXVWTEl0Iz8pb31oKj4zIUlnQXNFai8uMFlKb2QmIWAhW2FxPF9sNiNTTVFH'@; put 'SHFNMTAxT2VfODB5flJxRiQ6akBGZV5RUko3SChHJm4wXnVGN1pOLmR2bCt0QGo3YyFzOHpOKSVJZ1dsNFdjZSNwTlZmZCVsVXBhaWJpblteSi9yWjl5dmhjSDMoVkUub2V1MyoufWkqXXtyZDg6LGdTRGIlPCtdSVpkNmw4bzElK3xbR0VWLlclb3d1cDN9Lj5DUjQmNktRVT1XMS9aV0pmeV5t'@; put 'MH0lSE0qLyppaywhSHhVJCI2LzZzSVBRTTolU08lVlRuWEA9MzhAaDMrVS5Od1gsZjElbk9PbVMxcyI7aTsuYjUhJW1WZ0dybW5uUiNhOC4/XnQwZCg9Zy89Py5yeFRISlB1WjF5eVQmXiZCTEt4TVZFWn1ua1NpYUEzX3paYykyfkIrVnBOfClSU29yX1BbVWNTQ091QHIkMTI1eWglZ29LLykm'@; put 'Om1nKyZPSFdiNDlza0cmcyQ7UGxMXXxiczVPOX5WIm1LdFlySmlmd2VQcDZpb25rTEUuejdRVChFTWYscTI0VWN9bHl8QU1XcyU3IT53ezhKeU1zKmwzXnlqa2ZNbGo4XyspdUBgXWJ+OHRAUD9LeVh0MDprMk5MWThPaGdJNT5PPVlDJThNfShMe1IzZFtUNCo+InxsaVVhQHhzd0cpYHMrIS97'@; put 'QUh2MDM/I0Z5d21VV2VycyI3W3Jjcm9ge2d9Uz41XnRPUUw/eXUqSHNlfHhgI2tTTkMxOEVUXnxyNWZYbWx+Y25He3YwNC4jQl1EOn1MKzFPLiV6Ok9Md2AwT3d4eG4zPygwOTpRcCV7VGBiLG1pVEllVnZzKXhxTWc8fH06TmpjX1dydWpjfWFGbFZvR1dBMU43Q0hhKG51P2s8SGpiTllXLGhk'@; put 'RVJgQy4zJn5GVjRES3EqY0NiMTdwPV5BMC4/R0hfMSJBVHFRXkYiJkxTIzovan5WbDZxRShac3EvcklnPG09bDRAd1VzeXhmVURQXlclV0Nod35+dzY8VGcpVW43OSw2OHRbOyNKezVpVTRwUGBBez9De0xTRk9YKzMhMCJEJH06SEpuTjRQJXFWTy9yP1c3fUFeTj1eXVN3b141UHlMcW9UMzJX'@; put 'Omx4TWRDLGpuQF8wWD5Ke1puUms0R3xmIWFJXU8+ZjZDQ317dXUxWHxaRHxAUiRfWUBzcChvdHJNS1B0UkwoYnRYflVAJEl3MkdqTlIxNzNuQ3ouXzduSmBpYyp1ZD5DbT8uRl0hLnYjWUVnUSR9VkZyaEMiYSUzOiY+IXNYYiZGX2ZuM2B9eTZJWSUkKGxfQnd6ZSReVF0ke25nJVYkJG18dmN+'@; put 'NikyYHZZRG9Ge1EuU08/MV95KyVtNF5ePCUzOGMiZVYuKGMyYEBLdVtdfHwmTWpiJUJ9bTFbZCZHWDFbO01HMlRiOWJdZzgxXyRaYTd4aXNjOnNXS0c8djJ5Q0tDPllVfUwvamhpTyFJKkM4LGlkaXEjUGF9W2tYMUhCb0Q+KTRUc2lDZDkldSE0b1pWenZ6byFCSWdrWHU9X0BCSz9kQ1FfLiV8'@; put 'WG44Z2B4dk4zWjZfVHVQOys0QCJsKXhRfiRVKXxnfDdoPFcxNjQibGdtW3BYTyJaTWZVJVlRUDRQYHwpaExGaVJwKlVvak1hY28+LHw1ZipPWjtoZSFzJFgzaSkmQChAOkdRMXY9JldWKz9gPUxeSDd2IWs0LylsNF1NJjtxNUAiRmZ2TSwpPEUkS1VNZ0dkWl93Tmd+TGg2QzpBcU13Vzlhd0Al'@; put 'UzVpK3w0LCVVMm4vMXU5WEV2fG46eFQ3P0tAR0UzKkpVV1orPSI8NThBOGpeSjFSX21uWmtQLk5YWy5gKVopJDt2LEJ9bC8iIz1YPU9PU3A+KWtgJU1XPm9bWGM0WGU7bkghUH02ZXtvLjA5WCFOX3A0MGhXfUw1Vl9HcTtmV1JCW0tLKGBSe2JxWmxyYz5jJi9DfF9xR2RCVjhDYEFbOmAlV2k9'@; put 'SEcjUnpzOXFiZWNaJGooPm1bRmk7YSF2bHpTcnh4cVEuMnxoKW4sRn5GS3ZSSjNZcz5+I3U/MV19fkBqRFQobi9YTWZrWFVoMjIldVNSdFBTWnI6ZlUybHpodzxhd0d6O2AzWGBvIlhBSmxgUyReQUYuPWBUZTwjcSopTk5Ud29SJnlEbiV8WCt4dGwqPisiKWxWa0l1YmgpWDNGMEo8b3AieHY+'@; put 'TiE7UWwwNmhQcG91VlcwYUN8fFp2XXFnc00oT05eLksrZ01UcGdRPzFBI3E5MzYoM3JSZ1diMnExcVMjcE44YXZBa0p4JDR3Q18jN0lNeXVfKUk1KmE2dHxMVjRFQ21BKjpJbHwmM2V9eFtzQ2IybUVHMywpc3k+L01ZSTpZLDpQTVZJWjdtRWVMVCJOKnYufWtWI0w9eylnXztkanRPSDAoels0'@; put 'T1pxXTxaVk9NSEswR0RReFFWLGU+R1ZXOCxkaUF2Z1NBVjptY35TbTB9O08sP05da3RkZnZZfU19W0NdaiZYXSl0KSl0ayl9I2VwJV9MPkB5XXk7VjVWR3FNYFl0ZncsbEQkPUJXZH5Td3Ffe25CS2JUb2ZqTkBTZ146PFNtSWo5PXlxbm1nKikveXlYLyFMdXt0bkM6Onh3QGxVUTNJImRqVH0u'@; put 'MlJrTiRjfjF4dDshMCg5PEohZTh+WncpNXt5Pi9pQFQvR2J7S2dXaXNhVHYxNnlPLj0lPjkyek9Hb3JDKClCd15HL0B8UGVSbnh2YC8reTArSFV6S256I3F0cE9TXy52Q3k9M10vcEwmOSgzaTsyfl1FZCpRYntSPFdzLGZXIVIkUylSVmhtfUJOfV8kZTNTPVFpYUJhdHBDJjZCXUNUWDFsc1pD'@; put 'cnBnXnA1K2xIK3FCWzduMFV0MWImKXYhZ114SkxmWSVXdUI5b25yUXYyR2khRmxlfTVMLjR6e1I9TU0laTBIX1BXUmVtNTRQd3pOQkNCW3IpVVpdcVdCTmNmYEl4YFhFQ0diKlAvPUZCQHs1NnRTfnI4InxgMEN9eF1KYFt7fUteayxdJmZwMk5nVlhsRDZOYnJ5LHZLZnp2OGR0c3Z9YX4scXI8'@; put 'V3BWVURaRHglbVR6ez1APzgqXjVRXkAyLiQ7O3AyMDt4ej1iW0ZOOU00Jk1lWy5tN31SKnV6PW9zeTlUbDFzZWhiVERMJmxvW18lN15LfUM0aTtXU2hhSSt2bmhlSlt+MT19IjBCW3U/YiVvPE1RW3JSVjQsXkZwXWElcl5bbCZVJTJ5Kn1YVVlnWVZRKiJ8PGo6bzg4cEVfK09UNkw2OEhgVWk1'@; put 'LmpwWXE7anxgaHhZejcqPSVzRCl5P0dbOXZUbztsJHNvelJuaWFfNVFeWEpnUElCVn0pKnVaOEBjW048cVRCTTtTVGVVU344UjFMVTdWbyoucUZgRj0hU3hPIm4ycnlWYmE0XmN9ZSVzPXkiRnlBUlg4MCRfVEkkO14rP3RyXSU+Z285Wj5hMyxMVCliRE5nUlBrJikzZWdqWz9yPmxvOjhkRjY+'@; put 'bjl7aj9UPC4/ejNGWFNVWWFhaDBsZS4qaiV6Y3JvcER1QV5gJkMwSDYrOkdmaEpfXjt4fXsoY3U5TDhnanA5SHJpS1VsIXJbRH0lQT0qJiVlbHVMbWlCWEJ7eWB3bDVJdSlFJF9hTXl6JmdkUFhSPGBqQ0w2QlVQcDx3fmtoXjhgaCpLaSJMR0NzWEJEaGdeRGppOyxAL1I+TUs/TFVsVHh2MVQy'@; put 'PStvc19dO14wbWFUOGwwYF95M0Y9MExJd2BWKFQ6d017a1VAaTN2Vl1rX0JyPi9LPSEpbzpRLiZzdVlvNGRES15sSEhCbEFiIS86NCFjeGpxVUB6NFEoNUtsNjE/b1dERnwhUyJ6QWxqJjAvKkIqZiUjQSZ3Klo5NFp8WnchaGA0WVd4ezB3cnp2NClMeChqcGBWaHxndTM4eCwvYS5xcSMzIyhz'@; put 'UFtXNU4kW3VqXitSZkNCUT46bSxlT2ZHalY1MURSL3ZvQUIjaU5SR2tHSVowUWtSQlhLREROe3B1ZmppYGdrR2hEeyJOaV4/fFc+aDN1X2hPI3kmRHxxR05aLGNQY3JicW8sKm9rSiVeUWEpKEBAR1d7dFNKW1VSMVAxd2lQPGUuXVV5bGQ+aWQlKSFTcHprI3srPT9Bb1s6WlNbUytxNUVtbDdY'@; put 'Z0puLyh2fjpYNk1kSjopO29QNT1EPkcsKmdwOXs2OilgS0ZuR05jeU1aYUhVaDIsYS4wYGxmRWwhd31MNzY/VmxtZX12OGJlQ1RpVSZYWTB7Y3hhTyZSYkJ3LDNgI2pwUi9EN0AjWmdBb2RIISoxYFV0WjVCV1c9c11BbyJ8MCpOMXskdVltSFhaLFFOK1I4cU4lSGVTJjROK0EqIWxgSjdJJmV+'@; put 'YlFZSm1SUSpYNV0oRipYciJzTU1OM1tKZHhhaWZocSEoc3Rnd29VZzRjSz1LaXd3bW0qW1kjdCVHfG9UQGdIZ0JpKExeK1poVlFmbEsiTGBtfT1ib1lkTTgrViVzVFNFb0V2Lm1pVGA/cz4iNUZMW25VaXxUaGN4XS5PU059ZUJTQjJBYnxOITt2O3Y7PFlTaEVkd24qfWxqbml9an1qJER2XyIz'@; put 'QDtBcTtRITRXTXwwdG02MWZvNkBBSS9RW0NZTW9NezdvcyM5dWswKiNmKGplJHgqJGYlZihbcVg7NFd+OWU9RldWI1pxR2VvaVMpISpuKGIiMEphX3BgJEUqNXM0fFpVY1tkPW1ze2NsZ2QyOiw4fD4mKSxRW116cG91clQqO3xLMVVwfUZJbkkxXUxkY04lKW18K0FuTVUoK0E1TVE8YmlwOnUo'@; put 'aV1WWWJtL01hZSxmeVV1WGFuUU9yYS5WV0loSkBCLko7KktPJmQzUCM8Ym1kNGpSLiVXQzZLfWo3cCwpZSMjIyM4QylgT3hiQzRbRjt4NF1YPFFrNkxoVnFwRUxMKzpFWkFNOylXUEs4KFEzOCZXMmw1NS8oVlhHWH1nfGNdZi8sND41VUtHKlREKyRJXSJCRGcvRWpoU3JFTWBHNU5eYUNgKzxA'@; put 'TFkhdXIvdTdwKnVrcCorZX5iKlhaeT9ZPWxRJSIoJDBfYEh3b0JUNFlFSHpmTVt2PkxuJWI5TFZgIih7PSRbZW1rIikpYkM0Q2BzYmh5aTAua3NDdVslNzNteGptJCRTXVoxQEkpdyRaPlgyaTtGMyxiTTtGVHNbUFVMblR7SyFDazxjcyxwbTYpKDloKi54Z1NFNjY2TXUqYFhnaWs/e3FZcCZx'@; put 'RVlRM2hYZ3J9M2BNamolYDU9Nythe3wkSm91Wko9QSMhWiY5TGorIk9DYmk8VjFmZk1kKUdya3tOPkhqfVJtKn1QUEVdPGVJKGQ7WGU2Xi9pY21Rc34qU0JfQnhtV1N4U1JhVXs8OiliS1Q5KWtMa0NGdkQldXBTe0FGKGZKWF1qYkpgV0EvITZpMFdhNjNRdXdvPyFTbGdhNlY0fF01M0YsNkU2'@; put 'WntDcVFdOS9APF5waWw1bG4/UDs9KipLSHRDKHoybEMzWUhENX17dDhzL1A4eEwwOzc6Lnt0WmFENiNQaTNsOERbVmxHW0U7dlszWVlBVkJTcSleci9zUWA4Ik4oOkRGJCRLQTJlaUg9KGY5XWNFQUU3am5UQCpJQXFEVkRfPkBBS0UvazV9VlZYW3JHUn0oQztoSUh1VTU7PW1XIXFufl88Si5U'@; put 'fUsrfVJTaDo7ZiwuYFIuYHdqMkgvdllsOmhkaiZGTzlbbD5LcFlIXkxWVXQlRWhnfjhGRFB1Oi8jeEI4cylQUmFJInFIdm9CQz1weWlZXTMoN15VRnxffHl1fHdBKWV5PEhFeyVvTylgJl9sQHUzNmdYUXlVI0BFMzkzQyVTYTN2WDtaLjtHUmNJXiJjVFRgTyI5NF51Y3h6Nj92U0had25jYlRe'@; put 'XSt0MjdhJmxwZiRSOjs9QitZXnt3cUFTJC9aXWdUOy9lLC4qXTR2ISEocmtnUyxRazZ9cSYmeyVhLiQ9bz15WlFMTF4rOzxVY2dUanE4UGUoJk9sQno6SGFaTiRhS2kpLlNaUk9FZDc9Nzw3aT14dC4sKmcucnoheDliLDxUMldJVkpOQiVMTkFwZ29RNCpMI0B7QFtZZVRbU0Z7Im9PRFQkcH03'@; put 'VkshezNyVDtZTjRqJE0wNFlPIU9gLGN+Nm9MX3V9QGtqa0A/XnwlNHVMb3p2PCwrRiR8TlFuPyw2Jm5XQjspfmsuYUp4NnFlQWAvdkRNRUVgTWl1b3RHXzpjL01RVFlJYmolWVdPdXFqS194alVFd0EuaFVFUWl7aixsS1RJQkM/XnhkS3t4aUdBdl1jd10sT1RGanpoOltVRytfVSgzUEppUitW'@; put 'Mk4+d1lIJW8wPzR1LHZzVU8+NXclMUJSWFNnLDxGeE4kT1slYXJuJkBHeHtBZlloJlIpM1RiXVdYVndVZixmZWc8NCwwRUpMQWk6fWNtIWlpTkllLCooPHZgKiFjNz9icGs4Ml1tdzR0PWU/YCRSZnZ+e1prOEx9TyZWdlQ0TkNQMX5beHszc3lefD05TzF7VzFjZUEyfDlRSX0wfUpHU1tuczJM'@; put 'Z1NlSGdQPWwoKWB7dFcrdF0qSE5vIm45akhXR0wwSWx8VWtdPEoqOCRuPnI/bmJYbWgsM1hMIkpIXmw/RiV2YEw5XyN4aWhHTHNOdV5tWV0/clEmayQ0KkZDZlV1QVE3aG5RZChbfE59JjssYSZmNXNTVXtgaE8kLD5bayhsMUB8YF5IW2gmZ3JwOEY1fFB9X0dkT1FmU091Ilg4eEFpLCNxaHE1'@; put 'Qil9VEx6aVN3WzliL3hZNll8eV4qOX1eU0l5YUFDW3pzSnBFNlRIZm19ekxHUmFFdltKdE9lKGVDR0s4SXVocHF2NCwzU0V5OTZfWHwrWjplLjUqT1liRUB1PD9qLEJVI0hDWyMvYjJsNT1rdiFtU1tuQ2dAaXgvZyxPMDhmT04jTXNsOnpvXndyYkUiUjFUeThSSnl+ZzNuKWVzdXAjQlFTfFh0'@; put 'STw+Q0tRZXZNYVNrSWt1TjM8d1g4LzZsRnsrYk97MCx2JmIrNntLPUc3OyI7IWp4LFo4NT1uUkBdYj8qcmM1bTc7T2JHS3pqdWNjNTAwSjp5Wmo2aXNVKH11biUlZF5KQWk7eWwpMjo2e3VZVik+Sl9wPipRdG0pcShfdSRvMTNzUGE+QDQkan4xO1NeeGJTTWh4SjRMKlomUipwKnN4YF9iclRf'@; put 'eVJiaSNzU24pbyhgNHsqIX5rcSxLISR8ITMvRjcxb2BwNUluL0ApO1MwfnY/LDx6SXBLfCJwRSYwYWd1VH1kT3p4Sz0rSlU9SEglNllGflMsNSJubXpLaGt2L2kkKlN5fGI8WXw6XmZLXV1iUVM6PCp8WFdxWHk5YFI3OUhdR3dTLyplKHxVeCwvI1tMTGoofm5aaiEjM2goP1BPXmt0Tj9mfEgj'@; put 'SFBPcEpgTzRTYSk4U08wSlBpUFIwdGQpIillZ08zL2hZRHMjTzF0KkBKV1lbdCV2S0xKX3AiNWJfSFp3KTtNI3wlbklpJGpoczIxcUgqYzk5fi5zcTRwMXhsY1UsVDc9KkVEdlY3djQvbTROPHBPWSR3elRyJUJVR0AlUEk8ZWc3Ii8oWTFvLnhvPG0hYjAkZTRQeGY1SFF4KHd7ZHVvcGFaWylI'@; put 'cmY+dWx5dmRhaVpWflp5KmlnZVA7cEEleEEreFJDPjNKcmJYUEpVbSJsMmdeeztqQSVUX1d9WzhHbm9VaVB+VjkkJUs0SmpxSW12V3RzJHkyOGp7MV1PO1E9Wih4c0l+XTxNKCRAPyNvbGdgIihATTx5M2h4Lktjd2lHb0dke2paJkxmelhoZm01KSZCL28lTV96Y15kSkg3dHIsfUBWaCkhRH55'@; put 'MiMvbEs6VW8jcGIuM2dSMExmM1lsdTpTdFI0LG9AfU0pNS90ZlUjV1RySEdZeUwhfFRWcyU6RVIvIktyV2xZJjcyJDFnPDdrOWVNSGRnVCN3MDYqdWR5UDp9OXxvZ15RSTk7SDMjN2VvaUB7IngldVhCNlVvcnRAcXF7KENqb1pfOEx5fUNAMUBNYndwUSxBSWtxPiUjNzt0KCZKb1E/UWZYViM3'@; put 'Tzp6YTQhKGY7Wl81PTddTFh0VzVzRkhRd3g5PFd7S3lbSX4wMTZiOk5sMSNmJUx5YWcxe0lacHkrZTh8MUtoaztfND5DKiIvXzt+V0JfKXk0fFUxV053VGlHMzhsL3xxa0YjdXJ1UzhAd24lNlZQfkVuW2RVfUdLTkN7YHwvNDl7PVNWSTRyezJLVGZaTWRYbTsvOFZEbj5uP3lQaE9AOyo9RyNK'@; put 'NUtIVDl6PDZqIXIhdkNsP0M8YEgzMTtIIVFJUEZMS0UveXp3P2pnJj9dYDw8WzV1ZGIoX2ZNd2FlQU1EOSREdnljO1NgTzQ8Z1s/e05LekVNfE9rTUNsITlueW16UXYoanRgPGVrWXd1cjV8WVd6OG01RzFdMV4xUSVxNFRgN2gmamhkaiJnKVhDQXkyeDNLJT5+VTB0NltCST41OSUlfj9NPjtM'@; put 'UmdJfSZKazgmbl9mSnJ7M3E/JHQqNV5+PVpUNEh+WmwsSDFXJCs5MHlib3oiblQmTjNlUEhKOzB9TlE+RiUma3s/PExYVkFAVHFXOW06TDZ8YzlTX0M2Zj9ffXgkfj97LDlBb1MjalRPQT53RCJmRUZdYWEvXU0+N2xNJSMhLClXP1k+OHAodV5PQCZ4MTxyM15DdElOeXo9QSs+R0RbR2gsXUBB'@; put 'b1A2bVFPbyh7dGwrbnp7VFFxVFZMQkhtfDxtQEA9c05HTldVV0woSzNQM1RMMUJ6Sj5LTF00OVNtOVlfUCJqT14jdj0haFZMaTh2YzFCc3NMUEA5R2Q3ZUpgNHBHI31gUnEkbSt+L3s/bytqcUVQRDhRVjg7PzhlLFdGWDMqXmwjTzFOSSNZSXcoOC87ND1PeGpbTjxPeGdhaGFGOj94eilULiI+'@; put 'dHFRJm9lJlZAeE54PyVLelVNcDpqVDQ+USh9YnNxV0ZZRERuM09WSW9waW0+MEhAImNKIl1wdTcuaHoyTT9CNFNEUjpQXVIlOXFJRzd+TEV1dSV9YVFQVU1pSmJ4JCpNclAzaDRRKEBAOnEsam9vbGpMJDlaayN1WyFFSF1bJEAjcUttITNmPFo9UkkwZWkmcHIhenxzeSw7RzQoYGpvakw5XXRq'@; put 'aW5LPEg2aX1RVzFeSjRBPVA/Y1ckRFRFenk6OVFJaDM9UCF3MExKJjhUNHgsRV1QUVRJQXBnOSsmLyQ9bEduJCEmQFEldzAmMCxAJWokbX5ncGZQaTQ9WCw8ajJnRTFZWiwoO0BiKkE7cUtvX1tsVSRzelhRfmlHaTFHNSl8NE9rbDVObGF2T3IoU29iQiRlXnpPNUouYC5zZilUPExhaEpMc0lm'@; put 'QGU/ZGI7VDY/MHkxYmVVUHtUOSV+JV82YGQ0bkAlXSFsYGM3e01QOUwlfn19Pj0xcEVATDhQe1cvIW1JcnpoMEgxKnMkYmJxKWYwZSpzOjlZaDhhYF9WPTksb2B3YjdPP2dtamZMdk8ubiZpVWwkanAoK21ZO2dEfUJEXk1KZld6ZUtpelV9XTx+alEydntmQkhTOHg4Tit+Sn4hSDE9Q1lKaW5R'@; put 'blUpTHBzcWJRRyErPVJaMWJkcHVxVTQ8cyEwQ3tbNX1oKypdPzF0dShEKyE3eng3JEhQNDdnOGBxL1ladCYpbXM9Rm8kK3U4R2E4JjJxY1dXaCRlKVVsXl1IR3FEOWIhaixpRHtVbSt1MmRZRVdXMmw2Ryp9WV9PK01ON3RwdzJhfkMrSHd6NmJbe0dSU0swfkgxUTpLbCthQTQoYUh9NVFAMyhY'@; put 'IStdXXZweUJnTzlGVHgqSTFRfVRGKXp4LlIjKkheTnYxKTxpaHhtPzV2UiYsSzJJejt4dVIkTlZyNjU/OF5Pe2ljflVad2xgM1ohUiowX2xmKWpAcng1OX50Mjl+dD19UHAuQEQxJFE0Pn0+SVU6W3wlMDo8elJfaCQhWz0pPHoieVRPNWFTWWY9W1VtNWVvP2duUSFXdUwzbCJVMildPFd9I2Zd'@; put 'MDY5Kz0iOVE6a2xQZVVLMz1rVDd1bWxfT3soN2xJbmpDRmYiKHA8d3c2OTsxc1VtXiswITF5MGRbWilhU2JpfGhaKjMpcmBdV1h5SUhBaHdMQVNiUiRnVE1pQDFQPE1hQiFpZE04SHpJPTByaS5NNCpLaT1NNCp+RiphYUAwMyVpfE9UPXw5JGIrTEZpXmcwQ1h8PzNMdy52ckF1cSpgQEkmTGdX'@; put 'ODVvdXdnQGRJWz5JJllRYT5ZbChwcVRuNnNkVlkuJWpAPUg1KHpHflteTmkxWCtaQE9YP35xQSx2fnNyQi9CPks1K2pzTmc4fmAoOCkkXnYyYWNMRiFNOjRIJCN7TWc2Yl87PSxfXWg7W1piO3ZnS0FpTkU8bGhhMi8uLFAvPGgoUEpEUVpXbVsvaSpXMUU+MHIwN0I1RSFNWTMxUTpmeWdme0kl'@; put 'cTtIUWhsLE5zVU15fFteSGZAW0VFLy82QXZ0Tl4jYjpyVG57S2kzNWI2IXMlIl5xMjZhZ2BYblNlQVZOPD9VezVseVpDWyJrRGZrWms3YThVKz0hQ1J3XntaKWt9YjlSSSkrUVY2PHlhbzllcmtkI3s/Uy9ndGIhRkxPck9nb1E8SiRMXnRKJktPcnkpN28zYXovQzVObDBZSjY5S2lgcE5AS2xx'@; put 'dG1mQmFXcy9DaUVWQzx2Uip4VzszVE4hcFtJaU5SMEkuYURqTlIhS0pZMXFrRyVvWl8mSngkUEU8Qy5wNGIwSUk6anlOWyIyXno3cEZqNVZ0SyNZclpOTCR+WSFRPEhsUXBzcno7OjRKXSYlc2dqSzNfaWo0R3hvd2lSen1wZyFUSDc2Lk4qdSw1Y0A0K2hZMiNRb01RSk9TNkA9L0kqYztsaHhv'@; put 'UmVRfGUpWVNGe3loIUh6RHJ9cjkqN3dhZSJzNDZ+SSNhd1ZnSGokRX0vJChHPz1WOFRXTHtEcDF4TVEqbXkqSXF3YjxwPHo0dDEpS10zYjpOR3BLRHt8MW49NkZ7PkhrcGhiS3ZdYn1OdFJoN09uVHtfcV0lbyQkJSZEMl4/Iys2TntbZkdJfU1SWT9SIU45TiE3YiM9Tj1OfWhMZThhOFVTR0pI'@; put 'KStOQ05ze2dEM05IcyE/blVWeGt6WVMzI2JCezBsVTood3IrTUQ6TElOb1hGMyEpZF4qckssZUsyZks7QzVoTm01diVzTTpTaHNMaFclbFRsUHwpSCxoUk5dZGh5JWYzSDEranRTOEFAPHxMKkIhKFMwU314VUkhQ34sUUhae1BKIXhJLmFwcnZ1Y0QrakZ2a3RdSnNQR3liNn4hMiF9fmhUUypD'@; put 'e2ZLYCtqYlhAaTIzQF5xbWh9Zyx4RVtOIyRjb1l1KUs0Pmd9QzFvMEJpWD9qMmdHSTcxIXF0NkZ7ZEVqQEJEWjJKXkUxVnV+OFFnb3xHVVAuU2dmd0FRR1ZjKTh1LmI2XVQ9K0U5MWxgWWhBPmsselU0cHdVUWhBPmdESmU4YTZhdiUvbUtUWmBAbUtUW3QjbztWLlBNeFFheSx0XSEsVV1RVU42'@; put 'LEBPLk1wND1IWys1fXA2WVR4a2kkbWpDRmZQbGB8c0srK1AhUioxfmVGUXkrMU5eQ0lBaVloaCQ1Yj0vJDJIMUlwKFZiK2hvNWlnYnEwTixnOkJkaDpObStZb3N7al0mSVlGKlRNY3hhSypnYz0pZjhlMCs9UVBwPjZ+QDBsR0UlNkQydF55Um5bUjhPJnBlc058UGIxXStCMzZlSjl+JSQyVCV2'@; put 'YklUaFF4anViamQjcTBRTFcsUWQ2d1BqPFR9ampGRG5hRGpoeH1mbGtoN3NLIzouOG5xW1BWT2w+SXk3OyM4clM7PTVzLmB7cEImKW4kRSYiKT1BLElYQj1VX0BKWFVPdDFaNF4pOUtMJjFsZjFAZk0mVmx6PFlAalZNa3tEZE1hOHxQUGxQbEUvInhbYzdIXlg5aV9rdmhAOWhWUiMuWztYOXRa'@; put 'M0I7WithPk06dDV4cWdeTnY/KEZBck9oJHpXZURxZkBsZDlJPCsueCxePDQuTHQrSXluclR6Y3d4XWExd3Q/clVOOFdsdFM1ciReeSJCY2Z8OCp1Xy9VbihrT3lbXjdhRXBCSHh7NFQ/Z3A5YGteUEtzOl8yI2t7ZmF4ZF5Zfl9uLFckczg7Xi9uODxaKTpJKEk7bDYoVnZaXm5LK3dJaGAwRENs'@; put 'XmZTRD13Km93cVI4UnNlPiU3bGk3MV5AMUZufHpbN09oTSowQD8jTWVbMzFpXi4wVnpXWSwqYVplP3BMVz9QfCEvYFB7Wl9dQnRZX2RQaUpZQS5xWFR3fjE/O2xnazFGdEVeMlNNSWx9WFF7aSRHZXZdKDxGWl8wQk9UbzA2OkNOT1lPeW1JWDddRHV1VjAxdV5hSWBVfSJpZT5zQDM0bWBwXzJS'@; put 'STByeDxrLighLylxfHVnNSwhSiZsIWwhXXRfLzl4L1k8TDtrQDxHXmUsM2k3YX5pX01ePVQrRGsjNiQ4MW0haWYsSHlwJGIvXWs4eS5JMUQ8SUV8YmV6QmlYVippVF5zYkZyQCltZT9rdk99TTpYeTRwa29DKHwlTTEjQFIlRG82RnwkbWgxOWMkTFk8a3EsL3NBRGleImtKXTopdXVSJCM8JWd6'@; put 'SF17cF5mZnsjWzwlW3xrfGsyL0cpdF5IU3QqLGwjP3JUai4yb0dfenZRZypqaHhVNiNVJEBEWl54aWYrUWZgPkt+dU8qd2crezErRE9HQk1DQFcxblZkbz1LPz41eTImXkt6U35HRlBYemhnXjhkOThkJGhyQUV7dSlyclJyUmh3ZXgoez5PZ0NmSzk0ajdYWCJXemRxOigoQlRNJD1PW2pQaDBN'@; put 'VlUqRU51YGZZciJVcmwubGViVF5uLCZFanhQaURhRHhNe1VsY3JeSk9vLDpfTzlNXWp0WW9sTmliUkx6fF5bbEYmJklpOCRWamRpZGVHQj1UfXY6YUt6bHlzXkkrLmhqUiZPfTExfjA/bHVNVCNAXmQ+Qj9dP0BQQ1dSZjBNc1hkVkw+Qj1iRXVjSSY8dzpbWkU4dEhSMHxOMG5vIUU3dXliSCoi'@; put 'QEwhRSU8OlVsT3lhPkMhL2ZzIVNsJHE0IytHcWBNdTBgUVZxQkBpQzNTbDBlJWtYZDFhZ1U5U1BZJC4yUzBaJC5nJHlZNShNN0ZCVGhESE9YQS9JLiYiRGplRHImW05qI3sjKWQqKl9qQVUofEFIQTxxNUBNa0ZnYW4wZ0llIWFUUyo/KWNHe1IwYEhkN0V8OHRsemBqJlQyfjpDLiI3Si5jLkkh'@; put 'OkdFVEFWNS8yUzZIMWYqSDM4W2ZrZmsmRDJFW0U7TVFNJUNrczJJTiV1MGIyLDJFU3hFKT9uKW1qQzV1cE1sbEFTSSV2YFNsSG1nU1hVI0taLiRvWlt4bzpYYDZNMnRLRWlqUmokQm9wYFcmSGgpOGRRUFVNTSk3PkhYVilPRml8XzokRndXbVpYfWBqPV1heFczdndaKDo3cVp9RF0ma09afXVX'@; put 'XSE1NFhOXWghPk5JLyohaCFSaSZ1N3Yrfkk4Nj8jQWxrVzMhMyVETCk/W0Jmejd6KUFVM21GXW5ROHwxfF9LMEBLeCRGVDNsJH5je0B3bDBVY3EzYX1DQDtjJEF9WFZQMUlFLjVPNXNbRWEyeDJZa1BiWTp1Z2o7OWF5VzpXaDBgRHBRc2tadTdPb2IkcGJLQDo5KF9APHJ9WCUvZG1RZXBGanok'@; put 'emwwdlMmMzljLH10SjpgZHw0NG0xN2A6VHU2JVguIWx1djp3WTBEY11aVyUvXntbOSNwTVkjSm5dKlNCL1MjKUJ3RERlJmd2Y04wSjxTYlREJTleWks5SWxGenA/MDEhT3lpa1djU3xDZF0pbEEzT0JUPSNEd3hlTT5SLnZvbGoyN3pLb0c5TSl5V011b3tYeiV7e2tAYTdxTiNRVF09a1dvaGhD'@; put 'fWlTXjgkQHM3QG1Cd3xHSnhoMjZ7IzZCaXU1cl1jbyNRWSghfEQ3W2FpMz1LaUsoeD1oI1dlUlZ1cWFCVClTNXVNd1deZThEciFFdmlpcSl0V1lDWVgvMUsrWz12MEpBblRnPGxOaUE+XntlN3gxOnMsNDpwQyZGeUIrQkA9eCkhZDc+diFMVkIwdmpMSDFYTzozfTApLDc+SklJOmVgcHpyX2Zd'@; put 'VUVnLHloP3wyKmNeNjlocSNqekAwYUFpSzNlQDgsPV93T2Ezd1AuUWlQViZaRFRATSZKN0loYWQpSDh6blZzcE9oUjYmYiladk9HTi5nYjB2fUYrMG05KyNVNzxVO3J9diFFWmB8VDM/O0JhfHFPc2VpSmRPTUg2NjNPLDZifStdenwsYW86YDJfPjBWci9RZD4rbzBmRFdJV2FOenEjSCpDPUln'@; put 'eTsjWm1IViNIPG0yTlQhOit2ZzlKO2xVQl51UFBiVnNqWXp+fFFwQlshK0trdXc4JWMuPm1LM2o2cTVQPHBUNyVwfUt5VSgxen48akI/LFEmdnF6dz0+Znh4cy8weDI5aDEpR0R2LkMuTnViTURyWkZdIzl2L3U6UT9UUEF6OjlAfGU2RFMoPE92KFgkPEs5am1IUiswQEErWiw2clslXSkqXVNQ'@; put 'UDlxLHpZfmhqUFI2Szl5dDBpfGkuLCkuTz15W11uP0RKLmE2XyU/U2MyT0goaCEmKDc6OkFoXWBuX3BUJnFGaDFAWHF3ZiZ3VG9xQytyMm1Ad2dPL3JWfnYlIzAyd2lHOjZgSTFua0R1d209ZmB9PGlTXWo+Xmw4d0k7O3pbOjtGLyIzcnNAcWZIKCk0OW85cTUwbnlwZDY+XXIzUD1ve0o5SzRz'@; put 'ajpNXmh+SzU2bSZPNipHQiZlNncvL1l+az1uTXZofWYxaXIpSFEyZClIOGFFbEtNKFt4NGE3YXA3d1kmbW5rbCY5L0IzbyR0RTt4aCVgcFVeNEBiKCllWHpfYX47OmtsfVpuWl1UJj47MCZuJDZIeyR+RV0jbH1ETXllVzk4W09ZZ29zW1JEYzk1VyFbQkReLjlRSSFKP0twRXh5SnwoLD9xcDw9'@; put 'eF5ublg8SHg/Oz4lNCNlZm13TEY9Q0R9JFBEM1B8cWFhZlh6I00kbk1+Vz0vdW5wVH4lOCZvNCo3KldwbyxTO3UrekxnKGBFYSYvSyZ8Lm1zUSpBXlozaH0sZ3tVPTIkMG9HR2J1RCRsSDZ2ZC5jRmE4NVd9RENZNT1hUl9YMisvWi5vYHIjRnk1dmtMKzA7IVlGNCwpRX4xWyUldDpMPD89Ln5v'@; put 'RDJXNFZXe2IkKmlTJDNNOC9IelsuVzNyT2xiVE0ybUpvb0cmPz9dS2wzbkNTaHF+bihPPEg5S0k/cmZ3ITZIVDMmO3whRUBEJkZXfEJZZTEzIl46dzAoOXp+bmlZKVBwKStlTCV9eUg1cF88TUpvQHlzbDFmK1h5TDw0MCFhYVFMPEhvXnIsbFZNc0MsJlVqRCwjOTQ4Oi5fX1hmV2IsdDYqaE54'@; put 'UCZsIXRRfTBZQFdSIyp5TEZ4ZE5udHJFT0N3VFRqJit1QDIza35ob1g1cDVNaW86UVpGaiIkLl9zQCI0MDYmJSRLOks7LiI7PWlRbEVNTWE7NnxWX1tIXS9gajY2aWE8fEsvSywoK3lUNmhoP21uVCYpP2pVRVdDYT1wRWRgX09bRkZNRiFvWV9nbDBbRFR9L3NiMH5iYXM8V1I/Nmx5aERzd3hs'@; put 'cSlkOXJlQF9FOldQe0xZa0MzPFkwKTNVPDU2bV5QK09mWzpyW35GPz0iY0oiQj5qXVs5ZTE9bCIxN1dKdXpaR1JCUThkLCxhRmgrZU83QS5IaFkyK013UHo0WmZmUDBfPk9EXiRoXytOfS8qIXZ0OnkmVVVIKSVMNUE0cHhDX01wJV9uejg7MUBEbTshc1t+NzpudHc4LCY7YVYyJDhvP3t4TUg6'@; put 'WWpWZVE+c3IhZH42aT44PGBga3xpWEhgT1U7XTYxRERjRlk2VytVRzRLY1Jmd2xNTSQwMUREJl4lfGglWS93Vlk9QSZAKWVNJiJ9Q0FqRjV0dWRIVUgoRi4hR0dNImImQW58fVE4W3pdcFY8XWBWJiosX35UcnRUMz0iLD5zXVVkSlMvbDpBUDJUcmYrPS5haTdXI1VyV1VvPHB0OmNxZDBiVVFF'@; put 'UUY+V2c5PHsuYnh9dHN8JD1tOHNdKnBqa2NLaXJzRVhMPThhS3FGTFdQcExMSTJFczNOXWdDVTM/eX1mWF9DMHVqRFJfbURZK01OaDV1dj5oR0xPYltWMUtnVF5xW19MQkdSciYsNHV1X3YxYnlPN08iNC57PXJuOmwoOzNuITdNZlosSFdmLm08NmRacn1kPDljeTJ2SkVNWWQrNjB5SFA4TlR5'@; put 'ZHo/fkheMzRUWC9XKXNQVE0rLzZPfEtoOGFfWC92MUZnTHdHWjlFJU5+MHkxJlNoLjYlJkZncj5lR0kxeF1lTGVMSG9ac1d0PiZnZHJ9a3xze0F5JStaNjN7VF13fU1pfXFbazMsIzZueWRVVTtQMHAvT3IoWChbQW5VWyFNQjx7MzpyMHloKz8pVGxyIWY5OT42LmpXWktlcHNvcX1mPU8xP0pF'@; put 'Z0xFO1lGcE8/dnNkWnZVVT1yPkxGN2g/O116dF1MOVFQdTkrdl0lWTZWYVhUYTMmfUN1KnJfUiteO2ApO2dabE1vc2dMfH0wWzopMFR6andxdFdbe3ZWUC5HRUdYQ1gzPW13SmB9TXRUYFVvVHN2ISFGNUl4PWRXd3ZqV3ZCKzN5N3RVckpKeTk8cURqUlNHXTcpd3lYU3w/SF1RPSgwOSRhMVI0'@; put 'KWBoXTFwSnk9LF5nLFtIXzNtV3YpVkdEMXt5WytRN0AoTmFANjI9XVBGQEdpbl0vaz97dGswbSU1Vz5MKXptR05RX11PMWBQSEhvVGJVcDRSMVFIQTRIWWp0eEopXko/WyojYENDWVNpRyprMX08NzU5KD1hKHtnY0wwYmNMIUpdeyVHYXJyLnI6YF1YPipLZkY0NGN6emc/QUpAT0A4W01+TEw6'@; put 'Mz50ZHRVfTJ5MDFsWFZidH4kRyhRMk5qOU08NyYlR1NGIyJRcztALl1GZ08pNjxNeUcme2M1ZH00WjxfaENLZy97dT1CKj1eZ2NMTFckNzc1OXlMcS85Tkt4K1IzeTAmdVd7Zjw0OXpGRTQleUU0JXRCMCV9LHBCX1poXVBIL0N2XmVjO359P10yaTQjJnM3XSJ1Z0hSXU46LHtkX2NrYF1bcF4h'@; put 'ISZYS00rd0skbnAmcCNBPU5eLlAscW5yWFRwXlRdNnhfX0ZOTn0+e01zVDx5cmVRdi8yPFhjRCJ5aCkrYHk3JHUmNHt0fWtNVW82UUoxdzBZXUw9YGJSUzh0e0VLRigwfWFRdlpLbX1sQ0RZQEJVUHo7clZkNFdJKk1ebHw8UExeY1BZPVB1L2ghLmY8YU5wSmN8NmZVU2UjTHg2d2A1P0dKKzNG'@; put 'LmReKSZwVU5wOCJVXXk6ekM3YmY0LEZjSVc8RW4lb2pQKyF0fF8maG9oPlptd3VmaiE/RVBdcFFgQjJqTTh8KVcvPHNbdXRxdVRea1A2S1hWO1hmJSZfeHJmQntKYD5eWHUpcyRTbzkkO3Q5JGRYZmdWd3JmYjZYKTt0a25la3xYWUwkaV5jY1AsUUAqV0Z4U21veSMqKj8mSXFkbDtVXTtlVU05'@; put 'PWBda1NnfHsxJUojezZ3ISlWPjk/UkBaOTpqcUpkZWJ6MHNSR281anBAYHc9SSNbbVEldEIhdStvYzVwP0dOb2RGS0s1QCEsMG0sOFV3OWxDbHQwRStAKnF5SjIzVG1SIyokSWxhPHhVYkRRJUA7ZDtkWnc9ZC9uWHBRWTNUN2NkP1F+QEpvPFY6XXxQakhhZk9HOjUwMUVCUy4/SkI8M2FIPjAo'@; put 'Tyg9TlkxPEFYajhDcEJ8ITlEQDFwXWFuSGM3Z1k7TzJjYjZpUCxkO09uQHdtVGdHUSEsTzYxbE07Y3VXdU0wZz8ldFddbmgsa1pUZyZQaC5mNjA7XlZyWHQ8TUA9bl9mam93ZTxdXk40NTJSKVJdQCs6JG96ISFVR0pIVDlEIz8xNU1CcUNDPEA5ciUyUGY2dEs3aWpOaW4zU0plNVY4XiEjRW5Z'@; put 'TlNza1V+QCUiSjVKPXpoTG54PU4mZUFIU2VZdVlqMG13RXZ5LzA1Yj9lOCxeUSlOSk9PTXc/UkB7STh2bzxIO2Yjek9yS2JtMGheOC9zLFMwdVd7MWRoWF4yO19SM3ZyKXh9NVlXRCVGelQ6eDF6KUo1RHRLUEoscT9BemRKLmFHbTB7P18yfk5+fWpQT155Vl1IaDwjZSVhTkhPVkBbNVNJO3J7'@; put 'dzxhLDlxekdnMD93SHlic2tqOD42aGFFVnJVXjtuaTBeKj82VDckI0VtLEVVKlBnaX5gOVhNaWdzTFhaRk8je05nY2FmYDEoanE+T010YndUKGYoSTljSGZ5cCxTb194KTIxVz16dF57JEw8czFVaj8+MEs1L1p7LDZ2cz1Lb0IkSyw0ITFUeFpfdTU8d3wpVTQhKVU+d0Q6bmRWKW5OZkR9dXlM'@; put 'VDd9TClFckIjMU4vOzNCX0o7cGU+PXgpWk4kZ1tdSiNCI3AqcHZDTXQkampyayh1Q3VGNFhqN19RanhxWXhJb0FEbHE7bSRJPGlhQHs0cixbQnhZKnJdRyp0Xjt0YDc9bFJkP10zVlJde045cnl9KF8sR1QvVEtfS154dXFrXzhdYVM0UiQsKWZmQHdKLHgzV2lgJEtpKzprImhZWj1jSCkrXUpB'@; put 'XnRDLnQzYFl9QmpXQUtgWGs7Pi59Y20/ZiRUNmUwc1h5LkNwM15LOnRwTENEemI/NHlMVUN8O215TXVYQUtJQjlPRzZPJGgjS3lNcXUvRkdRP0Q8TF9YPk08cXp9NEtORE9WKE4/fEgiK0pdRX1kUDhqQit3d0lBfHshcCp9aVdtbShvOVEpRX5QditTaGowTXsxc0BNR3dGZWpHOVkqbiRBOVFL'@; put 'ZDZoJiF2NHNldXU3YEBpWVp4YUdxUXZIY0doaTpeJF8uZmNNcktOTEUzTDVDWWtjUUVpNmI9Z2owTXV0aEBDSTFaeThBR3kpdEFDRmpZTkY9bWk3MHUje0pIUypHZVI5alRfeU5vdW5KJW4qfmpWVSw/cEhYLDtMM3QyT3siTF8kXzppQnEpJTdrZTFBJmd1dEYyTEpidk9YPzh0RUdMM0pERjZP'@; put 'JGZGK04kOl41V30hXWJWdVpvL0MjNDh1SGg2QHc0USsweGt2Z2c0dnMmY11iQiZgLGMxbzM2TilRRnkiWGF9TzBZK3ZKemMpeEUmIXNoJEohZTlZalAuMzdkKm58V3BGKkJlW1lDaDBodkE3X3UrKDdwVC81N1VZQys5OG1EZHtjUXI3YT14Y2FZRGdPcztWZDtaUCVtT2hfIjB6NmlsOFs4OjJs'@; put 'Q2RWWF0xbyxtT35vfnxVcU0/QSFDejxFYUdOR0tvUmJjIWRWKnY3OGRYbzZdOEVuLmtQYiV7QlBmayNybXwsMnplN2FLMGx4ZnwqbW81RiVPdzsxeS4ienc9MyxVOCpNKy4yKzxxOn1NaWUhJnp3aU5VR2MoS1d+T09RY1orai9oRkIkYSk/Iix1d3c2QXwhbXVba1cpI1c+TTsjezFgQzBRak5m'@; put 'eWR0X28hV217SUoqVTNXeV00QDR4R2FhTlh5VCVfSSpWSndwP1BvZjU4ZD43WUZEZiM0V0gkel1aUVg3VVRLd2NuMD1vODlwNVB6dHBNMlReIjh9ZjZ4NWQqd19wWG0sazx7X3YySkVqKTVzKlZQZzhNUSkzeSRSQjk0QGBPWTxbZGduVSM7eWNfR3lZKGdUWVR5MldATXc4bUhaSnBvWndEZnRP'@; put 'R3pecFRNPS4wMVUqZllUTFVLOG9MczpEJisjQ1A6d0lmZG0uSXAocDIldz03X3RnOmoubypLfU5vVVgoKSwkdDVHZ1ROX3lDLFhnO2VaZClwTmFbOG9iKndQMmhXJj89ZWVJaWpJQFpdQnBMbHMwSGVNZ3h1cTJ8UlIpYEIka1IwcitlZmZYT1okQSN+WT0wbVRvMXhbdFskWXxmXUIzK2Y4Um0k'@; put 'YSQmKzsjL2BaWjlfdi55d0l3OGxIV1ohI1NJTDdmfCM/fVdULHFRcTU+K1RpWH1Xek9NLFFJKnxKVXZAWWVALkQlK0NjUyYlaG4rcTZaSyopWU1oLlZZLGU3amgjYVkvTHxGNT1yZTNEXUM3dVNPW0lpMW4pLiYvRFJ6RVhlZTd4aCppUm0wYn1mTWhMK2FbenJ1L0ZfdmosQTdeaVM3aCI6Q319'@; put 'KVh+OzIrbVghRjE0RyhIRkdSITF9cjdPe0UvaFBNUkFeWSN2MTc5WyVVJjRlOFY9YnpYVWB0WyZmQjRoLmAqN0guOyVsUTlVO18yYyNsSX0hQz1gNmNJX0J3c0xMTCtbUjVbT3txbng7L28lfVdueD1EQU9YIiJNUU0jdl9VLzFgNEB0MTdqSHlxP3xrXlFNPGJ2e2F5emgmdnZTWD4zTTNSfXFh'@; put 'RzsxV34vamMmQU5YYEBLJChkOGxMXU9rVURmRnlpMS4/IW0+bkFlMTE4OGI/OiY4WXZPTDdOWSlpdDVJcjwoSEs7PH5PTTY8aFQ4Xy9fOT9zb0ZVYSRMblFtWk8oJFE4Kll3JiV8WHJoKy8xOihwM2tleiM6UXg/aCNfOE9GfEIqV0NgOmpIcyl3bCJTJCE9OypXO1R3OyxBOl5GUVpQXkgqbygz'@; put 'TG9wUndxI0wjdnpvWl1GPUp5VyYoZD4hSERiel9DNExxdUNLInU/RlZYQUtPeTFyQ1paKVI5Nl0oakpPP1RWWGFxMjBgZXc6dEd0NkNDZlpJdXA2LnQwcjB6JndnWTcxLjhqe19UZjNNRUhEUEd1e1NoXktyKyF5dFVFTSh6SnZkaHpuX2luSTZiNSpYdnkpfUUmS3JCJlhCSDpiTGxoYXVZKEpl'@; put 'VWozMXtvK29ye2MwRnV5Q1h4TDZbRl9LXiZHSChQc24+JGBTVjw8VH04Q1hIZ09rRmZybjRIbGpWN25TTy99IVlzYGRbJH1KPG8+fioiR3w9Kz9gXndueXJtKn1lJGNuTDBQP1JQWnhoa313NEoiL0ZPTXZ7VSg3TT1YfnIjNGdRUU9hM0lUX2ModHZ0JiJAK25mcUU9WXM/dy9TaTt0MStlMFFR'@; put 'cX0sKyZNPzJseDBYUHpbLjNSM1guNCNmM1hrdFBgc3VNNXYoMTpkfD9QcE9QI2VPV2IlLno5aC98KHIpNXE4Qzt1RjcocjBSO3BzUmVLdTMjInJ1SFJDVHk5TlV7UiEoQSY3czs9XjBvLCx4Xjo1cFBENl9CXy8sQV5tPzVlP0Q8Pk12VGpEPTJCR2RORCZjXyZ9Ti5MIzgqeGxFX0JHMWk1YiRW'@; put 'b3d4eGluRztJOVQ4QFp5R1dPaTUoMEswMDZ0PX1YMERkUTY9fWtPVGNdKCtBeTt3XmV6QSR7NXRvUUdeTVZqMHE5THJQQE1bOXopdnFadzI1b1JTIVdWY1tiXiw0VyRzI10+elliaWU3RzZhSkVuMSFCPmxST0VrMWc1KCxRO2hRXzhCZCVubmwxI01VIiokSVIwRGkwV25SIipjRXFJUUAwMzUx'@; put 'MW1ORjlZKHhOR3pwbncmYHZ6KDRbRnRpcWkiVGIsYVhzLDZLeXdxdXtiQSZlW24rTVZMd3VQO2o8Kl5JeXBiOj0/fT8uUEFtKFksZntTM1EuZnh4dHlOU05UL0tQRyEzdG0+X30pcy5sQkJsU20pN3p7PER5WFEmIzM2TkBSNClbJm9iZD9fbDBFZD9gIUVmckhxfVhVLj1nb1pjdnUvLCIoeXRa'@; put 'WTByMnJ9YD4mTFUrbitxeHBeeixuYX5oSTM0SHc6O1YmYGhOaFJHWzIlNzRuNihORyZ8QiFqLithLEwsa0k3U0o+KllvUXBbRD0rYWwvWUR1aFZnS3xaOVN2PlZoJGNjYD0/TUUjWzV4OUhHWFJ4SGBRRjVZIXpOUVtuPGZPKnh1eSNJdzNpeFNqdk9rOT1EYWVkRG83cihEdXA1ZmlxV0dvQmlb'@; put 'cix7bTc/JTd2WiNeUS8sWHZeTT90N1FFVylRekclLDFbJixiJGNWWHxUZVJJKmVxVUl0YnFbL2lxfXhmQipUdkdCMEkyfClqJnU7VGR4ZzBWT3tCUFBITzZ4d1Z0TGtZTk12cm5FRiwwMUYsL1dNUUFZdVJhKU5nVkNiNURRJWFVYSRyRWp8RklteCRTPHs0LHIldjA/WF4uTzguQ098SDU/dmli'@; put 'c0ErVlo8XyQpIm8zbitDQUFkbHdkXWBZdCFMNCZaQ3JEYkN8bj4/X0AkckBKXlNyeFo8NzBGSFl6Nj59aVpwImdvPVElKG9MMk11dGdMYGs7UC9jaXslP0hhVjFwPnJkTXxje2tHaWtyUyNpVXJnfEpSOEYmfVZnVjFjclVoZSYoYG59L3p9N1RkTlcpNihPJDR+PV00Xmklcl4xYF0hUiNHQisl'@; put 'MExlS3UkOFVUIUVbUmBMdl07XjJvUChlIzBwUVJ5N2xTWHl4I1d2XiQqbEpqMEN0Wi5vKGE/RCFCZEIsNnwkJnJ1b0RBPEYvPyhpc3s5NnZXS3tOREBBVzRRR0wxVXkiNmk7VH5xa3Nga2B4UiVERk58VzlbXVVyN28zUk5zNlZiM1ZuWz1nT2ZlaSVVSWhQUykkKFpuNyl8Pl5DTWlMZ0ooXSVj'@; put 'KWBeOCk/IlBAKXdCX25GOyhiQHVibHcmI1s9aDUoLDhIPDFkSkJvJSVBaHdjUVZzW2lBZXw8Rz5YXUNOS1g5Yn0sQ31oNig5RDtwKjs8d14sJmN1Yj0vR1ZvS25sejhVWUYzWihwYTE1OEc8bHhbSiFWTVp4bFJHJG15TzMzM3IrZlZCcShie0Bgdlh1Sjo5RG9oJHlYRiRbSU9VdjJiPDBoJnQq'@; put 'PU1ra2h4LjssYVNRamQrMUUkJEJ4ZixyS3o3dWFqTUVhQjRBWGAkVC9gYSVRaj8/eXpfMCJCW3hbbEhXfkJjQVF8NkI9QmI/OkEoLm4mVkBKS1t2OFlxMURRWiNLYiV7eVFZVjJyTF1dOSJ5NnNkPSR3QiRBVHxkWzVAWihDZlJ9NCJvYGBnZUNNfGR9KUM7UiZLN0tLYVh7OlA4YUkyJntnPWQi'@; put 'PVhZT2kjfVBGJEZnRlllKDtGUURoX0IkfWZVYDdUSSFOaE9GIVRZeHJgP0pNVlF9NCs2KkgxPnx5XU1UISI5NDVTSj9dQHVhVCpmKXQqP1FnckRhMWppdyU8al1kaVFTL3s1dGVaOXQmfn1GdllyXyw9JSY7JFs/XVUlXm5PU0x7RHNPMX4lKiwmPXZdU1ZKZGdUQGFiLGtJUGl3LiEpUXsvbyU9'@; put 'NFI0fFIuKjdOI05aeTgiSTF7bkZDWnluYV44biEoN0YoJU83UyFFTTlkdW0uQi9lRFhmOzsvcEtYeDpyNDxuS1R4fiwlWTRAcTltMGJ3Yl5Yel9SM2RRcFZ2MU1ha3pFI0gjeHxadTFyVVtpdntMck5JeHYpZWlRPnJDaClqc3JjVzQjTHV9YkN+XSV3LEt7YGF+Nk5dJT1IfEBxdHpvYD9iTD50'@; put 'OihxOG9xZ2BiQ35vLEYxdDpgMjpnfjhIS0YxLzt7d1FmY1lEeiErISZKbE41cl5EMkdnTDEwYSo2dlthSV17YiY8XnZbdyN2UEI1UVovNjd6ejlwOWt5ZVBbJjBEd3BCTmZYb3k+cjchbyRNaF5bUXkpc2xZJDwiSV87PHg1OXliKDkmO318anY6KEFsMzJrdTokRG0qazBhXkphJkw0cjlZPGck'@; put 'VCMocVtZcG8iXX1vdlZPWjteRVo/UD4kS2hgOncocC97LjM7PGJDPEhLJTVIOGhQbW5qT0hnU281MSJFWE47cn1PRTRKNmcpS2tNS1QoYiw/QF5GK1pZckxoYXRCT31kWG81JkFvcXkmQFpnM3RlTSk/WF1uaHNPWys1SH5fNEl8U0pVXTU5PSVqKUVKaU5nZUshOTI8dmZwLi4mZlFIIXFbTnpC'@; put 'OUJ5I0c4VVtOSDtrdnk1YWxFMzd5MmwqUDR7RyomTDQ/fFM1LnNLcypuZmM+Vj9FMXJiYFpTST5HPkEpOiYoUVVEQ0pyYVk+U31OWD97PWZ0KXA0QmVLcDUoLDJ4LihoKnVGRURDKGdLUU0vNSl9ZyUoLDRVYmJvcz4qLlpgayE8OSZWYyg7emhIbyU8dlZWYjQpMjZZOW1aSzI5UCRHMj9wS0go'@; put 'LEBTYXl7eEQlajlyfnApSno5cj97dFBYPTBUMFNlJj5IMGlZT3praHQzU3tiKntCb28xOlRyRTA0VmJ4b3RJT3pXJEw1RH1iPFc4SD16c0M0eCN4Sik+OkFtXlZ5WVZPXXAyYTNZOVM4LyZbZXMsYkhDcUhtNkZCdnBnTSlKMVFlMHpaNF1ORW80JChsMSIkN0NydUkxYmdBMCNIbWkzKUpHQGRM'@; put 'MDJmKGpZOlBiTERieWw5Pk88aE4qenk9OSxAS3JAK2pLNVZeUnZIIWRKdSp4cVJFPHxMRWFWQyQhJmF7QFAleClOdjErZmN8KnUiM0N5RXZIUjBYSHsxdE8+VltOL2hYMTYxZmwoQkkxVjFnMEE4UzhbamlNfnRML1Jfa1BgcCExZG88Lmg+SmtuW2klVz8sRFlAWCtkPn4jZHFTSkl8Zkpvc2My'@; put 'aVU+em5aZ0Z1dWc4PTVVcSpZeisvS2JpQjFgWlE3blBaRmNvMjReemV3cSU8aFJhMkEpUDBxdXtIUlk3aWFVdyEifk1uZkJNIShJdX5GajlLNFQoITg6SVtldlpYdG5MNlgydXBAWWVLKjl0MSklOTFpWCtxQ3UrIjF+LCJyZWNva2NxXk5CZG47OCtGNG89cW9OS21FYXooTExpdUk4O2w+eXJ0'@; put 'UitpdE90Pnxhc2ltTEx8Yi9vcFc+PE4heHl9NUVDQEh2Mm5vUW1Ke1pqZiVzPmZ4ZCQwR3l2R2l3cXVLS0FdMTRUODcpY35wN05oeHAjJjEjOllafVhxXmwjSShrUFJxNX5bPHJJR3pBaFBgSUlqblFEP0YsLHI1WyZafl8+WTRRMFlNQD56VkFTNUxZJVs3IVppekV9Kio/a2pKdjkpOyVdZ3hm'@; put 'cnBPPXNLVHhOLFdwNSljJUZyJnArM3YwdF1gNjJxRGpabkY4USY7YDQhW3toSjZUa2YkajFfbT5AQFdSIl17Iz0oeHpPIStobD5QMk8vTnRhYCFKZDV5RzdvPllFXUpoKGpHQyF9Jn4uZVJGVnVdeCZsTCh+PjVVSUI+UDwqYGgrJkYpXl8sTDxrIj5KPDAxSkJyWGtQNUoqQWRsOTFxaU5SKjxq'@; put 'dVkqZn16QWZgTDNJb1V8JGZ0Yj9SPTNQdUV1UU1yRT9ESH18QnFMI0EwY1lMTF5FPFF1JSlAXztGanZNUzlEfDZ+eVlWdStLM0lNJWtmPGdqb0xSM1lJLF9dKTtGUyZxTTxPX1FRaEBRV3JaMDJjYjJ4UFJwN3BZMGQ+WUY+en5AT3t4MUNfI1FpZntPPnFgJVgsKHE5alZYXWdnIzpZSH5oOEk4'@; put 'I2hNNXNzP1tBbHZ3OlVAM1cpMSFRRzNGOmttV2pgdnM7Vjg/Jm56YUdmYj9NclhxKDJhbk9Ue2JaXSl1IX5iLEh9Um9iNU51YDV7dkR3IkxXNXIpUndFfkx7NT9RcUtRLjZkUVV2JiVzPEpxajpfIT09ZmY/eHV9WnJLRTAlTm9tKmpTV3ZfP1JsQVUiSl1QVCZ8JCJWclpbYGFnSS9RMU81Qyhk'@; put 'UFRdfG1vZGtWakVDbWt6PXlBP0pVNlpHe1FfdSRbNUZOck9sPGNvYih2JTwlcGFOLlVhVjZKciwwdTg/W2kqPjY2P2AkJjNhV0xNK2Bva2s4QXJpW1Y9SCxDM1oxPjo1OChJMnBxaGgkLylJfn16anpYNnI5NWklPy4pLlszYUBiLGdWPWdEbk96KWhHbmsuYW9sIWlsK0w+X0VdYHV1KVJrNnlM'@; put 'OyslOW43KmBJRjZ0eyJDbDdfakhbezQ9WTsiVi5OditGTFJmZjxqfWJCOjEjO1kpfkx4bVVHcmI+eSpkbjEucTglfFB1ZzF7ezBYT2pvU1tnYGtZcWZ6VWN7Wig2JSFzJV91RWx8YGpbZSJRR2NCUHw6KDhEZCJLbXZUTjZ1RjFUKj5KMH4vWTR4fXErPW5gTzZUPFZzIiJ9IiQiezRyY2svWWhI'@; put 'LyhbNyZQPV84MmxwVWNmKHVacDQhcER6XVRqaEd4KXwqVz9ycStKRVZTZUo9MHZAZ0Q8YnUyT0gofXtFUC9VbTJtdXJYUHdhaWFQelRBfFpnPF5sSyI0fi5aXVAscT4kST4uOkV0Nls8Jjgub1dzXlM6KTZ4ND0vayhbe25WXyw1cC92KTIwRiZYanlASCo5Qz48TmFfYmhZPVRuTEBeLDVbJSU8'@; put 'd2Rqb0RRaSp7Nlc8WHc0dys8cyFAZ2pYSGIyO1sxcCU1dENgaEg7Q1ghUDB8JTcvIkpEPlV2eFl4UjExRTVBfEhoLCE/ZD1EITdZQHVoeGM8N2xYR3M9P05TeS5gdkxUTXRSTiJrK280T2YuPVVMPiJdI1F+V1I1TW01ME59NyVKKzdvSj9XJEtqaVJae2FwLzl4R3csTzk+Xkk3YmdnaGslaSU+'@; put 'XlQmOS5jdUNfNjFjOz07dXJxV2FINFtmaE15d3U9KWtWfm1gLjViWnsxXVpXI1tTTWw9aio8O21bQG53KlVsZHcvZikuNU1Ra3F0ZFh8PTFVX1AlSSpZQUFBQXl1Q0FvNCkpUURISGtTZHR0JT4rdWROL1UzIjo5Zl0xe0RpQFRIM1JRQ0VZJEFBQUFBQUF1VzRpdV9lYUVqLHE6JFJfTnljaCw4'@; put 'KXt3cVpoVW5TcTpIaWh1aVk0bmAsIUJGfWlbNGRFPl4/SlgpR316OGFwNDcjK1NCU0ZLWkIiRWNDN2FoNn0+TV5NaS5NaG59UkB1I3RlSitLI2JnTGR1WX1Ma1BeTE47Sjlfai9fKVhLQzpMR3BpQEU9ZTx9TnF0SH42OjgjUTM0RSh2THUiIzFBdlNsOEdzY3E4VGQvK3tqVT9+YEdLayNENl0v'@; put 'WSVQK2Bpekw6eUZdckpmbjFpZWgubWhbdXopTVE3JkFJTVBbcVV0USQ3MXdGYGorNkI/dlJRT34mWW59W29vW0RJakUwejcpbiU5fVlKZlU+YlZYK3F2RHRLaztleTZXTCNQVF9lTCl5NDUhcVp6PzEkKllPODRWRSRzX150ZE9dejhbUU06ISIhVkd7dC4jbCJmNGg3MXlQQEErOktwaF09VilF'@; put 'Ym5HNnwhN3suVTBRLD9AJmQmfFouUyx3VGRdbkVIIUIiayowT3J6MUQ7NFRZZi43Zkl9bkJ9ZFIoVWIsSXQuNEMkUVs3cFhqbHxjO0FFdUQuMHJMJU1kYHZ2P3NmXi83RC5iUypVeFg6blt5SF9KQklgNT1TOFhDOHZ2TDdCcS9yfCpJbURhdlRucGcofTw9Yi8yMGNiMGkrXlNycixNQFJJfSNA'@; put 'YX52a0w0MzFMWUA9PW5HUkpdVH5EKjVFXnZYSF19SUNrbjdWaj5aKDB7QGBLTGNobTJkb2UlVl8/ekskaGs8cmx9SjxiZ2AkZy5MPnpPSWM6fD90VTBzbyRiWH4hLyRGUGwpMkZYRiteSnx7fTd7WGFDdVsmZXFsWHNNIWNTe2pgKk93eE1WXiVnJEk6JXptcjB8OmFCVV5XV2N9ZDlefnZ7OWRG'@; put 'YSJVTUNscyJzR0lYTV9uR21uWDZ6cWpnRWwxKmlYYXg9RG5OY2l+d3lNan40SH5UOG5OP0N0K1pwZUB6d3pkJmw4I0YyJk9YcCsuXzloUWg0KFVydFNkUmw8dWs1cmQ6STE9ITo8OThzT1EhNHBeZTRqUl9lSCZ3QHE1QFNoe3BeMldhNFgkYmA2bDozTzZTOEZ2eHw4eWVZbWxpc188aFIwQG9z'@; put 'PzxuWS9lRTo/SlhWKnx9SEJuMVdqNHxTZV5DI0UiaSFYemFDYm9QR1tPaFspeVBISGxtPEdgZlMpXT1HTyZaOzs9d35yelI1PnlReWlZaS4rKkdQejRFNzQ6V3U3M3YrR3RHdVNJWDxSXT4pJEtYLF0iT3tBJCFlTkZSQD1OcDQuNzdOelEsWlRpVUlBJmxAZ0ZvRH15Yi5Fdy9saVJJNDFPVyg3'@; put 'dC9CciNPO1NZIUpTYVIrciZfYFIqdGBMYUtBZEgpRS9SUCJEVmklO081T3hbNDw1bz1+KiNAUk00ajwsOSUkJERHfU47bj1fZyhhWXApflkjfi94L2tmWj9CYEczdmh4dlVxbVZKTVVhNCk8JjZbSXRwUnlEY3IuZTRjSFVaZlhbV3IiYWlycmp4YXY7ZU0kNEVAN2Y0YHJKaHMqW05UcnNOMXo4'@; put 'ciMoUXxyWkZKbjxPIXROOEtsPy9NPzY1NVRQbjRuMG1sQF8qZVp4dV0lNSpFeGpKYUlWcWN4JlBzOSgyJDRYeT9ZN1VFMVJZUXJZbFg+W2s2e0x7SD12KyZiKiRYVk86U2pleCtsZml2eShXTXxLbCU7VG02MjhqWGBiYyplL1hXTlBSWTV7PlEjT3t3JXFkNzVLI2AlIWpkcXdWOX04M1lSIitp'@; put 'cHs0T3ozSDJlNHYxUDdnaCZufT9laCsiInQrJHc+PzJuXVZWJFsuamM9eiwoXnsxLy5DdXZuRUxsUlVDKi43eGZRRz87UG9CI3tRXykzKlV4Ql1GQillJFpFTTpZXTEheigqcXIzV2N2TGhsS1U/aDB2cT5qJjsoaGFSd10kQ2I6SzJgU0VlSFcofkA8bUdYNVNyIzIqdEUsTVpfUy99em0kMigy'@; put 'e3xZXyZLXSg6RDoza0gufUlgLzduYX5+YkE3dEtkYEIwRjQ8Uz90Rnk7NC5kQylSQF11biRnRHUqWygwW0JFJHNhO05be3c7XmM+L347TCJMNHlwXyZAdVtyMjBvZjYjWFM4RjZAZCVRQ08mR1l6WmtPSjNJK1VNXWEwXih5SF5RTlVicERgeUNhNFs7R3tsUDohWGlZRyosO2lPXn5EOjssRE1t'@; put 'Pz1fcVY4PDl8SDw+SV1qTSxNZmtNUX1jfF87R2Z7V1syOU8vYmBaX2VeIn5eTjBmXXZpJXFnTio2c2RSJCVSfE9XPT1BTlIlMXcleTQ3azE5bDdJakhaM2p7PkkjYVFDbkNaczdQa19dSFo9QGp0IyRjeEMoakhMTCV1KX5pJmEhNXdXeChFRGxvRiFjdmR5azZiZWkiMFZoeC91RUUrezdbOV1H'@; put 'c1F+I3dMWiN7WktleXFkaV5lODkxSCRhNyNkOzdaejE8QmsofChfbG57QiVFYCFJekJAYWg0USpKPERuUmBkSTR8Sks0NkV+VCR4KSZ5bm5TLlhMUVgiMUlLP09nbEN1MVp2MER9bU1YNk1va2hGNEc5a3MvazE0ImdZTFttRC55LyVUInxuOkskI3pFNDxQXWFqVUhZUm0pfj41YExlQDJUZmc6'@; put 'RVEpcyJiQGp+W2gxRzQhajNEY3UkLERFak5HLHxrWlguM1dELnB2SHUsTmQ9dzpiX0BWSlF0e006VCZNNTVUJis0T0NILnomOSJlcjZoUEtRZ3F1M3oqNG9eclsheEErc0cwdFtHP0g6UzxyMWxYYzBNanJEck8kVjgocnl0WUtkMWcjOVllPXY4ZipxK2FHQm5pYyVpR1tJenwwO0NMMjhlYylK'@; put 'cjI8R2IsKVh6Z1JUMGwveDAzWmBwTUsye3Z7amZGMFR3InJRI2F7SSUoSXs6cj91JCVlaTtXb2JLYExwXSh9ZFYqeE87L0FAZXFgZWpVR1ZjL1h3YU5GVUlyOyEwdUpMJltvWnRzNCtZKDVjXWNQZG1hLz5FVjMwRVIxa1ZfcyFrS0JQT15JV1hzY2shX2p8RV9LWWIhelB6UH1ydk1yO2M5aitO'@; put 'IzZ+STI+M01uO1dwflVvQ20vRnpPOFFVbmo4ckptJTdQKTpAUDRCKmBRaltZfjpkWyt2UmE8bkkxOS5jfHhHMlNqbyVsIiRCZ0lzS2cvRnhBOSllbzpseT1ePWslX3BKLFQpd3RdSE87OTFzXUlvT1Z5ZEc3OWMycy8mMV1GOVIlaExjek0/PWpKRiFPWGYxa1RZOHU6O2NTY09INmhvWDkvZUM+'@; put 'T34iJWVoZHByOGRZdy5LPnRiXi9dMlhedTJUZG9PM0M4MUJpbnVoeUJkRiRoKzsxPVdqRzlJdCtPcSwifk8wWXhHXz16Wmsybkx4KU1NUlc4Xz4kdUFMUDVzOzs5KF82YCZ6Ny5WY1UuSjg/VmkpKGplWlN3O1MyKT0vVngsZyZ5eHgwIzZ5ZFtRSl1sUExdYCR2ZXxsNUV6dDQ0Zld4OVcrbDFb'@; put 'ZVppMW5ZZWVSdHpmYTIrSDxTSTA8QmFDT1M0IzslemtPMkV8QG9dVDpjdm5yLj9bVmkrPUV3WVRaYzM8MzprWTh6WlhsUytfd0Q/PnlQJG0iVXxMJjk6cVV+ST44SkNhY1l1QiwxWUJnKC8maSVmO1grUz5DaGghP35YWE9PODNHLix8PzguO2ArYTsjTjpDeUJjUUFwQHg7cV51PHlJPCtQPGkw'@; put 'cjhZd3AzZVR5ZkpaKkF7cDh8MXNUJV06KXtwTEpXV2l0PVE9JDl9SVo8VzY7bzFQVl4sNj0wQDI+KE1WPT99bjJtRFh6W0NGYyZKa01WSkVgdlJGaVAxRVI5IyQrbFZoMi9tcTNXdmM5cjVuJSk0a0JYVV5yNVVCXzkkUmpyJlopI1ExSEYodHhFLkdYa1lGeURjYTx2QF5Qd09iYSM5T2lMdUd+'@; put 'K2JhbEBuRHtBP281LCFBImVDbGtoL1VDJTNxMEZObFc6JWMiISwxYTZAKXJVV2FWMU40Vyo/TiJOMnNGMml3VCNwV2c+XUFTUSkjKmNkdnM4c3J1ME1jOyphfURhNXwmMGlBPkZkdUsia3B0NCFVWmArc1VLR0tyJGohLDByOjhzSm44V1FKVG5gNVc6YUdiXU5SRTwzZ2VuPX1aIWRGSnY2UyZk'@; put 'XykpZVloK3lvVm1QanFZQkJsKHU6K0QmP1BaQiZ6Ji5LTmNZK1BraXFUc1ldfHtbdnI9aSgwRlF7YkZydlAjSyo1WklHVTg1fFgodzE3bDs3O0I7WlglXV1bN0JnXVc1Sj8yVHkqP3B9Rl1WPURueEMjT2FXelBdMnhPVGk0WFF6c1tEOV5wODhxO2swNT16YGAkc1p0Um85UTlEamdsM1lDLHE7'@; put 'bS9CUHJhI3ZQRkQmRSMiK04qcm9nUz5SaGYwfH5+ZmBAc09sQjh0cCY1ITJySytdZUk7bnl+QEV0en5vUClFPSYkPU1mUzpuZW9xPGRXe0NvJSlJUl5ec0V3dzw/YTs9U2ErVz5zKjY8SW54RSE4JTJKRkRBYy9Mbn47X1VuSiN7RlpjWFt0NnM8VjJAJGJUIWQ9QjZnZVQodjx1ZHRTVGxvUHU0'@; put 'TkU1Vz53SV5eY2JHOWM/RkZ0PHVBXlRNdXFwMkA9cz1palZ6ZGhvJixDVSgpWmkweiFqb2ErcWNLfFJTSzhdLkl4YSRfaUMidy5LdjtgV2pDKmR5WF0xcSg0W2cjeio/I3VRMnJhKCZaJkREP3pnPXdbR0NUTSJjakg2MEM/K3p0dzZpeW99dEBicGwhcFNLM1s7c1MmPV5UViUza3laamdmaXNi'@; put 'PUpJPE9+T11lQmUzVzhlLy9VPzBJU350PDcuJjBYZk8oc2A9bnFvWytKOjRgV3FMNkNSL1csSy9VZHtKSmRRSWEzJFQvLloxIUFjNCFXbXhiYzV6VVRhZk9EWEohMVt4PG1GRG1mMkcoTHBHeEYsRndwVz1lWWBJUkV5K3h8Qnk9cEo/NktvRykiVG9kfF02KENrNUddSTVKREF+WURGalRSMy8z'@; put 'alFERml+R0BaQUt6VS5WVkVIV1c+UXFQakVIV2VPaTRDPztiW2R8OXE5bEI6Nm9hcWk5ZmpPN2pRUS5kO3RNX0grYG5nNVArYm5hdDlxRUFvV2Yjby59TWRISmpQUUpKbUgsRVhSNkRldHl1Z2tZbUwydTxJS3QubjFTbUBiPjVyNkZqRzt2MzEhLEI5MVpTL1JYV3pJUlFFcUxqN28lTis8X3dP'@; put 'VUB5OllnZGJCbSU1Uy82WyNzJT84ITUwJiZJVSZUVmlFWEIzOWh2XWlhS28xS18iPT5HRiFbJiROTTd8Rk4wd0p5WjleOkpjbG8zNDBiVWlON0Z9ITpxKChrLnpzcVhqSF03VkZ2YUxeR2s5LCpGN1J4akQ2ZU1OKiRFbTRdOyJqQ1RZKV95X1FCNHBlRUFNOFFQdGRQM3V8JmJyYXhhV291di46'@; put 'd1BBblt4Xn0sbkJETXJDSDdiaGlwfEQpNXZ4ekAxdGIrSCtzNmtqbX45djdWJnYmNE0oJCZEJUZCNHBxK2NOUWp6ZCZoSHo9bSNZZExlW0RwYDpGKmJgYl4zT1opcWYsbXFAQ1h6MVRybCpaJlheVyxSZEMjVz4ldE04ejxrPEleNUwqell6cyo8fH10IWErTnhSQDxsdi5OOipKP3R2MDVJZygi'@; put 'P0AvX1JBfFs+NzB5fjRFMTpYOmJgI21EZjpqbz9YRHlWOT5HJUczNHYpZWxuTUtELixeISpqb295JW1EbDQoLzMqQSNAfW5EITEiOnByKGElUDpZSDgqaVslLjloP2EwKVtBIW5KbEwrcDp0NyhsWG5RJDBfMS5Tcy4+UVo1OGopNkksM09EeFlFUz1kOUU9Rnxzb2cwImpWMU5jKGx6QCFxaklt'@; put 'WSZjZmwvcTEiRUp6SSYlQzp9MVVVOzd9Y016WW0oUEk2NFFIO11Ed0t3Tnw5a05QQi40YXM6cGopZl9KJmF2IzZqezJAM1I6WVdOZjYxVGFJT0xIWWNnPGdKfUprXWg4ZWFORVAyRFZbJGheKitJUnNndVFpVkp2O3A7TCtEVGwyW0M2MiUxKmlieFk8fFAhbFBwR0VtKC9QRio/PTRWXn0pdnE2'@; put 'SWd6YzVse3F1KHJZSy5feEY1NEhCdndQKSJCMVhCbSYpTEF3dU8yXTp9U0tNe2NJZVNOR3NZQ00qUHxifjcqSG8+OXlMV18qPi52InJXejkyQHxJO3Y8NmJPdFlSaiVtNkw5cGFAJjRVZF9fajcvejZCbT02OFopX29eOGV9NGZoVnlwTHVlJSVDIkdVfVIoImRIVyg3O1ZqZGledkhRTGRWKltH'@; put 'S0RDfD5DIUF4S0tUcSpaVj9jR14oUlZgZ0YlYnFiVl4iR04qWGNbYnRNe10zOHk6ZHNzTXkpazx1Ynp8RlZRd3d7YTFFVTFOUFEweko7QUl2U0s7Nk5DODAqTGwhQmZyODdlOy9RInFFRkBNfXZ4SiNiWTlvRTtuOTVXNT54R2UwenF+fTRDLkc3QyV4c2hpSDYzMSNPaCZIU2FaJTNNLCQhMj92'@; put 'Y3F+Vnw9Xmw3YDU4LldMXiNqRCl4I0BrVm5HJWBMZ25eQyQ/ZChZY2p1JCZRYTVVfERvV05jZk5WKWwocHphRzxzQUc8Vyt4Y2VvbzQ0KWJPK09TUiwlY2N+ZTRiZkVQaitne3x8UW5sb1lhMn49PExbR2JkTHV1LztqO2ZxTnJrenNrd3szVHUlekJCUHwpaXBrc2lnYmRyLzhRaT9rdHhHUnY4'@; put 'LHssRSxlZS5GYUJgUGVYYypoYjl9STE4QzBxb3lFKVJGeFovS3g4VmF0WiRzSXk3XWM4SEM9YUxCZzpUKlRwd1VQQmEkSnRrIX5uMT0jcnhPYVdEc0dyTWVkJW14dnpSYGRmbF1PKlF4QTJ7PG0pYG5sYkQ7SHBmQ2NeKFNmRFchMk8zdFN5eWRuWDpjNEQ1eHNpYlh9LFFScFVSQ2E/K1JQZHt7'@; put 'WX1xVUBjcWN9cCkwL35FNEd4dSE9NT5qTGx4aE48NGFJXWsvJjR9al86NXhyR2BzUU8+Wz9jMng3UyNVcCwkR0pLYEk7YEVkX3QpO3RdRUklI2MzIShxWldJcDwrdyhRIyx6fWIvS0ZCdT1jamI4Uy9LYVNdMSR9O3BYWEhYcVVmemo7YFE/eyVFKV9qLEg5JUo4ZipxIyNoNTFyQ3w5R3FjNT0q'@; put 'NnRKNkJYKnJodH1wLCtzW3xeSH47WU9RIXxFbXNATDgraHs/b0J0W29ZS21oJU8xZXslRnY7QSk/YHFNOn07JkZdV2tUWUkxQXVHKnNKZGs+bj4uTW1mUVAuNTYzVCh5MD8kPl4pSjQvOVc1SGlnQnFNRS5vYCssWC5IZ3poZ3FIQUI8VnllZWtkUEAiPkNwLnA/bUgyZnllLkt0YT5ePihxOVZO'@; put 'b0RaL1lpJkhBKm45c3pXWHl6eFJLMzBzPUs8QmgwPyY1OGE4PCpuVGtjIzt6IzsmJVFuQ3o6Wj5UT0F3ZlRoRE9CL0RKOF8wbWh+WzVwOi9aLFc3RFFDSEJSci9+TnY9WF1mXSspV0dzSzVbczhWSnMkQVhOTXRSNjtCe010LCxedl17T3JzXjp5WCMuPmJ9P2A/NWNxUGI3eSFfflo9RnRNYl5b'@; put 'bSxbLiNsSS83ekczP0A4dDEhUHYoOzNneklbTVpCbVtGR1F+TmtaU0JWRXxXcHApSEVmK3VDbzR6ZW04NGV7LDFvODByaz1eKSRaQ1U2Umt2dHkhVSVwVFchPFdyeD1wQlVfYHMvVThPVXpzSTx5fmlhJnVIXThGb2RNTWdIVG97ZjVKNzB7LzNSOmdlQm1reSt1cXxNO2J3YFs4MTVIfDglR24j'@; put 'JFImQ1dWTjZnM3BhR2J2QDtmWzo2OyxPeTFhWTBnaVhVeyY6JVBybTtPKS4zaFRFOVhqNmUlKHxVdyhTaFEpOW5Ebz11ciZiOFNRSFRkPC5HP1k7KSl+dDVHJCklYj9uRTBjSWg4I359WT9VZDY2ZmosPms1UnBiPiNBR3pnN00veDRZbHh9RERERygvQkc9X1EoW0x7V1EvKD5OUV4wMXdhdis9'@; put 'OzgycW9jLi53ckpWd1JvfDI0OS52OngxIUhoWChyVFYmbU9bVClHQE1Zd0IqUDAuJVBTKFNZK1FSQUNnW3xaZCl7LDteLmRIbG4jJndpLHVAM0lkOElycTMue2ZQRXRqI3lTNmFTTyNJJV5UPkckNXwiYWUqTGE4KmYyZFdGYnZhekVQRzNNMk8hVUV+X2lbWnw/S1E7TlFhaSh3TnF6VSxDTCI3'@; put 'SW5XcSM+cUx3L0RoSXdgWkNSLm5CWVBfenJhNmF4cW86VFomTUhNNWN0I0JRWnhIP0chPTp4VnVLcFdUdWxiakxNMXJ2JUcuTFQ3NDMrZWtsRTtnP2tja1QxdFQsNkQwaSVkdC5ldXE+cCQwUCpBPm1OWSxHSEpPcXliX2tNK00jSWQ4VEJiVnRzI2pYVE06aSVLYjZUQmYzPy4ual8mJGFwSnox'@; put 'UVFGOnZLVWQwaFNFbSo2UHV5bWVINzsreF11NUM7QT1fPVIkOEA7ZGxdQn1Vczc6Zld3OHZVYUkxYChwSSNJRF0+Tz5qWmM8LnNfLjUjMkBMPCFPeS5TfXxUbzwjLiRdd3grNEZ+Xk5GKkFyVjRUdjgsMWI/L05tLD9vUTgsRWBYS3pEaUtWRkNsbmJmbC8uInk1bjQlSEwzPCJES0U4OmckaUli'@; put 'ZW03OThafHRYY1o3XVIjbl57WWpeb3g4bkZ6ZHEmfChYeHN0LGI+YERsPEJ1M35bWSk0UUN0UzYjTWgmSmZEZCo3KzlKLkYuKUMoKlBePjBfdD1pWD1tYXxtN18zTjJkaS5CclJZYjhFOkFFVGldZVJAQXs6NmFzbSFGTTdVRkQ8ZjYzPDhRK35GVSN0I2pZc2J5ZVF4KWcrfVIjfDJUYzVlfCZ7'@; put 'UX5gIkRJMDw3JUZkWWBOQ2Y4XiFDQUQ4UWN7UltbNWBrJEBrOF8iYCZDY0U4dlhtNXArcH0+cjJgOHA6VEFsK0tAPUJLcj1+aTopPE9YMFIkWVAkeSJjZEhOLzdzOyFqKi95PnhIL35LQCYwJFNCOHlCVW5SMzR0PHpxe0hLREhrYkVBYlVkdCg/JTBzanI5Qzt1ckpLeDVuSCUhbUBuN01Mek89'@; put 'TyY/YU8ySlR5PSomPnVKKjYoKG5iTk9sKjlkIzU6XiROLlRoUGIrYjMlI1ZkUlMjeWRDWH5pNW9RUmc7a25AMXN5fXRTYEtPL1svNz1+Ml1WIUo4UGV0VH54JHFPQDBGN08oU3R0T2xbUjYvIWB+XSkra2lkR14jRHEpSzNYOmI4fF5ZY3pgLDdkcTI1NmpVI3YxenVDV0Q5ZCNnRCUlWXxXU0Y+'@; put 'fHV8QFBfK2JTNjtrfXZtPG8oSCIkYjxaMSlAe3pWckN4ViQvc3FdWl4yM0ZeInJ4XndMOihkeEoiIi88ZXYkKjd0I1dHYnJnSjQ/NT8sNzBGUHxxPEQoMEJkTyFURHh6RSNrdVojTFZ9Omo/YnVGNEMjQG13fkZjfTdrW2Y5WkE3PTFGVH05fEJFQ2EjIjw2cWc+blRgY0ZVcXMqc0E/Ulolb0km'@; put 'Y30oZHB+biFRKFE4MFRPfDJ6MU5OdDg9SCZQcVFLVzhqUj4mSV5edV9GNXxsSD1+NVlNald8Njh0JmNSYCxzfTtkdHN8dDNEVGxndyFRRTo/UUJRQD8xWzRsWi98PWVyNDtoSWVSNCZ6YUUmRGptOjwvKVdESTEwY051PllLM29pUiZBVVdiIXtCZWRqZmZTZkRbNTM0Z2B1KU48XXRhTDtZY2p6'@; put 'MkZOIzN3UD0kfnpzdFgudClOXStEVkk/XXhbK2RxPVhaQmRzaSloekdvIkhsOjlOInY8aVtmKDFkIVZfND1Ubl9TL1p3bkAoaWJRTnJ5QnJLMVFqaHI7ZEBdX2lPI20zMGk3YExbUn1TIVRQQ0ZnMjxlOF17Z1kxOiMsTiE6fWMmTlJ2bFYkcV1nXUg8M2NzIWpYdFFpSjFiNSlQfmtPUEoxPypS'@; put 'SG58fW8zNSVjKCJhJHtDSEBvREN8Xks6ZndHbURtQmF5SkQuWTs3TXlsLC50NGZVRV12Mn12RWVybSZXWyN1aUk8Qjw5N1lCX2s4NnBwfTouZDk4KHdUcHA/am02T3VsJDkrUmp2Pyh+TWJNTF5YYCRTekI9V2NwRngkJjwrTjZTQ09ATlJVR0pROG9BaTZ5P1QkeEwkbXllbHJJOHNLUDJ1bTxX'@; put 'TFBJb3JVeS9eO09SJigiamkhLnA5TShyaSRjN15bInFJPGUydkBsPkl0WERwaFtvPkQ1IzdmOj1MPChEXU9EKGhKbytxK0NlQllnZyhHel5QLjVaOlkmc0RHS3FWNyxGOiV3Nis/djFKMiUoIXshNnxIPkUrOnAxeGdBVmxXb1VmVyQ7L200LHZMaUQ/cUA3NXxrbC9qWlkxX1tvUzQ7Mz87U2Fk'@; put 'UUlvKkkxLEVja2w3XjJlQkhefEZjck9ieWxbbXM6UCJNaCtGe309Miw5RWRMTy5rfUU6ekw2cDFwKGcjLFI9UkpIKyQ7fX5wLCxPPylKQk05Pi5jakVvTE8jbnU2VkptS0w+Xj84PVNoaHtULGA/OEIwNSYmUixtUGcqZXxtSyh2YnIvYilLX115TGorUHc5UjVmY099SyMkLDxoczlRU3s8a1pT'@; put 'NFVDUmIzT2RJbjptZmhqISFaXjpfLnRTTCpoMkxma0lKJVo/X2FZck4+TWFSSjIwJjJUdT4zPChiUCEodzJTLk1vbWo7TiIlI19TZWNsITs1N1NDNTY2ZFJ4KWBSWSkzY2R6ckAlUVB1QVZrLGFXdXlxa311Ln03T3J9JDpXT3ReOGZabElENG9SUF9NWUlsN0FpO3FaLyg5KExSI3I7ZmVTQVQj'@; put 'JFMzW1BFRDFMR2FAfGQ0OHdVW2tlJUt7OlBMJEJkNSR4YCJgVWt2KCp6JFtpczo5XzZ7QGZ8PHl0dUh5MC9bWWwwdF09LCRVOTZnTntNO1JdcnAsYzlzMUU6YmJUVHovSnlzcF9CWH0oQlhYKmApMHdeU20uZ045MVVRI3FRZ0tuQzxzYDx+RFJ+QnEhImd6OWhMfDs7Xi9ybXU8eSkmVWxAJVtE'@; put 'MX5dZSNvaCFqb0ZkWF1eYHxtSFh+N25BJiRnMW4lbXtwaHV3MlZpXXVhJmNHM01MOHgwal4vM3QvSCxzPDgpaXpjaSJxayZ4T0NTNnt3SGReU0M8RVZkdzN4L2FlPyhjNUdZR1I9VlFCWl1aSk9XSit7ZEVffHJSMiMwMU5AI080TkgzPWgrR1cxfisvX3kzS3YqakVley48YGBOMiEvUD1DczFA'@; put 'TFs7Xi5PUD8zVlZ0Ly9GPmNWKng5fil3WnN7JiFoe0hwK0E5OmIzQjpiY15oSUtYWlZMTFAyXkF6enNiXUQ2Rm9QW212I3xlYTlfWEBwPk4pXUBEIzFkIUBkdD19dmsobkAyQ2g0cDRwZltbZzgqczkjJWwzekpWX307JT89TCxXSkldOHRdRzlldDxIdDxHPHgpQSVjI1BrJi9mPFk5MC9VIlR6'@; put 'OzxXezpKTkEqIzgiJVlGOyUqfTMjZmQsVV44THU7Vzh1YXcoaFAmfGEvJkg0N1hkWD5saXUlW15sYVN5YCVPL3h6d3QkMzIrPk02Q3ZxNG1wZHViZndVV19yc3IvIUA+eTFnIzA2Ozl6WCx5OkIqSHNzOz15MExocVk7T0FiYE5ZNy4xSEN2ezpGWygrU3xnXTk6LE82Mzc3RD9bNDFYYUFsVVRY'@; put 'P15NSjxvKHs+Qyo4P2FNJSVXdUZrYGNbKFdMWVJgTytuVW5SM35GPH1hRlFpUz1aZkghXUc+TGtlcyg0XWR5QjhLVyVtOnwmUHI5e1lRSXVhPzYoK2BoK0duK2lqb2RBLHBKRVI+W1Y0eHZ6WG8qImNrVVIsXm53IXUwbFQrbkljQ14/JUU3KUgsL2Fyc043eDsmZnMhOVQkVDlpOnhmVG1FNTdw'@; put 'JCpGNmpDNEZiQl5Odk1Le3BdTjAiMUc5cyN4bmVULEM2alghMC9KPlhSREdbb3R9SzwyWFMlcjIha1pxMCNIO2lkJnpJIz9MKi95WTNzcnxFe0MmL3EkKj0+IiouPGFjZW45WTt9XjhZezB1cD58cEB1e0hjZF5IJS9GXls5dkspP202fD5gPCJOOVRobn0xcSp5JjtRPjQzRyE9ejE1Sk1PIUI4'@; put 'V1loOn1CQFRGPFBGNEx7ZGA1XVMlQEQxPHxqVTBXSHU7WVdRdih4NW5rTUQ4aEdDWmJvLio5dl49YzVydWZpai5mMGk9V2ZoM2t2RSxteEZSX21WRTY7bzlHZmc8eV05cENETEUhSU4yZCVdfT18Oz4+XjpYbXx4VWU8L21sME95QX0/NVU5NGIoYUk4XiZYUWFLX0xUInl3YSJkRilMUyF+M3w+'@; put 'bCJCVHl5LChQTS5CTyYvO21ndD9uLEhCZnJUMFdHZ1JYd0wxcEZFOGBHfTlDQ1Yvc0s+e1dBLklUbSg3cT5nbkw1eWY+a0VjNmt5IUE0WFVCZGZ8ZDohK3pIb3JKNiZrcHl+fjRSfEBIdzx1PFgyPi54JXdALngpZFt6VDFMSVEoaHxSP3ZUWVs7djUiKmw5PHRrayRXNTdWQm1ePzlwOXtoeD1e'@; put 'e29peSNMPzN7e2IwOV0pKXlPO0BZNTNPb29WdFsrUigoYkhNUCh8RFRbS3VFSGxlYUFrVzNpO1klPHQ+NzFwYyZRTDwpYGhkOiRbJjRuLlNdZikhY1tpXX1GL1ZtSX5bJGokZCF5YXh+bl58LyxCYWI9dSJhbyQ4enAuTjNMVXw1aEY7XWZRKkBjJGRPcFBRU2RmUUhgVkt7UWFtIyl2fnEqc2hu'@; put 'WF5ZfjhjNWA/fFQiQHF+TGAyMz5bVVBNIVB4dy9DU3VnZDFqQ1MmWyhXXl1ueXdiJEt8eGBAZFlhPiJROEVjUVY7Qy5dXyVkY3JPR0cpZXlJJnQvdi8rPX1kSiZeNlk7XUZlaThaM1gvNjd9O3QxUG56MT1HTjprMSYyX0xiSk5GSCwpdldfbURUOyk4cWFCKVFDQjpqbj8wXmAibkVVd20mYnIp'@; put 'L1hrVVYpUUNFNTNvUm5uRVVdQXoseVRqJlE9d3t4VU89OVpTOWNlXWk5blhNIU1OIm5QMkpRfEtQUn10dVFiKXhNKnxuZlAlcll3KCQ9VCR0dnR9OzFjKEo/WVk4eVc0SXFfbUNSU2BHKDU6eW5kOWJHZyRYRVJkP2FLZH56JkFyJUxFNENzVTJ0W0ZBUG8+K3lEViglfFohI0BhZXxfKCNFMyxn'@; put 'akZZdktKNlhNVUR0ITBTRldKZD5LNm55c1lbOCRbVl80aVAmTHNWKDVPT3JYaWMsfVMqeDFDb0hNU1VxWSs3cXo1cDdjUCJ8RUY3N09TREdDaV1bU0sxMlFZIngvMURSYWhGW3NJVDMjaHo/ej5tbUtDdSJMYWdsWjBDTnBoLHUrbnB9IyxCbVElNj5sdjFbb1V1ImhVZzJCXzh1Kn1XVDpwUEpL'@; put 'Zj0zWVpYUDxvdnVgcHUoZ1hxdF51XyJtR2lQVCExW30qcUw0ME5rZEA9QkNBI1BIRnFwX1ZPQW11Jjw7fCZuKiU6eF44ZExkJHNQUmtdRlQmckw7ZDp+UlZ9XnojezczLH1sNnxLKF9XNlUuJWhfUz5tTyV9VHY/KDg1NiFZb1Uvb3BYWFJzSkw4KjFrPVtoeWEuL2pYcntTVk1zNTFzNjdZUUol'@; put 'Z0hqNCFveyhgYWZBIzt0bVM2dl1IMjsxSntKLFNkPmw4OnVSPnFuUyU1WDdNdjJGMSNyVXFfP0Yqck9hT2Zqb215UUVwcWJOMXFMfkZVVCEqX2QjOVNoLDZqeDJMTyY0fklHS3BvVkQ7VHczSmQzcGkjfmRQSj1gU05yOzJHfFQ3NCN3V15yaUY9U186M2ZsM1JiK1JMRUBqflYifjVTR0lKMWtK'@; put 'Um5yWTZMVT9dUz5FfHpxKE0oPXYxe2twUkc3Vmc5UjNUNnJTNUFKU3Y2QlooQkRTP0w9WypYaE8uXT4+WkUkc2wvbmhaVkp+eik3PHNNSVpWdVB2ZG08UkJnXUQ4W1EqdyNNRixUJGtSYkQjWjwpUDgpYWJaTFFIfUpkUT9tc2h7Rkl5SCRpTFgqREBMalE0eHdTPlAsKDFRMCFvNiw9TUNuZlNd'@; put 'LH05MyhCJXRfc1Y5SlROYndxUjVhN0olcjBHS1VTaUlOeDBAeUdvSV1PN3ZNK2NrTHBbQ0A5MmhTei8qdXIoeHdeRCpEMj8jRGEseUxCOVlDWWt9cSQ9SCh3RndzZihgfTo0UVBTMSV9QkVxK01NaWVEZkZUdn5Ufk9acWZyRWhzYW4rISEkJDEmXy9Ve1B4RzplXjd8OjZkUl07Znc2d3V2ZGQ0'@; put 'P0BrIkdRfjtVOCI1cGRYYUtIYXIyU1NEU29jViZnQ1h0M1dLYWJqSl5oNDVpd081LnkyYFN2bjo2W0E3SWBoU0RrVFZOWTleMV5ffk5bLisxIn05XmhFVXV5L3teRzVDdyUmdVY1Q1M1X1hhfnQodl5bL1lwTykkMV9xdW08YzVBZnQlMHVnKHNzdzJEZkspdXh0WDY8dHA4PHNfcj5IYGZbcHpA'@; put 'QDxeRUlWRUxYezpUZ3dbbENePHBtJmE/UyZMN0EkVWgiOF9iKzJPdiZUdUdvdUZuJTIzZiVBUCJ5VFRmQn42QD5nZ2h9O1JtSzQzRCUlSHlROHFxY0dVOG18XnpLWDtQSFFbRkhpTSV9JUQ1ZUcrWGxZNGM6P1ltcFNrfVJobVFUQG00dF1Uc2dpS3I2bzRncitvS0F6RiM2dnspUWk4Xn4sLlhI'@; put 'bV09ZGJhTUM0Y1puZlFCdms6KF4/eGhTVixsRC4uUztOMHksMVsxSmJ6YUZyUTdgQjhfOTdGdmdDYihNQlY7QnI1NEYhO1Zza1BzM3ZzeHo2KEY2InZhNGAyIjU5V0JqIyIhaUFvJHo5e0pAcF55Nj88YjRERS8lKWlhJnYmbWVMYnYpZW9SPFh8Rk90Nk0jM3NKPmpEVTg3TXp1bXw0UzFGa0Rj'@; put 'dDEvUWxhLEBVYj49KDgweHI0YDhSPTdyNWEvKlQ1PX1JYiExcDtkfittUGNOJkx+S0R9e0o+Oi9qfShNPmpBJUBiOCY8bHA1anpYYWUveH0lNElqQ04mRSV+IS5gRFp6Jjxgb2laV3ExVyFfMHkreTZEKSE+fj49e2pdS0U/SUR9NFMhVCpRU3s6YjtAVFtVQFQueE5UaGh3cUczI1JDfSkmOE9r'@; put 'cmR1fU9LS0Q9Z2tlLmBoKjBAbFZmN050XzNiK01Kczp+aWdEfHB4WTN5RihhaiRvLksrcXE+YSFWMXViRVNLVUNXZEJ7bUpAREslNHtbKk5bYUp0T0RSeX10V2Y+K1BATCZaeCt5OjUpfXNDc3JaN2ZPZ2xJay5gRlR6VERSfGkuJlNpVFMhKnc6e3w8KTEqeC9tYVZDWllSaSx2PSR9QGNTTV5W'@; put 'VVdAQ057NVtoMiFqYUY2dlkmW3Y+QUxrZ248S0lMPTRTLzwoaSx9e3ZHLkRheFd8K0MuQ0dbO3hVPUI4OFNkXWB1TldafjIvSXgvfm9wQltmQk9waDByRDopMUYvMmNLJGw4dHY4TmtYO0VJMUFBbTRibz95a05uOzR2PEI9Lih3Z1ZwM1N3cHdQSVFiVT9sT3ZUcSxqN1BuVCtHflBITlhnP2lO'@; put 'Lyx8aHZFTlk8QyFhSU5fKzVCVzZsdnZFIyg3YFRALDhHT182aU5LJn5+I0wmSmN6bygkSVtwWW1wMGVlMmNxdjA0SUd7KVFlOikyWm5IT3NtPixaKmFlfDBlMF5rdS9ifn1mSkIraz8lLkIuRiE3NiR0dn0lW1MlV25pej04PndhR2lKdm9LdV5PeSRMRF9kaFFiYF4pVCZoe30+PUxdNms6SEVC'@; put 'ZE9YISI2O1JXe25iR3N2Rj9bfSpPZnIuWm8kK0MyI1shUCVeWT5GY3AyMlsvPDNfZEtCUmJpW3M2W0khKUopcyNec2BEcDRyMiIsPjxBZX5xKUhJS15IYXZoWSQsTCRhTSN4JE87fUoiU2NVeXcvSW17NXVYQUBRdEYwM08kfSR4T0tjXW42PE95KWJZUX1pY0tDPCFhRSYmVV9IJnZbW01abVo/'@; put 'SyhIIWg/OWh9RUVuVng8Ly9dKz5MLEx7e0x2MCVFVkRgKGA/ISlLfjJFPktsKlhjSCxEb1p0Rl56bTZQVVYzVHE5cTpKQFkjTj5dajhrdy51el5QeUpzU0x8PyFYST9IbDxONnI2YHBbYFR7Wm55VkJCckM1Ryk8KTw9dkc0RCk3NiZtS3dAIz5wQjp0Kz0vaDpHd3smRG4iXXNQbX1tZyx+eiJH'@; put 'bDMlcUJxNSFQTGBheXpuYDdQLzh6bWtzbHVPZ3t3TDtaQmRTZmRiSFFiTjB6RDt1ODdOZVA8bG13dXNZRCMzPTs8TDFjcXdfJXpdM3VwNH1CVnFlUjp3eX1lN2Q4b1J5SGVlVkIpMkk5TW5Udy9ZbVg0bD1iP1AiQj1+aEx2fjE/JHFlTUFkYXgoaD5KR30uNlcqRiJGNHJQKTNVPTkzUHVYWVEu'@; put 'ZGs9Yk1JN1FdaHBLczwuNHkoeDoqQm02UE1KN2pXezBKRlNlUFVNciZUJD03ZHZKM35eRFtma1t8OkoqdkQudyh3NkpsUi50Q09MPlMldWUpVFhZc048Lm5oJHBxc0NHL2JnLyw6KVhHcmUscFI/W0RyLmp+Nl9OYSU3S2AkfiV+QT5JXTgwTjJqeXBZQTQwQDNLRXVtXktidC5eQHV5dy96TWwh'@; put 'USErTmxaRTs9T2AqeH5OOXFsW2svciFMYk05SiV2OHdRRkVkWXo2U0hPX2hSOm9OaSkiT2pGemhHKil2eip6R2xialslITlwR0s6W0djPVAsOlRbY2FPU3FBJW1hc3JTSyFZYD97TFdablNYImludUs7VS54PyVHKFlGcER2VHxFfjRwIlUvV0p1MzZ5Z29wWyFiMVlTQ3NgTVMuNWl+WGlhQik5'@; put 'UGksZDZ2MS5qaSt1Wy9GY3U9RUlsP2cpaGNYbmREV1Q/UCE7eHMjdyl0dltWQDhTSjBbdTNqMnc2UUJTY0N4Lz00Q35pKWhmSiUjMzU6VXVmbjRjI0osPVNReH5Tal4jcWlqMH51amRhcEY9ck4/USlhY2p4aFdoeTchNVk7QXlWbFsxcHBkMUA5QEsxSF1vdGwhP0JxNUZKWX1KYkB8Kl1UbERv'@; put 'LlNTWyM0RTQ7TiJSKGo4Xm1iU2k/aGhJJVJPdXk5U3VWSjVGdVc6QUNDcCN5MGFkInYsZVhAVVkwfWBJZ0JROGdzIXVBZ3lxbmZ6KWsobyhbJUtaPSxpPkQwelQ+VzNJWTQ0b1pPMGpYSFUifmQpRi5dfj96ZVZ5eTQxeUxsfVtKcWV1fixtbEhVRTExUjtbTjZ+U35fczhUPVplXkQ/KndWRFJz'@; put 'eXRhQVZKYXRWa29+Szw+WiEsWiNgJH1KUiY6NHlkQGtDNkE2MWpGY1JBQ2heMVspbVgvaSwiNSNPKVUvVnVaSGlxUCxnMnFgeDRUfWpaanVnRzJ3dXlgTUVKZGsqM3xHZUN6d0gmQiY4L2FUbFAiMyhVcE5JN11td2ppVVdXYlU0VjpVZSEpRDxVYkU6MHtma0BNYyhzKz8sX1d7Jl5LZyRtRGRm'@; put 'NmhrMywsd1ZGNys/UWxTS2grJkNUSUBqWTlmfGt8WTw5c3p2Z29AJn1EJCtgQSUieUdRViJDIV4oK0ZSI1dXLkJGSX4oel8pMTw4Njw1SDwudHddWmI9enV5XVh9YXxZRD9ZWTVhbF0kcGB3aGdYcXopVjl8QWdPTWJqYzl8LzwzSX5tamRPWzVPU20wIz5vSmJoa1khKUY1UClHQSQ8PHRBM05t'@; put 'K2E4JTxkIlNVQ2pZRi5gR2I8ITRhX0dBQXtZWiZ3R245RyZefEJfWjR1Tkc3NHZlSEg4Iz1hRH13U01qYVJjUWtpb219QDU/S1l+XW59YztbOEtSPVlYU05FQCledi5gRCsxNU1KRm9GXjY/OzA8X1AvbnlBTXMkbjIqV2E7Zjsvei4/WWxlN3dkNikpKVZbJGVEPkNpQSpXbng3aztGI0B8WDR5'@; put 'eDZsOjklXUFLKn41NUw/ZCM1W0JbMFk/QHw9YSxPJUs6WUU1Zl0zamleTlM+MCZKRCwjekh0Q1orTUVsdkBUOyo8VmgzKmV0fD5QVGhGOWRKTyhoX3Q2L2ZGb2NwMUd6NmFGTnd9OShvSmc8VEFrYX0+YCNsJX11TSZlbiVmJUh9QGFAbFs+QUR0elAvXjo2S19DaDg7LD0zWCtPJl1tNDxjblEs'@; put 'I3ZlK0NGaHF7NmZLeGM7OlY4SUBpQFEzKmZebC84O2VuMW14eyVvRyJ2JDRrNlV9OF4zKlpbalJydFptb1JdUGlifltQfXdBKWI6Kn5uWjFGSmR2dFY+bHF8SjR6TyxQS0tHaX1AJGlRKCJfZCp2KXhQRz1qNGwwJVlLS3tFK3ozJVFlOmZNZV80NnhwJV1fTVZyK1ZeVzV4d0JgZ1U0VUFtYTxD'@; put 'JSNAZURCJVh9JEU5aUpAfXYsOHQ7cW9fbkBjYXJsJU55cHV0c1JCUTZbTkttXSIpc3I8NSNqUThrQSJqMFZxWGV3OVlINj5lZVBuaik/bE00XktyZ2E9M0BsNihNWnYmdX55X1pbN0wjaTJsejlbLk45fm5XZCNGYEZaZXx9V3FdTik4MTQ1NEhiMTQ2Q048TlFCbyp3NzZ9U1lgM0xfQ090MCVZ'@; put 'aFVSVWc0eEJtOSpfTU8jdT8mUlskPS5zWWtOJklZPTFnRClEX01Wcj46OkVbcTJ6bnZ7LlhRVl0lZVU+bFRoPVEvTnoiYE44dlF3Jn1uVk4xTFovUz8kOW1+V3kvbExYT146W2Z1azpPKiNaTipgcXYrbyUwS29vPEg/bUBBI2NfV1c6MGE/fik0QnpXOyN4RWlIYCpvbSojblhjJmNObWFdQDNJ'@; put 'PyQzODEsdHA6fk1oOXRieTxsP1VlbyxuWDQ/Qn0/e2A2TEx5WHJLfTE+QSpHT291PG0zKjdudW5zRHJ7NTV0MmkldT90ZEt2eE54Y294L3slR2suUihZWVlEaSk9Zkk+Rj93WyhGei9ra2BrK0JkPks/RSRCYWF0ZExPJnRxcX42ISJKcldsYGhNdFB+ejBLO1IjNFd5I2cqbCE9M21pZHI7dmN5'@; put 'NUQvVT5HWHpSMWt0aWpodSY/O3R6MCExUF5wY1NOK24vPEZOJmd7WTk0JHsyTFhtZ0BdJFFoOl1qYWFPZjdTTjsoNS94d2RkfHQ8dF50ZD5VOTpgOmhwLHUhJW8kaS97dTtrOEhkLC9kMjA3dFliKiQ9YCFheD5nJWhCR2ZXfEU1WyxqWlJfeiohNnJCY0JWWUxfOi9dKEhXRCM2SVhtVTM/Kldx'@; put 'QkVHQGJCfDhPe09ifVU2RyooUCU2YWwrLFtvKkx2OVtAPHg1ZC5+WmQ5KUc/WHNmbHQxZT5yUFRKJG1eZU8rPjk3Qz8qMTorYktWZVtyIlpAcVpaZ3dCRF4zTlhIV0J+YWkmak5FK1hrfGtrMz5VNWVEekE8TyZjdEV0dCo0bD5tTGhTe3hkdyZvSEpIN2t5WmpOWzVCaEBvW1Y8OTUpW2w7cl99'@; put 'ZCFTfTswS0RAfkVyeXFhUztlZihEIWpDY2EqKCVMb3hxKj9PSVRqL3x3cD8uNzJLRDthNjtGMWdpWVY6IVhEZnJGKlhwaktvYmJGb1JfTWRkQiR+Y1NDJVRrK2dnbypnR3J8c0BQNyx4MihaKG8yMjs2SG9GZ25XW3hDdEhrNnx1IkVAQHoucjRFJFFsaFdxWE59c2tCbkxecVM2QVRddVssZ1J3'@; put 'MCElSm1Jc0N2REsvQWhReFU6aDQ0aVldKXlwJW58Yk9KJC5idlYmXkdxTWQzP1g3M2tKZExaOlMpVCZdTHYuMEhYUHUyT0gsUik0dnNeajd2ViZHWGo0QTEmXShsaDBNcllJdGV1Nn1pNk51XWVbRy5ZWCJ8YmhRdWx5Yj96cHkiYmxgYT40cm9BeiNuak1ncCs1akYrUDphPEdDR1Z2N2RHPV49'@; put 'Jj9mcUVAMmlDQG8iIUxqRlhMUjkrZjFoPHxfSGpqZ2w3TzVDOCExam9nV2BVPytAfXdbQWl5O0kveC5PMn16a3Z7MV56UDQmY3RNMk5YdDJgSGljciwqaTFzYVMubEFxQ1BvQDJ6LFNgKio1VyM6P1d0WDxsant8Mk9BSzpvLihyZGtsckJhfGFlbldtK201VXBpWDthUS84U2tsMXglKXV3QWts'@; put 'YXQ4a0okRTUrMm1bX3VORXJFOjZ0QF0+b35tXWxAPl87InQ9cU9rNXs2XThEKlooTi9Fdm4vOElyXnBfMX5kRj9dY2VPR1tUcEdEQkJVa3RlQ1hsLEhpfmkmTikhPWxGNzApVFs3S2lyQSFjQm8vZj9BTGhdbmkoQSpRVDZTZV12P041QjIpLj9nUT9iO11gWSFNZSNMYCJJe1NxbiQ8MntOdy8u'@; put 'I25lODY6SlRDS05bRU56ZDRvb1p2Y1BXST1mZSY7NlROaD4zXis2KXUhfkwrVyFwJXkvbmxMR1UkdCtfc2R4dEV2Smx5R3JjZU8/VGErbHQ0aUA8REhvYUE7ZWomU3AyajA/PDd9Llh5bV9FclVvUkcpTXV1OTErdCk5OyZ5L0RTNj1bPE1iMWV9aDxUYXtMVXJBJEEzfkxPRG1lZUUseFlPVSk3'@; put 'KU1bbHZtKG4+TSJzMVYqeV99YTJvQ34yVkh8JENJSFBYNlA/Pl9bI05dM1Qmb3RHVVAocWN3THwpMVdSfklHV2ZRaVVmeygpUkxgczpkcTpmZUcrNWByPV1VJTwlMTosL2w5XT1lfWFzXyZ6IUZyZmVYLiNHUztUNCkpMDQ1RUFTaXgibnJUeTomdDdUKjNTbSJRbl1ueElRc0FMfE9aSmYxLzMu'@; put 'QW9AI3BpXzxBK1p+Vl5FVSszL04rZjczKWwyW25uTU1iI1hoZGRFI3g6Sll9VkFsdGdaRkRrI0o9Q0NZWj9hdGN+LHN4cGB4Jmc2MnxJREcqMVBobXlpWUd0KlF+VmE7JDVgeU1NallJMzcuektDQFpZZXxvXzFLamcwamhwNzgoRUIuKSgiQUROfSVxI09ZLGRFbGkjZ3AuUyxtOD16Q3BCQmNh'@; put 'JitgQTt0Q0phRW5fbVh2S3E2Szp6KmgjaXJeUnBMSixnekBRSjMjdWw1SDwheTs1R3opRHtHSHg3YTl1PC8ocHN9e3I1X3JSaE1IdU5Ve3NGYn04U11QKHxiaGlbWC8vdyppXXgvQmlTe0xfcUlaOHs4RTlPLF8+ZWtHRDx0TjhIS1EmdXkkXztbZ3pjcXg6ZHtKIWROQ19NIUY4QCo5OjpTW2hx'@; put 'NGxYe0wydiRBZkJLIXlqZWx6YTA/YnhZOjRUZzNZdilxZm5RQ2hiS2U7bXdGOisrO2pnY0BjU1hgK3dZczhBIjgjLykldSp3ay51ZXJXMSw8bSEudSE3RD9WdnBsaFVXfX40aFF6cWV+MnI/KlY0KyFkTD1xeSNkSDFfMElIPXhseSQoOllOJG4jT2w5Q0J9PHBtbUNpMTVBNHtJJXpaSk48Kyhi'@; put 'RWlVdStobWszSjQiPCNZVjlsLCw8bTwmYUVMcVA5M1N4Jk4jYmFjdTtsNHNxbWNVTXV6NnJEYiE+dFEhYnBafGJpUiU2PyE5S2dwUDJbbD9qbE9aTHV0fG9dcU5naGlmUyRITnk8PSplWD1LUlg7Tlh1V0hSTyZXXzolQXM7RDl1VT42S2h4bjBBIkNYRy82eGxeP31uJGppdkRIfXcpZF94MWFg'@; put 'SGQkTjs2WmdNSnpZUXFwXyZ4RFdJVCksUVMrMkIwPnd3Kk1lJV9bL2tifGhXQVJTQDBYWGxMODkoX3cqdEMqQyVOUEIrPColeTQ2aCk+SHsmIzxwfndGcUtRTT1heGNOcihHRERiR2plfGB5O1FWVkhMWG5UJShiUFVTNzpAXXdGYmJefERzQDIoXk9QdSoyaTtFVGA/ejM2Jj9DIW9aK3FRQmNT'@; put 'WWJ2Uyhae3JnSHA9dUFtfEFULENaUj0mKCZaJGVxVzE3KT1jYkA0d0RGKi98dEc9OEpaKl07c2RHciFPWVk7NGh9TyRDMGEzN3w1c1ZabmU2OXVVK3B8aEczRUpafVt7bF9HUWA3Tm84Z05vPkl6MCFdV2x3SWJ3RE03Vntle180OkJDeElaTV88Y2taVX4udys0MGdGaiw3bWc9OHE6QEYmWj9W'@; put 'ImRPd0s0V0tyTjJDRkFafnBbZyRYVzhYNkxBbVJeYF8+VG5bVi9jbFRUeUw7VFZKLFQ6eGtuenR0QW03XjBjbj91RERMNl5MWHh2aDBoPU5xaD1WQ1VkcXVxR2g3N3U2bitLaVNOYzlkP0ZqNmlvfj1HYn5xIzJCT2Z6Si8yS3BkflkoYnQrUmFLfV9BJXxgdyx4P2k9RDBMP1NLM3NiayNdKi5X'@; put 'Jm55MlJvM055UlJ0fltSYls0WlZPNUlxQ3VKcW1iJE82PTdFUUBOMz40aipQImMsPSovK2xVPDpNZ0wmezgqbkgkaUopQSlPcld0S2tpUEJDMlRmTzVofWh9ZDpeeWFbVSU9IipXfDhZXW1MOyhhXjVnQGkkOkg2OjtSZTpIZWl6dDxMO0ZsbyxrXnBlPStSbVlnLjksXnMkPV9eWyh5a1pXaEgw'@; put 'UmciaCpLfkcvbiFyd0IyJUxOKHxFUSlaQ35EJndsVzxCdWMpVjl7Ti9Rc25RRXxaTXtKcGBXVW8+N10/YF8oOVQ9WXd+Ylt9MntKUjBZe1QrUTRVdU5jOUV9Lj4rOHRwOGomVDFONVV1UCZ9O3k4ISl3N245JFJ1aXBhNUNrUjk5KDVkZkJLaEk0QmFiaGpDQ253X2U/bH4/cW9DbTJpaSlqc3gz'@; put 'R1kuaWJFVkhfUSFNUylLP0M1WSViSGplO1RwNzBVOUx0QT4zanlaemRIVy5wQHUze0ZZUyZtITBedmxbKEQ7UkpoalVEZzJuaGRlcmo+OGRWT2sxWEx8U0lOSCRJRSEqdSZ3cl15c0xyIndAPWEjK0JaKnxzTTJYSjg6TUR4cTBpai9qUCk2T2RMQikjTUMrbFs3eGJaTzYiKHpFPzZEZ1VwK1lS'@; put 'K2gubEppZXAxIl9JbHB5aUFsfnRNdkxaQDAuR0tEcWhrOWUlOytVUCF5fC8jU2kmSjVgMlp0aTglJDxQdiNJZFFnZ0xGeCpuXTI/KUsmJSFOeWldaXQ9KipuMDNaSy48bV1ubWFsW1JISDdiPXNpVE9HU11iRGQiSHM3TTt5fjo7XnVYPCszV0xkaTxmRiVoek5Td1g2Q052M3RdRCp9XiYyc09C'@; put 'bkBDM0VBayZzWXovaXttKHRURWg5MDw4cGw3fmZkZzRnejB5JCkpYiYrMDAucGo0MnRLZi8xUmZuJiNKJmFSemc4Omk7O2c+K0NTXUpiX319UyRyPl8lJDpBMipeRWdOOCUzKFdSej5CcSZBKUJ0N0N2SV9rITI0YW0rWnEoTEBUWlNuNi9IOGtHLlswU0daUUx5TkF0d1ZCfSxdflFwRjtuZi5a'@; put 'UTFMJWluSiVDKk4yJDx7TT4jXmh0WEdWKnFdXylbPSlUP2Rvc3sraWhIKGpVKlh4bHJFcTowSGdkMkAlPERLbUJhWD9OTkhkdnxYcHNTenw2XUpyOl91QFYoUSo4V3RMZSVuYDR4cVgyciVEdTlNJnFmbyZbYSQkcUIwUGE+KWc3RHR+Mm05KykmQ0BwcjBCIipFODwwRyF4MX5nejhNfkxue1N6'@; put 'XUg2bXUpU0klIjIpbUFPaTRWfUswPS9PSHlVNTxyeXFbLEIoNUp2TDREL2o7L3RKQjtwRi8jKm1KKix2akF1clJUR3s4ckZBejVYOENwb25ZakU1KFpoKCokI10mTjB7R2dOIWtJciskcW5JYVt3bXJPc1A0L0RgNFhzWmh7WltZZ1E0YDdmU0pbYEklUVY9bFlvJVUkZDpzPiZ7SnxfaDc8PTpG'@; put 'amdaPF9PJUZaQzBJeiRObTJBZkBhRTFgNUUrfnpUSX4iNHR1RDVxM3s1clBtYkxmZmw9VTFZR0h+KWt+Zi8jRmNmd05XTSs0RCp1YCl3YmptbyFMa25OPURbRip8L2RedmF4QyFrVHhEK3dvLzV5SkB2QyFGXzEhSWFzK2R5O2VFPEJJIz18NnM4c0ZMaChjRHdYbWdJKUROKypKdlBNblNke0Ew'@; put 'LkppUFIuRms0T3ttXVsrRmBPdm58RCEoR1k/KUM7ZTBsfnJWUmhkejN8czkvPVYhL2xSQVFGe3wwalFzL0lfclQhR2BLRXZ0JUo9UE9MfGsxbjIwUyNEbDVbNT5mbEJNdCEhfngjRTxDfUwhNVg7WFsrNFopZmppOCRmZn5vMHFmYHlHY142dzJqPkBTfHJgbnZ9dDF8KmY3I3o7dXhqWHw/cDFt'@; put 'KG5mPT5YKHZYaXVsWTc9bDV5Q2w5XnhgeEVHc2E6UU5PPTg0N0RBdj5AdTtNOk9gTjZgUkF9I2k+eChwdkNGMGRHcjdNfGI9cmgmK0J4bTE2aTElTHUmXjp5Vy82cjV5SHshRXMhbEU3L2ViS0JUdypFJUxJIyE5ajRJYEBgQlEiOk1bbmRwKEd2T1VveiVFfCozW2JYQixnRighaGYvYEw8dkp5'@; put 'V3B2ZHFWOmMhNHdEOXdJWUw8TXVDPG98KCNXViE2b34oe09qSkxiL3MsWG9+e2A5RUMoVnZeOno7OkczOXklfiNDN1g+cEA+fEVNYVlYX2Z8UFM6LGY3cltQMWgpbDtwSTpMJi52P2ZQdWRHJT1NaHM+bTRffChUNTd+JUk5KDFuTXQpWip0UkJlQ2RQYU16PXUpKDliSWA2NEg5UHA1KCNYQ3F7'@; put 'TyUwTksuYWhIRT9COjY4Z2RmeG9pQUhwQ3R5PH1hXWQ7P3k6aSp6Tl5QczNedT9IM0JFfThVIWcrMigvdzgwMXVmZHx+SG97bDdTYihoLCF9R04rPyFFVTV3XUQsUzo5ZFlwKSFJIjV0MT88TC9fYm92fDYpTVI5NE8wQFMvUlcuRDNsMSxzZGdAe0JJcSFyfHJzTGV9cT1tYnU7YXx8d1tmNkBN'@; put 'ZFNSa15zbGUzWitkO2RfYENaT0JRW289b3RURyF2WUxGekIjYUZGcXlxSmtIL0UxRSksMSgwSGFyd2UpeyVPRjpZNjBZb3FLOEVIO3s6KWhfe0k7NmFrOnFiT2xQRz1qUjx4TThmY0whcH4lNzp2ViQ3IzRHeSlaX0AqRmlFJixIL0JAfVVCaiZQW2FVMTA6TGBAKW9zdEJ2KVM0K0xqdEtpdnVd'@; put 'dzpCRU5Jb1BIaF9iUlYvKFFZcl56LE5QLlRlKG51fmhgJjlmRmNiflV7KH5Le0YxUG58Y3pbck1+fU9jJFNPLzZbRT1AW1BUIzQ6NmV5fXlHcWwzZDR2O3I5WG96TSFzZTcoRilYTGpmSk1lYDQoL2UjKS9CU1Qwc00iPnhYNC4kJkFrXkl2ZkRgcmZwNXNiSW53fWFRbmx4N3tXWnohez1OdmZN'@; put 'M2UlVn1WOElzSGYjPm9JR0d8KFlgYWZiYCJ1WCM2Q3ZsPXF0XnJdISl1R01wL2huXVJRIiRLaXxGfGVZd0cwT0xWYSJ7bD1vOVFXJHNUUDpZfnptUlMmdyg+TTBFX2Rsd0dqN3BjT2gjeEM7WEwuaFsmNis5YSlqdiN4Pm9ISEozN1FlM1U7Ok97fkRsOCFvTzdLQUNBOE1XOSszcGp5cklxd0wq'@; put 'YEp9ZzZPUGNUXyEzYnpiREYyZHtkaFQ/VCtVODlJVzRAY0pfOGBgWGEmM1Imb2FiaTIqVnQ7bERAa358VTtHK3lzVX5ebmZJKjZOMlIlNFBuZXhHL18oTUBpOUhRciwuISZDTmslUXlhYnw6e1NET1lrJmVrLCRgW3YrI30pS0haSDImKVs6Pz51bk5pTixoOTwvdFlTckdncGhuZy8qLyUlOVg+'@; put 'YTRuVXM/dmxAdF9dZT4yRWdeTmBrXmFITmVxMj0mQG5ERkheS21SUEFHZWhATDplVllwMFpaZEA3dDpkfiVVW1dKZFZrRi5mNEtmS0YoW3d7Nmcwc3BpOkt8TTRtbEcyKUwkQ2pHJjY9OX5kKihUKCV6OWV8Z2t9RFlpUTB0LzVUYiFrdyw6NXNEVlZHQHZkOi5ndkRgZiQ6Zz8ie3cwTF9EKSYq'@; put 'VEA+d21IMjpIYFtWMjQ0c0Z4MEFWPENIcnhzZnYlVE17PiZbeDpdTWJefW49TiROYnwkVV9mXy5OWGB2aDtwd2t6V2hwOEFFSXMvMnxnIXV7OVlOTDNybW4pZzs8fSVpQj1oUmxLdHtfSCUqOHteeS9nVHszVjohfC5HQj5nQnpoI1F3b2RCPzZFcVF7Tzd2UTAufFZ+ODV4OVJQS2QhY1hTZXs/'@; put 'UHlrZHB8K0JPTn01eWYudXFdKmdCfHsxRDg9am14akxwaHcuRHVoLE9SbnE+ekBmcWVZYnI5N1gqKXluZ3pIdih6SzNvY35ZKntWKnkvOjV9b0VhKHVIOSN9ZE12SGEpYmdDYmgvZl9HX1JqUiVBWHxZZWFzJC8yezBQNiQvNSZgX3NXVUJ7JS9rYGE5ZlZeRHU7XWpqRDwqe2EuclVEZCo8NUY0'@; put 'Lkd6WCh3LiUqOG5DWnM/bWFwOF5dQkVRVWRtVVZ8dnlGeURCIUdXUU91UikhdHNZKExNNFpwI2x1dixzWG4/MixkP1tdUT0xaHdrSFIwbCZzaGhLdmYkIWNnOygmM3h8RSVLTGtHaWVIV14kTW86NSEqclBRbD58PWVtPj9Kano/PkpIL3dldTZeeSRLdTg9aCt4VFl1digwYjZdeiNXYzsld2ld'@; put 'aFNqM15oRj8mOTE3KjVuZlU0OFF4fChrXntfbkltZipJfHNgUTs4WzdtIy93Pnl8NE9wV1oyd3dtKnRHLF8jPl5tPDszJHZpenBpKmkuPnJGam07JkRwWEx3JUhPfTFqNT1oWkhJZ0I9aC81bElze0Q0ZWZUek8lU01yckJfWDVuI0dhIjo+TzBWImQ0V0J2UkFPaj09W2JKYl9BVlcuS1QiNVhz'@; put 'MUNNSjJoTkQ0Q2E2IlspTUdCSj0hWmpMdm5xUltlfVk/NUY3dTRrcig1bnZEcGJEcy5iKkwlaXMiTjZRS3goanhKK2NAdE1vYXlpdHM6NjNwVTNQUENaO0Iqa2NrcUYpfkpGbCx+aFJAWjBIdkZTWXcwYmhWZDYwPmZrMDxHLFJgUHt1c3N+LzZ5e31fbFVSUD1+JkxyN0l4T3c8L15BSlU4UHdw'@; put 'ZyQlTi8wSz5qW1EkaE0uRWRZIVlxIT9vSyFzUHxrVUNmMGJ+YjdENC5+VSp9NW9VQWhaP0osaUEhZXQzS1h6NWpBX202cUJhY1E/WmVzYiFyUVB9dUxuX2s0Rn5PaSl1U0A4OSVGOFJ2LlFFO31WMU93c0plKWIwITpidDEpPG03MGdFMzVxeH1xVXpQMjombkNERGVJajNjKXVlJjB3QTJkSylp'@; put 'ZVhfITplXjE3UyYwUkhOZGouJiZVbWxYPUJ0MFZAKjZLTyk9ITtLaUdNWjtATCorV1hUKWdNTyQ4V3NLcCJGTHJxRkBsbiptMEpFNUFCLjd8OnJ7RC9YRkIydkIjMzxTOFZ5e2p2QyFDeFI/OEtsKkhNakxdTlF4eVZPQ3xWVy9NR0B5XXU0fns7MXlEaC9MVXNeW0lgSXJ3U35XdEEueylodzRL'@; put 'KGJJKCxoK3FZOjRsLlVLZE8rbmI0JFdgUVVIM3FeNEtIcGhyMG4uYFhaJE91bTl0XTdGa1IoX0QuWjZKNW4qY19GYT5HRHN4emYqYzBebCQlQEk9UDxPc1NadHNIZCo+QlIlfEEqN0MvXmB9ayVGcmlfb1d3IT5yPltiQFJIVU5NXmI1InlELiY0dDptS0omM1ZwUmx0V08vJHdjLDd5Oz52ajIo'@; put 'LHl8TVVSZnd3U3Qje1J7RDB8aCpyOm56Xix9OSZnejo9PjM9QzxAQ1QyZnRddEYsV0MzYk0sVjAvYX4uTlF2dTpUcDBzU3ptM1B6IkxiJWhTbD4rPndMZFZWQDQvRDV2WF9vXjUhYiQhUiJ9WmhKJkAsSyFSXkolWiNjfi4lYUVRdm1lbiwzJG13V1liQXtEdiVLZ1kyaVN4WD5jaCgrT1VgN294'@; put 'bSx1M15IdV0xKyxlbH5RUGAmPilOK1NmSiJQUFsvVjsoPmFYIyY9Sm5sUF40TlAwLyEoOEozPVMrOGspLHZUY2lpcXVQUkx1U0xjamFLKklkMjVsUG44eEZyXlNhfVR6eXlKYFVvLDxxZkxYIXssV0MvNSRgaVA0RldJOVhFMWU5c1UxXUMmIW40eCRpT08qM29zVkR1RFdnYTAqY0dkSk1lazlU'@; put 'aClXKWE+bm13Z34xZyJVaiR9I3dyUn1oME5TNUlKdFV0VzpgY2V1SyMxKDNXcXZpJHNHfDlzTm9BJnt9R2ZAY09bVEwoW3N8Vz5BKy9bTl9pLzFvNDU3QVlhYjVxaTFrVHpBQlkxLy5LeXdkVHc3ayksXn4/ZT9raytvLD40XX0mUzpUZzJWTGt4UVs8QCp6Y3cwJmUjXXQwR2R6fmEmWWVvYDgr'@; put 'bmpOOTh6TTY6RUFQNypsIlc4Riw1Z1ZOMlUzJHspN1loKUhONyhVSS56MFVlQUMhJSN2fiN3YlFDKUpDM0lHLnV8RXhFTDFdczhWeFRyUldlZ192YF91QyVWPWhAQCx+UGpPTTBaRWFVLCxpNnM5I1tYWGUybVB0XyhQOzteT2ZtWXgse3J1SkhMPl5QRmIrV3xifHh1Mm47ZV04eGsoRmQhQEJT'@; put 'fW8zM3lZVXRCYkl5R0lHLi5JY3pCPltDR15ScWBTSTJbKSFie1NsI1tkN3A6YF9dd25VMi4+VDRWNzBrSTZuKFVOb2BJbGFfPUQ1VHFgL1ApPXNAUSE7NlZLSmgyLz9dIXV4TFcuW1UmbjFsQyQyL11zbTBDRkNCaUJNa2VrNUp1REYsPnF9fSU8fHAscW8vKDBdbEtudGN0TyxUWEAsUFYpYV58'@; put 'O3p7NGJneS8yfnpiMmxgbFJway9XTmM3XX5VaTtXYVhZW05uT3lvcHA2cWd0YG57clB6RS5XMVhZNWBeRks+TVohXylbe3pKOy5keWxQLEN2NEhlPTo1KGo8aUVWYCNTXXE5NE04PypbSUp0NWZBeUJQcVVzRHo3VTpHJnRoXS49d3o8c1NhVkkudU5dazZna01BLGdRfFpOflYhYVRvPU85Qmh3'@; put 'SnkxfXF8I1tXSzZJdnNNV2Y/O1c6ZEN7RVkvV1Y/LG5dbyxjVzIsdmBKa2k0LyQiOz1IYClqfUhHJGlDOXtGOUgxSUsqVlRqfnwmQ2FiUXNWbnoqRkBRSCZFWn1tT0pYQnVsKFNYd145aTVGRnZUcEcmIXlxZ3h2ZzdYb11SeDslZitDZzgmWHZ+Ujh3R2BLZTN+NDlPaDVXc0cxI2MweSZvKm9X'@; put 'Z0Q+NDtkW15aR10oYWU9L0U9WHt4R0BAUDZjUUddX0Q6YnRXLmUqQUQ2cyRHc0NyMj9QYTZnUCViYzNLel5WL3Vbd2YwWXBjM0VgZHVyZ1dncXBlSzlaIl1aMEsoc0dHZWd3U0UxdWtVRzdIYUl7SWhncnQ7XSVKZVk2KyM4WVJuUSE2fFs+dWc9e3kkemBDUTBHMHcrP2ZPc0FsXzk4OVZjcmlt'@; put 'UE5BMFtIPmJEVy92fDp2TChGZCo5ZCVfbyY+TS5XIilTbTdfOyxjVSVodjR+ZDtTIip0cmhvTDt5OV44NUEydUhKM0B8X0NkcjdlLm40ZWJqbEBsQnpPVGRKM35QWUdDITNvWDFmQ01HZjo6NGwyc0pXRylWLGgvYmxRTDJJQEA5RiMuMzN6XmFeUyR+OlVQNX0zXTVlcCQ5ZEdGSnZLITheIkJm'@; put 'JFpMPU5FfV11X0UhaWJsPHdYMl5+eWd2Mj84YXg0bG47d1IjMU8vSSFZcTBZNUBRVFNYdzJCQE1NMDU6aSJ2JHRGdl8pKFpdanx5a2B2QGFwOnchQHRSKjVGVFM5XiF7TS4pKkdIJWJoeSFeYkdUUEooR3YxKys9cnguUyw8d30hbiF4OEduJCVDVSJSQnBrVHFMUy9iUEBifjAsPXwjYylmYHM0'@; put 'aFJZaT5AeTRTe1gjKChHZ1BrRUlaOiwwK3QoR0dmeDpjezlReXVxZFhmSDJYcFl5Rl1dIVN1LiRZZSVZPEpxXz5CKEdlUFojUS9fbkdVLm0/T3hLJTtLTyxnXlFHVmRZTm5gNFl7VCszMSxaZmcyeHR9ZWNFWFY6JjFGIX5ARV1gKlc+YFokLHxTX1koREJsLCFyKS99OXleZSkmVWw/fm0/OlE7'@; put 'ZGVabm8qbj1+YWB2bEBCbjQ4ZGlBVmFuSWNAOClQTz5yPHJXIXhQKl0vMVRqM3ZrL1J6dWM/Km1aW2o3THR1YFU0cT4odmgraykwLzt2UUZ0dkUhUmAjVzhGUlZzaj9IMl5dSEVHNG1+S3pNQSIya1tpdHllVj40SWQrb1suMGU9d0BSM1IqU2EjSXthZj5BcDUmKSx+WyxFNSpbOVE5XzVkSkFI'@; put 'TDopMz4hYmBBR0wjdnVoUE9FPHVoYV5DJSxKOHpVXjU/OjVWbSlhKF08P1VhcVNeJltJNzpTNkIoeSt5UW4oNztlaSFnfUhwdToqdFc7O1ZCMjI6bjowSn1FeDVJNFpeMEdYVHFaJTUsND88Klt+KGt7U2czTXdKbGgyYWE/aHFlU0xaQztuTEBUZHA5ZVYva3BxQ2ZVPEk/NkMuUmp8W3NYPHgp'@; put 'OUBvI01TMmAqMj9NTDJfIVEiZnpIfG9tZkxpZTJlQFJacXVddyUuNjdIdHwkV003QzU2MSM9djM8UFhrW2BHPSpwYktTLiluLkFJY3piO3hZS150UyN9L3w0Ynx7aTE6bE89MH04cCNoVjdCOEB4WzdsO1pAI2NMO2EhRXFzY219WXVNKUE9Tl05JDwqczxeb1J7VjcsKFt2TUdlcjhbUDhAM09Q'@; put 'UWVQIVVFeTlNSVdOXWRyLDcyJmpnQi8xN0RjQ309ekJ9N099QVVOUz1JczpIZ0QlTXIucFt+I3dHIWAqTykvRFRRdG9xRVNdc3ZpKGFUNHQ0Z3M4NmRJc1J+NEU0OFtOXVY6Y3AsVT47KnohXWMuRTYmU3Z9d21ENyU6ZUdnJm45MU98by4zdFhXTENUSDVtVnFNUFhYSWUxPUxbWmMzQmNaZiY9'@; put 'NU9ySTVFd2tXRHwjSmZrRytkUXojaDYxfDcxMVRETWtUbWViMCx7YntDQGtveVMwWSxqKFdzY0hTMXJwMiZWN2B5PWhJYUMsRmMyTFUkV2B9YDdsO0c5YTsuYmVzNSptS3hDSXlibWJeclM1PUE6aTE3QnVeJXYzazA6QVFuRzx8PGtbNyorOyFvQlY5fSEqKVV+RnIhMWZ+VW4hdG8ofXJ6XT1n'@; put 'bGEiRDF9NSpYOyhja2ZhPE5WOkltazZjIUNRRE00ITJKdll6ajdIa1d1cCk5dlRQaX5ZXVt9KltbSH5xd0hGJGlFdDZ9cW1+ME15JmpPYCQ0JEk6d3ldVXJPWmcud0MxVEVNc0RmPHJ9WnNAKiR2aXpxd0JGUFMrdEEqRDxWIihuTlpUX0pWUHhVKlVPRHF1NUAvbiFCUGA5W0BrUm9aT3F0RUUx'@; put 'IzRjWyEhVExYKmZ+V0U7UDk5WkRFdnRoaTVWRGJgZyttIXsrVU9tN0AoSlYyNXcrdkh7OzA9TyNdQ0JbTS9JeXlkS0FRN0VbSzN4TD1sLkcwT2xQYWZ7JnBJa24yV1IuezlbTWEpOVpuTEBUdjwremI9bm5VTUNETjl7eD9nUzB6KX4/cUAscCtefSVRTy8rMkNhITszZyF2PT1ZZyhoa3c1ZGdK'@; put 'Qls1aHpQaTVAIik5fT9UfGx1b0J5dUhGUiFGI3Fsd2RBRWBKIjchQHV5ekBWdnx0elc7TWZvOlZ9aCEpMS9qVVAxSXUydWMzbi5aO0hULEVDMHJ6Um5CMEVfdS4zXlF0QW1oOXtPPjRXWiQ0K1lqdj46ZTtfYVcoQkkhd3JdN1A4JCkvS31vOG0pdExxRV5IYEo4V0YwNWh3UChrUCt3KG9pXVYm'@; put 'VT1zL3txcHF2eSheb1lSUm8+dVF1W21Tfig4VEJrKjMuXUk1bkNgdTA+bVEqfTgoSiYrV0widn5NMTh4eihmWEUpQzdhczo/YWhJJFJWPUM/NWcval5ERmswXSt5RklbMTU1a1pxXnIlLytjXUt3blZIWGcwY1QkeDs1X25qfHtzNV9NIjJIe3E3OGsvWmd3eS86ZjxZXWtmbHFXLEZTQ1p1QWVn'@; put 'IUA5XUNgdGZ5WSF8QU1oK0Fhd0UmQGAyRzIyPH45S2BGUj46KnhpRzl0cTYvITtUY3xdZCNbOTtacVUuPFlXM0ZuMS5VLiZpbi5TOShXTjQ3aHYve213KTllWjovdmR0T2wkRCkhbVdmZlQiSCkrJD0uW2c+Jm9acl1HWDx5Q3VvLG5pWSE6XyNMVHF3b2hmfFtQV2NbOF5WW0ZBc3FbRXZxWGxk'@; put 'dVBLcU01MWAuXW9RZ0V9WDRWMl1kN1pHeDUlODQ1Qkk2fXNbeiozUy9VKUZ2YDVTfVBdOzVNZlV2MlJwKlBQdn1MI11TTD1OSCIxWWhRUyIydDs5e3VSciRSS3xlIm8pSGJZLmUpdkYwQ1tffDNATT1OcSxvJD9fLl84fjtjUnFFZF5NNTh1PDdKVTRBQU5fOylQTV44enRjSE59alQiKX40KExZ'@; put 'TEcpTDdaRFFoSClnMlVKREowS2gmejMoOCR4OVA1PSFrPClgcy52IV4laUxqTSZMVVhdLFMqbDZDZl9TP1kzSnpSd2FuV2BRWmtKe3RKVUhFV09VZEVFfkxTKW5BWjdCd2M1YDZIcHgqVWJBdnxtV3x2WWAjbE9lRXEweWB0YjNUbkgsJTpwNiwwbWhAaitMbW53VnQqaVpzKTt0THRrNGlLaEhH'@; put 'eiN6TCZQdyNSPEJbMG45N1dhY1JAMEVaX0NUakd4enF6bmxMMFZSS3AwdmchJXBuMkdRVWtDW0cySXI0NU9VZUxbQ0YpUGkyP2t3dzhMSFd7bGdaS1g9YDxVS0hMYHwkbEF9e2ZAWXojPFl2IVllOEZ3eThBeVRbPHwxSm0sWzhvVkI2KHYsOExxLmRoZ301I1hNWWYuVD11ZzVzOFtWUF5RL2RN'@; put 'bkRrWXpyW0xIVltsbTppJWlZa2YrX1Y5KEV0XS8iXVZSMSxlPG9gWzxke3FUR2BwNFRkeEtWOVhHajM0UzEvL0VGSTNeU2wqKHpWJHB3Lnhtb3s/Nz59LlEjTDs8eD88P0k/K01NS0thWit8fW5qLjlwV0dhNj8uTWN+VGNARUt5eUliYkwsK0lme1Z7fSQ4PSZNLkBMezBSS2hXOW5OSC8wNmQo'@; put 'b0l4O1dsS3MvJHNOcCgvM1twMWNPVU1aendWWncuWjBxQDxBTXpdODFyKEV6flJ1W1Y9XyVnNHFofEdGZSxmSHYiYlo9RkoyPGtRIzlnS3JufF0hLCVJQU9gekoxKH1SMlB5YyU/JC8yZGxpb1FQblJgSERvbE5edGk0dWY8bzg2cjg6RnciO2J6dT8wd1FSTGJjWmV4XncvUjBAP1h8JlpHVGJg'@; put 'fHVMQVdOWlV1VDYwPVZ4d30xSV1DUzFQc2VmUEVac0VVLzRNJTxsWEpKJE9KdVQpQVo8aCF4PCtKYkNeamY2Iko6aERzUyQmPUJbRHtrKitTJkB3MiVuOHNUdXFecTBqJWB8QExfcGRSNWEoTlk/LFhpVjgoKDlhXnsrdUM8UG4xTWZBRGFka0gjPjdIW3hZK05nbTcsazg9UnBLU1Z+XUNmOClT'@; put 'MXd7MUVaT2Z9bW4qfG5BNlY8I3tweSU7aS5MY2UrbStifV1WVkwjZGozNUFtb2VQeCNmLGRxZXVCN2BuLlkkNE5TJlJYY0dKWH47diQoTGUoQHFbTzElUVF6LmcrQ2cvXUw3TyFNPlNDOl92K3ZXSDc7bzVZJHg6U3hkOEl4T1I+KGcyeyM6PzVgZkVUU20hTU1vallje0JWfDFCeWZzbWUocS9l'@; put 'P2hEeHF1aTw5KzpYbEUmaWxKNWJZSEE/OWVUdl9IamM6OllbM0lsWkZmYytWZFVZMyZMWktCVjE2TyxQeFh3cmcvOmQwRCNGUCYrVDhgTH1KMFdPTW9IcFRVb31FdClGOiU7OV9CRVIseHQqUiNXb3M4T1k3ZzVJNnd7aCU8eXohOCVycUhqa2doYm1zKFVnJVt4eVAjOGZpJCxtbGhSTmUuXzk2'@; put 'bDlrNlk3L3MsTSZFaDhHeG5DOWZVNnFxI1FsfkpUVUVVdzM3aTI5Xl0yXy83XzhUdGVoNSpTNUQ/OndTcTJNRWlGQ0hqay4vaEFUYzp6WGVsWGtBMz5bLCglVT43dTt0bnxVUF9wL0xwLEZsTS5kZSN2Q046N05xfDVgNVomWEcwKHQjczlWQSg6THM3bmgiPitJK1Z5KVB1UVptIVhSS1FjXkVw'@; put 'bHUlXWR0UEI0PWwpUlcrJldEOmNkZkkiWVFzMDsjOF9FcCNFbD4hQkt9dmFPKGpNa052PUlQLFtrNVNfJTpybCRETWQmPndpZXY3SHo8Rk43N2RxKW9FdzdebEAkOHZQRzlOQGlkTEdOWVgpMkcxVldXNChteiQoR3x3QnIoZXVNV18yRERTUyo6JSQrVmN9QTdIJkEuWnN1Z2FtbE5KX3dJRFJe'@; put 'fEd7Mjl6bDY+T0s4XkBHfjdyNkIhVV9HcEc8b0R1ZHV8fGdKUkx7ZH45Q1NpWTlRPEhnQGYrampddyM/cT00Zj5LUWxOPT4pTC42byxJRFNIemA7OG4yWyl+aGgiLCRAXSJ+I2FpRmxGP0x6XUZQOkp3NGBnPyNKM0gzLjc2Oj0lUWJecXtDN2VudS9qbEBSQzt+S3FUPkVeaFlMZCZPWFtuOHVD'@; put 'YF5YI3l0ODtfcT4rJDo3XkNuKlM+SzlJQjFBNyMhbWEwPlcsS1VyIyFORUgsYkJLU09XPXJ6XyMvS2opWDVzTDFWcjZ9OU9OWDdDfSo7OjVLKTEscW9tfiVKUU5HOi5fKmsrfjtXalJoMmV5VlJzcUlqZWd5YkozdnpNdit+cnN4YlJ6SCtoTDl9eFNIZntOWnZVaiI0Vzk3eiNSKTowPkxuSXQq'@; put 'WzE0SWhybTsqSnNOb3lqTiZmUnE6UmhWWjNWcyswXStjbk1SMDovOkVPN0J4ZCE2TWo8N01WPklJXmApbnJoaip6fj1ScGxBS0pCMlJTbWhtRE5ZeUdlRj4xPzoqYkNoQSgzW343SkZqWjZsN006ZXUzRmgqUTp+TVtDSlVuZEskdE59Wns4bkxDXVptTjl8X1tMUjcmaiZPa21lQHcuNGlWfnsw'@; put 'V0Y9MTFaKEB+VC5aKllpQmhnfig2JjRvaEUlSEBuQWdaTDl8cENmOXZYJjxuZkJjeDgkXlRLT0ZfZ1ddMSMvZFh7YTorJCNMWWNHbiwzQC50UGhBXU5SXnpici50WVl9Kzh4UWh7KSxlSDJbU2UpKTJYW3RvUE9JTGRYYX1UPnR4KFZQSTY/QnVUWnx9fi9kTSxnLGR5OjYrRmtaNGwmVjR9VTlW'@; put 'aDZTWXBUaFQuQjFZeykwK2MhMipYeD5JZi4lKVZdZGByVHFmOUl8SC5CSDcjSS9dbS5fKSJRY1RnR0ZAfWdbSmQuWXFWIkp8UTVwKXZQUm14VWl1czQzfmBbVTMpYkI7aHlnP2MmdzMpRUc0YE5RPiMlU259SUJNKGxuazVZfFt0IzkhXWt2fUwrKX1HcTc0I3lWbF0zKEVOSG5+WV9USTp9end9'@; put 'O2wzJHxxZE1lVEZhalppfTAqMyZdIn1DTnl4PzU2KEsiaWxqcCRsUTlKKDtsNzxrTUY8UXkwLEYsKChdcTo2ZzNiN0QlcEFXQiZLZHlRMFVJQjpaVEZ+R3E9dVk/TCttPSUwYCheMmJiciZbTylEcjEkeH1LcixaZGgpVVReaVZpM3BERDFkZk9+b1hnYV4rSn4qTWEiUWJeKkZPeChoQjdvIj1O'@; put 'VXM+X2FTeTgxaV9YZkRALilvVE9XPXxCUnpjVUpKUSUqLDw+XT9EY2VufXRRNClqSTsvSmM1bC8+IyQ2KVp4ZylrPWh9O3Q4UEtgfUR9YFgqfE5kRCVnWVBgdnVUIzdKQGojPEhCKSZCTy5VcDIyPT9LJVUpPk0vViJLQ0wjRnxjOzUjXkdAbGw3VFoyY3ErYCEwV09zTklgbU9pIWJAWXA9K2tI'@; put 'bDRLVGYhJnE3R0JdcHVqeitoW3UoJkNyODI/ezNoRWN8KTlHdEVGJVlmNTo9a24zcHdVVyMvSWwlYUt9PShqd0J9dyFpWjNLJV9NSiYxV3g3QEs6XUNII1ZpITBhViE1MFU2NSV0cXVPWmZMZSxjOVcmPUsoNDB4JlZNOGB3O0tXVClgRFc2NWwkWD10NXNtWD57VmtLWGl5fHU+KCQ5UDxeL1ov'@; put 'dGA1NmVaKmM9QSpTM2BPI3JUeC5IOSM+Typ4L3puPWw9PmZhVExGTm9oTCp5MCN+Zl8wRzJLek8pdE4rcVk/d29yeyFXLz0yIzQjNiZNd35AcShuVSQ2dVpveW9xKV0oaDYhfD0idmN8UXNCOlR+TCk0JElEWX1XVzBMXV0iMF5oXzdCYXFqWk9RMl0qKVhaNTBYWmouRSt8VWcmLkVfSzZPMWpK'@; put 'cTBELGVNdmhXcEZMQHp4eG9vVCZIIyVWeXQ9R2A9OEYqRzZ5M1spaSxYOV5LWzBjRkokJVNDWlt3Vl12U35aU1RPekxodHBqdHkiYllLYl1AKiolVXEiQHcmIntLciJQd10lOiQ5c1EyKjVyV045eiY2cnt7SGcwXzltZkwhdVMhb0UqbTw1bHhUKHVsSk1QRHxdWUI2PzF7TyI0dT92Sl5gYFte'@; put 'bGd1Q2BobUlTRlkrdmZMR3t5fns1WXlURyN2U2hoZVgjaClPaEt8ZlI4UjBEVXxvZkNsS0s7R2xIYHcjbUJeVV0xPWxrSEV3TVROcmZ9OD5XJkBrOmE9ViZLPkgpZjhpajReRX53I0FUclVWbl9SeTdaQDNRbDR7QjwvRUd7UDNQT3sqWS5mNkw9ekBjbVdmLlBnPTYxd31OMEh7e20hTmlgMXAx'@; put 'I0doQSNzYlJNIWxFNHtqeWlaODk3QnAuXm1VRVliPlkrdnJdfmFgYFc/VGZpeSZyWzciNF19d3BNXyQzXy93QDt8Z3IjQ1dPMXc/VEIiIyR4L2ddMDg4cEM6KF9lXUxmXyFXYjBuLmRddnhrfDk2eUp0SC5fMVVxXyxaPlFHM0xmRiR3NSkva1hZSk9QI203XWxWME50VUY0YWdRYiM3dCtVTUVW'@; put 'VCVpcVt9VD8qNGhMUy4lWS56cDg0eiZ9VzY5dkAiL0JfbX4+OEoxMkJRXiYmKyFKJTw2NnsjYCZxVmd1UiwyWGRSL2NCZHlbY1BsfEFJO1o8bFVbV0gqITp3PGFTfitZSzdUX14pWSZ5MXNnSTA0U3hhcDNVOlJTOyV0JDBwU3VIKFAhTW8/dVFfd1o9Jl94P0FzdkUxe1dnYlFpQ0xKfEQqJV89'@; put 'X29ISX1odjFOMWZwbD9dPnh3fHQsPDBiem45VDZffWBfbWN1Mjo6WnpfNlIjRiMkfWU2cj1uI0s7WF17IUduaTJHe1VBfnZZPHwkdXtoNDV2ezs/dHIwMSJ8NHIiITlAUSkkUCN+YEZMWnYyX1lUPWNodmA3Q1tdXWEiVEgoP0l5O0wle0ZZTnVzdjZwXTJWXkRRfV05VSY9S1ddU21qUHpJcU5O'@; put 'OXpxUShtWFdFPjUrKmtFeX5WUXBONDNROiZkIkgsd1tFbHBPOnN6WFBvLD4jYW1rcD9wbDdhY0N9VTNwSGApIiZXWX5tcGplKStmQTpbcWtDZDJlOUFWRnloaEVtdj51O2loUzhHZ3w/U11NUl9vJHZaRGpvRSM1TyEhPDk9KjtebSVGRD1wLigzR0srQU8rTHpiVlgmKCZ0amtmcER6PW5IdDB4'@; put 'JkVPTjN3VDwiL0MzKHcvQm5ONVE3WntuWi4jKGN5XiYoZEM9L09dN3xRcEJzcSlIY05xK0lNZTYpS2R+M1gzMzEpYFBXeHp2aVIsZzhNfG5+Jl5hbVEjU0ttQnI0UGZUVz8saTl1LGRZKXV9Si80P1lUQl99RUg7b1dQclVeXlE2antHSHVvI0ZsVkUkLylsMFc8dmVGY0phUnUiJmJEdk02cVN2'@; put 'Myp+ciZmeyJ5QkEkNzJoTEJrOU4rblBdbT0+P3ZmIiZJfChmPlosbUsjVzZEMWRYSTN1R1BfT0hwJj81TENwXV9PRV07IUlkV0RJfTU6clpqaWY0Sl0vJChVfVBiN3RUQGs9WWpJTmx5WFc5LzZ7Ji8rd30wN2Y8Y1EiZH5wVGVUVzxaa1VGXzRwN2toPVdWLlM+YllZYjZbNkQ8blp1NSQuPVIu'@; put 'VyI5Ql9nN04sQGxTJEJdXyxJbjpSVFVVZ2tzXn0zMzZBT2pxa1A2U1tAOXIyXkRqSD58PiN9NHhUPyolJCRWamEoZCZ1R1tWTTxkVlRlIS56dkFbWSZJUnxXclguKHhjVm05SFgkVk1XUXklMm19L3Q/JVZhXUZ6L0N7aigqYGdjP0doKXo1aDYxLFc/XkJMel47eEp+azI4KGgyVFsoODpvMzBA'@; put 'Pl08dzpGImRSTnJVSGA2KChFVU9TJTheOm95fUlQRHciRWleRTRNREdfPHZmNlRpcE8jRGptQSRlelhsfUBwZHkoeGA/WFB7IVdwLn05QGQxfWcieykhOnglOm4uXkE2OTVKRF1ZQjFfVlpJR1ZyVGF9cFA3Pn1pbVMpJGhTNWo1b0F7NSRFX3tOQDVvd3x1Mi46PEk1YFl6LD1LZ1B9I0J0NS97'@; put 'KDZ8Ziw2aXxiZGRiYmwoLiopQjJ4RWlba2poSn5EfD8wfHZ6K2I5IVhzMGhNRzRiO1tyMnU0eFZpe2NRQyFhQD53cDImJWo/MkZLNjlVY149XX1DaiojYWgoYElieDBxe0ludTMyYj1bY0BWY2pySERbTH0qYjU8fVIuZyhZOWtfMnsuLDMmeGFjLCU2OkVCSnsldmUreHhYWG1Yc29FMHRHT0Qy'@; put 'aWVOVz9SZXZ1TjdaRSR1c1B1OHUieit7Pix1cUwvX2N5cV94YEVXT3ApcU43VlZJb1tAZzlQOjJqUm5wLkVdfT88Mm1gLERIIlluNElQLjsoZm54TFNqTXpMbEVNXi9acVRMLnVSTzhAfCQvK2ZEQUFnQGtTfX1UZVF1JEIzYmF3ej5sUl5SMT9ofGBrXU1ePi9lNipwRX0sIlohZFVMbH5oZkhE'@; put 'fExuL3JINkldOTJ4O21BMX00ZGYvNH1PUmQ1OTE9dHB1dGgwWU9vcytSUk1EZ0F4YlNhOD82JWIkPEJ6L34jUyU3ZEBXLmJIVnpJeT0xLHlOWz1hYSprST1pL0t7a3o2UUphZmxGPChRTj8/LHk/cipoVlFte0JiIjVYdUkmS2lvTiZlaFJfYHdGfm1RRFZDSXdNKVtPalsiXnU9UXNSYC4wOVdq'@; put 'ZWR1d1JIMC87Vj0+Wl5+Zm4xYDFQWX5JRjQxbCx7dSpnZCxDc2JmTmdtTm5PfnV8MU9GS3c9ZTtIPWQ1S1ZsN195XyhpPVVYKG9lUnxqN0I8NjtbcGhJSkdKUitMXzNveW1Uei5GciJMeS9EJH1WXk5GLkl7UCpJLHUqbEFCQmFETXk/NklIKj9XK0Veczs/LHFLNFV4blJMek09eSguZzk7OkpS'@; put 'ODxbTFA/KH1DIlhqWzNrY3IqYUN3aWovPTMpP0hWdSomT0slPUQ+UGJmKWl5eThHdX0oTjZnYDtsb0tOXWYjV3BLfSJ3MWo9YHxfdExCMjhBN3B7L3VUUSJGTi9NMFh3dD0xQDl7Kix6RGJXPF5BZUJ8ZCRlYFdLVkk3YUE6RnJJVD4sUENqZ2tNc35aLipqKUk/TzpVa3RgSTh7VGVGSTRVM2lq'@; put 'SStSO0xDYCJiOi5HdmR7RjQoandQVyp0ZFksaXx+MjxZO2BWV0JHcW47SmxRI0o+VGZebCUlfG9kWnZOdHlESGZFfm1yeSwyJHxnOjIhcTMmMSouVzNbeWJ7b21Fb1hbakdSSl5baGpZb0orP098Ly8+cUJ1KytmaWJSRjw3SyNlQjljP15kK0F7a3tbKXc3K3ZFalliZD9MYG5PIzx4Z30qejB9'@; put 'fUhTOWY7eUg1eTxlRSJqRCZsZlNec3NleXVDMS5RM2NyJDY7cnxSRSpqUntqKz1WZXIkSW8qTDIlMVtGSmRqOnhyVksvZn0wZEIzYnckKyQ8I2MkalNwKm5MZDB4JmA+bTZEOl1UIjshPjdXKX1URXV7OiRne2Zta3d6RV9kdkxoMzNuM20xY1JdaTE8RlJnT0kpK1RdamVdd1o5IW4oRzp3TXc5'@; put 'U0lpVXd0YXU5Mj14OSJSO1EwU2d9bU9vITpCRmt9b3c7JTprYEw0eD11Qm0iSkw/K1RObTdGdkwhUTh3dWY8eDJbNz9RTTQoK0Znc1BGfipBRTR6V200VHQ4MDVeJEBIKTg4OHRFbzchK3NNYW9aWlFRZVk/JjhvMmdzVHhSWHo6Ok5lKHpuWj9ETWcwMyMrMDdRaUdOPzBXfEB5K2Qodm9GOXx0'@; put 'T2JYNlFMWyQzeTA+Q2M3dk80TmY9XzJxWSVpbzU1XXByeixJTk0rNnJSZz1UQzhFRFQkQHkjLz5AZDBxRFldP3xaZWBSUWMmYEc4O0pQQ3xbRTt3SUdHMCx9Pkl9TFFhZWROc2tXdSt5dGV9ZytMRSo9dz9rSDFCckJ2WVhxV1J5MDdYNWQoWF9vQjI7XXxtW1tpbVVCPVA1eDQxSlFwWHtaP3BE'@; put 'aDxpVC9bMDdVbilYMEEzT1l4Nj1GRnx6TS9Oe0JESntGZSYzbn10Ym8hV0M4R3R3aSMzQENwYEZuQl4sPl05KHwxSHkqTyIiL0RqRSUyZTw+IXAiaTFyPWB2MHhDZTQ8JSU4WkZfeFRvZndWVlFTXSZLYVBSRnhEKnV7MkVSNn1bd2JVTnpfZjVTPWRwN3JBand6bDhPIiI8MVByUSJWWHMhYi5k'@; put 'bElJODpFSER1VW9+cjtwWz5bUWxzdDM/P2I7WTsrLFNwQDcrcVQ4JnBYYVRWPVJWJE9uYm9dTj1kTmpWI3A4XVgrYVFZJjJZKUI5NlRfNz5EY0QpS2wybFJKcSVxbVhRLEk8REZmVT47dj9wfiRfMWIzPnBCbGxWXi9QX259M01HMjw2Q3Fvb0swWzBlZl59KCxYZWpvPkA3eWx0JXZ5WUo+T093'@; put 'JkEvVHJBMklORWsxZm05dyZNUDUvJHB7cz9kN28+bEYkOD9pYnc9Q19VcDBTQmAlfUlNYnl5X0tKZUUya2ooQmt6OGpaW1FdZEttOjU1Rl9MUyUoTEVBSnpsM215eTU7XUhYJUtkeyFMI1R3OF5yYyhXQW56QFhlanJiLkt6YDpdaS9wZioyR0ZXTndfN1JgfHlCLmUrcFAhSE5RWnFNVW80N1Q5'@; put 'S0xDKihIaC9zSXE/M0lrW3pbN0s5VmlSYXY+YU0xLENCfCYmY0FxeW1jcEUzWjw9am9zNnFMVFNHTlJFRVY8SDp+KHM+Q1NNUyE/WEZ9S0RPeTpxc3lFbUA8XkRgbkpXP0hYMTA0Tz1xUmc0UWo2TCs6S1V4U2haJEhBOCR0Vz18I3tRKjtCcTx3YV1xfWE0cUQrS1hNXTxBKDRjJEhaOyEpSWBQ'@; put 'eEFHJUt1PVljKmtKLzlnQytVUUE6W04lQV5tOGxNd2ciJDZDQyheYE14PUE6ej5+TUE6WG54U3FhOHFVUVtkOy53VE1dRHMmX0dnUGZse3AmeFBPYnxWUlQwZCRzIjJnMG4pbFMuVkRsSCghVVcmaiYzcUV6Om8peHFZeTVaLGloaHBtUVMhfUcuSSptSDNXNXtReEVDWXQlPypEP148VntjJCVg'@; put 'Wl4vPDpzPCMxPUFHWFQ5LDFXPzhRdmxbODBrdGMhZV43SVM5a2V2WURtfGVHVGhPRWY8ZndSRD5bNnJJWmsuWkYhaEcmRTFPP21QVk00KktRVSpTbyZPPVtsdW9wLGgyayx+YjUxfGt5OXd8NHdJVCl2cT1sY3ZSKlJYQ0s4VUUpJCpKeW9yOSt5JG1VMkY6bVhgWnVzWC9oXjxyamJxTyxUT1Rp'@; put 'a0RLeyIxSH0xN3UxWSw9d3g/eURlTzJqaEVWZihCfGpHVFlNUU1pUmBSU3hAcjgqS1I8O0g3T2lAPlchaVdFbi9wdUpJTmBVbDUwUFcrTH5+ZlRKSDkxdVFfcz5hMjVGWzE6JikyTXNDQGZQb3ApX3V8Mz9SbGUzUiFud2l+RDJedzt7N0hGcD8wdGs8X0Y5VlQuQlUmV19WQWx6Ql13ZjsrS1db'@; put 'KnoqLE0ucjUwckFtViYhfVZ7NF4vbzh0K2VAXWVHW2VUQm58QGd1OFRmQjJTMExST2lJUCY1MEZ6Yk1DNDspKX4sS2VMNnNMb0ZWUXxOUVZhbHRbTUZncix7XlEwQUwkKX0mblBMdnh9bXtldW4lRl06MXIhYWhbTVhHbzhoejFiP1l1ZU9iTEVgK1J6NDZqd24mRXxTOk8kbW9ZW18mW3RjIVZG'@; put 'UjRLdXZxMCErIktBVGBHeHQjYmFoPDpVIX5dT1NtaX1oNUFQaVc5Si94Y0tqI0k8SXJWJSUwZltiNCleVyMzNzFnI0hwQDM7U1ZQX21hZmJrISFfSXhqOmVnfWtiPUZYMWM1cEY4MUBoX1duZ21AVmgjb29uaCM8SnN3YVVNQHR4ISRqNmwjfDhVUFVAa2QzNmx3QUFAal5XIy51UFU6NW42ajxe'@; put 'YXEqTTdJNlMiKDxBOG1nSiEhYCZQRVV6eEVnQHlpfjU2YSFPdFBlWE1ZOjtsOzA3e2V+aUxVPncsTXRlTEhVdmRMaVZGazYyZ3J2JnF9SnVvWWB9S0FVKil9S2RMMFBXOng0bGpHYXpoYlUwZSVfSG4hIk99L29VRDdwUmZ7eH46XiE4JXFOc2dQdlkzaXtfYzU5LyNMYll+RChYUGpJXSomK3sk'@; put 'QSV8IyNBNCp+MzBwITNHR2EjKGcrcSohPkpQZWErbCxYdzUkKkwyU2NRXmBbSVRRVkZgSUl9V3MwanZSPSs2Rk99eT1CL0h3K3IkX09UQHJaI0RkJkkkUTsxP1B7eHc+WDBuVChsO3xRSTF7cnhxKkJ2LmRxfDdHWl0kNzVscmtvXW05czZoJiRjTEREeUNBfUZnY31fcFVpOSZgJVBiP3Q7WF9Q'@; put 'dyNpN15dbjJnOnxSO18xfXUrWShZT0pOYUw3W0l0OmBfK3BfcClxPX56JWUqUD1ERmpifGQ0Q25ZMXRuclQhM3swaDFCLH0hUUBEVW09WWRsaTFYUyY7RWVlWCg1JUxxbGAsUDdDaklgaW5FOjdkNm48QWhDYF54Ii5HOGd2bC9nYnRgPWRGTiJXNGx+ZXVWWl07UXR8N0hxNnt4eWU8eDokQS86'@; put 'NT1HfEZkZUc3LGJ8aSghPnFDP3d7fVVvbTw7UDBIRU9BTjJEc1BbaFRePjkqZjkocFVMJnVpZHJ2dWNDVEU4Y2xjOWlwfDtBMyQ4LlZATnBDK3s8XnNtaF91YCExSn1pNGxSSE4pfVliITUjTFt4KX4zb2tHOWE5QFNGJEZEc3J8fGdXKEJpXVB0cFlkUFJeeC49QktKXSEkPio5PVhwQXtjViN6'@; put 'byNdaG19TXluUlF1ZTFmQCE4cixdPU1OO2M9JDdXYCFzMCRqND8rRS5na0dCeGJYfUIqbWc0Kz1jZExeR0BsQ1FGdnsvP2IhNGVbe1IkdHZuUz43R1ImLGJOfEkmQ1c2aF9xfUhiYjI/ZXpNQiR8TThaMzglTitVJV12OnUjSH4zcVNBcCQsPlgueSUmTUw3X111cWJ1QGNnODRaUjkxPWB7UTRt'@; put 'QUpCYn5FQ1M9RilTTWZPS11yOWcxK3tPVWBQbGNNckNPfDJdODZyZyU9JG4lQVN2KnFEISNqYkR1fld9Ilo/U0JgdEZ8aGI7Z2ZZT054SG8qa2IoRmxxVklEaWc1UC59ekpnK11fOV47amh2anorQ3ZNSUshQXtGczRFL2chMmdXeW0mJDt3RChyX30jQ1ZjPiNsPkxoPVJ5REouJlJEPSs8JFB3'@; put 'R3p6bE15RVRJQnl3Tz1oSjg2MFNtPzkhTUEiTFZhPEpHUTN0KGRmUDRpRGxkK35bP19MVGpFdTZydmAqKTZoIilQJCE0JWhBcEs6Xjg6VCkoQj1YU1s7SjRQS2B9ZVRsaDwlMUtnMkF0KDJbTWc2fkRjfTxxKEVtbEAsemFWR28+SnpgQFBxVi5YMnhyWGFVQlU0ekJzJXB9VCtsPEAzT0F8fno2'@; put 'Njoxa240MUUrQU5JYWs6Znt9PTVUQTNWMitsZno6dXgmOl9RYDoiVzZGfSEoe2RoeSlqeHZUaj54PlAsQFNrPmN+InYoVzojVGk7LHl3R3ZifmVFY1JEb194OThKTitCYCh7RT4hciNbWTU4JTc9c3E+NkBYWUZjP2BnazZlPz5pXywxMGIlUldWIzo1WFteN0EyREUvKXopbWtgUEl0ZkovSVZa'@; put 'YVJtTEo3Ynp1e0ZYPVNDWEYmXW5LNWhGa0NKWnlBPCE4eVNoQkl1XjNLSChdL2RhZ3UyKnpSLlBoIURRa0llc1QiNE01ai8zZXpta1EhfDAldFk3IzhvIVQhLnM8bSVLN2ZBNy4xWDJzKiE5b3pDKHMzPSh9ZkU1UmdhP0YqOX0pZigvbF1zJHtkbi47RCRtZFRwPVtCXW1bSjQ/ezNZOzwmcD1R'@; put 'WXE8IXkmN102WT9tSD9QKX1NR24hbV9PNy5QXjlQfFd7NExJP1h0MyQhZGpncU5Xfl9xRTx7WVAwZ0lOczxnREkoPWkwY0FUPDJ9S1p8Qj9gRFA4Vzk0fjNNcVQ9dipOa2BMQDRffFQsTCw1PUYjJSxTWj1XbHVNOmdGQyomQzc2KDF+RkFGPDsuTU9oKlVidUVyUVtgPWN7Y0krNkhPUHUzdixz'@; put 'Vns2RVApdE42Wjd8SzdjbWU0RmxSbV8sYU5WPXxiNnBuTltjfGs8XlhmdX45dSV7W35kM3VPP1NXXyw4ZlFFSkYpbFZdMGJrdnkkTHtySnkvO2MlfTw8WG9mWCNAYUksRE1KTz1SJjcsMixJYHQzK0shR3pqKFc5VWZJTW4mK3lXZ1s4ZzJHR1Z8Ukp3Nl1ELHRnXSo+MWl0NV8ofD1helYyR143'@; put 'cFcuTXhjKEwkX3RRcXMoR2RONSpxPD9qL2pnXkgqQ10kODt8LDssezolO0JLPFFzKSgzIyFRTDR1fT98M019ciI8dmZTKntGKFZ6UFBeWSJaSilYQnF+UVcyfj1VPCVyeGhGRFgxcz96ITxQdFpWcjRxMGdXMGxFKV17QDxyNC4zXm41RmQ8RVBTN0NwKWBaX2dzbDlIKUkkQU41VWp8JmVoSWt2'@; put 'Vn1VTGpnMFAwWEh6IzpwPHVoZ3lDMltTcVR9X196NGpXNlJ1NERtSCRWRUhxLkh9I0xdTXYoU1BJU3VsVTYmWWx4dW9ua2R+NDt+ZVIhbDM0bzh+IXo/OF95L0A7eWZkVUY7PW1rWFpZTnFCay9jbEJJUUYhVlQyPiNwfTEoPmclZkB0UUFMMitgSyU2Y3IyenNwV0Z8e1A6SC5eUUJZY08oWDlz'@; put 'JTVqUi5aQD9OfEBfK35SZjRIcUIqLGdQM30+RnIsM2BNc3Q6TE1xWGNUITIyRD8iWDNPTWlIa19KT1dQTkZYe3RPa3pKUkE+TGZPXXcrbEJYVWEiOHY7VmI8YkM1dU1CKW1ZLD9HZU1dJSVXZmZxMFRLek1tQCpTMmg3W1E2fkR9Qjo9QjVsO290PHhEfGlGWl8vViVZb3xyckJUN3p7JDt5biFW'@; put 'TipfIWprUEkmaTFkMUIjIm4lRkgxbms5Vko6Qy58d35TRjBCcGAzdm97fjM0NVE0MSZ1NURSZUxbO2s0aS5KQ2BfaStjNkBJVUk/XXlWOy9BVFdScjo1ZjhGJkhAJChFR21zVS49JHo9RV58RnB5UDs5T1cqWFk3Ty9vTStOKEtGQ1BaP2AlKlAuRHVuIj4+UDgyKzdJcipGZng9YFUvQjB2YlQy'@; put 'S3xoPFZiWXMyTlFkXVEjVjBFRC9fe0wiaVkpb250OWppOC5fV3VFJktPOEB7eztee1V5UzVAVyplRXs4W1hyfGhUUCJDdi5FcVVFVTs6dFJ6fl5tPVRNImxnOHYvP2BobDkqWlpVTXNsIjYlJEkwQy9TNVYjP0JXRXo9dFhmbUhXNHtRcCx1RSJgMGgzRT05ajNrbHpZNHMubjBsRFokNTh0KH1W'@; put 'PTksYFB0KWkjbzEiPnVLUTdZUX4zfDQxeWFAUEMvdldKbG0oc15GN24hWCl2ZkMsZ3JTNGUqKzVuTU5CLkpUWFZ6PGxSbytpQTVeMjFJKV9QfCxiOFsqPH5kfSkyRXI9PzFWX2MpRkpjcG03WklmU1QhT2txQj1FckNkO1U7SX11YnVJQ19ZZmk9cjYzYFJDU3dQPHJDJk4vSDE/JHlGK2ZXQ1hU'@; put 'aUY4VTpiUS9kWmYhejYkbGlFUFl3YCYuZyssV3JQPHQlOm9hYXkoPyJHX1dxdUluPyZEKl5STld1KDBCK1IhUV0kZyNwUlIzd01LcWI4VUtRL0opJStCeVNWdl1LdyFLd3Z0eFoufkk4Z0w0PHZ2PSJeXnxUeiUvJFVWVlIrNmdwSWo3TV40MWsuRWxqY0AjPFtldCVvV0ZMTHB8XU47VFc9ZjZb'@; put 'anBsOEciPjJnWCgqeDg8RTIycTZxdUpKMncsV0xXbFJkW2czKkNuPUV9Mm8vdltGNlM3T046Q1ZyY3w+XW9dRX17NT1EJUgwZStjOiUvQVg9M2wzZ0c7XyJJInV0OkRQNWBSdGRTNU5RcXY1a25oUG5QUyttVnY1VTlSL1VfIX1hbz1eWDZMSUl7LEYpQlVkakhoMzZ1Mk5rTnJRcTAmfUhjcEV2'@; put 'LlZQfXgrSmNdN3kpeClEbyF4SXA3UEwwYSFbaHcjWi4qKVd+LzhKbmJpQik0Z2krdlZqIj0lN1IkdFBpcC40XkwweVVoLm1lRVJCbFlZVUVOWzUzZEVsKWAzb3Q0eFdbcVYiMHVTanNjTzFELz8xL3BnRVZCPTUmb1MuRS8vWEJaMV90OGZVSHFZNz1CeUpDIjxKYjc2WkRhbX5TVXhaXiw+R0Ap'@; put 'KW1QZz1YWlBqb3pSbHhWNG47Nz1IOVRMYUhOZ3B+fCUvIXt9Z1JKbWIwPEtKfVcpIU9TOER7RGB9a0F3aiIsaWgvS3ZOZFp2bX1uZHIoIyppPVBQckQkSEF3WjJfVnBeOXVnZ2cpWzdrc212fSxqcUFGPnFDbzpnWmxRbzFpWElRRGpAS0lbKihhQ2NkfV1pI1ddUmpMP2NKJSI8QjA6U3M+bC53'@; put 'ZEszKjJrKzB2WSw4YFVLMk9YYS9fJl0vaSlVKkw3XSwpKi5MKFhWZ1BofENXV0VUITZjJkZxfjJXdVczblQsMCM2Qnc1TVY4Y05PTXxkb0EvVkByMXtdZ3NnOyEoVlNGLlltfUtjNmRgLFQyS1M8aGM5PUxVfEtRY0d5KTZoNy99QSVPK1k+LFF9V3o9ZCtUMlJSMWl5e3xZNlIsVVVqPyglUzNx'@; put 'ZzEkYldPT0A5L2RJUmcyeEE8SnpnYio3ZSh6Q35XMXdLaWttZ0w/R0oqTEVGKF5sdn1XUDEwQCVQMnwpaEBmLGJDOjYvSjhRayg+TTJJWX5xTmNtdE5KfXxHe3U0XihnPC58N2NtR10kJlhoczQpU1YrOjtlOyouWDVsb18+JjIzNTIscUM9emBOOG9qVVkja0clXkMjLGB+eXtaYiZVLnI5Izpr'@; put 'dzAxeH5jKnJaISh3UjE4Qkg2IUtPd2sqTDphKCNkUjg6ISEuW1dVciJtUyZKJGIzPXBIcSZpWD93eHokZ083QWZ2aFQvUjBgbV0zfiNzRTl5aCJ9c3B7fmMrTjIyIVM/WT5HfmdxbCR8UTZldis6YyowKGxDZH5GVklSYC9yb1lVK2wyIjFVfX56dSg7XUkqUSRNPTp0PGIjfmZ8SCJLbno9PD1G'@; put 'OD91Oll6eTNNTTg6aFh6ci9ecUskTkc9MCIxIlB0c0Q8R2pLOHdrbjF8Nk8qJEYyMG46ckUwMkh7cX12SWtIcnoxOnwqZmdZaGNoUkw0UDJvLFk+czdzOmRBZWcjR3tIcl0qY2BhVz9xQWU/OEMxRCt5REpofjB0dVZZd1J1KFQyUUF5Nng3Nnt6LjEhbT9HUyo7SXF8SDhpemhraGpiNGl9YEdJ'@; put 'bG8vMTokJUkieGRUOkp6bXN4I1c+dGRHPzUuMU9gTnpJcVdTWTBuRU8yOHY7O1FjQ0J9QTE2X1ZxY3RdV3F5amdCJGhhSkNTanp0I2ghMH06L2U/amYoMHFyOUgzTV5faHNfZ0RLYF9za0tQbSNUe05sVnlBNWVra2xIaShEX3BnQ15oayl5c3BDJiFNdXFYZGI5IT1ENz1rIzR+QnIjQjpsaEpQ'@; put 'Rm8rTSNVMjFfKk0rZ2xoOl1PTiR9NFVHPyl3X35se3B5Q0JdfXtMIyVDRUcpTXo+ezA/Y099MFsmXkJgMkYwKjRudXUxJGNFfVJ2TjhkN2ovdypSL3glUnBvVmNaQC80bzs6KDI1ZyR5UVYsQUFTYFdLal1vYGdiTVVlWzVQcX51bjhWbldCMjw/dVlZOHxvW2glWkNleGk6OykjZjZHMkBgUVoz'@; put 'JWEkZEkmLndqZWc1PGtqRG11JTtKOD08Uj1eNGF9fmA2Xlp0V3EhInEkYzxKe189Zj1nekBPWnB0JDRKM2xVTFUiLms6JVgqbkJPT301OHZ0JnpRT2A8WGkkLDJgPWQ8QzQpdFpBXzBFYTNTdVNRMF9uUyteRj46RWgpNlRBcnsyVy9rWFtpb1ZNeDRhVGM0WDZlQ2MrNVg6RkJjdjhvRjgwTCo3'@; put 'WCMzUk5MZn48KmZGbW1EdHh+UmBpfiMsN3ZPNjw5ZUYjazhbX3pNYk0xWCteNHpEUytXR15sMVlKYis3Sl5tSWR8Z3ZiJDFEeX1Ya3J8K2Y4UWxfeltVb1ttaEV3Sil3aU98XyglZSUsdmMkU0c+fCFTPD1xYj1wRXN2JVJVRSs7Q30kd3NaYWUqW3QmaHJiJV9dcTlaN29qTUxWNVcldltkNmpj'@; put 'PGEiI2dwRnUuSVs0b2A2XzRoJH5aV3lrLix5RlgvTlc+PVp4UFt9fGU5Tm99PSlzTWRQLzYvMUwqSjMpeHY1KFomNCQ9NS4vUTckdUQjJFlhQEw1cnc2JnEuam19OkRpVVUya1lsQD5lY2xJWjlGZUA9dURSZF1eUk8wMnxDUzkrSU9VfjFqK081VjIjWkJOJXY3e29KIiopQVRZYm8uKyVUb3sv'@; put 'fl1ee2ZzSXhzU1N+YUpoWkRYI1JrUVp4VF9XKylLbSN2L1FIWn0/KSVNcUpNczx9Lmd0N1leb255Q0AmPGwuPlo9RkJzWyRUO2hvNWc+OTkxbmJuNUcoMjtNei83YWQmcTxgRE07L2R9YUwmSHJIMG43P0hXYVs0bzZVL19JZDJxQ2VlMyJQL2Q/Yl05JlpeNCE8clIpK2VXOnBYKzUmXWU7IV9p'@; put 'PV08TTw6NEomMjk6XktvRHxrODYvaH0qN20ueklEVSNUYlE1OmpbMFhUU1Q0aFlqTz5wdi56VmMlSHJbRSMwJXR1TVR1XmVoLDl5KV9nb15SZDxFdEkxRElQRkI+I35qRXNBcV85NS5SSWhOZFlld0YvYyU6KiMrS01JaihyekImcXdEPVlbPFNuQzBvWHkzej9OTT5eWn0xMGRdRkQ5SHIqMUph'@; put 'cypFWldJXyhnaU08Y2J3UnI0WmBtTU49N201JT0lWi4xQ3lPPSlkMkxQV0AkeVR2WTcjRUMye2F0X0dxISVNbnUwczFpT2l4O3QpM1lRMU16WUEobkwsR288dSgieHV5bTkoS1ZbNkdjbmZZXSUrLFpoWWxaeF15QjBtay9sZyVgfiZsPnVAaXkqUzRsdmlUNDxvMHkuPj1vfWZNVF1AK3shQlRm'@; put 'dTt2PFVGdmRHXyshLDU5XUJWNUVleG9nLERERms3dmgrbD0yVHN5bVV0a1cma1pXUiY3UG4ueVB9WW5uRzNWSWh8K2VdMFdbUSIqQCp8dnJNLkpqZzpsYnA1XUFbd3RyPHIsTFNWYVhMKTZAUVMqUldhRT0mYCVuSHpjQ3ZGM31PP3MwVCVdb254cV5lVDYkY0tfT0Y7T1V3T0B1NmIoOmlgK1Y0'@; put 'WDxkPzxeLHFeQzclSndTMzJAQ2hbZ2UmLjVEJXxkUihIakFJc1FpQTZPPXdDZSV1MTdHPmlGLExpSE5kOXNRW2BlUy5WPFFeS2EzQW1CV21KfEI9X2MpKGNSN2JfQkY6WSFyJE50IXU5Oz1xNTA2M2oqWENXMFduYS9aXmhpUGt8KT0ucjYpW0U3MD0vRWRtemtYZ29pPEZCNmQ0ayxJbWsiYEdp'@; put 'PU8pJD9ic0k7ZVt5Rl4/XkhmdlAxN0daS1FMcXdEP3EpQmQ6bioyX1hTUCZvck9nWXMxeCo3Jjs/STJvTmQsPWQoQklnLFg+XSRJZjpOcCF4P0ZFQ1ovVSNvPCReMW9bOlImTy9XNzYwUGRjL25jKzdEZHl2XU19aTF6U3g6YVhmTytpNS5wZXc9PEdyNXQjLiorT3ViSW0xOUdWJWZFTEx8PzQo'@; put 'WVpkcFMwb3ZdXmIrIj5IO0x4VXtxQHkySCZ2SC9kVX5fZVVxImV0WTpWPn40dHVsdWdzdTBTTl9efXUrbXRlfjA4WWp0O3xKUnRfd2hwVn0maTtXI2lrUm9ANEtLOVV6JkRhWj5KIix8VyNGaihCWyZ7TnBFRTJyNDA2T21iLGdZeU8yMkpLTmNYWClvZFp2JGJfYVkyPD4yPj5pQ29leTV4bzBL'@; put 'WiNIUCkodVRRYE5LLHRFJVlHPlt+SFFgZThgb1MqUiQqMjBQIzxPTS4uS1NDfmk9T3dJWjQ7Nl5bKnxLLGZ7cFZJJSQkOCRGLzt8XTxbT0dPfF1yJEJJaF89SkJlbElDREgzRy5fQzNUX29ETmAkTS53aXpaX2N0QlgjOEhFbEhfc1clbGZDQT5ZJTc4blB8fExzMXxFTnl3Q1ZFOHNeNDhPfnFe'@; put 'Q2VOTGB9bFVNLyp8LCZmakJmJkcoMUFrejpbU0J8LDNCNmlKampALFhdJl03bGhyNnM0MFlSbCQuMUh4Ji5fP2QqXl8zLCpRaVYwZDl9Z3xvTHdmMlMvLmNrW215VyEkK2xRYD1bWzVNJHFfTG9KbiFvcyZrMHEufVRjK0AjfV5ySENyQX15alRxLD1dQFF6KFk6KSQxN0U+Kmc0JHs2Oyk4MyNq'@; put 'QF9NOys/cmdLaC5jOSNmRFQyREIjNSRSYUxJcFJWQE17JU0+Pl53TFg2PWlCYy4hU35UfWkvbyhkJm4mOSNSe1Ype0k8UCk6ejx0PDdUalF3NyomIjtSVzxNN29VcCNKOHUmSz02JTRRU0RbYVVdX1Q0RF9lU0dbb0F2fWsxJFplQ29YTm97TFp6TEFbOCwkXyMsaHUlPUYhSXssMnJUdHp2Nkpd'@; put 'ZlhmMWZrPWhhUj9HZmVLbSkvVFpORFh9NHg+RT0lb2NzO0NMckNrRmlMYm1ePjNZM091N2VIdHd9IjNKWz4uY2pgPENJc2FdTGAuUDZYSG1rfkZhZiF9cyxvRz5AdDwvK2VSZH4pPXhKen5kX2ZldD0qb0RtRlFPUUVqPFRjKztMMl0ubl5kbGFXbXU2eUwlRz57TU13SzdVKSU4fls8SSRabCxX'@; put 'QjRaK241MzRNXWhySyZSaU9WP3VSX0pjenUufHoibnduaTpVQ0daYnxUSnJqZmFCIjRFclFhbSlaUTRPaTk+O0ZNPDl6VTVjUENRcShvSjRMcXU6eSwmMUBQdDtFbm5AbzxWdVNIPEcpJVBpUi9mOFU0MjVvUGR9IW9WWS9mPXI/X2pxZGVNX30jRl44RF5UQjAhZ1ImTFlSNExdYzQrRSx2TE5a'@; put 'Nm53aUJ5WGZJNF8wYitsaXliMVg5a3oyNzZ6aChaYGFUcE09Q0lIYyoyYFNlZFp6RXlNfDBKTSpHb1Q8WnVtUmEwKHgsKzQ6LCxBKXk+S2l6ayFVWHB+K1ZRUzxhInl4REhJT1Zdc0lZT3hbZS9KNXNkUlpePEp6UjhCI1YoOHpuUX1jIyVoUjRxKDI8LD4sW1tdQFIxUkl8JCUlQGkiMjt9QEk0'@; put 'LkFWOHBUXWp3LCUpMXojbGEyW3khRlMvYyJ3JHt1IU5VTWpNQnRAYWhxV3hqTCNPRThOLFdYfSxiK34wKXFzdFBfKSZmRUc0I0tkVkdeMHd5ZVYlPGs0cUFSMGo2P0I8RyhHdTU9PjM/dDxmdCt8QkA8MC88cmpEOEV6d0BDUF5xYm1mX3d1V304TGxKYGx9ISY4Nm90KlBzJCQoOzRATzM9bFZS'@; put 'Ul9RPGlsWFExUEgmRj1XLCh5aChsZUwiYnBwfio5cTM8IWs6PW0jM2x7ZD1dczE5PEBdVSg4OSQxLjRgayVOXkRzcGlnJU8kV216LkQ4LGddISQhdmFUV0RTI3t3VVtPdURWKzYrR0klUH0zfixtYSRiMWYjMStXeFEsVzJ4RTZXYzg0Tlp8In0pR1JWL1psdnVqS0pYdzR7KG44OypadHZwNXQ2'@; put 'O1k/K3t1JC5rQD9nOzdiK0g0dC9+QjFCNkkmIjg6XnNjfHZMNV51dEQ1bFhEPChJdFUxeXw5XT0haGUyUGcjYDQiQWxKO0t1XnNDZzg/ISgofTY5UDlmQkNLUz1QOFd7dCZRSkM4cTcsKiIqZzZMM345YypQSGY9UE8heFo5IU5oLntVV2RNSlU+VkBbc3lrIT94Xm9EZU0lL0ZAXVc9dmdTJDtd'@; put 'OHdpI2M1ODdKLHlwLlN1aHgvcXB6bXA5VDRbIyUsJkAmKzVKUCEzaSoqR0MpXVhiRElLMG1vMzFdbzJESm1FI0xqKEolJkxQfHFVXVhueFdiRUxJLHpsJTJ8TiVJVV9afCtIU0h7IlZwV0R5JkA7ZHdXVylkT2BWfVM+QDs8emgqPig3eis2SHoyWz8ybWgyRjprNnArWUBJMnY3UlVgNnFvYzpO'@; put 'bHk0fWMjeyM5angqSWFyIz1BXzV2NVs2bUshIWR3V2dgbmg3SWttKEAzanA6RTFCNnsyYWFLU1VIOUk9YXNCRFgrd3xOXndqI0tMTGNCMT9NTi4kPFFCPD9CSEZpTFQlPVNCdEo6dTNNNTVzJWJSfS9FTG5fTkVwOlpBVHUwbnZdcGozKS9zZitOTUNZcmx4Sip0SUomVWpJT2dzN2BLI2B8aF9S'@; put 'OUZTUSg7S3UkbVYhIyo9fCI5MWMxSHJxPSx9XlJLS3BCKnRpe25naTA1XzQrOllXNz0/OWQhMHUiPlpqLipQNTMmTkp0JD89dUxNXn0kXXE0Umg0ZygrczVsdFpsRW1wbzN1VE49RiFyczo8T15uR0ouU0U4XWpPWGIoIWJbW0wmZEYrUm1MdjtpUncqb01bSDN8MFNecix8IWRwYyNJbFFEc3Fp'@; put 'dFklJHFLZEUrJD1RRF9dQzp5d0FDa15+Y1t3Y1tRMDFrKzdpN0hPfUZmZT1sXXVaMG1yVDVSKSpZK3VvLnRwOCovXiJFKmp2N3FJYUU1R3IyZHg5ZkN7TnZgVVt3IVRXQEl4QCE+NVVqcEtOOElPUj52NUl9WWN+a0gyXXBNI049KlBMRT5IY05SVXc+TjM4ZFM8dzRSJUIhZ1V4ak1ARm59RDpe'@; put 'UHBwZyxQWmFZK05vdEJHbUJsVmNKeVsxI3RqdnswMmFvPil3QW9OOG1hLD8jUnVQMCxsQF1weyVCWn54OVBrLGtqfDk4fGlDUW1gW19qPkxYdFRPJGo0UTFWNihLMFAqKV4rVU4xdCt6e2tSOSJ4KnpOczY2JTF8RzAwTk59X2NPWnRReGFeTyMlUkZYPn1DLEshOWlSWWMkNG5xZk5mTVk5dSVs'@; put 'ZXR6M3FSVyRqcWQ+IUUrSXxSQE1JIXcsOElaI01VLi4pWUpbayM4R1FabUo/V2tHeGVEcmdZRSlRYnZKdigwJjI4eUM7Vmo5TXBxZndCTkpJYVV4anNraUZIaiIiMEttSDRfcj9UaSEzJV46QUlFRiQ+fUs2RXlpQSReKDs9ZlkwXn5TPlQxU1Q+bDh7YTNHa2FCOjwvSHRpfmcxNWwzcTtdSUQq'@; put 'N3tJeC4yVTgjQFlZaHpnZXRYY1h+dERDV1FzYUYhWCFvLDdKOnQlfWleY1hITzgmSC5zITR3eXAyTnJ4TGJHOmc8MjF2OX1wKUolJSY3fVZ1ZF5EfHguTyVQaFBQd1dVYE03LnEwT1tyI0M6KCVSUi9rbCFAUERRZ0dEKnJhdCNEVEV3clkvUlV1X2I0K0dHeVB4aVtnOUBXa2RrXS5xOjVNVnZz'@; put 'NyRvTkc4NyJ6Jn1oJV9aVC9LWCljbkhhcEwjVCQzOlRbTVgiOlFpMG1pIUh4YyovQW1abGt8KDJVKmhtalZYKDhFd0xJMHBROkt4VjZGdmcscWglQDcvUz1oLnNdKT1dLC5sL2clQCR8L0hZXnFqSGEkIT8/QW9MekNRZ1BFRHk6VGV6KGsuK3tDdGU/QkE3KWQ9bW5BU1VrbVc8S0hRQUV1WGEh'@; put 'L2toOkVeTm1yMntdKGcoO3g5VTJeRjMqWnI+PiRrfEt3YmhRSitlUCp8XlAkTVFUcDVZNnYpO3gsY1F5V3ZSay4iZXN6QEEubH1tQWB9MCtuIUoyTGIlVShCOiFzM3hkMTs6MVRgJjdlMn0rPj1EMkRyYzlnb2xtYE94I31wNHk7ZlsoQCN+RSREL2BjNGNnbnk/QlUyciVsSDI8Q1ovZjBJQUtr'@; put 'PHU8ZzxdazFCL14uS1p5Sk98WSIyS1RbSEpIKG15O09adSlwIm49SlFGam4jbTJiS11QJllCM0ghTUZ0XkVEdF5FI3peZml5dT5wR2lrJmZpMClXbHk7R3lCdytfbSFiKSZBV25CXUN5WSRYNzpUSjA5Sjo/dyhTP11VSzVdaCtzNSVVRlJDSyVFXUBRVm1bNnt2IVB8fXdjMF5aMWFqJTw9Nncp'@; put 'UnpILDczLzB5Zmp0U3pgSGdsRFE+PGFqNC9hTTE9YWEuQigqV350WW5uXWNWWE5FU0dHQ19pRkJPVl16YFpWe2dtJCkrJHpoJEV+JXJDJFtYPS92cHk6c2F5TzZ9VT4+aFFycHdecHFUd1paTEBIeiojNixWcnJUSjYmailnJGwrIkopcEtNbXd4YWlrJHleQl8jPWJka2lWbzZpTU44aDJIXlVu'@; put 'YFFgRDxHISU/O1VhOUduNXNXXXV8QCJII1FyPFg+MjN7X2ZmczxPXzdCNmdrd0I8QE0lMEFQJi9MVkoybzhdOzVgeE1GeDNFPyVwP1p8OjttMzVIJDZiYE5Ccn17ajchNyIrUGYvd0skPDFMO2Nvbmo0e1Zkbix8ZEdSKW0yXXM0MTBrWEFEQCR6ZkZMZmtUNjozPGw8PjQ4YXRTejwhSkd2VFlR'@; put 'T3hnKjZAa0txREZKZG4rUHxrYE9aYV9DeHh3dW8uNz9IO2dxXmlAY09RKj9GcXUqdz1Cb0UmUlNgfThZPEsoQFo6N2hmQGZVaTFINCx2IzB2OHgqQUNkfHFOalghI05PLnRJN0M1Oj5BbU5adz83RFc2O15BX3leSH05diYmSGNpI1BLZ1VSTClHa3BIYzNDaCRTI2dZVWYkN0czcU8hTlVrKzZ2'@; put 'RFFOXlVqODo8cDgwWylGOCxbelI/MW1qaThZRk5HR0k9TVhoKXR1SH5sJjIxTzw9L2A+eTYoaXRaX2IsWk01YmpXIyhCW0d1dHF9RV5JMDtvfktWPT0iLkRKUkFDQEdadislLFRPdmtFOmRgJSxgMWtgPHVoZE48TjVyVX5yVV1XeCE8PFMoOXp5PClAX1orOkNJTnRSY34wMkc/fnA0WSRoKTRN'@; put 'I3RfRChvRVE+RDohUUt0SWNxcUpfW2RIbWBNYjRObW9ofHBeL19hY0ltWnUvOk1XW3w9MHAzUX5VUzUyM3BDbFBnXjFPRiJjInp8MC41aEdwZVdmRDtOYDVASyZ5JD1NbjdMZzxIMzMleV5kb0VkK2QmajNrKVM7SFlIe3IpRkxqNyVNSiRbJjYySz5wXk97K2tYLm96dHRUO1ZJI1h3P3ErRjUz'@; put 'PyZWWXV4aiFzNGVvM3klfC8yQCZ6QShTaEdzUiM4Ni8jPTBpYWdyal09XmJeWVc+LiM2TH4hfm9rIUY3cFtWd1V+cE0sISRFZS8kO3QmayVQelcoUGdjSFZ9IURNITUrOSJobjh6fEo8ejI4eWIoajNJO15tRjs8ckMyWjllMGxlMDRxXmlecDlxOXhCVWRGMHBNa0pyQ1I4cDJWcE5gWnxJNGJE'@; put 'UThsJHVtKT0hd2w6M3YoKTBFfT9yfDloKDhGPTU0eGpIOU9zLz14Okk5RzEjXXgmRDZdUlhqZD0hVT42YTtidiYhVm9oLi8jclcke20vVzhjZi5SYDBYMDdGU1V4aj4uKGluYmc+e2Q0WnJiRC9NS3lPZmgiRV19cj1GWTFQOE8vKjFtd1owZS9Nfmo2PGxEd3QuND5FSSpQLzkuZXUpO2cwWl0i'@; put 'JGxveWI9OVhvTzFUWjdSJTd0OmhVWUclRVVxJUo/S3l6OXZiMDJneHAke104Wko1LG5wMzIrMC8sRiN8YHU9RmNpIT41LDUvMD5CV3ZMOjtxSkg2P3ZSQDBiWVcjTmJWZVN+Pl04IUZTMDYvPHxgJmI6UmJ+NDcrRi8xalBEKS98UFVQKS9Cd08qWGsrYlAoYit7bjVHMWdHb2tdV15pal50c0p2'@; put 'XUxPSjs+LGY+WVoqNGA6fXJiISZWQ0s/elJJaTg7bC98TkpzMlA3WSEydVBrdT1PdFB5cEEybGNCam1AS1V2PVAzZE4vJF1SLHN1UTxKKDt0OXNfezA8SyFEODFBa15weWdSU2dSfXAramVYfWpCI3JPSDZTbWAoSjNtYUU5Z2JENj5xIi4+N0F7Mnhpd3xOX1tTeSkiPEwmfH06eHE7VkI3YGEp'@; put 'fkRNQGFWeih3eE5TTG55elpLamNOaTAmRVZUcGxQZ3RrMXNQbj1+JUBYJEI6bDcrRjE1MlBXVUNAdF1gXig0eGpWWiY5WTU0XyhmXmw0YE4pJHtgX2lLaTQ/MzovMn1QYVhAfiE7ZHMrTWhiMXJ0fj9gU2wlTjIkdFhvMyxGOiZVNHBlOEEyeWZQTDBBPmw6WlkkckdUeTB9V0c5K0VETXxZajtf'@; put 'Tys/bUBvMksmVXE+dDldT1hRSV5GLGAhQ1Fmd3E2cDMuJGFEJGdTeX1RXzFPazBmZTxTVnAsa2xZMUVeTVN6MFNXWEcqKkJRaUNIdTJFPm5QNVovS3RWcmtTWDB4eldaZmx7Yks2QE1QdTEjODEpUGQyJUFAcGJpe0R0YklKYzo+Z3VlVDVvYiQ7WlpkW10xfCt9QzxQPkgoTjlVUyx2I0NQK0pP'@; put 'LCJXcllgVENoTSFxWT9IdWZQI14sKi82UFY9cypMekFmZ3ZsJW94STBtTE9SVV8+bCZpY09zZilQVTFabj88aHNFcVVtZVk4eD9QU0w2ZzUjYy5TbEMsM000Nl8/ZF4qcmFOPiZ9ZHFOLmc6b0NYbGpDRXlkbl4mJT5nbTI4PFc7Ql90SjN2d0orelcvJkduXWhpZFI+diQxPno/MUhiRH44PlU6'@; put 'LDFBV3w5Wnw6PC94UkhoTUM3LzVxNWFeWG5iWVYqVCN4eSpuK0c1KWpFU0xjK2U6JGF7bmxtPzElUm9qQCtMO1BdRH5pPER0Oyp0VnFYQWlGK1gwMURRb3ZPdEB1IVJ5aWp9Okc2Q006SnV0JE9SYlROYn1ka05ebTd1dVB1QDNeZSh6Plh5ZmkuND5AdSx1Z2wxL3xtP0hzdTtBTV9FdFlnd0lq'@; put 'cT1KKVJBQTJjLmE1KWFqVE4pSl05MCgyZUs4YEopUkMiMmN2YGlCT3s3UlNlN2N2YGQsIzpBXnlhdVdOMCF8UHdGSmVFNlc5SUNBMmRjUCtMT28kVEdHNlhgXytkTF1+fXk3SEJLPlRFVjd5bU8/N1JlWkNDbTBFTnJOVDRMVy9STVlvamt4SlRPMDxIbmMhJmdrYllGMEVOVUhdZmlwJEk/a2x1'@; put 'S3BVXW06OzZTXlRNUDwzWE12KlVITkhmW0NFXkVpTVlGaUthMDZRK3F3TE9sdlZ6OFVlfVplYktmfjo5Qjw9NCM7OEBibEpiUU0jWmtIeklWXkJmLlo0dz1sSVVTN1g4VH18X35kPmdHfktxYVJAKVpzTzFqMFQkcTZ6cnJbKWBGI1skIi5DRyR+NXVGIVZ7ckNAe3tpTjV4ai5XKHZbO3c0T2os'@; put 'MzZZelMzbkFqMHNgeiV2JmhAaHttLk5hfVYxSDArTi93ZmU0dGUySjBROCVsIypxcW4ybyF7YnwwRU1LVVpgWSw8L0VrdF8+N0tec1JGSH1lOldJYG4mYVFMTU1HMVQoM3kwQFtVOmttLEh1SCs5Y1kwUkhPInYkMFhpcGkoOFtJT3wqOVR2MitlVnVadkZqUjZ0SGg9fWYlMC9ieEBNQFB+TUMs'@; put 'aE9IOmx9VD59d1F6Z21tOGRZSXBmMnsyLmtIa1lPZjw5Jk9IQWplXks1ezIoX1BuV3cjNzl7cmNJOXlHWFIlZktOV3FSLChmYDU0OH1QPDElMSZJcFIsMXR7Jld9cyZ4X3xJaFBnYE9qJCg4PUImYGJ5V0IrJXJGcD9yP3l0S0wzdlp+bCtAZ1UjJiM+fkR8Vzd9NFhaM3lASVgrSzY0N3I/flNF'@; put 'KntpTyQ8XS8oIXs/JkMpbGAkWERLKjA9eEY6SilMWEZKcFEiWEtZcWdhPWdQWT1LbVhjaipMTDlSKiVpWShddFE7MF8kQlBvNFpKXkQ3XzdnX2lweENkaUQ5QjpZX0psSTVzUiRiXmZAVFY2IXluQW1sUkQpLHV4VSYrKXJHOndud2pocCEycU9FNUYzdlgrS00jMmxdSFRKalIjY0ksQHNiPkgs'@; put 'JGMoLyVKLkJpTFtjemgoWDkyclpUUT5hPmFiNCxxIzIlaUhIbCppeGBffEJrYGxSaVFqdk44NiJJOmQ0djQ1VzlzNGY7YzxdMUJ6fjh4fnVLUyMyQCw+bExSY09TNSp7TVNjKEgwPXZAcEUhSD4oVTJbR3cqJG12YiNtcnA7OV96cmB3UXkqRSwzWi8udiVAUHA4SDF4TGxLd2dydl4rQl1MY1BP'@; put 'UCVRTFRYaUJkeUBeVWsudXBRZnp+Xnc8TyxQRj9mYnhPPjZ6YX0lVlVTVXU5JSNgWSkqKTEkQzB6NUEiJUc3bT9DeDI4Vm44JWc/VHxeSmd9WD1jQ2dpd3BYKWJuNV9YPV4/Tzh+SnFTI0lDdzo0NkZ4VU13e3gkVl1XOC9ASWpldSldOnRqZXJNUUZTQSZRWH5KNXAoYGR+YnJKOGtlNWkuekda'@; put 'LldRc0FHTGwiVFRoT0NVcX5kUiohJl1DXkshQiYoNWlhVE4/an1mPHh8b3hfalEmRGcza1pTYSRXMmZNPUt2KThfZmgoOyx5aTRvOW4ySTlyTEwocnYmVWksdHE3IXgqT1lJQiU6Vi44dV5NMGs1LFp0KyQ6MypJRl42d0g8eyojU3RLMjYlSEZtWiVaJVhXfnE+KWoqclIsQWd9I3RxZ0txYlRO'@; put 'MjdDbUdyPCFZPklRdGpeeVo8Tmgsdi5nZWpOcXlMTFkpelNUantZKnMoXU5ee21DR289cHB2W3ZHPXZWNFAyYSgiV2U6TmpIcG5TO1F+ZiQlYjhmUFc9UGVTXi9nQUg9ZFJiSVAhVmFaYWdTWktyYn1wLm5NNmMyVTZAbVszTERTUiRJYksyZmVTMHNWUjUyYCpCNWteQ2pxV1IqSEpEfFhmbiFp'@; put 'L18vclpULll3RCl5Zkx2P2lCZ0NPNiplfT01JUQ9RTd1MHFyazZONnREdzZxO1JtLjljb1phbkNjPyFHMWJEcDttXXdOaHguLGdjbCpOOU9YNWZFbTZkUiF7TXV2dj5jXnh3JEFwd1ZVLiJae29MKVlKVGtUISZFTG14PV47NmgjdCtSc2VMIj0zckJoRSt4I3FCP1toWHdSJHBRbz0mWjNvRl9d'@; put 'TVdvW1MrXmckLG47bDQsZ0R3W11NcSUkJXouNEtqTE92bUJXeDY9aUlSITpaOVc0Qjk0UV1kWmtNfnhTcSJheWspPiNgNDA4Y2Z1O0chJF8mOUpmODU9a1VMVUgjRUZkcjEpflROfkVxQHsuJmBhZmBkNCZ7NHg2VkUuaHBUMTRmbV44Y2VCIzEqMDUqPSlLO0clIiksXlBTc2dFREopNEBHT2dF'@; put 'UXpxXm0hNCx7QjApWEJKUkIsQm1rfFo+IWxQa21ieU53QHJua3EpfGk5KHk3Z3o4dXAqKVM2JGZ8dCU7LkBdUlcxNz49bGRgMWdlbl9TKCNGeD9VZnFWZjo4bCRrbyY7PS4xaz11KT8ha2BmbUluUWk7aHVJcT1PVDREQzlTXzsvJnNRbUlvRkhkOD4yUG9+Kkg2WXN8NTlJVH4rQFBDKT48RTVG'@; put 'Um0hRnU7WEU3SEBvXTc/LyNUIztbdGZ4IyJIZjd+LEdrajplb1dQeSN7Zj5waWU0V2E4YlpjTCZMOjFIJiVmeU1Fa1JGOmJhUnM/XiE0YzVAW1coJVdpb0UxViZpK1JzPHpPOzgpd1J6T2JweFFFSyt8RTsuLnNkYC93RDxTIXQhKFA7ZjRTejwlfDA0MGhhaWdyNE1tZV1DO011aFY5IUNVRlJ1'@; put 'Sl0zTykzJjAxS3hHKXI7KXQyMEFmYW5TN1hzMU9dekEyRXV6YGoxNWk5Ty9lVjIxOitHI1tQVW8lel5fdjZHTXU/YklQMDxEZ1BdRj1IazF7QyIlPFF4YVI+JDJYMVhab2ohNylDOnJqS0VheHNlSlB1NmtzLnMsaHJ7bi5vfmMrZ1pmfmNpPFg8U1V9I1FsR2xCLGVaOGtObCohei5VVnVGUHsz'@; put 'Z1V2Lz96Kn5VPUk5LHFsKXZsYDdfal0kcXFkbG9RQCJ4K0JQUFA/eFYxVy8/JXw2USFJQSY6aVUsJXcpcW9Fa21gZjNbWW5fcChBLj5XPnskMVVKRlQlX0ZpImVMVn5taDEjVUo6PXt7eWg6OUBkc2xqXStnaV4hN2sha097SFtfRkFSdT9nOjpkPiE8VmdreCo8S2VoOjo4e1RhUURFZ2VIa2xz'@; put 'PiMiOGNOWmFBaGFoZ2JMa1ZMOyVqT0ZwPSQhakc9Z2V8dDEpSiU4LHIqWGA5LzApKSF+TE0vZnAxMVlrfT8uNl1hW0hWMmpZdmtpPj5DLmMqMlcuM2F4TzI5RXklOzklREZrOWomN2R4SFFmWndQPkMwUWxNWl1LYlNgOzdPK05vIyxRfGp0cD9McXB5JVhZR25zdW99ck9eOFc2OSVuMG0xKlE+'@; put 'PiJWa2UuJGxlTT81Zj5qZH1qI3B7WXQ1M0c7ci5RRSQyKXIlXUVKRnskL1BdZF5PXUMuIWViOjI0VE84XmVrOVYkLncxMyw2emU1PjQrUlgoUXJRVE9iL3hkT0gwPi46PEtkO1ErbXUiSTouWGlDaj06UFs5PD40SGlgLDxpM29IYk9SMiFscz14Zj5rZDJbMHYyfklgLmd7KGpWWCV7emYrfWpl'@; put 'fnVrdyQ7QmglMl12K15PR2s6K3prYnQ6Mi5tc351eF5EdVkuXix2PygkfG5uX3heal1oQmwyVTJUWlBQRXhia0p0InU9d0dGODgxQjs4VSJHTVJzfCw4TDVuLjQoai5EJCxdNjQxWTBEZGpgKnddUHgpPGRTO3BTSz8iVilNYTY+SC9qTCVlcWt2WlkrKmZtY1JYVVR5ZDkvLi5scCMwYHNGY0c8'@; put 'YD1QbTZBI3w0NklXekpYdzQzeWtSPSlCM19tPyFRR2UpUE9qaUo6aipnQ21TfUMrUGk7PlNBWC9HbEdiUFZrLE5WKl1Fa05KNnpeTUVEOWZ4PFA+SGVDfEdYMGNgL2pNP2Q5d3BDZHRYNmE/SGBEN30jbGs9ZlRLREJTS2Y/Z11qLG9QYU9PXVBmaWIkMXN4JHh7NHB5Sis8OEBtNTwkdzQ5dixQ'@; put 'R2VIUnFYSSxXdUBkL0wmbGxzVV4jUnwsOWpmYW1LQ2dzWEksSWdFcitScVE4QmxpPCVLeE4hRnlkNC5ffGptekpgbC8sNzREIyFeNjN7akAiZ3dwYnNoV1MjKSVfLFs3dlJUNUVSV34pLmY2eXBLYWxgcXwjLFo3VjVVUU14Ol5UTlJVPyRfVnhhSDBEPEclLkBrPHImR2V2SihmezB+a35nQWcy'@; put 'Yz5GODI+bk1ZQi5KQ0ZhfCxdZXA1WzE1JHF5eGpsVGZlSTddZV58RCZ5LEB9KmtJaCU8P3pgTmx2cnVqVFFUUilpPD5YVXpASWh6NkxDTUw7U0dRUjx5JDx0NUtPbHZ4QEhUb01oZnJDSmZBYC5kJGAwN2doQDw1fEtWWXNNI05Na2VGfilUTjYySSg0VjEuQDt0YWczMSYzYyovMDdbViY3ZXpk'@; put 'Ln1Ubkt2cS9FRmA2fUNaQGtnSTtHIU43P0REUC8paUsqLEVCPSFDTnVda1N+altlLz1TcDM6cVhJLEgjdlE0PWoiMztLMH4/dTB7PU8qJHkkd3p0Wkl2UWhgYE9rcE9QX3g7fls9RV42UDJQbj82eDp4KkQ7NkNeWF5JJUN5OVZZMVN6PGUmNWwucyQ/ZFshbmZvPy9qRSZrRlJyaEZOcm17KCtN'@; put 'JjdWdmxMay41bjokKjk3W3x6Wl9KPSE/RjwxJG5PPlBMRjAxSl1jfGgmZSR8JnJSM0V3WDBKOFR7eWNpPHopJEcqQHpnYU9iWUBUYWlDI2xqW2ZKQlVhXkRyNEB7S3U2Tjd7bDYqMDB3MS5fZVNXLDg0M2QyVG1+Y14ucHc8P1hiODJwaGt9SXhmbXMjWlVdUDpHaiRVciwjTW1xLiZsKDlTcl8+'@; put 'WzUiVF1PQ1BBOnNGSlUvfihWWWVhOXczQm90WnI5WGJSekc2WTBwOVFmU3A+OCpKdl4kZnFZbXVlP11DL0lNQ101VjBrdEVpTnkwK0kiWlVKZHhmb208IWBNY3dxZjtZI2psdy9uS1gjMig9cUt3ODAzPiIvNz1Yd24vLlsqI0R9VW4uQU92dzElRngzeSksUVVyXi5maGVHd1pIOm5rPSRvRjNF'@; put 'OFdjQl1kSDlnVWJ0ejRfcXBjOVF7RjUycHBEOX1qKjBgRndEeXx4NjR3MHc1RFovMj4hQXhYfS9Lbyp2N2heRiRuYT9HTCksYUBHO2diandAJkxBNUdJZ3I+c0BqSjBsRFlqSnZ4Wml2Wn04fHlhRURfKkVheTx5YzZ3SnMjWGVbM0ByLjwrIW9IZ08kfjl3M1ppSktkbSYpSEs1QlZRXUdSbzFt'@; put 'TDVtWi9OVCpVXjluTnApYTBvVlg3VUplXW92NjJGUj5UeDJDMil7KltrSn1WSihmKER0NG85aGVNIjwzbyxkKnYuY2B3L0ZUWEhnaDdIcTx6aUZyM0R6Qz0zOHFOZXdyWiU+cCsvWUc7QDZRVHdAVGclcltCKjUuIyZAVjZNKTYhO2lFdj9sW3FRIiFGeSRdSk84W0lxUCMuJWpsS2NoW2ZVK3JO'@; put 'Pm5VaTgyNnVGMWQ6NG4mfks2Lkcqa2o8VXB5c1pjW0dKZVdMQ2FhdEtoeUx3a1s2NUtzclUoOC9jfmk7N1RWfHBhPlVdJmJhMy57Z2x5b21UYUhvcDF4NmNXbUYjQGBUWy5xJGVRWiM2bF50Z355TiUmfDVCYW4xR2wlLDhUL2w2KGY9O0FFPzJ2Plo5KjJUIXsjKi9uUU1+PCEid35bMSMvRiRF'@; put 'SnZwSXkicElbYW5iaG1hQkBkYjx4SWksdiNjY2xuIiRAI3Q7TUN7UXh0fWpZMD9tRyZwdDJ0bDkzezVkL3hQNGdTT11ldmJSNXsjWmZoUHwjWjM5cFRLfGJNIyFgMU4vJSVsSFR1MzU8Xjh2Mmoua3JJakt7Kjk5Mn5vSGg8TXQ+Nj5Ka1dwOV9RI0UjdkteWF5ocSs8eHtLKzN2NTVoLjBVJTtH'@; put 'QzJuTGFFLGdlIlQzVWp0TWxoMywjNWZ8c094MyVrR0QuPEFkQikpMko5NTJvdld5LjBaI0ppfCNaZ21MamU1cStEZ1pZaihIemtfKWF+P3pyWmZER0ZKaElWYGthdCFsZ0ImQj5fNVQ7fDRJbVMxXV5QdU88ZnpNbUorR1EyY09vfmp0aHRaWXojKjc7Z2BVUGohbGRDaHI+ZFFscFVbJG1Ze2lS'@; put 'QWV2OWRydD1pdHIlL0p4cEJgaV5wfXEjMl4sZ11FZz5xMHBUUl0oS0tTRihrSFpHfi57b0ZscHhWMUhVbW46MEI4VURodjMlLjZldiY8OlddInRSPmtGS2dZSnsvLz9WdUt5fUNRfG16XlcqfGl2PXNuMDI8QDN7S3peeCY5c309TVhSYVcwPkU1KXIuXSkiZmk/TXR0Wz5fbU1JKCNabFo3Kjdx'@; put 'IVpZXiFlOykjXW1iVEs8Ji9ZXS9WY3g8XWQkbTEoKylyXU1RVEBxQWNheDo0QmdaWSVKaXxYOjdKcSVkZ0xSJnokaF1FVWtaVCxLS1NNalMzWmFZQ0RiTWRfb3s8cnwubU5oND1nXSIsblQ5VFooYXtbT29UdERGfn1PP3gvYTkkIjR0cTw6dz1AbTZtUXwiWUFgMlcudj8vKXJvXUtIP21HQ0l9'@; put 'SXY/bWZuWihARj94UEE3Pip5YCp4NjFydS8qfSE6T1RuVGRUTjRpL1gmbV12SSk9UExPe1hFUTxebThBRn5gMWAqXXZ6RmpaQWAhY1QpfltAJnlzfFc+eHZBNmhuWkFgXzQkYURdNTNIN0ppOm9vaFJ7WXg+bUVvWVcpOH4/ZTVlZ04wdXx6c3plQWA1V187IVtNPkl+O0w+eCRGTjRENXV8Lzov'@; put 'UzBUPGdDPzlwbG9dNTI4YzMuOUhVQFA/MGYzRGRBYWp4KnhTWWdGJS9XU3ovVXoiNWRxZ2AiV3Z4biNCd19jKFglO2F1SU9SNWBpemw/XTdbXX1NPnBUMzMyYTdNT1M+JC5lcWhqYUZzbEVDejA+VU13UTVAaDZAKChlVyxhMXZ9Sl1YYUErMlBSYXFILDw/ZGZCWlFmd2pJdFRtblk6aVFTPUdk'@; put 'JjdOUEJlclI+PF1yN2t2RlE4WllsbVorLyMpd2IrNUAlZDEsQylqbTUmIkJ1NFchbnJORVBxRF08Tz5sSTZuTXJNOFokIztvRl83MER9K09EZXJ0Om89ITtGSThfd3YwQzs5fDI4eXFydWMrSDM/fS8/RWIiMzh8YXt2Y3FVZEdIMjs2UU9Xa2hNL1pLWTdYezRed1BPck5Kdm8zUGdIaUl6Iigr'@; put 'd1JsbUVOaFd3UmwiNFpOaDNmeiU9MGI+Qy5pY0Jye3orVnRoWz18e28zdiZvbyZRVi9YaFUzLnUobTNnWyFLWnlSK0s8TXIvfjk6bVY3OCU7JGJGcVg7bT48T3Awa1tlVVIwJXcqe1NNeTNkM1haMCMzeVUrYjFeLzBlLnspNWYsIWtEUkIyP2dBa0FTdjxvQ3hQZmVWYGRNP3hxdndXSkk2QHN5'@; put 'N2RuZj5yTUAle1UsTkxAVGYlRlZzVW5LIV18JVJGTF0jUiQ7ZD1Ab0N6Wj8udkVEJUZOd010QVloNVVYe3tTQmZecTwzWyRnNzBYTzlGbHFaRkZZfGtyRjYxKHNCKihRYSg7MSh7dyFlUG15dS91O0BPKzhgYHddLj1HcTc3NHt+RjF+d35UJlslWDZZMFdeQy91VDJ6aCNfJl9qXytlfUJjb3kh'@; put 'VncmP0VdM1cuYG1ZSlg6NytDbn4/bTUyKm1yJVBpO0hJRSNvLCVqK1AyN21qYGQuJSNSI1k9M2BoeGx2K0RuI3cre2p4JVF0PX5nPVRuTW55aXI8dyUqZiYme21PRVcxd0BbMHtSdmVoQFQ1IVY7SFk1Z0N2fGthZTpCTlA8IkB3enRwJjJkel8pPDUjWyYoRGpyeTRbTn09JDxlSyRDTUd8S0dF'@; put 'Wm9ieykwe1tdOWRMN21xRVZrREtaeiIzTE9TU2Yjbz9WJmtJOW0sYChUaCthbytZdG40VmVnUTBgLCROUlcvc05+W2pAdDB0Lj0wIX5oVTI0KzFjJG43M0oxY043I08kVTpBKUBdYVRgSXxAIkV7O3c1QFZqQjhGZU1AVDBMJVpYJVooR0hfb0pfcXhpVG9TS3taaXNwcis+bFo8YSxkXjBdWjdK'@; put 'bD5Ed1IhSD1MNy5xOSlzNiRSO0p8XzVXV2NnTyokeX1HS0J0T05yWk87STEiSVFydStGOlVmIz8zUmhZNiN7Mm8mI1lkVE40X1RoW3VJKVQleWQwS092RiwkfnchfW0uPl8+PGp3KnRUYXUvOlRbUDMqQURAe0AvWGBDTDxvdm8sJWpUIUU8Um0ma1pDfmlsIywkOC5YaiV1cEB7Kko+QDA4Qi94'@; put 'RVpBUVtNMFksV19NMklLbmJYZUhIKnIsTGFIaD5pTVl9aSY8M25zfVkwVGojTnU3S0I2cGBGSlh3NGB5clhjXXJlZTg6XkNaKyFUWEwsJmk8S3cqXSM1aHpCNCwweiJudFlkNHk0clBZaVV0TDE2d1ZifFU3QEhpfnhMbSVQJCt1NExHWyM3fmg8b3ZCaU48NG05SStqaCMyemNmbEBvTC52em4/'@; put 'VHhWW1skPz9ibDo8bG9hO3BPaFJoSWpEQE1+el56VUpUdWFrUD1IayNbMEExViRGOypSdW97LGIsZHwqeWk3aFR+SkQ7Z28rI1FOUjpAbGM1M2pLM1RJeGh+I1lATypgW1RlciR4c11dKFVHSFZYOXgvLi99PztXdF9zUX1VLGE7VHhrc0JNUjYvKUloYjBTJFlAT1ZjW2hqdkxhMVQyIUYrOXwo'@; put 'WzE6OnJjVjhKXlYreSZOMEJnMGxdWFU9dzM8cmVabWYoRlJRZG04SXk/IzcyKXJXS1d4UlZVa0F2fC5Nc0d4T1hbYDI4RmtXYT4+IXNjKGN9OT9wSztvT1tufUlVSkUxS2koYSVGJFddQ19GVlhdQzRMO3phdC9GVyl6U35wNCFUUVBRQE1AVHFbUDlDOEpIPWlNKmUlLF1mN2JpYGluO2g+NTp3'@; put 'fnA/NDdeOGpFdyh6IWVMVFEvJl49TXVFZVFOOjd3UyFFa3ZzXVl2XiVQUG5jL3p3NFNyTS5DaHJ1PCEmNXxIaDJmU08kSU82KEtXPSo0WWpuanJqUkl5en1zXzV+LEpzcStSNEl7QE5ENWtqI3k5RkhyTCZXcm5MRGpnWzRQPzdwR0pHVTxoWUJdb1oqXTAldnpdSDsvSVZUIiZkdStAUnllRXgl'@; put 'Pm96fjw8TXB2KURqfk5Lc0R1K3hncmExbTEjNlshJVV9UEd1azdWYjNmM1ZraktUPSRvYV5oRGFaTyVtZj0zNS9ANW1+IVsqOVZKPWA1S1tJU3F1azZEdi9GXzZmYjoqVW0rXVJyQFpOT2B2MVprdTlUekx3UUdDTlUzKEg8N18maiJuSktsJTcrYykmdF10Sz9odCZtTFhlQ3ZDMEhVYHZSUUQ+'@; put 'bDppNmkxJW9hTW9mJU4/NXhXLkFsVEA4ZUJEVVBfeHYxW2AuYms5QTdFI0pvVT0oQX1MdT18ZmslXyNhPCtOOWYvRjp3SmV6UildTjhoJU8kVHQ4eE0sY1I4fCZDLFQhXndTZD5iVzxPbD5OLno+Y0VIcl5CMVdPQ05eTHN4RDAsU0U2SWpXPFUjLnk7KF9mNzxlOyIrQylsYClrXUAmQ1BXVnJe'@; put 'dWA0O107JjRAXlRlQ2hUbVU/VCwpKzt1L09gX3s4VHBNMVdhPUBjbC9URSl0cUA7NTo6OnNUdHlme3hgfGtkS3VnVkcmVDJ8MkpEUTM6UWh8N0FhPUByP3E/c3prXXAwIjc0JVtQV2tvSDBnPnolbjxnKktDZXhIU2hoRWhMa3U4O3FjYSxRZElCWjpxY0ozLmFHUWtsQCw1XTFLbUhaO19WXW1m'@; put 'P3UhaSt5JUk6RCt5JEpydiVsVHNMe09iUmdXSFtZMiYxW2I/Km8uNSpvLi9WfTpQMHwhelgjJjYycjY4PU4kUX5BeGllPHhUX0RIeWVCVkRUSXM3S3oqJHxuUW1seDY3KEVeYXA1ImhpNXg0M0U4PmgvMnlMZiw3ZFVpW2I4TmpySiFEWi57fT00MCk5JDI9PWhiKztxZTBvPiF4Tmp0QEt9UiIm'@; put 'Qml8aGNQYFNqZEQ9d1FGK2h8UUVFQiFIcElYaVlOemhnYEY9TUxYPTZgPSM0ajlZdlhVdTtneDFzSWtyKWIlJmEqVnxEeW5SYW82eSN1Ozo7SzlRSShSUE50MkltO3p6WEJ6fCFuanwmKXZXN2htXlltSCRFKDp6aV5kfT8jRE4/LDYlSyZ8U1gpT3Z7WHYjR0t2KCUmL1twISEmalJ7VFBiMUtt'@; put 'SXEsNExEYmdxVnhSTDYlKkZWWF52KV5HUUokbHRkUDQxVmQvcC86XyQ1TThvPiReZlc2YFE8ck46QXZCLipSNDZyalAhYmpBKWFjWioyOl57Tmd2I0E1K1J1YTY9aChXbShdVU00aWU+ZG5oWzEsSGMkK11wM2dRTyhORW1rfHNRP01BK0NJODNfPVFARG1ZYClTRkQzQ35eQC8zXXtAclI7MDtV'@; put 'MDE/STs+PygvdChUJH04RSxGOnwvVFVjbyNJZjpAUTV2I2lnc1c/ZX4mTERjOm5vS09kZ34lYms/LFkxbywlaiYlPGcqdD5sTDlBZ3x1bSo9I0VxWHk5QE52PGomOy8pbmY4VTBJUzhKKyEldDk9Z25RPj0+bHE7Tz1BPmZwPT1uYVQkISVhVFI+b0teSlY5S2RPQSZoMF1oPiFvcjIkVmtAZjRp'@; put 'UjUwdEhRcFF+Xjd5SGUmfTovWERYWEdAOytkPGNbPGQ8JElLTG05ZHsvRz4vT2wqXW0hNiNPUTZeMV1pfEg1JDlQQFNMO3AwWCZSfHBEPXl1XVJ6ZyhMdGF3WlJ6dyZnOEVGKV9KRm1wbCEoPzhSOz0jTWpoPF5XISFRYENDMihnd35oSUssVGEsWjFZUCFieH5BcSolMWVJdUIoe0BpVWtsXiFJ'@; put 'N3ttRjVkLlk8a3hqb1d7a0RgJEBhaUlgYXhqOERdOjZ5UlM+IjhsMSh9a2l0SGUxTmcxdjlRZH16K3JeaDFkNyI6OStKaXU7SWReKX1mVF15dm4hS2E3PW5qbCxtJnVwRXdtSCQjejd4anQ3cU41JVhkPnxrMk5XRXg1QT54PW4yKTs/fTxsYSZQIzBvLF1nLzNrLGF5ZlpZVWIuO0toaUZvem9C'@; put 'X3hQdjFkfXtpNEZ7RFJZZylEIiNWMnZwXVg5aFcmfFU+Zjppd21ZSlFfQ3ZOM1dsNEI/Ujx2MkNKc2ZgTXM+Vno5KkBJcjt4MjtIamMoKyoiTTMxPXxuR3ljbCQyPlIzbHVnTG9nMjVRRmlneF09blB+P00uZEJSbzYuRVoiaiwral17TUVqX0cqUiZEYGF0PmFPSmE/ViNdbzw3VGl0cVIyN3Mr'@; put 'WDE/TXI7SWFZUkk8VmdANiElQSVTVy5YQDpVYUBbNVs0PEMqQElpNVEwUiRqc3BOSmdxWCYpMzVVXnNOOCNTa2F0IVU7Yks9Iiw9VHE8PzkkSW8qJWVUO0Jfcng/dCUjeyVlfUdbQCEhdXkxQXdRSX1lYTsuSHBZS0dFKlkhdU8wemhpb3YpQE8leTJVIyNVKVIlPC97U2ZBbkgjU21FanJ+Znh2'@; put 'cSsqQjNyYiYuSmF3NyhePV5ZQCg1PiphaTU+PztlMWRLcys1Ty8wRXlMJDdlR0pLU0NQXXFuIUg8RV5OPSI7bHd3L0ojaSVkOChARmxFdShpeWJQflo1KHh0KmpxT1txcT1rbG1yW0VReE9rZihqKDI8YnRkSysiOkNHNWxNQEBXeihQITsxKVB4OE89MG1vaHY1eSs0IyNdcE5tcmlsX05bSXVs'@; put 'ZF5jS2cwS3BiTklseSMockIvai4sMT1VNkReJFo9eFt+Pn5GNmVpUW5vSnR9bjA7ZnJ1YmUsU0JtPSNHcUo2TXJzJl8yc29QYXBKSGspLngmIXw0ZVlWUnlKWDdzbW1AOyV4ejUyem1qfio1XXV5IiwlInVEUCp9WWQwIUQ2aiEqakksZlBSJHh6KWVtRSMwbGwyemQ6eEdZXjBpWndtJlBOd1Yr'@; put 'PFowWG5mYTk3dSJnRTRALkVfKEU4XzpPX0dbOmE0OHx2MTROcENbTzxDbz12UGlVSCsqYWUuU2dFaXBAPjBXdzU2cmFGcjpMTH53NjVQSms0IlpndEhoazRzRDZ5Qi5CWzgza30oaEFzRCxwPyNGXzhYTVROWWlKSypudnsld0c8Xy9AVkdva0h2NEouWn55JlpEd1AmWStqOlgkLkd3dWFGPGQi'@; put 'OiNjNkBJXW46Y1U0e2JFVFhhK1I6Ljg+aUw+LjFyKkVQSn1dWGgwc0pYLk1wWH1PTzRzej9FZ3dsaClZRjJWQWtRKFtBbTEuZFVjWz9dOjtkTlM1bEhuTU9tQU09Pzl8WkhtVmdTLkAuIVppRFVvPD5qTzQkMD99QWw/K2NXQTUhanQ2Mlc3R2JpNlJHMFhNVkt3RHRaX0VXR2ZAZ0QyQ001XSJ4'@; put 'cUZWTHRdbVB0eUJbM2QzY1o6QmhybFZ+VVp5a0MiRy89O3FDV09XOSNRMSw3K1twfSI6XT0pWGswdi54ZHt9PjdAVFJjSWpuKVlDNVoiRzRAdjJbalZ1a1tpdH4iUHdaREsrZXR0M1FMKnNGNWV3RzwmPzZgalAxJTpPVlYmMG1uPT4uK3UvNzJBbio5WGNZWC9rKCVZaWxLeDYhOj5hISZaPFR5'@; put 'UTMwcHZDKlYvL1BHbj83Q08rRWpMMDdGUWZEalBZSUhvX1dSMzt3ckhQUzxpSjpdZ1VKYHw7L0lFfDZdZnQhemNzLCIoVVIoV3N9cCRNIkM4QVk0YVRrM1coZkF3fS5jWDxHfS4vY2llaC4vQWl0QmZNdkxNamVmKC81SUg1LFhPX0FBcCZbRTopezxjdCYjLitNT3JOO3BzYj94WGF8L3gjPmxe'@; put 'KGxkaXRrQyZ7NFVPeyFySCxCSlNhNDV4ai4/M1ZpeklRQmVhQWBlWUhTcFQjKzNwWl9TYlZTPDp8VDgmMVheUEdEYDUuZ3FdNlFWXnohWkIvelYyekMlNVBoZSZNUEdkQmh0PD5ebmlKIVJGem1WPVlNODJmOTVaeDVwMmQhJk54ZW4rcE41aF1SXiRVWnliTmclOkBycj9Gayl4TzhZb3VmZjJX'@; put 'QDtPQFA/JisiYWxSOFA3L0c5eElmRXxDYk89XUpkK09FQ0YwflAhM3o0fGZbVV0zLmsvXXcvWyJ2fnY4NTt3IU9EJV8+NndWNDw1Lk80PV1UeUdSNTslb3U6WF9PK005OGBpS1V5MnZ0PlBlQDNbTEl0clUvL2tMaSVOXlUwSyshYG5WMVdJQD98Z0MhIl5VRyptQjleZ1lVWW0+Smp5XnVCNGMr'@; put 'UjR+e2U0Y3pKL2hjdHdVeXEjeGgqeGpEVmsoWzM4S2VodGB5b3M4QXtscEJ4JnMyfXB9Rz1TMkxbUHp8Zlp5Yk5lVVY+UXBbb0J4KGBBcSUyd29+PikmZDhEVU4wayk0fjRMKExKK0NdbC53fFddPlN3UFEweUZ9ez1TeXBSRjEuYXt9Qjg7S0BSXj9memk/KzIlOXJKc1olJjhKJTliV3w/ZEE4'@; put 'KntwZCtqW3lbMV8uezRLLFZkU2BTbVlvO2lVOD80JiVYZik7VFV+ej1WakJ5KChYPHtOUyhUSV9Rcys+QltWdVE9T0FHMklNZl44ZDE9bylZbnpIbVk2JGZjTkh2Yy8yMVtwaz50JlU+eSwwaUBrU3lOeCNxdSt1O2FmR0BQPjU5WlhHPElzSHZpcnVHYV1hVkU2Kz5iXSlGWm93dmcsT0tAKEZx'@; put 'W0NZTk1eQmpAP3p6V0A3NyJ1Q2MwK1A6KkkhMEVHa3krWDBBLihhLmNMdk9PfShKO0RtdmEjPz48K3I3cXgzUitbXmlLY3lOK1UjKktWR29GTmkmP1claVQ0PEJnTlYwVENKWE8reWJGP01AVSU/a24wa0ooNGxualg1RV4iSFhpeHVsR35YMk92cHROQk9GallsfC50PEYhWUBpcCtWMDNzW2dX'@; put 'OHAyJnZzY1s/ZVFiYTxkIWxhWWIydEskRlcke2I9cyM1cV0xRDpjcW1kc0J5alNzLFhXe2w5fmQkVz13L3pFMEsjVHRWRDplWzZmd2t5akVhWmdjMzhrNG85TnUyWzlvZ2NFcEEzZlBST2E0dyRHdk0/IVVtKFd1PSV6SVNRcHp1I2JUeTBxXjhaNE5saUVKdDlCTFQ2biIrUWpJMFVFVk0xeUI/'@; put 'ZlVtYzRabW9tfF9GZG4jTEg9RChnck4+O3YyMkc2aXxRL0BgXXtjZkVMYU50OElUWChXbkprWXthdTVTP1ZpZlA+dSozfTRIPGElKiU4ZWd3Wk9jRHlpLGEzR1h0bUolZHFPbXpdQGhOSS47UHpEM1QzRD44ZCpMZV1kJlE6IktJP2w+Z1dZYCVoNWNOPW5JQmE5K0dmWEpmNEcrZmhUelJuQkFm'@; put 'UCxXMEhOTGFPTWlaQDdZZSxEY1lzSFBNRXloKiVXIS8zbnVNPl98WDJ3cGJeQldIcHdQZndHR1s4TTdpejFHXTEoTlBdV081ZmZXMGJSfFE1NHwoP3ZJWTFQSTtYJitGKChrYXIyPztEXVQqQ1A+bFpyJktoaCUle1p0enUjeytVODtAeV1xfGVJNkQvaTh8MlsvNkg2fmt3YlRvMypVUSU8QSUm'@; put 'ZXc/OiJxLHRSeHouOnRVbVVQNnc0dmNSXXxeKlZoOCtkeSZjW29eemFOcG9ISlQxQkpJc01qcng1W2JvX2tNanRmZnc/ISJOPj9acmIlS2d0R0E/Mn1kOzAlJFFjQFhyVWVVOyo+VWVsdnBEd2xLLEBLN0tObjtUTCxaSVluVFI3XlAsX0JlRix1JUM8Kn0je2N3Km5odE4+Y08pNlRxTjlOTWxM'@; put 'KiU2LkhAVWMqblp0Tj5JYX1FT00ySSlVV0tNTjN0WV9JQDx6Km5GKj5QS1kkX0ZgXloqbkhqPFJyRl1MIz01SzhKRXcqS1omaGNzLiRLcWRtZDg1QSx1b21TLnZwe3RJMlB5WkxrYnxaRCU9dWNeOUswPjIucngyXl9DJEVFJDk/d2JFd3AmOjBfJnBLTy8jOVMhSjglRHw8PTVOLEZuXlp0SkRO'@; put 'RmRrWEt0S3tiZyxHXiZZJFVDUFdrSjBqeFJGMih+dnQ+O3FwOTlgRCVkfSwwK2RKVHtqQUpkKWs2ZXd+OkU1QyFAVU90PERKLF0hUWRiKWxkJlhFdypLYSleQlFKKXo7Nk5EaDBVOTdeQm4rSn57PjZTVW9bJVh0NUIrckNafiN7MDwiMjBXNCpGemo9dU9fUzlFc0hpKV57VWs9eGZdVCo2aSx9'@; put 'ViZgaUQjPEJ+KFswfFhwJXJRdj1+VWM+Y0BPLC5nPV1pc2JoN25ySjosVFZ3cU5SQyowUHZEZFo+Ml9KalpxTXdxOUJ3P3kiT3l4am02UEhoTXN7Ykt3P2wqR3xGYFtJdz8zMzJbKHFsNyxjZ2Q4P21wNCNucyEmenBJNVdALnNNc3Y5fXMhJi5sM082TyxIPzAzOHZsIkZ4Zzd4N3hbdElPa1Ju'@; put 'VWNsdUVgWX0lfHVldlB+Z0klOH4/UWFvcF9yQyY/MG8sekYrO2k7PyRGTDRATXIlN1lAelVTTEN9WV1iZURNTD8wPWNOLDUkKXQ6Rjw7NihZRkVpUWM5R3w0SV1bIWl+L0dfcCs6NTp6bWBjRyRYKzMxSjdje0AxbyZDWzBhWzJXVW1eZCVKJGRPNSlyN2pASStCTTdOJUFEYEIxVS5Pbj1LeGUw'@; put 'R310cnteLGcmSl9EPWE/MXdVb2pAK01JOVYsakUjNTpNP0NyZTd8NH42KjxaXSxaTCRZQDZQU0w+fVVdOzA1XUh3KyZ3cTVUeC5bSmooRWVjTjIvKFpzKUBJRUxxXm09cWZnNlQ8MHZRVDtaTzBrfFloTWNebE02bXBgYyw8ZlEwaXY+bHBGY3hVcjlbeEszYDdPPDxjWyQrI1NRPDd7JXo1ZF5v'@; put 'PVEjNHVNO3NyQ1kmJWRRN3deWiprKCVoSFFeP2xJV0RZcDtNPzZefTpyYyJPanJoPmhUTnxPSUJ0MjxxNFYhRTZeUCwrT01nV2khVClJeWpASVUsK1M9R2d5YXFsRSl0MVJgM0xQe0g7O051Y1owPlkyd0hPdUdVTjRpPyErIVssfmpNUFV5ZGpbIUpuXXZTXkYhZDp2KSRhPGZbKHtUZzowWD0x'@; put 'YnFQYV9hKGR5ZyhGYCxDbHUqJkhYbTZseX5+QnRZOk5PbFNZYDhpbGRNbnBuZkVFSlpRVENhJVRBS1k5ezlASWE3Tl5yczE8UEEwWUpuWS9zLDxTdjBLTUxKQm8oSjU5SXBbMStSclN0U2tqNkB6N0shPHRCdkN4LGxlPlhUYzdMI1VScyRhaVpUMmZhI3YybWYqOFkkWmdEOCJ4P19HcTpwdltN'@; put 'cjhTYU5vXk5vUWZjLm4/YD1iW14rPTBCelg/OW5AcFs8bmFFOjBdaGc3ZHNkNk8jWn07X3pfUy87bVQ4VGY6ZVRmMlhqOyxiJFdeVGRiV0VINnM7Wntja0dzc0hHeypyOGpseCRuNi5rd0ooPypaW0ZNWS5nbUciRl0sUHQzIlspLndWYjw1ZXkjeVlmWWZlT3xrLmBiJHVqMFlLXyJ1MEhUYU58'@; put 'cF8uYWAodStAc0l3Z21dIW4sW1hNN25ULnVqVF5STkxkWEFgSml7b1MoYU4mUHsqZlE/Q3Z1S1lXZ0Yxe3AkeiI5LmdBLz5iaSRHPjRkclAjRHlqfHZYd3lJNFgzdzxFSX09JjBXWjJOalB+bXA0VDw1cCRiJTklaVFkPk0ibkM+MF1IQndaang1Tj5HMGJufmQ9aihTOiZWVWI0JlF1MHtialdQ'@; put 'S2kqPXFIfSNZY1NWdndQa1F8N1lJaDglN1BwUUhZfVNaO1U7WGVZWTBANWNZTVtMOTdhcjhlZG0pNndPT2QwYjdIRyFWMzJARzxkfm94M3JrWnFSRi5eP2IpYlB5LDppKjE1LnV4cFMrZU1ERmBQOFF1I3JUK08/Xl1gNENRVlVdYjYsQzR9NV5hL1BdfHUrUkI2IyY5PFYmMS4sVWBke2ZuJUFE'@; put 'Wyg/fV17TzE6QitzWGFBYDoyVUxUNXV8PzpNNlsxXV1vKVsxcnFHZC5FLFp4aj4mRTxXN15tc3dOflQxcjVLPFZPTCVKNCopTGksKVojUW87LlRCN3svd3pkej1ZZ3ZHVHVQT1VDdXNOflJOb3pGIVYhWjA8aXBpJiErS3o3VHo2dU5+fU86QFAvYkJ3IzwkLG5mSjRPdUVBQVhMQnQkYkFBR0g7'@; put 'VFp0RU18dSVHQVJqZSFBRkFTT205UTx2JThjbkxJNmx4LkxnQUFBQUFBQUFBQUE3RnFHSyhVT0JVenV9dnY0OkFFJDN+cXg8XXZkOmFJMDxDfjFISlVZJnwsRSJoNEsuYWpYQDJGZTUwKy44d3czRT9DREU1eEZgPVEvdX53UFJfK0kwYEZsM3RzPmNNb3lGNk9FWzY4YkZDV312IWl0TURISERb'@; put 'ckRKLEJsRjIhV3E3c2ZEP0BRZm9SM2dxSG59KzExQ0p2ZTsoWGtmfD1PaWVUUT92QSV7KEI3dlhWdkdyN00jQTYjNkJbUEIqTXwvbW4mQ1lBKCRtQFB2bkElcTA2PGdAcXRPUi99aDRHd14/IT5uUjMrQDhJLk19d3QuPjhnV2VCKms5TDN5KF1qLE4oRG8rIUpBNFFjRCpvV1QzbDo+U1o0VExL'@; put 'dE1Cb0dyUmBRMGhSe315NVgmSTFCRENpSzpvPi4yXz9BW3BOK156a29RUTx5PEBqUWBScSssPzF1VFYhdih6PW4jW0xfKj4sUkk1RSJLQVJOS2c3JXd1P0khcmAoNjJLdEpgfEdxIjVPY2ZgWT5JNyhndiVuaz1NSUtKRDx5VSUiPk8jUDg4SDBmcXJsXiRUaDo6T1MhVH1UUlVuIXEybmJ2YkBl'@; put 'RT5MKSwrdVorXX1kLytvc2h1NWllYzpSTnRFYXkuZ1RCWjhYfU04LyF1emwieS8vJE0qblhrK2o0RnNqL1lQe30vRChSfU1hN2hjKl1sdTtIYnpJYjdOWkZGVUwkaTp1c1pwV0NdPlVaRlFgdGJiIzFNVHx5Y0dXR11LMEd7YyVsOktZUVRpTS54ZjZTenl6W3U+YmZGVDE3aDAqKHJFeEFsPylg'@; put 'WmBGRFslXkxve0JxV2tVSF9WezdXc2NxQGRzMEJGcG8peSUwdXxTfUReSipoe1tfZSU0bD0ramhSLEptbHAjTypQZTRIMU9ZZUlYeFB4RnVxRCIxVW4jVDAsPSspPD1+SjZ3YCE1XUtSOVZmZSxVNXJGKC4wSyRVM20mRkg2bkpUW0RrdUNvMzEzV2BLY31JOnNRZEJlNSF+USRGTUJ4JWF8N1NP'@; put 'QEMzNUM2dlcubFFsM0ZJMHBLVSVCej44NkNbNz9jJV81bGdHPXdvKDdrJE54PyozVl52M2V2MEtGOnooelBvW3Rsc1NEUHIzem0uS1J4elhYL3hyZzxKTFtmSF9Rdyp5KTFmK2Z6eTshUlk0VCxoZGlDbEcxVns3Pl5UaCVWYzg+e0xyXm5TUFI2eUBPd1F5Nk5zYzQlZDV7UWcsN3lxQmxAa3Nk'@; put 'Mj4qNSpOIjhrZnpWeGA/TEkkVnQoQUYsYyxTM2ByRXhZYD45SWZXY04rfiV1Ik9ZWDdzWlBBSGM+VGI+O3ROODM1fGp0L1M0ZTA5Uz50K2g/R3VVKWRNXVBOJlVQQzUmL2dXJCZ3N3t8YmYleDx8YlQ2IUhfSSVdZiJLYXZCd0Y8PzsvX2pSOioiP0c3SmosSTNNRk1AV1o7VkxmOzhtalRhLlJL'@; put 'QnJIPyt0dCEhVT10S1dBVm9UbDJjQWwrSUw5V10pKX1FTSlnLClua3V0L0s2TCt0emwwI29pRzNJe3hnOnwoRD4vMFJvS3dWPyM+N1NaQ3Y8UnJTSHJ9Z188SyJSMVZqXzhudGxnMkZxKU9AQzgsRiU3WFZiOlFKKn1bc2NDNTNWfWVdOjwzQ1BrN2JnVV5YOW0sZDRSPV5tJGlNdzJaU3N3Im57'@; put 'aTZWK1Zkd1AqX3dMO01+STZGdHkjIyZpOmpwNWZRdV5UOFUqKHNadihDQzY2Jn1BaEAsNj87cjB0UnRfK1NqIjp5d2Y0In59V1NEZEU9ViJUN1J3PXtSZ3tzS14hQ2hQd3Jmd3EiTHV9b3FxQn1xPnhNI1E7YV9tMkJPS0c0PXdWbFJCU3codWwiVEApNFshIyV0YTxfY2g9RGlZYU5ReCN8OD45'@; put 'Y2B2R241WHx6cjxSYSx3IXYvIXRhaXgpP1hZcUBeZnBsflZtQmwyZC5JRmZzWkkwdFAhVzshJE9xd1tUXzVoQlRQOyQlOE1bKTNBJDVHUjY9NC4xTjZWPEw3Mj8oREpMKCJAfTlCW0BHVm12I1RoOzBpc1UlclQ0ZEcoUmxdMkM7TC52UGZUTDVOdm06X3FVOT9bXkN7YnZ3W3xrXXB+XlpvRmM5'@; put 'MV9kPjgpfVMoLmZOSEkkc2pmXzxDYT45MH0ld016Oy8uRFVZUWgpVE0oLHwlc3N2P0R0cCx3OHgpRW9uX15Ncls/aUFwI2Y2cT0hSXMxTHNsdypuMzxpezQ6WURFZnREWHdPPTU1LFlqZilJN1g3PilQKzdSSnIkXUchXmlmIzVvQjUrTHRvJEA7OjNeNmEzVjo7JVM7ZylUej96SnR0V0IzVXJF'@; put 'a0F9M3NjfW4kbW4uK3UjMFNgWDl+NEI+MVV6RykybXxMMjcjZnYlSm9MW0dNMDlPcDVIdkA0Rm0sdFNwJCx7XlNfJDs0O2tKV0E/KDZbS3EkPmlQLz1fM3YwfUNOXl1HV3Y8LHl1S1RYRDJtJCE1eW1ARFowWzZbUD1ofGZCNH5XPW9iRlJzK353OndaMXs+JVFmXVdOQnhadmlALnAmIk13ZUFQ'@; put 'MGVpcmpUTDUvZ3IrKy4wdHQkMVguZy4qfHlFQV1EKjxFX21xVUJBRzAwJDU8Vyxab3srTjRGLkpsbytoYVJWYm5PViIkIVRNWStaVW55cypobVhCJk9UYkl6ITFFRjM3YW4vb0VwYGYscXVIJHRvS2xFMEA2MVpaaV1AcEpiYTBXfWZ0c0g5P2UoKHhLMm0ya25IXzNSW15+a0x6UEd1WS5lPmhv'@; put 'VjMmcjhdSDF+OjBOayZzJm5uUWxGZCM5eSFdYWIwdVk+LyJYKXZqTlJ8YmlEflhCT2xRd3RePjsmSSY2c045XjtMWmpEOyM5NFE2ckEyeCZRelErY1M5eEA3Jnl3KjkjPVZFMkdSVVFPQ0BFM2JPUGVMfTtBWyF2fExXU1Y8KVAjZiw2czg8V3FFWEo8WThdaj1uIkxYPzptPEl3bHQ5KCVOWHou'@; put 'Vy5qfj0zVjRYMmIufXpiXnhZYH14SS5UWE5EIl0lT2ZyZ0hDaiJOVXhKaVBSWUtTLEwseEZaZiRJOzIpdTQ0OU1gXnE5QStBJWp4K1VJNk1JOT83TU9aWWJlQm8lMEg9IS8yMWo8QSEhc3gvOSg9K1ZBZkQhJlRTRGdQPitWZG8sZWB6QH1jeUp0Z3VHfUpFQmhGfXBtYEJBKWtKZSxiNSUlPyhd'@; put 'TFtdaUUwIlgpY0RTKFg3bEFwUnAvK2xTOV9NS0dvJkJlaTAxZHViamllJDEkX2A8TWhtX2QyLmlyTU1fJl5JSXNZd1NXZUBnO0VdOlEsZmJRVVJgXWs4ajwocmMlcEZaPHEiSmUjckhqY0NXSU8xRVJEJSQ/T05DcjtFV10rdUsqUndvVTYpKV5vUXY/fDdUNV1dWCRrTk1EVH4/NCs7LlpKOyh5'@; put 'QDhqOHNSUGhQfUtLV15hNkE3U15qJF1FZ2ohXTY+QG1uW1lCQ21KIUVffH1QKyxJWEw1fUt2b1lWWXc3PGIwcz90cURsMytgPlV1Z3FeZldvMkBobnJmYTJlJW91Vl59V0JzPEcrfHN8ay5fJG9RKTEielNAMnhoSjFfZkdzVC9vXS5bclVpanV5WCNiXT4kNGxTM00mMlpDYH19b104NFtzfGco'@; put 'MDwkZ2VMK0wqNCVRS3o4Q1Nndl1iZkYwOmRMeWVYV3hiP3BrdExAQjU5ZW9SYlNnNUdjY2cwUWV+ZDptWm5xUzNdby9sdUoydz9URzRgSSkhfkVEVn0hS1pxM1s+IUNYSkJuaTlmUlUuYV0rMT47LGBlcUQ1PFZ0KSQ1fFV6KEd+TlFNSUt4bTg/JFBMNHhWWC9xI3pmLjczRkkzRS8vXSNyXyl7'@; put 'UEI3RTZWfU8/X1ZPRlldfEhIRXJ6S2pwNEp5IU5rLDU9UU9bY2l+RCR9L10mdXE0fDNWdz9rJlsiZ2R1am8ycSg4Zz8rRzIpZE56QCV1SkwsR1VWYiFhOUdoJTYkTEkuaCorSm47I3hKfndRYXU1LFpkW29DJSkuVX0+MCxgfGx0W0tFaTQ5azVuOy5HLmdbKlhiPlA9UmI4biM8ZXZkITU9WFtL'@; put 'P1pwSzBhN11VIS9zMVV7ayw0YV5hNVsxOC86QiM0cltrQmtMcDpMLGxxQ2tNd2hoJFNWfD8zQ089fW5mL1tzYnY3e1BGP0x+I2xHc3BYQ2hgUzFbM3EwXXdze2I8JVEyeCtfNzE0bmhdZFJdanRyTVt8W2EmTz95NXhtPk0vU0x6UWU0PCRaRHhZUUlNfXRGaUI5LFlEdFguQ2g9ZGZWXTE4aCV2'@; put 'OHRaUmN3QD51d21AQXxGLkxPeVo2P3ZKe11aUyVEc1N0eXJkcF95Mmk9ODZMR3g6dWpXZW5EWjted3ZWZTxHMW98WF5MaGRDZ2dTVyIicTFgOzcmVDdHM2JnSnZOfGprfn19XlFqdng3Iz5hZHM/TXNoKE0yS1ZpWjlDViohNkZobFJgQDRmfj5wV2MrKCtONHhoQExsV3JCRGBia2lZRVhyWlFr'@; put 'Yk1FTHUpUnRqey99emVfTVdCRjUiTlh6L28xWWx9fDAhZ2J4cztBPVI5ZFJMZzh6WHJsZX5McmQhZSxfeW8xTl8lLyU4cHQjRVNOfkNFK0ApeVRnR3gmeiU3NEZtKV9EeltDRT9AIzV1RCp0YHhkWGh0KERyWlZKT0g5Vy5XV09mVHEuezolY3xMZ0lHUFFrX1IoSnlbM0tMUnE2PSxfSlg8IUp3'@; put 'KHYvPVh5dHxUU219cjV3KD8wYH1tK2ApWUUsdypSUSVacDNTQVZEKEtzI3p7bzxENXNrPkNaQU5KNXBdMDR5KGlvZ30+d01DPVJGOyNge3lVdk14SVR0bXUldUdPT2FWKFd7fTQ0S093UCtkVXJ5bCg7LHs1fHlkVUB+eChWdUN3PF95fGxDQ1okfkdOeDhhRnkjfCpmIXN0KXZ8OmBRIUJ1Jk5S'@; put 'SWl6WCw8Yl5zIztYW2FYTG9EIzl3SigpTTZDVTArI3hsVDgiYHZjZFJmaGk6cGtxKU1ObkpWbjYvfE8mRFZIT1FKUlI5ZTRDOHZFJiNGfnZfTFNXUikxdCZzZmt7PDB7U25WXjFzcEs3IURJSGE3YittbEFPbTUwMUA8bE5YPSxPfS5NTGNqRS46Zlt4V0UoVn5Ze2pzTU1WUSkhaGQlRy8iJGo2'@; put 'fWNEKjlGb1hpNkorZlBnSjAwe1tUOSpiUyJWbDdrTyZ9RlBlVS4pUFs6Pn5dUGNxaV5+eT1WTE9Ydix7MV5JJCRDRC82UD1AYkhDPXFZJmZNJSNPaE5abWVeWS4/ejh+MXIwIllfSnE1ZHNVLn45I1ZyY0Q/JERUdixwbnZWWkM6QW5ubjUlJGNaaDxOW3o5X0FHMys+YlhrT2JLQ31iQThiZ081'@; put 'VFprVFZJOEo3Rn1UUWU6fDYxKWokb0ozazFkT0MqKVc+K0pUNWlYQkh6fSE4ekJWSCtNNStpaCxhcWE7VD9TY1BgOSx2QHNvd3lWQUJxYHFVNHlMMUtJeCtRbnBEIWFLQUApS0F9fWQqWm9qTG5AbD9EVDYjdyVGKlpeWSt1Vno4dHVQb0pNZTRKbDhIXl1VQ0A6SFJINkhzTGdkPHJ8S081WG1F'@; put 'S1osO2wsN3RBWFFJT3I1Ij95V3oicGQ/RTFVJkBvY2BgLlZmO2dNQzsrZTlEKG9YWX1UTk9RMXlqPDNGPWZQYyg7NHZJNENrOFBMSEg5VnVNaWhCQE0rKX5nOiJ+ZE1XY1czQDZESH5wI0JWUEg5T10+bGh0TEgmMFJ8eVdzQDtrcll6YGUyXXRjS18mNntEajZSRmxaWHsvW0pDdFIkb1M2WGY7'@; put 'X2hBazJQK1l+PVFtU1FNby94dERzZFYmbjY2RCg0MEQoWVNba2BDViVWbFFzV0pSd1c2cTp0MnZheTBDcUdBP0VYIXZnTW9FSkFlTEdCcU9DdD1KflFeWEswfigmdUt0Zkc6ImxaX2l1V1FBcDdYQ01NZ2tfLHRmKm5lUUxQMnorKHVuTXhXPno+YDVYVWleImZSbitGSFBxJUc7bVpXNGVKW3Zf'@; put 'bSwyWE8pX0U1a301V09HOk5NM2M0flJGXWQySTcjNyFiUStPVHRwa249VnVaQHtxQCtDZlFZU0BwT3tnVDhDYi9IRWJtTVUlbnJtXz45JjtgLEZ+KShCc2E4KXxSWSlzRVBpTCF6VVRETiRjZWp2SGE1RGUvTXZCOGtqUytrKlBWVElXJCJ8WiVRd2l5NjwqQE9aVUB3JXNRaUxwZGVbKSNDOnZX'@; put 'ak0rWzk4d05PQD54aWxWITE5VkJXdC5DXU5lT3U8V0BWL111RFFRSjkrK35rczI2Jmk/Nm90Y05WZlRbaCNkcVBCfCxAR053UmQ4NWYuJX5uW1F5QCZ3VDtnTj1+e2IoY1BeIUZKVikxWzMyKXE+NXZTTXlYM0BZPCJ6Q0dKViplaGQ3KkljajRmTG9EI1VxZGVzen1OSGtgQm03OnNpTC8pfnY3'@; put 'THRpeTNWZW1uWXRnd3lhdWQseiYiQnFCM0FqfDJhc19Ibz1QLC9TbUksdHdCby5tUjpwXjQqZWQwP2kkYlhdI1UlYDRrVyZOOGgyM3xpcTYycmRUJiZNaFUpZFBJKEk4SGMkMlRYVlh5bHhPbXU6XkRlTDohTiNHZlhIWCNyJlUhX0NdSmQ8QG5rbk5RO1VIWUA7UWpPPGw2TUY+OHx2emZ3ezdZ'@; put 'KHZkWl5rInwkempmRGx2ZEBUS149JFlyXjIoJlk2ZWA0WCY5Y0JMY3dscnVpOXc9eH0/eWVncEw+eFZMMHBMZXcoJFhIYnlNLD99eD1VWDEqfWB0VmpKaV5URFhrX2QjYDE6ZHxGN0YqaEhSSzIueVRRY00qeTs3Imo+NUVlM09tYyRzXkZycnFmfDBNL2omTFd9Y0VyUWczOXZOU3RgMUx0ciNh'@; put 'QTJjckheLChZR0FdSWMhJlk4WHJzcWc0QCpLa1E0dDFAUHIyPnNjO1tXWlY1ZGIvPWFAdHF0QEhVPF0iSUdZTCJ+SnJpOjkxUDhranYmdG1CPkJUd2FYd18+dWJPMjx+WWVTbGkjTC5QLHV4d3VwIXlgdmZMQW9FMDo1OkNjRlR8bC81a3lXdXQjZGJfVH5UPUk1X3cmcyZfPjRzZjUxW1lUfjRG'@; put 'dDFDTHFqLGh3X2Q8UXFvOlBzb0NrMWQkNzlVdl4wfng9VVNLR0BbZCFpczcrMCI0IUJMeTo4XjY3X3E7Kil3UFc9S1lGdCZlJUMyKXskQm91VXN5XzZIKVF9S2w6fXpUX35AR1JAaFM7Tj1eQi9bWjs3IVZ1MVJmWi5xY1J3T3RydVlWc3FdMzdfakUuc3kqTUJaYSJ9UzFYTmkqVXkpKXFhezpz'@; put 'fDRHKyswTEo9fXhhL2V+ZjxZWlsvaUcpZXRhLF1fYnVhMkJXOSx6I1JCNlZUXmdPeGxZSmd0bXBHVVE+S2xldl4weCs2Qn5IPE0yRjg1UkVKJi97LCpRSSlpemMwSV9jb1Q4YS5FZD83U1UlLlJOQVMqSltrYXpARGVHST5WfHl2TyQ0I0g4fGZTTU41fSomJi9qX0Y0WVFibHtVSGdvUXlWQk96'@; put 'Sz80dTZHekVBKTdnN2pvOEVMdXJQOjBDOywzSG15fHRVQDB1KzNmcjhRZCk2UCohTF4wYDdCIUFse2tbeDVdNmtEJkVmKD11KCYhMndzXltZZVtQRUF+a141eUMlPjs2bkBOcmhnJC49MkliaT94YjwsOzwvYDgiN01FRn0/VmZDdzVOXnYvL002Q1Y8Vjd7Nlc5Q3hJTU5lMkNjLGdDNT1OXVVR'@; put 'RDg4eGxWdDVFJikkZyhUdiV9cGEwRU49IlUla2olWC5XOUhFeUI3JG1+JFVtYiRkQXR0cTE/RE5QaUEscmFpNGIvZCt4Zi5ZdGtSJV81NEohPnpdSmlaTkJiXWg9cD5KTlI1SkR3QF55KS5JWC9FQ24rbFcyRVpdeCE1WldjdStbIU5WK3QkWGUodHBNNmVXJkJsO3VxR1pwIkBdOUdHb0d2a2RV'@; put 'c30kU0dkbXl9aUBHTUZsVVRMInZhWipZLFBxWntoSEVhK1RjPiZTcGlJM1BFU3dPRWk7VzZRKENOSSkyaT9jN2lHUlI5N15aQWFeSCtrNlVASTIxUT41SWpEImJyeGg5fDk9PDEhRXcmNHIkKFdrMkVmO2ErLzFSOzVLKmcjSHwzQ2orT2hZeFAuXSEuM151KmRsWSt7YShZdF90eW9ILDlNSjFd'@; put 'XiZQNlU5JGguMzdHQiI4RH1wP10xTEk6T2lnb2Y5SCUzdWtuQ0ZaRzw4dWs3MigwOj5yd1pXPGZbMGRXRlJeTnxGZEJbQ1ZnSk1UaXExPCp4SHxveTlKflJBSUBQLHd1fHAxSDZIJX5HW2kvJlteazNTcCIiaXF9X0JKS3Q9bUZMbWxOSVlkSy9icWE3TDN5dG5ScW5RSyFVb2IwPnRDbn5vTEpv'@; put 'N1ExZFdKc01CZVlffTYsPk1hJVtudWVgX0A8Pkd1Mm1zMH5GV3crWzNeTXJnRlFETk5eeS5GRWZhOzFIKnYpS2JHYTkyU2g0b1U/JFdGKSEsMHU1VHVnSztiSV58e0guen0lYVhGRHdiU21PfjsyOi43M0c4RSZAczFDQjgwU2J2Xj5CO0N7cTVCalF3MVNMUzAsTFptPSsxNGxLWnpdOE4jOWB6'@; put 'ViUuWGl2QGJJfmhQQEJGYXJEST18d003cnlbZiEhInpjJFIhRSxINTBSKX0xaUR2WkF6JG1PJipKWn12JlpYOEV9cU5AU3RTaEFsWDRbTSQuXSpASUNbalk7QjhJelglN3c9KE8xJSJGN2xPVUImdGZCfHZOIntYRkwqVFE0QHQ4XnBNJXs7PTJaZWEkJi9CVi9ZITU9cFFuU2BSWldbPT94Znlp'@; put 'JVJYNCwzUXAkLk9iVjJGJDxrIkYiUWA6dTgpbVt2akh+eDA5RUJHU34rYTw/bGt9RiRVOz5ZRXhNPEg5SX15PTtvR0okbHYzbVhXRU4qXnsiPyIpc3tYa3psfG1mZE8vb0J0ZDQ6IzUrYTl4UTp5NStHfklhR0QxPThEMUtTZTFkM3FPUUtAUEdSUEQqendNNEAqSitUWzk9ZVAhcHNzVCVIXiJy'@; put 'KCNhKz5HTERjQS40SV1MPWklYjYuZEBQeGgibmcoV09hOUtTZjtfWUNYbjtNWDJuUXlFaz5hd3xQfVBNM25HYEVCNU1lY0RuSWg1S0dHazYzP3pXbCVlQClDYllETEtNKCQ1cDAjUDV3bUFwWkQ6fF5zNG1iNUMqeWB0bVF2N3J4Ojt6MlBGOUdTK0crMkJ4JFNZcDdydURvR10qUlh7bFMkNFo8'@; put 'ZjFEdzpaNmx2Wy9DNU9eVlJIPEQ9UT40b1BPRXNgQiwyZlpqVWdXQFI5UHl6QHFWVCQ0clYyNjRvcGs1OSpCVUApfl9iZHl8WkZQey85bzcsR3FXeWVeSWlXIyhubERIV3ArUjk2eUFHKEcpSkJdSlNqOVA4WUxsbUczTWRJJWljZDlCPHw5JmlrPjI8UFJYVVs1Ijh5U18sZV1WL0JhMiZJdm9z'@; put 'R25XW2ckdjEqPS9LUUllWHdMKl0/XjpaVz18KzI3TmtUL1I1bUhKNEJXQHJxXVN1U2JTbUVIJEwwant+KS9MdiIkI0dTZEx+TDpKOiV3TF90OyxyT1l3PFA4cG45dXs9XjVDck1pTEcqYFg0dVdkNGRVQGJTcmJ1SVdIQ2lhenMpISxFL3o3YmVKYiJvZHczUDIoQSMhTXp0TH03RG1lW1ojP1VA'@; put 'ZiMmTk0vbUcsS2NTckp7KSFTTEM3U25VKHYoK2Uwa3hjSCN5QG9QOj5OKzk4cSosKTNpPC5jUjd0NVgjbiF5WV1JczdfUj9KQ1RJZSk1Yj06fVl+O18+SVVYPWVhR1JVcXFFai5sO3xOd30jPE0xYFE6Ki9jWXkqK311blpKanwoRkM2JUBzZFR4QWp2MGFFSChGRFI1I25LREZ+RWh7cVF5OXNb'@; put 'Y1spY19GbWY5QntaPUY1cj1Za0kyMHxQITQlazpAbUpzZz8xRmE/NXRLXXd3IUdeRClZMkVeVWdgeXQlKGJQZDE+WHo9QjFUO34rczQqKzFYVEozNEtERzNAUndLYEoqfSJJdm9UTVgzRiZpIWl3Vm5sZnZXNGwwUiw7OX4qX0xWRnFDOF9gLz9IYz5CeTZUb006KDclRGgjUGlaaGxycy9BZGtq'@; put 'cmVYel1CYlIjfmk4UikzM1opZ0sld0U+X0pIZHZUWy9fNERDTnhEZHRpZ1twME57IytYey5ORV1yQT5YMytafEhqWlh5PmJ0dT52JjF0X0VuK25rImJhWEBefjk/dzwlK1NEZ2pqN3RiSDJ4NXFWT1RFSExXeCMoQEtsYHZYO29jSDhiRVhENWF8flZKaUxsfm92SHl4LjoxWy5CLG44QlUhIiZy'@; put 'TH05K3Z7cjArSipUNHNoQixfQCYqN3RJJjwoV19IOTZle1osXjJtYzRXaz9yKSQ/b0U3W2wvL2w0b2MjPVF+VmZuQjttaUtvcDk4LFZtK0gqJGdwJXRGYTo0ND08aGV+ZSF8TjtiU2A5K09uX0NnTHljRExHRUh3ZSF4WnFnfF5OJDtiOH5NXT4sfGwyJFVzMzJrQHQsZyVHZjBJZSV6TER9a0l3'@; put 'TERPMTkzPXRCVFh7ZHgkRkdDXj02biRyMj5FJmlWcFBUcmZvYlR0dUN0I1tYN1V8S11DY19TeXVJI0d0dko1d2BbS291V2tYKSt7QzJVTkUsRWZSYENrLCtOaTQhTmRQaylfNWR8P0hzRFlndU9YdGAleCVpSmdaRDNORihBW3c+SixSRSQwZUh2PVZuJWhoeXJNbmglR1JuJCpSZndSXT59Q01o'@; put 'eUJTdlBZQ0g0a35TN3hEXnxuay5VXl5ELjFDbXtEfio2Lj42XXJjJU5faWEiaT87S2l8KUxoc0ZtXmN8OHw1OH5gJWlTcCZNakxkcWN+aXhOekxrcFQvNSt0MV89QE4uby4zOndJdklJNWpQR0QkeTVEIz0uQVQ2eU8keCVXaENCNzBSVz5bUGVSYEBkYUA4LDlFNlpFL31CUXBSUjNQWy57VVE3'@; put 'XlY8RUlafmlGYDZvJlZzQGlJeiRCbDNfVEcxbGN7R28pSXVHd1dpYWhwZWglQXZxIihicTt2d2NaQnBGWldURGVqeTtWdUswayNqSyVLMj5YOUFbPm9nJi9TKjxUcWY0NDgod0Z9c19WK2sxNnp5ZlZyYTc9N1YwL29eXTxjLlZ+MUhePEpRL0R6aFlnVSZoPVNBcncxVltfKWo4ZFEyb1MpRGpq'@; put 'WXhAX1htWHxuSDZMXm1CWWFhMUJ6RS8zfT0yK1puImF3LyhvIip+WXYpY3xtQWYjYlI2N059UDtDOFdTVTR8alY4ViI4aFhwTz9Gb3dBYmJjYnVKZDw2K1I5UjIoVnh0Mj9QbGs0SlgrbDQ3YndIJE1oLnNEZWwjWHI5SC9ULmslWigmUX1Lb3MhbHVVT1YmX1kscmR+SVJkL00/RHAmTjw2fFlk'@; put 'czs6L3JsbDBLPWdCPVlBVng2RHtUYjJKXndEKD1bVWQ/dlB5dFh0aWJtPzF7WVdGVmE8fGMmdiVgJS91WmhCanx1e31zVVRld2gpV14lPWBaLihCcTM7M0hGPW4iWXQpfVk4fFk3Xk5hRmVERGZ4RmR5L0MrKE41QXQvSHdiIih5NVpGaEZ1fThrbTo3UWleQ0FBI3BSeFdBV1ZgaEpHIVhEQEIp'@; put 'IXE9ay9oTlIuRkdbOncrIkFOSDIjbVpeJDJiLzVjKXchL14id1dPZHN4blYwN3t3YXZyL3N6ZzAvPWI3M3MscUVXNnY2d2ByUXtofVBuNTQ2ZVdzRzBjP1Z8SzRtPWNhM2EmdUJxZkM+aSRbPGhxfiY5UEdTU0lJZWRZWHJMPGVHVW9pbz5iMjAyenRgIzwybV9bNXwjZWVqNGdTdn5yTjhrTn5p'@; put 'NjU+bjtbJDIwJSN4ZiwsOjsqVHMkQF43TGJROlc5Mkc6U3dEPCtLeWgqcUk4Z1VANWV+RSRZMCw2MSNtNEwkXkRAXUtTTFtbV2JEOzBDOkdLSV1aNlQyRGV3I1Q/JSlnKGxrZjludyElWkojVTpHOCE3fk8lTS8qOUY8M3g4IlAseVNbbVNrc1JyS1QuMjxNWGJtSEowSzp3bTxLPTZBb3lod2V7'@; put 'eTh0Oi8/KnJlPHdsWWV5QndKY3t7bGx7NF1WfCtxVVluOTR6JjVrV3x7Z1R4JXM9JUc7IT9fYEE4PjNTR3dfZDByUW1DZzYmXzRtbz56eSQ+XVEmVSYyaDVkWSsjNDBOKVFTUEpiJDxoSEdTX1ZRU3Z7LFM0bFE6LF8xc01YY11uU0hLQ3lXUmlVKixLOVtiZ3xuMkNsZXQqdm9tUzpDQlRUUyFk'@; put 'Z21DOnR9YmxRPHAobERYY21MOVszcTFrXyJwKTRXXWV+VlUybWUuempfR0U3WFN7fm5kQmk9aW5lTz5DTGV2UlUzcWZUWF92Z2kzV319PHN4a199cDtpZEEmV1JqITxPeiFSKChwOjA2LEpxUzt5VTkvNWRofih0eGhCQjNBSERCcl9LZWNhPTVJOTpoNXlnLi9zYyk4RG1xe2MzT3tvRiFfWExh'@; put 'UD9fYUtCcG5fdGM8S2JXT3NALEd+TCZKPDY9Ung4Mz91TVU3YSM0WXNgXyhnflMld1JjZjRiXmVpeSZSb0VffDRFWTZTezY/VUNbZjchMD1QRztXdkthdFlQfTsmITdYVHdkOl4iUXtVKnc9Snsycz9aOWtWQGROO11FKkVBaG5+Rn1wfmo3PmU8JEFma3RgNzJOW3xHejBWQkxUeiI9MTdiNWp5'@; put 'cjpfSlBZaEAsQ0w7KV4rZF02bVNkX2Vda0xpNHQocTVma3dSSG94Syw/U2VXaElZY2Q4UkF4PmBibDx1Jl41OGNbRn1udXdZcGdBdF8pX04laH5xW1ErVWIzR2QwVTlfdXlEciVeIm8hc2t4aGFDLGRdO1FrS3d2d3tQMDRqQG9eKSw+Kz83Tlt6c21QW28pVkxzOHNgcDg7aTU6JlpdYTE6bDh0'@; put 'QndkcnJkYGgyJWU+TDtuRFUkaFtpKzwkRF9VVTx7a04pPjVYRik3NE9+ZWRUVG1hOkNxKH5lLlBMPDRKb2J7TEYpYkImL2tKOD5zczs3ekY6ZHhsYUtgTnh6NyplaXFaQWJteVhsPXYjLl9KdFtfI2U8OiJsejZmJlNFTV1iRjd+cXxUXWVHX3NZbDdIaDJ2Z0ZDXy5EMmczZ055Rnd7U3t1QkFn'@; put 'VXZeW3lAfjJIL0NkLEJ7WEMuUithY3J5Z0BwaFJbSHVqNSwyKldZbTprYmV+MipbL3gxRU5OaHpLaF9YRUJEO2p2dz8uMUVaZTFZPmg5VXVbLGlyQnJhZ1VZUnRkJCNybnRDZ09IJjFFLn5HUUtubkV6VSZSO0cqdnV0anxVfipYTTU5Vmx8ZWhpQU0/XTkkWGhbV19bKl8haGBKYFspQjlvOGVt'@; put 'MDZ5O2hOOkZVen0wSVU5QWE3TyRkVnh5KDBNVGVmX2QqL19NeChfX3Zkc1p5U182UlEydU97eD5GK0YiLlZbY0AlQlk7PV11UDZ0TzZ5TFd0Vyg6Z0ZgTG5IKTNHbj0sOkd7SUtQUzNIaz1+cWsrT2VjamJFbjoxbmlJa0VTdzxFUTA+YnZ6JkliKW1bM1YrT2YiJn1AUENGP2tqdWxeTi9IKTZ5'@; put 'WDRtO3ZOSnl9d0xaMkpkcUVZak08P05ESyU+dWY7YD95Tn5HYXoxZVduflF0e2IwSFRLSkIhWmp0SXg9Rz9QK1RhQDxrLmAhcHcoWlBbLEB6XyVyX0VhQXRzUWtjKE9xP1RAVmdfIllfNTtNNEVqTnM4aG18Pit8Yl0va15mTTNFY3NuTG9NeiUkSm1qfEtDL2VpU1ZRSU1TOkldPCZETng/XmQ0'@; put 'cytkcVE8LjAxWDNAfkoxcWovLiRXfDluVHw4K0t3Pnk2TTYoTEp9WnR5RntIZlpxUThAPyVmWTc1QHkzUS9sdSglcjFRIllQIiJlIjlWUSgycSxDNCYidEgpKTFhalp5T3dKX2ZPfTMwNCFTZS5DUS84L3ZeKV0qZ25MQXhyMnxYalhlSllPQHRoZlNDVkRCS1tDK1t4Tm8qV0hiSTFeTTN6bDIx'@; put 'ITUpYSY1ei9qTUp1PUdYWzxoO1ZdNWdSZFFmeWwpeXZdTUQwJGluZl5WP1dbUEhjTyteZCtCfXtuKDMpakczWDg9W103bnEoe3tTQCV6T0BjOzIoNytVKC5MUDs4YXZ2Qm0+Qzc/Tm9ITmA9UjdBN3d3STxCb2ZbZWNEfUhyYCleZjZFa1tbWFE4QV41YUw8diR+ZXZ2TE16aTM2QWpvVnQ/T0kk'@; put 'O2ZVPjE4Xk9iNCN5XjtGcDIjYCR9YGwmYmY/NEEwdiJrODouI2skPXRsZTclWlJHTlk2NkNzdSQwUFZPbU4pUlY6Y3V1IkxNdSVjaWdHQVdQM1R+WXJVNCNdWSlQMTNPPFhFciNAO3o2WGdWN1ZXPnl2TlV3cilAXjpicEIvXXR7L0d0dzwoSFJHSlZpWzZ2T2orWSolZ3wmallZWUtCPywlYVlV'@; put 'b0JMNlB+QDgxX09QR35qRT4+Qz5+RD49ail7QSZgaXByelpBVixAa0FLLnJJMCwjZmxETFF0ImRASFRbUT1zclloMHA+KkxkeWp2a2ROPSExUUIzOGYie0k+KUxmR010UDZLWHxsUT9eOjdVJF94WDtgVDElVktQLlVUMSV7UUI3fEgpcSNrbDRfInBEMjFtckgmLGA0eDFqZTI8RmAzKDBTaXtn'@; put 'e3xaRE1JPllWV21fe2ZVNzVjTHk9WFVKMUM+LiNIRlZbK29tWXNjYlRxSEtqciw9L3xDajo0R3k7dHdaQmI7LiZqRWtPNX1YJFM6QVIoRyt9KCRyKEx+c2JURi5PYkplRWdBKjQoLzpNZmhbKXw2S3FhRVsyJGtrfWpwI1Nham18dntyKjluKiQkY3lWTjx5dGI+ZnU7cz10RkwoUylUb3NnOD0s'@; put 'Qn5ydlI7R2hab2JRfEdKVzYzTEJ2PmgiWD8oYnNaclY5NiVYfCgjJnxpeVdrS2dTcCN3WERURE99fU52YzFXUnYxQjNXPm04SHl3YHcuOzAhdUtpcSZeOGs/YH16eCVaW1BDfClCP1M6MmFde2hiKnxQIzVCPnloJkR8by5KRl0jV2gvUDZCbl5kQnZDanojJWdvNCVDZUZhOGlkWldWK014KFps'@; put 'UyQ8LilXYCMlQHNGT08+bjolRDN0UF4kc0BUSyNpQjomT11xa0FYJUwrbm1qKHJ7PS47YmIicDJjWkYpKztlLC9rI2pUXjp1LlZoIjB1TWZwXmI4KFQ4UnA+Pj9RWG1FPixzfSUseEBNK3BqTTgxeE5JQ2EqT2dCaGRIKzAiT2gvb3YxSi9CLnNVb0ZRUnwrR0RFckJVX1AqbWslKTBtRU1md15Z'@; put 'RzJZSmxSVVoqcGxiR289QyxuRnVXTDU0NGNSQjF0a0wwW1lTO2dnLjA8QUUyRW8zTTkubUJYXW8jQHdIV0sueHJZfEYxVW11YUhoKUJoZHR6fXdSZ1UjMip8YDwqbzdMfFhTMzhdKWVgUDhIdyNSRk8sW2tjUlEiQDRjcCk+U1NddDZoPE9fa1JsP0NbP0NyMmcjeF00emZOJDZOKE1SP2hVPlZV'@; put 'VCM3O2lIX2cvNzl8PGc7VFRQY1NWcl08NlI4UlVqJi5EMXZwWGRNPCovWHNARXR5MkNRfGlGbTxqT1QhXW1ldlp9aU8+cV5eeytrelhmemglM0Q1ZEo0dzhBe2wwNV42Zz1aTS8vI0spKSY/NTtlNTFPMHdDVCo4YFtZZXR8NHJlfFhgLFFmPU4/JCtINmV2Kz0lWShGVCMyMkxNeWp9fipCOHR4'@; put 'OUt8WkZnUH5KKUdtVjdZcHZiVl82aXYrSy5QWVd7UTE/eVolaDpBPGBmYTZTcVdzLkUjR0I+N2x2aD4xQjdbdVl8fkFMVHRsOX0kKHxRbEtiemlrRXpHdXs4YVRAMTk7cjV7d1k9W1VGdlsuWypGN2FqQk5gQnxKR3RoUTd4Kzk3OjNrPy8xdCR0R0MqUUBJXVI8elM3alliOSFnO1o9NStgPl9e'@; put 'SHw0P1lKZHsyLzVISGt8YUBBQTFkTyhnUTpCIzlaRUFsS3F4KSUzb0AocXZTITRZT35yVHZlcTJIQnFWJXhbbFJANGMwIU1TXyFqfnRjMUVxJjxmbCJWRl1FVDh8KSwzNlImbXQ5Wjs0bkp6cmdMQFZFa2BtUyoyI15nMWhNV2kmJD0lKHxYPz48P0h8cz9ZSk0pNzowW3M1dSlEQ1ksOGdwUTkp'@; put 'ZSFOZGg4UnE1QHg5RTw+azJZc2F8aT01JUhQbUBvJiEkfkw2ansiOFE+WXFSdEh1WVkzPyNjditaSWYlcTZULHZ8Vlk1WTlTRUxzJlJWQWxgNzlMPnZYZFh1T3ZmY2xCdFU8RnE1PGJ0MFh5YEkrdiFoRkV4Zy90Ul9BYmR4KGxKIX0pQD5+byFZX0d4dUlnbTxAeXFwYixFVnMybDV7TFM8IWNz'@; put 'dD1vREg3ak57em9zSG4qaT9obipydVNQYFhbS1ZnTVIvMiE1WzpyKXUhV00pRj9PQlBUdF8vS0crPV5ha3VhaiQrfVVOTEp9TDdfamZqSFYyaU0hRD9vLlF9S2wqcX59dnVeIlkmTzcmSj4jaGsvQGp5PHBiRyhKQUtOPmxCVkpWVn46ekV2NT1UYzRhfGtObko5OnMyO0V0VEtJXih7QD9iNylw'@; put 'Xi98TF5uVkNWJStlb10sITEmQVkuIm5gKGcvLnA+UHolOExXQmFJaj9rQlJyQm41UH00Ui5wMiptcVlpR2dDbyVgVl5oXkg/OV55cGo/dF9wUmVrZVdGS0BeNnZ0PXF4bCR7Ilo4TnhmN09KVXY1JXw4TCZIcjI0OV5tVTI2bikqYjt8a2IzdUc2QEVvT35YbUA8ezphKFtoc0wvPyhgLkwmdm0/'@; put 'SVY7aFZpU0E7ZyJCdSp1KWciPzFyQDxdOlNbeV9EczxsdHkxL01SZjtdKUAvP3YkX1opUjUiXzJEY1A3YCNIUHgqT1hJbnRreElVR0BmWi9zXXx8c10+RTlbdSM9fGV+NU8rI0pRZ1toLjZeNjBSWD41NllRTFpjWVBgbHZIdFhyezRMRmM7bHhnO0tkTTA7UTU1bHojL1hmM2BPWEJMLC44Tj57'@; put 'OiZ6VHM3fXAzPCouVzxHYkNpeG5vcEZLaUFOc2AvVVdJSmRrI0JOPEtsSX1MMVssTkAoLHVYNyVDX35dX0U3PXksVVEqbWdFMWNhVko0Zl8kK2d7am5qaUksNyVuPU1KKzhPak94STZmVjI6Sl9YNT0sQVJUKUZxPmcsV0ZVTnlMfXZ2RDEqXUhAOHl2PSNNKVhnVixzVFYkcmVgQjl0PFJfR19m'@; put 'XyxYQCJKLCRkWnZ2fn1wR1lYUVpddiVMVzYsUjdsLCNbZjdHWkF3PWReQlc/K2YwPE82Iz9uSncpYnxhWz5HfmptQnoyP3d1dU1wanBmQVdiYXUyflFzWFgzQzdlVC4sSCRycm5KTE1jOEhiT2JuM2xIdWFFcER6Pk1JTjxBcjQxRlBWd1l+Ol87Q0ErTCUlQipSbFo+NjQqfVFTX11NYTJXTD03'@; put 'Szd4NjpOYzxbLj8pQERqNEI9SXtmZ2l7QWNLW0JIN21AJUY7Z188YGFQKywlTjcvXTBnTkx4SCVYTX1gUmlPMmRXPEFvaFg3em9IK2dYSGhwfDM6bmY4bXY5RERDQXpmYn5QN0AsNFY7T3pOflYwLlVVaXtPcmp0fVReN21xcyhYX0x4K3kla1U4SDV7WGt+RksmRTohI0x2TTd8b2Yobks3dFpW'@; put 'Ri5ANlNTYH1FR2QhfE5JKDg/M1tpRFI3KGJMaTRJJCtEbmpPWlNnMkVEdHJKMGp0K254UEdfSVJbYSZeQEJwLyszYUVGbHFxdURWU0pwWiw0YitVTzxMS25xMUl3NyFwRlg8VV92NyskZ1pxRGBUPEVTakxJYnomcFppTj93cC9yTlU5UWtnZCtYMHlCeiZaOU5aYipaT296cExIYm0oSyZMZ2Qu'@; put 'TmM5ZnlQLDB+d1dsXzN2SEB2aEhXciN7VCt6ZElVUHsqInx3VmcrUmVFfWhQQDwyXnVHUHl7cT55UGNvcFgiaThSOENUeF5jKjd7QHJWZn5oWFY9SHlwbmhTLlJydiszW3VJWGNFVjZJIz98IjEweyE+UC5FQ2VYPFp2eG5ITiZOdExmU2U1TWRZXy5XKCQuSmNAMXVzMi94XXVnXXZEK09xTCNJ'@; put 'NFBwVG5rKWxVMnZ5SmRSTyREVDl0a0xDQFJHIUY7QyFkT1VIU2E0emNLPWpHJm51MjpMY1gpVXorNXYqa2wqW2ZfSXh2K3BLNFZKY347PnMpWC42YWxAcX5EL3RaenhFbHV3aGdoeztNRzlUaGl+ImtnLGxoVmdkVUhCQStgKE9jU2csLkByaiNHUyVEbyFSejh2e01OOTReQjpXcnVrcjJHZj52'@; put 'bGw0b2VEfGdgeUdXVUMhTClPL0MkTCIqalV8SjB5aHxqL141Q085NWlUIUtwUzprSWhLfU8vTlJoQjAufFd4bnUpLz5WYTw3bl5nWVVpcDBpPzxfMihhNnNLKEBEX0xSejFlWnBDRjI9MkZSezVSak0pOkk+Nz9LQVIoLitxIXkxfGk9Y25IQG46UF1Na05FbEBwRXEhTm0oImsjSU1yKFJmMj1f'@; put 'YHBqdkhBND1BJE17aHpEbDhqLHVhaj5zJVFVLyRldyVePSEvMElrTkZgZ0RNRWRofGF7Lmc+ck93OCF2M3x3dVFRT0Uxd3lIISV7MDhIYzt1U1ZiQT9pLCxPMVNjVXR1fjg1QFpKd21MJnRoJHN+KmlsPjBbNXB5OTlQdiE/cWF6VChEKTZNfDp6fSZHaXRmaVF7JmZ4TyZrOWFdO1dbJGloTVV3'@; put 'KHVwWW1jY3hRYU9ATV9dYWR2UXVoMXhFPV9rTlJ7NW9hb2B5MERaNCVDZ1NyNGNgfTw2fGBNNjEvTU1AY053cl4yKXtOPHpwPEh7QWxFLC95cldxSVopUG50JEVdSz5hdGN5ezczZ01ebTVHaWAoQGc4VyVkOU5nSk5mPyIvPG9XMkpGPUNZekZDIXxRVElONWkzMUFtVk46VWtCaUtHI3JvWiRi'@; put 'NSZnKTx5XXs+S1pCTWopZGtvZjpMZls5ZUQ+TFh3fjpvUWJMcWRnW3VpOGxeNzB8LGRoPjhYPjNYS1p0SmN8OE5aRkRCQ2JSb25gSkAmYXoqYzJHLylkJGNWLyVVQkgzNHcxUUptJC9qeWJ0OXhqUy9QLjx2c0dxMns1W3w3LDB+Ui46OV97cDZhJUxjbjE5bkxKUHRXRE4qUE5+ZjRQdGFpdjFu'@; put 'ZC5qQkcmWXdXIkZ+YVFmdFEkQSVZLF1nSzwvKG84fDh6MFpweURPVThzLnZEUGAqQ0JON0syXUtYWCttOGI2RTw7bztLRl5VUm80SkdYYD1MI1dvXVdwbUclO0lCSj5TOmkwNk5YI14qQUFOWkFfMSovJjMlemM0fDYibGFaeU5ScSopND9BbWB9cmpRdkksJWRMTXBFUW0ye3IwL1N4PXhTNSFN'@; put 'SlFzc2pmdiIyZSp9NDpfVXl5RTRPUy84WnNGN2F7QkA9eUl7b3lGM248ezArLGM6QnN1RWRrfE1NKEt1QT9RcnxSUyo+MkZTMl5EcVR4N3NPNF1vUn4xbzhHWXFjdkNXIVM7NV9KSW8kPkkxS21IP1VYPVYuQyVuZWJEdypEPCp2Ik43VT04Tj5ufW1ob2c4PjB5ITRUX2pAJm1MWSNhb3wjZThJ'@; put 'QWBeaX0xKiohbl1sbD9mO0JKdjlgJGFvMmNESitFPD5MP3smbzQpLlQ0I1ttQDo8QzJTQC9jXmRlTXBgWUgwO2IlPXNKR1l1YE8pMl49VDxJPEBsem5vYU5sfGtVZCRhNk9xb1B+ZkZIJn5VJHo/TW9AYU5jRS89Pkh4eyZvIyVHbGddMTtaL2oyXkB9dUgualk7dCpPejoyN1lgc2ljXXVbLGB5'@; put 'LEpgRTxtSndNMFIwNFVfTSQzU1dVL0Y2X3ZoMkooUkAzI0tFIilZakh8TyJxeHpIQFJXJGl9QiE2V09BVyNRazckZzM/NX0uclNVY15WTSxOWj0/NGo3fX16XU08W2RrRD8/fW0lS0ErWyhlUj1DYSI+KzB1MX5gVnB4KE8wb1BweXJtYl0kKlZ4b2lfaV1GUjpYdnI4R3A/V3JbIWdJJHd4Xj5e'@; put 'TCZMMF5uREhfejhuNWNXUzhUIiVRa2V0MiZAcGdYLERmO0U8VXhWOXM9KlsrIWUrVTUlT2kreyFIJVJxdUpNSUwlczo9L0VTUCNRZ0NxPFlAXm45RzlpdW5mWGFaJHEvbjojbWldODpGcltATkopX2k2ezRnSzNTRSQqb1RNd0dCSE01NHxAQGdOKHs2KTBdIl0xYSE5RHwpfjt+RVB0Olp4SGko'@; put 'MGI6X0B3cTdhJjtUVGc2RVEuRHRvY0E0Ln5tNUxqbU9DfVVqMj9OI319QWN4Ml9lY0FLZl9YKF0qJGh2KlpJQUZzR1I2JEwxeC9oNmxUeUV9RFtPb2AoNzdgXShTfXokLyhZbl1ESEdNdHFzOjk9YHtKey4+L05kIytOTyVUNFBaNlNJVU1PQ090OzQ4QWR2Py9CMWh8QGZmbW0seiFoflgkTHdq'@; put 'Ui4iU35RL1FPXnt1Z10oaWcrO1Y+e1dTRzhkM2F8SFZDJXZmPi9iP0AmJForOV1EdXRtKD5bbEF8PnMqbTkvVC5mQjlnJEtUenVYUChqfk1tZit9KEF4OWJZY2BJQiMod1Z7UixGMTlMPClFXWcxWThyN0M+YkovRUI2KlA2O2ZRfUhMb2prLzZJQy5FRTpqdlVjT0JKYll9PStgLGhXVHJVPkVY'@; put 'Wl0rfmooNl9aSmBvQjpyZTFvbVBEQDZNOFIzMWBSd31HPGE3Q0txdilBVjNPanw9V0YxVVpMNj9zWGsqSVorJUhXMHkrZXtIdCJ6dWErNTN3NSJkSGdkUTd3NmxAWGNuey4zN2t3eVgsNmFILGc/aFp4NFtiIys/Pl8kZ1Z2XWNtQ0k4UXF9ayhRZSN0YCxlN3BXK2txWykufDJTVnE4NUdGRlIo'@; put 'aURvOitoRGN0ZkFha1Q3SDF4ZiMlQl5OcG1UOnooLz1AW1U9ez5ZfShUIlgsd1sqSigidSl9aSpeYVFTbE9iQUZ5XyVFLls7WH5jbVorXT5edX40OE5qX1tPZyFbRGxlZWM7Q3QuVUI6Mms1QUNKfVo/azFSbnhxX1hdMDAkaHs0P0FuODVudjMoUXtNd31hV2N3Ul5TNCM5MjArez9MNkduXjJ2'@; put 'S1kmV208NT5hOjBsM0BFKlJ6VERwNVdqMy8xJDl7I1FFTDFERFFPbnZwMXNpUHQ6OyJvbz05RioxejhHIyp0MzlqP3BlQkkiRiRzYGJ0cyxndW95TzBBUjZIRmJkbnhpbmRLSSR4KGdQVk49Yio5aVRPYl1VfmVAZn4mN2thd2J2SnI8c0NMJDZMbXc5SH4kVzFGZjVgIi85d2RmdjFzWFE4fVdD'@; put 'UTtLV0wlIzt0WEpeVzk+dXdMSDo4YFVnVDpjUzxjJjBuTnxTKz1kTFpGT1pJQiE9dmp4NzFhb2tTRHIpPFUpPU82NFd2bzJATzBTPTxANHsrZDFNOWNqOGFpZSIwKSFaQz1fXSs2MUJfIWh6eSQkOGFOY319amw9QmBySUElWWJJJGMhLH5qdGpzSU1kNmsuTHVaJTF2RFhyLlIwMXRLYTF8OGdN'@; put 'SkhiUzp0Sn0zQkxeeUBYYSYhRFFFaSJSO3RSY3pGKU5tOCFxPTJtXmA4JGhoOVleNjchUVtPTno/QEZebGR2IS50cSR7XSV+Ky9bTC9scXxOY3FGXSZjeS4kVnxwQWorOHZRQz8mR2xRZFNbKkJUUCZ4UHN7ODc5REBfTiNXekFmNVB7alZpKFFEN10oQD5tQk5PWWdZZTJmKj5MPkZ0QnNBU182'@; put 'OmpEUn5pXTh9RUl6Y3wxMyt2fGMuU0xsSTptU2VOYUFIeURkSyoodWhOUTBvYmthPnIvUDZeSihpTiJ9PmIxOTBQWjpJMTc3MXZ2O10wbEI7UVZ4azQxK1ZFaSMza2RqN2BHcm4oU1d4WHdHWG91RGZrRFhZTDhhJj55b0Bfdm4wbjpNYGBvTiRFOjs6UzhCaHExfSZCMm5ONFlDaHtqREt7Uzw5'@; put 'Z0wlS2heTHtoPjJ2elZiQF9ySzhfRn1SbXw/LFojbUlFRU8lRiNDQzlXYi9BX2o8NSM4WV9+PX5GUGB7eXQ5NVJ8dTZnLGklWEdWQXhiI0hTM3wqPmdMcVglQXs+SUUhR3VyX35ZU1NeWkg5anFCeTRnVitPOj1VP0JZZEovRCRnQl4xYHheRSk6WUNBWUUzWEMxUkQ3QkN8KDRsZWBVSlJIJSRI'@; put 'PyhHKiYqXklwMVlOYmsqWkIjXVovZWIvOWJnM0R2SzhIdyspMnFgWmxOYUI4YXA0OWlRL0pWPGo9aE0wd2djMnFSKFFWL1opXTRNeHB2KU0iKSYyTiQkVihzTjR+IUtuKSU+azVzLy9LPD5BY2ZbQ1VeKUtrMDt0fHFTbWUwKzEhY2Yhd3JjSHNgU3ZHUFZPaVo+TUBmay5lfSUhLm43a21oUF4w'@; put 'YD0pOEtnIV9nfiprU08qY30iPmtrNFNYaDs4cj9mNDt2KWNRSSVwZXw9dm8mM3hRW1I8bDlGOVgxfWZKaVhkaX45IT83PnJNZmNTVzI8MmxNY1kkNi8jVWF9K3o4NXBWW0ErYCI1YigrdlttbHErMkg8R2M7QzBiNyhLQFdfZ3Q1L0lafkBdJSpdImQ1aSQzdjglZ1p8KDZuZHdhTkRNVX5Vd1dO'@; put 'Y34qZ2w2KVhFXyFCY15eWyVTeTl6JkRhMkpeZ2NLfk9DUl5Ub1c8dHZJZWJoeEh0QTddYFI0LilBWnNaUVRPYkVDUlRZOz14ajltMHcoUi95OS9kUyxFK0NBX3ZvKkQzTU4uYSl7ezBLdURnWn04PFdLU1ZwfmBnRW59MjZzOEB4UmRwJjtMRSM9N2c2PGpiOGhxNSF0X1lYWS91WEVVXVNeOyxG'@; put 'PDA0PiNIUyVUeD17SzRTa3NfM3k/ImQlZiRsPDxPOUIjUl46PyI3X2ZmbEBCUGNTUmx2Mjo7NVlIVUZkYkhDLlpVSD59XjxZPSMpNl9ndj80PEo0ZGhQLjY2Q3QvfUA3SCJWb3QmbyRkOW5ufD4zMDtbPCNDIjhVKytLK2U4U3oudyQ4YGhfW29NISo8ZDRpXzRuTnJpNUFjMC48NClaMHNfZU9M'@; put 'OSJMaD5CeUZLeVlLTDA1eX1HS0RjQHMidjxkRyNhSiZ5M3lUKTYkSkM3b3UsZmVgQlpGOCNxejJEVzRfYU4lTkdbIVFDWThLVDxkUD9aeFpKbzgjXVEmRUhBcCFEImBGKEEiWWBuOGl6dll2MXVJen0wZ08mMiR+eVcoKjpjdVQzfS5saGooZEV+N1pMVCFONCFuaTVOdWE1Tlk+dFlhb0gjWTlf'@; put 'c1hrR0csQnwoPGRlbmY6di9pMX1fJEAuekVuNn1vK2g2aXxsdmw4Vm95eFhvJnM6RDlfeldWVHdHaSQ/eTJpLk1ybTBFfj1baElIJiREW2FJMDU8dCE6UjlRSTY0dCN5M152MyQrVkc9akNgI1ZxSlshY3AqeS9+fllfTTxxLHY4T2VBcnlSYmpRenloSXEhQjw/ISwwQ35iVU0hWGl9VXxzTGgk'@; put 'ekhTT3JYM2VvOkZkL2wxWG1wLn5EYVA4RStrMCRMXnQ2MSQmYXIjZFRmSlJuMU86QylMdVspSVh+bD1UIVtnc2dobG42fmh5MH0zYTR7dTxBbyZ2cCN+bDFCTTlLYDtjJko6V313Yl41NWRRc0deLCxdXkd1YV5IU0tIRDtVeyxTdWw0Y3NFWVdCVnskZH1hJXA+UTJGODtYTHRDTzU7KFhjcVJa'@; put 'Zj97UnY8MjJ1USRXZ3BzVChtQlJKeStYUj5nRTFXNGFpfnFlb0F7YilyJkhTWiRRdTZbXy98NS8/NHhtWFRpeTIsTHZHZCEodnxFaWNOIUYpZHtjcHpQNktjJHo2Sk0jTzdMM2tKd1leeHgzJTgxO3dLPlVwfkdraj1wQS5nOWNmMXA4aSVOM2N7ZGl9bkolbFJdYSlYaz86JV9PdFkmczNlNGlf'@; put 'JCpEb3EjVmtXdSJgZUciKXQ9Yj8mQ2FIPDksdnIpNGBPMWp5UktCZDg8X2p6KSFJcDxiLlQ/d0QidUlDJEBYYiV6LDN3dUJEcFkvQUtUKTAyaFlJLzM3QjJzKCxkQm4/NWRBaTNtODIjNVlia31bKGVEXkpBM2hHO3o/MjRaO248KXpCI0VgaG5DYGdIKz0+XnpMeCR4MyEzLHxOXmVhdGxOQS4z'@; put 'eHI4NEA0JEFER3NBVm4pMjBWc2FWNyx9ZTBuKiwiRykoN3J0OVoxM0s5dSh2OXpzXjlMK1okcERoQFlyQ3g2IUNFLEQhI3pWNElDS15uQCprfHhXLzVQOVBmemt8WDVjMWFGWXIyUXRKWyhUaFZJXjxnRGhObWxyUyVwSEplczgrQEpLZj87O25CYkQpX1EzLlc2UX0kVXVqR19adCpMM24jOntm'@; put 'V3loeHxmdXB5ZjdaVXR6PUU1a1thOkVVTDxufER6elpJM0lydlVKIzlpJUM3NEt3US5QKEwlTHk8eVpganhmZ1VqOk5QV2cqJXM8LjIuNXBEbTtpeG5IeFNrZGQ8am8mdXojJiFpb30iVT1yXW02RCxqNyg4KWhNMz1geWtzXWgobzwsYEQieWUqd1FHYnZnMlQ4O2ooLyQ1NVsuQVtkVXlHdmQi'@; put 'OjNiVmkyI2NAUipXQXIsfE01UUNpJjc0YTgkImN8OVk4TSN0eCNFJll9cUddZU12OiY3SGtGdmFFbXxZWW86YEhTanBoVEg7VWAkL2ZOU01kKy9YeEhwMyY2LzlHc0pLY0ZUbDVQeWVyRXokeXFHWFY9KU9RKzFYc3AiSDNOemo0QCp9YWNxR19FSHJhIzhLS0QhYyY3RT5OcEtebkpgZjcheGtD'@; put 'N01GImEpWE9PUyhnYDh5UDZrQD1ZKDJbS2o5PCI2a2RuJEZBXmojKDt4azZvfHQqW1hxWjg6akkiMCNpNThBJGk4TihOY1IxXmJPczYiUXEqe2NZcXl5VXskRi5HTGh5YTFzbWApMDZVIk40eEVzbDkhRlIzWzFVIXoidCsxJnkkb1BoK3ZwVV5eMzJhJSQuXjRLeDF4cn5SX1JCImEmTTQlMGBP'@; put 'Y1BBJTpHSzspQDopJWFOfm8mKkp7TixMVVB4YHw1OFsjeGxKKzhAb211W2NvRTZEal4uamk7an4yb0JLWko/TkglLHN2JmM+c1BSJDJrY217Qk8pK2k9QWxOLzFKdi89Il1EWSZ8SDlpd18wJUZdP0AzMDxoeFtiUjNXNCwkcCY1QD86Nks0SnRRWlhKUW8xcyR2ak06RjY5aXJ3R3hEUk0xYT5a'@; put 'e0VMIWBZaXJBIW1pJHAle146TltPN1dOaFFgUXN+YUxXSWcyTGlwSk9kfjpUPWxuNW9VPC9Ccm8mYXZgaWFoZmhtIUdDMiU6X2V2MGNybHZvb31qXUJmOCxJbjI3d1pQY2lbLHZLIUglN1VGJHVacigpcVlCUixgfCUuRlZIczs1fF0yRkV1MDJXeSh9JFoyOTQkX2QxJSpgOThweWJzTjZbe2db'@; put 'IVA7cTJEKzp1RVhyOzpzXV5zSTteWCU1SkFAOUM3Ni51aEFOdTZnelB+YlFFS0VHfD4uMCxbKFtmYGJNKWJsOFcxdXVufXd5IXk/KmI1OnY7WmRPdnsufkRCc2w0eH1RbWhWMkxgMjh1N3s7P1gzNSNaJD1OOHZYP10lfldwe3pJOVBedkNGLnJ+KD1XWjlzfEVpIjY9JWFxc29pfC8uNnZ+cGZW'@; put 'Zj9UKEB9b2VnRFJHbTJQbig/LnVidGNFZk5BY3gyUW83cUdEdlRGeDxxaFpDbjltX3VIQmEyO2MqOmI1V1hsOSRbQzw+Okk9e108S1N4MyZkcko+dmM1UEVCUjpzJEJVPEZtcC5FLClSJXgvYTYqdll7bENnK1dpV0dEWEJfJDlqe3NmUmxVTGUmSjJGfn1AJEhzPjBwNkd8N0lPI3xtP200TzVK'@; put 'Tj81P2hvbT1teXt3YiN4InltLFA5bTl5Sy9HIjp3V15HTi5oLmxqUVpqSStPfnV5XXBQKEVuTTdsTUtmVGpTQHNyI01FV11URGUqLjVkLzZ8U0l9WmAwc35qOWZxXW91ViFKaWVOOklhWEVTVmIuI3psKVlFTi5dKkFzJGl2IkxkWz1wM3ZDNHFVYE4oRGVDZWUmNEIhJjRQMEoqR1N6VTErdCwr'@; put 'Z2lORE9heWM9eFBkTGl+PCE2VWJ0ZldPIkNOcilgdmhQUF86NDxufkF9MFVbZltfTjByT1YmMWAsblY2TihPZkBSL2RFdUM5MXVDMihZYkl7aDklQUt5U35SbmdBRCwlLHpTKF1qeF0wXSpJdyZrYWlDcm4sYlMvfSpKQjRTKyE5KTBfYkVzTGNEQD5LYmdXe0g3JGgqIWt0aUpLRHRFT28yISQw'@; put 'd0V0Zl1JSlNFMDxUR2p2O1tLJEthR0N7SjZUaW9aQShnJjRGTWd6a081QTJzbTQrRyJeOmAlckdUbEoidltMcExHNEwzRT1uQGJtcDwhZ2Mka0N9Vil3KkJePWkvQ0M3KiYyTTdONzY6VjpRMlFGJGNWRjlfIVU2XWxGP3p5O2VGUDZmO2omVWdhU3JDWXRoPCh3V2t1aUh1UWdTeW02KzRUbDxN'@; put 'YyNZcWdxPG4oLjgvelJlSFZHTStFXUMic3x3bitxaHk4OVA/OEp9VlkxMCVxL1FIKERMdkpyUng0ZD5wR0shYkRaQ1lSKF5TWi46PyIpTnVhOlRNa114TnpaKC49cFdxeFY3bDV3fnRqa3RMY1ZVaWhkNC5VZGlrZUNufDchZWJ1NFBkNCVmP0dgI1h4RnRmJnxnXyJ7QzxmSDR3bXk6cXk0elE0'@; put 'aFpdPiVXViZ2TGFwIUJYclU6WTFUMEUzcE95YiJJYDVuKFB4dyVRVGNyI2lPRnBrKHxkVGRLVy9mR1h9R0FpYSRac2ZTelJnUlg2IzBhX0pUWzEsUXt7e3JVVlYsQW86XVhjKHp0OjxqQDFoYTdHP0d9dGhuaDJgQnpgSGZeQH5BRiVqNVJeIlYqJTU2eDh2ZEpQPW9rVjRRekMkO2E5I1Zhaz8h'@; put 'KzolLDFAeD1yU1dkQFtadWpSQlIvQTJBSXFrRTszd1QrKl9iRFAxPlVtIjdQWVlEZFtIdHFRKitjRElPYispLmFCME5TSklSQU50Mm45PFtKTklLYnxOYzU7cVozVVlUanN4dFElfkF4N3h7NStORXtDZnZxdyl8JlI4YjtZWnR1JG93dUEvPGlzL3MzUjxZTCEuakosRzpEVjZDZFlmNVN2LEdt'@; put 'WUNnU3ltRksyZltxUUxofnAjPj9jfHx7QDVzUkJ9QGxNTHo4bnEqKDNXe0BqZjRDR19PcD9WQCU3SmVFZlVgTFRdQl9bU3teWGJLaGBZPXgrWnJbcWhaLzRHe3VfWyZHU28mbDI8bHNvZDdhUlhFM0dtaWFQezRWMlFtXk90MWIjMDEoNms+Q0JZfEcyISZUPDheaWJAa19YTlQ6OWk8e09aKDN4'@; put 'S197eDpDT31rNCtVUl59c2lJQ0V4e2hNS0lATFpwc3ZZQDw6X3ZmcEdfRUN8Q3VyIk9XWWY/ZTB1I0Q+ZFEzVDl1OWYiNmJFbTR3eD9RIlo5cUVYfH5zeFMpaHhyemNkMStqTEVyZkI4PWB9Rj89Ym9ZaWhdTEBpJTlAaXM2eUI5bm1BZSZ0R00pYEJ8ZUEiY3lBfHE5YHlbSUJgeDpBIWF6YDQy'@; put 'NE1CLFEjSSxzJmllPi85RjJ4P3xMa3t1Km97LmlULHU7MzBQTklybUpKcTEqMmltOD81QVkvOipIbF0wWmArJjhrOSgxcXYmRkNtInBucSg/M2NsfXBUfkt4PjQ4fGNALkBsI0xYMW11LE0jZCYxUj57V0x6MWUlNGpGbH5VaHRlTWx4X2BAN3lALjA+NTZLVChdVXM+JnhNVGNYKmJjZSt3VWI0'@; put 'bWl4bil8V2VuQ0RgKzI5N3wwe2A6QC5RQjlSYV1NL0kiMjo+YShQbmFZYG0ydSEsMU5QUnc0R355Ni9kWnEyRTguM3FeV34mS0xRQDcqRiIqey9PZTpqb3x7fHwxYT4yUF54ZjNzZClARGs9QFN8TVJ8Lm1JdGx7UFhINykwW2RpbTBdNzllJHZQSmg+Wjs/YC5FUi54MDV1WFZMVXE9VXRVYFJ5'@; put 'eToxQGR4ZE02bW9RellJQGFNUmU2fSZecDQ3PCRdU09KQksibjl5LD1LbzpNcSx4Z2Z6TFtWK29vTn4mNUV9JjdidShvJko/QV9nRlJadW44UmtlKFRiNUtldkQqI2VeMG9hP1Ivcl1XW3w/N0QlL1MrRn5IbGdrQyVbejN1QDZ5VWxSWnAxWzdgLDEqNHhoSnR8Rm4lUjBjLjpDfVVETSNxc0Yy'@; put 'U2pme2JvLkhlMXVKMUZlTip3O0BncmlLa144P0RbaDFpdD0lN0EsW31rYmwuZSoven0+T2BtNixPYDJQVSZ1fk4rRVcueH1ZXzYydHYqYXMlM0ZhPSxDYUJpeHhWOGV6VlFrISlDQUNfN0QjJD1JW1Q/dy5RT2l0fT5kUldfV2Z4NkxEc1RbV3huXU15S3NTc19NQERPe0AiOmZyLFFZbEpHWXJe'@; put 'JCRmM31GR3B8LnIyQWsoVCRQbUFoLENwTjNbKyt8ZlolUUdHUH5sdl42ezglJU1YdXR5T2V3cnosTCJTTFtMSWNCRCkmXj03Ty9oPyMmRFZDL3FlMVI0MyN9d2NgSGl3UVdIfWNIPFh9aUR8ZWVxXl4vJEgrS0pDVlBjez95dVBfbjR2aHl1YXRWS0tUIzN3Wk0rMUh7UG0kY1swank8a2E6OWp0'@; put 'U0M3ZChydVkjWUVwfF8iTHt4XlV2MUMoTUcmLnFFeSw6WUosdUtnQWJAMWBSM19lS35ITSope1Fiez8/LiVwakU1MzxhZ2heam90K0FWaWtbbmR9WkIpfHJAV1siMCI4dm1nc2dQW3pZRjosQkRra05sKj0zeFZRSl04ZyZUIl9wVE1+PGdfKzhdUU9ecEQmPFFtM2E4KnRtZXQ/azA5WjFIY3Z5'@; put 'ZjBIPEElYDI2PEVDSExRflJrWH1QKTh4QlBAMT44S0goJkpue0JJc2FIdTZpYTMwMXJxWjFfMCp2RzkpXiZQO1VVcmg5TElOaFlZJkBRK043Mkw8by9Cb3ZpPX08NGxpRTJHZ1VFS05MTWVGdGx2SXIzV2Y0UGJTMkY1I2VjUENwcyRgOzJsYk9dRSE5ZlI/OnArS29SYDoxMUUmXy4wcTE2bHxv'@; put 'TkljdituLEt4TEwxR2c/KktqKHhXTF5kaFM5M3Y+QEQjYjFrdz46LFVCQElRUUBxZ1I4XjJbfmI2LyRvcEZkfDs1QnIsbUR1bU5SO3ErRHJIQ1s2PlZXUnhsIT5BTEo5fVVqVzBndXl+I2xgQWwmOF42JCFPPmxzVHl8MGo2OE97Vlk8OEhjRV55S1o/cjdQT3hWSVVzcTR9Sl9jJExdUUxTPFFD'@; put 'WE93I0kjZEE2YFhHR35RO3F5OCYiNURrU2YuI29DfDF1TTpqSX1OOUAzcFh3aHovRE10QWNtUFpkKD0hTlN5Mk9HWjpYTl5QSTZ+QnFPT1c9cmxPVnJLPmdDRUZZYkUidkchSFpVNGljNSU/ei8qKGdFS1JBemdkdV9GPX09TDlkcCheTiRUM10oJGBsU0YvV3tye0BoX1ghSUtoJCRXRE9pXm5l'@; put 'QlU/alBEY1MkUkl1ZlhPW3dsXXZQejtbLkgzPVFdIkFidD5XK1sjfms9SGI8eUc2Vy40b2lTZmh9b3ltdTpffjNCMVFddHk5Wls7cFchRnMla3UpVkVyaFZWWzciXVczfnEwTkwyJTlnbWFadD9pQH00dH4uNjU3czhkKmUvRFJJbWovRUBGbTt1T0hfQyRvXjpmInp0UV9gQyQ7diokSVdFOTxa'@; put 'NDJsdCxbKU0xVWp3Sjw2O1YydCE3aUE0QCRVam5kWWVxLEteKns6bV9pRSZMLGZeKl9gUnYyeUdWRkxMTFRjUXRzNz59ezpWYkgham1BcT1FSCpHa2NTVWB9TEcqVSs+QnNHT0E7fVgzcC89ZlIrOTxDMWgvIzhTR31YMj8pOTozVlovRH03amA1eD5OO2pFeS5hb2A+dkkoZXtUSVRXTmprZ0or'@; put 'dkMyfn4xITBSYUQvNHBjQD9peyI1cWg7Wm92JDRnb2hgNGBVZWFITi8yI0kwUWgyeGUwMW0hYiZbK0xAfVRdOkR1QEJkUTU4eXhNLClhLiFWMHd0PChPKXc9NUtAe342cyRsJnxAKjN8Lk5UQilnbyxuUzZkPnQ3a11qe0QlL3RGajJDLEZmI0NAJTJMKVReLitQbnpraDo4XXJGL08rTy9JblMi'@; put 'X2MjNlBqLkJpQEghWTl0NTlFT2dQayNGfXA6bUVadFUjIlttOzM8UzJIfmEpPDdjO21QSD9NPjY2JTNmYi8/cEUyTzVRL1kxRXVPbU5ZI3R+Z0J4WkNiL3ViPXF4QUExc1JGby96czttP2RxRToqb2w6UCE+VzhgKiMid3NNXXFCN3pAUD1uT11EL0JsKSFJLDc9dWp8RiYpbF4zSmYyRTtYL1Y6'@; put 'd3lWJW1hPCpuOHQrSE86dDJNfFlESmBpSF5KTnIsZ1ImSXtPN3FUM3RSZ0VdZz04ZDVsKDhOWE9KS2I9OSpiRnNgWDNpSXBHbkpzSXh6Qy9RMFF3TF4zRF1GMmJZblRXKjhNWTAraSk4Ij4rdiV9d11xdGFNWFM/LClpczBPeitFWE0sY2NgTCp8JiJSNElEQit8JXovJjFAST9Jd3FSanA/SGN7'@; put 'eUx+bEI9cjA6bnQ2fHNKZ11hRH1LSkQwdUAlWz06S194eFR4MH1ObmRpVEVWZ3s3bHBuXm5OTHlMRTZXeFJiYjdHUlRvV18sZmF4T29zbSReQWg4YnZgZn5TI3dNRkRXbE1LejlRUTo7XVluXl8zV3kmN181PmVzRm9efHdfcTVSKz50IUJ0SzlPeWB2WDIyajx4SVZ9TUR9TUg9cDM+dGRoWkhI'@; put 'TTxFdForbncoLCF1VVtRLHo2P31FfHRKMzs0T2RCe1BLPyJJbzVIV3NZKjxwMz8rKj5aWzRpU2oldl9BcyxMRXUmPnJfSyQ+Z3ldbyJ5PikiczhaMjVFTF9eRzdBWEg3Oy97JSN3SlZSVks3aEBzLHQlMSg1RXtbIURQWlJ3YU0iMy5BIioqIW15b2pRYGJWQmlSNDAzbn5iMl0hU0dHVFdhSGR1'@; put 'cHk6NVZfMnhXVEh1fl4hNjwzM3o4fj8mSlZBPENDe3JSUiw9dFV7ZnJ4Lyk6L0E1dElQYVo7U0pIeyV5ZXYvaDcpSXBsPDVnMVc8LnloU2J+YF5PNSVedS5adGtQcnFhd11+M0doakwqOSE+M2lyRGtFazhAcnNSY0xZTWttSz40fGQ+Jio4YihqUyE6PWFNMjtbQFE7fVJJc2Amb3ZVJUpEa05r'@; put 'Nn1hU10/SF1UaTg6cGQ+KzR3I05ARWckLywsdmVHXlZ6L2ZjQGgpb01yI109Ny5zc2o+VFp0eDl1KjBkXWBUXndgSjwvPGFyRypCPmlJbGd0U3Ewa09jIWY6WWg5eEJFayFOdER9IXIueWtRRHlgPipoJl1sYzN6ImhHT1tQLj5jMGxsbFdsMVQ2aWlXamI4ZlNYY0VdYClvOjp2ZjNBekFTTE1J'@; put 'OX0kOWYxZlVPLy9fWFphPWRjPlNEOSFfWmtGQVFpZllGfjs4RixaamBTQlhJSS5jM29XTTVaIjtZY0p9JktHaVN8MCVGcjFya1dbMGxxfV41UW5xLz5bZEwqPGNsaEdGIkUyKF8ldix3Um8+OU9vdXllclVAXWc3SkVSblB3eGBJNzFbdC9JKHxXd0lbJHd5KEFFdnc/a3tlJDs5aVAySVkxdilO'@; put 'aVJ6dDhBXnpwa0FEJSI4Kkl8P3FhY2UrbHd7bHs/MUB9Tncyb0RsaH5qKSZgcmZMPmY1K3tNTWpnd3ZIT2ZpRH5oWVdQOD8oX1FbQmF7YVpxckIyNjl6fmVTKzBQZmBMLmBvQmV3fC5IYXl0JFhCfmEufXlqTFo4cG9vLDpfXzgwSTtNRCpyJVZ3PDV9T3l1YjcmZHdLRlRVKVJYdklBamlyOVhg'@; put 'b0goKD50ey53QzVqeCQxWixuYF9LRSprWUllWyV3N2hAfm19LjNaLmlKem15YmNIQnl4IVIrOUBeZVhiRy5sbnxgKWhZbUUkdiVsKEJ6MTU9OUReKTx7X3AuKlZnMnF9R0J9fGMqXUFpJE56N2UweV8+Z2BHPz1qPX1pZDs2SjQ0fWVTNzNxemVrYzxLQHlwLF1JRkNLVGopUS5yK29oTV5rdjQp'@; put 'P00sOjVpPWVBM0tpZiVffUd+eVh9XmJ1KzZ4MCZUejl0biJBLGpqYWdUSVFMXlAlJHg3bntNNWpZTWNJNigzVG10RGMyaU9eNVBjSyV+Q2NAUXpuYTB1KEIiWW4uSnEqOzJbdipXeD10L1V1fTUpbGRNL3s8cXV0RWJbNFZ1VH1TOmBfUThUTiw3SzhaQ0k5PS9ONUgpTCt3cUE9cDRULDAzIntd'@; put 'e2RgIzFaViRKUG4qUTNxNUM/fkcpPj1leWl4ej40P3ZuJmooKFopcFl9I0hnbylEfW03Nm9wZFdRMitLRTozdn5NTyRZbGw1Ol0pWUpuSztyUlZsfFghcDc1SSZ9NEdMOl81UCxTK258SW15QDFWe3Vaezs/IilZIUNZXmd+IyE4OVRWSUZGSjYofjF2ektkQExEOkR5WzhKbk9bJWRkODZtJis7'@; put 'QyxTWTopNFcpR3JpRWMqL2RvfkN1PUolMTssL1Q3Qm4pSG9uQilhcHg4V2FfT10vfUB5N1U7Kzd7S18zQ01YbmE/dTFdQ1kxUTFmJl53SyshQEF4Ij5eRER6Rk83SWl4JmR1PCtheS5lUD51JXdUd0YkczZJOE9WNnVGaUlNL2ciVTQ5Ojg5LkF2bjsjXX1DOnVSYy55fU9AYWdGUz4oMHtTZ3Bb'@; put 'OV92QD1BQk0yIlIhKkRUfFtrZHkrSmpaN2FBYCxreUssQEdBQksubCVMT0MhTWoleVJyWk06QlIwUmhjYCg8eV9vPzA0ZG12VUZaYzg3VXQ4V3N4JEBXQWJoaTZsViJYVGkuZ0wqQ1cuXzUjR3c5PnslTzJAdEMlVXxZdHQ1aXU3e2dTaE41ZktOYDMuXVlrP0xzPm91Pip5WCtLfGBOejJdV2Zl'@; put 'b1o+bSt6TUA0OzpIaF5vVypfNlE5dDxnNCFJW3YvKyFUMDsuSUNYZFhjJmA2VFswQnpVSHV2XXEsQF0lZChYV2NUSzJ4RyhVcUdUKD5DS3NhMWVDMXtSbC5nYzQwQHI3STlQTHJmNWZkY21zIlM0PlJrQDVTSHtfV0clPmh8MCxfITlRKXV9Y2Ujaj55W31GY3NkK2JwMkNkSEc3I0xvcmZCI1dY'@; put 'UW8odSZOcn5gZ18heSJNdlt9UmdoNlc6W249KjRvZjd1bWVGNGVdbzUqVX5SKkpnXXJKPjh7ZDlMcSxMS3xiVmNHTmcwWlY0ejptWzhVZ1AveiE+NXwwcTlrX1BILmokRFE3bUR9JG5HeUFuaS9kL01gbV8qKFRfKC90OSo5NE50YHN5TUVMRzVjeXZQLElCKnR5MnNBLG9ETjQyQWNWLnw5I3Ry'@; put 'Z1NyPWBTW1RMQ0AyVnRIdlJTPU8zY34qQ04vZEIsbl0zcmRCJDl2SzdGKzBCLFppNXgwbUdoUCgyfmJBZTZBfVNYWjdefH1GSDlYTHdCWnZtYHM/Rkp1LDp9M3F1cEw5Im5DW0QkflI/bW84aD5RbmpnSWRwQCNzK2pEI2RkaC59VVNJUS5ZaC84STMsNTZNWFdNI0hgeiFGUmV0LCpsYSEkIn15'@; put 'Nk9EN3F4IzhXOncoZXs5byNyPzsqYyVqaiJlfDhQdlBAOGJoNmRXLGR6Sm9dU29lMGImMDYxaHNtLHk+TV89dXx6OSpZI2t+aVJLOChUdFd5XSkvIkBvUFgxPCx5fn4ycVZTYUlAKDlmfTpTJjd5ZUlQfHYqLjU1MnVqdCVWTzxGKnxyTlM4cWM6empCQHVbZkdXdCxiPV81ckZEeDBRW3dKcVhF'@; put 'PW4rVCR8TFdNKUB4ZjMhaHpJNCk+REMoPVloTW9WTEY8XzRyYVo5MD5fbWhPVlVOOlNOemdNLkBwZF5FVXh2JVZqL1k5QzZhYTR+Wm9gdigvN3xEbiN6YC99Q3NEI2h0RTkqS09TTj9GODA5MzhJOkZ1IVl3UWIrNXZjRGNwYn5yel82OyVOfXU/LG4zQkJVVCkoJHZGc1RBcEpNVkR8MmZzIXgo'@; put 'Vj8wSjBAancjamFsYWYrMSZgbm9xSU09d19Xd0NBPTFEP1IpKTRRQEM/PDUxJCgqRElNYjNWOVZWdHBmNihSTWF1UUJ2dyh1XX01VmZRI2tJYyJIT0oqTz5LbVZMbEJbO0lRb1pkMz1uTT12Xmd6MEVhKyx+bzFPJmwwUWpLT0Rvd3tMNCpoUytEJk59I3lJRHYjQD1FSUUzaiQwM0A+ej07Zikl'@; put 'WzROd3trMH15JFlzVEg7eSptIjRhM1U9Ri9IfFpaSVBEYk8ifSNuMVpgbEV4QGQ2c3tAKTEpczU9fjdla25mfTgrSExnZnB5SkUpSkA1fEhmNHMoIWx+UXRMdWhARzc4KzV7KkxmMGI9UnIxL1R4RyIxMWtATjFbVy4jOkspN3o9bWJ6dVYmZ2RYRTM0OFdnZlVbPXZ3MEgyeHMmU2U2VEk8TTtV'@; put 'X10vL1gvMV9YelJwSUxhUlBXbX1bYXZCQk9qIiZbeXViMTUsL0k3aFA+TjtoNihSJkJCPHphKV9QNVNDJSw8X181cXkoYEt6PzMlRHhFNlYuPHNOWjgkNUZ7SGNdMWQzam9lYHFtQ1ArMldkJiYmOWd+V2ZsI09IVHEiIiRacWZDZHNja04iQSxpSnNlIW1pIXFYM040X0xWa3lzW05ZQzpUe2sr'@; put 'Kz56QDdyTldaVTlDPjhQOWpSZz1dVEA3QT1CS0xvTVIwTGFAQ0cjQGZhTVJqaHJsdUp7QCNRdXc7NiVzdk13Qm4uZUpVNzpsZTwycGxofVVpTC9MIW95cTxESk8qRDNIUUhmMkcxSy56P3AmeFAwSE9vcGc7Lil3U3h3TyxraGduQD08cUc8X25lfDU0OkdjbyooZUFEWVAyJVRTR0x+fn5TaVl2'@; put 'eXVKOjFJJklvKVI2UWIxZVZzfWg3I25EI3tSbTluW3MwMn19KGI4eWdDV0sydFp0bXwrMDVaNnBld3RuT30/bGR7RH1mMVd6TltfRG4jUWMhKm5gdmQ1Mj13PXY7LyEiNHAkQ09iWn1NZnclcWReRWY2fU1ZImY7JnYjJn1mXjQybXgqKV9mVXkud2k1Om9BayQ/MkUybC9wdjYzOihxPEBwRHFf'@; put 'dSNeZitjSklRfDlWMTo1Xk04TmRReHB9T218SiNMbTAsenAzKyhSYzJJbkJGXl53P1Miel14YSx0NVNSPV5VRmJQMmolRV9dK2RzKzIlVzFoPDo2TXJdSndFdSR4eiNAeUZXeXV8PDN2RCRiNmN6SFlsL0grWClzRUtdNDdNNi94YTxnWz9SQzBWSzlzTlt9RzIubSNCWV8vc31gby5aYXYuZk1g'@; put 'K019UlBaNjF2T0wqN144WUN7Syx5WTVIU2YhcXlxL3RYWi9CbSJfKCljV0VXe15CSTxSY3hQKyREbSFiUn0sJVgoMVs4YlBYM040OGJzU0YzanE5RFkubzt4MkFQZiE5WUJZfUhGSGNEVEBFL05HfEgyNnQ3MGJ9KTFbOW5zTWp5SmJ7dGlYcVo4SHMjYHsvdm0sN0RUQldIK1pJWCg8U1JNUWBO'@; put 'P3lDOTd9OTRQUztaNVEpaiFiIjBBXXdQSzNGbU5tSm0oUEBMNlI9WTRSKW4+S3dwI3o6YG4kUzlTSkNPaDFlUzhKNjxCTT8iZ0lMej8rP0BLOzFkeFJtO0RZN0svSChhfGFETWd1LFNmNyFZZ2lyTisxSExHb2NYQFpbYUIjRVU5cTV7VUAoTWM+eTZFbSU1cX4/IzdxckNbSzMsaTUjWywyYWt4'@; put 'UjtecnA4TF0mRj0qfEJkOl1DR1RTNkNDK3QyRlY1ZlFxIUYsek1dNSxBM2ArYEUlVElWVlIjL1VlPiNAPWFFfClxMnJzNz15a151ZFhaUlJ4XiRwJnNoOjgqTFUyK3tEKThFRWVlQzxiVUhvW1dDbWV3PGJSQ2whVCNZNlBQIykxZXh2K0doLm5bYEU5TSlya15lQDM8cnAkTk9OMylpOFo+MUhv'@; put 'JTNLM3pvJVE/d3huN1g8WXRmS1VMI09yeixVSWJTInd0NTBiL28uJFdaRC5QWi9bKCo5Kih5bW0mW0lsUmM4KF0yUlpie3FCKT94dkQmLEs1MGhMTGJGWT5rX19TVlEhSCpKVStUeyQ0T2RHWnJ4TFhddW93fGllWDluQD5HN10rbFQie3tfNmJDT1VMQn5rOk5Cdl9aO0ZGSl03dC5xLi5aJkFq'@; put 'SSJRRFZvYWEpfGQxNmJFaywjfTdlWmVTJSE6JnRrUVgpfVM5Z0FKMVNtOFhzNnNfXjY3ITx5SSJdfl89KkBeYDopXmIxUnNXOSV1JFcxdEheWHJiNGhGYDBubDh4O3IrK1B3Wj1gOnM/Q1JxQzh+QmsybktEVFZnXzo3QW4zQHc+ZD8lSTN7OllMYShBZXJkRiFWYi51SXRfe040UmFpeSshfWx8'@; put 'YUhMTX5zVDtNKmdbPmFQe3h+STwoc1Z0SD5+WixqRD55WW9CcnNnek4lbylTYUZJXmlaaGQ1NjMzdy5fI0w6P3ZRI041ekR9cFEwR0JpXlJXU0Y7bHZTJG8hLGFTTy9nfnA9P2R5KDg/V1pnU0p6Jjk9fGV6MGRTYSgvJTJvOn1kO1lQUlFsa3RWc0lMWkliXXd6V0w5PldAVUlgLntNcEdrVU83'@; put 'SE1IJU87fTIqTSFMa1FkJHhuUzA8RXB8UX4ve2xlSm5iaEU9N1AvUjosLEo7TU1GVztKMTVgIVAjQGljOEZNUENPdTwoXlZBV3IoW0Ake04pY29+Ljp3Qn5ZP0o0bmo+N0sjYDsuW1RlNyZvdGw+QHBmJiF8cktGdSRjNkFHZVYyK3ZUSHh+enl4IVp2fjFZPWwxM0dufit6SH48b1U2VjU2c3F9'@; put 'SjwrWngrZnNrMiliKEY/Sl8mb01uOjFRMk0rVzBrNUtmRTYxKTBBIjRNIkMvS3E6VSQ/aF4oUFMldXAuYG90VCxGRj84VX5fVGZASnFKNVB5VDU2O1V4Mj57ZiVRVihDeTNyVjpiI3hfJU9MV2dRSEBJaFVqITJBJSZzRXEqdypjX0paTGJqRnckbkFPNFQhTWd5bigjcDdFSU1QZzUyWFcqMD1d'@; put 'ISY4W3FPeX5gOGBvTEIhVyo7dGZITTduUF4zIVYxaHFkI2FAWndfbSF8by9sOHB1Y3JYR3pAK0lgaUguNEBiMXthYDAuZjhtbmopQFk7V2s7W2RZRDFfbW8+PVkhM1hEIyR7JFI2W3N9aWRuQmtDW2osVEEkKWZBQEE0X0s0YXdDJCZpcUwuajwqZE1vQHA0JTUwVTBoSkhsLENrfUFwSXBAdHA0'@; put 'MldmVUYkKG0odCo0ZClUOSxqTUcwP1JmdnBkZzZxajorJkU3P3MzRH4+I1o7bSJ9WmpMP0VhdUhSQXgyZHF1dmVrfXhjJkBIMEY5S1ZRXV1pcktEUzAiWitMWXFuOGxzYUtGMylsOzwjKlNhWGphTSUuVDJBUEhYTWp7S0lhajdNXWAySC5QSDRyYkFtVDQjeEUrSHBtM3tAWHtnZHczUjJfNFFl'@; put 'd2xfUjV2Q21kRTdMPVojYCwzcyppSTw2MS8+QmU4ZUpoSz5ldmd7Z0VYbk1TRHgyTUNkb01ZMzlEIVdHIXltOGAuYEA/d3E6e0tlZUt5QnhkSiNwODt2Y1s5K2osImdONWhPZ3x1QHtAMHFMQ1E4WlRPRGlyXjVpMz5ESzVELHdiTGBpalE5cVVATVIqNkR7LEN4YyQhfTVXOF0sSD5ieXlBfVlU'@; put 'OUY6Pz9Ta2Q2Ry5taHAhbEheajxsXz9FS2ZrODJlUWdeM3pxQlJ9ZUp0WSt6W213Uik1T2kwTWNBYUFZNz1AdGgrMTN3ejpwR1AqMD5pTnxxcXxpRmlyaklqV2lqYlczSShAJHImZH1eQ2VbL081M0BTXkZyQUU2VGBtJEw1JjFaQkVCIiteNk1iKV97UV93PnY7R2xDKWdDZSJ2cS97R1pyNVVt'@; put 'PT9JdHx6UWw4TUNdZl0vYz94fWJ9LzZ8Nk9wTnk4bGFYWm4yPlUreyxdbFBFX18oL01MSj9Jb2ZeJXJHMWYrNG89cj84OSFQK052ekhiO1NOczpbKHNfJFMzOUtxb0dCaHVdNXc+UVBvenZhXjIoOVUoTEpJJCE/QjpuempTfXU7dil+TXRWeVtjQ0o3OmJuT0svanB8dCNjcTdoL0ZyLDssdGZo'@; put 'JlY5SEQwMk9taC9oI31rXz14bEt4bS9UcUBCYCRFdmttYDMjayZYeDtRW0M6XiN2LFAmanFHNS9CMFp1V28/IUJaaGwpeiZVUCEiPnlkb0F6Yn14dHkzLC9VfDoxQS5UMT1fVlBrdVdhJFdRQ1JKY21TOWxlOiVdZzxHODhSd2NIbVR9VVlQcT1YSGlBaig/TCNhdXl3UUVePU53VEh7Ik0uY3N2'@; put 'dllaV0xzdWM9RS5FIUxdeDNESXlqRjx6ZUNhejV7NnQ9IVNHT1RlYHFONUA3PC4lMTZKcC9HZV5fK2whZGJ8eHNxKXt9JVJqaHc9MyYrIV1AbDBmbGV8IT06SHxxbyQieVYsSyJVViJuX2Z5dSo8THJ4dVAyWjBwYHF9VT5qaEwwcHIzaHx5d3liR2pnYX0hTTgybkhHa286Ti56KTRLaipgc3Ix'@; put 'eilMM1U5X297VX0jPCV3SFM6dExzOE02PV0pZTxubCsqcVtpZStzXmYwb1dAMzY/JXlGZF1eUlI+QT4lfjpGN2EhSDdiOD52ZVJofDJjLHIhci9IMjAlaF13S0lGREw+ciNqMVUueUxmRWJgOU00WUMyUHJUQGl3S0IkdSZYUF48JlpsMFJXNnZkVUE3Q3xtdDwoVyNhfj9UX21yRnkqUmp1d25r'@; put 'WTBCQEMlJl9kLithWGw5WUU9JlhtPS89Sm5EXXBAMDFJKkAwWio+V3cqMForQCxndzBrSjw1ZStIIkIiWX51OHQ+My5CdH5XTyohN3ozYD57fC9gaSV1RD1TI3x+JnYsJHk4TjBVVFpDM2w9OC5ub042PiNAXmVrOnFDdUBIRFdEd30iS1pfN1Yuek5eN31jJkNhTDFLalhoSTBIQzk3cnwzPG50'@; put 'fXVSfHNVa1VrJkZUWEIhUXYhRCsxMVB5YTdRKlFiTy89TzUqbSxAfTI5MEUxU3AyQGlgREJGUDdMWntwNTh+aT9jNWwrVD87YnlhSihVe1p9N1AzY3MkNSs0NSkmeE46Y2NKSWttM1BvJHxEMyNGNEF+VDErSmxdPnZoJCFwSnJyJD1uITwxVmtnNnV1andOMXM9d15QaEhsdzpreU9pQ3syVUZ5'@; put 'e0o7S05tRipNekE7VT9qdDp2JmwqT1lzZHZMUnU9WzExMUJqWElKaW4sZCFXe1UsV1thY0A4U18vPXd4ZDUzInlONzsjRmNfVVB5M1czYiNZMCswOlY/IXM1bldOSFFCOnU4Q25PUTUxPVVoKHpJXmRCckVhOD48VmRDRjV6SWtmXj0hUT1+bVskUWwvbVRafkwyMU1Pa0lbYnQzbkJrOlVjUVZK'@; put 'WWoqYlY6T3FGYz9YKkNUR1FJJVVZdmBwPjBILzdUenFnS2VpM1BAUFtmXyQ5PlEod299S3tTZjleYTdKMHBWRFhjaisyMCI5WzFYMjVhWHFwV21rNntBMFQyZWVSZFdoalZuXkBFbzZ0fj0jOmdIRj1GJTNhMitbUEVrRVo4RmBvYHA0fF95QyRJNlc+OjZ5aiRTSmVvWiYscnsyUUNSLiw2WCxC'@; put 'IntkfjJ0JWtdcnVAXl8uZ10hJjYza21JQUdfUGVUc24kL0VsTnN4LzNEYy5dQGpAU0VrI1hfLiZVSCgqWS4xfSRncEVGMShxYGhob2o7aSo/a1hQKzNKa0RKQDooXWVzNFJWXmBLYn1jdWc/NSRQNT5MbEU6dGx5WmQzTGdnTSw2KzlLalUuT3FqNmElVWdtcH1ONjc1WHc2S29aTW5ba3xqdjVQ'@; put 'Imhtc0k+bXxnT3RIWnJFZ3JmVHhLTnkqN1tmW21fVF9hR2ZiUCMuMiF7PXcsXytLcyRvRSFgejt3YC4xJDBwWj9NfUdZXztoc3dxKyQ0dmM/am10LyZyOmYlUnorcFEoMVVQN1U8QWEjQ3dKWGAwUTtTWV97MyQsPGk5L2tYeCRRYF9YLm9VelU8N1FtOm1UN0YqZWtwS1BKJCNqa3AlJnh1Jng0'@; put 'RHUmUUY2JSUxUSRpW3ExJU99Lk9+Si9bSzdEayFhIlgzSnc0PDtTeUtmeXZCJEBqZ2R1VVtCZnRsOHk9YWNvNnxYMFpjd0hadytEV09faE14dmdwRGpFOllOPzE0PEB0OkchXU5TN1ZRfTlLSGgqLDkqKiN1fEU+YF9eS1V1YEdhMl49Lmc6b2tXSCZKNWdPNlglXSpiZntxX0FNMUt9XVB9PDZH'@; put 'Ol5AWk1tO35tRXN+PjBRbzV4UlY1azJ6Rm9kfVksa3l5P1M9OWNGIixpLnVYVX1AfXhFWHd4bkMzPE4vN0RRXitGW1J6KmlgeEpESXl7ci5WeWRzMF5EWk5vPUdLPCYkREtrQTBSNSRdbHZOTHdackllPigoVURPdEV2dk9gJTUjVSE+Vm5lL2dHX2cvRE0jaGFXKmU6fE43SnpLIVZVeTBhT0pu'@; put 'SEI/NCopWmRoMnFEfj55I0Y9Y2RDRmJjbDBOalBjNnVBaERKL0JIWy5mcCRGTEcrU0UvIXYoMnF7dyg6fjBfLlVhXy4zPU80YE5UKCw6fDNjJXVVZiUyOF5VfGBLeCkiIk0zQHgvdWhgb0RkeGRqY3xicCoqKjFRfDx3LHxAUilqfEZ5YXx2NXZ7dnRUeE5HM040bzltdi9IYnJ0ej45Wj4qPjZ7'@; put 'YSMxTzN1c08kcyRoW0RGbz00TGdjUE9NbS9IaH5yOCV8VFBwNGJXe1UpK1t2Rmd4JStXWVg6MFI3dFI5P3AsJj5zUTZxUU0uWnwuLCo3Pmt1KEMwUlRqeCM/PCtOWH5OIiZ4KyRxXVRUMEg3KT1OOCQwJnBQO3NuTWNudmciO30pcEhKem12bnNzPSkjVWldTmFkfDB6JlRJQ2t6Ti9RdyQ6WzNA'@; put 'fmVQZnlPIUlkdUUqLlldZWxfeEgsIXdLLjI6NGBSOEdSY1VBU3JwcT5uXyNtXkBZWSJRcSgwNDtZVE8zc3wifHcvRz9mUVpvc258fFYjeSVnP2JXZitHc1JHWVQ4MTZ0ZCgqbklsMCglaV5QX3NxVTUrTXRdO09VRis3TT02OSlLaT41KEE3O2ZSa34sdV1oTVtsakN3UUo1SDZtcnh4SnQkUCZ6'@; put 'c2pqJlA9VXAjI0xlcytge1t5WCR1Y2UkRDhKZEArem5tfTE4REdJaD52cXswKUdfVWVmP1hafVZtaDJFQUtOeGEseGZnZToxSTtlfGlpSGdwd1BlaXd3ak5fajk7M2Q5QG95eEl5UHBWNV9Qb1opeFA2LGlvXjR1eUZEOyFtWT9kZ185Yl5ISFJoaTBZUiVhLzk/NyN5ZzBfYms/UEJPT2hLSVFG'@; put 'WVZHKEhSbEl3YmEmJVR0SDY/S0gqayQvaUooKDozMHFWJik9W01CQjg1a1BgbEpsNWN2KCNTOj9oRn48L25lPkgvcSJNcEJqRn1IPkI8KypafH0lRkFKJE0oI2VVTXtBJVBoJEtDPX49fHRGNnRETnlfTkk6SEN2aE9sWi5KMiImcEJSeVlJfChxVlNBb0UxXVJrQ3R5bkwhUnl5OlV6NSglL1l3'@; put 'YkZyW2hLOmhyXXZvUkB2bzFhKSw7MEpTSkcmL0p4eiNjN3E2NFg6YFEpRWlqYD1FU2N4XUJjem5dRTN3Yz4iLFNJcy5WXihAdlRRfD09WD9MSVNtYXkhVSE7MlJ0VWEwNiYyWD9fRHw3dmlFVE02OGtdZUhuJWl5X3Q3Vj9QT2RLVWU7aiFrZ2FnRnFWd2NYNWZqMjtEOiIiNk88NmdGKiY6c1Zr'@; put 'QH1ge1M3MWFmTmxbTFlfKUN7b04wZ2JdIW9TcXg+Rm8lbz5XTj5jQlZpTTlPRyRSa3IzeXhwZzU/dD41ZV87fVZ5NXlLZkNoWVJGRDZVSWhHZF9MNnJpYVlyWTRPSCo2V1hWS2doNE4sRmhgMXxTRTJ8UT1TUTRRVz5GcS4lMEVvTT0oamosaWNLWzNuKDZyPG15YHVbPzclQXN4O3ldZT4mRHR3'@; put 'aWNVMGw3XiQydzJRSTJVN1JMXylTY00jbWQ1PiJGPUYxRW03bGkwSkdhZ0xkZmBFeFNGVkk/VDBdPEtYWzF6RGk7Yio0NC8zVixlfU16JTB9cTRlcXtYJH45TXlJLkxnTWV2dzo5SHtwM1YyW0ljRzNFOVQvNEhmJD5PblE7dlUkWX1EZTQpRUV1SlAyVTV8Sz1WO2A5SClBTU83MmhHOjI8YiRf'@; put 'SjE6VU9jUVd5OHZ8KndCLFMpU3E6TiVqNmQmZEo9YXQ+Jno/dnEuYl5qOVM3I2oseGdJfVVeRzdMc3osenRjRCw2KjpvWFYwKi8sU1FSLnxxW1ZBW2lJWnkvajImTiRze245IS5PUW1lTjYxSVhsWCxxa0V1bEBQP3g7eSlNQ2FqfX5VVmF0SDZ0KTUvVnlLVDplMHpMWTgsTzsyaDZYZF5mUUs7'@; put 'JHlYWlU2NjosbmllYSNZKUBDPU8+Vk9UckxQWUhUNDh2X3huOll5ZGJiK3BiXzhrL0ZUOTt5biRHMi4sW3xbVk5IRl5fLi4lU0JwdU0kZUs3LzMwTTMmPztnUnIuV1ZLQkMxdT8kPWkjPWc3NlEhPC9pLns3cl1JUEY/QUBISmxPPSFWb2tIOiF5bmE+PiNNIyEhM11nKzVPeVN5MEVFNFpjT000'@; put 'cEJzM0Jldj9MPzYkZDJ7MVZuOmB1aEpKJH5dUDdDa0M7U2UuekJ+Rm1LSXd6JkcycHJPKTJ0e0t0KSVbQUNjRUlRb1F8Ty8vcFBjPHZ3ajJQJTJnITRlJFgmXy89c2kxX0dmMDptREJ2RCZNVSt2LHlqQnJzTV1SRHRkNkYsVWBnc28mfCRWUDp+NlhsN2ZDelpRNzNTWEM0STUqbyJDZmQ0amZU'@; put 'OHZESH5Nc19nczNQamouYmIqZnhVfD19aXE+X0YmfCQrfHB4S3NDeX5BMVlCRE9USUIpSzs0Y3heTDhQWF1ReFB5fktNfSlpXUk2dlFCKiVNcmw4WCo9T0RFTXQzVkUhUGRaWCxjWW9qZHx6O2wpZ1s0WTp5ODg6T2Jve1U3MC9ONHs+bTksT0E2XjNTKFI9a0Y6SE12bmB2OVlaPVdgKG1RYSZ4'@; put 'P3FEPS4wVGMraFVJK1plS3AwTERHbT5dSCU/aE5mVlsvcm1WKEFpPSFEPF8hZUNlXj19ZmI2S3hbem46YXckZkJ+IUNYZSYkI3V6eW5iSWU/JF9MI25TfjBVQHdieV9KZ25PW3FeazRscXglS15qaEEqcDd1WGFbIzdsMCVnO2N4LGZJZlV2ejdbYEJ9d2tMcTs5VmJeO0pjaXdCeit4eCg+YzQu'@; put 'NGMxXyhmX1I2bmk0Wi9WKkBMRT5zYn4pP0Z8UXcyL3lMNzpJdFpiRTJJNikiaUI+fF5iaUAzKTBicXIvIzdtSzF3SSpjYXVrZzIxfkdAb2ZmRXA2Mm5jRyhNdS9MUyJdciUoXzw6YXQiOGQ2Q2lfbFlgOTUzfT1ibHlzS2gvTlJscjt1T0hlZTM3ai8rVzU/JVc3Sil+LEZhfFZ4dT1XW0F4Oltz'@; put 'RVE0aToreXdEeE4jaHghfmpkbFliWEpmQ35yfn4pcCZiTWlESkFkM31jWTxPPm0qRXBIZCE4fj9UOFpXeFJzWi5JclZ7NTpgREFsPGt3RCUoUlE9JjEvfTosLGFpN0N5JGpMJEtFejVmNShFRj8qQCJsUDtCb29kNnc2bSh7QCtpS3tnRmk6QlN1KWEuInNKZyhYKDRxJjJjYUJ5VUkzWixCWEtX'@; put 'KkxwbWMrZjdVJDI5andJail4QyZpQz19NUluQj1CU0NoXT5GL1JdK1VJVT13cyEscWcmJj9Nd15YUW5XUHl6LyQ1fltJd04oVXt+bTsuSkZCK0B0RX5XIXMsR3A4c2hKMj1aOSlkdntUOFtkVGd6QCFdayp8TFlfS3ZtXXF1PzliaWkrX0crW0R1VT8oSXd9XU9yakFSOl4xcGN6aHtIbEZnPTBl'@; put 'IWliNVk8KTwwITRgNkJbeHs2UzNPZk1MRFk+I0txQXFWc3dNRmZaMWJWSGopZSR6aE1dezFLQVBWWVs8Mlpaalk+K3JkQisoVnI4OHJ2MyNhRFB5SktVOWZkV1s0XTxKWjh6LldyQyZLO3d5NFRuTjZhdWpbdDBAMVRKc3EzKWBXT1hRbHhdbzVGNkIqK1B2fkdhTzNQNVZwWyNjZjZvT1okU2Aq'@; put 'KEEjNmolS357QSFvMHwuS2h7I2pVYldsaHVFb1ppTEhbXSsmXi53fEd5YnhNeFo5TSFXfVhSfk08fnEkIWNeOmxJaTozdCJEPUpzOX4rMkx8Nn1nYGM7Q1pYS2xlVDdXb1cqRlRhJH02O1s3cj5BYXBeVylRO3NnJWQlJX1Yb3Y7VjQpWkxeNEJBcEd6enRBMlN5P2h+R1g8VWdfMCRyRVhsTFFy'@; put 'eUErSTVKTjNtYmA8V3tIdUQkdUd6YWttWFhvcSI9Vjx9STYqU2NZTz5PI2dyeHZoTDQidWRqKH1qYXBmST12WSF1aHheJXswYkBdTEZIfGFFJEt0fHxMUkdzTDJdPTBYSihuWS81ayt3KzVsWX5SQXJCOltiIjJMdzdgdD0meypsTEckRjFOZFplUnJjRztde0VfQ2pEdjRdb2xzZFpVZUB1Kj5t'@; put 'VUdddX19XUQ+OF4lVkI4ZnleaWFuISs1ampFNHszRCRfe3pRMVlRT3heNVVwdGU5e21kaGlTP1RXT0Q0IUVSeHMuXi95PCo2L3opfCxDZSwvYXEmKSNvd3V8Uk8lWD06bDFkaX5zO100MChzVkg+dz1ddV00Zis3SXloSTVBc0lZPVI9UXQlKVdrO0lvMD9WZDFqIlkwbzF7I2VnMzljV3dXOlRg'@; put 'Sk5kW0dgJE4rKjF7UWxjKkxrNl1MQlE0aSp+PHJqOUxsc1l8L3koTUZVYl53TVddOTNyNU4ySz8+ImYrRVdxRXcpeyY9cVsqfi8mbjYsejZAeStVTWxyLmV0NC46I25TVyYzX2kkOUU4XjRJKk8jQGRea2wjT0ttdjo5Rj11UmlYUF52I3RVOFpwSDNzODhmUGpDQSZwfSYrVD9tbz5FMkNMfWw0'@; put 'MEtIWkU5d09tX05KLGRBJUtROk90c3gsWilYbCtHMWlrTWVMJF9TcWgjSDtKIXlJVmgmUWkzKzEpRGx1OHZFYiZwJk8jPiFNdn4oNDY9UkMjI3NQWE55MzxISkoxYVglNGBhTEg6ZGNOXiQ6XVE5VSliPFlYKU8+fXV7YzhVdDYqMWh5I2U3fTgrVXpfUkNVaElqb0slYztoaUgmMXNAZn54QjhS'@; put 'LlN4VG9lVEpwb3FHdWZSMS90L1M8WGouIzZMT1lVQ3lAOl5rX3JHcFdSKGJ5bzZtemQ8Ims9aXo3QUNXNV9fRGpkIXh1KG5oNVREZDk4Rm9XTHl5al5+PFpdMXxMLHAzY3siRUVtKUJrWUpkJnNATn4uaSYlcz06QS4yQWUyMl1ZRkZ+dV84WzpUTFtnc1NeRSpaRj07M1FddUgpOS9XZUdEe0M8'@; put 'OWlPcDI6SHMlYFNJWXtZKHVYb0kqPTskNjx2cG9TPUxQWS51K1tjMWdLOzU7IlcsWXJwJHUpSXV0VCI5b0QrXmdeMEVQbXVOPS9dJVJ4OjRva00/NF1DajMxP21mQnNRPlhrOi9GO1BULktjZjJGO1l9XjAzdm1BLElzbjJZN3AzLGFMfEJzL3l7TFFsPC5kVTojbWZKSXJCUVV8am5WYnkwIUko'@; put 'SEhpfkgwPkcqZEc0JEd7a1ohaTxsUnZSNnN8e2xqREUoIik8QEo6eG1XUGFNNilHeVR4T05OOE9rOWc7SDBxbzR1SXAmNjBaenRVeHlya2JbL1ElIU81cXZNTkVvYm0xI29AIyFLUEJvNWRDO3tDRTBLbUNSKlgqQEQmVXU7NEpmbX5ZdyswUkMpQmp4LFdsX0lmLyhbIXc3WEZ2Zj9rSkRMMVJL'@; put 'Yk57JnQ6NkIzaU5VWHtgdUwwWmRBYipEOzZFTUBBJHx4TnBBVnxvWkJLKXQ1bFplZkJNemUwc0ltdCpCLHVtWSFjW14mMy8/dDZpYypFZHo+d2IpUFRAZnVsWzhGdWtIV2ZEJC8jQklFUH0wMWdbNjdxckd0Ri8xZmdBcU5nY0taMlRGQCJ7dVdTVkpXPC51VVRkP1RYIW88b3FfUmtpclJnSXgu'@; put 'ZkVjaFohMjAkVXs/QTIjPzZ3bWV9K015RVNhcCg7UjVkMnMvTHhJbzBIekkhZS4jSFNsTktaM2MhIn12XXl2LyVuOmllelBEPCRvdkkufDMmNnQvPEEsKWMsL28rO1I0dTQhS2J5OSMyQSx5KjhfMGl9RElbbSFwN18lZnFSQ04xbCVjbGUpPmluQF00OkUvWSZtKEJ8MGwiJUZ0QiM0aEZLYi9g'@; put 'XndUaDpLY0ljcVhEenxLbSMoVkVEUFZ2bC8jVHAlU2MqZCVBbFVZIntebV8qRWljM046NzdOcjVdVC9KZzdaZntAT2RZUDlMM0xOLm15P3FkdEJ3V1hTaHlOWnVMXl8hMUs8OmtNQyFaSiFNUC90cj4lL0Q2YFFGMU9oYyNVRiw/I259Y3hyJWdhdXhacUJML3hfJEdwMENQRkBtdF9ecVFzP25W'@; put 'U2E4KDlzYTh8V31yUzd1e2QwcGA9dl9rNSxEdSokR11vVkJ8KFVgNCo1T0FvOnRVP1swPnV3dVgsSXZVbnx1NlUoPG1pNEJVPUBuJWhkKjFeaEdbSmZSZ218bDs+LzVxckQyfkswcFFAM3RGRyRiP0wrM04wUm1QaS56SDtTUnpgJkRQT2RdaUBXaUE5RyV5UHFZOEBucztVRyVpVHIpP0I1S3Y4'@; put 'KmJuRzYqfU1iczcxMix1UWxhJi9WLlh1OUYjP1l7WXBrK3FUa3tGLi5SWD8/emhZMT5XQklKOEVOLjtNRTIoSz08Qi5+V2MwO3xiLmN4QkM5bmc0eUkqODJHXW9EbFFZVCNKQHV2d3hETFV1NWxALn1rMFR6NEJJbH5+dHF7aks0REwpcmJKUG5MT3JzW1FPVlh8O3c/a3NIeWs6d0NRemtDZUpO'@; put 'VlA7elZwdXpUeG5fN316PVBeWiRdV28lPHJVaV9INEIiaWM8PH0lTHxIOlkzRjRqMzpidUU7OVI1blVYSjpuYmxIKjwjKiIuXkZwUmp4N0V9SGckdkM4IlJKaS5MbnwmMiJjRFVnbCklOkxHTGc/PTowMGp+V2tVXXd4fVE9bTE/QUp5fncoQkFtN3p9WmNCdHFvbz9edGZ1RGVPbnskYS8hcjpZ'@; put 'ZGNZdm9YWmgkbTN6KkZtPiNyb2l2YzpgO3VfaVhpc1ghYE5mNlJAPEBNX2ZMZjQkYj98ODpAdmwzVl14MjBvRmVfLClQS3xyXVFEYn1+NURDW2V9VzR5W01BcjQ4UHNgUll3V2RbfTRvTjVUelQzUyVVeG9fNEIqLGhVVn1pRkpSeGN+Ln1fTGFfUXdNOHxdWEVQM0paLCxMLiEmNG0wT0NGNUw9'@; put 'e2NmcVo8Ql4zKUowTmhyYiptMkNsJDxfRCtJYHM9TilwWWlfbiE9YEEmLmVhZH1mQzRdOV4kbzZESiVnM05fdX03VmxhTShtfl19fV4hOG9PMSg7eW1JN2xibUN7OW5pNDgmXW4+WzBtfSxZNFUsJjQ/bmVQWkY/YUlLIStyPDR8S0U3KE8meiEwWEE/Rn1aZk1HbkVoa15UJT5IPDFiTEdMcCZF'@; put 'RWc6WyRhTE9EKS9yMk9uQFFOWDxZLkFfJSUvJCo3M2NzS2ozL2lBUEJ5PUZtekRRcD5CSU4qX0coW15YYzMvfkVBOVdrKXtTb005Mz8uI09SX0JtM1ppP2J3QnJvOyYzK3J5WmZjfW5Hb2BjcEdMRHQ2OytZdEpmXW80e2cyN2MxM3pPVigoTik8Oz52SUFnW0M9MD9KSjkqWC5mdm18Q31ybE1w'@; put 'MDtOaERpNFlhc3lIX3w2M3czRi9OKDtAJHc/L3UrdUVNeC5YMVB5ST5KTF1DTUNnckRVdCUlK3w1djdsNDB6YXVeKmguTFkqOHlOd1sqPDdudFFAXXFiOSNTKkpJRDVhW1h7SCx2U3h4b30rbz51Skk3S2o0OSF4MzkjeVMoS0JIa19hbVIvTEhQbiR1JUw5NXcwW10rTyJ8SXtpKkVhYUxYR0p4'@; put 'XUNgcUxCQFRdNzQ2ZiNRbSROb3hvVzVLel00LDMmNGtZYW0rfHUiSVFfaTFzS35QfGg3K3tkdXJmPilqSm01JShVXTojTzMocmNRaGVwcTh8PTUpR2lmfDdsVGl5N112JWFrVWF7UW9VdXNqZVpqMl5XbEVsPDwpTHFrRFJxOkN4UFNuPVhgOnx4YmBeSHo/blprPmVDbDEidnBQY1szNVNfWUpC'@; put 'a1NHSntaKnRbaGV9Y3U8JjUwcHpZTlRLeGo1fiRecTUmMiM5TDJFXW06LnNjWDIoUEg7QiYlV0I7N1NaZ31TQGBJd0A7L2IiTE99YHUkP2RDSDByNm1oKjExZW1gSEwhNkAueHldQFhCWSVRWS9FIT5sNjdKXllbPEErUl5kQTAoJiF4V3t6Z1V+YDp0aXVkTSF7e0h7MTt9OVMrPDF6PTM5eXpK'@; put 'MkJSflkiKHQ2S35aS1l9UzxydCJGPHZYLHk9Smppb1toW1FhZHxdJHI0RkpsVFtXajdqUD9DPGgyQlpKKkdUfEJYJTgkPTopTmole11rYEd5aSEsd0YvR0piNDA5MSs6K0RrS1lES2clL1NVSH1zPzFDPWlkeUohTW0jai5EdFVRdXczQTYoOFVhIz94PEFZUC93WTVTcVh2cjx6fE9WayZxIlE0'@; put 'QS9PUHs6KjwqZXpnMCloekZJcyNoe1okKW1xTGFHTnNEUy9XPz9Qe2RMeipuIVVSJElhc3RNa35Zb0oxaUdoRTBJaEA2aDJXZHp9UW95P28kd3pheXsjdFlYUDNJIz9lfSpmfTZfI19XKD9wJWA6PGttZE4lUHYsMGhgZmRkUGxBWFErfmY8IlhrKiN6K0VfXVZjckdaIzw5MWJxJllsRCMlZUsq'@; put 'SiRjSXRmcUxIdF9ub1B0WVswdn1scTZDeFtGZGJTTHA7fUxpLlpbUUp8PSxgc0FPNCYwXWBheiRxeXpEXVtKQj9TLlc6dHhxZ3NFamlJcEZrV2VjZnZ3OyN9Nk1fOV4/QzdoTDh9XVVHNDNfMW0rY0M3clJgTjpuXj5hZmt7MWVqdFpsIWl7aVc1Q3khLjdUZk8kcXJbY09zRmNqLHFtTyp3Pjwz'@; put 'MV5HVEJmfj13PkpfS2EvWTYuQFgye18yc1tTMCg9Jl48PVVQWG5ZTHNgMlgrUVBGIyw3KTBrWDxQLFgzens8e3xwZk15Vyw7X05iaT90Ym07WHc4eSx+U0YwcnMqKj8vSEJnYXJkW0QiP3whVFp+K0R7YEwmW3IyaXxqMS4zKiM9S0I5XVdnalB9fGk+LH47WHtRcHk4YXNfSTZKTiNkaURsaH4k'@; put 'WX4/Vz56e2YlTnNYbWl0PH1ydnkhR1t5I3gwe25bY24oVG02UCNnLD9ma2gvUVdRO3pLaz4mckU1YHY7MjZ8JjhxL1t1dXExNmYoLmNfPmhsb2RabUM3UmZoVCJ5VF49IV9ePUg+OlFTNHRRbnM3NyFSWFkvM1kwUz9ueE1rKyJ6JD1qM3l7KnlRcVZMTzk0WVRnS29sPiZsS0duWWMkJUc3bWt6'@; put 'ZnZjN0l7dX1MdVJNemJuLDovenpPKX1tIkdzSjkqdisqW3cyNiovcmhsISJ8YTYpMDUramlvdDZ0QT5TaThRfllkc09ZJUdxW3puc2tISV1xcVl0aFlGaFNJL0ZPPExtKiRFLnNWfjJdKFV8REpNfj9RcyhSPXBKRCt6WldMN1UmK1pCLCgsOWwmYFRNUio7V0l4OXYzKmM4bzowODVWW3RiSFJK'@; put 'TiUpOCFFdkNJeFpsSj0xeD9pV34hTFV7VHlJOSlbZSorZ2ZNNXw6SWZmdiZJSVtOW1sjVXVAWVQxJTFjSWJ2dWBHXzlLKSI/SVdbV253TzZldSJwb1NEQ0QhIn1FelMhIkR+elpvKFFjdEJaJXkjM0dsKHFDcXMoX3FxK00pY1BYXnYheXxaRVpELldTLHhhM0NkTHl2fCkuP2pVP2tueGRBZnRz'@; put 'TktqJEpHfSJ1ckFueSFuO21EPzQ3ZH5yYns5RWEoMT1+MDBrQ3Vhbi8/KCFeeyY1QUJ2WEw1cT5ybWJ9dHI0an1WS05eNUxyQ3tjRH50bSY8dXlPXXYuYSlXaCJJei5PKUNbZSk3eSZAPFcxZkcld1FZIU4peVcld1hLSz4/OTUxM1VweXJHdlBSKnpdZ1R9UjFrdjFdJGYqdkt5PDtndkQ0UTM1'@; put 'c2o2RnAkK3sjPVYlfilpWzdyIm5JPiQheiVxVVsqNGdTT0VSak9BWT9MMzVqVkVKRnNSMnckWWtYWzpbcnEpMVZzIktjayNNOUxJJmBLcj92THU4QVkqMEQlMC94Qmx3b29teS9NSF1ba3xmMig7cG1IeGo7K3lsRGo5WypIe3k+Vk88UWVBV2V3YCY4P1ZycChaIUspcG8yTHV0SCt6UFZOZX5A'@; put 'T09VIz5AXjI4cXJgQ1JaM01ISC5KMSwoSllpdWJ4MTFATzMjang2Slg8bkQxN30yNyZGOEspPipOKldoTUkkUEhrRmg+PDZJTkN6UHoiMTlQaWx2L3xhfmg6c0M6fC86WXsvdWUzKGxMUkJ6RFozayE7Vlp9aVtraWtLZUB7UytNUENALlZoWHI9TjUiPGZdJEtkT0QmZ2ldOnp1ZDxfMWtjcVB5'@; put 'IXJKcnkoeTdrV1t2fGZTMnQ4Qm1KTFVsd24vNklAREFnNzsqL3lJd0VIalZQbXFdM2UxcENLM0w5WC5idVZ9dzRtVChnJE49UVJ6TiZuQGthRXN4cExhTzhTRjwmOChefFV2YmI/b0lJa05JYVFAKjNMLjQieCxTcUEpKXlTMyE0UEhtLCNpSD9uPGNROGJdLzFkbTRNND0od0pZazNXU1paLHJz'@; put 'bVVWV3hTbWd4UipFdClxOTUpKXlaKkg5MiJfdFk+Pj8rM15mZWFlb1cySGpXfD06LyhrQWIubHxVW0M3P2RlVzJKMGJ+Mz47VntZTEJTSUxDUEptSDtbOjFMQFE7bHBFLCNMNSw9I3lASFRheD8+QFI5Q18qPUc9MUhQQ2dKXWY0MFpIPm8xTVNPVFdJQi4oNUVUOVdaMUZYMEFLT3ouMWNzJn5h'@; put 'UnZGbWFvaXNYNTxQKXwlSVg8QjNhWTFwYUJ5UnB5XX4jfUY4aHNOSFdMVjEsM31AXmh+Wzw9STUmT1NvfU54KX5ENDZbNiZ8UHBpYGxudl8iISw8am1hOTVEYj9WZCpGVVdvNjA2MXx6OkphOCRDPWNEZV1qblV+Lk9TU194KTI8Z0NKJXs/UXUmflkjPWdYO1JYPSR+RT1SNEJ5dDVlTUNTdCNX'@; put 'N0xoPEJKKVVxMCNEcUJRQ31USDdHPiVBIkA0UHxmYWduWl9DZTJdKnVTPyFkejxYOyZSVl4wU11+Nl0yc29MYmxPWCRlK0A6Qz5QNEZ2VW19fFghUTgyZmk+e307QkU2MktVN15kU31Le3kueFgyQCR+SU17aERvNHdNI3g9TExncD9UajlKcyZnU24vSURAYSY8TEdILFIuTmk1XX05LyN2Vylr'@; put 'XV1RNDBiYioxYmllMSEvMXReQXUhbXxfIjpZUjc5Li5NPyRNJEQ8Uy8hMCRxR353PDxOP1REeG1EZitoKjBQOSlNOnheVnYkWCxGXTppbTcvcE5xWyFYQDc0QEUqVy5OempRdTJQUVRyQjl9bDNXSSF0ajdBdGk6XjxbdVM9K1p8OUZgdTZOMHtbI2ZJaXFNLEFRPSJJeGxdISwqKnBoR15vbyti'@; put 'fTVwMiZTa0s0b0ReJCt8emt4aW02Lig0NE5JcGoiQ1chVzdFMDlQXTA9X00kRFtPfD9xJGxIY2txeWR2TWAjN21vXk9bNHdBQ08xY0hvSns/Jj1Vdz0mNjg0NHIoSl5lbnJNS1ZPVV9WUFJFJi5baUQkc1RLST1yR2ovL3dVT1FHcCFYSHBpUmguKXB9Q1JRQ11ubVQmYVJIKiZwRmF5cVpVI0lu'@; put 'Qit3Mj0vLzVkWCxSQGdbYms7JSNwKE5KeTI3TklhKnM6endjfERxfGx5V3BdUXhBPDJ+Lz5SWjwzRHZ9UDtDMFgxK0pvNnFtXltEUWpCPkAkLEBme25sVDtWbExDW3VgSGpCaCY8VEEkcHtNd2tQXzRLLHpAaSNwaiguUHc3M3ReV0BLJi99P0IhKU0iWG5aVGtBNl4+UE03K08iS2ZbZT01MzQm'@; put 'aDVMQDdzPTM7byJCfFBBRTVuXl88REtVWm56NkR6Kl0lcD8xaSE+Q2xMSz15OHcvUzt1QUkzWHNkc3VJeWguYFdyfSg7dlRWW2xkO299QFlVNXEvbVtGXUdNS08iPld8RihDP2oxWFZ6a1VMV2R1KmZTc31GTXFkQX4mb2RYcjZqbSVAfWRZQzlZPz9gRCs/Rlh2ais3UFdndzdaVmEmSCpKUyU+'@; put 'NXRRfWUhT2A1Il1YSTkyUUslbiFEZyJxKz5MVUs8NTNhXVB1NSp5blUxYU04JTZUJGYhXXxwbyldbV9ga1VRQnNAUjZuY0prcSl+PUt1MmMhZXRUI21PNGJ9Qm84fGAjW2VBLyZScC5WQy8jOTQlMWw0az1wdihZPiZGMyVsPEBROTIyKTlLJT8wKldgbl8sTiRMLGFXZDlgYyJgX1lTQkteZEhP'@; put 'Qj9qYWZfekhZYFZJalpEZj4zc3leI2whU3I+UGRKTzlkST5tWnNAUzhWLjspODBMWlcyQWV9VzcxeypsYykwQzJeNzVqRlJlL3UmLn0/VElEaytjIXxATCllKis7d0Vlc2NrTWQyTlFbMlIxRTlCNVpRIkh0ImJmLil0Z2FbWHhSYUZ5fWVWMWpvWi9ob3lYNzl0N3ZVclEqU29oUz4kPno0XVA4'@; put 'O3JEc2NMZXQiSHdtI1FLOnVlcDBrXm16NGR5W2BPJGEzQUR+KShqe3ZQZ3UmVzw0RDpiUy9FIzNdb3R5VlMvWzF8bSxzNFkuUD9HPWBbXjwuRSx4e003bCFYMkEjNVhUZ1Z0OFdHQUFIWjB8WWAobU8qbnBwbnVsNHM4cVllOjlrUiImN0xiZ1Nfek9INk9hVT9SRnVyKHxqZzR0WXljVTMvcVYp'@; put 'MlRVLE95MzdFZkRrY0dCKFtjZnMsanJqbTZ0dkM2cTcjWCovIzlCfmpjdSpydG9IU1dUME4lTE1lLjxCNlkwOHtdQjI0azBKcWM7Y1J6NGVuM31OSShdLnMuPVtjcDpCa3lmOFl0OVJlelBLPHxxQi9eYGV0MjQyVDhGRUpKPjttfTRkWU1aY3htYzd1fmRmMk1bIVgqcE5wQk0kNFBrPCR3Yi82'@; put 'Z2xJOnVidnhBY21qZU1keX1iY0JVS3RSXXo8Vk0xQjViSnNNV1FoVWMuJXBUdl12WGRqUztJfjooWHZjWzU8KSwpWWRqUyJMbWM/PFNOdktOMz9rfGtXYil1VzYxNUIsdUN0Q1EjK2tkeFs/KnxyQzVSLlgpWlQxPnBKcSJIdDBbNkJTREBeWGhdb2NzZ3hpKSk+PzRDKFRiZHp3RTNRV1JPaCVX'@; put 'd25aMCZZX1ZsSlZ4Ujh0NEM8X1doKD5vflU+TiJ9TCooYFF6OF9IUnh7SEFsYEZ1MSRCWDwvb2B1RT9BfkFsfS4vSDR4ZFJ3S3dLQjViSkZWLFlhQyVuREg9fEQ8RjBaWF40NERXRn1VMShhQ35jPT9uP1Fnb29yL3N1VTkyM3RDb1VPOn48IzFMSiRYaz97X316OXljQW14RH1GRnRBQzo9W2k6'@; put 'b0dYOCspdzdVbHNnQXkhZnVXY0JuZ2hTLj0+cFNJNHg0MkpAKF91LFdbaW91cX5gWEpGPlgrXTw5K2pCeXthM30yTVUhVS81UiopZUZnZ29oXndBaGVyei4uOUlqaXVATFVKZW9mfkx4IitTZ0g1fCJJcUB+IVYpP0E4bWdTOCwuQGBSQyYsZlVKVjdGUzpgckt2b1JzTU8yRF5fJDlBJmV1O2Bz'@; put 'VE5Wc3B2akxFTmliblEjZCNhQl1JYkpyfVI+SkBqQzgpaz4vak0xdGdCOEVNQ3hRSyoqT2doT1NQOzhwXnUkRXE7Z01MTFBsdTYlciM2QjdjYlV0T2ZlaTwxaFUhIWMxMXVWVCFBb1dwQnNTfTk6N0J2I25mXjVee0c2QnApITdhVFEiLEhyTVFzUX1QZFFMZnI7Mi4sJn1OZjg5ZkUoNGdRV103'@; put 'OjlyKGJfSF0kcV1QdWd5cTUqPiw+KX0uaFVdQ3QyeFM4NGxoYF5GL1R0aHRhPGxFNjVCJl5kNCRxLERKW2l3OUAjIjA6W282I3JoP2pDT25SWCVJQGx+OClqJiphUUFlKEk9aVdvOmlzZ2oibVIjKkR2bk0rX0RnQyp5Ln49Nkx2R1g7PFt7ZlFKI10wRyJWTncyd0xPWzEydV0hIWcwbjFAQXFw'@; put 'Okw2ZHQ+ZSJyaD97clJ2YkBkUEImNW9nWE1dRDR4T1tTdHlXT3VbYmUwNG1QdzJ6L1lUTDFPW2Y1OWI3X3RxI19kUVFULmNLRjddbDQ+bVlHbTVUd3s9Ti5Cc3IxLHl1MUFXMzVlO3YxdC52TUVVUHYyOy5JIiV6ZnBYLj1RTyl7Uy4wWj48MG04TnMzL2VnR1ZjLzI1KWl7TUtgcDx3Q3ZCazIu'@; put 'M1RGUj0+TSshMFlSUG9DKy9MWE5fNERnLGg8ciVtQHpvYGBUX0h5M1NjYilfXytfYXhxfFlDTU5VJDw/PDdNSHVALHdnYU5KYlNBOTB0dkR4WSRvVTwiXTVCOyMzZCFZTDBmSlZoaXxhdHNifFBJNyJ2Smo8aTAkbSglWz1LdVYzcGxqMkI9PyUzMi8vUSlsbDVmcWZiP250UmI+KnYufks2M3Yy'@; put 'W21IWDY4PE9vISJlIyNwQ0BYITF1az9lQ1RnSk9II3pfPC4icFlNWmBHe199fWZ7fHpWR29qO1lafHEjRmtNPlVPdDFXLFF4RVIvUjFZTUthZnpAcXxNYH08IzNkYF5ocE91NDxrVTAzQldDOV9bbXxoQSNbOVE4P29WKnZQJSwpL21UZUFMITgrWkFWPSh9YDV4d109YjBYOiF2QmxmTXJsaSJT'@; put 'WztSQXNMIlJNK1NqeCFRNGR0eiN+MjFpZC90Sy59QUBmR0Q0ZyFnLyRJeWpgRkFII0ZGNnhCT0UrMGZvZUwzW1E1OmUuIUhCfjJ0aCxBPl0hRjkkQEhANW9gJWcoWzljNyVBYz5ONUtXSyRwfXYzKD1ITWkkWERBUGJlZG44Sz9xakRIYTdVZz5SRSQ4e09ZfTs/PVZWKiZBKkozfF9fLnNIaypn'@; put 'IU52cClHZW5ePU4pbWhoIUpCZUhlbnFHbHs8WD4yR1krUCY6ZmlVUz9aZWNhRFBOQzJMYkR4dkM4OjJEO0I6amBvcFclamFCOGg7fm16bURdMCJvQHN1OnBOUWwpbzUve2xafnRKRkM4P1BlTzRMdzgpdSFASX5HT19wRjBgZkklbGtGRyVQPkhtND99U2djKCEmVGlBZlhfY0N3XzN2e2QkP1VO'@; put 'ZU40elkwMjBbdXhaW3RuZl41dkhBVylmYlNDImRyek1aP0owc3VGTjZ1dkdNYUpBQnJ6TSZxQHk5YyhlfWloeD48OG9VdDEzKXxlSCpkdzoqKTVXWzg/bVo1TnsjSSJDWkN+T1BRXWp4W2cvQ3BGMHU5NVR0eHVKV3NUXzRlWmZ1KT1IZVJsajlZMU9EcDYlRWVkL2QjO1BdQzlTJWxVOzp4ZD5n'@; put 'eChXZmZhJDptT0JYL212VSpKRVZYJWxYY0BiTzg3WzAhajBRR294ZC90bjh2L0YqXntTaTd9OW9vUUJjamJrQkVuJEteWTRpT1oqYmdpZiYzOGx7cF9lTXJCOEFsUE00QClCSW57fDAyOyROOVBoMDQjfHZ4LC5BL3Z4TmVOZSVVT1VUKWVdRTxSeXhKJCRlZlEoTEpxSm1gJTIhfjk9MmQwKTh9'@; put 'az1nRiV3S0hSP1IvUWwxO2wuWDFjW2ReeWdIKig+YmhAYWk3OmY5R3kzOnwsUGhlcVpHeHtFSl50USUvIlVVaTh9WztaNGVYJEJ4K1s7WVVhSilhbjMuYTFWOmh8WzdOZkJRPDZqbGtAV31PfUoucjsuQEJ+L0FBdHxUaCtDYi49XkNFbGImYnJRPiR9PVpaeXdeKXE/ZT9IZUxOdCRoQn17Kyh4'@; put 'PWA/JkgyN2pPYEtBSDtWJkNMOH1tY1NTTXdqODRmX2omPihwL0NQSCZ+NDh9S0tjaUVSai52M1JdQS5ybSYlT1BCXS4rI2VNcmtJYjx2ITJYU3ZhY0MyeXxDYE8jVVlIfkEuVkYzW314bGtxIyVCcHxHeDNzej5HeFtSW1MvKjFHUHp3d0JjZTMxcnB5Qi5xbDptSTwxJjo7cXheX2UoLFIoKmFh'@; put 'LjE+YU5PIztfN3c/TE9kSTx9JWUxM3lMbnNuUjNgfFV4PHY+eXJUX3whWi5WY2RxUDRJV3tpa2RpSFBLdFF6cC4vLyQ3PFRfLCZLfGRUL34yeVleW0pnUDJ7bSV9MXR7ZVM6OURre1hGTSklVGRdOF5nc1s5Tmx0eltVXyJwQTFqTGl1dmxWM3l1NFZ6JGF+XjBMakIyS2RNYWxqfjNCN15lMl47'@; put 'ZylSLHE2N2lyRjFGQjJwIlJkOXRtYjVwVik/MltBT0RrKVg2TDA/Tzl+YGowXyFkRENEIUZDNTZMdH5pW1s7ImhnVF1STXtgXT47aVg8a3Y9ZjlDJT05cCI2eHNyNj5WU3tOWzs0VjhmPTluQUM1cltrOmAxRmZ3UnlEIT9CLiZle0JWXWszXls0TFhHRUtgezFbWGwuV1U0P3NBY1UpQlM5LiUu'@; put 'fCJBNF9ZTkJRZS9DfiUwaG1Hc35FPmtqJFtkfCIwWT0rc1lNbXlQRj8vKit9d15gTnhAS3tMQDh+ZWxVVlc4b1Q9QjM8Rm5jTWFqdj0kfjRLPnUpW3BZJTR6Qi5tIjpaJj00RnRfWz03KTZHRUdhX1dNaF4vVTUxJnRXfjsyS2YqZHE1ZnwoND82QUJ3KWp1NyRLdXNxbHJGRWReejdCfixQMW8m'@; put 'SCZ7PHVoYyhdbUg4VGtGVj1oOUp7ZnM0OV9LRDJZU3g4VV86TEgwNEwqdShOWzZCaz9HdTEyPlZWXS9eOEs3UWoyaH5hKUpmLlp0UDVoe2dhNEMpLDgwNnc3JHxWdnZBNlUvWVhEXWMyQ3sjK3BRd1h6biFMLjhicGx2R31pO2I0cjg+bXpGemtAQClyVEVycVRVK3V+cEBbeilVVUtqX29hMiZb'@; put 'Uis9W2BfVGVFWmR2aVs1QVA3QXJoOGlROTRmXkpea1lffEYoQjhufkI7d2xraSM5c11JSUchdUBNXXEyTnQxM2d2UmpwOi9gR2RsZD5dXWl6QzlWIT1Lc14pKT5Tel1iK0cvV3YmZ1c6SCF8V2NhVzBzS25iUi4mK0Q0TDtyJlFfJj1bSj87b2MveG9oaWx2biVjN0pwSyZTUVNFTU5xYE1yRFdT'@; put 'aE4+emVufms7Sk80dGtVYyN5NjJhZFEyaVRubiIrOCQ0LEtfbWRDZDRJM3Z1UCZnfDkldHNBUCgqUS5LMHVkWUVFZnA6e0g5NmZKKTlGJmpbQHhtQnEkO0dbVUdET3RGIUZRTklDOEVSP3JGN0VMM0t+elI+VzF8NiZAeTBoZWVgRURFdEtjUS9UWVBLZzRyfndZJT0qflE7UjdIVj0yTWkmJiFM'@; put 'KTgxVyVLbEhPYldXMmYmMzpyRGJ2QCY0QH42bTZeUS96PE5wblA+QDJ+MiJuMShRJDhxb3JsUWFCU2BLSE1na3Z0VTE6dF8jQWJZJWtVd0ZHalNqZTNKOnEqNDs6M2FFZHRxPmxDVlA3ZGxbKnZlQilRU1NEa05YRUVoNXhKTGo4XzcmTFZOcX57fHZkc2h5P1Y4NEJDUz9HdnRzXThRfkNjbCZb'@; put 'OnY8YmZ1fClrbiZHOEJmdDZTLlQ+VF1sUWBgTGwlX0BsdldNWCIocEt6LnlmIXsxU2dxYjF0UC4wVlhdcSZBcGFtO1lZUldHSkE2O1U3dyx5fU5mSz89clhDT1lWWmA8RlNPfTwkcEMwcS83MldkW0ZDdG5ATytnSV94fil3RFRGL0VjVixdWmxjejR9eXlZXWxHKUUzQj9ucFZ8ZUFVZ0Y8fWVX'@; put 'fSlmPElOenZUKVZ1L0dwKmQ4flBvd240QVZRbjwxLkxBTy5tbVVuKCtNM0IwO2w1YnFhY0lmQ3krQkNRV0FCPjpwcDgoLishcmldQTdUaG55IXpEK3ZYUzU+YGdvcDs0UF5ta2ReQSs2bzRfNCp0W0VvOzxGRiZbW2UzdGlVflQoOlIrZWBUO1l7OERXP0UvUl9BWHJRQj5+K3gublVxdX5WSDZN'@; put 'JGdnM2dZMHJxcmo/XVpqdCZYPyk2W3siamlfI3ZWQlNRdXU5eTBmSHtHcl9wT2tRZVBUNDI9SSMxWGIkZ2RtaTspQF04MTx4bW9ELns8R1RsaF4mZyowbzpdQ2ZNPmlXeEpLa1ljN2I5WkhybytgcmV9L3pjNEcxWiUhO3ZuVy9TZW09eyJkQWVbPHxnakhnOVQ5fXJiczYvWnpaVTEhb2kzWDt8'@; put 'W0ZTdHNGdi8kVF9bPjJ4bnZKal4sSG1eSFB+PD1WXzFHUGNZTkI0e0JfWSs1ZzJRKlleZmtvZVhUXiZQbnMzQyJ3MDYpcXB2PEt5OGMrQUs/JCh8VFc8dmIlZk1LI2w+WldlYkN7RTFhTExvPC9uSntndiM9bW80QkJEaWBXOX1wL1Akd198UFA5X3x7SD0uRWxMb0ZzdiNrbHp3KlJVKD0/OGp4'@; put 'JCNgbkJZbDtmP1VDYGM4KUswSGR5RFdPLzVHVHl8aUh0WzZ6eGNGN15+TDU5Sys8ajFiTmlYaVRDfiU4V3p+dzo9e1I1LGt4MSpaUHpFYCNed0V6eU9SQzw0aUB6QShxVE5SSldgbVBDfCxEayo0diJ0LiV2Ji9YbC4xbypBcT0hMWpiNnQydHpkMnhCbSRGMX1SSndSaEJjZzlEOyJGfXZ8T2pC'@; put 'I1p7OHVxJT10LkhIN3xqJk4yQi5SM19HczpSZSpxUFR4SFZoTUpwbzQmYioxd2duTHFtPVcsPjEhZENQeipnSWElZTd+dylkRkpIZ1lkfG17PVA2VF8sJnRuW0tsIT94MH48NEoqaysmRyQ4XlFTMG08R2U5ME12S31oezRSMjslVSgraTUpTl55MmNINDE8L2ptYDZXaDUpMSZydDBdQj1PIy5y'@; put 'ZS9zZGhCLnJVTUJyMXRDbjN+Z1dlJVU8OHVmcXQmXSVkZntmZXAwOUkhWWl5IkFbVU0uL0d0aCIyfE0rdzBIaihLfCVMV1swOSJlcDtrUDBLY0dhRkYuQDgvZXNiIVU7M29TIUpSVCorRk03YWBucC8iX0FaZUAmXTN2TmF+JGYsNDxAb2tvRUYvW20zIytsJCJ3NlM3K2wkViV9RVE8eDgkIiNg'@; put 'YFA7R1RjRF1hXW4mazdKInYlJmtQeV4sdXZMfSV7QjdTRmpQQUs7byUscnhLfHRfQEdaYDZpVU1XWClbM3RgKW5MdjRWV0xtZU1BL2dVdFIlUlo6dyFLXSN2TmM0fWpwV0AofiFVPjM3UXF1a0VlNSpNV2F+Jm9iej56YHg+fkBwZnZ6a0lrMC9mdnpjZ05lL2spQkNqVUJ5UkA2NWtzPjZRT1N2'@; put 'OkV9I2Z5Un16QWwoZSo7M20xYExbP3pjTVFjcjheQy8lY3dWVmorRl9hTyxbWj4zVjNWdzJ5U2pWJTQ3cihvPik4NUVqY2xjbFFKRWoqKX4yUT5AI0dLTDlVPlZxWU4mXT92VCZTXXNifWRWUW5jKHMlLERZRW5RSj45Q3M6by9fQ19kcndAcC8ybHlpQn1wW2IzQU9jZG1lXUVOMG8uOzBxNmhw'@; put 'aSFPWVJVaHBdb2lrWF5qYl0jQj4xL0JURzowYHRmOyhlW0ZlIVglXXp+RHpnNXBDNlNdVyIsalpeNDFDWDI8RkxsaFglPU9AXXBNeFFwVl1iXywmeXxZbUs3PSpbanBqLyVRXS5MLzJCYyZQazx2QXp1JWRqWCorNCMxeG4lKSImKXw/VjNrKmtSaHclb15fI3ExOUtUQ25IMGN6YTRyfUhLI2Ys'@; put 'QHckKW9FRjZQIl9zQlZ7Vy92ISxVUm40PX1qezVkTjRKLFRTKn1TZDh5PUFjVEglPTROOHJ4Lnw1STRBajMuOnxjb05dYWlJNmhILkB8aU9bJjJaSz5tOltdT11pMVF1SiV2ImMwO0hVOG5zPDtpKX11Ln5BaDkiP1A9aUdNNmNbPHNEMWN8c2U0fUZEQkxIVjRWXitqYVFBTilLWmh8LENmVkFJ'@; put 'XWBofTZSc2QqKm1pTit1cjYmZjhzMDJnY2dOeUhJXnlLIUxzQ3kjWGNqNWBmP0ZXTywzPlBGInY0VGFINGgxTmN2ZjdPZH5SWWprQyIpN1hDTHY1d09iKCR6N1hXMkF8dS49fm9yWGtTU2s2P256VjI4PS5YYW5YbDNCIzYxb0piM00xVlRKTTFQMSEuPFgoIlI9YF5fZX5sdix1RjxeMzd9PXx4'@; put 'JG46T1ZDcnYjKVk7fSZiNiN4M1hsQEJvSGd2cmRCeDBALkR6YzJ2KzdYfSUzcUJuS2ZGfEJ7ezclW1tnckNhfkxKRlBET01MVTovSjBPNXUvPHE9Y2V+Ij01LEB+LkVbalt6eV94Plh7O314KVloTVArLkM3KXJkam84Wnlsez9DS0pTd1BGdH4+eDhFdkNAfGQpak5KSms8fmF3dzBjW2NNKVAi'@; put 'ak5YKlA8bGhCY0YpUHMsZEksM28lOUFPWD8lNT1CSilfPjRrbU9ZWDZXNWszTGtmW2osTCxMQ15pYU1FdXVmI1JkNkM4cEJpPXVYcVIjUChKTyZEW19AMHpOZzZ7OFtteSRgWHtHYWtzOzkpUChHeWVRZVVUXVteJH06Yn4yXXAzT0xEYG4hZCNEJTRmWk9HUUpAIW9FO0NZNT5Fak45QkYybUdT'@; put 'QHlMekF7V2dOfCpDIVZ1MGRfakJOO154NiQqaExnU1M5eGozVDZTZzNXSWRpNWtYTFVZcU9Zd1ooVzRrJjFuJWhYWm1qPEg8JT9pXjs7VU9xaWRzbyFecU01OTRbfSVEKTZ9fiNrcSImN3U3W2RhP0JpJWw+bnBtaFc6ZS9QO0dVJGBxfjFiIT1EQ1g8V0JXRnlMVGAmVTBVcDpOdjo4eEZbW35o'@; put 'LGU4RG98X0creCZuUCFZTEBWI3cifUs8c2N2flQhMDwsK28+L21tR3Vfb1ZYL0dJJDRgdVd+RzxEP3Q4YzBuWlQjVmFtSjV0Q1k8SHJ9VjZ0KFIjInYoW0xGVTE/KV1NbigvdkVnNkRlfjk8YEoqSGReKUl8RF0iMDJjKCUpUlhPaFc+bj1hO012bUVdTkVFNm5HQkdXO3xDRU1vIj9pWkskakRy'@; put 'fWUocF05NX0yTHNWJmUoX2ZwZFYoVl99fV1FdjciWT17L0tYRm8kXXIuTngxXjtjI0FuPmFRKDdYd3VHQ1ZWRzsvOWE3M1dxb2VUZzNFdC4mOW9NY1dnSjtgKlRMKj1WdT9FYmdDTWs3RjQzIzFHbHouSmIrd21XT3JDfnNXQENyN31YVGc0WyZ4UXY6IXAoKVBtXjs6I1plek0wLkwrcE5GXlJS'@; put 'c1RmKiRkUWIiVixxSCoib19FQTRdWUFjX0xtdVRINkY+Y1NXUix6eTQlRlQ1N0I0Wl44fSwsRF5BcyRlQCtJQHA1OzxvPUtZfWxdU0V9czRrdFJRKGlCcyFVR10iN2BaNiNoWGZvbGdiN2VlQWV0MFhsWHl+YX0/fDVuOkFzV19KYDtPNHFRdVZ2Xnl7KTZDfk8jJEJfIlJDP3VBVWoua1cvUC55'@; put 'dmw0bzk2PzA0eDh9dXppVEFlVUY4JXVAcVUvMjw5KHdJbztQR3k/JUZHW0BkN05rPGI8N2w/Kit1ZDlvIj57O2ojaWFXQWtjdUQiWCg7akBpIkZjbW14LmpjdUpGPXxqM0AldFRmVUxrbFQqRWVzSVd0JFpQSkNRPVZ9MUJ2UWtlYF04MWdOLzZ3I2lpUTYrKl84cFsoez8lZDQ0WjxwUlRmO2do'@; put 'a0NZYiJEU14/UVlfWXxdLnFgRVhpYCUyIWElSTZMN3J8LmUlQnx2Kj97KHY8JVlCWlVkeVduJj5AKU9yVlQwanl1VV8mViFYYVs+NV1zbyF+YyMqd0lPP2JnQGtRYD08YVZNPUwqKWAob34yeENNUDZYRUU4PGRzbEtCWWRJK15sfj1VdU0wfiN9TGhvflImOHI8UmRKVDVuJVQuczQifCphfXxq'@; put 'fSJvcWU4Zkl1YlpbOmFzb15DK3JhTCtRUmFbMDA8VU8ia1p+UC5PfF1AdnhRb2RVMExfc0tXN19ZfnBPaFl+NFlqZCY9KkhKPVY4UmwyNS46b3EzbFVWRF8/bmtXcV0sTHUwLEx0SGw8Ql5sXjBNTTwyYkFLPTVDQHRkakV+RUFyaXAmbDEmPV1bSHwwRXtUMFk8dXRdX3AyZSUjJkc6aytIcVdi'@; put 'e2skNUJfdH0qb0B8UElHXlF5QGMwfjFbZTQvMzFAdjF6TiIuXUEjc1BjdFtmUj0ufWYmbXkxX0lWaHgsPlJTS1cwXTQ1Z34wREpGJXxPbXl6YSglb2VFXj1mODo3Q0lXXVY2Y1MsfTx2LHphR3orWE5XI3dlIXMrditrUG5vUWpTQ25gQmlmKFgjMnZqaCJFO3x2MG9PXmRyIVt8ZkVnUEVyTT1O'@; put 'ZE9NQzVFeUEqalBfcDQ3bDlhXj1SM0luVE1xe3A/fUs0SDFCLiQwODQ3fik1bVRBVCJlQURraXx5a1lhWzJmKm84JX5PVCRuZUFIMS53K15KXUAuVW1dcHdVYXIrY3YhLnN+TTY1Vi5UXmw6UGBNL2M9ZjI7ZnZGTnFbPU4rVVc7dXRRV3RhUTtRPE4wdWM5WG4qJHdSZHB8ZGkwKEdofUlpInwy'@; put 'bnpYP3kuY00hNEhVTFhrNGRFPFU9SkdkaUE5IVtqREQ6RipSMkNEemp6PkdWeGZ2WERod2RFS0o/dDVMamw3M09HU3VHNUE/YllNMF95YD5LN0BBbG5xSHRjOVhUdHYvOFM9KjEoWVgrOnUrY3coWldaWmMxdyJDRWZmTVRIfEJ2Lzt2WVl7fSprYylkQmZ0PT5UcWFTTU15MDU5K2svOHJhcitm'@; put 'Zm10REcjTH4oem5le1dSTVZJO3BJOFNTQ0ZLTE97V3MieDFXR1BGWmhNJmpefjU1PWZbP3IlWDBLZzlqZmdkZWpCN2wuWkJtMU87RDcpKnVQRy4yLCRgMkB9Nz8jO1ckLHA6RGJHNUJWUnEwe192SjRZJUAsK2NWXTQlX1I4NGo2XXhFfThJS0xxajhdazJOezUsL2RxO2w4aSY4VkNWUl9vM3Il'@; put 'Kks+UjJRfjJ4W2tJblQ6d2ZCOz16QkxqflVCMFZlJEk6a18mPng7YzBQdEdkKV5lRzU/ZyRyXnIwJn0lVGNPVFlLSzZaRytoZTY6fXNrTS8mYEY6XSM8XkR5UjNwRXVMWGx5PHJ4djRSPlB1NGxCUkdjL0hYWUtUQS8yRVFHQU5jOXYzUCQpcl1uOms0PGszVHcyOnZ4I0BKZkEwclYuVnNIaD9J'@; put 'Ul13aVg9LkBSYUM8cE9iRjcsSHVqUT54b1RCIzNTe2MyT3xueDNROjw4I3gpWisjRGpYYi4kaX5CPXt+Tl9xNyN7SCxvYi5XMWMmV0RzOkwjQFc3c0hDWD8jSjc8fnEwLyleZFU9emJYOytLcUt4aSkpc1AiKmVLUGZ8OnhgYGhnLFg2K1dCKGQzLGlpRCteS0hwUmgocWFuUjFwL1hLalszZ3pg'@; put 'cjQrTEAkPDp+JUshbTJJeyRuPGU0Z1RjfVpLWnVVZ1V0ZHxNYkYjb1pKRmtBX1JUS0hPZG5jejFEdyltL0BVZ2dWUislKltsLmNVb2NWfSxKVEJaIkwrOE9NM1NmdjRLVmE7TDdSXz8iV2FkZFkpe0M2XWQrTnxxSVRvVT8kPFlFdzI1I1ksQG5lcGMzSE9kMVBRaFRPUVo7OFJKZU06fUZ3KjMi'@; put 'fEF7c2dnQyF6enhzT2gmZ1diV1opLmVhTSlxRGpGUGw3YW8oezw4MlNmTnZLSmtnYzxaO0B9a3E7MVFSfWxrQmJLKTQ6WFl7eEY/NTc7N241Qlo+Ol43Ly51NUN3X21eK0heO2ZfWGl6eldlTi8vVTVpZThXZzJoLHFuLkBiMSNZfUY4V0Y7LDNXLGUwbms3Tzc5UWJ0b0Y/QGd2eDQyVzU+cXha'@; put 'PnIhVi5nfHlBYz9AV25WO0xpU1Vqem5vITdnO2wwRlZ+NTw6cGx9LkFvUzpmSkArPSk+Pz48U2FIS2tFQ1o9TGp0cXFEYj0+OE0zSytJfG9QPzhNcVttP1doJVQ5WmUlVlY/eDN2XkUmKl0/dHNiRityNDcjQk5ocGMyOTsmLlgzPXBoKXhEUTh4OFZTVEJZKi4rWHZjPiRaeys8e3lUZ0xkO0xb'@; put 'R0JBTmVTbH1vSCVrYENlQjhQWiMrey98ZlprYl0uWG9TQU1ZNDVEeF9dSW0kfEJiZTt1NDoyNGtqKURCZSJYe1VPO3ZTJm4sfkVOTClJakduYlcrdFtwMWJHMUNNWmE1QkpGakNdSEZkUCUvZTM9fXZfY0R+LmUrWkd6fCwhWj9AWWh6R312aTl7cCwiYU4uXiFhZVV7R1R8VTc2PC9TfH4leGlV'@; put 'W1o1QEBtZFMvbWRvdTRLZVs3PEtHOl4hdWN5NTJIW2csTWY6JGpuYlAwYyZ7MHVSWzAyNnIuL3d7bSp3UUo+NWdgPWtBO293Iil3LiFma1NMNVdSZnhENWMmZDM5P1VZS05+WXc8VlZFKGouSGpQdkBrdSU2a0E7a0AiazIvcWVoMklUa09hekRTRkFaeUdNbUpwVVZQdU5UWW14ZUhlK3lHK2RS'@; put 'eWtaRllEZHJlK0l9NytrP29JJD9EQWkpSEddYVk3QjRbZHdhOWFPcUdrdntKPHszejAqaXlLNVdSe0V8b1JKZjViVnVrU2UlSmV4W3EpU28sNGx0SEM3QFBreko6ViwmTm54VmU3cX50Q313LzRJdVoiUTNZLmVMZEkzc1VKL0hee094ZGsyM3RkZnBmV2pRR0B4YCwqcWlZPkldPWs8bj5VLCJ0'@; put 'SFpUZTQlVkZ6JHQrY3YpTX5PJU0iLExdejB9Qi84KlhbfS5lYU1HZXI0PXU8VkgmSWRoJiV+SEd1bF5URntNaT1ZZ3J2bGJGfUYjZHZPKVN7Zk4uMktqVy9PWGEkYmg4WU9+UXFRTEN5UU9wSVlnSWI1JS5XVCZwRTJAcUg9YGluYGQuSUszYzw4aSkxQ1tYSU9CcUBsXXprRm9TUkZrPnlyVF8r'@; put 'LylVfX17fSJOKFRQXjhrbDd6R3xyOjFGQ2BAc1E6NjAlYjZYZTkpPT1deEUqTFhSQiU6YERXTDcoPHwkP2wlRCU+VmU1Ris6bjpPfXJ+a25OWD50NF04OFYjWzhAUGpaPEFfTX5rckcqdVt+eyVrOlZBJkI+K1IzcF18JWtbUWZSLFdweXVCVWJwe2VvQW5peWh8O3BhZ1NUazY7T24sLmxOYio5'@; put 'cFc3VFFALy9aTVp4NXRAXXo7My40TTNyd2B4LnNwfUsraEw5REBsR3lvWH18MzxyfSxRL1puaGk7e1p+JkRRZTZgeSpNOldrZnU9SUcpd3RYTDpDeTNqTVR0ejxAUGw7L1FgV1UoYUJ8aWd4I2ptI0FFRVdaRX0iS1I8YV13OUlwKWUhcixSZk4wKmliZShqSTUjI09NcDxlTW88PVBPbyx2KXpQ'@; put 'VigkaG1hMV1fZzJCLCspSFRBNHAhZ2tgPz9AcSpDMXBDW3cmO2czTEw4SHU5LEFMaip3YkZiPFY1Uy8pckY5bj1LaCNqVnlYfTRLdHteV10jQmlleEs6S2hGalNqJXUoVU5tMF9oS1I+KVcibnBxKy9NPnlRbG9WTitXTH5IdjReXVNvJDhoKSV6V0BYUTNPT2I5OzJRI2wlTSN9c1cvPz13ZX5e'@; put 'ZV0wc1BwbDtBR1F9VyRuWzxLO05jXU1jX3BIOnZOSk83RCRrJEZZMFo0KTFHZnQwOWJlNypZPVFOPG4lO2Mza0doXm40JG86ZndheXRjb0E3QVouKTpbRkRtdjRSI0tNN3RjeiI+PSokUXk/MlcqeXdqO017SzR0NzNWeywsIW8scDNmUS9DNz4uQDZ3dm9gZ0Vub1dxfG9+eFdHZkhHLDksXWtF'@; put 'djlpazwrbkhabXlrYyFPaEh+SyVkMyoqOyUqc3M0TzJQfTQhYGFTVjw3SVVnMGBKRjkpdCI0Jk07TmxDYXNCbytFTzd8THFYWm8kPm1vOChdKHxBUnwmTGVnOlY0VEpQOW1+XUFrdTlKRHt4Q2QjcUJgR010ZX1xSjFYYXFRP319b0MwcVBNWChJMyVXVks3dGVtaEFXRmB2Q0VqWHo4KUxbO0Fs'@; put 'OEg0TX5LNHR7MllWOzF4ZFcpaXlMdX5QJEZ8SHYjW2JOSnk5S1FpSUQ1Jk46aTYqVXRBdTBffVEhZF01Ml9lO3BIfktMKWYrVElrLD5pbyJpb1V0VDVnKjc0KUtWQ0NwQWJ8QG1qJTBsPW1yRWVHSlpKYEMlSih1PTZ+RyVCazQkJTtuPmJdOVEoR0lwRDU5aS5bUzpyeHhrNWRnJFt0JnAlcEt5'@; put 'JipQODxBOmB8YHA+YCRENHFRPzl8TV89bkdvPnZ7cTErWCtfVGd0bEwycDppc217bWUyfUdFYlQvYkducDVIPl0ldHtnZzQvcygycW1iaU5jaVY0Y0FSTGNWXXw8Nz5CR3RpTk4oelBDaGIrPiJJd3RSLGIvJWdiSDxhN0ZgSGhMTCJwRTxnTHZ1TmU4QWU4RUdDJldFXj9qXnYoRiJgJmxWQEJe'@; put 'JnEqcyhYUDIzN31faVFTZCYpQGhUdD01dkRURExQfmUuKFVDO1IkQEoxLlcjW0k3aUtdQygiKEYoUzQ6PGNaMVBpK1R7KWpIQGN7UX04K0g0Wy8sNihDQ2VIQlI0Z1IhVT13QGkuPC89aVEwaTZlakdBTVJpXmtoOjtHcFduW1VwUHFJIyt0PUlPREBfLGQuKEpXWWIjbVZQYyQ9VV9zdGV3SnRA'@; put 'XXhQI3RIL3A6PVteLmd8WzFQRitNJnwvKXQ+QVhBU19seS5Nb0M1RXc8dTVkNWRjO28rPUksQlk3T2gkT0R6Rls7bSVuamZROmNSNUpyW3Rrd0ZUWjMmTlc7M0hzYz5PRiRba0Y7Tj5FcndJOmNpZSx5ZmA5dFZzL3kvUDZQXV1uNDd9SyEqcl1yX0JGeDdQNUt6JjlWaGxQNnE7NnomQi8ka21z'@; put 'MVh2SklDM35yS3ttIVViVEVzazxyTS84eWhDIXRAc1A+a0JmTUlUUG4uRH1FMkwwe3g4X2F5N0tycTs/S2w3QyRkUSlRKXIuLHFmdT9vdUN6X1pGNEdTVmV1WnEsP3pLXkwxcUpgSUBHaDNMOCNlKSJ8ZGN+V0g2M29TNnQ8U18iWmR0QnxxXzsmYXxWRkQ0dW0zLEAmIT0iKH08SjkyMXErN0R7'@; put 'YTdbeThlVCRneGg2bG4mKmZKTXU0NHY7XWQyKkZgWSxJZkVXc3RYZnsjITg6Mms7O1k4JSxxPnwqTmRKXWlRXntFJHhNWzlRIkQ6bTR5UThAbU8qNHRUPVVfIzA8UXlTfSQvem06Yk11ZElBNip1UD0iX25CTTchRjtvRlN9eng0c2p2MTY0czRuMyYyInVUTl5jSUlfTDJRTy91PVQodFNTWCs9'@; put 'KUQ5QHhbK1BWR04lLl1KaXpvN0E/WyJHWjBDL1ovUyRya3Bfbn0zW1lCWGZSVlM/QUMvVUBqSWx7WFovQCxEXlZkfDVuOis0fjE2RytBOnUpSmNzR1ZkV0lJVD4yb0RSV1RoPmdqV2g/fS4mcE1peUUsZjl7InNGaUQuZ2ImUChSJHV2NXV0LmhETURDdTllfTB+MkUwb2olPUxYWikrO3NeMEN2'@; put 'Rkp2Iy5gYkRMIyxEKThVV0QuMz5ySSEzIVhQPnc+QTg7blMhM2gmJHFQbzxpI3BfUVFwN2ZkVXwvRUpjI3FUdi5CVEM7aFM9fD9DMGd0d3IlTn0/QnxHY3JOLkwwR2BCUjNbWiwyfjtCSFpEbUhLIltWMS5nOTw5XlpzbDVpY0xfcnRxVT9VOipeMSo3ZjRBZGswSFBVOEJTdjRSIUk9L2BSSl0o'@; put 'fmBQNihVT1M6RDNwPldAYjdmXm1nS1NQZksuXTw0V0h+bFRXVFBQLmt4QV5OVkNtNyYlQFJeRF5EXkRedlBQdkxWT1ZvX0I/VWlFbEZdQWxfMUMkUyQiWWptZFksUCxQWVBaTT1PRWU8d2tZfFFLUnB8YG9dfSRJRUM3R3hIJGlLI21hbGpUJiU9Z2lMWD1OU09IUHVlXTZtIT5HXlRTXWNIL0hd'@; put 'TzhUb2FvImlAbyJuYDlmeSUzVzljOmRIe3hiKi5vZ0I3YlZAJlZ3dio3LilJc3w9TjFmfDpbb1YjJGV1MUM3PX1tOCF8bWRhaVVRbWBQX2BFL1t8MFRDRV1COEhIWFBVOFhwOGBFcUh1LmkuT296X15oNEdQciZ6V19aPF9iUUNIO2ZETT1VSTc2JUhDXzsqfSNoPTVKSGg5PSsjem5vN2E5dTNS'@; put 'MEc3YDJbODlaKldaOmV6JlJpc21hVUF+MHkuWTdFX0JHOj1BOUByVCQ0YV1mKl9EPVsxNm5vcmMpc0IwJUciQWdRcnFZcC5dYTclfmxUK05LdyJAPn06T0wybFRCcy51bVhUSy9OZW04aGt4M1tsVFUoZXd0SXd3OlIub0RAZGZMdj59NVRIUUg0PmY/JGY0O3xuc0NnT0o7VzBVNzg4PWcmU3pI'@; put 'RSxOXzdYbG92P3J+Il9xKVdbU3cqVV99VyJeXXVUfm5DVj02QXtsUGN8RktAe2Y4Pi9oU1luMD1aZG5dUXEvZn03MmxtTldHMz9DZDY5W0xZNmYrPEBYMjF4PkFhQ3pWczh4JS5vRCMyeGpMc0M0SjUvWSRnImYkUEUwSmIvWHEmL0V9JTA8UVIseWVfIXE5YHh4V2pIYmZ9ejp3QV18I3RTUjNp'@; put 'JTRLbVtuOnVCfG49JHBkPHgoaDQ3fkRdWVtVPU9icjNpdj1xPHJYUTpVViw9PGt5JS5GbzFsfTVoeFMvPkgjZF5UZHkuLCR8ZnZdQE55TUR+M01Gb2syW0k7eFNQYlFgdzokfEZePWlqPU9hZXVRcDVbPy42JUBIO29ae0lVdDsvQEolNUUlN2p+WGhYWVZrYjp2LmJNajtKWT9iLEtBN29yKmcv'@; put 'TU9jITlBSV1EPWxFOWYvYXIqN2hvc1MyNmlqIk45Mmp4dCEqPG1XVypdUzA/RyN2bX4sR2w+ckw9KSlhM00uMyx4eW9HRWJGYX06fDNgb0RVSzJlNHg2N11JUkFGJlJNMCM2Zjw1VkZeY3lCRF8sRmV5L3V6U0RqdyorSEBJZXI0ZHU2TVdXNlB6djUwc3NFdDZkbVBWe0U7RWRBPTtmRlBVK11x'@; put 'QzNmbztwdmpAay9oaj8mQmJbS1c+aVNoOldFVVltJk1tbVkqZDIsUVU4WGwwRmE+UUk2e0hMajQ3UiR8X285S1h5RjlWISglWVVFWDNpVmVoI1QjYDp5a0VYaGkmS3tYJXNAS1lZYEQrKiY0XVQyO1NAOlg6Q3ovPk80MFZ3X3wkbzRLVkE1MCZfYCkxRnsmc3RyNTc4MTE0TDROUUleNzh3c3BB'@; put 'eSwqdX5xSUYqfTNmI3tRIWg6P3wzPG9DdmJ8d2g7YGNYV2Q3fTFRdHRvfFFoeipTNzloXyFnZj0qb2A5UDs/JXFKSUFOWzV+X2gmWCxXREhdWXxRaHAqV0QmWm9+YjFDV1BPfWo8USVxfmJFYUtJbjF4UyJOPFBod3NwYSlBMHZ6XUBpM3U1d3QmUTZpVVE+alI/fkpSRTtyal18Y1RFJVt5UX58'@; put 'I2thYT59ZlNLNilzMnh8VyVzMUUqWj1RZj9YWFRFeUI4RF98d2hbKj59KlFPZGooPWolIXd3dHtnZlsqWH1TUTUqWH19T2VgRyhAd3NCVD9ZdCFzI2EhaztEIiRpUW5gKSptVWc9NGBLWCFhIWs7RDQrY1MmQHd0fll8PzV1XWdgUj05K24iTkouaFFgO3MjQTBuOzZDfl1EZit1QF9SeXd1an5a'@; put 'enB8ODRtUEtDfl1aZEZ2Pn14TTtuODR0R3xKQHVzcGxOQU59VWosRUJpVEFhTVU8YTlzV3g+cmYvMUlyKUVCZzV0R3NLS3VKQztoQTBxXSpSPFFWJX5iLzdvJTloOml9MzxvfFEhaHpYfTMxZF12Zig/aiVyZWNUYjxReHR+Ym4leT9mfnFJNnw4NHkvOHMoYX5WIVsid3pfay90SkFOfiVpWiFo'@; put 'bDVfViFbZ0VtSVc8fmJtVVkqeVhlZntveDVWSyt4ZVRlLzwwVks2eEM2cDRKQyskN0NYKVp4JXwpbH5abC9oKD5ZNXVjUCVhenV4SWVgLzopYyUxaChlQzl1SE8lYSVreElXYC86KEglY2pUbjFuLyZnbjEoMT1QJWE3V2NQJWF8Qzl3aDZ2MVZ4fX12U252dX5YSlBkJXM1RVtXZyhjQ2Y3UTI9'@; put 'OXxuRG09OWVpbGdfZXk0dFBxUD9hPFBfZWJ0OXZHT25IPWBKOmJIfGBKOlVjd09FKU90TGlmPXp6LHRLfVYufCNON1QsKFVbV1VvaihodjxyZWNaSGU/QTksT2ZvXldmWFUoalchQDU2XWx0Z25Nb35ISldgWGBTIjlmKGFgO1c8OXZHTzBJfj9BOThQbzVpO1IxOlBsfT5dbVNkX2dVOjleUT9Z'@; put 'Pn1mYDRXbClJJnIlOCRZOktJVkd8KVAoQzJ+VklKVzdpfHlxLCp9UlN1YmM6N1BiSlJXbChCK0ZCYndfWFZIViJQQlZVQkZjdHJCP1lWZTJIY3AqKG1dQz9oTVB+XXtDd0R+fXMyMCsjekdHaHNeaWxFKFpARFdpaigrWUZmUHwoNWgqY3FiWDloTnUyOFNhSCE+KyhVYlloYC5KVmBuPmFBLlFY'@; put 'T2VfLHF5eG88RXE+dHI1RlJgOzMrQ1FTWGkzOFAiIzM5ZGlNNCMuWjFWdXdEZ0IkfGZrPVskYFp2P31wdldKPUQ1OWRpNj4zYz15NTo5Vl0/OEh8TWhBT3FlJColfmFZWnNUXzQoSjVCWCRzVWNzQSo+OiYpW1MkXyRCO15veyhBM00xIT9IPm1maylCRz8pKiFeNWwmPmxGezs+LmArRXdhemdr'@; put 'QH1jX1E9c3glNlhvYSUjMktAb11xOz0sKHJpQyF+WnZDRmN+JlJrW2dgMWIybF1wb1JNXWxxPXkiKFgmbDoyI3klbF5sYVsvRXJ0aC9XaHZHaCNtbWldQjovOSkiQThDXXp1b2sqMjZwMVA5SjJlT2IzMlQxUEc8bEc3b3A6PzFbSEdedW0uKUw5JDJdZXBtdjwzQjtVL0xqWE5nT2w3YEpxWTEu'@; put 'dlVSc3h1YiR+YkE7VzRMcS9dPThGWjNlNCNBQyw2cHkjcDpSfmRDVCgmKH5SPW1LQGg6Om5AeDtxcTs0YnprQjdNXkwoe2J8ckNPOFZKWF0pMShrKzZQNzhBUHFQImB5bC9gWX1COSZzcVFkNixrRSNtMGo7WTJ5Z0MvaDR2bH1gKD9bPUBRKEhHXjpPLzFYXyNbTyN1NEQyO1F0KiI/ayRIYmJu'@; put 'OT1Rejh9dGJCNGZKITpHQDdTcSZGckBFMWhRPzgjaG4oS2A/YUYjY2AwJGBWb0NOdzhQLF5LL0U8WF1CZEJ1UlNEa3dqWEcoaUMkQWY9MWZRP0RAazpJaC5GWTRCdHh7aHY/c34uYFV9aUkwTWxGaWMyQmwyQCRgRipARFtxUGNsMHAmYyNbbF09aWhwTW42bWsoVXB8NmhJdXNzNylOWzhoIiVS'@; put 'dT5tdHN9P09lX3teXWg/UzN6LyxTPytOWkxtKylOVTAoJDZ0dXErcHZTKj1gQl1aIkpMMXp7SEc6a3B6fVEoamNnT3RmbFZDbls2Y1JjRUQkQ2hWdytTN3wqc3BZY3xLfGtvVVc9Q00/cH5fIz5KMHBeVWB0XyMxRWw0MnZOOml+KzA0cSRfdXtKK3Q1I1R3dmwuPllwNjREMX5Sbi8jY1AqN1c7'@; put 'XWN5M3pTMlpyaDZnLDJUP1FBZE11M0x0JDJ2djo0USljPzgzcEhUMytyTy8iMyNqfHJCLEI6Ymkycm54WV5dT04lYjFDYUM3eyZxTlZYIWVLNTIuRGEpQjdvNklOJU4jWlYoNElGaDpwP31Md3tVejJfRzNWQWpGYWdtW0dpKil8LnA6MFJ+KTZvXndZRkxhQXNEWShmQ2YwenlCSkJuZjclQj48'@; put 'XklDQTQpVkdnZjlDZyVQVitCOjNAR3s9OSEpOm5ySV4uakRGPEBsXkBsfGNXV0ROcUxTKl9NOlpRTFFwI3h5Zjl7VExTX2BMOmVuZ1thJHo3JFopOEkhQzspR2N5K3xMTGF1RjsobWh4REttL0hTVSE6ald+RVM6bC5GcCoiSVhXVmN5N0ZkIyFKJXAwU29wMEBPLDpMUVIpXnkkd1RoeWd2WiFT'@; put 'JDlUa3c7NiNjO31kQ2slPU1zNHxpT302TypnW2M2VWF6WlZoZnNlOFFfLCYvXndHeC9KNFldMX4hciF9fTg1ajBzMzs9LjtxVSMvPzZDdltrVGNbcHAmJXg5KVlnPlZnYls4YE52V2wyP0JTTntJPTBvdCNaUnFPS1lSRGh6ZWEkSVZYeytdcX04VTkiVkYpa3RsTkpZcDdpbG1HKzUrTXZaRHo3'@; put 'TH5bQ2B1fHxoP11lZE1hPWloeDwjOGpeL2I4bEhrKlNvQmU2JSojLEtvOHYsVGUvPyUlVWkwZ3VOdTZ0Xk5rUFd7VGBdSWV8ImExOWNicXgqWmcsUEJpRkhyUEIsMjdiWH5AXikiPy5qJXMuRixke0IvM09UV0Qzdkc3O218LlBpZSxzVFNEI11OZTp6OEdeaEEyaXF5LHZvTTgqfDY+fmJwbT8h'@; put 'NG1aSU1xdlJhelZaTCshZnpHOGxEeER3MSlHZWJCaSVwRXNfSDg7bllQaywvVXxNcG8jdXd9VytCUCw/Yj90dkJlQjhAX1NQRjhBZUY4Q2VCOEh+STgiUVp2MWR3OER4OSY2STVKbm9LbTkrKUYhUWh7Zzh0SD9nRDhBZUEvSjtCXzswT2YlUjFxWHpKd0Z5UVV1bTFDbk5wWCRJIj5wYTdWWUJ9'@; put 'eCJXWS5DS3c0eHZAP1R5WjxqS1l6SFVCajhSfVtyOGpmezAlZVFHSGBqW21wQiY3bFI6dCI3Vk1DZiYzbHEwU0ZBNH4oWERTaiFuRGQkMiI9Om07S09hSlghYk4sNjUoUkVUUTZgRHwoVCxIWGJrWUgrWklYRWw2dTFld088QG8oWDV7N3BmfF1TSWg4IXtuOVh2R2txLElYbShHN3RYZUhYY0Qm'@; put 'b29TWVBlK3U/fUlRSyU5Z3BLUCFpaVkrZn1dTzY8OzhKWEgoQmBuK1R5KyZNWyxgNmxuem18Ll9sYH55VX1sMmRVenNaZklyZldsPlJHWU53QD1TJSZ1SmY+Z1VJfUx7cW1fYCVBaXwkJkYrQ2UkQzdnOlY8eEhlXVpRR3VMQzZZMFRfLCY6UD1zeDNPTCg1aU5ZV01zcldmdlRSKUovTyFeSVto'@; put 'LzouPXolWVA7cjs4diFgPFpncDlIKiQyMzpMd1FeeFpJZVRkcXgqayxtXjBMVkRtUklgciUwc11IU2BaSVZYfF5HNG56LnMzNihfemsuVGQ/aT5tQGVNN1t1QElhLG1eeXBsYU4qKnx9NHpfLk40eU99d3p+dVk9e3B2O1c6cH0oWGd4M11WeCFIOj8udEVCL0BxO3BdbjtpNzsydTdgImFdNHlz'@; put 'bUpuQCRgfFguSnoxdV4xKjVvV3p6V3k7PF9lbj9nMDApT11gNzBsWyN9SDV2OnlCIkIrTDgpfGdiWzhnRj5kOCYhNEJCMCpaWyZ9cFBCPl5GKk42VzZ5fEU0Z0ZwPU9gSDF1eHl+WUJNTDclO0tOO2poTF5aMEBya0tfM2FGe1RAVCw4eHxWZVheIi49LkFxbXZISHksTDhFeE9mOFR0eURjTCFz'@; put 'YkFQLj12bEkhLHleZWF0KCxBMCYlRDkrQGgiUylROlQ8Kl1qck9EbUJiKEFjdDI3b3MyND1QMzRvWGA8JjlPbWZ4bVJETzFlYCl2bSVzYmh4biFwXnNiNDguc3R8diJJVUpEME5LUXVTPWtXPjBFUkxnOS5dfD0kS1RqIk5+dVFlbz9kLHsyPzFxdGxyUl0qS2F4KWU3ams/PDVBUCgqbntHb35J'@; put 'JnFYRnBrYD9HWVEldSRYMEE6N2UseDg8X2V0fT00ayUwe1phfTM4ZTgjU1RxNjNVfXlkVU9yNVNEND1HbDNCLC43eGRTJit1KFt3M0Isa3JDNn5WWnl0OmxEVSNdfFdlJXBxdTt1U3N2Ln1wQU9sbT15P295a2ppZ3FMNjw6QXc/N3ZWKisvdTRVanp9ZGpkZ0YqY3U1WHlxblBdUk1iXX5iPjd6'@; put 'SjdyMmhzI0UhZFghVWMvczNZcHdhJj1VQDVNMzpsOFZHQjJiPixnKzlvK014SzpkODd1Z291JDNVInkiSV8lfVZ0I3haS014XVFaUyRmUX51c3tJellrPmd2L2RnQVNCMkIuXSxBa0FTUHNba3AvazBPeSIlMXAlNTFwVGp8fV9kQGE4Li56elEveCNdeiMjeiNhSERjYEJfWUc7dndCNlsuT0BW'@; put 'K0dSKGF0djs3Oj1ESGA7dHhiRnFqdTFkVT4uakdgZ1Q2Xlhpcm5TYUFwRF1DNDRwNXBCeSUwLGQ6ZTI3L04ibyQrfmo1S2xwQUhOZTZjc0VyIS92MzpMMFU7QURZMEkvWi8yIzNFVEViZE98cj5sOXdmVVl8SWB8bHJ7XXNoQVRYRlljbUkuPyZiOzRjQjE6Jjl3SV5SI1tTRW5+JmNVZm1JT1N8'@; put 'WX1SVCMvZz8pcHYlVUtNOzs9cU1tRmImLCskRUdeQyV6QlNSUS81aUJkRSpFIU0+bS58Pi4/eEZIKzo0V2peTWtqaCUjUj5BYkZ4bExnL0s0JVhkXXNWKl9afjVraE1KPVRVKTd1QkIuQWtBU2ZVJWcqZVp0OnNrSGV7Y1NZZ0VCTnJAZGs/UTdJTi8vQEBpRF9TcjRwS2pKMVU8NEVTfFZwbX5u'@; put 'fDY0MnJ0U1VoOCRqNDc8VmE2bSVac2dWVWxnOl44LCExRkNLPDJ0a0AqKjs/XSZqLD9pS2cpXnw5OnR2PC89JmE/fkVeMG1dUXI6OT06RFFifTMocCtTIzQscjleXWJYXX40W0hGaTxsezY3UTFHbkdMcm9uRi5xZjxFOUsjZjxbOyZpZChPXSp8Tlt2WVE5RHhyLmJqIj8qfFBydyp2e0o4UX5x'@; put 'K0NSdjg9c11aTmxEaCwhW1Jrck03Pz1yOXltY14zLj49fC9oUTk0OTt+MkpjNjl8fEF+TFVBTmV5Z2F4NS9DczlrWzMrWS9id0N3V0w3L1V+YVhBYThZUU0yOGVGLDglWkxMP1ZTaEpjSG1LejZdY09mYFdrYSM+JjF9PXdLQCRHS3M8OTs3V3JaNyxWXUM5aW1GdSw6diRgeEIrY2V7cGE3djpV'@; put 'UU8mREI0U0tpfjZKZyEkNjpmQWJgaiZvTnw7VSpfR2JLNTl7NGx2PW4hSmxCemQuPTd5NV8wazxdQmBDXyxkLl5ifWwrQE5aVDVSJThvKm8/V3BVOEBoZlJ8OzNkTyM4VTgjWk59R1draDJEZjozYUt+JEVePVg5XnVNfFszQTB+VmtoITpPVSR6b05LNVQ6YjUlaU5mUFV3cnwuOXEmR2o8eHxW'@; put 'Sm9TQHIpIltEPipJZGhhYC9RRFRVJT02WHxlYHVDOGQqNkdJKFhtdWsrTkNOKWJiW1NnMk5RMT16QFQ+N2YyQ3xQY2VwQmVOTUlqbDE9cXFFfnBqbGFUdEJjc1RUUzQrNzBZPU5IZ29Vc2AvTCJLP1VJPE44bzBkYVd7clVsXjA2Qn5DVyQjUUlyaU1EQnRFcG1KezNxbUNTQDpKNSFTQkpTSEQv'@; put 'S3FWcmo1KmtMVXdLRUo1Y0csdiFUazlSRF9lOzBCdihXRGpWMyxtMnlzaHspM2koKEJ+RXZ8PFRuMWNbK0QxfjNheUQ/eGtvWChTIWxIaFVFYzZpOG14V3ZSemJOXX1RI0BWNS9DZVhwYFhwPlhSfXouQHR8NXtlJixVJSs5R01fUSNAO31MNz92YFc9TUFZMH5JT1huZCJfJjVleG8yTjdMa1BQ'@; put 'YjE4bXJWNyxjajgucGFlM25SKjFLaHkhc354N2RvTiRDTVVHRDJdSUFxaUV9Wn1YMSxDe2hvPTEsdDNYRmVeRnsqYXtkKCtRKE5kXnhBYC8sZihLMmU0JD1gMV0pXXApZUZ9Rl8yY3lzPiwmTn1zeHQ/bzdFQS9QYkE8VlZjKSxLO11uJmZmQ3ptezNxcXt3eEo2PSxGMlREPDJDWl4raTFkQmdi'@; put 'Y3tWVypCeSxsdWZ5MzZ6LiYsOmBpQUxuRTclYlJDVSxJO1Eud01AXiJtei4+R1VCIyE4OnZraCxgbXoue0d7cEcueWZ7aG9sdS5zMFhmSyEsWVAwMyszVGNGK2IsWWlETGFqW1V7UDtfYXR3als0UjhZWU14VkF6a1B4eVAjN0IyQ2pzJCZFWyZPUzUwdUVAPUIhNXNgUV82QFJlT3lle0l5WDpT'@; put 'c1g7UDgvezt0Ky5GMmJqLjFNQiE/dUI7fUozSyx+ekl9fi4+UXwucnhRRkssfDNSRWNmSSplMWpbUG8oPiNwdzgmWTQ2Z3Q8VjtgcyUqU3d2RDhpbSlQS1ozdkc3W3AyZ1lqKWUqQX5WWWptNFlGUGF0YFJdWFN1Tkxpd2pNfEt+dWcmazU8YT9hQmA5O0pnfD8wSDhNVUszXlkwaytlYzd4Qzpt'@; put 'OUxPVVU3fUxQSk9iN0dGP2gpcT4yQShLUFl+L2d1YVFyRzhTTVEsQGc/SEBGbDFaT3d1Un5yPFt2SnJIY1tTSXhQVXpwVFdITXN7JitiOSRffTVoKj8qIUQ1cUhtYjFDallndn1gJS5WI3cpSVp6Ryo+aFtLQmYhZjg9Rm8kXn1BY3I0akhpPWtiYiJjXktVOWVeS147cCt4VFE7OFphMUZ1R1J7'@; put 'X1BTczRTWEg+KkpTfE4iSV56NDsmKzNfNDh2L2pDMl1pP2A0N19LcE9NWjM7YDU/ZCR+VGhfOVhYZF0kKGFzOXxOQWYpY0Q9Q19KdmckejF2R1osJmJrY3htSXhFUy93TXV+eSFETldkTDhRL2NSRVI2XjJDYnYsdWk4bVptJkVyalteUD9XMGhrQkhOdTQ+NnR7WHkycCE5fXdmc21UZmQiM1c8'@; put 'M2BvU2Y0Jj5abU1wbmsyN3JtX2BVKnViaXBeN2l8e1BBT01fRV1wZUBoSTM6Oy53cSZVPWhwY3s3UGtbeF0iWV9gb14+PHYwXiV3SnowWyZpaHpfQEBSRSFGJCgvPDpFT01iazgla1JSaVVobyQ7RXlEVDVBSFJ0S2YzV1tLcz5VJGguaHBlLkFjb34yW2JJLDMoYy55VjoicjxLYyNAcURrMX1z'@; put 'Pm0vLE9Jc30hTjdRL3k6RCZzbEk/JG84ZVBPMyxbYWV7W284K01UZkRNNG9ITnNdKSI/JGBvYTxfOV02RkVXVzEqdT1GbmE4Znl7MERtOClbJDZqNH5tWz1ocD40IXFPMT90RE59Mz5tP317S31tXyVESWtRJEomUk9dLFBsO1lkQHxlKyopeyYsNHcjQ2M6Tl84PFU7QGcvNCtEN2Q0LDhmcjg7'@; put 'Y1JlRkVXd1RfRlY0LH5eWG1yXzlbLzNhdSZpZkJmK3VOfUVKZmlGMEdydmBXPmZzY1t0OE4ybld+RmomKF1XQyxtZHR+PSlSOmA2YjVLeW9XTEhgVTRwRlFlTnI+Um40QiNCcDwzMVhDN3FQP2NlNGs/Zj0sLzJoUGdEJlBJMnwxbzJ1W3JUcWNnen1ERzBOWFp8OUNTPm1ma1YoYy92Q1MkcmtM'@; put 'RXEmKVA6L0lqQl9aY3J+a0ljMDMiMlRENFQud1ZSIWh+biZ9Ri9NcSk0U3NzPy4zUXlFOC4lU3toZmE4ZzwsQmgyRl5IMS9JOWxLOSs8Zk40OFQ/S241XktdWj1fSWh8RG4pUjp0XndxIjNxdEVVd0xXe29KZm54KCNHUU0zMXVjSEdrakl6cXxaci9PUlJuWDJkInVxfGRmTkhGOVZZamZWKiMh'@; put 'YU83d0NDP3hHKnUpTSE5TzdGMDsiY1FNdE9LSUNCeyp1KUFpI1BBOlhYcz9PRyZJfTRHRnZzNE9QMnc2LmxnKDQoLyVmOGpDQGJ9VSk0fXNPbGN0Pmc4MyU9czt2KTwkdWRoaC80djpdNEdSS0IrdjlSXiN8JndmQywoZWFCMj5oTGVFVUxLbEVULFprY2VgJHdAeS80dXhnQUdPcDEoQipoW3Rz'@; put 'dkhIUU9BaVdHTXY2JThXQ3RCPEcweWlnZipQJkZtNmx4bVJQdjJXRUF2KFhMM0VDQU9oJWY2U2QjQ3AqWDs7e0VSMj9dJkAxclBQb1cpbXArOkA1W1tuUF17K1heaGQ+bS4kVyRlLH5uQn5GQDdSeTs8RGZValRqcWM+WDxpPC54MyFnQks2JDV4Wl0hcmE7LitIQktePTNkdWVtU2Y1bCNrYDxW'@; put 'ei9hVGwxRlAiQDpUcDxOc1RDIj0kKixxdi92RXB5REhWYTx2M3xyY20wNj4xKylWNVUwK1c5Iyh1O31Oejc/N3Bhd3s6JnlnRjo2ZnNFeXpdXVtjRz4udzcxKWYqZHcmPyFdVkQ1c0w6Z3Yyej95UXR2MGljVSMsVER+LjExRHpSbDU/cH1gYTo2YSRMUGp6aWt7S093SmBrfEM9WVd9RllSOm1f'@; put 'Rl9GbnhnYFUqXW4yQm4sK2g4bDVxWCxxIz85UH5RYz5dcGQhNm5AajR7anIhciwrbypWWiU3bm5HTj5WKSI1LCwwWHRZKChqOGxdYTFARy9YRilXTVs8ejc/OD1WVil1ajpxeXdzcHs1Y1JLWSUvYjtOZmlYTXQkJDlMO0o2aGtlNF1EcGNkRjUoYEw3UWUrOTtOdFhxc18wKlhPWE1bfSU+dUhI'@; put 'O3o1XnAhL3Z+c1AoYCgiKWBARVUxU2pmT3kqWUYwZlB1fls1JU5pSCYsRCp9JixpPz1ua29eOE9jP185X1JwXTx0b0AlLEp3Plo4ZE80OnxgSktgfVNQQDNYKFI4WXcoQnJyTCIpVkY4TH1SYjlAPzk1aixfIyQ4NEJDZiR+MF1malFDNT05NVtIJERmYSFAQ0RRU3Z+Tn5KNH44OEQqbV19eXpf'@; put 'NUVnY0BISWF+bmdfTnE3SW0uO2hIT3szUkNNVzRfQXNnYy4kZXpMSCx8S2o5MEBVI2hJOmN0NCxMdC5faTY1XlM8OGxqeShZJVIyd3t3UjUuOXRWcl50SWMyXiFSfWVfPltUbW54VyZ9ZUgrSXc6PEtWVFZ1VUVNWixqI15dWmh2REN5MTpicUROdT4hWGdGIV0xMy5aX0lENVtgY2lzKTJEMTAo'@; put 'XSgudkV6NTtEMllGTyFPSk1GSyFHSzI7QUYoOWpXOC58NFVCT0d3b0cifjx7MzhYYzR9WTEpbispTFZXaEVwS11UZVUicU16NHdyWlJzWmRWYjsjSHo+elJKeyZmMmpKQSo8NlVmWyEqViYrSkMoS0lkYGdIdmkja045O30qIipLNS56akJ4LjtTbEo5fFMhMnVaMn4lKHRzMWYrQmpoLDJ7NnUy'@; put 'NWZeIX5BTlE1NyhtUT1wLEVucTJxNkFjIzglXW5uOEcuVEtZMGRmUVBIbTN9eUckS29WbUY0Si9lLGhIc14zNnhAb0g1USsuPH1YWmFzTFQxdzBHaF4+IztAPG02RGdAa0wmdEZHPWBnTylWU3dqWFNmPj8kfFgxMWVpVXUhNF53LjN+dl9wVFVsJWs9RkJUQjshRDMhbXssWmE1PjBfKDtiSXln'@; put 'Izhob3k1VSlVMF9kTzlQMU4uJHBRUXwqK2k7WykuazRQZXhmViliZV1rZiMpO0sqbi57KXpNWEA4bC4yZ013I010PGhRfGtFRVQodFh7SUBhfTNMPCVdMkRMImIiJUU6MCxDKnEiNiZaYDBmNDtLNTxxcmNyZV54eigrVEA2d3w0cXFhSC8rcExLKEtjMyQ6JnF4SiEwekpoTzNLdzlEMjw6fXZV'@; put 'SntPSGlYYWNbbFY6W2J+SjAwSmBDKF5DTChgfnNAMkddPTQ1Lzh0PyEuOypLfUQxXyUoYVg5WVFCLGtiXilhX0tdU3p8WGt2aV8uUzswOX56bGZ4NmpWTDxQXmdGaCZlUTU4VSZYbTBRRkdQRVJ7dkVDRVojfDNjMnwkRFNuSlhUJVgzR15IcjRlUktsNzJCIyFEP3pGO0J4V1dteTEvRXQwN2A4'@; put 'OGdgNldQWW1dNT8ydmhRTkF+X0hPMj1JWW0sZ19CRFtiKkFrcjZiPlFRK1B4aEhFRVJ4cnZaWiUlMkBGTmNeclheMSJbSl0jdTldTmlZTFkuTDpeJHpUL1M+ZUNyKjM6PD9XajwkK2ZSfGh2cTZVMTVkOkxKe05JU2hFK2BdP3NYYC5+VTB0dj5JdjxxZWJMVVdKamdqLy9icFd6IiRiZmE6OyRh'@; put 'Kk5KQiU3Qk05X2xdZV4oezhELGdJaWVGcjZNYFA8cV5Rc3Z9NWgzNTdPQjV4ZDlMNlM9YGNWeU0wQkRbdl9QNXJqUmBTSWY8fGI9eEthIVVgLkRDZThhYFI0ZzovUndKTnpiNHwxZVBOVDkwKTZGQj8hVFZiPTl8bzs0fkt5PlVELj5tQChrJmhlL0w1anZFMH5LRVhPJU1jVjBFbSpFIlJMZiJ9'@; put 'SENETUk4K3xmW1gxcEpMWnkmNiNKIyx2NXpjPmkmZTNUM0Q4UD9+Ti51LnE9TWRVIzlVT0tFImkqc0lVM1suKld4ZiZqW3lQeytIeWNNayR+Uz9LXiNTYEUuZUc0KnJIP0kqJTxUdG9vT1ZbJUR9QF1Te2dgfk5qJVpwOUkzMCwpXU1bV1AsWzBFbmp1NnF0eiQocHNZJkFPT3REcGwwPGUiQ282'@; put 'YTlpeyZ7aiIhMGovYiQpRGwid0tYYkh0dmdOaDFmP0E2aTRvNGFpJU8xcmNjLit9MkFCanRrW14jPVBTcXNgeE5IQF9OZ0J1ZVF9RUIhdyI0QWxYPmpwayI3YiJuKmd7RWMoMURXPzVNPTVAb05fWywsW1MxfTRgPC83SD5WdGh4RyZMVUM+WjBEYyhOPzVucWAybHJvNWo/O31UaUwwJGBkSldW'@; put 'M14mViQockt5N1JfKlpxWD9PLy4xQnl0NWBiWj57WXlFR0w7bC90MXdRdSxOZ1BzTnE8TlZXdy9eUT0odFIsZ1FnUV9aYlciendEfUVoOzIvYiZoRXJGT0RqV0xeb2lENXQuJGR8Yl1sd11lQVMqJH5NallFbU1DTWU6Ljt4QDQkRE9BRTJQSUp1TytiMnxYPk5VO1dpIWdkczckbCY3MiRtMWRY'@; put 'dDdYSyJbOWdYM0dCWUooNlBtan59W1ZFZXhnYE8rcjV2L1lEbExGKWpCNiZndmZnTTJ1XXZDTl5ETUNlQ2V0aHhON2tpU05xPHBiVVdxdDY8blJEJHdFYmNkfDhqJUJ9dDdCZSN7aUwkUWhNfU5YSU90TDxNJjY/eE1xQ3loRyJfVlB2XVdtVSJ1YGZ1WHxLKDxnRkc9OUUpKCJ7V0dkdl0rWF9W'@; put 'SEQvXUlvQF4xP3U9SnxuXzE6byRnPnMwIlFVbEwzcGhfPipXWk5TbTFxMk0zclNMYCpNODN3V2lvMHVka1BbYlFacT0oKzZ1Iy8sMmYvPUxlR05CUGFYNz89IXozPkRhZ3N1XXh5cmY/cFpNbSZjPnFicStrbll3dUNvRyYkTitHZytFSD5YemhvZXAzX1tOWD1iZ2YqR0A7W2N9aEVXSVcpeTp8'@; put 'NiJlW3ZtcCtGSX06bSFPL2ZaK3V4PDh7Z3JjUGEidUlteDI0SCU3bEcqPF9uYXxAZ05wNnV3SFp2a3Q/R348UTQlPWJ6KmVWPkpmRUhfI25VNjJRM00mPTJzLFh8Uk80RCs/dX5WR1MzQDhoKSZmYE1FLnYlTThhWk1kd0t1R2dUcFRfUGQxej1sbXhVbGBDcExwdWJ6X0x0TTtFJXs3UHApSTlS'@; put 'IUQqTnhNRTJAaHFMakhnfFplR31jWS5xejdWK1h3IUhyRFlxaSFLI1VqUS85eUdGKEptPkwifjU2aGhdRDB7VFN4VEFDcXp8MDUycHZUQztJa3NwPk0/PHNSV0dCWnckfHI/d3lpdSkjLnpgMS50ImFJfHRzQWd0TiMsUEJDZTtyL2N9YCZhdD0yR2hva0xyN0VgVUxkJno9VUFeLjdaP2MxOFZP'@; put 'Z35HRVB3eilFO2sqNFplQ3duY1E2W2M8e2xzZzJBLlQlTVFta0d3cjcrL1BBPV8+Nl1DcHxUekUuUmxMQEpzI0VtWyQhSmBsJEtWeT9XLEpLeFtyeyxQbmxHeCZsbmBoWXomP2J0JVUvRXckUzQuen0zYDVjMSR1K2Z4fk1wJSsjYDwjTWMpeGY+IUVgRzAmUldLKjRmbTVJTH1UXnVfKlIwdWlr'@; put 'VUttSzhafH08TSpyJmVMQjVvcTJsXSQqbU9MdT54c1ZpTUR0ND8zdT5+PkkwNUpHNH5oRWlFaWo9W2toQWpnUkk+MUw+JXo6OGMiRGNXT0Q6Nl5LVWdFSnEscXNFTSpwZWVReVpbdSs1OGF2c1VsSkkvMnBgODBsKDZpeSgyMk8hZn18bmA/Wi9UUldbeEZPY35vNUxGXUd7JjB5dXtuN1B5Q0p0'@; put 'JDtII1RCaXhkWmlncXwmO1F0WjFrX2Nband7YEpkPFZ2ejJMP1Z0PU4zNXF+KEJeXXk0Ymt7NDA0L1d+X11wQzQlWndZVEdza0h5bElYRm1JOkhZaSpGOF9PJnZWcnVoJnBJfnJ8UilnOGNpaV1HRlB7KXlIP05ZKnAidykiTEVLcCQiXSZeKGo7WV53Q1NWV29VZjptLyg/XipFTFFKMWNDY0k2'@; put 'Q3ssLDFxTCgjcG47IkJZTERmbFQ0aTZgQnpmNmVdO0I9UyFnUmQ/NmNIbjhyd3NqX1NVejxYSWJtOChHJnd7OmVodm1XYDlkPVJmc1hhRnBZdyQ0aUZiSCxuRT5MNjF8V2NTRS9LUGNEYUIrbFAvakR8e2lnVEghRTdASzROeCNpZXwlLCl4PSJ8MzUqbHNzM2JIYHBXXX0zMl0mR0o+KilqZHVu'@; put 'aSZQdEcrbkpEdmI7dE92dT1uKUhSekVTQFNVRXc/YTZRUXo5flN0b19YclpPJiFdKT9NeT07e3NNJWR9P1JCXW9rOSxnZU0rKmYrdHcsQ1oxOVhGVDMyZFRTVGpfPkU8cXguSzIsTDwkTFNzbF44bipYVDBqUGhAL0dLX3JeZXNqa11nJktrTXBKQFIwKUFvKyl2Kj9xY1J8R2xOeVp9MVNXJjpS'@; put 'RUE3JChtdFd4Q0ZJYU9yMz82eVB4L15eZXBDZjhgZj1uMWsvNEorLCJmK0o2T3tHImlRN2pbI189W3tZYFMjJFlsMz9xflQyVncyTmc8aUYzdVpmMS8jaXlmaUp9LD84emkjRHNfT3kqMXZYK3dja3pRYnQ3KXhgUmVvbz16OGkpW0pRRkpTNSRvKlFSQGI3IXVsPTF8RHlIa1VhRTQrUHtGPDtV'@; put 'WUc1eHBETXtOa213MUBlQGI8Z18+KUtEPXswIyMuQCFeKThgb1dDeC9sbFgoVVdzaDR3X312IV9sT25jRT9wRSo/ZE86fTJsZDxyZlVpODF3T0UiJH1LPzs1dC5uOih5Tl8jKnRIYTAuey8vQ1VJTz9HIXNeZkd1ZVdHVXxmZDNZcXE9VSNJWEAlJHRZdC8qSkUrJjA1ME15ZCZvYmdLJE8+R3gv'@; put 'VVkkKCZuMX1tJHp4VlNLPG5hJD9QRF9UNVRaQTwuenEwSHVebiUiXSU/bXk4XldqJkVsMFI+THdTREhiRXpMcyhPJEAuZ1J8LDBfVEJ6ISNKVzYuSjBnUVZFbXk4Mi5icm9ydzlxIXJhYVBEIlkzSTBqKXI+MS5CIUdxSDp8TiZ3TmhUT1JaW1N2TW9jZ3xGajxwSXJGWHVAVUAsLH5IRn5kVzdi'@; put 'YiJATitkKWZCaFVPVSJhNyFgUX1ELHBCTHsvR2JVVUFqY0dDNFg/UUgpXTEjP2NLbn5bfSltMU1TRTIxIVFTWCg6R3UqSVZ8MDgjPmRBbWNzWTQwS2xDcFZOZEF3K2RtITF8KCFUUU5KaHZSaTJpIXoxY2ZVUFhtemx1UEY8SyVqSEJrUUF+Vk1sYTlwTS9YZytqWD9sWWBZY29IZCJ9dz4oPWFS'@; put 'VVE+cmg9YlRzKmcpO25sdnA/R3MxS2hZfHhZNj1EZnc9VjlPTEVHW0ZDOXdkeSkjM0R0cFErKEM2Y2hTPlFXT0EsRTlQbz9VPDVsTWtgKy9QTUh6WHNiWChaUWBZV0hYSnEhSFlYMTokSm91N3FjdUUiUmRjT0sjKHE2Lm9gVEUuSzR3KmV6NlZaR0ZSRl1rNzhsJHJPNnZKeSZKI3d8Y0dvbWdN'@; put 'RCRHbSJVUUd4bX1mcUh9SCZPbi5pdWlnQmlJKXQ5NW0wN1k8XlYxODZmVFJWLjVCR2J+TjpjaWhxMT9ePm8oKmF3PUEralBhO2hDQXk9MT9me3YsdFo1IVtrbXExdE5nSyY9PVlGNmtXKFRtJFFjKG82Mi41aUwkRDRxPEZpUnxmRX5adj9WbExkcXA6cEohbSxlbihEelRTUCxwVnFOKTcuI2d7'@; put 'KkdSITVaQElEbjFfQjckYzIxUDlwfD1LKSNLRE0qOk97cEk8TE91JHV3ZkdVQWxINmU6JXQ0d1k5cTFPOmd0dzlkTnM3Mlt2XkdyPUBVbEV5NU42RTM4Nj55NXpJeyp7ZChrL0hFaUtEOjhSX191K3VOLlc3XU4sRjtUJDw4fnghSTk/RmppemI3YERGVlR1IU01bX0vTmxmUSU6Lzt2KCVoa2Uh'@; put 'LipdU3lyYFBfck9OOk5gK0swVl8wL1FRVWJCeVNsYz0vdn4kN0FtJDVJSH42Z2tAbHMyO1hYMyF+M3cwaSVLUT50Y35BS0J1Y2NDUiE3eEJdO2Zxfl0uYTwpe1JuJjM2V3tEQ1hoKk84aVhBJlhIRUkkY1VyZ0JiTVtOfW11W3VwNnEoKkIscG0/YHlIVT42XU9DYiNFNn1FPjFyQG5QKTc+a0t8'@; put 'KCU9VCVVX0I1Sjw/ajclPS9DOWkpa0RDc3Zoci5sVixBbX1TLClrK1EyJDZeb1lwZCRtRGFYPXJ9V2lfNFFrYCt5Kj4qV2kzVHF7Vm9AdGRjMTpwI01tUW42TFRbMGR5QFg+Vj1uanhMWj9APk5kK2cpVzw6cV8pX3pFTlR4YDVoeENFXVAzOzklX1lRSi9yUHlRMGR9M0I1azRCO19BYzxLaCNd'@; put 'KSFNTE03WDc4ZEBoKTZrayFQXmBbOH48NXslKmJfYTkjamprU2ZmcGohfE5HKiFRJi9vT057e3FBU3lBbEx4bHZ4NDxGNHh9flNRLmJGLnV5QHttWS4lKSR5WXRoX1lqU2I2ND9SUks+UUdqJiVxMUMmWyVaUUt6X2xxcGs4Ny53RE42RFp4XzdMMFJyO09UYEdkUGhxeGpHJSg1LmtTOGF0cHMy'@; put 'QjJWa2UxbkAjU3VQT1ZJPjBYUGMzO2t1UV1DdWBjMk8+ZD1ZYGg/TH44d2g4QmE8S04rdkVjdSsxQkR2IjohNip2PjI2QHRAb3dbflIsa2tLc1QsMVtlY3t6XSs/OG5ORn52TFYvc0Iqb24qQltJJSk5Iy9bLn5eL2xONF9FVmdgbSglKDNqdV1eMlJUQmdDVCpKPHAuYDRedmpBbDIjLll5Sl99'@; put 'UlIoRVc+cE0pIWo7U11XM1JHTldteiRwI207Skl2TnlkQUhuYUtDeDVVT1ZTTzEyO2BmPVQ5Xj8lNWJjR3k0cHViK2UwaEo4MWw6SWV7ayElSjBxN3xVdlltKGpRdGhmQHx9UnJFLjF0STs0LiMvNV9FWUFNYzYkb3ZxJXpgTVhXKzlEWE1KZF8wJStVPVs4az47ZVpzWDBleTo4ZlcuYE45MVlT'@; put 'NWVmJiMoUDNpWStFJnlTSmMhN0AiQDlnX1tsd295I19sLlFXdSFNa0V1TmprPzkkKy8uWTpASWhvPElXbl5GJWtjPUEqPnEqYzM3VTxkcntpJD0mLjdKMGc8MH1bO1lMcXlNbTBvVU1DYmJzcT8lKyllaT9aKGo1UUlLdz0zQVpaL1EqdkJxVFA2a0l1NXI3TiQ6eStdPWE0d1tXdmwia3w4d0Au'@; put 'Z3d2RXZNZjI0Y2xlP1BKJCVuKWpKSW1EWzkwflJyJXkpQnN+dDR6P1E9KHZ1UzxsN2AhbFoveS5TVGg+Ry5JZCN6ZTAzJmhdZ2pkVn1mSVI8e0N4Qj1pbXRXTT13NyxsJDpOKEF6cCsiOzJ8PnUxPkM2KC5PI1s7LHlkOkJ6QWFIYnZmOlNqYDNZZiYsfmxvKmxgekNxMz90ZiVTcypXbUFHNUBH'@; put 'fikhWUN4ekhNbUt6MFZ6bl9TK0lqYjwyM3QuczZXKEt0OSMrUEUjQ0Zoe2Y3RSsvM0swRWh3fSshMzU7T05Wflt4LiJPfTdfQFtUOUJZUV9mUXc4LkM+W0c1LGBwNmt1bTIhRD8pNG5mUjVubz5fM2ElJDVVdlpbcU4iKHgxdXxJRkNfPWk/NHopU2B+NzcjM3Q6U3JbaWA7ZEM5cmhGKHJfci4m'@; put 'KzEuN2E2RF9VIWF1VkZQMXNFeUVuQG91QUIoJD4sJiF8XVolNnVySzouSWl6PT5kM2khQWR6RkBMLmk2VDIpUTorbjw5aDAodz1UYHFzbCFjMEJIciQ3WUE+Q15ZUiF8T11lV0RfcSFPP0creE5iXnIlRkM2OVFIfmw4Y0t+NjozLDxUKz1IOys1Yz9pTCp2OEZsNkNkQ11+PDpsWENPZTVQKDhp'@; put 'fExmdXB4bEdhc0ZLL2RuS08uJChfUXcyKHZ1WmMjV2c8WytnfnNeSSQ1RXUyUVVmN0x8JTg+fHRDc099OHVjQl4/dEE3JllkJlF2fD5fTGl9aDc7UFJtOTRIfW9nND8pYTAze1VMcUB2ITw4SlJ3fj96Pi9JfTpVZVBQTk9fTH57TU9AYGRLaTd6Y2UyeFoqLCMvYW0pKUVhOz13UUQ+ViNUY3hd'@; put 'JjtUTVlVNEZaSVQ/Zl9fJmVwW2pZWEJyOy5VOk1ue1ZraVNkKUlqKnBFN0F6KzdUfWl7WnRRU3JLOyNTWGRvLkliOSkuNnkuSClETzw0eEIlb3l4WkxTLD1tZnZqN0A6dj15RTZ7RStCcHd5WmpMUzRXeyUsRHM9WiFvfiteWEpyUnUxIS4ifmBtKTQ1aSI1aFFCMXdOdFRoVyZ5UCJiYFVfQHVp'@; put 'aDxgKHVeIUdnWFgkd2xzfU9RM3JHVXU5RiNlQDo3O3R9Kj9gKnU2YURiaSt0e1BrV0JTUFMldlpeOm53eyVIcSJxUjw3OFdxXiZqJiosPyZfdGdHQiVFI1pjaHwlKSVZWEAwc1E8XVRvQkRSKUQ2bDdqakZvZCZ4ZzYzQH1IYzZ8R3o6KXNXdDMpKjw/Lj9bZmpIcG4pUkd4aGZbSEkxb24/I0Im'@; put 'bCkqdz40fFdGMSxhMmAsdmQhSSMwIVlGdSlhMyUmeCZEcmJ4JHo3dXI2LzQxajkoM3BCeDp+Yj1UI1JEVWQvSi5hNmpDUUU6cUR7VH0+PCpCPX5sSGhmZTF6VHJkRkcrO0h0ckI2MTFzQl00dyFVKGFSeDl+enFeRSNmbTlueyY/RDc5O2d1fHo3ayVEI3gycF8yUmROX2NsQ19fPzhrSj45On5t'@; put 'O2AhI1RQdUpxVHtTN1NEQkBdSW86YGxZUG5JNkxENVFuVjV6Mzdbdzh9b3VLNEQjbTlfYUE2LyZtJmxwSVpJd14vP3QjNEd2VyNxNzptZGJzd14uWF5dT01tW2xobVliUzBaUW88LF8jMXJbNnNoNmEzdEQ9O21KOUA9VH0rbHh0ZDQqN1o3Q0swQDMlV3h8e2Z0N3E4dFAxfXxqcEAsbmFPdDVr'@; put 'MyZAZ08xMWUsYCM5eEs8XnN1Zil6W0Q1ZFhGeGlSdXd0KTpOZWUxMnM/VmErSURWZWxYUEU9UnM+IWJXV3pXInRQeXlqKnpPVHVTZWlMTTZ1cC9rLm86RzI8YUM9PF0kaGxDI18kLClJeWcxOGV5IyNrMGlbQ18qNi5DTnQoZnNjSUlyKTEpJUVML11lbkZzZzY3YnY6IUJfck5mbzorPGM9Pn1V'@; put 'MEIqR3l5RWMkOkE/aldFdVBgQE9+alVzdER7R2NRSjhwRSFZWiQ1dncleExfTCoxITtPKVZhUmMiP2Q3IVkrW1ZWeEBTZHgwfSNTY2YlfGgxMFRuc1B0bj15ay9MTVNlaDgrJEVkTmdJZ3ckfH1gJkRkJHxLYS8qfEFpZX0+aDc+WCZtQDdMeTR1UU9hIyNhO1NMPVpNR0M+PnJFMS5bOVFWPlh5'@; put 'V0lyN1Q2WFNzcXNoNEM7WjV+Q044LHR0MjM5dmVVaEZzIXYuYGswS2EqUTsxeXFjak8lOj5KKmJKLFtBI1AoNUJFOj8yYygoR30oe1dmU3BtKzNvSD53QzUsMVZxfXYuM3hjP2dHOGJ+Xjc6JX5GOXtOXTRCWikrYyI1JmU1QFpfUCNtUFZHOWVzb2RGSUZGQnUxJEpHTVJeci9iQCxFfCNgeW0p'@; put 'XUheeiQmdj9CIlJWViRvRkNjSmkkQiY6eUV2KTB+P3crTio9b3twIXpsWDdnQj1NazRqOVRXZ14wWm1UcCttNThtQTN4fiU1V0N2ayEsUDRdOTY9MDNEQ1UvMzc8RCNgVStlaWA0Q2JrcXRwMnRBWyRrM105XkM4MVgrWHshI3hlOFI2LmhPJktUaEhyPn1CWjEpR1RESUMwRTVvO2Zla2dITX5Z'@; put 'UjMqLkJqQHxdV0ZHXkZ1Z0d4RlQhMloiaHp3fC8hLjtuW01BUHM3JUwpdXNobzY0P0tGVGo6RywxamF3YVFxZ21dU1NIQjNCWiF6ZmZAdjE5SF9PZEdVJUIvUFU9SStNZzdFaHhAKXhOKXkyVX0rOUVtSy8rLEIzSGd4LHQhNUJ3aW9ATUpaM3c8O0pHPDo6bEk+P3UzYGJuYTA+OStjNC4weFhO'@; put 'YGw2T3JUUX1xeGJJUig3Oi5DRXdNTj91RU9AK2UrQnYsZ25ucTZDRkZMSmA0RFh1JDRwczRMS0Z7blk7e3JpPVUuKW9IKVB4fkUiMEBGZXRbLi9jOGV9bzdISCs9UXlwKDNbM1dqTVtkRjp6T0IpV1RCa0s7JCF9WTp6b29iaGpfbD89QSJEU1t0WU5EW35dOzY5bkJLTWc7IyFYM0V2fCUqQW0v'@; put 'eiNVMWJaSE5hUX5AV3UqcV9NYl5VdGZzOk1NaGw6SzQmMlgqJEZteDV6OVpidFIxbnhqWVpiMVBpez1XKkI8K2tTTSl+TGF3MVglXjRQWWw6Y31uZis6XTFxI3xzW1VSek84SEZKLjpaOlYrZERPfVA1eTF+KT96RSY/KW1OQ1ZIOXJPK0ttLiZpKVRwUER1a05ma3NKQE8hUV9aY2wkJjk5OWx5'@; put 'Qnl4Lno3YmVdKlUmS2huYF9QSXNwfll5cExhcXMvTTBDX3A7O1JRVDxqRlJEVHZOaiZRe0RaN0giVEN8eUZMWis8XjlkTHQ6K1ZvM3BhVGxfOk19fT4pbGwmcVZnUUI/cno6OVdoNURnIURYVjcwYEd6b3V+WTIpLGh3UDExdyssOioxaChBX1pOdWA0cyQ4d1k3OkQqSiZPczAlSTV0NnhaXi43'@; put 'KDk0NFlCW1JyKFB2YEUqSUlxVXomOCE5PCJ5UFNkaWEoe0RoZWZhfCwsan06RVdjL3thUWZLQnVGNH5gey41eFhIaXtYJS4mPnlUQ11yQywqanosWDNWJmFCKG15XXRiaUppfF9vZUpkOHlfbHI5PCRqQzQ0WSNMWj8vQVFndmlGNnUhWiQ1MHpLKnYxYlcxXU83MGRnP3dwJUJ2Xj5od35iKDNY'@; put 'KloqWFF4KipnPjpqXz1jYDthR1sqTmRnPFRGQk92T2FeRCM1XkdqO0xaOTQ1MVRiVVBeZGFsNHM5Z2ZCZCF5aTRJfSQsL0xGU3JvbXk0ZDRTeSN8MVUuVSp1IlJwVzwucz5kbmhLM35PdHtbKjVebX1FbSFKaypfO0cjSj1SfH5aanApejUiK0A0UEpTWzswRDR+VVE5eFhUWVBMQ34iMnleYWco'@; put 'KShFdH5maH5FUDhCaWBCSU1ZY0pOS3UwalsvMyR4Z05rbyk2W0g6eCVCaCNGMWhUdCpTJC85KylCR01IO1pxYShgTFJLc0hjOnttYVNpa2J2fmBvJXdkRHBiM2l+VyxyemtEM0JeP0kkbkwpeSRYa0UkZ1N8MywmOzdOfWc7cDJvMCpZLGZCND4/a3FiK29IXT5ASEovJWc5MVB8U2pEQ3I3SFs2'@; put 'SWEqM0RkY1BjcXthZ0dVJEh0YkZhbTVXcCJmPjVaTzUpLyVzVTJhMlgqeSlhOVs2L3RbKVhCL1Q4cyQmUGcjLFJVKmtRT0J9alpqMER3dix6UEkmYU0xQCFaZWBoWDwlKjBiUXpuRmhqTTQsJjpRZzFQailxLm12VD1VP298aXJ2fDRWNTxzamsveUxbfF1gWkReJXI/Tl1aJVVebjFFXUh6SV5w'@; put 'OmxbeElSXTA/SGtTMEwiNm9LYih+aEIlN24saEA4IVNhb3BRfHI2QDdGWlMlWkpbeUtrVypMYlQrPF5IVl4+MjNnPWpFej9uQX5RMSglTDopNnM7STk5UGlxcGZ4VCEwNyl7XWpfO2RSMGUqRH5lPlIqZjcyTEJiXmRpMExFdEt6LDNwZTFJWDV7cngxMkg7bjRsWS59U1E4LiE0SkE3dUFIMGVa'@; put 'bikha3VQUD9xJiUodFQ9L3M+MzcpTWVlfEpMSkdUI0F+Smg5L2F4Kj9JdiRJUFE/K0Z5UDtnYWNEV18od1FAPylfS0FNUXo6dERYQlNtYD9PV2BVW3Q1JktQZXZvUyh6NXY9aENbPy59KFYjIixFQztnUk1ZMUVHKVddR1M/REVdS3FRSzooMyRFMFdWUHIlWHw3eDtvbXtGNjg4aUV2RDBhekkz'@; put 'ej8+aHFiZzs0WXBdbUVYJGpURmQ2UyU3VSkkNE9mLCtuUnVQL1csQzs0VzdEYDhuL2VEYGA6fDs5KGZ9JEhrVn4ib0YqZVksdVNXfHtgdzxpPEEhYklWL2FrNlpmSytZXzFgPTllfG8maWdJJmZdOCF4YEcuQ0BTLiFWMXNDb05mckRodk82NDwoWWB1QjZUMWxVYmh7RShSJUVPTU11UHhTXyNv'@; put 'UGE1TXt0aTBETWJCWmA2YE9XUiNQMGRJL0ZlMF13UX1iZEZ0KSVRQGhARGRfUUsxVWBZOHlZX1dkUm5tNEc2P0BgWV45JDsxXzZrdnFnYDVzLDYyXkdSZ25rRXEpTEt6NkRPQjkraXwwIk1RSnl+QTxOUXJlQ0MiV0R1eSY7O3osX21XPCFLeVloPGhXWko0OXlbOmNGP3tAOGNRTnZoTnk0KENd'@; put 'cjw9TWt6dWleTVk6amM2azs/UlZmcDtLZXpDNEMlPEdMWDsqUzgsfkEqak13I05vbEVYZVk/PUhYOCs3NzpuIkkhL21fNyleUUpQVT0kIzk+V25aIjBffntfU15ANTldOFpLfnZwSEszenhUa2RkW19YRyhfTSNsI0dyfXw2MDA2V09qb1A1aSEqa1o5IiJbJX5VPE5LTTo8X2JYVkk5c1Upbkss'@; put 'MHh7TysrL3hETU1VSl5dMXF0QH1ILCVKdnpXLiFkR3M4bnBDd3RmKmhTai9SUERRXT5sQUxFMHVbfG9sNVQ9KmdsXSkmKkloWGlfPTgwLjcrb1N6QzBDakY0dEJOaTptJTpgc3ltezxfLl0mOi5IQ0Fza080TW5UTkIwdE5BWj4iWl1bUj1IQHtxZEF3dXcmZV45OzFbaX5pWTRFWl1IMjt2Qi5u'@; put 'NU5mRFl6NyZkJEgqUEUmMDw/YjRUOFhYKmBuJDIjMDJkI3tgdWlPKGUuei9OPVRKMmVYbWhOczheVVtjNzBXSVRHaEcsZ0VoTmM+M2tSQn5+VHJ3LCYzd19XMnxVXmp+Vk57IW5mZ35dazlOcSJqbU51Xj9iWDNtc1EsVn12cjdlQkh8Sk13cnl4czNvZ0xdSzZdY25oPzUxMjo5Z15kcn1XYjt6'@; put 'fSpkT0UkPSNnMXJYc0JQVDdJSHFOUH0xcSg5OWR4OHRkQzB+OmBbYyMwME5TeCFdSjMqRHxecy9CfjR3PX4xb3RwcmxZNGcvd1gpRD1BMCFNMnAiP0tTXWBCTWt3dW8mJCIpU092V2k6YDw0O1QrdTgyJDY4cXM6Lj9kSXppVDROTXpfQTtLYCg3emFtdjYzcEA1Omt+Sk9hanQocn4kLGBRbzNS'@; put 'b1haNm15VSN+M1dpIWxYeyp6cyV+Sj0mLj1wX1ZbXzFiMEteenMpekYmRkleJDQ2X2x1NFo7S3x2cV5MdjwwTGgsVXF3VjguU0hrTEJOWyRbQCgrV0JDbXRmQSFUO0Z+MWAhKChILFQ9TDdVZDA9SEBDbFA5UStyfFpPXT0xP3U6UiQ3XnUxNFtxUD1IMXU1LEddLkNWNDJ0LmE9SSN9U0dVMCpD'@; put 'I2pLOEp5S3k+TG4xKUI3ck1iKT9BQnVCfTd3TCN8TlJTYiNEXzJ1TGN9eHU5ZHc2aTtbdT9fbGN5b2JAVHdxLHBDJStRZ2c7TWdEOTt8MHJdLEhEMXAjc25iWXBIVFNKYFhEPDlTVlc8dzFHKzRqK15xKDR3JClZOEY2TzYoNl42L3YzI0ovUHtUbnZsWV1NUFkifT9OP0Z3RH13Q34rWk93NVQ4'@; put 'ZyEuWyNlLykpajtnZ0VweTw9SEEmd3ReSWA3OlQxVzlOYyttMGdeYzFwN3FXRltCX184PjhrYjM7bD89IzE0fWcxMHFIVSZyKWA9Z1pkUW99JCo8bzxwemwuOlMxKzsmWkIzMl81TzIzRlQvbDwhVGU1T293UWZaRT1oMlRiNzZuWnEvSz1+KCY+UjdfMTxrZSxDKGhvTS9Ka2dHeUVvSCE7SCVd'@; put 'QSJzTV88MX5FZ01rbFdOSDc4ZzpWUDgjXVB+JEdYNmwwX0t2Z2RoNUg9e2FLRyhRPlg8Xk81VHEsaltjPi5iO1BlMEw5LmwkZTM0P1ovNnhYOHg/RF83ZytdTHRxc0hDND5vbz9zRm0me0xLdV0haWQhR2pbNFNSeE0wS09YPChWMG9qQHZkMEh6cz5HWDA3SHhDRmZfYEU6NFFrKHJgbkVKIyZ2'@; put 'dWA6dT5TZ1IwZXMlWjtyN3R4WnIobTB8IXk6eVkwNypIaU8xJUd6bHlIQkdOOGp5W19MKjhLayJSfjF9dFRQTUpJWGVwMkdfV0ZTOVA6cTwjNlY2Kl46Miw0W1hmWHQ8RVJ9Xjg6ZHNjIShBMjsvXzA2d0NQLkptY3l7a2I2JThpX2BbMFZwK1h+VVciSyNNfG91UyE2OWFNKk5md257dF9qeTg7'@; put 'e1suayJYczdafGlJM1k9I3s3dD1BNiRmcmd3P1pQPUcxUWJmM0ZPY3BMNF89c31qUkxSQCRAWVhrdVM8dzRPfWNAI18oYCYrUU8pUUZsISFsVStUUn50Z0cmVUc7YEwucT1sdjhYelA8OD51OWZCfVFzM2QkRkkiX2IvdWo1TX57OHpINlkkcyh7dXNpRmxIZWVDMmAoKExfSkdrPjtMaT9FQi57'@; put 'PVo/NVkoXnEzSU11UFtOO1RZeyVmUE57eEgkd1pWfWs5VFRxJWQvNmNFZSxyLDJIaDdgJT1vY2dEKSZaQFV6OHJxZSZQb1BnVUdvdExKNDY0VmZsTl9iMDBbSG0sMUdCTi5hKTM5KXAvTCVNclAyL2NyOUlrWXp1MnJ0WkhPdmY1Ln5SWyR9ZjF7PzpkUTVLe3lDVj59KXBFKlhKRkt9VXM8ZT5Z'@; put 'SCo6M3t2PDpkQnpJT0pOUyE/JGE3OF5SOWt6SnBpPVYhV09UVk4uNyEoMVpkJTo1RVcxPm0+QGlWUVkmdUMpfGNEdWFwWFB+OUZnST5xSlt+LG02V0ZFLmxiNVJrPXZ7O1p6R2U4Km9HIiEzU3QiNmFaTUUyTVhARF1jOGh7fnNZQnp6SEFhdmhNYTI7Kls+Yz11dSw5YVM1VnoxT1cua0kzXXpo'@; put 'fUZUM3lFTURqdWBRS29YYlNGVUN9O2s3XUtfUWF9Z1NPLmhhJGFNWHZsXT5pVVQpcG1mVjU2ZjAucDRdWjxZZkJ6QyhqMC4kKUxoOUNEYWtkSHtxMXZ3RT8lKSpvcV15KW5WMXNRVTpNVEtTXV9WUSoyeE11YiNEQD1sLHcuLCQ6WUtoI1Fgd0dQLG9yMGgpMj0vNUZ1TkRYKlJBK1I0RHZ2ajY5'@; put 'Ymc9XiF1YjQyI0YzJHhfU2B4TE1ub0RzSERZfWB6LGAhSzZGZSEsNz9zZDpXR09EdkpzTlYzYXciRzJgUSQmb0dzZEhTcjdxTCs2RjBMK0lSUnZ4KUtmbmRJdXBhTWBXUE4lZ30+V3R2dix3JiJkJjNzfDRQa0B+bUMvaWwkTHxPOjhbQEo1X3VUbWg+b0FISnBecFBfTGhJVj1yPnVQOjI8P0kk'@; put 'anhvblsyNjRYYGN1bFFGN0J8blA+RF5vJiElaEtlT30vdkI6dFZdVzciXkRaTS9Sc2BOczBvUmZ5fkZMS3lMIU1nVF47XiVQKXxzdy5leVspcF0zWEFNO1c0OVNBY3M3cmQjWm9heyR0PmskR1Y8eFIlN2IjQjlKWWtwfClYWExvZ3dMLmlkQnRhVldPWEc7M3p7TCh4ZE5ZJm9hKkZ2ei9UOmFs'@; put 'ciMjOj9qKGRFen1AU090aFt0NnpZSl53aHI0ek9aWG0xdFR2aU5ScH1ze1Bwb2dGdH1UJng8MjNASjIlaVN1Nj8zbWNmcD5JSiVdclRzUnVmZFE0UX5nTiN0XlRNNXI5VWFOdHlmUjlRaXhyUXw5dWUycGVQJU8rUixfUTdzITNLa10jZjtoZDl6LCtSKixte2widGFmOnghe30jVCslaTArTz1s'@; put 'Ji5FZnVOLlokKDhVNGFabS5EcWc8L0M2KEVRfEs9VmpBXlE1cnwiIjZCR0Rkb2B+R2tHc0sqSzNqPkhfMms5Wn10SjckV2xWXzlMLlsicVQ8SyhsTn1vUSlWdF4vXWFoUWB5I2k9dyY0YEduTSNjbHtjZDlCKilmJihaVzRxMCNgd0EiO1BYc3d6dkN0Rkx7KGY5SVNlem4/bitxQXgwNmEkeGQk'@; put 'WD1eYVBMVWdPNndLaDYkVStXSVF3USE9ZFJaNjptMV4rL31ZJmBYSXBvVFJ+VywsKTE6ZXZaK3FHfHYkWmBWeSs2VXdMRy9FLCFvZUlpQ3c7eyZvNWNneE1uIyViZXJRaywjUClfKF5OQDZ8UXcpKEZnWyhYXTViUyFhSEM5e3dUeDoxQiFWfUQ1OGhtU11ES2BqTC9yOjM4VWwxVl5QfGosITgp'@; put 'WV1Wem9KM1Q5SDphSn1TdCwpfWtJcmdRcCw4ZyheNi5LYzw9TyJAc0dfRD0lZ1k8ZXVaXUNHRDohZiRSITpDeEc4bGAmJFVeYjcieF5GbUM/cEg8PSFxWjBAL2JmdzdzWiV0elpgbTdQemdPLGQhbD1CKGldOnNVZSM9JFJOYEguSUVZNWdheEt2XjFwbDZdKlsuLiR1OTV1V3QxdDZRanRNSmFV'@; put 'Sy85Ji5oVVhtTk0hNztLJjYqeyxWY3tjLitWTTkkbE4zdWtHKn1YUFMvUFlVQmNoSmlBay97Pzo1ZDlhe3M5e0F+L1lraGtOMmVyWWpRV0RQMnMpeixvLEwrSlY3ITwpUVpZKm5MTDJWMFd9ez40Xm5edUV8dk1xKEtoXSNtPGBQZ2MlYS5iY2E3Z2dIZD9VM3RAI0V9LnwyZUBFaylXd09wJVF6'@; put 'KlBRNXV8PHVwKnFWNCwlMi9pOzZ3RWtgK2d6KmN4ak12NT9gen5WRHdbPyo8VEtuaDZvQjdkUDskR15jQlkrLk9DVG1SdXUiRHpXW1d2RTdkN3tfISQpRkpWLkd7O09PIkQuKl4qQCJDfUJrQGNkW1duPT8pR1kpKjJqcUcuMHYlW0NKXzthWHJ+YGFddkZ9VCVnQylqY0NGajkmYU9LVVRjNzsl'@; put 'MnVEW1A6R2UmLnFVeDdLRCxbPDVRUVZxNUY9WiFjakwxVXBgWF5ZSEg7JilxYEhjNmcydDo+N3ooa21JKGNYTVlEWjkhQW4xRlh5ZVlqQjcmcn0/ZE58Y2ZFSDgufk1gTzhaWT9UTlpQMEJbJWhZenN2NDlWb3hGP104ZEFrZXhvUks7PzI9T3NRMj1lNFVKbV1iRXR2OmpoLHc4M1dXJFo6fS88'@; put 'ZC90ejhzWmdLYEU5PyY2L0ZMLmJ7UFV6WGVRKzBPdihuPXNIMkdRTyxbUjoze1J1KzsmfXBfLFlCX2BPMFVQW149YmFBQl85WH1pO2RadUZlRU1ULjVlNjFVbVN7XnFkMWJJT1ReIVlVKVFsLGZqdFMwN0FxUHA4XjpVdno+Wz5uOl99dGhzVXxtK0tqUXdWISEmXy4jR1NdOCJaQngsW2ZzakxX'@; put 'XVMhMzYkQ200ZTt6QWh+OldIJmFISGs9emxLM0omPkprSCMkSVklTiZiLihIYFFDe3orcCRURWsybXtqVyh1c3hwOClZVDdMZFNQOWdnYSxAVyp0Kl4/KV5OfWwwYUMsWGZOMGtsdFZAU0A6UENFTV8sa31fWDMleyZJTU04T09YV0tPZj4xfCErUjFkSFYve2dGL2ZZfjxlWDBMWHlKaEprW30w'@; put 'U0Y9UmcuRy5PdWYhfVcxPilHIUojcEMwaWkrQnkrZUVieEpyRUk+VWckNVp+K3ttOnkqOSwlL1ciU0cpcTlBZ2xhcmQ0W29zKXJRT3JFQChjPlZYPz9xUXteV2B4c0A/PzNhbTc8W1VPdy5mfmU+YitVYE9qYDBsJkhUXShoYmdxfVAhYnpZOylXTjJ0QVY3WChbNVMkOnx+cUpPenpRLEdSeytS'@; put 'RlcyWEloKXleMSpDKUt8V0IlbFpdb3FYQGNURlZuW0FKbz1UMDs6ck1ofVVKJUlveCN2OWo1Wjp6NCh1XjFXIyZMaU5XYGlPcVcsJHwiOyo8UTNhfjNPOztZUH1RfEVtLDlIUTY0YzRiLEppUlFpSX4vd3o6Q15FOjR2USZXNTBWdGhOZCRdYHw6OUddOm1UfTgkSlo+X1NKYDV9V1trIzVXN1Ej'@; put 'O3VVMV9BbnYuLFFiMj42O1NtNyF6N1V3YXRjI35bNVI4Ti4yaD5FfWg0fXp3ejFmcD8lXl14SlJgJUhLODJSUlh3ezwzSnJvMTZpfEkmUTlrTHMre0BOdCxMWWwvJGxyY2xeJD85QzR8TFdkYWh5YWk4ZFFRZmciRlF7WEgsUk52aGVPO1JzU1BiPjQkOjhGYTFTcTx4TndOTGlEe180fDQuWmV0'@; put 'UXpjQjM6LDpgQFlvZzRPSm1VMGs7ZHB9VWpTd3VRXnNEemZaYXdsRlp1RipkSilbe3NDPypsVHo2dV5oW3R7aWY5OyUkTFQobWFaYiFaYzR0WE88d2M9fj1dVywsNCVpWjJeb1NhTlAqWTZuVSxjOy51VjJUQWtUSjJYMCZMLDFFfXFSbXZKQGVdLHQ6Z2NtdmYveUZbeVJaU15DKDJGcjBWT3Uq'@; put 'cX45T1dfZDFlOzAyMERWSH45PztpOjQzXWBoKEtRQEIxZXN0YyRZUzxsI01rd08wJSRba2N1OzRGYlBzLEQ9STRKdFQ0TV9DSlgyNVIxXjBXMDhuSDB2S3VHeyNZOmU+Sm00UCM2NFAvI2lHWygmKille2V5c0o0fChmUiNeNF8oMiNKYnxXcmQlaFYxb1QibCtidTF9YzZ+UXR0eC5Pa0s2K3Jo'@; put 'TEtPVn5hJHttTnt5OGh9XnkpVyt4JHxwUmQ4MFR2P1kjZFZ0P187T01lajA+dnlbMmpdWSJWLlE8PSNOSDFTRnYxNz5FVV9XKXxTPUgzbSZ0MlM2SVNjLGtkcGkxSj1lUmBHfVQ+RmkhST8rSEVFaiI8Vk1yOjdjfndEQ1VWVl5nUWV1Zj4hMDlWPmtCRiFmMClVYjFQaSRycGEpKElvISxmNyYv'@; put 'aT1xKDYqe25IaGI2PmE7ZCp4bmhNUjB2PGtoTWhLVEN7UyxPc3I7aktidng+NnxBSTFoNEVtaDh2OVBTJnZoI14mQEt5Li5TQFoqJWw1SChaTypRKUVOTHdOKEBPeit2WnVrZXtIT04yK1V9ZHosWChiJiI+LkZmcj48L1BaWXNNVlF0MW9KV0ovNkliY1JkRUE8R3M+N2Q/diE3NzBLRzdJNFZs'@; put 'azcjLmF8alJaem8/PGQ6VFE0Z2ksOjJUJGZZSkRXV0xoWGxAczE7X1NuUmJndH5gbCg0MUUmdVJdTi5GPTxaVispZ2FqYSFiUzAvXnY9XyhLUT09Lkw4YGpnczBvXll2XzQ5KGtvV0JKfCVHNVo0ejVYTEpFTkMwUnBqPmFqIzdvWnY9R00wI2IiKG5fY0IvZmdxMzpRJitdai89UkR9QmdVdmIq'@; put 'bW9DVFpUMTF7Q0NFaz5MNztdQWBrbnBMJHc6IUI6Wys7KitMZGpFen1LW2Z6em9RaUwpRlFDR0ZubklmZmx8SlFUZ1l6dipaLyQmdCxbR2cuYypWP0A0UmFaLjF7YE84eFt2fX5IP0lyMDZYOlZTQD97RlFSfURCMUpAfURYYEdmJCpbSi5ze2oveGBdeTxnQi4uWHZ7SS9GeWV2Rz5ObFo/Xkh4'@; put 'V2s8KiZOJTo4PmJdLFokJmB0Jl5MPHMqeiZZOltIKmApSmFScCEzN1R8Z09JKEZuZUl5SDc1Y2B1bHhoSV9JJV1nWDhDO0RFIio0WiM+YT9AY2QqKHJrZTU+YHZAW0M/fCQvdHc9UmwoMVghVDc+cUlaUD1DYXxNPjY3aSE0QF53Uz5oVW5EJEZmOW90RSNOVUl+YUwpZiE7RVt0WE4xWlApZVlH'@; put 'JkdRTHk1NWBAIyFZeW8lNyNVJiV0RC5SM19maF4zO28xLGdNN2MzLClFbkVZbmo7dF5uWGxzazBAWnFAXXsvaV4rI3Y0NSw0XXJgUCsuYC5XUlUxWW9BMVczKnBLXzh4KS5ybTxdPzdtPiRaam0kKHRMUnMhPDUjdUJOPjN2a3llT3I3NltaPStiVm82JkMkVXAlISEwVyhhYi5SVDtETCwjJHNF'@; put 'OSxgLGU9UCokOj18figibEpgPiVKcFV2SjNCYHF8WClCYThPIXA0K2RnN3xabC4/WmRHXU5sUSZMVW1dYWVbPjlxKzE+SjpNVzs2XUNAeVZ4IVNrTiQ/PWdJVU9KSyE6eVt5TiElZSwoX34zW01BSWBhQVZFTjdrSnUuOEk+JnpRKyVrPChlNzFQfUp7JlNSNjghXzRmJUdtLzA8PTh+I0NdRW5R'@; put 'd1NvX0M0W0QubHhSNTUiMyhuTVpsPGhdUExMO2t7dzlTTVQxZ3NNJj56dUFySmlzZWlLYUN2WX5BKjw4NUdlJUdgXiFaNE53YFJ9PHM3WiRWMUxjV3JMZXhHXj9gdHNmR3piQG5fYUs2ZUxlKVpMWEhBPzIjYCptVkgyRWAyWXY/WmgkNG4lR3tuWXlda2NRSVYwQXRWOmtQLzk1Snc3aEdaI04l'@; put 'WDVPbyVYKS4lLEhvKiVLY0Y4VUtVOF1IOklVLE5LW0ljL2FIK2g6NXIhfHB8cyRrd1pzMSg9d0Q3fU9fZn5IZWt5dmckZlBWeFBqOTBvTWQubVhLOl1eVjpdb2U0P2pTSTUuKSpYTyhoIz1nb0Q3eDl7PjQmWz17T3xMbCNXckxmMm0oZm47PEBsRGhWWGNCLGg1TkVYLighVnUyMDk5SlBIV0Jt'@; put 'QVUvOEt2bSJpTWp4SkAsV3tbRlpoaVVxeihTOEpLPHdKTls7WzZANDd3RXclQno1PiYrI0pMaHtvTnlOPG0zfGNbcmd1aTBCcENrZyZeRHpCczRuP107V3dlYEUpdHp4Ul1WaVlUUCojOGNZbStFVCo9YGZBWD0rPmxWeVZEZ147WGxDb0pLS01gQVEmYig8azVxV00wPCg3dHYkfksvV0JCQHx7'@; put 'TXZtfW5yNmUpWm1LdyNWO3NVZGwlLjxwO2BObzhVfkQ6Uzh5fkVkUDpWMT8jWUBzNnQ2cHF+a20jMXw+enl9XmVkTV1sakE6am5MMCZDJH5FVmd3RjRbZm95KUI5XmE1bixaZ2EyJU5zJVlkfnQpN1o1PV13JUA3dythfWlLLl1+bD5WJGtwNn1CdXg7LFF0N0p8ZzdmNSFyez5Sc2d5ZnVMWkx3'@; put 'VjhVPzFCcUJ0eixnJUJjWkh4PFtPTTYuT3ZIbWE3N1Upd01RZzFMek5ANXlFY2ZuL0lOPn1jJE9kYnQoPVVbKz1GZm9NZUwxJFJWd29MdyosPXdlYzQrY09EdXV8IXU5TFRSPyh3KEo5PlgpSiNvZDpsN1oxIzYiKUpyel1je14vLDtxS2FlQV9RVTcqcE0mLH1ALyUmdlduOVt5R3smL1FWNSx5'@; put 'TDFNUm5II3B+NjcsLDZhLiU0X2lHW3RtblFTU2BvYlFpK18xYFZqUCtaLnQwXVNNQVMoRSpWUlUoUV0kPHtyay46MSF7Q1BrKWg1YmxtNCFBUWsycyNzNmZuK0BpRmpdXl1oX2FkOStsLyhkIkJ7PS8jXm5PUSF+PU1DRlsiVD9QeDBLYzJ2UXJJYXtJKG9AVU0/Km1tZUolenFCLzw7OmcmbztJ'@; put 'Z2VKaEApR05WWXQ4fGUrdyF2OGNHXUg7LnpMNktyamFYXjA/KmFCWEBJcVhEfDVSb0g/KVd1KWZBeFpfOlssPl5gdGdSUypOdikwJkwhS3l6K1tuXVt5R0lQWzJXUnVuMn1XUkY5RUtOZjspUkhhSjh1Y1Uyd0dFV31aLCtwQiU/b0NCJkp4NlA1Qm0wW3N6cTNJdkxwITM4KUxsbVRARl8ud09K'@; put 'WmUwW107IX5XRkluKEBfNHNqRilLZyR9TnVdS0FPcWF5Jl5DamBCRT4wTHY6eVhHNCskc0BVRGNxPmwqWkVERUVUODxDVVVqYjdLTUZicFZLPktpJn1BOS85QF1wVyYiW1tTUCt2dFZtZGgwIz9zdlV8aH04VGA6QGRmWWVlej45fmNNPT8yVjR5aVEuKnRzOkIqYj9INzZ1VU9IQkg1VGRQJnos'@; put 'cm4qUFR7QjNre1FDOlYlMHpEaFdgez96U2ZkPlRXcVtjRSJdQE1tNEcxXzc1K3V9e2glYFJ6N0glRWdFRU5qSFgwIW5aTFJEKnZqfWZzeXJKYlZTO3FkRHZ7N1s6d1hOSmxlSUh8SUdUQHBRXzM5XjRJaExjeT0uIT0oRDtdODIrPzczViU/QyNwK0VTSWd0V1JKLzxdQkJXOS84PSg0UVRRNnRD'@; put 'MGluN1ZARUIqMDgkP3I7OWxeSno+PiZHZGdzV1E5bDFTPEFGTkQ6MDBgXkoiIXlkSXpqVW1HdXB3aj4kN01YdnElUHl0U3Z0LGdAYnBAXiM0aUtCYV9WYjFablpDcDlwLHdUQEZLZ1RnZiM1YzopVkpLOGZrYillKGkpY15jekcqI0daVmYkYkVNfnlsMn04PHY9P25tS1RseVN1VDsqPy5yKmVk'@; put 'MXJOUVRXUHR3TCtdZ2E6KUJILGBFIihAXzwsOk55XUBBe3lyJDtwKXVFZGxjLDxybTc/MUlUM0kxTS9fPSpQPml7cSU6XltbeXYlWHBOcVIyPFVPYyExQ3AxPWxyRS5wQEV1dUIrPF9rcUY/JU5IPi9TKnw6P3lSP1EuJS93bnlVNV1DSVNmX25jXldJJjc1JHJWJjZyIWpSUT15UzZIckpZSjpy'@; put 'eV9MVFQrKzhMbmhWPS9FSF4zWDFwQ1JjQ0JhcjBAXkM8RSZmUXBsQ0NnTXdSWiFbbmEmJCpyJlAuPUhyUTZhUWtHRnRWcnZRQUdHR1M2S31rRHF8dF9fck9PeUEzNzdxbi9ZcD9LPnJIOWp9LFQ8JTw3VWRxfnErYlA2Zih5K3RJM25ncDhIbXx3I2hKcDI3VGJIcHpOPUpRd1F0Yk00N21WSSM7'@; put 'JHY/Uy88JX0kSVN4eEtEemt+OzJFP3QuQyJ9NTBzI255cSU1XlRxJncsfCM4KjVZZTx9JS5ic2tZPHlyTlh2aTkxPSozM0VtKEk4UUpkYip9Nz9LVmxWRGdvc1BKfXlaKHxQV3FTbUQ7eiRrbmtBS0I/K3UqUWhlV3ElPjxXdWJ1eVlUW09bQnY2a2NFXV8sbXpuSEZdWSZfckJ0JnZqVER+aUtT'@; put 'VmNWel19OUoxMWtNNU09JD8yQUxBV311Oig6OSQ6d1ohXS92QzpAfiZsekN2M10peFsxX0JCOHZKckMiYyxWN2cxczoycEdDcUc/I2BQbStbNVlNYz1nb1t6cjdSJGJ8XWVBUyJqJFhYQlg2NFhtWS9tJGdDXXFDfjM4JWBQZSVSLz9NNn17ckxNJXx0Pz5QdDZ8MUlwSmpeJVRrJmBucXBXcUk+'@; put 'PjFtUGZNaFtlPWNbW1ozPX02OChQW0ZtO2w3W3J5KXh7a0dEQ0pgLktjUUooTXVVKUs5bFQpLChsZyshPElwel1GSEwjKXRmNjV6TFMsWC9WQ2xQSDVqN2YxUFdxbTNsW2xqbDpJYFJjQiZzQmIyc0xrL1oySXdlOmVELCJLflQ2aTNUKTQ4UCI2UXxHOGBFZSFlSzYsIi9YI241fGZGMldUb05Z'@; put 'fEguQj5fdiRWXjhqQFpleVpAQnxWP3NUY2koS3VrXyNKb1tnT29CZil4QSwkeilYZSFMLn1Ne1Y5I3lzJC8uUmZOKSQldUBfKCR4a0FTZnhtQEMocnJdbmEwU0cySDYzbkU5KVppZXRVL1A2MT02Uj5FeXNxfFd+QT0wOENqcHVJJnp0JmwqPTFnZW1WPHZXI3ZqejtuXy5jfXspUzY6T30veWlS'@; put 'NVlQQnFUJVNjP3V+JCNkJDlQSHRJOzVYIiFgXUJMNWQ6TlNHI3MraH1BckVzJGU6a0ZyeTYufmpJTnkzcllGSihwKW8vPGk0TWBaNUBddHRoYWBBey59ZmQsRmIlZGVHWW8iZjBYSUMuUGl3U2NbUzglRi9dOCo9ZXF6UU1ETWtKM3dIeU5FQllJY2dYPkw7Rz8yUmZsY2QvR2JkSjRlbisqMVIu'@; put 'bH1mPGFXMmMoa0dKdEByenJHXWo1RSU9WTdSWypXTXtST3g8WHE2YXAqXTE5eGg7K3woPjlHaWNtY2pPVGRrRj5ZIUZKZyRDS0NSVHBocEFCQC5LemV8UVgmTUVYJEReKUR2Z0hfUmg/cEZ2YU1rZy4jVD42JFZkS1dbUHJqXm98KExuPUI6Vl5wdTR2Q2ZUW10/YVYkeltCO2c7JkohU1I7dyJr'@; put 'V25WQHFYZD5xWV9EaSNDPl14QC9sKyNJVHxQdzhgfSpJfmVXaDdTZVpFT15aaVZXZHMoZTdIZTghOCt0VFU6N0VTS2FaW3ZgZjUpJE0hJktPJEE8Im0wTV8iNC5ifVV7SGZrMHg1NnhlOyliKEd9XW86UV0kT0dkQHV0PHFJOmErY1B3XixiNzN6M2w5Ui9HSUElRXxiUytnbyoseXFqJCVFVSlV'@; put 'aE84PiIiZV4lUipqMko/UWVwVzwsUi5SWFtKRD44I2hiaEF6YiNZQDA+TWIjdz9kJT1DZ18+b1t6Ok55Lk5sdGdZP2BOa3Queml7RXNxNypVNnkjVVFAdDttIUoiSUZUdWpuTGBGOD05OypXMjE7T1pyWX1vUl4jZmRySExGI3dhYTxENUt9KEwqNU5bK2RodTlhKFlSa3FTNi9SQnYhcHsiITM6'@; put 'dzUsb2hDKG1acDFtU3slQEIpY2dbV1hFWVBjOzpZKztPa0tdS317VXtgTVAkMFVPVnpFeUBZPGpUOHx8IThZLHZKSXI0KkpKZz12bU4rbSl4bEN9b1c8OjV+K1JqdTY3cHw9YSlBRVVvfE5vdj4/TmYva3IqQjFtQzZrSV1PPFJaaWhGNlI0VVVKfW5mdk56Oy81Xit7Mn5OdzNsIzRnPi4mR3xJ'@; put 'QklzeDoxflgmdzZKVD9iSHJyRXRBNW99LCQ+JEBoRzVPRzJhcCVLVW1xZy9BdG0qeWFfKSQweXQlIjA/QC8ibzg1JGpdIXsvMFApJlsoe1ZyZGhSMjlBTWZqLmskeEFEb0Z2NWdbcUA9eWxaOkk0bHIrQkZXdyo3eFtVNyopc1VwLjE2d21kckdmT0dlLyV+dUVVNmNTazZBQSlOLyJsPUdnLjta'@; put 'NU9ZZm5BKnZ9dnRQZkdWYyQqfjBKYUp8RWNGRiM4ZVFtQXA9ejtbXSlOMiElL2FjRWV9YzxKV1ZfU2gifDwqZTNdYUBpUG0lZ21PKzlpIU4xbmFsNUxeeX13I0JhS09xfmhHfU5PQ30rQ1s1NmtNa3AyclBFV3c+bS84c1Y9QnlDZUNmJUxyKEs/Yzt1Li46dXB6e21DXWZRKmhbeltfcSlsZ2Is'@; put 'ZWwzKytvJSZ2K313RG5HKEx7e2F4KVU+VFZNaG1oZzxNSEU2NVVzRV94LltIJipKaUFNKUJEQSZkd01keHdjXV1mNWMsYSQ1UkJXcWkuZGYuVyhNJmU2Xj53QltNX2RCSSlRYXNNbXohfTJUdUw2JU0lOjczaXJNNEVMP0VfTW1NS2QuNn4+JDwpcypHOFRpfl9CKS4kTTNEZW1vbz53X2kmQSgr'@; put 'aSIsS0tjUShTIz1kLyw+QDtnL2dHR3FHWTMoaGNvQEVjT248aHc0bE9LKzFSYjtlWit4VHFfKSNFQyssejd0THU6W3RJIl9+ayhZeDR6VGgjIUIkeiNFVCRNTntwJk57ek9aeWVTT0k9YXNbTXc1JCpodEJHdSQlVH1dTW1WV0RwZyQkSiViNkl3P3dFPi89UCVxTDB5bH1iOSlCZ2ZWUUwyUChI'@; put 'PmVRYCE7Pys7cmk/LDFNYmUyVlAucWFscnc2NyZdT0lUNyxVaXElOm4vSFI7QFZEckl8a1QuLixhYyhQP3hDL2FUdy4jKkxZY2wwIllqSHZUbzo7flJae2RDLmVZWVgyVCZWJUNQOVM+cSszJl0hfjsoPjtSIWF4fTszITVESzxddilFdW5VWl9sVTVMKmlgfXQwP2psXyk/WFQlYDJ9OXxBQjl3'@; put 'JHEyKjdzMSJHJk55ODQ7byMpLCgxY0ZWOVMucmlGWGtYXzJkeFcoZ1NiOXU0RGFHZ09JMmkuaixqTjlsNzApQE1RfjdzNyR4SyVFXjd6ZTdBK3tFK01jaHx6dDc6bHt2SXR6OiZOZHdycGt9KF1hSk1qaTJ+ZGw0aUReNiosKyFTfGZhfEZpMyEhLj58O2VxeTAxWTx3K0JGMnN7MCVQXmp9Wklu'@; put 'YkNsVkJYQWFSa2MkN2EsQyEmV2RfLlU/Kn4mUk4/STg+K001IlRbQikwPyZ2ZGJ9Q35LOlVNMlUseWs5XTU9bFpSOko8SC52dUN0bGF0NH5KTV5iVWFhbSp4UUJOZSwoIih1PXlKJWkwen5RUlFPIndJeXcvTG9nVDd6aW4oI1MhK1R+b0g2L29gZX1CUU1yYE1XNWdUcVswaVooTl50MTFPNnZe'@; put 'QHJodlFeUldUPCVmSHUsQGtYPmVNXmR6czZBa05TPz19R1RdYHMvZUM8LG9NalQ0KSJnZWRLUE9hTE9oTXM6SjwhOCNQV1g/PllfLDswOHNHZ28kMT1KOm1sWF5OQ0prODdKak48dGdtOFNjLzp0Ml9GUVFtLCxTVnRTLnloWVpbM2QxezRKOyk8WWE1JWRQbmM3OjdPcyxaVW40S35bWWdwfD1E'@; put 'N3QmLC49fjx3LmhfSkxKeTBaPSJuVUVAdT51YTZndzpII0NlfUFxUnB8Wj47fEkzLyFyPXg3WDEwMHwjRWJmWmBgOylvMl9uQlp0LHxqeityI1o2YlAsSCZ6RUBVbmRXZX5gN1gkfCRzWWY/e24/b2RIIloodFV7fXAoPmYvYH16Iyw3JE00VkpPVVRPKmdjLC8hTzdgJWNpU3MpTUxFPUUqUjxL'@; put 'Yj4sZUAvfDF4QzFtbmJme3VfTDslXz9uUnBzQzVaSmZiV090fiEmd3pPWyUlIyZhIzshOClFJXR+Pl1bPU1qTncyNUlvUXhWMzhhVmNHPX1UW0JdYXN5U1BoZSg9NUtTQStMb2I3e00vOFU7dW53NyRjPGliITsyNH19fl8zQF89O3hjW2ZacUJ+MnpXNWYzUFIuITFUQHRnKXVfU2U6ektTXS4m'@; put 'ey54QGwmPW82LisrYltaI2Jhck1AZkhwKEU6e0VzbUBsRGRPI0tTd0VgR2xhWW5vRTpRdHpDTCwzfGFYSHkjKWs4KWA9IlNgL1hIJGJiOC5XSWZnImFoQHY0cj9NfV0xNjBgXk1PTT5Fbmd4dCgiTGVHenElJmA+WWZvJXM9JCFBR1ZudktbZH5ab2VVKT87ezpMYmZSL2A9USNUN0B1I1h1eHo6'@; put 'ZlZ4TDJaN1ZOPmVVbjFLSiF4Kng7fG04TWpmR2FuSTdwKXJDQDc1RWBVb14pS2w0OmFBViFbb1U8REd+MVVvazEreVQwbFNsV3dsVi8vT2U1P04yTXI5SiV1a0NQeGwzUltRdysyeUhyMSImVEc5empHXlQmLE9zQSJTY28jMkBkWCUvLEVuVnU6TmpMflhxTWpaR31OZ1UoSlpRJWkleTluaX1j'@; put 'Mk5yV29OWXBDJlhIK0RBS0lmZ2BlZDArb1VqOU1IblsvVEVRJEJnSTAhMHM+PlpRbk0+Z3Z3ODpPfjtRJWZheVVdQnRoUTYqJXAsb2Y3Jk8zZSVEIlhkc095ey8laHl0VHR2P1QxaTo8VSY5eEhTezg6elEvZmJwc0kpeVpYWV1JS0R0UkpSaz1KKjciUmMlL24xQyRnSVZ2T0IwLixRS3UuVXN+'@; put 'fTVUV1cyVW9+aiJhdERtbDFsK0dFakNucG9GcElIWDAwdjVRVUpjYGIiZ3RwMXVSMiFQQDxXYDJ0MXtffXpoRXNqY3JuYm0xQkFzXi94JSI7bS9GZnE3cXpBVS81SUUyaWZZandLR21NV1J6NTQxLi42KVklQSRzYUJhek0yTjBVbmgob2VeOmk1SWNrLHltWH1IeSF8N0RTOFFUXX1odUpieUlg'@; put 'XUxpbS5HUTluWXZFQSFwNU95UVlpYnByKV87VWxYXy41dSJSL3JlSSt+VnxZJWk4XXd8Z34yQSZvd2tpQCFBZEJibGwxYmAxbTUvPC4+PVtPRms2ajJ+N0Ewai9mbVEzXmNvWEs4eGs7Q1BmWXpka1FwKytqdE9WYiM4Zzlffko2NzN8Z1JoNUY1QCU5XVh8Mjt5ezdbW0BHNTU4WVB8NCNzRl8s'@; put 'PCsvbyFuTHp0ajh8YU9ee3hUMG9Hb2tRVlljPXhBQUlITW5taDNiIlcobWFOOl4pODRmQFc4blgjYTM2VC9xVVE7TSVXSy9QM1kkVl9GXngoLkx1UyNSRGxbOGY1VEt4c1gzMEtVOVgkYV8iYGFvIkQ7YHhkU1VEcU81QXxHSkxkRzE0K3Z8eExnTlBDOVI6Z3JwM3tLPkI5Y35fU0VHSWRKQDss'@; put 'OzZLdjFRSSZyZFE6ZE5uRT1HQD5nUDxYOX01dSJBK1QoRSNiMjxUSTJOZl4vTVFia3tjbmZzSlQlQXc3W2FiU31RVmV5QyMudFtad3xFa0pzM21fdXVfeks8Xnl8WStwTCsqfFdYNXVvXlR3dHkuajJxL2FwbW1lJGp6Ul4yZ3suMGFRelYsXls4MGNZRDhoeSxPVS9LLHxaZno4X2FgSkFfdnF8'@; put 'MTBoX1JkPEwka3VZUjArRXhdPytqMUFbdn5UIyNqVC5JfEhzeS88Uy4iNz54Zzt5V0JfKUxBfWt0T2ZFPiRZYW9GTCJYOF5xWDR5WCtgI0p5Yl5lNmxDZVd4VDwjajIxOCF5PXsic3Evc0JtR2BRJD9ONl8jMkYwaV1MOC4ha3d2YXpBKF1zezVRQkp6YjhgOUQwdms6MEJbLD99UGwwUkBFYVMz'@; put 'UlBvczErRm98Xm07NC9dJD0oOTYwbW13VihyPnRdb0kybkY9PSZ8Ii5ScSgsT3BlO1NVMkFXdUp+JX5EK1dSV19wU1d1X0JKfDQ9dHJnOEdLKkVxfW8+cygpYEEycG18U1BAVXc6WzYiZ2AjMUJpaGV8KHRgfEtTOzU2YWwpYHouezowQjBKQz5DWkoiSHxuTU1rI3Rkc3leOFluUU43bX1iUSRz'@; put 'IXdXWkZCc3tIU19MMl1xKml1ZTN9PmJ6d3U7SHBPaHYiRmM5NDltWVQ3dywrbEhbJSl8UmkrfF9AMHlfayt1NXY+OXdobilTZzg8fX5LTyVsUSx4YUpxfkdbfmk6RzFZRHJBbGlMXXRfPXQyXTo8elN2bSlGVClReGo+UiFhNE5dKyxCSjpUOEIsS2BmWWx9SHNbeHZpXXBILDFgUSpkJWZQQ3Ng'@; put 'SGRTbGxoUz5XY2ZKP2ZBam9ifURMK2N+KjZxaFZjfCs+T05pVWdgQ3l5Q2tNMEQ0L356SFdGblN8M1FhVDVPUk5peWZxXTgrOV4mOD5gO30ibnFLSitId1VjeSlyRyhQQSM7ZikqZlZ6W2A/bDpNPzlMWFY9R0dZKmU7ZHxuOEV+Yyo8c1A1KUVzeTxIZVJnOWRtJTtyYn55dykxcSpAKl9ZSWQs'@; put 'RGAzWjYrcjh9TFQ4OGpicVIsVnliWyxQRGsmZ3JGeUNsdGxET0ZKaTMwcjhdZHRvfWUyV00jMGFNQ0ooPU5QXX5HWD1acGc2TWV7YjxPW2dYPWJnR192P3ZTJmdaWi5YMGUjfCFeejhpPDJyL2olbXBTcTdHOG9MUjNYO2xSYEhRUldQKSY/Wn1lPndzW19HW19rLjFOa151SW5iWCo1YzIoZSVM'@; put 'SSFITzhtRilxTEQ2U3I8NTV1elFSPE5JRGVwRTc+K3F3Tk59OkVMYDx4aCxmNkRGQ1o1X3h3U3I6NTV7MCkoXVhJOUhyXSlRMUh0WzYzdjQ8cUtQKnc9RjpbXkRLSU15ZWQoLFdzUihHL2hgUDs6bWhweFslKypDUX5BMVJdNjBYOFh6Ny5femlzX21EJmdRV31ARyw9TlllX00lPjo3aXx2M0RJ'@; put 'XmNKUWEkeGtUQV4oR1U+UWJ0ZzZtbmVJcHN8YipNUXg+QHZIciskcXIwQDVVNHZgezxaOGh6aTUhd3o+Tj51NGYuWz5vMVUzW085aV86Okk2QlpldiFMc1lQPCNdR1VEYWBbZUx0VDFYKlJoP3F2RnE5d21LTEwrWyU9flV4MmJ2ZmlXSDViY1FRUzNNX31vSDRgJSlkKG0zcyRRW1YsU3w6QnJ2'@; put 'MDpnbjg3SUdiRCJ2XkR2IT9BZjxhZTJuMz9tQ2xzYjVAUzVMQyolOjB1Qil5STp7YSVeQ2w2d0hpQ2p9eihgVi8/fWN4cz1RTV9oMEUjcGRYcCVfU0wrcVImOnAsWmlOeDgjOXg8flckRjRtXzAhP1JXWiMiM1gld3xnKyVmVlMlKSJ6bSRwPFt7Uj1sYz15cVlJYXgudlJUVUBUdEE2Nz52XUQo'@; put 'OCgofDFlUDJAV2J0O2Bid05oWXtFPHRtRFdWeTBJJClvSDJiU2t6MUY+XUdWSVslOXQoTHFVMD56QkRAIWR9bis5VmN3KTxdL1AkeCIya0JGPzhxK1RYPlh9OTdaezFuazNuWVZaczxXazghTmUwaXRYOTIzSi5SS2owcX4pdH1kOixrSDJRUiRGNDN4fG0iTHRqOiFZeWQ7UjI1QjBMISFeTjxZ'@; put 'Oz1HKiR4ckNUOzt5Lnl+amZVJSRGeyk+el9PNFRJKmNgUnE0ImhuUSZ3RnJ+NndvaSFqS1g9SEZ7dlNfJiw0YHZHIygiSWhIZF5mOkspfnhieTh7OmZyO1VnK09nPFNlPVFWMX5ON11oZSQ9X3p0Ril5W3chJTZPdHpfeCl1PHN9Unh2VVFoKWt8Y2piQnVKOD1QKF59UCMoK2JaUl5kQF1kKmRh'@; put 'Iz5ud2tVYkU3OlhlREomYTU7djZzUkluaHhIOGVXZW5WYkBoWmB5ZjFeRnN9MG0zd3NtaGdDIyI+PFVVKHEhTjhuNDFJaSlyTVguIUdfeV09UDYqNVRnVT0/dzJlXVtjRDZzRTgpPDs3RkEkUjpUMlRDOilWXmMzND9+O1V2PTdUcHRbOTRjLkBGNno2aSgzPD93WEUyR2Jxfm5aQE1tZCxtYm1w'@; put 'VyNTcHNrYDBLKXNgITQ3S2M6d2QyNnkobVNKS0lScSgvU3UvWiN+fVZyMDxRRTIwVUs0YXNVRiV3Tm55LkVpMF1QbUM7IzNfcU0oPUxiZV1TOElqXTl3KUhCJEtTbSwxUkM+cUB+XzlKTktZN3xdNHFNKkpAPj18WlF9K2MjOWA/NUZAeyRzeTBQZUhJOklXNHc6LzR1NG1WYDddL3R4fnxldyxY'@; put 'eDc7MTRlNXxJJlRDKzAuVU0yQixKZTt1TjN9XmRZQ0UsZnUiVEl0TmRbQClMfXlSRHlaXW84N0E/QXMjcEpVVF5Ha0IzeVZPX0BgZk5ATDQlVC83OSwlX3xoWENRakpTPEg7dmBpbWJ2RTlxMCtMW3dgKWVHdkZ8cmYzZHdZaTw2WXtFeFJmamF8K2hINVg0Iz89L3IjdCpsPyp7Q2tWaV1QQXlK'@; put 'c1omQj4/NEYpXkE8OyomajFUOXc7Jjp2eDNwOlJ3dXB6I01ETDxaekFMMlJvWV9LdjhoTSQ8WnNHLDV1MHU/dm9Xc3t9Iz9ZUFFXJHJ4bjJqODUiKGRrOlo1OyxORkpEblEpT29XIk1oQUE3VD9qdDtDWkpqbnYkdGc/fXcjRHNxcV51ImVpeUNLS3E6bz84di98bCtJXXt5Uk5qPj8zOVkhZmI+'@; put 'cGErUW4vczJubFoqfHkrLE8haC8mL29He1ZEVThffGFLPWVfSlJjSHplNSV3Om9tS0E3fUB0UWheRGJXN3ZAX2tzTVExdHxtV1toQ05EPTVDQVReNlMmI1lFPVlZXnBpTlAwXVQsdVBSRSZwIzQ6KTptNilYZnxsKHBqT3VQWit3RylOS20hc1VhKDBBJGB6W0pGcHUrazpgJElLSl0zTyY1LkpO'@; put 'KmAjc3w3MiY1O1Fvcko2RUIqITdDOXkxZTt+cCQyUiE9IWkudilgT0FtN3QlY3RZa0c8byJGNzU3Y1FNKDI4ZTppSXJiJFRyfmdWTHpgdjgqJkk1OWhoM0oqSGkjZi5lPTRXfVB3WFldKEQmXUB9dz5+NUVITHc2cTgjQiVVUFs6Uzd4aGU2OEUkSjI8X2RQJU5ALzJ7fUBzQjVyYnksYTg1NS5E'@; put 'SiMmeWZhWiNfQEsyXVRXdnJ9VkxmUU4jQl17JnNkQiojLDReTHJQU2RFZlpxckdwSkFCNk0hUSMmc1JFNSF8WU5KSGVJemo9dXJpLDZXMCwvK0kmb1NYeyxOcVhwLzZ6JVBIKjhJTjs9WVNwen5zOW5RfVpGUDUqbDt2TDlwMiZWISxzRnJqIU0haz5WdCJlcEB1MltFcjxFR19IYDopd3c9Nj5O'@; put 'bzxOcDNHW2QmW25deCMrJU46W2BUdEtmOT9tJktpJkMwWEs6Vm5BaHVgd3wqVX53XVBTaUgjPSFjJnIjWDsrazZRUUkyYl1ELGwpLEdLRU87XT5obFMvSHRmbDEmKzV5V31wVU49Oj0xN3MocURtNnVNJGAkYzQlRXhfTVB4JUAkfmkpMTouXzJDUUMrU0QrfEU/azYkZFl+Yi9peTg6ey5PWHUk'@; put 'dDA8Pmh2OTBkSS8oWzdzfiVaP346PXdIbUx4Kz0ifHtSPnsrbDo/QjpaJXl1ampgJnw4YEh5Xig0T3Bsc2Yxb31pW1N1eDUzTnNVOEBmM20xLnBeMChpSUBIQChMdTo7N098XSs1Nnl3SD82c2hWXjtPYStNcjhzSEJKWSlvRDkjbjBWNUBKTkIoSG9FOitFOmVadDRTQ3lTOFo1bEwyO3VmUE4h'@; put 'bExZWzgsQzJ7MTFBdFZeXjZ8Sl1iW14oUUBHVmVeSjc/ZTUkYWcwJj02P1JtWyRAOS51IiNvVm5QLDJFPGwmNSNgSGt9Ylp9dHdaay51fCFHSzpmWUxYLntTWzA0bVMuUUFjPEJmZlMpWV0rbmNDTTdEezJmXj5+VWtEUUxvQ3p4fkB8d08kWFhdJl8lSnVBb0siODwkO3YhZiljTVZBZiU3TH4j'@; put 'e05yeS5UNTN6UDtaPlo8NksvISJEfjMxSGVHL1FUbj9TXl5VLER3U2s4e1ZQTyVyKVNkN1t5VDJmIT5EPSNjMFA1YUk/KnA+amMlUlNaMlQmKXdhMV82aik0Ok49U19IQE9jMHRob0d+Sit8fWI+cXZSeFQidFdPcSljX2NzQ102JCw1P0VgbEw4Q2lMQiJ0ZWVgbk1Zc29+JXlgOVoiJWg1TXQp'@; put 'ZClpRDkxelpjWWRIUHNxUnN0USthSSJifndmd1txKVFnKC4yYHsqYnx5WFBKeHdsWl9mQmIyNCJleGtUMUEwfXoubzdVY0xnZkxrO2IvTio6Rmt9S2JQWzk+WmNYbjpaN2w+ZShXYlNgPGBeTHFLfE1kKXtnR3o7UkZ7K1k3blRvIXlCI2ZYJkJZcC9KVk81aGcwUzhyXjNWLHQuUitUbipkWTxI'@; put 'fG0uQlZednBaUC9YIXttQyJLWnBiLDt0QTEhNSEuZFhsRjF3RHFRL1lRKGhRdjJdOEM6UiQrc2BufXYpVy9jOW5zaE1gODlyRU5uIiI6RSNSKFdjOWlFJjVgP0FBQmxXKEUre3VpK0I3YmF2SUlaQTxkPnpSKkkuOS8lXUJLNzNAOG55WCJGK3tMVGRAMGZQSGlUSj4+QHQ2an0weDEpc0xAfGkl'@; put 'cko0Nj8ifXtVWU1hOTozQ1ksbyNxckxNUmglMVl4ZVlvcDhYN00uOVQzcERkWUNXaHx3fT9wZWZfR0liYkg2X0QyPWI/VEFlTUwyQHB0QCxubyQvK3JwSEw1Kig9UWF2LixlVEZMOXdjI2Q+VWw9QztkTClNayhaPTZUWTBKSEFgMTpxN0d4I0RYNEU1RWh9YkFMYEN9ZE1dczlAKihwSmI0LGQp'@; put 'Wn44MXY1PkB4bF9jNWY/RiVKOWJ5MVlDZkNnaExxaVReImxjYD1sJSsjR0M6JERWWlJbP0xaIW4ydnxwYmV6SlddfmAkK091OiZqWVZfMzBhZ2N4W29AWmBVYVJTQklXRFEpOCthRy4wNj1uNjMrJXxzP2BAPy80Kl8leUJYTDdIU1UwfG0wKXMsRnZVMHpVUzh0OStJeD9eIV5qO1Q+R2NkQH1X'@; put 'fE9SfEx3SEVjaWBdTTtuL0YsfXk5cGNTS1UyR1thbjdyOSMoZTEsdC42X3shW35nNTpDdyM7Yjx0c202SGlKJHFvOipEPHRbMXs1VD1XImhtbWw6K2M+amlVMCZaa2glZiN3cGp1SSZOdGtlVmJlVHBMeHojfi9JbnBgPTtQWmJbcWxlSkIqK15LUEtTZjo8Vys3RGEuL28hc1pRTmBVZnlIbWhn'@; put 'WiwqaTw1Qy9fbFVAMGU/a0FKbjFpPkUkPl0pSi5DWHRBbmJCd1J6S3ZoUTsvM2tOMF41YSRJcXdxNSVMVSooUWtUI156LEh9cXFfXlspZClnIipATXI0N2FUYVEoJk8/Qi9fcHRiU2wrUXlVSS5aUGcxd3Ekfk1ZeVtvbmx4dGpsczk7YTxXPmdfVz88K3U4OlMmU0thKSwjUyQkKmw5NnNGe1ZR'@; put 'KnlQMnFjVHl5WGxyYkU9VWhmfng8Q2pKUVkiND9OUn5DSUc5JD5wUGtJQ3pUWzpHS2FDKV1aXzwkbDZke0x0OXV2LkpONiQ6M0wuKHV9fXg0KysmfW9eaiEoQVV7WkIjbkhkYkF1KVBFcmVPWmFTWTRxSy5PLzdbVUUrKTpPX2MwVEMmcmxBJmpQT2htQG1vN1VZbVE8S1J5QmJidU9INGBKQVgm'@; put 'XVFvIlN4dSVtTmVXIUJUQS98cmdZSDJHYUUhR0BlV1hHU2ArZDtUQ3hPYjNnWSg0bTFreVQqR1U4RSVsR0skanluXWRUVDtpUD9DXWpBdSxNNGtMbmhgfEVAV1R1UF9sYChXW0QhIS4ibHwibnF7clg0ayFXWzxaM29WVnlAI1UlY0AyNCtwaURnUT9YQW9OLFEzPW90cHMvKChnWVo0V0IjT3FX'@; put 'ImBkNDxXOmZIOGtPQDN0IVVvaj00aCokaDJDZTQ8MllLViMqOGQmaC5eRjVMRFNSemNuWUZhTCgpTVtJMDV9Y1dobkNta3BNRUNvdV55V0d7IVZOIml2e1AlZUtAfDQhe1FPMVZRPTloc0U0Wm0xZy9eTy4wRGdAd0dUclN7QlRfQzohaEc+KnxFalJpPT9CbVc6eE1nKlVUUjo/L2kzL2xJWVdn'@; put 'fT8ldSt4WSFjTWN0MiZQImoiNHYrY0w9enRbakxhTWRLRH4ubVFDTkNJclI0a3tFcSkzNDB+SypubXRIciReRVg2SVdEKlZxc2pFVGAyYVdSLzA3bVVofHtRMUkhT2spNTZGeUQ9ZjxLckNpZ0ZyTixZY0whOXZedGlTfmo6SmBkZSlJLnZ1NUVEWVYvLFpheFA+JTY2ejhhZHgxbSE1YCJUND1v'@; put 'KjhxaV40L0J4dlZFaCNtZkVpNmZeT0w/Vn0rRGRJOE0scFphMHoqSCRbbkU1Nig0NmNYWFRrMW4lWUlEdDdDWmkqdDlVRVRBKmBVNk0qY1RLflJqIWs+U0whR1pOPSxIOlQmWH5IRlJlQGdfbzJFWT1aTEp5JUR9ckIsaGVONlJJbEsmZ1pubCJQTko2SmUsV0tCM04uZFg7cmtdYGFPfksmRDJt'@; put 'fFh2fU1mKm5MOGYlYVpRNmhuQEN3dWtHaUVEa1pMOGhzLFIrUTBQXyVdWW9CMyViXnZWS0N9M0JiV3YxOnFsQl0uM1E4L0x1LFtEe3FKOUVOXyhdZSgyalpNYFMwLy8vaipfXnBUJGxAcmIlcHI+eVNeOklWZH46QGY0NDgsQzFTUyRNQHd2Lk5OV2cyej5sYGI1en1CKVpweyV8bDxESFopJUo+'@; put 'OHddRU92NC55dF5WIng6P3N8UlZkVD0sb3h2OWlKPjp4KXUsc1tzPyJ7am8uQ3BXUyZZNUcqNF89WyQ6I3NhfkwzQFEzcjxgPCxvVUhiWHIodls2OW5xNGRHfnxDY0pRXnFvfEAobzJkci44dTMjKzFiYjhIc3gkOCQrSyRFe2kwb1lZU0BQe0A2dzFINTw2dyFQRD9jXmNbOzZRczUhWDZCTHhk'@; put 'OjRVcVt5REV3Kj14IjJVIjw1ay5APjpaV3V5LCldRl9SVSRLcGw8Ylt2dExqRFZEOzFIbk1kL2QvMyY0LFc4fmhjO01uIVNMOiUmZGBCTyUuIjhqS29pT3hCZGQmZnpqdkJ0TFJJQT9Pa0tAY0A5TT9QdWtabD5LdT0wTWAlcTtOcFgqZjlSWChbb101cH1aRHIrZT1YXzQ4I1gsQXltSmBmdkdY'@; put 'bTtIIn4jWTJKe1ojOCo1QHNDd3k3dTg1OThMUUdJe2ZxVGF3IXQoTigrZnBUPFt2aVs2KzRQW2k6ZEpidERSQSEvQjQud3tYfnkkX2Y4Zy57XnE0InkjJTUjQCQuaDduKkM0IXFGYDp2MDsuWEp2dCs1ZVQ6Pnw8aG9ISjtwbyZgL0kxSyFZS11fY3ZyMHFkKFtyUVZie3l7NC9bTiFvLz1CVmor'@; put 'V0lLOSpyZyl0SHU6WzV0VmZzNHFvW1tDVURHaik4VSZVJjtTR3FzLlRkKXp8WDh+QjwhUjNJPDIoRUIoVWtyLzx0VCV1eHNqW2BdZiYhXktLQlR1PCRbXzcvUnFSMFl+eihxU3dafTBkenF3MFt9Ol05VlBrZEs7dUBJdDYxKilDbU5gZ3hCKy5lXjBSbWFwbklbODFJJk1HdVIsUSl8JktEWXNJ'@; put 'PS90Yl1NPmZvZjU/KSI+VEssRHZxUHgpOk9OJmVoeG4kQCxufk5rcFE/TmZ7TkxKeHV2O2dWTnVrWFo1Sy89JkRZI343NixzLjEsKy9Hb21GM3o6OSpgUCZHMFQ/UG5Ne0xXZ0g2YCNYLyssaFhLI2xTJTQ/eTNAS0Q0IzwlZ3ddMi96TGUibyV3NiVdWHxEMU9RM09TdFg1WXs0fmUqV2hRaCh2'@; put 'LlFKOmVYdDtoXjMoSE1FTjI2KmM5bzlNKGVYR1AlUTFfZTVwbUJmdUQzPUtWeWx4JjgpdGtjQTleaWhFYF9QJFkiVzxIMV53QmMhI21ka3hTeFJYbWBCNysmS3JaVkwvUX4rfFZdcXBJZWdzWjFqW1ksfSJHOTwiTERWZUhpM1FfTmBKSCZscCZid31DZTxTemU7Vm8+NFNeSTVWL3xuYTwvPUQj'@; put 'Imh6IWlIKEkiXj0yUXp5eDs3a3hQeisxRXdzdVc1JiV4UVh0eFFtQ3J9aTlqOjJSeSNxQjl4fEwiQV5RVlI6d1NvdjolSitTV1pddkFVcGU3KTR+JWUqV3ldY049WDJwX09zIUpSYTUrWHM5JHVBXXtfbTZETGVmQSolI0QoQ0VYRXlvQnY9cjdSRDBIZjc0Z0lkR2tKcXFWbShxaXN3XUclMnl0'@; put 'cEB3KHJjQ2RORj8yKGcwY0NXeEN5aiMvdWBpU08pZD9uYyM4T0pxb0V8eEVPVH1Jb1ZOckw9PkpPWHl6WWNUKUQqalBad2E/MVd6JDw5YklHK3U4U25UYi5pJGVIYWlKRTpOPHJdOzxDW3p7KmciUkg5OWZCRUF+RTxjSDo5VSIjcWFCOSxqMGw1MDlnIlhXbS4sTmBwTyZdfjhQSnF0L1A+d29n'@; put 'X0lzdFc+dSROX1JjKS88VENXTHRlVm0pO1ldLG9KYlBYViU9ZSFmKW9dQ0VRWWxUNmc7b1BvfDlSMmwzQCxkLnEjSWdwY0RxK2dDJHNVNnpPXz50UyxPfShaX3ZwbEtkJnZ6Wi9JQUVeO1JnRXRbVnlpR0ZwezNDOyhMLC8pTWVfYzF9SzRsUmhWJClXSSZ6ZWdMW1lISnh1RShhW19hNnplLy5B'@; put 'KFojdTZzRG17ZltBYyUoUGBANylrbXkzVDRVUTx0LEc2VzhXKkEvZWgub3hLfUN3JnMmck4/WmdgZGkobllQbzNvNTBNMGV8Y1MkRyZCSjp+VGY9dkhvcz9abClUZmZGZ2B1WyR0ZTpGUXNvQkk/RTo1XjBOTzdgMj5lQUcoVilxQmw7RklfIz1qM1pRbW8xeFQ5JFRzRmJ5ckdGK2Vab1ciYlE5'@; put 'MWpgO01rYHsle3JETUFIIlJecG8+QGokWDVqYjQ3JDJPQE9wMG9rYUReQEhmZC85VjxsV11hXWw/TldoSjk5alg6O2cybUZGS3deZzJaJWc1YFchMFhwZWoqIVVxaU1iTE9ncmlxOztSXjhXN18pN2VCb2FITFhpMFR7NlVNUDUwZVlVSDMldz0kRXp7VCl+ZGcwViUrZEY/MFtgQHUqc1RPNiNB'@; put 'PFdMUERfSlZLcWZhVHt4NDVFOyQkcTE1JCgsP2BSW0IlXWtsWjElLntxantXIyw+dWdLTCUqN1hadDxob3BiQGFUbFZyOXB4byljPHx4RD5nUTt0Tll0eVQhPGYhZGxeayJjOExKSHdVZVtVQGNNUm8sWj1OY21ZfkcvTk96QHZKc2o/a3QpNDRWI293ek9PLEFAalBnME9ALlE8fXBLflp0UXFR'@; put 'Q0olMEMvWl03aDZ7eWhVd1d+bD53ZWBMWUtyOlJrOCFAaWhjb2s0dGYxfmtWfkMoNEBAKHcsYF9WMjUxSkhwflJ8aHtVX1p5YnZRbzsxKFIvS34xfTlhMyRTL3V0ZSw+d216Rl1nOmhLfjFgNGxtM1hWMWovVV8oK0NWbSZhNkdOV3Q8ViVhLDphNTBlOzlXbCUsVDdyenV2UnFZekQke1g3TVkw'@; put 'ZDgyKEAlMVFjW2YoNCg+czd7VFF2KUY5Pzh5MyZzWXVlREUzSXlOPTRhbkpmYXNSdCFqQXNVZC95P3hfLmpaSUwmdyZAJVl+ekY/e35VMFs9QTlUOGc/UkYiRTNSQzhQSS4+VWQ/RGI3LmdecTEsYSImQlo+THMycDZ3d1ZNNVY+IjdDSmBsQEdCcjBIWHFlVyV2VjRlcWJaL1tJR2ApMzNNZUM+'@; put 'Im5ibXtFNGFFNzk7dlNHR2N1WUI9Uytfd3dRXiRNNzJ5XSl1YD5XeUwxKnEjeDV2biU+NVYwdGJDXlF6dDh6LnZEd3xKP148Z2lffl9EUi9HbHRdWSJkWjpfIUdzP0Joc19AITBtLzFXeHFMSV5BdnJJQUJ0aSlgRHdzK1U3c0hKdDBiVzFuMkMqZnl7OUFyPE04MHFJZUlje0w0eiF+dDxASzdo'@; put 'aFoqIXczeiJPQWxjW0R1blthOTBVLEoyWmxRQXwiTT5DM3QyRzQxQW50UUshdV5dRUNsVyxrR11XM1B2S1Q1VHRWNl0/X0hiME5WR2JvTUJnPStvWWwrWyJqTFJZckpfMVRpQjZWMz5xSHx4eFBYJUdNUy5rXWI2JkwpQVdIdUVEckg3Wn5aYWhWbnQ/bXxFMmIodlNfflMmaUpoXlUuLDNGJX0p'@; put 'aUMsI0M3YXViXjcwVlJvfVpCT0Q7bTIifSRpc2guTE08VGAsakh0Vyh3eTkxOG5ZQDEme1ohKjsxOVFwLkRGSkNPWHErRXUodGlCRlM9IWNhJjtbVTY/YSZTcGt1Z2psRn1AbjVnTW57c0JUMWJVd0kkVTJZM2ZWLyg9PGxbW3pgVDo6MWZPQzJjM1QuUGhuTU0wc0JSTzJ3eHVSVCkzT1M0P3cs'@; put 'aDwwJF9DS0huQlBCdDE7aTgjKzpjSmZPNUg7QWk6PzBsUTVrMSE4MkwvP3Q4QF53UG8za1A5TjkuKkoxI35gL0RUWVh8dFJnIWxjYz4qR3k5YDB+XjQ6diNsbSsmLnlEPH5zSDYmQ1duWEcxQzkkWTFyN18jXTNCK2VoMzJrR1RhWXpoVXFNNCN3djpUSFtQOVsuSltYUitBQiN6V2IxdUpLQ3BM'@; put 'ViUzdWNFSWVgXzN+X1IoKFVlKmk/flMkQ2R+YTw6WDpxWGBnK1RbLlskPzolZSZUVGR7fm83fGB2QlQ3dFpgIX0rWkc0JGR+XilsXjsuYU9kYmR5LnkiaS85cmE0V2k9ITlZbkl6O2xtKmtBcVZ8RylJdD1mTkZLOHpGNTZbOV19NFhRWFpxaEJzZlI7dno3PV5mcSN2QkZCKyxZSVNXUD05b01b'@; put 'W1BoSzZXQldKOiFudGN8IS9nTU9iUnYpR20ifWtJUFhQWEA1VVokMjorW1tFcmRHWEx4ZF1fNXg/RXQzMDkmSTxxais2ZiZoM31aO3RXImpZZ3I1Y0dOUzQkfDguTkxWdEZjQXVQZChTTj1zZUQzUmhTdlVoKl9gNVREQURCZWImX0l+Rn0zY1VHLEpHUXAibiwrQjJeKDtvTiQ6T1Myd11uUk8i'@; put 'KHIvaEFHNkEjXX4mdmJnZUlLWFhLJWsiUXArJXFPTk8xfEM2NDBnfHhzZSFKNjQwQilrJWVISiQmN0VwPCh9d2c4S0VBPGEsJm80VEBvbTgjYHR7W0R9b2hGLCpAIUV0fWlfUiUlW25FWE82fUN4UDtkRD9ZUyVvUkVTPDZTVSkicHNMNnRvQ0RNOStwOlNqZFlkU2QzTnw0YCpoPi5rMDhsYmBx'@; put 'elcuJl1EfH5FYDhANkNQQUswelhxVXE+XlBGbCo4cyVOSDRDKzIidVNbRVJWKWooRmxIelQkc09NUj93Xjo4S25iTCIrQ05xU3ZhNG1lRyptKXEzL09LeyxkPFRyJmpPLn5OPUgiVlkzQSgxKm5aRGlOZlkqfE1yMGVyS3JCcEpLMmFnbi9HKTpbRkQ3K1NpU1B2JjF1aik0Kn14d3ZrPXpUWzg7'@; put 'W2UxXy43ImNda1BFKlA2aT5GOlsleWAsJDphYWp8bmJCcDR2Tnd+a0B6bDQ3TFJ2akI6PCs4KXx1bExqLD5lPShJXWdMVUNDYkxDbDVteVB3KDMqa2A3SkgpbChrVX1ITUdVMURoWGlhM3RQZjEudS8+fWV6cGRtQV9TJlp2em9eXk9gLE5KLkt8XlheYlBQZlNjbjIyP3oqY1YoLm5TMyRBNk0u'@; put 'QjFOM3J+QSQ1W31KUS9tZFE/a3pzWS8sQ2NOfS5sXz02YVVEZ3ReNVt6OUhnYE5jWGNXcUVybXBNIlkoamo0Sno4bDh5UjgyT0FBZyozNWQoL3BZSGBbJDE7W1d5eng7aWhgJUt6YWV7KmZnRjw0WTVraFpaRGd6a1Z9QVRIRiFfXTF2fndvUHY4fSh0a0AxN0lZblpZIW18THt8JjF4RTIhNF80'@; put 'b0chKC9gRDBgYXFnQSxsOnsyOCI2Kz4lZ0Rde2szM19KSTd9QmtIeFZrPi5tTnNAOWpqVi4kLzlDZCp7ZWlHbHkzWE5fKG4kOCM2fVZecTEseFFIOUQ4WWp0Q3owSFtOT09XcUlTWllsZmguTilVRTRydDVbZi4hNk1rXi5fXTV0LCtDJlIjLHJoRj9SU19aMmZTSHZRaERHWmV4PD4iVExkNjA1'@; put 'cV4weW5dI21iIyNzQkJvKFp+Xy8mP1RHQnJJSUJ9PkVHRDRDaEA0ZmlBb3lnczs2QCspP31ITVlhdVZeNGsyQ0p7VVtqWzclJC9+fSsjUE0oIXZhJnw5UCZyZyx1SSFmXjhJPXlfXywleVIyPiFqYzlsSllFOSpYKztEIyh9VStxZ3VWekljJTBSM096PVR5ZW04biFkd1dERC9LMnVLRUFWaGxQ'@; put 'b3tIfXM6KWUvTE9IIzY3Xlp6eU10a1svejgqX2JHN0tYZFNkQyxzXXYjIyQyZF9pVEdmMWUwRmwqZGNjTHRXKUZjdCNfV0t1aTNvRHxsM2BibX5MSFNQfklSQjlFPTIqcWN1KUkkd0IyL0NsJFViWHhdOT0wdjNrMDQ3OH5JWkgkbGFpWipGPlhkUnBnL2whNUdQXmlIfV4oalJoI1NsKVZoJmZy'@; put 'STRSX3YsPGphL2lqQmNRTXVeOFYsJndrdDBqRjtWK1g6bWVZU3xKKGgiMjcqJkw/Wno1JnleZ34sKmo2MTQjO1RbMjg2eXJHNSpCVSZTbGxAITo3QFNXRkVFaTc8PHMwOWFwTkxYIW8uXzU7SGA0d1hPQzgmSDlTSjsrbjkzI3dlMjM2aC59Q0AmPW0zUFNqSVchY1dNSUVjJUZ2SlteSmp9L1NA'@; put 'TUR9e1ElbWJ3bDRbezdmXzdJJWw6NVhnS0U7O2hgIlRrOFlfYSxqfHw+ZD1iVWVedGRKL1dKQUdbKFB6WFZ7MFl1LEt+T1A2aSErLGVjbko1V1gyaVtqdHU4JnJZWGo7S0xbV25damthak1+Sk5KVGloOEFXX19vX3drfGZ+OVg3cmBFLnhuQGZTa1JFYWk6KSYsXTA7NDVtKipPIVtBNjZQPjxk'@; put 'MHhEM2lwKVVQQCtTcT9hQS8xQlp9dV06R2QjK11kNFAiKyIuOENMM1txRXQzXXhXO3UuSEpeOG92Z25ITHJaejVpcD5GVFE1MUkwVUlDOWxldyEzcUBmajAqX2J7NEVGXzVKJWkpQVpLTDtKY2wpeXRlbn1VSjZLUElPJn54SHVfP0JzRkdBL20sKDU7LjYwND8qMmZrPnU5dVo2cV5HIkBmTls2'@; put 'WzcxUnhEL05OamFJJEBzVmojPlV1aTd4JD1KT3N1OCEwPEdLPVZ3b0wqSGsiTz53bU1HQHo5fV43Ol0yPzZ1Tn0wfW5OQD9YU3YmVWY/LGVpdj9VeHB2RTdYSCx4ZXRQQHlRSUg8SUc8ayQlR19jYnlCe2ReUmJjbkpdMU5hVyp1dk02MjB6Vj0/U309R1FbVzhXX3pFODojZztGb2N3PDwwPCtE'@; put 'cnpzPiN7MmdHZkdmJDVSNXd6djl1Jnd7XjNTfmwsRUlWQEoyMURJbXBnQ1YyJSx6ZVkzX1c5NCkwb1F3T01fRCslRHh3QnFYeUR4bWVtakojeGMkUEY2O28mUkQpTlB+RjtyTmBLcnZ2QHV4akFINklsbVRZN0JqVSFnNCtMfiQuWm5uJUtOLFNbVSh7KkcxJDpEO2ZHOix0SSNdT2xFX19yU3Fg'@; put 'diE+MXluVnI9O3xFVl57Sk1jbHRSV1hVNzUwOGBaNCshTk4jUlEuP1Mhd29NTUFqMCtfejhJOGQuMzNTS3slailfYD5nVG92SWwrMzVWWXlOOHMsOkw6a2A+WjJDXU1sNy4rWXgpVlZGUyRwfGNxdWtUckxhIzA4bVFLJCFfejZaIytTdCE0TnYlWTNGPUpfY29uODcxd3podFBdWi5OVlhjKCFA'@; put 'U1M9NiVSIiRVYVRkN2BTYVVoVmN4XVc8OU9NMyZSeSJhZHV1KUl7KTx7X1JHXmJXOFEjPVNHZz1oITs4cSNpfjZnOEptZ24sZGhnVz8hfltnel1uWCxeKHt2I1hAW1F3RCR5Pi5GKkpQMnZjN1ZlY2k/QjA3UioyO0NfY35eP3pkcDRPeX01QSVFYV9SaVh0JExsVF5oV1drTUltQk9OV3d9cnNY'@; put 'SjsqeigvcTVVVVIqK0RSPXM7QSxyK1VfM0ZeZDMuVFZuZ2tNW296U0UhOmw2VnZfdDplejRobzE+SXMmTyxzUlptSyteMTVGVU8mME5aYGlfeDpqeHg5O3BqWEFefWB2OmM5fUk8Zjd8NVI+TWRYRS5mUURBRytdSWBpNjJ0OT55REheVS8mVDYue2d9KXRrIltJVXJeaW5mOVc0bThnZm1fKGRP'@; put 'K3ZSUFlsfUImUEMmeEo6SER2Pkw6aDwpaTFxQEg5JlJXbTJVbVI+XnBuQE9+LHgmZyQrfjNiNFtaLCRVX1t7NTNRJXUjY0g0O008UF14IXU8JVtVOG1rR3ZreioySXhLUHBSRlpgMmMwQmI+KGFFayk7QHh3bW0qR1tCOGRKPW98ZnssaHpJP0xeST0xNnFUQywoUUYyYyVRbFtmXWFUak00Z1BU'@; put 'fGVfZU9ZakJkZ3AkLndLamUwdE1JXzhzbmU0bnRkTnRgfiVyRk1LXnZGKXcvUmNaXXBBUEVhZUZHTzQ5V3tkSCl9SUx8NjJWcDhPbSRQZ2okP3RPLzxGQnlJbGY1e31aJlZ8V19Ma2pXNHJlViZRRDFbQTh+Y0khdnNlT3BbRzEwL3JhQVB5VXRLKH1gbD08RUlIOUMhPWN8enhqSkpBOUhiV1M2'@; put 'cUB2YnwiMkJRM21TT2tPfFc8VG5PP0JrcGtPNVdrdi90fm99UjxuYHR8ek1xRzJfM2ojJVBHVko6NWgvP05YYixCJmdOVGFWTn5YcC9tTkEiRlc4JWNvSUhXKGBie0JLN3N8NEYhdmtNSGFFPTp5V3JWaWQzJllhNSJSO2oiOEBrKFdxalAha0hSVSU0RW1CSH5dZFAxYXsqV192PnE8cFp2aE9E'@; put 'Z3tBdzJSLF9ZVVVpfFA8Q0hFZz1wellPazQjVTZASmFLenM/WVhEcGpDLnNDNVt8a0pQKjYuP29dPWIyVWN4WVt8ZDBvdTBERHI6PiE1MWs/WG8zZVEjSkh3am0wXmlaaFlGSHhbOkZzbnVsYChrQGQmP1o+ZVAoJkNvOGxQU047NF1SfiFHIktfNmRqeChpblBSaE9dKDh+RHFCc0tCL2xya1o0'@; put 'ei9GUShfIjBIb1JyQ3p8YTJdcmtKbiE7Ykg1RlV8bnZiQj1VP1pBMWMwTG5vajYoKF1teSx8am9WWEllcytoaS9zTGtqaysub1UybkApOjdIIWxxQmxhd2wqcn1RIms7Lk0pNCFUcyVJMTk+UE5oR31MayxHb1AhWDdNLFVOXUplfnkkMFdGd2VkZ3JqLG1DQWZUQ2d9JEdgVEh2WkpfLjh4b1hL'@; put 'VWQwfEVoVD1jZlNYZGlIdmdJPH1ZI1Z2UlpZIz9iMExvJHtPOCtMSTFHP1UwV2o0NyxPWHZQV3FYOnpFaDQ4WFpkXjlTUl8yRVFXIlIvRl5UTm4uS15nSlAzNS8/cVBOYkxNWWF3cDJRPS41SXkkRz57dmFaOVdhK1ZINyshdG88OzBUJnFMRFpYNTplTWloNmMmeF4kPG0+OiRqLFhIKEJFTmt6'@; put 'bG8mXy8uXy5kYHNmaEN9MlhAT25hMkVBdW80M1dackw7O09Jbnh6Ij04QzphV3V3UlokMiM1RGMuWFgjTXtfRXt0eShEU2A0L21UbkpXSVFEMC5iKWh1I10+Sio9aG98eCQlQUk3VWxfclVqOU1EYyRmezROLDcvbUtUJUxpTFFPYz59Tz9rYyVHeFhYKnBTNEJwejVFOlJRdUZEbiZpMExOc1Mk'@; put 'RjE5SD9ncF83T2FWdVh1MElMcCRIUnRnMWRVeT5FLG1aN1VrN002OTtfXkhkX25SQUhFbDokaytsRWZwW0ZRN0swbUN8O359JSQselA7bnFYMTUxPmc6IUBeOGI9PlB3SnVxdGNNcDVXVEMxMSx6JDV6bmNxfU8mPlskd0g6OCg0MHxLSDo/Sk1kN0B0N0UrWTRxZm1FYTB3LkdBZXhqeU5HUDN+'@; put 'KkEualg8ZW9yZCoqQ3ZKPF9tOmJAfW1GbGA1K3hdey9HNTZgVCMoaFc1PXVpXnAjLiI/alU+Ikt5RzJoWkgoN3lGdiZNfFYmenJQIV15T3tmQUpgS0J0UmZrUnxfLDQzKG5pNSpZUmpHTkBlT0hEbiFVW24wKHhbaE1ucW1gIz9acnZLN2diUUpXJUEpUk9RPnxZUFpaIW4yRWAlT2VZTys2UC53'@; put 'U1tKZnpTWiZzc3dNPihoJElNXz5SNFpuTjMhaEx6dUx5KEQiODo0RWZEPE43R2tkUl06b2NuNyF8emBgZzdXMiJkWUZdU08mKHt2KDQ0NSprUjVjaWN0c24zSk43Sk9YOkBuZCoxUiVRcXA7KyROIUF9PzdwRE01e295WFtxbVRFUGwvdm0qRTlnYUZ5OVlmfVVHZSJvYjl3YnFPdnhhcSNITVUv'@; put 'd1BdUEYsMkFDUVBeLFlxcXU+cihZOjAjKDQmS05xbCV5bGBQfiw/WFV+Y099c013aHBJZjZTaT8+NVJ8Pm9LXjE3dnA2IUxeW3gwQiJ0dSJIdXZDI3xqUnBKIXR7cnNGeChUNkhiPjJ0fS9jWW1tdmNtaGxiYT4mVHlScWMpIUpUZWs4ans7QV59V0t+eyN1bXBIVjEzZT1+aU43aj97ZiVTbVFx'@; put 'X2lDO3tkIW1WJHE0R0lMaDQocTVxVFI+OCVIND5kci5UamQlYilhbzVsaTlkPHdab0A0aXBzam5ldXxaJnNWfHxeaT9YXVhUO3t4bis/SkJtKUFPPylMSTAuaHBQKmlQRU1eX3g6eDg1VW0oOFE6PkFNeU5icT1zSnU4KD86QWFpWmcqVHBOdmhONyhTYTd0elRoaH5TWVMyXTNma216fUJnUGx4'@; put 'MTt9IUVBb1NafCw+Mmh1QDp4MWZkZ0xPZjVTP3w2NmFlTjtuTVF3SjhENlh1Um5NdHpTLl17eHwyUXVWNVNzOTI6bn11bTo6MEU0YEshdEI7a2lFXVNyRzl8KDE4WH1zYWomeCg1eSx6Iz5UciZgX1FGNjYwOiUhWE1lby4iW2EyZEpqXUg2KCJiWWBuWXp6cyNxSSFgLH1ORiRLPFJEVm1ZOEJD'@; put 'flhTXll+NTJMPV9GMD8kYWZHcVp+QiZtKFN7XzpoPU5HNmZyXiRvR0o2RDBHM19jUClwNWgmdWAsSCVtMGE7big6WUZBbik6IiR2VFNpJkIiS0opei5Sant2fkNRRzk8SVpYczBaYFJFTU58TF1ER2xPdUtNdGJzQj19W2UqTEpNW1had25rSnMkX2I1RVJMSX5tc1ksU0l6e3EwNTBUTlJZTDxZ'@; put 'TFkvVHxALFhVKkV1aHJGaFB4K0ByRmVaXkJnVlErTTpPXWJ+MjltdDJ9aH0sLF8oOSh5YU9AKTpCLHNaOm1MY1UjQCtEdk8uekMidiRQN0hDcCk5RjVOc0MrbHJVWGwjbXB2fD8rK2k8YHxmT2t5VnBWUmxTYX42emdXLGBrZjV7bmlzYShWemUjUU5DQVl5KF9BRj9OcWE3NFBQK1lDW010TiJ7'@; put 'WnZBQysjdGwxOG1fIzZuW2JFJSthc2B4NCRlbE53I1dbdTAjOngiWyptb0laUlBsXXl9SH0mIjoyWjBRbTc9QVIqdV18amosJitLdGx9U0A4QDhiYGBVQEE+aV07dzJfYiQmcmlhOzwpY0ssJXd6dm1lOGxII2Z1NUo3UShZM1MqcjQ4WHtKaCReJVFuVkVYPVh0ZCgkWnhWUlZ2Tmdvcj1dd0pY'@; put 'NENWdTddfSlue0hyY0ooWE5ORDo8W1ReIXZ9TU1JM25SRkIuOnQ1LiRhazYhViIzWEQ9IUNTcylSJXtOP3hlfU5dZCxKdWA0fDxFdzhrMTxvYV4waXUqXlNPUCp6LHMrfjMvYzBWPDRifE5uXWxqLypiYW10XkhMX2IkOm4sLj9TWUd3ajxlWHRmbCFCL3IpKDFxMjooKSZXUzZEOmk9ZSM+Uiky'@; put 'SD9IJiV8Mm9dVzVFQl8hUGssMUw6OG54TFFlK294OXw5PllvS0VkNCx9MkI/ZnZrUC4yTkpGTj81PDMvU3xqa1ldMXFzXjMkRC5vMjdMYmdSXiwmMGpNYWMzMnQvRTVvZ29OWDVkNz0sRktJJTY0PlBlcGNTMXRqdnlQcVhodkVXTW0xUjdfQTZGMzRhbWpWL1VAVj18VCxxT0lmazxaIW9XfD9L'@; put 'TjR6cS9fK3BEZzBTKTRkclV0Jnghe3pLNUkpWkBLfTBwKFZTNl4pSWFVTGVRVUxRYit+NUZsIk19UnsuRlF6b3ksNF1UVyk8cGZeOnc5X3U2RXEpN1BlXS48K1NPO3MkS21wW08vbml1ZltVcmtpJiVQTXZyMGdmWTd2NVIsMTNMYi59Ui91bnpNRkxLfEVaJFZvdkVZV0c8Ui9bWihRIS9zTCwz'@; put 'N2d+KFpgaFtzR2BDVVRiTzF2T3U+ezJnKWt+WzMyMWJjW0N5aEIxVX1ZMnsqfWoxbXNKdTtVTzx2Y2lpQntIfnVzRDhaZX1GbTBiODc4OXA7TVg5JWVKNkhyJnR5Jj1FTHRTOCRlWT1CO3RvU1hpa25YKEU/O3E5UjFyS3k/cV0iWVtiQFR6P0BUeGY1JGApdFs/VFdYeVhDWEBzfFghLlZNPlJ8'@; put 'IWxmfTpFPG5EMVhzTSpFflooaiZAQD57MFg6KGplMmNlbiZXaixseD1FUld2U2Q0IzxpLjwxKTVWYiI1KTUlbEpXUHxkeCl+OkhXUl8oT31hS3hzLEhYQ1IhKUFnejwxZ0lGSz80K3g5QiE1bX1hJHBNTEAwZywzTH02ZDNbXU0mVTwjQyZ8LDlVMX17NXIvRi5pb2A9I2lFMzx8Ol1KLz88N0Jl'@; put 'eHFBOTAhYmM2JW9GWHBDOCtjX150cXhXNiFyfWBqTi88Z2o3RUM5SU5tWVVtSHRqJT1efXg9ZiR2al47OlJ4NCVkQEZLOFA0fXlFZUQ4dj9NVml1RE1saT41PndZZ0lkcmRhVFMsWnEmQ1NILkRMVXMkUHRyOEVGM0gwJF18Y0s5fjRXP18mNkNXIzdFekdTbmc2N1suRW5YMXBsJjgiO0J6OVYs'@; put 'VHs3T21WaDAmUX1GcE1ybjpsXU1SbzxKezRVOjo2ZV9yY0shS3kqQG4vN0RSMzY6JT8jWDk9aFF5TElRcFF4bnYkKSpqKz8wbURJdyplJFR1YiROZ08uYmJ0OkdnIWA4ZX5eSigjZS5GNW9LVl5VcV82dXtOeDk7NSl3QE17cEQ4Qzt9N0FxRDhZSSRDVnNZcng9V3N4PVI7a1RVYC9Oem5bN0I7'@; put 'YjxyNl9JbTZlVVBLIiV2I2BFdH5QcDNydU5SaDRMdmhJanUqSyomZHhdeVsveFd2Om10PTglXTNsPWdqUWpzTDJqTXR9aTteXXZKNGxOZ2ZJdU8hbkZGPSxRVU1vYiYlN1QmP2I2alYoenBaOE9XX1YyQiZgKzMxND9yLF18dXdXe3BCImIzR2F5NiMlWERyIW96ZVA0V3hEKGRyY3VZfUVMZ0s/'@; put 'K1d+KyZ3MWNyODZben5sejlRMXRHaDNrb3RnMXohfGhhUihOanUlWTliPEFdRCVsMXRpOjgpTjNHVzFQMXAkbyVPaTBbMSRTVURMTzEsUkhWIzNgSldSNTxSaUk0WmAyST5AczVDdX0paWYrTD5AWDxxYnFAdl1YKiFdLjghbzxALC5seFNufXtPS0svd0YrJThMSltpW0pKTU9NWFIxdUcjKn1U'@; put 'aWc6MTxEJEw8M0MvJHN2Vms5PCVEMzpdUypZO1swaVtncXZbZVl+SiUyUV1IYnNqeD1bUlFvPXowcCMyY05ia3tiNStKeHpDfFg6PH03eG0oO2JdRm0hN1hrUTNWTVBYZUNQNUU1UixVXltjI0Mrd2pwdnhsNjIuaGA0ekRTN3kiaztwcTtuXWZwcCM4SEJbaTN5bihGN2xQZVpUdlE9PC41akZ1'@; put 'aW1URVB+NzFXcC9dLGgkOTErVGVLfG4uV2t3bEM3cnd4TmJLP2E+c2B2STBAUCJTPXRyMD8xKW0hInsmcTVEdXJNYV9OQCV6NlYmWkVqR0JlcWRfI2VreCFjeCttYGJmIWgoaG9PWCQ3dU9UNVQxb0YzOmMuJXs4Zz9JO2JecjxOJDVzZ2srfiQreXxud0wvKS9xI299emNOL14sUlgxe25fNXsl'@; put 'T3kySk9iRjIoUk53OG9uVlozaFtWXXVdZT0kLj5sTF5ZbTR8fkl9bzpmPS9VeU51YnReMDF0bVk4aXlVZVcoLmg4USpoL05kQn4wVFFASW5wdE0mKXEkcWROOEhBO1BjUC5wN2ZCRiM/N1UhaVtTTSMzRGMocV5ucWlDamR0NUYkKjx2QlUiRW0rLDYlJChiY1tUUzhXZFpjW0dGeH1OP0d1MU5A'@; put 'I00sRz9iMl8xITZBTD46XkBOfjRnVlFnbWxyY1hRNmVgPnIoT2ZGZmdkfCJIcFp0YkRhZVQwamhXRyg9cmtAfiZdXmdUa2B9elN8ZVJtOyFIcWBGYF1TITVNLEwzNShVO3AiXk5aKjRXRE0+MEhUZ1oxJEFEe0shNVkrIV9oTH1uRG9mL2RzZC5pPyZXUH5HRUxyNl5kbj9KQX1ee3FiITUqc007'@; put 'a3IwNGklVCFzN2N7NVhtLjttSTJjLnJkMmZELkNDWH00MWo6RHZHNX4kQGFJelouN3pveUBhSy5NJDU1bUtFZEQjWzIzfnNNWXtkcHYvNGZ1em5GRlNiSkdiP2c2NShUa2B2R2hAeCVXJjZ+JipVQEw9OFJgeSF8InxXIylyaSh2XmtNMipwYURINnlycVREQ2A4VX15N21rOEImczwiQCZ3T0o+'@; put 'Ll4xbl89XWZoQWhCbHU4dVRnRWh1YyVoLl5aW2U3UkI+PzY2MWw7LzJJQzg9PyRDbkojaClzdyopR3tXNmpGeiY5KylbOCtWYHREXyVuWkIwVkxLfWdoN0AleWlFK21EJUFfLmZiVWJKay50Zz1FP3ttJD54Y0wkJS9xTTxUW2xULkpZJj5nNE4lZFApdUhSSk8mSTpZZmRfa0E5W3tjPk0hSyl3'@; put 'Zy5YMUpsVSpaJWMpVChWYms5Um4leXJRR14hNEpoR2srVkY9cT1FXyEielYzTCZ8SUNDbEdXYWthcXk1KDZxOk1geH1eQzBLJD5uYDJ7emdXbnU6cEM0aS9tNXVIWlQ9QT5rO0JxckV7QnI6c2dUdkM+Ql9KO2NqYFlkN0AzLGRUeXhYflsxZ2Y0amArdCVyWyQ1NSlxbVdZSWtNVWZLT2M1YT9w'@; put 'WT5PRzBUMEgrM1h3MVdwa2UpVkEyfnFbKUs0PkJ5OWJNVW1gYH5eMFBlMF9GUDAveFpqTjUpPGNPTWpFM21pPU0qcVUjWX5UKjkwZlJnM3YhbUcrbmBYL21JSkFybWshLiNHZFR0L3xqNzNmLHlbfnhHL3kyJUMoIVFqO0VtdkxAM15XMjJdLjsxMnA3fl1jQz0rQlt4RGBhQmshKX5CeG89aytJ'@; put 'ZTk+KVZOfHt2emVheFNpZzJodDAvNSNhPHVpU2tGTmhOcW5eT10uVVFWeTVTXiZ1MiFoX1E3W2x+NjpVN15SVHdLbVgvKkZTXzVbR00mLihYJjx4L0Z2UixFaktRWj42dXg3eWxbJVhEL3N+UDFDLyM9bmF1XyRlJnxUWyt2STdRNGMyJC5manpnZTF5Wm5beXdaeywsXVQ6YCJnWU8lUjVnYF1a'@; put 'YCVSZXRmdFB+TzFldFR+dlhXJUI6NW9CeW4hPCxpcFRfTlUyNHVSKHBZdVYoTDkjYEB6bis9LnM7Um9QVE1qVHsqSG9bNSk9OUwkLCwoJFh8X1pwYFBpVFJrdyN5ISQ5aSQyQWNkUkIwO0YpRDVbKnYzZSpGIklbeWlWclQ6O34xPEVQVy5LdV5OckdiMF4pZTBsOGduRCVGbDxyQGlWPkwqfHdx'@; put 'Izs9eF9GMHsqOSNfQzRScmg7djo7NkJ8VCZjP0gvbk5iUnl0L0YpU2koSi9LYWcwU3RFTy9lSEN1QnBGXzt5R293WUdVeGNGXkxsQ3hZR3l5NSFoT3JQRVB7fl4jOXJ1LDtKKz5HaDlsfVpHYk1HLjh2IWdoNk5SSTxPJHNwaCp6djdONnlIT3dxUmtBfEp2VXQ5Vlk3aC5xZnlJejkyTUtJTEJH'@; put 'PHY0SX1MaTVdfklJQy52JEFDcWBzfCg/TmpJdHl+RSZYelhmRkxsN1h7fDpHIX1VKmA9QHBSW20kNTE9RS99YmthUkhIQ11sQEQibCs1TW08QiFNajQ/ajIoMUkpOjokWTdSU3pCLjgqYXBgXTNaN2J5bD1SJUJnc1t9X15ybjgiZi9WPnlyZGl9TFQ0SVt2IU5oR29mRW8wYihiNE1uMGJ7PW5z'@; put 'InQlMTIzfSZoT0pLU1lTfXNpKl9rQ19HXVZUOEdJMGl4N0k/dlRmWTY8Wyo8cGkqeFpeMktvVV5CLkM6UilbSCxodiM3RVtfQ01hKmZWMyxkPzE5OH1maVM3Mk9HXTd1XmM/SzdXNFVCZWJrfF1JdCF5WVcsYlEkPlhHYUFmOHZzTU8wOUozfn14JnFuMSNvMmFGKUM3IWQ9RXlodn5fM3F0XVEv'@; put 'Qm90WnhWVSVYXll6LjtYX3JkQzgoOHY4Q1lJQyl7fDQrJmZyOSMmO1k1XyImdCVRImlHWypyLnYuc1s1RmgsdCYoZmVaTChbQGUveURKMilqKF1pY2VVeT4xYyRuJnYlOmppZn1dRWZGTHchP35YPi5jYHh2PX53REl+PFZKQnxKL0VmPzpoR09UQkM3YFp0KzsvP31wRFF0c3BZQ19ZL1ttQjQp'@; put 'LHpyQnN2VUElRG9ubDhYa2xadlcmKXo5NnNSQng9WE81Xl0iWXxscnhLdH4xJEdMaD85Sk1+bX1jTj1icy5YTFhhbylNfm0xfV1zKDNHNV8lZVo8dnBVd0VHNU43VislJSZSZW9STyZgdkkoeml0ajxjYWZKSzNETHQpZzd0OzQqKVhjOUUzQjZuY09jUytVVztqY2hWS1E0PFNmaFY4VGReYFN1'@; put 'U000OGpdNS96TGlEOlM2UWlTP3lRXzssJm5mSnxrPnlyPSFKcW8sJWpfJUI+SGkhTkJgciUmL1dBdnN9PS5NcW00Ujxpa1E0UmArNWRaZm55UXU2fW5qd0c5REckZE8oNjM7d144Q0hmJDl9eXo8SVJvKypRKl5ucEM0Mm1MbSJQZS5tdSkuc2hRPyI+JD56bTxdVm5gMnl2a1g6KTZGIi5lLGFa'@; put 'MFAxQlRYQGsiTTo0PVY0aDNYcGd6c0VZfHMqfE9GMUQrcEwrRkk6WCxeYjFYbTMzRk9xciRKVTp0cSM7Ils6V25nbX5iTm9ramFHbUZYcj52Y15IeWZSbnkwOEV1XzhkUyNCeHhEMmRCJipnWCVsPlhrcDlLfEhyWE05NXZALCYyVHg6JDleazxZRipCOTZfeFpGQCJDR0UldSZHbiRNd05xVDIo'@; put 'am85bzwkJk5oSllMYDZnI3Eub3srO0p6Slkpb149RDx5ZyVLfXkkaXZ2ZSN5cV46clJ5Mzx4c2oufnleWUJwaFooWGAsO2s0e15SJix2VnJAbHREOlpePikjTldiKzFveyVWdEpxRTRwWXJSPSMqdjl9WzhnQHw/MjE8b2heLCM/cS9OQ0dWKFREOG4+MnRZblhALGBIOUloeW5iJEJATlg8Y0kz'@; put 'Zjo1I049YiQ8ekxNWDxKRF44MitTO2kmcG1NVnM1PFA0XXVeXVRpWjgwX25GZz5lK0MlaUY8XmRUS0JfKCVhaU4hXXYsUzgqYjJVdG5qXkQ4V3x0YzRPZixHY3BaRUd4M0hFPSN5JGlsKlFJZ1I0VSo0eEM2bTxbNkgvT30/a1lSIUspZkVhRnljSFZeKW5nelpFQjAmZTZiMnsrOjxaMiUhPzRT'@; put 'cEpmNWMiRipdMkc3WSFLSFMjSCtVfV5da3cmaXQuOz16JXlveUowdFFWMX5Ia150LFBQaWRzUW84cm8oNkBlbXYrOVBteGxEUTliPG1LKkYsLHFRbXhGa3o4KEwxOHolayJOSV5EVE54UT8yXiZPQDMsZGt3IVBIa0RZbFY1VEdUZSxhYT9IMixDZDNQXys4YWwzJmpeOis5fWtuPko1IVtuIWJ3'@; put 'OEsqU3g+dlU6UTZfR2giWjdCM2xHaGFUJVtmK0o7dHdTRENoc1tCVXF1M0ZbRXYlNDpgRUBXMnZoSS9TUUdQd0sqOj96KkJ9dWI8aXVwYTFSM3BDZDEsb2YxSzBgej16fEZ4Q3BYJmpIfGs2OnJ8Lmw+eXJkVypWNnZDRi9kXmYmcUFjSGFKPiVHeT1ARl9beyU7Uk8qTGl3Sy5Hb3Q8Q1R1e1R1'@; put 'UFZLfUx7WyxNW3cmW01QN298ezsjVWBaNyNRTEg7SVF6WX1UJHtSTC9XWnwkbX5lJUJ9SXQrQ099Y3hDYS9DSCFkJlgkRjA6aTRHZVZzTXAmUm0zUUVEKXhXWF1dOnJtcVpfZFpAdGlLX0U1TCtIJWY5YFdrVDtANXQ6NHEqajlvbV1wdmVVOXo5b319SENPNXxpKHJIKSVkdWxfOXRYOCxveVJ7'@; put 'LzIvO34rclVdTiROXUNke1tjVHdfY0UiLyNMaT93PGVUKVg4b1FTRXAiSC9LOXNWMzFmeD1zTG9wSV9DZXNrVDxAYj5lU1t5Zm1HXU93LFM/Qnh1bDhpM1pGK3UuSCF3Rl4zaXg9d0s9YlQ7VzNFMGp1LDclK1lEUXxXM0RIRGtvXUpXIl9iUiUqR0w4ZmpQWU9tOG5Ncm9uRDJmNigvOzhaT0Y4'@; put 'OXo5Ikk/cTxCZEUwMSwuMEc3MTBKZV9rW3E5cFQ+eXpRaVZLM0M5MylpPCl5RiJjfG1gX2pNWk9KfCNedXZYTnl+YE9FVVN0JlZ2Iy53TXUmWzBdS1Q7N2ckWTVtcjloVWU1PFRseVgrdi45RFEoeGJSeDZ2TUgiPE1LTTNFMDBoUjohP04mYCNJdG17XlBHdUAsK1g8SFUlJTVISWhRVSxxM0Bv'@; put 'bVoyYntFNF1AOjo8dlVuZzhhP0s3RGR7Pig4QUp3MCgzZjBobDA+KHtdKnR8R005cTNMUDRdRzUsLCZedSYrNU8mdHZ4WVkmPCtjfH1IQk9PbiRxbGF1MUV+cSV1VW5tXjJZRyg0SX5XWXdua1AmI3IhSmRpRHwiNW1ZUCMqMTZkWWw0S2hfWEptV2ghME9yYGgrKmYpKDRoZCNLVDtBVEEqSnxv'@; put 'NGs4I29CVilFR1I8Z3YsSmF0TitlMnUuT2hGNF1AS2U4ST9QKF5AZnV6ZTlvSUR2L2xHJUo+SjFGd1gxRjtpcFNCIVAmREZVRS5aV3ombk4xeURHaDAmKUJBKClLQm1DUzJKNyxwTWJfeCR6dUpoUEUvVTFOPk4jWjh1fEdRRnFSNTRlMzRXTUUrPUE1MVY+SEtMQ3cpfCtJVzU8M1dWbktgWyt3'@; put 'ZHgsdn1kWUdCem1hP2BQcmUwdiNvcjAmbEt5cVsvN0pJKEMpZ10yZlt4N1VjPVlxSGgvIVFUXl1KMCZ2IWgmc34mbEc7bCgzbFU3W0o8RGt+eFZVM1RtR2R7M0xzOTBVaUMiPz5scStzOUNWeHVvOVtDREclfXxbKSo7Z0I2L3hzZHczZiJnWThZakJvW1BlKE9Bcys6QHRQaFRLb3ovWihrckBv'@; put 'dX4ibiNFRG4lQDFjbD16e3w3WiVHaClZRDhec3MxYDs6dVp9ZGVMUTNRaHEyRXhXcXc/YEpkMD51SCQodEBAJUwhazUkdUwuO15KbWBbYnJvI0hWV2B+S3E6VzZ9M1syX21TXmBEO21mdGdJTCI1b3k4L0dgZCpjfC9ZfXtIckJ5fV98cHl8dH1lRyxQLGlJPUNNbjtbaCg2NnV1RkdtQDRAYzA/'@; put 'Nz5XOStePHFAd2BffXs4U3B2ZVVCTGxPeF9YfSQhZjZ3NXwvQ3Q0Z2FDSnJjM2htbXQrUiR1IiwjSENhez5OPFY3PkhfQipFSCRJY0YlOzhxZ1t3dTErZXhhfn1ASFVHQVFxbnw7NkpabSZiRVtZT2ltUzp0SkY+PlFYY31LZHZwbnNYMDlrUztCWmF8RSE0OnAoPSJ0MV96Kj1QalBMbD10KDJr'@; put 'Yz9DLi5gdEohPTR3eGQhbj4xOzw9KVZbY2lCKmYweDBDMjxZY2w4WXB6Kj83eiU5LygxRTA8cE1RWGAkZUgrNjdBUUpQMGBtU0N1d2xycUAyKTtSdk8reSozRzRLc2dudz1jPi44WGFxfjA4NVRTaS9fU25rcUFOJj5nXkAlNk4kdF1+N11dQCRbJTlxQ1thPFNgfVRtOHFmIUhwPmJKMWprXyV+'@; put 'eVQ7R3VXXl1hJTA7YEtnW2QrSmpDZFZOclN5QHghe0dhWD1sLz1uKFA+PzVLbkJJY21YOWZubyZ1Vms4a04uP01nfSFDR2I6MkchaiVMUmg8KlovPV56Tlh+fHQ2O2EzMnNaZ0xZPl1GUCtWZ2N1XmcwTjcxX259YHI0fGYsQ2xkSjpBbiYsSGJybS5wYk9kZ1pxey9RcV1sYHF0U1Zyem5YUj9i'@; put 'TFlTMm43SXE+SEBGSmR7LF52U0R2cyRsfTo7bWBRMWAsWyZvUG9eOyg9Njdxayh4I1gkPFBWZjVkWmYycHt5RT1VbSVrVSN9JUN5N1V2WDFyO211dWB+cGplOWhUUDQ4ZUlfOyYwcUIlall2OUt8dW1dLFBNM0k4W3Q8cTtiUjdyRVJ6cGh4aktXZmh4KWl5dTpmJVAuZXpRUDN5OkM7L0BAcjU0'@; put 'Rnc4S3RAUkxyNDsmK1YpdzhLdEBhZ2NqaElUNkAyajlKInR0KE10KyIydzJzUDJxO3pddXxuKF1PVV50L2lwIj1sT3E0VUpKW18sY2xhOnF4M31UTElfQn1PXnZoKn0iVyY/eCZxY2FhWDI6c2dKUClFXnsjTSN4PVBJOmdKQl9BcUt8eWhCJkI+VF8iJUI+UXxvdU5kOVAwSGVDMWRHNS9tK3xC'@; put 'YnBYfCZyKnlyUnxrPk4meDlLfGs+RiY+Z0liVnJRLD0mK0VMPyYvO2FyXWZ1P3xITGNALENvXVhCJkZkUHp7YFg6djwrWkdTS1cpIVhtcjl3WCMoV2QxPzA6REJAez13W2xndyV6YnBSU05ubHFSOU1ubHIwPHNldGAuJEpVcGZQZHt0WyEyRyQrZVt5VjxVNk12fS5McTh5PHZmTDxKIVM6QE59'@; put 'P3R8dElEZ0c/N0d6OExqdXdnLnpjQHJfS1JOJmRuSXV3RSIuKFVfejdKTTdTZURFSGFwWF1MMntmW2hYRj5lTiU1dUA7PjwzRXQjYHlpRDg8alRxY0dMUm9aSkUjVzV8Q3o8PT8lZXwsUGpEXmVLfHs8ez1jVlkvPVg0SWdhMClQcyI3KiZKdDp7Nzx9PXoleXRtLilKPXVGLHQyY0Z+JnhUOTJK'@; put 'Q2F+dF1jVWBAMVVQa0hRUDRKflchezE9akp7Tz0yflk7fUlkPlBqZ1cxPVVXejRZI09MdUx0a3ZvRSx0KltDWSVgXlZnVTFvLGNmVSs/Uz1nJnNzZiZzPyEvfkMobipPSUBSXz1hcFErXTUuViMrOFc0cShjRkkrWS8xRyZkIWIlfTxjcF1OYy9vL1BzPGB8dFZXSmtpJV98dC5+fTtGYilTMzxR'@; put 'Tk9jL1lWQDtUa011Jk8kb1Yrbm1mOWJAR1E8eCZgQTg9R3hyOXY6OEJLdXg/PHBWRjtbSE84ZSQrcGlKcE4wflFvcFRDdTNaOHBjVGVUXkN3WENYU3JHTj56ekpKNj5ee3wjNCk4WSZXIVpHSXxbQGpdYVhiPSZOazw2djsvdzFFfmR6eX1zW0BnOUZ6VEUuVFtAdFN1VnNwZDhVQVhNWGBlNz8x'@; put 'RHZMVUZ5JWpiYWJiMkMzJm9ee2htKjdFeG92V1dIXjwuVE9FWzVgTXVUfio2KlYkTWReI3gxVXNxS0VrJlNoNF1eJW9nQGxPO1VlTF9sen1mJlo8cEpFPn5ndX5YXkB7XlR8WElTVkpkNiIzSDQ/RFFdYmZ2PW9zcnQwb29BNVVMJnN8eUQoK3tBfFNjIzNzciRRanZCO0FQPkxiTmZ4MnZvTUd+'@; put 'fHlGfjcsTXJATHV5V0lKfTpAOilgI31YYnIqTlV8dlQ+I3ooKXYoODNNc2IsZU1BJWovK2haWyVpI2tCXXZET2c8UFldZ34pKTt7SUo2XUxPbz0vQSE7Z0IqUXo2SCg7UTV1TW9TQUZ+QzVbNkFaYWllKUNXMWE8SH4uRzl0Tlg3UUlvPX0rKWxdJXRGXVFjL3xEVDJBKXZSIz0iaTBRWiw7fil3'@; put 'TC9LfTcjNT41KjslZCVpVW5xW2lLX2hXUlJzJnBhQlNrdGIwVEdHIUhdZnI3IiNjdmFNS11yKUUrYnZ7WXdvNzRGPWwraHk5MH1AcHVVO1RVWEljTVhaYHFCR3wzV1RsQEpqQW5DVTBxL3F5ZWFwSyV5RVhHTW54T257eHd5OTFMfH1YcH19ND5xMmNeTHEub0dAdHB7KylYcVIjaFVyPTx7dn48'@; put 'a2V5U2dwT15wIyZMKlFtViZJRCk4WTVaV0pbSWdZJFZPMTlrOiF+Sm91KSMiKXBWcE9JREJHMmEqPHRCVzFnYTd+bTlvVS93d3Beb31LZ3p+UT9hTmh5Iyw8TWI0eGcxPTdkO255YUdwLCYmSHpkMDNmdS53bz9QYlJLPHpORn40cVkwQ2t+OClUN098KTZlPjsuI1MqVXtvcFdsL25EIUJFZjAv'@; put 'czlQamtwYjUpRjswKV9nY0pCMiExQiNpOUIyaiZqSX5SZSVAe2FZMD5LSzdRZSkuYyhOUV1ULkpNdVNJcyY2PFNmSVtjezNzZ01DaG9+dkJneVU6KWQuUDtdK2k6NX12RE9feUNUXmUle284PCFnfHNVVUNEV3BzTWtCPEIhTlA8T2w/MTRTc3slUlMqJTUqRHlfPzEoanAqdk90RXV1SWYqcHhv'@; put 'KTJIbGttKElyJE5EI01hMWBVRVJ8b0A0PXVmKzZiOV5xPlhgV1ZKTig2LCxtUn5pZTlGLlZVKW1pWjY1MSVBJkFseDxyZU9maDJkJlAxRDNiVD46Q0pzbDUsd0trM2M3VHk8OioqRyNlP34kSW9aUyQ6Qls0YXMlfkg2ZTJqWEpsKDk6OSNHR3hARlB7cW98Tjc5MHo6cF07UjVkSU9MNywsMzAx'@; put 'bldjVWM/NygkR2EhT3IzPmM8KFtVaFVTeylKNzQ3TSosPV0rJFd1VEV7VS8mdiFHfW44JFN4PH09UiFUa08jfSU7Uz8qOyVSbm1ydn17Z3leNmc4NzlFYDZEPltxe2JAQmF8Ql9DZz9jOzJlVmZQbWNHX2I0QD0mOndIclZJUnBTPTA5WjtGdX4rXlNNYVk4cX5WLkpBYT1yZUkoYCZHX08xXXZ8'@; put 'IzM5a2cjWzIqS152bXN4dUQ4e287dm15blAmPiZXTEYiNEROSDprJUtFS1lQdWpxMzRISz1eeGpYYjVHQjYwWUQ2MlJtUnxjJUN7dnZCZ25KRzVoTzYxYjJVOjAxYnJxa1h5NVY7JC94PjUvW0d5RTU7NS86ems1SXlbTGg6I3JPNWVpdFd6VHU+ZS9VdX5dQD00NUAyW2JLYDFNYUR5LFlNNDto'@; put 'Yyw1SXk6SHdUTVp3Z3lYaT1pXkBUU0puZjZpRDZLIiRnOCUmTFklPzVsYEtleWxgRTtHRl1uK0AmeSUscXgpM1dZSXFHaCYzLzJFakl9JG5mcSx0M28sQT56U3lQQWwoQDBycz57dCRmSnZiT053dz1uU2I8O3dWWj5ONz52MFtDSkNHJmsmfHBySHF2RSpAVnR0PF5kZWZEKGV9LHYzKD5CXzNK'@; put 'WjtuMCY1JHhjcWJpTltkUF86UTsuU2ohb1k8fWpKb2VAL3ZOczJ1eFdKRS4yaSRHPDEyK21pUWtMQn4rO2pJWV1hSm9jQzx2M2tUOztJPSR6YSFkbDhzZDM8L2Z1dTglQ1kvNSlgRiUpQEY2MzgiSHxhQFd8QCJXfEBCMmw6SjE3VWsrX0klSj5hXjZiQlc6WGQleEI6c1o/fnImUDJLT1JPO3Bl'@; put 'Tnl3L1cjSjU/VV5SdkZSbTVKQ1hxaWdTZVkvejlNRzVSQmdrODYzR1JBczxNczJfI3FwQ3gmcUs4PkNvWzQ/fHZ0fnBNdUR7SjB8NEBzNHppW1tmdWVCcy90TWhpJTJVWVBqNzkqPnR7RSUldWR0YlFsTl1AXlNgKSZyS3laPS4pTHY0RUo2QUQ8XUVYYUBZLG4uTj9xZTNLNDJqcWZzS289UUNK'@; put 'QWxUMmJuLkAlPzEjfHtJfXRMLmBYSE1WaFYzdlEpdk9KNlJgMCZLP2NrQ1dbR3JWT0VlcEN6TD8/ZlBUNF1BT0kjbTMuWlBgdGl9TkF7WVchTWM2ZmY6ND9XKit3QG5KZGBPRVJMPkRoNS5Mem1YN1B8JTVSeFFXazg9cSZxU2t1SVdPPGx8MXB3TGw/PDciRXw0WTk+JnI5VGNweFZAaUV8bCpa'@; put 'dmgsKGdxJVUmfFlhblM8QF94W04hRHU0VWE/Rlo1c051aFBiZSJRL3l+YHhbQDYvbVojYnA7ODtnJGRvPWleV2hIMGp1NFU+PT82eFIhXjdoWngsfU5wIXVGOGtOWShJR3cmPi5XYVlgRFtLRmZ0anlnTTBtUFg0NDglIS5GeltaSSl6JDxwNE1SP00xPHI3RkApdnN3Umk0TFZPTGM7UkE5Liwp'@; put 'X08vTlo5THQuYEVEPHM4NiErUmhuPXEzcX01I3IhQVNWJVdRU3s0RyM8W2o9azA4QnlOZGVPM2FWLGZ6TlJsSFNNZUBsYSp2V3dIdFJqIThyN1EwVDpTZjEwbzB3VCNhVixgLyRbNUEiKDl2TFErLCxzWGByYmYqSlIkLGNWQHpnSGg6e1R8ezlENXE2cVJGUXtjXXhJYWY6P0Mvc2ksS3c2bVdY'@; put 'KzE7T01JWDFzKnVXUT0xUn1MeCI1fnpvdElPSzhPTCZxbltAVWpIWDVyNk1AZXc2Y2BISV1fNjVeZipEOD46Kip5VjVMUkVGTkt4XSQrXT1QOz1Ka1RVUUk6UklucjFIVUVIVktTeCJIQER2TFtRKiJkRT4iZkdgUjhJamJgUl9RKiIsR3cxWUFqWk1AZXd2JlQ2ZkRWOmgmd1RaSEpuajE7dTR6'@; put 'N194MUFgOkZXY2BIU3BSSUMofXdjTzQsSntIYWE1VVEsNG0jbjdpTGRFYmlqMTcvI3k5Kkp7aVpIQnVoLllfb2RNWGk6TyFpaUkqNGF4NEBGfWVNZlJaelU3fXd3PThMP0BgJiMsJDE+QGAmQ2VpZmpieilFOn19Nis7Mkp2ZElzOjdxYj5gNihuJDY1MWZOJnIod0deRylHMXhjKCtSa3g9WHtJ'@; put 'eXBoWGVzb3RjQWBpVlF3WyteYGplW0JSK15iUyZRI2MsX1FKfjdlKURsYDtHTyEjN2NkLlRALnAhU05RYUVmZjRWQitzdjZBQyR3cyp7XlYsI3JwYGZyKn4pSEtdOF5YcnlDZkpCSkZePWZJYj5xamp5MSE7K3k1NmVML1VrWmVHRT45KGtJSnx9KThVRCh0X1FAeCx4LGxyWEolP2hjfFlZR3E4'@; put 'aFBkWF5VRExkeHNdX1VDV0VxVSI6KVgsS3NZVCJkNGRWcGZgVFchTUI1KU12R2ZGcUU/N2M5W2pzST9sWmRhMGI3QD0vL3xfMmJHfChEfkx2aT1WJnE5L3osLipqVTw1TGo6LFFKNFVXRjVke0RxXSEmUz9xTDFzPiY6Um9XZVRwUV1OQCtvKVpaTC9CWXtoPFdjRXxCO3dmdH54WHA4d3FiczJ3'@; put 'WihvbUxSbTllRGEhVDdASDglXzgpMCI1JVc6bjYpZGs3QHVfXytlbUdhPFdyOWNrN1U+RS48ZWdaN2V1cDRbaFpwOF8uO1NDVUllZSR0SyhNNGhmcSh0QlsjSz5SLmZlQ1B9PUYuJk5lfSQoVmheRSVvNWp+di9AbD0qfGdjO3ZGQUU8c31Bb3kzRjYlY3gmcXl1Y2ArdzQlPnV5TVBlSXE2TEJ+'@; put 'JHRLVyphQihMSDNQd1QoYXcrKzI1KmI5amJHdTI5eX17L30lIjJ9bV1UUC96UXUjPWJRbHA4K3piKWV9JFB8JGQxcFlyIWM3JmxnMkIvKHokO1ZTRndRcVpYcnVlOVtgNyYrKnomXk95Z2tyO30/ZVpULyNBJUUoZSRmOiF3eEgxUyklQEh2bSViJmBoRHRDfl0+ITs/aF5yaX1qL2o8NzklPjku'@; put 'cXhvN0Y6IUR5KikzZixSJXxzSEEzRHArelcvMW18XW5wKzlHRFlbTD5oVnFmZXJBVTIoJSZmVExnVXYjXX1pd1tZdGpoclkiUFZeLix9UjYwK2YqXWM5biF6b2QuRmA4YUtAP0oxTFA0cnRwUWNXRnU8Rm1GT3Z4KUBLfGQ6JTElZiwvL1g9Rm9MYHt9LHBwbSVQMDkjVjEjbm1USD10Ikh7aypM'@; put 'Rnw3ZlRUazg3fVZJJj9QLl9vXTgvXmJMWjglL2cxP3s/TXE8JFQmXn1kVzZPSTxUaDxpOlZFTnlgbUk/cztdQ1c5TTBbeyFQQVVld3N2Ujg2Um9jNHNbQkg2P3l3LC46NEA8amdPW0I1XTtnU3xdfWdlLzhmWyhsWDVHZHgsKSYqT3liW1J8RVImb2Z6c18kSml4d3tIOW5ANGhNV34ud095QS5e'@; put 'akR+JXpEU0pvcGkkRGU1bEQxOmB4TSQ8PzJLaTRHaD5qdiV5MUduPk83SE8pTEEvZSZIQ0BLKjVfa3kiNFQ7fmsmOjBaZyhRMjZTVnpqaTJAfSxyUWZBPiV5OFVrQG9XVj5dPSZUMDs1T3hYLDlOQHlndXNaPG0zaFNVZG5ZbXBANS5uOkBVY0txVjRFcjBYQzVAe2FFTGR+MzUlLGYsU1JLOnci'@; put 'RUZYQXh2NVd4dlZhQWlDez90YnxbSC4mZ1cvSihgSltlMClgPVszb1JNYU1DISJAbnRMOlUiM1FqTltha2E7QWs+I0RxODplLlBdc1k8NUY8K0hEQmQ9WzVjXUt0KkFndS8xPj5sc3crcjxkTG4ue0x3Oj84S1Q4fCg4KHQpeHx+YDoxLF1dYE5MR1tgTFlqKj14bSp2SltqOkl0Uj09KU1iTzxz'@; put 'YGw0NUcmPHUjOSlDe3BXbzovZSNXW0Q8c25iR3Y0U2B2RSw4V2ljMFlkYHV7OjIuMH5YV0w4VWRqZTdubEBRIjxdJSwjQmw6anpZaGVLPS5uKkB8cD5CbiR3JVAxQT9fXmJ6cmA1YHNbPGMpdEF3eU1Rb2xvNFUkOz9tX0pyJG97RnArWi9Yb2F3Y1EuJGs8VXRgc2lpOmp6LjYwTnFUe25vYnJq'@; put 'TCR2LDFnOTBwPGRQPSE3ZXZqTCR2LDFnOTBwPGRQPSE3ZUdAMzZCI3xLWTNNUWxPc2o+U1RGNWc5MHFxX1ZYTT5KZywxZ3gkWCNqR1NdeGI8UkdudGssTX1JMkkxbjV2S3ZbSWRHMWpBVW9SZ0t4VFR6c1NZaUFTN3xYX11hQyErb1RmeDAsVmw/Q106NlEzeGtbayQ2QEY5NnNGYDh8RSVoQ109'@; put 'YE1OWWlSbzs9RE4mR3NOSDVRK1s3Kj1IUjszMjFVL107fUU4JDNyR0dFR2d5KWE9clhzV1dgQC9AYEwoOEhGM25NYWRObmgoOyspVFZnVkpJJXF9LHR4XjJsSD4/fXRPcl53fF9iOEBOX1QxQGkwYkhUO2xZSiNGRm5sfHU/PCYlfkY6d0hIUz9CcH5YWChEdklsdWhvR311OnkrRD9FPD8/T0hd'@; put 'SjZjOyNISHdQPTRwNlllY01JVDt+aywxe0c0XSRLVEx+JkZMVD4vbk5pQXt4KDJZaTFGV0Rheix+KFcmOkBdaE8mc0tNN3o5eDMyNFUmLEJDQG05fC9ZIno5cU18VzNfWVdaOzQhK2V1enhAMVJdeX4+UmRWKlQmUlJYeCJ1Kig0UXtROHkidSRMeml5YW9ld2I0XU42cyE6ZURFUXVQfUhsPWgl'@; put 'Km47a1ZqSCkhJTNjbCNqKVEraSJPREQoXSZYSk1RYmJ2cDshaHoqIiZtQ0xvQ1FYQlJpXztsaVAsMSZKNmh1QDssOG5GRW1yNSRZO0hSJC4uKSxZLCZxQng7QzEzZFpdeT9KZWFHIVlBRkF1UG02ZEBbTnZiW0hPNSxrQ2pHSTM4UmY2PCJJaFoyUDVTJFRPK3ssYXQ8Q2BIX1Z4WCZ5a3c4ND11'@; put 'X2tBNzhrNFI1KT9gbkxnelUjUmZAcSI0R2FeVDxQR0N+d30zWkRZR0FBQyFmZmhaX1YsdC5rKWYhTTh3IStLMjEyezEhNnZlPi5EKlVhVk14RH0zI0x+US9vT2VTanZjbzA4TD1NN1RxQ1lwMVoiRmQqbCtSaV1AczlhNCFZXiwyK15UMkVrOkVJaCF3Qix8IWdIIk0/KHIzSDQ/S1hXb25lLmhs'@; put 'PXlCZCkxe1JQQn4xcTJIX25haClbRFhuLz5tOyw6R15FNi5HMSpCRVttIi5hJF80JHlaITFUVTRXVnU2PkVvLlc8ZktLa2RMOkZ0d2J2dCZSPFheZG5xakQmfC5dcUooLDEmbyNCbl14JE0sZXJNc3JiYiRfeX1ebz8kUE98I3Q+Ql5NayZkOUFkZ1FzVSpCKFhASH5rZ1ZfWlJxIywoejFWMjw0'@; put 'S1A0Xz99ITtLbWtheUg9JmJHdE4kdWJwMElNZlpGNF1LUUY7aCQkUWNwVk1XdDVGS250ZSNHaCxQWFQrPGdpKlZCVjMsekBOK0RJUjRdaSpSPzI5eH03OytndWtjMyFvVjMselUvPGxzamNbcHdxVm18c3lYTUg/ND00aSp0JSVyfj1FUERgZEh3RjBzMm5FeVJ7W3hYSGxlRytUV0M3YVtHXihU'@; put 'aVduaytzWzRpKGYjSXlsJXdhOVBLM11oc3tpSGd3SWR7Xy4kTikzeillNVVuXk1dQFc+N0okLi5hQTYyezN+QlhMbnBdPytFcURZZUYwPDklZCYqOklSLGYmcywjWCwwZk5iLGQxQFgyTFRCbXlEXitfYV5ESW51W3NfJF5bIUZnIUBiOXYsMmc5MFMlKTpVbUMxUSVkUFshN2U5amM5aFszLGtg'@; put 'dkc1LCVHKnE6OUw2fjoqPDFnSjoiLnpaMmVle1I9PmdtcEw+Ii56WnM4PXJQTmFnNjxSRD92eC5tKXZfTSU+OjBASltCMk9SQi5BMyUyOE5FU0o7Ii46Rm1CfDIiX3NIYEIqKH1lP0R5TDphRWArb29xS2x4M30pdTo7ZlI3ejlXLktpb3FdbGsxU1ZlSixJZixRflQiZzRkQT9AY21te0o/aDhb'@; put 'S1g5QG9nVGp2M0kxOW9pfENvM0ZYQChMK3VXLlEvVzs5RUZ0JnAsbHxASCE0Lj8lNmRKeTMzUUR5biRUNilMRGZzT3ozbENYaHkqXz1XR3Z2dV9TKWlncipEWzkjRFY3UFVhPzd6PHQsSmF6PnskLGNIZHsxN3ViY01WfD47Syh1OnI/STNEK31fUzBqLyxQKGwxI1llJFFdTzo0SylUbUlmJVFF'@; put 'a09kaU47Uy5SQixuRlYyU2RpTjtVeSFCdCU2dkorZEZbVCM4WkVbcCYhaW9mQUdJQVJZZ28/V0loTjtBWWdtPykjZXVNQWkwREEweE1aaENTQyN6VkFsVlJCOTVEYEYlfEVvJXlXdWsxY0l1SmFmSUZ0flBsT10qdzMveFIiaDNVWlU1MFdNK2RGakVlQXchamB2Rz8kblp4Ul5vNVszSlFwJHxD'@; put 'XWIzUit6Jl9WeEZFJlQhK3g+JEJxJjJTPXg1ZDhRSypbalYwNlA4TGh7M0grTEZRRnc9Vi5JK0hgbms/ZHM+amE+MTZ0UzZgLDJTY201My5qJnYkU0cucTVgLEhsLjcyaGw/ND05Oz5sbyp7bXI+ckVgVT9LNW57KXVuQz9tP3JeX00jeC4qWkA2fSokNVc0djJ2SVo8W0NRdHxyTDJjRlNMSkUv'@; put 'PHlDQzB4fFk7Ki5YPUVSdztpPyxEN3NgdS5PJlZLUG0kVWJ6LD1BazJTe1lLeE5xXlNmW24zP1ZeIT9WbEtbeFZHcy84VX15eExbPzAmKUJ2MjIuTC46eSpYPUdCa0d1a1FPeDtVLmEzT306VTUrMU90NS9wNDdAO3A7e3NrWUVzMl1VQXU6VjF3NWRCSil4Tit2LHFuUk5RdmQvYTRwQiF4LipT'@; put 'My8kZDpueW4jfU9me281b3lhXy5ySEQ8W2Q9PGBwbjVJcVdzP0pFVF0ubU8+ci41UHZjeTRePzl1IT90Y31fPW1HYTIzZURnKkZKOzEram51K2VSRiNZeUNbWFZHXihwVVBJRilhaHxGLmE0PUJeQWBXLjMsTVJ2WUEwcGJ6WlJbbntiSyRKXjpweXB0P1Z5MStUfiZ9QUowOVtlI2Y4YXglaj9T'@; put 'fHB7LFhxJTY5OnN2bD8ibmsvanswd34/QylvM1VOelV3IUA8RkVZZjhxcT56ZkMpTXJYKU15RC47V2ZbISZKU09kNmg4byM1RGN9TWZMZC9UdytzSVltOWxhMilYaFQhVkMmQGI+YnU4TVlPJGc4RmdAYUliOlEsbU8+NXd4flovTTU8Y0VuT2UrRCJOJip2RCN8VjNpYyE7eURyRW03JjdWO1dR'@; put 'eyR8WXc5My8xcSVfQC87OnlgJTVgV1Z9b0YhPDN5NEYlIjtXQFB4eioxU2Y0KkpgUixEOXpyOnVtdy4pQmF+Pj8yQ1BsOFc9c2gwIXF2ZiZ5OCNdYTsqQHZkXUA6aWsmZF9Mb1dXcyZxM0xUNFRRSltTWElqTXhfImREak17NmJCQGNvUSNdTCVXYVU2c1NIdUR1SCpkOkEmRFFsT3JpUltSN3dM'@; put 'PTFNSztVeGg8bEFKJjpVWypmP29DfD1OdWcpQyUkQFdZZy9eVUwwISVURyp4cklJJk9UQGhYPS8+YjJAT0ZlWjJMdkd0eCMrMWs9dEYlOyZMQGpqXnJKb2FYXmErSXJJQ0I2OWp3UylSLnxNNHpwYyFQTjw9VFJKTFJCLyM3IjI6QHhWdi5+fXo5PlRnYEQwRSwmfnpyVUQycHxbLjcmVDl1NCVK'@; put 'SD9nY1RZS3Q+dDMjLHIrOkVuOlh2e01meCUyOyI6cylJT2c7VC5sKjZIblRXdGsyeTxGemNnUlMwXSNGY2BMQipyR3hAZzNXU2h0e2pRWzZAV3c9P2h0YTd8OjU0SDU5YkldZGwmKitOZGN1ZnM9eC81UXVvbHc6TEwybm5fV3NraFleckxoeW1yX3IuTSRvOipjMHglMj1ufUxaakdnOE5PbVhP'@; put 'UC9uV01ROUk3Yyl9U1dROy4kRCx4dTBhLmQyO2pHQHpaNmpGaWlVW09LT0ZRVmdiPDFlS2VbSn4/b0ZydUAjbnlzMGE+N0w0WXNIWnMuWm9UeS9OPHAxdjEsPj04IT1UITtPSmNba3dKNHhSQzBgOnJDW28pY2dLYm9zQzlraU9PYkRaNzJMWDZJVVsiMSx7aSUxQkVMfj9TS0FGJC4vS2QzUFM7'@; put 'aV9yJmU7LER2c0UoWTdSY1RHYmRPNlIjL05sUGs0bXwxImN0YF8rMWhvbCVXek5ZXXVuQVVfT0F5anp3L3ZCfiRBKUtSQFY/JVtbV1IwSSpqS19jMXA2YiQpciUyRk1fbTdUVUlzUTJtcC9CPH1nYHh7fGpiUEk8WWxCWVpJak5hZkYoa2NXPWNCfl8+fEAzZip0WGB1LyxvRStqeD8xZmZRJi5q'@; put 'OGVrbWVQSGt4JVNLKSw2bnVDLyYrNCVSQHxeVnIvKXxwYEQsQyY1TVJLc2w+NGRXcDNjXjBgdE4sd1cjQipKLHQ6UzhmPTQ7dm06N0FTczJRO3M+eWMhZDllSHFGWnY0LF80Zyw9bn5XNWhDL0VLVDdKPTI9SEFLa34/Sn56cnJ5KV5EQyN9M2BJdHBqdHhXLmhwTEQpajpEQWBGcDFVLj1yeCpF'@; put 'QnolNjQ3dERbUkAhdjxjYUM2dkxrYFtZVnNTe1NuSXVKMzIyZ1I9cTI+PVA7ZjpUN3ZQc1Z1fT8uQX5WV0RYLitvSSNAMGchZX0welZmUCldKVQ9Nm19djo6TnNoe11nOEI+Y2hlNzJkLylecUF9S25eNSZzTkE/NVlCK1YzdTNxXTI7YCtkNjlAfCgsVGIuL3JANC8qZ2M2N2QyUkB1VXQ8bzw5'@; put 'XiVaTGtSOV91TUFBMVtLfH5mP1lqcVBXOG84dSYxaFtybyo2U2tBeVlbLFAoWX14NF4sYnhMdmBmM2BoP0E6WVBENDVnVUkhSmFLakJdXzl5eiZocTwqY3RUYUVAcHRPcituUVc7O2lIWzxHOkZPdlNkP2t9YVt9RCV4MXA1RVNtTHNYRmMoWygvcV0uVVYyYjpxXzZPZlUmWzhncGt9e2Vhaipo'@; put 'PklxLCZKcX53QXFZJSI9XztiKzxASW5FaGhRJj80RCFjdTFwWl5hJFtuYmVHInV5XzIhdXRkLyVSPEBRQn46PEN5OU9FL0Q0VS9wJXluRGgoMVR6KmlyZ1pkezooTnohfHBGZzNlamo+WWppMjUxW3NXOj1yfio1Rio4OHwsdXZ+ZntbXi5MQXwzRHFeVHl+YGZTZ2BZMDllQylJOGZoclZbXmde'@; put 'TXZCazxISjVJdDRJMkcqPWhtK0AvT0BpY3FbQmciUEojO0V3QC5wN0xCZzAxMyR8WXcjIX0/fkY7WkR4ZDBqUCF2dV86UmdDP3l8fnwyK1FrbGQ9WmFgNHhQUl59cXBrfnEzYXUmNG0zKm5vPk1zPihuc1ZeJVBEWGV7diFMeV1PRHVwUHA4ZXVsVm5jMXk8SlEhWXUjdDphLnBOfCRWWWh4cytz'@; put 'c3B3VlJaIWQwO3BJcGMhU1V6VDk7djMlQFEzZTlOJDgzM2E5bzBtZjA8VUtEVkU7OUE7LnJefWRMRXkxQzspYzN+M1BeSkM5LkZ2alJSQHBIcEp9IVA5PzJoajRSdHljfWBdKl5iN2habChpLFhvMnwwM3F3UitDNi9fcW0rSU9edyEvfHguRWp8cVFFQ0BYcSw2X0thJklefmFuREB7OTJ3QEFr'@; put 'MHZQSm9dJDJGYmNgO057WlNnMV8qPywmW10zRElOcXVlYyhAIjFLMWomYHQocl0hKFY2cU90L0Z8MXh9LlVmanIpTnosczd5KjgvKVJmcW9mW3U8ejt8Uy42fSlZbiFMR1ltc1tGRTpEUUNaVGlzdU5+OnVwQCpYImtvYU5NKWlkYmw9cnNXVThaZEQyamxQOGduW1hTWXVSXS5qMEp1I0NpbS5X'@; put 'VWh2Ynd3d2ZbOXVlayRqN29MdzBVYkw+R1g2W0x0bHtNVlBXbkw1TFJDMyQ8QiM7enE2fjZQNklfKC4mTzhdV01gci5gfUtZWnRibWwydSp4e3Z0T2A5dU9He2gobjx1b2Yzfmg5S09xRkRJSFJYXmVqTi9eJVg9PG5pTSMrLyx0Qk5UREF1KGs5ZkdvVk02I2lOQj59NHRyd3F1a21zUkYoIi5P'@; put 'UnRPQyFvbUJZcjhkNEdeOVBEcmRAY1hEfDAhJnxLSylXZFsqaisoTl93VlJwTDhXPTVCKltpUERtYC5CZEo5V0chTT12QislcWs4ZEN7YXgvTl85OG9kbDF4fD4uVHdUbVlHIUxnKjcyUnJIMSJOL31BIlclVjVjdUpQblRhI0Y/UFMzV1I0KWBDcyIhRk5WYkBeUT4oRFNzP1gpaStXUGFxLnJb'@; put 'KnFuQmJJWU5KTlZfYCRTZ1shbTx4NCMpRncxPFImWztLOkJXaCI9IkwrWjlvSVdUYDFiVDRwcyROYFtiXjhvPEtwMHJCXSVYQFs3V0syeTdEVm5jKnRxcmVtWjB8UFhde3htYiVJV2NJNkldeX4mXVtiMkFabUxAM3RBO2BJfFh0VGc2JnBjQnslPlQrM2NpYVBuL1lJc1tgTWR4PVZBcEIuLj9j'@; put 'VCF+NiprW3l3RiNKbWlIUmxlY04jMyh7ODNwOF96ZXIrRCIuLEVvPzJdLiMjPCVnQ19kO0AsLEhuRFk6R2lzRDxjcENbaDsqdjtCKnk9c017WFRJKGZURiVkey9NYnUvdipvR2tbXStWRDVkWSlhSXB9MXNJZGtePSZlRWMzIXwmenJSMkVTdz5HJX5lSWJPYHZYJWFnPE47YFI+JWJBRztpS1BK'@; put 'd1RFNUw3Umk3WUB0X3k9ZkBVS25rIlQ5e3UhT01mQiE4Q3pneWY5Njd5O0FENVRaYVVUR1BueGFrMDxKenpiRWRXVWcwblsiVz0xS3RNQGpwLCNoQi5hWWY4anR3b2p+TWlmWDVfMHQydj9RdzFmLCM0QHNuUSNgejUoeVNmSmBkKXx5cj5VP0s/OzNTdlJSLiIxYEZbMip0ZT5dK0RPODIpbDpb'@; put 'VFNAYD1nXi5hYiwrZm5OLCtYUj9yfDhFVHlOLmtgZUpbZzhkKXU7Uj43XndPMz4wRTJCa1EzbW88eHRbKD4wfEBzN09KbzR8I3c0LDhjdVpSNWFZQXpxd1BGTlFpOFY2M1ZlTU53d01UOVlEZThgfWY4SGcxO3QvYyx+dCFLU0NtQmB8ITMxb2NRZDIxVmViXjk2cDB3RTlnbV5bSndnLit3ZS55'@; put 'V19xZzBLLig2OTEzZmRMNFVfWG9OIXV+LEJYX3czUzZ8MkVHfjhoIz50JXZJXnJ6bmd7V3d5U3QpcTBTO3wwVDBYYEYuWj5CW01rX1Z8L2hmJHxDXU4kNTVtOjdlOmxnQEMsfjYvITBaNVtPS1UxeE07YGQ5NW87UndTSDN4SWl6RF4sNSgqKXYiUT9vJV11UkBgME5HUlNQLClYKjxIR1JhSDA8'@; put 'TFZLcCR1OTgrd1dVPWxgOzJjRTJkWn0oTmRTSzxsPi94ZFBjPzpSLmFsaytvMWlEOV1tXVd1Ok9ubStARjY2YiVXTE4iMmRFKVB+T0F3MDcwTWhmfTp0PTdZZU1+dlYxdXUrKTJBUD97KWtEVXAlYC55LyxRW11OK3lQbm1vMSF+NFE2VHJYc15jJDVUOnczY3dxZkN5WTtmaz9wUUh6S3s0e2M8'@; put 'eWFhOXRLQn13LDo1PEd0QGA5OF5eb2IqW2dtUHt9WzUvUmY8Lz90WX0+fFlZeTUmRWhkMSZGKV9dTUAhNVhrNzNqVUNLJEYrVGAqJm4kPS4jQjtyXSQpfERUQj8mMnpxdnM/R0hYSiF1VHJ9MUQmLyFWJmshcE13S2ZPQSE8VXx3R0pMJHJnaFVSSW4yI0R0I0VmTzZ7LndmYWV0LGxtSnhlbGhV'@; put 'UklVZmVsfFNnemQ3PDtoWmcwanAoIU5mVVh9MFQwImdoZEFyTjVIWDw5VFsxZXFgJUJxfShlRjxCPkwvRXFran10PERsN3JIMmIpalgmXng4c2MmdnQ6ZS4sQX5KTiQhQl4oRiw7QTVueHM7OC5SWj86V0NBQUFBcDEuQipoW3RNdmhHUE98aF5MMiVdZzFXQkFuVUI4RFQyaiFTKXkyWG0rJElB'@; put 'R1FBQUFVRWRaREFwMUhtPG9EPVc5SThEdCsvUSEwSlljIixtKFRZfH5ZcnYxPy4iSGtZSnkyWGk8fDNAKFR4VTAiVnEjOitgc0hPYitSVUIlUiw5LiRZQ3szdXpTNih9eDFRMzsjfEtdTDp5LH1ZMVk+flo2ZmwyRD1LNWp5eCVSI0dBJTVkQXdMRUBgbkVaMEtEVkNufG0+ZiRvX2k9NDVnYHVg'@; put 'JWpwPzo2Yz1ubT92Ikw/RChEanI7fDslYHxnNyp7IWp8a3NCJm9OeSFQRFhJcGRGQi99NlM2P0wvSV5CImQzOSxeVj1TNiJReWI3YGp9bWBoKXlzcGd4OEFjRWw+R1l0bGFSJmElaW51eHlnbGZzanV9bXomZk9PeypYPE5tJSRrLG9DMVZaekE1ZDpzeUsiQmJAOHxgfFg9NDdhPmt1eS43I0ox'@; put 'W00/RX5AV3J7Z29KPml+bnltUDk6JDxMakd8IX1IbjFTXWpZNDx2MFpwaiksTH5dKHtadVdZXURvVTUxQyJuR2s+OTRxZSRpciE7bVtxVWQrQnt0PSw8dzFXQHxYY31bTkgjdzZxUmY0PTJ6TVFvdUAsTFhuVFB8XldeQG5hMDd8WS5fOyUoLF41UkUwOk1XRU5NNGt8RT5wei4pez9GOGdZanVp'@; put 'bWdDPn5EJXomYjlsbnFHdlYuZD4rREBKY3kyKzA4UkF0L28sO2RmNEIsMSwuez91KlFCPyk4bDw5e1kvMVE4VUhuPygjeiVNMTZhRE1Jd0k1IltnX2MiX3pmN10zY1hANzRAUGVPTXQqWWBWfkBqbDBQayVSSngmaVhWa2UmamA5YnNIQFo9WmtbYzY8ajl8U3RGcCQ7TGBJXXxSSmZlWmJYKWtB'@; put 'Ryx6V1hbRFdSUnA4fVQzNClAYml3bGYkb3Q0Oy58PEZIbi5xaE5+TnREcDxgUntKKzphLyNGIWhzYTRgKnx2akc5bEEvfGVGVUM1YVJhKmJxWT9WaTwvcD4jeEIkelYkaT8+aDxHMzVQS35sSGteTH42JUUvIiVNZUN6Q04rd2BmPEE5XUsxO05yKjpEenpuc3gvTDZPRVg5MzdbPUs1bTt2XWQ5'@; put 'ZmxIT25SbjIpaWtsV246bjNQa2JmInZVKH0uc0d5JSEqQCR5L3dvdlpicDkiOHx0KlcmKnZlczMwN2VEM0EsPk1YQnllUlJ5SEdEM15LLFM0L2hseGNkaTBLRW8mYl4kJW5dQHBNOixaYitXIk1OZVBeKUBNJHFbQm8/eT9uOE5DWTFoKTZlJTwiRz9LXlU6X0trdHBzP0RNeXYsYEIvJHI8TXQ3'@; put 'Tkswe2lKW1h0NE5PYmFxflRnSEtQQEFfN3BOdXclOWN1WnIudEhTKkp4WyVMOEZvcWR7RHJYPW5IL0tZSVtxUz5qeyhKQGlbbClXcmpsMDtING9ZVHsrfGNFSEszXnl+PiJxYzx+cXBRIyQoW3dXX249OltfJUBDZ2Vbb3JMTj04U1FTe0Jwam5GUnNlcWBOfG9pfS9LS3N5K0xCITI/L0RZIV1D'@; put 'KGE7XzloJX4+PWRPVU5hWXRXa2ldW0k7NHgsWX1Pd3x9M3BGZHFXSElRVCwkWkw1a2JhVGRmayhmPSJzZileaUN1InRxLDo2PSpUb15aOm1MSEN9Z2o1a0wmenJ0aUNkI0VdNnxYJj5LS29zK20qRzpUXypPK251PGpuTVZmZCl8Iyg2YlA2N09oNX5dfFsucEl6NU5Jdi5bKUNUQytOSCYhIioj'@; put 'Vys0aXFGJFZJXWlUYEVzcCRbKnokUzY2dVBKMmI4UD4vVFRnSGUvIitjJWBJMW5sQmhUN196NVAiTG49KkRZW1NocSt3LnYhW3NGK0x4R3NpSkpkKCR4d0pjfCZ1ZWhiXnhqRztbTVI8aU9sa11paVlEIW9XVUdIVj4mVT91fEN8eDxoZUBwNFUjTUFPOCVMTmQqeytGOnQ8KHpWMCkkbyVLTSVM'@; put 'K0xQTHdYJUd7VSVEZjJmelgzYG51LEFJTG4uKnZmT3A2TXNMTUhHVl15U0lCQSgqbiFabWtlbC5fZ14zTERibU1vYCNdWjIsZDh8Klg5PUxXMW8uXVVyNHljK1UyeXR7QkJMNXVMXl5lcG5jT0Vrd3FkJFV1emwick8+eFUoT0giWWdPQ2Iqa3J9c01xSmw1YTRPSj02RX1SRzYqWjUvIShnI21e'@; put 'LD42bUtUakY8TnA2YlY3RzJoXm4xc281WVtRSUZ7TFsuPyNbXSI6IV41NC53ZzJBfihAd2o5UEpSTjdrS09yPSN4VUhnLnR0bzVic2tXR1hYZ3JZOn4pYyEuTmQwWHJkJEJfRD1GX0U+akQ+I0ZfJW08cU9DYDcqQDlgMk9XOVBnTkV8Q1Z3OnJqX2BVYzgvfWBQJH5ePW9PLD44WTQlay4iVyov'@; put 'V2JaVCwvM11fL3NGVCQrQ2l5L3hyUTI1XTt+aXBqOUhnV0YxViU0Um56VVVIPE1AREc6fl5XWXoqUTYvJDBkcilkMip6Rkp9e0o6QyYkPkVhdzVaQWZzQytodzpnYXhxfFFoPC5dJDZFUEF6NlFVczJyeThJZDVAMno4c3NGeFkka09rVHVWUDo0TThVRTY8JHVRJSpWKyt0K35ZemxJZ3pfJnBP'@; put 'QjtMZl4zY3IxTyMiYTN5fjpJUlpbQWdLZlBGMGVQaVFsYms9cXt7OkxFTS41NHJLfGkpVSFdOHxHSTA+IT9MbDI6e3NfJX02OnZJcGhMeEBeKyY6bHV8RzZEK3RIcj9gKU1IbWlFIVszZVt9SW11e0Z9WWQmIXJSTnt9PktpQGRVKH0rRUVPQUhnYWlUWkZ9LmAxRVFKMFkweFRdX3hbRXsrRSts'@; put 'P3xmZWVheTF8JVpjWmR5OG12cih3SypxfUh3ZXIqcnlTJClMMnx8cHlRKVRXTzNueHAic1l4aTNLU3ZMZ2s4TipqbFVYP194eGFBaTowOFJQPUgjR0xSOEhiKnU8TmFxKngpW05CMUw9Kjw6QTM5ZloxQUZgRFRnWHZ+MWZmUllFJCVdP0UjdSI6b1kwOGYoaUNULmlHN1V3Ul1AVnc7KnlHblZ6'@; put 'RWciX3hkWnowN09TP1R6X2lqdjxGcSFbbGJAaXVvQiEiYDFxSXRUfUVZc2pAZjVWYGt1MiRMPzk8Y3R+cmltNVcxVHlCISFOZD43S241dGhgYDd5WyRCXU5wbzlwW0dufTNbPCJmc2VkIWU0cyIyO305Unx1Jkw0al0lTUxzLDZpRklicF9KUlAkSyNgX1s9XVAkRV9NNVdHd2A3a09OZDR9Jl5i'@; put 'fCVhMEMzYE5NNnpJVCYraD4zciwiLmI5IlMwWFMpVmJAMSo6W0RgV0hyVXJQR3dYTmw/ZUFOJUJvVCpZbDUsVVIxMDZjbDIqen0uenBTRjozcFF5Rj59PiZCQm1fQkI2YVNFRSJ8I2EsYiJiMz5QL08wKkw3InVDLzIvTSkrX15oNDRrflBIXUVXKVd2YH1QemUsMCJEQkcvaEFsYkAyVHNVXXt4'@; put 'U09eazFkQ0psTD1QW0B4S2dWUV8hdDZqeig1PnsmUzBwWl1gZTBjR3QhUEI0TVMieVIub2gscXh3S1E7XX00OXw5N3hTNVUrTXxXX2hCRGdSSXl1dDFKVXt5RzhrTHoyWTNQNz9RSENHWFNtQ0M8cVg8KzQ8dHIrTVRUISxTIUJHWUI8UkBEPmooUntFN1VRSl1vbzVWPXMhJTo4Jk1LZU98WE19'@; put 'cDA9WEdTLCNibGVxRDoiQ14zfkBOeUxWVmgzJFpXa10jdlhpNW8iaExbK2BRP016U2pGaT9HPCl+dyUlJmNgI0FlYDRUQEkhWW1kJSZTMnkiREZlUzlrSTM+UERQVk4wVjluIVtvdUJmcHBLbXJuemI0QURBWis1fmVPTHQxUDo+STJBS0dUTVEkTyJoV0syLndfNnhlTDpxRFBCdmA6MHVybGQ+'@; put 'YFgxUS5Udl4sdHpqLnliOFlNOWZZTVJTP24/a1FjOCYsTTQud3tmLyEzL2s/NygsaUFGe3hvfmZRO3V5aSR2PnY8d0haQGxJIl93PDtrXUZdYDFyfnJrMzZHblNrTWpvfTZDVDhsYltJWm0wNmV4NlhEY2lWZWI8PV5kSFhSXTlsJj1yYG0jaD1oJWdsJjBVOi9GfUZUKTcuKkVtUWxoYzA6U2Ar'@; put 'MHVCfl5ic183YzlPWj4yWV19Kl9Bc2U6YG16ZHcxSHtgQjxjeThOZz1kZGZOU29uMWI/ZEZkTV9PaW9gX0VbW3pFJnVnNkYsVVgzSiw1d2hfK1s6ZjQySz5HS3IhcDlDeT9fSEJOQClVImw4dFRfTVNxJlM4VkJNczErQz83UVtZamxrTyEuSkNTby5ZdWEjLEJSR2ZwVjBDRFN2NnE6RGxofDNH'@; put 'Tzg0MnswZlQhLlZqZ01lTXI3JlVqNnQ2ZHUjOXlpPjxPQCl5fUxgIno2LE5ULyRVP2U8U145KmcoMGZxQUlMcGp6M3R7Y3IuWUp+K1ooQ1R9YEI9MntKMGkke112aG14QC4rTGNTUk5HPDFmaE18JTQoMnEmbTA4NWp1KU4rTylFMFpTSCwmTyp5c3Y5X11YLEtsW1ZkV3lVR0dPWCQ8bSFxSCZ8'@; put 'QC93S3dsQjcueFJmOUA+ZzcoOWUoTHhLZj9VfnUsOSghIldWYisyWkh2SVdiTzJDW2pBPyFWPlJuUi41QDwxYk0/RHdYZykmP05vUU9TTFgjYSNCPm1lVHdiJUpdK0tIXXBEUTdCU24sbW9jNF4uMlQsO017L3Qsdl8iNnQ8Z35DZz5dMGB7emJlImw3Pl9EL0gvKmNOOHAjejouPDRabWw+Ni9v'@; put 'aWJdSERoKjtiI2F5VEM0NXd1a2RZYn1NTWlDPHVhSnQ6RzBLXzJLJTVYbXRPP0IvY2NIJjdWSlRZfU5AfmhdN1d4PjEocXR5RzFMcWJ3QldhcHBqZ2MlX0cuNE9lUEVJbihaRUszfUh+TnJkMlByPmYrI3c3V0U7Zn0sSHwlbGVlcFltejZdQF5rTGlgKjJ7JCgkUDcvTzQocXh7WHYyTDFSeE1v'@; put 'NypLRiE+b0hwZlN7ZTZBKlgobUxxU0hJPmkoR0Jbez9samUqK0NeUFtDKVtRViEqRURZUTgvSj05cXVzVTRPI3BZWUBxVnlddkhyIV92P3pxRnUydHh5PC53M0UvZ2JENTJVOUYwfXlkKEJSbWpIO2tVajokOkF3N1EwWjFWNVpDPzBmPWI3V1clWGIubGV1NktKdEVpVj1ZeCx5OEt9XW9qRixn'@; put 'SF9+SkZIVU9xX0lsNEY8Z0lSRE9sWDMyN3pKUGhUZENXZ2V9d1JRK2tIdGwwezh8dyIjKEl8MDdSTDkqKCt4T241SFFjO0xucyFEeGlkTGFSd2tuTDk2JnhgdE1IO187UHN6S3JvanksfE52ZlgyZ1MqMzgybSNGZWh3bm4/fE1yPEAqa1ZlektzYkhNdkNOcTsoKEU0NSs3flYrYW8yPG9FMTg7'@; put 'RWF9Oj9PbXlfdV54a0l1fkV+cSlGKCopWEt3NF19RjpsO1pKaSlENnlTb3pKMkt8ZS4sMTovOGE4MTZmIWxIPzBNQH42ZVJvdEQiaHdLUE8sIWheZ0lPM08+JmdTLjNPflEme2B3QGRsNHBhW2M8aj9PaGpzNTdGWXQ9UDhHMl52QkB2QEFna31YeERKNkx9NmchI1J9bEkzc31sNC5Ddi4iS35R'@; put 'cXpQZU9iUH4kWV0/cCtJWkJ+PzRPbjp2K3hKayw7eDUlc3E6XjVRLzREZl5gUHRtbFssWyw/bm42dEZQdkU9YWJuXUpEP3RjTDhXanNidH4kSG49c092RTk2XX58TT1HPXV4MlpKdU93L0hRKkRob1s1cGEveVpOSVgkdXA5bmZ7OjxxQ1RQcUZLW3x4Q01sT0RGUUtieXtmaGcieXlkQSVBTWM6'@; put 'ZVFFdHM1Tk9yR1VVKVU8dy9Pe01mZ0wlb04sYGhCaDpPTX5FTkVSJVZXVV8uWVs9PDU6LkV7dnFvLzpQSEtbezJqWnNze103Yzp1MlMmVE9nQk9DOFteWnAsS0Q3VnYpKH0sbyF2UjEkfTF0IkFJflB1dVUsL0xyTUtSUE1EdlhocDBhZlRUWSZodmJVcmxdMVBDdUB5P0B2I3ZrYWB6RFdFKH5I'@; put 'PDpgb1NZWVIhfSZhSnRyX3ZieH5SQ0dxQyNpcCo8KW5gRTxFSE8uYm1GcnFxdzZnOWAvLnJDMU91YlcwPjxVXlBoWVpQKnVBMHdXa1lofDF7aEZ4TDtTdlZPd0wxO19HaThrVndzcGNhTlBTJW1Qe3ppZH07OEpRIX5Mez41ZSZ3cT1jan0+WnJKJmA4bXFtfDZtRHlXJXpjVnRWUlQlXk9TRDxF'@; put 'KGJDRVQ3bTskZEJjWTltVGwlUDNFSmR+Rk5+ekVJL35bJE90ZVs0djBIUE48Nk8hXTFscUkia09SdklWKD0pVC5FWDBbfD9gQVJaL3VbNGtgP0wyWkxoZyZROXApa2IhSExsNChHTC5DeHhZIm0jWkBDTH02Ri8+bGNJazZYPzZifjRSfEFVZEpyUl5aWT1FXVNATEFLWzY3JlQ8Ll9wJGcofEom'@; put 'R3FsRXljUnM2O2wlMkY6NmpULlhzME4/PDM3ISg0bjdaWHteS0pCJDxaVF94RDolOiUyIUR4a0NhImdRImFwIXVkQix+I1shYV91THY3SGFwSntrbmVyV0tdfj5MaD8kX29MPFsmdnkxUjI7bENYSFpYI3dSL2h+Nm9pT1JeVEp0ZD9ddUxwXTA3I1FIMlklSUI5L3ZjdVp9WVFdRyVkZUhYLDMq'@; put 'ZHY7dFkhNGo1ZCZuS0BEJClNe3JHY1I6ailnI014PWBoLGZxP0FQVFk6VCojWmNYSFBySXhFVUxPaC5dX15fK1d5UU5jNCMyd3dabz1LUVIwJX5pKCh4M0JwOzo1TENLNWYwPmhCdzpCOV8xWGBQYltafHhfKH5YTFFEaW5SOVlbSiQ+Jm1dQGNUYXBMY2tWVD5TZXluNENJWCVGJDIkTXdNQTks'@; put 'U3NlSFpxJV9pOk5zVjlPJHxfY15xejdiWF9OTS5TUSpmIzJYNV9IJm9WSzAyLElWUi9fWmZFaVJ8VTpzOUhNbzBwJVMxYEJTam96PkB2ZkV9U1N8ZX59b0I9Sn1LenwuOy9VZitoOl1+JihZVlRhVHVbLHwlS2ZkVXIyIn5lKiU/JkloUkI4WGxwPyxPPTZLZSkoPiEpKjtoZWZ6cipiYDxARTAv'@; put 'QyhWMjpWbjdOX1JMWTt+bjRmNmcofSpLIzdydH5pY0dmUVBySGg1OVZRS09kJVZoWTtCTjQmbTVdJERsbldAYW9SbXg6VGVhR0tkL1hgcU9AUF56eH1SYWNjVG9wcipZUXp4Ljx1dCsySmRuPmxmIXlubzVBYjA2PmZENX5RSVlhVS9EUzpCYjZ2T09CRUF6WjVDdnNsVSgwTW4pai9Gcn40XXk3'@; put 'T2hMTFptbiZBYTVnRHBfUHs3MjRANTVfZ0dJJGU9ZixtMltqWWIpaWIpI1gwaF5fUzswKHciWWZbdCh6aU0vTjBKKTZKeFZYYTN5JX5SP1B4YkFUIS5kZmt6PGRmMm51ZH5FfCxHdGJqRmY4P2c0XWlkSlpvZG5naCp3TDsoJFhQIzQweV1eZkY6ez0kaiQvUFhIPl02dWtsZGtib1c1UEBROTU/'@; put 'U30qenxqfStNYnFEYUJ4IzQkYyRKNHpfd1t4Wk5PMXtZUSNSRW9XaFQrTip8RTFMYkg7fmEyRDFjU00rV25QZkQmfmtWb0k3JT9obFU/ZWddejNXOWU+SUgkZ2JOYk87eSROXTNPTC8zaVFZfU13ZUl7bklbUS4mJSs/e1hdQVRVbTxHJiQrUmB2cnJMfWFGW2YudGZJQWA1RyI3ZjZCPU5xJCs5'@; put 'ekQ2dHEiU2FQU1VTT0hGMDVUaiZgVVpMMnYoWjlKWEA+VlU/ZXlVYT5sMGxHMD16ei93RFY6P1R0VyFbX3owcF4wfjRrZjNUNDJfalUmd3w7Xj9iTF12WzBdKU5SflEveC54VHtwMVoiUz5tIVtbZnB+anNOLmdDYnNvUWxrLHh4SShgN2l8RmshRiRgZVVXIUsxPihhQCwlem5BL0p5ODQrcEF8'@; put 'WENwYD4zRUhbYzl5bSM4Q3FRT05pPUh+RCxHYnV6alNocG5wKVlIYUEzKyVkOjxEWWNLYG9CemA8aCQpaF53OTIvNTh5ZCNiMns2M2daQUxwdkQrSDV2NF1JZGc0a1tSTCNXaDY4U2pUZiJOQmlCOGNUZURhOFlZR1JffHpWeChlNFBPX2FDd2VycmokcyV4QiQoVzIoKSYrUCxfZXl3a0hlSjZW'@; put 'cEBedE04PVV7b2RBTiQ+OElAX3MrKWghRFpJSmY0WHx6T3hiIzslcV19WiRTbkIsdHlFY1tmPU1oampDXSR0dWVeXXNZO106JDYoPn1hI3tDfj9+YE9nMGF1TGJ0KilLL0xvPSNGYndDdmkzMX1OUj5tVzxzP0NiKS50QFtffC5xI35MJHlLczUuYjdhRl8sUGUjb2YxUmhvUUZldkc4L15WYVE+'@; put 'aD5aKmRCMiRBfGdKX19afjlmIjdaMEVyQ01dKXt7SF5VeW9ULHUzT3A2Pl5xYWI6O2lUNVdSakBNKixDRTZNKmswaW5IM2FCdiJwKDNSUlp5ZXEuKVNFM1p8N302Pkc8ZVk5WkUvUDVJSWk6MmYsWCI0d09GLktGT0xvfkZGayMobG15LC9LQyh7d3V6UyU5el1yT0szJSxKNGo/RUxranlDdEpJ'@; put 'QyZyQXdmemRkU11gKDl8RH15aiR9aXk8T14kNkZgbyJePTRKd1hhLjh5bWNjeGlyXzN0Six6K1hhY2FRa21KLEgrZSlyfHRkU3ZGLm1rTGxwQkpObj4xUXpAJCEhVExPdV91KWJIfVBnXmMmK25oIlJXUn1+PWhzNHN7bzglNmpYNmsmXlMjdl4/UGVbJl9CZS59K306QmgjPEBTSk1CNH0lXVFj'@; put 'KmBbVlF8Z3ZMRC4pY18yNCxPQls4WG9TTns3TkxpNVYmX2B4XVRYL3o5WjxQeXdGI1YlYV1aKlZrSVsucio2TFc8Nk5mPHpCWj45VFpOOEJmUHdWMnlzd2tNR2VQZ2VfTGtXSXopYk0sL2JjaFlXY2Z+QXx9KFN7PitSZFhwcmx1aFJjbTZ1XlYuUTBAPkgxKXNbVi9JfSt0fihTfnZXKmVfaW91'@; put 'djFyZmtjMWxiNVhfVXB0dW0hMEBMdXFPS0JlQyJSRzlqe3pOK1JQdEphfW80YVlzJVFhNHNrMjtsTCI3biNzWCYpeGpPS3lDUFFTQU80RysoYTVRR1hsW3QwaCMhQGt5KmBJYDdWNnkwVi89cXQrRCl+LiEyTyV7JWlOI14+UzZIem41fVFMN0VFRWZrZ0NIZiFHIlJAe20qdFBtcXBsb2JlKFc2'@; put 'Il98fXJkZitDLHBpdXVkPWpna0NsUm11VEdXZkwoPTxBfjZRUW9NTTxqWnBEUklyTGs0RnpkLEB5fG1nflZyOTNMTSJTXylmXld1Z0NvbEduRE4lST9daWhIIU8vJD5ZRztwM2BmQkttKSE1d2wqaWN0O0Mhel0qfSszfjBbRUcsVnpJV314ckRobCp2ZysiTjMmQDR1W1IyUy5RYG92YHl9U2Ei'@; put 'WSNCJn1LUTJGRWVBcF5vLyhzViN2USZZTyFfJTZIOEpeciJ8YCJQIl1yfHUzfiIxVmIjfSRLTFl6fHlgbVtTekE6M0Zsdl4zTi8weW9oVTlXPSRlWllKZ3wqJnFbfmI7PF1SaG8mYWxIWTVqa1dJfH5XTEFBP1orYWpXX21gajpsbDp4an0xfixYS2BIOFUsYl05Zis0Y3JIYEFEV1ohISRpZlpa'@; put 'YElrR3F9cks3U2FJJUc1eVh7fVtue1A2VDhOQ25mVzVBZWpOKioiTXY8JHRzXkozYlcxW1shcTh4SzRBPnFYWH51U2RHXzhbTDpKeUk0Snl6YXVaSzx0Mm86VH5pPVJpdHRqL2ZTXlNRYUJGdnNRN0IuOSFMMGY+Rk5uNSFMPmFxPzgyaSFzKTFCeFYvaj9IaXRTJWZzZ302OH47Wih0NUwrckll'@; put 'fU9fTz1SOEUiNnlvSEhLYiE5STVafHkyMEdTTSxRc2A/ck9IelZMPzVPJU4rZHw1UGcvQXV1SFh8MDQjJFE7dU4kVW9eSk0/MChJYDR8VmN5Xi9GSmo/NHEjP3o8fDJmPk8iYXQjPFFoVyloOWVRVHMjMG9sKT5YdHJ6flloYixFNGdNWmBTSDNFRCFhMkA5aCEqXSsjLzJlTntmOzwmQVprJWdt'@; put 'T1BUKCp8R0YqMz4lYi8sTnU4cW0iR35ZOUwjbjwwJHApciw9XVImUUomc1YySFpqP2YvOHk9aVg0Vyh4YV9dPldARF40W0QqeE5rcVtJZTJDOHZENWwue3FfeX1LXVklQUpaSWZfNC85JjY8aFpfVkkjOGZ1fDFYISFIVzZvUDx7N2p5dH55dGlBU0haJTAzSGdoSip9Q2xnPCJ6d21UUXtlVUdx'@; put 'bTxwXjVURilkK1JFOD1GZ3sxO31PYzRKPzRjNHhVMztdcTlCTjMpWDtSOT41Umc5ZClrZXl2IUdVJTlMI0FfdyVyJSVXKW1ialZnWy9WdyJJXTBYKHZAaltbYzpHXWI2P3wmNXI+Xl56JE4vW0BgRUxdQCZ3Z1RPSG19bC88TmZzNi5ONEcmejx+NmtjZzxPVzZLb0coUmRhVntoMlheTC5CUlN1'@; put 'di5QKF94JXY/b01SbzNpIzpUc0l+MGQ9dSxRYX1pVVMlWm9YSTBCRCZ6KztYMDs9LHN8Z2kpa3MweW9mNmlYWFtoKTNJYlZKZCM1TUFhcypyJjNLLHhudUQySVdLOmdmdW12SEtFekNVdDosc3ZYZHxiXT1EYi5kQjNxRSVFPDcwKUxQfm57NS91QnpSPFYsPGIveEYwJkpPd0FqXnxTVCxvL2dx'@; put 'LnB7OXdsdk8wXTVwZXx1Q1J3NV8uTHE8bUNQVGpYbDxPQnxGWnE0UTAyUUJdaW53KndVYnRDNlEvZGUqXyR0ViJ8ZkB1S2gyS3JxcS9PPSheW3NnbVZIemE4PmBbKkhjcGxRNWZ6OXFQJllHfX19RXRDYWlmPElxQH1GeV8qK2tsaHk6fil0TmlnfDRRNUhBZmhSbyhANCtXTGtUZigoOWlnWTBZ'@; put 'SzYuWX03UXZhXXckaCEwaDlkQW5vVkJtN1Y0WT48TDVAP18jLG5hYDNRMChJekIrbD8iUC9ZaG8lZlpQSDhYZDNpZTFwSH19QStwJDVWM354KDROZ1tBUEdYQzZFdlFbW1diNDZZV1VzJkUsW1VlR1BPOGAyaVRYWmhaQXZ7LF5HLz82eSFfNW89I09RUSpaYzUjSWRaLiV0M3N+d3I3VX41cV9V'@; put 'MTxtUU8jPCVMfV1xSTJbTEUrQGRBeUUze3klaGtjfTVzUnRsNHRdVjg6S3pdT3ZDSDBUWUVXbV1yLzBfNFchPipsZUtuISlHQz9DPDBFfikuY3pJK3lIKXBPIVsqe3YhPjllYFB0K3VgOTMid0A4cClsNVtfSCQ+WWt3a1pgaSQxOD1Aa3MjQE9Db1kuQEY2QT07aztaPl40UihKbjpgPyM2N1Mz'@; put 'KldLbmN2L0dzdktQK0Z+e0NAWUpyayw8eHYoVGdnQjpUcjFgZi8vYzkuPm9MWT1eVVArT0RSfHBWcGkkXTZ0M3lATlhzMy9UPjpafmEsPEc0b0BublY1XVcral8zcEVTYzdCU1IzRUMxX2xWI09DKCJpbTF9PihXYUJhOStRSVdNJFp+SCRFPmdWdC9RK0J7eCgrfShTdnFiaHd9YTQhYlMzbFZF'@; put 'SCNbfWY+UW5OU0t0QyhhJm0kPnNaeDkuekN+cilVbUtYWTdqfGM3Pl1eXiV1JENPY2dOSlJwOF8qQGBSVFpAL1VIZGR3VWs4aEh+O2NsUiZyJHc8T0VfTiFbKC9QNSk6WmdGVGA7PWtsVEVZdXwrTSNsKHlde2ltIyRjd1lBfSZuWmw+UixCJWYjTml7JXpWbG9DaDMzSDhKYkgmRyZvcEN+ZGls'@; put 'WEYjM2c5KVdhUEolNGlLU2NyT2tveSQkbG5nNlc9KjImaDFeVU9wand6dVskNT5Gd2tGe3wjXUUpI1srUUB3elRkfW9aYmI8bl5fZU1rcEI0MmtZMGtpYz5QIkshbnguakA1bC5TeVIpcDMkI2J3Ryo3ZiFDQDxlY35hRD9OOXp7QHk9cHh9d0Y+bX48YDVwW0l7YnFnR2kjSFBNSXdBZnRUMERf'@; put 'Q1JOd2gyeTpsM0cpXn0qS3t3SzdOVWpvZG1aVDc3SEthQngoaiJARE80L246PnomTVBpPjRbV1Y6Rjtdb2BGJWlaV1gmQ1M2anNVdEA9cS9XQjVzQjokckB1JUFrQEhVPTpMTiFiRntaW0Qkal1iaTVteVN7LGdSIzxjayRWTm9sdy8yVTxGW2guOzA9SHApRGRdJi55dFJvSXdDfSNtW3BHPClA'@; put 'YmttciJAbjdoViE4OGhIP3sqQHYzKTVMcFB2K25+PH11TzR5RVdVO1NHKWpSajx+PGl1TjtwPHxzL2lJISEoPzpwW1ZvPGxgemhJdHIhdTdOeSxmVktTeVNhcDEjJmwhez5Ldjp3aEowO0wuQFo0RixPbW0hJSpRZjtyVXJKRkxdfUZKYVFaNiZsOkV4ZktPNy9ET09uUD8iUGx5UUZVfEZsaEgv'@; put 'K29+b1Q8LlM0Sn09d3BDamZePzAjYCZKTU1ySTMuemFlNDtMRiVRSVopYEkwMXR5I0lqYmBVUVdLSSxBSz0pY3FacGElaDw6XnBfOCVVUVc6SHJJaDp3UH5WR1lLWXAvNUc8UVsjQzA5aFB6Wl59P3tSKntfMmU/ZT02a3Y9diZGNko7cyxvS0wjZCROYjx0fFkibVNZU1UzfnpJUX51PSFXZW87'@; put 'ImV9JHAoT2kwVXIvU0pjMDh4TyRBZCprQndTKlNhJGhdOTVjZlJ0TGR3LnYrT3YhS2g5bTRJTD0ibmlHYjVEajhMbXshaHFkYzg5PEdwX3psfkYpakJxS35JQldVbkJ+dyZhcyE4NUkpd2VYYjBnXyNfWStQLjUpLG8wV2k2bDssSSFDVl5JZyxJTVE0KDFTUDFROmJuQ0J7ZGVYLlBIMHdvIUZr'@; put 'TktQSm04OyVSRW5OZFVgNyZWcjMjKztZNnBfZDhGU2hiYSgkSTIpfSMheiZhIm0kJGpKXyZidDRFJGxmI1t3MlckVXVoQCVZLDx0Uzc1Z04ofSYjUEpXXk9BUjpiMmxrRkpPeGE2WENbSGw/bj5sQCI4PTU3RkVOK2E6RXk9fEVwImxtP1A3azFWY0ZHPUQ2Rj0/fVU/aVJBUEtTWkYzVkIje35w'@; put 'eV9kNU0/TDF7ZmxlTlIqKnFlXV9bak14cT49e1VMNTJgQClsYU1jdGhgbHRbP2BEN0NxTHhQM0okdyExQS4qVDhWXXA2SixXJDo8UDFzc0BoYXgzSH5gJTd1dipRWFVAXkNGbXhEZk8iUCJ3PlFoJUw0QkZWWGldK1FeSElnei4jQCpnOVh3UGBsSTQvWUBCMnJ9UTpRZEM0OyQkIipua1lFZUVa'@; put 'Oz8hJS9pLCx+e0NKLjZHRDQ6REBbcThGWmZTJltnO09LYnNaJD5ASEYwJFNJXThae11sSylIPWJKT3w9W0dobTw6fTBJQ3VbKnNwYj1aem9UPCFWQjhPXV8xV3s+OFoyLyRHKWQ2QkcpY1dlelgmVmcreTkjaVJ6fEQ6Jms2MjtWdE5rTUp1cG9oOnFEe214JU4qQWBSbnspXUFvcSFsOk45ImxN'@; put 'dT8yRD5BR10jNFlEcXF7dStmaDE1dkVPcF90I1V4TWIhXVVCTX4wL34/S3VRZnBYVGlAcHguM314Mi5lR3UkZEZUSy9UTGNzOnJAa2g8YUB9Y3B7OTU2TmNkRCtQcyZ1TWg6R3dXOFt+TTleQ1dZZTVkP297Xzp3dmdtUC5yUVVjYzYhQXkzZSx1LCZhb1c7I1dJaWBbNShiZFpPZWdHIVQiQjk+'@; put 'PyZyR1Y9bEB1d0UxOEtLdz1BUjhoYXEzbTpxI2oqKldCdSNfQkU0JiZQOVVOa1FyRjF2LEdYXVp6OHpOUyhmWmYiK01vLipbTUEpYUJ+eWgpenksTm8mUVgjSlhJVy9KYSYmSV9oc0BZT0dWRG0pIz0pfSxTXU91XitwODgkNDtuUWQjMWc8RjhpRDZlK1BnMShfRyVtIWhrcS58SCFxInZdL1kx'@; put 'TUAvVj0/YytRKiYxR0dHLnFWX3RlTTh7SSt1YURkYnpLWWleSEllYWhgLmJkTitzZilBVXRGKmIkbVFsfURfeCZWPD88VlRhLzJqL0FLRHVtTG1oMiNSfn5pKWJCYH1iTzYrLn5rQitDKUJhQS58ZC57Im40Tl5yQ09gYjN8UFQvalZObjdXfCJHVW0+S0tOelFaWiRNfmN7fntOWWVUSD1HV1Va'@; put 'Uzd9P0clbzB0SVpgS1FBPVAlY2YyfjhvNUs4PiQwODtgMXAmeGIiX3dyRl4mTTtdX1suUXtQVTNRYUhZfWxXPHdEaXFJfnZtdTc7JG1iUFgpP30wfFN2XnJaVjtTUSZ1fkRhRT57Q2pLaGQhVzpnNSkxYXp+YGojQlcpTmtwajcqVE0jbSxtPHh3ZkUkQTxrVUJpWkw6JTB5a14vYi5WI0I7biRw'@; put 'YX1tUTJ8TlpkXkBVa1F1Il1PM2olSlQwU01YZjsqa3Q8XX43X1EqeHJdfSk4eTk8VU1bMGFUPDNIKFMmJndQQn5FXms5T1AlclVCYEZgdHwqZEtlPVFHS249TCV7WiltODFmeEEpan1UaXFgS0doSlMwWmRNMkpmYHhLfVMlK3h2bjhfVGpdL09pTCVdQ15rRDRfOz9rYChMU0EzdU5ReytGaloq'@; put 'QztFfiZeTiRdMW83WlAzMltCdzNFXzoiRURUeTtpI21NMWRnajNPeUN8PkNgISxwbDUiKTppU3xFY3NsXzx9Xj86Jn0vZ20pPDgzb3ZeKVpqblBbalA/Lzd8bjx3PW5XUWN7TllmKSM4SWV0Q1pGU2s5KmlrMjd2ejwrNUAxLDAjX3RFVztkTyFnb0hLeGIyflEjZmI3QVZGYjN5fSsxVldOaFl7'@; put 'ZU5vPltkV2xKU3cpQT4mPS92aV5Gd3ZMLjBUe0ViJCplfE44TFYlSWo3MjsxQEhLVl9qWjgkfl9YX29eZi5mciM6NS45PlJxRiY8X1RNSzJXfEkvMjJwTyVvK0V5KCZpZnY+NVppQzUhfjQqaGE+JDo7VDl5Nl4vZkN3M0EpImM1LH48Wm0hJTZrPWxwZH0oRS8jP1dvI2Y8LCZRImdfS0hsOVVb'@; put 'MmdIYHcsIUBJejY5R1IlZFtSdGt4QE9sUV4kVjRGJlBgPkdQfXR6Z3FsKDtdTCMvI3szT3RIalF8d0AvdkRncmJPWkZyUTRseVNsOikpLHE5Lzg7N1l+NmEiXm5mT3ZjSXYyQy5uNCU6NF1JJExZfTpvQTR+XXR7SXt5dG1SdDx2Oj12TnwrRllILzhPVXNHMywjUi5MUEJtUVNidzNHY3pTYFBA'@; put 'Im05Iy5OUihsRFVdWztGQm58RTg4Ll15eS58cWZZQnd+a2p5dkhKRWw+WE0vP2ZkSHFmTjBDfEc/Iz5iOmpsOUhid2dkUTsuMz40MDdTWDwpV21eIiQyaCl4c15qeHAhWmcoWFE/XzcyOVZRem40IUU5ZCxsWiYqNS9uezw1fV4xV3B3XyJLKCplOkgsTkh8TWtlaEhlIT0lfGJRRk50YCNjN1g4'@; put 'TU81Qyopd2VJYDBwSUlZKklJZzhbLn4vVllpIS5ydzsyLjNlWiU9aFMwZntAdWRkIUEvNVpNdFhLRCNkL34oI1FpS2RgNjYhdlh0ej9NfHJYMzxGWWh+MyMkeT9DTHclSjVZXUVAQjlfQFZ+SXJGe3IxdCxUXXFMJGg0Ll0mUnNuPD9aI088OlZVR3dLLDpWd3AqWk5UWnZUeDdMfVZDWF9JPHhm'@; put 'OExdX3AhNHssM2JsdTE/c1o0SFEpWEdwL0NlXWQ4ZFsmTURsS2xbUTg6c0U+d1NhRDgyOWgkRndlWm43JEdoWjR1YUNiYGJ8TjpWNWYsYlNdRXdnIXFyTXxvWComdVBWNyxjWHdmQXIyb3VOdERvLHwzcj1ffDxYYy5aYVtUeylpPlcwXmhjbkpBJTwsUjh2SD1vZD0hU2QxKTk2YituWkImbnIl'@; put 'NGpDXVY6anAhLFYyPH5nYll5Rz0qKHRPXzh5bXhsQz0uW0lZPiowenRFJHBrKiF2Mk4/YTsuX0YqLiZuKWheL00pVElxMGhxXTBtOisrfnssfEEhbipdRlI2fCxCKkVFfkorOlNFPCtLcWZBLnBoLC90am1ddE8vU340Lk1EOUNPND4mNn5hOlFwJlVXWS9PUnxoJENyK1p1QSYrVTNmZlhQRXhk'@; put 'ZEtWPFN3cVspM0BANyNbUnhQQFozfDp4Y1hVYTVNRkUjM01eY3BGYSRIOWJkfEpLbTRBPFhgd11MeXguPmI0cUtbeEBJLzRDUkEqOVJvKzFyMWNHOituYTUkMDZuWEhsLnIxVTdGQTxYcyY+KzhJQ0UiX2lsfHFWa19nYSVqenNxSmx1Y0gpaCtbRl0paFRZSj1pUCMjPC4/MmEyaHgiO2p9Kzsr'@; put 'JCQ9M3NsXVoqQkxZd31NQGA1PGZBZVEwQyJsUV5JLil5V0UuNyFnLnpzLENZdXxiMUpfJDUjOHt7XklFUnRNdElLPF5ge2NIKDQlVVlnTXl5WmUrYlQvT3xHYXsrMStgUyUoYiNBaDtIYkJTM11wNUQkdlhOVyx+fmBYZS5XMC5jQnZLKlk0Ni5IZ0lpI3tsX1IpYl5JRUZedVMsPnozX2IuOFI0'@; put 'QVFtSXl1JHhiLld7L1R3UVEuZm0+NVZDfH4wa1BEbWs/ZChtS1Q+NFRbTiEjbE5lIzRHaXNfSndtIy8jdVM3UDVMWiNKTWNSbjssRjowbndKfSo/W2dnVzRLKixeOWk6WUAqcnkhZ1IkcUBGTCR4aU49eFIjQmIhMSZ+VFZkIkY9ZHJDKWwrTlRha3gvTHtmXjMkMXw0Pm1ha0diUFNkcGZ9WWs6'@; put 'REZNQUNhJTZsKFByNSRfX01uMDU3TCRJZmlEI19SNmVwLi8/cm0uI2NEeGM7MCheTkZffU9uei5KZSV7TT1AKzpIZGZrRjt8ND8mRiY7VkVrUllEVC5aY3h+dnMrVDA0aTQ8dD8/XzJTKlBGalFRbGN2Q2x2MChyQi5YUiFGOklLKUFRRENHfEchL2RmTC5JSVJjMCsybUpJM3MsYnxLflBLcHM+'@; put 'Vz5mcm81eVd3bC4weS53WHI2UHlvOGw9LnllQGlOQ1IlVyolNGJvRTdgfUxnP3J4Y0drJFI/dXpCISFgT0lDaGNeWTVddDRDdX1sT0UvbDc5XWB2QGkzMHpkfUE6bV1sNyQqU3xIcypwUSpiYVV+TUhPSFRAdWUkO149cnJSQ1k9IW8uRSZbIStYbzJ0aF9EK1AiPGVgN3cwa3c/QD9ZZDhiMW1g'@; put 'Y0s+Y31QVDhLdSNyRjpRXyVJSTd+dSM5bHNxKjlqY3NQVGQvRDRzPTE+QSQuaDp0ODtEbkk/I2h1eTkqdEJkb2EqXU5BKXlFT3FEcmYmYS84K3pwdmFTbmpUMV1COEdaTEcqSzpGZjdJRDY1ZkxaUWcwLl5LW1E8PmJtI3NhRWVKO2tfXitfSixCO3xEcFY7VXkqdjpQVlhaTiUqZyIlYHdGLF1I'@; put 'cHYpLCx0XUlaUHRNUU5KZHVSbjBqTlkmOX1rbmMsZGQoNTV2NS4zM3szMzdXfmRjR082aWx+bUxUT3tEcHQkJnBQJitnejYiOVB+O1IyRXg5TlImWE1yJHAxbCwpXUlnSlRmTVhEOkVKOkM6Y3RqRDh3ZjpNJDJZS1hAR2NyQEBzPjc2VGIzZE9fbWFUXil6T1FjUyxvcFdWOHMvJUNzbzU0RkZR'@; put 'KVc+UmJ5VlchdSo8dWB9U18hfjgoezBLbnl4PzB+eUg9Pmd7RXBXbE9Cb1htVkZvdWo4KV5kXWJzWzJMeG47UFBkMjBjWlNNI2x8cnpwQ2AzXiUvfigvd0guaFU2OVY4M0NNKktXXWZAPlJnc1BuLGNmIUciW0owQnUydk1qMFJbLCpxPHkubkpadilwckhQa1hLWEg+JGpbVj5OP0B7RGlyYiRN'@; put 'KClySHZXXkhffix3Lys7LlNBbVBjUVJFKE84TUlBQjZnPmYsKHFwN0s8YDBzSThbZS9lUCNXMlA6cF1qZ01VeFoxdjVMNW16d3U9XyNELzJgfWxTVFt6P0svaFEvTT5NdGVXbHdrJnd1dk5pSUw9eSolbn5vVmpPaTRrUExyOltnRGZlJj5zKzBPeW5iYHtyeittV2UuU3w8W1JjTUNfYFE2QyUy'@; put 'NXI2UW16fm92WVBuUSxtV3grfGg/SDw8ZnU4K1B2eCZtJUNIZ05RX1d6YWQpKVFRYSNdUjJAPDxdVUBmXi5QXmQ2OmkkcD9laHdXVVJEbiZ1MUl0ZkI6b1BYN1IrUlJvV2lRfHopN21HYE13SEtxakRyJFZIbyxKbWl7aUY2cFEpezwmbVZ6LzwqVDlLT0s3eX5gfVkidlUlYUwxdGFkOkFbeVgo'@; put 'QSVxOH18JU00MldqelFQZmN2JS9leixkZnlkfndWbkx6TF5ZQ2d8OVtCVlUxUzJAem5baj5TL1k+e3xJPHdFUmZzPjQ0bCxDfTlMY3VuSntnVUB7SXk+KTUuPjFFPXRvLGcxVz9xR35NTU9NR0w7PGNjTEk7MXhqbSk7elZLNENjbkcwRjdaUHdPbk8mIVE+LyxOOl1TTEM1KUU1ZXpJbkhXPz1n'@; put 'VV9jKmdUQ09zSj9uUil5SHFQWWNqIll5Qmk7WTt3WiRgQFckaiJJRVMmLFgobmYlJiRCZnlrNExbcXhFVkZNWDdHSTU5TShdM2g/Zjt7eWp7Sj9EcWdjQlJQaTIpckY8I1h9K1doP1J0TEBFaUdpX3RKZHN8LlJvUG58Y0FZP0pJS3dOIWxDN0NsJlN4elhnc2hBUStiOSRJWnFIZSxqMmMyKCYz'@; put 'JDZUeWFgKWZwNnN0WiMvXiFxQnRpSHE/Z0o7eWE/Ull4WiMwNjYoX3NJXSNyXXNgIUYoWzRCaFRfZnRKL0x+M1lLPXtBakl4M1hEaFlhOWhDUUxUfChDcj99VT0yK1FreDY6OmZJQV5mKEYlQ2MpSzQ5MERVKn1da0d2ODg8LzpANWB6RigyMTcrY31jMWJRX3hOOm5kbGhgfTV+b0NidUZjYTBd'@; put 'L0RaXlIkWHdfSEhIRVhwd3h2YnJKNVU5Sl1nbUlYbUw7QkVGOip1U3Fub3IyS3ZmPz0jJCMiX0RXaSJROG5yK305VkBiQFpALmslQFFGNmtMPGJ9OjYuTERqbW4wZnIjNDRvMDldVWc7PDQxPXsufXNEckpjN3lqRWpKXndJN3s0IV1fb3toUChlI3RpPkJud1V0SEk0T09NfWokUyxoYUdHR209'@; put 'P1NRZlB5dG0oOnFWbCFOPWBnQz9peXAoYylvbl07V0JzfXRYTG5xfWhAYyUsVlAlc2UqNlQyZEBmeiQmXXRBMjY+XWp0TWJtMnFmPntJd21zS3N3PyJjfUovaCNddyluQXRSPT86K0RWPl4pVkQxQkRDR00wIyJafiQmL1lHN3dNZT5XTi42ISpSMCVnOV1MW1tJOS8hcy9aMWc2VGAmdjtHRCl4'@; put 'cHVWWnY3WVVHYVhbZndGO2MmaVVlU3QhJHVOMHt+NzFGTVc6WF9KOkdoYkVreVVZWTpvOyM8VEYwNl5PMnxPU2Nvem55RjBscmI5YDJ6c0B6S1JgcWFhSTx5KSt1MTg9UGtxQFskWDpvTjg6K3ZFS058cjhOWFZVektxXnxiWGlacTh4JWJpTityX0dJTzdSaWcjdUE8bGNpQDVjJD9MPCEmd1hs'@; put 'aWFZIXJnaW1jPUhWTHdtIT5ORzFhN21CSTZVM31jeXh0ZEFOOTI5Wz0oXUR6ZkprUWB8dV1laUpeUE5mPl4mZCNxaGlCT18zSlNxcCMjJilAVDVoPkRtfD9NPyM2a0w1SS8hIXNmZTddaztKTF5zNU9ZOjxCaVpfTmQqeWJ3PGNXc0BERXhpV1FjKDlDL3BCJkNVSHI5Ml1MPmdPM2xEeztEPWY7'@; put 'KTk2MStpYHJ0dVBQPXliflkvd349PjBVcypzJCZTZVRXaExAWF8yTTElSyUpaD1qVX12bXg2RWUyUHl4PkUoIl1Hd2c/Uk45XUh5UWFxcUU7UWFEImJ1dj8vXz5RfUBENTgre1skTF52aytuMXdbW3NMVTwoTUR6bjkyRCUyaERAejMrUmc0WHgzUTVDRzZ2N2NXZU1oa3IjKzw1UUMvXXVSPS5Y'@; put 'Olh8aHhNdGRlbzVZcXliWlRKMWJ3JFhhM2kvSlBHfW10NiJEe0NKTU06O25QeThkcHU3MFZfRX5WWXVgcWVsbVpoPi5FO1FLIU9qfFtCMzpBXyFmZSpIKC52fDU/dT5KKmgpTXY2eztsN1ZdNDBZOmlfR0tOL001MjN6a0M3NF1oRzZ7cG4+XXFXPFVMJn0pWDNNYGBVa1t3LyZKa1BMaDs0dDwm'@; put 'ZlNmanQ2RE0lTVpZNnpANFlxUFl3M1B3UylgI2FaRWE1WCI7aGt+dUsvX3tQYGQ5NiJsRkBhZUB2YlhMcTAwWjxkQl5lRWElciEuYEtnYlopNG53bk5GSjlxSVd4YVZESDFEeUI9aC9WYG1WTUFCJD5NXWs4ZlptTSFQXWJhOylCRS9pdG5SfmUmOVFXfCskPGBqNUxwVXs+WkM7QyJvMVVJbXll'@; put 'PWF9dkA1KiV1Xi9bc1Q8ZjFPZmI7a2pvck0zYGFZQjVkZVglU2tNZjNYUi49IUFvdSYpIzh4e01bcVVPdGI7NSkoO0YpU3AiaiR2PHVDYE1gSWVqQ1l9fEF1KGsrXkVEJjpiZ3QxT3ImdT4oKWBRJCNuYCxHWEBGRnB7aHAxT2AyK1RDbW5kcWhnKGplQC8/aD9IUElUKFQ4SlQzeUFbU1Z0PDU5'@; put 'OkdKT0Rma19Wci9JJi5JaX1rbmZ5VX0iIUk3RlEscnspbk8sTkIoNU5KVVVYbmN3Xz5GVj1FRWxXNF01TjcybzlDISpSW3VRJTpxPDIiJDZ9NT5BeF5oaCRUPmFyb0syQCZgTT9+LiolXlVhcmlZYzI+QiRyfil9SVc5QmZwUzB2fDtPWTFgO319eWJXUlFSRlVCQy48MFtvKDNebl1EQ197fFBj'@; put 'OyRQRjBvK1h2NWBkZTl2bltVQlRzaDdaWF5TVm5DL1dlXStII31aWjFoQClqN0liYm1WX1FrTWB2X0kpbXB2RztHTjlPam03a346SyQ0SXZYUElvb3s0KyRQYldGJmtQJSEzI1poODkmUlhtfDt8VzNYKXgwVjhlRmdFWHhpKj1jQyswa0V1ZndabUwvZXtFY2VoTjxZSHt+fHFzJkIqYioyTm9Y'@; put 'TyhmQTBbMEJ5OU43c1l8PT95NXU8VH5UMlJ+VW1rIUJ3R3Zlc2NZPjxrJWVGOHJ9M0IvK1loWj8iaU0obCFVckw0NkJgXX1mRyhsYTc9T3prU0NmdnApL2A7fFkpNm9RU2kkIyQ5UEpAOzYkfGJhXmxdeDgvJV57NGRCKW1iXUBMbStUUE9IPGJlPW9SKX1EMXhKPzU6LyIpaS54R3FLb0lXMHFP'@; put 'NEZpb0dZVElnWSZfZnBIRV5hY1U2dkhNLn5JenA+KzxkP2BVRnoqNjA5QyV9UkZNMlVRcyE8OU43L2taO003WEw1R0hXbE1sY2llVHxGL2BAVGVjIjJ2dFMxR0YjXz9NM2EzQGo9e0siMVRkJWQ7bEVMLEIrbDpMPGdzOT9fbllUNk0jXTxlQyMoUjpyLGlMUCUjK0pVW2p4TyNhMWw8eSFtUkk+'@; put 'RTgqN2szQjUwJGlRRT1KXSQ6QmRAOXRKbC44QSl7a0BUJHAsUW5tUUVgJFVtLG4hTFVUe3M3N1shc3B3bWFRfTh0YnFSRnx9WDEpL1JWP0o8Uj9eTlhANjpqTj1jcDdfZFVMIiwpYVljblVPYl8hQz1nMjJGdGlYRFRePmFjcGQjVDJVKik2dTxVMDV3STVCX2x6PitFTWQlMiVhbT4oOHRyeHh3'@; put 'Z0Y5bGtvWnpZWTV2LkVNb1VBT3JbVXpCRklxPUowIzhSdmR2LzhwZTBdLiI0ZEpXdntoVyw8VCFCSnE4RSQ9YC9oPCZ8QGNLK1p2YF4qc29wZ34kPjk7VU8rRFYlR3UoTkEvUUg3VUFNRyhkeEhLPlsvTjlsfmwlNltMQVB9MklVbmQ6Qyh9SnB9ViRmLEN5bWR7ZnVyQ35LPVJIUGNqVDRyWGc7'@; put 'QzpoPTJhcDx1KHRKUVlLa3txMU4+WWglSXBQK11pSi5uKldvOi5WfiFgeDB2ciVeO3IjIWFeak5SNFtqSk9Pdil9S3woR0YwNGA9ZF9qaSx8I3ROX2dnYl8uTV5FNSpFN3RZYjtEam8kdXUvPy8leiZPLCg7QGI3OiNTRGI6YFlWO0I9IXtlfntaeVh0fih+RW5SV3NWXVB1QXh7JixRL1RJdjxU'@; put 'RWt7JHl5cmhRZzNkQUZ0Tm8we2llYV1HZDxAWHhDU2lsISpYYkoqdU43R0kvbURzL2IibXlRZDxXX2xXd0lCaF4jfU4iNHJEb145djBjakokbXpTe1d2KmU8OHtvc05xe2ZiLmQ0fjwqdjVjSTpzO2poIzw8YmIqKmp4bGZLIzZ6e31TQ3hKKzMjeFQxWz5iMzR+LzZtOm5DPW96Kj9ZIXMsU2Uy'@; put 'b1c+e3BJMG9MaThZO2w3T0g+ISxde3lXaDFWa300eTxuOz5bcUM9JThlLkw9TU0sKWh5OjVaQGc+JktiRFgseSxANkpXIVcjV1dgdDp9NzpKX3lBTWsmXjIwWWVdMjhpKildUVNAUUxjcXpFXUA7OkUjMUdUNSldJmwqR3I5SHZda3kjMk94bHksZCJUIWwiNzFqeWRNP0lHNlpkREQ/dj8xVU0w'@; put 'dUpQQG1IXy5mMVtHd3VYWiNxKzNxPVYmdmI/PDRIXWwqdkFII047b248VSFMfHdAOm9CWmoqYlN2NF40Vyx3VDB3Mk1WY2VTY2YkZ2UxdjJZI0VxV2JnVyl0PjdCR3VPfXZmR0EsUn5lNDt0YEZDc0Q9Pk8vUm55bDdmMiNPQmxnITRSU3JIKzN6YVNkN0ZPX19HeGZgb1hQWig1WGI4M215MFk/'@; put 'd30pVWF6Q0E6ND5YfF1gIypUR116eDRma1tyb2d6fX5WaiR9e3Q9UHJ0STBSJWZjVCtbUiY7LEIvR2xyUmxPT2dtcWkoSkNmck9MeCY/TDpQUFM4SSozM0U+Vyh0ZnlBVXJpLCZka11gLj9xOUgrUEMuYCs7O3I/TX4xYStmPyhpWExjeUJ6YzZ+ZStBcDFhJT8hNSRfQDpkZFIhbDxkZ3QyMz9X'@; put 'OSxSSTVMZTAlWEcpZHNIVz9vUT9lc2Yyb1RQbDFoO0YqZmZZJlRmOnpSeSFZUUlXKiVWZ1hmYCtMJiJEPjFDdykzLzEoeztnXk40dzZMclgmWVRPS05NMDQrITJHVC4vMWRKeHcycn5IeW1YKGIoJCl2SUo4fEwsX2IvT35Canl5LixLUmE5WWBSbzNHKUw9P0AmMTBXRn50OjlsKX49TTl2c2N5'@; put 'WDIlUXRRJXcjeWNIVEdELE8qWDRSeGJMMUw2MitPTWZUVzU+c1Jrb2Q2YEVXI19zYEJrbXF1Q1dHRTs4bnwhSzpNM3Y1XTBqVihme0hPM2ZUd15JaTkqPTFtPyJ6YUZLKkxEWSYyKy9xPHhsQj9HJlU+cixCS15DZy5yR3E2XS9FZVh5TytFJTQ1UUthfTl7T2o/aXMrPXUzXzpIenVkfVt1N0JS'@; put 'Okh1REw7ODVPSCVwVDR3PVpiLFA0e1psWm4lZXB1ODd1KlJ0QWdtQ1tpXWdQRHplaFVUUHY/c1R2OmNDPU5PcTFeSn5GKjduT2NdST44c0lhYlBNaUc4LD1nbF1OZ20pdSQ7eSNHJVU4eTZddVAzKThbYyNDSl9Xa3J5aV8mbXxiV2QuYSNaOil+JGd1ZmEpa2I8dyFQUnRhYHIiMTt6dVpOcn5P'@; put 'Z0pBX1Rdaj1AZn5EJGh5UG8lSj5zLCFoTi4ke05YO0htUHJ2KF1ZWT8ifWM2RzVFPiZdb3xsU24uN15HMSxwcCNkMXNnOkJIRTNiMSFLNnoyV3pqZDFpTlVkI31AZilWVXJ9QSZyUjFkczxwZ2lYXV45TTJteG1EU0preV9GVl9lfEApQ3g+fHxBd1d4NVkiRCFsS0JeR3J7KmNGfVA5RmFVTWd3'@; put 'WHAmI3Mybk1KJS5OUH1mZkkjUGhwSmFYMFV6VSpjUSNWejNOaGZ3YlJOPyJLcldKYWVyRWtdOD0xY2VbYkBiPWEsOUBLZDFiInAkMyxnL3E/WVhIJjU7KU5UZztrXyZULFs6PGdtL2VucUk+NTR8ZmtqfEB9OEMkYGQ/YCFjQ1VtPnlfJmxwSz4wT0BBRUt5WVp0a058LFRAd0J7Sj4mNjV+Kil2'@; put 'JDVlTykjYl8/UkBXaSw+ejp8QCJLSl90I1ohfDBLVWlNMH00Oyt2dVpqalRMVTI1WF5fJEMkZj1PUXAjRzI4TWA7XSNlMTVBLmNAaTVGbFksWjBaQ1NpLztUPURzImo7IytxK09VJElaWUs8cWFPY3krN3J2UiRSYFVJLGJKfElLdjpwTTl7XllbfTRINCNDXURAMy92Jnd1XlFhalMxdl5uWlVl'@; put 'XkM/YTJ3KjM4LElbKjFAQF53U1gwVi4zd3UucU4iazp2XUNoJURkKFZLZyxZR1t0clZYV1dnIy54XmhCQnFgKSw7dE59U3M9IWMpRz90VShWR25PS2JeYk9YZlYieVU3NkQpdXh7MDdkVF0wcGJaPltpSTVDLiExfFhOX2tKdV83V1JWaU1gajljb0YleFttYyR3bTtXYUJvKDhzW0ZCTkpaVkdQ'@; put 'aSNyVCVzZkhAa2tFMU0sTlt1RkRbW3ByMjx1XnYvcSosTnc1enViOF9qRFV9I1BQZS59a1dBJV1rITdQKEs0RWF1b2lQIXRhVXYwSnNYfWxNXTp7M1gocElWPHBsfk9oIzYobkZlTlIhdXUmRikzSGEuUV4oJTA4YD9hPFRxL0o2MGN8aSNCVl1ZUChlV1smREdZO3x1RXhFTE4+PDhoZlJANW1j'@; put 'Mnp9WHpeU01BKUd8X2klIi9LS1p3OUoyKyosU2NtZ3pGVVRAVUdRLilidnMrfFlncWNhIzRmOEV7IU0lUj4pPy97XikhPngpbFElQSFrYGI0IkxzVUBIaU9QRlkxSkp3ITsrRzUmVDhUM2RbOm9aM143PC93ZVh9JEkxMzhGVHh4bCR2PUxAJCg9Q1YkbU9US29XISpHdC9JbGlHLEdVdyh0UTts'@; put 'ZXpEWz8iYDdsM1k3ZCQrOTthaihMYFooUTwyTHNTa01OLl4zajI5LmYlX09vdFtzbDphS08vcWRuO0xIJkphNSVmTCh7SFQ2KzIrL2AjTG5PalBPPTBHVzV+SkR1LmYpUyhKYWdHW3xAQFp+ITF3WmwwM0ZzO18hRVEqdG5oSlpDSyNEYjlrWWd3JlliSDxmMXkoe1ZwSiE4PCRpXUdIP08wfjxm'@; put 'elkxW30wZ0BZRHFTLm1LYHNSSVlgW1l3NkQ9Wmt1UnpHUWtIYUIkISpkdiJEaCpZZnYoZ3VsRkBnZ2k5PE88OituRkpCQWZtQHExY01HcUgsUkM/OnQhY3ciNyg6Q2EqJSsxcDJ6TkY8InkkZkwpMEslJUJaYGF9WUN9Q1ZmZXgyY3ZyMGszIkA4MTA+Q3Q1fGliVEs2I1tyNmJ3fEVgdkhHVSxp'@; put 'ZVRFRjFnQV4zeSl1MDlNaE9ob3FpM248c28jeTA8fiFWSDxhdntUZjo7Yzl5RFFpKXZTX2JqQktLTihLQ0NPY0YzQzNKMlE5Y1FtWXlyIlEmSSZwWTs3PCpoaTJMUEN9Sl4pQktOe2dPNXouKUxaQGF7N1BRZyw6OHxEQ1JLfj5iUEVJdGRBR3poMGhjXSZWOU9rPXc5ZGBbdXwyUnxpQ3EiX0ol'@; put 'VVEveTJRbGdoTGIoX0VYa2QvXn0mSWZTLHFoaDJBSi9JMkl2UjBBIzVhXzNFNEg+aTQ4UExHUzZ7QVJYbysiLmgmUi9TcDUsIXc1W1EjSD9jejlUOCpWd0VPX11tRUdTLEc0SiFrI3RSTWBxKlBjRTBIb0FQSHV7MDY9cDF2Rm0xXzVDT302UjghUXJdcDxXT1o3Y0w1PTU4aStFaDI0Y3sqNS82'@; put 'UUR4MzRPYjZBUDBMfmM9IUwiPyJ2ZU0ufmMvPU1CVG9VKzhIVzhAR1gvQzZZTUFvck1vNGtoQTlfSilEQHdkKGc2S1JwMDo4YjhIXmdhP2giX21NKXZLd2NITSNGblNob2liQGpSTm8/RFZKVzsqT0kqRyl0IWB4enhjfSx8QjJkUzkiSmh5OkdGZi9INDciWDc5JWpOIXhPa3g7KkI5TTpvWUUp'@; put 'W1dVUClEbiFwNl1DfGpGSFZ0TyVZVEhrUUU4bm9PVFk8KUFeKGl1c2dMIUskSHFzOyp5KTtMKnxtXjt1WX1iRnFNciN3aml1a20kXjZqU0Bubz8pQEN2O1E/SzRAOD9dSiJqSXQ5QndhWnZwe1YwJmQ8d1dIRVpZXXgiO2BFfjhPXzU+PjNsJlhZeSRucVdpb2cxInVHJWpVYWFueG01NltfeGUw'@; put 'K0RFREtAZyZzeHU6SiMyMCpESFRiUSReeXxjQkFmPlBEcWNaSkZLcVcwUjw0UG10SlghNnlEQDZbZCN4ZClwRVh1SG5tOUlnN35SajdHaE0iIjZ3M35TblVHSEooT1dtPUE0Yk9eWEZSUiUlMW9tJFVyZC5QaS9TSHVobCk/dnwmeWJAWiFfaW5uejQqSHMibTlYMHw0TTNCUiFeWDdyd0RXYlY+'@; put 'K1REbSUoN1Nxemg+R0VwXzEhVllfME1SOjcjPHB9PygiXmY0bGtLTUYkOnBJUT59RD9VJkEsXXopMXszNHxpYkwuZTFtY1kuVjZyOV0sNTN8eWUrOkdyIzh2JS5dc1MoOHVGQy8hY2YyIzlhUF1XOHwhSE1ObXk2fjdFODJ+P3VCYmtKfi9QZyxTN0hed35pXjVMQzBleUN8RXRFcEg7TWVRRypn'@; put 'X1QpflE2USghUFIlMW9xaDF0MjJie3FkKUYiQ1N2c0c6WSxNTTlxIm5zPW1sSVsuQ2RVfiZSe25GZlJFZHNuMyIrWlRQPVhnUXBbcjdvWEcpQnBhdHQmelJ2YmVSYFIqOntqcDQhRGxeKEVpWzAlajhrO3JqcVpQbU9NKGQwbWJPLzRQKmI6ekU6PjBHJXw1YFAlJnldQm4uTW5jN2V5a3wwWWA8'@; put 'I11kTHhNJl57RilgaFM5YiRdbkxnPkNCU2VFTl5FfER0IVcvR3wkVzg1Znc2NTBUYUk4KDA+SUhsIX52UUVbPXZfWC5hOiIvcWBNaEV0fUdISDpoUlA8U0p0K15+fV9fXk1EVENIOE02MytjQylOSWVPV006LGFPPXRbKU4ua1EyKmxGSTQvKHM5SGxgVkB9aUJQfExLInphYDZJREQoM2dNMi4q'@; put 'ImowZDo4MF9vNGspYn1OZkVmeCV4SjtfM2gpdCVXV3I1blB0eEIhYTE4OHwhLDJNZCRXUXJrOCpyOyNbKjN2KWRBfXNlJUtkdTNsUytaZzdxXlN4K01rdVhxbGU0V0xobk1JMChIOiFWLytEPkg/OSxyTzZffSJnUWY5fHFCKSUucnosYlpiR2JDQ24wXklIVnYicjFrdTtxJFNTZ09ZXURaWWpd'@; put 'VHtfU1lVaio5fjhANC9pJk8xJSE9ZDw2cVBGaHhzN2xfY1g4OHZITTo8cEBoYV0oXl4/dmxKdV4yRXtfUltoandLIndMQkg0JTRAUklHcERBZixea3A4THN3L28sRUp8dG9ZKWQ/cUs8M2JddEJORTtWaDR1aiY0SkdIJVZjeWtpbjglY1F4RUtad3pddzlzbldGUUZ5UH5UUiMjQyE8STx9KUh6'@; put 'YGhwVFo1alU/TEN6R1VWIWJWUTJoczgmNkg9fTdqQTBXfU5AZ1MiWEUuTVhIajQuWkNzcF1JfVlAYFtqNzgwV2lBU2hMVnR0Sj1dS3kxLzd3M1VAQzZfRHZYWjQ9UW54Xl0zKjIvMlEjX3pYIVN8UjciP3JyTG9zL3hlNVNlaWhHTzl1aVZIP3AuLno2TWteWHhGQF9bTXVaK0B4W2s1PnA9Y0dG'@; put 'eS55d3Q+PyIpe2ttXVU0PG9TVSY7MlJGeVcuQ19JRk1aNUksUCxCYnJCR2BsNSEucGgiTTNDWTg/JEo/Zn5DPlZFIV4qSThkSVlOKW8+e0lReU1yQG0kLGM8ciVJWUhXaEFKfCVXOmExNkJATVB1P0JkOmVJP0d6YiwmZWIkMGxeYnxuei9PUUxVMHosME88P203ZHcsbVlicCFPLmpULktTXm1d'@; put 'L25ffTo5V1swMzFnaFBOWTspfDhYbFBaUkM9bWxQOE5WbmMuZXc+eHgzRH4+ZX02N2NrdUdNWyJwejs4RCljc3Qzdm1aQGUmUl5oLER7LyI4PGRQI0gocTRbcC5PZWJFWz1VK25+dTt8Nm48bkF9dyxSRlVSTTk4Wi9gTTpeJkhJPkcwd3l4cC94SF9mK1s5djt1d1tXWy4+bGs7P0wwUlJMQ2d8'@; put 'eVVkdHlUeChIVkIqSC9MNHVQP3RecEpiV2xxPGlgTTBNe341VyxCenJIND1SO3UmO3tKWX1jZ3NKZihCKDhfPXpSOUtBPDRReCZtZjlKQFFMQlZyMGo8aUJkUGQqeSZPVjFeYDg4L3xfLHVhbHx7ZEkpemNKPnlQNWAvIitVOmpEPjE1WC81RSJkIkZ8eXw9USRdeUd2UXdlWnxYXnt8JS9GZzh2'@; put 'UD5tNFFkI0dNbGFNU3pIKm5xZjh4YHhUdnB8YSVTdEVIOUZkZkxqSGBmfVRuSiIiMyRKKyhGZmxyfUtUSDFZezkwQ1ckN25+OmpEZywvNGFxJHA9NmBtbFEhVDB5eTZBYTBrIUJNYDVIfGZZWlJ1RWM0ViJDT2wze3VBb3g7aUdoS2dnOTUxWikyQzROenZLYEx2UDw1Ky95cDJaQkZVV1JSVTNH'@; put 'bXN4eTJmYWh6I09bK2w6JEA8QE0kVHNJXUxuWXN2VzVhZ1N5dGhWPkRCXjciezBKMU9iWGhYallPI3tQanU2UGdvXV5iWnNHNlBOTCQ8dFdsVXxHRWNLWFc3Nmh5bzpEVHZbOXd8fj1CKj5XZj4/O0hiKDozSihDOGtCVVo+Om1NKSpVcnhbMyNJPzc5cns8PD1nQTdyZ01OQyFIKU4jSl5jb0l+'@; put 'SlBiMnB9NzljKklNSUAmQVAyODohQ24qMnlsYSp2WHFtT1NyWk4lRGtJTTlkVFt+JVtFJXF0bStIUEJLMTN8MypGW0ZxMlZVOHtSPDljMC4jRVE2MT9vT21fX00yS10ua2sjKUIwezViRTF9NEA+VDJdT3h5OkxRZTNYSy9ZXUFTSiJrb1AyXyFOWTFgTU1PYktUVCRdbHZMcyxQQjAlKnV9NDlN'@; put 'SW1oYF1QJjg2LkRHKClscjlnTCpJQHM2dV9XeX15ekNuRG9gJnI+QyN7d3dBZy5SNkYvcmVDVj1KOCtxIyFsd319Wz86ZDg3Wm0/Qlg6L3FCNCZ8WUtQZm4uOm1HQmBCN3wzYUxAdyxVXlZwNjlBaU9yZ1BMMUU/T1ImOCxiIiZwUSVxdkMsfmE8MmFfRXo1aktKKU4uNkZ1R0AqOzZnWmZMT1c5'@; put 'fksjeWdqPkR0KypZKnUsL2NwdntTVEMpPVNFR3FXU2hTP0Q+XUQid3s5MmVNeCQ1PSp+VUdnY11wcnVjZCJQSklELkgxa3BrYm13QnR4YklCaXxgcihrcHNbbkFrY2wkIS8pOiVlIXJQVG1JRSx8M3wrLmUjMGdNfFZ2P3dXLiV7RjhefTg2S3YoLmdneHNkP1c+RlI7NUYrbjRbZmJIP01hM1NC'@; put 'RHBgRSE1Y2h6cSJxJktHKTlEYiNGPXVHSTlrRFhhRVZWY0d7W34xTXdDZ2IoLmJSU1BJXyw/QSpJUiRJUEg2ajMoKkB7aWoxVCNaSH08KmtZMCRJR3tSd1hQZFtKMTJPQ3U3R0I7W3goYE8jfX5KNllMOGFNTkZTU0I9Vnk2fGBHMW51eks5TkU5QkYsOFdkW1pBaiw2NlBdeklFWztxd0Zyfncj'@; put 'W0NvVSMkTUZWOnJAMk87Unc/ZC5mLD9+PTZKZilJW2Z7VTFlUHQ9QiFFJWBALy5ZTSh2MG9sODwxZS57Mm9xRm91JE57KUo8aTs5aX5hQlBPKlZ0UzdKMTtNSH5ENHMkfmk/NmYmMlRlNk95Jl9MRUcsNGBBJmMlYmUqdSk+cj9daiNMbFBISVI/YUZJOzpBclRDUE0oTU5bX0heU1FFSSZecmwo'@; put 'Y1dhPFkhUnBlTH5TO1ZMKFZQVGpVN1MwLGhQaFlabG9sW3R2fU5WQ1kqSClqVVd1K1doRFRqLitaVUExPndHTShhSi5rOlo7ImJTX3pGdFhAT35tXXV1UjVbTmVEQ1d2UlFYPjAuKXN5ai5ST35TSXxKZU4sUjkofDBRazQye1MlIk5ALExuTXtAI1pfdXN1OzY1eWlzL3NuZ0M1PCFYPzIzck5C'@; put 'Xm9IXiY0SU5fMWc/WGlvMn0pQytAI1U4UmhJXXtPelZ0bUBdMEZrYyx1VlZbPW9QaixCNz5iOTk5S2ooXTNVLGMkdHdOaXYoeTpUaiokbGBYQHUzNnImOSxsK05iRX49QFp8eyt1Wy9KL11RYyh6aDJldjtzLGp7S1M9NWpLeSNoZ3pwM29fITZtX2h0KltXeio1YHBBN3UjX3VXIWdCbSJMfCpk'@; put 'QT5VW2FjMkRpbmA8TXFaZS9LTmNhODVzfm9MM3tHNEsxJnM4KkVMR2BfJSRtLCxEcEs2NVElTVN1eGVhZldWWEpAX0Y1Ok5gWmt9bk42QiFKbCYyJGtYdDI1UDRjNSI2eyUhJWhCXlA3XXk9cypLd0x0SUZKRkxNd0t0aE80TzNxWi5ja04qcEB5OHp7KiM2cXhmMUAoSSEwWj1MaE8iKWh2SV5F'@; put 'b19aZkIzU0NPLHRTZndKc21iPkcjbVckO0RIPy80W2JRXSxRfUpANGRWcyg4XzhVPmZHcjhmJik1VClbeXliVDVhdlNDKEJOPH1oQWYuQlZTZzl9Q0BKTUZ2M3h4R2NXc0F2ViJXYSVPSVpnfEZnPVcsMEM6JltYZzdQSTJEL2N1UlJfemM1SXNfeClSSEkpOjdfJjhtPHZncCw7Q35BTVI7bDRo'@; put 'MiJEcjZ8W2ZwPSUvfmJPYi5tPzV2aURAb1VhbT9xUUlVS3MuTUxba31rZ0c7eTp5eDFTMXJuWlY6RlVLc2BNU0tFdmx6Nzxna2dEb0lzYksiRHZgSURVKyQqeV1aWHwlPiJtfCZxeS83QXVjeVh2ci9gclFZPyp1XnplcU0iVEwxSmZZL0ouMHhdT0YhWk5+S19+cU1DfDJxaiZ1Lz05aSk7Q2JA'@; put 'b0p6QkZaKm4/ZnV+KSgwOzJLTDR3I2NaN0ZvJHlPM0xAKFM8c04iUzoiSHpxeD9QQyUhSEwoVkZFb19DSTFdcT1+NEh1Ty5VcWZMPjpmTGooP2wyQlROXVdCYDNDJFkiYWQ8NUtlU3kqeUxhImFXMWBiZC9Zcm59NnpDMHloVXB4ez5uMTB3TV47PDpVUXZtU0l0K30+JlJze2dYRUJFQkJWTWBK'@; put 'cWNVemxhWEVOPSllJF9mZ2YmakhBRjRmMFA/e0tjaDsmIVt8OiF1Umk0MC85cWRWU0QlZDM3Vz1dRk1ZNENPQzdoVjR6MDpzfntFT3FjJjRTO2p4W3l+ZEIkLj5QenAuRCtWW1cvV1NZRHU4NV4xZlEuImJUWC8jZXV0I1ZCVlgwNHZzIy98JEpLaG4idXMwTkxFRUVIOUJ5UHlYekNFIXs6KkU8'@; put 'K1kxWW1vfXxDX3J2QmA/YWt7eTE9b3svJix6SEhMWkssc1VsXkspWVR1RDl1ckElYmp2cHdYTGw8QkdZRnp6OVB2IjAsT2hYfE4mZ1UzYWoxKE5PcH5pS2J0PSUjPy9INmkqa1RtTCM3JUc2ZigiRiYvKkVRRWVpYzNiKEg6SWNtZnlZWE8uT1VaWUk1dk5DaVNIMXBEPHUsZmZEJlA0ZyRQKHw6'@; put 'JHp7RmksNEljaVMoTT9TNm5XSThzNCFbPHVWaFo7cHZNSTg/dFJzNnRXKGMzLH57e29oOWY9WWFuMS57Imk/RjFJLzdvVmxbMW9oaSxSNjowKzB0SF01aVNCdkplMDJkciY5KGkzPD8ocztJcU8rNDllTD9JSGEvelJZcHhQeixFbHFLSDVOMF5jPTB3JW0jQm5OcVZWPnIiXzNYPDwiaEplZk1d'@; put 'bEFlK1J2XlRFej1TbkR8M3lMMFU3YWkqMWA1YkcuO3B5QjRnTmdmRzB2elMwWT97TG9nTCZqNkNhPExNYSsxZSpYPU1OI2hneCpEKFpPLDpJXTZffmJQYXlAaVpsI3ZndmVmTzptYGRyVGE6L2wiUz1oUSU0U0IlTC5SPkdpRF85NCpVUmtDKFs3eE1UK2YwKThfUEksOEdQN29KUTA4SUtJP3B5'@; put 'RFYkXkppPXpnQ3U3YSljTF8iMWldSEkzfXxSVCJ8cTZmKDx3UkQ8fklxQCU9I3lGN2kwNnFnMjNzO2UlZGhKQ0speFUwRFs4I3ZPfENkKV5UdnFFR3t8ViowVXJkPHp7XVB1dCE/O0BQb209P3s4LF08Z2w4ZVZTfn5tKSw3PW5wMFRge1V3YkRIKEQ2WUQ6Vmo+ZHc0QE18MUdwfnpIfjUiaXol'@; put 'dExDPUszYkA1MHdeZEhPQEB8OywiTktGcy9MX3NdajtTe3RIRF54MEV6TztgfVplWWcuNipNY1BDRXB2LFZ0IzE4TnpJWTQxRkhEYkhyUDhiI3s8bWcwWCYscis8WGB4T2dnYDYpdzRvUjJdIl5eeXxOPDNkaURBPiszR2tlZmpDL3UwOExfbkxYJCNVYmk+XmN8e2pKOlR3d0FLZUkoKT96RHJ2'@; put 'dWU+P2xGRmRSclVjOHw4cVI9MHo2NEFmYnEjTEE5VWMrVz1xMFMpfDF5clhGeURsQH06JFs9WGJXP2JIbi9PbDc4TUcjSWFzcWZnPXtUVXdEISpaIWhwPF10IjYubHF2K0xMdXBQcF0heiZLUUByYHRddUopWT48YDRBVSZIU1RZaTRMUToyTWc/OChASFJuUFc8K0Ike3JNfTQwdTU+IXFXITtT'@; put 'KFd8QWZOKVlFQip2Y25oSGQpW09ZUnYjLENaUSg0LHZdfUw2b2smfHN+KFpQSjJyPEJnOGwiZn0lY18/YUI6blNJUHxvdlBZISRORWorJHcmXWtePHJHdntqbE9BQ0R6JVVAcyNhMEcpLFh4JnYyZjtHPTU+cWxPKHFZWSlZJiosQHBXKH1dRjlLU1EoMD9PP1NmfV8wUnZCMndkIlY1InpldWRF'@; put 'M0V8UmEiMFlQSUtxKFdOOltaKjQveDxwWzc7YT05JG9oUUg9elVXU1h1fjxBKGdNTWN6dnAhfXF5MTUjO0IkXUwwZUc2fSM1MWk1b2w6SztKJmcrWzg8PiphZF9VY2UvYEFid3EvQU0+OSo8YXJeW25PX0kpWjB2SVFJVWsjJXsvMSlwIz9vW1NkMT47OXZKLF9QbGNUIjUuRS9xbF0rYy9SISQ2'@; put 'Ym5KQExUYzlFNiNgRXJ9MmBkaSt0dFBZWFE0U1MvfEAwRU57cm5TVCxmMTVmeXQoa2N+amFzezl9enBdLjk9MD8xIVAxIXhvdXZWV1hUZCU/WVB+TigmYVs5XmJaW09DWHtuc35ASy58MChNbjUrfmx0ZjF8Z1osVnFUbUFpfTIlMFdDMDt2THE0X1dveHQpVG5GdEYvI3RWTCY1I2tOL0pySSJK'@; put 'STBDL19GbiVAbCZQPktnI1RkS2w4bF81dEcxSW4uZmV8ZlR1TTcieXthZ0IyP3ZGMG59JTlXe3x8LGNleDA4ZlFAUXhJXTMwQnc8ez4pSlJOVFhdc342e1BrMWladyw1PiomT2NVfVtsTlp1SllpWVdlYFBXUChaYkxkUk54cGQ9fipbeG8qSCtgN0dNTFp1cXJIJksqTWNzeiFbOnhuQlBvXWB5'@; put 'KlAxKXMwO25xYmVuN1AjTzVtOyZnejxsO2VRe3lwNWZOcyMoWEFQP2lvJnEqMkhfSD1gOzR3aCJse0JLeip+cDEyV1RqOzZYT0wkXkZkVlFYLlVkUl1JVUR9d1dxWXY1VSpsTmFtUV5xfV44KWRtZGwkSjR+KyF1Nlg2NSFoTlJDM2x2bWRAIkxWSVc9X0RfcSMmfnRNQy9AOWsicnp2fFhyQzI7'@; put 'PlYpflNOeG8vL1h5MEBHK1dwOkNxYCIvTW8iKyIzIjIuRjRFQ20xYXdDdXR1c1sodSheb19WO0phN1NCLH1eenIjKyN1REgjS09HdEtNWS43QkA6OU1EQDMjIyVtYjhvVmA3IWJmMmkla1RgdnVXYTV1cD8ifHBkdWVaaEcjMkI8VGp0bW1ofEdDfHoxQik9PlszMWAlOCxwdF9wYkZgRT5NdCl+'@; put 'OXFwYUo0VzxYKWByIVVANC9dSi9SUHxVJF9dYF1SPnhdPHZlZ2csKj13Ky9NY3pTajttIn1dJjdlWyEzKD1SP0JtUHopX34lNWNGJVNbVTpFdDUxVy4+bHxYKkNFKyFqPCRYdjheJjdAen07Kl9KR1VESzR6IWxRP2hlUlAkTHpYekhCUHUlczRLM0xNLnwhck1EN3tvKFdoK0Y4N3BAbHMhO0lX'@; put 'cW5TdHxvcUgzST1zRkcqPT14cDMyY1hraSxlZUFeSjNhPj5yQCVXejtZWWM6eVpGUSw7eG54YlVHVilse01RWlg2ZnolUXByXVNJUH1bOlZNSVpCZ0FncTF6PkQ+QC59fF5kZHlmYHlMWDk3WU4hREA3YFMiclNrQltYUG0pfWNvPkxqa2gwLjs8bkRVYDZGUGtqajtKMEUqWXdBcnFTOjcxUlEl'@; put 'KSUpP1k4eEU6WCN9bisiW1lXIUJSZT9vVlM2QjhAVG4kNz9LUFs+dEFeMmdVRF9ZeDNxIXQmXVQofG5BI15UPzkmUHw8Z1d7Y3lLRV0xVEhSc29jR2V3ZHpqN0lLaCtYd0hNej1ldlJoV30+SihxU2E0RDdWY0NMLChsdmFsMGVRNklfYz1WPTEsIUhNcCNXKTo6S24hTX4zM3FiJmcuRDI0ezha'@; put 'YiU5JUpOIklCW2x4Z3dpRkBvQUlRfkVAPHRRaVtJISI4el1SN3EwfVMkL2I1b3RNek5uYkdzODRzPzUocjsvI0lbRDlJfHA5bDwqey9jRXhCP3pCRElvMz8/Zn1jTDgwZ0txPCNnMyR9JDNfc0JEWjh6fHxGZnh0XVkyfkxjZEdzbkdSRVV7TVZuXztvTC5OcUMhWDhrfH53IT4jMThaPHVROWZN'@; put 'OHg8STpbLjhjWDdvNzU9QGFEfGJ+QXl0Wl5MUkFnS3gmUE1IKVljb35scmJ0SC5CWXRJRll6Tmd8MU1KJWhGTnliRX5DcyEqcDVPOjMqenkyPEpXWSM9TVFmK29UfndKW31ncnEvbjdyPHUjPSVbTEp+YWVJYjwiPTt3RnYvWk5YMihUNSF0e0pjZncwSUVGd2ExbEowX0VIUFZsbDNLNjdBITRA'@; put 'cHIzdV50e2cidX5eRXZPWk0rLHZDakdJXjYlPlRIV3NgTkczM1AuTDJ+bjpEWDM/Y3EwZzU+dldCRyQ8S01iTn1KK2xONUsxcFJpdTIhP01wSFFPPFBUWl10dHV8NyZSVHRjeHpoX11DYFJNaF8wLmlJLkRzQVROfnVOMXx7VlAhQ2lDbjR3aSpqPjtjfn1mY0AzWFJhPmZ+eiY+aSlZZ058YHEw'@; put 'WEVoRTkial9ebjpDVU4oYzxdQ1pXQ0s9U1c5TWB0L3BLIUlocTQ3e0NTZmNfKFtweHB5PTsjNjUmYDNnT0xAL2VeO1Y7KCtLZHZYeXUqZDRtQEdLR0BHekspcmN9OyhXaE5CbT8qUnVvbWI3a1ZyM3dpRzgkaSJkPVVAVDJfRD88SkBmNnxdKV9EQ0gwcX44YkJ9VHJReG1JSyxJeT8jTH19Xm0u'@; put 'Qy5WbWgzfXdHU18pOj44YUdVSD1ENDdLMGJfbyNiRVZbdzluKl59KE4zXTYuK011NVBLS0dYblo0PykhTyFBNU54RWw8Vmo6alV0Z2I8YSQhPHd9JkcjeGRnKyhRPUdTWEgkJi9OOFdxKFchdk8+O2VeXj40JEh6VHwkMkFwKGZRKlB+NjpVezE9Si5Ac3EiR2ZaMXomTk5jT1V0OCw/YHVEMWlD'@; put 'PHlvZjJOZk1hPV11YyZpS0V8bzg5XUtfaXwre2lNT1hSST00VyV3fnQ2VURseERWNUFSOGt1WToxTXxHO0dNQD8/fHZ+fXJEfk9yVDlbJUA8ZW4kUDJxaypINGEuVG9Yez5JUTkkY0p2Rm83djhHVyFkW0JjI1JJYWFBU05jVi5rKzowdXBfV3B5S0MkMUx1NDZwRUBBQ3dFdHk/RWwsRk04SkxC'@; put 'JUBXSkJqKEpvT1JSVkZvKCtZWHF2JjE1XXE+MkBLVU5mLCJjREUlMD8wb34jeWIvVEZsNDxLTk4xbDVdMWZYO0JqSylOTHpQfHN2aGZwVHF4aG9MWUhSJUE3UzkmSF1EPHZlbDdbQE9OVnlPaC8qZS91UXpiQj9PODhCJHxSY1hOV1cjfSghcEI3MUs/Rl9wSTZmNUc4bzp0PSMrWThSYXgsUT1L'@; put 'UUlQL1R5TzA6K2E1L3RCL0RCVTRjQk83ZD4kTmZvc01YdHJ3MEYuO2YsNXlkSmYxTkdyX1F0cWdkbDNVVGdqTDk2LCQ5fGZhallyKFVgek4wQGwsallxSnNoJUZqbjUmRnUrP2JSLmtjNG9NOyZuXiVkMUJGUDB1fXtWbGNwSVJMRFZCKC5NQVkuYXtze2tnbnFCakh+WT9TaUdpS3hJdSNrJV94'@; put 'R0lHImByOTZYeC9jaWtZZUgwKXpscF5QS35bKkM4Q2oiM3smY2hoY2UyTzE0aEFBZWB4M1M0VzRmRGt4b1hrTFpkZWc1OkJ3ZDo4OT9gW2RPe09lR1kyKlZIZyx8MC5ITVI0bDpxYktMXXZrWXk2TXJkfEF+ejkob1p1Zm5CMUBgWlRaIitgdXEoXTZ3enk3OUxNVzZDMjZHRGlXfHIxW3gkVFE4'@; put 'KSg2WCllTWBYNmZZY0xFSCU/PTV7fi9zRzEuSjEvIl5XNGQlb1lSa2h8OlMjfDVrWTFfNEAoc3J4SzpfeGw5WjxQSF9hP0luVHRnKntodkJoK2YpMDZAM1pDXTc7LltaTDBZUGdhfE5yaFFYbGRTXUxbSVglQ2pmZWApaU5DdHchJn0kbUpzUklPcFdfT2hYSlYlKk4pOFpgcD5+Om17JT9Oa3Mq'@; put 'UCp9PjVpKmc8PSVJbHt8YUJkcCNHbE9wNi42ZClANjdQc0BuM1NufmxwZm9Dc0hNXzs8bGhWTWshQHZmPzUzWnQ9PzM3KGJvSCwlPWAhSEZOQ14jTlQ1TUR3bjhFZVQyRjc7aTJRe3c4XTxIUiw/Rz47MUkubTxAYFtCPmwxYm9zcWVhXmJOKVNLKDB8JkAldzB3L2w2Tk09dmgqNyJ4RSp+VnZL'@; put 'WHwpIiQyITVEYW4jQEcrWypvJkUodXU9ZypmNnQ8OzFMaDI+SmIqT08iMDspOnh+Qk5NTys/Y0NKbjZ9TzVyKSkvZmAyal02aStne2lkd0kwRzJVU31iYGF1cDZuRk42ZFJMQ10iO3Z3bDNdfXs4cndMQ3BPenpFPT9PRzttW2t2YVV1NWk8V29+VDNVMDhSVjRhKWpvdFRdP0tVS2JeWClkeG8v'@; put 'VWVOKV9lJmg/Vz4je2JjfHF6dSYke14ycW80QmRscWR8WEFRUkl+JGMjSnA7S3ZRODhhe0JhdTAkSlV4UnVvWV9fUyRjP1FyZXt0O01fIy49TXpRfiheU2chel0oYz4qbXB6RXpQKTdrTi5sRTtzSUUwaCgjVSZjMH0yWzgpbmslS01+TGNsRnh7UT9rSW44eT5xN1IsZHlXLE93T01Ib1hLbV00'@; put 'JFIqeHltW0VHTWB9TzBSLEthMjpoPCQ+b3JwWyhgKVkkL2o8eFQ8ZSJ4cUs2a1VNMTNxKEJRaz4sLHhRbCJaS307VS9FTjVPPihXdnAkXnZtfUNuRUcwOSNaJE5CNHF0YC5PY2w9cDA9NWtpS3thOTRTSVFbYXFxXVRnYTh1V2d5c250QnQxey4idGZzIjp0eCF6T2RfTio5KW0vbSVmaj0lUEtY'@; put 'LlB9TCkxP0A0c1dpY3UuOldZfm9iJSoxLkAkPVZYcTM+PDk3c1gmJiF4bl4oNS44Ji5CQHwxP0ZXc3t3InV4eVF6fFE2QmVdezAvKHREJTEpPDJEXSNxeEB9SWQmYCk8Lmo7NlI/YnRka0trdkp4Ji81TlI8P30xL2RqT3BFRCx7MGJSajJuKXMvbGgxfk8zLD1nfCoiLnVfc05UUERSdHdDcWdA'@; put 'fmdYYUhEOEdnYk9+PHlhJV47O2BPVjFmOkh3eUllU3F5b1A1KnxRWlU7QzkvVFs/RU9OYGhEZiNfMzJnc34kXlkvZkptKFsoanBIa203NzQ1emdVL0VrSHVMSWoxVSFIWXxUc2tqKUw8fGJ7Z3cmNmJ6MHhXM3BpKVtqcUVDTFpqKldDUWVWIl9kJkM9VjUxVmgjdV9rYjE8KiolRD9DbmQlbmx+'@; put 'VDQkL21qYio4ZzNEdDtIR0NDT3hBUk9zJklUKzpzV15FYkZlRyN5VTBoaF5SPW00SF02YDhTOTd+ZWpbaStleXVbeTpiNnBTMSp6WGBxdTRoWS9jKWZrLF5waD57OVVyOnowOHlFfWx5dCxfWXhkRGdWNntDdntJeU5AKnZOSGd7Nj4zaDhKcHdlSip3Nk05cjpEdThxaktZNSZZX2kjYnN8c3N7'@; put 'ZHdJUjJgMiYiRmVYaFomUSFiQCxoYk59aFBbcz1ZPDNqVSJQM2JRY19xOXJNPU04YTN6SDhOYmIpPXVEaCJvSmMkIS8yV0UhMHI2SnRRX2pFdzxjfXNSQ2RobFRHVnYuKG80QGUzZWVmKmc5YndybUt6L0N8WDM7M1ZjOj5HVDZ9P3ddY2pHUjNCV1hhVTk3LmIrQ1BrOk50PihPZWEzOXxlUDRG'@; put 'V1J+ZXE7OFNTfl5DSUhPT1g4c0VALGFwU0g0SlY1aWt3ZikmYUBWIWEvRGRzLC4jT05GSjo9SmZLRGppels9KT5GOWsvek5CQHlBQkpwMUV1OF5uKHR9ODBlOjpwJkliX0N1aF8pOEB2Z1lbTUd0c0lKaT1qakxtS0lbRFkpZ0d8ViJyezwxSkV0bVJ7a30jWUdYVF1qTi5HMzl3IiYzQGdCbUJI'@; put 'clQucHg8X2NEb28waUlQP25fSXZ5X3xYNSQ6bmpwX34sclM5Z18kQGhJP3AmUT82XWJOPF5XRkc2KyFyTH0lcSRRSCNbPXM/IS8kQTJCciZMSX4lUl9kUTcyZXBuY1IoW0ZnZEJXLmpTeyQpfjpJIjVMOCF7RXBndzsjNnNbcGk/TWhdTE1jcE54O2wzXURpQ3EobW94eCRJJlV8QkooYGhiI0wq'@; put 'K1BWLF01WmJVbUEvZThLb0NGUjhOYlA1JXhLW2JtNER9UlJUcFYjUztuXVRCUDJLImw6VS9DKTpOJXZRdTZKbWJObXwpOixncn5EQlglYyk3MGZ4ezVDJGtHekJNVEB3MjlVOF9IV0ozJWY5Vmc4VyVucjdmOS9gY0JFTCl7S049YjwwUU8/dFEsbn0kNnx+TyR3aFhGTjEqPUpCUSlvV2lJaz1M'@; put 'fWBUMFM/M3UvN1JoMU5EMUBmZH5RKjM2MSxZdiZsNUApLDtGfU4wM0lqLFpaYGVudz88SjtNfCsxR340QStuNSFKQnFaYjhMKj9UZzVsPXt0ZFtJJlBbUFZfQygpP0U+OypRSFpAWDh8YX5YKTBnRHxQUXkhOV5kfmp3NDgoSn1XNDRqIyE0QGM1U2omPEhCVH45KiVjQEFyQiN9aFkjLyo6Ym57'@; put 'WF5vI3orK3xFWyxBPVckUTYhWS5bMn4wV1RaQiZ8bjR9O2Vgd3ddbE4qMmBCQXNmOXc4UDFDe2dFfj8kfntkYnVKUWp2WU1sO1NzRFh4XmM+VVY6UCRTUThfZmReKFJnRHMrYSZdaUpFX3o4diJdQ2FOWjNVViJaZlElWjVmNTRDRFA3e0JWM2hEX1JYMDRxLipeMltIPVs9Qn5pLDY2JGEhblpA'@; put 'KV18eUJBTnV4K35vMXhQbVpZeUgmIXgqYS8pRzA4WSk3UWl2SllBYSl5N1t0UlMxRjAlJU92TTROQz9QVl9ofFZ5LDApcH5vOH1CQ21BI2BITkBqLih6InkvPjRbVVojR2x9eV8iRDt5ZD1haHkzM0Q3R1JEJT8/T1RnakYjKVVwVlpPR0R6RGRtK0VrRiMhZXVoPEZgfUhOO3QkcHpfSVdJRiNR'@; put 'dEQ6Z3c/e0xYVSshYHtgW0d3aV93O2IsfWFYSTkzWGp6JWdTTlphRSF9JCRYeXlAWEdQTmQ2PVNVKWNEPndRNllpO2khRyxFc1IkPihua3FSTDhzd247cjkwfXB7TXp1NnUmQHhKNWMkTTExPWV+a1lLfGxxMClJfSNZJkhZUlUoIWZvditCPFd4KnU4YkV8RkVWdzR6MVclRG1bIjxPd1shQzBh'@; put 'JmhdLHJTZkxUU2hVPmVLcFFGcko9KiRHPXkvc3xdO1FtO2t8OCskTW1WK1V+Q3tjKD9oSypqNSJ6USRld0FDdF5YY05vVn4kRHB5eC5tRG5xYil9VXsycWdwSDo4OUByTk0+UV0uTShDTl1sVWxWaUU2MShFelptImoxeTtYOXprP2lPQnV8RDBIP2VEVzxmKlczem9UcEhVfW05dDd6L0BoRXxl'@; put 'XmxgeG1XKlA2bUNkNy9aKF5wWj45Xy5QLmEuOFdAZUlQWTxgdE0+Ino2YDpuTVFTe2opcGldUz9dbyQzbi4hNWR7L1dTbXgjUEVjVGA2Ql4mbHFYPDEsMHglNVd7Z2NdPi5aKVE5VXNqRDRERGQsZ0Q9WVFoNk5bKTF6QEhLLz5ZXyJYb0gwNikzXUJKMFU9RG0jKjg9S0MrendpZiF6Nn55fHl0'@; put 'Lm17bHBabWRSTDNySSleZ2tCel91VEYiNWttKU51W0AzZWUkTUNdKWZRYFZfN1hdZnBAIWFRbSt6N2NuZWBJTXhRZUR9QCJ6VEJtajI1X0lseFo5XStqczZpfElvImdMN051Jj0jQi9JMENhS1NRMm9qZWFeQEZeRCh0VU9GNTIpPHowbVFWO1FdVz5zRmxpaEd5JiYqLDFYTFBDeiJEeGxSdk8y'@; put 'PG1YOmBeUSk+L3Y1WVdBbCFMempPOjkpR0xyKHxpUGJhWGp8ZU52KDE4Tj4uOUZhRWg2IV5Ub2c+XTEvbVBMMEdJUSFGZSFKO3BiWWN4MFJjKE8oLzhWQjBVfjdAPjQ4MnhgeXgzaltRNFNdVU5KXX5pRnw0QU85M2o7PDAsRXY6YikpcmJWc19rQnp6VCxpU0IxNUplbCYkIWF2cGtDcXJSfk01'@; put 'JnJhTWZLZUVNfXdVaFp2LzlFRWVQLipNc3o8d006TG0yJThhdFoybD5PYTNGUjl6RzRjZGxJdTg5ezp0YilnO1Q2SiJseTpJPz5rbVNAQ0JQMUgjTz0uKVJ2KmBaZitoLHoqK1lRTTpGeCRQYVFdI1ElRDMqczlTR15oZEc5KU1JMjphX3chYi5fPm5pemBvUCFUZmw5Y1kldkVQSihqL0txPT9m'@; put 'TldHREwmN1IpVXFHNDswI2QsaU0vYnpWUS9+bEcrPipATkRleWVBS3lDWztqRml9UX1penJ0eUhiOH1YZWFSdXswIncvIjJjclVEXW51JUZjTUVFdE13O3dScV84KndCQWVaUUNOaFUlcXZMfV5aYiVjRz5VQXxYYlNpRnQiS3R0eWg7SCZSVSRPIV5DNyNNV193amBFSFBjO3BOVz0yZTh1NEsm'@; put 'UlcpS3EmN1hkXyZQaW1wOmZ1fWRkbmJ7M3lScT9rMlhDPyx8V0RtTT5ZNHsrb1dNYEtFclNYfDUqclsjM01bJFMxIUlMRGVQNFckK2dCeTVpUjJuWl0mQkh6bmwsZ091MWZoX1B5VHx9RygpN1Q7MVRYeiJCXVIjbFI1WTkyYiM5XWYoS1IwXk1ZNU14QU5mdDplSWxpXm0zPHZIJkJ1XSVwVkBk'@; put 'YEZdeiNZKGl2O0J4P1JUSSh3YEtgQiQyfn02SnRZbSRuUklTTWpGXytPPHVPcThuMXN+ZHZQVyx7IUQ5emE9PFNlOGJEQ3dDXytDZiJVUWMiIjAzdVd7WVlYQCZ5WVU+NyMkfUgzR3JQcDdXKWs/STUvQm1SanYpXz5QdmdLPDhEaURKOXZdT1FqVkpnXTdFeU51K1clQ0M6bzRRYntRMjZpME5C'@; put 'T1k+YiFyPFZiTEQ9M00oM31ySVpDJiRsMSYkVTFRL0lDSSVVSzZqPkdSZzwoIjQxUlBmaFJVd1ZqMnBqP09lKix0Jj0ocFZobERXVU0yR0F7eSgzMWVvb0x9aG05XU9Sc0VIWnolaiYmWT9xcU55dVFZZWs8WG15bVl9dGYwcFRCcjBURDJLbFJ9LHd6VVZAZTBkNXZlVWliOjMvV3BpMFl+cWkk'@; put 'YWFlcms7eDRUdkQ6M0tXSG1nNkosNz5bKFBDNCFRPU9+Ozo9aEBlVCpgKi5JQDFORVl9NFlLWjtEIXN4cUQzNjRMYkxDXjM7N0MhU2tRNzgydXFmRHtkO1tlVUkhK2d6LFRhJGZzR3JUIVVKZnJrP3xXXzp0ZjNGVnNLQEdxR118OE8zJSJteHRLYC5zSyFscXs1VywyeX5pL2lIWiVzLEBFZ0Ji'@; put 'NzFfIz1CXkl2QV8wXXN+Q1VEYz1yIVV6QGEsY2h9Ylo0RTB1ODM5JXxUPjdQaGpSL2p5N2xecEM6dEp+VWk6aXRBSlJrTmFvNlB1OEJyQ1d2QERZXVVxPHppMGFqfDM6Pl1QRl5ZP0VPVlt8V3MpZm1iWjopfF06cG0uTWRxYGEub2whTSRmMj8oZk9HODIySWBZej8yUSNuKmIqcnY6anBkImEx'@; put 'VFJ5WHJCI0VseEUjfip2U3pyaCwjNHhxelJETCN7aVExRjcke0w/P0cxclZ5Zn5LZTxhTF0pMD43LGdvc2NyRl0uZF5ebkpGWzZLTXI2LjIkWH5NM1dURG9STCMxTSNfWT1vaWMoak0/aGYqIn5JRzRydFUqM1BTSUh2cUhVVEhWcip7WTJ4SCg5akVgb0F4XyspQStbYiNYSjNGUDIqSndzRDs6'@; put 'V35iN25eY3coQW44Y3czP0VrWjdIbyhPMGxFX1ZgZStPL2FodTkpKFJrOmJPIlRGc0M+QWRNPyZsQGooT08xaDk9Q2x5Zyg6YVBlfFhdYF07T1cvJWROKkRdZi8pSDlQU3svKjs1azRiQVEsJGUqI3RCU2pPelUiTExkeF5zTGwhaklnZkNXJClQYXpWUX0oWFtlaSpdTlJeemoiMD9hajVINkZL'@; put 'UDdwR0k0JXFuRmJDYiRUSn1JI0R9PCxoWUhQNjgxZzIhVFZwQzBeYGlCQDtmLGhiazkuSyhJflh6W1JFP2VwUDFFPXUiPFQrVyE4TG57diRkZTdJQlEoUDE8azdgXV1PUWZQOE9AKE8/amNNcF1tPm1IXlU2cm9fbTVASlJXIikrQyZfUW9oV1ZKLiVuPl12K3BoWDc/T1JEfDpKRTxdSzJiNmFI'@; put 'fjZwNEsrKEVKI10uJUFRfjd+M0Y1RnFAITB5dDxQQ0RNYDVLYUtWcDRSY052NVp4I3JpSno7ST9HNT9RY2N8RE5WOl9sXmooSkhSe2ZuaysrallaaSZ+fEJeN10kYmQxL2xLVyZ8fXJYXVpBZlZ3bW41S1NATm9Ge0YkJGpTQiM3I19uUXhgOThgcmBkM3codkZRM2RuXzFYbndEI0QoVD8+RGxS'@; put 'JmYmbkJJJkImWkQoLnZeLGBwOUIxQ19Ia0lSaWQ+Qj9xM0MwSjZIZGA0MUcoTS5pK0VvPz8rWylGN0htOShbRkpQWkVeQ3FranNTZEIjTHluSDY2WmBlOEZ9SC9RO3pBSV0xZnNsNVVVWlVvYWsublAhWVtMZGElZHBJcV4kJFEsR19iTlBqIn4vb1BCbDE0OmU8a0toYkA7KWIhTi8hSWtWLyl5'@; put 'YXc5PFdkTG86YTowMz5KLm5rUXlmUzIyY2A6Mj97STRPRHY8ZGp+UzlBaF9Oa1dEJUU7cjVWbGFMRDFqMVV0Mm1felV6PFBJLj0hfSUuKkt6MT5DOV42a0c+U3o4dlpqeyNHfUlycSQzcX1nTXg+ayQwJDZXTD5bJitRRypXUVo4JXZNRjp7LmNoSCtLR3g2VXk+aT0qO3kzW0o+aGlTZSEoKXV3'@; put 'LD14Jn1GXmNWYFIoWztpQXRMWXVSJHosS35aVnBfYHwhXm1GaH5GSz1uIiIkOmdeK0M6O3BmTmNVcmkhRS49VFc1RVBGd3kyRm40bWg4dlVsVU4pPEhFRl1pJjNYLiZoV0g9ejJfZjYmPUleMn1jcjFfJVZaWzd7PU0yfClsSXxYaX5aYyNoM3lReXIiQGxmVks5UG94e0liWUh5dT5xSSEqQS4p'@; put 'SE8hdXwudX5MMT42TXc6N1UyQCp7VkckXSIuPWRHZTU3Y1A0Im9END5sQn1GU2UjZ1BTMnddWTtDL3tjfGVUWUtqRCY1dGM8OmphTHhHenJgL0U2Nk1SRjY1ajE5ey89OnxjSXRzK1pvNGEkQmQ8aVBKI01pIntKbFk2Vil6UGteJVcvK0cpWj1pRFYwSk0hajtJPWNpLjshd311RkAqayIwcXB1'@; put 'eG5kYWhbLGRvTV42MSwybSoyI3M4VGRzcm48V0AuL3tWM1lgcCZiRkkzMjx8RHQzayI2bFYqUyhWVUB0YmdufUpQKm9eWUolcFVOWGghPHo0U1NHe0NOVTE+JUg9aTdlKVNYLnxjPVA/S3NOJCQoS3okVmtTPShDfHlKZ0l9RzFxKD4wcmRgRltzM2p2dV1SOEFlKCIrTVRaUlpaQ04ud3JOM0V2'@; put 'ZlM5MkBYbiJxIyJzdUJVcXJsfGNFfHdzT2BXaj8kRVN0YW1pa2x2NG4uTkFgNnFbUDc+RWxTJWBLdiZueS4pI2UjXT4mfj8/ZnBldDAmR3MrOHkpLkxQW3RGJj8/a0Q9QChFMk1YdzExRnFYKEpfaVZjNz82QXRuS2ZRL1tqWEJpTW5TI0N3PDVRRkhrSEV5YmJAbFU7TntIUSsjWTspZj8sLEdI'@; put 'VSxkJSM4L1JMRVYrYnxhW1tNfn06diZWO3dLUmpGVGAwfDlZNXtkQG5QSmNlMXlVTWBNYkViVUpwRCVgIXhdUXJdS1J9Qn5AMnM9WmB0KT9tPyFXcytbSTpWfDBMViMuOHolWkVWODpdI1lRPUJVV2F+R3heNEleb1cjNEA+bnF8M2ZWel9hLEg6V1J4TEV3S2c5UzpoVXYkTl96cDJhakRaTVY1'@; put 'bHAiRkMyTG4peTFxO3UxMDRzMyFbV3VoLlI/T3lBLyNaPSlUeXlbS0VXYD1GKlMueGxSWEl5WkVETj9YazR1UDAlI3EvcEM+KCxNaXgyLEllTFllPm87a2ZdXWRPeGtQPnYlbCZKWio/K30jVERYLDMrRytOdlBAJH5rS3xkVjNtPnR9VzVqMVs/OGM7UiNRbjlbNXI5MH5iQ1E0JDlHbnxIQz8k'@; put 'dnYvQnlHUHw9MWRtXyohYHYuc0goflhgWU9uPTRzZmEpQzF3dCN3PV9XbH1sTlV8Pm91LFMifk4uPiNdSEhOX104Rn4mYFdYNG5mZTt4YkspUnMrbWdALCNGKDFpOWt0ZkgyUWl8JHduIjFRcDVvXz1DKFRXOjxOTEdDbzcqcjhiNiJeb3BgaG91PzxXK3U8WFU4IUNUXXdZT3BZMlZKV0cwald6'@; put 'aVM2eGNxZCpSY3UsWnk3PkhPNy5EPnBQbWNmWE9sMi9QO3UxK0QmX3dYbGZnWnxNKmdYTW5icDxbMyhoZDZYVGU9aVR8Qi54Qj03L2YvVmlKRmExSVVoTDc0LGk6JjNIOjYoSnh8ckE/ZHJ2KWovPmMlPClxWFR2T0lnaUZwbzNaRF13XWEjMyxxTTFuJlBiYSZyLCFSOXtYLkJnYSQ9WXQ9Qjxz'@; put 'U0NlUUF5Z0YvODJjMnVKKTZWT1I8Y1BjIjNdd2UudCV5Q3p4UUZsWXZPO2NtPWZdYFtmXTVzSHJyJmU2Sk9AWSw/KGVUU0ZmTTdlSHpZJVBtKDI0WzIxfkR2OmVYPl5MYlE2JUFzeDttQkpWcil+USpJPCVOaUFaayxCai9DOX1ycC4kU0grKmVpclhEQlFvW1lHRDRCJH1IR0ZEO3t2TiNmYU43'@; put 'WzFNQzYhOUpIayZZUipgN3U9MUgvLn0oOnwyIX19WkFzWC4+d1M4N0NvYiRebj9bJVple2h+JGB9b2B3bS9PYmooOVl0JkJYXXdKaytLdy44V09YWjJUST9XbU5MUVNSPVNxRDw+WjdsNzpPakkyTDEzcjZJYjddSmw1eCE6bVhkayxraWRSaHw4MW9OQWE/PldMQHI9P0F+Ql1NKkF5aUw7djJj'@; put 'MV9jZGkxI3FEJSh0RHM8VFRRNW5SIkYlS0x9RGl+UmlFR30+Xzp5Lz82Unc1VH1HMkV2bV16SChVP0dXTWpRQ1YuJit6SkxKQz02dSMrJWo+TndEJGhtdXx5Jk99ZW9Tb29KOG90Lm0rUjB4UFdMZWowfDNVMmA5Sj5BLnlaQk4iQFM9M10xYmtWUj59cmYkRmRzaEtUZjx2dzgiKCk0a1EuTnFa'@; put 'VStCbkU9X2FhcEZLaFpoK2IlWklfUHVONDpYd194XzQkd0ZdRls4IkVxRFZOL1F5OiJYQT44eFs5P3p4ZGpnNyw9YjR2JFI0R09xJTREcGZ1YTtTcWczOjckY3kxOD0zX0plWVZaNX5bOjVafmNDb29hOnN5NW9APkhbT1Y/PmRdUHhqTV17VWhtRm1iMU97UyM3MWJhWHdWQHxTP3kwZVQ3Z1VL'@; put 'eTxELkd5M3gwKDImQVprJn1oeGB6PCJsMXcoYy9+Nz9pR2xGYGA8Mi8xTyhPNUxYI0dMcmZMVCl+MnRBRUZAbz1yPU9NWSpGKHt8W0ZUJFouYjVuSCFBSDxlWnxUMkt6QVQ3NDAoW04rMzx3ZXd6aUgjcnlbUCpnc1ErNlpGfDI8TCZpQSJFUEs6N0c6MEdAdlsjYHghandKRTs6ZnIsOmMhWmZe'@; put 'L0h2amZdOS8mNDRMT3Y3PVpRXzptM25nLFhRayFeOn1fZCZbdXBTPHB8eFlPe1kzb2U3P3Z7UUM5bTZOdEF1MlI1Qz91WVd5SVsjPF1sWnJIUDJpTF9ubFJbbUE1K3BmUHVXLzdWd0NTWzUoMD42TnpiYVZgXj1YZVVLakZNYyElN1U2WU5xYyQpc0tmVjtKW0xONGczfWZqOHxZbnwlVDJsZWFo'@; put 'YiwvYjU+PW91OEphaFhEaz0ybUx3czNOKUIyJFhEPS5FUStuKGt5TTMpKyk+OCl4S0chQEZHezwmXmFvQlF2eFBtXj4qbDslTlcmKkorLmVCbmtlKDkpVnhfZG83YEtDKWw1NmFPXXZPMGY7Nkl4PU1PWEJUMUQuQHowajs9LjVYRm1mQm8zTipkOFZwRUt4VCVPO1N3a3JSaVV9O3xEW1s1YlMr'@; put 'UW5JRCN+eWpDQS86M3BRaj1dKWF6c0dfQyM5Ky4pW0RrVll7aTlZbzd2IU1SMnA5WXUhMDc4MlB5KXU0Z1lzdWJiVFg1ejs/QWp1XV9LWk0rd0NmY1lAX052VUVxbnRjKXRbSUJqJEROPH14Z0U5NSNtfm5kNVVsPmcoISt8W2Y4JWNpWTZnfDVSVH1icCN+VT9zYVJWciF+UWlNSzIsamNRblRu'@; put 'Yz97O3xULElvPEV5VGQiaVczWkZKUnFueFdwRm0lQ1E9XiJ5XWlnYXJmPlV3Q0BdPmA7Sj9qMzEzM31GTlpEP1BqI00/dyxaNTNUL0FRZTFrQGBHJH4wWVJBLzk9NWIjOGw5fVgyMjlvW1prKjxuMzxUVS5zcjFDIzVLaGhYSlJ+P0ZCNiVqT0l5PFBjTW08fShRWSowWEx1dm8lT3lYW2MiYEJP'@; put 'NjludU4kMWJ7NjY9fEA7WXE9UiMzMztPUkZdbiFaUzJYc3JvTj8/aEhNJWNQK0hGc1dmPyxIfmApRjkrWE07NTw3ZV1OeUhUSEl5Y2ZYdi5EaHVFQGx9YSNwaSg3Wm49ViF+czlNKHczRnYsLz1yWUBpTGgmQntITmElWElPUXArU2hGXkpXfCYvb2dTTlpMMDJQRE4yVzRIW2lhMkhYQiw3Q3JV'@; put 'Q3lYcVdWZzgvKVtRRkI6eV9YL0FpIjxCIkJYbFlHPEh1bSEsUVNbQyFlMlN8fSV0OC8zZk0hPXpfIT98dyxTQ0NTJCMuL0pOKk9MUDxNbkJWTXJ7X108Ozg5Y2g1JjkmVnJye19dPDs4OWNoNSZWcnJ7X108Ozg5Y2g1JlZycns4e19dPDs4OWNoNSZWcnJ7X108Ozg5Y2g1JlZycntfXTw7ODlj'@; put 'aDUmVnJye19dPDs4OWNoNSZWcnJ7X108Ozg5Y2hrW1pAZT49cWFZMD1rNjd2N3EuXiEmW3B2aHtVdWQjSi4razdKTld6YXJBZCJaLnZZPEYmS29RX0BEdiFnMVZAZT57SEJqU24meWFyVF8sJlJkeV15clRfNGo3R2w+YF0sJkt8ZFRCaDx9az55clRfLCZLfGs+eXJUXywmS3xrPnlyVF8sJl0/'@; put 'UV5PfDg2ND41MnNPenJUXzIqVF8sJkt8az5WU1U9aXN0KzcmbWp6MUx8RSY6Zk5XRUd3O19eJnp9VntyW3wqYHVbQS8iM31We3JbfCpgdVs9cS51ZiRFJFApb2hMIU4rVVohenx8KmB1W0EvIjN9VntyW3wqYHVbQS8iM31We3JbfCpgdVtBLyIzfVZ7clt8KmB1W0EvIjN9VntyW3wqYHVbQS8i'@; put 'M31We3JbfCpgdVtBLyIzfVZ7clt8KmB1W0EvIjN9VntyW3wqYHVbQS8iM31We3JbfCpgdVtBLyIzfVZ7clt8KmB1W0EvIjN9VntyW3wqYHVbV25YQEs6WytnSFZvM0BLJSV7ej1Gcy5eQWMsbUpOMDVtMF9ZTl5BYSJOcj50K109aVBDK0ZMQHkuJXFmQ3lMVylMMHBxdkVVdX1vZ04mdCtdPXQ+'@; put 'KzNNe3s2d1ZYXUBiR3JzOiszTXt7NndWWF1AYj5iNF9FMSpwWnFvOGVzRGBHYCtaYDNNe3s2d1ZYXUBiR3JzOiszTXt7NndWWF1AYkdyczorM017ezZ3VlhdQGJHcnM6KzNNe3s2d1ZYXUBiR3JzOiszTXt7NndWWF1AYkdyczorM017ezZ3VlhdQGJHcnM6KzNNe3s2d1ZYXUBiR3JzOiszTXt7'@; put 'NndWWF1AYnpVREtDckwlUTUuXmUmW3BmaHtVKlFzMylPPUVsQCNkeno1K09+YGN1enM6dCtPfiNlQ3lKY3JYTl5TLEtvLnNgSEJqeDpuTDF7IUwxe3dWUF1fNCpCTE97V3dEV2NbdEZIczQqQkxPe1d3RFdjW3Q8cS51ZiRFJFApb2hLUk95cHlTYUJETE97V3dEV2NbdEZIczQqQkxPe1d3RFdj'@; put 'W3RGSHM0KkJMT3tXd0RXY1t0RkhzNCpCTE97V3dEV2NbdEZIczQqQkxPe1d3RFdjW3RGSHM0KkJeR3Yhb2t7VVQyKGI3YUA2ZU5vZCF6Vl15em5jLl5nWUslREteNC9Cck9GfkNLXjRfdVk8LHVWQFJGJFBDK1VPKUwwcDhFSm8zdktvM3ZGSGV2Y0VYMmV7ZFI7TzJjJXc3ZFI1bEhjN2dZO08y'@; put 'YyV3N2RSNWxIIWBHYSpUKndRPihxRXFJPHoyKER5fEBDa1pVb1JFOW1leDA9JEBXZ1NpRj8mOS9USStWK0pOZXg3ZFI1bEhjN2dZO08yYyV3N2RSNWxIYzdnWTtPMmMldzdkUjVQcEdVRXtVb2ZZMD03cS5eISZbcHZoe1V1ZCNKLitrN0pOV3phcls1RE5jN355YXJsOUNLNDV7dVk8bjBWQDpL'@; put 'QFBDK2w3ZDxCemdsJnlhciVwJXAlcFhWISk4RTlTR3lnbDd8VlpGVVRaO089RV4kfm19PXdMekw/K1luSE1JPEdgeVJIVCZgcnpySD1iWXkpM3BUJDBHMSo2e2J1QHZxSWhDKGF3VilmR3pnYCFUaV5aS1I4JC9fRD8lUXpMVjFyR2k4JilZWkspeysyMXZMfTU6JEV6JlJJQHVISGB5Ujo2Tyxg'@; put 'Y25HcCl6JTdiQysqMy5eLmt7VTFRczNmMShiI2FANlJhJVhLJVB7cGhZVnBbWDE3ZFI1ej1DeU9kS31GVTRhPER2ITZEcCtbZ2xmQ3lPZHRYTl5mSlNAb1FranoxNmFLJSNHKk9EPSlqPT1DJmBhWSw3ZTNxNUsoW1ooIUAvZEBkb01NUTpIVzRfXUV5UkAyISJeZGsoWzV0W05IS0NvKV9lMW5V'@; put 'bEw5P3d2QUs1ZGxvOldySnRdNXRwTkkrX1hTOHRDZTxGb11vOlcmOjoxblVgNyx3NzlTb3ssb3oxTCZWeDExTDNHbjBhN0s2aGk7KTE0NyVgSzs6NG18Nnd7M0xqOVJVcl1WKWxRMEheOlRAWjlXe35GOjtpdnFdVVhsZy59PWNIM1h4fVc4Nn5pJGJMckchTGd6VnlpazdaUHQpek9tJTRtYFBf'@; put 'W2NPL1M2Ymx3KTsudWpkeFElfnl4VkhCampfWEAxfiFIQmo0RnArT34mUEMrVzRAeWJ9JlgrWWpdWEAwc2dQQytwUChMMXs2akZVN2h9RHYhNGwmeWJ9P3lEXjdVRU5NTEJqZTs/eSxVTSFDS3ghfXVZPFQ2VkBTeTxMQ3lET0JqbGU+eWFyXjVDS1cjW1hOXiElS29fLipIQmpsZUB5YXJ4IyZA'@; put 'JU0oVW1rVjhjKSUsViNWTmMhIWo0ZnRYTl5tSlNAOzNGUUtzRV5eMHkjbTo0ZiwlOWJDKyI4KlpQcWdQQyt+UChMMHA4aiQsNig7Z21mQ3l9ZnRYTl5uSlNAcDlXOWEzWkpYUkoleyRje1A8dSpoOEdsY1BtZjFdeDtCd31mWU16OVkqZTZHOUp+MHVaOTI5JXF9Zjw/ZG5aOUwhXW43XXRYdU0s'@; put 'JWsyWFA+YXJgeDsrKCI4T35Nb0RMSU9DK2BMa1hOXiJMVkBHV1NXQytgTHFYTl4pdFZAR1dmZkN5QFgidVk8V2pJJGVANFJpK05zUyZrezB8ezB6JX5DQmpHenNtVllxe0xJeXM/RGhleXNjTXo5Zkt8ZSNiSmhhWEpoNUdiSS9yQERaV01zTUR5Z1VQNVdFR0UxaSZ+QlE8X2hJNV5HVWZHdzBZ'@; put 'eXtzMWkmfVN1aWksUHh6UExnVGBBR3E7YWp5PkNJcSlOanlJej1oPXcuQFB8ZlReQkQ1Z0tYbjlZNWFpdltwO2NhekJ4Ljc+PCFIVjZvXzt4TW9gZiVicFtuLEMsSCMubFEwSGUlekIvJHpCLyR6Qi8kekIvJDB7TH52OTEmd2gkR107Yj57OWBdM1FLczddV31zUE9hcnBde0NJKmtmYS49cXBw'@; put 'aEJNdHIsKz0hSyYpJjB7aEt4aCtVXXlEXnpYLj5PRlhOU31VfHhnYVo0MHhNKSVLSXkjZXt3LzU7eXNETVozY1c9UChxfURaV09NZXo4amFaeXskWmdXTWcwP0c5ejgrZkhmIkF6STR1VHFuLDBDMSp+WHJnRmhWOFlRU002IXhNRmgsaVd9X3kyUGIoNEw+TSZIfTtNWilNTWd+QU93YTBRRTZX'@; put 'THN2YWIoaTxaenxJMWhZdEBEcTtCd0VeQ2c9UFtne2lteiorbEAlIUwhd3RFYitNYjNgNy8yKGJBeyEwWVs/TnJkeSpWc3tpRDAkU3wrWFl6ZTxEezVwYl5vZ1dbNDsoWiV4N1p7RUhfQzl0WHB8Y2FCZDt6K1VDPFdWNkdlLihLLEVkaismRGtKYk06MyFFKDFPcz5FRX5yZGkkQF57YiZyNzYw'@; put 'JUJEQj5OYD1sWjVPK2Q8UzpDYy9NJkVydyg3OipOKmxtIjdDcWJWTz0jOSt4V102VGg8MTY9Iz9kTihyZEQmODNRPnh3KTdqYmdmYE9fPUw9M2ltTUU/QTh+cF1iOiVENENVfmtFU3hGTl5qNkg7RVErQ1csUz1KKV1LdV1TKV9MLkZWTHhSbHJARER2P3h3WEAzYkR9Mi9OO3owaVpwP11GOTRt'@; put 'akNXLCV4SHhqbz1IZzs0bnx5PiFuanU8QWA9cklFQFs8RyQlVDZqYml4bz1haWhvPDZrOFM9YDhvNWk5KyNFWWxtcDkzYiZiZWRablpvNiRSbzU1YjdjM31tLnVHaFQ/bT1LZGQkVFkmSn5ITSs9WGJiVV0vZ0A0KFhzdkJvM2U3T1Q7cjNHOWpSVURERTk2dmlaUV0kO2xJdng+WURHKGsvTUVG'@; put 'SVNOU25+dSxTTStrLzVjJEkjTllKaC9kfXE7Rig8TWloaWhhcTVfTUUiKk1SZWdLRSw2elk+bEp3QEBFZXdWSTN5ZWZMViVDO0Bie1s+dypwWzxeW2dhYTN6JUM7cCRCZSsxITpod1tvRDhkOi5dMUg5UGNUNTJeeEwmY0ttISllPFg+RTdKPCo5OSw9PDdvVG84dj5CZWtCKixaOUZMUTtPTjgl'@; put 'aWo3NnUscSlne2FjJmpsMk9CdjIubU9kLkRMUUkrXzFgNVhZPStrI1dzKDJWcGFefHBsKSVKYWNVWismb2FuZl1ZN19aVkVtM101XWpSIjxnS2pwY3BeZ01GczkwXVVHIlUmRzRwYV5xJDVeJCZBPiJnMjlLZ3FYYyEoOzw9KmVnb284IW55ZW92L1NWcjNxQ0RLVGhjd3ByKS9TTEBebk1RNF9U'@; put 'ZngmPkVuRWA3ZGJwdXoyJklAWkM7YWQzXUZeWE5GO34vZXBlcCFffV1lc3U9T2tDKENxL3BwbTxEY3BCeWtKP29NO3RyflNicEBEZ0pnP0hpbThiZ0cxYEt7SHk9cCgiZzVIMGVke2F3JjlGO1Q5U3UxezssYllMaT1lel04XXkwITlYV206LnYpZT8hMCFdXkBPfntAT3FUZjt4YyNdJW4rZTk2'@; put 'XXVePENzeT0jZWBnRDhXSURtLyFhbEhRODFURns9PGU9SzdHcU5aSiF5dm5CO3dmOVBMaitleCkkOXBiWEN0S0pQJmU8RVtdRVZIamZuVDpRKCxhRjhPZ0AqYWJOJk88Q3ZlZENgWHBWbVgmczk0TkojKDtZMSZ4O0tDbj5lbiloKG05Rmd5fnF7dyM5JDNwVV5lZz5sRHJmSFJVeVUlcCNdLnUu'@; put 'ZXMqOGFYcFkpa2ZmNnFtNyshMUREO2YhVVhSeyFbWFhCLiYlc1kxMmxUMThUS2wie1UqflV5aWVIWD1fdSI3ZWRTKH5AJklZfjAyOz1TdUAlbS5fQ3lIQiw5N14lcSQ3QFlnOFQxaSpTLGE3VG9wJWBAY2NUPENxR3VRW08zbiwkckNmLnk8N18mOVNlOVRQVX5mMT08dTJsIVZsSmhAVW5WOjg+'@; put 'WDlBKXRUZEIoNjZeVmZvZG9iP2FDM3QjcUpfW2R8MDt6Mm9tVyxCQDc+Pj04Pm55SHR4PmdkO2l6bTR7ZW4paWdfVishPj56Xj1oUEZ7XzJDVS5uRygrJTwmLm4qfWd8Pk9iOm8+TVRIJihWOUQ1NUxUJG4mL14yR0ttN0hWfTpIQGlUX0liSl9bUmYocDkkZzBnUFVnaC8sXTokeHN5YmssdCRC'@; put 'OVc/NzBETDJqMj0xam4pcTwlZytaPzBHUUJiTl56WmUmM3BRKD49Vz13bjl9I3FoRThKcillKDoldCQ9ZDgwMHJNfSR8RD9GZkozcSRaezpmVH1nRyhaPWVWK3ksMkQwTmJzUTx4eTk5a2c3NjBEcilOV1piQXB8IWJndj1BPkRlWSVmdzpnLylNIVc/azJvK2FRXSRNZWtKTiRLKGJnZ2ZMVG5q'@; put 'TDppOGBVd2hzb2loV35HbzE/SilOaW5Xcm1SRXsvVTtQcUtkUipTKEwkPUgxak1xRT8vdWEoNGopej94JFU0YyxUWHkhNyV4ITdocHJDfDR6JUJyRyNLPS5YbnY6QHUwZSZ6MXJwUypdZzU6fmclYSZefDUrdmBwIi9AdlE6YSYoWkdac0wxX1hAXVpdUC9TZDtAWEQlc313Z2BTfHsiKm9pbU06'@; put 'bDFGRShyY0VeUmJNeFRZc3I8RXtUI245fXN2WyYwRF1eOylPKmxSKG08KlU5Q3FpZSlbbyV0K3EkdEY3NmhzMXBrfnZeekZkJGZzcnxMVzFVSzUqOzlHQShBXUtNOGJdT1g4ell4QD0qazhdTmNxXzpeJHhzPFZLKkFIUUZRRlFGUUZRRmZZblBUV0pzdVZjUDZeWCokUE8qOm5FXldZMV5tZzty'@; put 'RD1zWUMmO15BaGpwe0c5Nl5iNjIqSENzKjZQZ1klOys8SzVpeyNrPD5sNDhKO0w9aEp8R3M5ZGRSdyk7NW5MTmQhVn0oMSRdRntFJF4uK0koKUUkfXBmN2k/ZjxQXTZDOiR0Yk1WQzlXP0htXiFyOW1mUElVMXE7WVpQbEh7fm5kT2dFeTJhOCxzPTlnLHtnOU0lUDZzMGo4MGZibmYyaShpQnpw'@; put 'NjdjLFQpOyxNXltTUX5qfW09IWVwT3p2O0RtLD1BPmF3WSgpUzMqIzcuezdRdGJdKnpoVyZTRi9pNE1HP29hNjJfdSFsMF5bTGFoSDNjT0RzOXtBfGpJSW5dOkkpZE8/RXBQSCg8K0Q4ImZiOyJIdnt0WVEocHw5UE16WThgVVg4UmdfO15aVjssXXZwNXsrOTs5P2dbKz5EdCtyKVM5ZGRJc2hF'@; put 'LDkzPm5ZUGRvMlUsZSo5ZChSVDp4OShSU2RLKVlfcU47RCwkeTl5RF4hJF5gXiYqKHh2KV91TzJ0JGZ6Y2J2MnQkPj07e2o+NWo9I3g+OnV4Pn5OQCVTUVFDIThxSnVqPz1nUlo4aGRCejk2ZH1zaj89LGJDPHdma1hUXSJ6cU5jVjZSdGtkQ14hMzNeTzMsY20+RWRtS1FGZW4pMTJKRDVtKyU0'@; put 'IXMsPzN4X111LF5AZnklRFl4UDtnSDhvNWRUN3g8M3IyKCoyPHZdaWMyeyg7KUxYIyR4RHxXI1c/bSg6UEFoIjJNK288SnVVOTYhYSk/aVdWUXE/KiEjbDtJQCEuc3FeO21KSFlOIzRLcEAleHA2JGxFbzs4UCtwa1dWKFZ7P1ArPVMsMTNmQ3pUNTFmS1gmeipVIlRPVjNmdGtwU2ZULD17dVQ9'@; put 'PipKUmhRai5aYig2U24oRComZDgsSkAqV3o4cihnem1kfDo2d204YikvSEtsT1t4czwoSWB1K2JqXTRLSWQxc24pMSxyOUFgMnt+X3J8NEtsJGp5Ym8memlkRCY3fG5OY0Z6PFhuc3JGM0czVGw2JUt+NyVjZkcxVmpWZyZ9Rmo5MmFBInRCeE52VURsT309PVIveyQyQl43bGdKeClIPXo+a20h'@; put 'JTwmRn1kYm8sS3UiNzkySlR+bTBOJU0ib3tqQyhYOX5wdmVtUUU/dGxHI1NtZXEvbTZQOV5JSygpNXY0S0Q4Xyp7LGYmfG01ZVluWT10fSg+P042cmY+UE5wYnlCRnZHMTheYD9zOTE+KHgmRD1vQCp4PnkwZCQubChyY31QOXM5a3BfSn5QRzxfU0ojektKOG4lYV4hSDM9ZCg0Pnd8PWdUZFtw'@; put 'VW43R2lqTSgpd0ZfQCtFZUY9JEh0cnBRPWROXkU+Zns1aT5qamFwbVNII1ZWNzc+cD4pTHByYmQ2QE8hUFVLOFA5UmVkeiZKKCl0WFB+bVFgUzFyK100Kzd4JjNdJj9dcGJoRTgyRV49ZyM3X19kPkE+UGFMdD49WypMIUchWTU4JFVKdyRTdjheSyoxNEIzZDdIbWBtQmcqMlhUNWN2OzptWHRg'@; put 'UmEuQWVUQ31kNXU2LFUkXz9La1o/I3pbZ2kmS3AuJVc/RSY1dihlZlRyXSR5NV94RCw0Q3FwZ1YkQXhQb3ZZbih7Py9UVz1fU0Z2bGdYJkg8Q1JeJUhOO1YwPkkzP1szcDI5bnkoJSF8YzBeMlJ2WXhTanApUV9DVWFScihVXUtdfTorPVUkc30sTSV0MyslNmZ+UGE6Mn11NixBXyE3d15bZWB2'@; put 'YHdnSlMoIXh4PiooPSohN2lkXSYheGZ+d25hXkc7PD9GPlp9KiZ1bDYlSjxyIVB5TVZqfll+TStCcU9xKD5BVklLIWpGX193b2FgYSU2KmVxKSRQTnF9LG5wS0JgITomTHp9bEV9QCo5figxIjI/OS97P2djXyklKDlnX1ZpWj56amckMyNYUE9xQ1JqR1RpYlB7P0lLP0kmN0cxdzl7dSt4JmJW'@; put 'ZHdKcTNtSWpoZi5tSTZzIVRFISg+WypzKFM9dFlgc1NIaV9oUTM/W0tSVy90bkQpWypqY10yNGxIdCsrUyhgaWV6VExdSyo4TzxOLD9ZP0AhRGV2QExGczEuXU9fVDpQci50aSsma3ptMCYwZEA8MHxuXldxQFZGYmUsUSZsU1tHeV9wLHkwMDlMOmY6eGpmcWRPUztjPyNxZnNjSHw5KzJURy9m'@; put 'T3l3bEcpIXg6N2R7OXI0OGArZkpHVkNbTnYzVShdaTp3MyYmSyxsaUtnSF0uKW5tQCNUUS5Ue20xbml3dGZZJXk+Vis1eDh2KyNJM05fcWtMOTxON3o0dWgyL2owTiZOPUdMZT9ZOnA4VjV1NnJoL1dKOzo6NlsreCFeJSk/Ik1bYjFZXVo+N1dKPHo/TVVEfU5WXUx7MWJXMF0ydXFAJT0jdXFu'@; put 'RWA3RVNCVS9VdDsoK296ITJrS0Q0e1pdJSlOJk5dMk9fWCpaPkI0ZCkzWmBaMm0jT2UzPFlWRF5Ne3lWaSQ3dVojYmQpUWElXnglTVVSRVd5dzlvPGE1S3tYeV4hZ0dAbD0hZXs7WmQpNHw5SG41TGF8eCNdWjtWcDxaZCllZG1KdTchNyV4XmEhKUxRJmUqNW1RJio1Xy41ejRGOktwInQkKjs5'@; put 'NlQrWmQpfmsvNlA/MmF7YzYuXl5QKlRtO05KcCFxJnAyOVIyO3V1bCRuWk4zZT1GczNsPWt2KyNbTWgkKyVDQDIxYDVQP0pqfWNQKituI3VRIVhmRztSKT1pYnpbNVA/Ziw6aih4RFZDaHh6Pk1OK0xhb0deJUZsMml4el9VfDA3Oit6OUphOGZ7QDZ4UE1oZSorWlFhU1EiMHMmKV0ib3cmO2Eo'@; put 'VT97V3MpJVR1R3hFcUlzSDk0bSh1TnlmaTpYKzFkOVk1UEZacW1iUjhueVo/VFpWXl00WnB4PF4lMjBHaiFkR2I2am5DNmhiXzAjNj1WM0p4azpMazZeelM0cHEvZGtHYzJqcFE0NTxmPyV8VHZdKWciMnUwR2p3M0JIMC9aOiRlX209TjMjcTxBZWRPTW9ENGVfcWxrNHVLVWw1Nk5dT205N2Fp'@; put 'IWwsQFtKJilEZUphWysvJEx7L2ZSPnx1Wj9PcktnYnxuVE1XP0osbDw8cWdFUH57aX0hT248UChgNWZwUU5mLHEwWjY5NnIlYikqTiIoLG1XRk07V2deJTEpMkRvPWxmOE9+cG1tL1U7JW5nRzlwcDVddWYoS2E4dWtFJjkueDs/VGxNTztpOCo3bGV7YVslel1VWnVsb3BMfH5kez93NiZIR1FE'@; put 'Jl4yRXkodUJXantyKVk2W0sqQFNSZks9VFgrOCV0UWxiO1tqXmtGSEBULltQTiZsJDdASzVELzRkWzYmSEdRI25VbERPcmN+TWlvfHh2bm1NaWt1a1JlUixJfDZxMHB7RSlwLm5ddiFuQzt9dUJlRD5WNyVQcTJoPFswMm5wJTxnQ2koZUB7Q3BXc0RGT15pOmdLYkpfSUg/KDYsOGhkPzxqOmh0'@; put 'XT0kdi8hbEdpP3FifSptPG8/ckNLZjo6VD9dME9xR15DcS8qXVJjaGI4O29fRDQqc0tJPm5hRjgoZV8rYmZXZzwpR1AmZUhgPHImMi8pVFlUZCR2PjtZIWw7Z1BuP1F8Z1A9MT4pWyEyTzMjJDQwMl91LEB6Kz0qSj5UPSlMPylbIW81ZXw4cipKdVEuJVJ2RDhVKllfeTkuKzg2cEZLRCMwKTpt'@; put 'bU9JYlI8MCVVWyVraC5dcys0Qy8hR14vanR1V049RyhhdSQoeDhSMj0+SVYhKEk6YzJ7fSRVcnA5MyMybE8mfEtoUDskNHBjXzZ2IX4rSyF9P19iP2I8T3ZsdTNJaV88KWhkJHYoNjNLXzIqSFRSS3s8KXN5IXJmUGNRfWQ5Tyk3amVKUER+OFVKPDhiZTt8e0pkakVWZ21jNUtGYDhVfk1+e2lS'@; put 'YDdMbHssd1BlOyZWbVFEOGc8PiosWCkrPj1QezldRXs4VWYqKFYhLmYhMWI3OGYwY0sjKGU7Xk85YjEhJVhiYkQ6fURRRj0hKXhBO2k4UTo4UEI+YzMlUG52TGtAYlQrZEsuRnM5VD0oZyx1Wl0sK3VoXXs5XThdYX0sem95NjV0VSE9NmMiL3FsRCppODtUcEVFRiZeOWNvdlpwQzNmcGokX3VC'@; put 'S2J6NV9IZV5LKlMwIUc8Z1BNQFk/XUl1UUxALFNIJj9WQEVvX0V8Y3FxfF91OT5ERUMoMF17SXVLKClFJmpmKVtPX245aFBQX097R25WOmVvfXBlIU4+WDlePU4+YSlrYHV8RHEjMHN6dH1IYF4vYS86bWBfSF97S2RPRHMqQFlnRl4hSTJqU0haYmZ7alAhcW9mcHtqOnZdXUQrJTxWSD04bWRI'@; put 'PipnOFEhdX1fO3B2IXJiVHdueUosSXxubH0ybXR8PiFGZE47Km1XVmZwOX1XPHA4NzY3QDBeUmJbJT4wOylhPF0lbXMieyFOJFNLc1VJdVEmKW5HeT1KTHkza3kyZWZWeHxnSHR8TkBvZDF5YCF6Pm85ai9vLCw9QUAhT1c/QitVP11LTj5BQG9RV2lTO3lTeWlgUyMpUWxjViVQbnZhZl4lL01N'@; put 'K0UmZyw7TkpZKStrbTdHcEB6Vk0rY3B3Kzswfm1EZzU7QW9TLlgxSSNaJjZkaT92XUduLDlLbGErZD9+JVcrOSFAPUBWe2cpckdTN19meVdwfm1fOjQ/WTEvb0ZtMH5TVUo8LDZ6WTEicTxUOjBaSF1pOHFFWHNbSzldY3dfRFo5flBMeWk/VCtsPGV7OXJIM25GTTtbRWAhMWgmUEV9ejErME1W'@; put 'YUV9UTFxZXFAMTgmWD87SngmWD9hRU1oUTtXTjVeUWVWfmQ7RSRCZXIpdX19dUVgX0RyKTAqKzJ+YzY4LD0obV86a2JdMlE+MERqRSYpRD05IW0ldSxIbjVuVWlPK2gxSEBAXUpfN25YNVoxbz1CQiosWVF4K242OTdnaj89ZEs2RilZWmpVJXo/NG03aHMyKzArJSFHc3FsOGNQQSU9QFNaTT9w'@; put 'KSJqcjxIVDxEeCYvcDskfG0qNEJlSj45dihTYDxGNnFxQ0dgN205ZTo9IzdRfT0+PT9ZcikvbWk/WG5iVHdQbm9gU3dQKm08RE07cXBxcUkzKW1oQFQ9X14hLFV1PFJlYSJtfjo0bSZEUyhzOV1JaC5nPDVVOlJ5UVJlbTlMaGk4IVlfbCRPUmV5PVI2PCRdJGhhaH0mMHNpKT9jXz1qQ1BqZF1n'@; put 'eis0cGdoQF08JjEsb3libzhuTnxjOi4/eThTVk43c2wwXjY4SEAmMnA4ezUsQGNvJEVOK2k6XWZHMW09T3o2XlFeO2Q9anxeUFV5VTxAIzc1Z2YxSF8qNk5OJVAhRmRUcn17Z1gmdXFBUDhWWUthOEpLbllhOFA9Rnl5OTgqVFl0fUNAVHdrflNVOmNhUUBWMUh0KGNAPn1LVH1KKClDQChZeCwp'@; put 'O1RedEsuPXt1YXBDcE1RRztvJSFfYi8xNXpzbDk0ZHZxb0kxQ29FWHM1fVtnPC9aV3BIMXk1QGFmUTxlanpdMjphWiNza31PP1F8QnlSNV5ROWJUPyhZZTpyUixdU3N3OyxRU3JnMG0xYGdfUmNofTFOcTVqMD5+YUZeQCZ6U3MkU2lmMEJ9SD0vek05Kz9oZjoydCREfGR8IWU5UlQ6LzFmeCty'@; put 'eT0zdkYyNHBhcSIsZ3YmdjFLMTpzeVE9aUpCbjk2NypCYlEhekkxO2RkVF18NzskemUhJUUkLkpGeiliLHg5TXtnQjhPWGlUT21WP0ZmNW5fPWVHczkyPjNUVT1GVEhFJFtuNm8pZWB7SUFoRF5DW052bilQbzh4QV8leXdSOytGcjJwMSEuVVlLIj1SXj8jM0ZZS3FkSktsR2xRQnlwJWpRQnls'@; put 'bEA8XltDPHdxNztnVF1lJFZFeXBTN1o9ZSNlIiV5Yl8vJTAse0AhfVtZcUR6NktgTXUrKHplVUE7fCsvPVJtQDI+azdELls4NF90bWYmI29UVmk2Yk9dNy4/SztyNWkyPFAjVCY2YlcpazNmSFNuPiEzcHlSL04kKz1EImoiMnZ4ZiFKUlBPY2ddR0RpTGs/dFk9VFojYl5Zdll3VjAjV1BeTF4l'@; put 'dGoqI2JHOmNiSnNlemVPc1E8YGE+KnF5MXdBLE5sMFNiMk5ibilpOnRPWyVEK3s/bjl2XlJiITRoZS9teCksMF5TblZsRTgybEVgN3gsbDxuamhkNWUmSnljTno4MClyWEgyXkZLeTBbYWR1KiFyfG96UXY8eDRLUldJVF4/QUtEczlQSnshT0hjN1ZidGo8NkVaYnZAJWU8RSFIITBdXjVuYlBb'@; put 'PkN3RkU3fG5UZDBSY2k4fjtQTjgrT1FaIW1sejNdMk5ELCRYQGQpKHhfKik9V0RMUW9KcjA5NjxWN3FdJUs8RWVZPS8pLiNGbyFlV3ZXLDwjPWQ0cDFdYF5PVXF4RjFmaWwyO2dmKWttRW4zKzpwX3hreClqMW08ZFZwcWIuRE5lZnFSPm82aTo4JUo4W0tUQyVTTm4sMntsZlBbJT9WNG14KTBE'@; put 'OE4qNkFkSlB9PXxaUmxgU25eaDt2KShKQEsmKUFkfGxzUUAlQixVNmczelBLXmBOeT1kZDw/WHdVZ29FWHNgT3UsJXJuKTMzcWd9NjpJRnJnMEdiL21XRns1S1B+cDJPaWI1JTdAVDU5XUIvRGpBbjUpcjJtOjcwOCU4VTYlTl1SKi9SQntPTmBeSlpaRk12X0E3cmlFYWJIQUZOKCg0PmU5UlFt'@; put 'Qj5KLFs1Pksqe307SnZbYDI1KGlnaTRRKD5yOndraUxMME9YREEpSkwwTyUvI1FOez15LmhvWXklOHckXzxGPiN1cXkhVEhoVy9AMU9oWGh8SVBHInNiQ1QxcTBPWS9BUUk5MyUrZy42dVAxLHBeXjd2dVdVeCtocmNJM3csUmg1QThGTmY8UnpwPGU6WmleLnFVOzQ2aGhGJGdGdnlFT2RTZmxU'@; put 'YiM1MWBmIUp+VEJ0cTteWiIqRUJoU1YmRUVwL1g/JkEoWH51Ti9XQlFKT29VdUlPRnRTRXt5PTg1eGhUeitMYWJXaS8ydGRTREJGbTBZKFs2Z0AuMTBMdFUzRGd8L3ppJWd5YmpsZ2ZHIlA2KzphTXtULDQzKU5vR2d8RDh8JVQjWEZDLEY8OHNJdFIzUSEmcyk9b10+TDMxKzUuI2tMaUpJfCtG'@; put 'RXFKOlEpKTJQWU1VSlE7UnZWQGp2U0VSVXlXR3ZCM1c8aHpybHxXJlQhKT5gKVtrKjJCT0VmNkJCW1loWG5+YHh8TCtPeTIxIXsvUWxhT1FCZ2wzKUtveFhldklLay9VR2puT2EsOmB0K21xeSx2bExrLzkhV0s0UTZvMyEwYVdHaVNxfT5KUWo0Ul9ncnZNY29lT0VyMn4yTUVRSEJYM1Eoais2'@; put 'KT9Ob3RNVFFXdXVnfEREM2BEMStzYiZbbi8rNEo2OD5GfXBCUyJzUSpFMXI5OmpqZXd0XzJmd2spSFZpQSI1KHZ6YU4lKGprZjJfYS5uZ3MjdypPIk1xfEomVUU+MUg1c3Mjd2UwXU8qRUhWVHx3KEJ7ZkFBe2goJXJgalh2UU9CQVVPOmRSRFB8WkNqOTVobVpCfTRYK1p1Xm90eG1galdDPiQu'@; put 'KkR7TGNkbkIiJjF+SUo6XT9JTkBaQi8waGE0S2xdO2s8NjksIWpRY2s+Lj8iXUBUU0ByP1FqJCtuZ354ZnVQP3dhRF1sNUcpfkUhYm5rRjNeJnkmYHxKT3g+VmcrSE9RTGEmKHQjUksqfX1CSFlvQ2chTF5HRyJWTmdAOXlaWHpPWlpCcmlyUDBtdis2Jkd8MmRfWz8qZClxMktQcUBacUdMXWl6'@; put 'YCx3L2ZzSl0mR15jKythR04/PjtZZVg5YUZpUWo/VFQjI2FaNWdoVEAxTGRdcmhtLmBaYzcqIShKU09tbTRSIzhpej9aYiF9Pm1jaUpHfUYrZ1g8JUR8ZmpsUndFMGk/REp3YU05STBVP0kwVmBCPVgwMWE0MEp6XmR4N2EyO2Q5WkhGa05IN2JDbCZbJUFPZnpmfDQxXihoUFV6OUVxWiQhNCNp'@; put 'LzEyXmksRT9QZTJ1JFYle3QmSSliKzx7fko+c29MJE44I19pSXMzYlReTmArZUBxJF47SVF8JH5qT14hMGAqNWU4NyJ7ZEIwJCg7VXNZa1csZE1GdmksOkg4bFIlUTpUQypAWjxWaSs7Z3AsMmZYIm5SZSFIITB4KUxQVnlnOyFAS0ApTExqI3xgcEElM3BxcFY6dmZpdj47M2U0XjclU3BJaEdu'@; put 'Typ8bjZte3k8PXMkdW0mNCFFdiR1b0ZAKT0palFSSCg+SDopMkQ9b3Y2LD0uKzxvJnpgZ0Y4KDsudXI5bzl3JmtpWGcmcH0jcTlrTjk2ZmxvOWRoblF7UFV9Mm5xN2JlQF9uOT9kd3A/QEY5ZSh3aDpweyw4clpfVysqSkM4UnxLayFAe214Z1h5QkteViEwRl9eZT9JK11uKlYjdk5QXWR6Izhn'@; put 'LEVTInh4KThVLHtCMy8lTkRKPlQ9MlZzfHc0dChwPzAyeGIyTklqbC5nS15OKyUwRGt4YGc/Z0cxVSgpJSkmfD1YcFRJb0MieiVqPmQ0cHJ7VFo7cG1sJjIxJCllKTs3UUlOV2g5RGRoMypyUCJZfWphYyhOamp4dnx8bmlXTTNocyl0KkJaQkh8MEcoYzZiIUUlbXt4OHNtZEVMZ0U1bFEuXzdG'@; put 'cmdBdFchd1lHYXVvWzFraHFESFQ+MUQqWCg/USI8fVRfaUFDcyYuMF9hWikpSyNSKVhXfFNbZz1qanB2W0ZDVH5CX0ZedmBYWi8mSzgpejEyUjkqN1NbTCRuQmxIQkswTkUyPzs+ZXhpY11QZHhQPER+RlFOLmp9ektBOVUvd1lxTjVXWFJwWCw4MUJ1JF5lPjElTFljUjFJUnoofn4/fWcxal8/'@; put 'fmxgZmcoaG9+cSw/UT1+QD5DSF9zI3xxUDV5ZH5lLGBlXUY+MSFMUWFOQl5XbnMmfHprTGMmfjt9ZkA9Mn5zMn55fG9gZCs0RkIiPH0zfURfIyRpbn1zT1k+MU9pRVlBNF0zQ0chNklZY19PNSZHN3IyPjRCIU0vMUgqaTk+OypYTyYzPWRoLnhIej9+Ln4wWn5+IX48flB9eil6bDJ0d3p5Rkxb'@; put 'UDQ9L1RPQ3VfYVF0ZHNiRW1MVygqe2F8KzdhMDVwRFhlI0Y2YCw+Lz9XOUhJNHw7OEUmSUEkPWtDTl90bylZMT08VzBVby5ZLlZmbEU1KHpNVjI+RkFJYT4xZSJVKDQqYTUsYT4xYyNYKEhBMzhBQXlaQ043emY9SyR2eixXVj8+Ozl4TmMoQTlYeTpxIl5GNlNqO01FWUw5U3BYSkFLJFMiSURG'@; put 'Qi5ZZUAoWHF2RzwyVz0kM0RYdDxmb082PXxMUHxCfk0pZmJ+QGU0UCgqe1d8NnwxIVJxP35XYEdiInNtfi8rRk9gczJxMX45K1dMeyEmYDNFck16P31zK0pqdyNSMnRafD1AZWZwc11XVmleQFFgKG42Mmx9YVBodHsmKnxfQHVPQi5RdzJ9Zlg7ME02VFh+dUdhVG00NEphVG00NH18W2l2IUE4'@; put 'IkNAdlpTUHt3TEl6SEcjNDd9fExnWTUvfmkxTE4lXyRrYz4kMW8jW3VQXnQyWF9gMmJ7Ul05NmcsSFlUd2xSM3k8L3xjUn4mfDtwYDlOVVcyPGJma3YrTkRaTlVHMFJoO1Bic2pHUHEiKHZ6fUQ3Wzk+RjU4MSgpVFo1eXBVamoiQSN8RE9iZHRmcElQcT89MEVzUm5ZOiRPSmIjcWA+cVIzQyMl'@; put 'ODdqLHEwbW8meGpUT3pCcngkUU03MkQlQiNFJVJedj93S1smYEhmcU4uSTM+NzI/LnBTJFpxTlF3Mj4mWEBCX1ZJKnQlLnxhcGAkKXFuVjwvU08hQl5URj5EL3NpWjJMLmxLa3ZpR25Ye18vN1FPdX5BVUZVcXVMLiUyOUJdYHR8eEA5bXFValZlRDtaVj1PZ3x9O0UoVGpWZURgWlt+ZS5YNHNg'@; put 'fn5abyxnNWcrTl5bcmJWKj5xdF5UMEV9bEUvJiQwJmBaWnhmO3UmYEpKImksRX1gITE2WiZlUTY8LGRpOnlqMEV9XTFDbnhHdG1uVikvO3FuVjAvPSxsSzovWUgpfCJAblcocTZNfDFWVyp8e1o+MVciVFdqM1QmSFZEd3Q4K2ZhI2hwRWdRb2IjZUBMOkNJKyhgI040MHNpYGAjZUBRaDYhPmxf'@; put 'RC8kJEBHOT4sK2ZQOkwxbVFNIUBuO2FiKGFmKz85SFR0Q2g0R3pJNXV9ZjppWFJJcyNdM0lmKHs1JTZ2cyVXPDJSfWRRenlTUTc1KkJEMDNbdEdpfHRNMEZefE9xcElwaWR0VVJ3ezFDPTl0aUF0fn5ocUcvcT4kTnR8PGRkfihaMj4mRnFXVClVaC59eyJ6eVl8Pjt9fVh9RiFsX3Y4aXNCOVQp'@; put 'Mnt1UHBzQjl5RjFEa3VLL0VSMV9YRTl9UmRQV1RmeEZ+SFZMTn5ndG9faCJYfCEoWHwhKH19Mig3fTxodX5ZUldMPTBjWitAZXolfEkqcH5xNzhzZ29eKSR9X2o7UXMhL2lyYD4sN31rYTtRPUw2TVd4OFpfKTtNeT9tei5fWHd4czNxZygpZix2fFJWZUx+KHozaCV8Xnc+fWZNbChXeF87az1l'@; put 'RGFAOEJZfXRrUDQidnhbSUIsYCQ7fVZYfSpDa35gTGlfRFEzfTMsTldvYERjaSZ+SFRgTGMwfjRXUlcjRmdXbV1sIW5JJnovaW9gPWFzc3tCMmhkRWduRUtqQmx7OTI3PHd8Q1slfmxuUShsY0hMeVUvOVZXMUZ0InBpLHNhImxJSDAvaXRgWitmfHcoWHxUWTp2JVRXOzV8VXY8US5+clgpfiwo'@; put 'PEprMFdySXtiRVVMRUdUeDoqbCE4c24hL1F2RnBQLl49R0d+alhXKFFPQywlKF9SW3xZdHZzI2N6RmhTfV1OXzNJeX5qMzFoRX0jSWcobEouUVVHcFBUeW1iZXt5RHt9QHVDLCtAcjx8fWo0OT5IZix2QX5seXh+Tn4vdnx1L2lKYGd4PVFLVTQqaylRTkR9fTVrc0h6UCgqPylSKHxXdmV+Y0w3'@; put 'PltoLHYpPTRWS2BGbWx+LEw6UTlMNCoyQFQ8YH18UjVoeC5tYm97end8fSN4QywiQHFmfX1pTGtzQUpPV3Z8LzlDZl4pY0A0MSJ9VTo6UTwhL2koYDJQIX1UYGooRHksdkdFcTg8czU3IWhmRj5RczhUa34/X0pFfnJkJHMsKC92fXYvaTw+VDwxc2Z7L1FqSnBQN3ltYmtAS0hSflMuQzBsLmAh'@; put 'YHwqVy99WGRjc1NdXztrOXBpUmBiRSV9YX06UXhQNCp+KGtSJF9idzB+RnpKTHtjLzklLClSdF9+YSF9NihsczB0ekYiWH1dTjBwaVdgejglfSRHO1FbUDQqSSlrUiZfLlpwKDE4LHY/SnE4Xz5qPH19KEcjfjJrPTJ6IiZucUA6M19zRlI+fmNSS3Z+KmlIXj5SIjN8JjViKEE4PDIwP2pfbVdr'@; put 'c19zNkIoaFYuMkxAPlt5L18hVGNzeEdaWmQ4bE8wezFDWHx2V3ZzZXZwUEl8M3dhVzdQPXMkRl5la0hpX1kpZmcrfSohND4rIj9RdyloOnBzcF5fc2F6PVd5KWlIQT9DSFh8XjB7fn1lW3E7dntyOShMOEZ+TnpkfnM5fXNRZkN6al9HNmY0VzpZQ1BxZllMYTw2XiRgI2RGYzFyeCFhPGdWcnoj'@; put 'a3spRW87Z2osXWA8UzQ6YkNvflRUWklmZ3Z1bGsydl1qXng1bHFCYmQxYHBtQ25iQHZNRVJoQjNNZXNRPj01eDBOcSRCNXlVeDRkemg4I01ReVhKSzN2Xjg2WWdjekwhcjJCK0FMZWIrXV49b2JubTQlKnpgbT0hKz8wLERgT0YiVVReaVlnS0Y7Wz0raWV0OWp3KmJVVkQ1V0FLTmVYJk1bQW98'@; put 'K0ZlOjkwaShpY0s3RW9VNCNNKzNDUF42eU53Vz1MaTNNI3xte2F5NjtzVlhgUF5CO0VWYmhAT04+aUdreDFNLlRfTH5BTnlfXilMe1UvZjRLRzhrIWJKQG9YWjRVWktyXUp4ND5EZUpddU80Izp7UUlDcnpWNF0wTWpoMjlgNHw9amRyL217WkZgNHolQnJhS0tyV2FqMltiXT1PPXNZYnkiNzZ6'@; put 'QT4zVjhdO1hST0VvKURzYVcvbUZEZUpLYWVNbjk3X1VHb3lSZXlKcU4+LGVnfGE2ZyFFNCFDPlRvO109T3dGQFRLVElVMUIrLixaOHFIUj4ySy9LWnBfNGdqTWpaS3tVMEwyaVRgSkUvbT9Ta2cjR2ZjND0zPWE8Ujs4dmk6NyM1NX01JW5haC5ta3BRWyFHfFV3YXwrVF01QCgldTN1M1lgXnBG'@; put 'MVFnVixWYklubGZZW3VnTSt2Q0ZlLCljO1FucypRUTZacFVZIzY7K0socVk4VC5FX1glJkdXSXx1Ono0bVAxIWwvLzdIOzpANFZibWxsUDBwNV0jNypyImVsbFVyLEdzOVk5UWI+dHU5XmNpOTthdyFLZC9YNjV7OEojajYsZTYlaj4yUkgrQnFaNXJUfWdRPDpsMVBPUFtoRk1+a04hdXljZFl+'@; put 'YD9fVWciPXpoUHIkKjtWWmlKNTZnPFZaaVB1SzxOakM8KnIkP21GcF90W1ZGdnM5dCViXT0kakdBJjd8QG9UJEpwOX1Gdk8oank6el4lcjIkU0MrN09QZDJpUmU2allUIng7bzgoVjBqcXEyKE5bd29UKnNDJWYqLzx1bGBwOiQkUygraSRrOUBtdF0iJS5JLztyN0FgUz1rRFB5MjlIPWx3cDZR'@; put 'RHMxRXtgVXdkd3AhJUs6VnsjP29bVmJ1MzZeenBXeSQlYmJDPEQyZyYvOnNWRUB2cXhgNjY0WGUxIyVyJDRtSFA2N2JHWGRyJEksRUBQVF42WWohWENAQmBbbCVidE8peH5tNF53U3deczZmIVlpSzkmTGZkNXYoZXU9T3k8ZE0rZVpqRXtsQG04WCQ3WjVGcnF8NiIoN1QmQVU4V1FZeWpBV19s'@; put 'JWJbQ1pWQm98TFV9dnArOUBNQiEwVn4lKDZeKmE1L3BRLGk8PXY6XUk1NyVIbSYqNzFZRUB4NEJhIUJYS1lWN2w6ZVswZEVlZHA1XiMsSklKJUNVQlhqZFI4eFV0Rz5IJU8xaWhvMjxtOkJZPk16Ynx1KlNTVUlsfCtkazZiSk1uR1ozYiFRVW9EVVYubkBHYm9WZis/OUhUdCxHPkgpbFd4Qypl'@; put 'eyRQMDRDb1YpNXhseUxJK2F+L1hRezJYQmU4UD1JOGU4Lm01NlklVj97KVAldSEzYlksQyUobl86LEZWMz51KnlOKnIqZ2RXM1ZwemNKSXJiNFVCWGd1aSNBPk1GTj9NIzMlX145Z0Z3Mk9aS21ieHVMKSYyWk5GU114XkYuTFg+W3oyUkE7TW5DJVYhYTZPKC8rOF0sKzxuIkEvR2Bidj1mak9a'@; put 'd1IjcTVOdylSKE1gQk0iPE88LnIzXURzRjFxQythQzJEYiRtW29BaCQ4anVyOT1VXk9xL29MVTlZOXNuVSlTMmsjaDsrRngxIWVEUzRiVDldYFssLl0oK11wUDM/YjJwZ3A/M31ZInteR3pjbjoyaUNvKiFWXTs3eVVEV2BiVVk6dnBmUkwvakUkMzJXWTkuQXIxcD9LYnlLR0tGIn07NzFicnJi'@; put 'OzdDcmZROnNsfiJvPFt7VmQrXm4rODZ8YmZ0XWc4YiRjZktHQEE2eGJBS0xabGZmeDM4IjdCV30mZVkpOzlgJXBJbi85cHYmREcofHxOVHQkKzh8VEI4OV1Eak5AJjZgQEIzeVVPZEdlQyVpOEhlcTZJUD44PDZdNSxtaWI3REg5Nz5QTm8vJFBJODcxQ1U6UnwlQjhqUW12NV0lZ1lmMlRqMkU+'@; put 'QmpvOTtmRFVDUElwQjhxOzVeNHtCMS4zXUk5SiNGOzpfODw2dT1TdVo/bDJMdE9nZyQjSHhmSncsOG1mL21XLCZAXncyT0JuKDZKOlkrIlsjN1VdbEoiZFo2OFVEZWI4dWI5LkA3L2ZtOXYlS2lbRD5IQ1U2JWBQVTd1SCU4Uz0qNkRAMm1tOW9ZU2RXPV1TUVBJRTJnREwiLyw2V0h8PUw9UHFD'@; put 'O28lZVVGbiRAWFtBK1MxNSw3MV4lPnc9YSxIfUsiLy96XnVuYXRhQFNKaDYhVzkhems4b1pte3g4Mk9AOy5yQlVzckQ4a29Rb2MkVSRfdXdSOWlMaytVb102OHVIQGEsZkVLNUNMZSY4YkpifCQ0Qzh9SkRzfDZCMzRtLjxBcWhaYXVGeHZVL2ZlJjldUEQifXkyaDt1bVRkVVVhZHxPR28+PUU7'@; put 'XSVrLF02JXZfPzZwe0ZOcFtndmxCPlBOYytJI2o2KDsoaks9Tz9mcXBtM0dzOSpVR1lAU0lVc106cDolJCU9bkw9TkBeKlg6X3RJKl8/Uj1UPSNxR1RreEE7OXc/MFttQCoqbTtnOV1AXX1DVz1fSER5M19WcGE7Omo3QDNhYkchdlR5Z3hTcCxhYT5gInFWN11uKiN4Km1iM0Y7IzI1Yj80L2Y2'@; put 'Y0VeZnAhbDVVRTkoZXZqIzdIIXFjXjhqRm46Y11PcE5YYDR5VUZvZF0/I0dvTXJ4R3c9MSVeMSNPb3Z0XTVFdjZ4UzdiWmEuPWV7OGlqJFNlOFo1KVlLaT9maihtY3lGamtpIi9SPXljbUomUFdWVkY+TFQ6Uj1mKjA+aVRtPUZzW2JCVTUjaFBNbFhXdnAlc05oMm5BRitmNSs+eXtmQ0xwcSZQ'@; put 'Umt6OlkrSjxzOXRVKTd9ciIvMHZ0OHtwe0VwQFZiO25wTkxZaER7JTdHUWlSam0pXVJvazRtT1V8XUU+bWFgbypufT0mbH44aXBTO29QYDpaOk9DNVVzdih6U3sra344KjpFTXpnKTZheUd4fkxbU11Ue1tZcU13fVNYVzE4XXpHdUJ5YzBwYytqWT5LPTg3IUo5YmZpOyk8a2pjSjxEV0hxMSVk'@; put 'PHd8NVUoejVnOF91XmlkKFYwTERgQzgrJVJNSVIjYSthYikhXzclME8ycFZtfSwvdiZUZj9eVEwpNVM4MV9nRjg4OTY7VmJkYk9IUGgzR196Ui5XZypXQ1YjJVl7JmQ7NSg9JndrOm1qJV4udTVeITBoY0UlKjZmcDJ0PjZZcH08aUpWXjI5UzNzTUAlMGFMSXhSemI7ZE19e1p7P1dZa1t8fHhi'@; put 'IVUsZk5gczFCe11UL1kpJl9dNypbemB6KU4mTW9vU1EvdHlDKHlTXVYkekJ8Mjc3SzZedVIxXk9nKkkyYHpCK1tQPzwsPU1mcEssPE1mcEtSITl6MGlJOEU7VXpAb1JlQE5BalA4ciVie3E8UyR2Xk1HIzZIOVZpU2VQeXdsYDRNKyRqQ3ZZKyFWJGVWa3hSdDtSSjxENGo8N15NVX03MVE4MDkv'@; put 'NGc4cjlUOTojdUs3USk7UnBEMitpa0k7OkRQTkA0byNdW3shMGBLak1yVFB5dF10QyQ5bylWYlt3QlVCVmJKRW94VTw2XSN4OE5+Pm8rJXRpOk5VKD03dCQhcT1dTSk6alZpNVVVb1VJd1V+ZiQ4bkVPXy8xIyV1dEw9RD5GckRzeUVCRFI+ZXBpMiJVR314KlRsITZzXUt1KFZEbnlAKkp6JSQl'@; put 'KXEyMi5qZHV3IUZTRCY2cSIsQ1IxSW0yIyV6bDFTM3tJUDhWaDd5IzRqTV5oO1VsKE9nJGcwMTV2I191IVU0ZDQjdUthKFVdTFUmdzFiTDt0cmFkVD0zaTxkYmhqRnIveXorJTojO1RIS2EobHI3djlIOl94Kjs9YVVtOjs2ZHldW2pLbnl6Si5tcil5LHRCPzEjVjFqTzt0bVRkS11tOiNlOTdz'@; put 'N1ZpWCs1UVhhIURKUU4+P2lHMWBnT1ZqUmA3L2ZtOWl9fmM6YyFES0VKPjhhMmh7Xkd4X3ouJWd7RXcoZT0jVGkwXlRSU0VTO0Vxc2dgU292OyFzJTgqdiReJXQsLi9wSE9fSWZqL0I4ISQ9MGg3cjAhXUFtIVAlYzhiWldIVyswTjQiS2VMfE9AJDklXztiPig7Sy5EajVzWFFfbTgqfWViSkor'@; put 'aXAoMl1hb3BkdHA/PFZzQGskRm9SIXw4Xm12bDIjQUk3On4lSjkoeHM5KDtjb0ZSVjg4YUVxPWR5JXwhV3A+OndVVXJUN1FmKURZM31dImdhSHYkWXBvcF84NkVLPEVAOF18Xl9aWCtjO21sI1koPVJwVyxEMSFlPEVSYW5sRF5zK0d4cUgydkMrYztjO2M7cCRseVZ5Kkk+ODIjWiFdVWtnayxe'@; put 'WVQhKjY8NmlqJCVYcHBqZWRQciNbRUdkVFUra3FhTy8vZVZnOEduKj15QFN3cjlUYlslJWpNRkQyRUBqZS9kQUtnOF9Edz07N3UpPlYlREJwKFY7NSozWFZ1Z0JoSyEwO0d4PWVSbGFRU2ZJTTxTK2ZebUN5MzheS1dGYUhUSVNuPiFeJTw2NCFyZGpvWXs6L112am9we3FLaFkuPVdJdjZKJCVq'@; put 'NGVRKkNZRV56MU9zaGl1TmZLfT1rNlA1fTpBfEUydUt9MC8hMUtTZnksRWU6cERlJXhLXi5teF1nb2Yzci9yZTMkZDNRODZFRVM6TjI5bEdoQz9hTFNIRUNMNGo9bmJgM3B3bnF4cz0/eHIpVDhGeGhha3ZIcW9ZNDtLLjp1TGhGX3h0TW4pPWhgTFFKUmI+aU5nSipAc1k5VXY9VmI5XTAkS2wk'@; put 'eDM4cjJPaDI4ZUhdX2BVRVNKSWk7K14yeWZWQ2h4I15QTVo9S2VwN3dGQE48UkU1bX1uQW8zYWtZdzxIaWI5dXZDKyNdeyt0JHo7aGN3cFdqQ3YqbUA0R2Y5YmJ9LHprIW95OW8jcHZddDdmOkJgYThKX1dtS10vVHsxPzEvbFpvY0tfJXJ0Rz5oOlB9c3cqOTFjamBdNEtkRThtZjskVjt6P0JN'@; put 'P3V2UjBucF59K3dVW2giL2VwQnk7dG1mKTtxXnNxUVBfWyldb15JZlNjajJDVVlmLj1GO1NdOFUoT0RPaF1VWXV2LGNeOHZ5RG99Z0FweVVyWnFxbUt0eWJuTnlhelI4ZyxEYExRZTtxNmddOFVKOERsU108PDU4Xm11bDl8cUtoWUI4QjIqU2lSVC83MjM4L204WD5SUm4iZ0MrPUlhPk9scEso'@; put 'KWdYdjBGPUE+cnlgZnlZRCZLcmpdRl5NK2hdOTc7Zm17eGNlREUoeHpHXT9sNG0lcF8qfStPZyk3OU9gJWQ5IUpHb3U8VCtPe1M9amRVXmk5QCRpODY4cDpIOmJkMVpMKU0xN2JGYVphQHBOYikkTWw1VWh0Q3E1NU55MzxHckg8PHVdXmFuezg5PnQqaUtTI0hsUV1jcXliRyo9VU9CUnNrTUAj'@; put 'Zkg5Um5RMSZkOl1VLjFkMTRASjtaOlU/fGlWP00jc2lyJEx8dDk+JS85UCtPe0dwUF5AXT82XzVYTilDMzZgNn4sLD1ibSViZ1p9VTFkJHBJVz5TMCYkTktCW281Olo6cCV1PyZ1MkhDdXMkfm04eCguNE5APD9vUF5YI28+fSZCV0NXYmJWXWteP2xVXUgwe2JSanNoJHA4YV40Lzw1UTUkZDoj'@; put 'ZE5YTWlEPlZiZlUsMkpEcjtJVyhTTCsrSTdyJDhPZCFKPSpCLm8sS1FDNDhhMyFZaCU3eSNfZDR7VlEjISNieVVrZXMpaF1qdztHZ0pDdkYxTSNhNDRteFJCM0M0SCtyP2tZbCtdVXJjW1B0JFZ5WjY6cHgzRzpaOnI/a1lENDY5cHkySFlQTGQvPE5fVytzdkJlWSM9VVMlaWhkU306WjpxLEJA'@; put 'a1lJbGIzKnp2c2hGflVoMj8lPFN3XntNI3x6ZjE4fS93cyE9anhqXlgkS11RUkJWelJEOGhgQ0lbb2A3OFc9OyJnandCfUJiZyksT1Q6aCRLbDg9fDYxLDVRXk9SaWNxNT1xOXIwb3hGMX0laTByJU55aWxeVURPOiF+LGE5PEJZMWlwUCZ5cyU6KyU/ZD09fDZ7Nns2bHheKyolKnpZPSVlcCR2'@; put 'PllmIzhFcjc7VilBczU4aXJ9RHhoUUZ7IyxrdCk1TUE6V28wTGRkcTkwczMsQn5ZciIvaUZPVFVyTmhBcC9LJkA/NjBOemhKK0coRigwMn4sKXo2MDklb1J1aFh9IV9nYS9VUS5Bc1lmaWZfOEV2fCNzezFVJHxYWjMvfUQiJWtHKWJvTjVNOls4XWgzWWNNTjN4ZF1wLHBIWmJUMHk5WDojX3to'@; put 'QUZvUUhmQ3IySFd3cVtlOGAsfTpnOV12VGxQcGVVRD5WYlhwUGVYV0Q4eCs5ZVBTKk18NVJiOjIzWjFkQ0NTVnllWHtJOHwlfTpmOEFlfXBEZXhbTE53c0VlYyljXT8zQmV+NzxtM2c/eTtkZ3pbbXQ+bkBoaF4zQmVJIT1ePnhpJWJmS1gwXlNrQjgkeFBlOXdUR2MzbmMzZ2d2MjIzLHVsVyxW'@; put 'Zn48bU4vemVVUHBQZW83XXozJDIlfjxtTik7KkxmOHwleGJmQDMkYjNNYHhjM2dkbzMuYGN4emVVSEskamszWD00dnF3RTw7R0RrJlJCMk0zMlM7ZTJnZDk9bmk7KjUrb0R8S2o4Z2xANDs9P0JVWmM9MmoyKyQ2Tk9IUT4kQGQlR1dtOmA0cFRQaU9mQ3o4YWhdTE45Yk4+W3phbFVeQXBUKXt8'@; put 'fCskbWNVOG5PVWY5XS43ZXFbaGpNKFBlOzYhbls3RVpFZSVteCpJemBnVk04N1FLUSk7VklDJSVKK0hAMnB3dy5bRmp4aTpwOCl7cEhzci9nRk5zXl1ienYwSCFtPzI1NGR2cXYsNGpOIW95UVp6Xy8xMzcpSWJ8fSRqPms6SWY2S0QsLF4qKFJwUmU7JCgxZGJwXihLL3l5MWsrWmI/b3JGPk5e'@; put 'a2JkOnJgWl0lXm19XmlkN2p2aXw4NkVLZ0taUF54bGRGYnAxOHcuLFZ1XW11MnQqVm49XVo1S1IpN1YrQEV8WkYxfV9zWF59LypHMm5xXVpKOVBLXSQ2V24zJSg2Q29TVXQkfjBqRUkrRSQvKythfSp+d3chR1kkNklrXWc3Xz1LZz86cHdaWyVQaHYySSMydnxaIU8ie31uaTtBfF1MPno3LjFh'@; put 'QDZOczROLDFjdUY7LjFNQ15KV3N9PV4lNT4icE1dSSRHe0whUDZfcEAuOnA2Xlg9P3VBVlk9dCR+bX09XiVvW0A2Zy8qLiouKi52fD9OQmpEX3N3SmJTX1o9YTFwTz0rNCNuQG9dVG9Ec1NvL08oJjk6NmNDYGE1bEhsQE9veT5MYT8lfnlifSllQ3lHVihMMXteIUNLTnF0WE5eP0VKb3k+SV5A'@; put 'eEgmRD5CbkYrKUp0VCJtS0tDbm5ALmEoejtyJXdtX1ZpVH1yNm9WJjM/Lm9bJmA+cW5WJjM/Lm9bJmA+cW5WJjM/Lm9bJmA+cW5WJjM/Lm9bJmA+cW5WJjM/Lm9bJmA+cW5WJjM/Lm9bJmA+cW5WJjM/Lm9bJmA+cW5WJjM/Lm9bJmA+cW5WJjM/Lm9bJmA+cW5WJjM/Lm9bJmA+cW5WJjM/Lm9b'@; put 'JmA+cW5WJjM/Lm9bJmA+cW5WJjM/Lm9bJmA+cW5WJjM/Lm9bJmA+cW5WJjM/Lm9bJmA+cW5WJjM/Lm9bJmA+cW5WJjM/Lm9bJmA+cW5WJjM/Lm9bJmA+cW5WJjM/Lm9bJmA+cW5WJjM/Lm9bJmA+cW5WelVqXT5xblYmMz8ub1smYD5xblYmMz8ub1smYD5xblYmMz8ub1smYD5xblYmMz8ub1sm'@; put 'YD5xblYmMz8ub1smYD5xblYmMz8ub1smYD5xblYmM1txblYmM0A9a1dbSyR+PnFuVkxNMXtvW01IZjoyNTBjYU9OSDF3YVlPNTBjYU9OSDF3YVlPNTBjYU9OSDF3YVlPNTBjYU9OSDF3YVlPNTBjYU9OSDF3YVlPNTBjYU9OSDF3YVlPNTBjYU9OSDF3YVlPNTBjYU9OSDF3YVlPNTBjYU9OSDF3'@; put 'YVlPNTBjYU9OSDF3YVlPNTBjYU9OSDF3YVlPNTBjYU9OSDF3YVlPNTBjYU9OSDF3YVlPNTBjYU9OSDF3YVlPNTBjYU9OSDF3YVlPNTBjYU9OSDF3YVlPNTBjYU9OSDF3YVlPNTBjYU9OSDF3YVlPNTBjYU9OSDF3YVlPNTBjYU9OSDF3YVlPNTBjYU99R3R3YVlPNTBjYU9OSDF3YVlPNTBjYU9O'@; put 'SDF3YVlPNTBjYU9OSDF3YVlPNTBjYU9OSDF3YVlPNTBjYU9OSDF3YVlPNTBjYU9OSDF3YVlPNXRoMl5PNTBjYU9CajN3eUBQK2R5NUtZVndxRmBJQFArZHk1S1lWd3F2M3pjYm4xaXRLRmApREZxenIwUUZNWVZ3cUZgSUBQK2R5NUtZVndxRmBJQFArZHk1S1lWd3FGYElAUCtkeTVLWVZ3cUZg'@; put 'SUBQK2R5NUtZVndxRmBJQFArZHk1S1lWd3FGYElAUCtkeTVLWVZ3cUZgSUBQK2R5NUtZVndxRmBJQFArZHk1S1lWd3FGYElAUCtkeTVLWVZ3cUZgSUBQK2R5NUtZVndxRmBJQFArZHk1S1lWd3FGYElAUCtkeTVLWVZ3cUZgSUBQK2R5NUtZVndxRmBJQFArZHk1S1lWd3FGYElAUCtkeTVLWVZ3'@; put 'cUZgSUBQK0hfTW9oW21WTzVGYElAUCtkeTVLWVZ3cUZgSUBQK2R5NUtZVndxRmBJQFArZHk1S1lWd3FGYElAUCtkeTVLWVZ3cUZgSUBQK2R5NUtZVndxRmBJQFArZHk1S1omVit0W1ArZHlYQCQuZHljaDcuPjs4OWNoNSZWcnJ7X108Ozg5Y2g1JlZycnslM1Q/SFF3XnlfPmVtPUVgeiFeTWxr'@; put 'NSZWcnJ7X108Ozg5Y2g1JlZycntfXTw7ODljaDUmVnJ3M3J7X108Ozg5Y2g1JlZycntfXTw7N1FMSH1oJllbSW42QVJiZVZ6MjVTRlk4aU46MTwoPWw7LipkQ1ZKWDdxcDZbUVl0PFhkIWtOKyRHeFVQSmVrbTxFdjE5b1hFYykmQnc2dk5WT1s2UzJoPiE2bjZ9LEolNXdiS0lNIUo8eXMrI1Zb'@; put 'Y0d3VzVXNVpjempHd0xRL3lVT1FhUGNuZiosbCx8aDdJXn1Na25UdzxhK2hCRz1Na3peOiw8aCQiVVB9S2VHWk9sKTRLSDVZd11AXlE/MDQoQ01gVkI9KTEhKHxIazlbVUJbQmxELGZjYyJVUHdaXnBfa3UxSD5sI1V6Yjo5MUtEcEAjSiY9ZUFsc1hQW0AkalMweiVycVdIOkR1eCMyImF6Ui50'@; put 'I08+T3kyckxOWXRmIXFFYW8wSWQpRnt3STYjUC4haGw9JWhFcmE/SG59QmdRMFhpRyRTUm0jNHZXVmJIfVIueXMrOTFzOXVhXipDbTdvXndXZnlTaSRlM3NFLDZRWXlAWTBibyMwX1BlLjM3I21XaV4qNFB4JW9vQzxOdGw4RXExYDhxfEAqMXxvcXolV0B4KTVKUkYrQF9TTS90I0o8eSpCWUQl'@; put 'QiUxaW9+ZUNWSl9gWyltXyh0bGRedEw4MlJnMT0pQHQxTWd4QFYwdml2eFNoYHdNWWNgOmFvUmRlQXVgSE4qITUqdXg2Nj1dKXBYNUU3fDJrI1h8ITFKRzw1dE1IPWIlWilQRn1DOk9tIiglUGNWb0BqNkFSWyk7YVp3KHoxR0tOX2FKaUJmIkFwZVZgQWciUWZ1VjxoQkg5IjEwQGcwOWRJeURT'@; put 'Pi5gVj5HVDI8bzpMO1kiN0ZNMUJfQDRXN0Y4NG5EXTFsaSp2V1U8ImAqJW1WanR2c3xPSXdhIzJbbT9uKTZkUVMwaWlKYiVZLm5NWWdKSFI6KlkwZWNkWDlFbD1GQnA7UVlVPUw8blB3NVFFTyFYKEZ7dFBUOE5CQ1JFYTI2OlBvTFpQalFNOV0sem5YXzNOO18kbUM+Yys6VTtCXSombTFvNTJf'@; put 'RjNeYmMpOCQ8WmM7emF3WD0kPV4qRXt8OXw8KThnJGIlOytKc29AJVA/MVJba1RldGhKdFUhNS5XITByQDhOPS9vWG5EYSVYQ3VzTDMkRyl5LkNmZS5dMkImKz0vNmIiInpTWlJDUUskV3tKUU8sR2lYRXRvZUcpPVkrJkdgYTE/Pi85KExdRVd5aXRgTm18T19IbSROITEuOVE2ezcqJDw0UE49'@; put 'cWBGbThpVnpbWWFrPXhzYnV1WjdrI2tLTVl+aXwhVGEiaGpCLnhwfnM8cE46JEt0ZFVBSiF5Zi5vbz9tTz5WdnMxVm46aVZLejQhKyg1RmJjJV1CL3JjJG0kUCVSd2hUKUJUaTYyRT05PUZ0MW9DfUI9ZzAkIkpSbURCPVk8LjZPeTxkd3dwblRBOnV2bU5tK2NAdVZ0WChGe1NAaCVObU0pLjBE'@; put 'QyVSOTVFYkEyKDxUdGtyI1gmenQxXig8SS9lJWRJTiYxMigyQVhLJnFfak48RCpYSF90NUprNi8xZSJCbUEpXkpCWzlKeSQrYjImWV5pTXEzMCNHcCRNVFJxWyRDWlAhTS5ob101M0h5eGJSazZtWlUoYW0lXnU3SzJpUzplTCl2P2FdT2Q+altUSmU6d21+IVksJk1oTWtWMFNrckArdWAxSm03'@; put 'PzFtT0pIK3BwTk06Rn1qdllVV2RzTl55KGpKLGVDR1FqQ15ZdW9dLD1oSHh0RVUwNEBBLmosNDBRMjsoP2F3UjUpcEJjIVtkUUN6NCMzWV5pTi9UX0hQMT14ODcrLE5SOlsjVkR+RUltVEslUUQjOCVZYyF4Ym92QEVaZFthVyVYImJLcUdLUVhMKXZjRFheRT17YHdeZ0leJVRnR2suMXVkXTho'@; put 'NWRQNDIiOUFEKEAqWWlDK2FlbSUhWSxqSmd5Z3k3eDlCcDdSLCIxP09wZUd3aDRFI2FHfjNoVmx2LCxMLi5pKytwTkZrJjFSenx0blcyXi48d15dYWglL2tWXlV7VEpfWlJkLGE7aCZELDZyNTRtXitZJUEjdzFdKE1JN0khK0phN1JgMDlkIWMlWVRHNF5bLH1oOFNgMGZkIWNfI2NjY192Jmoz'@; put 'MTJSMnlEc0MvJmQxTiV1eGowcz9VVzpfbUNWZ0MzSHIxOnBzR1Moek9tdj82RWc6ZyRRJXlGK00sKyNtXmNZdUVLUlttVF1oMzwrKjFTPisjbUY/PUxpMFYpUFZxM1FnM1d6RkpSJTV3WmZvRWBaWGldITUybiNFc1VlWitvZlpiVGdaJDBKNSZHUmAjTVklWV5BU3s6aC5kTFhDNWJfJDlVIl98'@; put 'P1JrMWpHIVZrWkchbi5BTV14SmE8XTZoeGxOaylrLit5ZSsxRiJeR0tlWi5vZ3h1c0R4JHoqR3VOX3k1KiQ8fVB2LHFgRm08PmVJJSYzNyVtQG5ETlkwV1VKNldhOj0qP2VJN2V9SSZtWmlncVBFY1Y2eXNUQ313XiltQlM6W1IjM19oJEhuSClSNWdoX1lqWltSfENwZ1tTZ0dFUlomRjhYZnVS'@; put 'PTF6P0ByJEp1V2t5eTtRa2wkd2MhNj95SDdNNHVzRHhEOlJhMk9jN3NJa0FqJnNUWyV3eik1ZDMrMippUERPbUxqKTl0MTYoVyhGe1ROVSl7Zz1QOTZTSFokRk4vOj1sTmRuRWxBfCxrdjBATzBFOGphMlZyO1lYLm1Oa1UuTTYhOmt9a283QHhsdWFPYztaaVIwZyxSLnRdWn1II3xHNlkwQWo/'@; put 'WlhHMT9DOks6Tk5iPHdXT1JBQypSRTx9MHFhITdBZmJBfm0oR05ZSE0sK0dhJk9DN2xGeGY7ZlZjNGU+YzFHLnw5ME4lIVNjY1IhaD9EWWhJcDVHdVBOS2cwSG9bMGEidz1mcmxDZDZEbyx9T049RGw5cWdDJCNuY1IhRHpLWWFRcXh3bWlsLmNSRy5Gb0ZpNVhKO2ZhLGRPKzVaSG9HbDw4U3Zj'@; put 'UkdPMWVDIVNoN2VacTk4aVUoWF4sWkUsa2NeWnppekN5Lil6YVtXVTY2MEBSMEVkaGUuIzBhO3J3akhPKzVWRjFAJDhjYE9tdmRsQ0lGSUZ9X29jMjN5djBhemA3I0I7WXttY30iMW9hUU8lIyMkcVY3JThZSDNSKHRDZzZ1akQ7KCNRSENCW0t0OmkxcjVRLmN6MjIxbXp8LDY2ZTwzN3E2ZTx1'@; put 'TyJSOTczaiwxWmpNPltHXU9iRjZIRDlJMHFkamxTLChPYzU+S2MxZnhkVjRIKnwvRHJlNFFSK0ttMUNVYUBHJXprJFpSUWRxJFZYIUpAaXFyTWFaMChkdzd6IWpDND1pQENtdHgrKlBpdU9HZGpGLy8jUTAqOyxhYjRPYVh6dUV5cGBCQDVOYE1vREElVndETm5HUD9VSGJgTWtOJmJWdHF5PFhi'@; put 'S21xb3BHVSpNa0Y2U21lTWJPeTx1T3oyVE8+YywxXW8mTHElPkZiYHR4eGF3MmMwMjU0d11PcXciMTltWj13JEVuYTtzQWBjTCxFPVByWSQ5UzQhS1pbUk5tVUdsJiVJNGppMCxSQittd35JbCZDVjtufF9edTxNV2Q7eW8waFosUjkya0w0RGBjcEhHMWskbiVpLzkxX1puTiYxVmQ9YmlWVmQ1'@; put 'RDdxNmlOLCZPZ2RMVGtjLkpGaVhiOm1Vai54KXE8TUdke2NJamRUM09SKzZtMTQjM0RkdWAvZFpSWmpAJigrXnUqKjZITDkzYmp2aFk2SGEuSixoJWkvXnUqKnBIemVvJEolKCtedT5BRVRtUipXdzdEZEg2XyYjM3hUWXRpMXFkPWJlZDxNJjUiK14xM0AlTWFjfXc8eUtrdHNyPG1Oe1NiPy47'@; put 'THZLaGpJL19KKHgvan1BRyI8RntdbFI6MzlSRT59eS8/QFY4dWl3R3A7fnR8JWg2cTs5dDdzIXM3NmdOIzhpdUElIUoibnlUQiIwYSYsViFJRysmdXk+aktmUEdXTyFaU2grKyNzcktZYUZOOEw5RU5PRkAyN3UzfEI8USwpZnhbNSRNQ0o1Plg4WURpbCRAYl9GL2JJTigiYVBaS0E1UVVQZGxi'@; put 'SENkIlJlIWJMMVVBIWk2UDxkWFkyKnx3WFc0IlhgUVZgNipPL1dSaDAydVd3MXJmdmIySGJ7X1ZhcX5GT3kub1s1JCZRWEQ0aj1bajhHUDZ1L1JjP2BXUTBGTm8wXkNFaGcqJE52fExlZm4seGVUdl9xUFpXaFtGYDAzS0A8eDd9Ii9JTFdqSi9tUmV6VyhrTCY+bUJmPXMpWzYpfGVKMTV1UCN8'@; put 'Kilvc2svOzxiKzBISSY6OkJLV359NCVBbSsheiF9fEwvb2J2KFUqc0gqOW1XPzRGNHNRUmB+RzlrJTd+L3VibipDSG8uPnV5alUlfFFwd1BRP3NgKH5IKXBDcFs9bTV9diEwW3goV0x9X24kVFclOEovcXRraD1gSVo8fSw+Nn0qYyJ+ImBmLjd9djcjLC55RUAyY2Z+OlcvOXNZYXpTKGciKSUh'@; put 'fHBrXjtDfnw2fV0pQGNoPn42MzgkYnUoVSM/SUZDfjZjLzY9fSljUldBcCIjKn1ISjBbYC9nTnp8QkBvc2svPn5HP1FGcX4kXz1zPkx6WzEoOlB2X3RDZXx4KU1hZn07RzlzS3JKL10qUktkPz1taHNPVTFoQX5gOjs3WmBrPFE9ZXx0U1IyZ3tESWZ+XThSNG0zalU8QGQ+JmhPX2c5PTk6ISMk'@; put 'OX5uQC4xOHNNbS5DTFApXyhOMnwoRUEiLndSLFJLLH1DKSlzbmxqQiFXOW07YDZ2KH07eD1+Ynd9XXp8UntWcSVvNXZGUUB0ZG5qNEUlY3R8LCNnPn1uYDhzO1pbcS53UyRKL0RdPno6fXhZUUxHTnxscXxXKklVJkA+Xmh+IWoyPmgjRFVufDxsSUxnZz1+Qz9JZGUvXnVYfWhzcCJPR3BPKltB'@; put 'MTJoeT8iUDZoTVJ+U1R8XVhhKDpNN1Rwe1BJUygzQlE0KCR2UXBbMmJyVzRIfV10fEt4MFt3dyVhY34pY1YoKH00LnF+W1s9cyhNZj1LKUA5Kl91dmR8Wk1hKGFKfn5UYEoiels3P2h5cF9GdXBQbSpQZ1p8NCohc2NXRjddImpVbV9RWnt9V0djc19rY3l0UCJGcSkmT2tzZktURTZ5KFVdc3VX'@; put 'V1c7NWRfLCVEVXUpWElNZHo2ayVVTHcuZiRdfD9AVihsO1dMd2BSSzdUOTo4NThUUDA0RjY+M1BLOkIzUT8zLk5MZkl9XUB8SkVMTHg0X1A4JER1KWhhYFExS2NHRTltQT9aeSR8NCxqVTRAWCRLL2NQLG9VfkZ6bWkiaUYudSNRQHJzKkl5a01QOW0vYHFQWVcsQEFGLHx4KThoLn5sIWNzUlI2'@; put 'PlAmO1g4fTx8UTQmXkJLQT9MRTVzJUcsb1N9I287OVgpI0F5KV9SOH05JVAoXnU5VGtiMjg9fkQ/UjpBMVlAZzlqc3l4XjtXfitmcElTfTJgQH5vWnxsbV9VMTFGeG5LaWhXVE0sbzEvOWosb3x+L0Esb0VgK0RTQH5GOW0iPmBlZXwqKV9+SmEoQl9yUzRYdlVUNj9kbnAyKWhXYGl2fn5wdWhI'@; put 'OD4kQzlUK3RHNyF+InYyPjpVUnFnRStMNl1LVl4rUGdefVh9ZG5lM0Ula25NY2JuVzMpaFYjPFZmPVpbUnlrX212KHM4MXxsNnNBO2Y9WFtoOnt9fD0jPiFDT0BHIiEiTnk4JHAueEt9X0RJZX51Xj1+WD9MXy9oOS5qMEE2ZG5ZQkhvRUF4cGY9LyhCSyt9clI9fk5hOCRsLkA5IXwpSGY9Ultu'@; put 'SXdfIkFmYCg3IT5nU3UoVls8aGJueDIpaCtzPTomPjtTay5zOFt8MD1lZjU+d1N1KFNAQCo+fj8mOCQmdG1iTyMxOWYkK3xKQ35+el8vQ2d8aVgkdF8ubHU8c0NQOW12YCVhcV8pKTJySEw+SH1zYXxAZE80cVhnKHN3Z05IWyZgdzAhKlhERWZYW1YreT86MzJzR0cpOUg1RzxueDtHS1VYQjRZ'@; put 'fmxrOFlxTnRXLk9HZk9rS006c1BbRiZnKUQvZHpCKEhWaX1+S3RFMjJiOmJDLj5iK3xFM1A9NihJNXRtKCxuay5fVFIpL2BWK3wyNkUwODJBW15zJCxRaDNdSUd4SFF6WFJZWXVZfFhBWSFYMjAkUFdpZmFrczwhKXluN2xIXWEkNzthK2Z6RihfXktgNEg2PUtidWtobWZtZkVsai5sJmE9aDty'@; put 'Slhoc2VtZnNlYi5IZE5hYlVeRi8me2MmImg7YntwK01wYntXe1Biclc6ZS4vcT5Me1IrazpBVmprPko+bmxhVWlSV150K0FXQ1RBUHZWTzVZYD52WEZtRUNEOkh5alswNTcsMWxbcVlZdXNMVSliV29xd3JRUjJ5OllBbF89UFFLOz4oUnxvcDZfW3lOKz1KRCR9emgpWzFiRX0oS2slNyguYHNH'@; put 'YjovclpaPkVDKmZwKj1SaC4scVd5TWQkQT9sZXQlTEtzU3lpIzRMVnpXUCpdLypZN3F0P3k2dzdvQX5vYlFxMzZ6a29jLEVQRE0qY1t9OENYPzY5czRPdWU0YUNhL3Y3dE1HNXI1JT9iby5MRmh3WVkvaFYmMzwlfXcmYClJWkxLJkZ4IzEhOzBFRCIpSDxsLllVJmAvPnE4bVIzcmBTIV5TT3VZ'@; put 'Ti5mZUpUemthZVEzR1lpQyJyLkBgSDdPSkcybVI0Ul50MHBGWlFPVCIjOjBFV3JiWEhxNGlqNm98UkE5QW1PJilgWTI4ZFg1SXdXT2h3WX4yKUUwKH4/cVI0REI/aktdNHQidlo7V29UN0xXKEVbUE0rfHxmJXlAcklAYXNAT3ZgJW84QStJK3wkVXZgLDJCSCt8UWsrfHhSOVskYG5xXn1ocyhK'@; put 'WElEPCk/T3JxZ2o4JUZKIkBybFQiMWxlYm5ZMnRrfjNbe0tSQS9PNS5LQnBSRytgLGMwd1k5OWp7KlFnRih0WVsqQiI1dyZXSmZzVzdkbTpMYFFkRVldRGosa0I+L1tKV09MY0dOKDVEIX1zdSsoaXx+MGw/PitHPy9FXVNNeltHamQwe3EkMSVwWlIzeEojfnV7djZzajwuTCxJJCEsQVNjJjZY'@; put 'UjMla1g6JkUufkFgMkZzWjF0RyxiIyldfUI8KkIzVkk1Nn0oLGozTEUlJHdGVGN7eDFYfio8WGMmVytMRHJuQkpsKnc1KEZEdkA+IloxSj9ncWJQRmJYfls5dHl3bDI9KEEvVzIvcT0kN114OCpVYko4VzlnImQzW1cifGQ0RjI8djQjYz1zV1IlfXZJVEslQ0x9T1d2RWw/az8vPigmI0RpMUx5'@; put 'JHFgQ1o7MihJIXdrbGA1b00sL2JqQExGRWdBQHJpcyxCQzlGPHxdK2VxTSJ6SFtDPCh0fiphTS5LdjNXYFoudyIkc1oqfD8vRSRHSWZ0aHxhYzBRRUJBTVlucUZBVWwjVW94L1AoRVo/fXRbUERJVVVeYkNoSzouXmhNdFQ9cUNeW3xBcz9JTnF2U0RlL2k6I1RLbzVaZm1UQigoMn5ia0FAOmZq'@; put 'YWFtUDt3diRnIUBjQGZ9Tm9TckMiIkZmSGxbMzltSD0+TnQleU5aMHZVcU17OE03RTdYKW9wTCtzeS56LilaJV9aWHB6anckfClDSV5MJlU3cC8wWHtockYzR3VnZGo9dGl2RWlQeE9hPFR3QmRFfkNbPj1KUGEmKS4oPzVSQ21SMTNNPk0zV3gqX14iZko8R0E2IXJlL0RWZy95fVhPMnhlQSko'@; put 'I3IqQWYsPFswOGtPSzU1ZUpreVJCVjomQVNDe0BGTUMzU1F3dz1VQHl7Xm4wOXtEK3V5UmZ2alFQQ2t3NjtYRFlNYEZXVjpUUXtGZEd9c19QXVZpRDpOREg3KTNAUCh2SWx1bj14MVJKbjZZbnZkIkVLIU5vSUc+M3JpKzlDbyt5RTVoN0grQmMlXk1MOnNkQHtWYGBISEE9eUhobF9OLzRCNWlR'@; put 'NFRYTjM8PCpfPCg4YEcqfUtKSk5CViV9SihGQ0glVHs2VVB4Lj5KKy8oWW9udUEvY3Q6fHZ6MzNSJSg4Qi9PPlFFWDc1LndncU8vSmBwKXlueEYuUV1TSERBPz1Mb3kudD55VVFsQVcpWkNsKztXfkdjV1R0VjFCNlE+TmNJLil0UntCb1UwZUlySX1LJE15d3ZrKl5jWGxAYU1EQj8keW4rS1Ex'@; put 'L3lfZT1jTElkZis+Qjo5Vn5DWjpiWjlGOlROWjN8dStdeXNsWEpzUUpCVktLT1N9TSFeaiFMOTdMNEg/JkswZHBuQGM3QCZIKEtNR2MpOlQuW3k5JEJPTkgvTkJbXj15bFVuTDUuXkNrMkV0X1dGaGhaOShwKXp8TXxBY0wzPU5ocnw7Vn1Cd0BXQkNpUzwmI1NQLGQ6Uj8uR3dQPEJOcldCXTVx'@; put 'c1lkaUlqUWAkZEhRRzkybnR+WXhHRHI6ciU5ZHkzSTxzTGE9cyV0RyltN3A9WzNLM0ZJRlp1fXNNOG52P2dnalJROVBldiY0JFYqPFR0JjgwJStIQHl0TGIuMXM0e0dLSzJfd3dxVjVDMHRoZ29uTFBlRC9MNH1zYU4vb3IpNm8vX30iPVN5T0AmdWkzY1hfQCZpN3dabVl5eXZrakFLY1hLJlJj'@; put 'SEwmVVoiIXMuTy5OU1ciX1YvP1BJRilWNnQ9Z1RMe0M2c2hnaSJ5RDQoIjxbJHxHVURJKER7WSMzUFsyZyNzX3Y/QSsqNmdTJW9YcndbcHBMWltCKkk2dVh5ST4wblFkWHluNm4lWzkrJUdEcSt7VXA0YzF1Y1Q+M1p+M0pWSi9dWE5wZGc0KXYuWVJKYz5DK3JPSXJVbiNqYFNmU0BRSDd5TyRR'@; put 'VVd5NXQ/fUZrWjFhel5oV2tFQ2Y/Oy8mQVNVVW9iQlpWL1UoVC9JekJwKkJGOmFGb1ZhQSl5TnFHZm5gKCpPXVtFSVdDeXxRSF4xTHc+T0BrfiEkPj92OW5jUj0zS0RiRGJ5X04wPzo0SSRRa1R0Vz5pPSwselNLTzJtMGcuYm5PVF5FaWhWSkNkPzZyZEVGQiR0KTwpWH57KyU8Rj1UUSY5Tkwz'@; put 'PGpITWpzOHlYYEwhRTo/Nl85QUAyfilDNkt9cWorSD4ydigkVXM4MDozXUdMcDo0Q05pMys3NG12dm5VYW8zPzhjKixUd31JSFY1L1U9YVNGYFsoe3haQ2VYXlZEMllRKlprQDZeeHwqJF92TDxUezo0KzUuQH0uQ0hFbW17QkZSS0VTJS8wQjh3OmZjME53XTJaSUZlMjNha3BbI3cpVUNPdkRq'@; put 'PXJaLDtGWW91PHNLU3k/aFhkUlJSbGRDT2RafHBsOih2O3lEVXxoWzV4IlRtMTI8SXpUK09EcmdWX18qND1pfktXUiReMltbKm5rMENoQjRFI1Q5V0F7Q1FPe0E6eFEmMysoOkpqVH14dlA1Rlp5aiQ9en45NkM7Rm9xcV9sWHBDOExuaSNiJFFuRTV8TzA3OmNqeUUpQnMpelIjdm98IUIoSFVK'@; put 'RmxRKyowT35mNDs/cWlQY2xWQ3VxcWkmZz84V2VrR1l5MzQxNWNgVVhKZjM1OGRbajR8OWw4dlo5JFEpTys1T3E/Li8qfkFoanFOM3M8TVgrMXZJZTYhLE9wYjZydlglZGgvdHB5XkNGX2VwZTl1cFsqXnVNZ2t4Xyh2Q3dqcT96QUZ0RFIiYjRDNGkrXk52Xl9TWlcrT1hXMDBlLGZERSE/TUwv'@; put 'QEJad0I0Zk9DUlc+T2E+QVpnQCY/JGZQPUNENnQ9Y0loaC9KeVZ4TXc6O358KyI2RCUiQjlzTXtSL2B9Wm9SZDJCdCwpXS9RcU5OVCZLJiFXPStUQH5hfEZpMTUvWGh6RDFxek8jP31uIl54ek0qflVgQHsvMWtSQ3kidzVMTVYoTFZaazJ2ZEIuMkdVam4uRUVPaHRAMSpbTiNUXT4ua0spKTZO'@; put 'RXImJmlDK257eWdfMFc4TX5TUT9mbjZDOCZqTDNyQ3pkKih1ZF5KP3x2I259V3ZzXThLbjtQOkBZWE5hWDQhU1FYSTZNVjttd29xYy51aFhuP0p5NFg/dlB3KG4lUXhEU24/L1J0VkdhfHQpKVRucHVldmcsaEF2SHdyfCsqMCUvUG5MZn5xMWl1MHRga2coSkZ5VEtEQG4+WlIpfkEmX1E0fnZr'@; put 'ZyxNIStJXmtVNSNiTDJRJnRGKlAmbDYkRnZuJE57Unt4KX1KXy83NWh5SzQubyp7aUZHZHVaQiNKYHElXyNeI0xaMD5EW1ZqRTxMPW1BWWBUcUVIekNEPVdjc0JzXihzakd5W2w3IXlLQnhwXyFnT110ejlSfUNwNWBKU3U9P18ob0dDQkdHfEpVRE0/fWY/SkBLQnZ2LkhVNl9kaTt2R1kyIXZ2'@; put 'PHZ6KEJ1LjN+WjVpQ0hSWDxLK3Q6KWY2ZjRKQ2clU3Z+VyVOek5yW3QwZy47dVVFXXxdMmxDSlIqNmk9aXErJGZXQSpxQGV9YUk4R3Y1SlZsZj8oKVtIIn5aQFNkW1tRPT98LzRkUE5pWV1dVkVUX3xFRXNuMD9dRyk6bzpNbkJuPWNMejpqQ0NBVGV9QXR+eXE9MiMoby42T15gWCFDUUQwZyp+'@; put 'XU06UikleT1wYFI5W00/O091IWxCKW1vNiouI2Y3X3dPPGNBS1dkbCRSUXU/bHRvZ0E3Jik6WHZHNWBUelN0ZmNDcGo3VG1zTUBlbCZmNEo/cFhLJn1WUz1ERStVPkQjUjA5I0chXWNkQHAzRlVDX3t7Qm9APDQoTSh1UlYmTnJGWz9HSFZqU0gjblUrU1N7RSRaYylMTXtbPXdIQENqKTBkT3Vp'@; put 'Xz5FKjUkP2tMcTBFXyR7NVlvTHd3dzlUeD9AYjFrQU8qS358cVMyPE0qfD1gQFZjOld0biR+UWo0P25vWWtCSFVhX0tXa01yaiJKRkhvaFM1dCR0cCQhXzV9NXJyKzA1JE1KY2ZMbT0qSjRLYTI+e1lVR3QyO1JQTlRSRztXJVhTVl8wYXl7RGBoME93L1FRIkJ2cF0xTkUkRjV9X2VKIi9QezRM'@; put 'JjJKIV01KHpNfUMjNVImTU9peWV6UCI+ZUcyc3F2c2AvQ0RKZ1ZlU2ZNRTxVYnV+YGlnLkZUdTwvNkZaZnVgUzs8RURXQ1NYfHcvI0VZRmdmc3YoS3tgYmhSfSxQe0JWTEokZkc+TXR0KEtCcCNFO2AqQ21aPFhkb09WR2kmdFd7V1lqY2U1O0Y1ZGRgNWU2b14qWGVITWohTmYuQV4oczhpdXVs'@; put 'OktGbm9UPztPKGFQMTldPSFWXUB0WVMsTjhBdnZXM2UmZ3JbQkl5KXQyZXwpbHk5NTAwWH1sWD90bVAmajVFPGwwWmVvUi41dnZKazRjU29kaFN6W089OTt1KTRmKF9HZykiZmN8bk15OX1UQGlhdHozalNmflNZOWgoNGQvPCZRQyYkIWZ4MiNTMF8qe2V+SkRlQjArZHUiI198L0dqKCJFYDsz'@; put 'WyhFL3M2Sj05UHU/WUhOVkxmTHkrWSlgaXwmenBleEF4eXQvVm1WVkNubnA6ODk6eF5sOWx5OVtncDdpajorbFtyIWxCNSUoNiEqJiJjemE5THV+U3dfKXBlfkssflFDNmdoZTJsPl1+JH02ViVeQ0lTOFJoX3VlVFE+aH5PIjByKyU/SlZ8R3spKVBGKmNeN0wqOF0rPC8sbmZBKSJmWXxRQmlX'@; put 'OzdhR0Z7VzwuP0dHTiJiSCxgP1llflN9PXRLaUVXQVNBSnlFL3VzfntNOzMsdXx2cUlALiJmV1lbPWBqLGNBa0IjZU4rUGxbKEVqPWRNdiJ6M2ZSVTAqIzxVfWwuWGdsRTNsZjAudDJffXUqIWhbMiIjcl9NW2R+bko5aElCfWwiP2J4ajs4PD05Wi5BPV19ODchaFoyflMsfD9VaShBU31sNFgu'@; put 'NiJpYDtfQCJQcH4vKD05JCx0Mj99aXAhaE0xIiM2LzVMdkJ5dHgjPyMqeUAlSCl0RE5iPn1GUWYoO0JgOyUoc0o+fWBnIWgqIn5TIXxYOE4jSS5Ba2lNSk5vKFdAdGF2KStyeDZfejN0NTdBLjR7KXBgbGdye3dETkFrQVMyd0xWP34qP35TX3NlZGA7N35hJX1seWhPSGhSPzlPfm5NJGhYMCIj'@; put 'W3NtKn5TdHZ9bDw5MEQzTyZlaUU9RmZMX1UkYzc/ciF9WiUkdGdDWitCVVVpQ1JCLH4kdX1sZX5YNn1sYWBoQyVoSDBoQ2RWJjNPKkE9XVQhaDp6flM1fExnaChITlNgaXYxOUhPQiJYQ3pEQjJ1eHA0bXkxfnUpYDtlQHVeNH0ydD45fF1YLixzPWdDdUhSWyZqWExPUVg5RVYramNgVndMMnxG'@; put 'UzhzTmd9bE9gP1kkcyRYYDtpe0ExeDhYd0B+ejxEd0IuQWtpWEdOMn0vR2goUzgiI3p8WDgjaGA6c0oufWNiPjlqXSJQV2NedzlzfmlgQUlPNHx9bHdKQ14mJE1hI04ya3khazsxfmoocz4iZjtzWCY/c10lflNhMypzdmFxP1V3S0ApeDBwPTlIKylsckY/PSJmVXx1LHk9c0pZJjNOIWAhVEpH'@; put 'dClVK0AqRT1NVWUvO2E2NztQY0RdIyw2bmZxWFd7XWxWMXtTXkJ9ZTp6JnFNXjcxTV5yIWIjbXclWyIjdXxuTThzTVRgO2A/KXhqfmtDc0ViIVF5KX11KjloViJ+U3J8aXJnKE9JfWxMRzIhKjFfVD1hRmpnKDVIfWwrPldiaX5MZD05RF0oRV1mNzFwKmQrc1h6dyIjbXwhWCNoNl5YLiVoeV5B'@; put 'OX04Z0NnUTYxW2guWWh0PmIsdTZ6c055ZTxEOCNrZ2YpISNBdFt+fGBfeHQoJX0qRzFpVmNGVj1JIiFzXl9ac1hVUlBiaWx9c0tOeTVoflh3Y1ojfkkqPEo+fnc/dndgfipfMHhzVzp+PFtLdiVGaWBSPms2e3xPNCUqfVNRPy47b1E2RkIiSWh5elc8fll2JX1iQH0iOHYxQV1eVG92WylTfD1+'@; put 'bj9ScV9zfHlnfjQvem8vN3V2dSghfi5bOW1fc3x8c0pXNFEmLE5lPz5qYH57fCxJVkwhfVRFal85Zl9zYHFVYn5kX0MrPWBOcHMhN0ZoOjdGaHR5cjkrPEAwRjJhVUU6YG8iQFMjPX5XP1ZlYH40X2xPfn5jfD1HdCgheT1+Tz8/U0NGM1lgfmB8fUZ+Zn1oUUxIOVY9VipkX0lQeFQ8Z01kY2o/'@; put 'NTtOMmwzV29UI081PlU7LGxCPHQ2YWZTQFFnS1JHe0c6QG5vKXtiVDtwRDx9eTF+W1FjQSIqRzQjRnBFJkBoKztQZ3IzZ2YuUWN5eTM6LzhNJHBrXmd1PlhkVDFBU2xTeTF3RUx5cEhmPEhCcFlCYGAvMiEpZFp+Zkp3LDtbYHxlLkduUno3UENWfEdERSFIdiJBb35dcSYsPyh2UVN0YVtfWHMp'@; put 'RzZOS1hMNTdaNGtoMSIwIURdQVM2YH1+bEsie3x+TH4hOzxKYHNuX2ZnKWglflpAOnZyKE0hQSIsfjN9K0xsdX1zeX50XSR0bDF6Rl1+cF1yVzx+dX5dfEomUnF8fkR+Wjo/USJ+LH14eWpfPn5GYElWKGhrfn57SkN9cyt9Pl5Ib3IoQSJ1fD9BaW4kfns/WWxXUyhockJOeFJmPn4rPlZlfXNA'@; put 'Pjc1YH5tfDtNRTFDOlNoZls+OzFIKX40SGg4ejc5fjJbRWhBO0VlRmguJSMjL2lbbCVpLjt8bDs7Mn05fjBbY358Iy8raFZdSHFgM2Y4fTxCKj40OWZhNEtCPFlIYWluYCh7O31XPC5uLDIwSkM9L0c3ViloO1E3OXtCdEZqRSgxbX05RCZGKXhCXyIjVzZAUGgkbCxjZD1Sem5YNWxbPmhpJmw9'@; put 'Sl55MHhEIXlMVVJodV5BZXMyYGgsO29Re340KGxHXy5+XTgzNXl4OV5lPnk3JjlMT2B4cVZMTSZPNG5WPW0rcSM9Kn5rWyFefCNNcGB9YTNYNEB+WEIpfj4oSVY9fl4+TUpgfjp8dVQqPih+T1trRENGQiJeeWhUUE8obTc0bXFjWD1fWlQ0dyp1Pzk0NGZBJVsrRGB8X3Rzc0RHMHk3NEJhPWAu'@; put 'Qn59YFdXV0JEcyhlLz56c3NLRD1RIVt1XnN+Yy88SjxgVXRffHxpdH4mSU00UUNVTEd1TC93NF9SN1treF98MCh9fWxSKn5mRWVfSXUhJHc0I0E3W3x3X3wlaXNzQFFYKGVFUzRJdXBQYS93PX19V0pMTFBDcldFWGV6N1s5bXNzWnVmPTdbJXFnPGkpbmZ2ayRZe0NvSWE/PVAoZC8ydnpbWTZg'@; put 'LGMrKzpHZj9qOFFifWpUQWVfQTUkUDxnUHFsX04iZFp8fjgqVU9vajtWT3FOY3l6cU4hKTtzPn5LaH5bV0xeUWpqaXd0XyRoMjYoelcvZF8vQUJOMWFBd05XS0NhIldMOHMofTYvI1pCInVXRTBXQ1dTODFJKn1NOHw4NV5WeTN+SSZYNzMvJjpfX2ZkNSNEd3YkXzFdeGtKIXl3W0I9aFRXXlR0'@; put 'W2hpV2t9IXEoZTtVaCM/QkleYXx9Kjd9LmNgNGRDSDx2MnJqdiYzeFFDLntPQz8vOl9yPUx4L0x2Xio4fX1MRC9TP3VEaHMlM0lSckRzYG5XQWlbfUlWaXt7M2NCWVJpTkRCaXNUUkIvP2JdcUJeKmAoc3p4VCg3YilvSy5vWyNfZlc1QGpNKUNqdXhWL3xAWFN3Ri9nOl9qPEd2U0xjWipCU0VI'@; put 'RHZ7Sn5AU242ciRLPC9aI3U4Z18jR00yMT8jM1VOaX5CVV4zOHR1MUtuWndHYlVkQy9BIzNqelprei5WSXtrdnEra0V1L0MjaE45Qn4+XktEMDUoPy5bR3wmY1Bic0tdcCE/RFlSdTw/UUB2Vj5XUi90SGkxUWJzPl8iTmd3JmBiS1txSCxXKH03JS8oTDJyMit+SzVZb1siaDY+IVtCU2pLYkJs'@; put 'cWFWKWhbdElGbEtJdz41RyskTih8KVlvW2tQTUBtYnlrb252Y3shYXxhQj9WTm09TiZ1KHwrTFRzZTQhYHtTcD9ZZFZ8KVlBSlNoOU1EMDRDbkdYI0hrflFAQnp8akBgMzZQOzAyWjJ9OXguKnRQfnRLaDs4S1prKyhYOj5xSGl8QCkmcVIzI3NfVHRbYmFZdyJOblt4Omp8WkpOQmw0IX5pMywk'@; put 'fHJIRlVvYFJsWlJ8KnhEa2xOPi4zY1JXP2Ypb1NVSWBHSFc0aFkqYFtSL2hdRXlgdmtXOVVobzlbdXRbInRAcW4xLyYzXz1rLml5RXtxRi91QzY8KDNSdk9JOzkjWkBxZDQlOX1JbnNAST8vSFd+XXliYk1oLENIfl9EaUFlL2h8ajZ9WV19Lkt1N1JVOGh6LlZEKllkbUpLP2l6Vn5aR3hbSmk/'@; put 'aiJzenF+Lm8iP3h4ST1GLkM5X0tMdmBnVWp+c0h+LktNaEcseDs6W0t2YERpRFJgUkN2KWgvPlsrQlgqQj8lI3MiNz4rc2hVOzJaUnwsekp5fkYqdDMoPVZFbEFSS0NsTU9XNVVza3kiTilxXUgpK0NYVXJzb2AodlV8Xjd2NGJTNkMuXzFDaHxaSk4qZ1VfSk4yOCl7RDdTQHVPMjp8MX1+Liol'@; put 'KXEoQkN9LzpBNDQoPUh+dHtDT1dAPHN+blBua0l+PDwiLjZgQnQpWC4wTyh0fGNRYSJedlp4SjRuWlgjaXxpS20/OX54TXtWdXZ5fD9Kayl9fWZSKmB9c1UifVZ2VyMzMy45aEFQJD1dR3x9Sm9oVmBPaXNHSVhTPFQiWU13LD5SVzg4dFtUU0wuPm4lc1VBKW8wMSFqOjA4fF9kIjM/Lm9WaSw/'@; put 'UUFzYUUldH5RREt7Xy9PQFZsZVh4MzlPMkxjZCFDR293W3YjSjZUPGtJYT5eQkZ3IUZ6MURXJVtmVEN6SyxOeG4kdzUobzN1P1NRPExtVWgjdHZPJSp3JnsmIiVfRG4+bihRMi8sTkZbPVMiInMvXUteLDBCN0JPISxIfi5fP2o9RHZnS2VXPmEkNGxSSn1VUWJ8Nms3JTFYcW9iRXZiZkg1VmMp'@; put 'Qi96OjVrZW0xUk4yYUNDXXZbJTdecSEpMGhXO3B8YlR4aV9KWE8oc2d7dnQ6Rn0uPkRLSUJCVlJnKCksdFs8fEcwKmNESCY+N0lbfCojcl89Sl92W3Fna3hJNThjT3xFPSlrTU5oPEgqblpYdmIuZSRMKG42SikrOTxIaDBTSHkqVDg/cm58KXpTdjRmMjQ3ekF5Umxne3QqZ0QqKlBrS208T1Bd'@; put 'YFBpfT9+VUZYMygyeSNfMDNPJUMiRUosYktDQlI0TW4qKSprQF5nV1JmUSk9SlNrQVN2KVlZWVVvRlRaWVUwSmlUYixmRkIkTHR6bEZ7VCReZ3BuRCM6dmJwP0wwUHM+dylzKWt0NnE4TGBNWElvQlo3VzR9XkRaI3RjclAoNX4sYWYhcmJ4TWJqRGxST2pTYCZqYUM6VzdbYCgwUlV9cVdvWzVn'@; put 'SGAzQS5ybEwiV2o0WVI1aC4+aiVrRWV4UncwfGh5fXJXNF18aFdsenZGMG4qU0R5QVFXYUs3QExCL3lgL29KRiZSUyg3UFpqJF5AVGtGSGxabDY2V29YI01GJDNvWGQoczRfdGBkZTZZSlViSSF9QjVmaFIoYltoUmRxPz9oPlYjLF88KytqT3VrYHwwSzwpVVVyKENRRFglMk10Q2YjZ3Q/OmEh'@; put 'W1BCNCo9KnhDbjZlSnoidXMjRnszTCtYRTlBY3wwQlAjOSpGeD9wcTpkUi8lbWFdVCNNQlo0cnU0IXlqeiEhI31MTX5raExCYjVXM3tBUXR6KFp3QyFyZ3lKJXxVSGloc1UzfEpHX34yRURWbTZTdTRmOU0yL3FjbTVybDFYQmVZeEhGYFBKb00iXUZGRUlRQT8mLjhRLD5XRy9FQFVUXnpyT3Io'@; put 'T01BLmZUeCJ7KE9UIUc9bGE0RjxrUkpgJUlnQUpSSTQrfC4oQldAKmUrRlVudiJ8a3RhfHZIR3o6cSV9Mj9yYiIiVmkzRSJENns1ISIrKVB8MlJSVkRTJE8hdElMWWdXKUBaNCMyRGt3TT4uckE5fltbNWYpXiltbFRmVy4kZT4zUWVaTTpgdGMoTU5fQURRVDBvYUt5Jjh5YEV1MSJRSTd8UVV6'@; put 'NGVKNFBpfmZpMlVsP2RpXXVaPGFGfGB9eE1QeD9dSlhiKyQ/OFAkL0k5NCRNdjVPREAuMEptT0s1JX1wd0ppMygxMl8zZmxhZVkoRC50W0AvYnk3WnFIe0xqM207aU5YWDNYU35IdS9WPFY7WXlCKFoqPjN8KVB4L3NWNXomfXw+WE5gP1twYVlofV9RNCFQanYyWFUoQT4/bk9Id1k0TDJXeU12'@; put 'd0NEP2hIJCVMQiYkR2FmcWQjLnU6WCl3PmdrQ01ebUNoQmtZUDB1MipuOWVbfFtTLmhJZnNfLEFkQVVOPEd6SmlVe2N+MWgvN2VeKUd1dndXZSYhO2IsdCJpKnZpUCVNSm5adFQqZXgoT2JWQmBEaUhTODxbRmZXYTd9Lk1DUFJ2elp9eEBFL2FvYHByWm1COjl8W0gpal5DOjp1UDRWVkxKcUc6'@; put 'L2MqQWBlO1A4S2xiQyM/OzQlckxTMn4oT2phcylzbiQkOiVEZkEyb2J4I0ZKRndpVFVkWU8xSmsiWm99bzhmdkJEISpOcUJSdUFZLGwjP0RJflpuVUVAPlNPPm9rYzpMTz8qNlV+UlhLWCwxX09NS0Q+TkY0QilDMSJXfFFLTFlMaEllL3N1aiVgaktDN24xSy52bGhvVm9CQi5wWjNSXilPK3JA'@; put 'ejM0KExiWyI3NEgvY1MmM34panNsPD81Pm53UUU/KHZLSn5GVXdaQ3g1WSJlInBzTCVBL35XZytWaW8rLHY2SWVefEVqeSEoajF5WCFfYmFFd0BjM1I6QGIwInxbUl1gaXk0R2VXQCIyYlgrREs2dHF8e0I/Vm0sa014QjEobEkqS0BxMHB3QTBkN3wxIn5yazJhM241JEYmPnRDNWYqbTBwfUtm'@; put 'V3c9XjBWbk0sdlgoMCx2Imt4KGs8diE/UlRvbUJ7Ul5MNT9rMywhNilhUnlFb0RWTmhTIl94WVV3JW9LQS5RRkdjWWBYd19YbW04N1NkL2h8KC4rT2ghMEQ1eGkvey9dSXd0RS5OSSRfZnVUWDlTbTBjKDw6MFVaVyw4PE9HOllRVTRNQ0xOWHE4SDxkJS5ifHhCYD88VlMwV1dsbnVrI09Xd2x0'@; put 'e3cic00zMy5CdFNZWk86WWc9NXQuKnZXLy9gOiR3fUZTKyhzMUVRQWJTMS9VUlRXfEFSUmlOYGpncyJuQi88TERLWXoxXjVLN2M2SVQqSiIiPEEpK25mK2BSKkxaPEZZPTBzdn0kNkFST0NGfTU2dEJWS1pgL1IkamI1IXtaTlBZPkNVfkc2Y2FsO3RfYWExWkRgPXZnfS5+TFhYcEJ9O2gxMCJl'@; put 'eDhwaVR+PztoMitPdH1JV0hbTm1NO3pydHNoUDJTZExYM0gjVyNyKWU4JVI7L1ZIRTZuSzF0V2I3c2tsNGJTYUNBdGNmdFtHYU1ZWWosLDZ1enZAcTNyMy44UTFFaWZQLzVwYixAMGlmfD9ianJieXh0STt1P2A9PzFMd1pmKS8qVG8zWF9VW2AjbV9DQzFCYTxWT1NpcDdRVyNTXUtJUUJhXWsu'@; put 'OTFMUF0sXThTUn4uWFN4YzMqPDwrdW07V0RPaTBHe0wsemI/UF1adSF6eCNdWklMcFMjenlWKEtuPjB0Y1BwND0scUNJXlNGSld8Lj9UJEMmNUcvZ3NNMmQvQHduTC8xcmNDQFJHbnVHWEZOcmBIPDxWU3pKZld4UytDTyZeSEVYQ1BvezZvfF53dGs6aCNZSEQ2N3l5KVRqJTNjeSlqNFU9a1J4'@; put 'Pz9zVHZ5fDFFMj9NQmh9SnBYZ1tMTFtdMyIrTyNQJFNnYywiV28xaixDKigsWX1MXl5RXURXNVBTZ0dvTj5hSzVnd3UvbiMhWmsvQ1Esei9WLGMsa0JaOkJWNG1IcCYxUTcoUCpfRS5DfTVsSjs4dDhAd0BDPjN3OWM3Sz5rS0hbVC9fbngwNm5Day5nV0AwdGtFeUEjZjwuflNXO29ER2I6VThZ'@; put 'PklmXmowdmUlYHtVb01fcEd7R3BQdGgvKUh2X2pBW3JGRDRgXlhjMFh8TENCNCopT08kVGZ2WHwjNkQvOnRCd21HUmlkc2ZMfjNyIkpaaTREL1VSZnM2RW51VEouKUB+Ii99VlZYal5nNFk0eHF9KXQ+b3dzLnY/OUd8PnZ2RE5UdnNSJXlweiVNd0UmeVlCdGo5NXFYPTlqMjYyNWNYSkFzOEdD'@; put 'TTBQIUp+fTdvfjNhcG9SWFUkfTk8TjVCJWd0TzBJSTU3Xnl+dlUwODZWdGxmaVFRPyZqU0NBWDdbZkR7O3F1Mnw0OGViRC5zP2AyYmVFKT99MUpDJVJXUzM/UEBBPmByI2BlPz9yfU49dEpoTiN9RkJ+MzJYR3RXUiN2fn1KI1hxKj9iLm41NDpeWHE/M0kpX0V2R2taeHM4N19uLmh8MyM6KEAv'@; put 'QUEvc0Z0UFlfemt0Y2k1Ii8xRndfSUZiflRzaT9IRzZiaSVrdWo6ZmdBQ1t6Yl90U1BaLFIwZj9AR2JkNi4pOF8+MTRBSmhRVjkiOVtIWTtTTXBYfD8kXl1dXz0jRHI9eHR3X2pBaHRTRmArKm9IXUs8e3h4KH5DdFtpRGl4X0Z7MHx9MSkwRFgjZC9dRnRpfClQTEJBPVovM3siJWQvKHRnUjQ6'@; put 'WihuTD0wZD5WNix+djNhP0NNNFcvQHE1aW88WiFdfCx1QjQidHh8QERMNVAoSVlXUzp5V1I7dk4hTDQ4UTY8IU0zNT1POklPai98KExwbkJaakxpcyN8fi4sNGVHeGMuRlAoaFZ1az9QUjRTWHlRWVNSTjY8dy5nTWlEKD4mRExKR3RmLCRQIndbcSlATDQoNT1MND9fcyh5NT8wKCU8WyleRl5O'@; put 'fXV5LmlPJiNReiY6OFhRc2dqUG1hU0FpZjlMSmxsbWxuMDJGX2E3QzgwPkI/JGJ2SkRrVU8jXnRIUShEXW8xPGUwJGJHL2cpPypWejFzJVZ4TzksW2hiST9ORi8hekQsSWx4RFpafEw1MV45XixFUnI/PWJTM1svSVkkV1VIW1haRjY8USxmdmk3KkIvdkdCSyN+M0lEc0I1WXVXOH1vTEUvcEdk'@; put 'bz0wLzFoYXd1ODFSOXBXUHJBYnNQc01Ydjg/WCw2NixCWnYheCJ0T0NqYDNrRUAlMm1Hbms0X1Eodnx1WypxK3BITn1AelVQPDpWYmNpVmEvdElpKEdGUU1EZ2hOTiQzYjM4QmAkXXBadUF+LmxpTTdpS0pCcnN4PE9wOHMjMWJSbU4oeW5XU3BMTllxUEdESitVWD9yfSsmQmNwTEtMX1gqb2B2'@; put 'SW9jcUNbbklAfC9KWlglPXlLXT45Mj58Lk06a2ZMRUhFP3NCOClDXW5rZzRKMl1kMWBeRUFXQ0R8Rj92QmR9fSRvb2E3KntKTTBxfV85ISI1eF9JTlNhTXxRUnZ1T0d3XSNieioxXjVhU09pdHpoWmcqdCRZL3gqaWxpdTVQLERJPnFjI1NGdmo7UnhNRCQkMDgpd181Wi4/JC8hYXZUMTYsbj8w'@; put 'Qk5CP3I+eFV8MlNALmNDLFl4RkdodFtpRDlIYWx1TV4pPXQ/fGZYfFI7Q3IrYXxdKDgxXV11QnkxXXBLQDwibTYwSXAxYFo2Vip3fi5qWGNDcExCfmBNN3JSLE9idFt1YVtYejpGK3RFUlM1IXV7SDxBNH12S0ZQRyw+R2MrQSQ9IWZaRjlBdVAyeWFba2RpSy95VXE+YF53SDRxWyZKL2NsWGQr'@; put 'WiozUV1LRmdlRyt1XkVZJE51NjxZUThZajVlV3QrY3dvbmxYLCEhJiUqQnRxZUFpS1M3TWRlQHRwN0pZJiNtekVJb2Yya0YqR2l0X0hIJipNTG08aGdRWUcqL05vO2JifnddSWlRRGlQIkpaPWh1ZWpbImpjLnM9fDJtOzZWfjw8RmFAJkhsdHsvZEBaQ2dKfVdTL0NLb2FWRVhCaEdIO1VSQGBb'@; put 'UCpgZzRgS2hCcHFQTH40ZkRDTytNMkskTCVnZm98KTVGczEoblo9bUhbVkIrR3B4RW0rSC9TVypgKGt9dCJVT31hKl1WeSw4KGZUTGY2aHl+dkhIKj1UbVVRQGo8RFddUERLWXpnfGVXQEM6UHVQW0YiTEBveXksYU0yXSwiQ1UsPikwUkR9WFAwQVlMYnYlXzR0d3xKSnxwckhsOTJyPCl+S25t'@; put 'KioqL2h8b1smM3pQWEMzM1JzOVpNISRmbE1zb2cpMTI9SiIpTTx+SUt2I2N3RUZMeEVOSSxjXVRRI0IvP1hfQChDQysxTzFSUmM2QFcmYCptJElSb1Z8eFJGLnQxY3BpXmh9WCMsODJOJXFMaVUleWNNRipmQD1+RXlVRXJuR1g8KUMvUilKMCZLVXU1fWY1d1toVXt4W1tsQkk0Mlt9ViRUMUZ5'@; put 'X09+XShgckVHKnQlRj5+K3pCak1HaisoNihyIzU9ayhxQiNkdHVbM0xASipjaHw9fjA/cFJqfGttQk5BKmQ3T0JPSylfNnRJdWIvamF+X3pJUk1scX0/MkN6LFRjW1dFanwzaCk+cWddUyh1U2NIeTd4RGU2Wzk9RS4vQS8jb2l5XWtZaix2UUI8Q2xoVTZlOSYiQVd5dlR0TVVhQ2N8IWo1KHVD'@; put 'dCFUcXBOaGY3KEM0KENlMitHXyEzeUJOY3d4biFNYipVdmdpPUYwQFg/VmtXdTMjU2FkIk9PO0chIUFtYnldK1ZVcUxAWU5vPntfMkxDRXBmMlJjU1AzKDx9NkBvUW5pUUhUeVBVJT88JnhaRmkpYnVfVkVEJVRLRW94RDUrQnQvK15GdkZ7QVN6RVtpTlZ0RHR6SG4uOUYmdXBWRk14KEFRdXpx'@; put 'dSx6YFg2OUxEUEdWRWNjYW1VLEZXSkN7THhRVlpifHBAIlY4KlZPY1chSEJaR1liUnE4WnMoeFo0NHcmKUF+bWEiLjNgTmJqRCF+QFZCLzd3SWhHaXNNMSFyfCFoU3ViPH5gXnN5dVdTM0xVQmtFfSxwQ1FANT5XYVE+PEVhfFYrIlZKRzokYlltSmhXIUQrYHFQPFJCImYvJU5+TEV5Znw2WSNM'@; put 'PTBAdkRbZ0BhV2Fka1NBTX53VW9QJF9ZdUV9Ln1MPCxUZyUqalUkYG8oQSVbfVQpdWNbQiNnLlVHbCtvUigoSV0waWdtWVU3TkY/NTUqTVkpRHJRaD9LTHxEZUAyV3N8P1lDPDlfQH5dfCt8cT9zISRHMypvbVRwIUwqYE1eRkIreUIkYGVFe0FibTZlSlB5Jn1GQiIzNCooVHY1PVJJJiwyfVY4'@; put 'WX1gdCVsX2R5KnI+LkdPT016blNMdmBia2pDZUAqWnF8cXYkckZEbz8oS1dsan5+OX0zPF44MH5Xb08+UWkxTFk2RkNtWWlSK3x2JkA+MjNlVipsUntaclNERC4iUmBoI3dFS3d0ayhuX0AvUTs/UzNzfDt6VGlqTis1UEwkXzxsW2NleThwZXBjRUlMKD9AbDFkOWp7dlZKP1cqK2BnNF1IMiZb'@; put 'dU1vVj1PWHpIVVd4fWxRZXl2Njx9Nmcla04jP3o4UFBmYFFXb00kXmldPGxNb3p2NVpoc0ciQS95R0FaZUAlQStDe0g7OF1KWHo2TDo/KUpvfEVZdD8oSz4leEZpPVgjaExTRjh0UkExRld8WytXK0RLMngofX5pd2tLITFLOi9EUk9AM0chei4+PVZtPm15NyZ9IUMsVUtOdStuXihiLHhqYUVl'@; put 'dFh1cVM5ZkFZfj5aa110VFh4NUp5QitbZ15PRD1sWF8/MltbbEIwU2ZZQy5nR0BzRnEvVEtvMjJdfS4lXW06b1RWdzhAUCZFRWhPX1UrPnR5NitES3t+bCJKL0cjI2xodiFybERgKHQxPX44SiRfe1pVd0R6aH59RlJ+KTRqWCF+cGlZQFlCUmMqQlI7QlNlTWEpR0hwajpoY15jZmtSajRvPEYu'@; put 'SSpEQzMpWU9raV1DLk1mK18vNE84KSxgKmtATT9bMHdsMUVOTEo8emArNntiYzxOW3xdYEQ3Z0ZILCs7TzdELCY4cVNudF0wTk5ifk1TYi9hW2dGckZWQCwwb3tYLnNdR3U4fFhlSnQkMXYyViU7ST4+MiwjdDFGPGE/fld2dFtDLE9KdnY1cWducUw2PE5PNExOKkltLnZlK11IVzNBcENPbVdG'@; put 'RnNrcG5Rb1Y3Myh0KDQ7Lk5ZR2w/Myh5InhxMikuTjNMSHo9L0xbIXoybjpJN2ZaJHZKdzxwansvJjFpZEBpPndnVzFLTG0kNVcvTlBDMnVrZmxATWdPTTclLF5DfH0pMFoqYUwyay5DRHVRSTY8dH43LDc/NywxZVZjTDoqKFgyPzRWS0hzWTEsUDwkcH4qRm11SkEoS1Z9Z3Y3OkMxVj5QTUpe'@; put 'SEd2YCFETjdwTEdDSFQzaTtVV1NbQ0tMY0F7KVpaZ2d8fShhRzJGPGZ9M1l+Vj5QN2tDS3w1JHM/a30ubml+UTRHLD5PTFdFdGtIUkNmN0xqKTFGJEojZ2FsejNtYzs+IVQvPm5rR0c2ZF5qOl02Mz1xWU98VyJ5LDx+WnYvSUtxU3EyN0k2PEosaltKZjF4eVg9d24/KV4iV0R2Sjc8M3F3dltK'@; put 'cjopJmslSmg2dSt4WnQwPT5sQTVORV5jLipHX1VKPiRES2BrTlhlXlt0Ni5FRVYxP2koIUNgPk1QKHZgZSpCaWU5SlV0cGFbfFY+JH5HT2RzVlVrJW9fSkYlYyh9W2hCNDd7MGshIkAoN01LQ2RtSV8lO1VJcFA9RWdYRnQkIU51cDBmPmQ0fGpXTzs1aHhFNTssMWhhKU8+YDAsV2JJNmBvakAj'@; put 'NkpFdis3bkw/dHg2UGowWHlkeV8ranlkciMoK1R6ZVslZTBZT1ROMXt8dUtwWjlweXksfDM2MzpOMGc5MUhnTGk9WUlLY0gyWkRHaGQqdlZJSkIvXz5uUThXcVp5eS5vKW9EZklSQCgoLHt+KG01ZjRiUExPYEYuZVRtNU1KIU1SSXJudkZrdTNHOlBRL2Z0MElzU0Y+SXdPVEBXRHpqcStSSWBq'@; put 'LFo6Zjs9Uzx+JSE+MjRFeWFQbihIO3lNeiRmWUNiQGQqNGdzVWZpISNXejExOHVhU0k/bEslYzFuJTUkfC82RDQ2KC9yfkAhfm0+XlREL0A/S0w+KFJ9KiYuT14pcFVlQzhbL3Qva3Rtckg8W0NRcCYpdGZEfUxDI31sVHRrN3RbPUkiP24/TDxnZVpyU0YwbyZecnxfZiN6LmhMWGVXXVFCL0ZA'@; put 'TXZnImcwSmlXQHtuX0VrdTIzIUAqMk5XbUQ4TFMyQyIlfEAoY3xdPixQMGJkTDNGfFVvVnNpITJDaWB4Kj53LjNRdE0uKWtxUlE3TVM6QkRARz5GPyZ+TX5KZFohanpDTnVLVU9ga0F7MDVJcztveiIhR05+VE1LZURKdkQ9fj14ZDsqXlcscW1Vb2l6R21YX2RWOzNLVGJjPEJJV1NfMWxoO2x3'@; put 'SmBHOlYjdy46dCp3ekA5W0JlT2ZUZmBlQnUmfFV3QVJXIk0rYGVBa0QkZzE8VVJqP21sdFtyVy5McG4heGRHN2p9T0xNcXUsYFdaTXcrbiNmdnpyQVdSZHRRaj9UMyFZOUVXRyw7I3VKWSx3Tng/WysqeE5tPjZtc2s8JD1vYikwVEExfFp7fi5sP0tIekZaekljWDl3TitLMUIsW1N0SG9kfFhQ'@; put 'PShDPCw7aXNLR1lTeEduTEtgMVI0eXI6XT84VyF1JkZgXzR0TDQwNSU3MDIoPiJMW3xwM1IqYEgjcyhCdWt4Xlt0NldjLmdOYW9IQj4yWHJHPHBSQ0R+QVlraEg1S2dFSjU5L3NzX28jK31rc0hwUndbZ2JVd2ZPSFtSS0pXOHhpY00uYGhoV345Q2cpbyxUZjgvRkUsT3E2NWZwI2tWSitXYik1'@; put 'XypTMEolZ1d7U2w6TCU1YVpdfVFCNVU9YD1FY0FrUyxMSltqME5pdVZlNl05djJ+K34uImh0bnsiNFdLTFRxdVsrKFdqYT9vK35+OllILi5oZkxyLzVSZz1VdyYzRFlPa1h0S0x0UH0uITVvLlRYQjJwaTB7NFQydXFuWXg/LCFUVGB7WjpDR2F8UkZbNUt9fG4/KSkhfk9qX3dsSFBWPWl6VylD'@; put 'YElRSkV6YllSS3FiaFp1R0d0VClOd1kpWkVtPENJVzZEQ2F1Qy9JZFFHOVNqRns7MXFZVndCT2Q4bGY1KFspb1Yhcl1TRE5baUg3X3xtPi4hdkhgZGFBV3ksRVV1TTkmY197ZGolcF9yQ3V0Mkp3a34hfiZRRzlqTlZnelJxa31yVG9bPFh5fCQoSC9AUkN5Nis4USJzMUUkPVZ8V3UqKC5FISRW'@; put 'RXtyaE1mLGFxIU17TDBfeiQreUhVdTwofTBYQy91dD5UfEQuPDl+L1crYHF4YlBPPyh5YStXWFlhSkdKP2wrUCxvNEc8ZktrSW1OTnhIOjtYa1paRnthazRBMloiMyx6YlZCWWF2RTpNT0pxQ3d0clJDOkVVO3ZSRE44NzcqUkFsV04xZGM1LHRlUHIsZGY1RTh9REh6U3RKNWp6eTtMRERsQlc4'@; put 'TmxOSlAwXythY2hFNTRtMVVKeDhSVHh3Smx8dioiYlJ1OipUdnZYUFlhZTN+UVVwJlllNF5hK2syUlZqYnh3MDFUZjRNSDU7YTQiQTNMYEpxQyxiSGVkLGt3SXQwSHE0UW0pLFsxU0k1ISs8cUVPeDZMd1ZGWz5WeUFedmgqfjkqZkwhRl9nRTt2O0JCQkIzWTRGJU44dCopY2RsREgyZD5SbU5z'@; put 'ZDwxTWZqbVdGZS54ZFM3bzY0KHZYK1Q4VllhT0hqR2NNdHRKWF5BKnE3ZlFvVml3I0V6T0pTWSRubDB3VWlvfWRwIldlaH1LSWdjeFErIjtSfih6YyNZQVFONkFEbkVuRDI3Y1NSeixiK1NpRHRlRSN3R2JWNExudHhQYk1dRCF1NSh1OGNDTWJAL35qb0hnajFpRGsyd1lhXXpLbEoqL09rMFtO'@; put 'PXQ2cU5BbmVLPS5MfDVQUEhEOyFDRyo4PE1pPFA4Tmw5QVQ4K09oSmJZRyt+KkQ6RFBIUytXYS91TU90PW5fVmliVEhPancjNl9uYkZCZVpRMiFCLkczPy48bXlIOl50RTBRejkoSjc8LnkiXzlfMk04YD11a0xVOVIwa0IjLFRPbV4mc2t0WTIsQVlVdH5MVFBJQ0JHVUR5NlQ4JGZeOT1baE5t'@; put 'WF8xNkF8N09YVlgsI2dZRkZafFh4bnQmTTxvKlpOQl5rTTgkZl1HX0wvSHx2O1JqTUlCcSlXUk44Zl1rbiE2ZEUvQXApTyIlLjVCRCV4bFVIXmFrRUVEfVdeQSFufjtoeERBSjs1TDpJPk02Wlg3JWpbMH5uO31JO1VLZkJrIVQ0OTRdSTJuM3RwVSJ0fUhEQ159P3ZgYkVrekpbQldYbENhaXRZ'@; put 'cnRtQkdCUiptSDo6QUlaKSg2QiFXTUlSNDwuWyp4V1E/KGNRTDNtZSxNb3U7NE1VWXUmWUI/P0V4KjooIncjdGZPa1U5ZDNkLlJPSi52eDRpS1tmSFh1P1VEIzRPLyJ1YDlhaXRSd2l0WSE1Kz4ieSsoOXBCZmIsSndFemRlLjUzITt0LFQxSF1pQ2o2ZF0xNyhhZV5vWjR2W0Z0U0she0NHRkJh'@; put 'aTNXS2ZMR0VVd3pCLmoiZ1N1JTtDMld9SEg7dWMvVlRCXWpNNUhKTmYmYXZCcmZbZmpEI0QjRDFINmtESUdhRiJ5S0dnNi9eW2JQUHdBSkpOT0kjN15RekZQanRZcWR6dj1qblQiT1NEQG9DQW5ve1AxM3RpYmZqTVIvMDZHdFBDYWFgZkxHc0l6WHY1PE1OSilXPTBSLiJhczgwK1kmPEVqY0VF'@; put 'PDR5bE12NUZXeywjVnAvWCJXMFdqNEt4ZHQmNkJhM2VbZllVdz92T2pQPzdrTFV1byYoSDE4elowdW1tUUZCZE1iem5aUnNDXywid1pbdmlzY0xJbjNENi9JMyxNbXhsOD9KfiI0ZCFeZHpTdUdCTl9QXXl9SGBFdFpkUCJZODx+LENhNnkzdmwhV006cVBNYHpQanltVk1eUT1oTzY3OEZESXlf'@; put 'TEsiIy9hJmtIYlMoeX5odFkiaW5hZHRdK2NTKTRdZGtha1EyKCJ3fipXNyRDPkckdW02R0JmTVVNe1B9MmBULFpAQ1EydiMxQk86VkM1KCJ3YnYmc3pOVWNDQE44a3ojTXV0SkdtNndHMCt1UD1oM2R7UE4zdU84TVRdYnZNT2VDKHo6K05mTEd4RVsuOUY6WT8wLEw9QCFyXUt7UGNLUi9ZZEY1'@; put 'NWsxKT1DZnptUXkhV01nJS9JcHgmTTxQVW95Il1tVUNkZXdCaGddeSNUd3VEbD9eSEwwQ3RrdFkjV1smPit3Zyw3PUR9RE1rcXVKaXRZJm84U0V3UHJ8N3l1NSJjbHpQZmUsTThmfkI4T0JaNFU1Mls+KVFdPlM4VDJeWD9kdXBTQyY0Vl8+SXpCOCp4bFhPYUsyX1lrfSJHUWlSXVdhbXBaeGxU'@; put 'IjZNe0poMXdXaEdrWGc0RndQLyJ3dHQxMVdIUSZQSnVMaEQyIj5vKmp0WS4oUyw7KHBMTkp7NU5fbVhbaSwjOGtPQEF5UXVXYzJ4eUI3RmthflJ7UHBMRT8xM0xqTzdnZU1PUkJeMXxyLCN1dWl1e2gsTEI1UTJJaiwjPVBSI1g1RlJxSFpCeDcsNzNObUN3TEgkQDhHdzh9cXV0Z1E3S2tfTT5X'@; put 'ZzJTOFlYSE9ETmRJeWNqYSNMYipDXkpBe1AvRHk/Iyg3dmEvNWpkRUAkMFRlaXRZeCJ9eHgve0tJZzxDcTZ5aU54T2ZNelovWCVDZlBCJWtXTVI3Tys6UVtmfFg7KX1IPUBLNm9udkJWfEoxbmUuNTphVUBVcVpCNz0qKil9d0QyIk44dz97Uns2Lz5URGJiLkRfTGAvc3dBZjVjez4+P2lSfHZs'@; put 'VCM0NGtjQTwqeGxjdmxCZTJ2Qm4iUVMwV3gxY01MUHpsO3k6Q3ozPzJpdEdRYXV6VyMqO2F7UG1NNF9fZCgsUU1nSlN7UHY2dV05KmZRbituUXYpZGpvaUpLPDwxaGU4WDJNKS5OIi43Uy9FalB9aXl7OSpmPGEiQ3spK1oiOjMqcnF3RG10NDhwOzlmP05EPE1ZYFFCZGpuQD5lK0RsYG47T1R2'@; put 'L09lI1Y/RkJ5KHNMUWl2Uy4+YHg8RXAleWRoTHE9OmlBezMjKmZdOWdUTEQjRzg8RWlLU1Nid0RlISs8KGt9P3tPMnRGZllAKDxtQ21MWWU9VWwpP31XeWM3Q0NaaiJDeFlsKkRsTzUke0NpYjdLa35KSEdKP1dKTjZ5bCJqXXV5OGtIaWNLOVhvSmxiZTJKWkw3RzExKlcqUTpzISVXWDxpdyN2'@; put 'dDg7enZSQmNqZXVJT0JneUBzOHpOV1F8d3dMVzcjTilNb0xib05ITjZ7WnhqVlV+SFEkeHYuV35BNUZraXZTVTM6Q1lONVpgUThHY2VNR19XWWFYMERHS1JyYFEvfUB1SVFENjQ7IVhKZ0UzanZDd0VJZk5CaXNpSzZPTzgkYzJKe2hbaVEiRmZwWi5yJElfYU04Nk92VCJHcTFCREJrWlhkaklJ'@; put 'eXVbOSs8OEJ4TH02M1dySV41YXh6c2VHTjZJYl5PInVGS2FTXVp1TXA/Jld2KERsW2huRDgrKWtIYkltP3FdMVlhWWFXM2h0bi96MTo3TD9bZGkzLyhBISs8UjN5RlFZM0I+KmB0a25BeXA7ZWVWOGlhb1F4UX5XRVQzbz5iKih1eFlhdENVWFZYR0dNdDVqL04rVC8ueD1EUF51Vk5BWmRMSjdE'@; put 'TmJxKz19TCMjWTJoTGx5YnQ5RjFFWWMpMFhmPGkhdUg6VjdqRU12MCsoRCtISCpETTFuTjg2T1h4ci8+d3U0cEVnY0BEe0leQk42QHZtRHxSL1pRVHhjWjVgKU5KWCpEbEY1SUdqRGByIWl1V31TbCVVY1dQPTdrRHc0JTVXUlYoOkQ+aEVNPD44N2khIkE3NXlQe0MiYUg7fXkrQnBaZE1ydGhj'@; put 'bzRPMikoTk9XZU9YRGwxR1hlZ0xsQnFpazc0STwhI01uenNpLHZKd1UsSlQjMz8uUkhwdE9NVCY5PERBZDBrMFBda3lSKjc4LmdedkRYY31LSDBNY10/algsYGhWeWRQYzA0TyJSfmo+eV1ZZDBtPEYkNlIwalJHRWRJNiF9S0JpRF9ZdmBwVEwlX3Y6TTwqPmFoT1grekpKVUpsbDYyMWVpa0NM'@; put 'KmYqL0guPFhidTYyMWg/aFRmdGFONHRCLmBZJkpwU1AiVnVAVXhAYzxwalNEXlo5SkkheUI7WVZ2Qj0+UnYxd2lLd3BRO1k9NVpsZCl1SUBPfjArYVohN3VdZyMzSmxEVGJSRypTTW9HeyoyJCVKdkVwQHwhe0dzaVV1fTUjWEJUe2hudCw4aSY0bWtib1plalkvUTBFcSJAd2FTPUk8VSs0S2Zk'@; put 'P1pBIz0sblVrM1I2U25MS0A/OVAhV3VCOVglSiE9Q3VJTyxXek92OzNqUzxfVylQa3spRU1tOyVHQk5LczwvK0dUaU86dDwzPDNmTzhWcjcjJnRKPzpbWDlRWF4se0UsZiFrRDhWQnVkcmIlQmQmIWlSTixsRHdtdzFEb25CQH1TZ08kSGk0QlAxRUlDMkB4cVQ9V1dFI1Y/K0Y2YzBPLnIlO3Vy'@; put 'R3Y7KyxLaXAsOkdibzRpRm0pKD5ZZDRzQVRBQnhhYDtSc21IOVBtIWRWZlZmKkNwSygpaE5bOVV6fCZtRX0wPXZ1R0pyWzFCJXB3eVZvdFolJW1DI1Z3TEslI34/MDtBI1FFaT9YREdhKW4sXzQ6WkhneWtwNj01Xk45bStScGtaS3VvVUh6UENaNT1hZlJITTZ4NVFXbj1IQ1E7eHIxOWlBeVpR'@; put 'N0lVWVYsWFJ7ZDI4bGxddyhTMUBBSSosdCFEeXc7aTJDaXB2KmlCOURtWGk1R3cqKHFsQyZxOFYvZTxBbzd3MW1vV0hwMkZGeyEqbUI+ZHBWIjIjK3VxPCNtWTQ+Q0ZnM15QXX5sSTJ3b2MxJEw6fCh8KSxISW4kdSEyeClManZtJFIlWEM3TGlqQC9qTFsuOysmYkc2RU1UZ3hXOkkpZ0RIQj4/'@; put 'Qk9ocUdhLnpiTUVIK2N0NHQ5NWklS0JAODxjI1RiU24pKz9FSW4kIU9nN2g1TzNPZ3klYlUpUGdUSls6Mk1UKG5RQkJ2KlJNbTBjdS5AbjYyQVRxIUlickspPEd6JjJPUVssTiF2ZWIqeFU5NipwOTY1TkZUN1J7JTNDRTEofEhOZDxwI0J3P08+LjlCNjdvYmNZT0I6bXxhYW87YXhSYTUvSl9G'@; put 'WG1FPSoxQlNsKWZuQT5QI2QkMyEjNiJRfCk7RyVCOiRRRChkKFBrNjI9OygqWWkmZ1RrdEdLYFdCI209IypzQUtEZnozPT90M0c4MjVeP21Cbzl5ejRVWUxnOyR7cF1eK2cwUGIhb0AkR3QxRjIraVIsfEhFZElNa3JGfUI9azAuYzpjN0tSXVhQRj1rcmBJYlQ3eTMqQEVSXUdTYmBubGFqMUtR'@; put 'fFhoRUN2MS8wRSk2VV5weiNoeiIsT1JEdWxZNUpBVGRSOHRjWDV8RnAmTkFldUk2QndPLFJUYWE3TzVBVXErTVVwdV1jeEcyRHErLGhMdnxFdUlJLCZAO2F6QkRIZFpnSVczP3ZwaDtQd2I0TDJYe0MiRkJBQUFBQUFBTHZLdDV1MzJKaTx9Xk80Lm9HNXNTPmQoLjBpLm5XW0gzLCImeStUOUtq'@; put 'fGBffn5KZ35gWXRXRSZnQ0dvNSZeVTNAOV5ScmNSeElUUH1EIThWPGRneEpyWGQoKyZ3dixObD0hYSglQFlTXytqOkR8ZyJ+akJBS0AwOlU4eXM7QVFZaDVzdVJ3TklXQCZ5amNXOW5EJTxTQSo1c316OlUxRThoRDZ8WHtyMj59ZX09eWNIWVNgS2hIfEhrPDk5Y0JTOnw9a1M+PTouZTBfP2xR'@; put 'SStbLC8lN3NmbDEuXltBUFludkpTKFtXIyYuR0M/STlqUiNse1E9TmRwUHB0VG00MDgzS1dmSlZZMjAzUjh2Xn5zL0Z+NCNjdDt6aHlkdU5efF1EKmFRQTVOIUVNT1FYMEBQJXFHaX5zMiFbJlAza2F6XyI9N0BeJmc/Xzgwd2JyYl0qRXFgJlJ9bCNhV2trMmg6TEVDN3E9Sigifjc6JCVIX2pN'@; put 'JHxUQFNPTDg1cyxbNy9uJjRUM2Q9LnZoXiV9WzwuJSZEcjROOEJxMzx7bHFTNEFqKXJ2PjNOTD58WTlHJF4xaypsbUc6I2Flfj4wb0lfRj8kNEc/WCp9IVgmOjRfbDFhPTZqPmlWWztOWVokJi5gX2N6WXNPLDFGTHxTPi9iQFV3YEEuSV9mOiR8I3J+TT8lWTlTWiUoL3lufWlVVnZhd20+Y3RY'@; put 'PkBLP2ljVXpaSnV6ZVE7fj4qb01vRlFwLztJRyFecWBRZCYzZj9SY1prbWM3Ml5SU1N9KWsmMDR+XXFzb2JVMS5TKmt+OiNAPTlDKXlLNF1UYFg6QWl1WV9rQEk8dj5dLip4SCVmajZyWHZEdT95JDx5PTpmX1ZKfXhbfTBQOi57Qj1wXSt+bUskLylzcDJhISp+PW46NEcsfWJvQlB8QF8ldThR'@; put 'I29dbzAwYnYwPyNOR3BXfWZZJnwveldIb1ZbdXZVTkQ8OCRpcDs7TGl8KWB+LndFOk16M29OdGExcXYkbVtUeWhdZklpKzltOnhfbG5rL3p6VX1DRltae0FGd0ZPKChwUV5JUDhtb142KyRxb1EoJjF4NWNMfnl8azlVYCxObVRRR0MrQCQlc0BOXV1bW2ZhTFdYWlNPOCk9RDgucS8reTk0Tnc+'@; put 'OT46fHRmUUc0UlZFeFkoIVVPO0J9UjVAYiYzY2hoX1QxT3s0Lltzc15bbzlvRkdAdH5XP29kV101aj55fnk6JGEqfXZRVS53JV9UelF9YlBObDtTUnVgdGBLMixHPmpZX3Q7ZV5ffHVUI1oocipuYTgpeF0xJFhAIWdgVVBLajBETzkweXQzWnFhQHMoaGFYeXwiQFBtRlR9NUJUejl9MV9wYz8z'@; put 'c0h5cjVEVHVNfEQzR2ZhX2IpWGdDJSE0Ui5CX2ZCZyxObVJodDtmJjk9MTl6UGJdOmFoLFZnR1taNU01W3EiPiklJD1tPXk2PlVUdz9zNiQjPXp8JVNfP1RnXjJuYDRLT0BOWUpIL1hAOTJgQT0qNVMwLEsifmZOT2UyK0QvaF5APHo+ejNjP3VvLnBTZWtRIjwwZUJjVE9QcXdSOnJOcSpefipX'@; put 'cyxZIV8jUyM2eTRsQS5QImkoPDJoMThfVUxeVVA7JXtedjA1YVckUm12d0h9RnFYdkx+ezElPSlvUi47c3d7VE14Uzplal11flVbc2dOZDtmfU5ZTX4oc3BLPkpXMnAmcjVaUmYhYEd3dzZDNEYmZ3gjc15LSlUwYiRAbGAkfiJWJlY2Ok1TOTxUX01pcz16RnZwPy5UP2JwQiJGU31+PyMpeDpU'@; put 'ITZFP0lCTFEmM3g8UzFFT3RKXTw/ZTliPHFbfWl3ZGpVZWMkLF1Teit2Pz0wWFZuUytlLH5OPjNLaChoRzIxUEN3bi5XMDpyIiNJV3ZkaSt+NFs2Rld3OVJuLG19LHkxQEtoNiJ7MXlfKyg/eVojPmF8WjtgdTQuMWIzbFt6Jmx9T3FwRWlrR3c2V35CSCs5XjJpcCUsdlFNSCRdNCxAOTNnWV94'@; put 'NSErZ346TD1ATmlbe0lbdj5YfnpqeVJmZykzVixGRT16MSsqY2l+Q0w9eSIsY1pjYUUoNnNgcUNdc2ooLnBXYDNGNHRPWkBaY0IvenM+d08kem1VOilPUjdZdGh0XUQsRi52e1VjdilgcHliJih0TDhbRmI2MmI/VlksXyprfUJoQUgicGEhZF5oN2NfY0BUdH4rflY7XTY8TG1EUHZkJUI1aD5h'@; put 'IkpBYDhrYlljai9EbFBoZ1ZGaShmWWA7anpWaE9vW1NJL0xbbHUyfE5CdmZxckVUbV5WV29IPioiJFohNipiQFBsTzhzPj1wYVFGfjBNaUh5UylSeXZMLDlATlNGeGdSPzZFJnw0KWBwKFphTSlHVXdTaGhWS1BzdiVELnt7WyU2eDNYK2BkJG0/ViV7T2c6X2pkPTQ0NiU5cCl+Yz5GWVMsU25a'@; put 'STojbTsqb1UoQT5gfSJ8X3REYi8mfHBxN3RtYHNtTEc9a1NzVzYwPzwrcyQ9KDo8LkooWVZWJDx0cDNrfSRyUzRHaj5vZ24vRyhmPzxFaEJOelkjOUFXPzQiIUF2Z0AkOUFAIT9RcCxSb2A/SllrIXxoYjNgaEl1fnwscyE3UWZlb2BlQCMkQExxW0NzRGtGZGQ3KCYhYDZMazF6eDRNckdiZWwh'@; put 'MX5zc0RTQnhXIX5IJk1eKndKUDFddUx6YXp3YD9IQ2xiayRhIT4xOHZ3L2BZVEV1I3xiOzMsMX5KNTojKmpQcj5UNkxkZ2ldazBdJSJhej8mQn1dKzI7M3EvfGh4aWhlNCY1XyE7Ik5CKCNrdmgkKls8NDYiMj0rW34pelc7MHtvQDZUJlI5LCg8N3ZhJEU8QHU4XjNZei4wSigrUzVUfnFGWk5w'@; put 'WGJAOzUpcWt7VipFIzlHWV8hXTY/X3wvSnFMRVdAVGkqNF06eW9+Tkc/c2dYaGZFRnl7UykiWGx+R31lREQmPUBLLzgyUzkxQzBgNTVZZD5+dGJ5T1tfTjUxRmV7LigjJGV7Ln5+cHZ8I0VoKUJMMWR6RWEiS1JnY1p+K2wyQkJFPyhTQmxoYztRe2hiYjlEZHd+ZjQ4dnAuU2VRSSVOM3QxMz9Y'@; put 'dltkcToyYUtZK3dAXnh+e1dqVDZSTDVgLj1kdUIiRGhnfj1XZ0ErOX5yPGM7fV1IaldjPFIxVHxWQ3I3TXh3UishK1s+akJ0ajF8OEVQaE9OTDZBIlsuPztaVG1RVVFBeiFNTWdtWDhLaml2Sy9zYG1zOkMwfW9JdXdOVX1pYTw7SF9PTnReKEQzcWVtdDBueUhsVEwweklCJXlhRG0zXixMOGl0'@; put 'Z2tMMDA+PX5xJjtbMyszW0Z7Vm87PHckMD8lWzd6Q1cmNnJMTlVwSEF9eUY3VHglLktybXZ7NXExSy4iW1JDfk5xMGlZW0smOnh1KmpBa3B2MTY4Ri97IVFjdG59SEEpVkl4SWlWJn4kXkNrTCJ5aUo8O1ZFP15pYlskY2J6Q2ZKPT1kW0BOTlcsOWxfIjhTUGghRDVjRnRWTi9jalszTiN4VEc+'@; put 'QC9tLmUiJng+OXU6O29hPWJZXi5iKEJDREEqPnh8Wl8hZ1dSTUd7LHh5SntaQ10+NH40fm04O0VDLGM7I2todHVWdEtBQE5qXUsmN0dtOCw8cnw6IUV7TGZfRX0+Mz8oKH0qfVlLQmVZPGIwOEEsUzUxTHVSInE6WiVRfjF7eURFfkIqPHhlT3g3YFBRQWApOkN9KTZxeSFzZ1RRWkh3KlN6NnQw'@; put 'a11SV2h8NiR0aWMlSG1mLnw/MmZCMXBDJGZGYU9JUjssNnk9QmNqPnp1fkRKN1chdjpnUGQ5fiRrMC5rbDtWaDczc2B5aVhBVExQfXkhST4jRitfaDEjOFdrNXMoX1ZPLnU+YV1OOCJaWi5Tb3h5UDBxNW1RS19+Sk4vUzgwbDx7JT0sM2thN0hxRn1QIXkrbSYxczNWeHQpZCg/NkFTPGFHMjVU'@; put 'cUJWN0o2UGJpSiMoVzhbMVBtNTJOOkprK0UuLyE9fjBHRTdXTXBpJiJEd1tGIVcwNlJURzdXc1A2cUZ7TXJ1fF03YCZwK1AwITF9JWxAKD5jIWxYNWtke3xIWTY5dVMiS3RUKDYheCg3W0dEejRTWFN1L3YqRXpGSFQpc2s8fX18IV98bSpqQz91Sl1TJEUzVmdPU0Ylb34odmpwVWVYflpOVGAs'@; put 'VV1bV1N4eWI4dXk+OWBWKnJ8WXlzVmk2UElkXmFbaWtka2NaLmtAZFV2IipxdnZfTjlabD9fWSZdUzg1cX4hLjpDW2xDZTkjYUYzciRDeVdbdSFPMEFvb2E8O288fSokITIxI3FpVGdxYn09IVg8NWZQLkdlayl1TyNDLFkuYDkvRUtpa2xQOnFkUnRVSnt7IVJJZFZWNlN1REhKVCxaR2lxLFFe'@; put 'ZWV2IjNHRlRMYi8oZ3krPHxETkJ9d1ZqcVg9IW8uZmIhZiluXyZQQ11Qa0R7KEVacUV2R0tTIUp5YmdKRUZFMz1SMCFOYiJWbmZeKFt6UDtpe2osNXdCZnxWQilKO3NQQHxSNjY1KDA6aCQwMmJQV0c2JmVbbmcsaDg4ZSFvZWE9dzlxblVOb2p3QjEmQn5QeiEqQDdlbnN5OERwU2N7MTpPSk06'@; put 'PCVZJHA5TiM8I0cieGB6OD1QbkNtKTJXMitSInUzcnlQX05kUlglKztZJTBaMl9iRVUjZjZUSH1tWU91eDl2KFJ1biZEU3p4QjQ7RVpZZmRXVVM3cGU2U3trNWc/fXo7VFNNaUtdciFgTk1uNCt0QlNycXhvTXBPPnB6JnxheEpyWC9oeixZR1hET2tuUVVBZ3Z8Mi9PUlNFMjhTOSZzNiwsVnQ8'@; put 'eD1TZikqVU95T2A3MStubTo1fE5CdShqZnZTZW57dk0/SXZzdnZ1S0Z4V01iakdBKGkuViNtLkJHMm1YZ3xbeDBmbXZodzk7MyVLR30rYk08VTohbl5hT1Y7NiUkNk0xME1DLH1GS3UhYD5uUigvIk9HTVJhUjZgZ05nSD9ZaTFTfXxqb0krciQuVVsxTGMlTF83Ny8hSmtPZkNmZHVOcD1FYEd4'@; put 'OmEqKSoxVXVgQi5RblNieDplZCtjIlRjWCxZMy83Zmt8WTxiLCIzI3pudU8pfF1ZPmozMj5jM1N+Wzp6cVlLZjhyN1pZVCo2MDhRVGJOdS5XVjMzfWJVIWc1ajFYQiZWbDN3XnNubkZ6YzAwQDovdTlafD5vNi4qXU5efHk1KU4rWUF1KSQ2I0BzTVh9RyRjMmE7aG49S2tNUXMoakwjIzJVXi41'@; put 'YzI9PnU6Y09IIUQyOGIuYGs2OSg1YTphfWB9OzFxbT5aVndrI1tdP3FVMSMiJHlSNGZEJHQmYys6TENgPjt5MlVddjlnLm0oKEZ9aGEpZTFSaXF9XVt3cEZSXmB6UUJDa3laLGF+XShydCJ2VlN6Qyh1JV5mVzwoXjB0bVt7PW17X11xLmRqc1k5ZnFiWlhjfHIqI0YpYShrSl1Ub1BgSjNodGkl'@; put 'VCxsS2NWYmM6MEhHM09pLkxNT34mb1J4P0Y0antjRVhSZG5hZFNjOCtVO3okOGc6bn5EUHNZTCEmbkZUUCFIRUF7S0NeJX5HMlhDblVeRm9gJFFRO3FLWUhqdEhLUmNMOV80Z3R6ajY4ViN6dTZmQy9VbGBQPTxebmhoU0tAc0x3Qk97RmVERm1FMURNVldhQ1k/fVlBbTtsIVRWaytGVDs+QF54'@; put 'N1AiO3RUMUBaZm5iUFFLI1o1Ki5vZEUvMGpXX25yOjMoOlhVZnFMaiRteE9JOj0qfXc4M0p+RmNXcC8oVShzRUV8LDZwZFNSRFhzcypvYj5vSmVBPFI1OS55Q1dgPGZCd1k6UkY3YzUpSzs6Nn5mLy5wP051WGViek83SUdxRi84KDgvLG5ROVA3Kl18cXhtVn0xSlB7Jlh+RnBlTGQwU2VyWCQ/'@; put 'LFZkaXZnfiUrbWJXdzkiS0VENyg2bnk/PUBbIzBYTHk4QnheRz9CLlc4a1k+Y1p+QnFYQGkjSGE2aHo2fV9Ka3hKSVRtI0dJZEBCJnZLYUAiUXNgPndtUiQhSH44Z2JvR3IuTT1Ke2VPdFJlRWlgMVRoLz5XYzUrcjFaWG0jOXA+VH50JC4lWnRtZTA2NXcuJThVXmwvLDtVQCUvIiMlU1kiRX1L'@; put 'L04xe3JgWCJ7U0JRQm15XkFWaCtUUThWcGN6TGxJXSlMdl01aCRSSjdhRlVPZl5Ial9LNCNFKH1ob2ZefEwweDs6Pzk+JVB1Mz9zbzIoQ1A1OWNnL3ZJQ2dCWCoyRnVsTD47KSwsKUd6eD5uUFFlLjZGV1pOQTAyQEJSZjI/b2k7bFksZ3swNHtaVjJLUjZzZitae15CN1lPSnhPLzg6KVZAVT1p'@; put 'UjBzS0xtNzl2SDZTViNUcVYkIiU4OmVUez1mUF1RI2FvJX43e3BNN11sNkFzRDc9bn5nSXZqX3BqeWFKS2Z7RD4zb2FUMUc1NUdpdFtnLm9mbjE/YHNAT0BRKCg+ZWRdblkqU1ojP1pxYm5wbExgclhoU1lkWy4uWFJLM2o4Xjh8biNhdW5UOF9zektib0U2YzAwN29deXsyPDk9SDZaQCFZTU9r'@; put 'Ok5vamk5Vj1QMSk/YzI8aG9kJD99K0dZUml3S3NqT3IhO3MsSXAveERGUDpVbCRVPGBIXSJ9RFpMVVlVIWJhW09TWztbWzQrLyxEQ0JmKD1iTjNZJXc4dmBVe0V1OF9JUG5GNSNXdWpQSVVZSFZ6aj5iPnF1SWlVX0U8bT9SeXA6UiVWWSRsRSY3T0dfPERTa2clWSFxYlk6KWJUKilSS19hYzRG'@; put 'fFFlKWh5aVhETng3ZG59VyRxWV1oZnluX3NIemp3fUpefWpgO3I7NzprPDxHRX5GfV9tYSF6c1trSlMsWVomYFI+IixsXWojYmIoOXxebFlwZGt1ZmVLaWZTNiRob2k3cF1TXkhkZiR2WFMmfG5DSz9dfmFlT3VXJjlCI0toY3slOk8/fU8jP1JqfFF6JGx6R3Z6QDNaczc8QDBTcXJUUSk+LmMz'@; put 'QG9dd0t7UTojOV5PKUhATVpCJH0yXjN5XShFfFBIZSNwdXVyYH52dnIiYXU3QTBLbD15UWhVYmVPZmpWME9aMihgeCYlV3B6LEdjODY+JVRybj1ANG1aazZeaU1oIUVjfURqWTNQQFhubjJlJUpmL1gqJTE5Z0Fme3Z0V0k+OT0hJVgmUEZsLFdxd09oRz9ZJXxHOC52IlkuSVBmN3kmPnFtKTFD'@; put 'RU86TykvNH1kSm55KUxOdjAmWmRWYjY/PXhzLEU5dyh4WUNXREYia2JCJm5HS3JMXT17PG5dZFp6IldNKG1Pb1UyLmRtbXZAb1t6fkFROGdgQ2Y7ODR7PTdCUlZxOEJmej1tb2JvWEBdYFhpSDpxejpgdFAwIU1qfEtWZmZWVWpZNDspITRlMER7eERMVmhlYVohL1RSQiR8dip4NkZwMEN8OlVX'@; put 'fndlakYvVG0wWTlEbX5HaTR2cTRRTiJnejIsREJjWHxqP2lEPks3aSNyL3Jea3JlP1tpNX07TCpkSWB3P1RqRV9DRFprNG8uZy8xdDAkJVYjOSpebmspK2gsPEYjPjw7WU1KOX14bSpvLClvJit4aCFZWEFRMU18RHY6WzZ8WkRQNUAyYC9MLmFrQ1dyZV1ALERbenE2bWd2WStYI01GaFtZPGVU'@; put 'ekhudypudEFTdDRTS21DfX0sIkZhX0tfI2NydFZTMDQ/S2YlIXJHTFZjVipHeEUpNjZLbENZbSUhWCwkWCRMdlFyNnVTQFM9ciJXd3I2VUxYWFs2aig8OXVLbyl+WU1JSjUjeH4wbCZuWGJ8P2d0blVabFNJKjBtXjNRSTBAaC88TGIyIUFkR3MydmBCbnQ2KH5acTxXbmxkWS9tVTtTNUJmdkEl'@; put 'XnZAJXpYIWBlZF0vdTsoYCp2dFpAdnwpTTJ6dWxzUG9bMHFhM3hNJmQhRUA9YVNjYzRxVFlWY1s/ZmJQN2IyO35EJCZ+fCM4Sz81ZnlHdFN5djckJT0xW19RclFpQGgkejE3WjU8Z1UhP2Q6Q2NJcDcvSnc+VVMoUnAmTUZiVDsiJXM9bHc0dUhrLi5QW1tpOXxoeyhBM04oXmQ0PyNHeylrTkdP'@; put 'OTNxXkBjSXU8Y0tYWkBibWZuPDEuYD9odiJ2PTtRNWRqfC9kfURjU2N5cSxSeyYiPWVYXWZKK0xQUHM+UlZ6QHskYl5JWCpVKytzNV4jWVlNLmxkSSV1WFkzeHtsQG4+aXR9OCthc2F7NldmWzR4Ry5jKERfXjhwX305UEAmT24lTDpmSDxlVEVieDlidXtoR3pSOHtAIzFUUXl7Kmx8Z2BMc0tP'@; put 'Nko9YnUhY1lZckVdR3JhOyU9ZjJsUztyR2x+dD1eLCpgbVtEL3w7KX5TZk9ebFp0TzJ+bGptLi9lN2NCPDZiMSZFTU5xQC88X3o6fENIbSlCMkVWdjJ8bkZIV24ydywsXTBSeHx5KVtIWmBqbEQofF0xSDtnd1VIVGFiT2VuU2ZtVD1eciZWTEI5cTksTGZXe0M6WTVEZHVZPXIkP2lkU1dWZFVF'@; put 'LEB+fGJENFBoe3VtWXFCNj1acHpHZzQmTGVwOEdUTD8xMFtDayJaZjVpOER0RE5OSEw3RUpkPnJ6YDhhL2BrRCRPNVBzSlZxcFFXIVt8O3hgZV52PXsvWj10KnR1LGxuczUqN0lrMUlNa1NGVStOYFRRZlI/cWROVm5kaEheKG1hQyYoOCosW3cyVzJ+U1kkcDhVem0ifXk7L0xScXg4PWZBelBY'@; put 'KG1RKH07ekxgM1NRJEBoIkhBd0QiNVRGL3hMbjNPOylaRXkhUzhHK28vT212Wjk9a2Ukbnt0Sjp1fDo7diEvfD1MKWprMy5EUzdWSnFDQT94TGl0e0QrSndXd2dWTXo2YFk6Nj9oeC58YSUoaGNGbmN2JHAkRmo2Pi5iajA8fik/YDpVIkpHKDkyNipOIV04WEoodCs3UngrSDt3fD9YI01QZ24i'@; put 'ZVcwQkchQGA5eUlWRnR7RW9YIUh2fXA4X0ZOM3Y+JTJXZn50N1dMT0B3PF1VMCFASjJRbHMlUnQuPm5sKyVWclQ/OSk5VGYiJTpieUUmPS5bRyhGXV5lRitqbzd+NUUwXnNWakVjYElAP3RGKXhCND4rVGkuRzN8Wil4TTNbVVpbZDV7Q097S3s+KXJaZFFBN1NzX1MzZjlybWckbiJFcU16ITNM'@; put 'RFM7NGwwcktKX0R5eDByUToxSGcwbCJpQlpMKipwOVNROUkzLmVrJDx8XUU+dHxoQ3wve1JpLFM8T3hbKn4vO0V7eCsoaH5afWpYVEdoSFVPOG90PXIkWzxtLl5vUllHTlR4MkQzYXA4PjZGQ2dqdn47N3heYGdVU2BjUEc2T1cpY1A4bSpWLll+ViErKjk7TlBDVGIjb2k9e2h6MitLeDBMWk9G'@; put 'bG54R0gvP3NKYVhDPCVUQnBNTXkhVGgzMmNmfHU3NF5odU8/NXY9ZGtGKzxreCp6aWREQk4ybFBYcyk5REo5bE04NSsxYTxDaVkqfnBpWkIkQ0pKYS93U0dXK25NRXx2ZFpNWlRvPlNgeEQudyt2QGghU0pUKHIuZisvUjs6L2lKNUUvflJwcF9hRS4mX09SaSUyKmQyX0ZHMW9UZnspYU1vZVR1'@; put 'S3pVJSljbXgiQjN7dzIyQHhiZlcxTnd1PSFaR0AvJW59Wn5QYko7MTNWV0J+d0lhK3tKN3B0TjxuU3hqVVtpQzFSajBSfCZUWn04RmFGUG05QTxRMVE5P3p5UHAieX5UPSh3QFdEUm0sRzRqdWdnRDRiczIyP0tCcUNCb0IuRXJAR0d2cjF+KitYTiwuSkplNV93czFJK0RTaTI/ZkhdaDFDSV86'@; put 'ZHxhUTs9UXc4JGtxfD9+UkpORlEyTVNbZWdjUmU7JDo4InsqLHJ9dWgqMDFeXTQlS1NSMT1ZeDM2ant7NGZHUCxdPDpUQm9HejtROGRoOGFbNj07dFNvOm5HLikkOkZNdyx9I1pNIXBvXiRXU018SHM4cnMocTU4NzJ1ZENyQHkuZF8/VW95W20yQHF7Ol9DX296PUB0W3phfW1IWGpPOFNdamQh'@; put 'N2JpYXQuYiJIWGp2OlNRb3pNK0RyQ0E8Om4qPDR9VGJGO259elZIWWZqLF5IXj01RiVtYz1zYyE9JCFGMz8hPGE1ZVY5YGN3Pk9xZzokTTJwMGdkPytvIUpCI3lMTExsWHxkNjU1cDlKfDM6LF82YUx7N2E/V20uekdVZGZ7M1skelIsKmJaR1cme2pMbnVVMDUqWjRJPjRncU1rZEMjKy8sUzJx'@; put 'QThaUkdReTlmR0ByOC9CRTxtPFMzb1N1Q2BKQk5FXXZtJkZ1aG0+SzIlWnRRKCtlVVFLXzghQioxZHpnW3tOKzpiO0xPMkh+bnUuIUp1PVhrTT86PjhNI3BXUyovVTAsWn0+ZnxhYXQhKzM6WDYsL3J4P15xO0kwJDZsTVozIVtPfFQoIjBFcW82VEJkWVAxfSNafUEwazZvSVh5Sz01LDoiaX4j'@; put 'Qn59bCZydShqIXFddkxvIUVNfD07QH5sPmAoYHY7cCNCWjJbV3JoaGl7T0IxR0tpPnY6SmRxeE5eKHBlI21DfStveWVfeTF7d3UjbjVXKDRYVm96K2g/XngrXVo3Y2hoWENmNUtwZzRuMytsXVc7TnZjVVlbd1N2eEx1Qi52bW1fd2M+PXE0elBvRGpuQkdZWnBKN3w8MkU0QG9fSD0kfXxHPmhU'@; put 'dD1Rbmx6I0p4NXlQMH5XdTBbMHNiKUViaUk4azEsREFsckEkQCZ2WklbXTg4bDR6UU8jRmkxJjF2Py5SdVt2KlZIeGlPTkY0WiJudSgoKGNPS0Q3fixCV3dsdVh6cmkiN05NMUM4bipFPlVNK3YkX0A3XT53RHdMNUlPNnw5cCtJTGtsYGN6aGciUzZPTUQkfXc+S3FLc3FVTV0/VE00ZX1ze3FZ'@; put 'XU44THZXNn1BWi4+IWtVKlgpIjsxZlZkP0pgeUdGNDlzPl11Y247aDpXImxfYHNFd1BuWmIzOShOaEk6SFpkT1laRDBzfks8ZlNhWnNbS3lGN2BTIitCcUlFXj94V0UvOlJBNStUKSQxLylrV09vL2U+XUc0UFVremkzSmF2NXNManJDTDdeZEd5MTY3STR2O1o+SzdCczs9VHFVX3oxRldNTTNM'@; put 'MHtZKStgOl9nMkk/azNwMHs6LGIkTWhZcXVXUiQzalZ5KVg9M3lUIWlsVUVRcUYyUXZQPCFFTUl+MmFFNzFNXzRpaG9OIy9bbWBJdVVNQmc9XnNEJVkmW1JOU2FndWd9MHgwaldzW28kWzpWPSxUUm9jVi5rdXtAVkB4dXdQMFQqNzhpNGkwYHhEQSxpWUphQD5uelBfY01aeD1qbG8lK2tKYUIq'@; put 'QCxAUX4xWDRDdnU8SmpaLDxlKERLIzNkW2FBTD1lVytvdkFKVWBUaDgxL2NzTU09PD51cnE0THpPTXE6RyE4JjJtbEBVJmB5e3RIVGgwP1p1PngqJSskdzx5bGcqeCF5WVNNdWVpeHpwdVtQejl2dUQ2VDw5RVolXnEzTF0lc3UrOTV8eHg1dllHVzJFWnM3e3ReTXFMNmc7akkka1hXckZtKUAu'@; put 'WSEhMz18fm9SR0NnYTxIOEMxaVI2a3xQVix4VClbMyMzOUVDZGZeVkA2ITFpaVNtQVBII1Z0d21mSFZhQ3R5UmwjMDhgfSllekUwVkVwejBbPnReOSFMXWBsOkI2TUg7SUZpTCxYVDYpMzJAS1R9PGptYT9dMWFgbjJ7fHB7Nl5Zfklkam1WcTBwJVovdzBQTzEmcjQ+I31TYldyfEFtem0vJDMo'@; put 'OHQ8QyxsdTRzZS9gU2olLnY7PSxwYmU8bCVvNExqJFpZTU1eQX5rVltPXX18Sl9mJUJueyw/dlBpU3ZQZUVjaT4xfndMI1I9L1pjUChHYztyXVpqY0MiSk5RdGNkO1BNTFNRcl88cy5UQyNFfitFRUAkbDE1OGViX0k8QF1FWlgqTUdzMmo0VWd1dEBXLjVDeTReTjdCVmorbGdIe1pfclRCRG9+'@; put 'UC9sKHg1V1RCdUAiIS5HWixgIyxyTnQ+fE9tcTJDaiwvY2psM21OPHpTOmopbXpzIylZW2lgbTUiSl4jR3tYO0k7eSYyXn5PNGNgKHxXI0hMLkpRI0lya3tmL3J3X31xZktpOWt8Ly9fa0chOmoycVdCSTJxK2dINk1TdUVwVTtKR3FpMHdxXnQvaldRJnhlWFtHOXZVdlokb094Plt5PjBUPjtd'@; put 'XyI+am9sKCtjXmR7OGFTdGpARW4oTjlnNEo7V00yckBYNF5pNXlOLGprYmtyXkNRIXkvaXpvOChPVFRPM1dVdER3KF0+dXFxZjdDZFNHZXIuT3M4NGtEa0lCayI4dm0qKjYrZFs+MiY2SGtUUmh0aStsflQmW1tyfVtvLyxJIW40TjNCIT1Ie0swNX1PTTs7Zl08fjk4MkcwLHpeO01lYDNuZTxE'@; put 'ZDNjWHdKMHNHaSYzWmtPKz9IYWBJN1psJSY0I2MmUm9DPS9ie3pKZm5WM0YuNkJZY0lZJl16X3BfY29xOVNoQXY9NjJLRGFAVyVKPFN8VmZlWT9pRUI5cUVhOCErbH5vaFZ5PS5AQCNKKko0UnlMYiZpUkJoQSssRz50dFlIXiREIXBCKTpxV3guUEduY0dpeW5NSmpuZl5xQV1DbFl1T2FwdUUu'@; put 'SkV3WWRrL0NCMDYkSj9OVV5YdCNjXkM9TlAqfXptVG9bRnhGZHUhV3pfPWpjU3FxSjw8cUZjZFg3V3p3a1RdZEJXfGpEVnAqXn5yS1hFKFFiLjs+JjIwJHxvY1VQOHlSWn5RNltwfn5SQWtob09sPVJWblhUTWVMWCgwN0xmc3VrNHt6Lnplcj9uP0hqWHRjTnJiK0BHbE4xVXFtMztCXV9COzwz'@; put 'P3RLfEM9RWthamxoM11TYGNJbkQzW35nSTw9WH1tZDVHI25HNChkejBpNjVEbWlwSH4/cVpZa2FCOj1BNiopXUllR05FQjVjOmlSeTZLVzxMYVthPXNHcC4qVHYuZjpjbXR0Vixde0cvPHFkP0UhXUNPPnhCUnY/eUR3ajYsPWJQOGRPfSx3cDtbcChSdllwW1FCaFpNZyhIL34sTixbLmUpOj9H'@; put 'KDFzPH5hNWNmYiJ4SWNFfmgmVjRZa282PmB6K0piIWE7VXJ5eXQ+RnNuN3lidndhYiM2NUdibj5ULHRIKkRtPjQyPW9vZVIxVCY1Q0xzRTE2ckM9P1hOfk9TK3JQdndvNnp9Nit8ZHtfQ1c6TShDRFRqV30pYiNIcEx8Yk1deWNTWipoaUBHNCRJT0R9OV1xUFB5RDlNVzkjNU9KMGxTXjV0STho'@; put 'Yj5jSzNYMzpCR1AzY3JHPlIuKVFEcW9+di9XN21xK3RNOiomMDlKQigmVzFFeCkuV0BFISxMe05VMHdwWThgL3gzeUhiI2clMV5mRm9eX2RKYWV1JWw/NW9YRHs0Nz5mVDp9bU0jSkFQMVc7WTx9ZXFFPltVYFZ4I25EaEhIRF5tOn5me1lVIWclRntnL3gkfX1pQjJGQCFPL2pAcGl3NyhRXj0p'@; put 'YixqIypwa2dwaUFab0k8NSIjbEhocyNXb1hnXmxVTWY4end2fXt4VHNiKT4uJXRoVF0/P0QwJlhyfisqcFs2YHg/P2FSbXJJKk5GdiJZJlVzdl44U2VlayNSc3VjR0s9ZjJ1YkQhZV5tQnBLVm87bmo/JGMqTCw8K2ZQTlV7THVXJit9dzpRdHgvWVhMUiwyLHQpSnZeazdIVU8zT1g5UEN0NCZ+'@; put 'Ri4vKkNDTHN3JVNQTUIoKDR0bExvdTZtQ3VOc1YpfVlaV1N9ZUhnVFhAKF9NUmFlVEA2MHFaflRCXV9FKiVxa3Y9cjxMITFeb2RKJXs7RS8rKmpDfnlaZEhRaTdgW3JZVT1HcD9YRXkmTVtvfjRFeFs+bFchIkhLZGcwdGxkQ116Wy5UMmZZN2s5aHp8SmQmW2JRLF5ZIU1ga1Q/XXlrM2heSF57'@; put 'TXA4WF91VGBvb3ovfVp9ai5ueHw9YHo4ITVWUVtiQVoxMHY8bkFyNTp1QDpSQjs2cGQyL14oMk0iZXBuWXpCKDw8VnZJLyZ0eTVyVXpUWlBjZ3xtPXVtYzQ0cSpZWXVNUVltIkxeK3hQUiIpdU9tdmldLDF6PndMOEYyMzBFQFJbPkFqRU4zXSh6MH1pcFZeYD9dcl9YKEN5MDlRIzE9QH1ucV9M'@; put 'LmM8N2d6cFdbPmhQaTo0Wz9uejxFXiVhQ1ZDMW86ZXZLbz1vVng9bFdBU18od252TitdXT5ee09UQ0tCVTIwaUtxYS9ZN3xjImojImEkJV56PHYxWyVvT2soakE0WjRHdF9vL2dnYU8uJVJ1ZiYkVk4hTFZNO25SK2B9XnAwXzVmb3VLdiN1L24uWWdsbGRXWmdFPlRpU2o+SlNacERrSTxQRWk3'@; put 'fXU4VkZnQlF9Xn5mWm1KN2hkdDx1Ozd2NERiZzEyckxyRVEuclY6UTw3a1EkbTNtQXhVMUouQFUrSUJeMChkOTo0eVs1SHYlfjNjW3pJOCM1M0doNVt6PkRGKzk3VHx4SzpiL2Y3ZkVNWWkqd0UuV1pRNiZrbytfKHFaMWFqS0s2cTUyWVArV1NUUilMYSE3NmJPUHNTeiQrU1RVNT5VPil6LEw8'@; put 'dmpiRlZZeGliMHx+JT4yYnhKb1IrTio7Pl0ibkVoQ3ZCej1fQWc5bTJ1T2d4KHdHRk9ienUwTmlTTlRDQ0xEeGUiY2dTQD9vO2M4TlY9MUM6ZUB1YnFvTDQieyZeKmx5X0EkPkMpNSslYmxyP2lyaExAaTNzRCx7WG5jK29Sbm8oNll7Z2A5XSRWMlt9cF1tRlFfajRIMmU2JCUhdlBaPF1ORENz'@; put 'TzgxIk8+UUhMYUQqZTEmKiIoPWRUUkFkUE40eCFpP11XRkgiOEc0ND8/Qng3RC4oOjh9fHx4fW8xSSQyK0JUUW1UKzpTdzcjQlkuRkNiPFEhdXkoYlF0Uk9gInhjQGlyUUZvT0hNeTIydnI0SHldQX5qdT1eRjp5RWt0USxrfTBafE18QSN4TGZtTGVeRXxlS0RTd3VyW2pXUixsL01PV2pOOzpY'@; put 'QmhbQms7ajVWS2ksRk5KLnIoR0JCYHNYaGJjJFdTTSR6LDhKbzZ5bnZpITouc0d3Lzs4MXVEVFpyRER0aiNTL204TVg2bzRRcTQoNWhdNnthVmxkLFE0SkZmZEo2VGNVZyp0dlJ3dltaUmpoQUJ9PFhTY0JrKV8kWml+d2gkQEBwPEUpNihDTnVQbjFVJWhKbWxjM0lCL004eUojYWx0el8icjNz'@; put 'djVMI3g3YmVyLk82dDBLRyRWe0JSY1lfalgjRGs/IUssWX5vNGdjazFJKTpyaldme0dOTksuWTpSd08wKFpWR2V4ZSFQUlRQMSE7O3pMb1UiMVhmd141Sj8xdHZBbUtLWHNIall9ekp2LmBTaTlzbz9MN1N4dTdJK080cSZxbl40ZF1bUz9Malh0Y1I2RVtiQmBMSmZ6TmAhISVVeXxbPXNFeFNT'@; put 'Y1Q6djJEZl1yIypVJDNqIi4wNGhAIlVXJk58SkM0cHBTYHwueUp4PnBBYFN8RXxJJWFYYTIuNzU6aSU5bX1kaWE2bk9RfVBibHVaZXRIaV44OFNRdkIhPyhhS2liPU5PT11Ee0VhJSZPekVkbklKaEczTHNGUj5XaCxZY0djZG15MDQ0RmgsUEpFfjxhR2BQcHI9OEhWYmpsQFcmXmM3M0NxRF9o'@; put 'OX5fKTw5KiVZa3FtVCYyK3xbI0BOZ0kzfFMjfTpTW1l8UllObyN6XyUsWihtfTMvIl4oez11ejNKUlRXVDoxTWpSZXZiWSgxUlliNGQ0Wm8xY3JoJEVpcXhuJiorUVc3aFElY2h3I3ghYVpvKV9XekNOfDgsX1pVNDA0dCp8T3hKd2k3MzRrMHlzYGZwW3s6Q3o7QHhKIjd+OSJuIjV1JE9vL1hx'@; put 'big9fGt3fWJ0JE1HIW09W1RBUyFATUcjRWtLZHNfTiQxQTllNl5YKEg0R2xvbXVxNiM1OSxQeXk9Vz09OzZFYjM1SEE2aFQ2JHRhWX5jKi8vUktTKWVbNnshPG9rQis8KkdoKyZDPkc4Z0I4YG1fcyEiKTM/ayVeMiRXS0RFIWkuME5BallxJTEze3w7KmxmKFl6SHtSdCNXYEBhJWk9TG9uMWNh'@; put 'QWgjaV9UNWxzIUl8KEQsQlcmZkpbXTo2fWdOP2FkJl1fSGt7T0VabjRFbCU1PzVpQDMxbyNqUGtgQEk0UlZfX0gvbWxzakVTfmFTJnFKR2BRPztldnMhRk1POUx6VHw7cyZSRCwjS1NwJXxXSHEwYmsvY0piSVV8WERpOmtnSjFEWFNROGlIS3o+N0NNTV9keG1JIVleKUZ0U3hGSSNJWFZlIVgr'@; put 'Ql1pdko3aX5haiNjZ2l6Ym1LKEIvNWoiU2AsSThHUVZgU1RDNi5hYkxQXmJ3TEwpLDpSYEV6cGpSWSR3I0hsPjR6UndKQkNXOyY5JSIkUCRwYiMzY2c4KXB8MFRKTkA3RGRoSDlbTTxwOnlAWHhtTkFiNys2K1tRTTF0fjJ7fiovJT04ImBUX1pxWUtHb3AkOzNpPzBwMjNgPSExZ2cqVFFhMGJY'@; put 'bWwoPlk6eHRdN0tre0ZaPzZxdUIjUmhpKWBYbWY4KCRoOnx6QmZLU1s/T2ppVXNvWVopYU8vTHBPUDxgZXI3OUl0RzJeLD0rdE5HN1hQMCFSOGVUaEx4OGtqYCtbelJ+PDhCey8xQ2hCa10wVXFUaVchXzAla3FtVzxYbVpAUjZMOk07ZGY9V2VOXzVndS5mZ014KCglQWJgVUM3OGZeQzIrMSFV'@; put 'OnB+N19eT2U+JUNFTjNaNkNPWz46M0dyQ2s7QypXR05VNV5nV2xPZ3s0aT5iNVt2QSlINlRqejs7SlpfTDZjYEtnXjtXTTAqK0syVzBBU2l8bj1FdE1xWz90L2V7fXB5L0k5fmxpX2FFd0BSRH1YQV0vY3lzfDwoMWw7Tj8sWEZ7dCxrKSZnMVZKWykvdEBvSV1FWkI1LmMpcnZkYnJsL0Z3RkQ6'@; put 'JHAid0wlb2lAbHNpaH5gOFo7SnB2LiVOfXxxOzlLbFF8ckJqJnxsSCplclA9Y29dKyY+YTxbL3AhZFguMXVXflBmYkwreWIhaU9zNGo5Ln08RTBKK0A9YWJCfSYreVdJSFNxayJJd3ZbLCw7ZnQxN1Q+LlReS0RLfn1WdGpZd2hLe3puPjwufSFSOyRMTTllUmlUanlQJjAkKXEvcCVOKngoSDBV'@; put 'cEFCfG5XTj9RMkdjT3hnMEtuejFgJVchVSNnYnBzNUs1W2JsaixEYjdANEAxRjVLRmNkJTh9L2tFSmgoc3A0e3xTJH0rN31kXjU4UzMuTWF5TGtuLF97Q3kzQ01peDJ8Ol9eYHE+V05VQn5IS3gwP3VGXnAjUitvKldrJGx4Q3NqTytUIWxfaWR8dlYwK1VDSXtrTV57R21XLiZRTS96KWFzWXgl'@; put 'ak4qV3c/LF4zWzIsOGx+Vjk6UXt4NSh8X09YMXQ2dkR7Ijl8bjRbdnlXaUQ2VUVEU2FUNzgzVEA4Oj1PNk5EVUB0Vm14SEpafk9QTCNtUzEvLCJHQEpSJi40UEJ4aEB2Z0RUZTxSOWsyLGRZYDt7Yy4jJG1JT0cmPzdbISR6MzY7UT9sJm01WUkhcU80MEd+VTtpLnkkPk1dO2pOJUYqXUEhXXx7'@; put 'I3c8fG9rdz16OWwzSmVZPzVldzV7emJ4dERkRE1vMGtkW3BJRG02flIrVy9jd1BZP35kbWlXKDVhPXsiQ2VWNHsxQWdDUylvSWUyITI+TipAZWRHQFB+Lkt6e2kyVDlWQjZIKzRhZSYoSz1qUXdDeXh8V1tZaHNRY3BULj4hYj1QeD91PE1LbGB0ODkkSG0sKzs+a0N8LzhJe0hvIXpie0AqW19R'@; put 'ZnkhOUI0bGUyPVQjWC5LbipvY2Z8SExaaktZR0FqZzYvbWNUVzJbUH40QW1eRjg/S1U4Njc4ekwxOWAoNjZCYkVMcTY4Vz1WNl5tekxVNVR6KEsoPDRJPzYxUVIhOWU2UkZiXypQTCRdaDRPfXA9S3tDR2NZe0J9KTZjdEJUSENCNVUqPXdYJmhMcHxgNHx1c0hXb08iPStrSzt0b2htWjUkT2g1'@; put 'PDRnQjRqbUtxbDhUOjdhbW1TPXYzISxKP1JjTF5kdjVuN0s/fmdlISQuZ2lXSHBnel1XZStHMkBuWThMYm4kc086bj1uKkM5ailyZilRNypFbEY+YH5oPkNWenRgQVFpZVh+TmNnIys+ITJoUmMjYElKTygsWFY6LFFEIjA6Iiw1WWRPYGo5d181ayojIzskaGVzPlBNWWk+dkZDJkc6YlBHPVdB'@; put 'NUJTUjU5TShmamM7V1svdHl3O2ZCV3codCV+LmZoM35yeXkjJiFneCkpQTQ6T0sqWzRuUkZoPU4pZXU5WVFsQmk6aCxYTkRhLkZRXmcpMV5DfF9QTzkzb2E9RmNaJFdxWyMlMCkkO0t1Zl8md08sQEJ4cTI+Q3BqP1kjclR0a1AkLkBqdFtCNiNwbHlSfHxhW25XbDlPbzcoZkRhLyM7ZU5gOVZQ'@; put 'VlNxbSFvT0A4TE4lJXg7Pj1wXiF8NnhtQDJGZjRsRzwhWkE8ZXB6byQoOHR2WWRBcj4xJE5ibD93Sz1DI0VIcDp2LGhaXylWUT1pfXdGRH4ia2BNIy5mRmhqYH5JLj0sTFJ7T3VZJGtWZ3xgMUgxaSkmfk88OyZtTCEjY1lZeSZGXmp0bjpnRnpSKzFNU1JYJjAsX3NtcSxZcjZgV09tX1smYXxr'@; put 'alNWVyNzWFVkNWg7cUl1Q1JEcDwsV2NKc2RrZlBFNE9BMUBEdmhkaylzb0w0YV9ZWnlIM2hCXTlYdDc3ZlhRek5HP3AzOHkramBfTG91elNWJSxoeUBCWjpUZkxDVFVIfGFUN2d1T3A3MDZNYGYmSFRYXXhVMF5oMmtkdUowRUhFLEZHYjtUL2xmPiFSclQ3N3huQCYiTlFrMGthX2NzVCxoW0Iz'@; put 'N01YRDYraXAuZDdNNmc+MGBYTyR5Uyo7eXhOcE82fCRBfkhxU3xhZFImUXQ/RHhrZkE8clsiRj0sTXdNRWZHZVBdOHZMWERYKiJlcFhAPE12TXJsPCg0bH13Ul4/R1lvKn1KcyFNY3l4YT5fKlVGRGNlIUJSWmk1Ujl0VEN8cCt4a0xzIVEhJUUiVEphZEk0ImI2dEpWLyRNYDpeUy9vPztgWipv'@; put 'R0ZDaSxWeC4hVUBuVkIjMG1mYUdAJXFsWEtsdG96PVdwbl1MMWM/a2I5Zz4uSD0sLzBGPGU6NkFoPXFFO2RXcFtBKm9IIS9vTktoI35DYmtTdEV7RCs/cGhTelRTTlcxRXQ2cVRpb1JHLF08Xy9bfiZNLkh6MSs0en4+eW5UYXQ1IUJMe2lfe008dH5qal1NczVgX213KGRzenwjd1pMM3duNGpO'@; put 'NWNyVks5JUJUYFlpMF9HeyxfU31jYmEvRkxNW1EzdFgsd1ArP2xxPG13PWtmflFBV0dHbF5GJUVTQWRnVXgoLkRqbDwhPEhQQC99eVIhcHpYeG9HQnkkWWVPXyVaSUwlRldQbDVyMn1jNEZbe2NCK3dJSF8vZ1pqO3JaWlc+TTZuR3VWMTA4VSsycT9LIz1CdSFrL251T2kpMHwiaCNAUW9XKUdI'@; put 'Nz03I2VWbltHflNTRFFkNWx2ZU1xP2ImVCF9I1JPcF58eE9sbS8pcFE1TjQ5UjN+YiF8d0dMUyE8MHdpajJENXsibkNEZFE2VVBaPzxvIkhNNS5hIzJYP35ZMWpsNE59X2kmUE5Vc2ZEX0IuTEExX0FCWGI0SEdOUTRsL2QwRnBAe2BHNzs+RCFbYmsjSGVEZFlfPTVuVXtoRSglZT4sOEh0OzRw'@; put 'aDpALihbUyFoVnRHbD9hcUxkR0JNRl5+bGRrYjJ7PndHfTlSdHdraV19biZJckRoPHRkLGtUOkIvWkw7OCNFXkx0YCZdN1ZGISJVVmJzXXNDSHllc3Z9Q3RqaiMlaTxZOzN0SytoYjEwKUljV0tIOU4rXSZ9QitwbCw3My5neTBiJnFtcXd0ZDtoTlluVmxpQjAoZ2JZWUF2MUhGIV5eZ2lLUD1D'@; put 'ezxmR1Y8YzRwVHFMU1EheWVRV091Tkk1MSozJUAqM2NrNHB3Wk8lTmVYVntUWHNVI3p2ZlFqbDlaeGlJLDxNV1hYIjFCRytMeWluKjNIb0JfKDgxaixgdj5VTyF2aHtpYGU6QzBUPmM3dGg0V0ZpY1NjS09YWUxmL1c2amssR3NMLmduQzZTRSF6SkwvKHUiNGs7Wkh6Sj9bQEx0UjxGajFnaj1N'@; put 'VT01e08mMWg1YSU+MFdyYUN1bDpQNmpMZ3U8ciwxO0s+VzI/Zj5SZGEhIVNoIUZwPl8oRWVCZXt0TjI3fColXmJEZ0o2Inp5aWlyTVNLOE1kZzI8P1JEfD8odk08I2s7TGhnVTs/LF9HQGc6dyNRW1ZuKmRFeXhSOkZzK0x6SCk2UU1gWzVaaXB8VllxdmpUfWw5Kmk7YFhNTz58Y01WamolbiMh'@; put 'NktUYkJ5b3osQlYpI1d1XmpCMDBzZ3pOV3V5bSJdOXo8bkpVNDp1digsRF5XMEpAOjR5TEIvUVtxLyIzNjFAIShncT1Ib0ZjL3VnZU94SSw+S05lSV43N0ExeS5QMVdgezJJbVUzc05NaCZXfD1kM2NMVjdJV2VpOE9bWVFyYTokPS9VQEJXU2ZadTRGOEFMUH1Cc1gqNkxVaSlOcWVTMV1ITC5D'@; put 'QDRWO0p+N31EWnp7flExMlNFIVZJUmZ8LEZvdjAjYktyMDdhbUojNiRMOFpuOXV2bV9tP2MiOnEyKyN3SDMjdlViMikyTHlub1BPP0ZIVTJJXnR9KVZEdl1uS0F8QS5uZitHKnMiNzZRKTA/cmErMG5sPVAhcG5ecT1SN1ViUVklTzF8dzFfNkQ7eiJPJXMmNmtJdEdSaWdpcTRkL31iOCo2O35U'@; put 'bFBWe1BmfjZ5X0A6Xik6dih2IipXM09gdFVffC9+QVdAN0ovLmB8fS5+UklGJT9BW2BRdDZoY1tkSzkiMzVmNDplaF9vdG1jRHUhKVJPNWlqSDpXY2w7KXdqIlRPeWJOTkY6bSwzP2plS0I7KnZzaT93VD95K2k3RWFPZzFndkduUGI5O186OSpbV0JiLlJnLixxRlNKSkU7Skc9eDU5Si5kKktC'@; put 'OCUwZmUpYj5WflVaTjA1KVZuYj97aktxTV5GeFp8PjtoSlRkOmldK0lOJjQsdU89M287a0R7QjdabW9NM1ZwRl1waEAoLCxvYUwxekRjSW88QCRILG88dlJ6KDdFQis3e1JwSUJxX3dndmw5bUd7aEUiYFJreDxadHJCbyNyMzNlYS5rPSFqOmFJX3AkNEhNKH5pLDJ4aCJjM0NaZSNheSs1R0E4'@; put 'cDolRnhYVXwzY1YuMHdpQDpPdW9halRtMnEifipSMnJyNyF6OnQuQyVtQUNJMCRaTCp2X3omZXQpUzE2cV5BK2ducSZQMW5uI0tRKUNCJWQ6TVYwayFVazk6fjcieG1xR1tHUUg3aEpgLyhOfjttPUJaSHw8ZTZWfmN5K19nL105c2k1LCwoLmJjL3sxcTZtVHZARVJWTGt5KUFeWWUvNU8yL2R6'@; put 'IzRKPSkhdXI4QWdsZjtZJXNPKldSQE1KQ0JyVCYuIj80X3cvYTNEYDF9ZSNNLys2dGBXVig9SW5qdH4wbGdYPUsranlffEVXI2JiciRUKG53XWJKVisrUyEzSjVLTVQqbkRnSHgxbV1lITVHY10qbFBJKCYhVUZpXj4wKzooTV9nNjtKUmNZY3xDZC5KS2FrREA3PU5tQEMpU3tJL3FsSWBzbzw1'@; put 'P3VHRkF+P0QzUERhNnhiN2d1T3BZTlc6L001QF5rVnh+V0YsI3UzbklCdC5UOT1fMz5fYFFPS0kpcE85PmAreEZSMHAzWSU8SH1SJD8yW0Qkdz8qLkl3NERSc2JYL35sLix8U2FWP2ElOSFfcDBObGRgWWFFSUcsXmdFNm5AcE1GcS5rYTEyWkJRbSlidUJaU1VbTkFbbCtDdDUvcWZVYik8ISNf'@; put 'RXA/OHN4Iy9dRiVzUjtdfFdhWEFLd2xKK0wuOUxAaXdnTSMqfWp0Vn1LPTBzfTpgYXg8V3V9fCk6NiRPJlBfQ0lRJjhFYGV4ckBaLFN7WiQzVyMyLCIxN3tpanxmYXJMczElN35TMVhnX21IWH12JDtEJjJnWjdMMEpzTjJOIWJyaVhPPEQ4eiR4Vl5GIz40OyxYJHpyeUhNSTU1ITlWU2J9Xi5y'@; put 'UzEpSlclTGV6XXYxLnkrWmNBWDgifU9lOU0iaFJgfUVvbD9AU0J4bkJSSSJ1U1F4VCg5ZF4/cUl7OmY+TTU5aCROcDJlZ3NDJnU1QCtEbUhpaGMkfTYze1cldml3OXF1LztDbUBbfjNeO0AhLGZwTnZKPDFWXW9yaHpeLDRFeGNzVnthIjkkV3tCTSQ9dXFIPVlEOWEoJjA1elR+eD9gLF5afDMu'@; put 'IlN1PzxSMEl4P2QxJEBNNTt6UzQrMWJpNUglIl1xckdaUFtScGJNdzBkezV6UEclbWtoQFZDekxIdSVve2U/aXN7dkoyZ14hfTc7aXR7XihZXjd1c3d0bCZ4b0lOTDovSG5wVSIuYEF4L0NFVUdpVG1IWUA0NTxiZF83KHpde2BWc2RGRGBxbWZgdDBMRiZqPlk/Jk1FUW11WSglMTg+VWVSPVZe'@; put 'eTQmKWw5Nn1pSytWWz5vbW12bjt6WzpRWEpkXXIkPiwsfSxhRFBqTyFLY0FCN1VAPUladXh4d0JAJXN3LmxzelNESnZbIWYwUVY4QGNpbUBzdzNGSyQ4ZV0lZCQ0ITRfclNzVWUiKjk4PTZNN1BPPE07aHl1dTExeFQidEIrL01FPDpqOitIbjFtSiE3LzAhT3pfbl9Ja2MsPEljMixHUzFhK3I6'@; put 'aGtOSTZRZ1Frb1F0Vl8kZlltWkJbXXg0aFpzNVJfVWlpNFQ8PmpVc3dDd2M5MyZYfWl1I3RiQiYuUXwwa34/VkcxampvZi4vU0R5K0gweipfN1IyKHNoJklAb3NLbilANX5aVDA4QiZgWVdpJDNafjJhUSsieG5tY0tLfF5fPmBIRWI0MnF6dCVsdEJ0WEpLPzRrJUx1Y1ltOHkkTD46cVg6NW1t'@; put 'W18kemhuIVRyJHk9NWI3XUY5YihRTX09JnFsPkZ2VUhCZGdTUVo6UjlGSmhuQ2IkLFE3K31FX3haSVhudmJOJWhAQm5DKn5tfmZgU196M1dLaWAqPW97di5KTzI/RWlAbVQ6PGklQ2BtV1gzZX1jfE0xMFYqRD85Im1UKXBXQXQmV096KTB9a1FwalJAZ30vOkQ5dGN0eGdyW09nY35BRFh9bD4p'@; put 'fmxjVERPS1l0SUdjWCRzMG1CWilJOUEmUTJbbGhnPj1FbWFXWCRLLGZRLmdQVTYvbTVIdXNiVTtLPms1MGN3Nj1hQFs0c01ZfFd7NU1Fci9raGk5KjcsZzNfPX1KKjdLYCQ4UExvYjsrdHIhW0lkPy5FeVlZU3VTZFhJcnNqPnYyZ318clhsUV5YI1IxXXgvaC51UDRjSG1Mb0koMW0wV012Jixs'@; put 'WHYrNXpmMn1MbH46Y0VmRU16cVs6bE4pNS9NLCp+PilxS2VaUEg0NCxgUG96SmtfYXlEWigqIjZQe1FrS0F1fnRqXTVzW1R1YGh+VyI0OSF2bjhWeUUlMVIwdyMialJ8ZzdHWyJ0Ojg+Yy8jNE8xVml6MSZiKVBAL2MmXmojNk9STnVsKjd8M20pQnYpY3NAKzNaPzZlOHwmT0kkYENjQmcycVtG'@; put 'bTxdXzFgQmduLFVKVkBmT3NnVGU5JWM7SXRtaVpfTUBEXXkhTSZFYUReVkxnSyVEMFU7XVcuaFJdNW5YIStlSX1JbnxEMVNLNzBzYkRUKSVaflApLykoK2Q0NnlTdT9teEl4UnZlaTE0UV4wRS9lUip6VEFNM3JnUypoPnc2d1pJIlEmc2ddent8TW5ZZ0VMZG48cUZzWzxDWmBZKTM6TXZ0T1Ux'@; put 'UU17LjB3Jip9XlB1TGI/TGVsLGlKQkZpW3h7JCIyKS9sIXsycj5XNiEvfEJuSl83Tzs+ajAyM3s/Tzk9REtQSkIsKm5sTkZSPCRmN2UyPTQpOGcyO2d5TkUvQF1reXlwYmdUMlJtdFZ1VXNQNF5ZUFEvVGxFa0UzZWZZSyZ1Yk5PVXluUkUsX25fUDIoS0FMYkN+NyhwP3YibmRraSRjZHJfRGFX'@; put 'bFo0VGlsODN5Vk5ValIza3xoRXpPPn1AbipjfE02LyIxO3cqdT9pcV5xdiozMjhJTyJlU21RbiZzclF2ZC4jKnlMR3R2YilxMD5yKUNiQmxwUDhKSChfPF1ZWDJ+U0ZQS0tzOTUoUThTOyw8L3hgZ2xVdnxvSWgoTG5FKlpjQCgmIVlSWkwyTz89XSwsPT5QTXROJDIkWHFGQUlBKCU2Qlg0YHVk'@; put 'SnB3XUd4OCFzR0hLPjpdamBbb3B9Zn1LWjgzQkhjc2AiPisyNH1EajBUXkJfPE9AakxdKiY1JE0pKGR+XWxRVV9wVm1fUDdYY2ZhYUJ9aEVPbyhyWFVjKW9He0shJmxVV3d+L1hmN2A0JClJZUJMPF1HeURkTVoobWN6dFJgOCwjI3o7SSw3d1R9K01JVHttdDpvJU49Vi86ZzY5UHIxWyQ8OT04'@; put 'JFFIPGA0QHcvbXh1NUNAQmwlan5wfkJAViNNUTVeKHZmbXE2Olh8THVTXVlPP0glInNtX1RxYEFaQ1J6czgwQF41Ylpvc0NbPDxKLHcoZS5dXzJQTHNxNDo4T1BzbGFoOkcyWGFxME1CPzF9SGZKQX1leHYmWF0kOGlkS28rbHFLLFcrd2J+JjVOKCV9c2BkQSRUbUdyNXdVcndgcCM0ODc8IUF3'@; put 'VCxEWkFfW2YidDVmdXRdYVlOdGY/R11rWE9BOGZFVVBPIVlwfiEqdWZLX0p1UjUyfXNjej1mbXU+djBycDJQSz0kdTB9Qk92JU14RmVDdmElbEdtXVVBMU1MM35zTTVIJkR+Z0tqXWxqTTdjUyVOcyZnNDklWG4/VSlzTHFEc3JUTCxeLk4uSFpBI1FDIkdXUTpbYmgsQlV6Wi9VZUk6eytCNSF3'@; put 'M11JI0JqeH48MTdnZVVQbHAyMUE6YWRyRCFiUGJuIUo0T05aNkMhUl8lWUp3a3I0Q2E8SkVFLGZKamJuSltTOC9XTVhpLHxnTW4mSG8/enxyKiJFWHhFM3c5dTA6OykuXmxUb2hwUSxLW300NkRzZl02Njo8JDQ1V0J0PEVMOnpYYHtUUj49Rlh4YV1GMGhENzJDM3I+UDU+SnlEakVPaXQrNiRY'@; put 'dypYYkN5SEp5MmlCW2IjTCZCX31dR1t7fiohPiUvS3slWDxLWFE4O1hwZW4xVHBvN3wvMEtOPCNadilpKkA9QCEjQjpadVVwVEklPnUoezg6PmF3XU0wbkwzaFY7cTc1JDlBW1tLUzEufSpSNyNUdXY5Pk81WkludUN1VGUrb01RTyJROWdudmQmdy8vN114YTpwfT9YM3YmWFRtNlkoKnxAYHoq'@; put 'UkZSfUMuWDdCZ204S1lEJk1kKnBYVGJPRXNWNnVhazswNSplY1B8fkNFKHN1eHB3cE1zZXd7RkZlPiZldCN8ei9YSikjIVk/SDZpPiRWLypeenpOS0oxdHpMI0huLj9RNnNqPiUmNyojKGB7cWJpZnt9PTt3fH1yez5YQ3pqdXR2O0tFczcyRnQwXjZ1PEo+UkVLd1shUik9WTVlOzh0T2NNVCtp'@; put 'TFI1R2AhcCt6N2UwYzU7dkYyKzR3KlV3KHBXNipeY0YsV0xffmguNWM+eGxDPl1qdUh+O289WnddNVZ7aHszekxkQztjZHp3dmN9cX1tV0c0fClrYGNWeldDb00oOWB3T0haen4zQyZeej9ga1I7bmtAaD1oKWdJVT1hLld1YH1+QjU/e1NwYiU3KVA0TUhgUTZiYDVZdm17cCZ2bWUlX29DOXcw'@; put 'a3Q4fEtuVSgwTkF1U3BuLExqPVkyTE56fFA9XzpYeSFOdCxweFEkND4+RWoxbykiMmNhKWxkXVN3fXEwNnt3STUsbz83Q3lzOFpmaXpiWnY6KEckXS5gdCpeWTx7anhEJXpKKTBZKkFgKm5jdk9EN091MDxGY0twczNrQkhzPF9UM3pIKlFzbnFYSTxNL1dQYE1GYislI3xlXiRORnhPQFswXnw0'@; put 'K09tNHlqe0pAZlkzOVhfLypSODpscyZWYVdkKj1fP2I6QjFGT3c7QnZrViNRMCghMDJ6KHVjKEYqOGpCYWxHUUVCdl8mViptRDFXRGxNc01fT291fH4sXUFpQy40ajhhKkVAajVkdVlNezQ3ezk4VU55PFVrPk5SKVdXbHtlc2VFWHpUWTB3bEpLN3Ihc11IWElFaFVXQjt1ZV1uO0x+Nz18VHdC'@; put 'QnZNSSM+JHkreGgzZzNAZzI0Kzw7ZWUjKV05UiRbJFtjd1JBYztYUk1EPWptVkd3dyE7bT1aUmRxXTtneitUMWA8K0YhT2NWVDVgdWdKVn5QW204Q1ssaSliPGpFbGlXIWooUD4oKHdme1BsV0hAXXFTUlJWe3pHYmA/NTw7PSQ5c01Teyw8dSwoVmt7MFFRUXMwSyRbSCJ5KyJ3ZmZKUXNKUEVu'@; put 'V0pYdzZTIUVSdHsmJVAkS2tQTyhGb1ZFbSF9L3hRO1A6VVY6Y0VOZCxmZWtTdCNDMGBASj9TNCp9bF9nKVo3X3Q6fmM5Mio3K1ZBUy5TMkRFN2E3LjQwQHI6fnZQZlRpVUQzPSwmaF8wP0U2dDhROyM/JD9IfiRpNWgkSEZqfE1ZMzBDME5kMFg/R2g2QG5+TUtdMSNsTVZBb190eVAvK2ZyaCgl'@; put 'JE9VYzRBcl1rWCt9NkV5SiMxQnBFPWY4PltpbGlOLzlIW3RkSip6KFVdQ1N0MkAocyljRG5pWHo5Oiw+WWMoLjo9fn1saTYwWThyMlhISlpTfTBwNVs4YWBedi9LYkxQYk9NQ0dUYnA5S1NuQEYocDk/Pl83UlZQLml9NTw5W0JuKn5ka2xpJFUkKnNdIjBjWnZZQXV9UVREOipiV3RJY3IiQ3tz'@; put 'cGlQVzksI0ZtJDN9O2B4N0xIInpZSSJBdWp5UT1PcmxNMCR3YihyJU56ZHI3bW10Pm0wWmZyVkY3V3k6OnBIeHNmQ2NCMVtWd2c9OV8yJnAmL05UKXkhb0NEdD4zeUB8Li81Y1pbND47Wzs2VnV1ODE9emxaOF5RSTt3QHgmPlhuVXd+d15ifFg7SClTaGZHYVZec2k1cFZuTEUrV1FOLF9leDl6'@; put 'PHJzW1VleVFaZStbV2Jga15uLCovRj0xUzcrKCUwfEpAUyt9aU4yclpNS3BdZFFDbEN3dlhxcHxoenVnflZsNjRuK24kTjR9d0c/ayMyVVU9QnEhZFlnT2Y1eHAwSSY8bkBOPlhhPmNneTRPQjVYU29KWzdka0NPNTpJQkJpYDJMPHs9MXUjb3kuY1NxI3cxR3RPNGhrX2ZTQSNxRVRtNHhzZV5z'@; put 'aHA9KFRDL34pMElrXU1jel9KPF8qVzJjQCgiemB7V1h0WFVrdmRHYzdfKi5qTWgsUktYY3hOYyFNXTpRMjFDaGQ1VFgvOjNMdEk/JSR4VS9DZ35tKV5leE8kdGxXJEYmSVVlXXo+KCZ2QjB5OUJ2PS9DW0Umcl9TaUNVPUFEOm5oTExEYURldyVmREQsTW49X0VbZ058S3VOOnVYV1VvNHYxLntp'@; put 'anJyc1g4bzp5RHt8SCFvNlB1LnlYfk8jJWQ/aDEwXnJZXiFtPFksM1ZXeTAiW2AseSZTKjhQP3xjWEFrQHg7VyxaOHV3UWtmXUVUK0ZPU1E/MEtGenoqNSJVUF5mbG0+MERzQSVBYz9QRFlpbEtpd21XaSgvOWFsKmRHcDljfWVSN35rP05WJnEwdDhUV3RbQmRWeyF2R34vZlJTbk5GPEY6Vjo6'@; put 'JW1sM3l5LzJ8dzdKIyY9Yi89Jjxgfl9CJT8/cF4rd35yMkFvbnU9bVtMeytiYn5eJFhlbkBxa25jbTpTKzFXTXApSDBJZCR8cWFLQzAjZTZXWjFxdSo7cztuZVkvLE9uWGZUNkUufT5bSTlHc1Nmdz8relhFO0JaSGN+e31VdmBofUV2U2t6TW5JXThpfllUTmpvTEtXKn1bPVZZNHB3P1E4QE4r'@; put 'cXdjZG9bZlpPcztpLHIlTCtYOGRvfVBIOko5QyNtYF0+XThQcVdeQ1BKZ3BZXTRfcmxuPkE2YkgpLl9nXXxqe29IMiF9WUA6NkEpTllXQyh3ZHN0XzIoXitTKj9qRz8oXnNbNWU0KHFKe0YyMUU7VE8/cD1XampSfEZlUTNRUThEJEgwSjkjMT8sZDprS2xTd1VMWmBVM3Rzb095YEoyaS5Oelgo'@; put 'Q01ecyM5M3xZKyYuaD9Heitfc0pzcGEsNF5meipbbjwwKTVobHpIa1Q1PnQ9d2t+PSZpczQrSFdoSFd2dT9OOT4xR1dzbzp9IiM4QCFodDdSYjUzRlksJENOR2Z7N3E2ITQsOXtrcFl9LzY+ezExI3tXZW90S20+MHQ9S0w+eCtYVkNSezNdLiI8WjRoKFl9MFN8JTVTLzNMOXQpeSpDV2hATSpv'@; put 'RmxvPHJFfmNwV0tKWGJXPWRRK1Y6MzdXZTlWcm4rcDwpPE9Yc29gaCM1NzJ2WzRydUxoYTZmX0VlN21hSDlIPV9YKGImJDtJcXwlcUFbTEwwIThBYDp1MDArUHRXIU0oNC9QYEV7RGhjPVFgeXkqeyI2fkQwO1BwPiIlXVYjMCsvNStkIz9nTDhoKix5YFF3SDhaUl88XjpbcThbQWg6USJJWlBM'@; put 'UGxlRHMpSUh9VDMvbj5AZj5+Y1JIUlRMemQ8XXZJfGFNO2xZOWZCZ3tzeXUxZjUobEBaeHd1bEx+RnA6KThiKTN8aWdtR21CX31TfDtSKj5xbE1VcEYpJGlMPz8yOEp9YGVBIj8ka35NPDMsSUY8cy43XVc5TyMkJDImcDZENEVIJTpGN3V2OGBKQEZhKHNAT1VkPTo3IzN7dltzX0JFPltQRiZM'@; put 'ZkIifmpwPiRqalhYUFlgMmJdJnleTGd5czo+cTM1PkgpdCphV21ffC4iJj47OSpOTFV8Rk9eJi5sJH1nb1FgYUpIVzBsQyhvVGEjTkQ6OXZaeDNoJnUhdn56Lng+I29qPFYxVzRhUTxwRUAzZnxvSFZiKnZWTHFJTVlHN0Vtcy5qR1YxUykscFg3czw2enJOTEUyZENVKDNsenJGR2NeSFhkXy9L'@; put 'ZX01UHd2djspfG4kYl9DZV9ZdDspfFZJUXxwSjRSI1Uofi9QLyZMQFA9dlIlIlkyWV9Bb1hMI0ZifjhgVV9zJEZaSlhKfmpZUHxMXl8scmlzKE1SbD40NS5VMDhCIl9ZfTdifn5FQWptd0djSFF3OXRKTms0Tix+cUowfW91IzM0TllXajBtLnVweXJLNS5DPndeJlcxLG5dT0l+KylXbiVvYS42'@; put 'VW8+QSp4YEhQSX56fVJMckA+QD06aFJtYWxKcjgzX00oQEwpRz8qLyZDc3FuUSpRaSp9UEBGSFsmVz91Pylje31aa3A+REdWbSZje306PWVnfDskM3pAIWhYb2FzS2JJcWRWM30yRjdQTHFWbHwpLkdfc2dxLC5sYnA8akRmbk83fC45dHwhI0IpPns/MlQlVVk4Pz51KDdEMn0pbX54LHtub219'@; put 'NUgvK3AsXn4oRE58TTNpVnledHtAQG12bj1abWpfbVRLR3A2XXpII3t6alZUfTJXdjY0VFowYkM8ci99cVg4PngkSU19Sy5zaGJHVjtRJStyRmwoLzhdM2d0SlNKaWZnRkAvMmllL3xsfnxlcT4ucHNuIVg3YFQuS053SztZKUloRyYseC5TI3d6TVRoR2BlcT9XI0EuTlMuX2toRyhMRWU+Xnlg'@; put 'fklsV31ReUl3YXJAQFRVbnM5eXI8c0FwYHowXSZAKkFbO0sofCQ5ej5adWRyZ0Ioflc7dEoqfktKZUdlO3M4LG9XfUswPytHZ3UxNnY4M1UjbWcoPlJ7Z2Q0Nm8+QykpbllNPH1wJHA+VSNQbT5ZN3x+bVFxK3UjM3p1aChucWxiPSU3bUkwJSJ9KXE+QWpLdy80O35CQkdWWm1qajs0ZChqPixW'@; put 'XUhYVWRdZWdZP3lyWXR4RXR9cElYTEVoKm5DKmNpUiguOEcmISFrenBFbXw7Z3EmInx5MElQVlMzPyo+UTxaLyRgP0x1ZyRzdzorKmJfX1l5PGlBZG4/WTxwe3klb1JBOSRxLltTdiRNeE4vIShgTFdfR1gqMVFhYXMoajkmdDpsV21WJCVKdC86Vl9uWSoxXkJhcyYrI2xXKGUoIkB3O2dBPCtD'@; put 'KHNMXnhVPFJ+d009cFB9XTxHU3AhaH1nMzdUYVRYPUpsJSIpMVV4WUoyMXxhTCh5WHo/JG9lYFo8JiFgPH0oJUN0a25WbkJpXztHQmRWb1ZuWFJbVCFBd35UXTRUaDdJVGdCQ30oZW8+K2B3YFhQYiIod1h7RTR9Snh8cllaeU4pdz91Y0w0ey5qa3BNcWZ2YzU+QGEsVm9aVWt2YzU+WEpsPnlN'@; put 'YlQ4UyUid01PcW4jUndNTnJzWnpLcXlNdk5bTyZgclEzPjU+P1RWYXt9fkgxcmV2KTJUYCtDYWV5cCIrQkN4dEFvL1A6UTpIZiR4UCw4L1BHY1M1M29kPGdVXUhfO2gyOTJ0PCsuclljfmhbIW5QUChMQ2JobkFBc31OcUQvZHJZOXwub1ZIOCxXKys1W2o0LFYsblhmNGlOV1JteGYhKS9KNmAz'@; put 'Zm5ZLHYvNk4rWSksX1c1VTQwPVMjd29oPEBaIWhdNXwuKm9fcnNPU3w1W3lyanFELzBAKWg0eEZaRChIQHckMlQofnRFeEtDRCw/TTxwV2kjams8KiMhZjokaD19NTwqITptaD4uViF8KmJvKWQkYX43TSxIMz5ZdCpuUiVyfFkiRiNWTXo6YE9UKGtCIkBycTtzQSxIVnN3fC5ZZ1k8LHklLDYv'@; put 'PzRbWnhmS1gjaFB5NnY5MFUjWGopPkp7Wm1eakV4OTVBdD1fTUlzNlNpOH5wbCoxQ0V3SzJUTmsyKDZ9NSxWbiVPY2FQcTYrTlFCQyUieXMoLkZbZUJBKUpdPHJCeShNMz1AcjEyTDJZOHVzJjNAVHB5K3N1MkQsTitTI2pxayYsbyxfLlBNZUo7VmBaYXU+Ukd9LCZPO305YVhfIlp3cnJOQiJH'@; put 'K3c+MCx9SmVYN31IeDckMz1JVGFEWH1SLjgkSysmYF9RLzl3VllTQkptfXR6MCpUNjV8ZlF4PkNqV21IZDR+eX47MnMjb1tRYik+dHk/QDxQfCYiTDA/JVZGP1MzRChKIikhLHtPdVc7N3xselUyRitKKS5WdnxbM2leQyVafHprJV1iX0ErJUBFeyUpSCNiYUlefWReJm8zPy5EVlEoQEY+c3Fy'@; put 'MGhhV2VgK10wbCJ3W3tyVz13ZD0rYXkySjAjJH01TitkeCVvOH4jVXU+NXRhcmJfJSIwdWVnSDcieE98OWhfdThtbGd4ZlZ3JWhpeDNve3hVIyVXKT4jPEUvTytUW0xAdShYTk18Lj8wKipYNyR8IS8sTixnc0w9Y2cyZjJmJXFPQE8/RVFIZmx0ZkJNaUtSSEJGNWxHPWVbdiVOLnYuKHJGd1Jo'@; put 'LD1kUHQkJkp9UnAkaWovVWhLeHEvYENuQUVdQEgkI0pLdj9aS3tBfk9MMjF0dURQPmgmUTpAQ09Pb05leFNhemp7YD0qbEx9X0prSk9AIVhRd0M3UFdHQ3RhS2hSRFF0LnhkPWsxfUlMYlF7JmVeRTlkXlQ0W3F8LmdOTGY1cnF6JVo+TWh8NDYkU0NKelFKWipeQmoofWNneHpXMGN3JlhnRzx5'@; put 'Y319aXdKIlQ4VFlSZU1dY1ZfbDUvWWwpOiZ5WlVISEcyOCxEV3NzL1RLXTRkT1lfLk9uWCVNdmNZdXwmO0NTIjt2KHh4M1IqbE52OUAmQndBWU5gMSk6fHBGKF9nTCZGSSt0IXt1eDhSPE58IT1zM09Yb0x3OTNVbWRTUEZ8UlV1TVBvLmk5VDsoPkpYenhRSTFvLDZvaEYwTHIrPjtVLis4cHdz'@; put 'NU9KSFhRSlRgWVBtZnpdTTdHJnt1d1ByejZ2eTFmRHBPJE43TFFEeVhCKGQ2dyVKeFtyeSxVbUJJYHwvSEEpdFBHfUo/cUMsJHE+bEJiTHZqZD1ycyxgRks1NHpyYmRoMm54JFdBKEN8KzlMcyg0cj5NQGBLbD59fWs+PHt8TnJvRT5MYnw1V0puLithIXVLdCFdNmNeeGhaMUJjfE9ALnBSI15n'@; put 'Zl5EaDglUjs6RmAmbUhjNzRAeXk4SlBHWVJGSGdgX0w0UjNYcSl7JiNNL3RpKzIjLFZjJWguVXZ2QHQ1TitWUVtudl8jS1EpTVYmQGZVdU1Qb2RKVFAjKy9KUU9nYzNtWllRKEdCO2g1KnlJMn1LaDEqViZ8XUxRWDUkZiUqUihvWDJkPnU1UDpKUmMqQk0iYyk1YU1ZTjB9Zz5bSCZybStsYjRn'@; put 'X3dWWF03OmJzREFBQUFBNGBHRjsoPkp0W29KSFhkU1heaklaP1NRfi93PkxnfDxaVGQ9dFB+dDpoeTN4I1c2ZF9lSHB0SU8oLDYsZ2U7UmZ+NFQ4MWA1WkskTjtJMytqWH4mNkx+TFkpeUk2JCZUVkIsJFVfe3V3UCVSQV0kaFh9QGVHKD1AMVF6MEtxIU0vdFh8Kj5gLlZHZ0E2Rn5+TXxyPjto'@; put 'S0NqTHVtNlk7QzpbZGF7Y0s0TEQ5QGlHfSo/eHRSKW5FNyM8d0ZhYXhmdD9kbltTMWVLU25rdD9kbno+RUo3bj1HNTshKGN3UHxQSXA2PnZkVyYhYDxgLl5zd2ArXVhBOE5BS1B5aU9bYGJnO3dzYHt+I08xfXdoTmt1W3I4ZyhLP1tAQHIic1NuJE5mPFRbQH5rQmAsTis/V25xTlR4M0kzPCFe'@; put 'bS5WWHcpLHQ6aFdfakF3bXNIJFArbDpVX1k4NDxGI10zQVtHfDxATm12W35tLyp0TXN8L200Png1SlRHUCxyPy56YCsma18jSXIpKHRGfkFLSFk1SnR9N2VaX0gjaHo6eFh+JnswcmRec28jOl87Z3hUX3pPYVR9eztRbEdGYDZUbz47LClHP0ArQHhlPSM5UENiPTlhKUUvYFZCMnVOaV9Xfmg/'@; put 'aD8wMiV9Zz1+aitGS3FbQlVHbGFWV0hpRlZxRDB6LzBxc2NOTnwsI0EyVDY1PjVUbD47ejtFZVs9PnVATHw8TFkmaHtqUWVfO1l5PC84PHBjYHY6JDNTI2VndkNTJm9zIlBneXZyaX1OSTJyNyEyekAzM343OThtc2AhYEA6fV1gX0RvdHFKfCZ7ZW4yRHpkOj9sfUhjUkdOPjxdLGdJKCtCaDxz'@; put 'JFV9InBzPiVEKnFIMWEoczt7Ylouaz48XWY0YFt5S0hVL3xOVHZrW3UuVnN+KyZKflVYKEl4S21hQStBIVAoekw7MkxeeTJ8IjZ9cmV5M30/PnFFSCY+anchXlVNSSgkKmBUWDFEfjBhOCR8OUhUN1FGfXBtVW5pP2hWOWF3fmN6MX1nc1BuXW58flFGez5PS1tyaCI4ITNHQjtfJVJzcCIzYHZY'@; put 'Tn1PTlRuRztSXy83ekZPIWxfYiteRklGZl9wYWVmb3BMfFo6TiRPRUVrZygpTlJ3eVNCfDMuPyZtMzpMdzt+PUtQInJEa3UmelNCfHwuMj4pMS8hez87fn1Gfj44TjBXQVVENVpdWj9eWWZOWm1FWWc9dC46fGFrUUt3LzI7Y3M7d2VeYEl1fj1Kd1praGBCQkA6fFUlbHxwZj8hYyxMYyQ/SFFz'@; put 'KTNmInMkSDFyVV1IMSo+YXZ6enJvWSMwdHwuMFs8am1fPkJAdU1xMkl7SntQe3N9aXBDaTJIIzNKZigpUzFlaFdvWytWUUxSZjhdRG9HJiRve2BibWh2YmFfXnBLK3ImM28zXUJCdD5uWW55Kl5GdF0kfnNRc1Rhbkkyb1RHUER0Yj9KX2R1c1E2ODdmMFsuQEd2TWtoe15gfT1IKCNDR1tlaHV+'@; put 'Rih2UV0rOF46WyEoRSJiXSRocjBDWXpaKFRtNG1bWFYlRmo/eUZ9O0gpNG57Qm0hIVNDIjBwbSsjek04Z2QlaXI+KFVeeV0qPFFOSj9AKmk0TG96LFtqKDkhdj95R01YaUZjd1tKSX1tdWp0U04lfSw9ZW0yby8kYlpeS1hpVl9APXU9QFV8fnFiRipdYUxUP2lNZGFdcTQxPio0MTJsJlhCKzdR'@; put 'XzpqSnxAQ09+T2RtPl4hdl5odkd7YCtVKHw0TFR5ZiVmcjhWYEJ1ej1lbnVfUEUucm53MWsvKiZjd2QyQ31KLDJLLl5IVCFhTDR1L0tHIil0JDozUmVxL1ksX3BkZjs9NXxiXnZQVlg8VG5sKjZSTXlPfUxAUnZJY1E3d0AuSE8lQlF7JSJMdSMsblVbUTU7bTRDNn13emVmXls5YWo1Lk91eHx+'@; put 'Tml4PzBxTDBiVkJ1bz5jV2l5N1o8OjdNM2BTUm08Ult6RVBMU15TcmUjaC5GSkVjfkV4MyYmdyp5e0l4W3JsXVR1Nmt9OiROeXNlYk5UYlVRQ19lJX18XWleUkV3XzlhNj48bixifSgzKGxPVXdDNTx7fVJ1NkpPOE1FPjV8OVp0WiJBLz5GdnBuM3Y0Qi5MNzFBLEgoN2tUX2Z3VUx1IiI/OUFj'@; put 'cXhCPFF6M1BCfiYlQDdBfHQjfl5MQEwoeUFzZT0sMCYkWCE1dCJ5dTBsYHZrWGZCeWM6SExyTn51XSZ2a1FDQjAoQHh5Mk9yKiQwVTBQbCU0QnFORTZbYlZhYE9EZm57Wn5lfSZFXyt6K3xMSlBKODR7dj1zKCpzKT47Xl5ZO2B4W3N9aEgmUGpVMWF4V346UlluQCtqanZWYyl2UWZgU1I9JEVt'@; put 'eHxtWDdQU0NUQjVYfW9AY2x4Rl9fQyE+MClYNUhSTjVAQzd2blh0djB3dUAiJj1rU243RnxzKVQ9KnN1Ym5CRjZCYjQpRXZfYCo5WklHQ1EqMH5pK3BRJGp0a1dNIldNTkxYaShHJlpPW0xSNFQ8PnRBX0I5KjdNM3NgQyZCVEtPUmZXanhnZGxNUmwmR2t9NUAqJHhSfSZwa1NpfHY2Uj05eFRU'@; put 'ayRaO014SUw/ZklrX3NEdmU8SDIjSmldfVM8Rk89OkN3UiM5MkBMMmk1WDV9d0dXXytwb1s3eW1XXW9OVyVwb21eRnp5alpVWzRJeXJiMllTTD9CQzxIXVcleW4oMTM6MmtdOj10fTU0OiZyQEV9QWM5a2xJZ3hINF09XzIwSG1fOzheJnIkLyZCQDNJNz48Omk+RX1HNz0vNyQsOnpmMXtjXkA+'@; put 'SFQ1Png9RU4mOmt8ejx9cl53LkhTNyZYSER3RFJieH49TE18PyxrYkI4NEY+PmhPIlkkfSNTVHhMXSFuaG84LFAlM34uNyRTb2oqczd9THx2U354UWZdfn1wa2hARU54K0dgfmllLiYlJjg5an1AOV1UbGNgR3I4V35xTUJFNSttX1c0MF5tdjRrVHY9TGcoYUxLcUlpMyQ3NX1GRFtvSiMhQkk4'@; put 'XVpTQihrdiF7b0NKfj15YV9OMmk+Qz1lX3pHN3NdJC5PUU08fVV6enJuVkFTNDphWm81e2IrNVp3T1M4fjsqJW8hcm0xOl9jdCJZdXV0QnNzKC8xfVEhS3x8c25KTyhWXkNoUChMTzByOmAqWEw8Un5YIVF8TDYzJXp7Vm1fJktEXXpzTyJBaDZDYG5dcF1uMSVhQ2BTUmkjdlkjKHBTVyhGayN7'@; put 'JXZLfkFnV19WUWc+fGYweTJRejpeLktAJlcuYzhiYy8vYD9uODpdYjYpZnx0TTE/Ok42Tih5Uz00VkleI1cwSzwrL0l0JTRPOXhSNUhCWFUzQip8QUBWaUtgT24mKjcpSV09d3IoNltXVUl9MSQ1TGB3XmQ7UFlrXUZCbDl5V3I3QU50dm9YP1hgRntpIiM0OjlDdkMkckc7OlpAazYzK21RWHJP'@; put 'OTBTWkx0NC55R1NOWCgqVF0xJDM6Y0w0ZD4zMlN+eWBKSFtkPjJvJU9lY2FDdTxgeHc2O1p8U05JY1lLSyZGcWh1QkFmZUc9O1RedlRhY3JZc001e3YwZSVQe2UwLy9EXilCKGQ+NE1jMEg1dXxTZH06IjdVKiQ7VHIjTmgvRHMyfEJCdG1xc3QmIUt7VDpYT3xsck5qVmtmaFI9MVIsLGo9YWZo'@; put 'Z2BuQ3ZpKTFdK2FCWjlVe285dzwxOCZaMCtdJlBNe1FWVCE5IXx4RGY1bUwxWiUzMU9pQjdCP2dhTjhyTU1KQGhmLH0jYjQ4SXJnLHVmYDM2aj5Ob0Y2SThIaCkmJT1mMSguUmNHUmBhRmJucUkycHcsR0dnQV0kL0kpdlNZOSMpI1gkQDxlPD13JGpnTWIvIzZTU30jSW5oRipmfVdJJTs8K3ld'@; put 'MiNeRDEhaUFBR2tTQTJ7aFdFNVl6eDkjcVRjZUN3T3tXNT9Sa21dPnRYJC5NVDg4V1EkbH5GS3VuYmVWcCNhZzQ6RkUqJk1KQmhEMVcoQTg5ZURnVmlTJnMlWGxMOnFnQCU8d2hFYV4ya2ZQayJ0U0MudW9pcnsvXyV4JlV1K3hARGExJXorbD1xUmJtP015dS5MI3U8UzVIY2NbbGllcGRMPiMz'@; put 'WlEwJG5OUGJfbEV9Z0BlQzZDbWpWUVs4L3pXcT9hYWk6dzRrb0ovdyppW2RlO2BpUno3IXF5ZEsrRSIvZW0heD07cCNPMkJkN09kMChrN29UP0x7VXljTUBHVjdnWjlsVypWUkAsfCMzRVZiWmpZamRmViZqJSY9eTlba3J5bDV9YFljLz9Xbk8jUCY2TXd0dkNhdHI2ZDsqKkEkfFJyKz96dlls'@; put 'YF9rcmxOKXRpSG1MQVFAfStCKFVDU2Y6KnJJRUBFS11jYSZVcDRTcCV5UkQxLkhZdkdIbmUyTXV4c3FHIilIL3VEREZ8T3lhdGN6Z2d0fTt2PiREXW5VQkYjUC55WyRwWUFXNFVgT29tTW5+Unt3XWpNKUlQJXheYVZIJHpmb2FaKT99SXVjVyhkeC5RMmtDMGc0Y1JNUWlFN19wfHs5Wi5JPmkk'@; put 'XkhdZm09RmgmTn4rRj9bX0JmbEJyXyxiUmUxRmhIbHU3KXhXU1ZxYldrJjkkd21xYEp+eFFXIzJaTmROc0c6dkRBenJWWjZtInY7KXM/aXJtI21XcEpPQXl2S14mX2VwZy5fISgpeCYlSHBKXkJBPWs/Mm5qeW5kRi80Q2NyUkZjISxBZn5QUyYmKEIlVSMuc3JwYzU6Wz5RcnU0U3JGRCZdUXJM'@; put 'TGtrN110fjdkWzpyJitLLlhoX0ouIjREYzA3N3JMVV4rcU5RMT1kPF1eelFfPmZTQ29pYlQqP2RpXlFRdXdpSUE3KDheXjJERTZ8WXNrYT4oUDRlcmYlPTl8K0VvUz87QDZyPX1PaCp+eF99Z3gqXT9ZUCVIUHdjKm8/TmAhXkQpX0tsa0JWJF9hP1k4fl49b11Uamg+dWlpRTROWkYvRSFeayg8'@; put 'bEBqfSRbbm9uM2FXISwwIWIpISpZXndbd1FoJCp4dHxzSkhYfVIzWHdpQV8+P15uWnRUNG89Z2hDQ2FoT1c4diFOLkNiPElbcWs7WG5QaEhSaVhbVG42YTRNTUdaIjZeKW48VFRGI14zZWhkbVd1S0hGNzw/NFYxR0kmRSp1aV47JSNiSkkzPGp7dGg0NmopR3A/PURMNG9kZzI7Pz40JUVXU1or'@; put 'N3BdSH1bbTtlemVndHhdeiV3fnpUVF13JVteNkdlJnN+dUZdZVlmWzplcGNLfGMwVS5LRWo9UTBHJUIiOC9dcV9aM2tmbTtLcHVWciRSO29WUnlFX15gb24mVEMoaVc3XXJ+ejM6Qi5gbW4mdj1EIzl7KH4+cG5hTFg8bTl4SG9iYTNoWGRCJEZSZSwoRj8kZTglaUlWcWcsa1BhM2tvNF0kZTgl'@; put 'OCJFSHY7RURUUG04O2cybDIhZHBRUCM0XnJLcGB8QTBHM05US2x3YiFicjBIUE4udms1XzsmXixDeSpMSUFtWTYiRUhqdkFSbjxCbVN0VDVbTkNtMiFIOzJlTnJkMGlhQWRBdURjbGY4fSYxZVA/LnNsalZhdmpWJjMlNX5nZkx5YG1TaTRMI20zQi5Ba2ZjVkR4Snh1SnQ2Q2A+X0VsTmMhe3VW'@; put 'RVtoYS9GaFd9SXVBZipCKHkkZ3dYbEIsPzd0XlFGQlJjQWdjNEBQbFlLcDxxYTNwOkg6PmRwcjVhJGB8MWtAenpua2VfbGRhOUVWS3BbNjZiKz0kO3FCL1QuLzpXTWdVcjV9O0NyWGJMMnVRTmQlT0ElUH51M11UOlllMzZ5U29iXzdRUXFZImgkRTdqRkI1KDdkMiVNOigqRmh2X0w3bzlIM0Ii'@; put 'Rzo1QyRuYUU7KDBrbiwzNzF4RSNgOHspU2l+Yyp5JFErPkVINFlzITJjbnt1TU9iKmNHMz81NkZpWXVWUzVkIzdkMmJ1dFI1QzZYciYoQHZFcjNleW5CPEZmcSkkdS4kQjt8WFBtUkJ+ZDtPNlYhamJPeFZfN2BjImN0M207VDVCTmJPJlMwRE1hYzJVOlcwN35BVjdlLm0yZ1IlZm80amwkUEI0'@; put 'c25WSXh6YD5xOzVRVT8ub1tzMUtuVjhAQF9mT00mNiJiXlE4cEl5Om9uVjhwemxvU2hleVRNcCUzS25rZXM6S1tsY346MFhEUj8/WEAxKCJUY3MvR2omfVZvTEZWSHtbfGFleEZ1a1pXZ0JjfE5WMDxOdX5xTlpIKlVFe0ZQKERtOSR8TERnPnMlclpTbCo1Q2NgTXhnc0tsIz5UR1pTQippSG19'@; put 'R1hlKCwkJmguNW5JOntneG9ze21aUyoqaUgqX2ZFfHNYWEovdihbS3Q/ST1AfnJ1UTQ2RkY3SyI7Y1Z9RE00fU8hMnJLImRHPHt5WFR8OzRwKDlLPDJRXi95aHx1amB+clU3VDl5IVRsPyJmbCgxWzI+QlJGN3p2VGs2fWA0ZnM9TF9zVEtJJkB8ajhmczB0dSF7eztFZ35kLj9RMCl6RXd+JW4h'@; put 'fmRIaF9GdlRrb188QlRMZlpUTFV8RjIlPi8+ZEdFQEpDfF51JjpmP3V2UV4rJHZZY1pzYGJlfH1mQ3F8V0RZOUp0aDZWbyxTTyx+UUxLWG5IOUpEfCgmYSlAVzFaN3BMXVN7fUYxTUkhLCl1PmB7M1pLRD1HRDghOiREcldoTHRiLEdgYCpvVF9QaHZXTE9eb0dffEQ8a0AqRWkmMzFBWVVWWSZu'@; put 'JVRvaTAvRGNrYjYjTEh7ayh7elUyQkNrZX5wUk58eVZKOXMsRWFMYjA9InVOTEZKWUxoTV9gdWRGZT87LzUiOFRWQ1FGTk08I3tGS0lYMlQpd2FzfStOP0ZTIlFjdkVjZlo/WTBGY088W3FuQSh6VS5MYGx3aUU3SkFPZ2M2RzR6PEd3PjhBKHpVZTVpY0pVVFRvL2d5V3NTNipVIyN6L0RjQl1D'@; put 'STV3cUMoYzR4WzEwaV11RllOV301JCE8NUtCQjs7LF9IZUI/MUEoT1RsTTZHPk9oIypsTko5YzU8SVhnNUg0JlJifD94dGwzS2BbVkt1RnZDYmxLQ1o1SDR+YzhyYFlAajs5YUM5Ulh8dEY1TXduInlddyU5THd9ZlJAKk08VyJGelNyY3oiMzFUaVlfcCFieVdEPFMuQjU5QnJFUl1qbEU4KHZr'@; put 'blA4enx4aUpfRWZOSHt9eSY6aU1TNUg0XjYqaVQwcClOXTorfThndz5ZTldvajFfbks+cDBqJHN6Yl5UIksyVmJHW29ZNl5gQjBkRW1oLGN3QUJaSGFEUGBvUUssWipQMUoxfSh6VikpcHl7emImQXt3YzVRWm5CK0J9Sn58QixgZD87JDpCXnxRM15pR252NTNHelkwayNBKEVbTEdze0hfV2FT'@; put 'Nns+bkZHVmgheXdwU0VfKnFWQlh9NGJXUCVRKnJeWFtVSlMkeUtSRV8qcX4iekFaYyJ4M0lgNTxOMmI8TWs9fnJILisjeGIyK2VEZDdka1g4JG9SZy4wVHxnc19rcEJ6NkdIKl9OYjNqYnwweTJzJThteCYpaV1ALk9CJWZIWDFwKWJLYX1jI0JgMD0mez0lODkvRS9zNzwmV0BGZEhKVTE/Q09X'@; put 'XzZYayZNS1JpO3U+cjBLR31TcjdDfU55KDdHLjZTekxNQ3p6ZEoxfXlHWClpdiI+bW5XaCg1JXcwI1EoTSk4UFhUTnxLTnB1KEVvXkt1bEYoVEdkUVJ6VmBTUFROfEtOTEJVJFVYKVovbXBoSUhSVE58YE14dWhLJDcvV1g7IypUejZrNz43Ym09OTw6W3ZrNkk8JmVAZEw2Lkx0SUx8XT81NWBU'@; put 'bFlfQFpvT25UPSFzXWF5U3V+b3coKlVzR3BuQSh3TipNP2xYY31IeW98RSU1NzY4UXZYbjZBKExNYjZoQEBHJnxqQDRrYSU9V1B3UHYlOUpVXXgoWi4/JCQlL0Fvelc0d2Q1SDQ5UmJ8NXpMI2JJTGQjTGZad3hGaUdFOSNBKExNc0h+IypOeCpCWU8va1MyWntCJm1nZ1lfbHF4dSJQYDg0Wip3'@; put 'cm1Hal9YdCouY145aCk6THtdfmdKI3lKbEA+V29vY0NjVmFMIVgqSjdyP3E6QWl0KylvfFFHdFExfXU4cWkiclkqdUhze21dVUVVVUYyX1EuUDtMV3dHUkVfRnF1QldyZDtFUE1nKlJ0WnxEdnBhVnRiInJwJjpMe11PaHVtUWlkNHU2ZypySSJdWUNZc0NfQD5dYnold3c1L01ZJTooPHI5d1pd'@; put 'TjxZTlcqZThyIlopXXVDPX1NWDlTK2RuMlI+SyY7PERHe116aUR7WGxsVyU5a3BOV1cxbSRtM19GRU1qT1EyTnokVW0qWXVhd0VDOWV2P0lHUWBEUUMwJnZXMUVhYnRFLzc5OiY7cEUmcTFYMHtHO20+QktkNjY+Mi92P1t2a0xlWk44UyE6eUhZelBJQ0ZuM3laaitLJkFkc3ZOWGVSSjhbQFdU'@; put 'M1kvSCtPdjIzaSJyQjZCUHdZL3E5WkZpWixwLlglWVFdSj1BIVgyQzgoJVhIRDc/UlhSP3RJckZ+O3ApZD4/JV1DcUF1SzZbfWIrSSsrQjlkP0hlMFFvJHlQUyx+UkdIQGlPcEBnLDhTKSlGKUt0JX5MTmtxQ08wUC9bbjlYJlBHdVRoK3VtUzs+Kj1sOXU+T2J4TGBsZSk0RH5eU201RkYzSD1v'@; put 'aTZZRnhhc3w1eDdWJkp6eHRVPEY8YSYvbjBBbUc0a3woWGV6ZmVmUng3KyRYdHA4RTBrInJBTiJkPztOKkJuT0FJSD1fMVRzekxzdkdLaiJsWV9QTUxHfVMkI0wjYlI4Vk08ZjFtc2RDNT9yQ25fKU9qOTomIUA5ZT1QUzZ3MCZAUmBjWGBrInJpSEE7flAmRSxKLCE1eD9uW0kvV15jdnZqSnlV'@; put 'SERJa25lTCEwdyNYVEdUNEYpfXxBYUplZCVhMT15Zl1MbyJNfEVweHBOQW0wWlowRlgzQlJKNnVxQEJgIVouP0o7W3RqZ09IVnZebnRMVixYQntFd01XN0EoQHQiT3tnS0gxXSxIInpjW2d4Lmt7dXh1P2dgOEclO3ZpdGNvQEIlb18rQStjO0g+VTdGRH05e2F2L11hSXRmKjoiN1lOV0Ejcjku'@; put 'SGd7a1pCdD55MnYmcTE3PlMlSm1wJjVBN0BVXkd4eGdLLEY0aWBKVk5rTkp6RlZaIWVzRXBfYHY6X2QvZyVKNms6SXI9MClLLFQjMmVoWm5YeUQrPDlMMVgkbDVFcnEhcSFMaCosRj0iV082dXhsfE5nRn1NREsiZSJydkB+ZD87LjprIW51Yy4uIlNTIzhlciRkfWQ0ay85XlcjX1ZBYTxxImFt'@; put 'LE1DeWdpRDxrVEx5Rzk9YHEwKlZePjJLRD1+fHRESztiSyFhKn1oalcmSV9ZVFZgR0dEeFFnT0hgdjt5LDVHTXNGP2tMKz1hcVpJP1ZnRmZ5KGVYYjNAKVtJWV9GRiJyTXBGODQ0QmpkeltPTGFgTG9xeS9bOU1HcVQ1XUdVTSozSDtMQ3plUlV3ekNYKUcoJXB8Q1J0UiwoO0ZnSncmL291RF5H'@; put 'KV0oNGdUdVNOXU13L3c2OF9vNnx8QixKO1QlYXQ1X3FJJkZWM0tXSHVUd0B0P24hKVg/WGUhXyU0Mz01cT5uLlgkUi4kTkdKSWM3V0JnekM3aHdPa1tnQSh7N3cwVUNxQUsqWzRVImFXR2l+ZDx1eVlTOUt4JVtVd1tgb2JPNCR8IUcpL012YWFucSowdCNuOEtVemFtYT5NXVJifCgxcjlmYS8q'@; put 'bD9uX1JaS01GKiJpam5BKE01YXtKI3sidHFIUlBsK05tLno0ZFo3UEBdXVlZZ3ooWjtQTGBzNUhJYTNMZXZqUVMiI3x0U1A9MHwpWzhNIUVIRzF9el5MPz9VQDIoSV8wV0QkezIlJX5+NDUrPV8vW0M3WjglOU53Uy58X3FJJWJ7T1EvIjswek1efHxYbEh4JTk2WlI9T1g8UUJVZFAhdHg4YXUq'@; put 'VHhQV3Y8VSVEaGMkRENEPTg8aix0Izh9ZiJlYioqOjlFVTZ+c0AoPFE7WVRFbTdNKG5lWmBDfE4kdn0mPFhzLClYc0NeTShVP00ofD5NKEk7I09INEBpOXNbKV1YeFlmPHVEJF9yYyRXZl9HdUIiYXVkfnl6fXNdUEhdKUJxd0M9ZUR4cyosKT48RFR+QVJ1KFBNLHwodyt+fE0pRzR5ZWB7cH1P'@; put 'QTNoYEFhb2U0JFchUjpvfEliSkxsUDEhRWdac2FANl8yI2N+QW9SJU5zNzxII30wTXw/Lmh7WXs5SzNkcTZAdjNdZW5UW1Q+JCluNzsyQXl+eC80Y3NOKVp5UlROazs0Y3M2QGNneEIkMzs0Y3MrVkxxUVJSblRPMj5xZjs1dD9jKXopdHZ6Pjc0KG4zUCRzPXxLcV1hSFQyUCRzUmVJJjc6Pi5y'@; put 'WCEkey4wNXVtOEpMYD0+fXJ8PC8pTkNQNSJmSFl3SyorSF8sfjhITXEhb2ReY3t8ZyhyRGtCL1M7MWVoX0AsVF8rc0EkO0csWmJ+MERBalBsOlFRRnc5USRIIytLMn05ZiMzZTFoc1pkY19RWUErJXlyM1QySCMleSE+Rjt8LlhTRVsxP2I4JnIjUVJuUE4uQ1d5RF1NcWxwR1RzJjk8YyQwJGM9'@; put 'JWRpVlIwfl47KTcvWkBYPipeTixvdSI1T01oOiFxWStfcWIkIlpWSDpbR2R8cCtucjduI2I9dm1zTl55XyRAKzN1N0NFdDx5O3BpfU1Tfio1ZUlpUTJ7biQhX3FbejF5L3hTREt9VnBRIiMiL0lBLEo+QnRLR3g5bz9sdHdPdFBxNExVOyVxI11vQGNWUnspPSJsUjFbLl45UWh6OygrRD57Y0NI'@; put 'Tn1AYE5LanF6PnJCRl0xOClkRTRVdzRqPDt4PVVoe00sYGQzN2UiXjEoM2c8eSo6YWZbYSRueiNEakAmenVAVFR4dm93bVBfYUgpdC5oN0JyPHtubGY4OGdTWylHP05BdTFbKXZJMXZdTU8seVJdRVJJRXtgeFJMd1ZOdUUmP3JdMFEiPGlkUCRVZWg9MiUudTNFMVI6cm1IJm9PXjdST3gsWk9q'@; put 'NWFafU9PX3FQPSFAWkVgNU1ZJVgmT1tObS9SK0tFenUqSWAjQXEkcFYpe2ApMyYjVU54NUFhSkBAWGpNYE46Zlt6d3hHKTxhUzFuRD1ScWpiWFVgcEZNRlY3X2sqOjwofU1WeHcvRUtEUU1VaT5JUFRNYF19NTprPFAoXSVXIXBub2ZLV3RVKWhkeDQ9SVVaTjVIUl9TJjVQVHRPbERAUFokYVo6'@; put 'MUVLeWAka114UDs0TDpaN1ZiZHxvPS9HSm1oTiEuRHMvPzUpQ1dhWUs/NzJUPkZudCUhYkt8K2Irb3puVVh7ZUBoRTguI3NGWiIuPjQ4bTI+VVQoWilSVk5XTjcrO1ZwSV1XeVoyKHIyJUJCREM2ZUBkVHI3UV88NUJWdFA2elBUMlU3VlhOPHQjSz13bG02O1FvTDNkamIkeUBPYFFlRlRCXVRq'@; put 'd01iS3YhUGFLNU1NXmlHLEE0Rj9pImVAJnt2L0t5VjlwKXB6QkRQZzdYV29CUzUzQG9QeSxTRFF4UmJTM3wie2k9UEooeF09b29YS0N5V0BYXjVmOTNeWmFqJVcsQjU/ZnpXQGRUcU9hdEw2JiFnPz1aXio2RX4kUEVLU09xP3leTzRaWSFabEkkbUZHMCZjU2V7Mjd6QUJpRjdYTW00YHZfK3Vm'@; put 'UHBqQWxLIix4V0AlcEouTEhvWnU1SG1jYXtGO1t1YnsuWSFyTF48K3huZT8qeXg2TWVeZUdUUUpofml7MCo9ZG4weVAmXzxBSVI5fnouP2BFLzhMTDMmSTdrPG9nJUNbbT50RGZBfV9uI0FpTWF1MmFtd1N2YFhtK0xMOnAsWjcidFpyQHxDUyp1cHFhZXp+cHFBXy8qZF4lSzcvQlUzc3N7Ok42'@; put 'LHV5JWl3bjFCZipIcGwqbXZRQ312dUxyJjMkayU8P1UiLl41IlgzeHYwXjcpem5xY1NMK3Q8Z1NERypwekd+RHxiciV9Y0Rvbn1mSl9NJTswPCNhO3JbOG8jYXJETCk6YHZ7XjcrY3VBQ3RCTCsxXlUyPzpALytjIkwmYXphbV4hITRsPnYqeCtxfD9WS1Yzd3p5TTkuTi5POyJgRWVHVXt5YTZv'@; put 'VFdvcEdOe2I/Yk54eUo8UWpAbXwzKll7T2hOa0pYR01iYkFxXS9IPUQ+ZyI0MGAkSz0hZlYkNEElO0U7YWNmX1NmViwwUk1XVXsqJiZUSVBaXy8iKzZvKipxOT94bHJXLEh0dzkmIUgrO0wmajYlZ2p9YDdLXmJrJm97QUR+fCpSYFlHc2xzSzp2N31oQiQjczxNVTJAelZ5QT0oPStkK3Nzd3lp'@; put 'US9jQERRRnNXKCpeRjVUOjtJOzR9VGRyXmdpOmAvdz5bRjUxdyVIa2k+TFtOPDE8P1MmKzkhUT9MVSsqVXMpU3drJTBuZ0hgQzZQc0JKYiRZN0ZQe3lfKy5bL21OKloyQWo2eiEpbmV3Rzc2XkshRElEKlk6ZyxaOnVfXWRjeSNOWSFXbiV5Tj5McEBHbVk+MkpRNFFWdDByNTIze1AlWyFlYlIv'@; put 'eGFjN0xVcG1IKmJtUiE7QXg1WjZyI0RRYkBtISZrYlMyNklUaWAvcm81QjZyPm1fJCVPe3FaeExyRkA+TTk1ZWwlSjRecl0xaXRaVllOam89OmhgWS8lJFd3RXhaSSpPRkRoP0RXcHZjKi5ZNkNGVyp5MS9rLjxGUyhCaEhhNH5XaH1SNHVZJkldZyNjezJdSTtHIWsjQUA7R1kpXXZ4ZmAjUzp1'@; put 'LD5nfW87YmNHQnQ5c3xgal5YKms2WXdGYHl0d2xRTGtJTVt2PFA4dXx7JXdCQ2VFQSV9aUczWW9SSWJKIjF7ZmA0KCU3aXIvRkpHUzJ4IU99N3tCJG57Km9LPyxYLHRTb08qWn5Baj8mSjg7bGh0TDNaKnY8LHcoVXdvcHE3aWFMbiJZQ31+Vj5ZW2JncWBZd3JKNzNRfnJ1T1QhKHRhJX1pNHhX'@; put 'Pm00WWx6Ul1OJmM4OSpJViRJO0l3Xi90OnMuZz9pXm5LKlkoc0xecVMvOCY9V21fOSlwQnhFMlVOKCwoXXU1UX56Q31nWkdGTUZkNHs+YV1ieGxALlI8P1VlRV5RT0ZVZiFge3VqIzVgLDtpRSZXeUh0I2FTWCpzUzZDdHtXM00mfnpHTXc+cEF0blhVcntgSzssZSlOLzg8QUtaZXx4eSY2TTxh'@; put 'NnxlIl88KSFwKno7PTtxI25NYld9KHEldzZ1eDRFODlEVXdDa0FdIzQvYXVlZklsa3JiK2Jsanp4Yk93UjN1N0BRJm0oRXRrZFpWQkpCN2Y6PGpYaUVQe195Jl1kSlMjYSFBSzB3fGtnNyZFR0pqUyt6anJTS0phYyN0by9wcVpUP3pkU0FwMV8yXl87SHQrJkVOVXRTcVg3aW1tQkZ5aSxBUCYm'@; put 'TUtfRFohY2Bpbk1FRjNUcXBUKHk2W0JgOWsjVDdYfD9MfWc4Un18YCpbYy9aP0VtZz8iW2dSeSl9bktmclRGQ0IjNTlETEh0OTJ8OlVfdXh1UDsjWGNFTGlqblJ5Tk5GIUQrU2pNOy9GKi5BQEExU3VhfGFJQGBhM05iJjRLTzYmbGpNdDJ4aGw2VnVrWyg3P1J+NXpjNFZuMV8rWnJFPmgyYzUl'@; put 'flBTVihSOHldUXElNG9uKVpkNiZkXiZ7LyRPVVRLNkUiaVlPeSY6OEAmT1g+Qm8jeSN+PWB0eSYvUEk5IXxIMC9rWGkqSD9vWnI0ZlQ3Z3pXalA3Q2Z7V3NkNmg4cG1LL189dz08PCIiKVE+NFZUQzpNUEtoZkRPaHVOb3J2X10mKltkTjh5RzhmTUhfM3NeOjMwNHcoV3hLLHx7YDUvX0p+e050'@; put 'WU5aUjpGMTwkdVZ+KWEoPHtyYWgpOklIenwpTWE+RyFoYjgyOVlxZSIueU9aVWtdX1UoR0lHU1BOJkcwWTxHZ0xpUUF9MSRtNW5VbXZaSSFCclBnMiMsNSYjQ3QrK190OHY1VGJrX3QwX11EZWo7dloicUYlPGFZbzhZSHJOUW00Lnp5XlN0Nyg+KFRGKTpPbipNImloQSxNZnUyNDlSPFNye2Ri'@; put 'LFRpTUl3OVJ4IyFHNDFiXTEkcVA2T00mP0JfZk1AZWw1Rjw7VnlWPF1bQEErUiZQNXdYJWRoRXhPMSNaNk82ejxqJnE+ZllyN211amR4VS8zQmhEKXhZTTN8MSQ5Ok1JW0Q+S2ppbStKQWUrOzsqaSUzYHZSUjFxbVNhQiJ8XjtCcCtNVyl2PDIrZ00vRVBNbCVWYkpRenRqRy9NWVFqUSMrT0t9'@; put 'Z2Ngcz8zNCFNaHp2NlN1JiIpdDU2fTA+MCFbc0YiLixYfUp5ND07WEhBVFZUKzIjK3hgPmNeNDI6Y2RWdkczanU5RkYzT28rOnIjdDIkVyF1aU5XYmVmQTNSbDtofGwjUiRMPjV8MjUrRyN5SkJbfTk1NmM0ZmNGIXZTdTx0SmN4ZDVzMmhqQ1kkcT5ATiVRSCY1YGlgJTJALFBySHxKSEdEQzxj'@; put 'enVuTEdoRWRGUnhpSlMlWCkyOjYpRTA2NTZjQHVWXlhSJjQ+Zl4xY1ozKCU2LmdLIksjIWRmMURjJUdBPDt9LDx5MS9WcVJqTzZeYFhiR2hJZHpicl9MbDQrfF5iS1RWJTtnUDc2cmhqWzxIeEpxLjJJOXR4OS5aIXNZPWw2NStoI3kyN0R8PmdQJSk0OGR0aitkPypaRWYmal9dWEp5Tmk0dkwy'@; put 'QCFPK09rP1EoIUA7fT1Kai9dYUIzM1Jue2QoUTYjSVtGckg0NFFVI198THZbbzkvSmldOFM/TWhmUkhZanluMXBnLCR0Yk53UU0wYmtvSVUzMSs+Z24rV09NY2hEdDYvZUVhOXh4OUhdbUtxIXt0OlJIaXNIfldrPUZRIkJzb1l4OENtcClncTc7dnsjRCspaThwd3FhOXhXRVZ1UF1nam9wdTdE'@; put 'KU1fT1Z5fG9DeDtodG1SSUxATGkjTGhAOHRVeUBbMiFMZ0l5YEBEbmNFXSZqUXFpdEMkJlk2Wk9IVDd2OWovL0psImVRcnZhW19ZdVhHbkpycSxbfGBGL3k5SF1wbkpkbS9SQCg3Z11gZDpna2BaQ3RfLENLLHM6TCF4K2A6RlFMX0RDSW1gYi5LZjM8dDhdKlFzamFYWyU8STBmfWd4SU9tTHNw'@; put 'UTF0MzAyWkZ8PXhVQzpIV31ybCx5Vmt3JExgdGpVdiVjUV5qMVpSa3N9V01OdGByQ0BRO2t5OVUlYXJMdFhMJDAoQyVEO0xKJEcoNkc0cURHRGtyRls0L1k5KjZnb2BrXSJZVkNJTVYhbCNVOFg3S3NvVCQpQENTPC5yKyt4e1ZvYjkxT3dJdFsjKHEwQUQ/WUwhfkAqUVMlQUY6VSZXUUd3al9K'@; put 'LFgzOVZVOkIyZCltdFpENUxJYTtYO2BpSW15WHRTKGJGTGUuLEc5ZjtsVW9HdXY/MyVHekM3X0I6WWxecVIyWDR7bFIjfSxeQitTMm1DNzk+WnNEcG1uREV6eGtiOS89c18oMWx1VSw5PChGMXN4ailSOFEqO1dtPGxVIWV7ZmplejtqSUhXLnFSTTdUL1VfOTwqTlBCSTdhJlQlbzYlK0hEVGxx'@; put 'RkBHZCspenoqKTswdSJSQ2BmWTorW29mI3srTF1uS1VePiZfLlRvJX4ySl8ydnpzOVtrJDxnWTskalpXNEMpP01bZnVeW1ZKNzpCTiExUkYlKTVxO3VeI3JvY3JSKCNsRVlRZylqbHdnWkdycUJWYmtXT1EvUSFWSn50fTw6RkJDUzlUKllAbCVQNWJ3IXtVeVpEfU5LNXA0Old5UnFid3NhWitE'@; put 'P0pgPnRCWEJAYih1VHo8O2VqMG1Aa1ZPKlJ2eFA7YEY8THw4fGQpVigxIkxfLDNkUXcsdXMhKzkjdHxReEFieSFxamtFdmQuYnZjRnkpbUUiWDRxQGEhdTc6YUM3LzpYMmQ9QmVFRGF+My8va0JOYCoxS0s5UyRiT3twY35JN2MxZj4xOXtwdmVDWnsuMWZEPEYyUjVuQlhtJjAld0xLcX19MWVH'@; put 'N3V7Kk9jZEd9eSMjflJ7VjlOVWB+ODdyfDVTXjM5diVhQF9NLyFMYkgqfW5vZTw9fTd3MyEqfGZDKX5VcnIrYGVHQi59fjplJjdQcHMwXnZ1VH4kKCF+S3AwXV0yNWBAcTNLV1N2XVkjMGsrJUIiaSw+N1RHfUBIVD9hJDxVMCIhTTZUYHB0Il97WDFsV0MpZT0oISNQZTgzUTAoWFVVXmk4bXV6'@; put 'NzFpRjs2KGIwXzk1SEhxUntobHkkJS9nJDVlRTxJVndLXWtsaDZkaSRALHFZbTZsczk2NTFPLlFWWXBgIyN+R195V0NUbUEobD1uMFNNZ01jejh4XktEZnMxPWp7XnVjSiR3c2x6Q2ZmZyxSdmFjKF5ENFg+LzNtJUk0fV5EKWs2RGNHRk59cV5CRzokcmVlWkxGUWYkfGc1SSJjNzRfSVZPR1k5'@; put 'a0hNMHNkKnNeIyNPTShXM2pBQyJvREcrbDgqKkRAKnJLL1ZhTVFLZmE6Vk1nS3c9NSghZVJ7W0E1S3BRPz85dkRvPjNhQV1ITGtJeElmUHB7bm1JQ3ZnLiMuNUJNTUkwOis6KEJoW21VaV06WHpTcDFwMl50eUhrYyg/W3NRI05IaXgqOjtyUGs5RlFFPGxVLndXMTozdEtidUJKMlY6djFnYHE5'@; put 'PmFPIy8wMGVlbmtiXi5iTyxbWDdCSCRyYWd6SytNQ3U/L3gvQTBSd0VIdi9LKFlQT00yIW83LDpob25OI1hNcnM5MU9BRTlYTE5yI2VWdTpjRiJaJDxaU1tNRCZlWUhPW24zJWdjKVJgJVliRjcoO0ZzQEVFaTNjdEc7fkcwMFdAPVlwc3NDeXl7YE5weyhuY00mbz9LL0VCTl5vLzo+I1FGQltJ'@; put 'ejUyRV9gYjIxfU80ZlRuOVopNDNWRXEwT097VzJVU1d5anR1WT01MjVOXntaWjQuM29wUnk1dCs7ZFVeU2JmPkMqZj48LipTWjBXTE5tWVdtJGV7VyRSb30hRDFYZmFtYXshQVc2aV9QNSRvUFJpLGJWYjdDTTV4JD8mYDAqdHFaWUI9VmlRITVGWHRIakRXS0JZaHVwP1JJUUZDVipnUldodDs1'@; put 'd1EmYXFHemdFKnF0TkEobjk1U0REY09bSypXMnNgQHl0NUZfRlpAXWkhPHZnWWVVNEBsdEdmWGU/YyRoOjkpKnNVeUsrRkwoaSVWaj57RiVVen41RHp6Y2E0T1BObF0mUl86dHxlZDg0U1RPWko/djVTQ0dkZGZsa0xMYk1QPXFrZ2haTUwqa25jZU9HYD5VQz5QMj8kW0xiKyFtPnEmTmxMckcs'@; put 'X3pONVBGSzB5UT1pIy5FN2VkdGhEdSs9LCtbRE1SRkREdFNdY1U7K0ZoU2pDXjxCd0RKakNkI1ZKfmFZengrdmMjcCI+KjQ8VD0qQ3A8ZFZEcHYja1smLF1+d3xMPURTMjAyWzd8Y0taQTwqTT43M2VoZiZAPToiRmEvIzolSG1NbFNGOzVHU1Y5QSl6JUooJG03Um9mYnNLfG9rUCU4bkI/eF9V'@; put 'NGt7YzhnbVtUQnkjKS5GcEJHdWFGYkh7UGVKVjYvSktxdD5rZmx1RFY/SVFjQ3FkbUhhMVEvRFN1X2syKUgsbzN5WDJKMiokdjhJRHJrP3ViN3pqP1pTVCsyNytDU1soIjBDfXhaYk45YTRpSlZpMXFNRjRGVGghcjdYeXxiN1pybSk9cHREb3c0Nm86dXZtZnkuPmImblRqPTl1W2pYTVQ+QkRm'@; put 'MGBrYDVpN3IkdkpXezNIZC48U3I6RlNodjVMa25udys0WmVmeDcjTGswSVMvWWU2XytHLEpbX0k0SWh8X19hSXBLNl1xMSVSbF13YCVyNUZkek5CPEFjKnl7fUoqMDhgbXFHLHR4Sig8VEtbVkFPWishOUBbdWIzcW5IKzo4TVo7VCUlX1V5PXcoREEmSGQ0Rk8mcWRPPT9VKW1oUXh1cWdXKmtt'@; put 'XnZbNCI8MG4qWzdTREpyJSFEQVAjMmZoSG80fUk4W0luTVdFUm1vd3J7QHA6cVNCflFBcyNMKDM5RTc5RFU6bj5EVGc2W1IpO282e2Zycis2Y2F5T08+My8zXzh7eDsvcko6WUVAeiwwS0dWRFZRPHQ2aXY7TDdrSEV1Rm5wJnV2V1o3JjsoOl5sYzRhRzxQP28xZFtMR2g4Uk8sMGN5by80VTdH'@; put 'V2E4az1XTix1VVdVKTVJNj4sdlNER2xebDsiTGJ+VUJrdzxxYTd2NDdBMWdNODxpLm5KMzJpMT8+eXc2OWs1ZEp5Wi93Zmx5Ij01V3dGYVNkfWU0W3B+MnNnZVFDVnJaSWpWQ0JoYXJfLytjc29IQzp5c3FZQT9JSDtNQGpPRTQzYSkxR15eUk9rTzwmKjN6aDxfYEYmME17fWxIVn1kazo2UW1x'@; put 'K1lWYyw0JWBhfGlvXnMqMkY+Qn1mYTd0ay9nJTdyaVllX0VTNlFHcURETGNbfUxXO2wjPjlATCZXPkdKS3FVfiliUXEpflBOSiZzI09FdzNtdEZPc2huXm1HRyZ9b3lYaGtlfEZMd3w1bWdfe19ZPVgoKFlTcjgjdVB6cjx8Ymxia20+WzBMJStQOV97XmxITUVuS1c/Y3QoUSVwNkN3OWFZPCZq'@; put 'WXpoJl18RGczWSkqMl9jLDQ5bzhybndMKG47VGlzajRyeSo8RWF0RlVdeXdUUHQlNi5Ic3xoNmFPfiVoYDlzaXRNRVhLIXRtWHd0QiJUKG4ldEF1fn4reFA/KCFUYEUzUnFXM1VgbGd+SWxKRGp9UjY3N2BzbWo+O3FAcTEqJl1RPEw2PjE0dzl9fVRCTy98fTxHSiYsYDZeNT53P0N8ZihfVkY+'@; put 'QHxSa0omKGBqLn0lcVhNTFlXSWR4WENaMF9paHwyWGZuPkk/Rl9iL200ZlRkSX5UYkA6LkN8PV5FIWVXO3JNcjJ4dVBHJjtvT0VBM1cpQVZeUDJXPToja0g/OyYiKFM+ImgkKHJfeEQ/bzhzNmQwaFQ/VERHJnIwWGg4RVFERGg+fDA7YFVXKFBVTSNkSSEpWSlMRVN2IiZkSnlFRyZiLCImNmlV'@; put 'RCtJPVBNRWJlXz55bUpPQyZCSHEhWFFNRS5IWWBmfDFiTnFecz16UENdRWRxL0U8XWZHWVNUP19qOmJVJnssZnRhKHc0VUJ6fCFCWWxdfU5OfX1mNiJZJDVhdV8hUFEpXm9ve1VXezc8T1Qva2Y8eHslc1VdTjJ5PTFjM0liRi5iVSFQfn5jSnhoKURrJHY0XmFha04wfGgvQmFtVypAaUdOdT18'@; put 'OE43aykzNSkkTmt8PGQ8WDgwS2JrKSp8WUReUHhtc193JmE6MypsaHFtdHVDNU90OlBlfjtPM1YmXX0xJXM2KHM6PEBRPXNkeTpefT89T3FNfkZJMj43MjpqVU5gJlEkJExHJjBgUmU1PmIydlFdfXsuT3FCa0ZoSj0sRENuW308K09xZXx0SzU+ITFDbkB9QylPcWN8KG0sNG9NcV8jciI5W117'@; put 'c3JpLDR7P1YvT2xwSiV0KmVrZm8iT0VxSlg/cHs8ZER+UkI5UXRsZER3OShVdDlDcGpINCVPcS9AQiZVKHtQRj4jfCxpOTA4Jnw3b0xHJjtvV3xGQ2dfTC82UXRsPnUrO2UoV1BGPjl8T2RkMFJxekBMRXFoLDReaXJfemVuMmNbbV1mUyghOiZHUGJvb2Qyezl0amNObFh8cXMsXlFhdS9BRW5Q'@; put 'QzlkOkppXTt4cklIfH5hJXoxeFQuKFpTd0tEdHFXfTVQOEkrXlg0Kn19bUhRV3Ayam1jX0ZoM0ldcmNLImZdfU5QMz4reXtMMF83PEsoXlR8Zz45ISt9bEx9cVtUUndxQUlPZCp8eHtYbFhvRlEkPjghKXg2OWZeXSgqdndeclgyaGJEaFhfVE9wJnVTb1ZYb0QlQCRNW0deViF+XjtpOUorNnJA'@; put 'bnpSZnFnJjc1cF87MCV9TT16Kig/UWErZW0yeVBufjhMak0wRnAuYWZ+X09Qan5HXXprdF8yKiYsRH4/WV9zNWpiWkQrakUlfUlbSGEuckNObVhLcU98WHM0Pm4idlE3c3U7U243UWpqN0JEaGF+aDNPcXJAKUpsXWcjKnhVX0ArdVRlKGNORWg0fCFOZF8kK1hJZShGJnpVZU0yezlmSVFWOlsx'@; put 'dSg/OiRbTDM0cklkNVtRNjApLDZ4WFJDel96ZUomeH4uXUkmUWBgU1ZuSXZmeD8oNWFUKF1MRXJrSDVPVV9vK3VUaiN4WDgqejY9X0V3T0UyMTR0Kk8yPWpjczw4fXUhO1o1UX5oQnZETzI4IX1RTjN3K1UiPDdpO2UlfnFEMFE2dXUpKUoubkxFfmtmfWtbYWhYRGBDdlFAJCw0JTU8JnclRF9x'@; put 'MnhYP0AwXzt7VmM+Y21dPmBEfW0+RUxIcVhZNW9LclB7cVllV1FIbjVJfUp2OGE2XzVAdkZmZFVpSXZQeEo/Vyw6LyZ7VnosaWtyeVd9KCNrO2tuPjN5dzksfX4/SSZHYDtAMz5YeXc5TW1JdjUsLigqMlMofUpGPnV8fjwmOiNrRns7Jm9KemhOJTZHRGh0fCouYTpSTyZQNXI8UmF7RixOb3pY'@; put 'R2tNVjVfNTIsPj1vPkgwM31zQnN2YV5QOHk/cEE3U0I+QllJYFBnVj9QNUdrZkJ2KClUJSw0PlJzX3sqY19MdEE9TGhlIVREVippbio/WlM8aj9+VG85REtSdTtgV0AoSVY0bDlEN09eOEh2YWNfPkI+ez9CX2p1W3toW2N7QkRCQyw0fCl2RXg6U3RKdiJRbDRYeGlaOHJ3cGhfI2s3IzI+YVsj'@; put 'a0VfOiY7JERfM3MsUUkmNy9IQnhYczFwX14hPmVefFBKWk5VX0B1akk1KHYidnV1VGhzZE9Je2B8ZllLcVhrbXVTfnZBWypfQFE5Q3NTfGhhQygxfWg2dWg3fGg2dj4kfEJxNVRzfnUzRGhAfkA2YT9yKGw6R2pnMHlYbFl9PlB+d2Q/ZkIiInVGRDl+PmQjfiRCWkVNL2I3RmAqM28xbTA8b3JX'@; put 'bylBIlowYyNWTDEjIn5IOHc8YU9YND1KQF9QMiN8ImZCeztjV1VJQDRGeUNndH1+PT1fczFWMUJVflZlI0JWM0A5YDNHNyNKQm1QbiJzPGFoYFBKd3ZVX1AqWTFnc3pNSSYrX29wZl8xXilKUigpRjYsMjpZbHZfZElnT291dVRXZ1RtO3VOWFZHQjlEbkFmdU9FNHNlezgyYTVEa1pBSG5EbmxG'@; put 'Zyo0VCw0SHhPLDRqWDhyM0FuP1k9UShFRlRyZ15xTEtxaT9qOFEodkVFaGZ8aWhFYzhTPD5MRW8xZzJ6STU+THsvOiRCUXFdfj9nSz1ZMWJXWXhbYEIma1dLZzJfIzA0eXU8KztlczVJdk0sNFhvYnxoYyJGcUEzZSw0QWRifFQ6IX4jSXAoQ0dvTGZtPVhLJSJfL2N1fUM1aXNpfnBNLEVWTW1X'@; put 'OlpZU0Y1ekU3fDRsNH0qRip+I2NOalArcjgpc35jWF05Mip9eUdKNGh9TUJxfnRsSjRPVVtYTy9+Q0t9YiR9SFVXYCRfZWQpa1JhfklSW3M3RmtJUntTZj19ajJwRDRRO3IzNUhiLDRHJmZ+czRVNG5oJVQrdTdNaj9hdmJ3SXZyRnpfUmlpPWpjRlNbd3MsLGh9QGJoXzhmQkQ4b0U0JWhyOCM7'@; put 'WlVUJWhQTXRoe3tkREdiRGBFaEVyJj1YTVJGSTY1UXJyaFN5Nmsvbmk5WXdDMVR7OXxGS3Vybm9eMmRmd2xNcSh6WiImcV1ARFg4NVFMcnJ1bCF3d2phT1dWajxdMmR4YUZCKVcvLEIxZmhiM0JGYUd7X3lePlJWb0l2cXdKaSowYjo2V186cFI1bDJ+TUU7R1YpKnU1VjlffmphaT5GLDR3XilF'@; put 'WjQsNH4uaTZjOiNrLFBbPWkwNll6U2x7RixqekFnMmojRkRkUEUpejJ0flM+fE9rdGhbMV5EIWE8P3w0SXtGLEFzbSF7e1B2aiFrLyZPZXNjOiNrTXtjczBncStQdkFrbXVZfFZPZ2h4YENxIXNPJlYuQjMpWTVsI2BjIUl2PCs1X05paX46RldFW31xdXxhSGtxTUh2ZERKP2lYMX4yNzVRV2Fk'@; put 'RH1GdD9PRDB8aXRjNCw0SDU4cnJrUlB8cy5uSXYuKy8oQD51UWpHSHYsWiYoaFNkc3xndmxJdlZEJXpVRUZWWVtKdikrQk47Jilka100clM/TChNTS5MbHx4d3BCaUchJFYmPCZsaiw7b18pW1FFS2gqd3F5dz88KGNzVTMsNClKQE1nSTlgMzpTMGZCK2JFSiYuel9RM1dzOCNvaFA/fVp2Klc/'@; put 'Mzw2UlVUNHJ1N0wobWVCZTdySkdENldFdGRfckQ2YWN9PkJ5SnJdSzIuRS8lKWJXPzs3YCpvOkQsLn1kWnNmZGV8fS9CO3dbYEQ6fGYuaTx2SG4xKFo/bV4zLno/alhKRChINGpAanpUREY3SFhIOkM3PElCXitLYVJac3B6Sml+YUg0VUhvVHA7ZH55ZytudTMjNXl9LzVWPzVdNiwiJShddWRG'@; put 'cUMycF9VcGFzL3phUV8zR3lYQkVoUkJGc2lYOEs8UUxHcVd4RUZWKEd6X2YwVlp+QW9gclZaczsvJSgreihnPCZTTTlAZH5aPlpLS3hSe2V+JUp+ZHl9bE5SP0lsR1JoQyYwZ3dhfFB+V10rYCx4fmE3clExN15lUTREeCZVaFtELC50PjNRXnVrW2RmeUU8UTNHel9qPiRealtTQF1ITSZINCw6'@; put 'JV44QmVVXUd4JmxlW0REXyRVbDFPX15oMkd0NlY8cWRDYlhlVm01eD0vSHA6JUFsKHlOVkd2THohTWpLcSJEZSZMUTwzRG0jOUwiJEhIXk4obSNETEJqJk9FJjdDNH0oWEJuYzMwVzZ0OGBiRyNXY35eSUV2eD92cHVidSpQTXc7UlNHb00+WUVyOCF9a1NkW2VUVCE/alsye1A4Z3hJRXZCanIm'@; put 'dHAqVUshWGlHUkhNInlPYUAybmRSJnRzWHAvYjM4Q2RjTilYRSFwKXJ7VSJlNTR3Ujp1bTUuTEE4IytAJDp0KWsudj94NTRnMltLOGNsU3ZPdDE8Q1B7altBImlGOSh2RCtdNWFQKHw4Q25qKDkiQ255c1NmRj4ocz1lNzB+fWE4SSZNfSliUHFUe0B4ZV8jPyo6WXNkemR8VG9hcytjYGhGflkx'@; put 'TmpIenc5eWdvOT9zcEA0RTQ+V34+RFBUVXhIK0J+JXpANUppM2BJSlhXZT5PcXpgMXVtfmhYekZ3U0pQZl9CWz5ENn1fcmlXNWpIVl1bX0I2fFcqJWg2UnkzP317ZFYofDAqPnZ8LzhKL0spK2JufnI0UyhVPTtjTX1RMz05XTgsLmBzOG5PcVRgcUgzc2pNKWhPL0BOJHNuUmVfTUAqIV98S3Ay'@; put 'eWsoLC5qfmxKZ18/P3I4aH5OVHpGMVQwaUd8W1lxKW9kaVNbNkxmQSIicnVqeFpLcTg1WmBEL3l9aDUhdHVEeXJNWlpzIWNNP0B4cHtAWkYmSjpONE1uQXFNPEdiM3J8fjVoRnM/cEZXc1l6fVo1WT9OXSpvJChoJVNpdXspQnIod1pac01HSj9BL018aFkzdXdOdD5xSH1ESl11ZC99OHNZKDdR'@; put 'QCF5fUo1O0cyL3U9alZOV3grJTN2dWF8aDNINFYmN3JjaFN7bWIpPlA+RS87T2Z+UjNINFAwV3xFfXg2endwNUMleX0sPyooRikxS0ZbWDkzSWMpPk41cCJuYT5iS1Zkdn5PKjdoJmwpSnVMRnsyejl9e2M8OShEKUpZTkA5T0pIWEo+bnReaiRZMXV+MU8mfiloPiFBeVhKVykpOE5iWGFxU3ly'@; put 'cTBGeSprYmBqK0NJPGV7bHJuekU6cFBnXjFHOX11VTw5IiE2XndeS05INm1iO2BObSI5aXs5dXdzWTc8czpPQ095TkIiN00qfExZOX47eTY+NHZUeHh0Q25Ce0xZO31CIns7d0tlSkxOfmlXSl16d3hGUzJxIWIiZEx6WnRYKXBSaXxuXyYiODludSlCcEV4OGBqeTl9VW9NPS9KVVdVUHl7NWlK'@; put 'cTsoPDVkMXo6d19ZMyU7SUk6WF42VjUkMl87bCM9SmlVOkZCXmkwbTkhNz9wP2dPRnxfLilhcGQmekRMaTZ1SW9PRjE2KTdrXkQ1a31jemVlRTt2VWEvZ2poN0xHQmoxM3NLZ1hOITBBIWQ/end1IUNzPSlKYWZDP296PmpKKmNENV98QmpESltFJlBpbFg6U1AyTk5MajFjPVNeMFhMaCtCJFJ9'@; put 'IlcsZi9XXl09YTZTbE4uSyg7Uyl6NkhqMU89eXVNUy5MdzMueFtYTk1EWCF6bXkqWFJSJmwmR1FuRnRKaGoxTHIzTj8sSDZFZHBLSFhpTVI3UlVXfnMpJC8ib29nJWNKJDNCdmE2PChQfFUjTGt6OkBgSlA6ZDdvZi5RbGMjZ14jSH0uRlZ2RFlJZ1JuaXpmeCt4Kzo8eFVZM3ldaykqVGUiYFhE'@; put 'OnUyVSVPR21tVEQxXVVVJD0qcGc1JHdYJHhwakpnTW09R1M+fHBiezAhMFF1e2xtJDc2Wml6XWltWUNRJG1LdUVaZm9xKC9HeWM+Z09zfWtlZE82UE5kbSttMHVsZ0wiPyVJZWp0O2d0KW0sdWkyXVJMXV9pXXZwJGcoXWZ7ZGxVYTxOPkJoOWFjLjRuPHdKZGl+UV9jZVVycUNHTj8/b0c9SnxQ'@; put 'eVtOQjA8VGtFMGcrZyMhYUR+USpaLld5b1RuTmZwdFBOT0ZfVCMhQX1ScD9+RHZjTDdPTSU9K1V3c3BkTD8ieHR+Y1IyL3JRU05DJlNEZGMzY2NsQDZHUSxJPihsfjdVMEBOUTU5fVlBUSw3bWlsdUchen0rXVdHTXBVdmYuUkc0PCI2ZHMjREYsbmVvN0lQYSRWK3M1aj01RDA3TyZ6U2lnMkJq'@; put 'cDJfb1JJc11mMlMmdnFHdEhOeX5lLmNZOEg8MGJIMVc2dGI+V286enhOc3oqZHcvPnl9QzRNOF5GXz9IQmEjMDAlNGk/Wyp5Yj1JPlBPUTIwbiVGT3lheHVvdFp3U312fkxCRmZPMmR3R1lIVzxWUl5YUkRUQGlpXVdMUkNWb05WeHZqc2JdQX1PUnZCdy5NIkM7T09VaVpMRmMoXWBXdWFyIyhV'@; put 'SDxUQiRmVHFrUURwNmRsJltoZkdiJGZwUnd9ZH5EQFFKZ3Y/PGhwcTJ0SUBaWypkTVs9QzlLa3NrQC9IP0szRFkhem06fmdSfll7NHw5OEAvdVZ3e1hBI0tyeHJSKGh2SllHWHFmQEB7NS9HS2cjNjMkIzM7OkJVUFA6MXZVTTwyKnsmOlZMdDojTD1yY08zaEdZTmhrWHUobytZKEZoMWNlRClh'@; put 'LHVINncqbnVaS3gocWJDS0lZPlpAZTtATXdldEkoRVBASSMkQnY/fjk+Klh8ZTE1O3phcjAyeyRuJE9lOUgyO0Z5Tjgjb0JLeD5eOVdmaT8+Myk2VCEzdzwodCFfe2w0PH5QYCtuSTMhTXFbcnZNSkJ8Y0lVPmRHIVswP01VX1RRVntUU3chblMoM1ojbGAyTUl9a3tHQmpDT3B3aDNbW082NVpX'@; put 'UD0+KjBQPG8xdF1DW1F9eW8iJjEhaFtuZk9yRHBSLHx0b2Ixcy8+V0dRTDFgTHRTXyEzJXBneVhWJk49QG9qUykrPXJ2d1lxQD0ofCZiMmQjRnI+OCtLInspNVJpKldlI3YwdnRDdWk9Si9EbllpIVQwTlZDKUxhJjkqdjdTfjI2XjRHdlJFMFMpVDs6UjV1ezwoYEB3UiZaQmclaUlUXU9je05k'@; put 'ZTI6ZDR5RFRCV14/U19GNGwvZSR3fTYiI19DS1U9OH5FP0JkXXR+Qk9BPSZwMiRsNTZRW1BdUUVVKnN4aEVqLlUyTzQla0M7XzJ9VUxSVDlfOGg4MSZ1OW1fejl3ZTxLMW49MylzPkt4Z2A7LnR5W253YH0kQlJDdj1OR3k/e3h8KSEvamlBXXRgSHApJFBwRTRjS05aOWJ8Mz02XkVGamJOWkdM'@; put 'OEhpQT1UaDJuemMzQGVAUGA7NWQmNFtmPnguJT5dYGFxR2VGSGhzZ29zVHRPYXUpYyklXi9PMnU2V2lnUXt2d0k8Z2NQY3VObSI6W3tbUnxETEpUbkZvWGdXPiFxMiF6UmskaUVFUl4sMVVjQ2JvOnp1JFNxbV53TjtkWU5mcm4xR3xOKG5nUyQ3XTZSMnEqY15RbSlkU1JnNU1YIy5dZV8+Vntp'@; put 'WylfM1doWmdVaUJ8MV05UjFwLzdkcjsrOnljN2lxc3FEdTkwXTs0cTdwYUg3T3t9ezRvcW93aTY/WnFTNiR5fChebk1wITAmTyh0cElGRkNLciUkSmpwTHBBR1pqRTh0NUdxc0VQLmJNTyVsYnU+aUNhYWlzQyVlR25Zc2hSIX4kL0leUmVvOyxMQUMqTzhFUmM4eWRjdncrO1pTYVBISHYsMXpt'@; put 'QEFzWzU+XW1AVnpXSDpGfHlkVlVpRWwyPyRnalg8b2lYbFRQIm5yc0ZwZEIodjtjQDsvWXhtbH5yNC5NTzZaL1JaTE1zOlppamZndiJlVigrNlZJfixoRGI1MGF4Vld2RlEjfCosNiNNJiFhbm9Lcy5SO1JWRmc3ZnRAbC4kc2F+XlBvTERrcFl9USM/NERNZHFYJkU1fCY1Uko2SEprVXY7VDtA'@; put 'JXQudHNpKEY/V3N2XilfUTs2JmRrKnkpX1spRElkJVpXaDVgMFEuZmltUFRgJTRkQyR3L0FPQTNTJSk3R2dMI0xCOW4iRl1CYylFYi8/Qk0pVDZPKHJadjB5Lk10dmU2eitJdCtdPGkkcjo5SGw5eSYpQHFRMSxAMSViRGBjSTpXXjUxeko+cCI6JjJnX1NIYF13MSxXTWFgUXEkK3ZRPjhhIm9t'@; put 'KThNYTxITW5ob3p1WWRgdzJeVWM2OX1VWF9nKGFnTmo2fEtuaitXaT5zTWtJXlYsQFJUfEhkc0BPMVZORkRVaVJ1NVVzdmVlXX1zUk0sSyM4KltnYVcjYVY4KmJjLzBVSG8+KEx0UX5fVCx6cSo0aWppbzssSiRSXSZiUDRRXiN9RkMiLGU4LGhEQlBHeGAlbmdXXjtEUFQ+TEVNJilMWHFfM1o3'@; put 'SEhaNi90fDM9RVQ/W2VXPUptN1QsZ0Z9VlNuKF18MXlDSjM1QGElfiZrd0R2Vmp3WyUxIUlTb110cjtnbWpUQiNvKiNaa0lmLlNxUjxdJkc6PzJSST1YNylPVmZPTjVUfl1hZUJzXz59I0VAbkZmR1ssT3E1SUN7d2N3LGhCU1JaZFY8cVt9KWFiU05zXjlAQXJAPlZQQFBNTjtkK2ExJTtnNW1Y'@; put 'ZG4zOnJJdlF8MnhSXlZiZGRxSkNIWzxsQnJNcEIhKjxeei5gKC9Tbz07WDNLPn11U1JpKX46ZiYpeWZ2Mzt6Z1I0a3h2XjdSLkNRS25jKXUieDVOSk4uRiUwa0ExQ2dnSjJrO0IhIz4uJC4+KFZOQiV+KjI1MFNyVSxkfTNMSX5QZmNmPSV+Sys3O19TVn42IWA5TDBld0UpaG1BK0F+RSxfd294'@; put 'fCRfXz5GKVNvWFpTbT5NdE4ublh4NWw2ZnNzOCIjS28sMG1od0djR3hkUGY4WSkycmpNY3hPYHp2dVNLPl9GQGk7I0ghQ1VsYWpLN11XaEZ9Z25iZkVDSUA+Z3JUM11mVkRONFlQLltNfFBIMH1wSjZOI3RUVGE0PU0sIWc1LiMlbTNGMEA/Q2s5ZVhrYSoqSHduUHB7NFBmSTVxLjgpZy9+Kjo3'@; put 'TzdzZXNlOiQ7fD1MIz8/WmU8WzhTaSZrIzQ1Z3wmc2BhMn1sSl1RN3kxeCZtLmFEYmZNfXd8R0xzLG1oXzpPVFFvOkUjSW86Uk5kXm9RMCYpUDF6fm1KJTw4JUxMd2k5amFPdCFeaU10flIiMlhYXkZDZEU5RlF1MD81Nn1Tfj5aYmtRMSpUZCh5b28lbVJPXmQrbWFPP05VNH0/L1BJVzhHSmY3'@; put 'VGN6a04veDEkfXVvXzQ1Lm9kfW1TeDAwP0o/LCw2eSQ4RGtqbDcvKWY3MyNrdVQwT0JDOTNWOjFgXyI/UWtLKCtqKENiISUoeERVMWxVVigiVmQxTS4rWERYMGRtR0c9fUNnR0VbeUJ+eT5pMSU7cXd5O2hHP34xNCpqXlBLI1daZUA2MEo3cHd6L1lBY1ssOVlydyxjejN3S3IlIkJfQl41Ki8w'@; put 'LFl1c2ZhTF1VX2lbR2BOaF1gUjskOHlrZ2dKMCsvW3BGbWpPZ2tTdHhNJExZYFU9MnY7fCtlczd+bTR3PWlFMU42X3BwMGY/I11pNjxoYltAb1F8aSw5am5MfSU0RVpzbzRXT102c3IjI3F1Njl4ZjZSTntEXlZMTzQ4KWNmb3RdX1o8NzNiUVlhZ0I5dTUyYVl5Jlo9NWskLDE5SjJBPV4kVUN8'@; put 'OHZIdSRbXW8xJV80Yn58UylBSjBoVlVeSD4vV2ledGZQYU4lJTBUZkcyIXAxWjVlLzBpfTRYaGxaRzROaSVRfklyKkhTZUB8PHM7PS5ybDZrRX4yejFpOmdofmIsfWpaPkcmQ1d2cDYuKn4pVzN+VlFdfUZYck98cVJ6Vit9PXFQTVZ1fT9gZmcxI2dqbntZbzBUWVk9KU9ibmc5O0B+YDhWW09I'@; put 'WCJpXTJQNGJUW2pJLndVRVN0TT8vX1VeWDVsMyxMT3hEciteRyg8WTAhKEsqS2o1RXNST1IzUms0SFJDXUs6VmF3fC9NNklnNy8xRFhTVnxfcklgYyw+RCg5V1FGbVhda0Y6QWB3Zntda2tjMF86Yz9SY3BiWzU2T3RnR21qTkt8akdWbV1aakc7S2g7XyRlcXR+e0pROCk+JkJ+dWh6KXp2UlVe'@; put 'KiIwNnQldixuaCYjSStLYF1eQSx+N1ZQcEdkLGAmTDMjUGAsJGprWzoxaE4oPTFIJV5+LDU+YDs+bUdKWmtvJDZiO3dfKChybDEoaHdXWnVlOHA9diVJQ0VMb2ZKVDYlIlFZPjV+Ol9sdSRVai9iKlRgTT1DKmZwJT4kMzMzaGUhb2h1cnEkS09xbT9mRyg4UVs/PFdNIk98Y3R2ZkQuYFlmW0xg'@; put 'KitoRnVvVTtkYH5mQzw/eSldLjlZSzVNM3ImMmBhPDsrO3BfeDJSanJ5V3JVWEIkNTtePm1vZ1ZtTGNSPi44dStjcDwmfldLLEt8JEQiJC9KMj95QDlILk5oTEhvMj9BIklZVDRILyllQn46MyQ0Km5MYCx8W3sjPFtUXlsmLHk9Qjt1P2s5alUjK2t2IWM3alMrensieFUkYHdUOiVobSlGVFVq'@; put 'U2ZaTzg7R1lnKUx1UXBbRFNALHBiUEtIdClgezlYJF18ZTFGMXNDWEkkdn1zMlgxc2kjaFV7LDAjdVMoSmRCWE8/JEZRYT1+dEJLLjR5bioxdG9RMURHLkhfUUthJlhJXzdOOnt+TlgjeEwiamU0aSllVXlmV09mQV9JKGV9RF9+dWV9cjBBWnBDV25ZXzNLRDBjdDpwbmNJYE8sTmZdfmdfblZo'@; put 'cTBwVTFffWRUbU9oP25nUF9ydTJCfWRFPi9uTGhxKC9fIy5RckJMIXksXlRXc0tvNjovVjROVWpTcz0hem1OMV1eIyMhXzRTTDlpSSQsOGdOZUVPfTRUaWopWGpXam9PbVNmek15YlV7MWJZLGVUaU9rOVZeVnZhYmdfbngyXzliJD1GemJxakglUjMpY2tVUWBzJEt3KkBeYWxSa1UkO21pezR4'@; put 'WExdVTBDaUkmemhwV1cvOCpebS4xSyVWKDVDa1h4YX1pX2hBVyhiJmNyMVtPUE9teCxpSlJCTik8UCM+Nm55SWxYaSZNMEpFNFM9V1JMU2oyUW5kRVttNnk2MStIYUl7aDtmSz0pZ1FjSDRTdn5PbiZrU0gifH1BI0YoPEorKztyczMjPCNDdU90aEp+czc2bl5VT3U1RVYmXSR1PyRmUG9NP0pD'@; put 'KTEsK0IwZ3ltOVlSSzlsclszUUpsJCxVfmh9OFkqcXEucWI2bSIsTGMiWTMpNE99cUVLQCZNJkxJeWo5Z0E4P1ckYDElbEB+LjRlLDZzSXArJTp8NDF0UTFUa1suMj87dHdldWJNSUR7K143fXVWKnJrdSxQfCQvNWcoYyp9QmROaEhJKyQ+Q20zeWlhdzFRQHI7WHJHIUZaNkU6bFo5OUR1Zi8v'@; put 'fik0Q21gNGdOfn5KLnRjYENDJHN0LmRHZ25ScXRAJSxsSVViKzNna2Y+UVZFU31TL3wxdklPOV9JX0xVdW8hbHZyfT1MeiteWF1yV3MhX2JlMVI6Kzh3KzsqN3RWLlVjSnNIZEFxUV9kemBdKHxXVkBnRSRPekJxSWMkPS99bVdOfFt+MXNeKURPM3xTdDRgRFdRSUd+cHA5Ii4vS1p3OTE9eCEv'@; put 'fGVwYzQqKHc1dGQ2e0IhNDw/S2NXKWdVW3l8a3VSZXh4e3J+c2FzY1dAPTkoXVt6NSplL15zS1Q0fiYxcms+b2t6JjckWX5jc3J7ZCs6fHM+TTtbaUF0SkV8RjoofXt4fUhWKGd2fTJIPEBvXXpCZDlAZFpHfmwkSSVqJlBORD83Pyl4fiw/SSo/JC9WRHQ4MTVAS3Q2dldANE1mejp5UiptYmcm'@; put 'QTZhZipHaTMkXXc9dSg3WTQ6Z0h4MCJGc246UHgpdW4xNlNzVltxJTFoLn5nUUEnKSkpLGpBfHwoakE9ZnVuY3Rpb24gVEV0KCl7cmV0dXJuIHp0ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KHt3YXNtQmluYXJ5OlV0ZSxsb2NhdGVGaWxlOmM9PiJzZngtd3JhcHBlciBub3AifSkpLGpBfWZ1'@; put 'bmN0aW9uIE9FdChjKXtyZXR1cm57cGF0aDpjLnBhdGgsZGF0YTpgPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+XG48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFw'@; put 'aGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPlxuPHN2ZyB3aWR0aD0iJHtjLndpZHRofSIgaGVpZ2h0PSIke2MuaGVpZ2h0fSI+PC9zdmc+YH19ZnVuY3Rpb24gUEV0KGMpe3JldHVybiBjLm1hcChPRXQpfXZhciBfN2U9Y2xhc3MgRnd7Y29uc3RydWN0b3IobCl7dGhpcy5fbW9kdWxlPWx9'@; put 'c3RhdGljIGxvYWQoKXtyZXR1cm4gUkV0KCkudGhlbihsPT5uZXcgRncobCkpfXN0YXRpYyB1bmxvYWQoKXshZnVuY3Rpb24gTEV0KCl7akEmJihqQT12b2lkIDApfSgpfXZlcnNpb24oKXtyZXR1cm4gdGhpcy5fbW9kdWxlLkdyYXBodml6LnByb3RvdHlwZS52ZXJzaW9uKCl9bGF5b3V0KGws'@; put 'YT0ic3ZnIixkPSJkb3QiLGgpe2lmKCFsKXJldHVybiIiO2xldCBmPW5ldyB0aGlzLl9tb2R1bGUuR3JhcGh2aXooaD8ueUludmVydD8xOjAsaD8ubm9wP2g/Lm5vcDowKSx2PSIiLE09IiI7dHJ5eyFmdW5jdGlvbiBGRXQoYyxsKXtsZXQgYT17aW1hZ2VzOltdLGZpbGVzOltdLC4uLmx9O1su'@; put 'Li5hLmZpbGVzLC4uLlBFdChhLmltYWdlcyldLmZvckVhY2goZD0+Yy5jcmVhdGVGaWxlKGQucGF0aCxkLmRhdGEpKX0oZixoKTt0cnl7dj1mLmxheW91dChsLGEsZCl9Y2F0Y2goSSl7TT1JLm1lc3NhZ2V9TT1mLmxhc3RFcnJvcigpfHxNfWZpbmFsbHl7dGhpcy5fbW9kdWxlLmRlc3Ryb3ko'@; put 'Zil9aWYoIXYmJk0pdGhyb3cgRncudW5sb2FkKCksbmV3IEVycm9yKE0pO3JldHVybiB2fWFjeWNsaWMobCxhPSExLGQ9ITEpe2lmKCFsKXJldHVybnthY3ljbGljOiExLG51bV9yZXY6MCxvdXRGaWxlOiIifTtsZXQgaD1uZXcgdGhpcy5fbW9kdWxlLkdyYXBodml6LGY9ITEsdj0wLE09IiIs'@; put 'ST0iIjt0cnl7dHJ5e2Y9aC5hY3ljbGljKGwsYSxkKSx2PWguYWN5Y2xpY19udW1fcmV2LE09aC5hY3ljbGljX291dEZpbGV9Y2F0Y2goRyl7ST1HLm1lc3NhZ2V9ST1oLmxhc3RFcnJvcigpfHxJfWZpbmFsbHl7dGhpcy5fbW9kdWxlLmRlc3Ryb3koaCl9aWYoSSl0aHJvdyBGdy51bmxvYWQo'@; put 'KSxuZXcgRXJyb3IoSSk7cmV0dXJue2FjeWNsaWM6ZixudW1fcmV2OnYsb3V0RmlsZTpNfX10cmVkKGwsYT0hMSxkPSExKXtpZighbClyZXR1cm57b3V0OiIiLGVycjoiIn07bGV0IGg9bmV3IHRoaXMuX21vZHVsZS5HcmFwaHZpeixmPSIiLHY9IiIsTT0iIjt0cnl7dHJ5e2gudHJlZChsLGEs'@; put 'ZCksZj1oLnRyZWRfb3V0LHY9aC50cmVkX2Vycn1jYXRjaChJKXtNPUkubWVzc2FnZX1NPWgubGFzdEVycm9yKCl8fE19ZmluYWxseXt0aGlzLl9tb2R1bGUuZGVzdHJveShoKX1pZighZiYmTSl0aHJvdyBGdy51bmxvYWQoKSxuZXcgRXJyb3IoTSk7cmV0dXJue291dDpmLGVycjp2fX11bmZs'@; put 'YXR0ZW4obCxhPTAsZD0hMSxoPTApe2lmKCFsKXJldHVybiIiO2xldCBmPW5ldyB0aGlzLl9tb2R1bGUuR3JhcGh2aXosdj0iIixNPSIiO3RyeXt0cnl7dj1mLnVuZmxhdHRlbihsLGEsZCxoKX1jYXRjaChJKXtNPUkubWVzc2FnZX1NPWYubGFzdEVycm9yKCl8fE19ZmluYWxseXt0aGlzLl9t'@; put 'b2R1bGUuZGVzdHJveShmKX1pZighdiYmTSl0aHJvdyBGdy51bmxvYWQoKSxuZXcgRXJyb3IoTSk7cmV0dXJuIHZ9Y2lyY28obCxhPSJzdmciLGQpe3JldHVybiB0aGlzLmxheW91dChsLGEsImNpcmNvIixkKX1kb3QobCxhPSJzdmciLGQpe3JldHVybiB0aGlzLmxheW91dChsLGEsImRvdCIs'@; put 'ZCl9ZmRwKGwsYT0ic3ZnIixkKXtyZXR1cm4gdGhpcy5sYXlvdXQobCxhLCJmZHAiLGQpfXNmZHAobCxhPSJzdmciLGQpe3JldHVybiB0aGlzLmxheW91dChsLGEsInNmZHAiLGQpfW5lYXRvKGwsYT0ic3ZnIixkKXtyZXR1cm4gdGhpcy5sYXlvdXQobCxhLCJuZWF0byIsZCl9b3NhZ2UobCxh'@; put 'PSJzdmciLGQpe3JldHVybiB0aGlzLmxheW91dChsLGEsIm9zYWdlIixkKX1wYXRjaHdvcmsobCxhPSJzdmciLGQpe3JldHVybiB0aGlzLmxheW91dChsLGEsInBhdGNod29yayIsZCl9dHdvcGkobCxhPSJzdmciLGQpe3JldHVybiB0aGlzLmxheW91dChsLGEsInR3b3BpIixkKX1ub3AobCl7'@; put 'cmV0dXJuIHRoaXMubGF5b3V0KGwsImRvdCIsIm5vcCIpfW5vcDIobCl7cmV0dXJuIHRoaXMubGF5b3V0KGwsImRvdCIsIm5vcDIiKX19O2Z1bmN0aW9uIHpOKGMpe3JldHVybiBPYmplY3QuYXNzaWduKHt9LGMpfWZ1bmN0aW9uIFM2KGMpe3JldHVybiBNYXRoLnJvdW5kKDEwMCpjKS8xMDB9'@; put 'ZnVuY3Rpb24gdzdlKGMsbCl7aWYoInBvbHlnb24iPT1jLnRhZyl7KGE9ek4oYykpLnRhZz0icGF0aCI7dmFyIGg9ek4oZD1jLmF0dHJpYnV0ZXMpLGY9ZC5wb2ludHM7aWYoInBvbHlnb24iPT1sLnRhZyl7KHY9Yy5iYm94KS5jeD12Lngrdi53aWR0aC8yLHYuY3k9di55K3YuaGVpZ2h0LzI7'@; put 'Zm9yKHZhciBJPWQucG9pbnRzLnNwbGl0KCIgIiksRz1JLm1hcChmdW5jdGlvbihQbil7dmFyIFVyPVBuLnNwbGl0KCIsIik7cmV0dXJuW1VyWzBdLXYuY3gsVXJbMV0tdi5jeV19KSxyZT1HW0cubGVuZ3RoLTFdWzBdLHVlPUdbRy5sZW5ndGgtMV1bMV0seWU9MDt5ZTxHLmxlbmd0aDt5ZSsr'@; put 'LHJlPUVlLHVlPUJlKXt2YXIgR2U9KEVlPUdbeWVdWzBdKS1yZTtpZigwIT0oc3Q9KEJlPUdbeWVdWzFdKS11ZSkmJjA8PShwdD1yZS11ZSpHZS9zdCkmJnB0PDEvMCYmKHJlPD1wdCYmcHQ8PUVlfHxFZTw9cHQmJnB0PD1yZSkpYnJlYWt9dmFyIGR0PVtbdi5jeCtwdCx2LmN5KzBdLmpvaW4o'@; put 'IiwiKV07Zj0oZHQ9KGR0PWR0LmNvbmNhdChJLnNsaWNlKHllKSkpLmNvbmNhdChJLnNsaWNlKDAseWUpKSkuam9pbigiICIpfWguZD0iTSIrZisieiIsZGVsZXRlIGgucG9pbnRzLGEuYXR0cmlidXRlcz1ofWVsc2V7dmFyIGE7KGE9ek4oYykpLnRhZz0icGF0aCIsaD16TihkPWMuYXR0cmli'@; put 'dXRlcyk7dmFyIGQsRWUsQmUscHQscXQ9ZC5jeCxtbj1kLmN5LHduPWQucngsaG49ZC5yeTtpZigicG9seWdvbiI9PWwudGFnKXt2YXIgdjsodj1sLmJib3gpLmN4PXYueCt2LndpZHRoLzIsdi5jeT12Lnkrdi5oZWlnaHQvMjt2YXIgTW49bC5hdHRyaWJ1dGVzLnBvaW50cy5zcGxpdCgiICIp'@; put 'WzBdLnNwbGl0KCIsIiksc3Q9KEdlPU1uWzBdLXYuY3gsTW5bMV0tdi5jeSkscW49TWF0aC5zcXJ0KE1hdGgucG93KEdlLDIpK01hdGgucG93KHN0LDIpKSxncj1HZS9xbixxcj0tc3QvcW59ZWxzZSBncj0xLHFyPTA7aC5kPSJNICIrcXQrIiAiK21uKyIgbSAiKyhFZT13bipncikrIiwiKyhC'@; put 'ZT0taG4qcXIpKyIgYSAiK3duKyIsIitobisiIDAgMSwwICIrKEdlPShwdD13biotZ3IpLUVlKSsiLCIrKHN0PS1obiotcXItQmUpKyIgYSAiK3duKyIsIitobisiIDAgMSwwICIrLUdlKyIsIistc3QrInoiLGRlbGV0ZSBoLmN4LGRlbGV0ZSBoLmN5LGRlbGV0ZSBoLnJ4LGRlbGV0ZSBoLnJ5'@; put 'LGEuYXR0cmlidXRlcz1ofXJldHVybiBhfWZ1bmN0aW9uIFZFdCgpe3RyeXtfN2UubG9hZCgpLnRoZW4oYT0+e2EubGF5b3V0KCIiLCJzdmciLCJkb3QiKSx0aGlzLmxheW91dFN5bmM9YS5sYXlvdXQuYmluZChhKSxudWxsPT10aGlzLl93b3JrZXImJnRoaXMuX2Rpc3BhdGNoLmNhbGwoImlu'@; put 'aXRFbmQiLHRoaXMpLHRoaXMuX2FmdGVySW5pdCYmdGhpcy5fYWZ0ZXJJbml0KCl9KX1jYXRjaHt9aWYobnVsbCE9dGhpcy5fd29ya2VyKXt2YXIgYz10aGlzLl92aXpVUkwsbD10aGlzO3RoaXMuX3dvcmtlclBvcnQub25tZXNzYWdlPWZ1bmN0aW9uKGEpe2wuX3dvcmtlckNhbGxiYWNrcy5z'@; put 'aGlmdCgpLmNhbGwobCxhKX0sYy5tYXRjaCgvXmh0dHBzPzpcL1wvfF5cL1wvL2kpfHwoYz1uZXcgd2luZG93LlVSTChjLGRvY3VtZW50LmxvY2F0aW9uLmhyZWYpLmhyZWYpLFp0ZS5jYWxsKHRoaXMse3R5cGU6ImxheW91dCIsZG90OiIiLGVuZ2luZToiZG90Iix2aXpVUkw6Y30sZnVuY3Rp'@; put 'b24oYSl7fSksWnRlLmNhbGwodGhpcyx7dHlwZToidmVyc2lvbiJ9LGZ1bmN0aW9uKGEpeyJ2ZXJzaW9uIj09PWEuZGF0YS50eXBlJiYobC5fZ3JhcGh2aXpWZXJzaW9uPWEuZGF0YS52ZXJzaW9uLGwuX2Rpc3BhdGNoLmNhbGwoImluaXRFbmQiLHRoaXMpKX0pfX1mdW5jdGlvbiBadGUoYyxs'@; put 'KXt0aGlzLl93b3JrZXJDYWxsYmFja3MucHVzaChsKSx0aGlzLl93b3JrZXJQb3J0LnBvc3RNZXNzYWdlKGMpfWZ1bmN0aW9uIHpFdChjLGwpe3ZhciBhPXRoaXMuX29wdGlvbnMua2V5TW9kZSxkPXRoaXMuX29wdGlvbnMudHdlZW5QYXRocyxoPXRoaXMuX29wdGlvbnMudHdlZW5TaGFwZXM7'@; put 'aWYoInN0cmluZyI9PXR5cGVvZiB0aGlzLl9vcHRpb25zLnR3ZWVuUHJlY2lzaW9uJiZ0aGlzLl9vcHRpb25zLnR3ZWVuUHJlY2lzaW9uLmluY2x1ZGVzKCIlIikpdmFyIGY9K3RoaXMuX29wdGlvbnMudHdlZW5QcmVjaXNpb24uc3BsaXQoIiUiKVswXS8xMDAsdj10aGlzLl9vcHRpb25zLnR3'@; put 'ZWVuUHJlY2lzaW9uLmluY2x1ZGVzKCIlIik7ZWxzZSBmPXRoaXMuX29wdGlvbnMudHdlZW5QcmVjaXNpb24sdj0hMTt2YXIgTT10aGlzLl9vcHRpb25zLmdyb3dFbnRlcmluZ0VkZ2VzLEk9e30sRz10aGlzLl9kaWN0aW9uYXJ5fHx7fSxyZT17fSx1ZT10aGlzLl9ub2RlRGljdGlvbmFyeXx8'@; put 'e307ZnVuY3Rpb24gcHQoZ3IscXI9MCxfaSl7KGZ1bmN0aW9uIHllKGdyLHFyKXt2YXIgX2k9Z3IudGFnO2lmKCJpbmRleCI9PWEpZ3Iua2V5PXFyO2Vsc2UgaWYoIiMiIT1faVswXSlpZigiaWQiPT1hKWdyLmtleT1nci5hdHRyaWJ1dGVzLmlkO2Vsc2UgaWYoInRpdGxlIj09YSl7dmFyIFBu'@; put 'PWdyLmNoaWxkcmVuLmZpbmQoZnVuY3Rpb24oVXIpe3JldHVybiJ0aXRsZSI9PVVyLnRhZ30pO1BuJiYoZ3Iua2V5PVBuLmNoaWxkcmVuLmxlbmd0aD4wP1BuLmNoaWxkcmVuWzBdLnRleHQ6IiIpfW51bGw9PWdyLmtleSYmKGgmJigiZWxsaXBzZSI9PV9pfHwicG9seWdvbiI9PV9pKSYmKF9p'@; put 'PSJwYXRoIiksZ3Iua2V5PV9pKyItIitxcil9KShncixxciksZnVuY3Rpb24gRWUoZ3IscXIpe2dyLmlkPShxcj9xci5pZCsiLiI6IiIpK2dyLmtleX0oZ3IsX2kpO3ZhciBVcj1HW2dyLmlkXTsoZnVuY3Rpb24gQmUoZ3Ipe0lbZ3IuaWRdPWdyfSkoZ3IpLGZ1bmN0aW9uIEdlKGdyLHFyKXto'@; put 'JiZnci5pZCBpbiBHJiYoInBvbHlnb24iPT1xci50YWd8fCJlbGxpcHNlIj09cXIudGFnfHwicGF0aCI9PXFyLnRhZykmJihxci50YWchPWdyLnRhZ3x8InBvbHlnb24iPT1nci50YWcpJiYoInBhdGgiIT1xci50YWcmJihnci5hbHRlcm5hdGl2ZU9sZD13N2UocXIsZ3IpKSwicGF0aCIhPWdy'@; put 'LnRhZyYmKGdyLmFsdGVybmF0aXZlTmV3PXc3ZShncixxcikpKX0oZ3IsVXIpLGZ1bmN0aW9uIHN0KGdyLHFyKXtpZihkJiZxciYmKCJwYXRoIj09cXIudGFnfHxnci5hbHRlcm5hdGl2ZU9sZCYmInBhdGgiPT1nci5hbHRlcm5hdGl2ZU9sZC50YWcpKXt2YXIgX2k9KGdyLmFsdGVybmF0aXZl'@; put 'TmV3fHxncikuYXR0cmlidXRlcy5kO2lmKGdyLmFsdGVybmF0aXZlT2xkKXZhciBQbj1QdGUoZ3IuYWx0ZXJuYXRpdmVPbGQpO2Vsc2UgUG49UHRlKHFyKTsoZ3IuYWx0ZXJuYXRpdmVPbGR8fChnci5hbHRlcm5hdGl2ZU9sZD17fSkpLnBvaW50cz1mdW5jdGlvbiBhRXQoYyxsLGEsZCl7Y29u'@; put 'c3QgaD1jLGY9aC5jbG9uZU5vZGUoKSx2PWguZ2V0VG90YWxMZW5ndGgoKSxNPShmLnNldEF0dHJpYnV0ZSgiZCIsbCksZikuZ2V0VG90YWxMZW5ndGgoKSxJPVswXTtsZXQgRz0wO2NvbnN0IHJlPWQ/YTphL01hdGgubWF4KHYsTSk7Zm9yKDsoRys9cmUpPDE7KUkucHVzaChHKTtyZXR1cm4g'@; put 'SS5wdXNoKDEpLEkubWFwKGZ1bmN0aW9uKHllKXtjb25zdCBFZT1oLmdldFBvaW50QXRMZW5ndGgoeWUqdiksQmU9Zi5nZXRQb2ludEF0TGVuZ3RoKHllKk0pO3JldHVybltbRWUueCxFZS55XSxbQmUueCxCZS55XV19KX0oUG4sX2ksZix2KX19KGdyLFVyKTt2YXIgdHI9e307Z3IuY2hpbGRy'@; put 'ZW4uZm9yRWFjaChmdW5jdGlvbihCcil7dmFyIFlyPUJyLnRhZzsoImVsbGlwc2UiPT1Zcnx8InBvbHlnb24iPT1ZcikmJihZcj0icGF0aCIpLG51bGw9PXRyW1lyXSYmKHRyW1lyXT0wKSxwdChCcix0cltZcl0rKyxncil9KX1mdW5jdGlvbiBtbihncil7KGZ1bmN0aW9uIGR0KGdyKXtpZihN'@; put 'JiZnci5wYXJlbnQmJiJub2RlIj09Z3IucGFyZW50LmF0dHJpYnV0ZXMuY2xhc3MmJiJ0aXRsZSI9PWdyLnRhZyl7aWYoZ3IuY2hpbGRyZW4ubGVuZ3RoPjApdmFyIFBuPWdyLmNoaWxkcmVuWzBdLnRleHQ7ZWxzZSBQbj0iIjtyZVtQbl09Z3IucGFyZW50fX0pKGdyKSxmdW5jdGlvbiBxdChn'@; put 'cil7dmFyIF9pPWdyLnRhZztpZihNJiYhR1tnci5pZF0mJmdyLnBhcmVudCYmbTdlKGdyKSYmKCJwYXRoIj09X2l8fCJwb2x5Z29uIj09X2kpKXtpZigicG9seWdvbiI9PV9pKXt2YXIgVXI9Z3IucGFyZW50LmNoaWxkcmVuLmZpbmQoZnVuY3Rpb24oYXIpe3JldHVybiJwYXRoIj09YXIudGFn'@; put 'fSk7VXImJihnci50b3RhbExlbmd0aD1Vci50b3RhbExlbmd0aCl9dmFyIHRyPWZ1bmN0aW9uIGxFdChjKXtyZXR1cm4gZnVuY3Rpb24gb0V0KGMpe3JldHVybiJlZGdlIj09Yy5wYXJlbnQuYXR0cmlidXRlcy5jbGFzcz9jLnBhcmVudDpjLnBhcmVudC5wYXJlbnQucGFyZW50fShjKS5jaGls'@; put 'ZHJlbi5maW5kKGZ1bmN0aW9uKGwpe3JldHVybiJ0aXRsZSI9PWwudGFnfSl9KGdyKSxCcj10ci5jaGlsZHJlblswXSxZcj1Cci50ZXh0LnNwbGl0KCItPiIpOzIhPVlyLmxlbmd0aCYmKFlyPUJyLnRleHQuc3BsaXQoIi0tIikpO3ZhciB3aT1ZclswXSxCaT1yZVt3aV07aWYoT2JqZWN0Lmhh'@; put 'c093bih1ZSx3aSkpe3ZhciBoYT11ZVt3aV07aWYoKHZ0PUJpLmNoaWxkcmVuLmZpbmRJbmRleChmdW5jdGlvbihhcixHcil7cmV0dXJuImciPT1hci50YWd9KSk+PTApe3ZhciBtYT1CaS5jaGlsZHJlblt2dF0uY2hpbGRyZW4uZmluZEluZGV4KGZ1bmN0aW9uKGFyLEdyKXtyZXR1cm4iYSI9'@; put 'PWFyLnRhZ30pO0JpPUJpLmNoaWxkcmVuW3Z0XS5jaGlsZHJlblttYV19KHZ0PWhhLmNoaWxkcmVuLmZpbmRJbmRleChmdW5jdGlvbihhcixHcil7cmV0dXJuImciPT1hci50YWd9KSk+PTAmJihtYT1oYS5jaGlsZHJlblt2dF0uY2hpbGRyZW4uZmluZEluZGV4KGZ1bmN0aW9uKEdyLEd0KXty'@; put 'ZXR1cm4iYSI9PUdyLnRhZ30pLGhhPWhhLmNoaWxkcmVuW3Z0XS5jaGlsZHJlblttYV0pO2Zvcih2YXIgeHQ9QmkuY2hpbGRyZW4sdnQ9MDt2dDx4dC5sZW5ndGg7dnQrKylpZigicG9seWdvbiI9PXh0W3Z0XS50YWd8fCJlbGxpcHNlIj09eHRbdnRdLnRhZ3x8InBhdGgiPT14dFt2dF0udGFn'@; put 'fHwidGV4dCI9PXh0W3Z0XS50YWcpe3ZhciAkdD14dFt2dF07YnJlYWt9dmFyIFluPWhhLmNoaWxkcmVuO2Zvcih2dD0wO3Z0PFluLmxlbmd0aDt2dCsrKWlmKCJwb2x5Z29uIj09WW5bdnRdLnRhZ3x8ImVsbGlwc2UiPT1Zblt2dF0udGFnfHwicGF0aCI9PVluW3Z0XS50YWd8fCJ0ZXh0Ij09'@; put 'WW5bdnRdLnRhZyl7dmFyICRuPVluW3Z0XTticmVha31nci5vZmZzZXQ9JG4mJiR0P3t4OiRuLmNlbnRlci54LSR0LmNlbnRlci54LHk6JG4uY2VudGVyLnktJHQuY2VudGVyLnl9Ont4OjAseTowfX19fShnciksZ3IuY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbihxcil7bW4ocXIpfSl9dGhp'@; put 'cy5fZGlzcGF0Y2guY2FsbCgibGF5b3V0RW5kIix0aGlzKTt2YXIgd249X28oZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpKS5hcHBlbmQoImRpdiIpLE1uPShuZXcgd2luZG93LkRPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKGMsImltYWdlL3N2Zyt4bWwiKTt3bi5hcHBlbmQo'@; put 'ZnVuY3Rpb24oKXtyZXR1cm4gTW4uZG9jdW1lbnRFbGVtZW50fSk7dmFyIGtyPWV2KHduLnNlbGVjdCgic3ZnIikpO3RoaXMuX2Rpc3BhdGNoLmNhbGwoImRhdGFFeHRyYWN0RW5kIix0aGlzKSxwdChrciksdGhpcy5fZGlzcGF0Y2guY2FsbCgiZGF0YVByb2Nlc3NQYXNzMUVuZCIsdGhpcyks'@; put 'bW4oa3IpLHRoaXMuX2Rpc3BhdGNoLmNhbGwoImRhdGFQcm9jZXNzUGFzczJFbmQiLHRoaXMpLHRoaXMuX2RhdGE9a3IsdGhpcy5fZGljdGlvbmFyeT1JLHRoaXMuX25vZGVEaWN0aW9uYXJ5PXJlLHRoaXMuX2V4dHJhY3REYXRhPWZ1bmN0aW9uKGdyLHFyLF9pKXt2YXIgUG49ZXYoZ3IpO3Jl'@; put 'dHVybiBwdChQbixxcixfaSksbW4oUG4pLFBufSx0aGlzLl9idXN5PSExLHRoaXMuX2Rpc3BhdGNoLmNhbGwoImRhdGFQcm9jZXNzRW5kIix0aGlzKSxsJiZsLmNhbGwodGhpcyksdGhpcy5fcXVldWUubGVuZ3RoPjAmJnRoaXMuX3F1ZXVlLnNoaWZ0KCkuY2FsbCh0aGlzKX1mdW5jdGlvbiBV'@; put 'TihjLGwpe2lmKChhPShjPWw/Yy50b0V4cG9uZW50aWFsKGwtMSk6Yy50b0V4cG9uZW50aWFsKCkpLmluZGV4T2YoImUiKSk8MClyZXR1cm4gbnVsbDt2YXIgYSxkPWMuc2xpY2UoMCxhKTtyZXR1cm5bZC5sZW5ndGg+MT9kWzBdK2Quc2xpY2UoMik6ZCwrYy5zbGljZShhKzEpXX12YXIgQzdl'@; put 'LGZUdD0vXig/OiguKT8oWzw+PV5dKSk/KFsrXC0oIF0pPyhbJCNdKT8oMCk/KFxkKyk/KCwpPyhcLlxkKyk/KH4pPyhbYS16JV0pPyQvaTtmdW5jdGlvbiBXdGUoYyl7aWYoIShsPWZUdC5leGVjKGMpKSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgZm9ybWF0OiAiK2MpO3ZhciBsO3JldHVy'@; put 'biBuZXcgWXRlKHtmaWxsOmxbMV0sYWxpZ246bFsyXSxzaWduOmxbM10sc3ltYm9sOmxbNF0semVybzpsWzVdLHdpZHRoOmxbNl0sY29tbWE6bFs3XSxwcmVjaXNpb246bFs4XSYmbFs4XS5zbGljZSgxKSx0cmltOmxbOV0sdHlwZTpsWzEwXX0pfWZ1bmN0aW9uIFl0ZShjKXt0aGlzLmZpbGw9'@; put 'dm9pZCAwPT09Yy5maWxsPyIgIjpjLmZpbGwrIiIsdGhpcy5hbGlnbj12b2lkIDA9PT1jLmFsaWduPyI+IjpjLmFsaWduKyIiLHRoaXMuc2lnbj12b2lkIDA9PT1jLnNpZ24/Ii0iOmMuc2lnbisiIix0aGlzLnN5bWJvbD12b2lkIDA9PT1jLnN5bWJvbD8iIjpjLnN5bWJvbCsiIix0aGlzLnpl'@; put 'cm89ISFjLnplcm8sdGhpcy53aWR0aD12b2lkIDA9PT1jLndpZHRoP3ZvaWQgMDorYy53aWR0aCx0aGlzLmNvbW1hPSEhYy5jb21tYSx0aGlzLnByZWNpc2lvbj12b2lkIDA9PT1jLnByZWNpc2lvbj92b2lkIDA6K2MucHJlY2lzaW9uLHRoaXMudHJpbT0hIWMudHJpbSx0aGlzLnR5cGU9dm9p'@; put 'ZCAwPT09Yy50eXBlPyIiOmMudHlwZSsiIn1mdW5jdGlvbiBTN2UoYyxsKXt2YXIgYT1VTihjLGwpO2lmKCFhKXJldHVybiBjKyIiO3ZhciBkPWFbMF0saD1hWzFdO3JldHVybiBoPDA/IjAuIituZXcgQXJyYXkoLWgpLmpvaW4oIjAiKStkOmQubGVuZ3RoPmgrMT9kLnNsaWNlKDAsaCsxKSsi'@; put 'LiIrZC5zbGljZShoKzEpOmQrbmV3IEFycmF5KGgtZC5sZW5ndGgrMikuam9pbigiMCIpfVd0ZS5wcm90b3R5cGU9WXRlLnByb3RvdHlwZSxZdGUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlsbCt0aGlzLmFsaWduK3RoaXMuc2lnbit0aGlzLnN5bWJvbCso'@; put 'dGhpcy56ZXJvPyIwIjoiIikrKHZvaWQgMD09PXRoaXMud2lkdGg/IiI6TWF0aC5tYXgoMSwwfHRoaXMud2lkdGgpKSsodGhpcy5jb21tYT8iLCI6IiIpKyh2b2lkIDA9PT10aGlzLnByZWNpc2lvbj8iIjoiLiIrTWF0aC5tYXgoMCwwfHRoaXMucHJlY2lzaW9uKSkrKHRoaXMudHJpbT8ifiI6'@; put 'IiIpK3RoaXMudHlwZX07Y29uc3QgTTdlPXsiJSI6KGMsbCk9PigxMDAqYykudG9GaXhlZChsKSxiOmM9Pk1hdGgucm91bmQoYykudG9TdHJpbmcoMiksYzpjPT5jKyIiLGQ6ZnVuY3Rpb24gY1R0KGMpe3JldHVybiBNYXRoLmFicyhjPU1hdGgucm91bmQoYykpPj0xZTIxP2MudG9Mb2NhbGVT'@; put 'dHJpbmcoImVuIikucmVwbGFjZSgvLC9nLCIiKTpjLnRvU3RyaW5nKDEwKX0sZTooYyxsKT0+Yy50b0V4cG9uZW50aWFsKGwpLGY6KGMsbCk9PmMudG9GaXhlZChsKSxnOihjLGwpPT5jLnRvUHJlY2lzaW9uKGwpLG86Yz0+TWF0aC5yb3VuZChjKS50b1N0cmluZyg4KSxwOihjLGwpPT5TN2Uo'@; put 'MTAwKmMsbCkscjpTN2UsczpmdW5jdGlvbiBnVHQoYyxsKXt2YXIgYT1VTihjLGwpO2lmKCFhKXJldHVybiBjKyIiO3ZhciBkPWFbMF0saD1hWzFdLGY9aC0oQzdlPTMqTWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKGgvMykpKSkrMSx2PWQubGVuZ3RoO3JldHVybiBmPT09dj9k'@; put 'OmY+dj9kK25ldyBBcnJheShmLXYrMSkuam9pbigiMCIpOmY+MD9kLnNsaWNlKDAsZikrIi4iK2Quc2xpY2UoZik6IjAuIituZXcgQXJyYXkoMS1mKS5qb2luKCIwIikrVU4oYyxNYXRoLm1heCgwLGwrZi0xKSlbMF19LFg6Yz0+TWF0aC5yb3VuZChjKS50b1N0cmluZygxNikudG9VcHBlckNh'@; put 'c2UoKSx4OmM9Pk1hdGgucm91bmQoYykudG9TdHJpbmcoMTYpfTtmdW5jdGlvbiB4N2UoYyl7cmV0dXJuIGN9dmFyIFpOLGRmLEU3ZT1BcnJheS5wcm90b3R5cGUubWFwLFQ3ZT1bInkiLCJ6IiwiYSIsImYiLCJwIiwibiIsIlx4YjUiLCJtIiwiIiwiayIsIk0iLCJHIiwiVCIsIlAiLCJFIiwi'@; put 'WiIsIlkiXTshZnVuY3Rpb24geVR0KGMpe1pOPWZ1bmN0aW9uIG1UdChjKXt2YXIgbD12b2lkIDA9PT1jLmdyb3VwaW5nfHx2b2lkIDA9PT1jLnRob3VzYW5kcz94N2U6ZnVuY3Rpb24gZFR0KGMsbCl7cmV0dXJuIGZ1bmN0aW9uKGEsZCl7Zm9yKHZhciBoPWEubGVuZ3RoLGY9W10sdj0wLE09'@; put 'Y1swXSxJPTA7aD4wJiZNPjAmJihJK00rMT5kJiYoTT1NYXRoLm1heCgxLGQtSSkpLGYucHVzaChhLnN1YnN0cmluZyhoLT1NLGgrTSkpLCEoKEkrPU0rMSk+ZCkpOylNPWNbdj0odisxKSVjLmxlbmd0aF07cmV0dXJuIGYucmV2ZXJzZSgpLmpvaW4obCl9fShFN2UuY2FsbChjLmdyb3VwaW5n'@; put 'LE51bWJlciksYy50aG91c2FuZHMrIiIpLGE9dm9pZCAwPT09Yy5jdXJyZW5jeT8iIjpjLmN1cnJlbmN5WzBdKyIiLGQ9dm9pZCAwPT09Yy5jdXJyZW5jeT8iIjpjLmN1cnJlbmN5WzFdKyIiLGg9dm9pZCAwPT09Yy5kZWNpbWFsPyIuIjpjLmRlY2ltYWwrIiIsZj12b2lkIDA9PT1jLm51bWVy'@; put 'YWxzP3g3ZTpmdW5jdGlvbiBoVHQoYyl7cmV0dXJuIGZ1bmN0aW9uKGwpe3JldHVybiBsLnJlcGxhY2UoL1swLTldL2csZnVuY3Rpb24oYSl7cmV0dXJuIGNbK2FdfSl9fShFN2UuY2FsbChjLm51bWVyYWxzLFN0cmluZykpLHY9dm9pZCAwPT09Yy5wZXJjZW50PyIlIjpjLnBlcmNlbnQrIiIs'@; put 'TT12b2lkIDA9PT1jLm1pbnVzPyJcdTIyMTIiOmMubWludXMrIiIsST12b2lkIDA9PT1jLm5hbj8iTmFOIjpjLm5hbisiIjtmdW5jdGlvbiBHKHVlKXt2YXIgeWU9KHVlPVd0ZSh1ZSkpLmZpbGwsRWU9dWUuYWxpZ24sQmU9dWUuc2lnbixHZT11ZS5zeW1ib2wsc3Q9dWUuemVybyxwdD11ZS53'@; put 'aWR0aCxkdD11ZS5jb21tYSxxdD11ZS5wcmVjaXNpb24sbW49dWUudHJpbSx3bj11ZS50eXBlOyJuIj09PXduPyhkdD0hMCx3bj0iZyIpOk03ZVt3bl18fCh2b2lkIDA9PT1xdCYmKHF0PTEyKSxtbj0hMCx3bj0iZyIpLChzdHx8IjAiPT09eWUmJiI9Ij09PUVlKSYmKHN0PSEwLHllPSIwIixF'@; put 'ZT0iPSIpO3ZhciBobj0iJCI9PT1HZT9hOiIjIj09PUdlJiYvW2JveFhdLy50ZXN0KHduKT8iMCIrd24udG9Mb3dlckNhc2UoKToiIixNbj0iJCI9PT1HZT9kOi9bJXBdLy50ZXN0KHduKT92OiIiLE1yPU03ZVt3bl0sa3I9L1tkZWZncHJzJV0vLnRlc3Qod24pO2Z1bmN0aW9uIHFuKGdyKXt2'@; put 'YXIgUG4sVXIsdHIscXI9aG4sX2k9TW47aWYoImMiPT09d24pX2k9TXIoZ3IpK19pLGdyPSIiO2Vsc2V7dmFyIEJyPShncj0rZ3IpPDB8fDEvZ3I8MDtpZihncj1pc05hTihncik/STpNcihNYXRoLmFicyhncikscXQpLG1uJiYoZ3I9ZnVuY3Rpb24gcFR0KGMpe2U6Zm9yKHZhciBoLGw9Yy5s'@; put 'ZW5ndGgsYT0xLGQ9LTE7YTxsOysrYSlzd2l0Y2goY1thXSl7Y2FzZSIuIjpkPWg9YTticmVhaztjYXNlIjAiOjA9PT1kJiYoZD1hKSxoPWE7YnJlYWs7ZGVmYXVsdDppZighK2NbYV0pYnJlYWsgZTtkPjAmJihkPTApfXJldHVybiBkPjA/Yy5zbGljZSgwLGQpK2Muc2xpY2UoaCsxKTpjfShn'@; put 'cikpLEJyJiYwPT0rZ3ImJiIrIiE9PUJlJiYoQnI9ITEpLHFyPShCcj8iKCI9PT1CZT9CZTpNOiItIj09PUJlfHwiKCI9PT1CZT8iIjpCZSkrcXIsX2k9KCJzIj09PXduP1Q3ZVs4K0M3ZS8zXToiIikrX2krKEJyJiYiKCI9PT1CZT8iKSI6IiIpLGtyKWZvcihQbj0tMSxVcj1nci5sZW5ndGg7'@; put 'KytQbjxVcjspaWYoNDg+KHRyPWdyLmNoYXJDb2RlQXQoUG4pKXx8dHI+NTcpe19pPSg0Nj09PXRyP2grZ3Iuc2xpY2UoUG4rMSk6Z3Iuc2xpY2UoUG4pKStfaSxncj1nci5zbGljZSgwLFBuKTticmVha319ZHQmJiFzdCYmKGdyPWwoZ3IsMS8wKSk7dmFyIFlyPXFyLmxlbmd0aCtnci5sZW5n'@; put 'dGgrX2kubGVuZ3RoLHdpPVlyPHB0P25ldyBBcnJheShwdC1ZcisxKS5qb2luKHllKToiIjtzd2l0Y2goZHQmJnN0JiYoZ3I9bCh3aStncix3aS5sZW5ndGg/cHQtX2kubGVuZ3RoOjEvMCksd2k9IiIpLEVlKXtjYXNlIjwiOmdyPXFyK2dyK19pK3dpO2JyZWFrO2Nhc2UiPSI6Z3I9cXIrd2kr'@; put 'Z3IrX2k7YnJlYWs7Y2FzZSJeIjpncj13aS5zbGljZSgwLFlyPXdpLmxlbmd0aD4+MSkrcXIrZ3IrX2krd2kuc2xpY2UoWXIpO2JyZWFrO2RlZmF1bHQ6Z3I9d2krcXIrZ3IrX2l9cmV0dXJuIGYoZ3IpfXJldHVybiBxdD12b2lkIDA9PT1xdD82Oi9bZ3Byc10vLnRlc3Qod24pP01hdGgubWF4'@; put 'KDEsTWF0aC5taW4oMjEscXQpKTpNYXRoLm1heCgwLE1hdGgubWluKDIwLHF0KSkscW4udG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdWUrIiJ9LHFufXJldHVybntmb3JtYXQ6Ryxmb3JtYXRQcmVmaXg6ZnVuY3Rpb24gcmUodWUseWUpe3ZhciBFZT1HKCgodWU9V3RlKHVlKSkudHlwZT0i'@; put 'ZiIsdWUpKSxCZT0zKk1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihmdW5jdGlvbiB1VHQoYyl7cmV0dXJuKGM9VU4oTWF0aC5hYnMoYykpKT9jWzFdOk5hTn0oeWUpLzMpKSksR2U9TWF0aC5wb3coMTAsLUJlKSxzdD1UN2VbOCtCZS8zXTtyZXR1cm4gZnVuY3Rpb24ocHQpe3Jl'@; put 'dHVybiBFZShHZSpwdCkrc3R9fX19KGMpLGRmPVpOLmZvcm1hdH0oe3Rob3VzYW5kczoiLCIsZ3JvdXBpbmc6WzNdLGN1cnJlbmN5OlsiJCIsIiJdfSk7Y29uc3QgR3RlPU1hdGguUEksJHRlPTIqR3RlLG52PTFlLTYsd1R0PSR0ZS1udjtmdW5jdGlvbiBBN2UoYyl7dGhpcy5fKz1jWzBdO2Zv'@; put 'cihsZXQgbD0xLGE9Yy5sZW5ndGg7bDxhOysrbCl0aGlzLl8rPWFyZ3VtZW50c1tsXStjW2xdfWNsYXNzIEt0ZXtjb25zdHJ1Y3RvcihsKXt0aGlzLl94MD10aGlzLl95MD10aGlzLl94MT10aGlzLl95MT1udWxsLHRoaXMuXz0iIix0aGlzLl9hcHBlbmQ9bnVsbD09bD9BN2U6ZnVuY3Rpb24g'@; put 'Q1R0KGMpe2xldCBsPU1hdGguZmxvb3IoYyk7aWYoIShsPj0wKSl0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgZGlnaXRzOiAke2N9YCk7aWYobD4xNSlyZXR1cm4gQTdlO2NvbnN0IGE9MTAqKmw7cmV0dXJuIGZ1bmN0aW9uKGQpe3RoaXMuXys9ZFswXTtmb3IobGV0IGg9MSxmPWQubGVuZ3Ro'@; put 'O2g8ZjsrK2gpdGhpcy5fKz1NYXRoLnJvdW5kKGFyZ3VtZW50c1toXSphKS9hK2RbaF19fShsKX1tb3ZlVG8obCxhKXt0aGlzLl9hcHBlbmRgTSR7dGhpcy5feDA9dGhpcy5feDE9K2x9LCR7dGhpcy5feTA9dGhpcy5feTE9K2F9YH1jbG9zZVBhdGgoKXtudWxsIT09dGhpcy5feDEmJih0aGlz'@; put 'Ll94MT10aGlzLl94MCx0aGlzLl95MT10aGlzLl95MCx0aGlzLl9hcHBlbmRgWmApfWxpbmVUbyhsLGEpe3RoaXMuX2FwcGVuZGBMJHt0aGlzLl94MT0rbH0sJHt0aGlzLl95MT0rYX1gfXF1YWRyYXRpY0N1cnZlVG8obCxhLGQsaCl7dGhpcy5fYXBwZW5kYFEkeytsfSwkeythfSwke3RoaXMu'@; put 'X3gxPStkfSwke3RoaXMuX3kxPStofWB9YmV6aWVyQ3VydmVUbyhsLGEsZCxoLGYsdil7dGhpcy5fYXBwZW5kYEMkeytsfSwkeythfSwkeytkfSwkeytofSwke3RoaXMuX3gxPStmfSwke3RoaXMuX3kxPSt2fWB9YXJjVG8obCxhLGQsaCxmKXtpZihsPStsLGE9K2EsZD0rZCxoPStoLChmPStm'@; put 'KTwwKXRocm93IG5ldyBFcnJvcihgbmVnYXRpdmUgcmFkaXVzOiAke2Z9YCk7bGV0IHY9dGhpcy5feDEsTT10aGlzLl95MSxJPWQtbCxHPWgtYSxyZT12LWwsdWU9TS1hLHllPXJlKnJlK3VlKnVlO2lmKG51bGw9PT10aGlzLl94MSl0aGlzLl9hcHBlbmRgTSR7dGhpcy5feDE9bH0sJHt0aGlz'@; put 'Ll95MT1hfWA7ZWxzZSBpZih5ZT5udilpZihNYXRoLmFicyh1ZSpJLUcqcmUpPm52JiZmKXtsZXQgRWU9ZC12LEJlPWgtTSxHZT1JKkkrRypHLHN0PUVlKkVlK0JlKkJlLHB0PU1hdGguc3FydChHZSksZHQ9TWF0aC5zcXJ0KHllKSxxdD1mKk1hdGgudGFuKChHdGUtTWF0aC5hY29zKChHZSt5'@; put 'ZS1zdCkvKDIqcHQqZHQpKSkvMiksbW49cXQvZHQsd249cXQvcHQ7TWF0aC5hYnMobW4tMSk+bnYmJnRoaXMuX2FwcGVuZGBMJHtsK21uKnJlfSwke2ErbW4qdWV9YCx0aGlzLl9hcHBlbmRgQSR7Zn0sJHtmfSwwLDAsJHsrKHVlKkVlPnJlKkJlKX0sJHt0aGlzLl94MT1sK3duKkl9LCR7dGhp'@; put 'cy5feTE9YSt3bipHfWB9ZWxzZSB0aGlzLl9hcHBlbmRgTCR7dGhpcy5feDE9bH0sJHt0aGlzLl95MT1hfWB9YXJjKGwsYSxkLGgsZix2KXtpZihsPStsLGE9K2Esdj0hIXYsKGQ9K2QpPDApdGhyb3cgbmV3IEVycm9yKGBuZWdhdGl2ZSByYWRpdXM6ICR7ZH1gKTtsZXQgTT1kKk1hdGguY29z'@; put 'KGgpLEk9ZCpNYXRoLnNpbihoKSxHPWwrTSxyZT1hK0ksdWU9MV52LHllPXY/aC1mOmYtaDtudWxsPT09dGhpcy5feDE/dGhpcy5fYXBwZW5kYE0ke0d9LCR7cmV9YDooTWF0aC5hYnModGhpcy5feDEtRyk+bnZ8fE1hdGguYWJzKHRoaXMuX3kxLXJlKT5udikmJnRoaXMuX2FwcGVuZGBMJHtH'@; put 'fSwke3JlfWAsZCYmKHllPDAmJih5ZT15ZSUkdGUrJHRlKSx5ZT53VHQ/dGhpcy5fYXBwZW5kYEEke2R9LCR7ZH0sMCwxLCR7dWV9LCR7bC1NfSwke2EtSX1BJHtkfSwke2R9LDAsMSwke3VlfSwke3RoaXMuX3gxPUd9LCR7dGhpcy5feTE9cmV9YDp5ZT5udiYmdGhpcy5fYXBwZW5kYEEke2R9'@; put 'LCR7ZH0sMCwkeysoeWU+PUd0ZSl9LCR7dWV9LCR7dGhpcy5feDE9bCtkKk1hdGguY29zKGYpfSwke3RoaXMuX3kxPWErZCpNYXRoLnNpbihmKX1gKX1yZWN0KGwsYSxkLGgpe3RoaXMuX2FwcGVuZGBNJHt0aGlzLl94MD10aGlzLl94MT0rbH0sJHt0aGlzLl95MD10aGlzLl95MT0rYX1oJHtk'@; put 'PStkfXYkeytofWgkey1kfVpgfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuX319ZnVuY3Rpb24gazdlKCl7cmV0dXJuIG5ldyBLdGV9ZnVuY3Rpb24gU1R0KGMsbCxhLGQpe3JldHVybiBsPS1sLGQ9LWQsW2MsbF09W2MqYS1sKmQsYypkK2wqYV0sW2MsbD0tbF19ZnVuY3Rpb24gRDdlKGMsbCxh'@; put 'LGQsaCxmLHYpe3ZhciBJPWV2KE83ZS5jYWxsKHRoaXMsZikpO2MuZGF0YShbSV0pLEhBLmNhbGwoYy5ub2RlKCksSSksSTdlKGMsbCxhLGQsaCxmLHYpfWZ1bmN0aW9uIEk3ZShjLGwsYSxkLGgsZix2KXt2YXIgTT12LnNob3J0ZW5pbmd8fDAsdWU9W1swLC0zLjVdLFsxMCwwXSxbMCwzLjVd'@; put 'LFswLC0zLjVdXSx5ZT1kLWwsRWU9aC1hLEJlPU1hdGguc3FydCh5ZSp5ZStFZSpFZSk7aWYoMD09QmUpdmFyIEdlPTEsc3Q9MDtlbHNlIEdlPXllL0JlLHN0PUVlL0JlO2lmKGQ9bCsoQmUtTS0xMC0uMSkqR2UsaD1hKyhCZS1NLTEwLS4xKSpzdCxmLlVSTHx8Zi50b29sdGlwKXZhciBwdD1j'@; put 'LnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oImciKS5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJhIiksZHQ9cHQuc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigicGF0aCIpLHF0PXB0LnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oInBvbHlnb24iKTtlbHNlIGR0'@; put 'PWMuc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigicGF0aCIpLHF0PWMuc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigicG9seWdvbiIpO3ZhciBtbj1rN2UoKTttbi5tb3ZlVG8obCxhKSxtbi5saW5lVG8oZCxoKSxkdC5hdHRyKCJkIixtbiksZD1sKyhCZS1NLTEwKSpHZSxoPWEr'@; put 'KEJlLU0tMTApKnN0O2Zvcih2YXIgd249MDt3bjx1ZS5sZW5ndGg7d24rKyl1ZVt3bl09U1R0KChobj11ZVt3bl0pWzBdLGhuWzFdLEdlLHN0KTtmb3Iod249MDt3bjx1ZS5sZW5ndGg7d24rKyl1ZVt3bl09W2QrKGhuPXVlW3duXSlbMF0saCtoblsxXV07dmFyIE1uPVtdO2Zvcih3bj0wO3du'@; put 'PHVlLmxlbmd0aDt3bisrKXt2YXIgaG47TW4ucHVzaCgoaG49dWVbd25dKS5qb2luKCIsIikpfXZhciBNcj1Nbi5qb2luKCIgIik7cmV0dXJuIHF0LmF0dHIoInBvaW50cyIsTXIpLHRoaXN9ZnVuY3Rpb24gUjdlKCl7cmV0dXJuIHRoaXMuX2RyYXduRWRnZT8odGhpcy5fZHJhd25FZGdlLmcu'@; put 'cmVtb3ZlKCksdGhpcy5fZHJhd25FZGdlPW51bGwsdGhpcyk6dGhpc31mdW5jdGlvbiBMN2UoKXtyZXR1cm4gdGhpcy5fZHJhd25FZGdlP3RoaXMuX2RyYXduRWRnZS5nOl9vKG51bGwpfWZ1bmN0aW9uIE83ZShjKXt2YXIgbD0iIjtmb3IodmFyIGEgb2YgT2JqZWN0LmtleXMoYykpbnVsbCE9'@; put 'Y1thXSYmKGwrPScgIicrYSsnIj0iJytjW2FdKyciJyk7dmFyIGg9dGhpcy5sYXlvdXRTeW5jKCJkaWdyYXBoIHthIC0+IGIgWyIrbCsiXX0iLCJzdmciLCJkb3QiKSx2PShuZXcgd2luZG93LkRPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKGgsImltYWdlL3N2Zyt4bWwiKTtyZXR1cm4gX28o'@; put 'ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpKS5hcHBlbmQoZnVuY3Rpb24oKXtyZXR1cm4gdi5kb2N1bWVudEVsZW1lbnR9KS5zZWxlY3QoIi5lZGdlIil9ZnVuY3Rpb24gUDdlKGMsbCxhLGQsaCxmKXt2YXIgTT1ldihWN2UuY2FsbCh0aGlzLGQsaCkpO3JldHVybiBjLmRhdGEo'@; put 'W01dKSxIQS5jYWxsKGMubm9kZSgpLE0pLEY3ZShjLGwsYSxoKSx0aGlzfWZ1bmN0aW9uIEY3ZShjLGwsYSxkLGgpe2lmKGQuVVJMfHxkLnRvb2x0aXApdmFyIGY9Yy5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJnIikuc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigiYSIpO2Vs'@; put 'c2UgZj1jO3ZhciB2PWYuc2VsZWN0QWxsKCJlbGxpcHNlLHBvbHlnb24scGF0aCxwb2x5bGluZSIpLE09Yy5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJ0ZXh0Iik7aWYoMCE9di5zaXplKCkpe3ZhciBJPXYubm9kZSgpLmdldEJCb3goKTtJLmN4PUkueCtJLndpZHRoLzIsSS5jeT1J'@; put 'LnkrSS5oZWlnaHQvMn1lbHNlIDAhPU0uc2l6ZSgpJiYoST17eDorTS5hdHRyKCJ4IikseTorTS5hdHRyKCJ5Iiksd2lkdGg6MCxoZWlnaHQ6MCxjeDorTS5hdHRyKCJ4IiksY3k6K00uYXR0cigieSIpfSk7cmV0dXJuIHYuZWFjaChmdW5jdGlvbihHLHJlKXt2YXIgdWU9X28odGhpcyk7aWYo'@; put 'dWUuYXR0cigiY3giKSl1ZS5hdHRyKCJjeCIsUzYobCkpLmF0dHIoImN5IixTNihhKSk7ZWxzZSBpZih1ZS5hdHRyKCJwb2ludHMiKSl7dmFyIHllPXVlLmF0dHIoInBvaW50cyIpLnRyaW0oKTt1ZS5hdHRyKCJwb2ludHMiLGZ1bmN0aW9uIEhFdChmLGwsYSl7dmFyIGgsZD0oaD1mLnNwbGl0'@; put 'KCIgIikpLm1hcChmdW5jdGlvbih2KXtyZXR1cm4gdi5zcGxpdCgiLCIpfSk7cmV0dXJuIGQ9aC5tYXAoZnVuY3Rpb24odil7cmV0dXJuW1M2KCtsKyArdi5zcGxpdCgiLCIpWzBdKSxTNigrYSsgK3Yuc3BsaXQoIiwiKVsxXSldfSksKGg9ZC5tYXAoZnVuY3Rpb24odil7cmV0dXJuIHYuam9p'@; put 'bigiLCIpfSkpLmpvaW4oIiAiKX0oeWUsbC1JLmN4LGEtSS5jeSkpfWVsc2V7dmFyIEVlPXVlLmF0dHIoImQiKTt1ZS5hdHRyKCJkIixmdW5jdGlvbiBORXQoYyxsLGEpeyhmPWMuc3BsaXQoL1tBLVogXS8pKS5zaGlmdCgpO3ZhciBkPWMuc3BsaXQoL1teW0EtWiBdKy8pLGY9KGYubWFwKGZ1'@; put 'bmN0aW9uKHYpe3JldHVybiB2LnNwbGl0KCIsIil9KSxmLm1hcChmdW5jdGlvbih2KXtyZXR1cm5bUzYoK2wrICt2LnNwbGl0KCIsIilbMF0pLFM2KCthKyArdi5zcGxpdCgiLCIpWzFdKV19KS5tYXAoZnVuY3Rpb24odil7cmV0dXJuIHYuam9pbigiLCIpfSkpO3JldHVybiBkLnJlZHVjZShm'@; put 'dW5jdGlvbih2LE0sSSl7cmV0dXJuIHYuY29uY2F0KE0sZltJXSl9LFtdKS5qb2luKCIiKX0oRWUsbC1JLmN4LGEtSS5jeSkpfX0pLDAhPU0uc2l6ZSgpJiZNLmF0dHIoIngiLFM2KCtNLmF0dHIoIngiKStsLUkuY3gpKS5hdHRyKCJ5IixTNigrTS5hdHRyKCJ5IikrYS1JLmN5KSksdGhpc31m'@; put 'dW5jdGlvbiBIN2UoKXtpZighdGhpcy5fZHJhd25Ob2RlKXJldHVybiB0aGlzO3ZhciBjPXRoaXMuX2RyYXduTm9kZS5nO3JldHVybiBjLmVtcHR5KCl8fGMucmVtb3ZlKCksdGhpcy5fZHJhd25Ob2RlPW51bGwsdGhpc31mdW5jdGlvbiBON2UoKXtyZXR1cm4gdGhpcy5fZHJhd25Ob2RlP3Ro'@; put 'aXMuX2RyYXduTm9kZS5nOl9vKG51bGwpfWZ1bmN0aW9uIFY3ZShjLGwpe3ZhciBhPSIiO2Zvcih2YXIgZCBvZiBPYmplY3Qua2V5cyhsKSludWxsIT1sW2RdJiYoYSs9JyAiJytkKyciPSInK2xbZF0rJyInKTt2YXIgZj10aGlzLmxheW91dFN5bmMoJ2dyYXBoIHsiJytjKyciIFsnK2ErIl19'@; put 'Iiwic3ZnIiwiZG90IiksTT0obmV3IHdpbmRvdy5ET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZyhmLCJpbWFnZS9zdmcreG1sIik7cmV0dXJuIF9vKGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSkuYXBwZW5kKGZ1bmN0aW9uKCl7cmV0dXJuIE0uZG9jdW1lbnRFbGVtZW50fSku'@; put 'c2VsZWN0KCIubm9kZSIpfWZ1bmN0aW9uIFdOKGMpe3NlbGYuZG9jdW1lbnQ9e30sYy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbihsKXtsZXQgYT1zZWxmWyJAaHBjYy1qcy93YXNtIl07bnVsbD09YSYmbC5kYXRhLnZpelVSTCYmKGltcG9ydFNjcmlwdHMobC5kYXRhLnZp'@; put 'elVSTCksYT1zZWxmWyJAaHBjYy1qcy93YXNtIl0pLCJ2ZXJzaW9uIiE9bC5kYXRhLnR5cGU/YS5HcmFwaHZpei5sb2FkKCkudGhlbihkPT57Y29uc3QgaD1kLmxheW91dChsLmRhdGEuZG90LCJzdmciLGwuZGF0YS5lbmdpbmUsbC5kYXRhLm9wdGlvbnMpO2MucG9zdE1lc3NhZ2UoaD97dHlw'@; put 'ZToiZG9uZSIsc3ZnOmh9OmwuZGF0YS52aXpVUkw/e3R5cGU6ImluaXQifTp7dHlwZToic2tpcCJ9KX0pLmNhdGNoKGQ9PntjLnBvc3RNZXNzYWdlKHt0eXBlOiJlcnJvciIsZXJyb3I6ZC5tZXNzYWdlfSl9KTphLkdyYXBodml6LmxvYWQoKS50aGVuKGQ9PntjLnBvc3RNZXNzYWdlKHt0eXBl'@; put 'OiJ2ZXJzaW9uIix2ZXJzaW9uOmQudmVyc2lvbigpfSl9KX0pfWZ1bmN0aW9uIFJUdCgpe1dOKHNlbGYpfWZ1bmN0aW9uIExUdCgpe3NlbGYub25jb25uZWN0PWZ1bmN0aW9uKGMpe2NvbnN0IGw9Yy5wb3J0c1swXTtXTihsKSxsLnN0YXJ0KCl9fWZ1bmN0aW9uIFh0ZShjLGwpe2lmKHRoaXMu'@; put 'X29wdGlvbnM9e3VzZVdvcmtlcjohMCx1c2VTaGFyZWRXb3JrZXI6ITEsZW5naW5lOiJkb3QiLGtleU1vZGU6InRpdGxlIixmYWRlOiEwLHR3ZWVuUGF0aHM6ITAsdHdlZW5TaGFwZXM6ITAsY29udmVydEVxdWFsU2lkZWRQb2x5Z29uczohMCx0d2VlblByZWNpc2lvbjoxLGdyb3dFbnRlcmlu'@; put 'Z0VkZ2VzOiEwLHpvb206ITAsem9vbVNjYWxlRXh0ZW50OlsuMSwxMF0sem9vbVRyYW5zbGF0ZUV4dGVudDpbWy0xLzAsLTEvMF0sWzEvMCwxLzBdXSx3aWR0aDpudWxsLGhlaWdodDpudWxsLHNjYWxlOjEsZml0OiExfSxsIGluc3RhbmNlb2YgT2JqZWN0KWZvcih2YXIgYSBvZiBPYmplY3Qu'@; put 'a2V5cyhsKSl0aGlzLl9vcHRpb25zW2FdPWxbYV07ZWxzZSJib29sZWFuIj09dHlwZW9mIGwmJih0aGlzLl9vcHRpb25zLnVzZVdvcmtlcj1sKTt2YXIgZD10aGlzLl9vcHRpb25zLnVzZVdvcmtlcixoPXRoaXMuX29wdGlvbnMudXNlU2hhcmVkV29ya2VyO2lmKHR5cGVvZiBXb3JrZXI+InUi'@; put 'JiYoZD0hMSksdHlwZW9mIFNoYXJlZFdvcmtlcj4idSImJihoPSExKSxkfHxoKXt2YXIgdj1ndGUoInNjcmlwdCIpLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiJqYXZhc2NyaXB0L3dvcmtlciI9PV9vKHRoaXMpLmF0dHIoInR5cGUiKXx8X28odGhpcykuYXR0cigic3JjIikmJl9vKHRoaXMp'@; put 'LmF0dHIoInNyYyIpLm1hdGNoKC8uKlwvQGhwY2MtanNcL3dhc20vKX0pOzA9PXYuc2l6ZSgpPyhjb25zb2xlLndhcm4oJ05vIHNjcmlwdCB0YWcgb2YgdHlwZSAiamF2YXNjcmlwdC93b3JrZXIiIHdhcyBmb3VuZCBhbmQgInVzZVdvcmtlciIgaXMgdHJ1ZS4gTm90IHVzaW5nIHdlYiB3b3Jr'@; put 'ZXIuJyksZD0hMSxoPSExKToodGhpcy5fdml6VVJMPXYuYXR0cigic3JjIiksdGhpcy5fdml6VVJMfHwoY29uc29sZS53YXJuKCdObyAic3JjIiBhdHRyaWJ1dGUgb2Ygd2FzIGZvdW5kIG9uIHRoZSAiamF2YXNjcmlwdC93b3JrZXIiIHNjcmlwdCB0YWcgYW5kICJ1c2VXb3JrZXIiIGlzIHRy'@; put 'dWUuIE5vdCB1c2luZyB3ZWIgd29ya2VyLicpLGQ9ITEsaD0hMSkpfWlmKGgpe2NvbnN0IEc9ImRhdGE6YXBwbGljYXRpb24vamF2YXNjcmlwdDtiYXNlNjQsIitidG9hKFdOLnRvU3RyaW5nKCkrIigiK0xUdC50b1N0cmluZygpKyIpKCkiKTt0aGlzLl93b3JrZXI9dGhpcy5fd29ya2VyPW5l'@; put 'dyBTaGFyZWRXb3JrZXIoRyksdGhpcy5fd29ya2VyUG9ydD10aGlzLl93b3JrZXIucG9ydCx0aGlzLl93b3JrZXJQb3J0Q2xvc2U9dGhpcy5fd29ya2VyLnBvcnQuY2xvc2UuYmluZCh0aGlzLl93b3JrZXJQb3J0KSx0aGlzLl93b3JrZXIucG9ydC5zdGFydCgpLHRoaXMuX3dvcmtlckNhbGxi'@; put 'YWNrcz1bXX1lbHNlIGlmKGQpe3ZhciBNPW5ldyBCbG9iKFtXTi50b1N0cmluZygpKyIoIitSVHQudG9TdHJpbmcoKSsiKSgpIl0pLEk9d2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoTSk7dGhpcy5fd29ya2VyPW5ldyBXb3JrZXIoSSksdGhpcy5fd29ya2VyUG9ydD10aGlzLl93b3JrZXIs'@; put 'dGhpcy5fd29ya2VyUG9ydENsb3NlPXRoaXMuX3dvcmtlci50ZXJtaW5hdGUuYmluZCh0aGlzLl93b3JrZXIpLHRoaXMuX3dvcmtlckNhbGxiYWNrcz1bXX1lbHNlIF83ZS5sb2FkKCkudGhlbigoRz0+e3RoaXMuX2dyYXBodml6VmVyc2lvbj1HLnZlcnNpb24oKX0pLmJpbmQodGhpcykpO3Ro'@; put 'aXMuX3NlbGVjdGlvbj1jLHRoaXMuX2FjdGl2ZT0hMSx0aGlzLl9idXN5PSExLHRoaXMuX2pvYnM9W10sdGhpcy5fcXVldWU9W10sdGhpcy5fa2V5TW9kZXM9bmV3IFNldChbInRpdGxlIiwiaWQiLCJ0YWctaW5kZXgiLCJpbmRleCJdKSx0aGlzLl9pbWFnZXM9W10sdGhpcy5fdHJhbnNsYXRp'@; put 'b249dm9pZCAwLHRoaXMuX3NjYWxlPXZvaWQgMCx0aGlzLl9ldmVudFR5cGVzPVsiaW5pdEVuZCIsInN0YXJ0IiwibGF5b3V0U3RhcnQiLCJsYXlvdXRFbmQiLCJkYXRhRXh0cmFjdEVuZCIsImRhdGFQcm9jZXNzUGFzczFFbmQiLCJkYXRhUHJvY2Vzc1Bhc3MyRW5kIiwiZGF0YVByb2Nlc3NF'@; put 'bmQiLCJyZW5kZXJTdGFydCIsInJlbmRlckVuZCIsInRyYW5zaXRpb25TdGFydCIsInRyYW5zaXRpb25FbmQiLCJyZXN0b3JlRW5kIiwiZW5kIiwiem9vbSJdLHRoaXMuX2Rpc3BhdGNoPW10ZSguLi50aGlzLl9ldmVudFR5cGVzKSxWRXQuY2FsbCh0aGlzKSxjLm5vZGUoKS5fX2dyYXBodml6'@; put 'X189dGhpc31mdW5jdGlvbiBZTihjLGwpe3JldHVybiBfbyhjKS5ncmFwaHZpeihsKX1rN2UucHJvdG90eXBlPUt0ZS5wcm90b3R5cGUsWHRlLnByb3RvdHlwZT1ZTi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlh0ZSxlbmdpbmU6ZnVuY3Rpb24gSkV0KGMpe3JldHVybiB0aGlzLl9vcHRpb25z'@; put 'LmVuZ2luZT1jLHRoaXN9LGFkZEltYWdlOmZ1bmN0aW9uIFFFdChjLGwsYSl7cmV0dXJuIHRoaXMuX2ltYWdlcy5wdXNoKHtwYXRoOmMsd2lkdGg6bCxoZWlnaHQ6YX0pLHRoaXN9LGtleU1vZGU6ZnVuY3Rpb24gZVR0KGMpe2lmKCF0aGlzLl9rZXlNb2Rlcy5oYXMoYykpdGhyb3cgRXJyb3Io'@; put 'IklsbGVnYWwga2V5TW9kZTogIitjKTtpZihjIT10aGlzLl9vcHRpb25zLmtleU1vZGUmJm51bGwhPXRoaXMuX2RhdGEpdGhyb3cgRXJyb3IoIlRvbyBsYXRlIHRvIGNoYW5nZSBrZXlNb2RlIik7cmV0dXJuIHRoaXMuX29wdGlvbnMua2V5TW9kZT1jLHRoaXN9LGZhZGU6ZnVuY3Rpb24gdFR0'@; put 'KGMpe3JldHVybiB0aGlzLl9vcHRpb25zLmZhZGU9Yyx0aGlzfSx0d2VlblBhdGhzOmZ1bmN0aW9uIG5UdChjKXtyZXR1cm4gdGhpcy5fb3B0aW9ucy50d2VlblBhdGhzPWMsdGhpc30sdHdlZW5TaGFwZXM6ZnVuY3Rpb24gclR0KGMpe3JldHVybiB0aGlzLl9vcHRpb25zLnR3ZWVuU2hhcGVz'@; put 'PWMsYyYmKHRoaXMuX29wdGlvbnMudHdlZW5QYXRocz0hMCksdGhpc30sY29udmVydEVxdWFsU2lkZWRQb2x5Z29uczpmdW5jdGlvbiBpVHQoYyl7cmV0dXJuIHRoaXMuX29wdGlvbnMuY29udmVydEVxdWFsU2lkZWRQb2x5Z29ucz1jLHRoaXN9LHR3ZWVuUHJlY2lzaW9uOmZ1bmN0aW9uIGFU'@; put 'dChjKXtyZXR1cm4gdGhpcy5fb3B0aW9ucy50d2VlblByZWNpc2lvbj1jLHRoaXN9LGdyb3dFbnRlcmluZ0VkZ2VzOmZ1bmN0aW9uIHNUdChjKXtyZXR1cm4gdGhpcy5fb3B0aW9ucy5ncm93RW50ZXJpbmdFZGdlcz1jLHRoaXN9LHpvb206ZnVuY3Rpb24gSnh0KGMpe3JldHVybiB0aGlzLl9v'@; put 'cHRpb25zLnpvb209Yyx0aGlzLl9vcHRpb25zLnpvb20mJiF0aGlzLl96b29tQmVoYXZpb3I/cDdlLmNhbGwodGhpcyk6IXRoaXMuX29wdGlvbnMuem9vbSYmdGhpcy5fem9vbUJlaGF2aW9yJiYodGhpcy5fem9vbVNlbGVjdGlvbi5vbigiLnpvb20iLG51bGwpLHRoaXMuX3pvb21CZWhhdmlv'@; put 'cj1udWxsKSx0aGlzfSxyZXNldFpvb206ZnVuY3Rpb24gUXh0KGMpe3ZhciBsPXRoaXMuX3pvb21TZWxlY3Rpb247cmV0dXJuIGMmJihsPWwudHJhbnNpdGlvbihjKSksbC5jYWxsKHRoaXMuX3pvb21CZWhhdmlvci50cmFuc2Zvcm0sdGhpcy5fb3JpZ2luYWxUcmFuc2Zvcm0pLHRoaXN9LHpv'@; put 'b21CZWhhdmlvcjpmdW5jdGlvbiBuRXQoKXtyZXR1cm4gdGhpcy5fem9vbUJlaGF2aW9yfHxudWxsfSx6b29tU2VsZWN0aW9uOmZ1bmN0aW9uIHJFdCgpe3JldHVybiB0aGlzLl96b29tU2VsZWN0aW9ufHxudWxsfSx6b29tU2NhbGVFeHRlbnQ6ZnVuY3Rpb24gZUV0KGMpe3JldHVybiB0aGlz'@; put 'Ll9vcHRpb25zLnpvb21TY2FsZUV4dGVudD1jLHRoaXN9LHpvb21UcmFuc2xhdGVFeHRlbnQ6ZnVuY3Rpb24gdEV0KGMpe3JldHVybiB0aGlzLl9vcHRpb25zLnpvb21UcmFuc2xhdGVFeHRlbnQ9Yyx0aGlzfSxyZW5kZXI6ZnVuY3Rpb24gY0V0KGMpe3JldHVybiB0aGlzLl9idXN5Pyh0aGlz'@; put 'Ll9xdWV1ZS5wdXNoKHRoaXMucmVuZGVyLmJpbmQodGhpcyxjKSksdGhpcyk6KHRoaXMuX2Rpc3BhdGNoLmNhbGwoInJlbmRlclN0YXJ0Iix0aGlzKSx0aGlzLl90cmFuc2l0aW9uRmFjdG9yeT9NTihmdW5jdGlvbigpe3RoaXMuX3RyYW5zaXRpb249RHRlKHRoaXMuX3RyYW5zaXRpb25GYWN0'@; put 'b3J5KCkpLHY3ZS5jYWxsKHRoaXMsYyl9LmJpbmQodGhpcyksMCk6djdlLmNhbGwodGhpcyxjKSx0aGlzKX0sbGF5b3V0OmZ1bmN0aW9uIEJFdChjLGwsYSxkKXtpZih0aGlzLl93b3JrZXIpWnRlLmNhbGwodGhpcyx7dHlwZToibGF5b3V0Iixkb3Q6YyxlbmdpbmU6bCxvcHRpb25zOmF9LGZ1'@; put 'bmN0aW9uKGYpe2QuY2FsbCh0aGlzLGYuZGF0YSl9KTtlbHNlIHRyeXt2YXIgaD10aGlzLmxheW91dFN5bmMoYywic3ZnIixsLGEpO2QuY2FsbCh0aGlzLHt0eXBlOiJkb25lIixzdmc6aH0pfWNhdGNoKGYpe2QuY2FsbCh0aGlzLHt0eXBlOiJlcnJvciIsZXJyb3I6Zi5tZXNzYWdlfSl9fSxk'@; put 'b3Q6ZnVuY3Rpb24gakV0KGMsbCl7dmFyIGE9dGhpcyxoPXRoaXMuX29wdGlvbnMuZW5naW5lLGY9dGhpcy5faW1hZ2VzO3JldHVybiB0aGlzLl9kaXNwYXRjaC5jYWxsKCJzdGFydCIsdGhpcyksdGhpcy5fYnVzeT0hMCx0aGlzLl9kaXNwYXRjaC5jYWxsKCJsYXlvdXRTdGFydCIsdGhpcyks'@; put 'dGhpcy5fd29ya2VyfHxudWxsIT10aGlzLmxheW91dFN5bmM/KHRoaXMubGF5b3V0KGMsaCx7aW1hZ2VzOmZ9LGZ1bmN0aW9uKE0pe3N3aXRjaChNLnR5cGUpe2Nhc2UiZXJyb3IiOmlmKCFhLl9vbmVycm9yKXRocm93IE0uZXJyb3IubWVzc2FnZTthLl9vbmVycm9yKE0uZXJyb3IpO2JyZWFr'@; put 'O2Nhc2UiZG9uZSI6ekV0LmNhbGwodGhpcyxNLnN2ZyxsKX19KSx0aGlzKToodGhpcy5fYWZ0ZXJJbml0PXRoaXMuZG90LmJpbmQodGhpcyxjLGwpLHRoaXMpfSxkYXRhOmZ1bmN0aW9uIHNFdCgpe3JldHVybiB0aGlzLl9kYXRhfHxudWxsfSxyZW5kZXJEb3Q6ZnVuY3Rpb24gVUV0KGMsbCl7'@; put 'dmFyIGE9dGhpcztyZXR1cm4gdGhpcy5kb3QoYyxmdW5jdGlvbiBkKCl7YS5yZW5kZXIobCl9KSx0aGlzfSx0cmFuc2l0aW9uOmZ1bmN0aW9uIFpFdChjKXtyZXR1cm4gYyBpbnN0YW5jZW9mIEZ1bmN0aW9uP3RoaXMuX3RyYW5zaXRpb25GYWN0b3J5PWM6dGhpcy5fdHJhbnNpdGlvbj1EdGUo'@; put 'YyksdGhpc30sYWN0aXZlOmZ1bmN0aW9uIFdFdChjKXt2YXIgYT10aGlzLl9zZWxlY3Rpb24uc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigic3ZnIik7cmV0dXJuIDAhPWEuc2l6ZSgpP2Z1bmN0aW9uIEl4dChjLGwpe3ZhciBkLGgsYT1jLl9fdHJhbnNpdGlvbjtpZihhKWZvcihoIGlu'@; put 'IGw9bnVsbD09bD9udWxsOmwrIiIsYSlpZigoZD1hW2hdKS5zdGF0ZT4xJiZkLm5hbWU9PT1sKXJldHVybiBuZXcgZDQoW1tjXV0sRHh0LGwsK2gpO3JldHVybiBudWxsfShhLm5vZGUoKSxjKTpudWxsfSxvcHRpb25zOmZ1bmN0aW9uIFlFdChjKXtpZih0eXBlb2YgYz4idSIpcmV0dXJuIE9i'@; put 'amVjdC5hc3NpZ24oe30sdGhpcy5fb3B0aW9ucyk7Zm9yKHZhciBsIG9mIE9iamVjdC5rZXlzKGMpKXRoaXMuX29wdGlvbnNbbF09Y1tsXTtyZXR1cm4gdGhpc30sd2lkdGg6ZnVuY3Rpb24gR0V0KGMpe3JldHVybiB0aGlzLl9vcHRpb25zLndpZHRoPWMsdGhpc30saGVpZ2h0OmZ1bmN0aW9u'@; put 'ICRFdChjKXtyZXR1cm4gdGhpcy5fb3B0aW9ucy5oZWlnaHQ9Yyx0aGlzfSxzY2FsZTpmdW5jdGlvbiBLRXQoYyl7cmV0dXJuIHRoaXMuX29wdGlvbnMuc2NhbGU9Yyx0aGlzfSxmaXQ6ZnVuY3Rpb24gWEV0KGMpe3JldHVybiB0aGlzLl9vcHRpb25zLmZpdD1jLHRoaXN9LGF0dHJpYnV0ZXI6'@; put 'ZnVuY3Rpb24gcUV0KGMpe3JldHVybiB0aGlzLl9hdHRyaWJ1dGVyPWMsdGhpc30sb246ZnVuY3Rpb24gb1R0KGMsbCl7cmV0dXJuIHRoaXMuX2Rpc3BhdGNoLm9uKGMsbCksdGhpc30sb25lcnJvcjpmdW5jdGlvbiBsVHQoYyl7cmV0dXJuIHRoaXMuX29uZXJyb3I9Yyx0aGlzfSxsb2dFdmVu'@; put 'dHM6ZnVuY3Rpb24gYlR0KGMpe3ZhciBsPURhdGUubm93KCksYT17fSxkPXRoaXMuX2V2ZW50VHlwZXMsaD1NYXRoLm1heCguLi5kLm1hcChJPT5JLmxlbmd0aCkpO2ZvcihsZXQgST0wO0k8ZC5sZW5ndGg7SSsrKXtsZXQgRz1kW0ldO2FbR109W107dmFyIHYsTSxmPXRoaXM7dGhpcy5vbihH'@; put 'KyIubG9nIixjP2Z1bmN0aW9uKCl7dmFyIHJlPURhdGUubm93KCksdWU9YVtHXS5sZW5ndGg7YVtHXS5wdXNoKHJlKTt2YXIgeWU9IiI7aWYoeWUrPSJFdmVudCAiLHllKz1kZigiID4yIikoSSkrIiAiLHllKz1HKyIgIi5yZXBlYXQoaC1HLmxlbmd0aCkseWUrPWRmKCIgPjUiKShyZS1sKSsi'@; put 'ICIsImluaXRFbmQiIT1HJiYoeWUrPWRmKCIgPjUiKShyZS1hLnN0YXJ0W3VlXSkpLCJkYXRhUHJvY2Vzc0VuZCI9PUcmJih5ZSs9IiBwcmVwYXJlICAgICAgICAgICAgICAgICAiK2RmKCIgPjUiKShyZS1hLmxheW91dEVuZFt1ZV0pKSwicmVuZGVyRW5kIj09RyYmZi5fdHJhbnNpdGlvbiYm'@; put 'KHllKz0iIHRyYW5zaXRpb24gc3RhcnQgbWFyZ2luICIrZGYoIiA+NSIpKGYuX3RyYW5zaXRpb24uZGVsYXkoKS0ocmUtYS5yZW5kZXJTdGFydFt1ZV0pKSx2PWYuX3RyYW5zaXRpb24uZGVsYXkoKSxNPWYuX3RyYW5zaXRpb24uZHVyYXRpb24oKSksInRyYW5zaXRpb25TdGFydCI9PUcpe3Zh'@; put 'ciBFZT1yZS1hLnJlbmRlclN0YXJ0W3VlXTt5ZSs9IiB0cmFuc2l0aW9uIGRlbGF5ICAgICAgICAiK2RmKCIgPjUiKShyZS1hLnJlbmRlclN0YXJ0W3VlXSkseWUrPSIgZXhwZWN0ZWQgIitkZigiID41IikodikseWUrPSIgZGlmZiAiK2RmKCIgPjUiKShFZS12KX1pZigidHJhbnNpdGlvbkVu'@; put 'ZCI9PUcpe3ZhciBCZT1yZS1hLnRyYW5zaXRpb25TdGFydFt1ZV07eWUrPSIgdHJhbnNpdGlvbiBkdXJhdGlvbiAgICAgIitkZigiID41IikoQmUpLHllKz0iIGV4cGVjdGVkICIrZGYoIiA+NSIpKE0pLHllKz0iIGRpZmYgIitkZigiID41IikoQmUtTSl9Y29uc29sZS5sb2coeWUpLGw9cmV9'@; put 'Om51bGwpfXJldHVybiB0aGlzfSxkZXN0cm95OmZ1bmN0aW9uIF9UdCgpe3JldHVybiBkZWxldGUgdGhpcy5fc2VsZWN0aW9uLm5vZGUoKS5fX2dyYXBodml6X18sdGhpcy5fd29ya2VyJiZ0aGlzLl93b3JrZXJQb3J0Q2xvc2UoKSx0aGlzfSxkcmF3RWRnZTpmdW5jdGlvbiBNVHQoYyxsLGEs'@; put 'ZCxoLGY9e30pe2lmKChoPU9iamVjdC5hc3NpZ24oe30saCkpLnN0eWxlJiZoLnN0eWxlLmluY2x1ZGVzKCJpbnZpcyIpKXZhciB2PV9vKG51bGwpO2Vsc2V7dmFyIEc9dGhpcy5fc2VsZWN0aW9uLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oInN2ZyIpLnNlbGVjdFdpdGhvdXREYXRh'@; put 'UHJvcGFnYXRpb24oImciKSx1ZT1ldihPN2UuY2FsbCh0aGlzLGgpKTt2PUcuYXBwZW5kKCJnIikuZGF0YShbdWVdKSxIQS5jYWxsKHYubm9kZSgpLHVlKSxEN2UuY2FsbCh0aGlzLHYsYyxsLGEsZCxoLGYpfXJldHVybiB0aGlzLl9kcmF3bkVkZ2U9e2c6dix4MTpjLHkxOmwseDI6YSx5Mjpk'@; put 'LGF0dHJpYnV0ZXM6aH0sdGhpc30sdXBkYXRlRHJhd25FZGdlOmZ1bmN0aW9uIHhUdChjLGwsYSxkLGg9e30sZj17fSl7aWYoIXRoaXMuX2RyYXduRWRnZSl0aHJvdyBFcnJvcigiTm8gZWRnZSBoYXMgYmVlbiBkcmF3biIpO3ZhciB2PXRoaXMuX2RyYXduRWRnZS5nO3JldHVybiBoPU9iamVj'@; put 'dC5hc3NpZ24odGhpcy5fZHJhd25FZGdlLmF0dHJpYnV0ZXMsaCksdGhpcy5fZHJhd25FZGdlLngxPWMsdGhpcy5fZHJhd25FZGdlLnkxPWwsdGhpcy5fZHJhd25FZGdlLngyPWEsdGhpcy5fZHJhd25FZGdlLnkyPWQsIXYuZW1wdHkoKXx8aC5zdHlsZSYmaC5zdHlsZS5pbmNsdWRlcygiaW52'@; put 'aXMiKXx8KHY9dGhpcy5fc2VsZWN0aW9uLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oInN2ZyIpLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oImciKS5hcHBlbmQoImciKSx0aGlzLl9kcmF3bkVkZ2UuZz12KSx2LmVtcHR5KCl8fEQ3ZS5jYWxsKHRoaXMsdixjLGwsYSxkLGgs'@; put 'ZiksdGhpc30sbW92ZURyYXduRWRnZUVuZFBvaW50OmZ1bmN0aW9uIEVUdChjLGwsYT17fSl7aWYoIXRoaXMuX2RyYXduRWRnZSl0aHJvdyBFcnJvcigiTm8gZWRnZSBoYXMgYmVlbiBkcmF3biIpO3ZhciBkPXRoaXMuX2RyYXduRWRnZS5nLGg9dGhpcy5fZHJhd25FZGdlLngxLGY9dGhpcy5f'@; put 'ZHJhd25FZGdlLnkxLHY9dGhpcy5fZHJhd25FZGdlLmF0dHJpYnV0ZXM7cmV0dXJuIHRoaXMuX2RyYXduRWRnZS54Mj1jLHRoaXMuX2RyYXduRWRnZS55Mj1sLEk3ZShkLGgsZixjLGwsdixhKSx0aGlzfSxpbnNlcnREcmF3bkVkZ2U6ZnVuY3Rpb24gVFR0KGMpe2lmKCF0aGlzLl9kcmF3bkVk'@; put 'Z2UpdGhyb3cgRXJyb3IoIk5vIGVkZ2UgaGFzIGJlZW4gZHJhd24iKTt2YXIgbD10aGlzLl9kcmF3bkVkZ2UuZztpZihsLmVtcHR5KCkpcmV0dXJuIHRoaXM7bC5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJ0aXRsZSIpLnRleHQoYyk7dmFyIHY9dGhpcy5fc2VsZWN0aW9uLnNlbGVj'@; put 'dFdpdGhvdXREYXRhUHJvcGFnYXRpb24oInN2ZyIpLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oImciKSxNPXYuZGF0dW0oKSxJPXRoaXMuX2V4dHJhY3REYXRhKGwsTS5jaGlsZHJlbi5sZW5ndGgsdi5kYXR1bSgpKTtyZXR1cm4gTS5jaGlsZHJlbi5wdXNoKEkpLEZ0ZShsLEkpLHRo'@; put 'aXMuX2RyYXduRWRnZT1udWxsLHRoaXN9LHJlbW92ZURyYXduRWRnZTpSN2UscmVtb3ZlRHJhd25FZGdlOlI3ZSxkcmF3bkVkZ2VTZWxlY3Rpb246TDdlLGRyYXduRWRnZVNlbGVjdGlvbjpMN2UsZHJhd05vZGU6ZnVuY3Rpb24gQVR0KGMsbCxhLGQ9e30saD17fSl7aWYoKGQ9T2JqZWN0LmFz'@; put 'c2lnbih7fSxkKSkuc3R5bGUmJmQuc3R5bGUuaW5jbHVkZXMoImludmlzIikpdmFyIGY9X28obnVsbCk7ZWxzZXt2YXIgST10aGlzLl9zZWxlY3Rpb24uc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigic3ZnIikuc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigiZyIpLHJlPWV2KFY3'@; put 'ZS5jYWxsKHRoaXMsYSxkKSk7Zj1JLmFwcGVuZCgiZyIpLmRhdGEoW3JlXSksSEEuY2FsbChmLm5vZGUoKSxyZSksUDdlLmNhbGwodGhpcyxmLGMsbCxhLGQsaCl9cmV0dXJuIHRoaXMuX2RyYXduTm9kZT17ZzpmLG5vZGVJZDphLHg6Yyx5OmwsYXR0cmlidXRlczpkfSx0aGlzfSx1cGRhdGVE'@; put 'cmF3bk5vZGU6ZnVuY3Rpb24ga1R0KGMsbCxhLGQ9e30saD17fSl7aWYoIXRoaXMuX2RyYXduTm9kZSl0aHJvdyBFcnJvcigiTm8gbm9kZSBoYXMgYmVlbiBkcmF3biIpO3ZhciBmPXRoaXMuX2RyYXduTm9kZS5nO3JldHVybiBudWxsPT1hJiYoYT10aGlzLl9kcmF3bk5vZGUubm9kZUlkKSxk'@; put 'PU9iamVjdC5hc3NpZ24odGhpcy5fZHJhd25Ob2RlLmF0dHJpYnV0ZXMsZCksdGhpcy5fZHJhd25Ob2RlLm5vZGVJZD1hLHRoaXMuX2RyYXduTm9kZS54PWMsdGhpcy5fZHJhd25Ob2RlLnk9bCwhZi5lbXB0eSgpfHxkLnN0eWxlJiZkLnN0eWxlLmluY2x1ZGVzKCJpbnZpcyIpfHwoZj10aGlz'@; put 'Ll9zZWxlY3Rpb24uc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigic3ZnIikuc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigiZyIpLmFwcGVuZCgiZyIpLHRoaXMuX2RyYXduTm9kZS5nPWYpLGYuZW1wdHkoKXx8UDdlLmNhbGwodGhpcyxmLGMsbCxhLGQsaCksdGhpc30sbW92ZURy'@; put 'YXduTm9kZTpmdW5jdGlvbiBEVHQoYyxsLGE9e30pe2lmKCF0aGlzLl9kcmF3bk5vZGUpdGhyb3cgRXJyb3IoIk5vIG5vZGUgaGFzIGJlZW4gZHJhd24iKTt2YXIgZD10aGlzLl9kcmF3bk5vZGUuZyxoPXRoaXMuX2RyYXduTm9kZS5hdHRyaWJ1dGVzO3JldHVybiB0aGlzLl9kcmF3bk5vZGUu'@; put 'eD1jLHRoaXMuX2RyYXduTm9kZS55PWwsZC5lbXB0eSgpfHxGN2UoZCxjLGwsaCksdGhpc30saW5zZXJ0RHJhd25Ob2RlOmZ1bmN0aW9uIElUdChjKXtpZighdGhpcy5fZHJhd25Ob2RlKXRocm93IEVycm9yKCJObyBub2RlIGhhcyBiZWVuIGRyYXduIik7bnVsbD09YyYmKGM9dGhpcy5fZHJh'@; put 'd25Ob2RlLm5vZGVJZCk7dmFyIGw9dGhpcy5fZHJhd25Ob2RlLmc7aWYobC5lbXB0eSgpKXJldHVybiB0aGlzO3ZhciBhPXRoaXMuX2RyYXduTm9kZS5hdHRyaWJ1dGVzO2lmKGwuc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigidGl0bGUiKS50ZXh0KGMpLGEuVVJMfHxhLnRvb2x0aXAp'@; put 'dmFyIGY9bC5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJnIikuc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigiYSIpLE09KGYuc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigiZWxsaXBzZSxwb2x5Z29uLHBhdGgscG9seWxpbmUiKSxmLnNlbGVjdFdpdGhvdXREYXRhUHJv'@; put 'cGFnYXRpb24oInRleHQiKSk7ZWxzZSBsLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oImVsbGlwc2UscG9seWdvbixwYXRoLHBvbHlsaW5lIiksTT1sLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oInRleHQiKTtNLnRleHQoYS5sYWJlbHx8Yyk7dmFyIHJlPXRoaXMuX3NlbGVj'@; put 'dGlvbi5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJzdmciKS5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJnIiksdWU9cmUuZGF0dW0oKSx5ZT10aGlzLl9leHRyYWN0RGF0YShsLHVlLmNoaWxkcmVuLmxlbmd0aCxyZS5kYXR1bSgpKTtyZXR1cm4gdWUuY2hpbGRyZW4ucHVz'@; put 'aCh5ZSksRnRlKGwseWUpLHRoaXMuX2RyYXduTm9kZT1udWxsLHRoaXN9LHJlbW92ZURyYXduTm9kZTpIN2UscmVtb3ZlRHJhd25Ob2RlOkg3ZSxkcmF3bk5vZGVTZWxlY3Rpb246TjdlLGRyYXduTm9kZVNlbGVjdGlvbjpON2UsZ3JhcGh2aXpWZXJzaW9uOmZ1bmN0aW9uIHVFdCgpe3JldHVy'@; put 'biB0aGlzLl9ncmFwaHZpelZlcnNpb259fSwkOS5wcm90b3R5cGUuZ3JhcGh2aXo9ZnVuY3Rpb24gT1R0KGMpe3ZhciBsPXRoaXMubm9kZSgpLl9fZ3JhcGh2aXpfXztyZXR1cm4gbD8obC5vcHRpb25zKGMpLE1OKGZ1bmN0aW9uKCl7bC5fZGlzcGF0Y2guY2FsbCgiaW5pdEVuZCIsdGhpcyl9'@; put 'LmJpbmQodGhpcyksMCkpOmw9bmV3IFh0ZSh0aGlzLGMpLGx9LCQ5LnByb3RvdHlwZS5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uPWZ1bmN0aW9uIFBUdChjKXtyZXR1cm4gX28odGhpcy5zaXplKCk+MD90aGlzLm5vZGUoKS5xdWVyeVNlbGVjdG9yKGMpOm51bGwpfTt2YXIgRlR0PWIo'@; put 'OTgwODMpO2Z1bmN0aW9uIEhUdChjLGwpezEmYyYmV3QoMCwiY2xyLWljb24iLDI5KX1mdW5jdGlvbiBOVHQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJjbHItaWNvbiIsMzApLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKDIpO3JldHVybiBoLmxpYnJh'@; put 'cmllc1NlYXJjaD0iIixDdChoLmxpYnJhcnlPbkZpbHRlcigpKX0pLGhlKCl9fWZ1bmN0aW9uIFZUdChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImNsci10cmVlLW5vZGUiLDI0KSgxLCJkaXYiLDI1KSgyLCJpbnB1dCIsMjYsMikscGkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9u'@; put 'KGgpe3d0KGEpO2NvbnN0IGY9TGUoKTtyZXR1cm4gZ2koZi5saWJyYXJpZXNTZWFyY2gsaCl8fChmLmxpYnJhcmllc1NlYXJjaD1oKSxDdChoKX0pLEZ0KCJrZXl1cCIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoKS5saWJyYXJ5T25GaWx0ZXIoKSl9KSxoZSgpLGd0KDQsSFR0LDEs'@; put 'MCwiY2xyLWljb24iLDI3KSg1LE5UdCwxLDAsImNsci1pY29uIiwyOCksaGUoKSgpfWlmKDImYyl7Y29uc3QgYT1kYSgzKSxkPUxlKCk7ZmUoMiksZmkoIm5nTW9kZWwiLGQubGlicmFyaWVzU2VhcmNoKSxmZSgyKSxNZSgibmdJZiIsYS52YWx1ZS5sZW5ndGg8MSksZmUoKSxNZSgibmdJZiIs'@; put 'YS52YWx1ZS5sZW5ndGg+MCl9fWZ1bmN0aW9uIEJUdChjLGwpezEmYyYmV3QoMCwiY2xyLWljb24iLDI5KX1mdW5jdGlvbiBqVHQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJjbHItaWNvbiIsMzApLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKSxMZSgpO2NvbnN0IGg9ZGEo'@; put 'MyksZj1MZSgyKS4kaW1wbGljaXQsdj1MZSgpO3JldHVybiBoLnZhbHVlPSIiLGYuc2VhcmNoU3RyaW5nPSIiLEN0KHYudHJlZU9uRmlsdGVyKGYsInRhYmxlcy5UQUJMRU5BTUUiKSl9KSxoZSgpfX1mdW5jdGlvbiB6VHQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJjbHItdHJl'@; put 'ZS1ub2RlIiwyNCkoMSwiZGl2IiwyNSkoMiwiaW5wdXQiLDM2LDMpLHBpKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihoKXt3dChhKTtjb25zdCBmPUxlKDIpLiRpbXBsaWNpdDtyZXR1cm4gZ2koZi5zZWFyY2hTdHJpbmcsaCl8fChmLnNlYXJjaFN0cmluZz1oKSxDdChoKX0pLEZ0KCJrZXl1'@; put 'cCIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKDIpLiRpbXBsaWNpdDtyZXR1cm4gQ3QoTGUoKS50cmVlT25GaWx0ZXIoaCwidGFibGVzLlRBQkxFTkFNRSIpKX0pLGhlKCksZ3QoNCxCVHQsMSwwLCJjbHItaWNvbiIsMjcpKDUsalR0LDEsMCwiY2xyLWljb24iLDI4KSxoZSgpKCl9aWYo'@; put 'MiZjKXtjb25zdCBhPWRhKDMpLGQ9TGUoMikuJGltcGxpY2l0O2ZlKDIpLGZpKCJuZ01vZGVsIixkLnNlYXJjaFN0cmluZyksZmUoMiksTWUoIm5nSWYiLGEudmFsdWUubGVuZ3RoPDEpLGZlKCksTWUoIm5nSWYiLGEudmFsdWUubGVuZ3RoPjApfX1mdW5jdGlvbiBVVHQoYyxsKXsxJmMmJld0'@; put 'KDAsImNsci1pY29uIiwyOSl9ZnVuY3Rpb24gWlR0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiY2xyLWljb24iLDMwKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7d3QoYSksTGUoKTtjb25zdCBoPWRhKDMpLGY9TGUoKS4kaW1wbGljaXQsdj1MZSgzKTtyZXR1cm4gaC52YWx1ZT0i'@; put 'IixmLnNlYXJjaFN0cmluZz0iIixDdCh2LnRyZWVPbkZpbHRlcihmLCJjb2x1bW5zLkNPTE5BTUUiKSl9KSxoZSgpfX1mdW5jdGlvbiBXVHQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJjbHItdHJlZS1ub2RlIiwyNCkoMSwiZGl2IiwyNSkoMiwiaW5wdXQiLDM5LDMpLHBpKCJu'@; put 'Z01vZGVsQ2hhbmdlIixmdW5jdGlvbihoKXt3dChhKTtjb25zdCBmPUxlKCkuJGltcGxpY2l0O3JldHVybiBnaShmLnNlYXJjaFN0cmluZyxoKXx8KGYuc2VhcmNoU3RyaW5nPWgpLEN0KGgpfSksRnQoImtleXVwIixmdW5jdGlvbigpe3d0KGEpO2NvbnN0IGg9TGUoKS4kaW1wbGljaXQ7cmV0'@; put 'dXJuIEN0KExlKDMpLnRyZWVPbkZpbHRlcihoLCJjb2x1bW5zLkNPTE5BTUUiKSl9KSxoZSgpLGd0KDQsVVR0LDEsMCwiY2xyLWljb24iLDI3KSg1LFpUdCwxLDAsImNsci1pY29uIiwyOCksaGUoKSgpfWlmKDImYyl7Y29uc3QgYT1kYSgzKSxkPUxlKCkuJGltcGxpY2l0O2ZlKDIpLGZpKCJu'@; put 'Z01vZGVsIixkLnNlYXJjaFN0cmluZyksZmUoMiksTWUoIm5nSWYiLGEudmFsdWUubGVuZ3RoPDEpLGZlKCksTWUoIm5nSWYiLGEudmFsdWUubGVuZ3RoPjApfX1mdW5jdGlvbiBZVHQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJjbHItdHJlZS1ub2RlIikoMSwiYnV0dG9uIiw0'@; put 'MCksRnQoImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IGg9d3QoYSkuJGltcGxpY2l0LGY9TGUoKS4kaW1wbGljaXQsdj1MZSgyKS4kaW1wbGljaXQ7cmV0dXJuIEN0KExlKCkuY29sdW1uT25DbGljayhoLHYsZikpfSksV3QoMiwiY2xyLWljb24iLDQxKSxPZSgzKSxoZSgpKCl9aWYoMiZjKXtj'@; put 'b25zdCBhPWwuJGltcGxpY2l0LGQ9TGUoNCk7ZmUoKSxUcigiY29sdW1uLWFjdGl2ZSIsZC5saWJDb2x1bW5BY3RpdmUoYS5DT0xVUkkpKSxmZSgyKSxMcigiICIsYS5DT0xOQU1FLCIgIil9fWZ1bmN0aW9uIEdUdChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImNsci10cmVlLW5v'@; put 'ZGUiLDMyKSxGdCgiY2xpY2siLGZ1bmN0aW9uKGgpe2NvbnN0IGY9d3QoYSkuJGltcGxpY2l0LHY9TGUoMikuJGltcGxpY2l0O3JldHVybiBDdChMZSgpLnRyZWVOb2RlQ2xpY2tlZChoLGYsdi50YWJsZXMpKX0pLHBpKCJjbHJFeHBhbmRlZENoYW5nZSIsZnVuY3Rpb24oaCl7Y29uc3QgZj13'@; put 'dChhKS4kaW1wbGljaXQ7cmV0dXJuIGdpKGYuZXhwYW5kZWQsaCl8fChmLmV4cGFuZGVkPWgpLEN0KGgpfSksZGUoMSwicCIsMzcpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtjb25zdCBoPXd0KGEpLiRpbXBsaWNpdCxmPUxlKDIpLiRpbXBsaWNpdDtyZXR1cm4gQ3QoTGUoKS50YWJsZU9uQ2xp'@; put 'Y2soaC5UQUJMRVVSSSxoLGYpKX0pLFd0KDIsImNsci1pY29uIiwzOCksT2UoMyksaGUoKSxndCg0LFdUdCw2LDMsImNsci10cmVlLW5vZGUiLDUpKDUsWVR0LDQsMywiY2xyLXRyZWUtbm9kZSIsNiksaGUoKX1pZigyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7VHIoImNsci1leHBhbmRlZCIs'@; put 'YS5leHBhbmRlZCksZmkoImNsckV4cGFuZGVkIixhLmV4cGFuZGVkKSxNZSgiY2xyTG9hZGluZyIsYS5sb2FkaW5nQ29sdW1ucyYmIWEuY29sdW1ucyksZmUoKSxNZSgiaWQiLGEuVEFCTEVVUkkpLGZlKDIpLExyKCIgIixhLlRBQkxFTkFNRSwiICIpLGZlKCksTWUoIm5nSWYiLGEuY29sdW1u'@; put 'cyksZmUoKSxNZSgibmdGb3JPZiIsYS5jb2x1bW5zKX19ZnVuY3Rpb24gJFR0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiY2xyLXRyZWUtbm9kZSIsMzIpLEZ0KCJjbGljayIsZnVuY3Rpb24oaCl7d3QoYSk7Y29uc3QgZj1MZSgpLiRpbXBsaWNpdCx2PUxlKCk7cmV0dXJuIEN0'@; put 'KHYudHJlZU5vZGVDbGlja2VkKGgsZix2LmxpYnJhcnlMaXN0KSl9KSxwaSgiY2xyRXhwYW5kZWRDaGFuZ2UiLGZ1bmN0aW9uKGgpe3d0KGEpO2NvbnN0IGY9TGUoKS4kaW1wbGljaXQ7cmV0dXJuIGdpKGYuZXhwYW5kZWQsaCl8fChmLmV4cGFuZGVkPWgpLEN0KGgpfSksZGUoMSwicCIsMzMp'@; put 'LEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKCkuJGltcGxpY2l0LGY9TGUoKTtyZXR1cm4gZi5saWI9aC5MSUJSQVJZSUQsQ3QoZi5saWJyYXJ5T25DbGljayhmLmxpYnx8IiIsaCkpfSksV3QoMiwiY2xyLWljb24iLDM0KSxPZSgzKSxoZSgpLGd0KDQselR0LDYsMywi'@; put 'Y2xyLXRyZWUtbm9kZSIsNSkoNSxHVHQsNiw4LCJjbHItdHJlZS1ub2RlIiwzNSksaGUoKX1pZigyJmMpe2NvbnN0IGE9TGUoKS4kaW1wbGljaXQ7VHIoImNsci1leHBhbmRlZCIsYS5leHBhbmRlZCksZmkoImNsckV4cGFuZGVkIixhLmV4cGFuZGVkKSxNZSgiY2xyTG9hZGluZyIsYS5sb2Fk'@; put 'aW5nVGFibGVzJiYhYS50YWJsZXMpLGZlKDMpLExyKCIgIixhLkxJQlJBUllOQU1FLCIgIiksZmUoKSxNZSgibmdJZiIsYS50YWJsZXMpLGZlKCksTWUoIm5nRm9yT2YiLGEudGFibGVzKX19ZnVuY3Rpb24gS1R0KGMsbCl7aWYoMSZjJiYoYWkoMCksZ3QoMSwkVHQsNiw3LCJjbHItdHJlZS1u'@; put 'b2RlIiwzMSksc2koKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O2ZlKCksTWUoIm5nSWYiLCFhLmhpZGRlbiYmYS5pbkZvcmVncm91bmQpfX1mdW5jdGlvbiBYVHQoYyxsKXsxJmMmJihkZSgwLCJkaXYiLDQyKSgxLCJzcGFuIiw0MyksT2UoMiwiIExvYWRpbmcuLi4gIiksaGUoKSgpKX1m'@; put 'dW5jdGlvbiBxVHQoYyxsKXsxJmMmJihkZSgwLCJkaXYiLDQ0KSxXdCgxLCJjbHItaWNvbiIsNDUpLGRlKDIsInAiLDQ2KSxPZSgzLCIgUGxlYXNlIHNlbGVjdCBhIGNvbHVtbiBvciB0YWJsZSAiKSxoZSgpKCkpfWZ1bmN0aW9uIEpUdChjLGwpe2lmKDEmYyYmKGRlKDAsImgzIiw1NSksT2Uo'@; put 'MSksaGUoKSksMiZjKXtjb25zdCBhPUxlKDMpO2ZlKCksTHIoIiAiLGEuY3VycmVudExpbmVhZ2VQYXRoQ29sdW1uP2EuY3VycmVudExpbmVhZ2VQYXRoTGliVGFibGUrIi4iK2EuY3VycmVudExpbmVhZ2VQYXRoQ29sdW1uOmEuY3VycmVudExpbmVhZ2VQYXRoTGliVGFibGUsIiAiKX19ZnVu'@; put 'Y3Rpb24gUVR0KGMsbCl7aWYoMSZjJiYoZGUoMCwiZGl2Iiw1MyksZ3QoMSxKVHQsMiwxLCJoMyIsNTQpLGhlKCkpLDImYyl7Y29uc3QgYT1MZSgyKTtmZSgpLE1lKCJuZ0lmIiwhYS5jdXJyZW50TGluZWFnZVBhdGhDb2x1bW4mJiFhLmN1cnJlbnRMaW5lYWdlUGF0aExpYlRhYmxlKX19ZnVu'@; put 'Y3Rpb24gZUF0KGMsbCl7aWYoMSZjJiYoZGUoMCwic3BhbiIpLE9lKDEpLGRlKDIsImEiLDU2KSxPZSgzKSxoZSgpLE9lKDQpLGhlKCkpLDImYyl7Y29uc3QgYT1MZSgyKTtmZSgpLExyKCIgIixhLmxpbmVhZ2VUYWJsZU5hbWUuc3BsaXQoIi4iKVswXSwiLiIpLGZlKCksTWUoInJvdXRlckxp'@; put 'bmsiLCIvdmlldy9kYXRhLyIrYS5saW5lYWdlVGFibGVOYW1lKSxmZSgpLFNyKGEubGluZWFnZVRhYmxlTmFtZS5zcGxpdCgiLiIpWzFdKSxmZSgpLExyKCIiLGEubGluZWFnZUNvbHVtbk5hbWUubGVuZ3RoPjA/Ii4iK2EubGluZWFnZUNvbHVtbk5hbWU6IiIsIiAiKX19ZnVuY3Rpb24gdEF0'@; put 'KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiZGl2Iiw2NiksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSg0KS5kb3dubG9hZFBORygpKX0pLE9lKDEsIiBQTkcgIiksaGUoKX19ZnVuY3Rpb24gbkF0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUo'@; put 'MCwiZGl2Iiw2NiksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSg0KS5kb3dubG9hZENTVigpKX0pLE9lKDEsIiBDU1YgIiksaGUoKX19ZnVuY3Rpb24gckF0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiY2xyLWRyb3Bkb3duLW1lbnUiLDY1KSgxLCJk'@; put 'aXYiLDY2KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKDMpLmRvd25sb2FkU1ZHKCkpfSksT2UoMiwiU1ZHIiksaGUoKSxndCgzLHRBdCwyLDAsImRpdiIsNjcpLGRlKDQsImRpdiIsNjYpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUo'@; put 'MykuZG93bmxvYWREb3QoKSl9KSxPZSg1LCJEb3QiKSxoZSgpLGd0KDYsbkF0LDIsMCwiZGl2Iiw2NyksaGUoKX1pZigyJmMpe2NvbnN0IGE9TGUoMyk7ZmUoMyksTWUoIm5nSWYiLCFhLmhlbHBlclNlcnZpY2UuaXNNaWNyb3NvZnQpLGZlKDMpLE1lKCJuZ0lmIixhLmZsYXRkYXRhKX19ZnVu'@; put 'Y3Rpb24gaUF0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiY2xyLWNoZWNrYm94LXdyYXBwZXIiLDY4KSgxLCJpbnB1dCIsNjkpLEZ0KCJjaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKDMpLmdlbmVyYXRlR3JhcGgoKSl9KSxwaSgibmdNb2RlbENoYW5nZSIs'@; put 'ZnVuY3Rpb24oaCl7d3QoYSk7Y29uc3QgZj1MZSgzKTtyZXR1cm4gZ2koZi5yZWZyZXNoQ2FjaGUsaCl8fChmLnJlZnJlc2hDYWNoZT1oKSxDdChoKX0pLGhlKCksZGUoMiwibGFiZWwiKSxPZSgzLCJSZWZyZXNoIENhY2hlIiksaGUoKSgpfWlmKDImYyl7Y29uc3QgYT1MZSgzKTtmZSgpLGZp'@; put 'KCJuZ01vZGVsIixhLnJlZnJlc2hDYWNoZSl9fWZ1bmN0aW9uIGFBdChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImRpdiIsNTcpKDEsImJ1dHRvbiIsNTgpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoMikubGltaXREb3REZXB0aD0hMCl9KSxPZSgy'@; put 'LCIgTGltaXQgZGVwdGggIiksaGUoKSxkZSgzLCJkaXYiLDU5KSg0LCJkaXYiLDYwKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7d3QoYSk7Y29uc3QgaD1MZSgyKTtyZXR1cm4gaC5mb3J3YXJkTGluZWFnZT0hMSxDdChoLnJvdXRlci51cmwuaW5jbHVkZXMoImNvbHVtbiIpP2gub25HZW5lcmF0'@; put 'ZUNsaWNrKCk6aC5vbkdlbmVyYXRlR3JhcGhUYWJsZUNsaWNrKCkpfSksV3QoNSwiaW5wdXQiLDYxKSxkZSg2LCJsYWJlbCIpLE9lKDcsIkJhY2t3YXJkIiksaGUoKSgpLGRlKDgsImRpdiIsNjApLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKDIpO3JldHVybiBoLmZv'@; put 'cndhcmRMaW5lYWdlPSEwLEN0KGgucm91dGVyLnVybC5pbmNsdWRlcygiY29sdW1uIik/aC5vbkdlbmVyYXRlQ2xpY2soKTpoLm9uR2VuZXJhdGVHcmFwaFRhYmxlQ2xpY2soKSl9KSxXdCg5LCJpbnB1dCIsNjEpLGRlKDEwLCJsYWJlbCIpLE9lKDExLCJGb3J3YXJkIiksaGUoKSgpKCksZGUo'@; put 'MTIsImNsci1kcm9wZG93biIsNjIpKDEzLCJidXR0b24iLDYzKSxPZSgxNCwiIERvd25sb2FkICIpLFd0KDE1LCJjbHItaWNvbiIsMjIpLGhlKCksZ3QoMTYsckF0LDcsMiwiY2xyLWRyb3Bkb3duLW1lbnUiLDIzKSxoZSgpLGd0KDE3LGlBdCw0LDEsImNsci1jaGVja2JveC13cmFwcGVyIiw2'@; put 'NCksaGUoKX1pZigyJmMpe2NvbnN0IGE9TGUoMik7ZmUoNSksTWUoImNoZWNrZWQiLCFhLmZvcndhcmRMaW5lYWdlKSxmZSg0KSxNZSgiY2hlY2tlZCIsYS5mb3J3YXJkTGluZWFnZSksZmUoNCksTWUoImRpc2FibGVkIiwhYS5jb2x1bW4mJiFhLnRhYmxlKSxmZSg0KSxNZSgibmdJZiIsYS5j'@; put 'b2x1bW4pfX1mdW5jdGlvbiBzQXQoYyxsKXsxJmMmJihkZSgwLCJzcGFuIiw3MyksT2UoMSwiIExvYWRpbmcuLi4gIiksaGUoKSl9ZnVuY3Rpb24gb0F0KGMsbCl7MSZjJiZXdCgwLCJzcGFuIiw0Myl9ZnVuY3Rpb24gbEF0KGMsbCl7aWYoMSZjJiYoZGUoMCwiZGl2Iiw3NCkoMSwiZGl2Iiw3'@; put 'NSksZ3QoMixvQXQsMSwwLCJzcGFuIiw3NiksaGUoKSxXdCgzLCJkaXYiLDc3KSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoMyk7ZmUoMiksTWUoIm5nSWYiLGEuZ3JhcGhSZW5kZXJpbmcpfX1mdW5jdGlvbiBjQXQoYyxsKXtpZigxJmMmJihkZSgwLCJkaXYiKSgxLCJkaXYiLDcwKSxndCgyLHNB'@; put 'dCwyLDAsInNwYW4iLDcxKSgzLGxBdCw0LDEsImRpdiIsNzIpLGhlKCkoKSksMiZjKXtjb25zdCBhPUxlKDIpO1RyKCJtdC0yIixhLnRhYmxlRmxhZyksZmUoMiksTWUoIm5nSWYiLGEuZ3JhcGhMb2FkaW5nKSxmZSgpLE1lKCJuZ0lmIiwhYS5ncmFwaExvYWRpbmcpfX1mdW5jdGlvbiB1QXQo'@; put 'YyxsKXtpZigxJmMmJihhaSgwKSxndCgxLFFUdCwyLDEsImRpdiIsNDcpLGRlKDIsImRpdiIsNDgpKDMsInNlY3Rpb24iLDQ5KSg0LCJkaXYiLDUwKSxndCg1LGVBdCw1LDQsInNwYW4iLDExKSxoZSgpLGd0KDYsYUF0LDE4LDQsImRpdiIsNTEpLGhlKCksZ3QoNyxjQXQsNCw0LCJkaXYiLDUy'@; put 'KSxoZSgpLHNpKCkpLDImYyl7Y29uc3QgYT1MZSgpO2ZlKCksTWUoIm5nSWYiLCFhLmdyYXBoQ29udGFpbmVyKSxmZSg0KSxNZSgibmdJZiIsYS5saW5lYWdlVGFibGVOYW1lLmxlbmd0aD4wKSxmZSgpLE1lKCJuZ0lmIixhLmdyYXBoQ29udGFpbmVyKSxmZSgpLE1lKCJuZ0lmIixhLmdyYXBo'@; put 'Q29udGFpbmVyKX19ZnVuY3Rpb24gZEF0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiZGl2Iiw2NiksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgyKS5yZW5kZXJUb0Rvd25sb2FkKCJQTkciKSl9KSxPZSgxLCIgUE5HICIpLGhlKCl9fWZ1bmN0aW9u'@; put 'IGhBdChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImNsci1kcm9wZG93bi1tZW51Iiw2NSkoMSwiZGl2Iiw2NiksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgpLnJlbmRlclRvRG93bmxvYWQoIlNWRyIpKX0pLE9lKDIsIlNWRyIpLGhlKCksZ3QoMyxk'@; put 'QXQsMiwwLCJkaXYiLDY3KSxkZSg0LCJkaXYiLDY2KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7d3QoYSk7Y29uc3QgaD1MZSgpO3JldHVybiBoLmRvd25sb2FkRG90KCksQ3QoaC5jYW5jZWxSZW5kZXJpbmdHcmFwaCgpKX0pLE9lKDUsIiBEb3QgIiksaGUoKSgpfWlmKDImYyl7Y29uc3QgYT1M'@; put 'ZSgpO2ZlKDMpLE1lKCJuZ0lmIiwhYS5oZWxwZXJTZXJ2aWNlLmlzTWljcm9zb2Z0KX19Y29uc3QgZkF0PWIoOTc1ODYpO2xldCBHTj0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYsdixNLEksRyl7dGhpcy5saWNlbmNlU2VydmljZT1hLHRoaXMuc2FzU2VydmljZT1kLHRoaXMu'@; put 'cm91dGU9aCx0aGlzLnJvdXRlcj1mLHRoaXMubG9jYXRpb249dix0aGlzLmV2ZW50U2VydmljZT1NLHRoaXMubG9nZ2VyU2VydmljZT1JLHRoaXMuaGVscGVyU2VydmljZT1HLHRoaXMuc3dpdGNoRmxhZz0hMSx0aGlzLnRhYmxlRmxhZz0hMCx0aGlzLmZvcndhcmRMaW5lYWdlPSExLHRoaXMu'@; put 'ZmxhdGRhdGE9W10sdGhpcy5ncmFwaExvYWRpbmc9ITEsdGhpcy5ncmFwaFJlbmRlcmluZz0hMSx0aGlzLmdyYXBoQ29udGFpbmVyPSExLHRoaXMudml6SW5wdXQ9IiIsdGhpcy5saWJyYXJpZXNQYWdpbmc9ITEsdGhpcy5saWJyYXJ5VGFibGVzUmVmPSIiLHRoaXMubGlicmFyaWVzU2VhcmNo'@; put 'PSIiLHRoaXMudGFibGVDb2x1bW5zUmVmPSIiLHRoaXMubGluZWFnZVRhYmxlTmFtZT0iIix0aGlzLmxpbmVhZ2VDb2x1bW5OYW1lPSIiLHRoaXMubGliPW51bGwsdGhpcy50YWJsZURpc2FibGU9ITEsdGhpcy5yZWZyZXNoQ2FjaGU9ITEsdGhpcy5jdXJyZW50TGluZWFnZVBhdGhMaWJUYWJs'@; put 'ZT0iIix0aGlzLmN1cnJlbnRMaW5lYWdlUGF0aENvbHVtbj0iIix0aGlzLmxhcmdlRG90RmlsZUxpbmVzPW51bGwsdGhpcy5sYXJnZURvdEZpbGVMaW1pdD0xZTMsdGhpcy5saW1pdERvdERlcHRoPSExLHRoaXMucGVuZGluZ1JlbmRlckRvd25sb2FkPW51bGwsdGhpcy5kZWJvdW5jZVRpbWU9'@; put 'MjAwfXNob3dUYWJsZVNlbGVjdCgpe3RoaXMudGFibGVGbGFnPSF0aGlzLnRhYmxlRmxhZ310YWJsZU9uQ2xpY2soYSxkLGgpe3ZhciBmPXRoaXM7cmV0dXJuIFEoZnVuY3Rpb24qKHYsTSxJLEc9ITEpe00uY29sdW1ucz8oTS5leHBhbmRlZD0hTS5leHBhbmRlZCwhMD09PU0uZXhwYW5kZWQm'@; put 'JihmLnRhYmxlPXYsR3x8Zi5vbkdlbmVyYXRlR3JhcGhUYWJsZUNsaWNrKCkpKTooTS5leHBhbmRlZD0hTS5leHBhbmRlZCxNLmxvYWRpbmdDb2x1bW5zPSEwLGYudGFibGU9dixmLmN1cnJlbnRMaW5lYWdlUGF0aExpYlRhYmxlPU0uTElCTkFNRSsiLiIrTS5UQUJMRU5BTUUseWllbGQgZi5z'@; put 'ZWxlY3RUYWJsZSh2LE0pLEd8fGYub25HZW5lcmF0ZUdyYXBoVGFibGVDbGljaygpKSxmLmNvbGxhcHNlVHJlZUl0ZW1zKEkudGFibGVzLE0pfSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfXNlbGVjdFRhYmxlKGEsZCl7dmFyIGg9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXtoLmNvbHVtbnNM'@; put 'aXN0PVtdO2xldCBmPXtTQVNDb250cm9sVGFibGU6W3t0YWJsZXVyaTphfV19O3lpZWxkIGguc2FzU2VydmljZS5yZXF1ZXN0KCJsaW5lYWdlL2dldG1ldGFjb2xzIixmKS50aGVuKHY9PntoLmNvbHVtbnNMaXN0PXYuYWRhcHRlclJlc3BvbnNlLm1ldGFjb2xzLGguY29sdW1uc0xpc3QmJmgu'@; put 'Y29sdW1uc0xpc3QubGVuZ3RoPjAmJihkLmNvbHVtbnM9aC5jb2x1bW5zTGlzdCxkLmV4cGFuZGVkPSEwLGQubG9hZGluZ0NvbHVtbnM9ITEpfSkuY2F0Y2godj0+diksaC5zZXRHbG9iYWxEYXRhKCl9KSgpfWxvYWRNb3JlTGlicmFyaWVzKCl7dGhpcy5saWJyYXJpZXNQYWdpbmd8fCh0aGlz'@; put 'LmxpYnJhcmllc1BhZ2luZz0hMCx0aGlzLmhlbHBlclNlcnZpY2UuZGlzcGxheUxpYnJhcmllcyh0aGlzLmxpYnJhcnlMaXN0LCEwKSx0aGlzLmxpYnJhcmllc1BhZ2luZz0hMSl9Y29sbGFwc2VUcmVlSXRlbXMoYSxkKXthLmZvckVhY2goaD0+e0pTT04uc3RyaW5naWZ5KGgpIT09SlNPTi5z'@; put 'dHJpbmdpZnkoZCkmJihoLmV4cGFuZGVkPSExKX0pfXRyZWVOb2RlQ2xpY2tlZChhLGQsaCl7IkNvbGxhcHNlIj09PWEudGFyZ2V0LnRpdGxlJiZ0aGlzLmNvbGxhcHNlVHJlZUl0ZW1zKGgsZCl9bGlicmFyeU9uQ2xpY2soYSxkKXt2YXIgaD10aGlzO3JldHVybiBRKGZ1bmN0aW9uKigpe2Qu'@; put 'aW5Gb3JlZ3JvdW5kPSEwLGQudGFibGVzP2QuZXhwYW5kZWQ9IWQuZXhwYW5kZWQ6KGQubG9hZGluZ1RhYmxlcz0hMCx5aWVsZCBoLnNlbGVjdExpYnJhcnkoYSxkKSksaC5jb2xsYXBzZVRyZWVJdGVtcyhoLmxpYnJhcnlMaXN0LGQpfSkoKX1zZWxlY3RMaWJyYXJ5KGEsZCl7dmFyIGg9dGhp'@; put 'cztyZXR1cm4gUShmdW5jdGlvbiooKXtoLnRhYmxlc0xpc3Q9W10saC5jb2x1bW5zTGlzdD1bXTtsZXQgZj17U0FTQ29udHJvbFRhYmxlOlt7bGlidXJpOmF9XX07eWllbGQgaC5zYXNTZXJ2aWNlLnJlcXVlc3QoImxpbmVhZ2UvZ2V0bWV0YXRhYmxlcyIsZikudGhlbih2PT57aC50YWJsZXNM'@; put 'aXN0PXYuYWRhcHRlclJlc3BvbnNlLm1ldGF0YWJsZXMsaC50YWJsZXNMaXN0JiZoLnRhYmxlc0xpc3QubGVuZ3RoPjAmJihkLnRhYmxlcz1oLnRhYmxlc0xpc3QsZC5leHBhbmRlZD0hMCksaC5zZXRHbG9iYWxEYXRhKCl9KS5jYXRjaCh2PT52KSxkLmxvYWRpbmdUYWJsZXM9ITF9KSgpfWNv'@; put 'bHVtbk9uQ2xpY2soYSxkLGgpe3RoaXMubGliPWQuTElCUkFSWUlELHRoaXMudGFibGU9aC5UQUJMRVVSSSx0aGlzLmNvbHVtbj1hLkNPTFVSSSx0aGlzLnNldEdsb2JhbERhdGEoKSx0aGlzLm9uR2VuZXJhdGVDbGljaygpfXRyZWVPbkZpbHRlcihhLGQpe3RoaXMuaGVscGVyU2VydmljZS50'@; put 'cmVlT25GaWx0ZXIoYSxkKX1saWJyYXJ5T25GaWx0ZXIoKXt0aGlzLmhlbHBlclNlcnZpY2UubGlicmFyeU9uRmlsdGVyKHRoaXMubGlicmFyeUxpc3QsdGhpcy5saWJyYXJpZXNTZWFyY2gsIkxJQlJBUllOQU1FIiksSm4ubGluZWFnZS5saWJyYXJpZXNTZWFyY2g9dGhpcy5saWJyYXJpZXNT'@; put 'ZWFyY2h9bGliQ29sdW1uQWN0aXZlKGEpe2lmKCF0aGlzLmNvbHVtbilyZXR1cm4hMTtsZXQgZD1hLnNwbGl0KCJcXCIpLGg9dGhpcy5jb2x1bW4uc3BsaXQoIlxcIik7cmV0dXJuIGRbZC5sZW5ndGgtMV09PWhbaC5sZW5ndGgtMV19c2V0R2xvYmFsRGF0YSgpe0puLmxpbmVhZ2UubGlicmFy'@; put 'eUxpc3Q9dGhpcy5saWJyYXJ5TGlzdCxKbi5saW5lYWdlLnRhYmxlc0xpc3Q9dGhpcy50YWJsZXNMaXN0LEpuLmxpbmVhZ2UuY29sdW1uc0xpc3Q9dGhpcy5jb2x1bW5zTGlzdCxKbi5saW5lYWdlLmxpYj10aGlzLmxpYixKbi5saW5lYWdlLnRhYmxlPXRoaXMudGFibGUsSm4ubGluZWFnZS5j'@; put 'b2x1bW49dGhpcy5jb2x1bW59bG9hZEdsb2JhbERhdGEoKXt0aGlzLmxpYnJhcnlMaXN0PUpuLmxpbmVhZ2UubGlicmFyeUxpc3QsdGhpcy50YWJsZXNMaXN0PUpuLmxpbmVhZ2UudGFibGVzTGlzdCx0aGlzLmNvbHVtbnNMaXN0PUpuLmxpbmVhZ2UuY29sdW1uc0xpc3QsdGhpcy5saWJyYXJp'@; put 'ZXNTZWFyY2g9Sm4ubGluZWFnZS5saWJyYXJpZXNTZWFyY2h9cmVzdWJtaXRXaXRoTWF4RGVwdGgoYSl7bGV0IGQ7dGhpcy5jYW5jZWxSZW5kZXJpbmdHcmFwaCgpLGEmJihkPXttYXhfZGVwdGg6YX0pLHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLHtyZWxhdGl2ZVRvOnRoaXMucm91dGUscXVl'@; put 'cnlQYXJhbXM6ZH0pfW5nT25Jbml0KCl7Sm4udmlld2VyLmN1cnJlbnRTZWxlY3Rpb249InZpZXcvbGluZWFnZSI7bGV0IGE9dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMucmVsb2FkO2lmKHZvaWQgMCE9PWEpe2xldCBkPXRoaXMucm91dGVyLnVybDsicmVsb2FkIj09PWE/bG9jYWxTdG9y'@; put 'YWdlLmdldEl0ZW0oImZpcnN0TG9hZCIpPyhsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiZmlyc3RMb2FkIiksdGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUoZC5zbGljZSgwLGQubGFzdEluZGV4T2YoIi8iKSkpKToobG9jYWxTdG9yYWdlLmZpcnN0TG9hZD0hMCxzZXRUaW1lb3V0KGZ1bmN0'@; put 'aW9uKCl7d2luZG93LmxvY2F0aW9uLnJlbG9hZCgpfSwyZTMpKTp0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZShkLnNsaWNlKDAsZC5sYXN0SW5kZXhPZigiLyIpKSl9dGhpcy5pbml0RGF0YSgpfWluaXREYXRhKCl7dmFyIGE9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXtKbi5saW5lYWdl'@; put 'LmxpYnJhcnlMaXN0JiYoSm4ubGluZWFnZS5saWJyYXJ5TGlzdC5sZW5ndGg+MD9hLmxvYWRHbG9iYWxEYXRhKCk6eWllbGQgYS5zYXNTZXJ2aWNlLnJlcXVlc3QoInB1YmxpYy92aWV3bGlicyIsbnVsbCkudGhlbih2PT57YS5saWJyYXJ5TGlzdD12LmFkYXB0ZXJSZXNwb25zZS5zYXNsaWJz'@; put 'LGEuaGVscGVyU2VydmljZS5kaXNwbGF5TGlicmFyaWVzKGEubGlicmFyeUxpc3QpLGEubGlicmFyeUxpc3QmJmEubGlicmFyeUxpc3QubGVuZ3RoPjAmJihhLmxpYj1hLmxpYnJhcnlMaXN0WzBdLkxJQlJBUllJRCksYS5zZXRHbG9iYWxEYXRhKCl9KS5jYXRjaCh2PT52KSxhLnJvdXRlLnF1'@; put 'ZXJ5UGFyYW1zLnN1YnNjcmliZSh2PT57YS5vblJvdXRlQ2hhbmdlKCl9KSxhLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUodj0+e2Eub25Sb3V0ZUNoYW5nZSgpfSkpfSkoKX1vblJvdXRlQ2hhbmdlKCl7Y2xlYXJUaW1lb3V0KHRoaXMuZGVib3VuY2VUaW1lb3V0KSx0aGlzLmRlYm91bmNlVGlt'@; put 'ZW91dD1zZXRUaW1lb3V0KCgpPT57Y29uc3QgYT10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5jb2x1cmksZD10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5kaXJlY3Rpb24saD10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy50YWJsZWlkLGY9dGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVy'@; put 'eVBhcmFtcy5tYXhfZGVwdGg7YSYmZCYmKHRoaXMuZm9yd2FyZExpbmVhZ2U9IkZPUldBUkQiPT09ZCx0aGlzLmNvbHVtbj1hLHRoaXMuZ2VuZXJhdGVHcmFwaChhLGQsZikpLCF0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoImNvbHVtbiIpJiZoJiZkJiYodGhpcy5mb3J3YXJkTGluZWFnZT0i'@; put 'Rk9SV0FSRCI9PT1kLHRoaXMudGFibGU9aCx0aGlzLmdlbmVyYXRlR3JhcGhUYWJsZUxldmVsKGgsZCxmKSl9LHRoaXMuZGVib3VuY2VUaW1lKX1uZ0FmdGVyQ29udGVudEluaXQoKXt9ZGlyZWN0aW9uVGV4dCgpe3JldHVybiB0aGlzLmZvcndhcmRMaW5lYWdlPyJGT1JXQVJEIjoiUkVWRVJT'@; put 'RSJ9b25HZW5lcmF0ZUNsaWNrKCl7bGV0IGE9dGhpcy5kaXJlY3Rpb25UZXh0KCksZD10aGlzLmNvbHVtbj90aGlzLmNvbHVtbi5zdWJzdHJpbmcodGhpcy5jb2x1bW4uaW5kZXhPZigiXFwiKSsxKTpudWxsO3RoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi92aWV3L2xpbmVhZ2UvY29sdW1u'@; put 'LyIrZCsiLyIrYSl9b25HZW5lcmF0ZUdyYXBoVGFibGVDbGljaygpe2xldCBhPXRoaXMuZGlyZWN0aW9uVGV4dCgpLGQ9dGhpcy50YWJsZS5pbmNsdWRlcygiXFwiKT90aGlzLnRhYmxlLnNwbGl0KCJcXCIpWzFdOnRoaXMudGFibGU7dGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL3ZpZXcv'@; put 'bGluZWFnZS8iK2QrIi8iK2EpfWdlbmVyYXRlR3JhcGhUYWJsZUxldmVsKGEsZCxoKXt2YXIgZj10aGlzO3JldHVybiBRKGZ1bmN0aW9uKigpe2xldCB2PXtTQVNDb250cm9sVGFibGU6W3t0YWJsZV9pZDphLGRpcmVjdGlvbjpkfHxmLmRpcmVjdGlvblRleHQoKX1dfTtyZXR1cm4idW5kZWZp'@; put 'bmVkIj09PXYuU0FTQ29udHJvbFRhYmxlWzBdLnRhYmxlX2lkJiZmLmV2ZW50U2VydmljZS5zaG93QWJvcnRNb2RhbCgiZ2VuZXJhdGVHcmFwaFRhYmxlTGV2ZWwoKSIsInRhYmxlX2lkIGlzIHVuZGVmaW5lZC4iLHZvaWQgMCwiRnJvbnRlbmQgZXJyb3IiKSxoJiYodi5TQVNDb250cm9sVGFi'@; put 'bGVbMF0ubWF4X2RlcHRoPWgpLGYudGFibGVGbGFnPSExLGYuc3dpdGNoRmxhZz0hMCxmLmdyYXBoQ29udGFpbmVyPSEwLGYuZ3JhcGhMb2FkaW5nPSEwLGYudml6SW5wdXQ9IiIsbmV3IFByb21pc2UoKE0sSSk9PntmLnNhc1NlcnZpY2UucmVxdWVzdCgibGluZWFnZS9mZXRjaHRhYmxlbGlu'@; put 'ZWFnZSIsdikudGhlbihmdW5jdGlvbigpe3ZhciBHPVEoZnVuY3Rpb24qKHJlKXtpZihyZS5hZGFwdGVyUmVzcG9uc2UuZmxhdGRhdGEubGVuZ3RoPjAmJmYubGljZW5jZVNlcnZpY2UuY2hlY2tMaW5lYWdlTGltaXQoKSlyZXR1cm4gZi5ldmVudFNlcnZpY2Uuc2hvd0luZm9Nb2RhbCgiTm90'@; put 'aWNlIiwiWW91IGhhdmUgcmVhY2hlZCBkYWlseSBtYXhpbXVtIG9mIGxpbmVhZ2UgZGlhZ3JhbSByZW5kZXJpbmdzLiBUbyB1bmxvY2sgYWRkaXRpb25hbCBkaWFncmFtcywgY29udGFjdCBzdXBwb3J0QGRhdGFjb250cm9sbGVyLmlvIiksdm9pZCBmLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIv'@; put 'dmlldy9saW5lYWdlIik7aWYoInN0cmluZyI9PXR5cGVvZiByZSlyZXR1cm4gZi52aXpJbnB1dD0iZGlncmFwaCBHIHtTQVMgRXJyb3J9Iix2b2lkIGYuYnVpbGRHcmFwaCgpO2YubGluZWFnZVRhYmxlTmFtZT1yZS5hZGFwdGVyUmVzcG9uc2UuaW5mb1swXS5MSUJSRUYrIi4iK3JlLmFkYXB0'@; put 'ZXJSZXNwb25zZS5pbmZvWzBdLlRBQkxFTkFNRTtsZXQgdWU9cmUuYWRhcHRlclJlc3BvbnNlLmZpbmFsZmluYWwseWU9IiI7Zm9yKGxldCBFZT0wO0VlPHVlLmxlbmd0aDtFZSsrKXllKz11bmVzY2FwZSh1ZVtFZV0uTElORSkrIlxuIjtpZihmLmZsYXRkYXRhPXJlLmFkYXB0ZXJSZXNwb25z'@; put 'ZS5mbGF0ZGF0YSxmLmxpYnJhcnlMaXN0KXtsZXQgRWU9Zi5saWJyYXJ5TGlzdC5maW5kKEJlPT5yZS5hZGFwdGVyUmVzcG9uc2UuaW5mb1swXS5MSUJVUkkudG9VcHBlckNhc2UoKS5pbmNsdWRlcyhCZS5MSUJSQVJZSUQudG9VcHBlckNhc2UoKSkpO2lmKEVlKXtsZXQgQmU7aWYoeWllbGQg'@; put 'Zi5saWJyYXJ5T25DbGljayhFZS5MSUJSQVJZSUQsRWUpLEVlLnRhYmxlcyYmKEJlPUVlLnRhYmxlcy5maW5kKEdlPT5HZS5UQUJMRVVSSS50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKHJlLmFkYXB0ZXJSZXNwb25zZS5pbmZvWzBdLlRBQkxFSUQudG9VcHBlckNhc2UoKSkpLEJlKSl7aWYoZi50'@; put 'YWJsZT1CZS5UQUJMRVVSSSxmLnRhYmxlKXtjb25zdCBHZT1mLnRhYmxlLnJlcGxhY2UoIlxcIiwiXFxcXCIpO3NldFRpbWVvdXQoKCk9PntsZXQgc3Q9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgW2lkPScke0dlfSddYCk7c3QmJnN0LnNjcm9sbEludG9WaWV3KCl9LDFlMyl9Zi50YWJsZU9u'@; put 'Q2xpY2soQmUuVEFCTEVVUkksQmUsRWUsdm9pZCAwIT09ZCl9RWUmJihFZS5leHBhbmRlZD0hMCksQmUmJihCZS5leHBhbmRlZD0hMCl9fWYudml6SW5wdXQ9eWV8fCJkaWdyYXBoIEcge05vIExpbmVhZ2UgQXZhaWxhYmxlfSIsZi52aXpJbnB1dD1mLnZpeklucHV0LnJlcGxhY2UoL1xzZHM6'@; put 'L2csIlxuZHM6IikucmVwbGFjZSgvXHNcbi9nLCJcbiIpLGYuaWRsb29rdXA9cmUuYWRhcHRlclJlc3BvbnNlLmlkbG9va3VwLHJlLmFkYXB0ZXJSZXNwb25zZS5maW5hbGZpbmFsLmxlbmd0aD5mLmxhcmdlRG90RmlsZUxpbWl0P2YubGFyZ2VEb3RGaWxlTGluZXM9cmUuYWRhcHRlclJlc3Bv'@; put 'bnNlLmZpbmFsZmluYWwubGVuZ3RoOmYuYnVpbGRHcmFwaCgpLE0oKX0pO3JldHVybiBmdW5jdGlvbihyZSl7cmV0dXJuIEcuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSkuY2F0Y2goRz0+e2YuZ3JhcGhMb2FkaW5nPSExLGYuZ3JhcGhDb250YWluZXI9ITF9KX0pfSkoKX1jYW5jZWxSZW5k'@; put 'ZXJpbmdHcmFwaCgpe3RoaXMudml6SW5wdXQ9ImRpZ3JhcGggRyB7Tm8gTGluZWFnZSBBdmFpbGFibGV9Iix0aGlzLmxhcmdlRG90RmlsZUxpbmVzPW51bGwsdGhpcy5idWlsZEdyYXBoKCl9Y29udGludWVSZW5kZXJpbmdHcmFwaCgpe3RoaXMubGFyZ2VEb3RGaWxlTGluZXM9bnVsbCx0aGlz'@; put 'LmJ1aWxkR3JhcGgoKCk9PntpZihudWxsIT09dGhpcy5wZW5kaW5nUmVuZGVyRG93bmxvYWQpe3N3aXRjaCh0aGlzLnBlbmRpbmdSZW5kZXJEb3dubG9hZCl7Y2FzZSJQTkciOnRoaXMuZG93bmxvYWRQTkcoKTticmVhaztjYXNlIlNWRyI6dGhpcy5kb3dubG9hZFNWRygpfXRoaXMucGVuZGlu'@; put 'Z1JlbmRlckRvd25sb2FkPW51bGwsdGhpcy52aXpJbnB1dD0iZGlncmFwaCBHIHtObyBMaW5lYWdlIEF2YWlsYWJsZX0iLHRoaXMuYnVpbGRHcmFwaCgpfX0pfXJlbmRlclRvRG93bmxvYWQoYSl7c3dpdGNoKGEpe2Nhc2UiUE5HIjp0aGlzLnBlbmRpbmdSZW5kZXJEb3dubG9hZD0iUE5HIix0'@; put 'aGlzLmNvbnRpbnVlUmVuZGVyaW5nR3JhcGgoKTticmVhaztjYXNlIlNWRyI6dGhpcy5wZW5kaW5nUmVuZGVyRG93bmxvYWQ9IlNWRyIsdGhpcy5jb250aW51ZVJlbmRlcmluZ0dyYXBoKCl9fW1ha2VHcmFwaExpbmthYmxlKGEpe2xldCBkPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiNn'@; put 'cmFwaCAubm9kZSIpO2ZvcihsZXQgaCBvZiBkKXtsZXQgTSxmPWgucXVlcnlTZWxlY3RvcigidGl0bGUiKS5pbm5lckhUTUwsdj1hLmZpbmQoST0+SS5NRVRBSUQ9PT1mKTt2JiYoTT0iVEFCTEUiPT09di5NRVRBVFlQRT8iL3ZpZXcvZGF0YS8iK3YuTUVUQU5BTUU6Ii92aWV3L21ldGFkYXRh'@; put 'L29iamVjdC8iK3YuTUVUQUlELGguY2xhc3NMaXN0LmFkZCgiY3Vyc29yLXBvaW50ZXIiKSxoLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixJPT57dGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChNKX0pKX19Z2VuZXJhdGVHcmFwaChhLGQsaCl7dmFyIGY9dGhpcztyZXR1cm4gUShmdW5jdGlv'@; put 'biooKXtsZXQgdj17U0FTQ29udHJvbFRhYmxlOlt7Y29sdXJpOmF8fGYuY29sdW1uLGRpcmVjdGlvbjpkfHxmLmRpcmVjdGlvblRleHQoKSxyZWZyZXNoOmYucmVmcmVzaENhY2hlPzE6MH1dfTtyZXR1cm4idW5kZWZpbmVkIj09PXYuU0FTQ29udHJvbFRhYmxlWzBdLmNvbHVyaSYmZi5ldmVu'@; put 'dFNlcnZpY2Uuc2hvd0Fib3J0TW9kYWwoImdlbmVyYXRlR3JhcGgoKSIsImNvbHVyaSBpcyB1bmRlZmluZWQuIix2b2lkIDAsIkZyb250ZW5kIGVycm9yIiksaCYmKHYuU0FTQ29udHJvbFRhYmxlWzBdLm1heF9kZXB0aD1oKSxmLnRhYmxlRmxhZz0hMSxmLnN3aXRjaEZsYWc9ITAsZi5ncmFw'@; put 'aENvbnRhaW5lcj0hMCxmLmdyYXBoTG9hZGluZz0hMCxmLnZpeklucHV0PSIiLG5ldyBQcm9taXNlKChNLEkpPT57Zi5zYXNTZXJ2aWNlLnJlcXVlc3QoImxpbmVhZ2UvZmV0Y2hjb2xsaW5lYWdlIix2KS50aGVuKGZ1bmN0aW9uKCl7dmFyIEc9UShmdW5jdGlvbioocmUpe2lmKHJlLmFkYXB0'@; put 'ZXJSZXNwb25zZS5mbGF0ZGF0YS5sZW5ndGg+MCYmZi5saWNlbmNlU2VydmljZS5jaGVja0xpbmVhZ2VMaW1pdCgpKXJldHVybiBmLmV2ZW50U2VydmljZS5zaG93SW5mb01vZGFsKCJOb3RpY2UiLCJZb3UgaGF2ZSByZWFjaGVkIGRhaWx5IG1heGltdW0gb2YgbGluZWFnZSBkaWFncmFtIHJl'@; put 'bmRlcmluZ3MuIFRvIHVubG9jayBhZGRpdGlvbmFsIGRpYWdyYW1zLCBjb250YWN0IHN1cHBvcnRAZGF0YWNvbnRyb2xsZXIuaW8iKSx2b2lkIGYucm91dGVyLm5hdmlnYXRlQnlVcmwoIi92aWV3L2xpbmVhZ2UiKTtpZigic3RyaW5nIj09dHlwZW9mIHJlLmFkYXB0ZXJSZXNwb25zZSlyZXR1'@; put 'cm4gZi52aXpJbnB1dD0iZGlncmFwaCBHIHtTQVMgRXJyb3J9Iix2b2lkIGYuYnVpbGRHcmFwaCgpO2YubGluZWFnZVRhYmxlTmFtZT1yZS5hZGFwdGVyUmVzcG9uc2UuaW5mb1swXS5MSUJSRUYrIi4iK3JlLmFkYXB0ZXJSZXNwb25zZS5pbmZvWzBdLlRBQk5BTUUsZi5saW5lYWdlQ29sdW1u'@; put 'TmFtZT1yZS5hZGFwdGVyUmVzcG9uc2UuaW5mb1swXS5DT0xOQU1FLGYuaWRsb29rdXA9cmUuYWRhcHRlclJlc3BvbnNlLmlkbG9va3VwO2xldCB1ZT1yZS5hZGFwdGVyUmVzcG9uc2UuZnJvbXNhcyx5ZT0iIjtmb3IobGV0IEVlPTA7RWU8dWUubGVuZ3RoO0VlKyspeWUrPXVuZXNjYXBlKHVl'@; put 'W0VlXS5TVFJJTkcpKyJcbiI7aWYoZi52aXpJbnB1dD15ZXx8ImRpZ3JhcGggRyB7Tm8gTGluZWFnZSBBdmFpbGFibGV9IixmLnZpeklucHV0PWYudml6SW5wdXQucmVwbGFjZSgvXHNkczovZywiXG5kczoiKS5yZXBsYWNlKC9cc1xuL2csIlxuIiksZi5mbGF0ZGF0YT1yZS5hZGFwdGVyUmVz'@; put 'cG9uc2UuZmxhdGRhdGEsZi5saWJyYXJ5TGlzdCl7bGV0IEJlLEVlPWYubGlicmFyeUxpc3QuZmluZChHZT0+cmUuYWRhcHRlclJlc3BvbnNlLmluZm9bMF0/LkxJQlVSST8udG9VcHBlckNhc2UoKT8uaW5jbHVkZXMoR2U/LkxJQlJBUllJRD8udG9VcHBlckNhc2UoKSkpO0VlJiYoeWllbGQg'@; put 'Zi5saWJyYXJ5T25DbGljayhFZS5MSUJSQVJZSUQsRWUpLEVlLnRhYmxlcyYmKEJlPUVlLnRhYmxlcy5maW5kKEdlPT5HZS5UQUJMRVVSST09PXJlLmFkYXB0ZXJSZXNwb25zZS5pbmZvWzBdLlRBQlVSSSksQmUmJmYudGFibGVPbkNsaWNrKEJlLlRBQkxFVVJJLEJlLEVlLCEwKS50aGVuKCgp'@; put 'PT57bGV0IEdlPUJlLlRBQkxFVVJJO2lmKEdlKXtjb25zdCBzdD1HZS5yZXBsYWNlKCJcXCIsIlxcXFwiKTtsZXQgcHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgW2lkPScke3N0fSddYCk7c2V0VGltZW91dCgoKT0+e3B0JiYoZi5sb2dnZXJTZXJ2aWNlLmxvZygibGlicmFyeVRvU2VsZWN0'@; put 'IixFZSkscHQuc2Nyb2xsSW50b1ZpZXcoKSl9LDFlMyl9fSkpLEVlJiYoRWUuZXhwYW5kZWQ9ITApLEJlJiYoQmUuZXhwYW5kZWQ9ITApKX1yZS5hZGFwdGVyUmVzcG9uc2UuZnJvbXNhcy5sZW5ndGg+Zi5sYXJnZURvdEZpbGVMaW1pdD9mLmxhcmdlRG90RmlsZUxpbmVzPXJlLmFkYXB0ZXJS'@; put 'ZXNwb25zZS5mcm9tc2FzLmxlbmd0aDpmLmJ1aWxkR3JhcGgoKSxNKCl9KTtyZXR1cm4gZnVuY3Rpb24ocmUpe3JldHVybiBHLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpLmNhdGNoKEc9PntmLmdyYXBoTG9hZGluZz0hMSxmLmdyYXBoQ29udGFpbmVyPSExfSl9KX0pKCl9Z2V0U1ZHVVJM'@; put 'KCl7bGV0IGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyYXBoIiksZD1uZXcgWE1MU2VyaWFsaXplcixoPW5ldyBCbG9iKFtkLnNlcmlhbGl6ZVRvU3RyaW5nKGEpXSx7dHlwZToiaW1hZ2Uvc3ZnK3htbCJ9KTtyZXR1cm4gVVJMLmNyZWF0ZU9iamVjdFVSTChoKX1nZXRTVkdCbG9iKCl7'@; put 'bGV0IGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyYXBoIiksZD1uZXcgWE1MU2VyaWFsaXplcjtyZXR1cm4gbmV3IEJsb2IoW2Quc2VyaWFsaXplVG9TdHJpbmcoYSldLHt0eXBlOiJpbWFnZS9zdmcreG1sIn0pfWRvd25sb2FkU1ZHKCl7aWYoWU4oIiNncmFwaCIpLnJlc2V0Wm9vbSgp'@; put 'LG5hdmlnYXRvci5hcHBWZXJzaW9uLnRvU3RyaW5nKCkuaW5kZXhPZigiLk5FVCIpPjApd2luZG93Lm5hdmlnYXRvci5tc1NhdmVCbG9iKHRoaXMuZ2V0U1ZHQmxvYigpLHRoaXMuY29uc3RydWN0TmFtZSgic3ZnIikpO2Vsc2V7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2Eu'@; put 'aHJlZj10aGlzLmdldFNWR1VSTCgpLGEuZG93bmxvYWQ9dGhpcy5jb25zdHJ1Y3ROYW1lKCJzdmciKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpLGEuY2xpY2soKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpfX1kb3dubG9hZFBORygpe3ZhciBhPXRoaXM7cmV0dXJuIFEoZnVu'@; put 'Y3Rpb24qKCl7WU4oIiNncmFwaCIpLnJlc2V0Wm9vbSgpLEZUdC5zYXZlU3ZnQXNQbmcoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2dyYXBoIHN2ZyIpLGEuY29uc3RydWN0TmFtZSgicG5nIikpfSkoKX1kb3dubG9hZENTVigpe2xldCBhPXRoaXMuZmxhdGRhdGE7Y29uc3QgZD0ocmUsdWUp'@; put 'PT5udWxsPT09dWU/IiI6dWUsaD1PYmplY3Qua2V5cyhhWzBdKTtsZXQgZj1hLm1hcChyZT0+aC5tYXAodWU9PkpTT04uc3RyaW5naWZ5KHJlW3VlXSxkKSkuam9pbigiLCIpKTtmLnVuc2hpZnQoaC5qb2luKCIsIikpO2xldCB2PWYuam9pbigiXHJcbiIpO3ZhciBNPWRvY3VtZW50LmNyZWF0'@; put 'ZUVsZW1lbnQoImEiKSxJPW5ldyBCbG9iKFt2XSx7dHlwZToidGV4dC9jc3YifSk7aWYobmF2aWdhdG9yLmFwcFZlcnNpb24udG9TdHJpbmcoKS5pbmRleE9mKCIuTkVUIik+MCl3aW5kb3cubmF2aWdhdG9yLm1zU2F2ZUJsb2IoSSx0aGlzLmNvbnN0cnVjdE5hbWUoImNzdiIpKTtlbHNle3Zh'@; put 'ciBHPXdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKEkpO00uaHJlZj1HLE0uZG93bmxvYWQ9dGhpcy5jb25zdHJ1Y3ROYW1lKCJjc3YiKSxNLmNsaWNrKCksd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwoRyksTS5yZW1vdmUoKX19Z2V0RG90VXJsKCl7bGV0IGQ9bmV3IEJsb2IoW3RoaXMu'@; put 'dml6SW5wdXRdLHt0eXBlOiJ0ZXh0L3BsYWluIn0pO3JldHVybiB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChkKX1nZXREb3RCbG9iKCl7cmV0dXJuIG5ldyBCbG9iKFt0aGlzLnZpeklucHV0XSx7dHlwZToidGV4dC9wbGFpbiJ9KX1kb3dubG9hZERvdCgpe2lmKG5hdmlnYXRvci5hcHBW'@; put 'ZXJzaW9uLnRvU3RyaW5nKCkuaW5kZXhPZigiLk5FVCIpPjApd2luZG93Lm5hdmlnYXRvci5tc1NhdmVCbG9iKHRoaXMuZ2V0RG90QmxvYigpLHRoaXMuY29uc3RydWN0TmFtZSgidHh0IikpO2Vsc2V7bGV0IGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2EuaHJlZj10aGlzLmdldERv'@; put 'dFVybCgpLGEuZG93bmxvYWQ9dGhpcy5jb25zdHJ1Y3ROYW1lKCJ0eHQiKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpLGEuY2xpY2soKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpfX1zaG93U3ZnKCl7d2luZG93Lm9wZW4odGhpcy5nZXRTVkdVUkwoKSwiX2JsYW5rIil9YnVp'@; put 'bGRHcmFwaChhKXt0aGlzLmV2ZW50U2VydmljZS5jbG9zZVNpZGViYXIoKSx0aGlzLmdyYXBoTG9hZGluZz0hMSx0aGlzLmdyYXBoUmVuZGVyaW5nPSEwLHNldFRpbWVvdXQoKCk9PntZTigiI2dyYXBoIikuem9vbSghMCkuYWRkSW1hZ2UoImh0dHBzOi8vZGF0YWNvbnRyb2xsZXIuaW8vd3At'@; put 'Y29udGVudC91cGxvYWRzLzIwMjAvMDEvZmMxLnBuZyIsIjMwcHgiLCIzMHB4IikucmVuZGVyRG90KHRoaXMudml6SW5wdXQsKCk9Pnt0aGlzLmdyYXBoUmVuZGVyaW5nPSExLHRoaXMuaWRsb29rdXAmJnRoaXMubWFrZUdyYXBoTGlua2FibGUodGhpcy5pZGxvb2t1cCksYSYmYSgpfSl9LDEw'@; put 'MCl9Y29uc3RydWN0TmFtZShhKXtsZXQgZD0iIixoPSIiLGY9IiIsdj1mQXQoKS5mb3JtYXQoIllZTU1ERF9ISG1tIik7aWYodGhpcy5saWJyYXJ5TGlzdCYmdGhpcy5saWJyYXJ5TGlzdC5sZW5ndGgpe2xldCBNPXRoaXMubGlicmFyeUxpc3QuZmluZChJPT5JLkxJQlJBUllJRD09dGhpcy5s'@; put 'aWIpO00mJihkPWBfJHtNLkxJQlJBUllOQU1FfWApfWlmKHRoaXMudGFibGVzTGlzdCYmdGhpcy50YWJsZXNMaXN0Lmxlbmd0aCl7bGV0IE09dGhpcy50YWJsZXNMaXN0LmZpbmQoST0+SS5UQUJMRVVSST09dGhpcy50YWJsZSk7TSYmKGg9YF8ke00uVEFCTEVOQU1FfWApfWlmKHRoaXMuY29s'@; put 'dW1uc0xpc3QmJnRoaXMuY29sdW1uc0xpc3QubGVuZ3RoKXtsZXQgTT10aGlzLmNvbHVtbnNMaXN0LmZpbmQoST0+SS5DT0xVUkk9PXRoaXMuY29sdW1uKTtNJiYoZj1gXyR7TS5DT0xOQU1FfWApfXJldHVybmAke3RoaXMuZGlyZWN0aW9uVGV4dCgpfSR7ZH0ke2h9JHtmfV8ke3Z9LiR7YX1g'@; put 'fXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpKCRlKGMxKSwkZShWbyksJGUoeXUpLCRlKExvKSwkZShwaCksJGUobWMpLCRlKFNkKSwkZShidSkpfX1zdGF0aWN7dGhpcy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1siYXBwLWxpbmVh'@; put 'Z2UiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xzOjU4LHZhcnM6MTEsY29uc3RzOltbIm1heERlcHRoRG90IiwiIl0sWyJtYXhEZXB0aCIsIiJdLFsic2VhcmNoTGliVHJlZUlucHV0IiwiIl0sWyJzZWFyY2hUcmVlSW5wdXQiLCIiXSxbMywic2Nyb2xsZWRUb0Jv'@; put 'dHRvbSJdLFsiY2xhc3MiLCJzZWFyY2gtbm9kZSIsNCwibmdJZiJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbImNsYXNzIiwidy0xMDAgdGV4dC1jZW50ZXIiLDQsIm5nSWYiXSxbMSwiY29udGVudC1hcmVhIl0sWzEsImNhcmQiXSxbImNsYXNzIiwibm8tdGFibGUtc2VsZWN0ZWQiLDQsIm5n'@; put 'SWYiXSxbNCwibmdJZiJdLFszLCJjbHJNb2RhbE9wZW4iLCJjbHJNb2RhbENsb3NhYmxlIl0sWzEsIm1vZGFsLXRpdGxlIl0sWzEsIm1vZGFsLWJvZHkiXSxbMSwibW9kYWwtZm9vdGVyIiwiZC1mbGV4IiwiZmxleC1jb2x1bW4iXSxbMSwiYmlnbGluZWFnZS1yb3ciLCJtYi0waSJdLFsidHlw'@; put 'ZSIsIm51bWJlciIsIm1pbiIsIjEiLCJwbGFjZWhvbGRlciIsIk1heCBkZXB0aCB2YWx1ZSIsMSwiY2xyLWlucHV0IiwibWF4LWRlcHRoLWlucHV0Il0sWzEsIm1iLTIwIl0sWzEsImJpZ2xpbmVhZ2Utcm93Il0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tcHJpbWFy'@; put 'eSIsMywiY2xpY2siXSxbImNsckRyb3Bkb3duVHJpZ2dlciIsIiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXByaW1hcnkiLCJtdC0zLW5lZ2F0aXZlIiwzLCJkaXNhYmxlZCJdLFsic2hhcGUiLCJjYXJldCBkb3duIl0sWyJjbHJQb3NpdGlvbiIsImJvdHRvbS1sZWZ0Iiw0LCJjbHJJZk9wZW4i'@; put 'XSxbMSwic2VhcmNoLW5vZGUiXSxbMSwidHJlZS1zZWFyY2gtd3JhcHBlciJdLFsiYXBwU3RlYWxGb2N1cyIsIiIsImNscklucHV0IiwiIiwicGxhY2Vob2xkZXIiLCJMaWJyYXJpZXMiLCJuYW1lIiwiaW5wdXQiLCJhdXRvY29tcGxldGUiLCJvZmYiLDMsIm5nTW9kZWxDaGFuZ2UiLCJrZXl1'@; put 'cCIsIm5nTW9kZWwiXSxbInNoYXBlIiwic2VhcmNoIiw0LCJuZ0lmIl0sWyJzaGFwZSIsInRpbWVzIiwzLCJjbGljayIsNCwibmdJZiJdLFsic2hhcGUiLCJzZWFyY2giXSxbInNoYXBlIiwidGltZXMiLDMsImNsaWNrIl0sWzMsImNsckV4cGFuZGVkIiwiY2xyTG9hZGluZyIsImNsci1leHBh'@; put 'bmRlZCIsImNsaWNrIiwiY2xyRXhwYW5kZWRDaGFuZ2UiLDQsIm5nSWYiXSxbMywiY2xpY2siLCJjbHJFeHBhbmRlZENoYW5nZSIsImNsckV4cGFuZGVkIiwiY2xyTG9hZGluZyJdLFsxLCJtLTAiLCJjdXJzb3ItcG9pbnRlciIsMywiY2xpY2siXSxbInNoYXBlIiwicmFjay1zZXJ2ZXIiXSxb'@; put 'MywiY2xyRXhwYW5kZWQiLCJjbHJMb2FkaW5nIiwiY2xyLWV4cGFuZGVkIiwiY2xpY2siLCJjbHJFeHBhbmRlZENoYW5nZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJhcHBTdGVhbEZvY3VzIiwiIiwiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsIlRhYmxlcyIsIm5hbWUiLCJpbnB1dCIs'@; put 'ImF1dG9jb21wbGV0ZSIsIm9mZiIsMywibmdNb2RlbENoYW5nZSIsImtleXVwIiwibmdNb2RlbCJdLFsxLCJtLTAiLCJjdXJzb3ItcG9pbnRlciIsMywiY2xpY2siLCJpZCJdLFsic2hhcGUiLCJ0YWJsZSJdLFsiYXBwU3RlYWxGb2N1cyIsIiIsImNscklucHV0IiwiIiwicGxhY2Vob2xkZXIi'@; put 'LCJDb2x1bW5zIiwibmFtZSIsImlucHV0IiwiYXV0b2NvbXBsZXRlIiwib2ZmIiwzLCJuZ01vZGVsQ2hhbmdlIiwia2V5dXAiLCJuZ01vZGVsIl0sWzEsImNsci10cmVlbm9kZS1saW5rIiwzLCJjbGljayJdLFsic2hhcGUiLCJvYmplY3RzIl0sWzEsInctMTAwIiwidGV4dC1jZW50ZXIiXSxb'@; put 'MSwic3Bpbm5lciIsInNwaW5uZXItc20iXSxbMSwibm8tdGFibGUtc2VsZWN0ZWQiXSxbInNoYXBlIiwid2FybmluZy1zdGFuZGFyZCIsInNpemUiLCI2MCIsMSwiaXMtaW5mbyIsImljb24tZGMtZmlsbCJdLFsiY2RzLXRleHQiLCJzZWN0aW9uIiwxLCJ0ZXh0LWNlbnRlciIsImNvbG9yLWdy'@; put 'YXkiLCJtdC0xMCJdLFsiY2xhc3MiLCJjYXJkLWhlYWRlciBkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlciIsNCwibmdJZiJdLFsxLCJjYXJkLWJsb2NrIl0sWzEsImZvcm0tYmxvY2siLCJzdyIsInBvc2l0aW9uLXJlbGF0aXZlIiwiZC1mbGV4IiwiYWxpZ24taXRl'@; put 'bXMtY2VudGVyIl0sWzEsImxpbmFnZS10aXRsZS13cmFwcGVyIiwiZC1mbGV4IiwiYWxpZ24taXRlbXMtY2VudGVyIiwiZm9udC13ZWlnaHQtYm9sZCIsInBvc2l0aW9uLWFic29sdXRlIl0sWyJjbGFzcyIsImNsci1jb2wtbWQtMTIgdGV4dC1jZW50ZXIgZC1mbGV4IGp1c3RpZnktY29udGVu'@; put 'dC1lbmQiLDQsIm5nSWYiXSxbMywibXQtMiIsNCwibmdJZiJdLFsxLCJjYXJkLWhlYWRlciIsImQtZmxleCIsImZsZXgtY29sdW1uIiwianVzdGlmeS1jb250ZW50LWNlbnRlciJdLFsiY2xhc3MiLCJ0ZXh0LWNlbnRlciBwYi0xMCIsNCwibmdJZiJdLFsxLCJ0ZXh0LWNlbnRlciIsInBiLTEw'@; put 'Il0sWzMsInJvdXRlckxpbmsiXSxbMSwiY2xyLWNvbC1tZC0xMiIsInRleHQtY2VudGVyIiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWVuZCJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLW91dGxpbmUiLCJtci01IiwzLCJjbGljayJdLFsxLCJidG4tZ3JvdXAiLCJkaXJlY3Rp'@; put 'b24iLCJkLWJsb2NrIl0sWzEsInJhZGlvIiwiYnRuIiwzLCJjbGljayJdLFsidHlwZSIsInJhZGlvIiwibmFtZSIsImJ0bi1ncm91cC1kZW1vLXJhZGlvcyIsMywiY2hlY2tlZCJdLFsxLCJtci0xMCJdLFsiY2xyRHJvcGRvd25UcmlnZ2VyIiwiIiwxLCJidG4iLCJidG4taW5mby1vdXRsaW5l'@; put 'IiwzLCJkaXNhYmxlZCJdLFsiY2xhc3MiLCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIiw0LCJuZ0lmIl0sWyJjbHJQb3NpdGlvbiIsImJvdHRvbS1sZWZ0Il0sWyJjbHJEcm9wZG93bkl0ZW0iLCIiLDMsImNsaWNrIl0sWyJjbHJEcm9wZG93bkl0ZW0iLCIiLDMsImNsaWNrIiw0LCJuZ0lm'@; put 'Il0sWzEsImQtZmxleCIsImFsaWduLWl0ZW1zLWNlbnRlciJdLFsidHlwZSIsImNoZWNrYm94IiwiY2xyQ2hlY2tib3giLCIiLCJuYW1lIiwicmVmcmVzaENhY2hlIiwzLCJjaGFuZ2UiLCJuZ01vZGVsQ2hhbmdlIiwibmdNb2RlbCJdLFsxLCJ0ZXh0LWNlbnRlciJdLFsiY2xhc3MiLCJzcGlu'@; put 'bmVyIiw0LCJuZ0lmIl0sWyJjbGFzcyIsInBvc2l0aW9uLXJlbGF0aXZlIiw0LCJuZ0lmIl0sWzEsInNwaW5uZXIiXSxbMSwicG9zaXRpb24tcmVsYXRpdmUiXSxbMSwiZ3JhcGgtcmVuZGVyLXNwaW5uZXIiXSxbImNsYXNzIiwic3Bpbm5lciBzcGlubmVyLXNtIiw0LCJuZ0lmIl0sWyJpZCIs'@; put 'ImdyYXBoIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGQsaCl7aWYoMSZkKXtjb25zdCBmPU9uKCk7ZGUoMCwiYXBwLXNpZGViYXIiLDQpLEZ0KCJzY3JvbGxlZFRvQm90dG9tIixmdW5jdGlvbigpe3JldHVybiB3dChmKSxDdChoLmxvYWRNb3JlTGlicmFyaWVzKCkpfSksZGUoMSwiY2xyLXRyZWUi'@; put 'KSxndCgyLFZUdCw2LDMsImNsci10cmVlLW5vZGUiLDUpKDMsS1R0LDIsMSwibmctY29udGFpbmVyIiw2KSxoZSgpLGd0KDQsWFR0LDMsMCwiZGl2Iiw3KSxoZSgpLGRlKDUsImRpdiIsOCkoNiwiZGl2Iiw5KSxndCg3LHFUdCw0LDAsImRpdiIsMTApKDgsdUF0LDgsNCwibmctY29udGFpbmVy'@; put 'IiwxMSksaGUoKSgpLGRlKDksImNsci1tb2RhbCIsMTIpKDEwLCJoMyIsMTMpLE9lKDExLCJMaW1pdCBEZXB0aCIpLGhlKCksZGUoMTIsImRpdiIsMTQpKDEzLCJwIiksT2UoMTQsIkVudGVyIHRoZSBkZXB0aCBudW1iZXIgeW91IHdvdWxkIGxpa2UgdG8gbGltaXQgRE9UIHJlbmRlcmluZyB0'@; put 'bzoiKSxoZSgpKCksZGUoMTUsImRpdiIsMTUpKDE2LCJkaXYiLDE2KSxXdCgxNywiaW5wdXQiLDE3LDApLGhlKCksZGUoMTksImNsci1jb250cm9sLWhlbHBlciIsMTgpLE9lKDIwLCJUbyByZW5kZXIgd2l0aCB1bmxpbWl0ZWQgZGVwdGgsIGxlYXZlIHRoZSBpbnB1dCBlbXB0eSIpLGhlKCks'@; put 'ZGUoMjEsImRpdiIsMTkpKDIyLCJidXR0b24iLDIwKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGYpLEN0KGgubGltaXREb3REZXB0aD0hMSl9KSxPZSgyMywiIENhbmNlbCAiKSxoZSgpLGRlKDI0LCJidXR0b24iLDIwKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7d3QoZik7Y29u'@; put 'c3QgTT1kYSgxOCk7cmV0dXJuIGgucmVzdWJtaXRXaXRoTWF4RGVwdGgoTS52YWx1ZSksQ3QoaC5saW1pdERvdERlcHRoPSExKX0pLE9lKDI1LCIgUmVzdWJtaXQgIiksaGUoKSgpKCkoKSxkZSgyNiwiY2xyLW1vZGFsIiwxMikoMjcsImgzIiwxMyksT2UoMjgsIldhcm5pbmciKSxoZSgpLGRl'@; put 'KDI5LCJkaXYiLDE0KSgzMCwicCIpLE9lKDMxKSxoZSgpKCksZGUoMzIsImRpdiIsMTUpKDMzLCJkaXYiLDE5KSgzNCwicCIpLE9lKDM1LCJSZW5kZXIgYW55d2F5ICh0aGlzIG1heSB0YWtlIGEgbG9uZyB0aW1lKSIpLGhlKCksZGUoMzYsImJ1dHRvbiIsMjApLEZ0KCJjbGljayIsZnVuY3Rp'@; put 'b24oKXtyZXR1cm4gd3QoZiksQ3QoaC5jb250aW51ZVJlbmRlcmluZ0dyYXBoKCkpfSksT2UoMzcsIiBSZW5kZXIgIiksaGUoKSgpLGRlKDM4LCJkaXYiLDE5KSgzOSwicCIpLE9lKDQwLCJEb3dubG9hZCB0aGUgcmVzdWx0IChQTkcgJiBTVkcgcmVxdWlyZSByZW5kZXJpbmcpIiksaGUoKSxk'@; put 'ZSg0MSwiY2xyLWRyb3Bkb3duIikoNDIsImJ1dHRvbiIsMjEpLE9lKDQzLCIgRG93bmxvYWQgIiksV3QoNDQsImNsci1pY29uIiwyMiksaGUoKSxndCg0NSxoQXQsNiwxLCJjbHItZHJvcGRvd24tbWVudSIsMjMpLGhlKCkoKSxkZSg0NiwiZGl2IiwxOSkoNDcsInAiKSxPZSg0OCwiUmVzdWJt'@; put 'aXQgd2l0aCBhIG1heC1kZXB0aCAoc3BlY2lmeSBkZXB0aCkiKSxoZSgpLFd0KDQ5LCJpbnB1dCIsMTcsMSksZGUoNTEsImJ1dHRvbiIsMjApLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChmKTtjb25zdCBNPWRhKDUwKTtyZXR1cm4gQ3QoaC5yZXN1Ym1pdFdpdGhNYXhEZXB0aChNLnZhbHVl'@; put 'KSl9KSxPZSg1MiwiIFJlc3VibWl0ICIpLGhlKCkoKSxkZSg1MywiZGl2IiwxOSkoNTQsInAiKSxPZSg1NSwiQ2FuY2VsIHRoaXMgc3VibWlzc2lvbiIpLGhlKCksZGUoNTYsImJ1dHRvbiIsMjApLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoZiksQ3QoaC5jYW5jZWxSZW5kZXJp'@; put 'bmdHcmFwaCgpKX0pLE9lKDU3LCIgQ2FuY2VsICIpLGhlKCkoKSgpKCl9MiZkJiYoZmUoMiksTWUoIm5nSWYiLGgubGlicmFyeUxpc3QpLGZlKCksTWUoIm5nRm9yT2YiLGgubGlicmFyeUxpc3QpLGZlKCksTWUoIm5nSWYiLGgubGlicmFyaWVzUGFnaW5nKSxmZSgzKSxNZSgibmdJZiIsIWgu'@; put 'Y29sdW1uJiYhaC50YWJsZSksZmUoKSxNZSgibmdJZiIsaC5jb2x1bW58fGgudGFibGUpLGZlKCksTWUoImNsck1vZGFsT3BlbiIsaC5saW1pdERvdERlcHRoKSgiY2xyTW9kYWxDbG9zYWJsZSIsITEpLGZlKDE3KSxNZSgiY2xyTW9kYWxPcGVuIixudWxsIT09aC5sYXJnZURvdEZpbGVMaW5l'@; put 'cykoImNsck1vZGFsQ2xvc2FibGUiLCExKSxmZSg1KSxMcigiIFRoZSBnZW5lcmF0ZWQgZG90IGZpbGUgaGFzICIsaC5sYXJnZURvdEZpbGVMaW5lcywiIGxpbmVzLiBSZW5kZXJpbmcgbWF5IHRha2UgYSBsb25nIHRpbWUsIGhvdyB3b3VsZCB5b3UgbGlrZSB0byBwcm9jZWVkPyAiKSxmZSgx'@; put 'MSksTWUoImRpc2FibGVkIiwhaC5jb2x1bW4mJiFoLnRhYmxlKSl9LGRlcGVuZGVuY2llczpbUXMsYmEsbDEsR2wsTWQsdGwsV28sQWgsUGQsaGcsT2wscnUsWXUsVjAsUDIsY28sV0wsSWQseGgsWTEsc2csZzcsbTcsUGIsYTQsaTRdLGVuY2Fwc3VsYXRpb246Mn0pfX1yZXR1cm4gY30pKCk7'@; put 'Y29uc3QgcEF0PSgpPT5bMTAsMjAsNTAsMTAwXTtmdW5jdGlvbiBnQXQoYyxsKXtpZigxJmMmJihkZSgwLCJvcHRpb24iLDE0KSxPZSgxKSxoZSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7eU0oInZhbHVlIixhKSxmZSgpLExyKCIgIixhLCIgIil9fWZ1bmN0aW9uIG1BdChjLGwpezEm'@; put 'YyYmV3QoMCwiY2xyLWljb24iLDIwKX1mdW5jdGlvbiB2QXQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJjbHItaWNvbiIsMjEpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKDIpO3JldHVybiBoLm1ldGFEYXRhU2VhcmNoPSIiLEN0KGgubWV0YUxpc3RP'@; put 'bkZpbHRlcigpKX0pLGhlKCl9fWZ1bmN0aW9uIHlBdChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImNsci10cmVlLW5vZGUiLDE1KSgxLCJkaXYiLDE2KSgyLCJpbnB1dCIsMTcsMCkscGkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe3d0KGEpO2NvbnN0IGY9TGUoKTtyZXR1'@; put 'cm4gZ2koZi5tZXRhRGF0YVNlYXJjaCxoKXx8KGYubWV0YURhdGFTZWFyY2g9aCksQ3QoaCl9KSxGdCgia2V5dXAiLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKCkubWV0YUxpc3RPbkZpbHRlcigpKX0pLGhlKCksZ3QoNCxtQXQsMSwwLCJjbHItaWNvbiIsMTgpKDUsdkF0LDEsMCwi'@; put 'Y2xyLWljb24iLDE5KSxoZSgpKCl9aWYoMiZjKXtjb25zdCBhPWRhKDMpLGQ9TGUoKTtmZSgyKSxmaSgibmdNb2RlbCIsZC5tZXRhRGF0YVNlYXJjaCksZmUoMiksTWUoIm5nSWYiLGEudmFsdWUubGVuZ3RoPDEpLGZlKCksTWUoIm5nSWYiLGEudmFsdWUubGVuZ3RoPjApfX1mdW5jdGlvbiBi'@; put 'QXQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJjbHItdHJlZS1ub2RlIiwyMyksRnQoImNsaWNrIixmdW5jdGlvbihoKXt3dChhKTtjb25zdCBmPUxlKCkuJGltcGxpY2l0LHY9TGUoKTtyZXR1cm4gQ3Qodi50cmVlTm9kZUNsaWNrZWQoaCxmLHYubWV0YURhdGFMaXN0KSl9KSxw'@; put 'aSgiY2xyRXhwYW5kZWRDaGFuZ2UiLGZ1bmN0aW9uKGgpe3d0KGEpO2NvbnN0IGY9TGUoKS4kaW1wbGljaXQ7cmV0dXJuIGdpKGYuZXhwYW5kZWQsaCl8fChmLmV4cGFuZGVkPWgpLEN0KGgpfSksZGUoMSwicCIsMjQpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKCku'@; put 'JGltcGxpY2l0LGY9TGUoKTtyZXR1cm4gZi5tZXRhRGF0YUlkPWguSUQsQ3QoZi5tZXRhRGF0YU9uQ2xpY2soZi5tZXRhRGF0YUlkLGgpKX0pLFd0KDIsImNsci1pY29uIiwyNSksT2UoMyksaGUoKSgpfWlmKDImYyl7Y29uc3QgYT1MZSgpLiRpbXBsaWNpdDtmaSgiY2xyRXhwYW5kZWQiLGEu'@; put 'ZXhwYW5kZWQpLE1lKCJjbHJMb2FkaW5nIixhLmxvYWRpbmdUYWJsZXMmJiFhLnRhYmxlcyksZmUoMyksTHIoIiAiLGEuSUQsIiAiKX19ZnVuY3Rpb24gX0F0KGMsbCl7aWYoMSZjJiYoYWkoMCksZ3QoMSxiQXQsNCwzLCJjbHItdHJlZS1ub2RlIiwyMiksc2koKSksMiZjKXtjb25zdCBhPWwu'@; put 'JGltcGxpY2l0O2ZlKCksTWUoIm5nSWYiLCFhLmhpZGRlbil9fWZ1bmN0aW9uIHdBdChjLGwpezEmYyYmKGRlKDAsImRpdiIsMjYpLFd0KDEsImNsci1pY29uIiwyNyksZGUoMiwicCIsMjgpLE9lKDMsIiBQbGVhc2Ugc2VsZWN0IGEgdHlwZSAiKSxoZSgpKCkpfWZ1bmN0aW9uIENBdChjLGwp'@; put 'ezEmYyYmKGRlKDAsImg0IiksT2UoMSwiTG9hZGluZyBtZXRhZGF0YSB0eXBlcyIpLGhlKCkpfWZ1bmN0aW9uIFNBdChjLGwpezEmYyYmKGRlKDAsImg0IiksT2UoMSwiTG9hZGluZyBtZXRhZGF0YSBvYmplY3RzIiksaGUoKSl9ZnVuY3Rpb24gTUF0KGMsbCl7aWYoMSZjJiYoZGUoMCwiZGl2'@; put 'IiksZ3QoMSxDQXQsMiwwLCJoNCIsMzEpKDIsU0F0LDIsMCwiaDQiLDMxKSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoMik7ZmUoKSxNZSgibmdJZiIsYS5tZXRhdHlwZXNMb2FkaW5nKSxmZSgpLE1lKCJuZ0lmIiwhYS5tZXRhdHlwZXNMb2FkaW5nKX19ZnVuY3Rpb24geEF0KGMsbCl7aWYoMSZj'@; put 'JiYoZGUoMCwiZGl2IiwyOSkoMSwic3BhbiIsMzApLE9lKDIsIiBMb2FkaW5nLi4uICIpLGhlKCksZ3QoMyxNQXQsMywyLCJkaXYiLDMxKSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoKTtmZSgzKSxNZSgibmdJZiIsYS5sb2FkaW5nKX19ZnVuY3Rpb24gRUF0KGMsbCl7aWYoMSZjKXtjb25zdCBh'@; put 'PU9uKCk7ZGUoMCwiZGl2IiwzOCkoMSwiaW5wdXQiLDM5LDEpLHBpKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihoKXt3dChhKTtjb25zdCBmPUxlKDIpO3JldHVybiBnaShmLm1ldGFPYmplY3RTZWFyY2gsaCl8fChmLm1ldGFPYmplY3RTZWFyY2g9aCksQ3QoaCl9KSxGdCgia2V5dXAiLGZ1'@; put 'bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKDIpLm1ldGFPYmplY3RPbkZpbHRlcigpKX0pLGhlKCkoKX1pZigyJmMpe2NvbnN0IGE9TGUoMik7ZmUoKSxmaSgibmdNb2RlbCIsYS5tZXRhT2JqZWN0U2VhcmNoKX19ZnVuY3Rpb24gVEF0KGMsbCl7MSZjJiZXdCgwLCJjbHItaWNvbiIsNDMp'@; put 'fWZ1bmN0aW9uIEFBdChjLGwpezEmYyYmV3QoMCwiY2xyLWljb24iLDI1KX1mdW5jdGlvbiBrQXQoYyxsKXtpZigxJmMmJihkZSgwLCJwIiw1NCksT2UoMSksaGUoKSksMiZjKXtjb25zdCBhPUxlKCkuJGltcGxpY2l0O2ZlKCksTHIoIiAiLGEuVVJJLCIgIil9fWZ1bmN0aW9uIERBdChjLGwp'@; put 'e2lmKDEmYyYmKGRlKDAsImNsci10cmVlLW5vZGUiLDQ5KSgxLCJkaXYiLDUwKSgyLCJkaXYiKSxndCgzLFRBdCwxLDAsImNsci1pY29uIiw1MSkoNCxBQXQsMSwwLCJjbHItaWNvbiIsNTIpLE9lKDUpLGhlKCksZ3QoNixrQXQsMiwxLCJwIiw1MyksaGUoKSgpKSwyJmMpe2NvbnN0IGE9bC4k'@; put 'aW1wbGljaXQ7TWUoImNsckV4cGFuZGFibGUiLCEwKSxmZSgpLFRyKCJvYmplY3QtaGVhZGVyIiwhYS5jb3VudCksZmUoMiksTWUoIm5nSWYiLCFhLmNvdW50KSxmZSgpLE1lKCJuZ0lmIixhLmNvdW50KSxmZSgpLExyKCIgIixhLmRpc3BsYXksIiAiKSxmZSgpLE1lKCJuZ0lmIiwhYS5jb3Vu'@; put 'dCl9fWZ1bmN0aW9uIElBdChjLGwpe2lmKDEmYyYmKGRlKDAsImNsci10cmVlIiw0NyksZ3QoMSxEQXQsNyw3LCJjbHItdHJlZS1ub2RlIiw0OCksUW8oMiwiYXN5bmMiKSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoNik7TWUoImNsckxhenkiLCEwKSxmZSgpLE1lKCJjbHJSZWN1cnNpdmVGb3JP'@; put 'ZiIsQWMoMiwzLGEucm9vdCQpKSgiY2xyUmVjdXJzaXZlRm9yR2V0Q2hpbGRyZW4iLGEuZ2V0Q2hpbGRyZW4pfX1mdW5jdGlvbiBSQXQoYyxsKXtpZigxJmMmJihkZSgwLCJjbHItYWNjb3JkaW9uLWNvbnRlbnQiKSxndCgxLElBdCwzLDUsImNsci10cmVlIiw0NiksaGUoKSksMiZjKXtjb25z'@; put 'dCBhPUxlKDUpO2ZlKCksTWUoIm5nSWYiLGEuc2hvd0FjYyl9fWZ1bmN0aW9uIExBdChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImNsci1hY2NvcmRpb24tcGFuZWwiLDQyKSxGdCgiY2xyQWNjb3JkaW9uUGFuZWxPcGVuQ2hhbmdlIixmdW5jdGlvbihoKXt3dChhKTtjb25zdCBm'@; put 'PUxlKCkuJGltcGxpY2l0LHY9TGUoMyk7cmV0dXJuIEN0KGg/di5wYW5lbENoYW5nZShoLGYpOiIiKX0pLGRlKDEsImNsci1hY2NvcmRpb24tdGl0bGUiKSxXdCgyLCJjbHItaWNvbiIsNDMpLE9lKDMpLGRlKDQsInAiLDQ0KSxPZSg1KSxoZSgpKCksZ3QoNixSQXQsMiwxLCJjbHItYWNjb3Jk'@; put 'aW9uLWNvbnRlbnQiLDQ1KSxoZSgpfWlmKDImYyl7Y29uc3QgYT1MZSgpLiRpbXBsaWNpdDtmZSgzKSxMcigiICIsYS5OQU1FLCIgIiksZmUoMiksU3IoYS5JRCl9fWZ1bmN0aW9uIE9BdChjLGwpe2lmKDEmYyYmKGFpKDApLGd0KDEsTEF0LDcsMiwiY2xyLWFjY29yZGlvbi1wYW5lbCIsNDEp'@; put 'LHNpKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtmZSgpLE1lKCJuZ0lmIiwhYS5oaWRkZW4pfX1mdW5jdGlvbiBQQXQoYyxsKXtpZigxJmMmJihkZSgwLCJkaXYiLDQwKSgxLCJjbHItYWNjb3JkaW9uIiksZ3QoMixPQXQsMiwxLCJuZy1jb250YWluZXIiLDcpLGhlKCkoKSksMiZjKXtj'@; put 'b25zdCBhPUxlKDIpO2ZlKDIpLE1lKCJuZ0Zvck9mIixhLm1ldGFPYmplY3RTaG93TGlzdCl9fWZ1bmN0aW9uIEZBdChjLGwpezEmYyYmV3QoMCwiY2xyLWljb24iLDQzKX1mdW5jdGlvbiBIQXQoYyxsKXsxJmMmJld0KDAsImNsci1pY29uIiwyNSl9ZnVuY3Rpb24gTkF0KGMsbCl7aWYoMSZj'@; put 'JiYoZGUoMCwicCIsNTQpLE9lKDEpLGhlKCkpLDImYyl7Y29uc3QgYT1MZSgpLiRpbXBsaWNpdDtmZSgpLExyKCIgIixhLlVSSSwiICIpfX1mdW5jdGlvbiBWQXQoYyxsKXtpZigxJmMmJihkZSgwLCJjbHItdHJlZS1ub2RlIiw0OSkoMSwiZGl2Iiw1MCkoMiwiZGl2IiksZ3QoMyxGQXQsMSww'@; put 'LCJjbHItaWNvbiIsNTEpKDQsSEF0LDEsMCwiY2xyLWljb24iLDUyKSxPZSg1KSxoZSgpLGd0KDYsTkF0LDIsMSwicCIsNTMpLGhlKCkoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O01lKCJjbHJFeHBhbmRhYmxlIiwhMCksZmUoKSxUcigib2JqZWN0LWhlYWRlciIsIWEuY291bnQpLGZl'@; put 'KDIpLE1lKCJuZ0lmIiwhYS5jb3VudCksZmUoKSxNZSgibmdJZiIsYS5jb3VudCksZmUoKSxMcigiICIsYS5kaXNwbGF5LCIgIiksZmUoKSxNZSgibmdJZiIsIWEuY291bnQpfX1mdW5jdGlvbiBCQXQoYyxsKXtpZigxJmMmJihkZSgwLCJjbHItdHJlZSIsNDcpLGd0KDEsVkF0LDcsNywiY2xy'@; put 'LXRyZWUtbm9kZSIsNDgpLFFvKDIsImFzeW5jIiksaGUoKSksMiZjKXtjb25zdCBhPUxlKDQpO01lKCJjbHJMYXp5IiwhMCksZmUoKSxNZSgiY2xyUmVjdXJzaXZlRm9yT2YiLEFjKDIsMyxhLnJvb3QkKSkoImNsclJlY3Vyc2l2ZUZvckdldENoaWxkcmVuIixhLmdldENoaWxkcmVuKX19ZnVu'@; put 'Y3Rpb24gakF0KGMsbCl7aWYoMSZjJiYoYWkoMCksZGUoMSwiZGl2Iiw1NSksV3QoMiwiY2xyLWljb24iLDQzKSxkZSgzLCJkaXYiLDU2KSg0LCJwIiw1NyksT2UoNSksaGUoKSxkZSg2LCJwIiw1OCksT2UoNyksaGUoKSgpKCksZ3QoOCxCQXQsMyw1LCJjbHItdHJlZSIsNDYpLHNpKCkpLDIm'@; put 'Yyl7Y29uc3QgYT1sLiRpbXBsaWNpdCxkPUxlKDMpO2ZlKDUpLExyKCIgIixhLk5BTUUsIiAiKSxmZSgyKSxMcigiICIsYS5JRCwiICIpLGZlKCksTWUoIm5nSWYiLGQuc2hvd0FjYyl9fWZ1bmN0aW9uIHpBdChjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIsNDApLGd0KDEsakF0LDksMywibmct'@; put 'Y29udGFpbmVyIiw3KSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoMik7ZmUoKSxNZSgibmdGb3JPZiIsYS5tZXRhT2JqZWN0U2hvd0xpc3QpfX1mdW5jdGlvbiBVQXQoYyxsKXtpZigxJmMmJihkZSgwLCJjbHItZGctcm93IikoMSwiY2xyLWRnLWNlbGwiKSxPZSgyKSxoZSgpLGRlKDMsImNsci1k'@; put 'Zy1jZWxsIiksT2UoNCksaGUoKSxkZSg1LCJjbHItZGctY2VsbCIpLE9lKDYpLGhlKCkoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O2ZlKDIpLFNyKGEuVFlQRSksZmUoMiksU3IoYS5OQU1FKSxmZSgyKSxTcihhLlZBTFVFKX19ZnVuY3Rpb24gWkF0KGMsbCl7aWYoMSZjJiYoZGUoMCwi'@; put 'Y2xyLWRhdGFncmlkIiw1OSkoMSwiY2xyLWRnLWNvbHVtbiIpLE9lKDIsIiBUWVBFICIpLFd0KDMsImNsci1kZy1zdHJpbmctZmlsdGVyIiw2MCksaGUoKSxkZSg0LCJjbHItZGctY29sdW1uIiksT2UoNSwiIE5BTUUgIiksV3QoNiwiY2xyLWRnLXN0cmluZy1maWx0ZXIiLDYwKSxoZSgpLGRl'@; put 'KDcsImNsci1kZy1jb2x1bW4iKSxPZSg4LCIgVkFMVUUgIiksV3QoOSwiY2xyLWRnLXN0cmluZy1maWx0ZXIiLDYwKSxoZSgpLGd0KDEwLFVBdCw3LDMsImNsci1kZy1yb3ciLDYxKSxkZSgxMSwiY2xyLWRnLWZvb3RlciIpKDEyLCJjbHItZGctcGFnaW5hdGlvbiIsNjIsMikoMTQsImNsci1k'@; put 'Zy1wYWdlLXNpemUiLDYzKSxPZSgxNSwiQXR0cmlidXRlcyBwZXIgcGFnZSIpLGhlKCksT2UoMTYpLGhlKCkoKSgpKSwyJmMpe2NvbnN0IGE9ZGEoMTMpLGQ9TGUoMik7ZmUoMyksTWUoImNsckRnU3RyaW5nRmlsdGVyIixkLnR5cGVGaWx0ZXIpLGZlKDMpLE1lKCJjbHJEZ1N0cmluZ0ZpbHRl'@; put 'ciIsZC5uYW1lRmlsdGVyKSxmZSgzKSxNZSgiY2xyRGdTdHJpbmdGaWx0ZXIiLGQudmFsdWVGaWx0ZXIpLGZlKCksTWUoImNsckRnSXRlbXNPZiIsZC5tZXRhT2JqZWN0QXR0cmlidXRlcyksZmUoMiksTWUoImNsckRnUGFnZVNpemUiLDEwKSxmZSgyKSxNZSgiY2xyUGFnZVNpemVPcHRpb25z'@; put 'Iixabyg5LHBBdCkpLGZlKDIpLFpmKCIgIixhLmZpcnN0SXRlbSsxLCIgLSAiLGEubGFzdEl0ZW0rMSwiIG9mICIsYS50b3RhbEl0ZW1zLCIgQXR0cmlidXRlcyAiKX19ZnVuY3Rpb24gV0F0KGMsbCl7aWYoMSZjJiYoZGUoMCwiZGl2IiwzMikoMSwiZGl2IiwzMyksZ3QoMixFQXQsMywxLCJk'@; put 'aXYiLDM0KSxXdCgzLCJiciIpLGd0KDQsUEF0LDMsMSwiZGl2IiwzNSkoNSx6QXQsMiwxLCJkaXYiLDM1KSxoZSgpLGRlKDYsImRpdiIsMzYpKDcsImgzIiksT2UoOCksaGUoKSxndCg5LFpBdCwxNywxMCwiY2xyLWRhdGFncmlkIiwzNyksaGUoKSgpKSwyJmMpe2NvbnN0IGE9TGUoKTtmZSgy'@; put 'KSxNZSgibmdJZiIsYS5tZXRhT2JqZWN0TGlzdCYmIWEub2JqZWN0Um91dGUpLGZlKDIpLE1lKCJuZ0lmIiwhYS5vYmplY3RWaWV3KSxmZSgpLE1lKCJuZ0lmIixhLm9iamVjdFZpZXcpLGZlKDMpLFNyKGEuYXNzb09iamVjdFNlbGVjdGVkKSxmZSgpLE1lKCJuZ0lmIixhLnNob3dUYWJsZSl9'@; put 'fWNsYXNzIFlBdHthY2NlcHRzKGwsYSl7cmV0dXJuIiIrbC5OQU1FPT09YXx8bC5OQU1FLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihhKT49MH19Y2xhc3MgR0F0e2FjY2VwdHMobCxhKXtyZXR1cm4iIitsLlRZUEU9PT1hfHxsLlRZUEUudG9Mb3dlckNhc2UoKS5pbmRleE9mKGEpPj0wfX1jbGFz'@; put 'cyAkQXR7YWNjZXB0cyhsLGEpe3JldHVybiIiK2wuVkFMVUU9PT1hfHxsLlZBTFVFLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihhKT49MH19bGV0IHF0ZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYsdixNKXt0aGlzLmV2ZW50U2VydmljZT1hLHRoaXMuc2FzU2VydmljZT1kLHRo'@; put 'aXMuaGVscGVyU2VydmljZT1oLHRoaXMubG9jYXRpb249Zix0aGlzLnJvdXRlcj12LHRoaXMucm91dGU9TSx0aGlzLm1ldGFEYXRhU2VhcmNoPSIiLHRoaXMubWV0YU9iamVjdFNlYXJjaD0iIix0aGlzLm1ldGFPYmplY3RBc3NvY2lhdGlvbnM9W10sdGhpcy5tZXRhT2JqZWN0QXR0cmlidXRl'@; put 'cz1bXSx0aGlzLnNob3dUYWJsZT0hMSx0aGlzLnNob3dBY2M9ITEsdGhpcy5tZXRhRGF0YUlkPSIiLHRoaXMubG9hZGluZz0hMCx0aGlzLm1ldGF0eXBlc0xvYWRpbmc9ITAsdGhpcy5tZXRhT2JqZWN0U2l6ZT0yMDAsdGhpcy5hc3NvVHlwZVNlbGVjdGVkPSIiLHRoaXMuYXNzb09iamVjdFNl'@; put 'bGVjdGVkPSIiLHRoaXMucmVwb3NpdG9yeT0iIix0aGlzLm9iamVjdFJvdXRlPSExLHRoaXMuc2hvd0RhdGE9ITEsdGhpcy5vYmplY3RWaWV3PSExLHRoaXMuZ2V0Q2hpbGRyZW49ST0+SS5jb3VudD9kcyhJLmRldGFpbHMpOnRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJtZXRhbmF2L21ldGFk'@; put 'ZXRhaWxzIix7U0FTQ29udHJvbFRhYmxlOlt7b2JqZWN0dXJpOkkuQVNTT0NVUkl9XX0pLnRoZW4ocmU9Pnt0aGlzLnNob3dUYWJsZT0hMCx0aGlzLm1ldGFPYmplY3RBdHRyaWJ1dGVzPXJlLmFkYXB0ZXJSZXNwb25zZS5hdHRyaWJ1dGVzLHRoaXMuYXNzb09iamVjdFNlbGVjdGVkPUkuTkFN'@; put 'RTtsZXQgdWU9dGhpcy5yb3V0ZXIudXJsO3JldHVybiB0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZSh0aGlzLm9iamVjdFJvdXRlP3VlLnNsaWNlKDAsdWUubGFzdEluZGV4T2YoIm9iamVjdCIpKSsib2JqZWN0LyIrSS5BU1NPQ1VSSS5zbGljZSgxK0kuQVNTT0NVUkkuaW5kZXhPZigiXFwi'@; put 'KSk6dWUrIi9vYmplY3QvIitJLkFTU09DVVJJLnNsaWNlKDErSS5BU1NPQ1VSSS5pbmRleE9mKCJcXCIpKSksdGhpcy5nZXRBc3Nvc2lhdGlvbnNDb3VudChyZS5hZGFwdGVyUmVzcG9uc2UuYXNzb2NpYXRpb25zKX0pLHRoaXMuZGVib3VuY2U9ITF9bmdPbkluaXQoKXtKbi52aWV3ZXIuY3Vy'@; put 'cmVudFNlbGVjdGlvbj0idmlldy9tZXRhZGF0YSIsdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCIvdmlldy9tZXRhZGF0YS9vYmplY3QvIikmJih0aGlzLm9iamVjdFJvdXRlPSEwLHRoaXMub2JqZWN0Vmlldz0hMCksdGhpcy5wYWdlU2l6ZT01LHRoaXMudHlwZUZpbHRlcj1uZXcgR0F0LHRo'@; put 'aXMubmFtZUZpbHRlcj1uZXcgWUF0LHRoaXMudmFsdWVGaWx0ZXI9bmV3ICRBdCxKbi5tZXRhZGF0YS5tZXRhRGF0YUxpc3QmJkpuLm1ldGFkYXRhLm1ldGFSZXBvc2l0b3JpZXMmJiF0aGlzLm9iamVjdFJvdXRlPyh0aGlzLm1ldGFEYXRhTGlzdD1Kbi5tZXRhZGF0YS5tZXRhRGF0YUxpc3Qs'@; put 'dGhpcy5yZXBvc2l0b3JpZXM9Sm4ubWV0YWRhdGEubWV0YVJlcG9zaXRvcmllcyx0aGlzLnJlcG9zaXRvcnk9Sm4ubWV0YWRhdGEuc2VsZWN0ZWRSZXBvc2l0b3J5LHRoaXMubG9hZGluZz0hMSx0aGlzLm1ldGF0eXBlc0xvYWRpbmc9ITEsdGhpcy5tZXRhRGF0YVNlYXJjaD1Kbi5tZXRhZGF0'@; put 'YS5tZXRhRGF0YVNlYXJjaCk6KHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJtZXRhbmF2L21ldGF0eXBlcyIsbnVsbCkudGhlbihhPT57dGhpcy5tZXRhRGF0YUxpc3Q9YS5hZGFwdGVyUmVzcG9uc2UudHlwZXMsSm4ubWV0YWRhdGEubWV0YURhdGFMaXN0PXRoaXMubWV0YURhdGFMaXN0LHRo'@; put 'aXMubG9hZGluZz0hMSx0aGlzLm1ldGF0eXBlc0xvYWRpbmc9ITF9KSx0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgibWV0YW5hdi9tZXRhcmVwb3MiLG51bGwpLnRoZW4oYT0+e2xldCBkPSExO3RoaXMucmVwb3NpdG9yaWVzPVtdO2ZvcihsZXQgaD0wO2g8YS5hZGFwdGVyUmVzcG9uc2Uub3V0'@; put 'cmVwb3MubGVuZ3RoO2grKyl0aGlzLnJlcG9zaXRvcmllcy5wdXNoKGEuYWRhcHRlclJlc3BvbnNlLm91dHJlcG9zW2hdLk5BTUUpLCJGb3VuZGF0aW9uIj09PWEuYWRhcHRlclJlc3BvbnNlLm91dHJlcG9zW2hdLk5BTUUmJihkPSEwKTtpZih0aGlzLnJlcG9zaXRvcnk9ZD8iRm91bmRhdGlv'@; put 'biI6YS5hZGFwdGVyUmVzcG9uc2Uub3V0cmVwb3NbMF0uTkFNRSxKbi5tZXRhZGF0YS5tZXRhUmVwb3NpdG9yaWVzPXRoaXMucmVwb3NpdG9yaWVzLEpuLm1ldGFkYXRhLnNlbGVjdGVkUmVwb3NpdG9yeT10aGlzLnJlcG9zaXRvcnksdGhpcy5vYmplY3RSb3V0ZSl7dGhpcy5ldmVudFNlcnZp'@; put 'Y2UuY2xvc2VTaWRlYmFyKCksdGhpcy5zaG93RGF0YT0hMDtsZXQgaD0iIixmPXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLm9iamVjdElEO3RoaXMubWV0YU9iamVjdExpc3Q9W10sdGhpcy5tZXRhT2JqZWN0TGlzdC5wdXNoKHtJRDpmLE5BTUU6aH0pLHRoaXMubWV0YU9iamVjdFNob3dM'@; put 'aXN0PXRoaXMubWV0YU9iamVjdExpc3QsdGhpcy5tZXRhT2JqZWN0T25DbGljayh0aGlzLm1ldGFPYmplY3RTaG93TGlzdFswXS5JRCx0aGlzLm1ldGFPYmplY3RTaG93TGlzdFswXSl9fSkpfXRyZWVOb2RlQ2xpY2tlZChhLGQsaCl7IkNvbGxhcHNlIj09PWEudGFyZ2V0LnRpdGxlJiZ0aGlz'@; put 'LmNvbGxhcHNlVHJlZUl0ZW1zKGgsZCl9Y29sbGFwc2VUcmVlSXRlbXMoYSxkKXthLmZvckVhY2goaD0+e0pTT04uc3RyaW5naWZ5KGgpIT09SlNPTi5zdHJpbmdpZnkoZCkmJihoLmV4cGFuZGVkPSExKX0pfW1ldGFEYXRhT25DbGljayhhLGQpe3RoaXMub2JqZWN0Vmlldz0hMSx0aGlzLmxv'@; put 'Y2F0aW9uLnJlcGxhY2VTdGF0ZSgiL3ZpZXcvbWV0YWRhdGEiKSx0aGlzLnNob3dEYXRhPSExLHRoaXMubG9hZGluZz0hMCx0aGlzLnNlbGVjdG1ldGFEYXRhKGEsZCl9bWV0YU9iamVjdE9uQ2xpY2soYSxkKXt0aGlzLmFzc29PYmplY3RTZWxlY3RlZD0iIC4gIix0aGlzLnNob3dBY2M9ITEs'@; put 'dGhpcy5tZXRhT2JqZWN0QXR0cmlidXRlcz1bXSx0aGlzLnNlbGVjdG1ldGFPYmplY3QoYSxkKX1zZWxlY3RtZXRhRGF0YShhLGQpe3ZhciBoPXRoaXM7cmV0dXJuIFEoZnVuY3Rpb24qKCl7aC5zYXNTZXJ2aWNlLnJlcXVlc3QoIm1ldGFuYXYvbWV0YW9iamVjdHMiLHtTQVNDb250cm9sVGFi'@; put 'bGU6W3ttZXRhdHlwZTphLHJlcG86aC5yZXBvc2l0b3J5fV19KS50aGVuKHY9PntoLm1ldGFPYmplY3RMaXN0PXYuYWRhcHRlclJlc3BvbnNlLm9iamVjdHMsaC5nZXRNZXRhT2JqZWN0QXR0cmlidXRlcyhoLm1ldGFPYmplY3RTaXplKSxoLmxvYWRpbmc9ITEsaC5hc3NvVHlwZVNlbGVjdGVk'@; put 'PWEsaC5ldmVudFNlcnZpY2UuY2xvc2VTaWRlYmFyKCksaC5zaG93RGF0YT0hMH0pfSkoKX1zZWxlY3RtZXRhT2JqZWN0KGEsZCl7dmFyIGg9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXtoLnNhc1NlcnZpY2UucmVxdWVzdCgibWV0YW5hdi9tZXRhZGV0YWlscyIse1NBU0NvbnRyb2xUYWJs'@; put 'ZTpbe29iamVjdHVyaTphfV19KS50aGVuKHY9PntoLm1ldGFPYmplY3RBc3NvY2lhdGlvbnM9di5hZGFwdGVyUmVzcG9uc2UuYXNzb2NpYXRpb25zLGgucm9vdCQ9ZHMoaC5nZXRBc3Nvc2lhdGlvbnNDb3VudCh2LmFkYXB0ZXJSZXNwb25zZS5hc3NvY2lhdGlvbnMpKSxoLnNob3dBY2M9ITAs'@; put 'aC5zaG93VGFibGU9ITA7bGV0IE09di5hZGFwdGVyUmVzcG9uc2UuYXR0cmlidXRlcy5maW5kKEc9PiJOYW1lIj09PUcuTkFNRSkuVkFMVUU7aC5hc3NvT2JqZWN0U2VsZWN0ZWQ9TSxkLk5BTUU9TTtsZXQgST1oLnJvdXRlci51cmw7aC5sb2NhdGlvbi5yZXBsYWNlU3RhdGUoaC5vYmplY3RS'@; put 'b3V0ZT9JLnNsaWNlKDAsSS5sYXN0SW5kZXhPZigib2JqZWN0IikpKyJvYmplY3QvIithLnNsaWNlKDErYS5pbmRleE9mKCJcXCIpKTpJKyIvb2JqZWN0LyIrYS5zbGljZSgxK2EuaW5kZXhPZigiXFwiKSkpLGgubWV0YU9iamVjdEF0dHJpYnV0ZXM9di5hZGFwdGVyUmVzcG9uc2UuYXR0cmli'@; put 'dXRlc30pfSkoKX1zZWxlY3RBc3Nvc2lhdGlvbnNEZXRhaWxzKGEsZCl7dmFyIGg9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXtoLnNhc1NlcnZpY2UucmVxdWVzdCgibWV0YW5hdi9tZXRhZGV0YWlscyIse1NBU0NvbnRyb2xUYWJsZTpbe29iamVjdHVyaTphfV19KS50aGVuKHY9PntoLm1l'@; put 'dGFPYmplY3RBdHRyaWJ1dGVzPXYuYWRhcHRlclJlc3BvbnNlLmF0dHJpYnV0ZXMsaC5zaG93VGFibGU9ITB9KX0pKCl9Z2V0QXNzb3NpYXRpb25zQ291bnQoYSl7bGV0IGQ9bmV3IE1hcDtmb3IobGV0IGYgb2YgYSl7ZC5oYXMoZi5BU1NPQyl8fGQuc2V0KGYuQVNTT0Mse2NvdW50OjAsZGV0'@; put 'YWlsczpbXX0pO2xldCB2PWQuZ2V0KGYuQVNTT0MpO3YuY291bnQrKyx2LmRldGFpbHMucHVzaCh7QVNTT0NVUkk6Zi5BU1NPQ1VSSSxOQU1FOmYuTkFNRSxkaXNwbGF5OmYuTkFNRSxVUkk6Zi5BU1NPQ1VSSS5zbGljZShmLkFTU09DVVJJLmluZGV4T2YoIjoiKSsxKX0pfWxldCBoPVtdO3Jl'@; put 'dHVybiBkLmZvckVhY2goZnVuY3Rpb24oZix2KXtoLnB1c2goe0FTU09DOnYsY291bnQ6Zi5jb3VudCxkZXRhaWxzOmYuZGV0YWlscyxkaXNwbGF5OnYrIiAoICIrZi5jb3VudCsiICkifSl9KSxofXNldFR5cGVBc3Nvc2lhdGlvbnMoYSl7bGV0IGQ9W107Zm9yKGxldCBoIG9mIHRoaXMubWV0'@; put 'YU9iamVjdEFzc29jaWF0aW9ucyloLkFTU09DPT09YSYmZC5wdXNoKGgpO3JldHVybiB0aGlzLmFzc29zaWF0aW9uTmFtZXM9ZCxkfWFzc29zaWF0aW9uTmFtZU9uQ2xpY2soYSl7dGhpcy5hc3NvT2JqZWN0U2VsZWN0ZWQ9IiAuICIsdGhpcy5tZXRhT2JqZWN0QXR0cmlidXRlcz1bXSx0aGlz'@; put 'LnNob3dUYWJsZT0hMSx0aGlzLnNlbGVjdEFzc29zaWF0aW9uc0RldGFpbHMoYSl9bWV0YUxpc3RPbkZpbHRlcigpe3RoaXMuaGVscGVyU2VydmljZS5saWJyYXJ5T25GaWx0ZXIodGhpcy5tZXRhRGF0YUxpc3QsdGhpcy5tZXRhRGF0YVNlYXJjaCwiSUQiKSxKbi5tZXRhZGF0YS5tZXRhRGF0'@; put 'YVNlYXJjaD10aGlzLm1ldGFEYXRhU2VhcmNofW1ldGFPYmplY3RPbkZpbHRlcigpe3RoaXMubWV0YU9iamVjdEF0dHJpYnV0ZXM9W10sdGhpcy5oZWxwZXJTZXJ2aWNlLm1ldGFPYmplY3RPbkZpbHRlcih0aGlzLm1ldGFPYmplY3RMaXN0LHRoaXMubWV0YU9iamVjdFNlYXJjaCwiTkFNRSIp'@; put 'LHRoaXMuZ2V0TWV0YU9iamVjdEF0dHJpYnV0ZXModGhpcy5tZXRhT2JqZWN0U2l6ZSksSm4ubWV0YWRhdGEubWV0YU9iamVjdFNlYXJjaD10aGlzLm1ldGFPYmplY3RTZWFyY2h9Z2V0TWV0YU9iamVjdEF0dHJpYnV0ZXMoYSl7aWYodm9pZCAwIT09dGhpcy5tZXRhT2JqZWN0TGlzdCYmdGhp'@; put 'cy5tZXRhT2JqZWN0TGlzdC5sZW5ndGg+YSl7bGV0IGQ9MCxoPS0xO2ZvcihsZXQgZj0wO2Y8dGhpcy5tZXRhT2JqZWN0TGlzdC5sZW5ndGg7ZisrKWlmKCh2b2lkIDA9PT10aGlzLm1ldGFPYmplY3RMaXN0W2ZdLmhpZGRlbnx8ITE9PT10aGlzLm1ldGFPYmplY3RMaXN0W2ZdLmhpZGRlbikm'@; put 'JmQrKyxkPT09YSl7aD1mO2JyZWFrfXRoaXMubWV0YU9iamVjdFNob3dMaXN0PS0xIT09aD90aGlzLm1ldGFPYmplY3RMaXN0LnNsaWNlKDAsaCk6dGhpcy5tZXRhT2JqZWN0TGlzdH1lbHNlIHRoaXMubWV0YU9iamVjdFNob3dMaXN0PXRoaXMubWV0YU9iamVjdExpc3R9cGFuZWxDaGFuZ2Uo'@; put 'YSxkKXt0aGlzLmRlYm91bmNlfHwodGhpcy5tZXRhT2JqZWN0T25DbGljayhkLklELGQpLHRoaXMuZGVib3VuY2U9ITAsc2V0VGltZW91dCgoKT0+e3RoaXMuZGVib3VuY2U9ITF9LDYwMCkpfXVwZGF0ZVNlbGVjdGVkUmVwb3NpdG9yeSgpe0puLm1ldGFkYXRhLnNlbGVjdGVkUmVwb3NpdG9y'@; put 'eT10aGlzLnJlcG9zaXRvcnl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8YykoJGUobWMpLCRlKFZvKSwkZShidSksJGUocGgpLCRlKExvKSwkZSh5dSkpfX1zdGF0aWN7dGhpcy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1siYXBwLW1l'@; put 'dGFkYXRhIl1dLGhvc3RBdHRyczpbMSwiY29udGVudC1jb250YWluZXIiXSxkZWNsczoxNyx2YXJzOjgsY29uc3RzOltbInNlYXJjaExpYlRyZWVJbnB1dCIsIiJdLFsic2VhcmNoT2JqVHJlZUlucHV0IiwiIl0sWyJwYWdpbmF0aW9uIiwiIl0sWzEsInJlcG8tZHJvcGRvd24iXSxbImNsclNl'@; put 'bGVjdCIsIiIsImlkIiwicmVwb3NpdG9yeSIsMywibmdNb2RlbENoYW5nZSIsImNoYW5nZSIsIm5nTW9kZWwiXSxbMywidmFsdWUiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsiY2xhc3MiLCJzZWFyY2gtbm9kZSIsNCwibmdJZiJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiY29udGVudC1h'@; put 'cmVhIl0sWzEsImNhcmQiLCJiYWNrZ3JvdW5kLXRyYW5zcGFyZW50LWkiXSxbMSwiY29sb3ItZ3JheSJdLFsiY2xhc3MiLCJuby10YWJsZS1zZWxlY3RlZCIsNCwibmdJZiJdLFsiY2xhc3MiLCJsb2FkaW5nU3Bpbm5lciIsNCwibmdJZiJdLFsiY2xhc3MiLCJjbHItcm93IGNsci1mbGV4LWdy'@; put 'b3ctMSIsNCwibmdJZiJdLFszLCJ2YWx1ZSJdLFsxLCJzZWFyY2gtbm9kZSJdLFsxLCJ0cmVlLXNlYXJjaC13cmFwcGVyIl0sWyJhcHBTdGVhbEZvY3VzIiwiIiwiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsInNlYXJjaCBTQVMgVHlwZXMiLCJuYW1lIiwiaW5wdXQiLCJhdXRvY29tcGxl'@; put 'dGUiLCJvZmYiLDMsIm5nTW9kZWxDaGFuZ2UiLCJrZXl1cCIsIm5nTW9kZWwiXSxbInNoYXBlIiwic2VhcmNoIiw0LCJuZ0lmIl0sWyJzaGFwZSIsInRpbWVzIiwzLCJjbGljayIsNCwibmdJZiJdLFsic2hhcGUiLCJzZWFyY2giXSxbInNoYXBlIiwidGltZXMiLDMsImNsaWNrIl0sWzMsImNs'@; put 'ckV4cGFuZGVkIiwiY2xyTG9hZGluZyIsImNsaWNrIiwiY2xyRXhwYW5kZWRDaGFuZ2UiLDQsIm5nSWYiXSxbMywiY2xpY2siLCJjbHJFeHBhbmRlZENoYW5nZSIsImNsckV4cGFuZGVkIiwiY2xyTG9hZGluZyJdLFsxLCJtLTAiLCJjdXJzb3ItcG9pbnRlciIsMywiY2xpY2siXSxbInNoYXBl'@; put 'IiwiYmxvY2siXSxbMSwibm8tdGFibGUtc2VsZWN0ZWQiXSxbInNoYXBlIiwid2FybmluZy1zdGFuZGFyZCIsInNpemUiLCI2MCIsMSwiaXMtaW5mbyIsImljb24tZGMtZmlsbCJdLFsiY2RzLXRleHQiLCJzZWN0aW9uIiwxLCJ0ZXh0LWNlbnRlciIsImNvbG9yLWdyYXkiLCJtdC0xMCJdLFsx'@; put 'LCJsb2FkaW5nU3Bpbm5lciJdLFsxLCJzcGlubmVyIl0sWzQsIm5nSWYiXSxbMSwiY2xyLXJvdyIsImNsci1mbGV4LWdyb3ctMSJdLFsxLCJjbHItY29sLTYiXSxbImNsYXNzIiwic2VhcmNoLWlucHV0Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsIm9iamVjdHMtY29sIiw0LCJuZ0lmIl0sWzEsImNs'@; put 'ci1jb2wtNiIsInRleHQtY2VudGVyIl0sWyJjbGFzcyIsImRhdGFncmlkLWN1c3RvbS1mb290ZXIiLDQsIm5nSWYiXSxbMSwic2VhcmNoLWlucHV0Il0sWyJjbHJJbnB1dCIsIiIsInBsYWNlaG9sZGVyIiwic2VhcmNoIiwibmFtZSIsImlucHV0IiwiYXV0b2NvbXBsZXRlIiwib2ZmIiwzLCJu'@; put 'Z01vZGVsQ2hhbmdlIiwia2V5dXAiLCJuZ01vZGVsIl0sWzEsIm9iamVjdHMtY29sIl0sWzMsImNsckFjY29yZGlvblBhbmVsT3BlbkNoYW5nZSIsNCwibmdJZiJdLFszLCJjbHJBY2NvcmRpb25QYW5lbE9wZW5DaGFuZ2UiXSxbInNoYXBlIiwicmFjay1zZXJ2ZXIiXSxbMSwiZmxvYXQtcmln'@; put 'aHQiXSxbNCwiY2xySWZFeHBhbmRlZCJdLFszLCJjbHJMYXp5Iiw0LCJuZ0lmIl0sWzMsImNsckxhenkiXSxbMywiY2xyRXhwYW5kYWJsZSIsNCwiY2xyUmVjdXJzaXZlRm9yIiwiY2xyUmVjdXJzaXZlRm9yT2YiLCJjbHJSZWN1cnNpdmVGb3JHZXRDaGlsZHJlbiJdLFszLCJjbHJFeHBhbmRh'@; put 'YmxlIl0sWzEsImZ1bGwtd2lkdGgiXSxbInNoYXBlIiwicmFjay1zZXJ2ZXIiLDQsIm5nSWYiXSxbInNoYXBlIiwiYmxvY2siLDQsIm5nSWYiXSxbImNsYXNzIiwiZmxvYXQtcmlnaHQgb2JqZWN0LXVyaSIsNCwibmdJZiJdLFsxLCJmbG9hdC1yaWdodCIsIm9iamVjdC11cmkiXSxbMSwiY29s'@; put 'cy1oZWFkIl0sWzEsIm9iamVjdC10ZXh0Il0sWzEsIm0tMCIsIndvcmQtYnJlYWsiLCJtci0yMCJdLFsxLCJmbG9hdC1yaWdodCIsIm1sLTMiXSxbMSwiZGF0YWdyaWQtY3VzdG9tLWZvb3RlciJdLFszLCJjbHJEZ1N0cmluZ0ZpbHRlciJdLFs0LCJjbHJEZ0l0ZW1zIiwiY2xyRGdJdGVtc09m'@; put 'Il0sWzMsImNsckRnUGFnZVNpemUiXSxbMywiY2xyUGFnZVNpemVPcHRpb25zIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGQsaCl7MSZkJiYoZGUoMCwiYXBwLXNpZGViYXIiKSgxLCJkaXYiLDMpKDIsImNsci1zZWxlY3QtY29udGFpbmVyIikoMywibGFiZWwiKSxPZSg0LCJNZXRhZGF0YSBSZXBv'@; put 'c2l0b3J5IiksaGUoKSxkZSg1LCJzZWxlY3QiLDQpLHBpKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih2KXtyZXR1cm4gZ2koaC5yZXBvc2l0b3J5LHYpfHwoaC5yZXBvc2l0b3J5PXYpLHZ9KSxGdCgiY2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBoLnVwZGF0ZVNlbGVjdGVkUmVwb3NpdG9y'@; put 'eSgpfSksZ3QoNixnQXQsMiwyLCJvcHRpb24iLDUpLGhlKCkoKSgpLGRlKDcsImNsci10cmVlIiksZ3QoOCx5QXQsNiwzLCJjbHItdHJlZS1ub2RlIiw2KSg5LF9BdCwyLDEsIm5nLWNvbnRhaW5lciIsNyksaGUoKSgpLGRlKDEwLCJkaXYiLDgpKDExLCJkaXYiLDkpKDEyLCJoMyIsMTApLE9l'@; put 'KDEzKSxoZSgpLGd0KDE0LHdBdCw0LDAsImRpdiIsMTEpKDE1LHhBdCw0LDEsImRpdiIsMTIpKDE2LFdBdCwxMCw1LCJkaXYiLDEzKSxoZSgpKCkpLDImZCYmKGZlKDUpLGZpKCJuZ01vZGVsIixoLnJlcG9zaXRvcnkpLGZlKCksTWUoIm5nRm9yT2YiLGgucmVwb3NpdG9yaWVzKSxmZSgyKSxN'@; put 'ZSgibmdJZiIsaC5tZXRhRGF0YUxpc3QpLGZlKCksTWUoIm5nRm9yT2YiLGgubWV0YURhdGFMaXN0KSxmZSg0KSxTcihoLmFzc29UeXBlU2VsZWN0ZWQpLGZlKCksTWUoIm5nSWYiLCFoLmxvYWRpbmcmJiFoLm1ldGFPYmplY3RMaXN0KSxmZSgpLE1lKCJuZ0lmIixoLmxvYWRpbmcpLGZlKCks'@; put 'TWUoIm5nSWYiLGguc2hvd0RhdGEpKX0sZGVwZW5kZW5jaWVzOltRcyxiYSxEMixJMixHbCxrMix0bCxXbyx4bSxyMyxSNyxmTyxLYixuRSxwTyxTbSxHZGUseHAsTDcsSmIsTW0sazcsQ20sRDcsV2IsQWgsUGQsZWhlLE9sLFYwLFgxZSxjbyxZMSxFNyxaYixGMWUsQkwsTjFlLEgxZSxWMWUs'@; put 'T1ksYTQsaTQsSU1dLGVuY2Fwc3VsYXRpb246Mn0pfXN0YXRpY3t0aGlzLlx1MDI3NXByb3Y9cm4oe3Rva2VuOmMsZmFjdG9yeTpjLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pfX1yZXR1cm4gY30pKCk7ZnVuY3Rpb24gS0F0KGMsbCl7MSZjJiZXdCgwLCJjbHItaWNvbiIsMTIpfWZ1'@; put 'bmN0aW9uIFhBdChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImNsci1pY29uIiwxMyksRnQoImNsaWNrIixmdW5jdGlvbigpe3d0KGEpO2NvbnN0IGg9TGUoMik7cmV0dXJuIGgucm9sZVNlYXJjaD0iIixDdChoLnJvbGVMaXN0T25GaWx0ZXIoKSl9KSxoZSgpfX1mdW5jdGlvbiBx'@; put 'QXQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJjbHItdHJlZS1ub2RlIiw3KSgxLCJkaXYiLDgpKDIsImlucHV0Iiw5LDApLHBpKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihoKXt3dChhKTtjb25zdCBmPUxlKCk7cmV0dXJuIGdpKGYucm9sZVNlYXJjaCxoKXx8KGYucm9sZVNl'@; put 'YXJjaD1oKSxDdChoKX0pLEZ0KCJrZXl1cCIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoKS5yb2xlTGlzdE9uRmlsdGVyKCkpfSksaGUoKSxndCg0LEtBdCwxLDAsImNsci1pY29uIiwxMCkoNSxYQXQsMSwwLCJjbHItaWNvbiIsMTEpLGhlKCkoKX1pZigyJmMpe2NvbnN0IGE9ZGEo'@; put 'MyksZD1MZSgpO2ZlKDIpLGZpKCJuZ01vZGVsIixkLnJvbGVTZWFyY2gpLGZlKDIpLE1lKCJuZ0lmIixhLnZhbHVlLmxlbmd0aDwxKSxmZSgpLE1lKCJuZ0lmIixhLnZhbHVlLmxlbmd0aD4wKX19ZnVuY3Rpb24gSkF0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiY2xyLXRyZWUt'@; put 'bm9kZSIsMTUpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKCkuJGltcGxpY2l0O3JldHVybiBDdChMZSgpLnJvbGVPbkNsaWNrKGgpKX0pLGRlKDEsInAiLDE2KSxXdCgyLCJjbHItaWNvbiIsMTcpLE9lKDMpLGhlKCkoKX1pZigyJmMpe2NvbnN0IGE9TGUoKS4kaW1w'@; put 'bGljaXQsZD1MZSgpO1RyKCJhY3RpdmUiLGEuUk9MRVVSST09PWQucm9sZVVyaSksZmUoMyksTHIoIiAiLGEuUk9MRU5BTUUsIiAiKX19ZnVuY3Rpb24gUUF0KGMsbCl7aWYoMSZjJiYoYWkoMCksZ3QoMSxKQXQsNCwzLCJjbHItdHJlZS1ub2RlIiwxNCksc2koKSksMiZjKXtjb25zdCBhPWwu'@; put 'JGltcGxpY2l0O2ZlKCksTWUoIm5nSWYiLCFhLmhpZGRlbil9fWZ1bmN0aW9uIGVrdChjLGwpezEmYyYmKGRlKDAsImRpdiIsMTgpKDEsInNwYW4iLDE5KSxPZSgyLCIgTG9hZGluZy4uLiAiKSxoZSgpKCkpfWZ1bmN0aW9uIHRrdChjLGwpezEmYyYmKGRlKDAsImg1IiksT2UoMSwiTm8gTWVt'@; put 'YmVycyBQcmVzZW50IiksaGUoKSl9ZnVuY3Rpb24gbmt0KGMsbCl7aWYoMSZjJiYoZGUoMCwidHIiLDMyKSgxLCJ0ZCIsMzApLE9lKDIpLGhlKCksZGUoMywidGQiLDMwKSxPZSg0KSxoZSgpLGRlKDUsInRkIiwzMCksT2UoNiksaGUoKSxkZSg3LCJ0ZCIsMzApLE9lKDgpLGhlKCkoKSksMiZj'@; put 'KXtjb25zdCBhPWwuJGltcGxpY2l0O01lKCJyb3V0ZXJMaW5rIiwiL3ZpZXcvdXNlcm5hdi91c2Vycy8iK2EuVVJJTUVNKSxmZSgyKSxTcihhLk1FTUJFUk5BTUUpLGZlKDIpLFNyKGEuRU1BSUwpLGZlKDIpLFNyKGEuTUVNQkVSQ1JFQVRFRCksZmUoMiksU3IoYS5NRU1CRVJVUERBVEVEKX19'@; put 'ZnVuY3Rpb24gcmt0KGMsbCl7aWYoMSZjJiYoZGUoMCwidGFibGUiLDI4KSgxLCJ0aGVhZCIpKDIsInRyIikoMywidGQiLDI5KSg0LCJiIiksT2UoNSwiTkFNRSIpLGhlKCkoKSxkZSg2LCJ0ZCIsMjkpKDcsImIiKSxPZSg4LCJFTUFJTCIpLGhlKCkoKSxkZSg5LCJ0ZCIsMjkpKDEwLCJiIiks'@; put 'T2UoMTEsIkNSRUFURUQiKSxoZSgpKCksZGUoMTIsInRkIiwzMCkoMTMsImIiKSxPZSgxNCwiVVBEQVRFRCIpLGhlKCkoKSgpKCksZGUoMTUsInRib2R5IiksZ3QoMTYsbmt0LDksNSwidHIiLDMxKSxoZSgpKCkpLDImYyl7Y29uc3QgYT1MZSgyKTtmZSgxNiksTWUoIm5nRm9yT2YiLGEucm9s'@; put 'ZU1lbWJlcnMpfX1mdW5jdGlvbiBpa3QoYyxsKXsxJmMmJihkZSgwLCJoNSIpLE9lKDEsIk5vIEdyb3VwcyBQcmVzZW50ICEiKSxoZSgpKX1mdW5jdGlvbiBha3QoYyxsKXtpZigxJmMmJihkZSgwLCJ0ciIsMzIpKDEsInRkIiwzMCksT2UoMiksaGUoKSxkZSgzLCJ0ZCIsMzApLE9lKDQpLGhl'@; put 'KCksZGUoNSwidGQiLDMwKSxPZSg2KSxoZSgpLGRlKDcsInRkIiwzMCksT2UoOCksaGUoKSgpKSwyJmMpe2NvbnN0IGE9bC4kaW1wbGljaXQ7TWUoInJvdXRlckxpbmsiLCIvdmlldy91c2VybmF2L2dyb3Vwcy8iK2EuVVJJTUVNKSxmZSgyKSxTcihhLk1FTUJFUk5BTUUpLGZlKDIpLFNyKGEu'@; put 'RU1BSUwpLGZlKDIpLFNyKGEuTUVNQkVSQ1JFQVRFRCksZmUoMiksU3IoYS5NRU1CRVJVUERBVEVEKX19ZnVuY3Rpb24gc2t0KGMsbCl7aWYoMSZjJiYoZGUoMCwidGFibGUiLDI4KSgxLCJ0aGVhZCIpKDIsInRyIikoMywidGQiLDI5KSg0LCJiIiksT2UoNSwiTkFNRSIpLGhlKCkoKSxkZSg2'@; put 'LCJ0ZCIsMjkpKDcsImIiKSxPZSg4LCJFTUFJTCIpLGhlKCkoKSxkZSg5LCJ0ZCIsMjkpKDEwLCJiIiksT2UoMTEsIkNSRUFURUQiKSxoZSgpKCksZGUoMTIsInRkIiwzMCkoMTMsImIiKSxPZSgxNCwiVVBEQVRFRCIpLGhlKCkoKSgpKCksZGUoMTUsInRib2R5IiksZ3QoMTYsYWt0LDksNSwi'@; put 'dHIiLDMxKSxoZSgpKCkpLDImYyl7Y29uc3QgYT1MZSgyKTtmZSgxNiksTWUoIm5nRm9yT2YiLGEucm9sZUdyb3Vwcyl9fWZ1bmN0aW9uIG9rdChjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIpKDEsImRpdiIsMjApKDIsImRpdiIsMjEpKDMsInRhYmxlIiwyMikoNCwidGJvZHkiKSg1LCJ0ciIp'@; put 'KDYsInRkIiwyMykoNywicCIsMjQpKDgsImIiKSxPZSg5KSxoZSgpKCkoKSgpLGRlKDEwLCJ0ciIpKDExLCJ0ZCIsMjMpKDEyLCJpIiksT2UoMTMpLGhlKCkoKSgpKCkoKSgpKCksZGUoMTQsImRpdiIsMjApKDE1LCJkaXYiLDIxKSgxNiwiZGl2IiwyNSkoMTcsImRpdiIpKDE4LCJoMyIpLE9l'@; put 'KDE5KSxoZSgpLGd0KDIwLHRrdCwyLDAsImg1Iiw2KSxkZSgyMSwiZGl2IiwyNiksZ3QoMjIscmt0LDE3LDEsInRhYmxlIiwyNyksaGUoKSgpLFd0KDIzLCJociIpLGRlKDI0LCJkaXYiKSgyNSwiaDMiKSxPZSgyNiksaGUoKSxndCgyNyxpa3QsMiwwLCJoNSIsNiksZGUoMjgsImRpdiIsMjYp'@; put 'LGd0KDI5LHNrdCwxNywxLCJ0YWJsZSIsMjcpLGhlKCkoKSxXdCgzMCwiYnIiKSxoZSgpKCkoKSgpKSwyJmMpe2NvbnN0IGE9TGUoKTtmZSg5KSxTcihhLnJvbGVOYW1lKSxmZSg0KSxTcihhLnJvbGVEZXNjKSxmZSg2KSxMcigiTUVNQkVSUyAoIixhLnJvbGVNZW1iZXJzQ291bnQsIikiKSxm'@; put 'ZSgpLE1lKCJuZ0lmIiwwPT1hLnJvbGVNZW1iZXJzQ291bnQpLGZlKDIpLE1lKCJuZ0lmIiwwIT1hLnJvbGVNZW1iZXJzQ291bnQpLGZlKDQpLExyKCJHcm91cHMgKCIsYS5yb2xlR3JvdXBzQ291bnQsIikiKSxmZSgpLE1lKCJuZ0lmIiwwPT1hLnJvbGVHcm91cHNDb3VudCksZmUoMiksTWUo'@; put 'Im5nSWYiLDAhPWEucm9sZUdyb3Vwc0NvdW50KX19bGV0IEI3ZT0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoLGYsdil7dGhpcy5zYXNTZXJ2aWNlPWEsdGhpcy5oZWxwZXJTZXJ2aWNlPWQsdGhpcy5yb3V0ZXI9aCx0aGlzLmxvY2F0aW9uPWYsdGhpcy5yb3V0ZT12LHRoaXMucm9s'@; put 'ZVNlYXJjaD0iIix0aGlzLnJvbGVVcmk9IiIsdGhpcy5yb2xlTmFtZT0iIix0aGlzLnJvbGVEZXNjPSIiLHRoaXMucGFyYW1QcmVzZW50PSExLHRoaXMucGFyYW1VUkk9IiIsdGhpcy5sb2FkaW5nPSExfW5nT25Jbml0KCl7Sm4udmlld2VyLmN1cnJlbnRTZWxlY3Rpb249InZpZXcvdXNlcm5h'@; put 'di9yb2xlcyIsdm9pZCAwIT09dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMudXJpJiYodGhpcy5wYXJhbVByZXNlbnQ9ITAsdGhpcy5wYXJhbVVSST10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy51cmkpLEpuLnVzZXJuYXYucm9sZUxpc3QmJiF0aGlzLnBhcmFtUHJlc2VudD8odGhpcy5y'@; put 'b2xlcz1Kbi51c2VybmF2LnJvbGVMaXN0LHRoaXMucm9sZVNlYXJjaD1Kbi51c2VybmF2LnJvbGVTZWFyY2gpOnZvaWQgMD09PUpuLnVzZXJuYXYucm9sZUxpc3Q/KHRoaXMubG9hZGluZz0hMCx0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgidXNlcm5hdi91c2Vycm9sZXMiLG51bGwpLnRoZW4o'@; put 'YT0+e2lmKHRoaXMubG9hZGluZz0hMSx0aGlzLnJvbGVzPWEuYWRhcHRlclJlc3BvbnNlLnJvbGVzLEpuLnVzZXJuYXYucm9sZUxpc3Q9YS5hZGFwdGVyUmVzcG9uc2Uucm9sZXMsdGhpcy5wYXJhbVByZXNlbnQmJnZvaWQgMCE9PXRoaXMucm9sZXMpe2xldCBkPXRoaXMuZmluZFJvbGUodGhp'@; put 'cy5yb2xlcyx0aGlzLnBhcmFtVVJJKTshMSE9PWQmJih0aGlzLmxvYWRpbmc9ITAsdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInVzZXJuYXYvdXNlcm1lbWJlcnNieXJvbGUiLHtpd2FudDpbe3JvbGVpZDp0aGlzLnBhcmFtVVJJfV19KS50aGVuKGY9Pnt0aGlzLmxvYWRpbmc9ITEsdGhpcy5y'@; put 'b2xlTWVtYmVycz1mLmFkYXB0ZXJSZXNwb25zZS5zYXNtZW1iZXJzLHRoaXMucm9sZU1lbWJlcnNDb3VudD1mLmFkYXB0ZXJSZXNwb25zZS5zYXNtZW1iZXJzLmxlbmd0aCx0aGlzLnJvbGVHcm91cHM9Zi5hZGFwdGVyUmVzcG9uc2Uuc2FzZ3JvdXBzLHRoaXMucm9sZUdyb3Vwc0NvdW50PWYu'@; put 'YWRhcHRlclJlc3BvbnNlLnNhc2dyb3Vwcy5sZW5ndGgsdGhpcy5yb2xlVXJpPWQuUk9MRVVSSSx0aGlzLnJvbGVOYW1lPWQuUk9MRU5BTUUsdGhpcy5yb2xlRGVzYz1kLlJPTEVERVNDfSkpfX0pKToodGhpcy5yb2xlcz1Kbi51c2VybmF2LnJvbGVMaXN0LHRoaXMucm9sZVNlYXJjaD1Kbi51'@; put 'c2VybmF2LnJvbGVTZWFyY2gsdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInVzZXJuYXYvdXNlcnJvbGVzIixudWxsKS50aGVuKGE9PntpZih0aGlzLnJvbGVzPWEuYWRhcHRlclJlc3BvbnNlLnJvbGVzLEpuLnVzZXJuYXYucm9sZUxpc3Q9YS5hZGFwdGVyUmVzcG9uc2Uucm9sZXMsdGhpcy5w'@; put 'YXJhbVByZXNlbnQmJnZvaWQgMCE9PXRoaXMucm9sZXMpe2xldCBkPXRoaXMuZmluZFJvbGUodGhpcy5yb2xlcyx0aGlzLnBhcmFtVVJJKTshMSE9PWQmJih0aGlzLmxvYWRpbmc9ITAsdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInVzZXJuYXYvdXNlcm1lbWJlcnNieXJvbGUiLHtpd2FudDpb'@; put 'e3JvbGVpZDp0aGlzLnBhcmFtVVJJfV19KS50aGVuKGY9Pnt0aGlzLmxvYWRpbmc9ITEsdGhpcy5yb2xlTWVtYmVycz1mLmFkYXB0ZXJSZXNwb25zZS5zYXNtZW1iZXJzLHRoaXMucm9sZU1lbWJlcnNDb3VudD1mLmFkYXB0ZXJSZXNwb25zZS5zYXNtZW1iZXJzLmxlbmd0aCx0aGlzLnJvbGVH'@; put 'cm91cHM9Zi5hZGFwdGVyUmVzcG9uc2Uuc2FzZ3JvdXBzLHRoaXMucm9sZUdyb3Vwc0NvdW50PWYuYWRhcHRlclJlc3BvbnNlLnNhc2dyb3Vwcy5sZW5ndGgsdGhpcy5yb2xlVXJpPWQuUk9MRVVSSSx0aGlzLnJvbGVOYW1lPWQuUk9MRU5BTUUsdGhpcy5yb2xlRGVzYz1kLlJPTEVERVNDfSkp'@; put 'fX0pKX1yb2xlTGlzdE9uRmlsdGVyKCl7dGhpcy5oZWxwZXJTZXJ2aWNlLmxpYnJhcnlPbkZpbHRlcih0aGlzLnJvbGVzLHRoaXMucm9sZVNlYXJjaCwiUk9MRU5BTUUiKSxKbi51c2VybmF2LnJvbGVTZWFyY2g9dGhpcy5yb2xlU2VhcmNofXJvbGVPbkNsaWNrKGEpe3RoaXMubG9hZGluZz0h'@; put 'MDtsZXQgZD10aGlzLnJvdXRlci51cmw7dGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUodGhpcy5wYXJhbVByZXNlbnQ/ZC5zbGljZSgwLGQubGFzdEluZGV4T2YoIi8iKSkrIi8iK2VuY29kZVVSSShhLlJPTEVVUkkpOmQrIi8iK2VuY29kZVVSSShhLlJPTEVVUkkpKSx0aGlzLnNhc1NlcnZp'@; put 'Y2UucmVxdWVzdCgidXNlcm5hdi91c2VybWVtYmVyc2J5cm9sZSIse2l3YW50Olt7cm9sZWlkOmEuUk9MRVVSSX1dfSkudGhlbihmPT57dGhpcy5sb2FkaW5nPSExLHRoaXMucm9sZU1lbWJlcnM9Zi5hZGFwdGVyUmVzcG9uc2Uuc2FzbWVtYmVycyx0aGlzLnJvbGVNZW1iZXJzQ291bnQ9Zi5h'@; put 'ZGFwdGVyUmVzcG9uc2Uuc2FzbWVtYmVycy5sZW5ndGgsdGhpcy5yb2xlR3JvdXBzPWYuYWRhcHRlclJlc3BvbnNlLnNhc2dyb3Vwcyx0aGlzLnJvbGVHcm91cHNDb3VudD1mLmFkYXB0ZXJSZXNwb25zZS5zYXNncm91cHMubGVuZ3RoLHRoaXMucm9sZVVyaT1hLlJPTEVVUkksdGhpcy5yb2xl'@; put 'TmFtZT1hLlJPTEVOQU1FLHRoaXMucm9sZURlc2M9YS5ST0xFREVTQ30pfWZpbmRSb2xlKGEsZCl7bGV0IGg9ITE7cmV0dXJuIGEuZm9yRWFjaChmPT57Zi5ST0xFVVJJPT09ZCYmKGg9Zil9KSxofXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpKCRl'@; put 'KFZvKSwkZShidSksJGUoTG8pLCRlKHBoKSwkZSh5dSkpfX1zdGF0aWN7dGhpcy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1siYXBwLXJvbGUiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xzOjcsdmFyczo0LGNvbnN0czpbWyJzZWFyY2hMaWJUcmVl'@; put 'SW5wdXQiLCIiXSxbMSwic2lkZWJhci1oZWlnaHQiXSxbImNsYXNzIiwic2VhcmNoLW5vZGUiLDQsIm5nSWYiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImNvbnRlbnQtYXJlYSJdLFsiY2xhc3MiLCJsb2FkaW5nU3Bpbm5lciIsNCwibmdJZiJdLFs0LCJuZ0lmIl0sWzEsInNlYXJjaC1u'@; put 'b2RlIl0sWzEsInRyZWUtc2VhcmNoLXdyYXBwZXIiXSxbImFwcFN0ZWFsRm9jdXMiLCIiLCJjbHJJbnB1dCIsIiIsInBsYWNlaG9sZGVyIiwiRmlsdGVyIGJ5IFJvbGVzIiwibmFtZSIsImlucHV0IiwiYXV0b2NvbXBsZXRlIiwib2ZmIiwzLCJuZ01vZGVsQ2hhbmdlIiwia2V5dXAiLCJuZ01v'@; put 'ZGVsIl0sWyJzaGFwZSIsInNlYXJjaCIsNCwibmdJZiJdLFsic2hhcGUiLCJ0aW1lcyIsMywiY2xpY2siLDQsIm5nSWYiXSxbInNoYXBlIiwic2VhcmNoIl0sWyJzaGFwZSIsInRpbWVzIiwzLCJjbGljayJdLFszLCJhY3RpdmUiLCJjbGljayIsNCwibmdJZiJdLFszLCJjbGljayJdLFsxLCJt'@; put 'LTAiLCJjdXJzb3ItcG9pbnRlciIsImxpc3QtcGFkZGluZyJdLFsic2hhcGUiLCJibG9ja3MtZ3JvdXAiXSxbMSwibG9hZGluZ1NwaW5uZXIiXSxbMSwic3Bpbm5lciJdLFsxLCJjbHItcm93Il0sWzEsImNsci1jb2wtOCJdLFsxLCJ0YWJsZSIsInJvbGUtaW5mbyJdLFsxLCJsZWZ0Il0sWzEs'@; put 'InJvbGUtaW5mby10ZXh0Il0sWzEsImNhcmQiLCJyb2xlLWRhdGEiXSxbMSwidGFibGUtY29udGFpbmVyIl0sWyJjbGFzcyIsInRhYmxlIG1lbWJlci10YWJsZSIsNCwibmdJZiJdLFsxLCJ0YWJsZSIsIm1lbWJlci10YWJsZSJdLFsxLCJ3aWR0aC0yNSJdLFsxLCIiXSxbMywicm91dGVyTGlu'@; put 'ayIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzMsInJvdXRlckxpbmsiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oZCxoKXsxJmQmJihkZSgwLCJhcHAtc2lkZWJhciIsMSkoMSwiY2xyLXRyZWUiKSxndCgyLHFBdCw2LDMsImNsci10cmVlLW5vZGUiLDIpKDMsUUF0LDIsMSwibmctY29udGFpbmVyIiwz'@; put 'KSxoZSgpKCksZGUoNCwiZGl2Iiw0KSxndCg1LGVrdCwzLDAsImRpdiIsNSkoNixva3QsMzEsOCwiZGl2Iiw2KSxoZSgpKSwyJmQmJihmZSgyKSxNZSgibmdJZiIsaC5yb2xlcyksZmUoKSxNZSgibmdGb3JPZiIsaC5yb2xlcyksZmUoMiksTWUoIm5nSWYiLGgubG9hZGluZyksZmUoKSxNZSgi'@; put 'bmdJZiIsaC5yb2xlTWVtYmVycyYmIWgubG9hZGluZykpfSxkZXBlbmRlbmNpZXM6W1FzLGJhLGwxLEdsLHRsLFdvLEFoLFBkLE9sLFkxLGE0LGk0XSxzdHlsZXM6WyI6Om5nLWRlZXAgYm9keVtjZHMtdGhlbWU9ZGFya10gLnJvbGV7YmFja2dyb3VuZC1jb2xvcjojMzE0MzUxO2JvcmRlci1j'@; put 'b2xvcjojMzE0MzUxfTo6bmctZGVlcCBib2R5W2Nkcy10aGVtZT1kYXJrXSAucm9sZS1kYXRhe2JhY2tncm91bmQtY29sb3I6IzMxNDM1MTtib3JkZXItY29sb3I6IzMxNDM1MX06Om5nLWRlZXAgYm9keVtjZHMtdGhlbWU9ZGFya10gLm1lbWJlci10YWJsZSB0Ym9keSB0cjpob3ZlcntiYWNr'@; put 'Z3JvdW5kLWNvbG9yOiMyOTQwNGJ9OjpuZy1kZWVwIGJvZHlbY2RzLXRoZW1lPWxpZ2h0XSAucm9sZS1pbmZve2JhY2tncm91bmQtY29sb3I6I2Y5ZjlmOTtib3JkZXItY29sb3I6I2E3YTdhNztib3gtc2hhZG93OjAgMnB4IDVweCAjZGFkN2Q3fTo6bmctZGVlcCBib2R5W2Nkcy10aGVtZT1s'@; put 'aWdodF0gLnJvbGUtZGF0YXtiYWNrZ3JvdW5kLWNvbG9yOiNmOWY5Zjk7Ym9yZGVyLWNvbG9yOiNhN2E3YTc7Ym94LXNoYWRvdzowIDJweCA1cHggI2RhZDdkN306Om5nLWRlZXAgYm9keVtjZHMtdGhlbWU9bGlnaHRdIC5tZW1iZXItdGFibGUgdGJvZHkgdHI6aG92ZXJ7YmFja2dyb3VuZC1j'@; put 'b2xvcjojZTZlNmU2fS5zaWRlYmFyLWhlaWdodHtoZWlnaHQ6MTAwJX0ucm9sZS1pbmZvLXRleHR7ZGlzcGxheTppbmxpbmU7Zm9udC1zaXplOjIwcHh9LnJvbGUtaW5mb3tib3JkZXI6MXB4IHNvbGlkO2JvcmRlci1yYWRpdXM6M3B4fS5yb2xlLWluZm8gdGR7dGV4dC1hbGlnbjpjZW50ZXJ9'@; put 'LnJvbGUtZGF0YXtib3JkZXI6MXB4IHNvbGlkO2JvcmRlci1yYWRpdXM6M3B4fS5yb2xlLWRhdGF7bWluLWhlaWdodDp1bnNldH0ucm9sZS1kYXRhIGgzLC5yb2xlLWRhdGEgaDV7dGV4dC1hbGlnbjpjZW50ZXJ9Lm1lbWJlci10YWJsZXt3aWR0aDoxMDAlfS5tZW1iZXItdGFibGUgdGJvZHkg'@; put 'dHI6aG92ZXJ7Y3Vyc29yOnBvaW50ZXJ9LnRhYmxlLWNvbnRhaW5lcntvdmVyZmxvdy15OnNjcm9sbDttYXgtaGVpZ2h0OjcwMHB4fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXsucm9sZS1kYXRhe21pbi1oZWlnaHQ6dW5zZXQhaW1wb3J0YW50fX1cbiJdLGVuY2Fwc3Vs'@; put 'YXRpb246Mn0pfX1yZXR1cm4gY30pKCksbGt0PSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoKXt9bmdPbkluaXQoKXt9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpb'@; put 'WyJhcHAtdXNlcm5hdi1yb3V0ZSJdXSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oZCxoKXsxJmQmJld0KDAsInJvdXRlci1vdXRsZXQiKX0sZGVwZW5kZW5jaWVzOltuZ10sZW5jYXBzdWxhdGlvbjoyfSl9fXJldHVy'@; put 'biBjfSkoKSxja3Q9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe31uZ09uSW5pdCgpe31uZ09uRGVzdHJveSgpe31zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKX19c3RhdGlje3RoaXMuXHUwMjc1Y21wPU5yKHt0eXBlOmMsc2VsZWN0b3JzOltb'@; put 'ImFwcC12aWV3LXJvdXRlIl1dLGhvc3RBdHRyczpbMSwiY29udGVudC1jb250YWluZXIiXSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihkLGgpezEmZCYmV3QoMCwicm91dGVyLW91dGxldCIpfSxkZXBlbmRlbmNpZXM6W25nXSxlbmNhcHN1bGF0aW9uOjJ9KX19cmV0dXJuIGN9'@; put 'KSgpO2Z1bmN0aW9uIHVrdChjLGwpezEmYyYmV3QoMCwiY2xyLWljb24iLDEyKX1mdW5jdGlvbiBka3QoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJjbHItaWNvbiIsMTMpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKDIpO3JldHVybiBoLnVzZXJTZWFy'@; put 'Y2g9IiIsQ3QoaC51c2VyTGlzdE9uRmlsdGVyKCkpfSksaGUoKX19ZnVuY3Rpb24gaGt0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiY2xyLXRyZWUtbm9kZSIsNykoMSwiZGl2Iiw4KSgyLCJpbnB1dCIsOSwwKSxwaSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oaCl7d3QoYSk7'@; put 'Y29uc3QgZj1MZSgpO3JldHVybiBnaShmLnVzZXJTZWFyY2gsaCl8fChmLnVzZXJTZWFyY2g9aCksQ3QoaCl9KSxGdCgia2V5dXAiLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKCkudXNlckxpc3RPbkZpbHRlcigpKX0pLGhlKCksZ3QoNCx1a3QsMSwwLCJjbHItaWNvbiIsMTApKDUs'@; put 'ZGt0LDEsMCwiY2xyLWljb24iLDExKSxoZSgpKCl9aWYoMiZjKXtjb25zdCBhPWRhKDMpLGQ9TGUoKTtmZSgyKSxmaSgibmdNb2RlbCIsZC51c2VyU2VhcmNoKSxmZSgyKSxNZSgibmdJZiIsYS52YWx1ZS5sZW5ndGg8MSksZmUoKSxNZSgibmdJZiIsYS52YWx1ZS5sZW5ndGg+MCl9fWZ1bmN0'@; put 'aW9uIGZrdChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImNsci10cmVlLW5vZGUiLDE1KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7d3QoYSk7Y29uc3QgaD1MZSgpLiRpbXBsaWNpdDtyZXR1cm4gQ3QoTGUoKS51c2VyT25DbGljayhoKSl9KSxkZSgxLCJwIiwxNiksV3QoMiwiY2xy'@; put 'LWljb24iLDE3KSxPZSgzKSxoZSgpKCl9aWYoMiZjKXtjb25zdCBhPUxlKCkuJGltcGxpY2l0LGQ9TGUoKTtUcigiYWN0aXZlIiwobnVsbD09ZC51c2VySW5mbz9udWxsOmQudXNlckluZm8uVVJJKT09PWEuVVJJKSxmZSgzKSxMcigiICIsYS5OQU1FLCIgIil9fWZ1bmN0aW9uIHBrdChjLGwp'@; put 'e2lmKDEmYyYmKGFpKDApLGd0KDEsZmt0LDQsMywiY2xyLXRyZWUtbm9kZSIsMTQpLHNpKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtmZSgpLE1lKCJuZ0lmIiwhYS5oaWRkZW4pfX1mdW5jdGlvbiBna3QoYyxsKXsxJmMmJihkZSgwLCJkaXYiLDE4KSgxLCJzcGFuIiwxOSksT2UoMiwi'@; put 'IExvYWRpbmcuLi4gIiksaGUoKSgpKX1mdW5jdGlvbiBta3QoYyxsKXtpZigxJmMmJihhaSgwKSxkZSgxLCJ0ciIpKDIsInRkIiwyNyksT2UoMywiIE1ldGFkYXRhIENyZWF0ZWQ6ICIpLGRlKDQsImIiKSxPZSg1KSxoZSgpKCkoKSxkZSg2LCJ0ciIpKDcsInRkIiwyNyksT2UoOCwiIE1ldGFk'@; put 'YXRhIFVwZGF0ZWQ6ICIpLGRlKDksImIiKSxPZSgxMCksaGUoKSgpKCksc2koKSksMiZjKXtjb25zdCBhPUxlKDMpO2ZlKDUpLFNyKGEudXNlckluZm8uTUVUQURBVEFDUkVBVEVEKSxmZSg1KSxTcihhLnVzZXJJbmZvLk1FVEFEQVRBVVBEQVRFRCl9fWZ1bmN0aW9uIHZrdChjLGwpe2lmKDEm'@; put 'YyYmKGRlKDAsImRpdiIsMjEpKDEsImRpdiIsMjIpKDIsInRhYmxlIiwyNikoMywidGJvZHkiKSg0LCJ0ciIpKDUsInRkIiwyNykoNiwicCIsMjgpKDcsImIiKSxPZSg4KSxoZSgpKCkoKSgpLGRlKDksInRyIikoMTAsInRkIiwyNykoMTEsInAiLDI4KSgxMiwiYiIpLE9lKDEzKSxoZSgpKCko'@; put 'KSgpLGd0KDE0LG1rdCwxMSwyLCJuZy1jb250YWluZXIiLDYpLGhlKCkoKSgpKCkpLDImYyl7Y29uc3QgYT1MZSgyKTtmZSg4KSxTcihhLnVzZXJJbmZvLk5BTUUpLGZlKDUpLFNyKGEudXNlckluZm8uRElTUExBWU5BTUUpLGZlKCksTWUoIm5nSWYiLGEuc2VydmVyVHlwZT09PWEuU2VydmVy'@; put 'VHlwZS5TYXM5KX19ZnVuY3Rpb24geWt0KGMsbCl7aWYoMSZjJiYoZGUoMCwiZGl2IiwyMSkoMSwiZGl2IiwyMikoMiwidGFibGUiLDI2KSgzLCJ0Ym9keSIpKDQsInRyIikoNSwidGQiLDI3KSg2LCJwIiwyOCkoNywiYiIpLE9lKDgpLGhlKCkoKSgpKCksZGUoOSwidHIiKSgxMCwidGQiLDI3'@; put 'KSxPZSgxMSwiIFVzZXIgSUQ6ICIpLGRlKDEyLCJiIiksT2UoMTMpLGhlKCkoKSgpLGRlKDE0LCJ0ciIpKDE1LCJ0ZCIsMjcpLE9lKDE2LCIgVXNlciBwcm92aWRlciBJRDogIiksZGUoMTcsImIiKSxPZSgxOCksaGUoKSgpKCkoKSgpKCkoKSksMiZjKXtjb25zdCBhPUxlKDIpO2ZlKDgpLFNy'@; put 'KGEudXNlckluZm8uTkFNRSksZmUoNSksU3IoYS51c2VySW5mby5VUkkpLGZlKDUpLFNyKGEudXNlckluZm8uUFJPVklERVIpfX1mdW5jdGlvbiBia3QoYyxsKXsxJmMmJihkZSgwLCJoNSIpLE9lKDEsIk5vIEVtYWlscyBQcmVzZW50IiksaGUoKSl9ZnVuY3Rpb24gX2t0KGMsbCl7aWYoMSZj'@; put 'JiYoZGUoMCwidHIiKSgxLCJ0ZCIsMzEpLE9lKDIpLGhlKCksZGUoMywidGQiLDMxKSxPZSg0KSxoZSgpKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtmZSgyKSxTcihhLkVNQUlMKSxmZSgyKSxTcihhLlRZUEUpfX1mdW5jdGlvbiB3a3QoYyxsKXtpZigxJmMmJihkZSgwLCJ0YWJsZSIs'@; put 'MjkpKDEsInRoZWFkIikoMiwidHIiKSgzLCJ0ZCIsMzApKDQsImIiKSxPZSg1LCJFTUFJTCIpLGhlKCkoKSxkZSg2LCJ0ZCIsMzEpKDcsImIiKSxPZSg4LCJUWVBFIiksaGUoKSgpKCkoKSxkZSg5LCJ0Ym9keSIpLGd0KDEwLF9rdCw1LDIsInRyIiwzKSxoZSgpKCkpLDImYyl7Y29uc3QgYT1M'@; put 'ZSgzKTtmZSgxMCksTWUoIm5nRm9yT2YiLGEudXNlckVtYWlscyl9fWZ1bmN0aW9uIENrdChjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIpKDEsImgzIiksT2UoMiksaGUoKSxndCgzLGJrdCwyLDAsImg1Iiw2KSxkZSg0LCJkaXYiLDI0KSxndCg1LHdrdCwxMSwxLCJ0YWJsZSIsMjUpLGhlKCko'@; put 'KSksMiZjKXtjb25zdCBhPUxlKDIpO2ZlKDIpLExyKCJFTUFJTFMgKCIsYS51c2VyRW1haWxzQ291bnR8fCIwIiwiKSIpLGZlKCksTWUoIm5nSWYiLDA9PWEudXNlckVtYWlsc0NvdW50KSxmZSgyKSxNZSgibmdJZiIsMCE9YS51c2VyRW1haWxzQ291bnQpfX1mdW5jdGlvbiBTa3QoYyxsKXsx'@; put 'JmMmJld0KDAsImhyIil9ZnVuY3Rpb24gTWt0KGMsbCl7MSZjJiYoZGUoMCwiaDUiKSxPZSgxLCJObyBHcm91cHMgUHJlc2VudCIpLGhlKCkpfWZ1bmN0aW9uIHhrdChjLGwpe2lmKDEmYyYmKGRlKDAsInRkIiwzMyksT2UoMSksaGUoKSksMiZjKXtjb25zdCBhPUxlKCkuJGltcGxpY2l0O01l'@; put 'KCJyb3V0ZXJMaW5rIiwiL3ZpZXcvdXNlcm5hdi9ncm91cHMvIithLlVSSSksZmUoKSxMcigiICIsYS5HUk9VUE5BTUUsIiAiKX19ZnVuY3Rpb24gRWt0KGMsbCl7aWYoMSZjJiYoYWkoMCksZGUoMSwidGQiLDMzKSxPZSgyKSxoZSgpLHNpKCkpLDImYyl7Y29uc3QgYT1MZSgpLiRpbXBsaWNp'@; put 'dDtmZSgpLE1lKCJyb3V0ZXJMaW5rIiwiL3ZpZXcvdXNlcm5hdi9ncm91cHMvIisoYS5HUk9VUFVSSXx8YS5VUkkpKSxmZSgpLExyKCIgIixhLkdST1VQTkFNRSwiICIpfX1mdW5jdGlvbiBUa3QoYyxsKXtpZigxJmMmJihkZSgwLCJ0ciIpLGd0KDEseGt0LDIsMiwidGQiLDMyKSgyLEVrdCwz'@; put 'LDIsIm5nLWNvbnRhaW5lciIsNiksaGUoKSksMiZjKXtjb25zdCBhPUxlKDMpO2ZlKCksTWUoIm5nSWYiLGEuc2VydmVyVHlwZT09PWEuU2VydmVyVHlwZS5TYXNWaXlhKSxmZSgpLE1lKCJuZ0lmIixhLnNlcnZlclR5cGUhPT1hLlNlcnZlclR5cGUuU2FzVml5YSl9fWZ1bmN0aW9uIEFrdChj'@; put 'LGwpe2lmKDEmYyYmKGRlKDAsInRhYmxlIiwyOSkoMSwidGJvZHkiKSxndCgyLFRrdCwzLDIsInRyIiwzKSxoZSgpKCkpLDImYyl7Y29uc3QgYT1MZSgyKTtmZSgyKSxNZSgibmdGb3JPZiIsYS51c2VyR3JvdXBzKX19ZnVuY3Rpb24ga2t0KGMsbCl7MSZjJiZXdCgwLCJociIpfWZ1bmN0aW9u'@; put 'IERrdChjLGwpezEmYyYmKGRlKDAsImg1IiksT2UoMSwiTm8gUm9sZXMgUHJlc2VudCIpLGhlKCkpfWZ1bmN0aW9uIElrdChjLGwpe2lmKDEmYyYmKGRlKDAsInRyIikoMSwidGQiLDM0KSxPZSgyKSxoZSgpKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdCxkPUxlKDQpO2ZlKCksTWUoInJv'@; put 'dXRlckxpbmsiLCIvdmlldy91c2VybmF2L3JvbGVzLyIrZC5nZXRSb2xlVVJJKGEuUk9MRVVSSSkpLGZlKCksTHIoIiAiLGEuUk9MRU5BTUUsIiAiKX19ZnVuY3Rpb24gUmt0KGMsbCl7aWYoMSZjJiYoZGUoMCwidGFibGUiLDI5KSgxLCJ0Ym9keSIpLGd0KDIsSWt0LDMsMiwidHIiLDMpLGhl'@; put 'KCkoKSksMiZjKXtjb25zdCBhPUxlKDMpO2ZlKDIpLE1lKCJuZ0Zvck9mIixhLnVzZXJSb2xlcyl9fWZ1bmN0aW9uIExrdChjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIpKDEsImgzIiksT2UoMiksaGUoKSxndCgzLERrdCwyLDAsImg1Iiw2KSxkZSg0LCJkaXYiLDI0KSxndCg1LFJrdCwzLDEs'@; put 'InRhYmxlIiwyNSksaGUoKSgpKSwyJmMpe2NvbnN0IGE9TGUoMik7ZmUoMiksTHIoIlJPTEVTICgiLGEudXNlclJvbGVzQ291bnR8fCIwIiwiKSIpLGZlKCksTWUoIm5nSWYiLDA9PWEudXNlclJvbGVzQ291bnQpLGZlKDIpLE1lKCJuZ0lmIiwwIT1hLnVzZXJSb2xlc0NvdW50KX19ZnVuY3Rp'@; put 'b24gT2t0KGMsbCl7MSZjJiZXdCgwLCJociIpfWZ1bmN0aW9uIFBrdChjLGwpezEmYyYmKGRlKDAsImg1IiksT2UoMSwiTm8gTG9naW5zIFByZXNlbnQiKSxoZSgpKX1mdW5jdGlvbiBGa3QoYyxsKXtpZigxJmMmJihkZSgwLCJ0ciIpKDEsInRkIiwzMSksT2UoMiksaGUoKSxkZSgzLCJ0ZCIs'@; put 'MzEpLE9lKDQpLGhlKCkoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O2ZlKDIpLFNyKGEuRE9NQUlOKSxmZSgyKSxTcihhLlVTRVJJRCl9fWZ1bmN0aW9uIEhrdChjLGwpe2lmKDEmYyYmKGRlKDAsInRhYmxlIiwyOSkoMSwidGhlYWQiKSgyLCJ0ciIpKDMsInRkIiwzMCkoNCwiYiIpLE9l'@; put 'KDUsIkRPTUFJTiIpLGhlKCkoKSxkZSg2LCJ0ZCIpKDcsImIiKSxPZSg4LCJVU0VSIElEIiksaGUoKSgpKCkoKSxkZSg5LCJ0Ym9keSIpLGd0KDEwLEZrdCw1LDIsInRyIiwzKSxoZSgpKCkpLDImYyl7Y29uc3QgYT1MZSgzKTtmZSgxMCksTWUoIm5nRm9yT2YiLGEudXNlckxvZ2lucyl9fWZ1'@; put 'bmN0aW9uIE5rdChjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIpKDEsImgzIiksT2UoMiksaGUoKSxndCgzLFBrdCwyLDAsImg1Iiw2KSxkZSg0LCJkaXYiLDI0KSxndCg1LEhrdCwxMSwxLCJ0YWJsZSIsMjUpLGhlKCkoKSksMiZjKXtjb25zdCBhPUxlKDIpO2ZlKDIpLExyKCJMT0dJTlMgKCIs'@; put 'YS51c2VyTG9naW5zQ291bnR8fCIwIiwiKSIpLGZlKCksTWUoIm5nSWYiLDA9PWEudXNlckxvZ2luc0NvdW50KSxmZSgyKSxNZSgibmdJZiIsMCE9YS51c2VyTG9naW5zQ291bnQpfX1mdW5jdGlvbiBWa3QoYyxsKXtpZigxJmMmJihkZSgwLCJkaXYiKSxndCgxLHZrdCwxNSwzLCJkaXYiLDIw'@; put 'KSgyLHlrdCwxOSwzLCJkaXYiLDIwKSxkZSgzLCJkaXYiLDIxKSg0LCJkaXYiLDIyKSg1LCJkaXYiLDIzKSxndCg2LENrdCw2LDMsImRpdiIsNikoNyxTa3QsMSwwLCJociIsNiksZGUoOCwiZGl2IikoOSwiaDMiKSxPZSgxMCksaGUoKSxndCgxMSxNa3QsMiwwLCJoNSIsNiksZGUoMTIsImRp'@; put 'diIsMjQpLGd0KDEzLEFrdCwzLDEsInRhYmxlIiwyNSksaGUoKSgpLGd0KDE0LGtrdCwxLDAsImhyIiw2KSgxNSxMa3QsNiwzLCJkaXYiLDYpKDE2LE9rdCwxLDAsImhyIiw2KSgxNyxOa3QsNiwzLCJkaXYiLDYpLFd0KDE4LCJiciIpLGhlKCkoKSgpKCkpLDImYyl7Y29uc3QgYT1MZSgpO2Zl'@; put 'KCksTWUoIm5nSWYiLGEuc2VydmVyVHlwZSE9PWEuU2VydmVyVHlwZS5TYXNWaXlhKSxmZSgpLE1lKCJuZ0lmIixhLnNlcnZlclR5cGU9PT1hLlNlcnZlclR5cGUuU2FzVml5YSYmYS51c2VySW5mbyksZmUoNCksTWUoIm5nSWYiLGEuc2VydmVyVHlwZT09PWEuU2VydmVyVHlwZS5TYXM5KSxm'@; put 'ZSgpLE1lKCJuZ0lmIixhLnNlcnZlclR5cGU9PT1hLlNlcnZlclR5cGUuU2FzOSksZmUoMyksTHIoIkdST1VQUyAoIixhLnVzZXJHcm91cHNDb3VudHx8IjAiLCIpIiksZmUoKSxNZSgibmdJZiIsMD09YS51c2VyR3JvdXBzQ291bnQpLGZlKDIpLE1lKCJuZ0lmIiwwIT1hLnVzZXJHcm91cHND'@; put 'b3VudCksZmUoKSxNZSgibmdJZiIsYS5zZXJ2ZXJUeXBlPT09YS5TZXJ2ZXJUeXBlLlNhczkpLGZlKCksTWUoIm5nSWYiLGEuc2VydmVyVHlwZT09PWEuU2VydmVyVHlwZS5TYXM5KSxmZSgpLE1lKCJuZ0lmIixhLnNlcnZlclR5cGU9PT1hLlNlcnZlclR5cGUuU2FzOSksZmUoKSxNZSgibmdJ'@; put 'ZiIsYS5zZXJ2ZXJUeXBlPT09YS5TZXJ2ZXJUeXBlLlNhczkpfX1sZXQgajdlPSgoKT0+e2NsYXNzIGN7Y29uc3RydWN0b3IoYSxkLGgsZix2KXt0aGlzLmhlbHBlclNlcnZpY2U9YSx0aGlzLnNhc1NlcnZpY2U9ZCx0aGlzLnJvdXRlPWgsdGhpcy5sb2NhdGlvbj1mLHRoaXMucm91dGVyPXYs'@; put 'dGhpcy5sb2FkaW5nPSExLHRoaXMudXNlclNlYXJjaD0iIix0aGlzLnBhcmFtUHJlc2VudD0hMSx0aGlzLnBhcmFtTmFtZT0iIix0aGlzLnNhc2pzQ29uZmlnPW5ldyB5aC5TQVNqc0NvbmZpZyx0aGlzLmlzVml5YT0hMSx0aGlzLnNlcnZlclR5cGU9IiIsdGhpcy5TZXJ2ZXJUeXBlPU4wLlks'@; put 'dGhpcy5zZXJ2ZXJUeXBlPXRoaXMuc2FzU2VydmljZS5nZXRTZXJ2ZXJUeXBlKCksdGhpcy5zYXNqc0NvbmZpZz10aGlzLnNhc1NlcnZpY2UuZ2V0U2FzanNDb25maWcoKSwiU0FTVklZQSI9PT10aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGUmJih0aGlzLmlzVml5YT0hMCl9bmdPbkluaXQo'@; put 'KXtpZihKbi52aWV3ZXIuY3VycmVudFNlbGVjdGlvbj0idmlldy91c2VybmF2L3VzZXJzIix2b2lkIDAhPT10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy51cmkmJih0aGlzLnBhcmFtUHJlc2VudD0hMCx0aGlzLnBhcmFtTmFtZT10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy51cmkpLEpu'@; put 'LnVzZXJuYXYudXNlckxpc3QmJiF0aGlzLnBhcmFtUHJlc2VudCl0aGlzLnVzZXJzPUpuLnVzZXJuYXYudXNlckxpc3QsdGhpcy51c2VyU2VhcmNoPUpuLnVzZXJuYXYudXNlclNlYXJjaDtlbHNlIGlmKHZvaWQgMD09PUpuLnVzZXJuYXYudXNlckxpc3Q/KHRoaXMubG9hZGluZz0hMCx0aGlz'@; put 'LmlzVml5YT9mZXRjaCh0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybCsiL2lkZW50aXRpZXMvdXNlcnM/bGltaXQ9MjAwMCIse2hlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiJ9fSkudGhlbihhPT5hLnRleHQoKSkudGhlbihhPT57bGV0IGg9SlNPTi5wYXJzZShhKS5pdGVtcy5t'@; put 'YXAoZj0+KHtOQU1FOmYubmFtZSxVUkk6Zi5pZCxQUk9WSURFUjpmLnByb3ZpZGVySWR9KSk7dGhpcy5sb2FkaW5nPSExLHRoaXMudXNlcnM9aCxKbi51c2VybmF2LnVzZXJMaXN0PWh9KTp0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgidXNlcm5hdi91c2VybWVtYmVycyIsbnVsbCkudGhlbihh'@; put 'PT57dGhpcy5sb2FkaW5nPSExLHRoaXMudXNlcnM9YS5hZGFwdGVyUmVzcG9uc2UudXNlcnMsSm4udXNlcm5hdi51c2VyTGlzdD1hLmFkYXB0ZXJSZXNwb25zZS51c2Vyc30pKToodGhpcy51c2Vycz1Kbi51c2VybmF2LnVzZXJMaXN0LHRoaXMudXNlclNlYXJjaD1Kbi51c2VybmF2LnVzZXJT'@; put 'ZWFyY2gpLHRoaXMucGFyYW1QcmVzZW50KWlmKHRoaXMubG9hZGluZz0hMCx0aGlzLmlzVml5YSl7bGV0IGE9dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMudXJpO2ZldGNoKHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsKyIvaWRlbnRpdGllcy91c2Vycy8iK2ErIi9tZW1iZXJzaGlwcz9s'@; put 'aW1pdD0yMDAwIix7aGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn19KS50aGVuKGQ9PmQudGV4dCgpKS50aGVuKGQ9PntsZXQgaD1KU09OLnBhcnNlKGQpO3RoaXMudXNlckRhdGE9aCx0aGlzLmxvYWRpbmc9ITE7bGV0IGY9aC5pdGVtcy5tYXAodj0+KHtHUk9VUE5BTUU6di5u'@; put 'YW1lLFVSSTp2LmlkfSkpO3RoaXMudXNlckdyb3Vwcz1mLHRoaXMudXNlckdyb3Vwc0NvdW50PWYubGVuZ3RoLHRoaXMudXNlcnMmJih0aGlzLnVzZXJJbmZvPXRoaXMudXNlcnMuZmluZCh2PT52LlVSST09PWEpKX0pfWVsc2V7Y29uc3QgYT10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy51'@; put 'cmk7dGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInVzZXJuYXYvdXNlcmdyb3Vwc2J5bWVtYmVyIix7aXdhbnQ6W3t1cmk6YX1dfSkudGhlbihoPT57c3dpdGNoKHRoaXMubG9hZGluZz0hMSx0aGlzLnNlcnZlclR5cGUpe2Nhc2UgTjAuWS5TYXM5OnRoaXMudXNlckluZm89aC5hZGFwdGVyUmVz'@; put 'cG9uc2UuaW5mb1swXSx0aGlzLnVzZXJFbWFpbHM9aC5hZGFwdGVyUmVzcG9uc2UuZW1haWxzLHRoaXMudXNlckVtYWlsc0NvdW50PWguYWRhcHRlclJlc3BvbnNlLmVtYWlscy5sZW5ndGgsdGhpcy51c2VyUm9sZXM9aC5hZGFwdGVyUmVzcG9uc2Uucm9sZXMsdGhpcy51c2VyUm9sZXNDb3Vu'@; put 'dD1oLmFkYXB0ZXJSZXNwb25zZS5yb2xlcy5sZW5ndGgsdGhpcy51c2VyTG9naW5zPWguYWRhcHRlclJlc3BvbnNlLmxvZ2lucyx0aGlzLnVzZXJMb2dpbnNDb3VudD1oLmFkYXB0ZXJSZXNwb25zZS5sb2dpbnMubGVuZ3RoO2JyZWFrO2Nhc2UgTjAuWS5TYXNqczppZih0aGlzLnVzZXJzKXRo'@; put 'aXMudXNlckluZm89dGhpcy51c2Vycy5maW5kKGY9PmYuVVJJPT09YSk7ZWxzZXtjb25zdCBmPWguYWRhcHRlclJlc3BvbnNlLmdyb3Vwc1swXTt0aGlzLnVzZXJJbmZvPXtVUkk6Zi5JRCxOQU1FOmYuTkFNRSxESVNQTEFZTkFNRTpmLk5BTUV9fX10aGlzLnVzZXJEYXRhPWguYWRhcHRlclJl'@; put 'c3BvbnNlLHRoaXMudXNlckdyb3Vwcz1oLmFkYXB0ZXJSZXNwb25zZS5ncm91cHMsdGhpcy51c2VyR3JvdXBzQ291bnQ9aC5hZGFwdGVyUmVzcG9uc2UuZ3JvdXBzLmxlbmd0aH0pfX11c2VyTGlzdE9uRmlsdGVyKCl7dGhpcy5oZWxwZXJTZXJ2aWNlLmxpYnJhcnlPbkZpbHRlcih0aGlzLnVz'@; put 'ZXJzLHRoaXMudXNlclNlYXJjaCwiTkFNRSIpLEpuLnVzZXJuYXYudXNlclNlYXJjaD10aGlzLnVzZXJTZWFyY2h9dXNlck9uQ2xpY2soYSl7dGhpcy5sb2FkaW5nPSEwO2xldCBkPXRoaXMucm91dGVyLnVybDt0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZSh0aGlzLnBhcmFtUHJlc2VudD9k'@; put 'LnNsaWNlKDAsZC5sYXN0SW5kZXhPZigiLyIpKSsiLyIrZW5jb2RlVVJJKGEuVVJJKTpkKyIvIitlbmNvZGVVUkkoYS5VUkkpKSx0aGlzLmlzVml5YT9mZXRjaCh0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybCsiL2lkZW50aXRpZXMvdXNlcnMvIithLlVSSSsiL21lbWJlcnNoaXBzP2xpbWl0'@; put 'PTIwMDAiLHtoZWFkZXJzOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24ifX0pLnRoZW4oaD0+aC50ZXh0KCkpLnRoZW4oaD0+e2xldCBmPUpTT04ucGFyc2UoaCk7dGhpcy51c2VyRGF0YT1mLHRoaXMubG9hZGluZz0hMTtsZXQgdj1mLml0ZW1zLm1hcChNPT4oe0dST1VQTkFNRTpNLm5hbWUs'@; put 'VVJJOk0uaWR9KSk7dGhpcy51c2VyR3JvdXBzPXYsdGhpcy51c2VyR3JvdXBzQ291bnQ9di5sZW5ndGgsdGhpcy51c2VycyYmKHRoaXMudXNlckluZm89dGhpcy51c2Vycy5maW5kKE09Pk0uVVJJPT09YS5VUkkpKX0pOnRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJ1c2VybmF2L3VzZXJncm91'@; put 'cHNieW1lbWJlciIse2l3YW50Olt7dXJpOmEuVVJJfV19KS50aGVuKGY9Pntzd2l0Y2godGhpcy5sb2FkaW5nPSExLHRoaXMuc2VydmVyVHlwZSl7Y2FzZSBOMC5ZLlNhczk6dGhpcy51c2VySW5mbz1mLmFkYXB0ZXJSZXNwb25zZS5pbmZvWzBdLHRoaXMudXNlckVtYWlscz1mLmFkYXB0ZXJS'@; put 'ZXNwb25zZS5lbWFpbHMsdGhpcy51c2VyRW1haWxzQ291bnQ9Zi5hZGFwdGVyUmVzcG9uc2UuZW1haWxzLmxlbmd0aCx0aGlzLnVzZXJSb2xlcz1mLmFkYXB0ZXJSZXNwb25zZS5yb2xlcyx0aGlzLnVzZXJSb2xlc0NvdW50PWYuYWRhcHRlclJlc3BvbnNlLnJvbGVzLmxlbmd0aCx0aGlzLnVz'@; put 'ZXJMb2dpbnM9Zi5hZGFwdGVyUmVzcG9uc2UubG9naW5zLHRoaXMudXNlckxvZ2luc0NvdW50PWYuYWRhcHRlclJlc3BvbnNlLmxvZ2lucy5sZW5ndGg7YnJlYWs7Y2FzZSBOMC5ZLlNhc2pzOmlmKHRoaXMudXNlcnMpdGhpcy51c2VySW5mbz10aGlzLnVzZXJzLmZpbmQodj0+di5VUkk9PT1h'@; put 'LlVSSSk7ZWxzZXtjb25zdCB2PWYuYWRhcHRlclJlc3BvbnNlLmdyb3Vwc1swXTt0aGlzLnVzZXJJbmZvPXtVUkk6di5JRCxOQU1FOnYuTkFNRSxESVNQTEFZTkFNRTp2Lk5BTUV9fX10aGlzLnVzZXJEYXRhPWYuYWRhcHRlclJlc3BvbnNlLHRoaXMudXNlckdyb3Vwcz1mLmFkYXB0ZXJSZXNw'@; put 'b25zZS5ncm91cHMsdGhpcy51c2VyR3JvdXBzQ291bnQ9Zi5hZGFwdGVyUmVzcG9uc2UuZ3JvdXBzLmxlbmd0aH0pfWdldFJvbGVVUkkoYSl7cmV0dXJuIGEuc3BsaXQoIk9NU09CSjpJZGVudGl0eUdyb3VwIilbMV0uc2xpY2UoMSl9c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQp'@; put 'e3JldHVybiBuZXcoZHx8YykoJGUoYnUpLCRlKFZvKSwkZSh5dSksJGUocGgpLCRlKExvKSl9fXN0YXRpY3t0aGlzLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJhcHAtdXNlciJdXSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6Nyx2YXJzOjQsY29u'@; put 'c3RzOltbInNlYXJjaExpYlRyZWVJbnB1dCIsIiJdLFsxLCJzaWRlYmFyLWhlaWdodCJdLFsiY2xhc3MiLCJzZWFyY2gtbm9kZSIsNCwibmdJZiJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiY29udGVudC1hcmVhIl0sWyJjbGFzcyIsImxvYWRpbmdTcGlubmVyIiw0LCJuZ0lmIl0sWzQs'@; put 'Im5nSWYiXSxbMSwic2VhcmNoLW5vZGUiXSxbMSwidHJlZS1zZWFyY2gtd3JhcHBlciJdLFsiYXBwU3RlYWxGb2N1cyIsIiIsImNscklucHV0IiwiIiwicGxhY2Vob2xkZXIiLCJGaWx0ZXIgYnkgVXNlcnMiLCJuYW1lIiwiaW5wdXQiLCJhdXRvY29tcGxldGUiLCJvZmYiLDMsIm5nTW9kZWxD'@; put 'aGFuZ2UiLCJrZXl1cCIsIm5nTW9kZWwiXSxbInNoYXBlIiwic2VhcmNoIiw0LCJuZ0lmIl0sWyJzaGFwZSIsInRpbWVzIiwzLCJjbGljayIsNCwibmdJZiJdLFsic2hhcGUiLCJzZWFyY2giXSxbInNoYXBlIiwidGltZXMiLDMsImNsaWNrIl0sWzMsImFjdGl2ZSIsImNsaWNrIiw0LCJuZ0lm'@; put 'Il0sWzMsImNsaWNrIl0sWzEsIm0tMCIsImN1cnNvci1wb2ludGVyIiwibGlzdC1wYWRkaW5nIl0sWyJzaGFwZSIsInVzZXIiXSxbMSwibG9hZGluZ1NwaW5uZXIiXSxbMSwic3Bpbm5lciJdLFsiY2xhc3MiLCJjbHItcm93Iiw0LCJuZ0lmIl0sWzEsImNsci1yb3ciXSxbMSwiY2xyLWNvbC04'@; put 'Il0sWzEsImNhcmQiLCJ1c2VyLWRhdGEiXSxbMSwidGFibGUtY29udGFpbmVyIl0sWyJjbGFzcyIsInRhYmxlIHVzZXItdGFibGUiLDQsIm5nSWYiXSxbMSwidGFibGUiLCJ1c2VyLWluZm8iXSxbMSwibGVmdCJdLFsxLCJ1c2VyLWluZm8tdGV4dCJdLFsxLCJ0YWJsZSIsInVzZXItdGFibGUi'@; put 'XSxbMSwid2lkdGgtNTAiXSxbMSwiIl0sWyJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0aXZlIiwiY2xhc3MiLCIiLDMsInJvdXRlckxpbmsiLDQsIm5nSWYiXSxbInJvdXRlckxpbmtBY3RpdmUiLCJhY3RpdmUiLDEsIiIsMywicm91dGVyTGluayJdLFszLCJyb3V0ZXJMaW5rIl1dLHRlbXBsYXRl'@; put 'OmZ1bmN0aW9uKGQsaCl7MSZkJiYoZGUoMCwiYXBwLXNpZGViYXIiLDEpKDEsImNsci10cmVlIiksZ3QoMixoa3QsNiwzLCJjbHItdHJlZS1ub2RlIiwyKSgzLHBrdCwyLDEsIm5nLWNvbnRhaW5lciIsMyksaGUoKSgpLGRlKDQsImRpdiIsNCksZ3QoNSxna3QsMywwLCJkaXYiLDUpKDYsVmt0'@; put 'LDE5LDExLCJkaXYiLDYpLGhlKCkpLDImZCYmKGZlKDIpLE1lKCJuZ0lmIixoLnVzZXJzKSxmZSgpLE1lKCJuZ0Zvck9mIixoLnVzZXJzKSxmZSgyKSxNZSgibmdJZiIsaC5sb2FkaW5nKSxmZSgpLE1lKCJuZ0lmIixoLnVzZXJEYXRhJiYhaC5sb2FkaW5nKSl9LGRlcGVuZGVuY2llczpbUXMs'@; put 'YmEsbDEsdWIsR2wsdGwsV28sQWgsUGQsT2wsWTEsYTQsaTRdLGVuY2Fwc3VsYXRpb246Mn0pfX1yZXR1cm4gY30pKCk7Y29uc3QgQmt0PWM9Plsic2VnbWVudCIsY10samt0PShjLGwpPT4oeyJzZWdtZW50LW1haW4iOiEwLGV4cGFuZGFibGU6YyxleHBhbmRlZDpsfSk7ZnVuY3Rpb24gemt0'@; put 'KGMsbCl7MSZjJiZXdCgwLCJkaXYiLDkpfWZ1bmN0aW9uIFVrdChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsInNwYW4iLDEwKSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7d3QoYSk7Y29uc3QgaD1MZSgpLiRpbXBsaWNpdDtyZXR1cm4gQ3QoTGUoKS5vblZhbHVlQ2xpY2soaCkpfSks'@; put 'T2UoMSksaGUoKX1pZigyJmMpe2NvbnN0IGE9TGUoKS4kaW1wbGljaXQ7ZmUoKSxTcihhLmRlc2NyaXB0aW9uKX19ZnVuY3Rpb24gWmt0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwic2VjdGlvbiIsMTEpKDEsIm5neC1qc29uLXZpZXdlciIsMTIpLEZ0KCJzZWdtZW50TGlua0Ns'@; put 'aWNrZWQiLGZ1bmN0aW9uKGgpe3JldHVybiB3dChhKSxDdChMZSgyKS5vblNlZ21lbnRMaW5rQ2xpY2soaCkpfSksaGUoKSgpfWlmKDImYyl7Y29uc3QgYT1MZSgpLiRpbXBsaWNpdCxkPUxlKCk7ZmUoKSxNZSgianNvbiIsYS52YWx1ZSkoImV4cGFuZGVkIixkLmV4cGFuZGVkKSgiZGVwdGgi'@; put 'LGQuZGVwdGgpKCJfY3VycmVudERlcHRoIixkLl9jdXJyZW50RGVwdGgrMSl9fWZ1bmN0aW9uIFdrdChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsInNlY3Rpb24iLDIpKDEsInNlY3Rpb24iLDMpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtjb25zdCBoPXd0KGEpLiRpbXBsaWNpdDty'@; put 'ZXR1cm4gQ3QoTGUoKS50b2dnbGUoaCkpfSksZ3QoMix6a3QsMSwwLCJkaXYiLDQpLGRlKDMsInNwYW4iLDUpLE9lKDQpLGhlKCksZGUoNSwic3BhbiIsNiksT2UoNiwiOiAiKSxoZSgpLGd0KDcsVWt0LDIsMSwic3BhbiIsNyksaGUoKSxndCg4LFprdCwyLDQsInNlY3Rpb24iLDgpLGhlKCl9'@; put 'aWYoMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0LGQ9TGUoKTtNZSgibmdDbGFzcyIsbHAoNixCa3QsInNlZ21lbnQtdHlwZS0iK2EudHlwZSkpLGZlKCksTWUoIm5nQ2xhc3MiLGNwKDgsamt0LGQuaXNFeHBhbmRhYmxlKGEpLGEuZXhwYW5kZWQpKSxmZSgpLE1lKCJuZ0lmIixkLmlzRXhwYW5k'@; put 'YWJsZShhKSksZmUoMiksU3IoYS5rZXkpLGZlKDMpLE1lKCJuZ0lmIiwhYS5leHBhbmRlZHx8IWQuaXNFeHBhbmRhYmxlKGEpKSxmZSgpLE1lKCJuZ0lmIixhLmV4cGFuZGVkJiZkLmlzRXhwYW5kYWJsZShhKSl9fWxldCBZa3Q9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3Rvcigpe3RoaXMuZXhw'@; put 'YW5kZWQ9ITAsdGhpcy5kZXB0aD0tMSx0aGlzLl9jdXJyZW50RGVwdGg9MCx0aGlzLnNlZ21lbnRMaW5rQ2xpY2tlZD1uZXcgS3IsdGhpcy5zZWdtZW50cz1bXX1uZ09uQ2hhbmdlcygpe3RoaXMuc2VnbWVudHM9W10sdGhpcy5qc29uPXRoaXMuZGVjeWNsZSh0aGlzLmpzb24pLCJvYmplY3Qi'@; put 'PT10eXBlb2YgdGhpcy5qc29uP09iamVjdC5rZXlzKHRoaXMuanNvbikuZm9yRWFjaChhPT57dGhpcy5zZWdtZW50cy5wdXNoKHRoaXMucGFyc2VLZXlWYWx1ZShhLHRoaXMuanNvblthXSkpfSk6dGhpcy5zZWdtZW50cy5wdXNoKHRoaXMucGFyc2VLZXlWYWx1ZShgKCR7dHlwZW9mIHRoaXMu'@; put 'anNvbn0pYCx0aGlzLmpzb24pKX1pc0V4cGFuZGFibGUoYSl7cmV0dXJuIm9iamVjdCI9PT1hLnR5cGV8fCJhcnJheSI9PT1hLnR5cGV9dG9nZ2xlKGEpe3RoaXMuaXNFeHBhbmRhYmxlKGEpJiYoYS5leHBhbmRlZD0hYS5leHBhbmRlZCl9b25WYWx1ZUNsaWNrKGEpeyJsaW5rIj09PWEudHlw'@; put 'ZSYmdGhpcy5zZWdtZW50TGlua0NsaWNrZWQuZW1pdChhLnZhbHVlKX1vblNlZ21lbnRMaW5rQ2xpY2soYSl7dGhpcy5zZWdtZW50TGlua0NsaWNrZWQuZW1pdChhKX1wYXJzZUtleVZhbHVlKGEsZCl7Y29uc3QgaD17a2V5OmEsdmFsdWU6ZCx0eXBlOnZvaWQgMCxkZXNjcmlwdGlvbjoiIitk'@; put 'LGV4cGFuZGVkOnRoaXMuaXNFeHBhbmRlZCgpfTtzd2l0Y2godHlwZW9mIGgudmFsdWUpe2Nhc2UibnVtYmVyIjpoLnR5cGU9Im51bWJlciI7YnJlYWs7Y2FzZSJib29sZWFuIjpoLnR5cGU9ImJvb2xlYW4iO2JyZWFrO2Nhc2UiZnVuY3Rpb24iOmgudHlwZT0iZnVuY3Rpb24iO2JyZWFrO2Nh'@; put 'c2Uic3RyaW5nIjppZih0aGlzLmlzTGluayhoLnZhbHVlKSl7aC50eXBlPSJsaW5rIjticmVha31oLnR5cGU9InN0cmluZyIsaC5kZXNjcmlwdGlvbj0nIicraC52YWx1ZSsnIic7YnJlYWs7Y2FzZSJ1bmRlZmluZWQiOmgudHlwZT0idW5kZWZpbmVkIixoLmRlc2NyaXB0aW9uPSJ1bmRlZmlu'@; put 'ZWQiO2JyZWFrO2Nhc2Uib2JqZWN0IjpudWxsPT09aC52YWx1ZT8oaC50eXBlPSJudWxsIixoLmRlc2NyaXB0aW9uPSJudWxsIik6QXJyYXkuaXNBcnJheShoLnZhbHVlKT8oaC50eXBlPSJhcnJheSIsaC5kZXNjcmlwdGlvbj0iQXJyYXlbIitoLnZhbHVlLmxlbmd0aCsiXSAiK0pTT04uc3Ry'@; put 'aW5naWZ5KGgudmFsdWUpKTpoLnZhbHVlIGluc3RhbmNlb2YgRGF0ZT9oLnR5cGU9ImRhdGUiOihoLnR5cGU9Im9iamVjdCIsaC5kZXNjcmlwdGlvbj0iT2JqZWN0ICIrSlNPTi5zdHJpbmdpZnkoaC52YWx1ZSkpfXJldHVybiBofWlzTGluayhhKXtyZXR1cm4iaHR0cHM6Ly8iPT09YS5zdWJz'@; put 'dHJpbmcoMCw4KXx8Imh0dHA6Ly8iPT09YS5zdWJzdHJpbmcoMCw3KXx8Ii8iPT09YVswXX1pc0V4cGFuZGVkKCl7cmV0dXJuIHRoaXMuZXhwYW5kZWQmJiEodGhpcy5kZXB0aD4tMSYmdGhpcy5fY3VycmVudERlcHRoPj10aGlzLmRlcHRoKX1kZWN5Y2xlKGEpe2NvbnN0IGQ9bmV3IFdlYWtN'@; put 'YXA7cmV0dXJuIGZ1bmN0aW9uIGgoZix2KXtsZXQgTSxJO3JldHVybiJvYmplY3QiIT10eXBlb2YgZnx8bnVsbD09PWZ8fGYgaW5zdGFuY2VvZiBCb29sZWFufHxmIGluc3RhbmNlb2YgRGF0ZXx8ZiBpbnN0YW5jZW9mIE51bWJlcnx8ZiBpbnN0YW5jZW9mIFJlZ0V4cHx8ZiBpbnN0YW5jZW9m'@; put 'IFN0cmluZz9mOihNPWQuZ2V0KGYpLHZvaWQgMCE9PU0/eyRyZWY6TX06KGQuc2V0KGYsdiksQXJyYXkuaXNBcnJheShmKT8oST1bXSxmLmZvckVhY2goZnVuY3Rpb24oRyxyZSl7SVtyZV09aChHLHYrIlsiK3JlKyJdIil9KSk6KEk9e30sT2JqZWN0LmtleXMoZikuZm9yRWFjaChmdW5jdGlv'@; put 'bihHKXtJW0ddPWgoZltHXSx2KyJbIitKU09OLnN0cmluZ2lmeShHKSsiXSIpfSkpLEkpKX0oYSwiJCIpfX1yZXR1cm4gYy5cdTAyNzVmYWM9ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyhhfHxjKX0sYy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1sibmd4LWpzb24tdmlld2VyIl1d'@; put 'LGlucHV0czp7anNvbjoianNvbiIsZXhwYW5kZWQ6ImV4cGFuZGVkIixkZXB0aDoiZGVwdGgiLF9jdXJyZW50RGVwdGg6Il9jdXJyZW50RGVwdGgifSxvdXRwdXRzOntzZWdtZW50TGlua0NsaWNrZWQ6InNlZ21lbnRMaW5rQ2xpY2tlZCJ9LGZlYXR1cmVzOltibF0sZGVjbHM6Mix2YXJzOjEs'@; put 'Y29uc3RzOltbMSwibmd4LWpzb24tdmlld2VyIl0sWzMsIm5nQ2xhc3MiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFszLCJuZ0NsYXNzIl0sWzMsImNsaWNrIiwibmdDbGFzcyJdLFsiY2xhc3MiLCJ0b2dnbGVyIiw0LCJuZ0lmIl0sWzEsInNlZ21lbnQta2V5Il0sWzEsInNlZ21lbnQtc2VwYXJh'@; put 'dG9yIl0sWyJjbGFzcyIsInNlZ21lbnQtdmFsdWUiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNoaWxkcmVuIiw0LCJuZ0lmIl0sWzEsInRvZ2dsZXIiXSxbMSwic2VnbWVudC12YWx1ZSIsMywiY2xpY2siXSxbMSwiY2hpbGRyZW4iXSxbMywic2VnbWVudExpbmtDbGlja2VkIiwi'@; put 'anNvbiIsImV4cGFuZGVkIiwiZGVwdGgiLCJfY3VycmVudERlcHRoIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGEsZCl7MSZhJiYoZGUoMCwic2VjdGlvbiIsMCksZ3QoMSxXa3QsOSwxMSwic2VjdGlvbiIsMSksaGUoKSksMiZhJiYoZmUoKSxNZSgibmdGb3JPZiIsZC5zZWdtZW50cykpfSxkZXBl'@; put 'bmRlbmNpZXM6W3Z1LFFzLGJhLGNdLHN0eWxlczpbJ0BjaGFyc2V0ICJVVEYtOCI7Lm5neC1qc29uLXZpZXdlcltfbmdjb250ZW50LSVDT01QJV17Zm9udC1mYW1pbHk6dmFyKC0tbmd4LWpzb24tZm9udC1mYW1pbHksIG1vbm9zcGFjZSk7Zm9udC1zaXplOnZhcigtLW5neC1qc29uLWZvbnQt'@; put 'c2l6ZSwgMWVtKTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0ubmd4LWpzb24tdmlld2VyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zZWdtZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjJweDttYXJnaW46MXB4IDFweCAxcHgg'@; put 'MTJweH0ubmd4LWpzb24tdmlld2VyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zZWdtZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zZWdtZW50LW1haW5bX25nY29udGVudC0lQ09NUCVde3dvcmQtd3JhcDpicmVhay13b3JkfS5uZ3gtanNvbi12aWV3ZXJbX25nY29udGVudC0lQ09NUCVdICAg'@; put 'LnNlZ21lbnRbX25nY29udGVudC0lQ09NUCVdICAgLnNlZ21lbnQtbWFpbltfbmdjb250ZW50LSVDT01QJV0gICAudG9nZ2xlcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1dGU7bWFyZ2luLWxlZnQ6LTE0cHg7bWFyZ2luLXRvcDozcHg7Zm9udC1zaXplOi44ZW07bGluZS1o'@; put 'ZWlnaHQ6MS4yZW07dmVydGljYWwtYWxpZ246bWlkZGxlO2NvbG9yOnZhcigtLW5neC1qc29uLXRvZ2dsZXIsICM3ODc4NzgpfS5uZ3gtanNvbi12aWV3ZXJbX25nY29udGVudC0lQ09NUCVdICAgLnNlZ21lbnRbX25nY29udGVudC0lQ09NUCVdICAgLnNlZ21lbnQtbWFpbltfbmdjb250ZW50'@; put 'LSVDT01QJV0gICAudG9nZ2xlcltfbmdjb250ZW50LSVDT01QJV06YWZ0ZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29udGVudDoiXFwyNWJhIjt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMXMgZWFzZS1pbn0ubmd4LWpzb24tdmlld2VyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zZWdtZW50W19u'@; put 'Z2NvbnRlbnQtJUNPTVAlXSAgIC5zZWdtZW50LW1haW5bX25nY29udGVudC0lQ09NUCVdICAgLnNlZ21lbnQta2V5W19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjp2YXIoLS1uZ3gtanNvbi1rZXksICM0RTE4N0MpfS5uZ3gtanNvbi12aWV3ZXJbX25nY29udGVudC0lQ09NUCVdICAgLnNlZ21l'@; put 'bnRbX25nY29udGVudC0lQ09NUCVdICAgLnNlZ21lbnQtbWFpbltfbmdjb250ZW50LSVDT01QJV0gICAuc2VnbWVudC1zZXBhcmF0b3JbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnZhcigtLW5neC1qc29uLXNlcGFyYXRvciwgIzk5OSl9Lm5neC1qc29uLXZpZXdlcltfbmdjb250ZW50LSVD'@; put 'T01QJV0gICAuc2VnbWVudFtfbmdjb250ZW50LSVDT01QJV0gICAuc2VnbWVudC1tYWluW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zZWdtZW50LXZhbHVlW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjp2YXIoLS1uZ3gtanNvbi12YWx1ZSwgIzAwMCl9Lm5neC1qc29uLXZpZXdlcltfbmdjb250'@; put 'ZW50LSVDT01QJV0gICAuc2VnbWVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2hpbGRyZW5bX25nY29udGVudC0lQ09NUCVde21hcmdpbi1sZWZ0OjEycHh9Lm5neC1qc29uLXZpZXdlcltfbmdjb250ZW50LSVDT01QJV0gICAuc2VnbWVudC10eXBlLXN0cmluZ1tfbmdjb250ZW50LSVDT01Q'@; put 'JV0gPiAuc2VnbWVudC1tYWluW19uZ2NvbnRlbnQtJUNPTVAlXSA+IC5zZWdtZW50LXZhbHVlW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjp2YXIoLS1uZ3gtanNvbi1zdHJpbmcsICNGRjZCNkIpfS5uZ3gtanNvbi12aWV3ZXJbX25nY29udGVudC0lQ09NUCVdICAgLnNlZ21lbnQtdHlwZS1u'@; put 'dW1iZXJbX25nY29udGVudC0lQ09NUCVdID4gLnNlZ21lbnQtbWFpbltfbmdjb250ZW50LSVDT01QJV0gPiAuc2VnbWVudC12YWx1ZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6dmFyKC0tbmd4LWpzb24tbnVtYmVyLCAjMDA5Njg4KX0ubmd4LWpzb24tdmlld2VyW19uZ2NvbnRlbnQtJUNP'@; put 'TVAlXSAgIC5zZWdtZW50LXR5cGUtYm9vbGVhbltfbmdjb250ZW50LSVDT01QJV0gPiAuc2VnbWVudC1tYWluW19uZ2NvbnRlbnQtJUNPTVAlXSA+IC5zZWdtZW50LXZhbHVlW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjp2YXIoLS1uZ3gtanNvbi1ib29sZWFuLCAjQjkzOEE0KX0ubmd4LWpz'@; put 'b24tdmlld2VyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zZWdtZW50LXR5cGUtZGF0ZVtfbmdjb250ZW50LSVDT01QJV0gPiAuc2VnbWVudC1tYWluW19uZ2NvbnRlbnQtJUNPTVAlXSA+IC5zZWdtZW50LXZhbHVlW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjp2YXIoLS1uZ3gtanNvbi1kYXRl'@; put 'LCAjMDU2NjhEKX0ubmd4LWpzb24tdmlld2VyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zZWdtZW50LXR5cGUtYXJyYXlbX25nY29udGVudC0lQ09NUCVdID4gLnNlZ21lbnQtbWFpbltfbmdjb250ZW50LSVDT01QJV0gPiAuc2VnbWVudC12YWx1ZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6'@; put 'dmFyKC0tbmd4LWpzb24tYXJyYXksICM5OTkpfS5uZ3gtanNvbi12aWV3ZXJbX25nY29udGVudC0lQ09NUCVdICAgLnNlZ21lbnQtdHlwZS1vYmplY3RbX25nY29udGVudC0lQ09NUCVdID4gLnNlZ21lbnQtbWFpbltfbmdjb250ZW50LSVDT01QJV0gPiAuc2VnbWVudC12YWx1ZVtfbmdjb250'@; put 'ZW50LSVDT01QJV17Y29sb3I6dmFyKC0tbmd4LWpzb24tb2JqZWN0LCAjOTk5KX0ubmd4LWpzb24tdmlld2VyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5zZWdtZW50LXR5cGUtZnVuY3Rpb25bX25nY29udGVudC0lQ09NUCVdID4gLnNlZ21lbnQtbWFpbltfbmdjb250ZW50LSVDT01QJV0gPiAu'@; put 'c2VnbWVudC12YWx1ZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6dmFyKC0tbmd4LWpzb24tZnVuY3Rpb24sICM5OTkpfS5uZ3gtanNvbi12aWV3ZXJbX25nY29udGVudC0lQ09NUCVdICAgLnNlZ21lbnQtdHlwZS1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXSA+IC5zZWdtZW50LW1haW5bX25n'@; put 'Y29udGVudC0lQ09NUCVdID4gLnNlZ21lbnQtdmFsdWVbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnZhcigtLW5neC1qc29uLWxpbmssICM5QjU5QjYpfS5uZ3gtanNvbi12aWV3ZXJbX25nY29udGVudC0lQ09NUCVdICAgLnNlZ21lbnQtdHlwZS1udWxsW19uZ2NvbnRlbnQtJUNPTVAlXSA+'@; put 'IC5zZWdtZW50LW1haW5bX25nY29udGVudC0lQ09NUCVdID4gLnNlZ21lbnQtdmFsdWVbX25nY29udGVudC0lQ09NUCVde2NvbG9yOnZhcigtLW5neC1qc29uLW51bGwsICNmZmYpfS5uZ3gtanNvbi12aWV3ZXJbX25nY29udGVudC0lQ09NUCVdICAgLnNlZ21lbnQtdHlwZS11bmRlZmluZWRb'@; put 'X25nY29udGVudC0lQ09NUCVdID4gLnNlZ21lbnQtbWFpbltfbmdjb250ZW50LSVDT01QJV0gPiAuc2VnbWVudC12YWx1ZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6dmFyKC0tbmd4LWpzb24tdW5kZWZpbmVkLCAjZmZmKX0ubmd4LWpzb24tdmlld2VyW19uZ2NvbnRlbnQtJUNPTVAlXSAg'@; put 'IC5zZWdtZW50LXR5cGUtbnVsbFtfbmdjb250ZW50LSVDT01QJV0gPiAuc2VnbWVudC1tYWluW19uZ2NvbnRlbnQtJUNPTVAlXSA+IC5zZWdtZW50LXZhbHVlW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW5neC1qc29uLW51bGwtYmcsIHJlZCl9Lm5neC1qc29u'@; put 'LXZpZXdlcltfbmdjb250ZW50LSVDT01QJV0gICAuc2VnbWVudC10eXBlLXVuZGVmaW5lZFtfbmdjb250ZW50LSVDT01QJV0gPiAuc2VnbWVudC1tYWluW19uZ2NvbnRlbnQtJUNPTVAlXSA+IC5zZWdtZW50LWtleVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6dmFyKC0tbmd4LWpzb24tdW5k'@; put 'ZWZpbmVkLWtleSwgIzk5OSl9Lm5neC1qc29uLXZpZXdlcltfbmdjb250ZW50LSVDT01QJV0gICAuc2VnbWVudC10eXBlLXVuZGVmaW5lZFtfbmdjb250ZW50LSVDT01QJV0gPiAuc2VnbWVudC1tYWluW19uZ2NvbnRlbnQtJUNPTVAlXSA+IC5zZWdtZW50LXZhbHVlW19uZ2NvbnRlbnQtJUNP'@; put 'TVAlXXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW5neC1qc29uLXVuZGVmaW5lZC1rZXksICM5OTkpfS5uZ3gtanNvbi12aWV3ZXJbX25nY29udGVudC0lQ09NUCVdICAgLnNlZ21lbnQtdHlwZS1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXSA+IC5zZWdtZW50LW1haW5bX25nY29udGVudC0lQ09N'@; put 'UCVdID4gLnNlZ21lbnQtdmFsdWVbX25nY29udGVudC0lQ09NUCVde3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Y3Vyc29yOnBvaW50ZXJ9Lm5neC1qc29uLXZpZXdlcltfbmdjb250ZW50LSVDT01QJV0gICAuc2VnbWVudC10eXBlLW9iamVjdFtfbmdjb250ZW50LSVDT01QJV0gPiAuc2Vn'@; put 'bWVudC1tYWluW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm5neC1qc29uLXZpZXdlcltfbmdjb250ZW50LSVDT01QJV0gICAuc2VnbWVudC10eXBlLWFycmF5W19uZ2NvbnRlbnQtJUNPTVAlXSA+IC5zZWdtZW50LW1haW5bX25nY29udGVudC0lQ09NUCVde3doaXRlLXNwYWNlOm5vd3JhcH0ubmd4'@; put 'LWpzb24tdmlld2VyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5leHBhbmRlZFtfbmdjb250ZW50LSVDT01QJV0gPiAudG9nZ2xlcltfbmdjb250ZW50LSVDT01QJV06YWZ0ZXJ7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9Lm5neC1qc29uLXZpZXdlcltfbmdjb250ZW50LSVDT01QJV0gICAuZXhw'@; put 'YW5kYWJsZVtfbmdjb250ZW50LSVDT01QJV0sIC5uZ3gtanNvbi12aWV3ZXJbX25nY29udGVudC0lQ09NUCVdICAgLmV4cGFuZGFibGVbX25nY29udGVudC0lQ09NUCVdID4gLnRvZ2dsZXJbX25nY29udGVudC0lQ09NUCVde2N1cnNvcjpwb2ludGVyfSddfSksY30pKCksR2t0PSgoKT0+e2Ns'@; put 'YXNzIGN7fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMpfSxjLlx1MDI3NW1vZD1BaSh7dHlwZTpjfSksYy5cdTAyNzVpbmo9QXIoe2ltcG9ydHM6W0xhXX0pLGN9KSgpLCRrdD0oKCk9PntjbGFzcyBje3RyYW5zZm9ybShhKXtpZighYS5pbmNsdWRlcygi'@; put 'LyIpKXJldHVybiBhO2xldCBkPSIiO2NvbnN0IGg9YS5zcGxpdCgiLyIpO2ZvcihsZXQgZj0wO2Y8aC5sZW5ndGg7ZisrKWlmKCIiIT09aFtmXSl7Y29uc3Qgdj1oW2ZdO2QrPSIvIit2LGhbZl09YDxhIGhyZWY9JHtkfT4ke3Z9PC9hPmB9cmV0dXJuIGguam9pbigiLyIpfXN0YXRpY3t0aGlz'@; put 'Llx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpfX1zdGF0aWN7dGhpcy5cdTAyNzVwaXBlPWFsKHtuYW1lOiJsaW5raW56ZSIsdHlwZTpjLHB1cmU6ITB9KX19cmV0dXJuIGN9KSgpLEtrdD0oKCk9PntjbGFzcyBje3RyYW5zZm9ybShhKXtyZXR1cm4gSlNPTi5zdHJpbmdp'@; put 'ZnkoYSxudWxsLDIpfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpfX1zdGF0aWN7dGhpcy5cdTAyNzVwaXBlPWFsKHtuYW1lOiJwcmV0dHlqc29uIix0eXBlOmMscHVyZTohMH0pfX1yZXR1cm4gY30pKCk7ZnVuY3Rpb24gWGt0KGMsbCl7aWYoMSZj'@; put 'JiYoZGUoMCwib3B0aW9uIiwyNCksT2UoMSksaGUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O3lNKCJ2YWx1ZSIsYS52YWx1ZSksZmUoKSxMcigiICIsYS5rZXksIiAiKX19ZnVuY3Rpb24gcWt0KGMsbCl7aWYoMSZjJiYoZGUoMCwib3B0Z3JvdXAiLDIyKSxndCgxLFhrdCwyLDIsIm9w'@; put 'dGlvbiIsMjMpLFFvKDIsImtleXZhbHVlIiksaGUoKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0LGQ9TGUoKTtNZSgibGFiZWwiLGEua2V5KSxmZSgpLE1lKCJuZ0Zvck9mIixBYygyLDIsZC5jb2xsZWN0aW9uc1thLmtleV0pKX19ZnVuY3Rpb24gSmt0KGMsbCl7MSZjJiYoZGUoMCwicCIs'@; put 'MjUpLE9lKDEsIiBTZWxlY3QgY29sbGVjdGlvbiB0byBzdGFydCAiKSxoZSgpKX1mdW5jdGlvbiBRa3QoYyxsKXsxJmMmJld0KDAsImNsci1zcGlubmVyIiwyNil9ZnVuY3Rpb24gZUR0KGMsbCl7MSZjJiZXdCgwLCJjbHItaWNvbiIsMzIpfWZ1bmN0aW9uIHREdChjLGwpe2lmKDEmYyl7Y29u'@; put 'c3QgYT1PbigpO2RlKDAsImNsci1pY29uIiwzMyksRnQoImNsaWNrIixmdW5jdGlvbigpe3d0KGEpO2NvbnN0IGg9TGUoMik7cmV0dXJuIGgubGlua3NTZWFyY2g9IiIsQ3QoaC5saW5rc0xpc3RPbkZpbHRlcigpKX0pLGhlKCl9fWZ1bmN0aW9uIG5EdChjLGwpe2lmKDEmYyl7Y29uc3QgYT1P'@; put 'bigpO2RlKDAsImNsci10cmVlLW5vZGUiLDI3KSgxLCJkaXYiLDI4KSgyLCJpbnB1dCIsMjksMCkscGkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe3d0KGEpO2NvbnN0IGY9TGUoKTtyZXR1cm4gZ2koZi5saW5rc1NlYXJjaCxoKXx8KGYubGlua3NTZWFyY2g9aCksQ3QoaCl9KSxGdCgi'@; put 'a2V5dXAiLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKCkubGlua3NMaXN0T25GaWx0ZXIoKSl9KSxoZSgpLGd0KDQsZUR0LDEsMCwiY2xyLWljb24iLDMwKSg1LHREdCwxLDAsImNsci1pY29uIiwzMSksaGUoKSgpfWlmKDImYyl7Y29uc3QgYT1kYSgzKSxkPUxlKCk7ZmUoMiksZmko'@; put 'Im5nTW9kZWwiLGQubGlua3NTZWFyY2gpLGZlKDIpLE1lKCJuZ0lmIixhLnZhbHVlLmxlbmd0aDwxKSxmZSgpLE1lKCJuZ0lmIixhLnZhbHVlLmxlbmd0aD4wKX19ZnVuY3Rpb24gckR0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiY2xyLXRyZWUtbm9kZSIsMzUpLEZ0KCJjbGlj'@; put 'ayIsZnVuY3Rpb24oaCl7d3QoYSk7Y29uc3QgZj1MZSgpLiRpbXBsaWNpdCx2PUxlKCk7cmV0dXJuIEN0KHYudHJlZU5vZGVDbGlja2VkKGgsZix2LmVuZHBvaW50TGlua3MpKX0pLHBpKCJjbHJFeHBhbmRlZENoYW5nZSIsZnVuY3Rpb24oaCl7d3QoYSk7Y29uc3QgZj1MZSgpLiRpbXBsaWNp'@; put 'dDtyZXR1cm4gZ2koZi5leHBhbmRlZCxoKXx8KGYuZXhwYW5kZWQ9aCksQ3QoaCl9KSxkZSgxLCJwIiwzNiksRnQoImNsaWNrIixmdW5jdGlvbigpe3d0KGEpO2NvbnN0IGg9TGUoKS4kaW1wbGljaXQ7cmV0dXJuIEN0KExlKCkubGlua09uQ2xpY2soaCkpfSksV3QoMiwiY2xyLWljb24iLDM3'@; put 'KSxPZSgzKSxoZSgpKCl9aWYoMiZjKXtjb25zdCBhPUxlKCkuJGltcGxpY2l0O2ZpKCJjbHJFeHBhbmRlZCIsYS5leHBhbmRlZCksTWUoImNsckxvYWRpbmciLCEhYS5sb2FkaW5nVGFibGVzJiYhYS50YWJsZXMpLGZlKDMpLEJ1KCIgIixhLm1ldGhvZCwiICIsYS5yZWwsIiAiKX19ZnVuY3Rp'@; put 'b24gaUR0KGMsbCl7aWYoMSZjJiYoYWkoMCksZ3QoMSxyRHQsNCw0LCJjbHItdHJlZS1ub2RlIiwzNCksc2koKSksMiZjKXtjb25zdCBhPWwuJGltcGxpY2l0O2ZlKCksTWUoIm5nSWYiLCFhLmhpZGRlbil9fWZ1bmN0aW9uIGFEdChjLGwpezEmYyYmV3QoMCwiY2xyLWljb24iLDMyKX1mdW5j'@; put 'dGlvbiBzRHQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJjbHItaWNvbiIsMzMpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKDIpO3JldHVybiBoLml0ZW1zU2VhcmNoPSIiLEN0KGguaXRlbXNMaXN0T25GaWx0ZXIoKSl9KSxoZSgpfX1mdW5jdGlvbiBv'@; put 'RHQoYyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTtkZSgwLCJjbHItdHJlZS1ub2RlIiwyNykoMSwiZGl2IiwyOCkoMiwiaW5wdXQiLDM4LDEpLHBpKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihoKXt3dChhKTtjb25zdCBmPUxlKCk7cmV0dXJuIGdpKGYuaXRlbXNTZWFyY2gsaCl8fChmLml0'@; put 'ZW1zU2VhcmNoPWgpLEN0KGgpfSksRnQoImtleXVwIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgpLml0ZW1zTGlzdE9uRmlsdGVyKCkpfSksaGUoKSxndCg0LGFEdCwxLDAsImNsci1pY29uIiwzMCkoNSxzRHQsMSwwLCJjbHItaWNvbiIsMzEpLGhlKCkoKX1pZigyJmMpe2NvbnN0'@; put 'IGE9ZGEoMyksZD1MZSgpO2ZlKDIpLGZpKCJuZ01vZGVsIixkLml0ZW1zU2VhcmNoKSxmZSgyKSxNZSgibmdJZiIsYS52YWx1ZS5sZW5ndGg8MSksZmUoKSxNZSgibmdJZiIsYS52YWx1ZS5sZW5ndGg+MCl9fWZ1bmN0aW9uIGxEdChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImNs'@; put 'ci10cmVlLW5vZGUiLDM1KSxGdCgiY2xpY2siLGZ1bmN0aW9uKGgpe3d0KGEpO2NvbnN0IGY9TGUoKS4kaW1wbGljaXQsdj1MZSgpO3JldHVybiBDdCh2LnRyZWVOb2RlQ2xpY2tlZChoLGYsdi5lbmRwb2ludEl0ZW1zKSl9KSxwaSgiY2xyRXhwYW5kZWRDaGFuZ2UiLGZ1bmN0aW9uKGgpe3d0'@; put 'KGEpO2NvbnN0IGY9TGUoKS4kaW1wbGljaXQ7cmV0dXJuIGdpKGYuZXhwYW5kZWQsaCl8fChmLmV4cGFuZGVkPWgpLEN0KGgpfSksZGUoMSwicCIsMzYpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKTtjb25zdCBoPUxlKCkuJGltcGxpY2l0O3JldHVybiBDdChMZSgpLml0ZW1PbkNsaWNr'@; put 'KGgpKX0pLFd0KDIsImNsci1pY29uIiwzNyksT2UoMyksaGUoKSgpfWlmKDImYyl7Y29uc3QgYT1MZSgpLiRpbXBsaWNpdDtmaSgiY2xyRXhwYW5kZWQiLGEuZXhwYW5kZWQpLE1lKCJjbHJMb2FkaW5nIiwhIWEubG9hZGluZ1RhYmxlcyYmIWEudGFibGVzKSxmZSgzKSxMcigiICIsYS5uYW1l'@; put 'fHxhLmlkLCIgIil9fWZ1bmN0aW9uIGNEdChjLGwpe2lmKDEmYyYmKGFpKDApLGd0KDEsbER0LDQsMywiY2xyLXRyZWUtbm9kZSIsMzQpLHNpKCkpLDImYyl7Y29uc3QgYT1sLiRpbXBsaWNpdDtmZSgpLE1lKCJuZ0lmIiwhYS5oaWRkZW4pfX1mdW5jdGlvbiB1RHQoYyxsKXsxJmMmJld0KDAs'@; put 'ImNsci1zcGlubmVyIiwzOSl9ZnVuY3Rpb24gZER0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwibmd4LWpzb24tdmlld2VyIiw0OSksRnQoInNlZ21lbnRMaW5rQ2xpY2tlZCIsZnVuY3Rpb24oaCl7cmV0dXJuIHd0KGEpLEN0KExlKDMpLm9uSnNvbkxpbmtDbGljayhoKSl9KSxo'@; put 'ZSgpfTImYyYmTWUoImpzb24iLExlKDMpLmVuZHBvaW50SnNvbikoImV4cGFuZGVkIiwhMSl9ZnVuY3Rpb24gaER0KGMsbCl7aWYoMSZjJiYoYWkoMCksT2UoMSksUW8oMiwicHJldHR5anNvbiIpLHNpKCkpLDImYyl7Y29uc3QgYT1MZSgzKTtmZSgpLExyKCJcbiAgICAgICAgICAgICIsQWMo'@; put 'MiwxLGEuZW5kcG9pbnRKc29uKSwiXG4gICAgICAgICAgIil9fWZ1bmN0aW9uIGZEdChjLGwpe2lmKDEmYyYmKGFpKDApLE9lKDEsIlxuICAgICAgICAgICIpLGd0KDIsZER0LDEsMiwibmd4LWpzb24tdmlld2VyIiw0OCksT2UoMywiXG4gICAgICAgICAgIiksZ3QoNCxoRHQsMywzLCJuZy1j'@; put 'b250YWluZXIiLDIxKSxPZSg1LCJcbiAgICAgICAgIiksc2koKSksMiZjKXtjb25zdCBhPUxlKDIpO2ZlKDIpLE1lKCJuZ0lmIiwhYS5yYXdKc29uKSxmZSgyKSxNZSgibmdJZiIsYS5yYXdKc29uKX19ZnVuY3Rpb24gcER0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7YWkoMCksZGUoMSwi'@; put 'ZGl2Iiw0MCkoMiwic3BhbiIsNDEpLE9lKDMsIiBHRVQgIiksZGUoNCwicCIsNDIpLFFvKDUsImxpbmtpbnplIiksRnQoImNsaWNrIixmdW5jdGlvbihoKXtyZXR1cm4gd3QoYSksQ3QoTGUoKS5vbkJyZWFkY3Vtc0NsaWNrKGgpKX0pLGhlKCksZGUoNiwiYnV0dG9uIiwxNiksRnQoImNsaWNr'@; put 'IixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgpLmNvcHlCcmVhZGNydW1zKCkpfSksV3QoNywiY2xyLWljb24iLDE3KSxoZSgpKCksZGUoOCwiZGl2Iiw0MykoOSwiY2xyLWlucHV0LWNvbnRhaW5lciIsMTQpKDEwLCJsYWJlbCIpLE9lKDExLCJTdGFydCIpLGhlKCksZGUoMTIsImlu'@; put 'cHV0Iiw0NCkscGkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKGgpe3d0KGEpO2NvbnN0IGY9TGUoKTtyZXR1cm4gZ2koZi5lbmRwb2ludC5zdGFydCxoKXx8KGYuZW5kcG9pbnQuc3RhcnQ9aCksQ3QoaCl9KSxoZSgpKCksZGUoMTMsImNsci1pbnB1dC1jb250YWluZXIiLDE0KSgxNCwibGFi'@; put 'ZWwiKSxPZSgxNSwiTGltaXQiKSxoZSgpLGRlKDE2LCJpbnB1dCIsNDQpLHBpKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihoKXt3dChhKTtjb25zdCBmPUxlKCk7cmV0dXJuIGdpKGYuZW5kcG9pbnQubGltaXQsaCl8fChmLmVuZHBvaW50LmxpbWl0PWgpLEN0KGgpfSksaGUoKSgpLGRlKDE3'@; put 'LCJidXR0b24iLDQ1KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKCkuYXBwbHlRdWVyeVBhcmFtcygpKX0pLFd0KDE4LCJjbHItaWNvbiIsNDYpLGhlKCkoKSgpLGRlKDE5LCJwcmUiLDQ3KSxPZSgyMCwiICAgICAgICAiKSxndCgyMSxmRHQsNiwyLCJuZy1jb250'@; put 'YWluZXIiLDIxKSxPZSgyMiwiXG4gICAgICAiKSxoZSgpLHNpKCl9aWYoMiZjKXtjb25zdCBhPUxlKCk7ZmUoNCksTWUoImlubmVySFRNTCIsQWMoNSw3LGEuZW5kcG9pbnQudXJsKSxWNCksZmUoOCksZmkoIm5nTW9kZWwiLGEuZW5kcG9pbnQuc3RhcnQpLE1lKCJkaXNhYmxlZCIsdm9pZCAw'@; put 'PT09YS5lbmRwb2ludC5zdGFydCksZmUoNCksZmkoIm5nTW9kZWwiLGEuZW5kcG9pbnQubGltaXQpLE1lKCJkaXNhYmxlZCIsdm9pZCAwPT09YS5lbmRwb2ludC5saW1pdCksZmUoKSxNZSgiZGlzYWJsZWQiLHZvaWQgMD09PWEuZW5kcG9pbnQubGltaXQmJnZvaWQgMD09PWEuZW5kcG9pbnQu'@; put 'c3RhcnQpLGZlKDQpLE1lKCJuZ0lmIixhLmVuZHBvaW50SnNvbil9fWxldCBnRHQ9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmKXt0aGlzLmhlbHBlclNlcnZpY2U9YSx0aGlzLnNhc1ZpeWFTZXJ2aWNlPWQsdGhpcy5zYXNTZXJ2aWNlPWgsdGhpcy5ldmVudFNlcnZpY2U9Zix0'@; put 'aGlzLmNvbGxlY3Rpb25zPXt9LHRoaXMuY29sbGVjdGlvbj0iIix0aGlzLmVuZHBvaW50TGlua3M9W10sdGhpcy5lbmRwb2ludEl0ZW1zPVtdLHRoaXMuZW5kcG9pbnQ9e3VybDoiIixzdGFydDotMSxsaW1pdDotMX0sdGhpcy5lbmRwb2ludExvYWRpbmc9ITEsdGhpcy5jb2xsZWN0aW9uTG9h'@; put 'ZGluZz0hMSx0aGlzLnJhd0pzb249ITEsdGhpcy5saW5rc1NlYXJjaD0iIix0aGlzLml0ZW1zU2VhcmNoPSIiLHRoaXMuc2FzanNDb25maWc9bmV3IHloLlNBU2pzQ29uZmlnfW5nT25Jbml0KCl7dGhpcy5zYXNqc0NvbmZpZz10aGlzLnNhc1NlcnZpY2UuZ2V0U2FzanNDb25maWcoKSx0aGlz'@; put 'LmNvbGxlY3Rpb25zPXRoaXMuc2FzVml5YVNlcnZpY2UuZ2V0QWxsQ29sbGVjdGlvbnMoKX1saW5rc0xpc3RPbkZpbHRlcigpe3RoaXMuaGVscGVyU2VydmljZS5saWJyYXJ5T25GaWx0ZXIodGhpcy5lbmRwb2ludExpbmtzLHRoaXMubGlua3NTZWFyY2gsInJlbCIpLEpuLnZpeWFBcGkubGlu'@; put 'a3NzU2VhcmNoPXRoaXMubGlua3NTZWFyY2h9aXRlbXNMaXN0T25GaWx0ZXIoKXt0aGlzLmhlbHBlclNlcnZpY2UubGlicmFyeU9uRmlsdGVyKHRoaXMuZW5kcG9pbnRJdGVtcyx0aGlzLml0ZW1zU2VhcmNoLCJuYW1lIiksSm4udml5YUFwaS5pdGVtc1NlYXJjaD10aGlzLml0ZW1zU2VhcmNo'@; put 'fWxpbmtPbkNsaWNrKGEpe3RoaXMubG9hZFVybChhLmhyZWYpfWl0ZW1PbkNsaWNrKGEpe3RoaXMubG9hZFVybChhLmxpbmtzWzBdLmhyZWYpfXRyZWVOb2RlQ2xpY2tlZChhLGQsaCl7IkNvbGxhcHNlIj09PWEudGFyZ2V0LnRpdGxlJiZ0aGlzLmNvbGxhcHNlVHJlZUl0ZW1zKGgsZCl9Y29s'@; put 'bGFwc2VUcmVlSXRlbXMoYSxkKXthLmZvckVhY2goaD0+e0pTT04uc3RyaW5naWZ5KGgpIT09SlNPTi5zdHJpbmdpZnkoZCkmJihoLmV4cGFuZGVkPSExKX0pfXVwZGF0ZVNlbGVjdGVkQ29sbGVjdGlvbigpe0puLnZpeWFBcGkuc2VsZWN0ZWRDb2xsZWN0aW9uPXRoaXMuY29sbGVjdGlvbix0'@; put 'aGlzLmVuZHBvaW50LnVybD10aGlzLmNvbGxlY3Rpb24sdGhpcy5jb2xsZWN0aW9uTG9hZGluZz0hMCx0aGlzLnNhc1ZpeWFTZXJ2aWNlLmdldEJ5Q29sbGVjdGlvbih0aGlzLmNvbGxlY3Rpb24pLnN1YnNjcmliZShhPT57dGhpcy5lbmRwb2ludExpbmtzPWEubGlua3MsdGhpcy5lbmRwb2lu'@; put 'dEl0ZW1zPWEuaXRlbXM/YS5pdGVtczpbXSx0aGlzLmNvbGxlY3Rpb25Mb2FkaW5nPSExLHRoaXMuZW5kcG9pbnRKc29uPWEsdGhpcy5lbmRwb2ludC5zdGFydD1hLnN0YXJ0LHRoaXMuZW5kcG9pbnQubGltaXQ9YS5saW1pdH0sYT0+e3RoaXMuY29sbGVjdGlvbkxvYWRpbmc9ITE7bGV0IGQ9'@; put 'IkVycm9yIG9jY3VycmVkIHdoaWxlIHNlbmRpbmcgcmVxdWVzdCI7YS5tZXNzYWdlJiYoZD1hLm1lc3NhZ2UpLGEuZXJyb3ImJihhLmVycm9yLm1lc3NhZ2UmJihkPWEuZXJyb3IubWVzc2FnZSksYS5lcnJvci5yZW1lZGlhdGlvbiYmKGQ9YCR7ZH1cbiR7YS5lcnJvci5yZW1lZGlhdGlvbn1g'@; put 'KSksdGhpcy5ldmVudFNlcnZpY2Uuc2hvd0Fib3J0TW9kYWwobnVsbCxkLG51bGwsIkhUVFAgRXJyb3IiKX0pfW9uSnNvbkxpbmtDbGljayhhKXt0aGlzLmxvYWRVcmwoYSl9b25Kc29uQ2xpY2soYSl7aWYoYS5wcmV2ZW50RGVmYXVsdCgpLCJBIj09PWEuc3JjRWxlbWVudC50YWdOYW1lKXtj'@; put 'b25zdCBkPWEuc3JjRWxlbWVudC5ocmVmLnNwbGl0KGEuc3JjRWxlbWVudC5ob3N0KVsxXTt0aGlzLmxvYWRVcmwoZCl9fW9uQnJlYWRjdW1zQ2xpY2soYSl7aWYoYS5wcmV2ZW50RGVmYXVsdCgpLCFhLnNyY0VsZW1lbnQuaHJlZilyZXR1cm47Y29uc3QgZD1hLnNyY0VsZW1lbnQuaHJlZi5z'@; put 'cGxpdChhLnNyY0VsZW1lbnQuaG9zdClbMV07dGhpcy5sb2FkVXJsKGQpfWNvcHlKc29uKCl7dGhpcy5lbmRwb2ludEpzb24mJm5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KEpTT04uc3RyaW5naWZ5KHRoaXMuZW5kcG9pbnRKc29uLG51bGwsMikpfWNvcHlCcmVhZGNydW1zKCl7dGhp'@; put 'cy5lbmRwb2ludCYmdGhpcy5lbmRwb2ludC51cmwmJm5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRoaXMuZW5kcG9pbnQudXJsKX1hcHBseVF1ZXJ5UGFyYW1zKCl7Y29uc3QgYT10aGlzLmVuZHBvaW50LnN0YXJ0LGQ9dGhpcy5lbmRwb2ludC5saW1pdCxoPWA/JHt2b2lkIDAhPT1h'@; put 'PyJzdGFydD0iK2E6IiJ9JHt2b2lkIDAhPT1kPyImbGltaXQ9IitkOiIifWAsZj1gJHt0aGlzLmVuZHBvaW50LnVybC5zcGxpdCgiPyIpWzBdfSR7aH1gO3RoaXMubG9hZFVybChmKX1sb2FkVXJsKGEpe3RoaXMuZW5kcG9pbnRMb2FkaW5nPSEwLHRoaXMuc2FzVml5YVNlcnZpY2UuZ2V0QnlV'@; put 'cmwoYSkuc3Vic2NyaWJlKGQ9Pnt0aGlzLmVuZHBvaW50TGlua3M9ZC5saW5rcyx0aGlzLmVuZHBvaW50SXRlbXM9ZC5pdGVtcz9kLml0ZW1zOltdLHRoaXMuZW5kcG9pbnRKc29uPWQsdGhpcy5lbmRwb2ludExvYWRpbmc9ITEsdGhpcy5lbmRwb2ludC51cmw9YSx0aGlzLmVuZHBvaW50LnN0'@; put 'YXJ0PWQuc3RhcnQsdGhpcy5lbmRwb2ludC5saW1pdD1kLmxpbWl0fSxkPT57dGhpcy5lbmRwb2ludExvYWRpbmc9ITE7bGV0IGg9IkVycm9yIG9jY3VycmVkIHdoaWxlIHNlbmRpbmcgcmVxdWVzdCI7ZC5tZXNzYWdlJiYoaD1kLm1lc3NhZ2UpLGQuZXJyb3ImJihkLmVycm9yLm1lc3NhZ2Um'@; put 'JihoPWQuZXJyb3IubWVzc2FnZSksZC5lcnJvci5yZW1lZGlhdGlvbiYmKGg9YCR7aH1cbiR7ZC5lcnJvci5yZW1lZGlhdGlvbn1gKSksdGhpcy5ldmVudFNlcnZpY2Uuc2hvd0Fib3J0TW9kYWwobnVsbCxoLG51bGwsIkhUVFAgRXJyb3IiKX0pfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5j'@; put 'dGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpKCRlKGJ1KSwkZShJVyksJGUoVm8pLCRlKG1jKSl9fXN0YXRpY3t0aGlzLlx1MDI3NWNtcD1Ocih7dHlwZTpjLHNlbGVjdG9yczpbWyJhcHAtdml5YS1hcGktZXhwbG9yZXIiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xz'@; put 'OjMzLHZhcnM6MTMsY29uc3RzOltbInNlYXJjaExpbmtzVHJlZUlucHV0IiwiIl0sWyJzZWFyY2hJdGVtc1RyZWVJbnB1dCIsIiJdLFsxLCJhcGktY29sbGVjdGlvbi1kcm9wZG93biJdLFsiY2xyU2VsZWN0IiwiIiwiaWQiLCJyZXBvc2l0b3J5IiwzLCJuZ01vZGVsQ2hhbmdlIiwiY2hhbmdl'@; put 'IiwibmdNb2RlbCJdLFszLCJsYWJlbCIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJjbGFzcyIsInctMTAwIHRleHQtY2VudGVyIiw0LCJuZ0lmIl0sWzEsImQtZmxleCIsImNsci1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyIl0sWyJjbHJNZWRpdW0iLCIiLDQsIm5nSWYiXSxbImNsYXNzIiwic2Vh'@; put 'cmNoLW5vZGUiLDQsIm5nSWYiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImNvbnRlbnQtYXJlYSJdLFsxLCJjYXJkIiwiaC0xMDAiLCJwLTEwIiwiZC1mbGV4IiwiY2xyLWZsZXgtY29sdW1uIl0sWzEsInctMTAwIiwiZC1mbGV4IiwiY2xyLWFsaWduLWl0ZW1zLWNlbnRlciIsImNsci1q'@; put 'dXN0aWZ5LWNvbnRlbnQtY2VudGVyIiwic2l0aW9uLXJlbGF0aXZlIl0sWzEsImpzb24tdG9nZ2xlIiwiZC1mbGV4IiwiY2xyLWFsaWduLWl0ZW1zLWNlbnRlciJdLFsxLCJtLTAiXSxbInR5cGUiLCJjaGVja2JveCIsImNsclRvZ2dsZSIsIiIsMywibmdNb2RlbENoYW5nZSIsIm5nTW9kZWwi'@; put 'XSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1saW5rIiwiYnRuLXNtIiwzLCJjbGljayJdLFsic2hhcGUiLCJjb3B5Il0sWzEsInRleHQtY2VudGVyIiwibS0wIl0sWyJjbHJTbWFsbCIsIiIsNCwibmdJZiJdLFsxLCJ3LTEwMCIsImxpZ2h0Il0sWzQsIm5nSWYiXSxbMywibGFiZWwi'@; put 'XSxbMywidmFsdWUiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFszLCJ2YWx1ZSJdLFsxLCJ3LTEwMCIsInRleHQtY2VudGVyIl0sWyJjbHJNZWRpdW0iLCIiXSxbMSwic2VhcmNoLW5vZGUiXSxbMSwidHJlZS1zZWFyY2gtd3JhcHBlciJdLFsiYXBwU3RlYWxGb2N1cyIsIiIsImNscklucHV0Iiwi'@; put 'IiwicGxhY2Vob2xkZXIiLCJTZWFyY2ggbGlua3MiLCJuYW1lIiwiaW5wdXQiLCJhdXRvY29tcGxldGUiLCJvZmYiLDMsIm5nTW9kZWxDaGFuZ2UiLCJrZXl1cCIsIm5nTW9kZWwiXSxbInNoYXBlIiwic2VhcmNoIiw0LCJuZ0lmIl0sWyJzaGFwZSIsInRpbWVzIiwzLCJjbGljayIsNCwibmdJ'@; put 'ZiJdLFsic2hhcGUiLCJzZWFyY2giXSxbInNoYXBlIiwidGltZXMiLDMsImNsaWNrIl0sWzMsImNsckV4cGFuZGVkIiwiY2xyTG9hZGluZyIsImNsaWNrIiwiY2xyRXhwYW5kZWRDaGFuZ2UiLDQsIm5nSWYiXSxbMywiY2xpY2siLCJjbHJFeHBhbmRlZENoYW5nZSIsImNsckV4cGFuZGVkIiwi'@; put 'Y2xyTG9hZGluZyJdLFsxLCJtLTAiLCJjdXJzb3ItcG9pbnRlciIsMywiY2xpY2siXSxbInNoYXBlIiwiYmxvY2siXSxbImNscklucHV0IiwiIiwicGxhY2Vob2xkZXIiLCJTZWFyY2ggaXRlbXMiLCJuYW1lIiwiaW5wdXQiLCJhdXRvY29tcGxldGUiLCJvZmYiLDMsIm5nTW9kZWxDaGFuZ2Ui'@; put 'LCJrZXl1cCIsIm5nTW9kZWwiXSxbImNsclNtYWxsIiwiIl0sWzEsImQtZmxleCIsImNsci1hbGlnbi1pdGVtcy1jZW50ZXIiLCJjbHItanVzdGlmeS1jb250ZW50LWJldHdlZW4iXSxbMSwiZC1mbGV4IiwiY2xyLWFsaWduLWl0ZW1zLWNlbnRlciJdLFsxLCJ0ZXh0LWNlbnRlciIsImVuZHBv'@; put 'aW50LWJyZWFkY3J1bXMiLDMsImNsaWNrIiwiaW5uZXJIVE1MIl0sWzEsImQtZmxleCIsImNsci1hbGlnbi1pdGVtcy1jZW50ZXIiLCJxdWVyeS1wYXJhbXMiXSxbImNscklucHV0IiwiIiwidHlwZSIsIm51bWJlciIsMywibmdNb2RlbENoYW5nZSIsIm5nTW9kZWwiLCJkaXNhYmxlZCJdLFsi'@; put 'dHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLWxpbmsiLCJidG4tc20iLDMsImNsaWNrIiwiZGlzYWJsZWQiXSxbInNoYXBlIiwicGxheSJdLFsxLCJqc29uLWFyZWEiXSxbImNsYXNzIiwiZC1ibG9jayIsMywianNvbiIsImV4cGFuZGVkIiwic2VnbWVudExpbmtDbGlja2VkIiw0LCJuZ0lm'@; put 'Il0sWzEsImQtYmxvY2siLDMsInNlZ21lbnRMaW5rQ2xpY2tlZCIsImpzb24iLCJleHBhbmRlZCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihkLGgpezEmZCYmKGRlKDAsImFwcC1zaWRlYmFyIikoMSwiZGl2IiwyKSgyLCJjbHItc2VsZWN0LWNvbnRhaW5lciIpKDMsImxhYmVsIiksT2UoNCwiQVBJ'@; put 'IENvbGxlY3Rpb24iKSxoZSgpLGRlKDUsInNlbGVjdCIsMykscGkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHYpe3JldHVybiBnaShoLmNvbGxlY3Rpb24sdil8fChoLmNvbGxlY3Rpb249diksdn0pLEZ0KCJjaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIGgudXBkYXRlU2VsZWN0ZWRDb2xs'@; put 'ZWN0aW9uKCl9KSxndCg2LHFrdCwzLDQsIm9wdGdyb3VwIiw0KSxRbyg3LCJrZXl2YWx1ZSIpLGhlKCkoKSgpLGd0KDgsSmt0LDIsMCwicCIsNSksZGUoOSwiZGl2Iiw2KSxndCgxMCxRa3QsMSwwLCJjbHItc3Bpbm5lciIsNyksaGUoKSxkZSgxMSwiY2xyLXRyZWUiKSxndCgxMixuRHQsNiwz'@; put 'LCJjbHItdHJlZS1ub2RlIiw4KSgxMyxpRHQsMiwxLCJuZy1jb250YWluZXIiLDkpLGhlKCksZGUoMTQsImNsci10cmVlIiksZ3QoMTUsb0R0LDYsMywiY2xyLXRyZWUtbm9kZSIsOCkoMTYsY0R0LDIsMSwibmctY29udGFpbmVyIiw5KSxoZSgpKCksZGUoMTcsImRpdiIsMTApKDE4LCJkaXYi'@; put 'LDExKSgxOSwiZGl2IiwxMikoMjAsImRpdiIsMTMpKDIxLCJjbHItdG9nZ2xlLWNvbnRhaW5lciIsMTQpKDIyLCJjbHItdG9nZ2xlLXdyYXBwZXIiKSgyMywiaW5wdXQiLDE1KSxwaSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24odil7cmV0dXJuIGdpKGgucmF3SnNvbix2KXx8KGgucmF3SnNv'@; put 'bj12KSx2fSksaGUoKSxkZSgyNCwibGFiZWwiKSxPZSgyNSwiUkFXIEpzb24iKSxoZSgpKCkoKSxkZSgyNiwiYnV0dG9uIiwxNiksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBoLmNvcHlKc29uKCl9KSxXdCgyNywiY2xyLWljb24iLDE3KSxoZSgpKCksZGUoMjgsImg0IiwxOCksT2Uo'@; put 'MjksIiBBUEkgRXhwbG9yZXIgIiksZ3QoMzAsdUR0LDEsMCwiY2xyLXNwaW5uZXIiLDE5KSxoZSgpKCksV3QoMzEsImhyIiwyMCksZ3QoMzIscER0LDIzLDksIm5nLWNvbnRhaW5lciIsMjEpLGhlKCkoKSksMiZkJiYoZmUoNSksZmkoIm5nTW9kZWwiLGguY29sbGVjdGlvbiksZmUoKSxNZSgi'@; put 'bmdGb3JPZiIsQWMoNywxMSxoLmNvbGxlY3Rpb25zKSksZmUoMiksTWUoIm5nSWYiLGguZW5kcG9pbnRMaW5rcy5sZW5ndGg8MSYmIWguY29sbGVjdGlvbkxvYWRpbmcpLGZlKDIpLE1lKCJuZ0lmIixoLmNvbGxlY3Rpb25Mb2FkaW5nKSxmZSgyKSxNZSgibmdJZiIsaC5lbmRwb2ludExpbmtz'@; put 'Lmxlbmd0aD4wKSxmZSgpLE1lKCJuZ0Zvck9mIixoLmVuZHBvaW50TGlua3MpLGZlKDIpLE1lKCJuZ0lmIixoLmVuZHBvaW50SXRlbXMubGVuZ3RoPjApLGZlKCksTWUoIm5nRm9yT2YiLGguZW5kcG9pbnRJdGVtcyksZmUoNyksZmkoIm5nTW9kZWwiLGgucmF3SnNvbiksZmUoNyksTWUoIm5n'@; put 'SWYiLGguZW5kcG9pbnRMb2FkaW5nKSxmZSgyKSxNZSgibmdJZiIsaC5jb2xsZWN0aW9uLmxlbmd0aD4wKSl9LGRlcGVuZGVuY2llczpbUXMsYmEsRDIsSTIsR2wsd0wsTWQsazIsdGwsV28sQWgsUGQsT2wsVjAsY28sSWQsRmIseGgsWTEscUwsRTcsWmIsUmQsYTQsaTQsWWt0LHhSLCRrdCxL'@; put 'a3RdLGVuY2Fwc3VsYXRpb246Mn0pfX1yZXR1cm4gY30pKCk7Y29uc3QgbUR0PW5ldyBTdCgiV2luZG93VG9rZW4iLHR5cGVvZiB3aW5kb3c8InUiJiZ3aW5kb3cuZG9jdW1lbnQ/e3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6KCk9PndpbmRvd306e3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rv'@; put 'cnk6KCk9Pnt9fSk7bGV0IHZEdD0oKCk9PntjbGFzcyBje2NvbnN0cnVjdG9yKGEsZCxoKXt0aGlzLm5nWm9uZT1hLHRoaXMuZG9jdW1lbnQ9ZCx0aGlzLndpbmRvdz1oLHRoaXMuY29weVN1YmplY3Q9bmV3IEduLHRoaXMuY29weVJlc3BvbnNlJD10aGlzLmNvcHlTdWJqZWN0LmFzT2JzZXJ2'@; put 'YWJsZSgpLHRoaXMuY29uZmlnPXt9fWNvbmZpZ3VyZShhKXt0aGlzLmNvbmZpZz1hfWNvcHkoYSl7aWYoIXRoaXMuaXNTdXBwb3J0ZWR8fCFhKXJldHVybiB0aGlzLnB1c2hDb3B5UmVzcG9uc2Uoe2lzU3VjY2VzczohMSxjb250ZW50OmF9KTtjb25zdCBkPXRoaXMuY29weUZyb21Db250ZW50'@; put 'KGEpO3JldHVybiB0aGlzLnB1c2hDb3B5UmVzcG9uc2UoZD97Y29udGVudDphLGlzU3VjY2VzczpkfTp7aXNTdWNjZXNzOiExLGNvbnRlbnQ6YX0pfWdldCBpc1N1cHBvcnRlZCgpe3JldHVybiEhdGhpcy5kb2N1bWVudC5xdWVyeUNvbW1hbmRTdXBwb3J0ZWQmJiEhdGhpcy5kb2N1bWVudC5x'@; put 'dWVyeUNvbW1hbmRTdXBwb3J0ZWQoImNvcHkiKSYmISF0aGlzLndpbmRvd31pc1RhcmdldFZhbGlkKGEpe2lmKGEgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50fHxhIGluc3RhbmNlb2YgSFRNTFRleHRBcmVhRWxlbWVudCl7aWYoYS5oYXNBdHRyaWJ1dGUoImRpc2FibGVkIikpdGhyb3cg'@; put 'bmV3IEVycm9yKCdJbnZhbGlkICJ0YXJnZXQiIGF0dHJpYnV0ZS4gUGxlYXNlIHVzZSAicmVhZG9ubHkiIGluc3RlYWQgb2YgImRpc2FibGVkIiBhdHRyaWJ1dGUnKTtyZXR1cm4hMH10aHJvdyBuZXcgRXJyb3IoIlRhcmdldCBzaG91bGQgYmUgaW5wdXQgb3IgdGV4dGFyZWEiKX1jb3B5RnJv'@; put 'bUlucHV0RWxlbWVudChhLGQ9ITApe3RyeXt0aGlzLnNlbGVjdFRhcmdldChhKTtjb25zdCBoPXRoaXMuY29weVRleHQoKTtyZXR1cm4gdGhpcy5jbGVhclNlbGVjdGlvbihkP2E6dm9pZCAwLHRoaXMud2luZG93KSxoJiZ0aGlzLmlzQ29weVN1Y2Nlc3NJbklFMTEoKX1jYXRjaHtyZXR1cm4h'@; put 'MX19aXNDb3B5U3VjY2Vzc0luSUUxMSgpe2NvbnN0IGE9dGhpcy53aW5kb3cuY2xpcGJvYXJkRGF0YTtyZXR1cm4hKGEmJmEuZ2V0RGF0YSYmIWEuZ2V0RGF0YSgiVGV4dCIpKX1jb3B5RnJvbUNvbnRlbnQoYSxkPXRoaXMuZG9jdW1lbnQuYm9keSl7aWYodGhpcy50ZW1wVGV4dEFyZWEmJiFk'@; put 'LmNvbnRhaW5zKHRoaXMudGVtcFRleHRBcmVhKSYmdGhpcy5kZXN0cm95KHRoaXMudGVtcFRleHRBcmVhLnBhcmVudEVsZW1lbnR8fHZvaWQgMCksIXRoaXMudGVtcFRleHRBcmVhKXt0aGlzLnRlbXBUZXh0QXJlYT10aGlzLmNyZWF0ZVRlbXBUZXh0QXJlYSh0aGlzLmRvY3VtZW50LHRoaXMu'@; put 'd2luZG93KTt0cnl7ZC5hcHBlbmRDaGlsZCh0aGlzLnRlbXBUZXh0QXJlYSl9Y2F0Y2h7dGhyb3cgbmV3IEVycm9yKCJDb250YWluZXIgc2hvdWxkIGJlIGEgRG9tIGVsZW1lbnQiKX19dGhpcy50ZW1wVGV4dEFyZWEudmFsdWU9YTtjb25zdCBoPXRoaXMuY29weUZyb21JbnB1dEVsZW1lbnQo'@; put 'dGhpcy50ZW1wVGV4dEFyZWEsITEpO3JldHVybiB0aGlzLmNvbmZpZy5jbGVhblVwQWZ0ZXJDb3B5JiZ0aGlzLmRlc3Ryb3kodGhpcy50ZW1wVGV4dEFyZWEucGFyZW50RWxlbWVudHx8dm9pZCAwKSxofWRlc3Ryb3koYT10aGlzLmRvY3VtZW50LmJvZHkpe3RoaXMudGVtcFRleHRBcmVhJiYo'@; put 'YS5yZW1vdmVDaGlsZCh0aGlzLnRlbXBUZXh0QXJlYSksdGhpcy50ZW1wVGV4dEFyZWE9dm9pZCAwKX1zZWxlY3RUYXJnZXQoYSl7cmV0dXJuIGEuc2VsZWN0KCksYS5zZXRTZWxlY3Rpb25SYW5nZSgwLGEudmFsdWUubGVuZ3RoKSxhLnZhbHVlLmxlbmd0aH1jb3B5VGV4dCgpe3JldHVybiB0'@; put 'aGlzLmRvY3VtZW50LmV4ZWNDb21tYW5kKCJjb3B5Iil9Y2xlYXJTZWxlY3Rpb24oYSxkKXthJiZhLmZvY3VzKCksZC5nZXRTZWxlY3Rpb24oKT8ucmVtb3ZlQWxsUmFuZ2VzKCl9Y3JlYXRlVGVtcFRleHRBcmVhKGEsZCl7Y29uc3QgaD0icnRsIj09PWEuZG9jdW1lbnRFbGVtZW50LmdldEF0'@; put 'dHJpYnV0ZSgiZGlyIik7bGV0IGY7cmV0dXJuIGY9YS5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpLGYuc3R5bGUuZm9udFNpemU9IjEycHQiLGYuc3R5bGUuYm9yZGVyPSIwIixmLnN0eWxlLnBhZGRpbmc9IjAiLGYuc3R5bGUubWFyZ2luPSIwIixmLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0'@; put 'ZSIsZi5zdHlsZVtoPyJyaWdodCI6ImxlZnQiXT0iLTk5OTlweCIsZi5zdHlsZS50b3A9KGQucGFnZVlPZmZzZXR8fGEuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCkrInB4IixmLnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCIiKSxmfXB1c2hDb3B5UmVzcG9uc2UoYSl7dGhpcy5jb3B5U3Vi'@; put 'amVjdC5vYnNlcnZlcnMubGVuZ3RoPjAmJnRoaXMubmdab25lLnJ1bigoKT0+e3RoaXMuY29weVN1YmplY3QubmV4dChhKX0pfXB1c2hDb3B5UmVwb25zZShhKXt0aGlzLnB1c2hDb3B5UmVzcG9uc2UoYSl9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8fGMp'@; put 'KENyKEdhKSxDcihtbyksQ3IobUR0LDgpKX0sYy5cdTAyNzVwcm92PXJuKHt0b2tlbjpjLGZhY3Rvcnk6Yy5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxjfSkoKSx5RHQ9KCgpPT57Y2xhc3MgY3tjb25zdHJ1Y3RvcihhLGQsaCxmKXt0aGlzLm5nWm9uZT1hLHRoaXMuaG9zdD1kLHRo'@; put 'aXMucmVuZGVyZXI9aCx0aGlzLmNsaXBib2FyZFNydj1mLHRoaXMuY2JPblN1Y2Nlc3M9bmV3IEtyLHRoaXMuY2JPbkVycm9yPW5ldyBLcix0aGlzLm9uQ2xpY2s9dj0+e3RoaXMuY2xpcGJvYXJkU3J2LmlzU3VwcG9ydGVkP3RoaXMudGFyZ2V0RWxtJiZ0aGlzLmNsaXBib2FyZFNydi5pc1Rh'@; put 'cmdldFZhbGlkKHRoaXMudGFyZ2V0RWxtKT90aGlzLmhhbmRsZVJlc3VsdCh0aGlzLmNsaXBib2FyZFNydi5jb3B5RnJvbUlucHV0RWxlbWVudCh0aGlzLnRhcmdldEVsbSksdGhpcy50YXJnZXRFbG0udmFsdWUsdik6dGhpcy5jYkNvbnRlbnQmJnRoaXMuaGFuZGxlUmVzdWx0KHRoaXMuY2xp'@; put 'cGJvYXJkU3J2LmNvcHlGcm9tQ29udGVudCh0aGlzLmNiQ29udGVudCx0aGlzLmNvbnRhaW5lciksdGhpcy5jYkNvbnRlbnQsdik6dGhpcy5oYW5kbGVSZXN1bHQoITEsdm9pZCAwLHYpfX1uZ09uSW5pdCgpe3RoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57dGhpcy5jbGlja0xp'@; put 'c3RlbmVyPXRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50LCJjbGljayIsdGhpcy5vbkNsaWNrKX0pfW5nT25EZXN0cm95KCl7dGhpcy5jbGlja0xpc3RlbmVyJiZ0aGlzLmNsaWNrTGlzdGVuZXIoKSx0aGlzLmNsaXBib2FyZFNydi5kZXN0cm95KHRoaXMuY29u'@; put 'dGFpbmVyKX1oYW5kbGVSZXN1bHQoYSxkLGgpe2xldCBmPXtpc1N1Y2Nlc3M6YSxjb250ZW50OmQsc3VjY2Vzc01lc3NhZ2U6dGhpcy5jYlN1Y2Nlc3NNc2csZXZlbnQ6aH07YT90aGlzLmNiT25TdWNjZXNzLm9ic2VydmVkJiZ0aGlzLm5nWm9uZS5ydW4oKCk9Pnt0aGlzLmNiT25TdWNjZXNz'@; put 'LmVtaXQoZil9KTp0aGlzLmNiT25FcnJvci5vYnNlcnZlZCYmdGhpcy5uZ1pvbmUucnVuKCgpPT57dGhpcy5jYk9uRXJyb3IuZW1pdChmKX0pLHRoaXMuY2xpcGJvYXJkU3J2LnB1c2hDb3B5UmVzcG9uc2UoZil9fXJldHVybiBjLlx1MDI3NWZhYz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3KGF8'@; put 'fGMpKCRlKEdhKSwkZShRaSksJGUoRXMpLCRlKHZEdCkpfSxjLlx1MDI3NWRpcj1Fcih7dHlwZTpjLHNlbGVjdG9yczpbWyIiLCJuZ3hDbGlwYm9hcmQiLCIiXV0saW5wdXRzOnt0YXJnZXRFbG06W1ZuLk5vbmUsIm5neENsaXBib2FyZCIsInRhcmdldEVsbSJdLGNvbnRhaW5lcjoiY29udGFp'@; put 'bmVyIixjYkNvbnRlbnQ6ImNiQ29udGVudCIsY2JTdWNjZXNzTXNnOiJjYlN1Y2Nlc3NNc2cifSxvdXRwdXRzOntjYk9uU3VjY2VzczoiY2JPblN1Y2Nlc3MiLGNiT25FcnJvcjoiY2JPbkVycm9yIn19KSxjfSkoKSxiRHQ9KCgpPT57Y2xhc3MgY3t9cmV0dXJuIGMuXHUwMjc1ZmFjPWZ1bmN0'@; put 'aW9uKGEpe3JldHVybiBuZXcoYXx8Yyl9LGMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9KSxjLlx1MDI3NWluaj1Bcih7aW1wb3J0czpbTGFdfSksY30pKCk7dmFyIF9EdD1iKDI1MDAxKTtsZXQgd0R0PSgoKT0+e2NsYXNzIGN7dHJhbnNmb3JtKGEsLi4uZCl7Y29uc3QgaD1wYXJzZUludChkWzBd'@; put 'KXx8MixmPSJudW1iZXIiIT10eXBlb2YgYT9wYXJzZUludChhKTphO3JldHVybigwLF9EdC5DKShmLGgpfXN0YXRpY3t0aGlzLlx1MDI3NWZhYz1mdW5jdGlvbihkKXtyZXR1cm4gbmV3KGR8fGMpfX1zdGF0aWN7dGhpcy5cdTAyNzVwaXBlPWFsKHtuYW1lOiJjb252ZXJ0U2l6ZSIsdHlwZTpj'@; put 'LHB1cmU6ITB9KX19cmV0dXJuIGN9KSgpO2NvbnN0IENEdD1bImhvdEluc3RhbmNlIl0sU0R0PVsicXVlcnlGaWx0ZXIiXSxNRHQ9KCk9PlsiIiwiICJdO2Z1bmN0aW9uIHhEdChjLGwpezEmYyYmKGRlKDAsImRpdiIsNTUpLFd0KDEsImNsci1zcGlubmVyIiw1NiksaGUoKSl9ZnVuY3Rpb24g'@; put 'RUR0KGMsbCl7MSZjJiZXdCgwLCJjbHItaWNvbiIsNjIpfWZ1bmN0aW9uIFREdChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImNsci1pY29uIiw2MyksRnQoImNsaWNrIixmdW5jdGlvbigpe3d0KGEpO2NvbnN0IGg9TGUoMik7cmV0dXJuIGgubGlicmFyaWVzU2VhcmNoPSIiLEN0'@; put 'KGgubGlicmFyeU9uRmlsdGVyKCkpfSksaGUoKX19ZnVuY3Rpb24gQUR0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiY2xyLXRyZWUtbm9kZSIsNTcpKDEsImRpdiIsNTgpKDIsImlucHV0Iiw1OSwxKSxwaSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oaCl7d3QoYSk7Y29uc3Qg'@; put 'Zj1MZSgpO3JldHVybiBnaShmLmxpYnJhcmllc1NlYXJjaCxoKXx8KGYubGlicmFyaWVzU2VhcmNoPWgpLEN0KGgpfSksRnQoImtleXVwIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSgpLmxpYnJhcnlPbkZpbHRlcigpKX0pLGhlKCksZ3QoNCxFRHQsMSwwLCJjbHItaWNvbiIsNjAp'@; put 'KDUsVER0LDEsMCwiY2xyLWljb24iLDYxKSxoZSgpKCl9aWYoMiZjKXtjb25zdCBhPWRhKDMpLGQ9TGUoKTtmZSgyKSxmaSgibmdNb2RlbCIsZC5saWJyYXJpZXNTZWFyY2gpLGZlKDIpLE1lKCJuZ0lmIixhLnZhbHVlLmxlbmd0aDwxKSxmZSgpLE1lKCJuZ0lmIixhLnZhbHVlLmxlbmd0aD4w'@; put 'KX19ZnVuY3Rpb24ga0R0KGMsbCl7MSZjJiZXdCgwLCJjbHItaWNvbiIsNjIpfWZ1bmN0aW9uIEREdChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImNsci1pY29uIiw2MyksRnQoImNsaWNrIixmdW5jdGlvbigpe3d0KGEpLExlKCk7Y29uc3QgaD1kYSgzKSxmPUxlKDIpLiRpbXBs'@; put 'aWNpdCx2PUxlKCk7cmV0dXJuIGgudmFsdWU9IiIsZi5zZWFyY2hTdHJpbmc9IiIsQ3Qodi50cmVlT25GaWx0ZXIoZiwidGFibGVzIikpfSksaGUoKX19ZnVuY3Rpb24gSUR0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiY2xyLXRyZWUtbm9kZSIsNTcpKDEsImRpdiIsNTgpKDIs'@; put 'ImlucHV0Iiw2OCwyKSxwaSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oaCl7d3QoYSk7Y29uc3QgZj1MZSgyKS4kaW1wbGljaXQ7cmV0dXJuIGdpKGYuc2VhcmNoU3RyaW5nLGgpfHwoZi5zZWFyY2hTdHJpbmc9aCksQ3QoaCl9KSxGdCgia2V5dXAiLGZ1bmN0aW9uKCl7d3QoYSk7Y29uc3Qg'@; put 'aD1MZSgyKS4kaW1wbGljaXQ7cmV0dXJuIEN0KExlKCkudHJlZU9uRmlsdGVyKGgsInRhYmxlcyIpKX0pLGhlKCksZ3QoNCxrRHQsMSwwLCJjbHItaWNvbiIsNjApKDUsRER0LDEsMCwiY2xyLWljb24iLDYxKSxoZSgpKCl9aWYoMiZjKXtjb25zdCBhPWRhKDMpLGQ9TGUoMikuJGltcGxpY2l0'@; put 'O2ZlKDIpLE1lKCJpZCIsInNlYXJjaF8iK2QuTElCUkFSWVJFRiksZmkoIm5nTW9kZWwiLGQuc2VhcmNoU3RyaW5nKSxmZSgyKSxNZSgibmdJZiIsYS52YWx1ZS5sZW5ndGg8MSksZmUoKSxNZSgibmdJZiIsYS52YWx1ZS5sZW5ndGg+MCl9fWZ1bmN0aW9uIFJEdChjLGwpezEmYyYmV3QoMCwi'@; put 'Y2xyLWljb24iLDc1KX1mdW5jdGlvbiBMRHQoYyxsKXsxJmMmJld0KDAsImNsci1pY29uIiw3Nil9ZnVuY3Rpb24gT0R0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiYnV0dG9uIiw3MSksRnQoImNsaWNrIixmdW5jdGlvbigpe3d0KGEpO2NvbnN0IGg9TGUoKS5uZ1ZhcixmPUxl'@; put 'KCkuJGltcGxpY2l0LHY9TGUoMikuJGltcGxpY2l0LE09TGUoKTtyZXR1cm4gQ3QoaD8iIjpNLm9uVGFibGVDbGljayhmLHYpKX0pLGFpKDEsNzIpLGd0KDIsUkR0LDEsMCwiY2xyLWljb24iLDczKSgzLExEdCwxLDAsImNsci1pY29uIiw3NCksc2koKSxPZSg0KSxoZSgpfWlmKDImYyl7Y29u'@; put 'c3QgYT1MZSgpLm5nVmFyLGQ9TGUoKS4kaW1wbGljaXQsaD1MZSgyKS4kaW1wbGljaXQsZj1MZSgpO1RyKCJkYy1sb2NrZWQtY29udHJvbCIsYSkoImFjdGl2ZSIsZi5saWJUYWJBY3RpdmUoaC5MSUJSQVJZUkVGLGQpKSxmZSgpLE1lKCJuZ1N3aXRjaCIsZC5pbmNsdWRlcygiLUZDIikpLGZl'@; put 'KCksTWUoIm5nU3dpdGNoQ2FzZSIsITApLGZlKCksTWUoIm5nU3dpdGNoQ2FzZSIsITEpLGZlKCksTHIoIiAiLGQucmVwbGFjZSgiLUZDIiwiIiksIiAiKX19ZnVuY3Rpb24gUER0KGMsbCl7MSZjJiYoZGUoMCwiY2xyLXRvb2x0aXAtY29udGVudCIsNzgpKDEsInNwYW4iKSxPZSgyLCIgVG8g'@; put 'dW5sb2NrIGFsbCB0YWJsZXMsIGNvbnRhY3Qgc3VwcG9ydEBkYXRhY29udHJvbGxlci5pbyAiKSxoZSgpKCkpfWZ1bmN0aW9uIEZEdChjLGwpezEmYyYmKGFpKDApLGd0KDEsUER0LDMsMCwiY2xyLXRvb2x0aXAtY29udGVudCIsNzcpLHNpKCkpfWZ1bmN0aW9uIEhEdChjLGwpe2lmKDEmYyYm'@; put 'KGRlKDAsImNsci10b29sdGlwIiksZ3QoMSxPRHQsNSw4LCJidXR0b24iLDcwKSgyLEZEdCwyLDAsIm5nLWNvbnRhaW5lciIsNDMpLGhlKCkpLDImYyl7Y29uc3QgYT1sLm5nVmFyLGQ9TGUoKS4kaW1wbGljaXQ7ZmUoKSxNZSgibmdJZiIsZC5sZW5ndGg+MCksZmUoKSxNZSgibmdJZiIsYSl9'@; put 'fWZ1bmN0aW9uIE5EdChjLGwpe2lmKDEmYyYmKGRlKDAsImNsci10cmVlLW5vZGUiKSxndCgxLEhEdCwzLDIsImNsci10b29sdGlwIiw2OSksaGUoKSksMiZjKXtjb25zdCBhPWwuaW5kZXgsZD1MZSgzKTtmZSgpLE1lKCJuZ1ZhciIsYSsxPmQubGljZW5jZVN0YXRlLnZhbHVlLnRhYmxlc19p'@; put 'bl9saWJyYXJ5X2xpbWl0KX19ZnVuY3Rpb24gVkR0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiY2xyLXRyZWUtbm9kZSIsNjUpLEZ0KCJjbGljayIsZnVuY3Rpb24oaCl7d3QoYSk7Y29uc3QgZj1MZSgpLiRpbXBsaWNpdDtyZXR1cm4gQ3QoTGUoKS50cmVlTm9kZUNsaWNrZWQo'@; put 'aCxmKSl9KSxwaSgiY2xyRXhwYW5kZWRDaGFuZ2UiLGZ1bmN0aW9uKGgpe3d0KGEpO2NvbnN0IGY9TGUoKS4kaW1wbGljaXQ7cmV0dXJuIGdpKGYuZXhwYW5kZWQsaCl8fChmLmV4cGFuZGVkPWgpLEN0KGgpfSksZGUoMSwicCIsNjYpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXt3dChhKTtjb25z'@; put 'dCBoPUxlKCkuJGltcGxpY2l0LGY9TGUoKTtyZXR1cm4gZi5saWI9aC5MSUJSQVJZUkVGLEN0KGYubGlicmFyeU9uQ2xpY2soaC5MSUJSQVJZUkVGLGgpKX0pLFd0KDIsImNsci1pY29uIiw2NyksT2UoMyksaGUoKSxndCg0LElEdCw2LDQsImNsci10cmVlLW5vZGUiLDgpKDUsTkR0LDIsMSwi'@; put 'Y2xyLXRyZWUtbm9kZSIsOSksaGUoKX1pZigyJmMpe2NvbnN0IGE9TGUoKS4kaW1wbGljaXQ7VHIoImNsci1leHBhbmRlZCIsYS5leHBhbmRlZCksZmkoImNsckV4cGFuZGVkIixhLmV4cGFuZGVkKSxNZSgiY2xyTG9hZGluZyIsYS5sb2FkaW5nVGFibGVzJiYhYS50YWJsZXMpLGZlKDMpLExy'@; put 'KCIgIixhLkxJQlJBUllOQU1FLCIgIiksZmUoKSxNZSgibmdJZiIsYS50YWJsZXMpLGZlKCksTWUoIm5nRm9yT2YiLGEudGFibGVzKX19ZnVuY3Rpb24gQkR0KGMsbCl7aWYoMSZjJiYoYWkoMCksZ3QoMSxWRHQsNiw3LCJjbHItdHJlZS1ub2RlIiw2NCksc2koKSksMiZjKXtjb25zdCBhPWwu'@; put 'JGltcGxpY2l0O2ZlKCksTWUoIm5nSWYiLCFhLmhpZGRlbiYmYS5pbkZvcmVncm91bmQpfX1mdW5jdGlvbiBqRHQoYyxsKXsxJmMmJihkZSgwLCJkaXYiLDc5KSgxLCJzcGFuIiw4MCksT2UoMiwiIExvYWRpbmcuLi4gIiksaGUoKSgpKX1mdW5jdGlvbiB6RHQoYyxsKXtpZigxJmMpe2NvbnN0'@; put 'IGE9T24oKTtkZSgwLCJkaXYiLDgxKSgxLCJkaXYiLDgyKSgyLCJkaXYiLDgzKSgzLCJkaXYiLDg0KSg0LCJidXR0b24iLDg1KSxXdCg1LCJjbHItaWNvbiIsODYpLGhlKCksZGUoNiwiaDMiLDQ4KSxPZSg3LCJFcnJvciIpLGhlKCkoKSxkZSg4LCJkaXYiLDE2KSg5LCJwIiksT2UoMTAsIllv'@; put 'dSBjYW5ub3Qgc3VibWl0IGVtcHR5IGNsYXVzZXMiKSxoZSgpKCksZGUoMTEsImRpdiIsMjcpKDEyLCJidXR0b24iLDg3KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKCkubnVsbFZhcmlhYmxlcz0hMSl9KSxPZSgxMywiIE9rICIpLGhlKCkoKSgpKCkoKX19ZnVu'@; put 'Y3Rpb24gVUR0KGMsbCl7MSZjJiZXdCgwLCJkaXYiLDg4KX1mdW5jdGlvbiBaRHQoYyxsKXsxJmMmJld0KDAsImFwcC1xdWVyeSIsbnVsbCwzKX1mdW5jdGlvbiBXRHQoYyxsKXsxJmMmJihkZSgwLCJkaXYiLDg5KSgxLCJzcGFuIiw5MCksT2UoMiwiIExvYWRpbmcuLi4gIiksaGUoKSxkZSgz'@; put 'LCJkaXYiLDkxKSg0LCJwIiw5MiksT2UoNSwiTG9hZGluZyBUYWJsZSBWaWV3ZXIiKSxoZSgpKCkoKSl9ZnVuY3Rpb24gWUR0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiY2xyLWljb24iLDExNiksRnQoImNsaWNrIixmdW5jdGlvbigpe3d0KGEpLExlKCk7Y29uc3QgaD1kYSg1'@; put 'KTtyZXR1cm4gQ3QoTGUoMikuc2VhcmNoVGFibGUoaCkpfSksaGUoKX19ZnVuY3Rpb24gR0R0KGMsbCl7MSZjJiYoZGUoMCwic3BhbiIsMTE3KSxPZSgxLCIgTG9hZGluZy4uLiAiKSxoZSgpKX1mdW5jdGlvbiAkRHQoYyxsKXsxJmMmJld0KDAsImNsci1pY29uIiwxMTgpfWZ1bmN0aW9uIEtE'@; put 'dChjLGwpe2lmKDEmYyYmKGRlKDAsInNwYW4iLDExOSksT2UoMSksaGUoKSksMiZjKXtjb25zdCBhPUxlKDMpO2ZlKCksTHIoIiAiLG51bGw9PWEudGFibGVUaXRsZT9udWxsOmEudGFibGVUaXRsZS5yZXBsYWNlKCItRkMiLCIiKSwiICIpfX1mdW5jdGlvbiBYRHQoYyxsKXtpZigxJmMmJihk'@; put 'ZSgwLCJjbHItdG9vbHRpcC1jb250ZW50IiwxMjEpLE9lKDEpLGhlKCkpLDImYyl7Y29uc3QgYT1MZSg0KTtmZSgpLExyKCIgIixhLmRzTm90ZSwiICIpfX1mdW5jdGlvbiBxRHQoYyxsKXsxJmMmJihhaSgwKSxndCgxLFhEdCwyLDEsImNsci10b29sdGlwLWNvbnRlbnQiLDEyMCksc2koKSl9'@; put 'ZnVuY3Rpb24gSkR0KGMsbCl7aWYoMSZjJiYoZGUoMCwic3BhbiIpLE9lKDEpLFFvKDIsInRob3VzYW5kU2VwYXJhdG9yIiksaGUoKSksMiZjKXtjb25zdCBhPUxlKDQpO2ZlKCksSkkoIiAoIix6OCgyLDQsYS5udW1iZXJPZlJvd3MsIiwiKSwiICIsMT09PWEubnVtYmVyT2ZSb3dzPyJyb3ci'@; put 'OiJyb3dzIiwiLCAiLGEuZmlsdGVyQ29scy5sZW5ndGgsIiIsMT09PWEuZmlsdGVyQ29scy5sZW5ndGg/IiBjb2wiOiIgY29scyIsIikgIil9fWZ1bmN0aW9uIFFEdChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2FpKDApLGd0KDEsSkR0LDMsNywic3BhbiIsNDMpLGRlKDIsImNsci1pY29u'@; put 'IiwxMjIpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoMykucmVsb2FkVGFibGVEYXRhKCkpfSksaGUoKSxzaSgpfWlmKDImYyl7Y29uc3QgYT1MZSgzKTtmZSgpLE1lKCJuZ0lmIixudWxsIT09YS5udW1iZXJPZlJvd3MpfX1mdW5jdGlvbiBlSXQoYyxsKXtpZigx'@; put 'JmMpe2NvbnN0IGE9T24oKTtkZSgwLCJkaXYiLDEyOCksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSg1KS5lZGl0VGFibGUoKSl9KSxXdCgxLCJjbHItaWNvbiIsMTM0KSxkZSgyLCJzcGFuIiksT2UoMywiRWRpdCIpLGhlKCkoKX19ZnVuY3Rpb24gdEl0KGMsbCl7'@; put 'aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiZGl2IiwxMjgpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoNSkuZ29Ub0xpbmVhZ2UoKSl9KSxXdCgxLCJjbHItaWNvbiIsMTM1KSxkZSgyLCJzcGFuIiksT2UoMywiTGluZWFnZSIpLGhlKCkoKX19ZnVuY3Rpb24g'@; put 'bkl0KGMsbCl7aWYoMSZjKXtjb25zdCBhPU9uKCk7ZGUoMCwiY2xyLWRyb3Bkb3duLW1lbnUiLDEyNykoMSwiZGl2IiwxMjgpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoNCkubmV3Vmlld2JveCgpKX0pLFd0KDIsImNsci1pY29uIiwxMjkpLGRlKDMsInNwYW4i'@; put 'KSxPZSg0LCJWaWV3Ym94ZXMiKSxoZSgpKCksZ3QoNSxlSXQsNCwwLCJkaXYiLDEzMCkoNix0SXQsNCwwLCJkaXYiLDEzMCksZGUoNywiZGl2IiwxMjgpLEZ0KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gd3QoYSksQ3QoTGUoNCkub3BlblFiKCkpfSksV3QoOCwiY2xyLWljb24iLDEzMSks'@; put 'ZGUoOSwic3BhbiIpLE9lKDEwLCJGaWx0ZXIiKSxoZSgpKCksZGUoMTEsImRpdiIsMTI4KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKDQpLm9wZW5Eb3dubG9hZD0hMCl9KSxXdCgxMiwiY2xyLWljb24iLDEzMiksZGUoMTMsInNwYW4iKSxPZSgxNCwiRG93bmxv'@; put 'YWQiKSxoZSgpKCksZGUoMTUsImRpdiIsMTI4KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGEpLEN0KExlKDQpLnNob3dXZWJRdWVyeSgpKX0pLFd0KDE2LCJjbHItaWNvbiIsMTMzKSxkZSgxNywic3BhbiIpLE9lKDE4LCJXZWIgUXVlcnkgVVJMIiksaGUoKSgpKCl9aWYoMiZj'@; put 'KXtjb25zdCBhPUxlKDQpO2ZlKDUpLE1lKCJuZ0lmIixhLnRhYmxlRWRpdEV4aXN0cygpKSxmZSgpLE1lKCJuZ0lmIixhLnRhYmxldXJpKX19ZnVuY3Rpb24gckl0KGMsbCl7MSZjJiYoZGUoMCwiY2xyLWRyb3Bkb3duIiwxMjMpKDEsImJ1dHRvbiIsMTI0KSxXdCgyLCJjbHItaWNvbiIsMTI1'@; put 'KSxPZSgzLCIgb3B0aW9ucyAiKSxoZSgpLGd0KDQsbkl0LDE5LDIsImNsci1kcm9wZG93bi1tZW51IiwxMjYpLGhlKCkpLDImYyYmTWUoImNsckNsb3NlTWVudU9uSXRlbUNsaWNrIiwhMCl9ZnVuY3Rpb24gaUl0KGMsbCl7aWYoMSZjJiYoZGUoMCwiZGl2IiwxMzYpKDEsInNwYW4iKSxPZSgy'@; put 'LCJGSUxURVIgOiAiKSxkZSgzLCJiIiksT2UoNCksaGUoKSgpKCkpLDImYyl7Y29uc3QgYT1MZSgzKTtmZSg0KSxTcihhLnF1ZXJ5VGV4dCl9fWZ1bmN0aW9uIGFJdChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsImRpdiIsOTkpKDEsInNlY3Rpb24iLDEwMCkoMiwiZm9ybSIsMTAx'@; put 'KSgzLCJkaXYiLDEwMikoNCwiaW5wdXQiLDEwMyw0KSxGdCgia2V5dXAuZW50ZXIiLGZ1bmN0aW9uKCl7d3QoYSk7Y29uc3QgaD1kYSg1KTtyZXR1cm4gQ3QoTGUoMikuc2VhcmNoVGFibGUoaCkpfSksaGUoKSxndCg2LFlEdCwxLDAsImNsci1pY29uIiwxMDQpKDcsR0R0LDIsMCwic3BhbiIs'@; put 'MTA1KSxoZSgpLGRlKDgsImNsci1jaGVja2JveC1jb250YWluZXIiKSg5LCJjbHItY2hlY2tib3gtd3JhcHBlciIpKDEwLCJpbnB1dCIsMTA2KSxwaSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oaCl7d3QoYSk7Y29uc3QgZj1MZSgyKTtyZXR1cm4gZ2koZi5zZWFyY2hOdW1lcmljLGgpfHwo'@; put 'Zi5zZWFyY2hOdW1lcmljPWgpLEN0KGgpfSksaGUoKSxkZSgxMSwibGFiZWwiKSxPZSgxMiwiTnVtZXJpYyIpLGhlKCkoKSgpKCkoKSxkZSgxMywiZGl2IiwxMDcpKDE0LCJwIiwxMDgpKDE1LCJjbHItdG9vbHRpcCIsMTA5KSgxNiwiY2xyLWljb24iLDExMCksRnQoImNsaWNrIixmdW5jdGlv'@; put 'bigpe3JldHVybiB3dChhKSxDdChMZSgyKS5kYXRhc2V0SW5mbz0hMCl9KSxoZSgpLGd0KDE3LCREdCwxLDAsImNsci1pY29uIiwxMTEpKDE4LEtEdCwyLDEsInNwYW4iLDExMikoMTkscUR0LDIsMCwibmctY29udGFpbmVyIiw0MyksaGUoKSxndCgyMCxRRHQsMywxLCJuZy1jb250YWluZXIi'@; put 'LDQzKSxoZSgpKCksZGUoMjEsImRpdiIsMTEzKSxndCgyMixySXQsNSwxLCJjbHItZHJvcGRvd24iLDExNCksaGUoKSxndCgyMyxpSXQsNSwxLCJkaXYiLDExNSksaGUoKX1pZigyJmMpe2NvbnN0IGE9TGUoMik7ZmUoNCksTWUoInR5cGUiLGEuc2VhcmNoTnVtZXJpYz8ibnVtYmVyIjoidGV4'@; put 'dCIpLGZlKDIpLE1lKCJuZ0lmIiwhYS5zZWFyY2hMb2FkaW5nKSxmZSgpLE1lKCJuZ0lmIixhLnNlYXJjaExvYWRpbmcpLGZlKDMpLGZpKCJuZ01vZGVsIixhLnNlYXJjaE51bWVyaWMpLGZlKDcpLE1lKCJuZ0lmIixudWxsPT1hLnRhYmxlVGl0bGU/bnVsbDphLnRhYmxlVGl0bGUuaW5jbHVk'@; put 'ZXMoIi1GQyIpKSxmZSgpLE1lKCJuZ0lmIixhLnRhYmxlVGl0bGUmJmEudGFibGVUaXRsZS5sZW5ndGg+MCksZmUoKSxNZSgibmdJZiIsYS5kc05vdGUmJmEuZHNOb3RlLmxlbmd0aD4wKSxmZSgpLE1lKCJuZ0lmIixhLnRhYmxlVGl0bGUmJmEudGFibGVUaXRsZS5sZW5ndGg+MCksZmUoMiks'@; put 'TWUoIm5nSWYiLGEudGFibGVUaXRsZSYmIWEuYWJvcnRBY3RpdmUpLGZlKCksTWUoIm5nSWYiLCIxPTEiIT09YS5xdWVyeVRleHQmJiFabygxMCxNRHQpLmluY2x1ZGVzKGEucXVlcnlUZXh0KSYmIWEuYWJvcnRBY3RpdmUpfX1mdW5jdGlvbiBzSXQoYyxsKXsxJmMmJihkZSgwLCJkaXYiLDEz'@; put 'NyksV3QoMSwiaW1nIiwxMzgpLGRlKDIsImgzIiwxMzkpLE9lKDMsIiBQbGVhc2Ugc2VsZWN0IGEgbGlicmFyeSAiKSxoZSgpKCkpfWZ1bmN0aW9uIG9JdChjLGwpezEmYyYmV3QoMCwiY2xyLXNwaW5uZXIiLDU2KX1mdW5jdGlvbiBsSXQoYyxsKXsxJmMmJihkZSgwLCJkaXYiLDE0NiksV3Qo'@; put 'MSwiaW1nIiwxNDcpLGRlKDIsInAiLDEzOSksT2UoMywiIFBsZWFzZSBzZWxlY3QgYSB0YWJsZSAiKSxoZSgpKCkpfWZ1bmN0aW9uIGNJdChjLGwpe2lmKDEmYyl7Y29uc3QgYT1PbigpO2RlKDAsInAiLDE1MCksT2UoMSwiIE5vIGxpYnJhcnkgaW5mbyBmb3VuZC4gQ2xpY2sgIiksZGUoMiwi'@; put 'Y2xyLWljb24iLDE1MSksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChMZSg0KS5yZWxvYWRMaWJJbmZvKCkpfSksaGUoKSxPZSgzLCIgYnV0dG9uIHRvIHJlZnJlc2guICIpLGhlKCl9fWZ1bmN0aW9uIHVJdChjLGwpe2lmKDEmYyYmKGRlKDAsInRyIikoMSwidGQiLDE1'@; put 'MiksT2UoMiwiRU5HSU5FOiIpLGhlKCksZGUoMywidGQiLDE1MyksT2UoNCksaGUoKSgpKSwyJmMpe2NvbnN0IGE9TGUoNSk7ZmUoNCksTHIoIiAiLGEubGliaW5mb1swXT9hLmxpYmluZm9bMF0uRU5HSU5FOiIiLCIgIil9fWZ1bmN0aW9uIGRJdChjLGwpe2lmKDEmYyYmKGRlKDAsInRyIiko'@; put 'MSwidGQiLDE1MiksT2UoMiwiTElCSUQ6IiksaGUoKSxkZSgzLCJ0ZCIsMTUzKSxPZSg0KSxoZSgpKCkpLDImYyl7Y29uc3QgYT1MZSg1KTtmZSg0KSxMcigiICIsYS5saWJpbmZvWzBdP2EubGliaW5mb1swXS5MSUJJRDoiIiwiICIpfX1mdW5jdGlvbiBoSXQoYyxsKXtpZigxJmMmJihkZSgw'@; put 'LCJ0ciIpKDEsInRkIiwxNTIpLE9lKDIsIkxJQk5BTUU6IiksaGUoKSxkZSgzLCJ0ZCIsMTUzKSxPZSg0KSxoZSgpKCkpLDImYyl7Y29uc3QgYT1MZSg1KTtmZSg0KSxMcigiICIsYS5saWJpbmZvWzBdP2EubGliaW5mb1swXS5MSUJOQU1FOiIiLCIgIil9fWZ1bmN0aW9uIGZJdChjLGwpe2lm'@; put 'KDEmYyYmKGRlKDAsInRyIikoMSwidGQiLDE1MiksT2UoMiwiTElCU0laRToiKSxoZSgpLGRlKDMsInRkIiwxNTMpLE9lKDQpLFFvKDUsImNvbnZlcnRTaXplIiksaGUoKSgpKSwyJmMpe2NvbnN0IGE9TGUoNSk7ZmUoNCksTHIoIiAiLGEubGliaW5mb1swXT9BYyg1LDEsYS5saWJpbmZvWzBd'@; put 'LkxJQlNJWkUpOiIiLCIgIil9fWZ1bmN0aW9uIHBJdChjLGwpe2lmKDEmYyYmKGRlKDAsInRyIikoMSwidGQiLDE1MiksT2UoMiwiT1dORVJTOiIpLGhlKCksZGUoMywidGQiLDE1MyksT2UoNCksaGUoKSgpKSwyJmMpe2NvbnN0IGE9TGUoNSk7ZmUoNCksTHIoIiAiLGEubGliaW5mb1swXT9h'@; put 'LmxpYmluZm9bMF0uT1dORVJTOiIiLCIgIil9fWZ1bmN0aW9uIGdJdChjLGwpe2lmKDEmYyYmKGRlKDAsInRyIikoMSwidGQiLDE1MiksT2UoMiwiUEFUSFM6IiksaGUoKSxkZSgzLCJ0ZCIsMTUzKSxPZSg0KSxoZSgpKCkpLDImYyl7Y29uc3QgYT1MZSg1KTtmZSg0KSxMcigiICIsYS5saWJp'@; put 'bmZvWzBdP2EubGliaW5mb1swXS5QQVRIUzoiIiwiICIpfX1mdW5jdGlvbiBtSXQoYyxsKXtpZigxJmMmJihkZSgwLCJ0ciIpKDEsInRkIiwxNTIpLE9lKDIsIlBFUk1TOiIpLGhlKCksZGUoMywidGQiLDE1MyksT2UoNCksaGUoKSgpKSwyJmMpe2NvbnN0IGE9TGUoNSk7ZmUoNCksTHIoIiAi'@; put 'LGEubGliaW5mb1swXT9hLmxpYmluZm9bMF0uUEVSTVM6IiIsIiAiKX19ZnVuY3Rpb24gdkl0KGMsbCl7aWYoMSZjJiYoZGUoMCwidHIiKSgxLCJ0ZCIsMTUyKSxPZSgyLCJTQ0hFTUFTOiIpLGhlKCksZGUoMywidGQiLDE1MyksT2UoNCksaGUoKSgpKSwyJmMpe2NvbnN0IGE9TGUoNSk7ZmUo'@; put 'NCksTHIoIiAiLGEubGliaW5mb1swXT9hLmxpYmluZm9bMF0uU0NIRU1BUzoiIiwiICIpfX1mdW5jdGlvbiB5SXQoYyxsKXtpZigxJmMmJihkZSgwLCJ0ciIpKDEsInRkIiwxNTIpLE9lKDIsIlRBQkxFX0NOVDoiKSxoZSgpLGRlKDMsInRkIiwxNTMpLE9lKDQpLGhlKCkoKSksMiZjKXtjb25z'@; put 'dCBhPUxlKDUpO2ZlKDQpLExyKCIgIixhLmxpYmluZm9bMF0/YS5saWJpbmZvWzBdLlRBQkxFX0NOVDoiIiwiICIpfX1mdW5jdGlvbiBiSXQoYyxsKXtpZigxJmMmJihkZSgwLCJ0ciIpKDEsInRkIiwxNTIpLE9lKDIsIkNBVEFMT0dfQ05UOiIpLGhlKCksZGUoMywidGQiLDE1MyksT2UoNCks'@; put 'aGUoKSgpKSwyJmMpe2NvbnN0IGE9TGUoNSk7ZmUoNCksTHIoIiAiLGEubGliaW5mb1swXT9hLmxpYmluZm9bMF0uQ0FUQUxPR19DTlQ6IiIsIiAiKX19ZnVuY3Rpb24gX0l0KGMsbCl7aWYoMSZjJiYoYWkoMCksZGUoMSwidGFibGUiKSxndCgyLHVJdCw1LDEsInRyIiw0MykoMyxkSXQsNSwx'@; put 'LCJ0ciIsNDMpKDQsaEl0LDUsMSwidHIiLDQzKSg1LGZJdCw2LDMsInRyIiw0MykoNixwSXQsNSwxLCJ0ciIsNDMpKDcsZ0l0LDUsMSwidHIiLDQzKSg4LG1JdCw1LDEsInRyIiw0MykoOSx2SXQsNSwxLCJ0ciIsNDMpKDEwLHlJdCw1LDEsInRyIiw0MykoMTEsYkl0LDUsMSwidHIiLDQzKSxo'@; put 'ZSgpLHNpKCkpLDImYyl7Y29uc3QgYT1MZSg0KTtmZSgyKSxNZSgibmdJZiIsIiIhPT1hLmxpYmluZm9bMF0uRU5HSU5FKSxmZSgpLE1lKCJuZ0lmIiwiIiE9PWEubGliaW5mb1swXS5MSUJJRCksZmUoKSxNZSgibmdJZiIsIiIhPT1hLmxpYmluZm9bMF0uTElCTkFNRSksZmUoKSxNZSgibmdJ'@; put 'ZiIsbnVsbCE9PWEubGliaW5mb1swXS5MSUJTSVpFKSxmZSgpLE1lKCJuZ0lmIiwiIiE9PWEubGliaW5mb1swXS5PV05FUlMpLGZlKCksTWUoIm5nSWYiLCIiIT09YS5saWJpbmZvWzBdLlBBVEhTKSxmZSgpLE1lKCJuZ0lmIiwiIiE9PWEubGliaW5mb1swXS5QRVJNUyksZmUoKSxNZSgibmdJ'@; put 'ZiIsIiIhPT1hLmxpYmluZm9bMF0uU0NIRU1BUyksZmUoKSxNZSgibmdJZiIsbnVsbCE9PWEubGliaW5mb1swXS5UQUJMRV9DTlQpLGZlKCksTWUoIm5nSWYiLG51bGwhPT1hLmxpYmluZm9bMF0uQ0FUQUxPR19DTlQpfX1mdW5jdGlvbiB3SXQoYyxsKXtpZigxJmMmJihkZSgwLCJkaXYiLDE0'@; put 'OCksZ3QoMSxjSXQsNCwwLCJwIiwxNDkpKDIsX0l0LDEyLDEwLCJuZy1jb250YWluZXIiLDQzKSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoMyk7ZmUoKSxNZSgibmdJZiIsYS5saWJpbmZvLmxlbmd0aDwxKSxmZSgpLE1lKCJuZ0lmIixhLmxpYmluZm8ubGVuZ3RoPjApfX1mdW5jdGlvbiBDSXQo'@; put 'YyxsKXtpZigxJmMpe2NvbnN0IGE9T24oKTthaSgwKSxkZSgxLCJkaXYiLDE0MCksV3QoMiwic2VjdGlvbiIsMTAwKSxkZSgzLCJkaXYiLDE0MSkoNCwicCIsOTIpLE9lKDUpLGhlKCksZGUoNiwiY2xyLWljb24iLDEyMiksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChhKSxDdChM'@; put 'ZSgyKS5yZWxvYWRMaWJJbmZvKCkpfSksaGUoKSgpLFd0KDcsImRpdiIsMTEzKSxoZSgpLGRlKDgsImRpdiIsMTQyKSxndCg5LG9JdCwxLDAsImNsci1zcGlubmVyIiwxNDMpLGhlKCksZ3QoMTAsbEl0LDQsMCwiZGl2IiwxNDQpKDExLHdJdCwzLDIsImRpdiIsMTQ1KSxzaSgpfWlmKDImYyl7'@; put 'Y29uc3QgYT1MZSgyKTtmZSg1KSxMcigiICIsYS5saWIsIiAiKSxmZSg0KSxNZSgibmdJZiIsbnVsbD09PWEubGliaW5mbyksZmUoKSxNZSgibmdJZiIsbnVsbCE9PWEubGliaW5mbyksZmUoKSxNZSgibmdJZiIsbnVsbCE9PWEubGliaW5mbyl9fWZ1bmN0aW9uIFNJdChjLGwpezEmYyYmKGRl'@; put 'KDAsImgzIiwxNTcpLE9lKDEsIiBObyBkYXRhIGZvdW5kIHdpdGggZ2l2ZW4gY29uZGl0aW9ucyAiKSxoZSgpKX1mdW5jdGlvbiBNSXQoYyxsKXsxJmMmJihkZSgwLCJoMyIsMTU3KSxPZSgxLCIgTm8gZGF0YSBmb3VuZCBkdWUgdG8gc2FzIHJlcXVlc3QgZXJyb3IgIiksaGUoKSl9ZnVuY3Rp'@; put 'b24geEl0KGMsbCl7aWYoMSZjJiYoZGUoMCwiZGl2IiwxNTQpLFd0KDEsImNsci1pY29uIiwxNTUpLGd0KDIsU0l0LDIsMCwiaDMiLDE1NikoMyxNSXQsMiwwLCJoMyIsMTU2KSxoZSgpKSwyJmMpe2NvbnN0IGE9TGUoMik7ZmUoMiksTWUoIm5nSWYiLGEubm9EYXRhKSxmZSgpLE1lKCJuZ0lm'@; put 'IixhLm5vRGF0YVJlcUVycil9fWZ1bmN0aW9uIEVJdChjLGwpe2lmKDEmYyYmKGRlKDAsImRpdiIsMTU4KSgxLCJkaXYiLDE1OSksV3QoMiwiaG90LXRhYmxlIiwxNjAsNSksaGUoKSgpKSwyJmMpe2NvbnN0IGE9TGUoMik7ZmUoMiksTWUoImRhdGEiLGEuaG90VGFibGUuZGF0YSkoInNldHRp'@; put 'bmdzIixhLmhvdFRhYmxlU2V0dGluZ3MpfX1mdW5jdGlvbiBUSXQoYyxsKXtpZigxJmMmJihkZSgwLCJwIiwxNjEpLE9lKDEpLFd0KDIsImNvbnRhY3QtbGluayIpLGhlKCkpLDImYyl7Y29uc3QgYT1MZSgyKTtmZSgpLExyKCIgVG8gZGlzcGxheSBtb3JlIHRoYW4gIixhLmxpY2VuY2VTdGF0'@; put 'ZS52YWx1ZS52aWV3ZXJfcm93c19hbGxvd2VkLCIgcm93cywgY29udGFjdCAiKX19ZnVuY3Rpb24gQUl0KGMsbCl7aWYoMSZjJiYoZGUoMCwiZGl2Iiw5MyksZ3QoMSxhSXQsMjQsMTEsImRpdiIsOTQpKDIsc0l0LDQsMCwiZGl2Iiw5NSkoMyxDSXQsMTIsNCwibmctY29udGFpbmVyIiw0Myko'@; put 'NCx4SXQsNCwyLCJkaXYiLDk2KSg1LEVJdCw0LDIsImRpdiIsOTcpLGRlKDYsImRpdiIpLGd0KDcsVEl0LDMsMSwicCIsOTgpLGhlKCkoKSksMiZjKXtjb25zdCBhPUxlKCk7ZmUoKSxNZSgibmdJZiIsYS50YWJsZSksZmUoKSxNZSgibmdJZiIsIShhLmxpYnx8YS50YWJsZXx8YS5ub0RhdGFS'@; put 'ZXFFcnJ8fGEubm9EYXRhKSksZmUoKSxNZSgibmdJZiIsIWEubm9EYXRhJiYhYS5ub0RhdGFSZXFFcnImJiFhLnRhYmxlJiZhLmxpYiksZmUoKSxNZSgibmdJZiIsYS5ub0RhdGF8fGEubm9EYXRhUmVxRXJyKSxmZSgpLE1lKCJuZ0lmIiwhYS5ub0RhdGEmJiFhLm5vRGF0YVJlcUVyciYmYS50'@; put 'YWJsZSksZmUoMiksTWUoIm5nSWYiLGEubGljZW5jZVN0YXRlLnZhbHVlLnZpZXdlcl9yb3dzX2FsbG93ZWQhPT1hLkluZmluaXR5JiZhLmhvdFRhYmxlLmRhdGEmJmEuaG90VGFibGUuZGF0YS5sZW5ndGg+YS5saWNlbmNlU3RhdGUudmFsdWUudmlld2VyX3Jvd3NfYWxsb3dlZCl9fWxldCAk'@; put 'Tj0oKCk9PntjbGFzcyBje3VwZGF0ZUhvdFRhYmxlU2V0dGluZ3MoKXt0aGlzLmhvdFRhYmxlU2V0dGluZ3M9e211bHRpQ29sdW1uU29ydGluZzohMCx2aWV3cG9ydFJvd1JlbmRlcmluZ09mZnNldDozMCxjb2xIZWFkZXJzOnRoaXMuaG90VGFibGUuY29sSGVhZGVycyxjb2x1bW5zOnRoaXMu'@; put 'aG90VGFibGUuY29sdW1ucyxjb3B5UGFzdGU6dGhpcy5ob3RUYWJsZS5jb3B5UGFzdGUsY29udGV4dE1lbnU6dGhpcy5ob3RUYWJsZS5jb250ZXh0TWVudSxmaWx0ZXJzOiEwLGRyb3Bkb3duTWVudTp0aGlzLmhvdFRhYmxlLmRyb3Bkb3duTWVudSxoZWlnaHQ6dGhpcy5ob3RUYWJsZS5oZWln'@; put 'aHQsc3RyZXRjaEg6ImFsbCIsbW9kaWZ5Q29sV2lkdGg6dGhpcy5tYXhXaWR0aENoZWtlcixjZWxsczp0aGlzLmhvdFRhYmxlLmNlbGxzLG1heFJvd3M6dGhpcy5ob3RUYWJsZS5tYXhSb3dzLG1hbnVhbENvbHVtblJlc2l6ZTohMCxhZnRlckdldENvbEhlYWRlcjp0aGlzLmhvdFRhYmxlLmFm'@; put 'dGVyR2V0Q29sSGVhZGVyLHJvd0hlYWRlcnM6dGhpcy5ob3RUYWJsZS5yb3dIZWFkZXJzLHJvd0hlYWRlcldpZHRoOnRoaXMuaG90VGFibGUucm93SGVhZGVyV2lkdGgscm93SGVpZ2h0czp0aGlzLmhvdFRhYmxlLnJvd0hlaWdodHMsbGljZW5zZUtleTp0aGlzLmhvdFRhYmxlLmxpY2Vuc2VL'@; put 'ZXksY2xhc3NOYW1lOiJodERhcmsifX1jb25zdHJ1Y3RvcihhLGQsaCxmLHYsTSxJLEcscmUsdWUpe3RoaXMubGljZW5jZVNlcnZpY2U9YSx0aGlzLnNhc1N0b3JlU2VydmljZT1kLHRoaXMuc2FzU2VydmljZT1oLHRoaXMucm91dGVyPWYsdGhpcy5yb3V0ZT12LHRoaXMuZXZlbnRTZXJ2aWNl'@; put 'PU0sdGhpcy5sb2dnZXJTZXJ2aWNlPUksdGhpcy5oZWxwZXJTZXJ2aWNlPUcsdGhpcy5sb2NhdGlvbj1yZSx0aGlzLmNkZj11ZSx0aGlzLnF1ZXJ5RmlsdGVyQ29tcExpc3Q9bmV3IGxoLHRoaXMubGlicmFyaWVzUGFnaW5nPSExLHRoaXMubGlicmFyaWVzU2VhcmNoPSIiLHRoaXMubGlicmFy'@; put 'eVRhYmxlc1JlZj0iIix0aGlzLmxpYnJhcmllc1RyZWVFeHBhbmRlZD0hMSx0aGlzLmxpYmluZm89bnVsbCx0aGlzLnRhYmxldXJpPW51bGwsdGhpcy5maWx0ZXI9ITEsdGhpcy5maWx0ZXJDb2xzPVtdLHRoaXMubnVsbFZhcmlhYmxlcz0hMSx0aGlzLmFib3J0QWN0aXZlPSExLHRoaXMudXJs'@; put 'RmlsdGVyUGs9bnVsbCx0aGlzLnF1ZXJ5VGV4dD0iIix0aGlzLndlYlF1ZXJ5VGV4dD0iIix0aGlzLnF1ZXJ5RXJyPSExLHRoaXMudGFibGVGbGFnPSEwLHRoaXMubGlicmFyaWVzTG9hZGluZz0hMSx0aGlzLmxvYWRpbmdUYWJsZVZpZXc9ITEsdGhpcy5zd2l0Y2hGbGFnPSExLHRoaXMubm9E'@; put 'YXRhPSExLHRoaXMubm9EYXRhUmVxRXJyPSExLHRoaXMudGFibGVEaXNhYmxlPSExLHRoaXMuYWN0aW9uRGlzYWJsZT0hMSx0aGlzLm9wZW5Eb3dubG9hZD0hMSx0aGlzLndlYlF1ZXJ5PSExLHRoaXMud2ViUXVlcnlUYWI9ITEsdGhpcy5kb3dubG9hZEZvcm1hdD0iQ1NWIix0aGlzLnNhc2pz'@; put 'Q29uZmlnPW5ldyB5aC5TQVNqc0NvbmZpZyx0aGlzLnNlYXJjaExvYWRpbmc9ITEsdGhpcy5zZWFyY2hOdW1lcmljPSExLHRoaXMuaG90VGFibGVTZXR0aW5ncz17fSx0aGlzLm51bWJlck9mUm93cz1udWxsLHRoaXMuaGVhZGVyUGtzPVtdLHRoaXMuJGRhdGFGb3JtYXRzPW51bGwsdGhpcy5k'@; put 'YXRhc2V0SW5mbz0hMSx0aGlzLmRzbWV0YT1bXSx0aGlzLnZlcnNpb25zPVtdLHRoaXMuZHNOb3RlPSIiLHRoaXMubGljZW5jZVN0YXRlPXRoaXMubGljZW5jZVNlcnZpY2UubGljZW5jZVN0YXRlLHRoaXMuSW5maW5pdHk9MS8wLHRoaXMuaG90VGFibGU9e2RhdGE6W10sY29sSGVhZGVyczpb'@; put 'XSxjb2x1bW5zOltdLGhlaWdodDoiY2FsYygxMDB2aCAtIDE4MnB4KSIsbWF4Um93czp0aGlzLmxpY2VuY2VTdGF0ZS52YWx1ZS52aWV3ZXJfcm93c19hbGxvd2VkfHwxLzAsc2V0dGluZ3M6e30sbGljZW5zZUtleTp2b2lkIDAscm93SGVhZGVyczp5ZT0+IiAiLGFmdGVyR2V0Q29sSGVhZGVy'@; put 'Oih5ZSxFZSxCZSk9Pntjb25zdCBHZT10aGlzLmhvdEluc3RhbmNlPy5jb2xUb1Byb3AoeWUpO0dlJiZ0aGlzLmhlYWRlclBrcy5pbmRleE9mKEdlKT4tMSYmRWUuY2xhc3NMaXN0LmFkZCgicHJpbWFyeUtleUhlYWRlclN0eWxlIiksRWUuY2xhc3NMaXN0LmFkZChKbi5oYW5kc29udGFibGUu'@; put 'ZGFya1RhYmxlSGVhZGVyQ2xhc3MpfSxyb3dIZWFkZXJXaWR0aDoxNSxyb3dIZWlnaHRzOjIwLGNvbnRleHRNZW51OlsiY29weV93aXRoX2NvbHVtbl9oZWFkZXJzIiwiY29weV9jb2x1bW5faGVhZGVyc19vbmx5Il0sY29weVBhc3RlOntjb3B5Q29sdW1uSGVhZGVyczohMCxjb3B5Q29sdW1u'@; put 'SGVhZGVyc09ubHk6ITB9LGRyb3Bkb3duTWVudTp7aXRlbXM6e21ha2VfcmVhZF9vbmx5OntuYW1lOiJtYWtlX3JlYWRfb25seSJ9LGFsaWdubWVudDp7bmFtZToiYWxpZ25tZW50In0sc3AxOntuYW1lOiItLS0tLS0tLS0ifSxpbmZvOntuYW1lOiJ0ZXN0IGluZm8iLHJlbmRlcmVyOih5ZSxF'@; put 'ZSxCZSxHZSxzdCxwdCk9Pntjb25zdCBkdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7bGV0IHF0LG1uPSJObyBpbmZvIGZvdW5kIjtpZih0aGlzLmhvdEluc3RhbmNlKXtjb25zdCB3bj10aGlzLmhvdEluc3RhbmNlLmdldFNlbGVjdGVkKCl8fFtdLGhuPXduP3duWzBdWzFdOi0x'@; put 'LE1uPXRoaXMuaG90SW5zdGFuY2U/LmNvbFRvUHJvcChobik7cXQ9dGhpcy4kZGF0YUZvcm1hdHM/LnZhcnNbTW5dLHF0JiYobW49YExBQkVMOiAke3F0Py5sYWJlbH08YnI+VFlQRTogJHtxdD8udHlwZX08YnI+TEVOR1RIOiAke3F0Py5sZW5ndGh9PGJyPkZPUk1BVDogJHtxdD8uZm9ybWF0'@; put 'fWApfXJldHVybiBkdC5pbm5lckhUTUw9bW4sZHR9fX19fSx0aGlzLmhvdEluc3RhbmNlPW51bGwsdGhpcy5ob3RJbnN0YW5jZUNsaWNrTGlzdGVuZXI9ITEsdGhpcy52aWV3Ym94T3Blbj0hMSx0aGlzLnNhc2pzQ29uZmlnPXRoaXMuc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpfW5nT25J'@; put 'bml0KCl7IiIhPT1Kbi52aWV3ZXIuY3VycmVudFNlbGVjdGlvbiYmMD09PU9iamVjdC5rZXlzKHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zKS5sZW5ndGgmJnRoaXMucm91dGVyLm5hdmlnYXRlKFtKbi52aWV3ZXIuY3VycmVudFNlbGVjdGlvbl0se3F1ZXJ5UGFyYW1zSGFuZGxpbmc6InBy'@; put 'ZXNlcnZlIn0pLHZvaWQgMCE9PXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLmxpYk1lbSYmKEpuLnZpZXdlci5jdXJyZW50U2VsZWN0aW9uPSJ2aWV3L2RhdGEiKSx0aGlzLmxpY2VuY2VTZXJ2aWNlLmhvdF9saWNlbnNlX2tleS5zdWJzY3JpYmUoYT0+e3RoaXMuaG90VGFibGUubGljZW5z'@; put 'ZUtleT1hLHRoaXMudXBkYXRlSG90VGFibGVTZXR0aW5ncygpfSl9bmV3Vmlld2JveCgpe3RoaXMudmlld2JveE9wZW49ITB9cmVzZXRGaWx0ZXIoKXt0aGlzLnF1ZXJ5RmlsdGVyQ29tcExpc3QuZmlyc3QmJnRoaXMucXVlcnlGaWx0ZXJDb21wTGlzdC5maXJzdC5yZXNldEZpbHRlcigpfXNl'@; put 'YXJjaFRhYmxlKGEpe3ZhciBkPXRoaXM7cmV0dXJuIFEoZnVuY3Rpb24qKCl7ZC5zZWFyY2hMb2FkaW5nPSEwO2xldCBoPWEudmFsdWUsZj1kLmxpYisiLiIrZC50YWJsZSx2PXBhcnNlSW50KGQucm91dGUuc25hcHNob3QucGFyYW1zLmZpbHRlcklkKXx8MDt5aWVsZCBkLnNhc1N0b3JlU2Vy'@; put 'dmljZS52aWV3RGF0YVNlYXJjaChoLGQuc2VhcmNoTnVtZXJpYyxmLHYpLnRoZW4oTT0+e00uc2FzcGFyYW1zfHxNLnZpZXdEYXRhPyhkLmhvdFRhYmxlLmRhdGE9TS52aWV3ZGF0YSxkLiRkYXRhRm9ybWF0cz1NLiR2aWV3ZGF0YSxkLmRzbWV0YT1NLmRzbWV0YSxkLnZlcnNpb25zPU0udmVy'@; put 'c2lvbnN8fFtdLGQuc2V0RFNOb3RlKCksZC5udW1iZXJPZlJvd3M9TS5zYXNwYXJhbXNbMF0uTk9CUyxkLnF1ZXJ5VGV4dD1NLnNhc3BhcmFtc1swXS5GSUxURVJfVEVYVCxkLmhlYWRlclBrcz1NLnNhc3BhcmFtc1swXS5QS19GSUVMRFMuc3BsaXQoIiAiKSwwPT09ZC5ob3RUYWJsZS5kYXRh'@; put 'Lmxlbmd0aD9kLm5vRGF0YT0hMDooZC5ub0RhdGE9ITEsZC50YWJsZUZsYWc9ITEsZC5zZXR1cEhvdCgpKSk6ZC5zZWFyY2hMb2FkaW5nPSExfSkuY2F0Y2goTT0+e2QubG9nZ2VyU2VydmljZS5lcnJvcihNKX0pLGQuc2VhcmNoTG9hZGluZz0hMX0pKCl9cmVsb2FkVGFibGVEYXRhKCl7dGhp'@; put 'cy52aWV3RGF0YSh0aGlzLnVybEZpbHRlclBrfHwwKX1yZWxvYWRMaWJJbmZvKCl7dmFyIGE9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXthLmxpYmluZm89bnVsbCxhLnNhc1N0b3JlU2VydmljZS5yZWZyZXNoTGliSW5mbyhhLmxpYikudGhlbihmdW5jdGlvbigpe3ZhciBkPVEoZnVuY3Rp'@; put 'b24qKGgpe2EubGliaW5mbz1oLmxpYmluZm8sSm4udmlld2VyLmxpYmluZm89YS5saWJpbmZvO2NvbnN0IGY9YS5saWJyYXJpZXMuZmluZCh2PT52LkxJQlJBUllSRUY9PT1hLmxpYik7ZiYmKGYubGliaW5mbz1hLmxpYmluZm8pfSk7cmV0dXJuIGZ1bmN0aW9uKGgpe3JldHVybiBkLmFwcGx5'@; put 'KHRoaXMsYXJndW1lbnRzKX19KCksZD0+e2EubG9nZ2VyU2VydmljZS5lcnJvcihkKSxudWxsPT09YS5saWJpbmZvJiYoYS5saWJpbmZvPVtdKX0pfSkoKX1maWx0ZXJGbihhKXt0aGlzLmxpYnJhcmllcz10aGlzLmxpYnJhcmllcy5maWx0ZXIoaD0+LTEhPT1oLkxJQlJBUllOQU1FLnRvTG93'@; put 'ZXJDYXNlKCkuaW5kZXhPZihhLnRvTG9jYWxlTG93ZXJDYXNlKCkpKX1kb3dubG9hZERhdGEoKXtsZXQgYT10aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybCxkPXRoaXMuc2FzanNDb25maWcuYXBwTG9jO2NvbnN0IGg9dGhpcy5zYXNTZXJ2aWNlLmdldEV4ZWN1dGlvblBhdGgoKTtsZXQgSSxm'@; put 'PSImdHlwZT0iK3RoaXMuZG93bmxvYWRGb3JtYXQsdj0iJnRhYmxlPSIrdGhpcy50YWJsZVRpdGxlLE09IlNBU1ZJWUEiPT09dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlP2AmX2NvbnRleHRuYW1lPSR7dGhpcy5zYXNqc0NvbmZpZy5jb250ZXh0TmFtZX1gOiIiO0k9dHlwZW9mIHRoaXMu'@; put 'cm91dGUuc25hcHNob3QucGFyYW1zLmZpbHRlcklkPiJ1Ij8wOnBhcnNlSW50KHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLmZpbHRlcklkKSx3aW5kb3cub3BlbihhK2grIi8/X3Byb2dyYW09IitkKyIvc2VydmljZXMvcHVibGljL2dldHJhd2RhdGEiK2YrditNKyImZmlsdGVyPSIrSSks'@; put 'dGhpcy5vcGVuRG93bmxvYWQ9ITF9ZG93bmxvYWREREwoKXtsZXQgYT10aGlzLmxpYixkPXRoaXMudGFibGUsaD10aGlzLmRvd25sb2FkRm9ybWF0LnJlcGxhY2UoIl9EREwiLCIiKSxmPXRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsLHY9dGhpcy5zYXNqc0NvbmZpZy5hcHBMb2M7Y29uc3Qg'@; put 'TT10aGlzLnNhc1NlcnZpY2UuZ2V0RXhlY3V0aW9uUGF0aCgpO3dpbmRvdy5vcGVuKGYrTSsiLz9fcHJvZ3JhbT0iK3YrIi9zZXJ2aWNlcy9wdWJsaWMvZ2V0ZGRsIitgJmRzPSR7ZH0mbGlicmVmPSR7YX0mZmxhdm91cj0ke2h9JHsiU0FTVklZQSI9PT10aGlzLnNhc2pzQ29uZmlnLnNlcnZl'@; put 'clR5cGU/YCZfY29udGV4dG5hbWU9JHt0aGlzLnNhc2pzQ29uZmlnLmNvbnRleHROYW1lfWA6IiJ9YCksdGhpcy5vcGVuRG93bmxvYWQ9ITF9b25DbGlDb21tYW5kRm9jdXMoYSl7YS5wcmV2ZW50RGVmYXVsdCgpLGEudGFyZ2V0LnNlbGVjdCgpfWVkaXRUYWJsZSgpe3RoaXMucm91dGVyLm5h'@; put 'dmlnYXRlQnlVcmwoIi9lZGl0b3IvIit0aGlzLmxpYlRhYil9dGFibGVFZGl0RXhpc3RzKCl7bGV0IGE9e307YT1Kbi5lZGl0b3IubGlic0FuZFRhYmxlcztsZXQgZD10aGlzLmxpYlRhYi5zcGxpdCgiLiIpWzFdLGg9dGhpcy5saWJUYWIuc3BsaXQoIi4iKVswXTtyZXR1cm4hIWFbaF0mJmFb'@; put 'aF0uaW5jbHVkZXMoZCl9Z29Ub0xpbmVhZ2UoKXtsZXQgZD1gL3ZpZXcvbGluZWFnZS8ke3RoaXMudGFibGV1cmkuc3BsaXQoIlxcIilbMV19L1JFVkVSU0VgO3RoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoZCl9c2hvd1dlYlF1ZXJ5KCl7bGV0IGE7dGhpcy53ZWJRdWVyeT0hMCxhPXR5cGVv'@; put 'ZiB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5maWx0ZXJJZD4idSI/MDpwYXJzZUludCh0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5maWx0ZXJJZCk7bGV0IGQ9d2luZG93LmxvY2F0aW9uLnBvcnQubGVuZ3RoPjA/IjoiK3dpbmRvdy5sb2NhdGlvbi5wb3J0OiIiO2NvbnN0IGg9dGhp'@; put 'cy5zYXNTZXJ2aWNlLmdldEV4ZWN1dGlvblBhdGgoKTtsZXQgdj1gJHt3aW5kb3cubG9jYXRpb24ucHJvdG9jb2x9Ly8ke3dpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZX0ke2R9LyR7aH0vP19wcm9ncmFtPSR7dGhpcy5zYXNqc0NvbmZpZy5hcHBMb2N9L3NlcnZpY2VzL3B1YmxpYy9nZXRyYXdk'@; put 'YXRhJnR5cGU9V0VCJHt0aGlzLndlYlF1ZXJ5VGFiPyJUQUIiOiJDU1YifSZ0YWJsZT0ke3RoaXMudGFibGVUaXRsZX0keyImZmlsdGVyPSIrYX1gO3RoaXMud2ViUXVlcnlUZXh0PXYucmVwbGFjZSgvIC9naW0sIiUyMCIpfWNvcHlUb0NsaXAoKXtsZXQgYT1kb2N1bWVudC5jcmVhdGVFbGVt'@; put 'ZW50KCJ0ZXh0YXJlYSIpO2Euc3R5bGUucG9zaXRpb249ImZpeGVkIixhLnN0eWxlLmxlZnQ9IjAiLGEuc3R5bGUudG9wPSIwIixhLnN0eWxlLm9wYWNpdHk9IjAiLGEudmFsdWU9dGhpcy53ZWJRdWVyeVRleHQsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKSxhLmZvY3VzKCksYS5zZWxl'@; put 'Y3QoKSxkb2N1bWVudC5leGVjQ29tbWFuZCgiY29weSIpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSl9Z29Ub1ZpZXdlcigpe3RoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi92aWV3L2RhdGEiKX1zaG93VGFibGVTZWxlY3QoKXt0aGlzLnRhYmxlRmxhZz0hdGhpcy50YWJsZUZsYWd9'@; put 'Y2hlY2tFeHBhbmQoYSl7fWNvbGxhcHNlTGlicmFyeUl0ZW1zKGEsZCl7YS5mb3JFYWNoKGg9PntoLkxJQlJBUllSRUYhPT1kLkxJQlJBUllSRUYmJihoLmV4cGFuZGVkPSExKX0pfWxvYWRNb3JlTGlicmFyaWVzKCl7dGhpcy5saWJyYXJpZXNQYWdpbmd8fCh0aGlzLmxpYnJhcmllc1BhZ2lu'@; put 'Zz0hMCx0aGlzLmhlbHBlclNlcnZpY2UuZGlzcGxheUxpYnJhcmllcyh0aGlzLmxpYnJhcmllcywhMCksdGhpcy5saWJyYXJpZXNQYWdpbmc9ITEpfXRyZWVOb2RlQ2xpY2tlZChhLGQpeyJDb2xsYXBzZSI9PT1hLnRhcmdldC50aXRsZSYmdGhpcy5jb2xsYXBzZUxpYnJhcnlJdGVtcyh0aGlz'@; put 'LmxpYnJhcmllcyxkKX1saWJyYXJ5RXhwYW5kZWRDaGFuZ2UoYSxkKXthJiZ0aGlzLmNvbGxhcHNlTGlicmFyeUl0ZW1zKHRoaXMubGlicmFyaWVzLGQpfWxpYnJhcnlPbkNsaWNrKGEsZCxoKXt2YXIgZj10aGlzO3JldHVybiBRKGZ1bmN0aW9uKigpe2lmKGQudGFibGVzP2QuZXhwYW5kZWQ9'@; put 'ISFofHwhZC5leHBhbmRlZDp5aWVsZCBmLnNlbGVjdFRhYmxlKGEsITEsZCksZC5leHBhbmRlZCl7Zi5jZGYuZGV0ZWN0Q2hhbmdlcygpO2xldCB2PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYCNzZWFyY2hfJHtkLkxJQlJBUllSRUZ9YCk7diYmdi5mb2N1cygpLGQmJmQubGliaW5mbyYmKGYu'@; put 'bGliaW5mbz1kLmxpYmluZm8pLGYubGliJiZmLnRhYmxlJiYhaD9mLnJvdXRlci5uYXZpZ2F0ZShbIi92aWV3L2RhdGEiXSx7c2tpcExvY2F0aW9uQ2hhbmdlOiEwLHF1ZXJ5UGFyYW1zSGFuZGxpbmc6InByZXNlcnZlIn0pLnRoZW4oKCk9PntmLnJvdXRlci5uYXZpZ2F0ZShbIi92aWV3L2Rh'@; put 'dGEvIitmLmxpYl0se3F1ZXJ5UGFyYW1zSGFuZGxpbmc6InByZXNlcnZlIn0pfSk6Zi5saWImJiFmLnRhYmxlJiZmLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZSgiL3ZpZXcvZGF0YS8iK2YubGliKX1mLmNvbGxhcHNlTGlicmFyeUl0ZW1zKGYubGlicmFyaWVzLGQpfSkoKX1vblRhYmxlQ2xpY2so'@; put 'YSxkKXt0aGlzLmxpYj1kLkxJQlJBUllSRUYsdGhpcy50YWJsZT1hLHRoaXMuc2VsZWN0TGliVGFibGUoYSksdGhpcy52aWV3RGF0YSgwKX1zZWxlY3RUYWJsZShhLGQsaCl7dmFyIGY9dGhpcztyZXR1cm4gUShmdW5jdGlvbiooKXtoLmxvYWRpbmdUYWJsZXM9ITAsZi50YWJsZT0hMSxmLnRh'@; put 'YmxlRGlzYWJsZT0hMCwiUGxlYXNlIHNlbGVjdCBsaWJyYXJ5IiE9PWE/Sm4udmlld2VyLnRhYmxlc1NldCYmZD8oZi5hYm9ydEFjdGl2ZT0hMSxmLnRhYmxlRGlzYWJsZT0hMSxmLnRhYmxlcz1Kbi52aWV3ZXIudGFibGVzLGYubGliaW5mbz1Kbi52aWV3ZXIubGliaW5mbyk6KGYubGliaW5m'@; put 'bz1udWxsLHlpZWxkIGYuc2FzU3RvcmVTZXJ2aWNlLnZpZXdUYWJsZXMoYSkudGhlbih2PT57Zi5hYm9ydEFjdGl2ZT0hMSxmLnRhYmxlRGlzYWJsZT0hMTtsZXQgTT12Lm1wdGFibGVzLm1hcChmdW5jdGlvbihJKXtyZXR1cm4gSS5NRU1OQU1FfSk7Zi5saWJpbmZvPXYubGliaW5mb3x8W10s'@; put 'Zi50YWJsZXM9TSxoJiYoaC50YWJsZXM9TSxoLmxpYmluZm89Zi5saWJpbmZvKSxKbi52aWV3ZXIubGlicmFyaWVzPWYubGlicmFyaWVzLEpuLnZpZXdlci5saWJyYXJ5PWYubGliLEpuLnZpZXdlci50YWJsZXM9Zi50YWJsZXMsSm4udmlld2VyLmxpYmluZm89Zi5saWJpbmZvLEpuLnZpZXdl'@; put 'ci50YWJsZXNTZXQ9ITB9KS5jYXRjaCh2PT57Zi5sb2dnZXJTZXJ2aWNlLmVycm9yKHYpLGYuYWJvcnRBY3RpdmU9ITAsZi5ub0RhdGE9ITAsZi50YWJsZVRpdGxlPSIiLGYudGFibGVEaXNhYmxlPSEwfSkpOmYudGFibGVEaXNhYmxlPSEwLEpuLnZpZXdlci5saWJyYXJ5PWYubGliLGR8fGYu'@; put 'Y2xlYXJHbG9iYWxzRmlsdGVyKCksaC5sb2FkaW5nVGFibGVzPSExLGguZXhwYW5kZWQ9IWguZXhwYW5kZWR9KSgpfXNlbGVjdExpYlRhYmxlKGEsZCl7IlBsZWFzZSBzZWxlY3QgdGFibGUiIT09YT8odGhpcy5hY3Rpb25EaXNhYmxlPSExLHRoaXMubGliVGFiPXRoaXMubGliKyIuIit0aGlz'@; put 'LnRhYmxlKTp0aGlzLmFjdGlvbkRpc2FibGU9ITAsSm4udmlld2VyLnRhYmxlPWEsZHx8dGhpcy5jbGVhckdsb2JhbHNGaWx0ZXIoKSx0aGlzLmxvZ2dlclNlcnZpY2UubG9nKHRoaXMubGliVGFiKX1jbGVhckdsb2JhbHNGaWx0ZXIoKXtKbi52aWV3ZXIuZmlsdGVyLmxpYmRzPSIiLEpuLnZp'@; put 'ZXdlci5maWx0ZXIud2hlcmVDbGF1c2U9IiIsSm4udmlld2VyLmZpbHRlci5ncm91cExvZ2ljPSIiLEpuLnZpZXdlci5maWx0ZXIuY2xhdXNlcz1bXSxKbi52aWV3ZXIuZmlsdGVyLmNvbHM9W10sSm4udmlld2VyLmZpbHRlci52YWxzPVtdfWxpYlRhYkFjdGl2ZShhLGQpe3JldHVybiEhdGhp'@; put 'cy5saWJUYWImJmErIi4iK2Q9PT10aGlzLmxpYlRhYn10cmVlT25GaWx0ZXIoYSxkKXt0aGlzLmhlbHBlclNlcnZpY2UudHJlZU9uRmlsdGVyKGEsZCl9bGlicmFyeU9uRmlsdGVyKCl7dGhpcy5oZWxwZXJTZXJ2aWNlLmxpYnJhcnlPbkZpbHRlcih0aGlzLmxpYnJhcmllcyx0aGlzLmxpYnJh'@; put 'cmllc1NlYXJjaCwiTElCUkFSWU5BTUUiKSxKbi52aWV3ZXIubGlicmFyaWVzU2VhcmNoPXRoaXMubGlicmFyaWVzU2VhcmNofWxpYnJhcnlSZXNldEZpbHRlcigpe3RoaXMuaGVscGVyU2VydmljZS5yZXNldEFycmF5RmlsdGVyKHRoaXMubGlicmFyaWVzKX12aWV3RGF0YShhKXt2YXIgZD10'@; put 'aGlzO3JldHVybiBRKGZ1bmN0aW9uKigpe2xldCBoO2lmKGQubG9hZGluZ1RhYmxlVmlldz0hMCx0eXBlb2YgZC5saWJEYXRhc2V0PiJ1IiloPWQubGliKyIuIitkLnRhYmxlO2Vsc2UgaWYodHlwZW9mIGQubGliPiJ1IiYmdHlwZW9mIGQudGFibGU+InUiKXtsZXQgTT1bXTtpZihNPWQubGli'@; put 'RGF0YXNldC5zcGxpdCgiLiIpLEpuLnZpZXdlci5zdGFydHVwU2V0P2QubGlicmFyaWVzPUpuLnZpZXdlci5saWJyYXJpZXM6eWllbGQgZC5zYXNTdG9yZVNlcnZpY2Uudmlld0xpYnMoKS50aGVuKEk9PntkLmxpYnJhcmllcz1JLnNhc2xpYnN9KS5jYXRjaChJPT57ZC5sb2dnZXJTZXJ2aWNl'@; put 'LmVycm9yKEkpfSksZC5saWI9TVswXSxKbi52aWV3ZXIuc3RhcnR1cFNldClkLnRhYmxlcz1Kbi52aWV3ZXIudGFibGVzO2Vsc2V7bGV0IEk9ZC5saWJyYXJpZXMuZmluZChHPT5HLkxJQlJBUllSRUYudG9Mb3dlckNhc2UoKT09PWQubGliLnRvTG93ZXJDYXNlKCkpO3lpZWxkIGQuc2FzU3Rv'@; put 'cmVTZXJ2aWNlLnZpZXdUYWJsZXMoZC5saWIpLnRoZW4oRz0+e2QudGFibGVzPUcubXB0YWJsZXMubWFwKGZ1bmN0aW9uKHJlKXtyZXR1cm4gcmUuTUVNTkFNRX0pLEkudGFibGVzPWQudGFibGVzLEpuLnZpZXdlci5saWJyYXJpZXM9ZC5saWJyYXJpZXMsSm4udmlld2VyLnRhYmxlcz1kLnRh'@; put 'YmxlcyxKbi52aWV3ZXIuc3RhcnR1cFNldD0hMH0pLmNhdGNoKEc9PntkLmxvZ2dlclNlcnZpY2UuZXJyb3IoRyl9KX1kLnRhYmxlPU1bMV0sZC50YWJsZUZsYWc9ITEsaD1kLmxpYkRhdGFzZXQsZC5saWJUYWI9aH1lbHNlIEpuLnZpZXdlci5zdGFydHVwU2V0P2QubGlicmFyaWVzPUpuLnZp'@; put 'ZXdlci5saWJyYXJpZXM6eWllbGQgZC5zYXNTdG9yZVNlcnZpY2Uudmlld0xpYnMoKS50aGVuKE09PntkLmxpYnJhcmllcz1NLnNhc2xpYnN9KS5jYXRjaChNPT57ZC5sb2dnZXJTZXJ2aWNlLmVycm9yKE0pfSksdHlwZW9mIGQudGFibGU8InUiJiYoSm4udmlld2VyLnN0YXJ0dXBTZXQ/ZC50'@; put 'YWJsZXM9Sm4udmlld2VyLnRhYmxlczp5aWVsZCBkLnNhc1N0b3JlU2VydmljZS52aWV3VGFibGVzKGQubGliKS50aGVuKE09PntkLnRhYmxlcz1NLm1wdGFibGVzLm1hcChmdW5jdGlvbihJKXtyZXR1cm4gSS5NRU1OQU1FfSl9KS5jYXRjaChNPT57ZC5sb2dnZXJTZXJ2aWNlLmVycm9yKE0p'@; put 'LGQucm91dGVyLm5hdmlnYXRlKFsiL3ZpZXcvZGF0YSJdLHtxdWVyeVBhcmFtc0hhbmRsaW5nOiJwcmVzZXJ2ZSJ9KX0pLGQudGFibGVGbGFnPSExLGg9ZC5saWIrIi4iK2QudGFibGUsZC50YWJsZVRpdGxlPWgsZC5saWJUYWI9aCk7ZC5yb3V0ZXIudXJsLnNwbGl0KCIvIikubGVuZ3RoPjMm'@; put 'JmgmJih5aWVsZCBkLnNhc1N0b3JlU2VydmljZS52aWV3RGF0YShoLGEpLnRoZW4oTT0+e2lmKE0ucXVlcnkubGVuZ3RoPjAmJiJ2aWV3Ij09PUpuLnJvb3RQYXJhbSYmMD09PUpuLnZpZXdlci5maWx0ZXIuY2xhdXNlcy5sZW5ndGgmJihKbi52aWV3ZXIuZmlsdGVyLnF1ZXJ5PWQuaGVscGVy'@; put 'U2VydmljZS5kZWVwQ2xvbmUoTS5xdWVyeSksSm4udmlld2VyLmZpbHRlci5saWJkcz1kLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5saWJNZW0sZC5zYXNTdG9yZVNlcnZpY2UuaW5pdGlhbGl6ZUdsb2JhbEZpbHRlckNsYXVzZSgidmlld2VyIixNLmNvbHMpKSxkLmFib3J0QWN0aXZlPSExLGQu'@; put 'ZmlsdGVyQ29scz1NLmNvbHMsR2VlKGQuZmlsdGVyQ29scyxbXSxNLiR2aWV3ZGF0YSksZC5udW1iZXJPZlJvd3M9TS5zYXNwYXJhbXNbMF0uTk9CUyxkLmhlYWRlclBrcz1NLnNhc3BhcmFtc1swXS5QS19GSUVMRFMuc3BsaXQoIiAiKSwiU0FTOSI9PT1kLnNhc2pzQ29uZmlnLnNlcnZlclR5'@; put 'cGUpe2xldCBHPU0uc2FzcGFyYW1zWzBdLlRBQkxFVVJJO0cmJkcubGVuZ3RoPjAmJihkLnRhYmxldXJpPUcpfWlmKGQuaG90VGFibGUuZGF0YT1NLnZpZXdkYXRhLGQuJGRhdGFGb3JtYXRzPU0uJHZpZXdkYXRhLGQuZHNtZXRhPU0uZHNtZXRhLGQudmVyc2lvbnM9TS52ZXJzaW9uc3x8W10s'@; put 'ZC5zZXREU05vdGUoKSxkLnF1ZXJ5VGV4dD1NLnNhc3BhcmFtc1swXS5GSUxURVJfVEVYVCxNLnZpZXdkYXRhJiZNLnZpZXdkYXRhLmxlbmd0aD4wKXtsZXQgRz1bXSxyZT1bXTtmb3IobGV0IHVlIGluIE0udmlld2RhdGFbMF0pdWUmJnJlLnB1c2godWUpO2ZvcihsZXQgdWU9MDt1ZTxyZS5s'@; put 'ZW5ndGg7dWUrKylHLnB1c2goe2RhdGE6cmVbdWVdfSk7ZC5ob3RUYWJsZS5jb2xIZWFkZXJzPXJlLGQuaG90VGFibGUuY29sdW1ucz1HfWVsc2UgZC5ob3RUYWJsZS5jb2xIZWFkZXJzPVtdLGQuaG90VGFibGUuY29sdW1ucz1bXTtkLmhvdFRhYmxlLmNlbGxzPSgpPT4oe3JlYWRPbmx5OiEw'@; put 'fSksZC51cGRhdGVIb3RUYWJsZVNldHRpbmdzKCksZC50YWJsZUZsYWc9ITE7bGV0IEk9W107ST1oLnNwbGl0KCIuIiksZC5saWI9SVswXSxkLnRhYmxlPUlbMV0sMD09PWQuaG90VGFibGUuZGF0YS5sZW5ndGg/KGQubm9EYXRhPSEwLGQudGFibGVGbGFnPSEwKTooZC5ub0RhdGE9ITEsZC50'@; put 'YWJsZUZsYWc9ITEpLGQubm9EYXRhUmVxRXJyPSExfSkuY2F0Y2goTT0+e2QubG9nZ2VyU2VydmljZS5lcnJvcihNKSxkLmFib3J0QWN0aXZlPSEwLGQubm9EYXRhUmVxRXJyPSEwfSkpLGQucm91dGVyLnVybC5pbmNsdWRlcygiL2RhdGEiKSYmaCYmZC5yb3V0ZXIubmF2aWdhdGUoMCE9PWE/'@; put 'WyIvdmlldy9kYXRhLyIraCsiLyIrYV06WyIvdmlldy9kYXRhLyIraF0se3F1ZXJ5UGFyYW1zSGFuZGxpbmc6InByZXNlcnZlIn0pO2xldCBmPWQudGFibGUsdj1kLmxpYnJhcmllcy5maW5kKE09Pk0uTElCUkFSWVJFRi50b0xvd2VyQ2FzZSgpPT09ZC5saWIudG9Mb3dlckNhc2UoKSk7dj8o'@; put 'Sm4udmlld2VyLmxpYnJhcmllcy5sZW5ndGg+MCYmKGQubGlicmFyaWVzPUpuLnZpZXdlci5saWJyYXJpZXMsZC5saWJyYXJpZXNTZWFyY2g9Sm4udmlld2VyLmxpYnJhcmllc1NlYXJjaCksZC5saWJyYXJ5T25DbGljayhkLmxpYix2LCEwKSk6ZC5saWJpbmZvPVtdLGQudGFibGU9Znx8ZC50'@; put 'YWJsZSxkLmxpYnJhcmllcyYmZC5oZWxwZXJTZXJ2aWNlLmRpc3BsYXlMaWJyYXJpZXMoZC5saWJyYXJpZXMpLGQucm91dGVyLnVybC5pbmNsdWRlcygiL2RhdGEiKSYmZC5ldmVudFNlcnZpY2UuY2xvc2VTaWRlYmFyKCksZC5sb2FkaW5nVGFibGVWaWV3PSExLCFkLm5vRGF0YSYmIWQubm9E'@; put 'YXRhUmVxRXJyJiZoJiZkLnNldHVwSG90KCksc2V0VGltZW91dCgoKT0+e2QuZml4QXJpYUFjY2Vzc2liaWxpdHkoKX0sMTUwMCksZC5ob3RJbnN0YW5jZUNsaWNrTGlzdGVuZXJ8fHNldFRpbWVvdXQoKCk9PntsZXQgTT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG90SW5zdGFuY2UiKTtN'@; put 'JiYoTS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLEk9PntzZXRUaW1lb3V0KCgpPT57bGV0IEc9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmRlYnVnLXN3aXRjaC1pdGVtIil8fHZvaWQgMDtHJiZHLmNsaWNrKCl9LDEwMCl9KSxkLmhvdEluc3RhbmNlQ2xpY2tMaXN0ZW5lcj0hMCl9'@; put 'LDJlMyl9KSgpfW1heFdpZHRoQ2hla2VyKGEsZCl7cmV0dXJuIGE+MjAwPzIwMDphfW9wZW5RYigpe3RoaXMuZmlsdGVyPSEwLHRoaXMuY2RmLmRldGVjdENoYW5nZXMoKSx0aGlzLnNhc1N0b3JlU2VydmljZS5zZXRRdWVyeVZhcmlhYmxlcyh0aGlzLmxpYisiLiIrdGhpcy50YWJsZSx0aGlz'@; put 'LmZpbHRlckNvbHMpfXNlbmRDbGF1c2UoKXt2YXIgYT10aGlzO3JldHVybiBRKGZ1bmN0aW9uKigpe2Euc3VibWl0TG9hZGluZz0hMDtsZXQgZD1bXSxoPVtdO2lmKHR5cGVvZiBhLmNsYXVzZXM+InUiKXJldHVybiBhLm51bGxWYXJpYWJsZXM9ITAsdm9pZChhLnN1Ym1pdExvYWRpbmc9ITEp'@; put 'O3tsZXQgZj1hLmNsYXVzZXMucXVlcnlPYmo7aWYoZlswXS5lbGVtZW50cy5sZW5ndGg8MSlyZXR1cm4idmlldyI9PT1Kbi5yb290UGFyYW0mJihKbi52aWV3ZXIuZmlsdGVyLmNsYXVzZXM9W10sSm4udmlld2VyLmZpbHRlci5xdWVyeT1bXSxKbi52aWV3ZXIuZmlsdGVyLmdyb3VwTG9naWM9'@; put 'IiIpLHZvaWQgYS5yb3V0ZXIubmF2aWdhdGUoWyIvdmlldy9kYXRhLyIrYS5saWJkc10se3F1ZXJ5UGFyYW1zSGFuZGxpbmc6InByZXNlcnZlIn0pO2ZvcihsZXQgdj0wO3Y8Zi5sZW5ndGg7disrKXtjb25zdCBNPWZbdl0uZWxlbWVudHM7ZD1NLmZpbHRlcihmdW5jdGlvbihJKXtyZXR1cm4g'@; put 'bnVsbD09PUkudmFyaWFibGV9KSxkLmxlbmd0aCYmaC5wdXNoKE0pfX1pZihoLmxlbmd0aClyZXR1cm4gYS5udWxsVmFyaWFibGVzPSEwLHZvaWQoYS5zdWJtaXRMb2FkaW5nPSExKTt7Y29uc3QgZj17Z3JvdXBMb2dpYzphLmNsYXVzZXMuZ3JvdXBMb2dpYyxmaWx0ZXJHcm91cHM6W119O2Eu'@; put 'Y2xhdXNlcy5xdWVyeU9iai5mb3JFYWNoKE09Pntjb25zdCBJPXtmaWx0ZXJDbGF1c2VzOltdfTtNLmVsZW1lbnRzLmZvckVhY2goRz0+e0kuZmlsdGVyQ2xhdXNlcy5wdXNoKGEuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUoRykpfSksSS5jbGF1c2VMb2dpYz1NLmNsYXVzZUxvZ2ljLGYuZmls'@; put 'dGVyR3JvdXBzLnB1c2goYS5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZShJKSl9KTtjb25zdCB2PWEuc2FzU3RvcmVTZXJ2aWNlLmNyZWF0ZUZpbHRlclF1ZXJ5VGFibGUoZik7eWllbGQgYS5zYXNTdG9yZVNlcnZpY2Uuc2F2ZVF1ZXJ5KGEubGliZHMsdikudGhlbihNPT57YS5xdWVyeVRleHQ9'@; put 'TS5yZXN1bHRbMF0uRklMVEVSX1RFWFQ7bGV0IEk9TS5yZXN1bHRbMF0uRklMVEVSX1JLO2Eucm91dGVyLm5hdmlnYXRlKFsiL3ZpZXcvZGF0YS8iK2EubGliZHMrIi8iK0ldLHtxdWVyeVBhcmFtc0hhbmRsaW5nOiJwcmVzZXJ2ZSJ9KSxhLnZpZXdEYXRhKEkpLGEuZmlsdGVyPSExfSkuY2F0'@; put 'Y2goTT0+e2EubG9nZ2VyU2VydmljZS5lcnJvcihNKX0pLGEuc3VibWl0TG9hZGluZz0hMX19KSgpfXJlbW92ZVF1ZXJ5KCl7dGhpcy5zYXNTdG9yZVNlcnZpY2UucmVtb3ZlQ2xhdXNlKCl9ZGF0YXNldEluZm9Nb2RhbFJvd0NsaWNrZWQoYSl7dm9pZCAwIT09YS5MT0FEX1JFRiYmdGhpcy5y'@; put 'b3V0ZXIubmF2aWdhdGUoW2Avc3RhZ2UvJHthLkxPQURfUkVGfWBdKX1zZXREU05vdGUoKXtjb25zdCBhPXRoaXMuZHNtZXRhLmZpbmQoZj0+Ik5PVEVTIj09PWYuTkFNRSksZD10aGlzLmRzbWV0YS5maW5kKGY9PiJERF9MT05HREVTQyI9PT1mLk5BTUUpLGg9dGhpcy5kc21ldGEuZmluZChm'@; put 'PT4iRERfU0hPUlRERVNDIj09PWYuTkFNRSk7dGhpcy5kc05vdGU9YSYmYS5WQUxVRT9hLlZBTFVFOmQmJmQuVkFMVUU/ZC5WQUxVRTpoJiZoLlZBTFVFP2guVkFMVUU6IiJ9c2V0dXBIb3QoKXtzZXRUaW1lb3V0KCgpPT57IXRoaXMubG9hZGluZ1RhYmxlVmlldyYmdGhpcy5saWJEYXRhc2V0'@; put 'JiYodGhpcy5ob3RJbnN0YW5jZT10aGlzLmhvdFRhYmxlQ29tcG9uZW50Py5ob3RJbnN0YW5jZSx0aGlzLmhvdEluc3RhbmNlJiYodGhpcy5ob3RJbnN0YW5jZS51cGRhdGVTZXR0aW5ncyh7aGVpZ2h0OnRoaXMuaG90VGFibGUuaGVpZ2h0LG1vZGlmeUNvbFdpZHRoOihhLGQpPT5hPjUwMD81'@; put 'MDA6YSxhZnRlckdldENvbEhlYWRlcjooYSxkKT0+e2NvbnN0IGg9dGhpcy5ob3RJbnN0YW5jZT8uY29sVG9Qcm9wKGEpO2gmJnRoaXMuaGVhZGVyUGtzLmluZGV4T2YoaCk+LTEmJmQuY2xhc3NMaXN0LmFkZCgicHJpbWFyeUtleUhlYWRlclN0eWxlIiksZC5jbGFzc0xpc3QuYWRkKEpuLmhh'@; put 'bmRzb250YWJsZS5kYXJrVGFibGVIZWFkZXJDbGFzcyl9fSksdGhpcy5ob3RJbnN0YW5jZS5hZGRIb29rKCJhZnRlclJlbmRlciIsKCk9Pnt0aGlzLmZpeEFyaWFBY2Nlc3NpYmlsaXR5KCl9KSx0aGlzLmhvdEluc3RhbmNlLmFkZEhvb2soImFmdGVyQ2hhbmdlIiwoKT0+e3NldFRpbWVvdXQo'@; put 'KCk9Pnt0aGlzLmZpeEFyaWFBY2Nlc3NpYmlsaXR5KCl9LDUwKX0pKSksc2V0VGltZW91dCgoKT0+e3RoaXMuZml4QXJpYUFjY2Vzc2liaWxpdHkoKX0sNTAwKX0sMWUzKX1sb2FkV2l0aFBhcmFtZXRlcnMoKXt2YXIgYT10aGlzO3JldHVybiBRKGZ1bmN0aW9uKigpe2Euc3dpdGNoRmxhZz0h'@; put 'MCxhLnRhYmxlVGl0bGU9YS5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMubGliTWVtfHwwLGEudXJsRmlsdGVyUGs9cGFyc2VJbnQoYS5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuZmlsdGVySWR8fCIwIik7bGV0IGg9YS5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMubGliTWVtO2EubGliRGF0YXNldD1oLGgu'@; put 'aW5jbHVkZXMoIi4iKXx8KGEubGliPWgpLHlpZWxkIGEudmlld0RhdGEoYS51cmxGaWx0ZXJQayksYS5ub0RhdGE/c2V0VGltZW91dCgoKT0+e2EudGFibGVGbGFnPSEwfSwxMjAwKTpzZXRUaW1lb3V0KCgpPT57YS50YWJsZUZsYWc9ITF9LDEyMDApfSkoKX1sb2FkV2l0aG91dFBhcmFtZXRl'@; put 'cnMoKXt2YXIgYT10aGlzO3JldHVybiBRKGZ1bmN0aW9uKigpe2Euc3dpdGNoRmxhZz0hMSxhLmxpYnJhcmllc0xvYWRpbmc9ITAsSm4udmlld2VyLnN0YXJ0dXBTZXQ/c2V0VGltZW91dCgoKT0+e2EubGlicmFyaWVzPUpuLnZpZXdlci5saWJyYXJpZXMsYS5saWJyYXJpZXNTZWFyY2g9Sm4u'@; put 'dmlld2VyLmxpYnJhcmllc1NlYXJjaCxhLmxpYj1Kbi52aWV3ZXIubGlicmFyeSxhLmxpYnJhcmllc1RyZWVFeHBhbmRlZD0hMCxhLmxpYnJhcmllc0xvYWRpbmc9ITEsYS5oZWxwZXJTZXJ2aWNlLmRpc3BsYXlMaWJyYXJpZXMoYS5saWJyYXJpZXMpfSwxMDApOihhLm5vRGF0YVJlcUVycj0h'@; put 'MSx5aWVsZCBhLnNhc1N0b3JlU2VydmljZS52aWV3TGlicygpLnRoZW4oZD0+e2EubGlicmFyaWVzPWQuc2FzbGlicyxKbi52aWV3ZXIubGlicmFyaWVzPWEubGlicmFyaWVzLEpuLnZpZXdlci5zdGFydHVwU2V0PSEwLGEubGlicmFyaWVzTG9hZGluZz0hMSxhLmhlbHBlclNlcnZpY2UuZGlz'@; put 'cGxheUxpYnJhcmllcyhhLmxpYnJhcmllcyl9KS5jYXRjaChkPT57YS5sb2dnZXJTZXJ2aWNlLmVycm9yKGQpLGEubGlicmFyaWVzTG9hZGluZz0hMSxhLm5vRGF0YVJlcUVycj0hMH0pKX0pKCl9bmdBZnRlclZpZXdJbml0KCl7c2V0VGltZW91dCgoKT0+e3RoaXMuZml4QXJpYUFjY2Vzc2li'@; put 'aWxpdHkoKX0sMWUzKX1uZ09uRGVzdHJveSgpe3RoaXMuYXJpYU9ic2VydmVyJiYodGhpcy5hcmlhT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHRoaXMuYXJpYU9ic2VydmVyPXZvaWQgMCksdGhpcy5hcmlhQ2hlY2tJbnRlcnZhbCYmKGNsZWFySW50ZXJ2YWwodGhpcy5hcmlhQ2hlY2tJbnRlcnZh'@; put 'bCksdGhpcy5hcmlhQ2hlY2tJbnRlcnZhbD12b2lkIDApfWZpeEFyaWFBY2Nlc3NpYmlsaXR5KCl7Y29uc3QgYT0oKT0+e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5odC13cmFwcGVyLCAud3RIb2xkZXIsIFtpZF49Imh0XyJdJykuZm9yRWFjaChHPT57Ry5yZW1vdmVBdHRyaWJ1dGUo'@; put 'InJvbGUiKSxHLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1yb3djb3VudCIpLEcucmVtb3ZlQXR0cmlidXRlKCJhcmlhLWNvbGNvdW50IiksRy5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtbXVsdGlzZWxlY3RhYmxlIil9KTtjb25zdCBoPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tyb2xlPSJ0'@; put 'cmVlZ3JpZCJdJyksZj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbcm9sZT0icHJlc2VudGF0aW9uIl0nKTtoLmZvckVhY2goRz0+e0cucmVtb3ZlQXR0cmlidXRlKCJyb2xlIiksRy5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtcm93Y291bnQiKSxHLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1j'@; put 'b2xjb3VudCIpLEcucmVtb3ZlQXR0cmlidXRlKCJhcmlhLW11bHRpc2VsZWN0YWJsZSIpfSksZi5mb3JFYWNoKEc9PntHLnF1ZXJ5U2VsZWN0b3JBbGwoImJ1dHRvbiwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIFt0YWJpbmRleF0sIFtvbmNsaWNrXSwgW2NvbnRlbnRlZGl0YWJsZV0iKS5s'@; put 'ZW5ndGg+MCYmRy5yZW1vdmVBdHRyaWJ1dGUoInJvbGUiKX0pLGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1thcmlhLXJvd2NvdW50PSItMSJdJykuZm9yRWFjaChHPT57Ry5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtcm93Y291bnQiKX0pLGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRh'@; put 'YmxlIikuZm9yRWFjaChHPT57Ry5nZXRBdHRyaWJ1dGUoInJvbGUiKXx8Ry5zZXRBdHRyaWJ1dGUoInJvbGUiLCJ0YWJsZSIpLEcucXVlcnlTZWxlY3RvckFsbCgidGgiKS5mb3JFYWNoKHVlPT57dWUuZ2V0QXR0cmlidXRlKCJzY29wZSIpfHx1ZS5zZXRBdHRyaWJ1dGUoInNjb3BlIiwiY29s'@; put 'Iil9KX0pLGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImJ1dHRvbiwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIFtjb250ZW50ZWRpdGFibGVdIikuZm9yRWFjaChHPT57aWYoIUcuZ2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIikmJiFHLmdldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbGxlZGJ5'@; put 'Iikpe2NvbnN0IHJlPUcudGV4dENvbnRlbnQ/LnRyaW0oKTtyZSYmRy5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLHJlKX19KX07YSgpLHNldFRpbWVvdXQoYSwxMDApLHNldFRpbWVvdXQoYSw1MDApLHNldFRpbWVvdXQoYSwxZTMpLHNldFRpbWVvdXQoYSwyZTMpLHRoaXMuYXJpYUNoZWNr'@; put 'SW50ZXJ2YWx8fCh0aGlzLmFyaWFDaGVja0ludGVydmFsPXNldEludGVydmFsKGEsM2UzKSksdGhpcy5hcmlhT2JzZXJ2ZXJ8fCh0aGlzLmFyaWFPYnNlcnZlcj1uZXcgTXV0YXRpb25PYnNlcnZlcihkPT57bGV0IGg9ITE7ZC5mb3JFYWNoKGY9PnsiYXR0cmlidXRlcyI9PT1mLnR5cGUmJigi'@; put 'cm9sZSI9PT1mLmF0dHJpYnV0ZU5hbWV8fCJhcmlhLXJvd2NvdW50Ij09PWYuYXR0cmlidXRlTmFtZSkmJihoPSEwKSwiY2hpbGRMaXN0Ij09PWYudHlwZSYmZi5hZGRlZE5vZGVzLmZvckVhY2godj0+e2lmKHYubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSl7Y29uc3QgTT12OyhNLmhh'@; put 'c0F0dHJpYnV0ZSgicm9sZSIpfHxNLmhhc0F0dHJpYnV0ZSgiYXJpYS1yb3djb3VudCIpKSYmKGg9ITApfX0pfSksaCYmc2V0VGltZW91dChhLDUwKX0pLHRoaXMuYXJpYU9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITAsYXR0cmlidXRlczoh'@; put 'MCxhdHRyaWJ1dGVGaWx0ZXI6WyJyb2xlIiwiYXJpYS1yb3djb3VudCIsImFyaWEtY29sY291bnQiLCJhcmlhLW11bHRpc2VsZWN0YWJsZSJdfSkpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3ZhciBhPXRoaXM7cmV0dXJuIFEoZnVuY3Rpb24qKCl7YS5ob3RUYWJsZS5kYXRhLmxlbmd0aD4wJiYo'@; put 'YS50YWJsZUZsYWc9ITApLGEuX3F1ZXJ5PWEuc2FzU3RvcmVTZXJ2aWNlLnF1ZXJ5LnN1YnNjcmliZShkPT57YS53aGVyZVN0cmluZz1kLnN0cmluZyxhLmNsYXVzZXM9ZC5vYmosYS5saWJkcz1kLmxpYmRzfSksdHlwZW9mIGEucm91dGUuc25hcHNob3QucGFyYW1zLmxpYk1lbTwidSI/YS5s'@; put 'b2FkV2l0aFBhcmFtZXRlcnMoKTphLmxvYWRXaXRob3V0UGFyYW1ldGVycygpfSkoKX1zdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKSgkZShjMSksJGUoSWgpLCRlKFZvKSwkZShMbyksJGUoeXUpLCRlKG1jKSwkZShTZCksJGUoYnUpLCRlKHBoKSwk'@; put 'ZSh4bykpfX1zdGF0aWN7dGhpcy5cdTAyNzVjbXA9TnIoe3R5cGU6YyxzZWxlY3RvcnM6W1siYXBwLXZpZXdlciJdXSx2aWV3UXVlcnk6ZnVuY3Rpb24oZCxoKXtpZigxJmQmJihGYShDRHQsNSksRmEoJGcsNSksRmEoU0R0LDUpKSwyJmQpe2xldCBmO3lpKGY9YmkoKSkmJihoLmhvdEluc3Rh'@; put 'bmNlVmlld0NoaWxkPWYuZmlyc3QpLHlpKGY9YmkoKSkmJihoLmhvdFRhYmxlQ29tcG9uZW50PWYuZmlyc3QpLHlpKGY9YmkoKSkmJihoLnF1ZXJ5RmlsdGVyQ29tcExpc3Q9Zil9fSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6OTUsdmFyczozMCxjb25zdHM6W1si'@; put 'Y2xpQ29tbWFuZElucHV0IiwiIl0sWyJzZWFyY2hMaWJUcmVlSW5wdXQiLCIiXSxbInNlYXJjaFRyZWVJbnB1dCIsIiJdLFsicXVlcnlGaWx0ZXIiLCIiXSxbInNlYXJjaEVsIiwiIl0sWyJob3RJbnN0YW5jZSIsIiJdLFszLCJzY3JvbGxlZFRvQm90dG9tIl0sWyJjbGFzcyIsIm15LTEwLW14'@; put 'LWF1dG8gdGV4dC1jZW50ZXIiLDQsIm5nSWYiXSxbImNsYXNzIiwic2VhcmNoLW5vZGUiLDQsIm5nSWYiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJjbGFzcyIsInctMTAwIHRleHQtY2VudGVyIiw0LCJuZ0lmIl0sWzEsImNvbnRlbnQtYXJlYSJdLFsiY2xhc3MiLCJtb2RhbCB6LWluZGV4'@; put 'LWhpZ2hlc3QiLDQsIm5nSWYiXSxbImNsYXNzIiwibW9kYWwtYmFja2Ryb3AiLCJhcmlhLWhpZGRlbiIsInRydWUiLDQsIm5nSWYiXSxbMywiY2xyTW9kYWxPcGVuQ2hhbmdlIiwiY2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxTaXplIl0sWzEsIm1vZGFsLXRpdGxlIiwiY2VudGVyIiwidGV4dC1j'@; put 'ZW50ZXIiLCJjb2xvci1kYXJrZXItZ3JheSJdLFsxLCJtb2RhbC1ib2R5Il0sWzEsImNsci1jb2wtbWQtNiJdLFsxLCJkb3dubG9hZC1zZWxlY3QiXSxbImNsclNlbGVjdCIsIiIsMywibmdNb2RlbENoYW5nZSIsIm5nTW9kZWwiXSxbInZhbHVlIiwiQ1NWIl0sWyJ2YWx1ZSIsIlNBUyJdLFsi'@; put 'dmFsdWUiLCJQR1NRTF9EREwiXSxbInZhbHVlIiwiU0FTX0RETCJdLFsidmFsdWUiLCJUU1FMX0RETCJdLFsidmFsdWUiLCJFWENFTCJdLFsidmFsdWUiLCJNQVJLRE9XTiJdLFsxLCJtb2RhbC1mb290ZXIiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1vdXRsaW5l'@; put 'IiwzLCJjbGljayJdLFsidHlwZSIsInN1Ym1pdCIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXN1Y2Nlc3Mtb3V0bGluZSIsMywiY2xpY2siLCJpZCJdLFsxLCJtb2RhbC1ib2R5Iiwid2ViLXF1ZXJ5Il0sWzEsInJvdyJdLFsxLCJjbHItY29sLWxnLTEyIiwiY2xyLWNvbC1tZC0xMiIsImNsci1j'@; put 'b2wtc20tMTIiLCJjbHItY29sLXhzLTEyIl0sWzEsImNhcmQiLCJuby1ib3JkZXJzIl0sWzEsImNhcmQtaGVhZGVyIiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWJldHdlZW4iXSxbMSwiYnRuLWdyb3VwIl0sWzEsInJhZGlvIiwiYnRuIiwzLCJjbGljayJdLFsidHlwZSIsInJhZGlvIiwi'@; put 'bmFtZSIsImJ0bi1ncm91cC1kZW1vLXJhZGlvcyIsMywiY2hlY2tlZCJdLFsxLCJjYXJkLWJsb2NrIiwid2ViLXF1ZXJ5LXdyYXBwZXIiLCJ3b3JkLWJyZWFrLWFsbCJdLFsiY2xyVGV4dGFyZWEiLCIiLCJyb3dzIiwiNCIsImNvbHMiLCI1MCIsInR5cGUiLCJ0ZXh0IiwicmVhZG9ubHkiLCIi'@; put 'LDEsIndlYi1xdWVyeS10ZXh0IiwzLCJmb2N1cyIsInZhbHVlIl0sWzEsImNhcmQtZm9vdGVyIl0sWzEsImJ0biIsImJ0bi1zbSIsImJ0bi1saW5rIiwzLCJjbGljayIsIm5neENsaXBib2FyZCJdLFsiYXJpYS1tb2RhbCIsInRydWUiLDEsImZpbHRlci1tb2RhbCIsMywiY2xyTW9kYWxPcGVu'@; put 'Q2hhbmdlIiwiY2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxTaXplIiwiY2xyTW9kYWxDbG9zYWJsZSJdLFs0LCJuZ0lmIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tbGluayIsMywiY2xpY2siXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1vdXRsaW5lIiwi'@; put 'YnRuLXNtIiwzLCJjbGljayJdLFsidHlwZSIsInN1Ym1pdCIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXN1Y2Nlc3Mtb3V0bGluZSIsMywiY2xpY2siLCJjbHJMb2FkaW5nIl0sWzMsImNsck1vZGFsT3BlbkNoYW5nZSIsImNsck1vZGFsT3BlbiJdLFsxLCJtb2RhbC10aXRsZSJdLFsidHlwZSIs'@; put 'ImJ1dHRvbiIsMSwiYnRuIiwiYnRuLW91dGxpbmUiLDMsImNsaWNrIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tcHJpbWFyeSIsMywiY2xpY2siXSxbImNsYXNzIiwibG9hZGluZ1NwaW5uZXIiLDQsIm5nSWYiXSxbImNsYXNzIiwiY2FyZCBuby1ib3JkZXJzIGgtMTAwIGQtZmxl'@; put 'eCBjbHItZmxleC1jb2x1bW4iLDQsIm5nSWYiXSxbMywib3BlbkNoYW5nZSIsInJvd0NsaWNrZWQiLCJvcGVuIiwiZHNtZXRhIiwidmVyc2lvbnMiXSxbMywidmlld2JveE1vZGFsQ2hhbmdlIiwidmlld2JveE1vZGFsIl0sWzEsIm15LTEwLW14LWF1dG8iLCJ0ZXh0LWNlbnRlciJdLFsiY2xy'@; put 'TWVkaXVtIiwiIl0sWzEsInNlYXJjaC1ub2RlIl0sWzEsInRyZWUtc2VhcmNoLXdyYXBwZXIiXSxbImFwcFN0ZWFsRm9jdXMiLCIiLCJjbHJJbnB1dCIsIiIsInBsYWNlaG9sZGVyIiwiTGlicmFyaWVzIiwibmFtZSIsImlucHV0IiwiYXV0b2NvbXBsZXRlIiwib2ZmIiwzLCJuZ01vZGVsQ2hh'@; put 'bmdlIiwia2V5dXAiLCJuZ01vZGVsIl0sWyJzaGFwZSIsInNlYXJjaCIsNCwibmdJZiJdLFsic2hhcGUiLCJ0aW1lcyIsMywiY2xpY2siLDQsIm5nSWYiXSxbInNoYXBlIiwic2VhcmNoIl0sWyJzaGFwZSIsInRpbWVzIiwzLCJjbGljayJdLFszLCJjbHJFeHBhbmRlZCIsImNsckxvYWRpbmci'@; put 'LCJjbHItZXhwYW5kZWQiLCJjbGljayIsImNsckV4cGFuZGVkQ2hhbmdlIiw0LCJuZ0lmIl0sWzMsImNsaWNrIiwiY2xyRXhwYW5kZWRDaGFuZ2UiLCJjbHJFeHBhbmRlZCIsImNsckxvYWRpbmciXSxbMSwibS0wIiwiY3Vyc29yLXBvaW50ZXIiLDMsImNsaWNrIl0sWyJzaGFwZSIsInJhY2st'@; put 'c2VydmVyIl0sWyJhcHBTdGVhbEZvY3VzIiwiIiwiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsIlRhYmxlcyIsIm5hbWUiLCJpbnB1dCIsImF1dG9jb21wbGV0ZSIsIm9mZiIsMywibmdNb2RlbENoYW5nZSIsImtleXVwIiwiaWQiLCJuZ01vZGVsIl0sWzQsIm5nVmFyIl0sWyJjbHJUb29s'@; put 'dGlwVHJpZ2dlciIsIiIsImNsYXNzIiwiY2xyLXRyZWVub2RlLWxpbmsiLDMsImRjLWxvY2tlZC1jb250cm9sIiwiYWN0aXZlIiwiY2xpY2siLDQsIm5nSWYiXSxbImNsclRvb2x0aXBUcmlnZ2VyIiwiIiwxLCJjbHItdHJlZW5vZGUtbGluayIsMywiY2xpY2siXSxbMywibmdTd2l0Y2giXSxb'@; put 'InNoYXBlIiwiYm9sdCIsNCwibmdTd2l0Y2hDYXNlIl0sWyJzaGFwZSIsInRhYmxlIiw0LCJuZ1N3aXRjaENhc2UiXSxbInNoYXBlIiwiYm9sdCJdLFsic2hhcGUiLCJ0YWJsZSJdLFsiY2xyUG9zaXRpb24iLCJib3R0b20tcmlnaHQiLCJjbHJTaXplIiwibGciLDQsImNscklmT3BlbiJdLFsi'@; put 'Y2xyUG9zaXRpb24iLCJib3R0b20tcmlnaHQiLCJjbHJTaXplIiwibGciXSxbMSwidy0xMDAiLCJ0ZXh0LWNlbnRlciJdLFsxLCJzcGlubmVyIiwic3Bpbm5lci1zbSJdLFsxLCJtb2RhbCIsInotaW5kZXgtaGlnaGVzdCJdLFsicm9sZSIsImRpYWxvZyIsImFyaWEtaGlkZGVuIiwidHJ1ZSIs'@; put 'MSwibW9kYWwtZGlhbG9nIl0sWzEsIm1vZGFsLWNvbnRlbnQiXSxbMSwibW9kYWwtaGVhZGVyIl0sWyJhcmlhLWxhYmVsIiwiQ2xvc2UiLCJ0eXBlIiwiYnV0dG9uIiwxLCJjbG9zZSJdLFsiYXJpYS1oaWRkZW4iLCJ0cnVlIiwic2hhcGUiLCJjbG9zZSJdLFsidHlwZSIsImJ1dHRvbiIsMSwi'@; put 'YnRuIiwiYnRuLXNtIiwiYnRuLXByaW1hcnkiLDMsImNsaWNrIl0sWyJhcmlhLWhpZGRlbiIsInRydWUiLDEsIm1vZGFsLWJhY2tkcm9wIl0sWzEsImxvYWRpbmdTcGlubmVyIl0sWzEsInNwaW5uZXIiXSxbMSwibXQtMTAiXSxbImNkcy10ZXh0Iiwic2VjdGlvbiJdLFsxLCJjYXJkIiwibm8t'@; put 'Ym9yZGVycyIsImgtMTAwIiwiZC1mbGV4IiwiY2xyLWZsZXgtY29sdW1uIl0sWyJjbGFzcyIsImhlYWRlci1yb3cgY2xyLXJvdyBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBjbHItanVzdGlmeS1jb250ZW50LWNlbnRlciB3LTEwMCBtLTAiLDQsIm5nSWYiXSxbImNsYXNzIiwibm8tdGFibGUt'@; put 'c2VsZWN0ZWQiLDQsIm5nSWYiXSxbImNsYXNzIiwiY2FyZC1ibG9jayBub0RhdGEiLDQsIm5nSWYiXSxbImNsYXNzIiwiY2xyLWZsZXgtMSIsNCwibmdJZiJdLFsiY2xhc3MiLCJtdC0yLWkgdy0xMDAgdGV4dC1jZW50ZXIiLDQsIm5nSWYiXSxbMSwiaGVhZGVyLXJvdyIsImNsci1yb3ciLCJq'@; put 'dXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiIsImNsci1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiwidy0xMDAiLCJtLTAiXSxbMSwiZm9ybS1ibG9jayIsInRhYmxlLXNlYXJjaC13cmFwcGVyIiwic3ciLCJjbHItY29sLW1kIl0sWyJjbHJGb3JtIiwiIiwxLCJkLWZsZXgiLCJhbGlnbi1pdGVtcy1j'@; put 'ZW50ZXIiXSxbMSwiaW5wdXQtd3JhcHBlciJdLFsiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsIlNlYXJjaCIsIm5hbWUiLCJzZWFyY2gtaW5wdXQiLDMsImtleXVwLmVudGVyIiwidHlwZSJdLFsic2hhcGUiLCJzZWFyY2giLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJjbGFzcyIsInNwaW5u'@; put 'ZXIgc3Bpbm5lci1pbmxpbmUiLDQsIm5nSWYiXSxbInR5cGUiLCJjaGVja2JveCIsImNsckNoZWNrYm94IiwiIiwibmFtZSIsIm51bWVyaWNfY2hlY2siLDMsIm5nTW9kZWxDaGFuZ2UiLCJuZ01vZGVsIl0sWzEsInRpdGxlLWNvbCIsImNsci1jb2wtYXV0byIsImNsci1mbGV4LWNvbHVtbiIs'@; put 'ImNsci1mbGV4LXNtLXJvdyJdLFsiY2RzLXRleHQiLCJzZWN0aW9uIiwxLCJjbHItZmxleC1jb2x1bW4iLCJkLWZsZXgiLCJjbHItZmxleC1zbS1yb3ciLCJjbHItYWxpZ24taXRlbXMtY2VudGVyIiwiY2xyLWp1c3RpZnktY29udGVudC1jZW50ZXIiXSxbMSwiZC1mbGV4IiwiY2xyLWFsaWdu'@; put 'LWl0ZW1zLWNlbnRlciJdLFsiY2xyVG9vbHRpcFRyaWdnZXIiLCIiLCJhcmlhLWxhYmVsIiwiVmlldyBkYXRhc2V0IG1ldGEgaW5mbyIsInNoYXBlIiwiaW5mby1jaXJjbGUiLCJzaXplIiwiMjQiLDEsImlzLWhpZ2hsaWdodCIsImN1cnNvci1wb2ludGVyIiwzLCJjbGljayJdLFsic2hhcGUi'@; put 'LCJib2x0IiwiY2xhc3MiLCJjb2xvci15ZWxsb3cgbXItNSIsNCwibmdJZiJdLFsiY2xyVG9vbHRpcFRyaWdnZXIiLCIiLDQsIm5nSWYiXSxbMSwib3B0aW9ucy1jb2wiLCJjbHItY29sLW1kIl0sWyJjbGFzcyIsIm9wdGlvbnMtZHJvcGRvd24iLDMsImNsckNsb3NlTWVudU9uSXRlbUNsaWNr'@; put 'Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNsci1jb2wtbWQtMTIgaW5mb0JhciIsNCwibmdJZiJdLFsic2hhcGUiLCJzZWFyY2giLDMsImNsaWNrIl0sWzEsInNwaW5uZXIiLCJzcGlubmVyLWlubGluZSJdLFsic2hhcGUiLCJib2x0IiwxLCJjb2xvci15ZWxsb3ciLCJtci01Il0sWyJjbHJUb29s'@; put 'dGlwVHJpZ2dlciIsIiJdLFsiY2xyUG9zaXRpb24iLCJib3R0b20tbGVmdCIsImNsclNpemUiLCJsZyIsNCwiY2xySWZPcGVuIl0sWyJjbHJQb3NpdGlvbiIsImJvdHRvbS1sZWZ0IiwiY2xyU2l6ZSIsImxnIl0sWyJzaGFwZSIsInJlZnJlc2giLDEsInJlZnJlc2gtdGFibGUiLDMsImNsaWNr'@; put 'Il0sWzEsIm9wdGlvbnMtZHJvcGRvd24iLDMsImNsckNsb3NlTWVudU9uSXRlbUNsaWNrIl0sWyJ0eXBlIiwiYnV0dG9uIiwiY2xyRHJvcGRvd25UcmlnZ2VyIiwiIiwxLCJidG4iLCJidG4tc20iLCJidG4tb3V0bGluZSIsImZpbHRlclNpZGUiXSxbInNoYXBlIiwiY29nIiwic2l6ZSIsIjE1'@; put 'Il0sWyJjbHJQb3NpdGlvbiIsImJvdHRvbS1yaWdodCIsNCwiY2xySWZPcGVuIl0sWyJjbHJQb3NpdGlvbiIsImJvdHRvbS1yaWdodCJdLFsiY2xyRHJvcGRvd25JdGVtIiwiIiwzLCJjbGljayJdLFsic2hhcGUiLCJ2aWV3LWNhcmRzIl0sWyJjbHJEcm9wZG93bkl0ZW0iLCIiLDMsImNsaWNr'@; put 'Iiw0LCJuZ0lmIl0sWyJzaGFwZSIsImZpbHRlciJdLFsic2hhcGUiLCJkb3dubG9hZCJdLFsic2hhcGUiLCJkb3dubG9hZC1jbG91ZCJdLFsic2hhcGUiLCJwZW5jaWwiXSxbInNoYXBlIiwic3dpdGNoIl0sWzEsImNsci1jb2wtbWQtMTIiLCJpbmZvQmFyIl0sWzEsIm5vLXRhYmxlLXNlbGVj'@; put 'dGVkIl0sWyJzcmMiLCIvU0FTSm9iRXhlY3V0aW9uP19GSUxFPS9QdWJsaWMvYXBwL2RjcGxhY2Vob2xkZXIvc2VydmljZXMvd2ViL2ltYWdlcy9zZWxlY3QtbGlicmFyeS5wbmciLCJhbHQiLCJzZWxlY3QgYSBsaWJyYXJ5IGljb24iLDEsInNlbGVjdC10YWJsZS1pY29uIl0sWyJjZHMtdGV4'@; put 'dCIsInNlY3Rpb24iLDEsInRleHQtY2VudGVyIiwiY29sb3ItZ3JheSIsIm10LTEwIl0sWzEsImhlYWRlci1yb3ciLCJjbHItcm93IiwiYm9yZGVyLWJvdHRvbS1kaXZpZGVyIiwianVzdGlmeS1jb250ZW50LWJldHdlZW4iLCJ3LTEwMCIsIm0tMCJdLFsxLCJ0aXRsZS1jb2wiLCJjbHItY29s'@; put 'LWF1dG8iLCJtdC0xNSIsIm1iLTE1Il0sWzEsInRleHQtY2VudGVyIiwibXQtMTAiXSxbImNsck1lZGl1bSIsIiIsNCwibmdJZiJdLFsiY2xhc3MiLCJuby10YWJsZS1zZWxlY3RlZC1pbmZvIHBvaW50ZXItZXZlbnRzLW5vbmUiLDQsIm5nSWYiXSxbImNsYXNzIiwibGliaW5mbyBtLTAgY2xy'@; put 'LXJvdyIsNCwibmdJZiJdLFsxLCJuby10YWJsZS1zZWxlY3RlZC1pbmZvIiwicG9pbnRlci1ldmVudHMtbm9uZSJdLFsic3JjIiwiL1NBU0pvYkV4ZWN1dGlvbj9fRklMRT0vUHVibGljL2FwcC9kY3BsYWNlaG9sZGVyL3NlcnZpY2VzL3dlYi9pbWFnZXMvc2VsZWN0LXRhYmxlLnBuZyIsImFs'@; put 'dCIsInNlbGVjdCB0YWJsZSBpY29uIiwxLCJzZWxlY3QtdGFibGUtaWNvbiJdLFsxLCJsaWJpbmZvIiwibS0wIiwiY2xyLXJvdyJdLFsiY2xhc3MiLCJ0ZXh0LWNlbnRlciBtLTAgdy0xMDAiLDQsIm5nSWYiXSxbMSwidGV4dC1jZW50ZXIiLCJtLTAiLCJ3LTEwMCJdLFsic2hhcGUiLCJyZWZy'@; put 'ZXNoIiwxLCJyZWZyZXNoLXRhYmxlIiwibS0wIiwzLCJjbGljayJdLFsxLCJtLTAiXSxbMSwibS0wIiwiZm9udC1ib2xkIl0sWzEsImNhcmQtYmxvY2siLCJub0RhdGEiXSxbInNoYXBlIiwid2FybmluZy1zdGFuZGFyZCIsInNpemUiLCI2MCIsMSwiaXMtaW5mbyJdLFsiY2xhc3MiLCJ0ZXh0'@; put 'LWNlbnRlciBjb2xvci1ncmF5Iiw0LCJuZ0lmIl0sWzEsInRleHQtY2VudGVyIiwiY29sb3ItZ3JheSJdLFsxLCJjbHItZmxleC0xIl0sWzEsImhvdC13cmFwcGVyIiwiY2xyLWZsZXgtMSJdLFsiaWQiLCJob3RUYWJsZSIsMSwidmlldy1ob3QiLDMsImRhdGEiLCJzZXR0aW5ncyJdLFsxLCJt'@; put 'dC0yLWkiLCJ3LTEwMCIsInRleHQtY2VudGVyIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGQsaCl7aWYoMSZkKXtjb25zdCBmPU9uKCk7ZGUoMCwiYXBwLXNpZGViYXIiLDYpLEZ0KCJzY3JvbGxlZFRvQm90dG9tIixmdW5jdGlvbigpe3JldHVybiB3dChmKSxDdChoLmxvYWRNb3JlTGlicmFyaWVz'@; put 'KCkpfSksZ3QoMSx4RHQsMiwwLCJkaXYiLDcpLGRlKDIsImNsci10cmVlIiksZ3QoMyxBRHQsNiwzLCJjbHItdHJlZS1ub2RlIiw4KSg0LEJEdCwyLDEsIm5nLWNvbnRhaW5lciIsOSksaGUoKSxndCg1LGpEdCwzLDAsImRpdiIsMTApLGhlKCksZGUoNiwiZGl2IiwxMSksZ3QoNyx6RHQsMTQs'@; put 'MCwiZGl2IiwxMikoOCxVRHQsMSwwLCJkaXYiLDEzKSxkZSg5LCJjbHItbW9kYWwiLDE0KSxwaSgiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihNKXtyZXR1cm4gd3QoZiksZ2koaC5vcGVuRG93bmxvYWQsTSl8fChoLm9wZW5Eb3dubG9hZD1NKSxDdChNKX0pLGRlKDEwLCJoMyIsMTUp'@; put 'LE9lKDExLCJEb3dubG9hZCIpLGhlKCksZGUoMTIsImRpdiIsMTYpKDEzLCJkaXYiLDE3KSgxNCwiY2xyLXNlbGVjdC1jb250YWluZXIiLDE4KSgxNSwibGFiZWwiKSxPZSgxNiwiUGxlYXNlIGNob29zZSBkb3dubG9hZCBmb3JtYXQiKSxoZSgpLGRlKDE3LCJzZWxlY3QiLDE5KSxwaSgibmdN'@; put 'b2RlbENoYW5nZSIsZnVuY3Rpb24oTSl7cmV0dXJuIHd0KGYpLGdpKGguZG93bmxvYWRGb3JtYXQsTSl8fChoLmRvd25sb2FkRm9ybWF0PU0pLEN0KE0pfSksZGUoMTgsIm9wdGlvbiIsMjApLE9lKDE5LCJDU1YiKSxoZSgpLGRlKDIwLCJvcHRpb24iLDIxKSxPZSgyMSwiRGF0YWxpbmVzIChj'@; put 'YXJkcyBmaWxlKSIpLGhlKCksZGUoMjIsIm9wdGlvbiIsMjIpLE9lKDIzLCJEREwgKFBHU1FMIEZsYXZvdXIpIiksaGUoKSxkZSgyNCwib3B0aW9uIiwyMyksT2UoMjUsIkRETCAoU0FTIEZsYXZvdXIpIiksaGUoKSxkZSgyNiwib3B0aW9uIiwyNCksT2UoMjcsIkRETCAoVFNRTCBGbGF2b3Vy'@; put 'KSIpLGhlKCksZGUoMjgsIm9wdGlvbiIsMjUpLE9lKDI5LCJFeGNlbCAoLnhsc3gpIiksaGUoKSxkZSgzMCwib3B0aW9uIiwyNiksT2UoMzEsIk1hcmtkb3duICgubWQpIiksaGUoKSgpKCkoKSgpLGRlKDMyLCJkaXYiLDI3KSgzMywiYnV0dG9uIiwyOCksRnQoImNsaWNrIixmdW5jdGlvbigp'@; put 'e3JldHVybiB3dChmKSxDdChoLm9wZW5Eb3dubG9hZD0hMSl9KSxPZSgzNCwiIENhbmNlbCAiKSxoZSgpLGRlKDM1LCJidXR0b24iLDI5KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGYpLEN0KGguZG93bmxvYWRGb3JtYXQuaW5jbHVkZXMoIkRETCIpP2guZG93bmxvYWREREwo'@; put 'KTpoLmRvd25sb2FkRGF0YSgpKX0pLE9lKDM2LCIgT2sgIiksaGUoKSgpKCksZGUoMzcsImNsci1tb2RhbCIsMTQpLHBpKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKE0pe3JldHVybiB3dChmKSxnaShoLndlYlF1ZXJ5LE0pfHwoaC53ZWJRdWVyeT1NKSxDdChNKX0pLGRlKDM4LCJo'@; put 'MyIsMTUpLE9lKDM5LCIgV2ViIFF1ZXJ5IFVSTCAiKSxoZSgpLGRlKDQwLCJkaXYiLDMwKSg0MSwiZGl2IiwzMSkoNDIsImRpdiIsMzIpKDQzLCJkaXYiLDMzKSg0NCwiZGl2IiwzNCkoNDUsInNwYW4iKSxPZSg0NiwiQ29weSB0aGUgYmVsb3cgaW50byB5b3VyIHByZWZlcnJlZCBjbGllbnQg'@; put 'dG9vbDoiKSxoZSgpLGRlKDQ3LCJkaXYiLDM1KSg0OCwiZGl2IiwzNiksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChmKSxoLndlYlF1ZXJ5VGFiPSEwLEN0KGguc2hvd1dlYlF1ZXJ5KCkpfSksV3QoNDksImlucHV0IiwzNyksZGUoNTAsImxhYmVsIiksT2UoNTEsIlRBQiIpLGhl'@; put 'KCkoKSxkZSg1MiwiZGl2IiwzNiksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChmKSxoLndlYlF1ZXJ5VGFiPSExLEN0KGguc2hvd1dlYlF1ZXJ5KCkpfSksV3QoNTMsImlucHV0IiwzNyksZGUoNTQsImxhYmVsIiksT2UoNTUsIkNTViIpLGhlKCkoKSgpKCksZGUoNTYsImRpdiIs'@; put 'MzgpKDU3LCJ0ZXh0YXJlYSIsMzksMCksRnQoImZvY3VzIixmdW5jdGlvbihNKXtyZXR1cm4gd3QoZiksQ3QoaC5vbkNsaUNvbW1hbmRGb2N1cyhNKSl9KSxPZSg1OSwiICAgICAgICAgICAgICAiKSxoZSgpKCksZGUoNjAsImRpdiIsNDApKDYxLCJidXR0b24iLDQxKSxGdCgiY2xpY2siLGZ1'@; put 'bmN0aW9uKCl7cmV0dXJuIHd0KGYpLEN0KGguY29weVRvQ2xpcCgpKX0pLE9lKDYyLCIgY29weSB0byBjbGlwYm9hcmQgIiksaGUoKSgpKCkoKSgpKCksZGUoNjMsImRpdiIsMjcpKDY0LCJidXR0b24iLDI4KSxGdCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHd0KGYpLEN0KGgud2ViUXVl'@; put 'cnk9ITEpfSksT2UoNjUsIiBjbG9zZSAiKSxoZSgpKCkoKSxkZSg2NiwiY2xyLW1vZGFsIiw0MikscGkoImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oTSl7cmV0dXJuIHd0KGYpLGdpKGguZmlsdGVyLE0pfHwoaC5maWx0ZXI9TSksQ3QoTSl9KSxkZSg2NywiaDMiLDE1KSxPZSg2OCwi'@; put 'IEZpbHRlciBmb3IgdGFibGU6IiksZGUoNjksInNwYW4iKSxPZSg3MCksaGUoKSgpLGRlKDcxLCJkaXYiLDE2KSxndCg3MixaRHQsMiwwLCJhcHAtcXVlcnkiLDQzKSxoZSgpLGRlKDczLCJkaXYiLDI3KSg3NCwiYnV0dG9uIiw0NCksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChm'@; put 'KSxDdChoLnJlc2V0RmlsdGVyKCkpfSksT2UoNzUsIiByZXNldCBmaWx0ZXIgIiksaGUoKSxkZSg3NiwiYnV0dG9uIiw0NSksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChmKSxoLmZpbHRlcj0hMSxDdChoLnJlbW92ZVF1ZXJ5KCkpfSksT2UoNzcsIiBDYW5jZWwgIiksaGUoKSxk'@; put 'ZSg3OCwiYnV0dG9uIiw0NiksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChmKSxDdChoLnNlbmRDbGF1c2UoKSl9KSxPZSg3OSwiIE9rICIpLGhlKCkoKSgpLGRlKDgwLCJjbHItbW9kYWwiLDQ3KSxwaSgiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihNKXtyZXR1cm4gd3Qo'@; put 'ZiksZ2koaC5xdWVyeUVycixNKXx8KGgucXVlcnlFcnI9TSksQ3QoTSl9KSxkZSg4MSwiaDMiLDQ4KSxPZSg4MiwiRXJyb3IiKSxoZSgpLGRlKDgzLCJkaXYiLDE2KSg4NCwicCIpLE9lKDg1KSxoZSgpKCksZGUoODYsImRpdiIsMjcpKDg3LCJidXR0b24iLDQ5KSxGdCgiY2xpY2siLGZ1bmN0'@; put 'aW9uKCl7cmV0dXJuIHd0KGYpLEN0KGgucXVlcnlFcnI9ITEpfSksT2UoODgsIiBDYW5jZWwgIiksaGUoKSxkZSg4OSwiYnV0dG9uIiw1MCksRnQoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB3dChmKSxDdChoLnF1ZXJ5RXJyPSExKX0pLE9lKDkwLCIgT2sgIiksaGUoKSgpKCksZ3QoOTEs'@; put 'V0R0LDYsMCwiZGl2Iiw1MSkoOTIsQUl0LDgsNiwiZGl2Iiw1MiksaGUoKSxkZSg5MywiYXBwLWRhdGFzZXQtaW5mbyIsNTMpLHBpKCJvcGVuQ2hhbmdlIixmdW5jdGlvbihNKXtyZXR1cm4gd3QoZiksZ2koaC5kYXRhc2V0SW5mbyxNKXx8KGguZGF0YXNldEluZm89TSksQ3QoTSl9KSxGdCgi'@; put 'cm93Q2xpY2tlZCIsZnVuY3Rpb24oTSl7cmV0dXJuIHd0KGYpLEN0KGguZGF0YXNldEluZm9Nb2RhbFJvd0NsaWNrZWQoTSkpfSksaGUoKSxkZSg5NCwiYXBwLXZpZXdib3hlcyIsNTQpLHBpKCJ2aWV3Ym94TW9kYWxDaGFuZ2UiLGZ1bmN0aW9uKE0pe3JldHVybiB3dChmKSxnaShoLnZpZXdi'@; put 'b3hPcGVuLE0pfHwoaC52aWV3Ym94T3Blbj1NKSxDdChNKX0pLGhlKCl9aWYoMiZkKXtjb25zdCBmPWRhKDU4KTtmZSgpLE1lKCJuZ0lmIixoLmxpYnJhcmllc0xvYWRpbmcpLGZlKDIpLE1lKCJuZ0lmIixoLmxpYnJhcmllcyksZmUoKSxNZSgibmdGb3JPZiIsaC5saWJyYXJpZXMpLGZlKCks'@; put 'TWUoIm5nSWYiLGgubGlicmFyaWVzUGFnaW5nKSxmZSgyKSxNZSgibmdJZiIsaC5udWxsVmFyaWFibGVzKSxmZSgpLE1lKCJuZ0lmIixoLm51bGxWYXJpYWJsZXMpLGZlKCksZmkoImNsck1vZGFsT3BlbiIsaC5vcGVuRG93bmxvYWQpLE1lKCJjbHJNb2RhbFNpemUiLCJtZCIpLGZlKDgpLGZp'@; put 'KCJuZ01vZGVsIixoLmRvd25sb2FkRm9ybWF0KSxmZSgxOCksTWUoImlkIixoLnRhYmxlVGl0bGUpLGZlKDIpLGZpKCJjbHJNb2RhbE9wZW4iLGgud2ViUXVlcnkpLE1lKCJjbHJNb2RhbFNpemUiLCJsZyIpLGZlKDEyKSxNZSgiY2hlY2tlZCIsaC53ZWJRdWVyeVRhYiksZmUoNCksTWUoImNo'@; put 'ZWNrZWQiLCFoLndlYlF1ZXJ5VGFiKSxmZSg0KSxNZSgidmFsdWUiLGgud2ViUXVlcnlUZXh0KSxmZSg0KSxNZSgibmd4Q2xpcGJvYXJkIixmKSxmZSg1KSxmaSgiY2xyTW9kYWxPcGVuIixoLmZpbHRlciksTWUoImNsck1vZGFsU2l6ZSIsInhsIikoImNsck1vZGFsQ2xvc2FibGUiLCExKSxm'@; put 'ZSg0KSxMcigiICIsaC5saWJUYWIsIiAiKSxmZSgyKSxNZSgibmdJZiIsaC5maWx0ZXIpLGZlKDYpLE1lKCJjbHJMb2FkaW5nIixoLnN1Ym1pdExvYWRpbmcpLGZlKDIpLGZpKCJjbHJNb2RhbE9wZW4iLGgucXVlcnlFcnIpLGZlKDUpLFNyKGgucXVlcnlFcnJNZXNzYWdlKSxmZSg2KSxNZSgi'@; put 'bmdJZiIsaC5sb2FkaW5nVGFibGVWaWV3KSxmZSgpLE1lKCJuZ0lmIiwhaC5sb2FkaW5nVGFibGVWaWV3KSxmZSgpLGZpKCJvcGVuIixoLmRhdGFzZXRJbmZvKSxNZSgiZHNtZXRhIixoLmRzbWV0YSkoInZlcnNpb25zIixoLnZlcnNpb25zKSxmZSgpLGZpKCJ2aWV3Ym94TW9kYWwiLGgudmll'@; put 'd2JveE9wZW4pfX0sZGVwZW5kZW5jaWVzOlskNmUsUXMsYmEseDIsZHAseUR0LGw3LEQyLEkyLEdsLE1kLGsyLHRsLHM3LFdvLHdwLEFoLFBkLGhnLE9sLHJ1LFl1LFYwLFAyLEgyLGNvLGNkZSxJZCxGYix4aCxZMSxFNyxaYixyTyxzZyxnNyxtNyxQYix2NyxiNyx5NyxSZCwkZyxhNCxxNmUs'@; put 'eU8sbnRlLEV3LGk0LFE2ZSx3RHRdLGVuY2Fwc3VsYXRpb246Mn0pfX1yZXR1cm4gY30pKCk7Y29uc3Qga0l0PVt7cGF0aDoiIixjb21wb25lbnQ6Y2t0LGNoaWxkcmVuOlt7cGF0aDoiIixwYXRoTWF0Y2g6ImZ1bGwiLHJlZGlyZWN0VG86ImRhdGEifSx7cGF0aDoiZGF0YSIsY29tcG9uZW50'@; put 'OiROfSx7cGF0aDoiZGF0YSIsY29tcG9uZW50OiROfSx7cGF0aDoiZGF0YS86bGliTWVtLzpmaWx0ZXJJZCIsY29tcG9uZW50OiROfSx7cGF0aDoiZGF0YS86bGliTWVtIixjb21wb25lbnQ6JE59LHtwYXRoOiJsaW5lYWdlIixjb21wb25lbnQ6R059LHtwYXRoOiJsaW5lYWdlLzp0YWJsZWlk'@; put 'LzpkaXJlY3Rpb24iLGNvbXBvbmVudDpHTn0se3BhdGg6ImxpbmVhZ2UvY29sdW1uLzpjb2x1cmkvOmRpcmVjdGlvbiIsY29tcG9uZW50OkdOfSx7cGF0aDoibGluZWFnZS9jb2x1bW4vOmNvbHVyaS86ZGlyZWN0aW9uLzpyZWxvYWQiLGNvbXBvbmVudDpHTn0se3BhdGg6InZpeWEtYXBpLWV4'@; put 'cGxvcmVyIixjb21wb25lbnQ6Z0R0fSx7cGF0aDoibWV0YWRhdGEiLGNvbXBvbmVudDpxdGV9LHtwYXRoOiJtZXRhZGF0YS9vYmplY3QvOm9iamVjdElEIixjb21wb25lbnQ6cXRlfSx7cGF0aDoibWV0YWRhdGEvb2JqZWN0LzpvYmplY3RJRC86b2JqZWN0TmFtZSIsY29tcG9uZW50OnF0ZX0s'@; put 'e3BhdGg6InVzZXJuYXYiLGNvbXBvbmVudDpsa3QsY2hpbGRyZW46W3twYXRoOiIiLHBhdGhNYXRjaDoiZnVsbCIscmVkaXJlY3RUbzoiZ3JvdXBzIn0se3BhdGg6InVzZXJzIixjb21wb25lbnQ6ajdlfSx7cGF0aDoidXNlcnMvOnVyaSIsY29tcG9uZW50Omo3ZX0se3BhdGg6Imdyb3VwcyIs'@; put 'Y29tcG9uZW50Onk4ZX0se3BhdGg6Imdyb3Vwcy86dXJpIixjb21wb25lbnQ6eThlfSx7cGF0aDoicm9sZXMiLGNvbXBvbmVudDpCN2V9LHtwYXRoOiJyb2xlcy86dXJpIixjb21wb25lbnQ6QjdlfV19XX1dO2xldCBESXQ9KCgpPT57Y2xhc3MgY3tzdGF0aWN7dGhpcy5cdTAyNzVmYWM9ZnVu'@; put 'Y3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKX19c3RhdGlje3RoaXMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9KX1zdGF0aWN7dGhpcy5cdTAyNzVpbmo9QXIoe2ltcG9ydHM6W0JjLmZvckNoaWxkKGtJdCksQmNdfSl9fXJldHVybiBjfSkoKSxJSXQ9KCgpPT57Y2xhc3MgY3tzdGF0aWN7dGhpcy5c'@; put 'dTAyNzVmYWM9ZnVuY3Rpb24oZCl7cmV0dXJuIG5ldyhkfHxjKX19c3RhdGlje3RoaXMuXHUwMjc1bW9kPUFpKHt0eXBlOmN9KX1zdGF0aWN7dGhpcy5cdTAyNzVpbmo9QXIoe2ltcG9ydHM6W3Q4ZSxMYSxESXQsYkR0LGtjLEIwLFo5LFc5LHh3LFRBLGl0ZSxjZl19KX19cmV0dXJuIGN9KSgp'@; put 'O2NvbnN0IExJdD1CYy5mb3JSb290KFt7cGF0aDoiIixyZWRpcmVjdFRvOiJob21lIixwYXRoTWF0Y2g6ImZ1bGwifSx7cGF0aDoidmlldyIsbG9hZENoaWxkcmVuOigpPT5JSXR9LHtwYXRoOiJyZXZpZXciLGNvbXBvbmVudDpBd3QsY2hpbGRyZW46W3twYXRoOiIiLHBhdGhNYXRjaDoiZnVs'@; put 'bCIscmVkaXJlY3RUbzoidG9hcHByb3ZlIn0se3BhdGg6IiIsbG9hZENoaWxkcmVuOigpPT5Ud3R9XX0se3BhdGg6ImxpY2Vuc2luZyIsbG9hZENoaWxkcmVuOigpPT5PYnR9LHtwYXRoOiJob21lIixsb2FkQ2hpbGRyZW46KCk9Pkt5dH0se3BhdGg6ImVkaXRvciIsbG9hZENoaWxkcmVuOigp'@; put 'PT5WOXR9LHtwYXRoOiJzdGFnZSIsbG9hZENoaWxkcmVuOigpPT5Od3R9LHtwYXRoOiJzeXN0ZW0iLGxvYWRDaGlsZHJlbjooKT0+cXd0fSx7cGF0aDoiZGVwbG95Iixsb2FkQ2hpbGRyZW46KCk9PlNYZX0se3BhdGg6IioqIixjb21wb25lbnQ6bktlfV0se3VzZUhhc2g6ITB9KTtsZXQgT0l0'@; put 'PSgoKT0+e2NsYXNzIGN7c3RhdGlje3RoaXMuXHUwMjc1ZmFjPWZ1bmN0aW9uKGQpe3JldHVybiBuZXcoZHx8Yyl9fXN0YXRpY3t0aGlzLlx1MDI3NW1vZD1BaSh7dHlwZTpjLGJvb3RzdHJhcDpbaEdlXX0pfXN0YXRpY3t0aGlzLlx1MDI3NWluaj1Bcih7cHJvdmlkZXJzOlt1TCxJaCxvdGUs'@; put 'SlJdLGltcG9ydHM6W3RLZSxIc2Usa2MsWU9lLHdBZSxMSXQseHcsQjAsVzksVEEsY2YsR2t0XX0pfX1yZXR1cm4gY30pKCk7WkNlKCkuYm9vdHN0cmFwTW9kdWxlKE9JdCl9LDM3MzQ6KG1vZHVsZSxfX3VudXNlZF93ZWJwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyk9Pnt2YXIg'@; put 'X2FzeW5jVG9HZW5lcmF0b3I9X193ZWJwYWNrX3JlcXVpcmVfXygyOTI5MykuZGVmYXVsdCxfd3JhcEFzeW5jR2VuZXJhdG9yPV9fd2VicGFja19yZXF1aXJlX18oNDI5NTgpLmRlZmF1bHQsX2F3YWl0QXN5bmNHZW5lcmF0b3I9X193ZWJwYWNrX3JlcXVpcmVfXyg1MzM0NCkuZGVmYXVsdCxf'@; put 'YXN5bmNHZW5lcmF0b3JEZWxlZ2F0ZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDkzNTEzKS5kZWZhdWx0LF9hc3luY0l0ZXJhdG9yPV9fd2VicGFja19yZXF1aXJlX18oODI4ODEpLmRlZmF1bHQsYjtzZWxmLGI9KCk9PigoKT0+e3ZhciBfX3dlYnBhY2tfbW9kdWxlc19fPXszMDYyOihjZSxKLGIp'@; put 'PT57InVzZSBzdHJpY3QiO3ZhciBEPWIoODc2NCkuQnVmZmVyO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLkNzdkZvcm1hdHRlclN0cmVhbT12b2lkIDA7Y29uc3QgXz1iKDI4MzApLHA9Yig5OTQ3KTtKLkNzdkZvcm1hdHRlclN0cmVhbT1jbGFz'@; put 'cyBOIGV4dGVuZHMgXy5UcmFuc2Zvcm17Y29uc3RydWN0b3IoRil7c3VwZXIoe3dyaXRhYmxlT2JqZWN0TW9kZTpGLm9iamVjdE1vZGV9KSx0aGlzLmhhc1dyaXR0ZW5CT009ITEsdGhpcy5mb3JtYXR0ZXJPcHRpb25zPUYsdGhpcy5yb3dGb3JtYXR0ZXI9bmV3IHAuUm93Rm9ybWF0dGVyKEYp'@; put 'LHRoaXMuaGFzV3JpdHRlbkJPTT0hRi53cml0ZUJPTX10cmFuc2Zvcm0oRil7cmV0dXJuIHRoaXMucm93Rm9ybWF0dGVyLnJvd1RyYW5zZm9ybT1GLHRoaXN9X3RyYW5zZm9ybShGLEgsUil7bGV0IGo9ITE7dHJ5e3RoaXMuaGFzV3JpdHRlbkJPTXx8KHRoaXMucHVzaCh0aGlzLmZvcm1hdHRl'@; put 'ck9wdGlvbnMuQk9NKSx0aGlzLmhhc1dyaXR0ZW5CT009ITApLHRoaXMucm93Rm9ybWF0dGVyLmZvcm1hdChGLChQLEwpPT5QPyhqPSEwLFIoUCkpOihMJiZMLmZvckVhY2goWT0+e3RoaXMucHVzaChELmZyb20oWSwidXRmOCIpKX0pLGo9ITAsUigpKSl9Y2F0Y2goUCl7aWYoail0aHJvdyBQ'@; put 'O1IoUCl9fV9mbHVzaChGKXt0aGlzLnJvd0Zvcm1hdHRlci5maW5pc2goKEgsUik9Pkg/RihIKTooUiYmUi5mb3JFYWNoKGo9Pnt0aGlzLnB1c2goRC5mcm9tKGosInV0ZjgiKSl9KSxGKCkpKX19fSw2NzYzOihjZSxKKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwi'@; put 'X19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5Gb3JtYXR0ZXJPcHRpb25zPXZvaWQgMCxKLkZvcm1hdHRlck9wdGlvbnM9Y2xhc3MgYntjb25zdHJ1Y3RvcihfPXt9KXt2YXIgcDt0aGlzLm9iamVjdE1vZGU9ITAsdGhpcy5kZWxpbWl0ZXI9IiwiLHRoaXMucm93RGVsaW1pdGVyPSJcbiIsdGhp'@; put 'cy5xdW90ZT0nIicsdGhpcy5lc2NhcGU9dGhpcy5xdW90ZSx0aGlzLnF1b3RlQ29sdW1ucz0hMSx0aGlzLnF1b3RlSGVhZGVycz10aGlzLnF1b3RlQ29sdW1ucyx0aGlzLmhlYWRlcnM9bnVsbCx0aGlzLmluY2x1ZGVFbmRSb3dEZWxpbWl0ZXI9ITEsdGhpcy53cml0ZUJPTT0hMSx0aGlzLkJP'@; put 'TT0iXHVmZWZmIix0aGlzLmFsd2F5c1dyaXRlSGVhZGVycz0hMSxPYmplY3QuYXNzaWduKHRoaXMsX3x8e30pLHR5cGVvZiBfPy5xdW90ZUhlYWRlcnM+InUiJiYodGhpcy5xdW90ZUhlYWRlcnM9dGhpcy5xdW90ZUNvbHVtbnMpLCEwPT09Xz8ucXVvdGU/dGhpcy5xdW90ZT0nIic6ITE9PT1f'@; put 'Py5xdW90ZSYmKHRoaXMucXVvdGU9IiIpLCJzdHJpbmciIT10eXBlb2YgXz8uZXNjYXBlJiYodGhpcy5lc2NhcGU9dGhpcy5xdW90ZSksdGhpcy5zaG91bGRXcml0ZUhlYWRlcnM9ISF0aGlzLmhlYWRlcnMmJihudWxsPT09KHA9Xy53cml0ZUhlYWRlcnMpfHx2b2lkIDA9PT1wfHxwKSx0aGlz'@; put 'LmhlYWRlcnM9QXJyYXkuaXNBcnJheSh0aGlzLmhlYWRlcnMpP3RoaXMuaGVhZGVyczpudWxsLHRoaXMuZXNjYXBlZFF1b3RlPWAke3RoaXMuZXNjYXBlfSR7dGhpcy5xdW90ZX1gfX19LDUxODY6ZnVuY3Rpb24oY2UsSixiKXsidXNlIHN0cmljdCI7dmFyIEQ9dGhpcyYmdGhpcy5fX2ltcG9y'@; put 'dERlZmF1bHR8fGZ1bmN0aW9uKEYpe3JldHVybiBGJiZGLl9fZXNNb2R1bGU/Rjp7ZGVmYXVsdDpGfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEouRmllbGRGb3JtYXR0ZXI9dm9pZCAwO2NvbnN0IF89RChiKDgwOTQpKSxwPUQoYig5NzIyKSks'@; put 'Tj1EKGIoMTY1OCkpO0ouRmllbGRGb3JtYXR0ZXI9Y2xhc3Mgd3tjb25zdHJ1Y3RvcihIKXt0aGlzLl9oZWFkZXJzPW51bGwsdGhpcy5mb3JtYXR0ZXJPcHRpb25zPUgsbnVsbCE9PUguaGVhZGVycyYmKHRoaXMuaGVhZGVycz1ILmhlYWRlcnMpLHRoaXMuUkVQTEFDRV9SRUdFWFA9bmV3IFJl'@; put 'Z0V4cChILnF1b3RlLCJnIik7Y29uc3QgUj1gWyR7SC5kZWxpbWl0ZXJ9JHtOLmRlZmF1bHQoSC5yb3dEZWxpbWl0ZXIpfXxccnxcbl1gO3RoaXMuRVNDQVBFX1JFR0VYUD1uZXcgUmVnRXhwKFIpfXNldCBoZWFkZXJzKEgpe3RoaXMuX2hlYWRlcnM9SH1zaG91bGRRdW90ZShILFIpe2NvbnN0'@; put 'IGo9Uj90aGlzLmZvcm1hdHRlck9wdGlvbnMucXVvdGVIZWFkZXJzOnRoaXMuZm9ybWF0dGVyT3B0aW9ucy5xdW90ZUNvbHVtbnM7cmV0dXJuIF8uZGVmYXVsdChqKT9qOkFycmF5LmlzQXJyYXkoaik/altIXTpudWxsIT09dGhpcy5faGVhZGVycyYmalt0aGlzLl9oZWFkZXJzW0hdXX1mb3Jt'@; put 'YXQoSCxSLGope2NvbnN0IFA9YCR7cC5kZWZhdWx0KEgpPyIiOkh9YC5yZXBsYWNlKC9cMC9nLCIiKSx7Zm9ybWF0dGVyT3B0aW9uczpMfT10aGlzO3JldHVybiIiIT09TC5xdW90ZSYmLTEhPT1QLmluZGV4T2YoTC5xdW90ZSk/dGhpcy5xdW90ZUZpZWxkKFAucmVwbGFjZSh0aGlzLlJFUExB'@; put 'Q0VfUkVHRVhQLEwuZXNjYXBlZFF1b3RlKSk6LTEhPT1QLnNlYXJjaCh0aGlzLkVTQ0FQRV9SRUdFWFApfHx0aGlzLnNob3VsZFF1b3RlKFIsaik/dGhpcy5xdW90ZUZpZWxkKFApOlB9cXVvdGVGaWVsZChIKXtjb25zdHtxdW90ZTpSfT10aGlzLmZvcm1hdHRlck9wdGlvbnM7cmV0dXJuYCR7'@; put 'Un0ke0h9JHtSfWB9fX0sNzE4MTpmdW5jdGlvbihjZSxKLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgRD10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oSCl7cmV0dXJuIEgmJkguX19lc01vZHVsZT9IOntkZWZhdWx0Okh9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01v'@; put 'ZHVsZSIse3ZhbHVlOiEwfSksSi5Sb3dGb3JtYXR0ZXI9dm9pZCAwO2NvbnN0IF89RChiKDg0MjMpKSxwPUQoYigyMzA3KSksTj1iKDUxODYpLHc9Yig0NjkyKTtjbGFzcyBGe2NvbnN0cnVjdG9yKFIpe3RoaXMucm93Q291bnQ9MCx0aGlzLmZvcm1hdHRlck9wdGlvbnM9Uix0aGlzLmZpZWxk'@; put 'Rm9ybWF0dGVyPW5ldyBOLkZpZWxkRm9ybWF0dGVyKFIpLHRoaXMuaGVhZGVycz1SLmhlYWRlcnMsdGhpcy5zaG91bGRXcml0ZUhlYWRlcnM9Ui5zaG91bGRXcml0ZUhlYWRlcnMsdGhpcy5oYXNXcml0dGVuSGVhZGVycz0hMSxudWxsIT09dGhpcy5oZWFkZXJzJiYodGhpcy5maWVsZEZvcm1h'@; put 'dHRlci5oZWFkZXJzPXRoaXMuaGVhZGVycyksUi50cmFuc2Zvcm0mJih0aGlzLnJvd1RyYW5zZm9ybT1SLnRyYW5zZm9ybSl9c3RhdGljIGlzUm93SGFzaEFycmF5KFIpe3JldHVybiEhQXJyYXkuaXNBcnJheShSKSYmQXJyYXkuaXNBcnJheShSWzBdKSYmMj09PVJbMF0ubGVuZ3RofXN0YXRp'@; put 'YyBpc1Jvd0FycmF5KFIpe3JldHVybiBBcnJheS5pc0FycmF5KFIpJiYhdGhpcy5pc1Jvd0hhc2hBcnJheShSKX1zdGF0aWMgZ2F0aGVySGVhZGVycyhSKXtyZXR1cm4gRi5pc1Jvd0hhc2hBcnJheShSKT9SLm1hcChqPT5qWzBdKTpBcnJheS5pc0FycmF5KFIpP1I6T2JqZWN0LmtleXMoUil9'@; put 'c3RhdGljIGNyZWF0ZVRyYW5zZm9ybShSKXtyZXR1cm4gdy5pc1N5bmNUcmFuc2Zvcm0oUik/KGosUCk9PntsZXQgTD1udWxsO3RyeXtMPVIoail9Y2F0Y2goWSl7cmV0dXJuIFAoWSl9cmV0dXJuIFAobnVsbCxMKX06KGosUCk9PntSKGosUCl9fXNldCByb3dUcmFuc2Zvcm0oUil7aWYoIV8u'@; put 'ZGVmYXVsdChSKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgdHJhbnNmb3JtIHNob3VsZCBiZSBhIGZ1bmN0aW9uIik7dGhpcy5fcm93VHJhbnNmb3JtPUYuY3JlYXRlVHJhbnNmb3JtKFIpfWZvcm1hdChSLGope3RoaXMuY2FsbFRyYW5zZm9ybWVyKFIsKFAsTCk9PntpZihQKXJldHVybiBq'@; put 'KFApO2lmKCFSKXJldHVybiBqKG51bGwpO2NvbnN0IFk9W107aWYoTCl7Y29uc3R7c2hvdWxkRm9ybWF0Q29sdW1uczpCLGhlYWRlcnM6V309dGhpcy5jaGVja0hlYWRlcnMoTCk7aWYodGhpcy5zaG91bGRXcml0ZUhlYWRlcnMmJlcmJiF0aGlzLmhhc1dyaXR0ZW5IZWFkZXJzJiYoWS5wdXNo'@; put 'KHRoaXMuZm9ybWF0Q29sdW1ucyhXLCEwKSksdGhpcy5oYXNXcml0dGVuSGVhZGVycz0hMCksQil7Y29uc3QgWj10aGlzLmdhdGhlckNvbHVtbnMoTCk7WS5wdXNoKHRoaXMuZm9ybWF0Q29sdW1ucyhaLCExKSl9fXJldHVybiBqKG51bGwsWSl9KX1maW5pc2goUil7Y29uc3Qgaj1bXTtpZih0'@; put 'aGlzLmZvcm1hdHRlck9wdGlvbnMuYWx3YXlzV3JpdGVIZWFkZXJzJiYwPT09dGhpcy5yb3dDb3VudCl7aWYoIXRoaXMuaGVhZGVycylyZXR1cm4gUihuZXcgRXJyb3IoImBhbHdheXNXcml0ZUhlYWRlcnNgIG9wdGlvbiBpcyBzZXQgdG8gdHJ1ZSBidXQgYGhlYWRlcnNgIG9wdGlvbiBub3Qg'@; put 'cHJvdmlkZWQuIikpO2oucHVzaCh0aGlzLmZvcm1hdENvbHVtbnModGhpcy5oZWFkZXJzLCEwKSl9cmV0dXJuIHRoaXMuZm9ybWF0dGVyT3B0aW9ucy5pbmNsdWRlRW5kUm93RGVsaW1pdGVyJiZqLnB1c2godGhpcy5mb3JtYXR0ZXJPcHRpb25zLnJvd0RlbGltaXRlciksUihudWxsLGopfWNo'@; put 'ZWNrSGVhZGVycyhSKXtpZih0aGlzLmhlYWRlcnMpcmV0dXJue3Nob3VsZEZvcm1hdENvbHVtbnM6ITAsaGVhZGVyczp0aGlzLmhlYWRlcnN9O2NvbnN0IGo9Ri5nYXRoZXJIZWFkZXJzKFIpO3JldHVybiB0aGlzLmhlYWRlcnM9aix0aGlzLmZpZWxkRm9ybWF0dGVyLmhlYWRlcnM9aix0aGlz'@; put 'LnNob3VsZFdyaXRlSGVhZGVycz97c2hvdWxkRm9ybWF0Q29sdW1uczohcC5kZWZhdWx0KGosUiksaGVhZGVyczpqfTp7c2hvdWxkRm9ybWF0Q29sdW1uczohMCxoZWFkZXJzOm51bGx9fWdhdGhlckNvbHVtbnMoUil7aWYobnVsbD09PXRoaXMuaGVhZGVycyl0aHJvdyBuZXcgRXJyb3IoIkhl'@; put 'YWRlcnMgaXMgY3VycmVudGx5IG51bGwiKTtyZXR1cm4gQXJyYXkuaXNBcnJheShSKT9GLmlzUm93SGFzaEFycmF5KFIpP3RoaXMuaGVhZGVycy5tYXAoKGosUCk9Pntjb25zdCBMPVJbUF07cmV0dXJuIEw/TFsxXToiIn0pOkYuaXNSb3dBcnJheShSKSYmIXRoaXMuc2hvdWxkV3JpdGVIZWFk'@; put 'ZXJzP1I6dGhpcy5oZWFkZXJzLm1hcCgoaixQKT0+UltQXSk6dGhpcy5oZWFkZXJzLm1hcChqPT5SW2pdKX1jYWxsVHJhbnNmb3JtZXIoUixqKXtyZXR1cm4gdGhpcy5fcm93VHJhbnNmb3JtP3RoaXMuX3Jvd1RyYW5zZm9ybShSLGopOmoobnVsbCxSKX1mb3JtYXRDb2x1bW5zKFIsail7Y29u'@; put 'c3QgUD1SLm1hcCgoWSxCKT0+dGhpcy5maWVsZEZvcm1hdHRlci5mb3JtYXQoWSxCLGopKS5qb2luKHRoaXMuZm9ybWF0dGVyT3B0aW9ucy5kZWxpbWl0ZXIpLHtyb3dDb3VudDpMfT10aGlzO3JldHVybiB0aGlzLnJvd0NvdW50Kz0xLEw/W3RoaXMuZm9ybWF0dGVyT3B0aW9ucy5yb3dEZWxp'@; put 'bWl0ZXIsUF0uam9pbigiIik6UH19Si5Sb3dGb3JtYXR0ZXI9Rn0sOTk0NzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5GaWVsZEZvcm1hdHRlcj1KLlJvd0Zvcm1hdHRlcj12b2lkIDA7dmFyIEQ9Yig3'@; put 'MTgxKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiUm93Rm9ybWF0dGVyIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRC5Sb3dGb3JtYXR0ZXJ9fSk7dmFyIF89Yig1MTg2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiRmllbGRGb3JtYXR0ZXIiLHtlbnVtZXJhYmxl'@; put 'OiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBfLkZpZWxkRm9ybWF0dGVyfX0pfSw3MjAxOmZ1bmN0aW9uKGNlLEosYil7InVzZSBzdHJpY3QiO3ZhciBEPWIoODc2NCkuQnVmZmVyLF89dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKEIsVyxaLFgp'@; put 'e3ZvaWQgMD09PVgmJihYPVopLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShCLFgse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFdbWl19fSl9OmZ1bmN0aW9uKEIsVyxaLFgpe3ZvaWQgMD09PVgmJihYPVopLEJbWF09V1taXX0pLHA9dGhpcyYmdGhpcy5fX3NldE1vZHVsZURl'@; put 'ZmF1bHR8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKEIsVyl7T2JqZWN0LmRlZmluZVByb3BlcnR5KEIsImRlZmF1bHQiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOld9KX06ZnVuY3Rpb24oQixXKXtCLmRlZmF1bHQ9V30pLE49dGhpcyYmdGhpcy5fX2ltcG9ydFN0YXJ8fGZ1bmN0aW9uKEIpe2lm'@; put 'KEImJkIuX19lc01vZHVsZSlyZXR1cm4gQjt2YXIgVz17fTtpZihudWxsIT1CKWZvcih2YXIgWiBpbiBCKSJkZWZhdWx0IiE9PVomJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChCLFopJiZfKFcsQixaKTtyZXR1cm4gcChXLEIpLFd9LHc9dGhpcyYmdGhpcy5fX2V4cG9y'@; put 'dFN0YXJ8fGZ1bmN0aW9uKEIsVyl7Zm9yKHZhciBaIGluIEIpImRlZmF1bHQiIT09WiYmIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChXLFopJiZfKFcsQixaKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEoud3JpdGVUb1Bh'@; put 'dGg9Si53cml0ZVRvU3RyaW5nPUoud3JpdGVUb0J1ZmZlcj1KLndyaXRlVG9TdHJlYW09Si53cml0ZT1KLmZvcm1hdD1KLkZvcm1hdHRlck9wdGlvbnM9Si5Dc3ZGb3JtYXR0ZXJTdHJlYW09dm9pZCAwO2NvbnN0IEY9Yig5NTM5KSxIPWIoMjgzMCksUj1OKGIoODY0NikpLGo9Yig2NzYzKSxQ'@; put 'PWIoMzA2Mik7dyhiKDQ2OTIpLEopO3ZhciBMPWIoMzA2Mik7T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIkNzdkZvcm1hdHRlclN0cmVhbSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEwuQ3N2Rm9ybWF0dGVyU3RyZWFtfX0pO3ZhciBZPWIoNjc2Myk7T2JqZWN0LmRl'@; put 'ZmluZVByb3BlcnR5KEosIkZvcm1hdHRlck9wdGlvbnMiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLkZvcm1hdHRlck9wdGlvbnN9fSksSi5mb3JtYXQ9Qj0+bmV3IFAuQ3N2Rm9ybWF0dGVyU3RyZWFtKG5ldyBqLkZvcm1hdHRlck9wdGlvbnMoQikpLEoud3JpdGU9'@; put 'KEIsVyk9Pntjb25zdCBaPUouZm9ybWF0KFcpLFg9Ri5wcm9taXNpZnkoKFEscSk9PntaLndyaXRlKFEsdm9pZCAwLHEpfSk7cmV0dXJuIEIucmVkdWNlKChRLHEpPT5RLnRoZW4oKCk9PlgocSkpLFByb21pc2UucmVzb2x2ZSgpKS50aGVuKCgpPT5aLmVuZCgpKS5jYXRjaChRPT57Wi5lbWl0'@; put 'KCJlcnJvciIsUSl9KSxafSxKLndyaXRlVG9TdHJlYW09KEIsVyxaKT0+Si53cml0ZShXLFopLnBpcGUoQiksSi53cml0ZVRvQnVmZmVyPShCLFc9e30pPT57Y29uc3QgWj1bXSxYPW5ldyBILldyaXRhYmxlKHt3cml0ZShRLHEsdGUpe1oucHVzaChRKSx0ZSgpfX0pO3JldHVybiBuZXcgUHJv'@; put 'bWlzZSgoUSxxKT0+e1gub24oImVycm9yIixxKS5vbigiZmluaXNoIiwoKT0+UShELmNvbmNhdChaKSkpLEoud3JpdGUoQixXKS5waXBlKFgpfSl9LEoud3JpdGVUb1N0cmluZz0oQixXKT0+Si53cml0ZVRvQnVmZmVyKEIsVykudGhlbihaPT5aLnRvU3RyaW5nKCkpLEoud3JpdGVUb1BhdGg9'@; put 'KEIsVyxaKT0+e2NvbnN0IFg9Ui5jcmVhdGVXcml0ZVN0cmVhbShCLHtlbmNvZGluZzoidXRmOCJ9KTtyZXR1cm4gSi53cml0ZShXLFopLnBpcGUoWCl9fSw0NjkyOihjZSxKKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSks'@; put 'Si5pc1N5bmNUcmFuc2Zvcm09dm9pZCAwLEouaXNTeW5jVHJhbnNmb3JtPWI9PjE9PT1iLmxlbmd0aH0sMjY1NjpmdW5jdGlvbihjZSxKLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgRD10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oUil7cmV0dXJuIFImJlIuX19lc01vZHVsZT9S'@; put 'OntkZWZhdWx0OlJ9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5kZWNvZGVUb2tlbj1KLmhhc1Rva2VuRXhwaXJlZD1KLmlzUmVmcmVzaFRva2VuRXhwaXJpbmc9Si5pc0FjY2Vzc1Rva2VuRXhwaXJpbmc9dm9pZCAwO2NvbnN0IF89RChiKDYy'@; put 'NDUpKTtmdW5jdGlvbiBGKFIsail7cmV0dXJuKDAsXy5kZWZhdWx0KShSKS5leHAtKG5ldyBEYXRlKS52YWx1ZU9mKCkvMWUzPD1qfUouaXNBY2Nlc3NUb2tlbkV4cGlyaW5nPWZ1bmN0aW9uIHAoUixqPTM2MDApe3JldHVybiFSfHxGKFIsail9LEouaXNSZWZyZXNoVG9rZW5FeHBpcmluZz1m'@; put 'dW5jdGlvbiBOKFIsaj0zMCl7cmV0dXJuIVJ8fEYoUixqKX0sSi5oYXNUb2tlbkV4cGlyZWQ9ZnVuY3Rpb24gdyhSKXtyZXR1cm4hUnx8RihSLDApfSxKLmRlY29kZVRva2VuPWZ1bmN0aW9uIEgoUil7bGV0IGo7dHJ5e2o9KDAsXy5kZWZhdWx0KShSKX1jYXRjaHt0aHJvdyBuZXcgRXJyb3Io'@; put 'IkludmFsaWQgdG9rZW4gc3VwcGxpZWQuIil9cmV0dXJuIGp9fSw2Nzk5OmZ1bmN0aW9uKGNlLEosYil7InVzZSBzdHJpY3QiO3ZhciBEPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihwLE4sdyxGKXt2b2lkIDA9PT1GJiYoRj13KSxPYmplY3Qu'@; put 'ZGVmaW5lUHJvcGVydHkocCxGLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBOW3ddfX0pfTpmdW5jdGlvbihwLE4sdyxGKXt2b2lkIDA9PT1GJiYoRj13KSxwW0ZdPU5bd119KSxfPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihwLE4pe2Zvcih2YXIgdyBp'@; put 'biBwKSJkZWZhdWx0IiE9PXcmJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTix3KSYmRChOLHAsdyl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxfKGIoMjY1NiksSil9LDMyNTk6KGNlLEopPT57InVzZSBzdHJpY3QiO09i'@; put 'amVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLnByZWZpeE1lc3NhZ2U9dm9pZCAwLEoucHJlZml4TWVzc2FnZT0oRCxfKT0+e2lmKCJvYmplY3QiPT10eXBlb2YgRClpZihELmhhc093blByb3BlcnR5KCJtZXNzYWdlIikpRC5tZXNzYWdlPV8rRC5tZXNz'@; put 'YWdlO2Vsc2V7aWYoIUQuaGFzT3duUHJvcGVydHkoImJvZHkiKSlyZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEQpLHttZXNzYWdlOl99KTtpZigib2JqZWN0Ij09dHlwZW9mIEQuYm9keSYmKEQubWVzc2FnZT1ELmJvZHkubWVzc2FnZT9fK0QuYm9keS5tZXNzYWdlOl8p'@; put 'LCJzdHJpbmciPT10eXBlb2YgRC5ib2R5KXtsZXQgcDt0cnl7cD1KU09OLnBhcnNlKEQuYm9keSl9Y2F0Y2h7cmV0dXJuIEQubWVzc2FnZT1fLER9cmV0dXJuIHAubWVzc2FnZT1wLm1lc3NhZ2U/XytwLm1lc3NhZ2U6XyxELmJvZHk9cCxEfX1yZXR1cm4ic3RyaW5nIj09dHlwZW9mIEQmJihE'@; put 'PV8rRCksRH19LDk3Nzg6ZnVuY3Rpb24oY2UsSixiKXsidXNlIHN0cmljdCI7dmFyIEQ9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKHAsTix3LEYpe3ZvaWQgMD09PUYmJihGPXcpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwLEYse2VudW1lcmFi'@; put 'bGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE5bd119fSl9OmZ1bmN0aW9uKHAsTix3LEYpe3ZvaWQgMD09PUYmJihGPXcpLHBbRl09Tlt3XX0pLF89dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKHAsTil7Zm9yKHZhciB3IGluIHApImRlZmF1bHQiIT09dyYmIU9iamVjdC5w'@; put 'cm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChOLHcpJiZEKE4scCx3KX07T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLF8oYigzMjU5KSxKKSxfKGIoMTA2NCksSil9LDEwNjQ6KGNlLEosYik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVBy'@; put 'b3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEouU2VydmVyVHlwZUVycm9yPXZvaWQgMDtjb25zdCBEPWIoMzkwMCk7Y2xhc3MgXyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKE49W10pe2xldCB3PShOPVsuLi5uZXcgU2V0KE4pXSkubGVuZ3RoP04uam9pbigiLCAiKS50cmlt'@; put 'KCk6W0QuU2VydmVyVHlwZS5TYXNWaXlhLEQuU2VydmVyVHlwZS5TYXM5LEQuU2VydmVyVHlwZS5TYXNqc10uam9pbigiLCAiKS50cmltKCk7dz13LnJlcGxhY2UoLyxccyhbXixdKikkLywiIGFuZCAkMSIpLHN1cGVyKGBJbnZhbGlkIHNlcnZlciB0eXBlOiB2YWxpZCBvcHRpb24kezEhPT1O'@; put 'Lmxlbmd0aD8icyI6IiJ9ICR7MSE9PU4ubGVuZ3RoPyJhcmUiOiJpcyJ9ICR7d31gKSx0aGlzLm5hbWU9IlNlcnZlclR5cGVFcnJvciIsT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsXy5wcm90b3R5cGUpfX1KLlNlcnZlclR5cGVFcnJvcj1ffSwzOTA2OmZ1bmN0aW9uKGNlLEosYil7InVz'@; put 'ZSBzdHJpY3QiO3ZhciBEPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihSLGosUCxMKXtyZXR1cm4gbmV3KFB8fChQPVByb21pc2UpKShmdW5jdGlvbihCLFcpe2Z1bmN0aW9uIFoocSl7dHJ5e1EoTC5uZXh0KHEpKX1jYXRjaCh0ZSl7Vyh0ZSl9fWZ1bmN0aW9uIFgocSl7dHJ5e1Eo'@; put 'TC50aHJvdyhxKSl9Y2F0Y2godGUpe1codGUpfX1mdW5jdGlvbiBRKHEpe3EuZG9uZT9CKHEudmFsdWUpOmZ1bmN0aW9uIFkoQil7cmV0dXJuIEIgaW5zdGFuY2VvZiBQP0I6bmV3IFAoZnVuY3Rpb24oVyl7VyhCKX0pfShxLnZhbHVlKS50aGVuKFosWCl9USgoTD1MLmFwcGx5KFIsanx8W10p'@; put 'KS5uZXh0KCkpfSl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLnVwZGF0ZUNzdj1KLmNyZWF0ZUNzdj1KLnJlYWRDc3Y9dm9pZCAwO2NvbnN0IF89YigxNTU5KSxwPWIoNzIwMSk7Si5yZWFkQ3N2PVI9PkQodm9pZCAwLHZvaWQgMCx2b2lkIDAs'@; put 'ZnVuY3Rpb24qKCl7cmV0dXJuKHlpZWxkKDAsXy5yZWFkRmlsZSkoUikpLnNwbGl0KCJcbiIpLmZpbHRlcihQPT5QLmxlbmd0aCkubWFwKFA9PlAuc3BsaXQoIiwiKSl9KSxKLmNyZWF0ZUNzdj0oUixqLFApPT5EKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IEw9eWll'@; put 'bGQoMCxwLndyaXRlVG9TdHJpbmcpKGose2hlYWRlcnM6UH0pO3lpZWxkKDAsXy5jcmVhdGVGaWxlKShSLEwpfSksSi51cGRhdGVDc3Y9KFIsaixQLEwpPT5EKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IFk9eWllbGQgSChSLGosUCxMKTtpZihMKXtjb25zdCBCPTA9'@; put 'PT1ZLmxlbmd0aD8xOlkubGVuZ3RoLFc9UC5maW5kSW5kZXgoWj0+Wj09PUwpO1c+LTE/ai5zcGxpY2UoVywwLEIpOihQLnNwbGljZSgwLDAsTCksai5zcGxpY2UoMCwwLEIpKX1ZLnB1c2goaikseWllbGQoMCxKLmNyZWF0ZUNzdikoUixZLFApfSk7Y29uc3QgSD0oUixqLFAsTCk9PkQodm9p'@; put 'ZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7aWYoai5sZW5ndGghPT1QLmxlbmd0aCl7aWYoai5sZW5ndGg+UC5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJhIHJlY29yZCBjYW4gbm90IGhhdmUgbW9yZSBmaWVsZHMgdGhhbiBwcm92aWRlZCBjb2x1bW5zIik7aWYoIUx8fGoubGVuZ3Ro'@; put 'KzEhPT1QLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImEgcmVjb3JkIGNhbiBub3QgaGF2ZSBsZXNzIGZpZWxkcyB0aGFuIHByb3ZpZGVkIGNvbHVtbnMiKX1lbHNlIGlmKEwmJlAuaW5jbHVkZXMoTCkpdGhyb3cgbmV3IEVycm9yKCJhIHJlY29yZCBjYW4gbm90IGhhdmUgbW9yZSBmaWVsZHMg'@; put 'dGhhbiBwcm92aWRlZCBjb2x1bW5zIik7Y29uc3QgWT15aWVsZCgwLEoucmVhZENzdikoUikuY2F0Y2goVz0+W10pLEI9WVswXTtpZihCKXtpZihQLmxlbmd0aD5CLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIm51bWJlciBvZiBwcm92aWRlZCBjb2x1bW5zIGFyZSBncmVhdGVyIHRoYW4gbnVt'@; put 'YmVyIG9mIGV4aXN0aW5nIGNvbHVtbnMiKTtpZihQLmxlbmd0aDxCLmxlbmd0aCl7aWYoIUx8fFAubGVuZ3RoKzEhPT1CLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIm51bWJlciBvZiBwcm92aWRlZCBjb2x1bW5zIGFyZSBsZXNzIHRoYW4gbnVtYmVyIG9mIGV4aXN0aW5nIGNvbHVtbnMiKTtj'@; put 'b25zdCBXPUIuZmluZEluZGV4KFg9Plg9PT1MKSxaPVsuLi5QXTtpZighKFc+LTEpKXRocm93IG5ldyBFcnJvcigicHJvdmlkZWQgY29sdW1ucyBkb2VzIG5vdCBtYXRjaCBleGlzdGluZyBjb2x1bW5zIik7aWYoWi5zcGxpY2UoVywwLEwpLEpTT04uc3RyaW5naWZ5KFApIT09SlNPTi5zdHJp'@; put 'bmdpZnkoWikpdGhyb3cgbmV3IEVycm9yKCJwcm92aWRlZCBjb2x1bW5zIGRvZXMgbm90IG1hdGNoIGV4aXN0aW5nIGNvbHVtbnMiKX1lbHNle2lmKEpTT04uc3RyaW5naWZ5KFApIT09SlNPTi5zdHJpbmdpZnkoQikpdGhyb3cgbmV3IEVycm9yKCJwcm92aWRlZCBjb2x1bW5zIGRvZXMgbm90'@; put 'IG1hdGNoIGV4aXN0aW5nIGNvbHVtbnMiKTtpZihMJiYhUC5pbmNsdWRlcyhMKSl0aHJvdyBuZXcgRXJyb3IoImNhbiBub3QgYWRkIG5ldyBpZCB0byBleGlzdGluZyBkYXRhIil9fXJldHVybiBZfSl9LDE1NTk6ZnVuY3Rpb24oY2UsSixiKXsidXNlIHN0cmljdCI7dmFyIEQ9dGhpcyYmdGhp'@; put 'cy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKG0sQSxhZSxuZSl7dm9pZCAwPT09bmUmJihuZT1hZSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG0sbmUse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEFbYWVdfX0pfTpmdW5jdGlvbihtLEEsYWUs'@; put 'bmUpe3ZvaWQgMD09PW5lJiYobmU9YWUpLG1bbmVdPUFbYWVdfSksXz10aGlzJiZ0aGlzLl9fc2V0TW9kdWxlRGVmYXVsdHx8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24obSxBKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobSwiZGVmYXVsdCIse2VudW1lcmFibGU6ITAsdmFsdWU6QX0pfTpmdW5j'@; put 'dGlvbihtLEEpe20uZGVmYXVsdD1BfSkscD10aGlzJiZ0aGlzLl9faW1wb3J0U3Rhcnx8ZnVuY3Rpb24obSl7aWYobSYmbS5fX2VzTW9kdWxlKXJldHVybiBtO3ZhciBBPXt9O2lmKG51bGwhPW0pZm9yKHZhciBhZSBpbiBtKSJkZWZhdWx0IiE9PWFlJiZPYmplY3QucHJvdG90eXBlLmhhc093'@; put 'blByb3BlcnR5LmNhbGwobSxhZSkmJkQoQSxtLGFlKTtyZXR1cm4gXyhBLG0pLEF9LE49dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKG0sQSxhZSxuZSl7cmV0dXJuIG5ldyhhZXx8KGFlPVByb21pc2UpKShmdW5jdGlvbih3ZSxaZSl7ZnVuY3Rpb24gUWUodmUpe3RyeXt4ZShuZS5u'@; put 'ZXh0KHZlKSl9Y2F0Y2gocWUpe1plKHFlKX19ZnVuY3Rpb24gYXQodmUpe3RyeXt4ZShuZS50aHJvdyh2ZSkpfWNhdGNoKHFlKXtaZShxZSl9fWZ1bmN0aW9uIHhlKHZlKXt2ZS5kb25lP3dlKHZlLnZhbHVlKTpmdW5jdGlvbiBsZSh3ZSl7cmV0dXJuIHdlIGluc3RhbmNlb2YgYWU/d2U6bmV3'@; put 'IGFlKGZ1bmN0aW9uKFplKXtaZSh3ZSl9KX0odmUudmFsdWUpLnRoZW4oUWUsYXQpfXhlKChuZT1uZS5hcHBseShtLEF8fFtdKSkubmV4dCgpKX0pfSx3PXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihtKXtyZXR1cm4gbSYmbS5fX2VzTW9kdWxlP206e2RlZmF1bHQ6bX19'@; put 'O09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLmdldExpbmVFbmRpbmc9Si5pc1Rlc3RGaWxlPUoudGVzdEZpbGVSZWdFeHA9Si5jcmVhdGVSZWFkU3RyZWFtPUouY3JlYXRlV3JpdGVTdHJlYW09Si5nZXRSZWFsUGF0aD1KLmJhc2U2NEVuY29kZUZp'@; put 'bGU9Si5iYXNlNjRFbmNvZGVJbWFnZUZpbGU9Si5wYXRoU2VwRXNjYXBlZD1KLmNvcHk9Si5tb3ZlRmlsZT1KLmdldFJlbGF0aXZlUGF0aD1KLnVuaWZ5RmlsZVBhdGg9Si5kZWxldGVGb2xkZXI9Si5kZWxldGVGaWxlPUouY3JlYXRlRmlsZT1KLmNyZWF0ZUZvbGRlcj1KLmxpc3RGaWxlc0Fu'@; put 'ZFN1YkZvbGRlcnNJbkZvbGRlcj1KLmxpc3RTdWJGb2xkZXJzSW5Gb2xkZXI9Si5saXN0U2FzRmlsZXNJbkZvbGRlcj1KLmxpc3RJbmlGaWxlc0luRm9sZGVyPUoubGlzdEZpbGVzSW5Gb2xkZXI9Si5yZWFkRmlsZUJpbmFyeT1KLnJlYWRGaWxlPUouaXNGb2xkZXI9Si5mb2xkZXJFeGlzdHM9'@; put 'Si5maWxlRXhpc3RzPXZvaWQgMDtjb25zdCBGPXcoYig1Njc0KSksSD13KGIoMjUyMCkpLFI9Yig2MjY2KSxqPXAoYigyOTc1KSksUD1iKDM5MDApO2Z1bmN0aW9uIFkobSl7cmV0dXJuIE4odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiBGLmRlZmF1bHQucHJvbWlzZXMu'@; put 'YWNjZXNzKG0sRi5kZWZhdWx0LmNvbnN0YW50cy5GX09LKS50aGVuKCgpPT4hMCkuY2F0Y2goKCk9PiExKX0pfWZ1bmN0aW9uIFoobSl7cmV0dXJuIE4odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiBGLmRlZmF1bHQucHJvbWlzZXMucmVhZEZpbGUobSl9KX1mdW5jdGlv'@; put 'biBYKG0pe3JldHVybiBOKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4gRi5kZWZhdWx0LnByb21pc2VzLnJlYWRkaXIobSx7d2l0aEZpbGVUeXBlczohMH0pLnRoZW4oQT0+QS5maWx0ZXIoYWU9PiFhZS5pc0RpcmVjdG9yeSgpKS5tYXAoYWU9PmFlLm5hbWUpKX0pfWZ1'@; put 'bmN0aW9uIGllKG0sQT0hMCxhZT1bXSl7cmV0dXJuIE4odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiBGLmRlZmF1bHQucHJvbWlzZXMucmVhZGRpcihtLHt3aXRoRmlsZVR5cGVzOiEwfSkudGhlbihuZT0+Tih0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7aWYo'@; put 'QSYmbmUuZmlsdGVyKHdlPT53ZS5pc0RpcmVjdG9yeSgpKS5sZW5ndGgpe2xldCB3ZT1bXTtyZXR1cm4geWllbGQoMCxSLmFzeW5jRm9yRWFjaCkobmUuZmlsdGVyKFplPT5aZS5pc0RpcmVjdG9yeSgpKSxaZT0+Tih0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7Y29uc3QgUWU9WmUu'@; put 'bmFtZTtpZighYWUuaW5jbHVkZXMoUWUpKXtjb25zdCBhdD1ILmRlZmF1bHQuam9pbihtLFFlKTt3ZT1bLi4ud2UsLi4uKHlpZWxkIGllKGF0LEEsYWUpKS5tYXAoeGU9PkguZGVmYXVsdC5qb2luKFFlLHhlKSldfX0pKSxbLi4ubmUuZmlsdGVyKFplPT4hWmUuaXNEaXJlY3RvcnkoKSkubWFw'@; put 'KFplPT5aZS5uYW1lKSwuLi53ZV19cmV0dXJuIG5lLm1hcChsZT0+bGUubmFtZSl9KSl9KX1mdW5jdGlvbiBzZShtKXtyZXR1cm4gTih0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuIEYuZGVmYXVsdC5wcm9taXNlcy5ta2RpcihtLHtyZWN1cnNpdmU6ITB9KX0pfWZ1bmN0'@; put 'aW9uIFNlKG0sQT1ILmRlZmF1bHQuc2VwLGFlPSIvIil7Y29uc3QgbmU9e3VuaXg6Ii8iLHdpbjoiXFwifTtsZXQgbGU9T2JqZWN0LmtleXMobmUpLmZpbmQod2U9Pm5lW3dlXT09PUEpO2lmKGxlKXtjb25zdCB3ZT1uZVtPYmplY3Qua2V5cyhuZSkuZmluZChaZT0+WmUhPT1sZSldO3JldHVy'@; put 'biBsZT1uZVtsZV0sbS5zcGxpdCh3ZSkuam9pbihsZSl9cmV0dXJuIG0uc3BsaXQoYWUpLmpvaW4oQSl9Si5maWxlRXhpc3RzPWZ1bmN0aW9uIEwobSl7cmV0dXJuIE4odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiBGLmRlZmF1bHQucHJvbWlzZXMuYWNjZXNzKG0sRi5k'@; put 'ZWZhdWx0LmNvbnN0YW50cy5GX09LKS50aGVuKCgpPT4hMCkuY2F0Y2goKCk9PiExKX0pfSxKLmZvbGRlckV4aXN0cz1ZLEouaXNGb2xkZXI9ZnVuY3Rpb24gQihtKXtyZXR1cm4gTih0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuIEYuZGVmYXVsdC5wcm9taXNlcy5sc3Rh'@; put 'dChtKS50aGVuKEE9PkEuaXNEaXJlY3RvcnkoKSkuY2F0Y2goKCk9PiExKX0pfSxKLnJlYWRGaWxlPWZ1bmN0aW9uIFcobSxBPSJ1dGY4Iil7cmV0dXJuIE4odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiBGLmRlZmF1bHQucHJvbWlzZXMucmVhZEZpbGUobSxBKX0pfSxK'@; put 'LnJlYWRGaWxlQmluYXJ5PVosSi5saXN0RmlsZXNJbkZvbGRlcj1YLEoubGlzdEluaUZpbGVzSW5Gb2xkZXI9ZnVuY3Rpb24gUShtKXtyZXR1cm4gTih0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuKHlpZWxkIFgobSkpLmZpbHRlcihBPT5BLmVuZHNXaXRoKCIuaW5pIikp'@; put 'fSl9LEoubGlzdFNhc0ZpbGVzSW5Gb2xkZXI9ZnVuY3Rpb24gcShtLEE9ITEsYWU9W10pe3JldHVybiBOKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4oeWllbGQgaWUobSxBLGFlKSkuZmlsdGVyKHdlPT53ZS5lbmRzV2l0aCgiLnNhcyIpKX0pfSxKLmxpc3RTdWJGb2xk'@; put 'ZXJzSW5Gb2xkZXI9ZnVuY3Rpb24gdGUobSl7cmV0dXJuIE4odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiBGLmRlZmF1bHQucHJvbWlzZXMucmVhZGRpcihtLHt3aXRoRmlsZVR5cGVzOiEwfSkudGhlbihBPT5BLmZpbHRlcihhZT0+YWUuaXNEaXJlY3RvcnkoKSkubWFw'@; put 'KGFlPT5hZS5uYW1lKSl9KX0sSi5saXN0RmlsZXNBbmRTdWJGb2xkZXJzSW5Gb2xkZXI9aWUsSi5jcmVhdGVGb2xkZXI9c2UsSi5jcmVhdGVGaWxlPWZ1bmN0aW9uIGdlKG0sQSxhZSl7cmV0dXJuIE4odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2lmKChtPVNlKG0pKS5zcGxpdChI'@; put 'LmRlZmF1bHQuc2VwKS5sZW5ndGg+MSl7bGV0IG5lPW0uc3BsaXQoSC5kZWZhdWx0LnNlcCk7bmUucG9wKCk7Y29uc3QgbGU9bmUuam9pbihILmRlZmF1bHQuc2VwKTsoeWllbGQgWShsZSkpfHwoeWllbGQgc2UobGUpKX1yZXR1cm4gRi5kZWZhdWx0LnByb21pc2VzLndyaXRlRmlsZShtLEEs'@; put 'YWUpfSl9LEouZGVsZXRlRmlsZT1mdW5jdGlvbiBfZShtKXtyZXR1cm4gTih0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuIEYuZGVmYXVsdC5yZW1vdmUobSl9KX0sSi5kZWxldGVGb2xkZXI9ZnVuY3Rpb24gVGUobSl7cmV0dXJuIE4odGhpcyx2b2lkIDAsdm9pZCAwLGZ1'@; put 'bmN0aW9uKigpe3JldHVybiBGLmRlZmF1bHQucm0obSx7cmVjdXJzaXZlOiEwLGZvcmNlOiEwfSl9KX0sSi51bmlmeUZpbGVQYXRoPVNlLEouZ2V0UmVsYXRpdmVQYXRoPWZ1bmN0aW9uIHplKG0sQSl7Y29uc3QgYWU9bS5zcGxpdChILmRlZmF1bHQuc2VwKSxuZT1BLnNwbGl0KEguZGVmYXVs'@; put 'dC5zZXApO2xldCBsZT1bXSx3ZT1bXTthZS5mb3JFYWNoKCh2ZSxxZSk9Pnt2b2lkIDAhPT1uZVtxZV0mJmFlW3FlXT09PW5lW3FlXT9sZS5wdXNoKHZlKTp2ZSYmd2UucHVzaCh2ZSl9KTtjb25zdCBaZT1sZS5qb2luKEguZGVmYXVsdC5zZXApLFFlPW5ldyBSZWdFeHAoYF4ke0guZGVmYXVs'@; put 'dC5zZXAucmVwbGFjZSgvXFwvZywiXFxcXCIpfWApLGF0PW5ldyBSZWdFeHAoYCR7SC5kZWZhdWx0LnNlcC5yZXBsYWNlKC9cXC9nLCJcXFxcIil9JGApO3JldHVybih3ZS5sZW5ndGg/YC4uJHtILmRlZmF1bHQuc2VwfWAucmVwZWF0KHdlLmxlbmd0aCk6YC4ke0guZGVmYXVsdC5zZXB9YCkr'@; put 'QS5yZXBsYWNlKFplLCIiKS5yZXBsYWNlKFFlLCIiKS5yZXBsYWNlKGF0LCIiKX0sSi5tb3ZlRmlsZT1mdW5jdGlvbiB6KG0sQSl7cmV0dXJuIE4odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiBGLmRlZmF1bHQucHJvbWlzZXMucmVuYW1lKG0sQSl9KX0sSi5jb3B5PWZ1'@; put 'bmN0aW9uIGcobSxBKXtyZXR1cm4gTih0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuIEYuZGVmYXVsdC5jb3B5KG0sQSl9KX0sSi5wYXRoU2VwRXNjYXBlZD1ILmRlZmF1bHQuc2VwLnJlcGxhY2UoL1xcL2csIlxcXFwiKSxKLmJhc2U2NEVuY29kZUltYWdlRmlsZT1mdW5j'@; put 'dGlvbiB5KG0pe3JldHVybiBOKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4gWihtKS50aGVuKEE9PntsZXQgYWU9SC5kZWZhdWx0LmV4dG5hbWUobSkuc3Vic3RyKDEpfHwicG5nIjtyZXR1cm4ic3ZnIj09PWFlJiYoYWU9InN2Zyt4bWwiKSwiZGF0YTppbWFnZS8iK2Fl'@; put 'KyI7YmFzZTY0LCIrQS50b1N0cmluZygiYmFzZTY0Iil9KX0pfSxKLmJhc2U2NEVuY29kZUZpbGU9ZnVuY3Rpb24geChtKXtyZXR1cm4gTih0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuIEYuZGVmYXVsdC5wcm9taXNlcy5yZWFkRmlsZShtLHtlbmNvZGluZzoiYmFzZTY0'@; put 'In0pfSl9LEouZ2V0UmVhbFBhdGg9ZnVuY3Rpb24gQyhtKXtyZXR1cm4gRi5kZWZhdWx0LnJlYWxwYXRoU3luYyhtKX0sSi5jcmVhdGVXcml0ZVN0cmVhbT1mdW5jdGlvbiBUKG0pe3JldHVybiBOKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4oeWllbGQgai5maWxlRXhp'@; put 'c3RzKG0pKXx8KHlpZWxkIGouY3JlYXRlRmlsZShtLCIiKSksRi5kZWZhdWx0LmNyZWF0ZVdyaXRlU3RyZWFtKG0se2ZsYWdzOiJhIn0pfSl9LEouY3JlYXRlUmVhZFN0cmVhbT1tPT5OKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiBGLmRlZmF1bHQuY3JlYXRlUmVh'@; put 'ZFN0cmVhbShtKX0pLEoudGVzdEZpbGVSZWdFeHA9L1wudGVzdFwuKFxkK1wuKT9zYXMkL2ksSi5pc1Rlc3RGaWxlPW09PkoudGVzdEZpbGVSZWdFeHAudGVzdChtKSxKLmdldExpbmVFbmRpbmc9bT0+bmV3IFJlZ0V4cChQLkxpbmVFbmRpbmdzLkNSTEYpLnRlc3QobSk/UC5MaW5lRW5kaW5n'@; put 'cy5DUkxGOlAuTGluZUVuZGluZ3MuTEZ9LDU2MjY6ZnVuY3Rpb24oY2UsSixiKXsidXNlIHN0cmljdCI7dmFyIEQ9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKHcpe3JldHVybiB3JiZ3Ll9fZXNNb2R1bGU/dzp7ZGVmYXVsdDp3fX07T2JqZWN0LmRlZmluZVByb3BlcnR5'@; put 'KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEouZ2V0QWJzb2x1dGVQYXRoPXZvaWQgMDtjb25zdCBfPUQoYigyNTIwKSkscD1EKGIoNzQzNSkpO0ouZ2V0QWJzb2x1dGVQYXRoPSh3LEYpPT5fLmRlZmF1bHQuaXNBYnNvbHV0ZSh3KXx8L15+Ly5leGVjKHcpP18uZGVmYXVsdC5ub3JtYWxp'@; put 'emUody5yZXBsYWNlKC9efi8scC5kZWZhdWx0LmhvbWVkaXIoKSkpOl8uZGVmYXVsdC5qb2luKEYsdyl9LDI5NzU6ZnVuY3Rpb24oY2UsSixiKXsidXNlIHN0cmljdCI7dmFyIEQ9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKHcsRixILFIpe3Zv'@; put 'aWQgMD09PVImJihSPUgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LFIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEZbSF19fSl9OmZ1bmN0aW9uKHcsRixILFIpe3ZvaWQgMD09PVImJihSPUgpLHdbUl09RltIXX0pLF89dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1'@; put 'bmN0aW9uKHcsRil7Zm9yKHZhciBIIGluIHcpImRlZmF1bHQiIT09SCYmIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChGLEgpJiZEKEYsdyxIKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEoucmVhZENzdj1KLmNyZWF0ZUNz'@; put 'dj1KLnVwZGF0ZUNzdj1KLmdldExpbmVFbmRpbmc9Si50ZXN0RmlsZVJlZ0V4cD1KLmlzVGVzdEZpbGU9Si5nZXRSZWFsUGF0aD1KLmJhc2U2NEVuY29kZUZpbGU9Si5iYXNlNjRFbmNvZGVJbWFnZUZpbGU9Si5jb3B5PUoucGF0aFNlcEVzY2FwZWQ9Si5tb3ZlRmlsZT1KLnVuaWZ5RmlsZVBh'@; put 'dGg9Si5nZXRSZWxhdGl2ZVBhdGg9Si5kZWxldGVGb2xkZXI9Si5kZWxldGVGaWxlPUouY3JlYXRlV3JpdGVTdHJlYW09Si5jcmVhdGVSZWFkU3RyZWFtPUouY3JlYXRlRm9sZGVyPUouY3JlYXRlRmlsZT1KLmxpc3RGaWxlc0FuZFN1YkZvbGRlcnNJbkZvbGRlcj1KLmxpc3RTdWJGb2xkZXJz'@; put 'SW5Gb2xkZXI9Si5saXN0U2FzRmlsZXNJbkZvbGRlcj1KLmxpc3RJbmlGaWxlc0luRm9sZGVyPUoubGlzdEZpbGVzSW5Gb2xkZXI9Si5yZWFkRmlsZUJpbmFyeT1KLnJlYWRGaWxlPUouaXNGb2xkZXI9Si5mb2xkZXJFeGlzdHM9Si5maWxlRXhpc3RzPXZvaWQgMDt2YXIgcD1iKDE1NTkpO09i'@; put 'amVjdC5kZWZpbmVQcm9wZXJ0eShKLCJmaWxlRXhpc3RzIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcC5maWxlRXhpc3RzfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJmb2xkZXJFeGlzdHMiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBw'@; put 'LmZvbGRlckV4aXN0c319KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiaXNGb2xkZXIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBwLmlzRm9sZGVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJyZWFkRmlsZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9u'@; put 'KCl7cmV0dXJuIHAucmVhZEZpbGV9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEosInJlYWRGaWxlQmluYXJ5Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcC5yZWFkRmlsZUJpbmFyeX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwibGlzdEZpbGVzSW5Gb2xkZXIi'@; put 'LHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBwLmxpc3RGaWxlc0luRm9sZGVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJsaXN0SW5pRmlsZXNJbkZvbGRlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHAubGlzdEluaUZpbGVzSW5Gb2xk'@; put 'ZXJ9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEosImxpc3RTYXNGaWxlc0luRm9sZGVyIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcC5saXN0U2FzRmlsZXNJbkZvbGRlcn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwibGlzdFN1YkZvbGRlcnNJbkZvbGRlciIs'@; put 'e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHAubGlzdFN1YkZvbGRlcnNJbkZvbGRlcn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwibGlzdEZpbGVzQW5kU3ViRm9sZGVyc0luRm9sZGVyIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcC5saXN0'@; put 'RmlsZXNBbmRTdWJGb2xkZXJzSW5Gb2xkZXJ9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEosImNyZWF0ZUZpbGUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBwLmNyZWF0ZUZpbGV9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEosImNyZWF0ZUZvbGRlciIse2VudW1l'@; put 'cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHAuY3JlYXRlRm9sZGVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJjcmVhdGVSZWFkU3RyZWFtIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcC5jcmVhdGVSZWFkU3RyZWFtfX0pLE9iamVjdC5kZWZpbmVQ'@; put 'cm9wZXJ0eShKLCJjcmVhdGVXcml0ZVN0cmVhbSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHAuY3JlYXRlV3JpdGVTdHJlYW19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEosImRlbGV0ZUZpbGUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBw'@; put 'LmRlbGV0ZUZpbGV9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEosImRlbGV0ZUZvbGRlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHAuZGVsZXRlRm9sZGVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJnZXRSZWxhdGl2ZVBhdGgiLHtlbnVtZXJhYmxlOiEw'@; put 'LGdldDpmdW5jdGlvbigpe3JldHVybiBwLmdldFJlbGF0aXZlUGF0aH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwidW5pZnlGaWxlUGF0aCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHAudW5pZnlGaWxlUGF0aH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwi'@; put 'bW92ZUZpbGUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBwLm1vdmVGaWxlfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJwYXRoU2VwRXNjYXBlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHAucGF0aFNlcEVzY2FwZWR9fSksT2JqZWN0'@; put 'LmRlZmluZVByb3BlcnR5KEosImNvcHkiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBwLmNvcHl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEosImJhc2U2NEVuY29kZUltYWdlRmlsZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHAuYmFzZTY0'@; put 'RW5jb2RlSW1hZ2VGaWxlfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJiYXNlNjRFbmNvZGVGaWxlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcC5iYXNlNjRFbmNvZGVGaWxlfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJnZXRSZWFsUGF0aCIse2VudW1l'@; put 'cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHAuZ2V0UmVhbFBhdGh9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEosImlzVGVzdEZpbGUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBwLmlzVGVzdEZpbGV9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEosInRl'@; put 'c3RGaWxlUmVnRXhwIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcC50ZXN0RmlsZVJlZ0V4cH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiZ2V0TGluZUVuZGluZyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHAuZ2V0TGluZUVuZGluZ319'@; put 'KTt2YXIgTj1iKDM5MDYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJ1cGRhdGVDc3YiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBOLnVwZGF0ZUNzdn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiY3JlYXRlQ3N2Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rp'@; put 'b24oKXtyZXR1cm4gTi5jcmVhdGVDc3Z9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEosInJlYWRDc3YiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBOLnJlYWRDc3Z9fSksXyhiKDU2MjYpLEopfSwyNzc3OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZp'@; put 'bmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLm5ld0xpbmU9Si5jYXBpdGFsaXplRmlyc3RDaGFyPUouc2FuaXRpemVTcGVjaWFsQ2hhcnM9Si5wYWRXaXRoTnVtYmVyPXZvaWQgMDt2YXIgRD1iKDUzMDYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJwYWRXaXRoTnVt'@; put 'YmVyIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRC5wYWRXaXRoTnVtYmVyfX0pO3ZhciBfPWIoOTI3NSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KEosInNhbml0aXplU3BlY2lhbENoYXJzIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gXy5zYW5p'@; put 'dGl6ZVNwZWNpYWxDaGFyc319KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiY2FwaXRhbGl6ZUZpcnN0Q2hhciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIF8uY2FwaXRhbGl6ZUZpcnN0Q2hhcn19KTt2YXIgcD1iKDE2MjgpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShK'@; put 'LCJuZXdMaW5lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcC5uZXdMaW5lfX0pfSw1MzA2OihjZSxKKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5wYWRXaXRoTnVtYmVyPXZvaWQgMCxKLnBh'@; put 'ZFdpdGhOdW1iZXI9KEQsXz0wKT0+RD45P0Q6YCR7X30ke0R9YH0sMTYyODooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDQxNTUpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLm5ld0xpbmU9dm9pZCAwLEoubmV3TGluZT0oKT0+Indp'@; put 'bjMyIj09PUQucGxhdGZvcm0/IlxcclxcbiI6IlxcbiJ9LDkyNzU6KGNlLEopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLmNhcGl0YWxpemVGaXJzdENoYXI9Si5zYW5pdGl6ZVNwZWNpYWxDaGFycz12b2lkIDAsSi5z'@; put 'YW5pdGl6ZVNwZWNpYWxDaGFycz1fPT5fLnJlcGxhY2UoL1tcdTAwMWJcdTAwOWJdW1soKSM7P10qKD86WzAtOV17MSw0fSg/OjtbMC05XXswLDR9KSopP1swLTlBLU9SWmNmLW5xcnk9PjxdL2csIiIpLEouY2FwaXRhbGl6ZUZpcnN0Q2hhcj1fPT5fLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgp'@; put 'K18uc2xpY2UoMSl9LDY0Njc6ZnVuY3Rpb24oY2UsSixiKXsidXNlIHN0cmljdCI7dmFyIEQ9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKEgpe3JldHVybiBIJiZILl9fZXNNb2R1bGU/SDp7ZGVmYXVsdDpIfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1'@; put 'bGUiLHt2YWx1ZTohMH0pLEouaXNTcGVjaWFsTWlzc2luZz1KLmNob2ljZVZhbGlkYXRvcj1KLmNvbmZpcm1hdGlvblZhbGlkYXRvcj1KLnVybFZhbGlkYXRvcj12b2lkIDA7Y29uc3QgXz1EKGIoNDgxKSk7Si51cmxWYWxpZGF0b3I9KEgsUik9PiEhXy5kZWZhdWx0LmlzSHR0cFVyaShIKXx8'@; put 'ISFfLmRlZmF1bHQuaXNIdHRwc1VyaShIKXx8IiI9PT1IfHxSLEouY29uZmlybWF0aW9uVmFsaWRhdG9yPUg9PiEwPT09SHx8ITE9PT1ILEouY2hvaWNlVmFsaWRhdG9yPShILFIsaik9Pkg+MCYmSDw9Unx8aixKLmlzU3BlY2lhbE1pc3Npbmc9SD0+KCJzdHJpbmciIT10eXBlb2YgSHx8IUgu'@; put 'aW5jbHVkZXMoIi4uIikpJiZuZXcgUmVnRXhwKCJeKFxcLik/W2Etel8uXXsxfSQiLCJpIikudGVzdChIKX0sNzc1NzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5nZW5lcmF0ZVRpbWVzdGFtcD1KLnRp'@; put 'bWVzdGFtcFRvWVlZWU1NRERISE1NU1M9Si5jb252ZXJ0U2Vjb25kc1RvSG1zPXZvaWQgMDt2YXIgRD1iKDEzMDIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJjb252ZXJ0U2Vjb25kc1RvSG1zIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRC5jb252ZXJ0U2Vjb25k'@; put 'c1RvSG1zfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJ0aW1lc3RhbXBUb1lZWVlNTURESEhNTVNTIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRC50aW1lc3RhbXBUb1lZWVlNTURESEhNTVNTfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJnZW5lcmF0ZVRp'@; put 'bWVzdGFtcCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEQuZ2VuZXJhdGVUaW1lc3RhbXB9fSl9LDEzMDI6KGNlLEosYik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEouY29udmVydFNlY29uZHNU'@; put 'b0htcz1KLmdlbmVyYXRlVGltZXN0YW1wPUoudGltZXN0YW1wVG9ZWVlZTU1EREhITU1TUz12b2lkIDA7Y29uc3QgRD1iKDI3NzcpO0oudGltZXN0YW1wVG9ZWVlZTU1EREhITU1TUz0odz1EYXRlLm5vdygpKT0+e2NvbnN0IEY9bmV3IERhdGUodyk7cmV0dXJuW0YuZ2V0RnVsbFllYXIoKSwo'@; put 'MCxELnBhZFdpdGhOdW1iZXIpKEYuZ2V0TW9udGgoKSsxKSwoMCxELnBhZFdpdGhOdW1iZXIpKEYuZ2V0RGF0ZSgpKV0uam9pbigiLyIpKyIgIitbKDAsRC5wYWRXaXRoTnVtYmVyKShGLmdldEhvdXJzKCkpLCgwLEQucGFkV2l0aE51bWJlcikoRi5nZXRNaW51dGVzKCkpLCgwLEQucGFkV2l0'@; put 'aE51bWJlcikoRi5nZXRTZWNvbmRzKCkpXS5qb2luKCI6Iil9LEouZ2VuZXJhdGVUaW1lc3RhbXA9KHc9IiIsRik9Pntjb25zdCBIPW5ldyBEYXRlO2xldCBSPVtILmdldFVUQ0Z1bGxZZWFyKCksSC5nZXRVVENNb250aCgpKzEsSC5nZXRVVENEYXRlKCksSC5nZXRVVENIb3VycygpLEguZ2V0'@; put 'VVRDTWludXRlcygpLEguZ2V0VVRDU2Vjb25kcygpXTtyZXR1cm4gUj1SLm1hcChqPT4oMCxELnBhZFdpdGhOdW1iZXIpKGopKSxGJiZ3JiZGPFIubGVuZ3RoJiZGPj0wJiZSLnNwbGljZShGLDAsdyksUj1SLmpvaW4oRj8iIjp3KSxSfSxKLmNvbnZlcnRTZWNvbmRzVG9IbXM9dz0+e2lmKCF3'@; put 'KXJldHVybiIwIHNlY29uZCI7Y29uc3QgRj1NYXRoLmZsb29yKHcvNjApLEg9TWF0aC5mbG9vcihGLzYwKSxSPUYlNjAsaj13JTYwO2xldCBQPSIiO3JldHVybiBIPjAmJihQPUgrIiBob3VyIisoSD4xPyJzIjoiIikpLFI+MCYmKFArPWAke1A/IiwgIjoiIn0ke1J9IG1pbnV0ZSR7Uj4xPyJz'@; put 'IjoiIn1gKSxqPjAmJihQKz1gJHtQPyIsICI6IiJ9JHtqfSBzZWNvbmQke2o+MT8icyI6IiJ9YCksUH19LDgyMzk6KGNlLEopPT57InVzZSBzdHJpY3QiO3ZhciBEO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLkNvbmZpZ1R5cGVzPXZvaWQgMCwo'@; put 'RD1KLkNvbmZpZ1R5cGVzfHwoSi5Db25maWdUeXBlcz17fSkpLkJ1aWxkPSJidWlsZENvbmZpZyIsRC5TZXJ2aWNlPSJzZXJ2aWNlQ29uZmlnIixELkpvYj0iam9iQ29uZmlnIixELlRlc3Q9InRlc3RDb25maWciLEQuRG9jPSJkb2NDb25maWciLEQuRGVwbG95PSJkZXBsb3lDb25maWciLEQu'@; put 'U3RyZWFtPSJzdHJlYW1Db25maWciLEQuQXV0aD0iYXV0aENvbmZpZyJ9LDI0Mjc6KGNlLEopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sMTg5OihjZSxKKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVy'@; put 'dHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDM2OTI6KGNlLEopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sNDcyOTooY2UsSik9PnsidXNlIHN0cmljdCI7dmFyIEQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KEos'@; put 'Il9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEouTGluZUVuZGluZ3M9dm9pZCAwLChEPUouTGluZUVuZGluZ3N8fChKLkxpbmVFbmRpbmdzPXt9KSkuQ1JMRj0iXHJcbiIsRC5MRj0iXG4ifSw2OTM5OihjZSxKKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRDtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwi'@; put 'X19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5NZW1iZXJUeXBlPXZvaWQgMCwoRD1KLk1lbWJlclR5cGV8fChKLk1lbWJlclR5cGU9e30pKS5zZXJ2aWNlPSJzZXJ2aWNlIixELmZpbGU9ImZpbGUiLEQuZm9sZGVyPSJmb2xkZXIifSwzMzI3OihjZSxKKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3Qu'@; put 'ZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDUxNjU6KGNlLEopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sMzkwMDpmdW5jdGlvbihjZSxKLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgRD10aGlz'@; put 'JiZ0aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24ocCxOLHcsRil7dm9pZCAwPT09RiYmKEY9dyksT2JqZWN0LmRlZmluZVByb3BlcnR5KHAsRix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTlt3XX19KX06ZnVuY3Rpb24ocCxOLHcsRil7'@; put 'dm9pZCAwPT09RiYmKEY9dykscFtGXT1OW3ddfSksXz10aGlzJiZ0aGlzLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24ocCxOKXtmb3IodmFyIHcgaW4gcCkiZGVmYXVsdCIhPT13JiYhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE4sdykmJkQoTixwLHcpfTtPYmplY3QuZGVm'@; put 'aW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksXyhiKDgyMzkpLEopLF8oYigyNDI3KSxKKSxfKGIoMTg5KSxKKSxfKGIoMzY5MiksSiksXyhiKDY5MzkpLEopLF8oYigzMzI3KSxKKSxfKGIoNTE2NSksSiksXyhiKDQwNjkpLEopLF8oYig4OTMyKSxKKSxfKGIoNCksSiks'@; put 'XyhiKDIwMTUpLEopLF8oYig4NTE1KSxKKSxfKGIoNTMxMyksSiksXyhiKDg5NzkpLEopLF8oYig0NzI5KSxKKX0sNDA2OTooY2UsSik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEouaXNNYWNyb1ZhcnM9dm9pZCAwLEou'@; put 'aXNNYWNyb1ZhcnM9RD0+RCYmIm9iamVjdCI9PXR5cGVvZiBELm1hY3JvVmFycyYmIUFycmF5LmlzQXJyYXkoRC5tYWNyb1ZhcnMpfSw4OTMyOihjZSxKKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDQ6KGNlLEopPT57'@; put 'InVzZSBzdHJpY3QiO3ZhciBEO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLlNBU0pzRmlsZVR5cGU9dm9pZCAwLChEPUouU0FTSnNGaWxlVHlwZXx8KEouU0FTSnNGaWxlVHlwZT17fSkpLnNlcnZpY2U9IlNlcnZpY2UiLEQuam9iPSJKb2IiLEQu'@; put 'dGVzdD0iVGVzdCIsRC5maWxlPSJGaWxlIn0sMjAxNTooY2UsSik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSw4NTE1OihjZSxKKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRDtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19l'@; put 'c01vZHVsZSIse3ZhbHVlOiEwfSksSi5TZXJ2ZXJUeXBlPXZvaWQgMCwoRD1KLlNlcnZlclR5cGV8fChKLlNlcnZlclR5cGU9e30pKS5TYXNWaXlhPSJTQVNWSVlBIixELlNhczk9IlNBUzkiLEQuU2FzanM9IlNBU0pTIn0sNTMxMzooY2UsSik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmlu'@; put 'ZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSw4OTc5OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLlRhcmdldD12b2lkIDA7Y29uc3QgRD1iKDgyMzkpLF89Yig4NTE1KSxwPWIoNjc4'@; put 'MSk7Si5UYXJnZXQ9Y2xhc3MgTntjb25zdHJ1Y3RvcihGLEg9e30pe3RoaXMuX3NlcnZlclR5cGU9Xy5TZXJ2ZXJUeXBlLlNhc1ZpeWEsdGhpcy5nZXRDb25maWc9KFIsaik9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLl9jb25maWdbUl18fHt9KSxqW1JdKTt0cnl7aWYo'@; put 'IUYpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHRhcmdldDogSW5wdXQgSlNPTiBpcyBudWxsIG9yIHVuZGVmaW5lZC4iKTt0aGlzLl9jb25maWc9SCx0aGlzLl9uYW1lPSgwLHAudmFsaWRhdGVUYXJnZXROYW1lKShGLm5hbWUpLHRoaXMuX3NlcnZlclVybD0oMCxwLnZhbGlkYXRlU2VydmVy'@; put 'VXJsKShGLnNlcnZlclVybCksdGhpcy5fc2VydmVyVHlwZT0oMCxwLnZhbGlkYXRlU2VydmVyVHlwZSkoRi5zZXJ2ZXJUeXBlKSx0aGlzLl9odHRwc0FnZW50T3B0aW9ucz0oMCxwLnZhbGlkYXRlSHR0cHNBZ2VudE9wdGlvbnMpKEYuaHR0cHNBZ2VudE9wdGlvbnMpLHRoaXMuX2FwcExvYz0o'@; put 'MCxwLnZhbGlkYXRlQXBwTG9jKShGLmFwcExvYyksdGhpcy5fY29udGV4dE5hbWU9KDAscC52YWxpZGF0ZUNvbnRleHROYW1lKShGLmNvbnRleHROYW1lLHRoaXMuX3NlcnZlclR5cGUpLHRoaXMuX3NlcnZlck5hbWU9KDAscC52YWxpZGF0ZVNlcnZlck5hbWUpKEYuc2VydmVyTmFtZSx0aGlz'@; put 'Ll9zZXJ2ZXJUeXBlKSx0aGlzLl9zeW5jRm9sZGVyPSgwLHAudmFsaWRhdGVTeW5jRm9sZGVyKShGLnN5bmNGb2xkZXIpLHRoaXMuX3JlcG9zaXRvcnlOYW1lPSgwLHAudmFsaWRhdGVSZXBvc2l0b3J5TmFtZSkoRi5yZXBvc2l0b3J5TmFtZSx0aGlzLl9zZXJ2ZXJUeXBlKSxGLmRvY0NvbmZp'@; put 'ZyYmKHRoaXMuX2RvY0NvbmZpZz0oMCxwLnZhbGlkYXRlRG9jQ29uZmlnKSh0aGlzLmdldENvbmZpZyhELkNvbmZpZ1R5cGVzLkRvYyxGKSkpLEYuYXV0aENvbmZpZyYmKHRoaXMuX2F1dGhDb25maWc9KDAscC52YWxpZGF0ZUF1dGhDb25maWcpKHRoaXMuZ2V0Q29uZmlnKEQuQ29uZmlnVHlw'@; put 'ZXMuQXV0aCxGKSkpLEYuYXV0aENvbmZpZ1NhczkmJih0aGlzLl9hdXRoQ29uZmlnU2FzOT0oMCxwLnZhbGlkYXRlQXV0aENvbmZpZ1NhczkpKEYuYXV0aENvbmZpZ1NhczkpKSxGLmJ1aWxkQ29uZmlnJiYodGhpcy5fYnVpbGRDb25maWc9KDAscC52YWxpZGF0ZUJ1aWxkQ29uZmlnKSh0aGlz'@; put 'LmdldENvbmZpZyhELkNvbmZpZ1R5cGVzLkJ1aWxkLEYpLHRoaXMuX25hbWUpKSx0aGlzLl9kZXBsb3lDb25maWc9KDAscC52YWxpZGF0ZURlcGxveUNvbmZpZykoRi5kZXBsb3lDb25maWc/dGhpcy5nZXRDb25maWcoRC5Db25maWdUeXBlcy5EZXBsb3ksRik6e2RlcGxveVNlcnZpY2VQYWNr'@; put 'OiEwLGRlcGxveVNjcmlwdHM6W119KSxGLnNlcnZpY2VDb25maWcmJih0aGlzLl9zZXJ2aWNlQ29uZmlnPSgwLHAudmFsaWRhdGVTZXJ2aWNlQ29uZmlnKSh0aGlzLmdldENvbmZpZyhELkNvbmZpZ1R5cGVzLlNlcnZpY2UsRikpKSxGLmpvYkNvbmZpZyYmKHRoaXMuX2pvYkNvbmZpZz0oMCxw'@; put 'LnZhbGlkYXRlSm9iQ29uZmlnKSh0aGlzLmdldENvbmZpZyhELkNvbmZpZ1R5cGVzLkpvYixGKSkpLEYuc3RyZWFtQ29uZmlnJiYodGhpcy5fc3RyZWFtQ29uZmlnPSgwLHAudmFsaWRhdGVTdHJlYW1Db25maWcpKHRoaXMuZ2V0Q29uZmlnKEQuQ29uZmlnVHlwZXMuU3RyZWFtLEYpKSksRi50'@; put 'ZXN0Q29uZmlnJiYodGhpcy5fdGVzdENvbmZpZz0oMCxwLnZhbGlkYXRlVGVzdENvbmZpZykodGhpcy5nZXRDb25maWcoRC5Db25maWdUeXBlcy5UZXN0LEYpKSksRi5tYWNyb0ZvbGRlcnMmJkYubWFjcm9Gb2xkZXJzLmxlbmd0aCYmKHRoaXMuX21hY3JvRm9sZGVycz1GLm1hY3JvRm9sZGVy'@; put 'cyksRi5wcm9ncmFtRm9sZGVycyYmRi5wcm9ncmFtRm9sZGVycy5sZW5ndGgmJih0aGlzLl9wcm9ncmFtRm9sZGVycz1GLnByb2dyYW1Gb2xkZXJzKSxGLmJpbmFyeUZvbGRlcnMmJkYuYmluYXJ5Rm9sZGVycy5sZW5ndGgmJih0aGlzLl9iaW5hcnlGb2xkZXJzPUYuYmluYXJ5Rm9sZGVycyks'@; put 'Ri5zeW5jRGlyZWN0b3JpZXMmJkYuc3luY0RpcmVjdG9yaWVzLmxlbmd0aCYmKHRoaXMuX3N5bmNEaXJlY3Rvcmllcz0oMCxwLnZhbGlkYXRlU3luY0RpcmVjdG9yaWVzKShGLnN5bmNEaXJlY3RvcmllcykpLEYuc2FzanNCdWlsZEZvbGRlciYmKHRoaXMuX3Nhc2pzQnVpbGRGb2xkZXI9KDAs'@; put 'cC52YWxpZGF0ZVNhc2pzQnVpbGRGb2xkZXIpKEYuc2FzanNCdWlsZEZvbGRlcikpLEYuc2FzanNSZXN1bHRzRm9sZGVyJiYodGhpcy5fc2FzanNSZXN1bHRzRm9sZGVyPSgwLHAudmFsaWRhdGVTYXNqc1Jlc3VsdHNGb2xkZXIpKEYuc2FzanNSZXN1bHRzRm9sZGVyKSl9Y2F0Y2goUil7dGhy'@; put 'b3cgbmV3IEVycm9yKGBFcnJvciBwYXJzaW5nIHRhcmdldDogJHtSLm1lc3NhZ2V9YCl9fWdldCBuYW1lKCl7cmV0dXJuIHRoaXMuX25hbWV9Z2V0IHNlcnZlclVybCgpe3JldHVybiB0aGlzLl9zZXJ2ZXJVcmx9Z2V0IHNlcnZlclR5cGUoKXtyZXR1cm4gdGhpcy5fc2VydmVyVHlwZX1nZXQg'@; put 'aHR0cHNBZ2VudE9wdGlvbnMoKXtyZXR1cm4gdGhpcy5faHR0cHNBZ2VudE9wdGlvbnN9Z2V0IGFwcExvYygpe3JldHVybiB0aGlzLl9hcHBMb2N9Z2V0IGRvY0NvbmZpZygpe3JldHVybiB0aGlzLl9kb2NDb25maWd9Z2V0IGF1dGhDb25maWcoKXtyZXR1cm4gdGhpcy5fYXV0aENvbmZpZ31n'@; put 'ZXQgYXV0aENvbmZpZ1NhczkoKXtyZXR1cm4gdGhpcy5fYXV0aENvbmZpZ1Nhczl9Z2V0IGJ1aWxkQ29uZmlnKCl7cmV0dXJuIHRoaXMuX2J1aWxkQ29uZmlnfWdldCBkZXBsb3lDb25maWcoKXtyZXR1cm4gdGhpcy5fZGVwbG95Q29uZmlnfWdldCBzZXJ2aWNlQ29uZmlnKCl7cmV0dXJuIHRo'@; put 'aXMuX3NlcnZpY2VDb25maWd9Z2V0IGpvYkNvbmZpZygpe3JldHVybiB0aGlzLl9qb2JDb25maWd9Z2V0IHN0cmVhbUNvbmZpZygpe3JldHVybiB0aGlzLl9zdHJlYW1Db25maWd9Z2V0IG1hY3JvRm9sZGVycygpe3JldHVybiB0aGlzLl9tYWNyb0ZvbGRlcnN9Z2V0IHByb2dyYW1Gb2xkZXJz'@; put 'KCl7cmV0dXJuIHRoaXMuX3Byb2dyYW1Gb2xkZXJzfWdldCBiaW5hcnlGb2xkZXJzKCl7cmV0dXJuIHRoaXMuX2JpbmFyeUZvbGRlcnN9Z2V0IGNvbnRleHROYW1lKCl7cmV0dXJuIHRoaXMuX2NvbnRleHROYW1lfWdldCBzZXJ2ZXJOYW1lKCl7cmV0dXJuIHRoaXMuX3NlcnZlck5hbWV9Z2V0'@; put 'IHJlcG9zaXRvcnlOYW1lKCl7cmV0dXJuIHRoaXMuX3JlcG9zaXRvcnlOYW1lfWdldCB0ZXN0Q29uZmlnKCl7cmV0dXJuIHRoaXMuX3Rlc3RDb25maWd9Z2V0IHN5bmNGb2xkZXIoKXtyZXR1cm4gdGhpcy5fc3luY0ZvbGRlcn1nZXQgc3luY0RpcmVjdG9yaWVzKCl7cmV0dXJuIHRoaXMuX3N5'@; put 'bmNEaXJlY3Rvcmllc31nZXQgc2FzanNCdWlsZEZvbGRlcigpe3JldHVybiB0aGlzLl9zYXNqc0J1aWxkRm9sZGVyfWdldCBzYXNqc1Jlc3VsdHNGb2xkZXIoKXtyZXR1cm4gdGhpcy5fc2FzanNSZXN1bHRzRm9sZGVyfXRvSnNvbihGPSEwKXt2YXIgSCxSLGo7Y29uc3QgUD17bmFtZTp0aGlz'@; put 'Lm5hbWUsc2VydmVyVXJsOnRoaXMuc2VydmVyVXJsLHNlcnZlclR5cGU6dGhpcy5zZXJ2ZXJUeXBlLGh0dHBzQWdlbnRPcHRpb25zOnRoaXMuaHR0cHNBZ2VudE9wdGlvbnMsYXBwTG9jOnRoaXMuYXBwTG9jLGRvY0NvbmZpZzp0aGlzLmRvY0NvbmZpZyxkZXBsb3lDb25maWc6dGhpcy5kZXBs'@; put 'b3lDb25maWd9O3JldHVybiEobnVsbD09PShIPXRoaXMubWFjcm9Gb2xkZXJzKXx8dm9pZCAwPT09SCkmJkgubGVuZ3RoJiYoUC5tYWNyb0ZvbGRlcnM9dGhpcy5tYWNyb0ZvbGRlcnMpLCEobnVsbD09PShSPXRoaXMucHJvZ3JhbUZvbGRlcnMpfHx2b2lkIDA9PT1SKSYmUi5sZW5ndGgmJihQ'@; put 'LnByb2dyYW1Gb2xkZXJzPXRoaXMucHJvZ3JhbUZvbGRlcnMpLCEobnVsbD09PShqPXRoaXMuYmluYXJ5Rm9sZGVycyl8fHZvaWQgMD09PWopJiZqLmxlbmd0aCYmKFAuYmluYXJ5Rm9sZGVycz10aGlzLmJpbmFyeUZvbGRlcnMpLHRoaXMuYXV0aENvbmZpZyYmKFAuYXV0aENvbmZpZz10aGlz'@; put 'LmF1dGhDb25maWcpLHRoaXMuYXV0aENvbmZpZ1NhczkmJihQLmF1dGhDb25maWdTYXM5PXRoaXMuYXV0aENvbmZpZ1NhczkpLHRoaXMuc2FzanNCdWlsZEZvbGRlcj9QLnNhc2pzQnVpbGRGb2xkZXI9dGhpcy5zYXNqc0J1aWxkRm9sZGVyOkYmJihQLnNhc2pzQnVpbGRGb2xkZXI9cC5ERUZB'@; put 'VUxUX1NBU0pTX0JVSUxEX0ZPTERFUiksdGhpcy5zYXNqc1Jlc3VsdHNGb2xkZXI/UC5zYXNqc1Jlc3VsdHNGb2xkZXI9dGhpcy5zYXNqc1Jlc3VsdHNGb2xkZXI6RiYmKFAuc2FzanNSZXN1bHRzRm9sZGVyPXAuREVGQVVMVF9TQVNKU19SRVNVTFRTX0ZPTERFUiksdGhpcy5zeW5jRGlyZWN0'@; put 'b3JpZXM/UC5zeW5jRGlyZWN0b3JpZXM9dGhpcy5zeW5jRGlyZWN0b3JpZXM6RiYmKFAuc3luY0RpcmVjdG9yaWVzPVtdKSx0aGlzLmJ1aWxkQ29uZmlnP1AuYnVpbGRDb25maWc9dGhpcy5idWlsZENvbmZpZzpGJiYoUC5idWlsZENvbmZpZz17aW5pdFByb2dyYW06IiIsdGVybVByb2dyYW06'@; put 'IiIsYnVpbGRPdXRwdXRGaWxlTmFtZTpgJHt0aGlzLm5hbWV9LnNhc2AsbWFjcm9WYXJzOnt9fSksdGhpcy5qb2JDb25maWc/UC5qb2JDb25maWc9dGhpcy5qb2JDb25maWc6RiYmKFAuam9iQ29uZmlnPXtqb2JGb2xkZXJzOltdLGluaXRQcm9ncmFtOiIiLHRlcm1Qcm9ncmFtOiIiLG1hY3Jv'@; put 'VmFyczp7fX0pLHRoaXMuc2VydmljZUNvbmZpZz9QLnNlcnZpY2VDb25maWc9dGhpcy5zZXJ2aWNlQ29uZmlnOkYmJihQLnNlcnZpY2VDb25maWc9e3NlcnZpY2VGb2xkZXJzOltdLGluaXRQcm9ncmFtOiIiLHRlcm1Qcm9ncmFtOiIiLG1hY3JvVmFyczp7fX0pLHRoaXMuc3RyZWFtQ29uZmln'@; put 'P1Auc3RyZWFtQ29uZmlnPXRoaXMuc3RyZWFtQ29uZmlnOkYmJihQLnN0cmVhbUNvbmZpZz17c3RyZWFtV2ViRm9sZGVyOiIiLHN0cmVhbVdlYjohMSx3ZWJTb3VyY2VQYXRoOiIiLHN0cmVhbVNlcnZpY2VOYW1lOiIiLGFzc2V0UGF0aHM6W119KSx0aGlzLnRlc3RDb25maWc/UC50ZXN0Q29u'@; put 'ZmlnPXRoaXMudGVzdENvbmZpZzpGJiYoUC50ZXN0Q29uZmlnPXtpbml0UHJvZ3JhbToiIix0ZXJtUHJvZ3JhbToiIixtYWNyb1ZhcnM6e30sdGVzdFNldFVwOiIiLHRlc3RUZWFyRG93bjoiIn0pLHRoaXMuc2VydmVyVHlwZT09PV8uU2VydmVyVHlwZS5TYXNWaXlhP1AuY29udGV4dE5hbWU9'@; put 'dGhpcy5jb250ZXh0TmFtZTp0aGlzLnNlcnZlclR5cGU9PT1fLlNlcnZlclR5cGUuU2FzOSYmKFAuc2VydmVyTmFtZT10aGlzLnNlcnZlck5hbWUsUC5yZXBvc2l0b3J5TmFtZT10aGlzLnJlcG9zaXRvcnlOYW1lKSxQfX19LDY3ODE6ZnVuY3Rpb24oY2UsSixiKXsidXNlIHN0cmljdCI7dmFy'@; put 'IEQ9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGcpe3JldHVybiBnJiZnLl9fZXNNb2R1bGU/Zzp7ZGVmYXVsdDpnfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEoudmFsaWRhdGVTYXNqc1Jlc3VsdHNGb2xkZXI9Si52YWxp'@; put 'ZGF0ZVNhc2pzQnVpbGRGb2xkZXI9Si52YWxpZGF0ZVN5bmNEaXJlY3Rvcmllcz1KLnZhbGlkYXRlUmVwb3NpdG9yeU5hbWU9Si52YWxpZGF0ZVN5bmNGb2xkZXI9Si52YWxpZGF0ZVNlcnZlck5hbWU9Si52YWxpZGF0ZUNvbnRleHROYW1lPUoudmFsaWRhdGVTdHJlYW1Db25maWc9Si52YWxp'@; put 'ZGF0ZURlcGxveUNvbmZpZz1KLnZhbGlkYXRlSm9iQ29uZmlnPUoudmFsaWRhdGVUZXN0Q29uZmlnPUoudmFsaWRhdGVTZXJ2aWNlQ29uZmlnPUoudmFsaWRhdGVCdWlsZENvbmZpZz1KLnZhbGlkYXRlQXV0aENvbmZpZ1Nhczk9Si52YWxpZGF0ZUF1dGhDb25maWc9Si52YWxpZGF0ZURvY0Nv'@; put 'bmZpZz1KLnZhbGlkYXRlQXBwTG9jPUoudmFsaWRhdGVIdHRwc0FnZW50T3B0aW9ucz1KLnZhbGlkYXRlU2VydmVyVXJsPUoudmFsaWRhdGVUYXJnZXROYW1lPUoudmFsaWRhdGVTZXJ2ZXJUeXBlPUouREVGQVVMVF9TQVNKU19SRVNVTFRTX0ZPTERFUj1KLkRFRkFVTFRfU0FTSlNfQlVJTERf'@; put 'Rk9MREVSPXZvaWQgMDtjb25zdCBfPUQoYig0ODEpKSxwPWIoMzkwMCk7Si5ERUZBVUxUX1NBU0pTX0JVSUxEX0ZPTERFUj0ic2FzanNidWlsZCIsSi5ERUZBVUxUX1NBU0pTX1JFU1VMVFNfRk9MREVSPSJzYXNqc3Jlc3VsdHMiLEoudmFsaWRhdGVTZXJ2ZXJUeXBlPWc9PntpZighZyl0aHJv'@; put 'dyBuZXcgRXJyb3IoIkludmFsaWQgc2VydmVyIHR5cGU6IGBzZXJ2ZXJUeXBlYCBjYW5ub3QgYmUgbnVsbCBvciB1bmRlZmluZWQuIik7aWYoZyE9PXAuU2VydmVyVHlwZS5TYXM5JiZnIT09cC5TZXJ2ZXJUeXBlLlNhc1ZpeWEmJmchPT1wLlNlcnZlclR5cGUuU2FzanMpdGhyb3cgbmV3IEVy'@; put 'cm9yKGBJbnZhbGlkIHNlcnZlciB0eXBlOiBTdXBwb3J0ZWQgdmFsdWVzIGZvciAgXGBzZXJ2ZXJUeXBlXGAgYXJlICR7cC5TZXJ2ZXJUeXBlLlNhc1ZpeWF9LCAke3AuU2VydmVyVHlwZS5TYXM5fSBhbmQgJHtwLlNlcnZlclR5cGUuU2FzanN9LmApO3JldHVybiBnfSxKLnZhbGlkYXRlVGFy'@; put 'Z2V0TmFtZT1nPT57aWYoIWcpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHRhcmdldCBuYW1lOiBgbmFtZWAgY2Fubm90IGJlIGVtcHR5LCBudWxsIG9yIHVuZGVmaW5lZC4iKTtpZihnLnRyaW0oKS5pbmNsdWRlcygiICIpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCB0YXJnZXQgbmFtZTog'@; put 'YG5hbWVgIGNhbm5vdCBpbmNsdWRlIHNwYWNlcy4iKTtpZighL15bYS16QS1aMC05XC1dKyQvaS50ZXN0KGcpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCB0YXJnZXQgbmFtZTogYG5hbWVgIGNhbiBvbmx5IGNvbnRhaW4gYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYW5kIGRhc2hlcy4iKTty'@; put 'ZXR1cm4gZ30sSi52YWxpZGF0ZVNlcnZlclVybD1nPT57aWYobnVsbD09ZyYmKGc9IiIpLCIiIT09ZyYmIV8uZGVmYXVsdC5pc0h0dHBVcmkoZykmJiFfLmRlZmF1bHQuaXNIdHRwc1VyaShnKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc2VydmVyIFVSTDogYHNlcnZlclVybGAgc2hvdWxk'@; put 'IGVpdGhlciBiZSBhbiBlbXB0eSBzdHJpbmcgb3IgYSB2YWxpZCBVUkwgb2YgdGhlIGZvcm0gaHR0cChzKTovL3lvdXItc2VydmVyLmNvbSg6cG9ydCkuIik7cmV0dXJuIGd9LEoudmFsaWRhdGVIdHRwc0FnZW50T3B0aW9ucz1nPT57aWYoZyl7aWYoIm9iamVjdCIhPXR5cGVvZiBnKXRocm93'@; put 'IG5ldyBFcnJvcigiSW52YWxpZCB2YWx1ZTogYGh0dHBzQWdlbnRPcHRpb25zYCBzaG91bGQgZWl0aGVyIGJlIGFuIGVtcHR5IG9yIGFuIG9iamVjdCBvZiBgSHR0cHNBZ2VudE9wdGlvbnNgIik7aWYobnVsbD09Zy5hbGxvd0luc2VjdXJlUmVxdWVzdHMpZy5hbGxvd0luc2VjdXJlUmVxdWVz'@; put 'dHM9ITE7ZWxzZSBpZigiYm9vbGVhbiIhPXR5cGVvZiBnLmFsbG93SW5zZWN1cmVSZXF1ZXN0cyl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgdmFsdWU6IGBodHRwc0FnZW50T3B0aW9ucy5hbGxvd0luc2VjdXJlUmVxdWVzdHNgIHNob3VsZCBlaXRoZXIgYmUgYW4gZW1wdHkgb3IgYSBib29s'@; put 'ZWFuIik7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBnLmNhUGF0aCYmKGcuY2FQYXRoPXZvaWQgMCksInN0cmluZyIhPXR5cGVvZiBnLmtleVBhdGgmJihnLmtleVBhdGg9dm9pZCAwKSwic3RyaW5nIiE9dHlwZW9mIGcuY2VydFBhdGgmJihnLmNlcnRQYXRoPXZvaWQgMCksZ319LEoudmFsaWRh'@; put 'dGVBcHBMb2M9Zz0+e2lmKCFnKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBhcHAgbG9jYXRpb246IGBhcHBMb2NgIGNhbm5vdCBiZSBlbXB0eSwgbnVsbCBvciB1bmRlZmluZWQuIik7aWYoIWcuc3RhcnRzV2l0aCgiLyIpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBhcHAgbG9jYXRpb246'@; put 'IGBhcHBMb2NgIG11c3Qgc3RhcnQgd2l0aCBhIGAvYC4iKTtyZXR1cm4gZ30sSi52YWxpZGF0ZURvY0NvbmZpZz1nPT57aWYoZ3x8KGc9e30pLCJib29sZWFuIiE9dHlwZW9mIGcuZGlzcGxheU1hY3JvQ29yZSYmKGcuZGlzcGxheU1hY3JvQ29yZT12b2lkIDApLCJib29sZWFuIiE9dHlwZW9m'@; put 'IGcuZW5hYmxlTGluZWFnZSYmKGcuZW5hYmxlTGluZWFnZT12b2lkIDApLCJzdHJpbmciIT10eXBlb2YgZy5vdXREaXJlY3RvcnkmJihnLm91dERpcmVjdG9yeT12b2lkIDApLCJzdHJpbmciPT10eXBlb2YgZy5kYXRhQ29udHJvbGxlclVybCl7aWYoIiIhPT1nLmRhdGFDb250cm9sbGVyVXJs'@; put 'JiYhXy5kZWZhdWx0LmlzSHR0cFVyaShnLmRhdGFDb250cm9sbGVyVXJsKSYmIV8uZGVmYXVsdC5pc0h0dHBzVXJpKGcuZGF0YUNvbnRyb2xsZXJVcmwpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBEYXRhIENvbnRyb2xsZXIgVXJsOiBgZGF0YUNvbnRyb2xsZXJVcmxgIHNob3VsZCBlaXRo'@; put 'ZXIgYmUgYW4gZW1wdHkgc3RyaW5nIG9yIGEgdmFsaWQgVVJMIG9mIHRoZSBmb3JtIGh0dHAocyk6Ly95b3VyLXNlcnZlci5jb20oOnBvcnQpLiIpfWVsc2UgZy5kYXRhQ29udHJvbGxlclVybD12b2lkIDA7cmV0dXJuIGd9LEoudmFsaWRhdGVBdXRoQ29uZmlnPWc9PntpZighZyl0aHJvdyBu'@; put 'ZXcgRXJyb3IoIkludmFsaWQgYXV0aCBjb25maWc6IEpTT04gY2Fubm90IGJlIG51bGwgb3IgdW5kZWZpbmVkLiIpO3JldHVybiBnfSxKLnZhbGlkYXRlQXV0aENvbmZpZ1Nhczk9Zz0+e2lmKCFnKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBhdXRoIGNvbmZpZyBmb3Igc2FzOTogSlNPTiBj'@; put 'YW5ub3QgYmUgbnVsbCBvciB1bmRlZmluZWQuIik7aWYoIWcudXNlck5hbWV8fCFnLnBhc3N3b3JkKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBhdXRoIGNvbmZpZyBmb3Igc2FzOTogdXNlck5hbWUgYW5kIHBhc3N3b3JkIGNhbiBub3QgYmUgZW1wdHkiKTtyZXR1cm4gZ30sSi52YWxpZGF0'@; put 'ZUJ1aWxkQ29uZmlnPShnLHkpPT57aWYoIWcpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGJ1aWxkIGNvbmZpZzogSlNPTiBjYW5ub3QgYmUgbnVsbCBvciB1bmRlZmluZWQuIik7cmV0dXJuIGcuYnVpbGRPdXRwdXRGaWxlTmFtZXx8KGcuYnVpbGRPdXRwdXRGaWxlTmFtZT1gJHt5fS5zYXNg'@; put 'KSxnLmluaXRQcm9ncmFtfHwoZy5pbml0UHJvZ3JhbT0iIiksZy50ZXJtUHJvZ3JhbXx8KGcudGVybVByb2dyYW09IiIpLGcubWFjcm9WYXJzfHwoZy5tYWNyb1ZhcnM9e30pLGd9LEoudmFsaWRhdGVTZXJ2aWNlQ29uZmlnPWc9PntpZighZyl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc2Vy'@; put 'dmljZSBjb25maWc6IEpTT04gY2Fubm90IGJlIG51bGwgb3IgdW5kZWZpbmVkLiIpO3JldHVybiBnLmluaXRQcm9ncmFtfHwoZy5pbml0UHJvZ3JhbT0iIiksZy50ZXJtUHJvZ3JhbXx8KGcudGVybVByb2dyYW09IiIpLGcuc2VydmljZUZvbGRlcnN8fChnLnNlcnZpY2VGb2xkZXJzPVtdKSxn'@; put 'Lm1hY3JvVmFyc3x8KGcubWFjcm9WYXJzPXt9KSxnfSxKLnZhbGlkYXRlVGVzdENvbmZpZz1nPT57aWYoIWcpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHRlc3QgY29uZmlnOiBKU09OIGNhbm5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZC4iKTtyZXR1cm4gZy5pbml0UHJvZ3JhbXx8KGcuaW5p'@; put 'dFByb2dyYW09IiIpLGcudGVybVByb2dyYW18fChnLnRlcm1Qcm9ncmFtPSIiKSxnLm1hY3JvVmFyc3x8KGcubWFjcm9WYXJzPXt9KSxnLnRlc3RTZXRVcHx8KGcudGVzdFNldFVwPSIiKSxnLnRlc3RUZWFyRG93bnx8KGcudGVzdFRlYXJEb3duPSIiKSxnfSxKLnZhbGlkYXRlSm9iQ29uZmln'@; put 'PWc9PntpZighZyl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgam9iIGNvbmZpZzogSlNPTiBjYW5ub3QgYmUgbnVsbCBvciB1bmRlZmluZWQuIik7cmV0dXJuIGcuaW5pdFByb2dyYW18fChnLmluaXRQcm9ncmFtPSIiKSxnLnRlcm1Qcm9ncmFtfHwoZy50ZXJtUHJvZ3JhbT0iIiksZy5qb2JG'@; put 'b2xkZXJzfHwoZy5qb2JGb2xkZXJzPVtdKSxnLm1hY3JvVmFyc3x8KGcubWFjcm9WYXJzPXt9KSxnfSxKLnZhbGlkYXRlRGVwbG95Q29uZmlnPWc9PntpZighZyl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgZGVwbG95IGNvbmZpZzogSlNPTiBjYW5ub3QgYmUgbnVsbCBvciB1bmRlZmluZWQu'@; put 'Iik7cmV0dXJuIGcuZGVwbG95U2VydmljZVBhY2s9ISFnLmRlcGxveVNlcnZpY2VQYWNrLGcuZGVwbG95U2NyaXB0c3x8KGcuZGVwbG95U2NyaXB0cz1bXSksZ30sSi52YWxpZGF0ZVN0cmVhbUNvbmZpZz1nPT57aWYoIWcpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHN0cmVhbSBjb25maWc6'@; put 'IEpTT04gY2Fubm90IGJlIG51bGwgb3IgdW5kZWZpbmVkLiIpO2lmKCEwIT09Zy5zdHJlYW1XZWImJiExIT09Zy5zdHJlYW1XZWIpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHN0cmVhbSBjb25maWc6IGBzdHJlYW1XZWJgIGNhbm5vdCBiZSBhIG5vbi1ib29sZWFuIHZhbHVlLiIpO2lmKGcu'@; put 'c3RyZWFtV2ViJiYhZy5zdHJlYW1XZWJGb2xkZXIpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHN0cmVhbSBjb25maWc6IGBzdHJlYW1XZWJGb2xkZXJgIGNhbm5vdCBiZSBlbXB0eSwgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBgc3RyZWFtV2ViYCBpcyB0cnVlLiIpO2lmKGcuc3RyZWFtV2Vi'@; put 'JiYhZy53ZWJTb3VyY2VQYXRoKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzdHJlYW0gY29uZmlnOiBgd2ViU291cmNlUGF0aGAgc2hvdWxkIGNvbnRhaW4gdGhlIHBhdGggdG8geW91ciBmcm9udGVuZCBhcHBsaWNhdGlvbiBlZyBidWlsZCwgZGlzdCwgb3Igc3JjLiIpO3JldHVybiBnLnN0'@; put 'cmVhbUxvZ28mJiJzdHJpbmciIT10eXBlb2YgZy5zdHJlYW1Mb2dvJiYoZy5zdHJlYW1Mb2dvPXZvaWQgMCksZy5hc3NldFBhdGhzfHwoZy5hc3NldFBhdGhzPVtdKSxnLnN0cmVhbVNlcnZpY2VOYW1lfHwoZy5zdHJlYW1TZXJ2aWNlTmFtZT0iY2xpY2ttZSIpLGd9LEoudmFsaWRhdGVDb250'@; put 'ZXh0TmFtZT0oZyx5KT0+eSE9PXAuU2VydmVyVHlwZS5TYXNWaXlhfHxnP2c6IlNBUyBKb2IgRXhlY3V0aW9uIGNvbXB1dGUgY29udGV4dCIsSi52YWxpZGF0ZVNlcnZlck5hbWU9KGcseSk9PnkhPT1wLlNlcnZlclR5cGUuU2FzOXx8Zz9nOiJTQVNBcHAiLEoudmFsaWRhdGVTeW5jRm9sZGVy'@; put 'PWc9PntpZigic3RyaW5nIj09dHlwZW9mIGcmJmcpcmV0dXJuIGd9LEoudmFsaWRhdGVSZXBvc2l0b3J5TmFtZT0oZyx5KT0+eSE9PXAuU2VydmVyVHlwZS5TYXM5fHxnP2c6IkZvdW5kYXRpb24iLEoudmFsaWRhdGVTeW5jRGlyZWN0b3JpZXM9Zz0+e2lmKCFnKXRocm93IG5ldyBFcnJvcigi'@; put 'SW52YWxpZCBzeW5jRGlyZWN0b3JpZXMgY29uZmlnOiBKU09OIGNhbm5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZC4iKTtyZXR1cm4gZy5mb3JFYWNoKHk9PntpZigheS5sb2NhbHx8IXkucmVtb3RlKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzeW5jRGlyZWN0b3J5IGNvbmZpZzogdmFsdWVz'@; put 'IG9mIHByb3BlcnR5ICdsb2NhbCcgYW5kICdyZW1vdGUgY2FuIG5vdCBiZSBlbXB0eSBvciB1bmRlZmluZWQiKX0pLGd9LEoudmFsaWRhdGVTYXNqc0J1aWxkRm9sZGVyPWc9PntpZigic3RyaW5nIiE9dHlwZW9mIGcpdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHR5cGUgb2YgdmFsdWUgKCR7'@; put 'dHlwZW9mIGd9KSBpcyBwcm92aWRlZCBmb3IgcHJvcGVydHkgJ3Nhc2pzQnVpbGRGb2xkZXInIGluIGNvbmZpZy4gUmVxdWlyZWQgaXMgc3RyaW5nLmApO3JldHVybiBnfHxKLkRFRkFVTFRfU0FTSlNfQlVJTERfRk9MREVSfSxKLnZhbGlkYXRlU2FzanNSZXN1bHRzRm9sZGVyPWc9PntpZigi'@; put 'c3RyaW5nIiE9dHlwZW9mIGcpdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHR5cGUgb2YgdmFsdWUgKCR7dHlwZW9mIGd9KSBpcyBwcm92aWRlZCBmb3IgcHJvcGVydHkgJ3Nhc2pzUmVzdWx0c0ZvbGRlcicgaW4gY29uZmlnLiBSZXF1aXJlZCBpcyBzdHJpbmcuYCk7cmV0dXJuIGd8fEouREVG'@; put 'QVVMVF9TQVNKU19SRVNVTFRTX0ZPTERFUn19LDI5Mjc6ZnVuY3Rpb24oY2UsSixiKXsidXNlIHN0cmljdCI7dmFyIEQ9Yig4NzY0KS5CdWZmZXIsXz10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oSCl7cmV0dXJuIEgmJkguX19lc01vZHVsZT9IOntkZWZhdWx0Okh9fTtP'@; put 'YmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5kZWNvZGVGcm9tQmFzZTY0PUouZW5jb2RlVG9CYXNlNjQ9dm9pZCAwO2NvbnN0IHA9XyhiKDU4MzUpKSxOPSJ7c2FzanNfZW5jb2RlZH0iO0ouZW5jb2RlVG9CYXNlNjQ9SD0+e2NvbnN0IFI9cC5kZWZh'@; put 'dWx0LnJhbmRvbUJ5dGVzKDEwMCkudG9TdHJpbmcoImhleCIpLGo9RC5mcm9tKFIrSCkudG9TdHJpbmcoImJhc2U2NCIpO3JldHVybiBOK2p9LEouZGVjb2RlRnJvbUJhc2U2ND1IPT5ILnN0YXJ0c1dpdGgoTik/KEg9SC5yZXBsYWNlKC9ee3Nhc2pzX2VuY29kZWR9LywiIiksRC5mcm9tKEgs'@; put 'ImJhc2U2NCIpLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIwMCkpOkh9LDU4MTooY2UsSik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEouYnl0ZXNUb1NpemU9dm9pZCAwLEouYnl0ZXNUb1NpemU9KEQsXz0xLHA9MTA5OTUx'@; put 'MTYyNzc3Nik9PntpZigwPT09RClyZXR1cm4iMCBCIjtEPUQ+cD9wOkQ7Y29uc3QgRj1fPDA/MDpfLEg9TWF0aC5mbG9vcihNYXRoLmxvZyhEKS9NYXRoLmxvZygxMDI0KSk7cmV0dXJuKEQvTWF0aC5wb3coMTAyNCxIKSkudG9GaXhlZChGKSsiICIrWyJCIiwiS0IiLCJNQiIsIkdCIiwiVEIi'@; put 'XVtIXX19LDg2NTM6KGNlLEopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLmNodW5rPXZvaWQgMCxKLmNodW5rPWZ1bmN0aW9uIGIoRCxfPTIyMCl7cmV0dXJuIEQubGVuZ3RoPD1fP1tEXTooRC5tYXRjaChuZXcgUmVn'@; put 'RXhwKCIuezEsIitfKyJ9IiwiZyIpKXx8W10pLmZpbHRlcihwPT4hIXApfX0sNjQ1NzooY2UsSik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEouZGlmZj12b2lkIDAsSi5kaWZmPWZ1bmN0aW9uIGIoRCxfKXtyZXR1cm5b'@; put 'Li4uRC5maWx0ZXIodz0+Im9iamVjdCI9PXR5cGVvZiB3PyFKU09OLnN0cmluZ2lmeShfKS5pbmNsdWRlcyhKU09OLnN0cmluZ2lmeSh3KSk6IV8uaW5jbHVkZXModykpLC4uLl8uZmlsdGVyKHc9PiJvYmplY3QiPT10eXBlb2Ygdz8hSlNPTi5zdHJpbmdpZnkoRCkuaW5jbHVkZXMoSlNPTi5z'@; put 'dHJpbmdpZnkodykpOiFELmluY2x1ZGVzKHcpKV19fSwxNTI5OihjZSxKKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5nZXRFeGVjdXRvclBhdGg9dm9pZCAwO2NvbnN0IGI9e1NBU1ZJWUE6Ii9TQVNKb2JFeGVjdXRp'@; put 'b24iLFNBUzk6Ii9TQVNTdG9yZWRQcm9jZXNzL2RvIn07Si5nZXRFeGVjdXRvclBhdGg9Xz0+Xz8oXz1fLnRvVXBwZXJDYXNlKCksYltfXXx8IiIpOiIifSwzMzE2OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9'@; put 'KSxKLmdldFRyZWVFeGFtcGxlPUouaXNGaWxlVHJlZT12b2lkIDA7Y29uc3QgRD1iKDM5MDApO0ouaXNGaWxlVHJlZT1IPT5IJiZILm1lbWJlcnMmJkFycmF5LmlzQXJyYXkoSC5tZW1iZXJzKSYmMD09PUgubWVtYmVycy5maWx0ZXIoUj0+IXAoUikmJiFOKFIpJiYhdyhSKSkubGVuZ3RoO2Nv'@; put 'bnN0IHA9SD0+SCYmInN0cmluZyI9PXR5cGVvZiBILm5hbWUmJkgudHlwZT09PUQuTWVtYmVyVHlwZS5zZXJ2aWNlJiYic3RyaW5nIj09dHlwZW9mIEguY29kZSxOPUg9PkgmJiJzdHJpbmciPT10eXBlb2YgSC5uYW1lJiZILnR5cGU9PT1ELk1lbWJlclR5cGUuZmlsZSYmInN0cmluZyI9PXR5'@; put 'cGVvZiBILmNvZGUsdz1IPT5IJiYic3RyaW5nIj09dHlwZW9mIEgubmFtZSYmSC50eXBlPT09RC5NZW1iZXJUeXBlLmZvbGRlciYmSC5tZW1iZXJzJiZBcnJheS5pc0FycmF5KEgubWVtYmVycykmJjA9PT1ILm1lbWJlcnMuZmlsdGVyKFI9PiFwKFIpJiYhTihSKSYmIXcoUikpLmxlbmd0aDtK'@; put 'LmdldFRyZWVFeGFtcGxlPSgpPT4oe21lbWJlcnM6W3tuYW1lOiJqb2JzIix0eXBlOkQuTWVtYmVyVHlwZS5mb2xkZXIsbWVtYmVyczpbe25hbWU6ImV4dHJhY3QiLHR5cGU6RC5NZW1iZXJUeXBlLmZvbGRlcixtZW1iZXJzOlt7bmFtZToibWFrZWRhdGExIix0eXBlOkQuTWVtYmVyVHlwZS5z'@; put 'ZXJ2aWNlLGNvZGU6IiVwdXQgSGVsbG8gV29ybGQhOyJ9XX1dfV19KX0sNjI2NjpmdW5jdGlvbihjZSxKLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgRD10aGlzJiZ0aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oUCxMLFksQil7dm9pZCAwPT09QiYmKEI9WSksT2Jq'@; put 'ZWN0LmRlZmluZVByb3BlcnR5KFAsQix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTFtZXX19KX06ZnVuY3Rpb24oUCxMLFksQil7dm9pZCAwPT09QiYmKEI9WSksUFtCXT1MW1ldfSksXz10aGlzJiZ0aGlzLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oUCxMKXtmb3IodmFy'@; put 'IFkgaW4gUCkiZGVmYXVsdCIhPT1ZJiYhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEwsWSkmJkQoTCxQLFkpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5jaHVuaz1KLmRpZmY9Si5ieXRlc1RvU2l6ZT1KLmdldEV4ZWN1'@; put 'dG9yUGF0aD1KLmRlY29kZUZyb21CYXNlNjQ9Si5lbmNvZGVUb0Jhc2U2ND1KLnVybE9yaWdpbj1KLmdlbmVyYXRlUGF0aEZvclNhcz1KLmdldE1hY3Jvc1BhdGg9Si5lc2NhcGVXaW5TbGFzaGVzPUouaXNMaW51eD1KLmlzV2luZG93cz1KLnVuaXFBcnJheT1KLmFzeW5jRm9yRWFjaD1KLnV1'@; put 'aWR2ND12b2lkIDA7dmFyIHA9YigxMTMxKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwidXVpZHY0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcC51dWlkdjR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEosImFzeW5jRm9yRWFjaCIse2VudW1lcmFibGU6ITAsZ2V0'@; put 'OmZ1bmN0aW9uKCl7cmV0dXJuIHAuYXN5bmNGb3JFYWNofX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJ1bmlxQXJyYXkiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBwLnVuaXFBcnJheX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiaXNXaW5kb3dzIix7ZW51'@; put 'bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcC5pc1dpbmRvd3N9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEosImlzTGludXgiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBwLmlzTGludXh9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEosImVzY2FwZVdp'@; put 'blNsYXNoZXMiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBwLmVzY2FwZVdpblNsYXNoZXN9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEosImdldE1hY3Jvc1BhdGgiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBwLmdldE1hY3Jvc1BhdGh9fSks'@; put 'T2JqZWN0LmRlZmluZVByb3BlcnR5KEosImdlbmVyYXRlUGF0aEZvclNhcyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHAuZ2VuZXJhdGVQYXRoRm9yU2FzfX0pLF8oYigzMzE2KSxKKTt2YXIgTj1iKDk2NTIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJ1cmxPcmln'@; put 'aW4iLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBOLnVybE9yaWdpbn19KTt2YXIgdz1iKDI5MjcpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJlbmNvZGVUb0Jhc2U2NCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHcuZW5jb2RlVG9CYXNlNjR9'@; put 'fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEosImRlY29kZUZyb21CYXNlNjQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB3LmRlY29kZUZyb21CYXNlNjR9fSk7dmFyIEY9YigxNTI5KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiZ2V0RXhlY3V0b3JQYXRoIix7ZW51'@; put 'bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRi5nZXRFeGVjdXRvclBhdGh9fSk7dmFyIEg9Yig1ODEpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJieXRlc1RvU2l6ZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEguYnl0ZXNUb1NpemV9fSk7dmFyIFI9'@; put 'Yig2NDU3KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiZGlmZiIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFIuZGlmZn19KTt2YXIgaj1iKDg2NTMpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJjaHVuayIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0'@; put 'dXJuIGouY2h1bmt9fSl9LDk2NTI6KGNlLEopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLnVybE9yaWdpbj12b2lkIDAsSi51cmxPcmlnaW49RD0+e2lmKCIiPT09RClyZXR1cm4gRDtsZXQgXzt0cnl7Xz1uZXcgVVJM'@; put 'KEQpLm9yaWdpbn1jYXRjaHt0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgVVJMLiIpfXJldHVybiBffX0sMTEzMTpmdW5jdGlvbihjZSxKLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgXz1iKDQxNTUpLHA9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKFcsWixYLFEpe3JldHVybiBuZXcoWHx8'@; put 'KFg9UHJvbWlzZSkpKGZ1bmN0aW9uKHRlLGllKXtmdW5jdGlvbiBzZShUZSl7dHJ5e19lKFEubmV4dChUZSkpfWNhdGNoKFNlKXtpZShTZSl9fWZ1bmN0aW9uIGdlKFRlKXt0cnl7X2UoUS50aHJvdyhUZSkpfWNhdGNoKFNlKXtpZShTZSl9fWZ1bmN0aW9uIF9lKFRlKXtUZS5kb25lP3RlKFRl'@; put 'LnZhbHVlKTpmdW5jdGlvbiBxKHRlKXtyZXR1cm4gdGUgaW5zdGFuY2VvZiBYP3RlOm5ldyBYKGZ1bmN0aW9uKGllKXtpZSh0ZSl9KX0oVGUudmFsdWUpLnRoZW4oc2UsZ2UpfV9lKChRPVEuYXBwbHkoVyxafHxbXSkpLm5leHQoKSl9KX0sTj10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8'@; put 'ZnVuY3Rpb24oVyl7cmV0dXJuIFcmJlcuX19lc01vZHVsZT9XOntkZWZhdWx0Old9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5nZW5lcmF0ZVBhdGhGb3JTYXM9Si5nZXRNYWNyb3NQYXRoPUouZXNjYXBlV2luU2xhc2hlcz1KLmlzTGludXg9'@; put 'Si5pc1dpbmRvd3M9Si51bmlxQXJyYXk9Si51dWlkdjQ9Si5hc3luY0ZvckVhY2g9dm9pZCAwO2NvbnN0IHc9TihiKDI1MjApKTtKLmFzeW5jRm9yRWFjaD1mdW5jdGlvbiBGKFcsWil7cmV0dXJuIHAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2ZvcihsZXQgWD0wO1g8Vy5sZW5n'@; put 'dGg7WCsrKXlpZWxkIFooV1tYXSxYLFcpfSl9LEoudXVpZHY0PSgpPT4ieHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4Ii5yZXBsYWNlKC9beHldL2csVz0+e2NvbnN0IFo9MTYqTWF0aC5yYW5kb20oKXwwO3JldHVybigieCI9PVc/WjozJlp8OCkudG9TdHJpbmcoMTYpfSks'@; put 'Si51bmlxQXJyYXk9Vz0+QXJyYXkuZnJvbShuZXcgU2V0KFcpKSxKLmlzV2luZG93cz0oKT0+IndpbjMyIj09PV8ucGxhdGZvcm0sSi5pc0xpbnV4PSgpPT4ibGludXgiPT09Xy5wbGF0Zm9ybSxKLmVzY2FwZVdpblNsYXNoZXM9Vz0+KDAsSi5pc1dpbmRvd3MpKCk/Vy5yZXBsYWNlKC9cXC9n'@; put 'LCJcXFxcIik6VyxKLmdldE1hY3Jvc1BhdGg9KCk9PncuZGVmYXVsdC5qb2luKCIvIiwiLi4iLCJtYWNyb3MiKSxKLmdlbmVyYXRlUGF0aEZvclNhcz1XPT5XLnJlcGxhY2UoL1xcL2csIi8iKX0sOTgwOTooY2UsSixiKT0+e3ZhciBEPUo7RC5iaWdudW09Yig0NTkwKSxELmRlZmluZT1iKDI1'@; put 'MDApLmRlZmluZSxELmJhc2U9YigxOTc5KSxELmNvbnN0YW50cz1iKDY4MjYpLEQuZGVjb2RlcnM9Yig4MzA3KSxELmVuY29kZXJzPWIoNjU3OSl9LDI1MDA6KGNlLEosYik9Pnt2YXIgRD1iKDk4MDkpLF89Yig1NzE3KTtmdW5jdGlvbiBOKHcsRil7dGhpcy5uYW1lPXcsdGhpcy5ib2R5PUYs'@; put 'dGhpcy5kZWNvZGVycz17fSx0aGlzLmVuY29kZXJzPXt9fUouZGVmaW5lPWZ1bmN0aW9uKEYsSCl7cmV0dXJuIG5ldyBOKEYsSCl9LE4ucHJvdG90eXBlLl9jcmVhdGVOYW1lZD1mdW5jdGlvbihGKXt2YXIgSDt0cnl7SD1iKDUxNDApLnJ1bkluVGhpc0NvbnRleHQoIihmdW5jdGlvbiAiK3Ro'@; put 'aXMubmFtZSsiKGVudGl0eSkge1xuICB0aGlzLl9pbml0TmFtZWQoZW50aXR5KTtcbn0pIil9Y2F0Y2h7SD1mdW5jdGlvbihqKXt0aGlzLl9pbml0TmFtZWQoail9fXJldHVybiBfKEgsRiksSC5wcm90b3R5cGUuX2luaXROYW1lZD1mdW5jdGlvbihqKXtGLmNhbGwodGhpcyxqKX0sbmV3IEgo'@; put 'dGhpcyl9LE4ucHJvdG90eXBlLl9nZXREZWNvZGVyPWZ1bmN0aW9uKEYpe3JldHVybiB0aGlzLmRlY29kZXJzLmhhc093blByb3BlcnR5KEY9Rnx8ImRlciIpfHwodGhpcy5kZWNvZGVyc1tGXT10aGlzLl9jcmVhdGVOYW1lZChELmRlY29kZXJzW0ZdKSksdGhpcy5kZWNvZGVyc1tGXX0sTi5w'@; put 'cm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9uKEYsSCxSKXtyZXR1cm4gdGhpcy5fZ2V0RGVjb2RlcihIKS5kZWNvZGUoRixSKX0sTi5wcm90b3R5cGUuX2dldEVuY29kZXI9ZnVuY3Rpb24oRil7cmV0dXJuIHRoaXMuZW5jb2RlcnMuaGFzT3duUHJvcGVydHkoRj1GfHwiZGVyIil8fCh0aGlzLmVu'@; put 'Y29kZXJzW0ZdPXRoaXMuX2NyZWF0ZU5hbWVkKEQuZW5jb2RlcnNbRl0pKSx0aGlzLmVuY29kZXJzW0ZdfSxOLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24oRixILFIpe3JldHVybiB0aGlzLl9nZXRFbmNvZGVyKEgpLmVuY29kZShGLFIpfX0sNjYyNTooY2UsSixiKT0+e3ZhciBEPWIoNTcx'@; put 'NyksXz1iKDE5NzkpLlJlcG9ydGVyLHA9Yig4NzY0KS5CdWZmZXI7ZnVuY3Rpb24gTihGLEgpe18uY2FsbCh0aGlzLEgpLHAuaXNCdWZmZXIoRik/KHRoaXMuYmFzZT1GLHRoaXMub2Zmc2V0PTAsdGhpcy5sZW5ndGg9Ri5sZW5ndGgpOnRoaXMuZXJyb3IoIklucHV0IG5vdCBCdWZmZXIiKX1m'@; put 'dW5jdGlvbiB3KEYsSCl7aWYoQXJyYXkuaXNBcnJheShGKSl0aGlzLmxlbmd0aD0wLHRoaXMudmFsdWU9Ri5tYXAoZnVuY3Rpb24oUil7cmV0dXJuIFIgaW5zdGFuY2VvZiB3fHwoUj1uZXcgdyhSLEgpKSx0aGlzLmxlbmd0aCs9Ui5sZW5ndGgsUn0sdGhpcyk7ZWxzZSBpZigibnVtYmVyIj09'@; put 'dHlwZW9mIEYpe2lmKCEoMDw9RiYmRjw9MjU1KSlyZXR1cm4gSC5lcnJvcigibm9uLWJ5dGUgRW5jb2RlckJ1ZmZlciB2YWx1ZSIpO3RoaXMudmFsdWU9Rix0aGlzLmxlbmd0aD0xfWVsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBGKXRoaXMudmFsdWU9Rix0aGlzLmxlbmd0aD1wLmJ5dGVMZW5n'@; put 'dGgoRik7ZWxzZXtpZighcC5pc0J1ZmZlcihGKSlyZXR1cm4gSC5lcnJvcigiVW5zdXBwb3J0ZWQgdHlwZTogIit0eXBlb2YgRik7dGhpcy52YWx1ZT1GLHRoaXMubGVuZ3RoPUYubGVuZ3RofX1EKE4sXyksSi5DPU4sTi5wcm90b3R5cGUuc2F2ZT1mdW5jdGlvbigpe3JldHVybntvZmZzZXQ6'@; put 'dGhpcy5vZmZzZXQscmVwb3J0ZXI6Xy5wcm90b3R5cGUuc2F2ZS5jYWxsKHRoaXMpfX0sTi5wcm90b3R5cGUucmVzdG9yZT1mdW5jdGlvbihIKXt2YXIgUj1uZXcgTih0aGlzLmJhc2UpO3JldHVybiBSLm9mZnNldD1ILm9mZnNldCxSLmxlbmd0aD10aGlzLm9mZnNldCx0aGlzLm9mZnNldD1I'@; put 'Lm9mZnNldCxfLnByb3RvdHlwZS5yZXN0b3JlLmNhbGwodGhpcyxILnJlcG9ydGVyKSxSfSxOLnByb3RvdHlwZS5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub2Zmc2V0PT09dGhpcy5sZW5ndGh9LE4ucHJvdG90eXBlLnJlYWRVSW50OD1mdW5jdGlvbihIKXtyZXR1cm4gdGhpcy5v'@; put 'ZmZzZXQrMTw9dGhpcy5sZW5ndGg/dGhpcy5iYXNlLnJlYWRVSW50OCh0aGlzLm9mZnNldCsrLCEwKTp0aGlzLmVycm9yKEh8fCJEZWNvZGVyQnVmZmVyIG92ZXJydW4iKX0sTi5wcm90b3R5cGUuc2tpcD1mdW5jdGlvbihILFIpe2lmKCEodGhpcy5vZmZzZXQrSDw9dGhpcy5sZW5ndGgpKXJl'@; put 'dHVybiB0aGlzLmVycm9yKFJ8fCJEZWNvZGVyQnVmZmVyIG92ZXJydW4iKTt2YXIgaj1uZXcgTih0aGlzLmJhc2UpO3JldHVybiBqLl9yZXBvcnRlclN0YXRlPXRoaXMuX3JlcG9ydGVyU3RhdGUsai5vZmZzZXQ9dGhpcy5vZmZzZXQsai5sZW5ndGg9dGhpcy5vZmZzZXQrSCx0aGlzLm9mZnNl'@; put 'dCs9SCxqfSxOLnByb3RvdHlwZS5yYXc9ZnVuY3Rpb24oSCl7cmV0dXJuIHRoaXMuYmFzZS5zbGljZShIP0gub2Zmc2V0OnRoaXMub2Zmc2V0LHRoaXMubGVuZ3RoKX0sSi5SPXcsdy5wcm90b3R5cGUuam9pbj1mdW5jdGlvbihILFIpe3JldHVybiBIfHwoSD1uZXcgcCh0aGlzLmxlbmd0aCkp'@; put 'LFJ8fChSPTApLDA9PT10aGlzLmxlbmd0aHx8KEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSk/dGhpcy52YWx1ZS5mb3JFYWNoKGZ1bmN0aW9uKGope2ouam9pbihILFIpLFIrPWoubGVuZ3RofSk6KCJudW1iZXIiPT10eXBlb2YgdGhpcy52YWx1ZT9IW1JdPXRoaXMudmFsdWU6InN0cmluZyI9'@; put 'PXR5cGVvZiB0aGlzLnZhbHVlP0gud3JpdGUodGhpcy52YWx1ZSxSKTpwLmlzQnVmZmVyKHRoaXMudmFsdWUpJiZ0aGlzLnZhbHVlLmNvcHkoSCxSKSxSKz10aGlzLmxlbmd0aCkpLEh9fSwxOTc5OihjZSxKLGIpPT57dmFyIEQ9SjtELlJlcG9ydGVyPWIoODQ2NSkuYixELkRlY29kZXJCdWZm'@; put 'ZXI9Yig2NjI1KS5DLEQuRW5jb2RlckJ1ZmZlcj1iKDY2MjUpLlIsRC5Ob2RlPWIoMTk0OSl9LDE5NDk6KGNlLEosYik9Pnt2YXIgRD1iKDE5NzkpLlJlcG9ydGVyLF89YigxOTc5KS5FbmNvZGVyQnVmZmVyLHA9YigxOTc5KS5EZWNvZGVyQnVmZmVyLE49Yig5NzQ2KSx3PVsic2VxIiwic2Vx'@; put 'b2YiLCJzZXQiLCJzZXRvZiIsIm9iamlkIiwiYm9vbCIsImdlbnRpbWUiLCJ1dGN0aW1lIiwibnVsbF8iLCJlbnVtIiwiaW50Iiwib2JqRGVzYyIsImJpdHN0ciIsImJtcHN0ciIsImNoYXJzdHIiLCJnZW5zdHIiLCJncmFwaHN0ciIsImlhNXN0ciIsImlzbzY0NnN0ciIsIm51bXN0ciIsIm9j'@; put 'dHN0ciIsInByaW50c3RyIiwidDYxc3RyIiwidW5pc3RyIiwidXRmOHN0ciIsInZpZGVvc3RyIl0sRj1bImtleSIsIm9iaiIsInVzZSIsIm9wdGlvbmFsIiwiZXhwbGljaXQiLCJpbXBsaWNpdCIsImRlZiIsImNob2ljZSIsImFueSIsImNvbnRhaW5zIl0uY29uY2F0KHcpO2Z1bmN0aW9uIFIo'@; put 'UCxMKXt2YXIgWT17fTt0aGlzLl9iYXNlU3RhdGU9WSxZLmVuYz1QLFkucGFyZW50PUx8fG51bGwsWS5jaGlsZHJlbj1udWxsLFkudGFnPW51bGwsWS5hcmdzPW51bGwsWS5yZXZlcnNlQXJncz1udWxsLFkuY2hvaWNlPW51bGwsWS5vcHRpb25hbD0hMSxZLmFueT0hMSxZLm9iaj0hMSxZLnVz'@; put 'ZT1udWxsLFkudXNlRGVjb2Rlcj1udWxsLFkua2V5PW51bGwsWS5kZWZhdWx0PW51bGwsWS5leHBsaWNpdD1udWxsLFkuaW1wbGljaXQ9bnVsbCxZLmNvbnRhaW5zPW51bGwsWS5wYXJlbnR8fChZLmNoaWxkcmVuPVtdLHRoaXMuX3dyYXAoKSl9Y2UuZXhwb3J0cz1SO3ZhciBqPVsiZW5jIiwi'@; put 'cGFyZW50IiwiY2hpbGRyZW4iLCJ0YWciLCJhcmdzIiwicmV2ZXJzZUFyZ3MiLCJjaG9pY2UiLCJvcHRpb25hbCIsImFueSIsIm9iaiIsInVzZSIsImFsdGVyZWRVc2UiLCJrZXkiLCJkZWZhdWx0IiwiZXhwbGljaXQiLCJpbXBsaWNpdCIsImNvbnRhaW5zIl07Ui5wcm90b3R5cGUuY2xvbmU9'@; put 'ZnVuY3Rpb24oKXt2YXIgTD10aGlzLl9iYXNlU3RhdGUsWT17fTtqLmZvckVhY2goZnVuY3Rpb24oVyl7WVtXXT1MW1ddfSk7dmFyIEI9bmV3IHRoaXMuY29uc3RydWN0b3IoWS5wYXJlbnQpO3JldHVybiBCLl9iYXNlU3RhdGU9WSxCfSxSLnByb3RvdHlwZS5fd3JhcD1mdW5jdGlvbigpe3Zh'@; put 'ciBMPXRoaXMuX2Jhc2VTdGF0ZTtGLmZvckVhY2goZnVuY3Rpb24oWSl7dGhpc1tZXT1mdW5jdGlvbigpe3ZhciBXPW5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMpO3JldHVybiBMLmNoaWxkcmVuLnB1c2goVyksV1tZXS5hcHBseShXLGFyZ3VtZW50cyl9fSx0aGlzKX0sUi5wcm90b3R5cGUu'@; put 'X2luaXQ9ZnVuY3Rpb24oTCl7dmFyIFk9dGhpcy5fYmFzZVN0YXRlO04obnVsbD09PVkucGFyZW50KSxMLmNhbGwodGhpcyksWS5jaGlsZHJlbj1ZLmNoaWxkcmVuLmZpbHRlcihmdW5jdGlvbihCKXtyZXR1cm4gQi5fYmFzZVN0YXRlLnBhcmVudD09PXRoaXN9LHRoaXMpLE4uZXF1YWwoWS5j'@; put 'aGlsZHJlbi5sZW5ndGgsMSwiUm9vdCBub2RlIGNhbiBoYXZlIG9ubHkgb25lIGNoaWxkIil9LFIucHJvdG90eXBlLl91c2VBcmdzPWZ1bmN0aW9uKEwpe3ZhciBZPXRoaXMuX2Jhc2VTdGF0ZSxCPUwuZmlsdGVyKGZ1bmN0aW9uKFcpe3JldHVybiBXIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1'@; put 'Y3Rvcn0sdGhpcyk7TD1MLmZpbHRlcihmdW5jdGlvbihXKXtyZXR1cm4hKFcgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKX0sdGhpcyksMCE9PUIubGVuZ3RoJiYoTihudWxsPT09WS5jaGlsZHJlbiksWS5jaGlsZHJlbj1CLEIuZm9yRWFjaChmdW5jdGlvbihXKXtXLl9iYXNlU3RhdGUu'@; put 'cGFyZW50PXRoaXN9LHRoaXMpKSwwIT09TC5sZW5ndGgmJihOKG51bGw9PT1ZLmFyZ3MpLFkuYXJncz1MLFkucmV2ZXJzZUFyZ3M9TC5tYXAoZnVuY3Rpb24oVyl7aWYoIm9iamVjdCIhPXR5cGVvZiBXfHxXLmNvbnN0cnVjdG9yIT09T2JqZWN0KXJldHVybiBXO3ZhciBaPXt9O3JldHVybiBP'@; put 'YmplY3Qua2V5cyhXKS5mb3JFYWNoKGZ1bmN0aW9uKFgpe1g9PSgwfFgpJiYoWHw9MCksWltXW1hdXT1YfSksWn0pKX0sWyJfcGVla1RhZyIsIl9kZWNvZGVUYWciLCJfdXNlIiwiX2RlY29kZVN0ciIsIl9kZWNvZGVPYmppZCIsIl9kZWNvZGVUaW1lIiwiX2RlY29kZU51bGwiLCJfZGVjb2Rl'@; put 'SW50IiwiX2RlY29kZUJvb2wiLCJfZGVjb2RlTGlzdCIsIl9lbmNvZGVDb21wb3NpdGUiLCJfZW5jb2RlU3RyIiwiX2VuY29kZU9iamlkIiwiX2VuY29kZVRpbWUiLCJfZW5jb2RlTnVsbCIsIl9lbmNvZGVJbnQiLCJfZW5jb2RlQm9vbCJdLmZvckVhY2goZnVuY3Rpb24oUCl7Ui5wcm90b3R5'@; put 'cGVbUF09ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoUCsiIG5vdCBpbXBsZW1lbnRlZCBmb3IgZW5jb2Rpbmc6ICIrdGhpcy5fYmFzZVN0YXRlLmVuYyl9fSksdy5mb3JFYWNoKGZ1bmN0aW9uKFApe1IucHJvdG90eXBlW1BdPWZ1bmN0aW9uKCl7dmFyIFk9dGhpcy5fYmFzZVN0YXRlLEI9'@; put 'QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtyZXR1cm4gTihudWxsPT09WS50YWcpLFkudGFnPVAsdGhpcy5fdXNlQXJncyhCKSx0aGlzfX0pLFIucHJvdG90eXBlLnVzZT1mdW5jdGlvbihMKXtOKEwpO3ZhciBZPXRoaXMuX2Jhc2VTdGF0ZTtyZXR1cm4gTihudWxsPT09'@; put 'WS51c2UpLFkudXNlPUwsdGhpc30sUi5wcm90b3R5cGUub3B0aW9uYWw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmFzZVN0YXRlLm9wdGlvbmFsPSEwLHRoaXN9LFIucHJvdG90eXBlLmRlZj1mdW5jdGlvbihMKXt2YXIgWT10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIE4obnVsbD09PVkuZGVm'@; put 'YXVsdCksWS5kZWZhdWx0PUwsWS5vcHRpb25hbD0hMCx0aGlzfSxSLnByb3RvdHlwZS5leHBsaWNpdD1mdW5jdGlvbihMKXt2YXIgWT10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIE4obnVsbD09PVkuZXhwbGljaXQmJm51bGw9PT1ZLmltcGxpY2l0KSxZLmV4cGxpY2l0PUwsdGhpc30sUi5wcm90'@; put 'b3R5cGUuaW1wbGljaXQ9ZnVuY3Rpb24oTCl7dmFyIFk9dGhpcy5fYmFzZVN0YXRlO3JldHVybiBOKG51bGw9PT1ZLmV4cGxpY2l0JiZudWxsPT09WS5pbXBsaWNpdCksWS5pbXBsaWNpdD1MLHRoaXN9LFIucHJvdG90eXBlLm9iaj1mdW5jdGlvbigpe3ZhciBMPXRoaXMuX2Jhc2VTdGF0ZSxZ'@; put 'PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7cmV0dXJuIEwub2JqPSEwLDAhPT1ZLmxlbmd0aCYmdGhpcy5fdXNlQXJncyhZKSx0aGlzfSxSLnByb3RvdHlwZS5rZXk9ZnVuY3Rpb24oTCl7dmFyIFk9dGhpcy5fYmFzZVN0YXRlO3JldHVybiBOKG51bGw9PT1ZLmtleSks'@; put 'WS5rZXk9TCx0aGlzfSxSLnByb3RvdHlwZS5hbnk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmFzZVN0YXRlLmFueT0hMCx0aGlzfSxSLnByb3RvdHlwZS5jaG9pY2U9ZnVuY3Rpb24oTCl7dmFyIFk9dGhpcy5fYmFzZVN0YXRlO3JldHVybiBOKG51bGw9PT1ZLmNob2ljZSksWS5jaG9pY2U9'@; put 'TCx0aGlzLl91c2VBcmdzKE9iamVjdC5rZXlzKEwpLm1hcChmdW5jdGlvbihCKXtyZXR1cm4gTFtCXX0pKSx0aGlzfSxSLnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbihMKXt2YXIgWT10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIE4obnVsbD09PVkudXNlKSxZLmNvbnRhaW5zPUwsdGhpc30s'@; put 'Ui5wcm90b3R5cGUuX2RlY29kZT1mdW5jdGlvbihMLFkpe3ZhciBCPXRoaXMuX2Jhc2VTdGF0ZTtpZihudWxsPT09Qi5wYXJlbnQpcmV0dXJuIEwud3JhcFJlc3VsdChCLmNoaWxkcmVuWzBdLl9kZWNvZGUoTCxZKSk7dmFyIHRlLFc9Qi5kZWZhdWx0LFo9ITAsWD1udWxsO2lmKG51bGwhPT1C'@; put 'LmtleSYmKFg9TC5lbnRlcktleShCLmtleSkpLEIub3B0aW9uYWwpe3ZhciBRPW51bGw7aWYobnVsbCE9PUIuZXhwbGljaXQ/UT1CLmV4cGxpY2l0Om51bGwhPT1CLmltcGxpY2l0P1E9Qi5pbXBsaWNpdDpudWxsIT09Qi50YWcmJihRPUIudGFnKSxudWxsIT09UXx8Qi5hbnkpe2lmKFo9dGhp'@; put 'cy5fcGVla1RhZyhMLFEsQi5hbnkpLEwuaXNFcnJvcihaKSlyZXR1cm4gWn1lbHNle3ZhciBxPUwuc2F2ZSgpO3RyeXtudWxsPT09Qi5jaG9pY2U/dGhpcy5fZGVjb2RlR2VuZXJpYyhCLnRhZyxMLFkpOnRoaXMuX2RlY29kZUNob2ljZShMLFkpLFo9ITB9Y2F0Y2h7Wj0hMX1MLnJlc3RvcmUo'@; put 'cSl9fWlmKEIub2JqJiZaJiYodGU9TC5lbnRlck9iamVjdCgpKSxaKXtpZihudWxsIT09Qi5leHBsaWNpdCl7dmFyIGllPXRoaXMuX2RlY29kZVRhZyhMLEIuZXhwbGljaXQpO2lmKEwuaXNFcnJvcihpZSkpcmV0dXJuIGllO0w9aWV9dmFyIHNlPUwub2Zmc2V0O2lmKG51bGw9PT1CLnVzZSYm'@; put 'bnVsbD09PUIuY2hvaWNlKXtCLmFueSYmKHE9TC5zYXZlKCkpO3ZhciBnZT10aGlzLl9kZWNvZGVUYWcoTCxudWxsIT09Qi5pbXBsaWNpdD9CLmltcGxpY2l0OkIudGFnLEIuYW55KTtpZihMLmlzRXJyb3IoZ2UpKXJldHVybiBnZTtCLmFueT9XPUwucmF3KHEpOkw9Z2V9aWYoWSYmWS50cmFj'@; put 'ayYmbnVsbCE9PUIudGFnJiZZLnRyYWNrKEwucGF0aCgpLHNlLEwubGVuZ3RoLCJ0YWdnZWQiKSxZJiZZLnRyYWNrJiZudWxsIT09Qi50YWcmJlkudHJhY2soTC5wYXRoKCksTC5vZmZzZXQsTC5sZW5ndGgsImNvbnRlbnQiKSxCLmFueXx8KFc9bnVsbD09PUIuY2hvaWNlP3RoaXMuX2RlY29k'@; put 'ZUdlbmVyaWMoQi50YWcsTCxZKTp0aGlzLl9kZWNvZGVDaG9pY2UoTCxZKSksTC5pc0Vycm9yKFcpKXJldHVybiBXO2lmKCFCLmFueSYmbnVsbD09PUIuY2hvaWNlJiZudWxsIT09Qi5jaGlsZHJlbiYmQi5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKFNlKXtTZS5fZGVjb2RlKEwsWSl9KSxC'@; put 'LmNvbnRhaW5zJiYoIm9jdHN0ciI9PT1CLnRhZ3x8ImJpdHN0ciI9PT1CLnRhZykpe3ZhciBfZT1uZXcgcChXKTtXPXRoaXMuX2dldFVzZShCLmNvbnRhaW5zLEwuX3JlcG9ydGVyU3RhdGUub2JqKS5fZGVjb2RlKF9lLFkpfX1yZXR1cm4gQi5vYmomJlomJihXPUwubGVhdmVPYmplY3QodGUp'@; put 'KSxudWxsPT09Qi5rZXl8fG51bGw9PT1XJiYhMCE9PVo/bnVsbCE9PVgmJkwuZXhpdEtleShYKTpMLmxlYXZlS2V5KFgsQi5rZXksVyksV30sUi5wcm90b3R5cGUuX2RlY29kZUdlbmVyaWM9ZnVuY3Rpb24oTCxZLEIpe3ZhciBXPXRoaXMuX2Jhc2VTdGF0ZTtyZXR1cm4ic2VxIj09PUx8fCJz'@; put 'ZXQiPT09TD9udWxsOiJzZXFvZiI9PT1MfHwic2V0b2YiPT09TD90aGlzLl9kZWNvZGVMaXN0KFksTCxXLmFyZ3NbMF0sQik6L3N0ciQvLnRlc3QoTCk/dGhpcy5fZGVjb2RlU3RyKFksTCxCKToib2JqaWQiPT09TCYmVy5hcmdzP3RoaXMuX2RlY29kZU9iamlkKFksVy5hcmdzWzBdLFcuYXJn'@; put 'c1sxXSxCKToib2JqaWQiPT09TD90aGlzLl9kZWNvZGVPYmppZChZLG51bGwsbnVsbCxCKToiZ2VudGltZSI9PT1MfHwidXRjdGltZSI9PT1MP3RoaXMuX2RlY29kZVRpbWUoWSxMLEIpOiJudWxsXyI9PT1MP3RoaXMuX2RlY29kZU51bGwoWSxCKToiYm9vbCI9PT1MP3RoaXMuX2RlY29kZUJv'@; put 'b2woWSxCKToib2JqRGVzYyI9PT1MP3RoaXMuX2RlY29kZVN0cihZLEwsQik6ImludCI9PT1MfHwiZW51bSI9PT1MP3RoaXMuX2RlY29kZUludChZLFcuYXJncyYmVy5hcmdzWzBdLEIpOm51bGwhPT1XLnVzZT90aGlzLl9nZXRVc2UoVy51c2UsWS5fcmVwb3J0ZXJTdGF0ZS5vYmopLl9kZWNv'@; put 'ZGUoWSxCKTpZLmVycm9yKCJ1bmtub3duIHRhZzogIitMKX0sUi5wcm90b3R5cGUuX2dldFVzZT1mdW5jdGlvbihMLFkpe3ZhciBCPXRoaXMuX2Jhc2VTdGF0ZTtyZXR1cm4gQi51c2VEZWNvZGVyPXRoaXMuX3VzZShMLFkpLE4obnVsbD09PUIudXNlRGVjb2Rlci5fYmFzZVN0YXRlLnBhcmVu'@; put 'dCksQi51c2VEZWNvZGVyPUIudXNlRGVjb2Rlci5fYmFzZVN0YXRlLmNoaWxkcmVuWzBdLEIuaW1wbGljaXQhPT1CLnVzZURlY29kZXIuX2Jhc2VTdGF0ZS5pbXBsaWNpdCYmKEIudXNlRGVjb2Rlcj1CLnVzZURlY29kZXIuY2xvbmUoKSxCLnVzZURlY29kZXIuX2Jhc2VTdGF0ZS5pbXBsaWNp'@; put 'dD1CLmltcGxpY2l0KSxCLnVzZURlY29kZXJ9LFIucHJvdG90eXBlLl9kZWNvZGVDaG9pY2U9ZnVuY3Rpb24oTCxZKXt2YXIgQj10aGlzLl9iYXNlU3RhdGUsVz1udWxsLFo9ITE7cmV0dXJuIE9iamVjdC5rZXlzKEIuY2hvaWNlKS5zb21lKGZ1bmN0aW9uKFgpe3ZhciBRPUwuc2F2ZSgpLHE9'@; put 'Qi5jaG9pY2VbWF07dHJ5e3ZhciB0ZT1xLl9kZWNvZGUoTCxZKTtpZihMLmlzRXJyb3IodGUpKXJldHVybiExO1c9e3R5cGU6WCx2YWx1ZTp0ZX0sWj0hMH1jYXRjaHtyZXR1cm4gTC5yZXN0b3JlKFEpLCExfXJldHVybiEwfSx0aGlzKSxaP1c6TC5lcnJvcigiQ2hvaWNlIG5vdCBtYXRjaGVk'@; put 'Iil9LFIucHJvdG90eXBlLl9jcmVhdGVFbmNvZGVyQnVmZmVyPWZ1bmN0aW9uKEwpe3JldHVybiBuZXcgXyhMLHRoaXMucmVwb3J0ZXIpfSxSLnByb3RvdHlwZS5fZW5jb2RlPWZ1bmN0aW9uKEwsWSxCKXt2YXIgVz10aGlzLl9iYXNlU3RhdGU7aWYobnVsbD09PVcuZGVmYXVsdHx8Vy5kZWZh'@; put 'dWx0IT09TCl7dmFyIFo9dGhpcy5fZW5jb2RlVmFsdWUoTCxZLEIpO2lmKHZvaWQgMCE9PVomJiF0aGlzLl9za2lwRGVmYXVsdChaLFksQikpcmV0dXJuIFp9fSxSLnByb3RvdHlwZS5fZW5jb2RlVmFsdWU9ZnVuY3Rpb24oTCxZLEIpe3ZhciBXPXRoaXMuX2Jhc2VTdGF0ZTtpZihudWxsPT09'@; put 'Vy5wYXJlbnQpcmV0dXJuIFcuY2hpbGRyZW5bMF0uX2VuY29kZShMLFl8fG5ldyBEKTt2YXIgcT1udWxsO2lmKHRoaXMucmVwb3J0ZXI9WSxXLm9wdGlvbmFsJiZ2b2lkIDA9PT1MKXtpZihudWxsPT09Vy5kZWZhdWx0KXJldHVybjtMPVcuZGVmYXVsdH12YXIgWj1udWxsLFg9ITE7aWYoVy5h'@; put 'bnkpcT10aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKEwpO2Vsc2UgaWYoVy5jaG9pY2UpcT10aGlzLl9lbmNvZGVDaG9pY2UoTCxZKTtlbHNlIGlmKFcuY29udGFpbnMpWj10aGlzLl9nZXRVc2UoVy5jb250YWlucyxCKS5fZW5jb2RlKEwsWSksWD0hMDtlbHNlIGlmKFcuY2hpbGRyZW4pWj1X'@; put 'LmNoaWxkcmVuLm1hcChmdW5jdGlvbihzZSl7aWYoIm51bGxfIj09PXNlLl9iYXNlU3RhdGUudGFnKXJldHVybiBzZS5fZW5jb2RlKG51bGwsWSxMKTtpZihudWxsPT09c2UuX2Jhc2VTdGF0ZS5rZXkpcmV0dXJuIFkuZXJyb3IoIkNoaWxkIHNob3VsZCBoYXZlIGEga2V5Iik7dmFyIGdlPVku'@; put 'ZW50ZXJLZXkoc2UuX2Jhc2VTdGF0ZS5rZXkpO2lmKCJvYmplY3QiIT10eXBlb2YgTClyZXR1cm4gWS5lcnJvcigiQ2hpbGQgZXhwZWN0ZWQsIGJ1dCBpbnB1dCBpcyBub3Qgb2JqZWN0Iik7dmFyIF9lPXNlLl9lbmNvZGUoTFtzZS5fYmFzZVN0YXRlLmtleV0sWSxMKTtyZXR1cm4gWS5sZWF2'@; put 'ZUtleShnZSksX2V9LHRoaXMpLmZpbHRlcihmdW5jdGlvbihzZSl7cmV0dXJuIHNlfSksWj10aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFopO2Vsc2UgaWYoInNlcW9mIj09PVcudGFnfHwic2V0b2YiPT09Vy50YWcpe2lmKCFXLmFyZ3N8fDEhPT1XLmFyZ3MubGVuZ3RoKXJldHVybiBZLmVy'@; put 'cm9yKCJUb28gbWFueSBhcmdzIGZvciA6ICIrVy50YWcpO2lmKCFBcnJheS5pc0FycmF5KEwpKXJldHVybiBZLmVycm9yKCJzZXFvZi9zZXRvZiwgYnV0IGRhdGEgaXMgbm90IEFycmF5Iik7dmFyIFE9dGhpcy5jbG9uZSgpO1EuX2Jhc2VTdGF0ZS5pbXBsaWNpdD1udWxsLFo9dGhpcy5fY3Jl'@; put 'YXRlRW5jb2RlckJ1ZmZlcihMLm1hcChmdW5jdGlvbihzZSl7cmV0dXJuIHRoaXMuX2dldFVzZSh0aGlzLl9iYXNlU3RhdGUuYXJnc1swXSxMKS5fZW5jb2RlKHNlLFkpfSxRKSl9ZWxzZSBudWxsIT09Vy51c2U/cT10aGlzLl9nZXRVc2UoVy51c2UsQikuX2VuY29kZShMLFkpOihaPXRoaXMu'@; put 'X2VuY29kZVByaW1pdGl2ZShXLnRhZyxMKSxYPSEwKTtpZighVy5hbnkmJm51bGw9PT1XLmNob2ljZSl7dmFyIHRlPW51bGwhPT1XLmltcGxpY2l0P1cuaW1wbGljaXQ6Vy50YWcsaWU9bnVsbD09PVcuaW1wbGljaXQ/InVuaXZlcnNhbCI6ImNvbnRleHQiO251bGw9PT10ZT9udWxsPT09Vy51'@; put 'c2UmJlkuZXJyb3IoIlRhZyBjb3VsZCBiZSBvbWl0dGVkIG9ubHkgZm9yIC51c2UoKSIpOm51bGw9PT1XLnVzZSYmKHE9dGhpcy5fZW5jb2RlQ29tcG9zaXRlKHRlLFgsaWUsWikpfXJldHVybiBudWxsIT09Vy5leHBsaWNpdCYmKHE9dGhpcy5fZW5jb2RlQ29tcG9zaXRlKFcuZXhwbGljaXQs'@; put 'ITEsImNvbnRleHQiLHEpKSxxfSxSLnByb3RvdHlwZS5fZW5jb2RlQ2hvaWNlPWZ1bmN0aW9uKEwsWSl7dmFyIEI9dGhpcy5fYmFzZVN0YXRlLFc9Qi5jaG9pY2VbTC50eXBlXTtyZXR1cm4gV3x8TighMSxMLnR5cGUrIiBub3QgZm91bmQgaW4gIitKU09OLnN0cmluZ2lmeShPYmplY3Qua2V5'@; put 'cyhCLmNob2ljZSkpKSxXLl9lbmNvZGUoTC52YWx1ZSxZKX0sUi5wcm90b3R5cGUuX2VuY29kZVByaW1pdGl2ZT1mdW5jdGlvbihMLFkpe3ZhciBCPXRoaXMuX2Jhc2VTdGF0ZTtpZigvc3RyJC8udGVzdChMKSlyZXR1cm4gdGhpcy5fZW5jb2RlU3RyKFksTCk7aWYoIm9iamlkIj09PUwmJkIu'@; put 'YXJncylyZXR1cm4gdGhpcy5fZW5jb2RlT2JqaWQoWSxCLnJldmVyc2VBcmdzWzBdLEIuYXJnc1sxXSk7aWYoIm9iamlkIj09PUwpcmV0dXJuIHRoaXMuX2VuY29kZU9iamlkKFksbnVsbCxudWxsKTtpZigiZ2VudGltZSI9PT1MfHwidXRjdGltZSI9PT1MKXJldHVybiB0aGlzLl9lbmNvZGVU'@; put 'aW1lKFksTCk7aWYoIm51bGxfIj09PUwpcmV0dXJuIHRoaXMuX2VuY29kZU51bGwoKTtpZigiaW50Ij09PUx8fCJlbnVtIj09PUwpcmV0dXJuIHRoaXMuX2VuY29kZUludChZLEIuYXJncyYmQi5yZXZlcnNlQXJnc1swXSk7aWYoImJvb2wiPT09TClyZXR1cm4gdGhpcy5fZW5jb2RlQm9vbChZ'@; put 'KTtpZigib2JqRGVzYyI9PT1MKXJldHVybiB0aGlzLl9lbmNvZGVTdHIoWSxMKTt0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHRhZzogIitMKX0sUi5wcm90b3R5cGUuX2lzTnVtc3RyPWZ1bmN0aW9uKEwpe3JldHVybi9eWzAtOSBdKiQvLnRlc3QoTCl9LFIucHJvdG90eXBlLl9pc1By'@; put 'aW50c3RyPWZ1bmN0aW9uKEwpe3JldHVybi9eW0EtWmEtejAtOSAnXChcKVwrLFwtXC5cLzo9XD9dKiQvLnRlc3QoTCl9fSw4NDY1OihjZSxKLGIpPT57dmFyIEQ9Yig1NzE3KTtmdW5jdGlvbiBfKE4pe3RoaXMuX3JlcG9ydGVyU3RhdGU9e29iajpudWxsLHBhdGg6W10sb3B0aW9uczpOfHx7'@; put 'fSxlcnJvcnM6W119fWZ1bmN0aW9uIHAoTix3KXt0aGlzLnBhdGg9Tix0aGlzLnJldGhyb3codyl9Si5iPV8sXy5wcm90b3R5cGUuaXNFcnJvcj1mdW5jdGlvbih3KXtyZXR1cm4gdyBpbnN0YW5jZW9mIHB9LF8ucHJvdG90eXBlLnNhdmU9ZnVuY3Rpb24oKXt2YXIgdz10aGlzLl9yZXBvcnRl'@; put 'clN0YXRlO3JldHVybntvYmo6dy5vYmoscGF0aExlbjp3LnBhdGgubGVuZ3RofX0sXy5wcm90b3R5cGUucmVzdG9yZT1mdW5jdGlvbih3KXt2YXIgRj10aGlzLl9yZXBvcnRlclN0YXRlO0Yub2JqPXcub2JqLEYucGF0aD1GLnBhdGguc2xpY2UoMCx3LnBhdGhMZW4pfSxfLnByb3RvdHlwZS5l'@; put 'bnRlcktleT1mdW5jdGlvbih3KXtyZXR1cm4gdGhpcy5fcmVwb3J0ZXJTdGF0ZS5wYXRoLnB1c2godyl9LF8ucHJvdG90eXBlLmV4aXRLZXk9ZnVuY3Rpb24odyl7dmFyIEY9dGhpcy5fcmVwb3J0ZXJTdGF0ZTtGLnBhdGg9Ri5wYXRoLnNsaWNlKDAsdy0xKX0sXy5wcm90b3R5cGUubGVhdmVL'@; put 'ZXk9ZnVuY3Rpb24odyxGLEgpe3ZhciBSPXRoaXMuX3JlcG9ydGVyU3RhdGU7dGhpcy5leGl0S2V5KHcpLG51bGwhPT1SLm9iaiYmKFIub2JqW0ZdPUgpfSxfLnByb3RvdHlwZS5wYXRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlcG9ydGVyU3RhdGUucGF0aC5qb2luKCIvIil9LF8ucHJv'@; put 'dG90eXBlLmVudGVyT2JqZWN0PWZ1bmN0aW9uKCl7dmFyIHc9dGhpcy5fcmVwb3J0ZXJTdGF0ZSxGPXcub2JqO3JldHVybiB3Lm9iaj17fSxGfSxfLnByb3RvdHlwZS5sZWF2ZU9iamVjdD1mdW5jdGlvbih3KXt2YXIgRj10aGlzLl9yZXBvcnRlclN0YXRlLEg9Ri5vYmo7cmV0dXJuIEYub2Jq'@; put 'PXcsSH0sXy5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24odyl7dmFyIEYsSD10aGlzLl9yZXBvcnRlclN0YXRlLFI9dyBpbnN0YW5jZW9mIHA7aWYoRj1SP3c6bmV3IHAoSC5wYXRoLm1hcChmdW5jdGlvbihqKXtyZXR1cm4iWyIrSlNPTi5zdHJpbmdpZnkoaikrIl0ifSkuam9pbigiIiksdy5t'@; put 'ZXNzYWdlfHx3LHcuc3RhY2spLCFILm9wdGlvbnMucGFydGlhbCl0aHJvdyBGO3JldHVybiBSfHxILmVycm9ycy5wdXNoKEYpLEZ9LF8ucHJvdG90eXBlLndyYXBSZXN1bHQ9ZnVuY3Rpb24odyl7dmFyIEY9dGhpcy5fcmVwb3J0ZXJTdGF0ZTtyZXR1cm4gRi5vcHRpb25zLnBhcnRpYWw/e3Jl'@; put 'c3VsdDp0aGlzLmlzRXJyb3Iodyk/bnVsbDp3LGVycm9yczpGLmVycm9yc306d30sRChwLEVycm9yKSxwLnByb3RvdHlwZS5yZXRocm93PWZ1bmN0aW9uKHcpe2lmKHRoaXMubWVzc2FnZT13KyIgYXQ6ICIrKHRoaXMucGF0aHx8IihzaGFsbG93KSIpLEVycm9yLmNhcHR1cmVTdGFja1RyYWNl'@; put 'JiZFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLHApLCF0aGlzLnN0YWNrKXRyeXt0aHJvdyBuZXcgRXJyb3IodGhpcy5tZXNzYWdlKX1jYXRjaChGKXt0aGlzLnN0YWNrPUYuc3RhY2t9cmV0dXJuIHRoaXN9fSwxNjA6KGNlLEosYik9Pnt2YXIgRD1iKDY4MjYpO0oudGFnQ2xhc3M9ezA6'@; put 'InVuaXZlcnNhbCIsMToiYXBwbGljYXRpb24iLDI6ImNvbnRleHQiLDM6InByaXZhdGUifSxKLnRhZ0NsYXNzQnlOYW1lPUQuX3JldmVyc2UoSi50YWdDbGFzcyksSi50YWc9ezA6ImVuZCIsMToiYm9vbCIsMjoiaW50IiwzOiJiaXRzdHIiLDQ6Im9jdHN0ciIsNToibnVsbF8iLDY6Im9iamlk'@; put 'Iiw3OiJvYmpEZXNjIiw4OiJleHRlcm5hbCIsOToicmVhbCIsMTA6ImVudW0iLDExOiJlbWJlZCIsMTI6InV0ZjhzdHIiLDEzOiJyZWxhdGl2ZU9pZCIsMTY6InNlcSIsMTc6InNldCIsMTg6Im51bXN0ciIsMTk6InByaW50c3RyIiwyMDoidDYxc3RyIiwyMToidmlkZW9zdHIiLDIyOiJpYTVz'@; put 'dHIiLDIzOiJ1dGN0aW1lIiwyNDoiZ2VudGltZSIsMjU6ImdyYXBoc3RyIiwyNjoiaXNvNjQ2c3RyIiwyNzoiZ2Vuc3RyIiwyODoidW5pc3RyIiwyOToiY2hhcnN0ciIsMzA6ImJtcHN0ciJ9LEoudGFnQnlOYW1lPUQuX3JldmVyc2UoSi50YWcpfSw2ODI2OihjZSxKLGIpPT57dmFyIEQ9SjtE'@; put 'Ll9yZXZlcnNlPWZ1bmN0aW9uKHApe3ZhciBOPXt9O3JldHVybiBPYmplY3Qua2V5cyhwKS5mb3JFYWNoKGZ1bmN0aW9uKHcpeygwfHcpPT13JiYod3w9MCksTltwW3ddXT13fSksTn0sRC5kZXI9YigxNjApfSwxNjcxOihjZSxKLGIpPT57dmFyIEQ9Yig1NzE3KSxfPWIoOTgwOSkscD1fLmJh'@; put 'c2UsTj1fLmJpZ251bSx3PV8uY29uc3RhbnRzLmRlcjtmdW5jdGlvbiBGKFApe3RoaXMuZW5jPSJkZXIiLHRoaXMubmFtZT1QLm5hbWUsdGhpcy5lbnRpdHk9UCx0aGlzLnRyZWU9bmV3IEgsdGhpcy50cmVlLl9pbml0KFAuYm9keSl9ZnVuY3Rpb24gSChQKXtwLk5vZGUuY2FsbCh0aGlzLCJk'@; put 'ZXIiLFApfWZ1bmN0aW9uIFIoUCxMKXt2YXIgWT1QLnJlYWRVSW50OChMKTtpZihQLmlzRXJyb3IoWSkpcmV0dXJuIFk7dmFyIEI9dy50YWdDbGFzc1tZPj42XSxXPSEoMzImWSk7aWYoMzEmflkpWSY9MzE7ZWxzZXt2YXIgWj1ZO2ZvcihZPTA7ISgxMjgmflopOyl7aWYoWj1QLnJlYWRVSW50'@; put 'OChMKSxQLmlzRXJyb3IoWikpcmV0dXJuIFo7WTw8PTcsWXw9MTI3Jlp9fXJldHVybntjbHM6QixwcmltaXRpdmU6Vyx0YWc6WSx0YWdTdHI6dy50YWdbWV19fWZ1bmN0aW9uIGooUCxMLFkpe3ZhciBCPVAucmVhZFVJbnQ4KFkpO2lmKFAuaXNFcnJvcihCKSlyZXR1cm4gQjtpZighTCYmMTI4'@; put 'PT09QilyZXR1cm4gbnVsbDtpZighKDEyOCZCKSlyZXR1cm4gQjt2YXIgVz0xMjcmQjtpZihXPjQpcmV0dXJuIFAuZXJyb3IoImxlbmd0aCBvY3RlY3QgaXMgdG9vIGxvbmciKTtCPTA7Zm9yKHZhciBaPTA7WjxXO1orKyl7Qjw8PTg7dmFyIFg9UC5yZWFkVUludDgoWSk7aWYoUC5pc0Vycm9y'@; put 'KFgpKXJldHVybiBYO0J8PVh9cmV0dXJuIEJ9Y2UuZXhwb3J0cz1GLEYucHJvdG90eXBlLmRlY29kZT1mdW5jdGlvbihMLFkpe3JldHVybiBMIGluc3RhbmNlb2YgcC5EZWNvZGVyQnVmZmVyfHwoTD1uZXcgcC5EZWNvZGVyQnVmZmVyKEwsWSkpLHRoaXMudHJlZS5fZGVjb2RlKEwsWSl9LEQo'@; put 'SCxwLk5vZGUpLEgucHJvdG90eXBlLl9wZWVrVGFnPWZ1bmN0aW9uKEwsWSxCKXtpZihMLmlzRW1wdHkoKSlyZXR1cm4hMTt2YXIgVz1MLnNhdmUoKSxaPVIoTCwnRmFpbGVkIHRvIHBlZWsgdGFnOiAiJytZKyciJyk7cmV0dXJuIEwuaXNFcnJvcihaKT9aOihMLnJlc3RvcmUoVyksWi50YWc9'@; put 'PT1ZfHxaLnRhZ1N0cj09PVl8fFoudGFnU3RyKyJvZiI9PT1ZfHxCKX0sSC5wcm90b3R5cGUuX2RlY29kZVRhZz1mdW5jdGlvbihMLFksQil7dmFyIFc9UihMLCdGYWlsZWQgdG8gZGVjb2RlIHRhZyBvZiAiJytZKyciJyk7aWYoTC5pc0Vycm9yKFcpKXJldHVybiBXO3ZhciBaPWooTCxXLnBy'@; put 'aW1pdGl2ZSwnRmFpbGVkIHRvIGdldCBsZW5ndGggb2YgIicrWSsnIicpO2lmKEwuaXNFcnJvcihaKSlyZXR1cm4gWjtpZighQiYmVy50YWchPT1ZJiZXLnRhZ1N0ciE9PVkmJlcudGFnU3RyKyJvZiIhPT1ZKXJldHVybiBMLmVycm9yKCdGYWlsZWQgdG8gbWF0Y2ggdGFnOiAiJytZKyciJyk7'@; put 'aWYoVy5wcmltaXRpdmV8fG51bGwhPT1aKXJldHVybiBMLnNraXAoWiwnRmFpbGVkIHRvIG1hdGNoIGJvZHkgb2Y6ICInK1krJyInKTt2YXIgWD1MLnNhdmUoKSxRPXRoaXMuX3NraXBVbnRpbEVuZChMLCdGYWlsZWQgdG8gc2tpcCBpbmRlZmluaXRlIGxlbmd0aCBib2R5OiAiJyt0aGlzLnRh'@; put 'ZysnIicpO3JldHVybiBMLmlzRXJyb3IoUSk/UTooWj1MLm9mZnNldC1YLm9mZnNldCxMLnJlc3RvcmUoWCksTC5za2lwKFosJ0ZhaWxlZCB0byBtYXRjaCBib2R5IG9mOiAiJytZKyciJykpfSxILnByb3RvdHlwZS5fc2tpcFVudGlsRW5kPWZ1bmN0aW9uKEwsWSl7Zm9yKDs7KXt2YXIgQj1S'@; put 'KEwsWSk7aWYoTC5pc0Vycm9yKEIpKXJldHVybiBCO3ZhciBaLFc9aihMLEIucHJpbWl0aXZlLFkpO2lmKEwuaXNFcnJvcihXKSlyZXR1cm4gVztpZihaPUIucHJpbWl0aXZlfHxudWxsIT09Vz9MLnNraXAoVyk6dGhpcy5fc2tpcFVudGlsRW5kKEwsWSksTC5pc0Vycm9yKFopKXJldHVybiBa'@; put 'O2lmKCJlbmQiPT09Qi50YWdTdHIpYnJlYWt9fSxILnByb3RvdHlwZS5fZGVjb2RlTGlzdD1mdW5jdGlvbihMLFksQixXKXtmb3IodmFyIFo9W107IUwuaXNFbXB0eSgpOyl7dmFyIFg9dGhpcy5fcGVla1RhZyhMLCJlbmQiKTtpZihMLmlzRXJyb3IoWCkpcmV0dXJuIFg7dmFyIFE9Qi5kZWNv'@; put 'ZGUoTCwiZGVyIixXKTtpZihMLmlzRXJyb3IoUSkmJlgpYnJlYWs7Wi5wdXNoKFEpfXJldHVybiBafSxILnByb3RvdHlwZS5fZGVjb2RlU3RyPWZ1bmN0aW9uKEwsWSl7aWYoImJpdHN0ciI9PT1ZKXt2YXIgQj1MLnJlYWRVSW50OCgpO3JldHVybiBMLmlzRXJyb3IoQik/Qjp7dW51c2VkOkIs'@; put 'ZGF0YTpMLnJhdygpfX1pZigiYm1wc3RyIj09PVkpe3ZhciBXPUwucmF3KCk7aWYoVy5sZW5ndGglMj09MSlyZXR1cm4gTC5lcnJvcigiRGVjb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6IGJtcHN0ciBsZW5ndGggbWlzbWF0Y2giKTtmb3IodmFyIFo9IiIsWD0wO1g8Vy5sZW5ndGgvMjtYKyspWis9'@; put 'U3RyaW5nLmZyb21DaGFyQ29kZShXLnJlYWRVSW50MTZCRSgyKlgpKTtyZXR1cm4gWn1pZigibnVtc3RyIj09PVkpe3ZhciBRPUwucmF3KCkudG9TdHJpbmcoImFzY2lpIik7cmV0dXJuIHRoaXMuX2lzTnVtc3RyKFEpP1E6TC5lcnJvcigiRGVjb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6IG51bXN0'@; put 'ciB1bnN1cHBvcnRlZCBjaGFyYWN0ZXJzIil9aWYoIm9jdHN0ciI9PT1ZKXJldHVybiBMLnJhdygpO2lmKCJvYmpEZXNjIj09PVkpcmV0dXJuIEwucmF3KCk7aWYoInByaW50c3RyIj09PVkpe3ZhciBxPUwucmF3KCkudG9TdHJpbmcoImFzY2lpIik7cmV0dXJuIHRoaXMuX2lzUHJpbnRzdHIo'@; put 'cSk/cTpMLmVycm9yKCJEZWNvZGluZyBvZiBzdHJpbmcgdHlwZTogcHJpbnRzdHIgdW5zdXBwb3J0ZWQgY2hhcmFjdGVycyIpfXJldHVybi9zdHIkLy50ZXN0KFkpP0wucmF3KCkudG9TdHJpbmcoKTpMLmVycm9yKCJEZWNvZGluZyBvZiBzdHJpbmcgdHlwZTogIitZKyIgdW5zdXBwb3J0ZWQi'@; put 'KX0sSC5wcm90b3R5cGUuX2RlY29kZU9iamlkPWZ1bmN0aW9uKEwsWSxCKXtmb3IodmFyIFcsWj1bXSxYPTA7IUwuaXNFbXB0eSgpOyl7dmFyIFE9TC5yZWFkVUludDgoKTtYPDw9NyxYfD0xMjcmUSwxMjgmUXx8KFoucHVzaChYKSxYPTApfWlmKDEyOCZRJiZaLnB1c2goWCksVz1CP1o6W1pb'@; put 'MF0vNDB8MCxaWzBdJTQwXS5jb25jYXQoWi5zbGljZSgxKSksWSl7dmFyIGllPVlbVy5qb2luKCIgIildO3ZvaWQgMD09PWllJiYoaWU9WVtXLmpvaW4oIi4iKV0pLHZvaWQgMCE9PWllJiYoVz1pZSl9cmV0dXJuIFd9LEgucHJvdG90eXBlLl9kZWNvZGVUaW1lPWZ1bmN0aW9uKEwsWSl7dmFy'@; put 'IEI9TC5yYXcoKS50b1N0cmluZygpO2lmKCJnZW50aW1lIj09PVkpdmFyIFc9MHxCLnNsaWNlKDAsNCksWj0wfEIuc2xpY2UoNCw2KSxYPTB8Qi5zbGljZSg2LDgpLFE9MHxCLnNsaWNlKDgsMTApLHE9MHxCLnNsaWNlKDEwLDEyKSx0ZT0wfEIuc2xpY2UoMTIsMTQpO2Vsc2V7aWYoInV0Y3Rp'@; put 'bWUiIT09WSlyZXR1cm4gTC5lcnJvcigiRGVjb2RpbmcgIitZKyIgdGltZSBpcyBub3Qgc3VwcG9ydGVkIHlldCIpO1c9MHxCLnNsaWNlKDAsMiksWj0wfEIuc2xpY2UoMiw0KSxYPTB8Qi5zbGljZSg0LDYpLFE9MHxCLnNsaWNlKDYsOCkscT0wfEIuc2xpY2UoOCwxMCksdGU9MHxCLnNsaWNl'@; put 'KDEwLDEyKSxXPVc8NzA/MmUzK1c6MTkwMCtXfXJldHVybiBEYXRlLlVUQyhXLFotMSxYLFEscSx0ZSwwKX0sSC5wcm90b3R5cGUuX2RlY29kZU51bGw9ZnVuY3Rpb24oTCl7cmV0dXJuIG51bGx9LEgucHJvdG90eXBlLl9kZWNvZGVCb29sPWZ1bmN0aW9uKEwpe3ZhciBZPUwucmVhZFVJbnQ4'@; put 'KCk7cmV0dXJuIEwuaXNFcnJvcihZKT9ZOjAhPT1ZfSxILnByb3RvdHlwZS5fZGVjb2RlSW50PWZ1bmN0aW9uKEwsWSl7dmFyIEI9TC5yYXcoKSxXPW5ldyBOKEIpO3JldHVybiBZJiYoVz1ZW1cudG9TdHJpbmcoMTApXXx8VyksV30sSC5wcm90b3R5cGUuX3VzZT1mdW5jdGlvbihMLFkpe3Jl'@; put 'dHVybiJmdW5jdGlvbiI9PXR5cGVvZiBMJiYoTD1MKFkpKSxMLl9nZXREZWNvZGVyKCJkZXIiKS50cmVlfX0sODMwNzooY2UsSixiKT0+e3ZhciBEPUo7RC5kZXI9YigxNjcxKSxELnBlbT1iKDk2MzEpfSw5NjMxOihjZSxKLGIpPT57dmFyIEQ9Yig1NzE3KSxfPWIoODc2NCkuQnVmZmVyLHA9'@; put 'YigxNjcxKTtmdW5jdGlvbiBOKHcpe3AuY2FsbCh0aGlzLHcpLHRoaXMuZW5jPSJwZW0ifUQoTixwKSxjZS5leHBvcnRzPU4sTi5wcm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9uKEYsSCl7Zm9yKHZhciBSPUYudG9TdHJpbmcoKS5zcGxpdCgvW1xyXG5dKy9nKSxqPUgubGFiZWwudG9VcHBlckNh'@; put 'c2UoKSxQPS9eLS0tLS0oQkVHSU58RU5EKSAoW14tXSspLS0tLS0kLyxMPS0xLFk9LTEsQj0wO0I8Ui5sZW5ndGg7QisrKXt2YXIgVz1SW0JdLm1hdGNoKFApO2lmKG51bGwhPT1XJiZXWzJdPT09ail7aWYoLTEhPT1MKXtpZigiRU5EIiE9PVdbMV0pYnJlYWs7WT1CO2JyZWFrfWlmKCJCRUdJ'@; put 'TiIhPT1XWzFdKWJyZWFrO0w9Qn19aWYoLTE9PT1MfHwtMT09PVkpdGhyb3cgbmV3IEVycm9yKCJQRU0gc2VjdGlvbiBub3QgZm91bmQgZm9yOiAiK2opO3ZhciBaPVIuc2xpY2UoTCsxLFkpLmpvaW4oIiIpO1oucmVwbGFjZSgvW15hLXowLTlcK1wvPV0rL2dpLCIiKTt2YXIgWD1uZXcgXyha'@; put 'LCJiYXNlNjQiKTtyZXR1cm4gcC5wcm90b3R5cGUuZGVjb2RlLmNhbGwodGhpcyxYLEgpfX0sNjk4NDooY2UsSixiKT0+e3ZhciBEPWIoNTcxNyksXz1iKDg3NjQpLkJ1ZmZlcixwPWIoOTgwOSksTj1wLmJhc2Usdz1wLmNvbnN0YW50cy5kZXI7ZnVuY3Rpb24gRihQKXt0aGlzLmVuYz0iZGVy'@; put 'Iix0aGlzLm5hbWU9UC5uYW1lLHRoaXMuZW50aXR5PVAsdGhpcy50cmVlPW5ldyBILHRoaXMudHJlZS5faW5pdChQLmJvZHkpfWZ1bmN0aW9uIEgoUCl7Ti5Ob2RlLmNhbGwodGhpcywiZGVyIixQKX1mdW5jdGlvbiBSKFApe3JldHVybiBQPDEwPyIwIitQOlB9Y2UuZXhwb3J0cz1GLEYucHJv'@; put 'dG90eXBlLmVuY29kZT1mdW5jdGlvbihMLFkpe3JldHVybiB0aGlzLnRyZWUuX2VuY29kZShMLFkpLmpvaW4oKX0sRChILE4uTm9kZSksSC5wcm90b3R5cGUuX2VuY29kZUNvbXBvc2l0ZT1mdW5jdGlvbihMLFksQixXKXt2YXIgcSxaPWZ1bmN0aW9uIGooUCxMLFksQil7dmFyIFc7aWYoInNl'@; put 'cW9mIj09PVA/UD0ic2VxIjoic2V0b2YiPT09UCYmKFA9InNldCIpLHcudGFnQnlOYW1lLmhhc093blByb3BlcnR5KFApKVc9dy50YWdCeU5hbWVbUF07ZWxzZXtpZigibnVtYmVyIiE9dHlwZW9mIFB8fCgwfFApIT09UClyZXR1cm4gQi5lcnJvcigiVW5rbm93biB0YWc6ICIrUCk7Vz1QfXJl'@; put 'dHVybiBXPj0zMT9CLmVycm9yKCJNdWx0aS1vY3RldCB0YWcgZW5jb2RpbmcgdW5zdXBwb3J0ZWQiKTooTHx8KFd8PTMyKSxXfD13LnRhZ0NsYXNzQnlOYW1lW1l8fCJ1bml2ZXJzYWwiXTw8Nil9KEwsWSxCLHRoaXMucmVwb3J0ZXIpO2lmKFcubGVuZ3RoPDEyOClyZXR1cm4ocT1uZXcgXygy'@; put 'KSlbMF09WixxWzFdPVcubGVuZ3RoLHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoW3EsV10pO2Zvcih2YXIgWD0xLFE9Vy5sZW5ndGg7UT49MjU2O1E+Pj04KVgrKzsocT1uZXcgXygyK1gpKVswXT1aLHFbMV09MTI4fFgsUT0xK1g7Zm9yKHZhciB0ZT1XLmxlbmd0aDt0ZT4wO1EtLSx0ZT4+'@; put 'PTgpcVtRXT0yNTUmdGU7cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoW3EsV10pfSxILnByb3RvdHlwZS5fZW5jb2RlU3RyPWZ1bmN0aW9uKEwsWSl7aWYoImJpdHN0ciI9PT1ZKXJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFswfEwudW51c2VkLEwuZGF0YV0pO2lm'@; put 'KCJibXBzdHIiPT09WSl7Zm9yKHZhciBCPW5ldyBfKDIqTC5sZW5ndGgpLFc9MDtXPEwubGVuZ3RoO1crKylCLndyaXRlVUludDE2QkUoTC5jaGFyQ29kZUF0KFcpLDIqVyk7cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoQil9cmV0dXJuIm51bXN0ciI9PT1ZP3RoaXMuX2lzTnVt'@; put 'c3RyKEwpP3RoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoTCk6dGhpcy5yZXBvcnRlci5lcnJvcigiRW5jb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6IG51bXN0ciBzdXBwb3J0cyBvbmx5IGRpZ2l0cyBhbmQgc3BhY2UiKToicHJpbnRzdHIiPT09WT90aGlzLl9pc1ByaW50c3RyKEwpP3RoaXMuX2Ny'@; put 'ZWF0ZUVuY29kZXJCdWZmZXIoTCk6dGhpcy5yZXBvcnRlci5lcnJvcigiRW5jb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6IHByaW50c3RyIHN1cHBvcnRzIG9ubHkgbGF0aW4gdXBwZXIgYW5kIGxvd2VyIGNhc2UgbGV0dGVycywgZGlnaXRzLCBzcGFjZSwgYXBvc3Ryb3BoZSwgbGVmdCBhbmQgcmln'@; put 'dGggcGFyZW50aGVzaXMsIHBsdXMgc2lnbiwgY29tbWEsIGh5cGhlbiwgZG90LCBzbGFzaCwgY29sb24sIGVxdWFsIHNpZ24sIHF1ZXN0aW9uIG1hcmsiKTovc3RyJC8udGVzdChZKXx8Im9iakRlc2MiPT09WT90aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKEwpOnRoaXMucmVwb3J0ZXIuZXJy'@; put 'b3IoIkVuY29kaW5nIG9mIHN0cmluZyB0eXBlOiAiK1krIiB1bnN1cHBvcnRlZCIpfSxILnByb3RvdHlwZS5fZW5jb2RlT2JqaWQ9ZnVuY3Rpb24oTCxZLEIpe2lmKCJzdHJpbmciPT10eXBlb2YgTCl7aWYoIVkpcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoInN0cmluZyBvYmppZCBnaXZl'@; put 'biwgYnV0IG5vIHZhbHVlcyBtYXAgZm91bmQiKTtpZighWS5oYXNPd25Qcm9wZXJ0eShMKSlyZXR1cm4gdGhpcy5yZXBvcnRlci5lcnJvcigib2JqaWQgbm90IGZvdW5kIGluIHZhbHVlcyBtYXAiKTtMPVlbTF0uc3BsaXQoL1tcc1wuXSsvZyk7Zm9yKHZhciBXPTA7VzxMLmxlbmd0aDtXKysp'@; put 'TFtXXXw9MH1lbHNlIGlmKEFycmF5LmlzQXJyYXkoTCkpZm9yKEw9TC5zbGljZSgpLFc9MDtXPEwubGVuZ3RoO1crKylMW1ddfD0wO2lmKCFBcnJheS5pc0FycmF5KEwpKXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCJvYmppZCgpIHNob3VsZCBiZSBlaXRoZXIgYXJyYXkgb3Igc3RyaW5n'@; put 'LCBnb3Q6ICIrSlNPTi5zdHJpbmdpZnkoTCkpO2lmKCFCKXtpZihMWzFdPj00MClyZXR1cm4gdGhpcy5yZXBvcnRlci5lcnJvcigiU2Vjb25kIG9iamlkIGlkZW50aWZpZXIgT09CIik7TC5zcGxpY2UoMCwyLDQwKkxbMF0rTFsxXSl9dmFyIFo9MDtmb3IoVz0wO1c8TC5sZW5ndGg7VysrKXt2'@; put 'YXIgWD1MW1ddO2ZvcihaKys7WD49MTI4O1g+Pj03KVorK312YXIgUT1uZXcgXyhaKSxxPVEubGVuZ3RoLTE7Zm9yKFc9TC5sZW5ndGgtMTtXPj0wO1ctLSlmb3IoUVtxLS1dPTEyNyYoWD1MW1ddKTsoWD4+PTcpPjA7KVFbcS0tXT0xMjh8MTI3Jlg7cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29k'@; put 'ZXJCdWZmZXIoUSl9LEgucHJvdG90eXBlLl9lbmNvZGVUaW1lPWZ1bmN0aW9uKEwsWSl7dmFyIEIsVz1uZXcgRGF0ZShMKTtyZXR1cm4iZ2VudGltZSI9PT1ZP0I9W1IoVy5nZXRGdWxsWWVhcigpKSxSKFcuZ2V0VVRDTW9udGgoKSsxKSxSKFcuZ2V0VVRDRGF0ZSgpKSxSKFcuZ2V0VVRDSG91'@; put 'cnMoKSksUihXLmdldFVUQ01pbnV0ZXMoKSksUihXLmdldFVUQ1NlY29uZHMoKSksIloiXS5qb2luKCIiKToidXRjdGltZSI9PT1ZP0I9W1IoVy5nZXRGdWxsWWVhcigpJTEwMCksUihXLmdldFVUQ01vbnRoKCkrMSksUihXLmdldFVUQ0RhdGUoKSksUihXLmdldFVUQ0hvdXJzKCkpLFIoVy5n'@; put 'ZXRVVENNaW51dGVzKCkpLFIoVy5nZXRVVENTZWNvbmRzKCkpLCJaIl0uam9pbigiIik6dGhpcy5yZXBvcnRlci5lcnJvcigiRW5jb2RpbmcgIitZKyIgdGltZSBpcyBub3Qgc3VwcG9ydGVkIHlldCIpLHRoaXMuX2VuY29kZVN0cihCLCJvY3RzdHIiKX0sSC5wcm90b3R5cGUuX2VuY29kZU51'@; put 'bGw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcigiIil9LEgucHJvdG90eXBlLl9lbmNvZGVJbnQ9ZnVuY3Rpb24oTCxZKXtpZigic3RyaW5nIj09dHlwZW9mIEwpe2lmKCFZKXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCJTdHJpbmcgaW50IG9yIGVudW0g'@; put 'Z2l2ZW4sIGJ1dCBubyB2YWx1ZXMgbWFwIik7aWYoIVkuaGFzT3duUHJvcGVydHkoTCkpcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoIlZhbHVlcyBtYXAgZG9lc24ndCBjb250YWluOiAiK0pTT04uc3RyaW5naWZ5KEwpKTtMPVlbTF19aWYoIm51bWJlciIhPXR5cGVvZiBMJiYhXy5pc0J1'@; put 'ZmZlcihMKSl7dmFyIEI9TC50b0FycmF5KCk7IUwuc2lnbiYmMTI4JkJbMF0mJkIudW5zaGlmdCgwKSxMPW5ldyBfKEIpfWlmKF8uaXNCdWZmZXIoTCkpe3ZhciBXPUwubGVuZ3RoOzA9PT1MLmxlbmd0aCYmVysrO3ZhciBYPW5ldyBfKFcpO3JldHVybiBMLmNvcHkoWCksMD09PUwubGVuZ3Ro'@; put 'JiYoWFswXT0wKSx0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFgpfWlmKEw8MTI4KXJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKEwpO2lmKEw8MjU2KXJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFswLExdKTtXPTE7Zm9yKHZhciBaPUw7Wj49MjU2O1o+Pj04KVcr'@; put 'Kztmb3IoWj0oWD1uZXcgQXJyYXkoVykpLmxlbmd0aC0xO1o+PTA7Wi0tKVhbWl09MjU1JkwsTD4+PTg7cmV0dXJuIDEyOCZYWzBdJiZYLnVuc2hpZnQoMCksdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihuZXcgXyhYKSl9LEgucHJvdG90eXBlLl9lbmNvZGVCb29sPWZ1bmN0aW9uKEwpe3Jl'@; put 'dHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKEw/MjU1OjApfSxILnByb3RvdHlwZS5fdXNlPWZ1bmN0aW9uKEwsWSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIEwmJihMPUwoWSkpLEwuX2dldEVuY29kZXIoImRlciIpLnRyZWV9LEgucHJvdG90eXBlLl9za2lwRGVmYXVsdD1mdW5j'@; put 'dGlvbihMLFksQil7dmFyIFosVz10aGlzLl9iYXNlU3RhdGU7aWYobnVsbD09PVcuZGVmYXVsdClyZXR1cm4hMTt2YXIgWD1MLmpvaW4oKTtpZih2b2lkIDA9PT1XLmRlZmF1bHRCdWZmZXImJihXLmRlZmF1bHRCdWZmZXI9dGhpcy5fZW5jb2RlVmFsdWUoVy5kZWZhdWx0LFksQikuam9pbigp'@; put 'KSxYLmxlbmd0aCE9PVcuZGVmYXVsdEJ1ZmZlci5sZW5ndGgpcmV0dXJuITE7Zm9yKFo9MDtaPFgubGVuZ3RoO1orKylpZihYW1pdIT09Vy5kZWZhdWx0QnVmZmVyW1pdKXJldHVybiExO3JldHVybiEwfX0sNjU3OTooY2UsSixiKT0+e3ZhciBEPUo7RC5kZXI9Yig2OTg0KSxELnBlbT1iKDI4'@; put 'ODMpfSwyODgzOihjZSxKLGIpPT57dmFyIEQ9Yig1NzE3KSxfPWIoNjk4NCk7ZnVuY3Rpb24gcChOKXtfLmNhbGwodGhpcyxOKSx0aGlzLmVuYz0icGVtIn1EKHAsXyksY2UuZXhwb3J0cz1wLHAucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbih3LEYpe2Zvcih2YXIgUj1fLnByb3RvdHlwZS5l'@; put 'bmNvZGUuY2FsbCh0aGlzLHcpLnRvU3RyaW5nKCJiYXNlNjQiKSxqPVsiLS0tLS1CRUdJTiAiK0YubGFiZWwrIi0tLS0tIl0sUD0wO1A8Ui5sZW5ndGg7UCs9NjQpai5wdXNoKFIuc2xpY2UoUCxQKzY0KSk7cmV0dXJuIGoucHVzaCgiLS0tLS1FTkQgIitGLmxhYmVsKyItLS0tLSIpLGouam9p'@; put 'bigiXG4iKX19LDQ1OTA6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCxfKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcCh6LGcpe2lmKCF6KXRocm93IG5ldyBFcnJvcihnfHwiQXNzZXJ0aW9uIGZhaWxlZCIpfWZ1bmN0aW9uIE4oeixnKXt6LnN1cGVyXz1nO3ZhciB5PWZ1bmN0aW9uKCl7'@; put 'fTt5LnByb3RvdHlwZT1nLnByb3RvdHlwZSx6LnByb3RvdHlwZT1uZXcgeSx6LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj16fWZ1bmN0aW9uIHcoeixnLHkpe2lmKHcuaXNCTih6KSlyZXR1cm4gejt0aGlzLm5lZ2F0aXZlPTAsdGhpcy53b3Jkcz1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5yZWQ9'@; put 'bnVsbCxudWxsIT09eiYmKCgibGUiPT09Z3x8ImJlIj09PWcpJiYoeT1nLGc9MTApLHRoaXMuX2luaXQoenx8MCxnfHwxMCx5fHwiYmUiKSl9dmFyIEY7Im9iamVjdCI9PXR5cGVvZiBEP0QuZXhwb3J0cz13Ol8uQk49dyx3LkJOPXcsdy53b3JkU2l6ZT0yNjt0cnl7Rj10eXBlb2Ygd2luZG93'@; put 'PCJ1IiYmdHlwZW9mIHdpbmRvdy5CdWZmZXI8InUiP3dpbmRvdy5CdWZmZXI6Yig5NTApLkJ1ZmZlcn1jYXRjaHt9ZnVuY3Rpb24gSCh6LGcpe3ZhciB5PXouY2hhckNvZGVBdChnKTtyZXR1cm4geT49NjUmJnk8PTcwP3ktNTU6eT49OTcmJnk8PTEwMj95LTg3OnktNDgmMTV9ZnVuY3Rpb24g'@; put 'Uih6LGcseSl7dmFyIHg9SCh6LHkpO3JldHVybiB5LTE+PWcmJih4fD1IKHoseS0xKTw8NCkseH1mdW5jdGlvbiBqKHosZyx5LHgpe2Zvcih2YXIgQz0wLFQ9TWF0aC5taW4oei5sZW5ndGgseSksVj1nO1Y8VDtWKyspe3ZhciBVPXouY2hhckNvZGVBdChWKS00ODtDKj14LEMrPVU+PTQ5P1Ut'@; put 'NDkrMTA6VT49MTc/VS0xNysxMDpVfXJldHVybiBDfXcuaXNCTj1mdW5jdGlvbihnKXtyZXR1cm4gZyBpbnN0YW5jZW9mIHd8fG51bGwhPT1nJiYib2JqZWN0Ij09dHlwZW9mIGcmJmcuY29uc3RydWN0b3Iud29yZFNpemU9PT13LndvcmRTaXplJiZBcnJheS5pc0FycmF5KGcud29yZHMpfSx3'@; put 'Lm1heD1mdW5jdGlvbihnLHkpe3JldHVybiBnLmNtcCh5KT4wP2c6eX0sdy5taW49ZnVuY3Rpb24oZyx5KXtyZXR1cm4gZy5jbXAoeSk8MD9nOnl9LHcucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKGcseSx4KXtpZigibnVtYmVyIj09dHlwZW9mIGcpcmV0dXJuIHRoaXMuX2luaXROdW1iZXIo'@; put 'Zyx5LHgpO2lmKCJvYmplY3QiPT10eXBlb2YgZylyZXR1cm4gdGhpcy5faW5pdEFycmF5KGcseSx4KTsiaGV4Ij09PXkmJih5PTE2KSxwKHk9PT0oMHx5KSYmeT49MiYmeTw9MzYpO3ZhciBDPTA7Ii0iPT09KGc9Zy50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9nLCIiKSlbMF0mJihDKyssdGhp'@; put 'cy5uZWdhdGl2ZT0xKSxDPGcubGVuZ3RoJiYoMTY9PT15P3RoaXMuX3BhcnNlSGV4KGcsQyx4KToodGhpcy5fcGFyc2VCYXNlKGcseSxDKSwibGUiPT09eCYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLHkseCkpKX0sdy5wcm90b3R5cGUuX2luaXROdW1iZXI9ZnVuY3Rpb24oZyx5'@; put 'LHgpe2c8MCYmKHRoaXMubmVnYXRpdmU9MSxnPS1nKSxnPDY3MTA4ODY0Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZnXSx0aGlzLmxlbmd0aD0xKTpnPDQ1MDM1OTk2MjczNzA0OTY/KHRoaXMud29yZHM9WzY3MTA4ODYzJmcsZy82NzEwODg2NCY2NzEwODg2M10sdGhpcy5sZW5ndGg9Mik6KHAo'@; put 'Zzw5MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEwODg2MyZnLGcvNjcxMDg4NjQmNjcxMDg4NjMsMV0sdGhpcy5sZW5ndGg9MyksImxlIj09PXgmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSx5LHgpfSx3LnByb3RvdHlwZS5faW5pdEFycmF5PWZ1bmN0aW9uKGcseSx4'@; put 'KXtpZihwKCJudW1iZXIiPT10eXBlb2YgZy5sZW5ndGgpLGcubGVuZ3RoPD0wKXJldHVybiB0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xLHRoaXM7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKGcubGVuZ3RoLzMpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIEM9'@; put 'MDtDPHRoaXMubGVuZ3RoO0MrKyl0aGlzLndvcmRzW0NdPTA7dmFyIFQsVixVPTA7aWYoImJlIj09PXgpZm9yKEM9Zy5sZW5ndGgtMSxUPTA7Qz49MDtDLT0zKXRoaXMud29yZHNbVF18PShWPWdbQ118Z1tDLTFdPDw4fGdbQy0yXTw8MTYpPDxVJjY3MTA4ODYzLHRoaXMud29yZHNbVCsxXT1W'@; put 'Pj4+MjYtVSY2NzEwODg2MywoVSs9MjQpPj0yNiYmKFUtPTI2LFQrKyk7ZWxzZSBpZigibGUiPT09eClmb3IoQz0wLFQ9MDtDPGcubGVuZ3RoO0MrPTMpdGhpcy53b3Jkc1tUXXw9KFY9Z1tDXXxnW0MrMV08PDh8Z1tDKzJdPDwxNik8PFUmNjcxMDg4NjMsdGhpcy53b3Jkc1tUKzFdPVY+Pj4y'@; put 'Ni1VJjY3MTA4ODYzLChVKz0yNCk+PTI2JiYoVS09MjYsVCsrKTtyZXR1cm4gdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5fcGFyc2VIZXg9ZnVuY3Rpb24oZyx5LHgpe3RoaXMubGVuZ3RoPU1hdGguY2VpbCgoZy5sZW5ndGgteSkvNiksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5n'@; put 'dGgpO2Zvcih2YXIgQz0wO0M8dGhpcy5sZW5ndGg7QysrKXRoaXMud29yZHNbQ109MDt2YXIgVSxUPTAsVj0wO2lmKCJiZSI9PT14KWZvcihDPWcubGVuZ3RoLTE7Qz49eTtDLT0yKVU9UihnLHksQyk8PFQsdGhpcy53b3Jkc1tWXXw9NjcxMDg4NjMmVSxUPj0xOD8oVC09MTgsdGhpcy53b3Jk'@; put 'c1tWKz0xXXw9VT4+PjI2KTpUKz04O2Vsc2UgZm9yKEM9KGcubGVuZ3RoLXkpJTI9PTA/eSsxOnk7QzxnLmxlbmd0aDtDKz0yKVU9UihnLHksQyk8PFQsdGhpcy53b3Jkc1tWXXw9NjcxMDg4NjMmVSxUPj0xOD8oVC09MTgsdGhpcy53b3Jkc1tWKz0xXXw9VT4+PjI2KTpUKz04O3RoaXMuc3Ry'@; put 'aXAoKX0sdy5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbihnLHkseCl7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIEM9MCxUPTE7VDw9NjcxMDg4NjM7VCo9eSlDKys7Qy0tLFQ9VC95fDA7Zm9yKHZhciBWPWcubGVuZ3RoLXgsVT1WJUMsRT1NYXRoLm1pbihWLFYt'@; put 'VSkreCxtPTAsQT14O0E8RTtBKz1DKW09aihnLEEsQStDLHkpLHRoaXMuaW11bG4oVCksdGhpcy53b3Jkc1swXSttPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPW06dGhpcy5faWFkZG4obSk7aWYoMCE9PVUpe3ZhciBhZT0xO2ZvcihtPWooZyxBLGcubGVuZ3RoLHkpLEE9MDtBPFU7QSsrKWFl'@; put 'Kj15O3RoaXMuaW11bG4oYWUpLHRoaXMud29yZHNbMF0rbTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1tOnRoaXMuX2lhZGRuKG0pfXRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuY29weT1mdW5jdGlvbihnKXtnLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciB5PTA7eTx0'@; put 'aGlzLmxlbmd0aDt5KyspZy53b3Jkc1t5XT10aGlzLndvcmRzW3ldO2cubGVuZ3RoPXRoaXMubGVuZ3RoLGcubmVnYXRpdmU9dGhpcy5uZWdhdGl2ZSxnLnJlZD10aGlzLnJlZH0sdy5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgZz1uZXcgdyhudWxsKTtyZXR1cm4gdGhpcy5jb3B5'@; put 'KGcpLGd9LHcucHJvdG90eXBlLl9leHBhbmQ9ZnVuY3Rpb24oZyl7Zm9yKDt0aGlzLmxlbmd0aDxnOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7cmV0dXJuIHRoaXN9LHcucHJvdG90eXBlLnN0cmlwPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmxlbmd0aD4xJiYwPT09dGhpcy53b3Jkc1t0'@; put 'aGlzLmxlbmd0aC0xXTspdGhpcy5sZW5ndGgtLTtyZXR1cm4gdGhpcy5fbm9ybVNpZ24oKX0sdy5wcm90b3R5cGUuX25vcm1TaWduPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF0mJih0aGlzLm5lZ2F0aXZlPTApLHRoaXN9LHcucHJvdG90eXBl'@; put 'Lmluc3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5yZWQ/IjxCTi1SOiAiOiI8Qk46ICIpK3RoaXMudG9TdHJpbmcoMTYpKyI+In07dmFyIFA9WyIiLCIwIiwiMDAiLCIwMDAiLCIwMDAwIiwiMDAwMDAiLCIwMDAwMDAiLCIwMDAwMDAwIiwiMDAwMDAwMDAiLCIwMDAwMDAwMDAiLCIwMDAw'@; put 'MDAwMDAwIiwiMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAw'@; put 'MDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0sTD1bMCww'@; put 'LDI1LDE2LDEyLDExLDEwLDksOCw4LDcsNyw3LDcsNiw2LDYsNiw2LDYsNiw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1XSxZPVswLDAsMzM1NTQ0MzIsNDMwNDY3MjEsMTY3NzcyMTYsNDg4MjgxMjUsNjA0NjYxNzYsNDAzNTM2MDcsMTY3NzcyMTYsNDMwNDY3MjEsMWU3LDE5NDg3'@; put 'MTcxLDM1ODMxODA4LDYyNzQ4NTE3LDc1Mjk1MzYsMTEzOTA2MjUsMTY3NzcyMTYsMjQxMzc1NjksMzQwMTIyMjQsNDcwNDU4ODEsNjRlNiw0MDg0MTAxLDUxNTM2MzIsNjQzNjM0Myw3OTYyNjI0LDk3NjU2MjUsMTE4ODEzNzYsMTQzNDg5MDcsMTcyMTAzNjgsMjA1MTExNDksMjQzZTUsMjg2'@; put 'MjkxNTEsMzM1NTQ0MzIsMzkxMzUzOTMsNDU0MzU0MjQsNTI1MjE4NzUsNjA0NjYxNzZdO2Z1bmN0aW9uIFcoeixnLHkpe3kubmVnYXRpdmU9Zy5uZWdhdGl2ZV56Lm5lZ2F0aXZlO3ZhciB4PXoubGVuZ3RoK2cubGVuZ3RofDA7eS5sZW5ndGg9eCx4PXgtMXwwO3ZhciBDPTB8ei53b3Jkc1sw'@; put 'XSxUPTB8Zy53b3Jkc1swXSxWPUMqVCxFPVYvNjcxMDg4NjR8MDt5LndvcmRzWzBdPTY3MTA4ODYzJlY7Zm9yKHZhciBtPTE7bTx4O20rKyl7Zm9yKHZhciBBPUU+Pj4yNixhZT02NzEwODg2MyZFLG5lPU1hdGgubWluKG0sZy5sZW5ndGgtMSksbGU9TWF0aC5tYXgoMCxtLXoubGVuZ3RoKzEp'@; put 'O2xlPD1uZTtsZSsrKUErPShWPShDPTB8ei53b3Jkc1ttLWxlfDBdKSooVD0wfGcud29yZHNbbGVdKSthZSkvNjcxMDg4NjR8MCxhZT02NzEwODg2MyZWO3kud29yZHNbbV09MHxhZSxFPTB8QX1yZXR1cm4gMCE9PUU/eS53b3Jkc1ttXT0wfEU6eS5sZW5ndGgtLSx5LnN0cmlwKCl9dy5wcm90'@; put 'b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oZyx5KXt2YXIgeDtpZih5PTB8eXx8MSwxNj09PShnPWd8fDEwKXx8ImhleCI9PT1nKXt4PSIiO2Zvcih2YXIgQz0wLFQ9MCxWPTA7Vjx0aGlzLmxlbmd0aDtWKyspe3ZhciBVPXRoaXMud29yZHNbVl0sRT0oMTY3NzcyMTUmKFU8PEN8VCkpLnRvU3Ry'@; put 'aW5nKDE2KTtUPVU+Pj4yNC1DJjE2Nzc3MjE1LChDKz0yKT49MjYmJihDLT0yNixWLS0pLHg9MCE9PVR8fFYhPT10aGlzLmxlbmd0aC0xP1BbNi1FLmxlbmd0aF0rRSt4OkUreH1mb3IoMCE9PVQmJih4PVQudG9TdHJpbmcoMTYpK3gpO3gubGVuZ3RoJXkhPTA7KXg9IjAiK3g7cmV0dXJuIDAh'@; put 'PT10aGlzLm5lZ2F0aXZlJiYoeD0iLSIreCkseH1pZihnPT09KDB8ZykmJmc+PTImJmc8PTM2KXt2YXIgbT1MW2ddLEE9WVtnXTt4PSIiO3ZhciBhZT10aGlzLmNsb25lKCk7Zm9yKGFlLm5lZ2F0aXZlPTA7IWFlLmlzWmVybygpOyl7dmFyIG5lPWFlLm1vZG4oQSkudG9TdHJpbmcoZyk7eD0o'@; put 'YWU9YWUuaWRpdm4oQSkpLmlzWmVybygpP25lK3g6UFttLW5lLmxlbmd0aF0rbmUreH1mb3IodGhpcy5pc1plcm8oKSYmKHg9IjAiK3gpO3gubGVuZ3RoJXkhPTA7KXg9IjAiK3g7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoeD0iLSIreCkseH1wKCExLCJCYXNlIHNob3VsZCBiZSBiZXR3'@; put 'ZWVuIDIgYW5kIDM2Iil9LHcucHJvdG90eXBlLnRvTnVtYmVyPWZ1bmN0aW9uKCl7dmFyIGc9dGhpcy53b3Jkc1swXTtyZXR1cm4gMj09PXRoaXMubGVuZ3RoP2crPTY3MTA4ODY0KnRoaXMud29yZHNbMV06Mz09PXRoaXMubGVuZ3RoJiYxPT09dGhpcy53b3Jkc1syXT9nKz00NTAzNTk5NjI3'@; put 'MzcwNDk2KzY3MTA4ODY0KnRoaXMud29yZHNbMV06dGhpcy5sZW5ndGg+MiYmcCghMSwiTnVtYmVyIGNhbiBvbmx5IHNhZmVseSBzdG9yZSB1cCB0byA1MyBiaXRzIiksMCE9PXRoaXMubmVnYXRpdmU/LWc6Z30sdy5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9T'@; put 'dHJpbmcoMTYpfSx3LnByb3RvdHlwZS50b0J1ZmZlcj1mdW5jdGlvbihnLHkpe3JldHVybiBwKHR5cGVvZiBGPCJ1IiksdGhpcy50b0FycmF5TGlrZShGLGcseSl9LHcucHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rpb24oZyx5KXtyZXR1cm4gdGhpcy50b0FycmF5TGlrZShBcnJheSxnLHkpfSx3'@; put 'LnByb3RvdHlwZS50b0FycmF5TGlrZT1mdW5jdGlvbihnLHkseCl7dmFyIEM9dGhpcy5ieXRlTGVuZ3RoKCksVD14fHxNYXRoLm1heCgxLEMpO3AoQzw9VCwiYnl0ZSBhcnJheSBsb25nZXIgdGhhbiBkZXNpcmVkIGxlbmd0aCIpLHAoVD4wLCJSZXF1ZXN0ZWQgYXJyYXkgbGVuZ3RoIDw9IDAi'@; put 'KSx0aGlzLnN0cmlwKCk7dmFyIEUsbSxWPSJsZSI9PT15LFU9bmV3IGcoVCksQT10aGlzLmNsb25lKCk7aWYoVil7Zm9yKG09MDshQS5pc1plcm8oKTttKyspRT1BLmFuZGxuKDI1NSksQS5pdXNocm4oOCksVVttXT1FO2Zvcig7bTxUO20rKylVW21dPTB9ZWxzZXtmb3IobT0wO208VC1DO20r'@; put 'KylVW21dPTA7Zm9yKG09MDshQS5pc1plcm8oKTttKyspRT1BLmFuZGxuKDI1NSksQS5pdXNocm4oOCksVVtULW0tMV09RX1yZXR1cm4gVX0sdy5wcm90b3R5cGUuX2NvdW50Qml0cz1NYXRoLmNsejMyP2Z1bmN0aW9uKGcpe3JldHVybiAzMi1NYXRoLmNsejMyKGcpfTpmdW5jdGlvbihnKXt2'@; put 'YXIgeT1nLHg9MDtyZXR1cm4geT49NDA5NiYmKHgrPTEzLHk+Pj49MTMpLHk+PTY0JiYoeCs9Nyx5Pj4+PTcpLHk+PTgmJih4Kz00LHk+Pj49NCkseT49MiYmKHgrPTIseT4+Pj0yKSx4K3l9LHcucHJvdG90eXBlLl96ZXJvQml0cz1mdW5jdGlvbihnKXtpZigwPT09ZylyZXR1cm4gMjY7dmFy'@; put 'IHk9Zyx4PTA7cmV0dXJuIDgxOTEmeXx8KHgrPTEzLHk+Pj49MTMpLDEyNyZ5fHwoeCs9Nyx5Pj4+PTcpLDE1Jnl8fCh4Kz00LHk+Pj49NCksMyZ5fHwoeCs9Mix5Pj4+PTIpLDEmeXx8eCsrLHh9LHcucHJvdG90eXBlLmJpdExlbmd0aD1mdW5jdGlvbigpe3ZhciB5PXRoaXMuX2NvdW50Qml0'@; put 'cyh0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdKTtyZXR1cm4gMjYqKHRoaXMubGVuZ3RoLTEpK3l9LHcucHJvdG90eXBlLnplcm9CaXRzPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gMDtmb3IodmFyIGc9MCx5PTA7eTx0aGlzLmxlbmd0aDt5Kyspe3ZhciB4PXRoaXMuX3pl'@; put 'cm9CaXRzKHRoaXMud29yZHNbeV0pO2lmKGcrPXgsMjYhPT14KWJyZWFrfXJldHVybiBnfSx3LnByb3RvdHlwZS5ieXRlTGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzLmJpdExlbmd0aCgpLzgpfSx3LnByb3RvdHlwZS50b1R3b3M9ZnVuY3Rpb24oZyl7cmV0dXJuIDAh'@; put 'PT10aGlzLm5lZ2F0aXZlP3RoaXMuYWJzKCkuaW5vdG4oZykuaWFkZG4oMSk6dGhpcy5jbG9uZSgpfSx3LnByb3RvdHlwZS5mcm9tVHdvcz1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy50ZXN0bihnLTEpP3RoaXMubm90bihnKS5pYWRkbigxKS5pbmVnKCk6dGhpcy5jbG9uZSgpfSx3LnByb3Rv'@; put 'dHlwZS5pc05lZz1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZX0sdy5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbmVnKCl9LHcucHJvdG90eXBlLmluZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1plcm8oKXx8KHRoaXMubmVnYXRp'@; put 'dmVePTEpLHRoaXN9LHcucHJvdG90eXBlLml1b3I9ZnVuY3Rpb24oZyl7Zm9yKDt0aGlzLmxlbmd0aDxnLmxlbmd0aDspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO2Zvcih2YXIgeT0wO3k8Zy5sZW5ndGg7eSsrKXRoaXMud29yZHNbeV09dGhpcy53b3Jkc1t5XXxnLndvcmRzW3ldO3Jl'@; put 'dHVybiB0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLmlvcj1mdW5jdGlvbihnKXtyZXR1cm4gcCghKHRoaXMubmVnYXRpdmV8Zy5uZWdhdGl2ZSkpLHRoaXMuaXVvcihnKX0sdy5wcm90b3R5cGUub3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUo'@; put 'KS5pb3IoZyk6Zy5jbG9uZSgpLmlvcih0aGlzKX0sdy5wcm90b3R5cGUudW9yPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaXVvcihnKTpnLmNsb25lKCkuaXVvcih0aGlzKX0sdy5wcm90b3R5cGUuaXVhbmQ9ZnVuY3Rpb24oZyl7dmFyIHk7'@; put 'eT10aGlzLmxlbmd0aD5nLmxlbmd0aD9nOnRoaXM7Zm9yKHZhciB4PTA7eDx5Lmxlbmd0aDt4KyspdGhpcy53b3Jkc1t4XT10aGlzLndvcmRzW3hdJmcud29yZHNbeF07cmV0dXJuIHRoaXMubGVuZ3RoPXkubGVuZ3RoLHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuaWFuZD1mdW5jdGlvbihn'@; put 'KXtyZXR1cm4gcCghKHRoaXMubmVnYXRpdmV8Zy5uZWdhdGl2ZSkpLHRoaXMuaXVhbmQoZyl9LHcucHJvdG90eXBlLmFuZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhbmQoZyk6Zy5jbG9uZSgpLmlhbmQodGhpcyl9LHcucHJvdG90eXBl'@; put 'LnVhbmQ9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdWFuZChnKTpnLmNsb25lKCkuaXVhbmQodGhpcyl9LHcucHJvdG90eXBlLml1eG9yPWZ1bmN0aW9uKGcpe3ZhciB5LHg7dGhpcy5sZW5ndGg+Zy5sZW5ndGg/KHk9dGhpcyx4PWcpOih5'@; put 'PWcseD10aGlzKTtmb3IodmFyIEM9MDtDPHgubGVuZ3RoO0MrKyl0aGlzLndvcmRzW0NdPXkud29yZHNbQ11eeC53b3Jkc1tDXTtpZih0aGlzIT09eSlmb3IoO0M8eS5sZW5ndGg7QysrKXRoaXMud29yZHNbQ109eS53b3Jkc1tDXTtyZXR1cm4gdGhpcy5sZW5ndGg9eS5sZW5ndGgsdGhpcy5z'@; put 'dHJpcCgpfSx3LnByb3RvdHlwZS5peG9yPWZ1bmN0aW9uKGcpe3JldHVybiBwKCEodGhpcy5uZWdhdGl2ZXxnLm5lZ2F0aXZlKSksdGhpcy5pdXhvcihnKX0sdy5wcm90b3R5cGUueG9yPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaXhvcihn'@; put 'KTpnLmNsb25lKCkuaXhvcih0aGlzKX0sdy5wcm90b3R5cGUudXhvcj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLml1eG9yKGcpOmcuY2xvbmUoKS5pdXhvcih0aGlzKX0sdy5wcm90b3R5cGUuaW5vdG49ZnVuY3Rpb24oZyl7cCgibnVtYmVy'@; put 'Ij09dHlwZW9mIGcmJmc+PTApO3ZhciB5PTB8TWF0aC5jZWlsKGcvMjYpLHg9ZyUyNjt0aGlzLl9leHBhbmQoeSkseD4wJiZ5LS07Zm9yKHZhciBDPTA7Qzx5O0MrKyl0aGlzLndvcmRzW0NdPTY3MTA4ODYzJn50aGlzLndvcmRzW0NdO3JldHVybiB4PjAmJih0aGlzLndvcmRzW0NdPX50aGlz'@; put 'LndvcmRzW0NdJjY3MTA4ODYzPj4yNi14KSx0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLm5vdG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbm90bihnKX0sdy5wcm90b3R5cGUuc2V0bj1mdW5jdGlvbihnLHkpe3AoIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgeD1n'@; put 'LzI2fDAsQz1nJTI2O3JldHVybiB0aGlzLl9leHBhbmQoeCsxKSx0aGlzLndvcmRzW3hdPXk/dGhpcy53b3Jkc1t4XXwxPDxDOnRoaXMud29yZHNbeF0mfigxPDxDKSx0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oZyl7dmFyIHkseCxDO2lmKDAhPT10aGlzLm5lZ2F0'@; put 'aXZlJiYwPT09Zy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHk9dGhpcy5pc3ViKGcpLHRoaXMubmVnYXRpdmVePTEsdGhpcy5fbm9ybVNpZ24oKTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PWcubmVnYXRpdmUpcmV0dXJuIGcubmVnYXRpdmU9MCx5PXRoaXMuaXN1YihnKSxn'@; put 'Lm5lZ2F0aXZlPTEseS5fbm9ybVNpZ24oKTt0aGlzLmxlbmd0aD5nLmxlbmd0aD8oeD10aGlzLEM9Zyk6KHg9ZyxDPXRoaXMpO2Zvcih2YXIgVD0wLFY9MDtWPEMubGVuZ3RoO1YrKyl0aGlzLndvcmRzW1ZdPTY3MTA4ODYzJih5PSgwfHgud29yZHNbVl0pKygwfEMud29yZHNbVl0pK1QpLFQ9'@; put 'eT4+PjI2O2Zvcig7MCE9PVQmJlY8eC5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09NjcxMDg4NjMmKHk9KDB8eC53b3Jkc1tWXSkrVCksVD15Pj4+MjY7aWYodGhpcy5sZW5ndGg9eC5sZW5ndGgsMCE9PVQpdGhpcy53b3Jkc1t0aGlzLmxlbmd0aF09VCx0aGlzLmxlbmd0aCsrO2Vsc2UgaWYo'@; put 'eCE9PXRoaXMpZm9yKDtWPHgubGVuZ3RoO1YrKyl0aGlzLndvcmRzW1ZdPXgud29yZHNbVl07cmV0dXJuIHRoaXN9LHcucHJvdG90eXBlLmFkZD1mdW5jdGlvbihnKXt2YXIgeTtyZXR1cm4gMCE9PWcubmVnYXRpdmUmJjA9PT10aGlzLm5lZ2F0aXZlPyhnLm5lZ2F0aXZlPTAseT10aGlzLnN1'@; put 'YihnKSxnLm5lZ2F0aXZlXj0xLHkpOjA9PT1nLm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLHk9Zy5zdWIodGhpcyksdGhpcy5uZWdhdGl2ZT0xLHkpOnRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRkKGcpOmcuY2xvbmUoKS5pYWRkKHRo'@; put 'aXMpfSx3LnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKGcpe2lmKDAhPT1nLm5lZ2F0aXZlKXtnLm5lZ2F0aXZlPTA7dmFyIHk9dGhpcy5pYWRkKGcpO3JldHVybiBnLm5lZ2F0aXZlPTEseS5fbm9ybVNpZ24oKX1pZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRo'@; put 'aXMuaWFkZChnKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fbm9ybVNpZ24oKTt2YXIgQyxULHg9dGhpcy5jbXAoZyk7aWYoMD09PXgpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmxlbmd0aD0xLHRoaXMud29yZHNbMF09MCx0aGlzO3g+MD8oQz10aGlzLFQ9Zyk6KEM9ZyxUPXRoaXMpO2Zv'@; put 'cih2YXIgVj0wLFU9MDtVPFQubGVuZ3RoO1UrKylWPSh5PSgwfEMud29yZHNbVV0pLSgwfFQud29yZHNbVV0pK1YpPj4yNix0aGlzLndvcmRzW1VdPTY3MTA4ODYzJnk7Zm9yKDswIT09ViYmVTxDLmxlbmd0aDtVKyspVj0oeT0oMHxDLndvcmRzW1VdKStWKT4+MjYsdGhpcy53b3Jkc1tVXT02'@; put 'NzEwODg2MyZ5O2lmKDA9PT1WJiZVPEMubGVuZ3RoJiZDIT09dGhpcylmb3IoO1U8Qy5sZW5ndGg7VSsrKXRoaXMud29yZHNbVV09Qy53b3Jkc1tVXTtyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgsVSksQyE9PXRoaXMmJih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuc3Ry'@; put 'aXAoKX0sdy5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1YihnKX07dmFyIFo9ZnVuY3Rpb24oZyx5LHgpe3ZhciBFLG0sQSxDPWcud29yZHMsVD15LndvcmRzLFY9eC53b3JkcyxVPTAsYWU9MHxDWzBdLG5lPTgxOTEmYWUsbGU9YWU+Pj4xMyx3ZT0w'@; put 'fENbMV0sWmU9ODE5MSZ3ZSxRZT13ZT4+PjEzLGF0PTB8Q1syXSx4ZT04MTkxJmF0LHZlPWF0Pj4+MTMscWU9MHxDWzNdLGplPTgxOTEmcWUsQWU9cWU+Pj4xMyxGZT0wfENbNF0sUmU9ODE5MSZGZSxJZT1GZT4+PjEzLEhlPTB8Q1s1XSxEZT04MTkxJkhlLGtlPUhlPj4+MTMsX3Q9MHxDWzZd'@; put 'LG50PTgxOTEmX3QsSmU9X3Q+Pj4xMyxvbj0wfENbN10seXQ9ODE5MSZvbixNdD1vbj4+PjEzLEl0PTB8Q1s4XSxydD04MTkxJkl0LEtlPUl0Pj4+MTMsdHQ9MHxDWzldLE5lPTgxOTEmdHQsdXQ9dHQ+Pj4xMyxKdD0wfFRbMF0sTHQ9ODE5MSZKdCxQdD1KdD4+PjEzLG9pPTB8VFsxXSxlbj04'@; put 'MTkxJm9pLHNuPW9pPj4+MTMsSWk9MHxUWzJdLGRuPTgxOTEmSWksZnQ9SWk+Pj4xMyxGcj0wfFRbM10sWnQ9ODE5MSZGcixrdD1Gcj4+PjEzLExuPTB8VFs0XSxvdD04MTkxJkxuLHp0PUxuPj4+MTMsbmk9MHxUWzVdLFdlPTgxOTEmbmksQXQ9bmk+Pj4xMyxpcj0wfFRbNl0saHQ9ODE5MSZp'@; put 'cixFdD1pcj4+PjEzLHpuPTB8VFs3XSxhbj04MTkxJnpuLGp0PXpuPj4+MTMsZGk9MHxUWzhdLGNuPTgxOTEmZGksZm49ZGk+Pj4xMyxEaT0wfFRbOV0sUXQ9ODE5MSZEaSx0bj1EaT4+PjEzO3gubmVnYXRpdmU9Zy5uZWdhdGl2ZV55Lm5lZ2F0aXZlLHgubGVuZ3RoPTE5O3ZhciBjYT0oVSso'@; put 'RT1NYXRoLmltdWwobmUsTHQpKXwwKSsoKDgxOTEmKG09KG09TWF0aC5pbXVsKG5lLFB0KSkrTWF0aC5pbXVsKGxlLEx0KXwwKSk8PDEzKXwwO1U9KChBPU1hdGguaW11bChsZSxQdCkpKyhtPj4+MTMpfDApKyhjYT4+PjI2KXwwLGNhJj02NzEwODg2MyxFPU1hdGguaW11bChaZSxMdCksbT0o'@; put 'bT1NYXRoLmltdWwoWmUsUHQpKStNYXRoLmltdWwoUWUsTHQpfDAsQT1NYXRoLmltdWwoUWUsUHQpO3ZhciB4aT0oVSsoRT1FK01hdGguaW11bChuZSxlbil8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLHNuKXwwKStNYXRoLmltdWwobGUsZW4pfDApKTw8MTMpfDA7VT0oKEE9'@; put 'QStNYXRoLmltdWwobGUsc24pfDApKyhtPj4+MTMpfDApKyh4aT4+PjI2KXwwLHhpJj02NzEwODg2MyxFPU1hdGguaW11bCh4ZSxMdCksbT0obT1NYXRoLmltdWwoeGUsUHQpKStNYXRoLmltdWwodmUsTHQpfDAsQT1NYXRoLmltdWwodmUsUHQpLEU9RStNYXRoLmltdWwoWmUsZW4pfDAsbT0o'@; put 'bT1tK01hdGguaW11bChaZSxzbil8MCkrTWF0aC5pbXVsKFFlLGVuKXwwLEE9QStNYXRoLmltdWwoUWUsc24pfDA7dmFyIHlyPShVKyhFPUUrTWF0aC5pbXVsKG5lLGRuKXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsZnQpfDApK01hdGguaW11bChsZSxkbil8MCkpPDwxMyl8'@; put 'MDtVPSgoQT1BK01hdGguaW11bChsZSxmdCl8MCkrKG0+Pj4xMyl8MCkrKHlyPj4+MjYpfDAseXImPTY3MTA4ODYzLEU9TWF0aC5pbXVsKGplLEx0KSxtPShtPU1hdGguaW11bChqZSxQdCkpK01hdGguaW11bChBZSxMdCl8MCxBPU1hdGguaW11bChBZSxQdCksRT1FK01hdGguaW11bCh4ZSxl'@; put 'bil8MCxtPShtPW0rTWF0aC5pbXVsKHhlLHNuKXwwKStNYXRoLmltdWwodmUsZW4pfDAsQT1BK01hdGguaW11bCh2ZSxzbil8MCxFPUUrTWF0aC5pbXVsKFplLGRuKXwwLG09KG09bStNYXRoLmltdWwoWmUsZnQpfDApK01hdGguaW11bChRZSxkbil8MCxBPUErTWF0aC5pbXVsKFFlLGZ0KXww'@; put 'O3ZhciBHbj0oVSsoRT1FK01hdGguaW11bChuZSxadCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLGt0KXwwKStNYXRoLmltdWwobGUsWnQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwobGUsa3QpfDApKyhtPj4+MTMpfDApKyhHbj4+PjI2KXwwLEduJj02NzEwODg2'@; put 'MyxFPU1hdGguaW11bChSZSxMdCksbT0obT1NYXRoLmltdWwoUmUsUHQpKStNYXRoLmltdWwoSWUsTHQpfDAsQT1NYXRoLmltdWwoSWUsUHQpLEU9RStNYXRoLmltdWwoamUsZW4pfDAsbT0obT1tK01hdGguaW11bChqZSxzbil8MCkrTWF0aC5pbXVsKEFlLGVuKXwwLEE9QStNYXRoLmltdWwo'@; put 'QWUsc24pfDAsRT1FK01hdGguaW11bCh4ZSxkbil8MCxtPShtPW0rTWF0aC5pbXVsKHhlLGZ0KXwwKStNYXRoLmltdWwodmUsZG4pfDAsQT1BK01hdGguaW11bCh2ZSxmdCl8MCxFPUUrTWF0aC5pbXVsKFplLFp0KXwwLG09KG09bStNYXRoLmltdWwoWmUsa3QpfDApK01hdGguaW11bChRZSxa'@; put 'dCl8MCxBPUErTWF0aC5pbXVsKFFlLGt0KXwwO3ZhciBLaT0oVSsoRT1FK01hdGguaW11bChuZSxvdCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLHp0KXwwKStNYXRoLmltdWwobGUsb3QpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwobGUsenQpfDApKyhtPj4+MTMp'@; put 'fDApKyhLaT4+PjI2KXwwLEtpJj02NzEwODg2MyxFPU1hdGguaW11bChEZSxMdCksbT0obT1NYXRoLmltdWwoRGUsUHQpKStNYXRoLmltdWwoa2UsTHQpfDAsQT1NYXRoLmltdWwoa2UsUHQpLEU9RStNYXRoLmltdWwoUmUsZW4pfDAsbT0obT1tK01hdGguaW11bChSZSxzbil8MCkrTWF0aC5p'@; put 'bXVsKEllLGVuKXwwLEE9QStNYXRoLmltdWwoSWUsc24pfDAsRT1FK01hdGguaW11bChqZSxkbil8MCxtPShtPW0rTWF0aC5pbXVsKGplLGZ0KXwwKStNYXRoLmltdWwoQWUsZG4pfDAsQT1BK01hdGguaW11bChBZSxmdCl8MCxFPUUrTWF0aC5pbXVsKHhlLFp0KXwwLG09KG09bStNYXRoLmlt'@; put 'dWwoeGUsa3QpfDApK01hdGguaW11bCh2ZSxadCl8MCxBPUErTWF0aC5pbXVsKHZlLGt0KXwwLEU9RStNYXRoLmltdWwoWmUsb3QpfDAsbT0obT1tK01hdGguaW11bChaZSx6dCl8MCkrTWF0aC5pbXVsKFFlLG90KXwwLEE9QStNYXRoLmltdWwoUWUsenQpfDA7dmFyIEpyPShVKyhFPUUrTWF0'@; put 'aC5pbXVsKG5lLFdlKXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsQXQpfDApK01hdGguaW11bChsZSxXZSl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSxBdCl8MCkrKG0+Pj4xMyl8MCkrKEpyPj4+MjYpfDAsSnImPTY3MTA4ODYzLEU9TWF0aC5pbXVsKG50LEx0'@; put 'KSxtPShtPU1hdGguaW11bChudCxQdCkpK01hdGguaW11bChKZSxMdCl8MCxBPU1hdGguaW11bChKZSxQdCksRT1FK01hdGguaW11bChEZSxlbil8MCxtPShtPW0rTWF0aC5pbXVsKERlLHNuKXwwKStNYXRoLmltdWwoa2UsZW4pfDAsQT1BK01hdGguaW11bChrZSxzbil8MCxFPUUrTWF0aC5p'@; put 'bXVsKFJlLGRuKXwwLG09KG09bStNYXRoLmltdWwoUmUsZnQpfDApK01hdGguaW11bChJZSxkbil8MCxBPUErTWF0aC5pbXVsKEllLGZ0KXwwLEU9RStNYXRoLmltdWwoamUsWnQpfDAsbT0obT1tK01hdGguaW11bChqZSxrdCl8MCkrTWF0aC5pbXVsKEFlLFp0KXwwLEE9QStNYXRoLmltdWwo'@; put 'QWUsa3QpfDAsRT1FK01hdGguaW11bCh4ZSxvdCl8MCxtPShtPW0rTWF0aC5pbXVsKHhlLHp0KXwwKStNYXRoLmltdWwodmUsb3QpfDAsQT1BK01hdGguaW11bCh2ZSx6dCl8MCxFPUUrTWF0aC5pbXVsKFplLFdlKXwwLG09KG09bStNYXRoLmltdWwoWmUsQXQpfDApK01hdGguaW11bChRZSxX'@; put 'ZSl8MCxBPUErTWF0aC5pbXVsKFFlLEF0KXwwO3ZhciBRcj0oVSsoRT1FK01hdGguaW11bChuZSxodCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLEV0KXwwKStNYXRoLmltdWwobGUsaHQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwobGUsRXQpfDApKyhtPj4+MTMp'@; put 'fDApKyhRcj4+PjI2KXwwLFFyJj02NzEwODg2MyxFPU1hdGguaW11bCh5dCxMdCksbT0obT1NYXRoLmltdWwoeXQsUHQpKStNYXRoLmltdWwoTXQsTHQpfDAsQT1NYXRoLmltdWwoTXQsUHQpLEU9RStNYXRoLmltdWwobnQsZW4pfDAsbT0obT1tK01hdGguaW11bChudCxzbil8MCkrTWF0aC5p'@; put 'bXVsKEplLGVuKXwwLEE9QStNYXRoLmltdWwoSmUsc24pfDAsRT1FK01hdGguaW11bChEZSxkbil8MCxtPShtPW0rTWF0aC5pbXVsKERlLGZ0KXwwKStNYXRoLmltdWwoa2UsZG4pfDAsQT1BK01hdGguaW11bChrZSxmdCl8MCxFPUUrTWF0aC5pbXVsKFJlLFp0KXwwLG09KG09bStNYXRoLmlt'@; put 'dWwoUmUsa3QpfDApK01hdGguaW11bChJZSxadCl8MCxBPUErTWF0aC5pbXVsKEllLGt0KXwwLEU9RStNYXRoLmltdWwoamUsb3QpfDAsbT0obT1tK01hdGguaW11bChqZSx6dCl8MCkrTWF0aC5pbXVsKEFlLG90KXwwLEE9QStNYXRoLmltdWwoQWUsenQpfDAsRT1FK01hdGguaW11bCh4ZSxX'@; put 'ZSl8MCxtPShtPW0rTWF0aC5pbXVsKHhlLEF0KXwwKStNYXRoLmltdWwodmUsV2UpfDAsQT1BK01hdGguaW11bCh2ZSxBdCl8MCxFPUUrTWF0aC5pbXVsKFplLGh0KXwwLG09KG09bStNYXRoLmltdWwoWmUsRXQpfDApK01hdGguaW11bChRZSxodCl8MCxBPUErTWF0aC5pbXVsKFFlLEV0KXww'@; put 'O3ZhciBOaT0oVSsoRT1FK01hdGguaW11bChuZSxhbil8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLGp0KXwwKStNYXRoLmltdWwobGUsYW4pfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwobGUsanQpfDApKyhtPj4+MTMpfDApKyhOaT4+PjI2KXwwLE5pJj02NzEwODg2'@; put 'MyxFPU1hdGguaW11bChydCxMdCksbT0obT1NYXRoLmltdWwocnQsUHQpKStNYXRoLmltdWwoS2UsTHQpfDAsQT1NYXRoLmltdWwoS2UsUHQpLEU9RStNYXRoLmltdWwoeXQsZW4pfDAsbT0obT1tK01hdGguaW11bCh5dCxzbil8MCkrTWF0aC5pbXVsKE10LGVuKXwwLEE9QStNYXRoLmltdWwo'@; put 'TXQsc24pfDAsRT1FK01hdGguaW11bChudCxkbil8MCxtPShtPW0rTWF0aC5pbXVsKG50LGZ0KXwwKStNYXRoLmltdWwoSmUsZG4pfDAsQT1BK01hdGguaW11bChKZSxmdCl8MCxFPUUrTWF0aC5pbXVsKERlLFp0KXwwLG09KG09bStNYXRoLmltdWwoRGUsa3QpfDApK01hdGguaW11bChrZSxa'@; put 'dCl8MCxBPUErTWF0aC5pbXVsKGtlLGt0KXwwLEU9RStNYXRoLmltdWwoUmUsb3QpfDAsbT0obT1tK01hdGguaW11bChSZSx6dCl8MCkrTWF0aC5pbXVsKEllLG90KXwwLEE9QStNYXRoLmltdWwoSWUsenQpfDAsRT1FK01hdGguaW11bChqZSxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKGplLEF0'@; put 'KXwwKStNYXRoLmltdWwoQWUsV2UpfDAsQT1BK01hdGguaW11bChBZSxBdCl8MCxFPUUrTWF0aC5pbXVsKHhlLGh0KXwwLG09KG09bStNYXRoLmltdWwoeGUsRXQpfDApK01hdGguaW11bCh2ZSxodCl8MCxBPUErTWF0aC5pbXVsKHZlLEV0KXwwLEU9RStNYXRoLmltdWwoWmUsYW4pfDAsbT0o'@; put 'bT1tK01hdGguaW11bChaZSxqdCl8MCkrTWF0aC5pbXVsKFFlLGFuKXwwLEE9QStNYXRoLmltdWwoUWUsanQpfDA7dmFyIEhpPShVKyhFPUUrTWF0aC5pbXVsKG5lLGNuKXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsZm4pfDApK01hdGguaW11bChsZSxjbil8MCkpPDwxMyl8'@; put 'MDtVPSgoQT1BK01hdGguaW11bChsZSxmbil8MCkrKG0+Pj4xMyl8MCkrKEhpPj4+MjYpfDAsSGkmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLEx0KSxtPShtPU1hdGguaW11bChOZSxQdCkpK01hdGguaW11bCh1dCxMdCl8MCxBPU1hdGguaW11bCh1dCxQdCksRT1FK01hdGguaW11bChydCxl'@; put 'bil8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LHNuKXwwKStNYXRoLmltdWwoS2UsZW4pfDAsQT1BK01hdGguaW11bChLZSxzbil8MCxFPUUrTWF0aC5pbXVsKHl0LGRuKXwwLG09KG09bStNYXRoLmltdWwoeXQsZnQpfDApK01hdGguaW11bChNdCxkbil8MCxBPUErTWF0aC5pbXVsKE10LGZ0KXww'@; put 'LEU9RStNYXRoLmltdWwobnQsWnQpfDAsbT0obT1tK01hdGguaW11bChudCxrdCl8MCkrTWF0aC5pbXVsKEplLFp0KXwwLEE9QStNYXRoLmltdWwoSmUsa3QpfDAsRT1FK01hdGguaW11bChEZSxvdCl8MCxtPShtPW0rTWF0aC5pbXVsKERlLHp0KXwwKStNYXRoLmltdWwoa2Usb3QpfDAsQT1B'@; put 'K01hdGguaW11bChrZSx6dCl8MCxFPUUrTWF0aC5pbXVsKFJlLFdlKXwwLG09KG09bStNYXRoLmltdWwoUmUsQXQpfDApK01hdGguaW11bChJZSxXZSl8MCxBPUErTWF0aC5pbXVsKEllLEF0KXwwLEU9RStNYXRoLmltdWwoamUsaHQpfDAsbT0obT1tK01hdGguaW11bChqZSxFdCl8MCkrTWF0'@; put 'aC5pbXVsKEFlLGh0KXwwLEE9QStNYXRoLmltdWwoQWUsRXQpfDAsRT1FK01hdGguaW11bCh4ZSxhbil8MCxtPShtPW0rTWF0aC5pbXVsKHhlLGp0KXwwKStNYXRoLmltdWwodmUsYW4pfDAsQT1BK01hdGguaW11bCh2ZSxqdCl8MCxFPUUrTWF0aC5pbXVsKFplLGNuKXwwLG09KG09bStNYXRo'@; put 'LmltdWwoWmUsZm4pfDApK01hdGguaW11bChRZSxjbil8MCxBPUErTWF0aC5pbXVsKFFlLGZuKXwwO3ZhciBJYT0oVSsoRT1FK01hdGguaW11bChuZSxRdCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLHRuKXwwKStNYXRoLmltdWwobGUsUXQpfDApKTw8MTMpfDA7VT0oKEE9'@; put 'QStNYXRoLmltdWwobGUsdG4pfDApKyhtPj4+MTMpfDApKyhJYT4+PjI2KXwwLElhJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxlbiksbT0obT1NYXRoLmltdWwoTmUsc24pKStNYXRoLmltdWwodXQsZW4pfDAsQT1NYXRoLmltdWwodXQsc24pLEU9RStNYXRoLmltdWwocnQsZG4pfDAsbT0o'@; put 'bT1tK01hdGguaW11bChydCxmdCl8MCkrTWF0aC5pbXVsKEtlLGRuKXwwLEE9QStNYXRoLmltdWwoS2UsZnQpfDAsRT1FK01hdGguaW11bCh5dCxadCl8MCxtPShtPW0rTWF0aC5pbXVsKHl0LGt0KXwwKStNYXRoLmltdWwoTXQsWnQpfDAsQT1BK01hdGguaW11bChNdCxrdCl8MCxFPUUrTWF0'@; put 'aC5pbXVsKG50LG90KXwwLG09KG09bStNYXRoLmltdWwobnQsenQpfDApK01hdGguaW11bChKZSxvdCl8MCxBPUErTWF0aC5pbXVsKEplLHp0KXwwLEU9RStNYXRoLmltdWwoRGUsV2UpfDAsbT0obT1tK01hdGguaW11bChEZSxBdCl8MCkrTWF0aC5pbXVsKGtlLFdlKXwwLEE9QStNYXRoLmlt'@; put 'dWwoa2UsQXQpfDAsRT1FK01hdGguaW11bChSZSxodCl8MCxtPShtPW0rTWF0aC5pbXVsKFJlLEV0KXwwKStNYXRoLmltdWwoSWUsaHQpfDAsQT1BK01hdGguaW11bChJZSxFdCl8MCxFPUUrTWF0aC5pbXVsKGplLGFuKXwwLG09KG09bStNYXRoLmltdWwoamUsanQpfDApK01hdGguaW11bChB'@; put 'ZSxhbil8MCxBPUErTWF0aC5pbXVsKEFlLGp0KXwwLEU9RStNYXRoLmltdWwoeGUsY24pfDAsbT0obT1tK01hdGguaW11bCh4ZSxmbil8MCkrTWF0aC5pbXVsKHZlLGNuKXwwLEE9QStNYXRoLmltdWwodmUsZm4pfDA7dmFyIFByPShVKyhFPUUrTWF0aC5pbXVsKFplLFF0KXwwKXwwKSsoKDgx'@; put 'OTEmKG09KG09bStNYXRoLmltdWwoWmUsdG4pfDApK01hdGguaW11bChRZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChRZSx0bil8MCkrKG0+Pj4xMyl8MCkrKFByPj4+MjYpfDAsUHImPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLGRuKSxtPShtPU1hdGguaW11bChOZSxmdCkp'@; put 'K01hdGguaW11bCh1dCxkbil8MCxBPU1hdGguaW11bCh1dCxmdCksRT1FK01hdGguaW11bChydCxadCl8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LGt0KXwwKStNYXRoLmltdWwoS2UsWnQpfDAsQT1BK01hdGguaW11bChLZSxrdCl8MCxFPUUrTWF0aC5pbXVsKHl0LG90KXwwLG09KG09bStNYXRo'@; put 'LmltdWwoeXQsenQpfDApK01hdGguaW11bChNdCxvdCl8MCxBPUErTWF0aC5pbXVsKE10LHp0KXwwLEU9RStNYXRoLmltdWwobnQsV2UpfDAsbT0obT1tK01hdGguaW11bChudCxBdCl8MCkrTWF0aC5pbXVsKEplLFdlKXwwLEE9QStNYXRoLmltdWwoSmUsQXQpfDAsRT1FK01hdGguaW11bChE'@; put 'ZSxodCl8MCxtPShtPW0rTWF0aC5pbXVsKERlLEV0KXwwKStNYXRoLmltdWwoa2UsaHQpfDAsQT1BK01hdGguaW11bChrZSxFdCl8MCxFPUUrTWF0aC5pbXVsKFJlLGFuKXwwLG09KG09bStNYXRoLmltdWwoUmUsanQpfDApK01hdGguaW11bChJZSxhbil8MCxBPUErTWF0aC5pbXVsKEllLGp0'@; put 'KXwwLEU9RStNYXRoLmltdWwoamUsY24pfDAsbT0obT1tK01hdGguaW11bChqZSxmbil8MCkrTWF0aC5pbXVsKEFlLGNuKXwwLEE9QStNYXRoLmltdWwoQWUsZm4pfDA7dmFyIFlpPShVKyhFPUUrTWF0aC5pbXVsKHhlLFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwoeGUsdG4p'@; put 'fDApK01hdGguaW11bCh2ZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bCh2ZSx0bil8MCkrKG0+Pj4xMyl8MCkrKFlpPj4+MjYpfDAsWWkmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLFp0KSxtPShtPU1hdGguaW11bChOZSxrdCkpK01hdGguaW11bCh1dCxadCl8MCxBPU1hdGgu'@; put 'aW11bCh1dCxrdCksRT1FK01hdGguaW11bChydCxvdCl8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LHp0KXwwKStNYXRoLmltdWwoS2Usb3QpfDAsQT1BK01hdGguaW11bChLZSx6dCl8MCxFPUUrTWF0aC5pbXVsKHl0LFdlKXwwLG09KG09bStNYXRoLmltdWwoeXQsQXQpfDApK01hdGguaW11bChN'@; put 'dCxXZSl8MCxBPUErTWF0aC5pbXVsKE10LEF0KXwwLEU9RStNYXRoLmltdWwobnQsaHQpfDAsbT0obT1tK01hdGguaW11bChudCxFdCl8MCkrTWF0aC5pbXVsKEplLGh0KXwwLEE9QStNYXRoLmltdWwoSmUsRXQpfDAsRT1FK01hdGguaW11bChEZSxhbil8MCxtPShtPW0rTWF0aC5pbXVsKERl'@; put 'LGp0KXwwKStNYXRoLmltdWwoa2UsYW4pfDAsQT1BK01hdGguaW11bChrZSxqdCl8MCxFPUUrTWF0aC5pbXVsKFJlLGNuKXwwLG09KG09bStNYXRoLmltdWwoUmUsZm4pfDApK01hdGguaW11bChJZSxjbil8MCxBPUErTWF0aC5pbXVsKEllLGZuKXwwO3ZhciBmYT0oVSsoRT1FK01hdGguaW11'@; put 'bChqZSxRdCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKGplLHRuKXwwKStNYXRoLmltdWwoQWUsUXQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwoQWUsdG4pfDApKyhtPj4+MTMpfDApKyhmYT4+PjI2KXwwLGZhJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxvdCksbT0o'@; put 'bT1NYXRoLmltdWwoTmUsenQpKStNYXRoLmltdWwodXQsb3QpfDAsQT1NYXRoLmltdWwodXQsenQpLEU9RStNYXRoLmltdWwocnQsV2UpfDAsbT0obT1tK01hdGguaW11bChydCxBdCl8MCkrTWF0aC5pbXVsKEtlLFdlKXwwLEE9QStNYXRoLmltdWwoS2UsQXQpfDAsRT1FK01hdGguaW11bCh5'@; put 'dCxodCl8MCxtPShtPW0rTWF0aC5pbXVsKHl0LEV0KXwwKStNYXRoLmltdWwoTXQsaHQpfDAsQT1BK01hdGguaW11bChNdCxFdCl8MCxFPUUrTWF0aC5pbXVsKG50LGFuKXwwLG09KG09bStNYXRoLmltdWwobnQsanQpfDApK01hdGguaW11bChKZSxhbil8MCxBPUErTWF0aC5pbXVsKEplLGp0'@; put 'KXwwLEU9RStNYXRoLmltdWwoRGUsY24pfDAsbT0obT1tK01hdGguaW11bChEZSxmbil8MCkrTWF0aC5pbXVsKGtlLGNuKXwwLEE9QStNYXRoLmltdWwoa2UsZm4pfDA7dmFyIG5yPShVKyhFPUUrTWF0aC5pbXVsKFJlLFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwoUmUsdG4p'@; put 'fDApK01hdGguaW11bChJZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChJZSx0bil8MCkrKG0+Pj4xMyl8MCkrKG5yPj4+MjYpfDAsbnImPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLFdlKSxtPShtPU1hdGguaW11bChOZSxBdCkpK01hdGguaW11bCh1dCxXZSl8MCxBPU1hdGgu'@; put 'aW11bCh1dCxBdCksRT1FK01hdGguaW11bChydCxodCl8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LEV0KXwwKStNYXRoLmltdWwoS2UsaHQpfDAsQT1BK01hdGguaW11bChLZSxFdCl8MCxFPUUrTWF0aC5pbXVsKHl0LGFuKXwwLG09KG09bStNYXRoLmltdWwoeXQsanQpfDApK01hdGguaW11bChN'@; put 'dCxhbil8MCxBPUErTWF0aC5pbXVsKE10LGp0KXwwLEU9RStNYXRoLmltdWwobnQsY24pfDAsbT0obT1tK01hdGguaW11bChudCxmbil8MCkrTWF0aC5pbXVsKEplLGNuKXwwLEE9QStNYXRoLmltdWwoSmUsZm4pfDA7dmFyIG9hPShVKyhFPUUrTWF0aC5pbXVsKERlLFF0KXwwKXwwKSsoKDgx'@; put 'OTEmKG09KG09bStNYXRoLmltdWwoRGUsdG4pfDApK01hdGguaW11bChrZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChrZSx0bil8MCkrKG0+Pj4xMyl8MCkrKG9hPj4+MjYpfDAsb2EmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLGh0KSxtPShtPU1hdGguaW11bChOZSxFdCkp'@; put 'K01hdGguaW11bCh1dCxodCl8MCxBPU1hdGguaW11bCh1dCxFdCksRT1FK01hdGguaW11bChydCxhbil8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LGp0KXwwKStNYXRoLmltdWwoS2UsYW4pfDAsQT1BK01hdGguaW11bChLZSxqdCl8MCxFPUUrTWF0aC5pbXVsKHl0LGNuKXwwLG09KG09bStNYXRo'@; put 'LmltdWwoeXQsZm4pfDApK01hdGguaW11bChNdCxjbil8MCxBPUErTWF0aC5pbXVsKE10LGZuKXwwO3ZhciBfYT0oVSsoRT1FK01hdGguaW11bChudCxRdCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG50LHRuKXwwKStNYXRoLmltdWwoSmUsUXQpfDApKTw8MTMpfDA7VT0oKEE9'@; put 'QStNYXRoLmltdWwoSmUsdG4pfDApKyhtPj4+MTMpfDApKyhfYT4+PjI2KXwwLF9hJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxhbiksbT0obT1NYXRoLmltdWwoTmUsanQpKStNYXRoLmltdWwodXQsYW4pfDAsQT1NYXRoLmltdWwodXQsanQpLEU9RStNYXRoLmltdWwocnQsY24pfDAsbT0o'@; put 'bT1tK01hdGguaW11bChydCxmbil8MCkrTWF0aC5pbXVsKEtlLGNuKXwwLEE9QStNYXRoLmltdWwoS2UsZm4pfDA7dmFyIE9hPShVKyhFPUUrTWF0aC5pbXVsKHl0LFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwoeXQsdG4pfDApK01hdGguaW11bChNdCxRdCl8MCkpPDwxMyl8'@; put 'MDtVPSgoQT1BK01hdGguaW11bChNdCx0bil8MCkrKG0+Pj4xMyl8MCkrKE9hPj4+MjYpfDAsT2EmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLGNuKSxtPShtPU1hdGguaW11bChOZSxmbikpK01hdGguaW11bCh1dCxjbil8MCxBPU1hdGguaW11bCh1dCxmbik7dmFyIE5hPShVKyhFPUUrTWF0'@; put 'aC5pbXVsKHJ0LFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwocnQsdG4pfDApK01hdGguaW11bChLZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChLZSx0bil8MCkrKG0+Pj4xMyl8MCkrKE5hPj4+MjYpfDAsTmEmPTY3MTA4ODYzO3ZhciBlaT0oVSsoRT1NYXRo'@; put 'LmltdWwoTmUsUXQpKXwwKSsoKDgxOTEmKG09KG09TWF0aC5pbXVsKE5lLHRuKSkrTWF0aC5pbXVsKHV0LFF0KXwwKSk8PDEzKXwwO3JldHVybiBVPSgoQT1NYXRoLmltdWwodXQsdG4pKSsobT4+PjEzKXwwKSsoZWk+Pj4yNil8MCxlaSY9NjcxMDg4NjMsVlswXT1jYSxWWzFdPXhpLFZbMl09'@; put 'eXIsVlszXT1HbixWWzRdPUtpLFZbNV09SnIsVls2XT1RcixWWzddPU5pLFZbOF09SGksVls5XT1JYSxWWzEwXT1QcixWWzExXT1ZaSxWWzEyXT1mYSxWWzEzXT1ucixWWzE0XT1vYSxWWzE1XT1fYSxWWzE2XT1PYSxWWzE3XT1OYSxWWzE4XT1laSwwIT09VSYmKFZbMTldPVUseC5sZW5ndGgr'@; put 'KykseH07ZnVuY3Rpb24gUSh6LGcseSl7cmV0dXJuKG5ldyBxKS5tdWxwKHosZyx5KX1mdW5jdGlvbiBxKHosZyl7dGhpcy54PXosdGhpcy55PWd9TWF0aC5pbXVsfHwoWj1XKSx3LnByb3RvdHlwZS5tdWxUbz1mdW5jdGlvbihnLHkpe3ZhciB4LEM9dGhpcy5sZW5ndGgrZy5sZW5ndGg7cmV0'@; put 'dXJuIHg9MTA9PT10aGlzLmxlbmd0aCYmMTA9PT1nLmxlbmd0aD9aKHRoaXMsZyx5KTpDPDYzP1codGhpcyxnLHkpOkM8MTAyND9mdW5jdGlvbiBYKHosZyx5KXt5Lm5lZ2F0aXZlPWcubmVnYXRpdmVeei5uZWdhdGl2ZSx5Lmxlbmd0aD16Lmxlbmd0aCtnLmxlbmd0aDtmb3IodmFyIHg9MCxD'@; put 'PTAsVD0wO1Q8eS5sZW5ndGgtMTtUKyspe3ZhciBWPUM7Qz0wO2Zvcih2YXIgVT02NzEwODg2MyZ4LEU9TWF0aC5taW4oVCxnLmxlbmd0aC0xKSxtPU1hdGgubWF4KDAsVC16Lmxlbmd0aCsxKTttPD1FO20rKyl7dmFyIGxlPSgwfHoud29yZHNbVC1tXSkqKDB8Zy53b3Jkc1ttXSksd2U9Njcx'@; put 'MDg4NjMmbGU7VT02NzEwODg2MyYod2U9d2UrVXwwKSxDKz0oVj0oVj1WKyhsZS82NzEwODg2NHwwKXwwKSsod2U+Pj4yNil8MCk+Pj4yNixWJj02NzEwODg2M315LndvcmRzW1RdPVUseD1WLFY9Q31yZXR1cm4gMCE9PXg/eS53b3Jkc1tUXT14OnkubGVuZ3RoLS0seS5zdHJpcCgpfSh0aGlz'@; put 'LGcseSk6USh0aGlzLGcseSkseH0scS5wcm90b3R5cGUubWFrZVJCVD1mdW5jdGlvbihnKXtmb3IodmFyIHk9bmV3IEFycmF5KGcpLHg9dy5wcm90b3R5cGUuX2NvdW50Qml0cyhnKS0xLEM9MDtDPGc7QysrKXlbQ109dGhpcy5yZXZCaW4oQyx4LGcpO3JldHVybiB5fSxxLnByb3RvdHlwZS5y'@; put 'ZXZCaW49ZnVuY3Rpb24oZyx5LHgpe2lmKDA9PT1nfHxnPT09eC0xKXJldHVybiBnO2Zvcih2YXIgQz0wLFQ9MDtUPHk7VCsrKUN8PSgxJmcpPDx5LVQtMSxnPj49MTtyZXR1cm4gQ30scS5wcm90b3R5cGUucGVybXV0ZT1mdW5jdGlvbihnLHkseCxDLFQsVil7Zm9yKHZhciBVPTA7VTxWO1Ur'@; put 'KylDW1VdPXlbZ1tVXV0sVFtVXT14W2dbVV1dfSxxLnByb3RvdHlwZS50cmFuc2Zvcm09ZnVuY3Rpb24oZyx5LHgsQyxULFYpe3RoaXMucGVybXV0ZShWLGcseSx4LEMsVCk7Zm9yKHZhciBVPTE7VTxUO1U8PD0xKWZvcih2YXIgRT1VPDwxLG09TWF0aC5jb3MoMipNYXRoLlBJL0UpLEE9TWF0'@; put 'aC5zaW4oMipNYXRoLlBJL0UpLGFlPTA7YWU8VDthZSs9RSlmb3IodmFyIG5lPW0sbGU9QSx3ZT0wO3dlPFU7d2UrKyl7dmFyIFplPXhbYWUrd2VdLFFlPUNbYWUrd2VdLGF0PXhbYWUrd2UrVV0seGU9Q1thZSt3ZStVXSx2ZT1uZSphdC1sZSp4ZTt4ZT1uZSp4ZStsZSphdCx4W2FlK3dlXT1a'@; put 'ZSsoYXQ9dmUpLENbYWUrd2VdPVFlK3hlLHhbYWUrd2UrVV09WmUtYXQsQ1thZSt3ZStVXT1RZS14ZSx3ZSE9PUUmJih2ZT1tKm5lLUEqbGUsbGU9bSpsZStBKm5lLG5lPXZlKX19LHEucHJvdG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKGcseSl7dmFyIHg9MXxNYXRoLm1heCh5LGcpLEM9'@; put 'MSZ4LFQ9MDtmb3IoeD14LzJ8MDt4O3g+Pj49MSlUKys7cmV0dXJuIDE8PFQrMStDfSxxLnByb3RvdHlwZS5jb25qdWdhdGU9ZnVuY3Rpb24oZyx5LHgpe2lmKCEoeDw9MSkpZm9yKHZhciBDPTA7Qzx4LzI7QysrKXt2YXIgVD1nW0NdO2dbQ109Z1t4LUMtMV0sZ1t4LUMtMV09VCxUPXlbQ10s'@; put 'eVtDXT0teVt4LUMtMV0seVt4LUMtMV09LVR9fSxxLnByb3RvdHlwZS5ub3JtYWxpemUxM2I9ZnVuY3Rpb24oZyx5KXtmb3IodmFyIHg9MCxDPTA7Qzx5LzI7QysrKXt2YXIgVD04MTkyKk1hdGgucm91bmQoZ1syKkMrMV0veSkrTWF0aC5yb3VuZChnWzIqQ10veSkreDtnW0NdPTY3MTA4ODYz'@; put 'JlQseD1UPDY3MTA4ODY0PzA6VC82NzEwODg2NHwwfXJldHVybiBnfSxxLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKGcseSx4LEMpe2Zvcih2YXIgVD0wLFY9MDtWPHk7VisrKXhbMipWXT04MTkxJihUKz0wfGdbVl0pLHhbMipWKzFdPTgxOTEmKFQ+Pj49MTMpLFQ+Pj49MTM7Zm9y'@; put 'KFY9Mip5O1Y8QzsrK1YpeFtWXT0wO3AoMD09PVQpLHAoISgtODE5MiZUKSl9LHEucHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24oZyl7Zm9yKHZhciB5PW5ldyBBcnJheShnKSx4PTA7eDxnO3grKyl5W3hdPTA7cmV0dXJuIHl9LHEucHJvdG90eXBlLm11bHA9ZnVuY3Rpb24oZyx5LHgpe3ZhciBD'@; put 'PTIqdGhpcy5ndWVzc0xlbjEzYihnLmxlbmd0aCx5Lmxlbmd0aCksVD10aGlzLm1ha2VSQlQoQyksVj10aGlzLnN0dWIoQyksVT1uZXcgQXJyYXkoQyksRT1uZXcgQXJyYXkoQyksbT1uZXcgQXJyYXkoQyksQT1uZXcgQXJyYXkoQyksYWU9bmV3IEFycmF5KEMpLG5lPW5ldyBBcnJheShDKSxs'@; put 'ZT14LndvcmRzO2xlLmxlbmd0aD1DLHRoaXMuY29udmVydDEzYihnLndvcmRzLGcubGVuZ3RoLFUsQyksdGhpcy5jb252ZXJ0MTNiKHkud29yZHMseS5sZW5ndGgsQSxDKSx0aGlzLnRyYW5zZm9ybShVLFYsRSxtLEMsVCksdGhpcy50cmFuc2Zvcm0oQSxWLGFlLG5lLEMsVCk7Zm9yKHZhciB3'@; put 'ZT0wO3dlPEM7d2UrKyl7dmFyIFplPUVbd2VdKmFlW3dlXS1tW3dlXSpuZVt3ZV07bVt3ZV09RVt3ZV0qbmVbd2VdK21bd2VdKmFlW3dlXSxFW3dlXT1aZX1yZXR1cm4gdGhpcy5jb25qdWdhdGUoRSxtLEMpLHRoaXMudHJhbnNmb3JtKEUsbSxsZSxWLEMsVCksdGhpcy5jb25qdWdhdGUobGUs'@; put 'VixDKSx0aGlzLm5vcm1hbGl6ZTEzYihsZSxDKSx4Lm5lZ2F0aXZlPWcubmVnYXRpdmVeeS5uZWdhdGl2ZSx4Lmxlbmd0aD1nLmxlbmd0aCt5Lmxlbmd0aCx4LnN0cmlwKCl9LHcucHJvdG90eXBlLm11bD1mdW5jdGlvbihnKXt2YXIgeT1uZXcgdyhudWxsKTtyZXR1cm4geS53b3Jkcz1uZXcg'@; put 'QXJyYXkodGhpcy5sZW5ndGgrZy5sZW5ndGgpLHRoaXMubXVsVG8oZyx5KX0sdy5wcm90b3R5cGUubXVsZj1mdW5jdGlvbihnKXt2YXIgeT1uZXcgdyhudWxsKTtyZXR1cm4geS53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrZy5sZW5ndGgpLFEodGhpcyxnLHkpfSx3LnByb3RvdHlwZS5p'@; put 'bXVsPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkubXVsVG8oZyx0aGlzKX0sdy5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24oZyl7cCgibnVtYmVyIj09dHlwZW9mIGcpLHAoZzw2NzEwODg2NCk7Zm9yKHZhciB5PTAseD0wO3g8dGhpcy5sZW5ndGg7eCsrKXt2YXIgQz0oMHx0aGlz'@; put 'LndvcmRzW3hdKSpnLFQ9KDY3MTA4ODYzJkMpKyg2NzEwODg2MyZ5KTt5Pj49MjYseSs9Qy82NzEwODg2NHwwLHkrPVQ+Pj4yNix0aGlzLndvcmRzW3hdPTY3MTA4ODYzJlR9cmV0dXJuIDAhPT15JiYodGhpcy53b3Jkc1t4XT15LHRoaXMubGVuZ3RoKyspLHRoaXN9LHcucHJvdG90eXBlLm11'@; put 'bG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbihnKX0sdy5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSx3LnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW11bCh0aGlzLmNsb25lKCkpfSx3LnByb3RvdHlw'@; put 'ZS5wb3c9ZnVuY3Rpb24oZyl7dmFyIHk9ZnVuY3Rpb24gQih6KXtmb3IodmFyIGc9bmV3IEFycmF5KHouYml0TGVuZ3RoKCkpLHk9MDt5PGcubGVuZ3RoO3krKyl7dmFyIEM9eSUyNjtnW3ldPSh6LndvcmRzW3kvMjZ8MF0mMTw8Qyk+Pj5DfXJldHVybiBnfShnKTtpZigwPT09eS5sZW5ndGgp'@; put 'cmV0dXJuIG5ldyB3KDEpO2Zvcih2YXIgeD10aGlzLEM9MDtDPHkubGVuZ3RoJiYwPT09eVtDXTtDKysseD14LnNxcigpKTtpZigrK0M8eS5sZW5ndGgpZm9yKHZhciBUPXguc3FyKCk7Qzx5Lmxlbmd0aDtDKyssVD1ULnNxcigpKTAhPT15W0NdJiYoeD14Lm11bChUKSk7cmV0dXJuIHh9LHcu'@; put 'cHJvdG90eXBlLml1c2hsbj1mdW5jdGlvbihnKXtwKCJudW1iZXIiPT10eXBlb2YgZyYmZz49MCk7dmFyIFQseT1nJTI2LHg9KGcteSkvMjYsQz02NzEwODg2Mz4+PjI2LXk8PDI2LXk7aWYoMCE9PXkpe3ZhciBWPTA7Zm9yKFQ9MDtUPHRoaXMubGVuZ3RoO1QrKyl7dmFyIFU9dGhpcy53b3Jk'@; put 'c1tUXSZDO3RoaXMud29yZHNbVF09KDB8dGhpcy53b3Jkc1tUXSktVTw8eXxWLFY9VT4+PjI2LXl9ViYmKHRoaXMud29yZHNbVF09Vix0aGlzLmxlbmd0aCsrKX1pZigwIT09eCl7Zm9yKFQ9dGhpcy5sZW5ndGgtMTtUPj0wO1QtLSl0aGlzLndvcmRzW1QreF09dGhpcy53b3Jkc1tUXTtmb3Io'@; put 'VD0wO1Q8eDtUKyspdGhpcy53b3Jkc1tUXT0wO3RoaXMubGVuZ3RoKz14fXJldHVybiB0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKGcpe3JldHVybiBwKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hsbihnKX0sdy5wcm90b3R5cGUuaXVzaHJuPWZ1bmN0aW9u'@; put 'KGcseSx4KXt2YXIgQztwKCJudW1iZXIiPT10eXBlb2YgZyYmZz49MCksQz15Pyh5LXklMjYpLzI2OjA7dmFyIFQ9ZyUyNixWPU1hdGgubWluKChnLVQpLzI2LHRoaXMubGVuZ3RoKSxVPTY3MTA4ODYzXjY3MTA4ODYzPj4+VDw8VCxFPXg7aWYoQy09VixDPU1hdGgubWF4KDAsQyksRSl7Zm9y'@; put 'KHZhciBtPTA7bTxWO20rKylFLndvcmRzW21dPXRoaXMud29yZHNbbV07RS5sZW5ndGg9Vn1pZigwIT09VilpZih0aGlzLmxlbmd0aD5WKWZvcih0aGlzLmxlbmd0aC09VixtPTA7bTx0aGlzLmxlbmd0aDttKyspdGhpcy53b3Jkc1ttXT10aGlzLndvcmRzW20rVl07ZWxzZSB0aGlzLndvcmRz'@; put 'WzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgQT0wO2ZvcihtPXRoaXMubGVuZ3RoLTE7bT49MCYmKDAhPT1BfHxtPj1DKTttLS0pe3ZhciBhZT0wfHRoaXMud29yZHNbbV07dGhpcy53b3Jkc1ttXT1BPDwyNi1UfGFlPj4+VCxBPWFlJlV9cmV0dXJuIEUmJjAhPT1BJiYoRS53b3Jkc1tFLmxlbmd0'@; put 'aCsrXT1BKSwwPT09dGhpcy5sZW5ndGgmJih0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MSksdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5pc2hybj1mdW5jdGlvbihnLHkseCl7cmV0dXJuIHAoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaHJuKGcseSx4KX0sdy5wcm90b3R5cGUu'@; put 'c2hsbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaGxuKGcpfSx3LnByb3RvdHlwZS51c2hsbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hsbihnKX0sdy5wcm90b3R5cGUuc2hybj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKGcp'@; put 'fSx3LnByb3RvdHlwZS51c2hybj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hybihnKX0sdy5wcm90b3R5cGUudGVzdG49ZnVuY3Rpb24oZyl7cCgibnVtYmVyIj09dHlwZW9mIGcmJmc+PTApO3ZhciB5PWclMjYseD0oZy15KS8yNjtyZXR1cm4hKHRoaXMubGVuZ3RoPD14'@; put 'fHwhKHRoaXMud29yZHNbeF0mMTw8eSkpfSx3LnByb3RvdHlwZS5pbWFza249ZnVuY3Rpb24oZyl7cCgibnVtYmVyIj09dHlwZW9mIGcmJmc+PTApO3ZhciB5PWclMjYseD0oZy15KS8yNjtyZXR1cm4gcCgwPT09dGhpcy5uZWdhdGl2ZSwiaW1hc2tuIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2'@; put 'ZSBudW1iZXJzIiksdGhpcy5sZW5ndGg8PXg/dGhpczooMCE9PXkmJngrKyx0aGlzLmxlbmd0aD1NYXRoLm1pbih4LHRoaXMubGVuZ3RoKSwwIT09eSYmKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0mPTY3MTA4ODYzXjY3MTA4ODYzPj4+eTw8eSksdGhpcy5zdHJpcCgpKX0sdy5wcm90b3R5'@; put 'cGUubWFza249ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbWFza24oZyl9LHcucHJvdG90eXBlLmlhZGRuPWZ1bmN0aW9uKGcpe3JldHVybiBwKCJudW1iZXIiPT10eXBlb2YgZykscChnPDY3MTA4ODY0KSxnPDA/dGhpcy5pc3VibigtZyk6MCE9PXRoaXMubmVnYXRpdmU/MT09'@; put 'PXRoaXMubGVuZ3RoJiYoMHx0aGlzLndvcmRzWzBdKTxnPyh0aGlzLndvcmRzWzBdPWctKDB8dGhpcy53b3Jkc1swXSksdGhpcy5uZWdhdGl2ZT0wLHRoaXMpOih0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pc3VibihnKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcyk6dGhpcy5faWFkZG4oZyl9LHcucHJv'@; put 'dG90eXBlLl9pYWRkbj1mdW5jdGlvbihnKXt0aGlzLndvcmRzWzBdKz1nO2Zvcih2YXIgeT0wO3k8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbeV0+PTY3MTA4ODY0O3krKyl0aGlzLndvcmRzW3ldLT02NzEwODg2NCx5PT09dGhpcy5sZW5ndGgtMT90aGlzLndvcmRzW3krMV09MTp0aGlzLndv'@; put 'cmRzW3krMV0rKztyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgseSsxKSx0aGlzfSx3LnByb3RvdHlwZS5pc3Vibj1mdW5jdGlvbihnKXtpZihwKCJudW1iZXIiPT10eXBlb2YgZykscChnPDY3MTA4ODY0KSxnPDApcmV0dXJuIHRoaXMuaWFkZG4oLWcpO2lmKDAhPT10'@; put 'aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkbihnKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcztpZih0aGlzLndvcmRzWzBdLT1nLDE9PT10aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1swXTwwKXRoaXMud29yZHNbMF09LXRoaXMud29yZHNbMF0sdGhpcy5uZWdhdGl2'@; put 'ZT0xO2Vsc2UgZm9yKHZhciB5PTA7eTx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1t5XTwwO3krKyl0aGlzLndvcmRzW3ldKz02NzEwODg2NCx0aGlzLndvcmRzW3krMV0tPTE7cmV0dXJuIHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuYWRkbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9u'@; put 'ZSgpLmlhZGRuKGcpfSx3LnByb3RvdHlwZS5zdWJuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Ym4oZyl9LHcucHJvdG90eXBlLmlhYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXN9LHcucHJvdG90eXBlLmFicz1mdW5jdGlvbigpe3JldHVybiB0'@; put 'aGlzLmNsb25lKCkuaWFicygpfSx3LnByb3RvdHlwZS5faXNobG5zdWJtdWw9ZnVuY3Rpb24oZyx5LHgpe3ZhciBUO3RoaXMuX2V4cGFuZChnLmxlbmd0aCt4KTt2YXIgVixVPTA7Zm9yKFQ9MDtUPGcubGVuZ3RoO1QrKyl7Vj0oMHx0aGlzLndvcmRzW1QreF0pK1U7dmFyIEU9KDB8Zy53b3Jk'@; put 'c1tUXSkqeTtVPSgoVi09NjcxMDg4NjMmRSk+PjI2KS0oRS82NzEwODg2NHwwKSx0aGlzLndvcmRzW1QreF09NjcxMDg4NjMmVn1mb3IoO1Q8dGhpcy5sZW5ndGgteDtUKyspVT0oVj0oMHx0aGlzLndvcmRzW1QreF0pK1UpPj4yNix0aGlzLndvcmRzW1QreF09NjcxMDg4NjMmVjtpZigwPT09'@; put 'VSlyZXR1cm4gdGhpcy5zdHJpcCgpO2ZvcihwKC0xPT09VSksVT0wLFQ9MDtUPHRoaXMubGVuZ3RoO1QrKylVPShWPS0oMHx0aGlzLndvcmRzW1RdKStVKT4+MjYsdGhpcy53b3Jkc1tUXT02NzEwODg2MyZWO3JldHVybiB0aGlzLm5lZ2F0aXZlPTEsdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlw'@; put 'ZS5fd29yZERpdj1mdW5jdGlvbihnLHkpe3ZhciB4LEM9dGhpcy5jbG9uZSgpLFQ9ZyxWPTB8VC53b3Jkc1tULmxlbmd0aC0xXTswIT0oeD0yNi10aGlzLl9jb3VudEJpdHMoVikpJiYoVD1ULnVzaGxuKHgpLEMuaXVzaGxuKHgpLFY9MHxULndvcmRzW1QubGVuZ3RoLTFdKTt2YXIgbSxFPUMu'@; put 'bGVuZ3RoLVQubGVuZ3RoO2lmKCJtb2QiIT09eSl7KG09bmV3IHcobnVsbCkpLmxlbmd0aD1FKzEsbS53b3Jkcz1uZXcgQXJyYXkobS5sZW5ndGgpO2Zvcih2YXIgQT0wO0E8bS5sZW5ndGg7QSsrKW0ud29yZHNbQV09MH12YXIgYWU9Qy5jbG9uZSgpLl9pc2hsbnN1Ym11bChULDEsRSk7MD09'@; put 'PWFlLm5lZ2F0aXZlJiYoQz1hZSxtJiYobS53b3Jkc1tFXT0xKSk7Zm9yKHZhciBuZT1FLTE7bmU+PTA7bmUtLSl7dmFyIGxlPTY3MTA4ODY0KigwfEMud29yZHNbVC5sZW5ndGgrbmVdKSsoMHxDLndvcmRzW1QubGVuZ3RoK25lLTFdKTtmb3IobGU9TWF0aC5taW4obGUvVnwwLDY3MTA4ODYz'@; put 'KSxDLl9pc2hsbnN1Ym11bChULGxlLG5lKTswIT09Qy5uZWdhdGl2ZTspbGUtLSxDLm5lZ2F0aXZlPTAsQy5faXNobG5zdWJtdWwoVCwxLG5lKSxDLmlzWmVybygpfHwoQy5uZWdhdGl2ZV49MSk7bSYmKG0ud29yZHNbbmVdPWxlKX1yZXR1cm4gbSYmbS5zdHJpcCgpLEMuc3RyaXAoKSwiZGl2'@; put 'IiE9PXkmJjAhPT14JiZDLml1c2hybih4KSx7ZGl2Om18fG51bGwsbW9kOkN9fSx3LnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24oZyx5LHgpe3JldHVybiBwKCFnLmlzWmVybygpKSx0aGlzLmlzWmVybygpP3tkaXY6bmV3IHcoMCksbW9kOm5ldyB3KDApfTowIT09dGhpcy5uZWdhdGl2ZSYm'@; put 'MD09PWcubmVnYXRpdmU/KFY9dGhpcy5uZWcoKS5kaXZtb2QoZyx5KSwibW9kIiE9PXkmJihDPVYuZGl2Lm5lZygpKSwiZGl2IiE9PXkmJihUPVYubW9kLm5lZygpLHgmJjAhPT1ULm5lZ2F0aXZlJiZULmlhZGQoZykpLHtkaXY6Qyxtb2Q6VH0pOjA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Zy5u'@; put 'ZWdhdGl2ZT8oVj10aGlzLmRpdm1vZChnLm5lZygpLHkpLCJtb2QiIT09eSYmKEM9Vi5kaXYubmVnKCkpLHtkaXY6Qyxtb2Q6Vi5tb2R9KTp0aGlzLm5lZ2F0aXZlJmcubmVnYXRpdmU/KFY9dGhpcy5uZWcoKS5kaXZtb2QoZy5uZWcoKSx5KSwiZGl2IiE9PXkmJihUPVYubW9kLm5lZygpLHgm'@; put 'JjAhPT1ULm5lZ2F0aXZlJiZULmlzdWIoZykpLHtkaXY6Vi5kaXYsbW9kOlR9KTpnLmxlbmd0aD50aGlzLmxlbmd0aHx8dGhpcy5jbXAoZyk8MD97ZGl2Om5ldyB3KDApLG1vZDp0aGlzfToxPT09Zy5sZW5ndGg/ImRpdiI9PT15P3tkaXY6dGhpcy5kaXZuKGcud29yZHNbMF0pLG1vZDpudWxs'@; put 'fToibW9kIj09PXk/e2RpdjpudWxsLG1vZDpuZXcgdyh0aGlzLm1vZG4oZy53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bihnLndvcmRzWzBdKSxtb2Q6bmV3IHcodGhpcy5tb2RuKGcud29yZHNbMF0pKX06dGhpcy5fd29yZERpdihnLHkpO3ZhciBDLFQsVn0sdy5wcm90b3R5cGUuZGl2PWZ1'@; put 'bmN0aW9uKGcpe3JldHVybiB0aGlzLmRpdm1vZChnLCJkaXYiLCExKS5kaXZ9LHcucHJvdG90eXBlLm1vZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5kaXZtb2QoZywibW9kIiwhMSkubW9kfSx3LnByb3RvdHlwZS51bW9kPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmRpdm1vZChnLCJtb2Qi'@; put 'LCEwKS5tb2R9LHcucHJvdG90eXBlLmRpdlJvdW5kPWZ1bmN0aW9uKGcpe3ZhciB5PXRoaXMuZGl2bW9kKGcpO2lmKHkubW9kLmlzWmVybygpKXJldHVybiB5LmRpdjt2YXIgeD0wIT09eS5kaXYubmVnYXRpdmU/eS5tb2QuaXN1YihnKTp5Lm1vZCxDPWcudXNocm4oMSksVD1nLmFuZGxuKDEp'@; put 'LFY9eC5jbXAoQyk7cmV0dXJuIFY8MHx8MT09PVQmJjA9PT1WP3kuZGl2OjAhPT15LmRpdi5uZWdhdGl2ZT95LmRpdi5pc3VibigxKTp5LmRpdi5pYWRkbigxKX0sdy5wcm90b3R5cGUubW9kbj1mdW5jdGlvbihnKXtwKGc8PTY3MTA4ODYzKTtmb3IodmFyIHk9KDE8PDI2KSVnLHg9MCxDPXRo'@; put 'aXMubGVuZ3RoLTE7Qz49MDtDLS0peD0oeSp4KygwfHRoaXMud29yZHNbQ10pKSVnO3JldHVybiB4fSx3LnByb3RvdHlwZS5pZGl2bj1mdW5jdGlvbihnKXtwKGc8PTY3MTA4ODYzKTtmb3IodmFyIHk9MCx4PXRoaXMubGVuZ3RoLTE7eD49MDt4LS0pe3ZhciBDPSgwfHRoaXMud29yZHNbeF0p'@; put 'KzY3MTA4ODY0Knk7dGhpcy53b3Jkc1t4XT1DL2d8MCx5PUMlZ31yZXR1cm4gdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaWRpdm4oZyl9LHcucHJvdG90eXBlLmVnY2Q9ZnVuY3Rpb24oZyl7cCgwPT09Zy5uZWdhdGl2ZSks'@; put 'cCghZy5pc1plcm8oKSk7dmFyIHk9dGhpcyx4PWcuY2xvbmUoKTt5PTAhPT15Lm5lZ2F0aXZlP3kudW1vZChnKTp5LmNsb25lKCk7Zm9yKHZhciBDPW5ldyB3KDEpLFQ9bmV3IHcoMCksVj1uZXcgdygwKSxVPW5ldyB3KDEpLEU9MDt5LmlzRXZlbigpJiZ4LmlzRXZlbigpOyl5Lml1c2hybigx'@; put 'KSx4Lml1c2hybigxKSwrK0U7Zm9yKHZhciBtPXguY2xvbmUoKSxBPXkuY2xvbmUoKTsheS5pc1plcm8oKTspe2Zvcih2YXIgYWU9MCxuZT0xOyEoeS53b3Jkc1swXSZuZSkmJmFlPDI2OysrYWUsbmU8PD0xKTtpZihhZT4wKWZvcih5Lml1c2hybihhZSk7YWUtLSA+MDspKEMuaXNPZGQoKXx8'@; put 'VC5pc09kZCgpKSYmKEMuaWFkZChtKSxULmlzdWIoQSkpLEMuaXVzaHJuKDEpLFQuaXVzaHJuKDEpO2Zvcih2YXIgbGU9MCx3ZT0xOyEoeC53b3Jkc1swXSZ3ZSkmJmxlPDI2OysrbGUsd2U8PD0xKTtpZihsZT4wKWZvcih4Lml1c2hybihsZSk7bGUtLSA+MDspKFYuaXNPZGQoKXx8VS5pc09k'@; put 'ZCgpKSYmKFYuaWFkZChtKSxVLmlzdWIoQSkpLFYuaXVzaHJuKDEpLFUuaXVzaHJuKDEpO3kuY21wKHgpPj0wPyh5LmlzdWIoeCksQy5pc3ViKFYpLFQuaXN1YihVKSk6KHguaXN1Yih5KSxWLmlzdWIoQyksVS5pc3ViKFQpKX1yZXR1cm57YTpWLGI6VSxnY2Q6eC5pdXNobG4oRSl9fSx3LnBy'@; put 'b3RvdHlwZS5faW52bXA9ZnVuY3Rpb24oZyl7cCgwPT09Zy5uZWdhdGl2ZSkscCghZy5pc1plcm8oKSk7dmFyIGFlLHk9dGhpcyx4PWcuY2xvbmUoKTt5PTAhPT15Lm5lZ2F0aXZlP3kudW1vZChnKTp5LmNsb25lKCk7Zm9yKHZhciBDPW5ldyB3KDEpLFQ9bmV3IHcoMCksVj14LmNsb25lKCk7'@; put 'eS5jbXBuKDEpPjAmJnguY21wbigxKT4wOyl7Zm9yKHZhciBVPTAsRT0xOyEoeS53b3Jkc1swXSZFKSYmVTwyNjsrK1UsRTw8PTEpO2lmKFU+MClmb3IoeS5pdXNocm4oVSk7VS0tID4wOylDLmlzT2RkKCkmJkMuaWFkZChWKSxDLml1c2hybigxKTtmb3IodmFyIG09MCxBPTE7ISh4LndvcmRz'@; put 'WzBdJkEpJiZtPDI2OysrbSxBPDw9MSk7aWYobT4wKWZvcih4Lml1c2hybihtKTttLS0gPjA7KVQuaXNPZGQoKSYmVC5pYWRkKFYpLFQuaXVzaHJuKDEpO3kuY21wKHgpPj0wPyh5LmlzdWIoeCksQy5pc3ViKFQpKTooeC5pc3ViKHkpLFQuaXN1YihDKSl9cmV0dXJuKGFlPTA9PT15LmNtcG4o'@; put 'MSk/QzpUKS5jbXBuKDApPDAmJmFlLmlhZGQoZyksYWV9LHcucHJvdG90eXBlLmdjZD1mdW5jdGlvbihnKXtpZih0aGlzLmlzWmVybygpKXJldHVybiBnLmFicygpO2lmKGcuaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIHk9dGhpcy5jbG9uZSgpLHg9Zy5jbG9uZSgpO3kubmVnYXRp'@; put 'dmU9MCx4Lm5lZ2F0aXZlPTA7Zm9yKHZhciBDPTA7eS5pc0V2ZW4oKSYmeC5pc0V2ZW4oKTtDKyspeS5pdXNocm4oMSkseC5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO3kuaXNFdmVuKCk7KXkuaXVzaHJuKDEpO2Zvcig7eC5pc0V2ZW4oKTspeC5pdXNocm4oMSk7dmFyIFQ9eS5jbXAoeCk7aWYo'@; put 'VDwwKXt2YXIgVj15O3k9eCx4PVZ9ZWxzZSBpZigwPT09VHx8MD09PXguY21wbigxKSlicmVhazt5LmlzdWIoeCl9cmV0dXJuIHguaXVzaGxuKEMpfSx3LnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmVnY2QoZykuYS51bW9kKGcpfSx3LnByb3RvdHlwZS5pc0V2ZW49'@; put 'ZnVuY3Rpb24oKXtyZXR1cm4hKDEmdGhpcy53b3Jkc1swXSl9LHcucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uKCl7cmV0dXJuISgxJn50aGlzLndvcmRzWzBdKX0sdy5wcm90b3R5cGUuYW5kbG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMud29yZHNbMF0mZ30sdy5wcm90b3R5cGUuYmluY249'@; put 'ZnVuY3Rpb24oZyl7cCgibnVtYmVyIj09dHlwZW9mIGcpO3ZhciB5PWclMjYseD0oZy15KS8yNixDPTE8PHk7aWYodGhpcy5sZW5ndGg8PXgpcmV0dXJuIHRoaXMuX2V4cGFuZCh4KzEpLHRoaXMud29yZHNbeF18PUMsdGhpcztmb3IodmFyIFQ9QyxWPXg7MCE9PVQmJlY8dGhpcy5sZW5ndGg7'@; put 'VisrKXt2YXIgVT0wfHRoaXMud29yZHNbVl07VD0oVSs9VCk+Pj4yNix0aGlzLndvcmRzW1ZdPVUmPTY3MTA4ODYzfXJldHVybiAwIT09VCYmKHRoaXMud29yZHNbVl09VCx0aGlzLmxlbmd0aCsrKSx0aGlzfSx3LnByb3RvdHlwZS5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMu'@; put 'bGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXX0sdy5wcm90b3R5cGUuY21wbj1mdW5jdGlvbihnKXt2YXIgeCx5PWc8MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIXkpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJnkpcmV0dXJuIDE7aWYodGhpcy5zdHJpcCgpLHRoaXMubGVuZ3RoPjEp'@; put 'eD0xO2Vsc2V7eSYmKGc9LWcpLHAoZzw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIEM9MHx0aGlzLndvcmRzWzBdO3g9Qz09PWc/MDpDPGc/LTE6MX1yZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwteDp4fSx3LnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24oZyl7aWYoMCE9PXRo'@; put 'aXMubmVnYXRpdmUmJjA9PT1nLm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Zy5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgeT10aGlzLnVjbXAoZyk7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LXk6eX0sdy5wcm90b3R5cGUudWNtcD1mdW5jdGlvbihnKXtp'@; put 'Zih0aGlzLmxlbmd0aD5nLmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDxnLmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIHk9MCx4PXRoaXMubGVuZ3RoLTE7eD49MDt4LS0pe3ZhciBDPTB8dGhpcy53b3Jkc1t4XSxUPTB8Zy53b3Jkc1t4XTtpZihDIT09VCl7QzxUP3k9LTE6Qz5UJiYo'@; put 'eT0xKTticmVha319cmV0dXJuIHl9LHcucHJvdG90eXBlLmd0bj1mdW5jdGlvbihnKXtyZXR1cm4gMT09PXRoaXMuY21wbihnKX0sdy5wcm90b3R5cGUuZ3Q9ZnVuY3Rpb24oZyl7cmV0dXJuIDE9PT10aGlzLmNtcChnKX0sdy5wcm90b3R5cGUuZ3Rlbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhp'@; put 'cy5jbXBuKGcpPj0wfSx3LnByb3RvdHlwZS5ndGU9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY21wKGcpPj0wfSx3LnByb3RvdHlwZS5sdG49ZnVuY3Rpb24oZyl7cmV0dXJuLTE9PT10aGlzLmNtcG4oZyl9LHcucHJvdG90eXBlLmx0PWZ1bmN0aW9uKGcpe3JldHVybi0xPT09dGhpcy5jbXAo'@; put 'Zyl9LHcucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY21wbihnKTw9MH0sdy5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNtcChnKTw9MH0sdy5wcm90b3R5cGUuZXFuPWZ1bmN0aW9uKGcpe3JldHVybiAwPT09dGhpcy5jbXBuKGcpfSx3LnBy'@; put 'b3RvdHlwZS5lcT1mdW5jdGlvbihnKXtyZXR1cm4gMD09PXRoaXMuY21wKGcpfSx3LnJlZD1mdW5jdGlvbihnKXtyZXR1cm4gbmV3IFNlKGcpfSx3LnByb3RvdHlwZS50b1JlZD1mdW5jdGlvbihnKXtyZXR1cm4gcCghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNv'@; put 'bnRleHQiKSxwKDA9PT10aGlzLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLGcuY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZChnKX0sdy5wcm90b3R5cGUuZnJvbVJlZD1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0'@; put 'aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LHcucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5yZWQ9Zyx0aGlzfSx3LnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbihnKXtyZXR1cm4gcCghdGhp'@; put 'cy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZChnKX0sdy5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKGcpe3JldHVybiBwKHRoaXMucmVkLCJyZWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRk'@; put 'KHRoaXMsZyl9LHcucHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24oZyl7cmV0dXJuIHAodGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaWFkZCh0aGlzLGcpfSx3LnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24oZyl7cmV0dXJuIHAodGhp'@; put 'cy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyxnKX0sdy5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5p'@; put 'c3ViKHRoaXMsZyl9LHcucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnNobCh0aGlzLGcpfSx3LnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24oZyl7cmV0dXJuIHAodGhp'@; put 'cy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLGcpLHRoaXMucmVkLm11bCh0aGlzLGcpfSx3LnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uKGcpe3JldHVybiBwKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRo'@; put 'IHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxnKSx0aGlzLnJlZC5pbXVsKHRoaXMsZyl9LHcucHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMucmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3Zlcmlm'@; put 'eTEodGhpcyksdGhpcy5yZWQuc3FyKHRoaXMpfSx3LnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaXNxcih0aGlzKX0sdy5w'@; put 'cm90b3R5cGUucmVkU3FydD1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcnQodGhpcyl9LHcucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24oKXtyZXR1'@; put 'cm4gcCh0aGlzLnJlZCwicmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSx3LnByb3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkTmVnIHdvcmtzIG9ubHkg'@; put 'd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0sdy5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKGcpe3JldHVybiBwKHRoaXMucmVkJiYhZy5yZWQsInJlZFBvdyhub3JtYWxOdW0pIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyks'@; put 'dGhpcy5yZWQucG93KHRoaXMsZyl9O3ZhciB0ZT17azI1NjpudWxsLHAyMjQ6bnVsbCxwMTkyOm51bGwscDI1NTE5Om51bGx9O2Z1bmN0aW9uIGllKHosZyl7dGhpcy5uYW1lPXosdGhpcy5wPW5ldyB3KGcsMTYpLHRoaXMubj10aGlzLnAuYml0TGVuZ3RoKCksdGhpcy5rPW5ldyB3KDEpLml1'@; put 'c2hsbih0aGlzLm4pLmlzdWIodGhpcy5wKSx0aGlzLnRtcD10aGlzLl90bXAoKX1mdW5jdGlvbiBzZSgpe2llLmNhbGwodGhpcywiazI1NiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmYzJmIil9ZnVuY3Rpb24g'@; put 'Z2UoKXtpZS5jYWxsKHRoaXMsInAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ1bmN0aW9uIF9lKCl7aWUuY2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZm'@; put 'ZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiBUZSgpe2llLmNhbGwodGhpcywiMjU1MTkiLCI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkIil9ZnVuY3Rpb24gU2Uoeil7aWYoInN0cmluZyI9PXR5cGVvZiB6KXt2YXIg'@; put 'Zz13Ll9wcmltZSh6KTt0aGlzLm09Zy5wLHRoaXMucHJpbWU9Z31lbHNlIHAoei5ndG4oMSksIm1vZHVsdXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMSIpLHRoaXMubT16LHRoaXMucHJpbWU9bnVsbH1mdW5jdGlvbiB6ZSh6KXtTZS5jYWxsKHRoaXMseiksdGhpcy5zaGlmdD10aGlzLm0uYml0'@; put 'TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9MCYmKHRoaXMuc2hpZnQrPTI2LXRoaXMuc2hpZnQlMjYpLHRoaXMucj1uZXcgdygxKS5pdXNobG4odGhpcy5zaGlmdCksdGhpcy5yMj10aGlzLmltb2QodGhpcy5yLnNxcigpKSx0aGlzLnJpbnY9dGhpcy5yLl9pbnZtcCh0aGlzLm0pLHRoaXMubWlu'@; put 'dj10aGlzLnJpbnYubXVsKHRoaXMucikuaXN1Ym4oMSkuZGl2KHRoaXMubSksdGhpcy5taW52PXRoaXMubWludi51bW9kKHRoaXMuciksdGhpcy5taW52PXRoaXMuci5zdWIodGhpcy5taW52KX1pZS5wcm90b3R5cGUuX3RtcD1mdW5jdGlvbigpe3ZhciBnPW5ldyB3KG51bGwpO3JldHVybiBn'@; put 'LndvcmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSksZ30saWUucHJvdG90eXBlLmlyZWR1Y2U9ZnVuY3Rpb24oZyl7dmFyIHgseT1nO2Rve3RoaXMuc3BsaXQoeSx0aGlzLnRtcCkseD0oeT0oeT10aGlzLmltdWxLKHkpKS5pYWRkKHRoaXMudG1wKSkuYml0TGVuZ3RoKCl9d2hp'@; put 'bGUoeD50aGlzLm4pO3ZhciBDPXg8dGhpcy5uPy0xOnkudWNtcCh0aGlzLnApO3JldHVybiAwPT09Qz8oeS53b3Jkc1swXT0wLHkubGVuZ3RoPTEpOkM+MD95LmlzdWIodGhpcy5wKTp2b2lkIDAhPT15LnN0cmlwP3kuc3RyaXAoKTp5Ll9zdHJpcCgpLHl9LGllLnByb3RvdHlwZS5zcGxpdD1m'@; put 'dW5jdGlvbihnLHkpe2cuaXVzaHJuKHRoaXMubiwwLHkpfSxpZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oZyl7cmV0dXJuIGcuaW11bCh0aGlzLmspfSxOKHNlLGllKSxzZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oZyx5KXtmb3IodmFyIHg9NDE5NDMwMyxDPU1hdGgubWluKGcubGVu'@; put 'Z3RoLDkpLFQ9MDtUPEM7VCsrKXkud29yZHNbVF09Zy53b3Jkc1tUXTtpZih5Lmxlbmd0aD1DLGcubGVuZ3RoPD05KXJldHVybiBnLndvcmRzWzBdPTAsdm9pZChnLmxlbmd0aD0xKTt2YXIgVj1nLndvcmRzWzldO2Zvcih5LndvcmRzW3kubGVuZ3RoKytdPVYmeCxUPTEwO1Q8Zy5sZW5ndGg7'@; put 'VCsrKXt2YXIgVT0wfGcud29yZHNbVF07Zy53b3Jkc1tULTEwXT0oVSZ4KTw8NHxWPj4+MjIsVj1VfWcud29yZHNbVC0xMF09Vj4+Pj0yMixnLmxlbmd0aC09MD09PVYmJmcubGVuZ3RoPjEwPzEwOjl9LHNlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihnKXtnLndvcmRzW2cubGVuZ3RoXT0w'@; put 'LGcud29yZHNbZy5sZW5ndGgrMV09MCxnLmxlbmd0aCs9Mjtmb3IodmFyIHk9MCx4PTA7eDxnLmxlbmd0aDt4Kyspe3ZhciBDPTB8Zy53b3Jkc1t4XTtnLndvcmRzW3hdPTY3MTA4ODYzJih5Kz05NzcqQykseT02NCpDKyh5LzY3MTA4ODY0fDApfXJldHVybiAwPT09Zy53b3Jkc1tnLmxlbmd0'@; put 'aC0xXSYmKGcubGVuZ3RoLS0sMD09PWcud29yZHNbZy5sZW5ndGgtMV0mJmcubGVuZ3RoLS0pLGd9LE4oZ2UsaWUpLE4oX2UsaWUpLE4oVGUsaWUpLFRlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihnKXtmb3IodmFyIHk9MCx4PTA7eDxnLmxlbmd0aDt4Kyspe3ZhciBDPTE5KigwfGcud29y'@; put 'ZHNbeF0pK3ksVD02NzEwODg2MyZDO0M+Pj49MjYsZy53b3Jkc1t4XT1ULHk9Q31yZXR1cm4gMCE9PXkmJihnLndvcmRzW2cubGVuZ3RoKytdPXkpLGd9LHcuX3ByaW1lPWZ1bmN0aW9uKGcpe2lmKHRlW2ddKXJldHVybiB0ZVtnXTt2YXIgeTtpZigiazI1NiI9PT1nKXk9bmV3IHNlO2Vsc2Ug'@; put 'aWYoInAyMjQiPT09Zyl5PW5ldyBnZTtlbHNlIGlmKCJwMTkyIj09PWcpeT1uZXcgX2U7ZWxzZXtpZigicDI1NTE5IiE9PWcpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHByaW1lICIrZyk7eT1uZXcgVGV9cmV0dXJuIHRlW2ddPXkseX0sU2UucHJvdG90eXBlLl92ZXJpZnkxPWZ1bmN0aW9u'@; put 'KGcpe3AoMD09PWcubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIikscChnLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxTZS5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24oZyx5KXtwKCEoZy5uZWdhdGl2ZXx5Lm5lZ2F0aXZlKSwicmVk'@; put 'IHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxwKGcucmVkJiZnLnJlZD09PXkucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LFNlLnByb3RvdHlwZS5pbW9kPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLnByaW1lP3RoaXMucHJpbWUuaXJlZHVjZShnKS5fZm9yY2VS'@; put 'ZWQodGhpcyk6Zy51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpfSxTZS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKGcpe3JldHVybiBnLmlzWmVybygpP2cuY2xvbmUoKTp0aGlzLm0uc3ViKGcpLl9mb3JjZVJlZCh0aGlzKX0sU2UucHJvdG90eXBlLmFkZD1mdW5jdGlvbihnLHkpe3RoaXMu'@; put 'X3ZlcmlmeTIoZyx5KTt2YXIgeD1nLmFkZCh5KTtyZXR1cm4geC5jbXAodGhpcy5tKT49MCYmeC5pc3ViKHRoaXMubSkseC5fZm9yY2VSZWQodGhpcyl9LFNlLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKGcseSl7dGhpcy5fdmVyaWZ5MihnLHkpO3ZhciB4PWcuaWFkZCh5KTtyZXR1cm4geC5j'@; put 'bXAodGhpcy5tKT49MCYmeC5pc3ViKHRoaXMubSkseH0sU2UucHJvdG90eXBlLnN1Yj1mdW5jdGlvbihnLHkpe3RoaXMuX3ZlcmlmeTIoZyx5KTt2YXIgeD1nLnN1Yih5KTtyZXR1cm4geC5jbXBuKDApPDAmJnguaWFkZCh0aGlzLm0pLHguX2ZvcmNlUmVkKHRoaXMpfSxTZS5wcm90b3R5cGUu'@; put 'aXN1Yj1mdW5jdGlvbihnLHkpe3RoaXMuX3ZlcmlmeTIoZyx5KTt2YXIgeD1nLmlzdWIoeSk7cmV0dXJuIHguY21wbigwKTwwJiZ4LmlhZGQodGhpcy5tKSx4fSxTZS5wcm90b3R5cGUuc2hsPWZ1bmN0aW9uKGcseSl7cmV0dXJuIHRoaXMuX3ZlcmlmeTEoZyksdGhpcy5pbW9kKGcudXNobG4o'@; put 'eSkpfSxTZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihnLHkpe3JldHVybiB0aGlzLl92ZXJpZnkyKGcseSksdGhpcy5pbW9kKGcuaW11bCh5KSl9LFNlLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oZyx5KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihnLHkpLHRoaXMuaW1vZChnLm11bCh5KSl9LFNl'@; put 'LnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmltdWwoZyxnLmNsb25lKCkpfSxTZS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLm11bChnLGcpfSxTZS5wcm90b3R5cGUuc3FydD1mdW5jdGlvbihnKXtpZihnLmlzWmVybygpKXJldHVybiBnLmNs'@; put 'b25lKCk7dmFyIHk9dGhpcy5tLmFuZGxuKDMpO2lmKHAoeSUyPT0xKSwzPT09eSl7dmFyIHg9dGhpcy5tLmFkZChuZXcgdygxKSkuaXVzaHJuKDIpO3JldHVybiB0aGlzLnBvdyhnLHgpfWZvcih2YXIgQz10aGlzLm0uc3VibigxKSxUPTA7IUMuaXNaZXJvKCkmJjA9PT1DLmFuZGxuKDEpOylU'@; put 'KyssQy5pdXNocm4oMSk7cCghQy5pc1plcm8oKSk7dmFyIFY9bmV3IHcoMSkudG9SZWQodGhpcyksVT1WLnJlZE5lZygpLEU9dGhpcy5tLnN1Ym4oMSkuaXVzaHJuKDEpLG09dGhpcy5tLmJpdExlbmd0aCgpO2ZvcihtPW5ldyB3KDIqbSptKS50b1JlZCh0aGlzKTswIT09dGhpcy5wb3cobSxF'@; put 'KS5jbXAoVSk7KW0ucmVkSUFkZChVKTtmb3IodmFyIEE9dGhpcy5wb3cobSxDKSxhZT10aGlzLnBvdyhnLEMuYWRkbigxKS5pdXNocm4oMSkpLG5lPXRoaXMucG93KGcsQyksbGU9VDswIT09bmUuY21wKFYpOyl7Zm9yKHZhciB3ZT1uZSxaZT0wOzAhPT13ZS5jbXAoVik7WmUrKyl3ZT13ZS5y'@; put 'ZWRTcXIoKTtwKFplPGxlKTt2YXIgUWU9dGhpcy5wb3coQSxuZXcgdygxKS5pdXNobG4obGUtWmUtMSkpO2FlPWFlLnJlZE11bChRZSksQT1RZS5yZWRTcXIoKSxuZT1uZS5yZWRNdWwoQSksbGU9WmV9cmV0dXJuIGFlfSxTZS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihnKXt2YXIgeT1nLl9p'@; put 'bnZtcCh0aGlzLm0pO3JldHVybiAwIT09eS5uZWdhdGl2ZT8oeS5uZWdhdGl2ZT0wLHRoaXMuaW1vZCh5KS5yZWROZWcoKSk6dGhpcy5pbW9kKHkpfSxTZS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKGcseSl7aWYoeS5pc1plcm8oKSlyZXR1cm4gbmV3IHcoMSkudG9SZWQodGhpcyk7aWYoMD09'@; put 'PXkuY21wbigxKSlyZXR1cm4gZy5jbG9uZSgpO3ZhciBDPW5ldyBBcnJheSgxNik7Q1swXT1uZXcgdygxKS50b1JlZCh0aGlzKSxDWzFdPWc7Zm9yKHZhciBUPTI7VDxDLmxlbmd0aDtUKyspQ1tUXT10aGlzLm11bChDW1QtMV0sZyk7dmFyIFY9Q1swXSxVPTAsRT0wLG09eS5iaXRMZW5ndGgo'@; put 'KSUyNjtmb3IoMD09PW0mJihtPTI2KSxUPXkubGVuZ3RoLTE7VD49MDtULS0pe2Zvcih2YXIgQT15LndvcmRzW1RdLGFlPW0tMTthZT49MDthZS0tKXt2YXIgbmU9QT4+YWUmMTtWIT09Q1swXSYmKFY9dGhpcy5zcXIoVikpLDAhPT1uZXx8MCE9PVU/KFU8PD0xLFV8PW5lLCg0PT0rK0V8fDA9'@; put 'PT1UJiYwPT09YWUpJiYoVj10aGlzLm11bChWLENbVV0pLEU9MCxVPTApKTpFPTB9bT0yNn1yZXR1cm4gVn0sU2UucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihnKXt2YXIgeT1nLnVtb2QodGhpcy5tKTtyZXR1cm4geT09PWc/eS5jbG9uZSgpOnl9LFNlLnByb3RvdHlwZS5jb252ZXJ0'@; put 'RnJvbT1mdW5jdGlvbihnKXt2YXIgeT1nLmNsb25lKCk7cmV0dXJuIHkucmVkPW51bGwseX0sdy5tb250PWZ1bmN0aW9uKGcpe3JldHVybiBuZXcgemUoZyl9LE4oemUsU2UpLHplLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuaW1vZChnLnVzaGxuKHRoaXMu'@; put 'c2hpZnQpKX0semUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKGcpe3ZhciB5PXRoaXMuaW1vZChnLm11bCh0aGlzLnJpbnYpKTtyZXR1cm4geS5yZWQ9bnVsbCx5fSx6ZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihnLHkpe2lmKGcuaXNaZXJvKCl8fHkuaXNaZXJvKCkpcmV0dXJu'@; put 'IGcud29yZHNbMF09MCxnLmxlbmd0aD0xLGc7dmFyIHg9Zy5pbXVsKHkpLEM9eC5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksVD14LmlzdWIoQykuaXVzaHJuKHRoaXMuc2hpZnQpLFY9VDtyZXR1cm4gVC5jbXAodGhpcy5t'@; put 'KT49MD9WPVQuaXN1Yih0aGlzLm0pOlQuY21wbigwKTwwJiYoVj1ULmlhZGQodGhpcy5tKSksVi5fZm9yY2VSZWQodGhpcyl9LHplLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oZyx5KXtpZihnLmlzWmVybygpfHx5LmlzWmVybygpKXJldHVybiBuZXcgdygwKS5fZm9yY2VSZWQodGhpcyk7dmFy'@; put 'IHg9Zy5tdWwoeSksQz14Lm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxUPXguaXN1YihDKS5pdXNocm4odGhpcy5zaGlmdCksVj1UO3JldHVybiBULmNtcCh0aGlzLm0pPj0wP1Y9VC5pc3ViKHRoaXMubSk6VC5jbXBuKDAp'@; put 'PDAmJihWPVQuaWFkZCh0aGlzLm0pKSxWLl9mb3JjZVJlZCh0aGlzKX0semUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuaW1vZChnLl9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0oY2U9Yi5ubWQoY2UpLHRoaXMpfSw5MjgyOihj'@; put 'ZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNDE1NSksXz1iKDUxMDgpO2Z1bmN0aW9uIHAoSGUpe3JldHVybihwPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKERlKXtyZXR1cm4gdHlwZW9mIERlfTpmdW5j'@; put 'dGlvbihEZSl7cmV0dXJuIERlJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZEZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmRGUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBEZX0pKEhlKX1mdW5jdGlvbiBOKEhlLERlKXtmb3IodmFyIGtlPTA7a2U8RGUubGVuZ3RoO2tl'@; put 'Kyspe3ZhciBfdD1EZVtrZV07X3QuZW51bWVyYWJsZT1fdC5lbnVtZXJhYmxlfHwhMSxfdC5jb25maWd1cmFibGU9ITAsInZhbHVlImluIF90JiYoX3Qud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShIZSxGKF90LmtleSksX3QpfX1mdW5jdGlvbiB3KEhlLERlLGtlKXtyZXR1'@; put 'cm4gRGUmJk4oSGUucHJvdG90eXBlLERlKSxrZSYmTihIZSxrZSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEhlLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLEhlfWZ1bmN0aW9uIEYoSGUpe3ZhciBEZT1mdW5jdGlvbiBIKEhlLERlKXtpZigib2JqZWN0IiE9PXAoSGUpfHxudWxsPT09SGUp'@; put 'cmV0dXJuIEhlO3ZhciBrZT1IZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWtlKXt2YXIgX3Q9a2UuY2FsbChIZSxEZXx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9PXAoX3QpKXJldHVybiBfdDt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJu'@; put 'IGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PURlP1N0cmluZzpOdW1iZXIpKEhlKX0oSGUsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT09cChEZSk/RGU6U3RyaW5nKERlKX12YXIgemUseixQPWIoMjEzNikuY29kZXMsTD1QLkVSUl9BTUJJR1VPVVNfQVJHVU1FTlQs'@; put 'WT1QLkVSUl9JTlZBTElEX0FSR19UWVBFLEI9UC5FUlJfSU5WQUxJRF9BUkdfVkFMVUUsVz1QLkVSUl9JTlZBTElEX1JFVFVSTl9WQUxVRSxaPVAuRVJSX01JU1NJTkdfQVJHUyxYPWIoNTk2MSkscT1iKDk1MzkpLmluc3BlY3QsdGU9Yig5NTM5KS50eXBlcyxpZT10ZS5pc1Byb21pc2Usc2U9'@; put 'dGUuaXNSZWdFeHAsZ2U9Yig4MTYyKSgpLF9lPWIoNTYyNCkoKSxUZT1iKDE5MjQpKCJSZWdFeHAucHJvdG90eXBlLnRlc3QiKTtmdW5jdGlvbiBDKCl7dmFyIEhlPWIoOTE1OCk7emU9SGUuaXNEZWVwRXF1YWwsej1IZS5pc0RlZXBTdHJpY3RFcXVhbH12YXIgRT0hMSxtPWNlLmV4cG9ydHM9'@; put 'd2UsQT17fTtmdW5jdGlvbiBhZShIZSl7dGhyb3cgSGUubWVzc2FnZSBpbnN0YW5jZW9mIEVycm9yP0hlLm1lc3NhZ2U6bmV3IFgoSGUpfWZ1bmN0aW9uIGxlKEhlLERlLGtlLF90KXtpZigha2Upe3ZhciBudD0hMTtpZigwPT09RGUpbnQ9ITAsX3Q9Ik5vIHZhbHVlIGFyZ3VtZW50IHBhc3Nl'@; put 'ZCB0byBgYXNzZXJ0Lm9rKClgIjtlbHNlIGlmKF90IGluc3RhbmNlb2YgRXJyb3IpdGhyb3cgX3Q7dmFyIEplPW5ldyBYKHthY3R1YWw6a2UsZXhwZWN0ZWQ6ITAsbWVzc2FnZTpfdCxvcGVyYXRvcjoiPT0iLHN0YWNrU3RhcnRGbjpIZX0pO3Rocm93IEplLmdlbmVyYXRlZE1lc3NhZ2U9bnQs'@; put 'SmV9fWZ1bmN0aW9uIHdlKCl7Zm9yKHZhciBIZT1hcmd1bWVudHMubGVuZ3RoLERlPW5ldyBBcnJheShIZSksa2U9MDtrZTxIZTtrZSsrKURlW2tlXT1hcmd1bWVudHNba2VdO2xlLmFwcGx5KHZvaWQgMCxbd2UsRGUubGVuZ3RoXS5jb25jYXQoRGUpKX1tLmZhaWw9ZnVuY3Rpb24gbmUoSGUs'@; put 'RGUsa2UsX3QsbnQpe3ZhciBvbixKZT1hcmd1bWVudHMubGVuZ3RoO2lmKDA9PT1KZT9vbj0iRmFpbGVkIjoxPT09SmU/KGtlPUhlLEhlPXZvaWQgMCk6KCExPT09RSYmKEU9ITAsKEQuZW1pdFdhcm5pbmc/RC5lbWl0V2FybmluZzpfLndhcm4uYmluZChfKSkoImFzc2VydC5mYWlsKCkgd2l0'@; put 'aCBtb3JlIHRoYW4gb25lIGFyZ3VtZW50IGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgYXNzZXJ0LnN0cmljdEVxdWFsKCkgaW5zdGVhZCBvciBvbmx5IHBhc3MgYSBtZXNzYWdlLiIsIkRlcHJlY2F0aW9uV2FybmluZyIsIkRFUDAwOTQiKSksMj09PUplJiYoX3Q9IiE9IikpLGtlIGluc3Rh'@; put 'bmNlb2YgRXJyb3IpdGhyb3cga2U7dmFyIE10PXthY3R1YWw6SGUsZXhwZWN0ZWQ6RGUsb3BlcmF0b3I6dm9pZCAwPT09X3Q/ImZhaWwiOl90LHN0YWNrU3RhcnRGbjpudHx8bmV9O3ZvaWQgMCE9PWtlJiYoTXQubWVzc2FnZT1rZSk7dmFyIEl0PW5ldyBYKE10KTt0aHJvdyBvbiYmKEl0Lm1l'@; put 'c3NhZ2U9b24sSXQuZ2VuZXJhdGVkTWVzc2FnZT0hMCksSXR9LG0uQXNzZXJ0aW9uRXJyb3I9WCxtLm9rPXdlLG0uZXF1YWw9ZnVuY3Rpb24gSGUoRGUsa2UsX3Qpe2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil0aHJvdyBuZXcgWigiYWN0dWFsIiwiZXhwZWN0ZWQiKTtEZSE9a2UmJmFlKHthY3R1'@; put 'YWw6RGUsZXhwZWN0ZWQ6a2UsbWVzc2FnZTpfdCxvcGVyYXRvcjoiPT0iLHN0YWNrU3RhcnRGbjpIZX0pfSxtLm5vdEVxdWFsPWZ1bmN0aW9uIEhlKERlLGtlLF90KXtpZihhcmd1bWVudHMubGVuZ3RoPDIpdGhyb3cgbmV3IFooImFjdHVhbCIsImV4cGVjdGVkIik7RGU9PWtlJiZhZSh7YWN0'@; put 'dWFsOkRlLGV4cGVjdGVkOmtlLG1lc3NhZ2U6X3Qsb3BlcmF0b3I6IiE9IixzdGFja1N0YXJ0Rm46SGV9KX0sbS5kZWVwRXF1YWw9ZnVuY3Rpb24gSGUoRGUsa2UsX3Qpe2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil0aHJvdyBuZXcgWigiYWN0dWFsIiwiZXhwZWN0ZWQiKTt2b2lkIDA9PT16ZSYm'@; put 'QygpLHplKERlLGtlKXx8YWUoe2FjdHVhbDpEZSxleHBlY3RlZDprZSxtZXNzYWdlOl90LG9wZXJhdG9yOiJkZWVwRXF1YWwiLHN0YWNrU3RhcnRGbjpIZX0pfSxtLm5vdERlZXBFcXVhbD1mdW5jdGlvbiBIZShEZSxrZSxfdCl7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXRocm93IG5ldyBaKCJh'@; put 'Y3R1YWwiLCJleHBlY3RlZCIpO3ZvaWQgMD09PXplJiZDKCksemUoRGUsa2UpJiZhZSh7YWN0dWFsOkRlLGV4cGVjdGVkOmtlLG1lc3NhZ2U6X3Qsb3BlcmF0b3I6Im5vdERlZXBFcXVhbCIsc3RhY2tTdGFydEZuOkhlfSl9LG0uZGVlcFN0cmljdEVxdWFsPWZ1bmN0aW9uIEhlKERlLGtlLF90'@; put 'KXtpZihhcmd1bWVudHMubGVuZ3RoPDIpdGhyb3cgbmV3IFooImFjdHVhbCIsImV4cGVjdGVkIik7dm9pZCAwPT09emUmJkMoKSx6KERlLGtlKXx8YWUoe2FjdHVhbDpEZSxleHBlY3RlZDprZSxtZXNzYWdlOl90LG9wZXJhdG9yOiJkZWVwU3RyaWN0RXF1YWwiLHN0YWNrU3RhcnRGbjpIZX0p'@; put 'fSxtLm5vdERlZXBTdHJpY3RFcXVhbD1mdW5jdGlvbiBaZShIZSxEZSxrZSl7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXRocm93IG5ldyBaKCJhY3R1YWwiLCJleHBlY3RlZCIpO3ZvaWQgMD09PXplJiZDKCkseihIZSxEZSkmJmFlKHthY3R1YWw6SGUsZXhwZWN0ZWQ6RGUsbWVzc2FnZTprZSxv'@; put 'cGVyYXRvcjoibm90RGVlcFN0cmljdEVxdWFsIixzdGFja1N0YXJ0Rm46WmV9KX0sbS5zdHJpY3RFcXVhbD1mdW5jdGlvbiBIZShEZSxrZSxfdCl7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXRocm93IG5ldyBaKCJhY3R1YWwiLCJleHBlY3RlZCIpO19lKERlLGtlKXx8YWUoe2FjdHVhbDpEZSxl'@; put 'eHBlY3RlZDprZSxtZXNzYWdlOl90LG9wZXJhdG9yOiJzdHJpY3RFcXVhbCIsc3RhY2tTdGFydEZuOkhlfSl9LG0ubm90U3RyaWN0RXF1YWw9ZnVuY3Rpb24gSGUoRGUsa2UsX3Qpe2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil0aHJvdyBuZXcgWigiYWN0dWFsIiwiZXhwZWN0ZWQiKTtfZShEZSxr'@; put 'ZSkmJmFlKHthY3R1YWw6RGUsZXhwZWN0ZWQ6a2UsbWVzc2FnZTpfdCxvcGVyYXRvcjoibm90U3RyaWN0RXF1YWwiLHN0YWNrU3RhcnRGbjpIZX0pfTt2YXIgUWU9dyhmdW5jdGlvbiBIZShEZSxrZSxfdCl7dmFyIG50PXRoaXM7KGZ1bmN0aW9uIFIoSGUsRGUpe2lmKCEoSGUgaW5zdGFuY2Vv'@; put 'ZiBEZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLEhlKSxrZS5mb3JFYWNoKGZ1bmN0aW9uKEplKXtKZSBpbiBEZSYmKG50W0plXT12b2lkIDAhPT1fdCYmInN0cmluZyI9PXR5cGVvZiBfdFtKZV0mJnNlKERlW0plXSkm'@; put 'JlRlKERlW0plXSxfdFtKZV0pP190W0plXTpEZVtKZV0pfSl9KTtmdW5jdGlvbiB4ZShIZSxEZSxrZSxfdCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIERlKXtpZihzZShEZSkpcmV0dXJuIFRlKERlLEhlKTtpZigyPT09YXJndW1lbnRzLmxlbmd0aCl0aHJvdyBuZXcgWSgiZXhwZWN0ZWQiLFsi'@; put 'RnVuY3Rpb24iLCJSZWdFeHAiXSxEZSk7aWYoIm9iamVjdCIhPT1wKEhlKXx8bnVsbD09PUhlKXt2YXIgbnQ9bmV3IFgoe2FjdHVhbDpIZSxleHBlY3RlZDpEZSxtZXNzYWdlOmtlLG9wZXJhdG9yOiJkZWVwU3RyaWN0RXF1YWwiLHN0YWNrU3RhcnRGbjpfdH0pO3Rocm93IG50Lm9wZXJhdG9y'@; put 'PV90Lm5hbWUsbnR9dmFyIEplPU9iamVjdC5rZXlzKERlKTtpZihEZSBpbnN0YW5jZW9mIEVycm9yKUplLnB1c2goIm5hbWUiLCJtZXNzYWdlIik7ZWxzZSBpZigwPT09SmUubGVuZ3RoKXRocm93IG5ldyBCKCJlcnJvciIsRGUsIm1heSBub3QgYmUgYW4gZW1wdHkgb2JqZWN0Iik7cmV0dXJu'@; put 'IHZvaWQgMD09PXplJiZDKCksSmUuZm9yRWFjaChmdW5jdGlvbihvbil7InN0cmluZyI9PXR5cGVvZiBIZVtvbl0mJnNlKERlW29uXSkmJlRlKERlW29uXSxIZVtvbl0pfHxmdW5jdGlvbiBhdChIZSxEZSxrZSxfdCxudCxKZSl7aWYoIShrZSBpbiBIZSl8fCF6KEhlW2tlXSxEZVtrZV0pKXtp'@; put 'ZighX3Qpe3ZhciBvbj1uZXcgUWUoSGUsbnQpLHl0PW5ldyBRZShEZSxudCxIZSksTXQ9bmV3IFgoe2FjdHVhbDpvbixleHBlY3RlZDp5dCxvcGVyYXRvcjoiZGVlcFN0cmljdEVxdWFsIixzdGFja1N0YXJ0Rm46SmV9KTt0aHJvdyBNdC5hY3R1YWw9SGUsTXQuZXhwZWN0ZWQ9RGUsTXQub3Bl'@; put 'cmF0b3I9SmUubmFtZSxNdH1hZSh7YWN0dWFsOkhlLGV4cGVjdGVkOkRlLG1lc3NhZ2U6X3Qsb3BlcmF0b3I6SmUubmFtZSxzdGFja1N0YXJ0Rm46SmV9KX19KEhlLERlLG9uLGtlLEplLF90KX0pLCEwfXJldHVybiB2b2lkIDAhPT1EZS5wcm90b3R5cGUmJkhlIGluc3RhbmNlb2YgRGV8fCFF'@; put 'cnJvci5pc1Byb3RvdHlwZU9mKERlKSYmITA9PT1EZS5jYWxsKHt9LEhlKX1mdW5jdGlvbiB2ZShIZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIEhlKXRocm93IG5ldyBZKCJmbiIsIkZ1bmN0aW9uIixIZSk7dHJ5e0hlKCl9Y2F0Y2goRGUpe3JldHVybiBEZX1yZXR1cm4gQX1mdW5jdGlvbiBx'@; put 'ZShIZSl7cmV0dXJuIGllKEhlKXx8bnVsbCE9PUhlJiYib2JqZWN0Ij09PXAoSGUpJiYiZnVuY3Rpb24iPT10eXBlb2YgSGUudGhlbiYmImZ1bmN0aW9uIj09dHlwZW9mIEhlLmNhdGNofWZ1bmN0aW9uIGplKEhlKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigpe3Zh'@; put 'ciBEZTtpZigiZnVuY3Rpb24iPT10eXBlb2YgSGUpe2lmKCFxZShEZT1IZSgpKSl0aHJvdyBuZXcgVygiaW5zdGFuY2Ugb2YgUHJvbWlzZSIsInByb21pc2VGbiIsRGUpfWVsc2V7aWYoIXFlKEhlKSl0aHJvdyBuZXcgWSgicHJvbWlzZUZuIixbIkZ1bmN0aW9uIiwiUHJvbWlzZSJdLEhlKTtE'@; put 'ZT1IZX1yZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigpe3JldHVybiBEZX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gQX0pLmNhdGNoKGZ1bmN0aW9uKGtlKXtyZXR1cm4ga2V9KX0pfWZ1bmN0aW9uIEFlKEhlLERlLGtlLF90KXtpZigic3RyaW5nIj09dHlwZW9mIGtl'@; put 'KXtpZig0PT09YXJndW1lbnRzLmxlbmd0aCl0aHJvdyBuZXcgWSgiZXJyb3IiLFsiT2JqZWN0IiwiRXJyb3IiLCJGdW5jdGlvbiIsIlJlZ0V4cCJdLGtlKTtpZigib2JqZWN0Ij09PXAoRGUpJiZudWxsIT09RGUpe2lmKERlLm1lc3NhZ2U9PT1rZSl0aHJvdyBuZXcgTCgiZXJyb3IvbWVzc2Fn'@; put 'ZSIsJ1RoZSBlcnJvciBtZXNzYWdlICInLmNvbmNhdChEZS5tZXNzYWdlLCciIGlzIGlkZW50aWNhbCB0byB0aGUgbWVzc2FnZS4nKSl9ZWxzZSBpZihEZT09PWtlKXRocm93IG5ldyBMKCJlcnJvci9tZXNzYWdlIiwnVGhlIGVycm9yICInLmNvbmNhdChEZSwnIiBpcyBpZGVudGljYWwgdG8g'@; put 'dGhlIG1lc3NhZ2UuJykpO190PWtlLGtlPXZvaWQgMH1lbHNlIGlmKG51bGwhPWtlJiYib2JqZWN0IiE9PXAoa2UpJiYiZnVuY3Rpb24iIT10eXBlb2Yga2UpdGhyb3cgbmV3IFkoImVycm9yIixbIk9iamVjdCIsIkVycm9yIiwiRnVuY3Rpb24iLCJSZWdFeHAiXSxrZSk7aWYoRGU9PT1BKXt2'@; put 'YXIgbnQ9IiI7a2UmJmtlLm5hbWUmJihudCs9IiAoIi5jb25jYXQoa2UubmFtZSwiKSIpKSxudCs9X3Q/IjogIi5jb25jYXQoX3QpOiIuIixhZSh7YWN0dWFsOnZvaWQgMCxleHBlY3RlZDprZSxvcGVyYXRvcjpIZS5uYW1lLG1lc3NhZ2U6Ik1pc3NpbmcgZXhwZWN0ZWQgIi5jb25jYXQoInJl'@; put 'amVjdHMiPT09SGUubmFtZT8icmVqZWN0aW9uIjoiZXhjZXB0aW9uIikuY29uY2F0KG50KSxzdGFja1N0YXJ0Rm46SGV9KX1pZihrZSYmIXhlKERlLGtlLF90LEhlKSl0aHJvdyBEZX1mdW5jdGlvbiBGZShIZSxEZSxrZSxfdCl7aWYoRGUhPT1BKXtpZigic3RyaW5nIj09dHlwZW9mIGtlJiYo'@; put 'X3Q9a2Usa2U9dm9pZCAwKSwha2V8fHhlKERlLGtlKSl7dmFyIG50PV90PyI6ICIuY29uY2F0KF90KToiLiI7YWUoe2FjdHVhbDpEZSxleHBlY3RlZDprZSxvcGVyYXRvcjpIZS5uYW1lLG1lc3NhZ2U6IkdvdCB1bndhbnRlZCAiLmNvbmNhdCgiZG9lc05vdFJlamVjdCI9PT1IZS5uYW1lPyJy'@; put 'ZWplY3Rpb24iOiJleGNlcHRpb24iKS5jb25jYXQobnQsIlxuIikrJ0FjdHVhbCBtZXNzYWdlOiAiJy5jb25jYXQoRGUmJkRlLm1lc3NhZ2UsJyInKSxzdGFja1N0YXJ0Rm46SGV9KX10aHJvdyBEZX19ZnVuY3Rpb24gUmUoSGUsRGUsa2UsX3QsbnQpe2lmKCFzZShEZSkpdGhyb3cgbmV3IFko'@; put 'InJlZ2V4cCIsIlJlZ0V4cCIsRGUpO3ZhciBKZT0ibWF0Y2giPT09bnQ7aWYoInN0cmluZyIhPXR5cGVvZiBIZXx8VGUoRGUsSGUpIT09SmUpe2lmKGtlIGluc3RhbmNlb2YgRXJyb3IpdGhyb3cga2U7dmFyIG9uPSFrZTtrZT1rZXx8KCJzdHJpbmciIT10eXBlb2YgSGU/J1RoZSAic3RyaW5n'@; put 'IiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgc3RyaW5nLiBSZWNlaXZlZCB0eXBlICcrIiIuY29uY2F0KHAoSGUpLCIgKCIpLmNvbmNhdChxKEhlKSwiKSIpOihKZT8iVGhlIGlucHV0IGRpZCBub3QgbWF0Y2ggdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiAiOiJUaGUgaW5wdXQgd2FzIGV4cGVj'@; put 'dGVkIHRvIG5vdCBtYXRjaCB0aGUgcmVndWxhciBleHByZXNzaW9uICIpKyIiLmNvbmNhdChxKERlKSwiLiBJbnB1dDpcblxuIikuY29uY2F0KHEoSGUpLCJcbiIpKTt2YXIgeXQ9bmV3IFgoe2FjdHVhbDpIZSxleHBlY3RlZDpEZSxtZXNzYWdlOmtlLG9wZXJhdG9yOm50LHN0YWNrU3RhcnRG'@; put 'bjpfdH0pO3Rocm93IHl0LmdlbmVyYXRlZE1lc3NhZ2U9b24seXR9fWZ1bmN0aW9uIEllKCl7Zm9yKHZhciBIZT1hcmd1bWVudHMubGVuZ3RoLERlPW5ldyBBcnJheShIZSksa2U9MDtrZTxIZTtrZSsrKURlW2tlXT1hcmd1bWVudHNba2VdO2xlLmFwcGx5KHZvaWQgMCxbSWUsRGUubGVuZ3Ro'@; put 'XS5jb25jYXQoRGUpKX1tLnRocm93cz1mdW5jdGlvbiBIZShEZSl7Zm9yKHZhciBrZT1hcmd1bWVudHMubGVuZ3RoLF90PW5ldyBBcnJheShrZT4xP2tlLTE6MCksbnQ9MTtudDxrZTtudCsrKV90W250LTFdPWFyZ3VtZW50c1tudF07QWUuYXBwbHkodm9pZCAwLFtIZSx2ZShEZSldLmNvbmNh'@; put 'dChfdCkpfSxtLnJlamVjdHM9ZnVuY3Rpb24gSGUoRGUpe2Zvcih2YXIga2U9YXJndW1lbnRzLmxlbmd0aCxfdD1uZXcgQXJyYXkoa2U+MT9rZS0xOjApLG50PTE7bnQ8a2U7bnQrKylfdFtudC0xXT1hcmd1bWVudHNbbnRdO3JldHVybiBqZShEZSkudGhlbihmdW5jdGlvbihKZSl7cmV0dXJu'@; put 'IEFlLmFwcGx5KHZvaWQgMCxbSGUsSmVdLmNvbmNhdChfdCkpfSl9LG0uZG9lc05vdFRocm93PWZ1bmN0aW9uIEhlKERlKXtmb3IodmFyIGtlPWFyZ3VtZW50cy5sZW5ndGgsX3Q9bmV3IEFycmF5KGtlPjE/a2UtMTowKSxudD0xO250PGtlO250KyspX3RbbnQtMV09YXJndW1lbnRzW250XTtG'@; put 'ZS5hcHBseSh2b2lkIDAsW0hlLHZlKERlKV0uY29uY2F0KF90KSl9LG0uZG9lc05vdFJlamVjdD1mdW5jdGlvbiBIZShEZSl7Zm9yKHZhciBrZT1hcmd1bWVudHMubGVuZ3RoLF90PW5ldyBBcnJheShrZT4xP2tlLTE6MCksbnQ9MTtudDxrZTtudCsrKV90W250LTFdPWFyZ3VtZW50c1tudF07'@; put 'cmV0dXJuIGplKERlKS50aGVuKGZ1bmN0aW9uKEplKXtyZXR1cm4gRmUuYXBwbHkodm9pZCAwLFtIZSxKZV0uY29uY2F0KF90KSl9KX0sbS5pZkVycm9yPWZ1bmN0aW9uIEhlKERlKXtpZihudWxsIT1EZSl7dmFyIGtlPSJpZkVycm9yIGdvdCB1bndhbnRlZCBleGNlcHRpb246ICI7Im9iamVj'@; put 'dCI9PT1wKERlKSYmInN0cmluZyI9PXR5cGVvZiBEZS5tZXNzYWdlP2tlKz0wPT09RGUubWVzc2FnZS5sZW5ndGgmJkRlLmNvbnN0cnVjdG9yP0RlLmNvbnN0cnVjdG9yLm5hbWU6RGUubWVzc2FnZTprZSs9cShEZSk7dmFyIF90PW5ldyBYKHthY3R1YWw6RGUsZXhwZWN0ZWQ6bnVsbCxvcGVy'@; put 'YXRvcjoiaWZFcnJvciIsbWVzc2FnZTprZSxzdGFja1N0YXJ0Rm46SGV9KSxudD1EZS5zdGFjaztpZigic3RyaW5nIj09dHlwZW9mIG50KXt2YXIgSmU9bnQuc3BsaXQoIlxuIik7SmUuc2hpZnQoKTtmb3IodmFyIG9uPV90LnN0YWNrLnNwbGl0KCJcbiIpLHl0PTA7eXQ8SmUubGVuZ3RoO3l0'@; put 'Kyspe3ZhciBNdD1vbi5pbmRleE9mKEplW3l0XSk7aWYoLTEhPT1NdCl7b249b24uc2xpY2UoMCxNdCk7YnJlYWt9fV90LnN0YWNrPSIiLmNvbmNhdChvbi5qb2luKCJcbiIpLCJcbiIpLmNvbmNhdChKZS5qb2luKCJcbiIpKX10aHJvdyBfdH19LG0ubWF0Y2g9ZnVuY3Rpb24gSGUoRGUsa2Us'@; put 'X3Qpe1JlKERlLGtlLF90LEhlLCJtYXRjaCIpfSxtLmRvZXNOb3RNYXRjaD1mdW5jdGlvbiBIZShEZSxrZSxfdCl7UmUoRGUsa2UsX3QsSGUsImRvZXNOb3RNYXRjaCIpfSxtLnN0cmljdD1nZShJZSxtLHtlcXVhbDptLnN0cmljdEVxdWFsLGRlZXBFcXVhbDptLmRlZXBTdHJpY3RFcXVhbCxu'@; put 'b3RFcXVhbDptLm5vdFN0cmljdEVxdWFsLG5vdERlZXBFcXVhbDptLm5vdERlZXBTdHJpY3RFcXVhbH0pLG0uc3RyaWN0LnN0cmljdD1tLnN0cmljdH0sNTk2MTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDQxNTUpO2Z1bmN0aW9uIF8oQSxhZSl7dmFyIG5lPU9iamVjdC5rZXlz'@; put 'KEEpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBsZT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKEEpO2FlJiYobGU9bGUuZmlsdGVyKGZ1bmN0aW9uKHdlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihBLHdlKS5lbnVtZXJhYmxlfSkp'@; put 'LG5lLnB1c2guYXBwbHkobmUsbGUpfXJldHVybiBuZX1mdW5jdGlvbiBwKEEpe2Zvcih2YXIgYWU9MTthZTxhcmd1bWVudHMubGVuZ3RoO2FlKyspe3ZhciBuZT1udWxsIT1hcmd1bWVudHNbYWVdP2FyZ3VtZW50c1thZV06e307YWUlMj9fKE9iamVjdChuZSksITApLmZvckVhY2goZnVuY3Rp'@; put 'b24obGUpe04oQSxsZSxuZVtsZV0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuZSkpOl8oT2JqZWN0KG5lKSkuZm9yRWFjaChmdW5jdGlvbihsZSl7T2JqZWN0LmRl'@; put 'ZmluZVByb3BlcnR5KEEsbGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuZSxsZSkpfSl9cmV0dXJuIEF9ZnVuY3Rpb24gTihBLGFlLG5lKXtyZXR1cm4oYWU9UihhZSkpaW4gQT9PYmplY3QuZGVmaW5lUHJvcGVydHkoQSxhZSx7dmFsdWU6bmUsZW51bWVyYWJsZTohMCxjb25m'@; put 'aWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpBW2FlXT1uZSxBfWZ1bmN0aW9uIEYoQSxhZSl7Zm9yKHZhciBuZT0wO25lPGFlLmxlbmd0aDtuZSsrKXt2YXIgbGU9YWVbbmVdO2xlLmVudW1lcmFibGU9bGUuZW51bWVyYWJsZXx8ITEsbGUuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBsZSYm'@; put 'KGxlLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxSKGxlLmtleSksbGUpfX1mdW5jdGlvbiBSKEEpe3ZhciBhZT1mdW5jdGlvbiBqKEEsYWUpe2lmKCJvYmplY3QiIT09aWUoQSl8fG51bGw9PT1BKXJldHVybiBBO3ZhciBuZT1BW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYo'@; put 'dm9pZCAwIT09bmUpe3ZhciBsZT1uZS5jYWxsKEEsYWV8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPT1pZShsZSkpcmV0dXJuIGxlO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09YWU/'@; put 'U3RyaW5nOk51bWJlcikoQSl9KEEsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT09aWUoYWUpP2FlOlN0cmluZyhhZSl9ZnVuY3Rpb24gWShBLGFlKXtpZihhZSYmKCJvYmplY3QiPT09aWUoYWUpfHwiZnVuY3Rpb24iPT10eXBlb2YgYWUpKXJldHVybiBhZTtpZih2b2lkIDAhPT1hZSl0aHJv'@; put 'dyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBCKEEpfWZ1bmN0aW9uIEIoQSl7aWYodm9pZCAwPT09QSl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlh'@; put 'bGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBBfWZ1bmN0aW9uIFcoQSl7dmFyIGFlPSJmdW5jdGlvbiI9PXR5cGVvZiBNYXA/bmV3IE1hcDp2b2lkIDA7cmV0dXJuIFc9ZnVuY3Rpb24obGUpe2lmKG51bGw9PT1sZXx8IWZ1bmN0aW9uIFEoQSl7cmV0dXJuLTEh'@; put 'PT1GdW5jdGlvbi50b1N0cmluZy5jYWxsKEEpLmluZGV4T2YoIltuYXRpdmUgY29kZV0iKX0obGUpKXJldHVybiBsZTtpZigiZnVuY3Rpb24iIT10eXBlb2YgbGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24i'@; put 'KTtpZih0eXBlb2YgYWU8InUiKXtpZihhZS5oYXMobGUpKXJldHVybiBhZS5nZXQobGUpO2FlLnNldChsZSx3ZSl9ZnVuY3Rpb24gd2UoKXtyZXR1cm4gWihsZSxhcmd1bWVudHMsdGUodGhpcykuY29uc3RydWN0b3IpfXJldHVybiB3ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShsZS5wcm90'@; put 'b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp3ZSxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxxKHdlLGxlKX0sVyhBKX1mdW5jdGlvbiBaKEEsYWUsbmUpe3JldHVybihaPVgoKT9SZWZsZWN0LmNvbnN0cnVjdC5iaW5kKCk6ZnVuY3Rpb24od2UsWmUsUWUp'@; put 'e3ZhciBhdD1bbnVsbF07YXQucHVzaC5hcHBseShhdCxaZSk7dmFyIHZlPW5ldyhGdW5jdGlvbi5iaW5kLmFwcGx5KHdlLGF0KSk7cmV0dXJuIFFlJiZxKHZlLFFlLnByb3RvdHlwZSksdmV9KS5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gWCgpe2lmKHR5cGVvZiBSZWZsZWN0PiJ1'@; put 'Inx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1'@; put 'bmN0aW9uKCl7fSkpLCEwfWNhdGNoe3JldHVybiExfX1mdW5jdGlvbiBxKEEsYWUpe3JldHVybihxPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGxlLHdlKXtyZXR1cm4gbGUuX19wcm90b19fPXdlLGxlfSkoQSxhZSl9ZnVuY3Rp'@; put 'b24gdGUoQSl7cmV0dXJuKHRlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKG5lKXtyZXR1cm4gbmUuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YobmUpfSkoQSl9ZnVuY3Rpb24gaWUoQSl7cmV0dXJuKGllPSJmdW5j'@; put 'dGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGFlKXtyZXR1cm4gdHlwZW9mIGFlfTpmdW5jdGlvbihhZSl7cmV0dXJuIGFlJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZhZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmYWUh'@; put 'PT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBhZX0pKEEpfXZhciBnZT1iKDk1MzkpLmluc3BlY3QsVGU9YigyMTM2KS5jb2Rlcy5FUlJfSU5WQUxJRF9BUkdfVFlQRTtmdW5jdGlvbiBTZShBLGFlLG5lKXtyZXR1cm4odm9pZCAwPT09bmV8fG5lPkEubGVuZ3RoKSYmKG5lPUEu'@; put 'bGVuZ3RoKSxBLnN1YnN0cmluZyhuZS1hZS5sZW5ndGgsbmUpPT09YWV9dmFyIHo9IiIsZz0iIix5PSIiLHg9IiIsQz17ZGVlcFN0cmljdEVxdWFsOiJFeHBlY3RlZCB2YWx1ZXMgdG8gYmUgc3RyaWN0bHkgZGVlcC1lcXVhbDoiLHN0cmljdEVxdWFsOiJFeHBlY3RlZCB2YWx1ZXMgdG8gYmUg'@; put 'c3RyaWN0bHkgZXF1YWw6IixzdHJpY3RFcXVhbE9iamVjdDonRXhwZWN0ZWQgImFjdHVhbCIgdG8gYmUgcmVmZXJlbmNlLWVxdWFsIHRvICJleHBlY3RlZCI6JyxkZWVwRXF1YWw6IkV4cGVjdGVkIHZhbHVlcyB0byBiZSBsb29zZWx5IGRlZXAtZXF1YWw6IixlcXVhbDoiRXhwZWN0ZWQgdmFs'@; put 'dWVzIHRvIGJlIGxvb3NlbHkgZXF1YWw6Iixub3REZWVwU3RyaWN0RXF1YWw6J0V4cGVjdGVkICJhY3R1YWwiIG5vdCB0byBiZSBzdHJpY3RseSBkZWVwLWVxdWFsIHRvOicsbm90U3RyaWN0RXF1YWw6J0V4cGVjdGVkICJhY3R1YWwiIHRvIGJlIHN0cmljdGx5IHVuZXF1YWwgdG86Jyxub3RT'@; put 'dHJpY3RFcXVhbE9iamVjdDonRXhwZWN0ZWQgImFjdHVhbCIgbm90IHRvIGJlIHJlZmVyZW5jZS1lcXVhbCB0byAiZXhwZWN0ZWQiOicsbm90RGVlcEVxdWFsOidFeHBlY3RlZCAiYWN0dWFsIiBub3QgdG8gYmUgbG9vc2VseSBkZWVwLWVxdWFsIHRvOicsbm90RXF1YWw6J0V4cGVjdGVkICJh'@; put 'Y3R1YWwiIHRvIGJlIGxvb3NlbHkgdW5lcXVhbCB0bzonLG5vdElkZW50aWNhbDoiVmFsdWVzIGlkZW50aWNhbCBidXQgbm90IHJlZmVyZW5jZS1lcXVhbDoifTtmdW5jdGlvbiBWKEEpe3ZhciBhZT1PYmplY3Qua2V5cyhBKSxuZT1PYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVP'@; put 'ZihBKSk7cmV0dXJuIGFlLmZvckVhY2goZnVuY3Rpb24obGUpe25lW2xlXT1BW2xlXX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZSwibWVzc2FnZSIse3ZhbHVlOkEubWVzc2FnZX0pLG5lfWZ1bmN0aW9uIFUoQSl7cmV0dXJuIGdlKEEse2NvbXBhY3Q6ITEsY3VzdG9tSW5zcGVjdDohMSxk'@; put 'ZXB0aDoxZTMsbWF4QXJyYXlMZW5ndGg6MS8wLHNob3dIaWRkZW46ITEsYnJlYWtMZW5ndGg6MS8wLHNob3dQcm94eTohMSxzb3J0ZWQ6ITAsZ2V0dGVyczohMH0pfXZhciBtPWZ1bmN0aW9uKEEsYWUpeyFmdW5jdGlvbiBQKEEsYWUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBhZSYmbnVsbCE9'@; put 'PWFlKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7QS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShhZSYmYWUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6QSx3cml0YWJsZTohMCxjb25maWd1cmFi'@; put 'bGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEEsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksYWUmJnEoQSxhZSl9KGxlLEEpO3ZhciBuZT1mdW5jdGlvbiBMKEEpe3ZhciBhZT1YKCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHdlLGxlPXRlKEEpO2lmKGFlKXt2YXIgWmU9dGUodGhp'@; put 'cykuY29uc3RydWN0b3I7d2U9UmVmbGVjdC5jb25zdHJ1Y3QobGUsYXJndW1lbnRzLFplKX1lbHNlIHdlPWxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gWSh0aGlzLHdlKX19KGxlKTtmdW5jdGlvbiBsZSh3ZSl7dmFyIFplO2lmKGZ1bmN0aW9uIHcoQSxhZSl7aWYoIShBIGluc3Rh'@; put 'bmNlb2YgYWUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGxlKSwib2JqZWN0IiE9PWllKHdlKXx8bnVsbD09PXdlKXRocm93IG5ldyBUZSgib3B0aW9ucyIsIk9iamVjdCIsd2UpO3ZhciBRZT13ZS5tZXNzYWdlLGF0PXdl'@; put 'Lm9wZXJhdG9yLHhlPXdlLnN0YWNrU3RhcnRGbix2ZT13ZS5hY3R1YWwscWU9d2UuZXhwZWN0ZWQsamU9RXJyb3Iuc3RhY2tUcmFjZUxpbWl0O2lmKEVycm9yLnN0YWNrVHJhY2VMaW1pdD0wLG51bGwhPVFlKVplPW5lLmNhbGwodGhpcyxTdHJpbmcoUWUpKTtlbHNlIGlmKEQuc3RkZXJyJiZE'@; put 'LnN0ZGVyci5pc1RUWSYmKEQuc3RkZXJyJiZELnN0ZGVyci5nZXRDb2xvckRlcHRoJiYxIT09RC5zdGRlcnIuZ2V0Q29sb3JEZXB0aCgpPyh6PSJceDFiWzM0bSIsZz0iXHgxYlszMm0iLHg9Ilx4MWJbMzltIix5PSJceDFiWzMxbSIpOih6PSIiLGc9IiIseD0iIix5PSIiKSksIm9iamVjdCI9'@; put 'PT1pZSh2ZSkmJm51bGwhPT12ZSYmIm9iamVjdCI9PT1pZShxZSkmJm51bGwhPT1xZSYmInN0YWNrImluIHZlJiZ2ZSBpbnN0YW5jZW9mIEVycm9yJiYic3RhY2siaW4gcWUmJnFlIGluc3RhbmNlb2YgRXJyb3ImJih2ZT1WKHZlKSxxZT1WKHFlKSksImRlZXBTdHJpY3RFcXVhbCI9PT1hdHx8'@; put 'InN0cmljdEVxdWFsIj09PWF0KVplPW5lLmNhbGwodGhpcyxmdW5jdGlvbiBFKEEsYWUsbmUpe3ZhciBsZT0iIix3ZT0iIixaZT0wLFFlPSIiLGF0PSExLHhlPVUoQSksdmU9eGUuc3BsaXQoIlxuIikscWU9VShhZSkuc3BsaXQoIlxuIiksamU9MCxBZT0iIjtpZigic3RyaWN0RXF1YWwiPT09'@; put 'bmUmJiJvYmplY3QiPT09aWUoQSkmJiJvYmplY3QiPT09aWUoYWUpJiZudWxsIT09QSYmbnVsbCE9PWFlJiYobmU9InN0cmljdEVxdWFsT2JqZWN0IiksMT09PXZlLmxlbmd0aCYmMT09PXFlLmxlbmd0aCYmdmVbMF0hPT1xZVswXSl7dmFyIEZlPXZlWzBdLmxlbmd0aCtxZVswXS5sZW5ndGg7'@; put 'aWYoRmU8PTEwKXtpZighKCJvYmplY3QiPT09aWUoQSkmJm51bGwhPT1BfHwib2JqZWN0Ij09PWllKGFlKSYmbnVsbCE9PWFlfHwwPT09QSYmMD09PWFlKSlyZXR1cm4iIi5jb25jYXQoQ1tuZV0sIlxuXG4iKSsiIi5jb25jYXQodmVbMF0sIiAhPT0gIikuY29uY2F0KHFlWzBdLCJcbiIpfWVs'@; put 'c2UgaWYoInN0cmljdEVxdWFsT2JqZWN0IiE9PW5lJiZGZTwoRC5zdGRlcnImJkQuc3RkZXJyLmlzVFRZP0Quc3RkZXJyLmNvbHVtbnM6ODApKXtmb3IoO3ZlWzBdW2plXT09PXFlWzBdW2plXTspamUrKztqZT4yJiYoQWU9IlxuICAiLmNvbmNhdChmdW5jdGlvbiB6ZShBLGFlKXtpZihhZT1N'@; put 'YXRoLmZsb29yKGFlKSwwPT1BLmxlbmd0aHx8MD09YWUpcmV0dXJuIiI7dmFyIG5lPUEubGVuZ3RoKmFlO2ZvcihhZT1NYXRoLmZsb29yKE1hdGgubG9nKGFlKS9NYXRoLmxvZygyKSk7YWU7KUErPUEsYWUtLTtyZXR1cm4gQStBLnN1YnN0cmluZygwLG5lLUEubGVuZ3RoKX0oIiAiLGplKSwi'@; put 'XiIpLGplPTApfX1mb3IodmFyIEllPXZlW3ZlLmxlbmd0aC0xXSxIZT1xZVtxZS5sZW5ndGgtMV07SWU9PT1IZSYmKGplKys8Mj9RZT0iXG4gICIuY29uY2F0KEllKS5jb25jYXQoUWUpOmxlPUllLHZlLnBvcCgpLHFlLnBvcCgpLDAhPT12ZS5sZW5ndGgmJjAhPT1xZS5sZW5ndGgpOylJZT12'@; put 'ZVt2ZS5sZW5ndGgtMV0sSGU9cWVbcWUubGVuZ3RoLTFdO3ZhciBEZT1NYXRoLm1heCh2ZS5sZW5ndGgscWUubGVuZ3RoKTtpZigwPT09RGUpe3ZhciBrZT14ZS5zcGxpdCgiXG4iKTtpZihrZS5sZW5ndGg+MzApZm9yKGtlWzI2XT0iIi5jb25jYXQoeiwiLi4uIikuY29uY2F0KHgpO2tlLmxl'@; put 'bmd0aD4yNzspa2UucG9wKCk7cmV0dXJuIiIuY29uY2F0KEMubm90SWRlbnRpY2FsLCJcblxuIikuY29uY2F0KGtlLmpvaW4oIlxuIiksIlxuIil9amU+MyYmKFFlPSJcbiIuY29uY2F0KHosIi4uLiIpLmNvbmNhdCh4KS5jb25jYXQoUWUpLGF0PSEwKSwiIiE9PWxlJiYoUWU9IlxuICAiLmNv'@; put 'bmNhdChsZSkuY29uY2F0KFFlKSxsZT0iIik7dmFyIF90PTAsbnQ9Q1tuZV0rIlxuIi5jb25jYXQoZywiKyBhY3R1YWwiKS5jb25jYXQoeCwiICIpLmNvbmNhdCh5LCItIGV4cGVjdGVkIikuY29uY2F0KHgpLEplPSIgIi5jb25jYXQoeiwiLi4uIikuY29uY2F0KHgsIiBMaW5lcyBza2lwcGVk'@; put 'Iik7Zm9yKGplPTA7amU8RGU7amUrKyl7dmFyIG9uPWplLVplO2lmKHZlLmxlbmd0aDxqZSsxKW9uPjEmJmplPjImJihvbj40Pyh3ZSs9IlxuIi5jb25jYXQoeiwiLi4uIikuY29uY2F0KHgpLGF0PSEwKTpvbj4zJiYod2UrPSJcbiAgIi5jb25jYXQocWVbamUtMl0pLF90KyspLHdlKz0iXG4g'@; put 'ICIuY29uY2F0KHFlW2plLTFdKSxfdCsrKSxaZT1qZSxsZSs9IlxuIi5jb25jYXQoeSwiLSIpLmNvbmNhdCh4LCIgIikuY29uY2F0KHFlW2plXSksX3QrKztlbHNlIGlmKHFlLmxlbmd0aDxqZSsxKW9uPjEmJmplPjImJihvbj40Pyh3ZSs9IlxuIi5jb25jYXQoeiwiLi4uIikuY29uY2F0KHgp'@; put 'LGF0PSEwKTpvbj4zJiYod2UrPSJcbiAgIi5jb25jYXQodmVbamUtMl0pLF90KyspLHdlKz0iXG4gICIuY29uY2F0KHZlW2plLTFdKSxfdCsrKSxaZT1qZSx3ZSs9IlxuIi5jb25jYXQoZywiKyIpLmNvbmNhdCh4LCIgIikuY29uY2F0KHZlW2plXSksX3QrKztlbHNle3ZhciB5dD1xZVtqZV0s'@; put 'TXQ9dmVbamVdLEl0PU10IT09eXQmJighU2UoTXQsIiwiKXx8TXQuc2xpY2UoMCwtMSkhPT15dCk7SXQmJlNlKHl0LCIsIikmJnl0LnNsaWNlKDAsLTEpPT09TXQmJihJdD0hMSxNdCs9IiwiKSxJdD8ob24+MSYmamU+MiYmKG9uPjQ/KHdlKz0iXG4iLmNvbmNhdCh6LCIuLi4iKS5jb25jYXQo'@; put 'eCksYXQ9ITApOm9uPjMmJih3ZSs9IlxuICAiLmNvbmNhdCh2ZVtqZS0yXSksX3QrKyksd2UrPSJcbiAgIi5jb25jYXQodmVbamUtMV0pLF90KyspLFplPWplLHdlKz0iXG4iLmNvbmNhdChnLCIrIikuY29uY2F0KHgsIiAiKS5jb25jYXQoTXQpLGxlKz0iXG4iLmNvbmNhdCh5LCItIikuY29u'@; put 'Y2F0KHgsIiAiKS5jb25jYXQoeXQpLF90Kz0yKTood2UrPWxlLGxlPSIiLCgxPT09b258fDA9PT1qZSkmJih3ZSs9IlxuICAiLmNvbmNhdChNdCksX3QrKykpfWlmKF90PjIwJiZqZTxEZS0yKXJldHVybiIiLmNvbmNhdChudCkuY29uY2F0KEplLCJcbiIpLmNvbmNhdCh3ZSwiXG4iKS5jb25j'@; put 'YXQoeiwiLi4uIikuY29uY2F0KHgpLmNvbmNhdChsZSwiXG4iKSsiIi5jb25jYXQoeiwiLi4uIikuY29uY2F0KHgpfXJldHVybiIiLmNvbmNhdChudCkuY29uY2F0KGF0P0plOiIiLCJcbiIpLmNvbmNhdCh3ZSkuY29uY2F0KGxlKS5jb25jYXQoUWUpLmNvbmNhdChBZSl9KHZlLHFlLGF0KSk7'@; put 'ZWxzZSBpZigibm90RGVlcFN0cmljdEVxdWFsIj09PWF0fHwibm90U3RyaWN0RXF1YWwiPT09YXQpe3ZhciBBZT1DW2F0XSxGZT1VKHZlKS5zcGxpdCgiXG4iKTtpZigibm90U3RyaWN0RXF1YWwiPT09YXQmJiJvYmplY3QiPT09aWUodmUpJiZudWxsIT09dmUmJihBZT1DLm5vdFN0cmljdEVx'@; put 'dWFsT2JqZWN0KSxGZS5sZW5ndGg+MzApZm9yKEZlWzI2XT0iIi5jb25jYXQoeiwiLi4uIikuY29uY2F0KHgpO0ZlLmxlbmd0aD4yNzspRmUucG9wKCk7WmU9bmUuY2FsbCh0aGlzLDE9PT1GZS5sZW5ndGg/IiIuY29uY2F0KEFlLCIgIikuY29uY2F0KEZlWzBdKToiIi5jb25jYXQoQWUsIlxu'@; put 'XG4iKS5jb25jYXQoRmUuam9pbigiXG4iKSwiXG4iKSl9ZWxzZXt2YXIgUmU9VSh2ZSksSWU9IiIsSGU9Q1thdF07Im5vdERlZXBFcXVhbCI9PT1hdHx8Im5vdEVxdWFsIj09PWF0PyhSZT0iIi5jb25jYXQoQ1thdF0sIlxuXG4iKS5jb25jYXQoUmUpKS5sZW5ndGg+MTAyNCYmKFJlPSIiLmNv'@; put 'bmNhdChSZS5zbGljZSgwLDEwMjEpLCIuLi4iKSk6KEllPSIiLmNvbmNhdChVKHFlKSksUmUubGVuZ3RoPjUxMiYmKFJlPSIiLmNvbmNhdChSZS5zbGljZSgwLDUwOSksIi4uLiIpKSxJZS5sZW5ndGg+NTEyJiYoSWU9IiIuY29uY2F0KEllLnNsaWNlKDAsNTA5KSwiLi4uIikpLCJkZWVwRXF1'@; put 'YWwiPT09YXR8fCJlcXVhbCI9PT1hdD9SZT0iIi5jb25jYXQoSGUsIlxuXG4iKS5jb25jYXQoUmUsIlxuXG5zaG91bGQgZXF1YWxcblxuIik6SWU9IiAiLmNvbmNhdChhdCwiICIpLmNvbmNhdChJZSkpLFplPW5lLmNhbGwodGhpcywiIi5jb25jYXQoUmUpLmNvbmNhdChJZSkpfXJldHVybiBF'@; put 'cnJvci5zdGFja1RyYWNlTGltaXQ9amUsWmUuZ2VuZXJhdGVkTWVzc2FnZT0hUWUsT2JqZWN0LmRlZmluZVByb3BlcnR5KEIoWmUpLCJuYW1lIix7dmFsdWU6IkFzc2VydGlvbkVycm9yIFtFUlJfQVNTRVJUSU9OXSIsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9'@; put 'KSxaZS5jb2RlPSJFUlJfQVNTRVJUSU9OIixaZS5hY3R1YWw9dmUsWmUuZXhwZWN0ZWQ9cWUsWmUub3BlcmF0b3I9YXQsRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UmJkVycm9yLmNhcHR1cmVTdGFja1RyYWNlKEIoWmUpLHhlKSxaZS5uYW1lPSJBc3NlcnRpb25FcnJvciIsWShaZSl9cmV0dXJu'@; put 'IGZ1bmN0aW9uIEgoQSxhZSxuZSl7YWUmJkYoQS5wcm90b3R5cGUsYWUpLG5lJiZGKEEsbmUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShsZSxbe2tleToidG9TdHJpbmciLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIiIuY29uY2F0KHRoaXMu'@; put 'bmFtZSwiIFsiKS5jb25jYXQodGhpcy5jb2RlLCJdOiAiKS5jb25jYXQodGhpcy5tZXNzYWdlKX19LHtrZXk6YWUsdmFsdWU6ZnVuY3Rpb24oWmUsUWUpe3JldHVybiBnZSh0aGlzLHAocCh7fSxRZSkse30se2N1c3RvbUluc3BlY3Q6ITEsZGVwdGg6MH0pKX19XSksbGV9KFcoRXJyb3IpLGdl'@; put 'LmN1c3RvbSk7Y2UuZXhwb3J0cz1tfSwyMTM2OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEQoZ2Upe3JldHVybihEPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKF9lKXtyZXR1cm4gdHlwZW9mIF9l'@; put 'fTpmdW5jdGlvbihfZSl7cmV0dXJuIF9lJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZfZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmX2UhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBfZX0pKGdlKX1mdW5jdGlvbiBfKGdlLF9lKXtmb3IodmFyIFRlPTA7VGU8X2UubGVu'@; put 'Z3RoO1RlKyspe3ZhciBTZT1fZVtUZV07U2UuZW51bWVyYWJsZT1TZS5lbnVtZXJhYmxlfHwhMSxTZS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIFNlJiYoU2Uud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShnZSxOKFNlLmtleSksU2UpfX1mdW5jdGlvbiBOKGdlKXt2YXIg'@; put 'X2U9ZnVuY3Rpb24gdyhnZSxfZSl7aWYoIm9iamVjdCIhPT1EKGdlKXx8bnVsbD09PWdlKXJldHVybiBnZTt2YXIgVGU9Z2VbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1UZSl7dmFyIFNlPVRlLmNhbGwoZ2UsX2V8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPT1EKFNlKSlyZXR1'@; put 'cm4gU2U7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1fZT9TdHJpbmc6TnVtYmVyKShnZSl9KGdlLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09PUQoX2UpP19lOlN0cmluZyhfZSl9'@; put 'ZnVuY3Rpb24gUihnZSxfZSl7cmV0dXJuKFI9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oU2UsemUpe3JldHVybiBTZS5fX3Byb3RvX189emUsU2V9KShnZSxfZSl9ZnVuY3Rpb24gQihnZSl7cmV0dXJuKEI9T2JqZWN0LnNldFBy'@; put 'b3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oVGUpe3JldHVybiBUZS5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihUZSl9KShnZSl9dmFyIFosWCxXPXt9O2Z1bmN0aW9uIFEoZ2UsX2UsVGUpe1RlfHwoVGU9RXJyb3IpO3ZhciB6ZT1mdW5j'@; put 'dGlvbih6KXshZnVuY3Rpb24gSChnZSxfZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIF9lJiZudWxsIT09X2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtnZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShf'@; put 'ZSYmX2UucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6Z2Usd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShnZSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxfZSYmUihnZSxfZSl9KHkseik7dmFyIGc9ZnVuY3Rpb24gaihnZSl7dmFy'@; put 'IF9lPWZ1bmN0aW9uIFkoKXtpZih0eXBlb2YgUmVmbGVjdD4idSJ8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9m'@; put 'LmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaHtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHplLFNlPUIoZ2UpO2lmKF9lKXt2YXIgej1CKHRoaXMpLmNvbnN0cnVjdG9yO3plPVJlZmxlY3QuY29uc3RydWN0KFNlLGFy'@; put 'Z3VtZW50cyx6KX1lbHNlIHplPVNlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZnVuY3Rpb24gUChnZSxfZSl7aWYoX2UmJigib2JqZWN0Ij09PUQoX2UpfHwiZnVuY3Rpb24iPT10eXBlb2YgX2UpKXJldHVybiBfZTtpZih2b2lkIDAhPT1fZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJE'@; put 'ZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBMKGdlKXtpZih2b2lkIDA9PT1nZSl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24n'@; put 'dCBiZWVuIGNhbGxlZCIpO3JldHVybiBnZX0oZ2UpfSh0aGlzLHplKX19KHkpO2Z1bmN0aW9uIHkoeCxDLFQpe3ZhciBWO3JldHVybiBmdW5jdGlvbiBGKGdlLF9lKXtpZighKGdlIGluc3RhbmNlb2YgX2UpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBm'@; put 'dW5jdGlvbiIpfSh0aGlzLHkpLFY9Zy5jYWxsKHRoaXMsZnVuY3Rpb24gU2UoeixnLHkpe3JldHVybiJzdHJpbmciPT10eXBlb2YgX2U/X2U6X2UoeixnLHkpfSh4LEMsVCkpLFYuY29kZT1nZSxWfXJldHVybiBmdW5jdGlvbiBwKGdlLF9lLFRlKXtyZXR1cm4gX2UmJl8oZ2UucHJvdG90eXBl'@; put 'LF9lKSxUZSYmXyhnZSxUZSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGdlLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGdlfSh5KX0oVGUpO1dbZ2VdPXplfWZ1bmN0aW9uIHEoZ2UsX2Upe2lmKEFycmF5LmlzQXJyYXkoZ2UpKXt2YXIgVGU9Z2UubGVuZ3RoO3JldHVybiBnZT1nZS5tYXAo'@; put 'ZnVuY3Rpb24oU2Upe3JldHVybiBTdHJpbmcoU2UpfSksVGU+Mj8ib25lIG9mICIuY29uY2F0KF9lLCIgIikuY29uY2F0KGdlLnNsaWNlKDAsVGUtMSkuam9pbigiLCAiKSwiLCBvciAiKStnZVtUZS0xXToyPT09VGU/Im9uZSBvZiAiLmNvbmNhdChfZSwiICIpLmNvbmNhdChnZVswXSwiIG9y'@; put 'ICIpLmNvbmNhdChnZVsxXSk6Im9mICIuY29uY2F0KF9lLCIgIikuY29uY2F0KGdlWzBdKX1yZXR1cm4ib2YgIi5jb25jYXQoX2UsIiAiKS5jb25jYXQoU3RyaW5nKGdlKSl9USgiRVJSX0FNQklHVU9VU19BUkdVTUVOVCIsJ1RoZSAiJXMiIGFyZ3VtZW50IGlzIGFtYmlndW91cy4gJXMnLFR5'@; put 'cGVFcnJvciksUSgiRVJSX0lOVkFMSURfQVJHX1RZUEUiLGZ1bmN0aW9uKGdlLF9lLFRlKXt2YXIgU2UsemU7aWYodm9pZCAwPT09WiYmKFo9Yig5MjgyKSksWigic3RyaW5nIj09dHlwZW9mIGdlLCInbmFtZScgbXVzdCBiZSBhIHN0cmluZyIpLCJzdHJpbmciPT10eXBlb2YgX2UmJmZ1bmN0'@; put 'aW9uIHRlKGdlLF9lLFRlKXtyZXR1cm4gZ2Uuc3Vic3RyKCFUZXx8VGU8MD8wOitUZSxfZS5sZW5ndGgpPT09X2V9KF9lLCJub3QgIik/KFNlPSJtdXN0IG5vdCBiZSIsX2U9X2UucmVwbGFjZSgvXm5vdCAvLCIiKSk6U2U9Im11c3QgYmUiLGZ1bmN0aW9uIGllKGdlLF9lLFRlKXtyZXR1cm4o'@; put 'dm9pZCAwPT09VGV8fFRlPmdlLmxlbmd0aCkmJihUZT1nZS5sZW5ndGgpLGdlLnN1YnN0cmluZyhUZS1fZS5sZW5ndGgsVGUpPT09X2V9KGdlLCIgYXJndW1lbnQiKSl6ZT0iVGhlICIuY29uY2F0KGdlLCIgIikuY29uY2F0KFNlLCIgIikuY29uY2F0KHEoX2UsInR5cGUiKSk7ZWxzZXt2YXIg'@; put 'ej1mdW5jdGlvbiBzZShnZSxfZSxUZSl7cmV0dXJuIm51bWJlciIhPXR5cGVvZiBUZSYmKFRlPTApLCEoVGUrX2UubGVuZ3RoPmdlLmxlbmd0aCkmJi0xIT09Z2UuaW5kZXhPZihfZSxUZSl9KGdlLCIuIik/InByb3BlcnR5IjoiYXJndW1lbnQiO3plPSdUaGUgIicuY29uY2F0KGdlLCciICcp'@; put 'LmNvbmNhdCh6LCIgIikuY29uY2F0KFNlLCIgIikuY29uY2F0KHEoX2UsInR5cGUiKSl9cmV0dXJuIHplKyIuIFJlY2VpdmVkIHR5cGUgIi5jb25jYXQoRChUZSkpfSxUeXBlRXJyb3IpLFEoIkVSUl9JTlZBTElEX0FSR19WQUxVRSIsZnVuY3Rpb24oZ2UsX2Upe3ZhciBUZT1hcmd1bWVudHMu'@; put 'bGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06ImlzIGludmFsaWQiO3ZvaWQgMD09PVgmJihYPWIoOTUzOSkpO3ZhciBTZT1YLmluc3BlY3QoX2UpO3JldHVybiBTZS5sZW5ndGg+MTI4JiYoU2U9IiIuY29uY2F0KFNlLnNsaWNlKDAsMTI4KSwiLi4uIikpLCJU'@; put 'aGUgYXJndW1lbnQgJyIuY29uY2F0KGdlLCInICIpLmNvbmNhdChUZSwiLiBSZWNlaXZlZCAiKS5jb25jYXQoU2UpfSxUeXBlRXJyb3IsUmFuZ2VFcnJvciksUSgiRVJSX0lOVkFMSURfUkVUVVJOX1ZBTFVFIixmdW5jdGlvbihnZSxfZSxUZSl7dmFyIFNlO3JldHVybiBTZT1UZSYmVGUuY29u'@; put 'c3RydWN0b3ImJlRlLmNvbnN0cnVjdG9yLm5hbWU/Imluc3RhbmNlIG9mICIuY29uY2F0KFRlLmNvbnN0cnVjdG9yLm5hbWUpOiJ0eXBlICIuY29uY2F0KEQoVGUpKSwiRXhwZWN0ZWQgIi5jb25jYXQoZ2UsJyB0byBiZSByZXR1cm5lZCBmcm9tIHRoZSAiJykuY29uY2F0KF9lLCciJykrIiBm'@; put 'dW5jdGlvbiBidXQgZ290ICIuY29uY2F0KFNlLCIuIil9LFR5cGVFcnJvciksUSgiRVJSX01JU1NJTkdfQVJHUyIsZnVuY3Rpb24oKXtmb3IodmFyIGdlPWFyZ3VtZW50cy5sZW5ndGgsX2U9bmV3IEFycmF5KGdlKSxUZT0wO1RlPGdlO1RlKyspX2VbVGVdPWFyZ3VtZW50c1tUZV07dm9pZCAw'@; put 'PT09WiYmKFo9Yig5MjgyKSksWihfZS5sZW5ndGg+MCwiQXQgbGVhc3Qgb25lIGFyZyBuZWVkcyB0byBiZSBzcGVjaWZpZWQiKTt2YXIgU2U9IlRoZSAiLHplPV9lLmxlbmd0aDtzd2l0Y2goX2U9X2UubWFwKGZ1bmN0aW9uKHope3JldHVybiciJy5jb25jYXQoeiwnIicpfSksemUpe2Nhc2Ug'@; put 'MTpTZSs9IiIuY29uY2F0KF9lWzBdLCIgYXJndW1lbnQiKTticmVhaztjYXNlIDI6U2UrPSIiLmNvbmNhdChfZVswXSwiIGFuZCAiKS5jb25jYXQoX2VbMV0sIiBhcmd1bWVudHMiKTticmVhaztkZWZhdWx0OlNlKz1fZS5zbGljZSgwLHplLTEpLmpvaW4oIiwgIiksU2UrPSIsIGFuZCAiLmNv'@; put 'bmNhdChfZVt6ZS0xXSwiIGFyZ3VtZW50cyIpfXJldHVybiIiLmNvbmNhdChTZSwiIG11c3QgYmUgc3BlY2lmaWVkIil9LFR5cGVFcnJvciksY2UuZXhwb3J0cy5jb2Rlcz1XfSw5MTU4OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEQoSXQscnQpe3JldHVybiBmdW5jdGlvbiBG'@; put 'KEl0KXtpZihBcnJheS5pc0FycmF5KEl0KSlyZXR1cm4gSXR9KEl0KXx8ZnVuY3Rpb24gdyhJdCxydCl7dmFyIEtlPW51bGw9PUl0P251bGw6dHlwZW9mIFN5bWJvbDwidSImJkl0W1N5bWJvbC5pdGVyYXRvcl18fEl0WyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9S2Upe3ZhciB0dCxOZSx1dCxK'@; put 'dCxMdD1bXSxQdD0hMCxvaT0hMTt0cnl7aWYodXQ9KEtlPUtlLmNhbGwoSXQpKS5uZXh0LDA9PT1ydCl7aWYoT2JqZWN0KEtlKSE9PUtlKXJldHVybjtQdD0hMX1lbHNlIGZvcig7IShQdD0odHQ9dXQuY2FsbChLZSkpLmRvbmUpJiYoTHQucHVzaCh0dC52YWx1ZSksTHQubGVuZ3RoIT09cnQp'@; put 'O1B0PSEwKTt9Y2F0Y2goZW4pe29pPSEwLE5lPWVufWZpbmFsbHl7dHJ5e2lmKCFQdCYmbnVsbCE9S2UucmV0dXJuJiYoSnQ9S2UucmV0dXJuKCksT2JqZWN0KEp0KSE9PUp0KSlyZXR1cm59ZmluYWxseXtpZihvaSl0aHJvdyBOZX19cmV0dXJuIEx0fX0oSXQscnQpfHxmdW5jdGlvbiBwKEl0'@; put 'LHJ0KXtpZihJdCl7aWYoInN0cmluZyI9PXR5cGVvZiBJdClyZXR1cm4gTihJdCxydCk7dmFyIEtlPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChJdCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1LZSYmSXQuY29uc3RydWN0b3ImJihLZT1JdC5jb25zdHJ1Y3Rvci5uYW1lKSwi'@; put 'TWFwIj09PUtlfHwiU2V0Ij09PUtlKXJldHVybiBBcnJheS5mcm9tKEl0KTtpZigiQXJndW1lbnRzIj09PUtlfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChLZSkpcmV0dXJuIE4oSXQscnQpfX0oSXQscnQpfHxmdW5jdGlvbiBfKCl7dGhyb3cgbmV3'@; put 'IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBO'@; put 'KEl0LHJ0KXsobnVsbD09cnR8fHJ0Pkl0Lmxlbmd0aCkmJihydD1JdC5sZW5ndGgpO2Zvcih2YXIgS2U9MCx0dD1uZXcgQXJyYXkocnQpO0tlPHJ0O0tlKyspdHRbS2VdPUl0W0tlXTtyZXR1cm4gdHR9ZnVuY3Rpb24gSChJdCl7cmV0dXJuKEg9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYm'@; put 'InN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24ocnQpe3JldHVybiB0eXBlb2YgcnR9OmZ1bmN0aW9uKHJ0KXtyZXR1cm4gcnQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnJ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZydCE9PVN5bWJvbC5wcm90b3R5cGU/InN5'@; put 'bWJvbCI6dHlwZW9mIHJ0fSkoSXQpfXZhciBSPXZvaWQgMCE9PS9hL2cuZmxhZ3Msaj1mdW5jdGlvbihydCl7dmFyIEtlPVtdO3JldHVybiBydC5mb3JFYWNoKGZ1bmN0aW9uKHR0KXtyZXR1cm4gS2UucHVzaCh0dCl9KSxLZX0sUD1mdW5jdGlvbihydCl7dmFyIEtlPVtdO3JldHVybiBydC5m'@; put 'b3JFYWNoKGZ1bmN0aW9uKHR0LE5lKXtyZXR1cm4gS2UucHVzaChbTmUsdHRdKX0pLEtlfSxMPU9iamVjdC5pcz9PYmplY3QuaXM6Yig2MDkpLFk9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz9PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzOmZ1bmN0aW9uKCl7cmV0dXJuW119LEI9'@; put 'TnVtYmVyLmlzTmFOP051bWJlci5pc05hTjpiKDM2MCk7ZnVuY3Rpb24gVyhJdCl7cmV0dXJuIEl0LmNhbGwuYmluZChJdCl9dmFyIFo9VyhPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5KSxYPVcoT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSksUT1XKE9iamVj'@; put 'dC5wcm90b3R5cGUudG9TdHJpbmcpLHE9Yig5NTM5KS50eXBlcyx0ZT1xLmlzQW55QXJyYXlCdWZmZXIsaWU9cS5pc0FycmF5QnVmZmVyVmlldyxzZT1xLmlzRGF0ZSxnZT1xLmlzTWFwLF9lPXEuaXNSZWdFeHAsVGU9cS5pc1NldCxTZT1xLmlzTmF0aXZlRXJyb3IsemU9cS5pc0JveGVkUHJp'@; put 'bWl0aXZlLHo9cS5pc051bWJlck9iamVjdCxnPXEuaXNTdHJpbmdPYmplY3QseT1xLmlzQm9vbGVhbk9iamVjdCx4PXEuaXNCaWdJbnRPYmplY3QsQz1xLmlzU3ltYm9sT2JqZWN0LFQ9cS5pc0Zsb2F0MzJBcnJheSxWPXEuaXNGbG9hdDY0QXJyYXk7ZnVuY3Rpb24gVShJdCl7aWYoMD09PUl0'@; put 'Lmxlbmd0aHx8SXQubGVuZ3RoPjEwKXJldHVybiEwO2Zvcih2YXIgcnQ9MDtydDxJdC5sZW5ndGg7cnQrKyl7dmFyIEtlPUl0LmNoYXJDb2RlQXQocnQpO2lmKEtlPDQ4fHxLZT41NylyZXR1cm4hMH1yZXR1cm4gMTA9PT1JdC5sZW5ndGgmJkl0Pj1NYXRoLnBvdygyLDMyKX1mdW5jdGlvbiBF'@; put 'KEl0KXtyZXR1cm4gT2JqZWN0LmtleXMoSXQpLmZpbHRlcihVKS5jb25jYXQoWShJdCkuZmlsdGVyKE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuYmluZChJdCkpKX1mdW5jdGlvbiBtKEl0LHJ0KXtpZihJdD09PXJ0KXJldHVybiAwO2Zvcih2YXIgS2U9SXQubGVuZ3Ro'@; put 'LHR0PXJ0Lmxlbmd0aCxOZT0wLHV0PU1hdGgubWluKEtlLHR0KTtOZTx1dDsrK05lKWlmKEl0W05lXSE9PXJ0W05lXSl7S2U9SXRbTmVdLHR0PXJ0W05lXTticmVha31yZXR1cm4gS2U8dHQ/LTE6dHQ8S2U/MTowfXZhciBsZT0wLHdlPTEsWmU9MixRZT0zO2Z1bmN0aW9uIEFlKEl0LHJ0LEtl'@; put 'LHR0KXtpZihJdD09PXJ0KXJldHVybiAwIT09SXR8fCFLZXx8TChJdCxydCk7aWYoS2Upe2lmKCJvYmplY3QiIT09SChJdCkpcmV0dXJuIm51bWJlciI9PXR5cGVvZiBJdCYmQihJdCkmJkIocnQpO2lmKCJvYmplY3QiIT09SChydCl8fG51bGw9PT1JdHx8bnVsbD09PXJ0fHxPYmplY3QuZ2V0'@; put 'UHJvdG90eXBlT2YoSXQpIT09T2JqZWN0LmdldFByb3RvdHlwZU9mKHJ0KSlyZXR1cm4hMX1lbHNle2lmKG51bGw9PT1JdHx8Im9iamVjdCIhPT1IKEl0KSlyZXR1cm4obnVsbD09PXJ0fHwib2JqZWN0IiE9PUgocnQpKSYmSXQ9PXJ0O2lmKG51bGw9PT1ydHx8Im9iamVjdCIhPT1IKHJ0KSly'@; put 'ZXR1cm4hMX12YXIgTmU9UShJdCk7aWYoTmUhPT1RKHJ0KSlyZXR1cm4hMTtpZihBcnJheS5pc0FycmF5KEl0KSl7aWYoSXQubGVuZ3RoIT09cnQubGVuZ3RoKXJldHVybiExO3ZhciBKdD1FKEl0KSxMdD1FKHJ0KTtyZXR1cm4gSnQubGVuZ3RoPT09THQubGVuZ3RoJiZSZShJdCxydCxLZSx0'@; put 'dCx3ZSxKdCl9aWYoIltvYmplY3QgT2JqZWN0XSI9PT1OZSYmKCFnZShJdCkmJmdlKHJ0KXx8IVRlKEl0KSYmVGUocnQpKSlyZXR1cm4hMTtpZihzZShJdCkpe2lmKCFzZShydCl8fERhdGUucHJvdG90eXBlLmdldFRpbWUuY2FsbChJdCkhPT1EYXRlLnByb3RvdHlwZS5nZXRUaW1lLmNhbGwo'@; put 'cnQpKXJldHVybiExfWVsc2UgaWYoX2UoSXQpKXtpZighX2UocnQpfHwhZnVuY3Rpb24gYXQoSXQscnQpe3JldHVybiBSP0l0LnNvdXJjZT09PXJ0LnNvdXJjZSYmSXQuZmxhZ3M9PT1ydC5mbGFnczpSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoSXQpPT09UmVnRXhwLnByb3RvdHlw'@; put 'ZS50b1N0cmluZy5jYWxsKHJ0KX0oSXQscnQpKXJldHVybiExfWVsc2UgaWYoU2UoSXQpfHxJdCBpbnN0YW5jZW9mIEVycm9yKXtpZihJdC5tZXNzYWdlIT09cnQubWVzc2FnZXx8SXQubmFtZSE9PXJ0Lm5hbWUpcmV0dXJuITF9ZWxzZXtpZihpZShJdCkpe2lmKEtlfHwhVChJdCkmJiFWKEl0'@; put 'KSl7aWYoIWZ1bmN0aW9uIHZlKEl0LHJ0KXtyZXR1cm4gSXQuYnl0ZUxlbmd0aD09PXJ0LmJ5dGVMZW5ndGgmJjA9PT1tKG5ldyBVaW50OEFycmF5KEl0LmJ1ZmZlcixJdC5ieXRlT2Zmc2V0LEl0LmJ5dGVMZW5ndGgpLG5ldyBVaW50OEFycmF5KHJ0LmJ1ZmZlcixydC5ieXRlT2Zmc2V0LHJ0'@; put 'LmJ5dGVMZW5ndGgpKX0oSXQscnQpKXJldHVybiExfWVsc2UgaWYoIWZ1bmN0aW9uIHhlKEl0LHJ0KXtpZihJdC5ieXRlTGVuZ3RoIT09cnQuYnl0ZUxlbmd0aClyZXR1cm4hMTtmb3IodmFyIEtlPTA7S2U8SXQuYnl0ZUxlbmd0aDtLZSsrKWlmKEl0W0tlXSE9PXJ0W0tlXSlyZXR1cm4hMTty'@; put 'ZXR1cm4hMH0oSXQscnQpKXJldHVybiExO3ZhciBQdD1FKEl0KSxvaT1FKHJ0KTtyZXR1cm4gUHQubGVuZ3RoPT09b2kubGVuZ3RoJiZSZShJdCxydCxLZSx0dCxsZSxQdCl9aWYoVGUoSXQpKXJldHVybiEoIVRlKHJ0KXx8SXQuc2l6ZSE9PXJ0LnNpemUpJiZSZShJdCxydCxLZSx0dCxaZSk7'@; put 'aWYoZ2UoSXQpKXJldHVybiEoIWdlKHJ0KXx8SXQuc2l6ZSE9PXJ0LnNpemUpJiZSZShJdCxydCxLZSx0dCxRZSk7aWYodGUoSXQpKXtpZighZnVuY3Rpb24gcWUoSXQscnQpe3JldHVybiBJdC5ieXRlTGVuZ3RoPT09cnQuYnl0ZUxlbmd0aCYmMD09PW0obmV3IFVpbnQ4QXJyYXkoSXQpLG5l'@; put 'dyBVaW50OEFycmF5KHJ0KSl9KEl0LHJ0KSlyZXR1cm4hMX1lbHNlIGlmKHplKEl0KSYmIWZ1bmN0aW9uIGplKEl0LHJ0KXtyZXR1cm4geihJdCk/eihydCkmJkwoTnVtYmVyLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoSXQpLE51bWJlci5wcm90b3R5cGUudmFsdWVPZi5jYWxsKHJ0KSk6ZyhJ'@; put 'dCk/ZyhydCkmJlN0cmluZy5wcm90b3R5cGUudmFsdWVPZi5jYWxsKEl0KT09PVN0cmluZy5wcm90b3R5cGUudmFsdWVPZi5jYWxsKHJ0KTp5KEl0KT95KHJ0KSYmQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKEl0KT09PUJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChydCk6'@; put 'eChJdCk/eChydCkmJkJpZ0ludC5wcm90b3R5cGUudmFsdWVPZi5jYWxsKEl0KT09PUJpZ0ludC5wcm90b3R5cGUudmFsdWVPZi5jYWxsKHJ0KTpDKHJ0KSYmU3ltYm9sLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoSXQpPT09U3ltYm9sLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwocnQpfShJdCxy'@; put 'dCkpcmV0dXJuITF9cmV0dXJuIFJlKEl0LHJ0LEtlLHR0LGxlKX1mdW5jdGlvbiBGZShJdCxydCl7cmV0dXJuIHJ0LmZpbHRlcihmdW5jdGlvbihLZSl7cmV0dXJuIFgoSXQsS2UpfSl9ZnVuY3Rpb24gUmUoSXQscnQsS2UsdHQsTmUsdXQpe2lmKDU9PT1hcmd1bWVudHMubGVuZ3RoKXt1dD1P'@; put 'YmplY3Qua2V5cyhJdCk7dmFyIEp0PU9iamVjdC5rZXlzKHJ0KTtpZih1dC5sZW5ndGghPT1KdC5sZW5ndGgpcmV0dXJuITF9Zm9yKHZhciBMdD0wO0x0PHV0Lmxlbmd0aDtMdCsrKWlmKCFaKHJ0LHV0W0x0XSkpcmV0dXJuITE7aWYoS2UmJjU9PT1hcmd1bWVudHMubGVuZ3RoKXt2YXIgUHQ9'@; put 'WShJdCk7aWYoMCE9PVB0Lmxlbmd0aCl7dmFyIG9pPTA7Zm9yKEx0PTA7THQ8UHQubGVuZ3RoO0x0Kyspe3ZhciBlbj1QdFtMdF07aWYoWChJdCxlbikpe2lmKCFYKHJ0LGVuKSlyZXR1cm4hMTt1dC5wdXNoKGVuKSxvaSsrfWVsc2UgaWYoWChydCxlbikpcmV0dXJuITF9dmFyIHNuPVkocnQp'@; put 'O2lmKFB0Lmxlbmd0aCE9PXNuLmxlbmd0aCYmRmUocnQsc24pLmxlbmd0aCE9PW9pKXJldHVybiExfWVsc2V7dmFyIElpPVkocnQpO2lmKDAhPT1JaS5sZW5ndGgmJjAhPT1GZShydCxJaSkubGVuZ3RoKXJldHVybiExfX1pZigwPT09dXQubGVuZ3RoJiYoTmU9PT1sZXx8TmU9PT13ZSYmMD09'@; put 'PUl0Lmxlbmd0aHx8MD09PUl0LnNpemUpKXJldHVybiEwO2lmKHZvaWQgMD09PXR0KXR0PXt2YWwxOm5ldyBNYXAsdmFsMjpuZXcgTWFwLHBvc2l0aW9uOjB9O2Vsc2V7dmFyIGRuPXR0LnZhbDEuZ2V0KEl0KTtpZih2b2lkIDAhPT1kbil7dmFyIGZ0PXR0LnZhbDIuZ2V0KHJ0KTtpZih2b2lk'@; put 'IDAhPT1mdClyZXR1cm4gZG49PT1mdH10dC5wb3NpdGlvbisrfXR0LnZhbDEuc2V0KEl0LHR0LnBvc2l0aW9uKSx0dC52YWwyLnNldChydCx0dC5wb3NpdGlvbik7dmFyIEZyPWZ1bmN0aW9uIG9uKEl0LHJ0LEtlLHR0LE5lLHV0KXt2YXIgSnQ9MDtpZih1dD09PVplKXtpZighZnVuY3Rpb24g'@; put 'X3QoSXQscnQsS2UsdHQpe2Zvcih2YXIgTmU9bnVsbCx1dD1qKEl0KSxKdD0wO0p0PHV0Lmxlbmd0aDtKdCsrKXt2YXIgTHQ9dXRbSnRdO2lmKCJvYmplY3QiPT09SChMdCkmJm51bGwhPT1MdCludWxsPT09TmUmJihOZT1uZXcgU2V0KSxOZS5hZGQoTHQpO2Vsc2UgaWYoIXJ0LmhhcyhMdCkp'@; put 'e2lmKEtlfHwhRGUoSXQscnQsTHQpKXJldHVybiExO251bGw9PT1OZSYmKE5lPW5ldyBTZXQpLE5lLmFkZChMdCl9fWlmKG51bGwhPT1OZSl7Zm9yKHZhciBQdD1qKHJ0KSxvaT0wO29pPFB0Lmxlbmd0aDtvaSsrKXt2YXIgZW49UHRbb2ldO2lmKCJvYmplY3QiPT09SChlbikmJm51bGwhPT1l'@; put 'bil7aWYoIUllKE5lLGVuLEtlLHR0KSlyZXR1cm4hMX1lbHNlIGlmKCFLZSYmIUl0LmhhcyhlbikmJiFJZShOZSxlbixLZSx0dCkpcmV0dXJuITF9cmV0dXJuIDA9PT1OZS5zaXplfXJldHVybiEwfShJdCxydCxLZSxOZSkpcmV0dXJuITF9ZWxzZSBpZih1dD09PVFlKXtpZighZnVuY3Rpb24g'@; put 'SmUoSXQscnQsS2UsdHQpe2Zvcih2YXIgTmU9bnVsbCx1dD1QKEl0KSxKdD0wO0p0PHV0Lmxlbmd0aDtKdCsrKXt2YXIgTHQ9RCh1dFtKdF0sMiksUHQ9THRbMF0sb2k9THRbMV07aWYoIm9iamVjdCI9PT1IKFB0KSYmbnVsbCE9PVB0KW51bGw9PT1OZSYmKE5lPW5ldyBTZXQpLE5lLmFkZChQ'@; put 'dCk7ZWxzZXt2YXIgZW49cnQuZ2V0KFB0KTtpZih2b2lkIDA9PT1lbiYmIXJ0LmhhcyhQdCl8fCFBZShvaSxlbixLZSx0dCkpe2lmKEtlfHwha2UoSXQscnQsUHQsb2ksdHQpKXJldHVybiExO251bGw9PT1OZSYmKE5lPW5ldyBTZXQpLE5lLmFkZChQdCl9fX1pZihudWxsIT09TmUpe2Zvcih2'@; put 'YXIgc249UChydCksSWk9MDtJaTxzbi5sZW5ndGg7SWkrKyl7dmFyIGRuPUQoc25bSWldLDIpLGZ0PWRuWzBdLEZyPWRuWzFdO2lmKCJvYmplY3QiPT09SChmdCkmJm51bGwhPT1mdCl7aWYoIW50KE5lLEl0LGZ0LEZyLEtlLHR0KSlyZXR1cm4hMX1lbHNlIGlmKCEoS2V8fEl0LmhhcyhmdCkm'@; put 'JkFlKEl0LmdldChmdCksRnIsITEsdHQpfHxudChOZSxJdCxmdCxGciwhMSx0dCkpKXJldHVybiExfXJldHVybiAwPT09TmUuc2l6ZX1yZXR1cm4hMH0oSXQscnQsS2UsTmUpKXJldHVybiExfWVsc2UgaWYodXQ9PT13ZSlmb3IoO0p0PEl0Lmxlbmd0aDtKdCsrKXtpZighWihJdCxKdCkpe2lm'@; put 'KFoocnQsSnQpKXJldHVybiExO2Zvcih2YXIgTHQ9T2JqZWN0LmtleXMoSXQpO0p0PEx0Lmxlbmd0aDtKdCsrKXt2YXIgUHQ9THRbSnRdO2lmKCFaKHJ0LFB0KXx8IUFlKEl0W1B0XSxydFtQdF0sS2UsTmUpKXJldHVybiExfXJldHVybiBMdC5sZW5ndGg9PT1PYmplY3Qua2V5cyhydCkubGVu'@; put 'Z3RofWlmKCFaKHJ0LEp0KXx8IUFlKEl0W0p0XSxydFtKdF0sS2UsTmUpKXJldHVybiExfWZvcihKdD0wO0p0PHR0Lmxlbmd0aDtKdCsrKXt2YXIgb2k9dHRbSnRdO2lmKCFBZShJdFtvaV0scnRbb2ldLEtlLE5lKSlyZXR1cm4hMX1yZXR1cm4hMH0oSXQscnQsS2UsdXQsdHQsTmUpO3JldHVy'@; put 'biB0dC52YWwxLmRlbGV0ZShJdCksdHQudmFsMi5kZWxldGUocnQpLEZyfWZ1bmN0aW9uIEllKEl0LHJ0LEtlLHR0KXtmb3IodmFyIE5lPWooSXQpLHV0PTA7dXQ8TmUubGVuZ3RoO3V0Kyspe3ZhciBKdD1OZVt1dF07aWYoQWUocnQsSnQsS2UsdHQpKXJldHVybiBJdC5kZWxldGUoSnQpLCEw'@; put 'fXJldHVybiExfWZ1bmN0aW9uIEhlKEl0KXtzd2l0Y2goSChJdCkpe2Nhc2UidW5kZWZpbmVkIjpyZXR1cm4gbnVsbDtjYXNlIm9iamVjdCI6cmV0dXJuO2Nhc2Uic3ltYm9sIjpyZXR1cm4hMTtjYXNlInN0cmluZyI6SXQ9K0l0O2Nhc2UibnVtYmVyIjppZihCKEl0KSlyZXR1cm4hMX1yZXR1'@; put 'cm4hMH1mdW5jdGlvbiBEZShJdCxydCxLZSl7dmFyIHR0PUhlKEtlKTtyZXR1cm4gdHQ/PyhydC5oYXModHQpJiYhSXQuaGFzKHR0KSl9ZnVuY3Rpb24ga2UoSXQscnQsS2UsdHQsTmUpe3ZhciB1dD1IZShLZSk7aWYobnVsbCE9dXQpcmV0dXJuIHV0O3ZhciBKdD1ydC5nZXQodXQpO3JldHVy'@; put 'biEodm9pZCAwPT09SnQmJiFydC5oYXModXQpfHwhQWUodHQsSnQsITEsTmUpKSYmIUl0Lmhhcyh1dCkmJkFlKHR0LEp0LCExLE5lKX1mdW5jdGlvbiBudChJdCxydCxLZSx0dCxOZSx1dCl7Zm9yKHZhciBKdD1qKEl0KSxMdD0wO0x0PEp0Lmxlbmd0aDtMdCsrKXt2YXIgUHQ9SnRbTHRdO2lm'@; put 'KEFlKEtlLFB0LE5lLHV0KSYmQWUodHQscnQuZ2V0KFB0KSxOZSx1dCkpcmV0dXJuIEl0LmRlbGV0ZShQdCksITB9cmV0dXJuITF9Y2UuZXhwb3J0cz17aXNEZWVwRXF1YWw6ZnVuY3Rpb24geXQoSXQscnQpe3JldHVybiBBZShJdCxydCwhMSl9LGlzRGVlcFN0cmljdEVxdWFsOmZ1bmN0aW9u'@; put 'IE10KEl0LHJ0KXtyZXR1cm4gQWUoSXQscnQsITApfX19LDgyMjQ6KGNlLEopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLndyYXBwZXI9ZnVuY3Rpb24gYihEKXtyZXR1cm4gRH19LDk3NDI6KGNlLEopPT57InVzZSBz'@; put 'dHJpY3QiO0ouYnl0ZUxlbmd0aD1mdW5jdGlvbiBIKEIpe3ZhciBXPUYoQiksWD1XWzFdO3JldHVybiAzKihXWzBdK1gpLzQtWH0sSi50b0J5dGVBcnJheT1mdW5jdGlvbiBqKEIpe3ZhciBXLHNlLFo9RihCKSxYPVpbMF0sUT1aWzFdLHE9bmV3IF8oZnVuY3Rpb24gUihCLFcsWil7cmV0dXJu'@; put 'IDMqKFcrWikvNC1afSgwLFgsUSkpLHRlPTAsaWU9UT4wP1gtNDpYO2ZvcihzZT0wO3NlPGllO3NlKz00KVc9RFtCLmNoYXJDb2RlQXQoc2UpXTw8MTh8RFtCLmNoYXJDb2RlQXQoc2UrMSldPDwxMnxEW0IuY2hhckNvZGVBdChzZSsyKV08PDZ8RFtCLmNoYXJDb2RlQXQoc2UrMyldLHFbdGUr'@; put 'K109Vz4+MTYmMjU1LHFbdGUrK109Vz4+OCYyNTUscVt0ZSsrXT0yNTUmVztyZXR1cm4gMj09PVEmJihXPURbQi5jaGFyQ29kZUF0KHNlKV08PDJ8RFtCLmNoYXJDb2RlQXQoc2UrMSldPj40LHFbdGUrK109MjU1JlcpLDE9PT1RJiYoVz1EW0IuY2hhckNvZGVBdChzZSldPDwxMHxEW0IuY2hh'@; put 'ckNvZGVBdChzZSsxKV08PDR8RFtCLmNoYXJDb2RlQXQoc2UrMildPj4yLHFbdGUrK109Vz4+OCYyNTUscVt0ZSsrXT0yNTUmVykscX0sSi5mcm9tQnl0ZUFycmF5PWZ1bmN0aW9uIFkoQil7Zm9yKHZhciBXLFo9Qi5sZW5ndGgsWD1aJTMsUT1bXSxxPTE2MzgzLHRlPTAsaWU9Wi1YO3RlPGll'@; put 'O3RlKz1xKVEucHVzaChMKEIsdGUsdGUrcT5pZT9pZTp0ZStxKSk7cmV0dXJuIDE9PT1YP1EucHVzaChiWyhXPUJbWi0xXSk+PjJdK2JbVzw8NCY2M10rIj09Iik6Mj09PVgmJlEucHVzaChiWyhXPShCW1otMl08PDgpK0JbWi0xXSk+PjEwXStiW1c+PjQmNjNdK2JbVzw8MiY2M10rIj0iKSxR'@; put 'LmpvaW4oIiIpfTtmb3IodmFyIGI9W10sRD1bXSxfPXR5cGVvZiBVaW50OEFycmF5PCJ1Ij9VaW50OEFycmF5OkFycmF5LHA9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLE49MDtOPDY0OysrTiliW05dPXBbTl0sRFtw'@; put 'LmNoYXJDb2RlQXQoTildPU47ZnVuY3Rpb24gRihCKXt2YXIgVz1CLmxlbmd0aDtpZihXJTQ+MCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc3RyaW5nLiBMZW5ndGggbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQiKTt2YXIgWj1CLmluZGV4T2YoIj0iKTtyZXR1cm4tMT09PVomJihaPVcpLFta'@; put 'LFo9PT1XPzA6NC1aJTRdfWZ1bmN0aW9uIFAoQil7cmV0dXJuIGJbQj4+MTgmNjNdK2JbQj4+MTImNjNdK2JbQj4+NiY2M10rYls2MyZCXX1mdW5jdGlvbiBMKEIsVyxaKXtmb3IodmFyIFE9W10scT1XO3E8WjtxKz0zKVEucHVzaChQKChCW3FdPDwxNiYxNjcxMTY4MCkrKEJbcSsxXTw8OCY2'@; put 'NTI4MCkrKDI1NSZCW3ErMl0pKSk7cmV0dXJuIFEuam9pbigiIil9RFs0NV09NjIsRFs5NV09NjN9LDM1NTA6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCxfKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcCh4LEMpe2lmKCF4KXRocm93IG5ldyBFcnJvcihDfHwiQXNzZXJ0aW9uIGZhaWxl'@; put 'ZCIpfWZ1bmN0aW9uIE4oeCxDKXt4LnN1cGVyXz1DO3ZhciBUPWZ1bmN0aW9uKCl7fTtULnByb3RvdHlwZT1DLnByb3RvdHlwZSx4LnByb3RvdHlwZT1uZXcgVCx4LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj14fWZ1bmN0aW9uIHcoeCxDLFQpe2lmKHcuaXNCTih4KSlyZXR1cm4geDt0aGlzLm5l'@; put 'Z2F0aXZlPTAsdGhpcy53b3Jkcz1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5yZWQ9bnVsbCxudWxsIT09eCYmKCgibGUiPT09Q3x8ImJlIj09PUMpJiYoVD1DLEM9MTApLHRoaXMuX2luaXQoeHx8MCxDfHwxMCxUfHwiYmUiKSl9dmFyIEY7Im9iamVjdCI9PXR5cGVvZiBEP0QuZXhwb3J0cz13'@; put 'Ol8uQk49dyx3LkJOPXcsdy53b3JkU2l6ZT0yNjt0cnl7Rj10eXBlb2Ygd2luZG93PCJ1IiYmdHlwZW9mIHdpbmRvdy5CdWZmZXI8InUiP3dpbmRvdy5CdWZmZXI6Yig2NjAxKS5CdWZmZXJ9Y2F0Y2h7fWZ1bmN0aW9uIEgoeCxDKXt2YXIgVD14LmNoYXJDb2RlQXQoQyk7cmV0dXJuIFQ+PTQ4'@; put 'JiZUPD01Nz9ULTQ4OlQ+PTY1JiZUPD03MD9ULTU1OlQ+PTk3JiZUPD0xMDI/VC04Nzp2b2lkIHAoITEsIkludmFsaWQgY2hhcmFjdGVyIGluICIreCl9ZnVuY3Rpb24gUih4LEMsVCl7dmFyIFY9SCh4LFQpO3JldHVybiBULTE+PUMmJihWfD1IKHgsVC0xKTw8NCksVn1mdW5jdGlvbiBqKHgs'@; put 'QyxULFYpe2Zvcih2YXIgVT0wLEU9MCxtPU1hdGgubWluKHgubGVuZ3RoLFQpLEE9QztBPG07QSsrKXt2YXIgYWU9eC5jaGFyQ29kZUF0KEEpLTQ4O1UqPVYsRT1hZT49NDk/YWUtNDkrMTA6YWU+PTE3P2FlLTE3KzEwOmFlLHAoYWU+PTAmJkU8ViwiSW52YWxpZCBjaGFyYWN0ZXIiKSxVKz1F'@; put 'fXJldHVybiBVfWZ1bmN0aW9uIFAoeCxDKXt4LndvcmRzPUMud29yZHMseC5sZW5ndGg9Qy5sZW5ndGgseC5uZWdhdGl2ZT1DLm5lZ2F0aXZlLHgucmVkPUMucmVkfWlmKHcuaXNCTj1mdW5jdGlvbihDKXtyZXR1cm4gQyBpbnN0YW5jZW9mIHd8fG51bGwhPT1DJiYib2JqZWN0Ij09dHlwZW9m'@; put 'IEMmJkMuY29uc3RydWN0b3Iud29yZFNpemU9PT13LndvcmRTaXplJiZBcnJheS5pc0FycmF5KEMud29yZHMpfSx3Lm1heD1mdW5jdGlvbihDLFQpe3JldHVybiBDLmNtcChUKT4wP0M6VH0sdy5taW49ZnVuY3Rpb24oQyxUKXtyZXR1cm4gQy5jbXAoVCk8MD9DOlR9LHcucHJvdG90eXBlLl9p'@; put 'bml0PWZ1bmN0aW9uKEMsVCxWKXtpZigibnVtYmVyIj09dHlwZW9mIEMpcmV0dXJuIHRoaXMuX2luaXROdW1iZXIoQyxULFYpO2lmKCJvYmplY3QiPT10eXBlb2YgQylyZXR1cm4gdGhpcy5faW5pdEFycmF5KEMsVCxWKTsiaGV4Ij09PVQmJihUPTE2KSxwKFQ9PT0oMHxUKSYmVD49MiYmVDw9'@; put 'MzYpO3ZhciBVPTA7Ii0iPT09KEM9Qy50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9nLCIiKSlbMF0mJihVKyssdGhpcy5uZWdhdGl2ZT0xKSxVPEMubGVuZ3RoJiYoMTY9PT1UP3RoaXMuX3BhcnNlSGV4KEMsVSxWKToodGhpcy5fcGFyc2VCYXNlKEMsVCxVKSwibGUiPT09ViYmdGhpcy5faW5p'@; put 'dEFycmF5KHRoaXMudG9BcnJheSgpLFQsVikpKX0sdy5wcm90b3R5cGUuX2luaXROdW1iZXI9ZnVuY3Rpb24oQyxULFYpe0M8MCYmKHRoaXMubmVnYXRpdmU9MSxDPS1DKSxDPDY3MTA4ODY0Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZDXSx0aGlzLmxlbmd0aD0xKTpDPDQ1MDM1OTk2MjczNzA0'@; put 'OTY/KHRoaXMud29yZHM9WzY3MTA4ODYzJkMsQy82NzEwODg2NCY2NzEwODg2M10sdGhpcy5sZW5ndGg9Mik6KHAoQzw5MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEwODg2MyZDLEMvNjcxMDg4NjQmNjcxMDg4NjMsMV0sdGhpcy5sZW5ndGg9MyksImxlIj09PVYmJnRoaXMuX2lu'@; put 'aXRBcnJheSh0aGlzLnRvQXJyYXkoKSxULFYpfSx3LnByb3RvdHlwZS5faW5pdEFycmF5PWZ1bmN0aW9uKEMsVCxWKXtpZihwKCJudW1iZXIiPT10eXBlb2YgQy5sZW5ndGgpLEMubGVuZ3RoPD0wKXJldHVybiB0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xLHRoaXM7dGhpcy5sZW5ndGg9'@; put 'TWF0aC5jZWlsKEMubGVuZ3RoLzMpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIFU9MDtVPHRoaXMubGVuZ3RoO1UrKyl0aGlzLndvcmRzW1VdPTA7dmFyIEUsbSxBPTA7aWYoImJlIj09PVYpZm9yKFU9Qy5sZW5ndGgtMSxFPTA7VT49MDtVLT0zKXRoaXMud29y'@; put 'ZHNbRV18PShtPUNbVV18Q1tVLTFdPDw4fENbVS0yXTw8MTYpPDxBJjY3MTA4ODYzLHRoaXMud29yZHNbRSsxXT1tPj4+MjYtQSY2NzEwODg2MywoQSs9MjQpPj0yNiYmKEEtPTI2LEUrKyk7ZWxzZSBpZigibGUiPT09Vilmb3IoVT0wLEU9MDtVPEMubGVuZ3RoO1UrPTMpdGhpcy53b3Jkc1tF'@; put 'XXw9KG09Q1tVXXxDW1UrMV08PDh8Q1tVKzJdPDwxNik8PEEmNjcxMDg4NjMsdGhpcy53b3Jkc1tFKzFdPW0+Pj4yNi1BJjY3MTA4ODYzLChBKz0yNCk+PTI2JiYoQS09MjYsRSsrKTtyZXR1cm4gdGhpcy5fc3RyaXAoKX0sdy5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKEMsVCxWKXt0'@; put 'aGlzLmxlbmd0aD1NYXRoLmNlaWwoKEMubGVuZ3RoLVQpLzYpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIFU9MDtVPHRoaXMubGVuZ3RoO1UrKyl0aGlzLndvcmRzW1VdPTA7dmFyIEEsRT0wLG09MDtpZigiYmUiPT09Vilmb3IoVT1DLmxlbmd0aC0xO1U+PVQ7'@; put 'VS09MilBPVIoQyxULFUpPDxFLHRoaXMud29yZHNbbV18PTY3MTA4ODYzJkEsRT49MTg/KEUtPTE4LHRoaXMud29yZHNbbSs9MV18PUE+Pj4yNik6RSs9ODtlbHNlIGZvcihVPShDLmxlbmd0aC1UKSUyPT0wP1QrMTpUO1U8Qy5sZW5ndGg7VSs9MilBPVIoQyxULFUpPDxFLHRoaXMud29yZHNb'@; put 'bV18PTY3MTA4ODYzJkEsRT49MTg/KEUtPTE4LHRoaXMud29yZHNbbSs9MV18PUE+Pj4yNik6RSs9ODt0aGlzLl9zdHJpcCgpfSx3LnByb3RvdHlwZS5fcGFyc2VCYXNlPWZ1bmN0aW9uKEMsVCxWKXt0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xO2Zvcih2YXIgVT0wLEU9MTtFPD02NzEw'@; put 'ODg2MztFKj1UKVUrKztVLS0sRT1FL1R8MDtmb3IodmFyIG09Qy5sZW5ndGgtVixBPW0lVSxhZT1NYXRoLm1pbihtLG0tQSkrVixuZT0wLGxlPVY7bGU8YWU7bGUrPVUpbmU9aihDLGxlLGxlK1UsVCksdGhpcy5pbXVsbihFKSx0aGlzLndvcmRzWzBdK25lPDY3MTA4ODY0P3RoaXMud29yZHNb'@; put 'MF0rPW5lOnRoaXMuX2lhZGRuKG5lKTtpZigwIT09QSl7dmFyIHdlPTE7Zm9yKG5lPWooQyxsZSxDLmxlbmd0aCxUKSxsZT0wO2xlPEE7bGUrKyl3ZSo9VDt0aGlzLmltdWxuKHdlKSx0aGlzLndvcmRzWzBdK25lPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPW5lOnRoaXMuX2lhZGRuKG5lKX10'@; put 'aGlzLl9zdHJpcCgpfSx3LnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKEMpe0Mud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIFQ9MDtUPHRoaXMubGVuZ3RoO1QrKylDLndvcmRzW1RdPXRoaXMud29yZHNbVF07Qy5sZW5ndGg9dGhpcy5sZW5ndGgsQy5uZWdhdGl2ZT10aGlz'@; put 'Lm5lZ2F0aXZlLEMucmVkPXRoaXMucmVkfSx3LnByb3RvdHlwZS5fbW92ZT1mdW5jdGlvbihDKXtQKEMsdGhpcyl9LHcucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIEM9bmV3IHcobnVsbCk7cmV0dXJuIHRoaXMuY29weShDKSxDfSx3LnByb3RvdHlwZS5fZXhwYW5kPWZ1bmN0aW9u'@; put 'KEMpe2Zvcig7dGhpcy5sZW5ndGg8QzspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO3JldHVybiB0aGlzfSx3LnByb3RvdHlwZS5fc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdOyl0aGlzLmxlbmd0aC0tO3JldHVy'@; put 'biB0aGlzLl9ub3JtU2lnbigpfSx3LnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sdHlwZW9mIFN5bWJvbDwidSImJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wu'@; put 'Zm9yKXRyeXt3LnByb3RvdHlwZVtTeW1ib2wuZm9yKCJub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbSIpXT1MfWNhdGNoe3cucHJvdG90eXBlLmluc3BlY3Q9TH1lbHNlIHcucHJvdG90eXBlLmluc3BlY3Q9TDtmdW5jdGlvbiBMKCl7cmV0dXJuKHRoaXMucmVkPyI8Qk4tUjogIjoiPEJOOiAi'@; put 'KSt0aGlzLnRvU3RyaW5nKDE2KSsiPiJ9dmFyIFk9WyIiLCIwIiwiMDAiLCIwMDAiLCIwMDAwIiwiMDAwMDAiLCIwMDAwMDAiLCIwMDAwMDAwIiwiMDAwMDAwMDAiLCIwMDAwMDAwMDAiLCIwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwIiwi'@; put 'MDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIw'@; put 'MDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0sQj1bMCwwLDI1LDE2LDEyLDExLDEwLDksOCw4LDcsNyw3LDcsNiw2LDYsNiw2LDYsNiw1LDUsNSw1LDUs'@; put 'NSw1LDUsNSw1LDUsNSw1LDUsNSw1XSxXPVswLDAsMzM1NTQ0MzIsNDMwNDY3MjEsMTY3NzcyMTYsNDg4MjgxMjUsNjA0NjYxNzYsNDAzNTM2MDcsMTY3NzcyMTYsNDMwNDY3MjEsMWU3LDE5NDg3MTcxLDM1ODMxODA4LDYyNzQ4NTE3LDc1Mjk1MzYsMTEzOTA2MjUsMTY3NzcyMTYsMjQxMzc1'@; put 'NjksMzQwMTIyMjQsNDcwNDU4ODEsNjRlNiw0MDg0MTAxLDUxNTM2MzIsNjQzNjM0Myw3OTYyNjI0LDk3NjU2MjUsMTE4ODEzNzYsMTQzNDg5MDcsMTcyMTAzNjgsMjA1MTExNDksMjQzZTUsMjg2MjkxNTEsMzM1NTQ0MzIsMzkxMzUzOTMsNDU0MzU0MjQsNTI1MjE4NzUsNjA0NjYxNzZdO2Z1'@; put 'bmN0aW9uIFEoeCxDLFQpe1QubmVnYXRpdmU9Qy5uZWdhdGl2ZV54Lm5lZ2F0aXZlO3ZhciBWPXgubGVuZ3RoK0MubGVuZ3RofDA7VC5sZW5ndGg9VixWPVYtMXwwO3ZhciBVPTB8eC53b3Jkc1swXSxFPTB8Qy53b3Jkc1swXSxtPVUqRSxhZT1tLzY3MTA4ODY0fDA7VC53b3Jkc1swXT02NzEw'@; put 'ODg2MyZtO2Zvcih2YXIgbmU9MTtuZTxWO25lKyspe2Zvcih2YXIgbGU9YWU+Pj4yNix3ZT02NzEwODg2MyZhZSxaZT1NYXRoLm1pbihuZSxDLmxlbmd0aC0xKSxRZT1NYXRoLm1heCgwLG5lLXgubGVuZ3RoKzEpO1FlPD1aZTtRZSsrKWxlKz0obT0oVT0wfHgud29yZHNbbmUtUWV8MF0pKihF'@; put 'PTB8Qy53b3Jkc1tRZV0pK3dlKS82NzEwODg2NHwwLHdlPTY3MTA4ODYzJm07VC53b3Jkc1tuZV09MHx3ZSxhZT0wfGxlfXJldHVybiAwIT09YWU/VC53b3Jkc1tuZV09MHxhZTpULmxlbmd0aC0tLFQuX3N0cmlwKCl9dy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oQyxUKXt2YXIgVjtp'@; put 'ZihUPTB8VHx8MSwxNj09PShDPUN8fDEwKXx8ImhleCI9PT1DKXtWPSIiO2Zvcih2YXIgVT0wLEU9MCxtPTA7bTx0aGlzLmxlbmd0aDttKyspe3ZhciBBPXRoaXMud29yZHNbbV0sYWU9KDE2Nzc3MjE1JihBPDxVfEUpKS50b1N0cmluZygxNik7RT1BPj4+MjQtVSYxNjc3NzIxNSwoVSs9Mik+'@; put 'PTI2JiYoVS09MjYsbS0tKSxWPTAhPT1FfHxtIT09dGhpcy5sZW5ndGgtMT9ZWzYtYWUubGVuZ3RoXSthZStWOmFlK1Z9Zm9yKDAhPT1FJiYoVj1FLnRvU3RyaW5nKDE2KStWKTtWLmxlbmd0aCVUIT0wOylWPSIwIitWO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKFY9Ii0iK1YpLFZ9aWYo'@; put 'Qz09PSgwfEMpJiZDPj0yJiZDPD0zNil7dmFyIG5lPUJbQ10sbGU9V1tDXTtWPSIiO3ZhciB3ZT10aGlzLmNsb25lKCk7Zm9yKHdlLm5lZ2F0aXZlPTA7IXdlLmlzWmVybygpOyl7dmFyIFplPXdlLm1vZHJuKGxlKS50b1N0cmluZyhDKTtWPSh3ZT13ZS5pZGl2bihsZSkpLmlzWmVybygpP1pl'@; put 'K1Y6WVtuZS1aZS5sZW5ndGhdK1plK1Z9Zm9yKHRoaXMuaXNaZXJvKCkmJihWPSIwIitWKTtWLmxlbmd0aCVUIT0wOylWPSIwIitWO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKFY9Ii0iK1YpLFZ9cCghMSwiQmFzZSBzaG91bGQgYmUgYmV0d2VlbiAyIGFuZCAzNiIpfSx3LnByb3RvdHlw'@; put 'ZS50b051bWJlcj1mdW5jdGlvbigpe3ZhciBDPXRoaXMud29yZHNbMF07cmV0dXJuIDI9PT10aGlzLmxlbmd0aD9DKz02NzEwODg2NCp0aGlzLndvcmRzWzFdOjM9PT10aGlzLmxlbmd0aCYmMT09PXRoaXMud29yZHNbMl0/Qys9NDUwMzU5OTYyNzM3MDQ5Nis2NzEwODg2NCp0aGlzLndvcmRz'@; put 'WzFdOnRoaXMubGVuZ3RoPjImJnAoITEsIk51bWJlciBjYW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLDAhPT10aGlzLm5lZ2F0aXZlPy1DOkN9LHcucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKDE2LDIpfSxGJiYody5wcm90b3R5'@; put 'cGUudG9CdWZmZXI9ZnVuY3Rpb24oQyxUKXtyZXR1cm4gdGhpcy50b0FycmF5TGlrZShGLEMsVCl9KSx3LnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKEMsVCl7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoQXJyYXksQyxUKX0sdy5wcm90b3R5cGUudG9BcnJheUxpa2U9ZnVuY3Rpb24oQyxU'@; put 'LFYpe3RoaXMuX3N0cmlwKCk7dmFyIFU9dGhpcy5ieXRlTGVuZ3RoKCksRT1WfHxNYXRoLm1heCgxLFUpO3AoVTw9RSwiYnl0ZSBhcnJheSBsb25nZXIgdGhhbiBkZXNpcmVkIGxlbmd0aCIpLHAoRT4wLCJSZXF1ZXN0ZWQgYXJyYXkgbGVuZ3RoIDw9IDAiKTt2YXIgbT1mdW5jdGlvbihDLFQp'@; put 'e3JldHVybiBDLmFsbG9jVW5zYWZlP0MuYWxsb2NVbnNhZmUoVCk6bmV3IEMoVCl9KEMsRSk7cmV0dXJuIHRoaXNbIl90b0FycmF5TGlrZSIrKCJsZSI9PT1UPyJMRSI6IkJFIildKG0sVSksbX0sdy5wcm90b3R5cGUuX3RvQXJyYXlMaWtlTEU9ZnVuY3Rpb24oQyxUKXtmb3IodmFyIFY9MCxV'@; put 'PTAsRT0wLG09MDtFPHRoaXMubGVuZ3RoO0UrKyl7dmFyIEE9dGhpcy53b3Jkc1tFXTw8bXxVO0NbVisrXT0yNTUmQSxWPEMubGVuZ3RoJiYoQ1tWKytdPUE+PjgmMjU1KSxWPEMubGVuZ3RoJiYoQ1tWKytdPUE+PjE2JjI1NSksNj09PW0/KFY8Qy5sZW5ndGgmJihDW1YrK109QT4+MjQmMjU1'@; put 'KSxVPTAsbT0wKTooVT1BPj4+MjQsbSs9Mil9aWYoVjxDLmxlbmd0aClmb3IoQ1tWKytdPVU7VjxDLmxlbmd0aDspQ1tWKytdPTB9LHcucHJvdG90eXBlLl90b0FycmF5TGlrZUJFPWZ1bmN0aW9uKEMsVCl7Zm9yKHZhciBWPUMubGVuZ3RoLTEsVT0wLEU9MCxtPTA7RTx0aGlzLmxlbmd0aDtF'@; put 'Kyspe3ZhciBBPXRoaXMud29yZHNbRV08PG18VTtDW1YtLV09MjU1JkEsVj49MCYmKENbVi0tXT1BPj44JjI1NSksVj49MCYmKENbVi0tXT1BPj4xNiYyNTUpLDY9PT1tPyhWPj0wJiYoQ1tWLS1dPUE+PjI0JjI1NSksVT0wLG09MCk6KFU9QT4+PjI0LG0rPTIpfWlmKFY+PTApZm9yKENbVi0t'@; put 'XT1VO1Y+PTA7KUNbVi0tXT0wfSx3LnByb3RvdHlwZS5fY291bnRCaXRzPU1hdGguY2x6MzI/ZnVuY3Rpb24oQyl7cmV0dXJuIDMyLU1hdGguY2x6MzIoQyl9OmZ1bmN0aW9uKEMpe3ZhciBUPUMsVj0wO3JldHVybiBUPj00MDk2JiYoVis9MTMsVD4+Pj0xMyksVD49NjQmJihWKz03LFQ+Pj49'@; put 'NyksVD49OCYmKFYrPTQsVD4+Pj00KSxUPj0yJiYoVis9MixUPj4+PTIpLFYrVH0sdy5wcm90b3R5cGUuX3plcm9CaXRzPWZ1bmN0aW9uKEMpe2lmKDA9PT1DKXJldHVybiAyNjt2YXIgVD1DLFY9MDtyZXR1cm4gODE5MSZUfHwoVis9MTMsVD4+Pj0xMyksMTI3JlR8fChWKz03LFQ+Pj49Nyks'@; put 'MTUmVHx8KFYrPTQsVD4+Pj00KSwzJlR8fChWKz0yLFQ+Pj49MiksMSZUfHxWKyssVn0sdy5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIFQ9dGhpcy5fY291bnRCaXRzKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0pO3JldHVybiAyNioodGhpcy5sZW5ndGgtMSkrVH0sdy5w'@; put 'cm90b3R5cGUuemVyb0JpdHM9ZnVuY3Rpb24oKXtpZih0aGlzLmlzWmVybygpKXJldHVybiAwO2Zvcih2YXIgQz0wLFQ9MDtUPHRoaXMubGVuZ3RoO1QrKyl7dmFyIFY9dGhpcy5femVyb0JpdHModGhpcy53b3Jkc1tUXSk7aWYoQys9ViwyNiE9PVYpYnJlYWt9cmV0dXJuIEN9LHcucHJvdG90'@; put 'eXBlLmJ5dGVMZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5jZWlsKHRoaXMuYml0TGVuZ3RoKCkvOCl9LHcucHJvdG90eXBlLnRvVHdvcz1mdW5jdGlvbihDKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/dGhpcy5hYnMoKS5pbm90bihDKS5pYWRkbigxKTp0aGlzLmNsb25lKCl9LHcu'@; put 'cHJvdG90eXBlLmZyb21Ud29zPWZ1bmN0aW9uKEMpe3JldHVybiB0aGlzLnRlc3RuKEMtMSk/dGhpcy5ub3RuKEMpLmlhZGRuKDEpLmluZWcoKTp0aGlzLmNsb25lKCl9LHcucHJvdG90eXBlLmlzTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlfSx3LnByb3RvdHlwZS5u'@; put 'ZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmluZWcoKX0sdy5wcm90b3R5cGUuaW5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzWmVybygpfHwodGhpcy5uZWdhdGl2ZV49MSksdGhpc30sdy5wcm90b3R5cGUuaXVvcj1mdW5jdGlvbihDKXtmb3IoO3RoaXMubGVuZ3RoPEMu'@; put 'bGVuZ3RoOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7Zm9yKHZhciBUPTA7VDxDLmxlbmd0aDtUKyspdGhpcy53b3Jkc1tUXT10aGlzLndvcmRzW1RdfEMud29yZHNbVF07cmV0dXJuIHRoaXMuX3N0cmlwKCl9LHcucHJvdG90eXBlLmlvcj1mdW5jdGlvbihDKXtyZXR1cm4gcCghKHRo'@; put 'aXMubmVnYXRpdmV8Qy5uZWdhdGl2ZSkpLHRoaXMuaXVvcihDKX0sdy5wcm90b3R5cGUub3I9ZnVuY3Rpb24oQyl7cmV0dXJuIHRoaXMubGVuZ3RoPkMubGVuZ3RoP3RoaXMuY2xvbmUoKS5pb3IoQyk6Qy5jbG9uZSgpLmlvcih0aGlzKX0sdy5wcm90b3R5cGUudW9yPWZ1bmN0aW9uKEMpe3Jl'@; put 'dHVybiB0aGlzLmxlbmd0aD5DLmxlbmd0aD90aGlzLmNsb25lKCkuaXVvcihDKTpDLmNsb25lKCkuaXVvcih0aGlzKX0sdy5wcm90b3R5cGUuaXVhbmQ9ZnVuY3Rpb24oQyl7dmFyIFQ7VD10aGlzLmxlbmd0aD5DLmxlbmd0aD9DOnRoaXM7Zm9yKHZhciBWPTA7VjxULmxlbmd0aDtWKyspdGhp'@; put 'cy53b3Jkc1tWXT10aGlzLndvcmRzW1ZdJkMud29yZHNbVl07cmV0dXJuIHRoaXMubGVuZ3RoPVQubGVuZ3RoLHRoaXMuX3N0cmlwKCl9LHcucHJvdG90eXBlLmlhbmQ9ZnVuY3Rpb24oQyl7cmV0dXJuIHAoISh0aGlzLm5lZ2F0aXZlfEMubmVnYXRpdmUpKSx0aGlzLml1YW5kKEMpfSx3LnBy'@; put 'b3RvdHlwZS5hbmQ9ZnVuY3Rpb24oQyl7cmV0dXJuIHRoaXMubGVuZ3RoPkMubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYW5kKEMpOkMuY2xvbmUoKS5pYW5kKHRoaXMpfSx3LnByb3RvdHlwZS51YW5kPWZ1bmN0aW9uKEMpe3JldHVybiB0aGlzLmxlbmd0aD5DLmxlbmd0aD90aGlzLmNsb25lKCku'@; put 'aXVhbmQoQyk6Qy5jbG9uZSgpLml1YW5kKHRoaXMpfSx3LnByb3RvdHlwZS5pdXhvcj1mdW5jdGlvbihDKXt2YXIgVCxWO3RoaXMubGVuZ3RoPkMubGVuZ3RoPyhUPXRoaXMsVj1DKTooVD1DLFY9dGhpcyk7Zm9yKHZhciBVPTA7VTxWLmxlbmd0aDtVKyspdGhpcy53b3Jkc1tVXT1ULndvcmRz'@; put 'W1VdXlYud29yZHNbVV07aWYodGhpcyE9PVQpZm9yKDtVPFQubGVuZ3RoO1UrKyl0aGlzLndvcmRzW1VdPVQud29yZHNbVV07cmV0dXJuIHRoaXMubGVuZ3RoPVQubGVuZ3RoLHRoaXMuX3N0cmlwKCl9LHcucHJvdG90eXBlLml4b3I9ZnVuY3Rpb24oQyl7cmV0dXJuIHAoISh0aGlzLm5lZ2F0'@; put 'aXZlfEMubmVnYXRpdmUpKSx0aGlzLml1eG9yKEMpfSx3LnByb3RvdHlwZS54b3I9ZnVuY3Rpb24oQyl7cmV0dXJuIHRoaXMubGVuZ3RoPkMubGVuZ3RoP3RoaXMuY2xvbmUoKS5peG9yKEMpOkMuY2xvbmUoKS5peG9yKHRoaXMpfSx3LnByb3RvdHlwZS51eG9yPWZ1bmN0aW9uKEMpe3JldHVy'@; put 'biB0aGlzLmxlbmd0aD5DLmxlbmd0aD90aGlzLmNsb25lKCkuaXV4b3IoQyk6Qy5jbG9uZSgpLml1eG9yKHRoaXMpfSx3LnByb3RvdHlwZS5pbm90bj1mdW5jdGlvbihDKXtwKCJudW1iZXIiPT10eXBlb2YgQyYmQz49MCk7dmFyIFQ9MHxNYXRoLmNlaWwoQy8yNiksVj1DJTI2O3RoaXMuX2V4'@; put 'cGFuZChUKSxWPjAmJlQtLTtmb3IodmFyIFU9MDtVPFQ7VSsrKXRoaXMud29yZHNbVV09NjcxMDg4NjMmfnRoaXMud29yZHNbVV07cmV0dXJuIFY+MCYmKHRoaXMud29yZHNbVV09fnRoaXMud29yZHNbVV0mNjcxMDg4NjM+PjI2LVYpLHRoaXMuX3N0cmlwKCl9LHcucHJvdG90eXBlLm5vdG49'@; put 'ZnVuY3Rpb24oQyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbm90bihDKX0sdy5wcm90b3R5cGUuc2V0bj1mdW5jdGlvbihDLFQpe3AoIm51bWJlciI9PXR5cGVvZiBDJiZDPj0wKTt2YXIgVj1DLzI2fDAsVT1DJTI2O3JldHVybiB0aGlzLl9leHBhbmQoVisxKSx0aGlzLndvcmRzW1ZdPVQ/dGhp'@; put 'cy53b3Jkc1tWXXwxPDxVOnRoaXMud29yZHNbVl0mfigxPDxVKSx0aGlzLl9zdHJpcCgpfSx3LnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKEMpe3ZhciBULFYsVTtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PUMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCxUPXRoaXMuaXN1YihD'@; put 'KSx0aGlzLm5lZ2F0aXZlXj0xLHRoaXMuX25vcm1TaWduKCk7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT1DLm5lZ2F0aXZlKXJldHVybiBDLm5lZ2F0aXZlPTAsVD10aGlzLmlzdWIoQyksQy5uZWdhdGl2ZT0xLFQuX25vcm1TaWduKCk7dGhpcy5sZW5ndGg+Qy5sZW5ndGg/KFY9dGhpcyxV'@; put 'PUMpOihWPUMsVT10aGlzKTtmb3IodmFyIEU9MCxtPTA7bTxVLmxlbmd0aDttKyspdGhpcy53b3Jkc1ttXT02NzEwODg2MyYoVD0oMHxWLndvcmRzW21dKSsoMHxVLndvcmRzW21dKStFKSxFPVQ+Pj4yNjtmb3IoOzAhPT1FJiZtPFYubGVuZ3RoO20rKyl0aGlzLndvcmRzW21dPTY3MTA4ODYz'@; put 'JihUPSgwfFYud29yZHNbbV0pK0UpLEU9VD4+PjI2O2lmKHRoaXMubGVuZ3RoPVYubGVuZ3RoLDAhPT1FKXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPUUsdGhpcy5sZW5ndGgrKztlbHNlIGlmKFYhPT10aGlzKWZvcig7bTxWLmxlbmd0aDttKyspdGhpcy53b3Jkc1ttXT1WLndvcmRzW21dO3Jl'@; put 'dHVybiB0aGlzfSx3LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oQyl7dmFyIFQ7cmV0dXJuIDAhPT1DLm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oQy5uZWdhdGl2ZT0wLFQ9dGhpcy5zdWIoQyksQy5uZWdhdGl2ZV49MSxUKTowPT09Qy5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/'@; put 'KHRoaXMubmVnYXRpdmU9MCxUPUMuc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSxUKTp0aGlzLmxlbmd0aD5DLmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZChDKTpDLmNsb25lKCkuaWFkZCh0aGlzKX0sdy5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihDKXtpZigwIT09Qy5uZWdhdGl2ZSl7Qy5u'@; put 'ZWdhdGl2ZT0wO3ZhciBUPXRoaXMuaWFkZChDKTtyZXR1cm4gQy5uZWdhdGl2ZT0xLFQuX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGQoQyksdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIFUsRSxWPXRo'@; put 'aXMuY21wKEMpO2lmKDA9PT1WKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpcztWPjA/KFU9dGhpcyxFPUMpOihVPUMsRT10aGlzKTtmb3IodmFyIG09MCxBPTA7QTxFLmxlbmd0aDtBKyspbT0oVD0oMHxVLndvcmRzW0FdKS0oMHxFLndv'@; put 'cmRzW0FdKSttKT4+MjYsdGhpcy53b3Jkc1tBXT02NzEwODg2MyZUO2Zvcig7MCE9PW0mJkE8VS5sZW5ndGg7QSsrKW09KFQ9KDB8VS53b3Jkc1tBXSkrbSk+PjI2LHRoaXMud29yZHNbQV09NjcxMDg4NjMmVDtpZigwPT09bSYmQTxVLmxlbmd0aCYmVSE9PXRoaXMpZm9yKDtBPFUubGVuZ3Ro'@; put 'O0ErKyl0aGlzLndvcmRzW0FdPVUud29yZHNbQV07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLEEpLFUhPT10aGlzJiYodGhpcy5uZWdhdGl2ZT0xKSx0aGlzLl9zdHJpcCgpfSx3LnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oQyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5p'@; put 'c3ViKEMpfTt2YXIgcT1mdW5jdGlvbihDLFQsVil7dmFyIGFlLG5lLGxlLFU9Qy53b3JkcyxFPVQud29yZHMsbT1WLndvcmRzLEE9MCx3ZT0wfFVbMF0sWmU9ODE5MSZ3ZSxRZT13ZT4+PjEzLGF0PTB8VVsxXSx4ZT04MTkxJmF0LHZlPWF0Pj4+MTMscWU9MHxVWzJdLGplPTgxOTEmcWUsQWU9'@; put 'cWU+Pj4xMyxGZT0wfFVbM10sUmU9ODE5MSZGZSxJZT1GZT4+PjEzLEhlPTB8VVs0XSxEZT04MTkxJkhlLGtlPUhlPj4+MTMsX3Q9MHxVWzVdLG50PTgxOTEmX3QsSmU9X3Q+Pj4xMyxvbj0wfFVbNl0seXQ9ODE5MSZvbixNdD1vbj4+PjEzLEl0PTB8VVs3XSxydD04MTkxJkl0LEtlPUl0Pj4+'@; put 'MTMsdHQ9MHxVWzhdLE5lPTgxOTEmdHQsdXQ9dHQ+Pj4xMyxKdD0wfFVbOV0sTHQ9ODE5MSZKdCxQdD1KdD4+PjEzLG9pPTB8RVswXSxlbj04MTkxJm9pLHNuPW9pPj4+MTMsSWk9MHxFWzFdLGRuPTgxOTEmSWksZnQ9SWk+Pj4xMyxGcj0wfEVbMl0sWnQ9ODE5MSZGcixrdD1Gcj4+PjEzLExu'@; put 'PTB8RVszXSxvdD04MTkxJkxuLHp0PUxuPj4+MTMsbmk9MHxFWzRdLFdlPTgxOTEmbmksQXQ9bmk+Pj4xMyxpcj0wfEVbNV0saHQ9ODE5MSZpcixFdD1pcj4+PjEzLHpuPTB8RVs2XSxhbj04MTkxJnpuLGp0PXpuPj4+MTMsZGk9MHxFWzddLGNuPTgxOTEmZGksZm49ZGk+Pj4xMyxEaT0wfEVb'@; put 'OF0sUXQ9ODE5MSZEaSx0bj1EaT4+PjEzLGNhPTB8RVs5XSx4aT04MTkxJmNhLHlyPWNhPj4+MTM7Vi5uZWdhdGl2ZT1DLm5lZ2F0aXZlXlQubmVnYXRpdmUsVi5sZW5ndGg9MTk7dmFyIEduPShBKyhhZT1NYXRoLmltdWwoWmUsZW4pKXwwKSsoKDgxOTEmKG5lPShuZT1NYXRoLmltdWwoWmUs'@; put 'c24pKStNYXRoLmltdWwoUWUsZW4pfDApKTw8MTMpfDA7QT0oKGxlPU1hdGguaW11bChRZSxzbikpKyhuZT4+PjEzKXwwKSsoR24+Pj4yNil8MCxHbiY9NjcxMDg4NjMsYWU9TWF0aC5pbXVsKHhlLGVuKSxuZT0obmU9TWF0aC5pbXVsKHhlLHNuKSkrTWF0aC5pbXVsKHZlLGVuKXwwLGxlPU1h'@; put 'dGguaW11bCh2ZSxzbik7dmFyIEtpPShBKyhhZT1hZStNYXRoLmltdWwoWmUsZG4pfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bChaZSxmdCl8MCkrTWF0aC5pbXVsKFFlLGRuKXwwKSk8PDEzKXwwO0E9KChsZT1sZStNYXRoLmltdWwoUWUsZnQpfDApKyhuZT4+PjEzKXwwKSso'@; put 'S2k+Pj4yNil8MCxLaSY9NjcxMDg4NjMsYWU9TWF0aC5pbXVsKGplLGVuKSxuZT0obmU9TWF0aC5pbXVsKGplLHNuKSkrTWF0aC5pbXVsKEFlLGVuKXwwLGxlPU1hdGguaW11bChBZSxzbiksYWU9YWUrTWF0aC5pbXVsKHhlLGRuKXwwLG5lPShuZT1uZStNYXRoLmltdWwoeGUsZnQpfDApK01h'@; put 'dGguaW11bCh2ZSxkbil8MCxsZT1sZStNYXRoLmltdWwodmUsZnQpfDA7dmFyIEpyPShBKyhhZT1hZStNYXRoLmltdWwoWmUsWnQpfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bChaZSxrdCl8MCkrTWF0aC5pbXVsKFFlLFp0KXwwKSk8PDEzKXwwO0E9KChsZT1sZStNYXRoLmlt'@; put 'dWwoUWUsa3QpfDApKyhuZT4+PjEzKXwwKSsoSnI+Pj4yNil8MCxKciY9NjcxMDg4NjMsYWU9TWF0aC5pbXVsKFJlLGVuKSxuZT0obmU9TWF0aC5pbXVsKFJlLHNuKSkrTWF0aC5pbXVsKEllLGVuKXwwLGxlPU1hdGguaW11bChJZSxzbiksYWU9YWUrTWF0aC5pbXVsKGplLGRuKXwwLG5lPShu'@; put 'ZT1uZStNYXRoLmltdWwoamUsZnQpfDApK01hdGguaW11bChBZSxkbil8MCxsZT1sZStNYXRoLmltdWwoQWUsZnQpfDAsYWU9YWUrTWF0aC5pbXVsKHhlLFp0KXwwLG5lPShuZT1uZStNYXRoLmltdWwoeGUsa3QpfDApK01hdGguaW11bCh2ZSxadCl8MCxsZT1sZStNYXRoLmltdWwodmUsa3Qp'@; put 'fDA7dmFyIFFyPShBKyhhZT1hZStNYXRoLmltdWwoWmUsb3QpfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bChaZSx6dCl8MCkrTWF0aC5pbXVsKFFlLG90KXwwKSk8PDEzKXwwO0E9KChsZT1sZStNYXRoLmltdWwoUWUsenQpfDApKyhuZT4+PjEzKXwwKSsoUXI+Pj4yNil8MCxR'@; put 'ciY9NjcxMDg4NjMsYWU9TWF0aC5pbXVsKERlLGVuKSxuZT0obmU9TWF0aC5pbXVsKERlLHNuKSkrTWF0aC5pbXVsKGtlLGVuKXwwLGxlPU1hdGguaW11bChrZSxzbiksYWU9YWUrTWF0aC5pbXVsKFJlLGRuKXwwLG5lPShuZT1uZStNYXRoLmltdWwoUmUsZnQpfDApK01hdGguaW11bChJZSxk'@; put 'bil8MCxsZT1sZStNYXRoLmltdWwoSWUsZnQpfDAsYWU9YWUrTWF0aC5pbXVsKGplLFp0KXwwLG5lPShuZT1uZStNYXRoLmltdWwoamUsa3QpfDApK01hdGguaW11bChBZSxadCl8MCxsZT1sZStNYXRoLmltdWwoQWUsa3QpfDAsYWU9YWUrTWF0aC5pbXVsKHhlLG90KXwwLG5lPShuZT1uZStN'@; put 'YXRoLmltdWwoeGUsenQpfDApK01hdGguaW11bCh2ZSxvdCl8MCxsZT1sZStNYXRoLmltdWwodmUsenQpfDA7dmFyIE5pPShBKyhhZT1hZStNYXRoLmltdWwoWmUsV2UpfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bChaZSxBdCl8MCkrTWF0aC5pbXVsKFFlLFdlKXwwKSk8PDEz'@; put 'KXwwO0E9KChsZT1sZStNYXRoLmltdWwoUWUsQXQpfDApKyhuZT4+PjEzKXwwKSsoTmk+Pj4yNil8MCxOaSY9NjcxMDg4NjMsYWU9TWF0aC5pbXVsKG50LGVuKSxuZT0obmU9TWF0aC5pbXVsKG50LHNuKSkrTWF0aC5pbXVsKEplLGVuKXwwLGxlPU1hdGguaW11bChKZSxzbiksYWU9YWUrTWF0'@; put 'aC5pbXVsKERlLGRuKXwwLG5lPShuZT1uZStNYXRoLmltdWwoRGUsZnQpfDApK01hdGguaW11bChrZSxkbil8MCxsZT1sZStNYXRoLmltdWwoa2UsZnQpfDAsYWU9YWUrTWF0aC5pbXVsKFJlLFp0KXwwLG5lPShuZT1uZStNYXRoLmltdWwoUmUsa3QpfDApK01hdGguaW11bChJZSxadCl8MCxs'@; put 'ZT1sZStNYXRoLmltdWwoSWUsa3QpfDAsYWU9YWUrTWF0aC5pbXVsKGplLG90KXwwLG5lPShuZT1uZStNYXRoLmltdWwoamUsenQpfDApK01hdGguaW11bChBZSxvdCl8MCxsZT1sZStNYXRoLmltdWwoQWUsenQpfDAsYWU9YWUrTWF0aC5pbXVsKHhlLFdlKXwwLG5lPShuZT1uZStNYXRoLmlt'@; put 'dWwoeGUsQXQpfDApK01hdGguaW11bCh2ZSxXZSl8MCxsZT1sZStNYXRoLmltdWwodmUsQXQpfDA7dmFyIEhpPShBKyhhZT1hZStNYXRoLmltdWwoWmUsaHQpfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bChaZSxFdCl8MCkrTWF0aC5pbXVsKFFlLGh0KXwwKSk8PDEzKXwwO0E9'@; put 'KChsZT1sZStNYXRoLmltdWwoUWUsRXQpfDApKyhuZT4+PjEzKXwwKSsoSGk+Pj4yNil8MCxIaSY9NjcxMDg4NjMsYWU9TWF0aC5pbXVsKHl0LGVuKSxuZT0obmU9TWF0aC5pbXVsKHl0LHNuKSkrTWF0aC5pbXVsKE10LGVuKXwwLGxlPU1hdGguaW11bChNdCxzbiksYWU9YWUrTWF0aC5pbXVs'@; put 'KG50LGRuKXwwLG5lPShuZT1uZStNYXRoLmltdWwobnQsZnQpfDApK01hdGguaW11bChKZSxkbil8MCxsZT1sZStNYXRoLmltdWwoSmUsZnQpfDAsYWU9YWUrTWF0aC5pbXVsKERlLFp0KXwwLG5lPShuZT1uZStNYXRoLmltdWwoRGUsa3QpfDApK01hdGguaW11bChrZSxadCl8MCxsZT1sZStN'@; put 'YXRoLmltdWwoa2Usa3QpfDAsYWU9YWUrTWF0aC5pbXVsKFJlLG90KXwwLG5lPShuZT1uZStNYXRoLmltdWwoUmUsenQpfDApK01hdGguaW11bChJZSxvdCl8MCxsZT1sZStNYXRoLmltdWwoSWUsenQpfDAsYWU9YWUrTWF0aC5pbXVsKGplLFdlKXwwLG5lPShuZT1uZStNYXRoLmltdWwoamUs'@; put 'QXQpfDApK01hdGguaW11bChBZSxXZSl8MCxsZT1sZStNYXRoLmltdWwoQWUsQXQpfDAsYWU9YWUrTWF0aC5pbXVsKHhlLGh0KXwwLG5lPShuZT1uZStNYXRoLmltdWwoeGUsRXQpfDApK01hdGguaW11bCh2ZSxodCl8MCxsZT1sZStNYXRoLmltdWwodmUsRXQpfDA7dmFyIElhPShBKyhhZT1h'@; put 'ZStNYXRoLmltdWwoWmUsYW4pfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bChaZSxqdCl8MCkrTWF0aC5pbXVsKFFlLGFuKXwwKSk8PDEzKXwwO0E9KChsZT1sZStNYXRoLmltdWwoUWUsanQpfDApKyhuZT4+PjEzKXwwKSsoSWE+Pj4yNil8MCxJYSY9NjcxMDg4NjMsYWU9TWF0'@; put 'aC5pbXVsKHJ0LGVuKSxuZT0obmU9TWF0aC5pbXVsKHJ0LHNuKSkrTWF0aC5pbXVsKEtlLGVuKXwwLGxlPU1hdGguaW11bChLZSxzbiksYWU9YWUrTWF0aC5pbXVsKHl0LGRuKXwwLG5lPShuZT1uZStNYXRoLmltdWwoeXQsZnQpfDApK01hdGguaW11bChNdCxkbil8MCxsZT1sZStNYXRoLmlt'@; put 'dWwoTXQsZnQpfDAsYWU9YWUrTWF0aC5pbXVsKG50LFp0KXwwLG5lPShuZT1uZStNYXRoLmltdWwobnQsa3QpfDApK01hdGguaW11bChKZSxadCl8MCxsZT1sZStNYXRoLmltdWwoSmUsa3QpfDAsYWU9YWUrTWF0aC5pbXVsKERlLG90KXwwLG5lPShuZT1uZStNYXRoLmltdWwoRGUsenQpfDAp'@; put 'K01hdGguaW11bChrZSxvdCl8MCxsZT1sZStNYXRoLmltdWwoa2UsenQpfDAsYWU9YWUrTWF0aC5pbXVsKFJlLFdlKXwwLG5lPShuZT1uZStNYXRoLmltdWwoUmUsQXQpfDApK01hdGguaW11bChJZSxXZSl8MCxsZT1sZStNYXRoLmltdWwoSWUsQXQpfDAsYWU9YWUrTWF0aC5pbXVsKGplLGh0'@; put 'KXwwLG5lPShuZT1uZStNYXRoLmltdWwoamUsRXQpfDApK01hdGguaW11bChBZSxodCl8MCxsZT1sZStNYXRoLmltdWwoQWUsRXQpfDAsYWU9YWUrTWF0aC5pbXVsKHhlLGFuKXwwLG5lPShuZT1uZStNYXRoLmltdWwoeGUsanQpfDApK01hdGguaW11bCh2ZSxhbil8MCxsZT1sZStNYXRoLmlt'@; put 'dWwodmUsanQpfDA7dmFyIFByPShBKyhhZT1hZStNYXRoLmltdWwoWmUsY24pfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bChaZSxmbil8MCkrTWF0aC5pbXVsKFFlLGNuKXwwKSk8PDEzKXwwO0E9KChsZT1sZStNYXRoLmltdWwoUWUsZm4pfDApKyhuZT4+PjEzKXwwKSsoUHI+'@; put 'Pj4yNil8MCxQciY9NjcxMDg4NjMsYWU9TWF0aC5pbXVsKE5lLGVuKSxuZT0obmU9TWF0aC5pbXVsKE5lLHNuKSkrTWF0aC5pbXVsKHV0LGVuKXwwLGxlPU1hdGguaW11bCh1dCxzbiksYWU9YWUrTWF0aC5pbXVsKHJ0LGRuKXwwLG5lPShuZT1uZStNYXRoLmltdWwocnQsZnQpfDApK01hdGgu'@; put 'aW11bChLZSxkbil8MCxsZT1sZStNYXRoLmltdWwoS2UsZnQpfDAsYWU9YWUrTWF0aC5pbXVsKHl0LFp0KXwwLG5lPShuZT1uZStNYXRoLmltdWwoeXQsa3QpfDApK01hdGguaW11bChNdCxadCl8MCxsZT1sZStNYXRoLmltdWwoTXQsa3QpfDAsYWU9YWUrTWF0aC5pbXVsKG50LG90KXwwLG5l'@; put 'PShuZT1uZStNYXRoLmltdWwobnQsenQpfDApK01hdGguaW11bChKZSxvdCl8MCxsZT1sZStNYXRoLmltdWwoSmUsenQpfDAsYWU9YWUrTWF0aC5pbXVsKERlLFdlKXwwLG5lPShuZT1uZStNYXRoLmltdWwoRGUsQXQpfDApK01hdGguaW11bChrZSxXZSl8MCxsZT1sZStNYXRoLmltdWwoa2Us'@; put 'QXQpfDAsYWU9YWUrTWF0aC5pbXVsKFJlLGh0KXwwLG5lPShuZT1uZStNYXRoLmltdWwoUmUsRXQpfDApK01hdGguaW11bChJZSxodCl8MCxsZT1sZStNYXRoLmltdWwoSWUsRXQpfDAsYWU9YWUrTWF0aC5pbXVsKGplLGFuKXwwLG5lPShuZT1uZStNYXRoLmltdWwoamUsanQpfDApK01hdGgu'@; put 'aW11bChBZSxhbil8MCxsZT1sZStNYXRoLmltdWwoQWUsanQpfDAsYWU9YWUrTWF0aC5pbXVsKHhlLGNuKXwwLG5lPShuZT1uZStNYXRoLmltdWwoeGUsZm4pfDApK01hdGguaW11bCh2ZSxjbil8MCxsZT1sZStNYXRoLmltdWwodmUsZm4pfDA7dmFyIFlpPShBKyhhZT1hZStNYXRoLmltdWwo'@; put 'WmUsUXQpfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bChaZSx0bil8MCkrTWF0aC5pbXVsKFFlLFF0KXwwKSk8PDEzKXwwO0E9KChsZT1sZStNYXRoLmltdWwoUWUsdG4pfDApKyhuZT4+PjEzKXwwKSsoWWk+Pj4yNil8MCxZaSY9NjcxMDg4NjMsYWU9TWF0aC5pbXVsKEx0LGVu'@; put 'KSxuZT0obmU9TWF0aC5pbXVsKEx0LHNuKSkrTWF0aC5pbXVsKFB0LGVuKXwwLGxlPU1hdGguaW11bChQdCxzbiksYWU9YWUrTWF0aC5pbXVsKE5lLGRuKXwwLG5lPShuZT1uZStNYXRoLmltdWwoTmUsZnQpfDApK01hdGguaW11bCh1dCxkbil8MCxsZT1sZStNYXRoLmltdWwodXQsZnQpfDAs'@; put 'YWU9YWUrTWF0aC5pbXVsKHJ0LFp0KXwwLG5lPShuZT1uZStNYXRoLmltdWwocnQsa3QpfDApK01hdGguaW11bChLZSxadCl8MCxsZT1sZStNYXRoLmltdWwoS2Usa3QpfDAsYWU9YWUrTWF0aC5pbXVsKHl0LG90KXwwLG5lPShuZT1uZStNYXRoLmltdWwoeXQsenQpfDApK01hdGguaW11bChN'@; put 'dCxvdCl8MCxsZT1sZStNYXRoLmltdWwoTXQsenQpfDAsYWU9YWUrTWF0aC5pbXVsKG50LFdlKXwwLG5lPShuZT1uZStNYXRoLmltdWwobnQsQXQpfDApK01hdGguaW11bChKZSxXZSl8MCxsZT1sZStNYXRoLmltdWwoSmUsQXQpfDAsYWU9YWUrTWF0aC5pbXVsKERlLGh0KXwwLG5lPShuZT1u'@; put 'ZStNYXRoLmltdWwoRGUsRXQpfDApK01hdGguaW11bChrZSxodCl8MCxsZT1sZStNYXRoLmltdWwoa2UsRXQpfDAsYWU9YWUrTWF0aC5pbXVsKFJlLGFuKXwwLG5lPShuZT1uZStNYXRoLmltdWwoUmUsanQpfDApK01hdGguaW11bChJZSxhbil8MCxsZT1sZStNYXRoLmltdWwoSWUsanQpfDAs'@; put 'YWU9YWUrTWF0aC5pbXVsKGplLGNuKXwwLG5lPShuZT1uZStNYXRoLmltdWwoamUsZm4pfDApK01hdGguaW11bChBZSxjbil8MCxsZT1sZStNYXRoLmltdWwoQWUsZm4pfDAsYWU9YWUrTWF0aC5pbXVsKHhlLFF0KXwwLG5lPShuZT1uZStNYXRoLmltdWwoeGUsdG4pfDApK01hdGguaW11bCh2'@; put 'ZSxRdCl8MCxsZT1sZStNYXRoLmltdWwodmUsdG4pfDA7dmFyIGZhPShBKyhhZT1hZStNYXRoLmltdWwoWmUseGkpfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bChaZSx5cil8MCkrTWF0aC5pbXVsKFFlLHhpKXwwKSk8PDEzKXwwO0E9KChsZT1sZStNYXRoLmltdWwoUWUseXIp'@; put 'fDApKyhuZT4+PjEzKXwwKSsoZmE+Pj4yNil8MCxmYSY9NjcxMDg4NjMsYWU9TWF0aC5pbXVsKEx0LGRuKSxuZT0obmU9TWF0aC5pbXVsKEx0LGZ0KSkrTWF0aC5pbXVsKFB0LGRuKXwwLGxlPU1hdGguaW11bChQdCxmdCksYWU9YWUrTWF0aC5pbXVsKE5lLFp0KXwwLG5lPShuZT1uZStNYXRo'@; put 'LmltdWwoTmUsa3QpfDApK01hdGguaW11bCh1dCxadCl8MCxsZT1sZStNYXRoLmltdWwodXQsa3QpfDAsYWU9YWUrTWF0aC5pbXVsKHJ0LG90KXwwLG5lPShuZT1uZStNYXRoLmltdWwocnQsenQpfDApK01hdGguaW11bChLZSxvdCl8MCxsZT1sZStNYXRoLmltdWwoS2UsenQpfDAsYWU9YWUr'@; put 'TWF0aC5pbXVsKHl0LFdlKXwwLG5lPShuZT1uZStNYXRoLmltdWwoeXQsQXQpfDApK01hdGguaW11bChNdCxXZSl8MCxsZT1sZStNYXRoLmltdWwoTXQsQXQpfDAsYWU9YWUrTWF0aC5pbXVsKG50LGh0KXwwLG5lPShuZT1uZStNYXRoLmltdWwobnQsRXQpfDApK01hdGguaW11bChKZSxodCl8'@; put 'MCxsZT1sZStNYXRoLmltdWwoSmUsRXQpfDAsYWU9YWUrTWF0aC5pbXVsKERlLGFuKXwwLG5lPShuZT1uZStNYXRoLmltdWwoRGUsanQpfDApK01hdGguaW11bChrZSxhbil8MCxsZT1sZStNYXRoLmltdWwoa2UsanQpfDAsYWU9YWUrTWF0aC5pbXVsKFJlLGNuKXwwLG5lPShuZT1uZStNYXRo'@; put 'LmltdWwoUmUsZm4pfDApK01hdGguaW11bChJZSxjbil8MCxsZT1sZStNYXRoLmltdWwoSWUsZm4pfDAsYWU9YWUrTWF0aC5pbXVsKGplLFF0KXwwLG5lPShuZT1uZStNYXRoLmltdWwoamUsdG4pfDApK01hdGguaW11bChBZSxRdCl8MCxsZT1sZStNYXRoLmltdWwoQWUsdG4pfDA7dmFyIG5y'@; put 'PShBKyhhZT1hZStNYXRoLmltdWwoeGUseGkpfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bCh4ZSx5cil8MCkrTWF0aC5pbXVsKHZlLHhpKXwwKSk8PDEzKXwwO0E9KChsZT1sZStNYXRoLmltdWwodmUseXIpfDApKyhuZT4+PjEzKXwwKSsobnI+Pj4yNil8MCxuciY9NjcxMDg4'@; put 'NjMsYWU9TWF0aC5pbXVsKEx0LFp0KSxuZT0obmU9TWF0aC5pbXVsKEx0LGt0KSkrTWF0aC5pbXVsKFB0LFp0KXwwLGxlPU1hdGguaW11bChQdCxrdCksYWU9YWUrTWF0aC5pbXVsKE5lLG90KXwwLG5lPShuZT1uZStNYXRoLmltdWwoTmUsenQpfDApK01hdGguaW11bCh1dCxvdCl8MCxsZT1s'@; put 'ZStNYXRoLmltdWwodXQsenQpfDAsYWU9YWUrTWF0aC5pbXVsKHJ0LFdlKXwwLG5lPShuZT1uZStNYXRoLmltdWwocnQsQXQpfDApK01hdGguaW11bChLZSxXZSl8MCxsZT1sZStNYXRoLmltdWwoS2UsQXQpfDAsYWU9YWUrTWF0aC5pbXVsKHl0LGh0KXwwLG5lPShuZT1uZStNYXRoLmltdWwo'@; put 'eXQsRXQpfDApK01hdGguaW11bChNdCxodCl8MCxsZT1sZStNYXRoLmltdWwoTXQsRXQpfDAsYWU9YWUrTWF0aC5pbXVsKG50LGFuKXwwLG5lPShuZT1uZStNYXRoLmltdWwobnQsanQpfDApK01hdGguaW11bChKZSxhbil8MCxsZT1sZStNYXRoLmltdWwoSmUsanQpfDAsYWU9YWUrTWF0aC5p'@; put 'bXVsKERlLGNuKXwwLG5lPShuZT1uZStNYXRoLmltdWwoRGUsZm4pfDApK01hdGguaW11bChrZSxjbil8MCxsZT1sZStNYXRoLmltdWwoa2UsZm4pfDAsYWU9YWUrTWF0aC5pbXVsKFJlLFF0KXwwLG5lPShuZT1uZStNYXRoLmltdWwoUmUsdG4pfDApK01hdGguaW11bChJZSxRdCl8MCxsZT1s'@; put 'ZStNYXRoLmltdWwoSWUsdG4pfDA7dmFyIG9hPShBKyhhZT1hZStNYXRoLmltdWwoamUseGkpfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bChqZSx5cil8MCkrTWF0aC5pbXVsKEFlLHhpKXwwKSk8PDEzKXwwO0E9KChsZT1sZStNYXRoLmltdWwoQWUseXIpfDApKyhuZT4+PjEz'@; put 'KXwwKSsob2E+Pj4yNil8MCxvYSY9NjcxMDg4NjMsYWU9TWF0aC5pbXVsKEx0LG90KSxuZT0obmU9TWF0aC5pbXVsKEx0LHp0KSkrTWF0aC5pbXVsKFB0LG90KXwwLGxlPU1hdGguaW11bChQdCx6dCksYWU9YWUrTWF0aC5pbXVsKE5lLFdlKXwwLG5lPShuZT1uZStNYXRoLmltdWwoTmUsQXQp'@; put 'fDApK01hdGguaW11bCh1dCxXZSl8MCxsZT1sZStNYXRoLmltdWwodXQsQXQpfDAsYWU9YWUrTWF0aC5pbXVsKHJ0LGh0KXwwLG5lPShuZT1uZStNYXRoLmltdWwocnQsRXQpfDApK01hdGguaW11bChLZSxodCl8MCxsZT1sZStNYXRoLmltdWwoS2UsRXQpfDAsYWU9YWUrTWF0aC5pbXVsKHl0'@; put 'LGFuKXwwLG5lPShuZT1uZStNYXRoLmltdWwoeXQsanQpfDApK01hdGguaW11bChNdCxhbil8MCxsZT1sZStNYXRoLmltdWwoTXQsanQpfDAsYWU9YWUrTWF0aC5pbXVsKG50LGNuKXwwLG5lPShuZT1uZStNYXRoLmltdWwobnQsZm4pfDApK01hdGguaW11bChKZSxjbil8MCxsZT1sZStNYXRo'@; put 'LmltdWwoSmUsZm4pfDAsYWU9YWUrTWF0aC5pbXVsKERlLFF0KXwwLG5lPShuZT1uZStNYXRoLmltdWwoRGUsdG4pfDApK01hdGguaW11bChrZSxRdCl8MCxsZT1sZStNYXRoLmltdWwoa2UsdG4pfDA7dmFyIF9hPShBKyhhZT1hZStNYXRoLmltdWwoUmUseGkpfDApfDApKygoODE5MSYobmU9'@; put 'KG5lPW5lK01hdGguaW11bChSZSx5cil8MCkrTWF0aC5pbXVsKEllLHhpKXwwKSk8PDEzKXwwO0E9KChsZT1sZStNYXRoLmltdWwoSWUseXIpfDApKyhuZT4+PjEzKXwwKSsoX2E+Pj4yNil8MCxfYSY9NjcxMDg4NjMsYWU9TWF0aC5pbXVsKEx0LFdlKSxuZT0obmU9TWF0aC5pbXVsKEx0LEF0'@; put 'KSkrTWF0aC5pbXVsKFB0LFdlKXwwLGxlPU1hdGguaW11bChQdCxBdCksYWU9YWUrTWF0aC5pbXVsKE5lLGh0KXwwLG5lPShuZT1uZStNYXRoLmltdWwoTmUsRXQpfDApK01hdGguaW11bCh1dCxodCl8MCxsZT1sZStNYXRoLmltdWwodXQsRXQpfDAsYWU9YWUrTWF0aC5pbXVsKHJ0LGFuKXww'@; put 'LG5lPShuZT1uZStNYXRoLmltdWwocnQsanQpfDApK01hdGguaW11bChLZSxhbil8MCxsZT1sZStNYXRoLmltdWwoS2UsanQpfDAsYWU9YWUrTWF0aC5pbXVsKHl0LGNuKXwwLG5lPShuZT1uZStNYXRoLmltdWwoeXQsZm4pfDApK01hdGguaW11bChNdCxjbil8MCxsZT1sZStNYXRoLmltdWwo'@; put 'TXQsZm4pfDAsYWU9YWUrTWF0aC5pbXVsKG50LFF0KXwwLG5lPShuZT1uZStNYXRoLmltdWwobnQsdG4pfDApK01hdGguaW11bChKZSxRdCl8MCxsZT1sZStNYXRoLmltdWwoSmUsdG4pfDA7dmFyIE9hPShBKyhhZT1hZStNYXRoLmltdWwoRGUseGkpfDApfDApKygoODE5MSYobmU9KG5lPW5l'@; put 'K01hdGguaW11bChEZSx5cil8MCkrTWF0aC5pbXVsKGtlLHhpKXwwKSk8PDEzKXwwO0E9KChsZT1sZStNYXRoLmltdWwoa2UseXIpfDApKyhuZT4+PjEzKXwwKSsoT2E+Pj4yNil8MCxPYSY9NjcxMDg4NjMsYWU9TWF0aC5pbXVsKEx0LGh0KSxuZT0obmU9TWF0aC5pbXVsKEx0LEV0KSkrTWF0'@; put 'aC5pbXVsKFB0LGh0KXwwLGxlPU1hdGguaW11bChQdCxFdCksYWU9YWUrTWF0aC5pbXVsKE5lLGFuKXwwLG5lPShuZT1uZStNYXRoLmltdWwoTmUsanQpfDApK01hdGguaW11bCh1dCxhbil8MCxsZT1sZStNYXRoLmltdWwodXQsanQpfDAsYWU9YWUrTWF0aC5pbXVsKHJ0LGNuKXwwLG5lPShu'@; put 'ZT1uZStNYXRoLmltdWwocnQsZm4pfDApK01hdGguaW11bChLZSxjbil8MCxsZT1sZStNYXRoLmltdWwoS2UsZm4pfDAsYWU9YWUrTWF0aC5pbXVsKHl0LFF0KXwwLG5lPShuZT1uZStNYXRoLmltdWwoeXQsdG4pfDApK01hdGguaW11bChNdCxRdCl8MCxsZT1sZStNYXRoLmltdWwoTXQsdG4p'@; put 'fDA7dmFyIE5hPShBKyhhZT1hZStNYXRoLmltdWwobnQseGkpfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bChudCx5cil8MCkrTWF0aC5pbXVsKEplLHhpKXwwKSk8PDEzKXwwO0E9KChsZT1sZStNYXRoLmltdWwoSmUseXIpfDApKyhuZT4+PjEzKXwwKSsoTmE+Pj4yNil8MCxO'@; put 'YSY9NjcxMDg4NjMsYWU9TWF0aC5pbXVsKEx0LGFuKSxuZT0obmU9TWF0aC5pbXVsKEx0LGp0KSkrTWF0aC5pbXVsKFB0LGFuKXwwLGxlPU1hdGguaW11bChQdCxqdCksYWU9YWUrTWF0aC5pbXVsKE5lLGNuKXwwLG5lPShuZT1uZStNYXRoLmltdWwoTmUsZm4pfDApK01hdGguaW11bCh1dCxj'@; put 'bil8MCxsZT1sZStNYXRoLmltdWwodXQsZm4pfDAsYWU9YWUrTWF0aC5pbXVsKHJ0LFF0KXwwLG5lPShuZT1uZStNYXRoLmltdWwocnQsdG4pfDApK01hdGguaW11bChLZSxRdCl8MCxsZT1sZStNYXRoLmltdWwoS2UsdG4pfDA7dmFyIGVpPShBKyhhZT1hZStNYXRoLmltdWwoeXQseGkpfDAp'@; put 'fDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bCh5dCx5cil8MCkrTWF0aC5pbXVsKE10LHhpKXwwKSk8PDEzKXwwO0E9KChsZT1sZStNYXRoLmltdWwoTXQseXIpfDApKyhuZT4+PjEzKXwwKSsoZWk+Pj4yNil8MCxlaSY9NjcxMDg4NjMsYWU9TWF0aC5pbXVsKEx0LGNuKSxuZT0obmU9'@; put 'TWF0aC5pbXVsKEx0LGZuKSkrTWF0aC5pbXVsKFB0LGNuKXwwLGxlPU1hdGguaW11bChQdCxmbiksYWU9YWUrTWF0aC5pbXVsKE5lLFF0KXwwLG5lPShuZT1uZStNYXRoLmltdWwoTmUsdG4pfDApK01hdGguaW11bCh1dCxRdCl8MCxsZT1sZStNYXRoLmltdWwodXQsdG4pfDA7dmFyIGZzPShB'@; put 'KyhhZT1hZStNYXRoLmltdWwocnQseGkpfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bChydCx5cil8MCkrTWF0aC5pbXVsKEtlLHhpKXwwKSk8PDEzKXwwO0E9KChsZT1sZStNYXRoLmltdWwoS2UseXIpfDApKyhuZT4+PjEzKXwwKSsoZnM+Pj4yNil8MCxmcyY9NjcxMDg4NjMs'@; put 'YWU9TWF0aC5pbXVsKEx0LFF0KSxuZT0obmU9TWF0aC5pbXVsKEx0LHRuKSkrTWF0aC5pbXVsKFB0LFF0KXwwLGxlPU1hdGguaW11bChQdCx0bik7dmFyIEhvPShBKyhhZT1hZStNYXRoLmltdWwoTmUseGkpfDApfDApKygoODE5MSYobmU9KG5lPW5lK01hdGguaW11bChOZSx5cil8MCkrTWF0'@; put 'aC5pbXVsKHV0LHhpKXwwKSk8PDEzKXwwO0E9KChsZT1sZStNYXRoLmltdWwodXQseXIpfDApKyhuZT4+PjEzKXwwKSsoSG8+Pj4yNil8MCxIbyY9NjcxMDg4NjM7dmFyIG1sPShBKyhhZT1NYXRoLmltdWwoTHQseGkpKXwwKSsoKDgxOTEmKG5lPShuZT1NYXRoLmltdWwoTHQseXIpKStNYXRo'@; put 'LmltdWwoUHQseGkpfDApKTw8MTMpfDA7cmV0dXJuIEE9KChsZT1NYXRoLmltdWwoUHQseXIpKSsobmU+Pj4xMyl8MCkrKG1sPj4+MjYpfDAsbWwmPTY3MTA4ODYzLG1bMF09R24sbVsxXT1LaSxtWzJdPUpyLG1bM109UXIsbVs0XT1OaSxtWzVdPUhpLG1bNl09SWEsbVs3XT1QcixtWzhdPVlp'@; put 'LG1bOV09ZmEsbVsxMF09bnIsbVsxMV09b2EsbVsxMl09X2EsbVsxM109T2EsbVsxNF09TmEsbVsxNV09ZWksbVsxNl09ZnMsbVsxN109SG8sbVsxOF09bWwsMCE9PUEmJihtWzE5XT1BLFYubGVuZ3RoKyspLFZ9O2Z1bmN0aW9uIHRlKHgsQyxUKXtULm5lZ2F0aXZlPUMubmVnYXRpdmVeeC5u'@; put 'ZWdhdGl2ZSxULmxlbmd0aD14Lmxlbmd0aCtDLmxlbmd0aDtmb3IodmFyIFY9MCxVPTAsRT0wO0U8VC5sZW5ndGgtMTtFKyspe3ZhciBtPVU7VT0wO2Zvcih2YXIgQT02NzEwODg2MyZWLGFlPU1hdGgubWluKEUsQy5sZW5ndGgtMSksbmU9TWF0aC5tYXgoMCxFLXgubGVuZ3RoKzEpO25lPD1h'@; put 'ZTtuZSsrKXt2YXIgUWU9KDB8eC53b3Jkc1tFLW5lXSkqKDB8Qy53b3Jkc1tuZV0pLGF0PTY3MTA4ODYzJlFlO0E9NjcxMDg4NjMmKGF0PWF0K0F8MCksVSs9KG09KG09bSsoUWUvNjcxMDg4NjR8MCl8MCkrKGF0Pj4+MjYpfDApPj4+MjYsbSY9NjcxMDg4NjN9VC53b3Jkc1tFXT1BLFY9bSxt'@; put 'PVV9cmV0dXJuIDAhPT1WP1Qud29yZHNbRV09VjpULmxlbmd0aC0tLFQuX3N0cmlwKCl9ZnVuY3Rpb24gaWUoeCxDLFQpe3JldHVybiB0ZSh4LEMsVCl9ZnVuY3Rpb24gc2UoeCxDKXt0aGlzLng9eCx0aGlzLnk9Q31NYXRoLmltdWx8fChxPVEpLHcucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9u'@; put 'KEMsVCl7dmFyIFU9dGhpcy5sZW5ndGgrQy5sZW5ndGg7cmV0dXJuIDEwPT09dGhpcy5sZW5ndGgmJjEwPT09Qy5sZW5ndGg/cSh0aGlzLEMsVCk6VTw2Mz9RKHRoaXMsQyxUKTpVPDEwMjQ/dGUodGhpcyxDLFQpOmllKHRoaXMsQyxUKX0sc2UucHJvdG90eXBlLm1ha2VSQlQ9ZnVuY3Rpb24o'@; put 'Qyl7Zm9yKHZhciBUPW5ldyBBcnJheShDKSxWPXcucHJvdG90eXBlLl9jb3VudEJpdHMoQyktMSxVPTA7VTxDO1UrKylUW1VdPXRoaXMucmV2QmluKFUsVixDKTtyZXR1cm4gVH0sc2UucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbihDLFQsVil7aWYoMD09PUN8fEM9PT1WLTEpcmV0dXJuIEM7'@; put 'Zm9yKHZhciBVPTAsRT0wO0U8VDtFKyspVXw9KDEmQyk8PFQtRS0xLEM+Pj0xO3JldHVybiBVfSxzZS5wcm90b3R5cGUucGVybXV0ZT1mdW5jdGlvbihDLFQsVixVLEUsbSl7Zm9yKHZhciBBPTA7QTxtO0ErKylVW0FdPVRbQ1tBXV0sRVtBXT1WW0NbQV1dfSxzZS5wcm90b3R5cGUudHJhbnNm'@; put 'b3JtPWZ1bmN0aW9uKEMsVCxWLFUsRSxtKXt0aGlzLnBlcm11dGUobSxDLFQsVixVLEUpO2Zvcih2YXIgQT0xO0E8RTtBPDw9MSlmb3IodmFyIGFlPUE8PDEsbmU9TWF0aC5jb3MoMipNYXRoLlBJL2FlKSxsZT1NYXRoLnNpbigyKk1hdGguUEkvYWUpLHdlPTA7d2U8RTt3ZSs9YWUpZm9yKHZh'@; put 'ciBaZT1uZSxRZT1sZSxhdD0wO2F0PEE7YXQrKyl7dmFyIHhlPVZbd2UrYXRdLHZlPVVbd2UrYXRdLHFlPVZbd2UrYXQrQV0samU9VVt3ZSthdCtBXSxBZT1aZSpxZS1RZSpqZTtqZT1aZSpqZStRZSpxZSxWW3dlK2F0XT14ZSsocWU9QWUpLFVbd2UrYXRdPXZlK2plLFZbd2UrYXQrQV09eGUt'@; put 'cWUsVVt3ZSthdCtBXT12ZS1qZSxhdCE9PWFlJiYoQWU9bmUqWmUtbGUqUWUsUWU9bmUqUWUrbGUqWmUsWmU9QWUpfX0sc2UucHJvdG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKEMsVCl7dmFyIFY9MXxNYXRoLm1heChULEMpLFU9MSZWLEU9MDtmb3IoVj1WLzJ8MDtWO1Y+Pj49MSlFKys7'@; put 'cmV0dXJuIDE8PEUrMStVfSxzZS5wcm90b3R5cGUuY29uanVnYXRlPWZ1bmN0aW9uKEMsVCxWKXtpZighKFY8PTEpKWZvcih2YXIgVT0wO1U8Vi8yO1UrKyl7dmFyIEU9Q1tVXTtDW1VdPUNbVi1VLTFdLENbVi1VLTFdPUUsRT1UW1VdLFRbVV09LVRbVi1VLTFdLFRbVi1VLTFdPS1FfX0sc2Uu'@; put 'cHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbihDLFQpe2Zvcih2YXIgVj0wLFU9MDtVPFQvMjtVKyspe3ZhciBFPTgxOTIqTWF0aC5yb3VuZChDWzIqVSsxXS9UKStNYXRoLnJvdW5kKENbMipVXS9UKStWO0NbVV09NjcxMDg4NjMmRSxWPUU8NjcxMDg4NjQ/MDpFLzY3MTA4ODY0fDB9'@; put 'cmV0dXJuIEN9LHNlLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKEMsVCxWLFUpe2Zvcih2YXIgRT0wLG09MDttPFQ7bSsrKVZbMiptXT04MTkxJihFKz0wfENbbV0pLFZbMiptKzFdPTgxOTEmKEU+Pj49MTMpLEU+Pj49MTM7Zm9yKG09MipUO208VTsrK20pVlttXT0wO3AoMD09PUUp'@; put 'LHAoISgtODE5MiZFKSl9LHNlLnByb3RvdHlwZS5zdHViPWZ1bmN0aW9uKEMpe2Zvcih2YXIgVD1uZXcgQXJyYXkoQyksVj0wO1Y8QztWKyspVFtWXT0wO3JldHVybiBUfSxzZS5wcm90b3R5cGUubXVscD1mdW5jdGlvbihDLFQsVil7dmFyIFU9Mip0aGlzLmd1ZXNzTGVuMTNiKEMubGVuZ3Ro'@; put 'LFQubGVuZ3RoKSxFPXRoaXMubWFrZVJCVChVKSxtPXRoaXMuc3R1YihVKSxBPW5ldyBBcnJheShVKSxhZT1uZXcgQXJyYXkoVSksbmU9bmV3IEFycmF5KFUpLGxlPW5ldyBBcnJheShVKSx3ZT1uZXcgQXJyYXkoVSksWmU9bmV3IEFycmF5KFUpLFFlPVYud29yZHM7UWUubGVuZ3RoPVUsdGhp'@; put 'cy5jb252ZXJ0MTNiKEMud29yZHMsQy5sZW5ndGgsQSxVKSx0aGlzLmNvbnZlcnQxM2IoVC53b3JkcyxULmxlbmd0aCxsZSxVKSx0aGlzLnRyYW5zZm9ybShBLG0sYWUsbmUsVSxFKSx0aGlzLnRyYW5zZm9ybShsZSxtLHdlLFplLFUsRSk7Zm9yKHZhciBhdD0wO2F0PFU7YXQrKyl7dmFyIHhl'@; put 'PWFlW2F0XSp3ZVthdF0tbmVbYXRdKlplW2F0XTtuZVthdF09YWVbYXRdKlplW2F0XStuZVthdF0qd2VbYXRdLGFlW2F0XT14ZX1yZXR1cm4gdGhpcy5jb25qdWdhdGUoYWUsbmUsVSksdGhpcy50cmFuc2Zvcm0oYWUsbmUsUWUsbSxVLEUpLHRoaXMuY29uanVnYXRlKFFlLG0sVSksdGhpcy5u'@; put 'b3JtYWxpemUxM2IoUWUsVSksVi5uZWdhdGl2ZT1DLm5lZ2F0aXZlXlQubmVnYXRpdmUsVi5sZW5ndGg9Qy5sZW5ndGgrVC5sZW5ndGgsVi5fc3RyaXAoKX0sdy5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKEMpe3ZhciBUPW5ldyB3KG51bGwpO3JldHVybiBULndvcmRzPW5ldyBBcnJheSh0aGlz'@; put 'Lmxlbmd0aCtDLmxlbmd0aCksdGhpcy5tdWxUbyhDLFQpfSx3LnByb3RvdHlwZS5tdWxmPWZ1bmN0aW9uKEMpe3ZhciBUPW5ldyB3KG51bGwpO3JldHVybiBULndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtDLmxlbmd0aCksaWUodGhpcyxDLFQpfSx3LnByb3RvdHlwZS5pbXVsPWZ1bmN0'@; put 'aW9uKEMpe3JldHVybiB0aGlzLmNsb25lKCkubXVsVG8oQyx0aGlzKX0sdy5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24oQyl7dmFyIFQ9QzwwO1QmJihDPS1DKSxwKCJudW1iZXIiPT10eXBlb2YgQykscChDPDY3MTA4ODY0KTtmb3IodmFyIFY9MCxVPTA7VTx0aGlzLmxlbmd0aDtVKyspe3Zh'@; put 'ciBFPSgwfHRoaXMud29yZHNbVV0pKkMsbT0oNjcxMDg4NjMmRSkrKDY3MTA4ODYzJlYpO1Y+Pj0yNixWKz1FLzY3MTA4ODY0fDAsVis9bT4+PjI2LHRoaXMud29yZHNbVV09NjcxMDg4NjMmbX1yZXR1cm4gMCE9PVYmJih0aGlzLndvcmRzW1VdPVYsdGhpcy5sZW5ndGgrKyksVD90aGlzLmlu'@; put 'ZWcoKTp0aGlzfSx3LnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKEMpe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4oQyl9LHcucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sdy5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwo'@; put 'dGhpcy5jbG9uZSgpKX0sdy5wcm90b3R5cGUucG93PWZ1bmN0aW9uKEMpe3ZhciBUPWZ1bmN0aW9uIFgoeCl7Zm9yKHZhciBDPW5ldyBBcnJheSh4LmJpdExlbmd0aCgpKSxUPTA7VDxDLmxlbmd0aDtUKyspQ1tUXT14LndvcmRzW1QvMjZ8MF0+Pj5UJTI2JjE7cmV0dXJuIEN9KEMpO2lmKDA9'@; put 'PT1ULmxlbmd0aClyZXR1cm4gbmV3IHcoMSk7Zm9yKHZhciBWPXRoaXMsVT0wO1U8VC5sZW5ndGgmJjA9PT1UW1VdO1UrKyxWPVYuc3FyKCkpO2lmKCsrVTxULmxlbmd0aClmb3IodmFyIEU9Vi5zcXIoKTtVPFQubGVuZ3RoO1UrKyxFPUUuc3FyKCkpMCE9PVRbVV0mJihWPVYubXVsKEUpKTty'@; put 'ZXR1cm4gVn0sdy5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKEMpe3AoIm51bWJlciI9PXR5cGVvZiBDJiZDPj0wKTt2YXIgRSxUPUMlMjYsVj0oQy1UKS8yNixVPTY3MTA4ODYzPj4+MjYtVDw8MjYtVDtpZigwIT09VCl7dmFyIG09MDtmb3IoRT0wO0U8dGhpcy5sZW5ndGg7RSsrKXt2YXIg'@; put 'QT10aGlzLndvcmRzW0VdJlU7dGhpcy53b3Jkc1tFXT0oMHx0aGlzLndvcmRzW0VdKS1BPDxUfG0sbT1BPj4+MjYtVH1tJiYodGhpcy53b3Jkc1tFXT1tLHRoaXMubGVuZ3RoKyspfWlmKDAhPT1WKXtmb3IoRT10aGlzLmxlbmd0aC0xO0U+PTA7RS0tKXRoaXMud29yZHNbRStWXT10aGlzLndv'@; put 'cmRzW0VdO2ZvcihFPTA7RTxWO0UrKyl0aGlzLndvcmRzW0VdPTA7dGhpcy5sZW5ndGgrPVZ9cmV0dXJuIHRoaXMuX3N0cmlwKCl9LHcucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKEMpe3JldHVybiBwKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hsbihDKX0sdy5wcm90b3R5cGUuaXVz'@; put 'aHJuPWZ1bmN0aW9uKEMsVCxWKXt2YXIgVTtwKCJudW1iZXIiPT10eXBlb2YgQyYmQz49MCksVT1UPyhULVQlMjYpLzI2OjA7dmFyIEU9QyUyNixtPU1hdGgubWluKChDLUUpLzI2LHRoaXMubGVuZ3RoKSxBPTY3MTA4ODYzXjY3MTA4ODYzPj4+RTw8RSxhZT1WO2lmKFUtPW0sVT1NYXRoLm1h'@; put 'eCgwLFUpLGFlKXtmb3IodmFyIG5lPTA7bmU8bTtuZSsrKWFlLndvcmRzW25lXT10aGlzLndvcmRzW25lXTthZS5sZW5ndGg9bX1pZigwIT09bSlpZih0aGlzLmxlbmd0aD5tKWZvcih0aGlzLmxlbmd0aC09bSxuZT0wO25lPHRoaXMubGVuZ3RoO25lKyspdGhpcy53b3Jkc1tuZV09dGhpcy53'@; put 'b3Jkc1tuZSttXTtlbHNlIHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xO3ZhciBsZT0wO2ZvcihuZT10aGlzLmxlbmd0aC0xO25lPj0wJiYoMCE9PWxlfHxuZT49VSk7bmUtLSl7dmFyIHdlPTB8dGhpcy53b3Jkc1tuZV07dGhpcy53b3Jkc1tuZV09bGU8PDI2LUV8d2U+Pj5FLGxlPXdl'@; put 'JkF9cmV0dXJuIGFlJiYwIT09bGUmJihhZS53b3Jkc1thZS5sZW5ndGgrK109bGUpLDA9PT10aGlzLmxlbmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLl9zdHJpcCgpfSx3LnByb3RvdHlwZS5pc2hybj1mdW5jdGlvbihDLFQsVil7cmV0dXJuIHAoMD09PXRoaXMu'@; put 'bmVnYXRpdmUpLHRoaXMuaXVzaHJuKEMsVCxWKX0sdy5wcm90b3R5cGUuc2hsbj1mdW5jdGlvbihDKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaGxuKEMpfSx3LnByb3RvdHlwZS51c2hsbj1mdW5jdGlvbihDKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hsbihDKX0sdy5wcm90b3R5cGUuc2hy'@; put 'bj1mdW5jdGlvbihDKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKEMpfSx3LnByb3RvdHlwZS51c2hybj1mdW5jdGlvbihDKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hybihDKX0sdy5wcm90b3R5cGUudGVzdG49ZnVuY3Rpb24oQyl7cCgibnVtYmVyIj09dHlwZW9mIEMmJkM+PTApO3Zh'@; put 'ciBUPUMlMjYsVj0oQy1UKS8yNjtyZXR1cm4hKHRoaXMubGVuZ3RoPD1WfHwhKHRoaXMud29yZHNbVl0mMTw8VCkpfSx3LnByb3RvdHlwZS5pbWFza249ZnVuY3Rpb24oQyl7cCgibnVtYmVyIj09dHlwZW9mIEMmJkM+PTApO3ZhciBUPUMlMjYsVj0oQy1UKS8yNjtyZXR1cm4gcCgwPT09dGhp'@; put 'cy5uZWdhdGl2ZSwiaW1hc2tuIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZSBudW1iZXJzIiksdGhpcy5sZW5ndGg8PVY/dGhpczooMCE9PVQmJlYrKyx0aGlzLmxlbmd0aD1NYXRoLm1pbihWLHRoaXMubGVuZ3RoKSwwIT09VCYmKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0mPTY3MTA4ODYz'@; put 'XjY3MTA4ODYzPj4+VDw8VCksdGhpcy5fc3RyaXAoKSl9LHcucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKEMpe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKEMpfSx3LnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbihDKXtyZXR1cm4gcCgibnVtYmVyIj09dHlwZW9mIEMpLHAoQzw2NzEwODg2'@; put 'NCksQzwwP3RoaXMuaXN1Ym4oLUMpOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8PUM/KHRoaXMud29yZHNbMF09Qy0oMHx0aGlzLndvcmRzWzBdKSx0aGlzLm5lZ2F0aXZlPTAsdGhpcyk6KHRoaXMubmVnYXRpdmU9MCx0aGlzLmlzdWJuKEMp'@; put 'LHRoaXMubmVnYXRpdmU9MSx0aGlzKTp0aGlzLl9pYWRkbihDKX0sdy5wcm90b3R5cGUuX2lhZGRuPWZ1bmN0aW9uKEMpe3RoaXMud29yZHNbMF0rPUM7Zm9yKHZhciBUPTA7VDx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1tUXT49NjcxMDg4NjQ7VCsrKXRoaXMud29yZHNbVF0tPTY3MTA4ODY0'@; put 'LFQ9PT10aGlzLmxlbmd0aC0xP3RoaXMud29yZHNbVCsxXT0xOnRoaXMud29yZHNbVCsxXSsrO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxUKzEpLHRoaXN9LHcucHJvdG90eXBlLmlzdWJuPWZ1bmN0aW9uKEMpe2lmKHAoIm51bWJlciI9PXR5cGVvZiBDKSxwKEM8'@; put 'NjcxMDg4NjQpLEM8MClyZXR1cm4gdGhpcy5pYWRkbigtQyk7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKEMpLHRoaXMubmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPUMsMT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBd'@; put 'PDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFyIFQ9MDtUPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW1RdPDA7VCsrKXRoaXMud29yZHNbVF0rPTY3MTA4ODY0LHRoaXMud29yZHNbVCsxXS09MTtyZXR1cm4gdGhpcy5fc3RyaXAoKX0s'@; put 'dy5wcm90b3R5cGUuYWRkbj1mdW5jdGlvbihDKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhZGRuKEMpfSx3LnByb3RvdHlwZS5zdWJuPWZ1bmN0aW9uKEMpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Ym4oQyl9LHcucHJvdG90eXBlLmlhYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uZWdhdGl2'@; put 'ZT0wLHRoaXN9LHcucHJvdG90eXBlLmFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaWFicygpfSx3LnByb3RvdHlwZS5faXNobG5zdWJtdWw9ZnVuY3Rpb24oQyxULFYpe3ZhciBFO3RoaXMuX2V4cGFuZChDLmxlbmd0aCtWKTt2YXIgbSxBPTA7Zm9yKEU9MDtFPEMubGVuZ3Ro'@; put 'O0UrKyl7bT0oMHx0aGlzLndvcmRzW0UrVl0pK0E7dmFyIGFlPSgwfEMud29yZHNbRV0pKlQ7QT0oKG0tPTY3MTA4ODYzJmFlKT4+MjYpLShhZS82NzEwODg2NHwwKSx0aGlzLndvcmRzW0UrVl09NjcxMDg4NjMmbX1mb3IoO0U8dGhpcy5sZW5ndGgtVjtFKyspQT0obT0oMHx0aGlzLndvcmRz'@; put 'W0UrVl0pK0EpPj4yNix0aGlzLndvcmRzW0UrVl09NjcxMDg4NjMmbTtpZigwPT09QSlyZXR1cm4gdGhpcy5fc3RyaXAoKTtmb3IocCgtMT09PUEpLEE9MCxFPTA7RTx0aGlzLmxlbmd0aDtFKyspQT0obT0tKDB8dGhpcy53b3Jkc1tFXSkrQSk+PjI2LHRoaXMud29yZHNbRV09NjcxMDg4NjMm'@; put 'bTtyZXR1cm4gdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX3N0cmlwKCl9LHcucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKEMsVCl7dmFyIFYsVT10aGlzLmNsb25lKCksRT1DLG09MHxFLndvcmRzW0UubGVuZ3RoLTFdOzAhPShWPTI2LXRoaXMuX2NvdW50Qml0cyhtKSkmJihFPUUudXNobG4o'@; put 'ViksVS5pdXNobG4oViksbT0wfEUud29yZHNbRS5sZW5ndGgtMV0pO3ZhciBuZSxhZT1VLmxlbmd0aC1FLmxlbmd0aDtpZigibW9kIiE9PVQpeyhuZT1uZXcgdyhudWxsKSkubGVuZ3RoPWFlKzEsbmUud29yZHM9bmV3IEFycmF5KG5lLmxlbmd0aCk7Zm9yKHZhciBsZT0wO2xlPG5lLmxlbmd0'@; put 'aDtsZSsrKW5lLndvcmRzW2xlXT0wfXZhciB3ZT1VLmNsb25lKCkuX2lzaGxuc3VibXVsKEUsMSxhZSk7MD09PXdlLm5lZ2F0aXZlJiYoVT13ZSxuZSYmKG5lLndvcmRzW2FlXT0xKSk7Zm9yKHZhciBaZT1hZS0xO1plPj0wO1plLS0pe3ZhciBRZT02NzEwODg2NCooMHxVLndvcmRzW0UubGVu'@; put 'Z3RoK1plXSkrKDB8VS53b3Jkc1tFLmxlbmd0aCtaZS0xXSk7Zm9yKFFlPU1hdGgubWluKFFlL218MCw2NzEwODg2MyksVS5faXNobG5zdWJtdWwoRSxRZSxaZSk7MCE9PVUubmVnYXRpdmU7KVFlLS0sVS5uZWdhdGl2ZT0wLFUuX2lzaGxuc3VibXVsKEUsMSxaZSksVS5pc1plcm8oKXx8KFUu'@; put 'bmVnYXRpdmVePTEpO25lJiYobmUud29yZHNbWmVdPVFlKX1yZXR1cm4gbmUmJm5lLl9zdHJpcCgpLFUuX3N0cmlwKCksImRpdiIhPT1UJiYwIT09ViYmVS5pdXNocm4oVikse2RpdjpuZXx8bnVsbCxtb2Q6VX19LHcucHJvdG90eXBlLmRpdm1vZD1mdW5jdGlvbihDLFQsVil7cmV0dXJuIHAo'@; put 'IUMuaXNaZXJvKCkpLHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgdygwKSxtb2Q6bmV3IHcoMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Qy5uZWdhdGl2ZT8obT10aGlzLm5lZygpLmRpdm1vZChDLFQpLCJtb2QiIT09VCYmKFU9bS5kaXYubmVnKCkpLCJkaXYiIT09VCYmKEU9bS5tb2QubmVn'@; put 'KCksViYmMCE9PUUubmVnYXRpdmUmJkUuaWFkZChDKSkse2RpdjpVLG1vZDpFfSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT1DLm5lZ2F0aXZlPyhtPXRoaXMuZGl2bW9kKEMubmVnKCksVCksIm1vZCIhPT1UJiYoVT1tLmRpdi5uZWcoKSkse2RpdjpVLG1vZDptLm1vZH0pOnRoaXMubmVnYXRp'@; put 'dmUmQy5uZWdhdGl2ZT8obT10aGlzLm5lZygpLmRpdm1vZChDLm5lZygpLFQpLCJkaXYiIT09VCYmKEU9bS5tb2QubmVnKCksViYmMCE9PUUubmVnYXRpdmUmJkUuaXN1YihDKSkse2RpdjptLmRpdixtb2Q6RX0pOkMubGVuZ3RoPnRoaXMubGVuZ3RofHx0aGlzLmNtcChDKTwwP3tkaXY6bmV3'@; put 'IHcoMCksbW9kOnRoaXN9OjE9PT1DLmxlbmd0aD8iZGl2Ij09PVQ/e2Rpdjp0aGlzLmRpdm4oQy53b3Jkc1swXSksbW9kOm51bGx9OiJtb2QiPT09VD97ZGl2Om51bGwsbW9kOm5ldyB3KHRoaXMubW9kcm4oQy53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bihDLndvcmRzWzBdKSxtb2Q6bmV3'@; put 'IHcodGhpcy5tb2RybihDLndvcmRzWzBdKSl9OnRoaXMuX3dvcmREaXYoQyxUKTt2YXIgVSxFLG19LHcucHJvdG90eXBlLmRpdj1mdW5jdGlvbihDKXtyZXR1cm4gdGhpcy5kaXZtb2QoQywiZGl2IiwhMSkuZGl2fSx3LnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24oQyl7cmV0dXJuIHRoaXMuZGl2'@; put 'bW9kKEMsIm1vZCIsITEpLm1vZH0sdy5wcm90b3R5cGUudW1vZD1mdW5jdGlvbihDKXtyZXR1cm4gdGhpcy5kaXZtb2QoQywibW9kIiwhMCkubW9kfSx3LnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbihDKXt2YXIgVD10aGlzLmRpdm1vZChDKTtpZihULm1vZC5pc1plcm8oKSlyZXR1cm4g'@; put 'VC5kaXY7dmFyIFY9MCE9PVQuZGl2Lm5lZ2F0aXZlP1QubW9kLmlzdWIoQyk6VC5tb2QsVT1DLnVzaHJuKDEpLEU9Qy5hbmRsbigxKSxtPVYuY21wKFUpO3JldHVybiBtPDB8fDE9PT1FJiYwPT09bT9ULmRpdjowIT09VC5kaXYubmVnYXRpdmU/VC5kaXYuaXN1Ym4oMSk6VC5kaXYuaWFkZG4o'@; put 'MSl9LHcucHJvdG90eXBlLm1vZHJuPWZ1bmN0aW9uKEMpe3ZhciBUPUM8MDtUJiYoQz0tQykscChDPD02NzEwODg2Myk7Zm9yKHZhciBWPSgxPDwyNiklQyxVPTAsRT10aGlzLmxlbmd0aC0xO0U+PTA7RS0tKVU9KFYqVSsoMHx0aGlzLndvcmRzW0VdKSklQztyZXR1cm4gVD8tVTpVfSx3LnBy'@; put 'b3RvdHlwZS5tb2RuPWZ1bmN0aW9uKEMpe3JldHVybiB0aGlzLm1vZHJuKEMpfSx3LnByb3RvdHlwZS5pZGl2bj1mdW5jdGlvbihDKXt2YXIgVD1DPDA7VCYmKEM9LUMpLHAoQzw9NjcxMDg4NjMpO2Zvcih2YXIgVj0wLFU9dGhpcy5sZW5ndGgtMTtVPj0wO1UtLSl7dmFyIEU9KDB8dGhpcy53'@; put 'b3Jkc1tVXSkrNjcxMDg4NjQqVjt0aGlzLndvcmRzW1VdPUUvQ3wwLFY9RSVDfXJldHVybiB0aGlzLl9zdHJpcCgpLFQ/dGhpcy5pbmVnKCk6dGhpc30sdy5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbihDKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKEMpfSx3LnByb3RvdHlwZS5lZ2NkPWZ1'@; put 'bmN0aW9uKEMpe3AoMD09PUMubmVnYXRpdmUpLHAoIUMuaXNaZXJvKCkpO3ZhciBUPXRoaXMsVj1DLmNsb25lKCk7VD0wIT09VC5uZWdhdGl2ZT9ULnVtb2QoQyk6VC5jbG9uZSgpO2Zvcih2YXIgVT1uZXcgdygxKSxFPW5ldyB3KDApLG09bmV3IHcoMCksQT1uZXcgdygxKSxhZT0wO1QuaXNF'@; put 'dmVuKCkmJlYuaXNFdmVuKCk7KVQuaXVzaHJuKDEpLFYuaXVzaHJuKDEpLCsrYWU7Zm9yKHZhciBuZT1WLmNsb25lKCksbGU9VC5jbG9uZSgpOyFULmlzWmVybygpOyl7Zm9yKHZhciB3ZT0wLFplPTE7IShULndvcmRzWzBdJlplKSYmd2U8MjY7Kyt3ZSxaZTw8PTEpO2lmKHdlPjApZm9yKFQu'@; put 'aXVzaHJuKHdlKTt3ZS0tID4wOykoVS5pc09kZCgpfHxFLmlzT2RkKCkpJiYoVS5pYWRkKG5lKSxFLmlzdWIobGUpKSxVLml1c2hybigxKSxFLml1c2hybigxKTtmb3IodmFyIFFlPTAsYXQ9MTshKFYud29yZHNbMF0mYXQpJiZRZTwyNjsrK1FlLGF0PDw9MSk7aWYoUWU+MClmb3IoVi5pdXNo'@; put 'cm4oUWUpO1FlLS0gPjA7KShtLmlzT2RkKCl8fEEuaXNPZGQoKSkmJihtLmlhZGQobmUpLEEuaXN1YihsZSkpLG0uaXVzaHJuKDEpLEEuaXVzaHJuKDEpO1QuY21wKFYpPj0wPyhULmlzdWIoViksVS5pc3ViKG0pLEUuaXN1YihBKSk6KFYuaXN1YihUKSxtLmlzdWIoVSksQS5pc3ViKEUpKX1y'@; put 'ZXR1cm57YTptLGI6QSxnY2Q6Vi5pdXNobG4oYWUpfX0sdy5wcm90b3R5cGUuX2ludm1wPWZ1bmN0aW9uKEMpe3AoMD09PUMubmVnYXRpdmUpLHAoIUMuaXNaZXJvKCkpO3ZhciB3ZSxUPXRoaXMsVj1DLmNsb25lKCk7VD0wIT09VC5uZWdhdGl2ZT9ULnVtb2QoQyk6VC5jbG9uZSgpO2Zvcih2'@; put 'YXIgVT1uZXcgdygxKSxFPW5ldyB3KDApLG09Vi5jbG9uZSgpO1QuY21wbigxKT4wJiZWLmNtcG4oMSk+MDspe2Zvcih2YXIgQT0wLGFlPTE7IShULndvcmRzWzBdJmFlKSYmQTwyNjsrK0EsYWU8PD0xKTtpZihBPjApZm9yKFQuaXVzaHJuKEEpO0EtLSA+MDspVS5pc09kZCgpJiZVLmlhZGQo'@; put 'bSksVS5pdXNocm4oMSk7Zm9yKHZhciBuZT0wLGxlPTE7IShWLndvcmRzWzBdJmxlKSYmbmU8MjY7KytuZSxsZTw8PTEpO2lmKG5lPjApZm9yKFYuaXVzaHJuKG5lKTtuZS0tID4wOylFLmlzT2RkKCkmJkUuaWFkZChtKSxFLml1c2hybigxKTtULmNtcChWKT49MD8oVC5pc3ViKFYpLFUuaXN1'@; put 'YihFKSk6KFYuaXN1YihUKSxFLmlzdWIoVSkpfXJldHVybih3ZT0wPT09VC5jbXBuKDEpP1U6RSkuY21wbigwKTwwJiZ3ZS5pYWRkKEMpLHdlfSx3LnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24oQyl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gQy5hYnMoKTtpZihDLmlzWmVybygpKXJldHVybiB0'@; put 'aGlzLmFicygpO3ZhciBUPXRoaXMuY2xvbmUoKSxWPUMuY2xvbmUoKTtULm5lZ2F0aXZlPTAsVi5uZWdhdGl2ZT0wO2Zvcih2YXIgVT0wO1QuaXNFdmVuKCkmJlYuaXNFdmVuKCk7VSsrKVQuaXVzaHJuKDEpLFYuaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDtULmlzRXZlbigpOylULml1c2hybigx'@; put 'KTtmb3IoO1YuaXNFdmVuKCk7KVYuaXVzaHJuKDEpO3ZhciBFPVQuY21wKFYpO2lmKEU8MCl7dmFyIG09VDtUPVYsVj1tfWVsc2UgaWYoMD09PUV8fDA9PT1WLmNtcG4oMSkpYnJlYWs7VC5pc3ViKFYpfXJldHVybiBWLml1c2hsbihVKX0sdy5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihDKXty'@; put 'ZXR1cm4gdGhpcy5lZ2NkKEMpLmEudW1vZChDKX0sdy5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuISgxJnRoaXMud29yZHNbMF0pfSx3LnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiEoMSZ+dGhpcy53b3Jkc1swXSl9LHcucHJvdG90eXBlLmFuZGxuPWZ1bmN0'@; put 'aW9uKEMpe3JldHVybiB0aGlzLndvcmRzWzBdJkN9LHcucHJvdG90eXBlLmJpbmNuPWZ1bmN0aW9uKEMpe3AoIm51bWJlciI9PXR5cGVvZiBDKTt2YXIgVD1DJTI2LFY9KEMtVCkvMjYsVT0xPDxUO2lmKHRoaXMubGVuZ3RoPD1WKXJldHVybiB0aGlzLl9leHBhbmQoVisxKSx0aGlzLndvcmRz'@; put 'W1ZdfD1VLHRoaXM7Zm9yKHZhciBFPVUsbT1WOzAhPT1FJiZtPHRoaXMubGVuZ3RoO20rKyl7dmFyIEE9MHx0aGlzLndvcmRzW21dO0U9KEErPUUpPj4+MjYsdGhpcy53b3Jkc1ttXT1BJj02NzEwODg2M31yZXR1cm4gMCE9PUUmJih0aGlzLndvcmRzW21dPUUsdGhpcy5sZW5ndGgrKyksdGhp'@; put 'c30sdy5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LHcucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24oQyl7dmFyIFYsVD1DPDA7aWYoMCE9PXRoaXMubmVnYXRpdmUmJiFUKXJldHVybi0xO2lmKDA9PT10aGlzLm5l'@; put 'Z2F0aXZlJiZUKXJldHVybiAxO2lmKHRoaXMuX3N0cmlwKCksdGhpcy5sZW5ndGg+MSlWPTE7ZWxzZXtUJiYoQz0tQykscChDPD02NzEwODg2MywiTnVtYmVyIGlzIHRvbyBiaWciKTt2YXIgVT0wfHRoaXMud29yZHNbMF07Vj1VPT09Qz8wOlU8Qz8tMToxfXJldHVybiAwIT09dGhpcy5uZWdh'@; put 'dGl2ZT8wfC1WOlZ9LHcucHJvdG90eXBlLmNtcD1mdW5jdGlvbihDKXtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PUMubmVnYXRpdmUpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT1DLm5lZ2F0aXZlKXJldHVybiAxO3ZhciBUPXRoaXMudWNtcChDKTtyZXR1cm4gMCE9PXRo'@; put 'aXMubmVnYXRpdmU/MHwtVDpUfSx3LnByb3RvdHlwZS51Y21wPWZ1bmN0aW9uKEMpe2lmKHRoaXMubGVuZ3RoPkMubGVuZ3RoKXJldHVybiAxO2lmKHRoaXMubGVuZ3RoPEMubGVuZ3RoKXJldHVybi0xO2Zvcih2YXIgVD0wLFY9dGhpcy5sZW5ndGgtMTtWPj0wO1YtLSl7dmFyIFU9MHx0aGlz'@; put 'LndvcmRzW1ZdLEU9MHxDLndvcmRzW1ZdO2lmKFUhPT1FKXtVPEU/VD0tMTpVPkUmJihUPTEpO2JyZWFrfX1yZXR1cm4gVH0sdy5wcm90b3R5cGUuZ3RuPWZ1bmN0aW9uKEMpe3JldHVybiAxPT09dGhpcy5jbXBuKEMpfSx3LnByb3RvdHlwZS5ndD1mdW5jdGlvbihDKXtyZXR1cm4gMT09PXRo'@; put 'aXMuY21wKEMpfSx3LnByb3RvdHlwZS5ndGVuPWZ1bmN0aW9uKEMpe3JldHVybiB0aGlzLmNtcG4oQyk+PTB9LHcucHJvdG90eXBlLmd0ZT1mdW5jdGlvbihDKXtyZXR1cm4gdGhpcy5jbXAoQyk+PTB9LHcucHJvdG90eXBlLmx0bj1mdW5jdGlvbihDKXtyZXR1cm4tMT09PXRoaXMuY21wbihD'@; put 'KX0sdy5wcm90b3R5cGUubHQ9ZnVuY3Rpb24oQyl7cmV0dXJuLTE9PT10aGlzLmNtcChDKX0sdy5wcm90b3R5cGUubHRlbj1mdW5jdGlvbihDKXtyZXR1cm4gdGhpcy5jbXBuKEMpPD0wfSx3LnByb3RvdHlwZS5sdGU9ZnVuY3Rpb24oQyl7cmV0dXJuIHRoaXMuY21wKEMpPD0wfSx3LnByb3Rv'@; put 'dHlwZS5lcW49ZnVuY3Rpb24oQyl7cmV0dXJuIDA9PT10aGlzLmNtcG4oQyl9LHcucHJvdG90eXBlLmVxPWZ1bmN0aW9uKEMpe3JldHVybiAwPT09dGhpcy5jbXAoQyl9LHcucmVkPWZ1bmN0aW9uKEMpe3JldHVybiBuZXcgZyhDKX0sdy5wcm90b3R5cGUudG9SZWQ9ZnVuY3Rpb24oQyl7cmV0'@; put 'dXJuIHAoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IikscCgwPT09dGhpcy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxDLmNvbnZlcnRUbyh0aGlzKS5fZm9yY2VSZWQoQyl9LHcucHJvdG90eXBlLmZyb21SZWQ9ZnVu'@; put 'Y3Rpb24oKXtyZXR1cm4gcCh0aGlzLnJlZCwiZnJvbVJlZCB3b3JrcyBvbmx5IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSx3LnByb3RvdHlwZS5fZm9yY2VSZWQ9ZnVuY3Rpb24oQyl7cmV0dXJuIHRoaXMucmVkPUMsdGhp'@; put 'c30sdy5wcm90b3R5cGUuZm9yY2VSZWQ9ZnVuY3Rpb24oQyl7cmV0dXJuIHAoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VSZWQoQyl9LHcucHJvdG90eXBlLnJlZEFkZD1mdW5jdGlvbihDKXtyZXR1cm4gcCh0aGlzLnJlZCwi'@; put 'cmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmFkZCh0aGlzLEMpfSx3LnByb3RvdHlwZS5yZWRJQWRkPWZ1bmN0aW9uKEMpe3JldHVybiBwKHRoaXMucmVkLCJyZWRJQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlhZGQodGhp'@; put 'cyxDKX0sdy5wcm90b3R5cGUucmVkU3ViPWZ1bmN0aW9uKEMpe3JldHVybiBwKHRoaXMucmVkLCJyZWRTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc3ViKHRoaXMsQyl9LHcucHJvdG90eXBlLnJlZElTdWI9ZnVuY3Rpb24oQyl7cmV0dXJuIHAodGhpcy5yZWQs'@; put 'InJlZElTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaXN1Yih0aGlzLEMpfSx3LnByb3RvdHlwZS5yZWRTaGw9ZnVuY3Rpb24oQyl7cmV0dXJuIHAodGhpcy5yZWQsInJlZFNobCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zaGwodGhp'@; put 'cyxDKX0sdy5wcm90b3R5cGUucmVkTXVsPWZ1bmN0aW9uKEMpe3JldHVybiBwKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxDKSx0aGlzLnJlZC5tdWwodGhpcyxDKX0sdy5wcm90b3R5cGUucmVkSU11bD1mdW5j'@; put 'dGlvbihDKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsQyksdGhpcy5yZWQuaW11bCh0aGlzLEMpfSx3LnByb3RvdHlwZS5yZWRTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVk'@; put 'U3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcih0aGlzKX0sdy5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMucmVkLCJyZWRJU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIp'@; put 'LHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmlzcXIodGhpcyl9LHcucHJvdG90eXBlLnJlZFNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJl'@; put 'ZC5zcXJ0KHRoaXMpfSx3LnByb3RvdHlwZS5yZWRJbnZtPWZ1bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5yZWQsInJlZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaW52bSh0aGlzKX0sdy5wcm90b3R5cGUucmVkTmVn'@; put 'PWZ1bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5yZWQsInJlZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5uZWcodGhpcyl9LHcucHJvdG90eXBlLnJlZFBvdz1mdW5jdGlvbihDKXtyZXR1cm4gcCh0aGlzLnJlZCYmIUMu'@; put 'cmVkLCJyZWRQb3cobm9ybWFsTnVtKSIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnBvdyh0aGlzLEMpfTt2YXIgZ2U9e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtmdW5jdGlvbiBfZSh4LEMpe3RoaXMubmFtZT14LHRoaXMucD1uZXcgdyhD'@; put 'LDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgdygxKS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9ZnVuY3Rpb24gVGUoKXtfZS5jYWxsKHRoaXMsImsyNTYiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZm'@; put 'ZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIpfWZ1bmN0aW9uIFNlKCl7X2UuY2FsbCh0aGlzLCJwMjI0IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEiKX1mdW5jdGlvbiB6ZSgpe19lLmNhbGwodGhp'@; put 'cywicDE5MiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIil9ZnVuY3Rpb24geigpe19lLmNhbGwodGhpcywiMjU1MTkiLCI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZm'@; put 'ZmVkIil9ZnVuY3Rpb24gZyh4KXtpZigic3RyaW5nIj09dHlwZW9mIHgpe3ZhciBDPXcuX3ByaW1lKHgpO3RoaXMubT1DLnAsdGhpcy5wcmltZT1DfWVsc2UgcCh4Lmd0bigxKSwibW9kdWx1cyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxIiksdGhpcy5tPXgsdGhpcy5wcmltZT1udWxsfWZ1bmN0'@; put 'aW9uIHkoeCl7Zy5jYWxsKHRoaXMseCksdGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9MCYmKHRoaXMuc2hpZnQrPTI2LXRoaXMuc2hpZnQlMjYpLHRoaXMucj1uZXcgdygxKS5pdXNobG4odGhpcy5zaGlmdCksdGhpcy5yMj10aGlzLmltb2QodGhpcy5yLnNx'@; put 'cigpKSx0aGlzLnJpbnY9dGhpcy5yLl9pbnZtcCh0aGlzLm0pLHRoaXMubWludj10aGlzLnJpbnYubXVsKHRoaXMucikuaXN1Ym4oMSkuZGl2KHRoaXMubSksdGhpcy5taW52PXRoaXMubWludi51bW9kKHRoaXMuciksdGhpcy5taW52PXRoaXMuci5zdWIodGhpcy5taW52KX1fZS5wcm90b3R5'@; put 'cGUuX3RtcD1mdW5jdGlvbigpe3ZhciBDPW5ldyB3KG51bGwpO3JldHVybiBDLndvcmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSksQ30sX2UucHJvdG90eXBlLmlyZWR1Y2U9ZnVuY3Rpb24oQyl7dmFyIFYsVD1DO2Rve3RoaXMuc3BsaXQoVCx0aGlzLnRtcCksVj0oVD0oVD10'@; put 'aGlzLmltdWxLKFQpKS5pYWRkKHRoaXMudG1wKSkuYml0TGVuZ3RoKCl9d2hpbGUoVj50aGlzLm4pO3ZhciBVPVY8dGhpcy5uPy0xOlQudWNtcCh0aGlzLnApO3JldHVybiAwPT09VT8oVC53b3Jkc1swXT0wLFQubGVuZ3RoPTEpOlU+MD9ULmlzdWIodGhpcy5wKTp2b2lkIDAhPT1ULnN0cmlw'@; put 'P1Quc3RyaXAoKTpULl9zdHJpcCgpLFR9LF9lLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihDLFQpe0MuaXVzaHJuKHRoaXMubiwwLFQpfSxfZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oQyl7cmV0dXJuIEMuaW11bCh0aGlzLmspfSxOKFRlLF9lKSxUZS5wcm90b3R5cGUuc3BsaXQ9ZnVu'@; put 'Y3Rpb24oQyxUKXtmb3IodmFyIFY9NDE5NDMwMyxVPU1hdGgubWluKEMubGVuZ3RoLDkpLEU9MDtFPFU7RSsrKVQud29yZHNbRV09Qy53b3Jkc1tFXTtpZihULmxlbmd0aD1VLEMubGVuZ3RoPD05KXJldHVybiBDLndvcmRzWzBdPTAsdm9pZChDLmxlbmd0aD0xKTt2YXIgbT1DLndvcmRzWzld'@; put 'O2ZvcihULndvcmRzW1QubGVuZ3RoKytdPW0mVixFPTEwO0U8Qy5sZW5ndGg7RSsrKXt2YXIgQT0wfEMud29yZHNbRV07Qy53b3Jkc1tFLTEwXT0oQSZWKTw8NHxtPj4+MjIsbT1BfUMud29yZHNbRS0xMF09bT4+Pj0yMixDLmxlbmd0aC09MD09PW0mJkMubGVuZ3RoPjEwPzEwOjl9LFRlLnBy'@; put 'b3RvdHlwZS5pbXVsSz1mdW5jdGlvbihDKXtDLndvcmRzW0MubGVuZ3RoXT0wLEMud29yZHNbQy5sZW5ndGgrMV09MCxDLmxlbmd0aCs9Mjtmb3IodmFyIFQ9MCxWPTA7VjxDLmxlbmd0aDtWKyspe3ZhciBVPTB8Qy53b3Jkc1tWXTtDLndvcmRzW1ZdPTY3MTA4ODYzJihUKz05NzcqVSksVD02'@; put 'NCpVKyhULzY3MTA4ODY0fDApfXJldHVybiAwPT09Qy53b3Jkc1tDLmxlbmd0aC0xXSYmKEMubGVuZ3RoLS0sMD09PUMud29yZHNbQy5sZW5ndGgtMV0mJkMubGVuZ3RoLS0pLEN9LE4oU2UsX2UpLE4oemUsX2UpLE4oeixfZSksei5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oQyl7Zm9yKHZh'@; put 'ciBUPTAsVj0wO1Y8Qy5sZW5ndGg7VisrKXt2YXIgVT0xOSooMHxDLndvcmRzW1ZdKStULEU9NjcxMDg4NjMmVTtVPj4+PTI2LEMud29yZHNbVl09RSxUPVV9cmV0dXJuIDAhPT1UJiYoQy53b3Jkc1tDLmxlbmd0aCsrXT1UKSxDfSx3Ll9wcmltZT1mdW5jdGlvbihDKXtpZihnZVtDXSlyZXR1'@; put 'cm4gZ2VbQ107dmFyIFQ7aWYoImsyNTYiPT09QylUPW5ldyBUZTtlbHNlIGlmKCJwMjI0Ij09PUMpVD1uZXcgU2U7ZWxzZSBpZigicDE5MiI9PT1DKVQ9bmV3IHplO2Vsc2V7aWYoInAyNTUxOSIhPT1DKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAiK0MpO1Q9bmV3IHp9cmV0dXJu'@; put 'IGdlW0NdPVQsVH0sZy5wcm90b3R5cGUuX3ZlcmlmeTE9ZnVuY3Rpb24oQyl7cCgwPT09Qy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxwKEMucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LGcucHJvdG90eXBlLl92ZXJpZnkyPWZ1bmN0'@; put 'aW9uKEMsVCl7cCghKEMubmVnYXRpdmV8VC5uZWdhdGl2ZSksInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIikscChDLnJlZCYmQy5yZWQ9PT1ULnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxnLnByb3RvdHlwZS5pbW9kPWZ1bmN0aW9uKEMpe3JldHVybiB0'@; put 'aGlzLnByaW1lP3RoaXMucHJpbWUuaXJlZHVjZShDKS5fZm9yY2VSZWQodGhpcyk6KFAoQyxDLnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcykpLEMpfSxnLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oQyl7cmV0dXJuIEMuaXNaZXJvKCk/Qy5jbG9uZSgpOnRoaXMubS5zdWIoQykuX2ZvcmNl'@; put 'UmVkKHRoaXMpfSxnLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oQyxUKXt0aGlzLl92ZXJpZnkyKEMsVCk7dmFyIFY9Qy5hZGQoVCk7cmV0dXJuIFYuY21wKHRoaXMubSk+PTAmJlYuaXN1Yih0aGlzLm0pLFYuX2ZvcmNlUmVkKHRoaXMpfSxnLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKEMsVCl7'@; put 'dGhpcy5fdmVyaWZ5MihDLFQpO3ZhciBWPUMuaWFkZChUKTtyZXR1cm4gVi5jbXAodGhpcy5tKT49MCYmVi5pc3ViKHRoaXMubSksVn0sZy5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKEMsVCl7dGhpcy5fdmVyaWZ5MihDLFQpO3ZhciBWPUMuc3ViKFQpO3JldHVybiBWLmNtcG4oMCk8MCYmVi5p'@; put 'YWRkKHRoaXMubSksVi5fZm9yY2VSZWQodGhpcyl9LGcucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24oQyxUKXt0aGlzLl92ZXJpZnkyKEMsVCk7dmFyIFY9Qy5pc3ViKFQpO3JldHVybiBWLmNtcG4oMCk8MCYmVi5pYWRkKHRoaXMubSksVn0sZy5wcm90b3R5cGUuc2hsPWZ1bmN0aW9uKEMsVCl7'@; put 'cmV0dXJuIHRoaXMuX3ZlcmlmeTEoQyksdGhpcy5pbW9kKEMudXNobG4oVCkpfSxnLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKEMsVCl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoQyxUKSx0aGlzLmltb2QoQy5pbXVsKFQpKX0sZy5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKEMsVCl7cmV0dXJuIHRo'@; put 'aXMuX3ZlcmlmeTIoQyxUKSx0aGlzLmltb2QoQy5tdWwoVCkpfSxnLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKEMpe3JldHVybiB0aGlzLmltdWwoQyxDLmNsb25lKCkpfSxnLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oQyl7cmV0dXJuIHRoaXMubXVsKEMsQyl9LGcucHJvdG90eXBlLnNxcnQ9'@; put 'ZnVuY3Rpb24oQyl7aWYoQy5pc1plcm8oKSlyZXR1cm4gQy5jbG9uZSgpO3ZhciBUPXRoaXMubS5hbmRsbigzKTtpZihwKFQlMj09MSksMz09PVQpe3ZhciBWPXRoaXMubS5hZGQobmV3IHcoMSkpLml1c2hybigyKTtyZXR1cm4gdGhpcy5wb3coQyxWKX1mb3IodmFyIFU9dGhpcy5tLnN1Ym4o'@; put 'MSksRT0wOyFVLmlzWmVybygpJiYwPT09VS5hbmRsbigxKTspRSsrLFUuaXVzaHJuKDEpO3AoIVUuaXNaZXJvKCkpO3ZhciBtPW5ldyB3KDEpLnRvUmVkKHRoaXMpLEE9bS5yZWROZWcoKSxhZT10aGlzLm0uc3VibigxKS5pdXNocm4oMSksbmU9dGhpcy5tLmJpdExlbmd0aCgpO2ZvcihuZT1u'@; put 'ZXcgdygyKm5lKm5lKS50b1JlZCh0aGlzKTswIT09dGhpcy5wb3cobmUsYWUpLmNtcChBKTspbmUucmVkSUFkZChBKTtmb3IodmFyIGxlPXRoaXMucG93KG5lLFUpLHdlPXRoaXMucG93KEMsVS5hZGRuKDEpLml1c2hybigxKSksWmU9dGhpcy5wb3coQyxVKSxRZT1FOzAhPT1aZS5jbXAobSk7'@; put 'KXtmb3IodmFyIGF0PVplLHhlPTA7MCE9PWF0LmNtcChtKTt4ZSsrKWF0PWF0LnJlZFNxcigpO3AoeGU8UWUpO3ZhciB2ZT10aGlzLnBvdyhsZSxuZXcgdygxKS5pdXNobG4oUWUteGUtMSkpO3dlPXdlLnJlZE11bCh2ZSksbGU9dmUucmVkU3FyKCksWmU9WmUucmVkTXVsKGxlKSxRZT14ZX1y'@; put 'ZXR1cm4gd2V9LGcucHJvdG90eXBlLmludm09ZnVuY3Rpb24oQyl7dmFyIFQ9Qy5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PVQubmVnYXRpdmU/KFQubmVnYXRpdmU9MCx0aGlzLmltb2QoVCkucmVkTmVnKCkpOnRoaXMuaW1vZChUKX0sZy5wcm90b3R5cGUucG93PWZ1bmN0aW9uKEMsVCl7'@; put 'aWYoVC5pc1plcm8oKSlyZXR1cm4gbmV3IHcoMSkudG9SZWQodGhpcyk7aWYoMD09PVQuY21wbigxKSlyZXR1cm4gQy5jbG9uZSgpO3ZhciBVPW5ldyBBcnJheSgxNik7VVswXT1uZXcgdygxKS50b1JlZCh0aGlzKSxVWzFdPUM7Zm9yKHZhciBFPTI7RTxVLmxlbmd0aDtFKyspVVtFXT10aGlz'@; put 'Lm11bChVW0UtMV0sQyk7dmFyIG09VVswXSxBPTAsYWU9MCxuZT1ULmJpdExlbmd0aCgpJTI2O2ZvcigwPT09bmUmJihuZT0yNiksRT1ULmxlbmd0aC0xO0U+PTA7RS0tKXtmb3IodmFyIGxlPVQud29yZHNbRV0sd2U9bmUtMTt3ZT49MDt3ZS0tKXt2YXIgWmU9bGU+PndlJjE7bSE9PVVbMF0m'@; put 'JihtPXRoaXMuc3FyKG0pKSwwIT09WmV8fDAhPT1BPyhBPDw9MSxBfD1aZSwoND09KythZXx8MD09PUUmJjA9PT13ZSkmJihtPXRoaXMubXVsKG0sVVtBXSksYWU9MCxBPTApKTphZT0wfW5lPTI2fXJldHVybiBtfSxnLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oQyl7dmFyIFQ9Qy51'@; put 'bW9kKHRoaXMubSk7cmV0dXJuIFQ9PT1DP1QuY2xvbmUoKTpUfSxnLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbihDKXt2YXIgVD1DLmNsb25lKCk7cmV0dXJuIFQucmVkPW51bGwsVH0sdy5tb250PWZ1bmN0aW9uKEMpe3JldHVybiBuZXcgeShDKX0sTih5LGcpLHkucHJvdG90eXBl'@; put 'LmNvbnZlcnRUbz1mdW5jdGlvbihDKXtyZXR1cm4gdGhpcy5pbW9kKEMudXNobG4odGhpcy5zaGlmdCkpfSx5LnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbihDKXt2YXIgVD10aGlzLmltb2QoQy5tdWwodGhpcy5yaW52KSk7cmV0dXJuIFQucmVkPW51bGwsVH0seS5wcm90b3R5cGUu'@; put 'aW11bD1mdW5jdGlvbihDLFQpe2lmKEMuaXNaZXJvKCl8fFQuaXNaZXJvKCkpcmV0dXJuIEMud29yZHNbMF09MCxDLmxlbmd0aD0xLEM7dmFyIFY9Qy5pbXVsKFQpLFU9Vi5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksRT1W'@; put 'LmlzdWIoVSkuaXVzaHJuKHRoaXMuc2hpZnQpLG09RTtyZXR1cm4gRS5jbXAodGhpcy5tKT49MD9tPUUuaXN1Yih0aGlzLm0pOkUuY21wbigwKTwwJiYobT1FLmlhZGQodGhpcy5tKSksbS5fZm9yY2VSZWQodGhpcyl9LHkucHJvdG90eXBlLm11bD1mdW5jdGlvbihDLFQpe2lmKEMuaXNaZXJv'@; put 'KCl8fFQuaXNaZXJvKCkpcmV0dXJuIG5ldyB3KDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgVj1DLm11bChUKSxVPVYubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLEU9Vi5pc3ViKFUpLml1c2hybih0aGlzLnNoaWZ0KSxtPUU7'@; put 'cmV0dXJuIEUuY21wKHRoaXMubSk+PTA/bT1FLmlzdWIodGhpcy5tKTpFLmNtcG4oMCk8MCYmKG09RS5pYWRkKHRoaXMubSkpLG0uX2ZvcmNlUmVkKHRoaXMpfSx5LnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKEMpe3JldHVybiB0aGlzLmltb2QoQy5faW52bXAodGhpcy5tKS5tdWwodGhpcy5y'@; put 'MikpLl9mb3JjZVJlZCh0aGlzKX19KGNlPWIubm1kKGNlKSx0aGlzKX0sOTkzMTooY2UsSixiKT0+e3ZhciBEO2Z1bmN0aW9uIF8oTil7dGhpcy5yYW5kPU59aWYoY2UuZXhwb3J0cz1mdW5jdGlvbih3KXtyZXR1cm4gRHx8KEQ9bmV3IF8obnVsbCkpLEQuZ2VuZXJhdGUodyl9LGNlLmV4cG9y'@; put 'dHMuUmFuZD1fLF8ucHJvdG90eXBlLmdlbmVyYXRlPWZ1bmN0aW9uKHcpe3JldHVybiB0aGlzLl9yYW5kKHcpfSxfLnByb3RvdHlwZS5fcmFuZD1mdW5jdGlvbih3KXtpZih0aGlzLnJhbmQuZ2V0Qnl0ZXMpcmV0dXJuIHRoaXMucmFuZC5nZXRCeXRlcyh3KTtmb3IodmFyIEY9bmV3IFVpbnQ4'@; put 'QXJyYXkodyksSD0wO0g8Ri5sZW5ndGg7SCsrKUZbSF09dGhpcy5yYW5kLmdldEJ5dGUoKTtyZXR1cm4gRn0sIm9iamVjdCI9PXR5cGVvZiBzZWxmKXNlbGYuY3J5cHRvJiZzZWxmLmNyeXB0by5nZXRSYW5kb21WYWx1ZXM/Xy5wcm90b3R5cGUuX3JhbmQ9ZnVuY3Rpb24odyl7dmFyIEY9bmV3'@; put 'IFVpbnQ4QXJyYXkodyk7cmV0dXJuIHNlbGYuY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhGKSxGfTpzZWxmLm1zQ3J5cHRvJiZzZWxmLm1zQ3J5cHRvLmdldFJhbmRvbVZhbHVlcz9fLnByb3RvdHlwZS5fcmFuZD1mdW5jdGlvbih3KXt2YXIgRj1uZXcgVWludDhBcnJheSh3KTtyZXR1cm4gc2Vs'@; put 'Zi5tc0NyeXB0by5nZXRSYW5kb21WYWx1ZXMoRiksRn06Im9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJihfLnByb3RvdHlwZS5fcmFuZD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIHlldCIpfSk7ZWxzZSB0cnl7dmFyIHA9Yig5MjE0KTtpZigiZnVuY3Rpb24i'@; put 'IT10eXBlb2YgcC5yYW5kb21CeXRlcyl0aHJvdyBuZXcgRXJyb3IoIk5vdCBzdXBwb3J0ZWQiKTtfLnByb3RvdHlwZS5fcmFuZD1mdW5jdGlvbih3KXtyZXR1cm4gcC5yYW5kb21CeXRlcyh3KX19Y2F0Y2h7fX0sNDQ5NzooY2UsSixiKT0+e3ZhciBEPWIoOTUwOSkuQnVmZmVyO2Z1bmN0aW9u'@; put 'IF8oUil7RC5pc0J1ZmZlcihSKXx8KFI9RC5mcm9tKFIpKTtmb3IodmFyIGo9Ui5sZW5ndGgvNHwwLFA9bmV3IEFycmF5KGopLEw9MDtMPGo7TCsrKVBbTF09Ui5yZWFkVUludDMyQkUoNCpMKTtyZXR1cm4gUH1mdW5jdGlvbiBwKFIpe2Zvcig7MDxSLmxlbmd0aDtSKyspUlswXT0wfWZ1bmN0'@; put 'aW9uIE4oUixqLFAsTCxZKXtmb3IodmFyIHNlLGdlLF9lLFRlLEI9UFswXSxXPVBbMV0sWj1QWzJdLFg9UFszXSxRPVJbMF1ealswXSxxPVJbMV1ealsxXSx0ZT1SWzJdXmpbMl0saWU9UlszXV5qWzNdLFNlPTQsemU9MTt6ZTxZO3plKyspc2U9QltRPj4+MjRdXldbcT4+PjE2JjI1NV1eWlt0'@; put 'ZT4+PjgmMjU1XV5YWzI1NSZpZV1ealtTZSsrXSxnZT1CW3E+Pj4yNF1eV1t0ZT4+PjE2JjI1NV1eWltpZT4+PjgmMjU1XV5YWzI1NSZRXV5qW1NlKytdLF9lPUJbdGU+Pj4yNF1eV1tpZT4+PjE2JjI1NV1eWltRPj4+OCYyNTVdXlhbMjU1JnFdXmpbU2UrK10sVGU9QltpZT4+PjI0XV5XW1E+'@; put 'Pj4xNiYyNTVdXlpbcT4+PjgmMjU1XV5YWzI1NSZ0ZV1ealtTZSsrXSxRPXNlLHE9Z2UsdGU9X2UsaWU9VGU7cmV0dXJuIHNlPShMW1E+Pj4yNF08PDI0fExbcT4+PjE2JjI1NV08PDE2fExbdGU+Pj44JjI1NV08PDh8TFsyNTUmaWVdKV5qW1NlKytdLGdlPShMW3E+Pj4yNF08PDI0fExbdGU+'@; put 'Pj4xNiYyNTVdPDwxNnxMW2llPj4+OCYyNTVdPDw4fExbMjU1JlFdKV5qW1NlKytdLF9lPShMW3RlPj4+MjRdPDwyNHxMW2llPj4+MTYmMjU1XTw8MTZ8TFtRPj4+OCYyNTVdPDw4fExbMjU1JnFdKV5qW1NlKytdLFRlPShMW2llPj4+MjRdPDwyNHxMW1E+Pj4xNiYyNTVdPDwxNnxMW3E+Pj44'@; put 'JjI1NV08PDh8TFsyNTUmdGVdKV5qW1NlKytdLFtzZT4+Pj0wLGdlPj4+PTAsX2U+Pj49MCxUZT4+Pj0wXX12YXIgdz1bMCwxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNyw1NF0sRj1mdW5jdGlvbigpe2Zvcih2YXIgUj1uZXcgQXJyYXkoMjU2KSxqPTA7ajwyNTY7aisrKVJbal09ajwxMjg/ajw8'@; put 'MTpqPDwxXjI4Mztmb3IodmFyIFA9W10sTD1bXSxZPVtbXSxbXSxbXSxbXV0sQj1bW10sW10sW10sW11dLFc9MCxaPTAsWD0wO1g8MjU2OysrWCl7dmFyIFE9Wl5aPDwxXlo8PDJeWjw8M15aPDw0O1BbV109UT1RPj4+OF4yNTUmUV45OSxMW1FdPVc7dmFyIHE9UltXXSx0ZT1SW3FdLGllPVJb'@; put 'dGVdLHNlPTI1NypSW1FdXjE2ODQzMDA4KlE7WVswXVtXXT1zZTw8MjR8c2U+Pj44LFlbMV1bV109c2U8PDE2fHNlPj4+MTYsWVsyXVtXXT1zZTw8OHxzZT4+PjI0LFlbM11bV109c2UsQlswXVtRXT0oc2U9MTY4NDMwMDkqaWVeNjU1MzcqdGVeMjU3KnFeMTY4NDMwMDgqVyk8PDI0fHNlPj4+'@; put 'OCxCWzFdW1FdPXNlPDwxNnxzZT4+PjE2LEJbMl1bUV09c2U8PDh8c2U+Pj4yNCxCWzNdW1FdPXNlLDA9PT1XP1c9Wj0xOihXPXFeUltSW1JbaWVecV1dXSxaXj1SW1JbWl1dKX1yZXR1cm57U0JPWDpQLElOVl9TQk9YOkwsU1VCX01JWDpZLElOVl9TVUJfTUlYOkJ9fSgpO2Z1bmN0aW9uIEgo'@; put 'Uil7dGhpcy5fa2V5PV8oUiksdGhpcy5fcmVzZXQoKX1ILmJsb2NrU2l6ZT0xNixILmtleVNpemU9MzIsSC5wcm90b3R5cGUuYmxvY2tTaXplPUguYmxvY2tTaXplLEgucHJvdG90eXBlLmtleVNpemU9SC5rZXlTaXplLEgucHJvdG90eXBlLl9yZXNldD1mdW5jdGlvbigpe2Zvcih2YXIgUj10'@; put 'aGlzLl9rZXksaj1SLmxlbmd0aCxQPWorNixMPTQqKFArMSksWT1bXSxCPTA7QjxqO0IrKylZW0JdPVJbQl07Zm9yKEI9ajtCPEw7QisrKXt2YXIgVz1ZW0ItMV07QiVqPT0wPyhXPUYuU0JPWFsoVz1XPDw4fFc+Pj4yNCk+Pj4yNF08PDI0fEYuU0JPWFtXPj4+MTYmMjU1XTw8MTZ8Ri5TQk9Y'@; put 'W1c+Pj44JjI1NV08PDh8Ri5TQk9YWzI1NSZXXSxXXj13W0IvanwwXTw8MjQpOmo+NiYmQiVqPT00JiYoVz1GLlNCT1hbVz4+PjI0XTw8MjR8Ri5TQk9YW1c+Pj4xNiYyNTVdPDwxNnxGLlNCT1hbVz4+PjgmMjU1XTw8OHxGLlNCT1hbMjU1JlddKSxZW0JdPVlbQi1qXV5XfWZvcih2YXIgWj1b'@; put 'XSxYPTA7WDxMO1grKyl7dmFyIFE9TC1YLHE9WVtRLShYJTQ/MDo0KV07WltYXT1YPDR8fFE8PTQ/cTpGLklOVl9TVUJfTUlYWzBdW0YuU0JPWFtxPj4+MjRdXV5GLklOVl9TVUJfTUlYWzFdW0YuU0JPWFtxPj4+MTYmMjU1XV1eRi5JTlZfU1VCX01JWFsyXVtGLlNCT1hbcT4+PjgmMjU1XV1e'@; put 'Ri5JTlZfU1VCX01JWFszXVtGLlNCT1hbMjU1JnFdXX10aGlzLl9uUm91bmRzPVAsdGhpcy5fa2V5U2NoZWR1bGU9WSx0aGlzLl9pbnZLZXlTY2hlZHVsZT1afSxILnByb3RvdHlwZS5lbmNyeXB0QmxvY2tSYXc9ZnVuY3Rpb24oUil7cmV0dXJuIE4oUj1fKFIpLHRoaXMuX2tleVNjaGVkdWxl'@; put 'LEYuU1VCX01JWCxGLlNCT1gsdGhpcy5fblJvdW5kcyl9LEgucHJvdG90eXBlLmVuY3J5cHRCbG9jaz1mdW5jdGlvbihSKXt2YXIgaj10aGlzLmVuY3J5cHRCbG9ja1JhdyhSKSxQPUQuYWxsb2NVbnNhZmUoMTYpO3JldHVybiBQLndyaXRlVUludDMyQkUoalswXSwwKSxQLndyaXRlVUludDMy'@; put 'QkUoalsxXSw0KSxQLndyaXRlVUludDMyQkUoalsyXSw4KSxQLndyaXRlVUludDMyQkUoalszXSwxMiksUH0sSC5wcm90b3R5cGUuZGVjcnlwdEJsb2NrPWZ1bmN0aW9uKFIpe3ZhciBqPShSPV8oUikpWzFdO1JbMV09UlszXSxSWzNdPWo7dmFyIFA9TihSLHRoaXMuX2ludktleVNjaGVkdWxl'@; put 'LEYuSU5WX1NVQl9NSVgsRi5JTlZfU0JPWCx0aGlzLl9uUm91bmRzKSxMPUQuYWxsb2NVbnNhZmUoMTYpO3JldHVybiBMLndyaXRlVUludDMyQkUoUFswXSwwKSxMLndyaXRlVUludDMyQkUoUFszXSw0KSxMLndyaXRlVUludDMyQkUoUFsyXSw4KSxMLndyaXRlVUludDMyQkUoUFsxXSwxMiks'@; put 'TH0sSC5wcm90b3R5cGUuc2NydWI9ZnVuY3Rpb24oKXtwKHRoaXMuX2tleVNjaGVkdWxlKSxwKHRoaXMuX2ludktleVNjaGVkdWxlKSxwKHRoaXMuX2tleSl9LGNlLmV4cG9ydHMuQUVTPUh9LDQ4NDg6KGNlLEosYik9Pnt2YXIgRD1iKDQ0OTcpLF89Yig5NTA5KS5CdWZmZXIscD1iKDEwMjcp'@; put 'LE49Yig1NzE3KSx3PWIoMzI4OCksRj1iKDcyOTUpLEg9Yig2ODUpO2Z1bmN0aW9uIFAoTCxZLEIsVyl7cC5jYWxsKHRoaXMpO3ZhciBaPV8uYWxsb2MoNCwwKTt0aGlzLl9jaXBoZXI9bmV3IEQuQUVTKFkpO3ZhciBYPXRoaXMuX2NpcGhlci5lbmNyeXB0QmxvY2soWik7dGhpcy5fZ2hhc2g9'@; put 'bmV3IHcoWCksQj1mdW5jdGlvbiBqKEwsWSxCKXtpZigxMj09PVkubGVuZ3RoKXJldHVybiBMLl9maW5JRD1fLmNvbmNhdChbWSxfLmZyb20oWzAsMCwwLDFdKV0pLF8uY29uY2F0KFtZLF8uZnJvbShbMCwwLDAsMl0pXSk7dmFyIFc9bmV3IHcoQiksWj1ZLmxlbmd0aCxYPVolMTY7Vy51cGRh'@; put 'dGUoWSksWCYmVy51cGRhdGUoXy5hbGxvYyhYPTE2LVgsMCkpLFcudXBkYXRlKF8uYWxsb2MoOCwwKSk7dmFyIFE9OCpaLHE9Xy5hbGxvYyg4KTtxLndyaXRlVUludEJFKFEsMCw4KSxXLnVwZGF0ZShxKSxMLl9maW5JRD1XLnN0YXRlO3ZhciB0ZT1fLmZyb20oTC5fZmluSUQpO3JldHVybiBI'@; put 'KHRlKSx0ZX0odGhpcyxCLFgpLHRoaXMuX3ByZXY9Xy5mcm9tKEIpLHRoaXMuX2NhY2hlPV8uYWxsb2NVbnNhZmUoMCksdGhpcy5fc2VjQ2FjaGU9Xy5hbGxvY1Vuc2FmZSgwKSx0aGlzLl9kZWNyeXB0PVcsdGhpcy5fYWxlbj0wLHRoaXMuX2xlbj0wLHRoaXMuX21vZGU9TCx0aGlzLl9hdXRo'@; put 'VGFnPW51bGwsdGhpcy5fY2FsbGVkPSExfU4oUCxwKSxQLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKEwpe2lmKCF0aGlzLl9jYWxsZWQmJnRoaXMuX2FsZW4pe3ZhciBZPTE2LXRoaXMuX2FsZW4lMTY7WTwxNiYmKFk9Xy5hbGxvYyhZLDApLHRoaXMuX2doYXNoLnVwZGF0ZShZKSl9dGhp'@; put 'cy5fY2FsbGVkPSEwO3ZhciBCPXRoaXMuX21vZGUuZW5jcnlwdCh0aGlzLEwpO3JldHVybiB0aGlzLl9naGFzaC51cGRhdGUodGhpcy5fZGVjcnlwdD9MOkIpLHRoaXMuX2xlbis9TC5sZW5ndGgsQn0sUC5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7aWYodGhpcy5fZGVjcnlwdCYmIXRo'@; put 'aXMuX2F1dGhUYWcpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBzdGF0ZSBvciB1bmFibGUgdG8gYXV0aGVudGljYXRlIGRhdGEiKTt2YXIgTD1GKHRoaXMuX2doYXNoLmZpbmFsKDgqdGhpcy5fYWxlbiw4KnRoaXMuX2xlbiksdGhpcy5fY2lwaGVyLmVuY3J5cHRCbG9jayh0aGlzLl9m'@; put 'aW5JRCkpO2lmKHRoaXMuX2RlY3J5cHQmJmZ1bmN0aW9uIFIoTCxZKXt2YXIgQj0wO0wubGVuZ3RoIT09WS5sZW5ndGgmJkIrKztmb3IodmFyIFc9TWF0aC5taW4oTC5sZW5ndGgsWS5sZW5ndGgpLFo9MDtaPFc7KytaKUIrPUxbWl1eWVtaXTtyZXR1cm4gQn0oTCx0aGlzLl9hdXRoVGFnKSl0'@; put 'aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHN0YXRlIG9yIHVuYWJsZSB0byBhdXRoZW50aWNhdGUgZGF0YSIpO3RoaXMuX2F1dGhUYWc9TCx0aGlzLl9jaXBoZXIuc2NydWIoKX0sUC5wcm90b3R5cGUuZ2V0QXV0aFRhZz1mdW5jdGlvbigpe2lmKHRoaXMuX2RlY3J5cHR8fCFfLmlzQnVm'@; put 'ZmVyKHRoaXMuX2F1dGhUYWcpKXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGluZyB0byBnZXQgYXV0aCB0YWcgaW4gdW5zdXBwb3J0ZWQgc3RhdGUiKTtyZXR1cm4gdGhpcy5fYXV0aFRhZ30sUC5wcm90b3R5cGUuc2V0QXV0aFRhZz1mdW5jdGlvbihZKXtpZighdGhpcy5fZGVjcnlwdCl0aHJv'@; put 'dyBuZXcgRXJyb3IoIkF0dGVtcHRpbmcgdG8gc2V0IGF1dGggdGFnIGluIHVuc3VwcG9ydGVkIHN0YXRlIik7dGhpcy5fYXV0aFRhZz1ZfSxQLnByb3RvdHlwZS5zZXRBQUQ9ZnVuY3Rpb24oWSl7aWYodGhpcy5fY2FsbGVkKXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGluZyB0byBzZXQgQUFE'@; put 'IGluIHVuc3VwcG9ydGVkIHN0YXRlIik7dGhpcy5fZ2hhc2gudXBkYXRlKFkpLHRoaXMuX2FsZW4rPVkubGVuZ3RofSxjZS5leHBvcnRzPVB9LDQ2OTY6KGNlLEosYik9Pnt2YXIgRD1iKDE0OTQpLF89Yig2MTkzKSxwPWIoNDk0Nik7Si5jcmVhdGVDaXBoZXI9Si5DaXBoZXI9RC5jcmVhdGVD'@; put 'aXBoZXIsSi5jcmVhdGVDaXBoZXJpdj1KLkNpcGhlcml2PUQuY3JlYXRlQ2lwaGVyaXYsSi5jcmVhdGVEZWNpcGhlcj1KLkRlY2lwaGVyPV8uY3JlYXRlRGVjaXBoZXIsSi5jcmVhdGVEZWNpcGhlcml2PUouRGVjaXBoZXJpdj1fLmNyZWF0ZURlY2lwaGVyaXYsSi5saXN0Q2lwaGVycz1KLmdl'@; put 'dENpcGhlcnM9ZnVuY3Rpb24gTigpe3JldHVybiBPYmplY3Qua2V5cyhwKX19LDYxOTM6KGNlLEosYik9Pnt2YXIgRD1iKDQ4NDgpLF89Yig5NTA5KS5CdWZmZXIscD1iKDQ1KSxOPWIoNTk2OSksdz1iKDEwMjcpLEY9Yig0NDk3KSxIPWIoMzA0OCk7ZnVuY3Rpb24gaihXLFosWCl7dy5jYWxs'@; put 'KHRoaXMpLHRoaXMuX2NhY2hlPW5ldyBQLHRoaXMuX2xhc3Q9dm9pZCAwLHRoaXMuX2NpcGhlcj1uZXcgRi5BRVMoWiksdGhpcy5fcHJldj1fLmZyb20oWCksdGhpcy5fbW9kZT1XLHRoaXMuX2F1dG9wYWRkaW5nPSEwfWZ1bmN0aW9uIFAoKXt0aGlzLmNhY2hlPV8uYWxsb2NVbnNhZmUoMCl9'@; put 'ZnVuY3Rpb24gWShXLFosWCl7dmFyIFE9cFtXLnRvTG93ZXJDYXNlKCldO2lmKCFRKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO2lmKCJzdHJpbmciPT10eXBlb2YgWCYmKFg9Xy5mcm9tKFgpKSwiR0NNIiE9PVEubW9kZSYmWC5sZW5ndGghPT1RLml2KXRocm93'@; put 'IG5ldyBUeXBlRXJyb3IoImludmFsaWQgaXYgbGVuZ3RoICIrWC5sZW5ndGgpO2lmKCJzdHJpbmciPT10eXBlb2YgWiYmKFo9Xy5mcm9tKFopKSxaLmxlbmd0aCE9PVEua2V5LzgpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBrZXkgbGVuZ3RoICIrWi5sZW5ndGgpO3JldHVybiJzdHJl'@; put 'YW0iPT09US50eXBlP25ldyBOKFEubW9kdWxlLFosWCwhMCk6ImF1dGgiPT09US50eXBlP25ldyBEKFEubW9kdWxlLFosWCwhMCk6bmV3IGooUS5tb2R1bGUsWixYKX1iKDU3MTcpKGosdyksai5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihXKXt0aGlzLl9jYWNoZS5hZGQoVyk7Zm9yKHZh'@; put 'ciBaLFgsUT1bXTtaPXRoaXMuX2NhY2hlLmdldCh0aGlzLl9hdXRvcGFkZGluZyk7KVg9dGhpcy5fbW9kZS5kZWNyeXB0KHRoaXMsWiksUS5wdXNoKFgpO3JldHVybiBfLmNvbmNhdChRKX0sai5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7dmFyIFc9dGhpcy5fY2FjaGUuZmx1c2goKTtp'@; put 'Zih0aGlzLl9hdXRvcGFkZGluZylyZXR1cm4gZnVuY3Rpb24gTChXKXt2YXIgWj1XWzE1XTtpZihaPDF8fFo+MTYpdGhyb3cgbmV3IEVycm9yKCJ1bmFibGUgdG8gZGVjcnlwdCBkYXRhIik7Zm9yKHZhciBYPS0xOysrWDxaOylpZihXW1grKDE2LVopXSE9PVopdGhyb3cgbmV3IEVycm9yKCJ1'@; put 'bmFibGUgdG8gZGVjcnlwdCBkYXRhIik7aWYoMTYhPT1aKXJldHVybiBXLnNsaWNlKDAsMTYtWil9KHRoaXMuX21vZGUuZGVjcnlwdCh0aGlzLFcpKTtpZihXKXRocm93IG5ldyBFcnJvcigiZGF0YSBub3QgbXVsdGlwbGUgb2YgYmxvY2sgbGVuZ3RoIil9LGoucHJvdG90eXBlLnNldEF1dG9Q'@; put 'YWRkaW5nPWZ1bmN0aW9uKFcpe3JldHVybiB0aGlzLl9hdXRvcGFkZGluZz0hIVcsdGhpc30sUC5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKFcpe3RoaXMuY2FjaGU9Xy5jb25jYXQoW3RoaXMuY2FjaGUsV10pfSxQLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oVyl7dmFyIFo7aWYoVyl7aWYodGhp'@; put 'cy5jYWNoZS5sZW5ndGg+MTYpcmV0dXJuIFo9dGhpcy5jYWNoZS5zbGljZSgwLDE2KSx0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpLFp9ZWxzZSBpZih0aGlzLmNhY2hlLmxlbmd0aD49MTYpcmV0dXJuIFo9dGhpcy5jYWNoZS5zbGljZSgwLDE2KSx0aGlzLmNhY2hlPXRoaXMuY2Fj'@; put 'aGUuc2xpY2UoMTYpLFo7cmV0dXJuIG51bGx9LFAucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7aWYodGhpcy5jYWNoZS5sZW5ndGgpcmV0dXJuIHRoaXMuY2FjaGV9LEouY3JlYXRlRGVjaXBoZXI9ZnVuY3Rpb24gQihXLFope3ZhciBYPXBbVy50b0xvd2VyQ2FzZSgpXTtpZighWCl0aHJv'@; put 'dyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKTt2YXIgUT1IKFosITEsWC5rZXksWC5pdik7cmV0dXJuIFkoVyxRLmtleSxRLml2KX0sSi5jcmVhdGVEZWNpcGhlcml2PVl9LDE0OTQ6KGNlLEosYik9Pnt2YXIgRD1iKDQ1KSxfPWIoNDg0OCkscD1iKDk1MDkpLkJ1ZmZlcixO'@; put 'PWIoNTk2OSksdz1iKDEwMjcpLEY9Yig0NDk3KSxIPWIoMzA0OCk7ZnVuY3Rpb24gaihXLFosWCl7dy5jYWxsKHRoaXMpLHRoaXMuX2NhY2hlPW5ldyBMLHRoaXMuX2NpcGhlcj1uZXcgRi5BRVMoWiksdGhpcy5fcHJldj1wLmZyb20oWCksdGhpcy5fbW9kZT1XLHRoaXMuX2F1dG9wYWRkaW5n'@; put 'PSEwfWIoNTcxNykoaix3KSxqLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKFcpe3RoaXMuX2NhY2hlLmFkZChXKTtmb3IodmFyIFosWCxRPVtdO1o9dGhpcy5fY2FjaGUuZ2V0KCk7KVg9dGhpcy5fbW9kZS5lbmNyeXB0KHRoaXMsWiksUS5wdXNoKFgpO3JldHVybiBwLmNvbmNhdChRKX07'@; put 'dmFyIFA9cC5hbGxvYygxNiwxNik7ZnVuY3Rpb24gTCgpe3RoaXMuY2FjaGU9cC5hbGxvY1Vuc2FmZSgwKX1mdW5jdGlvbiBZKFcsWixYKXt2YXIgUT1EW1cudG9Mb3dlckNhc2UoKV07aWYoIVEpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIik7aWYoInN0cmluZyI9'@; put 'PXR5cGVvZiBaJiYoWj1wLmZyb20oWikpLFoubGVuZ3RoIT09US5rZXkvOCl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGtleSBsZW5ndGggIitaLmxlbmd0aCk7aWYoInN0cmluZyI9PXR5cGVvZiBYJiYoWD1wLmZyb20oWCkpLCJHQ00iIT09US5tb2RlJiZYLmxlbmd0aCE9PVEuaXYp'@; put 'dGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBpdiBsZW5ndGggIitYLmxlbmd0aCk7cmV0dXJuInN0cmVhbSI9PT1RLnR5cGU/bmV3IE4oUS5tb2R1bGUsWixYKToiYXV0aCI9PT1RLnR5cGU/bmV3IF8oUS5tb2R1bGUsWixYKTpuZXcgaihRLm1vZHVsZSxaLFgpfWoucHJvdG90eXBlLl9m'@; put 'aW5hbD1mdW5jdGlvbigpe3ZhciBXPXRoaXMuX2NhY2hlLmZsdXNoKCk7aWYodGhpcy5fYXV0b3BhZGRpbmcpcmV0dXJuIFc9dGhpcy5fbW9kZS5lbmNyeXB0KHRoaXMsVyksdGhpcy5fY2lwaGVyLnNjcnViKCksVztpZighVy5lcXVhbHMoUCkpdGhyb3cgdGhpcy5fY2lwaGVyLnNjcnViKCks'@; put 'bmV3IEVycm9yKCJkYXRhIG5vdCBtdWx0aXBsZSBvZiBibG9jayBsZW5ndGgiKX0sai5wcm90b3R5cGUuc2V0QXV0b1BhZGRpbmc9ZnVuY3Rpb24oVyl7cmV0dXJuIHRoaXMuX2F1dG9wYWRkaW5nPSEhVyx0aGlzfSxMLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oVyl7dGhpcy5jYWNoZT1wLmNv'@; put 'bmNhdChbdGhpcy5jYWNoZSxXXSl9LEwucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe2lmKHRoaXMuY2FjaGUubGVuZ3RoPjE1KXt2YXIgVz10aGlzLmNhY2hlLnNsaWNlKDAsMTYpO3JldHVybiB0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpLFd9cmV0dXJuIG51bGx9LEwucHJvdG90'@; put 'eXBlLmZsdXNoPWZ1bmN0aW9uKCl7Zm9yKHZhciBXPTE2LXRoaXMuY2FjaGUubGVuZ3RoLFo9cC5hbGxvY1Vuc2FmZShXKSxYPS0xOysrWDxXOylaLndyaXRlVUludDgoVyxYKTtyZXR1cm4gcC5jb25jYXQoW3RoaXMuY2FjaGUsWl0pfSxKLmNyZWF0ZUNpcGhlcml2PVksSi5jcmVhdGVDaXBo'@; put 'ZXI9ZnVuY3Rpb24gQihXLFope3ZhciBYPURbVy50b0xvd2VyQ2FzZSgpXTtpZighWCl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKTt2YXIgUT1IKFosITEsWC5rZXksWC5pdik7cmV0dXJuIFkoVyxRLmtleSxRLml2KX19LDMyODg6KGNlLEosYik9Pnt2YXIgRD1i'@; put 'KDk1MDkpLkJ1ZmZlcixfPUQuYWxsb2MoMTYsMCk7ZnVuY3Rpb24gTihGKXt2YXIgSD1ELmFsbG9jVW5zYWZlKDE2KTtyZXR1cm4gSC53cml0ZVVJbnQzMkJFKEZbMF0+Pj4wLDApLEgud3JpdGVVSW50MzJCRShGWzFdPj4+MCw0KSxILndyaXRlVUludDMyQkUoRlsyXT4+PjAsOCksSC53cml0'@; put 'ZVVJbnQzMkJFKEZbM10+Pj4wLDEyKSxIfWZ1bmN0aW9uIHcoRil7dGhpcy5oPUYsdGhpcy5zdGF0ZT1ELmFsbG9jKDE2LDApLHRoaXMuY2FjaGU9RC5hbGxvY1Vuc2FmZSgwKX13LnByb3RvdHlwZS5naGFzaD1mdW5jdGlvbihGKXtmb3IodmFyIEg9LTE7KytIPEYubGVuZ3RoOyl0aGlzLnN0'@; put 'YXRlW0hdXj1GW0hdO3RoaXMuX211bHRpcGx5KCl9LHcucHJvdG90eXBlLl9tdWx0aXBseT1mdW5jdGlvbigpe2Zvcih2YXIgUixQLEY9ZnVuY3Rpb24gcChGKXtyZXR1cm5bRi5yZWFkVUludDMyQkUoMCksRi5yZWFkVUludDMyQkUoNCksRi5yZWFkVUludDMyQkUoOCksRi5yZWFkVUludDMy'@; put 'QkUoMTIpXX0odGhpcy5oKSxIPVswLDAsMCwwXSxMPS0xOysrTDwxMjg7KXtmb3IoISEodGhpcy5zdGF0ZVt+fihMLzgpXSYxPDw3LUwlOCkmJihIWzBdXj1GWzBdLEhbMV1ePUZbMV0sSFsyXV49RlsyXSxIWzNdXj1GWzNdKSxQPSEhKDEmRlszXSksUj0zO1I+MDtSLS0pRltSXT1GW1JdPj4+'@; put 'MXwoMSZGW1ItMV0pPDwzMTtGWzBdPUZbMF0+Pj4xLFAmJihGWzBdPS01MjAwOTM2OTZeRlswXSl9dGhpcy5zdGF0ZT1OKEgpfSx3LnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oRil7dGhpcy5jYWNoZT1ELmNvbmNhdChbdGhpcy5jYWNoZSxGXSk7Zm9yKHZhciBIO3RoaXMuY2FjaGUubGVu'@; put 'Z3RoPj0xNjspSD10aGlzLmNhY2hlLnNsaWNlKDAsMTYpLHRoaXMuY2FjaGU9dGhpcy5jYWNoZS5zbGljZSgxNiksdGhpcy5naGFzaChIKX0sdy5wcm90b3R5cGUuZmluYWw9ZnVuY3Rpb24oRixIKXtyZXR1cm4gdGhpcy5jYWNoZS5sZW5ndGgmJnRoaXMuZ2hhc2goRC5jb25jYXQoW3RoaXMu'@; put 'Y2FjaGUsX10sMTYpKSx0aGlzLmdoYXNoKE4oWzAsRiwwLEhdKSksdGhpcy5zdGF0ZX0sY2UuZXhwb3J0cz13fSw2ODU6Y2U9PntjZS5leHBvcnRzPWZ1bmN0aW9uIEooYil7Zm9yKHZhciBfLEQ9Yi5sZW5ndGg7RC0tOyl7aWYoMjU1IT09KF89Yi5yZWFkVUludDgoRCkpKXtfKyssYi53cml0'@; put 'ZVVJbnQ4KF8sRCk7YnJlYWt9Yi53cml0ZVVJbnQ4KDAsRCl9fX0sNTI5MjooY2UsSixiKT0+e3ZhciBEPWIoNzI5NSk7Si5lbmNyeXB0PWZ1bmN0aW9uKF8scCl7dmFyIE49RChwLF8uX3ByZXYpO3JldHVybiBfLl9wcmV2PV8uX2NpcGhlci5lbmNyeXB0QmxvY2soTiksXy5fcHJldn0sSi5k'@; put 'ZWNyeXB0PWZ1bmN0aW9uKF8scCl7dmFyIE49Xy5fcHJldjtfLl9wcmV2PXA7dmFyIHc9Xy5fY2lwaGVyLmRlY3J5cHRCbG9jayhwKTtyZXR1cm4gRCh3LE4pfX0sNjMxMTooY2UsSixiKT0+e3ZhciBEPWIoOTUwOSkuQnVmZmVyLF89Yig3Mjk1KTtmdW5jdGlvbiBwKE4sdyxGKXt2YXIgSD13'@; put 'Lmxlbmd0aCxSPV8odyxOLl9jYWNoZSk7cmV0dXJuIE4uX2NhY2hlPU4uX2NhY2hlLnNsaWNlKEgpLE4uX3ByZXY9RC5jb25jYXQoW04uX3ByZXYsRj93OlJdKSxSfUouZW5jcnlwdD1mdW5jdGlvbihOLHcsRil7Zm9yKHZhciBSLEg9RC5hbGxvY1Vuc2FmZSgwKTt3Lmxlbmd0aDspe2lmKDA9'@; put 'PT1OLl9jYWNoZS5sZW5ndGgmJihOLl9jYWNoZT1OLl9jaXBoZXIuZW5jcnlwdEJsb2NrKE4uX3ByZXYpLE4uX3ByZXY9RC5hbGxvY1Vuc2FmZSgwKSksIShOLl9jYWNoZS5sZW5ndGg8PXcubGVuZ3RoKSl7SD1ELmNvbmNhdChbSCxwKE4sdyxGKV0pO2JyZWFrfUg9RC5jb25jYXQoW0gscChO'@; put 'LHcuc2xpY2UoMCxSPU4uX2NhY2hlLmxlbmd0aCksRildKSx3PXcuc2xpY2UoUil9cmV0dXJuIEh9fSwxNTEwOihjZSxKLGIpPT57dmFyIEQ9Yig5NTA5KS5CdWZmZXI7ZnVuY3Rpb24gXyhOLHcsRil7Zm9yKHZhciBMLFksUj0tMSxQPTA7KytSPDg7KVArPSgxMjgmKFk9Ti5fY2lwaGVyLmVu'@; put 'Y3J5cHRCbG9jayhOLl9wcmV2KVswXV4oTD13JjE8PDctUj8xMjg6MCkpKT4+UiU4LE4uX3ByZXY9cChOLl9wcmV2LEY/TDpZKTtyZXR1cm4gUH1mdW5jdGlvbiBwKE4sdyl7dmFyIEY9Ti5sZW5ndGgsSD0tMSxSPUQuYWxsb2NVbnNhZmUoTi5sZW5ndGgpO2ZvcihOPUQuY29uY2F0KFtOLEQu'@; put 'ZnJvbShbd10pXSk7KytIPEY7KVJbSF09TltIXTw8MXxOW0grMV0+Pjc7cmV0dXJuIFJ9Si5lbmNyeXB0PWZ1bmN0aW9uKE4sdyxGKXtmb3IodmFyIEg9dy5sZW5ndGgsUj1ELmFsbG9jVW5zYWZlKEgpLGo9LTE7KytqPEg7KVJbal09XyhOLHdbal0sRik7cmV0dXJuIFJ9fSwxOTY0OihjZSxK'@; put 'LGIpPT57dmFyIEQ9Yig5NTA5KS5CdWZmZXI7ZnVuY3Rpb24gXyhwLE4sdyl7dmFyIEg9cC5fY2lwaGVyLmVuY3J5cHRCbG9jayhwLl9wcmV2KVswXV5OO3JldHVybiBwLl9wcmV2PUQuY29uY2F0KFtwLl9wcmV2LnNsaWNlKDEpLEQuZnJvbShbdz9OOkhdKV0pLEh9Si5lbmNyeXB0PWZ1bmN0'@; put 'aW9uKHAsTix3KXtmb3IodmFyIEY9Ti5sZW5ndGgsSD1ELmFsbG9jVW5zYWZlKEYpLFI9LTE7KytSPEY7KUhbUl09XyhwLE5bUl0sdyk7cmV0dXJuIEh9fSw2MDA5OihjZSxKLGIpPT57dmFyIEQ9Yig3Mjk1KSxfPWIoOTUwOSkuQnVmZmVyLHA9Yig2ODUpO2Z1bmN0aW9uIE4oRil7dmFyIEg9'@; put 'Ri5fY2lwaGVyLmVuY3J5cHRCbG9ja1JhdyhGLl9wcmV2KTtyZXR1cm4gcChGLl9wcmV2KSxIfUouZW5jcnlwdD1mdW5jdGlvbihGLEgpe3ZhciBSPU1hdGguY2VpbChILmxlbmd0aC8xNiksaj1GLl9jYWNoZS5sZW5ndGg7Ri5fY2FjaGU9Xy5jb25jYXQoW0YuX2NhY2hlLF8uYWxsb2NVbnNh'@; put 'ZmUoMTYqUildKTtmb3IodmFyIFA9MDtQPFI7UCsrKXt2YXIgTD1OKEYpLFk9aisxNipQO0YuX2NhY2hlLndyaXRlVUludDMyQkUoTFswXSxZKzApLEYuX2NhY2hlLndyaXRlVUludDMyQkUoTFsxXSxZKzQpLEYuX2NhY2hlLndyaXRlVUludDMyQkUoTFsyXSxZKzgpLEYuX2NhY2hlLndyaXRl'@; put 'VUludDMyQkUoTFszXSxZKzEyKX12YXIgQj1GLl9jYWNoZS5zbGljZSgwLEgubGVuZ3RoKTtyZXR1cm4gRi5fY2FjaGU9Ri5fY2FjaGUuc2xpY2UoSC5sZW5ndGgpLEQoSCxCKX19LDEwODQ6KGNlLEopPT57Si5lbmNyeXB0PWZ1bmN0aW9uKGIsRCl7cmV0dXJuIGIuX2NpcGhlci5lbmNyeXB0'@; put 'QmxvY2soRCl9LEouZGVjcnlwdD1mdW5jdGlvbihiLEQpe3JldHVybiBiLl9jaXBoZXIuZGVjcnlwdEJsb2NrKEQpfX0sNDU6KGNlLEosYik9Pnt2YXIgRD17RUNCOmIoMTA4NCksQ0JDOmIoNTI5MiksQ0ZCOmIoNjMxMSksQ0ZCODpiKDE5NjQpLENGQjE6YigxNTEwKSxPRkI6Yig4ODYxKSxD'@; put 'VFI6Yig2MDA5KSxHQ006Yig2MDA5KX0sXz1iKDQ5NDYpO2Zvcih2YXIgcCBpbiBfKV9bcF0ubW9kdWxlPURbX1twXS5tb2RlXTtjZS5leHBvcnRzPV99LDg4NjE6KGNlLEosYik9Pnt2YXIgRD1iKDg3NjQpLkJ1ZmZlcixfPWIoNzI5NSk7ZnVuY3Rpb24gcChOKXtyZXR1cm4gTi5fcHJldj1O'@; put 'Ll9jaXBoZXIuZW5jcnlwdEJsb2NrKE4uX3ByZXYpLE4uX3ByZXZ9Si5lbmNyeXB0PWZ1bmN0aW9uKE4sdyl7Zm9yKDtOLl9jYWNoZS5sZW5ndGg8dy5sZW5ndGg7KU4uX2NhY2hlPUQuY29uY2F0KFtOLl9jYWNoZSxwKE4pXSk7dmFyIEY9Ti5fY2FjaGUuc2xpY2UoMCx3Lmxlbmd0aCk7cmV0'@; put 'dXJuIE4uX2NhY2hlPU4uX2NhY2hlLnNsaWNlKHcubGVuZ3RoKSxfKHcsRil9fSw1OTY5OihjZSxKLGIpPT57dmFyIEQ9Yig0NDk3KSxfPWIoOTUwOSkuQnVmZmVyLHA9YigxMDI3KTtmdW5jdGlvbiB3KEYsSCxSLGope3AuY2FsbCh0aGlzKSx0aGlzLl9jaXBoZXI9bmV3IEQuQUVTKEgpLHRo'@; put 'aXMuX3ByZXY9Xy5mcm9tKFIpLHRoaXMuX2NhY2hlPV8uYWxsb2NVbnNhZmUoMCksdGhpcy5fc2VjQ2FjaGU9Xy5hbGxvY1Vuc2FmZSgwKSx0aGlzLl9kZWNyeXB0PWosdGhpcy5fbW9kZT1GfWIoNTcxNykodyxwKSx3LnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKEYpe3JldHVybiB0aGlz'@; put 'Ll9tb2RlLmVuY3J5cHQodGhpcyxGLHRoaXMuX2RlY3J5cHQpfSx3LnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXt0aGlzLl9jaXBoZXIuc2NydWIoKX0sY2UuZXhwb3J0cz13fSwzNjE0OihjZSxKLGIpPT57dmFyIEQ9Yig3NjY3KSxfPWIoNDY5NikscD1iKDQ1KSxOPWIoOTcxNSksdz1i'@; put 'KDMwNDgpO2Z1bmN0aW9uIFIoTCxZLEIpe2lmKEw9TC50b0xvd2VyQ2FzZSgpLHBbTF0pcmV0dXJuIF8uY3JlYXRlQ2lwaGVyaXYoTCxZLEIpO2lmKE5bTF0pcmV0dXJuIG5ldyBEKHtrZXk6WSxpdjpCLG1vZGU6TH0pO3Rocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIp'@; put 'fWZ1bmN0aW9uIGooTCxZLEIpe2lmKEw9TC50b0xvd2VyQ2FzZSgpLHBbTF0pcmV0dXJuIF8uY3JlYXRlRGVjaXBoZXJpdihMLFksQik7aWYoTltMXSlyZXR1cm4gbmV3IEQoe2tleTpZLGl2OkIsbW9kZTpMLGRlY3J5cHQ6ITB9KTt0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRl'@; put 'IHR5cGUiKX1KLmNyZWF0ZUNpcGhlcj1KLkNpcGhlcj1mdW5jdGlvbiBGKEwsWSl7dmFyIEIsVztpZihMPUwudG9Mb3dlckNhc2UoKSxwW0xdKUI9cFtMXS5rZXksVz1wW0xdLml2O2Vsc2V7aWYoIU5bTF0pdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIik7Qj04Kk5b'@; put 'TF0ua2V5LFc9TltMXS5pdn12YXIgWj13KFksITEsQixXKTtyZXR1cm4gUihMLFoua2V5LFouaXYpfSxKLmNyZWF0ZUNpcGhlcml2PUouQ2lwaGVyaXY9UixKLmNyZWF0ZURlY2lwaGVyPUouRGVjaXBoZXI9ZnVuY3Rpb24gSChMLFkpe3ZhciBCLFc7aWYoTD1MLnRvTG93ZXJDYXNlKCkscFtM'@; put 'XSlCPXBbTF0ua2V5LFc9cFtMXS5pdjtlbHNle2lmKCFOW0xdKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO0I9OCpOW0xdLmtleSxXPU5bTF0uaXZ9dmFyIFo9dyhZLCExLEIsVyk7cmV0dXJuIGooTCxaLmtleSxaLml2KX0sSi5jcmVhdGVEZWNpcGhlcml2PUou'@; put 'RGVjaXBoZXJpdj1qLEoubGlzdENpcGhlcnM9Si5nZXRDaXBoZXJzPWZ1bmN0aW9uIFAoKXtyZXR1cm4gT2JqZWN0LmtleXMoTikuY29uY2F0KF8uZ2V0Q2lwaGVycygpKX19LDc2Njc6KGNlLEosYik9Pnt2YXIgRD1iKDEwMjcpLF89Yig1MjUxKSxwPWIoNTcxNyksTj1iKDk1MDkpLkJ1ZmZl'@; put 'cix3PXsiZGVzLWVkZTMtY2JjIjpfLkNCQy5pbnN0YW50aWF0ZShfLkVERSksImRlcy1lZGUzIjpfLkVERSwiZGVzLWVkZS1jYmMiOl8uQ0JDLmluc3RhbnRpYXRlKF8uRURFKSwiZGVzLWVkZSI6Xy5FREUsImRlcy1jYmMiOl8uQ0JDLmluc3RhbnRpYXRlKF8uREVTKSwiZGVzLWVjYiI6Xy5E'@; put 'RVN9O2Z1bmN0aW9uIEYoSCl7RC5jYWxsKHRoaXMpO3ZhciBQLFI9SC5tb2RlLnRvTG93ZXJDYXNlKCksaj13W1JdO1A9SC5kZWNyeXB0PyJkZWNyeXB0IjoiZW5jcnlwdCI7dmFyIEw9SC5rZXk7Ti5pc0J1ZmZlcihMKXx8KEw9Ti5mcm9tKEwpKSwoImRlcy1lZGUiPT09Unx8ImRlcy1lZGUt'@; put 'Y2JjIj09PVIpJiYoTD1OLmNvbmNhdChbTCxMLnNsaWNlKDAsOCldKSk7dmFyIFk9SC5pdjtOLmlzQnVmZmVyKFkpfHwoWT1OLmZyb20oWSkpLHRoaXMuX2Rlcz1qLmNyZWF0ZSh7a2V5OkwsaXY6WSx0eXBlOlB9KX13LmRlcz13WyJkZXMtY2JjIl0sdy5kZXMzPXdbImRlcy1lZGUzLWNiYyJd'@; put 'LGNlLmV4cG9ydHM9RixwKEYsRCksRi5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihIKXtyZXR1cm4gTi5mcm9tKHRoaXMuX2Rlcy51cGRhdGUoSCkpfSxGLnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXtyZXR1cm4gTi5mcm9tKHRoaXMuX2Rlcy5maW5hbCgpKX19LDk3MTU6KGNlLEop'@; put 'PT57SlsiZGVzLWVjYiJdPXtrZXk6OCxpdjowfSxKWyJkZXMtY2JjIl09Si5kZXM9e2tleTo4LGl2Ojh9LEpbImRlcy1lZGUzLWNiYyJdPUouZGVzMz17a2V5OjI0LGl2Ojh9LEpbImRlcy1lZGUzIl09e2tleToyNCxpdjowfSxKWyJkZXMtZWRlLWNiYyJdPXtrZXk6MTYsaXY6OH0sSlsiZGVz'@; put 'LWVkZSJdPXtrZXk6MTYsaXY6MH19LDM2NjM6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigzNTUwKSxfPWIoMTc5OCkscD1iKDk1MDkpLkJ1ZmZlcjtmdW5jdGlvbiBOKEgpe3ZhciBqLFI9SC5tb2R1bHVzLmJ5dGVMZW5ndGgoKTtkb3tqPW5ldyBEKF8oUikpfXdoaWxlKGouY21w'@; put 'KEgubW9kdWx1cyk+PTB8fCFqLnVtb2QoSC5wcmltZTEpfHwhai51bW9kKEgucHJpbWUyKSk7cmV0dXJuIGp9ZnVuY3Rpb24gRihILFIpe3ZhciBqPWZ1bmN0aW9uIHcoSCl7dmFyIFI9TihIKTtyZXR1cm57YmxpbmRlcjpSLnRvUmVkKEQubW9udChILm1vZHVsdXMpKS5yZWRQb3cobmV3IEQo'@; put 'SC5wdWJsaWNFeHBvbmVudCkpLmZyb21SZWQoKSx1bmJsaW5kZXI6Ui5pbnZtKEgubW9kdWx1cyl9fShSKSxQPVIubW9kdWx1cy5ieXRlTGVuZ3RoKCksTD1uZXcgRChIKS5tdWwoai5ibGluZGVyKS51bW9kKFIubW9kdWx1cyksWT1MLnRvUmVkKEQubW9udChSLnByaW1lMSkpLEI9TC50b1Jl'@; put 'ZChELm1vbnQoUi5wcmltZTIpKSxXPVIuY29lZmZpY2llbnQsWj1SLnByaW1lMSxYPVIucHJpbWUyLFE9WS5yZWRQb3coUi5leHBvbmVudDEpLmZyb21SZWQoKSxxPUIucmVkUG93KFIuZXhwb25lbnQyKS5mcm9tUmVkKCksdGU9US5pc3ViKHEpLmltdWwoVykudW1vZChaKS5pbXVsKFgpO3Jl'@; put 'dHVybiBxLmlhZGQodGUpLmltdWwoai51bmJsaW5kZXIpLnVtb2QoUi5tb2R1bHVzKS50b0FycmF5TGlrZShwLCJiZSIsUCl9Ri5nZXRyPU4sY2UuZXhwb3J0cz1GfSw2MDQyOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO2NlLmV4cG9ydHM9Yig1MjA3KX0sNDc0MzooY2UsSixiKT0+eyJ1c2Ug'@; put 'c3RyaWN0Ijt2YXIgRD1iKDk1MDkpLkJ1ZmZlcixfPWIoMzQ4MikscD1iKDM4NzIpLE49Yig1NzE3KSx3PWIoMjk1NyksRj1iKDc3NTMpLEg9Yig1MjA3KTtmdW5jdGlvbiBSKFkpe3AuV3JpdGFibGUuY2FsbCh0aGlzKTt2YXIgQj1IW1ldO2lmKCFCKXRocm93IG5ldyBFcnJvcigiVW5rbm93'@; put 'biBtZXNzYWdlIGRpZ2VzdCIpO3RoaXMuX2hhc2hUeXBlPUIuaGFzaCx0aGlzLl9oYXNoPV8oQi5oYXNoKSx0aGlzLl90YWc9Qi5pZCx0aGlzLl9zaWduVHlwZT1CLnNpZ259ZnVuY3Rpb24gaihZKXtwLldyaXRhYmxlLmNhbGwodGhpcyk7dmFyIEI9SFtZXTtpZighQil0aHJvdyBuZXcgRXJy'@; put 'b3IoIlVua25vd24gbWVzc2FnZSBkaWdlc3QiKTt0aGlzLl9oYXNoPV8oQi5oYXNoKSx0aGlzLl90YWc9Qi5pZCx0aGlzLl9zaWduVHlwZT1CLnNpZ259ZnVuY3Rpb24gUChZKXtyZXR1cm4gbmV3IFIoWSl9ZnVuY3Rpb24gTChZKXtyZXR1cm4gbmV3IGooWSl9T2JqZWN0LmtleXMoSCkuZm9y'@; put 'RWFjaChmdW5jdGlvbihZKXtIW1ldLmlkPUQuZnJvbShIW1ldLmlkLCJoZXgiKSxIW1kudG9Mb3dlckNhc2UoKV09SFtZXX0pLE4oUixwLldyaXRhYmxlKSxSLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24oQixXLFope3RoaXMuX2hhc2gudXBkYXRlKEIpLFooKX0sUi5wcm90b3R5cGUudXBk'@; put 'YXRlPWZ1bmN0aW9uKEIsVyl7cmV0dXJuIHRoaXMuX2hhc2gudXBkYXRlKCJzdHJpbmciPT10eXBlb2YgQj9ELmZyb20oQixXKTpCKSx0aGlzfSxSLnByb3RvdHlwZS5zaWduPWZ1bmN0aW9uKEIsVyl7dGhpcy5lbmQoKTt2YXIgWj10aGlzLl9oYXNoLmRpZ2VzdCgpLFg9dyhaLEIsdGhpcy5f'@; put 'aGFzaFR5cGUsdGhpcy5fc2lnblR5cGUsdGhpcy5fdGFnKTtyZXR1cm4gVz9YLnRvU3RyaW5nKFcpOlh9LE4oaixwLldyaXRhYmxlKSxqLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24oQixXLFope3RoaXMuX2hhc2gudXBkYXRlKEIpLFooKX0sai5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9u'@; put 'KEIsVyl7cmV0dXJuIHRoaXMuX2hhc2gudXBkYXRlKCJzdHJpbmciPT10eXBlb2YgQj9ELmZyb20oQixXKTpCKSx0aGlzfSxqLnByb3RvdHlwZS52ZXJpZnk9ZnVuY3Rpb24oQixXLFope3ZhciBYPSJzdHJpbmciPT10eXBlb2YgVz9ELmZyb20oVyxaKTpXO3RoaXMuZW5kKCk7dmFyIFE9dGhp'@; put 'cy5faGFzaC5kaWdlc3QoKTtyZXR1cm4gRihYLFEsQix0aGlzLl9zaWduVHlwZSx0aGlzLl90YWcpfSxjZS5leHBvcnRzPXtTaWduOlAsVmVyaWZ5OkwsY3JlYXRlU2lnbjpQLGNyZWF0ZVZlcmlmeTpMfX0sMjk1NzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDk1MDkpLkJ1ZmZl'@; put 'cixfPWIoODM1NSkscD1iKDM2NjMpLE49Yig2OTQ4KS5lYyx3PWIoMzU1MCksRj1iKDk4MCksSD1iKDEzMDgpO2Z1bmN0aW9uIEIocSx0ZSxpZSxzZSl7aWYoKHE9RC5mcm9tKHEudG9BcnJheSgpKSkubGVuZ3RoPHRlLmJ5dGVMZW5ndGgoKSl7dmFyIGdlPUQuYWxsb2ModGUuYnl0ZUxlbmd0'@; put 'aCgpLXEubGVuZ3RoKTtxPUQuY29uY2F0KFtnZSxxXSl9dmFyIF9lPWllLmxlbmd0aCxUZT1mdW5jdGlvbiBaKHEsdGUpe3E9KHE9VyhxLHRlKSkubW9kKHRlKTt2YXIgaWU9RC5mcm9tKHEudG9BcnJheSgpKTtpZihpZS5sZW5ndGg8dGUuYnl0ZUxlbmd0aCgpKXt2YXIgc2U9RC5hbGxvYyh0'@; put 'ZS5ieXRlTGVuZ3RoKCktaWUubGVuZ3RoKTtpZT1ELmNvbmNhdChbc2UsaWVdKX1yZXR1cm4gaWV9KGllLHRlKSxTZT1ELmFsbG9jKF9lKTtTZS5maWxsKDEpO3ZhciB6ZT1ELmFsbG9jKF9lKTtyZXR1cm4gemU9XyhzZSx6ZSkudXBkYXRlKFNlKS51cGRhdGUoRC5mcm9tKFswXSkpLnVwZGF0'@; put 'ZShxKS51cGRhdGUoVGUpLmRpZ2VzdCgpLFNlPV8oc2UsemUpLnVwZGF0ZShTZSkuZGlnZXN0KCkse2s6emU9XyhzZSx6ZSkudXBkYXRlKFNlKS51cGRhdGUoRC5mcm9tKFsxXSkpLnVwZGF0ZShxKS51cGRhdGUoVGUpLmRpZ2VzdCgpLHY6U2U9XyhzZSx6ZSkudXBkYXRlKFNlKS5kaWdlc3Qo'@; put 'KX19ZnVuY3Rpb24gVyhxLHRlKXt2YXIgaWU9bmV3IHcocSksc2U9KHEubGVuZ3RoPDwzKS10ZS5iaXRMZW5ndGgoKTtyZXR1cm4gc2U+MCYmaWUuaXNocm4oc2UpLGllfWZ1bmN0aW9uIFgocSx0ZSxpZSl7dmFyIHNlLGdlO2Rve2ZvcihzZT1ELmFsbG9jKDApOzgqc2UubGVuZ3RoPHEuYml0'@; put 'TGVuZ3RoKCk7KXRlLnY9XyhpZSx0ZS5rKS51cGRhdGUodGUudikuZGlnZXN0KCksc2U9RC5jb25jYXQoW3NlLHRlLnZdKTtnZT1XKHNlLHEpLHRlLms9XyhpZSx0ZS5rKS51cGRhdGUodGUudikudXBkYXRlKEQuZnJvbShbMF0pKS5kaWdlc3QoKSx0ZS52PV8oaWUsdGUuaykudXBkYXRlKHRl'@; put 'LnYpLmRpZ2VzdCgpfXdoaWxlKC0xIT09Z2UuY21wKHEpKTtyZXR1cm4gZ2V9ZnVuY3Rpb24gUShxLHRlLGllLHNlKXtyZXR1cm4gcS50b1JlZCh3Lm1vbnQoaWUpKS5yZWRQb3codGUpLmZyb21SZWQoKS5tb2Qoc2UpfWNlLmV4cG9ydHM9ZnVuY3Rpb24gaihxLHRlLGllLHNlLGdlKXt2YXIg'@; put 'X2U9Rih0ZSk7aWYoX2UuY3VydmUpe2lmKCJlY2RzYSIhPT1zZSYmImVjZHNhL3JzYSIhPT1zZSl0aHJvdyBuZXcgRXJyb3IoIndyb25nIHByaXZhdGUga2V5IHR5cGUiKTtyZXR1cm4gZnVuY3Rpb24gUChxLHRlKXt2YXIgaWU9SFt0ZS5jdXJ2ZS5qb2luKCIuIildO2lmKCFpZSl0aHJvdyBu'@; put 'ZXcgRXJyb3IoInVua25vd24gY3VydmUgIit0ZS5jdXJ2ZS5qb2luKCIuIikpO3ZhciBfZT1uZXcgTihpZSkua2V5RnJvbVByaXZhdGUodGUucHJpdmF0ZUtleSkuc2lnbihxKTtyZXR1cm4gRC5mcm9tKF9lLnRvREVSKCkpfShxLF9lKX1pZigiZHNhIj09PV9lLnR5cGUpe2lmKCJkc2EiIT09'@; put 'c2UpdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBwcml2YXRlIGtleSB0eXBlIik7cmV0dXJuIGZ1bmN0aW9uIEwocSx0ZSxpZSl7Zm9yKHZhciB6ZSxzZT10ZS5wYXJhbXMucHJpdl9rZXksZ2U9dGUucGFyYW1zLnAsX2U9dGUucGFyYW1zLnEsVGU9dGUucGFyYW1zLmcsU2U9bmV3IHcoMCksej1X'@; put 'KHEsX2UpLm1vZChfZSksZz0hMSx5PUIoc2UsX2UscSxpZSk7ITE9PT1nOylTZT1RKFRlLHplPVgoX2UseSxpZSksZ2UsX2UpLDA9PT0oZz16ZS5pbnZtKF9lKS5pbXVsKHouYWRkKHNlLm11bChTZSkpKS5tb2QoX2UpKS5jbXBuKDApJiYoZz0hMSxTZT1uZXcgdygwKSk7cmV0dXJuIGZ1bmN0'@; put 'aW9uIFkocSx0ZSl7cT1xLnRvQXJyYXkoKSx0ZT10ZS50b0FycmF5KCksMTI4JnFbMF0mJihxPVswXS5jb25jYXQocSkpLDEyOCZ0ZVswXSYmKHRlPVswXS5jb25jYXQodGUpKTt2YXIgc2U9WzQ4LHEubGVuZ3RoK3RlLmxlbmd0aCs0LDIscS5sZW5ndGhdO3JldHVybiBzZT1zZS5jb25jYXQo'@; put 'cSxbMix0ZS5sZW5ndGhdLHRlKSxELmZyb20oc2UpfShTZSxnKX0ocSxfZSxpZSl9aWYoInJzYSIhPT1zZSYmImVjZHNhL3JzYSIhPT1zZSl0aHJvdyBuZXcgRXJyb3IoIndyb25nIHByaXZhdGUga2V5IHR5cGUiKTtpZih2b2lkIDAhPT10ZS5wYWRkaW5nJiYxIT09dGUucGFkZGluZyl0aHJv'@; put 'dyBuZXcgRXJyb3IoImlsbGVnYWwgb3IgdW5zdXBwb3J0ZWQgcGFkZGluZyBtb2RlIik7cT1ELmNvbmNhdChbZ2UscV0pO2Zvcih2YXIgVGU9X2UubW9kdWx1cy5ieXRlTGVuZ3RoKCksU2U9WzAsMV07cS5sZW5ndGgrU2UubGVuZ3RoKzE8VGU7KVNlLnB1c2goMjU1KTtTZS5wdXNoKDApO2Zv'@; put 'cih2YXIgemU9LTE7Kyt6ZTxxLmxlbmd0aDspU2UucHVzaChxW3plXSk7cmV0dXJuIHAoU2UsX2UpfSxjZS5leHBvcnRzLmdldEtleT1CLGNlLmV4cG9ydHMubWFrZUtleT1YfSw3NzUzOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoOTUwOSkuQnVmZmVyLF89YigzNTUwKSxwPWIo'@; put 'Njk0OCkuZWMsTj1iKDk4MCksdz1iKDEzMDgpO2Z1bmN0aW9uIGooUCxMKXtpZihQLmNtcG4oMCk8PTApdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHNpZyIpO2lmKFAuY21wKEwpPj0wKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBzaWciKX1jZS5leHBvcnRzPWZ1bmN0aW9uIEYoUCxMLFks'@; put 'QixXKXt2YXIgWj1OKFkpO2lmKCJlYyI9PT1aLnR5cGUpe2lmKCJlY2RzYSIhPT1CJiYiZWNkc2EvcnNhIiE9PUIpdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBwdWJsaWMga2V5IHR5cGUiKTtyZXR1cm4gZnVuY3Rpb24gSChQLEwsWSl7dmFyIEI9d1tZLmRhdGEuYWxnb3JpdGhtLmN1cnZlLmpv'@; put 'aW4oIi4iKV07aWYoIUIpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGN1cnZlICIrWS5kYXRhLmFsZ29yaXRobS5jdXJ2ZS5qb2luKCIuIikpO3JldHVybiBuZXcgcChCKS52ZXJpZnkoTCxQLFkuZGF0YS5zdWJqZWN0UHJpdmF0ZUtleS5kYXRhKX0oUCxMLFopfWlmKCJkc2EiPT09Wi50eXBl'@; put 'KXtpZigiZHNhIiE9PUIpdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBwdWJsaWMga2V5IHR5cGUiKTtyZXR1cm4gZnVuY3Rpb24gUihQLEwsWSl7dmFyIEI9WS5kYXRhLnAsVz1ZLmRhdGEucSxaPVkuZGF0YS5nLFg9WS5kYXRhLnB1Yl9rZXksUT1OLnNpZ25hdHVyZS5kZWNvZGUoUCwiZGVyIiks'@; put 'cT1RLnMsdGU9US5yO2oocSxXKSxqKHRlLFcpO3ZhciBpZT1fLm1vbnQoQiksc2U9cS5pbnZtKFcpO3JldHVybiAwPT09Wi50b1JlZChpZSkucmVkUG93KG5ldyBfKEwpLm11bChzZSkubW9kKFcpKS5mcm9tUmVkKCkubXVsKFgudG9SZWQoaWUpLnJlZFBvdyh0ZS5tdWwoc2UpLm1vZChXKSku'@; put 'ZnJvbVJlZCgpKS5tb2QoQikubW9kKFcpLmNtcCh0ZSl9KFAsTCxaKX1pZigicnNhIiE9PUImJiJlY2RzYS9yc2EiIT09Qil0aHJvdyBuZXcgRXJyb3IoIndyb25nIHB1YmxpYyBrZXkgdHlwZSIpO0w9RC5jb25jYXQoW1csTF0pO2Zvcih2YXIgWD1aLm1vZHVsdXMuYnl0ZUxlbmd0aCgpLFE9'@; put 'WzFdLHE9MDtMLmxlbmd0aCtRLmxlbmd0aCsyPFg7KVEucHVzaCgyNTUpLHErPTE7US5wdXNoKDApO2Zvcih2YXIgdGU9LTE7Kyt0ZTxMLmxlbmd0aDspUS5wdXNoKExbdGVdKTtRPUQuZnJvbShRKTt2YXIgaWU9Xy5tb250KFoubW9kdWx1cyk7UD0oUD1uZXcgXyhQKS50b1JlZChpZSkpLnJl'@; put 'ZFBvdyhuZXcgXyhaLnB1YmxpY0V4cG9uZW50KSksUD1ELmZyb20oUC5mcm9tUmVkKCkudG9BcnJheSgpKTt2YXIgc2U9cTw4PzE6MDtmb3IoWD1NYXRoLm1pbihQLmxlbmd0aCxRLmxlbmd0aCksUC5sZW5ndGghPT1RLmxlbmd0aCYmKHNlPTEpLHRlPS0xOysrdGU8WDspc2V8PVBbdGVdXlFb'@; put 'dGVdO3JldHVybiAwPT09c2V9fSw0MzkwOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoODIxMiksXz1PYmplY3Qua2V5c3x8ZnVuY3Rpb24oWSl7dmFyIEI9W107Zm9yKHZhciBXIGluIFkpQi5wdXNoKFcpO3JldHVybiBCfTtjZS5leHBvcnRzPWo7dmFyIHA9T2JqZWN0LmNyZWF0'@; put 'ZShiKDY0OTcpKTtwLmluaGVyaXRzPWIoNTcxNyk7dmFyIE49Yig0OTYwKSx3PWIoMjAxMCk7cC5pbmhlcml0cyhqLE4pO2Zvcih2YXIgRj1fKHcucHJvdG90eXBlKSxIPTA7SDxGLmxlbmd0aDtIKyspe3ZhciBSPUZbSF07ai5wcm90b3R5cGVbUl18fChqLnByb3RvdHlwZVtSXT13LnByb3Rv'@; put 'dHlwZVtSXSl9ZnVuY3Rpb24gaihZKXtpZighKHRoaXMgaW5zdGFuY2VvZiBqKSlyZXR1cm4gbmV3IGooWSk7Ti5jYWxsKHRoaXMsWSksdy5jYWxsKHRoaXMsWSksWSYmITE9PT1ZLnJlYWRhYmxlJiYodGhpcy5yZWFkYWJsZT0hMSksWSYmITE9PT1ZLndyaXRhYmxlJiYodGhpcy53cml0YWJs'@; put 'ZT0hMSksdGhpcy5hbGxvd0hhbGZPcGVuPSEwLFkmJiExPT09WS5hbGxvd0hhbGZPcGVuJiYodGhpcy5hbGxvd0hhbGZPcGVuPSExKSx0aGlzLm9uY2UoImVuZCIsUCl9ZnVuY3Rpb24gUCgpe3RoaXMuYWxsb3dIYWxmT3Blbnx8dGhpcy5fd3JpdGFibGVTdGF0ZS5lbmRlZHx8RC5uZXh0VGlj'@; put 'ayhMLHRoaXMpfWZ1bmN0aW9uIEwoWSl7WS5lbmQoKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoai5wcm90b3R5cGUsIndyaXRhYmxlSGlnaFdhdGVyTWFyayIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUuaGlnaFdhdGVyTWFya319KSxP'@; put 'YmplY3QuZGVmaW5lUHJvcGVydHkoai5wcm90b3R5cGUsImRlc3Ryb3llZCIse2dldDpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLl9yZWFkYWJsZVN0YXRlJiZ2b2lkIDAhPT10aGlzLl93cml0YWJsZVN0YXRlJiZ0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZCYmdGhpcy5f'@; put 'd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWR9LHNldDpmdW5jdGlvbihZKXt2b2lkIDA9PT10aGlzLl9yZWFkYWJsZVN0YXRlfHx2b2lkIDA9PT10aGlzLl93cml0YWJsZVN0YXRlfHwodGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ9WSx0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD1Z'@; put 'KX19KSxqLnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbihZLEIpe3RoaXMucHVzaChudWxsKSx0aGlzLmVuZCgpLEQubmV4dFRpY2soQixZKX19LDEyOTQ6KGNlLEosYik9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz1wO3ZhciBEPWIoMzkxMiksXz1PYmplY3QuY3JlYXRlKGIoNjQ5Nykp'@; put 'O2Z1bmN0aW9uIHAoTil7aWYoISh0aGlzIGluc3RhbmNlb2YgcCkpcmV0dXJuIG5ldyBwKE4pO0QuY2FsbCh0aGlzLE4pfV8uaW5oZXJpdHM9Yig1NzE3KSxfLmluaGVyaXRzKHAsRCkscC5wcm90b3R5cGUuX3RyYW5zZm9ybT1mdW5jdGlvbihOLHcsRil7RihudWxsLE4pfX0sNDk2MDooY2Us'@; put 'SixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDQxNTUpLF89Yig4MjEyKTtjZS5leHBvcnRzPXNlO3ZhciBOLHA9Yig1ODI2KTtzZS5SZWFkYWJsZVN0YXRlPWllLGIoNzE4Nyk7dmFyIEY9ZnVuY3Rpb24odmUscWUpe3JldHVybiB2ZS5saXN0ZW5lcnMocWUpLmxlbmd0aH0sSD1iKDk4MTkp'@; put 'LFI9YigxNTcyKS5CdWZmZXIsaj0odHlwZW9mIGIuZzwidSI/Yi5nOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp0eXBlb2Ygc2VsZjwidSI/c2VsZjp7fSkuVWludDhBcnJheXx8ZnVuY3Rpb24oKXt9LFk9T2JqZWN0LmNyZWF0ZShiKDY0OTcpKTtZLmluaGVyaXRzPWIoNTcxNyk7dmFyIEI9'@; put 'Yig2MzUzKSxXPXZvaWQgMDtXPUImJkIuZGVidWdsb2c/Qi5kZWJ1Z2xvZygic3RyZWFtIik6ZnVuY3Rpb24oKXt9O3ZhciBRLFo9YigyMjY3KSxYPWIoNTk5Nyk7WS5pbmhlcml0cyhzZSxIKTt2YXIgcT1bImVycm9yIiwiY2xvc2UiLCJkZXN0cm95IiwicGF1c2UiLCJyZXN1bWUiXTtmdW5j'@; put 'dGlvbiBpZSh2ZSxxZSl7dmFyIGplPXFlIGluc3RhbmNlb2YoTj1OfHxiKDQzOTApKTt0aGlzLm9iamVjdE1vZGU9ISEodmU9dmV8fHt9KS5vYmplY3RNb2RlLGplJiYodGhpcy5vYmplY3RNb2RlPXRoaXMub2JqZWN0TW9kZXx8ISF2ZS5yZWFkYWJsZU9iamVjdE1vZGUpO3ZhciBBZT12ZS5o'@; put 'aWdoV2F0ZXJNYXJrLEZlPXZlLnJlYWRhYmxlSGlnaFdhdGVyTWFyazt0aGlzLmhpZ2hXYXRlck1hcms9QWV8fDA9PT1BZT9BZTpqZSYmKEZlfHwwPT09RmUpP0ZlOnRoaXMub2JqZWN0TW9kZT8xNjoxNjM4NCx0aGlzLmhpZ2hXYXRlck1hcms9TWF0aC5mbG9vcih0aGlzLmhpZ2hXYXRlck1h'@; put 'cmspLHRoaXMuYnVmZmVyPW5ldyBaLHRoaXMubGVuZ3RoPTAsdGhpcy5waXBlcz1udWxsLHRoaXMucGlwZXNDb3VudD0wLHRoaXMuZmxvd2luZz1udWxsLHRoaXMuZW5kZWQ9ITEsdGhpcy5lbmRFbWl0dGVkPSExLHRoaXMucmVhZGluZz0hMSx0aGlzLnN5bmM9ITAsdGhpcy5uZWVkUmVhZGFi'@; put 'bGU9ITEsdGhpcy5lbWl0dGVkUmVhZGFibGU9ITEsdGhpcy5yZWFkYWJsZUxpc3RlbmluZz0hMSx0aGlzLnJlc3VtZVNjaGVkdWxlZD0hMSx0aGlzLmRlc3Ryb3llZD0hMSx0aGlzLmRlZmF1bHRFbmNvZGluZz12ZS5kZWZhdWx0RW5jb2Rpbmd8fCJ1dGY4Iix0aGlzLmF3YWl0RHJhaW49MCx0'@; put 'aGlzLnJlYWRpbmdNb3JlPSExLHRoaXMuZGVjb2Rlcj1udWxsLHRoaXMuZW5jb2Rpbmc9bnVsbCx2ZS5lbmNvZGluZyYmKFF8fChRPWIoMjIyMSkucyksdGhpcy5kZWNvZGVyPW5ldyBRKHZlLmVuY29kaW5nKSx0aGlzLmVuY29kaW5nPXZlLmVuY29kaW5nKX1mdW5jdGlvbiBzZSh2ZSl7aWYo'@; put 'Tj1OfHxiKDQzOTApLCEodGhpcyBpbnN0YW5jZW9mIHNlKSlyZXR1cm4gbmV3IHNlKHZlKTt0aGlzLl9yZWFkYWJsZVN0YXRlPW5ldyBpZSh2ZSx0aGlzKSx0aGlzLnJlYWRhYmxlPSEwLHZlJiYoImZ1bmN0aW9uIj09dHlwZW9mIHZlLnJlYWQmJih0aGlzLl9yZWFkPXZlLnJlYWQpLCJmdW5j'@; put 'dGlvbiI9PXR5cGVvZiB2ZS5kZXN0cm95JiYodGhpcy5fZGVzdHJveT12ZS5kZXN0cm95KSksSC5jYWxsKHRoaXMpfWZ1bmN0aW9uIGdlKHZlLHFlLGplLEFlLEZlKXt2YXIgSWUsUmU9dmUuX3JlYWRhYmxlU3RhdGU7cmV0dXJuIG51bGw9PT1xZT8oUmUucmVhZGluZz0hMSxmdW5jdGlvbiB5'@; put 'KHZlLHFlKXtpZighcWUuZW5kZWQpe2lmKHFlLmRlY29kZXIpe3ZhciBqZT1xZS5kZWNvZGVyLmVuZCgpO2plJiZqZS5sZW5ndGgmJihxZS5idWZmZXIucHVzaChqZSkscWUubGVuZ3RoKz1xZS5vYmplY3RNb2RlPzE6amUubGVuZ3RoKX1xZS5lbmRlZD0hMCx4KHZlKX19KHZlLFJlKSk6KEZl'@; put 'fHwoSWU9ZnVuY3Rpb24gVGUodmUscWUpe3ZhciBqZTtyZXR1cm4hZnVuY3Rpb24gTCh2ZSl7cmV0dXJuIFIuaXNCdWZmZXIodmUpfHx2ZSBpbnN0YW5jZW9mIGp9KHFlKSYmInN0cmluZyIhPXR5cGVvZiBxZSYmdm9pZCAwIT09cWUmJiF2ZS5vYmplY3RNb2RlJiYoamU9bmV3IFR5cGVFcnJv'@; put 'cigiSW52YWxpZCBub24tc3RyaW5nL2J1ZmZlciBjaHVuayIpKSxqZX0oUmUscWUpKSxJZT92ZS5lbWl0KCJlcnJvciIsSWUpOlJlLm9iamVjdE1vZGV8fHFlJiZxZS5sZW5ndGg+MD8oInN0cmluZyIhPXR5cGVvZiBxZSYmIVJlLm9iamVjdE1vZGUmJk9iamVjdC5nZXRQcm90b3R5cGVPZihx'@; put 'ZSkhPT1SLnByb3RvdHlwZSYmKHFlPWZ1bmN0aW9uIFAodmUpe3JldHVybiBSLmZyb20odmUpfShxZSkpLEFlP1JlLmVuZEVtaXR0ZWQ/dmUuZW1pdCgiZXJyb3IiLG5ldyBFcnJvcigic3RyZWFtLnVuc2hpZnQoKSBhZnRlciBlbmQgZXZlbnQiKSk6X2UodmUsUmUscWUsITApOlJlLmVuZGVk'@; put 'P3ZlLmVtaXQoImVycm9yIixuZXcgRXJyb3IoInN0cmVhbS5wdXNoKCkgYWZ0ZXIgRU9GIikpOihSZS5yZWFkaW5nPSExLFJlLmRlY29kZXImJiFqZT8ocWU9UmUuZGVjb2Rlci53cml0ZShxZSksUmUub2JqZWN0TW9kZXx8MCE9PXFlLmxlbmd0aD9fZSh2ZSxSZSxxZSwhMSk6VCh2ZSxSZSkp'@; put 'Ol9lKHZlLFJlLHFlLCExKSkpOkFlfHwoUmUucmVhZGluZz0hMSkpLGZ1bmN0aW9uIFNlKHZlKXtyZXR1cm4hdmUuZW5kZWQmJih2ZS5uZWVkUmVhZGFibGV8fHZlLmxlbmd0aDx2ZS5oaWdoV2F0ZXJNYXJrfHwwPT09dmUubGVuZ3RoKX0oUmUpfWZ1bmN0aW9uIF9lKHZlLHFlLGplLEFlKXtx'@; put 'ZS5mbG93aW5nJiYwPT09cWUubGVuZ3RoJiYhcWUuc3luYz8odmUuZW1pdCgiZGF0YSIsamUpLHZlLnJlYWQoMCkpOihxZS5sZW5ndGgrPXFlLm9iamVjdE1vZGU/MTpqZS5sZW5ndGgsQWU/cWUuYnVmZmVyLnVuc2hpZnQoamUpOnFlLmJ1ZmZlci5wdXNoKGplKSxxZS5uZWVkUmVhZGFibGUm'@; put 'JngodmUpKSxUKHZlLHFlKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoc2UucHJvdG90eXBlLCJkZXN0cm95ZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fcmVhZGFibGVTdGF0ZSYmdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWR9LHNldDpmdW5jdGlvbih2ZSl7'@; put 'dGhpcy5fcmVhZGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkPXZlKX19KSxzZS5wcm90b3R5cGUuZGVzdHJveT1YLmRlc3Ryb3ksc2UucHJvdG90eXBlLl91bmRlc3Ryb3k9WC51bmRlc3Ryb3ksc2UucHJvdG90eXBlLl9kZXN0cm95PWZ1bmN0aW9uKHZlLHFlKXt0'@; put 'aGlzLnB1c2gobnVsbCkscWUodmUpfSxzZS5wcm90b3R5cGUucHVzaD1mdW5jdGlvbih2ZSxxZSl7dmFyIEFlLGplPXRoaXMuX3JlYWRhYmxlU3RhdGU7cmV0dXJuIGplLm9iamVjdE1vZGU/QWU9ITA6InN0cmluZyI9PXR5cGVvZiB2ZSYmKChxZT1xZXx8amUuZGVmYXVsdEVuY29kaW5nKSE9'@; put 'PWplLmVuY29kaW5nJiYodmU9Ui5mcm9tKHZlLHFlKSxxZT0iIiksQWU9ITApLGdlKHRoaXMsdmUscWUsITEsQWUpfSxzZS5wcm90b3R5cGUudW5zaGlmdD1mdW5jdGlvbih2ZSl7cmV0dXJuIGdlKHRoaXMsdmUsbnVsbCwhMCwhMSl9LHNlLnByb3RvdHlwZS5pc1BhdXNlZD1mdW5jdGlvbigp'@; put 'e3JldHVybiExPT09dGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nfSxzZS5wcm90b3R5cGUuc2V0RW5jb2Rpbmc9ZnVuY3Rpb24odmUpe3JldHVybiBRfHwoUT1iKDIyMjEpLnMpLHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVjb2Rlcj1uZXcgUSh2ZSksdGhpcy5fcmVhZGFibGVTdGF0ZS5lbmNv'@; put 'ZGluZz12ZSx0aGlzfTtmdW5jdGlvbiBnKHZlLHFlKXtyZXR1cm4gdmU8PTB8fDA9PT1xZS5sZW5ndGgmJnFlLmVuZGVkPzA6cWUub2JqZWN0TW9kZT8xOnZlIT12ZT9xZS5mbG93aW5nJiZxZS5sZW5ndGg/cWUuYnVmZmVyLmhlYWQuZGF0YS5sZW5ndGg6cWUubGVuZ3RoOih2ZT5xZS5oaWdo'@; put 'V2F0ZXJNYXJrJiYocWUuaGlnaFdhdGVyTWFyaz1mdW5jdGlvbiB6KHZlKXtyZXR1cm4gdmU+PTgzODg2MDg/dmU9ODM4ODYwODoodmUtLSx2ZXw9dmU+Pj4xLHZlfD12ZT4+PjIsdmV8PXZlPj4+NCx2ZXw9dmU+Pj44LHZlfD12ZT4+PjE2LHZlKyspLHZlfSh2ZSkpLHZlPD1xZS5sZW5ndGg/'@; put 'dmU6cWUuZW5kZWQ/cWUubGVuZ3RoOihxZS5uZWVkUmVhZGFibGU9ITAsMCkpfWZ1bmN0aW9uIHgodmUpe3ZhciBxZT12ZS5fcmVhZGFibGVTdGF0ZTtxZS5uZWVkUmVhZGFibGU9ITEscWUuZW1pdHRlZFJlYWRhYmxlfHwoVygiZW1pdFJlYWRhYmxlIixxZS5mbG93aW5nKSxxZS5lbWl0dGVk'@; put 'UmVhZGFibGU9ITAscWUuc3luYz9fLm5leHRUaWNrKEMsdmUpOkModmUpKX1mdW5jdGlvbiBDKHZlKXtXKCJlbWl0IHJlYWRhYmxlIiksdmUuZW1pdCgicmVhZGFibGUiKSxhZSh2ZSl9ZnVuY3Rpb24gVCh2ZSxxZSl7cWUucmVhZGluZ01vcmV8fChxZS5yZWFkaW5nTW9yZT0hMCxfLm5leHRU'@; put 'aWNrKFYsdmUscWUpKX1mdW5jdGlvbiBWKHZlLHFlKXtmb3IodmFyIGplPXFlLmxlbmd0aDshcWUucmVhZGluZyYmIXFlLmZsb3dpbmcmJiFxZS5lbmRlZCYmcWUubGVuZ3RoPHFlLmhpZ2hXYXRlck1hcmsmJihXKCJtYXliZVJlYWRNb3JlIHJlYWQgMCIpLHZlLnJlYWQoMCksamUhPT1xZS5s'@; put 'ZW5ndGgpOylqZT1xZS5sZW5ndGg7cWUucmVhZGluZ01vcmU9ITF9ZnVuY3Rpb24gRSh2ZSl7VygicmVhZGFibGUgbmV4dHRpY2sgcmVhZCAwIiksdmUucmVhZCgwKX1mdW5jdGlvbiBBKHZlLHFlKXtxZS5yZWFkaW5nfHwoVygicmVzdW1lIHJlYWQgMCIpLHZlLnJlYWQoMCkpLHFlLnJlc3Vt'@; put 'ZVNjaGVkdWxlZD0hMSxxZS5hd2FpdERyYWluPTAsdmUuZW1pdCgicmVzdW1lIiksYWUodmUpLHFlLmZsb3dpbmcmJiFxZS5yZWFkaW5nJiZ2ZS5yZWFkKDApfWZ1bmN0aW9uIGFlKHZlKXt2YXIgcWU9dmUuX3JlYWRhYmxlU3RhdGU7Zm9yKFcoImZsb3ciLHFlLmZsb3dpbmcpO3FlLmZsb3dp'@; put 'bmcmJm51bGwhPT12ZS5yZWFkKCk7KTt9ZnVuY3Rpb24gbmUodmUscWUpe3JldHVybiAwPT09cWUubGVuZ3RoP251bGw6KHFlLm9iamVjdE1vZGU/amU9cWUuYnVmZmVyLnNoaWZ0KCk6IXZlfHx2ZT49cWUubGVuZ3RoPyhqZT1xZS5kZWNvZGVyP3FlLmJ1ZmZlci5qb2luKCIiKToxPT09cWUu'@; put 'YnVmZmVyLmxlbmd0aD9xZS5idWZmZXIuaGVhZC5kYXRhOnFlLmJ1ZmZlci5jb25jYXQocWUubGVuZ3RoKSxxZS5idWZmZXIuY2xlYXIoKSk6amU9ZnVuY3Rpb24gbGUodmUscWUsamUpe3ZhciBBZTtyZXR1cm4gdmU8cWUuaGVhZC5kYXRhLmxlbmd0aD8oQWU9cWUuaGVhZC5kYXRhLnNsaWNl'@; put 'KDAsdmUpLHFlLmhlYWQuZGF0YT1xZS5oZWFkLmRhdGEuc2xpY2UodmUpKTpBZT12ZT09PXFlLmhlYWQuZGF0YS5sZW5ndGg/cWUuc2hpZnQoKTpqZT9mdW5jdGlvbiB3ZSh2ZSxxZSl7dmFyIGplPXFlLmhlYWQsQWU9MSxGZT1qZS5kYXRhO2Zvcih2ZS09RmUubGVuZ3RoO2plPWplLm5leHQ7'@; put 'KXt2YXIgUmU9amUuZGF0YSxJZT12ZT5SZS5sZW5ndGg/UmUubGVuZ3RoOnZlO2lmKEZlKz1JZT09PVJlLmxlbmd0aD9SZTpSZS5zbGljZSgwLHZlKSwwPT0odmUtPUllKSl7SWU9PT1SZS5sZW5ndGg/KCsrQWUscWUuaGVhZD1qZS5uZXh0P2plLm5leHQ6cWUudGFpbD1udWxsKToocWUuaGVh'@; put 'ZD1qZSxqZS5kYXRhPVJlLnNsaWNlKEllKSk7YnJlYWt9KytBZX1yZXR1cm4gcWUubGVuZ3RoLT1BZSxGZX0odmUscWUpOmZ1bmN0aW9uIFplKHZlLHFlKXt2YXIgamU9Ui5hbGxvY1Vuc2FmZSh2ZSksQWU9cWUuaGVhZCxGZT0xO2ZvcihBZS5kYXRhLmNvcHkoamUpLHZlLT1BZS5kYXRhLmxl'@; put 'bmd0aDtBZT1BZS5uZXh0Oyl7dmFyIFJlPUFlLmRhdGEsSWU9dmU+UmUubGVuZ3RoP1JlLmxlbmd0aDp2ZTtpZihSZS5jb3B5KGplLGplLmxlbmd0aC12ZSwwLEllKSwwPT0odmUtPUllKSl7SWU9PT1SZS5sZW5ndGg/KCsrRmUscWUuaGVhZD1BZS5uZXh0P0FlLm5leHQ6cWUudGFpbD1udWxs'@; put 'KToocWUuaGVhZD1BZSxBZS5kYXRhPVJlLnNsaWNlKEllKSk7YnJlYWt9KytGZX1yZXR1cm4gcWUubGVuZ3RoLT1GZSxqZX0odmUscWUpLEFlfSh2ZSxxZS5idWZmZXIscWUuZGVjb2RlciksamUpO3ZhciBqZX1mdW5jdGlvbiBRZSh2ZSl7dmFyIHFlPXZlLl9yZWFkYWJsZVN0YXRlO2lmKHFl'@; put 'Lmxlbmd0aD4wKXRocm93IG5ldyBFcnJvcignImVuZFJlYWRhYmxlKCkiIGNhbGxlZCBvbiBub24tZW1wdHkgc3RyZWFtJyk7cWUuZW5kRW1pdHRlZHx8KHFlLmVuZGVkPSEwLF8ubmV4dFRpY2soYXQscWUsdmUpKX1mdW5jdGlvbiBhdCh2ZSxxZSl7IXZlLmVuZEVtaXR0ZWQmJjA9PT12ZS5s'@; put 'ZW5ndGgmJih2ZS5lbmRFbWl0dGVkPSEwLHFlLnJlYWRhYmxlPSExLHFlLmVtaXQoImVuZCIpKX1mdW5jdGlvbiB4ZSh2ZSxxZSl7Zm9yKHZhciBqZT0wLEFlPXZlLmxlbmd0aDtqZTxBZTtqZSsrKWlmKHZlW2plXT09PXFlKXJldHVybiBqZTtyZXR1cm4tMX1zZS5wcm90b3R5cGUucmVhZD1m'@; put 'dW5jdGlvbih2ZSl7VygicmVhZCIsdmUpLHZlPXBhcnNlSW50KHZlLDEwKTt2YXIgcWU9dGhpcy5fcmVhZGFibGVTdGF0ZSxqZT12ZTtpZigwIT09dmUmJihxZS5lbWl0dGVkUmVhZGFibGU9ITEpLDA9PT12ZSYmcWUubmVlZFJlYWRhYmxlJiYocWUubGVuZ3RoPj1xZS5oaWdoV2F0ZXJNYXJr'@; put 'fHxxZS5lbmRlZCkpcmV0dXJuIFcoInJlYWQ6IGVtaXRSZWFkYWJsZSIscWUubGVuZ3RoLHFlLmVuZGVkKSwwPT09cWUubGVuZ3RoJiZxZS5lbmRlZD9RZSh0aGlzKTp4KHRoaXMpLG51bGw7aWYoMD09PSh2ZT1nKHZlLHFlKSkmJnFlLmVuZGVkKXJldHVybiAwPT09cWUubGVuZ3RoJiZRZSh0'@; put 'aGlzKSxudWxsO3ZhciBGZSxBZT1xZS5uZWVkUmVhZGFibGU7cmV0dXJuIFcoIm5lZWQgcmVhZGFibGUiLEFlKSwoMD09PXFlLmxlbmd0aHx8cWUubGVuZ3RoLXZlPHFlLmhpZ2hXYXRlck1hcmspJiZXKCJsZW5ndGggbGVzcyB0aGFuIHdhdGVybWFyayIsQWU9ITApLHFlLmVuZGVkfHxxZS5y'@; put 'ZWFkaW5nP1coInJlYWRpbmcgb3IgZW5kZWQiLEFlPSExKTpBZSYmKFcoImRvIHJlYWQiKSxxZS5yZWFkaW5nPSEwLHFlLnN5bmM9ITAsMD09PXFlLmxlbmd0aCYmKHFlLm5lZWRSZWFkYWJsZT0hMCksdGhpcy5fcmVhZChxZS5oaWdoV2F0ZXJNYXJrKSxxZS5zeW5jPSExLHFlLnJlYWRpbmd8'@; put 'fCh2ZT1nKGplLHFlKSkpLG51bGw9PT0oRmU9dmU+MD9uZSh2ZSxxZSk6bnVsbCk/KHFlLm5lZWRSZWFkYWJsZT0hMCx2ZT0wKTpxZS5sZW5ndGgtPXZlLDA9PT1xZS5sZW5ndGgmJihxZS5lbmRlZHx8KHFlLm5lZWRSZWFkYWJsZT0hMCksamUhPT12ZSYmcWUuZW5kZWQmJlFlKHRoaXMpKSxu'@; put 'dWxsIT09RmUmJnRoaXMuZW1pdCgiZGF0YSIsRmUpLEZlfSxzZS5wcm90b3R5cGUuX3JlYWQ9ZnVuY3Rpb24odmUpe3RoaXMuZW1pdCgiZXJyb3IiLG5ldyBFcnJvcigiX3JlYWQoKSBpcyBub3QgaW1wbGVtZW50ZWQiKSl9LHNlLnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKHZlLHFlKXt2YXIg'@; put 'amU9dGhpcyxBZT10aGlzLl9yZWFkYWJsZVN0YXRlO3N3aXRjaChBZS5waXBlc0NvdW50KXtjYXNlIDA6QWUucGlwZXM9dmU7YnJlYWs7Y2FzZSAxOkFlLnBpcGVzPVtBZS5waXBlcyx2ZV07YnJlYWs7ZGVmYXVsdDpBZS5waXBlcy5wdXNoKHZlKX1BZS5waXBlc0NvdW50Kz0xLFcoInBpcGUg'@; put 'Y291bnQ9JWQgb3B0cz0laiIsQWUucGlwZXNDb3VudCxxZSk7dmFyIFJlPXFlJiYhMT09PXFlLmVuZHx8dmU9PT1ELnN0ZG91dHx8dmU9PT1ELnN0ZGVycj9JdDpIZTtmdW5jdGlvbiBIZSgpe1coIm9uZW5kIiksdmUuZW5kKCl9QWUuZW5kRW1pdHRlZD9fLm5leHRUaWNrKFJlKTpqZS5vbmNl'@; put 'KCJlbmQiLFJlKSx2ZS5vbigidW5waXBlIixmdW5jdGlvbiBJZShydCxLZSl7Vygib251bnBpcGUiKSxydD09PWplJiZLZSYmITE9PT1LZS5oYXNVbnBpcGVkJiYoS2UuaGFzVW5waXBlZD0hMCxmdW5jdGlvbiBfdCgpe1coImNsZWFudXAiKSx2ZS5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLHl0'@; put 'KSx2ZS5yZW1vdmVMaXN0ZW5lcigiZmluaXNoIixNdCksdmUucmVtb3ZlTGlzdGVuZXIoImRyYWluIixEZSksdmUucmVtb3ZlTGlzdGVuZXIoImVycm9yIixvbiksdmUucmVtb3ZlTGlzdGVuZXIoInVucGlwZSIsSWUpLGplLnJlbW92ZUxpc3RlbmVyKCJlbmQiLEhlKSxqZS5yZW1vdmVMaXN0'@; put 'ZW5lcigiZW5kIixJdCksamUucmVtb3ZlTGlzdGVuZXIoImRhdGEiLEplKSxrZT0hMCxBZS5hd2FpdERyYWluJiYoIXZlLl93cml0YWJsZVN0YXRlfHx2ZS5fd3JpdGFibGVTdGF0ZS5uZWVkRHJhaW4pJiZEZSgpfSgpKX0pO3ZhciBEZT1mdW5jdGlvbiBVKHZlKXtyZXR1cm4gZnVuY3Rpb24o'@; put 'KXt2YXIgcWU9dmUuX3JlYWRhYmxlU3RhdGU7VygicGlwZU9uRHJhaW4iLHFlLmF3YWl0RHJhaW4pLHFlLmF3YWl0RHJhaW4mJnFlLmF3YWl0RHJhaW4tLSwwPT09cWUuYXdhaXREcmFpbiYmRih2ZSwiZGF0YSIpJiYocWUuZmxvd2luZz0hMCxhZSh2ZSkpfX0oamUpO3ZlLm9uKCJkcmFpbiIs'@; put 'RGUpO3ZhciBrZT0hMSxudD0hMTtmdW5jdGlvbiBKZShydCl7Vygib25kYXRhIiksbnQ9ITEsITE9PT12ZS53cml0ZShydCkmJiFudCYmKCgxPT09QWUucGlwZXNDb3VudCYmQWUucGlwZXM9PT12ZXx8QWUucGlwZXNDb3VudD4xJiYtMSE9PXhlKEFlLnBpcGVzLHZlKSkmJiFrZSYmKFcoImZh'@; put 'bHNlIHdyaXRlIHJlc3BvbnNlLCBwYXVzZSIsQWUuYXdhaXREcmFpbiksQWUuYXdhaXREcmFpbisrLG50PSEwKSxqZS5wYXVzZSgpKX1mdW5jdGlvbiBvbihydCl7Vygib25lcnJvciIscnQpLEl0KCksdmUucmVtb3ZlTGlzdGVuZXIoImVycm9yIixvbiksMD09PUYodmUsImVycm9yIikmJnZl'@; put 'LmVtaXQoImVycm9yIixydCl9ZnVuY3Rpb24geXQoKXt2ZS5yZW1vdmVMaXN0ZW5lcigiZmluaXNoIixNdCksSXQoKX1mdW5jdGlvbiBNdCgpe1coIm9uZmluaXNoIiksdmUucmVtb3ZlTGlzdGVuZXIoImNsb3NlIix5dCksSXQoKX1mdW5jdGlvbiBJdCgpe1coInVucGlwZSIpLGplLnVucGlw'@; put 'ZSh2ZSl9cmV0dXJuIGplLm9uKCJkYXRhIixKZSksZnVuY3Rpb24gdGUodmUscWUsamUpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB2ZS5wcmVwZW5kTGlzdGVuZXIpcmV0dXJuIHZlLnByZXBlbmRMaXN0ZW5lcihxZSxqZSk7dmUuX2V2ZW50cyYmdmUuX2V2ZW50c1txZV0/cCh2ZS5fZXZlbnRz'@; put 'W3FlXSk/dmUuX2V2ZW50c1txZV0udW5zaGlmdChqZSk6dmUuX2V2ZW50c1txZV09W2plLHZlLl9ldmVudHNbcWVdXTp2ZS5vbihxZSxqZSl9KHZlLCJlcnJvciIsb24pLHZlLm9uY2UoImNsb3NlIix5dCksdmUub25jZSgiZmluaXNoIixNdCksdmUuZW1pdCgicGlwZSIsamUpLEFlLmZsb3dp'@; put 'bmd8fChXKCJwaXBlIHJlc3VtZSIpLGplLnJlc3VtZSgpKSx2ZX0sc2UucHJvdG90eXBlLnVucGlwZT1mdW5jdGlvbih2ZSl7dmFyIHFlPXRoaXMuX3JlYWRhYmxlU3RhdGUsamU9e2hhc1VucGlwZWQ6ITF9O2lmKDA9PT1xZS5waXBlc0NvdW50KXJldHVybiB0aGlzO2lmKDE9PT1xZS5waXBl'@; put 'c0NvdW50KXJldHVybiB2ZSYmdmUhPT1xZS5waXBlc3x8KHZlfHwodmU9cWUucGlwZXMpLHFlLnBpcGVzPW51bGwscWUucGlwZXNDb3VudD0wLHFlLmZsb3dpbmc9ITEsdmUmJnZlLmVtaXQoInVucGlwZSIsdGhpcyxqZSkpLHRoaXM7aWYoIXZlKXt2YXIgQWU9cWUucGlwZXMsRmU9cWUucGlw'@; put 'ZXNDb3VudDtxZS5waXBlcz1udWxsLHFlLnBpcGVzQ291bnQ9MCxxZS5mbG93aW5nPSExO2Zvcih2YXIgUmU9MDtSZTxGZTtSZSsrKUFlW1JlXS5lbWl0KCJ1bnBpcGUiLHRoaXMse2hhc1VucGlwZWQ6ITF9KTtyZXR1cm4gdGhpc312YXIgSWU9eGUocWUucGlwZXMsdmUpO3JldHVybi0xPT09'@; put 'SWV8fChxZS5waXBlcy5zcGxpY2UoSWUsMSkscWUucGlwZXNDb3VudC09MSwxPT09cWUucGlwZXNDb3VudCYmKHFlLnBpcGVzPXFlLnBpcGVzWzBdKSx2ZS5lbWl0KCJ1bnBpcGUiLHRoaXMsamUpKSx0aGlzfSxzZS5wcm90b3R5cGUuYWRkTGlzdGVuZXI9c2UucHJvdG90eXBlLm9uPWZ1bmN0'@; put 'aW9uKHZlLHFlKXt2YXIgamU9SC5wcm90b3R5cGUub24uY2FsbCh0aGlzLHZlLHFlKTtpZigiZGF0YSI9PT12ZSkhMSE9PXRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZyYmdGhpcy5yZXN1bWUoKTtlbHNlIGlmKCJyZWFkYWJsZSI9PT12ZSl7dmFyIEFlPXRoaXMuX3JlYWRhYmxlU3RhdGU7'@; put 'IUFlLmVuZEVtaXR0ZWQmJiFBZS5yZWFkYWJsZUxpc3RlbmluZyYmKEFlLnJlYWRhYmxlTGlzdGVuaW5nPUFlLm5lZWRSZWFkYWJsZT0hMCxBZS5lbWl0dGVkUmVhZGFibGU9ITEsQWUucmVhZGluZz9BZS5sZW5ndGgmJngodGhpcyk6Xy5uZXh0VGljayhFLHRoaXMpKX1yZXR1cm4gamV9LHNl'@; put 'LnByb3RvdHlwZS5yZXN1bWU9ZnVuY3Rpb24oKXt2YXIgdmU9dGhpcy5fcmVhZGFibGVTdGF0ZTtyZXR1cm4gdmUuZmxvd2luZ3x8KFcoInJlc3VtZSIpLHZlLmZsb3dpbmc9ITAsZnVuY3Rpb24gbSh2ZSxxZSl7cWUucmVzdW1lU2NoZWR1bGVkfHwocWUucmVzdW1lU2NoZWR1bGVkPSEwLF8u'@; put 'bmV4dFRpY2soQSx2ZSxxZSkpfSh0aGlzLHZlKSksdGhpc30sc2UucHJvdG90eXBlLnBhdXNlPWZ1bmN0aW9uKCl7cmV0dXJuIFcoImNhbGwgcGF1c2UgZmxvd2luZz0laiIsdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nKSwhMSE9PXRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZyYmKFco'@; put 'InBhdXNlIiksdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nPSExLHRoaXMuZW1pdCgicGF1c2UiKSksdGhpc30sc2UucHJvdG90eXBlLndyYXA9ZnVuY3Rpb24odmUpe3ZhciBxZT10aGlzLGplPXRoaXMuX3JlYWRhYmxlU3RhdGUsQWU9ITE7Zm9yKHZhciBGZSBpbiB2ZS5vbigiZW5kIixm'@; put 'dW5jdGlvbigpe2lmKFcoIndyYXBwZWQgZW5kIiksamUuZGVjb2RlciYmIWplLmVuZGVkKXt2YXIgSWU9amUuZGVjb2Rlci5lbmQoKTtJZSYmSWUubGVuZ3RoJiZxZS5wdXNoKEllKX1xZS5wdXNoKG51bGwpfSksdmUub24oImRhdGEiLGZ1bmN0aW9uKEllKXtXKCJ3cmFwcGVkIGRhdGEiKSxq'@; put 'ZS5kZWNvZGVyJiYoSWU9amUuZGVjb2Rlci53cml0ZShJZSkpLGplLm9iamVjdE1vZGUmJm51bGw9PUllfHwhKGplLm9iamVjdE1vZGV8fEllJiZJZS5sZW5ndGgpfHxxZS5wdXNoKEllKXx8KEFlPSEwLHZlLnBhdXNlKCkpfSksdmUpdm9pZCAwPT09dGhpc1tGZV0mJiJmdW5jdGlvbiI9PXR5'@; put 'cGVvZiB2ZVtGZV0mJih0aGlzW0ZlXT1mdW5jdGlvbihJZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHZlW0llXS5hcHBseSh2ZSxhcmd1bWVudHMpfX0oRmUpKTtmb3IodmFyIFJlPTA7UmU8cS5sZW5ndGg7UmUrKyl2ZS5vbihxW1JlXSx0aGlzLmVtaXQuYmluZCh0aGlzLHFbUmVdKSk7'@; put 'cmV0dXJuIHRoaXMuX3JlYWQ9ZnVuY3Rpb24oSWUpe1coIndyYXBwZWQgX3JlYWQiLEllKSxBZSYmKEFlPSExLHZlLnJlc3VtZSgpKX0sdGhpc30sT2JqZWN0LmRlZmluZVByb3BlcnR5KHNlLnByb3RvdHlwZSwicmVhZGFibGVIaWdoV2F0ZXJNYXJrIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVu'@; put 'Y3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5oaWdoV2F0ZXJNYXJrfX0pLHNlLl9mcm9tTGlzdD1uZX0sMzkxMjooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPU47dmFyIEQ9Yig0MzkwKSxfPU9iamVjdC5jcmVhdGUoYig2NDk3KSk7ZnVuY3Rpb24gcChILFIp'@; put 'e3ZhciBqPXRoaXMuX3RyYW5zZm9ybVN0YXRlO2oudHJhbnNmb3JtaW5nPSExO3ZhciBQPWoud3JpdGVjYjtpZighUClyZXR1cm4gdGhpcy5lbWl0KCJlcnJvciIsbmV3IEVycm9yKCJ3cml0ZSBjYWxsYmFjayBjYWxsZWQgbXVsdGlwbGUgdGltZXMiKSk7ai53cml0ZWNodW5rPW51bGwsai53'@; put 'cml0ZWNiPW51bGwsbnVsbCE9UiYmdGhpcy5wdXNoKFIpLFAoSCk7dmFyIEw9dGhpcy5fcmVhZGFibGVTdGF0ZTtMLnJlYWRpbmc9ITEsKEwubmVlZFJlYWRhYmxlfHxMLmxlbmd0aDxMLmhpZ2hXYXRlck1hcmspJiZ0aGlzLl9yZWFkKEwuaGlnaFdhdGVyTWFyayl9ZnVuY3Rpb24gTihIKXtp'@; put 'ZighKHRoaXMgaW5zdGFuY2VvZiBOKSlyZXR1cm4gbmV3IE4oSCk7RC5jYWxsKHRoaXMsSCksdGhpcy5fdHJhbnNmb3JtU3RhdGU9e2FmdGVyVHJhbnNmb3JtOnAuYmluZCh0aGlzKSxuZWVkVHJhbnNmb3JtOiExLHRyYW5zZm9ybWluZzohMSx3cml0ZWNiOm51bGwsd3JpdGVjaHVuazpudWxs'@; put 'LHdyaXRlZW5jb2Rpbmc6bnVsbH0sdGhpcy5fcmVhZGFibGVTdGF0ZS5uZWVkUmVhZGFibGU9ITAsdGhpcy5fcmVhZGFibGVTdGF0ZS5zeW5jPSExLEgmJigiZnVuY3Rpb24iPT10eXBlb2YgSC50cmFuc2Zvcm0mJih0aGlzLl90cmFuc2Zvcm09SC50cmFuc2Zvcm0pLCJmdW5jdGlvbiI9PXR5'@; put 'cGVvZiBILmZsdXNoJiYodGhpcy5fZmx1c2g9SC5mbHVzaCkpLHRoaXMub24oInByZWZpbmlzaCIsdyl9ZnVuY3Rpb24gdygpe3ZhciBIPXRoaXM7ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMuX2ZsdXNoP3RoaXMuX2ZsdXNoKGZ1bmN0aW9uKFIsail7RihILFIsail9KTpGKHRoaXMsbnVsbCxu'@; put 'dWxsKX1mdW5jdGlvbiBGKEgsUixqKXtpZihSKXJldHVybiBILmVtaXQoImVycm9yIixSKTtpZihudWxsIT1qJiZILnB1c2goaiksSC5fd3JpdGFibGVTdGF0ZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJDYWxsaW5nIHRyYW5zZm9ybSBkb25lIHdoZW4gd3MubGVuZ3RoICE9IDAiKTtpZihI'@; put 'Ll90cmFuc2Zvcm1TdGF0ZS50cmFuc2Zvcm1pbmcpdGhyb3cgbmV3IEVycm9yKCJDYWxsaW5nIHRyYW5zZm9ybSBkb25lIHdoZW4gc3RpbGwgdHJhbnNmb3JtaW5nIik7cmV0dXJuIEgucHVzaChudWxsKX1fLmluaGVyaXRzPWIoNTcxNyksXy5pbmhlcml0cyhOLEQpLE4ucHJvdG90eXBlLnB1'@; put 'c2g9ZnVuY3Rpb24oSCxSKXtyZXR1cm4gdGhpcy5fdHJhbnNmb3JtU3RhdGUubmVlZFRyYW5zZm9ybT0hMSxELnByb3RvdHlwZS5wdXNoLmNhbGwodGhpcyxILFIpfSxOLnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1bmN0aW9uKEgsUixqKXt0aHJvdyBuZXcgRXJyb3IoIl90cmFuc2Zvcm0oKSBp'@; put 'cyBub3QgaW1wbGVtZW50ZWQiKX0sTi5wcm90b3R5cGUuX3dyaXRlPWZ1bmN0aW9uKEgsUixqKXt2YXIgUD10aGlzLl90cmFuc2Zvcm1TdGF0ZTtpZihQLndyaXRlY2I9aixQLndyaXRlY2h1bms9SCxQLndyaXRlZW5jb2Rpbmc9UiwhUC50cmFuc2Zvcm1pbmcpe3ZhciBMPXRoaXMuX3JlYWRh'@; put 'YmxlU3RhdGU7KFAubmVlZFRyYW5zZm9ybXx8TC5uZWVkUmVhZGFibGV8fEwubGVuZ3RoPEwuaGlnaFdhdGVyTWFyaykmJnRoaXMuX3JlYWQoTC5oaWdoV2F0ZXJNYXJrKX19LE4ucHJvdG90eXBlLl9yZWFkPWZ1bmN0aW9uKEgpe3ZhciBSPXRoaXMuX3RyYW5zZm9ybVN0YXRlO251bGwhPT1S'@; put 'LndyaXRlY2h1bmsmJlIud3JpdGVjYiYmIVIudHJhbnNmb3JtaW5nPyhSLnRyYW5zZm9ybWluZz0hMCx0aGlzLl90cmFuc2Zvcm0oUi53cml0ZWNodW5rLFIud3JpdGVlbmNvZGluZyxSLmFmdGVyVHJhbnNmb3JtKSk6Ui5uZWVkVHJhbnNmb3JtPSEwfSxOLnByb3RvdHlwZS5fZGVzdHJveT1m'@; put 'dW5jdGlvbihILFIpe3ZhciBqPXRoaXM7RC5wcm90b3R5cGUuX2Rlc3Ryb3kuY2FsbCh0aGlzLEgsZnVuY3Rpb24oUCl7UihQKSxqLmVtaXQoImNsb3NlIil9KX19LDIwMTA6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig0MTU1KSxfPWIoODIxMik7ZnVuY3Rpb24gTihtKXt2YXIg'@; put 'QT10aGlzO3RoaXMubmV4dD1udWxsLHRoaXMuZW50cnk9bnVsbCx0aGlzLmZpbmlzaD1mdW5jdGlvbigpeyFmdW5jdGlvbiBFKG0sQSxhZSl7dmFyIG5lPW0uZW50cnk7Zm9yKG0uZW50cnk9bnVsbDtuZTspe3ZhciBsZT1uZS5jYWxsYmFjaztBLnBlbmRpbmdjYi0tLGxlKGFlKSxuZT1uZS5u'@; put 'ZXh0fUEuY29ya2VkUmVxdWVzdHNGcmVlLm5leHQ9bX0oQSxtKX19Y2UuZXhwb3J0cz1xO3ZhciBGLHc9IUQuYnJvd3NlciYmWyJ2MC4xMCIsInYwLjkuIl0uaW5kZXhPZihELnZlcnNpb24uc2xpY2UoMCw1KSk+LTE/c2V0SW1tZWRpYXRlOl8ubmV4dFRpY2s7cS5Xcml0YWJsZVN0YXRlPVg7'@; put 'dmFyIEg9T2JqZWN0LmNyZWF0ZShiKDY0OTcpKTtILmluaGVyaXRzPWIoNTcxNyk7dmFyIFEsUj17ZGVwcmVjYXRlOmIoNDkyNyl9LGo9Yig5ODE5KSxQPWIoMTU3MikuQnVmZmVyLEw9KHR5cGVvZiBiLmc8InUiP2IuZzp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dHlwZW9mIHNlbGY8InUi'@; put 'P3NlbGY6e30pLlVpbnQ4QXJyYXl8fGZ1bmN0aW9uKCl7fSxXPWIoNTk5Nyk7ZnVuY3Rpb24gWigpe31mdW5jdGlvbiBYKG0sQSl7Rj1GfHxiKDQzOTApO3ZhciBhZT1BIGluc3RhbmNlb2YgRjt0aGlzLm9iamVjdE1vZGU9ISEobT1tfHx7fSkub2JqZWN0TW9kZSxhZSYmKHRoaXMub2JqZWN0'@; put 'TW9kZT10aGlzLm9iamVjdE1vZGV8fCEhbS53cml0YWJsZU9iamVjdE1vZGUpO3ZhciBuZT1tLmhpZ2hXYXRlck1hcmssbGU9bS53cml0YWJsZUhpZ2hXYXRlck1hcms7dGhpcy5oaWdoV2F0ZXJNYXJrPW5lfHwwPT09bmU/bmU6YWUmJihsZXx8MD09PWxlKT9sZTp0aGlzLm9iamVjdE1vZGU/'@; put 'MTY6MTYzODQsdGhpcy5oaWdoV2F0ZXJNYXJrPU1hdGguZmxvb3IodGhpcy5oaWdoV2F0ZXJNYXJrKSx0aGlzLmZpbmFsQ2FsbGVkPSExLHRoaXMubmVlZERyYWluPSExLHRoaXMuZW5kaW5nPSExLHRoaXMuZW5kZWQ9ITEsdGhpcy5maW5pc2hlZD0hMSx0aGlzLmRlc3Ryb3llZD0hMSx0aGlz'@; put 'LmRlY29kZVN0cmluZ3M9ISghMT09PW0uZGVjb2RlU3RyaW5ncyksdGhpcy5kZWZhdWx0RW5jb2Rpbmc9bS5kZWZhdWx0RW5jb2Rpbmd8fCJ1dGY4Iix0aGlzLmxlbmd0aD0wLHRoaXMud3JpdGluZz0hMSx0aGlzLmNvcmtlZD0wLHRoaXMuc3luYz0hMCx0aGlzLmJ1ZmZlclByb2Nlc3Npbmc9'@; put 'ITEsdGhpcy5vbndyaXRlPWZ1bmN0aW9uKFFlKXshZnVuY3Rpb24gemUobSxBKXt2YXIgYWU9bS5fd3JpdGFibGVTdGF0ZSxuZT1hZS5zeW5jLGxlPWFlLndyaXRlY2I7aWYoZnVuY3Rpb24gU2UobSl7bS53cml0aW5nPSExLG0ud3JpdGVjYj1udWxsLG0ubGVuZ3RoLT1tLndyaXRlbGVuLG0u'@; put 'd3JpdGVsZW49MH0oYWUpLEEpIWZ1bmN0aW9uIFRlKG0sQSxhZSxuZSxsZSl7LS1BLnBlbmRpbmdjYixhZT8oXy5uZXh0VGljayhsZSxuZSksXy5uZXh0VGljayhWLG0sQSksbS5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAsbS5lbWl0KCJlcnJvciIsbmUpKToobGUobmUpLG0uX3dy'@; put 'aXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPSEwLG0uZW1pdCgiZXJyb3IiLG5lKSxWKG0sQSkpfShtLGFlLG5lLEEsbGUpO2Vsc2V7dmFyIHdlPXgoYWUpOyF3ZSYmIWFlLmNvcmtlZCYmIWFlLmJ1ZmZlclByb2Nlc3NpbmcmJmFlLmJ1ZmZlcmVkUmVxdWVzdCYmeShtLGFlKSxuZT93KHosbSxh'@; put 'ZSx3ZSxsZSk6eihtLGFlLHdlLGxlKX19KEEsUWUpfSx0aGlzLndyaXRlY2I9bnVsbCx0aGlzLndyaXRlbGVuPTAsdGhpcy5idWZmZXJlZFJlcXVlc3Q9bnVsbCx0aGlzLmxhc3RCdWZmZXJlZFJlcXVlc3Q9bnVsbCx0aGlzLnBlbmRpbmdjYj0wLHRoaXMucHJlZmluaXNoZWQ9ITEsdGhpcy5l'@; put 'cnJvckVtaXR0ZWQ9ITEsdGhpcy5idWZmZXJlZFJlcXVlc3RDb3VudD0wLHRoaXMuY29ya2VkUmVxdWVzdHNGcmVlPW5ldyBOKHRoaXMpfWZ1bmN0aW9uIHEobSl7aWYoRj1GfHxiKDQzOTApLCEoUS5jYWxsKHEsdGhpcyl8fHRoaXMgaW5zdGFuY2VvZiBGKSlyZXR1cm4gbmV3IHEobSk7dGhp'@; put 'cy5fd3JpdGFibGVTdGF0ZT1uZXcgWChtLHRoaXMpLHRoaXMud3JpdGFibGU9ITAsbSYmKCJmdW5jdGlvbiI9PXR5cGVvZiBtLndyaXRlJiYodGhpcy5fd3JpdGU9bS53cml0ZSksImZ1bmN0aW9uIj09dHlwZW9mIG0ud3JpdGV2JiYodGhpcy5fd3JpdGV2PW0ud3JpdGV2KSwiZnVuY3Rpb24i'@; put 'PT10eXBlb2YgbS5kZXN0cm95JiYodGhpcy5fZGVzdHJveT1tLmRlc3Ryb3kpLCJmdW5jdGlvbiI9PXR5cGVvZiBtLmZpbmFsJiYodGhpcy5fZmluYWw9bS5maW5hbCkpLGouY2FsbCh0aGlzKX1mdW5jdGlvbiBfZShtLEEsYWUsbmUsbGUsd2UsWmUpe0Eud3JpdGVsZW49bmUsQS53cml0ZWNi'@; put 'PVplLEEud3JpdGluZz0hMCxBLnN5bmM9ITAsYWU/bS5fd3JpdGV2KGxlLEEub253cml0ZSk6bS5fd3JpdGUobGUsd2UsQS5vbndyaXRlKSxBLnN5bmM9ITF9ZnVuY3Rpb24geihtLEEsYWUsbmUpe2FlfHxmdW5jdGlvbiBnKG0sQSl7MD09PUEubGVuZ3RoJiZBLm5lZWREcmFpbiYmKEEubmVl'@; put 'ZERyYWluPSExLG0uZW1pdCgiZHJhaW4iKSl9KG0sQSksQS5wZW5kaW5nY2ItLSxuZSgpLFYobSxBKX1mdW5jdGlvbiB5KG0sQSl7QS5idWZmZXJQcm9jZXNzaW5nPSEwO3ZhciBhZT1BLmJ1ZmZlcmVkUmVxdWVzdDtpZihtLl93cml0ZXYmJmFlJiZhZS5uZXh0KXt2YXIgbGU9bmV3IEFycmF5'@; put 'KEEuYnVmZmVyZWRSZXF1ZXN0Q291bnQpLHdlPUEuY29ya2VkUmVxdWVzdHNGcmVlO3dlLmVudHJ5PWFlO2Zvcih2YXIgWmU9MCxRZT0hMDthZTspbGVbWmVdPWFlLGFlLmlzQnVmfHwoUWU9ITEpLGFlPWFlLm5leHQsWmUrPTE7bGUuYWxsQnVmZmVycz1RZSxfZShtLEEsITAsQS5sZW5ndGgs'@; put 'bGUsIiIsd2UuZmluaXNoKSxBLnBlbmRpbmdjYisrLEEubGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsLHdlLm5leHQ/KEEuY29ya2VkUmVxdWVzdHNGcmVlPXdlLm5leHQsd2UubmV4dD1udWxsKTpBLmNvcmtlZFJlcXVlc3RzRnJlZT1uZXcgTihBKSxBLmJ1ZmZlcmVkUmVxdWVzdENvdW50PTB9'@; put 'ZWxzZXtmb3IoO2FlOyl7dmFyIGF0PWFlLmNodW5rO2lmKF9lKG0sQSwhMSxBLm9iamVjdE1vZGU/MTphdC5sZW5ndGgsYXQsYWUuZW5jb2RpbmcsYWUuY2FsbGJhY2spLGFlPWFlLm5leHQsQS5idWZmZXJlZFJlcXVlc3RDb3VudC0tLEEud3JpdGluZylicmVha31udWxsPT09YWUmJihBLmxh'@; put 'c3RCdWZmZXJlZFJlcXVlc3Q9bnVsbCl9QS5idWZmZXJlZFJlcXVlc3Q9YWUsQS5idWZmZXJQcm9jZXNzaW5nPSExfWZ1bmN0aW9uIHgobSl7cmV0dXJuIG0uZW5kaW5nJiYwPT09bS5sZW5ndGgmJm51bGw9PT1tLmJ1ZmZlcmVkUmVxdWVzdCYmIW0uZmluaXNoZWQmJiFtLndyaXRpbmd9ZnVu'@; put 'Y3Rpb24gQyhtLEEpe20uX2ZpbmFsKGZ1bmN0aW9uKGFlKXtBLnBlbmRpbmdjYi0tLGFlJiZtLmVtaXQoImVycm9yIixhZSksQS5wcmVmaW5pc2hlZD0hMCxtLmVtaXQoInByZWZpbmlzaCIpLFYobSxBKX0pfWZ1bmN0aW9uIFYobSxBKXt2YXIgYWU9eChBKTtyZXR1cm4gYWUmJihmdW5jdGlv'@; put 'biBUKG0sQSl7IUEucHJlZmluaXNoZWQmJiFBLmZpbmFsQ2FsbGVkJiYoImZ1bmN0aW9uIj09dHlwZW9mIG0uX2ZpbmFsPyhBLnBlbmRpbmdjYisrLEEuZmluYWxDYWxsZWQ9ITAsXy5uZXh0VGljayhDLG0sQSkpOihBLnByZWZpbmlzaGVkPSEwLG0uZW1pdCgicHJlZmluaXNoIikpKX0obSxB'@; put 'KSwwPT09QS5wZW5kaW5nY2ImJihBLmZpbmlzaGVkPSEwLG0uZW1pdCgiZmluaXNoIikpKSxhZX1ILmluaGVyaXRzKHEsaiksWC5wcm90b3R5cGUuZ2V0QnVmZmVyPWZ1bmN0aW9uKCl7Zm9yKHZhciBBPXRoaXMuYnVmZmVyZWRSZXF1ZXN0LGFlPVtdO0E7KWFlLnB1c2goQSksQT1BLm5leHQ7'@; put 'cmV0dXJuIGFlfSxmdW5jdGlvbigpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoWC5wcm90b3R5cGUsImJ1ZmZlciIse2dldDpSLmRlcHJlY2F0ZShmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldEJ1ZmZlcigpfSwiX3dyaXRhYmxlU3RhdGUuYnVmZmVyIGlzIGRlcHJlY2F0ZWQuIFVzZSBf'@; put 'd3JpdGFibGVTdGF0ZS5nZXRCdWZmZXIgaW5zdGVhZC4iLCJERVAwMDAzIil9KX1jYXRjaHt9fSgpLCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5oYXNJbnN0YW5jZSYmImZ1bmN0aW9uIj09dHlwZW9mIEZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdPyhR'@; put 'PUZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShxLFN5bWJvbC5oYXNJbnN0YW5jZSx7dmFsdWU6ZnVuY3Rpb24obSl7cmV0dXJuISFRLmNhbGwodGhpcyxtKXx8dGhpcz09PXEmJm0mJm0uX3dyaXRhYmxlU3RhdGUgaW5zdGFuY2Vv'@; put 'ZiBYfX0pKTpRPWZ1bmN0aW9uKG0pe3JldHVybiBtIGluc3RhbmNlb2YgdGhpc30scS5wcm90b3R5cGUucGlwZT1mdW5jdGlvbigpe3RoaXMuZW1pdCgiZXJyb3IiLG5ldyBFcnJvcigiQ2Fubm90IHBpcGUsIG5vdCByZWFkYWJsZSIpKX0scS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24obSxB'@; put 'LGFlKXt2YXIgbmU9dGhpcy5fd3JpdGFibGVTdGF0ZSxsZT0hMSx3ZT0hbmUub2JqZWN0TW9kZSYmZnVuY3Rpb24gQihtKXtyZXR1cm4gUC5pc0J1ZmZlcihtKXx8bSBpbnN0YW5jZW9mIEx9KG0pO3JldHVybiB3ZSYmIVAuaXNCdWZmZXIobSkmJihtPWZ1bmN0aW9uIFkobSl7cmV0dXJuIFAu'@; put 'ZnJvbShtKX0obSkpLCJmdW5jdGlvbiI9PXR5cGVvZiBBJiYoYWU9QSxBPW51bGwpLHdlP0E9ImJ1ZmZlciI6QXx8KEE9bmUuZGVmYXVsdEVuY29kaW5nKSwiZnVuY3Rpb24iIT10eXBlb2YgYWUmJihhZT1aKSxuZS5lbmRlZD9mdW5jdGlvbiB0ZShtLEEpe3ZhciBhZT1uZXcgRXJyb3IoIndy'@; put 'aXRlIGFmdGVyIGVuZCIpO20uZW1pdCgiZXJyb3IiLGFlKSxfLm5leHRUaWNrKEEsYWUpfSh0aGlzLGFlKTood2V8fGZ1bmN0aW9uIGllKG0sQSxhZSxuZSl7dmFyIGxlPSEwLHdlPSExO3JldHVybiBudWxsPT09YWU/d2U9bmV3IFR5cGVFcnJvcigiTWF5IG5vdCB3cml0ZSBudWxsIHZhbHVl'@; put 'cyB0byBzdHJlYW0iKToic3RyaW5nIiE9dHlwZW9mIGFlJiZ2b2lkIDAhPT1hZSYmIUEub2JqZWN0TW9kZSYmKHdlPW5ldyBUeXBlRXJyb3IoIkludmFsaWQgbm9uLXN0cmluZy9idWZmZXIgY2h1bmsiKSksd2UmJihtLmVtaXQoImVycm9yIix3ZSksXy5uZXh0VGljayhuZSx3ZSksbGU9ITEp'@; put 'LGxlfSh0aGlzLG5lLG0sYWUpKSYmKG5lLnBlbmRpbmdjYisrLGxlPWZ1bmN0aW9uIGdlKG0sQSxhZSxuZSxsZSx3ZSl7aWYoIWFlKXt2YXIgWmU9ZnVuY3Rpb24gc2UobSxBLGFlKXtyZXR1cm4hbS5vYmplY3RNb2RlJiYhMSE9PW0uZGVjb2RlU3RyaW5ncyYmInN0cmluZyI9PXR5cGVvZiBB'@; put 'JiYoQT1QLmZyb20oQSxhZSkpLEF9KEEsbmUsbGUpO25lIT09WmUmJihhZT0hMCxsZT0iYnVmZmVyIixuZT1aZSl9dmFyIFFlPUEub2JqZWN0TW9kZT8xOm5lLmxlbmd0aDtBLmxlbmd0aCs9UWU7dmFyIGF0PUEubGVuZ3RoPEEuaGlnaFdhdGVyTWFyaztpZihhdHx8KEEubmVlZERyYWluPSEw'@; put 'KSxBLndyaXRpbmd8fEEuY29ya2VkKXt2YXIgeGU9QS5sYXN0QnVmZmVyZWRSZXF1ZXN0O0EubGFzdEJ1ZmZlcmVkUmVxdWVzdD17Y2h1bms6bmUsZW5jb2Rpbmc6bGUsaXNCdWY6YWUsY2FsbGJhY2s6d2UsbmV4dDpudWxsfSx4ZT94ZS5uZXh0PUEubGFzdEJ1ZmZlcmVkUmVxdWVzdDpBLmJ1'@; put 'ZmZlcmVkUmVxdWVzdD1BLmxhc3RCdWZmZXJlZFJlcXVlc3QsQS5idWZmZXJlZFJlcXVlc3RDb3VudCs9MX1lbHNlIF9lKG0sQSwhMSxRZSxuZSxsZSx3ZSk7cmV0dXJuIGF0fSh0aGlzLG5lLHdlLG0sQSxhZSkpLGxlfSxxLnByb3RvdHlwZS5jb3JrPWZ1bmN0aW9uKCl7dGhpcy5fd3JpdGFi'@; put 'bGVTdGF0ZS5jb3JrZWQrK30scS5wcm90b3R5cGUudW5jb3JrPWZ1bmN0aW9uKCl7dmFyIG09dGhpcy5fd3JpdGFibGVTdGF0ZTttLmNvcmtlZCYmKG0uY29ya2VkLS0sIW0ud3JpdGluZyYmIW0uY29ya2VkJiYhbS5idWZmZXJQcm9jZXNzaW5nJiZtLmJ1ZmZlcmVkUmVxdWVzdCYmeSh0aGlz'@; put 'LG0pKX0scS5wcm90b3R5cGUuc2V0RGVmYXVsdEVuY29kaW5nPWZ1bmN0aW9uKEEpe2lmKCJzdHJpbmciPT10eXBlb2YgQSYmKEE9QS50b0xvd2VyQ2FzZSgpKSwhKFsiaGV4IiwidXRmOCIsInV0Zi04IiwiYXNjaWkiLCJiaW5hcnkiLCJiYXNlNjQiLCJ1Y3MyIiwidWNzLTIiLCJ1dGYxNmxl'@; put 'IiwidXRmLTE2bGUiLCJyYXciXS5pbmRleE9mKChBKyIiKS50b0xvd2VyQ2FzZSgpKT4tMSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIitBKTtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5kZWZhdWx0RW5jb2Rpbmc9QSx0aGlzfSxPYmplY3QuZGVmaW5lUHJv'@; put 'cGVydHkocS5wcm90b3R5cGUsIndyaXRhYmxlSGlnaFdhdGVyTWFyayIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUuaGlnaFdhdGVyTWFya319KSxxLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24obSxBLGFlKXthZShuZXcgRXJyb3Io'@; put 'Il93cml0ZSgpIGlzIG5vdCBpbXBsZW1lbnRlZCIpKX0scS5wcm90b3R5cGUuX3dyaXRldj1udWxsLHEucHJvdG90eXBlLmVuZD1mdW5jdGlvbihtLEEsYWUpe3ZhciBuZT10aGlzLl93cml0YWJsZVN0YXRlOyJmdW5jdGlvbiI9PXR5cGVvZiBtPyhhZT1tLG09bnVsbCxBPW51bGwpOiJmdW5j'@; put 'dGlvbiI9PXR5cGVvZiBBJiYoYWU9QSxBPW51bGwpLG51bGwhPW0mJnRoaXMud3JpdGUobSxBKSxuZS5jb3JrZWQmJihuZS5jb3JrZWQ9MSx0aGlzLnVuY29yaygpKSxuZS5lbmRpbmd8fGZ1bmN0aW9uIFUobSxBLGFlKXtBLmVuZGluZz0hMCxWKG0sQSksYWUmJihBLmZpbmlzaGVkP18ubmV4'@; put 'dFRpY2soYWUpOm0ub25jZSgiZmluaXNoIixhZSkpLEEuZW5kZWQ9ITAsbS53cml0YWJsZT0hMX0odGhpcyxuZSxhZSl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShxLnByb3RvdHlwZSwiZGVzdHJveWVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX3dyaXRhYmxlU3Rh'@; put 'dGUmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkfSxzZXQ6ZnVuY3Rpb24obSl7dGhpcy5fd3JpdGFibGVTdGF0ZSYmKHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkPW0pfX0pLHEucHJvdG90eXBlLmRlc3Ryb3k9Vy5kZXN0cm95LHEucHJvdG90eXBlLl91bmRlc3Ryb3k9Vy51'@; put 'bmRlc3Ryb3kscS5wcm90b3R5cGUuX2Rlc3Ryb3k9ZnVuY3Rpb24obSxBKXt0aGlzLmVuZCgpLEEobSl9fSwyMjY3OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBfPWIoMTU3MikuQnVmZmVyLHA9Yig2NDE5KTtmdW5jdGlvbiBOKHcsRixIKXt3LmNvcHkoRixIKX1jZS5leHBvcnRzPWZ1'@; put 'bmN0aW9uKCl7ZnVuY3Rpb24gdygpeyhmdW5jdGlvbiBEKHcsRil7aWYoISh3IGluc3RhbmNlb2YgRikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLHcpLHRoaXMuaGVhZD1udWxsLHRoaXMudGFpbD1udWxsLHRoaXMubGVu'@; put 'Z3RoPTB9cmV0dXJuIHcucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oSCl7dmFyIFI9e2RhdGE6SCxuZXh0Om51bGx9O3RoaXMubGVuZ3RoPjA/dGhpcy50YWlsLm5leHQ9Ujp0aGlzLmhlYWQ9Uix0aGlzLnRhaWw9UiwrK3RoaXMubGVuZ3RofSx3LnByb3RvdHlwZS51bnNoaWZ0PWZ1bmN0aW9u'@; put 'KEgpe3ZhciBSPXtkYXRhOkgsbmV4dDp0aGlzLmhlYWR9OzA9PT10aGlzLmxlbmd0aCYmKHRoaXMudGFpbD1SKSx0aGlzLmhlYWQ9UiwrK3RoaXMubGVuZ3RofSx3LnByb3RvdHlwZS5zaGlmdD1mdW5jdGlvbigpe2lmKDAhPT10aGlzLmxlbmd0aCl7dmFyIEg9dGhpcy5oZWFkLmRhdGE7cmV0'@; put 'dXJuIHRoaXMuaGVhZD0xPT09dGhpcy5sZW5ndGg/dGhpcy50YWlsPW51bGw6dGhpcy5oZWFkLm5leHQsLS10aGlzLmxlbmd0aCxIfX0sdy5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLmhlYWQ9dGhpcy50YWlsPW51bGwsdGhpcy5sZW5ndGg9MH0sdy5wcm90b3R5cGUuam9pbj1m'@; put 'dW5jdGlvbihIKXtpZigwPT09dGhpcy5sZW5ndGgpcmV0dXJuIiI7Zm9yKHZhciBSPXRoaXMuaGVhZCxqPSIiK1IuZGF0YTtSPVIubmV4dDspais9SCtSLmRhdGE7cmV0dXJuIGp9LHcucHJvdG90eXBlLmNvbmNhdD1mdW5jdGlvbihIKXtpZigwPT09dGhpcy5sZW5ndGgpcmV0dXJuIF8uYWxs'@; put 'b2MoMCk7Zm9yKHZhciBSPV8uYWxsb2NVbnNhZmUoSD4+PjApLGo9dGhpcy5oZWFkLFA9MDtqOylOKGouZGF0YSxSLFApLFArPWouZGF0YS5sZW5ndGgsaj1qLm5leHQ7cmV0dXJuIFJ9LHd9KCkscCYmcC5pbnNwZWN0JiZwLmluc3BlY3QuY3VzdG9tJiYoY2UuZXhwb3J0cy5wcm90b3R5cGVb'@; put 'cC5pbnNwZWN0LmN1c3RvbV09ZnVuY3Rpb24oKXt2YXIgdz1wLmluc3BlY3Qoe2xlbmd0aDp0aGlzLmxlbmd0aH0pO3JldHVybiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUrIiAiK3d9KX0sNTk5NzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDgyMTIpO2Z1bmN0aW9uIE4odyxGKXt3'@; put 'LmVtaXQoImVycm9yIixGKX1jZS5leHBvcnRzPXtkZXN0cm95OmZ1bmN0aW9uIF8odyxGKXt2YXIgSD10aGlzO3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlJiZ0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZHx8dGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5k'@; put 'ZXN0cm95ZWQ/KEY/Rih3KTp3JiYodGhpcy5fd3JpdGFibGVTdGF0ZT90aGlzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZHx8KHRoaXMuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPSEwLEQubmV4dFRpY2soTix0aGlzLHcpKTpELm5leHRUaWNrKE4sdGhpcyx3KSksdGhpcyk6KHRo'@; put 'aXMuX3JlYWRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD0hMCksdGhpcy5fd3JpdGFibGVTdGF0ZSYmKHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkPSEwKSx0aGlzLl9kZXN0cm95KHd8fG51bGwsZnVuY3Rpb24oUCl7IUYmJlA/SC5fd3JpdGFibGVTdGF0'@; put 'ZT9ILl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZHx8KEguX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPSEwLEQubmV4dFRpY2soTixILFApKTpELm5leHRUaWNrKE4sSCxQKTpGJiZGKFApfSksdGhpcyl9LHVuZGVzdHJveTpmdW5jdGlvbiBwKCl7dGhpcy5fcmVhZGFibGVTdGF0ZSYm'@; put 'KHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkPSExLHRoaXMuX3JlYWRhYmxlU3RhdGUucmVhZGluZz0hMSx0aGlzLl9yZWFkYWJsZVN0YXRlLmVuZGVkPSExLHRoaXMuX3JlYWRhYmxlU3RhdGUuZW5kRW1pdHRlZD0hMSksdGhpcy5fd3JpdGFibGVTdGF0ZSYmKHRoaXMuX3dyaXRhYmxl'@; put 'U3RhdGUuZGVzdHJveWVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZW5kZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5lbmRpbmc9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5maW5hbENhbGxlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLnByZWZpbmlzaGVkPSExLHRoaXMuX3dyaXRhYmxlU3Rh'@; put 'dGUuZmluaXNoZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITEpfX19LDk4MTk6KGNlLEosYik9PntjZS5leHBvcnRzPWIoNzE4NykuRXZlbnRFbWl0dGVyfSwxNTcyOihjZSxKLGIpPT57dmFyIEQ9Yig4NzY0KSxfPUQuQnVmZmVyO2Z1bmN0aW9uIHAodyxGKXtmb3Io'@; put 'dmFyIEggaW4gdylGW0hdPXdbSF19ZnVuY3Rpb24gTih3LEYsSCl7cmV0dXJuIF8odyxGLEgpfV8uZnJvbSYmXy5hbGxvYyYmXy5hbGxvY1Vuc2FmZSYmXy5hbGxvY1Vuc2FmZVNsb3c/Y2UuZXhwb3J0cz1EOihwKEQsSiksSi5CdWZmZXI9TikscChfLE4pLE4uZnJvbT1mdW5jdGlvbih3LEYs'@; put 'SCl7aWYoIm51bWJlciI9PXR5cGVvZiB3KXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3Qgbm90IGJlIGEgbnVtYmVyIik7cmV0dXJuIF8odyxGLEgpfSxOLmFsbG9jPWZ1bmN0aW9uKHcsRixIKXtpZigibnVtYmVyIiE9dHlwZW9mIHcpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJn'@; put 'dW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3ZhciBSPV8odyk7cmV0dXJuIHZvaWQgMCE9PUY/InN0cmluZyI9PXR5cGVvZiBIP1IuZmlsbChGLEgpOlIuZmlsbChGKTpSLmZpbGwoMCksUn0sTi5hbGxvY1Vuc2FmZT1mdW5jdGlvbih3KXtpZigibnVtYmVyIiE9dHlwZW9mIHcpdGhyb3cgbmV3'@; put 'IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiBfKHcpfSxOLmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbih3KXtpZigibnVtYmVyIiE9dHlwZW9mIHcpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiBELlNs'@; put 'b3dCdWZmZXIodyl9fSwzODcyOihjZSxKLGIpPT57KEo9Y2UuZXhwb3J0cz1iKDQ5NjApKS5TdHJlYW09SixKLlJlYWRhYmxlPUosSi5Xcml0YWJsZT1iKDIwMTApLEouRHVwbGV4PWIoNDM5MCksSi5UcmFuc2Zvcm09YigzOTEyKSxKLlBhc3NUaHJvdWdoPWIoMTI5NCl9LDIyMjE6KGNlLEos'@; put 'Yik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigzMzY0KS5CdWZmZXIsXz1ELmlzRW5jb2Rpbmd8fGZ1bmN0aW9uKHEpe3N3aXRjaCgocT0iIitxKSYmcS50b0xvd2VyQ2FzZSgpKXtjYXNlImhleCI6Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpjYXNlImFzY2lpIjpjYXNlImJpbmFyeSI6Y2FzZSJi'@; put 'YXNlNjQiOmNhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpjYXNlInJhdyI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19O2Z1bmN0aW9uIHcocSl7dmFyIHRlO3N3aXRjaCh0aGlzLmVuY29kaW5nPWZ1bmN0aW9uIE4ocSl7dmFyIHRlPWZ1bmN0'@; put 'aW9uIHAocSl7aWYoIXEpcmV0dXJuInV0ZjgiO2Zvcih2YXIgdGU7Oylzd2l0Y2gocSl7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4idXRmOCI7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiJ1dGYxNmxlIjtjYXNlImxhdGlu'@; put 'MSI6Y2FzZSJiaW5hcnkiOnJldHVybiJsYXRpbjEiO2Nhc2UiYmFzZTY0IjpjYXNlImFzY2lpIjpjYXNlImhleCI6cmV0dXJuIHE7ZGVmYXVsdDppZih0ZSlyZXR1cm47cT0oIiIrcSkudG9Mb3dlckNhc2UoKSx0ZT0hMH19KHEpO2lmKCJzdHJpbmciIT10eXBlb2YgdGUmJihELmlzRW5jb2Rp'@; put 'bmc9PT1ffHwhXyhxKSkpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK3EpO3JldHVybiB0ZXx8cX0ocSksdGhpcy5lbmNvZGluZyl7Y2FzZSJ1dGYxNmxlIjp0aGlzLnRleHQ9WSx0aGlzLmVuZD1CLHRlPTQ7YnJlYWs7Y2FzZSJ1dGY4Ijp0aGlzLmZpbGxMYXN0PWosdGU9'@; put 'NDticmVhaztjYXNlImJhc2U2NCI6dGhpcy50ZXh0PVcsdGhpcy5lbmQ9Wix0ZT0zO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIHRoaXMud3JpdGU9WCx2b2lkKHRoaXMuZW5kPVEpfXRoaXMubGFzdE5lZWQ9MCx0aGlzLmxhc3RUb3RhbD0wLHRoaXMubGFzdENoYXI9RC5hbGxvY1Vuc2FmZSh0ZSl9'@; put 'ZnVuY3Rpb24gRihxKXtyZXR1cm4gcTw9MTI3PzA6cT4+NT09Nj8yOnE+PjQ9PTE0PzM6cT4+Mz09MzA/NDpxPj42PT0yPy0xOi0yfWZ1bmN0aW9uIGoocSl7dmFyIHRlPXRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQsaWU9ZnVuY3Rpb24gUihxLHRlLGllKXtpZigxMjghPSgxOTImdGVb'@; put 'MF0pKXJldHVybiBxLmxhc3ROZWVkPTAsIlx1ZmZmZCI7aWYocS5sYXN0TmVlZD4xJiZ0ZS5sZW5ndGg+MSl7aWYoMTI4IT0oMTkyJnRlWzFdKSlyZXR1cm4gcS5sYXN0TmVlZD0xLCJcdWZmZmQiO2lmKHEubGFzdE5lZWQ+MiYmdGUubGVuZ3RoPjImJjEyOCE9KDE5MiZ0ZVsyXSkpcmV0dXJu'@; put 'IHEubGFzdE5lZWQ9MiwiXHVmZmZkIn19KHRoaXMscSk7cmV0dXJuIHZvaWQgMCE9PWllP2llOnRoaXMubGFzdE5lZWQ8PXEubGVuZ3RoPyhxLmNvcHkodGhpcy5sYXN0Q2hhcix0ZSwwLHRoaXMubGFzdE5lZWQpLHRoaXMubGFzdENoYXIudG9TdHJpbmcodGhpcy5lbmNvZGluZywwLHRoaXMu'@; put 'bGFzdFRvdGFsKSk6KHEuY29weSh0aGlzLmxhc3RDaGFyLHRlLDAscS5sZW5ndGgpLHZvaWQodGhpcy5sYXN0TmVlZC09cS5sZW5ndGgpKX1mdW5jdGlvbiBZKHEsdGUpe2lmKChxLmxlbmd0aC10ZSklMj09MCl7dmFyIGllPXEudG9TdHJpbmcoInV0ZjE2bGUiLHRlKTtpZihpZSl7dmFyIHNl'@; put 'PWllLmNoYXJDb2RlQXQoaWUubGVuZ3RoLTEpO2lmKHNlPj01NTI5NiYmc2U8PTU2MzE5KXJldHVybiB0aGlzLmxhc3ROZWVkPTIsdGhpcy5sYXN0VG90YWw9NCx0aGlzLmxhc3RDaGFyWzBdPXFbcS5sZW5ndGgtMl0sdGhpcy5sYXN0Q2hhclsxXT1xW3EubGVuZ3RoLTFdLGllLnNsaWNlKDAs'@; put 'LTEpfXJldHVybiBpZX1yZXR1cm4gdGhpcy5sYXN0TmVlZD0xLHRoaXMubGFzdFRvdGFsPTIsdGhpcy5sYXN0Q2hhclswXT1xW3EubGVuZ3RoLTFdLHEudG9TdHJpbmcoInV0ZjE2bGUiLHRlLHEubGVuZ3RoLTEpfWZ1bmN0aW9uIEIocSl7dmFyIHRlPXEmJnEubGVuZ3RoP3RoaXMud3JpdGUo'@; put 'cSk6IiI7cmV0dXJuIHRoaXMubGFzdE5lZWQ/dGUrdGhpcy5sYXN0Q2hhci50b1N0cmluZygidXRmMTZsZSIsMCx0aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkKTp0ZX1mdW5jdGlvbiBXKHEsdGUpe3ZhciBpZT0ocS5sZW5ndGgtdGUpJTM7cmV0dXJuIDA9PT1pZT9xLnRvU3RyaW5nKCJi'@; put 'YXNlNjQiLHRlKToodGhpcy5sYXN0TmVlZD0zLWllLHRoaXMubGFzdFRvdGFsPTMsMT09PWllP3RoaXMubGFzdENoYXJbMF09cVtxLmxlbmd0aC0xXToodGhpcy5sYXN0Q2hhclswXT1xW3EubGVuZ3RoLTJdLHRoaXMubGFzdENoYXJbMV09cVtxLmxlbmd0aC0xXSkscS50b1N0cmluZygiYmFz'@; put 'ZTY0Iix0ZSxxLmxlbmd0aC1pZSkpfWZ1bmN0aW9uIFoocSl7dmFyIHRlPXEmJnEubGVuZ3RoP3RoaXMud3JpdGUocSk6IiI7cmV0dXJuIHRoaXMubGFzdE5lZWQ/dGUrdGhpcy5sYXN0Q2hhci50b1N0cmluZygiYmFzZTY0IiwwLDMtdGhpcy5sYXN0TmVlZCk6dGV9ZnVuY3Rpb24gWChxKXty'@; put 'ZXR1cm4gcS50b1N0cmluZyh0aGlzLmVuY29kaW5nKX1mdW5jdGlvbiBRKHEpe3JldHVybiBxJiZxLmxlbmd0aD90aGlzLndyaXRlKHEpOiIifUoucz13LHcucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKHEpe2lmKDA9PT1xLmxlbmd0aClyZXR1cm4iIjt2YXIgdGUsaWU7aWYodGhpcy5sYXN0'@; put 'TmVlZCl7aWYodm9pZCAwPT09KHRlPXRoaXMuZmlsbExhc3QocSkpKXJldHVybiIiO2llPXRoaXMubGFzdE5lZWQsdGhpcy5sYXN0TmVlZD0wfWVsc2UgaWU9MDtyZXR1cm4gaWU8cS5sZW5ndGg/dGU/dGUrdGhpcy50ZXh0KHEsaWUpOnRoaXMudGV4dChxLGllKTp0ZXx8IiJ9LHcucHJvdG90'@; put 'eXBlLmVuZD1mdW5jdGlvbiBMKHEpe3ZhciB0ZT1xJiZxLmxlbmd0aD90aGlzLndyaXRlKHEpOiIiO3JldHVybiB0aGlzLmxhc3ROZWVkP3RlKyJcdWZmZmQiOnRlfSx3LnByb3RvdHlwZS50ZXh0PWZ1bmN0aW9uIFAocSx0ZSl7dmFyIGllPWZ1bmN0aW9uIEgocSx0ZSxpZSl7dmFyIHNlPXRl'@; put 'Lmxlbmd0aC0xO2lmKHNlPGllKXJldHVybiAwO3ZhciBnZT1GKHRlW3NlXSk7cmV0dXJuIGdlPj0wPyhnZT4wJiYocS5sYXN0TmVlZD1nZS0xKSxnZSk6LS1zZTxpZXx8LTI9PT1nZT8wOihnZT1GKHRlW3NlXSkpPj0wPyhnZT4wJiYocS5sYXN0TmVlZD1nZS0yKSxnZSk6LS1zZTxpZXx8LTI9'@; put 'PT1nZT8wOihnZT1GKHRlW3NlXSkpPj0wPyhnZT4wJiYoMj09PWdlP2dlPTA6cS5sYXN0TmVlZD1nZS0zKSxnZSk6MH0odGhpcyxxLHRlKTtpZighdGhpcy5sYXN0TmVlZClyZXR1cm4gcS50b1N0cmluZygidXRmOCIsdGUpO3RoaXMubGFzdFRvdGFsPWllO3ZhciBzZT1xLmxlbmd0aC0oaWUt'@; put 'dGhpcy5sYXN0TmVlZCk7cmV0dXJuIHEuY29weSh0aGlzLmxhc3RDaGFyLDAsc2UpLHEudG9TdHJpbmcoInV0ZjgiLHRlLHNlKX0sdy5wcm90b3R5cGUuZmlsbExhc3Q9ZnVuY3Rpb24ocSl7aWYodGhpcy5sYXN0TmVlZDw9cS5sZW5ndGgpcmV0dXJuIHEuY29weSh0aGlzLmxhc3RDaGFyLHRo'@; put 'aXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQsMCx0aGlzLmxhc3ROZWVkKSx0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKHRoaXMuZW5jb2RpbmcsMCx0aGlzLmxhc3RUb3RhbCk7cS5jb3B5KHRoaXMubGFzdENoYXIsdGhpcy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZCwwLHEubGVuZ3RoKSx0aGlz'@; put 'Lmxhc3ROZWVkLT1xLmxlbmd0aH19LDMzNjQ6KGNlLEosYik9Pnt2YXIgRD1iKDg3NjQpLF89RC5CdWZmZXI7ZnVuY3Rpb24gcCh3LEYpe2Zvcih2YXIgSCBpbiB3KUZbSF09d1tIXX1mdW5jdGlvbiBOKHcsRixIKXtyZXR1cm4gXyh3LEYsSCl9Xy5mcm9tJiZfLmFsbG9jJiZfLmFsbG9jVW5z'@; put 'YWZlJiZfLmFsbG9jVW5zYWZlU2xvdz9jZS5leHBvcnRzPUQ6KHAoRCxKKSxKLkJ1ZmZlcj1OKSxwKF8sTiksTi5mcm9tPWZ1bmN0aW9uKHcsRixIKXtpZigibnVtYmVyIj09dHlwZW9mIHcpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBub3QgYmUgYSBudW1iZXIiKTtyZXR1'@; put 'cm4gXyh3LEYsSCl9LE4uYWxsb2M9ZnVuY3Rpb24odyxGLEgpe2lmKCJudW1iZXIiIT10eXBlb2Ygdyl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7dmFyIFI9Xyh3KTtyZXR1cm4gdm9pZCAwIT09Rj8ic3RyaW5nIj09dHlwZW9mIEg/Ui5maWxsKEYs'@; put 'SCk6Ui5maWxsKEYpOlIuZmlsbCgwKSxSfSxOLmFsbG9jVW5zYWZlPWZ1bmN0aW9uKHcpe2lmKCJudW1iZXIiIT10eXBlb2Ygdyl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuIF8odyl9LE4uYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKHcp'@; put 'e2lmKCJudW1iZXIiIT10eXBlb2Ygdyl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuIEQuU2xvd0J1ZmZlcih3KX19LDcyOTU6KGNlLEosYik9Pnt2YXIgRD1iKDg3NjQpLkJ1ZmZlcjtjZS5leHBvcnRzPWZ1bmN0aW9uKHAsTil7Zm9yKHZh'@; put 'ciB3PU1hdGgubWluKHAubGVuZ3RoLE4ubGVuZ3RoKSxGPW5ldyBEKHcpLEg9MDtIPHc7KytIKUZbSF09cFtIXV5OW0hdO3JldHVybiBGfX0sODc2NDooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDUxMDgpO2NvbnN0IF89Yig5NzQyKSxwPWIoNjQ1KSxOPSJmdW5jdGlvbiI9PXR5'@; put 'cGVvZiBTeW1ib2wmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wuZm9yP1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLmluc3BlY3QuY3VzdG9tIik6bnVsbDtKLkJ1ZmZlcj1SLEouU2xvd0J1ZmZlcj1mdW5jdGlvbiB0ZShLZSl7cmV0dXJuK0tlIT1LZSYmKEtlPTApLFIuYWxsb2MoK0tlKX0s'@; put 'Si5JTlNQRUNUX01BWF9CWVRFUz01MDtjb25zdCB3PTIxNDc0ODM2NDc7ZnVuY3Rpb24gSChLZSl7aWYoS2U+dyl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlICInK0tlKyciIGlzIGludmFsaWQgZm9yIG9wdGlvbiAic2l6ZSInKTtjb25zdCB0dD1uZXcgVWludDhBcnJheShLZSk7'@; put 'cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZih0dCxSLnByb3RvdHlwZSksdHR9ZnVuY3Rpb24gUihLZSx0dCxOZSl7aWYoIm51bWJlciI9PXR5cGVvZiBLZSl7aWYoInN0cmluZyI9PXR5cGVvZiB0dCl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInN0cmluZyIgYXJndW1lbnQgbXVzdCBi'@; put 'ZSBvZiB0eXBlIHN0cmluZy4gUmVjZWl2ZWQgdHlwZSBudW1iZXInKTtyZXR1cm4gWShLZSl9cmV0dXJuIGooS2UsdHQsTmUpfWZ1bmN0aW9uIGooS2UsdHQsTmUpe2lmKCJzdHJpbmciPT10eXBlb2YgS2UpcmV0dXJuIGZ1bmN0aW9uIEIoS2UsdHQpe2lmKCgic3RyaW5nIiE9dHlwZW9mIHR0'@; put 'fHwiIj09PXR0KSYmKHR0PSJ1dGY4IiksIVIuaXNFbmNvZGluZyh0dCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIit0dCk7Y29uc3QgTmU9MHxpZShLZSx0dCk7bGV0IHV0PUgoTmUpO2NvbnN0IEp0PXV0LndyaXRlKEtlLHR0KTtyZXR1cm4gSnQhPT1OZSYmKHV0'@; put 'PXV0LnNsaWNlKDAsSnQpKSx1dH0oS2UsdHQpO2lmKEFycmF5QnVmZmVyLmlzVmlldyhLZSkpcmV0dXJuIGZ1bmN0aW9uIFooS2Upe2lmKG9uKEtlLFVpbnQ4QXJyYXkpKXtjb25zdCB0dD1uZXcgVWludDhBcnJheShLZSk7cmV0dXJuIFgodHQuYnVmZmVyLHR0LmJ5dGVPZmZzZXQsdHQuYnl0'@; put 'ZUxlbmd0aCl9cmV0dXJuIFcoS2UpfShLZSk7aWYobnVsbD09S2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgb3IgQXJyYXktbGlrZSBPYmplY3QuIFJlY2VpdmVk'@; put 'IHR5cGUgIit0eXBlb2YgS2UpO2lmKG9uKEtlLEFycmF5QnVmZmVyKXx8S2UmJm9uKEtlLmJ1ZmZlcixBcnJheUJ1ZmZlcil8fHR5cGVvZiBTaGFyZWRBcnJheUJ1ZmZlcjwidSImJihvbihLZSxTaGFyZWRBcnJheUJ1ZmZlcil8fEtlJiZvbihLZS5idWZmZXIsU2hhcmVkQXJyYXlCdWZmZXIp'@; put 'KSlyZXR1cm4gWChLZSx0dCxOZSk7aWYoIm51bWJlciI9PXR5cGVvZiBLZSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInZhbHVlIiBhcmd1bWVudCBtdXN0IG5vdCBiZSBvZiB0eXBlIG51bWJlci4gUmVjZWl2ZWQgdHlwZSBudW1iZXInKTtjb25zdCB1dD1LZS52YWx1ZU9mJiZLZS52YWx1'@; put 'ZU9mKCk7aWYobnVsbCE9dXQmJnV0IT09S2UpcmV0dXJuIFIuZnJvbSh1dCx0dCxOZSk7Y29uc3QgSnQ9ZnVuY3Rpb24gUShLZSl7aWYoUi5pc0J1ZmZlcihLZSkpe2NvbnN0IHR0PTB8cShLZS5sZW5ndGgpLE5lPUgodHQpO3JldHVybiAwPT09TmUubGVuZ3RofHxLZS5jb3B5KE5lLDAsMCx0'@; put 'dCksTmV9cmV0dXJuIHZvaWQgMCE9PUtlLmxlbmd0aD8ibnVtYmVyIiE9dHlwZW9mIEtlLmxlbmd0aHx8eXQoS2UubGVuZ3RoKT9IKDApOlcoS2UpOiJCdWZmZXIiPT09S2UudHlwZSYmQXJyYXkuaXNBcnJheShLZS5kYXRhKT9XKEtlLmRhdGEpOnZvaWQgMH0oS2UpO2lmKEp0KXJldHVybiBK'@; put 'dDtpZih0eXBlb2YgU3ltYm9sPCJ1IiYmbnVsbCE9U3ltYm9sLnRvUHJpbWl0aXZlJiYiZnVuY3Rpb24iPT10eXBlb2YgS2VbU3ltYm9sLnRvUHJpbWl0aXZlXSlyZXR1cm4gUi5mcm9tKEtlW1N5bWJvbC50b1ByaW1pdGl2ZV0oInN0cmluZyIpLHR0LE5lKTt0aHJvdyBuZXcgVHlwZUVycm9y'@; put 'KCJUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSAiK3R5cGVvZiBLZSl9ZnVuY3Rpb24gUChLZSl7aWYoIm51bWJlciIhPXR5cGVvZiBLZSl0'@; put 'aHJvdyBuZXcgVHlwZUVycm9yKCcic2l6ZSIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIG51bWJlcicpO2lmKEtlPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSAiJytLZSsnIiBpcyBpbnZhbGlkIGZvciBvcHRpb24gInNpemUiJyl9ZnVuY3Rpb24gWShLZSl7cmV0dXJuIFAo'@; put 'S2UpLEgoS2U8MD8wOjB8cShLZSkpfWZ1bmN0aW9uIFcoS2Upe2NvbnN0IHR0PUtlLmxlbmd0aDwwPzA6MHxxKEtlLmxlbmd0aCksTmU9SCh0dCk7Zm9yKGxldCB1dD0wO3V0PHR0O3V0Kz0xKU5lW3V0XT0yNTUmS2VbdXRdO3JldHVybiBOZX1mdW5jdGlvbiBYKEtlLHR0LE5lKXtpZih0dDww'@; put 'fHxLZS5ieXRlTGVuZ3RoPHR0KXRocm93IG5ldyBSYW5nZUVycm9yKCcib2Zmc2V0IiBpcyBvdXRzaWRlIG9mIGJ1ZmZlciBib3VuZHMnKTtpZihLZS5ieXRlTGVuZ3RoPHR0KyhOZXx8MCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJsZW5ndGgiIGlzIG91dHNpZGUgb2YgYnVmZmVyIGJvdW5k'@; put 'cycpO2xldCB1dDtyZXR1cm4gdXQ9dm9pZCAwPT09dHQmJnZvaWQgMD09PU5lP25ldyBVaW50OEFycmF5KEtlKTp2b2lkIDA9PT1OZT9uZXcgVWludDhBcnJheShLZSx0dCk6bmV3IFVpbnQ4QXJyYXkoS2UsdHQsTmUpLE9iamVjdC5zZXRQcm90b3R5cGVPZih1dCxSLnByb3RvdHlwZSksdXR9'@; put 'ZnVuY3Rpb24gcShLZSl7aWYoS2U+PXcpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkF0dGVtcHQgdG8gYWxsb2NhdGUgQnVmZmVyIGxhcmdlciB0aGFuIG1heGltdW0gc2l6ZTogMHgiK3cudG9TdHJpbmcoMTYpKyIgYnl0ZXMiKTtyZXR1cm4gMHxLZX1mdW5jdGlvbiBpZShLZSx0dCl7aWYoUi5p'@; put 'c0J1ZmZlcihLZSkpcmV0dXJuIEtlLmxlbmd0aDtpZihBcnJheUJ1ZmZlci5pc1ZpZXcoS2UpfHxvbihLZSxBcnJheUJ1ZmZlcikpcmV0dXJuIEtlLmJ5dGVMZW5ndGg7aWYoInN0cmluZyIhPXR5cGVvZiBLZSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInN0cmluZyIgYXJndW1lbnQgbXVz'@; put 'dCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgb3IgQXJyYXlCdWZmZXIuIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2YgS2UpO2NvbnN0IE5lPUtlLmxlbmd0aCx1dD1hcmd1bWVudHMubGVuZ3RoPjImJiEwPT09YXJndW1lbnRzWzJdO2lmKCF1dCYmMD09PU5lKXJldHVybiAwO2xldCBK'@; put 'dD0hMTtmb3IoOzspc3dpdGNoKHR0KXtjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiBOZTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiBEZShLZSkubGVuZ3RoO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxl'@; put 'IjpyZXR1cm4gMipOZTtjYXNlImhleCI6cmV0dXJuIE5lPj4+MTtjYXNlImJhc2U2NCI6cmV0dXJuIG50KEtlKS5sZW5ndGg7ZGVmYXVsdDppZihKdClyZXR1cm4gdXQ/LTE6RGUoS2UpLmxlbmd0aDt0dD0oIiIrdHQpLnRvTG93ZXJDYXNlKCksSnQ9ITB9fWZ1bmN0aW9uIHNlKEtlLHR0LE5l'@; put 'KXtsZXQgdXQ9ITE7aWYoKHZvaWQgMD09PXR0fHx0dDwwKSYmKHR0PTApLHR0PnRoaXMubGVuZ3RofHwoKHZvaWQgMD09PU5lfHxOZT50aGlzLmxlbmd0aCkmJihOZT10aGlzLmxlbmd0aCksTmU8PTApfHwoTmU+Pj49MCk8PSh0dD4+Pj0wKSlyZXR1cm4iIjtmb3IoS2V8fChLZT0idXRmOCIp'@; put 'Ozspc3dpdGNoKEtlKXtjYXNlImhleCI6cmV0dXJuIG0odGhpcyx0dCxOZSk7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4gQyh0aGlzLHR0LE5lKTtjYXNlImFzY2lpIjpyZXR1cm4gVSh0aGlzLHR0LE5lKTtjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiBFKHRoaXMsdHQs'@; put 'TmUpO2Nhc2UiYmFzZTY0IjpyZXR1cm4geCh0aGlzLHR0LE5lKTtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIEEodGhpcyx0dCxOZSk7ZGVmYXVsdDppZih1dCl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAi'@; put 'K0tlKTtLZT0oS2UrIiIpLnRvTG93ZXJDYXNlKCksdXQ9ITB9fWZ1bmN0aW9uIGdlKEtlLHR0LE5lKXtjb25zdCB1dD1LZVt0dF07S2VbdHRdPUtlW05lXSxLZVtOZV09dXR9ZnVuY3Rpb24gX2UoS2UsdHQsTmUsdXQsSnQpe2lmKDA9PT1LZS5sZW5ndGgpcmV0dXJuLTE7aWYoInN0cmluZyI9'@; put 'PXR5cGVvZiBOZT8odXQ9TmUsTmU9MCk6TmU+MjE0NzQ4MzY0Nz9OZT0yMTQ3NDgzNjQ3Ok5lPC0yMTQ3NDgzNjQ4JiYoTmU9LTIxNDc0ODM2NDgpLHl0KE5lPStOZSkmJihOZT1KdD8wOktlLmxlbmd0aC0xKSxOZTwwJiYoTmU9S2UubGVuZ3RoK05lKSxOZT49S2UubGVuZ3RoKXtpZihKdCly'@; put 'ZXR1cm4tMTtOZT1LZS5sZW5ndGgtMX1lbHNlIGlmKE5lPDApe2lmKCFKdClyZXR1cm4tMTtOZT0wfWlmKCJzdHJpbmciPT10eXBlb2YgdHQmJih0dD1SLmZyb20odHQsdXQpKSxSLmlzQnVmZmVyKHR0KSlyZXR1cm4gMD09PXR0Lmxlbmd0aD8tMTpUZShLZSx0dCxOZSx1dCxKdCk7aWYoIm51'@; put 'bWJlciI9PXR5cGVvZiB0dClyZXR1cm4gdHQmPTI1NSwiZnVuY3Rpb24iPT10eXBlb2YgVWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZj9KdD9VaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoS2UsdHQsTmUpOlVpbnQ4QXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwo'@; put 'S2UsdHQsTmUpOlRlKEtlLFt0dF0sTmUsdXQsSnQpO3Rocm93IG5ldyBUeXBlRXJyb3IoInZhbCBtdXN0IGJlIHN0cmluZywgbnVtYmVyIG9yIEJ1ZmZlciIpfWZ1bmN0aW9uIFRlKEtlLHR0LE5lLHV0LEp0KXtsZXQgc24sTHQ9MSxQdD1LZS5sZW5ndGgsb2k9dHQubGVuZ3RoO2lmKHZvaWQg'@; put 'MCE9PXV0JiYoInVjczIiPT09KHV0PVN0cmluZyh1dCkudG9Mb3dlckNhc2UoKSl8fCJ1Y3MtMiI9PT11dHx8InV0ZjE2bGUiPT09dXR8fCJ1dGYtMTZsZSI9PT11dCkpe2lmKEtlLmxlbmd0aDwyfHx0dC5sZW5ndGg8MilyZXR1cm4tMTtMdD0yLFB0Lz0yLG9pLz0yLE5lLz0yfWZ1bmN0aW9u'@; put 'IGVuKElpLGRuKXtyZXR1cm4gMT09PUx0P0lpW2RuXTpJaS5yZWFkVUludDE2QkUoZG4qTHQpfWlmKEp0KXtsZXQgSWk9LTE7Zm9yKHNuPU5lO3NuPFB0O3NuKyspaWYoZW4oS2Usc24pPT09ZW4odHQsLTE9PT1JaT8wOnNuLUlpKSl7aWYoLTE9PT1JaSYmKElpPXNuKSxzbi1JaSsxPT09b2kp'@; put 'cmV0dXJuIElpKkx0fWVsc2UtMSE9PUlpJiYoc24tPXNuLUlpKSxJaT0tMX1lbHNlIGZvcihOZStvaT5QdCYmKE5lPVB0LW9pKSxzbj1OZTtzbj49MDtzbi0tKXtsZXQgSWk9ITA7Zm9yKGxldCBkbj0wO2RuPG9pO2RuKyspaWYoZW4oS2Usc24rZG4pIT09ZW4odHQsZG4pKXtJaT0hMTticmVh'@; put 'a31pZihJaSlyZXR1cm4gc259cmV0dXJuLTF9ZnVuY3Rpb24gU2UoS2UsdHQsTmUsdXQpe05lPU51bWJlcihOZSl8fDA7Y29uc3QgSnQ9S2UubGVuZ3RoLU5lO3V0Pyh1dD1OdW1iZXIodXQpKT5KdCYmKHV0PUp0KTp1dD1KdDtjb25zdCBMdD10dC5sZW5ndGg7bGV0IFB0O2Zvcih1dD5MdC8y'@; put 'JiYodXQ9THQvMiksUHQ9MDtQdDx1dDsrK1B0KXtjb25zdCBvaT1wYXJzZUludCh0dC5zdWJzdHIoMipQdCwyKSwxNik7aWYoeXQob2kpKXJldHVybiBQdDtLZVtOZStQdF09b2l9cmV0dXJuIFB0fWZ1bmN0aW9uIHplKEtlLHR0LE5lLHV0KXtyZXR1cm4gSmUoRGUodHQsS2UubGVuZ3RoLU5l'@; put 'KSxLZSxOZSx1dCl9ZnVuY3Rpb24geihLZSx0dCxOZSx1dCl7cmV0dXJuIEplKGZ1bmN0aW9uIGtlKEtlKXtjb25zdCB0dD1bXTtmb3IobGV0IE5lPTA7TmU8S2UubGVuZ3RoOysrTmUpdHQucHVzaCgyNTUmS2UuY2hhckNvZGVBdChOZSkpO3JldHVybiB0dH0odHQpLEtlLE5lLHV0KX1mdW5j'@; put 'dGlvbiBnKEtlLHR0LE5lLHV0KXtyZXR1cm4gSmUobnQodHQpLEtlLE5lLHV0KX1mdW5jdGlvbiB5KEtlLHR0LE5lLHV0KXtyZXR1cm4gSmUoZnVuY3Rpb24gX3QoS2UsdHQpe2xldCBOZSx1dCxKdDtjb25zdCBMdD1bXTtmb3IobGV0IFB0PTA7UHQ8S2UubGVuZ3RoJiYhKCh0dC09Mik8MCk7'@; put 'KytQdClOZT1LZS5jaGFyQ29kZUF0KFB0KSx1dD1OZT4+OCxKdD1OZSUyNTYsTHQucHVzaChKdCksTHQucHVzaCh1dCk7cmV0dXJuIEx0fSh0dCxLZS5sZW5ndGgtTmUpLEtlLE5lLHV0KX1mdW5jdGlvbiB4KEtlLHR0LE5lKXtyZXR1cm4gXy5mcm9tQnl0ZUFycmF5KDA9PT10dCYmTmU9PT1L'@; put 'ZS5sZW5ndGg/S2U6S2Uuc2xpY2UodHQsTmUpKX1mdW5jdGlvbiBDKEtlLHR0LE5lKXtOZT1NYXRoLm1pbihLZS5sZW5ndGgsTmUpO2NvbnN0IHV0PVtdO2xldCBKdD10dDtmb3IoO0p0PE5lOyl7Y29uc3QgTHQ9S2VbSnRdO2xldCBQdD1udWxsLG9pPUx0PjIzOT80Okx0PjIyMz8zOkx0PjE5'@; put 'MT8yOjE7aWYoSnQrb2k8PU5lKXtsZXQgZW4sc24sSWksZG47c3dpdGNoKG9pKXtjYXNlIDE6THQ8MTI4JiYoUHQ9THQpO2JyZWFrO2Nhc2UgMjplbj1LZVtKdCsxXSwxMjg9PSgxOTImZW4pJiYoZG49KDMxJkx0KTw8Nnw2MyZlbixkbj4xMjcmJihQdD1kbikpO2JyZWFrO2Nhc2UgMzplbj1L'@; put 'ZVtKdCsxXSxzbj1LZVtKdCsyXSwxMjg9PSgxOTImZW4pJiYxMjg9PSgxOTImc24pJiYoZG49KDE1Jkx0KTw8MTJ8KDYzJmVuKTw8Nnw2MyZzbixkbj4yMDQ3JiYoZG48NTUyOTZ8fGRuPjU3MzQzKSYmKFB0PWRuKSk7YnJlYWs7Y2FzZSA0OmVuPUtlW0p0KzFdLHNuPUtlW0p0KzJdLElpPUtl'@; put 'W0p0KzNdLDEyOD09KDE5MiZlbikmJjEyOD09KDE5MiZzbikmJjEyOD09KDE5MiZJaSkmJihkbj0oMTUmTHQpPDwxOHwoNjMmZW4pPDwxMnwoNjMmc24pPDw2fDYzJklpLGRuPjY1NTM1JiZkbjwxMTE0MTEyJiYoUHQ9ZG4pKX19bnVsbD09PVB0PyhQdD02NTUzMyxvaT0xKTpQdD42NTUzNSYm'@; put 'KFB0LT02NTUzNix1dC5wdXNoKFB0Pj4+MTAmMTAyM3w1NTI5NiksUHQ9NTYzMjB8MTAyMyZQdCksdXQucHVzaChQdCksSnQrPW9pfXJldHVybiBmdW5jdGlvbiBWKEtlKXtjb25zdCB0dD1LZS5sZW5ndGg7aWYodHQ8PVQpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5n'@; put 'LEtlKTtsZXQgTmU9IiIsdXQ9MDtmb3IoO3V0PHR0OylOZSs9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsS2Uuc2xpY2UodXQsdXQrPVQpKTtyZXR1cm4gTmV9KHV0KX1KLmtNYXhMZW5ndGg9dywhKFIuVFlQRURfQVJSQVlfU1VQUE9SVD1mdW5jdGlvbiBGKCl7dHJ5e2NvbnN0'@; put 'IEtlPW5ldyBVaW50OEFycmF5KDEpLHR0PXtmb286ZnVuY3Rpb24oKXtyZXR1cm4gNDJ9fTtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKHR0LFVpbnQ4QXJyYXkucHJvdG90eXBlKSxPYmplY3Quc2V0UHJvdG90eXBlT2YoS2UsdHQpLDQyPT09S2UuZm9vKCl9Y2F0Y2h7cmV0dXJuITF9'@; put 'fSgpKSYmdHlwZW9mIEQ8InUiJiYiZnVuY3Rpb24iPT10eXBlb2YgRC5lcnJvciYmRC5lcnJvcigiVGhpcyBicm93c2VyIGxhY2tzIHR5cGVkIGFycmF5IChVaW50OEFycmF5KSBzdXBwb3J0IHdoaWNoIGlzIHJlcXVpcmVkIGJ5IGBidWZmZXJgIHY1LnguIFVzZSBgYnVmZmVyYCB2NC54IGlm'@; put 'IHlvdSByZXF1aXJlIG9sZCBicm93c2VyIHN1cHBvcnQuIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KFIucHJvdG90eXBlLCJwYXJlbnQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2lmKFIuaXNCdWZmZXIodGhpcykpcmV0dXJuIHRoaXMuYnVmZmVyfX0pLE9iamVjdC5kZWZpbmVQ'@; put 'cm9wZXJ0eShSLnByb3RvdHlwZSwib2Zmc2V0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtpZihSLmlzQnVmZmVyKHRoaXMpKXJldHVybiB0aGlzLmJ5dGVPZmZzZXR9fSksUi5wb29sU2l6ZT04MTkyLFIuZnJvbT1mdW5jdGlvbihLZSx0dCxOZSl7cmV0dXJuIGooS2UsdHQsTmUp'@; put 'fSxPYmplY3Quc2V0UHJvdG90eXBlT2YoUi5wcm90b3R5cGUsVWludDhBcnJheS5wcm90b3R5cGUpLE9iamVjdC5zZXRQcm90b3R5cGVPZihSLFVpbnQ4QXJyYXkpLFIuYWxsb2M9ZnVuY3Rpb24oS2UsdHQsTmUpe3JldHVybiBmdW5jdGlvbiBMKEtlLHR0LE5lKXtyZXR1cm4gUChLZSksS2U8'@; put 'PTA/SChLZSk6dm9pZCAwIT09dHQ/InN0cmluZyI9PXR5cGVvZiBOZT9IKEtlKS5maWxsKHR0LE5lKTpIKEtlKS5maWxsKHR0KTpIKEtlKX0oS2UsdHQsTmUpfSxSLmFsbG9jVW5zYWZlPWZ1bmN0aW9uKEtlKXtyZXR1cm4gWShLZSl9LFIuYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKEtlKXty'@; put 'ZXR1cm4gWShLZSl9LFIuaXNCdWZmZXI9ZnVuY3Rpb24odHQpe3JldHVybiBudWxsIT10dCYmITA9PT10dC5faXNCdWZmZXImJnR0IT09Ui5wcm90b3R5cGV9LFIuY29tcGFyZT1mdW5jdGlvbih0dCxOZSl7aWYob24odHQsVWludDhBcnJheSkmJih0dD1SLmZyb20odHQsdHQub2Zmc2V0LHR0'@; put 'LmJ5dGVMZW5ndGgpKSxvbihOZSxVaW50OEFycmF5KSYmKE5lPVIuZnJvbShOZSxOZS5vZmZzZXQsTmUuYnl0ZUxlbmd0aCkpLCFSLmlzQnVmZmVyKHR0KXx8IVIuaXNCdWZmZXIoTmUpKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAiYnVmMSIsICJidWYyIiBhcmd1bWVudHMgbXVzdCBiZSBv'@; put 'bmUgb2YgdHlwZSBCdWZmZXIgb3IgVWludDhBcnJheScpO2lmKHR0PT09TmUpcmV0dXJuIDA7bGV0IHV0PXR0Lmxlbmd0aCxKdD1OZS5sZW5ndGg7Zm9yKGxldCBMdD0wLFB0PU1hdGgubWluKHV0LEp0KTtMdDxQdDsrK0x0KWlmKHR0W0x0XSE9PU5lW0x0XSl7dXQ9dHRbTHRdLEp0PU5lW0x0'@; put 'XTticmVha31yZXR1cm4gdXQ8SnQ/LTE6SnQ8dXQ/MTowfSxSLmlzRW5jb2Rpbmc9ZnVuY3Rpb24odHQpe3N3aXRjaChTdHJpbmcodHQpLnRvTG93ZXJDYXNlKCkpe2Nhc2UiaGV4IjpjYXNlInV0ZjgiOmNhc2UidXRmLTgiOmNhc2UiYXNjaWkiOmNhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6'@; put 'Y2FzZSJiYXNlNjQiOmNhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX0sUi5jb25jYXQ9ZnVuY3Rpb24odHQsTmUpe2lmKCFBcnJheS5pc0FycmF5KHR0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCcibGlz'@; put 'dCIgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzJyk7aWYoMD09PXR0Lmxlbmd0aClyZXR1cm4gUi5hbGxvYygwKTtsZXQgdXQ7aWYodm9pZCAwPT09TmUpZm9yKE5lPTAsdXQ9MDt1dDx0dC5sZW5ndGg7Kyt1dClOZSs9dHRbdXRdLmxlbmd0aDtjb25zdCBKdD1SLmFsbG9j'@; put 'VW5zYWZlKE5lKTtsZXQgTHQ9MDtmb3IodXQ9MDt1dDx0dC5sZW5ndGg7Kyt1dCl7bGV0IFB0PXR0W3V0XTtpZihvbihQdCxVaW50OEFycmF5KSlMdCtQdC5sZW5ndGg+SnQubGVuZ3RoPyhSLmlzQnVmZmVyKFB0KXx8KFB0PVIuZnJvbShQdCkpLFB0LmNvcHkoSnQsTHQpKTpVaW50OEFycmF5'@; put 'LnByb3RvdHlwZS5zZXQuY2FsbChKdCxQdCxMdCk7ZWxzZXtpZighUi5pc0J1ZmZlcihQdCkpdGhyb3cgbmV3IFR5cGVFcnJvcignImxpc3QiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpO1B0LmNvcHkoSnQsTHQpfUx0Kz1QdC5sZW5ndGh9cmV0dXJuIEp0fSxSLmJ5'@; put 'dGVMZW5ndGg9aWUsUi5wcm90b3R5cGUuX2lzQnVmZmVyPSEwLFIucHJvdG90eXBlLnN3YXAxNj1mdW5jdGlvbigpe2NvbnN0IHR0PXRoaXMubGVuZ3RoO2lmKHR0JTIhPTApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkJ1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAxNi1iaXRzIik7'@; put 'Zm9yKGxldCBOZT0wO05lPHR0O05lKz0yKWdlKHRoaXMsTmUsTmUrMSk7cmV0dXJuIHRoaXN9LFIucHJvdG90eXBlLnN3YXAzMj1mdW5jdGlvbigpe2NvbnN0IHR0PXRoaXMubGVuZ3RoO2lmKHR0JTQhPTApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkJ1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0'@; put 'aXBsZSBvZiAzMi1iaXRzIik7Zm9yKGxldCBOZT0wO05lPHR0O05lKz00KWdlKHRoaXMsTmUsTmUrMyksZ2UodGhpcyxOZSsxLE5lKzIpO3JldHVybiB0aGlzfSxSLnByb3RvdHlwZS5zd2FwNjQ9ZnVuY3Rpb24oKXtjb25zdCB0dD10aGlzLmxlbmd0aDtpZih0dCU4IT0wKXRocm93IG5ldyBS'@; put 'YW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNjQtYml0cyIpO2ZvcihsZXQgTmU9MDtOZTx0dDtOZSs9OClnZSh0aGlzLE5lLE5lKzcpLGdlKHRoaXMsTmUrMSxOZSs2KSxnZSh0aGlzLE5lKzIsTmUrNSksZ2UodGhpcyxOZSszLE5lKzQpO3JldHVybiB0aGlz'@; put 'fSxSLnByb3RvdHlwZS50b0xvY2FsZVN0cmluZz1SLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe2NvbnN0IHR0PXRoaXMubGVuZ3RoO3JldHVybiAwPT09dHQ/IiI6MD09PWFyZ3VtZW50cy5sZW5ndGg/Qyh0aGlzLDAsdHQpOnNlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sUi5wcm90'@; put 'b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKHR0KXtpZighUi5pc0J1ZmZlcih0dCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciIpO3JldHVybiB0aGlzPT09dHR8fDA9PT1SLmNvbXBhcmUodGhpcyx0dCl9LFIucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24o'@; put 'KXtsZXQgdHQ9IiI7Y29uc3QgTmU9Si5JTlNQRUNUX01BWF9CWVRFUztyZXR1cm4gdHQ9dGhpcy50b1N0cmluZygiaGV4IiwwLE5lKS5yZXBsYWNlKC8oLnsyfSkvZywiJDEgIikudHJpbSgpLHRoaXMubGVuZ3RoPk5lJiYodHQrPSIgLi4uICIpLCI8QnVmZmVyICIrdHQrIj4ifSxOJiYoUi5w'@; put 'cm90b3R5cGVbTl09Ui5wcm90b3R5cGUuaW5zcGVjdCksUi5wcm90b3R5cGUuY29tcGFyZT1mdW5jdGlvbih0dCxOZSx1dCxKdCxMdCl7aWYob24odHQsVWludDhBcnJheSkmJih0dD1SLmZyb20odHQsdHQub2Zmc2V0LHR0LmJ5dGVMZW5ndGgpKSwhUi5pc0J1ZmZlcih0dCkpdGhyb3cgbmV3'@; put 'IFR5cGVFcnJvcignVGhlICJ0YXJnZXQiIGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgQnVmZmVyIG9yIFVpbnQ4QXJyYXkuIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2YgdHQpO2lmKHZvaWQgMD09PU5lJiYoTmU9MCksdm9pZCAwPT09dXQmJih1dD10dD90dC5sZW5ndGg6MCksdm9pZCAw'@; put 'PT09SnQmJihKdD0wKSx2b2lkIDA9PT1MdCYmKEx0PXRoaXMubGVuZ3RoKSxOZTwwfHx1dD50dC5sZW5ndGh8fEp0PDB8fEx0PnRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJvdXQgb2YgcmFuZ2UgaW5kZXgiKTtpZihKdD49THQmJk5lPj11dClyZXR1cm4gMDtpZihKdD49THQp'@; put 'cmV0dXJuLTE7aWYoTmU+PXV0KXJldHVybiAxO2lmKHRoaXM9PT10dClyZXR1cm4gMDtsZXQgUHQ9KEx0Pj4+PTApLShKdD4+Pj0wKSxvaT0odXQ+Pj49MCktKE5lPj4+PTApO2NvbnN0IGVuPU1hdGgubWluKFB0LG9pKSxzbj10aGlzLnNsaWNlKEp0LEx0KSxJaT10dC5zbGljZShOZSx1dCk7'@; put 'Zm9yKGxldCBkbj0wO2RuPGVuOysrZG4paWYoc25bZG5dIT09SWlbZG5dKXtQdD1zbltkbl0sb2k9SWlbZG5dO2JyZWFrfXJldHVybiBQdDxvaT8tMTpvaTxQdD8xOjB9LFIucHJvdG90eXBlLmluY2x1ZGVzPWZ1bmN0aW9uKHR0LE5lLHV0KXtyZXR1cm4tMSE9PXRoaXMuaW5kZXhPZih0dCxO'@; put 'ZSx1dCl9LFIucHJvdG90eXBlLmluZGV4T2Y9ZnVuY3Rpb24odHQsTmUsdXQpe3JldHVybiBfZSh0aGlzLHR0LE5lLHV0LCEwKX0sUi5wcm90b3R5cGUubGFzdEluZGV4T2Y9ZnVuY3Rpb24odHQsTmUsdXQpe3JldHVybiBfZSh0aGlzLHR0LE5lLHV0LCExKX0sUi5wcm90b3R5cGUud3JpdGU9'@; put 'ZnVuY3Rpb24odHQsTmUsdXQsSnQpe2lmKHZvaWQgMD09PU5lKUp0PSJ1dGY4Iix1dD10aGlzLmxlbmd0aCxOZT0wO2Vsc2UgaWYodm9pZCAwPT09dXQmJiJzdHJpbmciPT10eXBlb2YgTmUpSnQ9TmUsdXQ9dGhpcy5sZW5ndGgsTmU9MDtlbHNle2lmKCFpc0Zpbml0ZShOZSkpdGhyb3cgbmV3'@; put 'IEVycm9yKCJCdWZmZXIud3JpdGUoc3RyaW5nLCBlbmNvZGluZywgb2Zmc2V0WywgbGVuZ3RoXSkgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCIpO05lPj4+PTAsaXNGaW5pdGUodXQpPyh1dD4+Pj0wLHZvaWQgMD09PUp0JiYoSnQ9InV0ZjgiKSk6KEp0PXV0LHV0PXZvaWQgMCl9Y29uc3QgTHQ9'@; put 'dGhpcy5sZW5ndGgtTmU7aWYoKHZvaWQgMD09PXV0fHx1dD5MdCkmJih1dD1MdCksdHQubGVuZ3RoPjAmJih1dDwwfHxOZTwwKXx8TmU+dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkF0dGVtcHQgdG8gd3JpdGUgb3V0c2lkZSBidWZmZXIgYm91bmRzIik7SnR8fChKdD0idXRm'@; put 'OCIpO2xldCBQdD0hMTtmb3IoOzspc3dpdGNoKEp0KXtjYXNlImhleCI6cmV0dXJuIFNlKHRoaXMsdHQsTmUsdXQpO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIHplKHRoaXMsdHQsTmUsdXQpO2Nhc2UiYXNjaWkiOmNhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuIHoodGhp'@; put 'cyx0dCxOZSx1dCk7Y2FzZSJiYXNlNjQiOnJldHVybiBnKHRoaXMsdHQsTmUsdXQpO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4geSh0aGlzLHR0LE5lLHV0KTtkZWZhdWx0OmlmKFB0KXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25v'@; put 'd24gZW5jb2Rpbmc6ICIrSnQpO0p0PSgiIitKdCkudG9Mb3dlckNhc2UoKSxQdD0hMH19LFIucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJCdWZmZXIiLGRhdGE6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodGhpcy5fYXJyfHx0aGlzLDApfX07Y29uc3QgVD00'@; put 'MDk2O2Z1bmN0aW9uIFUoS2UsdHQsTmUpe2xldCB1dD0iIjtOZT1NYXRoLm1pbihLZS5sZW5ndGgsTmUpO2ZvcihsZXQgSnQ9dHQ7SnQ8TmU7KytKdCl1dCs9U3RyaW5nLmZyb21DaGFyQ29kZSgxMjcmS2VbSnRdKTtyZXR1cm4gdXR9ZnVuY3Rpb24gRShLZSx0dCxOZSl7bGV0IHV0PSIiO05l'@; put 'PU1hdGgubWluKEtlLmxlbmd0aCxOZSk7Zm9yKGxldCBKdD10dDtKdDxOZTsrK0p0KXV0Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKEtlW0p0XSk7cmV0dXJuIHV0fWZ1bmN0aW9uIG0oS2UsdHQsTmUpe2NvbnN0IHV0PUtlLmxlbmd0aDsoIXR0fHx0dDwwKSYmKHR0PTApLCghTmV8fE5lPDB8fE5l'@; put 'PnV0KSYmKE5lPXV0KTtsZXQgSnQ9IiI7Zm9yKGxldCBMdD10dDtMdDxOZTsrK0x0KUp0Kz1NdFtLZVtMdF1dO3JldHVybiBKdH1mdW5jdGlvbiBBKEtlLHR0LE5lKXtjb25zdCB1dD1LZS5zbGljZSh0dCxOZSk7bGV0IEp0PSIiO2ZvcihsZXQgTHQ9MDtMdDx1dC5sZW5ndGgtMTtMdCs9MilK'@; put 'dCs9U3RyaW5nLmZyb21DaGFyQ29kZSh1dFtMdF0rMjU2KnV0W0x0KzFdKTtyZXR1cm4gSnR9ZnVuY3Rpb24gYWUoS2UsdHQsTmUpe2lmKEtlJTEhPTB8fEtlPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIm9mZnNldCBpcyBub3QgdWludCIpO2lmKEtlK3R0Pk5lKXRocm93IG5ldyBSYW5nZUVy'@; put 'cm9yKCJUcnlpbmcgdG8gYWNjZXNzIGJleW9uZCBidWZmZXIgbGVuZ3RoIil9ZnVuY3Rpb24gbmUoS2UsdHQsTmUsdXQsSnQsTHQpe2lmKCFSLmlzQnVmZmVyKEtlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCciYnVmZmVyIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIGluc3RhbmNlJyk7aWYo'@; put 'dHQ+SnR8fHR0PEx0KXRocm93IG5ldyBSYW5nZUVycm9yKCcidmFsdWUiIGFyZ3VtZW50IGlzIG91dCBvZiBib3VuZHMnKTtpZihOZSt1dD5LZS5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkluZGV4IG91dCBvZiByYW5nZSIpfWZ1bmN0aW9uIGxlKEtlLHR0LE5lLHV0LEp0KXtBZSh0'@; put 'dCx1dCxKdCxLZSxOZSw3KTtsZXQgTHQ9TnVtYmVyKHR0JkJpZ0ludCg0Mjk0OTY3Mjk1KSk7S2VbTmUrK109THQsTHQ+Pj04LEtlW05lKytdPUx0LEx0Pj49OCxLZVtOZSsrXT1MdCxMdD4+PTgsS2VbTmUrK109THQ7bGV0IFB0PU51bWJlcih0dD4+QmlnSW50KDMyKSZCaWdJbnQoNDI5NDk2'@; put 'NzI5NSkpO3JldHVybiBLZVtOZSsrXT1QdCxQdD4+PTgsS2VbTmUrK109UHQsUHQ+Pj04LEtlW05lKytdPVB0LFB0Pj49OCxLZVtOZSsrXT1QdCxOZX1mdW5jdGlvbiB3ZShLZSx0dCxOZSx1dCxKdCl7QWUodHQsdXQsSnQsS2UsTmUsNyk7bGV0IEx0PU51bWJlcih0dCZCaWdJbnQoNDI5NDk2'@; put 'NzI5NSkpO0tlW05lKzddPUx0LEx0Pj49OCxLZVtOZSs2XT1MdCxMdD4+PTgsS2VbTmUrNV09THQsTHQ+Pj04LEtlW05lKzRdPUx0O2xldCBQdD1OdW1iZXIodHQ+PkJpZ0ludCgzMikmQmlnSW50KDQyOTQ5NjcyOTUpKTtyZXR1cm4gS2VbTmUrM109UHQsUHQ+Pj04LEtlW05lKzJdPVB0LFB0'@; put 'Pj49OCxLZVtOZSsxXT1QdCxQdD4+PTgsS2VbTmVdPVB0LE5lKzh9ZnVuY3Rpb24gWmUoS2UsdHQsTmUsdXQsSnQsTHQpe2lmKE5lK3V0PktlLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIik7aWYoTmU8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5k'@; put 'ZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gUWUoS2UsdHQsTmUsdXQsSnQpe3JldHVybiB0dD0rdHQsTmU+Pj49MCxKdHx8WmUoS2UsMCxOZSw0KSxwLndyaXRlKEtlLHR0LE5lLHV0LDIzLDQpLE5lKzR9ZnVuY3Rpb24gYXQoS2UsdHQsTmUsdXQsSnQpe3JldHVybiB0dD0rdHQsTmU+Pj49'@; put 'MCxKdHx8WmUoS2UsMCxOZSw4KSxwLndyaXRlKEtlLHR0LE5lLHV0LDUyLDgpLE5lKzh9Ui5wcm90b3R5cGUuc2xpY2U9ZnVuY3Rpb24odHQsTmUpe2NvbnN0IHV0PXRoaXMubGVuZ3RoOyh0dD1+fnR0KTwwPyh0dCs9dXQpPDAmJih0dD0wKTp0dD51dCYmKHR0PXV0KSwoTmU9dm9pZCAwPT09'@; put 'TmU/dXQ6fn5OZSk8MD8oTmUrPXV0KTwwJiYoTmU9MCk6TmU+dXQmJihOZT11dCksTmU8dHQmJihOZT10dCk7Y29uc3QgSnQ9dGhpcy5zdWJhcnJheSh0dCxOZSk7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZihKdCxSLnByb3RvdHlwZSksSnR9LFIucHJvdG90eXBlLnJlYWRVaW50TEU9'@; put 'Ui5wcm90b3R5cGUucmVhZFVJbnRMRT1mdW5jdGlvbih0dCxOZSx1dCl7dHQ+Pj49MCxOZT4+Pj0wLHV0fHxhZSh0dCxOZSx0aGlzLmxlbmd0aCk7bGV0IEp0PXRoaXNbdHRdLEx0PTEsUHQ9MDtmb3IoOysrUHQ8TmUmJihMdCo9MjU2KTspSnQrPXRoaXNbdHQrUHRdKkx0O3JldHVybiBKdH0s'@; put 'Ui5wcm90b3R5cGUucmVhZFVpbnRCRT1SLnByb3RvdHlwZS5yZWFkVUludEJFPWZ1bmN0aW9uKHR0LE5lLHV0KXt0dD4+Pj0wLE5lPj4+PTAsdXR8fGFlKHR0LE5lLHRoaXMubGVuZ3RoKTtsZXQgSnQ9dGhpc1t0dCstLU5lXSxMdD0xO2Zvcig7TmU+MCYmKEx0Kj0yNTYpOylKdCs9dGhpc1t0'@; put 'dCstLU5lXSpMdDtyZXR1cm4gSnR9LFIucHJvdG90eXBlLnJlYWRVaW50OD1SLnByb3RvdHlwZS5yZWFkVUludDg9ZnVuY3Rpb24odHQsTmUpe3JldHVybiB0dD4+Pj0wLE5lfHxhZSh0dCwxLHRoaXMubGVuZ3RoKSx0aGlzW3R0XX0sUi5wcm90b3R5cGUucmVhZFVpbnQxNkxFPVIucHJvdG90'@; put 'eXBlLnJlYWRVSW50MTZMRT1mdW5jdGlvbih0dCxOZSl7cmV0dXJuIHR0Pj4+PTAsTmV8fGFlKHR0LDIsdGhpcy5sZW5ndGgpLHRoaXNbdHRdfHRoaXNbdHQrMV08PDh9LFIucHJvdG90eXBlLnJlYWRVaW50MTZCRT1SLnByb3RvdHlwZS5yZWFkVUludDE2QkU9ZnVuY3Rpb24odHQsTmUpe3Jl'@; put 'dHVybiB0dD4+Pj0wLE5lfHxhZSh0dCwyLHRoaXMubGVuZ3RoKSx0aGlzW3R0XTw8OHx0aGlzW3R0KzFdfSxSLnByb3RvdHlwZS5yZWFkVWludDMyTEU9Ui5wcm90b3R5cGUucmVhZFVJbnQzMkxFPWZ1bmN0aW9uKHR0LE5lKXtyZXR1cm4gdHQ+Pj49MCxOZXx8YWUodHQsNCx0aGlzLmxlbmd0'@; put 'aCksKHRoaXNbdHRdfHRoaXNbdHQrMV08PDh8dGhpc1t0dCsyXTw8MTYpKzE2Nzc3MjE2KnRoaXNbdHQrM119LFIucHJvdG90eXBlLnJlYWRVaW50MzJCRT1SLnByb3RvdHlwZS5yZWFkVUludDMyQkU9ZnVuY3Rpb24odHQsTmUpe3JldHVybiB0dD4+Pj0wLE5lfHxhZSh0dCw0LHRoaXMubGVu'@; put 'Z3RoKSwxNjc3NzIxNip0aGlzW3R0XSsodGhpc1t0dCsxXTw8MTZ8dGhpc1t0dCsyXTw8OHx0aGlzW3R0KzNdKX0sUi5wcm90b3R5cGUucmVhZEJpZ1VJbnQ2NExFPUl0KGZ1bmN0aW9uKHR0KXtGZSh0dD4+Pj0wLCJvZmZzZXQiKTtjb25zdCBOZT10aGlzW3R0XSx1dD10aGlzW3R0KzddOyh2'@; put 'b2lkIDA9PT1OZXx8dm9pZCAwPT09dXQpJiZSZSh0dCx0aGlzLmxlbmd0aC04KTtjb25zdCBKdD1OZSsyNTYqdGhpc1srK3R0XSs2NTUzNip0aGlzWysrdHRdK3RoaXNbKyt0dF0qMioqMjQsTHQ9dGhpc1srK3R0XSsyNTYqdGhpc1srK3R0XSs2NTUzNip0aGlzWysrdHRdK3V0KjIqKjI0O3Jl'@; put 'dHVybiBCaWdJbnQoSnQpKyhCaWdJbnQoTHQpPDxCaWdJbnQoMzIpKX0pLFIucHJvdG90eXBlLnJlYWRCaWdVSW50NjRCRT1JdChmdW5jdGlvbih0dCl7RmUodHQ+Pj49MCwib2Zmc2V0Iik7Y29uc3QgTmU9dGhpc1t0dF0sdXQ9dGhpc1t0dCs3XTsodm9pZCAwPT09TmV8fHZvaWQgMD09PXV0'@; put 'KSYmUmUodHQsdGhpcy5sZW5ndGgtOCk7Y29uc3QgSnQ9TmUqMioqMjQrNjU1MzYqdGhpc1srK3R0XSsyNTYqdGhpc1srK3R0XSt0aGlzWysrdHRdLEx0PXRoaXNbKyt0dF0qMioqMjQrNjU1MzYqdGhpc1srK3R0XSsyNTYqdGhpc1srK3R0XSt1dDtyZXR1cm4oQmlnSW50KEp0KTw8QmlnSW50'@; put 'KDMyKSkrQmlnSW50KEx0KX0pLFIucHJvdG90eXBlLnJlYWRJbnRMRT1mdW5jdGlvbih0dCxOZSx1dCl7dHQ+Pj49MCxOZT4+Pj0wLHV0fHxhZSh0dCxOZSx0aGlzLmxlbmd0aCk7bGV0IEp0PXRoaXNbdHRdLEx0PTEsUHQ9MDtmb3IoOysrUHQ8TmUmJihMdCo9MjU2KTspSnQrPXRoaXNbdHQr'@; put 'UHRdKkx0O3JldHVybiBMdCo9MTI4LEp0Pj1MdCYmKEp0LT1NYXRoLnBvdygyLDgqTmUpKSxKdH0sUi5wcm90b3R5cGUucmVhZEludEJFPWZ1bmN0aW9uKHR0LE5lLHV0KXt0dD4+Pj0wLE5lPj4+PTAsdXR8fGFlKHR0LE5lLHRoaXMubGVuZ3RoKTtsZXQgSnQ9TmUsTHQ9MSxQdD10aGlzW3R0'@; put 'Ky0tSnRdO2Zvcig7SnQ+MCYmKEx0Kj0yNTYpOylQdCs9dGhpc1t0dCstLUp0XSpMdDtyZXR1cm4gTHQqPTEyOCxQdD49THQmJihQdC09TWF0aC5wb3coMiw4Kk5lKSksUHR9LFIucHJvdG90eXBlLnJlYWRJbnQ4PWZ1bmN0aW9uKHR0LE5lKXtyZXR1cm4gdHQ+Pj49MCxOZXx8YWUodHQsMSx0'@; put 'aGlzLmxlbmd0aCksMTI4JnRoaXNbdHRdPy0xKigyNTUtdGhpc1t0dF0rMSk6dGhpc1t0dF19LFIucHJvdG90eXBlLnJlYWRJbnQxNkxFPWZ1bmN0aW9uKHR0LE5lKXt0dD4+Pj0wLE5lfHxhZSh0dCwyLHRoaXMubGVuZ3RoKTtjb25zdCB1dD10aGlzW3R0XXx0aGlzW3R0KzFdPDw4O3JldHVy'@; put 'biAzMjc2OCZ1dD80Mjk0OTAxNzYwfHV0OnV0fSxSLnByb3RvdHlwZS5yZWFkSW50MTZCRT1mdW5jdGlvbih0dCxOZSl7dHQ+Pj49MCxOZXx8YWUodHQsMix0aGlzLmxlbmd0aCk7Y29uc3QgdXQ9dGhpc1t0dCsxXXx0aGlzW3R0XTw8ODtyZXR1cm4gMzI3NjgmdXQ/NDI5NDkwMTc2MHx1dDp1'@; put 'dH0sUi5wcm90b3R5cGUucmVhZEludDMyTEU9ZnVuY3Rpb24odHQsTmUpe3JldHVybiB0dD4+Pj0wLE5lfHxhZSh0dCw0LHRoaXMubGVuZ3RoKSx0aGlzW3R0XXx0aGlzW3R0KzFdPDw4fHRoaXNbdHQrMl08PDE2fHRoaXNbdHQrM108PDI0fSxSLnByb3RvdHlwZS5yZWFkSW50MzJCRT1mdW5j'@; put 'dGlvbih0dCxOZSl7cmV0dXJuIHR0Pj4+PTAsTmV8fGFlKHR0LDQsdGhpcy5sZW5ndGgpLHRoaXNbdHRdPDwyNHx0aGlzW3R0KzFdPDwxNnx0aGlzW3R0KzJdPDw4fHRoaXNbdHQrM119LFIucHJvdG90eXBlLnJlYWRCaWdJbnQ2NExFPUl0KGZ1bmN0aW9uKHR0KXtGZSh0dD4+Pj0wLCJvZmZz'@; put 'ZXQiKTtjb25zdCBOZT10aGlzW3R0XSx1dD10aGlzW3R0KzddO3JldHVybih2b2lkIDA9PT1OZXx8dm9pZCAwPT09dXQpJiZSZSh0dCx0aGlzLmxlbmd0aC04KSwoQmlnSW50KHRoaXNbdHQrNF0rMjU2KnRoaXNbdHQrNV0rNjU1MzYqdGhpc1t0dCs2XSsodXQ8PDI0KSk8PEJpZ0ludCgzMikp'@; put 'K0JpZ0ludChOZSsyNTYqdGhpc1srK3R0XSs2NTUzNip0aGlzWysrdHRdKzE2Nzc3MjE2KnRoaXNbKyt0dF0pfSksUi5wcm90b3R5cGUucmVhZEJpZ0ludDY0QkU9SXQoZnVuY3Rpb24odHQpe0ZlKHR0Pj4+PTAsIm9mZnNldCIpO2NvbnN0IE5lPXRoaXNbdHRdLHV0PXRoaXNbdHQrN107KHZv'@; put 'aWQgMD09PU5lfHx2b2lkIDA9PT11dCkmJlJlKHR0LHRoaXMubGVuZ3RoLTgpO2NvbnN0IEp0PShOZTw8MjQpKzY1NTM2KnRoaXNbKyt0dF0rMjU2KnRoaXNbKyt0dF0rdGhpc1srK3R0XTtyZXR1cm4oQmlnSW50KEp0KTw8QmlnSW50KDMyKSkrQmlnSW50KDE2Nzc3MjE2KnRoaXNbKyt0dF0r'@; put 'NjU1MzYqdGhpc1srK3R0XSsyNTYqdGhpc1srK3R0XSt1dCl9KSxSLnByb3RvdHlwZS5yZWFkRmxvYXRMRT1mdW5jdGlvbih0dCxOZSl7cmV0dXJuIHR0Pj4+PTAsTmV8fGFlKHR0LDQsdGhpcy5sZW5ndGgpLHAucmVhZCh0aGlzLHR0LCEwLDIzLDQpfSxSLnByb3RvdHlwZS5yZWFkRmxvYXRC'@; put 'RT1mdW5jdGlvbih0dCxOZSl7cmV0dXJuIHR0Pj4+PTAsTmV8fGFlKHR0LDQsdGhpcy5sZW5ndGgpLHAucmVhZCh0aGlzLHR0LCExLDIzLDQpfSxSLnByb3RvdHlwZS5yZWFkRG91YmxlTEU9ZnVuY3Rpb24odHQsTmUpe3JldHVybiB0dD4+Pj0wLE5lfHxhZSh0dCw4LHRoaXMubGVuZ3RoKSxw'@; put 'LnJlYWQodGhpcyx0dCwhMCw1Miw4KX0sUi5wcm90b3R5cGUucmVhZERvdWJsZUJFPWZ1bmN0aW9uKHR0LE5lKXtyZXR1cm4gdHQ+Pj49MCxOZXx8YWUodHQsOCx0aGlzLmxlbmd0aCkscC5yZWFkKHRoaXMsdHQsITEsNTIsOCl9LFIucHJvdG90eXBlLndyaXRlVWludExFPVIucHJvdG90eXBl'@; put 'LndyaXRlVUludExFPWZ1bmN0aW9uKHR0LE5lLHV0LEp0KXt0dD0rdHQsTmU+Pj49MCx1dD4+Pj0wLEp0fHxuZSh0aGlzLHR0LE5lLHV0LE1hdGgucG93KDIsOCp1dCktMSwwKTtsZXQgTHQ9MSxQdD0wO2Zvcih0aGlzW05lXT0yNTUmdHQ7KytQdDx1dCYmKEx0Kj0yNTYpOyl0aGlzW05lK1B0'@; put 'XT10dC9MdCYyNTU7cmV0dXJuIE5lK3V0fSxSLnByb3RvdHlwZS53cml0ZVVpbnRCRT1SLnByb3RvdHlwZS53cml0ZVVJbnRCRT1mdW5jdGlvbih0dCxOZSx1dCxKdCl7dHQ9K3R0LE5lPj4+PTAsdXQ+Pj49MCxKdHx8bmUodGhpcyx0dCxOZSx1dCxNYXRoLnBvdygyLDgqdXQpLTEsMCk7bGV0'@; put 'IEx0PXV0LTEsUHQ9MTtmb3IodGhpc1tOZStMdF09MjU1JnR0Oy0tTHQ+PTAmJihQdCo9MjU2KTspdGhpc1tOZStMdF09dHQvUHQmMjU1O3JldHVybiBOZSt1dH0sUi5wcm90b3R5cGUud3JpdGVVaW50OD1SLnByb3RvdHlwZS53cml0ZVVJbnQ4PWZ1bmN0aW9uKHR0LE5lLHV0KXtyZXR1cm4g'@; put 'dHQ9K3R0LE5lPj4+PTAsdXR8fG5lKHRoaXMsdHQsTmUsMSwyNTUsMCksdGhpc1tOZV09MjU1JnR0LE5lKzF9LFIucHJvdG90eXBlLndyaXRlVWludDE2TEU9Ui5wcm90b3R5cGUud3JpdGVVSW50MTZMRT1mdW5jdGlvbih0dCxOZSx1dCl7cmV0dXJuIHR0PSt0dCxOZT4+Pj0wLHV0fHxuZSh0'@; put 'aGlzLHR0LE5lLDIsNjU1MzUsMCksdGhpc1tOZV09MjU1JnR0LHRoaXNbTmUrMV09dHQ+Pj44LE5lKzJ9LFIucHJvdG90eXBlLndyaXRlVWludDE2QkU9Ui5wcm90b3R5cGUud3JpdGVVSW50MTZCRT1mdW5jdGlvbih0dCxOZSx1dCl7cmV0dXJuIHR0PSt0dCxOZT4+Pj0wLHV0fHxuZSh0aGlz'@; put 'LHR0LE5lLDIsNjU1MzUsMCksdGhpc1tOZV09dHQ+Pj44LHRoaXNbTmUrMV09MjU1JnR0LE5lKzJ9LFIucHJvdG90eXBlLndyaXRlVWludDMyTEU9Ui5wcm90b3R5cGUud3JpdGVVSW50MzJMRT1mdW5jdGlvbih0dCxOZSx1dCl7cmV0dXJuIHR0PSt0dCxOZT4+Pj0wLHV0fHxuZSh0aGlzLHR0'@; put 'LE5lLDQsNDI5NDk2NzI5NSwwKSx0aGlzW05lKzNdPXR0Pj4+MjQsdGhpc1tOZSsyXT10dD4+PjE2LHRoaXNbTmUrMV09dHQ+Pj44LHRoaXNbTmVdPTI1NSZ0dCxOZSs0fSxSLnByb3RvdHlwZS53cml0ZVVpbnQzMkJFPVIucHJvdG90eXBlLndyaXRlVUludDMyQkU9ZnVuY3Rpb24odHQsTmUs'@; put 'dXQpe3JldHVybiB0dD0rdHQsTmU+Pj49MCx1dHx8bmUodGhpcyx0dCxOZSw0LDQyOTQ5NjcyOTUsMCksdGhpc1tOZV09dHQ+Pj4yNCx0aGlzW05lKzFdPXR0Pj4+MTYsdGhpc1tOZSsyXT10dD4+PjgsdGhpc1tOZSszXT0yNTUmdHQsTmUrNH0sUi5wcm90b3R5cGUud3JpdGVCaWdVSW50NjRM'@; put 'RT1JdChmdW5jdGlvbih0dCxOZT0wKXtyZXR1cm4gbGUodGhpcyx0dCxOZSxCaWdJbnQoMCksQmlnSW50KCIweGZmZmZmZmZmZmZmZmZmZmYiKSl9KSxSLnByb3RvdHlwZS53cml0ZUJpZ1VJbnQ2NEJFPUl0KGZ1bmN0aW9uKHR0LE5lPTApe3JldHVybiB3ZSh0aGlzLHR0LE5lLEJpZ0ludCgw'@; put 'KSxCaWdJbnQoIjB4ZmZmZmZmZmZmZmZmZmZmZiIpKX0pLFIucHJvdG90eXBlLndyaXRlSW50TEU9ZnVuY3Rpb24odHQsTmUsdXQsSnQpe2lmKHR0PSt0dCxOZT4+Pj0wLCFKdCl7Y29uc3QgZW49TWF0aC5wb3coMiw4KnV0LTEpO25lKHRoaXMsdHQsTmUsdXQsZW4tMSwtZW4pfWxldCBMdD0w'@; put 'LFB0PTEsb2k9MDtmb3IodGhpc1tOZV09MjU1JnR0OysrTHQ8dXQmJihQdCo9MjU2KTspdHQ8MCYmMD09PW9pJiYwIT09dGhpc1tOZStMdC0xXSYmKG9pPTEpLHRoaXNbTmUrTHRdPSh0dC9QdHwwKS1vaSYyNTU7cmV0dXJuIE5lK3V0fSxSLnByb3RvdHlwZS53cml0ZUludEJFPWZ1bmN0aW9u'@; put 'KHR0LE5lLHV0LEp0KXtpZih0dD0rdHQsTmU+Pj49MCwhSnQpe2NvbnN0IGVuPU1hdGgucG93KDIsOCp1dC0xKTtuZSh0aGlzLHR0LE5lLHV0LGVuLTEsLWVuKX1sZXQgTHQ9dXQtMSxQdD0xLG9pPTA7Zm9yKHRoaXNbTmUrTHRdPTI1NSZ0dDstLUx0Pj0wJiYoUHQqPTI1Nik7KXR0PDAmJjA9'@; put 'PT1vaSYmMCE9PXRoaXNbTmUrTHQrMV0mJihvaT0xKSx0aGlzW05lK0x0XT0odHQvUHR8MCktb2kmMjU1O3JldHVybiBOZSt1dH0sUi5wcm90b3R5cGUud3JpdGVJbnQ4PWZ1bmN0aW9uKHR0LE5lLHV0KXtyZXR1cm4gdHQ9K3R0LE5lPj4+PTAsdXR8fG5lKHRoaXMsdHQsTmUsMSwxMjcsLTEy'@; put 'OCksdHQ8MCYmKHR0PTI1NSt0dCsxKSx0aGlzW05lXT0yNTUmdHQsTmUrMX0sUi5wcm90b3R5cGUud3JpdGVJbnQxNkxFPWZ1bmN0aW9uKHR0LE5lLHV0KXtyZXR1cm4gdHQ9K3R0LE5lPj4+PTAsdXR8fG5lKHRoaXMsdHQsTmUsMiwzMjc2NywtMzI3NjgpLHRoaXNbTmVdPTI1NSZ0dCx0aGlz'@; put 'W05lKzFdPXR0Pj4+OCxOZSsyfSxSLnByb3RvdHlwZS53cml0ZUludDE2QkU9ZnVuY3Rpb24odHQsTmUsdXQpe3JldHVybiB0dD0rdHQsTmU+Pj49MCx1dHx8bmUodGhpcyx0dCxOZSwyLDMyNzY3LC0zMjc2OCksdGhpc1tOZV09dHQ+Pj44LHRoaXNbTmUrMV09MjU1JnR0LE5lKzJ9LFIucHJv'@; put 'dG90eXBlLndyaXRlSW50MzJMRT1mdW5jdGlvbih0dCxOZSx1dCl7cmV0dXJuIHR0PSt0dCxOZT4+Pj0wLHV0fHxuZSh0aGlzLHR0LE5lLDQsMjE0NzQ4MzY0NywtMjE0NzQ4MzY0OCksdGhpc1tOZV09MjU1JnR0LHRoaXNbTmUrMV09dHQ+Pj44LHRoaXNbTmUrMl09dHQ+Pj4xNix0aGlzW05l'@; put 'KzNdPXR0Pj4+MjQsTmUrNH0sUi5wcm90b3R5cGUud3JpdGVJbnQzMkJFPWZ1bmN0aW9uKHR0LE5lLHV0KXtyZXR1cm4gdHQ9K3R0LE5lPj4+PTAsdXR8fG5lKHRoaXMsdHQsTmUsNCwyMTQ3NDgzNjQ3LC0yMTQ3NDgzNjQ4KSx0dDwwJiYodHQ9NDI5NDk2NzI5NSt0dCsxKSx0aGlzW05lXT10'@; put 'dD4+PjI0LHRoaXNbTmUrMV09dHQ+Pj4xNix0aGlzW05lKzJdPXR0Pj4+OCx0aGlzW05lKzNdPTI1NSZ0dCxOZSs0fSxSLnByb3RvdHlwZS53cml0ZUJpZ0ludDY0TEU9SXQoZnVuY3Rpb24odHQsTmU9MCl7cmV0dXJuIGxlKHRoaXMsdHQsTmUsLUJpZ0ludCgiMHg4MDAwMDAwMDAwMDAwMDAw'@; put 'IiksQmlnSW50KCIweDdmZmZmZmZmZmZmZmZmZmYiKSl9KSxSLnByb3RvdHlwZS53cml0ZUJpZ0ludDY0QkU9SXQoZnVuY3Rpb24odHQsTmU9MCl7cmV0dXJuIHdlKHRoaXMsdHQsTmUsLUJpZ0ludCgiMHg4MDAwMDAwMDAwMDAwMDAwIiksQmlnSW50KCIweDdmZmZmZmZmZmZmZmZmZmYiKSl9'@; put 'KSxSLnByb3RvdHlwZS53cml0ZUZsb2F0TEU9ZnVuY3Rpb24odHQsTmUsdXQpe3JldHVybiBRZSh0aGlzLHR0LE5lLCEwLHV0KX0sUi5wcm90b3R5cGUud3JpdGVGbG9hdEJFPWZ1bmN0aW9uKHR0LE5lLHV0KXtyZXR1cm4gUWUodGhpcyx0dCxOZSwhMSx1dCl9LFIucHJvdG90eXBlLndyaXRl'@; put 'RG91YmxlTEU9ZnVuY3Rpb24odHQsTmUsdXQpe3JldHVybiBhdCh0aGlzLHR0LE5lLCEwLHV0KX0sUi5wcm90b3R5cGUud3JpdGVEb3VibGVCRT1mdW5jdGlvbih0dCxOZSx1dCl7cmV0dXJuIGF0KHRoaXMsdHQsTmUsITEsdXQpfSxSLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKHR0LE5lLHV0'@; put 'LEp0KXtpZighUi5pc0J1ZmZlcih0dCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXJndW1lbnQgc2hvdWxkIGJlIGEgQnVmZmVyIik7aWYodXR8fCh1dD0wKSwhSnQmJjAhPT1KdCYmKEp0PXRoaXMubGVuZ3RoKSxOZT49dHQubGVuZ3RoJiYoTmU9dHQubGVuZ3RoKSxOZXx8KE5lPTApLEp0PjAm'@; put 'Jkp0PHV0JiYoSnQ9dXQpLEp0PT09dXR8fDA9PT10dC5sZW5ndGh8fDA9PT10aGlzLmxlbmd0aClyZXR1cm4gMDtpZihOZTwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJ0YXJnZXRTdGFydCBvdXQgb2YgYm91bmRzIik7aWYodXQ8MHx8dXQ+PXRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVy'@; put 'cm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKTtpZihKdDwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJzb3VyY2VFbmQgb3V0IG9mIGJvdW5kcyIpO0p0PnRoaXMubGVuZ3RoJiYoSnQ9dGhpcy5sZW5ndGgpLHR0Lmxlbmd0aC1OZTxKdC11dCYmKEp0PXR0Lmxlbmd0aC1OZSt1dCk7Y29uc3QgTHQ9'@; put 'SnQtdXQ7cmV0dXJuIHRoaXM9PT10dCYmImZ1bmN0aW9uIj09dHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4/dGhpcy5jb3B5V2l0aGluKE5lLHV0LEp0KTpVaW50OEFycmF5LnByb3RvdHlwZS5zZXQuY2FsbCh0dCx0aGlzLnN1YmFycmF5KHV0LEp0KSxOZSksTHR9LFIu'@; put 'cHJvdG90eXBlLmZpbGw9ZnVuY3Rpb24odHQsTmUsdXQsSnQpe2lmKCJzdHJpbmciPT10eXBlb2YgdHQpe2lmKCJzdHJpbmciPT10eXBlb2YgTmU/KEp0PU5lLE5lPTAsdXQ9dGhpcy5sZW5ndGgpOiJzdHJpbmciPT10eXBlb2YgdXQmJihKdD11dCx1dD10aGlzLmxlbmd0aCksdm9pZCAwIT09'@; put 'SnQmJiJzdHJpbmciIT10eXBlb2YgSnQpdGhyb3cgbmV3IFR5cGVFcnJvcigiZW5jb2RpbmcgbXVzdCBiZSBhIHN0cmluZyIpO2lmKCJzdHJpbmciPT10eXBlb2YgSnQmJiFSLmlzRW5jb2RpbmcoSnQpKXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrSnQpO2lmKDE9'@; put 'PT10dC5sZW5ndGgpe2NvbnN0IFB0PXR0LmNoYXJDb2RlQXQoMCk7KCJ1dGY4Ij09PUp0JiZQdDwxMjh8fCJsYXRpbjEiPT09SnQpJiYodHQ9UHQpfX1lbHNlIm51bWJlciI9PXR5cGVvZiB0dD90dCY9MjU1OiJib29sZWFuIj09dHlwZW9mIHR0JiYodHQ9TnVtYmVyKHR0KSk7aWYoTmU8MHx8'@; put 'dGhpcy5sZW5ndGg8TmV8fHRoaXMubGVuZ3RoPHV0KXRocm93IG5ldyBSYW5nZUVycm9yKCJPdXQgb2YgcmFuZ2UgaW5kZXgiKTtpZih1dDw9TmUpcmV0dXJuIHRoaXM7bGV0IEx0O2lmKE5lPj4+PTAsdXQ9dm9pZCAwPT09dXQ/dGhpcy5sZW5ndGg6dXQ+Pj4wLHR0fHwodHQ9MCksIm51bWJl'@; put 'ciI9PXR5cGVvZiB0dClmb3IoTHQ9TmU7THQ8dXQ7KytMdCl0aGlzW0x0XT10dDtlbHNle2NvbnN0IFB0PVIuaXNCdWZmZXIodHQpP3R0OlIuZnJvbSh0dCxKdCksb2k9UHQubGVuZ3RoO2lmKDA9PT1vaSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgdmFsdWUgIicrdHQrJyIgaXMgaW52YWxp'@; put 'ZCBmb3IgYXJndW1lbnQgInZhbHVlIicpO2ZvcihMdD0wO0x0PHV0LU5lOysrTHQpdGhpc1tMdCtOZV09UHRbTHQlb2ldfXJldHVybiB0aGlzfTtjb25zdCB4ZT17fTtmdW5jdGlvbiB2ZShLZSx0dCxOZSl7eGVbS2VdPWNsYXNzIGV4dGVuZHMgTmV7Y29uc3RydWN0b3IoKXtzdXBlcigpLE9i'@; put 'amVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJtZXNzYWdlIix7dmFsdWU6dHQuYXBwbHkodGhpcyxhcmd1bWVudHMpLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHRoaXMubmFtZT1gJHt0aGlzLm5hbWV9IFske0tlfV1gLGRlbGV0ZSB0aGlzLm5hbWV9Z2V0IGNvZGUoKXtyZXR1cm4g'@; put 'S2V9c2V0IGNvZGUoSnQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJjb2RlIix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6SnQsd3JpdGFibGU6ITB9KX10b1N0cmluZygpe3JldHVybmAke3RoaXMubmFtZX0gWyR7S2V9XTogJHt0aGlzLm1lc3NhZ2V9YH19fWZ1'@; put 'bmN0aW9uIHFlKEtlKXtsZXQgdHQ9IiIsTmU9S2UubGVuZ3RoO2NvbnN0IHV0PSItIj09PUtlWzBdPzE6MDtmb3IoO05lPj11dCs0O05lLT0zKXR0PWBfJHtLZS5zbGljZShOZS0zLE5lKX0ke3R0fWA7cmV0dXJuYCR7S2Uuc2xpY2UoMCxOZSl9JHt0dH1gfWZ1bmN0aW9uIEFlKEtlLHR0LE5l'@; put 'LHV0LEp0LEx0KXtpZihLZT5OZXx8S2U8dHQpe2NvbnN0IFB0PSJiaWdpbnQiPT10eXBlb2YgdHQ/Im4iOiIiO2xldCBvaTt0aHJvdyBvaT1MdD4zPzA9PT10dHx8dHQ9PT1CaWdJbnQoMCk/YD49IDAke1B0fSBhbmQgPCAyJHtQdH0gKiogJHs4KihMdCsxKX0ke1B0fWA6YD49IC0oMiR7UHR9'@; put 'ICoqICR7OCooTHQrMSktMX0ke1B0fSkgYW5kIDwgMiAqKiAkezgqKEx0KzEpLTF9JHtQdH1gOmA+PSAke3R0fSR7UHR9IGFuZCA8PSAke05lfSR7UHR9YCxuZXcgeGUuRVJSX09VVF9PRl9SQU5HRSgidmFsdWUiLG9pLEtlKX0hZnVuY3Rpb24gamUoS2UsdHQsTmUpe0ZlKHR0LCJvZmZzZXQi'@; put 'KSwodm9pZCAwPT09S2VbdHRdfHx2b2lkIDA9PT1LZVt0dCtOZV0pJiZSZSh0dCxLZS5sZW5ndGgtKE5lKzEpKX0odXQsSnQsTHQpfWZ1bmN0aW9uIEZlKEtlLHR0KXtpZigibnVtYmVyIiE9dHlwZW9mIEtlKXRocm93IG5ldyB4ZS5FUlJfSU5WQUxJRF9BUkdfVFlQRSh0dCwibnVtYmVyIixL'@; put 'ZSl9ZnVuY3Rpb24gUmUoS2UsdHQsTmUpe3Rocm93IE1hdGguZmxvb3IoS2UpIT09S2U/KEZlKEtlLE5lKSxuZXcgeGUuRVJSX09VVF9PRl9SQU5HRShOZXx8Im9mZnNldCIsImFuIGludGVnZXIiLEtlKSk6dHQ8MD9uZXcgeGUuRVJSX0JVRkZFUl9PVVRfT0ZfQk9VTkRTOm5ldyB4ZS5FUlJf'@; put 'T1VUX09GX1JBTkdFKE5lfHwib2Zmc2V0IixgPj0gJHtOZT8xOjB9IGFuZCA8PSAke3R0fWAsS2UpfXZlKCJFUlJfQlVGRkVSX09VVF9PRl9CT1VORFMiLGZ1bmN0aW9uKEtlKXtyZXR1cm4gS2U/YCR7S2V9IGlzIG91dHNpZGUgb2YgYnVmZmVyIGJvdW5kc2A6IkF0dGVtcHQgdG8gYWNjZXNz'@; put 'IG1lbW9yeSBvdXRzaWRlIGJ1ZmZlciBib3VuZHMifSxSYW5nZUVycm9yKSx2ZSgiRVJSX0lOVkFMSURfQVJHX1RZUEUiLGZ1bmN0aW9uKEtlLHR0KXtyZXR1cm5gVGhlICIke0tlfSIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIG51bWJlci4gUmVjZWl2ZWQgdHlwZSAke3R5cGVvZiB0dH1g'@; put 'fSxUeXBlRXJyb3IpLHZlKCJFUlJfT1VUX09GX1JBTkdFIixmdW5jdGlvbihLZSx0dCxOZSl7bGV0IHV0PWBUaGUgdmFsdWUgb2YgIiR7S2V9IiBpcyBvdXQgb2YgcmFuZ2UuYCxKdD1OZTtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihOZSkmJk1hdGguYWJzKE5lKT40Mjk0OTY3Mjk2P0p0PXFl'@; put 'KFN0cmluZyhOZSkpOiJiaWdpbnQiPT10eXBlb2YgTmUmJihKdD1TdHJpbmcoTmUpLChOZT5CaWdJbnQoMikqKkJpZ0ludCgzMil8fE5lPC0oQmlnSW50KDIpKipCaWdJbnQoMzIpKSkmJihKdD1xZShKdCkpLEp0Kz0ibiIpLHV0Kz1gIEl0IG11c3QgYmUgJHt0dH0uIFJlY2VpdmVkICR7SnR9'@; put 'YCx1dH0sUmFuZ2VFcnJvcik7Y29uc3QgSWU9L1teKy8wLTlBLVphLXotX10vZztmdW5jdGlvbiBEZShLZSx0dCl7bGV0IE5lO3R0PXR0fHwxLzA7Y29uc3QgdXQ9S2UubGVuZ3RoO2xldCBKdD1udWxsO2NvbnN0IEx0PVtdO2ZvcihsZXQgUHQ9MDtQdDx1dDsrK1B0KXtpZihOZT1LZS5jaGFy'@; put 'Q29kZUF0KFB0KSxOZT41NTI5NSYmTmU8NTczNDQpe2lmKCFKdCl7aWYoTmU+NTYzMTkpeyh0dC09Myk+LTEmJkx0LnB1c2goMjM5LDE5MSwxODkpO2NvbnRpbnVlfWlmKFB0KzE9PT11dCl7KHR0LT0zKT4tMSYmTHQucHVzaCgyMzksMTkxLDE4OSk7Y29udGludWV9SnQ9TmU7Y29udGludWV9'@; put 'aWYoTmU8NTYzMjApeyh0dC09Myk+LTEmJkx0LnB1c2goMjM5LDE5MSwxODkpLEp0PU5lO2NvbnRpbnVlfU5lPTY1NTM2KyhKdC01NTI5Njw8MTB8TmUtNTYzMjApfWVsc2UgSnQmJih0dC09Myk+LTEmJkx0LnB1c2goMjM5LDE5MSwxODkpO2lmKEp0PW51bGwsTmU8MTI4KXtpZigodHQtPTEp'@; put 'PDApYnJlYWs7THQucHVzaChOZSl9ZWxzZSBpZihOZTwyMDQ4KXtpZigodHQtPTIpPDApYnJlYWs7THQucHVzaChOZT4+NnwxOTIsNjMmTmV8MTI4KX1lbHNlIGlmKE5lPDY1NTM2KXtpZigodHQtPTMpPDApYnJlYWs7THQucHVzaChOZT4+MTJ8MjI0LE5lPj42JjYzfDEyOCw2MyZOZXwxMjgp'@; put 'fWVsc2V7aWYoIShOZTwxMTE0MTEyKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgY29kZSBwb2ludCIpO2lmKCh0dC09NCk8MClicmVhaztMdC5wdXNoKE5lPj4xOHwyNDAsTmU+PjEyJjYzfDEyOCxOZT4+NiY2M3wxMjgsNjMmTmV8MTI4KX19cmV0dXJuIEx0fWZ1bmN0aW9uIG50KEtlKXty'@; put 'ZXR1cm4gXy50b0J5dGVBcnJheShmdW5jdGlvbiBIZShLZSl7aWYoKEtlPShLZT1LZS5zcGxpdCgiPSIpWzBdKS50cmltKCkucmVwbGFjZShJZSwiIikpLmxlbmd0aDwyKXJldHVybiIiO2Zvcig7S2UubGVuZ3RoJTQhPTA7KUtlKz0iPSI7cmV0dXJuIEtlfShLZSkpfWZ1bmN0aW9uIEplKEtl'@; put 'LHR0LE5lLHV0KXtsZXQgSnQ7Zm9yKEp0PTA7SnQ8dXQmJiEoSnQrTmU+PXR0Lmxlbmd0aHx8SnQ+PUtlLmxlbmd0aCk7KytKdCl0dFtKdCtOZV09S2VbSnRdO3JldHVybiBKdH1mdW5jdGlvbiBvbihLZSx0dCl7cmV0dXJuIEtlIGluc3RhbmNlb2YgdHR8fG51bGwhPUtlJiZudWxsIT1LZS5j'@; put 'b25zdHJ1Y3RvciYmbnVsbCE9S2UuY29uc3RydWN0b3IubmFtZSYmS2UuY29uc3RydWN0b3IubmFtZT09PXR0Lm5hbWV9ZnVuY3Rpb24geXQoS2Upe3JldHVybiBLZSE9S2V9Y29uc3QgTXQ9ZnVuY3Rpb24oKXtjb25zdCBLZT0iMDEyMzQ1Njc4OWFiY2RlZiIsdHQ9bmV3IEFycmF5KDI1Nik7'@; put 'Zm9yKGxldCBOZT0wO05lPDE2OysrTmUpe2NvbnN0IHV0PTE2Kk5lO2ZvcihsZXQgSnQ9MDtKdDwxNjsrK0p0KXR0W3V0K0p0XT1LZVtOZV0rS2VbSnRdfXJldHVybiB0dH0oKTtmdW5jdGlvbiBJdChLZSl7cmV0dXJuIHR5cGVvZiBCaWdJbnQ+InUiP3J0OktlfWZ1bmN0aW9uIHJ0KCl7dGhy'@; put 'b3cgbmV3IEVycm9yKCJCaWdJbnQgbm90IHN1cHBvcnRlZCIpfX0sNTExNjooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDg2MTIpLF89YigxNzY4KSxwPWIoODkyOCksTj1iKDk3NzApO2NlLmV4cG9ydHM9Tnx8RC5jYWxsKHAsXyl9LDMxOTI6KGNlLEosYik9PnsidXNlIHN0cmlj'@; put 'dCI7dmFyIEQ9Yig4NjEyKSxfPWIoMTc2OCkscD1iKDUxMTYpO2NlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4gcChELF8sYXJndW1lbnRzKX19LDE3Njg6Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz1GdW5jdGlvbi5wcm90b3R5cGUuYXBwbHl9LDg5Mjg6Y2U9PnsidXNlIHN0cmlj'@; put 'dCI7Y2UuZXhwb3J0cz1GdW5jdGlvbi5wcm90b3R5cGUuY2FsbH0sMzE5OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoODYxMiksXz1iKDQ0NTMpLHA9Yig4OTI4KSxOPWIoNTExNik7Y2UuZXhwb3J0cz1mdW5jdGlvbihGKXtpZihGLmxlbmd0aDwxfHwiZnVuY3Rpb24iIT10eXBl'@; put 'b2YgRlswXSl0aHJvdyBuZXcgXygiYSBmdW5jdGlvbiBpcyByZXF1aXJlZCIpO3JldHVybiBOKEQscCxGKX19LDk3NzA6Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz10eXBlb2YgUmVmbGVjdDwidSImJlJlZmxlY3QmJlJlZmxlY3QuYXBwbHl9LDE5MjQ6KGNlLEosYik9PnsidXNlIHN0'@; put 'cmljdCI7dmFyIEQ9YigyMTApLF89Yig1NTU5KSxwPV8oRCgiU3RyaW5nLnByb3RvdHlwZS5pbmRleE9mIikpO2NlLmV4cG9ydHM9ZnVuY3Rpb24odyxGKXt2YXIgSD1EKHcsISFGKTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgSCYmcCh3LCIucHJvdG90eXBlLiIpPi0xP18oSCk6SH19LDU1'@; put 'NTk6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig3NzcxKSxfPWIoNDQyOSkscD1iKDMxOSksTj1iKDMxOTIpO2NlLmV4cG9ydHM9ZnVuY3Rpb24oRil7dmFyIEg9cChhcmd1bWVudHMpLFI9Ri5sZW5ndGgtKGFyZ3VtZW50cy5sZW5ndGgtMSk7cmV0dXJuIEQoSCwxKyhSPjA/Ujow'@; put 'KSwhMCl9LF8/XyhjZS5leHBvcnRzLCJhcHBseSIse3ZhbHVlOk59KTpjZS5leHBvcnRzLmFwcGx5PU59LDczNzk6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigyMTApLF89YigzMTkpLHA9XyhbRCgiJVN0cmluZy5wcm90b3R5cGUuaW5kZXhPZiUiKV0pO2NlLmV4cG9ydHM9ZnVu'@; put 'Y3Rpb24odyxGKXt2YXIgSD1EKHcsISFGKTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgSCYmcCh3LCIucHJvdG90eXBlLiIpPi0xP18oW0hdKTpIfX0sMTAyNzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDk1MDkpLkJ1ZmZlcixfPWIoMjgzMCkuVHJhbnNmb3JtLHA9YigyNTUz'@; put 'KS5zO2Z1bmN0aW9uIHcoail7Xy5jYWxsKHRoaXMpLHRoaXMuaGFzaE1vZGU9InN0cmluZyI9PXR5cGVvZiBqLHRoaXMuaGFzaE1vZGU/dGhpc1tqXT10aGlzLl9maW5hbE9yRGlnZXN0OnRoaXMuZmluYWw9dGhpcy5fZmluYWxPckRpZ2VzdCx0aGlzLl9maW5hbCYmKHRoaXMuX19maW5hbD10'@; put 'aGlzLl9maW5hbCx0aGlzLl9maW5hbD1udWxsKSx0aGlzLl9kZWNvZGVyPW51bGwsdGhpcy5fZW5jb2Rpbmc9bnVsbH1iKDU3MTcpKHcsXyk7dmFyIEY9dHlwZW9mIFVpbnQ4QXJyYXk8InUiLEg9dHlwZW9mIEFycmF5QnVmZmVyPCJ1IiYmdHlwZW9mIFVpbnQ4QXJyYXk8InUiJiZBcnJheUJ1'@; put 'ZmZlci5pc1ZpZXcmJihELnByb3RvdHlwZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl8fEQuVFlQRURfQVJSQVlfU1VQUE9SVCk7dy5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGosUCxMKXt2YXIgWT1mdW5jdGlvbiBSKGosUCl7aWYoaiBpbnN0YW5jZW9mIEQpcmV0dXJuIGo7aWYoInN0cmlu'@; put 'ZyI9PXR5cGVvZiBqKXJldHVybiBELmZyb20oaixQKTtpZihIJiZBcnJheUJ1ZmZlci5pc1ZpZXcoaikpe2lmKDA9PT1qLmJ5dGVMZW5ndGgpcmV0dXJuIEQuYWxsb2MoMCk7dmFyIEw9RC5mcm9tKGouYnVmZmVyLGouYnl0ZU9mZnNldCxqLmJ5dGVMZW5ndGgpO2lmKEwuYnl0ZUxlbmd0aD09'@; put 'PWouYnl0ZUxlbmd0aClyZXR1cm4gTH1pZihGJiZqIGluc3RhbmNlb2YgVWludDhBcnJheXx8RC5pc0J1ZmZlcihqKSYmai5jb25zdHJ1Y3RvciYmImZ1bmN0aW9uIj09dHlwZW9mIGouY29uc3RydWN0b3IuaXNCdWZmZXImJmouY29uc3RydWN0b3IuaXNCdWZmZXIoaikpcmV0dXJuIEQuZnJv'@; put 'bShqKTt0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgImRhdGEiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBzdHJpbmcgb3IgYW4gaW5zdGFuY2Ugb2YgQnVmZmVyLCBUeXBlZEFycmF5LCBvciBEYXRhVmlldy4nKX0oaixQKSxCPXRoaXMuX3VwZGF0ZShZKTtyZXR1cm4gdGhpcy5oYXNoTW9k'@; put 'ZT90aGlzOihMJiYoQj10aGlzLl90b1N0cmluZyhCLEwpKSxCKX0sdy5wcm90b3R5cGUuc2V0QXV0b1BhZGRpbmc9ZnVuY3Rpb24oKXt9LHcucHJvdG90eXBlLmdldEF1dGhUYWc9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoInRyeWluZyB0byBnZXQgYXV0aCB0YWcgaW4gdW5zdXBwb3J0'@; put 'ZWQgc3RhdGUiKX0sdy5wcm90b3R5cGUuc2V0QXV0aFRhZz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigidHJ5aW5nIHRvIHNldCBhdXRoIHRhZyBpbiB1bnN1cHBvcnRlZCBzdGF0ZSIpfSx3LnByb3RvdHlwZS5zZXRBQUQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoInRyeWluZyB0'@; put 'byBzZXQgYWFkIGluIHVuc3VwcG9ydGVkIHN0YXRlIil9LHcucHJvdG90eXBlLl90cmFuc2Zvcm09ZnVuY3Rpb24oaixQLEwpe3ZhciBZO3RyeXt0aGlzLmhhc2hNb2RlP3RoaXMuX3VwZGF0ZShqKTp0aGlzLnB1c2godGhpcy5fdXBkYXRlKGopKX1jYXRjaChCKXtZPUJ9ZmluYWxseXtMKFkp'@; put 'fX0sdy5wcm90b3R5cGUuX2ZsdXNoPWZ1bmN0aW9uKGope3ZhciBQO3RyeXt0aGlzLnB1c2godGhpcy5fX2ZpbmFsKCkpfWNhdGNoKEwpe1A9TH1qKFApfSx3LnByb3RvdHlwZS5fZmluYWxPckRpZ2VzdD1mdW5jdGlvbihqKXt2YXIgUD10aGlzLl9fZmluYWwoKXx8RC5hbGxvYygwKTtyZXR1'@; put 'cm4gaiYmKFA9dGhpcy5fdG9TdHJpbmcoUCxqLCEwKSksUH0sdy5wcm90b3R5cGUuX3RvU3RyaW5nPWZ1bmN0aW9uKGosUCxMKXtpZih0aGlzLl9kZWNvZGVyfHwodGhpcy5fZGVjb2Rlcj1uZXcgcChQKSx0aGlzLl9lbmNvZGluZz1QKSx0aGlzLl9lbmNvZGluZyE9PVApdGhyb3cgbmV3IEVy'@; put 'cm9yKCJjYW5cdTIwMTl0IHN3aXRjaCBlbmNvZGluZ3MiKTt2YXIgWT10aGlzLl9kZWNvZGVyLndyaXRlKGopO3JldHVybiBMJiYoWSs9dGhpcy5fZGVjb2Rlci5lbmQoKSksWX0sY2UuZXhwb3J0cz13fSw1MTA4OihjZSxKLGIpPT57dmFyIEQ9Yig5NTM5KSxfPWIoOTI4Mik7ZnVuY3Rpb24g'@; put 'cCgpe3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpfXZhciB3LE49QXJyYXkucHJvdG90eXBlLnNsaWNlLEY9e307dz10eXBlb2YgYi5nPCJ1IiYmYi5nLmNvbnNvbGU/Yi5nLmNvbnNvbGU6dHlwZW9mIHdpbmRvdzwidSImJndpbmRvdy5jb25zb2xlP3dpbmRvdy5jb25zb2xlOnt9O2Zvcih2'@; put 'YXIgSD1bW2Z1bmN0aW9uIFkoKXt9LCJsb2ciXSxbZnVuY3Rpb24gQigpe3cubG9nLmFwcGx5KHcsYXJndW1lbnRzKX0sImluZm8iXSxbZnVuY3Rpb24gVygpe3cubG9nLmFwcGx5KHcsYXJndW1lbnRzKX0sIndhcm4iXSxbZnVuY3Rpb24gWigpe3cud2Fybi5hcHBseSh3LGFyZ3VtZW50cyl9'@; put 'LCJlcnJvciJdLFtmdW5jdGlvbiBYKHNlKXtGW3NlXT1wKCl9LCJ0aW1lIl0sW2Z1bmN0aW9uIFEoc2Upe3ZhciBnZT1GW3NlXTtpZighZ2UpdGhyb3cgbmV3IEVycm9yKCJObyBzdWNoIGxhYmVsOiAiK3NlKTtkZWxldGUgRltzZV07dmFyIF9lPXAoKS1nZTt3LmxvZyhzZSsiOiAiK19lKyJt'@; put 'cyIpfSwidGltZUVuZCJdLFtmdW5jdGlvbiBxKCl7dmFyIHNlPW5ldyBFcnJvcjtzZS5uYW1lPSJUcmFjZSIsc2UubWVzc2FnZT1ELmZvcm1hdC5hcHBseShudWxsLGFyZ3VtZW50cyksdy5lcnJvcihzZS5zdGFjayl9LCJ0cmFjZSJdLFtmdW5jdGlvbiB0ZShzZSl7dy5sb2coRC5pbnNwZWN0'@; put 'KHNlKSsiXG4iKX0sImRpciJdLFtmdW5jdGlvbiBpZShzZSl7aWYoIXNlKXt2YXIgZ2U9Ti5jYWxsKGFyZ3VtZW50cywxKTtfLm9rKCExLEQuZm9ybWF0LmFwcGx5KG51bGwsZ2UpKX19LCJhc3NlcnQiXV0sUj0wO1I8SC5sZW5ndGg7UisrKXt2YXIgaj1IW1JdLEw9alsxXTt3W0xdfHwod1tM'@; put 'XT1qWzBdKX1jZS5leHBvcnRzPXd9LDY0OTc6KGNlLEosYik9Pnt2YXIgRD1iKDg3NjQpLkJ1ZmZlcjtmdW5jdGlvbiBYKFEpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUSl9Si5pc0FycmF5PWZ1bmN0aW9uIF8oUSl7cmV0dXJuIEFycmF5LmlzQXJyYXk/QXJyYXku'@; put 'aXNBcnJheShRKToiW29iamVjdCBBcnJheV0iPT09WChRKX0sSi5pc0Jvb2xlYW49ZnVuY3Rpb24gcChRKXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBRfSxKLmlzTnVsbD1mdW5jdGlvbiBOKFEpe3JldHVybiBudWxsPT09UX0sSi5pc051bGxPclVuZGVmaW5lZD1mdW5jdGlvbiB3KFEpe3Jl'@; put 'dHVybiBudWxsPT1RfSxKLmlzTnVtYmVyPWZ1bmN0aW9uIEYoUSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBRfSxKLmlzU3RyaW5nPWZ1bmN0aW9uIEgoUSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBRfSxKLmlzU3ltYm9sPWZ1bmN0aW9uIFIoUSl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBR'@; put 'fSxKLmlzVW5kZWZpbmVkPWZ1bmN0aW9uIGooUSl7cmV0dXJuIHZvaWQgMD09PVF9LEouaXNSZWdFeHA9ZnVuY3Rpb24gUChRKXtyZXR1cm4iW29iamVjdCBSZWdFeHBdIj09PVgoUSl9LEouaXNPYmplY3Q9ZnVuY3Rpb24gTChRKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIFEmJm51bGwhPT1R'@; put 'fSxKLmlzRGF0ZT1mdW5jdGlvbiBZKFEpe3JldHVybiJbb2JqZWN0IERhdGVdIj09PVgoUSl9LEouaXNFcnJvcj1mdW5jdGlvbiBCKFEpe3JldHVybiJbb2JqZWN0IEVycm9yXSI9PT1YKFEpfHxRIGluc3RhbmNlb2YgRXJyb3J9LEouaXNGdW5jdGlvbj1mdW5jdGlvbiBXKFEpe3JldHVybiJm'@; put 'dW5jdGlvbiI9PXR5cGVvZiBRfSxKLmlzUHJpbWl0aXZlPWZ1bmN0aW9uIFooUSl7cmV0dXJuIG51bGw9PT1RfHwiYm9vbGVhbiI9PXR5cGVvZiBRfHwibnVtYmVyIj09dHlwZW9mIFF8fCJzdHJpbmciPT10eXBlb2YgUXx8InN5bWJvbCI9PXR5cGVvZiBRfHx0eXBlb2YgUT4idSJ9LEouaXNC'@; put 'dWZmZXI9RC5pc0J1ZmZlcn0sNjM5MzooY2UsSixiKT0+e3ZhciBEPWIoODc2NCkuQnVmZmVyLF89Yig2OTQ4KSxwPWIoNjQyNik7Y2UuZXhwb3J0cz1mdW5jdGlvbihSKXtyZXR1cm4gbmV3IHcoUil9O3ZhciBOPXtzZWNwMjU2azE6e25hbWU6InNlY3AyNTZrMSIsYnl0ZUxlbmd0aDozMn0s'@; put 'c2VjcDIyNHIxOntuYW1lOiJwMjI0IixieXRlTGVuZ3RoOjI4fSxwcmltZTI1NnYxOntuYW1lOiJwMjU2IixieXRlTGVuZ3RoOjMyfSxwcmltZTE5MnYxOntuYW1lOiJwMTkyIixieXRlTGVuZ3RoOjI0fSxlZDI1NTE5OntuYW1lOiJlZDI1NTE5IixieXRlTGVuZ3RoOjMyfSxzZWNwMzg0cjE6'@; put 'e25hbWU6InAzODQiLGJ5dGVMZW5ndGg6NDh9LHNlY3A1MjFyMTp7bmFtZToicDUyMSIsYnl0ZUxlbmd0aDo2Nn19O2Z1bmN0aW9uIHcoSCl7dGhpcy5jdXJ2ZVR5cGU9TltIXSx0aGlzLmN1cnZlVHlwZXx8KHRoaXMuY3VydmVUeXBlPXtuYW1lOkh9KSx0aGlzLmN1cnZlPW5ldyBfLmVjKHRo'@; put 'aXMuY3VydmVUeXBlLm5hbWUpLHRoaXMua2V5cz12b2lkIDB9ZnVuY3Rpb24gRihILFIsail7QXJyYXkuaXNBcnJheShIKXx8KEg9SC50b0FycmF5KCkpO3ZhciBQPW5ldyBEKEgpO2lmKGomJlAubGVuZ3RoPGope3ZhciBMPW5ldyBEKGotUC5sZW5ndGgpO0wuZmlsbCgwKSxQPUQuY29uY2F0'@; put 'KFtMLFBdKX1yZXR1cm4gUj9QLnRvU3RyaW5nKFIpOlB9Ti5wMjI0PU4uc2VjcDIyNHIxLE4ucDI1Nj1OLnNlY3AyNTZyMT1OLnByaW1lMjU2djEsTi5wMTkyPU4uc2VjcDE5MnIxPU4ucHJpbWUxOTJ2MSxOLnAzODQ9Ti5zZWNwMzg0cjEsTi5wNTIxPU4uc2VjcDUyMXIxLHcucHJvdG90eXBl'@; put 'LmdlbmVyYXRlS2V5cz1mdW5jdGlvbihILFIpe3JldHVybiB0aGlzLmtleXM9dGhpcy5jdXJ2ZS5nZW5LZXlQYWlyKCksdGhpcy5nZXRQdWJsaWNLZXkoSCxSKX0sdy5wcm90b3R5cGUuY29tcHV0ZVNlY3JldD1mdW5jdGlvbihILFIsail7cmV0dXJuIFI9Unx8InV0ZjgiLEQuaXNCdWZmZXIo'@; put 'SCl8fChIPW5ldyBEKEgsUikpLEYodGhpcy5jdXJ2ZS5rZXlGcm9tUHVibGljKEgpLmdldFB1YmxpYygpLm11bCh0aGlzLmtleXMuZ2V0UHJpdmF0ZSgpKS5nZXRYKCksaix0aGlzLmN1cnZlVHlwZS5ieXRlTGVuZ3RoKX0sdy5wcm90b3R5cGUuZ2V0UHVibGljS2V5PWZ1bmN0aW9uKEgsUil7'@; put 'dmFyIGo9dGhpcy5rZXlzLmdldFB1YmxpYygiY29tcHJlc3NlZCI9PT1SLCEwKTtyZXR1cm4iaHlicmlkIj09PVImJihqWzBdPWpbai5sZW5ndGgtMV0lMj83OjYpLEYoaixIKX0sdy5wcm90b3R5cGUuZ2V0UHJpdmF0ZUtleT1mdW5jdGlvbihIKXtyZXR1cm4gRih0aGlzLmtleXMuZ2V0UHJp'@; put 'dmF0ZSgpLEgpfSx3LnByb3RvdHlwZS5zZXRQdWJsaWNLZXk9ZnVuY3Rpb24oSCxSKXtyZXR1cm4gUj1SfHwidXRmOCIsRC5pc0J1ZmZlcihIKXx8KEg9bmV3IEQoSCxSKSksdGhpcy5rZXlzLl9pbXBvcnRQdWJsaWMoSCksdGhpc30sdy5wcm90b3R5cGUuc2V0UHJpdmF0ZUtleT1mdW5jdGlv'@; put 'bihILFIpe1I9Unx8InV0ZjgiLEQuaXNCdWZmZXIoSCl8fChIPW5ldyBEKEgsUikpO3ZhciBqPW5ldyBwKEgpO3JldHVybiBqPWoudG9TdHJpbmcoMTYpLHRoaXMua2V5cz10aGlzLmN1cnZlLmdlbktleVBhaXIoKSx0aGlzLmtleXMuX2ltcG9ydFByaXZhdGUoaiksdGhpc319LDY0MjY6ZnVu'@; put 'Y3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCxfKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcCh6LGcpe2lmKCF6KXRocm93IG5ldyBFcnJvcihnfHwiQXNzZXJ0aW9uIGZhaWxlZCIpfWZ1bmN0aW9uIE4oeixnKXt6LnN1cGVyXz1nO3ZhciB5PWZ1bmN0aW9uKCl7fTt5LnByb3RvdHlwZT1nLnBy'@; put 'b3RvdHlwZSx6LnByb3RvdHlwZT1uZXcgeSx6LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj16fWZ1bmN0aW9uIHcoeixnLHkpe2lmKHcuaXNCTih6KSlyZXR1cm4gejt0aGlzLm5lZ2F0aXZlPTAsdGhpcy53b3Jkcz1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5yZWQ9bnVsbCxudWxsIT09eiYmKCgi'@; put 'bGUiPT09Z3x8ImJlIj09PWcpJiYoeT1nLGc9MTApLHRoaXMuX2luaXQoenx8MCxnfHwxMCx5fHwiYmUiKSl9dmFyIEY7Im9iamVjdCI9PXR5cGVvZiBEP0QuZXhwb3J0cz13Ol8uQk49dyx3LkJOPXcsdy53b3JkU2l6ZT0yNjt0cnl7Rj10eXBlb2Ygd2luZG93PCJ1IiYmdHlwZW9mIHdpbmRv'@; put 'dy5CdWZmZXI8InUiP3dpbmRvdy5CdWZmZXI6Yig4NjIzKS5CdWZmZXJ9Y2F0Y2h7fWZ1bmN0aW9uIEgoeixnKXt2YXIgeT16LmNoYXJDb2RlQXQoZyk7cmV0dXJuIHk+PTY1JiZ5PD03MD95LTU1Onk+PTk3JiZ5PD0xMDI/eS04Nzp5LTQ4JjE1fWZ1bmN0aW9uIFIoeixnLHkpe3ZhciB4PUgo'@; put 'eix5KTtyZXR1cm4geS0xPj1nJiYoeHw9SCh6LHktMSk8PDQpLHh9ZnVuY3Rpb24gaih6LGcseSx4KXtmb3IodmFyIEM9MCxUPU1hdGgubWluKHoubGVuZ3RoLHkpLFY9ZztWPFQ7VisrKXt2YXIgVT16LmNoYXJDb2RlQXQoViktNDg7Qyo9eCxDKz1VPj00OT9VLTQ5KzEwOlU+PTE3P1UtMTcr'@; put 'MTA6VX1yZXR1cm4gQ313LmlzQk49ZnVuY3Rpb24oZyl7cmV0dXJuIGcgaW5zdGFuY2VvZiB3fHxudWxsIT09ZyYmIm9iamVjdCI9PXR5cGVvZiBnJiZnLmNvbnN0cnVjdG9yLndvcmRTaXplPT09dy53b3JkU2l6ZSYmQXJyYXkuaXNBcnJheShnLndvcmRzKX0sdy5tYXg9ZnVuY3Rpb24oZyx5'@; put 'KXtyZXR1cm4gZy5jbXAoeSk+MD9nOnl9LHcubWluPWZ1bmN0aW9uKGcseSl7cmV0dXJuIGcuY21wKHkpPDA/Zzp5fSx3LnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbihnLHkseCl7aWYoIm51bWJlciI9PXR5cGVvZiBnKXJldHVybiB0aGlzLl9pbml0TnVtYmVyKGcseSx4KTtpZigib2JqZWN0'@; put 'Ij09dHlwZW9mIGcpcmV0dXJuIHRoaXMuX2luaXRBcnJheShnLHkseCk7ImhleCI9PT15JiYoeT0xNikscCh5PT09KDB8eSkmJnk+PTImJnk8PTM2KTt2YXIgQz0wOyItIj09PShnPWcudG9TdHJpbmcoKS5yZXBsYWNlKC9ccysvZywiIikpWzBdJiYoQysrLHRoaXMubmVnYXRpdmU9MSksQzxn'@; put 'Lmxlbmd0aCYmKDE2PT09eT90aGlzLl9wYXJzZUhleChnLEMseCk6KHRoaXMuX3BhcnNlQmFzZShnLHksQyksImxlIj09PXgmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSx5LHgpKSl9LHcucHJvdG90eXBlLl9pbml0TnVtYmVyPWZ1bmN0aW9uKGcseSx4KXtnPDAmJih0aGlzLm5l'@; put 'Z2F0aXZlPTEsZz0tZyksZzw2NzEwODg2ND8odGhpcy53b3Jkcz1bNjcxMDg4NjMmZ10sdGhpcy5sZW5ndGg9MSk6Zzw0NTAzNTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZnLGcvNjcxMDg4NjQmNjcxMDg4NjNdLHRoaXMubGVuZ3RoPTIpOihwKGc8OTAwNzE5OTI1NDc0MDk5'@; put 'MiksdGhpcy53b3Jkcz1bNjcxMDg4NjMmZyxnLzY3MTA4ODY0JjY3MTA4ODYzLDFdLHRoaXMubGVuZ3RoPTMpLCJsZSI9PT14JiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCkseSx4KX0sdy5wcm90b3R5cGUuX2luaXRBcnJheT1mdW5jdGlvbihnLHkseCl7aWYocCgibnVtYmVyIj09'@; put 'dHlwZW9mIGcubGVuZ3RoKSxnLmxlbmd0aDw9MClyZXR1cm4gdGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMubGVuZ3RoPU1hdGguY2VpbChnLmxlbmd0aC8zKSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBDPTA7Qzx0aGlzLmxlbmd0aDtD'@; put 'KyspdGhpcy53b3Jkc1tDXT0wO3ZhciBULFYsVT0wO2lmKCJiZSI9PT14KWZvcihDPWcubGVuZ3RoLTEsVD0wO0M+PTA7Qy09Myl0aGlzLndvcmRzW1RdfD0oVj1nW0NdfGdbQy0xXTw8OHxnW0MtMl08PDE2KTw8VSY2NzEwODg2Myx0aGlzLndvcmRzW1QrMV09Vj4+PjI2LVUmNjcxMDg4NjMs'@; put 'KFUrPTI0KT49MjYmJihVLT0yNixUKyspO2Vsc2UgaWYoImxlIj09PXgpZm9yKEM9MCxUPTA7QzxnLmxlbmd0aDtDKz0zKXRoaXMud29yZHNbVF18PShWPWdbQ118Z1tDKzFdPDw4fGdbQysyXTw8MTYpPDxVJjY3MTA4ODYzLHRoaXMud29yZHNbVCsxXT1WPj4+MjYtVSY2NzEwODg2MywoVSs9'@; put 'MjQpPj0yNiYmKFUtPTI2LFQrKyk7cmV0dXJuIHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKGcseSx4KXt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoKGcubGVuZ3RoLXkpLzYpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIEM9MDtD'@; put 'PHRoaXMubGVuZ3RoO0MrKyl0aGlzLndvcmRzW0NdPTA7dmFyIFUsVD0wLFY9MDtpZigiYmUiPT09eClmb3IoQz1nLmxlbmd0aC0xO0M+PXk7Qy09MilVPVIoZyx5LEMpPDxULHRoaXMud29yZHNbVl18PTY3MTA4ODYzJlUsVD49MTg/KFQtPTE4LHRoaXMud29yZHNbVis9MV18PVU+Pj4yNik6'@; put 'VCs9ODtlbHNlIGZvcihDPShnLmxlbmd0aC15KSUyPT0wP3krMTp5O0M8Zy5sZW5ndGg7Qys9MilVPVIoZyx5LEMpPDxULHRoaXMud29yZHNbVl18PTY3MTA4ODYzJlUsVD49MTg/KFQtPTE4LHRoaXMud29yZHNbVis9MV18PVU+Pj4yNik6VCs9ODt0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBl'@; put 'Ll9wYXJzZUJhc2U9ZnVuY3Rpb24oZyx5LHgpe3RoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTE7Zm9yKHZhciBDPTAsVD0xO1Q8PTY3MTA4ODYzO1QqPXkpQysrO0MtLSxUPVQveXwwO2Zvcih2YXIgVj1nLmxlbmd0aC14LFU9ViVDLEU9TWF0aC5taW4oVixWLVUpK3gsbT0wLEE9eDtBPEU7'@; put 'QSs9QyltPWooZyxBLEErQyx5KSx0aGlzLmltdWxuKFQpLHRoaXMud29yZHNbMF0rbTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1tOnRoaXMuX2lhZGRuKG0pO2lmKDAhPT1VKXt2YXIgYWU9MTtmb3IobT1qKGcsQSxnLmxlbmd0aCx5KSxBPTA7QTxVO0ErKylhZSo9eTt0aGlzLmltdWxuKGFl'@; put 'KSx0aGlzLndvcmRzWzBdK208NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9bTp0aGlzLl9pYWRkbihtKX10aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24oZyl7Zy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgeT0wO3k8dGhpcy5sZW5ndGg7eSsrKWcu'@; put 'd29yZHNbeV09dGhpcy53b3Jkc1t5XTtnLmxlbmd0aD10aGlzLmxlbmd0aCxnLm5lZ2F0aXZlPXRoaXMubmVnYXRpdmUsZy5yZWQ9dGhpcy5yZWR9LHcucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIGc9bmV3IHcobnVsbCk7cmV0dXJuIHRoaXMuY29weShnKSxnfSx3LnByb3RvdHlw'@; put 'ZS5fZXhwYW5kPWZ1bmN0aW9uKGcpe2Zvcig7dGhpcy5sZW5ndGg8ZzspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO3JldHVybiB0aGlzfSx3LnByb3RvdHlwZS5zdHJpcD1mdW5jdGlvbigpe2Zvcig7dGhpcy5sZW5ndGg+MSYmMD09PXRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV07KXRo'@; put 'aXMubGVuZ3RoLS07cmV0dXJuIHRoaXMuX25vcm1TaWduKCl9LHcucHJvdG90eXBlLl9ub3JtU2lnbj1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdJiYodGhpcy5uZWdhdGl2ZT0wKSx0aGlzfSx3LnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9u'@; put 'KCl7cmV0dXJuKHRoaXMucmVkPyI8Qk4tUjogIjoiPEJOOiAiKSt0aGlzLnRvU3RyaW5nKDE2KSsiPiJ9O3ZhciBQPVsiIiwiMCIsIjAwIiwiMDAwIiwiMDAwMCIsIjAwMDAwIiwiMDAwMDAwIiwiMDAwMDAwMCIsIjAwMDAwMDAwIiwiMDAwMDAwMDAwIiwiMDAwMDAwMDAwMCIsIjAwMDAwMDAw'@; put 'MDAwIiwiMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAw'@; put 'MDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCJdLEw9WzAsMCwyNSwxNiwxMiwxMSwxMCw5'@; put 'LDgsOCw3LDcsNyw3LDYsNiw2LDYsNiw2LDYsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNV0sWT1bMCwwLDMzNTU0NDMyLDQzMDQ2NzIxLDE2Nzc3MjE2LDQ4ODI4MTI1LDYwNDY2MTc2LDQwMzUzNjA3LDE2Nzc3MjE2LDQzMDQ2NzIxLDFlNywxOTQ4NzE3MSwzNTgzMTgwOCw2Mjc0'@; put 'ODUxNyw3NTI5NTM2LDExMzkwNjI1LDE2Nzc3MjE2LDI0MTM3NTY5LDM0MDEyMjI0LDQ3MDQ1ODgxLDY0ZTYsNDA4NDEwMSw1MTUzNjMyLDY0MzYzNDMsNzk2MjYyNCw5NzY1NjI1LDExODgxMzc2LDE0MzQ4OTA3LDE3MjEwMzY4LDIwNTExMTQ5LDI0M2U1LDI4NjI5MTUxLDMzNTU0NDMyLDM5'@; put 'MTM1MzkzLDQ1NDM1NDI0LDUyNTIxODc1LDYwNDY2MTc2XTtmdW5jdGlvbiBXKHosZyx5KXt5Lm5lZ2F0aXZlPWcubmVnYXRpdmVeei5uZWdhdGl2ZTt2YXIgeD16Lmxlbmd0aCtnLmxlbmd0aHwwO3kubGVuZ3RoPXgseD14LTF8MDt2YXIgQz0wfHoud29yZHNbMF0sVD0wfGcud29yZHNbMF0s'@; put 'Vj1DKlQsRT1WLzY3MTA4ODY0fDA7eS53b3Jkc1swXT02NzEwODg2MyZWO2Zvcih2YXIgbT0xO208eDttKyspe2Zvcih2YXIgQT1FPj4+MjYsYWU9NjcxMDg4NjMmRSxuZT1NYXRoLm1pbihtLGcubGVuZ3RoLTEpLGxlPU1hdGgubWF4KDAsbS16Lmxlbmd0aCsxKTtsZTw9bmU7bGUrKylBKz0o'@; put 'Vj0oQz0wfHoud29yZHNbbS1sZXwwXSkqKFQ9MHxnLndvcmRzW2xlXSkrYWUpLzY3MTA4ODY0fDAsYWU9NjcxMDg4NjMmVjt5LndvcmRzW21dPTB8YWUsRT0wfEF9cmV0dXJuIDAhPT1FP3kud29yZHNbbV09MHxFOnkubGVuZ3RoLS0seS5zdHJpcCgpfXcucHJvdG90eXBlLnRvU3RyaW5nPWZ1'@; put 'bmN0aW9uKGcseSl7dmFyIHg7aWYoeT0wfHl8fDEsMTY9PT0oZz1nfHwxMCl8fCJoZXgiPT09Zyl7eD0iIjtmb3IodmFyIEM9MCxUPTAsVj0wO1Y8dGhpcy5sZW5ndGg7VisrKXt2YXIgVT10aGlzLndvcmRzW1ZdLEU9KDE2Nzc3MjE1JihVPDxDfFQpKS50b1N0cmluZygxNik7VD1VPj4+MjQt'@; put 'QyYxNjc3NzIxNSwoQys9Mik+PTI2JiYoQy09MjYsVi0tKSx4PTAhPT1UfHxWIT09dGhpcy5sZW5ndGgtMT9QWzYtRS5sZW5ndGhdK0UreDpFK3h9Zm9yKDAhPT1UJiYoeD1ULnRvU3RyaW5nKDE2KSt4KTt4Lmxlbmd0aCV5IT0wOyl4PSIwIit4O3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYm'@; put 'KHg9Ii0iK3gpLHh9aWYoZz09PSgwfGcpJiZnPj0yJiZnPD0zNil7dmFyIG09TFtnXSxBPVlbZ107eD0iIjt2YXIgYWU9dGhpcy5jbG9uZSgpO2ZvcihhZS5uZWdhdGl2ZT0wOyFhZS5pc1plcm8oKTspe3ZhciBuZT1hZS5tb2RuKEEpLnRvU3RyaW5nKGcpO3g9KGFlPWFlLmlkaXZuKEEpKS5p'@; put 'c1plcm8oKT9uZSt4OlBbbS1uZS5sZW5ndGhdK25lK3h9Zm9yKHRoaXMuaXNaZXJvKCkmJih4PSIwIit4KTt4Lmxlbmd0aCV5IT0wOyl4PSIwIit4O3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKHg9Ii0iK3gpLHh9cCghMSwiQmFzZSBzaG91bGQgYmUgYmV0d2VlbiAyIGFuZCAzNiIpfSx3'@; put 'LnByb3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigpe3ZhciBnPXRoaXMud29yZHNbMF07cmV0dXJuIDI9PT10aGlzLmxlbmd0aD9nKz02NzEwODg2NCp0aGlzLndvcmRzWzFdOjM9PT10aGlzLmxlbmd0aCYmMT09PXRoaXMud29yZHNbMl0/Zys9NDUwMzU5OTYyNzM3MDQ5Nis2NzEwODg2NCp0'@; put 'aGlzLndvcmRzWzFdOnRoaXMubGVuZ3RoPjImJnAoITEsIk51bWJlciBjYW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLDAhPT10aGlzLm5lZ2F0aXZlPy1nOmd9LHcucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKDE2KX0sdy5wcm90'@; put 'b3R5cGUudG9CdWZmZXI9ZnVuY3Rpb24oZyx5KXtyZXR1cm4gcCh0eXBlb2YgRjwidSIpLHRoaXMudG9BcnJheUxpa2UoRixnLHkpfSx3LnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKGcseSl7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoQXJyYXksZyx5KX0sdy5wcm90b3R5cGUudG9BcnJh'@; put 'eUxpa2U9ZnVuY3Rpb24oZyx5LHgpe3ZhciBDPXRoaXMuYnl0ZUxlbmd0aCgpLFQ9eHx8TWF0aC5tYXgoMSxDKTtwKEM8PVQsImJ5dGUgYXJyYXkgbG9uZ2VyIHRoYW4gZGVzaXJlZCBsZW5ndGgiKSxwKFQ+MCwiUmVxdWVzdGVkIGFycmF5IGxlbmd0aCA8PSAwIiksdGhpcy5zdHJpcCgpO3Zh'@; put 'ciBFLG0sVj0ibGUiPT09eSxVPW5ldyBnKFQpLEE9dGhpcy5jbG9uZSgpO2lmKFYpe2ZvcihtPTA7IUEuaXNaZXJvKCk7bSsrKUU9QS5hbmRsbigyNTUpLEEuaXVzaHJuKDgpLFVbbV09RTtmb3IoO208VDttKyspVVttXT0wfWVsc2V7Zm9yKG09MDttPFQtQzttKyspVVttXT0wO2ZvcihtPTA7'@; put 'IUEuaXNaZXJvKCk7bSsrKUU9QS5hbmRsbigyNTUpLEEuaXVzaHJuKDgpLFVbVC1tLTFdPUV9cmV0dXJuIFV9LHcucHJvdG90eXBlLl9jb3VudEJpdHM9TWF0aC5jbHozMj9mdW5jdGlvbihnKXtyZXR1cm4gMzItTWF0aC5jbHozMihnKX06ZnVuY3Rpb24oZyl7dmFyIHk9Zyx4PTA7cmV0dXJu'@; put 'IHk+PTQwOTYmJih4Kz0xMyx5Pj4+PTEzKSx5Pj02NCYmKHgrPTcseT4+Pj03KSx5Pj04JiYoeCs9NCx5Pj4+PTQpLHk+PTImJih4Kz0yLHk+Pj49MikseCt5fSx3LnByb3RvdHlwZS5femVyb0JpdHM9ZnVuY3Rpb24oZyl7aWYoMD09PWcpcmV0dXJuIDI2O3ZhciB5PWcseD0wO3JldHVybiA4'@; put 'MTkxJnl8fCh4Kz0xMyx5Pj4+PTEzKSwxMjcmeXx8KHgrPTcseT4+Pj03KSwxNSZ5fHwoeCs9NCx5Pj4+PTQpLDMmeXx8KHgrPTIseT4+Pj0yKSwxJnl8fHgrKyx4fSx3LnByb3RvdHlwZS5iaXRMZW5ndGg9ZnVuY3Rpb24oKXt2YXIgeT10aGlzLl9jb3VudEJpdHModGhpcy53b3Jkc1t0aGlz'@; put 'Lmxlbmd0aC0xXSk7cmV0dXJuIDI2Kih0aGlzLmxlbmd0aC0xKSt5fSx3LnByb3RvdHlwZS56ZXJvQml0cz1mdW5jdGlvbigpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIDA7Zm9yKHZhciBnPTAseT0wO3k8dGhpcy5sZW5ndGg7eSsrKXt2YXIgeD10aGlzLl96ZXJvQml0cyh0aGlzLndvcmRz'@; put 'W3ldKTtpZihnKz14LDI2IT09eClicmVha31yZXR1cm4gZ30sdy5wcm90b3R5cGUuYnl0ZUxlbmd0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmNlaWwodGhpcy5iaXRMZW5ndGgoKS84KX0sdy5wcm90b3R5cGUudG9Ud29zPWZ1bmN0aW9uKGcpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT90'@; put 'aGlzLmFicygpLmlub3RuKGcpLmlhZGRuKDEpOnRoaXMuY2xvbmUoKX0sdy5wcm90b3R5cGUuZnJvbVR3b3M9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMudGVzdG4oZy0xKT90aGlzLm5vdG4oZykuaWFkZG4oMSkuaW5lZygpOnRoaXMuY2xvbmUoKX0sdy5wcm90b3R5cGUuaXNOZWc9ZnVuY3Rp'@; put 'b24oKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmV9LHcucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaW5lZygpfSx3LnByb3RvdHlwZS5pbmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNaZXJvKCl8fCh0aGlzLm5lZ2F0aXZlXj0xKSx0aGlzfSx3LnBy'@; put 'b3RvdHlwZS5pdW9yPWZ1bmN0aW9uKGcpe2Zvcig7dGhpcy5sZW5ndGg8Zy5sZW5ndGg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtmb3IodmFyIHk9MDt5PGcubGVuZ3RoO3krKyl0aGlzLndvcmRzW3ldPXRoaXMud29yZHNbeV18Zy53b3Jkc1t5XTtyZXR1cm4gdGhpcy5zdHJpcCgp'@; put 'fSx3LnByb3RvdHlwZS5pb3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHAoISh0aGlzLm5lZ2F0aXZlfGcubmVnYXRpdmUpKSx0aGlzLml1b3IoZyl9LHcucHJvdG90eXBlLm9yPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaW9yKGcpOmcuY2xvbmUo'@; put 'KS5pb3IodGhpcyl9LHcucHJvdG90eXBlLnVvcj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLml1b3IoZyk6Zy5jbG9uZSgpLml1b3IodGhpcyl9LHcucHJvdG90eXBlLml1YW5kPWZ1bmN0aW9uKGcpe3ZhciB5O3k9dGhpcy5sZW5ndGg+Zy5s'@; put 'ZW5ndGg/Zzp0aGlzO2Zvcih2YXIgeD0wO3g8eS5sZW5ndGg7eCsrKXRoaXMud29yZHNbeF09dGhpcy53b3Jkc1t4XSZnLndvcmRzW3hdO3JldHVybiB0aGlzLmxlbmd0aD15Lmxlbmd0aCx0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLmlhbmQ9ZnVuY3Rpb24oZyl7cmV0dXJuIHAoISh0aGlz'@; put 'Lm5lZ2F0aXZlfGcubmVnYXRpdmUpKSx0aGlzLml1YW5kKGcpfSx3LnByb3RvdHlwZS5hbmQ9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYW5kKGcpOmcuY2xvbmUoKS5pYW5kKHRoaXMpfSx3LnByb3RvdHlwZS51YW5kPWZ1bmN0aW9uKGcp'@; put 'e3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaXVhbmQoZyk6Zy5jbG9uZSgpLml1YW5kKHRoaXMpfSx3LnByb3RvdHlwZS5pdXhvcj1mdW5jdGlvbihnKXt2YXIgeSx4O3RoaXMubGVuZ3RoPmcubGVuZ3RoPyh5PXRoaXMseD1nKTooeT1nLHg9dGhpcyk7Zm9yKHZh'@; put 'ciBDPTA7Qzx4Lmxlbmd0aDtDKyspdGhpcy53b3Jkc1tDXT15LndvcmRzW0NdXngud29yZHNbQ107aWYodGhpcyE9PXkpZm9yKDtDPHkubGVuZ3RoO0MrKyl0aGlzLndvcmRzW0NdPXkud29yZHNbQ107cmV0dXJuIHRoaXMubGVuZ3RoPXkubGVuZ3RoLHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5'@; put 'cGUuaXhvcj1mdW5jdGlvbihnKXtyZXR1cm4gcCghKHRoaXMubmVnYXRpdmV8Zy5uZWdhdGl2ZSkpLHRoaXMuaXV4b3IoZyl9LHcucHJvdG90eXBlLnhvcj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLml4b3IoZyk6Zy5jbG9uZSgpLml4b3Io'@; put 'dGhpcyl9LHcucHJvdG90eXBlLnV4b3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdXhvcihnKTpnLmNsb25lKCkuaXV4b3IodGhpcyl9LHcucHJvdG90eXBlLmlub3RuPWZ1bmN0aW9uKGcpe3AoIm51bWJlciI9PXR5cGVvZiBnJiZnPj0w'@; put 'KTt2YXIgeT0wfE1hdGguY2VpbChnLzI2KSx4PWclMjY7dGhpcy5fZXhwYW5kKHkpLHg+MCYmeS0tO2Zvcih2YXIgQz0wO0M8eTtDKyspdGhpcy53b3Jkc1tDXT02NzEwODg2MyZ+dGhpcy53b3Jkc1tDXTtyZXR1cm4geD4wJiYodGhpcy53b3Jkc1tDXT1+dGhpcy53b3Jkc1tDXSY2NzEwODg2'@; put 'Mz4+MjYteCksdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5ub3RuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4oZyl9LHcucHJvdG90eXBlLnNldG49ZnVuY3Rpb24oZyx5KXtwKCJudW1iZXIiPT10eXBlb2YgZyYmZz49MCk7dmFyIHg9Zy8yNnwwLEM9ZyUyNjtyZXR1'@; put 'cm4gdGhpcy5fZXhwYW5kKHgrMSksdGhpcy53b3Jkc1t4XT15P3RoaXMud29yZHNbeF18MTw8Qzp0aGlzLndvcmRzW3hdJn4oMTw8QyksdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKGcpe3ZhciB5LHgsQztpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PWcubmVnYXRp'@; put 'dmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx5PXRoaXMuaXN1YihnKSx0aGlzLm5lZ2F0aXZlXj0xLHRoaXMuX25vcm1TaWduKCk7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT1nLm5lZ2F0aXZlKXJldHVybiBnLm5lZ2F0aXZlPTAseT10aGlzLmlzdWIoZyksZy5uZWdhdGl2ZT0xLHkuX25v'@; put 'cm1TaWduKCk7dGhpcy5sZW5ndGg+Zy5sZW5ndGg/KHg9dGhpcyxDPWcpOih4PWcsQz10aGlzKTtmb3IodmFyIFQ9MCxWPTA7VjxDLmxlbmd0aDtWKyspdGhpcy53b3Jkc1tWXT02NzEwODg2MyYoeT0oMHx4LndvcmRzW1ZdKSsoMHxDLndvcmRzW1ZdKStUKSxUPXk+Pj4yNjtmb3IoOzAhPT1U'@; put 'JiZWPHgubGVuZ3RoO1YrKyl0aGlzLndvcmRzW1ZdPTY3MTA4ODYzJih5PSgwfHgud29yZHNbVl0pK1QpLFQ9eT4+PjI2O2lmKHRoaXMubGVuZ3RoPXgubGVuZ3RoLDAhPT1UKXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPVQsdGhpcy5sZW5ndGgrKztlbHNlIGlmKHghPT10aGlzKWZvcig7Vjx4'@; put 'Lmxlbmd0aDtWKyspdGhpcy53b3Jkc1tWXT14LndvcmRzW1ZdO3JldHVybiB0aGlzfSx3LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZyl7dmFyIHk7cmV0dXJuIDAhPT1nLm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oZy5uZWdhdGl2ZT0wLHk9dGhpcy5zdWIoZyksZy5uZWdhdGl2ZV49'@; put 'MSx5KTowPT09Zy5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMubmVnYXRpdmU9MCx5PWcuc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSx5KTp0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZChnKTpnLmNsb25lKCkuaWFkZCh0aGlzKX0sdy5wcm90b3R5cGUu'@; put 'aXN1Yj1mdW5jdGlvbihnKXtpZigwIT09Zy5uZWdhdGl2ZSl7Zy5uZWdhdGl2ZT0wO3ZhciB5PXRoaXMuaWFkZChnKTtyZXR1cm4gZy5uZWdhdGl2ZT0xLHkuX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGQoZyksdGhpcy5u'@; put 'ZWdhdGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIEMsVCx4PXRoaXMuY21wKGcpO2lmKDA9PT14KXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpczt4PjA/KEM9dGhpcyxUPWcpOihDPWcsVD10aGlzKTtmb3IodmFyIFY9MCxVPTA7VTxU'@; put 'Lmxlbmd0aDtVKyspVj0oeT0oMHxDLndvcmRzW1VdKS0oMHxULndvcmRzW1VdKStWKT4+MjYsdGhpcy53b3Jkc1tVXT02NzEwODg2MyZ5O2Zvcig7MCE9PVYmJlU8Qy5sZW5ndGg7VSsrKVY9KHk9KDB8Qy53b3Jkc1tVXSkrVik+PjI2LHRoaXMud29yZHNbVV09NjcxMDg4NjMmeTtpZigwPT09'@; put 'ViYmVTxDLmxlbmd0aCYmQyE9PXRoaXMpZm9yKDtVPEMubGVuZ3RoO1UrKyl0aGlzLndvcmRzW1VdPUMud29yZHNbVV07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLFUpLEMhPT10aGlzJiYodGhpcy5uZWdhdGl2ZT0xKSx0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBl'@; put 'LnN1Yj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWIoZyl9O3ZhciBaPWZ1bmN0aW9uKGcseSx4KXt2YXIgRSxtLEEsQz1nLndvcmRzLFQ9eS53b3JkcyxWPXgud29yZHMsVT0wLGFlPTB8Q1swXSxuZT04MTkxJmFlLGxlPWFlPj4+MTMsd2U9MHxDWzFdLFplPTgxOTEmd2Us'@; put 'UWU9d2U+Pj4xMyxhdD0wfENbMl0seGU9ODE5MSZhdCx2ZT1hdD4+PjEzLHFlPTB8Q1szXSxqZT04MTkxJnFlLEFlPXFlPj4+MTMsRmU9MHxDWzRdLFJlPTgxOTEmRmUsSWU9RmU+Pj4xMyxIZT0wfENbNV0sRGU9ODE5MSZIZSxrZT1IZT4+PjEzLF90PTB8Q1s2XSxudD04MTkxJl90LEplPV90'@; put 'Pj4+MTMsb249MHxDWzddLHl0PTgxOTEmb24sTXQ9b24+Pj4xMyxJdD0wfENbOF0scnQ9ODE5MSZJdCxLZT1JdD4+PjEzLHR0PTB8Q1s5XSxOZT04MTkxJnR0LHV0PXR0Pj4+MTMsSnQ9MHxUWzBdLEx0PTgxOTEmSnQsUHQ9SnQ+Pj4xMyxvaT0wfFRbMV0sZW49ODE5MSZvaSxzbj1vaT4+PjEz'@; put 'LElpPTB8VFsyXSxkbj04MTkxJklpLGZ0PUlpPj4+MTMsRnI9MHxUWzNdLFp0PTgxOTEmRnIsa3Q9RnI+Pj4xMyxMbj0wfFRbNF0sb3Q9ODE5MSZMbix6dD1Mbj4+PjEzLG5pPTB8VFs1XSxXZT04MTkxJm5pLEF0PW5pPj4+MTMsaXI9MHxUWzZdLGh0PTgxOTEmaXIsRXQ9aXI+Pj4xMyx6bj0w'@; put 'fFRbN10sYW49ODE5MSZ6bixqdD16bj4+PjEzLGRpPTB8VFs4XSxjbj04MTkxJmRpLGZuPWRpPj4+MTMsRGk9MHxUWzldLFF0PTgxOTEmRGksdG49RGk+Pj4xMzt4Lm5lZ2F0aXZlPWcubmVnYXRpdmVeeS5uZWdhdGl2ZSx4Lmxlbmd0aD0xOTt2YXIgY2E9KFUrKEU9TWF0aC5pbXVsKG5lLEx0'@; put 'KSl8MCkrKCg4MTkxJihtPShtPU1hdGguaW11bChuZSxQdCkpK01hdGguaW11bChsZSxMdCl8MCkpPDwxMyl8MDtVPSgoQT1NYXRoLmltdWwobGUsUHQpKSsobT4+PjEzKXwwKSsoY2E+Pj4yNil8MCxjYSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoWmUsTHQpLG09KG09TWF0aC5pbXVsKFplLFB0'@; put 'KSkrTWF0aC5pbXVsKFFlLEx0KXwwLEE9TWF0aC5pbXVsKFFlLFB0KTt2YXIgeGk9KFUrKEU9RStNYXRoLmltdWwobmUsZW4pfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSxzbil8MCkrTWF0aC5pbXVsKGxlLGVuKXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKGxlLHNu'@; put 'KXwwKSsobT4+PjEzKXwwKSsoeGk+Pj4yNil8MCx4aSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoeGUsTHQpLG09KG09TWF0aC5pbXVsKHhlLFB0KSkrTWF0aC5pbXVsKHZlLEx0KXwwLEE9TWF0aC5pbXVsKHZlLFB0KSxFPUUrTWF0aC5pbXVsKFplLGVuKXwwLG09KG09bStNYXRoLmltdWwoWmUs'@; put 'c24pfDApK01hdGguaW11bChRZSxlbil8MCxBPUErTWF0aC5pbXVsKFFlLHNuKXwwO3ZhciB5cj0oVSsoRT1FK01hdGguaW11bChuZSxkbil8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLGZ0KXwwKStNYXRoLmltdWwobGUsZG4pfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmlt'@; put 'dWwobGUsZnQpfDApKyhtPj4+MTMpfDApKyh5cj4+PjI2KXwwLHlyJj02NzEwODg2MyxFPU1hdGguaW11bChqZSxMdCksbT0obT1NYXRoLmltdWwoamUsUHQpKStNYXRoLmltdWwoQWUsTHQpfDAsQT1NYXRoLmltdWwoQWUsUHQpLEU9RStNYXRoLmltdWwoeGUsZW4pfDAsbT0obT1tK01hdGgu'@; put 'aW11bCh4ZSxzbil8MCkrTWF0aC5pbXVsKHZlLGVuKXwwLEE9QStNYXRoLmltdWwodmUsc24pfDAsRT1FK01hdGguaW11bChaZSxkbil8MCxtPShtPW0rTWF0aC5pbXVsKFplLGZ0KXwwKStNYXRoLmltdWwoUWUsZG4pfDAsQT1BK01hdGguaW11bChRZSxmdCl8MDt2YXIgR249KFUrKEU9RStN'@; put 'YXRoLmltdWwobmUsWnQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSxrdCl8MCkrTWF0aC5pbXVsKGxlLFp0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKGxlLGt0KXwwKSsobT4+PjEzKXwwKSsoR24+Pj4yNil8MCxHbiY9NjcxMDg4NjMsRT1NYXRoLmltdWwoUmUs'@; put 'THQpLG09KG09TWF0aC5pbXVsKFJlLFB0KSkrTWF0aC5pbXVsKEllLEx0KXwwLEE9TWF0aC5pbXVsKEllLFB0KSxFPUUrTWF0aC5pbXVsKGplLGVuKXwwLG09KG09bStNYXRoLmltdWwoamUsc24pfDApK01hdGguaW11bChBZSxlbil8MCxBPUErTWF0aC5pbXVsKEFlLHNuKXwwLEU9RStNYXRo'@; put 'LmltdWwoeGUsZG4pfDAsbT0obT1tK01hdGguaW11bCh4ZSxmdCl8MCkrTWF0aC5pbXVsKHZlLGRuKXwwLEE9QStNYXRoLmltdWwodmUsZnQpfDAsRT1FK01hdGguaW11bChaZSxadCl8MCxtPShtPW0rTWF0aC5pbXVsKFplLGt0KXwwKStNYXRoLmltdWwoUWUsWnQpfDAsQT1BK01hdGguaW11'@; put 'bChRZSxrdCl8MDt2YXIgS2k9KFUrKEU9RStNYXRoLmltdWwobmUsb3QpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSx6dCl8MCkrTWF0aC5pbXVsKGxlLG90KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKGxlLHp0KXwwKSsobT4+PjEzKXwwKSsoS2k+Pj4yNil8MCxL'@; put 'aSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoRGUsTHQpLG09KG09TWF0aC5pbXVsKERlLFB0KSkrTWF0aC5pbXVsKGtlLEx0KXwwLEE9TWF0aC5pbXVsKGtlLFB0KSxFPUUrTWF0aC5pbXVsKFJlLGVuKXwwLG09KG09bStNYXRoLmltdWwoUmUsc24pfDApK01hdGguaW11bChJZSxlbil8MCxBPUEr'@; put 'TWF0aC5pbXVsKEllLHNuKXwwLEU9RStNYXRoLmltdWwoamUsZG4pfDAsbT0obT1tK01hdGguaW11bChqZSxmdCl8MCkrTWF0aC5pbXVsKEFlLGRuKXwwLEE9QStNYXRoLmltdWwoQWUsZnQpfDAsRT1FK01hdGguaW11bCh4ZSxadCl8MCxtPShtPW0rTWF0aC5pbXVsKHhlLGt0KXwwKStNYXRo'@; put 'LmltdWwodmUsWnQpfDAsQT1BK01hdGguaW11bCh2ZSxrdCl8MCxFPUUrTWF0aC5pbXVsKFplLG90KXwwLG09KG09bStNYXRoLmltdWwoWmUsenQpfDApK01hdGguaW11bChRZSxvdCl8MCxBPUErTWF0aC5pbXVsKFFlLHp0KXwwO3ZhciBKcj0oVSsoRT1FK01hdGguaW11bChuZSxXZSl8MCl8'@; put 'MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLEF0KXwwKStNYXRoLmltdWwobGUsV2UpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwobGUsQXQpfDApKyhtPj4+MTMpfDApKyhKcj4+PjI2KXwwLEpyJj02NzEwODg2MyxFPU1hdGguaW11bChudCxMdCksbT0obT1NYXRoLmltdWwo'@; put 'bnQsUHQpKStNYXRoLmltdWwoSmUsTHQpfDAsQT1NYXRoLmltdWwoSmUsUHQpLEU9RStNYXRoLmltdWwoRGUsZW4pfDAsbT0obT1tK01hdGguaW11bChEZSxzbil8MCkrTWF0aC5pbXVsKGtlLGVuKXwwLEE9QStNYXRoLmltdWwoa2Usc24pfDAsRT1FK01hdGguaW11bChSZSxkbil8MCxtPSht'@; put 'PW0rTWF0aC5pbXVsKFJlLGZ0KXwwKStNYXRoLmltdWwoSWUsZG4pfDAsQT1BK01hdGguaW11bChJZSxmdCl8MCxFPUUrTWF0aC5pbXVsKGplLFp0KXwwLG09KG09bStNYXRoLmltdWwoamUsa3QpfDApK01hdGguaW11bChBZSxadCl8MCxBPUErTWF0aC5pbXVsKEFlLGt0KXwwLEU9RStNYXRo'@; put 'LmltdWwoeGUsb3QpfDAsbT0obT1tK01hdGguaW11bCh4ZSx6dCl8MCkrTWF0aC5pbXVsKHZlLG90KXwwLEE9QStNYXRoLmltdWwodmUsenQpfDAsRT1FK01hdGguaW11bChaZSxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKFplLEF0KXwwKStNYXRoLmltdWwoUWUsV2UpfDAsQT1BK01hdGguaW11'@; put 'bChRZSxBdCl8MDt2YXIgUXI9KFUrKEU9RStNYXRoLmltdWwobmUsaHQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSxFdCl8MCkrTWF0aC5pbXVsKGxlLGh0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKGxlLEV0KXwwKSsobT4+PjEzKXwwKSsoUXI+Pj4yNil8MCxR'@; put 'ciY9NjcxMDg4NjMsRT1NYXRoLmltdWwoeXQsTHQpLG09KG09TWF0aC5pbXVsKHl0LFB0KSkrTWF0aC5pbXVsKE10LEx0KXwwLEE9TWF0aC5pbXVsKE10LFB0KSxFPUUrTWF0aC5pbXVsKG50LGVuKXwwLG09KG09bStNYXRoLmltdWwobnQsc24pfDApK01hdGguaW11bChKZSxlbil8MCxBPUEr'@; put 'TWF0aC5pbXVsKEplLHNuKXwwLEU9RStNYXRoLmltdWwoRGUsZG4pfDAsbT0obT1tK01hdGguaW11bChEZSxmdCl8MCkrTWF0aC5pbXVsKGtlLGRuKXwwLEE9QStNYXRoLmltdWwoa2UsZnQpfDAsRT1FK01hdGguaW11bChSZSxadCl8MCxtPShtPW0rTWF0aC5pbXVsKFJlLGt0KXwwKStNYXRo'@; put 'LmltdWwoSWUsWnQpfDAsQT1BK01hdGguaW11bChJZSxrdCl8MCxFPUUrTWF0aC5pbXVsKGplLG90KXwwLG09KG09bStNYXRoLmltdWwoamUsenQpfDApK01hdGguaW11bChBZSxvdCl8MCxBPUErTWF0aC5pbXVsKEFlLHp0KXwwLEU9RStNYXRoLmltdWwoeGUsV2UpfDAsbT0obT1tK01hdGgu'@; put 'aW11bCh4ZSxBdCl8MCkrTWF0aC5pbXVsKHZlLFdlKXwwLEE9QStNYXRoLmltdWwodmUsQXQpfDAsRT1FK01hdGguaW11bChaZSxodCl8MCxtPShtPW0rTWF0aC5pbXVsKFplLEV0KXwwKStNYXRoLmltdWwoUWUsaHQpfDAsQT1BK01hdGguaW11bChRZSxFdCl8MDt2YXIgTmk9KFUrKEU9RStN'@; put 'YXRoLmltdWwobmUsYW4pfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSxqdCl8MCkrTWF0aC5pbXVsKGxlLGFuKXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKGxlLGp0KXwwKSsobT4+PjEzKXwwKSsoTmk+Pj4yNil8MCxOaSY9NjcxMDg4NjMsRT1NYXRoLmltdWwocnQs'@; put 'THQpLG09KG09TWF0aC5pbXVsKHJ0LFB0KSkrTWF0aC5pbXVsKEtlLEx0KXwwLEE9TWF0aC5pbXVsKEtlLFB0KSxFPUUrTWF0aC5pbXVsKHl0LGVuKXwwLG09KG09bStNYXRoLmltdWwoeXQsc24pfDApK01hdGguaW11bChNdCxlbil8MCxBPUErTWF0aC5pbXVsKE10LHNuKXwwLEU9RStNYXRo'@; put 'LmltdWwobnQsZG4pfDAsbT0obT1tK01hdGguaW11bChudCxmdCl8MCkrTWF0aC5pbXVsKEplLGRuKXwwLEE9QStNYXRoLmltdWwoSmUsZnQpfDAsRT1FK01hdGguaW11bChEZSxadCl8MCxtPShtPW0rTWF0aC5pbXVsKERlLGt0KXwwKStNYXRoLmltdWwoa2UsWnQpfDAsQT1BK01hdGguaW11'@; put 'bChrZSxrdCl8MCxFPUUrTWF0aC5pbXVsKFJlLG90KXwwLG09KG09bStNYXRoLmltdWwoUmUsenQpfDApK01hdGguaW11bChJZSxvdCl8MCxBPUErTWF0aC5pbXVsKEllLHp0KXwwLEU9RStNYXRoLmltdWwoamUsV2UpfDAsbT0obT1tK01hdGguaW11bChqZSxBdCl8MCkrTWF0aC5pbXVsKEFl'@; put 'LFdlKXwwLEE9QStNYXRoLmltdWwoQWUsQXQpfDAsRT1FK01hdGguaW11bCh4ZSxodCl8MCxtPShtPW0rTWF0aC5pbXVsKHhlLEV0KXwwKStNYXRoLmltdWwodmUsaHQpfDAsQT1BK01hdGguaW11bCh2ZSxFdCl8MCxFPUUrTWF0aC5pbXVsKFplLGFuKXwwLG09KG09bStNYXRoLmltdWwoWmUs'@; put 'anQpfDApK01hdGguaW11bChRZSxhbil8MCxBPUErTWF0aC5pbXVsKFFlLGp0KXwwO3ZhciBIaT0oVSsoRT1FK01hdGguaW11bChuZSxjbil8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLGZuKXwwKStNYXRoLmltdWwobGUsY24pfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmlt'@; put 'dWwobGUsZm4pfDApKyhtPj4+MTMpfDApKyhIaT4+PjI2KXwwLEhpJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxMdCksbT0obT1NYXRoLmltdWwoTmUsUHQpKStNYXRoLmltdWwodXQsTHQpfDAsQT1NYXRoLmltdWwodXQsUHQpLEU9RStNYXRoLmltdWwocnQsZW4pfDAsbT0obT1tK01hdGgu'@; put 'aW11bChydCxzbil8MCkrTWF0aC5pbXVsKEtlLGVuKXwwLEE9QStNYXRoLmltdWwoS2Usc24pfDAsRT1FK01hdGguaW11bCh5dCxkbil8MCxtPShtPW0rTWF0aC5pbXVsKHl0LGZ0KXwwKStNYXRoLmltdWwoTXQsZG4pfDAsQT1BK01hdGguaW11bChNdCxmdCl8MCxFPUUrTWF0aC5pbXVsKG50'@; put 'LFp0KXwwLG09KG09bStNYXRoLmltdWwobnQsa3QpfDApK01hdGguaW11bChKZSxadCl8MCxBPUErTWF0aC5pbXVsKEplLGt0KXwwLEU9RStNYXRoLmltdWwoRGUsb3QpfDAsbT0obT1tK01hdGguaW11bChEZSx6dCl8MCkrTWF0aC5pbXVsKGtlLG90KXwwLEE9QStNYXRoLmltdWwoa2UsenQp'@; put 'fDAsRT1FK01hdGguaW11bChSZSxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKFJlLEF0KXwwKStNYXRoLmltdWwoSWUsV2UpfDAsQT1BK01hdGguaW11bChJZSxBdCl8MCxFPUUrTWF0aC5pbXVsKGplLGh0KXwwLG09KG09bStNYXRoLmltdWwoamUsRXQpfDApK01hdGguaW11bChBZSxodCl8MCxB'@; put 'PUErTWF0aC5pbXVsKEFlLEV0KXwwLEU9RStNYXRoLmltdWwoeGUsYW4pfDAsbT0obT1tK01hdGguaW11bCh4ZSxqdCl8MCkrTWF0aC5pbXVsKHZlLGFuKXwwLEE9QStNYXRoLmltdWwodmUsanQpfDAsRT1FK01hdGguaW11bChaZSxjbil8MCxtPShtPW0rTWF0aC5pbXVsKFplLGZuKXwwKStN'@; put 'YXRoLmltdWwoUWUsY24pfDAsQT1BK01hdGguaW11bChRZSxmbil8MDt2YXIgSWE9KFUrKEU9RStNYXRoLmltdWwobmUsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSx0bil8MCkrTWF0aC5pbXVsKGxlLFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKGxlLHRu'@; put 'KXwwKSsobT4+PjEzKXwwKSsoSWE+Pj4yNil8MCxJYSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsZW4pLG09KG09TWF0aC5pbXVsKE5lLHNuKSkrTWF0aC5pbXVsKHV0LGVuKXwwLEE9TWF0aC5pbXVsKHV0LHNuKSxFPUUrTWF0aC5pbXVsKHJ0LGRuKXwwLG09KG09bStNYXRoLmltdWwocnQs'@; put 'ZnQpfDApK01hdGguaW11bChLZSxkbil8MCxBPUErTWF0aC5pbXVsKEtlLGZ0KXwwLEU9RStNYXRoLmltdWwoeXQsWnQpfDAsbT0obT1tK01hdGguaW11bCh5dCxrdCl8MCkrTWF0aC5pbXVsKE10LFp0KXwwLEE9QStNYXRoLmltdWwoTXQsa3QpfDAsRT1FK01hdGguaW11bChudCxvdCl8MCxt'@; put 'PShtPW0rTWF0aC5pbXVsKG50LHp0KXwwKStNYXRoLmltdWwoSmUsb3QpfDAsQT1BK01hdGguaW11bChKZSx6dCl8MCxFPUUrTWF0aC5pbXVsKERlLFdlKXwwLG09KG09bStNYXRoLmltdWwoRGUsQXQpfDApK01hdGguaW11bChrZSxXZSl8MCxBPUErTWF0aC5pbXVsKGtlLEF0KXwwLEU9RStN'@; put 'YXRoLmltdWwoUmUsaHQpfDAsbT0obT1tK01hdGguaW11bChSZSxFdCl8MCkrTWF0aC5pbXVsKEllLGh0KXwwLEE9QStNYXRoLmltdWwoSWUsRXQpfDAsRT1FK01hdGguaW11bChqZSxhbil8MCxtPShtPW0rTWF0aC5pbXVsKGplLGp0KXwwKStNYXRoLmltdWwoQWUsYW4pfDAsQT1BK01hdGgu'@; put 'aW11bChBZSxqdCl8MCxFPUUrTWF0aC5pbXVsKHhlLGNuKXwwLG09KG09bStNYXRoLmltdWwoeGUsZm4pfDApK01hdGguaW11bCh2ZSxjbil8MCxBPUErTWF0aC5pbXVsKHZlLGZuKXwwO3ZhciBQcj0oVSsoRT1FK01hdGguaW11bChaZSxRdCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5p'@; put 'bXVsKFplLHRuKXwwKStNYXRoLmltdWwoUWUsUXQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwoUWUsdG4pfDApKyhtPj4+MTMpfDApKyhQcj4+PjI2KXwwLFByJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxkbiksbT0obT1NYXRoLmltdWwoTmUsZnQpKStNYXRoLmltdWwodXQsZG4p'@; put 'fDAsQT1NYXRoLmltdWwodXQsZnQpLEU9RStNYXRoLmltdWwocnQsWnQpfDAsbT0obT1tK01hdGguaW11bChydCxrdCl8MCkrTWF0aC5pbXVsKEtlLFp0KXwwLEE9QStNYXRoLmltdWwoS2Usa3QpfDAsRT1FK01hdGguaW11bCh5dCxvdCl8MCxtPShtPW0rTWF0aC5pbXVsKHl0LHp0KXwwKStN'@; put 'YXRoLmltdWwoTXQsb3QpfDAsQT1BK01hdGguaW11bChNdCx6dCl8MCxFPUUrTWF0aC5pbXVsKG50LFdlKXwwLG09KG09bStNYXRoLmltdWwobnQsQXQpfDApK01hdGguaW11bChKZSxXZSl8MCxBPUErTWF0aC5pbXVsKEplLEF0KXwwLEU9RStNYXRoLmltdWwoRGUsaHQpfDAsbT0obT1tK01h'@; put 'dGguaW11bChEZSxFdCl8MCkrTWF0aC5pbXVsKGtlLGh0KXwwLEE9QStNYXRoLmltdWwoa2UsRXQpfDAsRT1FK01hdGguaW11bChSZSxhbil8MCxtPShtPW0rTWF0aC5pbXVsKFJlLGp0KXwwKStNYXRoLmltdWwoSWUsYW4pfDAsQT1BK01hdGguaW11bChJZSxqdCl8MCxFPUUrTWF0aC5pbXVs'@; put 'KGplLGNuKXwwLG09KG09bStNYXRoLmltdWwoamUsZm4pfDApK01hdGguaW11bChBZSxjbil8MCxBPUErTWF0aC5pbXVsKEFlLGZuKXwwO3ZhciBZaT0oVSsoRT1FK01hdGguaW11bCh4ZSxRdCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKHhlLHRuKXwwKStNYXRoLmltdWwodmUs'@; put 'UXQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwodmUsdG4pfDApKyhtPj4+MTMpfDApKyhZaT4+PjI2KXwwLFlpJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxadCksbT0obT1NYXRoLmltdWwoTmUsa3QpKStNYXRoLmltdWwodXQsWnQpfDAsQT1NYXRoLmltdWwodXQsa3QpLEU9RStN'@; put 'YXRoLmltdWwocnQsb3QpfDAsbT0obT1tK01hdGguaW11bChydCx6dCl8MCkrTWF0aC5pbXVsKEtlLG90KXwwLEE9QStNYXRoLmltdWwoS2UsenQpfDAsRT1FK01hdGguaW11bCh5dCxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKHl0LEF0KXwwKStNYXRoLmltdWwoTXQsV2UpfDAsQT1BK01hdGgu'@; put 'aW11bChNdCxBdCl8MCxFPUUrTWF0aC5pbXVsKG50LGh0KXwwLG09KG09bStNYXRoLmltdWwobnQsRXQpfDApK01hdGguaW11bChKZSxodCl8MCxBPUErTWF0aC5pbXVsKEplLEV0KXwwLEU9RStNYXRoLmltdWwoRGUsYW4pfDAsbT0obT1tK01hdGguaW11bChEZSxqdCl8MCkrTWF0aC5pbXVs'@; put 'KGtlLGFuKXwwLEE9QStNYXRoLmltdWwoa2UsanQpfDAsRT1FK01hdGguaW11bChSZSxjbil8MCxtPShtPW0rTWF0aC5pbXVsKFJlLGZuKXwwKStNYXRoLmltdWwoSWUsY24pfDAsQT1BK01hdGguaW11bChJZSxmbil8MDt2YXIgZmE9KFUrKEU9RStNYXRoLmltdWwoamUsUXQpfDApfDApKygo'@; put 'ODE5MSYobT0obT1tK01hdGguaW11bChqZSx0bil8MCkrTWF0aC5pbXVsKEFlLFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKEFlLHRuKXwwKSsobT4+PjEzKXwwKSsoZmE+Pj4yNil8MCxmYSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsb3QpLG09KG09TWF0aC5pbXVsKE5lLHp0'@; put 'KSkrTWF0aC5pbXVsKHV0LG90KXwwLEE9TWF0aC5pbXVsKHV0LHp0KSxFPUUrTWF0aC5pbXVsKHJ0LFdlKXwwLG09KG09bStNYXRoLmltdWwocnQsQXQpfDApK01hdGguaW11bChLZSxXZSl8MCxBPUErTWF0aC5pbXVsKEtlLEF0KXwwLEU9RStNYXRoLmltdWwoeXQsaHQpfDAsbT0obT1tK01h'@; put 'dGguaW11bCh5dCxFdCl8MCkrTWF0aC5pbXVsKE10LGh0KXwwLEE9QStNYXRoLmltdWwoTXQsRXQpfDAsRT1FK01hdGguaW11bChudCxhbil8MCxtPShtPW0rTWF0aC5pbXVsKG50LGp0KXwwKStNYXRoLmltdWwoSmUsYW4pfDAsQT1BK01hdGguaW11bChKZSxqdCl8MCxFPUUrTWF0aC5pbXVs'@; put 'KERlLGNuKXwwLG09KG09bStNYXRoLmltdWwoRGUsZm4pfDApK01hdGguaW11bChrZSxjbil8MCxBPUErTWF0aC5pbXVsKGtlLGZuKXwwO3ZhciBucj0oVSsoRT1FK01hdGguaW11bChSZSxRdCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKFJlLHRuKXwwKStNYXRoLmltdWwoSWUs'@; put 'UXQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwoSWUsdG4pfDApKyhtPj4+MTMpfDApKyhucj4+PjI2KXwwLG5yJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxXZSksbT0obT1NYXRoLmltdWwoTmUsQXQpKStNYXRoLmltdWwodXQsV2UpfDAsQT1NYXRoLmltdWwodXQsQXQpLEU9RStN'@; put 'YXRoLmltdWwocnQsaHQpfDAsbT0obT1tK01hdGguaW11bChydCxFdCl8MCkrTWF0aC5pbXVsKEtlLGh0KXwwLEE9QStNYXRoLmltdWwoS2UsRXQpfDAsRT1FK01hdGguaW11bCh5dCxhbil8MCxtPShtPW0rTWF0aC5pbXVsKHl0LGp0KXwwKStNYXRoLmltdWwoTXQsYW4pfDAsQT1BK01hdGgu'@; put 'aW11bChNdCxqdCl8MCxFPUUrTWF0aC5pbXVsKG50LGNuKXwwLG09KG09bStNYXRoLmltdWwobnQsZm4pfDApK01hdGguaW11bChKZSxjbil8MCxBPUErTWF0aC5pbXVsKEplLGZuKXwwO3ZhciBvYT0oVSsoRT1FK01hdGguaW11bChEZSxRdCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5p'@; put 'bXVsKERlLHRuKXwwKStNYXRoLmltdWwoa2UsUXQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwoa2UsdG4pfDApKyhtPj4+MTMpfDApKyhvYT4+PjI2KXwwLG9hJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxodCksbT0obT1NYXRoLmltdWwoTmUsRXQpKStNYXRoLmltdWwodXQsaHQp'@; put 'fDAsQT1NYXRoLmltdWwodXQsRXQpLEU9RStNYXRoLmltdWwocnQsYW4pfDAsbT0obT1tK01hdGguaW11bChydCxqdCl8MCkrTWF0aC5pbXVsKEtlLGFuKXwwLEE9QStNYXRoLmltdWwoS2UsanQpfDAsRT1FK01hdGguaW11bCh5dCxjbil8MCxtPShtPW0rTWF0aC5pbXVsKHl0LGZuKXwwKStN'@; put 'YXRoLmltdWwoTXQsY24pfDAsQT1BK01hdGguaW11bChNdCxmbil8MDt2YXIgX2E9KFUrKEU9RStNYXRoLmltdWwobnQsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChudCx0bil8MCkrTWF0aC5pbXVsKEplLFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKEplLHRu'@; put 'KXwwKSsobT4+PjEzKXwwKSsoX2E+Pj4yNil8MCxfYSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsYW4pLG09KG09TWF0aC5pbXVsKE5lLGp0KSkrTWF0aC5pbXVsKHV0LGFuKXwwLEE9TWF0aC5pbXVsKHV0LGp0KSxFPUUrTWF0aC5pbXVsKHJ0LGNuKXwwLG09KG09bStNYXRoLmltdWwocnQs'@; put 'Zm4pfDApK01hdGguaW11bChLZSxjbil8MCxBPUErTWF0aC5pbXVsKEtlLGZuKXwwO3ZhciBPYT0oVSsoRT1FK01hdGguaW11bCh5dCxRdCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKHl0LHRuKXwwKStNYXRoLmltdWwoTXQsUXQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmlt'@; put 'dWwoTXQsdG4pfDApKyhtPj4+MTMpfDApKyhPYT4+PjI2KXwwLE9hJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxjbiksbT0obT1NYXRoLmltdWwoTmUsZm4pKStNYXRoLmltdWwodXQsY24pfDAsQT1NYXRoLmltdWwodXQsZm4pO3ZhciBOYT0oVSsoRT1FK01hdGguaW11bChydCxRdCl8MCl8'@; put 'MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKHJ0LHRuKXwwKStNYXRoLmltdWwoS2UsUXQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwoS2UsdG4pfDApKyhtPj4+MTMpfDApKyhOYT4+PjI2KXwwLE5hJj02NzEwODg2Mzt2YXIgZWk9KFUrKEU9TWF0aC5pbXVsKE5lLFF0KSl8MCkr'@; put 'KCg4MTkxJihtPShtPU1hdGguaW11bChOZSx0bikpK01hdGguaW11bCh1dCxRdCl8MCkpPDwxMyl8MDtyZXR1cm4gVT0oKEE9TWF0aC5pbXVsKHV0LHRuKSkrKG0+Pj4xMyl8MCkrKGVpPj4+MjYpfDAsZWkmPTY3MTA4ODYzLFZbMF09Y2EsVlsxXT14aSxWWzJdPXlyLFZbM109R24sVls0XT1L'@; put 'aSxWWzVdPUpyLFZbNl09UXIsVls3XT1OaSxWWzhdPUhpLFZbOV09SWEsVlsxMF09UHIsVlsxMV09WWksVlsxMl09ZmEsVlsxM109bnIsVlsxNF09b2EsVlsxNV09X2EsVlsxNl09T2EsVlsxN109TmEsVlsxOF09ZWksMCE9PVUmJihWWzE5XT1VLHgubGVuZ3RoKyspLHh9O2Z1bmN0aW9uIFEo'@; put 'eixnLHkpe3JldHVybihuZXcgcSkubXVscCh6LGcseSl9ZnVuY3Rpb24gcSh6LGcpe3RoaXMueD16LHRoaXMueT1nfU1hdGguaW11bHx8KFo9Vyksdy5wcm90b3R5cGUubXVsVG89ZnVuY3Rpb24oZyx5KXt2YXIgeCxDPXRoaXMubGVuZ3RoK2cubGVuZ3RoO3JldHVybiB4PTEwPT09dGhpcy5s'@; put 'ZW5ndGgmJjEwPT09Zy5sZW5ndGg/Wih0aGlzLGcseSk6Qzw2Mz9XKHRoaXMsZyx5KTpDPDEwMjQ/ZnVuY3Rpb24gWCh6LGcseSl7eS5uZWdhdGl2ZT1nLm5lZ2F0aXZlXnoubmVnYXRpdmUseS5sZW5ndGg9ei5sZW5ndGgrZy5sZW5ndGg7Zm9yKHZhciB4PTAsQz0wLFQ9MDtUPHkubGVuZ3Ro'@; put 'LTE7VCsrKXt2YXIgVj1DO0M9MDtmb3IodmFyIFU9NjcxMDg4NjMmeCxFPU1hdGgubWluKFQsZy5sZW5ndGgtMSksbT1NYXRoLm1heCgwLFQtei5sZW5ndGgrMSk7bTw9RTttKyspe3ZhciBsZT0oMHx6LndvcmRzW1QtbV0pKigwfGcud29yZHNbbV0pLHdlPTY3MTA4ODYzJmxlO1U9NjcxMDg4'@; put 'NjMmKHdlPXdlK1V8MCksQys9KFY9KFY9VisobGUvNjcxMDg4NjR8MCl8MCkrKHdlPj4+MjYpfDApPj4+MjYsViY9NjcxMDg4NjN9eS53b3Jkc1tUXT1VLHg9VixWPUN9cmV0dXJuIDAhPT14P3kud29yZHNbVF09eDp5Lmxlbmd0aC0tLHkuc3RyaXAoKX0odGhpcyxnLHkpOlEodGhpcyxnLHkp'@; put 'LHh9LHEucHJvdG90eXBlLm1ha2VSQlQ9ZnVuY3Rpb24oZyl7Zm9yKHZhciB5PW5ldyBBcnJheShnKSx4PXcucHJvdG90eXBlLl9jb3VudEJpdHMoZyktMSxDPTA7QzxnO0MrKyl5W0NdPXRoaXMucmV2QmluKEMseCxnKTtyZXR1cm4geX0scS5wcm90b3R5cGUucmV2QmluPWZ1bmN0aW9uKGcs'@; put 'eSx4KXtpZigwPT09Z3x8Zz09PXgtMSlyZXR1cm4gZztmb3IodmFyIEM9MCxUPTA7VDx5O1QrKylDfD0oMSZnKTw8eS1ULTEsZz4+PTE7cmV0dXJuIEN9LHEucHJvdG90eXBlLnBlcm11dGU9ZnVuY3Rpb24oZyx5LHgsQyxULFYpe2Zvcih2YXIgVT0wO1U8VjtVKyspQ1tVXT15W2dbVV1dLFRb'@; put 'VV09eFtnW1VdXX0scS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKGcseSx4LEMsVCxWKXt0aGlzLnBlcm11dGUoVixnLHkseCxDLFQpO2Zvcih2YXIgVT0xO1U8VDtVPDw9MSlmb3IodmFyIEU9VTw8MSxtPU1hdGguY29zKDIqTWF0aC5QSS9FKSxBPU1hdGguc2luKDIqTWF0aC5QSS9F'@; put 'KSxhZT0wO2FlPFQ7YWUrPUUpZm9yKHZhciBuZT1tLGxlPUEsd2U9MDt3ZTxVO3dlKyspe3ZhciBaZT14W2FlK3dlXSxRZT1DW2FlK3dlXSxhdD14W2FlK3dlK1VdLHhlPUNbYWUrd2UrVV0sdmU9bmUqYXQtbGUqeGU7eGU9bmUqeGUrbGUqYXQseFthZSt3ZV09WmUrKGF0PXZlKSxDW2FlK3dl'@; put 'XT1RZSt4ZSx4W2FlK3dlK1VdPVplLWF0LENbYWUrd2UrVV09UWUteGUsd2UhPT1FJiYodmU9bSpuZS1BKmxlLGxlPW0qbGUrQSpuZSxuZT12ZSl9fSxxLnByb3RvdHlwZS5ndWVzc0xlbjEzYj1mdW5jdGlvbihnLHkpe3ZhciB4PTF8TWF0aC5tYXgoeSxnKSxDPTEmeCxUPTA7Zm9yKHg9eC8y'@; put 'fDA7eDt4Pj4+PTEpVCsrO3JldHVybiAxPDxUKzErQ30scS5wcm90b3R5cGUuY29uanVnYXRlPWZ1bmN0aW9uKGcseSx4KXtpZighKHg8PTEpKWZvcih2YXIgQz0wO0M8eC8yO0MrKyl7dmFyIFQ9Z1tDXTtnW0NdPWdbeC1DLTFdLGdbeC1DLTFdPVQsVD15W0NdLHlbQ109LXlbeC1DLTFdLHlb'@; put 'eC1DLTFdPS1UfX0scS5wcm90b3R5cGUubm9ybWFsaXplMTNiPWZ1bmN0aW9uKGcseSl7Zm9yKHZhciB4PTAsQz0wO0M8eS8yO0MrKyl7dmFyIFQ9ODE5MipNYXRoLnJvdW5kKGdbMipDKzFdL3kpK01hdGgucm91bmQoZ1syKkNdL3kpK3g7Z1tDXT02NzEwODg2MyZULHg9VDw2NzEwODg2ND8w'@; put 'OlQvNjcxMDg4NjR8MH1yZXR1cm4gZ30scS5wcm90b3R5cGUuY29udmVydDEzYj1mdW5jdGlvbihnLHkseCxDKXtmb3IodmFyIFQ9MCxWPTA7Vjx5O1YrKyl4WzIqVl09ODE5MSYoVCs9MHxnW1ZdKSx4WzIqVisxXT04MTkxJihUPj4+PTEzKSxUPj4+PTEzO2ZvcihWPTIqeTtWPEM7KytWKXhb'@; put 'Vl09MDtwKDA9PT1UKSxwKCEoLTgxOTImVCkpfSxxLnByb3RvdHlwZS5zdHViPWZ1bmN0aW9uKGcpe2Zvcih2YXIgeT1uZXcgQXJyYXkoZykseD0wO3g8Zzt4KyspeVt4XT0wO3JldHVybiB5fSxxLnByb3RvdHlwZS5tdWxwPWZ1bmN0aW9uKGcseSx4KXt2YXIgQz0yKnRoaXMuZ3Vlc3NMZW4x'@; put 'M2IoZy5sZW5ndGgseS5sZW5ndGgpLFQ9dGhpcy5tYWtlUkJUKEMpLFY9dGhpcy5zdHViKEMpLFU9bmV3IEFycmF5KEMpLEU9bmV3IEFycmF5KEMpLG09bmV3IEFycmF5KEMpLEE9bmV3IEFycmF5KEMpLGFlPW5ldyBBcnJheShDKSxuZT1uZXcgQXJyYXkoQyksbGU9eC53b3JkcztsZS5sZW5n'@; put 'dGg9Qyx0aGlzLmNvbnZlcnQxM2IoZy53b3JkcyxnLmxlbmd0aCxVLEMpLHRoaXMuY29udmVydDEzYih5LndvcmRzLHkubGVuZ3RoLEEsQyksdGhpcy50cmFuc2Zvcm0oVSxWLEUsbSxDLFQpLHRoaXMudHJhbnNmb3JtKEEsVixhZSxuZSxDLFQpO2Zvcih2YXIgd2U9MDt3ZTxDO3dlKyspe3Zh'@; put 'ciBaZT1FW3dlXSphZVt3ZV0tbVt3ZV0qbmVbd2VdO21bd2VdPUVbd2VdKm5lW3dlXSttW3dlXSphZVt3ZV0sRVt3ZV09WmV9cmV0dXJuIHRoaXMuY29uanVnYXRlKEUsbSxDKSx0aGlzLnRyYW5zZm9ybShFLG0sbGUsVixDLFQpLHRoaXMuY29uanVnYXRlKGxlLFYsQyksdGhpcy5ub3JtYWxp'@; put 'emUxM2IobGUsQykseC5uZWdhdGl2ZT1nLm5lZ2F0aXZlXnkubmVnYXRpdmUseC5sZW5ndGg9Zy5sZW5ndGgreS5sZW5ndGgseC5zdHJpcCgpfSx3LnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oZyl7dmFyIHk9bmV3IHcobnVsbCk7cmV0dXJuIHkud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3Ro'@; put 'K2cubGVuZ3RoKSx0aGlzLm11bFRvKGcseSl9LHcucHJvdG90eXBlLm11bGY9ZnVuY3Rpb24oZyl7dmFyIHk9bmV3IHcobnVsbCk7cmV0dXJuIHkud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK2cubGVuZ3RoKSxRKHRoaXMsZyx5KX0sdy5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihnKXty'@; put 'ZXR1cm4gdGhpcy5jbG9uZSgpLm11bFRvKGcsdGhpcyl9LHcucHJvdG90eXBlLmltdWxuPWZ1bmN0aW9uKGcpe3AoIm51bWJlciI9PXR5cGVvZiBnKSxwKGc8NjcxMDg4NjQpO2Zvcih2YXIgeT0wLHg9MDt4PHRoaXMubGVuZ3RoO3grKyl7dmFyIEM9KDB8dGhpcy53b3Jkc1t4XSkqZyxUPSg2'@; put 'NzEwODg2MyZDKSsoNjcxMDg4NjMmeSk7eT4+PTI2LHkrPUMvNjcxMDg4NjR8MCx5Kz1UPj4+MjYsdGhpcy53b3Jkc1t4XT02NzEwODg2MyZUfXJldHVybiAwIT09eSYmKHRoaXMud29yZHNbeF09eSx0aGlzLmxlbmd0aCsrKSx0aGlzfSx3LnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKGcpe3Jl'@; put 'dHVybiB0aGlzLmNsb25lKCkuaW11bG4oZyl9LHcucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sdy5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sdy5wcm90b3R5cGUucG93PWZ1bmN0aW9uKGcp'@; put 'e3ZhciB5PWZ1bmN0aW9uIEIoeil7Zm9yKHZhciBnPW5ldyBBcnJheSh6LmJpdExlbmd0aCgpKSx5PTA7eTxnLmxlbmd0aDt5Kyspe3ZhciBDPXklMjY7Z1t5XT0oei53b3Jkc1t5LzI2fDBdJjE8PEMpPj4+Q31yZXR1cm4gZ30oZyk7aWYoMD09PXkubGVuZ3RoKXJldHVybiBuZXcgdygxKTtm'@; put 'b3IodmFyIHg9dGhpcyxDPTA7Qzx5Lmxlbmd0aCYmMD09PXlbQ107QysrLHg9eC5zcXIoKSk7aWYoKytDPHkubGVuZ3RoKWZvcih2YXIgVD14LnNxcigpO0M8eS5sZW5ndGg7QysrLFQ9VC5zcXIoKSkwIT09eVtDXSYmKHg9eC5tdWwoVCkpO3JldHVybiB4fSx3LnByb3RvdHlwZS5pdXNobG49'@; put 'ZnVuY3Rpb24oZyl7cCgibnVtYmVyIj09dHlwZW9mIGcmJmc+PTApO3ZhciBULHk9ZyUyNix4PShnLXkpLzI2LEM9NjcxMDg4NjM+Pj4yNi15PDwyNi15O2lmKDAhPT15KXt2YXIgVj0wO2ZvcihUPTA7VDx0aGlzLmxlbmd0aDtUKyspe3ZhciBVPXRoaXMud29yZHNbVF0mQzt0aGlzLndvcmRz'@; put 'W1RdPSgwfHRoaXMud29yZHNbVF0pLVU8PHl8VixWPVU+Pj4yNi15fVYmJih0aGlzLndvcmRzW1RdPVYsdGhpcy5sZW5ndGgrKyl9aWYoMCE9PXgpe2ZvcihUPXRoaXMubGVuZ3RoLTE7VD49MDtULS0pdGhpcy53b3Jkc1tUK3hdPXRoaXMud29yZHNbVF07Zm9yKFQ9MDtUPHg7VCsrKXRoaXMu'@; put 'd29yZHNbVF09MDt0aGlzLmxlbmd0aCs9eH1yZXR1cm4gdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5pc2hsbj1mdW5jdGlvbihnKXtyZXR1cm4gcCgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNobG4oZyl9LHcucHJvdG90eXBlLml1c2hybj1mdW5jdGlvbihnLHkseCl7dmFyIEM7cCgi'@; put 'bnVtYmVyIj09dHlwZW9mIGcmJmc+PTApLEM9eT8oeS15JTI2KS8yNjowO3ZhciBUPWclMjYsVj1NYXRoLm1pbigoZy1UKS8yNix0aGlzLmxlbmd0aCksVT02NzEwODg2M142NzEwODg2Mz4+PlQ8PFQsRT14O2lmKEMtPVYsQz1NYXRoLm1heCgwLEMpLEUpe2Zvcih2YXIgbT0wO208VjttKysp'@; put 'RS53b3Jkc1ttXT10aGlzLndvcmRzW21dO0UubGVuZ3RoPVZ9aWYoMCE9PVYpaWYodGhpcy5sZW5ndGg+Vilmb3IodGhpcy5sZW5ndGgtPVYsbT0wO208dGhpcy5sZW5ndGg7bSsrKXRoaXMud29yZHNbbV09dGhpcy53b3Jkc1ttK1ZdO2Vsc2UgdGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3Ro'@; put 'PTE7dmFyIEE9MDtmb3IobT10aGlzLmxlbmd0aC0xO20+PTAmJigwIT09QXx8bT49Qyk7bS0tKXt2YXIgYWU9MHx0aGlzLndvcmRzW21dO3RoaXMud29yZHNbbV09QTw8MjYtVHxhZT4+PlQsQT1hZSZVfXJldHVybiBFJiYwIT09QSYmKEUud29yZHNbRS5sZW5ndGgrK109QSksMD09PXRoaXMu'@; put 'bGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24oZyx5LHgpe3JldHVybiBwKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hybihnLHkseCl9LHcucHJvdG90eXBlLnNobG49ZnVuY3Rpb24oZyl7'@; put 'cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbihnKX0sdy5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4oZyl9LHcucHJvdG90eXBlLnNocm49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybihnKX0sdy5wcm90b3R5cGUudXNo'@; put 'cm49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4oZyl9LHcucHJvdG90eXBlLnRlc3RuPWZ1bmN0aW9uKGcpe3AoIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgeT1nJTI2LHg9KGcteSkvMjY7cmV0dXJuISh0aGlzLmxlbmd0aDw9eHx8ISh0aGlzLndvcmRzW3hd'@; put 'JjE8PHkpKX0sdy5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKGcpe3AoIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgeT1nJTI2LHg9KGcteSkvMjY7cmV0dXJuIHAoMD09PXRoaXMubmVnYXRpdmUsImltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUgbnVtYmVycyIpLHRoaXMu'@; put 'bGVuZ3RoPD14P3RoaXM6KDAhPT15JiZ4KyssdGhpcy5sZW5ndGg9TWF0aC5taW4oeCx0aGlzLmxlbmd0aCksMCE9PXkmJih0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj02NzEwODg2M142NzEwODg2Mz4+Pnk8PHkpLHRoaXMuc3RyaXAoKSl9LHcucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9u'@; put 'KGcpe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKGcpfSx3LnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbihnKXtyZXR1cm4gcCgibnVtYmVyIj09dHlwZW9mIGcpLHAoZzw2NzEwODg2NCksZzwwP3RoaXMuaXN1Ym4oLWcpOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8'@; put 'dGhpcy53b3Jkc1swXSk8Zz8odGhpcy53b3Jkc1swXT1nLSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oZyksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKGcpfSx3LnByb3RvdHlwZS5faWFkZG49ZnVu'@; put 'Y3Rpb24oZyl7dGhpcy53b3Jkc1swXSs9Zztmb3IodmFyIHk9MDt5PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3ldPj02NzEwODg2NDt5KyspdGhpcy53b3Jkc1t5XS09NjcxMDg4NjQseT09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1t5KzFdPTE6dGhpcy53b3Jkc1t5KzFdKys7cmV0dXJu'@; put 'IHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLHkrMSksdGhpc30sdy5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24oZyl7aWYocCgibnVtYmVyIj09dHlwZW9mIGcpLHAoZzw2NzEwODg2NCksZzwwKXJldHVybiB0aGlzLmlhZGRuKC1nKTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1'@; put 'cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oZyksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09ZywxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIg'@; put 'eT0wO3k8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbeV08MDt5KyspdGhpcy53b3Jkc1t5XSs9NjcxMDg4NjQsdGhpcy53b3Jkc1t5KzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbihnKX0sdy5w'@; put 'cm90b3R5cGUuc3Vibj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKGcpfSx3LnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSx3LnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMo'@; put 'KX0sdy5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKGcseSx4KXt2YXIgVDt0aGlzLl9leHBhbmQoZy5sZW5ndGgreCk7dmFyIFYsVT0wO2ZvcihUPTA7VDxnLmxlbmd0aDtUKyspe1Y9KDB8dGhpcy53b3Jkc1tUK3hdKStVO3ZhciBFPSgwfGcud29yZHNbVF0pKnk7VT0oKFYtPTY3'@; put 'MTA4ODYzJkUpPj4yNiktKEUvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1tUK3hdPTY3MTA4ODYzJlZ9Zm9yKDtUPHRoaXMubGVuZ3RoLXg7VCsrKVU9KFY9KDB8dGhpcy53b3Jkc1tUK3hdKStVKT4+MjYsdGhpcy53b3Jkc1tUK3hdPTY3MTA4ODYzJlY7aWYoMD09PVUpcmV0dXJuIHRoaXMuc3Ry'@; put 'aXAoKTtmb3IocCgtMT09PVUpLFU9MCxUPTA7VDx0aGlzLmxlbmd0aDtUKyspVT0oVj0tKDB8dGhpcy53b3Jkc1tUXSkrVSk+PjI2LHRoaXMud29yZHNbVF09NjcxMDg4NjMmVjtyZXR1cm4gdGhpcy5uZWdhdGl2ZT0xLHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuX3dvcmREaXY9ZnVuY3Rp'@; put 'b24oZyx5KXt2YXIgeCxDPXRoaXMuY2xvbmUoKSxUPWcsVj0wfFQud29yZHNbVC5sZW5ndGgtMV07MCE9KHg9MjYtdGhpcy5fY291bnRCaXRzKFYpKSYmKFQ9VC51c2hsbih4KSxDLml1c2hsbih4KSxWPTB8VC53b3Jkc1tULmxlbmd0aC0xXSk7dmFyIG0sRT1DLmxlbmd0aC1ULmxlbmd0aDtp'@; put 'ZigibW9kIiE9PXkpeyhtPW5ldyB3KG51bGwpKS5sZW5ndGg9RSsxLG0ud29yZHM9bmV3IEFycmF5KG0ubGVuZ3RoKTtmb3IodmFyIEE9MDtBPG0ubGVuZ3RoO0ErKyltLndvcmRzW0FdPTB9dmFyIGFlPUMuY2xvbmUoKS5faXNobG5zdWJtdWwoVCwxLEUpOzA9PT1hZS5uZWdhdGl2ZSYmKEM9'@; put 'YWUsbSYmKG0ud29yZHNbRV09MSkpO2Zvcih2YXIgbmU9RS0xO25lPj0wO25lLS0pe3ZhciBsZT02NzEwODg2NCooMHxDLndvcmRzW1QubGVuZ3RoK25lXSkrKDB8Qy53b3Jkc1tULmxlbmd0aCtuZS0xXSk7Zm9yKGxlPU1hdGgubWluKGxlL1Z8MCw2NzEwODg2MyksQy5faXNobG5zdWJtdWwo'@; put 'VCxsZSxuZSk7MCE9PUMubmVnYXRpdmU7KWxlLS0sQy5uZWdhdGl2ZT0wLEMuX2lzaGxuc3VibXVsKFQsMSxuZSksQy5pc1plcm8oKXx8KEMubmVnYXRpdmVePTEpO20mJihtLndvcmRzW25lXT1sZSl9cmV0dXJuIG0mJm0uc3RyaXAoKSxDLnN0cmlwKCksImRpdiIhPT15JiYwIT09eCYmQy5p'@; put 'dXNocm4oeCkse2RpdjptfHxudWxsLG1vZDpDfX0sdy5wcm90b3R5cGUuZGl2bW9kPWZ1bmN0aW9uKGcseSx4KXtyZXR1cm4gcCghZy5pc1plcm8oKSksdGhpcy5pc1plcm8oKT97ZGl2Om5ldyB3KDApLG1vZDpuZXcgdygwKX06MCE9PXRoaXMubmVnYXRpdmUmJjA9PT1nLm5lZ2F0aXZlPyhW'@; put 'PXRoaXMubmVnKCkuZGl2bW9kKGcseSksIm1vZCIhPT15JiYoQz1WLmRpdi5uZWcoKSksImRpdiIhPT15JiYoVD1WLm1vZC5uZWcoKSx4JiYwIT09VC5uZWdhdGl2ZSYmVC5pYWRkKGcpKSx7ZGl2OkMsbW9kOlR9KTowPT09dGhpcy5uZWdhdGl2ZSYmMCE9PWcubmVnYXRpdmU/KFY9dGhpcy5k'@; put 'aXZtb2QoZy5uZWcoKSx5KSwibW9kIiE9PXkmJihDPVYuZGl2Lm5lZygpKSx7ZGl2OkMsbW9kOlYubW9kfSk6dGhpcy5uZWdhdGl2ZSZnLm5lZ2F0aXZlPyhWPXRoaXMubmVnKCkuZGl2bW9kKGcubmVnKCkseSksImRpdiIhPT15JiYoVD1WLm1vZC5uZWcoKSx4JiYwIT09VC5uZWdhdGl2ZSYm'@; put 'VC5pc3ViKGcpKSx7ZGl2OlYuZGl2LG1vZDpUfSk6Zy5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKGcpPDA/e2RpdjpuZXcgdygwKSxtb2Q6dGhpc306MT09PWcubGVuZ3RoPyJkaXYiPT09eT97ZGl2OnRoaXMuZGl2bihnLndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT15P3tkaXY6'@; put 'bnVsbCxtb2Q6bmV3IHcodGhpcy5tb2RuKGcud29yZHNbMF0pKX06e2Rpdjp0aGlzLmRpdm4oZy53b3Jkc1swXSksbW9kOm5ldyB3KHRoaXMubW9kbihnLndvcmRzWzBdKSl9OnRoaXMuX3dvcmREaXYoZyx5KTt2YXIgQyxULFZ9LHcucHJvdG90eXBlLmRpdj1mdW5jdGlvbihnKXtyZXR1cm4g'@; put 'dGhpcy5kaXZtb2QoZywiZGl2IiwhMSkuZGl2fSx3LnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuZGl2bW9kKGcsIm1vZCIsITEpLm1vZH0sdy5wcm90b3R5cGUudW1vZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5kaXZtb2QoZywibW9kIiwhMCkubW9kfSx3LnByb3Rv'@; put 'dHlwZS5kaXZSb3VuZD1mdW5jdGlvbihnKXt2YXIgeT10aGlzLmRpdm1vZChnKTtpZih5Lm1vZC5pc1plcm8oKSlyZXR1cm4geS5kaXY7dmFyIHg9MCE9PXkuZGl2Lm5lZ2F0aXZlP3kubW9kLmlzdWIoZyk6eS5tb2QsQz1nLnVzaHJuKDEpLFQ9Zy5hbmRsbigxKSxWPXguY21wKEMpO3JldHVy'@; put 'biBWPDB8fDE9PT1UJiYwPT09Vj95LmRpdjowIT09eS5kaXYubmVnYXRpdmU/eS5kaXYuaXN1Ym4oMSk6eS5kaXYuaWFkZG4oMSl9LHcucHJvdG90eXBlLm1vZG49ZnVuY3Rpb24oZyl7cChnPD02NzEwODg2Myk7Zm9yKHZhciB5PSgxPDwyNiklZyx4PTAsQz10aGlzLmxlbmd0aC0xO0M+PTA7'@; put 'Qy0tKXg9KHkqeCsoMHx0aGlzLndvcmRzW0NdKSklZztyZXR1cm4geH0sdy5wcm90b3R5cGUuaWRpdm49ZnVuY3Rpb24oZyl7cChnPD02NzEwODg2Myk7Zm9yKHZhciB5PTAseD10aGlzLmxlbmd0aC0xO3g+PTA7eC0tKXt2YXIgQz0oMHx0aGlzLndvcmRzW3hdKSs2NzEwODg2NCp5O3RoaXMu'@; put 'd29yZHNbeF09Qy9nfDAseT1DJWd9cmV0dXJuIHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKGcpfSx3LnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKGcpe3AoMD09PWcubmVnYXRpdmUpLHAoIWcuaXNaZXJvKCkpO3Zh'@; put 'ciB5PXRoaXMseD1nLmNsb25lKCk7eT0wIT09eS5uZWdhdGl2ZT95LnVtb2QoZyk6eS5jbG9uZSgpO2Zvcih2YXIgQz1uZXcgdygxKSxUPW5ldyB3KDApLFY9bmV3IHcoMCksVT1uZXcgdygxKSxFPTA7eS5pc0V2ZW4oKSYmeC5pc0V2ZW4oKTspeS5pdXNocm4oMSkseC5pdXNocm4oMSksKytF'@; put 'O2Zvcih2YXIgbT14LmNsb25lKCksQT15LmNsb25lKCk7IXkuaXNaZXJvKCk7KXtmb3IodmFyIGFlPTAsbmU9MTshKHkud29yZHNbMF0mbmUpJiZhZTwyNjsrK2FlLG5lPDw9MSk7aWYoYWU+MClmb3IoeS5pdXNocm4oYWUpO2FlLS0gPjA7KShDLmlzT2RkKCl8fFQuaXNPZGQoKSkmJihDLmlh'@; put 'ZGQobSksVC5pc3ViKEEpKSxDLml1c2hybigxKSxULml1c2hybigxKTtmb3IodmFyIGxlPTAsd2U9MTshKHgud29yZHNbMF0md2UpJiZsZTwyNjsrK2xlLHdlPDw9MSk7aWYobGU+MClmb3IoeC5pdXNocm4obGUpO2xlLS0gPjA7KShWLmlzT2RkKCl8fFUuaXNPZGQoKSkmJihWLmlhZGQobSks'@; put 'VS5pc3ViKEEpKSxWLml1c2hybigxKSxVLml1c2hybigxKTt5LmNtcCh4KT49MD8oeS5pc3ViKHgpLEMuaXN1YihWKSxULmlzdWIoVSkpOih4LmlzdWIoeSksVi5pc3ViKEMpLFUuaXN1YihUKSl9cmV0dXJue2E6VixiOlUsZ2NkOnguaXVzaGxuKEUpfX0sdy5wcm90b3R5cGUuX2ludm1wPWZ1'@; put 'bmN0aW9uKGcpe3AoMD09PWcubmVnYXRpdmUpLHAoIWcuaXNaZXJvKCkpO3ZhciBhZSx5PXRoaXMseD1nLmNsb25lKCk7eT0wIT09eS5uZWdhdGl2ZT95LnVtb2QoZyk6eS5jbG9uZSgpO2Zvcih2YXIgQz1uZXcgdygxKSxUPW5ldyB3KDApLFY9eC5jbG9uZSgpO3kuY21wbigxKT4wJiZ4LmNt'@; put 'cG4oMSk+MDspe2Zvcih2YXIgVT0wLEU9MTshKHkud29yZHNbMF0mRSkmJlU8MjY7KytVLEU8PD0xKTtpZihVPjApZm9yKHkuaXVzaHJuKFUpO1UtLSA+MDspQy5pc09kZCgpJiZDLmlhZGQoViksQy5pdXNocm4oMSk7Zm9yKHZhciBtPTAsQT0xOyEoeC53b3Jkc1swXSZBKSYmbTwyNjsrK20s'@; put 'QTw8PTEpO2lmKG0+MClmb3IoeC5pdXNocm4obSk7bS0tID4wOylULmlzT2RkKCkmJlQuaWFkZChWKSxULml1c2hybigxKTt5LmNtcCh4KT49MD8oeS5pc3ViKHgpLEMuaXN1YihUKSk6KHguaXN1Yih5KSxULmlzdWIoQykpfXJldHVybihhZT0wPT09eS5jbXBuKDEpP0M6VCkuY21wbigwKTww'@; put 'JiZhZS5pYWRkKGcpLGFlfSx3LnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24oZyl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gZy5hYnMoKTtpZihnLmlzWmVybygpKXJldHVybiB0aGlzLmFicygpO3ZhciB5PXRoaXMuY2xvbmUoKSx4PWcuY2xvbmUoKTt5Lm5lZ2F0aXZlPTAseC5uZWdhdGl2ZT0w'@; put 'O2Zvcih2YXIgQz0wO3kuaXNFdmVuKCkmJnguaXNFdmVuKCk7QysrKXkuaXVzaHJuKDEpLHguaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDt5LmlzRXZlbigpOyl5Lml1c2hybigxKTtmb3IoO3guaXNFdmVuKCk7KXguaXVzaHJuKDEpO3ZhciBUPXkuY21wKHgpO2lmKFQ8MCl7dmFyIFY9eTt5PXgs'@; put 'eD1WfWVsc2UgaWYoMD09PVR8fDA9PT14LmNtcG4oMSkpYnJlYWs7eS5pc3ViKHgpfXJldHVybiB4Lml1c2hsbihDKX0sdy5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5lZ2NkKGcpLmEudW1vZChnKX0sdy5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJu'@; put 'ISgxJnRoaXMud29yZHNbMF0pfSx3LnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiEoMSZ+dGhpcy53b3Jkc1swXSl9LHcucHJvdG90eXBlLmFuZGxuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLndvcmRzWzBdJmd9LHcucHJvdG90eXBlLmJpbmNuPWZ1bmN0aW9uKGcpe3AoIm51'@; put 'bWJlciI9PXR5cGVvZiBnKTt2YXIgeT1nJTI2LHg9KGcteSkvMjYsQz0xPDx5O2lmKHRoaXMubGVuZ3RoPD14KXJldHVybiB0aGlzLl9leHBhbmQoeCsxKSx0aGlzLndvcmRzW3hdfD1DLHRoaXM7Zm9yKHZhciBUPUMsVj14OzAhPT1UJiZWPHRoaXMubGVuZ3RoO1YrKyl7dmFyIFU9MHx0aGlz'@; put 'LndvcmRzW1ZdO1Q9KFUrPVQpPj4+MjYsdGhpcy53b3Jkc1tWXT1VJj02NzEwODg2M31yZXR1cm4gMCE9PVQmJih0aGlzLndvcmRzW1ZdPVQsdGhpcy5sZW5ndGgrKyksdGhpc30sdy5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMu'@; put 'd29yZHNbMF19LHcucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24oZyl7dmFyIHgseT1nPDA7aWYoMCE9PXRoaXMubmVnYXRpdmUmJiF5KXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiZ5KXJldHVybiAxO2lmKHRoaXMuc3RyaXAoKSx0aGlzLmxlbmd0aD4xKXg9MTtlbHNle3kmJihnPS1n'@; put 'KSxwKGc8PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciBDPTB8dGhpcy53b3Jkc1swXTt4PUM9PT1nPzA6QzxnPy0xOjF9cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LXg6eH0sdy5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKGcpe2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09'@; put 'Zy5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PWcubmVnYXRpdmUpcmV0dXJuIDE7dmFyIHk9dGhpcy51Y21wKGcpO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC15Onl9LHcucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24oZyl7aWYodGhpcy5sZW5ndGg+Zy5s'@; put 'ZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8Zy5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciB5PTAseD10aGlzLmxlbmd0aC0xO3g+PTA7eC0tKXt2YXIgQz0wfHRoaXMud29yZHNbeF0sVD0wfGcud29yZHNbeF07aWYoQyE9PVQpe0M8VD95PS0xOkM+VCYmKHk9MSk7YnJlYWt9fXJldHVy'@; put 'biB5fSx3LnByb3RvdHlwZS5ndG49ZnVuY3Rpb24oZyl7cmV0dXJuIDE9PT10aGlzLmNtcG4oZyl9LHcucHJvdG90eXBlLmd0PWZ1bmN0aW9uKGcpe3JldHVybiAxPT09dGhpcy5jbXAoZyl9LHcucHJvdG90eXBlLmd0ZW49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY21wbihnKT49MH0sdy5w'@; put 'cm90b3R5cGUuZ3RlPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNtcChnKT49MH0sdy5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKGcpe3JldHVybi0xPT09dGhpcy5jbXBuKGcpfSx3LnByb3RvdHlwZS5sdD1mdW5jdGlvbihnKXtyZXR1cm4tMT09PXRoaXMuY21wKGcpfSx3LnByb3RvdHlwZS5s'@; put 'dGVuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNtcG4oZyk8PTB9LHcucHJvdG90eXBlLmx0ZT1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbXAoZyk8PTB9LHcucHJvdG90eXBlLmVxbj1mdW5jdGlvbihnKXtyZXR1cm4gMD09PXRoaXMuY21wbihnKX0sdy5wcm90b3R5cGUuZXE9ZnVuY3Rp'@; put 'b24oZyl7cmV0dXJuIDA9PT10aGlzLmNtcChnKX0sdy5yZWQ9ZnVuY3Rpb24oZyl7cmV0dXJuIG5ldyBTZShnKX0sdy5wcm90b3R5cGUudG9SZWQ9ZnVuY3Rpb24oZyl7cmV0dXJuIHAoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IikscCgwPT09dGhp'@; put 'cy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxnLmNvbnZlcnRUbyh0aGlzKS5fZm9yY2VSZWQoZyl9LHcucHJvdG90eXBlLmZyb21SZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gcCh0aGlzLnJlZCwiZnJvbVJlZCB3b3JrcyBvbmx5IHdpdGggbnVtYmVycyBpbiByZWR1'@; put 'Y3Rpb24gY29udGV4dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSx3LnByb3RvdHlwZS5fZm9yY2VSZWQ9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMucmVkPWcsdGhpc30sdy5wcm90b3R5cGUuZm9yY2VSZWQ9ZnVuY3Rpb24oZyl7cmV0dXJuIHAoIXRoaXMucmVkLCJBbHJlYWR5IGEg'@; put 'bnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VSZWQoZyl9LHcucHJvdG90eXBlLnJlZEFkZD1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmFkZCh0aGlzLGcpfSx3LnByb3Rv'@; put 'dHlwZS5yZWRJQWRkPWZ1bmN0aW9uKGcpe3JldHVybiBwKHRoaXMucmVkLCJyZWRJQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlhZGQodGhpcyxnKX0sdy5wcm90b3R5cGUucmVkU3ViPWZ1bmN0aW9uKGcpe3JldHVybiBwKHRoaXMucmVkLCJyZWRTdWIgd29y'@; put 'a3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc3ViKHRoaXMsZyl9LHcucHJvdG90eXBlLnJlZElTdWI9ZnVuY3Rpb24oZyl7cmV0dXJuIHAodGhpcy5yZWQsInJlZElTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaXN1Yih0aGlzLGcpfSx3LnBy'@; put 'b3RvdHlwZS5yZWRTaGw9ZnVuY3Rpb24oZyl7cmV0dXJuIHAodGhpcy5yZWQsInJlZFNobCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zaGwodGhpcyxnKX0sdy5wcm90b3R5cGUucmVkTXVsPWZ1bmN0aW9uKGcpe3JldHVybiBwKHRoaXMucmVkLCJyZWRNdWwgd29y'@; put 'a3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxnKSx0aGlzLnJlZC5tdWwodGhpcyxnKX0sdy5wcm90b3R5cGUucmVkSU11bD1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRo'@; put 'aXMucmVkLl92ZXJpZnkyKHRoaXMsZyksdGhpcy5yZWQuaW11bCh0aGlzLGcpfSx3LnByb3RvdHlwZS5yZWRTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVk'@; put 'LnNxcih0aGlzKX0sdy5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMucmVkLCJyZWRJU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmlzcXIodGhpcyl9LHcucHJvdG90eXBlLnJlZFNxcnQ9'@; put 'ZnVuY3Rpb24oKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXJ0KHRoaXMpfSx3LnByb3RvdHlwZS5yZWRJbnZtPWZ1bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5yZWQsInJl'@; put 'ZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaW52bSh0aGlzKX0sdy5wcm90b3R5cGUucmVkTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5yZWQsInJlZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMi'@; put 'KSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5uZWcodGhpcyl9LHcucHJvdG90eXBlLnJlZFBvdz1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCYmIWcucmVkLCJyZWRQb3cobm9ybWFsTnVtKSIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnBvdyh0aGlz'@; put 'LGcpfTt2YXIgdGU9e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtmdW5jdGlvbiBpZSh6LGcpe3RoaXMubmFtZT16LHRoaXMucD1uZXcgdyhnLDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgdygxKS5pdXNobG4odGhpcy5uKS5pc3Vi'@; put 'KHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9ZnVuY3Rpb24gc2UoKXtpZS5jYWxsKHRoaXMsImsyNTYiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIpfWZ1bmN0aW9uIGdlKCl7aWUuY2FsbCh0aGlz'@; put 'LCJwMjI0IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEiKX1mdW5jdGlvbiBfZSgpe2llLmNhbGwodGhpcywicDE5MiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIil9'@; put 'ZnVuY3Rpb24gVGUoKXtpZS5jYWxsKHRoaXMsIjI1NTE5IiwiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCIpfWZ1bmN0aW9uIFNlKHope2lmKCJzdHJpbmciPT10eXBlb2Ygeil7dmFyIGc9dy5fcHJpbWUoeik7dGhp'@; put 'cy5tPWcucCx0aGlzLnByaW1lPWd9ZWxzZSBwKHouZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlzLm09eix0aGlzLnByaW1lPW51bGx9ZnVuY3Rpb24gemUoeil7U2UuY2FsbCh0aGlzLHopLHRoaXMuc2hpZnQ9dGhpcy5tLmJpdExlbmd0aCgpLHRoaXMuc2hp'@; put 'ZnQlMjYhPTAmJih0aGlzLnNoaWZ0Kz0yNi10aGlzLnNoaWZ0JTI2KSx0aGlzLnI9bmV3IHcoMSkuaXVzaGxuKHRoaXMuc2hpZnQpLHRoaXMucjI9dGhpcy5pbW9kKHRoaXMuci5zcXIoKSksdGhpcy5yaW52PXRoaXMuci5faW52bXAodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5yaW52Lm11bCh0'@; put 'aGlzLnIpLmlzdWJuKDEpLmRpdih0aGlzLm0pLHRoaXMubWludj10aGlzLm1pbnYudW1vZCh0aGlzLnIpLHRoaXMubWludj10aGlzLnIuc3ViKHRoaXMubWludil9aWUucHJvdG90eXBlLl90bXA9ZnVuY3Rpb24oKXt2YXIgZz1uZXcgdyhudWxsKTtyZXR1cm4gZy53b3Jkcz1uZXcgQXJyYXko'@; put 'TWF0aC5jZWlsKHRoaXMubi8xMykpLGd9LGllLnByb3RvdHlwZS5pcmVkdWNlPWZ1bmN0aW9uKGcpe3ZhciB4LHk9Zztkb3t0aGlzLnNwbGl0KHksdGhpcy50bXApLHg9KHk9KHk9dGhpcy5pbXVsSyh5KSkuaWFkZCh0aGlzLnRtcCkpLmJpdExlbmd0aCgpfXdoaWxlKHg+dGhpcy5uKTt2YXIg'@; put 'Qz14PHRoaXMubj8tMTp5LnVjbXAodGhpcy5wKTtyZXR1cm4gMD09PUM/KHkud29yZHNbMF09MCx5Lmxlbmd0aD0xKTpDPjA/eS5pc3ViKHRoaXMucCk6dm9pZCAwIT09eS5zdHJpcD95LnN0cmlwKCk6eS5fc3RyaXAoKSx5fSxpZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oZyx5KXtnLml1'@; put 'c2hybih0aGlzLm4sMCx5KX0saWUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKGcpe3JldHVybiBnLmltdWwodGhpcy5rKX0sTihzZSxpZSksc2UucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKGcseSl7Zm9yKHZhciB4PTQxOTQzMDMsQz1NYXRoLm1pbihnLmxlbmd0aCw5KSxUPTA7VDxDO1Qr'@; put 'Kyl5LndvcmRzW1RdPWcud29yZHNbVF07aWYoeS5sZW5ndGg9QyxnLmxlbmd0aDw9OSlyZXR1cm4gZy53b3Jkc1swXT0wLHZvaWQoZy5sZW5ndGg9MSk7dmFyIFY9Zy53b3Jkc1s5XTtmb3IoeS53b3Jkc1t5Lmxlbmd0aCsrXT1WJngsVD0xMDtUPGcubGVuZ3RoO1QrKyl7dmFyIFU9MHxnLndv'@; put 'cmRzW1RdO2cud29yZHNbVC0xMF09KFUmeCk8PDR8Vj4+PjIyLFY9VX1nLndvcmRzW1QtMTBdPVY+Pj49MjIsZy5sZW5ndGgtPTA9PT1WJiZnLmxlbmd0aD4xMD8xMDo5fSxzZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oZyl7Zy53b3Jkc1tnLmxlbmd0aF09MCxnLndvcmRzW2cubGVuZ3Ro'@; put 'KzFdPTAsZy5sZW5ndGgrPTI7Zm9yKHZhciB5PTAseD0wO3g8Zy5sZW5ndGg7eCsrKXt2YXIgQz0wfGcud29yZHNbeF07Zy53b3Jkc1t4XT02NzEwODg2MyYoeSs9OTc3KkMpLHk9NjQqQysoeS82NzEwODg2NHwwKX1yZXR1cm4gMD09PWcud29yZHNbZy5sZW5ndGgtMV0mJihnLmxlbmd0aC0t'@; put 'LDA9PT1nLndvcmRzW2cubGVuZ3RoLTFdJiZnLmxlbmd0aC0tKSxnfSxOKGdlLGllKSxOKF9lLGllKSxOKFRlLGllKSxUZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oZyl7Zm9yKHZhciB5PTAseD0wO3g8Zy5sZW5ndGg7eCsrKXt2YXIgQz0xOSooMHxnLndvcmRzW3hdKSt5LFQ9NjcxMDg4'@; put 'NjMmQztDPj4+PTI2LGcud29yZHNbeF09VCx5PUN9cmV0dXJuIDAhPT15JiYoZy53b3Jkc1tnLmxlbmd0aCsrXT15KSxnfSx3Ll9wcmltZT1mdW5jdGlvbihnKXtpZih0ZVtnXSlyZXR1cm4gdGVbZ107dmFyIHk7aWYoImsyNTYiPT09Zyl5PW5ldyBzZTtlbHNlIGlmKCJwMjI0Ij09PWcpeT1u'@; put 'ZXcgZ2U7ZWxzZSBpZigicDE5MiI9PT1nKXk9bmV3IF9lO2Vsc2V7aWYoInAyNTUxOSIhPT1nKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAiK2cpO3k9bmV3IFRlfXJldHVybiB0ZVtnXT15LHl9LFNlLnByb3RvdHlwZS5fdmVyaWZ5MT1mdW5jdGlvbihnKXtwKDA9PT1nLm5lZ2F0'@; put 'aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLHAoZy5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sU2UucHJvdG90eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKGcseSl7cCghKGcubmVnYXRpdmV8eS5uZWdhdGl2ZSksInJlZCB3b3JrcyBvbmx5IHdpdGgg'@; put 'cG9zaXRpdmVzIikscChnLnJlZCYmZy5yZWQ9PT15LnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxTZS5wcm90b3R5cGUuaW1vZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5wcmltZT90aGlzLnByaW1lLmlyZWR1Y2UoZykuX2ZvcmNlUmVkKHRoaXMpOmcudW1vZCh0'@; put 'aGlzLm0pLl9mb3JjZVJlZCh0aGlzKX0sU2UucHJvdG90eXBlLm5lZz1mdW5jdGlvbihnKXtyZXR1cm4gZy5pc1plcm8oKT9nLmNsb25lKCk6dGhpcy5tLnN1YihnKS5fZm9yY2VSZWQodGhpcyl9LFNlLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZyx5KXt0aGlzLl92ZXJpZnkyKGcseSk7dmFy'@; put 'IHg9Zy5hZGQoeSk7cmV0dXJuIHguY21wKHRoaXMubSk+PTAmJnguaXN1Yih0aGlzLm0pLHguX2ZvcmNlUmVkKHRoaXMpfSxTZS5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbihnLHkpe3RoaXMuX3ZlcmlmeTIoZyx5KTt2YXIgeD1nLmlhZGQoeSk7cmV0dXJuIHguY21wKHRoaXMubSk+PTAmJngu'@; put 'aXN1Yih0aGlzLm0pLHh9LFNlLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oZyx5KXt0aGlzLl92ZXJpZnkyKGcseSk7dmFyIHg9Zy5zdWIoeSk7cmV0dXJuIHguY21wbigwKTwwJiZ4LmlhZGQodGhpcy5tKSx4Ll9mb3JjZVJlZCh0aGlzKX0sU2UucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24oZyx5'@; put 'KXt0aGlzLl92ZXJpZnkyKGcseSk7dmFyIHg9Zy5pc3ViKHkpO3JldHVybiB4LmNtcG4oMCk8MCYmeC5pYWRkKHRoaXMubSkseH0sU2UucHJvdG90eXBlLnNobD1mdW5jdGlvbihnLHkpe3JldHVybiB0aGlzLl92ZXJpZnkxKGcpLHRoaXMuaW1vZChnLnVzaGxuKHkpKX0sU2UucHJvdG90eXBl'@; put 'LmltdWw9ZnVuY3Rpb24oZyx5KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihnLHkpLHRoaXMuaW1vZChnLmltdWwoeSkpfSxTZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGcseSl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoZyx5KSx0aGlzLmltb2QoZy5tdWwoeSkpfSxTZS5wcm90b3R5cGUuaXNxcj1m'@; put 'dW5jdGlvbihnKXtyZXR1cm4gdGhpcy5pbXVsKGcsZy5jbG9uZSgpKX0sU2UucHJvdG90eXBlLnNxcj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5tdWwoZyxnKX0sU2UucHJvdG90eXBlLnNxcnQ9ZnVuY3Rpb24oZyl7aWYoZy5pc1plcm8oKSlyZXR1cm4gZy5jbG9uZSgpO3ZhciB5PXRoaXMu'@; put 'bS5hbmRsbigzKTtpZihwKHklMj09MSksMz09PXkpe3ZhciB4PXRoaXMubS5hZGQobmV3IHcoMSkpLml1c2hybigyKTtyZXR1cm4gdGhpcy5wb3coZyx4KX1mb3IodmFyIEM9dGhpcy5tLnN1Ym4oMSksVD0wOyFDLmlzWmVybygpJiYwPT09Qy5hbmRsbigxKTspVCsrLEMuaXVzaHJuKDEpO3Ao'@; put 'IUMuaXNaZXJvKCkpO3ZhciBWPW5ldyB3KDEpLnRvUmVkKHRoaXMpLFU9Vi5yZWROZWcoKSxFPXRoaXMubS5zdWJuKDEpLml1c2hybigxKSxtPXRoaXMubS5iaXRMZW5ndGgoKTtmb3IobT1uZXcgdygyKm0qbSkudG9SZWQodGhpcyk7MCE9PXRoaXMucG93KG0sRSkuY21wKFUpOyltLnJlZElB'@; put 'ZGQoVSk7Zm9yKHZhciBBPXRoaXMucG93KG0sQyksYWU9dGhpcy5wb3coZyxDLmFkZG4oMSkuaXVzaHJuKDEpKSxuZT10aGlzLnBvdyhnLEMpLGxlPVQ7MCE9PW5lLmNtcChWKTspe2Zvcih2YXIgd2U9bmUsWmU9MDswIT09d2UuY21wKFYpO1plKyspd2U9d2UucmVkU3FyKCk7cChaZTxsZSk7'@; put 'dmFyIFFlPXRoaXMucG93KEEsbmV3IHcoMSkuaXVzaGxuKGxlLVplLTEpKTthZT1hZS5yZWRNdWwoUWUpLEE9UWUucmVkU3FyKCksbmU9bmUucmVkTXVsKEEpLGxlPVplfXJldHVybiBhZX0sU2UucHJvdG90eXBlLmludm09ZnVuY3Rpb24oZyl7dmFyIHk9Zy5faW52bXAodGhpcy5tKTtyZXR1'@; put 'cm4gMCE9PXkubmVnYXRpdmU/KHkubmVnYXRpdmU9MCx0aGlzLmltb2QoeSkucmVkTmVnKCkpOnRoaXMuaW1vZCh5KX0sU2UucHJvdG90eXBlLnBvdz1mdW5jdGlvbihnLHkpe2lmKHkuaXNaZXJvKCkpcmV0dXJuIG5ldyB3KDEpLnRvUmVkKHRoaXMpO2lmKDA9PT15LmNtcG4oMSkpcmV0dXJu'@; put 'IGcuY2xvbmUoKTt2YXIgQz1uZXcgQXJyYXkoMTYpO0NbMF09bmV3IHcoMSkudG9SZWQodGhpcyksQ1sxXT1nO2Zvcih2YXIgVD0yO1Q8Qy5sZW5ndGg7VCsrKUNbVF09dGhpcy5tdWwoQ1tULTFdLGcpO3ZhciBWPUNbMF0sVT0wLEU9MCxtPXkuYml0TGVuZ3RoKCklMjY7Zm9yKDA9PT1tJiYo'@; put 'bT0yNiksVD15Lmxlbmd0aC0xO1Q+PTA7VC0tKXtmb3IodmFyIEE9eS53b3Jkc1tUXSxhZT1tLTE7YWU+PTA7YWUtLSl7dmFyIG5lPUE+PmFlJjE7ViE9PUNbMF0mJihWPXRoaXMuc3FyKFYpKSwwIT09bmV8fDAhPT1VPyhVPDw9MSxVfD1uZSwoND09KytFfHwwPT09VCYmMD09PWFlKSYmKFY9'@; put 'dGhpcy5tdWwoVixDW1VdKSxFPTAsVT0wKSk6RT0wfW09MjZ9cmV0dXJuIFZ9LFNlLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oZyl7dmFyIHk9Zy51bW9kKHRoaXMubSk7cmV0dXJuIHk9PT1nP3kuY2xvbmUoKTp5fSxTZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oZyl7'@; put 'dmFyIHk9Zy5jbG9uZSgpO3JldHVybiB5LnJlZD1udWxsLHl9LHcubW9udD1mdW5jdGlvbihnKXtyZXR1cm4gbmV3IHplKGcpfSxOKHplLFNlKSx6ZS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmltb2QoZy51c2hsbih0aGlzLnNoaWZ0KSl9LHplLnByb3Rv'@; put 'dHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbihnKXt2YXIgeT10aGlzLmltb2QoZy5tdWwodGhpcy5yaW52KSk7cmV0dXJuIHkucmVkPW51bGwseX0semUucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oZyx5KXtpZihnLmlzWmVybygpfHx5LmlzWmVybygpKXJldHVybiBnLndvcmRzWzBdPTAsZy5s'@; put 'ZW5ndGg9MSxnO3ZhciB4PWcuaW11bCh5KSxDPXgubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLFQ9eC5pc3ViKEMpLml1c2hybih0aGlzLnNoaWZ0KSxWPVQ7cmV0dXJuIFQuY21wKHRoaXMubSk+PTA/Vj1ULmlzdWIodGhp'@; put 'cy5tKTpULmNtcG4oMCk8MCYmKFY9VC5pYWRkKHRoaXMubSkpLFYuX2ZvcmNlUmVkKHRoaXMpfSx6ZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGcseSl7aWYoZy5pc1plcm8oKXx8eS5pc1plcm8oKSlyZXR1cm4gbmV3IHcoMCkuX2ZvcmNlUmVkKHRoaXMpO3ZhciB4PWcubXVsKHkpLEM9eC5t'@; put 'YXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksVD14LmlzdWIoQykuaXVzaHJuKHRoaXMuc2hpZnQpLFY9VDtyZXR1cm4gVC5jbXAodGhpcy5tKT49MD9WPVQuaXN1Yih0aGlzLm0pOlQuY21wbigwKTwwJiYoVj1ULmlhZGQodGhp'@; put 'cy5tKSksVi5fZm9yY2VSZWQodGhpcyl9LHplLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmltb2QoZy5faW52bXAodGhpcy5tKS5tdWwodGhpcy5yMikpLl9mb3JjZVJlZCh0aGlzKX19KGNlPWIubm1kKGNlKSx0aGlzKX0sMzQ4MjooY2UsSixiKT0+eyJ1c2Ugc3Ry'@; put 'aWN0Ijt2YXIgRD1iKDU3MTcpLF89YigyMzE4KSxwPWIoOTc4NSksTj1iKDkwNzIpLHc9YigxMDI3KTtmdW5jdGlvbiBGKEgpe3cuY2FsbCh0aGlzLCJkaWdlc3QiKSx0aGlzLl9oYXNoPUh9RChGLHcpLEYucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oSCl7dGhpcy5faGFzaC51cGRhdGUo'@; put 'SCl9LEYucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9oYXNoLmRpZ2VzdCgpfSxjZS5leHBvcnRzPWZ1bmN0aW9uKFIpe3JldHVybiJtZDUiPT09KFI9Ui50b0xvd2VyQ2FzZSgpKT9uZXcgXzoicm1kMTYwIj09PVJ8fCJyaXBlbWQxNjAiPT09Uj9uZXcgcDpuZXcg'@; put 'RihOKFIpKX19LDgwMjg6KGNlLEosYik9Pnt2YXIgRD1iKDIzMTgpO2NlLmV4cG9ydHM9ZnVuY3Rpb24oXyl7cmV0dXJuKG5ldyBEKS51cGRhdGUoXykuZGlnZXN0KCl9fSw4MzU1OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNTcxNyksXz1iKDEwMzEpLHA9YigxMDI3KSxOPWIo'@; put 'OTUwOSkuQnVmZmVyLHc9Yig4MDI4KSxGPWIoOTc4NSksSD1iKDkwNzIpLFI9Ti5hbGxvYygxMjgpO2Z1bmN0aW9uIGooUCxMKXtwLmNhbGwodGhpcywiZGlnZXN0IiksInN0cmluZyI9PXR5cGVvZiBMJiYoTD1OLmZyb20oTCkpO3ZhciBZPSJzaGE1MTIiPT09UHx8InNoYTM4NCI9PT1QPzEy'@; put 'ODo2NDt0aGlzLl9hbGc9UCx0aGlzLl9rZXk9TCxMLmxlbmd0aD5ZP0w9KCJybWQxNjAiPT09UD9uZXcgRjpIKFApKS51cGRhdGUoTCkuZGlnZXN0KCk6TC5sZW5ndGg8WSYmKEw9Ti5jb25jYXQoW0wsUl0sWSkpO2Zvcih2YXIgVz10aGlzLl9pcGFkPU4uYWxsb2NVbnNhZmUoWSksWj10aGlz'@; put 'Ll9vcGFkPU4uYWxsb2NVbnNhZmUoWSksWD0wO1g8WTtYKyspV1tYXT01NF5MW1hdLFpbWF09OTJeTFtYXTt0aGlzLl9oYXNoPSJybWQxNjAiPT09UD9uZXcgRjpIKFApLHRoaXMuX2hhc2gudXBkYXRlKFcpfUQoaixwKSxqLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKFApe3RoaXMuX2hh'@; put 'c2gudXBkYXRlKFApfSxqLnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXt2YXIgUD10aGlzLl9oYXNoLmRpZ2VzdCgpO3JldHVybigicm1kMTYwIj09PXRoaXMuX2FsZz9uZXcgRjpIKHRoaXMuX2FsZykpLnVwZGF0ZSh0aGlzLl9vcGFkKS51cGRhdGUoUCkuZGlnZXN0KCl9LGNlLmV4cG9y'@; put 'dHM9ZnVuY3Rpb24oTCxZKXtyZXR1cm4icm1kMTYwIj09PShMPUwudG9Mb3dlckNhc2UoKSl8fCJyaXBlbWQxNjAiPT09TD9uZXcgaigicm1kMTYwIixZKToibWQ1Ij09PUw/bmV3IF8odyxZKTpuZXcgaihMLFkpfX0sMTAzMTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDU3MTcp'@; put 'LF89Yig5NTA5KS5CdWZmZXIscD1iKDEwMjcpLE49Xy5hbGxvYygxMjgpLHc9NjQ7ZnVuY3Rpb24gRihILFIpe3AuY2FsbCh0aGlzLCJkaWdlc3QiKSwic3RyaW5nIj09dHlwZW9mIFImJihSPV8uZnJvbShSKSksdGhpcy5fYWxnPUgsdGhpcy5fa2V5PVIsUi5sZW5ndGg+dz9SPUgoUik6Ui5s'@; put 'ZW5ndGg8dyYmKFI9Xy5jb25jYXQoW1IsTl0sdykpO2Zvcih2YXIgaj10aGlzLl9pcGFkPV8uYWxsb2NVbnNhZmUodyksUD10aGlzLl9vcGFkPV8uYWxsb2NVbnNhZmUodyksTD0wO0w8dztMKyspaltMXT01NF5SW0xdLFBbTF09OTJeUltMXTt0aGlzLl9oYXNoPVtqXX1EKEYscCksRi5wcm90'@; put 'b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihIKXt0aGlzLl9oYXNoLnB1c2goSCl9LEYucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3ZhciBIPXRoaXMuX2FsZyhfLmNvbmNhdCh0aGlzLl9oYXNoKSk7cmV0dXJuIHRoaXMuX2FsZyhfLmNvbmNhdChbdGhpcy5fb3BhZCxIXSkpfSxjZS5leHBv'@; put 'cnRzPUZ9LDU4MzU6KGNlLEosYik9PnsidXNlIHN0cmljdCI7Si5yYW5kb21CeXRlcz1KLnJuZz1KLnBzZXVkb1JhbmRvbUJ5dGVzPUoucHJuZz1iKDE3OTgpLEouY3JlYXRlSGFzaD1KLkhhc2g9YigzNDgyKSxKLmNyZWF0ZUhtYWM9Si5IbWFjPWIoODM1NSk7dmFyIEQ9Yig2MDQyKSxfPU9i'@; put 'amVjdC5rZXlzKEQpLHA9WyJzaGExIiwic2hhMjI0Iiwic2hhMjU2Iiwic2hhMzg0Iiwic2hhNTEyIiwibWQ1Iiwicm1kMTYwIl0uY29uY2F0KF8pO0ouZ2V0SGFzaGVzPWZ1bmN0aW9uKCl7cmV0dXJuIHB9O3ZhciBOPWIoNTYzMik7Si5wYmtkZjI9Ti5wYmtkZjIsSi5wYmtkZjJTeW5jPU4u'@; put 'cGJrZGYyU3luYzt2YXIgdz1iKDM2MTQpO0ouQ2lwaGVyPXcuQ2lwaGVyLEouY3JlYXRlQ2lwaGVyPXcuY3JlYXRlQ2lwaGVyLEouQ2lwaGVyaXY9dy5DaXBoZXJpdixKLmNyZWF0ZUNpcGhlcml2PXcuY3JlYXRlQ2lwaGVyaXYsSi5EZWNpcGhlcj13LkRlY2lwaGVyLEouY3JlYXRlRGVjaXBo'@; put 'ZXI9dy5jcmVhdGVEZWNpcGhlcixKLkRlY2lwaGVyaXY9dy5EZWNpcGhlcml2LEouY3JlYXRlRGVjaXBoZXJpdj13LmNyZWF0ZURlY2lwaGVyaXYsSi5nZXRDaXBoZXJzPXcuZ2V0Q2lwaGVycyxKLmxpc3RDaXBoZXJzPXcubGlzdENpcGhlcnM7dmFyIEY9YigyNjA3KTtKLkRpZmZpZUhlbGxt'@; put 'YW5Hcm91cD1GLkRpZmZpZUhlbGxtYW5Hcm91cCxKLmNyZWF0ZURpZmZpZUhlbGxtYW5Hcm91cD1GLmNyZWF0ZURpZmZpZUhlbGxtYW5Hcm91cCxKLmdldERpZmZpZUhlbGxtYW49Ri5nZXREaWZmaWVIZWxsbWFuLEouY3JlYXRlRGlmZmllSGVsbG1hbj1GLmNyZWF0ZURpZmZpZUhlbGxtYW4s'@; put 'Si5EaWZmaWVIZWxsbWFuPUYuRGlmZmllSGVsbG1hbjt2YXIgSD1iKDQ3NDMpO0ouY3JlYXRlU2lnbj1ILmNyZWF0ZVNpZ24sSi5TaWduPUguU2lnbixKLmNyZWF0ZVZlcmlmeT1ILmNyZWF0ZVZlcmlmeSxKLlZlcmlmeT1ILlZlcmlmeSxKLmNyZWF0ZUVDREg9Yig2MzkzKTt2YXIgUj1iKDc5'@; put 'MDApO0oucHVibGljRW5jcnlwdD1SLnB1YmxpY0VuY3J5cHQsSi5wcml2YXRlRW5jcnlwdD1SLnByaXZhdGVFbmNyeXB0LEoucHVibGljRGVjcnlwdD1SLnB1YmxpY0RlY3J5cHQsSi5wcml2YXRlRGVjcnlwdD1SLnByaXZhdGVEZWNyeXB0O3ZhciBqPWIoNzk2Myk7Si5yYW5kb21GaWxsPWou'@; put 'cmFuZG9tRmlsbCxKLnJhbmRvbUZpbGxTeW5jPWoucmFuZG9tRmlsbFN5bmMsSi5jcmVhdGVDcmVkZW50aWFscz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigic29ycnksIGNyZWF0ZUNyZWRlbnRpYWxzIGlzIG5vdCBpbXBsZW1lbnRlZCB5ZXRcbndlIGFjY2VwdCBwdWxsIHJlcXVlc3Rz'@; put 'XG5odHRwczovL2dpdGh1Yi5jb20vYnJvd3NlcmlmeS9jcnlwdG8tYnJvd3NlcmlmeSIpfSxKLmNvbnN0YW50cz17REhfQ0hFQ0tfUF9OT1RfU0FGRV9QUklNRToyLERIX0NIRUNLX1BfTk9UX1BSSU1FOjEsREhfVU5BQkxFX1RPX0NIRUNLX0dFTkVSQVRPUjo0LERIX05PVF9TVUlUQUJMRV9H'@; put 'RU5FUkFUT1I6OCxOUE5fRU5BQkxFRDoxLEFMUE5fRU5BQkxFRDoxLFJTQV9QS0NTMV9QQURESU5HOjEsUlNBX1NTTFYyM19QQURESU5HOjIsUlNBX05PX1BBRERJTkc6MyxSU0FfUEtDUzFfT0FFUF9QQURESU5HOjQsUlNBX1g5MzFfUEFERElORzo1LFJTQV9QS0NTMV9QU1NfUEFERElORzo2'@; put 'LFBPSU5UX0NPTlZFUlNJT05fQ09NUFJFU1NFRDoyLFBPSU5UX0NPTlZFUlNJT05fVU5DT01QUkVTU0VEOjQsUE9JTlRfQ09OVkVSU0lPTl9IWUJSSUQ6Nn19LDIyOTY6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig0NDI5KSxfPWIoMzQ2NCkscD1iKDQ0NTMpLE49Yig3Mjk2KTtj'@; put 'ZS5leHBvcnRzPWZ1bmN0aW9uKEYsSCxSKXtpZighRnx8Im9iamVjdCIhPXR5cGVvZiBGJiYiZnVuY3Rpb24iIT10eXBlb2YgRil0aHJvdyBuZXcgcCgiYG9iamAgbXVzdCBiZSBhbiBvYmplY3Qgb3IgYSBmdW5jdGlvbmAiKTtpZigic3RyaW5nIiE9dHlwZW9mIEgmJiJzeW1ib2wiIT10eXBl'@; put 'b2YgSCl0aHJvdyBuZXcgcCgiYHByb3BlcnR5YCBtdXN0IGJlIGEgc3RyaW5nIG9yIGEgc3ltYm9sYCIpO2lmKGFyZ3VtZW50cy5sZW5ndGg+MyYmImJvb2xlYW4iIT10eXBlb2YgYXJndW1lbnRzWzNdJiZudWxsIT09YXJndW1lbnRzWzNdKXRocm93IG5ldyBwKCJgbm9uRW51bWVyYWJsZWAs'@; put 'IGlmIHByb3ZpZGVkLCBtdXN0IGJlIGEgYm9vbGVhbiBvciBudWxsIik7aWYoYXJndW1lbnRzLmxlbmd0aD40JiYiYm9vbGVhbiIhPXR5cGVvZiBhcmd1bWVudHNbNF0mJm51bGwhPT1hcmd1bWVudHNbNF0pdGhyb3cgbmV3IHAoImBub25Xcml0YWJsZWAsIGlmIHByb3ZpZGVkLCBtdXN0IGJl'@; put 'IGEgYm9vbGVhbiBvciBudWxsIik7aWYoYXJndW1lbnRzLmxlbmd0aD41JiYiYm9vbGVhbiIhPXR5cGVvZiBhcmd1bWVudHNbNV0mJm51bGwhPT1hcmd1bWVudHNbNV0pdGhyb3cgbmV3IHAoImBub25Db25maWd1cmFibGVgLCBpZiBwcm92aWRlZCwgbXVzdCBiZSBhIGJvb2xlYW4gb3IgbnVs'@; put 'bCIpO2lmKGFyZ3VtZW50cy5sZW5ndGg+NiYmImJvb2xlYW4iIT10eXBlb2YgYXJndW1lbnRzWzZdKXRocm93IG5ldyBwKCJgbG9vc2VgLCBpZiBwcm92aWRlZCwgbXVzdCBiZSBhIGJvb2xlYW4iKTt2YXIgaj1hcmd1bWVudHMubGVuZ3RoPjM/YXJndW1lbnRzWzNdOm51bGwsUD1hcmd1bWVu'@; put 'dHMubGVuZ3RoPjQ/YXJndW1lbnRzWzRdOm51bGwsTD1hcmd1bWVudHMubGVuZ3RoPjU/YXJndW1lbnRzWzVdOm51bGwsWT1hcmd1bWVudHMubGVuZ3RoPjYmJmFyZ3VtZW50c1s2XSxCPSEhTiYmTihGLEgpO2lmKEQpRChGLEgse2NvbmZpZ3VyYWJsZTpudWxsPT09TCYmQj9CLmNvbmZpZ3Vy'@; put 'YWJsZTohTCxlbnVtZXJhYmxlOm51bGw9PT1qJiZCP0IuZW51bWVyYWJsZTohaix2YWx1ZTpSLHdyaXRhYmxlOm51bGw9PT1QJiZCP0Iud3JpdGFibGU6IVB9KTtlbHNle2lmKCFZJiYoanx8UHx8TCkpdGhyb3cgbmV3IF8oIlRoaXMgZW52aXJvbm1lbnQgZG9lcyBub3Qgc3VwcG9ydCBkZWZp'@; put 'bmluZyBhIHByb3BlcnR5IGFzIG5vbi1jb25maWd1cmFibGUsIG5vbi13cml0YWJsZSwgb3Igbm9uLWVudW1lcmFibGUuIik7RltIXT1SfX19LDQyODk6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigyMjE1KSxfPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10'@; put 'eXBlb2YgU3ltYm9sKCJmb28iKSxwPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsTj1BcnJheS5wcm90b3R5cGUuY29uY2F0LHc9YigyMjk2KSxIPWIoMTA0NCkoKSxSPWZ1bmN0aW9uKFAsTCxZLEIpe2lmKEwgaW4gUClpZighMD09PUIpe2lmKFBbTF09PT1ZKXJldHVybn1lbHNlIGlmKCFm'@; put 'dW5jdGlvbihQKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgUCYmIltvYmplY3QgRnVuY3Rpb25dIj09PXAuY2FsbChQKX0oQil8fCFCKCkpcmV0dXJuO0g/dyhQLEwsWSwhMCk6dyhQLEwsWSl9LGo9ZnVuY3Rpb24oUCxMKXt2YXIgWT1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJd'@; put 'Ont9LEI9RChMKTtfJiYoQj1OLmNhbGwoQixPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKEwpKSk7Zm9yKHZhciBXPTA7VzxCLmxlbmd0aDtXKz0xKVIoUCxCW1ddLExbQltXXV0sWVtCW1ddXSl9O2ouc3VwcG9ydHNEZXNjcmlwdG9ycz0hIUgsY2UuZXhwb3J0cz1qfSw1MjUxOihjZSxK'@; put 'LGIpPT57InVzZSBzdHJpY3QiO0oudXRpbHM9YigxMjc4KSxKLkNpcGhlcj1iKDU3NTYpLEouREVTPWIoNzc4KSxKLkNCQz1iKDkwNTEpLEouRURFPWIoNjUxKX0sOTA1MTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDk3NDYpLF89Yig1NzE3KSxwPXt9O2Z1bmN0aW9uIE4oRil7'@; put 'RC5lcXVhbChGLmxlbmd0aCw4LCJJbnZhbGlkIElWIGxlbmd0aCIpLHRoaXMuaXY9bmV3IEFycmF5KDgpO2Zvcih2YXIgSD0wO0g8dGhpcy5pdi5sZW5ndGg7SCsrKXRoaXMuaXZbSF09RltIXX1KLmluc3RhbnRpYXRlPWZ1bmN0aW9uIHcoRil7ZnVuY3Rpb24gSChMKXtGLmNhbGwodGhpcyxM'@; put 'KSx0aGlzLl9jYmNJbml0KCl9XyhILEYpO2Zvcih2YXIgUj1PYmplY3Qua2V5cyhwKSxqPTA7ajxSLmxlbmd0aDtqKyspe3ZhciBQPVJbal07SC5wcm90b3R5cGVbUF09cFtQXX1yZXR1cm4gSC5jcmVhdGU9ZnVuY3Rpb24oWSl7cmV0dXJuIG5ldyBIKFkpfSxIfSxwLl9jYmNJbml0PWZ1bmN0'@; put 'aW9uKCl7dmFyIEg9bmV3IE4odGhpcy5vcHRpb25zLml2KTt0aGlzLl9jYmNTdGF0ZT1IfSxwLl91cGRhdGU9ZnVuY3Rpb24oSCxSLGosUCl7dmFyIFk9dGhpcy5jb25zdHJ1Y3Rvci5zdXBlcl8ucHJvdG90eXBlLEI9dGhpcy5fY2JjU3RhdGUuaXY7aWYoImVuY3J5cHQiPT09dGhpcy50eXBl'@; put 'KXtmb3IodmFyIFc9MDtXPHRoaXMuYmxvY2tTaXplO1crKylCW1ddXj1IW1IrV107Zm9yKFkuX3VwZGF0ZS5jYWxsKHRoaXMsQiwwLGosUCksVz0wO1c8dGhpcy5ibG9ja1NpemU7VysrKUJbV109altQK1ddfWVsc2V7Zm9yKFkuX3VwZGF0ZS5jYWxsKHRoaXMsSCxSLGosUCksVz0wO1c8dGhp'@; put 'cy5ibG9ja1NpemU7VysrKWpbUCtXXV49QltXXTtmb3IoVz0wO1c8dGhpcy5ibG9ja1NpemU7VysrKUJbV109SFtSK1ddfX19LDU3NTY6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig5NzQ2KTtmdW5jdGlvbiBfKHApe3RoaXMub3B0aW9ucz1wLHRoaXMudHlwZT10aGlzLm9wdGlv'@; put 'bnMudHlwZSx0aGlzLmJsb2NrU2l6ZT04LHRoaXMuX2luaXQoKSx0aGlzLmJ1ZmZlcj1uZXcgQXJyYXkodGhpcy5ibG9ja1NpemUpLHRoaXMuYnVmZmVyT2ZmPTAsdGhpcy5wYWRkaW5nPSExIT09cC5wYWRkaW5nfWNlLmV4cG9ydHM9XyxfLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbigpe30s'@; put 'Xy5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKE4pe3JldHVybiAwPT09Ti5sZW5ndGg/W106ImRlY3J5cHQiPT09dGhpcy50eXBlP3RoaXMuX3VwZGF0ZURlY3J5cHQoTik6dGhpcy5fdXBkYXRlRW5jcnlwdChOKX0sXy5wcm90b3R5cGUuX2J1ZmZlcj1mdW5jdGlvbihOLHcpe2Zvcih2YXIg'@; put 'Rj1NYXRoLm1pbih0aGlzLmJ1ZmZlci5sZW5ndGgtdGhpcy5idWZmZXJPZmYsTi5sZW5ndGgtdyksSD0wO0g8RjtIKyspdGhpcy5idWZmZXJbdGhpcy5idWZmZXJPZmYrSF09Tlt3K0hdO3JldHVybiB0aGlzLmJ1ZmZlck9mZis9RixGfSxfLnByb3RvdHlwZS5fZmx1c2hCdWZmZXI9ZnVuY3Rp'@; put 'b24oTix3KXtyZXR1cm4gdGhpcy5fdXBkYXRlKHRoaXMuYnVmZmVyLDAsTix3KSx0aGlzLmJ1ZmZlck9mZj0wLHRoaXMuYmxvY2tTaXplfSxfLnByb3RvdHlwZS5fdXBkYXRlRW5jcnlwdD1mdW5jdGlvbihOKXt2YXIgdz0wLEY9MCxSPW5ldyBBcnJheSgoKHRoaXMuYnVmZmVyT2ZmK04ubGVu'@; put 'Z3RoKS90aGlzLmJsb2NrU2l6ZXwwKSp0aGlzLmJsb2NrU2l6ZSk7MCE9PXRoaXMuYnVmZmVyT2ZmJiYodys9dGhpcy5fYnVmZmVyKE4sdyksdGhpcy5idWZmZXJPZmY9PT10aGlzLmJ1ZmZlci5sZW5ndGgmJihGKz10aGlzLl9mbHVzaEJ1ZmZlcihSLEYpKSk7Zm9yKHZhciBqPU4ubGVuZ3Ro'@; put 'LShOLmxlbmd0aC13KSV0aGlzLmJsb2NrU2l6ZTt3PGo7dys9dGhpcy5ibG9ja1NpemUpdGhpcy5fdXBkYXRlKE4sdyxSLEYpLEYrPXRoaXMuYmxvY2tTaXplO2Zvcig7dzxOLmxlbmd0aDt3KyssdGhpcy5idWZmZXJPZmYrKyl0aGlzLmJ1ZmZlclt0aGlzLmJ1ZmZlck9mZl09Tlt3XTtyZXR1'@; put 'cm4gUn0sXy5wcm90b3R5cGUuX3VwZGF0ZURlY3J5cHQ9ZnVuY3Rpb24oTil7Zm9yKHZhciB3PTAsRj0wLEg9TWF0aC5jZWlsKCh0aGlzLmJ1ZmZlck9mZitOLmxlbmd0aCkvdGhpcy5ibG9ja1NpemUpLTEsUj1uZXcgQXJyYXkoSCp0aGlzLmJsb2NrU2l6ZSk7SD4wO0gtLSl3Kz10aGlzLl9i'@; put 'dWZmZXIoTix3KSxGKz10aGlzLl9mbHVzaEJ1ZmZlcihSLEYpO3JldHVybiB3Kz10aGlzLl9idWZmZXIoTix3KSxSfSxfLnByb3RvdHlwZS5maW5hbD1mdW5jdGlvbihOKXt2YXIgdyxGO3JldHVybiBOJiYodz10aGlzLnVwZGF0ZShOKSksRj0iZW5jcnlwdCI9PT10aGlzLnR5cGU/dGhpcy5f'@; put 'ZmluYWxFbmNyeXB0KCk6dGhpcy5fZmluYWxEZWNyeXB0KCksdz93LmNvbmNhdChGKTpGfSxfLnByb3RvdHlwZS5fcGFkPWZ1bmN0aW9uKE4sdyl7aWYoMD09PXcpcmV0dXJuITE7Zm9yKDt3PE4ubGVuZ3RoOylOW3crK109MDtyZXR1cm4hMH0sXy5wcm90b3R5cGUuX2ZpbmFsRW5jcnlwdD1m'@; put 'dW5jdGlvbigpe2lmKCF0aGlzLl9wYWQodGhpcy5idWZmZXIsdGhpcy5idWZmZXJPZmYpKXJldHVybltdO3ZhciBOPW5ldyBBcnJheSh0aGlzLmJsb2NrU2l6ZSk7cmV0dXJuIHRoaXMuX3VwZGF0ZSh0aGlzLmJ1ZmZlciwwLE4sMCksTn0sXy5wcm90b3R5cGUuX3VucGFkPWZ1bmN0aW9uKE4p'@; put 'e3JldHVybiBOfSxfLnByb3RvdHlwZS5fZmluYWxEZWNyeXB0PWZ1bmN0aW9uKCl7RC5lcXVhbCh0aGlzLmJ1ZmZlck9mZix0aGlzLmJsb2NrU2l6ZSwiTm90IGVub3VnaCBkYXRhIHRvIGRlY3J5cHQiKTt2YXIgTj1uZXcgQXJyYXkodGhpcy5ibG9ja1NpemUpO3JldHVybiB0aGlzLl9mbHVz'@; put 'aEJ1ZmZlcihOLDApLHRoaXMuX3VucGFkKE4pfX0sNzc4OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoOTc0NiksXz1iKDU3MTcpLHA9YigxMjc4KSxOPWIoNTc1Nik7ZnVuY3Rpb24gdygpe3RoaXMudG1wPW5ldyBBcnJheSgyKSx0aGlzLmtleXM9bnVsbH1mdW5jdGlvbiBGKFIp'@; put 'e04uY2FsbCh0aGlzLFIpO3ZhciBqPW5ldyB3O3RoaXMuX2Rlc1N0YXRlPWosdGhpcy5kZXJpdmVLZXlzKGosUi5rZXkpfV8oRixOKSxjZS5leHBvcnRzPUYsRi5jcmVhdGU9ZnVuY3Rpb24oail7cmV0dXJuIG5ldyBGKGopfTt2YXIgSD1bMSwxLDIsMiwyLDIsMiwyLDEsMiwyLDIsMiwyLDIs'@; put 'MV07Ri5wcm90b3R5cGUuZGVyaXZlS2V5cz1mdW5jdGlvbihqLFApe2oua2V5cz1uZXcgQXJyYXkoMzIpLEQuZXF1YWwoUC5sZW5ndGgsdGhpcy5ibG9ja1NpemUsIkludmFsaWQga2V5IGxlbmd0aCIpO3ZhciBMPXAucmVhZFVJbnQzMkJFKFAsMCksWT1wLnJlYWRVSW50MzJCRShQLDQpO3Au'@; put 'cGMxKEwsWSxqLnRtcCwwKSxMPWoudG1wWzBdLFk9ai50bXBbMV07Zm9yKHZhciBCPTA7QjxqLmtleXMubGVuZ3RoO0IrPTIpe3ZhciBXPUhbQj4+PjFdO0w9cC5yMjhzaGwoTCxXKSxZPXAucjI4c2hsKFksVykscC5wYzIoTCxZLGoua2V5cyxCKX19LEYucHJvdG90eXBlLl91cGRhdGU9ZnVu'@; put 'Y3Rpb24oaixQLEwsWSl7dmFyIEI9dGhpcy5fZGVzU3RhdGUsVz1wLnJlYWRVSW50MzJCRShqLFApLFo9cC5yZWFkVUludDMyQkUoaixQKzQpO3AuaXAoVyxaLEIudG1wLDApLFc9Qi50bXBbMF0sWj1CLnRtcFsxXSwiZW5jcnlwdCI9PT10aGlzLnR5cGU/dGhpcy5fZW5jcnlwdChCLFcsWixC'@; put 'LnRtcCwwKTp0aGlzLl9kZWNyeXB0KEIsVyxaLEIudG1wLDApLFo9Qi50bXBbMV0scC53cml0ZVVJbnQzMkJFKEwsVz1CLnRtcFswXSxZKSxwLndyaXRlVUludDMyQkUoTCxaLFkrNCl9LEYucHJvdG90eXBlLl9wYWQ9ZnVuY3Rpb24oaixQKXtpZighMT09PXRoaXMucGFkZGluZylyZXR1cm4h'@; put 'MTtmb3IodmFyIEw9ai5sZW5ndGgtUCxZPVA7WTxqLmxlbmd0aDtZKyspaltZXT1MO3JldHVybiEwfSxGLnByb3RvdHlwZS5fdW5wYWQ9ZnVuY3Rpb24oail7aWYoITE9PT10aGlzLnBhZGRpbmcpcmV0dXJuIGo7Zm9yKHZhciBQPWpbai5sZW5ndGgtMV0sTD1qLmxlbmd0aC1QO0w8ai5sZW5n'@; put 'dGg7TCsrKUQuZXF1YWwoaltMXSxQKTtyZXR1cm4gai5zbGljZSgwLGoubGVuZ3RoLVApfSxGLnByb3RvdHlwZS5fZW5jcnlwdD1mdW5jdGlvbihqLFAsTCxZLEIpe2Zvcih2YXIgVz1QLFo9TCxYPTA7WDxqLmtleXMubGVuZ3RoO1grPTIpe3ZhciBRPWoua2V5c1tYXSxxPWoua2V5c1tYKzFd'@; put 'O3AuZXhwYW5kKFosai50bXAsMCk7dmFyIHRlPXAuc3Vic3RpdHV0ZShRXj1qLnRtcFswXSxxXj1qLnRtcFsxXSksc2U9WjtaPShXXnAucGVybXV0ZSh0ZSkpPj4+MCxXPXNlfXAucmlwKFosVyxZLEIpfSxGLnByb3RvdHlwZS5fZGVjcnlwdD1mdW5jdGlvbihqLFAsTCxZLEIpe2Zvcih2YXIg'@; put 'Vz1MLFo9UCxYPWoua2V5cy5sZW5ndGgtMjtYPj0wO1gtPTIpe3ZhciBRPWoua2V5c1tYXSxxPWoua2V5c1tYKzFdO3AuZXhwYW5kKFcsai50bXAsMCk7dmFyIHRlPXAuc3Vic3RpdHV0ZShRXj1qLnRtcFswXSxxXj1qLnRtcFsxXSksc2U9VztXPShaXnAucGVybXV0ZSh0ZSkpPj4+MCxaPXNl'@; put 'fXAucmlwKFcsWixZLEIpfX0sNjUxOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoOTc0NiksXz1iKDU3MTcpLHA9Yig1NzU2KSxOPWIoNzc4KTtmdW5jdGlvbiB3KEgsUil7RC5lcXVhbChSLmxlbmd0aCwyNCwiSW52YWxpZCBrZXkgbGVuZ3RoIik7dmFyIGo9Ui5zbGljZSgwLDgp'@; put 'LFA9Ui5zbGljZSg4LDE2KSxMPVIuc2xpY2UoMTYsMjQpO3RoaXMuY2lwaGVycz0iZW5jcnlwdCI9PT1IP1tOLmNyZWF0ZSh7dHlwZToiZW5jcnlwdCIsa2V5Omp9KSxOLmNyZWF0ZSh7dHlwZToiZGVjcnlwdCIsa2V5OlB9KSxOLmNyZWF0ZSh7dHlwZToiZW5jcnlwdCIsa2V5Okx9KV06W04u'@; put 'Y3JlYXRlKHt0eXBlOiJkZWNyeXB0IixrZXk6TH0pLE4uY3JlYXRlKHt0eXBlOiJlbmNyeXB0IixrZXk6UH0pLE4uY3JlYXRlKHt0eXBlOiJkZWNyeXB0IixrZXk6an0pXX1mdW5jdGlvbiBGKEgpe3AuY2FsbCh0aGlzLEgpO3ZhciBSPW5ldyB3KHRoaXMudHlwZSx0aGlzLm9wdGlvbnMua2V5'@; put 'KTt0aGlzLl9lZGVTdGF0ZT1SfV8oRixwKSxjZS5leHBvcnRzPUYsRi5jcmVhdGU9ZnVuY3Rpb24oUil7cmV0dXJuIG5ldyBGKFIpfSxGLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKFIsaixQLEwpe3ZhciBZPXRoaXMuX2VkZVN0YXRlO1kuY2lwaGVyc1swXS5fdXBkYXRlKFIsaixQLEwp'@; put 'LFkuY2lwaGVyc1sxXS5fdXBkYXRlKFAsTCxQLEwpLFkuY2lwaGVyc1syXS5fdXBkYXRlKFAsTCxQLEwpfSxGLnByb3RvdHlwZS5fcGFkPU4ucHJvdG90eXBlLl9wYWQsRi5wcm90b3R5cGUuX3VucGFkPU4ucHJvdG90eXBlLl91bnBhZH0sMTI3ODooY2UsSik9PnsidXNlIHN0cmljdCI7Si5y'@; put 'ZWFkVUludDMyQkU9ZnVuY3Rpb24oTix3KXtyZXR1cm4oTlswK3ddPDwyNHxOWzErd108PDE2fE5bMit3XTw8OHxOWzMrd10pPj4+MH0sSi53cml0ZVVJbnQzMkJFPWZ1bmN0aW9uKE4sdyxGKXtOWzArRl09dz4+PjI0LE5bMStGXT13Pj4+MTYmMjU1LE5bMitGXT13Pj4+OCYyNTUsTlszK0Zd'@; put 'PTI1NSZ3fSxKLmlwPWZ1bmN0aW9uKE4sdyxGLEgpe2Zvcih2YXIgUj0wLGo9MCxQPTY7UD49MDtQLT0yKXtmb3IodmFyIEw9MDtMPD0yNDtMKz04KVI8PD0xLFJ8PXc+Pj5MK1AmMTtmb3IoTD0wO0w8PTI0O0wrPTgpUjw8PTEsUnw9Tj4+PkwrUCYxfWZvcihQPTY7UD49MDtQLT0yKXtmb3Io'@; put 'TD0xO0w8PTI1O0wrPTgpajw8PTEsanw9dz4+PkwrUCYxO2ZvcihMPTE7TDw9MjU7TCs9OClqPDw9MSxqfD1OPj4+TCtQJjF9RltIKzBdPVI+Pj4wLEZbSCsxXT1qPj4+MH0sSi5yaXA9ZnVuY3Rpb24oTix3LEYsSCl7Zm9yKHZhciBSPTAsaj0wLFA9MDtQPDQ7UCsrKWZvcih2YXIgTD0yNDtM'@; put 'Pj0wO0wtPTgpUjw8PTEsUnw9dz4+PkwrUCYxLFI8PD0xLFJ8PU4+Pj5MK1AmMTtmb3IoUD00O1A8ODtQKyspZm9yKEw9MjQ7TD49MDtMLT04KWo8PD0xLGp8PXc+Pj5MK1AmMSxqPDw9MSxqfD1OPj4+TCtQJjE7RltIKzBdPVI+Pj4wLEZbSCsxXT1qPj4+MH0sSi5wYzE9ZnVuY3Rpb24oTix3'@; put 'LEYsSCl7Zm9yKHZhciBSPTAsaj0wLFA9NztQPj01O1AtLSl7Zm9yKHZhciBMPTA7TDw9MjQ7TCs9OClSPDw9MSxSfD13Pj5MK1AmMTtmb3IoTD0wO0w8PTI0O0wrPTgpUjw8PTEsUnw9Tj4+TCtQJjF9Zm9yKEw9MDtMPD0yNDtMKz04KVI8PD0xLFJ8PXc+PkwrUCYxO2ZvcihQPTE7UDw9MztQ'@; put 'Kyspe2ZvcihMPTA7TDw9MjQ7TCs9OClqPDw9MSxqfD13Pj5MK1AmMTtmb3IoTD0wO0w8PTI0O0wrPTgpajw8PTEsanw9Tj4+TCtQJjF9Zm9yKEw9MDtMPD0yNDtMKz04KWo8PD0xLGp8PU4+PkwrUCYxO0ZbSCswXT1SPj4+MCxGW0grMV09aj4+PjB9LEoucjI4c2hsPWZ1bmN0aW9uKE4sdyl7'@; put 'cmV0dXJuIE48PHcmMjY4NDM1NDU1fE4+Pj4yOC13fTt2YXIgYj1bMTQsMTEsMTcsNCwyNywyMywyNSwwLDEzLDIyLDcsMTgsNSw5LDE2LDI0LDIsMjAsMTIsMjEsMSw4LDE1LDI2LDE1LDQsMjUsMTksOSwxLDI2LDE2LDUsMTEsMjMsOCwxMiw3LDE3LDAsMjIsMywxMCwxNCw2LDIwLDI3LDI0'@; put 'XTtKLnBjMj1mdW5jdGlvbihOLHcsRixIKXtmb3IodmFyIFI9MCxqPTAsUD1iLmxlbmd0aD4+PjEsTD0wO0w8UDtMKyspUjw8PTEsUnw9Tj4+PmJbTF0mMTtmb3IoTD1QO0w8Yi5sZW5ndGg7TCsrKWo8PD0xLGp8PXc+Pj5iW0xdJjE7RltIKzBdPVI+Pj4wLEZbSCsxXT1qPj4+MH0sSi5leHBh'@; put 'bmQ9ZnVuY3Rpb24oTix3LEYpe3ZhciBIPTAsUj0wO0g9KDEmTik8PDV8Tj4+PjI3O2Zvcih2YXIgaj0yMztqPj0xNTtqLT00KUg8PD02LEh8PU4+Pj5qJjYzO2ZvcihqPTExO2o+PTM7ai09NClSfD1OPj4+aiY2MyxSPDw9NjtSfD0oMzEmTik8PDF8Tj4+PjMxLHdbRiswXT1IPj4+MCx3W0Yr'@; put 'MV09Uj4+PjB9O3ZhciBEPVsxNCwwLDQsMTUsMTMsNywxLDQsMiwxNCwxNSwyLDExLDEzLDgsMSwzLDEwLDEwLDYsNiwxMiwxMiwxMSw1LDksOSw1LDAsMyw3LDgsNCwxNSwxLDEyLDE0LDgsOCwyLDEzLDQsNiw5LDIsMSwxMSw3LDE1LDUsMTIsMTEsOSwzLDcsMTQsMywxMCwxMCwwLDUsNiww'@; put 'LDEzLDE1LDMsMSwxMyw4LDQsMTQsNyw2LDE1LDExLDIsMyw4LDQsMTQsOSwxMiw3LDAsMiwxLDEzLDEwLDEyLDYsMCw5LDUsMTEsMTAsNSwwLDEzLDE0LDgsNywxMCwxMSwxLDEwLDMsNCwxNSwxMyw0LDEsMiw1LDExLDgsNiwxMiw3LDYsMTIsOSwwLDMsNSwyLDE0LDE1LDksMTAsMTMsMCw3'@; put 'LDksMCwxNCw5LDYsMywzLDQsMTUsNiw1LDEwLDEsMiwxMyw4LDEyLDUsNywxNCwxMSwxMiw0LDExLDIsMTUsOCwxLDEzLDEsNiwxMCw0LDEzLDksMCw4LDYsMTUsOSwzLDgsMCw3LDExLDQsMSwxNSwyLDE0LDEyLDMsNSwxMSwxMCw1LDE0LDIsNywxMiw3LDEzLDEzLDgsMTQsMTEsMyw1LDAs'@; put 'Niw2LDE1LDksMCwxMCwzLDEsNCwyLDcsOCwyLDUsMTIsMTEsMSwxMiwxMCw0LDE0LDE1LDksMTAsMyw2LDE1LDksMCwwLDYsMTIsMTAsMTEsMSw3LDEzLDEzLDgsMTUsOSwxLDQsMyw1LDE0LDExLDUsMTIsMiw3LDgsMiw0LDE0LDIsMTQsMTIsMTEsNCwyLDEsMTIsNyw0LDEwLDcsMTEsMTMs'@; put 'NiwxLDgsNSw1LDAsMywxNSwxNSwxMCwxMywzLDAsOSwxNCw4LDksNiw0LDExLDIsOCwxLDEyLDExLDcsMTAsMSwxMywxNCw3LDIsOCwxMywxNSw2LDksMTUsMTIsMCw1LDksNiwxMCwzLDQsMCw1LDE0LDMsMTIsMTAsMSwxNSwxMCw0LDE1LDIsOSw3LDIsMTIsNiw5LDgsNSwwLDYsMTMsMSwz'@; put 'LDEzLDQsMTQsMTQsMCw3LDExLDUsMywxMSw4LDksNCwxNCwzLDE1LDIsNSwxMiwyLDksOCw1LDEyLDE1LDMsMTAsNywxMSwwLDE0LDQsMSwxMCw3LDEsNiwxMywwLDExLDgsNiwxMyw0LDEzLDExLDAsMiwxMSwxNCw3LDE1LDQsMCw5LDgsMSwxMywxMCwzLDE0LDEyLDMsOSw1LDcsMTIsNSwy'@; put 'LDEwLDE1LDYsOCwxLDYsMSw2LDQsMTEsMTEsMTMsMTMsOCwxMiwxLDMsNCw3LDEwLDE0LDcsMTAsOSwxNSw1LDYsMCw4LDE1LDAsMTQsNSwyLDksMywyLDEyLDEzLDEsMiwxNSw4LDEzLDQsOCw2LDEwLDE1LDMsMTEsNywxLDQsMTAsMTIsOSw1LDMsNiwxNCwxMSw1LDAsMCwxNCwxMiw5LDcs'@; put 'Miw3LDIsMTEsMSw0LDE0LDEsNyw5LDQsMTIsMTAsMTQsOCwyLDEzLDAsMTUsNiwxMiwxMCw5LDEzLDAsMTUsMywzLDUsNSw2LDgsMTFdO0ouc3Vic3RpdHV0ZT1mdW5jdGlvbihOLHcpe2Zvcih2YXIgRj0wLEg9MDtIPDQ7SCsrKUY8PD00LEZ8PURbNjQqSCsoTj4+PjE4LTYqSCY2MyldO2Zv'@; put 'cihIPTA7SDw0O0grKylGPDw9NCxGfD1EWzI1Nis2NCpIKyh3Pj4+MTgtNipIJjYzKV07cmV0dXJuIEY+Pj4wfTt2YXIgXz1bMTYsMjUsMTIsMTEsMywyMCw0LDE1LDMxLDE3LDksNiwyNywxNCwxLDIyLDMwLDI0LDgsMTgsMCw1LDI5LDIzLDEzLDE5LDIsMjYsMTAsMjEsMjgsN107Si5wZXJt'@; put 'dXRlPWZ1bmN0aW9uKE4pe2Zvcih2YXIgdz0wLEY9MDtGPF8ubGVuZ3RoO0YrKyl3PDw9MSx3fD1OPj4+X1tGXSYxO3JldHVybiB3Pj4+MH0sSi5wYWRTcGxpdD1mdW5jdGlvbihOLHcsRil7Zm9yKHZhciBIPU4udG9TdHJpbmcoMik7SC5sZW5ndGg8dzspSD0iMCIrSDtmb3IodmFyIFI9W10s'@; put 'aj0wO2o8dztqKz1GKVIucHVzaChILnNsaWNlKGosaitGKSk7cmV0dXJuIFIuam9pbigiICIpfX0sMjYwNzooY2UsSixiKT0+e3ZhciBEPWIoODc2NCkuQnVmZmVyLF89YigzNTkwKSxwPWIoOTc5OSksTj1iKDc0MjYpLEY9e2JpbmFyeTohMCxoZXg6ITAsYmFzZTY0OiEwfTtKLkRpZmZpZUhl'@; put 'bGxtYW5Hcm91cD1KLmNyZWF0ZURpZmZpZUhlbGxtYW5Hcm91cD1KLmdldERpZmZpZUhlbGxtYW49ZnVuY3Rpb24gdyhSKXt2YXIgaj1uZXcgRChwW1JdLnByaW1lLCJoZXgiKSxQPW5ldyBEKHBbUl0uZ2VuLCJoZXgiKTtyZXR1cm4gbmV3IE4oaixQKX0sSi5jcmVhdGVEaWZmaWVIZWxsbWFu'@; put 'PUouRGlmZmllSGVsbG1hbj1mdW5jdGlvbiBIKFIsaixQLEwpe3JldHVybiBELmlzQnVmZmVyKGopfHx2b2lkIDA9PT1GW2pdP0goUiwiYmluYXJ5IixqLFApOihqPWp8fCJiaW5hcnkiLEw9THx8ImJpbmFyeSIsUD1QfHxuZXcgRChbMl0pLEQuaXNCdWZmZXIoUCl8fChQPW5ldyBEKFAsTCkp'@; put 'LCJudW1iZXIiPT10eXBlb2YgUj9uZXcgTihfKFIsUCksUCwhMCk6KEQuaXNCdWZmZXIoUil8fChSPW5ldyBEKFIsaikpLG5ldyBOKFIsUCwhMCkpKX19LDc0MjY6KGNlLEosYik9Pnt2YXIgRD1iKDg3NjQpLkJ1ZmZlcixfPWIoMzYyMCksTj1uZXcoYigzMDQ3KSksdz1uZXcgXygyNCksRj1u'@; put 'ZXcgXygxMSksSD1uZXcgXygxMCksUj1uZXcgXygzKSxqPW5ldyBfKDcpLFA9YigzNTkwKSxMPWIoMTc5OCk7ZnVuY3Rpb24gWShxLHRlKXtyZXR1cm4gdGU9dGV8fCJ1dGY4IixELmlzQnVmZmVyKHEpfHwocT1uZXcgRChxLHRlKSksdGhpcy5fcHViPW5ldyBfKHEpLHRoaXN9ZnVuY3Rpb24g'@; put 'QihxLHRlKXtyZXR1cm4gdGU9dGV8fCJ1dGY4IixELmlzQnVmZmVyKHEpfHwocT1uZXcgRChxLHRlKSksdGhpcy5fcHJpdj1uZXcgXyhxKSx0aGlzfWNlLmV4cG9ydHM9WDt2YXIgVz17fTtmdW5jdGlvbiBYKHEsdGUsaWUpe3RoaXMuc2V0R2VuZXJhdG9yKHRlKSx0aGlzLl9fcHJpbWU9bmV3'@; put 'IF8ocSksdGhpcy5fcHJpbWU9Xy5tb250KHRoaXMuX19wcmltZSksdGhpcy5fcHJpbWVMZW49cS5sZW5ndGgsdGhpcy5fcHViPXZvaWQgMCx0aGlzLl9wcml2PXZvaWQgMCx0aGlzLl9wcmltZUNvZGU9dm9pZCAwLGllPyh0aGlzLnNldFB1YmxpY0tleT1ZLHRoaXMuc2V0UHJpdmF0ZUtleT1C'@; put 'KTp0aGlzLl9wcmltZUNvZGU9OH1mdW5jdGlvbiBRKHEsdGUpe3ZhciBpZT1uZXcgRChxLnRvQXJyYXkoKSk7cmV0dXJuIHRlP2llLnRvU3RyaW5nKHRlKTppZX1PYmplY3QuZGVmaW5lUHJvcGVydHkoWC5wcm90b3R5cGUsInZlcmlmeUVycm9yIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rp'@; put 'b24oKXtyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIHRoaXMuX3ByaW1lQ29kZSYmKHRoaXMuX3ByaW1lQ29kZT1mdW5jdGlvbiBaKHEsdGUpe3ZhciBpZT10ZS50b1N0cmluZygiaGV4Iiksc2U9W2llLHEudG9TdHJpbmcoMTYpXS5qb2luKCJfIik7aWYoc2UgaW4gVylyZXR1cm4gV1tzZV07dmFy'@; put 'IF9lLGdlPTA7aWYocS5pc0V2ZW4oKXx8IVAuc2ltcGxlU2lldmV8fCFQLmZlcm1hdFRlc3QocSl8fCFOLnRlc3QocSkpcmV0dXJuIGdlKz0xLFdbc2VdPWdlKz0iMDIiPT09aWV8fCIwNSI9PT1pZT84OjQsZ2U7c3dpdGNoKE4udGVzdChxLnNocm4oMSkpfHwoZ2UrPTIpLGllKXtjYXNlIjAy'@; put 'IjpxLm1vZCh3KS5jbXAoRikmJihnZSs9OCk7YnJlYWs7Y2FzZSIwNSI6KF9lPXEubW9kKEgpKS5jbXAoUikmJl9lLmNtcChqKSYmKGdlKz04KTticmVhaztkZWZhdWx0OmdlKz00fXJldHVybiBXW3NlXT1nZSxnZX0odGhpcy5fX3ByaW1lLHRoaXMuX19nZW4pKSx0aGlzLl9wcmltZUNvZGV9'@; put 'fSksWC5wcm90b3R5cGUuZ2VuZXJhdGVLZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ByaXZ8fCh0aGlzLl9wcml2PW5ldyBfKEwodGhpcy5fcHJpbWVMZW4pKSksdGhpcy5fcHViPXRoaXMuX2dlbi50b1JlZCh0aGlzLl9wcmltZSkucmVkUG93KHRoaXMuX3ByaXYpLmZyb21SZWQoKSx0'@; put 'aGlzLmdldFB1YmxpY0tleSgpfSxYLnByb3RvdHlwZS5jb21wdXRlU2VjcmV0PWZ1bmN0aW9uKHEpe3ZhciB0ZT0ocT0ocT1uZXcgXyhxKSkudG9SZWQodGhpcy5fcHJpbWUpKS5yZWRQb3codGhpcy5fcHJpdikuZnJvbVJlZCgpLGllPW5ldyBEKHRlLnRvQXJyYXkoKSksc2U9dGhpcy5nZXRQ'@; put 'cmltZSgpO2lmKGllLmxlbmd0aDxzZS5sZW5ndGgpe3ZhciBnZT1uZXcgRChzZS5sZW5ndGgtaWUubGVuZ3RoKTtnZS5maWxsKDApLGllPUQuY29uY2F0KFtnZSxpZV0pfXJldHVybiBpZX0sWC5wcm90b3R5cGUuZ2V0UHVibGljS2V5PWZ1bmN0aW9uKHRlKXtyZXR1cm4gUSh0aGlzLl9wdWIs'@; put 'dGUpfSxYLnByb3RvdHlwZS5nZXRQcml2YXRlS2V5PWZ1bmN0aW9uKHRlKXtyZXR1cm4gUSh0aGlzLl9wcml2LHRlKX0sWC5wcm90b3R5cGUuZ2V0UHJpbWU9ZnVuY3Rpb24ocSl7cmV0dXJuIFEodGhpcy5fX3ByaW1lLHEpfSxYLnByb3RvdHlwZS5nZXRHZW5lcmF0b3I9ZnVuY3Rpb24ocSl7'@; put 'cmV0dXJuIFEodGhpcy5fZ2VuLHEpfSxYLnByb3RvdHlwZS5zZXRHZW5lcmF0b3I9ZnVuY3Rpb24ocSx0ZSl7cmV0dXJuIHRlPXRlfHwidXRmOCIsRC5pc0J1ZmZlcihxKXx8KHE9bmV3IEQocSx0ZSkpLHRoaXMuX19nZW49cSx0aGlzLl9nZW49bmV3IF8ocSksdGhpc319LDM1OTA6KGNlLEos'@; put 'Yik9Pnt2YXIgRD1iKDE3OTgpO2NlLmV4cG9ydHM9c2Usc2Uuc2ltcGxlU2lldmU9dGUsc2UuZmVybWF0VGVzdD1pZTt2YXIgXz1iKDM2MjApLHA9bmV3IF8oMjQpLHc9bmV3KGIoMzA0NykpLEY9bmV3IF8oMSksSD1uZXcgXygyKSxSPW5ldyBfKDUpLEw9KG5ldyBfKDE2KSxuZXcgXyg4KSxu'@; put 'ZXcgXygxMCkpLFk9bmV3IF8oMyksVz0obmV3IF8oNyksbmV3IF8oMTEpKSxaPW5ldyBfKDQpLFE9KG5ldyBfKDEyKSxudWxsKTtmdW5jdGlvbiB0ZShnZSl7Zm9yKHZhciBfZT1mdW5jdGlvbiBxKCl7aWYobnVsbCE9PVEpcmV0dXJuIFE7dmFyIF9lPVtdO19lWzBdPTI7Zm9yKHZhciBUZT0x'@; put 'LFNlPTM7U2U8MTA0ODU3NjtTZSs9Mil7Zm9yKHZhciB6ZT1NYXRoLmNlaWwoTWF0aC5zcXJ0KFNlKSksej0wO3o8VGUmJl9lW3pdPD16ZSYmU2UlX2Vbel0hPTA7eisrKTtUZSE9PXomJl9lW3pdPD16ZXx8KF9lW1RlKytdPVNlKX1yZXR1cm4gUT1fZSxfZX0oKSxUZT0wO1RlPF9lLmxlbmd0'@; put 'aDtUZSsrKWlmKDA9PT1nZS5tb2RuKF9lW1RlXSkpcmV0dXJuIDA9PT1nZS5jbXBuKF9lW1RlXSk7cmV0dXJuITB9ZnVuY3Rpb24gaWUoZ2Upe3ZhciBfZT1fLm1vbnQoZ2UpO3JldHVybiAwPT09SC50b1JlZChfZSkucmVkUG93KGdlLnN1Ym4oMSkpLmZyb21SZWQoKS5jbXBuKDEpfWZ1bmN0'@; put 'aW9uIHNlKGdlLF9lKXtpZihnZTwxNilyZXR1cm4gbmV3IF8oMj09PV9lfHw1PT09X2U/WzE0MCwxMjNdOlsxNDAsMzldKTtfZT1uZXcgXyhfZSk7Zm9yKHZhciBUZSxTZTs7KXtmb3IoVGU9bmV3IF8oRChNYXRoLmNlaWwoZ2UvOCkpKTtUZS5iaXRMZW5ndGgoKT5nZTspVGUuaXNocm4oMSk7'@; put 'aWYoVGUuaXNFdmVuKCkmJlRlLmlhZGQoRiksVGUudGVzdG4oMSl8fFRlLmlhZGQoSCksX2UuY21wKEgpKXtpZighX2UuY21wKFIpKWZvcig7VGUubW9kKEwpLmNtcChZKTspVGUuaWFkZChaKX1lbHNlIGZvcig7VGUubW9kKHApLmNtcChXKTspVGUuaWFkZChaKTtpZih0ZShTZT1UZS5zaHJu'@; put 'KDEpKSYmdGUoVGUpJiZpZShTZSkmJmllKFRlKSYmdy50ZXN0KFNlKSYmdy50ZXN0KFRlKSlyZXR1cm4gVGV9fX0sMzYyMDpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihELF8peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBwKHosZyl7aWYoIXopdGhyb3cgbmV3IEVycm9yKGd8fCJBc3NlcnRp'@; put 'b24gZmFpbGVkIil9ZnVuY3Rpb24gTih6LGcpe3ouc3VwZXJfPWc7dmFyIHk9ZnVuY3Rpb24oKXt9O3kucHJvdG90eXBlPWcucHJvdG90eXBlLHoucHJvdG90eXBlPW5ldyB5LHoucHJvdG90eXBlLmNvbnN0cnVjdG9yPXp9ZnVuY3Rpb24gdyh6LGcseSl7aWYody5pc0JOKHopKXJldHVybiB6'@; put 'O3RoaXMubmVnYXRpdmU9MCx0aGlzLndvcmRzPW51bGwsdGhpcy5sZW5ndGg9MCx0aGlzLnJlZD1udWxsLG51bGwhPT16JiYoKCJsZSI9PT1nfHwiYmUiPT09ZykmJih5PWcsZz0xMCksdGhpcy5faW5pdCh6fHwwLGd8fDEwLHl8fCJiZSIpKX12YXIgRjsib2JqZWN0Ij09dHlwZW9mIEQ/RC5l'@; put 'eHBvcnRzPXc6Xy5CTj13LHcuQk49dyx3LndvcmRTaXplPTI2O3RyeXtGPXR5cGVvZiB3aW5kb3c8InUiJiZ0eXBlb2Ygd2luZG93LkJ1ZmZlcjwidSI/d2luZG93LkJ1ZmZlcjpiKDc3NDgpLkJ1ZmZlcn1jYXRjaHt9ZnVuY3Rpb24gSCh6LGcpe3ZhciB5PXouY2hhckNvZGVBdChnKTtyZXR1'@; put 'cm4geT49NjUmJnk8PTcwP3ktNTU6eT49OTcmJnk8PTEwMj95LTg3OnktNDgmMTV9ZnVuY3Rpb24gUih6LGcseSl7dmFyIHg9SCh6LHkpO3JldHVybiB5LTE+PWcmJih4fD1IKHoseS0xKTw8NCkseH1mdW5jdGlvbiBqKHosZyx5LHgpe2Zvcih2YXIgQz0wLFQ9TWF0aC5taW4oei5sZW5ndGgs'@; put 'eSksVj1nO1Y8VDtWKyspe3ZhciBVPXouY2hhckNvZGVBdChWKS00ODtDKj14LEMrPVU+PTQ5P1UtNDkrMTA6VT49MTc/VS0xNysxMDpVfXJldHVybiBDfXcuaXNCTj1mdW5jdGlvbihnKXtyZXR1cm4gZyBpbnN0YW5jZW9mIHd8fG51bGwhPT1nJiYib2JqZWN0Ij09dHlwZW9mIGcmJmcuY29u'@; put 'c3RydWN0b3Iud29yZFNpemU9PT13LndvcmRTaXplJiZBcnJheS5pc0FycmF5KGcud29yZHMpfSx3Lm1heD1mdW5jdGlvbihnLHkpe3JldHVybiBnLmNtcCh5KT4wP2c6eX0sdy5taW49ZnVuY3Rpb24oZyx5KXtyZXR1cm4gZy5jbXAoeSk8MD9nOnl9LHcucHJvdG90eXBlLl9pbml0PWZ1bmN0'@; put 'aW9uKGcseSx4KXtpZigibnVtYmVyIj09dHlwZW9mIGcpcmV0dXJuIHRoaXMuX2luaXROdW1iZXIoZyx5LHgpO2lmKCJvYmplY3QiPT10eXBlb2YgZylyZXR1cm4gdGhpcy5faW5pdEFycmF5KGcseSx4KTsiaGV4Ij09PXkmJih5PTE2KSxwKHk9PT0oMHx5KSYmeT49MiYmeTw9MzYpO3ZhciBD'@; put 'PTA7Ii0iPT09KGc9Zy50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9nLCIiKSlbMF0mJihDKyssdGhpcy5uZWdhdGl2ZT0xKSxDPGcubGVuZ3RoJiYoMTY9PT15P3RoaXMuX3BhcnNlSGV4KGcsQyx4KToodGhpcy5fcGFyc2VCYXNlKGcseSxDKSwibGUiPT09eCYmdGhpcy5faW5pdEFycmF5KHRo'@; put 'aXMudG9BcnJheSgpLHkseCkpKX0sdy5wcm90b3R5cGUuX2luaXROdW1iZXI9ZnVuY3Rpb24oZyx5LHgpe2c8MCYmKHRoaXMubmVnYXRpdmU9MSxnPS1nKSxnPDY3MTA4ODY0Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZnXSx0aGlzLmxlbmd0aD0xKTpnPDQ1MDM1OTk2MjczNzA0OTY/KHRoaXMu'@; put 'd29yZHM9WzY3MTA4ODYzJmcsZy82NzEwODg2NCY2NzEwODg2M10sdGhpcy5sZW5ndGg9Mik6KHAoZzw5MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEwODg2MyZnLGcvNjcxMDg4NjQmNjcxMDg4NjMsMV0sdGhpcy5sZW5ndGg9MyksImxlIj09PXgmJnRoaXMuX2luaXRBcnJheSh0'@; put 'aGlzLnRvQXJyYXkoKSx5LHgpfSx3LnByb3RvdHlwZS5faW5pdEFycmF5PWZ1bmN0aW9uKGcseSx4KXtpZihwKCJudW1iZXIiPT10eXBlb2YgZy5sZW5ndGgpLGcubGVuZ3RoPD0wKXJldHVybiB0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xLHRoaXM7dGhpcy5sZW5ndGg9TWF0aC5jZWls'@; put 'KGcubGVuZ3RoLzMpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIEM9MDtDPHRoaXMubGVuZ3RoO0MrKyl0aGlzLndvcmRzW0NdPTA7dmFyIFQsVixVPTA7aWYoImJlIj09PXgpZm9yKEM9Zy5sZW5ndGgtMSxUPTA7Qz49MDtDLT0zKXRoaXMud29yZHNbVF18PShW'@; put 'PWdbQ118Z1tDLTFdPDw4fGdbQy0yXTw8MTYpPDxVJjY3MTA4ODYzLHRoaXMud29yZHNbVCsxXT1WPj4+MjYtVSY2NzEwODg2MywoVSs9MjQpPj0yNiYmKFUtPTI2LFQrKyk7ZWxzZSBpZigibGUiPT09eClmb3IoQz0wLFQ9MDtDPGcubGVuZ3RoO0MrPTMpdGhpcy53b3Jkc1tUXXw9KFY9Z1tD'@; put 'XXxnW0MrMV08PDh8Z1tDKzJdPDwxNik8PFUmNjcxMDg4NjMsdGhpcy53b3Jkc1tUKzFdPVY+Pj4yNi1VJjY3MTA4ODYzLChVKz0yNCk+PTI2JiYoVS09MjYsVCsrKTtyZXR1cm4gdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5fcGFyc2VIZXg9ZnVuY3Rpb24oZyx5LHgpe3RoaXMubGVuZ3Ro'@; put 'PU1hdGguY2VpbCgoZy5sZW5ndGgteSkvNiksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgQz0wO0M8dGhpcy5sZW5ndGg7QysrKXRoaXMud29yZHNbQ109MDt2YXIgVSxUPTAsVj0wO2lmKCJiZSI9PT14KWZvcihDPWcubGVuZ3RoLTE7Qz49eTtDLT0yKVU9Uihn'@; put 'LHksQyk8PFQsdGhpcy53b3Jkc1tWXXw9NjcxMDg4NjMmVSxUPj0xOD8oVC09MTgsdGhpcy53b3Jkc1tWKz0xXXw9VT4+PjI2KTpUKz04O2Vsc2UgZm9yKEM9KGcubGVuZ3RoLXkpJTI9PTA/eSsxOnk7QzxnLmxlbmd0aDtDKz0yKVU9UihnLHksQyk8PFQsdGhpcy53b3Jkc1tWXXw9NjcxMDg4'@; put 'NjMmVSxUPj0xOD8oVC09MTgsdGhpcy53b3Jkc1tWKz0xXXw9VT4+PjI2KTpUKz04O3RoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbihnLHkseCl7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIEM9MCxUPTE7VDw9NjcxMDg4NjM7VCo9eSlD'@; put 'Kys7Qy0tLFQ9VC95fDA7Zm9yKHZhciBWPWcubGVuZ3RoLXgsVT1WJUMsRT1NYXRoLm1pbihWLFYtVSkreCxtPTAsQT14O0E8RTtBKz1DKW09aihnLEEsQStDLHkpLHRoaXMuaW11bG4oVCksdGhpcy53b3Jkc1swXSttPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPW06dGhpcy5faWFkZG4obSk7'@; put 'aWYoMCE9PVUpe3ZhciBhZT0xO2ZvcihtPWooZyxBLGcubGVuZ3RoLHkpLEE9MDtBPFU7QSsrKWFlKj15O3RoaXMuaW11bG4oYWUpLHRoaXMud29yZHNbMF0rbTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1tOnRoaXMuX2lhZGRuKG0pfXRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuY29weT1m'@; put 'dW5jdGlvbihnKXtnLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciB5PTA7eTx0aGlzLmxlbmd0aDt5KyspZy53b3Jkc1t5XT10aGlzLndvcmRzW3ldO2cubGVuZ3RoPXRoaXMubGVuZ3RoLGcubmVnYXRpdmU9dGhpcy5uZWdhdGl2ZSxnLnJlZD10aGlzLnJlZH0sdy5wcm90'@; put 'b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgZz1uZXcgdyhudWxsKTtyZXR1cm4gdGhpcy5jb3B5KGcpLGd9LHcucHJvdG90eXBlLl9leHBhbmQ9ZnVuY3Rpb24oZyl7Zm9yKDt0aGlzLmxlbmd0aDxnOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7cmV0dXJuIHRoaXN9LHcucHJvdG90'@; put 'eXBlLnN0cmlwPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmxlbmd0aD4xJiYwPT09dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXTspdGhpcy5sZW5ndGgtLTtyZXR1cm4gdGhpcy5fbm9ybVNpZ24oKX0sdy5wcm90b3R5cGUuX25vcm1TaWduPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0'@; put 'aCYmMD09PXRoaXMud29yZHNbMF0mJih0aGlzLm5lZ2F0aXZlPTApLHRoaXN9LHcucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5yZWQ/IjxCTi1SOiAiOiI8Qk46ICIpK3RoaXMudG9TdHJpbmcoMTYpKyI+In07dmFyIFA9WyIiLCIwIiwiMDAiLCIwMDAiLCIwMDAw'@; put 'IiwiMDAwMDAiLCIwMDAwMDAiLCIwMDAwMDAwIiwiMDAwMDAwMDAiLCIwMDAwMDAwMDAiLCIwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwIiwi'@; put 'MDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAw'@; put 'MDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0sTD1bMCwwLDI1LDE2LDEyLDExLDEwLDksOCw4LDcsNyw3LDcsNiw2LDYsNiw2LDYsNiw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1XSxZPVswLDAsMzM1NTQ0MzIsNDMwNDY3MjEsMTY3Nzcy'@; put 'MTYsNDg4MjgxMjUsNjA0NjYxNzYsNDAzNTM2MDcsMTY3NzcyMTYsNDMwNDY3MjEsMWU3LDE5NDg3MTcxLDM1ODMxODA4LDYyNzQ4NTE3LDc1Mjk1MzYsMTEzOTA2MjUsMTY3NzcyMTYsMjQxMzc1NjksMzQwMTIyMjQsNDcwNDU4ODEsNjRlNiw0MDg0MTAxLDUxNTM2MzIsNjQzNjM0Myw3OTYy'@; put 'NjI0LDk3NjU2MjUsMTE4ODEzNzYsMTQzNDg5MDcsMTcyMTAzNjgsMjA1MTExNDksMjQzZTUsMjg2MjkxNTEsMzM1NTQ0MzIsMzkxMzUzOTMsNDU0MzU0MjQsNTI1MjE4NzUsNjA0NjYxNzZdO2Z1bmN0aW9uIFcoeixnLHkpe3kubmVnYXRpdmU9Zy5uZWdhdGl2ZV56Lm5lZ2F0aXZlO3ZhciB4'@; put 'PXoubGVuZ3RoK2cubGVuZ3RofDA7eS5sZW5ndGg9eCx4PXgtMXwwO3ZhciBDPTB8ei53b3Jkc1swXSxUPTB8Zy53b3Jkc1swXSxWPUMqVCxFPVYvNjcxMDg4NjR8MDt5LndvcmRzWzBdPTY3MTA4ODYzJlY7Zm9yKHZhciBtPTE7bTx4O20rKyl7Zm9yKHZhciBBPUU+Pj4yNixhZT02NzEwODg2'@; put 'MyZFLG5lPU1hdGgubWluKG0sZy5sZW5ndGgtMSksbGU9TWF0aC5tYXgoMCxtLXoubGVuZ3RoKzEpO2xlPD1uZTtsZSsrKUErPShWPShDPTB8ei53b3Jkc1ttLWxlfDBdKSooVD0wfGcud29yZHNbbGVdKSthZSkvNjcxMDg4NjR8MCxhZT02NzEwODg2MyZWO3kud29yZHNbbV09MHxhZSxFPTB8'@; put 'QX1yZXR1cm4gMCE9PUU/eS53b3Jkc1ttXT0wfEU6eS5sZW5ndGgtLSx5LnN0cmlwKCl9dy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oZyx5KXt2YXIgeDtpZih5PTB8eXx8MSwxNj09PShnPWd8fDEwKXx8ImhleCI9PT1nKXt4PSIiO2Zvcih2YXIgQz0wLFQ9MCxWPTA7Vjx0aGlzLmxl'@; put 'bmd0aDtWKyspe3ZhciBVPXRoaXMud29yZHNbVl0sRT0oMTY3NzcyMTUmKFU8PEN8VCkpLnRvU3RyaW5nKDE2KTtUPVU+Pj4yNC1DJjE2Nzc3MjE1LChDKz0yKT49MjYmJihDLT0yNixWLS0pLHg9MCE9PVR8fFYhPT10aGlzLmxlbmd0aC0xP1BbNi1FLmxlbmd0aF0rRSt4OkUreH1mb3IoMCE9'@; put 'PVQmJih4PVQudG9TdHJpbmcoMTYpK3gpO3gubGVuZ3RoJXkhPTA7KXg9IjAiK3g7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoeD0iLSIreCkseH1pZihnPT09KDB8ZykmJmc+PTImJmc8PTM2KXt2YXIgbT1MW2ddLEE9WVtnXTt4PSIiO3ZhciBhZT10aGlzLmNsb25lKCk7Zm9yKGFlLm5l'@; put 'Z2F0aXZlPTA7IWFlLmlzWmVybygpOyl7dmFyIG5lPWFlLm1vZG4oQSkudG9TdHJpbmcoZyk7eD0oYWU9YWUuaWRpdm4oQSkpLmlzWmVybygpP25lK3g6UFttLW5lLmxlbmd0aF0rbmUreH1mb3IodGhpcy5pc1plcm8oKSYmKHg9IjAiK3gpO3gubGVuZ3RoJXkhPTA7KXg9IjAiK3g7cmV0dXJu'@; put 'IDAhPT10aGlzLm5lZ2F0aXZlJiYoeD0iLSIreCkseH1wKCExLCJCYXNlIHNob3VsZCBiZSBiZXR3ZWVuIDIgYW5kIDM2Iil9LHcucHJvdG90eXBlLnRvTnVtYmVyPWZ1bmN0aW9uKCl7dmFyIGc9dGhpcy53b3Jkc1swXTtyZXR1cm4gMj09PXRoaXMubGVuZ3RoP2crPTY3MTA4ODY0KnRoaXMu'@; put 'd29yZHNbMV06Mz09PXRoaXMubGVuZ3RoJiYxPT09dGhpcy53b3Jkc1syXT9nKz00NTAzNTk5NjI3MzcwNDk2KzY3MTA4ODY0KnRoaXMud29yZHNbMV06dGhpcy5sZW5ndGg+MiYmcCghMSwiTnVtYmVyIGNhbiBvbmx5IHNhZmVseSBzdG9yZSB1cCB0byA1MyBiaXRzIiksMCE9PXRoaXMubmVn'@; put 'YXRpdmU/LWc6Z30sdy5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoMTYpfSx3LnByb3RvdHlwZS50b0J1ZmZlcj1mdW5jdGlvbihnLHkpe3JldHVybiBwKHR5cGVvZiBGPCJ1IiksdGhpcy50b0FycmF5TGlrZShGLGcseSl9LHcucHJvdG90eXBlLnRv'@; put 'QXJyYXk9ZnVuY3Rpb24oZyx5KXtyZXR1cm4gdGhpcy50b0FycmF5TGlrZShBcnJheSxnLHkpfSx3LnByb3RvdHlwZS50b0FycmF5TGlrZT1mdW5jdGlvbihnLHkseCl7dmFyIEM9dGhpcy5ieXRlTGVuZ3RoKCksVD14fHxNYXRoLm1heCgxLEMpO3AoQzw9VCwiYnl0ZSBhcnJheSBsb25nZXIg'@; put 'dGhhbiBkZXNpcmVkIGxlbmd0aCIpLHAoVD4wLCJSZXF1ZXN0ZWQgYXJyYXkgbGVuZ3RoIDw9IDAiKSx0aGlzLnN0cmlwKCk7dmFyIEUsbSxWPSJsZSI9PT15LFU9bmV3IGcoVCksQT10aGlzLmNsb25lKCk7aWYoVil7Zm9yKG09MDshQS5pc1plcm8oKTttKyspRT1BLmFuZGxuKDI1NSksQS5p'@; put 'dXNocm4oOCksVVttXT1FO2Zvcig7bTxUO20rKylVW21dPTB9ZWxzZXtmb3IobT0wO208VC1DO20rKylVW21dPTA7Zm9yKG09MDshQS5pc1plcm8oKTttKyspRT1BLmFuZGxuKDI1NSksQS5pdXNocm4oOCksVVtULW0tMV09RX1yZXR1cm4gVX0sdy5wcm90b3R5cGUuX2NvdW50Qml0cz1NYXRo'@; put 'LmNsejMyP2Z1bmN0aW9uKGcpe3JldHVybiAzMi1NYXRoLmNsejMyKGcpfTpmdW5jdGlvbihnKXt2YXIgeT1nLHg9MDtyZXR1cm4geT49NDA5NiYmKHgrPTEzLHk+Pj49MTMpLHk+PTY0JiYoeCs9Nyx5Pj4+PTcpLHk+PTgmJih4Kz00LHk+Pj49NCkseT49MiYmKHgrPTIseT4+Pj0yKSx4K3l9'@; put 'LHcucHJvdG90eXBlLl96ZXJvQml0cz1mdW5jdGlvbihnKXtpZigwPT09ZylyZXR1cm4gMjY7dmFyIHk9Zyx4PTA7cmV0dXJuIDgxOTEmeXx8KHgrPTEzLHk+Pj49MTMpLDEyNyZ5fHwoeCs9Nyx5Pj4+PTcpLDE1Jnl8fCh4Kz00LHk+Pj49NCksMyZ5fHwoeCs9Mix5Pj4+PTIpLDEmeXx8eCsr'@; put 'LHh9LHcucHJvdG90eXBlLmJpdExlbmd0aD1mdW5jdGlvbigpe3ZhciB5PXRoaXMuX2NvdW50Qml0cyh0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdKTtyZXR1cm4gMjYqKHRoaXMubGVuZ3RoLTEpK3l9LHcucHJvdG90eXBlLnplcm9CaXRzPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1plcm8oKSly'@; put 'ZXR1cm4gMDtmb3IodmFyIGc9MCx5PTA7eTx0aGlzLmxlbmd0aDt5Kyspe3ZhciB4PXRoaXMuX3plcm9CaXRzKHRoaXMud29yZHNbeV0pO2lmKGcrPXgsMjYhPT14KWJyZWFrfXJldHVybiBnfSx3LnByb3RvdHlwZS5ieXRlTGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguY2VpbCh0aGlz'@; put 'LmJpdExlbmd0aCgpLzgpfSx3LnByb3RvdHlwZS50b1R3b3M9ZnVuY3Rpb24oZyl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlP3RoaXMuYWJzKCkuaW5vdG4oZykuaWFkZG4oMSk6dGhpcy5jbG9uZSgpfSx3LnByb3RvdHlwZS5mcm9tVHdvcz1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy50ZXN0'@; put 'bihnLTEpP3RoaXMubm90bihnKS5pYWRkbigxKS5pbmVnKCk6dGhpcy5jbG9uZSgpfSx3LnByb3RvdHlwZS5pc05lZz1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZX0sdy5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbmVnKCl9LHcucHJv'@; put 'dG90eXBlLmluZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1plcm8oKXx8KHRoaXMubmVnYXRpdmVePTEpLHRoaXN9LHcucHJvdG90eXBlLml1b3I9ZnVuY3Rpb24oZyl7Zm9yKDt0aGlzLmxlbmd0aDxnLmxlbmd0aDspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO2Zvcih2YXIgeT0w'@; put 'O3k8Zy5sZW5ndGg7eSsrKXRoaXMud29yZHNbeV09dGhpcy53b3Jkc1t5XXxnLndvcmRzW3ldO3JldHVybiB0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLmlvcj1mdW5jdGlvbihnKXtyZXR1cm4gcCghKHRoaXMubmVnYXRpdmV8Zy5uZWdhdGl2ZSkpLHRoaXMuaXVvcihnKX0sdy5wcm90b3R5'@; put 'cGUub3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pb3IoZyk6Zy5jbG9uZSgpLmlvcih0aGlzKX0sdy5wcm90b3R5cGUudW9yPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaXVvcihnKTpn'@; put 'LmNsb25lKCkuaXVvcih0aGlzKX0sdy5wcm90b3R5cGUuaXVhbmQ9ZnVuY3Rpb24oZyl7dmFyIHk7eT10aGlzLmxlbmd0aD5nLmxlbmd0aD9nOnRoaXM7Zm9yKHZhciB4PTA7eDx5Lmxlbmd0aDt4KyspdGhpcy53b3Jkc1t4XT10aGlzLndvcmRzW3hdJmcud29yZHNbeF07cmV0dXJuIHRoaXMu'@; put 'bGVuZ3RoPXkubGVuZ3RoLHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuaWFuZD1mdW5jdGlvbihnKXtyZXR1cm4gcCghKHRoaXMubmVnYXRpdmV8Zy5uZWdhdGl2ZSkpLHRoaXMuaXVhbmQoZyl9LHcucHJvdG90eXBlLmFuZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5n'@; put 'dGg/dGhpcy5jbG9uZSgpLmlhbmQoZyk6Zy5jbG9uZSgpLmlhbmQodGhpcyl9LHcucHJvdG90eXBlLnVhbmQ9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdWFuZChnKTpnLmNsb25lKCkuaXVhbmQodGhpcyl9LHcucHJvdG90eXBlLml1eG9y'@; put 'PWZ1bmN0aW9uKGcpe3ZhciB5LHg7dGhpcy5sZW5ndGg+Zy5sZW5ndGg/KHk9dGhpcyx4PWcpOih5PWcseD10aGlzKTtmb3IodmFyIEM9MDtDPHgubGVuZ3RoO0MrKyl0aGlzLndvcmRzW0NdPXkud29yZHNbQ11eeC53b3Jkc1tDXTtpZih0aGlzIT09eSlmb3IoO0M8eS5sZW5ndGg7QysrKXRo'@; put 'aXMud29yZHNbQ109eS53b3Jkc1tDXTtyZXR1cm4gdGhpcy5sZW5ndGg9eS5sZW5ndGgsdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5peG9yPWZ1bmN0aW9uKGcpe3JldHVybiBwKCEodGhpcy5uZWdhdGl2ZXxnLm5lZ2F0aXZlKSksdGhpcy5pdXhvcihnKX0sdy5wcm90b3R5cGUueG9yPWZ1'@; put 'bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaXhvcihnKTpnLmNsb25lKCkuaXhvcih0aGlzKX0sdy5wcm90b3R5cGUudXhvcj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLml1eG9yKGcpOmcuY2xv'@; put 'bmUoKS5pdXhvcih0aGlzKX0sdy5wcm90b3R5cGUuaW5vdG49ZnVuY3Rpb24oZyl7cCgibnVtYmVyIj09dHlwZW9mIGcmJmc+PTApO3ZhciB5PTB8TWF0aC5jZWlsKGcvMjYpLHg9ZyUyNjt0aGlzLl9leHBhbmQoeSkseD4wJiZ5LS07Zm9yKHZhciBDPTA7Qzx5O0MrKyl0aGlzLndvcmRzW0Nd'@; put 'PTY3MTA4ODYzJn50aGlzLndvcmRzW0NdO3JldHVybiB4PjAmJih0aGlzLndvcmRzW0NdPX50aGlzLndvcmRzW0NdJjY3MTA4ODYzPj4yNi14KSx0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLm5vdG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbm90bihnKX0sdy5wcm90b3R5'@; put 'cGUuc2V0bj1mdW5jdGlvbihnLHkpe3AoIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgeD1nLzI2fDAsQz1nJTI2O3JldHVybiB0aGlzLl9leHBhbmQoeCsxKSx0aGlzLndvcmRzW3hdPXk/dGhpcy53b3Jkc1t4XXwxPDxDOnRoaXMud29yZHNbeF0mfigxPDxDKSx0aGlzLnN0cmlwKCl9'@; put 'LHcucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oZyl7dmFyIHkseCxDO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Zy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHk9dGhpcy5pc3ViKGcpLHRoaXMubmVnYXRpdmVePTEsdGhpcy5fbm9ybVNpZ24oKTtpZigwPT09dGhpcy5uZWdh'@; put 'dGl2ZSYmMCE9PWcubmVnYXRpdmUpcmV0dXJuIGcubmVnYXRpdmU9MCx5PXRoaXMuaXN1YihnKSxnLm5lZ2F0aXZlPTEseS5fbm9ybVNpZ24oKTt0aGlzLmxlbmd0aD5nLmxlbmd0aD8oeD10aGlzLEM9Zyk6KHg9ZyxDPXRoaXMpO2Zvcih2YXIgVD0wLFY9MDtWPEMubGVuZ3RoO1YrKyl0aGlz'@; put 'LndvcmRzW1ZdPTY3MTA4ODYzJih5PSgwfHgud29yZHNbVl0pKygwfEMud29yZHNbVl0pK1QpLFQ9eT4+PjI2O2Zvcig7MCE9PVQmJlY8eC5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09NjcxMDg4NjMmKHk9KDB8eC53b3Jkc1tWXSkrVCksVD15Pj4+MjY7aWYodGhpcy5sZW5ndGg9eC5sZW5n'@; put 'dGgsMCE9PVQpdGhpcy53b3Jkc1t0aGlzLmxlbmd0aF09VCx0aGlzLmxlbmd0aCsrO2Vsc2UgaWYoeCE9PXRoaXMpZm9yKDtWPHgubGVuZ3RoO1YrKyl0aGlzLndvcmRzW1ZdPXgud29yZHNbVl07cmV0dXJuIHRoaXN9LHcucHJvdG90eXBlLmFkZD1mdW5jdGlvbihnKXt2YXIgeTtyZXR1cm4g'@; put 'MCE9PWcubmVnYXRpdmUmJjA9PT10aGlzLm5lZ2F0aXZlPyhnLm5lZ2F0aXZlPTAseT10aGlzLnN1YihnKSxnLm5lZ2F0aXZlXj0xLHkpOjA9PT1nLm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLHk9Zy5zdWIodGhpcyksdGhpcy5uZWdhdGl2ZT0xLHkpOnRo'@; put 'aXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRkKGcpOmcuY2xvbmUoKS5pYWRkKHRoaXMpfSx3LnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKGcpe2lmKDAhPT1nLm5lZ2F0aXZlKXtnLm5lZ2F0aXZlPTA7dmFyIHk9dGhpcy5pYWRkKGcpO3JldHVybiBnLm5lZ2F0aXZlPTEseS5f'@; put 'bm9ybVNpZ24oKX1pZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZChnKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fbm9ybVNpZ24oKTt2YXIgQyxULHg9dGhpcy5jbXAoZyk7aWYoMD09PXgpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmxlbmd0'@; put 'aD0xLHRoaXMud29yZHNbMF09MCx0aGlzO3g+MD8oQz10aGlzLFQ9Zyk6KEM9ZyxUPXRoaXMpO2Zvcih2YXIgVj0wLFU9MDtVPFQubGVuZ3RoO1UrKylWPSh5PSgwfEMud29yZHNbVV0pLSgwfFQud29yZHNbVV0pK1YpPj4yNix0aGlzLndvcmRzW1VdPTY3MTA4ODYzJnk7Zm9yKDswIT09ViYm'@; put 'VTxDLmxlbmd0aDtVKyspVj0oeT0oMHxDLndvcmRzW1VdKStWKT4+MjYsdGhpcy53b3Jkc1tVXT02NzEwODg2MyZ5O2lmKDA9PT1WJiZVPEMubGVuZ3RoJiZDIT09dGhpcylmb3IoO1U8Qy5sZW5ndGg7VSsrKXRoaXMud29yZHNbVV09Qy53b3Jkc1tVXTtyZXR1cm4gdGhpcy5sZW5ndGg9TWF0'@; put 'aC5tYXgodGhpcy5sZW5ndGgsVSksQyE9PXRoaXMmJih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1YihnKX07dmFyIFo9ZnVuY3Rpb24oZyx5LHgpe3ZhciBFLG0sQSxDPWcud29yZHMsVD15'@; put 'LndvcmRzLFY9eC53b3JkcyxVPTAsYWU9MHxDWzBdLG5lPTgxOTEmYWUsbGU9YWU+Pj4xMyx3ZT0wfENbMV0sWmU9ODE5MSZ3ZSxRZT13ZT4+PjEzLGF0PTB8Q1syXSx4ZT04MTkxJmF0LHZlPWF0Pj4+MTMscWU9MHxDWzNdLGplPTgxOTEmcWUsQWU9cWU+Pj4xMyxGZT0wfENbNF0sUmU9ODE5'@; put 'MSZGZSxJZT1GZT4+PjEzLEhlPTB8Q1s1XSxEZT04MTkxJkhlLGtlPUhlPj4+MTMsX3Q9MHxDWzZdLG50PTgxOTEmX3QsSmU9X3Q+Pj4xMyxvbj0wfENbN10seXQ9ODE5MSZvbixNdD1vbj4+PjEzLEl0PTB8Q1s4XSxydD04MTkxJkl0LEtlPUl0Pj4+MTMsdHQ9MHxDWzldLE5lPTgxOTEmdHQs'@; put 'dXQ9dHQ+Pj4xMyxKdD0wfFRbMF0sTHQ9ODE5MSZKdCxQdD1KdD4+PjEzLG9pPTB8VFsxXSxlbj04MTkxJm9pLHNuPW9pPj4+MTMsSWk9MHxUWzJdLGRuPTgxOTEmSWksZnQ9SWk+Pj4xMyxGcj0wfFRbM10sWnQ9ODE5MSZGcixrdD1Gcj4+PjEzLExuPTB8VFs0XSxvdD04MTkxJkxuLHp0PUxu'@; put 'Pj4+MTMsbmk9MHxUWzVdLFdlPTgxOTEmbmksQXQ9bmk+Pj4xMyxpcj0wfFRbNl0saHQ9ODE5MSZpcixFdD1pcj4+PjEzLHpuPTB8VFs3XSxhbj04MTkxJnpuLGp0PXpuPj4+MTMsZGk9MHxUWzhdLGNuPTgxOTEmZGksZm49ZGk+Pj4xMyxEaT0wfFRbOV0sUXQ9ODE5MSZEaSx0bj1EaT4+PjEz'@; put 'O3gubmVnYXRpdmU9Zy5uZWdhdGl2ZV55Lm5lZ2F0aXZlLHgubGVuZ3RoPTE5O3ZhciBjYT0oVSsoRT1NYXRoLmltdWwobmUsTHQpKXwwKSsoKDgxOTEmKG09KG09TWF0aC5pbXVsKG5lLFB0KSkrTWF0aC5pbXVsKGxlLEx0KXwwKSk8PDEzKXwwO1U9KChBPU1hdGguaW11bChsZSxQdCkpKyht'@; put 'Pj4+MTMpfDApKyhjYT4+PjI2KXwwLGNhJj02NzEwODg2MyxFPU1hdGguaW11bChaZSxMdCksbT0obT1NYXRoLmltdWwoWmUsUHQpKStNYXRoLmltdWwoUWUsTHQpfDAsQT1NYXRoLmltdWwoUWUsUHQpO3ZhciB4aT0oVSsoRT1FK01hdGguaW11bChuZSxlbil8MCl8MCkrKCg4MTkxJihtPSht'@; put 'PW0rTWF0aC5pbXVsKG5lLHNuKXwwKStNYXRoLmltdWwobGUsZW4pfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwobGUsc24pfDApKyhtPj4+MTMpfDApKyh4aT4+PjI2KXwwLHhpJj02NzEwODg2MyxFPU1hdGguaW11bCh4ZSxMdCksbT0obT1NYXRoLmltdWwoeGUsUHQpKStNYXRoLmlt'@; put 'dWwodmUsTHQpfDAsQT1NYXRoLmltdWwodmUsUHQpLEU9RStNYXRoLmltdWwoWmUsZW4pfDAsbT0obT1tK01hdGguaW11bChaZSxzbil8MCkrTWF0aC5pbXVsKFFlLGVuKXwwLEE9QStNYXRoLmltdWwoUWUsc24pfDA7dmFyIHlyPShVKyhFPUUrTWF0aC5pbXVsKG5lLGRuKXwwKXwwKSsoKDgx'@; put 'OTEmKG09KG09bStNYXRoLmltdWwobmUsZnQpfDApK01hdGguaW11bChsZSxkbil8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSxmdCl8MCkrKG0+Pj4xMyl8MCkrKHlyPj4+MjYpfDAseXImPTY3MTA4ODYzLEU9TWF0aC5pbXVsKGplLEx0KSxtPShtPU1hdGguaW11bChqZSxQdCkp'@; put 'K01hdGguaW11bChBZSxMdCl8MCxBPU1hdGguaW11bChBZSxQdCksRT1FK01hdGguaW11bCh4ZSxlbil8MCxtPShtPW0rTWF0aC5pbXVsKHhlLHNuKXwwKStNYXRoLmltdWwodmUsZW4pfDAsQT1BK01hdGguaW11bCh2ZSxzbil8MCxFPUUrTWF0aC5pbXVsKFplLGRuKXwwLG09KG09bStNYXRo'@; put 'LmltdWwoWmUsZnQpfDApK01hdGguaW11bChRZSxkbil8MCxBPUErTWF0aC5pbXVsKFFlLGZ0KXwwO3ZhciBHbj0oVSsoRT1FK01hdGguaW11bChuZSxadCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLGt0KXwwKStNYXRoLmltdWwobGUsWnQpfDApKTw8MTMpfDA7VT0oKEE9'@; put 'QStNYXRoLmltdWwobGUsa3QpfDApKyhtPj4+MTMpfDApKyhHbj4+PjI2KXwwLEduJj02NzEwODg2MyxFPU1hdGguaW11bChSZSxMdCksbT0obT1NYXRoLmltdWwoUmUsUHQpKStNYXRoLmltdWwoSWUsTHQpfDAsQT1NYXRoLmltdWwoSWUsUHQpLEU9RStNYXRoLmltdWwoamUsZW4pfDAsbT0o'@; put 'bT1tK01hdGguaW11bChqZSxzbil8MCkrTWF0aC5pbXVsKEFlLGVuKXwwLEE9QStNYXRoLmltdWwoQWUsc24pfDAsRT1FK01hdGguaW11bCh4ZSxkbil8MCxtPShtPW0rTWF0aC5pbXVsKHhlLGZ0KXwwKStNYXRoLmltdWwodmUsZG4pfDAsQT1BK01hdGguaW11bCh2ZSxmdCl8MCxFPUUrTWF0'@; put 'aC5pbXVsKFplLFp0KXwwLG09KG09bStNYXRoLmltdWwoWmUsa3QpfDApK01hdGguaW11bChRZSxadCl8MCxBPUErTWF0aC5pbXVsKFFlLGt0KXwwO3ZhciBLaT0oVSsoRT1FK01hdGguaW11bChuZSxvdCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLHp0KXwwKStNYXRoLmlt'@; put 'dWwobGUsb3QpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwobGUsenQpfDApKyhtPj4+MTMpfDApKyhLaT4+PjI2KXwwLEtpJj02NzEwODg2MyxFPU1hdGguaW11bChEZSxMdCksbT0obT1NYXRoLmltdWwoRGUsUHQpKStNYXRoLmltdWwoa2UsTHQpfDAsQT1NYXRoLmltdWwoa2UsUHQp'@; put 'LEU9RStNYXRoLmltdWwoUmUsZW4pfDAsbT0obT1tK01hdGguaW11bChSZSxzbil8MCkrTWF0aC5pbXVsKEllLGVuKXwwLEE9QStNYXRoLmltdWwoSWUsc24pfDAsRT1FK01hdGguaW11bChqZSxkbil8MCxtPShtPW0rTWF0aC5pbXVsKGplLGZ0KXwwKStNYXRoLmltdWwoQWUsZG4pfDAsQT1B'@; put 'K01hdGguaW11bChBZSxmdCl8MCxFPUUrTWF0aC5pbXVsKHhlLFp0KXwwLG09KG09bStNYXRoLmltdWwoeGUsa3QpfDApK01hdGguaW11bCh2ZSxadCl8MCxBPUErTWF0aC5pbXVsKHZlLGt0KXwwLEU9RStNYXRoLmltdWwoWmUsb3QpfDAsbT0obT1tK01hdGguaW11bChaZSx6dCl8MCkrTWF0'@; put 'aC5pbXVsKFFlLG90KXwwLEE9QStNYXRoLmltdWwoUWUsenQpfDA7dmFyIEpyPShVKyhFPUUrTWF0aC5pbXVsKG5lLFdlKXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsQXQpfDApK01hdGguaW11bChsZSxXZSl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSxBdCl8'@; put 'MCkrKG0+Pj4xMyl8MCkrKEpyPj4+MjYpfDAsSnImPTY3MTA4ODYzLEU9TWF0aC5pbXVsKG50LEx0KSxtPShtPU1hdGguaW11bChudCxQdCkpK01hdGguaW11bChKZSxMdCl8MCxBPU1hdGguaW11bChKZSxQdCksRT1FK01hdGguaW11bChEZSxlbil8MCxtPShtPW0rTWF0aC5pbXVsKERlLHNu'@; put 'KXwwKStNYXRoLmltdWwoa2UsZW4pfDAsQT1BK01hdGguaW11bChrZSxzbil8MCxFPUUrTWF0aC5pbXVsKFJlLGRuKXwwLG09KG09bStNYXRoLmltdWwoUmUsZnQpfDApK01hdGguaW11bChJZSxkbil8MCxBPUErTWF0aC5pbXVsKEllLGZ0KXwwLEU9RStNYXRoLmltdWwoamUsWnQpfDAsbT0o'@; put 'bT1tK01hdGguaW11bChqZSxrdCl8MCkrTWF0aC5pbXVsKEFlLFp0KXwwLEE9QStNYXRoLmltdWwoQWUsa3QpfDAsRT1FK01hdGguaW11bCh4ZSxvdCl8MCxtPShtPW0rTWF0aC5pbXVsKHhlLHp0KXwwKStNYXRoLmltdWwodmUsb3QpfDAsQT1BK01hdGguaW11bCh2ZSx6dCl8MCxFPUUrTWF0'@; put 'aC5pbXVsKFplLFdlKXwwLG09KG09bStNYXRoLmltdWwoWmUsQXQpfDApK01hdGguaW11bChRZSxXZSl8MCxBPUErTWF0aC5pbXVsKFFlLEF0KXwwO3ZhciBRcj0oVSsoRT1FK01hdGguaW11bChuZSxodCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLEV0KXwwKStNYXRoLmlt'@; put 'dWwobGUsaHQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwobGUsRXQpfDApKyhtPj4+MTMpfDApKyhRcj4+PjI2KXwwLFFyJj02NzEwODg2MyxFPU1hdGguaW11bCh5dCxMdCksbT0obT1NYXRoLmltdWwoeXQsUHQpKStNYXRoLmltdWwoTXQsTHQpfDAsQT1NYXRoLmltdWwoTXQsUHQp'@; put 'LEU9RStNYXRoLmltdWwobnQsZW4pfDAsbT0obT1tK01hdGguaW11bChudCxzbil8MCkrTWF0aC5pbXVsKEplLGVuKXwwLEE9QStNYXRoLmltdWwoSmUsc24pfDAsRT1FK01hdGguaW11bChEZSxkbil8MCxtPShtPW0rTWF0aC5pbXVsKERlLGZ0KXwwKStNYXRoLmltdWwoa2UsZG4pfDAsQT1B'@; put 'K01hdGguaW11bChrZSxmdCl8MCxFPUUrTWF0aC5pbXVsKFJlLFp0KXwwLG09KG09bStNYXRoLmltdWwoUmUsa3QpfDApK01hdGguaW11bChJZSxadCl8MCxBPUErTWF0aC5pbXVsKEllLGt0KXwwLEU9RStNYXRoLmltdWwoamUsb3QpfDAsbT0obT1tK01hdGguaW11bChqZSx6dCl8MCkrTWF0'@; put 'aC5pbXVsKEFlLG90KXwwLEE9QStNYXRoLmltdWwoQWUsenQpfDAsRT1FK01hdGguaW11bCh4ZSxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKHhlLEF0KXwwKStNYXRoLmltdWwodmUsV2UpfDAsQT1BK01hdGguaW11bCh2ZSxBdCl8MCxFPUUrTWF0aC5pbXVsKFplLGh0KXwwLG09KG09bStNYXRo'@; put 'LmltdWwoWmUsRXQpfDApK01hdGguaW11bChRZSxodCl8MCxBPUErTWF0aC5pbXVsKFFlLEV0KXwwO3ZhciBOaT0oVSsoRT1FK01hdGguaW11bChuZSxhbil8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLGp0KXwwKStNYXRoLmltdWwobGUsYW4pfDApKTw8MTMpfDA7VT0oKEE9'@; put 'QStNYXRoLmltdWwobGUsanQpfDApKyhtPj4+MTMpfDApKyhOaT4+PjI2KXwwLE5pJj02NzEwODg2MyxFPU1hdGguaW11bChydCxMdCksbT0obT1NYXRoLmltdWwocnQsUHQpKStNYXRoLmltdWwoS2UsTHQpfDAsQT1NYXRoLmltdWwoS2UsUHQpLEU9RStNYXRoLmltdWwoeXQsZW4pfDAsbT0o'@; put 'bT1tK01hdGguaW11bCh5dCxzbil8MCkrTWF0aC5pbXVsKE10LGVuKXwwLEE9QStNYXRoLmltdWwoTXQsc24pfDAsRT1FK01hdGguaW11bChudCxkbil8MCxtPShtPW0rTWF0aC5pbXVsKG50LGZ0KXwwKStNYXRoLmltdWwoSmUsZG4pfDAsQT1BK01hdGguaW11bChKZSxmdCl8MCxFPUUrTWF0'@; put 'aC5pbXVsKERlLFp0KXwwLG09KG09bStNYXRoLmltdWwoRGUsa3QpfDApK01hdGguaW11bChrZSxadCl8MCxBPUErTWF0aC5pbXVsKGtlLGt0KXwwLEU9RStNYXRoLmltdWwoUmUsb3QpfDAsbT0obT1tK01hdGguaW11bChSZSx6dCl8MCkrTWF0aC5pbXVsKEllLG90KXwwLEE9QStNYXRoLmlt'@; put 'dWwoSWUsenQpfDAsRT1FK01hdGguaW11bChqZSxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKGplLEF0KXwwKStNYXRoLmltdWwoQWUsV2UpfDAsQT1BK01hdGguaW11bChBZSxBdCl8MCxFPUUrTWF0aC5pbXVsKHhlLGh0KXwwLG09KG09bStNYXRoLmltdWwoeGUsRXQpfDApK01hdGguaW11bCh2'@; put 'ZSxodCl8MCxBPUErTWF0aC5pbXVsKHZlLEV0KXwwLEU9RStNYXRoLmltdWwoWmUsYW4pfDAsbT0obT1tK01hdGguaW11bChaZSxqdCl8MCkrTWF0aC5pbXVsKFFlLGFuKXwwLEE9QStNYXRoLmltdWwoUWUsanQpfDA7dmFyIEhpPShVKyhFPUUrTWF0aC5pbXVsKG5lLGNuKXwwKXwwKSsoKDgx'@; put 'OTEmKG09KG09bStNYXRoLmltdWwobmUsZm4pfDApK01hdGguaW11bChsZSxjbil8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSxmbil8MCkrKG0+Pj4xMyl8MCkrKEhpPj4+MjYpfDAsSGkmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLEx0KSxtPShtPU1hdGguaW11bChOZSxQdCkp'@; put 'K01hdGguaW11bCh1dCxMdCl8MCxBPU1hdGguaW11bCh1dCxQdCksRT1FK01hdGguaW11bChydCxlbil8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LHNuKXwwKStNYXRoLmltdWwoS2UsZW4pfDAsQT1BK01hdGguaW11bChLZSxzbil8MCxFPUUrTWF0aC5pbXVsKHl0LGRuKXwwLG09KG09bStNYXRo'@; put 'LmltdWwoeXQsZnQpfDApK01hdGguaW11bChNdCxkbil8MCxBPUErTWF0aC5pbXVsKE10LGZ0KXwwLEU9RStNYXRoLmltdWwobnQsWnQpfDAsbT0obT1tK01hdGguaW11bChudCxrdCl8MCkrTWF0aC5pbXVsKEplLFp0KXwwLEE9QStNYXRoLmltdWwoSmUsa3QpfDAsRT1FK01hdGguaW11bChE'@; put 'ZSxvdCl8MCxtPShtPW0rTWF0aC5pbXVsKERlLHp0KXwwKStNYXRoLmltdWwoa2Usb3QpfDAsQT1BK01hdGguaW11bChrZSx6dCl8MCxFPUUrTWF0aC5pbXVsKFJlLFdlKXwwLG09KG09bStNYXRoLmltdWwoUmUsQXQpfDApK01hdGguaW11bChJZSxXZSl8MCxBPUErTWF0aC5pbXVsKEllLEF0'@; put 'KXwwLEU9RStNYXRoLmltdWwoamUsaHQpfDAsbT0obT1tK01hdGguaW11bChqZSxFdCl8MCkrTWF0aC5pbXVsKEFlLGh0KXwwLEE9QStNYXRoLmltdWwoQWUsRXQpfDAsRT1FK01hdGguaW11bCh4ZSxhbil8MCxtPShtPW0rTWF0aC5pbXVsKHhlLGp0KXwwKStNYXRoLmltdWwodmUsYW4pfDAs'@; put 'QT1BK01hdGguaW11bCh2ZSxqdCl8MCxFPUUrTWF0aC5pbXVsKFplLGNuKXwwLG09KG09bStNYXRoLmltdWwoWmUsZm4pfDApK01hdGguaW11bChRZSxjbil8MCxBPUErTWF0aC5pbXVsKFFlLGZuKXwwO3ZhciBJYT0oVSsoRT1FK01hdGguaW11bChuZSxRdCl8MCl8MCkrKCg4MTkxJihtPSht'@; put 'PW0rTWF0aC5pbXVsKG5lLHRuKXwwKStNYXRoLmltdWwobGUsUXQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwobGUsdG4pfDApKyhtPj4+MTMpfDApKyhJYT4+PjI2KXwwLElhJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxlbiksbT0obT1NYXRoLmltdWwoTmUsc24pKStNYXRoLmlt'@; put 'dWwodXQsZW4pfDAsQT1NYXRoLmltdWwodXQsc24pLEU9RStNYXRoLmltdWwocnQsZG4pfDAsbT0obT1tK01hdGguaW11bChydCxmdCl8MCkrTWF0aC5pbXVsKEtlLGRuKXwwLEE9QStNYXRoLmltdWwoS2UsZnQpfDAsRT1FK01hdGguaW11bCh5dCxadCl8MCxtPShtPW0rTWF0aC5pbXVsKHl0'@; put 'LGt0KXwwKStNYXRoLmltdWwoTXQsWnQpfDAsQT1BK01hdGguaW11bChNdCxrdCl8MCxFPUUrTWF0aC5pbXVsKG50LG90KXwwLG09KG09bStNYXRoLmltdWwobnQsenQpfDApK01hdGguaW11bChKZSxvdCl8MCxBPUErTWF0aC5pbXVsKEplLHp0KXwwLEU9RStNYXRoLmltdWwoRGUsV2UpfDAs'@; put 'bT0obT1tK01hdGguaW11bChEZSxBdCl8MCkrTWF0aC5pbXVsKGtlLFdlKXwwLEE9QStNYXRoLmltdWwoa2UsQXQpfDAsRT1FK01hdGguaW11bChSZSxodCl8MCxtPShtPW0rTWF0aC5pbXVsKFJlLEV0KXwwKStNYXRoLmltdWwoSWUsaHQpfDAsQT1BK01hdGguaW11bChJZSxFdCl8MCxFPUUr'@; put 'TWF0aC5pbXVsKGplLGFuKXwwLG09KG09bStNYXRoLmltdWwoamUsanQpfDApK01hdGguaW11bChBZSxhbil8MCxBPUErTWF0aC5pbXVsKEFlLGp0KXwwLEU9RStNYXRoLmltdWwoeGUsY24pfDAsbT0obT1tK01hdGguaW11bCh4ZSxmbil8MCkrTWF0aC5pbXVsKHZlLGNuKXwwLEE9QStNYXRo'@; put 'LmltdWwodmUsZm4pfDA7dmFyIFByPShVKyhFPUUrTWF0aC5pbXVsKFplLFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwoWmUsdG4pfDApK01hdGguaW11bChRZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChRZSx0bil8MCkrKG0+Pj4xMyl8MCkrKFByPj4+MjYp'@; put 'fDAsUHImPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLGRuKSxtPShtPU1hdGguaW11bChOZSxmdCkpK01hdGguaW11bCh1dCxkbil8MCxBPU1hdGguaW11bCh1dCxmdCksRT1FK01hdGguaW11bChydCxadCl8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LGt0KXwwKStNYXRoLmltdWwoS2UsWnQpfDAs'@; put 'QT1BK01hdGguaW11bChLZSxrdCl8MCxFPUUrTWF0aC5pbXVsKHl0LG90KXwwLG09KG09bStNYXRoLmltdWwoeXQsenQpfDApK01hdGguaW11bChNdCxvdCl8MCxBPUErTWF0aC5pbXVsKE10LHp0KXwwLEU9RStNYXRoLmltdWwobnQsV2UpfDAsbT0obT1tK01hdGguaW11bChudCxBdCl8MCkr'@; put 'TWF0aC5pbXVsKEplLFdlKXwwLEE9QStNYXRoLmltdWwoSmUsQXQpfDAsRT1FK01hdGguaW11bChEZSxodCl8MCxtPShtPW0rTWF0aC5pbXVsKERlLEV0KXwwKStNYXRoLmltdWwoa2UsaHQpfDAsQT1BK01hdGguaW11bChrZSxFdCl8MCxFPUUrTWF0aC5pbXVsKFJlLGFuKXwwLG09KG09bStN'@; put 'YXRoLmltdWwoUmUsanQpfDApK01hdGguaW11bChJZSxhbil8MCxBPUErTWF0aC5pbXVsKEllLGp0KXwwLEU9RStNYXRoLmltdWwoamUsY24pfDAsbT0obT1tK01hdGguaW11bChqZSxmbil8MCkrTWF0aC5pbXVsKEFlLGNuKXwwLEE9QStNYXRoLmltdWwoQWUsZm4pfDA7dmFyIFlpPShVKyhF'@; put 'PUUrTWF0aC5pbXVsKHhlLFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwoeGUsdG4pfDApK01hdGguaW11bCh2ZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bCh2ZSx0bil8MCkrKG0+Pj4xMyl8MCkrKFlpPj4+MjYpfDAsWWkmPTY3MTA4ODYzLEU9TWF0aC5pbXVs'@; put 'KE5lLFp0KSxtPShtPU1hdGguaW11bChOZSxrdCkpK01hdGguaW11bCh1dCxadCl8MCxBPU1hdGguaW11bCh1dCxrdCksRT1FK01hdGguaW11bChydCxvdCl8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LHp0KXwwKStNYXRoLmltdWwoS2Usb3QpfDAsQT1BK01hdGguaW11bChLZSx6dCl8MCxFPUUr'@; put 'TWF0aC5pbXVsKHl0LFdlKXwwLG09KG09bStNYXRoLmltdWwoeXQsQXQpfDApK01hdGguaW11bChNdCxXZSl8MCxBPUErTWF0aC5pbXVsKE10LEF0KXwwLEU9RStNYXRoLmltdWwobnQsaHQpfDAsbT0obT1tK01hdGguaW11bChudCxFdCl8MCkrTWF0aC5pbXVsKEplLGh0KXwwLEE9QStNYXRo'@; put 'LmltdWwoSmUsRXQpfDAsRT1FK01hdGguaW11bChEZSxhbil8MCxtPShtPW0rTWF0aC5pbXVsKERlLGp0KXwwKStNYXRoLmltdWwoa2UsYW4pfDAsQT1BK01hdGguaW11bChrZSxqdCl8MCxFPUUrTWF0aC5pbXVsKFJlLGNuKXwwLG09KG09bStNYXRoLmltdWwoUmUsZm4pfDApK01hdGguaW11'@; put 'bChJZSxjbil8MCxBPUErTWF0aC5pbXVsKEllLGZuKXwwO3ZhciBmYT0oVSsoRT1FK01hdGguaW11bChqZSxRdCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKGplLHRuKXwwKStNYXRoLmltdWwoQWUsUXQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwoQWUsdG4pfDApKyht'@; put 'Pj4+MTMpfDApKyhmYT4+PjI2KXwwLGZhJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxvdCksbT0obT1NYXRoLmltdWwoTmUsenQpKStNYXRoLmltdWwodXQsb3QpfDAsQT1NYXRoLmltdWwodXQsenQpLEU9RStNYXRoLmltdWwocnQsV2UpfDAsbT0obT1tK01hdGguaW11bChydCxBdCl8MCkr'@; put 'TWF0aC5pbXVsKEtlLFdlKXwwLEE9QStNYXRoLmltdWwoS2UsQXQpfDAsRT1FK01hdGguaW11bCh5dCxodCl8MCxtPShtPW0rTWF0aC5pbXVsKHl0LEV0KXwwKStNYXRoLmltdWwoTXQsaHQpfDAsQT1BK01hdGguaW11bChNdCxFdCl8MCxFPUUrTWF0aC5pbXVsKG50LGFuKXwwLG09KG09bStN'@; put 'YXRoLmltdWwobnQsanQpfDApK01hdGguaW11bChKZSxhbil8MCxBPUErTWF0aC5pbXVsKEplLGp0KXwwLEU9RStNYXRoLmltdWwoRGUsY24pfDAsbT0obT1tK01hdGguaW11bChEZSxmbil8MCkrTWF0aC5pbXVsKGtlLGNuKXwwLEE9QStNYXRoLmltdWwoa2UsZm4pfDA7dmFyIG5yPShVKyhF'@; put 'PUUrTWF0aC5pbXVsKFJlLFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwoUmUsdG4pfDApK01hdGguaW11bChJZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChJZSx0bil8MCkrKG0+Pj4xMyl8MCkrKG5yPj4+MjYpfDAsbnImPTY3MTA4ODYzLEU9TWF0aC5pbXVs'@; put 'KE5lLFdlKSxtPShtPU1hdGguaW11bChOZSxBdCkpK01hdGguaW11bCh1dCxXZSl8MCxBPU1hdGguaW11bCh1dCxBdCksRT1FK01hdGguaW11bChydCxodCl8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LEV0KXwwKStNYXRoLmltdWwoS2UsaHQpfDAsQT1BK01hdGguaW11bChLZSxFdCl8MCxFPUUr'@; put 'TWF0aC5pbXVsKHl0LGFuKXwwLG09KG09bStNYXRoLmltdWwoeXQsanQpfDApK01hdGguaW11bChNdCxhbil8MCxBPUErTWF0aC5pbXVsKE10LGp0KXwwLEU9RStNYXRoLmltdWwobnQsY24pfDAsbT0obT1tK01hdGguaW11bChudCxmbil8MCkrTWF0aC5pbXVsKEplLGNuKXwwLEE9QStNYXRo'@; put 'LmltdWwoSmUsZm4pfDA7dmFyIG9hPShVKyhFPUUrTWF0aC5pbXVsKERlLFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwoRGUsdG4pfDApK01hdGguaW11bChrZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChrZSx0bil8MCkrKG0+Pj4xMyl8MCkrKG9hPj4+MjYp'@; put 'fDAsb2EmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLGh0KSxtPShtPU1hdGguaW11bChOZSxFdCkpK01hdGguaW11bCh1dCxodCl8MCxBPU1hdGguaW11bCh1dCxFdCksRT1FK01hdGguaW11bChydCxhbil8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LGp0KXwwKStNYXRoLmltdWwoS2UsYW4pfDAs'@; put 'QT1BK01hdGguaW11bChLZSxqdCl8MCxFPUUrTWF0aC5pbXVsKHl0LGNuKXwwLG09KG09bStNYXRoLmltdWwoeXQsZm4pfDApK01hdGguaW11bChNdCxjbil8MCxBPUErTWF0aC5pbXVsKE10LGZuKXwwO3ZhciBfYT0oVSsoRT1FK01hdGguaW11bChudCxRdCl8MCl8MCkrKCg4MTkxJihtPSht'@; put 'PW0rTWF0aC5pbXVsKG50LHRuKXwwKStNYXRoLmltdWwoSmUsUXQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwoSmUsdG4pfDApKyhtPj4+MTMpfDApKyhfYT4+PjI2KXwwLF9hJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxhbiksbT0obT1NYXRoLmltdWwoTmUsanQpKStNYXRoLmlt'@; put 'dWwodXQsYW4pfDAsQT1NYXRoLmltdWwodXQsanQpLEU9RStNYXRoLmltdWwocnQsY24pfDAsbT0obT1tK01hdGguaW11bChydCxmbil8MCkrTWF0aC5pbXVsKEtlLGNuKXwwLEE9QStNYXRoLmltdWwoS2UsZm4pfDA7dmFyIE9hPShVKyhFPUUrTWF0aC5pbXVsKHl0LFF0KXwwKXwwKSsoKDgx'@; put 'OTEmKG09KG09bStNYXRoLmltdWwoeXQsdG4pfDApK01hdGguaW11bChNdCxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChNdCx0bil8MCkrKG0+Pj4xMyl8MCkrKE9hPj4+MjYpfDAsT2EmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLGNuKSxtPShtPU1hdGguaW11bChOZSxmbikp'@; put 'K01hdGguaW11bCh1dCxjbil8MCxBPU1hdGguaW11bCh1dCxmbik7dmFyIE5hPShVKyhFPUUrTWF0aC5pbXVsKHJ0LFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwocnQsdG4pfDApK01hdGguaW11bChLZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChLZSx0bil8'@; put 'MCkrKG0+Pj4xMyl8MCkrKE5hPj4+MjYpfDAsTmEmPTY3MTA4ODYzO3ZhciBlaT0oVSsoRT1NYXRoLmltdWwoTmUsUXQpKXwwKSsoKDgxOTEmKG09KG09TWF0aC5pbXVsKE5lLHRuKSkrTWF0aC5pbXVsKHV0LFF0KXwwKSk8PDEzKXwwO3JldHVybiBVPSgoQT1NYXRoLmltdWwodXQsdG4pKSso'@; put 'bT4+PjEzKXwwKSsoZWk+Pj4yNil8MCxlaSY9NjcxMDg4NjMsVlswXT1jYSxWWzFdPXhpLFZbMl09eXIsVlszXT1HbixWWzRdPUtpLFZbNV09SnIsVls2XT1RcixWWzddPU5pLFZbOF09SGksVls5XT1JYSxWWzEwXT1QcixWWzExXT1ZaSxWWzEyXT1mYSxWWzEzXT1ucixWWzE0XT1vYSxWWzE1'@; put 'XT1fYSxWWzE2XT1PYSxWWzE3XT1OYSxWWzE4XT1laSwwIT09VSYmKFZbMTldPVUseC5sZW5ndGgrKykseH07ZnVuY3Rpb24gUSh6LGcseSl7cmV0dXJuKG5ldyBxKS5tdWxwKHosZyx5KX1mdW5jdGlvbiBxKHosZyl7dGhpcy54PXosdGhpcy55PWd9TWF0aC5pbXVsfHwoWj1XKSx3LnByb3Rv'@; put 'dHlwZS5tdWxUbz1mdW5jdGlvbihnLHkpe3ZhciB4LEM9dGhpcy5sZW5ndGgrZy5sZW5ndGg7cmV0dXJuIHg9MTA9PT10aGlzLmxlbmd0aCYmMTA9PT1nLmxlbmd0aD9aKHRoaXMsZyx5KTpDPDYzP1codGhpcyxnLHkpOkM8MTAyND9mdW5jdGlvbiBYKHosZyx5KXt5Lm5lZ2F0aXZlPWcubmVn'@; put 'YXRpdmVeei5uZWdhdGl2ZSx5Lmxlbmd0aD16Lmxlbmd0aCtnLmxlbmd0aDtmb3IodmFyIHg9MCxDPTAsVD0wO1Q8eS5sZW5ndGgtMTtUKyspe3ZhciBWPUM7Qz0wO2Zvcih2YXIgVT02NzEwODg2MyZ4LEU9TWF0aC5taW4oVCxnLmxlbmd0aC0xKSxtPU1hdGgubWF4KDAsVC16Lmxlbmd0aCsx'@; put 'KTttPD1FO20rKyl7dmFyIGxlPSgwfHoud29yZHNbVC1tXSkqKDB8Zy53b3Jkc1ttXSksd2U9NjcxMDg4NjMmbGU7VT02NzEwODg2MyYod2U9d2UrVXwwKSxDKz0oVj0oVj1WKyhsZS82NzEwODg2NHwwKXwwKSsod2U+Pj4yNil8MCk+Pj4yNixWJj02NzEwODg2M315LndvcmRzW1RdPVUseD1W'@; put 'LFY9Q31yZXR1cm4gMCE9PXg/eS53b3Jkc1tUXT14OnkubGVuZ3RoLS0seS5zdHJpcCgpfSh0aGlzLGcseSk6USh0aGlzLGcseSkseH0scS5wcm90b3R5cGUubWFrZVJCVD1mdW5jdGlvbihnKXtmb3IodmFyIHk9bmV3IEFycmF5KGcpLHg9dy5wcm90b3R5cGUuX2NvdW50Qml0cyhnKS0xLEM9'@; put 'MDtDPGc7QysrKXlbQ109dGhpcy5yZXZCaW4oQyx4LGcpO3JldHVybiB5fSxxLnByb3RvdHlwZS5yZXZCaW49ZnVuY3Rpb24oZyx5LHgpe2lmKDA9PT1nfHxnPT09eC0xKXJldHVybiBnO2Zvcih2YXIgQz0wLFQ9MDtUPHk7VCsrKUN8PSgxJmcpPDx5LVQtMSxnPj49MTtyZXR1cm4gQ30scS5w'@; put 'cm90b3R5cGUucGVybXV0ZT1mdW5jdGlvbihnLHkseCxDLFQsVil7Zm9yKHZhciBVPTA7VTxWO1UrKylDW1VdPXlbZ1tVXV0sVFtVXT14W2dbVV1dfSxxLnByb3RvdHlwZS50cmFuc2Zvcm09ZnVuY3Rpb24oZyx5LHgsQyxULFYpe3RoaXMucGVybXV0ZShWLGcseSx4LEMsVCk7Zm9yKHZhciBV'@; put 'PTE7VTxUO1U8PD0xKWZvcih2YXIgRT1VPDwxLG09TWF0aC5jb3MoMipNYXRoLlBJL0UpLEE9TWF0aC5zaW4oMipNYXRoLlBJL0UpLGFlPTA7YWU8VDthZSs9RSlmb3IodmFyIG5lPW0sbGU9QSx3ZT0wO3dlPFU7d2UrKyl7dmFyIFplPXhbYWUrd2VdLFFlPUNbYWUrd2VdLGF0PXhbYWUrd2Ur'@; put 'VV0seGU9Q1thZSt3ZStVXSx2ZT1uZSphdC1sZSp4ZTt4ZT1uZSp4ZStsZSphdCx4W2FlK3dlXT1aZSsoYXQ9dmUpLENbYWUrd2VdPVFlK3hlLHhbYWUrd2UrVV09WmUtYXQsQ1thZSt3ZStVXT1RZS14ZSx3ZSE9PUUmJih2ZT1tKm5lLUEqbGUsbGU9bSpsZStBKm5lLG5lPXZlKX19LHEucHJv'@; put 'dG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKGcseSl7dmFyIHg9MXxNYXRoLm1heCh5LGcpLEM9MSZ4LFQ9MDtmb3IoeD14LzJ8MDt4O3g+Pj49MSlUKys7cmV0dXJuIDE8PFQrMStDfSxxLnByb3RvdHlwZS5jb25qdWdhdGU9ZnVuY3Rpb24oZyx5LHgpe2lmKCEoeDw9MSkpZm9yKHZhciBD'@; put 'PTA7Qzx4LzI7QysrKXt2YXIgVD1nW0NdO2dbQ109Z1t4LUMtMV0sZ1t4LUMtMV09VCxUPXlbQ10seVtDXT0teVt4LUMtMV0seVt4LUMtMV09LVR9fSxxLnByb3RvdHlwZS5ub3JtYWxpemUxM2I9ZnVuY3Rpb24oZyx5KXtmb3IodmFyIHg9MCxDPTA7Qzx5LzI7QysrKXt2YXIgVD04MTkyKk1h'@; put 'dGgucm91bmQoZ1syKkMrMV0veSkrTWF0aC5yb3VuZChnWzIqQ10veSkreDtnW0NdPTY3MTA4ODYzJlQseD1UPDY3MTA4ODY0PzA6VC82NzEwODg2NHwwfXJldHVybiBnfSxxLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKGcseSx4LEMpe2Zvcih2YXIgVD0wLFY9MDtWPHk7VisrKXhb'@; put 'MipWXT04MTkxJihUKz0wfGdbVl0pLHhbMipWKzFdPTgxOTEmKFQ+Pj49MTMpLFQ+Pj49MTM7Zm9yKFY9Mip5O1Y8QzsrK1YpeFtWXT0wO3AoMD09PVQpLHAoISgtODE5MiZUKSl9LHEucHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24oZyl7Zm9yKHZhciB5PW5ldyBBcnJheShnKSx4PTA7eDxnO3gr'@; put 'Kyl5W3hdPTA7cmV0dXJuIHl9LHEucHJvdG90eXBlLm11bHA9ZnVuY3Rpb24oZyx5LHgpe3ZhciBDPTIqdGhpcy5ndWVzc0xlbjEzYihnLmxlbmd0aCx5Lmxlbmd0aCksVD10aGlzLm1ha2VSQlQoQyksVj10aGlzLnN0dWIoQyksVT1uZXcgQXJyYXkoQyksRT1uZXcgQXJyYXkoQyksbT1uZXcg'@; put 'QXJyYXkoQyksQT1uZXcgQXJyYXkoQyksYWU9bmV3IEFycmF5KEMpLG5lPW5ldyBBcnJheShDKSxsZT14LndvcmRzO2xlLmxlbmd0aD1DLHRoaXMuY29udmVydDEzYihnLndvcmRzLGcubGVuZ3RoLFUsQyksdGhpcy5jb252ZXJ0MTNiKHkud29yZHMseS5sZW5ndGgsQSxDKSx0aGlzLnRyYW5z'@; put 'Zm9ybShVLFYsRSxtLEMsVCksdGhpcy50cmFuc2Zvcm0oQSxWLGFlLG5lLEMsVCk7Zm9yKHZhciB3ZT0wO3dlPEM7d2UrKyl7dmFyIFplPUVbd2VdKmFlW3dlXS1tW3dlXSpuZVt3ZV07bVt3ZV09RVt3ZV0qbmVbd2VdK21bd2VdKmFlW3dlXSxFW3dlXT1aZX1yZXR1cm4gdGhpcy5jb25qdWdh'@; put 'dGUoRSxtLEMpLHRoaXMudHJhbnNmb3JtKEUsbSxsZSxWLEMsVCksdGhpcy5jb25qdWdhdGUobGUsVixDKSx0aGlzLm5vcm1hbGl6ZTEzYihsZSxDKSx4Lm5lZ2F0aXZlPWcubmVnYXRpdmVeeS5uZWdhdGl2ZSx4Lmxlbmd0aD1nLmxlbmd0aCt5Lmxlbmd0aCx4LnN0cmlwKCl9LHcucHJvdG90'@; put 'eXBlLm11bD1mdW5jdGlvbihnKXt2YXIgeT1uZXcgdyhudWxsKTtyZXR1cm4geS53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrZy5sZW5ndGgpLHRoaXMubXVsVG8oZyx5KX0sdy5wcm90b3R5cGUubXVsZj1mdW5jdGlvbihnKXt2YXIgeT1uZXcgdyhudWxsKTtyZXR1cm4geS53b3Jkcz1u'@; put 'ZXcgQXJyYXkodGhpcy5sZW5ndGgrZy5sZW5ndGgpLFEodGhpcyxnLHkpfSx3LnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkubXVsVG8oZyx0aGlzKX0sdy5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24oZyl7cCgibnVtYmVyIj09dHlwZW9mIGcpLHAoZzw2'@; put 'NzEwODg2NCk7Zm9yKHZhciB5PTAseD0wO3g8dGhpcy5sZW5ndGg7eCsrKXt2YXIgQz0oMHx0aGlzLndvcmRzW3hdKSpnLFQ9KDY3MTA4ODYzJkMpKyg2NzEwODg2MyZ5KTt5Pj49MjYseSs9Qy82NzEwODg2NHwwLHkrPVQ+Pj4yNix0aGlzLndvcmRzW3hdPTY3MTA4ODYzJlR9cmV0dXJuIDAh'@; put 'PT15JiYodGhpcy53b3Jkc1t4XT15LHRoaXMubGVuZ3RoKyspLHRoaXN9LHcucHJvdG90eXBlLm11bG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbihnKX0sdy5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSx3LnByb3RvdHlwZS5p'@; put 'c3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW11bCh0aGlzLmNsb25lKCkpfSx3LnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oZyl7dmFyIHk9ZnVuY3Rpb24gQih6KXtmb3IodmFyIGc9bmV3IEFycmF5KHouYml0TGVuZ3RoKCkpLHk9MDt5PGcubGVuZ3RoO3krKyl7dmFyIEM9eSUyNjtnW3ld'@; put 'PSh6LndvcmRzW3kvMjZ8MF0mMTw8Qyk+Pj5DfXJldHVybiBnfShnKTtpZigwPT09eS5sZW5ndGgpcmV0dXJuIG5ldyB3KDEpO2Zvcih2YXIgeD10aGlzLEM9MDtDPHkubGVuZ3RoJiYwPT09eVtDXTtDKysseD14LnNxcigpKTtpZigrK0M8eS5sZW5ndGgpZm9yKHZhciBUPXguc3FyKCk7Qzx5'@; put 'Lmxlbmd0aDtDKyssVD1ULnNxcigpKTAhPT15W0NdJiYoeD14Lm11bChUKSk7cmV0dXJuIHh9LHcucHJvdG90eXBlLml1c2hsbj1mdW5jdGlvbihnKXtwKCJudW1iZXIiPT10eXBlb2YgZyYmZz49MCk7dmFyIFQseT1nJTI2LHg9KGcteSkvMjYsQz02NzEwODg2Mz4+PjI2LXk8PDI2LXk7aWYo'@; put 'MCE9PXkpe3ZhciBWPTA7Zm9yKFQ9MDtUPHRoaXMubGVuZ3RoO1QrKyl7dmFyIFU9dGhpcy53b3Jkc1tUXSZDO3RoaXMud29yZHNbVF09KDB8dGhpcy53b3Jkc1tUXSktVTw8eXxWLFY9VT4+PjI2LXl9ViYmKHRoaXMud29yZHNbVF09Vix0aGlzLmxlbmd0aCsrKX1pZigwIT09eCl7Zm9yKFQ9'@; put 'dGhpcy5sZW5ndGgtMTtUPj0wO1QtLSl0aGlzLndvcmRzW1QreF09dGhpcy53b3Jkc1tUXTtmb3IoVD0wO1Q8eDtUKyspdGhpcy53b3Jkc1tUXT0wO3RoaXMubGVuZ3RoKz14fXJldHVybiB0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKGcpe3JldHVybiBwKDA9PT10'@; put 'aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hsbihnKX0sdy5wcm90b3R5cGUuaXVzaHJuPWZ1bmN0aW9uKGcseSx4KXt2YXIgQztwKCJudW1iZXIiPT10eXBlb2YgZyYmZz49MCksQz15Pyh5LXklMjYpLzI2OjA7dmFyIFQ9ZyUyNixWPU1hdGgubWluKChnLVQpLzI2LHRoaXMubGVuZ3RoKSxVPTY3'@; put 'MTA4ODYzXjY3MTA4ODYzPj4+VDw8VCxFPXg7aWYoQy09VixDPU1hdGgubWF4KDAsQyksRSl7Zm9yKHZhciBtPTA7bTxWO20rKylFLndvcmRzW21dPXRoaXMud29yZHNbbV07RS5sZW5ndGg9Vn1pZigwIT09VilpZih0aGlzLmxlbmd0aD5WKWZvcih0aGlzLmxlbmd0aC09VixtPTA7bTx0aGlz'@; put 'Lmxlbmd0aDttKyspdGhpcy53b3Jkc1ttXT10aGlzLndvcmRzW20rVl07ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgQT0wO2ZvcihtPXRoaXMubGVuZ3RoLTE7bT49MCYmKDAhPT1BfHxtPj1DKTttLS0pe3ZhciBhZT0wfHRoaXMud29yZHNbbV07dGhpcy53b3Jkc1tt'@; put 'XT1BPDwyNi1UfGFlPj4+VCxBPWFlJlV9cmV0dXJuIEUmJjAhPT1BJiYoRS53b3Jkc1tFLmxlbmd0aCsrXT1BKSwwPT09dGhpcy5sZW5ndGgmJih0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MSksdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5pc2hybj1mdW5jdGlvbihnLHkseCl7cmV0'@; put 'dXJuIHAoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaHJuKGcseSx4KX0sdy5wcm90b3R5cGUuc2hsbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaGxuKGcpfSx3LnByb3RvdHlwZS51c2hsbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hsbihnKX0s'@; put 'dy5wcm90b3R5cGUuc2hybj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKGcpfSx3LnByb3RvdHlwZS51c2hybj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hybihnKX0sdy5wcm90b3R5cGUudGVzdG49ZnVuY3Rpb24oZyl7cCgibnVtYmVyIj09dHlw'@; put 'ZW9mIGcmJmc+PTApO3ZhciB5PWclMjYseD0oZy15KS8yNjtyZXR1cm4hKHRoaXMubGVuZ3RoPD14fHwhKHRoaXMud29yZHNbeF0mMTw8eSkpfSx3LnByb3RvdHlwZS5pbWFza249ZnVuY3Rpb24oZyl7cCgibnVtYmVyIj09dHlwZW9mIGcmJmc+PTApO3ZhciB5PWclMjYseD0oZy15KS8yNjty'@; put 'ZXR1cm4gcCgwPT09dGhpcy5uZWdhdGl2ZSwiaW1hc2tuIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZSBudW1iZXJzIiksdGhpcy5sZW5ndGg8PXg/dGhpczooMCE9PXkmJngrKyx0aGlzLmxlbmd0aD1NYXRoLm1pbih4LHRoaXMubGVuZ3RoKSwwIT09eSYmKHRoaXMud29yZHNbdGhpcy5sZW5n'@; put 'dGgtMV0mPTY3MTA4ODYzXjY3MTA4ODYzPj4+eTw8eSksdGhpcy5zdHJpcCgpKX0sdy5wcm90b3R5cGUubWFza249ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbWFza24oZyl9LHcucHJvdG90eXBlLmlhZGRuPWZ1bmN0aW9uKGcpe3JldHVybiBwKCJudW1iZXIiPT10eXBlb2Yg'@; put 'ZykscChnPDY3MTA4ODY0KSxnPDA/dGhpcy5pc3VibigtZyk6MCE9PXRoaXMubmVnYXRpdmU/MT09PXRoaXMubGVuZ3RoJiYoMHx0aGlzLndvcmRzWzBdKTxnPyh0aGlzLndvcmRzWzBdPWctKDB8dGhpcy53b3Jkc1swXSksdGhpcy5uZWdhdGl2ZT0wLHRoaXMpOih0aGlzLm5lZ2F0aXZlPTAs'@; put 'dGhpcy5pc3VibihnKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcyk6dGhpcy5faWFkZG4oZyl9LHcucHJvdG90eXBlLl9pYWRkbj1mdW5jdGlvbihnKXt0aGlzLndvcmRzWzBdKz1nO2Zvcih2YXIgeT0wO3k8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbeV0+PTY3MTA4ODY0O3krKyl0aGlzLndvcmRz'@; put 'W3ldLT02NzEwODg2NCx5PT09dGhpcy5sZW5ndGgtMT90aGlzLndvcmRzW3krMV09MTp0aGlzLndvcmRzW3krMV0rKztyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgseSsxKSx0aGlzfSx3LnByb3RvdHlwZS5pc3Vibj1mdW5jdGlvbihnKXtpZihwKCJudW1iZXIiPT10'@; put 'eXBlb2YgZykscChnPDY3MTA4ODY0KSxnPDApcmV0dXJuIHRoaXMuaWFkZG4oLWcpO2lmKDAhPT10aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkbihnKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcztpZih0aGlzLndvcmRzWzBdLT1nLDE9PT10aGlzLmxlbmd0aCYm'@; put 'dGhpcy53b3Jkc1swXTwwKXRoaXMud29yZHNbMF09LXRoaXMud29yZHNbMF0sdGhpcy5uZWdhdGl2ZT0xO2Vsc2UgZm9yKHZhciB5PTA7eTx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1t5XTwwO3krKyl0aGlzLndvcmRzW3ldKz02NzEwODg2NCx0aGlzLndvcmRzW3krMV0tPTE7cmV0dXJuIHRo'@; put 'aXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuYWRkbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhZGRuKGcpfSx3LnByb3RvdHlwZS5zdWJuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Ym4oZyl9LHcucHJvdG90eXBlLmlhYnM9ZnVuY3Rpb24oKXtyZXR1cm4g'@; put 'dGhpcy5uZWdhdGl2ZT0wLHRoaXN9LHcucHJvdG90eXBlLmFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaWFicygpfSx3LnByb3RvdHlwZS5faXNobG5zdWJtdWw9ZnVuY3Rpb24oZyx5LHgpe3ZhciBUO3RoaXMuX2V4cGFuZChnLmxlbmd0aCt4KTt2YXIgVixVPTA7Zm9yKFQ9'@; put 'MDtUPGcubGVuZ3RoO1QrKyl7Vj0oMHx0aGlzLndvcmRzW1QreF0pK1U7dmFyIEU9KDB8Zy53b3Jkc1tUXSkqeTtVPSgoVi09NjcxMDg4NjMmRSk+PjI2KS0oRS82NzEwODg2NHwwKSx0aGlzLndvcmRzW1QreF09NjcxMDg4NjMmVn1mb3IoO1Q8dGhpcy5sZW5ndGgteDtUKyspVT0oVj0oMHx0'@; put 'aGlzLndvcmRzW1QreF0pK1UpPj4yNix0aGlzLndvcmRzW1QreF09NjcxMDg4NjMmVjtpZigwPT09VSlyZXR1cm4gdGhpcy5zdHJpcCgpO2ZvcihwKC0xPT09VSksVT0wLFQ9MDtUPHRoaXMubGVuZ3RoO1QrKylVPShWPS0oMHx0aGlzLndvcmRzW1RdKStVKT4+MjYsdGhpcy53b3Jkc1tUXT02'@; put 'NzEwODg2MyZWO3JldHVybiB0aGlzLm5lZ2F0aXZlPTEsdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbihnLHkpe3ZhciB4LEM9dGhpcy5jbG9uZSgpLFQ9ZyxWPTB8VC53b3Jkc1tULmxlbmd0aC0xXTswIT0oeD0yNi10aGlzLl9jb3VudEJpdHMoVikpJiYoVD1U'@; put 'LnVzaGxuKHgpLEMuaXVzaGxuKHgpLFY9MHxULndvcmRzW1QubGVuZ3RoLTFdKTt2YXIgbSxFPUMubGVuZ3RoLVQubGVuZ3RoO2lmKCJtb2QiIT09eSl7KG09bmV3IHcobnVsbCkpLmxlbmd0aD1FKzEsbS53b3Jkcz1uZXcgQXJyYXkobS5sZW5ndGgpO2Zvcih2YXIgQT0wO0E8bS5sZW5ndGg7'@; put 'QSsrKW0ud29yZHNbQV09MH12YXIgYWU9Qy5jbG9uZSgpLl9pc2hsbnN1Ym11bChULDEsRSk7MD09PWFlLm5lZ2F0aXZlJiYoQz1hZSxtJiYobS53b3Jkc1tFXT0xKSk7Zm9yKHZhciBuZT1FLTE7bmU+PTA7bmUtLSl7dmFyIGxlPTY3MTA4ODY0KigwfEMud29yZHNbVC5sZW5ndGgrbmVdKSso'@; put 'MHxDLndvcmRzW1QubGVuZ3RoK25lLTFdKTtmb3IobGU9TWF0aC5taW4obGUvVnwwLDY3MTA4ODYzKSxDLl9pc2hsbnN1Ym11bChULGxlLG5lKTswIT09Qy5uZWdhdGl2ZTspbGUtLSxDLm5lZ2F0aXZlPTAsQy5faXNobG5zdWJtdWwoVCwxLG5lKSxDLmlzWmVybygpfHwoQy5uZWdhdGl2ZV49'@; put 'MSk7bSYmKG0ud29yZHNbbmVdPWxlKX1yZXR1cm4gbSYmbS5zdHJpcCgpLEMuc3RyaXAoKSwiZGl2IiE9PXkmJjAhPT14JiZDLml1c2hybih4KSx7ZGl2Om18fG51bGwsbW9kOkN9fSx3LnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24oZyx5LHgpe3JldHVybiBwKCFnLmlzWmVybygpKSx0aGlz'@; put 'LmlzWmVybygpP3tkaXY6bmV3IHcoMCksbW9kOm5ldyB3KDApfTowIT09dGhpcy5uZWdhdGl2ZSYmMD09PWcubmVnYXRpdmU/KFY9dGhpcy5uZWcoKS5kaXZtb2QoZyx5KSwibW9kIiE9PXkmJihDPVYuZGl2Lm5lZygpKSwiZGl2IiE9PXkmJihUPVYubW9kLm5lZygpLHgmJjAhPT1ULm5lZ2F0'@; put 'aXZlJiZULmlhZGQoZykpLHtkaXY6Qyxtb2Q6VH0pOjA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Zy5uZWdhdGl2ZT8oVj10aGlzLmRpdm1vZChnLm5lZygpLHkpLCJtb2QiIT09eSYmKEM9Vi5kaXYubmVnKCkpLHtkaXY6Qyxtb2Q6Vi5tb2R9KTp0aGlzLm5lZ2F0aXZlJmcubmVnYXRpdmU/KFY9'@; put 'dGhpcy5uZWcoKS5kaXZtb2QoZy5uZWcoKSx5KSwiZGl2IiE9PXkmJihUPVYubW9kLm5lZygpLHgmJjAhPT1ULm5lZ2F0aXZlJiZULmlzdWIoZykpLHtkaXY6Vi5kaXYsbW9kOlR9KTpnLmxlbmd0aD50aGlzLmxlbmd0aHx8dGhpcy5jbXAoZyk8MD97ZGl2Om5ldyB3KDApLG1vZDp0aGlzfTox'@; put 'PT09Zy5sZW5ndGg/ImRpdiI9PT15P3tkaXY6dGhpcy5kaXZuKGcud29yZHNbMF0pLG1vZDpudWxsfToibW9kIj09PXk/e2RpdjpudWxsLG1vZDpuZXcgdyh0aGlzLm1vZG4oZy53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bihnLndvcmRzWzBdKSxtb2Q6bmV3IHcodGhpcy5tb2RuKGcud29y'@; put 'ZHNbMF0pKX06dGhpcy5fd29yZERpdihnLHkpO3ZhciBDLFQsVn0sdy5wcm90b3R5cGUuZGl2PWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmRpdm1vZChnLCJkaXYiLCExKS5kaXZ9LHcucHJvdG90eXBlLm1vZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5kaXZtb2QoZywibW9kIiwhMSkubW9k'@; put 'fSx3LnByb3RvdHlwZS51bW9kPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmRpdm1vZChnLCJtb2QiLCEwKS5tb2R9LHcucHJvdG90eXBlLmRpdlJvdW5kPWZ1bmN0aW9uKGcpe3ZhciB5PXRoaXMuZGl2bW9kKGcpO2lmKHkubW9kLmlzWmVybygpKXJldHVybiB5LmRpdjt2YXIgeD0wIT09eS5k'@; put 'aXYubmVnYXRpdmU/eS5tb2QuaXN1YihnKTp5Lm1vZCxDPWcudXNocm4oMSksVD1nLmFuZGxuKDEpLFY9eC5jbXAoQyk7cmV0dXJuIFY8MHx8MT09PVQmJjA9PT1WP3kuZGl2OjAhPT15LmRpdi5uZWdhdGl2ZT95LmRpdi5pc3VibigxKTp5LmRpdi5pYWRkbigxKX0sdy5wcm90b3R5cGUubW9k'@; put 'bj1mdW5jdGlvbihnKXtwKGc8PTY3MTA4ODYzKTtmb3IodmFyIHk9KDE8PDI2KSVnLHg9MCxDPXRoaXMubGVuZ3RoLTE7Qz49MDtDLS0peD0oeSp4KygwfHRoaXMud29yZHNbQ10pKSVnO3JldHVybiB4fSx3LnByb3RvdHlwZS5pZGl2bj1mdW5jdGlvbihnKXtwKGc8PTY3MTA4ODYzKTtmb3Io'@; put 'dmFyIHk9MCx4PXRoaXMubGVuZ3RoLTE7eD49MDt4LS0pe3ZhciBDPSgwfHRoaXMud29yZHNbeF0pKzY3MTA4ODY0Knk7dGhpcy53b3Jkc1t4XT1DL2d8MCx5PUMlZ31yZXR1cm4gdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCku'@; put 'aWRpdm4oZyl9LHcucHJvdG90eXBlLmVnY2Q9ZnVuY3Rpb24oZyl7cCgwPT09Zy5uZWdhdGl2ZSkscCghZy5pc1plcm8oKSk7dmFyIHk9dGhpcyx4PWcuY2xvbmUoKTt5PTAhPT15Lm5lZ2F0aXZlP3kudW1vZChnKTp5LmNsb25lKCk7Zm9yKHZhciBDPW5ldyB3KDEpLFQ9bmV3IHcoMCksVj1u'@; put 'ZXcgdygwKSxVPW5ldyB3KDEpLEU9MDt5LmlzRXZlbigpJiZ4LmlzRXZlbigpOyl5Lml1c2hybigxKSx4Lml1c2hybigxKSwrK0U7Zm9yKHZhciBtPXguY2xvbmUoKSxBPXkuY2xvbmUoKTsheS5pc1plcm8oKTspe2Zvcih2YXIgYWU9MCxuZT0xOyEoeS53b3Jkc1swXSZuZSkmJmFlPDI2Oysr'@; put 'YWUsbmU8PD0xKTtpZihhZT4wKWZvcih5Lml1c2hybihhZSk7YWUtLSA+MDspKEMuaXNPZGQoKXx8VC5pc09kZCgpKSYmKEMuaWFkZChtKSxULmlzdWIoQSkpLEMuaXVzaHJuKDEpLFQuaXVzaHJuKDEpO2Zvcih2YXIgbGU9MCx3ZT0xOyEoeC53b3Jkc1swXSZ3ZSkmJmxlPDI2OysrbGUsd2U8'@; put 'PD0xKTtpZihsZT4wKWZvcih4Lml1c2hybihsZSk7bGUtLSA+MDspKFYuaXNPZGQoKXx8VS5pc09kZCgpKSYmKFYuaWFkZChtKSxVLmlzdWIoQSkpLFYuaXVzaHJuKDEpLFUuaXVzaHJuKDEpO3kuY21wKHgpPj0wPyh5LmlzdWIoeCksQy5pc3ViKFYpLFQuaXN1YihVKSk6KHguaXN1Yih5KSxW'@; put 'LmlzdWIoQyksVS5pc3ViKFQpKX1yZXR1cm57YTpWLGI6VSxnY2Q6eC5pdXNobG4oRSl9fSx3LnByb3RvdHlwZS5faW52bXA9ZnVuY3Rpb24oZyl7cCgwPT09Zy5uZWdhdGl2ZSkscCghZy5pc1plcm8oKSk7dmFyIGFlLHk9dGhpcyx4PWcuY2xvbmUoKTt5PTAhPT15Lm5lZ2F0aXZlP3kudW1v'@; put 'ZChnKTp5LmNsb25lKCk7Zm9yKHZhciBDPW5ldyB3KDEpLFQ9bmV3IHcoMCksVj14LmNsb25lKCk7eS5jbXBuKDEpPjAmJnguY21wbigxKT4wOyl7Zm9yKHZhciBVPTAsRT0xOyEoeS53b3Jkc1swXSZFKSYmVTwyNjsrK1UsRTw8PTEpO2lmKFU+MClmb3IoeS5pdXNocm4oVSk7VS0tID4wOylD'@; put 'LmlzT2RkKCkmJkMuaWFkZChWKSxDLml1c2hybigxKTtmb3IodmFyIG09MCxBPTE7ISh4LndvcmRzWzBdJkEpJiZtPDI2OysrbSxBPDw9MSk7aWYobT4wKWZvcih4Lml1c2hybihtKTttLS0gPjA7KVQuaXNPZGQoKSYmVC5pYWRkKFYpLFQuaXVzaHJuKDEpO3kuY21wKHgpPj0wPyh5LmlzdWIo'@; put 'eCksQy5pc3ViKFQpKTooeC5pc3ViKHkpLFQuaXN1YihDKSl9cmV0dXJuKGFlPTA9PT15LmNtcG4oMSk/QzpUKS5jbXBuKDApPDAmJmFlLmlhZGQoZyksYWV9LHcucHJvdG90eXBlLmdjZD1mdW5jdGlvbihnKXtpZih0aGlzLmlzWmVybygpKXJldHVybiBnLmFicygpO2lmKGcuaXNaZXJvKCkp'@; put 'cmV0dXJuIHRoaXMuYWJzKCk7dmFyIHk9dGhpcy5jbG9uZSgpLHg9Zy5jbG9uZSgpO3kubmVnYXRpdmU9MCx4Lm5lZ2F0aXZlPTA7Zm9yKHZhciBDPTA7eS5pc0V2ZW4oKSYmeC5pc0V2ZW4oKTtDKyspeS5pdXNocm4oMSkseC5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO3kuaXNFdmVuKCk7KXku'@; put 'aXVzaHJuKDEpO2Zvcig7eC5pc0V2ZW4oKTspeC5pdXNocm4oMSk7dmFyIFQ9eS5jbXAoeCk7aWYoVDwwKXt2YXIgVj15O3k9eCx4PVZ9ZWxzZSBpZigwPT09VHx8MD09PXguY21wbigxKSlicmVhazt5LmlzdWIoeCl9cmV0dXJuIHguaXVzaGxuKEMpfSx3LnByb3RvdHlwZS5pbnZtPWZ1bmN0'@; put 'aW9uKGcpe3JldHVybiB0aGlzLmVnY2QoZykuYS51bW9kKGcpfSx3LnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4hKDEmdGhpcy53b3Jkc1swXSl9LHcucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uKCl7cmV0dXJuISgxJn50aGlzLndvcmRzWzBdKX0sdy5wcm90b3R5cGUuYW5k'@; put 'bG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMud29yZHNbMF0mZ30sdy5wcm90b3R5cGUuYmluY249ZnVuY3Rpb24oZyl7cCgibnVtYmVyIj09dHlwZW9mIGcpO3ZhciB5PWclMjYseD0oZy15KS8yNixDPTE8PHk7aWYodGhpcy5sZW5ndGg8PXgpcmV0dXJuIHRoaXMuX2V4cGFuZCh4KzEpLHRo'@; put 'aXMud29yZHNbeF18PUMsdGhpcztmb3IodmFyIFQ9QyxWPXg7MCE9PVQmJlY8dGhpcy5sZW5ndGg7VisrKXt2YXIgVT0wfHRoaXMud29yZHNbVl07VD0oVSs9VCk+Pj4yNix0aGlzLndvcmRzW1ZdPVUmPTY3MTA4ODYzfXJldHVybiAwIT09VCYmKHRoaXMud29yZHNbVl09VCx0aGlzLmxlbmd0'@; put 'aCsrKSx0aGlzfSx3LnByb3RvdHlwZS5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXX0sdy5wcm90b3R5cGUuY21wbj1mdW5jdGlvbihnKXt2YXIgeCx5PWc8MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIXkpcmV0dXJuLTE7aWYoMD09'@; put 'PXRoaXMubmVnYXRpdmUmJnkpcmV0dXJuIDE7aWYodGhpcy5zdHJpcCgpLHRoaXMubGVuZ3RoPjEpeD0xO2Vsc2V7eSYmKGc9LWcpLHAoZzw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIEM9MHx0aGlzLndvcmRzWzBdO3g9Qz09PWc/MDpDPGc/LTE6MX1yZXR1cm4gMCE9PXRo'@; put 'aXMubmVnYXRpdmU/MHwteDp4fSx3LnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24oZyl7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1nLm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Zy5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgeT10aGlzLnVjbXAoZyk7cmV0dXJu'@; put 'IDAhPT10aGlzLm5lZ2F0aXZlPzB8LXk6eX0sdy5wcm90b3R5cGUudWNtcD1mdW5jdGlvbihnKXtpZih0aGlzLmxlbmd0aD5nLmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDxnLmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIHk9MCx4PXRoaXMubGVuZ3RoLTE7eD49MDt4LS0pe3ZhciBD'@; put 'PTB8dGhpcy53b3Jkc1t4XSxUPTB8Zy53b3Jkc1t4XTtpZihDIT09VCl7QzxUP3k9LTE6Qz5UJiYoeT0xKTticmVha319cmV0dXJuIHl9LHcucHJvdG90eXBlLmd0bj1mdW5jdGlvbihnKXtyZXR1cm4gMT09PXRoaXMuY21wbihnKX0sdy5wcm90b3R5cGUuZ3Q9ZnVuY3Rpb24oZyl7cmV0dXJu'@; put 'IDE9PT10aGlzLmNtcChnKX0sdy5wcm90b3R5cGUuZ3Rlbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbXBuKGcpPj0wfSx3LnByb3RvdHlwZS5ndGU9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY21wKGcpPj0wfSx3LnByb3RvdHlwZS5sdG49ZnVuY3Rpb24oZyl7cmV0dXJuLTE9PT10aGlz'@; put 'LmNtcG4oZyl9LHcucHJvdG90eXBlLmx0PWZ1bmN0aW9uKGcpe3JldHVybi0xPT09dGhpcy5jbXAoZyl9LHcucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY21wbihnKTw9MH0sdy5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNtcChnKTw9MH0s'@; put 'dy5wcm90b3R5cGUuZXFuPWZ1bmN0aW9uKGcpe3JldHVybiAwPT09dGhpcy5jbXBuKGcpfSx3LnByb3RvdHlwZS5lcT1mdW5jdGlvbihnKXtyZXR1cm4gMD09PXRoaXMuY21wKGcpfSx3LnJlZD1mdW5jdGlvbihnKXtyZXR1cm4gbmV3IFNlKGcpfSx3LnByb3RvdHlwZS50b1JlZD1mdW5jdGlv'@; put 'bihnKXtyZXR1cm4gcCghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSxwKDA9PT10aGlzLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLGcuY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZChnKX0sdy5wcm90b3R5cGUuZnJv'@; put 'bVJlZD1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LHcucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5y'@; put 'ZWQ9Zyx0aGlzfSx3LnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbihnKXtyZXR1cm4gcCghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZChnKX0sdy5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKGcpe3JldHVybiBwKHRo'@; put 'aXMucmVkLCJyZWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsZyl9LHcucHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24oZyl7cmV0dXJuIHAodGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQu'@; put 'aWFkZCh0aGlzLGcpfSx3LnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24oZyl7cmV0dXJuIHAodGhpcy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyxnKX0sdy5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbihnKXtyZXR1cm4gcCh0'@; put 'aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsZyl9LHcucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVk'@; put 'LnNobCh0aGlzLGcpfSx3LnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24oZyl7cmV0dXJuIHAodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLGcpLHRoaXMucmVkLm11bCh0aGlzLGcpfSx3LnByb3RvdHlwZS5yZWRJ'@; put 'TXVsPWZ1bmN0aW9uKGcpe3JldHVybiBwKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxnKSx0aGlzLnJlZC5pbXVsKHRoaXMsZyl9LHcucHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMu'@; put 'cmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FyKHRoaXMpfSx3LnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBu'@; put 'dW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaXNxcih0aGlzKX0sdy5wcm90b3R5cGUucmVkU3FydD1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMp'@; put 'LHRoaXMucmVkLnNxcnQodGhpcyl9LHcucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24oKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSx3LnByb3RvdHlw'@; put 'ZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkTmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0sdy5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKGcpe3JldHVybiBwKHRoaXMu'@; put 'cmVkJiYhZy5yZWQsInJlZFBvdyhub3JtYWxOdW0pIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQucG93KHRoaXMsZyl9O3ZhciB0ZT17azI1NjpudWxsLHAyMjQ6bnVsbCxwMTkyOm51bGwscDI1NTE5Om51bGx9O2Z1bmN0aW9uIGllKHosZyl7dGhpcy5uYW1lPXosdGhpcy5w'@; put 'PW5ldyB3KGcsMTYpLHRoaXMubj10aGlzLnAuYml0TGVuZ3RoKCksdGhpcy5rPW5ldyB3KDEpLml1c2hsbih0aGlzLm4pLmlzdWIodGhpcy5wKSx0aGlzLnRtcD10aGlzLl90bXAoKX1mdW5jdGlvbiBzZSgpe2llLmNhbGwodGhpcywiazI1NiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZm'@; put 'IGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmYzJmIil9ZnVuY3Rpb24gZ2UoKXtpZS5jYWxsKHRoaXMsInAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ1bmN0aW9uIF9lKCl7aWUu'@; put 'Y2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiBUZSgpe2llLmNhbGwodGhpcywiMjU1MTkiLCI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZm'@; put 'ZmZmZmZmZmZmZmVkIil9ZnVuY3Rpb24gU2Uoeil7aWYoInN0cmluZyI9PXR5cGVvZiB6KXt2YXIgZz13Ll9wcmltZSh6KTt0aGlzLm09Zy5wLHRoaXMucHJpbWU9Z31lbHNlIHAoei5ndG4oMSksIm1vZHVsdXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMSIpLHRoaXMubT16LHRoaXMucHJpbWU9'@; put 'bnVsbH1mdW5jdGlvbiB6ZSh6KXtTZS5jYWxsKHRoaXMseiksdGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9MCYmKHRoaXMuc2hpZnQrPTI2LXRoaXMuc2hpZnQlMjYpLHRoaXMucj1uZXcgdygxKS5pdXNobG4odGhpcy5zaGlmdCksdGhpcy5yMj10aGlzLmlt'@; put 'b2QodGhpcy5yLnNxcigpKSx0aGlzLnJpbnY9dGhpcy5yLl9pbnZtcCh0aGlzLm0pLHRoaXMubWludj10aGlzLnJpbnYubXVsKHRoaXMucikuaXN1Ym4oMSkuZGl2KHRoaXMubSksdGhpcy5taW52PXRoaXMubWludi51bW9kKHRoaXMuciksdGhpcy5taW52PXRoaXMuci5zdWIodGhpcy5taW52'@; put 'KX1pZS5wcm90b3R5cGUuX3RtcD1mdW5jdGlvbigpe3ZhciBnPW5ldyB3KG51bGwpO3JldHVybiBnLndvcmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSksZ30saWUucHJvdG90eXBlLmlyZWR1Y2U9ZnVuY3Rpb24oZyl7dmFyIHgseT1nO2Rve3RoaXMuc3BsaXQoeSx0aGlzLnRt'@; put 'cCkseD0oeT0oeT10aGlzLmltdWxLKHkpKS5pYWRkKHRoaXMudG1wKSkuYml0TGVuZ3RoKCl9d2hpbGUoeD50aGlzLm4pO3ZhciBDPXg8dGhpcy5uPy0xOnkudWNtcCh0aGlzLnApO3JldHVybiAwPT09Qz8oeS53b3Jkc1swXT0wLHkubGVuZ3RoPTEpOkM+MD95LmlzdWIodGhpcy5wKTp2b2lk'@; put 'IDAhPT15LnN0cmlwP3kuc3RyaXAoKTp5Ll9zdHJpcCgpLHl9LGllLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihnLHkpe2cuaXVzaHJuKHRoaXMubiwwLHkpfSxpZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oZyl7cmV0dXJuIGcuaW11bCh0aGlzLmspfSxOKHNlLGllKSxzZS5wcm90b3R5'@; put 'cGUuc3BsaXQ9ZnVuY3Rpb24oZyx5KXtmb3IodmFyIHg9NDE5NDMwMyxDPU1hdGgubWluKGcubGVuZ3RoLDkpLFQ9MDtUPEM7VCsrKXkud29yZHNbVF09Zy53b3Jkc1tUXTtpZih5Lmxlbmd0aD1DLGcubGVuZ3RoPD05KXJldHVybiBnLndvcmRzWzBdPTAsdm9pZChnLmxlbmd0aD0xKTt2YXIg'@; put 'Vj1nLndvcmRzWzldO2Zvcih5LndvcmRzW3kubGVuZ3RoKytdPVYmeCxUPTEwO1Q8Zy5sZW5ndGg7VCsrKXt2YXIgVT0wfGcud29yZHNbVF07Zy53b3Jkc1tULTEwXT0oVSZ4KTw8NHxWPj4+MjIsVj1VfWcud29yZHNbVC0xMF09Vj4+Pj0yMixnLmxlbmd0aC09MD09PVYmJmcubGVuZ3RoPjEw'@; put 'PzEwOjl9LHNlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihnKXtnLndvcmRzW2cubGVuZ3RoXT0wLGcud29yZHNbZy5sZW5ndGgrMV09MCxnLmxlbmd0aCs9Mjtmb3IodmFyIHk9MCx4PTA7eDxnLmxlbmd0aDt4Kyspe3ZhciBDPTB8Zy53b3Jkc1t4XTtnLndvcmRzW3hdPTY3MTA4ODYzJih5'@; put 'Kz05NzcqQykseT02NCpDKyh5LzY3MTA4ODY0fDApfXJldHVybiAwPT09Zy53b3Jkc1tnLmxlbmd0aC0xXSYmKGcubGVuZ3RoLS0sMD09PWcud29yZHNbZy5sZW5ndGgtMV0mJmcubGVuZ3RoLS0pLGd9LE4oZ2UsaWUpLE4oX2UsaWUpLE4oVGUsaWUpLFRlLnByb3RvdHlwZS5pbXVsSz1mdW5j'@; put 'dGlvbihnKXtmb3IodmFyIHk9MCx4PTA7eDxnLmxlbmd0aDt4Kyspe3ZhciBDPTE5KigwfGcud29yZHNbeF0pK3ksVD02NzEwODg2MyZDO0M+Pj49MjYsZy53b3Jkc1t4XT1ULHk9Q31yZXR1cm4gMCE9PXkmJihnLndvcmRzW2cubGVuZ3RoKytdPXkpLGd9LHcuX3ByaW1lPWZ1bmN0aW9uKGcp'@; put 'e2lmKHRlW2ddKXJldHVybiB0ZVtnXTt2YXIgeTtpZigiazI1NiI9PT1nKXk9bmV3IHNlO2Vsc2UgaWYoInAyMjQiPT09Zyl5PW5ldyBnZTtlbHNlIGlmKCJwMTkyIj09PWcpeT1uZXcgX2U7ZWxzZXtpZigicDI1NTE5IiE9PWcpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHByaW1lICIrZyk7'@; put 'eT1uZXcgVGV9cmV0dXJuIHRlW2ddPXkseX0sU2UucHJvdG90eXBlLl92ZXJpZnkxPWZ1bmN0aW9uKGcpe3AoMD09PWcubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIikscChnLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxTZS5wcm90b3R5'@; put 'cGUuX3ZlcmlmeTI9ZnVuY3Rpb24oZyx5KXtwKCEoZy5uZWdhdGl2ZXx5Lm5lZ2F0aXZlKSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxwKGcucmVkJiZnLnJlZD09PXkucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LFNlLnByb3RvdHlwZS5pbW9kPWZ1'@; put 'bmN0aW9uKGcpe3JldHVybiB0aGlzLnByaW1lP3RoaXMucHJpbWUuaXJlZHVjZShnKS5fZm9yY2VSZWQodGhpcyk6Zy51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpfSxTZS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKGcpe3JldHVybiBnLmlzWmVybygpP2cuY2xvbmUoKTp0aGlzLm0uc3Vi'@; put 'KGcpLl9mb3JjZVJlZCh0aGlzKX0sU2UucHJvdG90eXBlLmFkZD1mdW5jdGlvbihnLHkpe3RoaXMuX3ZlcmlmeTIoZyx5KTt2YXIgeD1nLmFkZCh5KTtyZXR1cm4geC5jbXAodGhpcy5tKT49MCYmeC5pc3ViKHRoaXMubSkseC5fZm9yY2VSZWQodGhpcyl9LFNlLnByb3RvdHlwZS5pYWRkPWZ1'@; put 'bmN0aW9uKGcseSl7dGhpcy5fdmVyaWZ5MihnLHkpO3ZhciB4PWcuaWFkZCh5KTtyZXR1cm4geC5jbXAodGhpcy5tKT49MCYmeC5pc3ViKHRoaXMubSkseH0sU2UucHJvdG90eXBlLnN1Yj1mdW5jdGlvbihnLHkpe3RoaXMuX3ZlcmlmeTIoZyx5KTt2YXIgeD1nLnN1Yih5KTtyZXR1cm4geC5j'@; put 'bXBuKDApPDAmJnguaWFkZCh0aGlzLm0pLHguX2ZvcmNlUmVkKHRoaXMpfSxTZS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihnLHkpe3RoaXMuX3ZlcmlmeTIoZyx5KTt2YXIgeD1nLmlzdWIoeSk7cmV0dXJuIHguY21wbigwKTwwJiZ4LmlhZGQodGhpcy5tKSx4fSxTZS5wcm90b3R5cGUuc2hs'@; put 'PWZ1bmN0aW9uKGcseSl7cmV0dXJuIHRoaXMuX3ZlcmlmeTEoZyksdGhpcy5pbW9kKGcudXNobG4oeSkpfSxTZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihnLHkpe3JldHVybiB0aGlzLl92ZXJpZnkyKGcseSksdGhpcy5pbW9kKGcuaW11bCh5KSl9LFNlLnByb3RvdHlwZS5tdWw9ZnVuY3Rp'@; put 'b24oZyx5KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihnLHkpLHRoaXMuaW1vZChnLm11bCh5KSl9LFNlLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmltdWwoZyxnLmNsb25lKCkpfSxTZS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLm11bChnLGcp'@; put 'fSxTZS5wcm90b3R5cGUuc3FydD1mdW5jdGlvbihnKXtpZihnLmlzWmVybygpKXJldHVybiBnLmNsb25lKCk7dmFyIHk9dGhpcy5tLmFuZGxuKDMpO2lmKHAoeSUyPT0xKSwzPT09eSl7dmFyIHg9dGhpcy5tLmFkZChuZXcgdygxKSkuaXVzaHJuKDIpO3JldHVybiB0aGlzLnBvdyhnLHgpfWZv'@; put 'cih2YXIgQz10aGlzLm0uc3VibigxKSxUPTA7IUMuaXNaZXJvKCkmJjA9PT1DLmFuZGxuKDEpOylUKyssQy5pdXNocm4oMSk7cCghQy5pc1plcm8oKSk7dmFyIFY9bmV3IHcoMSkudG9SZWQodGhpcyksVT1WLnJlZE5lZygpLEU9dGhpcy5tLnN1Ym4oMSkuaXVzaHJuKDEpLG09dGhpcy5tLmJp'@; put 'dExlbmd0aCgpO2ZvcihtPW5ldyB3KDIqbSptKS50b1JlZCh0aGlzKTswIT09dGhpcy5wb3cobSxFKS5jbXAoVSk7KW0ucmVkSUFkZChVKTtmb3IodmFyIEE9dGhpcy5wb3cobSxDKSxhZT10aGlzLnBvdyhnLEMuYWRkbigxKS5pdXNocm4oMSkpLG5lPXRoaXMucG93KGcsQyksbGU9VDswIT09'@; put 'bmUuY21wKFYpOyl7Zm9yKHZhciB3ZT1uZSxaZT0wOzAhPT13ZS5jbXAoVik7WmUrKyl3ZT13ZS5yZWRTcXIoKTtwKFplPGxlKTt2YXIgUWU9dGhpcy5wb3coQSxuZXcgdygxKS5pdXNobG4obGUtWmUtMSkpO2FlPWFlLnJlZE11bChRZSksQT1RZS5yZWRTcXIoKSxuZT1uZS5yZWRNdWwoQSks'@; put 'bGU9WmV9cmV0dXJuIGFlfSxTZS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihnKXt2YXIgeT1nLl9pbnZtcCh0aGlzLm0pO3JldHVybiAwIT09eS5uZWdhdGl2ZT8oeS5uZWdhdGl2ZT0wLHRoaXMuaW1vZCh5KS5yZWROZWcoKSk6dGhpcy5pbW9kKHkpfSxTZS5wcm90b3R5cGUucG93PWZ1bmN0'@; put 'aW9uKGcseSl7aWYoeS5pc1plcm8oKSlyZXR1cm4gbmV3IHcoMSkudG9SZWQodGhpcyk7aWYoMD09PXkuY21wbigxKSlyZXR1cm4gZy5jbG9uZSgpO3ZhciBDPW5ldyBBcnJheSgxNik7Q1swXT1uZXcgdygxKS50b1JlZCh0aGlzKSxDWzFdPWc7Zm9yKHZhciBUPTI7VDxDLmxlbmd0aDtUKysp'@; put 'Q1tUXT10aGlzLm11bChDW1QtMV0sZyk7dmFyIFY9Q1swXSxVPTAsRT0wLG09eS5iaXRMZW5ndGgoKSUyNjtmb3IoMD09PW0mJihtPTI2KSxUPXkubGVuZ3RoLTE7VD49MDtULS0pe2Zvcih2YXIgQT15LndvcmRzW1RdLGFlPW0tMTthZT49MDthZS0tKXt2YXIgbmU9QT4+YWUmMTtWIT09Q1sw'@; put 'XSYmKFY9dGhpcy5zcXIoVikpLDAhPT1uZXx8MCE9PVU/KFU8PD0xLFV8PW5lLCg0PT0rK0V8fDA9PT1UJiYwPT09YWUpJiYoVj10aGlzLm11bChWLENbVV0pLEU9MCxVPTApKTpFPTB9bT0yNn1yZXR1cm4gVn0sU2UucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihnKXt2YXIgeT1nLnVt'@; put 'b2QodGhpcy5tKTtyZXR1cm4geT09PWc/eS5jbG9uZSgpOnl9LFNlLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbihnKXt2YXIgeT1nLmNsb25lKCk7cmV0dXJuIHkucmVkPW51bGwseX0sdy5tb250PWZ1bmN0aW9uKGcpe3JldHVybiBuZXcgemUoZyl9LE4oemUsU2UpLHplLnByb3Rv'@; put 'dHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuaW1vZChnLnVzaGxuKHRoaXMuc2hpZnQpKX0semUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKGcpe3ZhciB5PXRoaXMuaW1vZChnLm11bCh0aGlzLnJpbnYpKTtyZXR1cm4geS5yZWQ9bnVsbCx5fSx6ZS5wcm90'@; put 'b3R5cGUuaW11bD1mdW5jdGlvbihnLHkpe2lmKGcuaXNaZXJvKCl8fHkuaXNaZXJvKCkpcmV0dXJuIGcud29yZHNbMF09MCxnLmxlbmd0aD0xLGc7dmFyIHg9Zy5pbXVsKHkpLEM9eC5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMu'@; put 'bSksVD14LmlzdWIoQykuaXVzaHJuKHRoaXMuc2hpZnQpLFY9VDtyZXR1cm4gVC5jbXAodGhpcy5tKT49MD9WPVQuaXN1Yih0aGlzLm0pOlQuY21wbigwKTwwJiYoVj1ULmlhZGQodGhpcy5tKSksVi5fZm9yY2VSZWQodGhpcyl9LHplLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oZyx5KXtpZihn'@; put 'LmlzWmVybygpfHx5LmlzWmVybygpKXJldHVybiBuZXcgdygwKS5fZm9yY2VSZWQodGhpcyk7dmFyIHg9Zy5tdWwoeSksQz14Lm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxUPXguaXN1YihDKS5pdXNocm4odGhpcy5zaGlm'@; put 'dCksVj1UO3JldHVybiBULmNtcCh0aGlzLm0pPj0wP1Y9VC5pc3ViKHRoaXMubSk6VC5jbXBuKDApPDAmJihWPVQuaWFkZCh0aGlzLm0pKSxWLl9mb3JjZVJlZCh0aGlzKX0semUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuaW1vZChnLl9pbnZtcCh0aGlzLm0pLm11'@; put 'bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0oY2U9Yi5ubWQoY2UpLHRoaXMpfSw2NTA0OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBwLEQ9YigzMTkpLF89Yig3Mjk2KTt0cnl7cD1bXS5fX3Byb3RvX189PT1BcnJheS5wcm90b3R5cGV9Y2F0Y2goSCl7aWYoIUh8fCJvYmplY3Qi'@; put 'IT10eXBlb2YgSHx8ISgiY29kZSJpbiBIKXx8IkVSUl9QUk9UT19BQ0NFU1MiIT09SC5jb2RlKXRocm93IEh9dmFyIE49ISFwJiZfJiZfKE9iamVjdC5wcm90b3R5cGUsIl9fcHJvdG9fXyIpLHc9T2JqZWN0LEY9dy5nZXRQcm90b3R5cGVPZjtjZS5leHBvcnRzPU4mJiJmdW5jdGlvbiI9PXR5'@; put 'cGVvZiBOLmdldD9EKFtOLmdldF0pOiJmdW5jdGlvbiI9PXR5cGVvZiBGJiZmdW5jdGlvbihSKXtyZXR1cm4gRihudWxsPT1SP1I6dyhSKSl9fSw2OTQ4OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPUo7RC52ZXJzaW9uPWIoODU5NykuaTgsRC51dGlscz1iKDk1MyksRC5yYW5kPWIo'@; put 'OTkzMSksRC5jdXJ2ZT1iKDgyNTQpLEQuY3VydmVzPWIoNTQyNyksRC5lYz1iKDc5NTQpLEQuZWRkc2E9Yig1OTgwKX0sNDkxODooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDM3ODUpLF89Yig5NTMpLHA9Xy5nZXROQUYsTj1fLmdldEpTRix3PV8uYXNzZXJ0O2Z1bmN0aW9uIEYo'@; put 'UixqKXt0aGlzLnR5cGU9Uix0aGlzLnA9bmV3IEQoai5wLDE2KSx0aGlzLnJlZD1qLnByaW1lP0QucmVkKGoucHJpbWUpOkQubW9udCh0aGlzLnApLHRoaXMuemVybz1uZXcgRCgwKS50b1JlZCh0aGlzLnJlZCksdGhpcy5vbmU9bmV3IEQoMSkudG9SZWQodGhpcy5yZWQpLHRoaXMudHdvPW5l'@; put 'dyBEKDIpLnRvUmVkKHRoaXMucmVkKSx0aGlzLm49ai5uJiZuZXcgRChqLm4sMTYpLHRoaXMuZz1qLmcmJnRoaXMucG9pbnRGcm9tSlNPTihqLmcsai5nUmVkKSx0aGlzLl93bmFmVDE9bmV3IEFycmF5KDQpLHRoaXMuX3duYWZUMj1uZXcgQXJyYXkoNCksdGhpcy5fd25hZlQzPW5ldyBBcnJh'@; put 'eSg0KSx0aGlzLl93bmFmVDQ9bmV3IEFycmF5KDQpLHRoaXMuX2JpdExlbmd0aD10aGlzLm4/dGhpcy5uLmJpdExlbmd0aCgpOjA7dmFyIFA9dGhpcy5uJiZ0aGlzLnAuZGl2KHRoaXMubik7IVB8fFAuY21wbigxMDApPjA/dGhpcy5yZWROPW51bGw6KHRoaXMuX21heHdlbGxUcmljaz0hMCx0'@; put 'aGlzLnJlZE49dGhpcy5uLnRvUmVkKHRoaXMucmVkKSl9ZnVuY3Rpb24gSChSLGope3RoaXMuY3VydmU9Uix0aGlzLnR5cGU9aix0aGlzLnByZWNvbXB1dGVkPW51bGx9Y2UuZXhwb3J0cz1GLEYucHJvdG90eXBlLnBvaW50PWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVt'@; put 'ZW50ZWQiKX0sRi5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfSxGLnByb3RvdHlwZS5fZml4ZWROYWZNdWw9ZnVuY3Rpb24oaixQKXt3KGoucHJlY29tcHV0ZWQpO3ZhciBMPWouX2dldERvdWJsZXMoKSxZPXAoUCwxLHRo'@; put 'aXMuX2JpdExlbmd0aCksQj0oMTw8TC5zdGVwKzEpLShMLnN0ZXAlMj09MD8yOjEpO0IvPTM7dmFyIFosWCxXPVtdO2ZvcihaPTA7WjxZLmxlbmd0aDtaKz1MLnN0ZXApe1g9MDtmb3IodmFyIFE9WitMLnN0ZXAtMTtRPj1aO1EtLSlYPShYPDwxKStZW1FdO1cucHVzaChYKX1mb3IodmFyIHE9'@; put 'dGhpcy5qcG9pbnQobnVsbCxudWxsLG51bGwpLHRlPXRoaXMuanBvaW50KG51bGwsbnVsbCxudWxsKSxpZT1CO2llPjA7aWUtLSl7Zm9yKFo9MDtaPFcubGVuZ3RoO1orKykoWD1XW1pdKT09PWllP3RlPXRlLm1peGVkQWRkKEwucG9pbnRzW1pdKTpYPT09LWllJiYodGU9dGUubWl4ZWRBZGQo'@; put 'TC5wb2ludHNbWl0ubmVnKCkpKTtxPXEuYWRkKHRlKX1yZXR1cm4gcS50b1AoKX0sRi5wcm90b3R5cGUuX3duYWZNdWw9ZnVuY3Rpb24oaixQKXtmb3IodmFyIEw9NCxZPWouX2dldE5BRlBvaW50cyhMKSxCPVkucG9pbnRzLFc9cChQLEw9WS53bmQsdGhpcy5fYml0TGVuZ3RoKSxaPXRoaXMu'@; put 'anBvaW50KG51bGwsbnVsbCxudWxsKSxYPVcubGVuZ3RoLTE7WD49MDtYLS0pe2Zvcih2YXIgUT0wO1g+PTAmJjA9PT1XW1hdO1gtLSlRKys7aWYoWD49MCYmUSsrLFo9Wi5kYmxwKFEpLFg8MClicmVhazt2YXIgcT1XW1hdO3coMCE9PXEpLFo9ImFmZmluZSI9PT1qLnR5cGU/Wi5taXhlZEFk'@; put 'ZChxPjA/QltxLTE+PjFdOkJbLXEtMT4+MV0ubmVnKCkpOlouYWRkKHE+MD9CW3EtMT4+MV06QlstcS0xPj4xXS5uZWcoKSl9cmV0dXJuImFmZmluZSI9PT1qLnR5cGU/Wi50b1AoKTpafSxGLnByb3RvdHlwZS5fd25hZk11bEFkZD1mdW5jdGlvbihqLFAsTCxZLEIpe3ZhciBxLHRlLGllLFc9'@; put 'dGhpcy5fd25hZlQxLFo9dGhpcy5fd25hZlQyLFg9dGhpcy5fd25hZlQzLFE9MDtmb3IocT0wO3E8WTtxKyspe3ZhciBzZT0oaWU9UFtxXSkuX2dldE5BRlBvaW50cyhqKTtXW3FdPXNlLnduZCxaW3FdPXNlLnBvaW50c31mb3IocT1ZLTE7cT49MTtxLT0yKXt2YXIgZ2U9cS0xLF9lPXE7aWYo'@; put 'MT09PVdbZ2VdJiYxPT09V1tfZV0pe3ZhciBUZT1bUFtnZV0sbnVsbCxudWxsLFBbX2VdXTswPT09UFtnZV0ueS5jbXAoUFtfZV0ueSk/KFRlWzFdPVBbZ2VdLmFkZChQW19lXSksVGVbMl09UFtnZV0udG9KKCkubWl4ZWRBZGQoUFtfZV0ubmVnKCkpKTowPT09UFtnZV0ueS5jbXAoUFtfZV0u'@; put 'eS5yZWROZWcoKSk/KFRlWzFdPVBbZ2VdLnRvSigpLm1peGVkQWRkKFBbX2VdKSxUZVsyXT1QW2dlXS5hZGQoUFtfZV0ubmVnKCkpKTooVGVbMV09UFtnZV0udG9KKCkubWl4ZWRBZGQoUFtfZV0pLFRlWzJdPVBbZ2VdLnRvSigpLm1peGVkQWRkKFBbX2VdLm5lZygpKSk7dmFyIFNlPVstMywt'@; put 'MSwtNSwtNywwLDcsNSwxLDNdLHplPU4oTFtnZV0sTFtfZV0pO2ZvcihRPU1hdGgubWF4KHplWzBdLmxlbmd0aCxRKSxYW2dlXT1uZXcgQXJyYXkoUSksWFtfZV09bmV3IEFycmF5KFEpLHRlPTA7dGU8UTt0ZSsrKVhbZ2VdW3RlXT1TZVszKigxKygwfHplWzBdW3RlXSkpKygxKygwfHplWzFd'@; put 'W3RlXSkpXSxYW19lXVt0ZV09MCxaW2dlXT1UZX1lbHNlIFhbZ2VdPXAoTFtnZV0sV1tnZV0sdGhpcy5fYml0TGVuZ3RoKSxYW19lXT1wKExbX2VdLFdbX2VdLHRoaXMuX2JpdExlbmd0aCksUT1NYXRoLm1heChYW2dlXS5sZW5ndGgsUSksUT1NYXRoLm1heChYW19lXS5sZW5ndGgsUSl9dmFy'@; put 'IHk9dGhpcy5qcG9pbnQobnVsbCxudWxsLG51bGwpLHg9dGhpcy5fd25hZlQ0O2ZvcihxPVE7cT49MDtxLS0pe2Zvcih2YXIgQz0wO3E+PTA7KXt2YXIgVD0hMDtmb3IodGU9MDt0ZTxZO3RlKyspeFt0ZV09MHxYW3RlXVtxXSwwIT09eFt0ZV0mJihUPSExKTtpZighVClicmVhaztDKysscS0t'@; put 'fWlmKHE+PTAmJkMrKyx5PXkuZGJscChDKSxxPDApYnJlYWs7Zm9yKHRlPTA7dGU8WTt0ZSsrKXt2YXIgVj14W3RlXTswIT09ViYmKFY+MD9pZT1aW3RlXVtWLTE+PjFdOlY8MCYmKGllPVpbdGVdWy1WLTE+PjFdLm5lZygpKSx5PSJhZmZpbmUiPT09aWUudHlwZT95Lm1peGVkQWRkKGllKTp5'@; put 'LmFkZChpZSkpfX1mb3IocT0wO3E8WTtxKyspWltxXT1udWxsO3JldHVybiBCP3k6eS50b1AoKX0sRi5CYXNlUG9pbnQ9SCxILnByb3RvdHlwZS5lcT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIil9LEgucHJvdG90eXBlLnZhbGlkYXRlPWZ1bmN0aW9uKCl7'@; put 'cmV0dXJuIHRoaXMuY3VydmUudmFsaWRhdGUodGhpcyl9LEYucHJvdG90eXBlLmRlY29kZVBvaW50PWZ1bmN0aW9uKGosUCl7aj1fLnRvQXJyYXkoaixQKTt2YXIgTD10aGlzLnAuYnl0ZUxlbmd0aCgpO2lmKCg0PT09alswXXx8Nj09PWpbMF18fDc9PT1qWzBdKSYmai5sZW5ndGgtMT09MipM'@; put 'KXJldHVybiA2PT09alswXT93KGpbai5sZW5ndGgtMV0lMj09MCk6Nz09PWpbMF0mJncoaltqLmxlbmd0aC0xXSUyPT0xKSx0aGlzLnBvaW50KGouc2xpY2UoMSwxK0wpLGouc2xpY2UoMStMLDErMipMKSk7aWYoKDI9PT1qWzBdfHwzPT09alswXSkmJmoubGVuZ3RoLTE9PT1MKXJldHVybiB0'@; put 'aGlzLnBvaW50RnJvbVgoai5zbGljZSgxLDErTCksMz09PWpbMF0pO3Rocm93IG5ldyBFcnJvcigiVW5rbm93biBwb2ludCBmb3JtYXQiKX0sSC5wcm90b3R5cGUuZW5jb2RlQ29tcHJlc3NlZD1mdW5jdGlvbihqKXtyZXR1cm4gdGhpcy5lbmNvZGUoaiwhMCl9LEgucHJvdG90eXBlLl9lbmNv'@; put 'ZGU9ZnVuY3Rpb24oail7dmFyIFA9dGhpcy5jdXJ2ZS5wLmJ5dGVMZW5ndGgoKSxMPXRoaXMuZ2V0WCgpLnRvQXJyYXkoImJlIixQKTtyZXR1cm4gaj9bdGhpcy5nZXRZKCkuaXNFdmVuKCk/MjozXS5jb25jYXQoTCk6WzRdLmNvbmNhdChMLHRoaXMuZ2V0WSgpLnRvQXJyYXkoImJlIixQKSl9'@; put 'LEgucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbihqLFApe3JldHVybiBfLmVuY29kZSh0aGlzLl9lbmNvZGUoUCksail9LEgucHJvdG90eXBlLnByZWNvbXB1dGU9ZnVuY3Rpb24oail7aWYodGhpcy5wcmVjb21wdXRlZClyZXR1cm4gdGhpczt2YXIgUD17ZG91YmxlczpudWxsLG5hZjpudWxs'@; put 'LGJldGE6bnVsbH07cmV0dXJuIFAubmFmPXRoaXMuX2dldE5BRlBvaW50cyg4KSxQLmRvdWJsZXM9dGhpcy5fZ2V0RG91Ymxlcyg0LGopLFAuYmV0YT10aGlzLl9nZXRCZXRhKCksdGhpcy5wcmVjb21wdXRlZD1QLHRoaXN9LEgucHJvdG90eXBlLl9oYXNEb3VibGVzPWZ1bmN0aW9uKGope2lm'@; put 'KCF0aGlzLnByZWNvbXB1dGVkKXJldHVybiExO3ZhciBQPXRoaXMucHJlY29tcHV0ZWQuZG91YmxlcztyZXR1cm4hIVAmJlAucG9pbnRzLmxlbmd0aD49TWF0aC5jZWlsKChqLmJpdExlbmd0aCgpKzEpL1Auc3RlcCl9LEgucHJvdG90eXBlLl9nZXREb3VibGVzPWZ1bmN0aW9uKGosUCl7aWYo'@; put 'dGhpcy5wcmVjb21wdXRlZCYmdGhpcy5wcmVjb21wdXRlZC5kb3VibGVzKXJldHVybiB0aGlzLnByZWNvbXB1dGVkLmRvdWJsZXM7Zm9yKHZhciBMPVt0aGlzXSxZPXRoaXMsQj0wO0I8UDtCKz1qKXtmb3IodmFyIFc9MDtXPGo7VysrKVk9WS5kYmwoKTtMLnB1c2goWSl9cmV0dXJue3N0ZXA6'@; put 'aixwb2ludHM6TH19LEgucHJvdG90eXBlLl9nZXROQUZQb2ludHM9ZnVuY3Rpb24oail7aWYodGhpcy5wcmVjb21wdXRlZCYmdGhpcy5wcmVjb21wdXRlZC5uYWYpcmV0dXJuIHRoaXMucHJlY29tcHV0ZWQubmFmO2Zvcih2YXIgUD1bdGhpc10sTD0oMTw8aiktMSxZPTE9PT1MP251bGw6dGhp'@; put 'cy5kYmwoKSxCPTE7QjxMO0IrKylQW0JdPVBbQi0xXS5hZGQoWSk7cmV0dXJue3duZDpqLHBvaW50czpQfX0sSC5wcm90b3R5cGUuX2dldEJldGE9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0sSC5wcm90b3R5cGUuZGJscD1mdW5jdGlvbihqKXtmb3IodmFyIFA9dGhpcyxMPTA7TDxqO0wrKylQ'@; put 'PVAuZGJsKCk7cmV0dXJuIFB9fSwxMTM4OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoOTUzKSxfPWIoMzc4NSkscD1iKDU3MTcpLE49Yig0OTE4KSx3PUQuYXNzZXJ0O2Z1bmN0aW9uIEYoUil7dGhpcy50d2lzdGVkPTEhPSgwfFIuYSksdGhpcy5tT25lQT10aGlzLnR3aXN0ZWQm'@; put 'Ji0xPT0oMHxSLmEpLHRoaXMuZXh0ZW5kZWQ9dGhpcy5tT25lQSxOLmNhbGwodGhpcywiZWR3YXJkcyIsUiksdGhpcy5hPW5ldyBfKFIuYSwxNikudW1vZCh0aGlzLnJlZC5tKSx0aGlzLmE9dGhpcy5hLnRvUmVkKHRoaXMucmVkKSx0aGlzLmM9bmV3IF8oUi5jLDE2KS50b1JlZCh0aGlzLnJl'@; put 'ZCksdGhpcy5jMj10aGlzLmMucmVkU3FyKCksdGhpcy5kPW5ldyBfKFIuZCwxNikudG9SZWQodGhpcy5yZWQpLHRoaXMuZGQ9dGhpcy5kLnJlZEFkZCh0aGlzLmQpLHcoIXRoaXMudHdpc3RlZHx8MD09PXRoaXMuYy5mcm9tUmVkKCkuY21wbigxKSksdGhpcy5vbmVDPTE9PSgwfFIuYyl9ZnVu'@; put 'Y3Rpb24gSChSLGosUCxMLFkpe04uQmFzZVBvaW50LmNhbGwodGhpcyxSLCJwcm9qZWN0aXZlIiksbnVsbD09PWomJm51bGw9PT1QJiZudWxsPT09TD8odGhpcy54PXRoaXMuY3VydmUuemVybyx0aGlzLnk9dGhpcy5jdXJ2ZS5vbmUsdGhpcy56PXRoaXMuY3VydmUub25lLHRoaXMudD10aGlz'@; put 'LmN1cnZlLnplcm8sdGhpcy56T25lPSEwKToodGhpcy54PW5ldyBfKGosMTYpLHRoaXMueT1uZXcgXyhQLDE2KSx0aGlzLno9TD9uZXcgXyhMLDE2KTp0aGlzLmN1cnZlLm9uZSx0aGlzLnQ9WSYmbmV3IF8oWSwxNiksdGhpcy54LnJlZHx8KHRoaXMueD10aGlzLngudG9SZWQodGhpcy5jdXJ2'@; put 'ZS5yZWQpKSx0aGlzLnkucmVkfHwodGhpcy55PXRoaXMueS50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMuei5yZWR8fCh0aGlzLno9dGhpcy56LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy50JiYhdGhpcy50LnJlZCYmKHRoaXMudD10aGlzLnQudG9SZWQodGhpcy5jdXJ2ZS5yZWQp'@; put 'KSx0aGlzLnpPbmU9dGhpcy56PT09dGhpcy5jdXJ2ZS5vbmUsdGhpcy5jdXJ2ZS5leHRlbmRlZCYmIXRoaXMudCYmKHRoaXMudD10aGlzLngucmVkTXVsKHRoaXMueSksdGhpcy56T25lfHwodGhpcy50PXRoaXMudC5yZWRNdWwodGhpcy56LnJlZEludm0oKSkpKSl9cChGLE4pLGNlLmV4cG9y'@; put 'dHM9RixGLnByb3RvdHlwZS5fbXVsQT1mdW5jdGlvbihqKXtyZXR1cm4gdGhpcy5tT25lQT9qLnJlZE5lZygpOnRoaXMuYS5yZWRNdWwoail9LEYucHJvdG90eXBlLl9tdWxDPWZ1bmN0aW9uKGope3JldHVybiB0aGlzLm9uZUM/ajp0aGlzLmMucmVkTXVsKGopfSxGLnByb3RvdHlwZS5qcG9p'@; put 'bnQ9ZnVuY3Rpb24oaixQLEwsWSl7cmV0dXJuIHRoaXMucG9pbnQoaixQLEwsWSl9LEYucHJvdG90eXBlLnBvaW50RnJvbVg9ZnVuY3Rpb24oaixQKXsoaj1uZXcgXyhqLDE2KSkucmVkfHwoaj1qLnRvUmVkKHRoaXMucmVkKSk7dmFyIEw9ai5yZWRTcXIoKSxZPXRoaXMuYzIucmVkU3ViKHRo'@; put 'aXMuYS5yZWRNdWwoTCkpLEI9dGhpcy5vbmUucmVkU3ViKHRoaXMuYzIucmVkTXVsKHRoaXMuZCkucmVkTXVsKEwpKSxXPVkucmVkTXVsKEIucmVkSW52bSgpKSxaPVcucmVkU3FydCgpO2lmKDAhPT1aLnJlZFNxcigpLnJlZFN1YihXKS5jbXAodGhpcy56ZXJvKSl0aHJvdyBuZXcgRXJyb3Io'@; put 'ImludmFsaWQgcG9pbnQiKTt2YXIgWD1aLmZyb21SZWQoKS5pc09kZCgpO3JldHVybihQJiYhWHx8IVAmJlgpJiYoWj1aLnJlZE5lZygpKSx0aGlzLnBvaW50KGosWil9LEYucHJvdG90eXBlLnBvaW50RnJvbVk9ZnVuY3Rpb24oaixQKXsoaj1uZXcgXyhqLDE2KSkucmVkfHwoaj1qLnRvUmVk'@; put 'KHRoaXMucmVkKSk7dmFyIEw9ai5yZWRTcXIoKSxZPUwucmVkU3ViKHRoaXMuYzIpLEI9TC5yZWRNdWwodGhpcy5kKS5yZWRNdWwodGhpcy5jMikucmVkU3ViKHRoaXMuYSksVz1ZLnJlZE11bChCLnJlZEludm0oKSk7aWYoMD09PVcuY21wKHRoaXMuemVybykpe2lmKFApdGhyb3cgbmV3IEVy'@; put 'cm9yKCJpbnZhbGlkIHBvaW50Iik7cmV0dXJuIHRoaXMucG9pbnQodGhpcy56ZXJvLGopfXZhciBaPVcucmVkU3FydCgpO2lmKDAhPT1aLnJlZFNxcigpLnJlZFN1YihXKS5jbXAodGhpcy56ZXJvKSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgcG9pbnQiKTtyZXR1cm4gWi5mcm9tUmVkKCku'@; put 'aXNPZGQoKSE9PVAmJihaPVoucmVkTmVnKCkpLHRoaXMucG9pbnQoWixqKX0sRi5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oail7aWYoai5pc0luZmluaXR5KCkpcmV0dXJuITA7ai5ub3JtYWxpemUoKTt2YXIgUD1qLngucmVkU3FyKCksTD1qLnkucmVkU3FyKCksWT1QLnJlZE11bCh0'@; put 'aGlzLmEpLnJlZEFkZChMKSxCPXRoaXMuYzIucmVkTXVsKHRoaXMub25lLnJlZEFkZCh0aGlzLmQucmVkTXVsKFApLnJlZE11bChMKSkpO3JldHVybiAwPT09WS5jbXAoQil9LHAoSCxOLkJhc2VQb2ludCksRi5wcm90b3R5cGUucG9pbnRGcm9tSlNPTj1mdW5jdGlvbihqKXtyZXR1cm4gSC5m'@; put 'cm9tSlNPTih0aGlzLGopfSxGLnByb3RvdHlwZS5wb2ludD1mdW5jdGlvbihqLFAsTCxZKXtyZXR1cm4gbmV3IEgodGhpcyxqLFAsTCxZKX0sSC5mcm9tSlNPTj1mdW5jdGlvbihqLFApe3JldHVybiBuZXcgSChqLFBbMF0sUFsxXSxQWzJdKX0sSC5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlv'@; put 'bigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT8iPEVDIFBvaW50IEluZmluaXR5PiI6IjxFQyBQb2ludCB4OiAiK3RoaXMueC5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIiB5OiAiK3RoaXMueS5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIiB6OiAiK3RoaXMuei5mcm9tUmVkKCkudG9T'@; put 'dHJpbmcoMTYsMikrIj4ifSxILnByb3RvdHlwZS5pc0luZmluaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLnguY21wbigwKSYmKDA9PT10aGlzLnkuY21wKHRoaXMueil8fHRoaXMuek9uZSYmMD09PXRoaXMueS5jbXAodGhpcy5jdXJ2ZS5jKSl9LEgucHJvdG90eXBlLl9leHREYmw9'@; put 'ZnVuY3Rpb24oKXt2YXIgaj10aGlzLngucmVkU3FyKCksUD10aGlzLnkucmVkU3FyKCksTD10aGlzLnoucmVkU3FyKCk7TD1MLnJlZElBZGQoTCk7dmFyIFk9dGhpcy5jdXJ2ZS5fbXVsQShqKSxCPXRoaXMueC5yZWRBZGQodGhpcy55KS5yZWRTcXIoKS5yZWRJU3ViKGopLnJlZElTdWIoUCks'@; put 'Vz1ZLnJlZEFkZChQKSxaPVcucmVkU3ViKEwpLFg9WS5yZWRTdWIoUCksUT1CLnJlZE11bChaKSxxPVcucmVkTXVsKFgpLHRlPUIucmVkTXVsKFgpLGllPVoucmVkTXVsKFcpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KFEscSxpZSx0ZSl9LEgucHJvdG90eXBlLl9wcm9qRGJsPWZ1bmN0aW9u'@; put 'KCl7dmFyIFksQixXLFosWCxRLGo9dGhpcy54LnJlZEFkZCh0aGlzLnkpLnJlZFNxcigpLFA9dGhpcy54LnJlZFNxcigpLEw9dGhpcy55LnJlZFNxcigpO2lmKHRoaXMuY3VydmUudHdpc3RlZCl7dmFyIHE9KFo9dGhpcy5jdXJ2ZS5fbXVsQShQKSkucmVkQWRkKEwpO3RoaXMuek9uZT8oWT1q'@; put 'LnJlZFN1YihQKS5yZWRTdWIoTCkucmVkTXVsKHEucmVkU3ViKHRoaXMuY3VydmUudHdvKSksQj1xLnJlZE11bChaLnJlZFN1YihMKSksVz1xLnJlZFNxcigpLnJlZFN1YihxKS5yZWRTdWIocSkpOihYPXRoaXMuei5yZWRTcXIoKSxRPXEucmVkU3ViKFgpLnJlZElTdWIoWCksWT1qLnJlZFN1'@; put 'YihQKS5yZWRJU3ViKEwpLnJlZE11bChRKSxCPXEucmVkTXVsKFoucmVkU3ViKEwpKSxXPXEucmVkTXVsKFEpKX1lbHNlIFo9UC5yZWRBZGQoTCksWD10aGlzLmN1cnZlLl9tdWxDKHRoaXMueikucmVkU3FyKCksUT1aLnJlZFN1YihYKS5yZWRTdWIoWCksWT10aGlzLmN1cnZlLl9tdWxDKGou'@; put 'cmVkSVN1YihaKSkucmVkTXVsKFEpLEI9dGhpcy5jdXJ2ZS5fbXVsQyhaKS5yZWRNdWwoUC5yZWRJU3ViKEwpKSxXPVoucmVkTXVsKFEpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KFksQixXKX0sSC5wcm90b3R5cGUuZGJsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNJbmZpbml0eSgpP3Ro'@; put 'aXM6dGhpcy5jdXJ2ZS5leHRlbmRlZD90aGlzLl9leHREYmwoKTp0aGlzLl9wcm9qRGJsKCl9LEgucHJvdG90eXBlLl9leHRBZGQ9ZnVuY3Rpb24oail7dmFyIFA9dGhpcy55LnJlZFN1Yih0aGlzLngpLnJlZE11bChqLnkucmVkU3ViKGoueCkpLEw9dGhpcy55LnJlZEFkZCh0aGlzLngpLnJl'@; put 'ZE11bChqLnkucmVkQWRkKGoueCkpLFk9dGhpcy50LnJlZE11bCh0aGlzLmN1cnZlLmRkKS5yZWRNdWwoai50KSxCPXRoaXMuei5yZWRNdWwoai56LnJlZEFkZChqLnopKSxXPUwucmVkU3ViKFApLFo9Qi5yZWRTdWIoWSksWD1CLnJlZEFkZChZKSxRPUwucmVkQWRkKFApLHE9Vy5yZWRNdWwo'@; put 'WiksdGU9WC5yZWRNdWwoUSksaWU9Vy5yZWRNdWwoUSksc2U9Wi5yZWRNdWwoWCk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQocSx0ZSxzZSxpZSl9LEgucHJvdG90eXBlLl9wcm9qQWRkPWZ1bmN0aW9uKGope3ZhciB0ZSxpZSxQPXRoaXMuei5yZWRNdWwoai56KSxMPVAucmVkU3FyKCksWT10'@; put 'aGlzLngucmVkTXVsKGoueCksQj10aGlzLnkucmVkTXVsKGoueSksVz10aGlzLmN1cnZlLmQucmVkTXVsKFkpLnJlZE11bChCKSxaPUwucmVkU3ViKFcpLFg9TC5yZWRBZGQoVyksUT10aGlzLngucmVkQWRkKHRoaXMueSkucmVkTXVsKGoueC5yZWRBZGQoai55KSkucmVkSVN1YihZKS5yZWRJ'@; put 'U3ViKEIpLHE9UC5yZWRNdWwoWikucmVkTXVsKFEpO3JldHVybiB0aGlzLmN1cnZlLnR3aXN0ZWQ/KHRlPVAucmVkTXVsKFgpLnJlZE11bChCLnJlZFN1Yih0aGlzLmN1cnZlLl9tdWxBKFkpKSksaWU9Wi5yZWRNdWwoWCkpOih0ZT1QLnJlZE11bChYKS5yZWRNdWwoQi5yZWRTdWIoWSkpLGll'@; put 'PXRoaXMuY3VydmUuX211bEMoWikucmVkTXVsKFgpKSx0aGlzLmN1cnZlLnBvaW50KHEsdGUsaWUpfSxILnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oail7cmV0dXJuIHRoaXMuaXNJbmZpbml0eSgpP2o6ai5pc0luZmluaXR5KCk/dGhpczp0aGlzLmN1cnZlLmV4dGVuZGVkP3RoaXMuX2V4dEFk'@; put 'ZChqKTp0aGlzLl9wcm9qQWRkKGopfSxILnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oail7cmV0dXJuIHRoaXMuX2hhc0RvdWJsZXMoaik/dGhpcy5jdXJ2ZS5fZml4ZWROYWZNdWwodGhpcyxqKTp0aGlzLmN1cnZlLl93bmFmTXVsKHRoaXMsail9LEgucHJvdG90eXBlLm11bEFkZD1mdW5jdGlv'@; put 'bihqLFAsTCl7cmV0dXJuIHRoaXMuY3VydmUuX3duYWZNdWxBZGQoMSxbdGhpcyxQXSxbaixMXSwyLCExKX0sSC5wcm90b3R5cGUuam11bEFkZD1mdW5jdGlvbihqLFAsTCl7cmV0dXJuIHRoaXMuY3VydmUuX3duYWZNdWxBZGQoMSxbdGhpcyxQXSxbaixMXSwyLCEwKX0sSC5wcm90b3R5cGUu'@; put 'bm9ybWFsaXplPWZ1bmN0aW9uKCl7aWYodGhpcy56T25lKXJldHVybiB0aGlzO3ZhciBqPXRoaXMuei5yZWRJbnZtKCk7cmV0dXJuIHRoaXMueD10aGlzLngucmVkTXVsKGopLHRoaXMueT10aGlzLnkucmVkTXVsKGopLHRoaXMudCYmKHRoaXMudD10aGlzLnQucmVkTXVsKGopKSx0aGlzLno9'@; put 'dGhpcy5jdXJ2ZS5vbmUsdGhpcy56T25lPSEwLHRoaXN9LEgucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnZlLnBvaW50KHRoaXMueC5yZWROZWcoKSx0aGlzLnksdGhpcy56LHRoaXMudCYmdGhpcy50LnJlZE5lZygpKX0sSC5wcm90b3R5cGUuZ2V0WD1mdW5jdGlv'@; put 'bigpe3JldHVybiB0aGlzLm5vcm1hbGl6ZSgpLHRoaXMueC5mcm9tUmVkKCl9LEgucHJvdG90eXBlLmdldFk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub3JtYWxpemUoKSx0aGlzLnkuZnJvbVJlZCgpfSxILnByb3RvdHlwZS5lcT1mdW5jdGlvbihqKXtyZXR1cm4gdGhpcz09PWp8fDA9PT10'@; put 'aGlzLmdldFgoKS5jbXAoai5nZXRYKCkpJiYwPT09dGhpcy5nZXRZKCkuY21wKGouZ2V0WSgpKX0sSC5wcm90b3R5cGUuZXFYVG9QPWZ1bmN0aW9uKGope3ZhciBQPWoudG9SZWQodGhpcy5jdXJ2ZS5yZWQpLnJlZE11bCh0aGlzLnopO2lmKDA9PT10aGlzLnguY21wKFApKXJldHVybiEwO2Zv'@; put 'cih2YXIgTD1qLmNsb25lKCksWT10aGlzLmN1cnZlLnJlZE4ucmVkTXVsKHRoaXMueik7Oyl7aWYoTC5pYWRkKHRoaXMuY3VydmUubiksTC5jbXAodGhpcy5jdXJ2ZS5wKT49MClyZXR1cm4hMTtpZihQLnJlZElBZGQoWSksMD09PXRoaXMueC5jbXAoUCkpcmV0dXJuITB9fSxILnByb3RvdHlw'@; put 'ZS50b1A9SC5wcm90b3R5cGUubm9ybWFsaXplLEgucHJvdG90eXBlLm1peGVkQWRkPUgucHJvdG90eXBlLmFkZH0sODI1NDooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1KO0QuYmFzZT1iKDQ5MTgpLEQuc2hvcnQ9Yig2NjczKSxELm1vbnQ9YigyODgxKSxELmVkd2FyZHM9YigxMTM4'@; put 'KX0sMjg4MTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDM3ODUpLF89Yig1NzE3KSxwPWIoNDkxOCksTj1iKDk1Myk7ZnVuY3Rpb24gdyhIKXtwLmNhbGwodGhpcywibW9udCIsSCksdGhpcy5hPW5ldyBEKEguYSwxNikudG9SZWQodGhpcy5yZWQpLHRoaXMuYj1uZXcgRChILmIs'@; put 'MTYpLnRvUmVkKHRoaXMucmVkKSx0aGlzLmk0PW5ldyBEKDQpLnRvUmVkKHRoaXMucmVkKS5yZWRJbnZtKCksdGhpcy50d289bmV3IEQoMikudG9SZWQodGhpcy5yZWQpLHRoaXMuYTI0PXRoaXMuaTQucmVkTXVsKHRoaXMuYS5yZWRBZGQodGhpcy50d28pKX1mdW5jdGlvbiBGKEgsUixqKXtw'@; put 'LkJhc2VQb2ludC5jYWxsKHRoaXMsSCwicHJvamVjdGl2ZSIpLG51bGw9PT1SJiZudWxsPT09aj8odGhpcy54PXRoaXMuY3VydmUub25lLHRoaXMuej10aGlzLmN1cnZlLnplcm8pOih0aGlzLng9bmV3IEQoUiwxNiksdGhpcy56PW5ldyBEKGosMTYpLHRoaXMueC5yZWR8fCh0aGlzLng9dGhp'@; put 'cy54LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy56LnJlZHx8KHRoaXMuej10aGlzLnoudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSl9Xyh3LHApLGNlLmV4cG9ydHM9dyx3LnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbihSKXt2YXIgaj1SLm5vcm1hbGl6ZSgpLngsUD1qLnJlZFNxcigp'@; put 'LEw9UC5yZWRNdWwoaikucmVkQWRkKFAucmVkTXVsKHRoaXMuYSkpLnJlZEFkZChqKTtyZXR1cm4gMD09PUwucmVkU3FydCgpLnJlZFNxcigpLmNtcChMKX0sXyhGLHAuQmFzZVBvaW50KSx3LnByb3RvdHlwZS5kZWNvZGVQb2ludD1mdW5jdGlvbihSLGope3JldHVybiB0aGlzLnBvaW50KE4u'@; put 'dG9BcnJheShSLGopLDEpfSx3LnByb3RvdHlwZS5wb2ludD1mdW5jdGlvbihSLGope3JldHVybiBuZXcgRih0aGlzLFIsail9LHcucHJvdG90eXBlLnBvaW50RnJvbUpTT049ZnVuY3Rpb24oUil7cmV0dXJuIEYuZnJvbUpTT04odGhpcyxSKX0sRi5wcm90b3R5cGUucHJlY29tcHV0ZT1mdW5j'@; put 'dGlvbigpe30sRi5wcm90b3R5cGUuX2VuY29kZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFgoKS50b0FycmF5KCJiZSIsdGhpcy5jdXJ2ZS5wLmJ5dGVMZW5ndGgoKSl9LEYuZnJvbUpTT049ZnVuY3Rpb24oUixqKXtyZXR1cm4gbmV3IEYoUixqWzBdLGpbMV18fFIub25lKX0sRi5wcm90'@; put 'b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT8iPEVDIFBvaW50IEluZmluaXR5PiI6IjxFQyBQb2ludCB4OiAiK3RoaXMueC5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIiB6OiAiK3RoaXMuei5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIj4ifSxG'@; put 'LnByb3RvdHlwZS5pc0luZmluaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLnouY21wbigwKX0sRi5wcm90b3R5cGUuZGJsPWZ1bmN0aW9uKCl7dmFyIGo9dGhpcy54LnJlZEFkZCh0aGlzLnopLnJlZFNxcigpLEw9dGhpcy54LnJlZFN1Yih0aGlzLnopLnJlZFNxcigpLFk9ai5yZWRT'@; put 'dWIoTCksQj1qLnJlZE11bChMKSxXPVkucmVkTXVsKEwucmVkQWRkKHRoaXMuY3VydmUuYTI0LnJlZE11bChZKSkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KEIsVyl9LEYucHJvdG90eXBlLmFkZD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IHN1cHBvcnRlZCBvbiBNb250Z29t'@; put 'ZXJ5IGN1cnZlIil9LEYucHJvdG90eXBlLmRpZmZBZGQ9ZnVuY3Rpb24oUixqKXt2YXIgUD10aGlzLngucmVkQWRkKHRoaXMueiksTD10aGlzLngucmVkU3ViKHRoaXMueiksWT1SLngucmVkQWRkKFIueiksVz1SLngucmVkU3ViKFIueikucmVkTXVsKFApLFo9WS5yZWRNdWwoTCksWD1qLnou'@; put 'cmVkTXVsKFcucmVkQWRkKFopLnJlZFNxcigpKSxRPWoueC5yZWRNdWwoVy5yZWRJU3ViKFopLnJlZFNxcigpKTtyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChYLFEpfSxGLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oUil7Zm9yKHZhciBqPVIuY2xvbmUoKSxQPXRoaXMsTD10aGlzLmN1cnZlLnBv'@; put 'aW50KG51bGwsbnVsbCksQj1bXTswIT09ai5jbXBuKDApO2ouaXVzaHJuKDEpKUIucHVzaChqLmFuZGxuKDEpKTtmb3IodmFyIFc9Qi5sZW5ndGgtMTtXPj0wO1ctLSkwPT09QltXXT8oUD1QLmRpZmZBZGQoTCx0aGlzKSxMPUwuZGJsKCkpOihMPVAuZGlmZkFkZChMLHRoaXMpLFA9UC5kYmwo'@; put 'KSk7cmV0dXJuIEx9LEYucHJvdG90eXBlLm11bEFkZD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IHN1cHBvcnRlZCBvbiBNb250Z29tZXJ5IGN1cnZlIil9LEYucHJvdG90eXBlLmp1bWxBZGQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBzdXBwb3J0ZWQgb24gTW9u'@; put 'dGdvbWVyeSBjdXJ2ZSIpfSxGLnByb3RvdHlwZS5lcT1mdW5jdGlvbihSKXtyZXR1cm4gMD09PXRoaXMuZ2V0WCgpLmNtcChSLmdldFgoKSl9LEYucHJvdG90eXBlLm5vcm1hbGl6ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLng9dGhpcy54LnJlZE11bCh0aGlzLnoucmVkSW52bSgpKSx0aGlz'@; put 'Lno9dGhpcy5jdXJ2ZS5vbmUsdGhpc30sRi5wcm90b3R5cGUuZ2V0WD1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5vcm1hbGl6ZSgpLHRoaXMueC5mcm9tUmVkKCl9fSw2NjczOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoOTUzKSxfPWIoMzc4NSkscD1iKDU3MTcpLE49Yig0OTE4'@; put 'KSx3PUQuYXNzZXJ0O2Z1bmN0aW9uIEYoail7Ti5jYWxsKHRoaXMsInNob3J0IixqKSx0aGlzLmE9bmV3IF8oai5hLDE2KS50b1JlZCh0aGlzLnJlZCksdGhpcy5iPW5ldyBfKGouYiwxNikudG9SZWQodGhpcy5yZWQpLHRoaXMudGludj10aGlzLnR3by5yZWRJbnZtKCksdGhpcy56ZXJvQT0w'@; put 'PT09dGhpcy5hLmZyb21SZWQoKS5jbXBuKDApLHRoaXMudGhyZWVBPTA9PT10aGlzLmEuZnJvbVJlZCgpLnN1Yih0aGlzLnApLmNtcG4oLTMpLHRoaXMuZW5kbz10aGlzLl9nZXRFbmRvbW9ycGhpc20oaiksdGhpcy5fZW5kb1duYWZUMT1uZXcgQXJyYXkoNCksdGhpcy5fZW5kb1duYWZUMj1u'@; put 'ZXcgQXJyYXkoNCl9ZnVuY3Rpb24gSChqLFAsTCxZKXtOLkJhc2VQb2ludC5jYWxsKHRoaXMsaiwiYWZmaW5lIiksbnVsbD09PVAmJm51bGw9PT1MPyh0aGlzLng9bnVsbCx0aGlzLnk9bnVsbCx0aGlzLmluZj0hMCk6KHRoaXMueD1uZXcgXyhQLDE2KSx0aGlzLnk9bmV3IF8oTCwxNiksWSYm'@; put 'KHRoaXMueC5mb3JjZVJlZCh0aGlzLmN1cnZlLnJlZCksdGhpcy55LmZvcmNlUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy54LnJlZHx8KHRoaXMueD10aGlzLngudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnkucmVkfHwodGhpcy55PXRoaXMueS50b1JlZCh0aGlzLmN1cnZlLnJlZCkp'@; put 'LHRoaXMuaW5mPSExKX1mdW5jdGlvbiBSKGosUCxMLFkpe04uQmFzZVBvaW50LmNhbGwodGhpcyxqLCJqYWNvYmlhbiIpLG51bGw9PT1QJiZudWxsPT09TCYmbnVsbD09PVk/KHRoaXMueD10aGlzLmN1cnZlLm9uZSx0aGlzLnk9dGhpcy5jdXJ2ZS5vbmUsdGhpcy56PW5ldyBfKDApKToodGhp'@; put 'cy54PW5ldyBfKFAsMTYpLHRoaXMueT1uZXcgXyhMLDE2KSx0aGlzLno9bmV3IF8oWSwxNikpLHRoaXMueC5yZWR8fCh0aGlzLng9dGhpcy54LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy55LnJlZHx8KHRoaXMueT10aGlzLnkudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnoucmVk'@; put 'fHwodGhpcy56PXRoaXMuei50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMuek9uZT10aGlzLno9PT10aGlzLmN1cnZlLm9uZX1wKEYsTiksY2UuZXhwb3J0cz1GLEYucHJvdG90eXBlLl9nZXRFbmRvbW9ycGhpc209ZnVuY3Rpb24oUCl7aWYodGhpcy56ZXJvQSYmdGhpcy5nJiZ0aGlzLm4m'@; put 'JjE9PT10aGlzLnAubW9kbigzKSl7dmFyIEwsWTtpZihQLmJldGEpTD1uZXcgXyhQLmJldGEsMTYpLnRvUmVkKHRoaXMucmVkKTtlbHNle3ZhciBCPXRoaXMuX2dldEVuZG9Sb290cyh0aGlzLnApO0w9KEw9QlswXS5jbXAoQlsxXSk8MD9CWzBdOkJbMV0pLnRvUmVkKHRoaXMucmVkKX1pZihQ'@; put 'LmxhbWJkYSlZPW5ldyBfKFAubGFtYmRhLDE2KTtlbHNle3ZhciBXPXRoaXMuX2dldEVuZG9Sb290cyh0aGlzLm4pOzA9PT10aGlzLmcubXVsKFdbMF0pLnguY21wKHRoaXMuZy54LnJlZE11bChMKSk/WT1XWzBdOncoMD09PXRoaXMuZy5tdWwoWT1XWzFdKS54LmNtcCh0aGlzLmcueC5yZWRN'@; put 'dWwoTCkpKX1yZXR1cm57YmV0YTpMLGxhbWJkYTpZLGJhc2lzOlAuYmFzaXM/UC5iYXNpcy5tYXAoZnVuY3Rpb24oWCl7cmV0dXJue2E6bmV3IF8oWC5hLDE2KSxiOm5ldyBfKFguYiwxNil9fSk6dGhpcy5fZ2V0RW5kb0Jhc2lzKFkpfX19LEYucHJvdG90eXBlLl9nZXRFbmRvUm9vdHM9ZnVu'@; put 'Y3Rpb24oUCl7dmFyIEw9UD09PXRoaXMucD90aGlzLnJlZDpfLm1vbnQoUCksWT1uZXcgXygyKS50b1JlZChMKS5yZWRJbnZtKCksQj1ZLnJlZE5lZygpLFc9bmV3IF8oMykudG9SZWQoTCkucmVkTmVnKCkucmVkU3FydCgpLnJlZE11bChZKTtyZXR1cm5bQi5yZWRBZGQoVykuZnJvbVJlZCgp'@; put 'LEIucmVkU3ViKFcpLmZyb21SZWQoKV19LEYucHJvdG90eXBlLl9nZXRFbmRvQmFzaXM9ZnVuY3Rpb24oUCl7Zm9yKHZhciBxLHRlLGllLHNlLGdlLF9lLFRlLHplLHosTD10aGlzLm4udXNocm4oTWF0aC5mbG9vcih0aGlzLm4uYml0TGVuZ3RoKCkvMikpLFk9UCxCPXRoaXMubi5jbG9uZSgp'@; put 'LFc9bmV3IF8oMSksWj1uZXcgXygwKSxYPW5ldyBfKDApLFE9bmV3IF8oMSksU2U9MDswIT09WS5jbXBuKDApOyl7dmFyIGc9Qi5kaXYoWSk7emU9Qi5zdWIoZy5tdWwoWSkpLHo9WC5zdWIoZy5tdWwoVykpO3ZhciB5PVEuc3ViKGcubXVsKFopKTtpZighaWUmJnplLmNtcChMKTwwKXE9VGUu'@; put 'bmVnKCksdGU9VyxpZT16ZS5uZWcoKSxzZT16O2Vsc2UgaWYoaWUmJjI9PSsrU2UpYnJlYWs7VGU9emUsQj1ZLFk9emUsWD1XLFc9eixRPVosWj15fWdlPXplLm5lZygpLF9lPXo7dmFyIHg9aWUuc3FyKCkuYWRkKHNlLnNxcigpKTtyZXR1cm4gZ2Uuc3FyKCkuYWRkKF9lLnNxcigpKS5jbXAo'@; put 'eCk+PTAmJihnZT1xLF9lPXRlKSxpZS5uZWdhdGl2ZSYmKGllPWllLm5lZygpLHNlPXNlLm5lZygpKSxnZS5uZWdhdGl2ZSYmKGdlPWdlLm5lZygpLF9lPV9lLm5lZygpKSxbe2E6aWUsYjpzZX0se2E6Z2UsYjpfZX1dfSxGLnByb3RvdHlwZS5fZW5kb1NwbGl0PWZ1bmN0aW9uKFApe3ZhciBM'@; put 'PXRoaXMuZW5kby5iYXNpcyxZPUxbMF0sQj1MWzFdLFc9Qi5iLm11bChQKS5kaXZSb3VuZCh0aGlzLm4pLFo9WS5iLm5lZygpLm11bChQKS5kaXZSb3VuZCh0aGlzLm4pLFg9Vy5tdWwoWS5hKSxRPVoubXVsKEIuYSkscT1XLm11bChZLmIpLHRlPVoubXVsKEIuYik7cmV0dXJue2sxOlAuc3Vi'@; put 'KFgpLnN1YihRKSxrMjpxLmFkZCh0ZSkubmVnKCl9fSxGLnByb3RvdHlwZS5wb2ludEZyb21YPWZ1bmN0aW9uKFAsTCl7KFA9bmV3IF8oUCwxNikpLnJlZHx8KFA9UC50b1JlZCh0aGlzLnJlZCkpO3ZhciBZPVAucmVkU3FyKCkucmVkTXVsKFApLnJlZElBZGQoUC5yZWRNdWwodGhpcy5hKSku'@; put 'cmVkSUFkZCh0aGlzLmIpLEI9WS5yZWRTcXJ0KCk7aWYoMCE9PUIucmVkU3FyKCkucmVkU3ViKFkpLmNtcCh0aGlzLnplcm8pKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBwb2ludCIpO3ZhciBXPUIuZnJvbVJlZCgpLmlzT2RkKCk7cmV0dXJuKEwmJiFXfHwhTCYmVykmJihCPUIucmVkTmVn'@; put 'KCkpLHRoaXMucG9pbnQoUCxCKX0sRi5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oUCl7aWYoUC5pbmYpcmV0dXJuITA7dmFyIEw9UC54LFk9UC55LEI9dGhpcy5hLnJlZE11bChMKSxXPUwucmVkU3FyKCkucmVkTXVsKEwpLnJlZElBZGQoQikucmVkSUFkZCh0aGlzLmIpO3JldHVybiAw'@; put 'PT09WS5yZWRTcXIoKS5yZWRJU3ViKFcpLmNtcG4oMCl9LEYucHJvdG90eXBlLl9lbmRvV25hZk11bEFkZD1mdW5jdGlvbihQLEwsWSl7Zm9yKHZhciBCPXRoaXMuX2VuZG9XbmFmVDEsVz10aGlzLl9lbmRvV25hZlQyLFo9MDtaPFAubGVuZ3RoO1orKyl7dmFyIFg9dGhpcy5fZW5kb1NwbGl0'@; put 'KExbWl0pLFE9UFtaXSxxPVEuX2dldEJldGEoKTtYLmsxLm5lZ2F0aXZlJiYoWC5rMS5pbmVnKCksUT1RLm5lZyghMCkpLFguazIubmVnYXRpdmUmJihYLmsyLmluZWcoKSxxPXEubmVnKCEwKSksQlsyKlpdPVEsQlsyKlorMV09cSxXWzIqWl09WC5rMSxXWzIqWisxXT1YLmsyfWZvcih2YXIg'@; put 'dGU9dGhpcy5fd25hZk11bEFkZCgxLEIsVywyKlosWSksaWU9MDtpZTwyKlo7aWUrKylCW2llXT1udWxsLFdbaWVdPW51bGw7cmV0dXJuIHRlfSxwKEgsTi5CYXNlUG9pbnQpLEYucHJvdG90eXBlLnBvaW50PWZ1bmN0aW9uKFAsTCxZKXtyZXR1cm4gbmV3IEgodGhpcyxQLEwsWSl9LEYucHJv'@; put 'dG90eXBlLnBvaW50RnJvbUpTT049ZnVuY3Rpb24oUCxMKXtyZXR1cm4gSC5mcm9tSlNPTih0aGlzLFAsTCl9LEgucHJvdG90eXBlLl9nZXRCZXRhPWZ1bmN0aW9uKCl7aWYodGhpcy5jdXJ2ZS5lbmRvKXt2YXIgUD10aGlzLnByZWNvbXB1dGVkO2lmKFAmJlAuYmV0YSlyZXR1cm4gUC5iZXRh'@; put 'O3ZhciBMPXRoaXMuY3VydmUucG9pbnQodGhpcy54LnJlZE11bCh0aGlzLmN1cnZlLmVuZG8uYmV0YSksdGhpcy55KTtpZihQKXt2YXIgWT10aGlzLmN1cnZlLEI9ZnVuY3Rpb24oVyl7cmV0dXJuIFkucG9pbnQoVy54LnJlZE11bChZLmVuZG8uYmV0YSksVy55KX07UC5iZXRhPUwsTC5wcmVj'@; put 'b21wdXRlZD17YmV0YTpudWxsLG5hZjpQLm5hZiYme3duZDpQLm5hZi53bmQscG9pbnRzOlAubmFmLnBvaW50cy5tYXAoQil9LGRvdWJsZXM6UC5kb3VibGVzJiZ7c3RlcDpQLmRvdWJsZXMuc3RlcCxwb2ludHM6UC5kb3VibGVzLnBvaW50cy5tYXAoQil9fX1yZXR1cm4gTH19LEgucHJvdG90'@; put 'eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnByZWNvbXB1dGVkP1t0aGlzLngsdGhpcy55LHRoaXMucHJlY29tcHV0ZWQmJntkb3VibGVzOnRoaXMucHJlY29tcHV0ZWQuZG91YmxlcyYme3N0ZXA6dGhpcy5wcmVjb21wdXRlZC5kb3VibGVzLnN0ZXAscG9pbnRzOnRoaXMucHJl'@; put 'Y29tcHV0ZWQuZG91Ymxlcy5wb2ludHMuc2xpY2UoMSl9LG5hZjp0aGlzLnByZWNvbXB1dGVkLm5hZiYme3duZDp0aGlzLnByZWNvbXB1dGVkLm5hZi53bmQscG9pbnRzOnRoaXMucHJlY29tcHV0ZWQubmFmLnBvaW50cy5zbGljZSgxKX19XTpbdGhpcy54LHRoaXMueV19LEguZnJvbUpTT049'@; put 'ZnVuY3Rpb24oUCxMLFkpeyJzdHJpbmciPT10eXBlb2YgTCYmKEw9SlNPTi5wYXJzZShMKSk7dmFyIEI9UC5wb2ludChMWzBdLExbMV0sWSk7aWYoIUxbMl0pcmV0dXJuIEI7ZnVuY3Rpb24gVyhYKXtyZXR1cm4gUC5wb2ludChYWzBdLFhbMV0sWSl9dmFyIFo9TFsyXTtyZXR1cm4gQi5wcmVj'@; put 'b21wdXRlZD17YmV0YTpudWxsLGRvdWJsZXM6Wi5kb3VibGVzJiZ7c3RlcDpaLmRvdWJsZXMuc3RlcCxwb2ludHM6W0JdLmNvbmNhdChaLmRvdWJsZXMucG9pbnRzLm1hcChXKSl9LG5hZjpaLm5hZiYme3duZDpaLm5hZi53bmQscG9pbnRzOltCXS5jb25jYXQoWi5uYWYucG9pbnRzLm1hcChX'@; put 'KSl9fSxCfSxILnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNJbmZpbml0eSgpPyI8RUMgUG9pbnQgSW5maW5pdHk+IjoiPEVDIFBvaW50IHg6ICIrdGhpcy54LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiIHk6ICIrdGhpcy55LmZyb21SZWQoKS50b1N0cmlu'@; put 'ZygxNiwyKSsiPiJ9LEgucHJvdG90eXBlLmlzSW5maW5pdHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbmZ9LEgucHJvdG90eXBlLmFkZD1mdW5jdGlvbihQKXtpZih0aGlzLmluZilyZXR1cm4gUDtpZihQLmluZilyZXR1cm4gdGhpcztpZih0aGlzLmVxKFApKXJldHVybiB0aGlzLmRibCgp'@; put 'O2lmKHRoaXMubmVnKCkuZXEoUCkpcmV0dXJuIHRoaXMuY3VydmUucG9pbnQobnVsbCxudWxsKTtpZigwPT09dGhpcy54LmNtcChQLngpKXJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCk7dmFyIEw9dGhpcy55LnJlZFN1YihQLnkpOzAhPT1MLmNtcG4oMCkmJihMPUwucmVkTXVs'@; put 'KHRoaXMueC5yZWRTdWIoUC54KS5yZWRJbnZtKCkpKTt2YXIgWT1MLnJlZFNxcigpLnJlZElTdWIodGhpcy54KS5yZWRJU3ViKFAueCksQj1MLnJlZE11bCh0aGlzLngucmVkU3ViKFkpKS5yZWRJU3ViKHRoaXMueSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQoWSxCKX0sSC5wcm90b3R5cGUu'@; put 'ZGJsPWZ1bmN0aW9uKCl7aWYodGhpcy5pbmYpcmV0dXJuIHRoaXM7dmFyIFA9dGhpcy55LnJlZEFkZCh0aGlzLnkpO2lmKDA9PT1QLmNtcG4oMCkpcmV0dXJuIHRoaXMuY3VydmUucG9pbnQobnVsbCxudWxsKTt2YXIgTD10aGlzLmN1cnZlLmEsWT10aGlzLngucmVkU3FyKCksQj1QLnJlZElu'@; put 'dm0oKSxXPVkucmVkQWRkKFkpLnJlZElBZGQoWSkucmVkSUFkZChMKS5yZWRNdWwoQiksWj1XLnJlZFNxcigpLnJlZElTdWIodGhpcy54LnJlZEFkZCh0aGlzLngpKSxYPVcucmVkTXVsKHRoaXMueC5yZWRTdWIoWikpLnJlZElTdWIodGhpcy55KTtyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludCha'@; put 'LFgpfSxILnByb3RvdHlwZS5nZXRYPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueC5mcm9tUmVkKCl9LEgucHJvdG90eXBlLmdldFk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy55LmZyb21SZWQoKX0sSC5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKFApe3JldHVybiBQPW5ldyBfKFAsMTYpLHRoaXMu'@; put 'aXNJbmZpbml0eSgpP3RoaXM6dGhpcy5faGFzRG91YmxlcyhQKT90aGlzLmN1cnZlLl9maXhlZE5hZk11bCh0aGlzLFApOnRoaXMuY3VydmUuZW5kbz90aGlzLmN1cnZlLl9lbmRvV25hZk11bEFkZChbdGhpc10sW1BdKTp0aGlzLmN1cnZlLl93bmFmTXVsKHRoaXMsUCl9LEgucHJvdG90eXBl'@; put 'Lm11bEFkZD1mdW5jdGlvbihQLEwsWSl7dmFyIEI9W3RoaXMsTF0sVz1bUCxZXTtyZXR1cm4gdGhpcy5jdXJ2ZS5lbmRvP3RoaXMuY3VydmUuX2VuZG9XbmFmTXVsQWRkKEIsVyk6dGhpcy5jdXJ2ZS5fd25hZk11bEFkZCgxLEIsVywyKX0sSC5wcm90b3R5cGUuam11bEFkZD1mdW5jdGlvbihQ'@; put 'LEwsWSl7dmFyIEI9W3RoaXMsTF0sVz1bUCxZXTtyZXR1cm4gdGhpcy5jdXJ2ZS5lbmRvP3RoaXMuY3VydmUuX2VuZG9XbmFmTXVsQWRkKEIsVywhMCk6dGhpcy5jdXJ2ZS5fd25hZk11bEFkZCgxLEIsVywyLCEwKX0sSC5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oUCl7cmV0dXJuIHRoaXM9PT1Q'@; put 'fHx0aGlzLmluZj09PVAuaW5mJiYodGhpcy5pbmZ8fDA9PT10aGlzLnguY21wKFAueCkmJjA9PT10aGlzLnkuY21wKFAueSkpfSxILnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oUCl7aWYodGhpcy5pbmYpcmV0dXJuIHRoaXM7dmFyIEw9dGhpcy5jdXJ2ZS5wb2ludCh0aGlzLngsdGhpcy55LnJl'@; put 'ZE5lZygpKTtpZihQJiZ0aGlzLnByZWNvbXB1dGVkKXt2YXIgWT10aGlzLnByZWNvbXB1dGVkLEI9ZnVuY3Rpb24oVyl7cmV0dXJuIFcubmVnKCl9O0wucHJlY29tcHV0ZWQ9e25hZjpZLm5hZiYme3duZDpZLm5hZi53bmQscG9pbnRzOlkubmFmLnBvaW50cy5tYXAoQil9LGRvdWJsZXM6WS5k'@; put 'b3VibGVzJiZ7c3RlcDpZLmRvdWJsZXMuc3RlcCxwb2ludHM6WS5kb3VibGVzLnBvaW50cy5tYXAoQil9fX1yZXR1cm4gTH0sSC5wcm90b3R5cGUudG9KPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5mP3RoaXMuY3VydmUuanBvaW50KG51bGwsbnVsbCxudWxsKTp0aGlzLmN1cnZlLmpwb2lu'@; put 'dCh0aGlzLngsdGhpcy55LHRoaXMuY3VydmUub25lKX0scChSLE4uQmFzZVBvaW50KSxGLnByb3RvdHlwZS5qcG9pbnQ9ZnVuY3Rpb24oUCxMLFkpe3JldHVybiBuZXcgUih0aGlzLFAsTCxZKX0sUi5wcm90b3R5cGUudG9QPWZ1bmN0aW9uKCl7aWYodGhpcy5pc0luZmluaXR5KCkpcmV0dXJu'@; put 'IHRoaXMuY3VydmUucG9pbnQobnVsbCxudWxsKTt2YXIgUD10aGlzLnoucmVkSW52bSgpLEw9UC5yZWRTcXIoKSxZPXRoaXMueC5yZWRNdWwoTCksQj10aGlzLnkucmVkTXVsKEwpLnJlZE11bChQKTtyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChZLEIpfSxSLnByb3RvdHlwZS5uZWc9ZnVuY3Rp'@; put 'b24oKXtyZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQodGhpcy54LHRoaXMueS5yZWROZWcoKSx0aGlzLnopfSxSLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oUCl7aWYodGhpcy5pc0luZmluaXR5KCkpcmV0dXJuIFA7aWYoUC5pc0luZmluaXR5KCkpcmV0dXJuIHRoaXM7dmFyIEw9UC56LnJlZFNx'@; put 'cigpLFk9dGhpcy56LnJlZFNxcigpLEI9dGhpcy54LnJlZE11bChMKSxXPVAueC5yZWRNdWwoWSksWj10aGlzLnkucmVkTXVsKEwucmVkTXVsKFAueikpLFg9UC55LnJlZE11bChZLnJlZE11bCh0aGlzLnopKSxRPUIucmVkU3ViKFcpLHE9Wi5yZWRTdWIoWCk7aWYoMD09PVEuY21wbigwKSly'@; put 'ZXR1cm4gMCE9PXEuY21wbigwKT90aGlzLmN1cnZlLmpwb2ludChudWxsLG51bGwsbnVsbCk6dGhpcy5kYmwoKTt2YXIgdGU9US5yZWRTcXIoKSxpZT10ZS5yZWRNdWwoUSksc2U9Qi5yZWRNdWwodGUpLGdlPXEucmVkU3FyKCkucmVkSUFkZChpZSkucmVkSVN1YihzZSkucmVkSVN1YihzZSks'@; put 'X2U9cS5yZWRNdWwoc2UucmVkSVN1YihnZSkpLnJlZElTdWIoWi5yZWRNdWwoaWUpKSxUZT10aGlzLnoucmVkTXVsKFAueikucmVkTXVsKFEpO3JldHVybiB0aGlzLmN1cnZlLmpwb2ludChnZSxfZSxUZSl9LFIucHJvdG90eXBlLm1peGVkQWRkPWZ1bmN0aW9uKFApe2lmKHRoaXMuaXNJbmZp'@; put 'bml0eSgpKXJldHVybiBQLnRvSigpO2lmKFAuaXNJbmZpbml0eSgpKXJldHVybiB0aGlzO3ZhciBMPXRoaXMuei5yZWRTcXIoKSxZPXRoaXMueCxCPVAueC5yZWRNdWwoTCksVz10aGlzLnksWj1QLnkucmVkTXVsKEwpLnJlZE11bCh0aGlzLnopLFg9WS5yZWRTdWIoQiksUT1XLnJlZFN1Yiha'@; put 'KTtpZigwPT09WC5jbXBuKDApKXJldHVybiAwIT09US5jbXBuKDApP3RoaXMuY3VydmUuanBvaW50KG51bGwsbnVsbCxudWxsKTp0aGlzLmRibCgpO3ZhciBxPVgucmVkU3FyKCksdGU9cS5yZWRNdWwoWCksaWU9WS5yZWRNdWwocSksc2U9US5yZWRTcXIoKS5yZWRJQWRkKHRlKS5yZWRJU3Vi'@; put 'KGllKS5yZWRJU3ViKGllKSxnZT1RLnJlZE11bChpZS5yZWRJU3ViKHNlKSkucmVkSVN1YihXLnJlZE11bCh0ZSkpLF9lPXRoaXMuei5yZWRNdWwoWCk7cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KHNlLGdlLF9lKX0sUi5wcm90b3R5cGUuZGJscD1mdW5jdGlvbihQKXtpZigwPT09UClyZXR1'@; put 'cm4gdGhpcztpZih0aGlzLmlzSW5maW5pdHkoKSlyZXR1cm4gdGhpcztpZighUClyZXR1cm4gdGhpcy5kYmwoKTt2YXIgTDtpZih0aGlzLmN1cnZlLnplcm9BfHx0aGlzLmN1cnZlLnRocmVlQSl7dmFyIFk9dGhpcztmb3IoTD0wO0w8UDtMKyspWT1ZLmRibCgpO3JldHVybiBZfXZhciBCPXRo'@; put 'aXMuY3VydmUuYSxXPXRoaXMuY3VydmUudGludixaPXRoaXMueCxYPXRoaXMueSxRPXRoaXMueixxPVEucmVkU3FyKCkucmVkU3FyKCksdGU9WC5yZWRBZGQoWCk7Zm9yKEw9MDtMPFA7TCsrKXt2YXIgaWU9Wi5yZWRTcXIoKSxzZT10ZS5yZWRTcXIoKSxnZT1zZS5yZWRTcXIoKSxfZT1pZS5y'@; put 'ZWRBZGQoaWUpLnJlZElBZGQoaWUpLnJlZElBZGQoQi5yZWRNdWwocSkpLFRlPVoucmVkTXVsKHNlKSxTZT1fZS5yZWRTcXIoKS5yZWRJU3ViKFRlLnJlZEFkZChUZSkpLHplPVRlLnJlZElTdWIoU2UpLHo9X2UucmVkTXVsKHplKTt6PXoucmVkSUFkZCh6KS5yZWRJU3ViKGdlKTt2YXIgZz10'@; put 'ZS5yZWRNdWwoUSk7TCsxPFAmJihxPXEucmVkTXVsKGdlKSksWj1TZSxRPWcsdGU9en1yZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoWix0ZS5yZWRNdWwoVyksUSl9LFIucHJvdG90eXBlLmRibD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT90aGlzOnRoaXMuY3VydmUuemVy'@; put 'b0E/dGhpcy5femVyb0RibCgpOnRoaXMuY3VydmUudGhyZWVBP3RoaXMuX3RocmVlRGJsKCk6dGhpcy5fZGJsKCl9LFIucHJvdG90eXBlLl96ZXJvRGJsPWZ1bmN0aW9uKCl7dmFyIFAsTCxZO2lmKHRoaXMuek9uZSl7dmFyIEI9dGhpcy54LnJlZFNxcigpLFc9dGhpcy55LnJlZFNxcigpLFo9'@; put 'Vy5yZWRTcXIoKSxYPXRoaXMueC5yZWRBZGQoVykucmVkU3FyKCkucmVkSVN1YihCKS5yZWRJU3ViKFopO1g9WC5yZWRJQWRkKFgpO3ZhciBRPUIucmVkQWRkKEIpLnJlZElBZGQoQikscT1RLnJlZFNxcigpLnJlZElTdWIoWCkucmVkSVN1YihYKSx0ZT1aLnJlZElBZGQoWik7dGU9KHRlPXRl'@; put 'LnJlZElBZGQodGUpKS5yZWRJQWRkKHRlKSxQPXEsTD1RLnJlZE11bChYLnJlZElTdWIocSkpLnJlZElTdWIodGUpLFk9dGhpcy55LnJlZEFkZCh0aGlzLnkpfWVsc2V7dmFyIGllPXRoaXMueC5yZWRTcXIoKSxzZT10aGlzLnkucmVkU3FyKCksZ2U9c2UucmVkU3FyKCksX2U9dGhpcy54LnJl'@; put 'ZEFkZChzZSkucmVkU3FyKCkucmVkSVN1YihpZSkucmVkSVN1YihnZSk7X2U9X2UucmVkSUFkZChfZSk7dmFyIFRlPWllLnJlZEFkZChpZSkucmVkSUFkZChpZSksU2U9VGUucmVkU3FyKCksemU9Z2UucmVkSUFkZChnZSk7emU9KHplPXplLnJlZElBZGQoemUpKS5yZWRJQWRkKHplKSxQPVNl'@; put 'LnJlZElTdWIoX2UpLnJlZElTdWIoX2UpLEw9VGUucmVkTXVsKF9lLnJlZElTdWIoUCkpLnJlZElTdWIoemUpLFk9KFk9dGhpcy55LnJlZE11bCh0aGlzLnopKS5yZWRJQWRkKFkpfXJldHVybiB0aGlzLmN1cnZlLmpwb2ludChQLEwsWSl9LFIucHJvdG90eXBlLl90aHJlZURibD1mdW5jdGlv'@; put 'bigpe3ZhciBQLEwsWTtpZih0aGlzLnpPbmUpe3ZhciBCPXRoaXMueC5yZWRTcXIoKSxXPXRoaXMueS5yZWRTcXIoKSxaPVcucmVkU3FyKCksWD10aGlzLngucmVkQWRkKFcpLnJlZFNxcigpLnJlZElTdWIoQikucmVkSVN1YihaKTtYPVgucmVkSUFkZChYKTt2YXIgUT1CLnJlZEFkZChCKS5y'@; put 'ZWRJQWRkKEIpLnJlZElBZGQodGhpcy5jdXJ2ZS5hKSxxPVEucmVkU3FyKCkucmVkSVN1YihYKS5yZWRJU3ViKFgpO1A9cTt2YXIgdGU9Wi5yZWRJQWRkKFopO3RlPSh0ZT10ZS5yZWRJQWRkKHRlKSkucmVkSUFkZCh0ZSksTD1RLnJlZE11bChYLnJlZElTdWIocSkpLnJlZElTdWIodGUpLFk9'@; put 'dGhpcy55LnJlZEFkZCh0aGlzLnkpfWVsc2V7dmFyIGllPXRoaXMuei5yZWRTcXIoKSxzZT10aGlzLnkucmVkU3FyKCksZ2U9dGhpcy54LnJlZE11bChzZSksX2U9dGhpcy54LnJlZFN1YihpZSkucmVkTXVsKHRoaXMueC5yZWRBZGQoaWUpKTtfZT1fZS5yZWRBZGQoX2UpLnJlZElBZGQoX2Up'@; put 'O3ZhciBUZT1nZS5yZWRJQWRkKGdlKSxTZT0oVGU9VGUucmVkSUFkZChUZSkpLnJlZEFkZChUZSk7UD1fZS5yZWRTcXIoKS5yZWRJU3ViKFNlKSxZPXRoaXMueS5yZWRBZGQodGhpcy56KS5yZWRTcXIoKS5yZWRJU3ViKHNlKS5yZWRJU3ViKGllKTt2YXIgemU9c2UucmVkU3FyKCk7emU9KHpl'@; put 'PSh6ZT16ZS5yZWRJQWRkKHplKSkucmVkSUFkZCh6ZSkpLnJlZElBZGQoemUpLEw9X2UucmVkTXVsKFRlLnJlZElTdWIoUCkpLnJlZElTdWIoemUpfXJldHVybiB0aGlzLmN1cnZlLmpwb2ludChQLEwsWSl9LFIucHJvdG90eXBlLl9kYmw9ZnVuY3Rpb24oKXt2YXIgUD10aGlzLmN1cnZlLmEs'@; put 'TD10aGlzLngsWT10aGlzLnksQj10aGlzLnosVz1CLnJlZFNxcigpLnJlZFNxcigpLFo9TC5yZWRTcXIoKSxYPVkucmVkU3FyKCksUT1aLnJlZEFkZChaKS5yZWRJQWRkKFopLnJlZElBZGQoUC5yZWRNdWwoVykpLHE9TC5yZWRBZGQoTCksdGU9KHE9cS5yZWRJQWRkKHEpKS5yZWRNdWwoWCks'@; put 'aWU9US5yZWRTcXIoKS5yZWRJU3ViKHRlLnJlZEFkZCh0ZSkpLHNlPXRlLnJlZElTdWIoaWUpLGdlPVgucmVkU3FyKCk7Z2U9KGdlPShnZT1nZS5yZWRJQWRkKGdlKSkucmVkSUFkZChnZSkpLnJlZElBZGQoZ2UpO3ZhciBfZT1RLnJlZE11bChzZSkucmVkSVN1YihnZSksVGU9WS5yZWRBZGQo'@; put 'WSkucmVkTXVsKEIpO3JldHVybiB0aGlzLmN1cnZlLmpwb2ludChpZSxfZSxUZSl9LFIucHJvdG90eXBlLnRycGw9ZnVuY3Rpb24oKXtpZighdGhpcy5jdXJ2ZS56ZXJvQSlyZXR1cm4gdGhpcy5kYmwoKS5hZGQodGhpcyk7dmFyIFA9dGhpcy54LnJlZFNxcigpLEw9dGhpcy55LnJlZFNxcigp'@; put 'LFk9dGhpcy56LnJlZFNxcigpLEI9TC5yZWRTcXIoKSxXPVAucmVkQWRkKFApLnJlZElBZGQoUCksWj1XLnJlZFNxcigpLFg9dGhpcy54LnJlZEFkZChMKS5yZWRTcXIoKS5yZWRJU3ViKFApLnJlZElTdWIoQiksUT0oWD0oWD0oWD1YLnJlZElBZGQoWCkpLnJlZEFkZChYKS5yZWRJQWRkKFgp'@; put 'KS5yZWRJU3ViKFopKS5yZWRTcXIoKSxxPUIucmVkSUFkZChCKTtxPShxPShxPXEucmVkSUFkZChxKSkucmVkSUFkZChxKSkucmVkSUFkZChxKTt2YXIgdGU9Vy5yZWRJQWRkKFgpLnJlZFNxcigpLnJlZElTdWIoWikucmVkSVN1YihRKS5yZWRJU3ViKHEpLGllPUwucmVkTXVsKHRlKTtpZT0o'@; put 'aWU9aWUucmVkSUFkZChpZSkpLnJlZElBZGQoaWUpO3ZhciBzZT10aGlzLngucmVkTXVsKFEpLnJlZElTdWIoaWUpO3NlPShzZT1zZS5yZWRJQWRkKHNlKSkucmVkSUFkZChzZSk7dmFyIGdlPXRoaXMueS5yZWRNdWwodGUucmVkTXVsKHEucmVkSVN1Yih0ZSkpLnJlZElTdWIoWC5yZWRNdWwo'@; put 'USkpKTtnZT0oZ2U9KGdlPWdlLnJlZElBZGQoZ2UpKS5yZWRJQWRkKGdlKSkucmVkSUFkZChnZSk7dmFyIF9lPXRoaXMuei5yZWRBZGQoWCkucmVkU3FyKCkucmVkSVN1YihZKS5yZWRJU3ViKFEpO3JldHVybiB0aGlzLmN1cnZlLmpwb2ludChzZSxnZSxfZSl9LFIucHJvdG90eXBlLm11bD1m'@; put 'dW5jdGlvbihQLEwpe3JldHVybiBQPW5ldyBfKFAsTCksdGhpcy5jdXJ2ZS5fd25hZk11bCh0aGlzLFApfSxSLnByb3RvdHlwZS5lcT1mdW5jdGlvbihQKXtpZigiYWZmaW5lIj09PVAudHlwZSlyZXR1cm4gdGhpcy5lcShQLnRvSigpKTtpZih0aGlzPT09UClyZXR1cm4hMDt2YXIgTD10aGlz'@; put 'LnoucmVkU3FyKCksWT1QLnoucmVkU3FyKCk7aWYoMCE9PXRoaXMueC5yZWRNdWwoWSkucmVkSVN1YihQLngucmVkTXVsKEwpKS5jbXBuKDApKXJldHVybiExO3ZhciBCPUwucmVkTXVsKHRoaXMueiksVz1ZLnJlZE11bChQLnopO3JldHVybiAwPT09dGhpcy55LnJlZE11bChXKS5yZWRJU3Vi'@; put 'KFAueS5yZWRNdWwoQikpLmNtcG4oMCl9LFIucHJvdG90eXBlLmVxWFRvUD1mdW5jdGlvbihQKXt2YXIgTD10aGlzLnoucmVkU3FyKCksWT1QLnRvUmVkKHRoaXMuY3VydmUucmVkKS5yZWRNdWwoTCk7aWYoMD09PXRoaXMueC5jbXAoWSkpcmV0dXJuITA7Zm9yKHZhciBCPVAuY2xvbmUoKSxX'@; put 'PXRoaXMuY3VydmUucmVkTi5yZWRNdWwoTCk7Oyl7aWYoQi5pYWRkKHRoaXMuY3VydmUubiksQi5jbXAodGhpcy5jdXJ2ZS5wKT49MClyZXR1cm4hMTtpZihZLnJlZElBZGQoVyksMD09PXRoaXMueC5jbXAoWSkpcmV0dXJuITB9fSxSLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0'@; put 'dXJuIHRoaXMuaXNJbmZpbml0eSgpPyI8RUMgSlBvaW50IEluZmluaXR5PiI6IjxFQyBKUG9pbnQgeDogIit0aGlzLngudG9TdHJpbmcoMTYsMikrIiB5OiAiK3RoaXMueS50b1N0cmluZygxNiwyKSsiIHo6ICIrdGhpcy56LnRvU3RyaW5nKDE2LDIpKyI+In0sUi5wcm90b3R5cGUuaXNJbmZp'@; put 'bml0eT1mdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy56LmNtcG4oMCl9fSw1NDI3OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBSLEQ9SixfPWIoMzcxNSkscD1iKDgyNTQpLHc9Yig5NTMpLmFzc2VydDtmdW5jdGlvbiBGKGope3RoaXMuY3VydmU9InNob3J0Ij09PWoudHlwZT9uZXcg'@; put 'cC5zaG9ydChqKToiZWR3YXJkcyI9PT1qLnR5cGU/bmV3IHAuZWR3YXJkcyhqKTpuZXcgcC5tb250KGopLHRoaXMuZz10aGlzLmN1cnZlLmcsdGhpcy5uPXRoaXMuY3VydmUubix0aGlzLmhhc2g9ai5oYXNoLHcodGhpcy5nLnZhbGlkYXRlKCksIkludmFsaWQgY3VydmUiKSx3KHRoaXMuZy5t'@; put 'dWwodGhpcy5uKS5pc0luZmluaXR5KCksIkludmFsaWQgY3VydmUsIEcqTiAhPSBPIil9ZnVuY3Rpb24gSChqLFApe09iamVjdC5kZWZpbmVQcm9wZXJ0eShELGose2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3ZhciBMPW5ldyBGKFApO3JldHVybiBPYmpl'@; put 'Y3QuZGVmaW5lUHJvcGVydHkoRCxqLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTpMfSksTH19KX1ELlByZXNldEN1cnZlPUYsSCgicDE5MiIse3R5cGU6InNob3J0IixwcmltZToicDE5MiIscDoiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZm'@; put 'ZmYgZmZmZmZmZmYiLGE6ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZjIixiOiI2NDIxMDUxOSBlNTljODBlNyAwZmE3ZTlhYiA3MjI0MzA0OSBmZWI4ZGVlYyBjMTQ2YjliMSIsbjoiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgOTlkZWY4'@; put 'MzYgMTQ2YmM5YjEgYjRkMjI4MzEiLGhhc2g6Xy5zaGEyNTYsZ1JlZDohMSxnOlsiMTg4ZGE4MGUgYjAzMDkwZjYgN2NiZjIwZWIgNDNhMTg4MDAgZjRmZjBhZmQgODJmZjEwMTIiLCIwNzE5MmI5NSBmZmM4ZGE3OCA2MzEwMTFlZCA2YjI0Y2RkNSA3M2Y5NzdhMSAxZTc5NDgxMSJdfSksSCgi'@; put 'cDIyNCIse3R5cGU6InNob3J0IixwcmltZToicDIyNCIscDoiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEiLGE6ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZl'@; put 'IixiOiJiNDA1MGE4NSAwYzA0YjNhYiBmNTQxMzI1NiA1MDQ0YjBiNyBkN2JmZDhiYSAyNzBiMzk0MyAyMzU1ZmZiNCIsbjoiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZjE2YTIgZTBiOGYwM2UgMTNkZDI5NDUgNWM1YzJhM2QiLGhhc2g6Xy5zaGEyNTYsZ1JlZDohMSxnOlsiYjcw'@; put 'ZTBjYmQgNmJiNGJmN2YgMzIxMzkwYjkgNGEwM2MxZDMgNTZjMjExMjIgMzQzMjgwZDYgMTE1YzFkMjEiLCJiZDM3NjM4OCBiNWY3MjNmYiA0YzIyZGZlNiBjZDQzNzVhMCA1YTA3NDc2NCA0NGQ1ODE5OSA4NTAwN2UzNCJdfSksSCgicDI1NiIse3R5cGU6InNob3J0IixwcmltZTpudWxsLHA6'@; put 'ImZmZmZmZmZmIDAwMDAwMDAxIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIixhOiJmZmZmZmZmZiAwMDAwMDAwMSAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmYyIsYjoiNWFjNjM1ZDggYWEz'@; put 'YTkzZTcgYjNlYmJkNTUgNzY5ODg2YmMgNjUxZDA2YjAgY2M1M2IwZjYgM2JjZTNjM2UgMjdkMjYwNGIiLG46ImZmZmZmZmZmIDAwMDAwMDAwIGZmZmZmZmZmIGZmZmZmZmZmIGJjZTZmYWFkIGE3MTc5ZTg0IGYzYjljYWMyIGZjNjMyNTUxIixoYXNoOl8uc2hhMjU2LGdSZWQ6ITEsZzpbIjZi'@; put 'MTdkMWYyIGUxMmM0MjQ3IGY4YmNlNmU1IDYzYTQ0MGYyIDc3MDM3ZDgxIDJkZWIzM2EwIGY0YTEzOTQ1IGQ4OThjMjk2IiwiNGZlMzQyZTIgZmUxYTdmOWIgOGVlN2ViNGEgN2MwZjllMTYgMmJjZTMzNTcgNmIzMTVlY2UgY2JiNjQwNjggMzdiZjUxZjUiXX0pLEgoInAzODQiLHt0eXBlOiJz'@; put 'aG9ydCIscHJpbWU6bnVsbCxwOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCBmZmZmZmZmZiIsYToiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZm'@; put 'ZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgZmZmZmZmZmMiLGI6ImIzMzEyZmE3IGUyM2VlN2U0IDk4OGUwNTZiIGUzZjgyZDE5IDE4MWQ5YzZlIGZlODE0MTEyIDAzMTQwODhmIDUwMTM4NzVhIGM2NTYzOThkIDhhMmVk'@; put 'MTlkIDJhODVjOGVkIGQzZWMyYWVmIixuOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBjNzYzNGQ4MSBmNDM3MmRkZiA1ODFhMGRiMiA0OGIwYTc3YSBlY2VjMTk2YSBjY2M1Mjk3MyIsaGFzaDpfLnNoYTM4NCxnUmVkOiExLGc6WyJhYTg3'@; put 'Y2EyMiBiZThiMDUzNyA4ZWIxYzcxZSBmMzIwYWQ3NCA2ZTFkM2I2MiA4YmE3OWI5OCA1OWY3NDFlMCA4MjU0MmEzOCA1NTAyZjI1ZCBiZjU1Mjk2YyAzYTU0NWUzOCA3Mjc2MGFiNyIsIjM2MTdkZTRhIDk2MjYyYzZmIDVkOWU5OGJmIDkyOTJkYzI5IGY4ZjQxZGJkIDI4OWExNDdjIGU5ZGEz'@; put 'MTEzIGI1ZjBiOGMwIDBhNjBiMWNlIDFkN2U4MTlkIDdhNDMxZDdjIDkwZWEwZTVmIl19KSxIKCJwNTIxIix7dHlwZToic2hvcnQiLHByaW1lOm51bGwscDoiMDAwMDAxZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZm'@; put 'ZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYiLGE6IjAwMDAwMWZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZm'@; put 'ZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZjIixiOiIwMDAwMDA1MSA5NTNlYjk2MSA4ZTFjOWExZiA5MjlhMjFhMCBiNjg1NDBlZSBhMmRhNzI1YiA5OWIzMTVmMyBiOGI0ODk5MSA4ZWYxMDllMSA1NjE5Mzk1MSBl'@; put 'YzdlOTM3YiAxNjUyYzBiZCAzYmIxYmYwNyAzNTczZGY4OCAzZDJjMzRmMSBlZjQ1MWZkNCA2YjUwM2YwMCIsbjoiMDAwMDAxZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmEgNTE4Njg3ODMgYmYyZjk2NmIg'@; put 'N2ZjYzAxNDggZjcwOWE1ZDAgM2JiNWM5YjggODk5YzQ3YWUgYmI2ZmI3MWUgOTEzODY0MDkiLGhhc2g6Xy5zaGE1MTIsZ1JlZDohMSxnOlsiMDAwMDAwYzYgODU4ZTA2YjcgMDQwNGU5Y2QgOWUzZWNiNjYgMjM5NWI0NDIgOWM2NDgxMzkgMDUzZmI1MjEgZjgyOGFmNjAgNmI0ZDNkYmEgYTE0'@; put 'YjVlNzcgZWZlNzU5MjggZmUxZGMxMjcgYTJmZmE4ZGUgMzM0OGIzYzEgODU2YTQyOWIgZjk3ZTdlMzEgYzJlNWJkNjYiLCIwMDAwMDExOCAzOTI5NmE3OCA5YTNiYzAwNCA1YzhhNWZiNCAyYzdkMWJkOSA5OGY1NDQ0OSA1NzliNDQ2OCAxN2FmYmQxNyAyNzNlNjYyYyA5N2VlNzI5OSA1ZWY0'@; put 'MjY0MCBjNTUwYjkwMSAzZmFkMDc2MSAzNTNjNzA4NiBhMjcyYzI0MCA4OGJlOTQ3NiA5ZmQxNjY1MCJdfSksSCgiY3VydmUyNTUxOSIse3R5cGU6Im1vbnQiLHByaW1lOiJwMjU1MTkiLHA6IjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZm'@; put 'ZmZmZmZmZmZmZWQiLGE6Ijc2ZDA2IixiOiIxIixuOiIxMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMTRkZWY5ZGVhMmY3OWNkNiA1ODEyNjMxYTVjZjVkM2VkIixoYXNoOl8uc2hhMjU2LGdSZWQ6ITEsZzpbIjkiXX0pLEgoImVkMjU1MTkiLHt0eXBlOiJlZHdhcmRzIixwcmlt'@; put 'ZToicDI1NTE5IixwOiI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkIixhOiItMSIsYzoiMSIsZDoiNTIwMzZjZWUyYjZmZmU3MyA4Y2M3NDA3OTc3NzllODk4IDAwNzAwYTRkNDE0MWQ4YWIgNzVlYjRkY2ExMzU5Nzhh'@; put 'MyIsbjoiMTAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIDE0ZGVmOWRlYTJmNzljZDYgNTgxMjYzMWE1Y2Y1ZDNlZCIsaGFzaDpfLnNoYTI1NixnUmVkOiExLGc6WyIyMTY5MzZkM2NkNmU1M2ZlYzBhNGUyMzFmZGQ2ZGM1YzY5MmNjNzYwOTUyNWE3YjJjOTU2MmQ2MDhmMjVkNTFh'@; put 'IiwiNjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY1OCJdfSk7dHJ5e1I9YigxMDM3KX1jYXRjaHtSPXZvaWQgMH1IKCJzZWNwMjU2azEiLHt0eXBlOiJzaG9ydCIscHJpbWU6ImsyNTYiLHA6ImZmZmZmZmZmIGZmZmZmZmZmIGZm'@; put 'ZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmYzJmIixhOiIwIixiOiI3IixuOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBiYWFlZGNlNiBhZjQ4YTAzYiBiZmQyNWU4YyBkMDM2NDE0MSIsaDoiMSIsaGFzaDpfLnNoYTI1NixiZXRh'@; put 'OiI3YWU5NmEyYjY1N2MwNzEwNmU2NDQ3OWVhYzM0MzRlOTljZjA0OTc1MTJmNTg5OTVjMTM5NmMyODcxOTUwMWVlIixsYW1iZGE6IjUzNjNhZDRjYzA1YzMwZTBhNTI2MWMwMjg4MTI2NDVhMTIyZTIyZWEyMDgxNjY3OGRmMDI5NjdjMWIyM2JkNzIiLGJhc2lzOlt7YToiMzA4NmQyMjFhN2Q0'@; put 'NmJjZGU4NmM5MGU0OTI4NGViMTUiLGI6Ii1lNDQzN2VkNjAxMGU4ODI4NmY1NDdmYTkwYWJmZTRjMyJ9LHthOiIxMTRjYTUwZjdhOGUyZjNmNjU3YzExMDhkOWQ0NGNmZDgiLGI6IjMwODZkMjIxYTdkNDZiY2RlODZjOTBlNDkyODRlYjE1In1dLGdSZWQ6ITEsZzpbIjc5YmU2NjdlZjlkY2Ji'@; put 'YWM1NWEwNjI5NWNlODcwYjA3MDI5YmZjZGIyZGNlMjhkOTU5ZjI4MTViMTZmODE3OTgiLCI0ODNhZGE3NzI2YTNjNDY1NWRhNGZiZmMwZTExMDhhOGZkMTdiNDQ4YTY4NTU0MTk5YzQ3ZDA4ZmZiMTBkNGI4IixSXX0pfSw3OTU0OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMzc4'@; put 'NSksXz1iKDIxNTYpLHA9Yig5NTMpLE49Yig1NDI3KSx3PWIoOTkzMSksRj1wLmFzc2VydCxIPWIoMTI1MSksUj1iKDYxMSk7ZnVuY3Rpb24gaihQKXtpZighKHRoaXMgaW5zdGFuY2VvZiBqKSlyZXR1cm4gbmV3IGooUCk7InN0cmluZyI9PXR5cGVvZiBQJiYoRihPYmplY3QucHJvdG90eXBl'@; put 'Lmhhc093blByb3BlcnR5LmNhbGwoTixQKSwiVW5rbm93biBjdXJ2ZSAiK1ApLFA9TltQXSksUCBpbnN0YW5jZW9mIE4uUHJlc2V0Q3VydmUmJihQPXtjdXJ2ZTpQfSksdGhpcy5jdXJ2ZT1QLmN1cnZlLmN1cnZlLHRoaXMubj10aGlzLmN1cnZlLm4sdGhpcy5uaD10aGlzLm4udXNocm4oMSks'@; put 'dGhpcy5nPXRoaXMuY3VydmUuZyx0aGlzLmc9UC5jdXJ2ZS5nLHRoaXMuZy5wcmVjb21wdXRlKFAuY3VydmUubi5iaXRMZW5ndGgoKSsxKSx0aGlzLmhhc2g9UC5oYXNofHxQLmN1cnZlLmhhc2h9Y2UuZXhwb3J0cz1qLGoucHJvdG90eXBlLmtleVBhaXI9ZnVuY3Rpb24oTCl7cmV0dXJuIG5l'@; put 'dyBIKHRoaXMsTCl9LGoucHJvdG90eXBlLmtleUZyb21Qcml2YXRlPWZ1bmN0aW9uKEwsWSl7cmV0dXJuIEguZnJvbVByaXZhdGUodGhpcyxMLFkpfSxqLnByb3RvdHlwZS5rZXlGcm9tUHVibGljPWZ1bmN0aW9uKEwsWSl7cmV0dXJuIEguZnJvbVB1YmxpYyh0aGlzLEwsWSl9LGoucHJvdG90'@; put 'eXBlLmdlbktleVBhaXI9ZnVuY3Rpb24oTCl7THx8KEw9e30pO2Zvcih2YXIgWT1uZXcgXyh7aGFzaDp0aGlzLmhhc2gscGVyczpMLnBlcnMscGVyc0VuYzpMLnBlcnNFbmN8fCJ1dGY4IixlbnRyb3B5OkwuZW50cm9weXx8dyh0aGlzLmhhc2guaG1hY1N0cmVuZ3RoKSxlbnRyb3B5RW5jOkwu'@; put 'ZW50cm9weSYmTC5lbnRyb3B5RW5jfHwidXRmOCIsbm9uY2U6dGhpcy5uLnRvQXJyYXkoKX0pLEI9dGhpcy5uLmJ5dGVMZW5ndGgoKSxXPXRoaXMubi5zdWIobmV3IEQoMikpOzspe3ZhciBaPW5ldyBEKFkuZ2VuZXJhdGUoQikpO2lmKCEoWi5jbXAoVyk+MCkpcmV0dXJuIFouaWFkZG4oMSks'@; put 'dGhpcy5rZXlGcm9tUHJpdmF0ZShaKX19LGoucHJvdG90eXBlLl90cnVuY2F0ZVRvTj1mdW5jdGlvbihMLFksQil7dmFyIFc7aWYoRC5pc0JOKEwpfHwibnVtYmVyIj09dHlwZW9mIEwpVz0oTD1uZXcgRChMLDE2KSkuYnl0ZUxlbmd0aCgpO2Vsc2UgaWYoIm9iamVjdCI9PXR5cGVvZiBMKVc9'@; put 'TC5sZW5ndGgsTD1uZXcgRChMLDE2KTtlbHNle3ZhciBaPUwudG9TdHJpbmcoKTtXPVoubGVuZ3RoKzE+Pj4xLEw9bmV3IEQoWiwxNil9Im51bWJlciIhPXR5cGVvZiBCJiYoQj04KlcpO3ZhciBYPUItdGhpcy5uLmJpdExlbmd0aCgpO3JldHVybiBYPjAmJihMPUwudXNocm4oWCkpLCFZJiZM'@; put 'LmNtcCh0aGlzLm4pPj0wP0wuc3ViKHRoaXMubik6TH0sai5wcm90b3R5cGUuc2lnbj1mdW5jdGlvbihMLFksQixXKXtpZigib2JqZWN0Ij09dHlwZW9mIEImJihXPUIsQj1udWxsKSxXfHwoVz17fSksInN0cmluZyIhPXR5cGVvZiBMJiYibnVtYmVyIiE9dHlwZW9mIEwmJiFELmlzQk4oTCkp'@; put 'e0YoIm9iamVjdCI9PXR5cGVvZiBMJiZMJiYibnVtYmVyIj09dHlwZW9mIEwubGVuZ3RoLCJFeHBlY3RlZCBtZXNzYWdlIHRvIGJlIGFuIGFycmF5LWxpa2UsIGEgaGV4IHN0cmluZywgb3IgYSBCTiBpbnN0YW5jZSIpLEYoTC5sZW5ndGg+Pj4wPT09TC5sZW5ndGgpO2Zvcih2YXIgWj0wO1o8'@; put 'TC5sZW5ndGg7WisrKUYoKDI1NSZMW1pdKT09PUxbWl0pfVk9dGhpcy5rZXlGcm9tUHJpdmF0ZShZLEIpLEw9dGhpcy5fdHJ1bmNhdGVUb04oTCwhMSxXLm1zZ0JpdExlbmd0aCksRighTC5pc05lZygpLCJDYW4gbm90IHNpZ24gYSBuZWdhdGl2ZSBtZXNzYWdlIik7dmFyIFg9dGhpcy5uLmJ5'@; put 'dGVMZW5ndGgoKSxRPVkuZ2V0UHJpdmF0ZSgpLnRvQXJyYXkoImJlIixYKSxxPUwudG9BcnJheSgiYmUiLFgpO0YobmV3IEQocSkuZXEoTCksIkNhbiBub3Qgc2lnbiBtZXNzYWdlIik7Zm9yKHZhciB0ZT1uZXcgXyh7aGFzaDp0aGlzLmhhc2gsZW50cm9weTpRLG5vbmNlOnEscGVyczpXLnBl'@; put 'cnMscGVyc0VuYzpXLnBlcnNFbmN8fCJ1dGY4In0pLGllPXRoaXMubi5zdWIobmV3IEQoMSkpLHNlPTA7O3NlKyspe3ZhciBnZT1XLms/Vy5rKHNlKTpuZXcgRCh0ZS5nZW5lcmF0ZSh0aGlzLm4uYnl0ZUxlbmd0aCgpKSk7aWYoISgoZ2U9dGhpcy5fdHJ1bmNhdGVUb04oZ2UsITApKS5jbXBu'@; put 'KDEpPD0wfHxnZS5jbXAoaWUpPj0wKSl7dmFyIF9lPXRoaXMuZy5tdWwoZ2UpO2lmKCFfZS5pc0luZmluaXR5KCkpe3ZhciBUZT1fZS5nZXRYKCksU2U9VGUudW1vZCh0aGlzLm4pO2lmKDAhPT1TZS5jbXBuKDApKXt2YXIgemU9Z2UuaW52bSh0aGlzLm4pLm11bChTZS5tdWwoWS5nZXRQcml2'@; put 'YXRlKCkpLmlhZGQoTCkpO2lmKDAhPT0oemU9emUudW1vZCh0aGlzLm4pKS5jbXBuKDApKXt2YXIgej0oX2UuZ2V0WSgpLmlzT2RkKCk/MTowKXwoMCE9PVRlLmNtcChTZSk/MjowKTtyZXR1cm4gVy5jYW5vbmljYWwmJnplLmNtcCh0aGlzLm5oKT4wJiYoemU9dGhpcy5uLnN1Yih6ZSksel49'@; put 'MSksbmV3IFIoe3I6U2Usczp6ZSxyZWNvdmVyeVBhcmFtOnp9KX19fX19fSxqLnByb3RvdHlwZS52ZXJpZnk9ZnVuY3Rpb24oTCxZLEIsVyxaKXtafHwoWj17fSksTD10aGlzLl90cnVuY2F0ZVRvTihMLCExLFoubXNnQml0TGVuZ3RoKSxCPXRoaXMua2V5RnJvbVB1YmxpYyhCLFcpO3ZhciBY'@; put 'PShZPW5ldyBSKFksImhleCIpKS5yLFE9WS5zO2lmKFguY21wbigxKTwwfHxYLmNtcCh0aGlzLm4pPj0wfHxRLmNtcG4oMSk8MHx8US5jbXAodGhpcy5uKT49MClyZXR1cm4hMTt2YXIgc2UscT1RLmludm0odGhpcy5uKSx0ZT1xLm11bChMKS51bW9kKHRoaXMubiksaWU9cS5tdWwoWCkudW1v'@; put 'ZCh0aGlzLm4pO3JldHVybiB0aGlzLmN1cnZlLl9tYXh3ZWxsVHJpY2s/IShzZT10aGlzLmcuam11bEFkZCh0ZSxCLmdldFB1YmxpYygpLGllKSkuaXNJbmZpbml0eSgpJiZzZS5lcVhUb1AoWCk6IShzZT10aGlzLmcubXVsQWRkKHRlLEIuZ2V0UHVibGljKCksaWUpKS5pc0luZmluaXR5KCkm'@; put 'JjA9PT1zZS5nZXRYKCkudW1vZCh0aGlzLm4pLmNtcChYKX0sai5wcm90b3R5cGUucmVjb3ZlclB1YktleT1mdW5jdGlvbihQLEwsWSxCKXtGKCgzJlkpPT09WSwiVGhlIHJlY292ZXJ5IHBhcmFtIGlzIG1vcmUgdGhhbiB0d28gYml0cyIpLEw9bmV3IFIoTCxCKTt2YXIgVz10aGlzLm4sWj1u'@; put 'ZXcgRChQKSxYPUwucixRPUwucyxxPTEmWSx0ZT1ZPj4xO2lmKFguY21wKHRoaXMuY3VydmUucC51bW9kKHRoaXMuY3VydmUubikpPj0wJiZ0ZSl0aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byBmaW5kIHNlbmNvbmQga2V5IGNhbmRpbmF0ZSIpO1g9dGhpcy5jdXJ2ZS5wb2ludEZyb21YKHRl'@; put 'P1guYWRkKHRoaXMuY3VydmUubik6WCxxKTt2YXIgaWU9TC5yLmludm0oVyksc2U9Vy5zdWIoWikubXVsKGllKS51bW9kKFcpLGdlPVEubXVsKGllKS51bW9kKFcpO3JldHVybiB0aGlzLmcubXVsQWRkKHNlLFgsZ2UpfSxqLnByb3RvdHlwZS5nZXRLZXlSZWNvdmVyeVBhcmFtPWZ1bmN0aW9u'@; put 'KFAsTCxZLEIpe2lmKG51bGwhPT0oTD1uZXcgUihMLEIpKS5yZWNvdmVyeVBhcmFtKXJldHVybiBMLnJlY292ZXJ5UGFyYW07Zm9yKHZhciBXPTA7Vzw0O1crKyl7dmFyIFo7dHJ5e1o9dGhpcy5yZWNvdmVyUHViS2V5KFAsTCxXKX1jYXRjaHtjb250aW51ZX1pZihaLmVxKFkpKXJldHVybiBX'@; put 'fXRocm93IG5ldyBFcnJvcigiVW5hYmxlIHRvIGZpbmQgdmFsaWQgcmVjb3ZlcnkgZmFjdG9yIil9fSwxMjUxOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMzc4NSkscD1iKDk1MykuYXNzZXJ0O2Z1bmN0aW9uIE4odyxGKXt0aGlzLmVjPXcsdGhpcy5wcml2PW51bGwsdGhpcy5w'@; put 'dWI9bnVsbCxGLnByaXYmJnRoaXMuX2ltcG9ydFByaXZhdGUoRi5wcml2LEYucHJpdkVuYyksRi5wdWImJnRoaXMuX2ltcG9ydFB1YmxpYyhGLnB1YixGLnB1YkVuYyl9Y2UuZXhwb3J0cz1OLE4uZnJvbVB1YmxpYz1mdW5jdGlvbihGLEgsUil7cmV0dXJuIEggaW5zdGFuY2VvZiBOP0g6bmV3'@; put 'IE4oRix7cHViOkgscHViRW5jOlJ9KX0sTi5mcm9tUHJpdmF0ZT1mdW5jdGlvbihGLEgsUil7cmV0dXJuIEggaW5zdGFuY2VvZiBOP0g6bmV3IE4oRix7cHJpdjpILHByaXZFbmM6Un0pfSxOLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbigpe3ZhciBGPXRoaXMuZ2V0UHVibGljKCk7cmV0'@; put 'dXJuIEYuaXNJbmZpbml0eSgpP3tyZXN1bHQ6ITEscmVhc29uOiJJbnZhbGlkIHB1YmxpYyBrZXkifTpGLnZhbGlkYXRlKCk/Ri5tdWwodGhpcy5lYy5jdXJ2ZS5uKS5pc0luZmluaXR5KCk/e3Jlc3VsdDohMCxyZWFzb246bnVsbH06e3Jlc3VsdDohMSxyZWFzb246IlB1YmxpYyBrZXkgKiBO'@; put 'ICE9IE8ifTp7cmVzdWx0OiExLHJlYXNvbjoiUHVibGljIGtleSBpcyBub3QgYSBwb2ludCJ9fSxOLnByb3RvdHlwZS5nZXRQdWJsaWM9ZnVuY3Rpb24oRixIKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIEYmJihIPUYsRj1udWxsKSx0aGlzLnB1Ynx8KHRoaXMucHViPXRoaXMuZWMuZy5tdWwo'@; put 'dGhpcy5wcml2KSksSD90aGlzLnB1Yi5lbmNvZGUoSCxGKTp0aGlzLnB1Yn0sTi5wcm90b3R5cGUuZ2V0UHJpdmF0ZT1mdW5jdGlvbihGKXtyZXR1cm4iaGV4Ij09PUY/dGhpcy5wcml2LnRvU3RyaW5nKDE2LDIpOnRoaXMucHJpdn0sTi5wcm90b3R5cGUuX2ltcG9ydFByaXZhdGU9ZnVuY3Rp'@; put 'b24oRixIKXt0aGlzLnByaXY9bmV3IEQoRixIfHwxNiksdGhpcy5wcml2PXRoaXMucHJpdi51bW9kKHRoaXMuZWMuY3VydmUubil9LE4ucHJvdG90eXBlLl9pbXBvcnRQdWJsaWM9ZnVuY3Rpb24oRixIKXtpZihGLnh8fEYueSlyZXR1cm4ibW9udCI9PT10aGlzLmVjLmN1cnZlLnR5cGU/cChG'@; put 'LngsIk5lZWQgeCBjb29yZGluYXRlIik6KCJzaG9ydCI9PT10aGlzLmVjLmN1cnZlLnR5cGV8fCJlZHdhcmRzIj09PXRoaXMuZWMuY3VydmUudHlwZSkmJnAoRi54JiZGLnksIk5lZWQgYm90aCB4IGFuZCB5IGNvb3JkaW5hdGUiKSx2b2lkKHRoaXMucHViPXRoaXMuZWMuY3VydmUucG9pbnQo'@; put 'Ri54LEYueSkpO3RoaXMucHViPXRoaXMuZWMuY3VydmUuZGVjb2RlUG9pbnQoRixIKX0sTi5wcm90b3R5cGUuZGVyaXZlPWZ1bmN0aW9uKEYpe3JldHVybiBGLnZhbGlkYXRlKCl8fHAoRi52YWxpZGF0ZSgpLCJwdWJsaWMgcG9pbnQgbm90IHZhbGlkYXRlZCIpLEYubXVsKHRoaXMucHJpdiku'@; put 'Z2V0WCgpfSxOLnByb3RvdHlwZS5zaWduPWZ1bmN0aW9uKEYsSCxSKXtyZXR1cm4gdGhpcy5lYy5zaWduKEYsdGhpcyxILFIpfSxOLnByb3RvdHlwZS52ZXJpZnk9ZnVuY3Rpb24oRixILFIpe3JldHVybiB0aGlzLmVjLnZlcmlmeShGLEgsdGhpcyx2b2lkIDAsUil9LE4ucHJvdG90eXBlLmlu'@; put 'c3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4iPEtleSBwcml2OiAiKyh0aGlzLnByaXYmJnRoaXMucHJpdi50b1N0cmluZygxNiwyKSkrIiBwdWI6ICIrKHRoaXMucHViJiZ0aGlzLnB1Yi5pbnNwZWN0KCkpKyIgPiJ9fSw2MTE6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigzNzg1KSxf'@; put 'PWIoOTUzKSxwPV8uYXNzZXJ0O2Z1bmN0aW9uIE4oaixQKXtpZihqIGluc3RhbmNlb2YgTilyZXR1cm4gajt0aGlzLl9pbXBvcnRERVIoaixQKXx8KHAoai5yJiZqLnMsIlNpZ25hdHVyZSB3aXRob3V0IHIgb3IgcyIpLHRoaXMucj1uZXcgRChqLnIsMTYpLHRoaXMucz1uZXcgRChqLnMsMTYp'@; put 'LHRoaXMucmVjb3ZlcnlQYXJhbT12b2lkIDA9PT1qLnJlY292ZXJ5UGFyYW0/bnVsbDpqLnJlY292ZXJ5UGFyYW0pfWZ1bmN0aW9uIHcoKXt0aGlzLnBsYWNlPTB9ZnVuY3Rpb24gRihqLFApe3ZhciBMPWpbUC5wbGFjZSsrXTtpZighKDEyOCZMKSlyZXR1cm4gTDt2YXIgWT0xNSZMO2lmKDA9'@; put 'PT1ZfHxZPjR8fDA9PT1qW1AucGxhY2VdKXJldHVybiExO2Zvcih2YXIgQj0wLFc9MCxaPVAucGxhY2U7VzxZO1crKyxaKyspQjw8PTgsQnw9altaXSxCPj4+PTA7cmV0dXJuIShCPD0xMjcpJiYoUC5wbGFjZT1aLEIpfWZ1bmN0aW9uIEgoail7Zm9yKHZhciBQPTAsTD1qLmxlbmd0aC0xOyFq'@; put 'W1BdJiYhKDEyOCZqW1ArMV0pJiZQPEw7KVArKztyZXR1cm4gMD09PVA/ajpqLnNsaWNlKFApfWZ1bmN0aW9uIFIoaixQKXtpZihQPDEyOClqLnB1c2goUCk7ZWxzZXt2YXIgTD0xKyhNYXRoLmxvZyhQKS9NYXRoLkxOMj4+PjMpO2ZvcihqLnB1c2goMTI4fEwpOy0tTDspai5wdXNoKFA+Pj4o'@; put 'TDw8MykmMjU1KTtqLnB1c2goUCl9fWNlLmV4cG9ydHM9TixOLnByb3RvdHlwZS5faW1wb3J0REVSPWZ1bmN0aW9uKFAsTCl7UD1fLnRvQXJyYXkoUCxMKTt2YXIgWT1uZXcgdztpZig0OCE9PVBbWS5wbGFjZSsrXSlyZXR1cm4hMTt2YXIgQj1GKFAsWSk7aWYoITE9PT1CfHxCK1kucGxhY2Uh'@; put 'PT1QLmxlbmd0aHx8MiE9PVBbWS5wbGFjZSsrXSlyZXR1cm4hMTt2YXIgVz1GKFAsWSk7aWYoITE9PT1XfHwxMjgmUFtZLnBsYWNlXSlyZXR1cm4hMTt2YXIgWj1QLnNsaWNlKFkucGxhY2UsVytZLnBsYWNlKTtpZihZLnBsYWNlKz1XLDIhPT1QW1kucGxhY2UrK10pcmV0dXJuITE7dmFyIFg9'@; put 'RihQLFkpO2lmKCExPT09WHx8UC5sZW5ndGghPT1YK1kucGxhY2V8fDEyOCZQW1kucGxhY2VdKXJldHVybiExO3ZhciBRPVAuc2xpY2UoWS5wbGFjZSxYK1kucGxhY2UpO2lmKDA9PT1aWzBdKXtpZighKDEyOCZaWzFdKSlyZXR1cm4hMTtaPVouc2xpY2UoMSl9aWYoMD09PVFbMF0pe2lmKCEo'@; put 'MTI4JlFbMV0pKXJldHVybiExO1E9US5zbGljZSgxKX1yZXR1cm4gdGhpcy5yPW5ldyBEKFopLHRoaXMucz1uZXcgRChRKSx0aGlzLnJlY292ZXJ5UGFyYW09bnVsbCwhMH0sTi5wcm90b3R5cGUudG9ERVI9ZnVuY3Rpb24oUCl7dmFyIEw9dGhpcy5yLnRvQXJyYXkoKSxZPXRoaXMucy50b0Fy'@; put 'cmF5KCk7Zm9yKDEyOCZMWzBdJiYoTD1bMF0uY29uY2F0KEwpKSwxMjgmWVswXSYmKFk9WzBdLmNvbmNhdChZKSksTD1IKEwpLFk9SChZKTshKFlbMF18fDEyOCZZWzFdKTspWT1ZLnNsaWNlKDEpO3ZhciBCPVsyXTtSKEIsTC5sZW5ndGgpLChCPUIuY29uY2F0KEwpKS5wdXNoKDIpLFIoQixZ'@; put 'Lmxlbmd0aCk7dmFyIFc9Qi5jb25jYXQoWSksWj1bNDhdO3JldHVybiBSKFosVy5sZW5ndGgpLFo9Wi5jb25jYXQoVyksXy5lbmNvZGUoWixQKX19LDU5ODA6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigzNzE1KSxfPWIoNTQyNykscD1iKDk1MyksTj1wLmFzc2VydCx3PXAucGFy'@; put 'c2VCeXRlcyxGPWIoOTA4NyksSD1iKDM2MjIpO2Z1bmN0aW9uIFIoail7aWYoTigiZWQyNTUxOSI9PT1qLCJvbmx5IHRlc3RlZCB3aXRoIGVkMjU1MTkgc28gZmFyIiksISh0aGlzIGluc3RhbmNlb2YgUikpcmV0dXJuIG5ldyBSKGopO3RoaXMuY3VydmU9aj1fW2pdLmN1cnZlLHRoaXMuZz1q'@; put 'LmcsdGhpcy5nLnByZWNvbXB1dGUoai5uLmJpdExlbmd0aCgpKzEpLHRoaXMucG9pbnRDbGFzcz1qLnBvaW50KCkuY29uc3RydWN0b3IsdGhpcy5lbmNvZGluZ0xlbmd0aD1NYXRoLmNlaWwoai5uLmJpdExlbmd0aCgpLzgpLHRoaXMuaGFzaD1ELnNoYTUxMn1jZS5leHBvcnRzPVIsUi5wcm90'@; put 'b3R5cGUuc2lnbj1mdW5jdGlvbihQLEwpe1A9dyhQKTt2YXIgWT10aGlzLmtleUZyb21TZWNyZXQoTCksQj10aGlzLmhhc2hJbnQoWS5tZXNzYWdlUHJlZml4KCksUCksVz10aGlzLmcubXVsKEIpLFo9dGhpcy5lbmNvZGVQb2ludChXKSxYPXRoaXMuaGFzaEludChaLFkucHViQnl0ZXMoKSxQ'@; put 'KS5tdWwoWS5wcml2KCkpLFE9Qi5hZGQoWCkudW1vZCh0aGlzLmN1cnZlLm4pO3JldHVybiB0aGlzLm1ha2VTaWduYXR1cmUoe1I6VyxTOlEsUmVuY29kZWQ6Wn0pfSxSLnByb3RvdHlwZS52ZXJpZnk9ZnVuY3Rpb24oUCxMLFkpe2lmKFA9dyhQKSwoTD10aGlzLm1ha2VTaWduYXR1cmUoTCkp'@; put 'LlMoKS5ndGUoTC5lZGRzYS5jdXJ2ZS5uKXx8TC5TKCkuaXNOZWcoKSlyZXR1cm4hMTt2YXIgQj10aGlzLmtleUZyb21QdWJsaWMoWSksVz10aGlzLmhhc2hJbnQoTC5SZW5jb2RlZCgpLEIucHViQnl0ZXMoKSxQKSxaPXRoaXMuZy5tdWwoTC5TKCkpO3JldHVybiBMLlIoKS5hZGQoQi5wdWIo'@; put 'KS5tdWwoVykpLmVxKFopfSxSLnByb3RvdHlwZS5oYXNoSW50PWZ1bmN0aW9uKCl7Zm9yKHZhciBQPXRoaXMuaGFzaCgpLEw9MDtMPGFyZ3VtZW50cy5sZW5ndGg7TCsrKVAudXBkYXRlKGFyZ3VtZW50c1tMXSk7cmV0dXJuIHAuaW50RnJvbUxFKFAuZGlnZXN0KCkpLnVtb2QodGhpcy5jdXJ2'@; put 'ZS5uKX0sUi5wcm90b3R5cGUua2V5RnJvbVB1YmxpYz1mdW5jdGlvbihQKXtyZXR1cm4gRi5mcm9tUHVibGljKHRoaXMsUCl9LFIucHJvdG90eXBlLmtleUZyb21TZWNyZXQ9ZnVuY3Rpb24oUCl7cmV0dXJuIEYuZnJvbVNlY3JldCh0aGlzLFApfSxSLnByb3RvdHlwZS5tYWtlU2lnbmF0dXJl'@; put 'PWZ1bmN0aW9uKFApe3JldHVybiBQIGluc3RhbmNlb2YgSD9QOm5ldyBIKHRoaXMsUCl9LFIucHJvdG90eXBlLmVuY29kZVBvaW50PWZ1bmN0aW9uKFApe3ZhciBMPVAuZ2V0WSgpLnRvQXJyYXkoImxlIix0aGlzLmVuY29kaW5nTGVuZ3RoKTtyZXR1cm4gTFt0aGlzLmVuY29kaW5nTGVuZ3Ro'@; put 'LTFdfD1QLmdldFgoKS5pc09kZCgpPzEyODowLEx9LFIucHJvdG90eXBlLmRlY29kZVBvaW50PWZ1bmN0aW9uKFApe3ZhciBMPShQPXAucGFyc2VCeXRlcyhQKSkubGVuZ3RoLTEsWT1QLnNsaWNlKDAsTCkuY29uY2F0KC0xMjkmUFtMXSksQj0hISgxMjgmUFtMXSksVz1wLmludEZyb21MRShZ'@; put 'KTtyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludEZyb21ZKFcsQil9LFIucHJvdG90eXBlLmVuY29kZUludD1mdW5jdGlvbihQKXtyZXR1cm4gUC50b0FycmF5KCJsZSIsdGhpcy5lbmNvZGluZ0xlbmd0aCl9LFIucHJvdG90eXBlLmRlY29kZUludD1mdW5jdGlvbihQKXtyZXR1cm4gcC5pbnRGcm9t'@; put 'TEUoUCl9LFIucHJvdG90eXBlLmlzUG9pbnQ9ZnVuY3Rpb24oUCl7cmV0dXJuIFAgaW5zdGFuY2VvZiB0aGlzLnBvaW50Q2xhc3N9fSw5MDg3OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoOTUzKSxfPUQuYXNzZXJ0LHA9RC5wYXJzZUJ5dGVzLE49RC5jYWNoZWRQcm9wZXJ0eTtm'@; put 'dW5jdGlvbiB3KEYsSCl7dGhpcy5lZGRzYT1GLHRoaXMuX3NlY3JldD1wKEguc2VjcmV0KSxGLmlzUG9pbnQoSC5wdWIpP3RoaXMuX3B1Yj1ILnB1Yjp0aGlzLl9wdWJCeXRlcz1wKEgucHViKX13LmZyb21QdWJsaWM9ZnVuY3Rpb24oSCxSKXtyZXR1cm4gUiBpbnN0YW5jZW9mIHc/UjpuZXcg'@; put 'dyhILHtwdWI6Un0pfSx3LmZyb21TZWNyZXQ9ZnVuY3Rpb24oSCxSKXtyZXR1cm4gUiBpbnN0YW5jZW9mIHc/UjpuZXcgdyhILHtzZWNyZXQ6Un0pfSx3LnByb3RvdHlwZS5zZWNyZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2VjcmV0fSxOKHcsInB1YkJ5dGVzIixmdW5jdGlvbigpe3Jl'@; put 'dHVybiB0aGlzLmVkZHNhLmVuY29kZVBvaW50KHRoaXMucHViKCkpfSksTih3LCJwdWIiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3B1YkJ5dGVzP3RoaXMuZWRkc2EuZGVjb2RlUG9pbnQodGhpcy5fcHViQnl0ZXMpOnRoaXMuZWRkc2EuZy5tdWwodGhpcy5wcml2KCkpfSksTih3LCJwcml2'@; put 'Qnl0ZXMiLGZ1bmN0aW9uKCl7dmFyIEg9dGhpcy5lZGRzYSxSPXRoaXMuaGFzaCgpLGo9SC5lbmNvZGluZ0xlbmd0aC0xLFA9Ui5zbGljZSgwLEguZW5jb2RpbmdMZW5ndGgpO3JldHVybiBQWzBdJj0yNDgsUFtqXSY9MTI3LFBbal18PTY0LFB9KSxOKHcsInByaXYiLGZ1bmN0aW9uKCl7cmV0'@; put 'dXJuIHRoaXMuZWRkc2EuZGVjb2RlSW50KHRoaXMucHJpdkJ5dGVzKCkpfSksTih3LCJoYXNoIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmhhc2goKS51cGRhdGUodGhpcy5zZWNyZXQoKSkuZGlnZXN0KCl9KSxOKHcsIm1lc3NhZ2VQcmVmaXgiLGZ1bmN0aW9uKCl7cmV0dXJuIHRo'@; put 'aXMuaGFzaCgpLnNsaWNlKHRoaXMuZWRkc2EuZW5jb2RpbmdMZW5ndGgpfSksdy5wcm90b3R5cGUuc2lnbj1mdW5jdGlvbihIKXtyZXR1cm4gXyh0aGlzLl9zZWNyZXQsIktleVBhaXIgY2FuIG9ubHkgdmVyaWZ5IiksdGhpcy5lZGRzYS5zaWduKEgsdGhpcyl9LHcucHJvdG90eXBlLnZlcmlm'@; put 'eT1mdW5jdGlvbihILFIpe3JldHVybiB0aGlzLmVkZHNhLnZlcmlmeShILFIsdGhpcyl9LHcucHJvdG90eXBlLmdldFNlY3JldD1mdW5jdGlvbihIKXtyZXR1cm4gXyh0aGlzLl9zZWNyZXQsIktleVBhaXIgaXMgcHVibGljIG9ubHkiKSxELmVuY29kZSh0aGlzLnNlY3JldCgpLEgpfSx3LnBy'@; put 'b3RvdHlwZS5nZXRQdWJsaWM9ZnVuY3Rpb24oSCl7cmV0dXJuIEQuZW5jb2RlKHRoaXMucHViQnl0ZXMoKSxIKX0sY2UuZXhwb3J0cz13fSwzNjIyOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMzc4NSksXz1iKDk1MykscD1fLmFzc2VydCxOPV8uY2FjaGVkUHJvcGVydHksdz1f'@; put 'LnBhcnNlQnl0ZXM7ZnVuY3Rpb24gRihILFIpe3RoaXMuZWRkc2E9SCwib2JqZWN0IiE9dHlwZW9mIFImJihSPXcoUikpLEFycmF5LmlzQXJyYXkoUikmJihwKFIubGVuZ3RoPT09MipILmVuY29kaW5nTGVuZ3RoLCJTaWduYXR1cmUgaGFzIGludmFsaWQgc2l6ZSIpLFI9e1I6Ui5zbGljZSgw'@; put 'LEguZW5jb2RpbmdMZW5ndGgpLFM6Ui5zbGljZShILmVuY29kaW5nTGVuZ3RoKX0pLHAoUi5SJiZSLlMsIlNpZ25hdHVyZSB3aXRob3V0IFIgb3IgUyIpLEguaXNQb2ludChSLlIpJiYodGhpcy5fUj1SLlIpLFIuUyBpbnN0YW5jZW9mIEQmJih0aGlzLl9TPVIuUyksdGhpcy5fUmVuY29kZWQ9'@; put 'QXJyYXkuaXNBcnJheShSLlIpP1IuUjpSLlJlbmNvZGVkLHRoaXMuX1NlbmNvZGVkPUFycmF5LmlzQXJyYXkoUi5TKT9SLlM6Ui5TZW5jb2RlZH1OKEYsIlMiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRkc2EuZGVjb2RlSW50KHRoaXMuU2VuY29kZWQoKSl9KSxOKEYsIlIiLGZ1bmN0aW9u'@; put 'KCl7cmV0dXJuIHRoaXMuZWRkc2EuZGVjb2RlUG9pbnQodGhpcy5SZW5jb2RlZCgpKX0pLE4oRiwiUmVuY29kZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRkc2EuZW5jb2RlUG9pbnQodGhpcy5SKCkpfSksTihGLCJTZW5jb2RlZCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5l'@; put 'bmNvZGVJbnQodGhpcy5TKCkpfSksRi5wcm90b3R5cGUudG9CeXRlcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLlJlbmNvZGVkKCkuY29uY2F0KHRoaXMuU2VuY29kZWQoKSl9LEYucHJvdG90eXBlLnRvSGV4PWZ1bmN0aW9uKCl7cmV0dXJuIF8uZW5jb2RlKHRoaXMudG9CeXRlcygpLCJoZXgi'@; put 'KS50b1VwcGVyQ2FzZSgpfSxjZS5leHBvcnRzPUZ9LDEwMzc6Y2U9PntjZS5leHBvcnRzPXtkb3VibGVzOntzdGVwOjQscG9pbnRzOltbImU2MGZjZTkzYjU5ZTllYzUzMDExYWFiYzIxYzIzZTk3YjJhMzEzNjliODdhNWFlOWM0NGVlODllMmE2ZGVjMGEiLCJmN2UzNTA3Mzk5ZTU5NTkyOWRi'@; put 'OTlmMzRmNTc5MzcxMDEyOTY4OTFlNDRkMjNmMGJlMWYzMmNjZTY5NjE2ODIxIl0sWyI4MjgyMjYzMjEyYzYwOWQ5ZWEyYTZlM2UxNzJkZTIzOGQ4YzM5Y2FiZDVhYzFjYTEwNjQ2ZTIzZmQ1ZjUxNTA4IiwiMTFmOGE4MDk4NTU3ZGZlNDVlODI1NmU4MzBiNjBhY2U2MmQ2MTNhYzJmN2IxN2Jl'@; put 'ZDMxYjZlYWZmNmUyNmNhZiJdLFsiMTc1ZTE1OWY3MjhiODY1YTcyZjk5Y2M2YzZmYzg0NmRlMGI5MzgzM2ZkMjIyMmVkNzNmY2U1YjU1MWU1YjczOSIsImQzNTA2ZTBkOWUzYzc5ZWJhNGVmOTdhNTFmZjcxZjVlYWNiNTk1NWFkZDI0MzQ1YzZlZmE2ZmZlZTlmZWQ2OTUiXSxbIjM2M2Q5MGQ0'@; put 'NDdiMDBjOWM5OWNlYWMwNWI2MjYyZWUwNTM0NDFjN2U1NTU1MmZmZTUyNmJhZDhmODNmZjQ2NDAiLCI0ZTI3M2FkZmM3MzIyMjE5NTNiNDQ1Mzk3ZjMzNjMxNDViOWE4OTAwODE5OWVjYjYyMDAzYzdmM2JlZTlkZTkiXSxbIjhiNGI1ZjE2NWRmM2MyYmU4YzYyNDRiNWI3NDU2Mzg4NDNlNGE3'@; put 'ODFhMTViY2QxYjY5Zjc5YTU1ZGZmZGY4MGMiLCI0YWFkMGE2ZjY4ZDMwOGI0YjNmYmQ3ODEzYWIwZGEwNGY5ZTMzNjU0NjE2MmVlNTZiM2VmZjBjNjVmZDRmZDM2Il0sWyI3MjNjYmFhNmU1ZGI5OTZkNmJmNzcxYzAwYmQ1NDhjN2I3MDBkYmZmYTZjMGU3N2JjYjYxMTU5MjUyMzJmY2RhIiwi'@; put 'OTZlODY3YjU1OTVjYzQ5OGE5MjExMzc0ODg4MjRkNmUyNjYwYTA2NTM3Nzk0OTQ4MDFkYzA2OWQ5ZWIzOWY1ZiJdLFsiZWViZmE0ZDQ5M2JlYmY5OGJhNWZlZWM4MTJjMmQzYjUwOTQ3OTYxMjM3YTkxOTgzOWE1MzNlY2EwZTdkZDdmYSIsIjVkOWE4Y2EzOTcwZWYwZjI2OWVlN2VkYWYxNzgw'@; put 'ODlkOWFlNGNkYzNhNzExZjcxMmRkZmQ0ZmRhZTFkZTg5OTkiXSxbIjEwMGY0NGRhNjk2ZTcxNjcyNzkxZDBhMDliN2JkZTQ1OWYxMjE1YTI5YjNjMDNiZmVmZDc4MzViMzlhNDhkYjAiLCJjZGQ5ZTEzMTkyYTAwYjc3MmVjOGYzMzAwYzA5MDY2NmI3ZmY0YTE4ZmY1MTk1YWMwZmJkNWNkNjJi'@; put 'YzY1YTA5Il0sWyJlMTAzMWJlMjYyYzdlZDFiMWRjOTIyN2E0YTA0YzAxN2E3N2Y4ZDQ0NjRmM2IzODUyYzhhY2RlNmU1MzRmZDJkIiwiOWQ3MDYxOTI4OTQwNDA1ZTZiYjZhNDE3NjU5NzUzNWFmMjkyZGQ0MTllMWNlZDc5YTQ0ZjE4ZjI5NDU2YTAwZCJdLFsiZmVlYTZjYWU0NmQ1NWI1MzBh'@; put 'YzI4MzlmMTQzYmQ3ZWM1Y2Y4YjI2NmE0MWQ2YWY1MmQ1ZTY4OGQ5MDk0Njk2ZCIsImU1N2M2YjZjOTdkY2UxYmFiMDZlNGUxMmJmM2VjZDVjOTgxYzg5NTdjYzQxNDQyZDMxNTVkZWJmMTgwOTAwODgiXSxbImRhNjdhOTFkOTEwNDljZGNiMzY3YmU0YmU2ZmZjYTNjZmVlZDY1N2Q4MDg1ODNk'@; put 'ZTMzZmE5NzhiYzFlYzZjYjEiLCI5YmFjYWEzNTQ4MTY0MmJjNDFmNDYzZjdlYzk3ODBlNWRlYzdhZGM1MDhmNzQwYTE3ZTllYThlMjdhNjhiZTFkIl0sWyI1MzkwNGZhYTBiMzM0Y2RkYTZlMDAwOTM1ZWYyMjE1MWVjMDhkMGY3YmIxMTA2OWY1NzU0NWNjYzFhMzdiN2MwIiwiNWJjMDg3ZDBi'@; put 'YzgwMTA2ZDg4YzllY2NhYzIwZDNjMWMxMzk5OTk4MWUxNDQzNDY5OWRjYjA5NmIwMjI3NzFjOCJdLFsiOGU3YmNkMGJkMzU5ODNhNzcxOWNjYTc3NjRjYTkwNjc3OWI1M2EwNDNhOWI4YmNhZWZmOTU5ZjQzYWQ4NjA0NyIsIjEwYjc3NzBiMmEzZGE0YjM5NDAzMTA0MjBjYTk1MTQ1NzllODhl'@; put 'MmU0N2ZkNjhiM2VhMTAwNDdlODQ2MDM3MmEiXSxbIjM4NWVlZDM0YzFjZGZmMjFlNmQwODE4Njg5YjgxYmRlNzFhN2Y0ZjE4Mzk3ZTY2OTBhODQxZTE1OTljNDM4NjIiLCIyODNiZWJjM2U4ZWEyM2Y1NjcwMWRlMTllOWViZjQ1NzZiMzA0ZWVjMjA4NmRjOGNjMDQ1OGZlNTU0MmU1NDUzIl0s'@; put 'WyI2ZjlkOWI4MDNlY2YxOTE2MzdjNzNhNDQxM2RmYTE4MGZkZGY4NGE1OTQ3ZmJjOWM2MDZlZDg2YzNmYWMzYTciLCI3YzgwYzY4ZTYwMzA1OWJhNjliOGUyYTMwZTQ1YzRkNDdlYTRkZDJmNWMyODEwMDJkODY4OTA2MDNhODQyMTYwIl0sWyIzMzIyZDQwMTI0M2M0ZTI1ODJhMjE0N2MxMDRk'@; put 'NmVjYmY3NzRkMTYzZGIwZjVlNTMxM2I3ZTBlNzQyZDBlNmJkIiwiNTZlNzA3OTdlOTY2NGVmNWJmYjAxOWJjNGRkYWY5YjcyODA1ZjYzZWEyODczYWY2MjRmM2EyZTk2YzI4YjJhMCJdLFsiODU2NzJjN2QyZGUwYjdkYTJiZDE3NzBkODk2NjU4Njg3NDFiM2Y5YWY3NjQzMzk3NzIxZDc0ZDI4'@; put 'MTM0YWI4MyIsIjdjNDgxYjliNWI0M2IyZWI2Mzc0MDQ5YmZhNjJjMmU1ZTc3ZjE3ZmNjNTI5OGY0NGM4ZTMwOTRmNzkwMzEzYTYiXSxbIjk0OGJmODA5YjE5ODhhNDZiMDZjOWYxOTE5NDEzYjEwZjkyMjZjNjBmNjY4ODMyZmZkOTU5YWY2MGM4MmEwYSIsIjUzYTU2Mjg1NmRjYjY2NDZkYzZi'@; put 'NzRjNWQxYzM0MThjNmQ0ZGZmMDhjOTdjZDJiZWQ0Y2I3Zjg4ZDhjOGU1ODkiXSxbIjYyNjBjZTdmNDYxODAxYzM0ZjA2N2NlMGYwMjg3M2E4ZjFiMGU0NGRmYzY5NzUyYWNjZWNkODE5ZjM4ZmQ4ZTgiLCJiYzJkYTgyYjZmYTViNTcxYTdmMDkwNDk3NzZhMWVmN2VjZDI5MjIzODA1MWMxOThj'@; put 'MWE4NGU5NWIyYjRhZTE3Il0sWyJlNTAzN2RlMGFmYzFkOGQ0M2Q4MzQ4NDE0YmJmNDEwMzA0M2VjOGY1NzViZmRjNDMyOTUzY2M4ZDIwMzdmYTJkIiwiNDU3MTUzNGJhYTk0ZDNiNWY5Zjk4ZDA5ZmI5OTBiZGRiZDVmNWIwM2VjNDgxZjEwZTBlNWRjODQxZDc1NWJkYSJdLFsiZTA2MzcyYjBm'@; put 'NGEyMDdhZGY1ZWE5MDVlOGYxNzcxYjRlN2U4ZGJkMWM2YTZjNWI3MjU4NjZhMGFlNGZjZTcyNSIsIjdhOTA4OTc0YmNlMThjZmUxMmEyN2JiMmFkNWE0ODhjZDc0ODRhNzc4NzEwNDg3MGIyNzAzNGY5NGVlZTMxZGQiXSxbIjIxM2M3YTcxNWNkNWQ0NTM1OGQwYmJmOWRjMGNlMDIyMDRiMTBi'@; put 'ZGRlMmEzZjU4NTQwYWQ2OTA4ZDA1NTk3NTQiLCI0YjZkYWQwYjVhZTQ2MjUwNzAxM2FkMDYyNDViYTE5MGJiNDg1MGY1ZjM2YTdlZWRkZmYyYzI3NTM0YjQ1OGYyIl0sWyI0ZTdjMjcyYTdhZjRiMzRlOGRiYjkzNTJhNTQxOWE4N2UyODM4YzcwYWRjNjJjZGRmMGNjM2EzYjA4ZmJkNTNjIiwi'@; put 'MTc3NDljNzY2YzlkMGIxOGUxNmZkMDlmNmRlZjY4MWI1MzBiOTYxNGJmZjdkZDMzZTBiMzk0MTgxN2RjYWFlNiJdLFsiZmVhNzRlM2RiZTc3OGIxYjEwZjIzOGFkNjE2ODZhYTVjNzZlM2RiMmJlNDMwNTc2MzI0MjdlMjg0MGZiMjdiNiIsIjZlMDU2OGRiOWIwYjEzMjk3Y2Y2NzRkZWNjYjZh'@; put 'ZjkzMTI2YjU5NmI5NzNmN2I3NzcwMWQzZGI3ZjIzY2I5NmYiXSxbIjc2ZTY0MTEzZjY3N2NmMGUxMGEyNTcwZDU5OTk2OGQzMTU0NGUxNzliNzYwNDMyOTUyYzAyYTQ0MTdiZGRlMzkiLCJjOTBkZGY4ZGVlNGU5NWNmNTc3MDY2ZDcwNjgxZjBkMzVlMmEzM2QyYjU2ZDIwMzJiNGIxNzUyZDE5'@; put 'MDFhYzAxIl0sWyJjNzM4YzU2YjAzYjJhYmUxZTgyODFiYWE3NDNmOGY5YThmN2NjNjQzZGYyNmNiZWUzYWIxNTAyNDJiY2JiODkxIiwiODkzZmI1Nzg5NTFhZDI1MzdmNzE4ZjJlYWNiZmJiYmI4MjMxNGVlZjc4ODBjZmU5MTdlNzM1ZDk2OTlhODRjMyJdLFsiZDg5NTYyNjU0OGI2NWI4MWUy'@; put 'NjRjNzYzN2M5NzI4NzdkMWQ3MmU1ZjNhOTI1MDE0MzcyZTlmNjU4OGY2YzE0YiIsImZlYmZhYTM4ZjJiYzdlYWU3MjhlYzYwODE4YzM0MGViMDM0MjhkNjMyYmIwNjdlMTc5MzYzZWQ3NWQ3ZDk5MWYiXSxbImI4ZGE5NDAzMmE5NTc1MThlYjBmNjQzMzU3MWU4NzYxY2VmZmM3MzY5M2U4NGVk'@; put 'ZDQ5MTUwYTU2NGY2NzZlMDMiLCIyODA0ZGZhNDQ4MDVhMWU0ZDdjOTljYzk3NjI4MDhiMDkyY2M1ODRkOTVmZjNiNTExNDg4ZTRlNzRlZmRmNmU3Il0sWyJlODBmZWExNDQ0MWZiMzNhN2Q4YWRhYjk0NzVkN2ZhYjIwMTllZmZiNTE1NmE3OTJmMWExMTc3OGUzYzBkZjVkIiwiZWVkMWRlN2Y2'@; put 'MzhlMDA3NzFlODk3NjhjYTNjYTk0NDcyZDE1NWU4MGFmMzIyZWE5ZmNiNDI5MWI2YWM5ZWM3OCJdLFsiYTMwMTY5N2JkZmNkNzA0MzEzYmE0OGU1MWQ1Njc1NDNmMmExODIwMzFlZmQ2OTE1ZGRjMDdiYmNjNGUxNjA3MCIsIjczNzBmOTFjZmI2N2U0ZjUwODE4MDlmYTI1ZDQwZjliMTczNWRi'@; put 'ZjdjMGExMWExMzBjMGQxYTA0MWUxNzdlYTEiXSxbIjkwYWQ4NWIzODlkNmI5MzY0NjNmOWQwNTEyNjc4ZGUyMDhjYzMzMGIxMTMwN2ZmZmFiN2FjNjNlM2ZiMDRlZDQiLCJlNTA3YTM2MjBhMzgyNjFhZmZkY2JkOTQyNzIyMmI4MzlhZWZhYmUxNTgyODk0ZDk5MWQ0ZDQ4Y2I2ZWYxNTAiXSxb'@; put 'IjhmNjhiOWQyZjYzYjVmMzM5MjM5YzFhZDk4MWYxNjJlZTg4YzU2Nzg3MjNlYTMzNTFiN2I0NDRjOWVjNGMwZGEiLCI2NjJhOWYyZGJhMDYzOTg2ZGUxZDkwYzJiNmJlMjE1ZGJiZWEyY2ZlOTU1MTBiZmRmMjNjYmY3OTUwMWZmZjgyIl0sWyJlNGYzZmIwMTc2YWY4NWQ2NWZmOTlmZjkxOThj'@; put 'MzYwOTFmNDhlODY1MDM2ODFlM2U2Njg2ZmQ1MDUzMjMxZTExIiwiMWU2MzYzM2FkMGVmNGYxYzE2NjFhNmQwZWEwMmI3Mjg2Y2M3ZTc0ZWM5NTFkMWM5ODIyYzM4NTc2ZmViNzNiYyJdLFsiOGMwMGZhOWIxOGViZjMzMWViOTYxNTM3YTQ1YTQyNjZjNzAzNGYyZjBkNGUxZDA3MTZmYjZlYWUy'@; put 'MGVhZTI5ZSIsImVmYTQ3MjY3ZmVhNTIxYTFhOWRjMzQzYTM3MzZjOTc0YzJmYWRhZmE4MWUzNmM1NGU3ZDJhNGM2NjcwMjQxNGIiXSxbImU3YTI2Y2U2OWRkNDgyOWYzZTEwY2VjMGE5ZTk4ZWQzMTQzZDA4NGYzMDhiOTJjMDk5N2ZkZGZjNjBjYjNlNDEiLCIyYTc1OGUzMDBmYTc5ODRiNDcx'@; put 'YjAwNmExYWFmYmIxOGQwYTZiMmMwNDIwZTgzZTIwZThhOTQyMWNmMmNmZDUxIl0sWyJiNjQ1OWUwZWUzNjYyZWM4ZDIzNTQwYzIyM2JjYmRjNTcxY2JjYjk2N2Q3OTQyNGYzY2YyOWViM2RlNmI4MGVmIiwiNjdjODc2ZDA2ZjNlMDZkZTFkYWRmMTZlNTY2MWRiM2M0YjNhZTZkNDhlMzViMmZm'@; put 'MzBiZjBiNjFhNzFiYTQ1Il0sWyJkNjhhODBjODI4MGJiODQwNzkzMjM0YWExMThmMDYyMzFkNmYxZmM2N2U3M2M1YTVkZWRhMGY1YjQ5Njk0M2U4IiwiZGI4YmE5ZmZmNGI1ODZkMDBjNGIxZjkxNzdiMGUyOGI1YjBlN2I4Zjc4NDUyOTVhMjk0Yzg0MjY2YjEzMzEyMCJdLFsiMzI0YWVkN2Rm'@; put 'NjVjODA0MjUyZGMwMjcwOTA3YTMwYjA5NjEyYWViOTczNDQ5Y2VhNDA5NTk4MGZjMjhkM2Q1ZCIsIjY0OGEzNjU3NzRiNjFmMmZmMTMwYzBjMzVhZWMxZjRmMTkyMTNiMGM3ZTMzMjg0Mzk2NzIyNGFmOTZhYjdjODQiXSxbIjRkZjljMTQ5MTljZGU2MWY2ZDUxZGZkYmU1ZmVlNWRjZWVjNDE0'@; put 'M2JhOGQxY2E4ODhlOGJkMzczZmQwNTRjOTYiLCIzNWVjNTEwOTJkODcyODA1MDk3NGMyM2ExZDg1ZDRiNWQ1MDZjZGMyODg0OTAxOTJlYmFjMDZjYWQxMGQ1ZCJdLFsiOWMzOTE5YTg0YTQ3NDg3MGZhZWQ4YTljMWNjNjYwMjE1MjM0ODkwNTRkN2YwMzA4Y2JmYzk5YzhhYzFmOThjZCIsImRk'@; put 'Yjg0ZjBmNGE0ZGRkNTc1ODRmMDQ0YmYyNjBlNjQxOTA1MzI2Zjc2YzY0YzhlNmJlN2U1ZTAzZDRmYzU5OWQiXSxbIjYwNTcxNzBiMWRkMTJmZGY4ZGUwNWYyODFkOGUwNmJiOTFlMTQ5M2E4YjkxZDRjYzVhMjEzODIxMjBhOTU5ZTUiLCI5YTFhZjBiMjZhNmE0ODA3YWRkOWEyZGFmNzFkZjI2'@; put 'MjQ2NTE1MmJjM2VlMjRjNjVlODk5YmU5MzIzODVhMmE4Il0sWyJhNTc2ZGY4ZTIzYTA4NDExNDIxNDM5YTQ1MThkYTMxODgwY2VmMGZiYTdkNGRmMTJiMWE2OTczZWVjYjk0MjY2IiwiNDBhNmJmMjBlNzY2NDBiMmM5MmI5N2FmZTU4Y2Q4MmM0MzJlMTBhN2Y1MTRkOWYzZWU4YmUxMWFlMWIy'@; put 'OGVjOCJdLFsiNzc3OGE3OGMyOGRlYzNlMzBhMDVmZTk2MjlkZThjMzhiYjMwZDFmNWNmOWEzYTIwOGY3NjM4ODliZTU4YWQ3MSIsIjM0NjI2ZDlhYjVhNWIyMmZmNzA5OGUxMmYyZmY1ODAwODdiMzg0MTFmZjI0YWM1NjNiNTEzZmMxZmQ5ZjQzYWMiXSxbIjkyODk1NWVlNjM3YTg0NDYzNzI5'@; put 'ZmQzMGU3YWZkMmVkNWY5NjI3NGU1YWQ3ZTVjYjA5ZWRhOWMwNmQ5MDNhYyIsImMyNTYyMTAwM2QzZjQyYTgyN2I3OGExMzA5M2E5NWVlYWMzZDI2ZWZhOGE4ZDgzZmM1MTgwZTkzNWJjZDA5MWYiXSxbIjg1ZDBmZWYzZWM2ZGIxMDkzOTkwNjRmM2EwZTNiMjg1NTY0NWI0YTkwN2FkMzU0NTI3'@; put 'YWFlNzUxNjNkODI3NTEiLCIxZjAzNjQ4NDEzYTM4YzBiZTI5ZDQ5NmU1ODJjZjU2NjNlODc1MWU5Njg3NzMzMTU4MmMyMzdhMjRlYjFmOTYyIl0sWyJmZjJiMGRjZTk3ZWVjZTk3YzFjOWI2MDQxNzk4Yjg1ZGZkZmI2ZDg4ODJkYTIwMzA4ZjU0MDQ4MjQ1MjYwODdlIiwiNDkzZDEzZmVmNTI0'@; put 'YmExODhhZjRjNGRjNTRkMDc5MzZjN2I3ZWQ2ZmI5MGUyY2ViMmM5NTFlMDFmMGMyOTkwNyJdLFsiODI3ZmJiZTRiMWU4ODBlYTllZDJiMmU2MzAxYjIxMmI1N2YxZWUxNDhjZDZkZDI4NzgwZTVlMmNmODU2ZTI0MSIsImM2MGY5YzkyM2M3MjdiMGI3MWJlZjJjNjdkMWQxMjY4N2ZmN2E2MzE4'@; put 'NjkwMzE2NmQ2MDViNjhiYWVjMjkzZWMiXSxbImVhYTY0OWYyMWY1MWJkYmFlN2JlNGFlMzRjZTZlNTIxN2E1OGZkY2U3ZjQ3ZjlhYTdmM2I1OGZhMjEyMGUyYjMiLCJiZTMyNzllZDViYmJiMDNhYzY5YTgwZjg5ODc5YWE1YTAxYTZiOTY1ZjEzZjdlNTlkNDdhNTMwNWJhNWFkOTNkIl0sWyJl'@; put 'NGE0MmQ0M2M1Y2YxNjlkOTM5MWRmNmRlY2Y0MmVlNTQxYjZkOGYwYzlhMTM3NDAxZTIzNjMyZGRhMzRkMjRmIiwiNGQ5ZjkyZTcxNmQxYzczNTI2ZmM5OWNjZmI4YWQzNGNlODg2ZWVkZmE4ZDhlNGYxM2E3ZjcxMzFkZWJhOTQxNCJdLFsiMWVjODBmZWYzNjBjYmRkOTU0MTYwZmFkYWIzNTJi'@; put 'NmI5MmI1MzU3NmE4OGZlYTQ5NDcxNzNiOWQ0MzAwYmYxOSIsImFlZWZlOTM3NTZiNTM0MGQyZjNhNDk1OGE3YWJiZjVlMDE0NmU3N2Y2Mjk1YTA3YjY3MWNkYzFjYzEwN2NlZmQiXSxbIjE0NmE3NzhjMDQ2NzBjMmY5MWIwMGFmNDY4MGRmYThiY2UzNDkwNzE3ZDU4YmE4ODlkZGI1OTI4MzY2'@; put 'NjQyYmUiLCJiMzE4ZTBlYzMzNTQwMjhhZGQ2Njk4MjdmOWQ0YjI4NzBhYWE5NzFkMmY3ZTVlZDFkMGIyOTc0ODNkODNlZmQwIl0sWyJmYTUwYzBmNjFkMjJlNWYwN2UzYWNlYmIxYWEwN2IxMjhkMDAxMjIwOWEyOGI5Nzc2ZDc2YTg3OTMxODBlZWY5IiwiNmI4NGM2OTIyMzk3ZWJhOWI3MmNk'@; put 'Mjg3MjI4MWE2OGE1ZTY4MzI5M2E1N2EyMTNiMzhjZDhkN2QzZjRmMjgxMSJdLFsiZGExZDYxZDBjYTcyMWExMWIxYTViZjZiN2Q4OGU4NDIxYTI4OGFiNWQ1YmJhNTIyMGU1M2QzMmI1ZjA2N2VjMiIsIjgxNTdmNTVhN2M5OTMwNmM3OWMwNzY2MTYxYzkxZTI5NjZhNzM4OTlkMjc5YjQ4YTY1'@; put 'NWZiYTBmMWFkODM2ZjEiXSxbImE4ZTI4MmZmMGM5NzA2OTA3MjE1ZmY5OGU4ZmQ0MTY2MTUzMTFkZTA0NDZmMWUwNjJhNzNiMDYxMGQwNjRlMTMiLCI3Zjk3MzU1YjhkYjgxYzA5YWJmYjdmM2M1YjI1MTU4ODhiNjc5YTNlNTBkZDZiZDZjZWY3YzczMTExZjRjYzBjIl0sWyIxNzRhNTNiOWM5'@; put 'YTI4NTg3MmQzOWU1NmU2OTEzY2FiMTVkNTliMWZhNTEyNTA4YzAyMmYzODJkZTgzMTk0OTdjIiwiY2NjOWRjMzdhYmZjOWMxNjU3YjQxNTVmMmM0N2Y5ZTY2NDZiM2ExZDhjYjk4NTQzODNkYTEzYWMwNzlhZmE3MyJdLFsiOTU5Mzk2OTgxOTQzNzg1YzNkM2U1N2VkZjUwMThjZGJlMDM5ZTcz'@; put 'MGU0OTE4YjNkODg0ZmRmZjA5NDc1YjdiYSIsIjJlN2U1NTI4ODhjMzMxZGQ4YmEwMzg2YTRiOWNkNjg0OWM2NTNmNjRjODcwOTM4NWU5YjhhYmY4NzUyNGYyZmQiXSxbImQyYTYzYTUwYWU0MDFlNTZkNjQ1YTExNTNiMTA5YThmY2NhMGE0M2Q1NjFmYmEyZGJiNTEzNDBjOWQ4MmIxNTEiLCJl'@; put 'ODJkODZmYjY0NDNmY2I3NTY1YWVlNThiMjk0ODIyMGE3MGY3NTBhZjQ4NGNhNTJkNDE0MjE3NGRjZjg5NDA1Il0sWyI2NDU4N2UyMzM1NDcxZWI4OTBlZTc4OTZkN2NmZGM4NjZiYWNiZGJkMzgzOTMxN2IzNDM2ZjliNDU2MTdlMDczIiwiZDk5ZmNkZDViZjY5MDJlMmFlOTZkZDY0NDdjMjk5'@; put 'YTE4NWI5MGEzOTEzM2FlYWIzNTgyOTllNWU5ZmFmNjU4OSJdLFsiODQ4MWJkZTBlNGU0ZDg4NWIzYTU0NmQzZTU0OWRlMDQyZjBhYTZjZWEyNTBlN2ZkMzU4ZDZjODZkZDQ1ZTQ1OCIsIjM4ZWU3YjhjYmE1NDA0ZGQ4NGEyNWJmMzljZWNiMmNhOTAwYTc5YzQyYjI2MmU1NTZkNjRiMWI1OTc3'@; put 'OTA1N2UiXSxbIjEzNDY0YTU3YTc4MTAyYWE2MmI2OTc5YWU4MTdmNDYzN2ZmY2ZlZDNjNGIxY2UzMGJjZDYzMDNmNmNhZjY2NmIiLCI2OWJlMTU5MDA0NjE0NTgwZWY3ZTQzMzQ1M2NjYjBjYTQ4ZjMwMGE4MWQwOTQyZTEzZjQ5NWE5MDdmNmVjYzI3Il0sWyJiYzRhOWRmNWI3MTNmZTJlOWFl'@; put 'ZjQzMGJjYzFkYzk3YTBjZDljY2VkZTJmMjg1ODhjYWRhM2EwZDJkODNmMzY2IiwiZDNhODFjYTZlNzg1YzA2MzgzOTM3YWRmNGI3OThjYWE2ZThhOWZiZmE1NDdiMTZkNzU4ZDY2NjU4MWYzM2MxIl0sWyI4YzI4YTk3YmY4Mjk4YmMwZDIzZDhjNzQ5NDUyYTMyZTY5NGI2NWUzMGE5NDcyYTM5'@; put 'NTRhYjMwZmU1MzI0Y2FhIiwiNDBhMzA0NjNhMzMwNTE5MzM3OGZlZGYzMWY3Y2MwZWI3YWU3ODRmMDQ1MWNiOTQ1OWU3MWRjNzNjYmVmOTQ4MiJdLFsiOGVhOTY2NjEzOTUyN2E4YzFkZDk0Y2U0ZjA3MWZkMjNjOGIzNTBjNWE0YmIzMzc0OGM0YmExMTFmYWNjYWUwIiwiNjIwZWZhYmJjOGVl'@; put 'Mjc4MmUyNGU3YzBjZmI5NWM1ZDczNWI3ODNiZTljZjBmOGU5NTVhZjM0YTMwZTYyYjk0NSJdLFsiZGQzNjI1ZmFlZjViYTA2MDc0NjY5NzE2YmJkMzc4OGQ4OWJkZGU4MTU5NTk5NjgwOTJmNzZjYzRlYjlhOTc4NyIsIjdhMTg4ZmEzNTIwZTMwZDQ2MWRhMjUwMTA0NTczMWNhOTQxNDYxOTgy'@; put 'ODgzMzk1OTM3ZjY4ZDAwYzY0NGE1NzMiXSxbImY3MTBkNzlkOWViOTYyMjk3ZTRmNjIzMmI0MGU4ZjdmZWIyYmM2MzgxNDYxNGQ2OTJjMTJkZTc1MjQwODIyMWUiLCJlYTk4ZTY3MjMyZDNiMzI5NWQzYjUzNTUzMjExNWNjYWM4NjEyYzcyMTg1MTYxNzUyNmFlNDdhOWM3N2JmYzgyIl1dfSxu'@; put 'YWY6e3duZDo3LHBvaW50czpbWyJmOTMwOGEwMTkyNThjMzEwNDkzNDRmODVmODlkNTIyOWI1MzFjODQ1ODM2Zjk5YjA4NjAxZjExM2JjZTAzNmY5IiwiMzg4ZjdiMGY2MzJkZTgxNDBmZTMzN2U2MmEzN2YzNTY2NTAwYTk5OTM0YzIyMzFiNmNiOWZkNzU4NGI4ZTY3MiJdLFsiMmY4YmRlNGQx'@; put 'YTA3MjA5MzU1YjRhNzI1MGE1YzUxMjhlODhiODRiZGRjNjE5YWI3Y2JhOGQ1NjliMjQwZWZlNCIsImQ4YWMyMjI2MzZlNWUzZDZkNGRiYTlkZGE2YzljNDI2Zjc4ODI3MWJhYjBkNjg0MGRjYTg3ZDNhYTZhYzYyZDYiXSxbIjVjYmRmMDY0NmU1ZGI0ZWFhMzk4ZjM2NWYyZWE3YTBlM2Q0MTli'@; put 'N2UwMzMwZTM5Y2U5MmJkZGVkY2FjNGY5YmMiLCI2YWViY2E0MGJhMjU1OTYwYTMxNzhkNmQ4NjFhNTRkYmE4MTNkMGI4MTNmZGU3YjVhNTA4MjYyODA4NzI2NGRhIl0sWyJhY2Q0ODRlMmYwYzdmNjUzMDlhZDE3OGE5ZjU1OWFiZGUwOTc5Njk3NGM1N2U3MTRjMzVmMTEwZGZjMjdjY2JlIiwi'@; put 'Y2MzMzg5MjFiMGE3ZDlmZDY0MzgwOTcxNzYzYjYxZTlhZGQ4ODhhNDM3NWY4ZTBmMDVjYzI2MmFjNjRmOWMzNyJdLFsiNzc0YWU3Zjg1OGE5NDExZTVlZjQyNDZiNzBjNjVhYWM1NjQ5OTgwYmU1YzE3ODkxYmJlYzE3ODk1ZGEwMDhjYiIsImQ5ODRhMDMyZWI2YjVlMTkwMjQzZGQ1NmQ3Yjdi'@; put 'MzY1MzcyZGIxZTJkZmY5ZDZhODMwMWQ3NGM5Yzk1M2M2MWIiXSxbImYyODc3M2MyZDk3NTI4OGJjN2QxZDIwNWMzNzQ4NjUxYjA3NWZiYzY2MTBlNThjZGRlZWRkZjhmMTk0MDVhYTgiLCJhYjA5MDJlOGQ4ODBhODk3NTgyMTJlYjY1Y2RhZjQ3M2ExYTA2ZGE1MjFmYTkxZjI5YjVjYjUyZGIw'@; put 'M2VkODEiXSxbImQ3OTI0ZDRmN2Q0M2VhOTY1YTQ2NWFlMzA5NWZmNDExMzFlNTk0NmYzYzg1Zjc5ZTQ0YWRiY2Y4ZTI3ZTA4MGUiLCI1ODFlMjg3MmE4NmM3MmE2ODM4NDJlYzIyOGNjNmRlZmVhNDBhZjJiZDg5NmQzYTVjNTA0ZGM5ZmY2YTI2YjU4Il0sWyJkZWZkZWE0Y2RiNjc3NzUwYTQy'@; put 'MGZlZTgwN2VhY2YyMWViOTg5OGFlNzliOTc2ODc2NmU0ZmFhMDRhMmQ0YTM0IiwiNDIxMWFiMDY5NDYzNTE2OGU5OTdiMGVhZDJhOTNkYWVjZWQxZjRhMDRhOTVjMGY2Y2ZiMTk5ZjY5ZTU2ZWI3NyJdLFsiMmI0ZWEwYTc5N2E0NDNkMjkzZWY1Y2ZmNDQ0ZjQ5NzlmMDZhY2ZlYmQ3ZTg2ZDI3'@; put 'NzQ3NTY1NjEzODM4NWI2YyIsIjg1ZTg5YmMwMzc5NDVkOTNiMzQzMDgzYjVhMWM4NjEzMWEwMWY2MGM1MDI2OTc2M2I1NzBjODU0ZTVjMDliN2EiXSxbIjM1MmJiZjRhNGNkZDEyNTY0ZjkzZmEzMzJjZTMzMzMwMWQ5YWQ0MDI3MWY4MTA3MTgxMzQwYWVmMjViZTU5ZDUiLCIzMjFlYjQwNzUz'@; put 'NDhmNTM0ZDU5YzE4MjU5ZGRhM2UxZjRhMWIzYjJlNzFiMTAzOWM2N2JkM2Q4YmNmODE5OThjIl0sWyIyZmEyMTA0ZDZiMzhkMTFiMDIzMDAxMDU1OTg3OTEyNGU0MmFiOGRmZWZmNWZmMjlkYzljZGFkZDRlY2FjYzNmIiwiMmRlMTA2ODI5NWRkODY1YjY0NTY5MzM1YmQ1ZGQ4MDE4MWQ3MGVj'@; put 'ZmM4ODI2NDg0MjNiYTc2YjUzMmI3ZDY3Il0sWyI5MjQ4Mjc5YjA5YjRkNjhkYWIyMWE5YjA2NmVkZGE4MzI2M2MzZDg0ZTA5NTcyZTI2OWNhMGNkN2Y1NDUzNzE0IiwiNzMwMTZmN2JmMjM0YWFkZTVkMWFhNzFiZGVhMmIxZmYzZmMwZGUyYTg4NzkxMmZmZTU0YTMyY2U5N2NiMzQwMiJdLFsi'@; put 'ZGFlZDRmMmJlM2E4YmYyNzhlNzAxMzJmYjBiZWI3NTIyZjU3MGUxNDRiZjYxNWMwN2U5OTZkNDQzZGVlODcyOSIsImE2OWRjZTRhN2Q2Yzk4ZThkNGExYWNhODdlZjhkNzAwM2Y4M2MyMzBmM2FmYTcyNmFiNDBlNTIyOTBiZTFjNTUiXSxbImM0NGQxMmM3MDY1ZDgxMmU4YWNmMjhkN2NiYjE5'@; put 'ZjkwMTFlY2Q5ZTlmZGYyODFiMGU2YTNiNWU4N2QyMmU3ZGIiLCIyMTE5YTQ2MGNlMzI2Y2RjNzZjNDU5MjZjOTgyZmRhYzBlMTA2ZTg2MWVkZjYxYzVhMDM5MDYzZjBlMGU2NDgyIl0sWyI2YTI0NWJmNmRjNjk4NTA0Yzg5YTIwY2ZkZWQ2MDg1MzE1MmI2OTUzMzZjMjgwNjNiNjFjNjVjYmQy'@; put 'NjllNmI0IiwiZTAyMmNmNDJjMmJkNGE3MDhiM2Y1MTI2ZjE2YTI0YWQ4YjMzYmE0OGQwNDIzYjZlZmQ1ZTYzNDgxMDBkOGE4MiJdLFsiMTY5N2ZmYTZmZDlkZTYyN2MwNzdlM2QyZmU1NDEwODRjZTEzMzAwYjBiZWMxMTQ2Zjk1YWU1N2YwZDBiZDZhNSIsImI5YzM5OGYxODY4MDZmNWQyNzU2'@; put 'MTUwNmU0NTU3NDMzYTJjZjE1MDA5ZTQ5OGFlN2FkZWU5ZDYzZDAxYjIzOTYiXSxbIjYwNWJkYjAxOTk4MTcxOGI5ODZkMGYwN2U4MzRjYjBkOWRlYjgzNjBmZmI3ZjYxZGY5ODIzNDVlZjI3YTc0NzkiLCIyOTcyZDJkZTRmOGQyMDY4MWE3OGQ5M2VjOTZmZTIzYzI2YmZhZTg0ZmIxNGRiNDNi'@; put 'MDFlMWU5MDU2YjhjNDkiXSxbIjYyZDE0ZGFiNDE1MGJmNDk3NDAyZmRjNDVhMjE1ZTEwZGNiMDFjMzU0OTU5YjEwY2ZlMzFjN2U5ZDg3ZmYzM2QiLCI4MGZjMDZiZDhjYzViMDEwOTgwODhhMTk1MGVlZDBkYjAxYWExMzI5NjdhYjQ3MjIzNWY1NjQyNDgzYjI1ZWFmIl0sWyI4MGM2MGFkMDA0'@; put 'MGYyN2RhZGU1YjRiMDZjNDA4ZTU2YjJjNTBlOWY1NmI5YjhiNDI1ZTU1NWMyZjg2MzA4YjZmIiwiMWMzODMwM2YxY2M1YzMwZjI2ZTY2YmFkN2ZlNzJmNzBhNjVlZWQ0Y2JlNzAyNGViMWFhMDFmNTY0MzBiZDU3YSJdLFsiN2E5Mzc1YWQ2MTY3YWQ1NGFhNzRjNjM0OGNjNTRkMzQ0Y2M1ZGM5'@; put 'NDg3ZDg0NzA0OWQ1ZWFiYjBmYTAzYzhmYiIsImQwZTNmYTllY2E4NzI2OTA5NTU5ZTBkNzkyNjkwNDZiZGM1OWVhMTBjNzBjZTJiMDJkNDk5ZWMyMjRkYzdmNyJdLFsiZDUyOGVjZDliNjk2YjU0YzkwN2E5ZWQwNDU0NDdhNzliYjQwOGVjMzliNjhkZjUwNGJiNTFmNDU5YmMzZmZjOSIsImVl'@; put 'Y2Y0MTI1MzEzNmU1Zjk5OTY2ZjIxODgxZmQ2NTZlYmM0MzQ1NDA1YzUyMGRiYzA2MzQ2NWI1MjE0MDk5MzMiXSxbIjQ5MzcwYTRiNWY0MzQxMmVhMjVmNTE0ZThlY2RhZDA1MjY2MTE1ZTRhN2VjYjEzODcyMzE4MDhmOGI0NTk2MyIsIjc1OGYzZjQxYWZkNmVkNDI4YjMwODFiMDUxMmZkNjJh'@; put 'NTRjM2YzYWZiYjViNjc2NGI2NTMwNTJhMTI5NDljOWEiXSxbIjc3ZjIzMDkzNmVlODhjYmJkNzNkZjkzMGQ2NDcwMmVmODgxZDgxMWUwZTE0OThlMmYxYzEzZWIxZmMzNDVkNzQiLCI5NThlZjQyYTc4ODZiNjQwMGEwODI2NmU5YmExYjM3ODk2Yzk1MzMwZDk3MDc3Y2JiZThlYjNjNzY3MWM2'@; put 'MGQ2Il0sWyJmMmRhYzk5MWNjNGNlNGI5ZWE0NDg4N2U1YzdjMGJjZTU4YzgwMDc0YWI5ZDRkYmFlYjI4NTMxYjc3MzlmNTMwIiwiZTBkZWRjOWIzYjJmOGRhZDRkYTFmMzJkZWMyNTMxZGY5ZWI1ZmJlYjA1OThlNGZkMWExMTdkYmE3MDNhM2MzNyJdLFsiNDYzYjNkOWY2NjI2MjFmYjFiNGJl'@; put 'OGZiYmUyNTIwMTI1YTIxNmNkZmM5ZGFlM2RlYmNiYTQ4NTBjNjkwZDQ1YiIsIjVlZDQzMGQ3OGMyOTZjMzU0MzExNDMwNmRkODYyMmQ3YzYyMmUyN2M5NzBhMWRlMzFjYjM3N2IwMWFmNzMwN2UiXSxbImYxNmY4MDQyNDRlNDZlMmEwOTIzMmQ0YWZmM2I1OTk3NmI5OGZhYzE0MzI4YTJkMWEz'@; put 'MjQ5NmI0OTk5OGYyNDciLCJjZWRhYmQ5YjgyMjAzZjdlMTNkMjA2ZmNkZjRlMzNkOTJhNmM1M2MyNmU1Y2NlMjZkNjU3OTk2MmM0ZTMxZGY2Il0sWyJjYWY3NTQyNzJkYzg0NTYzYjAzNTJiN2ExNDMxMWFmNTVkMjQ1MzE1YWNlMjdjNjUzNjllMTVmNzE1MWQ0MWQxIiwiY2I0NzQ2NjBlZjM1'@; put 'ZjVmMmE0MWI2NDNmYTVlNDYwNTc1ZjRmYTliNzk2MjIzMmE1YzMyZjkwODMxOGEwNDQ3NiJdLFsiMjYwMGNhNGIyODJjYjk4NmY4NWQwZjE3MDk5NzlkOGI0NGEwOWMwN2NiODZkN2MxMjQ0OTdiYzg2ZjA4MjEyMCIsIjQxMTliODg3NTNjMTViZDZhNjkzYjAzZmNkZGJiNDVkNWFjNmJlNzRh'@; put 'YjVmMGVmNDRiMGJlOTQ3NWE3ZTRiNDAiXSxbIjc2MzVjYTcyZDdlODQzMmMzMzhlYzUzY2QxMjIyMGJjMDFjNDg2ODVlMjRmN2RjOGM2MDJhNzc0Njk5OGU0MzUiLCI5MWI2NDk2MDk0ODlkNjEzZDFkNWU1OTBmNzhlNmQ3NGVjZmMwNjFkNTcwNDhiYWQ5ZTc2ZjMwMmM1YjljNjEiXSxbIjc1'@; put 'NGUzMjM5ZjMyNTU3MGNkYmJmNGE4N2RlZWU4YTY2YjdmMmIzMzQ3OWQ0NjhmYmMxYTUwNzQzYmY1NmNjMTgiLCI2NzNmYjg2ZTViZGEzMGZiM2NkMGVkMzA0ZWE0OWEwMjNlZTMzZDAxOTdhNjk1ZDBjNWQ5ODA5M2M1MzY2ODMiXSxbImUzZTZiZDEwNzFhMWU5NmFmZjU3ODU5YzgyZDU3MGYw'@; put 'MzMwODAwNjYxZDFjOTUyZjlmZTI2OTQ2OTFkOWI5ZTgiLCI1OWM5ZTBiYmEzOTRlNzZmNDBjMGFhNTgzNzlhM2NiNmE1YTIyODM5OTNlOTBjNDE2NzAwMmFmNDkyMGUzN2Y1Il0sWyIxODZiNDgzZDA1NmEwMzM4MjZhZTczZDg4ZjczMjk4NWM0Y2NiMWYzMmJhMzVmNGI0Y2M0N2ZkY2YwNGFh'@; put 'NmViIiwiM2I5NTJkMzJjNjdjZjc3ZTJlMTc0NDZlMjA0MTgwYWIyMWZiODA5MDg5NTEzOGI0YTRhNzk3Zjg2ZTgwODg4YiJdLFsiZGY5ZDcwYTZiOTg3NmNlNTQ0Yzk4NTYxZjRiZTRmNzI1NDQyZTZkMmI3MzdkOWM5MWE4MzIxNzI0Y2UwOTYzZiIsIjU1ZWIyZGFmZDg0ZDZjY2Q1Zjg2MmI3'@; put 'ODVkYzM5ZDRhYjE1NzIyMjcyMGVmOWRhMjE3YjhjNDVjZjJiYTI0MTciXSxbIjVlZGQ1Y2MyM2M1MWU4N2E0OTdjYTgxNWQ1ZGNlMGY4YWI1MjU1NGY4NDllZDg5OTVkZTY0YzVmMzRjZTcxNDMiLCJlZmFlOWM4ZGJjMTQxMzA2NjFlOGNlYzAzMGM4OWFkMGMxM2M2NmMwZDE3YTI5MDVjZGM3'@; put 'MDZhYjczOTlhODY4Il0sWyIyOTA3OThjMmI2NDc2ODMwZGExMmZlMDIyODdlOWU3NzdhYTNmYmExYzM1NWIxN2E3MjJkMzYyZjg0NjE0ZmJhIiwiZTM4ZGE3NmRjZDQ0MDYyMTk4OGQwMGJjZjc5YWYyNWQ1YjI5YzA5NGRiMmEyMzE0NmQwMDNhZmQ0MTk0M2U3YSJdLFsiYWYzYzQyM2E5NWQ5'@; put 'ZjViMzA1NDc1NGVmYTE1MGFjMzljZDI5NTUyZmUzNjAyNTczNjJkZmRlY2VmNDA1M2I0NSIsImY5OGEzZmQ4MzFlYjJiNzQ5YTkzYjBlNmYzNWNmYjQwYzhjZDVhYTY2N2ExNTU4MWJjMmZlZGVkNDk4ZmQ5YzYiXSxbIjc2NmRiYjI0ZDEzNGU3NDVjY2NhYTI4Yzk5YmYyNzQ5MDZiYjY2YjI2'@; put 'ZGNmOThkZjhkMmZlZDUwZDg4NDI0OWEiLCI3NDRiMTE1MmVhY2JlNWUzOGRjYzg4Nzk4MGRhMzhiODk3NTg0YTY1ZmEwNmNlZGQyYzkyNGY5N2NiYWM1OTk2Il0sWyI1OWRiZjQ2ZjhjOTQ3NTliYTIxMjc3YzMzNzg0ZjQxNjQ1ZjdiNDRmNmM1OTZhNThjZTkyZTY2NjE5MWFiZTNlIiwiYzUz'@; put 'NGFkNDQxNzVmYmMzMDBmNGVhNmNlNjQ4MzA5YTA0MmNlNzM5YTc5MTk3OThjZDg1ZTIxNmM0YTMwN2Y2ZSJdLFsiZjEzYWRhOTUxMDNjNDUzNzMwNWU2OTFlNzRlOWE0YThkZDY0N2U3MTFhOTVlNzNjYjYyZGM2MDE4Y2ZkODdiOCIsImUxMzgxN2I0NGVlMTRkZTY2M2JmNGJjODA4MzQxZjMy'@; put 'Njk0OWUyMWE2YTc1YzI1NzA3Nzg0MTliZGFmNTczM2QiXSxbIjc3NTRiNGZhMGU4YWNlZDA2ZDQxNjdhMmM1OWNjYTRjZGExODY5YzA2ZWJhZGZiNjQ4ODU1MDAxNWE4ODUyMmMiLCIzMGU5M2U4NjRlNjY5ZDgyMjI0Yjk2N2MzMDIwYjhmYThkMWU0ZTM1MGI2Y2JjYzUzN2E0OGI1Nzg0MTE2'@; put 'M2EyIl0sWyI5NDhkY2FkZjU5OTBlMDQ4YWEzODc0ZDQ2YWJlZjlkNzAxODU4Zjk1ZGU4MDQxZDJhNjgyOGM5OWUyMjYyNTE5IiwiZTQ5MWE0MjUzN2Y2ZTU5N2Q1ZDI4YTMyMjRiMWJjMjVkZjkxNTRlZmJkMmVmMWQyY2JiYTJjYWU1MzQ3ZDU3ZSJdLFsiNzk2MjQxNDQ1MGM3NmMxNjg5Yzdi'@; put 'NDhmODIwMmVjMzdmYjIyNGNmNWFjMGJmYTE1NzAzMjhhOGEzZDdjNzdhYiIsIjEwMGI2MTBlYzRmZmI0NzYwZDVjMWZjMTMzZWY2ZjZiMTI1MDdhMDUxZjA0YWM1NzYwYWZhNWIyOWRiODM0MzciXSxbIjM1MTQwODc4MzQ5NjRiNTRiMTViMTYwNjQ0ZDkxNTQ4NWExNjk3NzIyNWI4ODQ3YmIw'@; put 'ZGQwODUxMzdlYzQ3Y2EiLCJlZjBhZmJiMjA1NjIwNTQ0OGUxNjUyYzQ4ZTgxMjdmYzYwMzllNzdjMTVjMjM3OGI3ZTdkMTVhMGRlMjkzMzExIl0sWyJkM2NjMzBhZDZiNDgzZTRiYzc5Y2UyYzlkZDhiYzU0OTkzZTk0N2ViOGRmNzg3YjQ0Mjk0M2QzZjdiNTI3ZWFmIiwiOGIzNzhhMjJkODI3'@; put 'Mjc4ZDg5YzVlOWJlOGY5NTA4YWUzYzJhZDQ2MjkwMzU4NjMwYWZiMzRkYjA0ZWVkZTBhNCJdLFsiMTYyNGQ4NDc4MDczMjg2MGNlMWM3OGZjYmZlZmUwOGIyYjI5ODIzZGI5MTNmNjQ5Mzk3NWJhMGZmNDg0NzYxMCIsIjY4NjUxY2Y5YjZkYTkwM2UwOTE0NDQ4YzZjZDlkNGNhODk2ODc4ZjUy'@; put 'ODJiZTRjOGNjMDZlMmE0MDQwNzg1NzUiXSxbIjczM2NlODBkYTk1NWE4YTI2OTAyYzk1NjMzZTYyYTk4NTE5MjQ3NGI1YWYyMDdkYTZkZjdiNGZkNWZjNjFjZDQiLCJmNTQzNWEyYmQyYmFkZjdkNDg1YTRkOGI4ZGI5ZmNjZTNlMWVmOGUwMjAxZTQ1NzhjNTQ2NzNiYzFkYzVlYTFkIl0sWyIx'@; put 'NWQ5NDQxMjU0OTQ1MDY0Y2YxYTFjMzNiYmQzYjQ5Zjg5NjZjNTA5MjE3MWU2OTllZjI1OGRmYWI4MWMwNDVjIiwiZDU2ZWIzMGI2OTQ2M2U3MjM0ZjUxMzdiNzNiODQxNzc0MzQ4MDBiYWNlYmZjNjg1ZmMzN2JiZTllZmU0MDcwZCJdLFsiYTFkMGZjZjJlYzlkZTY3NWI2MTIxMzZlNWNlNzBk'@; put 'MjcxYzIxNDE3YzlkMmI4YWFhYWMxMzg1OTlkMDcxNzk0MCIsImVkZDc3ZjUwYmNiNWEzY2FiMmU5MDczNzMwOTY2N2YyNjQxNDYyYTU0MDcwZjNkNTE5MjEyZDM5YzE5N2E2MjkiXSxbImUyMmZiZTE1YzBhZjhjY2M1NzgwYzA3MzVmODRkYmU5YTc5MGJhZGVlODI0NWMwNmM3Y2EzNzMzMWNi'@; put 'MzY5ODAiLCJhODU1YmFiYWQ1Y2Q2MGM4OGI0MzBhNjlmNTNhMWE3YTM4Mjg5MTU0OTY0Nzk5YmU0M2QwNmQ3N2QzMWRhMDYiXSxbIjMxMTA5MWRkOTg2MGU4ZTIwZWUxMzQ3M2MxMTU1ZjVmNjk2MzVlMzk0NzA0ZWFhNzQwMDk0NTIyNDZjZmE5YjMiLCI2NmRiNjU2Zjg3ZDFmMDRmZmZkMWYw'@; put 'NDc4OGMwNjgzMDg3MWVjNWE2NGZlZWU2ODViZDgwZjBiMTI4NmQ4Mzc0Il0sWyIzNGMxZmQwNGQzMDFiZTg5YjMxYzA0NDJkM2U2YWMyNDg4MzkyOGI0NWE5MzQwNzgxODY3ZDQyMzJlYzJkYmRmIiwiOTQxNDY4NWU5N2IxYjU5NTRiZDQ2ZjczMDE3NDEzNmQ1N2YxY2VlYjQ4NzQ0M2RjNTMy'@; put 'MTg1N2JhNzNhYmVlIl0sWyJmMjE5ZWE1ZDZiNTQ3MDFjMWMxNGRlNWI1NTdlYjQyYThkMTNmM2FiYmNkMDhhZmZjYzJhNWU2YjA0OWI4ZDYzIiwiNGNiOTU5NTdlODNkNDBiMGY3M2FmNDU0NGNjY2Y2YjFmNGIwOGQzYzA3YjI3ZmI4ZDhjMjk2MmE0MDA3NjZkMSJdLFsiZDdiODc0MGY3NGE4'@; put 'ZmJhYWIxZjY4M2RiOGY0NWRlMjY1NDNhNTQ5MGJjYTYyNzA4NzIzNjkxMjQ2OWEwYjQ0OCIsImZhNzc5NjgxMjhkOWM5MmVlMTAxMGYzMzdhZDQ3MTdlZmYxNWRiNWVkM2MwNDliMzQxMWUwMzE1ZWFhNDU5M2IiXSxbIjMyZDMxYzIyMmY4ZjZmMGVmODZmN2M5OGQzYTMzMzVlYWQ1YmNkMzJh'@; put 'YmRkOTQyODlmZTRkMzA5MWFhODI0YmYiLCI1ZjMwMzJmNTg5MjE1NmUzOWNjZDNkNzkxNWI5ZTFkYTJlNmRhYzllNmYyNmU5NjExMThkMTRiODQ2MmUxNjYxIl0sWyI3NDYxZjM3MTkxNGFiMzI2NzEwNDVhMTU1ZDk4MzFlYTg3OTNkNzdjZDU5NTkyYzQzNDBmODZjYmMxODM0N2I1IiwiOGVj'@; put 'MGJhMjM4Yjk2YmVjMGNiZGRkY2FlMGFhNDQyNTQyZWVlMWZmNTBjOTg2ZWE2YjM5ODQ3YjNjYzA5MmZmNiJdLFsiZWUwNzlhZGIxZGYxODYwMDc0MzU2YTI1YWEzODIwNmE2ZDcxNmIyYzNlNjc0NTNkMjg3Njk4YmFkN2IyYjJkNiIsIjhkYzI0MTJhYWZlM2JlNWM0YzVmMzdlMGVjYzVmOWY2'@; put 'YTQ0Njk4OWFmMDRjNGUyNWViYWFjNDc5ZWMxYzhjMWUiXSxbIjE2ZWM5M2U0NDdlYzgzZjA0NjdiMTgzMDJlZTYyMGY3ZTY1ZGUzMzE4NzRjOWRjNzJiZmQ4NjE2YmE5ZGE2YjUiLCI1ZTQ2MzExNTBlNjJmYjQwZDBlOGMyYTdjYTU4MDRhMzlkNTgxODZhNTBlNDk3MTM5NjI2Nzc4ZTI1YjA2'@; put 'NzRkIl0sWyJlYWE1Zjk4MGMyNDVmNmYwMzg5NzgyOTBhZmE3MGI2YmQ4ODU1ODk3Zjk4YjZhYTQ4NWI5NjA2NWQ1MzdiZDk5IiwiZjY1ZjVkM2UyOTJjMmUwODE5YTUyODM5MWM5OTQ2MjRkNzg0ODY5ZDdlNmVhNjdmYjE4MDQxMDI0ZWRjMDdkYyJdLFsiNzhjOTQwNzU0NGFjMTMyNjkyZWUx'@; put 'OTEwYTAyNDM5OTU4YWUwNDg3NzE1MTM0MmVhOTZjNGI2YjM1YTQ5ZjUxIiwiZjNlMDMxOTE2OWViOWI4NWQ1NDA0Nzk1NTM5YTVlNjhmYTFmYmQ1ODNjMDY0ZDI0NjJiNjc1ZjE5NGEzZGRiNCJdLFsiNDk0ZjRiZTIxOWExYTc3MDE2ZGNkODM4NDMxYWVhMDAwMWNkYzhhZTdhNmZjNjg4NzI2'@; put 'NTc4ZDk3MDI4NTdhNSIsIjQyMjQyYTk2OTI4M2E1ZjMzOWJhN2YwNzVlMzZiYTJhZjkyNWNlMzBkNzY3ZWQ2ZTU1ZjRiMDMxODgwZDU2MmMiXSxbImE1OThhODAzMGRhNmQ4NmM2YmM3ZjJmNTE0NGVhNTQ5ZDI4MjExZWE1OGZhYTcwZWJmNGMxZTY2NWMxZmU5YjUiLCIyMDRiNWQ2Zjg0ODIy'@; put 'YzMwN2U0YjRhNzE0MDczN2FlYzIzZmM2M2I2NWIzNWY4NmExMDAyNmRiZDJkODY0ZTZiIl0sWyJjNDE5MTYzNjVhYmIyYjVkMDkxOTJmNWYyZGJlYWZlYzIwOGYwMjBmMTI1NzBhMTg0ZGJhZGMzZTU4NTk1OTk3IiwiNGYxNDM1MWQwMDg3ZWZhNDlkMjQ1YjMyODk4NDk4OWQ1Y2FmOTQ1MGYz'@; put 'NGJmYzBlZDE2ZTk2YjU4ZmE5OTEzIl0sWyI4NDFkNjA2M2E1ODZmYTQ3NWE3MjQ2MDRkYTAzYmM1YjkyYTJlMGQyZTBhMzZhY2ZlNGM3M2E1NTE0NzQyODgxIiwiNzM4NjdmNTljMDY1OWU4MTkwNGY5YTFjNzU0MzY5OGU2MjU2MmQ2NzQ0YzE2OWNlN2EzNmRlMDFhOGQ2MTU0Il0sWyI1ZTk1'@; put 'YmIzOTlhNjk3MWQzNzYwMjY5NDdmODliZGUyZjI4MmIzMzgxMDkyOGJlNGRlZDExMmFjNGQ3MGUyMGQ1IiwiMzlmMjNmMzY2ODA5MDg1YmVlYmZjNzExODEzMTM3NzVhOTljOWFlZDdkOGJhMzhiMTYxMzg0Yzc0NjAxMjg2NSJdLFsiMzZlNDY0MWE1Mzk0OGZkNDc2YzM5ZjhhOTlmZDk3NGU1'@; put 'ZWMwNzU2NGI1MzE1ZDhiZjk5NDcxYmNhMGVmMmY2NiIsImQyNDI0YjFiMWFiZTRlYjgxNjQyMjdiMDg1YzlhYTk0NTZlYTEzNDkzZmQ1NjNlMDZmZDUxY2Y1Njk0Yzc4ZmMiXSxbIjMzNjU4MWVhN2JmYmJiMjkwYzE5MWEyZjUwN2E0MWNmNTY0Mzg0MjE3MGU5MTRmYWVhYjI3YzJjNTc5Zjcy'@; put 'NiIsImVhZDEyMTY4NTk1ZmUxYmU5OTI1MjEyOWI2ZTU2YjMzOTFmN2FiMTQxMGNkMWUwZWYzZGNkY2FiZDJmZGEyMjQiXSxbIjhhYjg5ODE2ZGFkZmQ2YjZhMWYyNjM0ZmNmMDBlYzg0MDM3ODEwMjVlZDY4OTBjNDg0OTc0MjcwNmJkNDNlZGUiLCI2ZmRjZWYwOWYyZjZkMGEwNDRlNjU0YWVm'@; put 'NjI0MTM2ZjUwM2Q0NTljM2U4OTg0NTg1OGE0N2E5MTI5Y2RkMjRlIl0sWyIxZTMzZjFhNzQ2YzljNTc3ODEzMzM0NGQ5Mjk5ZmNhYTIwYjA5MzhlOGFjZmYyNTQ0YmI0MDI4NGI4YzVmYjk0IiwiNjA2NjAyNTdkZDExYjNhYTljOGVkNjE4ZDI0ZWRmZjIzMDZkMzIwZjFkMDMwMTBlMzNhN2Qy'@; put 'MDU3ZjNiM2I2Il0sWyI4NWI3YzFkY2IzY2VjMWI3ZWU3ZjMwZGVkNzlkZDIwYTBlZDFmNGNjMThjYmNmY2ZhNDEwMzYxZmQ4ZjA4ZjMxIiwiM2Q5OGE5Y2RkMDI2ZGQ0M2YzOTA0OGYyNWE4ODQ3ZjRmY2FmYWQxODk1ZDdhNjMzYzZmZWQzYzM1ZTk5OTUxMSJdLFsiMjlkZjlmYmQ4ZDllNDY1'@; put 'MDkyNzVmNGIxMjVkNmQ0NWQ3ZmJlOWEzYjg3OGE3YWY4NzJhMjgwMDY2MWFjNWY1MSIsImI0YzRmZTk5Yzc3NWE2MDZlMmQ4ODYyMTc5MTM5ZmZkYTYxZGM4NjFjMDE5ZTU1Y2QyODc2ZWIyYTI3ZDg0YiJdLFsiYTBiMWNhZTA2YjBhODQ3YTNmZWE2ZTY3MWFhZjhhZGZkZmU1OGNhMmY3Njgx'@; put 'MDVjODA4MmIyZTQ0OWZjZTI1MiIsImFlNDM0MTAyZWRkZTA5NThlYzRiMTlkOTE3YTZhMjhlNmI3MmRhMTgzNGFmZjBlNjUwZjA0OTUwM2EyOTZjZjIiXSxbIjRlOGNlYWZiOWIzZTlhMTM2ZGM3ZmY2N2U4NDAyOTViNDk5ZGZiM2IyMTMzZTRiYTExM2YyZTRjMGUxMjFlNSIsImNmMjE3NDEx'@; put 'OGM4YjZkN2E0YjQ4ZjZkNTM0Y2U1Yzc5NDIyYzA4NmE2MzQ2MDUwMmI4MjdjZTYyYTMyNjY4M2MiXSxbImQyNGE0NGUwNDdlMTliNmY1YWZiODFjN2NhMmY2OTA4MGE1MDc2Njg5YTAxMDkxOWY0MjcyNWMyYjc4OWEzM2IiLCI2ZmI4ZDU1OTFiNDY2ZjhmYzYzZGI1MGYxYzBmMWM2OTAxM2Y5'@; put 'OTY4ODdiODI0NGQyY2RlYzQxN2FmZWE4ZmEzIl0sWyJlYTAxNjA2YTdhNmM5Y2RkMjQ5ZmRmY2ZhY2I5OTU4NDAwMWVkZDI4YWJiYWI3N2I1MTA0ZTk4ZThlM2IzNWQ0IiwiMzIyYWY0OTA4YzczMTJiMGNmYmZlMzY5ZjdhN2IzY2RiN2Q0NDk0YmMyODIzNzAwY2ZkNjUyMTg4YTNlYTk4ZCJd'@; put 'LFsiYWY4YWRkYmYyYjY2MWM4YTZjNjMyODY1NWViOTY2NTEyNTIwMDdkOGM1ZWEzMWJlNGFkMTk2ZGU4Y2UyMTMxZiIsIjY3NDllNjdjMDI5Yjg1ZjUyYTAzNGVhZmQwOTY4MzZiMjUyMDgxODY4MGUyNmFjOGYzZGZiY2RiNzE3NDk3MDAiXSxbImUzYWUxOTc0NTY2Y2EwNmNjNTE2ZDQ3ZTBm'@; put 'YjE2NWE2NzRhM2RhYmNmY2ExNWU3MjJmMGUzNDUwZjQ1ODg5IiwiMmFlYWJlN2U0NTMxNTEwMTE2MjE3ZjA3YmY0ZDA3MzAwZGU5N2U0ODc0ZjgxZjUzMzQyMGE3MmVlYjBiZDZhNCJdLFsiNTkxZWUzNTUzMTNkOTk3MjFjZjY5OTNmZmVkMWUzZTMwMTk5M2ZmM2VkMjU4ODAyMDc1ZWE4Y2Vk'@; put 'Mzk3ZTI0NiIsImIwZWE1NThhMTEzYzMwYmVhNjBmYzQ3NzU0NjBjNzkwMWZmMGIwNTNkMjVjYTJiZGVlZTk4ZjFhNGJlNWQxOTYiXSxbIjExMzk2ZDU1ZmRhNTRjNDlmMTlhYTk3MzE4ZDhkYTYxZmE4NTg0ZTQ3YjA4NDk0NTA3N2NmMDMyNTViNTI5ODQiLCI5OThjNzRhOGNkNDVhYzAxMjg5'@; put 'ZDU4MzNhN2JlYjQ3NDRmZjUzNmIwMWIyNTdiZTRjNTc2N2JlYTkzZWE1N2E0Il0sWyIzYzVkMmExYmEzOWM1YTE3OTAwMDA3MzhjOWUwYzQwYjhkY2RmZDU0Njg3NTRiNjQwNTU0MDE1N2UwMTdhYTdhIiwiYjIyODQyNzk5OTVhMzRlMmY5ZDRkZTczOTZmYzE4YjgwZjliOGI5ZmRkMjcwZjY2'@; put 'NjFmNzljYTRjODFiZDI1NyJdLFsiY2M4NzA0YjhhNjBhMGRlZmEzYTk5YTcyOTlmMmU5YzNmYmMzOTVhZmIwNGFjMDc4NDI1ZWY4YTE3OTNjYzAzMCIsImJkZDQ2MDM5ZmVlZDE3ODgxZDFlMDg2MmRiMzQ3ZjhjZjM5NWI3NGZjNGJjZGM0ZTk0MGI3NGUzYWMxZjFiMTMiXSxbImM1MzNlNGY3'@; put 'ZWE4NTU1YWFjZDk3NzdhYzVjYWQyOWI5N2RkNGRlZmNjYzUzZWU3ZWEyMDQxMTliMjg4OWIxOTciLCI2ZjBhMjU2YmM1ZWZkZjQyOWEyZmI2MjQyZjFhNDNhMmQ5YjkyNWJiNGE0YjNhMjZiYjhlMGY0NWViNTk2MDk2Il0sWyJjMTRmOGYyY2NiMjdkNmYxMDlmNmQwOGQwM2NjOTZhNjliYThj'@; put 'MzRlZWMwN2JiY2Y1NjZkNDhlMzNkYTY1OTMiLCJjMzU5ZDY5MjNiYjM5OGY3ZmQ0NDczZTE2ZmUxYzI4NDc1Yjc0MGRkMDk4MDc1ZTZjMGU4NjQ5MTEzZGMzYTM4Il0sWyJhNmNiYzMwNDZiYzZhNDUwYmFjMjQ3ODlmYTE3MTE1YTRjOTczOWVkNzVmOGYyMWNlNDQxZjcyZTBiOTBlNmVmIiwi'@; put 'MjFhZTdmNDY4MGU4ODliYjEzMDYxOWUyYzBmOTVhMzYwY2ViNTczYzcwNjAzMTM5ODYyYWZkNjE3ZmE5YjlmIl0sWyIzNDdkNmQ5YTAyYzQ4OTI3ZWJmYjg2YzEzNTliMWNhZjEzMGEzYzAyNjdkMTFjZTYzNDRiMzlmOTlkNDNjYzM4IiwiNjBlYTdmNjFhMzUzNTI0ZDFjOTg3ZjZlY2VjOTJm'@; put 'MDg2ZDU2NWFiNjg3ODcwY2IxMjY4OWZmMWUzMWM3NDQ0OCJdLFsiZGE2NTQ1ZDIxODFkYjhkOTgzZjdkY2IzNzVlZjU4NjZkNDdjNjdiMWJmMzFjOGNmODU1ZWY3NDM3YjcyNjU2YSIsIjQ5Yjk2NzE1YWI2ODc4YTc5ZTc4ZjA3Y2U1NjgwYzVkNjY3MzA1MWI0OTM1YmQ4OTdmZWE4MjRiNzdk'@; put 'YzIwOGEiXSxbImM0MDc0N2NjOWQwMTJjYjFhMTNiODE0ODMwOWM2ZGU3ZWMyNWQ2OTQ1ZDY1NzE0NmI5ZDU5OTRiOGZlYjExMTEiLCI1Y2E1NjA3NTNiZTJhMTJmYzZkZTZjYWYyY2I0ODk1NjVkYjkzNjE1NmI5NTE0ZTFiYjVlODMwMzdlMGZhMmQ0Il0sWyI0ZTQyYzhlYzgyYzk5Nzk4Y2Nm'@; put 'M2E2MTBiZTg3MGU3ODMzOGM3ZjcxMzM0OGJkMzRjODIwM2VmNDAzN2YzNTAyIiwiNzU3MWQ3NGVlNWUwZmI5MmE3YThiMzNhMDc3ODMzNDFhNTQ5MjE0NGNjNTRiY2M0MGE5NDQ3MzY5MzYwNjQzNyJdLFsiMzc3NWFiNzA4OWJjNmFmODIzYWJhMmUxYWY3MGIyMzZkMjUxY2FkYjBjODY3NDMy'@; put 'ODc1MjJhMWIzYjBkZWRlYSIsImJlNTJkMTA3YmNmYTA5ZDhiY2I5NzM2YTgyOGNmYTdmYWM4ZGIxN2JmN2E3NmEyYzQyYWQ5NjE0MDkwMThjZjciXSxbImNlZTMxY2JmN2UzNGVjMzc5ZDk0ZmI4MTRkM2Q3NzVhZDk1NDU5NWQxMzE0YmE4ODQ2OTU5ZTNlODJmNzRlMjYiLCI4ZmQ2NGExNGMw'@; put 'NmI1ODljMjZiOTQ3YWUyYmNmNmJmYTAxNDllZjBiZTE0ZWQ0ZDgwZjQ0OGEwMWM0M2IxYzZkIl0sWyJiNGY5ZWFlYTA5YjY5MTc2MTlmNmVhNmE0ZWI1NDY0ZWZkZGI1OGZkNDViMWViZWZjZGMxYTAxZDA4YjQ3OTg2IiwiMzllNWM5OTI1YjVhNTRiMDc0MzNhNGYxOGM2MTcyNmY4YmIxMzFj'@; put 'MDEyY2E1NDJlYjI0YThhYzA3MjAwNjgyYSJdLFsiZDQyNjNkZmMzZDJkZjkyM2EwMTc5YTQ4OTY2ZDMwY2U4NGUyNTE1YWZjM2RjY2MxYjc3OTA3NzkyZWJjYzYwZSIsIjYyZGZhZjA3YTBmNzhmZWIzMGUzMGQ2Mjk1ODUzY2UxODllMTI3NzYwYWQ2Y2Y3ZmFlMTY0ZTEyMmEyMDhkNTQiXSxb'@; put 'IjQ4NDU3NTI0ODIwZmE2NWE0ZjhkMzVlYjY5MzA4NTdjMDAzMmFjYzBhNGEyZGU0MjIyMzNlZWRhODk3NjEyYzQiLCIyNWE3NDhhYjM2Nzk3OWQ5ODczM2MzOGExZmExYzJlN2RjNmNjMDdkYjJkNjBhOWFlN2E3NmFhYTQ5YmQwZjc3Il0sWyJkZmVlZWYxODgxMTAxZjJjYjExNjQ0ZjNhMmFm'@; put 'ZGZjMjA0NWUxOTkxOTE1MjkyM2YzNjdhMTc2N2MxMWNjZWRhIiwiZWNmYjcwNTZjZjFkZTA0MmY5NDIwYmFiMzk2NzkzYzBjMzkwYmRlNzRiNGJiZGZmMTZhODNhZTA5YTlhNzUxNyJdLFsiNmQ3ZWY2YjE3NTQzZjgzNzNjNTczZjQ0ZTFmMzg5ODM1ZDg5YmNiYzYwNjJjZWQzNmM4MmRmODNi'@; put 'OGZhZTg1OSIsImNkNDUwZWMzMzU0Mzg5ODZkZmVmYTEwYzU3ZmVhOWJjYzUyMWEwOTU5YjJkODBiYmY3NGIxOTBkY2E3MTJkMTAiXSxbImU3NTYwNWQ1OTEwMmE1YTI2ODQ1MDBkM2I5OTFmMmUzZjNjODhiOTMyMjU1NDcwMzVhZjI1YWY2NmUwNDU0MWYiLCJmNWM1NDc1NGE4ZjcxZWU1NDBi'@; put 'OWI0ODcyODQ3M2UzMTRmNzI5YWM1MzA4YjA2OTM4MzYwOTkwZTJiZmFkMTI1Il0sWyJlYjk4NjYwZjRjNGRmYWEwNmEyYmU0NTNkNTAyMGJjOTlhMGMyZTYwYWJlMzg4NDU3ZGQ0M2ZlZmIxZWQ2MjBjIiwiNmNiOWE4ODc2ZDljYjg1MjA2MDlhZjNhZGQyNmNkMjBhMGE3Y2Q4YTk0MTExMzFj'@; put 'ZTg1ZjQ0MTAwMDk5MjIzZSJdLFsiMTNlODdiMDI3ZDg1MTRkMzU5MzlmMmU2ODkyYjE5OTIyMTU0NTk2OTQxODg4MzM2ZGMzNTYzZTNiOGRiYTk0MiIsImZlZjVhM2M2ODA1OWE2ZGVjNWQ2MjQxMTRiZjFlOTFhYWMyYjlkYTU2OGQ2YWJlYjI1NzBkNTU2NDZiOGFkZjEiXSxbImVlMTYzMDI2'@; put 'ZTlmZDZmZTAxN2MzOGYwNmE1YmU2ZmMxMjU0MjRiMzcxY2UyNzA4ZTdiZjQ0OTE2OTFlNTc2NGEiLCIxYWNiMjUwZjI1NWRkNjFjNDNkOTRjY2M2NzBkMGY1OGY0OWFlM2ZhMTViOTY2MjNlNTQzMGRhMGFkNmM2MmIyIl0sWyJiMjY4ZjVlZjlhZDUxZTRkNzhkZTNhNzUwYzJkYzg5YjFlNjI2'@; put 'ZDQzNTA1ODY3OTk5OTMyZTVkYjMzYWYzZDgwIiwiNWYzMTBkNGIzYzk5YjllYmIxOWY3N2Q0MWMxZGVlMDE4Y2YwZDM0ZmQ0MTkxNjE0MDAzZTk0NWExMjE2ZTQyMyJdLFsiZmYwN2YzMTE4YTlkZjAzNWU5ZmFkODVlYjZjN2JmZTQyYjAyZjAxY2E5OWNlZWEzYmY3ZmZkYmE5M2M0NzUwZCIs'@; put 'IjQzODEzNmQ2MDNlODU4YTNhNWM0NDBjMzhlY2NiYWRkYzFkMjk0MjExNGUyZWRkZDQ3NDBkMDk4Y2VkMWYwZDgiXSxbIjhkOGI5ODU1YzdjMDUyYTM0MTQ2ZmQyMGZmYjY1OGJlYTRiOWY2OWUwZDgyNWViZWMxNmU4YzNjZTJiNTI2YTEiLCJjZGI1NTllZWRjMmQ3OWY5MjZiYWY0NGZiODRl'@; put 'YTRkNDRiY2Y1MGZlZTUxZDdjZWIzMGUyZTdmNDYzMDM2NzU4Il0sWyI1MmRiMGI1Mzg0ZGZiZjA1YmZhOWQ0NzJkN2FlMjZkZmU0Yjg1MWNlY2E5MWIxZWJhNTQyNjMxODBkYTMyYjYzIiwiYzNiOTk3ZDA1MGVlNWQ0MjNlYmFmNjZhNmRiOWY1N2IzMTgwYzkwMjg3NTY3OWRlOTI0YjY5ZDg0'@; put 'YTdiMzc1Il0sWyJlNjJmOTQ5MGQzZDUxZGE2Mzk1ZWZkMjRlODA5MTljYzdkMGYyOWMzZjNmYTQ4YzZmZmY1NDNiZWNiZDQzMzUyIiwiNmQ4OWFkN2JhNDg3NmIwYjIyYzJjYTI4MGM2ODI4NjJmMzQyYzg1OTFmMWRhZjUxNzBlMDdiZmQ5Y2NhZmE3ZCJdLFsiN2YzMGVhMjQ3NmIzOTliNDk1'@; put 'NzUwOWM4OGY3N2QwMTkxYWZhMmZmNWNiN2IxNGZkNmQ4ZTdkNjVhYWFiMTE5MyIsImNhNWVmN2Q0YjIzMWM5NGMzYjE1Mzg5YTVmNjMxMWU5ZGFmZjdiYjY3YjEwM2U5ODgwZWY0YmZmNjM3YWNhZWMiXSxbIjUwOThmZjFlMWQ5ZjE0ZmI0NmEyMTBmYWRhNmM5MDNmZWYwZmI3YjRhMWRkMWQ5'@; put 'YWM2MGEwMzYxODAwYjdhMDAiLCI5NzMxMTQxZDgxZmM4ZjgwODRkMzdjNmU3NTQyMDA2YjNlZTFiNDBkNjBkZmU1MzYyYTViMTMyZmQxN2RkYzAiXSxbIjMyYjc4YzdkZTllZTUxMmE3Mjg5NWJlNmI5Y2JlZmE2ZTJmM2M0Y2NjZTQ0NWM5NmI5ZjJjODFlMjc3OGFkNTgiLCJlZTE4NDlmNTEz'@; put 'ZGY3MWUzMmVmYzM4OTZlZTI4MjYwYzczYmI4MDU0N2FlMjI3NWJhNDk3MjM3Nzk0Yzg3NTNjIl0sWyJlMmNiNzRmZGRjOGU5ZmJjZDA3NmVlZjJhN2M3MmIwY2UzN2Q1MGYwODI2OWRmYzA3NGI1ODE1NTA1NDdhNGY3IiwiZDNhYTJlZDcxYzlkZDIyNDdhNjJkZjA2MjczNmViMGJhZGRlYTll'@; put 'MzYxMjJkMmJlODY0MWFiY2IwMDVjYzRhNCJdLFsiODQzODQ0NzU2NmQ0ZDdiZWRhZGMyOTk0OTZhYjM1NzQyNjAwOWEzNWYyMzVjYjE0MWJlMGQ5OWNkMTBhZTNhOCIsImM0ZTEwMjA5MTY5ODBhNGRhNWQwMWFjNWU2YWQzMzA3MzRlZjBkNzkwNjYzMWM0ZjIzOTA0MjZiMmVkZDc5MWYiXSxb'@; put 'IjQxNjJkNDg4Yjg5NDAyMDM5YjU4NGM2ZmM2YzMwODg3MDU4N2Q5YzQ2ZjY2MGI4NzhhYjY1YzgyYzcxMWQ2N2UiLCI2NzE2M2U5MDMyMzYyODlmNzc2ZjIyYzI1ZmI4YTNhZmMxNzMyZjJiODRiNGU5NWRiZGE0N2FlNWEwODUyNjQ5Il0sWyIzZmFkM2ZhODRjYWYwZjM0ZjBmODliZmQyZGNm'@; put 'NTRmYzE3NWQ3NjdhZWMzZTUwNjg0ZjNiYTRhNGJmNWY2ODNkIiwiY2QxYmM3Y2I2Y2M0MDdiYjJmMGNhNjQ3YzcxOGE3MzBjZjcxODcyZTdkMGQyYTUzZmEyMGVmY2RmZTYxODI2Il0sWyI2NzRmMjYwMGEzMDA3YTAwNTY4YzFhN2NlMDVkMDgxNmMxZmI4NGJmMTM3MDc5OGYxYzY5NTMyZmFl'@; put 'YjFhODZiIiwiMjk5ZDIxZjk0MTNmMzNiM2VkZjQzYjI1NzAwNDU4MGI3MGRiNTdkYTBiMTgyMjU5ZTA5ZWVjYzY5ZTBkMzhhNSJdLFsiZDMyZjRkYTU0YWRlNzRhYmI4MWI4MTVhZDFmYjNiMjYzZDgyZDZjNjkyNzE0YmNmZjg3ZDI5YmQ1ZWU5ZjA4ZiIsImY5NDI5ZTczOGI4ZTUzYjk2OGU5'@; put 'OTAxNmMwNTk3MDc3ODJlMTRmNDUzNTM1OWQ1ODJmYzQxNjkxMGIzZWVhODciXSxbIjMwZTRlNjcwNDM1Mzg1NTU2ZTU5MzY1NzEzNTg0NWQzNmZiYjY5MzFmNzJiMDhjYjFlZDk1NGYxZTNjZTNmZjYiLCI0NjJmOWJjZTYxOTg5ODYzODQ5OTM1MDExM2JiYzliMTBhODc4ZDM1ZGE3MDc0MGRj'@; put 'Njk1YTU1OWViODhkYjdiIl0sWyJiZTIwNjIwMDNjNTFjYzMwMDQ2ODI5MDQzMzBlNGRlZTdmM2RjZDEwYjAxZTU4MGJmMTk3MWIwNGQ0Y2FkMjk3IiwiNjIxODhiYzQ5ZDYxZTU0Mjg1NzNkNDhhNzRlMWM2NTViMWM2MTA5MDkwNTY4MmEwZDU1NThlZDcyZGNjYjliYyJdLFsiOTMxNDQ0MjNh'@; put 'Y2UzNDUxZWQyOWUwZmI5YWMyYWYyMTFjYjZlODRhNjAxZGY1OTkzYzQxOTg1OWZmZjVkZjA0YSIsIjdjMTBkZmIxNjRjMzQyNWY1YzcxYTNmOWQ3OTkyMDM4ZjEwNjUyMjRmNzJiYjlkMWQ5MDJhNmQxMzAzN2I0N2MiXSxbImIwMTVmODA0NGY1ZmNiZGNmMjFjYTI2ZDZjMzRmYjgxOTc4Mjky'@; put 'MDVjN2I3ZDJhN2NiNjY0MThjMTU3YjExMmMiLCJhYjhjMWUwODZkMDRlODEzNzQ0YTY1NWIyZGY4ZDVmODNiM2NkYzZmYWEzMDg4YzFkM2FlYTE0NTRlM2ExZDVmIl0sWyJkNWU5ZTFkYTY0OWQ5N2Q4OWU0ODY4MTE3YTQ2NWEzYTRmOGExOGRlNTdhMTQwZDM2YjNmMmFmMzQxYTIxYjUyIiwi'@; put 'NGNiMDQ0MzdmMzkxZWQ3MzExMWExM2NjMWQ0ZGQwZGIxNjkzNDY1YzIyNDA0ODBkODk1NWU4NTkyZjI3NDQ3YSJdLFsiZDNhZTQxMDQ3ZGQ3Y2EwNjVkYmY4ZWQ3N2I5OTI0Mzk5ODMwMDVjZDcyZTE2ZDZmOTk2YTUzMTZkMzY5NjZiYiIsImJkMWFlYjIxYWQyMmViYjIyYTEwZjAzMDM0MTdj'@; put 'NmQ5NjRmOGNkZDdkZjBhY2E2MTRiMTBkYzE0ZDEyNWFjNDYiXSxbIjQ2M2UyNzYzZDg4NWY5NThmYzY2Y2RkMjI4MDBmMGE0ODcxOTdkMGE4MmUzNzdiNDlmODBhZjg3Yzg5N2IwNjUiLCJiZmVmYWNkYjBlNWQwZmQ3ZGYzYTMxMWE5NGRlMDYyYjI2YjgwYzYxZmJjOTc1MDhiNzk5OTI2NzFl'@; put 'ZjdjYTdmIl0sWyI3OTg1ZmRmZDEyN2MwNTY3YzZmNTNlYzFiYjYzZWMzMTU4ZTU5N2M0MGJmZTc0N2M4M2NkZGZjOTEwNjQxOTE3IiwiNjAzYzEyZGFmM2Q5ODYyZWYyYjI1ZmUxZGUyODlhZWQyNGVkMjkxZTBlYzY3MDg3MDNhNWJkNTY3ZjMyZWQwMyJdLFsiNzRhMWFkNmI1Zjc2ZTM5ZGIy'@; put 'ZGQyNDk0MTBlYWM3Zjk5ZTc0YzU5Y2I4M2QyZDBlZDVmZjE1NDNkYTc3MDNlOSIsImNjNjE1N2VmMThjOWM2M2NkNjE5M2Q4MzYzMWJiZWEwMDkzZTA5Njg5NDJlOGMzM2Q1NzM3ZmQ3OTBlMGRiMDgiXSxbIjMwNjgyYTUwNzAzMzc1ZjYwMmQ0MTY2NjRiYTE5YjdmYzliYWI0MmM3Mjc0NzQ2'@; put 'M2E3MWQwODk2YjIyZjZkYTMiLCI1NTNlMDRmNmIwMThiNGZhNmM4ZjM5ZTdmMzExZDMxNzYyOTBkMGUwZjE5Y2E3M2YxNzcxNGQ5OTc3YTIyZmY4Il0sWyI5ZTIxNThmMGQ3YzBkNWYyNmMzNzkxZWZlZmE3OTU5NzY1NGU3YTJiMjQ2NGY1MmIxZWU2YzEzNDc3NjllZjU3IiwiNzEyZmNkZDFi'@; put 'OTA1M2YwOTAwM2EzNDgxZmE3NzYyZTlmZmQ3YzhlZjM1YTM4NTA5ZTJmYmYyNjI5MDA4MzczIl0sWyIxNzZlMjY5ODlhNDNjOWNmZWJhNDAyOWMyMDI1MzhjMjgxNzJlNTY2ZTNjNGZjZTczMjI4NTdmM2JlMzI3ZDY2IiwiZWQ4Y2M5ZDA0YjI5ZWI4NzdkMjcwYjQ4NzhkYzQzYzE5YWVmZDMx'@; put 'ZjRlZWUwOWVlN2I0NzgzNGMxZmE0YjFjMyJdLFsiNzVkNDZlZmVhMzc3MWU2ZTY4YWJiODlhMTNhZDc0N2VjZjE4OTIzOTNkZmM0ZjFiNzAwNDc4OGM1MDM3NGRhOCIsIjk4NTIzOTBhOTk1MDc2NzlmZDBiODZmZDJiMzlhODY4ZDdlZmMyMjE1MTM0NmUxYTNjYTQ3MjY1ODZhNmJlZDgiXSxb'@; put 'IjgwOWEyMGM2N2Q2NDkwMGZmYjY5OGM0YzgyNWY2ZDVmMjMxMGZiMDQ1MWM4NjkzNDViNzMxOWY2NDU2MDU3MjEiLCI5ZTk5NDk4MGQ5OTE3ZTIyYjc2YjA2MTkyN2ZhMDQxNDNkMDk2Y2NjNTQ5NjNlNmE1ZWJmYTVmM2Y4ZTI4NmMxIl0sWyIxYjM4OTAzYTQzZjdmMTE0ZWQ0NTAwYjRlYWM3'@; put 'MDgzZmRlZmVjZTFjZjI5YzYzNTI4ZDU2MzQ0NmY5NzJjMTgwIiwiNDAzNmVkYzkzMWE2MGFlODg5MzUzZjc3ZmQ1M2RlNGEyNzA4YjI2YjZmNWRhNzJhZDMzOTQxMTlkYWY0MDhmOSJdXX19fSw5NTM6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9SixfPWIoMzc4NSkscD1iKDk3NDYp'@; put 'LE49Yig0NTA0KTtELmFzc2VydD1wLEQudG9BcnJheT1OLnRvQXJyYXksRC56ZXJvMj1OLnplcm8yLEQudG9IZXg9Ti50b0hleCxELmVuY29kZT1OLmVuY29kZSxELmdldE5BRj1mdW5jdGlvbiB3KFAsTCxZKXt2YXIgVyxCPW5ldyBBcnJheShNYXRoLm1heChQLmJpdExlbmd0aCgpLFkpKzEp'@; put 'O2ZvcihXPTA7VzxCLmxlbmd0aDtXKz0xKUJbV109MDt2YXIgWj0xPDxMKzEsWD1QLmNsb25lKCk7Zm9yKFc9MDtXPEIubGVuZ3RoO1crKyl7dmFyIFEscT1YLmFuZGxuKFotMSk7WC5pc09kZCgpP1guaXN1Ym4oUT1xPihaPj4xKS0xPyhaPj4xKS1xOnEpOlE9MCxCW1ddPVEsWC5pdXNocm4o'@; put 'MSl9cmV0dXJuIEJ9LEQuZ2V0SlNGPWZ1bmN0aW9uIEYoUCxMKXt2YXIgWT1bW10sW11dO1A9UC5jbG9uZSgpLEw9TC5jbG9uZSgpO2Zvcih2YXIgWixCPTAsVz0wO1AuY21wbigtQik+MHx8TC5jbXBuKC1XKT4wOyl7dmFyIHEsdGUsWD1QLmFuZGxuKDMpK0ImMyxRPUwuYW5kbG4oMykrVyYz'@; put 'OzM9PT1YJiYoWD0tMSksMz09PVEmJihRPS0xKSxxPTEmWD8zIT0oWj1QLmFuZGxuKDcpK0ImNykmJjUhPT1afHwyIT09UT9YOi1YOjAsWVswXS5wdXNoKHEpLHRlPTEmUT8zIT0oWj1MLmFuZGxuKDcpK1cmNykmJjUhPT1afHwyIT09WD9ROi1ROjAsWVsxXS5wdXNoKHRlKSwyKkI9PT1xKzEm'@; put 'JihCPTEtQiksMipXPT09dGUrMSYmKFc9MS1XKSxQLml1c2hybigxKSxMLml1c2hybigxKX1yZXR1cm4gWX0sRC5jYWNoZWRQcm9wZXJ0eT1mdW5jdGlvbiBIKFAsTCxZKXt2YXIgQj0iXyIrTDtQLnByb3RvdHlwZVtMXT1mdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzW0JdP3RoaXNb'@; put 'Ql06dGhpc1tCXT1ZLmNhbGwodGhpcyl9fSxELnBhcnNlQnl0ZXM9ZnVuY3Rpb24gUihQKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIFA/RC50b0FycmF5KFAsImhleCIpOlB9LEQuaW50RnJvbUxFPWZ1bmN0aW9uIGooUCl7cmV0dXJuIG5ldyBfKFAsImhleCIsImxlIil9fSwzNzg1OmZ1bmN0'@; put 'aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQsXyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHAoeixnKXtpZigheil0aHJvdyBuZXcgRXJyb3IoZ3x8IkFzc2VydGlvbiBmYWlsZWQiKX1mdW5jdGlvbiBOKHosZyl7ei5zdXBlcl89Zzt2YXIgeT1mdW5jdGlvbigpe307eS5wcm90b3R5cGU9Zy5wcm90'@; put 'b3R5cGUsei5wcm90b3R5cGU9bmV3IHksei5wcm90b3R5cGUuY29uc3RydWN0b3I9en1mdW5jdGlvbiB3KHosZyx5KXtpZih3LmlzQk4oeikpcmV0dXJuIHo7dGhpcy5uZWdhdGl2ZT0wLHRoaXMud29yZHM9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMucmVkPW51bGwsbnVsbCE9PXomJigoImxl'@; put 'Ij09PWd8fCJiZSI9PT1nKSYmKHk9ZyxnPTEwKSx0aGlzLl9pbml0KHp8fDAsZ3x8MTAseXx8ImJlIikpfXZhciBGOyJvYmplY3QiPT10eXBlb2YgRD9ELmV4cG9ydHM9dzpfLkJOPXcsdy5CTj13LHcud29yZFNpemU9MjY7dHJ5e0Y9dHlwZW9mIHdpbmRvdzwidSImJnR5cGVvZiB3aW5kb3cu'@; put 'QnVmZmVyPCJ1Ij93aW5kb3cuQnVmZmVyOmIoNTU2OCkuQnVmZmVyfWNhdGNoe31mdW5jdGlvbiBIKHosZyl7dmFyIHk9ei5jaGFyQ29kZUF0KGcpO3JldHVybiB5Pj02NSYmeTw9NzA/eS01NTp5Pj05NyYmeTw9MTAyP3ktODc6eS00OCYxNX1mdW5jdGlvbiBSKHosZyx5KXt2YXIgeD1IKHos'@; put 'eSk7cmV0dXJuIHktMT49ZyYmKHh8PUgoeix5LTEpPDw0KSx4fWZ1bmN0aW9uIGooeixnLHkseCl7Zm9yKHZhciBDPTAsVD1NYXRoLm1pbih6Lmxlbmd0aCx5KSxWPWc7VjxUO1YrKyl7dmFyIFU9ei5jaGFyQ29kZUF0KFYpLTQ4O0MqPXgsQys9VT49NDk/VS00OSsxMDpVPj0xNz9VLTE3KzEw'@; put 'OlV9cmV0dXJuIEN9dy5pc0JOPWZ1bmN0aW9uKGcpe3JldHVybiBnIGluc3RhbmNlb2Ygd3x8bnVsbCE9PWcmJiJvYmplY3QiPT10eXBlb2YgZyYmZy5jb25zdHJ1Y3Rvci53b3JkU2l6ZT09PXcud29yZFNpemUmJkFycmF5LmlzQXJyYXkoZy53b3Jkcyl9LHcubWF4PWZ1bmN0aW9uKGcseSl7'@; put 'cmV0dXJuIGcuY21wKHkpPjA/Zzp5fSx3Lm1pbj1mdW5jdGlvbihnLHkpe3JldHVybiBnLmNtcCh5KTwwP2c6eX0sdy5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oZyx5LHgpe2lmKCJudW1iZXIiPT10eXBlb2YgZylyZXR1cm4gdGhpcy5faW5pdE51bWJlcihnLHkseCk7aWYoIm9iamVjdCI9'@; put 'PXR5cGVvZiBnKXJldHVybiB0aGlzLl9pbml0QXJyYXkoZyx5LHgpOyJoZXgiPT09eSYmKHk9MTYpLHAoeT09PSgwfHkpJiZ5Pj0yJiZ5PD0zNik7dmFyIEM9MDsiLSI9PT0oZz1nLnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpKVswXSYmKEMrKyx0aGlzLm5lZ2F0aXZlPTEpLEM8Zy5s'@; put 'ZW5ndGgmJigxNj09PXk/dGhpcy5fcGFyc2VIZXgoZyxDLHgpOih0aGlzLl9wYXJzZUJhc2UoZyx5LEMpLCJsZSI9PT14JiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCkseSx4KSkpfSx3LnByb3RvdHlwZS5faW5pdE51bWJlcj1mdW5jdGlvbihnLHkseCl7ZzwwJiYodGhpcy5uZWdh'@; put 'dGl2ZT0xLGc9LWcpLGc8NjcxMDg4NjQ/KHRoaXMud29yZHM9WzY3MTA4ODYzJmddLHRoaXMubGVuZ3RoPTEpOmc8NDUwMzU5OTYyNzM3MDQ5Nj8odGhpcy53b3Jkcz1bNjcxMDg4NjMmZyxnLzY3MTA4ODY0JjY3MTA4ODYzXSx0aGlzLmxlbmd0aD0yKToocChnPDkwMDcxOTkyNTQ3NDA5OTIp'@; put 'LHRoaXMud29yZHM9WzY3MTA4ODYzJmcsZy82NzEwODg2NCY2NzEwODg2MywxXSx0aGlzLmxlbmd0aD0zKSwibGUiPT09eCYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLHkseCl9LHcucHJvdG90eXBlLl9pbml0QXJyYXk9ZnVuY3Rpb24oZyx5LHgpe2lmKHAoIm51bWJlciI9PXR5'@; put 'cGVvZiBnLmxlbmd0aCksZy5sZW5ndGg8PTApcmV0dXJuIHRoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTEsdGhpczt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoZy5sZW5ndGgvMyksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgQz0wO0M8dGhpcy5sZW5ndGg7Qysr'@; put 'KXRoaXMud29yZHNbQ109MDt2YXIgVCxWLFU9MDtpZigiYmUiPT09eClmb3IoQz1nLmxlbmd0aC0xLFQ9MDtDPj0wO0MtPTMpdGhpcy53b3Jkc1tUXXw9KFY9Z1tDXXxnW0MtMV08PDh8Z1tDLTJdPDwxNik8PFUmNjcxMDg4NjMsdGhpcy53b3Jkc1tUKzFdPVY+Pj4yNi1VJjY3MTA4ODYzLChV'@; put 'Kz0yNCk+PTI2JiYoVS09MjYsVCsrKTtlbHNlIGlmKCJsZSI9PT14KWZvcihDPTAsVD0wO0M8Zy5sZW5ndGg7Qys9Myl0aGlzLndvcmRzW1RdfD0oVj1nW0NdfGdbQysxXTw8OHxnW0MrMl08PDE2KTw8VSY2NzEwODg2Myx0aGlzLndvcmRzW1QrMV09Vj4+PjI2LVUmNjcxMDg4NjMsKFUrPTI0'@; put 'KT49MjYmJihVLT0yNixUKyspO3JldHVybiB0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLl9wYXJzZUhleD1mdW5jdGlvbihnLHkseCl7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKChnLmxlbmd0aC15KS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBDPTA7Qzx0'@; put 'aGlzLmxlbmd0aDtDKyspdGhpcy53b3Jkc1tDXT0wO3ZhciBVLFQ9MCxWPTA7aWYoImJlIj09PXgpZm9yKEM9Zy5sZW5ndGgtMTtDPj15O0MtPTIpVT1SKGcseSxDKTw8VCx0aGlzLndvcmRzW1ZdfD02NzEwODg2MyZVLFQ+PTE4PyhULT0xOCx0aGlzLndvcmRzW1YrPTFdfD1VPj4+MjYpOlQr'@; put 'PTg7ZWxzZSBmb3IoQz0oZy5sZW5ndGgteSklMj09MD95KzE6eTtDPGcubGVuZ3RoO0MrPTIpVT1SKGcseSxDKTw8VCx0aGlzLndvcmRzW1ZdfD02NzEwODg2MyZVLFQ+PTE4PyhULT0xOCx0aGlzLndvcmRzW1YrPTFdfD1VPj4+MjYpOlQrPTg7dGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5f'@; put 'cGFyc2VCYXNlPWZ1bmN0aW9uKGcseSx4KXt0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xO2Zvcih2YXIgQz0wLFQ9MTtUPD02NzEwODg2MztUKj15KUMrKztDLS0sVD1UL3l8MDtmb3IodmFyIFY9Zy5sZW5ndGgteCxVPVYlQyxFPU1hdGgubWluKFYsVi1VKSt4LG09MCxBPXg7QTxFO0Er'@; put 'PUMpbT1qKGcsQSxBK0MseSksdGhpcy5pbXVsbihUKSx0aGlzLndvcmRzWzBdK208NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9bTp0aGlzLl9pYWRkbihtKTtpZigwIT09VSl7dmFyIGFlPTE7Zm9yKG09aihnLEEsZy5sZW5ndGgseSksQT0wO0E8VTtBKyspYWUqPXk7dGhpcy5pbXVsbihhZSks'@; put 'dGhpcy53b3Jkc1swXSttPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPW06dGhpcy5faWFkZG4obSl9dGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKGcpe2cud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHk9MDt5PHRoaXMubGVuZ3RoO3krKylnLndv'@; put 'cmRzW3ldPXRoaXMud29yZHNbeV07Zy5sZW5ndGg9dGhpcy5sZW5ndGgsZy5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLGcucmVkPXRoaXMucmVkfSx3LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciBnPW5ldyB3KG51bGwpO3JldHVybiB0aGlzLmNvcHkoZyksZ30sdy5wcm90b3R5cGUu'@; put 'X2V4cGFuZD1mdW5jdGlvbihnKXtmb3IoO3RoaXMubGVuZ3RoPGc7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4gdGhpc30sdy5wcm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdOyl0aGlz'@; put 'Lmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSx3LnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sdy5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigp'@; put 'e3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgUD1bIiIsIjAiLCIwMCIsIjAwMCIsIjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAiLCIwMDAwMDAwMCIsIjAwMDAwMDAwMCIsIjAwMDAwMDAwMDAiLCIwMDAwMDAwMDAw'@; put 'MCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAw'@; put 'MDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXSxMPVswLDAsMjUsMTYsMTIsMTEsMTAsOSw4'@; put 'LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLFk9WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1'@; put 'MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQzMiwzOTEz'@; put 'NTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07ZnVuY3Rpb24gVyh6LGcseSl7eS5uZWdhdGl2ZT1nLm5lZ2F0aXZlXnoubmVnYXRpdmU7dmFyIHg9ei5sZW5ndGgrZy5sZW5ndGh8MDt5Lmxlbmd0aD14LHg9eC0xfDA7dmFyIEM9MHx6LndvcmRzWzBdLFQ9MHxnLndvcmRzWzBdLFY9'@; put 'QypULEU9Vi82NzEwODg2NHwwO3kud29yZHNbMF09NjcxMDg4NjMmVjtmb3IodmFyIG09MTttPHg7bSsrKXtmb3IodmFyIEE9RT4+PjI2LGFlPTY3MTA4ODYzJkUsbmU9TWF0aC5taW4obSxnLmxlbmd0aC0xKSxsZT1NYXRoLm1heCgwLG0tei5sZW5ndGgrMSk7bGU8PW5lO2xlKyspQSs9KFY9'@; put 'KEM9MHx6LndvcmRzW20tbGV8MF0pKihUPTB8Zy53b3Jkc1tsZV0pK2FlKS82NzEwODg2NHwwLGFlPTY3MTA4ODYzJlY7eS53b3Jkc1ttXT0wfGFlLEU9MHxBfXJldHVybiAwIT09RT95LndvcmRzW21dPTB8RTp5Lmxlbmd0aC0tLHkuc3RyaXAoKX13LnByb3RvdHlwZS50b1N0cmluZz1mdW5j'@; put 'dGlvbihnLHkpe3ZhciB4O2lmKHk9MHx5fHwxLDE2PT09KGc9Z3x8MTApfHwiaGV4Ij09PWcpe3g9IiI7Zm9yKHZhciBDPTAsVD0wLFY9MDtWPHRoaXMubGVuZ3RoO1YrKyl7dmFyIFU9dGhpcy53b3Jkc1tWXSxFPSgxNjc3NzIxNSYoVTw8Q3xUKSkudG9TdHJpbmcoMTYpO1Q9VT4+PjI0LUMm'@; put 'MTY3NzcyMTUsKEMrPTIpPj0yNiYmKEMtPTI2LFYtLSkseD0wIT09VHx8ViE9PXRoaXMubGVuZ3RoLTE/UFs2LUUubGVuZ3RoXStFK3g6RSt4fWZvcigwIT09VCYmKHg9VC50b1N0cmluZygxNikreCk7eC5sZW5ndGgleSE9MDspeD0iMCIreDtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJih4'@; put 'PSItIit4KSx4fWlmKGc9PT0oMHxnKSYmZz49MiYmZzw9MzYpe3ZhciBtPUxbZ10sQT1ZW2ddO3g9IiI7dmFyIGFlPXRoaXMuY2xvbmUoKTtmb3IoYWUubmVnYXRpdmU9MDshYWUuaXNaZXJvKCk7KXt2YXIgbmU9YWUubW9kbihBKS50b1N0cmluZyhnKTt4PShhZT1hZS5pZGl2bihBKSkuaXNa'@; put 'ZXJvKCk/bmUreDpQW20tbmUubGVuZ3RoXStuZSt4fWZvcih0aGlzLmlzWmVybygpJiYoeD0iMCIreCk7eC5sZW5ndGgleSE9MDspeD0iMCIreDtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJih4PSItIit4KSx4fXAoITEsIkJhc2Ugc2hvdWxkIGJlIGJldHdlZW4gMiBhbmQgMzYiKX0sdy5w'@; put 'cm90b3R5cGUudG9OdW1iZXI9ZnVuY3Rpb24oKXt2YXIgZz10aGlzLndvcmRzWzBdO3JldHVybiAyPT09dGhpcy5sZW5ndGg/Zys9NjcxMDg4NjQqdGhpcy53b3Jkc1sxXTozPT09dGhpcy5sZW5ndGgmJjE9PT10aGlzLndvcmRzWzJdP2crPTQ1MDM1OTk2MjczNzA0OTYrNjcxMDg4NjQqdGhp'@; put 'cy53b3Jkc1sxXTp0aGlzLmxlbmd0aD4yJiZwKCExLCJOdW1iZXIgY2FuIG9ubHkgc2FmZWx5IHN0b3JlIHVwIHRvIDUzIGJpdHMiKSwwIT09dGhpcy5uZWdhdGl2ZT8tZzpnfSx3LnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygxNil9LHcucHJvdG90'@; put 'eXBlLnRvQnVmZmVyPWZ1bmN0aW9uKGcseSl7cmV0dXJuIHAodHlwZW9mIEY8InUiKSx0aGlzLnRvQXJyYXlMaWtlKEYsZyx5KX0sdy5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbihnLHkpe3JldHVybiB0aGlzLnRvQXJyYXlMaWtlKEFycmF5LGcseSl9LHcucHJvdG90eXBlLnRvQXJyYXlM'@; put 'aWtlPWZ1bmN0aW9uKGcseSx4KXt2YXIgQz10aGlzLmJ5dGVMZW5ndGgoKSxUPXh8fE1hdGgubWF4KDEsQyk7cChDPD1ULCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIikscChUPjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpLHRoaXMuc3RyaXAoKTt2YXIg'@; put 'RSxtLFY9ImxlIj09PXksVT1uZXcgZyhUKSxBPXRoaXMuY2xvbmUoKTtpZihWKXtmb3IobT0wOyFBLmlzWmVybygpO20rKylFPUEuYW5kbG4oMjU1KSxBLml1c2hybig4KSxVW21dPUU7Zm9yKDttPFQ7bSsrKVVbbV09MH1lbHNle2ZvcihtPTA7bTxULUM7bSsrKVVbbV09MDtmb3IobT0wOyFB'@; put 'LmlzWmVybygpO20rKylFPUEuYW5kbG4oMjU1KSxBLml1c2hybig4KSxVW1QtbS0xXT1FfXJldHVybiBVfSx3LnByb3RvdHlwZS5fY291bnRCaXRzPU1hdGguY2x6MzI/ZnVuY3Rpb24oZyl7cmV0dXJuIDMyLU1hdGguY2x6MzIoZyl9OmZ1bmN0aW9uKGcpe3ZhciB5PWcseD0wO3JldHVybiB5'@; put 'Pj00MDk2JiYoeCs9MTMseT4+Pj0xMykseT49NjQmJih4Kz03LHk+Pj49NykseT49OCYmKHgrPTQseT4+Pj00KSx5Pj0yJiYoeCs9Mix5Pj4+PTIpLHgreX0sdy5wcm90b3R5cGUuX3plcm9CaXRzPWZ1bmN0aW9uKGcpe2lmKDA9PT1nKXJldHVybiAyNjt2YXIgeT1nLHg9MDtyZXR1cm4gODE5'@; put 'MSZ5fHwoeCs9MTMseT4+Pj0xMyksMTI3Jnl8fCh4Kz03LHk+Pj49NyksMTUmeXx8KHgrPTQseT4+Pj00KSwzJnl8fCh4Kz0yLHk+Pj49MiksMSZ5fHx4KysseH0sdy5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5fY291bnRCaXRzKHRoaXMud29yZHNbdGhpcy5s'@; put 'ZW5ndGgtMV0pO3JldHVybiAyNioodGhpcy5sZW5ndGgtMSkreX0sdy5wcm90b3R5cGUuemVyb0JpdHM9ZnVuY3Rpb24oKXtpZih0aGlzLmlzWmVybygpKXJldHVybiAwO2Zvcih2YXIgZz0wLHk9MDt5PHRoaXMubGVuZ3RoO3krKyl7dmFyIHg9dGhpcy5femVyb0JpdHModGhpcy53b3Jkc1t5'@; put 'XSk7aWYoZys9eCwyNiE9PXgpYnJlYWt9cmV0dXJuIGd9LHcucHJvdG90eXBlLmJ5dGVMZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5jZWlsKHRoaXMuYml0TGVuZ3RoKCkvOCl9LHcucHJvdG90eXBlLnRvVHdvcz1mdW5jdGlvbihnKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/dGhp'@; put 'cy5hYnMoKS5pbm90bihnKS5pYWRkbigxKTp0aGlzLmNsb25lKCl9LHcucHJvdG90eXBlLmZyb21Ud29zPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLnRlc3RuKGctMSk/dGhpcy5ub3RuKGcpLmlhZGRuKDEpLmluZWcoKTp0aGlzLmNsb25lKCl9LHcucHJvdG90eXBlLmlzTmVnPWZ1bmN0aW9u'@; put 'KCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlfSx3LnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmluZWcoKX0sdy5wcm90b3R5cGUuaW5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzWmVybygpfHwodGhpcy5uZWdhdGl2ZV49MSksdGhpc30sdy5wcm90'@; put 'b3R5cGUuaXVvcj1mdW5jdGlvbihnKXtmb3IoO3RoaXMubGVuZ3RoPGcubGVuZ3RoOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7Zm9yKHZhciB5PTA7eTxnLmxlbmd0aDt5KyspdGhpcy53b3Jkc1t5XT10aGlzLndvcmRzW3ldfGcud29yZHNbeV07cmV0dXJuIHRoaXMuc3RyaXAoKX0s'@; put 'dy5wcm90b3R5cGUuaW9yPWZ1bmN0aW9uKGcpe3JldHVybiBwKCEodGhpcy5uZWdhdGl2ZXxnLm5lZ2F0aXZlKSksdGhpcy5pdW9yKGcpfSx3LnByb3RvdHlwZS5vcj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLmlvcihnKTpnLmNsb25lKCku'@; put 'aW9yKHRoaXMpfSx3LnByb3RvdHlwZS51b3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdW9yKGcpOmcuY2xvbmUoKS5pdW9yKHRoaXMpfSx3LnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbihnKXt2YXIgeTt5PXRoaXMubGVuZ3RoPmcubGVu'@; put 'Z3RoP2c6dGhpcztmb3IodmFyIHg9MDt4PHkubGVuZ3RoO3grKyl0aGlzLndvcmRzW3hdPXRoaXMud29yZHNbeF0mZy53b3Jkc1t4XTtyZXR1cm4gdGhpcy5sZW5ndGg9eS5sZW5ndGgsdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKGcpe3JldHVybiBwKCEodGhpcy5u'@; put 'ZWdhdGl2ZXxnLm5lZ2F0aXZlKSksdGhpcy5pdWFuZChnKX0sdy5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZChnKTpnLmNsb25lKCkuaWFuZCh0aGlzKX0sdy5wcm90b3R5cGUudWFuZD1mdW5jdGlvbihnKXty'@; put 'ZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLml1YW5kKGcpOmcuY2xvbmUoKS5pdWFuZCh0aGlzKX0sdy5wcm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24oZyl7dmFyIHkseDt0aGlzLmxlbmd0aD5nLmxlbmd0aD8oeT10aGlzLHg9Zyk6KHk9Zyx4PXRoaXMpO2Zvcih2YXIg'@; put 'Qz0wO0M8eC5sZW5ndGg7QysrKXRoaXMud29yZHNbQ109eS53b3Jkc1tDXV54LndvcmRzW0NdO2lmKHRoaXMhPT15KWZvcig7Qzx5Lmxlbmd0aDtDKyspdGhpcy53b3Jkc1tDXT15LndvcmRzW0NdO3JldHVybiB0aGlzLmxlbmd0aD15Lmxlbmd0aCx0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBl'@; put 'Lml4b3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHAoISh0aGlzLm5lZ2F0aXZlfGcubmVnYXRpdmUpKSx0aGlzLml1eG9yKGcpfSx3LnByb3RvdHlwZS54b3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5peG9yKGcpOmcuY2xvbmUoKS5peG9yKHRo'@; put 'aXMpfSx3LnByb3RvdHlwZS51eG9yPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaXV4b3IoZyk6Zy5jbG9uZSgpLml1eG9yKHRoaXMpfSx3LnByb3RvdHlwZS5pbm90bj1mdW5jdGlvbihnKXtwKCJudW1iZXIiPT10eXBlb2YgZyYmZz49MCk7'@; put 'dmFyIHk9MHxNYXRoLmNlaWwoZy8yNikseD1nJTI2O3RoaXMuX2V4cGFuZCh5KSx4PjAmJnktLTtmb3IodmFyIEM9MDtDPHk7QysrKXRoaXMud29yZHNbQ109NjcxMDg4NjMmfnRoaXMud29yZHNbQ107cmV0dXJuIHg+MCYmKHRoaXMud29yZHNbQ109fnRoaXMud29yZHNbQ10mNjcxMDg4NjM+'@; put 'PjI2LXgpLHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUubm90bj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlub3RuKGcpfSx3LnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uKGcseSl7cCgibnVtYmVyIj09dHlwZW9mIGcmJmc+PTApO3ZhciB4PWcvMjZ8MCxDPWclMjY7cmV0dXJu'@; put 'IHRoaXMuX2V4cGFuZCh4KzEpLHRoaXMud29yZHNbeF09eT90aGlzLndvcmRzW3hdfDE8PEM6dGhpcy53b3Jkc1t4XSZ+KDE8PEMpLHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbihnKXt2YXIgeSx4LEM7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1nLm5lZ2F0aXZl'@; put 'KXJldHVybiB0aGlzLm5lZ2F0aXZlPTAseT10aGlzLmlzdWIoZyksdGhpcy5uZWdhdGl2ZV49MSx0aGlzLl9ub3JtU2lnbigpO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Zy5uZWdhdGl2ZSlyZXR1cm4gZy5uZWdhdGl2ZT0wLHk9dGhpcy5pc3ViKGcpLGcubmVnYXRpdmU9MSx5Ll9ub3Jt'@; put 'U2lnbigpO3RoaXMubGVuZ3RoPmcubGVuZ3RoPyh4PXRoaXMsQz1nKTooeD1nLEM9dGhpcyk7Zm9yKHZhciBUPTAsVj0wO1Y8Qy5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09NjcxMDg4NjMmKHk9KDB8eC53b3Jkc1tWXSkrKDB8Qy53b3Jkc1tWXSkrVCksVD15Pj4+MjY7Zm9yKDswIT09VCYm'@; put 'Vjx4Lmxlbmd0aDtWKyspdGhpcy53b3Jkc1tWXT02NzEwODg2MyYoeT0oMHx4LndvcmRzW1ZdKStUKSxUPXk+Pj4yNjtpZih0aGlzLmxlbmd0aD14Lmxlbmd0aCwwIT09VCl0aGlzLndvcmRzW3RoaXMubGVuZ3RoXT1ULHRoaXMubGVuZ3RoKys7ZWxzZSBpZih4IT09dGhpcylmb3IoO1Y8eC5s'@; put 'ZW5ndGg7VisrKXRoaXMud29yZHNbVl09eC53b3Jkc1tWXTtyZXR1cm4gdGhpc30sdy5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGcpe3ZhciB5O3JldHVybiAwIT09Zy5uZWdhdGl2ZSYmMD09PXRoaXMubmVnYXRpdmU/KGcubmVnYXRpdmU9MCx5PXRoaXMuc3ViKGcpLGcubmVnYXRpdmVePTEs'@; put 'eSk6MD09PWcubmVnYXRpdmUmJjAhPT10aGlzLm5lZ2F0aXZlPyh0aGlzLm5lZ2F0aXZlPTAseT1nLnN1Yih0aGlzKSx0aGlzLm5lZ2F0aXZlPTEseSk6dGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhZGQoZyk6Zy5jbG9uZSgpLmlhZGQodGhpcyl9LHcucHJvdG90eXBlLmlz'@; put 'dWI9ZnVuY3Rpb24oZyl7aWYoMCE9PWcubmVnYXRpdmUpe2cubmVnYXRpdmU9MDt2YXIgeT10aGlzLmlhZGQoZyk7cmV0dXJuIGcubmVnYXRpdmU9MSx5Ll9ub3JtU2lnbigpfWlmKDAhPT10aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkKGcpLHRoaXMubmVn'@; put 'YXRpdmU9MSx0aGlzLl9ub3JtU2lnbigpO3ZhciBDLFQseD10aGlzLmNtcChnKTtpZigwPT09eClyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMubGVuZ3RoPTEsdGhpcy53b3Jkc1swXT0wLHRoaXM7eD4wPyhDPXRoaXMsVD1nKTooQz1nLFQ9dGhpcyk7Zm9yKHZhciBWPTAsVT0wO1U8VC5s'@; put 'ZW5ndGg7VSsrKVY9KHk9KDB8Qy53b3Jkc1tVXSktKDB8VC53b3Jkc1tVXSkrVik+PjI2LHRoaXMud29yZHNbVV09NjcxMDg4NjMmeTtmb3IoOzAhPT1WJiZVPEMubGVuZ3RoO1UrKylWPSh5PSgwfEMud29yZHNbVV0pK1YpPj4yNix0aGlzLndvcmRzW1VdPTY3MTA4ODYzJnk7aWYoMD09PVYm'@; put 'JlU8Qy5sZW5ndGgmJkMhPT10aGlzKWZvcig7VTxDLmxlbmd0aDtVKyspdGhpcy53b3Jkc1tVXT1DLndvcmRzW1VdO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxVKSxDIT09dGhpcyYmKHRoaXMubmVnYXRpdmU9MSksdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5z'@; put 'dWI9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKGcpfTt2YXIgWj1mdW5jdGlvbihnLHkseCl7dmFyIEUsbSxBLEM9Zy53b3JkcyxUPXkud29yZHMsVj14LndvcmRzLFU9MCxhZT0wfENbMF0sbmU9ODE5MSZhZSxsZT1hZT4+PjEzLHdlPTB8Q1sxXSxaZT04MTkxJndlLFFl'@; put 'PXdlPj4+MTMsYXQ9MHxDWzJdLHhlPTgxOTEmYXQsdmU9YXQ+Pj4xMyxxZT0wfENbM10samU9ODE5MSZxZSxBZT1xZT4+PjEzLEZlPTB8Q1s0XSxSZT04MTkxJkZlLEllPUZlPj4+MTMsSGU9MHxDWzVdLERlPTgxOTEmSGUsa2U9SGU+Pj4xMyxfdD0wfENbNl0sbnQ9ODE5MSZfdCxKZT1fdD4+'@; put 'PjEzLG9uPTB8Q1s3XSx5dD04MTkxJm9uLE10PW9uPj4+MTMsSXQ9MHxDWzhdLHJ0PTgxOTEmSXQsS2U9SXQ+Pj4xMyx0dD0wfENbOV0sTmU9ODE5MSZ0dCx1dD10dD4+PjEzLEp0PTB8VFswXSxMdD04MTkxJkp0LFB0PUp0Pj4+MTMsb2k9MHxUWzFdLGVuPTgxOTEmb2ksc249b2k+Pj4xMyxJ'@; put 'aT0wfFRbMl0sZG49ODE5MSZJaSxmdD1JaT4+PjEzLEZyPTB8VFszXSxadD04MTkxJkZyLGt0PUZyPj4+MTMsTG49MHxUWzRdLG90PTgxOTEmTG4senQ9TG4+Pj4xMyxuaT0wfFRbNV0sV2U9ODE5MSZuaSxBdD1uaT4+PjEzLGlyPTB8VFs2XSxodD04MTkxJmlyLEV0PWlyPj4+MTMsem49MHxU'@; put 'WzddLGFuPTgxOTEmem4sanQ9em4+Pj4xMyxkaT0wfFRbOF0sY249ODE5MSZkaSxmbj1kaT4+PjEzLERpPTB8VFs5XSxRdD04MTkxJkRpLHRuPURpPj4+MTM7eC5uZWdhdGl2ZT1nLm5lZ2F0aXZlXnkubmVnYXRpdmUseC5sZW5ndGg9MTk7dmFyIGNhPShVKyhFPU1hdGguaW11bChuZSxMdCkp'@; put 'fDApKygoODE5MSYobT0obT1NYXRoLmltdWwobmUsUHQpKStNYXRoLmltdWwobGUsTHQpfDApKTw8MTMpfDA7VT0oKEE9TWF0aC5pbXVsKGxlLFB0KSkrKG0+Pj4xMyl8MCkrKGNhPj4+MjYpfDAsY2EmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKFplLEx0KSxtPShtPU1hdGguaW11bChaZSxQdCkp'@; put 'K01hdGguaW11bChRZSxMdCl8MCxBPU1hdGguaW11bChRZSxQdCk7dmFyIHhpPShVKyhFPUUrTWF0aC5pbXVsKG5lLGVuKXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsc24pfDApK01hdGguaW11bChsZSxlbil8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSxzbil8'@; put 'MCkrKG0+Pj4xMyl8MCkrKHhpPj4+MjYpfDAseGkmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKHhlLEx0KSxtPShtPU1hdGguaW11bCh4ZSxQdCkpK01hdGguaW11bCh2ZSxMdCl8MCxBPU1hdGguaW11bCh2ZSxQdCksRT1FK01hdGguaW11bChaZSxlbil8MCxtPShtPW0rTWF0aC5pbXVsKFplLHNu'@; put 'KXwwKStNYXRoLmltdWwoUWUsZW4pfDAsQT1BK01hdGguaW11bChRZSxzbil8MDt2YXIgeXI9KFUrKEU9RStNYXRoLmltdWwobmUsZG4pfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSxmdCl8MCkrTWF0aC5pbXVsKGxlLGRuKXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVs'@; put 'KGxlLGZ0KXwwKSsobT4+PjEzKXwwKSsoeXI+Pj4yNil8MCx5ciY9NjcxMDg4NjMsRT1NYXRoLmltdWwoamUsTHQpLG09KG09TWF0aC5pbXVsKGplLFB0KSkrTWF0aC5pbXVsKEFlLEx0KXwwLEE9TWF0aC5pbXVsKEFlLFB0KSxFPUUrTWF0aC5pbXVsKHhlLGVuKXwwLG09KG09bStNYXRoLmlt'@; put 'dWwoeGUsc24pfDApK01hdGguaW11bCh2ZSxlbil8MCxBPUErTWF0aC5pbXVsKHZlLHNuKXwwLEU9RStNYXRoLmltdWwoWmUsZG4pfDAsbT0obT1tK01hdGguaW11bChaZSxmdCl8MCkrTWF0aC5pbXVsKFFlLGRuKXwwLEE9QStNYXRoLmltdWwoUWUsZnQpfDA7dmFyIEduPShVKyhFPUUrTWF0'@; put 'aC5pbXVsKG5lLFp0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsa3QpfDApK01hdGguaW11bChsZSxadCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSxrdCl8MCkrKG0+Pj4xMyl8MCkrKEduPj4+MjYpfDAsR24mPTY3MTA4ODYzLEU9TWF0aC5pbXVsKFJlLEx0'@; put 'KSxtPShtPU1hdGguaW11bChSZSxQdCkpK01hdGguaW11bChJZSxMdCl8MCxBPU1hdGguaW11bChJZSxQdCksRT1FK01hdGguaW11bChqZSxlbil8MCxtPShtPW0rTWF0aC5pbXVsKGplLHNuKXwwKStNYXRoLmltdWwoQWUsZW4pfDAsQT1BK01hdGguaW11bChBZSxzbil8MCxFPUUrTWF0aC5p'@; put 'bXVsKHhlLGRuKXwwLG09KG09bStNYXRoLmltdWwoeGUsZnQpfDApK01hdGguaW11bCh2ZSxkbil8MCxBPUErTWF0aC5pbXVsKHZlLGZ0KXwwLEU9RStNYXRoLmltdWwoWmUsWnQpfDAsbT0obT1tK01hdGguaW11bChaZSxrdCl8MCkrTWF0aC5pbXVsKFFlLFp0KXwwLEE9QStNYXRoLmltdWwo'@; put 'UWUsa3QpfDA7dmFyIEtpPShVKyhFPUUrTWF0aC5pbXVsKG5lLG90KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsenQpfDApK01hdGguaW11bChsZSxvdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSx6dCl8MCkrKG0+Pj4xMyl8MCkrKEtpPj4+MjYpfDAsS2km'@; put 'PTY3MTA4ODYzLEU9TWF0aC5pbXVsKERlLEx0KSxtPShtPU1hdGguaW11bChEZSxQdCkpK01hdGguaW11bChrZSxMdCl8MCxBPU1hdGguaW11bChrZSxQdCksRT1FK01hdGguaW11bChSZSxlbil8MCxtPShtPW0rTWF0aC5pbXVsKFJlLHNuKXwwKStNYXRoLmltdWwoSWUsZW4pfDAsQT1BK01h'@; put 'dGguaW11bChJZSxzbil8MCxFPUUrTWF0aC5pbXVsKGplLGRuKXwwLG09KG09bStNYXRoLmltdWwoamUsZnQpfDApK01hdGguaW11bChBZSxkbil8MCxBPUErTWF0aC5pbXVsKEFlLGZ0KXwwLEU9RStNYXRoLmltdWwoeGUsWnQpfDAsbT0obT1tK01hdGguaW11bCh4ZSxrdCl8MCkrTWF0aC5p'@; put 'bXVsKHZlLFp0KXwwLEE9QStNYXRoLmltdWwodmUsa3QpfDAsRT1FK01hdGguaW11bChaZSxvdCl8MCxtPShtPW0rTWF0aC5pbXVsKFplLHp0KXwwKStNYXRoLmltdWwoUWUsb3QpfDAsQT1BK01hdGguaW11bChRZSx6dCl8MDt2YXIgSnI9KFUrKEU9RStNYXRoLmltdWwobmUsV2UpfDApfDAp'@; put 'KygoODE5MSYobT0obT1tK01hdGguaW11bChuZSxBdCl8MCkrTWF0aC5pbXVsKGxlLFdlKXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKGxlLEF0KXwwKSsobT4+PjEzKXwwKSsoSnI+Pj4yNil8MCxKciY9NjcxMDg4NjMsRT1NYXRoLmltdWwobnQsTHQpLG09KG09TWF0aC5pbXVsKG50'@; put 'LFB0KSkrTWF0aC5pbXVsKEplLEx0KXwwLEE9TWF0aC5pbXVsKEplLFB0KSxFPUUrTWF0aC5pbXVsKERlLGVuKXwwLG09KG09bStNYXRoLmltdWwoRGUsc24pfDApK01hdGguaW11bChrZSxlbil8MCxBPUErTWF0aC5pbXVsKGtlLHNuKXwwLEU9RStNYXRoLmltdWwoUmUsZG4pfDAsbT0obT1t'@; put 'K01hdGguaW11bChSZSxmdCl8MCkrTWF0aC5pbXVsKEllLGRuKXwwLEE9QStNYXRoLmltdWwoSWUsZnQpfDAsRT1FK01hdGguaW11bChqZSxadCl8MCxtPShtPW0rTWF0aC5pbXVsKGplLGt0KXwwKStNYXRoLmltdWwoQWUsWnQpfDAsQT1BK01hdGguaW11bChBZSxrdCl8MCxFPUUrTWF0aC5p'@; put 'bXVsKHhlLG90KXwwLG09KG09bStNYXRoLmltdWwoeGUsenQpfDApK01hdGguaW11bCh2ZSxvdCl8MCxBPUErTWF0aC5pbXVsKHZlLHp0KXwwLEU9RStNYXRoLmltdWwoWmUsV2UpfDAsbT0obT1tK01hdGguaW11bChaZSxBdCl8MCkrTWF0aC5pbXVsKFFlLFdlKXwwLEE9QStNYXRoLmltdWwo'@; put 'UWUsQXQpfDA7dmFyIFFyPShVKyhFPUUrTWF0aC5pbXVsKG5lLGh0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsRXQpfDApK01hdGguaW11bChsZSxodCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSxFdCl8MCkrKG0+Pj4xMyl8MCkrKFFyPj4+MjYpfDAsUXIm'@; put 'PTY3MTA4ODYzLEU9TWF0aC5pbXVsKHl0LEx0KSxtPShtPU1hdGguaW11bCh5dCxQdCkpK01hdGguaW11bChNdCxMdCl8MCxBPU1hdGguaW11bChNdCxQdCksRT1FK01hdGguaW11bChudCxlbil8MCxtPShtPW0rTWF0aC5pbXVsKG50LHNuKXwwKStNYXRoLmltdWwoSmUsZW4pfDAsQT1BK01h'@; put 'dGguaW11bChKZSxzbil8MCxFPUUrTWF0aC5pbXVsKERlLGRuKXwwLG09KG09bStNYXRoLmltdWwoRGUsZnQpfDApK01hdGguaW11bChrZSxkbil8MCxBPUErTWF0aC5pbXVsKGtlLGZ0KXwwLEU9RStNYXRoLmltdWwoUmUsWnQpfDAsbT0obT1tK01hdGguaW11bChSZSxrdCl8MCkrTWF0aC5p'@; put 'bXVsKEllLFp0KXwwLEE9QStNYXRoLmltdWwoSWUsa3QpfDAsRT1FK01hdGguaW11bChqZSxvdCl8MCxtPShtPW0rTWF0aC5pbXVsKGplLHp0KXwwKStNYXRoLmltdWwoQWUsb3QpfDAsQT1BK01hdGguaW11bChBZSx6dCl8MCxFPUUrTWF0aC5pbXVsKHhlLFdlKXwwLG09KG09bStNYXRoLmlt'@; put 'dWwoeGUsQXQpfDApK01hdGguaW11bCh2ZSxXZSl8MCxBPUErTWF0aC5pbXVsKHZlLEF0KXwwLEU9RStNYXRoLmltdWwoWmUsaHQpfDAsbT0obT1tK01hdGguaW11bChaZSxFdCl8MCkrTWF0aC5pbXVsKFFlLGh0KXwwLEE9QStNYXRoLmltdWwoUWUsRXQpfDA7dmFyIE5pPShVKyhFPUUrTWF0'@; put 'aC5pbXVsKG5lLGFuKXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsanQpfDApK01hdGguaW11bChsZSxhbil8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSxqdCl8MCkrKG0+Pj4xMyl8MCkrKE5pPj4+MjYpfDAsTmkmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKHJ0LEx0'@; put 'KSxtPShtPU1hdGguaW11bChydCxQdCkpK01hdGguaW11bChLZSxMdCl8MCxBPU1hdGguaW11bChLZSxQdCksRT1FK01hdGguaW11bCh5dCxlbil8MCxtPShtPW0rTWF0aC5pbXVsKHl0LHNuKXwwKStNYXRoLmltdWwoTXQsZW4pfDAsQT1BK01hdGguaW11bChNdCxzbil8MCxFPUUrTWF0aC5p'@; put 'bXVsKG50LGRuKXwwLG09KG09bStNYXRoLmltdWwobnQsZnQpfDApK01hdGguaW11bChKZSxkbil8MCxBPUErTWF0aC5pbXVsKEplLGZ0KXwwLEU9RStNYXRoLmltdWwoRGUsWnQpfDAsbT0obT1tK01hdGguaW11bChEZSxrdCl8MCkrTWF0aC5pbXVsKGtlLFp0KXwwLEE9QStNYXRoLmltdWwo'@; put 'a2Usa3QpfDAsRT1FK01hdGguaW11bChSZSxvdCl8MCxtPShtPW0rTWF0aC5pbXVsKFJlLHp0KXwwKStNYXRoLmltdWwoSWUsb3QpfDAsQT1BK01hdGguaW11bChJZSx6dCl8MCxFPUUrTWF0aC5pbXVsKGplLFdlKXwwLG09KG09bStNYXRoLmltdWwoamUsQXQpfDApK01hdGguaW11bChBZSxX'@; put 'ZSl8MCxBPUErTWF0aC5pbXVsKEFlLEF0KXwwLEU9RStNYXRoLmltdWwoeGUsaHQpfDAsbT0obT1tK01hdGguaW11bCh4ZSxFdCl8MCkrTWF0aC5pbXVsKHZlLGh0KXwwLEE9QStNYXRoLmltdWwodmUsRXQpfDAsRT1FK01hdGguaW11bChaZSxhbil8MCxtPShtPW0rTWF0aC5pbXVsKFplLGp0'@; put 'KXwwKStNYXRoLmltdWwoUWUsYW4pfDAsQT1BK01hdGguaW11bChRZSxqdCl8MDt2YXIgSGk9KFUrKEU9RStNYXRoLmltdWwobmUsY24pfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSxmbil8MCkrTWF0aC5pbXVsKGxlLGNuKXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVs'@; put 'KGxlLGZuKXwwKSsobT4+PjEzKXwwKSsoSGk+Pj4yNil8MCxIaSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsTHQpLG09KG09TWF0aC5pbXVsKE5lLFB0KSkrTWF0aC5pbXVsKHV0LEx0KXwwLEE9TWF0aC5pbXVsKHV0LFB0KSxFPUUrTWF0aC5pbXVsKHJ0LGVuKXwwLG09KG09bStNYXRoLmlt'@; put 'dWwocnQsc24pfDApK01hdGguaW11bChLZSxlbil8MCxBPUErTWF0aC5pbXVsKEtlLHNuKXwwLEU9RStNYXRoLmltdWwoeXQsZG4pfDAsbT0obT1tK01hdGguaW11bCh5dCxmdCl8MCkrTWF0aC5pbXVsKE10LGRuKXwwLEE9QStNYXRoLmltdWwoTXQsZnQpfDAsRT1FK01hdGguaW11bChudCxa'@; put 'dCl8MCxtPShtPW0rTWF0aC5pbXVsKG50LGt0KXwwKStNYXRoLmltdWwoSmUsWnQpfDAsQT1BK01hdGguaW11bChKZSxrdCl8MCxFPUUrTWF0aC5pbXVsKERlLG90KXwwLG09KG09bStNYXRoLmltdWwoRGUsenQpfDApK01hdGguaW11bChrZSxvdCl8MCxBPUErTWF0aC5pbXVsKGtlLHp0KXww'@; put 'LEU9RStNYXRoLmltdWwoUmUsV2UpfDAsbT0obT1tK01hdGguaW11bChSZSxBdCl8MCkrTWF0aC5pbXVsKEllLFdlKXwwLEE9QStNYXRoLmltdWwoSWUsQXQpfDAsRT1FK01hdGguaW11bChqZSxodCl8MCxtPShtPW0rTWF0aC5pbXVsKGplLEV0KXwwKStNYXRoLmltdWwoQWUsaHQpfDAsQT1B'@; put 'K01hdGguaW11bChBZSxFdCl8MCxFPUUrTWF0aC5pbXVsKHhlLGFuKXwwLG09KG09bStNYXRoLmltdWwoeGUsanQpfDApK01hdGguaW11bCh2ZSxhbil8MCxBPUErTWF0aC5pbXVsKHZlLGp0KXwwLEU9RStNYXRoLmltdWwoWmUsY24pfDAsbT0obT1tK01hdGguaW11bChaZSxmbil8MCkrTWF0'@; put 'aC5pbXVsKFFlLGNuKXwwLEE9QStNYXRoLmltdWwoUWUsZm4pfDA7dmFyIElhPShVKyhFPUUrTWF0aC5pbXVsKG5lLFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsdG4pfDApK01hdGguaW11bChsZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSx0bil8'@; put 'MCkrKG0+Pj4xMyl8MCkrKElhPj4+MjYpfDAsSWEmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLGVuKSxtPShtPU1hdGguaW11bChOZSxzbikpK01hdGguaW11bCh1dCxlbil8MCxBPU1hdGguaW11bCh1dCxzbiksRT1FK01hdGguaW11bChydCxkbil8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LGZ0'@; put 'KXwwKStNYXRoLmltdWwoS2UsZG4pfDAsQT1BK01hdGguaW11bChLZSxmdCl8MCxFPUUrTWF0aC5pbXVsKHl0LFp0KXwwLG09KG09bStNYXRoLmltdWwoeXQsa3QpfDApK01hdGguaW11bChNdCxadCl8MCxBPUErTWF0aC5pbXVsKE10LGt0KXwwLEU9RStNYXRoLmltdWwobnQsb3QpfDAsbT0o'@; put 'bT1tK01hdGguaW11bChudCx6dCl8MCkrTWF0aC5pbXVsKEplLG90KXwwLEE9QStNYXRoLmltdWwoSmUsenQpfDAsRT1FK01hdGguaW11bChEZSxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKERlLEF0KXwwKStNYXRoLmltdWwoa2UsV2UpfDAsQT1BK01hdGguaW11bChrZSxBdCl8MCxFPUUrTWF0'@; put 'aC5pbXVsKFJlLGh0KXwwLG09KG09bStNYXRoLmltdWwoUmUsRXQpfDApK01hdGguaW11bChJZSxodCl8MCxBPUErTWF0aC5pbXVsKEllLEV0KXwwLEU9RStNYXRoLmltdWwoamUsYW4pfDAsbT0obT1tK01hdGguaW11bChqZSxqdCl8MCkrTWF0aC5pbXVsKEFlLGFuKXwwLEE9QStNYXRoLmlt'@; put 'dWwoQWUsanQpfDAsRT1FK01hdGguaW11bCh4ZSxjbil8MCxtPShtPW0rTWF0aC5pbXVsKHhlLGZuKXwwKStNYXRoLmltdWwodmUsY24pfDAsQT1BK01hdGguaW11bCh2ZSxmbil8MDt2YXIgUHI9KFUrKEU9RStNYXRoLmltdWwoWmUsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11'@; put 'bChaZSx0bil8MCkrTWF0aC5pbXVsKFFlLFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKFFlLHRuKXwwKSsobT4+PjEzKXwwKSsoUHI+Pj4yNil8MCxQciY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsZG4pLG09KG09TWF0aC5pbXVsKE5lLGZ0KSkrTWF0aC5pbXVsKHV0LGRuKXww'@; put 'LEE9TWF0aC5pbXVsKHV0LGZ0KSxFPUUrTWF0aC5pbXVsKHJ0LFp0KXwwLG09KG09bStNYXRoLmltdWwocnQsa3QpfDApK01hdGguaW11bChLZSxadCl8MCxBPUErTWF0aC5pbXVsKEtlLGt0KXwwLEU9RStNYXRoLmltdWwoeXQsb3QpfDAsbT0obT1tK01hdGguaW11bCh5dCx6dCl8MCkrTWF0'@; put 'aC5pbXVsKE10LG90KXwwLEE9QStNYXRoLmltdWwoTXQsenQpfDAsRT1FK01hdGguaW11bChudCxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKG50LEF0KXwwKStNYXRoLmltdWwoSmUsV2UpfDAsQT1BK01hdGguaW11bChKZSxBdCl8MCxFPUUrTWF0aC5pbXVsKERlLGh0KXwwLG09KG09bStNYXRo'@; put 'LmltdWwoRGUsRXQpfDApK01hdGguaW11bChrZSxodCl8MCxBPUErTWF0aC5pbXVsKGtlLEV0KXwwLEU9RStNYXRoLmltdWwoUmUsYW4pfDAsbT0obT1tK01hdGguaW11bChSZSxqdCl8MCkrTWF0aC5pbXVsKEllLGFuKXwwLEE9QStNYXRoLmltdWwoSWUsanQpfDAsRT1FK01hdGguaW11bChq'@; put 'ZSxjbil8MCxtPShtPW0rTWF0aC5pbXVsKGplLGZuKXwwKStNYXRoLmltdWwoQWUsY24pfDAsQT1BK01hdGguaW11bChBZSxmbil8MDt2YXIgWWk9KFUrKEU9RStNYXRoLmltdWwoeGUsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bCh4ZSx0bil8MCkrTWF0aC5pbXVsKHZlLFF0'@; put 'KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKHZlLHRuKXwwKSsobT4+PjEzKXwwKSsoWWk+Pj4yNil8MCxZaSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsWnQpLG09KG09TWF0aC5pbXVsKE5lLGt0KSkrTWF0aC5pbXVsKHV0LFp0KXwwLEE9TWF0aC5pbXVsKHV0LGt0KSxFPUUrTWF0'@; put 'aC5pbXVsKHJ0LG90KXwwLG09KG09bStNYXRoLmltdWwocnQsenQpfDApK01hdGguaW11bChLZSxvdCl8MCxBPUErTWF0aC5pbXVsKEtlLHp0KXwwLEU9RStNYXRoLmltdWwoeXQsV2UpfDAsbT0obT1tK01hdGguaW11bCh5dCxBdCl8MCkrTWF0aC5pbXVsKE10LFdlKXwwLEE9QStNYXRoLmlt'@; put 'dWwoTXQsQXQpfDAsRT1FK01hdGguaW11bChudCxodCl8MCxtPShtPW0rTWF0aC5pbXVsKG50LEV0KXwwKStNYXRoLmltdWwoSmUsaHQpfDAsQT1BK01hdGguaW11bChKZSxFdCl8MCxFPUUrTWF0aC5pbXVsKERlLGFuKXwwLG09KG09bStNYXRoLmltdWwoRGUsanQpfDApK01hdGguaW11bChr'@; put 'ZSxhbil8MCxBPUErTWF0aC5pbXVsKGtlLGp0KXwwLEU9RStNYXRoLmltdWwoUmUsY24pfDAsbT0obT1tK01hdGguaW11bChSZSxmbil8MCkrTWF0aC5pbXVsKEllLGNuKXwwLEE9QStNYXRoLmltdWwoSWUsZm4pfDA7dmFyIGZhPShVKyhFPUUrTWF0aC5pbXVsKGplLFF0KXwwKXwwKSsoKDgx'@; put 'OTEmKG09KG09bStNYXRoLmltdWwoamUsdG4pfDApK01hdGguaW11bChBZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChBZSx0bil8MCkrKG0+Pj4xMyl8MCkrKGZhPj4+MjYpfDAsZmEmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLG90KSxtPShtPU1hdGguaW11bChOZSx6dCkp'@; put 'K01hdGguaW11bCh1dCxvdCl8MCxBPU1hdGguaW11bCh1dCx6dCksRT1FK01hdGguaW11bChydCxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LEF0KXwwKStNYXRoLmltdWwoS2UsV2UpfDAsQT1BK01hdGguaW11bChLZSxBdCl8MCxFPUUrTWF0aC5pbXVsKHl0LGh0KXwwLG09KG09bStNYXRo'@; put 'LmltdWwoeXQsRXQpfDApK01hdGguaW11bChNdCxodCl8MCxBPUErTWF0aC5pbXVsKE10LEV0KXwwLEU9RStNYXRoLmltdWwobnQsYW4pfDAsbT0obT1tK01hdGguaW11bChudCxqdCl8MCkrTWF0aC5pbXVsKEplLGFuKXwwLEE9QStNYXRoLmltdWwoSmUsanQpfDAsRT1FK01hdGguaW11bChE'@; put 'ZSxjbil8MCxtPShtPW0rTWF0aC5pbXVsKERlLGZuKXwwKStNYXRoLmltdWwoa2UsY24pfDAsQT1BK01hdGguaW11bChrZSxmbil8MDt2YXIgbnI9KFUrKEU9RStNYXRoLmltdWwoUmUsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChSZSx0bil8MCkrTWF0aC5pbXVsKEllLFF0'@; put 'KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKEllLHRuKXwwKSsobT4+PjEzKXwwKSsobnI+Pj4yNil8MCxuciY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsV2UpLG09KG09TWF0aC5pbXVsKE5lLEF0KSkrTWF0aC5pbXVsKHV0LFdlKXwwLEE9TWF0aC5pbXVsKHV0LEF0KSxFPUUrTWF0'@; put 'aC5pbXVsKHJ0LGh0KXwwLG09KG09bStNYXRoLmltdWwocnQsRXQpfDApK01hdGguaW11bChLZSxodCl8MCxBPUErTWF0aC5pbXVsKEtlLEV0KXwwLEU9RStNYXRoLmltdWwoeXQsYW4pfDAsbT0obT1tK01hdGguaW11bCh5dCxqdCl8MCkrTWF0aC5pbXVsKE10LGFuKXwwLEE9QStNYXRoLmlt'@; put 'dWwoTXQsanQpfDAsRT1FK01hdGguaW11bChudCxjbil8MCxtPShtPW0rTWF0aC5pbXVsKG50LGZuKXwwKStNYXRoLmltdWwoSmUsY24pfDAsQT1BK01hdGguaW11bChKZSxmbil8MDt2YXIgb2E9KFUrKEU9RStNYXRoLmltdWwoRGUsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11'@; put 'bChEZSx0bil8MCkrTWF0aC5pbXVsKGtlLFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKGtlLHRuKXwwKSsobT4+PjEzKXwwKSsob2E+Pj4yNil8MCxvYSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsaHQpLG09KG09TWF0aC5pbXVsKE5lLEV0KSkrTWF0aC5pbXVsKHV0LGh0KXww'@; put 'LEE9TWF0aC5pbXVsKHV0LEV0KSxFPUUrTWF0aC5pbXVsKHJ0LGFuKXwwLG09KG09bStNYXRoLmltdWwocnQsanQpfDApK01hdGguaW11bChLZSxhbil8MCxBPUErTWF0aC5pbXVsKEtlLGp0KXwwLEU9RStNYXRoLmltdWwoeXQsY24pfDAsbT0obT1tK01hdGguaW11bCh5dCxmbil8MCkrTWF0'@; put 'aC5pbXVsKE10LGNuKXwwLEE9QStNYXRoLmltdWwoTXQsZm4pfDA7dmFyIF9hPShVKyhFPUUrTWF0aC5pbXVsKG50LFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobnQsdG4pfDApK01hdGguaW11bChKZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChKZSx0bil8'@; put 'MCkrKG0+Pj4xMyl8MCkrKF9hPj4+MjYpfDAsX2EmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLGFuKSxtPShtPU1hdGguaW11bChOZSxqdCkpK01hdGguaW11bCh1dCxhbil8MCxBPU1hdGguaW11bCh1dCxqdCksRT1FK01hdGguaW11bChydCxjbil8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LGZu'@; put 'KXwwKStNYXRoLmltdWwoS2UsY24pfDAsQT1BK01hdGguaW11bChLZSxmbil8MDt2YXIgT2E9KFUrKEU9RStNYXRoLmltdWwoeXQsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bCh5dCx0bil8MCkrTWF0aC5pbXVsKE10LFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVs'@; put 'KE10LHRuKXwwKSsobT4+PjEzKXwwKSsoT2E+Pj4yNil8MCxPYSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsY24pLG09KG09TWF0aC5pbXVsKE5lLGZuKSkrTWF0aC5pbXVsKHV0LGNuKXwwLEE9TWF0aC5pbXVsKHV0LGZuKTt2YXIgTmE9KFUrKEU9RStNYXRoLmltdWwocnQsUXQpfDApfDAp'@; put 'KygoODE5MSYobT0obT1tK01hdGguaW11bChydCx0bil8MCkrTWF0aC5pbXVsKEtlLFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKEtlLHRuKXwwKSsobT4+PjEzKXwwKSsoTmE+Pj4yNil8MCxOYSY9NjcxMDg4NjM7dmFyIGVpPShVKyhFPU1hdGguaW11bChOZSxRdCkpfDApKygo'@; put 'ODE5MSYobT0obT1NYXRoLmltdWwoTmUsdG4pKStNYXRoLmltdWwodXQsUXQpfDApKTw8MTMpfDA7cmV0dXJuIFU9KChBPU1hdGguaW11bCh1dCx0bikpKyhtPj4+MTMpfDApKyhlaT4+PjI2KXwwLGVpJj02NzEwODg2MyxWWzBdPWNhLFZbMV09eGksVlsyXT15cixWWzNdPUduLFZbNF09S2ks'@; put 'Vls1XT1KcixWWzZdPVFyLFZbN109TmksVls4XT1IaSxWWzldPUlhLFZbMTBdPVByLFZbMTFdPVlpLFZbMTJdPWZhLFZbMTNdPW5yLFZbMTRdPW9hLFZbMTVdPV9hLFZbMTZdPU9hLFZbMTddPU5hLFZbMThdPWVpLDAhPT1VJiYoVlsxOV09VSx4Lmxlbmd0aCsrKSx4fTtmdW5jdGlvbiBRKHos'@; put 'Zyx5KXtyZXR1cm4obmV3IHEpLm11bHAoeixnLHkpfWZ1bmN0aW9uIHEoeixnKXt0aGlzLng9eix0aGlzLnk9Z31NYXRoLmltdWx8fChaPVcpLHcucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKGcseSl7dmFyIHgsQz10aGlzLmxlbmd0aCtnLmxlbmd0aDtyZXR1cm4geD0xMD09PXRoaXMubGVu'@; put 'Z3RoJiYxMD09PWcubGVuZ3RoP1oodGhpcyxnLHkpOkM8NjM/Vyh0aGlzLGcseSk6QzwxMDI0P2Z1bmN0aW9uIFgoeixnLHkpe3kubmVnYXRpdmU9Zy5uZWdhdGl2ZV56Lm5lZ2F0aXZlLHkubGVuZ3RoPXoubGVuZ3RoK2cubGVuZ3RoO2Zvcih2YXIgeD0wLEM9MCxUPTA7VDx5Lmxlbmd0aC0x'@; put 'O1QrKyl7dmFyIFY9QztDPTA7Zm9yKHZhciBVPTY3MTA4ODYzJngsRT1NYXRoLm1pbihULGcubGVuZ3RoLTEpLG09TWF0aC5tYXgoMCxULXoubGVuZ3RoKzEpO208PUU7bSsrKXt2YXIgbGU9KDB8ei53b3Jkc1tULW1dKSooMHxnLndvcmRzW21dKSx3ZT02NzEwODg2MyZsZTtVPTY3MTA4ODYz'@; put 'Jih3ZT13ZStVfDApLEMrPShWPShWPVYrKGxlLzY3MTA4ODY0fDApfDApKyh3ZT4+PjI2KXwwKT4+PjI2LFYmPTY3MTA4ODYzfXkud29yZHNbVF09VSx4PVYsVj1DfXJldHVybiAwIT09eD95LndvcmRzW1RdPXg6eS5sZW5ndGgtLSx5LnN0cmlwKCl9KHRoaXMsZyx5KTpRKHRoaXMsZyx5KSx4'@; put 'fSxxLnByb3RvdHlwZS5tYWtlUkJUPWZ1bmN0aW9uKGcpe2Zvcih2YXIgeT1uZXcgQXJyYXkoZykseD13LnByb3RvdHlwZS5fY291bnRCaXRzKGcpLTEsQz0wO0M8ZztDKyspeVtDXT10aGlzLnJldkJpbihDLHgsZyk7cmV0dXJuIHl9LHEucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbihnLHks'@; put 'eCl7aWYoMD09PWd8fGc9PT14LTEpcmV0dXJuIGc7Zm9yKHZhciBDPTAsVD0wO1Q8eTtUKyspQ3w9KDEmZyk8PHktVC0xLGc+Pj0xO3JldHVybiBDfSxxLnByb3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKGcseSx4LEMsVCxWKXtmb3IodmFyIFU9MDtVPFY7VSsrKUNbVV09eVtnW1VdXSxUW1Vd'@; put 'PXhbZ1tVXV19LHEucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbihnLHkseCxDLFQsVil7dGhpcy5wZXJtdXRlKFYsZyx5LHgsQyxUKTtmb3IodmFyIFU9MTtVPFQ7VTw8PTEpZm9yKHZhciBFPVU8PDEsbT1NYXRoLmNvcygyKk1hdGguUEkvRSksQT1NYXRoLnNpbigyKk1hdGguUEkvRSks'@; put 'YWU9MDthZTxUO2FlKz1FKWZvcih2YXIgbmU9bSxsZT1BLHdlPTA7d2U8VTt3ZSsrKXt2YXIgWmU9eFthZSt3ZV0sUWU9Q1thZSt3ZV0sYXQ9eFthZSt3ZStVXSx4ZT1DW2FlK3dlK1VdLHZlPW5lKmF0LWxlKnhlO3hlPW5lKnhlK2xlKmF0LHhbYWUrd2VdPVplKyhhdD12ZSksQ1thZSt3ZV09'@; put 'UWUreGUseFthZSt3ZStVXT1aZS1hdCxDW2FlK3dlK1VdPVFlLXhlLHdlIT09RSYmKHZlPW0qbmUtQSpsZSxsZT1tKmxlK0EqbmUsbmU9dmUpfX0scS5wcm90b3R5cGUuZ3Vlc3NMZW4xM2I9ZnVuY3Rpb24oZyx5KXt2YXIgeD0xfE1hdGgubWF4KHksZyksQz0xJngsVD0wO2Zvcih4PXgvMnww'@; put 'O3g7eD4+Pj0xKVQrKztyZXR1cm4gMTw8VCsxK0N9LHEucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbihnLHkseCl7aWYoISh4PD0xKSlmb3IodmFyIEM9MDtDPHgvMjtDKyspe3ZhciBUPWdbQ107Z1tDXT1nW3gtQy0xXSxnW3gtQy0xXT1ULFQ9eVtDXSx5W0NdPS15W3gtQy0xXSx5W3gt'@; put 'Qy0xXT0tVH19LHEucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbihnLHkpe2Zvcih2YXIgeD0wLEM9MDtDPHkvMjtDKyspe3ZhciBUPTgxOTIqTWF0aC5yb3VuZChnWzIqQysxXS95KStNYXRoLnJvdW5kKGdbMipDXS95KSt4O2dbQ109NjcxMDg4NjMmVCx4PVQ8NjcxMDg4NjQ/MDpU'@; put 'LzY3MTA4ODY0fDB9cmV0dXJuIGd9LHEucHJvdG90eXBlLmNvbnZlcnQxM2I9ZnVuY3Rpb24oZyx5LHgsQyl7Zm9yKHZhciBUPTAsVj0wO1Y8eTtWKyspeFsyKlZdPTgxOTEmKFQrPTB8Z1tWXSkseFsyKlYrMV09ODE5MSYoVD4+Pj0xMyksVD4+Pj0xMztmb3IoVj0yKnk7VjxDOysrVil4W1Zd'@; put 'PTA7cCgwPT09VCkscCghKC04MTkyJlQpKX0scS5wcm90b3R5cGUuc3R1Yj1mdW5jdGlvbihnKXtmb3IodmFyIHk9bmV3IEFycmF5KGcpLHg9MDt4PGc7eCsrKXlbeF09MDtyZXR1cm4geX0scS5wcm90b3R5cGUubXVscD1mdW5jdGlvbihnLHkseCl7dmFyIEM9Mip0aGlzLmd1ZXNzTGVuMTNi'@; put 'KGcubGVuZ3RoLHkubGVuZ3RoKSxUPXRoaXMubWFrZVJCVChDKSxWPXRoaXMuc3R1YihDKSxVPW5ldyBBcnJheShDKSxFPW5ldyBBcnJheShDKSxtPW5ldyBBcnJheShDKSxBPW5ldyBBcnJheShDKSxhZT1uZXcgQXJyYXkoQyksbmU9bmV3IEFycmF5KEMpLGxlPXgud29yZHM7bGUubGVuZ3Ro'@; put 'PUMsdGhpcy5jb252ZXJ0MTNiKGcud29yZHMsZy5sZW5ndGgsVSxDKSx0aGlzLmNvbnZlcnQxM2IoeS53b3Jkcyx5Lmxlbmd0aCxBLEMpLHRoaXMudHJhbnNmb3JtKFUsVixFLG0sQyxUKSx0aGlzLnRyYW5zZm9ybShBLFYsYWUsbmUsQyxUKTtmb3IodmFyIHdlPTA7d2U8Qzt3ZSsrKXt2YXIg'@; put 'WmU9RVt3ZV0qYWVbd2VdLW1bd2VdKm5lW3dlXTttW3dlXT1FW3dlXSpuZVt3ZV0rbVt3ZV0qYWVbd2VdLEVbd2VdPVplfXJldHVybiB0aGlzLmNvbmp1Z2F0ZShFLG0sQyksdGhpcy50cmFuc2Zvcm0oRSxtLGxlLFYsQyxUKSx0aGlzLmNvbmp1Z2F0ZShsZSxWLEMpLHRoaXMubm9ybWFsaXpl'@; put 'MTNiKGxlLEMpLHgubmVnYXRpdmU9Zy5uZWdhdGl2ZV55Lm5lZ2F0aXZlLHgubGVuZ3RoPWcubGVuZ3RoK3kubGVuZ3RoLHguc3RyaXAoKX0sdy5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGcpe3ZhciB5PW5ldyB3KG51bGwpO3JldHVybiB5LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtn'@; put 'Lmxlbmd0aCksdGhpcy5tdWxUbyhnLHkpfSx3LnByb3RvdHlwZS5tdWxmPWZ1bmN0aW9uKGcpe3ZhciB5PW5ldyB3KG51bGwpO3JldHVybiB5LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtnLmxlbmd0aCksUSh0aGlzLGcseSl9LHcucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oZyl7cmV0'@; put 'dXJuIHRoaXMuY2xvbmUoKS5tdWxUbyhnLHRoaXMpfSx3LnByb3RvdHlwZS5pbXVsbj1mdW5jdGlvbihnKXtwKCJudW1iZXIiPT10eXBlb2YgZykscChnPDY3MTA4ODY0KTtmb3IodmFyIHk9MCx4PTA7eDx0aGlzLmxlbmd0aDt4Kyspe3ZhciBDPSgwfHRoaXMud29yZHNbeF0pKmcsVD0oNjcx'@; put 'MDg4NjMmQykrKDY3MTA4ODYzJnkpO3k+Pj0yNix5Kz1DLzY3MTA4ODY0fDAseSs9VD4+PjI2LHRoaXMud29yZHNbeF09NjcxMDg4NjMmVH1yZXR1cm4gMCE9PXkmJih0aGlzLndvcmRzW3hdPXksdGhpcy5sZW5ndGgrKyksdGhpc30sdy5wcm90b3R5cGUubXVsbj1mdW5jdGlvbihnKXtyZXR1'@; put 'cm4gdGhpcy5jbG9uZSgpLmltdWxuKGcpfSx3LnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdWwodGhpcyl9LHcucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbXVsKHRoaXMuY2xvbmUoKSl9LHcucHJvdG90eXBlLnBvdz1mdW5jdGlvbihnKXt2'@; put 'YXIgeT1mdW5jdGlvbiBCKHope2Zvcih2YXIgZz1uZXcgQXJyYXkoei5iaXRMZW5ndGgoKSkseT0wO3k8Zy5sZW5ndGg7eSsrKXt2YXIgQz15JTI2O2dbeV09KHoud29yZHNbeS8yNnwwXSYxPDxDKT4+PkN9cmV0dXJuIGd9KGcpO2lmKDA9PT15Lmxlbmd0aClyZXR1cm4gbmV3IHcoMSk7Zm9y'@; put 'KHZhciB4PXRoaXMsQz0wO0M8eS5sZW5ndGgmJjA9PT15W0NdO0MrKyx4PXguc3FyKCkpO2lmKCsrQzx5Lmxlbmd0aClmb3IodmFyIFQ9eC5zcXIoKTtDPHkubGVuZ3RoO0MrKyxUPVQuc3FyKCkpMCE9PXlbQ10mJih4PXgubXVsKFQpKTtyZXR1cm4geH0sdy5wcm90b3R5cGUuaXVzaGxuPWZ1'@; put 'bmN0aW9uKGcpe3AoIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgVCx5PWclMjYseD0oZy15KS8yNixDPTY3MTA4ODYzPj4+MjYteTw8MjYteTtpZigwIT09eSl7dmFyIFY9MDtmb3IoVD0wO1Q8dGhpcy5sZW5ndGg7VCsrKXt2YXIgVT10aGlzLndvcmRzW1RdJkM7dGhpcy53b3Jkc1tU'@; put 'XT0oMHx0aGlzLndvcmRzW1RdKS1VPDx5fFYsVj1VPj4+MjYteX1WJiYodGhpcy53b3Jkc1tUXT1WLHRoaXMubGVuZ3RoKyspfWlmKDAhPT14KXtmb3IoVD10aGlzLmxlbmd0aC0xO1Q+PTA7VC0tKXRoaXMud29yZHNbVCt4XT10aGlzLndvcmRzW1RdO2ZvcihUPTA7VDx4O1QrKyl0aGlzLndv'@; put 'cmRzW1RdPTA7dGhpcy5sZW5ndGgrPXh9cmV0dXJuIHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuaXNobG49ZnVuY3Rpb24oZyl7cmV0dXJuIHAoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaGxuKGcpfSx3LnByb3RvdHlwZS5pdXNocm49ZnVuY3Rpb24oZyx5LHgpe3ZhciBDO3AoIm51'@; put 'bWJlciI9PXR5cGVvZiBnJiZnPj0wKSxDPXk/KHkteSUyNikvMjY6MDt2YXIgVD1nJTI2LFY9TWF0aC5taW4oKGctVCkvMjYsdGhpcy5sZW5ndGgpLFU9NjcxMDg4NjNeNjcxMDg4NjM+Pj5UPDxULEU9eDtpZihDLT1WLEM9TWF0aC5tYXgoMCxDKSxFKXtmb3IodmFyIG09MDttPFY7bSsrKUUu'@; put 'd29yZHNbbV09dGhpcy53b3Jkc1ttXTtFLmxlbmd0aD1WfWlmKDAhPT1WKWlmKHRoaXMubGVuZ3RoPlYpZm9yKHRoaXMubGVuZ3RoLT1WLG09MDttPHRoaXMubGVuZ3RoO20rKyl0aGlzLndvcmRzW21dPXRoaXMud29yZHNbbStWXTtlbHNlIHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0x'@; put 'O3ZhciBBPTA7Zm9yKG09dGhpcy5sZW5ndGgtMTttPj0wJiYoMCE9PUF8fG0+PUMpO20tLSl7dmFyIGFlPTB8dGhpcy53b3Jkc1ttXTt0aGlzLndvcmRzW21dPUE8PDI2LVR8YWU+Pj5ULEE9YWUmVX1yZXR1cm4gRSYmMCE9PUEmJihFLndvcmRzW0UubGVuZ3RoKytdPUEpLDA9PT10aGlzLmxl'@; put 'bmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLmlzaHJuPWZ1bmN0aW9uKGcseSx4KXtyZXR1cm4gcCgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4oZyx5LHgpfSx3LnByb3RvdHlwZS5zaGxuPWZ1bmN0aW9uKGcpe3Jl'@; put 'dHVybiB0aGlzLmNsb25lKCkuaXNobG4oZyl9LHcucHJvdG90eXBlLnVzaGxuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaGxuKGcpfSx3LnByb3RvdHlwZS5zaHJuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaXNocm4oZyl9LHcucHJvdG90eXBlLnVzaHJu'@; put 'PWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaHJuKGcpfSx3LnByb3RvdHlwZS50ZXN0bj1mdW5jdGlvbihnKXtwKCJudW1iZXIiPT10eXBlb2YgZyYmZz49MCk7dmFyIHk9ZyUyNix4PShnLXkpLzI2O3JldHVybiEodGhpcy5sZW5ndGg8PXh8fCEodGhpcy53b3Jkc1t4XSYx'@; put 'PDx5KSl9LHcucHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbihnKXtwKCJudW1iZXIiPT10eXBlb2YgZyYmZz49MCk7dmFyIHk9ZyUyNix4PShnLXkpLzI2O3JldHVybiBwKDA9PT10aGlzLm5lZ2F0aXZlLCJpbWFza24gd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlIG51bWJlcnMiKSx0aGlzLmxl'@; put 'bmd0aDw9eD90aGlzOigwIT09eSYmeCsrLHRoaXMubGVuZ3RoPU1hdGgubWluKHgsdGhpcy5sZW5ndGgpLDAhPT15JiYodGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSY9NjcxMDg4NjNeNjcxMDg4NjM+Pj55PDx5KSx0aGlzLnN0cmlwKCkpfSx3LnByb3RvdHlwZS5tYXNrbj1mdW5jdGlvbihn'@; put 'KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbihnKX0sdy5wcm90b3R5cGUuaWFkZG49ZnVuY3Rpb24oZyl7cmV0dXJuIHAoIm51bWJlciI9PXR5cGVvZiBnKSxwKGc8NjcxMDg4NjQpLGc8MD90aGlzLmlzdWJuKC1nKTowIT09dGhpcy5uZWdhdGl2ZT8xPT09dGhpcy5sZW5ndGgmJigwfHRo'@; put 'aXMud29yZHNbMF0pPGc/KHRoaXMud29yZHNbMF09Zy0oMHx0aGlzLndvcmRzWzBdKSx0aGlzLm5lZ2F0aXZlPTAsdGhpcyk6KHRoaXMubmVnYXRpdmU9MCx0aGlzLmlzdWJuKGcpLHRoaXMubmVnYXRpdmU9MSx0aGlzKTp0aGlzLl9pYWRkbihnKX0sdy5wcm90b3R5cGUuX2lhZGRuPWZ1bmN0'@; put 'aW9uKGcpe3RoaXMud29yZHNbMF0rPWc7Zm9yKHZhciB5PTA7eTx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1t5XT49NjcxMDg4NjQ7eSsrKXRoaXMud29yZHNbeV0tPTY3MTA4ODY0LHk9PT10aGlzLmxlbmd0aC0xP3RoaXMud29yZHNbeSsxXT0xOnRoaXMud29yZHNbeSsxXSsrO3JldHVybiB0'@; put 'aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCx5KzEpLHRoaXN9LHcucHJvdG90eXBlLmlzdWJuPWZ1bmN0aW9uKGcpe2lmKHAoIm51bWJlciI9PXR5cGVvZiBnKSxwKGc8NjcxMDg4NjQpLGc8MClyZXR1cm4gdGhpcy5pYWRkbigtZyk7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJu'@; put 'IHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKGcpLHRoaXMubmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPWcsMT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFyIHk9'@; put 'MDt5PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3ldPDA7eSsrKXRoaXMud29yZHNbeV0rPTY3MTA4ODY0LHRoaXMud29yZHNbeSsxXS09MTtyZXR1cm4gdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaWFkZG4oZyl9LHcucHJv'@; put 'dG90eXBlLnN1Ym49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3VibihnKX0sdy5wcm90b3R5cGUuaWFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30sdy5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCl9'@; put 'LHcucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbihnLHkseCl7dmFyIFQ7dGhpcy5fZXhwYW5kKGcubGVuZ3RoK3gpO3ZhciBWLFU9MDtmb3IoVD0wO1Q8Zy5sZW5ndGg7VCsrKXtWPSgwfHRoaXMud29yZHNbVCt4XSkrVTt2YXIgRT0oMHxnLndvcmRzW1RdKSp5O1U9KChWLT02NzEw'@; put 'ODg2MyZFKT4+MjYpLShFLzY3MTA4ODY0fDApLHRoaXMud29yZHNbVCt4XT02NzEwODg2MyZWfWZvcig7VDx0aGlzLmxlbmd0aC14O1QrKylVPShWPSgwfHRoaXMud29yZHNbVCt4XSkrVSk+PjI2LHRoaXMud29yZHNbVCt4XT02NzEwODg2MyZWO2lmKDA9PT1VKXJldHVybiB0aGlzLnN0cmlw'@; put 'KCk7Zm9yKHAoLTE9PT1VKSxVPTAsVD0wO1Q8dGhpcy5sZW5ndGg7VCsrKVU9KFY9LSgwfHRoaXMud29yZHNbVF0pK1UpPj4yNix0aGlzLndvcmRzW1RdPTY3MTA4ODYzJlY7cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9u'@; put 'KGcseSl7dmFyIHgsQz10aGlzLmNsb25lKCksVD1nLFY9MHxULndvcmRzW1QubGVuZ3RoLTFdOzAhPSh4PTI2LXRoaXMuX2NvdW50Qml0cyhWKSkmJihUPVQudXNobG4oeCksQy5pdXNobG4oeCksVj0wfFQud29yZHNbVC5sZW5ndGgtMV0pO3ZhciBtLEU9Qy5sZW5ndGgtVC5sZW5ndGg7aWYo'@; put 'Im1vZCIhPT15KXsobT1uZXcgdyhudWxsKSkubGVuZ3RoPUUrMSxtLndvcmRzPW5ldyBBcnJheShtLmxlbmd0aCk7Zm9yKHZhciBBPTA7QTxtLmxlbmd0aDtBKyspbS53b3Jkc1tBXT0wfXZhciBhZT1DLmNsb25lKCkuX2lzaGxuc3VibXVsKFQsMSxFKTswPT09YWUubmVnYXRpdmUmJihDPWFl'@; put 'LG0mJihtLndvcmRzW0VdPTEpKTtmb3IodmFyIG5lPUUtMTtuZT49MDtuZS0tKXt2YXIgbGU9NjcxMDg4NjQqKDB8Qy53b3Jkc1tULmxlbmd0aCtuZV0pKygwfEMud29yZHNbVC5sZW5ndGgrbmUtMV0pO2ZvcihsZT1NYXRoLm1pbihsZS9WfDAsNjcxMDg4NjMpLEMuX2lzaGxuc3VibXVsKFQs'@; put 'bGUsbmUpOzAhPT1DLm5lZ2F0aXZlOylsZS0tLEMubmVnYXRpdmU9MCxDLl9pc2hsbnN1Ym11bChULDEsbmUpLEMuaXNaZXJvKCl8fChDLm5lZ2F0aXZlXj0xKTttJiYobS53b3Jkc1tuZV09bGUpfXJldHVybiBtJiZtLnN0cmlwKCksQy5zdHJpcCgpLCJkaXYiIT09eSYmMCE9PXgmJkMuaXVz'@; put 'aHJuKHgpLHtkaXY6bXx8bnVsbCxtb2Q6Q319LHcucHJvdG90eXBlLmRpdm1vZD1mdW5jdGlvbihnLHkseCl7cmV0dXJuIHAoIWcuaXNaZXJvKCkpLHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgdygwKSxtb2Q6bmV3IHcoMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Zy5uZWdhdGl2ZT8oVj10'@; put 'aGlzLm5lZygpLmRpdm1vZChnLHkpLCJtb2QiIT09eSYmKEM9Vi5kaXYubmVnKCkpLCJkaXYiIT09eSYmKFQ9Vi5tb2QubmVnKCkseCYmMCE9PVQubmVnYXRpdmUmJlQuaWFkZChnKSkse2RpdjpDLG1vZDpUfSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT1nLm5lZ2F0aXZlPyhWPXRoaXMuZGl2'@; put 'bW9kKGcubmVnKCkseSksIm1vZCIhPT15JiYoQz1WLmRpdi5uZWcoKSkse2RpdjpDLG1vZDpWLm1vZH0pOnRoaXMubmVnYXRpdmUmZy5uZWdhdGl2ZT8oVj10aGlzLm5lZygpLmRpdm1vZChnLm5lZygpLHkpLCJkaXYiIT09eSYmKFQ9Vi5tb2QubmVnKCkseCYmMCE9PVQubmVnYXRpdmUmJlQu'@; put 'aXN1YihnKSkse2RpdjpWLmRpdixtb2Q6VH0pOmcubGVuZ3RoPnRoaXMubGVuZ3RofHx0aGlzLmNtcChnKTwwP3tkaXY6bmV3IHcoMCksbW9kOnRoaXN9OjE9PT1nLmxlbmd0aD8iZGl2Ij09PXk/e2Rpdjp0aGlzLmRpdm4oZy53b3Jkc1swXSksbW9kOm51bGx9OiJtb2QiPT09eT97ZGl2Om51'@; put 'bGwsbW9kOm5ldyB3KHRoaXMubW9kbihnLndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKGcud29yZHNbMF0pLG1vZDpuZXcgdyh0aGlzLm1vZG4oZy53b3Jkc1swXSkpfTp0aGlzLl93b3JkRGl2KGcseSk7dmFyIEMsVCxWfSx3LnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24oZyl7cmV0dXJuIHRo'@; put 'aXMuZGl2bW9kKGcsImRpdiIsITEpLmRpdn0sdy5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmRpdm1vZChnLCJtb2QiLCExKS5tb2R9LHcucHJvdG90eXBlLnVtb2Q9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuZGl2bW9kKGcsIm1vZCIsITApLm1vZH0sdy5wcm90b3R5'@; put 'cGUuZGl2Um91bmQ9ZnVuY3Rpb24oZyl7dmFyIHk9dGhpcy5kaXZtb2QoZyk7aWYoeS5tb2QuaXNaZXJvKCkpcmV0dXJuIHkuZGl2O3ZhciB4PTAhPT15LmRpdi5uZWdhdGl2ZT95Lm1vZC5pc3ViKGcpOnkubW9kLEM9Zy51c2hybigxKSxUPWcuYW5kbG4oMSksVj14LmNtcChDKTtyZXR1cm4g'@; put 'VjwwfHwxPT09VCYmMD09PVY/eS5kaXY6MCE9PXkuZGl2Lm5lZ2F0aXZlP3kuZGl2LmlzdWJuKDEpOnkuZGl2LmlhZGRuKDEpfSx3LnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKGcpe3AoZzw9NjcxMDg4NjMpO2Zvcih2YXIgeT0oMTw8MjYpJWcseD0wLEM9dGhpcy5sZW5ndGgtMTtDPj0wO0Mt'@; put 'LSl4PSh5KngrKDB8dGhpcy53b3Jkc1tDXSkpJWc7cmV0dXJuIHh9LHcucHJvdG90eXBlLmlkaXZuPWZ1bmN0aW9uKGcpe3AoZzw9NjcxMDg4NjMpO2Zvcih2YXIgeT0wLHg9dGhpcy5sZW5ndGgtMTt4Pj0wO3gtLSl7dmFyIEM9KDB8dGhpcy53b3Jkc1t4XSkrNjcxMDg4NjQqeTt0aGlzLndv'@; put 'cmRzW3hdPUMvZ3wwLHk9QyVnfXJldHVybiB0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLmRpdm49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pZGl2bihnKX0sdy5wcm90b3R5cGUuZWdjZD1mdW5jdGlvbihnKXtwKDA9PT1nLm5lZ2F0aXZlKSxwKCFnLmlzWmVybygpKTt2YXIg'@; put 'eT10aGlzLHg9Zy5jbG9uZSgpO3k9MCE9PXkubmVnYXRpdmU/eS51bW9kKGcpOnkuY2xvbmUoKTtmb3IodmFyIEM9bmV3IHcoMSksVD1uZXcgdygwKSxWPW5ldyB3KDApLFU9bmV3IHcoMSksRT0wO3kuaXNFdmVuKCkmJnguaXNFdmVuKCk7KXkuaXVzaHJuKDEpLHguaXVzaHJuKDEpLCsrRTtm'@; put 'b3IodmFyIG09eC5jbG9uZSgpLEE9eS5jbG9uZSgpOyF5LmlzWmVybygpOyl7Zm9yKHZhciBhZT0wLG5lPTE7ISh5LndvcmRzWzBdJm5lKSYmYWU8MjY7KythZSxuZTw8PTEpO2lmKGFlPjApZm9yKHkuaXVzaHJuKGFlKTthZS0tID4wOykoQy5pc09kZCgpfHxULmlzT2RkKCkpJiYoQy5pYWRk'@; put 'KG0pLFQuaXN1YihBKSksQy5pdXNocm4oMSksVC5pdXNocm4oMSk7Zm9yKHZhciBsZT0wLHdlPTE7ISh4LndvcmRzWzBdJndlKSYmbGU8MjY7KytsZSx3ZTw8PTEpO2lmKGxlPjApZm9yKHguaXVzaHJuKGxlKTtsZS0tID4wOykoVi5pc09kZCgpfHxVLmlzT2RkKCkpJiYoVi5pYWRkKG0pLFUu'@; put 'aXN1YihBKSksVi5pdXNocm4oMSksVS5pdXNocm4oMSk7eS5jbXAoeCk+PTA/KHkuaXN1Yih4KSxDLmlzdWIoViksVC5pc3ViKFUpKTooeC5pc3ViKHkpLFYuaXN1YihDKSxVLmlzdWIoVCkpfXJldHVybnthOlYsYjpVLGdjZDp4Lml1c2hsbihFKX19LHcucHJvdG90eXBlLl9pbnZtcD1mdW5j'@; put 'dGlvbihnKXtwKDA9PT1nLm5lZ2F0aXZlKSxwKCFnLmlzWmVybygpKTt2YXIgYWUseT10aGlzLHg9Zy5jbG9uZSgpO3k9MCE9PXkubmVnYXRpdmU/eS51bW9kKGcpOnkuY2xvbmUoKTtmb3IodmFyIEM9bmV3IHcoMSksVD1uZXcgdygwKSxWPXguY2xvbmUoKTt5LmNtcG4oMSk+MCYmeC5jbXBu'@; put 'KDEpPjA7KXtmb3IodmFyIFU9MCxFPTE7ISh5LndvcmRzWzBdJkUpJiZVPDI2OysrVSxFPDw9MSk7aWYoVT4wKWZvcih5Lml1c2hybihVKTtVLS0gPjA7KUMuaXNPZGQoKSYmQy5pYWRkKFYpLEMuaXVzaHJuKDEpO2Zvcih2YXIgbT0wLEE9MTshKHgud29yZHNbMF0mQSkmJm08MjY7KyttLEE8'@; put 'PD0xKTtpZihtPjApZm9yKHguaXVzaHJuKG0pO20tLSA+MDspVC5pc09kZCgpJiZULmlhZGQoViksVC5pdXNocm4oMSk7eS5jbXAoeCk+PTA/KHkuaXN1Yih4KSxDLmlzdWIoVCkpOih4LmlzdWIoeSksVC5pc3ViKEMpKX1yZXR1cm4oYWU9MD09PXkuY21wbigxKT9DOlQpLmNtcG4oMCk8MCYm'@; put 'YWUuaWFkZChnKSxhZX0sdy5wcm90b3R5cGUuZ2NkPWZ1bmN0aW9uKGcpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIGcuYWJzKCk7aWYoZy5pc1plcm8oKSlyZXR1cm4gdGhpcy5hYnMoKTt2YXIgeT10aGlzLmNsb25lKCkseD1nLmNsb25lKCk7eS5uZWdhdGl2ZT0wLHgubmVnYXRpdmU9MDtm'@; put 'b3IodmFyIEM9MDt5LmlzRXZlbigpJiZ4LmlzRXZlbigpO0MrKyl5Lml1c2hybigxKSx4Lml1c2hybigxKTtmb3IoOzspe2Zvcig7eS5pc0V2ZW4oKTspeS5pdXNocm4oMSk7Zm9yKDt4LmlzRXZlbigpOyl4Lml1c2hybigxKTt2YXIgVD15LmNtcCh4KTtpZihUPDApe3ZhciBWPXk7eT14LHg9'@; put 'Vn1lbHNlIGlmKDA9PT1UfHwwPT09eC5jbXBuKDEpKWJyZWFrO3kuaXN1Yih4KX1yZXR1cm4geC5pdXNobG4oQyl9LHcucHJvdG90eXBlLmludm09ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuZWdjZChnKS5hLnVtb2QoZyl9LHcucHJvdG90eXBlLmlzRXZlbj1mdW5jdGlvbigpe3JldHVybiEo'@; put 'MSZ0aGlzLndvcmRzWzBdKX0sdy5wcm90b3R5cGUuaXNPZGQ9ZnVuY3Rpb24oKXtyZXR1cm4hKDEmfnRoaXMud29yZHNbMF0pfSx3LnByb3RvdHlwZS5hbmRsbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy53b3Jkc1swXSZnfSx3LnByb3RvdHlwZS5iaW5jbj1mdW5jdGlvbihnKXtwKCJudW1i'@; put 'ZXIiPT10eXBlb2YgZyk7dmFyIHk9ZyUyNix4PShnLXkpLzI2LEM9MTw8eTtpZih0aGlzLmxlbmd0aDw9eClyZXR1cm4gdGhpcy5fZXhwYW5kKHgrMSksdGhpcy53b3Jkc1t4XXw9Qyx0aGlzO2Zvcih2YXIgVD1DLFY9eDswIT09VCYmVjx0aGlzLmxlbmd0aDtWKyspe3ZhciBVPTB8dGhpcy53'@; put 'b3Jkc1tWXTtUPShVKz1UKT4+PjI2LHRoaXMud29yZHNbVl09VSY9NjcxMDg4NjN9cmV0dXJuIDAhPT1UJiYodGhpcy53b3Jkc1tWXT1ULHRoaXMubGVuZ3RoKyspLHRoaXN9LHcucHJvdG90eXBlLmlzWmVybz1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndv'@; put 'cmRzWzBdfSx3LnByb3RvdHlwZS5jbXBuPWZ1bmN0aW9uKGcpe3ZhciB4LHk9ZzwwO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYheSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmeSlyZXR1cm4gMTtpZih0aGlzLnN0cmlwKCksdGhpcy5sZW5ndGg+MSl4PTE7ZWxzZXt5JiYoZz0tZyks'@; put 'cChnPD02NzEwODg2MywiTnVtYmVyIGlzIHRvbyBiaWciKTt2YXIgQz0wfHRoaXMud29yZHNbMF07eD1DPT09Zz8wOkM8Zz8tMToxfXJldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC14Onh9LHcucHJvdG90eXBlLmNtcD1mdW5jdGlvbihnKXtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PWcu'@; put 'bmVnYXRpdmUpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT1nLm5lZ2F0aXZlKXJldHVybiAxO3ZhciB5PXRoaXMudWNtcChnKTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwteTp5fSx3LnByb3RvdHlwZS51Y21wPWZ1bmN0aW9uKGcpe2lmKHRoaXMubGVuZ3RoPmcubGVu'@; put 'Z3RoKXJldHVybiAxO2lmKHRoaXMubGVuZ3RoPGcubGVuZ3RoKXJldHVybi0xO2Zvcih2YXIgeT0wLHg9dGhpcy5sZW5ndGgtMTt4Pj0wO3gtLSl7dmFyIEM9MHx0aGlzLndvcmRzW3hdLFQ9MHxnLndvcmRzW3hdO2lmKEMhPT1UKXtDPFQ/eT0tMTpDPlQmJih5PTEpO2JyZWFrfX1yZXR1cm4g'@; put 'eX0sdy5wcm90b3R5cGUuZ3RuPWZ1bmN0aW9uKGcpe3JldHVybiAxPT09dGhpcy5jbXBuKGcpfSx3LnByb3RvdHlwZS5ndD1mdW5jdGlvbihnKXtyZXR1cm4gMT09PXRoaXMuY21wKGcpfSx3LnByb3RvdHlwZS5ndGVuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNtcG4oZyk+PTB9LHcucHJv'@; put 'dG90eXBlLmd0ZT1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbXAoZyk+PTB9LHcucHJvdG90eXBlLmx0bj1mdW5jdGlvbihnKXtyZXR1cm4tMT09PXRoaXMuY21wbihnKX0sdy5wcm90b3R5cGUubHQ9ZnVuY3Rpb24oZyl7cmV0dXJuLTE9PT10aGlzLmNtcChnKX0sdy5wcm90b3R5cGUubHRl'@; put 'bj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbXBuKGcpPD0wfSx3LnByb3RvdHlwZS5sdGU9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY21wKGcpPD0wfSx3LnByb3RvdHlwZS5lcW49ZnVuY3Rpb24oZyl7cmV0dXJuIDA9PT10aGlzLmNtcG4oZyl9LHcucHJvdG90eXBlLmVxPWZ1bmN0aW9u'@; put 'KGcpe3JldHVybiAwPT09dGhpcy5jbXAoZyl9LHcucmVkPWZ1bmN0aW9uKGcpe3JldHVybiBuZXcgU2UoZyl9LHcucHJvdG90eXBlLnRvUmVkPWZ1bmN0aW9uKGcpe3JldHVybiBwKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHAoMD09PXRoaXMu'@; put 'bmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksZy5jb252ZXJ0VG8odGhpcykuX2ZvcmNlUmVkKGcpfSx3LnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3aXRoIG51bWJlcnMgaW4gcmVkdWN0'@; put 'aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX0sdy5wcm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLnJlZD1nLHRoaXN9LHcucHJvdG90eXBlLmZvcmNlUmVkPWZ1bmN0aW9uKGcpe3JldHVybiBwKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51'@; put 'bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMuX2ZvcmNlUmVkKGcpfSx3LnByb3RvdHlwZS5yZWRBZGQ9ZnVuY3Rpb24oZyl7cmV0dXJuIHAodGhpcy5yZWQsInJlZEFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5hZGQodGhpcyxnKX0sdy5wcm90b3R5'@; put 'cGUucmVkSUFkZD1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMsZyl9LHcucHJvdG90eXBlLnJlZFN1Yj1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkU3ViIHdvcmtz'@; put 'IG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnN1Yih0aGlzLGcpfSx3LnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0aW9uKGcpe3JldHVybiBwKHRoaXMucmVkLCJyZWRJU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlzdWIodGhpcyxnKX0sdy5wcm90'@; put 'b3R5cGUucmVkU2hsPWZ1bmN0aW9uKGcpe3JldHVybiBwKHRoaXMucmVkLCJyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMsZyl9LHcucHJvdG90eXBlLnJlZE11bD1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkTXVsIHdvcmtz'@; put 'IG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsZyksdGhpcy5yZWQubXVsKHRoaXMsZyl9LHcucHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24oZyl7cmV0dXJuIHAodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlz'@; put 'LnJlZC5fdmVyaWZ5Mih0aGlzLGcpLHRoaXMucmVkLmltdWwodGhpcyxnKX0sdy5wcm90b3R5cGUucmVkU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5yZWQsInJlZFNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5z'@; put 'cXIodGhpcyl9LHcucHJvdG90eXBlLnJlZElTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkSVNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pc3FyKHRoaXMpfSx3LnByb3RvdHlwZS5yZWRTcXJ0PWZ1'@; put 'bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5yZWQsInJlZFNxcnQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FydCh0aGlzKX0sdy5wcm90b3R5cGUucmVkSW52bT1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMucmVkLCJyZWRJ'@; put 'bnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmludm0odGhpcyl9LHcucHJvdG90eXBlLnJlZE5lZz1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMucmVkLCJyZWROZWcgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiks'@; put 'dGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQubmVnKHRoaXMpfSx3LnByb3RvdHlwZS5yZWRQb3c9ZnVuY3Rpb24oZyl7cmV0dXJuIHAodGhpcy5yZWQmJiFnLnJlZCwicmVkUG93KG5vcm1hbE51bSkiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5wb3codGhpcyxn'@; put 'KX07dmFyIHRlPXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gaWUoeixnKXt0aGlzLm5hbWU9eix0aGlzLnA9bmV3IHcoZywxNiksdGhpcy5uPXRoaXMucC5iaXRMZW5ndGgoKSx0aGlzLms9bmV3IHcoMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0'@; put 'aGlzLnApLHRoaXMudG1wPXRoaXMuX3RtcCgpfWZ1bmN0aW9uIHNlKCl7aWUuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBnZSgpe2llLmNhbGwodGhpcywi'@; put 'cDIyNCIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAxIil9ZnVuY3Rpb24gX2UoKXtpZS5jYWxsKHRoaXMsInAxOTIiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIpfWZ1'@; put 'bmN0aW9uIFRlKCl7aWUuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBTZSh6KXtpZigic3RyaW5nIj09dHlwZW9mIHope3ZhciBnPXcuX3ByaW1lKHopO3RoaXMu'@; put 'bT1nLnAsdGhpcy5wcmltZT1nfWVsc2UgcCh6Lmd0bigxKSwibW9kdWx1cyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxIiksdGhpcy5tPXosdGhpcy5wcmltZT1udWxsfWZ1bmN0aW9uIHplKHope1NlLmNhbGwodGhpcyx6KSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0'@; put 'JTI2IT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyB3KDEpLml1c2hsbih0aGlzLnNoaWZ0KSx0aGlzLnIyPXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIuX2ludm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwodGhp'@; put 'cy5yKS5pc3VibigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9dGhpcy5yLnN1Yih0aGlzLm1pbnYpfWllLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFyIGc9bmV3IHcobnVsbCk7cmV0dXJuIGcud29yZHM9bmV3IEFycmF5KE1h'@; put 'dGguY2VpbCh0aGlzLm4vMTMpKSxnfSxpZS5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbihnKXt2YXIgeCx5PWc7ZG97dGhpcy5zcGxpdCh5LHRoaXMudG1wKSx4PSh5PSh5PXRoaXMuaW11bEsoeSkpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZSh4PnRoaXMubik7dmFyIEM9'@; put 'eDx0aGlzLm4/LTE6eS51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT1DPyh5LndvcmRzWzBdPTAseS5sZW5ndGg9MSk6Qz4wP3kuaXN1Yih0aGlzLnApOnZvaWQgMCE9PXkuc3RyaXA/eS5zdHJpcCgpOnkuX3N0cmlwKCkseX0saWUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKGcseSl7Zy5pdXNo'@; put 'cm4odGhpcy5uLDAseSl9LGllLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihnKXtyZXR1cm4gZy5pbXVsKHRoaXMuayl9LE4oc2UsaWUpLHNlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihnLHkpe2Zvcih2YXIgeD00MTk0MzAzLEM9TWF0aC5taW4oZy5sZW5ndGgsOSksVD0wO1Q8QztUKysp'@; put 'eS53b3Jkc1tUXT1nLndvcmRzW1RdO2lmKHkubGVuZ3RoPUMsZy5sZW5ndGg8PTkpcmV0dXJuIGcud29yZHNbMF09MCx2b2lkKGcubGVuZ3RoPTEpO3ZhciBWPWcud29yZHNbOV07Zm9yKHkud29yZHNbeS5sZW5ndGgrK109ViZ4LFQ9MTA7VDxnLmxlbmd0aDtUKyspe3ZhciBVPTB8Zy53b3Jk'@; put 'c1tUXTtnLndvcmRzW1QtMTBdPShVJngpPDw0fFY+Pj4yMixWPVV9Zy53b3Jkc1tULTEwXT1WPj4+PTIyLGcubGVuZ3RoLT0wPT09ViYmZy5sZW5ndGg+MTA/MTA6OX0sc2UucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKGcpe2cud29yZHNbZy5sZW5ndGhdPTAsZy53b3Jkc1tnLmxlbmd0aCsx'@; put 'XT0wLGcubGVuZ3RoKz0yO2Zvcih2YXIgeT0wLHg9MDt4PGcubGVuZ3RoO3grKyl7dmFyIEM9MHxnLndvcmRzW3hdO2cud29yZHNbeF09NjcxMDg4NjMmKHkrPTk3NypDKSx5PTY0KkMrKHkvNjcxMDg4NjR8MCl9cmV0dXJuIDA9PT1nLndvcmRzW2cubGVuZ3RoLTFdJiYoZy5sZW5ndGgtLSww'@; put 'PT09Zy53b3Jkc1tnLmxlbmd0aC0xXSYmZy5sZW5ndGgtLSksZ30sTihnZSxpZSksTihfZSxpZSksTihUZSxpZSksVGUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKGcpe2Zvcih2YXIgeT0wLHg9MDt4PGcubGVuZ3RoO3grKyl7dmFyIEM9MTkqKDB8Zy53b3Jkc1t4XSkreSxUPTY3MTA4ODYz'@; put 'JkM7Qz4+Pj0yNixnLndvcmRzW3hdPVQseT1DfXJldHVybiAwIT09eSYmKGcud29yZHNbZy5sZW5ndGgrK109eSksZ30sdy5fcHJpbWU9ZnVuY3Rpb24oZyl7aWYodGVbZ10pcmV0dXJuIHRlW2ddO3ZhciB5O2lmKCJrMjU2Ij09PWcpeT1uZXcgc2U7ZWxzZSBpZigicDIyNCI9PT1nKXk9bmV3'@; put 'IGdlO2Vsc2UgaWYoInAxOTIiPT09Zyl5PW5ldyBfZTtlbHNle2lmKCJwMjU1MTkiIT09Zyl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gcHJpbWUgIitnKTt5PW5ldyBUZX1yZXR1cm4gdGVbZ109eSx5fSxTZS5wcm90b3R5cGUuX3ZlcmlmeTE9ZnVuY3Rpb24oZyl7cCgwPT09Zy5uZWdhdGl2'@; put 'ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxwKGcucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LFNlLnByb3RvdHlwZS5fdmVyaWZ5Mj1mdW5jdGlvbihnLHkpe3AoIShnLm5lZ2F0aXZlfHkubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBv'@; put 'c2l0aXZlcyIpLHAoZy5yZWQmJmcucmVkPT09eS5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sU2UucHJvdG90eXBlLmltb2Q9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKGcpLl9mb3JjZVJlZCh0aGlzKTpnLnVtb2QodGhp'@; put 'cy5tKS5fZm9yY2VSZWQodGhpcyl9LFNlLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oZyl7cmV0dXJuIGcuaXNaZXJvKCk/Zy5jbG9uZSgpOnRoaXMubS5zdWIoZykuX2ZvcmNlUmVkKHRoaXMpfSxTZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGcseSl7dGhpcy5fdmVyaWZ5MihnLHkpO3ZhciB4'@; put 'PWcuYWRkKHkpO3JldHVybiB4LmNtcCh0aGlzLm0pPj0wJiZ4LmlzdWIodGhpcy5tKSx4Ll9mb3JjZVJlZCh0aGlzKX0sU2UucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oZyx5KXt0aGlzLl92ZXJpZnkyKGcseSk7dmFyIHg9Zy5pYWRkKHkpO3JldHVybiB4LmNtcCh0aGlzLm0pPj0wJiZ4Lmlz'@; put 'dWIodGhpcy5tKSx4fSxTZS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKGcseSl7dGhpcy5fdmVyaWZ5MihnLHkpO3ZhciB4PWcuc3ViKHkpO3JldHVybiB4LmNtcG4oMCk8MCYmeC5pYWRkKHRoaXMubSkseC5fZm9yY2VSZWQodGhpcyl9LFNlLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKGcseSl7'@; put 'dGhpcy5fdmVyaWZ5MihnLHkpO3ZhciB4PWcuaXN1Yih5KTtyZXR1cm4geC5jbXBuKDApPDAmJnguaWFkZCh0aGlzLm0pLHh9LFNlLnByb3RvdHlwZS5zaGw9ZnVuY3Rpb24oZyx5KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MShnKSx0aGlzLmltb2QoZy51c2hsbih5KSl9LFNlLnByb3RvdHlwZS5p'@; put 'bXVsPWZ1bmN0aW9uKGcseSl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoZyx5KSx0aGlzLmltb2QoZy5pbXVsKHkpKX0sU2UucHJvdG90eXBlLm11bD1mdW5jdGlvbihnLHkpe3JldHVybiB0aGlzLl92ZXJpZnkyKGcseSksdGhpcy5pbW9kKGcubXVsKHkpKX0sU2UucHJvdG90eXBlLmlzcXI9ZnVu'@; put 'Y3Rpb24oZyl7cmV0dXJuIHRoaXMuaW11bChnLGcuY2xvbmUoKSl9LFNlLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubXVsKGcsZyl9LFNlLnByb3RvdHlwZS5zcXJ0PWZ1bmN0aW9uKGcpe2lmKGcuaXNaZXJvKCkpcmV0dXJuIGcuY2xvbmUoKTt2YXIgeT10aGlzLm0u'@; put 'YW5kbG4oMyk7aWYocCh5JTI9PTEpLDM9PT15KXt2YXIgeD10aGlzLm0uYWRkKG5ldyB3KDEpKS5pdXNocm4oMik7cmV0dXJuIHRoaXMucG93KGcseCl9Zm9yKHZhciBDPXRoaXMubS5zdWJuKDEpLFQ9MDshQy5pc1plcm8oKSYmMD09PUMuYW5kbG4oMSk7KVQrKyxDLml1c2hybigxKTtwKCFD'@; put 'LmlzWmVybygpKTt2YXIgVj1uZXcgdygxKS50b1JlZCh0aGlzKSxVPVYucmVkTmVnKCksRT10aGlzLm0uc3VibigxKS5pdXNocm4oMSksbT10aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKG09bmV3IHcoMiptKm0pLnRvUmVkKHRoaXMpOzAhPT10aGlzLnBvdyhtLEUpLmNtcChVKTspbS5yZWRJQWRk'@; put 'KFUpO2Zvcih2YXIgQT10aGlzLnBvdyhtLEMpLGFlPXRoaXMucG93KGcsQy5hZGRuKDEpLml1c2hybigxKSksbmU9dGhpcy5wb3coZyxDKSxsZT1UOzAhPT1uZS5jbXAoVik7KXtmb3IodmFyIHdlPW5lLFplPTA7MCE9PXdlLmNtcChWKTtaZSsrKXdlPXdlLnJlZFNxcigpO3AoWmU8bGUpO3Zh'@; put 'ciBRZT10aGlzLnBvdyhBLG5ldyB3KDEpLml1c2hsbihsZS1aZS0xKSk7YWU9YWUucmVkTXVsKFFlKSxBPVFlLnJlZFNxcigpLG5lPW5lLnJlZE11bChBKSxsZT1aZX1yZXR1cm4gYWV9LFNlLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKGcpe3ZhciB5PWcuX2ludm1wKHRoaXMubSk7cmV0dXJu'@; put 'IDAhPT15Lm5lZ2F0aXZlPyh5Lm5lZ2F0aXZlPTAsdGhpcy5pbW9kKHkpLnJlZE5lZygpKTp0aGlzLmltb2QoeSl9LFNlLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oZyx5KXtpZih5LmlzWmVybygpKXJldHVybiBuZXcgdygxKS50b1JlZCh0aGlzKTtpZigwPT09eS5jbXBuKDEpKXJldHVybiBn'@; put 'LmNsb25lKCk7dmFyIEM9bmV3IEFycmF5KDE2KTtDWzBdPW5ldyB3KDEpLnRvUmVkKHRoaXMpLENbMV09Zztmb3IodmFyIFQ9MjtUPEMubGVuZ3RoO1QrKylDW1RdPXRoaXMubXVsKENbVC0xXSxnKTt2YXIgVj1DWzBdLFU9MCxFPTAsbT15LmJpdExlbmd0aCgpJTI2O2ZvcigwPT09bSYmKG09'@; put 'MjYpLFQ9eS5sZW5ndGgtMTtUPj0wO1QtLSl7Zm9yKHZhciBBPXkud29yZHNbVF0sYWU9bS0xO2FlPj0wO2FlLS0pe3ZhciBuZT1BPj5hZSYxO1YhPT1DWzBdJiYoVj10aGlzLnNxcihWKSksMCE9PW5lfHwwIT09VT8oVTw8PTEsVXw9bmUsKDQ9PSsrRXx8MD09PVQmJjA9PT1hZSkmJihWPXRo'@; put 'aXMubXVsKFYsQ1tVXSksRT0wLFU9MCkpOkU9MH1tPTI2fXJldHVybiBWfSxTZS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKGcpe3ZhciB5PWcudW1vZCh0aGlzLm0pO3JldHVybiB5PT09Zz95LmNsb25lKCk6eX0sU2UucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKGcpe3Zh'@; put 'ciB5PWcuY2xvbmUoKTtyZXR1cm4geS5yZWQ9bnVsbCx5fSx3Lm1vbnQ9ZnVuY3Rpb24oZyl7cmV0dXJuIG5ldyB6ZShnKX0sTih6ZSxTZSksemUucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5pbW9kKGcudXNobG4odGhpcy5zaGlmdCkpfSx6ZS5wcm90b3R5'@; put 'cGUuY29udmVydEZyb209ZnVuY3Rpb24oZyl7dmFyIHk9dGhpcy5pbW9kKGcubXVsKHRoaXMucmludikpO3JldHVybiB5LnJlZD1udWxsLHl9LHplLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKGcseSl7aWYoZy5pc1plcm8oKXx8eS5pc1plcm8oKSlyZXR1cm4gZy53b3Jkc1swXT0wLGcubGVu'@; put 'Z3RoPTEsZzt2YXIgeD1nLmltdWwoeSksQz14Lm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxUPXguaXN1YihDKS5pdXNocm4odGhpcy5zaGlmdCksVj1UO3JldHVybiBULmNtcCh0aGlzLm0pPj0wP1Y9VC5pc3ViKHRoaXMu'@; put 'bSk6VC5jbXBuKDApPDAmJihWPVQuaWFkZCh0aGlzLm0pKSxWLl9mb3JjZVJlZCh0aGlzKX0semUucHJvdG90eXBlLm11bD1mdW5jdGlvbihnLHkpe2lmKGcuaXNaZXJvKCl8fHkuaXNaZXJvKCkpcmV0dXJuIG5ldyB3KDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgeD1nLm11bCh5KSxDPXgubWFz'@; put 'a24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLFQ9eC5pc3ViKEMpLml1c2hybih0aGlzLnNoaWZ0KSxWPVQ7cmV0dXJuIFQuY21wKHRoaXMubSk+PTA/Vj1ULmlzdWIodGhpcy5tKTpULmNtcG4oMCk8MCYmKFY9VC5pYWRkKHRoaXMu'@; put 'bSkpLFYuX2ZvcmNlUmVkKHRoaXMpfSx6ZS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5pbW9kKGcuX2ludm1wKHRoaXMubSkubXVsKHRoaXMucjIpKS5fZm9yY2VSZWQodGhpcyl9fShjZT1iLm5tZChjZSksdGhpcyl9LDQ0Mjk6Y2U9PnsidXNlIHN0cmljdCI7dmFy'@; put 'IEo9T2JqZWN0LmRlZmluZVByb3BlcnR5fHwhMTtpZihKKXRyeXtKKHt9LCJhIix7dmFsdWU6MX0pfWNhdGNoe0o9ITF9Y2UuZXhwb3J0cz1KfSwzOTgxOmNlPT57InVzZSBzdHJpY3QiO2NlLmV4cG9ydHM9RXZhbEVycm9yfSwxNjQ4OmNlPT57InVzZSBzdHJpY3QiO2NlLmV4cG9ydHM9RXJy'@; put 'b3J9LDQ3MjY6Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz1SYW5nZUVycm9yfSw2NzEyOmNlPT57InVzZSBzdHJpY3QiO2NlLmV4cG9ydHM9UmVmZXJlbmNlRXJyb3J9LDM0NjQ6Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz1TeW50YXhFcnJvcn0sNDQ1MzpjZT0+eyJ1c2Ugc3Ry'@; put 'aWN0IjtjZS5leHBvcnRzPVR5cGVFcnJvcn0sMzkxNTpjZT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPVVSSUVycm9yfSw4ODkyOmNlPT57InVzZSBzdHJpY3QiO2NlLmV4cG9ydHM9T2JqZWN0fSw3MTg3OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBOLEQ9Yig1MTA4KSxfPSJvYmpl'@; put 'Y3QiPT10eXBlb2YgUmVmbGVjdD9SZWZsZWN0Om51bGwscD1fJiYiZnVuY3Rpb24iPT10eXBlb2YgXy5hcHBseT9fLmFwcGx5OmZ1bmN0aW9uKF9lLFRlLFNlKXtyZXR1cm4gRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwoX2UsVGUsU2UpfTtOPV8mJiJmdW5jdGlvbiI9PXR5cGVvZiBf'@; put 'Lm93bktleXM/Xy5vd25LZXlzOk9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM/ZnVuY3Rpb24oX2Upe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhfZSkuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoX2UpKX06ZnVuY3Rpb24oX2Upe3JldHVybiBPYmpl'@; put 'Y3QuZ2V0T3duUHJvcGVydHlOYW1lcyhfZSl9O3ZhciBGPU51bWJlci5pc05hTnx8ZnVuY3Rpb24oX2Upe3JldHVybiBfZSE9X2V9O2Z1bmN0aW9uIEgoKXtILmluaXQuY2FsbCh0aGlzKX1jZS5leHBvcnRzPUgsY2UuZXhwb3J0cy5vbmNlPWZ1bmN0aW9uIHRlKGdlLF9lKXtyZXR1cm4gbmV3'@; put 'IFByb21pc2UoZnVuY3Rpb24oVGUsU2Upe2Z1bmN0aW9uIHplKGcpe2dlLnJlbW92ZUxpc3RlbmVyKF9lLHopLFNlKGcpfWZ1bmN0aW9uIHooKXsiZnVuY3Rpb24iPT10eXBlb2YgZ2UucmVtb3ZlTGlzdGVuZXImJmdlLnJlbW92ZUxpc3RlbmVyKCJlcnJvciIsemUpLFRlKFtdLnNsaWNlLmNh'@; put 'bGwoYXJndW1lbnRzKSl9c2UoZ2UsX2Useix7b25jZTohMH0pLCJlcnJvciIhPT1fZSYmZnVuY3Rpb24gaWUoZ2UsX2UsVGUpeyJmdW5jdGlvbiI9PXR5cGVvZiBnZS5vbiYmc2UoZ2UsImVycm9yIixfZSxUZSl9KGdlLHplLHtvbmNlOiEwfSl9KX0sSC5FdmVudEVtaXR0ZXI9SCxILnByb3Rv'@; put 'dHlwZS5fZXZlbnRzPXZvaWQgMCxILnByb3RvdHlwZS5fZXZlbnRzQ291bnQ9MCxILnByb3RvdHlwZS5fbWF4TGlzdGVuZXJzPXZvaWQgMDt2YXIgUj0xMDtmdW5jdGlvbiBqKGdlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZ2UpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJsaXN0ZW5lciIg'@; put 'YXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEZ1bmN0aW9uLiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIGdlKX1mdW5jdGlvbiBQKGdlKXtyZXR1cm4gdm9pZCAwPT09Z2UuX21heExpc3RlbmVycz9ILmRlZmF1bHRNYXhMaXN0ZW5lcnM6Z2UuX21heExpc3RlbmVyc31mdW5jdGlvbiBMKGdlLF9l'@; put 'LFRlLFNlKXt2YXIgemUseixnO2lmKGooVGUpLHZvaWQgMD09PSh6PWdlLl9ldmVudHMpPyh6PWdlLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSxnZS5fZXZlbnRzQ291bnQ9MCk6KHZvaWQgMCE9PXoubmV3TGlzdGVuZXImJihnZS5lbWl0KCJuZXdMaXN0ZW5lciIsX2UsVGUubGlzdGVu'@; put 'ZXI/VGUubGlzdGVuZXI6VGUpLHo9Z2UuX2V2ZW50cyksZz16W19lXSksdm9pZCAwPT09ZylnPXpbX2VdPVRlLCsrZ2UuX2V2ZW50c0NvdW50O2Vsc2UgaWYoImZ1bmN0aW9uIj09dHlwZW9mIGc/Zz16W19lXT1TZT9bVGUsZ106W2csVGVdOlNlP2cudW5zaGlmdChUZSk6Zy5wdXNoKFRlKSwo'@; put 'emU9UChnZSkpPjAmJmcubGVuZ3RoPnplJiYhZy53YXJuZWQpe2cud2FybmVkPSEwO3ZhciB5PW5ldyBFcnJvcigiUG9zc2libGUgRXZlbnRFbWl0dGVyIG1lbW9yeSBsZWFrIGRldGVjdGVkLiAiK2cubGVuZ3RoKyIgIitTdHJpbmcoX2UpKyIgbGlzdGVuZXJzIGFkZGVkLiBVc2UgZW1pdHRl'@; put 'ci5zZXRNYXhMaXN0ZW5lcnMoKSB0byBpbmNyZWFzZSBsaW1pdCIpO3kubmFtZT0iTWF4TGlzdGVuZXJzRXhjZWVkZWRXYXJuaW5nIix5LmVtaXR0ZXI9Z2UseS50eXBlPV9lLHkuY291bnQ9Zy5sZW5ndGgsZnVuY3Rpb24gdyhnZSl7RCYmRC53YXJuJiZELndhcm4oZ2UpfSh5KX1yZXR1cm4g'@; put 'Z2V9ZnVuY3Rpb24gWSgpe2lmKCF0aGlzLmZpcmVkKXJldHVybiB0aGlzLnRhcmdldC5yZW1vdmVMaXN0ZW5lcih0aGlzLnR5cGUsdGhpcy53cmFwRm4pLHRoaXMuZmlyZWQ9ITAsMD09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5saXN0ZW5lci5jYWxsKHRoaXMudGFyZ2V0KTp0aGlzLmxpc3Rl'@; put 'bmVyLmFwcGx5KHRoaXMudGFyZ2V0LGFyZ3VtZW50cyl9ZnVuY3Rpb24gQihnZSxfZSxUZSl7dmFyIFNlPXtmaXJlZDohMSx3cmFwRm46dm9pZCAwLHRhcmdldDpnZSx0eXBlOl9lLGxpc3RlbmVyOlRlfSx6ZT1ZLmJpbmQoU2UpO3JldHVybiB6ZS5saXN0ZW5lcj1UZSxTZS53cmFwRm49emUs'@; put 'emV9ZnVuY3Rpb24gVyhnZSxfZSxUZSl7dmFyIFNlPWdlLl9ldmVudHM7aWYodm9pZCAwPT09U2UpcmV0dXJuW107dmFyIHplPVNlW19lXTtyZXR1cm4gdm9pZCAwPT09emU/W106ImZ1bmN0aW9uIj09dHlwZW9mIHplP1RlP1t6ZS5saXN0ZW5lcnx8emVdOlt6ZV06VGU/ZnVuY3Rpb24gcShn'@; put 'ZSl7Zm9yKHZhciBfZT1uZXcgQXJyYXkoZ2UubGVuZ3RoKSxUZT0wO1RlPF9lLmxlbmd0aDsrK1RlKV9lW1RlXT1nZVtUZV0ubGlzdGVuZXJ8fGdlW1RlXTtyZXR1cm4gX2V9KHplKTpYKHplLHplLmxlbmd0aCl9ZnVuY3Rpb24gWihnZSl7dmFyIF9lPXRoaXMuX2V2ZW50cztpZih2b2lkIDAh'@; put 'PT1fZSl7dmFyIFRlPV9lW2dlXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgVGUpcmV0dXJuIDE7aWYodm9pZCAwIT09VGUpcmV0dXJuIFRlLmxlbmd0aH1yZXR1cm4gMH1mdW5jdGlvbiBYKGdlLF9lKXtmb3IodmFyIFRlPW5ldyBBcnJheShfZSksU2U9MDtTZTxfZTsrK1NlKVRlW1NlXT1nZVtT'@; put 'ZV07cmV0dXJuIFRlfWZ1bmN0aW9uIHNlKGdlLF9lLFRlLFNlKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgZ2Uub24pU2Uub25jZT9nZS5vbmNlKF9lLFRlKTpnZS5vbihfZSxUZSk7ZWxzZXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZ2UuYWRkRXZlbnRMaXN0ZW5lcil0aHJvdyBuZXcgVHlwZUVy'@; put 'cm9yKCdUaGUgImVtaXR0ZXIiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBFdmVudEVtaXR0ZXIuIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2YgZ2UpO2dlLmFkZEV2ZW50TGlzdGVuZXIoX2UsZnVuY3Rpb24gemUoeil7U2Uub25jZSYmZ2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihfZSx6ZSksVGUo'@; put 'eil9KX19T2JqZWN0LmRlZmluZVByb3BlcnR5KEgsImRlZmF1bHRNYXhMaXN0ZW5lcnMiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBSfSxzZXQ6ZnVuY3Rpb24oZ2Upe2lmKCJudW1iZXIiIT10eXBlb2YgZ2V8fGdlPDB8fEYoZ2UpKXRocm93IG5ldyBSYW5nZUVycm9y'@; put 'KCdUaGUgdmFsdWUgb2YgImRlZmF1bHRNYXhMaXN0ZW5lcnMiIGlzIG91dCBvZiByYW5nZS4gSXQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIuIFJlY2VpdmVkICcrZ2UrIi4iKTtSPWdlfX0pLEguaW5pdD1mdW5jdGlvbigpeyh2b2lkIDA9PT10aGlzLl9ldmVudHN8fHRoaXMuX2V2'@; put 'ZW50cz09PU9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKS5fZXZlbnRzKSYmKHRoaXMuX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuX2V2ZW50c0NvdW50PTApLHRoaXMuX21heExpc3RlbmVycz10aGlzLl9tYXhMaXN0ZW5lcnN8fHZvaWQgMH0sSC5wcm90b3R5cGUuc2V0TWF4'@; put 'TGlzdGVuZXJzPWZ1bmN0aW9uKF9lKXtpZigibnVtYmVyIiE9dHlwZW9mIF9lfHxfZTwwfHxGKF9lKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mICJuIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnK19lKyIu'@; put 'Iik7cmV0dXJuIHRoaXMuX21heExpc3RlbmVycz1fZSx0aGlzfSxILnByb3RvdHlwZS5nZXRNYXhMaXN0ZW5lcnM9ZnVuY3Rpb24oKXtyZXR1cm4gUCh0aGlzKX0sSC5wcm90b3R5cGUuZW1pdD1mdW5jdGlvbihfZSl7Zm9yKHZhciBUZT1bXSxTZT0xO1NlPGFyZ3VtZW50cy5sZW5ndGg7U2Ur'@; put 'KylUZS5wdXNoKGFyZ3VtZW50c1tTZV0pO3ZhciB6ZT0iZXJyb3IiPT09X2Usej10aGlzLl9ldmVudHM7aWYodm9pZCAwIT09eil6ZT16ZSYmdm9pZCAwPT09ei5lcnJvcjtlbHNlIGlmKCF6ZSlyZXR1cm4hMTtpZih6ZSl7dmFyIGc7aWYoVGUubGVuZ3RoPjAmJihnPVRlWzBdKSxnIGluc3Rh'@; put 'bmNlb2YgRXJyb3IpdGhyb3cgZzt2YXIgeT1uZXcgRXJyb3IoIlVuaGFuZGxlZCBlcnJvci4iKyhnPyIgKCIrZy5tZXNzYWdlKyIpIjoiIikpO3Rocm93IHkuY29udGV4dD1nLHl9dmFyIHg9eltfZV07aWYodm9pZCAwPT09eClyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgeClwKHgs'@; put 'dGhpcyxUZSk7ZWxzZXt2YXIgQz14Lmxlbmd0aCxUPVgoeCxDKTtmb3IoU2U9MDtTZTxDOysrU2UpcChUW1NlXSx0aGlzLFRlKX1yZXR1cm4hMH0sSC5wcm90b3R5cGUub249SC5wcm90b3R5cGUuYWRkTGlzdGVuZXI9ZnVuY3Rpb24oX2UsVGUpe3JldHVybiBMKHRoaXMsX2UsVGUsITEpfSxI'@; put 'LnByb3RvdHlwZS5wcmVwZW5kTGlzdGVuZXI9ZnVuY3Rpb24oX2UsVGUpe3JldHVybiBMKHRoaXMsX2UsVGUsITApfSxILnByb3RvdHlwZS5vbmNlPWZ1bmN0aW9uKF9lLFRlKXtyZXR1cm4gaihUZSksdGhpcy5vbihfZSxCKHRoaXMsX2UsVGUpKSx0aGlzfSxILnByb3RvdHlwZS5wcmVwZW5k'@; put 'T25jZUxpc3RlbmVyPWZ1bmN0aW9uKF9lLFRlKXtyZXR1cm4gaihUZSksdGhpcy5wcmVwZW5kTGlzdGVuZXIoX2UsQih0aGlzLF9lLFRlKSksdGhpc30sSC5wcm90b3R5cGUub2ZmPUgucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPWZ1bmN0aW9uKF9lLFRlKXt2YXIgU2UsemUseixnLHk7aWYo'@; put 'aihUZSksdm9pZCAwPT09KHplPXRoaXMuX2V2ZW50cykpcmV0dXJuIHRoaXM7aWYodm9pZCAwPT09KFNlPXplW19lXSkpcmV0dXJuIHRoaXM7aWYoU2U9PT1UZXx8U2UubGlzdGVuZXI9PT1UZSkwPT0tLXRoaXMuX2V2ZW50c0NvdW50P3RoaXMuX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwp'@; put 'OihkZWxldGUgemVbX2VdLHplLnJlbW92ZUxpc3RlbmVyJiZ0aGlzLmVtaXQoInJlbW92ZUxpc3RlbmVyIixfZSxTZS5saXN0ZW5lcnx8VGUpKTtlbHNlIGlmKCJmdW5jdGlvbiIhPXR5cGVvZiBTZSl7Zm9yKHo9LTEsZz1TZS5sZW5ndGgtMTtnPj0wO2ctLSlpZihTZVtnXT09PVRlfHxTZVtn'@; put 'XS5saXN0ZW5lcj09PVRlKXt5PVNlW2ddLmxpc3RlbmVyLHo9ZzticmVha31pZih6PDApcmV0dXJuIHRoaXM7MD09PXo/U2Uuc2hpZnQoKTpmdW5jdGlvbiBRKGdlLF9lKXtmb3IoO19lKzE8Z2UubGVuZ3RoO19lKyspZ2VbX2VdPWdlW19lKzFdO2dlLnBvcCgpfShTZSx6KSwxPT09U2UubGVu'@; put 'Z3RoJiYoemVbX2VdPVNlWzBdKSx2b2lkIDAhPT16ZS5yZW1vdmVMaXN0ZW5lciYmdGhpcy5lbWl0KCJyZW1vdmVMaXN0ZW5lciIsX2UseXx8VGUpfXJldHVybiB0aGlzfSxILnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnM9ZnVuY3Rpb24oX2Upe3ZhciBUZSxTZSx6ZTtpZih2b2lkIDA9'@; put 'PT0oU2U9dGhpcy5fZXZlbnRzKSlyZXR1cm4gdGhpcztpZih2b2lkIDA9PT1TZS5yZW1vdmVMaXN0ZW5lcilyZXR1cm4gMD09PWFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuX2V2ZW50c0NvdW50PTApOnZvaWQgMCE9PVNlW19lXSYmKDA9'@; put 'PS0tdGhpcy5fZXZlbnRzQ291bnQ/dGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCk6ZGVsZXRlIFNlW19lXSksdGhpcztpZigwPT09YXJndW1lbnRzLmxlbmd0aCl7dmFyIGcsej1PYmplY3Qua2V5cyhTZSk7Zm9yKHplPTA7emU8ei5sZW5ndGg7Kyt6ZSkicmVtb3ZlTGlzdGVuZXIi'@; put 'IT09KGc9elt6ZV0pJiZ0aGlzLnJlbW92ZUFsbExpc3RlbmVycyhnKTtyZXR1cm4gdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoInJlbW92ZUxpc3RlbmVyIiksdGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5fZXZlbnRzQ291bnQ9MCx0aGlzfWlmKCJmdW5jdGlvbiI9PXR5'@; put 'cGVvZihUZT1TZVtfZV0pKXRoaXMucmVtb3ZlTGlzdGVuZXIoX2UsVGUpO2Vsc2UgaWYodm9pZCAwIT09VGUpZm9yKHplPVRlLmxlbmd0aC0xO3plPj0wO3plLS0pdGhpcy5yZW1vdmVMaXN0ZW5lcihfZSxUZVt6ZV0pO3JldHVybiB0aGlzfSxILnByb3RvdHlwZS5saXN0ZW5lcnM9ZnVuY3Rp'@; put 'b24oX2Upe3JldHVybiBXKHRoaXMsX2UsITApfSxILnByb3RvdHlwZS5yYXdMaXN0ZW5lcnM9ZnVuY3Rpb24oX2Upe3JldHVybiBXKHRoaXMsX2UsITEpfSxILmxpc3RlbmVyQ291bnQ9ZnVuY3Rpb24oZ2UsX2Upe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBnZS5saXN0ZW5lckNvdW50P2dl'@; put 'Lmxpc3RlbmVyQ291bnQoX2UpOlouY2FsbChnZSxfZSl9LEgucHJvdG90eXBlLmxpc3RlbmVyQ291bnQ9WixILnByb3RvdHlwZS5ldmVudE5hbWVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2V2ZW50c0NvdW50PjA/Tih0aGlzLl9ldmVudHMpOltdfX0sMzA0ODooY2UsSixiKT0+e3ZhciBE'@; put 'PWIoOTUwOSkuQnVmZmVyLF89YigyMzE4KTtjZS5leHBvcnRzPWZ1bmN0aW9uIHAoTix3LEYsSCl7aWYoRC5pc0J1ZmZlcihOKXx8KE49RC5mcm9tKE4sImJpbmFyeSIpKSx3JiYoRC5pc0J1ZmZlcih3KXx8KHc9RC5mcm9tKHcsImJpbmFyeSIpKSw4IT09dy5sZW5ndGgpKXRocm93IG5ldyBS'@; put 'YW5nZUVycm9yKCJzYWx0IHNob3VsZCBiZSBCdWZmZXIgd2l0aCA4IGJ5dGUgbGVuZ3RoIik7Zm9yKHZhciBSPUYvOCxqPUQuYWxsb2MoUiksUD1ELmFsbG9jKEh8fDApLEw9RC5hbGxvYygwKTtSPjB8fEg+MDspe3ZhciBZPW5ldyBfO1kudXBkYXRlKEwpLFkudXBkYXRlKE4pLHcmJlkudXBk'@; put 'YXRlKHcpLEw9WS5kaWdlc3QoKTt2YXIgQj0wO2lmKFI+MCl7dmFyIFc9ai5sZW5ndGgtUjtCPU1hdGgubWluKFIsTC5sZW5ndGgpLEwuY29weShqLFcsMCxCKSxSLT1CfWlmKEI8TC5sZW5ndGgmJkg+MCl7dmFyIFo9UC5sZW5ndGgtSCxYPU1hdGgubWluKEgsTC5sZW5ndGgtQik7TC5jb3B5'@; put 'KFAsWixCLEIrWCksSC09WH19cmV0dXJuIEwuZmlsbCgwKSx7a2V5OmosaXY6UH19fSw0MDI5OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNTMyMCksXz1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLHA9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtjZS5leHBvcnRz'@; put 'PWZ1bmN0aW9uKGosUCxMKXtpZighRChQKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJpdGVyYXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTt2YXIgWTthcmd1bWVudHMubGVuZ3RoPj0zJiYoWT1MKSxmdW5jdGlvbiBIKFIpe3JldHVybiJbb2JqZWN0IEFycmF5XSI9PT1fLmNhbGwoUil9KGopP2Z1'@; put 'bmN0aW9uKGosUCxMKXtmb3IodmFyIFk9MCxCPWoubGVuZ3RoO1k8QjtZKyspcC5jYWxsKGosWSkmJihudWxsPT1MP1AoaltZXSxZLGopOlAuY2FsbChMLGpbWV0sWSxqKSl9KGosUCxZKToic3RyaW5nIj09dHlwZW9mIGo/ZnVuY3Rpb24oaixQLEwpe2Zvcih2YXIgWT0wLEI9ai5sZW5ndGg7'@; put 'WTxCO1krKyludWxsPT1MP1Aoai5jaGFyQXQoWSksWSxqKTpQLmNhbGwoTCxqLmNoYXJBdChZKSxZLGopfShqLFAsWSk6ZnVuY3Rpb24oaixQLEwpe2Zvcih2YXIgWSBpbiBqKXAuY2FsbChqLFkpJiYobnVsbD09TD9QKGpbWV0sWSxqKTpQLmNhbGwoTCxqW1ldLFksaikpfShqLFAsWSl9fSw2'@; put 'MjMwOmNlPT57InVzZSBzdHJpY3QiO2NlLmV4cG9ydHM9Im9iamVjdCI9PXR5cGVvZiBzZWxmP3NlbGYuRm9ybURhdGE6d2luZG93LkZvcm1EYXRhfSwzODczOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNDE1NSk7Y29uc3QgXz1iKDc3KSxwPWIoMjUyMCksTj1iKDEzODEpLm1r'@; put 'ZGlyc1N5bmMsdz1iKDMxOCkudXRpbWVzTWlsbGlzU3luYyxGPWIoMjczMyk7ZnVuY3Rpb24gUihfZSxUZSxTZSx6ZSl7Y29uc3QgZz0oemUuZGVyZWZlcmVuY2U/Xy5zdGF0U3luYzpfLmxzdGF0U3luYykoVGUpO2lmKGcuaXNEaXJlY3RvcnkoKSlyZXR1cm4gZnVuY3Rpb24gUShfZSxUZSxT'@; put 'ZSx6ZSx6KXtyZXR1cm4gVGU/dGUoU2UsemUseik6ZnVuY3Rpb24gcShfZSxUZSxTZSx6ZSl7cmV0dXJuIF8ubWtkaXJTeW5jKFNlKSx0ZShUZSxTZSx6ZSksWihTZSxfZSl9KF9lLm1vZGUsU2UsemUseil9KGcsX2UsVGUsU2UsemUpO2lmKGcuaXNGaWxlKCl8fGcuaXNDaGFyYWN0ZXJEZXZp'@; put 'Y2UoKXx8Zy5pc0Jsb2NrRGV2aWNlKCkpcmV0dXJuIGZ1bmN0aW9uIGooX2UsVGUsU2UsemUseil7cmV0dXJuIFRlP2Z1bmN0aW9uIFAoX2UsVGUsU2UsemUpe2lmKHplLm92ZXJ3cml0ZSlyZXR1cm4gXy51bmxpbmtTeW5jKFNlKSxMKF9lLFRlLFNlLHplKTtpZih6ZS5lcnJvck9uRXhpc3Qp'@; put 'dGhyb3cgbmV3IEVycm9yKGAnJHtTZX0nIGFscmVhZHkgZXhpc3RzYCl9KF9lLFNlLHplLHopOkwoX2UsU2UsemUseil9KGcsX2UsVGUsU2UsemUpO2lmKGcuaXNTeW1ib2xpY0xpbmsoKSlyZXR1cm4gZnVuY3Rpb24gc2UoX2UsVGUsU2UsemUpe2xldCB6PV8ucmVhZGxpbmtTeW5jKFRlKTtp'@; put 'Zih6ZS5kZXJlZmVyZW5jZSYmKHo9cC5yZXNvbHZlKEQuY3dkKCkseikpLF9lKXtsZXQgZzt0cnl7Zz1fLnJlYWRsaW5rU3luYyhTZSl9Y2F0Y2goeSl7aWYoIkVJTlZBTCI9PT15LmNvZGV8fCJVTktOT1dOIj09PXkuY29kZSlyZXR1cm4gXy5zeW1saW5rU3luYyh6LFNlKTt0aHJvdyB5fWlm'@; put 'KHplLmRlcmVmZXJlbmNlJiYoZz1wLnJlc29sdmUoRC5jd2QoKSxnKSksRi5pc1NyY1N1YmRpcih6LGcpKXRocm93IG5ldyBFcnJvcihgQ2Fubm90IGNvcHkgJyR7en0nIHRvIGEgc3ViZGlyZWN0b3J5IG9mIGl0c2VsZiwgJyR7Z30nLmApO2lmKEYuaXNTcmNTdWJkaXIoZyx6KSl0aHJvdyBu'@; put 'ZXcgRXJyb3IoYENhbm5vdCBvdmVyd3JpdGUgJyR7Z30nIHdpdGggJyR7en0nLmApO3JldHVybiBmdW5jdGlvbiBnZShfZSxUZSl7cmV0dXJuIF8udW5saW5rU3luYyhUZSksXy5zeW1saW5rU3luYyhfZSxUZSl9KHosU2UpfXJldHVybiBfLnN5bWxpbmtTeW5jKHosU2UpfShfZSxUZSxTZSx6'@; put 'ZSk7dGhyb3cgZy5pc1NvY2tldCgpP25ldyBFcnJvcihgQ2Fubm90IGNvcHkgYSBzb2NrZXQgZmlsZTogJHtUZX1gKTpnLmlzRklGTygpP25ldyBFcnJvcihgQ2Fubm90IGNvcHkgYSBGSUZPIHBpcGU6ICR7VGV9YCk6bmV3IEVycm9yKGBVbmtub3duIGZpbGU6ICR7VGV9YCl9ZnVuY3Rpb24g'@; put 'TChfZSxUZSxTZSx6ZSl7cmV0dXJuIF8uY29weUZpbGVTeW5jKFRlLFNlKSx6ZS5wcmVzZXJ2ZVRpbWVzdGFtcHMmJmZ1bmN0aW9uIFkoX2UsVGUsU2UpeyhmdW5jdGlvbiBCKF9lKXtyZXR1cm4hKDEyOCZfZSl9KShfZSkmJmZ1bmN0aW9uIFcoX2UsVGUpe1ooX2UsMTI4fFRlKX0oU2UsX2Up'@; put 'LGZ1bmN0aW9uIFgoX2UsVGUpe2NvbnN0IFNlPV8uc3RhdFN5bmMoX2UpO3coVGUsU2UuYXRpbWUsU2UubXRpbWUpfShUZSxTZSl9KF9lLm1vZGUsVGUsU2UpLFooU2UsX2UubW9kZSl9ZnVuY3Rpb24gWihfZSxUZSl7cmV0dXJuIF8uY2htb2RTeW5jKF9lLFRlKX1mdW5jdGlvbiB0ZShfZSxU'@; put 'ZSxTZSl7Y29uc3QgemU9Xy5vcGVuZGlyU3luYyhfZSk7dHJ5e2xldCB6O2Zvcig7bnVsbCE9PSh6PXplLnJlYWRTeW5jKCkpOylpZSh6Lm5hbWUsX2UsVGUsU2UpfWZpbmFsbHl7emUuY2xvc2VTeW5jKCl9fWZ1bmN0aW9uIGllKF9lLFRlLFNlLHplKXtjb25zdCB6PXAuam9pbihUZSxfZSks'@; put 'Zz1wLmpvaW4oU2UsX2UpO2lmKHplLmZpbHRlciYmIXplLmZpbHRlcih6LGcpKXJldHVybjtjb25zdHtkZXN0U3RhdDp5fT1GLmNoZWNrUGF0aHNTeW5jKHosZywiY29weSIsemUpO3JldHVybiBSKHkseixnLHplKX1jZS5leHBvcnRzPWZ1bmN0aW9uIEgoX2UsVGUsU2UpeyJmdW5jdGlvbiI9'@; put 'PXR5cGVvZiBTZSYmKFNlPXtmaWx0ZXI6U2V9KSwoU2U9U2V8fHt9KS5jbG9iYmVyPSEoImNsb2JiZXIiaW4gU2UpfHwhIVNlLmNsb2JiZXIsU2Uub3ZlcndyaXRlPSJvdmVyd3JpdGUiaW4gU2U/ISFTZS5vdmVyd3JpdGU6U2UuY2xvYmJlcixTZS5wcmVzZXJ2ZVRpbWVzdGFtcHMmJiJpYTMy'@; put 'Ij09PUQuYXJjaCYmRC5lbWl0V2FybmluZygiVXNpbmcgdGhlIHByZXNlcnZlVGltZXN0YW1wcyBvcHRpb24gaW4gMzItYml0IG5vZGUgaXMgbm90IHJlY29tbWVuZGVkO1xuXG5cdHNlZSBodHRwczovL2dpdGh1Yi5jb20vanByaWNoYXJkc29uL25vZGUtZnMtZXh0cmEvaXNzdWVzLzI2OSIs'@; put 'Ildhcm5pbmciLCJmcy1leHRyYS1XQVJOMDAwMiIpO2NvbnN0e3NyY1N0YXQ6emUsZGVzdFN0YXQ6en09Ri5jaGVja1BhdGhzU3luYyhfZSxUZSwiY29weSIsU2UpO2lmKEYuY2hlY2tQYXJlbnRQYXRoc1N5bmMoX2UsemUsVGUsImNvcHkiKSxTZS5maWx0ZXImJiFTZS5maWx0ZXIoX2UsVGUp'@; put 'KXJldHVybjtjb25zdCBnPXAuZGlybmFtZShUZSk7cmV0dXJuIF8uZXhpc3RzU3luYyhnKXx8TihnKSxSKHosX2UsVGUsU2UpfX0sNzE4OTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDQxNTUpO2NvbnN0IF89Yig3NzQ5KSxwPWIoMjUyMCkse21rZGlyczpOfT1iKDEzODEpLHtw'@; put 'YXRoRXhpc3RzOnd9PWIoOTI1Nykse3V0aW1lc01pbGxpczpGfT1iKDMxOCksSD1iKDI3MzMpO2Z1bmN0aW9uIGooKXtyZXR1cm4oaj1fYXN5bmNUb0dlbmVyYXRvcihmdW5jdGlvbiooVGUsU2UsemU9e30peyJmdW5jdGlvbiI9PXR5cGVvZiB6ZSYmKHplPXtmaWx0ZXI6emV9KSx6ZS5jbG9i'@; put 'YmVyPSEoImNsb2JiZXIiaW4gemUpfHwhIXplLmNsb2JiZXIsemUub3ZlcndyaXRlPSJvdmVyd3JpdGUiaW4gemU/ISF6ZS5vdmVyd3JpdGU6emUuY2xvYmJlcix6ZS5wcmVzZXJ2ZVRpbWVzdGFtcHMmJiJpYTMyIj09PUQuYXJjaCYmRC5lbWl0V2FybmluZygiVXNpbmcgdGhlIHByZXNlcnZl'@; put 'VGltZXN0YW1wcyBvcHRpb24gaW4gMzItYml0IG5vZGUgaXMgbm90IHJlY29tbWVuZGVkO1xuXG5cdHNlZSBodHRwczovL2dpdGh1Yi5jb20vanByaWNoYXJkc29uL25vZGUtZnMtZXh0cmEvaXNzdWVzLzI2OSIsIldhcm5pbmciLCJmcy1leHRyYS1XQVJOMDAwMSIpO2NvbnN0e3NyY1N0YXQ6'@; put 'eixkZXN0U3RhdDpnfT15aWVsZCBILmNoZWNrUGF0aHMoVGUsU2UsImNvcHkiLHplKTtpZih5aWVsZCBILmNoZWNrUGFyZW50UGF0aHMoVGUseixTZSwiY29weSIpLCEoeWllbGQgUChUZSxTZSx6ZSkpKXJldHVybjtjb25zdCB4PXAuZGlybmFtZShTZSk7KHlpZWxkIHcoeCkpfHwoeWllbGQg'@; put 'Tih4KSkseWllbGQgWShnLFRlLFNlLHplKX0pKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gUChUZSxTZSx6ZSl7cmV0dXJuIEwuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEwoKXtyZXR1cm4oTD1fYXN5bmNUb0dlbmVyYXRvcihmdW5jdGlvbiooVGUsU2UsemUpe3Jl'@; put 'dHVybiF6ZS5maWx0ZXJ8fHplLmZpbHRlcihUZSxTZSl9KSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFkoVGUsU2UsemUseil7cmV0dXJuIEIuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEIoKXtyZXR1cm4gQj1fYXN5bmNUb0dlbmVyYXRvcihmdW5jdGlvbiooVGUs'@; put 'U2UsemUseil7Y29uc3QgeT15aWVsZCh6LmRlcmVmZXJlbmNlP18uc3RhdDpfLmxzdGF0KShTZSk7aWYoeS5pc0RpcmVjdG9yeSgpKXJldHVybiBmdW5jdGlvbiBpZShUZSxTZSx6ZSx6LGcpe3JldHVybiBzZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KHksVGUsU2UsemUseik7aWYoeS5pc0Zp'@; put 'bGUoKXx8eS5pc0NoYXJhY3RlckRldmljZSgpfHx5LmlzQmxvY2tEZXZpY2UoKSlyZXR1cm4gZnVuY3Rpb24gVyhUZSxTZSx6ZSx6LGcpe3JldHVybiBaLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0oeSxUZSxTZSx6ZSx6KTtpZih5LmlzU3ltYm9saWNMaW5rKCkpcmV0dXJuIGZ1bmN0aW9uIGdl'@; put 'KFRlLFNlLHplLHope3JldHVybiBfZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KFRlLFNlLHplLHopO3Rocm93IHkuaXNTb2NrZXQoKT9uZXcgRXJyb3IoYENhbm5vdCBjb3B5IGEgc29ja2V0IGZpbGU6ICR7U2V9YCk6eS5pc0ZJRk8oKT9uZXcgRXJyb3IoYENhbm5vdCBjb3B5IGEgRklGTyBw'@; put 'aXBlOiAke1NlfWApOm5ldyBFcnJvcihgVW5rbm93biBmaWxlOiAke1NlfWApfSksQi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gWigpe3JldHVybihaPV9hc3luY1RvR2VuZXJhdG9yKGZ1bmN0aW9uKihUZSxTZSx6ZSx6LGcpe2lmKCFTZSlyZXR1cm4gWChUZSx6ZSx6LGcpO2lm'@; put 'KGcub3ZlcndyaXRlKXJldHVybiB5aWVsZCBfLnVubGluayh6KSxYKFRlLHplLHosZyk7aWYoZy5lcnJvck9uRXhpc3QpdGhyb3cgbmV3IEVycm9yKGAnJHt6fScgYWxyZWFkeSBleGlzdHNgKX0pKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gWChUZSxTZSx6ZSx6KXtyZXR1cm4g'@; put 'US5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gUSgpe3JldHVybihRPV9hc3luY1RvR2VuZXJhdG9yKGZ1bmN0aW9uKihUZSxTZSx6ZSx6KXtpZih5aWVsZCBfLmNvcHlGaWxlKFNlLHplKSx6LnByZXNlcnZlVGltZXN0YW1wcyl7KGZ1bmN0aW9uIHEoVGUpe3JldHVybiEoMTI4JlRl'@; put 'KX0pKFRlLm1vZGUpJiYoeWllbGQgZnVuY3Rpb24gdGUoVGUsU2Upe3JldHVybiBfLmNobW9kKFRlLDEyOHxTZSl9KHplLFRlLm1vZGUpKTtjb25zdCBnPXlpZWxkIF8uc3RhdChTZSk7eWllbGQgRih6ZSxnLmF0aW1lLGcubXRpbWUpfXJldHVybiBfLmNobW9kKHplLFRlLm1vZGUpfSkpLmFw'@; put 'cGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBzZSgpe3JldHVybihzZT1fYXN5bmNUb0dlbmVyYXRvcihmdW5jdGlvbiooVGUsU2UsemUseixnKXtTZXx8KHlpZWxkIF8ubWtkaXIoeikpO2NvbnN0IHk9W107dmFyIFQseD0hMSxDPSExO3RyeXtmb3IodmFyIFUsVj1fYXN5bmNJdGVyYXRv'@; put 'cih5aWVsZCBfLm9wZW5kaXIoemUpKTt4PSEoVT15aWVsZCBWLm5leHQoKSkuZG9uZTt4PSExKXtjb25zdCBFPVUudmFsdWU7e2NvbnN0IG09cC5qb2luKHplLEUubmFtZSksQT1wLmpvaW4oeixFLm5hbWUpO3kucHVzaChQKG0sQSxnKS50aGVuKGFlPT57aWYoYWUpcmV0dXJuIEguY2hlY2tQ'@; put 'YXRocyhtLEEsImNvcHkiLGcpLnRoZW4oKHtkZXN0U3RhdDpuZX0pPT5ZKG5lLG0sQSxnKSl9KSl9fX1jYXRjaChFKXtDPSEwLFQ9RX1maW5hbGx5e3RyeXt4JiZudWxsIT1WLnJldHVybiYmKHlpZWxkIFYucmV0dXJuKCkpfWZpbmFsbHl7aWYoQyl0aHJvdyBUfX15aWVsZCBQcm9taXNlLmFs'@; put 'bCh5KSxTZXx8KHlpZWxkIF8uY2htb2QoeixUZS5tb2RlKSl9KSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIF9lKCl7cmV0dXJuKF9lPV9hc3luY1RvR2VuZXJhdG9yKGZ1bmN0aW9uKihUZSxTZSx6ZSx6KXtsZXQgZz15aWVsZCBfLnJlYWRsaW5rKFNlKTtpZih6LmRlcmVmZXJl'@; put 'bmNlJiYoZz1wLnJlc29sdmUoRC5jd2QoKSxnKSksIVRlKXJldHVybiBfLnN5bWxpbmsoZyx6ZSk7bGV0IHk9bnVsbDt0cnl7eT15aWVsZCBfLnJlYWRsaW5rKHplKX1jYXRjaCh4KXtpZigiRUlOVkFMIj09PXguY29kZXx8IlVOS05PV04iPT09eC5jb2RlKXJldHVybiBfLnN5bWxpbmsoZyx6'@; put 'ZSk7dGhyb3cgeH1pZih6LmRlcmVmZXJlbmNlJiYoeT1wLnJlc29sdmUoRC5jd2QoKSx5KSksSC5pc1NyY1N1YmRpcihnLHkpKXRocm93IG5ldyBFcnJvcihgQ2Fubm90IGNvcHkgJyR7Z30nIHRvIGEgc3ViZGlyZWN0b3J5IG9mIGl0c2VsZiwgJyR7eX0nLmApO2lmKEguaXNTcmNTdWJkaXIo'@; put 'eSxnKSl0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBvdmVyd3JpdGUgJyR7eX0nIHdpdGggJyR7Z30nLmApO3JldHVybiB5aWVsZCBfLnVubGluayh6ZSksXy5zeW1saW5rKGcsemUpfSkpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1jZS5leHBvcnRzPWZ1bmN0aW9uIFIoVGUsU2Upe3JldHVybiBq'@; put 'LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LDY0NjQ6KGNlLEosYik9PnsidXNlIHN0cmljdCI7Y29uc3QgRD1iKDg5ODEpLmZyb21Qcm9taXNlO2NlLmV4cG9ydHM9e2NvcHk6RChiKDcxODkpKSxjb3B5U3luYzpiKDM4NzMpfX0sNTU5MDooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBE'@; put 'PWIoODk4MSkuZnJvbVByb21pc2UsXz1iKDc3NDkpLHA9YigyNTIwKSxOPWIoMTM4MSksdz1iKDQ1NDIpLEY9RChmdW5jdGlvbigpe3ZhciBSPV9hc3luY1RvR2VuZXJhdG9yKGZ1bmN0aW9uKihQKXtsZXQgTDt0cnl7TD15aWVsZCBfLnJlYWRkaXIoUCl9Y2F0Y2h7cmV0dXJuIE4ubWtkaXJz'@; put 'KFApfXJldHVybiBQcm9taXNlLmFsbChMLm1hcChZPT53LnJlbW92ZShwLmpvaW4oUCxZKSkpKX0pO3JldHVybiBmdW5jdGlvbiBqKFApe3JldHVybiBSLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpO2Z1bmN0aW9uIEgoUil7bGV0IGo7dHJ5e2o9Xy5yZWFkZGlyU3luYyhSKX1jYXRjaHty'@; put 'ZXR1cm4gTi5ta2RpcnNTeW5jKFIpfWouZm9yRWFjaChQPT57UD1wLmpvaW4oUixQKSx3LnJlbW92ZVN5bmMoUCl9KX1jZS5leHBvcnRzPXtlbXB0eURpclN5bmM6SCxlbXB0eWRpclN5bmM6SCxlbXB0eURpcjpGLGVtcHR5ZGlyOkZ9fSw2NTMwOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO2Nv'@; put 'bnN0IEQ9Yig4OTgxKS5mcm9tUHJvbWlzZSxfPWIoMjUyMCkscD1iKDc3NDkpLE49YigxMzgxKTtmdW5jdGlvbiBGKCl7cmV0dXJuKEY9X2FzeW5jVG9HZW5lcmF0b3IoZnVuY3Rpb24qKFIpe2xldCBqO3RyeXtqPXlpZWxkIHAuc3RhdChSKX1jYXRjaHt9aWYoaiYmai5pc0ZpbGUoKSlyZXR1'@; put 'cm47Y29uc3QgUD1fLmRpcm5hbWUoUik7bGV0IEw9bnVsbDt0cnl7TD15aWVsZCBwLnN0YXQoUCl9Y2F0Y2goWSl7aWYoIkVOT0VOVCI9PT1ZLmNvZGUpcmV0dXJuIHlpZWxkIE4ubWtkaXJzKFApLHZvaWQoeWllbGQgcC53cml0ZUZpbGUoUiwiIikpO3Rocm93IFl9TC5pc0RpcmVjdG9yeSgp'@; put 'P3lpZWxkIHAud3JpdGVGaWxlKFIsIiIpOnlpZWxkIHAucmVhZGRpcihQKX0pKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9Y2UuZXhwb3J0cz17Y3JlYXRlRmlsZTpEKGZ1bmN0aW9uIHcoUil7cmV0dXJuIEYuYXBwbHkodGhpcyxhcmd1bWVudHMpfSksY3JlYXRlRmlsZVN5bmM6ZnVuY3Rpb24g'@; put 'SChSKXtsZXQgajt0cnl7aj1wLnN0YXRTeW5jKFIpfWNhdGNoe31pZihqJiZqLmlzRmlsZSgpKXJldHVybjtjb25zdCBQPV8uZGlybmFtZShSKTt0cnl7cC5zdGF0U3luYyhQKS5pc0RpcmVjdG9yeSgpfHxwLnJlYWRkaXJTeW5jKFApfWNhdGNoKEwpe2lmKCFMfHwiRU5PRU5UIiE9PUwuY29k'@; put 'ZSl0aHJvdyBMO04ubWtkaXJzU3luYyhQKX1wLndyaXRlRmlsZVN5bmMoUiwiIil9fX0sMTcyMDooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdHtjcmVhdGVGaWxlOkQsY3JlYXRlRmlsZVN5bmM6X309Yig2NTMwKSx7Y3JlYXRlTGluazpwLGNyZWF0ZUxpbmtTeW5jOk59PWIoNDE0Nyks'@; put 'e2NyZWF0ZVN5bWxpbms6dyxjcmVhdGVTeW1saW5rU3luYzpGfT1iKDM2MzUpO2NlLmV4cG9ydHM9e2NyZWF0ZUZpbGU6RCxjcmVhdGVGaWxlU3luYzpfLGVuc3VyZUZpbGU6RCxlbnN1cmVGaWxlU3luYzpfLGNyZWF0ZUxpbms6cCxjcmVhdGVMaW5rU3luYzpOLGVuc3VyZUxpbms6cCxlbnN1'@; put 'cmVMaW5rU3luYzpOLGNyZWF0ZVN5bWxpbms6dyxjcmVhdGVTeW1saW5rU3luYzpGLGVuc3VyZVN5bWxpbms6dyxlbnN1cmVTeW1saW5rU3luYzpGfX0sNDE0NzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBEPWIoODk4MSkuZnJvbVByb21pc2UsXz1iKDI1MjApLHA9Yig3NzQ5KSxO'@; put 'PWIoMTM4MSkse3BhdGhFeGlzdHM6d309Yig5MjU3KSx7YXJlSWRlbnRpY2FsOkZ9PWIoMjczMyk7ZnVuY3Rpb24gUigpe3JldHVybihSPV9hc3luY1RvR2VuZXJhdG9yKGZ1bmN0aW9uKihQLEwpe2xldCBZLEI7dHJ5e1k9eWllbGQgcC5sc3RhdChMKX1jYXRjaHt9dHJ5e0I9eWllbGQgcC5s'@; put 'c3RhdChQKX1jYXRjaChYKXt0aHJvdyBYLm1lc3NhZ2U9WC5tZXNzYWdlLnJlcGxhY2UoImxzdGF0IiwiZW5zdXJlTGluayIpLFh9aWYoWSYmRihCLFkpKXJldHVybjtjb25zdCBXPV8uZGlybmFtZShMKTsoeWllbGQgdyhXKSl8fCh5aWVsZCBOLm1rZGlycyhXKSkseWllbGQgcC5saW5rKFAs'@; put 'TCl9KSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWNlLmV4cG9ydHM9e2NyZWF0ZUxpbms6RChmdW5jdGlvbiBIKFAsTCl7cmV0dXJuIFIuYXBwbHkodGhpcyxhcmd1bWVudHMpfSksY3JlYXRlTGlua1N5bmM6ZnVuY3Rpb24gaihQLEwpe2xldCBZO3RyeXtZPXAubHN0YXRTeW5jKEwpfWNhdGNo'@; put 'e310cnl7Y29uc3QgWj1wLmxzdGF0U3luYyhQKTtpZihZJiZGKFosWSkpcmV0dXJufWNhdGNoKFope3Rocm93IFoubWVzc2FnZT1aLm1lc3NhZ2UucmVwbGFjZSgibHN0YXQiLCJlbnN1cmVMaW5rIiksWn1jb25zdCBCPV8uZGlybmFtZShMKTtyZXR1cm4gcC5leGlzdHNTeW5jKEIpfHxOLm1r'@; put 'ZGlyc1N5bmMoQikscC5saW5rU3luYyhQLEwpfX19LDYwNzI6KGNlLEosYik9PnsidXNlIHN0cmljdCI7Y29uc3QgRD1iKDI1MjApLF89Yig3NzQ5KSx7cGF0aEV4aXN0czpwfT1iKDkyNTcpLE49Yig4OTgxKS5mcm9tUHJvbWlzZTtmdW5jdGlvbiBGKCl7cmV0dXJuKEY9X2FzeW5jVG9HZW5l'@; put 'cmF0b3IoZnVuY3Rpb24qKFIsail7aWYoRC5pc0Fic29sdXRlKFIpKXt0cnl7eWllbGQgXy5sc3RhdChSKX1jYXRjaChCKXt0aHJvdyBCLm1lc3NhZ2U9Qi5tZXNzYWdlLnJlcGxhY2UoImxzdGF0IiwiZW5zdXJlU3ltbGluayIpLEJ9cmV0dXJue3RvQ3dkOlIsdG9Ec3Q6Un19Y29uc3QgUD1E'@; put 'LmRpcm5hbWUoaiksTD1ELmpvaW4oUCxSKTtpZih5aWVsZCBwKEwpKXJldHVybnt0b0N3ZDpMLHRvRHN0OlJ9O3RyeXt5aWVsZCBfLmxzdGF0KFIpfWNhdGNoKEIpe3Rocm93IEIubWVzc2FnZT1CLm1lc3NhZ2UucmVwbGFjZSgibHN0YXQiLCJlbnN1cmVTeW1saW5rIiksQn1yZXR1cm57dG9D'@; put 'd2Q6Uix0b0RzdDpELnJlbGF0aXZlKFAsUil9fSkpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1jZS5leHBvcnRzPXtzeW1saW5rUGF0aHM6TihmdW5jdGlvbiB3KFIsail7cmV0dXJuIEYuYXBwbHkodGhpcyxhcmd1bWVudHMpfSksc3ltbGlua1BhdGhzU3luYzpmdW5jdGlvbiBIKFIsail7aWYo'@; put 'RC5pc0Fic29sdXRlKFIpKXtpZighXy5leGlzdHNTeW5jKFIpKXRocm93IG5ldyBFcnJvcigiYWJzb2x1dGUgc3JjcGF0aCBkb2VzIG5vdCBleGlzdCIpO3JldHVybnt0b0N3ZDpSLHRvRHN0OlJ9fWNvbnN0IFA9RC5kaXJuYW1lKGopLEw9RC5qb2luKFAsUik7aWYoXy5leGlzdHNTeW5jKEwp'@; put 'KXJldHVybnt0b0N3ZDpMLHRvRHN0OlJ9O2lmKCFfLmV4aXN0c1N5bmMoUikpdGhyb3cgbmV3IEVycm9yKCJyZWxhdGl2ZSBzcmNwYXRoIGRvZXMgbm90IGV4aXN0Iik7cmV0dXJue3RvQ3dkOlIsdG9Ec3Q6RC5yZWxhdGl2ZShQLFIpfX19fSw5MjU5OihjZSxKLGIpPT57InVzZSBzdHJpY3Qi'@; put 'O2NvbnN0IEQ9Yig3NzQ5KSxfPWIoODk4MSkuZnJvbVByb21pc2U7ZnVuY3Rpb24gTigpe3JldHVybihOPV9hc3luY1RvR2VuZXJhdG9yKGZ1bmN0aW9uKihGLEgpe2lmKEgpcmV0dXJuIEg7bGV0IFI7dHJ5e1I9eWllbGQgRC5sc3RhdChGKX1jYXRjaHtyZXR1cm4iZmlsZSJ9cmV0dXJuIFIm'@; put 'JlIuaXNEaXJlY3RvcnkoKT8iZGlyIjoiZmlsZSJ9KSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWNlLmV4cG9ydHM9e3N5bWxpbmtUeXBlOl8oZnVuY3Rpb24gcChGLEgpe3JldHVybiBOLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pLHN5bWxpbmtUeXBlU3luYzpmdW5jdGlvbiB3KEYsSCl7aWYo'@; put 'SClyZXR1cm4gSDtsZXQgUjt0cnl7Uj1ELmxzdGF0U3luYyhGKX1jYXRjaHtyZXR1cm4iZmlsZSJ9cmV0dXJuIFImJlIuaXNEaXJlY3RvcnkoKT8iZGlyIjoiZmlsZSJ9fX0sMzYzNTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBEPWIoODk4MSkuZnJvbVByb21pc2UsXz1iKDI1MjAp'@; put 'LHA9Yig3NzQ5KSx7bWtkaXJzOk4sbWtkaXJzU3luYzp3fT1iKDEzODEpLHtzeW1saW5rUGF0aHM6RixzeW1saW5rUGF0aHNTeW5jOkh9PWIoNjA3Mikse3N5bWxpbmtUeXBlOlIsc3ltbGlua1R5cGVTeW5jOmp9PWIoOTI1OSkse3BhdGhFeGlzdHM6UH09Yig5MjU3KSx7YXJlSWRlbnRpY2Fs'@; put 'Okx9PWIoMjczMyk7ZnVuY3Rpb24gQigpe3JldHVybihCPV9hc3luY1RvR2VuZXJhdG9yKGZ1bmN0aW9uKihaLFgsUSl7bGV0IHE7dHJ5e3E9eWllbGQgcC5sc3RhdChYKX1jYXRjaHt9aWYocSYmcS5pc1N5bWJvbGljTGluaygpKXtjb25zdFtnZSxfZV09eWllbGQgUHJvbWlzZS5hbGwoW3Au'@; put 'c3RhdChaKSxwLnN0YXQoWCldKTtpZihMKGdlLF9lKSlyZXR1cm59Y29uc3QgdGU9eWllbGQgRihaLFgpO1o9dGUudG9Ec3Q7Y29uc3QgaWU9eWllbGQgUih0ZS50b0N3ZCxRKSxzZT1fLmRpcm5hbWUoWCk7cmV0dXJuKHlpZWxkIFAoc2UpKXx8KHlpZWxkIE4oc2UpKSxwLnN5bWxpbmsoWixY'@; put 'LGllKX0pKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9Y2UuZXhwb3J0cz17Y3JlYXRlU3ltbGluazpEKGZ1bmN0aW9uIFkoWixYLFEpe3JldHVybiBCLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pLGNyZWF0ZVN5bWxpbmtTeW5jOmZ1bmN0aW9uIFcoWixYLFEpe2xldCBxO3RyeXtxPXAubHN0YXRT'@; put 'eW5jKFgpfWNhdGNoe31pZihxJiZxLmlzU3ltYm9saWNMaW5rKCkpe2NvbnN0IGdlPXAuc3RhdFN5bmMoWiksX2U9cC5zdGF0U3luYyhYKTtpZihMKGdlLF9lKSlyZXR1cm59Y29uc3QgdGU9SChaLFgpO1o9dGUudG9Ec3QsUT1qKHRlLnRvQ3dkLFEpO2NvbnN0IGllPV8uZGlybmFtZShYKTty'@; put 'ZXR1cm4gcC5leGlzdHNTeW5jKGllKXx8dyhpZSkscC5zeW1saW5rU3luYyhaLFgsUSl9fX0sNzc0OTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDQxNTUpO2NvbnN0IF89Yig4OTgxKS5mcm9tQ2FsbGJhY2sscD1iKDc3KSxOPVsiYWNjZXNzIiwiYXBwZW5kRmlsZSIsImNobW9k'@; put 'IiwiY2hvd24iLCJjbG9zZSIsImNvcHlGaWxlIiwiY3AiLCJmY2htb2QiLCJmY2hvd24iLCJmZGF0YXN5bmMiLCJmc3RhdCIsImZzeW5jIiwiZnRydW5jYXRlIiwiZnV0aW1lcyIsImdsb2IiLCJsY2htb2QiLCJsY2hvd24iLCJsdXRpbWVzIiwibGluayIsImxzdGF0IiwibWtkaXIiLCJta2R0'@; put 'ZW1wIiwib3BlbiIsIm9wZW5kaXIiLCJyZWFkZGlyIiwicmVhZEZpbGUiLCJyZWFkbGluayIsInJlYWxwYXRoIiwicmVuYW1lIiwicm0iLCJybWRpciIsInN0YXQiLCJzdGF0ZnMiLCJzeW1saW5rIiwidHJ1bmNhdGUiLCJ1bmxpbmsiLCJ1dGltZXMiLCJ3cml0ZUZpbGUiXS5maWx0ZXIodz0+'@; put 'ImZ1bmN0aW9uIj09dHlwZW9mIHBbd10pO09iamVjdC5hc3NpZ24oSixwKSxOLmZvckVhY2godz0+e0pbd109XyhwW3ddKX0pLEouZXhpc3RzPWZ1bmN0aW9uKHcsRil7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIEY/cC5leGlzdHModyxGKTpuZXcgUHJvbWlzZShIPT5wLmV4aXN0cyh3LEgp'@; put 'KX0sSi5yZWFkPWZ1bmN0aW9uKHcsRixILFIsaixQKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgUD9wLnJlYWQodyxGLEgsUixqLFApOm5ldyBQcm9taXNlKChMLFkpPT57cC5yZWFkKHcsRixILFIsaiwoQixXLFopPT57aWYoQilyZXR1cm4gWShCKTtMKHtieXRlc1JlYWQ6VyxidWZmZXI6'@; put 'Wn0pfSl9KX0sSi53cml0ZT1mdW5jdGlvbih3LEYsLi4uSCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIEhbSC5sZW5ndGgtMV0/cC53cml0ZSh3LEYsLi4uSCk6bmV3IFByb21pc2UoKFIsaik9PntwLndyaXRlKHcsRiwuLi5ILChQLEwsWSk9PntpZihQKXJldHVybiBqKFApO1Ioe2J5dGVz'@; put 'V3JpdHRlbjpMLGJ1ZmZlcjpZfSl9KX0pfSxKLnJlYWR2PWZ1bmN0aW9uKHcsRiwuLi5IKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgSFtILmxlbmd0aC0xXT9wLnJlYWR2KHcsRiwuLi5IKTpuZXcgUHJvbWlzZSgoUixqKT0+e3AucmVhZHYodyxGLC4uLkgsKFAsTCxZKT0+e2lmKFApcmV0'@; put 'dXJuIGooUCk7Uih7Ynl0ZXNSZWFkOkwsYnVmZmVyczpZfSl9KX0pfSxKLndyaXRldj1mdW5jdGlvbih3LEYsLi4uSCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIEhbSC5sZW5ndGgtMV0/cC53cml0ZXYodyxGLC4uLkgpOm5ldyBQcm9taXNlKChSLGopPT57cC53cml0ZXYodyxGLC4uLkgs'@; put 'KFAsTCxZKT0+e2lmKFApcmV0dXJuIGooUCk7Uih7Ynl0ZXNXcml0dGVuOkwsYnVmZmVyczpZfSl9KX0pfSwiZnVuY3Rpb24iPT10eXBlb2YgcC5yZWFscGF0aC5uYXRpdmU/Si5yZWFscGF0aC5uYXRpdmU9XyhwLnJlYWxwYXRoLm5hdGl2ZSk6RC5lbWl0V2FybmluZygiZnMucmVhbHBhdGgu'@; put 'bmF0aXZlIGlzIG5vdCBhIGZ1bmN0aW9uLiBJcyBmcyBiZWluZyBtb25rZXktcGF0Y2hlZD8iLCJXYXJuaW5nIiwiZnMtZXh0cmEtV0FSTjAwMDMiKX0sNTY3NDooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPXsuLi5iKDc3NDkpLC4uLmIoNjQ2NCksLi4uYig1NTkwKSwuLi5i'@; put 'KDE3MjApLC4uLmIoNjU3MyksLi4uYigxMzgxKSwuLi5iKDUzMCksLi4uYig0NjcwKSwuLi5iKDkyNTcpLC4uLmIoNDU0Mil9fSw2NTczOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO2NvbnN0IEQ9Yig4OTgxKS5mcm9tUHJvbWlzZSxfPWIoNzE4Myk7Xy5vdXRwdXRKc29uPUQoYigzNTA4KSks'@; put 'Xy5vdXRwdXRKc29uU3luYz1iKDk1NzgpLF8ub3V0cHV0SlNPTj1fLm91dHB1dEpzb24sXy5vdXRwdXRKU09OU3luYz1fLm91dHB1dEpzb25TeW5jLF8ud3JpdGVKU09OPV8ud3JpdGVKc29uLF8ud3JpdGVKU09OU3luYz1fLndyaXRlSnNvblN5bmMsXy5yZWFkSlNPTj1fLnJlYWRKc29uLF8u'@; put 'cmVhZEpTT05TeW5jPV8ucmVhZEpzb25TeW5jLGNlLmV4cG9ydHM9X30sNzE4MzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBEPWIoNjgxMyk7Y2UuZXhwb3J0cz17cmVhZEpzb246RC5yZWFkRmlsZSxyZWFkSnNvblN5bmM6RC5yZWFkRmlsZVN5bmMsd3JpdGVKc29uOkQud3JpdGVG'@; put 'aWxlLHdyaXRlSnNvblN5bmM6RC53cml0ZUZpbGVTeW5jfX0sOTU3ODooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdHtzdHJpbmdpZnk6RH09Yig2NzgwKSx7b3V0cHV0RmlsZVN5bmM6X309Yig0NjcwKTtjZS5leHBvcnRzPWZ1bmN0aW9uIHAoTix3LEYpe2NvbnN0IEg9RCh3LEYpO18o'@; put 'TixILEYpfX0sMzUwODooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdHtzdHJpbmdpZnk6RH09Yig2NzgwKSx7b3V0cHV0RmlsZTpffT1iKDQ2NzApO2Z1bmN0aW9uIE4oKXtyZXR1cm4oTj1fYXN5bmNUb0dlbmVyYXRvcihmdW5jdGlvbioodyxGLEg9e30pe2NvbnN0IFI9RChGLEgpO3lp'@; put 'ZWxkIF8odyxSLEgpfSkpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1jZS5leHBvcnRzPWZ1bmN0aW9uIHAodyxGKXtyZXR1cm4gTi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSwxMzgxOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO2NvbnN0IEQ9Yig4OTgxKS5mcm9tUHJvbWlzZSx7bWFrZURpcjpf'@; put 'LG1ha2VEaXJTeW5jOnB9PWIoODIzMyksTj1EKF8pO2NlLmV4cG9ydHM9e21rZGlyczpOLG1rZGlyc1N5bmM6cCxta2RpcnA6Tixta2RpcnBTeW5jOnAsZW5zdXJlRGlyOk4sZW5zdXJlRGlyU3luYzpwfX0sODIzMzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBEPWIoNzc0OSkse2No'@; put 'ZWNrUGF0aDpffT1iKDM0NjgpLHA9Tj0+Im51bWJlciI9PXR5cGVvZiBOP046e21vZGU6NTExLC4uLk59Lm1vZGU7Y2UuZXhwb3J0cy5tYWtlRGlyPWZ1bmN0aW9uKCl7dmFyIE49X2FzeW5jVG9HZW5lcmF0b3IoZnVuY3Rpb24qKHcsRil7cmV0dXJuIF8odyksRC5ta2Rpcih3LHttb2RlOnAo'@; put 'RikscmVjdXJzaXZlOiEwfSl9KTtyZXR1cm4gZnVuY3Rpb24odyxGKXtyZXR1cm4gTi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLGNlLmV4cG9ydHMubWFrZURpclN5bmM9KE4sdyk9PihfKE4pLEQubWtkaXJTeW5jKE4se21vZGU6cCh3KSxyZWN1cnNpdmU6ITB9KSl9LDM0Njg6KGNlLEos'@; put 'Yik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig0MTU1KTtjb25zdCBfPWIoMjUyMCk7Y2UuZXhwb3J0cy5jaGVja1BhdGg9ZnVuY3Rpb24oTil7aWYoIndpbjMyIj09PUQucGxhdGZvcm0mJi9bPD46Inw/Kl0vLnRlc3QoTi5yZXBsYWNlKF8ucGFyc2UoTikucm9vdCwiIikpKXtjb25zdCBGPW5l'@; put 'dyBFcnJvcihgUGF0aCBjb250YWlucyBpbnZhbGlkIGNoYXJhY3RlcnM6ICR7Tn1gKTt0aHJvdyBGLmNvZGU9IkVJTlZBTCIsRn19fSw1MzA6KGNlLEosYik9PnsidXNlIHN0cmljdCI7Y29uc3QgRD1iKDg5ODEpLmZyb21Qcm9taXNlO2NlLmV4cG9ydHM9e21vdmU6RChiKDQzNikpLG1vdmVT'@; put 'eW5jOmIoMzczNil9fSwzNzM2OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO2NvbnN0IEQ9Yig3NyksXz1iKDI1MjApLHA9Yig2NDY0KS5jb3B5U3luYyxOPWIoNDU0MikucmVtb3ZlU3luYyx3PWIoMTM4MSkubWtkaXJwU3luYyxGPWIoMjczMyk7ZnVuY3Rpb24gUChZLEIsVyl7dHJ5e0QucmVu'@; put 'YW1lU3luYyhZLEIpfWNhdGNoKFope2lmKCJFWERFViIhPT1aLmNvZGUpdGhyb3cgWjtyZXR1cm4gZnVuY3Rpb24gTChZLEIsVyl7cmV0dXJuIHAoWSxCLHtvdmVyd3JpdGU6VyxlcnJvck9uRXhpc3Q6ITAscHJlc2VydmVUaW1lc3RhbXBzOiEwfSksTihZKX0oWSxCLFcpfX1jZS5leHBvcnRz'@; put 'PWZ1bmN0aW9uIEgoWSxCLFcpe2NvbnN0IFo9KFc9V3x8e30pLm92ZXJ3cml0ZXx8Vy5jbG9iYmVyfHwhMSx7c3JjU3RhdDpYLGlzQ2hhbmdpbmdDYXNlOlE9ITF9PUYuY2hlY2tQYXRoc1N5bmMoWSxCLCJtb3ZlIixXKTtyZXR1cm4gRi5jaGVja1BhcmVudFBhdGhzU3luYyhZLFgsQiwibW92'@; put 'ZSIpLGZ1bmN0aW9uIFIoWSl7Y29uc3QgQj1fLmRpcm5hbWUoWSk7cmV0dXJuIF8ucGFyc2UoQikucm9vdD09PUJ9KEIpfHx3KF8uZGlybmFtZShCKSksZnVuY3Rpb24gaihZLEIsVyxaKXtpZihaKXJldHVybiBQKFksQixXKTtpZihXKXJldHVybiBOKEIpLFAoWSxCLFcpO2lmKEQuZXhpc3Rz'@; put 'U3luYyhCKSl0aHJvdyBuZXcgRXJyb3IoImRlc3QgYWxyZWFkeSBleGlzdHMuIik7cmV0dXJuIFAoWSxCLFcpfShZLEIsWixRKX19LDQzNjooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBEPWIoNzc0OSksXz1iKDI1MjApLHtjb3B5OnB9PWIoNjQ2NCkse3JlbW92ZTpOfT1iKDQ1NDIp'@; put 'LHtta2RpcnA6d309YigxMzgxKSx7cGF0aEV4aXN0czpGfT1iKDkyNTcpLEg9YigyNzMzKTtmdW5jdGlvbiBqKCl7cmV0dXJuIGo9X2FzeW5jVG9HZW5lcmF0b3IoZnVuY3Rpb24qKFcsWixYPXt9KXtjb25zdCBRPVgub3ZlcndyaXRlfHxYLmNsb2JiZXJ8fCExLHtzcmNTdGF0OnEsaXNDaGFu'@; put 'Z2luZ0Nhc2U6dGU9ITF9PXlpZWxkIEguY2hlY2tQYXRocyhXLFosIm1vdmUiLFgpO3lpZWxkIEguY2hlY2tQYXJlbnRQYXRocyhXLHEsWiwibW92ZSIpO2NvbnN0IGllPV8uZGlybmFtZShaKTtyZXR1cm4gXy5wYXJzZShpZSkucm9vdCE9PWllJiYoeWllbGQgdyhpZSkpLGZ1bmN0aW9uIFAo'@; put 'VyxaLFgsUSl7cmV0dXJuIEwuYXBwbHkodGhpcyxhcmd1bWVudHMpfShXLFosUSx0ZSl9KSxqLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBMKCl7cmV0dXJuIEw9X2FzeW5jVG9HZW5lcmF0b3IoZnVuY3Rpb24qKFcsWixYLFEpe2lmKCFRKWlmKFgpeWllbGQgTihaKTtlbHNlIGlm'@; put 'KHlpZWxkIEYoWikpdGhyb3cgbmV3IEVycm9yKCJkZXN0IGFscmVhZHkgZXhpc3RzLiIpO3RyeXt5aWVsZCBELnJlbmFtZShXLFopfWNhdGNoKHEpe2lmKCJFWERFViIhPT1xLmNvZGUpdGhyb3cgcTt5aWVsZCBmdW5jdGlvbiBZKFcsWixYKXtyZXR1cm4gQi5hcHBseSh0aGlzLGFyZ3VtZW50'@; put 'cyl9KFcsWixYKX19KSxMLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBCKCl7cmV0dXJuKEI9X2FzeW5jVG9HZW5lcmF0b3IoZnVuY3Rpb24qKFcsWixYKXtyZXR1cm4geWllbGQgcChXLFose292ZXJ3cml0ZTpYLGVycm9yT25FeGlzdDohMCxwcmVzZXJ2ZVRpbWVzdGFtcHM6ITB9'@; put 'KSxOKFcpfSkpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1jZS5leHBvcnRzPWZ1bmN0aW9uIFIoVyxaKXtyZXR1cm4gai5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSw0NjcwOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO2NvbnN0IEQ9Yig4OTgxKS5mcm9tUHJvbWlzZSxfPWIoNzc0OSkscD1iKDI1'@; put 'MjApLE49YigxMzgxKSx3PWIoOTI1NykucGF0aEV4aXN0cztmdW5jdGlvbiBIKCl7cmV0dXJuKEg9X2FzeW5jVG9HZW5lcmF0b3IoZnVuY3Rpb24qKGosUCxMPSJ1dGYtOCIpe2NvbnN0IFk9cC5kaXJuYW1lKGopO3JldHVybih5aWVsZCB3KFkpKXx8KHlpZWxkIE4ubWtkaXJzKFkpKSxfLndy'@; put 'aXRlRmlsZShqLFAsTCl9KSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWNlLmV4cG9ydHM9e291dHB1dEZpbGU6RChmdW5jdGlvbiBGKGosUCl7cmV0dXJuIEguYXBwbHkodGhpcyxhcmd1bWVudHMpfSksb3V0cHV0RmlsZVN5bmM6ZnVuY3Rpb24gUihqLC4uLlApe2NvbnN0IEw9cC5kaXJuYW1l'@; put 'KGopO18uZXhpc3RzU3luYyhMKXx8Ti5ta2RpcnNTeW5jKEwpLF8ud3JpdGVGaWxlU3luYyhqLC4uLlApfX19LDkyNTc6KGNlLEosYik9PnsidXNlIHN0cmljdCI7Y29uc3QgRD1iKDg5ODEpLmZyb21Qcm9taXNlLF89Yig3NzQ5KTtjZS5leHBvcnRzPXtwYXRoRXhpc3RzOkQoZnVuY3Rpb24g'@; put 'cChOKXtyZXR1cm4gXy5hY2Nlc3MoTikudGhlbigoKT0+ITApLmNhdGNoKCgpPT4hMSl9KSxwYXRoRXhpc3RzU3luYzpfLmV4aXN0c1N5bmN9fSw0NTQyOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO2NvbnN0IEQ9Yig3NyksXz1iKDg5ODEpLmZyb21DYWxsYmFjaztjZS5leHBvcnRzPXtyZW1v'@; put 'dmU6XyhmdW5jdGlvbiBwKHcsRil7RC5ybSh3LHtyZWN1cnNpdmU6ITAsZm9yY2U6ITB9LEYpfSkscmVtb3ZlU3luYzpmdW5jdGlvbiBOKHcpe0Qucm1TeW5jKHcse3JlY3Vyc2l2ZTohMCxmb3JjZTohMH0pfX19LDI3MzM6KGNlLEosYik9PnsidXNlIHN0cmljdCI7Y29uc3QgRD1iKDc3NDkp'@; put 'LF89YigyNTIwKSxwPWIoODk4MSkuZnJvbVByb21pc2U7ZnVuY3Rpb24gSCgpe3JldHVybihIPV9hc3luY1RvR2VuZXJhdG9yKGZ1bmN0aW9uKihaLFgsUSxxKXtjb25zdHtzcmNTdGF0OnRlLGRlc3RTdGF0OmllfT15aWVsZCBmdW5jdGlvbiBOKFosWCxRKXtjb25zdCBxPVEuZGVyZWZlcmVu'@; put 'Y2U/dGU9PkQuc3RhdCh0ZSx7YmlnaW50OiEwfSk6dGU9PkQubHN0YXQodGUse2JpZ2ludDohMH0pO3JldHVybiBQcm9taXNlLmFsbChbcShaKSxxKFgpLmNhdGNoKHRlPT57aWYoIkVOT0VOVCI9PT10ZS5jb2RlKXJldHVybiBudWxsO3Rocm93IHRlfSldKS50aGVuKChbdGUsaWVdKT0+KHtz'@; put 'cmNTdGF0OnRlLGRlc3RTdGF0OmllfSkpfShaLFgscSk7aWYoaWUpe2lmKFkodGUsaWUpKXtjb25zdCBzZT1fLmJhc2VuYW1lKFopLGdlPV8uYmFzZW5hbWUoWCk7aWYoIm1vdmUiPT09USYmc2UhPT1nZSYmc2UudG9Mb3dlckNhc2UoKT09PWdlLnRvTG93ZXJDYXNlKCkpcmV0dXJue3NyY1N0'@; put 'YXQ6dGUsZGVzdFN0YXQ6aWUsaXNDaGFuZ2luZ0Nhc2U6ITB9O3Rocm93IG5ldyBFcnJvcigiU291cmNlIGFuZCBkZXN0aW5hdGlvbiBtdXN0IG5vdCBiZSB0aGUgc2FtZS4iKX1pZih0ZS5pc0RpcmVjdG9yeSgpJiYhaWUuaXNEaXJlY3RvcnkoKSl0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBv'@; put 'dmVyd3JpdGUgbm9uLWRpcmVjdG9yeSAnJHtYfScgd2l0aCBkaXJlY3RvcnkgJyR7Wn0nLmApO2lmKCF0ZS5pc0RpcmVjdG9yeSgpJiZpZS5pc0RpcmVjdG9yeSgpKXRocm93IG5ldyBFcnJvcihgQ2Fubm90IG92ZXJ3cml0ZSBkaXJlY3RvcnkgJyR7WH0nIHdpdGggbm9uLWRpcmVjdG9yeSAn'@; put 'JHtafScuYCl9aWYodGUuaXNEaXJlY3RvcnkoKSYmQihaLFgpKXRocm93IG5ldyBFcnJvcihXKFosWCxRKSk7cmV0dXJue3NyY1N0YXQ6dGUsZGVzdFN0YXQ6aWV9fSkpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBqKFosWCxRLHEpe3JldHVybiBQLmFwcGx5KHRoaXMsYXJndW1l'@; put 'bnRzKX1mdW5jdGlvbiBQKCl7cmV0dXJuKFA9X2FzeW5jVG9HZW5lcmF0b3IoZnVuY3Rpb24qKFosWCxRLHEpe2NvbnN0IHRlPV8ucmVzb2x2ZShfLmRpcm5hbWUoWikpLGllPV8ucmVzb2x2ZShfLmRpcm5hbWUoUSkpO2lmKGllPT09dGV8fGllPT09Xy5wYXJzZShpZSkucm9vdClyZXR1cm47'@; put 'bGV0IHNlO3RyeXtzZT15aWVsZCBELnN0YXQoaWUse2JpZ2ludDohMH0pfWNhdGNoKGdlKXtpZigiRU5PRU5UIj09PWdlLmNvZGUpcmV0dXJuO3Rocm93IGdlfWlmKFkoWCxzZSkpdGhyb3cgbmV3IEVycm9yKFcoWixRLHEpKTtyZXR1cm4gaihaLFgsaWUscSl9KSkuYXBwbHkodGhpcyxhcmd1'@; put 'bWVudHMpfWZ1bmN0aW9uIFkoWixYKXtyZXR1cm4gWC5pbm8mJlguZGV2JiZYLmlubz09PVouaW5vJiZYLmRldj09PVouZGV2fWZ1bmN0aW9uIEIoWixYKXtjb25zdCBRPV8ucmVzb2x2ZShaKS5zcGxpdChfLnNlcCkuZmlsdGVyKHRlPT50ZSkscT1fLnJlc29sdmUoWCkuc3BsaXQoXy5zZXAp'@; put 'LmZpbHRlcih0ZT0+dGUpO3JldHVybiBRLmV2ZXJ5KCh0ZSxpZSk9PnFbaWVdPT09dGUpfWZ1bmN0aW9uIFcoWixYLFEpe3JldHVybmBDYW5ub3QgJHtRfSAnJHtafScgdG8gYSBzdWJkaXJlY3Rvcnkgb2YgaXRzZWxmLCAnJHtYfScuYH1jZS5leHBvcnRzPXtjaGVja1BhdGhzOnAoZnVuY3Rp'@; put 'b24gRihaLFgsUSxxKXtyZXR1cm4gSC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSxjaGVja1BhdGhzU3luYzpmdW5jdGlvbiBSKFosWCxRLHEpe2NvbnN0e3NyY1N0YXQ6dGUsZGVzdFN0YXQ6aWV9PWZ1bmN0aW9uIHcoWixYLFEpe2xldCBxO2NvbnN0IHRlPVEuZGVyZWZlcmVuY2U/c2U9PkQu'@; put 'c3RhdFN5bmMoc2Use2JpZ2ludDohMH0pOnNlPT5ELmxzdGF0U3luYyhzZSx7YmlnaW50OiEwfSksaWU9dGUoWik7dHJ5e3E9dGUoWCl9Y2F0Y2goc2Upe2lmKCJFTk9FTlQiPT09c2UuY29kZSlyZXR1cm57c3JjU3RhdDppZSxkZXN0U3RhdDpudWxsfTt0aHJvdyBzZX1yZXR1cm57c3JjU3Rh'@; put 'dDppZSxkZXN0U3RhdDpxfX0oWixYLHEpO2lmKGllKXtpZihZKHRlLGllKSl7Y29uc3Qgc2U9Xy5iYXNlbmFtZShaKSxnZT1fLmJhc2VuYW1lKFgpO2lmKCJtb3ZlIj09PVEmJnNlIT09Z2UmJnNlLnRvTG93ZXJDYXNlKCk9PT1nZS50b0xvd2VyQ2FzZSgpKXJldHVybntzcmNTdGF0OnRlLGRl'@; put 'c3RTdGF0OmllLGlzQ2hhbmdpbmdDYXNlOiEwfTt0aHJvdyBuZXcgRXJyb3IoIlNvdXJjZSBhbmQgZGVzdGluYXRpb24gbXVzdCBub3QgYmUgdGhlIHNhbWUuIil9aWYodGUuaXNEaXJlY3RvcnkoKSYmIWllLmlzRGlyZWN0b3J5KCkpdGhyb3cgbmV3IEVycm9yKGBDYW5ub3Qgb3ZlcndyaXRl'@; put 'IG5vbi1kaXJlY3RvcnkgJyR7WH0nIHdpdGggZGlyZWN0b3J5ICcke1p9Jy5gKTtpZighdGUuaXNEaXJlY3RvcnkoKSYmaWUuaXNEaXJlY3RvcnkoKSl0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBvdmVyd3JpdGUgZGlyZWN0b3J5ICcke1h9JyB3aXRoIG5vbi1kaXJlY3RvcnkgJyR7Wn0nLmAp'@; put 'fWlmKHRlLmlzRGlyZWN0b3J5KCkmJkIoWixYKSl0aHJvdyBuZXcgRXJyb3IoVyhaLFgsUSkpO3JldHVybntzcmNTdGF0OnRlLGRlc3RTdGF0OmllfX0sY2hlY2tQYXJlbnRQYXRoczpwKGopLGNoZWNrUGFyZW50UGF0aHNTeW5jOmZ1bmN0aW9uIEwoWixYLFEscSl7Y29uc3QgdGU9Xy5yZXNv'@; put 'bHZlKF8uZGlybmFtZShaKSksaWU9Xy5yZXNvbHZlKF8uZGlybmFtZShRKSk7aWYoaWU9PT10ZXx8aWU9PT1fLnBhcnNlKGllKS5yb290KXJldHVybjtsZXQgc2U7dHJ5e3NlPUQuc3RhdFN5bmMoaWUse2JpZ2ludDohMH0pfWNhdGNoKGdlKXtpZigiRU5PRU5UIj09PWdlLmNvZGUpcmV0dXJu'@; put 'O3Rocm93IGdlfWlmKFkoWCxzZSkpdGhyb3cgbmV3IEVycm9yKFcoWixRLHEpKTtyZXR1cm4gTChaLFgsaWUscSl9LGlzU3JjU3ViZGlyOkIsYXJlSWRlbnRpY2FsOll9fSwzMTg6KGNlLEosYik9PnsidXNlIHN0cmljdCI7Y29uc3QgRD1iKDc3NDkpLF89Yig4OTgxKS5mcm9tUHJvbWlzZTtm'@; put 'dW5jdGlvbiBOKCl7cmV0dXJuKE49X2FzeW5jVG9HZW5lcmF0b3IoZnVuY3Rpb24qKEYsSCxSKXtjb25zdCBqPXlpZWxkIEQub3BlbihGLCJyKyIpO2xldCBQPW51bGw7dHJ5e3lpZWxkIEQuZnV0aW1lcyhqLEgsUil9ZmluYWxseXt0cnl7eWllbGQgRC5jbG9zZShqKX1jYXRjaChMKXtQPUx9'@; put 'fWlmKFApdGhyb3cgUH0pKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9Y2UuZXhwb3J0cz17dXRpbWVzTWlsbGlzOl8oZnVuY3Rpb24gcChGLEgsUil7cmV0dXJuIE4uYXBwbHkodGhpcyxhcmd1bWVudHMpfSksdXRpbWVzTWlsbGlzU3luYzpmdW5jdGlvbiB3KEYsSCxSKXtjb25zdCBqPUQub3Bl'@; put 'blN5bmMoRiwicisiKTtyZXR1cm4gRC5mdXRpbWVzU3luYyhqLEgsUiksRC5jbG9zZVN5bmMoail9fX0sNzY0ODpjZT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLEQ9TWF0aC5tYXgscD1mdW5jdGlvbihILFIpe2Zvcih2YXIgaj1bXSxQPTA7UDxILmxl'@; put 'bmd0aDtQKz0xKWpbUF09SFtQXTtmb3IodmFyIEw9MDtMPFIubGVuZ3RoO0wrPTEpaltMK0gubGVuZ3RoXT1SW0xdO3JldHVybiBqfTtjZS5leHBvcnRzPWZ1bmN0aW9uKEgpe3ZhciBSPXRoaXM7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFJ8fCJbb2JqZWN0IEZ1bmN0aW9uXSIhPT1iLmFwcGx5'@; put 'KFIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kIGNhbGxlZCBvbiBpbmNvbXBhdGlibGUgIitSKTtmb3IodmFyIFAsaj1mdW5jdGlvbihILFIpe2Zvcih2YXIgaj1bXSxQPTEsTD0wO1A8SC5sZW5ndGg7UCs9MSxMKz0xKWpbTF09SFtQXTtyZXR1cm4gan0o'@; put 'YXJndW1lbnRzKSxZPUQoMCxSLmxlbmd0aC1qLmxlbmd0aCksQj1bXSxXPTA7VzxZO1crKylCW1ddPSIkIitXO2lmKFA9RnVuY3Rpb24oImJpbmRlciIsInJldHVybiBmdW5jdGlvbiAoIitmdW5jdGlvbihGLEgpe2Zvcih2YXIgUj0iIixqPTA7ajxGLmxlbmd0aDtqKz0xKVIrPUZbal0saisx'@; put 'PEYubGVuZ3RoJiYoUis9IiwiKTtyZXR1cm4gUn0oQikrIil7IHJldHVybiBiaW5kZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpOyB9IikoZnVuY3Rpb24oKXtpZih0aGlzIGluc3RhbmNlb2YgUCl7dmFyIFg9Ui5hcHBseSh0aGlzLHAoaixhcmd1bWVudHMpKTtyZXR1cm4gT2JqZWN0KFgpPT09'@; put 'WD9YOnRoaXN9cmV0dXJuIFIuYXBwbHkoSCxwKGosYXJndW1lbnRzKSl9KSxSLnByb3RvdHlwZSl7dmFyIFo9ZnVuY3Rpb24oKXt9O1oucHJvdG90eXBlPVIucHJvdG90eXBlLFAucHJvdG90eXBlPW5ldyBaLFoucHJvdG90eXBlPW51bGx9cmV0dXJuIFB9fSw4NjEyOihjZSxKLGIpPT57InVz'@; put 'ZSBzdHJpY3QiO3ZhciBEPWIoNzY0OCk7Y2UuZXhwb3J0cz1GdW5jdGlvbi5wcm90b3R5cGUuYmluZHx8RH0sMjEwOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBELF89Yig4ODkyKSxwPWIoMTY0OCksTj1iKDM5ODEpLHc9Yig0NzI2KSxGPWIoNjcxMiksSD1iKDM0NjQpLFI9Yig0NDUz'@; put 'KSxqPWIoMzkxNSksUD1iKDk3MzgpLEw9Yig2MzI5KSxZPWIoMjI2NCksQj1iKDU3MzApLFc9Yig3MDcpLFo9YigzODYyKSxYPWIoOTU1MCksUT1GdW5jdGlvbixxPWZ1bmN0aW9uKHZlKXt0cnl7cmV0dXJuIFEoJyJ1c2Ugc3RyaWN0IjsgcmV0dXJuICgnK3ZlKyIpLmNvbnN0cnVjdG9yOyIp'@; put 'KCl9Y2F0Y2h7fX0sdGU9Yig3Mjk2KSxpZT1iKDQ0MjkpLHNlPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IFJ9LGdlPXRlP2Z1bmN0aW9uKCl7dHJ5e3JldHVybiBzZX1jYXRjaHt0cnl7cmV0dXJuIHRlKGFyZ3VtZW50cywiY2FsbGVlIikuZ2V0fWNhdGNoe3JldHVybiBzZX19fSgpOnNlLF9lPWIo'@; put 'MTQwNSkoKSxUZT1iKDE2MTgpLFNlPWIoODg5OSksemU9Yig0NDMpLHo9YigxNzY4KSxnPWIoODkyOCkseT17fSx4PXR5cGVvZiBVaW50OEFycmF5PiJ1Inx8IVRlP0Q6VGUoVWludDhBcnJheSksQz17X19wcm90b19fOm51bGwsIiVBZ2dyZWdhdGVFcnJvciUiOnR5cGVvZiBBZ2dyZWdhdGVF'@; put 'cnJvcj4idSI/RDpBZ2dyZWdhdGVFcnJvciwiJUFycmF5JSI6QXJyYXksIiVBcnJheUJ1ZmZlciUiOnR5cGVvZiBBcnJheUJ1ZmZlcj4idSI/RDpBcnJheUJ1ZmZlciwiJUFycmF5SXRlcmF0b3JQcm90b3R5cGUlIjpfZSYmVGU/VGUoW11bU3ltYm9sLml0ZXJhdG9yXSgpKTpELCIlQXN5bmNG'@; put 'cm9tU3luY0l0ZXJhdG9yUHJvdG90eXBlJSI6RCwiJUFzeW5jRnVuY3Rpb24lIjp5LCIlQXN5bmNHZW5lcmF0b3IlIjp5LCIlQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiUiOnksIiVBc3luY0l0ZXJhdG9yUHJvdG90eXBlJSI6eSwiJUF0b21pY3MlIjp0eXBlb2YgQXRvbWljcz4idSI/RDpBdG9t'@; put 'aWNzLCIlQmlnSW50JSI6dHlwZW9mIEJpZ0ludD4idSI/RDpCaWdJbnQsIiVCaWdJbnQ2NEFycmF5JSI6dHlwZW9mIEJpZ0ludDY0QXJyYXk+InUiP0Q6QmlnSW50NjRBcnJheSwiJUJpZ1VpbnQ2NEFycmF5JSI6dHlwZW9mIEJpZ1VpbnQ2NEFycmF5PiJ1Ij9EOkJpZ1VpbnQ2NEFycmF5LCIl'@; put 'Qm9vbGVhbiUiOkJvb2xlYW4sIiVEYXRhVmlldyUiOnR5cGVvZiBEYXRhVmlldz4idSI/RDpEYXRhVmlldywiJURhdGUlIjpEYXRlLCIlZGVjb2RlVVJJJSI6ZGVjb2RlVVJJLCIlZGVjb2RlVVJJQ29tcG9uZW50JSI6ZGVjb2RlVVJJQ29tcG9uZW50LCIlZW5jb2RlVVJJJSI6ZW5jb2RlVVJJ'@; put 'LCIlZW5jb2RlVVJJQ29tcG9uZW50JSI6ZW5jb2RlVVJJQ29tcG9uZW50LCIlRXJyb3IlIjpwLCIlZXZhbCUiOmV2YWwsIiVFdmFsRXJyb3IlIjpOLCIlRmxvYXQxNkFycmF5JSI6dHlwZW9mIEZsb2F0MTZBcnJheT4idSI/RDpGbG9hdDE2QXJyYXksIiVGbG9hdDMyQXJyYXklIjp0eXBlb2Yg'@; put 'RmxvYXQzMkFycmF5PiJ1Ij9EOkZsb2F0MzJBcnJheSwiJUZsb2F0NjRBcnJheSUiOnR5cGVvZiBGbG9hdDY0QXJyYXk+InUiP0Q6RmxvYXQ2NEFycmF5LCIlRmluYWxpemF0aW9uUmVnaXN0cnklIjp0eXBlb2YgRmluYWxpemF0aW9uUmVnaXN0cnk+InUiP0Q6RmluYWxpemF0aW9uUmVnaXN0'@; put 'cnksIiVGdW5jdGlvbiUiOlEsIiVHZW5lcmF0b3JGdW5jdGlvbiUiOnksIiVJbnQ4QXJyYXklIjp0eXBlb2YgSW50OEFycmF5PiJ1Ij9EOkludDhBcnJheSwiJUludDE2QXJyYXklIjp0eXBlb2YgSW50MTZBcnJheT4idSI/RDpJbnQxNkFycmF5LCIlSW50MzJBcnJheSUiOnR5cGVvZiBJbnQz'@; put 'MkFycmF5PiJ1Ij9EOkludDMyQXJyYXksIiVpc0Zpbml0ZSUiOmlzRmluaXRlLCIlaXNOYU4lIjppc05hTiwiJUl0ZXJhdG9yUHJvdG90eXBlJSI6X2UmJlRlP1RlKFRlKFtdW1N5bWJvbC5pdGVyYXRvcl0oKSkpOkQsIiVKU09OJSI6Im9iamVjdCI9PXR5cGVvZiBKU09OP0pTT046RCwiJU1h'@; put 'cCUiOnR5cGVvZiBNYXA+InUiP0Q6TWFwLCIlTWFwSXRlcmF0b3JQcm90b3R5cGUlIjp0eXBlb2YgTWFwPiJ1Inx8IV9lfHwhVGU/RDpUZSgobmV3IE1hcClbU3ltYm9sLml0ZXJhdG9yXSgpKSwiJU1hdGglIjpNYXRoLCIlTnVtYmVyJSI6TnVtYmVyLCIlT2JqZWN0JSI6XywiJU9iamVjdC5n'@; put 'ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IlIjp0ZSwiJXBhcnNlRmxvYXQlIjpwYXJzZUZsb2F0LCIlcGFyc2VJbnQlIjpwYXJzZUludCwiJVByb21pc2UlIjp0eXBlb2YgUHJvbWlzZT4idSI/RDpQcm9taXNlLCIlUHJveHklIjp0eXBlb2YgUHJveHk+InUiP0Q6UHJveHksIiVSYW5nZUVycm9y'@; put 'JSI6dywiJVJlZmVyZW5jZUVycm9yJSI6RiwiJVJlZmxlY3QlIjp0eXBlb2YgUmVmbGVjdD4idSI/RDpSZWZsZWN0LCIlUmVnRXhwJSI6UmVnRXhwLCIlU2V0JSI6dHlwZW9mIFNldD4idSI/RDpTZXQsIiVTZXRJdGVyYXRvclByb3RvdHlwZSUiOnR5cGVvZiBTZXQ+InUifHwhX2V8fCFUZT9E'@; put 'OlRlKChuZXcgU2V0KVtTeW1ib2wuaXRlcmF0b3JdKCkpLCIlU2hhcmVkQXJyYXlCdWZmZXIlIjp0eXBlb2YgU2hhcmVkQXJyYXlCdWZmZXI+InUiP0Q6U2hhcmVkQXJyYXlCdWZmZXIsIiVTdHJpbmclIjpTdHJpbmcsIiVTdHJpbmdJdGVyYXRvclByb3RvdHlwZSUiOl9lJiZUZT9UZSgiIltT'@; put 'eW1ib2wuaXRlcmF0b3JdKCkpOkQsIiVTeW1ib2wlIjpfZT9TeW1ib2w6RCwiJVN5bnRheEVycm9yJSI6SCwiJVRocm93VHlwZUVycm9yJSI6Z2UsIiVUeXBlZEFycmF5JSI6eCwiJVR5cGVFcnJvciUiOlIsIiVVaW50OEFycmF5JSI6dHlwZW9mIFVpbnQ4QXJyYXk+InUiP0Q6VWludDhBcnJh'@; put 'eSwiJVVpbnQ4Q2xhbXBlZEFycmF5JSI6dHlwZW9mIFVpbnQ4Q2xhbXBlZEFycmF5PiJ1Ij9EOlVpbnQ4Q2xhbXBlZEFycmF5LCIlVWludDE2QXJyYXklIjp0eXBlb2YgVWludDE2QXJyYXk+InUiP0Q6VWludDE2QXJyYXksIiVVaW50MzJBcnJheSUiOnR5cGVvZiBVaW50MzJBcnJheT4idSI/'@; put 'RDpVaW50MzJBcnJheSwiJVVSSUVycm9yJSI6aiwiJVdlYWtNYXAlIjp0eXBlb2YgV2Vha01hcD4idSI/RDpXZWFrTWFwLCIlV2Vha1JlZiUiOnR5cGVvZiBXZWFrUmVmPiJ1Ij9EOldlYWtSZWYsIiVXZWFrU2V0JSI6dHlwZW9mIFdlYWtTZXQ+InUiP0Q6V2Vha1NldCwiJUZ1bmN0aW9uLnBy'@; put 'b3RvdHlwZS5jYWxsJSI6ZywiJUZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseSUiOnosIiVPYmplY3QuZGVmaW5lUHJvcGVydHklIjppZSwiJU9iamVjdC5nZXRQcm90b3R5cGVPZiUiOlNlLCIlTWF0aC5hYnMlIjpQLCIlTWF0aC5mbG9vciUiOkwsIiVNYXRoLm1heCUiOlksIiVNYXRoLm1pbiUi'@; put 'OkIsIiVNYXRoLnBvdyUiOlcsIiVNYXRoLnJvdW5kJSI6WiwiJU1hdGguc2lnbiUiOlgsIiVSZWZsZWN0LmdldFByb3RvdHlwZU9mJSI6emV9O2lmKFRlKXRyeXtudWxsLmVycm9yfWNhdGNoKHZlKXt2YXIgVD1UZShUZSh2ZSkpO0NbIiVFcnJvci5wcm90b3R5cGUlIl09VH12YXIgVj1mdW5j'@; put 'dGlvbiB2ZShxZSl7dmFyIGplO2lmKCIlQXN5bmNGdW5jdGlvbiUiPT09cWUpamU9cSgiYXN5bmMgZnVuY3Rpb24gKCkge30iKTtlbHNlIGlmKCIlR2VuZXJhdG9yRnVuY3Rpb24lIj09PXFlKWplPXEoImZ1bmN0aW9uKiAoKSB7fSIpO2Vsc2UgaWYoIiVBc3luY0dlbmVyYXRvckZ1bmN0aW9u'@; put 'JSI9PT1xZSlqZT1xKCJhc3luYyBmdW5jdGlvbiogKCkge30iKTtlbHNlIGlmKCIlQXN5bmNHZW5lcmF0b3IlIj09PXFlKXt2YXIgQWU9dmUoIiVBc3luY0dlbmVyYXRvckZ1bmN0aW9uJSIpO0FlJiYoamU9QWUucHJvdG90eXBlKX1lbHNlIGlmKCIlQXN5bmNJdGVyYXRvclByb3RvdHlwZSUi'@; put 'PT09cWUpe3ZhciBGZT12ZSgiJUFzeW5jR2VuZXJhdG9yJSIpO0ZlJiZUZSYmKGplPVRlKEZlLnByb3RvdHlwZSkpfXJldHVybiBDW3FlXT1qZSxqZX0sVT17X19wcm90b19fOm51bGwsIiVBcnJheUJ1ZmZlclByb3RvdHlwZSUiOlsiQXJyYXlCdWZmZXIiLCJwcm90b3R5cGUiXSwiJUFycmF5'@; put 'UHJvdG90eXBlJSI6WyJBcnJheSIsInByb3RvdHlwZSJdLCIlQXJyYXlQcm90b19lbnRyaWVzJSI6WyJBcnJheSIsInByb3RvdHlwZSIsImVudHJpZXMiXSwiJUFycmF5UHJvdG9fZm9yRWFjaCUiOlsiQXJyYXkiLCJwcm90b3R5cGUiLCJmb3JFYWNoIl0sIiVBcnJheVByb3RvX2tleXMlIjpb'@; put 'IkFycmF5IiwicHJvdG90eXBlIiwia2V5cyJdLCIlQXJyYXlQcm90b192YWx1ZXMlIjpbIkFycmF5IiwicHJvdG90eXBlIiwidmFsdWVzIl0sIiVBc3luY0Z1bmN0aW9uUHJvdG90eXBlJSI6WyJBc3luY0Z1bmN0aW9uIiwicHJvdG90eXBlIl0sIiVBc3luY0dlbmVyYXRvciUiOlsiQXN5bmNH'@; put 'ZW5lcmF0b3JGdW5jdGlvbiIsInByb3RvdHlwZSJdLCIlQXN5bmNHZW5lcmF0b3JQcm90b3R5cGUlIjpbIkFzeW5jR2VuZXJhdG9yRnVuY3Rpb24iLCJwcm90b3R5cGUiLCJwcm90b3R5cGUiXSwiJUJvb2xlYW5Qcm90b3R5cGUlIjpbIkJvb2xlYW4iLCJwcm90b3R5cGUiXSwiJURhdGFWaWV3'@; put 'UHJvdG90eXBlJSI6WyJEYXRhVmlldyIsInByb3RvdHlwZSJdLCIlRGF0ZVByb3RvdHlwZSUiOlsiRGF0ZSIsInByb3RvdHlwZSJdLCIlRXJyb3JQcm90b3R5cGUlIjpbIkVycm9yIiwicHJvdG90eXBlIl0sIiVFdmFsRXJyb3JQcm90b3R5cGUlIjpbIkV2YWxFcnJvciIsInByb3RvdHlwZSJd'@; put 'LCIlRmxvYXQzMkFycmF5UHJvdG90eXBlJSI6WyJGbG9hdDMyQXJyYXkiLCJwcm90b3R5cGUiXSwiJUZsb2F0NjRBcnJheVByb3RvdHlwZSUiOlsiRmxvYXQ2NEFycmF5IiwicHJvdG90eXBlIl0sIiVGdW5jdGlvblByb3RvdHlwZSUiOlsiRnVuY3Rpb24iLCJwcm90b3R5cGUiXSwiJUdlbmVy'@; put 'YXRvciUiOlsiR2VuZXJhdG9yRnVuY3Rpb24iLCJwcm90b3R5cGUiXSwiJUdlbmVyYXRvclByb3RvdHlwZSUiOlsiR2VuZXJhdG9yRnVuY3Rpb24iLCJwcm90b3R5cGUiLCJwcm90b3R5cGUiXSwiJUludDhBcnJheVByb3RvdHlwZSUiOlsiSW50OEFycmF5IiwicHJvdG90eXBlIl0sIiVJbnQx'@; put 'NkFycmF5UHJvdG90eXBlJSI6WyJJbnQxNkFycmF5IiwicHJvdG90eXBlIl0sIiVJbnQzMkFycmF5UHJvdG90eXBlJSI6WyJJbnQzMkFycmF5IiwicHJvdG90eXBlIl0sIiVKU09OUGFyc2UlIjpbIkpTT04iLCJwYXJzZSJdLCIlSlNPTlN0cmluZ2lmeSUiOlsiSlNPTiIsInN0cmluZ2lmeSJd'@; put 'LCIlTWFwUHJvdG90eXBlJSI6WyJNYXAiLCJwcm90b3R5cGUiXSwiJU51bWJlclByb3RvdHlwZSUiOlsiTnVtYmVyIiwicHJvdG90eXBlIl0sIiVPYmplY3RQcm90b3R5cGUlIjpbIk9iamVjdCIsInByb3RvdHlwZSJdLCIlT2JqUHJvdG9fdG9TdHJpbmclIjpbIk9iamVjdCIsInByb3RvdHlw'@; put 'ZSIsInRvU3RyaW5nIl0sIiVPYmpQcm90b192YWx1ZU9mJSI6WyJPYmplY3QiLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIl0sIiVQcm9taXNlUHJvdG90eXBlJSI6WyJQcm9taXNlIiwicHJvdG90eXBlIl0sIiVQcm9taXNlUHJvdG9fdGhlbiUiOlsiUHJvbWlzZSIsInByb3RvdHlwZSIsInRoZW4i'@; put 'XSwiJVByb21pc2VfYWxsJSI6WyJQcm9taXNlIiwiYWxsIl0sIiVQcm9taXNlX3JlamVjdCUiOlsiUHJvbWlzZSIsInJlamVjdCJdLCIlUHJvbWlzZV9yZXNvbHZlJSI6WyJQcm9taXNlIiwicmVzb2x2ZSJdLCIlUmFuZ2VFcnJvclByb3RvdHlwZSUiOlsiUmFuZ2VFcnJvciIsInByb3RvdHlw'@; put 'ZSJdLCIlUmVmZXJlbmNlRXJyb3JQcm90b3R5cGUlIjpbIlJlZmVyZW5jZUVycm9yIiwicHJvdG90eXBlIl0sIiVSZWdFeHBQcm90b3R5cGUlIjpbIlJlZ0V4cCIsInByb3RvdHlwZSJdLCIlU2V0UHJvdG90eXBlJSI6WyJTZXQiLCJwcm90b3R5cGUiXSwiJVNoYXJlZEFycmF5QnVmZmVyUHJv'@; put 'dG90eXBlJSI6WyJTaGFyZWRBcnJheUJ1ZmZlciIsInByb3RvdHlwZSJdLCIlU3RyaW5nUHJvdG90eXBlJSI6WyJTdHJpbmciLCJwcm90b3R5cGUiXSwiJVN5bWJvbFByb3RvdHlwZSUiOlsiU3ltYm9sIiwicHJvdG90eXBlIl0sIiVTeW50YXhFcnJvclByb3RvdHlwZSUiOlsiU3ludGF4RXJy'@; put 'b3IiLCJwcm90b3R5cGUiXSwiJVR5cGVkQXJyYXlQcm90b3R5cGUlIjpbIlR5cGVkQXJyYXkiLCJwcm90b3R5cGUiXSwiJVR5cGVFcnJvclByb3RvdHlwZSUiOlsiVHlwZUVycm9yIiwicHJvdG90eXBlIl0sIiVVaW50OEFycmF5UHJvdG90eXBlJSI6WyJVaW50OEFycmF5IiwicHJvdG90eXBl'@; put 'Il0sIiVVaW50OENsYW1wZWRBcnJheVByb3RvdHlwZSUiOlsiVWludDhDbGFtcGVkQXJyYXkiLCJwcm90b3R5cGUiXSwiJVVpbnQxNkFycmF5UHJvdG90eXBlJSI6WyJVaW50MTZBcnJheSIsInByb3RvdHlwZSJdLCIlVWludDMyQXJyYXlQcm90b3R5cGUlIjpbIlVpbnQzMkFycmF5IiwicHJv'@; put 'dG90eXBlIl0sIiVVUklFcnJvclByb3RvdHlwZSUiOlsiVVJJRXJyb3IiLCJwcm90b3R5cGUiXSwiJVdlYWtNYXBQcm90b3R5cGUlIjpbIldlYWtNYXAiLCJwcm90b3R5cGUiXSwiJVdlYWtTZXRQcm90b3R5cGUlIjpbIldlYWtTZXQiLCJwcm90b3R5cGUiXX0sRT1iKDg2MTIpLG09Yig4ODI0'@; put 'KSxBPUUuY2FsbChnLEFycmF5LnByb3RvdHlwZS5jb25jYXQpLGFlPUUuY2FsbCh6LEFycmF5LnByb3RvdHlwZS5zcGxpY2UpLG5lPUUuY2FsbChnLFN0cmluZy5wcm90b3R5cGUucmVwbGFjZSksbGU9RS5jYWxsKGcsU3RyaW5nLnByb3RvdHlwZS5zbGljZSksd2U9RS5jYWxsKGcsUmVnRXhw'@; put 'LnByb3RvdHlwZS5leGVjKSxaZT0vW14lLltcXV0rfFxbKD86KC0/XGQrKD86XC5cZCspPyl8KFsiJ10pKCg/Oig/IVwyKVteXFxdfFxcLikqPylcMilcXXwoPz0oPzpcLnxcW1xdKSg/OlwufFxbXF18JSQpKS9nLFFlPS9cXChcXCk/L2cseGU9ZnVuY3Rpb24ocWUsamUpe3ZhciBGZSxBZT1x'@; put 'ZTtpZihtKFUsQWUpJiYoQWU9IiUiKyhGZT1VW0FlXSlbMF0rIiUiKSxtKEMsQWUpKXt2YXIgUmU9Q1tBZV07aWYoUmU9PT15JiYoUmU9VihBZSkpLHR5cGVvZiBSZT4idSImJiFqZSl0aHJvdyBuZXcgUigiaW50cmluc2ljICIrcWUrIiBleGlzdHMsIGJ1dCBpcyBub3QgYXZhaWxhYmxlLiBQ'@; put 'bGVhc2UgZmlsZSBhbiBpc3N1ZSEiKTtyZXR1cm57YWxpYXM6RmUsbmFtZTpBZSx2YWx1ZTpSZX19dGhyb3cgbmV3IEgoImludHJpbnNpYyAiK3FlKyIgZG9lcyBub3QgZXhpc3QhIil9O2NlLmV4cG9ydHM9ZnVuY3Rpb24ocWUsamUpe2lmKCJzdHJpbmciIT10eXBlb2YgcWV8fDA9PT1xZS5s'@; put 'ZW5ndGgpdGhyb3cgbmV3IFIoImludHJpbnNpYyBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIik7aWYoYXJndW1lbnRzLmxlbmd0aD4xJiYiYm9vbGVhbiIhPXR5cGVvZiBqZSl0aHJvdyBuZXcgUignImFsbG93TWlzc2luZyIgYXJndW1lbnQgbXVzdCBiZSBhIGJvb2xlYW4nKTtp'@; put 'ZihudWxsPT09d2UoL14lP1teJV0qJT8kLyxxZSkpdGhyb3cgbmV3IEgoImAlYCBtYXkgbm90IGJlIHByZXNlbnQgYW55d2hlcmUgYnV0IGF0IHRoZSBiZWdpbm5pbmcgYW5kIGVuZCBvZiB0aGUgaW50cmluc2ljIG5hbWUiKTt2YXIgQWU9ZnVuY3Rpb24ocWUpe3ZhciBqZT1sZShxZSwwLDEp'@; put 'LEFlPWxlKHFlLC0xKTtpZigiJSI9PT1qZSYmIiUiIT09QWUpdGhyb3cgbmV3IEgoImludmFsaWQgaW50cmluc2ljIHN5bnRheCwgZXhwZWN0ZWQgY2xvc2luZyBgJWAiKTtpZigiJSI9PT1BZSYmIiUiIT09amUpdGhyb3cgbmV3IEgoImludmFsaWQgaW50cmluc2ljIHN5bnRheCwgZXhwZWN0'@; put 'ZWQgb3BlbmluZyBgJWAiKTt2YXIgRmU9W107cmV0dXJuIG5lKHFlLFplLGZ1bmN0aW9uKFJlLEllLEhlLERlKXtGZVtGZS5sZW5ndGhdPUhlP25lKERlLFFlLCIkMSIpOkllfHxSZX0pLEZlfShxZSksRmU9QWUubGVuZ3RoPjA/QWVbMF06IiIsUmU9eGUoIiUiK0ZlKyIlIixqZSksSWU9UmUu'@; put 'bmFtZSxIZT1SZS52YWx1ZSxEZT0hMSxrZT1SZS5hbGlhcztrZSYmKEZlPWtlWzBdLGFlKEFlLEEoWzAsMV0sa2UpKSk7Zm9yKHZhciBfdD0xLG50PSEwO190PEFlLmxlbmd0aDtfdCs9MSl7dmFyIEplPUFlW190XSxvbj1sZShKZSwwLDEpLHl0PWxlKEplLC0xKTtpZigoJyInPT09b258fCIn'@; put 'Ij09PW9ufHwiYCI9PT1vbnx8JyInPT09eXR8fCInIj09PXl0fHwiYCI9PT15dCkmJm9uIT09eXQpdGhyb3cgbmV3IEgoInByb3BlcnR5IG5hbWVzIHdpdGggcXVvdGVzIG11c3QgaGF2ZSBtYXRjaGluZyBxdW90ZXMiKTtpZigoImNvbnN0cnVjdG9yIj09PUplfHwhbnQpJiYoRGU9ITApLG0o'@; put 'QyxJZT0iJSIrKEZlKz0iLiIrSmUpKyIlIikpSGU9Q1tJZV07ZWxzZSBpZihudWxsIT1IZSl7aWYoIShKZSBpbiBIZSkpe2lmKCFqZSl0aHJvdyBuZXcgUigiYmFzZSBpbnRyaW5zaWMgZm9yICIrcWUrIiBleGlzdHMsIGJ1dCB0aGUgcHJvcGVydHkgaXMgbm90IGF2YWlsYWJsZS4iKTtyZXR1'@; put 'cm59aWYodGUmJl90KzE+PUFlLmxlbmd0aCl7dmFyIE10PXRlKEhlLEplKTtIZT0obnQ9ISFNdCkmJiJnZXQiaW4gTXQmJiEoIm9yaWdpbmFsVmFsdWUiaW4gTXQuZ2V0KT9NdC5nZXQ6SGVbSmVdfWVsc2UgbnQ9bShIZSxKZSksSGU9SGVbSmVdO250JiYhRGUmJihDW0llXT1IZSl9fXJldHVy'@; put 'biBIZX19LDg4OTk6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig4ODkyKTtjZS5leHBvcnRzPUQuZ2V0UHJvdG90eXBlT2Z8fG51bGx9LDQ0MzpjZT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPXR5cGVvZiBSZWZsZWN0PCJ1IiYmUmVmbGVjdC5nZXRQcm90b3R5cGVPZnx8bnVs'@; put 'bH0sMTYxODooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDQ0MyksXz1iKDg4OTkpLHA9Yig2NTA0KTtjZS5leHBvcnRzPUQ/ZnVuY3Rpb24odyl7cmV0dXJuIEQodyl9Ol8/ZnVuY3Rpb24odyl7aWYoIXd8fCJvYmplY3QiIT10eXBlb2YgdyYmImZ1bmN0aW9uIiE9dHlwZW9mIHcp'@; put 'dGhyb3cgbmV3IFR5cGVFcnJvcigiZ2V0UHJvdG86IG5vdCBhbiBvYmplY3QiKTtyZXR1cm4gXyh3KX06cD9mdW5jdGlvbih3KXtyZXR1cm4gcCh3KX06bnVsbH0sNjkwOmNlPT57InVzZSBzdHJpY3QiO2NlLmV4cG9ydHM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcn0sNzI5Njoo'@; put 'Y2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDY5MCk7aWYoRCl0cnl7RChbXSwibGVuZ3RoIil9Y2F0Y2h7RD1udWxsfWNlLmV4cG9ydHM9RH0sNjQ1ODpjZT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPWZ1bmN0aW9uIGIoRCl7aWYobnVsbD09PUR8fCJvYmplY3QiIT10eXBlb2Yg'@; put 'RClyZXR1cm4gRDtpZihEIGluc3RhbmNlb2YgT2JqZWN0KXZhciBfPXtfX3Byb3RvX186SihEKX07ZWxzZSBfPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEQpLmZvckVhY2goZnVuY3Rpb24ocCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KF8s'@; put 'cCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEQscCkpfSksX307dmFyIEo9T2JqZWN0LmdldFByb3RvdHlwZU9mfHxmdW5jdGlvbihEKXtyZXR1cm4gRC5fX3Byb3RvX199fSw3NzooY2UsSixiKT0+e3ZhciBSLGosRD1iKDQxNTUpLF89Yig1MTA4KSxwPWIoNTQ0MyksTj1iKDIx'@; put 'NjEpLHc9Yig4NTIwKSxGPWIoNjQ1OCksSD1iKDk1MzkpO2Z1bmN0aW9uIEwodGUsaWUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0ZSxSLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaWV9fSl9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbC5mb3I/'@; put 'KFI9U3ltYm9sLmZvcigiZ3JhY2VmdWwtZnMucXVldWUiKSxqPVN5bWJvbC5mb3IoImdyYWNlZnVsLWZzLnByZXZpb3VzIikpOihSPSJfX19ncmFjZWZ1bC1mcy5xdWV1ZSIsaj0iX19fZ3JhY2VmdWwtZnMucHJldmlvdXMiKTt2YXIgWCxZPWZ1bmN0aW9uIFAoKXt9O2Z1bmN0aW9uIFcodGUp'@; put 'e04odGUpLHRlLmdyYWNlZnVsaWZ5PVcsdGUuY3JlYXRlUmVhZFN0cmVhbT1mdW5jdGlvbiBsZShhdCx4ZSl7cmV0dXJuIG5ldyB0ZS5SZWFkU3RyZWFtKGF0LHhlKX0sdGUuY3JlYXRlV3JpdGVTdHJlYW09ZnVuY3Rpb24gd2UoYXQseGUpe3JldHVybiBuZXcgdGUuV3JpdGVTdHJlYW0oYXQs'@; put 'eGUpfTt2YXIgaWU9dGUucmVhZEZpbGU7dGUucmVhZEZpbGU9ZnVuY3Rpb24gc2UoYXQseGUsdmUpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB4ZSYmKHZlPXhlLHhlPW51bGwpLGZ1bmN0aW9uIHFlKGplLEFlLEZlLFJlKXtyZXR1cm4gaWUoamUsQWUsZnVuY3Rpb24oSWUpeyFJZXx8IkVN'@; put 'RklMRSIhPT1JZS5jb2RlJiYiRU5GSUxFIiE9PUllLmNvZGU/ImZ1bmN0aW9uIj09dHlwZW9mIEZlJiZGZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6WihbcWUsW2plLEFlLEZlXSxJZSxSZXx8RGF0ZS5ub3coKSxEYXRlLm5vdygpXSl9KX0oYXQseGUsdmUpfTt2YXIgZ2U9dGUud3JpdGVGaWxl'@; put 'O3RlLndyaXRlRmlsZT1mdW5jdGlvbiBfZShhdCx4ZSx2ZSxxZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHZlJiYocWU9dmUsdmU9bnVsbCksZnVuY3Rpb24gamUoQWUsRmUsUmUsSWUsSGUpe3JldHVybiBnZShBZSxGZSxSZSxmdW5jdGlvbihEZSl7IURlfHwiRU1GSUxFIiE9PURlLmNv'@; put 'ZGUmJiJFTkZJTEUiIT09RGUuY29kZT8iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllLmFwcGx5KHRoaXMsYXJndW1lbnRzKTpaKFtqZSxbQWUsRmUsUmUsSWVdLERlLEhlfHxEYXRlLm5vdygpLERhdGUubm93KCldKX0pfShhdCx4ZSx2ZSxxZSl9O3ZhciBUZT10ZS5hcHBlbmRGaWxlO1RlJiYo'@; put 'dGUuYXBwZW5kRmlsZT1mdW5jdGlvbiBTZShhdCx4ZSx2ZSxxZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHZlJiYocWU9dmUsdmU9bnVsbCksZnVuY3Rpb24gamUoQWUsRmUsUmUsSWUsSGUpe3JldHVybiBUZShBZSxGZSxSZSxmdW5jdGlvbihEZSl7IURlfHwiRU1GSUxFIiE9PURlLmNv'@; put 'ZGUmJiJFTkZJTEUiIT09RGUuY29kZT8iZnVuY3Rpb24iPT10eXBlb2YgSWUmJkllLmFwcGx5KHRoaXMsYXJndW1lbnRzKTpaKFtqZSxbQWUsRmUsUmUsSWVdLERlLEhlfHxEYXRlLm5vdygpLERhdGUubm93KCldKX0pfShhdCx4ZSx2ZSxxZSl9KTt2YXIgemU9dGUuY29weUZpbGU7emUmJih0'@; put 'ZS5jb3B5RmlsZT1mdW5jdGlvbiB6KGF0LHhlLHZlLHFlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdmUmJihxZT12ZSx2ZT0wKSxmdW5jdGlvbiBqZShBZSxGZSxSZSxJZSxIZSl7cmV0dXJuIHplKEFlLEZlLFJlLGZ1bmN0aW9uKERlKXshRGV8fCJFTUZJTEUiIT09RGUuY29kZSYmIkVO'@; put 'RklMRSIhPT1EZS5jb2RlPyJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWUuYXBwbHkodGhpcyxhcmd1bWVudHMpOlooW2plLFtBZSxGZSxSZSxJZV0sRGUsSGV8fERhdGUubm93KCksRGF0ZS5ub3coKV0pfSl9KGF0LHhlLHZlLHFlKX0pO3ZhciBnPXRlLnJlYWRkaXI7dGUucmVhZGRpcj1mdW5j'@; put 'dGlvbiB4KGF0LHhlLHZlKXsiZnVuY3Rpb24iPT10eXBlb2YgeGUmJih2ZT14ZSx4ZT1udWxsKTt2YXIgcWU9eS50ZXN0KEQudmVyc2lvbik/ZnVuY3Rpb24oRmUsUmUsSWUsSGUpe3JldHVybiBnKEZlLGplKEZlLFJlLEllLEhlKSl9OmZ1bmN0aW9uKEZlLFJlLEllLEhlKXtyZXR1cm4gZyhG'@; put 'ZSxSZSxqZShGZSxSZSxJZSxIZSkpfTtyZXR1cm4gcWUoYXQseGUsdmUpO2Z1bmN0aW9uIGplKEFlLEZlLFJlLEllKXtyZXR1cm4gZnVuY3Rpb24oSGUsRGUpeyFIZXx8IkVNRklMRSIhPT1IZS5jb2RlJiYiRU5GSUxFIiE9PUhlLmNvZGU/KERlJiZEZS5zb3J0JiZEZS5zb3J0KCksImZ1bmN0'@; put 'aW9uIj09dHlwZW9mIFJlJiZSZS5jYWxsKHRoaXMsSGUsRGUpKTpaKFtxZSxbQWUsRmUsUmVdLEhlLEllfHxEYXRlLm5vdygpLERhdGUubm93KCldKX19fTt2YXIgeT0vXnZbMC01XVwuLztpZigidjAuOCI9PT1ELnZlcnNpb24uc3Vic3RyKDAsNCkpe3ZhciBDPXcodGUpO209Qy5SZWFkU3Ry'@; put 'ZWFtLGFlPUMuV3JpdGVTdHJlYW19dmFyIFQ9dGUuUmVhZFN0cmVhbTtUJiYobS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShULnByb3RvdHlwZSksbS5wcm90b3R5cGUub3Blbj1mdW5jdGlvbiBBKCl7dmFyIGF0PXRoaXM7UWUoYXQucGF0aCxhdC5mbGFncyxhdC5tb2RlLGZ1bmN0aW9uKHhl'@; put 'LHZlKXt4ZT8oYXQuYXV0b0Nsb3NlJiZhdC5kZXN0cm95KCksYXQuZW1pdCgiZXJyb3IiLHhlKSk6KGF0LmZkPXZlLGF0LmVtaXQoIm9wZW4iLHZlKSxhdC5yZWFkKCkpfSl9KTt2YXIgVj10ZS5Xcml0ZVN0cmVhbTtWJiYoYWUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoVi5wcm90b3R5cGUp'@; put 'LGFlLnByb3RvdHlwZS5vcGVuPWZ1bmN0aW9uIG5lKCl7dmFyIGF0PXRoaXM7UWUoYXQucGF0aCxhdC5mbGFncyxhdC5tb2RlLGZ1bmN0aW9uKHhlLHZlKXt4ZT8oYXQuZGVzdHJveSgpLGF0LmVtaXQoImVycm9yIix4ZSkpOihhdC5mZD12ZSxhdC5lbWl0KCJvcGVuIix2ZSkpfSl9KSxPYmpl'@; put 'Y3QuZGVmaW5lUHJvcGVydHkodGUsIlJlYWRTdHJlYW0iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbX0sc2V0OmZ1bmN0aW9uKGF0KXttPWF0fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0ZSwiV3JpdGVTdHJlYW0iLHtnZXQ6ZnVuY3Rp'@; put 'b24oKXtyZXR1cm4gYWV9LHNldDpmdW5jdGlvbihhdCl7YWU9YXR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSk7dmFyIFU9bTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGUsIkZpbGVSZWFkU3RyZWFtIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFV9LHNldDpmdW5jdGlvbihhdCl7'@; put 'VT1hdH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KTt2YXIgRT1hZTtmdW5jdGlvbiBtKGF0LHhlKXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIG0/KFQuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMpOm0uYXBwbHkoT2JqZWN0LmNyZWF0ZShtLnByb3RvdHlwZSksYXJndW1lbnRz'@; put 'KX1mdW5jdGlvbiBhZShhdCx4ZSl7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBhZT8oVi5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcyk6YWUuYXBwbHkoT2JqZWN0LmNyZWF0ZShhZS5wcm90b3R5cGUpLGFyZ3VtZW50cyl9T2JqZWN0LmRlZmluZVByb3BlcnR5KHRlLCJGaWxlV3JpdGVTdHJl'@; put 'YW0iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRX0sc2V0OmZ1bmN0aW9uKGF0KXtFPWF0fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pO3ZhciBaZT10ZS5vcGVuO2Z1bmN0aW9uIFFlKGF0LHhlLHZlLHFlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdmUmJihxZT12ZSx2ZT1u'@; put 'dWxsKSxmdW5jdGlvbiBqZShBZSxGZSxSZSxJZSxIZSl7cmV0dXJuIFplKEFlLEZlLFJlLGZ1bmN0aW9uKERlLGtlKXshRGV8fCJFTUZJTEUiIT09RGUuY29kZSYmIkVORklMRSIhPT1EZS5jb2RlPyJmdW5jdGlvbiI9PXR5cGVvZiBJZSYmSWUuYXBwbHkodGhpcyxhcmd1bWVudHMpOlooW2pl'@; put 'LFtBZSxGZSxSZSxJZV0sRGUsSGV8fERhdGUubm93KCksRGF0ZS5ub3coKV0pfSl9KGF0LHhlLHZlLHFlKX1yZXR1cm4gdGUub3Blbj1RZSx0ZX1mdW5jdGlvbiBaKHRlKXtZKCJFTlFVRVVFIix0ZVswXS5uYW1lLHRlWzFdKSxwW1JdLnB1c2godGUpLHEoKX1mdW5jdGlvbiBRKCl7Zm9yKHZh'@; put 'ciB0ZT1EYXRlLm5vdygpLGllPTA7aWU8cFtSXS5sZW5ndGg7KytpZSlwW1JdW2llXS5sZW5ndGg+MiYmKHBbUl1baWVdWzNdPXRlLHBbUl1baWVdWzRdPXRlKTtxKCl9ZnVuY3Rpb24gcSgpe2lmKGNsZWFyVGltZW91dChYKSxYPXZvaWQgMCwwIT09cFtSXS5sZW5ndGgpe3ZhciB0ZT1wW1Jd'@; put 'LnNoaWZ0KCksaWU9dGVbMF0sc2U9dGVbMV0sZ2U9dGVbMl0sX2U9dGVbM10sVGU9dGVbNF07aWYodm9pZCAwPT09X2UpWSgiUkVUUlkiLGllLm5hbWUsc2UpLGllLmFwcGx5KG51bGwsc2UpO2Vsc2UgaWYoRGF0ZS5ub3coKS1fZT49NmU0KXtZKCJUSU1FT1VUIixpZS5uYW1lLHNlKTt2YXIg'@; put 'U2U9c2UucG9wKCk7ImZ1bmN0aW9uIj09dHlwZW9mIFNlJiZTZS5jYWxsKG51bGwsZ2UpfWVsc2V7dmFyIHplPURhdGUubm93KCktVGUsej1NYXRoLm1heChUZS1fZSwxKTt6ZT49TWF0aC5taW4oMS4yKnosMTAwKT8oWSgiUkVUUlkiLGllLm5hbWUsc2UpLGllLmFwcGx5KG51bGwsc2UuY29u'@; put 'Y2F0KFtfZV0pKSk6cFtSXS5wdXNoKHRlKX12b2lkIDA9PT1YJiYoWD1zZXRUaW1lb3V0KHEsMCkpfX1ILmRlYnVnbG9nP1k9SC5kZWJ1Z2xvZygiZ2ZzNCIpOi9cYmdmczRcYi9pLnRlc3QoRC5lbnYuTk9ERV9ERUJVR3x8IiIpJiYoWT1mdW5jdGlvbigpe3ZhciB0ZT1ILmZvcm1hdC5hcHBs'@; put 'eShILGFyZ3VtZW50cyk7dGU9IkdGUzQ6ICIrdGUuc3BsaXQoL1xuLykuam9pbigiXG5HRlM0OiAiKSxfLmVycm9yKHRlKX0pLHBbUl18fChMKHAsYi5nW1JdfHxbXSkscC5jbG9zZT1mdW5jdGlvbih0ZSl7ZnVuY3Rpb24gaWUoc2UsZ2Upe3JldHVybiB0ZS5jYWxsKHAsc2UsZnVuY3Rpb24o'@; put 'X2Upe19lfHxRKCksImZ1bmN0aW9uIj09dHlwZW9mIGdlJiZnZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGllLGose3ZhbHVlOnRlfSksaWV9KHAuY2xvc2UpLHAuY2xvc2VTeW5jPWZ1bmN0aW9uKHRlKXtmdW5jdGlvbiBpZShzZSl7dGUu'@; put 'YXBwbHkocCxhcmd1bWVudHMpLFEoKX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGllLGose3ZhbHVlOnRlfSksaWV9KHAuY2xvc2VTeW5jKSwvXGJnZnM0XGIvaS50ZXN0KEQuZW52Lk5PREVfREVCVUd8fCIiKSYmRC5vbigiZXhpdCIsZnVuY3Rpb24oKXtZKHBbUl0pLGIoOTI4Miku'@; put 'ZXF1YWwocFtSXS5sZW5ndGgsMCl9KSksYi5nW1JdfHxMKGIuZyxwW1JdKSxjZS5leHBvcnRzPVcoRihwKSksRC5lbnYuVEVTVF9HUkFDRUZVTF9GU19HTE9CQUxfUEFUQ0gmJiFwLl9fcGF0Y2hlZCYmKGNlLmV4cG9ydHM9VyhwKSxwLl9fcGF0Y2hlZD0hMCl9LDg1MjA6KGNlLEosYik9Pnt2'@; put 'YXIgRD1iKDQxNTUpLF89YigyODMwKS5TdHJlYW07Y2UuZXhwb3J0cz1mdW5jdGlvbiBwKE4pe3JldHVybntSZWFkU3RyZWFtOmZ1bmN0aW9uIHcoSCxSKXtpZighKHRoaXMgaW5zdGFuY2VvZiB3KSlyZXR1cm4gbmV3IHcoSCxSKTtfLmNhbGwodGhpcyk7dmFyIGo9dGhpczt0aGlzLnBhdGg9'@; put 'SCx0aGlzLmZkPW51bGwsdGhpcy5yZWFkYWJsZT0hMCx0aGlzLnBhdXNlZD0hMSx0aGlzLmZsYWdzPSJyIix0aGlzLm1vZGU9NDM4LHRoaXMuYnVmZmVyU2l6ZT02NTUzNixSPVJ8fHt9O2Zvcih2YXIgUD1PYmplY3Qua2V5cyhSKSxMPTAsWT1QLmxlbmd0aDtMPFk7TCsrKXt2YXIgQj1QW0xd'@; put 'O3RoaXNbQl09UltCXX1pZih0aGlzLmVuY29kaW5nJiZ0aGlzLnNldEVuY29kaW5nKHRoaXMuZW5jb2RpbmcpLHZvaWQgMCE9PXRoaXMuc3RhcnQpe2lmKCJudW1iZXIiIT10eXBlb2YgdGhpcy5zdGFydCl0aHJvdyBUeXBlRXJyb3IoInN0YXJ0IG11c3QgYmUgYSBOdW1iZXIiKTtpZih2b2lk'@; put 'IDA9PT10aGlzLmVuZCl0aGlzLmVuZD0xLzA7ZWxzZSBpZigibnVtYmVyIiE9dHlwZW9mIHRoaXMuZW5kKXRocm93IFR5cGVFcnJvcigiZW5kIG11c3QgYmUgYSBOdW1iZXIiKTtpZih0aGlzLnN0YXJ0PnRoaXMuZW5kKXRocm93IG5ldyBFcnJvcigic3RhcnQgbXVzdCBiZSA8PSBlbmQiKTt0'@; put 'aGlzLnBvcz10aGlzLnN0YXJ0fW51bGw9PT10aGlzLmZkP04ub3Blbih0aGlzLnBhdGgsdGhpcy5mbGFncyx0aGlzLm1vZGUsZnVuY3Rpb24oVyxaKXtpZihXKXJldHVybiBqLmVtaXQoImVycm9yIixXKSx2b2lkKGoucmVhZGFibGU9ITEpO2ouZmQ9WixqLmVtaXQoIm9wZW4iLFopLGouX3Jl'@; put 'YWQoKX0pOkQubmV4dFRpY2soZnVuY3Rpb24oKXtqLl9yZWFkKCl9KX0sV3JpdGVTdHJlYW06ZnVuY3Rpb24gRihILFIpe2lmKCEodGhpcyBpbnN0YW5jZW9mIEYpKXJldHVybiBuZXcgRihILFIpO18uY2FsbCh0aGlzKSx0aGlzLnBhdGg9SCx0aGlzLmZkPW51bGwsdGhpcy53cml0YWJsZT0h'@; put 'MCx0aGlzLmZsYWdzPSJ3Iix0aGlzLmVuY29kaW5nPSJiaW5hcnkiLHRoaXMubW9kZT00MzgsdGhpcy5ieXRlc1dyaXR0ZW49MCxSPVJ8fHt9O2Zvcih2YXIgaj1PYmplY3Qua2V5cyhSKSxQPTAsTD1qLmxlbmd0aDtQPEw7UCsrKXt2YXIgWT1qW1BdO3RoaXNbWV09UltZXX1pZih2b2lkIDAh'@; put 'PT10aGlzLnN0YXJ0KXtpZigibnVtYmVyIiE9dHlwZW9mIHRoaXMuc3RhcnQpdGhyb3cgVHlwZUVycm9yKCJzdGFydCBtdXN0IGJlIGEgTnVtYmVyIik7aWYodGhpcy5zdGFydDwwKXRocm93IG5ldyBFcnJvcigic3RhcnQgbXVzdCBiZSA+PSB6ZXJvIik7dGhpcy5wb3M9dGhpcy5zdGFydH10'@; put 'aGlzLmJ1c3k9ITEsdGhpcy5fcXVldWU9W10sbnVsbD09PXRoaXMuZmQmJih0aGlzLl9vcGVuPU4ub3Blbix0aGlzLl9xdWV1ZS5wdXNoKFt0aGlzLl9vcGVuLHRoaXMucGF0aCx0aGlzLmZsYWdzLHRoaXMubW9kZSx2b2lkIDBdKSx0aGlzLmZsdXNoKCkpfX19fSwyMTYxOihjZSxKLGIpPT57'@; put 'dmFyIEQ9Yig0MTU1KSxfPWIoMzIwOCkscD1ELmN3ZCxOPW51bGwsdz1ELmVudi5HUkFDRUZVTF9GU19QTEFURk9STXx8RC5wbGF0Zm9ybTtELmN3ZD1mdW5jdGlvbigpe3JldHVybiBOfHwoTj1wLmNhbGwoRCkpLE59O3RyeXtELmN3ZCgpfWNhdGNoe31pZigiZnVuY3Rpb24iPT10eXBlb2Yg'@; put 'RC5jaGRpcil7dmFyIEY9RC5jaGRpcjtELmNoZGlyPWZ1bmN0aW9uKFIpe049bnVsbCxGLmNhbGwoRCxSKX0sT2JqZWN0LnNldFByb3RvdHlwZU9mJiZPYmplY3Quc2V0UHJvdG90eXBlT2YoRC5jaGRpcixGKX1jZS5leHBvcnRzPWZ1bmN0aW9uIEgoUil7ZnVuY3Rpb24gTChxKXtyZXR1cm4g'@; put 'cSYmZnVuY3Rpb24odGUsaWUsc2Upe3JldHVybiBxLmNhbGwoUix0ZSxpZSxmdW5jdGlvbihnZSl7UShnZSkmJihnZT1udWxsKSxzZSYmc2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfSl9fWZ1bmN0aW9uIFkocSl7cmV0dXJuIHEmJmZ1bmN0aW9uKHRlLGllKXt0cnl7cmV0dXJuIHEuY2FsbChS'@; put 'LHRlLGllKX1jYXRjaChzZSl7aWYoIVEoc2UpKXRocm93IHNlfX19ZnVuY3Rpb24gQihxKXtyZXR1cm4gcSYmZnVuY3Rpb24odGUsaWUsc2UsZ2Upe3JldHVybiBxLmNhbGwoUix0ZSxpZSxzZSxmdW5jdGlvbihfZSl7UShfZSkmJihfZT1udWxsKSxnZSYmZ2UuYXBwbHkodGhpcyxhcmd1bWVu'@; put 'dHMpfSl9fWZ1bmN0aW9uIFcocSl7cmV0dXJuIHEmJmZ1bmN0aW9uKHRlLGllLHNlKXt0cnl7cmV0dXJuIHEuY2FsbChSLHRlLGllLHNlKX1jYXRjaChnZSl7aWYoIVEoZ2UpKXRocm93IGdlfX19ZnVuY3Rpb24gWihxKXtyZXR1cm4gcSYmZnVuY3Rpb24odGUsaWUsc2Upe2Z1bmN0aW9uIGdl'@; put 'KF9lLFRlKXtUZSYmKFRlLnVpZDwwJiYoVGUudWlkKz00Mjk0OTY3Mjk2KSxUZS5naWQ8MCYmKFRlLmdpZCs9NDI5NDk2NzI5NikpLHNlJiZzZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGllJiYoc2U9aWUsaWU9bnVsbCksaWU/cS5jYWxsKFIsdGUs'@; put 'aWUsZ2UpOnEuY2FsbChSLHRlLGdlKX19ZnVuY3Rpb24gWChxKXtyZXR1cm4gcSYmZnVuY3Rpb24odGUsaWUpe3ZhciBzZT1pZT9xLmNhbGwoUix0ZSxpZSk6cS5jYWxsKFIsdGUpO3JldHVybiBzZSYmKHNlLnVpZDwwJiYoc2UudWlkKz00Mjk0OTY3Mjk2KSxzZS5naWQ8MCYmKHNlLmdpZCs9'@; put 'NDI5NDk2NzI5NikpLHNlfX1mdW5jdGlvbiBRKHEpe3JldHVybiFxfHwiRU5PU1lTIj09PXEuY29kZXx8IShELmdldHVpZCYmMD09PUQuZ2V0dWlkKCl8fCJFSU5WQUwiIT09cS5jb2RlJiYiRVBFUk0iIT09cS5jb2RlKX1fLmhhc093blByb3BlcnR5KCJPX1NZTUxJTksiKSYmRC52ZXJzaW9u'@; put 'Lm1hdGNoKC9edjBcLjZcLlswLTJdfF52MFwuNVwuLykmJmZ1bmN0aW9uIGoocSl7cS5sY2htb2Q9ZnVuY3Rpb24odGUsaWUsc2Upe3Eub3Blbih0ZSxfLk9fV1JPTkxZfF8uT19TWU1MSU5LLGllLGZ1bmN0aW9uKGdlLF9lKXtnZT9zZSYmc2UoZ2UpOnEuZmNobW9kKF9lLGllLGZ1bmN0aW9u'@; put 'KFRlKXtxLmNsb3NlKF9lLGZ1bmN0aW9uKFNlKXtzZSYmc2UoVGV8fFNlKX0pfSl9KX0scS5sY2htb2RTeW5jPWZ1bmN0aW9uKHRlLGllKXt2YXIgX2Usc2U9cS5vcGVuU3luYyh0ZSxfLk9fV1JPTkxZfF8uT19TWU1MSU5LLGllKSxnZT0hMDt0cnl7X2U9cS5mY2htb2RTeW5jKHNlLGllKSxn'@; put 'ZT0hMX1maW5hbGx5e2lmKGdlKXRyeXtxLmNsb3NlU3luYyhzZSl9Y2F0Y2h7fWVsc2UgcS5jbG9zZVN5bmMoc2UpfXJldHVybiBfZX19KFIpLFIubHV0aW1lc3x8ZnVuY3Rpb24gUChxKXtfLmhhc093blByb3BlcnR5KCJPX1NZTUxJTksiKSYmcS5mdXRpbWVzPyhxLmx1dGltZXM9ZnVuY3Rp'@; put 'b24odGUsaWUsc2UsZ2Upe3Eub3Blbih0ZSxfLk9fU1lNTElOSyxmdW5jdGlvbihfZSxUZSl7X2U/Z2UmJmdlKF9lKTpxLmZ1dGltZXMoVGUsaWUsc2UsZnVuY3Rpb24oU2Upe3EuY2xvc2UoVGUsZnVuY3Rpb24oemUpe2dlJiZnZShTZXx8emUpfSl9KX0pfSxxLmx1dGltZXNTeW5jPWZ1bmN0'@; put 'aW9uKHRlLGllLHNlKXt2YXIgX2UsZ2U9cS5vcGVuU3luYyh0ZSxfLk9fU1lNTElOSyksVGU9ITA7dHJ5e19lPXEuZnV0aW1lc1N5bmMoZ2UsaWUsc2UpLFRlPSExfWZpbmFsbHl7aWYoVGUpdHJ5e3EuY2xvc2VTeW5jKGdlKX1jYXRjaHt9ZWxzZSBxLmNsb3NlU3luYyhnZSl9cmV0dXJuIF9l'@; put 'fSk6cS5mdXRpbWVzJiYocS5sdXRpbWVzPWZ1bmN0aW9uKHRlLGllLHNlLGdlKXtnZSYmRC5uZXh0VGljayhnZSl9LHEubHV0aW1lc1N5bmM9ZnVuY3Rpb24oKXt9KX0oUiksUi5jaG93bj1CKFIuY2hvd24pLFIuZmNob3duPUIoUi5mY2hvd24pLFIubGNob3duPUIoUi5sY2hvd24pLFIuY2ht'@; put 'b2Q9TChSLmNobW9kKSxSLmZjaG1vZD1MKFIuZmNobW9kKSxSLmxjaG1vZD1MKFIubGNobW9kKSxSLmNob3duU3luYz1XKFIuY2hvd25TeW5jKSxSLmZjaG93blN5bmM9VyhSLmZjaG93blN5bmMpLFIubGNob3duU3luYz1XKFIubGNob3duU3luYyksUi5jaG1vZFN5bmM9WShSLmNobW9kU3lu'@; put 'YyksUi5mY2htb2RTeW5jPVkoUi5mY2htb2RTeW5jKSxSLmxjaG1vZFN5bmM9WShSLmxjaG1vZFN5bmMpLFIuc3RhdD1aKFIuc3RhdCksUi5mc3RhdD1aKFIuZnN0YXQpLFIubHN0YXQ9WihSLmxzdGF0KSxSLnN0YXRTeW5jPVgoUi5zdGF0U3luYyksUi5mc3RhdFN5bmM9WChSLmZzdGF0U3lu'@; put 'YyksUi5sc3RhdFN5bmM9WChSLmxzdGF0U3luYyksUi5jaG1vZCYmIVIubGNobW9kJiYoUi5sY2htb2Q9ZnVuY3Rpb24ocSx0ZSxpZSl7aWUmJkQubmV4dFRpY2soaWUpfSxSLmxjaG1vZFN5bmM9ZnVuY3Rpb24oKXt9KSxSLmNob3duJiYhUi5sY2hvd24mJihSLmxjaG93bj1mdW5jdGlvbihx'@; put 'LHRlLGllLHNlKXtzZSYmRC5uZXh0VGljayhzZSl9LFIubGNob3duU3luYz1mdW5jdGlvbigpe30pLCJ3aW4zMiI9PT13JiYoUi5yZW5hbWU9ImZ1bmN0aW9uIiE9dHlwZW9mIFIucmVuYW1lP1IucmVuYW1lOmZ1bmN0aW9uKHEpe2Z1bmN0aW9uIHRlKGllLHNlLGdlKXt2YXIgX2U9RGF0ZS5u'@; put 'b3coKSxUZT0wO3EoaWUsc2UsZnVuY3Rpb24gU2UoemUpe2lmKHplJiYoIkVBQ0NFUyI9PT16ZS5jb2RlfHwiRVBFUk0iPT09emUuY29kZXx8IkVCVVNZIj09PXplLmNvZGUpJiZEYXRlLm5vdygpLV9lPDZlNClyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe1Iuc3RhdChzZSxmdW5jdGlv'@; put 'bih6LGcpe3omJiJFTk9FTlQiPT09ei5jb2RlP3EoaWUsc2UsU2UpOmdlKHplKX0pfSxUZSksdm9pZChUZTwxMDAmJihUZSs9MTApKTtnZSYmZ2UoemUpfSl9cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZiYmT2JqZWN0LnNldFByb3RvdHlwZU9mKHRlLHEpLHRlfShSLnJlbmFtZSkpLFIu'@; put 'cmVhZD0iZnVuY3Rpb24iIT10eXBlb2YgUi5yZWFkP1IucmVhZDpmdW5jdGlvbihxKXtmdW5jdGlvbiB0ZShpZSxzZSxnZSxfZSxUZSxTZSl7dmFyIHplO2lmKFNlJiYiZnVuY3Rpb24iPT10eXBlb2YgU2Upe3ZhciB6PTA7emU9ZnVuY3Rpb24oZyx5LHgpe2lmKGcmJiJFQUdBSU4iPT09Zy5j'@; put 'b2RlJiZ6PDEwKXJldHVybiB6KysscS5jYWxsKFIsaWUsc2UsZ2UsX2UsVGUsemUpO1NlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19cmV0dXJuIHEuY2FsbChSLGllLHNlLGdlLF9lLFRlLHplKX1yZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mJiZPYmplY3Quc2V0UHJvdG90eXBlT2YodGUs'@; put 'cSksdGV9KFIucmVhZCksUi5yZWFkU3luYz0iZnVuY3Rpb24iIT10eXBlb2YgUi5yZWFkU3luYz9SLnJlYWRTeW5jOmZ1bmN0aW9uKHEpe3JldHVybiBmdW5jdGlvbih0ZSxpZSxzZSxnZSxfZSl7Zm9yKHZhciBUZT0wOzspdHJ5e3JldHVybiBxLmNhbGwoUix0ZSxpZSxzZSxnZSxfZSl9Y2F0'@; put 'Y2goU2Upe2lmKCJFQUdBSU4iPT09U2UuY29kZSYmVGU8MTApe1RlKys7Y29udGludWV9dGhyb3cgU2V9fX0oUi5yZWFkU3luYyl9fSwxMDQ0OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNDQyOSksXz1mdW5jdGlvbigpe3JldHVybiEhRH07Xy5oYXNBcnJheUxlbmd0aERlZmlu'@; put 'ZUJ1Zz1mdW5jdGlvbigpe2lmKCFEKXJldHVybiBudWxsO3RyeXtyZXR1cm4gMSE9PUQoW10sImxlbmd0aCIse3ZhbHVlOjF9KS5sZW5ndGh9Y2F0Y2h7cmV0dXJuITB9fSxjZS5leHBvcnRzPV99LDE0MDU6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9dHlwZW9mIFN5bWJvbDwidSIm'@; put 'JlN5bWJvbCxfPWIoNTQxOSk7Y2UuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBEJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIEQoImZvbyIpJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbCgiYmFyIikmJl8oKX19LDU0MTk6'@; put 'Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz1mdW5jdGlvbigpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBTeW1ib2x8fCJmdW5jdGlvbiIhPXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXJldHVybiExO2lmKCJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yKXJl'@; put 'dHVybiEwO3ZhciBiPXt9LEQ9U3ltYm9sKCJ0ZXN0IiksXz1PYmplY3QoRCk7aWYoInN0cmluZyI9PXR5cGVvZiBEfHwiW29iamVjdCBTeW1ib2xdIiE9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChEKXx8IltvYmplY3QgU3ltYm9sXSIhPT1PYmplY3QucHJvdG90eXBlLnRvU3Ry'@; put 'aW5nLmNhbGwoXykpcmV0dXJuITE7Zm9yKHZhciBOIGluIGJbRF09NDIsYilyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmtleXMmJjAhPT1PYmplY3Qua2V5cyhiKS5sZW5ndGh8fCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyYmMCE9'@; put 'PU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGIpLmxlbmd0aClyZXR1cm4hMTt2YXIgdz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGIpO2lmKDEhPT13Lmxlbmd0aHx8d1swXSE9PUR8fCFPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoYixEKSlyZXR1'@; put 'cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcil7dmFyIEY9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiLEQpO2lmKDQyIT09Ri52YWx1ZXx8ITAhPT1GLmVudW1lcmFibGUpcmV0dXJuITF9cmV0dXJuITB9fSw2NDEwOihj'@; put 'ZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNTQxOSk7Y2UuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybiBEKCkmJiEhU3ltYm9sLnRvU3RyaW5nVGFnfX0sMzM0OTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDk1MDkpLkJ1ZmZlcixfPWIoMjgzMCkuVHJhbnNmb3JtO2Z1'@; put 'bmN0aW9uIE4oUil7Xy5jYWxsKHRoaXMpLHRoaXMuX2Jsb2NrPUQuYWxsb2NVbnNhZmUoUiksdGhpcy5fYmxvY2tTaXplPVIsdGhpcy5fYmxvY2tPZmZzZXQ9MCx0aGlzLl9sZW5ndGg9WzAsMCwwLDBdLHRoaXMuX2ZpbmFsaXplZD0hMX1iKDU3MTcpKE4sXyksTi5wcm90b3R5cGUuX3RyYW5z'@; put 'Zm9ybT1mdW5jdGlvbihSLGosUCl7dmFyIEw9bnVsbDt0cnl7dGhpcy51cGRhdGUoUixqKX1jYXRjaChZKXtMPVl9UChMKX0sTi5wcm90b3R5cGUuX2ZsdXNoPWZ1bmN0aW9uKFIpe3ZhciBqPW51bGw7dHJ5e3RoaXMucHVzaCh0aGlzLmRpZ2VzdCgpKX1jYXRjaChQKXtqPVB9UihqKX07dmFy'@; put 'IHc9dHlwZW9mIFVpbnQ4QXJyYXk8InUiLEY9dHlwZW9mIEFycmF5QnVmZmVyPCJ1IiYmdHlwZW9mIFVpbnQ4QXJyYXk8InUiJiZBcnJheUJ1ZmZlci5pc1ZpZXcmJihELnByb3RvdHlwZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl8fEQuVFlQRURfQVJSQVlfU1VQUE9SVCk7Ti5wcm90b3R5cGUu'@; put 'dXBkYXRlPWZ1bmN0aW9uKFIsail7aWYodGhpcy5fZmluYWxpemVkKXRocm93IG5ldyBFcnJvcigiRGlnZXN0IGFscmVhZHkgY2FsbGVkIik7Uj1mdW5jdGlvbiBIKFIsail7aWYoUiBpbnN0YW5jZW9mIEQpcmV0dXJuIFI7aWYoInN0cmluZyI9PXR5cGVvZiBSKXJldHVybiBELmZyb20oUixq'@; put 'KTtpZihGJiZBcnJheUJ1ZmZlci5pc1ZpZXcoUikpe2lmKDA9PT1SLmJ5dGVMZW5ndGgpcmV0dXJuIEQuYWxsb2MoMCk7dmFyIFA9RC5mcm9tKFIuYnVmZmVyLFIuYnl0ZU9mZnNldCxSLmJ5dGVMZW5ndGgpO2lmKFAuYnl0ZUxlbmd0aD09PVIuYnl0ZUxlbmd0aClyZXR1cm4gUH1pZih3JiZS'@; put 'IGluc3RhbmNlb2YgVWludDhBcnJheXx8RC5pc0J1ZmZlcihSKSYmUi5jb25zdHJ1Y3RvciYmImZ1bmN0aW9uIj09dHlwZW9mIFIuY29uc3RydWN0b3IuaXNCdWZmZXImJlIuY29uc3RydWN0b3IuaXNCdWZmZXIoUikpcmV0dXJuIEQuZnJvbShSKTt0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUg'@; put 'ImRhdGEiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBzdHJpbmcgb3IgYW4gaW5zdGFuY2Ugb2YgQnVmZmVyLCBUeXBlZEFycmF5LCBvciBEYXRhVmlldy4nKX0oUixqKTtmb3IodmFyIFA9dGhpcy5fYmxvY2ssTD0wO3RoaXMuX2Jsb2NrT2Zmc2V0K1IubGVuZ3RoLUw+PXRoaXMuX2Jsb2Nr'@; put 'U2l6ZTspe2Zvcih2YXIgWT10aGlzLl9ibG9ja09mZnNldDtZPHRoaXMuX2Jsb2NrU2l6ZTspUFtZKytdPVJbTCsrXTt0aGlzLl91cGRhdGUoKSx0aGlzLl9ibG9ja09mZnNldD0wfWZvcig7TDxSLmxlbmd0aDspUFt0aGlzLl9ibG9ja09mZnNldCsrXT1SW0wrK107Zm9yKHZhciBCPTAsVz04'@; put 'KlIubGVuZ3RoO1c+MDsrK0IpdGhpcy5fbGVuZ3RoW0JdKz1XLChXPXRoaXMuX2xlbmd0aFtCXS80Mjk0OTY3Mjk2fDApPjAmJih0aGlzLl9sZW5ndGhbQl0tPTQyOTQ5NjcyOTYqVyk7cmV0dXJuIHRoaXN9LE4ucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3Io'@; put 'Il91cGRhdGUgaXMgbm90IGltcGxlbWVudGVkIil9LE4ucHJvdG90eXBlLmRpZ2VzdD1mdW5jdGlvbihSKXtpZih0aGlzLl9maW5hbGl6ZWQpdGhyb3cgbmV3IEVycm9yKCJEaWdlc3QgYWxyZWFkeSBjYWxsZWQiKTt0aGlzLl9maW5hbGl6ZWQ9ITA7dmFyIGo9dGhpcy5fZGlnZXN0KCk7dm9p'@; put 'ZCAwIT09UiYmKGo9ai50b1N0cmluZyhSKSksdGhpcy5fYmxvY2suZmlsbCgwKSx0aGlzLl9ibG9ja09mZnNldD0wO2Zvcih2YXIgUD0wO1A8NDsrK1ApdGhpcy5fbGVuZ3RoW1BdPTA7cmV0dXJuIGp9LE4ucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIl9k'@; put 'aWdlc3QgaXMgbm90IGltcGxlbWVudGVkIil9LGNlLmV4cG9ydHM9Tn0sMzcxNTooY2UsSixiKT0+e3ZhciBEPUo7RC51dGlscz1iKDY0MzYpLEQuY29tbW9uPWIoNTc3MiksRC5zaGE9Yig5MDQxKSxELnJpcGVtZD1iKDI5NDkpLEQuaG1hYz1iKDIzNDQpLEQuc2hhMT1ELnNoYS5zaGExLEQu'@; put 'c2hhMjU2PUQuc2hhLnNoYTI1NixELnNoYTIyND1ELnNoYS5zaGEyMjQsRC5zaGEzODQ9RC5zaGEuc2hhMzg0LEQuc2hhNTEyPUQuc2hhLnNoYTUxMixELnJpcGVtZDE2MD1ELnJpcGVtZC5yaXBlbWQxNjB9LDU3NzI6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig2NDM2KSxfPWIo'@; put 'OTc0Nik7ZnVuY3Rpb24gcCgpe3RoaXMucGVuZGluZz1udWxsLHRoaXMucGVuZGluZ1RvdGFsPTAsdGhpcy5ibG9ja1NpemU9dGhpcy5jb25zdHJ1Y3Rvci5ibG9ja1NpemUsdGhpcy5vdXRTaXplPXRoaXMuY29uc3RydWN0b3Iub3V0U2l6ZSx0aGlzLmhtYWNTdHJlbmd0aD10aGlzLmNvbnN0'@; put 'cnVjdG9yLmhtYWNTdHJlbmd0aCx0aGlzLnBhZExlbmd0aD10aGlzLmNvbnN0cnVjdG9yLnBhZExlbmd0aC84LHRoaXMuZW5kaWFuPSJiaWciLHRoaXMuX2RlbHRhOD10aGlzLmJsb2NrU2l6ZS84LHRoaXMuX2RlbHRhMzI9dGhpcy5ibG9ja1NpemUvMzJ9Si5CbG9ja0hhc2g9cCxwLnByb3Rv'@; put 'dHlwZS51cGRhdGU9ZnVuY3Rpb24odyxGKXtpZih3PUQudG9BcnJheSh3LEYpLHRoaXMucGVuZGluZz10aGlzLnBlbmRpbmc/dGhpcy5wZW5kaW5nLmNvbmNhdCh3KTp3LHRoaXMucGVuZGluZ1RvdGFsKz13Lmxlbmd0aCx0aGlzLnBlbmRpbmcubGVuZ3RoPj10aGlzLl9kZWx0YTgpe3ZhciBI'@; put 'PSh3PXRoaXMucGVuZGluZykubGVuZ3RoJXRoaXMuX2RlbHRhODt0aGlzLnBlbmRpbmc9dy5zbGljZSh3Lmxlbmd0aC1ILHcubGVuZ3RoKSwwPT09dGhpcy5wZW5kaW5nLmxlbmd0aCYmKHRoaXMucGVuZGluZz1udWxsKSx3PUQuam9pbjMyKHcsMCx3Lmxlbmd0aC1ILHRoaXMuZW5kaWFuKTtm'@; put 'b3IodmFyIFI9MDtSPHcubGVuZ3RoO1IrPXRoaXMuX2RlbHRhMzIpdGhpcy5fdXBkYXRlKHcsUixSK3RoaXMuX2RlbHRhMzIpfXJldHVybiB0aGlzfSxwLnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24odyl7cmV0dXJuIHRoaXMudXBkYXRlKHRoaXMuX3BhZCgpKSxfKG51bGw9PT10aGlzLnBl'@; put 'bmRpbmcpLHRoaXMuX2RpZ2VzdCh3KX0scC5wcm90b3R5cGUuX3BhZD1mdW5jdGlvbigpe3ZhciB3PXRoaXMucGVuZGluZ1RvdGFsLEY9dGhpcy5fZGVsdGE4LEg9Ri0odyt0aGlzLnBhZExlbmd0aCklRixSPW5ldyBBcnJheShIK3RoaXMucGFkTGVuZ3RoKTtSWzBdPTEyODtmb3IodmFyIGo9'@; put 'MTtqPEg7aisrKVJbal09MDtpZih3PDw9MywiYmlnIj09PXRoaXMuZW5kaWFuKXtmb3IodmFyIFA9ODtQPHRoaXMucGFkTGVuZ3RoO1ArKylSW2orK109MDtSW2orK109MCxSW2orK109MCxSW2orK109MCxSW2orK109MCxSW2orK109dz4+PjI0JjI1NSxSW2orK109dz4+PjE2JjI1NSxSW2or'@; put 'K109dz4+PjgmMjU1LFJbaisrXT0yNTUmd31lbHNlIGZvcihSW2orK109MjU1JncsUltqKytdPXc+Pj44JjI1NSxSW2orK109dz4+PjE2JjI1NSxSW2orK109dz4+PjI0JjI1NSxSW2orK109MCxSW2orK109MCxSW2orK109MCxSW2orK109MCxQPTg7UDx0aGlzLnBhZExlbmd0aDtQKyspUltq'@; put 'KytdPTA7cmV0dXJuIFJ9fSwyMzQ0OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNjQzNiksXz1iKDk3NDYpO2Z1bmN0aW9uIHAoTix3LEYpe2lmKCEodGhpcyBpbnN0YW5jZW9mIHApKXJldHVybiBuZXcgcChOLHcsRik7dGhpcy5IYXNoPU4sdGhpcy5ibG9ja1NpemU9Ti5ibG9j'@; put 'a1NpemUvOCx0aGlzLm91dFNpemU9Ti5vdXRTaXplLzgsdGhpcy5pbm5lcj1udWxsLHRoaXMub3V0ZXI9bnVsbCx0aGlzLl9pbml0KEQudG9BcnJheSh3LEYpKX1jZS5leHBvcnRzPXAscC5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24odyl7dy5sZW5ndGg+dGhpcy5ibG9ja1NpemUmJih3PShu'@; put 'ZXcgdGhpcy5IYXNoKS51cGRhdGUodykuZGlnZXN0KCkpLF8ody5sZW5ndGg8PXRoaXMuYmxvY2tTaXplKTtmb3IodmFyIEY9dy5sZW5ndGg7Rjx0aGlzLmJsb2NrU2l6ZTtGKyspdy5wdXNoKDApO2ZvcihGPTA7Rjx3Lmxlbmd0aDtGKyspd1tGXV49NTQ7Zm9yKHRoaXMuaW5uZXI9KG5ldyB0'@; put 'aGlzLkhhc2gpLnVwZGF0ZSh3KSxGPTA7Rjx3Lmxlbmd0aDtGKyspd1tGXV49MTA2O3RoaXMub3V0ZXI9KG5ldyB0aGlzLkhhc2gpLnVwZGF0ZSh3KX0scC5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHcsRil7cmV0dXJuIHRoaXMuaW5uZXIudXBkYXRlKHcsRiksdGhpc30scC5wcm90b3R5'@; put 'cGUuZGlnZXN0PWZ1bmN0aW9uKHcpe3JldHVybiB0aGlzLm91dGVyLnVwZGF0ZSh0aGlzLmlubmVyLmRpZ2VzdCgpKSx0aGlzLm91dGVyLmRpZ2VzdCh3KX19LDI5NDk6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig2NDM2KSxfPWIoNTc3MikscD1ELnJvdGwzMixOPUQuc3VtMzIs'@; put 'dz1ELnN1bTMyXzMsRj1ELnN1bTMyXzQsSD1fLkJsb2NrSGFzaDtmdW5jdGlvbiBSKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgUikpcmV0dXJuIG5ldyBSO0guY2FsbCh0aGlzKSx0aGlzLmg9WzE3MzI1ODQxOTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OCwzMjg1Mzc3NTIwXSx0'@; put 'aGlzLmVuZGlhbj0ibGl0dGxlIn1mdW5jdGlvbiBqKFgsUSxxLHRlKXtyZXR1cm4gWDw9MTU/UV5xXnRlOlg8PTMxP1EmcXx+USZ0ZTpYPD00Nz8oUXx+cSledGU6WDw9NjM/USZ0ZXxxJn50ZTpRXihxfH50ZSl9ZnVuY3Rpb24gTChYKXtyZXR1cm4gWDw9MTU/MTM1MjgyOTkyNjpYPD0zMT8x'@; put 'NTQ4NjAzNjg0Olg8PTQ3PzE4MzYwNzI2OTE6WDw9NjM/MjA1Mzk5NDIxNzowfUQuaW5oZXJpdHMoUixIKSxKLnJpcGVtZDE2MD1SLFIuYmxvY2tTaXplPTUxMixSLm91dFNpemU9MTYwLFIuaG1hY1N0cmVuZ3RoPTE5MixSLnBhZExlbmd0aD02NCxSLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0'@; put 'aW9uKFEscSl7Zm9yKHZhciB0ZT10aGlzLmhbMF0saWU9dGhpcy5oWzFdLHNlPXRoaXMuaFsyXSxnZT10aGlzLmhbM10sX2U9dGhpcy5oWzRdLFRlPXRlLFNlPWllLHplPXNlLHo9Z2UsZz1fZSx5PTA7eTw4MDt5Kyspe3ZhciB4PU4ocChGKHRlLGooeSxpZSxzZSxnZSksUVtZW3ldK3FdLChY'@; put 'PXkpPD0xNT8wOlg8PTMxPzE1MTg1MDAyNDk6WDw9NDc/MTg1OTc3NTM5MzpYPD02Mz8yNDAwOTU5NzA4OjI4NDA4NTM4MzgpLFdbeV0pLF9lKTt0ZT1fZSxfZT1nZSxnZT1wKHNlLDEwKSxzZT1pZSxpZT14LHg9TihwKEYoVGUsaig3OS15LFNlLHplLHopLFFbQlt5XStxXSxMKHkpKSxaW3ld'@; put 'KSxnKSxUZT1nLGc9eix6PXAoemUsMTApLHplPVNlLFNlPXh9dmFyIFg7eD13KHRoaXMuaFsxXSxzZSx6KSx0aGlzLmhbMV09dyh0aGlzLmhbMl0sZ2UsZyksdGhpcy5oWzJdPXcodGhpcy5oWzNdLF9lLFRlKSx0aGlzLmhbM109dyh0aGlzLmhbNF0sdGUsU2UpLHRoaXMuaFs0XT13KHRoaXMu'@; put 'aFswXSxpZSx6ZSksdGhpcy5oWzBdPXh9LFIucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24oUSl7cmV0dXJuImhleCI9PT1RP0QudG9IZXgzMih0aGlzLmgsImxpdHRsZSIpOkQuc3BsaXQzMih0aGlzLmgsImxpdHRsZSIpfTt2YXIgWT1bMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwx'@; put 'MywxNCwxNSw3LDQsMTMsMSwxMCw2LDE1LDMsMTIsMCw5LDUsMiwxNCwxMSw4LDMsMTAsMTQsNCw5LDE1LDgsMSwyLDcsMCw2LDEzLDExLDUsMTIsMSw5LDExLDEwLDAsOCwxMiw0LDEzLDMsNywxNSwxNCw1LDYsMiw0LDAsNSw5LDcsMTIsMiwxMCwxNCwxLDMsOCwxMSw2LDE1LDEzXSxCPVs1'@; put 'LDE0LDcsMCw5LDIsMTEsNCwxMyw2LDE1LDgsMSwxMCwzLDEyLDYsMTEsMyw3LDAsMTMsNSwxMCwxNCwxNSw4LDEyLDQsOSwxLDIsMTUsNSwxLDMsNywxNCw2LDksMTEsOCwxMiwyLDEwLDAsNCwxMyw4LDYsNCwxLDMsMTEsMTUsMCw1LDEyLDIsMTMsOSw3LDEwLDE0LDEyLDE1LDEwLDQsMSw1'@; put 'LDgsNyw2LDIsMTMsMTQsMCwzLDksMTFdLFc9WzExLDE0LDE1LDEyLDUsOCw3LDksMTEsMTMsMTQsMTUsNiw3LDksOCw3LDYsOCwxMywxMSw5LDcsMTUsNywxMiwxNSw5LDExLDcsMTMsMTIsMTEsMTMsNiw3LDE0LDksMTMsMTUsMTQsOCwxMyw2LDUsMTIsNyw1LDExLDEyLDE0LDE1LDE0LDE1'@; put 'LDksOCw5LDE0LDUsNiw4LDYsNSwxMiw5LDE1LDUsMTEsNiw4LDEzLDEyLDUsMTIsMTMsMTQsMTEsOCw1LDZdLFo9WzgsOSw5LDExLDEzLDE1LDE1LDUsNyw3LDgsMTEsMTQsMTQsMTIsNiw5LDEzLDE1LDcsMTIsOCw5LDExLDcsNywxMiw3LDYsMTUsMTMsMTEsOSw3LDE1LDExLDgsNiw2LDE0'@; put 'LDEyLDEzLDUsMTQsMTMsMTMsNyw1LDE1LDUsOCwxMSwxNCwxNCw2LDE0LDYsOSwxMiw5LDEyLDUsMTUsOCw4LDUsMTIsOSwxMiw1LDE0LDYsOCwxMyw2LDUsMTUsMTMsMTEsMTFdfSw5MDQxOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO0ouc2hhMT1iKDQ3NjEpLEouc2hhMjI0PWIoNzk5KSxK'@; put 'LnNoYTI1Nj1iKDkzNDQpLEouc2hhMzg0PWIoNzcyKSxKLnNoYTUxMj1iKDU5MDApfSw0NzYxOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNjQzNiksXz1iKDU3NzIpLHA9Yig3MDM4KSxOPUQucm90bDMyLHc9RC5zdW0zMixGPUQuc3VtMzJfNSxIPXAuZnRfMSxSPV8uQmxvY2tI'@; put 'YXNoLGo9WzE1MTg1MDAyNDksMTg1OTc3NTM5MywyNDAwOTU5NzA4LDMzOTU0Njk3ODJdO2Z1bmN0aW9uIFAoKXtpZighKHRoaXMgaW5zdGFuY2VvZiBQKSlyZXR1cm4gbmV3IFA7Ui5jYWxsKHRoaXMpLHRoaXMuaD1bMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4'@; put 'LDMyODUzNzc1MjBdLHRoaXMuVz1uZXcgQXJyYXkoODApfUQuaW5oZXJpdHMoUCxSKSxjZS5leHBvcnRzPVAsUC5ibG9ja1NpemU9NTEyLFAub3V0U2l6ZT0xNjAsUC5obWFjU3RyZW5ndGg9ODAsUC5wYWRMZW5ndGg9NjQsUC5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihZLEIpe2Zvcih2'@; put 'YXIgVz10aGlzLlcsWj0wO1o8MTY7WisrKVdbWl09WVtCK1pdO2Zvcig7WjxXLmxlbmd0aDtaKyspV1taXT1OKFdbWi0zXV5XW1otOF1eV1taLTE0XV5XW1otMTZdLDEpO3ZhciBYPXRoaXMuaFswXSxRPXRoaXMuaFsxXSxxPXRoaXMuaFsyXSx0ZT10aGlzLmhbM10saWU9dGhpcy5oWzRdO2Zv'@; put 'cihaPTA7WjxXLmxlbmd0aDtaKyspe3ZhciBzZT1+fihaLzIwKSxnZT1GKE4oWCw1KSxIKHNlLFEscSx0ZSksaWUsV1taXSxqW3NlXSk7aWU9dGUsdGU9cSxxPU4oUSwzMCksUT1YLFg9Z2V9dGhpcy5oWzBdPXcodGhpcy5oWzBdLFgpLHRoaXMuaFsxXT13KHRoaXMuaFsxXSxRKSx0aGlzLmhb'@; put 'Ml09dyh0aGlzLmhbMl0scSksdGhpcy5oWzNdPXcodGhpcy5oWzNdLHRlKSx0aGlzLmhbNF09dyh0aGlzLmhbNF0saWUpfSxQLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKFkpe3JldHVybiJoZXgiPT09WT9ELnRvSGV4MzIodGhpcy5oLCJiaWciKTpELnNwbGl0MzIodGhpcy5oLCJiaWci'@; put 'KX19LDc5OTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDY0MzYpLF89Yig5MzQ0KTtmdW5jdGlvbiBwKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgcCkpcmV0dXJuIG5ldyBwO18uY2FsbCh0aGlzKSx0aGlzLmg9WzMyMzgzNzEwMzIsOTE0MTUwNjYzLDgxMjcwMjk5OSw0MTQ0OTEy'@; put 'Njk3LDQyOTA3NzU4NTcsMTc1MDYwMzAyNSwxNjk0MDc2ODM5LDMyMDQwNzU0MjhdfUQuaW5oZXJpdHMocCxfKSxjZS5leHBvcnRzPXAscC5ibG9ja1NpemU9NTEyLHAub3V0U2l6ZT0yMjQscC5obWFjU3RyZW5ndGg9MTkyLHAucGFkTGVuZ3RoPTY0LHAucHJvdG90eXBlLl9kaWdlc3Q9ZnVu'@; put 'Y3Rpb24odyl7cmV0dXJuImhleCI9PT13P0QudG9IZXgzMih0aGlzLmguc2xpY2UoMCw3KSwiYmlnIik6RC5zcGxpdDMyKHRoaXMuaC5zbGljZSgwLDcpLCJiaWciKX19LDkzNDQ6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig2NDM2KSxfPWIoNTc3MikscD1iKDcwMzgpLE49Yig5'@; put 'NzQ2KSx3PUQuc3VtMzIsRj1ELnN1bTMyXzQsSD1ELnN1bTMyXzUsUj1wLmNoMzIsaj1wLm1hajMyLFA9cC5zMF8yNTYsTD1wLnMxXzI1NixZPXAuZzBfMjU2LEI9cC5nMV8yNTYsVz1fLkJsb2NrSGFzaCxaPVsxMTE2MzUyNDA4LDE4OTk0NDc0NDEsMzA0OTMyMzQ3MSwzOTIxMDA5NTczLDk2'@; put 'MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgyMDYsMjYxNDg4ODEwMywzMjQ4MjIyNTgwLDM4MzUzOTA0MDEsNDAyMjIyNDc3NCwyNjQzNDcwNzgsNjA0ODA3'@; put 'NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEsMzU4NDUyODcxMSwxMTM5MjY5OTMsMzM4MjQxODk1LDY2NjMwNzIwNSw3NzM1Mjk5MTIsMTI5NDc1NzM3Miwx'@; put 'Mzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTkyMSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2MDY1ODE3LDM2MDAzNTI4MDQsNDA5NDU3MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkw'@; put 'NjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdO2Z1bmN0aW9uIFgoKXtpZigh'@; put 'KHRoaXMgaW5zdGFuY2VvZiBYKSlyZXR1cm4gbmV3IFg7Vy5jYWxsKHRoaXMpLHRoaXMuaD1bMTc3OTAzMzcwMywzMTQ0MTM0Mjc3LDEwMTM5MDQyNDIsMjc3MzQ4MDc2MiwxMzU5ODkzMTE5LDI2MDA4MjI5MjQsNTI4NzM0NjM1LDE1NDE0NTkyMjVdLHRoaXMuaz1aLHRoaXMuVz1uZXcgQXJy'@; put 'YXkoNjQpfUQuaW5oZXJpdHMoWCxXKSxjZS5leHBvcnRzPVgsWC5ibG9ja1NpemU9NTEyLFgub3V0U2l6ZT0yNTYsWC5obWFjU3RyZW5ndGg9MTkyLFgucGFkTGVuZ3RoPTY0LFgucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24ocSx0ZSl7Zm9yKHZhciBpZT10aGlzLlcsc2U9MDtzZTwxNjtz'@; put 'ZSsrKWllW3NlXT1xW3RlK3NlXTtmb3IoO3NlPGllLmxlbmd0aDtzZSsrKWllW3NlXT1GKEIoaWVbc2UtMl0pLGllW3NlLTddLFkoaWVbc2UtMTVdKSxpZVtzZS0xNl0pO3ZhciBnZT10aGlzLmhbMF0sX2U9dGhpcy5oWzFdLFRlPXRoaXMuaFsyXSxTZT10aGlzLmhbM10semU9dGhpcy5oWzRd'@; put 'LHo9dGhpcy5oWzVdLGc9dGhpcy5oWzZdLHk9dGhpcy5oWzddO2ZvcihOKHRoaXMuay5sZW5ndGg9PT1pZS5sZW5ndGgpLHNlPTA7c2U8aWUubGVuZ3RoO3NlKyspe3ZhciB4PUgoeSxMKHplKSxSKHplLHosZyksdGhpcy5rW3NlXSxpZVtzZV0pLEM9dyhQKGdlKSxqKGdlLF9lLFRlKSk7eT1n'@; put 'LGc9eix6PXplLHplPXcoU2UseCksU2U9VGUsVGU9X2UsX2U9Z2UsZ2U9dyh4LEMpfXRoaXMuaFswXT13KHRoaXMuaFswXSxnZSksdGhpcy5oWzFdPXcodGhpcy5oWzFdLF9lKSx0aGlzLmhbMl09dyh0aGlzLmhbMl0sVGUpLHRoaXMuaFszXT13KHRoaXMuaFszXSxTZSksdGhpcy5oWzRdPXco'@; put 'dGhpcy5oWzRdLHplKSx0aGlzLmhbNV09dyh0aGlzLmhbNV0seiksdGhpcy5oWzZdPXcodGhpcy5oWzZdLGcpLHRoaXMuaFs3XT13KHRoaXMuaFs3XSx5KX0sWC5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbihxKXtyZXR1cm4iaGV4Ij09PXE/RC50b0hleDMyKHRoaXMuaCwiYmlnIik6RC5z'@; put 'cGxpdDMyKHRoaXMuaCwiYmlnIil9fSw3NzI6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig2NDM2KSxfPWIoNTkwMCk7ZnVuY3Rpb24gcCgpe2lmKCEodGhpcyBpbnN0YW5jZW9mIHApKXJldHVybiBuZXcgcDtfLmNhbGwodGhpcyksdGhpcy5oPVszNDE4MDcwMzY1LDMyMzgzNzEw'@; put 'MzIsMTY1NDI3MDI1MCw5MTQxNTA2NjMsMjQzODUyOTM3MCw4MTI3MDI5OTksMzU1NDYyMzYwLDQxNDQ5MTI2OTcsMTczMTQwNTQxNSw0MjkwNzc1ODU3LDIzOTQxODAyMzEsMTc1MDYwMzAyNSwzNjc1MDA4NTI1LDE2OTQwNzY4MzksMTIwMzA2MjgxMywzMjA0MDc1NDI4XX1ELmluaGVyaXRz'@; put 'KHAsXyksY2UuZXhwb3J0cz1wLHAuYmxvY2tTaXplPTEwMjQscC5vdXRTaXplPTM4NCxwLmhtYWNTdHJlbmd0aD0xOTIscC5wYWRMZW5ndGg9MTI4LHAucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24odyl7cmV0dXJuImhleCI9PT13P0QudG9IZXgzMih0aGlzLmguc2xpY2UoMCwxMiksImJp'@; put 'ZyIpOkQuc3BsaXQzMih0aGlzLmguc2xpY2UoMCwxMiksImJpZyIpfX0sNTkwMDooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDY0MzYpLF89Yig1NzcyKSxwPWIoOTc0NiksTj1ELnJvdHI2NF9oaSx3PUQucm90cjY0X2xvLEY9RC5zaHI2NF9oaSxIPUQuc2hyNjRfbG8sUj1ELnN1'@; put 'bTY0LGo9RC5zdW02NF9oaSxQPUQuc3VtNjRfbG8sTD1ELnN1bTY0XzRfaGksWT1ELnN1bTY0XzRfbG8sQj1ELnN1bTY0XzVfaGksVz1ELnN1bTY0XzVfbG8sWj1fLkJsb2NrSGFzaCxYPVsxMTE2MzUyNDA4LDM2MDk3Njc0NTgsMTg5OTQ0NzQ0MSw2MDI4OTE3MjUsMzA0OTMyMzQ3MSwzOTY0'@; put 'NDg0Mzk5LDM5MjEwMDk1NzMsMjE3MzI5NTU0OCw5NjE5ODcxNjMsNDA4MTYyODQ3MiwxNTA4OTcwOTkzLDMwNTM4MzQyNjUsMjQ1MzYzNTc0OCwyOTM3NjcxNTc5LDI4NzA3NjMyMjEsMzY2NDYwOTU2MCwzNjI0MzgxMDgwLDI3MzQ4ODMzOTQsMzEwNTk4NDAxLDExNjQ5OTY1NDIsNjA3MjI1'@; put 'Mjc4LDEzMjM2MTA3NjQsMTQyNjg4MTk4NywzNTkwMzA0OTk0LDE5MjUwNzgzODgsNDA2ODE4MjM4MywyMTYyMDc4MjA2LDk5MTMzNjExMywyNjE0ODg4MTAzLDYzMzgwMzMxNywzMjQ4MjIyNTgwLDM0Nzk3NzQ4NjgsMzgzNTM5MDQwMSwyNjY2NjEzNDU4LDQwMjIyMjQ3NzQsOTQ0NzExMTM5'@; put 'LDI2NDM0NzA3OCwyMzQxMjYyNzczLDYwNDgwNzYyOCwyMDA3ODAwOTMzLDc3MDI1NTk4MywxNDk1OTkwOTAxLDEyNDkxNTAxMjIsMTg1NjQzMTIzNSwxNTU1MDgxNjkyLDMxNzUyMTgxMzIsMTk5NjA2NDk4NiwyMTk4OTUwODM3LDI1NTQyMjA4ODIsMzk5OTcxOTMzOSwyODIxODM0MzQ5LDc2'@; put 'Njc4NDAxNiwyOTUyOTk2ODA4LDI1NjY1OTQ4NzksMzIxMDMxMzY3MSwzMjAzMzM3OTU2LDMzMzY1NzE4OTEsMTAzNDQ1NzAyNiwzNTg0NTI4NzExLDI0NjY5NDg5MDEsMTEzOTI2OTkzLDM3NTgzMjYzODMsMzM4MjQxODk1LDE2ODcxNzkzNiw2NjYzMDcyMDUsMTE4ODE3OTk2NCw3NzM1Mjk5'@; put 'MTIsMTU0NjA0NTczNCwxMjk0NzU3MzcyLDE1MjI4MDU0ODUsMTM5NjE4MjI5MSwyNjQzODMzODIzLDE2OTUxODM3MDAsMjM0MzUyNzM5MCwxOTg2NjYxMDUxLDEwMTQ0Nzc0ODAsMjE3NzAyNjM1MCwxMjA2NzU5MTQyLDI0NTY5NTYwMzcsMzQ0MDc3NjI3LDI3MzA0ODU5MjEsMTI5MDg2MzQ2'@; put 'MCwyODIwMzAyNDExLDMxNTg0NTQyNzMsMzI1OTczMDgwMCwzNTA1OTUyNjU3LDMzNDU3NjQ3NzEsMTA2MjE3MDA4LDM1MTYwNjU4MTcsMzYwNjAwODM0NCwzNjAwMzUyODA0LDE0MzI3MjU3NzYsNDA5NDU3MTkwOSwxNDY3MDMxNTk0LDI3NTQyMzM0NCw4NTExNjk3MjAsNDMwMjI3NzM0LDMx'@; put 'MDA4MjM3NTIsNTA2OTQ4NjE2LDEzNjMyNTgxOTUsNjU5MDYwNTU2LDM3NTA2ODU1OTMsODgzOTk3ODc3LDM3ODUwNTAyODAsOTU4MTM5NTcxLDMzMTgzMDc0MjcsMTMyMjgyMjIxOCwzODEyNzIzNDAzLDE1MzcwMDIwNjMsMjAwMzAzNDk5NSwxNzQ3ODczNzc5LDM2MDIwMzY4OTksMTk1NTU2'@; put 'MjIyMiwxNTc1OTkwMDEyLDIwMjQxMDQ4MTUsMTEyNTU5MjkyOCwyMjI3NzMwNDUyLDI3MTY5MDQzMDYsMjM2MTg1MjQyNCw0NDI3NzYwNDQsMjQyODQzNjQ3NCw1OTM2OTgzNDQsMjc1NjczNDE4NywzNzMzMTEwMjQ5LDMyMDQwMzE0NzksMjk5OTM1MTU3MywzMzI5MzI1Mjk4LDM4MTU5MjA0'@; put 'MjcsMzM5MTU2OTYxNCwzOTI4MzgzOTAwLDM1MTUyNjcyNzEsNTY2MjgwNzExLDM5NDAxODc2MDYsMzQ1NDA2OTUzNCw0MTE4NjMwMjcxLDQwMDAyMzk5OTIsMTE2NDE4NDc0LDE5MTQxMzg1NTQsMTc0MjkyNDIxLDI3MzEwNTUyNzAsMjg5MzgwMzU2LDMyMDM5OTMwMDYsNDYwMzkzMjY5LDMy'@; put 'MDYyMDMxNSw2ODU0NzE3MzMsNTg3NDk2ODM2LDg1MjE0Mjk3MSwxMDg2NzkyODUxLDEwMTcwMzYyOTgsMzY1NTQzMTAwLDExMjYwMDA1ODAsMjYxODI5NzY3NiwxMjg4MDMzNDcwLDM0MDk4NTUxNTgsMTUwMTUwNTk0OCw0MjM0NTA5ODY2LDE2MDcxNjc5MTUsOTg3MTY3NDY4LDE4MTY0MDIz'@; put 'MTYsMTI0NjE4OTU5MV07ZnVuY3Rpb24gUSgpe2lmKCEodGhpcyBpbnN0YW5jZW9mIFEpKXJldHVybiBuZXcgUTtaLmNhbGwodGhpcyksdGhpcy5oPVsxNzc5MDMzNzAzLDQwODkyMzU3MjAsMzE0NDEzNDI3NywyMjI3ODczNTk1LDEwMTM5MDQyNDIsNDI3MTE3NTcyMywyNzczNDgwNzYyLDE1'@; put 'OTU3NTAxMjksMTM1OTg5MzExOSwyOTE3NTY1MTM3LDI2MDA4MjI5MjQsNzI1NTExMTk5LDUyODczNDYzNSw0MjE1Mzg5NTQ3LDE1NDE0NTkyMjUsMzI3MDMzMjA5XSx0aGlzLms9WCx0aGlzLlc9bmV3IEFycmF5KDE2MCl9ZnVuY3Rpb24gcSh4LEMsVCxWLFUpe3ZhciBFPXgmVF5+eCZVO3Jl'@; put 'dHVybiBFPDAmJihFKz00Mjk0OTY3Mjk2KSxFfWZ1bmN0aW9uIHRlKHgsQyxULFYsVSxFKXt2YXIgbT1DJlZefkMmRTtyZXR1cm4gbTwwJiYobSs9NDI5NDk2NzI5NiksbX1mdW5jdGlvbiBpZSh4LEMsVCxWLFUpe3ZhciBFPXgmVF54JlVeVCZVO3JldHVybiBFPDAmJihFKz00Mjk0OTY3Mjk2'@; put 'KSxFfWZ1bmN0aW9uIHNlKHgsQyxULFYsVSxFKXt2YXIgbT1DJlZeQyZFXlYmRTtyZXR1cm4gbTwwJiYobSs9NDI5NDk2NzI5NiksbX1mdW5jdGlvbiBnZSh4LEMpe3ZhciBFPU4oeCxDLDI4KV5OKEMseCwyKV5OKEMseCw3KTtyZXR1cm4gRTwwJiYoRSs9NDI5NDk2NzI5NiksRX1mdW5jdGlv'@; put 'biBfZSh4LEMpe3ZhciBFPXcoeCxDLDI4KV53KEMseCwyKV53KEMseCw3KTtyZXR1cm4gRTwwJiYoRSs9NDI5NDk2NzI5NiksRX1mdW5jdGlvbiBUZSh4LEMpe3ZhciBFPU4oeCxDLDE0KV5OKHgsQywxOCleTihDLHgsOSk7cmV0dXJuIEU8MCYmKEUrPTQyOTQ5NjcyOTYpLEV9ZnVuY3Rpb24g'@; put 'U2UoeCxDKXt2YXIgRT13KHgsQywxNCledyh4LEMsMTgpXncoQyx4LDkpO3JldHVybiBFPDAmJihFKz00Mjk0OTY3Mjk2KSxFfWZ1bmN0aW9uIHplKHgsQyl7dmFyIEU9Tih4LEMsMSleTih4LEMsOCleRih4LEMsNyk7cmV0dXJuIEU8MCYmKEUrPTQyOTQ5NjcyOTYpLEV9ZnVuY3Rpb24geih4'@; put 'LEMpe3ZhciBFPXcoeCxDLDEpXncoeCxDLDgpXkgoeCxDLDcpO3JldHVybiBFPDAmJihFKz00Mjk0OTY3Mjk2KSxFfWZ1bmN0aW9uIGcoeCxDKXt2YXIgRT1OKHgsQywxOSleTihDLHgsMjkpXkYoeCxDLDYpO3JldHVybiBFPDAmJihFKz00Mjk0OTY3Mjk2KSxFfWZ1bmN0aW9uIHkoeCxDKXt2'@; put 'YXIgRT13KHgsQywxOSledyhDLHgsMjkpXkgoeCxDLDYpO3JldHVybiBFPDAmJihFKz00Mjk0OTY3Mjk2KSxFfUQuaW5oZXJpdHMoUSxaKSxjZS5leHBvcnRzPVEsUS5ibG9ja1NpemU9MTAyNCxRLm91dFNpemU9NTEyLFEuaG1hY1N0cmVuZ3RoPTE5MixRLnBhZExlbmd0aD0xMjgsUS5wcm90'@; put 'b3R5cGUuX3ByZXBhcmVCbG9jaz1mdW5jdGlvbihDLFQpe2Zvcih2YXIgVj10aGlzLlcsVT0wO1U8MzI7VSsrKVZbVV09Q1tUK1VdO2Zvcig7VTxWLmxlbmd0aDtVKz0yKXt2YXIgRT1nKFZbVS00XSxWW1UtM10pLG09eShWW1UtNF0sVltVLTNdKSxBPVZbVS0xNF0sYWU9VltVLTEzXSxuZT16'@; put 'ZShWW1UtMzBdLFZbVS0yOV0pLGxlPXooVltVLTMwXSxWW1UtMjldKSx3ZT1WW1UtMzJdLFplPVZbVS0zMV07VltVXT1MKEUsbSxBLGFlLG5lLGxlLHdlLFplKSxWW1UrMV09WShFLG0sQSxhZSxuZSxsZSx3ZSxaZSl9fSxRLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKEMsVCl7dGhpcy5f'@; put 'cHJlcGFyZUJsb2NrKEMsVCk7dmFyIFY9dGhpcy5XLFU9dGhpcy5oWzBdLEU9dGhpcy5oWzFdLG09dGhpcy5oWzJdLEE9dGhpcy5oWzNdLGFlPXRoaXMuaFs0XSxuZT10aGlzLmhbNV0sbGU9dGhpcy5oWzZdLHdlPXRoaXMuaFs3XSxaZT10aGlzLmhbOF0sUWU9dGhpcy5oWzldLGF0PXRoaXMu'@; put 'aFsxMF0seGU9dGhpcy5oWzExXSx2ZT10aGlzLmhbMTJdLHFlPXRoaXMuaFsxM10samU9dGhpcy5oWzE0XSxBZT10aGlzLmhbMTVdO3AodGhpcy5rLmxlbmd0aD09PVYubGVuZ3RoKTtmb3IodmFyIEZlPTA7RmU8Vi5sZW5ndGg7RmUrPTIpe3ZhciBSZT1qZSxJZT1BZSxIZT1UZShaZSxRZSks'@; put 'RGU9U2UoWmUsUWUpLGtlPXEoWmUsMCxhdCwwLHZlKSxfdD10ZSgwLFFlLDAseGUsMCxxZSksbnQ9dGhpcy5rW0ZlXSxKZT10aGlzLmtbRmUrMV0sb249VltGZV0seXQ9VltGZSsxXSxNdD1CKFJlLEllLEhlLERlLGtlLF90LG50LEplLG9uLHl0KSxJdD1XKFJlLEllLEhlLERlLGtlLF90LG50'@; put 'LEplLG9uLHl0KTtSZT1nZShVLEUpLEllPV9lKFUsRSksSGU9aWUoVSwwLG0sMCxhZSksRGU9c2UoMCxFLDAsQSwwLG5lKTt2YXIgcnQ9aihSZSxJZSxIZSxEZSksS2U9UChSZSxJZSxIZSxEZSk7amU9dmUsQWU9cWUsdmU9YXQscWU9eGUsYXQ9WmUseGU9UWUsWmU9aihsZSx3ZSxNdCxJdCks'@; put 'UWU9UCh3ZSx3ZSxNdCxJdCksbGU9YWUsd2U9bmUsYWU9bSxuZT1BLG09VSxBPUUsVT1qKE10LEl0LHJ0LEtlKSxFPVAoTXQsSXQscnQsS2UpfVIodGhpcy5oLDAsVSxFKSxSKHRoaXMuaCwyLG0sQSksUih0aGlzLmgsNCxhZSxuZSksUih0aGlzLmgsNixsZSx3ZSksUih0aGlzLmgsOCxaZSxR'@; put 'ZSksUih0aGlzLmgsMTAsYXQseGUpLFIodGhpcy5oLDEyLHZlLHFlKSxSKHRoaXMuaCwxNCxqZSxBZSl9LFEucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24oQyl7cmV0dXJuImhleCI9PT1DP0QudG9IZXgzMih0aGlzLmgsImJpZyIpOkQuc3BsaXQzMih0aGlzLmgsImJpZyIpfX0sNzAzODoo'@; put 'Y2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgXz1iKDY0MzYpLnJvdHIzMjtmdW5jdGlvbiBOKEwsWSxCKXtyZXR1cm4gTCZZXn5MJkJ9ZnVuY3Rpb24gdyhMLFksQil7cmV0dXJuIEwmWV5MJkJeWSZCfWZ1bmN0aW9uIEYoTCxZLEIpe3JldHVybiBMXlleQn1KLmZ0XzE9ZnVuY3Rpb24gcChM'@; put 'LFksQixXKXtyZXR1cm4gMD09PUw/TihZLEIsVyk6MT09PUx8fDM9PT1MP0YoWSxCLFcpOjI9PT1MP3coWSxCLFcpOnZvaWQgMH0sSi5jaDMyPU4sSi5tYWozMj13LEoucDMyPUYsSi5zMF8yNTY9ZnVuY3Rpb24gSChMKXtyZXR1cm4gXyhMLDIpXl8oTCwxMyleXyhMLDIyKX0sSi5zMV8yNTY9'@; put 'ZnVuY3Rpb24gUihMKXtyZXR1cm4gXyhMLDYpXl8oTCwxMSleXyhMLDI1KX0sSi5nMF8yNTY9ZnVuY3Rpb24gaihMKXtyZXR1cm4gXyhMLDcpXl8oTCwxOCleTD4+PjN9LEouZzFfMjU2PWZ1bmN0aW9uIFAoTCl7cmV0dXJuIF8oTCwxNyleXyhMLDE5KV5MPj4+MTB9fSw2NDM2OihjZSxKLGIp'@; put 'PT57InVzZSBzdHJpY3QiO3ZhciBEPWIoOTc0NiksXz1iKDU3MTcpO2Z1bmN0aW9uIHAoeSx4KXtyZXR1cm4hKDU1Mjk2IT0oNjQ1MTImeS5jaGFyQ29kZUF0KHgpKXx8eDwwfHx4KzE+PXkubGVuZ3RoKSYmNTYzMjA9PSg2NDUxMiZ5LmNoYXJDb2RlQXQoeCsxKSl9ZnVuY3Rpb24gRih5KXty'@; put 'ZXR1cm4oeT4+PjI0fHk+Pj44JjY1MjgwfHk8PDgmMTY3MTE2ODB8KDI1NSZ5KTw8MjQpPj4+MH1mdW5jdGlvbiBSKHkpe3JldHVybiAxPT09eS5sZW5ndGg/IjAiK3k6eX1mdW5jdGlvbiBqKHkpe3JldHVybiA3PT09eS5sZW5ndGg/IjAiK3k6Nj09PXkubGVuZ3RoPyIwMCIreTo1PT09eS5s'@; put 'ZW5ndGg/IjAwMCIreTo0PT09eS5sZW5ndGg/IjAwMDAiK3k6Mz09PXkubGVuZ3RoPyIwMDAwMCIreToyPT09eS5sZW5ndGg/IjAwMDAwMCIreToxPT09eS5sZW5ndGg/IjAwMDAwMDAiK3k6eX1KLmluaGVyaXRzPV8sSi50b0FycmF5PWZ1bmN0aW9uIE4oeSx4KXtpZihBcnJheS5pc0FycmF5'@; put 'KHkpKXJldHVybiB5LnNsaWNlKCk7aWYoIXkpcmV0dXJuW107dmFyIEM9W107aWYoInN0cmluZyI9PXR5cGVvZiB5KWlmKHgpe2lmKCJoZXgiPT09eClmb3IoKHk9eS5yZXBsYWNlKC9bXmEtejAtOV0rL2dpLCIiKSkubGVuZ3RoJTIhPTAmJih5PSIwIit5KSxWPTA7Vjx5Lmxlbmd0aDtWKz0y'@; put 'KUMucHVzaChwYXJzZUludCh5W1ZdK3lbVisxXSwxNikpfWVsc2UgZm9yKHZhciBUPTAsVj0wO1Y8eS5sZW5ndGg7VisrKXt2YXIgVT15LmNoYXJDb2RlQXQoVik7VTwxMjg/Q1tUKytdPVU6VTwyMDQ4PyhDW1QrK109VT4+NnwxOTIsQ1tUKytdPTYzJlV8MTI4KTpwKHksVik/KFU9NjU1MzYr'@; put 'KCgxMDIzJlUpPDwxMCkrKDEwMjMmeS5jaGFyQ29kZUF0KCsrVikpLENbVCsrXT1VPj4xOHwyNDAsQ1tUKytdPVU+PjEyJjYzfDEyOCxDW1QrK109VT4+NiY2M3wxMjgsQ1tUKytdPTYzJlV8MTI4KTooQ1tUKytdPVU+PjEyfDIyNCxDW1QrK109VT4+NiY2M3wxMjgsQ1tUKytdPTYzJlV8MTI4'@; put 'KX1lbHNlIGZvcihWPTA7Vjx5Lmxlbmd0aDtWKyspQ1tWXT0wfHlbVl07cmV0dXJuIEN9LEoudG9IZXg9ZnVuY3Rpb24gdyh5KXtmb3IodmFyIHg9IiIsQz0wO0M8eS5sZW5ndGg7QysrKXgrPVIoeVtDXS50b1N0cmluZygxNikpO3JldHVybiB4fSxKLmh0b25sPUYsSi50b0hleDMyPWZ1bmN0'@; put 'aW9uIEgoeSx4KXtmb3IodmFyIEM9IiIsVD0wO1Q8eS5sZW5ndGg7VCsrKXt2YXIgVj15W1RdOyJsaXR0bGUiPT09eCYmKFY9RihWKSksQys9aihWLnRvU3RyaW5nKDE2KSl9cmV0dXJuIEN9LEouemVybzI9UixKLnplcm84PWosSi5qb2luMzI9ZnVuY3Rpb24gUCh5LHgsQyxUKXt2YXIgVj1D'@; put 'LXg7RChWJTQ9PTApO2Zvcih2YXIgVT1uZXcgQXJyYXkoVi80KSxFPTAsbT14O0U8VS5sZW5ndGg7RSsrLG0rPTQpVVtFXT0oImJpZyI9PT1UP3lbbV08PDI0fHlbbSsxXTw8MTZ8eVttKzJdPDw4fHlbbSszXTp5W20rM108PDI0fHlbbSsyXTw8MTZ8eVttKzFdPDw4fHlbbV0pPj4+MDtyZXR1'@; put 'cm4gVX0sSi5zcGxpdDMyPWZ1bmN0aW9uIEwoeSx4KXtmb3IodmFyIEM9bmV3IEFycmF5KDQqeS5sZW5ndGgpLFQ9MCxWPTA7VDx5Lmxlbmd0aDtUKyssVis9NCl7dmFyIFU9eVtUXTsiYmlnIj09PXg/KENbVl09VT4+PjI0LENbVisxXT1VPj4+MTYmMjU1LENbVisyXT1VPj4+OCYyNTUsQ1tW'@; put 'KzNdPTI1NSZVKTooQ1tWKzNdPVU+Pj4yNCxDW1YrMl09VT4+PjE2JjI1NSxDW1YrMV09VT4+PjgmMjU1LENbVl09MjU1JlUpfXJldHVybiBDfSxKLnJvdHIzMj1mdW5jdGlvbiBZKHkseCl7cmV0dXJuIHk+Pj54fHk8PDMyLXh9LEoucm90bDMyPWZ1bmN0aW9uIEIoeSx4KXtyZXR1cm4geTw8'@; put 'eHx5Pj4+MzIteH0sSi5zdW0zMj1mdW5jdGlvbiBXKHkseCl7cmV0dXJuIHkreD4+PjB9LEouc3VtMzJfMz1mdW5jdGlvbiBaKHkseCxDKXtyZXR1cm4geSt4K0M+Pj4wfSxKLnN1bTMyXzQ9ZnVuY3Rpb24gWCh5LHgsQyxUKXtyZXR1cm4geSt4K0MrVD4+PjB9LEouc3VtMzJfNT1mdW5jdGlv'@; put 'biBRKHkseCxDLFQsVil7cmV0dXJuIHkreCtDK1QrVj4+PjB9LEouc3VtNjQ9ZnVuY3Rpb24gcSh5LHgsQyxUKXt2YXIgRT1UK3lbeCsxXT4+PjA7eVt4XT0oRTxUPzE6MCkrQyt5W3hdPj4+MCx5W3grMV09RX0sSi5zdW02NF9oaT1mdW5jdGlvbiB0ZSh5LHgsQyxUKXtyZXR1cm4oeCtUPj4+'@; put 'MDx4PzE6MCkreStDPj4+MH0sSi5zdW02NF9sbz1mdW5jdGlvbiBpZSh5LHgsQyxUKXtyZXR1cm4geCtUPj4+MH0sSi5zdW02NF80X2hpPWZ1bmN0aW9uIHNlKHkseCxDLFQsVixVLEUsbSl7dmFyIEE9MCxhZT14O3JldHVybiBBKz0oYWU9YWUrVD4+PjApPHg/MTowLEErPShhZT1hZStVPj4+'@; put 'MCk8VT8xOjAseStDK1YrRSsoQSs9KGFlPWFlK20+Pj4wKTxtPzE6MCk+Pj4wfSxKLnN1bTY0XzRfbG89ZnVuY3Rpb24gZ2UoeSx4LEMsVCxWLFUsRSxtKXtyZXR1cm4geCtUK1UrbT4+PjB9LEouc3VtNjRfNV9oaT1mdW5jdGlvbiBfZSh5LHgsQyxULFYsVSxFLG0sQSxhZSl7dmFyIG5lPTAs'@; put 'bGU9eDtyZXR1cm4gbmUrPShsZT1sZStUPj4+MCk8eD8xOjAsbmUrPShsZT1sZStVPj4+MCk8VT8xOjAsbmUrPShsZT1sZSttPj4+MCk8bT8xOjAseStDK1YrRStBKyhuZSs9KGxlPWxlK2FlPj4+MCk8YWU/MTowKT4+PjB9LEouc3VtNjRfNV9sbz1mdW5jdGlvbiBUZSh5LHgsQyxULFYsVSxF'@; put 'LG0sQSxhZSl7cmV0dXJuIHgrVCtVK20rYWU+Pj4wfSxKLnJvdHI2NF9oaT1mdW5jdGlvbiBTZSh5LHgsQyl7cmV0dXJuKHg8PDMyLUN8eT4+PkMpPj4+MH0sSi5yb3RyNjRfbG89ZnVuY3Rpb24gemUoeSx4LEMpe3JldHVybih5PDwzMi1DfHg+Pj5DKT4+PjB9LEouc2hyNjRfaGk9ZnVuY3Rp'@; put 'b24geih5LHgsQyl7cmV0dXJuIHk+Pj5DfSxKLnNocjY0X2xvPWZ1bmN0aW9uIGcoeSx4LEMpe3JldHVybih5PDwzMi1DfHg+Pj5DKT4+PjB9fSw4ODI0OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPUZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLF89T2JqZWN0LnByb3RvdHlwZS5oYXNP'@; put 'd25Qcm9wZXJ0eSxwPWIoODYxMik7Y2UuZXhwb3J0cz1wLmNhbGwoRCxfKX0sMjE1NjooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDM3MTUpLF89Yig0NTA0KSxwPWIoOTc0Nik7ZnVuY3Rpb24gTih3KXtpZighKHRoaXMgaW5zdGFuY2VvZiBOKSlyZXR1cm4gbmV3IE4odyk7dGhp'@; put 'cy5oYXNoPXcuaGFzaCx0aGlzLnByZWRSZXNpc3Q9ISF3LnByZWRSZXNpc3QsdGhpcy5vdXRMZW49dGhpcy5oYXNoLm91dFNpemUsdGhpcy5taW5FbnRyb3B5PXcubWluRW50cm9weXx8dGhpcy5oYXNoLmhtYWNTdHJlbmd0aCx0aGlzLl9yZXNlZWQ9bnVsbCx0aGlzLnJlc2VlZEludGVydmFs'@; put 'PW51bGwsdGhpcy5LPW51bGwsdGhpcy5WPW51bGw7dmFyIEY9Xy50b0FycmF5KHcuZW50cm9weSx3LmVudHJvcHlFbmN8fCJoZXgiKSxIPV8udG9BcnJheSh3Lm5vbmNlLHcubm9uY2VFbmN8fCJoZXgiKSxSPV8udG9BcnJheSh3LnBlcnMsdy5wZXJzRW5jfHwiaGV4Iik7cChGLmxlbmd0aD49'@; put 'dGhpcy5taW5FbnRyb3B5LzgsIk5vdCBlbm91Z2ggZW50cm9weS4gTWluaW11bSBpczogIit0aGlzLm1pbkVudHJvcHkrIiBiaXRzIiksdGhpcy5faW5pdChGLEgsUil9Y2UuZXhwb3J0cz1OLE4ucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKEYsSCxSKXt2YXIgaj1GLmNvbmNhdChIKS5jb25j'@; put 'YXQoUik7dGhpcy5LPW5ldyBBcnJheSh0aGlzLm91dExlbi84KSx0aGlzLlY9bmV3IEFycmF5KHRoaXMub3V0TGVuLzgpO2Zvcih2YXIgUD0wO1A8dGhpcy5WLmxlbmd0aDtQKyspdGhpcy5LW1BdPTAsdGhpcy5WW1BdPTE7dGhpcy5fdXBkYXRlKGopLHRoaXMuX3Jlc2VlZD0xLHRoaXMucmVz'@; put 'ZWVkSW50ZXJ2YWw9MjgxNDc0OTc2NzEwNjU2fSxOLnByb3RvdHlwZS5faG1hYz1mdW5jdGlvbigpe3JldHVybiBuZXcgRC5obWFjKHRoaXMuaGFzaCx0aGlzLkspfSxOLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKEYpe3ZhciBIPXRoaXMuX2htYWMoKS51cGRhdGUodGhpcy5WKS51cGRh'@; put 'dGUoWzBdKTtGJiYoSD1ILnVwZGF0ZShGKSksdGhpcy5LPUguZGlnZXN0KCksdGhpcy5WPXRoaXMuX2htYWMoKS51cGRhdGUodGhpcy5WKS5kaWdlc3QoKSxGJiYodGhpcy5LPXRoaXMuX2htYWMoKS51cGRhdGUodGhpcy5WKS51cGRhdGUoWzFdKS51cGRhdGUoRikuZGlnZXN0KCksdGhpcy5W'@; put 'PXRoaXMuX2htYWMoKS51cGRhdGUodGhpcy5WKS5kaWdlc3QoKSl9LE4ucHJvdG90eXBlLnJlc2VlZD1mdW5jdGlvbihGLEgsUixqKXsic3RyaW5nIiE9dHlwZW9mIEgmJihqPVIsUj1ILEg9bnVsbCksRj1fLnRvQXJyYXkoRixIKSxSPV8udG9BcnJheShSLGopLHAoRi5sZW5ndGg+PXRoaXMu'@; put 'bWluRW50cm9weS84LCJOb3QgZW5vdWdoIGVudHJvcHkuIE1pbmltdW0gaXM6ICIrdGhpcy5taW5FbnRyb3B5KyIgYml0cyIpLHRoaXMuX3VwZGF0ZShGLmNvbmNhdChSfHxbXSkpLHRoaXMuX3Jlc2VlZD0xfSxOLnByb3RvdHlwZS5nZW5lcmF0ZT1mdW5jdGlvbihGLEgsUixqKXtpZih0aGlz'@; put 'Ll9yZXNlZWQ+dGhpcy5yZXNlZWRJbnRlcnZhbCl0aHJvdyBuZXcgRXJyb3IoIlJlc2VlZCBpcyByZXF1aXJlZCIpOyJzdHJpbmciIT10eXBlb2YgSCYmKGo9UixSPUgsSD1udWxsKSxSJiYoUj1fLnRvQXJyYXkoUixqfHwiaGV4IiksdGhpcy5fdXBkYXRlKFIpKTtmb3IodmFyIFA9W107UC5s'@; put 'ZW5ndGg8RjspdGhpcy5WPXRoaXMuX2htYWMoKS51cGRhdGUodGhpcy5WKS5kaWdlc3QoKSxQPVAuY29uY2F0KHRoaXMuVik7dmFyIEw9UC5zbGljZSgwLEYpO3JldHVybiB0aGlzLl91cGRhdGUoUiksdGhpcy5fcmVzZWVkKyssXy5lbmNvZGUoTCxIKX19LDY0NTooY2UsSik9PntKLnJlYWQ9'@; put 'ZnVuY3Rpb24oYixELF8scCxOKXt2YXIgdyxGLEg9OCpOLXAtMSxSPSgxPDxIKS0xLGo9Uj4+MSxQPS03LEw9Xz9OLTE6MCxZPV8/LTE6MSxCPWJbRCtMXTtmb3IoTCs9WSx3PUImKDE8PC1QKS0xLEI+Pj0tUCxQKz1IO1A+MDt3PTI1Nip3K2JbRCtMXSxMKz1ZLFAtPTgpO2ZvcihGPXcmKDE8'@; put 'PC1QKS0xLHc+Pj0tUCxQKz1wO1A+MDtGPTI1NipGK2JbRCtMXSxMKz1ZLFAtPTgpO2lmKDA9PT13KXc9MS1qO2Vsc2V7aWYodz09PVIpcmV0dXJuIEY/TmFOOjEvMCooQj8tMToxKTtGKz1NYXRoLnBvdygyLHApLHctPWp9cmV0dXJuKEI/LTE6MSkqRipNYXRoLnBvdygyLHctcCl9LEoud3Jp'@; put 'dGU9ZnVuY3Rpb24oYixELF8scCxOLHcpe3ZhciBGLEgsUixqPTgqdy1OLTEsUD0oMTw8aiktMSxMPVA+PjEsWT0yMz09PU4/TWF0aC5wb3coMiwtMjQpLU1hdGgucG93KDIsLTc3KTowLEI9cD8wOnctMSxXPXA/MTotMSxaPUQ8MHx8MD09PUQmJjEvRDwwPzE6MDtmb3IoRD1NYXRoLmFicyhE'@; put 'KSxpc05hTihEKXx8RD09PTEvMD8oSD1pc05hTihEKT8xOjAsRj1QKTooRj1NYXRoLmZsb29yKE1hdGgubG9nKEQpL01hdGguTE4yKSxEKihSPU1hdGgucG93KDIsLUYpKTwxJiYoRi0tLFIqPTIpLChEKz1GK0w+PTE/WS9SOlkqTWF0aC5wb3coMiwxLUwpKSpSPj0yJiYoRisrLFIvPTIpLEYr'@; put 'TD49UD8oSD0wLEY9UCk6RitMPj0xPyhIPShEKlItMSkqTWF0aC5wb3coMixOKSxGKz1MKTooSD1EKk1hdGgucG93KDIsTC0xKSpNYXRoLnBvdygyLE4pLEY9MCkpO04+PTg7YltfK0JdPTI1NSZILEIrPVcsSC89MjU2LE4tPTgpO2ZvcihGPUY8PE58SCxqKz1OO2o+MDtiW18rQl09MjU1JkYs'@; put 'Qis9VyxGLz0yNTYsai09OCk7YltfK0ItV118PTEyOCpafX0sNTcxNzpjZT0+e2NlLmV4cG9ydHM9ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oYixEKXtEJiYoYi5zdXBlcl89RCxiLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEQucHJvdG90eXBlLHtjb25zdHJ1'@; put 'Y3Rvcjp7dmFsdWU6YixlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSl9OmZ1bmN0aW9uKGIsRCl7aWYoRCl7Yi5zdXBlcl89RDt2YXIgXz1mdW5jdGlvbigpe307Xy5wcm90b3R5cGU9RC5wcm90b3R5cGUsYi5wcm90b3R5cGU9bmV3IF8sYi5wcm90b3R5cGUu'@; put 'Y29uc3RydWN0b3I9Yn19fSwyNTg0OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNjQxMCkoKSxwPWIoNzM3OSkoIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmciKSxOPWZ1bmN0aW9uKFIpe3JldHVybiEoRCYmUiYmIm9iamVjdCI9PXR5cGVvZiBSJiZTeW1ib2wudG9TdHJpbmdU'@; put 'YWcgaW4gUikmJiJbb2JqZWN0IEFyZ3VtZW50c10iPT09cChSKX0sdz1mdW5jdGlvbihSKXtyZXR1cm4hIU4oUil8fG51bGwhPT1SJiYib2JqZWN0Ij09dHlwZW9mIFImJiJsZW5ndGgiaW4gUiYmIm51bWJlciI9PXR5cGVvZiBSLmxlbmd0aCYmUi5sZW5ndGg+PTAmJiJbb2JqZWN0IEFycmF5'@; put 'XSIhPT1wKFIpJiYiY2FsbGVlImluIFImJiJbb2JqZWN0IEZ1bmN0aW9uXSI9PT1wKFIuY2FsbGVlKX0sRj1mdW5jdGlvbigpe3JldHVybiBOKGFyZ3VtZW50cyl9KCk7Ti5pc0xlZ2FjeUFyZ3VtZW50cz13LGNlLmV4cG9ydHM9Rj9OOnd9LDUzMjA6Y2U9PnsidXNlIHN0cmljdCI7dmFyIEQs'@; put 'XyxKPUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZyxiPSJvYmplY3QiPT10eXBlb2YgUmVmbGVjdCYmbnVsbCE9PVJlZmxlY3QmJlJlZmxlY3QuYXBwbHk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGImJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydHkpdHJ5e0Q9T2Jq'@; put 'ZWN0LmRlZmluZVByb3BlcnR5KHt9LCJsZW5ndGgiLHtnZXQ6ZnVuY3Rpb24oKXt0aHJvdyBffX0pLF89e30sYihmdW5jdGlvbigpe3Rocm93IDQyfSxudWxsLEQpfWNhdGNoKFEpe1EhPT1fJiYoYj1udWxsKX1lbHNlIGI9bnVsbDt2YXIgcD0vXlxzKmNsYXNzXGIvLE49ZnVuY3Rpb24ocSl7'@; put 'dHJ5e3ZhciB0ZT1KLmNhbGwocSk7cmV0dXJuIHAudGVzdCh0ZSl9Y2F0Y2h7cmV0dXJuITF9fSx3PWZ1bmN0aW9uKHEpe3RyeXtyZXR1cm4hTihxKSYmKEouY2FsbChxKSwhMCl9Y2F0Y2h7cmV0dXJuITF9fSxGPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsQj0iZnVuY3Rpb24iPT10eXBl'@; put 'b2YgU3ltYm9sJiYhIVN5bWJvbC50b1N0cmluZ1RhZyxXPSEoMCBpblssXSksWj1mdW5jdGlvbigpe3JldHVybiExfTtpZigib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50KXt2YXIgWD1kb2N1bWVudC5hbGw7Ri5jYWxsKFgpPT09Ri5jYWxsKGRvY3VtZW50LmFsbCkmJihaPWZ1bmN0aW9uKHEp'@; put 'e2lmKChXfHwhcSkmJih0eXBlb2YgcT4idSJ8fCJvYmplY3QiPT10eXBlb2YgcSkpdHJ5e3ZhciB0ZT1GLmNhbGwocSk7cmV0dXJuKCJbb2JqZWN0IEhUTUxBbGxDb2xsZWN0aW9uXSI9PT10ZXx8IltvYmplY3QgSFRNTCBkb2N1bWVudC5hbGwgY2xhc3NdIj09PXRlfHwiW29iamVjdCBIVE1M'@; put 'Q29sbGVjdGlvbl0iPT09dGV8fCJbb2JqZWN0IE9iamVjdF0iPT09dGUpJiZudWxsPT1xKCIiKX1jYXRjaHt9cmV0dXJuITF9KX1jZS5leHBvcnRzPWI/ZnVuY3Rpb24ocSl7aWYoWihxKSlyZXR1cm4hMDtpZighcXx8ImZ1bmN0aW9uIiE9dHlwZW9mIHEmJiJvYmplY3QiIT10eXBlb2YgcSly'@; put 'ZXR1cm4hMTt0cnl7YihxLG51bGwsRCl9Y2F0Y2godGUpe2lmKHRlIT09XylyZXR1cm4hMX1yZXR1cm4hTihxKSYmdyhxKX06ZnVuY3Rpb24ocSl7aWYoWihxKSlyZXR1cm4hMDtpZighcXx8ImZ1bmN0aW9uIiE9dHlwZW9mIHEmJiJvYmplY3QiIT10eXBlb2YgcSlyZXR1cm4hMTtpZihCKXJl'@; put 'dHVybiB3KHEpO2lmKE4ocSkpcmV0dXJuITE7dmFyIHRlPUYuY2FsbChxKTtyZXR1cm4hKCJbb2JqZWN0IEZ1bmN0aW9uXSIhPT10ZSYmIltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIiE9PXRlJiYhL15cW29iamVjdCBIVE1MLy50ZXN0KHRlKSkmJncocSl9fSw4NjYyOihjZSxKLGIpPT57'@; put 'InVzZSBzdHJpY3QiO3ZhciBqLEQ9Yig3Mzc5KSxwPWIoOTI0NikoL15ccyooPzpmdW5jdGlvbik/XCovKSxOPWIoNjQxMCkoKSx3PWIoMTYxOCksRj1EKCJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nIiksSD1EKCJGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmciKTtjZS5leHBvcnRzPWZ1'@; put 'bmN0aW9uKEwpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBMKXJldHVybiExO2lmKHAoSChMKSkpcmV0dXJuITA7aWYoIU4pcmV0dXJuIltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIj09PUYoTCk7aWYoIXcpcmV0dXJuITE7aWYodHlwZW9mIGo+InUiKXt2YXIgQj1mdW5jdGlvbigpe2lmKCFO'@; put 'KXJldHVybiExO3RyeXtyZXR1cm4gRnVuY3Rpb24oInJldHVybiBmdW5jdGlvbiooKSB7fSIpKCl9Y2F0Y2h7fX0oKTtqPSEhQiYmdyhCKX1yZXR1cm4gdyhMKT09PWp9fSw4NjExOmNlPT57InVzZSBzdHJpY3QiO2NlLmV4cG9ydHM9ZnVuY3Rpb24oYil7cmV0dXJuIGIhPWJ9fSwzNjA6KGNl'@; put 'LEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig1NTU5KSxfPWIoNDI4OSkscD1iKDg2MTEpLE49Yig5NDE1KSx3PWIoMzE5NCksRj1EKE4oKSxOdW1iZXIpO18oRix7Z2V0UG9seWZpbGw6TixpbXBsZW1lbnRhdGlvbjpwLHNoaW06d30pLGNlLmV4cG9ydHM9Rn0sOTQxNTooY2UsSixiKT0+'@; put 'eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDg2MTEpO2NlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4gTnVtYmVyLmlzTmFOJiZOdW1iZXIuaXNOYU4oTmFOKSYmIU51bWJlci5pc05hTigiYSIpP051bWJlci5pc05hTjpEfX0sMzE5NDooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDQy'@; put 'ODkpLF89Yig5NDE1KTtjZS5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIE49XygpO3JldHVybiBEKE51bWJlcix7aXNOYU46Tn0se2lzTmFOOmZ1bmN0aW9uKCl7cmV0dXJuIE51bWJlci5pc05hTiE9PU59fSksTn19LDg0MjA6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIHcsRD1iKDczNzkp'@; put 'LF89Yig2NDEwKSgpLHA9Yig4ODI0KSxOPWIoNzI5Nik7aWYoXyl7dmFyIEY9RCgiUmVnRXhwLnByb3RvdHlwZS5leGVjIiksSD17fSxSPWZ1bmN0aW9uKCl7dGhyb3cgSH0saj17dG9TdHJpbmc6Uix2YWx1ZU9mOlJ9OyJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLnRvUHJpbWl0aXZlJiYoaltT'@; put 'eW1ib2wudG9QcmltaXRpdmVdPVIpLHc9ZnVuY3Rpb24oQil7aWYoIUJ8fCJvYmplY3QiIT10eXBlb2YgQilyZXR1cm4hMTt2YXIgVz1OKEIsImxhc3RJbmRleCIpO2lmKCFXfHwhcChXLCJ2YWx1ZSIpKXJldHVybiExO3RyeXtGKEIsail9Y2F0Y2goWCl7cmV0dXJuIFg9PT1IfX19ZWxzZXt2'@; put 'YXIgUD1EKCJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nIik7dz1mdW5jdGlvbihCKXtyZXR1cm4hKCFCfHwib2JqZWN0IiE9dHlwZW9mIEImJiJmdW5jdGlvbiIhPXR5cGVvZiBCKSYmIltvYmplY3QgUmVnRXhwXSI9PT1QKEIpfX1jZS5leHBvcnRzPXd9LDU2OTI6KGNlLEosYik9PnsidXNl'@; put 'IHN0cmljdCI7dmFyIEQ9Yig2NDMwKTtjZS5leHBvcnRzPWZ1bmN0aW9uKHApe3JldHVybiEhRChwKX19LDU4MjY6Y2U9Pnt2YXIgSj17fS50b1N0cmluZztjZS5leHBvcnRzPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKGIpe3JldHVybiJbb2JqZWN0IEFycmF5XSI9PUouY2FsbChiKX19LDY4'@; put 'MTM6KGNlLEosYik9PntsZXQgRDt0cnl7RD1iKDc3KX1jYXRjaHtEPWIoNDEyOSl9Y29uc3QgXz1iKDg5ODEpLHtzdHJpbmdpZnk6cCxzdHJpcEJvbTpOfT1iKDY3ODApO2Z1bmN0aW9uIEYoKXtyZXR1cm4oRj1fYXN5bmNUb0dlbmVyYXRvcihmdW5jdGlvbiooVyxaPXt9KXsic3RyaW5nIj09'@; put 'dHlwZW9mIFomJihaPXtlbmNvZGluZzpafSk7Y29uc3QgWD1aLmZzfHxELFE9ISgidGhyb3dzImluIFopfHxaLnRocm93cztsZXQgdGUscT15aWVsZCBfLmZyb21DYWxsYmFjayhYLnJlYWRGaWxlKShXLFopO3E9TihxKTt0cnl7dGU9SlNPTi5wYXJzZShxLFo/Wi5yZXZpdmVyOm51bGwpfWNh'@; put 'dGNoKGllKXtpZihRKXRocm93IGllLm1lc3NhZ2U9YCR7V306ICR7aWUubWVzc2FnZX1gLGllO3JldHVybiBudWxsfXJldHVybiB0ZX0pKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9Y29uc3QgSD1fLmZyb21Qcm9taXNlKGZ1bmN0aW9uIHcoVyl7cmV0dXJuIEYuYXBwbHkodGhpcyxhcmd1bWVu'@; put 'dHMpfSk7ZnVuY3Rpb24gUCgpe3JldHVybihQPV9hc3luY1RvR2VuZXJhdG9yKGZ1bmN0aW9uKihXLFosWD17fSl7Y29uc3QgUT1YLmZzfHxELHE9cChaLFgpO3lpZWxkIF8uZnJvbUNhbGxiYWNrKFEud3JpdGVGaWxlKShXLHEsWCl9KSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWNvbnN0IEw9'@; put 'Xy5mcm9tUHJvbWlzZShmdW5jdGlvbiBqKFcsWil7cmV0dXJuIFAuYXBwbHkodGhpcyxhcmd1bWVudHMpfSk7Y2UuZXhwb3J0cz17cmVhZEZpbGU6SCxyZWFkRmlsZVN5bmM6ZnVuY3Rpb24gUihXLFo9e30peyJzdHJpbmciPT10eXBlb2YgWiYmKFo9e2VuY29kaW5nOlp9KTtjb25zdCBYPVou'@; put 'ZnN8fEQsUT0hKCJ0aHJvd3MiaW4gWil8fFoudGhyb3dzO3RyeXtsZXQgcT1YLnJlYWRGaWxlU3luYyhXLFopO3JldHVybiBxPU4ocSksSlNPTi5wYXJzZShxLFoucmV2aXZlcil9Y2F0Y2gocSl7aWYoUSl0aHJvdyBxLm1lc3NhZ2U9YCR7V306ICR7cS5tZXNzYWdlfWAscTtyZXR1cm4gbnVs'@; put 'bH19LHdyaXRlRmlsZTpMLHdyaXRlRmlsZVN5bmM6ZnVuY3Rpb24gWShXLFosWD17fSl7Y29uc3QgUT1YLmZzfHxELHE9cChaLFgpO3JldHVybiBRLndyaXRlRmlsZVN5bmMoVyxxLFgpfX19LDY3ODA6KGNlLEosYik9Pnt2YXIgRD1iKDg3NjQpLkJ1ZmZlcjtjZS5leHBvcnRzPXtzdHJpbmdp'@; put 'Znk6ZnVuY3Rpb24gXyhOLHtFT0w6dz0iXG4iLGZpbmFsRU9MOkY9ITAscmVwbGFjZXI6SD1udWxsLHNwYWNlczpSfT17fSl7Y29uc3Qgaj1GP3c6IiI7cmV0dXJuIEpTT04uc3RyaW5naWZ5KE4sSCxSKS5yZXBsYWNlKC9cbi9nLHcpK2p9LHN0cmlwQm9tOmZ1bmN0aW9uIHAoTil7cmV0dXJu'@; put 'IEQuaXNCdWZmZXIoTikmJihOPU4udG9TdHJpbmcoInV0ZjgiKSksTi5yZXBsYWNlKC9eXHVGRUZGLywiIil9fX0sNjI0NTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBEKEgpe3RoaXMubWVzc2FnZT1IfWIucihKKSxiLmQoSix7SW52YWxpZFRva2VuRXJyb3I6KCk9Pk4sZGVm'@; put 'YXVsdDooKT0+Rn0pLChELnByb3RvdHlwZT1uZXcgRXJyb3IpLm5hbWU9IkludmFsaWRDaGFyYWN0ZXJFcnJvciI7dmFyIF89dHlwZW9mIHdpbmRvdzwidSImJndpbmRvdy5hdG9iJiZ3aW5kb3cuYXRvYi5iaW5kKHdpbmRvdyl8fGZ1bmN0aW9uKEgpe3ZhciBSPVN0cmluZyhIKS5yZXBsYWNl'@; put 'KC89KyQvLCIiKTtpZihSLmxlbmd0aCU0PT0xKXRocm93IG5ldyBEKCInYXRvYicgZmFpbGVkOiBUaGUgc3RyaW5nIHRvIGJlIGRlY29kZWQgaXMgbm90IGNvcnJlY3RseSBlbmNvZGVkLiIpO2Zvcih2YXIgaixQLEw9MCxZPTAsQj0iIjtQPVIuY2hhckF0KFkrKyk7flAmJihqPUwlND82NCpq'@; put 'K1A6UCxMKyslNCk/Qis9U3RyaW5nLmZyb21DaGFyQ29kZSgyNTUmaj4+KC0yKkwmNikpOjApUD0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLmluZGV4T2YoUCk7cmV0dXJuIEJ9O2Z1bmN0aW9uIE4oSCl7dGhpcy5t'@; put 'ZXNzYWdlPUh9KE4ucHJvdG90eXBlPW5ldyBFcnJvcikubmFtZT0iSW52YWxpZFRva2VuRXJyb3IiO2NvbnN0IEY9ZnVuY3Rpb24gdyhILFIpe2lmKCJzdHJpbmciIT10eXBlb2YgSCl0aHJvdyBuZXcgTigiSW52YWxpZCB0b2tlbiBzcGVjaWZpZWQiKTt2YXIgaj0hMD09PShSPVJ8fHt9KS5o'@; put 'ZWFkZXI/MDoxO3RyeXtyZXR1cm4gSlNPTi5wYXJzZShmdW5jdGlvbiBwKEgpe3ZhciBSPUgucmVwbGFjZSgvLS9nLCIrIikucmVwbGFjZSgvXy9nLCIvIik7c3dpdGNoKFIubGVuZ3RoJTQpe2Nhc2UgMDpicmVhaztjYXNlIDI6Uis9Ij09IjticmVhaztjYXNlIDM6Uis9Ij0iO2JyZWFrO2Rl'@; put 'ZmF1bHQ6dGhyb3ciSWxsZWdhbCBiYXNlNjR1cmwgc3RyaW5nISJ9dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoXyhSKS5yZXBsYWNlKC8oLikvZyxmdW5jdGlvbihQLEwpe3ZhciBZPUwuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTtyZXR1cm4gWS5sZW5n'@; put 'dGg8MiYmKFk9IjAiK1kpLCIlIitZfSkpfWNhdGNoe3JldHVybiBfKFIpfX0oSC5zcGxpdCgiLiIpW2pdKSl9Y2F0Y2goUCl7dGhyb3cgbmV3IE4oIkludmFsaWQgdG9rZW4gc3BlY2lmaWVkOiAiK1AubWVzc2FnZSl9fX0sMTY1ODooY2UsSixiKT0+e3ZhciBwPS9bXFxeJC4qKz8oKVtcXXt9'@; put 'fF0vZyxOPVJlZ0V4cChwLnNvdXJjZSksRj0ib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYmJnNlbGYuT2JqZWN0PT09T2JqZWN0JiZzZWxmLEg9Im9iamVjdCI9PXR5cGVvZiBiLmcmJmIuZyYmYi5nLk9iamVjdD09PU9iamVjdCYmYi5nfHxGfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgp'@; put 'LGo9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxQPUguU3ltYm9sLEw9UD9QLnByb3RvdHlwZTp2b2lkIDAsWT1MP0wudG9TdHJpbmc6dm9pZCAwO2NlLmV4cG9ydHM9ZnVuY3Rpb24gUShxKXtyZXR1cm4ocT1mdW5jdGlvbiBYKHEpe3JldHVybiBudWxsPT1xPyIiOmZ1bmN0aW9uIEIocSl7'@; put 'aWYoInN0cmluZyI9PXR5cGVvZiBxKXJldHVybiBxO2lmKGZ1bmN0aW9uIFoocSl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBxfHxmdW5jdGlvbiBXKHEpe3JldHVybiEhcSYmIm9iamVjdCI9PXR5cGVvZiBxfShxKSYmIltvYmplY3QgU3ltYm9sXSI9PWouY2FsbChxKX0ocSkpcmV0dXJuIFk/'@; put 'WS5jYWxsKHEpOiIiO3ZhciB0ZT1xKyIiO3JldHVybiIwIj09dGUmJjEvcT09LTEvMD8iLTAiOnRlfShxKX0ocSkpJiZOLnRlc3QocSk/cS5yZXBsYWNlKHAsIlxcJCYiKTpxfX0sODA5NDpjZT0+e3ZhciBEPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7Y2UuZXhwb3J0cz1mdW5jdGlvbiBf'@; put 'KE4pe3JldHVybiEwPT09Tnx8ITE9PT1OfHxmdW5jdGlvbiBwKE4pe3JldHVybiEhTiYmIm9iamVjdCI9PXR5cGVvZiBOfShOKSYmIltvYmplY3QgQm9vbGVhbl0iPT1ELmNhbGwoTil9fSwyMzA3OihjZSxKLGIpPT57Y2U9Yi5ubWQoY2UpO3ZhciBfPSJfX2xvZGFzaF9oYXNoX3VuZGVmaW5l'@; put 'ZF9fIixwPTEsTj0yLHc9OTAwNzE5OTI1NDc0MDk5MSxGPSJbb2JqZWN0IEFyZ3VtZW50c10iLEg9IltvYmplY3QgQXJyYXldIixSPSJbb2JqZWN0IEFzeW5jRnVuY3Rpb25dIixqPSJbb2JqZWN0IEJvb2xlYW5dIixQPSJbb2JqZWN0IERhdGVdIixMPSJbb2JqZWN0IEVycm9yXSIsWT0iW29i'@; put 'amVjdCBGdW5jdGlvbl0iLEI9IltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIixXPSJbb2JqZWN0IE1hcF0iLFo9IltvYmplY3QgTnVtYmVyXSIsWD0iW29iamVjdCBOdWxsXSIsUT0iW29iamVjdCBPYmplY3RdIixxPSJbb2JqZWN0IFByb21pc2VdIix0ZT0iW29iamVjdCBQcm94eV0iLGll'@; put 'PSJbb2JqZWN0IFJlZ0V4cF0iLHNlPSJbb2JqZWN0IFNldF0iLGdlPSJbb2JqZWN0IFN0cmluZ10iLFRlPSJbb2JqZWN0IFVuZGVmaW5lZF0iLFNlPSJbb2JqZWN0IFdlYWtNYXBdIix6ZT0iW29iamVjdCBBcnJheUJ1ZmZlcl0iLHo9IltvYmplY3QgRGF0YVZpZXddIixhZT0vXlxbb2JqZWN0'@; put 'IC4rP0NvbnN0cnVjdG9yXF0kLyxuZT0vXig/OjB8WzEtOV1cZCopJC8sbGU9e307bGVbIltvYmplY3QgRmxvYXQzMkFycmF5XSJdPWxlWyJbb2JqZWN0IEZsb2F0NjRBcnJheV0iXT1sZVsiW29iamVjdCBJbnQ4QXJyYXldIl09bGVbIltvYmplY3QgSW50MTZBcnJheV0iXT1sZVsiW29iamVj'@; put 'dCBJbnQzMkFycmF5XSJdPWxlWyJbb2JqZWN0IFVpbnQ4QXJyYXldIl09bGVbIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIl09bGVbIltvYmplY3QgVWludDE2QXJyYXldIl09bGVbIltvYmplY3QgVWludDMyQXJyYXldIl09ITAsbGVbRl09bGVbSF09bGVbemVdPWxlW2pdPWxlW3pdPWxl'@; put 'W1BdPWxlW0xdPWxlW1ldPWxlW1ddPWxlW1pdPWxlW1FdPWxlW2llXT1sZVtzZV09bGVbZ2VdPWxlW1NlXT0hMTt2YXIgd2U9Im9iamVjdCI9PXR5cGVvZiBiLmcmJmIuZyYmYi5nLk9iamVjdD09PU9iamVjdCYmYi5nLFplPSJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiYmc2VsZi5PYmpl'@; put 'Y3Q9PT1PYmplY3QmJnNlbGYsUWU9d2V8fFplfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLGF0PUomJiFKLm5vZGVUeXBlJiZKLHhlPWF0JiZjZSYmIWNlLm5vZGVUeXBlJiZjZSx2ZT14ZSYmeGUuZXhwb3J0cz09PWF0LHFlPXZlJiZ3ZS5wcm9jZXNzLGplPWZ1bmN0aW9uKCl7dHJ5e3Jl'@; put 'dHVybiBxZSYmcWUuYmluZGluZyYmcWUuYmluZGluZygidXRpbCIpfWNhdGNoe319KCksQWU9amUmJmplLmlzVHlwZWRBcnJheTtmdW5jdGlvbiBJZShBbixybil7Zm9yKHZhciBtaT0tMSxBcj1udWxsPT1Bbj8wOkFuLmxlbmd0aDsrK21pPEFyOylpZihybihBblttaV0sbWksQW4pKXJldHVy'@; put 'biEwO3JldHVybiExfWZ1bmN0aW9uIGtlKEFuLHJuKXtyZXR1cm4gQW4uaGFzKHJuKX1mdW5jdGlvbiBudChBbil7dmFyIHJuPS0xLG1pPUFycmF5KEFuLnNpemUpO3JldHVybiBBbi5mb3JFYWNoKGZ1bmN0aW9uKEFyLEZzKXttaVsrK3JuXT1bRnMsQXJdfSksbWl9ZnVuY3Rpb24gb24oQW4p'@; put 'e3ZhciBybj0tMSxtaT1BcnJheShBbi5zaXplKTtyZXR1cm4gQW4uZm9yRWFjaChmdW5jdGlvbihBcil7bWlbKytybl09QXJ9KSxtaX12YXIgQW4seXQ9QXJyYXkucHJvdG90eXBlLEl0PU9iamVjdC5wcm90b3R5cGUscnQ9UWVbIl9fY29yZS1qc19zaGFyZWRfXyJdLEtlPUZ1bmN0aW9uLnBy'@; put 'b3RvdHlwZS50b1N0cmluZyx0dD1JdC5oYXNPd25Qcm9wZXJ0eSxOZT0oQW49L1teLl0rJC8uZXhlYyhydCYmcnQua2V5cyYmcnQua2V5cy5JRV9QUk9UT3x8IiIpKT8iU3ltYm9sKHNyYylfMS4iK0FuOiIiLHV0PUl0LnRvU3RyaW5nLEp0PVJlZ0V4cCgiXiIrS2UuY2FsbCh0dCkucmVwbGFj'@; put 'ZSgvW1xcXiQuKis/KClbXF17fXxdL2csIlxcJCYiKS5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcKCl8IGZvciAuKz8oPz1cXFxdKS9nLCIkMS4qPyIpKyIkIiksTHQ9dmU/UWUuQnVmZmVyOnZvaWQgMCxQdD1RZS5TeW1ib2wsb2k9UWUuVWludDhBcnJheSxl'@; put 'bj1JdC5wcm9wZXJ0eUlzRW51bWVyYWJsZSxzbj15dC5zcGxpY2UsSWk9UHQ/UHQudG9TdHJpbmdUYWc6dm9pZCAwLGRuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMsZnQ9THQ/THQuaXNCdWZmZXI6dm9pZCAwLEZyPWZ1bmN0aW9uIEplKEFuLHJuKXtyZXR1cm4gZnVuY3Rpb24obWkp'@; put 'e3JldHVybiBBbihybihtaSkpfX0oT2JqZWN0LmtleXMsT2JqZWN0KSxadD0kaChRZSwiRGF0YVZpZXciKSxrdD0kaChRZSwiTWFwIiksTG49JGgoUWUsIlByb21pc2UiKSxvdD0kaChRZSwiU2V0IiksenQ9JGgoUWUsIldlYWtNYXAiKSxuaT0kaChPYmplY3QsImNyZWF0ZSIpLFdlPUlsKFp0'@; put 'KSxBdD1JbChrdCksaXI9SWwoTG4pLGh0PUlsKG90KSxFdD1JbCh6dCksem49UHQ/UHQucHJvdG90eXBlOnZvaWQgMCxhbj16bj96bi52YWx1ZU9mOnZvaWQgMDtmdW5jdGlvbiBqdChBbil7dmFyIHJuPS0xLG1pPW51bGw9PUFuPzA6QW4ubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7Kytybjxt'@; put 'aTspe3ZhciBBcj1Bbltybl07dGhpcy5zZXQoQXJbMF0sQXJbMV0pfX1mdW5jdGlvbiB0bihBbil7dmFyIHJuPS0xLG1pPW51bGw9PUFuPzA6QW4ubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytybjxtaTspe3ZhciBBcj1Bbltybl07dGhpcy5zZXQoQXJbMF0sQXJbMV0pfX1mdW5jdGlvbiBK'@; put 'cihBbil7dmFyIHJuPS0xLG1pPW51bGw9PUFuPzA6QW4ubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytybjxtaTspe3ZhciBBcj1Bbltybl07dGhpcy5zZXQoQXJbMF0sQXJbMV0pfX1mdW5jdGlvbiBZaShBbil7dmFyIHJuPS0xLG1pPW51bGw9PUFuPzA6QW4ubGVuZ3RoO2Zvcih0aGlzLl9f'@; put 'ZGF0YV9fPW5ldyBKcjsrK3JuPG1pOyl0aGlzLmFkZChBbltybl0pfWZ1bmN0aW9uIG9hKEFuKXt2YXIgcm49dGhpcy5fX2RhdGFfXz1uZXcgdG4oQW4pO3RoaXMuc2l6ZT1ybi5zaXplfWZ1bmN0aW9uIG1sKEFuLHJuKXtmb3IodmFyIG1pPUFuLmxlbmd0aDttaS0tOylpZihnZihBblttaV1b'@; put 'MF0scm4pKXJldHVybiBtaTtyZXR1cm4tMX1mdW5jdGlvbiBJYyhBbil7cmV0dXJuIG51bGw9PUFuP3ZvaWQgMD09PUFuP1RlOlg6SWkmJklpIGluIE9iamVjdChBbik/ZnVuY3Rpb24gcGYoQW4pe3ZhciBybj10dC5jYWxsKEFuLElpKSxtaT1BbltJaV07dHJ5e0FuW0lpXT12b2lkIDA7dmFy'@; put 'IEFyPSEwfWNhdGNoe312YXIgRnM9dXQuY2FsbChBbik7cmV0dXJuIEFyJiYocm4/QW5bSWldPW1pOmRlbGV0ZSBBbltJaV0pLEZzfShBbik6ZnVuY3Rpb24gZTUoQW4pe3JldHVybiB1dC5jYWxsKEFuKX0oQW4pfWZ1bmN0aW9uIEEwKEFuKXtyZXR1cm4gQmEoQW4pJiZJYyhBbik9PUZ9ZnVu'@; put 'Y3Rpb24gb3IoQW4scm4sbWksQXIsRnMpe3JldHVybiBBbj09PXJufHwobnVsbD09QW58fG51bGw9PXJufHwhQmEoQW4pJiYhQmEocm4pP0FuIT1BbiYmcm4hPXJuOmZ1bmN0aW9uIFRhKEFuLHJuLG1pLEFyLEZzLFFhKXt2YXIgcmw9bWYoQW4pLHpzPW1mKHJuKSxObz1ybD9IOkdpKEFuKSxD'@; put 'bz16cz9IOkdpKHJuKSxObD0oTm89Tm89PUY/UTpObyk9PVEsTnM9KENvPUNvPT1GP1E6Q28pPT1RLElzPU5vPT1DbztpZihJcyYmdmYoQW4pKXtpZighdmYocm4pKXJldHVybiExO3JsPSEwLE5sPSExfWlmKElzJiYhTmwpcmV0dXJuIFFhfHwoUWE9bmV3IG9hKSxybHx8STMoQW4pP2cwKEFu'@; put 'LHJuLG1pLEFyLEZzLFFhKTpmdW5jdGlvbiBWYShBbixybixtaSxBcixGcyxRYSxybCl7c3dpdGNoKG1pKXtjYXNlIHo6aWYoQW4uYnl0ZUxlbmd0aCE9cm4uYnl0ZUxlbmd0aHx8QW4uYnl0ZU9mZnNldCE9cm4uYnl0ZU9mZnNldClyZXR1cm4hMTtBbj1Bbi5idWZmZXIscm49cm4uYnVmZmVy'@; put 'O2Nhc2UgemU6cmV0dXJuIShBbi5ieXRlTGVuZ3RoIT1ybi5ieXRlTGVuZ3RofHwhUWEobmV3IG9pKEFuKSxuZXcgb2kocm4pKSk7Y2FzZSBqOmNhc2UgUDpjYXNlIFo6cmV0dXJuIGdmKCtBbiwrcm4pO2Nhc2UgTDpyZXR1cm4gQW4ubmFtZT09cm4ubmFtZSYmQW4ubWVzc2FnZT09cm4ubWVz'@; put 'c2FnZTtjYXNlIGllOmNhc2UgZ2U6cmV0dXJuIEFuPT1ybisiIjtjYXNlIFc6dmFyIHpzPW50O2Nhc2Ugc2U6aWYoenN8fCh6cz1vbiksQW4uc2l6ZSE9cm4uc2l6ZSYmIShBciZwKSlyZXR1cm4hMTt2YXIgQ289cmwuZ2V0KEFuKTtpZihDbylyZXR1cm4gQ289PXJuO0FyfD1OLHJsLnNldChB'@; put 'bixybik7dmFyIE5sPWcwKHpzKEFuKSx6cyhybiksQXIsRnMsUWEscmwpO3JldHVybiBybC5kZWxldGUoQW4pLE5sO2Nhc2UiW29iamVjdCBTeW1ib2xdIjppZihhbilyZXR1cm4gYW4uY2FsbChBbik9PWFuLmNhbGwocm4pfXJldHVybiExfShBbixybixObyxtaSxBcixGcyxRYSk7aWYoISht'@; put 'aSZwKSl7dmFyIFN0PU5sJiZ0dC5jYWxsKEFuLCJfX3dyYXBwZWRfXyIpLFZ0PU5zJiZ0dC5jYWxsKHJuLCJfX3dyYXBwZWRfXyIpO2lmKFN0fHxWdCl7dmFyIHluPVN0P0FuLnZhbHVlKCk6QW4sZ249VnQ/cm4udmFsdWUoKTpybjtyZXR1cm4gUWF8fChRYT1uZXcgb2EpLEZzKHluLGduLG1p'@; put 'LEFyLFFhKX19cmV0dXJuISFJcyYmKFFhfHwoUWE9bmV3IG9hKSxmdW5jdGlvbiBEdShBbixybixtaSxBcixGcyxRYSl7dmFyIHJsPW1pJnAsenM9SHIoQW4pLE5vPXpzLmxlbmd0aDtpZihObyE9SHIocm4pLmxlbmd0aCYmIXJsKXJldHVybiExO2Zvcih2YXIgTnM9Tm87TnMtLTspe3ZhciBJ'@; put 'cz16c1tOc107aWYoIShybD9JcyBpbiBybjp0dC5jYWxsKHJuLElzKSkpcmV0dXJuITF9dmFyIFN0PVFhLmdldChBbik7aWYoU3QmJlFhLmdldChybikpcmV0dXJuIFN0PT1ybjt2YXIgVnQ9ITA7UWEuc2V0KEFuLHJuKSxRYS5zZXQocm4sQW4pO2Zvcih2YXIgeW49cmw7KytOczxObzspe3Zh'@; put 'ciBnbj1BbltJcz16c1tOc11dLFJuPXJuW0lzXTtpZihBcil2YXIgdm49cmw/QXIoUm4sZ24sSXMscm4sQW4sUWEpOkFyKGduLFJuLElzLEFuLHJuLFFhKTtpZighKHZvaWQgMD09PXZuP2duPT09Um58fEZzKGduLFJuLG1pLEFyLFFhKTp2bikpe1Z0PSExO2JyZWFrfXlufHwoeW49ImNvbnN0'@; put 'cnVjdG9yIj09SXMpfWlmKFZ0JiYheW4pe3ZhciBkcj1Bbi5jb25zdHJ1Y3Rvcix2aT1ybi5jb25zdHJ1Y3RvcjtkciE9dmkmJiJjb25zdHJ1Y3RvciJpbiBBbiYmImNvbnN0cnVjdG9yImluIHJuJiYhKCJmdW5jdGlvbiI9PXR5cGVvZiBkciYmZHIgaW5zdGFuY2VvZiBkciYmImZ1bmN0aW9u'@; put 'Ij09dHlwZW9mIHZpJiZ2aSBpbnN0YW5jZW9mIHZpKSYmKFZ0PSExKX1yZXR1cm4gUWEuZGVsZXRlKEFuKSxRYS5kZWxldGUocm4pLFZ0fShBbixybixtaSxBcixGcyxRYSkpfShBbixybixtaSxBcixvcixGcykpfWZ1bmN0aW9uIGcwKEFuLHJuLG1pLEFyLEZzLFFhKXt2YXIgcmw9bWkmcCx6'@; put 'cz1Bbi5sZW5ndGgsTm89cm4ubGVuZ3RoO2lmKHpzIT1ObyYmIShybCYmTm8+enMpKXJldHVybiExO3ZhciBDbz1RYS5nZXQoQW4pO2lmKENvJiZRYS5nZXQocm4pKXJldHVybiBDbz09cm47dmFyIE5sPS0xLE5zPSEwLElzPW1pJk4/bmV3IFlpOnZvaWQgMDtmb3IoUWEuc2V0KEFuLHJuKSxR'@; put 'YS5zZXQocm4sQW4pOysrTmw8enM7KXt2YXIgU3Q9QW5bTmxdLFZ0PXJuW05sXTtpZihBcil2YXIgeW49cmw/QXIoVnQsU3QsTmwscm4sQW4sUWEpOkFyKFN0LFZ0LE5sLEFuLHJuLFFhKTtpZih2b2lkIDAhPT15bil7aWYoeW4pY29udGludWU7TnM9ITE7YnJlYWt9aWYoSXMpe2lmKCFJZShy'@; put 'bixmdW5jdGlvbihnbixSbil7aWYoIWtlKElzLFJuKSYmKFN0PT09Z258fEZzKFN0LGduLG1pLEFyLFFhKSkpcmV0dXJuIElzLnB1c2goUm4pfSkpe05zPSExO2JyZWFrfX1lbHNlIGlmKFN0IT09VnQmJiFGcyhTdCxWdCxtaSxBcixRYSkpe05zPSExO2JyZWFrfX1yZXR1cm4gUWEuZGVsZXRl'@; put 'KEFuKSxRYS5kZWxldGUocm4pLE5zfWZ1bmN0aW9uIEhyKEFuKXtyZXR1cm4gZnVuY3Rpb24gdXUoQW4scm4sbWkpe3ZhciBBcj1ybihBbik7cmV0dXJuIG1mKEFuKT9BcjpmdW5jdGlvbiBSZShBbixybil7Zm9yKHZhciBtaT0tMSxBcj1ybi5sZW5ndGgsRnM9QW4ubGVuZ3RoOysrbWk8QXI7'@; put 'KUFuW0ZzK21pXT1yblttaV07cmV0dXJuIEFufShBcixtaShBbikpfShBbixYaCx3byl9ZnVuY3Rpb24gbGQoQW4scm4pe3ZhciBtaT1Bbi5fX2RhdGFfXztyZXR1cm4gZnVuY3Rpb24gWGMoQW4pe3ZhciBybj10eXBlb2YgQW47cmV0dXJuInN0cmluZyI9PXJufHwibnVtYmVyIj09cm58fCJz'@; put 'eW1ib2wiPT1ybnx8ImJvb2xlYW4iPT1ybj8iX19wcm90b19fIiE9PUFuOm51bGw9PT1Bbn0ocm4pP21pWyJzdHJpbmciPT10eXBlb2Ygcm4/InN0cmluZyI6Imhhc2giXTptaS5tYXB9ZnVuY3Rpb24gJGgoQW4scm4pe3ZhciBtaT1mdW5jdGlvbiBfdChBbixybil7cmV0dXJuIEFuPy5bcm5d'@; put 'fShBbixybik7cmV0dXJuIGZ1bmN0aW9uIGxpKEFuKXtyZXR1cm4hKCFSYyhBbil8fGZ1bmN0aW9uIFFnKEFuKXtyZXR1cm4hIU5lJiZOZSBpbiBBbn0oQW4pKSYmKHlmKEFuKT9KdDphZSkudGVzdChJbChBbikpfShtaSk/bWk6dm9pZCAwfWp0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbiBk'@; put 'aSgpe3RoaXMuX19kYXRhX189bmk/bmkobnVsbCk6e30sdGhpcy5zaXplPTB9LGp0LnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24gY24oQW4pe3ZhciBybj10aGlzLmhhcyhBbikmJmRlbGV0ZSB0aGlzLl9fZGF0YV9fW0FuXTtyZXR1cm4gdGhpcy5zaXplLT1ybj8xOjAscm59LGp0LnByb3Rv'@; put 'dHlwZS5nZXQ9ZnVuY3Rpb24gZm4oQW4pe3ZhciBybj10aGlzLl9fZGF0YV9fO2lmKG5pKXt2YXIgbWk9cm5bQW5dO3JldHVybiBtaT09PV8/dm9pZCAwOm1pfXJldHVybiB0dC5jYWxsKHJuLEFuKT9ybltBbl06dm9pZCAwfSxqdC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uIERpKEFuKXt2YXIg'@; put 'cm49dGhpcy5fX2RhdGFfXztyZXR1cm4gbmk/dm9pZCAwIT09cm5bQW5dOnR0LmNhbGwocm4sQW4pfSxqdC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uIFF0KEFuLHJuKXt2YXIgbWk9dGhpcy5fX2RhdGFfXztyZXR1cm4gdGhpcy5zaXplKz10aGlzLmhhcyhBbik/MDoxLG1pW0FuXT1uaSYmdm9p'@; put 'ZCAwPT09cm4/Xzpybix0aGlzfSx0bi5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24gY2EoKXt0aGlzLl9fZGF0YV9fPVtdLHRoaXMuc2l6ZT0wfSx0bi5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uIHhpKEFuKXt2YXIgcm49dGhpcy5fX2RhdGFfXyxtaT1tbChybixBbik7cmV0dXJuIShtaTww'@; put 'fHwobWk9PXJuLmxlbmd0aC0xP3JuLnBvcCgpOnNuLmNhbGwocm4sbWksMSksLS10aGlzLnNpemUsMCkpfSx0bi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uIHlyKEFuKXt2YXIgcm49dGhpcy5fX2RhdGFfXyxtaT1tbChybixBbik7cmV0dXJuIG1pPDA/dm9pZCAwOnJuW21pXVsxXX0sdG4ucHJv'@; put 'dG90eXBlLmhhcz1mdW5jdGlvbiBHbihBbil7cmV0dXJuIG1sKHRoaXMuX19kYXRhX18sQW4pPi0xfSx0bi5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uIEtpKEFuLHJuKXt2YXIgbWk9dGhpcy5fX2RhdGFfXyxBcj1tbChtaSxBbik7cmV0dXJuIEFyPDA/KCsrdGhpcy5zaXplLG1pLnB1c2goW0Fu'@; put 'LHJuXSkpOm1pW0FyXVsxXT1ybix0aGlzfSxKci5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24gUXIoKXt0aGlzLnNpemU9MCx0aGlzLl9fZGF0YV9fPXtoYXNoOm5ldyBqdCxtYXA6bmV3KGt0fHx0biksc3RyaW5nOm5ldyBqdH19LEpyLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24gTmkoQW4p'@; put 'e3ZhciBybj1sZCh0aGlzLEFuKS5kZWxldGUoQW4pO3JldHVybiB0aGlzLnNpemUtPXJuPzE6MCxybn0sSnIucHJvdG90eXBlLmdldD1mdW5jdGlvbiBIaShBbil7cmV0dXJuIGxkKHRoaXMsQW4pLmdldChBbil9LEpyLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24gSWEoQW4pe3JldHVybiBsZCh0'@; put 'aGlzLEFuKS5oYXMoQW4pfSxKci5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uIFByKEFuLHJuKXt2YXIgbWk9bGQodGhpcyxBbiksQXI9bWkuc2l6ZTtyZXR1cm4gbWkuc2V0KEFuLHJuKSx0aGlzLnNpemUrPW1pLnNpemU9PUFyPzA6MSx0aGlzfSxZaS5wcm90b3R5cGUuYWRkPVlpLnByb3RvdHlw'@; put 'ZS5wdXNoPWZ1bmN0aW9uIGZhKEFuKXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5zZXQoQW4sXyksdGhpc30sWWkucHJvdG90eXBlLmhhcz1mdW5jdGlvbiBucihBbil7cmV0dXJuIHRoaXMuX19kYXRhX18uaGFzKEFuKX0sb2EucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uIF9hKCl7dGhpcy5fX2Rh'@; put 'dGFfXz1uZXcgdG4sdGhpcy5zaXplPTB9LG9hLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24gT2EoQW4pe3ZhciBybj10aGlzLl9fZGF0YV9fLG1pPXJuLmRlbGV0ZShBbik7cmV0dXJuIHRoaXMuc2l6ZT1ybi5zaXplLG1pfSxvYS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uIE5hKEFuKXtyZXR1'@; put 'cm4gdGhpcy5fX2RhdGFfXy5nZXQoQW4pfSxvYS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uIGVpKEFuKXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXMoQW4pfSxvYS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uIGZzKEFuLHJuKXt2YXIgbWk9dGhpcy5fX2RhdGFfXztpZihtaSBpbnN0YW5jZW9mIHRu'@; put 'KXt2YXIgQXI9bWkuX19kYXRhX187aWYoIWt0fHxBci5sZW5ndGg8MTk5KXJldHVybiBBci5wdXNoKFtBbixybl0pLHRoaXMuc2l6ZT0rK21pLnNpemUsdGhpczttaT10aGlzLl9fZGF0YV9fPW5ldyBKcihBcil9cmV0dXJuIG1pLnNldChBbixybiksdGhpcy5zaXplPW1pLnNpemUsdGhpc307'@; put 'dmFyIHdvPWRuP2Z1bmN0aW9uKEFuKXtyZXR1cm4gbnVsbD09QW4/W106KEFuPU9iamVjdChBbiksZnVuY3Rpb24gRmUoQW4scm4pe2Zvcih2YXIgbWk9LTEsQXI9bnVsbD09QW4/MDpBbi5sZW5ndGgsRnM9MCxRYT1bXTsrK21pPEFyOyl7dmFyIHJsPUFuW21pXTtybihybCxtaSxBbikmJihR'@; put 'YVtGcysrXT1ybCl9cmV0dXJuIFFhfShkbihBbiksZnVuY3Rpb24ocm4pe3JldHVybiBlbi5jYWxsKEFuLHJuKX0pKX06ZnVuY3Rpb24gcWgoKXtyZXR1cm5bXX0sR2k9SWM7ZnVuY3Rpb24gdmwoQW4scm4pe3JldHVybiEhKHJuPXJuPz93KSYmKCJudW1iZXIiPT10eXBlb2YgQW58fG5lLnRl'@; put 'c3QoQW4pKSYmQW4+LTEmJkFuJTE9PTAmJkFuPHJufWZ1bmN0aW9uIElsKEFuKXtpZihudWxsIT1Bbil7dHJ5e3JldHVybiBLZS5jYWxsKEFuKX1jYXRjaHt9dHJ5e3JldHVybiBBbisiIn1jYXRjaHt9fXJldHVybiIifWZ1bmN0aW9uIGdmKEFuLHJuKXtyZXR1cm4gQW49PT1ybnx8QW4hPUFu'@; put 'JiZybiE9cm59KFp0JiZHaShuZXcgWnQobmV3IEFycmF5QnVmZmVyKDEpKSkhPXp8fGt0JiZHaShuZXcga3QpIT1XfHxMbiYmR2koTG4ucmVzb2x2ZSgpKSE9cXx8b3QmJkdpKG5ldyBvdCkhPXNlfHx6dCYmR2kobmV3IHp0KSE9U2UpJiYoR2k9ZnVuY3Rpb24oQW4pe3ZhciBybj1JYyhBbiks'@; put 'bWk9cm49PVE/QW4uY29uc3RydWN0b3I6dm9pZCAwLEFyPW1pP0lsKG1pKToiIjtpZihBcilzd2l0Y2goQXIpe2Nhc2UgV2U6cmV0dXJuIHo7Y2FzZSBBdDpyZXR1cm4gVztjYXNlIGlyOnJldHVybiBxO2Nhc2UgaHQ6cmV0dXJuIHNlO2Nhc2UgRXQ6cmV0dXJuIFNlfXJldHVybiBybn0pO3Zh'@; put 'ciBjZD1BMChmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpP0EwOmZ1bmN0aW9uKEFuKXtyZXR1cm4gQmEoQW4pJiZ0dC5jYWxsKEFuLCJjYWxsZWUiKSYmIWVuLmNhbGwoQW4sImNhbGxlZSIpfSxtZj1BcnJheS5pc0FycmF5LHZmPWZ0fHxmdW5jdGlvbiBKaCgpe3JldHVybiExfTtm'@; put 'dW5jdGlvbiB5ZihBbil7aWYoIVJjKEFuKSlyZXR1cm4hMTt2YXIgcm49SWMoQW4pO3JldHVybiBybj09WXx8cm49PUJ8fHJuPT1SfHxybj09dGV9ZnVuY3Rpb24gS2goQW4pe3JldHVybiJudW1iZXIiPT10eXBlb2YgQW4mJkFuPi0xJiZBbiUxPT0wJiZBbjw9d31mdW5jdGlvbiBSYyhBbil7'@; put 'dmFyIHJuPXR5cGVvZiBBbjtyZXR1cm4gbnVsbCE9QW4mJigib2JqZWN0Ij09cm58fCJmdW5jdGlvbiI9PXJuKX1mdW5jdGlvbiBCYShBbil7cmV0dXJuIG51bGwhPUFuJiYib2JqZWN0Ij09dHlwZW9mIEFufXZhciBJMz1BZT9mdW5jdGlvbiBEZShBbil7cmV0dXJuIGZ1bmN0aW9uKHJuKXty'@; put 'ZXR1cm4gQW4ocm4pfX0oQWUpOmZ1bmN0aW9uIE50KEFuKXtyZXR1cm4gQmEoQW4pJiZLaChBbi5sZW5ndGgpJiYhIWxlW0ljKEFuKV19O2Z1bmN0aW9uIFhoKEFuKXtyZXR1cm4gZnVuY3Rpb24gRDEoQW4pe3JldHVybiBudWxsIT1BbiYmS2goQW4ubGVuZ3RoKSYmIXlmKEFuKX0oQW4pP2Z1'@; put 'bmN0aW9uIEhvKEFuLHJuKXt2YXIgbWk9bWYoQW4pLEFyPSFtaSYmY2QoQW4pLEZzPSFtaSYmIUFyJiZ2ZihBbiksUWE9IW1pJiYhQXImJiFGcyYmSTMoQW4pLHJsPW1pfHxBcnx8RnN8fFFhLHpzPXJsP2Z1bmN0aW9uIEhlKEFuLHJuKXtmb3IodmFyIG1pPS0xLEFyPUFycmF5KEFuKTsrK21p'@; put 'PEFuOylBclttaV09cm4obWkpO3JldHVybiBBcn0oQW4ubGVuZ3RoLFN0cmluZyk6W10sTm89enMubGVuZ3RoO2Zvcih2YXIgQ28gaW4gQW4pKHJufHx0dC5jYWxsKEFuLENvKSkmJighcmx8fCEoImxlbmd0aCI9PUNvfHxGcyYmKCJvZmZzZXQiPT1Db3x8InBhcmVudCI9PUNvKXx8UWEmJigi'@; put 'YnVmZmVyIj09Q298fCJieXRlTGVuZ3RoIj09Q298fCJieXRlT2Zmc2V0Ij09Q28pfHx2bChDbyxObykpKSYmenMucHVzaChDbyk7cmV0dXJuIHpzfShBbik6ZnVuY3Rpb24gWHIoQW4pe2lmKCFmdW5jdGlvbiBtMChBbil7dmFyIHJuPUFuJiZBbi5jb25zdHJ1Y3RvcjtyZXR1cm4gQW49PT0o'@; put 'ImZ1bmN0aW9uIj09dHlwZW9mIHJuJiZybi5wcm90b3R5cGV8fEl0KX0oQW4pKXJldHVybiBGcihBbik7dmFyIHJuPVtdO2Zvcih2YXIgbWkgaW4gT2JqZWN0KEFuKSl0dC5jYWxsKEFuLG1pKSYmImNvbnN0cnVjdG9yIiE9bWkmJnJuLnB1c2gobWkpO3JldHVybiBybn0oQW4pfWNlLmV4cG9y'@; put 'dHM9ZnVuY3Rpb24gZWgoQW4scm4pe3JldHVybiBvcihBbixybil9fSw4NDIzOihjZSxKLGIpPT57dmFyIFI9Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmJiZzZWxmLk9iamVjdD09PU9iamVjdCYmc2VsZixqPSJvYmplY3QiPT10eXBlb2YgYi5nJiZiLmcmJmIuZy5PYmplY3Q9PT1PYmpl'@; put 'Y3QmJmIuZ3x8Unx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxQPU9iamVjdC5wcm90b3R5cGUsTD1QLmhhc093blByb3BlcnR5LFk9UC50b1N0cmluZyxCPWouU3ltYm9sLFc9Qj9CLnRvU3RyaW5nVGFnOnZvaWQgMDtjZS5leHBvcnRzPWZ1bmN0aW9uIHEoaWUpe2lmKCFmdW5jdGlvbiB0'@; put 'ZShpZSl7dmFyIHNlPXR5cGVvZiBpZTtyZXR1cm4gbnVsbCE9aWUmJigib2JqZWN0Ij09c2V8fCJmdW5jdGlvbiI9PXNlKX0oaWUpKXJldHVybiExO3ZhciBzZT1mdW5jdGlvbiBaKGllKXtyZXR1cm4gbnVsbD09aWU/dm9pZCAwPT09aWU/IltvYmplY3QgVW5kZWZpbmVkXSI6IltvYmplY3Qg'@; put 'TnVsbF0iOlcmJlcgaW4gT2JqZWN0KGllKT9mdW5jdGlvbiBYKGllKXt2YXIgc2U9TC5jYWxsKGllLFcpLGdlPWllW1ddO3RyeXtpZVtXXT12b2lkIDA7dmFyIF9lPSEwfWNhdGNoe312YXIgVGU9WS5jYWxsKGllKTtyZXR1cm4gX2UmJihzZT9pZVtXXT1nZTpkZWxldGUgaWVbV10pLFRlfShp'@; put 'ZSk6ZnVuY3Rpb24gUShpZSl7cmV0dXJuIFkuY2FsbChpZSl9KGllKX0oaWUpO3JldHVybiJbb2JqZWN0IEZ1bmN0aW9uXSI9PXNlfHwiW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iPT1zZXx8IltvYmplY3QgQXN5bmNGdW5jdGlvbl0iPT1zZXx8IltvYmplY3QgUHJveHldIj09c2V9fSw5'@; put 'NzIyOmNlPT57Y2UuZXhwb3J0cz1mdW5jdGlvbiBKKGIpe3JldHVybiBudWxsPT1ifX0sOTczODpjZT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPU1hdGguYWJzfSw2MzI5OmNlPT57InVzZSBzdHJpY3QiO2NlLmV4cG9ydHM9TWF0aC5mbG9vcn0sMzY3ODpjZT0+eyJ1c2Ugc3RyaWN0Ijtj'@; put 'ZS5leHBvcnRzPU51bWJlci5pc05hTnx8ZnVuY3Rpb24oYil7cmV0dXJuIGIhPWJ9fSwyMjY0OmNlPT57InVzZSBzdHJpY3QiO2NlLmV4cG9ydHM9TWF0aC5tYXh9LDU3MzA6Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz1NYXRoLm1pbn0sNzA3OmNlPT57InVzZSBzdHJpY3QiO2NlLmV4'@; put 'cG9ydHM9TWF0aC5wb3d9LDM4NjI6Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz1NYXRoLnJvdW5kfSw5NTUwOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMzY3OCk7Y2UuZXhwb3J0cz1mdW5jdGlvbihwKXtyZXR1cm4gRChwKXx8MD09PXA/cDpwPDA/LTE6MX19LDIzMTg6'@; put 'KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig1NzE3KSxfPWIoMzM0OSkscD1iKDk1MDkpLkJ1ZmZlcixOPW5ldyBBcnJheSgxNik7ZnVuY3Rpb24gdygpe18uY2FsbCh0aGlzLDY0KSx0aGlzLl9hPTE3MzI1ODQxOTMsdGhpcy5fYj00MDIzMjMzNDE3LHRoaXMuX2M9MjU2MjM4MzEw'@; put 'Mix0aGlzLl9kPTI3MTczMzg3OH1mdW5jdGlvbiBGKEwsWSl7cmV0dXJuIEw8PFl8TD4+PjMyLVl9ZnVuY3Rpb24gSChMLFksQixXLFosWCxRKXtyZXR1cm4gRihMKyhZJkJ8flkmVykrWitYfDAsUSkrWXwwfWZ1bmN0aW9uIFIoTCxZLEIsVyxaLFgsUSl7cmV0dXJuIEYoTCsoWSZXfEImflcp'@; put 'K1orWHwwLFEpK1l8MH1mdW5jdGlvbiBqKEwsWSxCLFcsWixYLFEpe3JldHVybiBGKEwrKFleQl5XKStaK1h8MCxRKStZfDB9ZnVuY3Rpb24gUChMLFksQixXLFosWCxRKXtyZXR1cm4gRihMKyhCXihZfH5XKSkrWitYfDAsUSkrWXwwfUQodyxfKSx3LnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0'@; put 'aW9uKCl7Zm9yKHZhciBMPU4sWT0wO1k8MTY7KytZKUxbWV09dGhpcy5fYmxvY2sucmVhZEludDMyTEUoNCpZKTt2YXIgQj10aGlzLl9hLFc9dGhpcy5fYixaPXRoaXMuX2MsWD10aGlzLl9kO0I9SChCLFcsWixYLExbMF0sMzYxNDA5MDM2MCw3KSxYPUgoWCxCLFcsWixMWzFdLDM5MDU0MDI3'@; put 'MTAsMTIpLFo9SChaLFgsQixXLExbMl0sNjA2MTA1ODE5LDE3KSxXPUgoVyxaLFgsQixMWzNdLDMyNTA0NDE5NjYsMjIpLEI9SChCLFcsWixYLExbNF0sNDExODU0ODM5OSw3KSxYPUgoWCxCLFcsWixMWzVdLDEyMDAwODA0MjYsMTIpLFo9SChaLFgsQixXLExbNl0sMjgyMTczNTk1NSwxNyks'@; put 'Vz1IKFcsWixYLEIsTFs3XSw0MjQ5MjYxMzEzLDIyKSxCPUgoQixXLFosWCxMWzhdLDE3NzAwMzU0MTYsNyksWD1IKFgsQixXLFosTFs5XSwyMzM2NTUyODc5LDEyKSxaPUgoWixYLEIsVyxMWzEwXSw0Mjk0OTI1MjMzLDE3KSxXPUgoVyxaLFgsQixMWzExXSwyMzA0NTYzMTM0LDIyKSxCPUgo'@; put 'QixXLFosWCxMWzEyXSwxODA0NjAzNjgyLDcpLFg9SChYLEIsVyxaLExbMTNdLDQyNTQ2MjYxOTUsMTIpLFo9SChaLFgsQixXLExbMTRdLDI3OTI5NjUwMDYsMTcpLEI9UihCLFc9SChXLFosWCxCLExbMTVdLDEyMzY1MzUzMjksMjIpLFosWCxMWzFdLDQxMjkxNzA3ODYsNSksWD1SKFgsQixX'@; put 'LFosTFs2XSwzMjI1NDY1NjY0LDkpLFo9UihaLFgsQixXLExbMTFdLDY0MzcxNzcxMywxNCksVz1SKFcsWixYLEIsTFswXSwzOTIxMDY5OTk0LDIwKSxCPVIoQixXLFosWCxMWzVdLDM1OTM0MDg2MDUsNSksWD1SKFgsQixXLFosTFsxMF0sMzgwMTYwODMsOSksWj1SKFosWCxCLFcsTFsxNV0s'@; put 'MzYzNDQ4ODk2MSwxNCksVz1SKFcsWixYLEIsTFs0XSwzODg5NDI5NDQ4LDIwKSxCPVIoQixXLFosWCxMWzldLDU2ODQ0NjQzOCw1KSxYPVIoWCxCLFcsWixMWzE0XSwzMjc1MTYzNjA2LDkpLFo9UihaLFgsQixXLExbM10sNDEwNzYwMzMzNSwxNCksVz1SKFcsWixYLEIsTFs4XSwxMTYzNTMx'@; put 'NTAxLDIwKSxCPVIoQixXLFosWCxMWzEzXSwyODUwMjg1ODI5LDUpLFg9UihYLEIsVyxaLExbMl0sNDI0MzU2MzUxMiw5KSxaPVIoWixYLEIsVyxMWzddLDE3MzUzMjg0NzMsMTQpLEI9aihCLFc9UihXLFosWCxCLExbMTJdLDIzNjgzNTk1NjIsMjApLFosWCxMWzVdLDQyOTQ1ODg3MzgsNCks'@; put 'WD1qKFgsQixXLFosTFs4XSwyMjcyMzkyODMzLDExKSxaPWooWixYLEIsVyxMWzExXSwxODM5MDMwNTYyLDE2KSxXPWooVyxaLFgsQixMWzE0XSw0MjU5NjU3NzQwLDIzKSxCPWooQixXLFosWCxMWzFdLDI3NjM5NzUyMzYsNCksWD1qKFgsQixXLFosTFs0XSwxMjcyODkzMzUzLDExKSxaPWoo'@; put 'WixYLEIsVyxMWzddLDQxMzk0Njk2NjQsMTYpLFc9aihXLFosWCxCLExbMTBdLDMyMDAyMzY2NTYsMjMpLEI9aihCLFcsWixYLExbMTNdLDY4MTI3OTE3NCw0KSxYPWooWCxCLFcsWixMWzBdLDM5MzY0MzAwNzQsMTEpLFo9aihaLFgsQixXLExbM10sMzU3MjQ0NTMxNywxNiksVz1qKFcsWixY'@; put 'LEIsTFs2XSw3NjAyOTE4OSwyMyksQj1qKEIsVyxaLFgsTFs5XSwzNjU0NjAyODA5LDQpLFg9aihYLEIsVyxaLExbMTJdLDM4NzMxNTE0NjEsMTEpLFo9aihaLFgsQixXLExbMTVdLDUzMDc0MjUyMCwxNiksQj1QKEIsVz1qKFcsWixYLEIsTFsyXSwzMjk5NjI4NjQ1LDIzKSxaLFgsTFswXSw0'@; put 'MDk2MzM2NDUyLDYpLFg9UChYLEIsVyxaLExbN10sMTEyNjg5MTQxNSwxMCksWj1QKFosWCxCLFcsTFsxNF0sMjg3ODYxMjM5MSwxNSksVz1QKFcsWixYLEIsTFs1XSw0MjM3NTMzMjQxLDIxKSxCPVAoQixXLFosWCxMWzEyXSwxNzAwNDg1NTcxLDYpLFg9UChYLEIsVyxaLExbM10sMjM5OTk4'@; put 'MDY5MCwxMCksWj1QKFosWCxCLFcsTFsxMF0sNDI5MzkxNTc3MywxNSksVz1QKFcsWixYLEIsTFsxXSwyMjQwMDQ0NDk3LDIxKSxCPVAoQixXLFosWCxMWzhdLDE4NzMzMTMzNTksNiksWD1QKFgsQixXLFosTFsxNV0sNDI2NDM1NTU1MiwxMCksWj1QKFosWCxCLFcsTFs2XSwyNzM0NzY4OTE2'@; put 'LDE1KSxXPVAoVyxaLFgsQixMWzEzXSwxMzA5MTUxNjQ5LDIxKSxCPVAoQixXLFosWCxMWzRdLDQxNDk0NDQyMjYsNiksWD1QKFgsQixXLFosTFsxMV0sMzE3NDc1NjkxNywxMCksWj1QKFosWCxCLFcsTFsyXSw3MTg3ODcyNTksMTUpLFc9UChXLFosWCxCLExbOV0sMzk1MTQ4MTc0NSwyMSks'@; put 'dGhpcy5fYT10aGlzLl9hK0J8MCx0aGlzLl9iPXRoaXMuX2IrV3wwLHRoaXMuX2M9dGhpcy5fYytafDAsdGhpcy5fZD10aGlzLl9kK1h8MH0sdy5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbigpe3RoaXMuX2Jsb2NrW3RoaXMuX2Jsb2NrT2Zmc2V0KytdPTEyOCx0aGlzLl9ibG9ja09mZnNl'@; put 'dD41NiYmKHRoaXMuX2Jsb2NrLmZpbGwoMCx0aGlzLl9ibG9ja09mZnNldCw2NCksdGhpcy5fdXBkYXRlKCksdGhpcy5fYmxvY2tPZmZzZXQ9MCksdGhpcy5fYmxvY2suZmlsbCgwLHRoaXMuX2Jsb2NrT2Zmc2V0LDU2KSx0aGlzLl9ibG9jay53cml0ZVVJbnQzMkxFKHRoaXMuX2xlbmd0aFsw'@; put 'XSw1NiksdGhpcy5fYmxvY2sud3JpdGVVSW50MzJMRSh0aGlzLl9sZW5ndGhbMV0sNjApLHRoaXMuX3VwZGF0ZSgpO3ZhciBMPXAuYWxsb2NVbnNhZmUoMTYpO3JldHVybiBMLndyaXRlSW50MzJMRSh0aGlzLl9hLDApLEwud3JpdGVJbnQzMkxFKHRoaXMuX2IsNCksTC53cml0ZUludDMyTEUo'@; put 'dGhpcy5fYyw4KSxMLndyaXRlSW50MzJMRSh0aGlzLl9kLDEyKSxMfSxjZS5leHBvcnRzPXd9LDMwNDc6KGNlLEosYik9Pnt2YXIgRD1iKDYyNDApLF89Yig5OTMxKTtmdW5jdGlvbiBwKE4pe3RoaXMucmFuZD1OfHxuZXcgXy5SYW5kfWNlLmV4cG9ydHM9cCxwLmNyZWF0ZT1mdW5jdGlvbih3'@; put 'KXtyZXR1cm4gbmV3IHAodyl9LHAucHJvdG90eXBlLl9yYW5kYmVsb3c9ZnVuY3Rpb24odyl7dmFyIEY9dy5iaXRMZW5ndGgoKSxIPU1hdGguY2VpbChGLzgpO2Rve3ZhciBSPW5ldyBEKHRoaXMucmFuZC5nZW5lcmF0ZShIKSl9d2hpbGUoUi5jbXAodyk+PTApO3JldHVybiBSfSxwLnByb3Rv'@; put 'dHlwZS5fcmFuZHJhbmdlPWZ1bmN0aW9uKHcsRil7dmFyIEg9Ri5zdWIodyk7cmV0dXJuIHcuYWRkKHRoaXMuX3JhbmRiZWxvdyhIKSl9LHAucHJvdG90eXBlLnRlc3Q9ZnVuY3Rpb24odyxGLEgpe3ZhciBSPXcuYml0TGVuZ3RoKCksaj1ELm1vbnQodyksUD1uZXcgRCgxKS50b1JlZChqKTtG'@; put 'fHwoRj1NYXRoLm1heCgxLFIvNDh8MCkpO2Zvcih2YXIgTD13LnN1Ym4oMSksWT0wOyFMLnRlc3RuKFkpO1krKyk7Zm9yKHZhciBCPXcuc2hybihZKSxXPUwudG9SZWQoaik7Rj4wO0YtLSl7dmFyIFg9dGhpcy5fcmFuZHJhbmdlKG5ldyBEKDIpLEwpO0gmJkgoWCk7dmFyIFE9WC50b1JlZChq'@; put 'KS5yZWRQb3coQik7aWYoMCE9PVEuY21wKFApJiYwIT09US5jbXAoVykpe2Zvcih2YXIgcT0xO3E8WTtxKyspe2lmKDA9PT0oUT1RLnJlZFNxcigpKS5jbXAoUCkpcmV0dXJuITE7aWYoMD09PVEuY21wKFcpKWJyZWFrfWlmKHE9PT1ZKXJldHVybiExfX1yZXR1cm4hMH0scC5wcm90b3R5cGUu'@; put 'Z2V0RGl2aXNvcj1mdW5jdGlvbih3LEYpe3ZhciBIPXcuYml0TGVuZ3RoKCksUj1ELm1vbnQodyksaj1uZXcgRCgxKS50b1JlZChSKTtGfHwoRj1NYXRoLm1heCgxLEgvNDh8MCkpO2Zvcih2YXIgUD13LnN1Ym4oMSksTD0wOyFQLnRlc3RuKEwpO0wrKyk7Zm9yKHZhciBZPXcuc2hybihMKSxC'@; put 'PVAudG9SZWQoUik7Rj4wO0YtLSl7dmFyIFc9dGhpcy5fcmFuZHJhbmdlKG5ldyBEKDIpLFApLFo9dy5nY2QoVyk7aWYoMCE9PVouY21wbigxKSlyZXR1cm4gWjt2YXIgWD1XLnRvUmVkKFIpLnJlZFBvdyhZKTtpZigwIT09WC5jbXAoaikmJjAhPT1YLmNtcChCKSl7Zm9yKHZhciBRPTE7UTxM'@; put 'O1ErKyl7aWYoMD09PShYPVgucmVkU3FyKCkpLmNtcChqKSlyZXR1cm4gWC5mcm9tUmVkKCkuc3VibigxKS5nY2Qodyk7aWYoMD09PVguY21wKEIpKWJyZWFrfWlmKFE9PT1MKXJldHVybihYPVgucmVkU3FyKCkpLmZyb21SZWQoKS5zdWJuKDEpLmdjZCh3KX19cmV0dXJuITF9fSw2MjQwOmZ1'@; put 'bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQsXyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHAoeixnKXtpZigheil0aHJvdyBuZXcgRXJyb3IoZ3x8IkFzc2VydGlvbiBmYWlsZWQiKX1mdW5jdGlvbiBOKHosZyl7ei5zdXBlcl89Zzt2YXIgeT1mdW5jdGlvbigpe307eS5wcm90b3R5cGU9Zy5w'@; put 'cm90b3R5cGUsei5wcm90b3R5cGU9bmV3IHksei5wcm90b3R5cGUuY29uc3RydWN0b3I9en1mdW5jdGlvbiB3KHosZyx5KXtpZih3LmlzQk4oeikpcmV0dXJuIHo7dGhpcy5uZWdhdGl2ZT0wLHRoaXMud29yZHM9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMucmVkPW51bGwsbnVsbCE9PXomJigo'@; put 'ImxlIj09PWd8fCJiZSI9PT1nKSYmKHk9ZyxnPTEwKSx0aGlzLl9pbml0KHp8fDAsZ3x8MTAseXx8ImJlIikpfXZhciBGOyJvYmplY3QiPT10eXBlb2YgRD9ELmV4cG9ydHM9dzpfLkJOPXcsdy5CTj13LHcud29yZFNpemU9MjY7dHJ5e0Y9dHlwZW9mIHdpbmRvdzwidSImJnR5cGVvZiB3aW5k'@; put 'b3cuQnVmZmVyPCJ1Ij93aW5kb3cuQnVmZmVyOmIoNjYxOSkuQnVmZmVyfWNhdGNoe31mdW5jdGlvbiBIKHosZyl7dmFyIHk9ei5jaGFyQ29kZUF0KGcpO3JldHVybiB5Pj02NSYmeTw9NzA/eS01NTp5Pj05NyYmeTw9MTAyP3ktODc6eS00OCYxNX1mdW5jdGlvbiBSKHosZyx5KXt2YXIgeD1I'@; put 'KHoseSk7cmV0dXJuIHktMT49ZyYmKHh8PUgoeix5LTEpPDw0KSx4fWZ1bmN0aW9uIGooeixnLHkseCl7Zm9yKHZhciBDPTAsVD1NYXRoLm1pbih6Lmxlbmd0aCx5KSxWPWc7VjxUO1YrKyl7dmFyIFU9ei5jaGFyQ29kZUF0KFYpLTQ4O0MqPXgsQys9VT49NDk/VS00OSsxMDpVPj0xNz9VLTE3'@; put 'KzEwOlV9cmV0dXJuIEN9dy5pc0JOPWZ1bmN0aW9uKGcpe3JldHVybiBnIGluc3RhbmNlb2Ygd3x8bnVsbCE9PWcmJiJvYmplY3QiPT10eXBlb2YgZyYmZy5jb25zdHJ1Y3Rvci53b3JkU2l6ZT09PXcud29yZFNpemUmJkFycmF5LmlzQXJyYXkoZy53b3Jkcyl9LHcubWF4PWZ1bmN0aW9uKGcs'@; put 'eSl7cmV0dXJuIGcuY21wKHkpPjA/Zzp5fSx3Lm1pbj1mdW5jdGlvbihnLHkpe3JldHVybiBnLmNtcCh5KTwwP2c6eX0sdy5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oZyx5LHgpe2lmKCJudW1iZXIiPT10eXBlb2YgZylyZXR1cm4gdGhpcy5faW5pdE51bWJlcihnLHkseCk7aWYoIm9iamVj'@; put 'dCI9PXR5cGVvZiBnKXJldHVybiB0aGlzLl9pbml0QXJyYXkoZyx5LHgpOyJoZXgiPT09eSYmKHk9MTYpLHAoeT09PSgwfHkpJiZ5Pj0yJiZ5PD0zNik7dmFyIEM9MDsiLSI9PT0oZz1nLnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpKVswXSYmKEMrKyx0aGlzLm5lZ2F0aXZlPTEpLEM8'@; put 'Zy5sZW5ndGgmJigxNj09PXk/dGhpcy5fcGFyc2VIZXgoZyxDLHgpOih0aGlzLl9wYXJzZUJhc2UoZyx5LEMpLCJsZSI9PT14JiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCkseSx4KSkpfSx3LnByb3RvdHlwZS5faW5pdE51bWJlcj1mdW5jdGlvbihnLHkseCl7ZzwwJiYodGhpcy5u'@; put 'ZWdhdGl2ZT0xLGc9LWcpLGc8NjcxMDg4NjQ/KHRoaXMud29yZHM9WzY3MTA4ODYzJmddLHRoaXMubGVuZ3RoPTEpOmc8NDUwMzU5OTYyNzM3MDQ5Nj8odGhpcy53b3Jkcz1bNjcxMDg4NjMmZyxnLzY3MTA4ODY0JjY3MTA4ODYzXSx0aGlzLmxlbmd0aD0yKToocChnPDkwMDcxOTkyNTQ3NDA5'@; put 'OTIpLHRoaXMud29yZHM9WzY3MTA4ODYzJmcsZy82NzEwODg2NCY2NzEwODg2MywxXSx0aGlzLmxlbmd0aD0zKSwibGUiPT09eCYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLHkseCl9LHcucHJvdG90eXBlLl9pbml0QXJyYXk9ZnVuY3Rpb24oZyx5LHgpe2lmKHAoIm51bWJlciI9'@; put 'PXR5cGVvZiBnLmxlbmd0aCksZy5sZW5ndGg8PTApcmV0dXJuIHRoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTEsdGhpczt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoZy5sZW5ndGgvMyksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgQz0wO0M8dGhpcy5sZW5ndGg7'@; put 'QysrKXRoaXMud29yZHNbQ109MDt2YXIgVCxWLFU9MDtpZigiYmUiPT09eClmb3IoQz1nLmxlbmd0aC0xLFQ9MDtDPj0wO0MtPTMpdGhpcy53b3Jkc1tUXXw9KFY9Z1tDXXxnW0MtMV08PDh8Z1tDLTJdPDwxNik8PFUmNjcxMDg4NjMsdGhpcy53b3Jkc1tUKzFdPVY+Pj4yNi1VJjY3MTA4ODYz'@; put 'LChVKz0yNCk+PTI2JiYoVS09MjYsVCsrKTtlbHNlIGlmKCJsZSI9PT14KWZvcihDPTAsVD0wO0M8Zy5sZW5ndGg7Qys9Myl0aGlzLndvcmRzW1RdfD0oVj1nW0NdfGdbQysxXTw8OHxnW0MrMl08PDE2KTw8VSY2NzEwODg2Myx0aGlzLndvcmRzW1QrMV09Vj4+PjI2LVUmNjcxMDg4NjMsKFUr'@; put 'PTI0KT49MjYmJihVLT0yNixUKyspO3JldHVybiB0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLl9wYXJzZUhleD1mdW5jdGlvbihnLHkseCl7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKChnLmxlbmd0aC15KS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBDPTA7'@; put 'Qzx0aGlzLmxlbmd0aDtDKyspdGhpcy53b3Jkc1tDXT0wO3ZhciBVLFQ9MCxWPTA7aWYoImJlIj09PXgpZm9yKEM9Zy5sZW5ndGgtMTtDPj15O0MtPTIpVT1SKGcseSxDKTw8VCx0aGlzLndvcmRzW1ZdfD02NzEwODg2MyZVLFQ+PTE4PyhULT0xOCx0aGlzLndvcmRzW1YrPTFdfD1VPj4+MjYp'@; put 'OlQrPTg7ZWxzZSBmb3IoQz0oZy5sZW5ndGgteSklMj09MD95KzE6eTtDPGcubGVuZ3RoO0MrPTIpVT1SKGcseSxDKTw8VCx0aGlzLndvcmRzW1ZdfD02NzEwODg2MyZVLFQ+PTE4PyhULT0xOCx0aGlzLndvcmRzW1YrPTFdfD1VPj4+MjYpOlQrPTg7dGhpcy5zdHJpcCgpfSx3LnByb3RvdHlw'@; put 'ZS5fcGFyc2VCYXNlPWZ1bmN0aW9uKGcseSx4KXt0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xO2Zvcih2YXIgQz0wLFQ9MTtUPD02NzEwODg2MztUKj15KUMrKztDLS0sVD1UL3l8MDtmb3IodmFyIFY9Zy5sZW5ndGgteCxVPVYlQyxFPU1hdGgubWluKFYsVi1VKSt4LG09MCxBPXg7QTxF'@; put 'O0ErPUMpbT1qKGcsQSxBK0MseSksdGhpcy5pbXVsbihUKSx0aGlzLndvcmRzWzBdK208NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9bTp0aGlzLl9pYWRkbihtKTtpZigwIT09VSl7dmFyIGFlPTE7Zm9yKG09aihnLEEsZy5sZW5ndGgseSksQT0wO0E8VTtBKyspYWUqPXk7dGhpcy5pbXVsbihh'@; put 'ZSksdGhpcy53b3Jkc1swXSttPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPW06dGhpcy5faWFkZG4obSl9dGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKGcpe2cud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHk9MDt5PHRoaXMubGVuZ3RoO3krKyln'@; put 'LndvcmRzW3ldPXRoaXMud29yZHNbeV07Zy5sZW5ndGg9dGhpcy5sZW5ndGgsZy5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLGcucmVkPXRoaXMucmVkfSx3LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciBnPW5ldyB3KG51bGwpO3JldHVybiB0aGlzLmNvcHkoZyksZ30sdy5wcm90b3R5'@; put 'cGUuX2V4cGFuZD1mdW5jdGlvbihnKXtmb3IoO3RoaXMubGVuZ3RoPGc7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4gdGhpc30sdy5wcm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdOyl0'@; put 'aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSx3LnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sdy5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlv'@; put 'bigpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgUD1bIiIsIjAiLCIwMCIsIjAwMCIsIjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAiLCIwMDAwMDAwMCIsIjAwMDAwMDAwMCIsIjAwMDAwMDAwMDAiLCIwMDAwMDAw'@; put 'MDAwMCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAw'@; put 'MDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXSxMPVswLDAsMjUsMTYsMTIsMTEsMTAs'@; put 'OSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLFk9WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3'@; put 'NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQzMiwz'@; put 'OTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07ZnVuY3Rpb24gVyh6LGcseSl7eS5uZWdhdGl2ZT1nLm5lZ2F0aXZlXnoubmVnYXRpdmU7dmFyIHg9ei5sZW5ndGgrZy5sZW5ndGh8MDt5Lmxlbmd0aD14LHg9eC0xfDA7dmFyIEM9MHx6LndvcmRzWzBdLFQ9MHxnLndvcmRzWzBd'@; put 'LFY9QypULEU9Vi82NzEwODg2NHwwO3kud29yZHNbMF09NjcxMDg4NjMmVjtmb3IodmFyIG09MTttPHg7bSsrKXtmb3IodmFyIEE9RT4+PjI2LGFlPTY3MTA4ODYzJkUsbmU9TWF0aC5taW4obSxnLmxlbmd0aC0xKSxsZT1NYXRoLm1heCgwLG0tei5sZW5ndGgrMSk7bGU8PW5lO2xlKyspQSs9'@; put 'KFY9KEM9MHx6LndvcmRzW20tbGV8MF0pKihUPTB8Zy53b3Jkc1tsZV0pK2FlKS82NzEwODg2NHwwLGFlPTY3MTA4ODYzJlY7eS53b3Jkc1ttXT0wfGFlLEU9MHxBfXJldHVybiAwIT09RT95LndvcmRzW21dPTB8RTp5Lmxlbmd0aC0tLHkuc3RyaXAoKX13LnByb3RvdHlwZS50b1N0cmluZz1m'@; put 'dW5jdGlvbihnLHkpe3ZhciB4O2lmKHk9MHx5fHwxLDE2PT09KGc9Z3x8MTApfHwiaGV4Ij09PWcpe3g9IiI7Zm9yKHZhciBDPTAsVD0wLFY9MDtWPHRoaXMubGVuZ3RoO1YrKyl7dmFyIFU9dGhpcy53b3Jkc1tWXSxFPSgxNjc3NzIxNSYoVTw8Q3xUKSkudG9TdHJpbmcoMTYpO1Q9VT4+PjI0'@; put 'LUMmMTY3NzcyMTUsKEMrPTIpPj0yNiYmKEMtPTI2LFYtLSkseD0wIT09VHx8ViE9PXRoaXMubGVuZ3RoLTE/UFs2LUUubGVuZ3RoXStFK3g6RSt4fWZvcigwIT09VCYmKHg9VC50b1N0cmluZygxNikreCk7eC5sZW5ndGgleSE9MDspeD0iMCIreDtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUm'@; put 'Jih4PSItIit4KSx4fWlmKGc9PT0oMHxnKSYmZz49MiYmZzw9MzYpe3ZhciBtPUxbZ10sQT1ZW2ddO3g9IiI7dmFyIGFlPXRoaXMuY2xvbmUoKTtmb3IoYWUubmVnYXRpdmU9MDshYWUuaXNaZXJvKCk7KXt2YXIgbmU9YWUubW9kbihBKS50b1N0cmluZyhnKTt4PShhZT1hZS5pZGl2bihBKSku'@; put 'aXNaZXJvKCk/bmUreDpQW20tbmUubGVuZ3RoXStuZSt4fWZvcih0aGlzLmlzWmVybygpJiYoeD0iMCIreCk7eC5sZW5ndGgleSE9MDspeD0iMCIreDtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJih4PSItIit4KSx4fXAoITEsIkJhc2Ugc2hvdWxkIGJlIGJldHdlZW4gMiBhbmQgMzYiKX0s'@; put 'dy5wcm90b3R5cGUudG9OdW1iZXI9ZnVuY3Rpb24oKXt2YXIgZz10aGlzLndvcmRzWzBdO3JldHVybiAyPT09dGhpcy5sZW5ndGg/Zys9NjcxMDg4NjQqdGhpcy53b3Jkc1sxXTozPT09dGhpcy5sZW5ndGgmJjE9PT10aGlzLndvcmRzWzJdP2crPTQ1MDM1OTk2MjczNzA0OTYrNjcxMDg4NjQq'@; put 'dGhpcy53b3Jkc1sxXTp0aGlzLmxlbmd0aD4yJiZwKCExLCJOdW1iZXIgY2FuIG9ubHkgc2FmZWx5IHN0b3JlIHVwIHRvIDUzIGJpdHMiKSwwIT09dGhpcy5uZWdhdGl2ZT8tZzpnfSx3LnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygxNil9LHcucHJv'@; put 'dG90eXBlLnRvQnVmZmVyPWZ1bmN0aW9uKGcseSl7cmV0dXJuIHAodHlwZW9mIEY8InUiKSx0aGlzLnRvQXJyYXlMaWtlKEYsZyx5KX0sdy5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbihnLHkpe3JldHVybiB0aGlzLnRvQXJyYXlMaWtlKEFycmF5LGcseSl9LHcucHJvdG90eXBlLnRvQXJy'@; put 'YXlMaWtlPWZ1bmN0aW9uKGcseSx4KXt2YXIgQz10aGlzLmJ5dGVMZW5ndGgoKSxUPXh8fE1hdGgubWF4KDEsQyk7cChDPD1ULCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIikscChUPjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpLHRoaXMuc3RyaXAoKTt2'@; put 'YXIgRSxtLFY9ImxlIj09PXksVT1uZXcgZyhUKSxBPXRoaXMuY2xvbmUoKTtpZihWKXtmb3IobT0wOyFBLmlzWmVybygpO20rKylFPUEuYW5kbG4oMjU1KSxBLml1c2hybig4KSxVW21dPUU7Zm9yKDttPFQ7bSsrKVVbbV09MH1lbHNle2ZvcihtPTA7bTxULUM7bSsrKVVbbV09MDtmb3IobT0w'@; put 'OyFBLmlzWmVybygpO20rKylFPUEuYW5kbG4oMjU1KSxBLml1c2hybig4KSxVW1QtbS0xXT1FfXJldHVybiBVfSx3LnByb3RvdHlwZS5fY291bnRCaXRzPU1hdGguY2x6MzI/ZnVuY3Rpb24oZyl7cmV0dXJuIDMyLU1hdGguY2x6MzIoZyl9OmZ1bmN0aW9uKGcpe3ZhciB5PWcseD0wO3JldHVy'@; put 'biB5Pj00MDk2JiYoeCs9MTMseT4+Pj0xMykseT49NjQmJih4Kz03LHk+Pj49NykseT49OCYmKHgrPTQseT4+Pj00KSx5Pj0yJiYoeCs9Mix5Pj4+PTIpLHgreX0sdy5wcm90b3R5cGUuX3plcm9CaXRzPWZ1bmN0aW9uKGcpe2lmKDA9PT1nKXJldHVybiAyNjt2YXIgeT1nLHg9MDtyZXR1cm4g'@; put 'ODE5MSZ5fHwoeCs9MTMseT4+Pj0xMyksMTI3Jnl8fCh4Kz03LHk+Pj49NyksMTUmeXx8KHgrPTQseT4+Pj00KSwzJnl8fCh4Kz0yLHk+Pj49MiksMSZ5fHx4KysseH0sdy5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5fY291bnRCaXRzKHRoaXMud29yZHNbdGhp'@; put 'cy5sZW5ndGgtMV0pO3JldHVybiAyNioodGhpcy5sZW5ndGgtMSkreX0sdy5wcm90b3R5cGUuemVyb0JpdHM9ZnVuY3Rpb24oKXtpZih0aGlzLmlzWmVybygpKXJldHVybiAwO2Zvcih2YXIgZz0wLHk9MDt5PHRoaXMubGVuZ3RoO3krKyl7dmFyIHg9dGhpcy5femVyb0JpdHModGhpcy53b3Jk'@; put 'c1t5XSk7aWYoZys9eCwyNiE9PXgpYnJlYWt9cmV0dXJuIGd9LHcucHJvdG90eXBlLmJ5dGVMZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5jZWlsKHRoaXMuYml0TGVuZ3RoKCkvOCl9LHcucHJvdG90eXBlLnRvVHdvcz1mdW5jdGlvbihnKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/'@; put 'dGhpcy5hYnMoKS5pbm90bihnKS5pYWRkbigxKTp0aGlzLmNsb25lKCl9LHcucHJvdG90eXBlLmZyb21Ud29zPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLnRlc3RuKGctMSk/dGhpcy5ub3RuKGcpLmlhZGRuKDEpLmluZWcoKTp0aGlzLmNsb25lKCl9LHcucHJvdG90eXBlLmlzTmVnPWZ1bmN0'@; put 'aW9uKCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlfSx3LnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmluZWcoKX0sdy5wcm90b3R5cGUuaW5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzWmVybygpfHwodGhpcy5uZWdhdGl2ZV49MSksdGhpc30sdy5w'@; put 'cm90b3R5cGUuaXVvcj1mdW5jdGlvbihnKXtmb3IoO3RoaXMubGVuZ3RoPGcubGVuZ3RoOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7Zm9yKHZhciB5PTA7eTxnLmxlbmd0aDt5KyspdGhpcy53b3Jkc1t5XT10aGlzLndvcmRzW3ldfGcud29yZHNbeV07cmV0dXJuIHRoaXMuc3RyaXAo'@; put 'KX0sdy5wcm90b3R5cGUuaW9yPWZ1bmN0aW9uKGcpe3JldHVybiBwKCEodGhpcy5uZWdhdGl2ZXxnLm5lZ2F0aXZlKSksdGhpcy5pdW9yKGcpfSx3LnByb3RvdHlwZS5vcj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLmlvcihnKTpnLmNsb25l'@; put 'KCkuaW9yKHRoaXMpfSx3LnByb3RvdHlwZS51b3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdW9yKGcpOmcuY2xvbmUoKS5pdW9yKHRoaXMpfSx3LnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbihnKXt2YXIgeTt5PXRoaXMubGVuZ3RoPmcu'@; put 'bGVuZ3RoP2c6dGhpcztmb3IodmFyIHg9MDt4PHkubGVuZ3RoO3grKyl0aGlzLndvcmRzW3hdPXRoaXMud29yZHNbeF0mZy53b3Jkc1t4XTtyZXR1cm4gdGhpcy5sZW5ndGg9eS5sZW5ndGgsdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKGcpe3JldHVybiBwKCEodGhp'@; put 'cy5uZWdhdGl2ZXxnLm5lZ2F0aXZlKSksdGhpcy5pdWFuZChnKX0sdy5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZChnKTpnLmNsb25lKCkuaWFuZCh0aGlzKX0sdy5wcm90b3R5cGUudWFuZD1mdW5jdGlvbihn'@; put 'KXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLml1YW5kKGcpOmcuY2xvbmUoKS5pdWFuZCh0aGlzKX0sdy5wcm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24oZyl7dmFyIHkseDt0aGlzLmxlbmd0aD5nLmxlbmd0aD8oeT10aGlzLHg9Zyk6KHk9Zyx4PXRoaXMpO2Zvcih2'@; put 'YXIgQz0wO0M8eC5sZW5ndGg7QysrKXRoaXMud29yZHNbQ109eS53b3Jkc1tDXV54LndvcmRzW0NdO2lmKHRoaXMhPT15KWZvcig7Qzx5Lmxlbmd0aDtDKyspdGhpcy53b3Jkc1tDXT15LndvcmRzW0NdO3JldHVybiB0aGlzLmxlbmd0aD15Lmxlbmd0aCx0aGlzLnN0cmlwKCl9LHcucHJvdG90'@; put 'eXBlLml4b3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHAoISh0aGlzLm5lZ2F0aXZlfGcubmVnYXRpdmUpKSx0aGlzLml1eG9yKGcpfSx3LnByb3RvdHlwZS54b3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5peG9yKGcpOmcuY2xvbmUoKS5peG9y'@; put 'KHRoaXMpfSx3LnByb3RvdHlwZS51eG9yPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaXV4b3IoZyk6Zy5jbG9uZSgpLml1eG9yKHRoaXMpfSx3LnByb3RvdHlwZS5pbm90bj1mdW5jdGlvbihnKXtwKCJudW1iZXIiPT10eXBlb2YgZyYmZz49'@; put 'MCk7dmFyIHk9MHxNYXRoLmNlaWwoZy8yNikseD1nJTI2O3RoaXMuX2V4cGFuZCh5KSx4PjAmJnktLTtmb3IodmFyIEM9MDtDPHk7QysrKXRoaXMud29yZHNbQ109NjcxMDg4NjMmfnRoaXMud29yZHNbQ107cmV0dXJuIHg+MCYmKHRoaXMud29yZHNbQ109fnRoaXMud29yZHNbQ10mNjcxMDg4'@; put 'NjM+PjI2LXgpLHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUubm90bj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlub3RuKGcpfSx3LnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uKGcseSl7cCgibnVtYmVyIj09dHlwZW9mIGcmJmc+PTApO3ZhciB4PWcvMjZ8MCxDPWclMjY7cmV0'@; put 'dXJuIHRoaXMuX2V4cGFuZCh4KzEpLHRoaXMud29yZHNbeF09eT90aGlzLndvcmRzW3hdfDE8PEM6dGhpcy53b3Jkc1t4XSZ+KDE8PEMpLHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbihnKXt2YXIgeSx4LEM7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1nLm5lZ2F0'@; put 'aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAseT10aGlzLmlzdWIoZyksdGhpcy5uZWdhdGl2ZV49MSx0aGlzLl9ub3JtU2lnbigpO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Zy5uZWdhdGl2ZSlyZXR1cm4gZy5uZWdhdGl2ZT0wLHk9dGhpcy5pc3ViKGcpLGcubmVnYXRpdmU9MSx5Ll9u'@; put 'b3JtU2lnbigpO3RoaXMubGVuZ3RoPmcubGVuZ3RoPyh4PXRoaXMsQz1nKTooeD1nLEM9dGhpcyk7Zm9yKHZhciBUPTAsVj0wO1Y8Qy5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09NjcxMDg4NjMmKHk9KDB8eC53b3Jkc1tWXSkrKDB8Qy53b3Jkc1tWXSkrVCksVD15Pj4+MjY7Zm9yKDswIT09'@; put 'VCYmVjx4Lmxlbmd0aDtWKyspdGhpcy53b3Jkc1tWXT02NzEwODg2MyYoeT0oMHx4LndvcmRzW1ZdKStUKSxUPXk+Pj4yNjtpZih0aGlzLmxlbmd0aD14Lmxlbmd0aCwwIT09VCl0aGlzLndvcmRzW3RoaXMubGVuZ3RoXT1ULHRoaXMubGVuZ3RoKys7ZWxzZSBpZih4IT09dGhpcylmb3IoO1Y8'@; put 'eC5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09eC53b3Jkc1tWXTtyZXR1cm4gdGhpc30sdy5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGcpe3ZhciB5O3JldHVybiAwIT09Zy5uZWdhdGl2ZSYmMD09PXRoaXMubmVnYXRpdmU/KGcubmVnYXRpdmU9MCx5PXRoaXMuc3ViKGcpLGcubmVnYXRpdmVe'@; put 'PTEseSk6MD09PWcubmVnYXRpdmUmJjAhPT10aGlzLm5lZ2F0aXZlPyh0aGlzLm5lZ2F0aXZlPTAseT1nLnN1Yih0aGlzKSx0aGlzLm5lZ2F0aXZlPTEseSk6dGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhZGQoZyk6Zy5jbG9uZSgpLmlhZGQodGhpcyl9LHcucHJvdG90eXBl'@; put 'LmlzdWI9ZnVuY3Rpb24oZyl7aWYoMCE9PWcubmVnYXRpdmUpe2cubmVnYXRpdmU9MDt2YXIgeT10aGlzLmlhZGQoZyk7cmV0dXJuIGcubmVnYXRpdmU9MSx5Ll9ub3JtU2lnbigpfWlmKDAhPT10aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkKGcpLHRoaXMu'@; put 'bmVnYXRpdmU9MSx0aGlzLl9ub3JtU2lnbigpO3ZhciBDLFQseD10aGlzLmNtcChnKTtpZigwPT09eClyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMubGVuZ3RoPTEsdGhpcy53b3Jkc1swXT0wLHRoaXM7eD4wPyhDPXRoaXMsVD1nKTooQz1nLFQ9dGhpcyk7Zm9yKHZhciBWPTAsVT0wO1U8'@; put 'VC5sZW5ndGg7VSsrKVY9KHk9KDB8Qy53b3Jkc1tVXSktKDB8VC53b3Jkc1tVXSkrVik+PjI2LHRoaXMud29yZHNbVV09NjcxMDg4NjMmeTtmb3IoOzAhPT1WJiZVPEMubGVuZ3RoO1UrKylWPSh5PSgwfEMud29yZHNbVV0pK1YpPj4yNix0aGlzLndvcmRzW1VdPTY3MTA4ODYzJnk7aWYoMD09'@; put 'PVYmJlU8Qy5sZW5ndGgmJkMhPT10aGlzKWZvcig7VTxDLmxlbmd0aDtVKyspdGhpcy53b3Jkc1tVXT1DLndvcmRzW1VdO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxVKSxDIT09dGhpcyYmKHRoaXMubmVnYXRpdmU9MSksdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlw'@; put 'ZS5zdWI9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKGcpfTt2YXIgWj1mdW5jdGlvbihnLHkseCl7dmFyIEUsbSxBLEM9Zy53b3JkcyxUPXkud29yZHMsVj14LndvcmRzLFU9MCxhZT0wfENbMF0sbmU9ODE5MSZhZSxsZT1hZT4+PjEzLHdlPTB8Q1sxXSxaZT04MTkxJndl'@; put 'LFFlPXdlPj4+MTMsYXQ9MHxDWzJdLHhlPTgxOTEmYXQsdmU9YXQ+Pj4xMyxxZT0wfENbM10samU9ODE5MSZxZSxBZT1xZT4+PjEzLEZlPTB8Q1s0XSxSZT04MTkxJkZlLEllPUZlPj4+MTMsSGU9MHxDWzVdLERlPTgxOTEmSGUsa2U9SGU+Pj4xMyxfdD0wfENbNl0sbnQ9ODE5MSZfdCxKZT1f'@; put 'dD4+PjEzLG9uPTB8Q1s3XSx5dD04MTkxJm9uLE10PW9uPj4+MTMsSXQ9MHxDWzhdLHJ0PTgxOTEmSXQsS2U9SXQ+Pj4xMyx0dD0wfENbOV0sTmU9ODE5MSZ0dCx1dD10dD4+PjEzLEp0PTB8VFswXSxMdD04MTkxJkp0LFB0PUp0Pj4+MTMsb2k9MHxUWzFdLGVuPTgxOTEmb2ksc249b2k+Pj4x'@; put 'MyxJaT0wfFRbMl0sZG49ODE5MSZJaSxmdD1JaT4+PjEzLEZyPTB8VFszXSxadD04MTkxJkZyLGt0PUZyPj4+MTMsTG49MHxUWzRdLG90PTgxOTEmTG4senQ9TG4+Pj4xMyxuaT0wfFRbNV0sV2U9ODE5MSZuaSxBdD1uaT4+PjEzLGlyPTB8VFs2XSxodD04MTkxJmlyLEV0PWlyPj4+MTMsem49'@; put 'MHxUWzddLGFuPTgxOTEmem4sanQ9em4+Pj4xMyxkaT0wfFRbOF0sY249ODE5MSZkaSxmbj1kaT4+PjEzLERpPTB8VFs5XSxRdD04MTkxJkRpLHRuPURpPj4+MTM7eC5uZWdhdGl2ZT1nLm5lZ2F0aXZlXnkubmVnYXRpdmUseC5sZW5ndGg9MTk7dmFyIGNhPShVKyhFPU1hdGguaW11bChuZSxM'@; put 'dCkpfDApKygoODE5MSYobT0obT1NYXRoLmltdWwobmUsUHQpKStNYXRoLmltdWwobGUsTHQpfDApKTw8MTMpfDA7VT0oKEE9TWF0aC5pbXVsKGxlLFB0KSkrKG0+Pj4xMyl8MCkrKGNhPj4+MjYpfDAsY2EmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKFplLEx0KSxtPShtPU1hdGguaW11bChaZSxQ'@; put 'dCkpK01hdGguaW11bChRZSxMdCl8MCxBPU1hdGguaW11bChRZSxQdCk7dmFyIHhpPShVKyhFPUUrTWF0aC5pbXVsKG5lLGVuKXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsc24pfDApK01hdGguaW11bChsZSxlbil8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSxz'@; put 'bil8MCkrKG0+Pj4xMyl8MCkrKHhpPj4+MjYpfDAseGkmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKHhlLEx0KSxtPShtPU1hdGguaW11bCh4ZSxQdCkpK01hdGguaW11bCh2ZSxMdCl8MCxBPU1hdGguaW11bCh2ZSxQdCksRT1FK01hdGguaW11bChaZSxlbil8MCxtPShtPW0rTWF0aC5pbXVsKFpl'@; put 'LHNuKXwwKStNYXRoLmltdWwoUWUsZW4pfDAsQT1BK01hdGguaW11bChRZSxzbil8MDt2YXIgeXI9KFUrKEU9RStNYXRoLmltdWwobmUsZG4pfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSxmdCl8MCkrTWF0aC5pbXVsKGxlLGRuKXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5p'@; put 'bXVsKGxlLGZ0KXwwKSsobT4+PjEzKXwwKSsoeXI+Pj4yNil8MCx5ciY9NjcxMDg4NjMsRT1NYXRoLmltdWwoamUsTHQpLG09KG09TWF0aC5pbXVsKGplLFB0KSkrTWF0aC5pbXVsKEFlLEx0KXwwLEE9TWF0aC5pbXVsKEFlLFB0KSxFPUUrTWF0aC5pbXVsKHhlLGVuKXwwLG09KG09bStNYXRo'@; put 'LmltdWwoeGUsc24pfDApK01hdGguaW11bCh2ZSxlbil8MCxBPUErTWF0aC5pbXVsKHZlLHNuKXwwLEU9RStNYXRoLmltdWwoWmUsZG4pfDAsbT0obT1tK01hdGguaW11bChaZSxmdCl8MCkrTWF0aC5pbXVsKFFlLGRuKXwwLEE9QStNYXRoLmltdWwoUWUsZnQpfDA7dmFyIEduPShVKyhFPUUr'@; put 'TWF0aC5pbXVsKG5lLFp0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsa3QpfDApK01hdGguaW11bChsZSxadCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSxrdCl8MCkrKG0+Pj4xMyl8MCkrKEduPj4+MjYpfDAsR24mPTY3MTA4ODYzLEU9TWF0aC5pbXVsKFJl'@; put 'LEx0KSxtPShtPU1hdGguaW11bChSZSxQdCkpK01hdGguaW11bChJZSxMdCl8MCxBPU1hdGguaW11bChJZSxQdCksRT1FK01hdGguaW11bChqZSxlbil8MCxtPShtPW0rTWF0aC5pbXVsKGplLHNuKXwwKStNYXRoLmltdWwoQWUsZW4pfDAsQT1BK01hdGguaW11bChBZSxzbil8MCxFPUUrTWF0'@; put 'aC5pbXVsKHhlLGRuKXwwLG09KG09bStNYXRoLmltdWwoeGUsZnQpfDApK01hdGguaW11bCh2ZSxkbil8MCxBPUErTWF0aC5pbXVsKHZlLGZ0KXwwLEU9RStNYXRoLmltdWwoWmUsWnQpfDAsbT0obT1tK01hdGguaW11bChaZSxrdCl8MCkrTWF0aC5pbXVsKFFlLFp0KXwwLEE9QStNYXRoLmlt'@; put 'dWwoUWUsa3QpfDA7dmFyIEtpPShVKyhFPUUrTWF0aC5pbXVsKG5lLG90KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsenQpfDApK01hdGguaW11bChsZSxvdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSx6dCl8MCkrKG0+Pj4xMyl8MCkrKEtpPj4+MjYpfDAs'@; put 'S2kmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKERlLEx0KSxtPShtPU1hdGguaW11bChEZSxQdCkpK01hdGguaW11bChrZSxMdCl8MCxBPU1hdGguaW11bChrZSxQdCksRT1FK01hdGguaW11bChSZSxlbil8MCxtPShtPW0rTWF0aC5pbXVsKFJlLHNuKXwwKStNYXRoLmltdWwoSWUsZW4pfDAsQT1B'@; put 'K01hdGguaW11bChJZSxzbil8MCxFPUUrTWF0aC5pbXVsKGplLGRuKXwwLG09KG09bStNYXRoLmltdWwoamUsZnQpfDApK01hdGguaW11bChBZSxkbil8MCxBPUErTWF0aC5pbXVsKEFlLGZ0KXwwLEU9RStNYXRoLmltdWwoeGUsWnQpfDAsbT0obT1tK01hdGguaW11bCh4ZSxrdCl8MCkrTWF0'@; put 'aC5pbXVsKHZlLFp0KXwwLEE9QStNYXRoLmltdWwodmUsa3QpfDAsRT1FK01hdGguaW11bChaZSxvdCl8MCxtPShtPW0rTWF0aC5pbXVsKFplLHp0KXwwKStNYXRoLmltdWwoUWUsb3QpfDAsQT1BK01hdGguaW11bChRZSx6dCl8MDt2YXIgSnI9KFUrKEU9RStNYXRoLmltdWwobmUsV2UpfDAp'@; put 'fDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSxBdCl8MCkrTWF0aC5pbXVsKGxlLFdlKXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKGxlLEF0KXwwKSsobT4+PjEzKXwwKSsoSnI+Pj4yNil8MCxKciY9NjcxMDg4NjMsRT1NYXRoLmltdWwobnQsTHQpLG09KG09TWF0aC5pbXVs'@; put 'KG50LFB0KSkrTWF0aC5pbXVsKEplLEx0KXwwLEE9TWF0aC5pbXVsKEplLFB0KSxFPUUrTWF0aC5pbXVsKERlLGVuKXwwLG09KG09bStNYXRoLmltdWwoRGUsc24pfDApK01hdGguaW11bChrZSxlbil8MCxBPUErTWF0aC5pbXVsKGtlLHNuKXwwLEU9RStNYXRoLmltdWwoUmUsZG4pfDAsbT0o'@; put 'bT1tK01hdGguaW11bChSZSxmdCl8MCkrTWF0aC5pbXVsKEllLGRuKXwwLEE9QStNYXRoLmltdWwoSWUsZnQpfDAsRT1FK01hdGguaW11bChqZSxadCl8MCxtPShtPW0rTWF0aC5pbXVsKGplLGt0KXwwKStNYXRoLmltdWwoQWUsWnQpfDAsQT1BK01hdGguaW11bChBZSxrdCl8MCxFPUUrTWF0'@; put 'aC5pbXVsKHhlLG90KXwwLG09KG09bStNYXRoLmltdWwoeGUsenQpfDApK01hdGguaW11bCh2ZSxvdCl8MCxBPUErTWF0aC5pbXVsKHZlLHp0KXwwLEU9RStNYXRoLmltdWwoWmUsV2UpfDAsbT0obT1tK01hdGguaW11bChaZSxBdCl8MCkrTWF0aC5pbXVsKFFlLFdlKXwwLEE9QStNYXRoLmlt'@; put 'dWwoUWUsQXQpfDA7dmFyIFFyPShVKyhFPUUrTWF0aC5pbXVsKG5lLGh0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsRXQpfDApK01hdGguaW11bChsZSxodCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSxFdCl8MCkrKG0+Pj4xMyl8MCkrKFFyPj4+MjYpfDAs'@; put 'UXImPTY3MTA4ODYzLEU9TWF0aC5pbXVsKHl0LEx0KSxtPShtPU1hdGguaW11bCh5dCxQdCkpK01hdGguaW11bChNdCxMdCl8MCxBPU1hdGguaW11bChNdCxQdCksRT1FK01hdGguaW11bChudCxlbil8MCxtPShtPW0rTWF0aC5pbXVsKG50LHNuKXwwKStNYXRoLmltdWwoSmUsZW4pfDAsQT1B'@; put 'K01hdGguaW11bChKZSxzbil8MCxFPUUrTWF0aC5pbXVsKERlLGRuKXwwLG09KG09bStNYXRoLmltdWwoRGUsZnQpfDApK01hdGguaW11bChrZSxkbil8MCxBPUErTWF0aC5pbXVsKGtlLGZ0KXwwLEU9RStNYXRoLmltdWwoUmUsWnQpfDAsbT0obT1tK01hdGguaW11bChSZSxrdCl8MCkrTWF0'@; put 'aC5pbXVsKEllLFp0KXwwLEE9QStNYXRoLmltdWwoSWUsa3QpfDAsRT1FK01hdGguaW11bChqZSxvdCl8MCxtPShtPW0rTWF0aC5pbXVsKGplLHp0KXwwKStNYXRoLmltdWwoQWUsb3QpfDAsQT1BK01hdGguaW11bChBZSx6dCl8MCxFPUUrTWF0aC5pbXVsKHhlLFdlKXwwLG09KG09bStNYXRo'@; put 'LmltdWwoeGUsQXQpfDApK01hdGguaW11bCh2ZSxXZSl8MCxBPUErTWF0aC5pbXVsKHZlLEF0KXwwLEU9RStNYXRoLmltdWwoWmUsaHQpfDAsbT0obT1tK01hdGguaW11bChaZSxFdCl8MCkrTWF0aC5pbXVsKFFlLGh0KXwwLEE9QStNYXRoLmltdWwoUWUsRXQpfDA7dmFyIE5pPShVKyhFPUUr'@; put 'TWF0aC5pbXVsKG5lLGFuKXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsanQpfDApK01hdGguaW11bChsZSxhbil8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSxqdCl8MCkrKG0+Pj4xMyl8MCkrKE5pPj4+MjYpfDAsTmkmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKHJ0'@; put 'LEx0KSxtPShtPU1hdGguaW11bChydCxQdCkpK01hdGguaW11bChLZSxMdCl8MCxBPU1hdGguaW11bChLZSxQdCksRT1FK01hdGguaW11bCh5dCxlbil8MCxtPShtPW0rTWF0aC5pbXVsKHl0LHNuKXwwKStNYXRoLmltdWwoTXQsZW4pfDAsQT1BK01hdGguaW11bChNdCxzbil8MCxFPUUrTWF0'@; put 'aC5pbXVsKG50LGRuKXwwLG09KG09bStNYXRoLmltdWwobnQsZnQpfDApK01hdGguaW11bChKZSxkbil8MCxBPUErTWF0aC5pbXVsKEplLGZ0KXwwLEU9RStNYXRoLmltdWwoRGUsWnQpfDAsbT0obT1tK01hdGguaW11bChEZSxrdCl8MCkrTWF0aC5pbXVsKGtlLFp0KXwwLEE9QStNYXRoLmlt'@; put 'dWwoa2Usa3QpfDAsRT1FK01hdGguaW11bChSZSxvdCl8MCxtPShtPW0rTWF0aC5pbXVsKFJlLHp0KXwwKStNYXRoLmltdWwoSWUsb3QpfDAsQT1BK01hdGguaW11bChJZSx6dCl8MCxFPUUrTWF0aC5pbXVsKGplLFdlKXwwLG09KG09bStNYXRoLmltdWwoamUsQXQpfDApK01hdGguaW11bChB'@; put 'ZSxXZSl8MCxBPUErTWF0aC5pbXVsKEFlLEF0KXwwLEU9RStNYXRoLmltdWwoeGUsaHQpfDAsbT0obT1tK01hdGguaW11bCh4ZSxFdCl8MCkrTWF0aC5pbXVsKHZlLGh0KXwwLEE9QStNYXRoLmltdWwodmUsRXQpfDAsRT1FK01hdGguaW11bChaZSxhbil8MCxtPShtPW0rTWF0aC5pbXVsKFpl'@; put 'LGp0KXwwKStNYXRoLmltdWwoUWUsYW4pfDAsQT1BK01hdGguaW11bChRZSxqdCl8MDt2YXIgSGk9KFUrKEU9RStNYXRoLmltdWwobmUsY24pfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSxmbil8MCkrTWF0aC5pbXVsKGxlLGNuKXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5p'@; put 'bXVsKGxlLGZuKXwwKSsobT4+PjEzKXwwKSsoSGk+Pj4yNil8MCxIaSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsTHQpLG09KG09TWF0aC5pbXVsKE5lLFB0KSkrTWF0aC5pbXVsKHV0LEx0KXwwLEE9TWF0aC5pbXVsKHV0LFB0KSxFPUUrTWF0aC5pbXVsKHJ0LGVuKXwwLG09KG09bStNYXRo'@; put 'LmltdWwocnQsc24pfDApK01hdGguaW11bChLZSxlbil8MCxBPUErTWF0aC5pbXVsKEtlLHNuKXwwLEU9RStNYXRoLmltdWwoeXQsZG4pfDAsbT0obT1tK01hdGguaW11bCh5dCxmdCl8MCkrTWF0aC5pbXVsKE10LGRuKXwwLEE9QStNYXRoLmltdWwoTXQsZnQpfDAsRT1FK01hdGguaW11bChu'@; put 'dCxadCl8MCxtPShtPW0rTWF0aC5pbXVsKG50LGt0KXwwKStNYXRoLmltdWwoSmUsWnQpfDAsQT1BK01hdGguaW11bChKZSxrdCl8MCxFPUUrTWF0aC5pbXVsKERlLG90KXwwLG09KG09bStNYXRoLmltdWwoRGUsenQpfDApK01hdGguaW11bChrZSxvdCl8MCxBPUErTWF0aC5pbXVsKGtlLHp0'@; put 'KXwwLEU9RStNYXRoLmltdWwoUmUsV2UpfDAsbT0obT1tK01hdGguaW11bChSZSxBdCl8MCkrTWF0aC5pbXVsKEllLFdlKXwwLEE9QStNYXRoLmltdWwoSWUsQXQpfDAsRT1FK01hdGguaW11bChqZSxodCl8MCxtPShtPW0rTWF0aC5pbXVsKGplLEV0KXwwKStNYXRoLmltdWwoQWUsaHQpfDAs'@; put 'QT1BK01hdGguaW11bChBZSxFdCl8MCxFPUUrTWF0aC5pbXVsKHhlLGFuKXwwLG09KG09bStNYXRoLmltdWwoeGUsanQpfDApK01hdGguaW11bCh2ZSxhbil8MCxBPUErTWF0aC5pbXVsKHZlLGp0KXwwLEU9RStNYXRoLmltdWwoWmUsY24pfDAsbT0obT1tK01hdGguaW11bChaZSxmbil8MCkr'@; put 'TWF0aC5pbXVsKFFlLGNuKXwwLEE9QStNYXRoLmltdWwoUWUsZm4pfDA7dmFyIElhPShVKyhFPUUrTWF0aC5pbXVsKG5lLFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsdG4pfDApK01hdGguaW11bChsZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSx0'@; put 'bil8MCkrKG0+Pj4xMyl8MCkrKElhPj4+MjYpfDAsSWEmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLGVuKSxtPShtPU1hdGguaW11bChOZSxzbikpK01hdGguaW11bCh1dCxlbil8MCxBPU1hdGguaW11bCh1dCxzbiksRT1FK01hdGguaW11bChydCxkbil8MCxtPShtPW0rTWF0aC5pbXVsKHJ0'@; put 'LGZ0KXwwKStNYXRoLmltdWwoS2UsZG4pfDAsQT1BK01hdGguaW11bChLZSxmdCl8MCxFPUUrTWF0aC5pbXVsKHl0LFp0KXwwLG09KG09bStNYXRoLmltdWwoeXQsa3QpfDApK01hdGguaW11bChNdCxadCl8MCxBPUErTWF0aC5pbXVsKE10LGt0KXwwLEU9RStNYXRoLmltdWwobnQsb3QpfDAs'@; put 'bT0obT1tK01hdGguaW11bChudCx6dCl8MCkrTWF0aC5pbXVsKEplLG90KXwwLEE9QStNYXRoLmltdWwoSmUsenQpfDAsRT1FK01hdGguaW11bChEZSxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKERlLEF0KXwwKStNYXRoLmltdWwoa2UsV2UpfDAsQT1BK01hdGguaW11bChrZSxBdCl8MCxFPUUr'@; put 'TWF0aC5pbXVsKFJlLGh0KXwwLG09KG09bStNYXRoLmltdWwoUmUsRXQpfDApK01hdGguaW11bChJZSxodCl8MCxBPUErTWF0aC5pbXVsKEllLEV0KXwwLEU9RStNYXRoLmltdWwoamUsYW4pfDAsbT0obT1tK01hdGguaW11bChqZSxqdCl8MCkrTWF0aC5pbXVsKEFlLGFuKXwwLEE9QStNYXRo'@; put 'LmltdWwoQWUsanQpfDAsRT1FK01hdGguaW11bCh4ZSxjbil8MCxtPShtPW0rTWF0aC5pbXVsKHhlLGZuKXwwKStNYXRoLmltdWwodmUsY24pfDAsQT1BK01hdGguaW11bCh2ZSxmbil8MDt2YXIgUHI9KFUrKEU9RStNYXRoLmltdWwoWmUsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGgu'@; put 'aW11bChaZSx0bil8MCkrTWF0aC5pbXVsKFFlLFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKFFlLHRuKXwwKSsobT4+PjEzKXwwKSsoUHI+Pj4yNil8MCxQciY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsZG4pLG09KG09TWF0aC5pbXVsKE5lLGZ0KSkrTWF0aC5pbXVsKHV0LGRu'@; put 'KXwwLEE9TWF0aC5pbXVsKHV0LGZ0KSxFPUUrTWF0aC5pbXVsKHJ0LFp0KXwwLG09KG09bStNYXRoLmltdWwocnQsa3QpfDApK01hdGguaW11bChLZSxadCl8MCxBPUErTWF0aC5pbXVsKEtlLGt0KXwwLEU9RStNYXRoLmltdWwoeXQsb3QpfDAsbT0obT1tK01hdGguaW11bCh5dCx6dCl8MCkr'@; put 'TWF0aC5pbXVsKE10LG90KXwwLEE9QStNYXRoLmltdWwoTXQsenQpfDAsRT1FK01hdGguaW11bChudCxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKG50LEF0KXwwKStNYXRoLmltdWwoSmUsV2UpfDAsQT1BK01hdGguaW11bChKZSxBdCl8MCxFPUUrTWF0aC5pbXVsKERlLGh0KXwwLG09KG09bStN'@; put 'YXRoLmltdWwoRGUsRXQpfDApK01hdGguaW11bChrZSxodCl8MCxBPUErTWF0aC5pbXVsKGtlLEV0KXwwLEU9RStNYXRoLmltdWwoUmUsYW4pfDAsbT0obT1tK01hdGguaW11bChSZSxqdCl8MCkrTWF0aC5pbXVsKEllLGFuKXwwLEE9QStNYXRoLmltdWwoSWUsanQpfDAsRT1FK01hdGguaW11'@; put 'bChqZSxjbil8MCxtPShtPW0rTWF0aC5pbXVsKGplLGZuKXwwKStNYXRoLmltdWwoQWUsY24pfDAsQT1BK01hdGguaW11bChBZSxmbil8MDt2YXIgWWk9KFUrKEU9RStNYXRoLmltdWwoeGUsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bCh4ZSx0bil8MCkrTWF0aC5pbXVsKHZl'@; put 'LFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKHZlLHRuKXwwKSsobT4+PjEzKXwwKSsoWWk+Pj4yNil8MCxZaSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsWnQpLG09KG09TWF0aC5pbXVsKE5lLGt0KSkrTWF0aC5pbXVsKHV0LFp0KXwwLEE9TWF0aC5pbXVsKHV0LGt0KSxFPUUr'@; put 'TWF0aC5pbXVsKHJ0LG90KXwwLG09KG09bStNYXRoLmltdWwocnQsenQpfDApK01hdGguaW11bChLZSxvdCl8MCxBPUErTWF0aC5pbXVsKEtlLHp0KXwwLEU9RStNYXRoLmltdWwoeXQsV2UpfDAsbT0obT1tK01hdGguaW11bCh5dCxBdCl8MCkrTWF0aC5pbXVsKE10LFdlKXwwLEE9QStNYXRo'@; put 'LmltdWwoTXQsQXQpfDAsRT1FK01hdGguaW11bChudCxodCl8MCxtPShtPW0rTWF0aC5pbXVsKG50LEV0KXwwKStNYXRoLmltdWwoSmUsaHQpfDAsQT1BK01hdGguaW11bChKZSxFdCl8MCxFPUUrTWF0aC5pbXVsKERlLGFuKXwwLG09KG09bStNYXRoLmltdWwoRGUsanQpfDApK01hdGguaW11'@; put 'bChrZSxhbil8MCxBPUErTWF0aC5pbXVsKGtlLGp0KXwwLEU9RStNYXRoLmltdWwoUmUsY24pfDAsbT0obT1tK01hdGguaW11bChSZSxmbil8MCkrTWF0aC5pbXVsKEllLGNuKXwwLEE9QStNYXRoLmltdWwoSWUsZm4pfDA7dmFyIGZhPShVKyhFPUUrTWF0aC5pbXVsKGplLFF0KXwwKXwwKSso'@; put 'KDgxOTEmKG09KG09bStNYXRoLmltdWwoamUsdG4pfDApK01hdGguaW11bChBZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChBZSx0bil8MCkrKG0+Pj4xMyl8MCkrKGZhPj4+MjYpfDAsZmEmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLG90KSxtPShtPU1hdGguaW11bChOZSx6'@; put 'dCkpK01hdGguaW11bCh1dCxvdCl8MCxBPU1hdGguaW11bCh1dCx6dCksRT1FK01hdGguaW11bChydCxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LEF0KXwwKStNYXRoLmltdWwoS2UsV2UpfDAsQT1BK01hdGguaW11bChLZSxBdCl8MCxFPUUrTWF0aC5pbXVsKHl0LGh0KXwwLG09KG09bStN'@; put 'YXRoLmltdWwoeXQsRXQpfDApK01hdGguaW11bChNdCxodCl8MCxBPUErTWF0aC5pbXVsKE10LEV0KXwwLEU9RStNYXRoLmltdWwobnQsYW4pfDAsbT0obT1tK01hdGguaW11bChudCxqdCl8MCkrTWF0aC5pbXVsKEplLGFuKXwwLEE9QStNYXRoLmltdWwoSmUsanQpfDAsRT1FK01hdGguaW11'@; put 'bChEZSxjbil8MCxtPShtPW0rTWF0aC5pbXVsKERlLGZuKXwwKStNYXRoLmltdWwoa2UsY24pfDAsQT1BK01hdGguaW11bChrZSxmbil8MDt2YXIgbnI9KFUrKEU9RStNYXRoLmltdWwoUmUsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChSZSx0bil8MCkrTWF0aC5pbXVsKEll'@; put 'LFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKEllLHRuKXwwKSsobT4+PjEzKXwwKSsobnI+Pj4yNil8MCxuciY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsV2UpLG09KG09TWF0aC5pbXVsKE5lLEF0KSkrTWF0aC5pbXVsKHV0LFdlKXwwLEE9TWF0aC5pbXVsKHV0LEF0KSxFPUUr'@; put 'TWF0aC5pbXVsKHJ0LGh0KXwwLG09KG09bStNYXRoLmltdWwocnQsRXQpfDApK01hdGguaW11bChLZSxodCl8MCxBPUErTWF0aC5pbXVsKEtlLEV0KXwwLEU9RStNYXRoLmltdWwoeXQsYW4pfDAsbT0obT1tK01hdGguaW11bCh5dCxqdCl8MCkrTWF0aC5pbXVsKE10LGFuKXwwLEE9QStNYXRo'@; put 'LmltdWwoTXQsanQpfDAsRT1FK01hdGguaW11bChudCxjbil8MCxtPShtPW0rTWF0aC5pbXVsKG50LGZuKXwwKStNYXRoLmltdWwoSmUsY24pfDAsQT1BK01hdGguaW11bChKZSxmbil8MDt2YXIgb2E9KFUrKEU9RStNYXRoLmltdWwoRGUsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGgu'@; put 'aW11bChEZSx0bil8MCkrTWF0aC5pbXVsKGtlLFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKGtlLHRuKXwwKSsobT4+PjEzKXwwKSsob2E+Pj4yNil8MCxvYSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsaHQpLG09KG09TWF0aC5pbXVsKE5lLEV0KSkrTWF0aC5pbXVsKHV0LGh0'@; put 'KXwwLEE9TWF0aC5pbXVsKHV0LEV0KSxFPUUrTWF0aC5pbXVsKHJ0LGFuKXwwLG09KG09bStNYXRoLmltdWwocnQsanQpfDApK01hdGguaW11bChLZSxhbil8MCxBPUErTWF0aC5pbXVsKEtlLGp0KXwwLEU9RStNYXRoLmltdWwoeXQsY24pfDAsbT0obT1tK01hdGguaW11bCh5dCxmbil8MCkr'@; put 'TWF0aC5pbXVsKE10LGNuKXwwLEE9QStNYXRoLmltdWwoTXQsZm4pfDA7dmFyIF9hPShVKyhFPUUrTWF0aC5pbXVsKG50LFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobnQsdG4pfDApK01hdGguaW11bChKZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChKZSx0'@; put 'bil8MCkrKG0+Pj4xMyl8MCkrKF9hPj4+MjYpfDAsX2EmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLGFuKSxtPShtPU1hdGguaW11bChOZSxqdCkpK01hdGguaW11bCh1dCxhbil8MCxBPU1hdGguaW11bCh1dCxqdCksRT1FK01hdGguaW11bChydCxjbil8MCxtPShtPW0rTWF0aC5pbXVsKHJ0'@; put 'LGZuKXwwKStNYXRoLmltdWwoS2UsY24pfDAsQT1BK01hdGguaW11bChLZSxmbil8MDt2YXIgT2E9KFUrKEU9RStNYXRoLmltdWwoeXQsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bCh5dCx0bil8MCkrTWF0aC5pbXVsKE10LFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5p'@; put 'bXVsKE10LHRuKXwwKSsobT4+PjEzKXwwKSsoT2E+Pj4yNil8MCxPYSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsY24pLG09KG09TWF0aC5pbXVsKE5lLGZuKSkrTWF0aC5pbXVsKHV0LGNuKXwwLEE9TWF0aC5pbXVsKHV0LGZuKTt2YXIgTmE9KFUrKEU9RStNYXRoLmltdWwocnQsUXQpfDAp'@; put 'fDApKygoODE5MSYobT0obT1tK01hdGguaW11bChydCx0bil8MCkrTWF0aC5pbXVsKEtlLFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKEtlLHRuKXwwKSsobT4+PjEzKXwwKSsoTmE+Pj4yNil8MCxOYSY9NjcxMDg4NjM7dmFyIGVpPShVKyhFPU1hdGguaW11bChOZSxRdCkpfDAp'@; put 'KygoODE5MSYobT0obT1NYXRoLmltdWwoTmUsdG4pKStNYXRoLmltdWwodXQsUXQpfDApKTw8MTMpfDA7cmV0dXJuIFU9KChBPU1hdGguaW11bCh1dCx0bikpKyhtPj4+MTMpfDApKyhlaT4+PjI2KXwwLGVpJj02NzEwODg2MyxWWzBdPWNhLFZbMV09eGksVlsyXT15cixWWzNdPUduLFZbNF09'@; put 'S2ksVls1XT1KcixWWzZdPVFyLFZbN109TmksVls4XT1IaSxWWzldPUlhLFZbMTBdPVByLFZbMTFdPVlpLFZbMTJdPWZhLFZbMTNdPW5yLFZbMTRdPW9hLFZbMTVdPV9hLFZbMTZdPU9hLFZbMTddPU5hLFZbMThdPWVpLDAhPT1VJiYoVlsxOV09VSx4Lmxlbmd0aCsrKSx4fTtmdW5jdGlvbiBR'@; put 'KHosZyx5KXtyZXR1cm4obmV3IHEpLm11bHAoeixnLHkpfWZ1bmN0aW9uIHEoeixnKXt0aGlzLng9eix0aGlzLnk9Z31NYXRoLmltdWx8fChaPVcpLHcucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKGcseSl7dmFyIHgsQz10aGlzLmxlbmd0aCtnLmxlbmd0aDtyZXR1cm4geD0xMD09PXRoaXMu'@; put 'bGVuZ3RoJiYxMD09PWcubGVuZ3RoP1oodGhpcyxnLHkpOkM8NjM/Vyh0aGlzLGcseSk6QzwxMDI0P2Z1bmN0aW9uIFgoeixnLHkpe3kubmVnYXRpdmU9Zy5uZWdhdGl2ZV56Lm5lZ2F0aXZlLHkubGVuZ3RoPXoubGVuZ3RoK2cubGVuZ3RoO2Zvcih2YXIgeD0wLEM9MCxUPTA7VDx5Lmxlbmd0'@; put 'aC0xO1QrKyl7dmFyIFY9QztDPTA7Zm9yKHZhciBVPTY3MTA4ODYzJngsRT1NYXRoLm1pbihULGcubGVuZ3RoLTEpLG09TWF0aC5tYXgoMCxULXoubGVuZ3RoKzEpO208PUU7bSsrKXt2YXIgbGU9KDB8ei53b3Jkc1tULW1dKSooMHxnLndvcmRzW21dKSx3ZT02NzEwODg2MyZsZTtVPTY3MTA4'@; put 'ODYzJih3ZT13ZStVfDApLEMrPShWPShWPVYrKGxlLzY3MTA4ODY0fDApfDApKyh3ZT4+PjI2KXwwKT4+PjI2LFYmPTY3MTA4ODYzfXkud29yZHNbVF09VSx4PVYsVj1DfXJldHVybiAwIT09eD95LndvcmRzW1RdPXg6eS5sZW5ndGgtLSx5LnN0cmlwKCl9KHRoaXMsZyx5KTpRKHRoaXMsZyx5'@; put 'KSx4fSxxLnByb3RvdHlwZS5tYWtlUkJUPWZ1bmN0aW9uKGcpe2Zvcih2YXIgeT1uZXcgQXJyYXkoZykseD13LnByb3RvdHlwZS5fY291bnRCaXRzKGcpLTEsQz0wO0M8ZztDKyspeVtDXT10aGlzLnJldkJpbihDLHgsZyk7cmV0dXJuIHl9LHEucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbihn'@; put 'LHkseCl7aWYoMD09PWd8fGc9PT14LTEpcmV0dXJuIGc7Zm9yKHZhciBDPTAsVD0wO1Q8eTtUKyspQ3w9KDEmZyk8PHktVC0xLGc+Pj0xO3JldHVybiBDfSxxLnByb3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKGcseSx4LEMsVCxWKXtmb3IodmFyIFU9MDtVPFY7VSsrKUNbVV09eVtnW1VdXSxU'@; put 'W1VdPXhbZ1tVXV19LHEucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbihnLHkseCxDLFQsVil7dGhpcy5wZXJtdXRlKFYsZyx5LHgsQyxUKTtmb3IodmFyIFU9MTtVPFQ7VTw8PTEpZm9yKHZhciBFPVU8PDEsbT1NYXRoLmNvcygyKk1hdGguUEkvRSksQT1NYXRoLnNpbigyKk1hdGguUEkv'@; put 'RSksYWU9MDthZTxUO2FlKz1FKWZvcih2YXIgbmU9bSxsZT1BLHdlPTA7d2U8VTt3ZSsrKXt2YXIgWmU9eFthZSt3ZV0sUWU9Q1thZSt3ZV0sYXQ9eFthZSt3ZStVXSx4ZT1DW2FlK3dlK1VdLHZlPW5lKmF0LWxlKnhlO3hlPW5lKnhlK2xlKmF0LHhbYWUrd2VdPVplKyhhdD12ZSksQ1thZSt3'@; put 'ZV09UWUreGUseFthZSt3ZStVXT1aZS1hdCxDW2FlK3dlK1VdPVFlLXhlLHdlIT09RSYmKHZlPW0qbmUtQSpsZSxsZT1tKmxlK0EqbmUsbmU9dmUpfX0scS5wcm90b3R5cGUuZ3Vlc3NMZW4xM2I9ZnVuY3Rpb24oZyx5KXt2YXIgeD0xfE1hdGgubWF4KHksZyksQz0xJngsVD0wO2Zvcih4PXgv'@; put 'MnwwO3g7eD4+Pj0xKVQrKztyZXR1cm4gMTw8VCsxK0N9LHEucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbihnLHkseCl7aWYoISh4PD0xKSlmb3IodmFyIEM9MDtDPHgvMjtDKyspe3ZhciBUPWdbQ107Z1tDXT1nW3gtQy0xXSxnW3gtQy0xXT1ULFQ9eVtDXSx5W0NdPS15W3gtQy0xXSx5'@; put 'W3gtQy0xXT0tVH19LHEucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbihnLHkpe2Zvcih2YXIgeD0wLEM9MDtDPHkvMjtDKyspe3ZhciBUPTgxOTIqTWF0aC5yb3VuZChnWzIqQysxXS95KStNYXRoLnJvdW5kKGdbMipDXS95KSt4O2dbQ109NjcxMDg4NjMmVCx4PVQ8NjcxMDg4NjQ/'@; put 'MDpULzY3MTA4ODY0fDB9cmV0dXJuIGd9LHEucHJvdG90eXBlLmNvbnZlcnQxM2I9ZnVuY3Rpb24oZyx5LHgsQyl7Zm9yKHZhciBUPTAsVj0wO1Y8eTtWKyspeFsyKlZdPTgxOTEmKFQrPTB8Z1tWXSkseFsyKlYrMV09ODE5MSYoVD4+Pj0xMyksVD4+Pj0xMztmb3IoVj0yKnk7VjxDOysrVil4'@; put 'W1ZdPTA7cCgwPT09VCkscCghKC04MTkyJlQpKX0scS5wcm90b3R5cGUuc3R1Yj1mdW5jdGlvbihnKXtmb3IodmFyIHk9bmV3IEFycmF5KGcpLHg9MDt4PGc7eCsrKXlbeF09MDtyZXR1cm4geX0scS5wcm90b3R5cGUubXVscD1mdW5jdGlvbihnLHkseCl7dmFyIEM9Mip0aGlzLmd1ZXNzTGVu'@; put 'MTNiKGcubGVuZ3RoLHkubGVuZ3RoKSxUPXRoaXMubWFrZVJCVChDKSxWPXRoaXMuc3R1YihDKSxVPW5ldyBBcnJheShDKSxFPW5ldyBBcnJheShDKSxtPW5ldyBBcnJheShDKSxBPW5ldyBBcnJheShDKSxhZT1uZXcgQXJyYXkoQyksbmU9bmV3IEFycmF5KEMpLGxlPXgud29yZHM7bGUubGVu'@; put 'Z3RoPUMsdGhpcy5jb252ZXJ0MTNiKGcud29yZHMsZy5sZW5ndGgsVSxDKSx0aGlzLmNvbnZlcnQxM2IoeS53b3Jkcyx5Lmxlbmd0aCxBLEMpLHRoaXMudHJhbnNmb3JtKFUsVixFLG0sQyxUKSx0aGlzLnRyYW5zZm9ybShBLFYsYWUsbmUsQyxUKTtmb3IodmFyIHdlPTA7d2U8Qzt3ZSsrKXt2'@; put 'YXIgWmU9RVt3ZV0qYWVbd2VdLW1bd2VdKm5lW3dlXTttW3dlXT1FW3dlXSpuZVt3ZV0rbVt3ZV0qYWVbd2VdLEVbd2VdPVplfXJldHVybiB0aGlzLmNvbmp1Z2F0ZShFLG0sQyksdGhpcy50cmFuc2Zvcm0oRSxtLGxlLFYsQyxUKSx0aGlzLmNvbmp1Z2F0ZShsZSxWLEMpLHRoaXMubm9ybWFs'@; put 'aXplMTNiKGxlLEMpLHgubmVnYXRpdmU9Zy5uZWdhdGl2ZV55Lm5lZ2F0aXZlLHgubGVuZ3RoPWcubGVuZ3RoK3kubGVuZ3RoLHguc3RyaXAoKX0sdy5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGcpe3ZhciB5PW5ldyB3KG51bGwpO3JldHVybiB5LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0'@; put 'aCtnLmxlbmd0aCksdGhpcy5tdWxUbyhnLHkpfSx3LnByb3RvdHlwZS5tdWxmPWZ1bmN0aW9uKGcpe3ZhciB5PW5ldyB3KG51bGwpO3JldHVybiB5LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtnLmxlbmd0aCksUSh0aGlzLGcseSl9LHcucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oZyl7'@; put 'cmV0dXJuIHRoaXMuY2xvbmUoKS5tdWxUbyhnLHRoaXMpfSx3LnByb3RvdHlwZS5pbXVsbj1mdW5jdGlvbihnKXtwKCJudW1iZXIiPT10eXBlb2YgZykscChnPDY3MTA4ODY0KTtmb3IodmFyIHk9MCx4PTA7eDx0aGlzLmxlbmd0aDt4Kyspe3ZhciBDPSgwfHRoaXMud29yZHNbeF0pKmcsVD0o'@; put 'NjcxMDg4NjMmQykrKDY3MTA4ODYzJnkpO3k+Pj0yNix5Kz1DLzY3MTA4ODY0fDAseSs9VD4+PjI2LHRoaXMud29yZHNbeF09NjcxMDg4NjMmVH1yZXR1cm4gMCE9PXkmJih0aGlzLndvcmRzW3hdPXksdGhpcy5sZW5ndGgrKyksdGhpc30sdy5wcm90b3R5cGUubXVsbj1mdW5jdGlvbihnKXty'@; put 'ZXR1cm4gdGhpcy5jbG9uZSgpLmltdWxuKGcpfSx3LnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdWwodGhpcyl9LHcucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbXVsKHRoaXMuY2xvbmUoKSl9LHcucHJvdG90eXBlLnBvdz1mdW5jdGlvbihn'@; put 'KXt2YXIgeT1mdW5jdGlvbiBCKHope2Zvcih2YXIgZz1uZXcgQXJyYXkoei5iaXRMZW5ndGgoKSkseT0wO3k8Zy5sZW5ndGg7eSsrKXt2YXIgQz15JTI2O2dbeV09KHoud29yZHNbeS8yNnwwXSYxPDxDKT4+PkN9cmV0dXJuIGd9KGcpO2lmKDA9PT15Lmxlbmd0aClyZXR1cm4gbmV3IHcoMSk7'@; put 'Zm9yKHZhciB4PXRoaXMsQz0wO0M8eS5sZW5ndGgmJjA9PT15W0NdO0MrKyx4PXguc3FyKCkpO2lmKCsrQzx5Lmxlbmd0aClmb3IodmFyIFQ9eC5zcXIoKTtDPHkubGVuZ3RoO0MrKyxUPVQuc3FyKCkpMCE9PXlbQ10mJih4PXgubXVsKFQpKTtyZXR1cm4geH0sdy5wcm90b3R5cGUuaXVzaGxu'@; put 'PWZ1bmN0aW9uKGcpe3AoIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgVCx5PWclMjYseD0oZy15KS8yNixDPTY3MTA4ODYzPj4+MjYteTw8MjYteTtpZigwIT09eSl7dmFyIFY9MDtmb3IoVD0wO1Q8dGhpcy5sZW5ndGg7VCsrKXt2YXIgVT10aGlzLndvcmRzW1RdJkM7dGhpcy53b3Jk'@; put 'c1tUXT0oMHx0aGlzLndvcmRzW1RdKS1VPDx5fFYsVj1VPj4+MjYteX1WJiYodGhpcy53b3Jkc1tUXT1WLHRoaXMubGVuZ3RoKyspfWlmKDAhPT14KXtmb3IoVD10aGlzLmxlbmd0aC0xO1Q+PTA7VC0tKXRoaXMud29yZHNbVCt4XT10aGlzLndvcmRzW1RdO2ZvcihUPTA7VDx4O1QrKyl0aGlz'@; put 'LndvcmRzW1RdPTA7dGhpcy5sZW5ndGgrPXh9cmV0dXJuIHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuaXNobG49ZnVuY3Rpb24oZyl7cmV0dXJuIHAoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaGxuKGcpfSx3LnByb3RvdHlwZS5pdXNocm49ZnVuY3Rpb24oZyx5LHgpe3ZhciBDO3Ao'@; put 'Im51bWJlciI9PXR5cGVvZiBnJiZnPj0wKSxDPXk/KHkteSUyNikvMjY6MDt2YXIgVD1nJTI2LFY9TWF0aC5taW4oKGctVCkvMjYsdGhpcy5sZW5ndGgpLFU9NjcxMDg4NjNeNjcxMDg4NjM+Pj5UPDxULEU9eDtpZihDLT1WLEM9TWF0aC5tYXgoMCxDKSxFKXtmb3IodmFyIG09MDttPFY7bSsr'@; put 'KUUud29yZHNbbV09dGhpcy53b3Jkc1ttXTtFLmxlbmd0aD1WfWlmKDAhPT1WKWlmKHRoaXMubGVuZ3RoPlYpZm9yKHRoaXMubGVuZ3RoLT1WLG09MDttPHRoaXMubGVuZ3RoO20rKyl0aGlzLndvcmRzW21dPXRoaXMud29yZHNbbStWXTtlbHNlIHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0'@; put 'aD0xO3ZhciBBPTA7Zm9yKG09dGhpcy5sZW5ndGgtMTttPj0wJiYoMCE9PUF8fG0+PUMpO20tLSl7dmFyIGFlPTB8dGhpcy53b3Jkc1ttXTt0aGlzLndvcmRzW21dPUE8PDI2LVR8YWU+Pj5ULEE9YWUmVX1yZXR1cm4gRSYmMCE9PUEmJihFLndvcmRzW0UubGVuZ3RoKytdPUEpLDA9PT10aGlz'@; put 'Lmxlbmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLmlzaHJuPWZ1bmN0aW9uKGcseSx4KXtyZXR1cm4gcCgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4oZyx5LHgpfSx3LnByb3RvdHlwZS5zaGxuPWZ1bmN0aW9uKGcp'@; put 'e3JldHVybiB0aGlzLmNsb25lKCkuaXNobG4oZyl9LHcucHJvdG90eXBlLnVzaGxuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaGxuKGcpfSx3LnByb3RvdHlwZS5zaHJuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaXNocm4oZyl9LHcucHJvdG90eXBlLnVz'@; put 'aHJuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaHJuKGcpfSx3LnByb3RvdHlwZS50ZXN0bj1mdW5jdGlvbihnKXtwKCJudW1iZXIiPT10eXBlb2YgZyYmZz49MCk7dmFyIHk9ZyUyNix4PShnLXkpLzI2O3JldHVybiEodGhpcy5sZW5ndGg8PXh8fCEodGhpcy53b3Jkc1t4'@; put 'XSYxPDx5KSl9LHcucHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbihnKXtwKCJudW1iZXIiPT10eXBlb2YgZyYmZz49MCk7dmFyIHk9ZyUyNix4PShnLXkpLzI2O3JldHVybiBwKDA9PT10aGlzLm5lZ2F0aXZlLCJpbWFza24gd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlIG51bWJlcnMiKSx0aGlz'@; put 'Lmxlbmd0aDw9eD90aGlzOigwIT09eSYmeCsrLHRoaXMubGVuZ3RoPU1hdGgubWluKHgsdGhpcy5sZW5ndGgpLDAhPT15JiYodGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSY9NjcxMDg4NjNeNjcxMDg4NjM+Pj55PDx5KSx0aGlzLnN0cmlwKCkpfSx3LnByb3RvdHlwZS5tYXNrbj1mdW5jdGlv'@; put 'bihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbihnKX0sdy5wcm90b3R5cGUuaWFkZG49ZnVuY3Rpb24oZyl7cmV0dXJuIHAoIm51bWJlciI9PXR5cGVvZiBnKSxwKGc8NjcxMDg4NjQpLGc8MD90aGlzLmlzdWJuKC1nKTowIT09dGhpcy5uZWdhdGl2ZT8xPT09dGhpcy5sZW5ndGgmJigw'@; put 'fHRoaXMud29yZHNbMF0pPGc/KHRoaXMud29yZHNbMF09Zy0oMHx0aGlzLndvcmRzWzBdKSx0aGlzLm5lZ2F0aXZlPTAsdGhpcyk6KHRoaXMubmVnYXRpdmU9MCx0aGlzLmlzdWJuKGcpLHRoaXMubmVnYXRpdmU9MSx0aGlzKTp0aGlzLl9pYWRkbihnKX0sdy5wcm90b3R5cGUuX2lhZGRuPWZ1'@; put 'bmN0aW9uKGcpe3RoaXMud29yZHNbMF0rPWc7Zm9yKHZhciB5PTA7eTx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1t5XT49NjcxMDg4NjQ7eSsrKXRoaXMud29yZHNbeV0tPTY3MTA4ODY0LHk9PT10aGlzLmxlbmd0aC0xP3RoaXMud29yZHNbeSsxXT0xOnRoaXMud29yZHNbeSsxXSsrO3JldHVy'@; put 'biB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCx5KzEpLHRoaXN9LHcucHJvdG90eXBlLmlzdWJuPWZ1bmN0aW9uKGcpe2lmKHAoIm51bWJlciI9PXR5cGVvZiBnKSxwKGc8NjcxMDg4NjQpLGc8MClyZXR1cm4gdGhpcy5pYWRkbigtZyk7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0'@; put 'dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKGcpLHRoaXMubmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPWcsMT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFy'@; put 'IHk9MDt5PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3ldPDA7eSsrKXRoaXMud29yZHNbeV0rPTY3MTA4ODY0LHRoaXMud29yZHNbeSsxXS09MTtyZXR1cm4gdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaWFkZG4oZyl9LHcu'@; put 'cHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3VibihnKX0sdy5wcm90b3R5cGUuaWFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30sdy5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJz'@; put 'KCl9LHcucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbihnLHkseCl7dmFyIFQ7dGhpcy5fZXhwYW5kKGcubGVuZ3RoK3gpO3ZhciBWLFU9MDtmb3IoVD0wO1Q8Zy5sZW5ndGg7VCsrKXtWPSgwfHRoaXMud29yZHNbVCt4XSkrVTt2YXIgRT0oMHxnLndvcmRzW1RdKSp5O1U9KChWLT02'@; put 'NzEwODg2MyZFKT4+MjYpLShFLzY3MTA4ODY0fDApLHRoaXMud29yZHNbVCt4XT02NzEwODg2MyZWfWZvcig7VDx0aGlzLmxlbmd0aC14O1QrKylVPShWPSgwfHRoaXMud29yZHNbVCt4XSkrVSk+PjI2LHRoaXMud29yZHNbVCt4XT02NzEwODg2MyZWO2lmKDA9PT1VKXJldHVybiB0aGlzLnN0'@; put 'cmlwKCk7Zm9yKHAoLTE9PT1VKSxVPTAsVD0wO1Q8dGhpcy5sZW5ndGg7VCsrKVU9KFY9LSgwfHRoaXMud29yZHNbVF0pK1UpPj4yNix0aGlzLndvcmRzW1RdPTY3MTA4ODYzJlY7cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0'@; put 'aW9uKGcseSl7dmFyIHgsQz10aGlzLmNsb25lKCksVD1nLFY9MHxULndvcmRzW1QubGVuZ3RoLTFdOzAhPSh4PTI2LXRoaXMuX2NvdW50Qml0cyhWKSkmJihUPVQudXNobG4oeCksQy5pdXNobG4oeCksVj0wfFQud29yZHNbVC5sZW5ndGgtMV0pO3ZhciBtLEU9Qy5sZW5ndGgtVC5sZW5ndGg7'@; put 'aWYoIm1vZCIhPT15KXsobT1uZXcgdyhudWxsKSkubGVuZ3RoPUUrMSxtLndvcmRzPW5ldyBBcnJheShtLmxlbmd0aCk7Zm9yKHZhciBBPTA7QTxtLmxlbmd0aDtBKyspbS53b3Jkc1tBXT0wfXZhciBhZT1DLmNsb25lKCkuX2lzaGxuc3VibXVsKFQsMSxFKTswPT09YWUubmVnYXRpdmUmJihD'@; put 'PWFlLG0mJihtLndvcmRzW0VdPTEpKTtmb3IodmFyIG5lPUUtMTtuZT49MDtuZS0tKXt2YXIgbGU9NjcxMDg4NjQqKDB8Qy53b3Jkc1tULmxlbmd0aCtuZV0pKygwfEMud29yZHNbVC5sZW5ndGgrbmUtMV0pO2ZvcihsZT1NYXRoLm1pbihsZS9WfDAsNjcxMDg4NjMpLEMuX2lzaGxuc3VibXVs'@; put 'KFQsbGUsbmUpOzAhPT1DLm5lZ2F0aXZlOylsZS0tLEMubmVnYXRpdmU9MCxDLl9pc2hsbnN1Ym11bChULDEsbmUpLEMuaXNaZXJvKCl8fChDLm5lZ2F0aXZlXj0xKTttJiYobS53b3Jkc1tuZV09bGUpfXJldHVybiBtJiZtLnN0cmlwKCksQy5zdHJpcCgpLCJkaXYiIT09eSYmMCE9PXgmJkMu'@; put 'aXVzaHJuKHgpLHtkaXY6bXx8bnVsbCxtb2Q6Q319LHcucHJvdG90eXBlLmRpdm1vZD1mdW5jdGlvbihnLHkseCl7cmV0dXJuIHAoIWcuaXNaZXJvKCkpLHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgdygwKSxtb2Q6bmV3IHcoMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Zy5uZWdhdGl2ZT8o'@; put 'Vj10aGlzLm5lZygpLmRpdm1vZChnLHkpLCJtb2QiIT09eSYmKEM9Vi5kaXYubmVnKCkpLCJkaXYiIT09eSYmKFQ9Vi5tb2QubmVnKCkseCYmMCE9PVQubmVnYXRpdmUmJlQuaWFkZChnKSkse2RpdjpDLG1vZDpUfSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT1nLm5lZ2F0aXZlPyhWPXRoaXMu'@; put 'ZGl2bW9kKGcubmVnKCkseSksIm1vZCIhPT15JiYoQz1WLmRpdi5uZWcoKSkse2RpdjpDLG1vZDpWLm1vZH0pOnRoaXMubmVnYXRpdmUmZy5uZWdhdGl2ZT8oVj10aGlzLm5lZygpLmRpdm1vZChnLm5lZygpLHkpLCJkaXYiIT09eSYmKFQ9Vi5tb2QubmVnKCkseCYmMCE9PVQubmVnYXRpdmUm'@; put 'JlQuaXN1YihnKSkse2RpdjpWLmRpdixtb2Q6VH0pOmcubGVuZ3RoPnRoaXMubGVuZ3RofHx0aGlzLmNtcChnKTwwP3tkaXY6bmV3IHcoMCksbW9kOnRoaXN9OjE9PT1nLmxlbmd0aD8iZGl2Ij09PXk/e2Rpdjp0aGlzLmRpdm4oZy53b3Jkc1swXSksbW9kOm51bGx9OiJtb2QiPT09eT97ZGl2'@; put 'Om51bGwsbW9kOm5ldyB3KHRoaXMubW9kbihnLndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKGcud29yZHNbMF0pLG1vZDpuZXcgdyh0aGlzLm1vZG4oZy53b3Jkc1swXSkpfTp0aGlzLl93b3JkRGl2KGcseSk7dmFyIEMsVCxWfSx3LnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24oZyl7cmV0dXJu'@; put 'IHRoaXMuZGl2bW9kKGcsImRpdiIsITEpLmRpdn0sdy5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmRpdm1vZChnLCJtb2QiLCExKS5tb2R9LHcucHJvdG90eXBlLnVtb2Q9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuZGl2bW9kKGcsIm1vZCIsITApLm1vZH0sdy5wcm90'@; put 'b3R5cGUuZGl2Um91bmQ9ZnVuY3Rpb24oZyl7dmFyIHk9dGhpcy5kaXZtb2QoZyk7aWYoeS5tb2QuaXNaZXJvKCkpcmV0dXJuIHkuZGl2O3ZhciB4PTAhPT15LmRpdi5uZWdhdGl2ZT95Lm1vZC5pc3ViKGcpOnkubW9kLEM9Zy51c2hybigxKSxUPWcuYW5kbG4oMSksVj14LmNtcChDKTtyZXR1'@; put 'cm4gVjwwfHwxPT09VCYmMD09PVY/eS5kaXY6MCE9PXkuZGl2Lm5lZ2F0aXZlP3kuZGl2LmlzdWJuKDEpOnkuZGl2LmlhZGRuKDEpfSx3LnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKGcpe3AoZzw9NjcxMDg4NjMpO2Zvcih2YXIgeT0oMTw8MjYpJWcseD0wLEM9dGhpcy5sZW5ndGgtMTtDPj0w'@; put 'O0MtLSl4PSh5KngrKDB8dGhpcy53b3Jkc1tDXSkpJWc7cmV0dXJuIHh9LHcucHJvdG90eXBlLmlkaXZuPWZ1bmN0aW9uKGcpe3AoZzw9NjcxMDg4NjMpO2Zvcih2YXIgeT0wLHg9dGhpcy5sZW5ndGgtMTt4Pj0wO3gtLSl7dmFyIEM9KDB8dGhpcy53b3Jkc1t4XSkrNjcxMDg4NjQqeTt0aGlz'@; put 'LndvcmRzW3hdPUMvZ3wwLHk9QyVnfXJldHVybiB0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLmRpdm49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pZGl2bihnKX0sdy5wcm90b3R5cGUuZWdjZD1mdW5jdGlvbihnKXtwKDA9PT1nLm5lZ2F0aXZlKSxwKCFnLmlzWmVybygpKTt2'@; put 'YXIgeT10aGlzLHg9Zy5jbG9uZSgpO3k9MCE9PXkubmVnYXRpdmU/eS51bW9kKGcpOnkuY2xvbmUoKTtmb3IodmFyIEM9bmV3IHcoMSksVD1uZXcgdygwKSxWPW5ldyB3KDApLFU9bmV3IHcoMSksRT0wO3kuaXNFdmVuKCkmJnguaXNFdmVuKCk7KXkuaXVzaHJuKDEpLHguaXVzaHJuKDEpLCsr'@; put 'RTtmb3IodmFyIG09eC5jbG9uZSgpLEE9eS5jbG9uZSgpOyF5LmlzWmVybygpOyl7Zm9yKHZhciBhZT0wLG5lPTE7ISh5LndvcmRzWzBdJm5lKSYmYWU8MjY7KythZSxuZTw8PTEpO2lmKGFlPjApZm9yKHkuaXVzaHJuKGFlKTthZS0tID4wOykoQy5pc09kZCgpfHxULmlzT2RkKCkpJiYoQy5p'@; put 'YWRkKG0pLFQuaXN1YihBKSksQy5pdXNocm4oMSksVC5pdXNocm4oMSk7Zm9yKHZhciBsZT0wLHdlPTE7ISh4LndvcmRzWzBdJndlKSYmbGU8MjY7KytsZSx3ZTw8PTEpO2lmKGxlPjApZm9yKHguaXVzaHJuKGxlKTtsZS0tID4wOykoVi5pc09kZCgpfHxVLmlzT2RkKCkpJiYoVi5pYWRkKG0p'@; put 'LFUuaXN1YihBKSksVi5pdXNocm4oMSksVS5pdXNocm4oMSk7eS5jbXAoeCk+PTA/KHkuaXN1Yih4KSxDLmlzdWIoViksVC5pc3ViKFUpKTooeC5pc3ViKHkpLFYuaXN1YihDKSxVLmlzdWIoVCkpfXJldHVybnthOlYsYjpVLGdjZDp4Lml1c2hsbihFKX19LHcucHJvdG90eXBlLl9pbnZtcD1m'@; put 'dW5jdGlvbihnKXtwKDA9PT1nLm5lZ2F0aXZlKSxwKCFnLmlzWmVybygpKTt2YXIgYWUseT10aGlzLHg9Zy5jbG9uZSgpO3k9MCE9PXkubmVnYXRpdmU/eS51bW9kKGcpOnkuY2xvbmUoKTtmb3IodmFyIEM9bmV3IHcoMSksVD1uZXcgdygwKSxWPXguY2xvbmUoKTt5LmNtcG4oMSk+MCYmeC5j'@; put 'bXBuKDEpPjA7KXtmb3IodmFyIFU9MCxFPTE7ISh5LndvcmRzWzBdJkUpJiZVPDI2OysrVSxFPDw9MSk7aWYoVT4wKWZvcih5Lml1c2hybihVKTtVLS0gPjA7KUMuaXNPZGQoKSYmQy5pYWRkKFYpLEMuaXVzaHJuKDEpO2Zvcih2YXIgbT0wLEE9MTshKHgud29yZHNbMF0mQSkmJm08MjY7Kytt'@; put 'LEE8PD0xKTtpZihtPjApZm9yKHguaXVzaHJuKG0pO20tLSA+MDspVC5pc09kZCgpJiZULmlhZGQoViksVC5pdXNocm4oMSk7eS5jbXAoeCk+PTA/KHkuaXN1Yih4KSxDLmlzdWIoVCkpOih4LmlzdWIoeSksVC5pc3ViKEMpKX1yZXR1cm4oYWU9MD09PXkuY21wbigxKT9DOlQpLmNtcG4oMCk8'@; put 'MCYmYWUuaWFkZChnKSxhZX0sdy5wcm90b3R5cGUuZ2NkPWZ1bmN0aW9uKGcpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIGcuYWJzKCk7aWYoZy5pc1plcm8oKSlyZXR1cm4gdGhpcy5hYnMoKTt2YXIgeT10aGlzLmNsb25lKCkseD1nLmNsb25lKCk7eS5uZWdhdGl2ZT0wLHgubmVnYXRpdmU9'@; put 'MDtmb3IodmFyIEM9MDt5LmlzRXZlbigpJiZ4LmlzRXZlbigpO0MrKyl5Lml1c2hybigxKSx4Lml1c2hybigxKTtmb3IoOzspe2Zvcig7eS5pc0V2ZW4oKTspeS5pdXNocm4oMSk7Zm9yKDt4LmlzRXZlbigpOyl4Lml1c2hybigxKTt2YXIgVD15LmNtcCh4KTtpZihUPDApe3ZhciBWPXk7eT14'@; put 'LHg9Vn1lbHNlIGlmKDA9PT1UfHwwPT09eC5jbXBuKDEpKWJyZWFrO3kuaXN1Yih4KX1yZXR1cm4geC5pdXNobG4oQyl9LHcucHJvdG90eXBlLmludm09ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuZWdjZChnKS5hLnVtb2QoZyl9LHcucHJvdG90eXBlLmlzRXZlbj1mdW5jdGlvbigpe3JldHVy'@; put 'biEoMSZ0aGlzLndvcmRzWzBdKX0sdy5wcm90b3R5cGUuaXNPZGQ9ZnVuY3Rpb24oKXtyZXR1cm4hKDEmfnRoaXMud29yZHNbMF0pfSx3LnByb3RvdHlwZS5hbmRsbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy53b3Jkc1swXSZnfSx3LnByb3RvdHlwZS5iaW5jbj1mdW5jdGlvbihnKXtwKCJu'@; put 'dW1iZXIiPT10eXBlb2YgZyk7dmFyIHk9ZyUyNix4PShnLXkpLzI2LEM9MTw8eTtpZih0aGlzLmxlbmd0aDw9eClyZXR1cm4gdGhpcy5fZXhwYW5kKHgrMSksdGhpcy53b3Jkc1t4XXw9Qyx0aGlzO2Zvcih2YXIgVD1DLFY9eDswIT09VCYmVjx0aGlzLmxlbmd0aDtWKyspe3ZhciBVPTB8dGhp'@; put 'cy53b3Jkc1tWXTtUPShVKz1UKT4+PjI2LHRoaXMud29yZHNbVl09VSY9NjcxMDg4NjN9cmV0dXJuIDAhPT1UJiYodGhpcy53b3Jkc1tWXT1ULHRoaXMubGVuZ3RoKyspLHRoaXN9LHcucHJvdG90eXBlLmlzWmVybz1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlz'@; put 'LndvcmRzWzBdfSx3LnByb3RvdHlwZS5jbXBuPWZ1bmN0aW9uKGcpe3ZhciB4LHk9ZzwwO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYheSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmeSlyZXR1cm4gMTtpZih0aGlzLnN0cmlwKCksdGhpcy5sZW5ndGg+MSl4PTE7ZWxzZXt5JiYoZz0t'@; put 'ZykscChnPD02NzEwODg2MywiTnVtYmVyIGlzIHRvbyBiaWciKTt2YXIgQz0wfHRoaXMud29yZHNbMF07eD1DPT09Zz8wOkM8Zz8tMToxfXJldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC14Onh9LHcucHJvdG90eXBlLmNtcD1mdW5jdGlvbihnKXtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09'@; put 'PWcubmVnYXRpdmUpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT1nLm5lZ2F0aXZlKXJldHVybiAxO3ZhciB5PXRoaXMudWNtcChnKTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwteTp5fSx3LnByb3RvdHlwZS51Y21wPWZ1bmN0aW9uKGcpe2lmKHRoaXMubGVuZ3RoPmcu'@; put 'bGVuZ3RoKXJldHVybiAxO2lmKHRoaXMubGVuZ3RoPGcubGVuZ3RoKXJldHVybi0xO2Zvcih2YXIgeT0wLHg9dGhpcy5sZW5ndGgtMTt4Pj0wO3gtLSl7dmFyIEM9MHx0aGlzLndvcmRzW3hdLFQ9MHxnLndvcmRzW3hdO2lmKEMhPT1UKXtDPFQ/eT0tMTpDPlQmJih5PTEpO2JyZWFrfX1yZXR1'@; put 'cm4geX0sdy5wcm90b3R5cGUuZ3RuPWZ1bmN0aW9uKGcpe3JldHVybiAxPT09dGhpcy5jbXBuKGcpfSx3LnByb3RvdHlwZS5ndD1mdW5jdGlvbihnKXtyZXR1cm4gMT09PXRoaXMuY21wKGcpfSx3LnByb3RvdHlwZS5ndGVuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNtcG4oZyk+PTB9LHcu'@; put 'cHJvdG90eXBlLmd0ZT1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbXAoZyk+PTB9LHcucHJvdG90eXBlLmx0bj1mdW5jdGlvbihnKXtyZXR1cm4tMT09PXRoaXMuY21wbihnKX0sdy5wcm90b3R5cGUubHQ9ZnVuY3Rpb24oZyl7cmV0dXJuLTE9PT10aGlzLmNtcChnKX0sdy5wcm90b3R5cGUu'@; put 'bHRlbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbXBuKGcpPD0wfSx3LnByb3RvdHlwZS5sdGU9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY21wKGcpPD0wfSx3LnByb3RvdHlwZS5lcW49ZnVuY3Rpb24oZyl7cmV0dXJuIDA9PT10aGlzLmNtcG4oZyl9LHcucHJvdG90eXBlLmVxPWZ1bmN0'@; put 'aW9uKGcpe3JldHVybiAwPT09dGhpcy5jbXAoZyl9LHcucmVkPWZ1bmN0aW9uKGcpe3JldHVybiBuZXcgU2UoZyl9LHcucHJvdG90eXBlLnRvUmVkPWZ1bmN0aW9uKGcpe3JldHVybiBwKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHAoMD09PXRo'@; put 'aXMubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksZy5jb252ZXJ0VG8odGhpcykuX2ZvcmNlUmVkKGcpfSx3LnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3aXRoIG51bWJlcnMgaW4gcmVk'@; put 'dWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX0sdy5wcm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLnJlZD1nLHRoaXN9LHcucHJvdG90eXBlLmZvcmNlUmVkPWZ1bmN0aW9uKGcpe3JldHVybiBwKCF0aGlzLnJlZCwiQWxyZWFkeSBh'@; put 'IG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMuX2ZvcmNlUmVkKGcpfSx3LnByb3RvdHlwZS5yZWRBZGQ9ZnVuY3Rpb24oZyl7cmV0dXJuIHAodGhpcy5yZWQsInJlZEFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5hZGQodGhpcyxnKX0sdy5wcm90'@; put 'b3R5cGUucmVkSUFkZD1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMsZyl9LHcucHJvdG90eXBlLnJlZFN1Yj1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkU3ViIHdv'@; put 'cmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnN1Yih0aGlzLGcpfSx3LnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0aW9uKGcpe3JldHVybiBwKHRoaXMucmVkLCJyZWRJU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlzdWIodGhpcyxnKX0sdy5w'@; put 'cm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKGcpe3JldHVybiBwKHRoaXMucmVkLCJyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMsZyl9LHcucHJvdG90eXBlLnJlZE11bD1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkTXVsIHdv'@; put 'cmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsZyksdGhpcy5yZWQubXVsKHRoaXMsZyl9LHcucHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24oZyl7cmV0dXJuIHAodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0'@; put 'aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLGcpLHRoaXMucmVkLmltdWwodGhpcyxnKX0sdy5wcm90b3R5cGUucmVkU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5yZWQsInJlZFNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJl'@; put 'ZC5zcXIodGhpcyl9LHcucHJvdG90eXBlLnJlZElTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkSVNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pc3FyKHRoaXMpfSx3LnByb3RvdHlwZS5yZWRTcXJ0'@; put 'PWZ1bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5yZWQsInJlZFNxcnQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FydCh0aGlzKX0sdy5wcm90b3R5cGUucmVkSW52bT1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMucmVkLCJy'@; put 'ZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmludm0odGhpcyl9LHcucHJvdG90eXBlLnJlZE5lZz1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMucmVkLCJyZWROZWcgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJz'@; put 'IiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQubmVnKHRoaXMpfSx3LnByb3RvdHlwZS5yZWRQb3c9ZnVuY3Rpb24oZyl7cmV0dXJuIHAodGhpcy5yZWQmJiFnLnJlZCwicmVkUG93KG5vcm1hbE51bSkiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5wb3codGhp'@; put 'cyxnKX07dmFyIHRlPXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gaWUoeixnKXt0aGlzLm5hbWU9eix0aGlzLnA9bmV3IHcoZywxNiksdGhpcy5uPXRoaXMucC5iaXRMZW5ndGgoKSx0aGlzLms9bmV3IHcoMSkuaXVzaGxuKHRoaXMubikuaXN1'@; put 'Yih0aGlzLnApLHRoaXMudG1wPXRoaXMuX3RtcCgpfWZ1bmN0aW9uIHNlKCl7aWUuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBnZSgpe2llLmNhbGwodGhp'@; put 'cywicDIyNCIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAxIil9ZnVuY3Rpb24gX2UoKXtpZS5jYWxsKHRoaXMsInAxOTIiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIp'@; put 'fWZ1bmN0aW9uIFRlKCl7aWUuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBTZSh6KXtpZigic3RyaW5nIj09dHlwZW9mIHope3ZhciBnPXcuX3ByaW1lKHopO3Ro'@; put 'aXMubT1nLnAsdGhpcy5wcmltZT1nfWVsc2UgcCh6Lmd0bigxKSwibW9kdWx1cyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxIiksdGhpcy5tPXosdGhpcy5wcmltZT1udWxsfWZ1bmN0aW9uIHplKHope1NlLmNhbGwodGhpcyx6KSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNo'@; put 'aWZ0JTI2IT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyB3KDEpLml1c2hsbih0aGlzLnNoaWZ0KSx0aGlzLnIyPXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIuX2ludm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwo'@; put 'dGhpcy5yKS5pc3VibigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9dGhpcy5yLnN1Yih0aGlzLm1pbnYpfWllLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFyIGc9bmV3IHcobnVsbCk7cmV0dXJuIGcud29yZHM9bmV3IEFycmF5'@; put 'KE1hdGguY2VpbCh0aGlzLm4vMTMpKSxnfSxpZS5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbihnKXt2YXIgeCx5PWc7ZG97dGhpcy5zcGxpdCh5LHRoaXMudG1wKSx4PSh5PSh5PXRoaXMuaW11bEsoeSkpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZSh4PnRoaXMubik7dmFy'@; put 'IEM9eDx0aGlzLm4/LTE6eS51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT1DPyh5LndvcmRzWzBdPTAseS5sZW5ndGg9MSk6Qz4wP3kuaXN1Yih0aGlzLnApOnZvaWQgMCE9PXkuc3RyaXA/eS5zdHJpcCgpOnkuX3N0cmlwKCkseX0saWUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKGcseSl7Zy5p'@; put 'dXNocm4odGhpcy5uLDAseSl9LGllLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihnKXtyZXR1cm4gZy5pbXVsKHRoaXMuayl9LE4oc2UsaWUpLHNlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihnLHkpe2Zvcih2YXIgeD00MTk0MzAzLEM9TWF0aC5taW4oZy5sZW5ndGgsOSksVD0wO1Q8QztU'@; put 'KyspeS53b3Jkc1tUXT1nLndvcmRzW1RdO2lmKHkubGVuZ3RoPUMsZy5sZW5ndGg8PTkpcmV0dXJuIGcud29yZHNbMF09MCx2b2lkKGcubGVuZ3RoPTEpO3ZhciBWPWcud29yZHNbOV07Zm9yKHkud29yZHNbeS5sZW5ndGgrK109ViZ4LFQ9MTA7VDxnLmxlbmd0aDtUKyspe3ZhciBVPTB8Zy53'@; put 'b3Jkc1tUXTtnLndvcmRzW1QtMTBdPShVJngpPDw0fFY+Pj4yMixWPVV9Zy53b3Jkc1tULTEwXT1WPj4+PTIyLGcubGVuZ3RoLT0wPT09ViYmZy5sZW5ndGg+MTA/MTA6OX0sc2UucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKGcpe2cud29yZHNbZy5sZW5ndGhdPTAsZy53b3Jkc1tnLmxlbmd0'@; put 'aCsxXT0wLGcubGVuZ3RoKz0yO2Zvcih2YXIgeT0wLHg9MDt4PGcubGVuZ3RoO3grKyl7dmFyIEM9MHxnLndvcmRzW3hdO2cud29yZHNbeF09NjcxMDg4NjMmKHkrPTk3NypDKSx5PTY0KkMrKHkvNjcxMDg4NjR8MCl9cmV0dXJuIDA9PT1nLndvcmRzW2cubGVuZ3RoLTFdJiYoZy5sZW5ndGgt'@; put 'LSwwPT09Zy53b3Jkc1tnLmxlbmd0aC0xXSYmZy5sZW5ndGgtLSksZ30sTihnZSxpZSksTihfZSxpZSksTihUZSxpZSksVGUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKGcpe2Zvcih2YXIgeT0wLHg9MDt4PGcubGVuZ3RoO3grKyl7dmFyIEM9MTkqKDB8Zy53b3Jkc1t4XSkreSxUPTY3MTA4'@; put 'ODYzJkM7Qz4+Pj0yNixnLndvcmRzW3hdPVQseT1DfXJldHVybiAwIT09eSYmKGcud29yZHNbZy5sZW5ndGgrK109eSksZ30sdy5fcHJpbWU9ZnVuY3Rpb24oZyl7aWYodGVbZ10pcmV0dXJuIHRlW2ddO3ZhciB5O2lmKCJrMjU2Ij09PWcpeT1uZXcgc2U7ZWxzZSBpZigicDIyNCI9PT1nKXk9'@; put 'bmV3IGdlO2Vsc2UgaWYoInAxOTIiPT09Zyl5PW5ldyBfZTtlbHNle2lmKCJwMjU1MTkiIT09Zyl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gcHJpbWUgIitnKTt5PW5ldyBUZX1yZXR1cm4gdGVbZ109eSx5fSxTZS5wcm90b3R5cGUuX3ZlcmlmeTE9ZnVuY3Rpb24oZyl7cCgwPT09Zy5uZWdh'@; put 'dGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxwKGcucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LFNlLnByb3RvdHlwZS5fdmVyaWZ5Mj1mdW5jdGlvbihnLHkpe3AoIShnLm5lZ2F0aXZlfHkubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRo'@; put 'IHBvc2l0aXZlcyIpLHAoZy5yZWQmJmcucmVkPT09eS5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sU2UucHJvdG90eXBlLmltb2Q9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKGcpLl9mb3JjZVJlZCh0aGlzKTpnLnVtb2Qo'@; put 'dGhpcy5tKS5fZm9yY2VSZWQodGhpcyl9LFNlLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oZyl7cmV0dXJuIGcuaXNaZXJvKCk/Zy5jbG9uZSgpOnRoaXMubS5zdWIoZykuX2ZvcmNlUmVkKHRoaXMpfSxTZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGcseSl7dGhpcy5fdmVyaWZ5MihnLHkpO3Zh'@; put 'ciB4PWcuYWRkKHkpO3JldHVybiB4LmNtcCh0aGlzLm0pPj0wJiZ4LmlzdWIodGhpcy5tKSx4Ll9mb3JjZVJlZCh0aGlzKX0sU2UucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oZyx5KXt0aGlzLl92ZXJpZnkyKGcseSk7dmFyIHg9Zy5pYWRkKHkpO3JldHVybiB4LmNtcCh0aGlzLm0pPj0wJiZ4'@; put 'LmlzdWIodGhpcy5tKSx4fSxTZS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKGcseSl7dGhpcy5fdmVyaWZ5MihnLHkpO3ZhciB4PWcuc3ViKHkpO3JldHVybiB4LmNtcG4oMCk8MCYmeC5pYWRkKHRoaXMubSkseC5fZm9yY2VSZWQodGhpcyl9LFNlLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKGcs'@; put 'eSl7dGhpcy5fdmVyaWZ5MihnLHkpO3ZhciB4PWcuaXN1Yih5KTtyZXR1cm4geC5jbXBuKDApPDAmJnguaWFkZCh0aGlzLm0pLHh9LFNlLnByb3RvdHlwZS5zaGw9ZnVuY3Rpb24oZyx5KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MShnKSx0aGlzLmltb2QoZy51c2hsbih5KSl9LFNlLnByb3RvdHlw'@; put 'ZS5pbXVsPWZ1bmN0aW9uKGcseSl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoZyx5KSx0aGlzLmltb2QoZy5pbXVsKHkpKX0sU2UucHJvdG90eXBlLm11bD1mdW5jdGlvbihnLHkpe3JldHVybiB0aGlzLl92ZXJpZnkyKGcseSksdGhpcy5pbW9kKGcubXVsKHkpKX0sU2UucHJvdG90eXBlLmlzcXI9'@; put 'ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuaW11bChnLGcuY2xvbmUoKSl9LFNlLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubXVsKGcsZyl9LFNlLnByb3RvdHlwZS5zcXJ0PWZ1bmN0aW9uKGcpe2lmKGcuaXNaZXJvKCkpcmV0dXJuIGcuY2xvbmUoKTt2YXIgeT10aGlz'@; put 'Lm0uYW5kbG4oMyk7aWYocCh5JTI9PTEpLDM9PT15KXt2YXIgeD10aGlzLm0uYWRkKG5ldyB3KDEpKS5pdXNocm4oMik7cmV0dXJuIHRoaXMucG93KGcseCl9Zm9yKHZhciBDPXRoaXMubS5zdWJuKDEpLFQ9MDshQy5pc1plcm8oKSYmMD09PUMuYW5kbG4oMSk7KVQrKyxDLml1c2hybigxKTtw'@; put 'KCFDLmlzWmVybygpKTt2YXIgVj1uZXcgdygxKS50b1JlZCh0aGlzKSxVPVYucmVkTmVnKCksRT10aGlzLm0uc3VibigxKS5pdXNocm4oMSksbT10aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKG09bmV3IHcoMiptKm0pLnRvUmVkKHRoaXMpOzAhPT10aGlzLnBvdyhtLEUpLmNtcChVKTspbS5yZWRJ'@; put 'QWRkKFUpO2Zvcih2YXIgQT10aGlzLnBvdyhtLEMpLGFlPXRoaXMucG93KGcsQy5hZGRuKDEpLml1c2hybigxKSksbmU9dGhpcy5wb3coZyxDKSxsZT1UOzAhPT1uZS5jbXAoVik7KXtmb3IodmFyIHdlPW5lLFplPTA7MCE9PXdlLmNtcChWKTtaZSsrKXdlPXdlLnJlZFNxcigpO3AoWmU8bGUp'@; put 'O3ZhciBRZT10aGlzLnBvdyhBLG5ldyB3KDEpLml1c2hsbihsZS1aZS0xKSk7YWU9YWUucmVkTXVsKFFlKSxBPVFlLnJlZFNxcigpLG5lPW5lLnJlZE11bChBKSxsZT1aZX1yZXR1cm4gYWV9LFNlLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKGcpe3ZhciB5PWcuX2ludm1wKHRoaXMubSk7cmV0'@; put 'dXJuIDAhPT15Lm5lZ2F0aXZlPyh5Lm5lZ2F0aXZlPTAsdGhpcy5pbW9kKHkpLnJlZE5lZygpKTp0aGlzLmltb2QoeSl9LFNlLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oZyx5KXtpZih5LmlzWmVybygpKXJldHVybiBuZXcgdygxKS50b1JlZCh0aGlzKTtpZigwPT09eS5jbXBuKDEpKXJldHVy'@; put 'biBnLmNsb25lKCk7dmFyIEM9bmV3IEFycmF5KDE2KTtDWzBdPW5ldyB3KDEpLnRvUmVkKHRoaXMpLENbMV09Zztmb3IodmFyIFQ9MjtUPEMubGVuZ3RoO1QrKylDW1RdPXRoaXMubXVsKENbVC0xXSxnKTt2YXIgVj1DWzBdLFU9MCxFPTAsbT15LmJpdExlbmd0aCgpJTI2O2ZvcigwPT09bSYm'@; put 'KG09MjYpLFQ9eS5sZW5ndGgtMTtUPj0wO1QtLSl7Zm9yKHZhciBBPXkud29yZHNbVF0sYWU9bS0xO2FlPj0wO2FlLS0pe3ZhciBuZT1BPj5hZSYxO1YhPT1DWzBdJiYoVj10aGlzLnNxcihWKSksMCE9PW5lfHwwIT09VT8oVTw8PTEsVXw9bmUsKDQ9PSsrRXx8MD09PVQmJjA9PT1hZSkmJihW'@; put 'PXRoaXMubXVsKFYsQ1tVXSksRT0wLFU9MCkpOkU9MH1tPTI2fXJldHVybiBWfSxTZS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKGcpe3ZhciB5PWcudW1vZCh0aGlzLm0pO3JldHVybiB5PT09Zz95LmNsb25lKCk6eX0sU2UucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKGcp'@; put 'e3ZhciB5PWcuY2xvbmUoKTtyZXR1cm4geS5yZWQ9bnVsbCx5fSx3Lm1vbnQ9ZnVuY3Rpb24oZyl7cmV0dXJuIG5ldyB6ZShnKX0sTih6ZSxTZSksemUucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5pbW9kKGcudXNobG4odGhpcy5zaGlmdCkpfSx6ZS5wcm90'@; put 'b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oZyl7dmFyIHk9dGhpcy5pbW9kKGcubXVsKHRoaXMucmludikpO3JldHVybiB5LnJlZD1udWxsLHl9LHplLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKGcseSl7aWYoZy5pc1plcm8oKXx8eS5pc1plcm8oKSlyZXR1cm4gZy53b3Jkc1swXT0wLGcu'@; put 'bGVuZ3RoPTEsZzt2YXIgeD1nLmltdWwoeSksQz14Lm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxUPXguaXN1YihDKS5pdXNocm4odGhpcy5zaGlmdCksVj1UO3JldHVybiBULmNtcCh0aGlzLm0pPj0wP1Y9VC5pc3ViKHRo'@; put 'aXMubSk6VC5jbXBuKDApPDAmJihWPVQuaWFkZCh0aGlzLm0pKSxWLl9mb3JjZVJlZCh0aGlzKX0semUucHJvdG90eXBlLm11bD1mdW5jdGlvbihnLHkpe2lmKGcuaXNaZXJvKCl8fHkuaXNaZXJvKCkpcmV0dXJuIG5ldyB3KDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgeD1nLm11bCh5KSxDPXgu'@; put 'bWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLFQ9eC5pc3ViKEMpLml1c2hybih0aGlzLnNoaWZ0KSxWPVQ7cmV0dXJuIFQuY21wKHRoaXMubSk+PTA/Vj1ULmlzdWIodGhpcy5tKTpULmNtcG4oMCk8MCYmKFY9VC5pYWRkKHRo'@; put 'aXMubSkpLFYuX2ZvcmNlUmVkKHRoaXMpfSx6ZS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5pbW9kKGcuX2ludm1wKHRoaXMubSkubXVsKHRoaXMucjIpKS5fZm9yY2VSZWQodGhpcyl9fShjZT1iLm5tZChjZSksdGhpcyl9LDk3NDY6Y2U9PntmdW5jdGlvbiBKKGIs'@; put 'RCl7aWYoIWIpdGhyb3cgbmV3IEVycm9yKER8fCJBc3NlcnRpb24gZmFpbGVkIil9Y2UuZXhwb3J0cz1KLEouZXF1YWw9ZnVuY3Rpb24oRCxfLHApe2lmKEQhPV8pdGhyb3cgbmV3IEVycm9yKHB8fCJBc3NlcnRpb24gZmFpbGVkOiAiK0QrIiAhPSAiK18pfX0sNDUwNDooY2UsSik9PnsidXNl'@; put 'IHN0cmljdCI7dmFyIGI9SjtmdW5jdGlvbiBfKE4pe3JldHVybiAxPT09Ti5sZW5ndGg/IjAiK046Tn1mdW5jdGlvbiBwKE4pe2Zvcih2YXIgdz0iIixGPTA7RjxOLmxlbmd0aDtGKyspdys9XyhOW0ZdLnRvU3RyaW5nKDE2KSk7cmV0dXJuIHd9Yi50b0FycmF5PWZ1bmN0aW9uIEQoTix3KXtp'@; put 'ZihBcnJheS5pc0FycmF5KE4pKXJldHVybiBOLnNsaWNlKCk7aWYoIU4pcmV0dXJuW107dmFyIEY9W107aWYoInN0cmluZyIhPXR5cGVvZiBOKXtmb3IodmFyIEg9MDtIPE4ubGVuZ3RoO0grKylGW0hdPTB8TltIXTtyZXR1cm4gRn1pZigiaGV4Ij09PXcpZm9yKChOPU4ucmVwbGFjZSgvW15h'@; put 'LXowLTldKy9naSwiIikpLmxlbmd0aCUyIT0wJiYoTj0iMCIrTiksSD0wO0g8Ti5sZW5ndGg7SCs9MilGLnB1c2gocGFyc2VJbnQoTltIXStOW0grMV0sMTYpKTtlbHNlIGZvcihIPTA7SDxOLmxlbmd0aDtIKyspe3ZhciBSPU4uY2hhckNvZGVBdChIKSxqPVI+PjgsUD0yNTUmUjtqP0YucHVz'@; put 'aChqLFApOkYucHVzaChQKX1yZXR1cm4gRn0sYi56ZXJvMj1fLGIudG9IZXg9cCxiLmVuY29kZT1mdW5jdGlvbih3LEYpe3JldHVybiJoZXgiPT09Rj9wKHcpOnd9fSw0MjQ0OmNlPT57InVzZSBzdHJpY3QiO3ZhciBKPWZ1bmN0aW9uKGIpe3JldHVybiBiIT1ifTtjZS5leHBvcnRzPWZ1bmN0'@; put 'aW9uKEQsXyl7cmV0dXJuIDA9PT1EJiYwPT09Xz8xL0Q9PTEvXzohIShEPT09X3x8SihEKSYmSihfKSl9fSw2MDk6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig0Mjg5KSxfPWIoNTU1OSkscD1iKDQyNDQpLE49Yig1NjI0KSx3PWIoMjI4MSksRj1fKE4oKSxPYmplY3QpO0QoRix7'@; put 'Z2V0UG9seWZpbGw6TixpbXBsZW1lbnRhdGlvbjpwLHNoaW06d30pLGNlLmV4cG9ydHM9Rn0sNTYyNDooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDQyNDQpO2NlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmlzP09iamVjdC5pczpE'@; put 'fX0sMjI4MTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDU2MjQpLF89Yig0Mjg5KTtjZS5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIE49RCgpO3JldHVybiBfKE9iamVjdCx7aXM6Tn0se2lzOmZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5pcyE9PU59fSksTn19LDg5ODc6KGNlLEos'@; put 'Yik9PnsidXNlIHN0cmljdCI7dmFyIEQ7aWYoIU9iamVjdC5rZXlzKXt2YXIgXz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LHA9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxOPWIoMTQxNCksdz1PYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLEY9IXcuY2Fs'@; put 'bCh7dG9TdHJpbmc6bnVsbH0sInRvU3RyaW5nIiksSD13LmNhbGwoZnVuY3Rpb24oKXt9LCJwcm90b3R5cGUiKSxSPVsidG9TdHJpbmciLCJ0b0xvY2FsZVN0cmluZyIsInZhbHVlT2YiLCJoYXNPd25Qcm9wZXJ0eSIsImlzUHJvdG90eXBlT2YiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImNv'@; put 'bnN0cnVjdG9yIl0saj1mdW5jdGlvbihCKXt2YXIgVz1CLmNvbnN0cnVjdG9yO3JldHVybiBXJiZXLnByb3RvdHlwZT09PUJ9LFA9eyRhcHBsaWNhdGlvbkNhY2hlOiEwLCRjb25zb2xlOiEwLCRleHRlcm5hbDohMCwkZnJhbWU6ITAsJGZyYW1lRWxlbWVudDohMCwkZnJhbWVzOiEwLCRpbm5l'@; put 'ckhlaWdodDohMCwkaW5uZXJXaWR0aDohMCwkb25tb3pmdWxsc2NyZWVuY2hhbmdlOiEwLCRvbm1vemZ1bGxzY3JlZW5lcnJvcjohMCwkb3V0ZXJIZWlnaHQ6ITAsJG91dGVyV2lkdGg6ITAsJHBhZ2VYT2Zmc2V0OiEwLCRwYWdlWU9mZnNldDohMCwkcGFyZW50OiEwLCRzY3JvbGxMZWZ0OiEw'@; put 'LCRzY3JvbGxUb3A6ITAsJHNjcm9sbFg6ITAsJHNjcm9sbFk6ITAsJHNlbGY6ITAsJHdlYmtpdEluZGV4ZWREQjohMCwkd2Via2l0U3RvcmFnZUluZm86ITAsJHdpbmRvdzohMH0sTD1mdW5jdGlvbigpe2lmKHR5cGVvZiB3aW5kb3c+InUiKXJldHVybiExO2Zvcih2YXIgQiBpbiB3aW5kb3cp'@; put 'dHJ5e2lmKCFQWyIkIitCXSYmXy5jYWxsKHdpbmRvdyxCKSYmbnVsbCE9PXdpbmRvd1tCXSYmIm9iamVjdCI9PXR5cGVvZiB3aW5kb3dbQl0pdHJ5e2ood2luZG93W0JdKX1jYXRjaHtyZXR1cm4hMH19Y2F0Y2h7cmV0dXJuITB9cmV0dXJuITF9KCk7RD1mdW5jdGlvbihXKXt2YXIgWj1udWxs'@; put 'IT09VyYmIm9iamVjdCI9PXR5cGVvZiBXLFg9IltvYmplY3QgRnVuY3Rpb25dIj09PXAuY2FsbChXKSxRPU4oVykscT1aJiYiW29iamVjdCBTdHJpbmddIj09PXAuY2FsbChXKSx0ZT1bXTtpZighWiYmIVgmJiFRKXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdC5rZXlzIGNhbGxlZCBvbiBh'@; put 'IG5vbi1vYmplY3QiKTt2YXIgaWU9SCYmWDtpZihxJiZXLmxlbmd0aD4wJiYhXy5jYWxsKFcsMCkpZm9yKHZhciBzZT0wO3NlPFcubGVuZ3RoOysrc2UpdGUucHVzaChTdHJpbmcoc2UpKTtpZihRJiZXLmxlbmd0aD4wKWZvcih2YXIgZ2U9MDtnZTxXLmxlbmd0aDsrK2dlKXRlLnB1c2goU3Ry'@; put 'aW5nKGdlKSk7ZWxzZSBmb3IodmFyIF9lIGluIFcpKCFpZXx8InByb3RvdHlwZSIhPT1fZSkmJl8uY2FsbChXLF9lKSYmdGUucHVzaChTdHJpbmcoX2UpKTtpZihGKWZvcih2YXIgVGU9ZnVuY3Rpb24oQil7aWYodHlwZW9mIHdpbmRvdz4idSJ8fCFMKXJldHVybiBqKEIpO3RyeXtyZXR1cm4g'@; put 'aihCKX1jYXRjaHtyZXR1cm4hMX19KFcpLFNlPTA7U2U8Ui5sZW5ndGg7KytTZSkoIVRlfHwiY29uc3RydWN0b3IiIT09UltTZV0pJiZfLmNhbGwoVyxSW1NlXSkmJnRlLnB1c2goUltTZV0pO3JldHVybiB0ZX19Y2UuZXhwb3J0cz1EfSwyMjE1OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3Zh'@; put 'ciBEPUFycmF5LnByb3RvdHlwZS5zbGljZSxfPWIoMTQxNCkscD1PYmplY3Qua2V5cyxOPXA/ZnVuY3Rpb24oSCl7cmV0dXJuIHAoSCl9OmIoODk4Nyksdz1PYmplY3Qua2V5cztOLnNoaW09ZnVuY3Rpb24oKXtpZihPYmplY3Qua2V5cyl7dmFyIEg9ZnVuY3Rpb24oKXt2YXIgUj1PYmplY3Qu'@; put 'a2V5cyhhcmd1bWVudHMpO3JldHVybiBSJiZSLmxlbmd0aD09PWFyZ3VtZW50cy5sZW5ndGh9KDEsMik7SHx8KE9iamVjdC5rZXlzPWZ1bmN0aW9uKGope3JldHVybiBfKGopP3coRC5jYWxsKGopKTp3KGopfSl9ZWxzZSBPYmplY3Qua2V5cz1OO3JldHVybiBPYmplY3Qua2V5c3x8Tn0sY2Uu'@; put 'ZXhwb3J0cz1OfSwxNDE0OmNlPT57InVzZSBzdHJpY3QiO3ZhciBKPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7Y2UuZXhwb3J0cz1mdW5jdGlvbihEKXt2YXIgXz1KLmNhbGwoRCkscD0iW29iamVjdCBBcmd1bWVudHNdIj09PV87cmV0dXJuIHB8fChwPSJbb2JqZWN0IEFycmF5XSIhPT1f'@; put 'JiZudWxsIT09RCYmIm9iamVjdCI9PXR5cGVvZiBEJiYibnVtYmVyIj09dHlwZW9mIEQubGVuZ3RoJiZELmxlbmd0aD49MCYmIltvYmplY3QgRnVuY3Rpb25dIj09PUouY2FsbChELmNhbGxlZSkpLHB9fSwyODM3OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMjIxNSksXz1iKDU0'@; put 'MTkpKCkscD1iKDczNzkpLE49Yig4ODkyKSx3PXAoIkFycmF5LnByb3RvdHlwZS5wdXNoIiksRj1wKCJPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlIiksSD1fP04uZ2V0T3duUHJvcGVydHlTeW1ib2xzOm51bGw7Y2UuZXhwb3J0cz1mdW5jdGlvbihqLFApe2lmKG51bGw9'@; put 'PWopdGhyb3cgbmV3IFR5cGVFcnJvcigidGFyZ2V0IG11c3QgYmUgYW4gb2JqZWN0Iik7dmFyIEw9TihqKTtpZigxPT09YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gTDtmb3IodmFyIFk9MTtZPGFyZ3VtZW50cy5sZW5ndGg7KytZKXt2YXIgQj1OKGFyZ3VtZW50c1tZXSksVz1EKEIpLFo9XyYm'@; put 'KE4uZ2V0T3duUHJvcGVydHlTeW1ib2xzfHxIKTtpZihaKWZvcih2YXIgWD1aKEIpLFE9MDtRPFgubGVuZ3RoOysrUSl7dmFyIHE9WFtRXTtGKEIscSkmJncoVyxxKX1mb3IodmFyIHRlPTA7dGU8Vy5sZW5ndGg7Kyt0ZSl7dmFyIGllPVdbdGVdO0YoQixpZSkmJihMW2llXT1CW2llXSl9fXJl'@; put 'dHVybiBMfX0sODE2MjooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDI4MzcpO2NlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4hT2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oKXtpZighT2JqZWN0LmFzc2lnbilyZXR1cm4hMTtmb3IodmFyIE49ImFiY2RlZmdoaWprbG1ub3BxcnN0'@; put 'Iix3PU4uc3BsaXQoIiIpLEY9e30sSD0wO0g8dy5sZW5ndGg7KytIKUZbd1tIXV09d1tIXTt2YXIgUj1PYmplY3QuYXNzaWduKHt9LEYpLGo9IiI7Zm9yKHZhciBQIGluIFIpais9UDtyZXR1cm4gTiE9PWp9KCl8fGZ1bmN0aW9uKCl7aWYoIU9iamVjdC5hc3NpZ258fCFPYmplY3QucHJldmVu'@; put 'dEV4dGVuc2lvbnMpcmV0dXJuITE7dmFyIE49T2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHsxOjJ9KTt0cnl7T2JqZWN0LmFzc2lnbihOLCJ4eSIpfWNhdGNoe3JldHVybiJ5Ij09PU5bMV19cmV0dXJuITF9KCk/RDpPYmplY3QuYXNzaWdufX0sNzQzNTooY2UsSik9PntKLmVuZGlhbm5lc3M9'@; put 'ZnVuY3Rpb24oKXtyZXR1cm4iTEUifSxKLmhvc3RuYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBsb2NhdGlvbjwidSI/bG9jYXRpb24uaG9zdG5hbWU6IiJ9LEoubG9hZGF2Zz1mdW5jdGlvbigpe3JldHVybltdfSxKLnVwdGltZT1mdW5jdGlvbigpe3JldHVybiAwfSxKLmZyZWVtZW09'@; put 'ZnVuY3Rpb24oKXtyZXR1cm4gTnVtYmVyLk1BWF9WQUxVRX0sSi50b3RhbG1lbT1mdW5jdGlvbigpe3JldHVybiBOdW1iZXIuTUFYX1ZBTFVFfSxKLmNwdXM9ZnVuY3Rpb24oKXtyZXR1cm5bXX0sSi50eXBlPWZ1bmN0aW9uKCl7cmV0dXJuIkJyb3dzZXIifSxKLnJlbGVhc2U9ZnVuY3Rpb24o'@; put 'KXtyZXR1cm4gdHlwZW9mIG5hdmlnYXRvcjwidSI/bmF2aWdhdG9yLmFwcFZlcnNpb246IiJ9LEoubmV0d29ya0ludGVyZmFjZXM9Si5nZXROZXR3b3JrSW50ZXJmYWNlcz1mdW5jdGlvbigpe3JldHVybnt9fSxKLmFyY2g9ZnVuY3Rpb24oKXtyZXR1cm4iamF2YXNjcmlwdCJ9LEoucGxhdGZv'@; put 'cm09ZnVuY3Rpb24oKXtyZXR1cm4iYnJvd3NlciJ9LEoudG1wZGlyPUoudG1wRGlyPWZ1bmN0aW9uKCl7cmV0dXJuIi90bXAifSxKLkVPTD0iXG4iLEouaG9tZWRpcj1mdW5jdGlvbigpe3JldHVybiIvIn19LDI4MTg6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig5ODA5KTtKLmNl'@; put 'cnRpZmljYXRlPWIoMTkzNCk7dmFyIF89RC5kZWZpbmUoIlJTQVByaXZhdGVLZXkiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInZlcnNpb24iKS5pbnQoKSx0aGlzLmtleSgibW9kdWx1cyIpLmludCgpLHRoaXMua2V5KCJwdWJsaWNFeHBvbmVudCIpLmludCgpLHRoaXMu'@; put 'a2V5KCJwcml2YXRlRXhwb25lbnQiKS5pbnQoKSx0aGlzLmtleSgicHJpbWUxIikuaW50KCksdGhpcy5rZXkoInByaW1lMiIpLmludCgpLHRoaXMua2V5KCJleHBvbmVudDEiKS5pbnQoKSx0aGlzLmtleSgiZXhwb25lbnQyIikuaW50KCksdGhpcy5rZXkoImNvZWZmaWNpZW50IikuaW50KCkp'@; put 'fSk7Si5SU0FQcml2YXRlS2V5PV87dmFyIHA9RC5kZWZpbmUoIlJTQVB1YmxpY0tleSIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgibW9kdWx1cyIpLmludCgpLHRoaXMua2V5KCJwdWJsaWNFeHBvbmVudCIpLmludCgpKX0pO0ouUlNBUHVibGljS2V5PXA7dmFyIE49RC5k'@; put 'ZWZpbmUoIkFsZ29yaXRobUlkZW50aWZpZXIiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoImFsZ29yaXRobSIpLm9iamlkKCksdGhpcy5rZXkoIm5vbmUiKS5udWxsXygpLm9wdGlvbmFsKCksdGhpcy5rZXkoImN1cnZlIikub2JqaWQoKS5vcHRpb25hbCgpLHRoaXMua2V5'@; put 'KCJwYXJhbXMiKS5zZXEoKS5vYmoodGhpcy5rZXkoInAiKS5pbnQoKSx0aGlzLmtleSgicSIpLmludCgpLHRoaXMua2V5KCJnIikuaW50KCkpLm9wdGlvbmFsKCkpfSksdz1ELmRlZmluZSgiU3ViamVjdFB1YmxpY0tleUluZm8iLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXko'@; put 'ImFsZ29yaXRobSIpLnVzZShOKSx0aGlzLmtleSgic3ViamVjdFB1YmxpY0tleSIpLmJpdHN0cigpKX0pO0ouUHVibGljS2V5PXc7dmFyIEY9RC5kZWZpbmUoIlByaXZhdGVLZXlJbmZvIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ2ZXJzaW9uIikuaW50KCksdGhpcy5r'@; put 'ZXkoImFsZ29yaXRobSIpLnVzZShOKSx0aGlzLmtleSgic3ViamVjdFByaXZhdGVLZXkiKS5vY3RzdHIoKSl9KTtKLlByaXZhdGVLZXk9Rjt2YXIgSD1ELmRlZmluZSgiRW5jcnlwdGVkUHJpdmF0ZUtleUluZm8iLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoImFsZ29yaXRo'@; put 'bSIpLnNlcSgpLm9iaih0aGlzLmtleSgiaWQiKS5vYmppZCgpLHRoaXMua2V5KCJkZWNyeXB0Iikuc2VxKCkub2JqKHRoaXMua2V5KCJrZGUiKS5zZXEoKS5vYmoodGhpcy5rZXkoImlkIikub2JqaWQoKSx0aGlzLmtleSgia2RlcGFyYW1zIikuc2VxKCkub2JqKHRoaXMua2V5KCJzYWx0Iiku'@; put 'b2N0c3RyKCksdGhpcy5rZXkoIml0ZXJzIikuaW50KCkpKSx0aGlzLmtleSgiY2lwaGVyIikuc2VxKCkub2JqKHRoaXMua2V5KCJhbGdvIikub2JqaWQoKSx0aGlzLmtleSgiaXYiKS5vY3RzdHIoKSkpKSx0aGlzLmtleSgic3ViamVjdFByaXZhdGVLZXkiKS5vY3RzdHIoKSl9KTtKLkVuY3J5'@; put 'cHRlZFByaXZhdGVLZXk9SDt2YXIgUj1ELmRlZmluZSgiRFNBUHJpdmF0ZUtleSIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgidmVyc2lvbiIpLmludCgpLHRoaXMua2V5KCJwIikuaW50KCksdGhpcy5rZXkoInEiKS5pbnQoKSx0aGlzLmtleSgiZyIpLmludCgpLHRoaXMu'@; put 'a2V5KCJwdWJfa2V5IikuaW50KCksdGhpcy5rZXkoInByaXZfa2V5IikuaW50KCkpfSk7Si5EU0FQcml2YXRlS2V5PVIsSi5EU0FwYXJhbT1ELmRlZmluZSgiRFNBcGFyYW0iLGZ1bmN0aW9uKCl7dGhpcy5pbnQoKX0pO3ZhciBqPUQuZGVmaW5lKCJFQ1BhcmFtZXRlcnMiLGZ1bmN0aW9uKCl7'@; put 'dGhpcy5jaG9pY2Uoe25hbWVkQ3VydmU6dGhpcy5vYmppZCgpfSl9KSxQPUQuZGVmaW5lKCJFQ1ByaXZhdGVLZXkiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInZlcnNpb24iKS5pbnQoKSx0aGlzLmtleSgicHJpdmF0ZUtleSIpLm9jdHN0cigpLHRoaXMua2V5KCJwYXJh'@; put 'bWV0ZXJzIikub3B0aW9uYWwoKS5leHBsaWNpdCgwKS51c2UoaiksdGhpcy5rZXkoInB1YmxpY0tleSIpLm9wdGlvbmFsKCkuZXhwbGljaXQoMSkuYml0c3RyKCkpfSk7Si5FQ1ByaXZhdGVLZXk9UCxKLnNpZ25hdHVyZT1ELmRlZmluZSgic2lnbmF0dXJlIixmdW5jdGlvbigpe3RoaXMuc2Vx'@; put 'KCkub2JqKHRoaXMua2V5KCJyIikuaW50KCksdGhpcy5rZXkoInMiKS5pbnQoKSl9KX0sMTkzNDooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDk4MDkpLF89RC5kZWZpbmUoIlRpbWUiLGZ1bmN0aW9uKCl7dGhpcy5jaG9pY2Uoe3V0Y1RpbWU6dGhpcy51dGN0aW1lKCksZ2VuZXJh'@; put 'bFRpbWU6dGhpcy5nZW50aW1lKCl9KX0pLHA9RC5kZWZpbmUoIkF0dHJpYnV0ZVR5cGVWYWx1ZSIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgidHlwZSIpLm9iamlkKCksdGhpcy5rZXkoInZhbHVlIikuYW55KCkpfSksTj1ELmRlZmluZSgiQWxnb3JpdGhtSWRlbnRpZmll'@; put 'ciIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgiYWxnb3JpdGhtIikub2JqaWQoKSx0aGlzLmtleSgicGFyYW1ldGVycyIpLm9wdGlvbmFsKCksdGhpcy5rZXkoImN1cnZlIikub2JqaWQoKS5vcHRpb25hbCgpKX0pLHc9RC5kZWZpbmUoIlN1YmplY3RQdWJsaWNLZXlJbmZv'@; put 'IixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJhbGdvcml0aG0iKS51c2UoTiksdGhpcy5rZXkoInN1YmplY3RQdWJsaWNLZXkiKS5iaXRzdHIoKSl9KSxGPUQuZGVmaW5lKCJSZWxhdGl2ZURpc3Rpbmd1aXNoZWROYW1lIixmdW5jdGlvbigpe3RoaXMuc2V0b2YocCl9KSxI'@; put 'PUQuZGVmaW5lKCJSRE5TZXF1ZW5jZSIsZnVuY3Rpb24oKXt0aGlzLnNlcW9mKEYpfSksUj1ELmRlZmluZSgiTmFtZSIsZnVuY3Rpb24oKXt0aGlzLmNob2ljZSh7cmRuU2VxdWVuY2U6dGhpcy51c2UoSCl9KX0pLGo9RC5kZWZpbmUoIlZhbGlkaXR5IixmdW5jdGlvbigpe3RoaXMuc2VxKCku'@; put 'b2JqKHRoaXMua2V5KCJub3RCZWZvcmUiKS51c2UoXyksdGhpcy5rZXkoIm5vdEFmdGVyIikudXNlKF8pKX0pLFA9RC5kZWZpbmUoIkV4dGVuc2lvbiIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgiZXh0bklEIikub2JqaWQoKSx0aGlzLmtleSgiY3JpdGljYWwiKS5ib29s'@; put 'KCkuZGVmKCExKSx0aGlzLmtleSgiZXh0blZhbHVlIikub2N0c3RyKCkpfSksTD1ELmRlZmluZSgiVEJTQ2VydGlmaWNhdGUiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInZlcnNpb24iKS5leHBsaWNpdCgwKS5pbnQoKS5vcHRpb25hbCgpLHRoaXMua2V5KCJzZXJpYWxO'@; put 'dW1iZXIiKS5pbnQoKSx0aGlzLmtleSgic2lnbmF0dXJlIikudXNlKE4pLHRoaXMua2V5KCJpc3N1ZXIiKS51c2UoUiksdGhpcy5rZXkoInZhbGlkaXR5IikudXNlKGopLHRoaXMua2V5KCJzdWJqZWN0IikudXNlKFIpLHRoaXMua2V5KCJzdWJqZWN0UHVibGljS2V5SW5mbyIpLnVzZSh3KSx0'@; put 'aGlzLmtleSgiaXNzdWVyVW5pcXVlSUQiKS5pbXBsaWNpdCgxKS5iaXRzdHIoKS5vcHRpb25hbCgpLHRoaXMua2V5KCJzdWJqZWN0VW5pcXVlSUQiKS5pbXBsaWNpdCgyKS5iaXRzdHIoKS5vcHRpb25hbCgpLHRoaXMua2V5KCJleHRlbnNpb25zIikuZXhwbGljaXQoMykuc2Vxb2YoUCkub3B0'@; put 'aW9uYWwoKSl9KSxZPUQuZGVmaW5lKCJYNTA5Q2VydGlmaWNhdGUiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInRic0NlcnRpZmljYXRlIikudXNlKEwpLHRoaXMua2V5KCJzaWduYXR1cmVBbGdvcml0aG0iKS51c2UoTiksdGhpcy5rZXkoInNpZ25hdHVyZVZhbHVlIiku'@; put 'Yml0c3RyKCkpfSk7Y2UuZXhwb3J0cz1ZfSw3NjMxOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPS9Qcm9jLVR5cGU6IDQsRU5DUllQVEVEW1xuXHJdK0RFSy1JbmZvOiBBRVMtKCg/OjEyOCl8KD86MTkyKXwoPzoyNTYpKS1DQkMsKFswLTlBLUhdKylbXG5ccl0rKFswLTlBLXpcblxy'@; put 'Ky89XSspW1xuXHJdKy9tLF89L14tLS0tLUJFR0lOICgoPzouKj8gS0VZKXxDRVJUSUZJQ0FURSktLS0tLS9tLHA9L14tLS0tLUJFR0lOICgoPzouKj8gS0VZKXxDRVJUSUZJQ0FURSktLS0tLShbMC05QS16XG5ccisvPV0rKS0tLS0tRU5EIFwxLS0tLS0kL20sTj1iKDMwNDgpLHc9Yig0Njk2'@; put 'KSxGPWIoOTUwOSkuQnVmZmVyO2NlLmV4cG9ydHM9ZnVuY3Rpb24oSCxSKXt2YXIgTCxqPUgudG9TdHJpbmcoKSxQPWoubWF0Y2goRCk7aWYoUCl7dmFyIEI9ImFlcyIrUFsxXSxXPUYuZnJvbShQWzJdLCJoZXgiKSxaPUYuZnJvbShQWzNdLnJlcGxhY2UoL1tcclxuXS9nLCIiKSwiYmFzZTY0'@; put 'IiksWD1OKFIsVy5zbGljZSgwLDgpLHBhcnNlSW50KFBbMV0sMTApKS5rZXksUT1bXSxxPXcuY3JlYXRlRGVjaXBoZXJpdihCLFgsVyk7US5wdXNoKHEudXBkYXRlKFopKSxRLnB1c2gocS5maW5hbCgpKSxMPUYuY29uY2F0KFEpfWVsc2V7dmFyIFk9ai5tYXRjaChwKTtMPUYuZnJvbShZWzJd'@; put 'LnJlcGxhY2UoL1tcclxuXS9nLCIiKSwiYmFzZTY0Iil9cmV0dXJue3RhZzpqLm1hdGNoKF8pWzFdLGRhdGE6TH19fSw5ODA6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigyODE4KSxfPWIoMjU2MikscD1iKDc2MzEpLE49Yig0Njk2KSx3PWIoNTYzMiksRj1iKDk1MDkpLkJ1ZmZl'@; put 'cjtmdW5jdGlvbiBSKGope3ZhciBQOyJvYmplY3QiPT10eXBlb2YgaiYmIUYuaXNCdWZmZXIoaikmJihQPWoucGFzc3BocmFzZSxqPWoua2V5KSwic3RyaW5nIj09dHlwZW9mIGomJihqPUYuZnJvbShqKSk7dmFyIFcsWixMPXAoaixQKSxZPUwudGFnLEI9TC5kYXRhO3N3aXRjaChZKXtjYXNl'@; put 'IkNFUlRJRklDQVRFIjpaPUQuY2VydGlmaWNhdGUuZGVjb2RlKEIsImRlciIpLnRic0NlcnRpZmljYXRlLnN1YmplY3RQdWJsaWNLZXlJbmZvO2Nhc2UiUFVCTElDIEtFWSI6c3dpdGNoKFp8fChaPUQuUHVibGljS2V5LmRlY29kZShCLCJkZXIiKSksVz1aLmFsZ29yaXRobS5hbGdvcml0aG0u'@; put 'am9pbigiLiIpKXtjYXNlIjEuMi44NDAuMTEzNTQ5LjEuMS4xIjpyZXR1cm4gRC5SU0FQdWJsaWNLZXkuZGVjb2RlKFouc3ViamVjdFB1YmxpY0tleS5kYXRhLCJkZXIiKTtjYXNlIjEuMi44NDAuMTAwNDUuMi4xIjpyZXR1cm4gWi5zdWJqZWN0UHJpdmF0ZUtleT1aLnN1YmplY3RQdWJsaWNL'@; put 'ZXkse3R5cGU6ImVjIixkYXRhOlp9O2Nhc2UiMS4yLjg0MC4xMDA0MC40LjEiOnJldHVybiBaLmFsZ29yaXRobS5wYXJhbXMucHViX2tleT1ELkRTQXBhcmFtLmRlY29kZShaLnN1YmplY3RQdWJsaWNLZXkuZGF0YSwiZGVyIikse3R5cGU6ImRzYSIsZGF0YTpaLmFsZ29yaXRobS5wYXJhbXN9'@; put 'O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGtleSBpZCAiK1cpfWNhc2UiRU5DUllQVEVEIFBSSVZBVEUgS0VZIjpCPWZ1bmN0aW9uIEgoaixQKXt2YXIgTD1qLmFsZ29yaXRobS5kZWNyeXB0LmtkZS5rZGVwYXJhbXMuc2FsdCxZPXBhcnNlSW50KGouYWxnb3JpdGhtLmRlY3J5'@; put 'cHQua2RlLmtkZXBhcmFtcy5pdGVycy50b1N0cmluZygpLDEwKSxCPV9bai5hbGdvcml0aG0uZGVjcnlwdC5jaXBoZXIuYWxnby5qb2luKCIuIildLFc9ai5hbGdvcml0aG0uZGVjcnlwdC5jaXBoZXIuaXYsWj1qLnN1YmplY3RQcml2YXRlS2V5LFg9cGFyc2VJbnQoQi5zcGxpdCgiLSIpWzFd'@; put 'LDEwKS84LFE9dy5wYmtkZjJTeW5jKFAsTCxZLFgsInNoYTEiKSxxPU4uY3JlYXRlRGVjaXBoZXJpdihCLFEsVyksdGU9W107cmV0dXJuIHRlLnB1c2gocS51cGRhdGUoWikpLHRlLnB1c2gocS5maW5hbCgpKSxGLmNvbmNhdCh0ZSl9KEI9RC5FbmNyeXB0ZWRQcml2YXRlS2V5LmRlY29kZShC'@; put 'LCJkZXIiKSxQKTtjYXNlIlBSSVZBVEUgS0VZIjpzd2l0Y2goVz0oWj1ELlByaXZhdGVLZXkuZGVjb2RlKEIsImRlciIpKS5hbGdvcml0aG0uYWxnb3JpdGhtLmpvaW4oIi4iKSl7Y2FzZSIxLjIuODQwLjExMzU0OS4xLjEuMSI6cmV0dXJuIEQuUlNBUHJpdmF0ZUtleS5kZWNvZGUoWi5zdWJq'@; put 'ZWN0UHJpdmF0ZUtleSwiZGVyIik7Y2FzZSIxLjIuODQwLjEwMDQ1LjIuMSI6cmV0dXJue2N1cnZlOlouYWxnb3JpdGhtLmN1cnZlLHByaXZhdGVLZXk6RC5FQ1ByaXZhdGVLZXkuZGVjb2RlKFouc3ViamVjdFByaXZhdGVLZXksImRlciIpLnByaXZhdGVLZXl9O2Nhc2UiMS4yLjg0MC4xMDA0'@; put 'MC40LjEiOnJldHVybiBaLmFsZ29yaXRobS5wYXJhbXMucHJpdl9rZXk9RC5EU0FwYXJhbS5kZWNvZGUoWi5zdWJqZWN0UHJpdmF0ZUtleSwiZGVyIikse3R5cGU6ImRzYSIscGFyYW1zOlouYWxnb3JpdGhtLnBhcmFtc307ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoInVua25vd24ga2V5IGlk'@; put 'ICIrVyl9Y2FzZSJSU0EgUFVCTElDIEtFWSI6cmV0dXJuIEQuUlNBUHVibGljS2V5LmRlY29kZShCLCJkZXIiKTtjYXNlIlJTQSBQUklWQVRFIEtFWSI6cmV0dXJuIEQuUlNBUHJpdmF0ZUtleS5kZWNvZGUoQiwiZGVyIik7Y2FzZSJEU0EgUFJJVkFURSBLRVkiOnJldHVybnt0eXBlOiJkc2Ei'@; put 'LHBhcmFtczpELkRTQVByaXZhdGVLZXkuZGVjb2RlKEIsImRlciIpfTtjYXNlIkVDIFBSSVZBVEUgS0VZIjpyZXR1cm57Y3VydmU6KEI9RC5FQ1ByaXZhdGVLZXkuZGVjb2RlKEIsImRlciIpKS5wYXJhbWV0ZXJzLnZhbHVlLHByaXZhdGVLZXk6Qi5wcml2YXRlS2V5fTtkZWZhdWx0OnRocm93'@; put 'IG5ldyBFcnJvcigidW5rbm93biBrZXkgdHlwZSAiK1kpfX1SLnNpZ25hdHVyZT1ELnNpZ25hdHVyZSxjZS5leHBvcnRzPVJ9LDE3MjU6Y2U9PntjZS5leHBvcnRzPSJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKGIsRCl7Yi5zdXBlcl89RCxiLnByb3RvdHlwZT1P'@; put 'YmplY3QuY3JlYXRlKEQucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6YixlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KX06ZnVuY3Rpb24oYixEKXtiLnN1cGVyXz1EO3ZhciBfPWZ1bmN0aW9uKCl7fTtfLnByb3RvdHlwZT1ELnByb3RvdHlwZSxiLnBy'@; put 'b3RvdHlwZT1uZXcgXyxiLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1ifX0sMjk3NDpjZT0+e2NlLmV4cG9ydHM9ZnVuY3Rpb24oYil7cmV0dXJuIGImJiJvYmplY3QiPT10eXBlb2YgYiYmImZ1bmN0aW9uIj09dHlwZW9mIGIuY29weSYmImZ1bmN0aW9uIj09dHlwZW9mIGIuZmlsbCYmImZ1bmN0'@; put 'aW9uIj09dHlwZW9mIGIucmVhZFVJbnQ4fX0sODA1OTooY2UsSixiKT0+e3ZhciBEPWIoNDE1NSksXz1iKDUxMDgpLHA9LyVbc2RqJV0vZztKLmZvcm1hdD1mdW5jdGlvbihFKXtpZighc2UoRSkpe2Zvcih2YXIgbT1bXSxBPTA7QTxhcmd1bWVudHMubGVuZ3RoO0ErKyltLnB1c2goRihhcmd1'@; put 'bWVudHNbQV0pKTtyZXR1cm4gbS5qb2luKCIgIil9QT0xO2Zvcih2YXIgYWU9YXJndW1lbnRzLG5lPWFlLmxlbmd0aCxsZT1TdHJpbmcoRSkucmVwbGFjZShwLGZ1bmN0aW9uKFplKXtpZigiJSUiPT09WmUpcmV0dXJuIiUiO2lmKEE+PW5lKXJldHVybiBaZTtzd2l0Y2goWmUpe2Nhc2UiJXMi'@; put 'OnJldHVybiBTdHJpbmcoYWVbQSsrXSk7Y2FzZSIlZCI6cmV0dXJuIE51bWJlcihhZVtBKytdKTtjYXNlIiVqIjp0cnl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGFlW0ErK10pfWNhdGNoe3JldHVybiJbQ2lyY3VsYXJdIn1kZWZhdWx0OnJldHVybiBaZX19KSx3ZT1hZVtBXTtBPG5lO3dlPWFl'@; put 'WysrQV0pcSh3ZSl8fCFTZSh3ZSk/bGUrPSIgIit3ZTpsZSs9IiAiK0Yod2UpO3JldHVybiBsZX0sSi5kZXByZWNhdGU9ZnVuY3Rpb24oRSxtKXtpZihfZShiLmcucHJvY2VzcykpcmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEouZGVwcmVjYXRlKEUsbSkuYXBwbHkodGhpcyxhcmd1bWVudHMp'@; put 'fTtpZighMD09PUQubm9EZXByZWNhdGlvbilyZXR1cm4gRTt2YXIgQT0hMTtyZXR1cm4gZnVuY3Rpb24gYWUoKXtpZighQSl7aWYoRC50aHJvd0RlcHJlY2F0aW9uKXRocm93IG5ldyBFcnJvcihtKTtELnRyYWNlRGVwcmVjYXRpb24/Xy50cmFjZShtKTpfLmVycm9yKG0pLEE9ITB9cmV0dXJu'@; put 'IEUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX07dmFyIHcsTj17fTtmdW5jdGlvbiBGKEUsbSl7dmFyIEE9e3NlZW46W10sc3R5bGl6ZTpSfTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD49MyYmKEEuZGVwdGg9YXJndW1lbnRzWzJdKSxhcmd1bWVudHMubGVuZ3RoPj00JiYoQS5jb2xvcnM9YXJn'@; put 'dW1lbnRzWzNdKSxRKG0pP0Euc2hvd0hpZGRlbj1tOm0mJkouX2V4dGVuZChBLG0pLF9lKEEuc2hvd0hpZGRlbikmJihBLnNob3dIaWRkZW49ITEpLF9lKEEuZGVwdGgpJiYoQS5kZXB0aD0yKSxfZShBLmNvbG9ycykmJihBLmNvbG9ycz0hMSksX2UoQS5jdXN0b21JbnNwZWN0KSYmKEEuY3Vz'@; put 'dG9tSW5zcGVjdD0hMCksQS5jb2xvcnMmJihBLnN0eWxpemU9SCksUChBLEUsQS5kZXB0aCl9ZnVuY3Rpb24gSChFLG0pe3ZhciBBPUYuc3R5bGVzW21dO3JldHVybiBBPyJceDFiWyIrRi5jb2xvcnNbQV1bMF0rIm0iK0UrIlx4MWJbIitGLmNvbG9yc1tBXVsxXSsibSI6RX1mdW5jdGlvbiBS'@; put 'KEUsbSl7cmV0dXJuIEV9ZnVuY3Rpb24gUChFLG0sQSl7aWYoRS5jdXN0b21JbnNwZWN0JiZtJiZnKG0uaW5zcGVjdCkmJm0uaW5zcGVjdCE9PUouaW5zcGVjdCYmKCFtLmNvbnN0cnVjdG9yfHxtLmNvbnN0cnVjdG9yLnByb3RvdHlwZSE9PW0pKXt2YXIgYWU9bS5pbnNwZWN0KEEsRSk7cmV0'@; put 'dXJuIHNlKGFlKXx8KGFlPVAoRSxhZSxBKSksYWV9dmFyIG5lPWZ1bmN0aW9uIEwoRSxtKXtpZihfZShtKSlyZXR1cm4gRS5zdHlsaXplKCJ1bmRlZmluZWQiLCJ1bmRlZmluZWQiKTtpZihzZShtKSl7dmFyIEE9IiciK0pTT04uc3RyaW5naWZ5KG0pLnJlcGxhY2UoL14ifCIkL2csIiIpLnJl'@; put 'cGxhY2UoLycvZywiXFwnIikucmVwbGFjZSgvXFwiL2csJyInKSsiJyI7cmV0dXJuIEUuc3R5bGl6ZShBLCJzdHJpbmciKX1yZXR1cm4gaWUobSk/RS5zdHlsaXplKCIiK20sIm51bWJlciIpOlEobSk/RS5zdHlsaXplKCIiK20sImJvb2xlYW4iKTpxKG0pP0Uuc3R5bGl6ZSgibnVsbCIsIm51'@; put 'bGwiKTp2b2lkIDB9KEUsbSk7aWYobmUpcmV0dXJuIG5lO3ZhciBsZT1PYmplY3Qua2V5cyhtKSx3ZT1mdW5jdGlvbiBqKEUpe3ZhciBtPXt9O3JldHVybiBFLmZvckVhY2goZnVuY3Rpb24oQSxhZSl7bVtBXT0hMH0pLG19KGxlKTtpZihFLnNob3dIaWRkZW4mJihsZT1PYmplY3QuZ2V0T3du'@; put 'UHJvcGVydHlOYW1lcyhtKSkseihtKSYmKGxlLmluZGV4T2YoIm1lc3NhZ2UiKT49MHx8bGUuaW5kZXhPZigiZGVzY3JpcHRpb24iKT49MCkpcmV0dXJuIFkobSk7aWYoMD09PWxlLmxlbmd0aCl7aWYoZyhtKSlyZXR1cm4gRS5zdHlsaXplKCJbRnVuY3Rpb24iKyhtLm5hbWU/IjogIittLm5h'@; put 'bWU6IiIpKyJdIiwic3BlY2lhbCIpO2lmKFRlKG0pKXJldHVybiBFLnN0eWxpemUoUmVnRXhwLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG0pLCJyZWdleHAiKTtpZih6ZShtKSlyZXR1cm4gRS5zdHlsaXplKERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobSksImRhdGUiKTtpZih6KG0p'@; put 'KXJldHVybiBZKG0pfXZhciBxZSxRZT0iIixhdD0hMSx4ZT1bInsiLCJ9Il07cmV0dXJuIFgobSkmJihhdD0hMCx4ZT1bIlsiLCJdIl0pLGcobSkmJihRZT0iIFtGdW5jdGlvbiIrKG0ubmFtZT8iOiAiK20ubmFtZToiIikrIl0iKSxUZShtKSYmKFFlPSIgIitSZWdFeHAucHJvdG90eXBlLnRv'@; put 'U3RyaW5nLmNhbGwobSkpLHplKG0pJiYoUWU9IiAiK0RhdGUucHJvdG90eXBlLnRvVVRDU3RyaW5nLmNhbGwobSkpLHoobSkmJihRZT0iICIrWShtKSksMCE9PWxlLmxlbmd0aHx8YXQmJjAhPW0ubGVuZ3RoP0E8MD9UZShtKT9FLnN0eWxpemUoUmVnRXhwLnByb3RvdHlwZS50b1N0cmluZy5j'@; put 'YWxsKG0pLCJyZWdleHAiKTpFLnN0eWxpemUoIltPYmplY3RdIiwic3BlY2lhbCIpOihFLnNlZW4ucHVzaChtKSxxZT1hdD9mdW5jdGlvbiBCKEUsbSxBLGFlLG5lKXtmb3IodmFyIGxlPVtdLHdlPTAsWmU9bS5sZW5ndGg7d2U8WmU7Kyt3ZSlVKG0sU3RyaW5nKHdlKSk/bGUucHVzaChXKEUs'@; put 'bSxBLGFlLFN0cmluZyh3ZSksITApKTpsZS5wdXNoKCIiKTtyZXR1cm4gbmUuZm9yRWFjaChmdW5jdGlvbihRZSl7UWUubWF0Y2goL15cZCskLyl8fGxlLnB1c2goVyhFLG0sQSxhZSxRZSwhMCkpfSksbGV9KEUsbSxBLHdlLGxlKTpsZS5tYXAoZnVuY3Rpb24oamUpe3JldHVybiBXKEUsbSxB'@; put 'LHdlLGplLGF0KX0pLEUuc2Vlbi5wb3AoKSxmdW5jdGlvbiBaKEUsbSxBKXt2YXIgbmU9RS5yZWR1Y2UoZnVuY3Rpb24obGUsd2Upe3JldHVybiB3ZS5pbmRleE9mKCJcbiIpLGxlK3dlLnJlcGxhY2UoL1x1MDAxYlxbXGRcZD9tL2csIiIpLmxlbmd0aCsxfSwwKTtyZXR1cm4gbmU+NjA/QVsw'@; put 'XSsoIiI9PT1tPyIiOm0rIlxuICIpKyIgIitFLmpvaW4oIixcbiAgIikrIiAiK0FbMV06QVswXSttKyIgIitFLmpvaW4oIiwgIikrIiAiK0FbMV19KHFlLFFlLHhlKSk6eGVbMF0rUWUreGVbMV19ZnVuY3Rpb24gWShFKXtyZXR1cm4iWyIrRXJyb3IucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwo'@; put 'RSkrIl0ifWZ1bmN0aW9uIFcoRSxtLEEsYWUsbmUsbGUpe3ZhciB3ZSxaZSxRZTtpZigoUWU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLG5lKXx8e3ZhbHVlOm1bbmVdfSkuZ2V0P1plPUUuc3R5bGl6ZShRZS5zZXQ/IltHZXR0ZXIvU2V0dGVyXSI6IltHZXR0ZXJdIiwic3Bl'@; put 'Y2lhbCIpOlFlLnNldCYmKFplPUUuc3R5bGl6ZSgiW1NldHRlcl0iLCJzcGVjaWFsIikpLFUoYWUsbmUpfHwod2U9IlsiK25lKyJdIiksWmV8fChFLnNlZW4uaW5kZXhPZihRZS52YWx1ZSk8MD8oWmU9cShBKT9QKEUsUWUudmFsdWUsbnVsbCk6UChFLFFlLnZhbHVlLEEtMSkpLmluZGV4T2Yo'@; put 'IlxuIik+LTEmJihaZT1sZT9aZS5zcGxpdCgiXG4iKS5tYXAoZnVuY3Rpb24oYXQpe3JldHVybiIgICIrYXR9KS5qb2luKCJcbiIpLnN1YnN0cigyKToiXG4iK1plLnNwbGl0KCJcbiIpLm1hcChmdW5jdGlvbihhdCl7cmV0dXJuIiAgICIrYXR9KS5qb2luKCJcbiIpKTpaZT1FLnN0eWxpemUo'@; put 'IltDaXJjdWxhcl0iLCJzcGVjaWFsIikpLF9lKHdlKSl7aWYobGUmJm5lLm1hdGNoKC9eXGQrJC8pKXJldHVybiBaZTsod2U9SlNPTi5zdHJpbmdpZnkoIiIrbmUpKS5tYXRjaCgvXiIoW2EtekEtWl9dW2EtekEtWl8wLTldKikiJC8pPyh3ZT13ZS5zdWJzdHIoMSx3ZS5sZW5ndGgtMiksd2U9'@; put 'RS5zdHlsaXplKHdlLCJuYW1lIikpOih3ZT13ZS5yZXBsYWNlKC8nL2csIlxcJyIpLnJlcGxhY2UoL1xcIi9nLCciJykucmVwbGFjZSgvKF4ifCIkKS9nLCInIiksd2U9RS5zdHlsaXplKHdlLCJzdHJpbmciKSl9cmV0dXJuIHdlKyI6ICIrWmV9ZnVuY3Rpb24gWChFKXtyZXR1cm4gQXJyYXku'@; put 'aXNBcnJheShFKX1mdW5jdGlvbiBRKEUpe3JldHVybiJib29sZWFuIj09dHlwZW9mIEV9ZnVuY3Rpb24gcShFKXtyZXR1cm4gbnVsbD09PUV9ZnVuY3Rpb24gaWUoRSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBFfWZ1bmN0aW9uIHNlKEUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgRX1mdW5j'@; put 'dGlvbiBfZShFKXtyZXR1cm4gdm9pZCAwPT09RX1mdW5jdGlvbiBUZShFKXtyZXR1cm4gU2UoRSkmJiJbb2JqZWN0IFJlZ0V4cF0iPT09eChFKX1mdW5jdGlvbiBTZShFKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIEUmJm51bGwhPT1FfWZ1bmN0aW9uIHplKEUpe3JldHVybiBTZShFKSYmIltv'@; put 'YmplY3QgRGF0ZV0iPT09eChFKX1mdW5jdGlvbiB6KEUpe3JldHVybiBTZShFKSYmKCJbb2JqZWN0IEVycm9yXSI9PT14KEUpfHxFIGluc3RhbmNlb2YgRXJyb3IpfWZ1bmN0aW9uIGcoRSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIEV9ZnVuY3Rpb24geChFKXtyZXR1cm4gT2JqZWN0LnBy'@; put 'b3RvdHlwZS50b1N0cmluZy5jYWxsKEUpfWZ1bmN0aW9uIEMoRSl7cmV0dXJuIEU8MTA/IjAiK0UudG9TdHJpbmcoMTApOkUudG9TdHJpbmcoMTApfUouZGVidWdsb2c9ZnVuY3Rpb24oRSl7aWYoX2UodykmJih3PUQuZW52Lk5PREVfREVCVUd8fCIiKSxFPUUudG9VcHBlckNhc2UoKSwhTltF'@; put 'XSlpZihuZXcgUmVnRXhwKCJcXGIiK0UrIlxcYiIsImkiKS50ZXN0KHcpKXt2YXIgbT1ELnBpZDtOW0VdPWZ1bmN0aW9uKCl7dmFyIEE9Si5mb3JtYXQuYXBwbHkoSixhcmd1bWVudHMpO18uZXJyb3IoIiVzICVkOiAlcyIsRSxtLEEpfX1lbHNlIE5bRV09ZnVuY3Rpb24oKXt9O3JldHVybiBO'@; put 'W0VdfSxKLmluc3BlY3Q9RixGLmNvbG9ycz17Ym9sZDpbMSwyMl0saXRhbGljOlszLDIzXSx1bmRlcmxpbmU6WzQsMjRdLGludmVyc2U6WzcsMjddLHdoaXRlOlszNywzOV0sZ3JleTpbOTAsMzldLGJsYWNrOlszMCwzOV0sYmx1ZTpbMzQsMzldLGN5YW46WzM2LDM5XSxncmVlbjpbMzIsMzld'@; put 'LG1hZ2VudGE6WzM1LDM5XSxyZWQ6WzMxLDM5XSx5ZWxsb3c6WzMzLDM5XX0sRi5zdHlsZXM9e3NwZWNpYWw6ImN5YW4iLG51bWJlcjoieWVsbG93Iixib29sZWFuOiJ5ZWxsb3ciLHVuZGVmaW5lZDoiZ3JleSIsbnVsbDoiYm9sZCIsc3RyaW5nOiJncmVlbiIsZGF0ZToibWFnZW50YSIscmVn'@; put 'ZXhwOiJyZWQifSxKLmlzQXJyYXk9WCxKLmlzQm9vbGVhbj1RLEouaXNOdWxsPXEsSi5pc051bGxPclVuZGVmaW5lZD1mdW5jdGlvbiB0ZShFKXtyZXR1cm4gbnVsbD09RX0sSi5pc051bWJlcj1pZSxKLmlzU3RyaW5nPXNlLEouaXNTeW1ib2w9ZnVuY3Rpb24gZ2UoRSl7cmV0dXJuInN5bWJv'@; put 'bCI9PXR5cGVvZiBFfSxKLmlzVW5kZWZpbmVkPV9lLEouaXNSZWdFeHA9VGUsSi5pc09iamVjdD1TZSxKLmlzRGF0ZT16ZSxKLmlzRXJyb3I9eixKLmlzRnVuY3Rpb249ZyxKLmlzUHJpbWl0aXZlPWZ1bmN0aW9uIHkoRSl7cmV0dXJuIG51bGw9PT1FfHwiYm9vbGVhbiI9PXR5cGVvZiBFfHwi'@; put 'bnVtYmVyIj09dHlwZW9mIEV8fCJzdHJpbmciPT10eXBlb2YgRXx8InN5bWJvbCI9PXR5cGVvZiBFfHx0eXBlb2YgRT4idSJ9LEouaXNCdWZmZXI9YigyOTc0KTt2YXIgVD1bIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIs'@; put 'IkRlYyJdO2Z1bmN0aW9uIFUoRSxtKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEUsbSl9Si5sb2c9ZnVuY3Rpb24oKXtfLmxvZygiJXMgLSAlcyIsZnVuY3Rpb24gVigpe3ZhciBFPW5ldyBEYXRlLG09W0MoRS5nZXRIb3VycygpKSxDKEUuZ2V0TWludXRl'@; put 'cygpKSxDKEUuZ2V0U2Vjb25kcygpKV0uam9pbigiOiIpO3JldHVybltFLmdldERhdGUoKSxUW0UuZ2V0TW9udGgoKV0sbV0uam9pbigiICIpfSgpLEouZm9ybWF0LmFwcGx5KEosYXJndW1lbnRzKSl9LEouaW5oZXJpdHM9YigxNzI1KSxKLl9leHRlbmQ9ZnVuY3Rpb24oRSxtKXtpZighbXx8'@; put 'IVNlKG0pKXJldHVybiBFO2Zvcih2YXIgQT1PYmplY3Qua2V5cyhtKSxhZT1BLmxlbmd0aDthZS0tOylFW0FbYWVdXT1tW0FbYWVdXTtyZXR1cm4gRX19LDI1MjA6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig0MTU1KSxfPSJ3aW4zMiI9PT1ELnBsYXRmb3JtLHA9Yig4MDU5KTtm'@; put 'dW5jdGlvbiBOKFosWCl7Zm9yKHZhciBRPVtdLHE9MDtxPFoubGVuZ3RoO3ErKyl7dmFyIHRlPVpbcV07IXRlfHwiLiI9PT10ZXx8KCIuLiI9PT10ZT9RLmxlbmd0aCYmIi4uIiE9PVFbUS5sZW5ndGgtMV0/US5wb3AoKTpYJiZRLnB1c2goIi4uIik6US5wdXNoKHRlKSl9cmV0dXJuIFF9ZnVu'@; put 'Y3Rpb24gdyhaKXtmb3IodmFyIFg9Wi5sZW5ndGgtMSxRPTA7UTw9WCYmIVpbUV07USsrKTtmb3IodmFyIHE9WDtxPj0wJiYhWltxXTtxLS0pO3JldHVybiAwPT09USYmcT09PVg/WjpRPnE/W106Wi5zbGljZShRLHErMSl9dmFyIEY9L14oW2EtekEtWl06fFtcXFwvXXsyfVteXFxcL10rW1xc'@; put 'XC9dK1teXFxcL10rKT8oW1xcXC9dKT8oW1xzXFNdKj8pJC8sSD0vXihbXHNcU10qPykoKD86XC57MSwyfXxbXlxcXC9dKz98KShcLlteLlwvXFxdKnwpKSg/OltcXFwvXSopJC8sUj17fTtmdW5jdGlvbiBqKFope3ZhciBYPUYuZXhlYyhaKSxRPShYWzFdfHwiIikrKFhbMl18fCIiKSx0ZT1I'@; put 'LmV4ZWMoWFszXXx8IiIpO3JldHVybltRLHRlWzFdLHRlWzJdLHRlWzNdXX1mdW5jdGlvbiBQKFope3ZhciBYPUYuZXhlYyhaKSxRPVhbMV18fCIiLHE9ISFRJiYiOiIhPT1RWzFdO3JldHVybntkZXZpY2U6USxpc1VuYzpxLGlzQWJzb2x1dGU6cXx8ISFYWzJdLHRhaWw6WFszXX19ZnVuY3Rp'@; put 'b24gTChaKXtyZXR1cm4iXFxcXCIrWi5yZXBsYWNlKC9eW1xcXC9dKy8sIiIpLnJlcGxhY2UoL1tcXFwvXSsvZywiXFwiKX1SLnJlc29sdmU9ZnVuY3Rpb24oKXtmb3IodmFyIFo9IiIsWD0iIixRPSExLHE9YXJndW1lbnRzLmxlbmd0aC0xO3E+PS0xO3EtLSl7dmFyIHRlO2lmKHE+PTA/dGU9'@; put 'YXJndW1lbnRzW3FdOlo/KCEodGU9RC5lbnZbIj0iK1pdKXx8dGUuc3Vic3RyKDAsMykudG9Mb3dlckNhc2UoKSE9PVoudG9Mb3dlckNhc2UoKSsiXFwiKSYmKHRlPVorIlxcIik6dGU9RC5jd2QoKSwhcC5pc1N0cmluZyh0ZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnRzIHRvIHBh'@; put 'dGgucmVzb2x2ZSBtdXN0IGJlIHN0cmluZ3MiKTtpZih0ZSl7dmFyIGllPVAodGUpLHNlPWllLmRldmljZSxnZT1pZS5pc1VuYyxfZT1pZS5pc0Fic29sdXRlLFRlPWllLnRhaWw7aWYoKCFzZXx8IVp8fHNlLnRvTG93ZXJDYXNlKCk9PT1aLnRvTG93ZXJDYXNlKCkpJiYoWnx8KFo9c2UpLFF8'@; put 'fChYPVRlKyJcXCIrWCxRPV9lKSxaJiZRKSlicmVha319cmV0dXJuIGdlJiYoWj1MKFopKSxaKyhRPyJcXCI6IiIpKyhYPU4oWC5zcGxpdCgvW1xcXC9dKy8pLCFRKS5qb2luKCJcXCIpKXx8Ii4ifSxSLm5vcm1hbGl6ZT1mdW5jdGlvbihaKXt2YXIgWD1QKFopLFE9WC5kZXZpY2UscT1YLmlz'@; put 'VW5jLHRlPVguaXNBYnNvbHV0ZSxpZT1YLnRhaWwsc2U9L1tcXFwvXSQvLnRlc3QoaWUpO3JldHVybiEoaWU9TihpZS5zcGxpdCgvW1xcXC9dKy8pLCF0ZSkuam9pbigiXFwiKSkmJiF0ZSYmKGllPSIuIiksaWUmJnNlJiYoaWUrPSJcXCIpLHEmJihRPUwoUSkpLFErKHRlPyJcXCI6IiIpK2ll'@; put 'fSxSLmlzQWJzb2x1dGU9ZnVuY3Rpb24oWil7cmV0dXJuIFAoWikuaXNBYnNvbHV0ZX0sUi5qb2luPWZ1bmN0aW9uKCl7Zm9yKHZhciBaPVtdLFg9MDtYPGFyZ3VtZW50cy5sZW5ndGg7WCsrKXt2YXIgUT1hcmd1bWVudHNbWF07aWYoIXAuaXNTdHJpbmcoUSkpdGhyb3cgbmV3IFR5cGVFcnJv'@; put 'cigiQXJndW1lbnRzIHRvIHBhdGguam9pbiBtdXN0IGJlIHN0cmluZ3MiKTtRJiZaLnB1c2goUSl9dmFyIHE9Wi5qb2luKCJcXCIpO3JldHVybi9eW1xcXC9dezJ9W15cXFwvXS8udGVzdChaWzBdKXx8KHE9cS5yZXBsYWNlKC9eW1xcXC9dezIsfS8sIlxcIikpLFIubm9ybWFsaXplKHEpfSxS'@; put 'LnJlbGF0aXZlPWZ1bmN0aW9uKFosWCl7Wj1SLnJlc29sdmUoWiksWD1SLnJlc29sdmUoWCk7Zm9yKHZhciBRPVoudG9Mb3dlckNhc2UoKSxxPVgudG9Mb3dlckNhc2UoKSx0ZT13KFguc3BsaXQoIlxcIikpLGllPXcoUS5zcGxpdCgiXFwiKSksc2U9dyhxLnNwbGl0KCJcXCIpKSxnZT1NYXRo'@; put 'Lm1pbihpZS5sZW5ndGgsc2UubGVuZ3RoKSxfZT1nZSxUZT0wO1RlPGdlO1RlKyspaWYoaWVbVGVdIT09c2VbVGVdKXtfZT1UZTticmVha31pZigwPT1fZSlyZXR1cm4gWDt2YXIgU2U9W107Zm9yKFRlPV9lO1RlPGllLmxlbmd0aDtUZSsrKVNlLnB1c2goIi4uIik7cmV0dXJuKFNlPVNlLmNv'@; put 'bmNhdCh0ZS5zbGljZShfZSkpKS5qb2luKCJcXCIpfSxSLl9tYWtlTG9uZz1mdW5jdGlvbihaKXtpZighcC5pc1N0cmluZyhaKSlyZXR1cm4gWjtpZighWilyZXR1cm4iIjt2YXIgWD1SLnJlc29sdmUoWik7cmV0dXJuL15bYS16QS1aXVw6XFwvLnRlc3QoWCk/IlxcXFw/XFwiK1g6L15cXFxc'@; put 'W14/Ll0vLnRlc3QoWCk/IlxcXFw/XFxVTkNcXCIrWC5zdWJzdHJpbmcoMik6Wn0sUi5kaXJuYW1lPWZ1bmN0aW9uKFope3ZhciBYPWooWiksUT1YWzBdLHE9WFsxXTtyZXR1cm4gUXx8cT8ocSYmKHE9cS5zdWJzdHIoMCxxLmxlbmd0aC0xKSksUStxKToiLiJ9LFIuYmFzZW5hbWU9ZnVuY3Rp'@; put 'b24oWixYKXt2YXIgUT1qKFopWzJdO3JldHVybiBYJiZRLnN1YnN0cigtMSpYLmxlbmd0aCk9PT1YJiYoUT1RLnN1YnN0cigwLFEubGVuZ3RoLVgubGVuZ3RoKSksUX0sUi5leHRuYW1lPWZ1bmN0aW9uKFope3JldHVybiBqKFopWzNdfSxSLmZvcm1hdD1mdW5jdGlvbihaKXtpZighcC5pc09i'@; put 'amVjdChaKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJQYXJhbWV0ZXIgJ3BhdGhPYmplY3QnIG11c3QgYmUgYW4gb2JqZWN0LCBub3QgIit0eXBlb2YgWik7aWYoIXAuaXNTdHJpbmcoWi5yb290fHwiIikpdGhyb3cgbmV3IFR5cGVFcnJvcigiJ3BhdGhPYmplY3Qucm9vdCcgbXVzdCBiZSBhIHN0'@; put 'cmluZyBvciB1bmRlZmluZWQsIG5vdCAiK3R5cGVvZiBaLnJvb3QpO3ZhciBRPVouZGlyLHE9Wi5iYXNlfHwiIjtyZXR1cm4gUT9RW1EubGVuZ3RoLTFdPT09Ui5zZXA/UStxOlErUi5zZXArcTpxfSxSLnBhcnNlPWZ1bmN0aW9uKFope2lmKCFwLmlzU3RyaW5nKFopKXRocm93IG5ldyBUeXBl'@; put 'RXJyb3IoIlBhcmFtZXRlciAncGF0aFN0cmluZycgbXVzdCBiZSBhIHN0cmluZywgbm90ICIrdHlwZW9mIFopO3ZhciBYPWooWik7aWYoIVh8fDQhPT1YLmxlbmd0aCl0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIHBhdGggJyIrWisiJyIpO3JldHVybntyb290OlhbMF0sZGlyOlhbMF0r'@; put 'WFsxXS5zbGljZSgwLC0xKSxiYXNlOlhbMl0sZXh0OlhbM10sbmFtZTpYWzJdLnNsaWNlKDAsWFsyXS5sZW5ndGgtWFszXS5sZW5ndGgpfX0sUi5zZXA9IlxcIixSLmRlbGltaXRlcj0iOyI7dmFyIFk9L14oXC8/fCkoW1xzXFNdKj8pKCg/OlwuezEsMn18W15cL10rP3wpKFwuW14uXC9dKnwp'@; put 'KSg/OltcL10qKSQvLEI9e307ZnVuY3Rpb24gVyhaKXtyZXR1cm4gWS5leGVjKFopLnNsaWNlKDEpfUIucmVzb2x2ZT1mdW5jdGlvbigpe2Zvcih2YXIgWj0iIixYPSExLFE9YXJndW1lbnRzLmxlbmd0aC0xO1E+PS0xJiYhWDtRLS0pe3ZhciBxPVE+PTA/YXJndW1lbnRzW1FdOkQuY3dkKCk7'@; put 'aWYoIXAuaXNTdHJpbmcocSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnRzIHRvIHBhdGgucmVzb2x2ZSBtdXN0IGJlIHN0cmluZ3MiKTtxJiYoWj1xKyIvIitaLFg9Ii8iPT09cVswXSl9cmV0dXJuKFg/Ii8iOiIiKSsoWj1OKFouc3BsaXQoIi8iKSwhWCkuam9pbigiLyIpKXx8Ii4i'@; put 'fSxCLm5vcm1hbGl6ZT1mdW5jdGlvbihaKXt2YXIgWD1CLmlzQWJzb2x1dGUoWiksUT1aJiYiLyI9PT1aW1oubGVuZ3RoLTFdO3JldHVybiEoWj1OKFouc3BsaXQoIi8iKSwhWCkuam9pbigiLyIpKSYmIVgmJihaPSIuIiksWiYmUSYmKForPSIvIiksKFg/Ii8iOiIiKStafSxCLmlzQWJzb2x1'@; put 'dGU9ZnVuY3Rpb24oWil7cmV0dXJuIi8iPT09Wi5jaGFyQXQoMCl9LEIuam9pbj1mdW5jdGlvbigpe2Zvcih2YXIgWj0iIixYPTA7WDxhcmd1bWVudHMubGVuZ3RoO1grKyl7dmFyIFE9YXJndW1lbnRzW1hdO2lmKCFwLmlzU3RyaW5nKFEpKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50'@; put 'cyB0byBwYXRoLmpvaW4gbXVzdCBiZSBzdHJpbmdzIik7USYmKForPVo/Ii8iK1E6USl9cmV0dXJuIEIubm9ybWFsaXplKFopfSxCLnJlbGF0aXZlPWZ1bmN0aW9uKFosWCl7Wj1CLnJlc29sdmUoWikuc3Vic3RyKDEpLFg9Qi5yZXNvbHZlKFgpLnN1YnN0cigxKTtmb3IodmFyIFE9dyhaLnNw'@; put 'bGl0KCIvIikpLHE9dyhYLnNwbGl0KCIvIikpLHRlPU1hdGgubWluKFEubGVuZ3RoLHEubGVuZ3RoKSxpZT10ZSxzZT0wO3NlPHRlO3NlKyspaWYoUVtzZV0hPT1xW3NlXSl7aWU9c2U7YnJlYWt9dmFyIGdlPVtdO2ZvcihzZT1pZTtzZTxRLmxlbmd0aDtzZSsrKWdlLnB1c2goIi4uIik7cmV0'@; put 'dXJuKGdlPWdlLmNvbmNhdChxLnNsaWNlKGllKSkpLmpvaW4oIi8iKX0sQi5fbWFrZUxvbmc9ZnVuY3Rpb24oWil7cmV0dXJuIFp9LEIuZGlybmFtZT1mdW5jdGlvbihaKXt2YXIgWD1XKFopLFE9WFswXSxxPVhbMV07cmV0dXJuIFF8fHE/KHEmJihxPXEuc3Vic3RyKDAscS5sZW5ndGgtMSkp'@; put 'LFErcSk6Ii4ifSxCLmJhc2VuYW1lPWZ1bmN0aW9uKFosWCl7dmFyIFE9VyhaKVsyXTtyZXR1cm4gWCYmUS5zdWJzdHIoLTEqWC5sZW5ndGgpPT09WCYmKFE9US5zdWJzdHIoMCxRLmxlbmd0aC1YLmxlbmd0aCkpLFF9LEIuZXh0bmFtZT1mdW5jdGlvbihaKXtyZXR1cm4gVyhaKVszXX0sQi5m'@; put 'b3JtYXQ9ZnVuY3Rpb24oWil7aWYoIXAuaXNPYmplY3QoWikpdGhyb3cgbmV3IFR5cGVFcnJvcigiUGFyYW1ldGVyICdwYXRoT2JqZWN0JyBtdXN0IGJlIGFuIG9iamVjdCwgbm90ICIrdHlwZW9mIFopO2lmKCFwLmlzU3RyaW5nKFoucm9vdHx8IiIpKXRocm93IG5ldyBUeXBlRXJyb3IoIidw'@; put 'YXRoT2JqZWN0LnJvb3QnIG11c3QgYmUgYSBzdHJpbmcgb3IgdW5kZWZpbmVkLCBub3QgIit0eXBlb2YgWi5yb290KTtyZXR1cm4oWi5kaXI/Wi5kaXIrQi5zZXA6IiIpKyhaLmJhc2V8fCIiKX0sQi5wYXJzZT1mdW5jdGlvbihaKXtpZighcC5pc1N0cmluZyhaKSl0aHJvdyBuZXcgVHlwZUVy'@; put 'cm9yKCJQYXJhbWV0ZXIgJ3BhdGhTdHJpbmcnIG11c3QgYmUgYSBzdHJpbmcsIG5vdCAiK3R5cGVvZiBaKTt2YXIgWD1XKFopO2lmKCFYfHw0IT09WC5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBwYXRoICciK1orIiciKTtyZXR1cm4gWFsxXT1YWzFdfHwiIixYWzJdPVhb'@; put 'Ml18fCIiLFhbM109WFszXXx8IiIse3Jvb3Q6WFswXSxkaXI6WFswXStYWzFdLnNsaWNlKDAsLTEpLGJhc2U6WFsyXSxleHQ6WFszXSxuYW1lOlhbMl0uc2xpY2UoMCxYWzJdLmxlbmd0aC1YWzNdLmxlbmd0aCl9fSxCLnNlcD0iLyIsQi5kZWxpbWl0ZXI9IjoiLGNlLmV4cG9ydHM9Xz9SOkIs'@; put 'Y2UuZXhwb3J0cy5wb3NpeD1CLGNlLmV4cG9ydHMud2luMzI9Un0sNTYzMjooY2UsSixiKT0+e0oucGJrZGYyPWIoODYzOCksSi5wYmtkZjJTeW5jPWIoMTI1Nyl9LDg2Mzg6KGNlLEosYik9Pnt2YXIgRixMLEQ9Yig5NTA5KS5CdWZmZXIsXz1iKDczNTcpLHA9YigyMzY4KSxOPWIoMTI1Nyks'@; put 'dz1iKDc3NzcpLEg9Yi5nLmNyeXB0byYmYi5nLmNyeXB0by5zdWJ0bGUsUj17c2hhOiJTSEEtMSIsInNoYS0xIjoiU0hBLTEiLHNoYTE6IlNIQS0xIixzaGEyNTY6IlNIQS0yNTYiLCJzaGEtMjU2IjoiU0hBLTI1NiIsc2hhMzg0OiJTSEEtMzg0Iiwic2hhLTM4NCI6IlNIQS0zODQiLCJzaGEt'@; put 'NTEyIjoiU0hBLTUxMiIsc2hhNTEyOiJTSEEtNTEyIn0saj1bXTtmdW5jdGlvbiBZKCl7cmV0dXJuIEx8fChMPWIuZy5wcm9jZXNzJiZiLmcucHJvY2Vzcy5uZXh0VGljaz9iLmcucHJvY2Vzcy5uZXh0VGljazpiLmcucXVldWVNaWNyb3Rhc2s/Yi5nLnF1ZXVlTWljcm90YXNrOmIuZy5zZXRJ'@; put 'bW1lZGlhdGU/Yi5nLnNldEltbWVkaWF0ZTpiLmcuc2V0VGltZW91dCl9ZnVuY3Rpb24gQihaLFgsUSxxLHRlKXtyZXR1cm4gSC5pbXBvcnRLZXkoInJhdyIsWix7bmFtZToiUEJLREYyIn0sITEsWyJkZXJpdmVCaXRzIl0pLnRoZW4oZnVuY3Rpb24oaWUpe3JldHVybiBILmRlcml2ZUJpdHMo'@; put 'e25hbWU6IlBCS0RGMiIsc2FsdDpYLGl0ZXJhdGlvbnM6USxoYXNoOntuYW1lOnRlfX0saWUscTw8Myl9KS50aGVuKGZ1bmN0aW9uKGllKXtyZXR1cm4gRC5mcm9tKGllKX0pfWNlLmV4cG9ydHM9ZnVuY3Rpb24oWixYLFEscSx0ZSxpZSl7ImZ1bmN0aW9uIj09dHlwZW9mIHRlJiYoaWU9dGUs'@; put 'dGU9dm9pZCAwKTt2YXIgc2U9UlsodGU9dGV8fCJzaGExIikudG9Mb3dlckNhc2UoKV07aWYoc2UmJiJmdW5jdGlvbiI9PXR5cGVvZiBiLmcuUHJvbWlzZSl7aWYoXyhRLHEpLFo9dyhaLHAsIlBhc3N3b3JkIiksWD13KFgscCwiU2FsdCIpLCJmdW5jdGlvbiIhPXR5cGVvZiBpZSl0aHJvdyBu'@; put 'ZXcgRXJyb3IoIk5vIGNhbGxiYWNrIHByb3ZpZGVkIHRvIHBia2RmMiIpOyFmdW5jdGlvbiBXKFosWCl7Wi50aGVuKGZ1bmN0aW9uKFEpe1koKShmdW5jdGlvbigpe1gobnVsbCxRKX0pfSxmdW5jdGlvbihRKXtZKCkoZnVuY3Rpb24oKXtYKFEpfSl9KX0oZnVuY3Rpb24gUChaKXtpZihiLmcu'@; put 'cHJvY2VzcyYmIWIuZy5wcm9jZXNzLmJyb3dzZXJ8fCFIfHwhSC5pbXBvcnRLZXl8fCFILmRlcml2ZUJpdHMpcmV0dXJuIFByb21pc2UucmVzb2x2ZSghMSk7aWYodm9pZCAwIT09altaXSlyZXR1cm4galtaXTt2YXIgWD1CKEY9Rnx8RC5hbGxvYyg4KSxGLDEwLDEyOCxaKS50aGVuKGZ1bmN0'@; put 'aW9uKCl7cmV0dXJuITB9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiExfSk7cmV0dXJuIGpbWl09WCxYfShzZSkudGhlbihmdW5jdGlvbihnZSl7cmV0dXJuIGdlP0IoWixYLFEscSxzZSk6TihaLFgsUSxxLHRlKX0pLGllKX1lbHNlIFkoKShmdW5jdGlvbigpe3ZhciBnZTt0cnl7Z2U9Tiha'@; put 'LFgsUSxxLHRlKX1jYXRjaChfZSl7cmV0dXJuIGllKF9lKX1pZShudWxsLGdlKX0pfX0sMjM2ODooY2UsSixiKT0+e3ZhciBfLEQ9Yig0MTU1KTtfPWIuZy5wcm9jZXNzJiZiLmcucHJvY2Vzcy5icm93c2VyPyJ1dGYtOCI6Yi5nLnByb2Nlc3MmJmIuZy5wcm9jZXNzLnZlcnNpb24/cGFyc2VJ'@; put 'bnQoRC52ZXJzaW9uLnNwbGl0KCIuIilbMF0uc2xpY2UoMSksMTApPj02PyJ1dGYtOCI6ImJpbmFyeSI6InV0Zi04IixjZS5leHBvcnRzPV99LDczNTc6Y2U9Pnt2YXIgSj1NYXRoLnBvdygyLDMwKS0xO2NlLmV4cG9ydHM9ZnVuY3Rpb24oYixEKXtpZigibnVtYmVyIiE9dHlwZW9mIGIpdGhy'@; put 'b3cgbmV3IFR5cGVFcnJvcigiSXRlcmF0aW9ucyBub3QgYSBudW1iZXIiKTtpZihiPDApdGhyb3cgbmV3IFR5cGVFcnJvcigiQmFkIGl0ZXJhdGlvbnMiKTtpZigibnVtYmVyIiE9dHlwZW9mIEQpdGhyb3cgbmV3IFR5cGVFcnJvcigiS2V5IGxlbmd0aCBub3QgYSBudW1iZXIiKTtpZihEPDB8'@; put 'fEQ+Snx8RCE9RCl0aHJvdyBuZXcgVHlwZUVycm9yKCJCYWQga2V5IGxlbmd0aCIpfX0sMTI1NzooY2UsSixiKT0+e3ZhciBEPWIoODAyOCksXz1iKDk3ODUpLHA9Yig5MDcyKSxOPWIoOTUwOSkuQnVmZmVyLHc9Yig3MzU3KSxGPWIoMjM2OCksSD1iKDc3NzcpLFI9Ti5hbGxvYygxMjgpLGo9'@; put 'e21kNToxNixzaGExOjIwLHNoYTIyNDoyOCxzaGEyNTY6MzIsc2hhMzg0OjQ4LHNoYTUxMjo2NCxybWQxNjA6MjAscmlwZW1kMTYwOjIwfTtmdW5jdGlvbiBQKEIsVyxaKXt2YXIgWD1mdW5jdGlvbiBMKEIpe3JldHVybiJybWQxNjAiPT09Qnx8InJpcGVtZDE2MCI9PT1CP2Z1bmN0aW9uIFoo'@; put 'WCl7cmV0dXJuKG5ldyBfKS51cGRhdGUoWCkuZGlnZXN0KCl9OiJtZDUiPT09Qj9EOmZ1bmN0aW9uIFcoWCl7cmV0dXJuIHAoQikudXBkYXRlKFgpLmRpZ2VzdCgpfX0oQiksUT0ic2hhNTEyIj09PUJ8fCJzaGEzODQiPT09Qj8xMjg6NjQ7Vy5sZW5ndGg+UT9XPVgoVyk6Vy5sZW5ndGg8USYm'@; put 'KFc9Ti5jb25jYXQoW1csUl0sUSkpO2Zvcih2YXIgcT1OLmFsbG9jVW5zYWZlKFEraltCXSksdGU9Ti5hbGxvY1Vuc2FmZShRK2pbQl0pLGllPTA7aWU8UTtpZSsrKXFbaWVdPTU0XldbaWVdLHRlW2llXT05Ml5XW2llXTt2YXIgc2U9Ti5hbGxvY1Vuc2FmZShRK1orNCk7cS5jb3B5KHNlLDAs'@; put 'MCxRKSx0aGlzLmlwYWQxPXNlLHRoaXMuaXBhZDI9cSx0aGlzLm9wYWQ9dGUsdGhpcy5hbGc9Qix0aGlzLmJsb2Nrc2l6ZT1RLHRoaXMuaGFzaD1YLHRoaXMuc2l6ZT1qW0JdfVAucHJvdG90eXBlLnJ1bj1mdW5jdGlvbihCLFcpe3JldHVybiBCLmNvcHkoVyx0aGlzLmJsb2Nrc2l6ZSksdGhp'@; put 'cy5oYXNoKFcpLmNvcHkodGhpcy5vcGFkLHRoaXMuYmxvY2tzaXplKSx0aGlzLmhhc2godGhpcy5vcGFkKX0sY2UuZXhwb3J0cz1mdW5jdGlvbiBZKEIsVyxaLFgsUSl7dyhaLFgpO3ZhciBxPW5ldyBQKFE9UXx8InNoYTEiLEI9SChCLEYsIlBhc3N3b3JkIiksKFc9SChXLEYsIlNhbHQiKSku'@; put 'bGVuZ3RoKSx0ZT1OLmFsbG9jVW5zYWZlKFgpLGllPU4uYWxsb2NVbnNhZmUoVy5sZW5ndGgrNCk7Vy5jb3B5KGllLDAsMCxXLmxlbmd0aCk7Zm9yKHZhciBzZT0wLGdlPWpbUV0sX2U9TWF0aC5jZWlsKFgvZ2UpLFRlPTE7VGU8PV9lO1RlKyspe2llLndyaXRlVUludDMyQkUoVGUsVy5sZW5n'@; put 'dGgpO2Zvcih2YXIgU2U9cS5ydW4oaWUscS5pcGFkMSksemU9U2Usej0xO3o8Wjt6Kyspe3plPXEucnVuKHplLHEuaXBhZDIpO2Zvcih2YXIgZz0wO2c8Z2U7ZysrKVNlW2ddXj16ZVtnXX1TZS5jb3B5KHRlLHNlKSxzZSs9Z2V9cmV0dXJuIHRlfX0sNzc3NzooY2UsSixiKT0+e3ZhciBEPWIo'@; put 'OTUwOSkuQnVmZmVyO2NlLmV4cG9ydHM9ZnVuY3Rpb24oXyxwLE4pe2lmKEQuaXNCdWZmZXIoXykpcmV0dXJuIF87aWYoInN0cmluZyI9PXR5cGVvZiBfKXJldHVybiBELmZyb20oXyxwKTtpZihBcnJheUJ1ZmZlci5pc1ZpZXcoXykpcmV0dXJuIEQuZnJvbShfLmJ1ZmZlcik7dGhyb3cgbmV3'@; put 'IFR5cGVFcnJvcihOKyIgbXVzdCBiZSBhIHN0cmluZywgYSBCdWZmZXIsIGEgdHlwZWQgYXJyYXkgb3IgYSBEYXRhVmlldyIpfX0sOTkwODpjZT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPVsiRmxvYXQxNkFycmF5IiwiRmxvYXQzMkFycmF5IiwiRmxvYXQ2NEFycmF5IiwiSW50OEFycmF5'@; put 'IiwiSW50MTZBcnJheSIsIkludDMyQXJyYXkiLCJVaW50OEFycmF5IiwiVWludDhDbGFtcGVkQXJyYXkiLCJVaW50MTZBcnJheSIsIlVpbnQzMkFycmF5IiwiQmlnSW50NjRBcnJheSIsIkJpZ1VpbnQ2NEFycmF5Il19LDgyMTI6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig0MTU1'@; put 'KTtjZS5leHBvcnRzPXR5cGVvZiBEPiJ1Inx8IUQudmVyc2lvbnx8MD09PUQudmVyc2lvbi5pbmRleE9mKCJ2MC4iKXx8MD09PUQudmVyc2lvbi5pbmRleE9mKCJ2MS4iKSYmMCE9PUQudmVyc2lvbi5pbmRleE9mKCJ2MS44LiIpP3tuZXh0VGljazpmdW5jdGlvbiBfKHAsTix3LEYpe2lmKCJm'@; put 'dW5jdGlvbiIhPXR5cGVvZiBwKXRocm93IG5ldyBUeXBlRXJyb3IoJyJjYWxsYmFjayIgYXJndW1lbnQgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7dmFyIFIsaixIPWFyZ3VtZW50cy5sZW5ndGg7c3dpdGNoKEgpe2Nhc2UgMDpjYXNlIDE6cmV0dXJuIEQubmV4dFRpY2socCk7Y2FzZSAyOnJldHVy'@; put 'biBELm5leHRUaWNrKGZ1bmN0aW9uKCl7cC5jYWxsKG51bGwsTil9KTtjYXNlIDM6cmV0dXJuIEQubmV4dFRpY2soZnVuY3Rpb24oKXtwLmNhbGwobnVsbCxOLHcpfSk7Y2FzZSA0OnJldHVybiBELm5leHRUaWNrKGZ1bmN0aW9uKCl7cC5jYWxsKG51bGwsTix3LEYpfSk7ZGVmYXVsdDpmb3Io'@; put 'Uj1uZXcgQXJyYXkoSC0xKSxqPTA7ajxSLmxlbmd0aDspUltqKytdPWFyZ3VtZW50c1tqXTtyZXR1cm4gRC5uZXh0VGljayhmdW5jdGlvbigpe3AuYXBwbHkobnVsbCxSKX0pfX19OkR9LDQxNTU6Y2U9Pnt2YXIgYixELEo9Y2UuZXhwb3J0cz17fTtmdW5jdGlvbiBfKCl7dGhyb3cgbmV3IEVy'@; put 'cm9yKCJzZXRUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkIil9ZnVuY3Rpb24gcCgpe3Rocm93IG5ldyBFcnJvcigiY2xlYXJUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkIil9ZnVuY3Rpb24gTihXKXtpZihiPT09c2V0VGltZW91dClyZXR1cm4gc2V0VGltZW91dChXLDApO2lmKChi'@; put 'PT09X3x8IWIpJiZzZXRUaW1lb3V0KXJldHVybiBiPXNldFRpbWVvdXQsc2V0VGltZW91dChXLDApO3RyeXtyZXR1cm4gYihXLDApfWNhdGNoe3RyeXtyZXR1cm4gYi5jYWxsKG51bGwsVywwKX1jYXRjaHtyZXR1cm4gYi5jYWxsKHRoaXMsVywwKX19fSFmdW5jdGlvbigpe3RyeXtiPSJmdW5j'@; put 'dGlvbiI9PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6X31jYXRjaHtiPV99dHJ5e0Q9ImZ1bmN0aW9uIj09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6cH1jYXRjaHtEPXB9fSgpO3ZhciBSLEY9W10sSD0hMSxqPS0xO2Z1bmN0aW9uIFAoKXshSHx8IVJ8fChIPSExLFIu'@; put 'bGVuZ3RoP0Y9Ui5jb25jYXQoRik6aj0tMSxGLmxlbmd0aCYmTCgpKX1mdW5jdGlvbiBMKCl7aWYoIUgpe3ZhciBXPU4oUCk7SD0hMDtmb3IodmFyIFo9Ri5sZW5ndGg7Wjspe2ZvcihSPUYsRj1bXTsrK2o8WjspUiYmUltqXS5ydW4oKTtqPS0xLFo9Ri5sZW5ndGh9Uj1udWxsLEg9ITEsZnVu'@; put 'Y3Rpb24gdyhXKXtpZihEPT09Y2xlYXJUaW1lb3V0KXJldHVybiBjbGVhclRpbWVvdXQoVyk7aWYoKEQ9PT1wfHwhRCkmJmNsZWFyVGltZW91dClyZXR1cm4gRD1jbGVhclRpbWVvdXQsY2xlYXJUaW1lb3V0KFcpO3RyeXtyZXR1cm4gRChXKX1jYXRjaHt0cnl7cmV0dXJuIEQuY2FsbChudWxs'@; put 'LFcpfWNhdGNoe3JldHVybiBELmNhbGwodGhpcyxXKX19fShXKX19ZnVuY3Rpb24gWShXLFope3RoaXMuZnVuPVcsdGhpcy5hcnJheT1afWZ1bmN0aW9uIEIoKXt9Si5uZXh0VGljaz1mdW5jdGlvbihXKXt2YXIgWj1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aC0xKTtpZihhcmd1bWVudHMu'@; put 'bGVuZ3RoPjEpZm9yKHZhciBYPTE7WDxhcmd1bWVudHMubGVuZ3RoO1grKylaW1gtMV09YXJndW1lbnRzW1hdO0YucHVzaChuZXcgWShXLFopKSwxPT09Ri5sZW5ndGgmJiFIJiZOKEwpfSxZLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24oKXt0aGlzLmZ1bi5hcHBseShudWxsLHRoaXMuYXJyYXkp'@; put 'fSxKLnRpdGxlPSJicm93c2VyIixKLmJyb3dzZXI9ITAsSi5lbnY9e30sSi5hcmd2PVtdLEoudmVyc2lvbj0iIixKLnZlcnNpb25zPXt9LEoub249QixKLmFkZExpc3RlbmVyPUIsSi5vbmNlPUIsSi5vZmY9QixKLnJlbW92ZUxpc3RlbmVyPUIsSi5yZW1vdmVBbGxMaXN0ZW5lcnM9QixKLmVt'@; put 'aXQ9QixKLnByZXBlbmRMaXN0ZW5lcj1CLEoucHJlcGVuZE9uY2VMaXN0ZW5lcj1CLEoubGlzdGVuZXJzPWZ1bmN0aW9uKFcpe3JldHVybltdfSxKLmJpbmRpbmc9ZnVuY3Rpb24oVyl7dGhyb3cgbmV3IEVycm9yKCJwcm9jZXNzLmJpbmRpbmcgaXMgbm90IHN1cHBvcnRlZCIpfSxKLmN3ZD1m'@; put 'dW5jdGlvbigpe3JldHVybiIvIn0sSi5jaGRpcj1mdW5jdGlvbihXKXt0aHJvdyBuZXcgRXJyb3IoInByb2Nlc3MuY2hkaXIgaXMgbm90IHN1cHBvcnRlZCIpfSxKLnVtYXNrPWZ1bmN0aW9uKCl7cmV0dXJuIDB9fSw3OTAwOihjZSxKLGIpPT57Si5wdWJsaWNFbmNyeXB0PWIoNjU1OSksSi5w'@; put 'cml2YXRlRGVjcnlwdD1iKDYxMzgpLEoucHJpdmF0ZUVuY3J5cHQ9ZnVuY3Rpb24oXyxwKXtyZXR1cm4gSi5wdWJsaWNFbmNyeXB0KF8scCwhMCl9LEoucHVibGljRGVjcnlwdD1mdW5jdGlvbihfLHApe3JldHVybiBKLnByaXZhdGVEZWNyeXB0KF8scCwhMCl9fSw5MTk5OihjZSxKLGIpPT57'@; put 'dmFyIEQ9YigzNDgyKSxfPWIoOTUwOSkuQnVmZmVyO2Z1bmN0aW9uIHAoTil7dmFyIHc9Xy5hbGxvY1Vuc2FmZSg0KTtyZXR1cm4gdy53cml0ZVVJbnQzMkJFKE4sMCksd31jZS5leHBvcnRzPWZ1bmN0aW9uKE4sdyl7Zm9yKHZhciBSLEY9Xy5hbGxvYygwKSxIPTA7Ri5sZW5ndGg8dzspUj1w'@; put 'KEgrKyksRj1fLmNvbmNhdChbRixEKCJzaGExIikudXBkYXRlKE4pLnVwZGF0ZShSKS5kaWdlc3QoKV0pO3JldHVybiBGLnNsaWNlKDAsdyl9fSwyMTQ0OmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQsXyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHAoeixnKXtpZigheil0aHJvdyBuZXcg'@; put 'RXJyb3IoZ3x8IkFzc2VydGlvbiBmYWlsZWQiKX1mdW5jdGlvbiBOKHosZyl7ei5zdXBlcl89Zzt2YXIgeT1mdW5jdGlvbigpe307eS5wcm90b3R5cGU9Zy5wcm90b3R5cGUsei5wcm90b3R5cGU9bmV3IHksei5wcm90b3R5cGUuY29uc3RydWN0b3I9en1mdW5jdGlvbiB3KHosZyx5KXtpZih3'@; put 'LmlzQk4oeikpcmV0dXJuIHo7dGhpcy5uZWdhdGl2ZT0wLHRoaXMud29yZHM9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMucmVkPW51bGwsbnVsbCE9PXomJigoImxlIj09PWd8fCJiZSI9PT1nKSYmKHk9ZyxnPTEwKSx0aGlzLl9pbml0KHp8fDAsZ3x8MTAseXx8ImJlIikpfXZhciBGOyJvYmpl'@; put 'Y3QiPT10eXBlb2YgRD9ELmV4cG9ydHM9dzpfLkJOPXcsdy5CTj13LHcud29yZFNpemU9MjY7dHJ5e0Y9dHlwZW9mIHdpbmRvdzwidSImJnR5cGVvZiB3aW5kb3cuQnVmZmVyPCJ1Ij93aW5kb3cuQnVmZmVyOmIoNzEwOCkuQnVmZmVyfWNhdGNoe31mdW5jdGlvbiBIKHosZyl7dmFyIHk9ei5j'@; put 'aGFyQ29kZUF0KGcpO3JldHVybiB5Pj02NSYmeTw9NzA/eS01NTp5Pj05NyYmeTw9MTAyP3ktODc6eS00OCYxNX1mdW5jdGlvbiBSKHosZyx5KXt2YXIgeD1IKHoseSk7cmV0dXJuIHktMT49ZyYmKHh8PUgoeix5LTEpPDw0KSx4fWZ1bmN0aW9uIGooeixnLHkseCl7Zm9yKHZhciBDPTAsVD1N'@; put 'YXRoLm1pbih6Lmxlbmd0aCx5KSxWPWc7VjxUO1YrKyl7dmFyIFU9ei5jaGFyQ29kZUF0KFYpLTQ4O0MqPXgsQys9VT49NDk/VS00OSsxMDpVPj0xNz9VLTE3KzEwOlV9cmV0dXJuIEN9dy5pc0JOPWZ1bmN0aW9uKGcpe3JldHVybiBnIGluc3RhbmNlb2Ygd3x8bnVsbCE9PWcmJiJvYmplY3Qi'@; put 'PT10eXBlb2YgZyYmZy5jb25zdHJ1Y3Rvci53b3JkU2l6ZT09PXcud29yZFNpemUmJkFycmF5LmlzQXJyYXkoZy53b3Jkcyl9LHcubWF4PWZ1bmN0aW9uKGcseSl7cmV0dXJuIGcuY21wKHkpPjA/Zzp5fSx3Lm1pbj1mdW5jdGlvbihnLHkpe3JldHVybiBnLmNtcCh5KTwwP2c6eX0sdy5wcm90'@; put 'b3R5cGUuX2luaXQ9ZnVuY3Rpb24oZyx5LHgpe2lmKCJudW1iZXIiPT10eXBlb2YgZylyZXR1cm4gdGhpcy5faW5pdE51bWJlcihnLHkseCk7aWYoIm9iamVjdCI9PXR5cGVvZiBnKXJldHVybiB0aGlzLl9pbml0QXJyYXkoZyx5LHgpOyJoZXgiPT09eSYmKHk9MTYpLHAoeT09PSgwfHkpJiZ5'@; put 'Pj0yJiZ5PD0zNik7dmFyIEM9MDsiLSI9PT0oZz1nLnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpKVswXSYmKEMrKyx0aGlzLm5lZ2F0aXZlPTEpLEM8Zy5sZW5ndGgmJigxNj09PXk/dGhpcy5fcGFyc2VIZXgoZyxDLHgpOih0aGlzLl9wYXJzZUJhc2UoZyx5LEMpLCJsZSI9PT14JiZ0'@; put 'aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCkseSx4KSkpfSx3LnByb3RvdHlwZS5faW5pdE51bWJlcj1mdW5jdGlvbihnLHkseCl7ZzwwJiYodGhpcy5uZWdhdGl2ZT0xLGc9LWcpLGc8NjcxMDg4NjQ/KHRoaXMud29yZHM9WzY3MTA4ODYzJmddLHRoaXMubGVuZ3RoPTEpOmc8NDUwMzU5'@; put 'OTYyNzM3MDQ5Nj8odGhpcy53b3Jkcz1bNjcxMDg4NjMmZyxnLzY3MTA4ODY0JjY3MTA4ODYzXSx0aGlzLmxlbmd0aD0yKToocChnPDkwMDcxOTkyNTQ3NDA5OTIpLHRoaXMud29yZHM9WzY3MTA4ODYzJmcsZy82NzEwODg2NCY2NzEwODg2MywxXSx0aGlzLmxlbmd0aD0zKSwibGUiPT09eCYm'@; put 'dGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLHkseCl9LHcucHJvdG90eXBlLl9pbml0QXJyYXk9ZnVuY3Rpb24oZyx5LHgpe2lmKHAoIm51bWJlciI9PXR5cGVvZiBnLmxlbmd0aCksZy5sZW5ndGg8PTApcmV0dXJuIHRoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTEsdGhpczt0aGlz'@; put 'Lmxlbmd0aD1NYXRoLmNlaWwoZy5sZW5ndGgvMyksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgQz0wO0M8dGhpcy5sZW5ndGg7QysrKXRoaXMud29yZHNbQ109MDt2YXIgVCxWLFU9MDtpZigiYmUiPT09eClmb3IoQz1nLmxlbmd0aC0xLFQ9MDtDPj0wO0MtPTMp'@; put 'dGhpcy53b3Jkc1tUXXw9KFY9Z1tDXXxnW0MtMV08PDh8Z1tDLTJdPDwxNik8PFUmNjcxMDg4NjMsdGhpcy53b3Jkc1tUKzFdPVY+Pj4yNi1VJjY3MTA4ODYzLChVKz0yNCk+PTI2JiYoVS09MjYsVCsrKTtlbHNlIGlmKCJsZSI9PT14KWZvcihDPTAsVD0wO0M8Zy5sZW5ndGg7Qys9Myl0aGlz'@; put 'LndvcmRzW1RdfD0oVj1nW0NdfGdbQysxXTw8OHxnW0MrMl08PDE2KTw8VSY2NzEwODg2Myx0aGlzLndvcmRzW1QrMV09Vj4+PjI2LVUmNjcxMDg4NjMsKFUrPTI0KT49MjYmJihVLT0yNixUKyspO3JldHVybiB0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLl9wYXJzZUhleD1mdW5jdGlvbihn'@; put 'LHkseCl7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKChnLmxlbmd0aC15KS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBDPTA7Qzx0aGlzLmxlbmd0aDtDKyspdGhpcy53b3Jkc1tDXT0wO3ZhciBVLFQ9MCxWPTA7aWYoImJlIj09PXgpZm9yKEM9Zy5sZW5ndGgt'@; put 'MTtDPj15O0MtPTIpVT1SKGcseSxDKTw8VCx0aGlzLndvcmRzW1ZdfD02NzEwODg2MyZVLFQ+PTE4PyhULT0xOCx0aGlzLndvcmRzW1YrPTFdfD1VPj4+MjYpOlQrPTg7ZWxzZSBmb3IoQz0oZy5sZW5ndGgteSklMj09MD95KzE6eTtDPGcubGVuZ3RoO0MrPTIpVT1SKGcseSxDKTw8VCx0aGlz'@; put 'LndvcmRzW1ZdfD02NzEwODg2MyZVLFQ+PTE4PyhULT0xOCx0aGlzLndvcmRzW1YrPTFdfD1VPj4+MjYpOlQrPTg7dGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5fcGFyc2VCYXNlPWZ1bmN0aW9uKGcseSx4KXt0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xO2Zvcih2YXIgQz0wLFQ9MTtU'@; put 'PD02NzEwODg2MztUKj15KUMrKztDLS0sVD1UL3l8MDtmb3IodmFyIFY9Zy5sZW5ndGgteCxVPVYlQyxFPU1hdGgubWluKFYsVi1VKSt4LG09MCxBPXg7QTxFO0ErPUMpbT1qKGcsQSxBK0MseSksdGhpcy5pbXVsbihUKSx0aGlzLndvcmRzWzBdK208NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9'@; put 'bTp0aGlzLl9pYWRkbihtKTtpZigwIT09VSl7dmFyIGFlPTE7Zm9yKG09aihnLEEsZy5sZW5ndGgseSksQT0wO0E8VTtBKyspYWUqPXk7dGhpcy5pbXVsbihhZSksdGhpcy53b3Jkc1swXSttPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPW06dGhpcy5faWFkZG4obSl9dGhpcy5zdHJpcCgpfSx3'@; put 'LnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKGcpe2cud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHk9MDt5PHRoaXMubGVuZ3RoO3krKylnLndvcmRzW3ldPXRoaXMud29yZHNbeV07Zy5sZW5ndGg9dGhpcy5sZW5ndGgsZy5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLGcucmVk'@; put 'PXRoaXMucmVkfSx3LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciBnPW5ldyB3KG51bGwpO3JldHVybiB0aGlzLmNvcHkoZyksZ30sdy5wcm90b3R5cGUuX2V4cGFuZD1mdW5jdGlvbihnKXtmb3IoO3RoaXMubGVuZ3RoPGc7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1'@; put 'cm4gdGhpc30sdy5wcm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdOyl0aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSx3LnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1'@; put 'cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sdy5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgUD1bIiIsIjAi'@; put 'LCIwMCIsIjAwMCIsIjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAiLCIwMDAwMDAwMCIsIjAwMDAwMDAwMCIsIjAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMCIsIjAw'@; put 'MDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAw'@; put 'MDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXSxMPVswLDAsMjUsMTYsMTIsMTEsMTAsOSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLFk9WzAsMCwzMzU1NDQz'@; put 'Miw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1'@; put 'MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQzMiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07ZnVuY3Rpb24gVyh6LGcseSl7eS5uZWdhdGl2ZT1nLm5lZ2F0aXZl'@; put 'XnoubmVnYXRpdmU7dmFyIHg9ei5sZW5ndGgrZy5sZW5ndGh8MDt5Lmxlbmd0aD14LHg9eC0xfDA7dmFyIEM9MHx6LndvcmRzWzBdLFQ9MHxnLndvcmRzWzBdLFY9QypULEU9Vi82NzEwODg2NHwwO3kud29yZHNbMF09NjcxMDg4NjMmVjtmb3IodmFyIG09MTttPHg7bSsrKXtmb3IodmFyIEE9'@; put 'RT4+PjI2LGFlPTY3MTA4ODYzJkUsbmU9TWF0aC5taW4obSxnLmxlbmd0aC0xKSxsZT1NYXRoLm1heCgwLG0tei5sZW5ndGgrMSk7bGU8PW5lO2xlKyspQSs9KFY9KEM9MHx6LndvcmRzW20tbGV8MF0pKihUPTB8Zy53b3Jkc1tsZV0pK2FlKS82NzEwODg2NHwwLGFlPTY3MTA4ODYzJlY7eS53'@; put 'b3Jkc1ttXT0wfGFlLEU9MHxBfXJldHVybiAwIT09RT95LndvcmRzW21dPTB8RTp5Lmxlbmd0aC0tLHkuc3RyaXAoKX13LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbihnLHkpe3ZhciB4O2lmKHk9MHx5fHwxLDE2PT09KGc9Z3x8MTApfHwiaGV4Ij09PWcpe3g9IiI7Zm9yKHZhciBDPTAs'@; put 'VD0wLFY9MDtWPHRoaXMubGVuZ3RoO1YrKyl7dmFyIFU9dGhpcy53b3Jkc1tWXSxFPSgxNjc3NzIxNSYoVTw8Q3xUKSkudG9TdHJpbmcoMTYpO1Q9VT4+PjI0LUMmMTY3NzcyMTUsKEMrPTIpPj0yNiYmKEMtPTI2LFYtLSkseD0wIT09VHx8ViE9PXRoaXMubGVuZ3RoLTE/UFs2LUUubGVuZ3Ro'@; put 'XStFK3g6RSt4fWZvcigwIT09VCYmKHg9VC50b1N0cmluZygxNikreCk7eC5sZW5ndGgleSE9MDspeD0iMCIreDtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJih4PSItIit4KSx4fWlmKGc9PT0oMHxnKSYmZz49MiYmZzw9MzYpe3ZhciBtPUxbZ10sQT1ZW2ddO3g9IiI7dmFyIGFlPXRoaXMu'@; put 'Y2xvbmUoKTtmb3IoYWUubmVnYXRpdmU9MDshYWUuaXNaZXJvKCk7KXt2YXIgbmU9YWUubW9kbihBKS50b1N0cmluZyhnKTt4PShhZT1hZS5pZGl2bihBKSkuaXNaZXJvKCk/bmUreDpQW20tbmUubGVuZ3RoXStuZSt4fWZvcih0aGlzLmlzWmVybygpJiYoeD0iMCIreCk7eC5sZW5ndGgleSE9'@; put 'MDspeD0iMCIreDtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJih4PSItIit4KSx4fXAoITEsIkJhc2Ugc2hvdWxkIGJlIGJldHdlZW4gMiBhbmQgMzYiKX0sdy5wcm90b3R5cGUudG9OdW1iZXI9ZnVuY3Rpb24oKXt2YXIgZz10aGlzLndvcmRzWzBdO3JldHVybiAyPT09dGhpcy5sZW5ndGg/'@; put 'Zys9NjcxMDg4NjQqdGhpcy53b3Jkc1sxXTozPT09dGhpcy5sZW5ndGgmJjE9PT10aGlzLndvcmRzWzJdP2crPTQ1MDM1OTk2MjczNzA0OTYrNjcxMDg4NjQqdGhpcy53b3Jkc1sxXTp0aGlzLmxlbmd0aD4yJiZwKCExLCJOdW1iZXIgY2FuIG9ubHkgc2FmZWx5IHN0b3JlIHVwIHRvIDUzIGJp'@; put 'dHMiKSwwIT09dGhpcy5uZWdhdGl2ZT8tZzpnfSx3LnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygxNil9LHcucHJvdG90eXBlLnRvQnVmZmVyPWZ1bmN0aW9uKGcseSl7cmV0dXJuIHAodHlwZW9mIEY8InUiKSx0aGlzLnRvQXJyYXlMaWtlKEYsZyx5'@; put 'KX0sdy5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbihnLHkpe3JldHVybiB0aGlzLnRvQXJyYXlMaWtlKEFycmF5LGcseSl9LHcucHJvdG90eXBlLnRvQXJyYXlMaWtlPWZ1bmN0aW9uKGcseSx4KXt2YXIgQz10aGlzLmJ5dGVMZW5ndGgoKSxUPXh8fE1hdGgubWF4KDEsQyk7cChDPD1ULCJi'@; put 'eXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIikscChUPjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpLHRoaXMuc3RyaXAoKTt2YXIgRSxtLFY9ImxlIj09PXksVT1uZXcgZyhUKSxBPXRoaXMuY2xvbmUoKTtpZihWKXtmb3IobT0wOyFBLmlzWmVybygpO20rKylF'@; put 'PUEuYW5kbG4oMjU1KSxBLml1c2hybig4KSxVW21dPUU7Zm9yKDttPFQ7bSsrKVVbbV09MH1lbHNle2ZvcihtPTA7bTxULUM7bSsrKVVbbV09MDtmb3IobT0wOyFBLmlzWmVybygpO20rKylFPUEuYW5kbG4oMjU1KSxBLml1c2hybig4KSxVW1QtbS0xXT1FfXJldHVybiBVfSx3LnByb3RvdHlw'@; put 'ZS5fY291bnRCaXRzPU1hdGguY2x6MzI/ZnVuY3Rpb24oZyl7cmV0dXJuIDMyLU1hdGguY2x6MzIoZyl9OmZ1bmN0aW9uKGcpe3ZhciB5PWcseD0wO3JldHVybiB5Pj00MDk2JiYoeCs9MTMseT4+Pj0xMykseT49NjQmJih4Kz03LHk+Pj49NykseT49OCYmKHgrPTQseT4+Pj00KSx5Pj0yJiYo'@; put 'eCs9Mix5Pj4+PTIpLHgreX0sdy5wcm90b3R5cGUuX3plcm9CaXRzPWZ1bmN0aW9uKGcpe2lmKDA9PT1nKXJldHVybiAyNjt2YXIgeT1nLHg9MDtyZXR1cm4gODE5MSZ5fHwoeCs9MTMseT4+Pj0xMyksMTI3Jnl8fCh4Kz03LHk+Pj49NyksMTUmeXx8KHgrPTQseT4+Pj00KSwzJnl8fCh4Kz0y'@; put 'LHk+Pj49MiksMSZ5fHx4KysseH0sdy5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5fY291bnRCaXRzKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0pO3JldHVybiAyNioodGhpcy5sZW5ndGgtMSkreX0sdy5wcm90b3R5cGUuemVyb0JpdHM9ZnVuY3Rpb24oKXtp'@; put 'Zih0aGlzLmlzWmVybygpKXJldHVybiAwO2Zvcih2YXIgZz0wLHk9MDt5PHRoaXMubGVuZ3RoO3krKyl7dmFyIHg9dGhpcy5femVyb0JpdHModGhpcy53b3Jkc1t5XSk7aWYoZys9eCwyNiE9PXgpYnJlYWt9cmV0dXJuIGd9LHcucHJvdG90eXBlLmJ5dGVMZW5ndGg9ZnVuY3Rpb24oKXtyZXR1'@; put 'cm4gTWF0aC5jZWlsKHRoaXMuYml0TGVuZ3RoKCkvOCl9LHcucHJvdG90eXBlLnRvVHdvcz1mdW5jdGlvbihnKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/dGhpcy5hYnMoKS5pbm90bihnKS5pYWRkbigxKTp0aGlzLmNsb25lKCl9LHcucHJvdG90eXBlLmZyb21Ud29zPWZ1bmN0aW9uKGcp'@; put 'e3JldHVybiB0aGlzLnRlc3RuKGctMSk/dGhpcy5ub3RuKGcpLmlhZGRuKDEpLmluZWcoKTp0aGlzLmNsb25lKCl9LHcucHJvdG90eXBlLmlzTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlfSx3LnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9u'@; put 'ZSgpLmluZWcoKX0sdy5wcm90b3R5cGUuaW5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzWmVybygpfHwodGhpcy5uZWdhdGl2ZV49MSksdGhpc30sdy5wcm90b3R5cGUuaXVvcj1mdW5jdGlvbihnKXtmb3IoO3RoaXMubGVuZ3RoPGcubGVuZ3RoOyl0aGlzLndvcmRzW3RoaXMubGVuZ3Ro'@; put 'KytdPTA7Zm9yKHZhciB5PTA7eTxnLmxlbmd0aDt5KyspdGhpcy53b3Jkc1t5XT10aGlzLndvcmRzW3ldfGcud29yZHNbeV07cmV0dXJuIHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuaW9yPWZ1bmN0aW9uKGcpe3JldHVybiBwKCEodGhpcy5uZWdhdGl2ZXxnLm5lZ2F0aXZlKSksdGhpcy5p'@; put 'dW9yKGcpfSx3LnByb3RvdHlwZS5vcj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLmlvcihnKTpnLmNsb25lKCkuaW9yKHRoaXMpfSx3LnByb3RvdHlwZS51b3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMu'@; put 'Y2xvbmUoKS5pdW9yKGcpOmcuY2xvbmUoKS5pdW9yKHRoaXMpfSx3LnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbihnKXt2YXIgeTt5PXRoaXMubGVuZ3RoPmcubGVuZ3RoP2c6dGhpcztmb3IodmFyIHg9MDt4PHkubGVuZ3RoO3grKyl0aGlzLndvcmRzW3hdPXRoaXMud29yZHNbeF0mZy53b3Jk'@; put 'c1t4XTtyZXR1cm4gdGhpcy5sZW5ndGg9eS5sZW5ndGgsdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKGcpe3JldHVybiBwKCEodGhpcy5uZWdhdGl2ZXxnLm5lZ2F0aXZlKSksdGhpcy5pdWFuZChnKX0sdy5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKGcpe3JldHVybiB0'@; put 'aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZChnKTpnLmNsb25lKCkuaWFuZCh0aGlzKX0sdy5wcm90b3R5cGUudWFuZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLml1YW5kKGcpOmcuY2xvbmUoKS5pdWFuZCh0aGlzKX0s'@; put 'dy5wcm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24oZyl7dmFyIHkseDt0aGlzLmxlbmd0aD5nLmxlbmd0aD8oeT10aGlzLHg9Zyk6KHk9Zyx4PXRoaXMpO2Zvcih2YXIgQz0wO0M8eC5sZW5ndGg7QysrKXRoaXMud29yZHNbQ109eS53b3Jkc1tDXV54LndvcmRzW0NdO2lmKHRoaXMhPT15KWZvcig7'@; put 'Qzx5Lmxlbmd0aDtDKyspdGhpcy53b3Jkc1tDXT15LndvcmRzW0NdO3JldHVybiB0aGlzLmxlbmd0aD15Lmxlbmd0aCx0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLml4b3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHAoISh0aGlzLm5lZ2F0aXZlfGcubmVnYXRpdmUpKSx0aGlzLml1eG9yKGcpfSx3'@; put 'LnByb3RvdHlwZS54b3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5peG9yKGcpOmcuY2xvbmUoKS5peG9yKHRoaXMpfSx3LnByb3RvdHlwZS51eG9yPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25l'@; put 'KCkuaXV4b3IoZyk6Zy5jbG9uZSgpLml1eG9yKHRoaXMpfSx3LnByb3RvdHlwZS5pbm90bj1mdW5jdGlvbihnKXtwKCJudW1iZXIiPT10eXBlb2YgZyYmZz49MCk7dmFyIHk9MHxNYXRoLmNlaWwoZy8yNikseD1nJTI2O3RoaXMuX2V4cGFuZCh5KSx4PjAmJnktLTtmb3IodmFyIEM9MDtDPHk7'@; put 'QysrKXRoaXMud29yZHNbQ109NjcxMDg4NjMmfnRoaXMud29yZHNbQ107cmV0dXJuIHg+MCYmKHRoaXMud29yZHNbQ109fnRoaXMud29yZHNbQ10mNjcxMDg4NjM+PjI2LXgpLHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUubm90bj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlu'@; put 'b3RuKGcpfSx3LnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uKGcseSl7cCgibnVtYmVyIj09dHlwZW9mIGcmJmc+PTApO3ZhciB4PWcvMjZ8MCxDPWclMjY7cmV0dXJuIHRoaXMuX2V4cGFuZCh4KzEpLHRoaXMud29yZHNbeF09eT90aGlzLndvcmRzW3hdfDE8PEM6dGhpcy53b3Jkc1t4XSZ+KDE8'@; put 'PEMpLHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbihnKXt2YXIgeSx4LEM7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1nLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAseT10aGlzLmlzdWIoZyksdGhpcy5uZWdhdGl2ZV49MSx0aGlzLl9ub3JtU2lnbigp'@; put 'O2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Zy5uZWdhdGl2ZSlyZXR1cm4gZy5uZWdhdGl2ZT0wLHk9dGhpcy5pc3ViKGcpLGcubmVnYXRpdmU9MSx5Ll9ub3JtU2lnbigpO3RoaXMubGVuZ3RoPmcubGVuZ3RoPyh4PXRoaXMsQz1nKTooeD1nLEM9dGhpcyk7Zm9yKHZhciBUPTAsVj0wO1Y8'@; put 'Qy5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09NjcxMDg4NjMmKHk9KDB8eC53b3Jkc1tWXSkrKDB8Qy53b3Jkc1tWXSkrVCksVD15Pj4+MjY7Zm9yKDswIT09VCYmVjx4Lmxlbmd0aDtWKyspdGhpcy53b3Jkc1tWXT02NzEwODg2MyYoeT0oMHx4LndvcmRzW1ZdKStUKSxUPXk+Pj4yNjtpZih0'@; put 'aGlzLmxlbmd0aD14Lmxlbmd0aCwwIT09VCl0aGlzLndvcmRzW3RoaXMubGVuZ3RoXT1ULHRoaXMubGVuZ3RoKys7ZWxzZSBpZih4IT09dGhpcylmb3IoO1Y8eC5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09eC53b3Jkc1tWXTtyZXR1cm4gdGhpc30sdy5wcm90b3R5cGUuYWRkPWZ1bmN0aW9u'@; put 'KGcpe3ZhciB5O3JldHVybiAwIT09Zy5uZWdhdGl2ZSYmMD09PXRoaXMubmVnYXRpdmU/KGcubmVnYXRpdmU9MCx5PXRoaXMuc3ViKGcpLGcubmVnYXRpdmVePTEseSk6MD09PWcubmVnYXRpdmUmJjAhPT10aGlzLm5lZ2F0aXZlPyh0aGlzLm5lZ2F0aXZlPTAseT1nLnN1Yih0aGlzKSx0aGlz'@; put 'Lm5lZ2F0aXZlPTEseSk6dGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhZGQoZyk6Zy5jbG9uZSgpLmlhZGQodGhpcyl9LHcucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24oZyl7aWYoMCE9PWcubmVnYXRpdmUpe2cubmVnYXRpdmU9MDt2YXIgeT10aGlzLmlhZGQoZyk7cmV0dXJu'@; put 'IGcubmVnYXRpdmU9MSx5Ll9ub3JtU2lnbigpfWlmKDAhPT10aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkKGcpLHRoaXMubmVnYXRpdmU9MSx0aGlzLl9ub3JtU2lnbigpO3ZhciBDLFQseD10aGlzLmNtcChnKTtpZigwPT09eClyZXR1cm4gdGhpcy5uZWdh'@; put 'dGl2ZT0wLHRoaXMubGVuZ3RoPTEsdGhpcy53b3Jkc1swXT0wLHRoaXM7eD4wPyhDPXRoaXMsVD1nKTooQz1nLFQ9dGhpcyk7Zm9yKHZhciBWPTAsVT0wO1U8VC5sZW5ndGg7VSsrKVY9KHk9KDB8Qy53b3Jkc1tVXSktKDB8VC53b3Jkc1tVXSkrVik+PjI2LHRoaXMud29yZHNbVV09NjcxMDg4'@; put 'NjMmeTtmb3IoOzAhPT1WJiZVPEMubGVuZ3RoO1UrKylWPSh5PSgwfEMud29yZHNbVV0pK1YpPj4yNix0aGlzLndvcmRzW1VdPTY3MTA4ODYzJnk7aWYoMD09PVYmJlU8Qy5sZW5ndGgmJkMhPT10aGlzKWZvcig7VTxDLmxlbmd0aDtVKyspdGhpcy53b3Jkc1tVXT1DLndvcmRzW1VdO3JldHVy'@; put 'biB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxVKSxDIT09dGhpcyYmKHRoaXMubmVnYXRpdmU9MSksdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKGcpfTt2YXIgWj1mdW5jdGlvbihnLHkseCl7dmFyIEUs'@; put 'bSxBLEM9Zy53b3JkcyxUPXkud29yZHMsVj14LndvcmRzLFU9MCxhZT0wfENbMF0sbmU9ODE5MSZhZSxsZT1hZT4+PjEzLHdlPTB8Q1sxXSxaZT04MTkxJndlLFFlPXdlPj4+MTMsYXQ9MHxDWzJdLHhlPTgxOTEmYXQsdmU9YXQ+Pj4xMyxxZT0wfENbM10samU9ODE5MSZxZSxBZT1xZT4+PjEz'@; put 'LEZlPTB8Q1s0XSxSZT04MTkxJkZlLEllPUZlPj4+MTMsSGU9MHxDWzVdLERlPTgxOTEmSGUsa2U9SGU+Pj4xMyxfdD0wfENbNl0sbnQ9ODE5MSZfdCxKZT1fdD4+PjEzLG9uPTB8Q1s3XSx5dD04MTkxJm9uLE10PW9uPj4+MTMsSXQ9MHxDWzhdLHJ0PTgxOTEmSXQsS2U9SXQ+Pj4xMyx0dD0w'@; put 'fENbOV0sTmU9ODE5MSZ0dCx1dD10dD4+PjEzLEp0PTB8VFswXSxMdD04MTkxJkp0LFB0PUp0Pj4+MTMsb2k9MHxUWzFdLGVuPTgxOTEmb2ksc249b2k+Pj4xMyxJaT0wfFRbMl0sZG49ODE5MSZJaSxmdD1JaT4+PjEzLEZyPTB8VFszXSxadD04MTkxJkZyLGt0PUZyPj4+MTMsTG49MHxUWzRd'@; put 'LG90PTgxOTEmTG4senQ9TG4+Pj4xMyxuaT0wfFRbNV0sV2U9ODE5MSZuaSxBdD1uaT4+PjEzLGlyPTB8VFs2XSxodD04MTkxJmlyLEV0PWlyPj4+MTMsem49MHxUWzddLGFuPTgxOTEmem4sanQ9em4+Pj4xMyxkaT0wfFRbOF0sY249ODE5MSZkaSxmbj1kaT4+PjEzLERpPTB8VFs5XSxRdD04'@; put 'MTkxJkRpLHRuPURpPj4+MTM7eC5uZWdhdGl2ZT1nLm5lZ2F0aXZlXnkubmVnYXRpdmUseC5sZW5ndGg9MTk7dmFyIGNhPShVKyhFPU1hdGguaW11bChuZSxMdCkpfDApKygoODE5MSYobT0obT1NYXRoLmltdWwobmUsUHQpKStNYXRoLmltdWwobGUsTHQpfDApKTw8MTMpfDA7VT0oKEE9TWF0'@; put 'aC5pbXVsKGxlLFB0KSkrKG0+Pj4xMyl8MCkrKGNhPj4+MjYpfDAsY2EmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKFplLEx0KSxtPShtPU1hdGguaW11bChaZSxQdCkpK01hdGguaW11bChRZSxMdCl8MCxBPU1hdGguaW11bChRZSxQdCk7dmFyIHhpPShVKyhFPUUrTWF0aC5pbXVsKG5lLGVuKXww'@; put 'KXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsc24pfDApK01hdGguaW11bChsZSxlbil8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSxzbil8MCkrKG0+Pj4xMyl8MCkrKHhpPj4+MjYpfDAseGkmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKHhlLEx0KSxtPShtPU1hdGguaW11'@; put 'bCh4ZSxQdCkpK01hdGguaW11bCh2ZSxMdCl8MCxBPU1hdGguaW11bCh2ZSxQdCksRT1FK01hdGguaW11bChaZSxlbil8MCxtPShtPW0rTWF0aC5pbXVsKFplLHNuKXwwKStNYXRoLmltdWwoUWUsZW4pfDAsQT1BK01hdGguaW11bChRZSxzbil8MDt2YXIgeXI9KFUrKEU9RStNYXRoLmltdWwo'@; put 'bmUsZG4pfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSxmdCl8MCkrTWF0aC5pbXVsKGxlLGRuKXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKGxlLGZ0KXwwKSsobT4+PjEzKXwwKSsoeXI+Pj4yNil8MCx5ciY9NjcxMDg4NjMsRT1NYXRoLmltdWwoamUsTHQpLG09KG09'@; put 'TWF0aC5pbXVsKGplLFB0KSkrTWF0aC5pbXVsKEFlLEx0KXwwLEE9TWF0aC5pbXVsKEFlLFB0KSxFPUUrTWF0aC5pbXVsKHhlLGVuKXwwLG09KG09bStNYXRoLmltdWwoeGUsc24pfDApK01hdGguaW11bCh2ZSxlbil8MCxBPUErTWF0aC5pbXVsKHZlLHNuKXwwLEU9RStNYXRoLmltdWwoWmUs'@; put 'ZG4pfDAsbT0obT1tK01hdGguaW11bChaZSxmdCl8MCkrTWF0aC5pbXVsKFFlLGRuKXwwLEE9QStNYXRoLmltdWwoUWUsZnQpfDA7dmFyIEduPShVKyhFPUUrTWF0aC5pbXVsKG5lLFp0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsa3QpfDApK01hdGguaW11bChsZSxadCl8'@; put 'MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSxrdCl8MCkrKG0+Pj4xMyl8MCkrKEduPj4+MjYpfDAsR24mPTY3MTA4ODYzLEU9TWF0aC5pbXVsKFJlLEx0KSxtPShtPU1hdGguaW11bChSZSxQdCkpK01hdGguaW11bChJZSxMdCl8MCxBPU1hdGguaW11bChJZSxQdCksRT1FK01hdGgu'@; put 'aW11bChqZSxlbil8MCxtPShtPW0rTWF0aC5pbXVsKGplLHNuKXwwKStNYXRoLmltdWwoQWUsZW4pfDAsQT1BK01hdGguaW11bChBZSxzbil8MCxFPUUrTWF0aC5pbXVsKHhlLGRuKXwwLG09KG09bStNYXRoLmltdWwoeGUsZnQpfDApK01hdGguaW11bCh2ZSxkbil8MCxBPUErTWF0aC5pbXVs'@; put 'KHZlLGZ0KXwwLEU9RStNYXRoLmltdWwoWmUsWnQpfDAsbT0obT1tK01hdGguaW11bChaZSxrdCl8MCkrTWF0aC5pbXVsKFFlLFp0KXwwLEE9QStNYXRoLmltdWwoUWUsa3QpfDA7dmFyIEtpPShVKyhFPUUrTWF0aC5pbXVsKG5lLG90KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwo'@; put 'bmUsenQpfDApK01hdGguaW11bChsZSxvdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSx6dCl8MCkrKG0+Pj4xMyl8MCkrKEtpPj4+MjYpfDAsS2kmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKERlLEx0KSxtPShtPU1hdGguaW11bChEZSxQdCkpK01hdGguaW11bChrZSxMdCl8MCxB'@; put 'PU1hdGguaW11bChrZSxQdCksRT1FK01hdGguaW11bChSZSxlbil8MCxtPShtPW0rTWF0aC5pbXVsKFJlLHNuKXwwKStNYXRoLmltdWwoSWUsZW4pfDAsQT1BK01hdGguaW11bChJZSxzbil8MCxFPUUrTWF0aC5pbXVsKGplLGRuKXwwLG09KG09bStNYXRoLmltdWwoamUsZnQpfDApK01hdGgu'@; put 'aW11bChBZSxkbil8MCxBPUErTWF0aC5pbXVsKEFlLGZ0KXwwLEU9RStNYXRoLmltdWwoeGUsWnQpfDAsbT0obT1tK01hdGguaW11bCh4ZSxrdCl8MCkrTWF0aC5pbXVsKHZlLFp0KXwwLEE9QStNYXRoLmltdWwodmUsa3QpfDAsRT1FK01hdGguaW11bChaZSxvdCl8MCxtPShtPW0rTWF0aC5p'@; put 'bXVsKFplLHp0KXwwKStNYXRoLmltdWwoUWUsb3QpfDAsQT1BK01hdGguaW11bChRZSx6dCl8MDt2YXIgSnI9KFUrKEU9RStNYXRoLmltdWwobmUsV2UpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSxBdCl8MCkrTWF0aC5pbXVsKGxlLFdlKXwwKSk8PDEzKXwwO1U9KChBPUEr'@; put 'TWF0aC5pbXVsKGxlLEF0KXwwKSsobT4+PjEzKXwwKSsoSnI+Pj4yNil8MCxKciY9NjcxMDg4NjMsRT1NYXRoLmltdWwobnQsTHQpLG09KG09TWF0aC5pbXVsKG50LFB0KSkrTWF0aC5pbXVsKEplLEx0KXwwLEE9TWF0aC5pbXVsKEplLFB0KSxFPUUrTWF0aC5pbXVsKERlLGVuKXwwLG09KG09'@; put 'bStNYXRoLmltdWwoRGUsc24pfDApK01hdGguaW11bChrZSxlbil8MCxBPUErTWF0aC5pbXVsKGtlLHNuKXwwLEU9RStNYXRoLmltdWwoUmUsZG4pfDAsbT0obT1tK01hdGguaW11bChSZSxmdCl8MCkrTWF0aC5pbXVsKEllLGRuKXwwLEE9QStNYXRoLmltdWwoSWUsZnQpfDAsRT1FK01hdGgu'@; put 'aW11bChqZSxadCl8MCxtPShtPW0rTWF0aC5pbXVsKGplLGt0KXwwKStNYXRoLmltdWwoQWUsWnQpfDAsQT1BK01hdGguaW11bChBZSxrdCl8MCxFPUUrTWF0aC5pbXVsKHhlLG90KXwwLG09KG09bStNYXRoLmltdWwoeGUsenQpfDApK01hdGguaW11bCh2ZSxvdCl8MCxBPUErTWF0aC5pbXVs'@; put 'KHZlLHp0KXwwLEU9RStNYXRoLmltdWwoWmUsV2UpfDAsbT0obT1tK01hdGguaW11bChaZSxBdCl8MCkrTWF0aC5pbXVsKFFlLFdlKXwwLEE9QStNYXRoLmltdWwoUWUsQXQpfDA7dmFyIFFyPShVKyhFPUUrTWF0aC5pbXVsKG5lLGh0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwo'@; put 'bmUsRXQpfDApK01hdGguaW11bChsZSxodCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSxFdCl8MCkrKG0+Pj4xMyl8MCkrKFFyPj4+MjYpfDAsUXImPTY3MTA4ODYzLEU9TWF0aC5pbXVsKHl0LEx0KSxtPShtPU1hdGguaW11bCh5dCxQdCkpK01hdGguaW11bChNdCxMdCl8MCxB'@; put 'PU1hdGguaW11bChNdCxQdCksRT1FK01hdGguaW11bChudCxlbil8MCxtPShtPW0rTWF0aC5pbXVsKG50LHNuKXwwKStNYXRoLmltdWwoSmUsZW4pfDAsQT1BK01hdGguaW11bChKZSxzbil8MCxFPUUrTWF0aC5pbXVsKERlLGRuKXwwLG09KG09bStNYXRoLmltdWwoRGUsZnQpfDApK01hdGgu'@; put 'aW11bChrZSxkbil8MCxBPUErTWF0aC5pbXVsKGtlLGZ0KXwwLEU9RStNYXRoLmltdWwoUmUsWnQpfDAsbT0obT1tK01hdGguaW11bChSZSxrdCl8MCkrTWF0aC5pbXVsKEllLFp0KXwwLEE9QStNYXRoLmltdWwoSWUsa3QpfDAsRT1FK01hdGguaW11bChqZSxvdCl8MCxtPShtPW0rTWF0aC5p'@; put 'bXVsKGplLHp0KXwwKStNYXRoLmltdWwoQWUsb3QpfDAsQT1BK01hdGguaW11bChBZSx6dCl8MCxFPUUrTWF0aC5pbXVsKHhlLFdlKXwwLG09KG09bStNYXRoLmltdWwoeGUsQXQpfDApK01hdGguaW11bCh2ZSxXZSl8MCxBPUErTWF0aC5pbXVsKHZlLEF0KXwwLEU9RStNYXRoLmltdWwoWmUs'@; put 'aHQpfDAsbT0obT1tK01hdGguaW11bChaZSxFdCl8MCkrTWF0aC5pbXVsKFFlLGh0KXwwLEE9QStNYXRoLmltdWwoUWUsRXQpfDA7dmFyIE5pPShVKyhFPUUrTWF0aC5pbXVsKG5lLGFuKXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsanQpfDApK01hdGguaW11bChsZSxhbil8'@; put 'MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSxqdCl8MCkrKG0+Pj4xMyl8MCkrKE5pPj4+MjYpfDAsTmkmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKHJ0LEx0KSxtPShtPU1hdGguaW11bChydCxQdCkpK01hdGguaW11bChLZSxMdCl8MCxBPU1hdGguaW11bChLZSxQdCksRT1FK01hdGgu'@; put 'aW11bCh5dCxlbil8MCxtPShtPW0rTWF0aC5pbXVsKHl0LHNuKXwwKStNYXRoLmltdWwoTXQsZW4pfDAsQT1BK01hdGguaW11bChNdCxzbil8MCxFPUUrTWF0aC5pbXVsKG50LGRuKXwwLG09KG09bStNYXRoLmltdWwobnQsZnQpfDApK01hdGguaW11bChKZSxkbil8MCxBPUErTWF0aC5pbXVs'@; put 'KEplLGZ0KXwwLEU9RStNYXRoLmltdWwoRGUsWnQpfDAsbT0obT1tK01hdGguaW11bChEZSxrdCl8MCkrTWF0aC5pbXVsKGtlLFp0KXwwLEE9QStNYXRoLmltdWwoa2Usa3QpfDAsRT1FK01hdGguaW11bChSZSxvdCl8MCxtPShtPW0rTWF0aC5pbXVsKFJlLHp0KXwwKStNYXRoLmltdWwoSWUs'@; put 'b3QpfDAsQT1BK01hdGguaW11bChJZSx6dCl8MCxFPUUrTWF0aC5pbXVsKGplLFdlKXwwLG09KG09bStNYXRoLmltdWwoamUsQXQpfDApK01hdGguaW11bChBZSxXZSl8MCxBPUErTWF0aC5pbXVsKEFlLEF0KXwwLEU9RStNYXRoLmltdWwoeGUsaHQpfDAsbT0obT1tK01hdGguaW11bCh4ZSxF'@; put 'dCl8MCkrTWF0aC5pbXVsKHZlLGh0KXwwLEE9QStNYXRoLmltdWwodmUsRXQpfDAsRT1FK01hdGguaW11bChaZSxhbil8MCxtPShtPW0rTWF0aC5pbXVsKFplLGp0KXwwKStNYXRoLmltdWwoUWUsYW4pfDAsQT1BK01hdGguaW11bChRZSxqdCl8MDt2YXIgSGk9KFUrKEU9RStNYXRoLmltdWwo'@; put 'bmUsY24pfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSxmbil8MCkrTWF0aC5pbXVsKGxlLGNuKXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKGxlLGZuKXwwKSsobT4+PjEzKXwwKSsoSGk+Pj4yNil8MCxIaSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsTHQpLG09KG09'@; put 'TWF0aC5pbXVsKE5lLFB0KSkrTWF0aC5pbXVsKHV0LEx0KXwwLEE9TWF0aC5pbXVsKHV0LFB0KSxFPUUrTWF0aC5pbXVsKHJ0LGVuKXwwLG09KG09bStNYXRoLmltdWwocnQsc24pfDApK01hdGguaW11bChLZSxlbil8MCxBPUErTWF0aC5pbXVsKEtlLHNuKXwwLEU9RStNYXRoLmltdWwoeXQs'@; put 'ZG4pfDAsbT0obT1tK01hdGguaW11bCh5dCxmdCl8MCkrTWF0aC5pbXVsKE10LGRuKXwwLEE9QStNYXRoLmltdWwoTXQsZnQpfDAsRT1FK01hdGguaW11bChudCxadCl8MCxtPShtPW0rTWF0aC5pbXVsKG50LGt0KXwwKStNYXRoLmltdWwoSmUsWnQpfDAsQT1BK01hdGguaW11bChKZSxrdCl8'@; put 'MCxFPUUrTWF0aC5pbXVsKERlLG90KXwwLG09KG09bStNYXRoLmltdWwoRGUsenQpfDApK01hdGguaW11bChrZSxvdCl8MCxBPUErTWF0aC5pbXVsKGtlLHp0KXwwLEU9RStNYXRoLmltdWwoUmUsV2UpfDAsbT0obT1tK01hdGguaW11bChSZSxBdCl8MCkrTWF0aC5pbXVsKEllLFdlKXwwLEE9'@; put 'QStNYXRoLmltdWwoSWUsQXQpfDAsRT1FK01hdGguaW11bChqZSxodCl8MCxtPShtPW0rTWF0aC5pbXVsKGplLEV0KXwwKStNYXRoLmltdWwoQWUsaHQpfDAsQT1BK01hdGguaW11bChBZSxFdCl8MCxFPUUrTWF0aC5pbXVsKHhlLGFuKXwwLG09KG09bStNYXRoLmltdWwoeGUsanQpfDApK01h'@; put 'dGguaW11bCh2ZSxhbil8MCxBPUErTWF0aC5pbXVsKHZlLGp0KXwwLEU9RStNYXRoLmltdWwoWmUsY24pfDAsbT0obT1tK01hdGguaW11bChaZSxmbil8MCkrTWF0aC5pbXVsKFFlLGNuKXwwLEE9QStNYXRoLmltdWwoUWUsZm4pfDA7dmFyIElhPShVKyhFPUUrTWF0aC5pbXVsKG5lLFF0KXww'@; put 'KXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsdG4pfDApK01hdGguaW11bChsZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSx0bil8MCkrKG0+Pj4xMyl8MCkrKElhPj4+MjYpfDAsSWEmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLGVuKSxtPShtPU1hdGguaW11'@; put 'bChOZSxzbikpK01hdGguaW11bCh1dCxlbil8MCxBPU1hdGguaW11bCh1dCxzbiksRT1FK01hdGguaW11bChydCxkbil8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LGZ0KXwwKStNYXRoLmltdWwoS2UsZG4pfDAsQT1BK01hdGguaW11bChLZSxmdCl8MCxFPUUrTWF0aC5pbXVsKHl0LFp0KXwwLG09'@; put 'KG09bStNYXRoLmltdWwoeXQsa3QpfDApK01hdGguaW11bChNdCxadCl8MCxBPUErTWF0aC5pbXVsKE10LGt0KXwwLEU9RStNYXRoLmltdWwobnQsb3QpfDAsbT0obT1tK01hdGguaW11bChudCx6dCl8MCkrTWF0aC5pbXVsKEplLG90KXwwLEE9QStNYXRoLmltdWwoSmUsenQpfDAsRT1FK01h'@; put 'dGguaW11bChEZSxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKERlLEF0KXwwKStNYXRoLmltdWwoa2UsV2UpfDAsQT1BK01hdGguaW11bChrZSxBdCl8MCxFPUUrTWF0aC5pbXVsKFJlLGh0KXwwLG09KG09bStNYXRoLmltdWwoUmUsRXQpfDApK01hdGguaW11bChJZSxodCl8MCxBPUErTWF0aC5p'@; put 'bXVsKEllLEV0KXwwLEU9RStNYXRoLmltdWwoamUsYW4pfDAsbT0obT1tK01hdGguaW11bChqZSxqdCl8MCkrTWF0aC5pbXVsKEFlLGFuKXwwLEE9QStNYXRoLmltdWwoQWUsanQpfDAsRT1FK01hdGguaW11bCh4ZSxjbil8MCxtPShtPW0rTWF0aC5pbXVsKHhlLGZuKXwwKStNYXRoLmltdWwo'@; put 'dmUsY24pfDAsQT1BK01hdGguaW11bCh2ZSxmbil8MDt2YXIgUHI9KFUrKEU9RStNYXRoLmltdWwoWmUsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChaZSx0bil8MCkrTWF0aC5pbXVsKFFlLFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKFFlLHRuKXwwKSsobT4+'@; put 'PjEzKXwwKSsoUHI+Pj4yNil8MCxQciY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsZG4pLG09KG09TWF0aC5pbXVsKE5lLGZ0KSkrTWF0aC5pbXVsKHV0LGRuKXwwLEE9TWF0aC5pbXVsKHV0LGZ0KSxFPUUrTWF0aC5pbXVsKHJ0LFp0KXwwLG09KG09bStNYXRoLmltdWwocnQsa3QpfDApK01h'@; put 'dGguaW11bChLZSxadCl8MCxBPUErTWF0aC5pbXVsKEtlLGt0KXwwLEU9RStNYXRoLmltdWwoeXQsb3QpfDAsbT0obT1tK01hdGguaW11bCh5dCx6dCl8MCkrTWF0aC5pbXVsKE10LG90KXwwLEE9QStNYXRoLmltdWwoTXQsenQpfDAsRT1FK01hdGguaW11bChudCxXZSl8MCxtPShtPW0rTWF0'@; put 'aC5pbXVsKG50LEF0KXwwKStNYXRoLmltdWwoSmUsV2UpfDAsQT1BK01hdGguaW11bChKZSxBdCl8MCxFPUUrTWF0aC5pbXVsKERlLGh0KXwwLG09KG09bStNYXRoLmltdWwoRGUsRXQpfDApK01hdGguaW11bChrZSxodCl8MCxBPUErTWF0aC5pbXVsKGtlLEV0KXwwLEU9RStNYXRoLmltdWwo'@; put 'UmUsYW4pfDAsbT0obT1tK01hdGguaW11bChSZSxqdCl8MCkrTWF0aC5pbXVsKEllLGFuKXwwLEE9QStNYXRoLmltdWwoSWUsanQpfDAsRT1FK01hdGguaW11bChqZSxjbil8MCxtPShtPW0rTWF0aC5pbXVsKGplLGZuKXwwKStNYXRoLmltdWwoQWUsY24pfDAsQT1BK01hdGguaW11bChBZSxm'@; put 'bil8MDt2YXIgWWk9KFUrKEU9RStNYXRoLmltdWwoeGUsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bCh4ZSx0bil8MCkrTWF0aC5pbXVsKHZlLFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKHZlLHRuKXwwKSsobT4+PjEzKXwwKSsoWWk+Pj4yNil8MCxZaSY9Njcx'@; put 'MDg4NjMsRT1NYXRoLmltdWwoTmUsWnQpLG09KG09TWF0aC5pbXVsKE5lLGt0KSkrTWF0aC5pbXVsKHV0LFp0KXwwLEE9TWF0aC5pbXVsKHV0LGt0KSxFPUUrTWF0aC5pbXVsKHJ0LG90KXwwLG09KG09bStNYXRoLmltdWwocnQsenQpfDApK01hdGguaW11bChLZSxvdCl8MCxBPUErTWF0aC5p'@; put 'bXVsKEtlLHp0KXwwLEU9RStNYXRoLmltdWwoeXQsV2UpfDAsbT0obT1tK01hdGguaW11bCh5dCxBdCl8MCkrTWF0aC5pbXVsKE10LFdlKXwwLEE9QStNYXRoLmltdWwoTXQsQXQpfDAsRT1FK01hdGguaW11bChudCxodCl8MCxtPShtPW0rTWF0aC5pbXVsKG50LEV0KXwwKStNYXRoLmltdWwo'@; put 'SmUsaHQpfDAsQT1BK01hdGguaW11bChKZSxFdCl8MCxFPUUrTWF0aC5pbXVsKERlLGFuKXwwLG09KG09bStNYXRoLmltdWwoRGUsanQpfDApK01hdGguaW11bChrZSxhbil8MCxBPUErTWF0aC5pbXVsKGtlLGp0KXwwLEU9RStNYXRoLmltdWwoUmUsY24pfDAsbT0obT1tK01hdGguaW11bChS'@; put 'ZSxmbil8MCkrTWF0aC5pbXVsKEllLGNuKXwwLEE9QStNYXRoLmltdWwoSWUsZm4pfDA7dmFyIGZhPShVKyhFPUUrTWF0aC5pbXVsKGplLFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwoamUsdG4pfDApK01hdGguaW11bChBZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGgu'@; put 'aW11bChBZSx0bil8MCkrKG0+Pj4xMyl8MCkrKGZhPj4+MjYpfDAsZmEmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLG90KSxtPShtPU1hdGguaW11bChOZSx6dCkpK01hdGguaW11bCh1dCxvdCl8MCxBPU1hdGguaW11bCh1dCx6dCksRT1FK01hdGguaW11bChydCxXZSl8MCxtPShtPW0rTWF0'@; put 'aC5pbXVsKHJ0LEF0KXwwKStNYXRoLmltdWwoS2UsV2UpfDAsQT1BK01hdGguaW11bChLZSxBdCl8MCxFPUUrTWF0aC5pbXVsKHl0LGh0KXwwLG09KG09bStNYXRoLmltdWwoeXQsRXQpfDApK01hdGguaW11bChNdCxodCl8MCxBPUErTWF0aC5pbXVsKE10LEV0KXwwLEU9RStNYXRoLmltdWwo'@; put 'bnQsYW4pfDAsbT0obT1tK01hdGguaW11bChudCxqdCl8MCkrTWF0aC5pbXVsKEplLGFuKXwwLEE9QStNYXRoLmltdWwoSmUsanQpfDAsRT1FK01hdGguaW11bChEZSxjbil8MCxtPShtPW0rTWF0aC5pbXVsKERlLGZuKXwwKStNYXRoLmltdWwoa2UsY24pfDAsQT1BK01hdGguaW11bChrZSxm'@; put 'bil8MDt2YXIgbnI9KFUrKEU9RStNYXRoLmltdWwoUmUsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChSZSx0bil8MCkrTWF0aC5pbXVsKEllLFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKEllLHRuKXwwKSsobT4+PjEzKXwwKSsobnI+Pj4yNil8MCxuciY9Njcx'@; put 'MDg4NjMsRT1NYXRoLmltdWwoTmUsV2UpLG09KG09TWF0aC5pbXVsKE5lLEF0KSkrTWF0aC5pbXVsKHV0LFdlKXwwLEE9TWF0aC5pbXVsKHV0LEF0KSxFPUUrTWF0aC5pbXVsKHJ0LGh0KXwwLG09KG09bStNYXRoLmltdWwocnQsRXQpfDApK01hdGguaW11bChLZSxodCl8MCxBPUErTWF0aC5p'@; put 'bXVsKEtlLEV0KXwwLEU9RStNYXRoLmltdWwoeXQsYW4pfDAsbT0obT1tK01hdGguaW11bCh5dCxqdCl8MCkrTWF0aC5pbXVsKE10LGFuKXwwLEE9QStNYXRoLmltdWwoTXQsanQpfDAsRT1FK01hdGguaW11bChudCxjbil8MCxtPShtPW0rTWF0aC5pbXVsKG50LGZuKXwwKStNYXRoLmltdWwo'@; put 'SmUsY24pfDAsQT1BK01hdGguaW11bChKZSxmbil8MDt2YXIgb2E9KFUrKEU9RStNYXRoLmltdWwoRGUsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChEZSx0bil8MCkrTWF0aC5pbXVsKGtlLFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKGtlLHRuKXwwKSsobT4+'@; put 'PjEzKXwwKSsob2E+Pj4yNil8MCxvYSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsaHQpLG09KG09TWF0aC5pbXVsKE5lLEV0KSkrTWF0aC5pbXVsKHV0LGh0KXwwLEE9TWF0aC5pbXVsKHV0LEV0KSxFPUUrTWF0aC5pbXVsKHJ0LGFuKXwwLG09KG09bStNYXRoLmltdWwocnQsanQpfDApK01h'@; put 'dGguaW11bChLZSxhbil8MCxBPUErTWF0aC5pbXVsKEtlLGp0KXwwLEU9RStNYXRoLmltdWwoeXQsY24pfDAsbT0obT1tK01hdGguaW11bCh5dCxmbil8MCkrTWF0aC5pbXVsKE10LGNuKXwwLEE9QStNYXRoLmltdWwoTXQsZm4pfDA7dmFyIF9hPShVKyhFPUUrTWF0aC5pbXVsKG50LFF0KXww'@; put 'KXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobnQsdG4pfDApK01hdGguaW11bChKZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChKZSx0bil8MCkrKG0+Pj4xMyl8MCkrKF9hPj4+MjYpfDAsX2EmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLGFuKSxtPShtPU1hdGguaW11'@; put 'bChOZSxqdCkpK01hdGguaW11bCh1dCxhbil8MCxBPU1hdGguaW11bCh1dCxqdCksRT1FK01hdGguaW11bChydCxjbil8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LGZuKXwwKStNYXRoLmltdWwoS2UsY24pfDAsQT1BK01hdGguaW11bChLZSxmbil8MDt2YXIgT2E9KFUrKEU9RStNYXRoLmltdWwo'@; put 'eXQsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bCh5dCx0bil8MCkrTWF0aC5pbXVsKE10LFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKE10LHRuKXwwKSsobT4+PjEzKXwwKSsoT2E+Pj4yNil8MCxPYSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsY24pLG09KG09'@; put 'TWF0aC5pbXVsKE5lLGZuKSkrTWF0aC5pbXVsKHV0LGNuKXwwLEE9TWF0aC5pbXVsKHV0LGZuKTt2YXIgTmE9KFUrKEU9RStNYXRoLmltdWwocnQsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChydCx0bil8MCkrTWF0aC5pbXVsKEtlLFF0KXwwKSk8PDEzKXwwO1U9KChBPUEr'@; put 'TWF0aC5pbXVsKEtlLHRuKXwwKSsobT4+PjEzKXwwKSsoTmE+Pj4yNil8MCxOYSY9NjcxMDg4NjM7dmFyIGVpPShVKyhFPU1hdGguaW11bChOZSxRdCkpfDApKygoODE5MSYobT0obT1NYXRoLmltdWwoTmUsdG4pKStNYXRoLmltdWwodXQsUXQpfDApKTw8MTMpfDA7cmV0dXJuIFU9KChBPU1h'@; put 'dGguaW11bCh1dCx0bikpKyhtPj4+MTMpfDApKyhlaT4+PjI2KXwwLGVpJj02NzEwODg2MyxWWzBdPWNhLFZbMV09eGksVlsyXT15cixWWzNdPUduLFZbNF09S2ksVls1XT1KcixWWzZdPVFyLFZbN109TmksVls4XT1IaSxWWzldPUlhLFZbMTBdPVByLFZbMTFdPVlpLFZbMTJdPWZhLFZbMTNd'@; put 'PW5yLFZbMTRdPW9hLFZbMTVdPV9hLFZbMTZdPU9hLFZbMTddPU5hLFZbMThdPWVpLDAhPT1VJiYoVlsxOV09VSx4Lmxlbmd0aCsrKSx4fTtmdW5jdGlvbiBRKHosZyx5KXtyZXR1cm4obmV3IHEpLm11bHAoeixnLHkpfWZ1bmN0aW9uIHEoeixnKXt0aGlzLng9eix0aGlzLnk9Z31NYXRoLmlt'@; put 'dWx8fChaPVcpLHcucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKGcseSl7dmFyIHgsQz10aGlzLmxlbmd0aCtnLmxlbmd0aDtyZXR1cm4geD0xMD09PXRoaXMubGVuZ3RoJiYxMD09PWcubGVuZ3RoP1oodGhpcyxnLHkpOkM8NjM/Vyh0aGlzLGcseSk6QzwxMDI0P2Z1bmN0aW9uIFgoeixnLHkp'@; put 'e3kubmVnYXRpdmU9Zy5uZWdhdGl2ZV56Lm5lZ2F0aXZlLHkubGVuZ3RoPXoubGVuZ3RoK2cubGVuZ3RoO2Zvcih2YXIgeD0wLEM9MCxUPTA7VDx5Lmxlbmd0aC0xO1QrKyl7dmFyIFY9QztDPTA7Zm9yKHZhciBVPTY3MTA4ODYzJngsRT1NYXRoLm1pbihULGcubGVuZ3RoLTEpLG09TWF0aC5t'@; put 'YXgoMCxULXoubGVuZ3RoKzEpO208PUU7bSsrKXt2YXIgbGU9KDB8ei53b3Jkc1tULW1dKSooMHxnLndvcmRzW21dKSx3ZT02NzEwODg2MyZsZTtVPTY3MTA4ODYzJih3ZT13ZStVfDApLEMrPShWPShWPVYrKGxlLzY3MTA4ODY0fDApfDApKyh3ZT4+PjI2KXwwKT4+PjI2LFYmPTY3MTA4ODYz'@; put 'fXkud29yZHNbVF09VSx4PVYsVj1DfXJldHVybiAwIT09eD95LndvcmRzW1RdPXg6eS5sZW5ndGgtLSx5LnN0cmlwKCl9KHRoaXMsZyx5KTpRKHRoaXMsZyx5KSx4fSxxLnByb3RvdHlwZS5tYWtlUkJUPWZ1bmN0aW9uKGcpe2Zvcih2YXIgeT1uZXcgQXJyYXkoZykseD13LnByb3RvdHlwZS5f'@; put 'Y291bnRCaXRzKGcpLTEsQz0wO0M8ZztDKyspeVtDXT10aGlzLnJldkJpbihDLHgsZyk7cmV0dXJuIHl9LHEucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbihnLHkseCl7aWYoMD09PWd8fGc9PT14LTEpcmV0dXJuIGc7Zm9yKHZhciBDPTAsVD0wO1Q8eTtUKyspQ3w9KDEmZyk8PHktVC0xLGc+'@; put 'Pj0xO3JldHVybiBDfSxxLnByb3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKGcseSx4LEMsVCxWKXtmb3IodmFyIFU9MDtVPFY7VSsrKUNbVV09eVtnW1VdXSxUW1VdPXhbZ1tVXV19LHEucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbihnLHkseCxDLFQsVil7dGhpcy5wZXJtdXRlKFYsZyx5'@; put 'LHgsQyxUKTtmb3IodmFyIFU9MTtVPFQ7VTw8PTEpZm9yKHZhciBFPVU8PDEsbT1NYXRoLmNvcygyKk1hdGguUEkvRSksQT1NYXRoLnNpbigyKk1hdGguUEkvRSksYWU9MDthZTxUO2FlKz1FKWZvcih2YXIgbmU9bSxsZT1BLHdlPTA7d2U8VTt3ZSsrKXt2YXIgWmU9eFthZSt3ZV0sUWU9Q1th'@; put 'ZSt3ZV0sYXQ9eFthZSt3ZStVXSx4ZT1DW2FlK3dlK1VdLHZlPW5lKmF0LWxlKnhlO3hlPW5lKnhlK2xlKmF0LHhbYWUrd2VdPVplKyhhdD12ZSksQ1thZSt3ZV09UWUreGUseFthZSt3ZStVXT1aZS1hdCxDW2FlK3dlK1VdPVFlLXhlLHdlIT09RSYmKHZlPW0qbmUtQSpsZSxsZT1tKmxlK0Eq'@; put 'bmUsbmU9dmUpfX0scS5wcm90b3R5cGUuZ3Vlc3NMZW4xM2I9ZnVuY3Rpb24oZyx5KXt2YXIgeD0xfE1hdGgubWF4KHksZyksQz0xJngsVD0wO2Zvcih4PXgvMnwwO3g7eD4+Pj0xKVQrKztyZXR1cm4gMTw8VCsxK0N9LHEucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbihnLHkseCl7aWYo'@; put 'ISh4PD0xKSlmb3IodmFyIEM9MDtDPHgvMjtDKyspe3ZhciBUPWdbQ107Z1tDXT1nW3gtQy0xXSxnW3gtQy0xXT1ULFQ9eVtDXSx5W0NdPS15W3gtQy0xXSx5W3gtQy0xXT0tVH19LHEucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbihnLHkpe2Zvcih2YXIgeD0wLEM9MDtDPHkvMjtD'@; put 'Kyspe3ZhciBUPTgxOTIqTWF0aC5yb3VuZChnWzIqQysxXS95KStNYXRoLnJvdW5kKGdbMipDXS95KSt4O2dbQ109NjcxMDg4NjMmVCx4PVQ8NjcxMDg4NjQ/MDpULzY3MTA4ODY0fDB9cmV0dXJuIGd9LHEucHJvdG90eXBlLmNvbnZlcnQxM2I9ZnVuY3Rpb24oZyx5LHgsQyl7Zm9yKHZhciBU'@; put 'PTAsVj0wO1Y8eTtWKyspeFsyKlZdPTgxOTEmKFQrPTB8Z1tWXSkseFsyKlYrMV09ODE5MSYoVD4+Pj0xMyksVD4+Pj0xMztmb3IoVj0yKnk7VjxDOysrVil4W1ZdPTA7cCgwPT09VCkscCghKC04MTkyJlQpKX0scS5wcm90b3R5cGUuc3R1Yj1mdW5jdGlvbihnKXtmb3IodmFyIHk9bmV3IEFy'@; put 'cmF5KGcpLHg9MDt4PGc7eCsrKXlbeF09MDtyZXR1cm4geX0scS5wcm90b3R5cGUubXVscD1mdW5jdGlvbihnLHkseCl7dmFyIEM9Mip0aGlzLmd1ZXNzTGVuMTNiKGcubGVuZ3RoLHkubGVuZ3RoKSxUPXRoaXMubWFrZVJCVChDKSxWPXRoaXMuc3R1YihDKSxVPW5ldyBBcnJheShDKSxFPW5l'@; put 'dyBBcnJheShDKSxtPW5ldyBBcnJheShDKSxBPW5ldyBBcnJheShDKSxhZT1uZXcgQXJyYXkoQyksbmU9bmV3IEFycmF5KEMpLGxlPXgud29yZHM7bGUubGVuZ3RoPUMsdGhpcy5jb252ZXJ0MTNiKGcud29yZHMsZy5sZW5ndGgsVSxDKSx0aGlzLmNvbnZlcnQxM2IoeS53b3Jkcyx5Lmxlbmd0'@; put 'aCxBLEMpLHRoaXMudHJhbnNmb3JtKFUsVixFLG0sQyxUKSx0aGlzLnRyYW5zZm9ybShBLFYsYWUsbmUsQyxUKTtmb3IodmFyIHdlPTA7d2U8Qzt3ZSsrKXt2YXIgWmU9RVt3ZV0qYWVbd2VdLW1bd2VdKm5lW3dlXTttW3dlXT1FW3dlXSpuZVt3ZV0rbVt3ZV0qYWVbd2VdLEVbd2VdPVplfXJl'@; put 'dHVybiB0aGlzLmNvbmp1Z2F0ZShFLG0sQyksdGhpcy50cmFuc2Zvcm0oRSxtLGxlLFYsQyxUKSx0aGlzLmNvbmp1Z2F0ZShsZSxWLEMpLHRoaXMubm9ybWFsaXplMTNiKGxlLEMpLHgubmVnYXRpdmU9Zy5uZWdhdGl2ZV55Lm5lZ2F0aXZlLHgubGVuZ3RoPWcubGVuZ3RoK3kubGVuZ3RoLHgu'@; put 'c3RyaXAoKX0sdy5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGcpe3ZhciB5PW5ldyB3KG51bGwpO3JldHVybiB5LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtnLmxlbmd0aCksdGhpcy5tdWxUbyhnLHkpfSx3LnByb3RvdHlwZS5tdWxmPWZ1bmN0aW9uKGcpe3ZhciB5PW5ldyB3KG51bGwp'@; put 'O3JldHVybiB5LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtnLmxlbmd0aCksUSh0aGlzLGcseSl9LHcucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5tdWxUbyhnLHRoaXMpfSx3LnByb3RvdHlwZS5pbXVsbj1mdW5jdGlvbihnKXtwKCJudW1iZXIi'@; put 'PT10eXBlb2YgZykscChnPDY3MTA4ODY0KTtmb3IodmFyIHk9MCx4PTA7eDx0aGlzLmxlbmd0aDt4Kyspe3ZhciBDPSgwfHRoaXMud29yZHNbeF0pKmcsVD0oNjcxMDg4NjMmQykrKDY3MTA4ODYzJnkpO3k+Pj0yNix5Kz1DLzY3MTA4ODY0fDAseSs9VD4+PjI2LHRoaXMud29yZHNbeF09Njcx'@; put 'MDg4NjMmVH1yZXR1cm4gMCE9PXkmJih0aGlzLndvcmRzW3hdPXksdGhpcy5sZW5ndGgrKyksdGhpc30sdy5wcm90b3R5cGUubXVsbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltdWxuKGcpfSx3LnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdWwodGhp'@; put 'cyl9LHcucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbXVsKHRoaXMuY2xvbmUoKSl9LHcucHJvdG90eXBlLnBvdz1mdW5jdGlvbihnKXt2YXIgeT1mdW5jdGlvbiBCKHope2Zvcih2YXIgZz1uZXcgQXJyYXkoei5iaXRMZW5ndGgoKSkseT0wO3k8Zy5sZW5ndGg7eSsr'@; put 'KXt2YXIgQz15JTI2O2dbeV09KHoud29yZHNbeS8yNnwwXSYxPDxDKT4+PkN9cmV0dXJuIGd9KGcpO2lmKDA9PT15Lmxlbmd0aClyZXR1cm4gbmV3IHcoMSk7Zm9yKHZhciB4PXRoaXMsQz0wO0M8eS5sZW5ndGgmJjA9PT15W0NdO0MrKyx4PXguc3FyKCkpO2lmKCsrQzx5Lmxlbmd0aClmb3Io'@; put 'dmFyIFQ9eC5zcXIoKTtDPHkubGVuZ3RoO0MrKyxUPVQuc3FyKCkpMCE9PXlbQ10mJih4PXgubXVsKFQpKTtyZXR1cm4geH0sdy5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKGcpe3AoIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgVCx5PWclMjYseD0oZy15KS8yNixDPTY3MTA4ODYz'@; put 'Pj4+MjYteTw8MjYteTtpZigwIT09eSl7dmFyIFY9MDtmb3IoVD0wO1Q8dGhpcy5sZW5ndGg7VCsrKXt2YXIgVT10aGlzLndvcmRzW1RdJkM7dGhpcy53b3Jkc1tUXT0oMHx0aGlzLndvcmRzW1RdKS1VPDx5fFYsVj1VPj4+MjYteX1WJiYodGhpcy53b3Jkc1tUXT1WLHRoaXMubGVuZ3RoKysp'@; put 'fWlmKDAhPT14KXtmb3IoVD10aGlzLmxlbmd0aC0xO1Q+PTA7VC0tKXRoaXMud29yZHNbVCt4XT10aGlzLndvcmRzW1RdO2ZvcihUPTA7VDx4O1QrKyl0aGlzLndvcmRzW1RdPTA7dGhpcy5sZW5ndGgrPXh9cmV0dXJuIHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuaXNobG49ZnVuY3Rpb24o'@; put 'Zyl7cmV0dXJuIHAoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaGxuKGcpfSx3LnByb3RvdHlwZS5pdXNocm49ZnVuY3Rpb24oZyx5LHgpe3ZhciBDO3AoIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKSxDPXk/KHkteSUyNikvMjY6MDt2YXIgVD1nJTI2LFY9TWF0aC5taW4oKGctVCkvMjYs'@; put 'dGhpcy5sZW5ndGgpLFU9NjcxMDg4NjNeNjcxMDg4NjM+Pj5UPDxULEU9eDtpZihDLT1WLEM9TWF0aC5tYXgoMCxDKSxFKXtmb3IodmFyIG09MDttPFY7bSsrKUUud29yZHNbbV09dGhpcy53b3Jkc1ttXTtFLmxlbmd0aD1WfWlmKDAhPT1WKWlmKHRoaXMubGVuZ3RoPlYpZm9yKHRoaXMubGVu'@; put 'Z3RoLT1WLG09MDttPHRoaXMubGVuZ3RoO20rKyl0aGlzLndvcmRzW21dPXRoaXMud29yZHNbbStWXTtlbHNlIHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xO3ZhciBBPTA7Zm9yKG09dGhpcy5sZW5ndGgtMTttPj0wJiYoMCE9PUF8fG0+PUMpO20tLSl7dmFyIGFlPTB8dGhpcy53b3Jk'@; put 'c1ttXTt0aGlzLndvcmRzW21dPUE8PDI2LVR8YWU+Pj5ULEE9YWUmVX1yZXR1cm4gRSYmMCE9PUEmJihFLndvcmRzW0UubGVuZ3RoKytdPUEpLDA9PT10aGlzLmxlbmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLmlzaHJuPWZ1'@; put 'bmN0aW9uKGcseSx4KXtyZXR1cm4gcCgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4oZyx5LHgpfSx3LnByb3RvdHlwZS5zaGxuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaXNobG4oZyl9LHcucHJvdG90eXBlLnVzaGxuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNs'@; put 'b25lKCkuaXVzaGxuKGcpfSx3LnByb3RvdHlwZS5zaHJuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaXNocm4oZyl9LHcucHJvdG90eXBlLnVzaHJuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaHJuKGcpfSx3LnByb3RvdHlwZS50ZXN0bj1mdW5jdGlvbihn'@; put 'KXtwKCJudW1iZXIiPT10eXBlb2YgZyYmZz49MCk7dmFyIHk9ZyUyNix4PShnLXkpLzI2O3JldHVybiEodGhpcy5sZW5ndGg8PXh8fCEodGhpcy53b3Jkc1t4XSYxPDx5KSl9LHcucHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbihnKXtwKCJudW1iZXIiPT10eXBlb2YgZyYmZz49MCk7dmFyIHk9'@; put 'ZyUyNix4PShnLXkpLzI2O3JldHVybiBwKDA9PT10aGlzLm5lZ2F0aXZlLCJpbWFza24gd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlIG51bWJlcnMiKSx0aGlzLmxlbmd0aDw9eD90aGlzOigwIT09eSYmeCsrLHRoaXMubGVuZ3RoPU1hdGgubWluKHgsdGhpcy5sZW5ndGgpLDAhPT15JiYodGhp'@; put 'cy53b3Jkc1t0aGlzLmxlbmd0aC0xXSY9NjcxMDg4NjNeNjcxMDg4NjM+Pj55PDx5KSx0aGlzLnN0cmlwKCkpfSx3LnByb3RvdHlwZS5tYXNrbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbihnKX0sdy5wcm90b3R5cGUuaWFkZG49ZnVuY3Rpb24oZyl7cmV0dXJuIHAo'@; put 'Im51bWJlciI9PXR5cGVvZiBnKSxwKGc8NjcxMDg4NjQpLGc8MD90aGlzLmlzdWJuKC1nKTowIT09dGhpcy5uZWdhdGl2ZT8xPT09dGhpcy5sZW5ndGgmJigwfHRoaXMud29yZHNbMF0pPGc/KHRoaXMud29yZHNbMF09Zy0oMHx0aGlzLndvcmRzWzBdKSx0aGlzLm5lZ2F0aXZlPTAsdGhpcyk6'@; put 'KHRoaXMubmVnYXRpdmU9MCx0aGlzLmlzdWJuKGcpLHRoaXMubmVnYXRpdmU9MSx0aGlzKTp0aGlzLl9pYWRkbihnKX0sdy5wcm90b3R5cGUuX2lhZGRuPWZ1bmN0aW9uKGcpe3RoaXMud29yZHNbMF0rPWc7Zm9yKHZhciB5PTA7eTx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1t5XT49NjcxMDg4'@; put 'NjQ7eSsrKXRoaXMud29yZHNbeV0tPTY3MTA4ODY0LHk9PT10aGlzLmxlbmd0aC0xP3RoaXMud29yZHNbeSsxXT0xOnRoaXMud29yZHNbeSsxXSsrO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCx5KzEpLHRoaXN9LHcucHJvdG90eXBlLmlzdWJuPWZ1bmN0aW9uKGcp'@; put 'e2lmKHAoIm51bWJlciI9PXR5cGVvZiBnKSxwKGc8NjcxMDg4NjQpLGc8MClyZXR1cm4gdGhpcy5pYWRkbigtZyk7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKGcpLHRoaXMubmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPWcs'@; put 'MT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFyIHk9MDt5PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3ldPDA7eSsrKXRoaXMud29yZHNbeV0rPTY3MTA4ODY0LHRoaXMud29yZHNb'@; put 'eSsxXS09MTtyZXR1cm4gdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaWFkZG4oZyl9LHcucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3VibihnKX0sdy5wcm90b3R5cGUuaWFicz1m'@; put 'dW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30sdy5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCl9LHcucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbihnLHkseCl7dmFyIFQ7dGhpcy5fZXhwYW5kKGcubGVuZ3RoK3gp'@; put 'O3ZhciBWLFU9MDtmb3IoVD0wO1Q8Zy5sZW5ndGg7VCsrKXtWPSgwfHRoaXMud29yZHNbVCt4XSkrVTt2YXIgRT0oMHxnLndvcmRzW1RdKSp5O1U9KChWLT02NzEwODg2MyZFKT4+MjYpLShFLzY3MTA4ODY0fDApLHRoaXMud29yZHNbVCt4XT02NzEwODg2MyZWfWZvcig7VDx0aGlzLmxlbmd0'@; put 'aC14O1QrKylVPShWPSgwfHRoaXMud29yZHNbVCt4XSkrVSk+PjI2LHRoaXMud29yZHNbVCt4XT02NzEwODg2MyZWO2lmKDA9PT1VKXJldHVybiB0aGlzLnN0cmlwKCk7Zm9yKHAoLTE9PT1VKSxVPTAsVD0wO1Q8dGhpcy5sZW5ndGg7VCsrKVU9KFY9LSgwfHRoaXMud29yZHNbVF0pK1UpPj4y'@; put 'Nix0aGlzLndvcmRzW1RdPTY3MTA4ODYzJlY7cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKGcseSl7dmFyIHgsQz10aGlzLmNsb25lKCksVD1nLFY9MHxULndvcmRzW1QubGVuZ3RoLTFdOzAhPSh4PTI2LXRoaXMuX2Nv'@; put 'dW50Qml0cyhWKSkmJihUPVQudXNobG4oeCksQy5pdXNobG4oeCksVj0wfFQud29yZHNbVC5sZW5ndGgtMV0pO3ZhciBtLEU9Qy5sZW5ndGgtVC5sZW5ndGg7aWYoIm1vZCIhPT15KXsobT1uZXcgdyhudWxsKSkubGVuZ3RoPUUrMSxtLndvcmRzPW5ldyBBcnJheShtLmxlbmd0aCk7Zm9yKHZh'@; put 'ciBBPTA7QTxtLmxlbmd0aDtBKyspbS53b3Jkc1tBXT0wfXZhciBhZT1DLmNsb25lKCkuX2lzaGxuc3VibXVsKFQsMSxFKTswPT09YWUubmVnYXRpdmUmJihDPWFlLG0mJihtLndvcmRzW0VdPTEpKTtmb3IodmFyIG5lPUUtMTtuZT49MDtuZS0tKXt2YXIgbGU9NjcxMDg4NjQqKDB8Qy53b3Jk'@; put 'c1tULmxlbmd0aCtuZV0pKygwfEMud29yZHNbVC5sZW5ndGgrbmUtMV0pO2ZvcihsZT1NYXRoLm1pbihsZS9WfDAsNjcxMDg4NjMpLEMuX2lzaGxuc3VibXVsKFQsbGUsbmUpOzAhPT1DLm5lZ2F0aXZlOylsZS0tLEMubmVnYXRpdmU9MCxDLl9pc2hsbnN1Ym11bChULDEsbmUpLEMuaXNaZXJv'@; put 'KCl8fChDLm5lZ2F0aXZlXj0xKTttJiYobS53b3Jkc1tuZV09bGUpfXJldHVybiBtJiZtLnN0cmlwKCksQy5zdHJpcCgpLCJkaXYiIT09eSYmMCE9PXgmJkMuaXVzaHJuKHgpLHtkaXY6bXx8bnVsbCxtb2Q6Q319LHcucHJvdG90eXBlLmRpdm1vZD1mdW5jdGlvbihnLHkseCl7cmV0dXJuIHAo'@; put 'IWcuaXNaZXJvKCkpLHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgdygwKSxtb2Q6bmV3IHcoMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Zy5uZWdhdGl2ZT8oVj10aGlzLm5lZygpLmRpdm1vZChnLHkpLCJtb2QiIT09eSYmKEM9Vi5kaXYubmVnKCkpLCJkaXYiIT09eSYmKFQ9Vi5tb2QubmVn'@; put 'KCkseCYmMCE9PVQubmVnYXRpdmUmJlQuaWFkZChnKSkse2RpdjpDLG1vZDpUfSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT1nLm5lZ2F0aXZlPyhWPXRoaXMuZGl2bW9kKGcubmVnKCkseSksIm1vZCIhPT15JiYoQz1WLmRpdi5uZWcoKSkse2RpdjpDLG1vZDpWLm1vZH0pOnRoaXMubmVnYXRp'@; put 'dmUmZy5uZWdhdGl2ZT8oVj10aGlzLm5lZygpLmRpdm1vZChnLm5lZygpLHkpLCJkaXYiIT09eSYmKFQ9Vi5tb2QubmVnKCkseCYmMCE9PVQubmVnYXRpdmUmJlQuaXN1YihnKSkse2RpdjpWLmRpdixtb2Q6VH0pOmcubGVuZ3RoPnRoaXMubGVuZ3RofHx0aGlzLmNtcChnKTwwP3tkaXY6bmV3'@; put 'IHcoMCksbW9kOnRoaXN9OjE9PT1nLmxlbmd0aD8iZGl2Ij09PXk/e2Rpdjp0aGlzLmRpdm4oZy53b3Jkc1swXSksbW9kOm51bGx9OiJtb2QiPT09eT97ZGl2Om51bGwsbW9kOm5ldyB3KHRoaXMubW9kbihnLndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKGcud29yZHNbMF0pLG1vZDpuZXcg'@; put 'dyh0aGlzLm1vZG4oZy53b3Jkc1swXSkpfTp0aGlzLl93b3JkRGl2KGcseSk7dmFyIEMsVCxWfSx3LnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuZGl2bW9kKGcsImRpdiIsITEpLmRpdn0sdy5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmRpdm1v'@; put 'ZChnLCJtb2QiLCExKS5tb2R9LHcucHJvdG90eXBlLnVtb2Q9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuZGl2bW9kKGcsIm1vZCIsITApLm1vZH0sdy5wcm90b3R5cGUuZGl2Um91bmQ9ZnVuY3Rpb24oZyl7dmFyIHk9dGhpcy5kaXZtb2QoZyk7aWYoeS5tb2QuaXNaZXJvKCkpcmV0dXJuIHku'@; put 'ZGl2O3ZhciB4PTAhPT15LmRpdi5uZWdhdGl2ZT95Lm1vZC5pc3ViKGcpOnkubW9kLEM9Zy51c2hybigxKSxUPWcuYW5kbG4oMSksVj14LmNtcChDKTtyZXR1cm4gVjwwfHwxPT09VCYmMD09PVY/eS5kaXY6MCE9PXkuZGl2Lm5lZ2F0aXZlP3kuZGl2LmlzdWJuKDEpOnkuZGl2LmlhZGRuKDEp'@; put 'fSx3LnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKGcpe3AoZzw9NjcxMDg4NjMpO2Zvcih2YXIgeT0oMTw8MjYpJWcseD0wLEM9dGhpcy5sZW5ndGgtMTtDPj0wO0MtLSl4PSh5KngrKDB8dGhpcy53b3Jkc1tDXSkpJWc7cmV0dXJuIHh9LHcucHJvdG90eXBlLmlkaXZuPWZ1bmN0aW9uKGcpe3Ao'@; put 'Zzw9NjcxMDg4NjMpO2Zvcih2YXIgeT0wLHg9dGhpcy5sZW5ndGgtMTt4Pj0wO3gtLSl7dmFyIEM9KDB8dGhpcy53b3Jkc1t4XSkrNjcxMDg4NjQqeTt0aGlzLndvcmRzW3hdPUMvZ3wwLHk9QyVnfXJldHVybiB0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLmRpdm49ZnVuY3Rpb24oZyl7cmV0'@; put 'dXJuIHRoaXMuY2xvbmUoKS5pZGl2bihnKX0sdy5wcm90b3R5cGUuZWdjZD1mdW5jdGlvbihnKXtwKDA9PT1nLm5lZ2F0aXZlKSxwKCFnLmlzWmVybygpKTt2YXIgeT10aGlzLHg9Zy5jbG9uZSgpO3k9MCE9PXkubmVnYXRpdmU/eS51bW9kKGcpOnkuY2xvbmUoKTtmb3IodmFyIEM9bmV3IHco'@; put 'MSksVD1uZXcgdygwKSxWPW5ldyB3KDApLFU9bmV3IHcoMSksRT0wO3kuaXNFdmVuKCkmJnguaXNFdmVuKCk7KXkuaXVzaHJuKDEpLHguaXVzaHJuKDEpLCsrRTtmb3IodmFyIG09eC5jbG9uZSgpLEE9eS5jbG9uZSgpOyF5LmlzWmVybygpOyl7Zm9yKHZhciBhZT0wLG5lPTE7ISh5LndvcmRz'@; put 'WzBdJm5lKSYmYWU8MjY7KythZSxuZTw8PTEpO2lmKGFlPjApZm9yKHkuaXVzaHJuKGFlKTthZS0tID4wOykoQy5pc09kZCgpfHxULmlzT2RkKCkpJiYoQy5pYWRkKG0pLFQuaXN1YihBKSksQy5pdXNocm4oMSksVC5pdXNocm4oMSk7Zm9yKHZhciBsZT0wLHdlPTE7ISh4LndvcmRzWzBdJndl'@; put 'KSYmbGU8MjY7KytsZSx3ZTw8PTEpO2lmKGxlPjApZm9yKHguaXVzaHJuKGxlKTtsZS0tID4wOykoVi5pc09kZCgpfHxVLmlzT2RkKCkpJiYoVi5pYWRkKG0pLFUuaXN1YihBKSksVi5pdXNocm4oMSksVS5pdXNocm4oMSk7eS5jbXAoeCk+PTA/KHkuaXN1Yih4KSxDLmlzdWIoViksVC5pc3Vi'@; put 'KFUpKTooeC5pc3ViKHkpLFYuaXN1YihDKSxVLmlzdWIoVCkpfXJldHVybnthOlYsYjpVLGdjZDp4Lml1c2hsbihFKX19LHcucHJvdG90eXBlLl9pbnZtcD1mdW5jdGlvbihnKXtwKDA9PT1nLm5lZ2F0aXZlKSxwKCFnLmlzWmVybygpKTt2YXIgYWUseT10aGlzLHg9Zy5jbG9uZSgpO3k9MCE9'@; put 'PXkubmVnYXRpdmU/eS51bW9kKGcpOnkuY2xvbmUoKTtmb3IodmFyIEM9bmV3IHcoMSksVD1uZXcgdygwKSxWPXguY2xvbmUoKTt5LmNtcG4oMSk+MCYmeC5jbXBuKDEpPjA7KXtmb3IodmFyIFU9MCxFPTE7ISh5LndvcmRzWzBdJkUpJiZVPDI2OysrVSxFPDw9MSk7aWYoVT4wKWZvcih5Lml1'@; put 'c2hybihVKTtVLS0gPjA7KUMuaXNPZGQoKSYmQy5pYWRkKFYpLEMuaXVzaHJuKDEpO2Zvcih2YXIgbT0wLEE9MTshKHgud29yZHNbMF0mQSkmJm08MjY7KyttLEE8PD0xKTtpZihtPjApZm9yKHguaXVzaHJuKG0pO20tLSA+MDspVC5pc09kZCgpJiZULmlhZGQoViksVC5pdXNocm4oMSk7eS5j'@; put 'bXAoeCk+PTA/KHkuaXN1Yih4KSxDLmlzdWIoVCkpOih4LmlzdWIoeSksVC5pc3ViKEMpKX1yZXR1cm4oYWU9MD09PXkuY21wbigxKT9DOlQpLmNtcG4oMCk8MCYmYWUuaWFkZChnKSxhZX0sdy5wcm90b3R5cGUuZ2NkPWZ1bmN0aW9uKGcpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIGcuYWJz'@; put 'KCk7aWYoZy5pc1plcm8oKSlyZXR1cm4gdGhpcy5hYnMoKTt2YXIgeT10aGlzLmNsb25lKCkseD1nLmNsb25lKCk7eS5uZWdhdGl2ZT0wLHgubmVnYXRpdmU9MDtmb3IodmFyIEM9MDt5LmlzRXZlbigpJiZ4LmlzRXZlbigpO0MrKyl5Lml1c2hybigxKSx4Lml1c2hybigxKTtmb3IoOzspe2Zv'@; put 'cig7eS5pc0V2ZW4oKTspeS5pdXNocm4oMSk7Zm9yKDt4LmlzRXZlbigpOyl4Lml1c2hybigxKTt2YXIgVD15LmNtcCh4KTtpZihUPDApe3ZhciBWPXk7eT14LHg9Vn1lbHNlIGlmKDA9PT1UfHwwPT09eC5jbXBuKDEpKWJyZWFrO3kuaXN1Yih4KX1yZXR1cm4geC5pdXNobG4oQyl9LHcucHJv'@; put 'dG90eXBlLmludm09ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuZWdjZChnKS5hLnVtb2QoZyl9LHcucHJvdG90eXBlLmlzRXZlbj1mdW5jdGlvbigpe3JldHVybiEoMSZ0aGlzLndvcmRzWzBdKX0sdy5wcm90b3R5cGUuaXNPZGQ9ZnVuY3Rpb24oKXtyZXR1cm4hKDEmfnRoaXMud29yZHNbMF0p'@; put 'fSx3LnByb3RvdHlwZS5hbmRsbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy53b3Jkc1swXSZnfSx3LnByb3RvdHlwZS5iaW5jbj1mdW5jdGlvbihnKXtwKCJudW1iZXIiPT10eXBlb2YgZyk7dmFyIHk9ZyUyNix4PShnLXkpLzI2LEM9MTw8eTtpZih0aGlzLmxlbmd0aDw9eClyZXR1cm4gdGhp'@; put 'cy5fZXhwYW5kKHgrMSksdGhpcy53b3Jkc1t4XXw9Qyx0aGlzO2Zvcih2YXIgVD1DLFY9eDswIT09VCYmVjx0aGlzLmxlbmd0aDtWKyspe3ZhciBVPTB8dGhpcy53b3Jkc1tWXTtUPShVKz1UKT4+PjI2LHRoaXMud29yZHNbVl09VSY9NjcxMDg4NjN9cmV0dXJuIDAhPT1UJiYodGhpcy53b3Jk'@; put 'c1tWXT1ULHRoaXMubGVuZ3RoKyspLHRoaXN9LHcucHJvdG90eXBlLmlzWmVybz1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdfSx3LnByb3RvdHlwZS5jbXBuPWZ1bmN0aW9uKGcpe3ZhciB4LHk9ZzwwO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYh'@; put 'eSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmeSlyZXR1cm4gMTtpZih0aGlzLnN0cmlwKCksdGhpcy5sZW5ndGg+MSl4PTE7ZWxzZXt5JiYoZz0tZykscChnPD02NzEwODg2MywiTnVtYmVyIGlzIHRvbyBiaWciKTt2YXIgQz0wfHRoaXMud29yZHNbMF07eD1DPT09Zz8wOkM8Zz8t'@; put 'MToxfXJldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC14Onh9LHcucHJvdG90eXBlLmNtcD1mdW5jdGlvbihnKXtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PWcubmVnYXRpdmUpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT1nLm5lZ2F0aXZlKXJldHVybiAxO3ZhciB5PXRo'@; put 'aXMudWNtcChnKTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwteTp5fSx3LnByb3RvdHlwZS51Y21wPWZ1bmN0aW9uKGcpe2lmKHRoaXMubGVuZ3RoPmcubGVuZ3RoKXJldHVybiAxO2lmKHRoaXMubGVuZ3RoPGcubGVuZ3RoKXJldHVybi0xO2Zvcih2YXIgeT0wLHg9dGhpcy5sZW5ndGgt'@; put 'MTt4Pj0wO3gtLSl7dmFyIEM9MHx0aGlzLndvcmRzW3hdLFQ9MHxnLndvcmRzW3hdO2lmKEMhPT1UKXtDPFQ/eT0tMTpDPlQmJih5PTEpO2JyZWFrfX1yZXR1cm4geX0sdy5wcm90b3R5cGUuZ3RuPWZ1bmN0aW9uKGcpe3JldHVybiAxPT09dGhpcy5jbXBuKGcpfSx3LnByb3RvdHlwZS5ndD1m'@; put 'dW5jdGlvbihnKXtyZXR1cm4gMT09PXRoaXMuY21wKGcpfSx3LnByb3RvdHlwZS5ndGVuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNtcG4oZyk+PTB9LHcucHJvdG90eXBlLmd0ZT1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbXAoZyk+PTB9LHcucHJvdG90eXBlLmx0bj1mdW5jdGlvbihn'@; put 'KXtyZXR1cm4tMT09PXRoaXMuY21wbihnKX0sdy5wcm90b3R5cGUubHQ9ZnVuY3Rpb24oZyl7cmV0dXJuLTE9PT10aGlzLmNtcChnKX0sdy5wcm90b3R5cGUubHRlbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbXBuKGcpPD0wfSx3LnByb3RvdHlwZS5sdGU9ZnVuY3Rpb24oZyl7cmV0dXJu'@; put 'IHRoaXMuY21wKGcpPD0wfSx3LnByb3RvdHlwZS5lcW49ZnVuY3Rpb24oZyl7cmV0dXJuIDA9PT10aGlzLmNtcG4oZyl9LHcucHJvdG90eXBlLmVxPWZ1bmN0aW9uKGcpe3JldHVybiAwPT09dGhpcy5jbXAoZyl9LHcucmVkPWZ1bmN0aW9uKGcpe3JldHVybiBuZXcgU2UoZyl9LHcucHJvdG90'@; put 'eXBlLnRvUmVkPWZ1bmN0aW9uKGcpe3JldHVybiBwKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHAoMD09PXRoaXMubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksZy5jb252ZXJ0VG8odGhpcykuX2ZvcmNlUmVkKGcp'@; put 'fSx3LnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3aXRoIG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX0sdy5wcm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0aW9u'@; put 'KGcpe3JldHVybiB0aGlzLnJlZD1nLHRoaXN9LHcucHJvdG90eXBlLmZvcmNlUmVkPWZ1bmN0aW9uKGcpe3JldHVybiBwKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMuX2ZvcmNlUmVkKGcpfSx3LnByb3RvdHlwZS5yZWRBZGQ9ZnVuY3Rp'@; put 'b24oZyl7cmV0dXJuIHAodGhpcy5yZWQsInJlZEFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5hZGQodGhpcyxnKX0sdy5wcm90b3R5cGUucmVkSUFkZD1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51'@; put 'bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMsZyl9LHcucHJvdG90eXBlLnJlZFN1Yj1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnN1Yih0aGlzLGcpfSx3LnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0'@; put 'aW9uKGcpe3JldHVybiBwKHRoaXMucmVkLCJyZWRJU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlzdWIodGhpcyxnKX0sdy5wcm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKGcpe3JldHVybiBwKHRoaXMucmVkLCJyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJlZCBu'@; put 'dW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMsZyl9LHcucHJvdG90eXBlLnJlZE11bD1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsZyksdGhpcy5yZWQubXVsKHRoaXMsZyl9'@; put 'LHcucHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24oZyl7cmV0dXJuIHAodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLGcpLHRoaXMucmVkLmltdWwodGhpcyxnKX0sdy5wcm90b3R5cGUucmVkU3FyPWZ1bmN0aW9u'@; put 'KCl7cmV0dXJuIHAodGhpcy5yZWQsInJlZFNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXIodGhpcyl9LHcucHJvdG90eXBlLnJlZElTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkSVNxciB3b3Jr'@; put 'cyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pc3FyKHRoaXMpfSx3LnByb3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5yZWQsInJlZFNxcnQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5y'@; put 'ZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FydCh0aGlzKX0sdy5wcm90b3R5cGUucmVkSW52bT1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMucmVkLCJyZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmludm0o'@; put 'dGhpcyl9LHcucHJvdG90eXBlLnJlZE5lZz1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMucmVkLCJyZWROZWcgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQubmVnKHRoaXMpfSx3LnByb3RvdHlwZS5yZWRQb3c9ZnVuY3Rpb24o'@; put 'Zyl7cmV0dXJuIHAodGhpcy5yZWQmJiFnLnJlZCwicmVkUG93KG5vcm1hbE51bSkiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5wb3codGhpcyxnKX07dmFyIHRlPXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gaWUoeixnKXt0'@; put 'aGlzLm5hbWU9eix0aGlzLnA9bmV3IHcoZywxNiksdGhpcy5uPXRoaXMucC5iaXRMZW5ndGgoKSx0aGlzLms9bmV3IHcoMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApLHRoaXMudG1wPXRoaXMuX3RtcCgpfWZ1bmN0aW9uIHNlKCl7aWUuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYg'@; put 'ZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBnZSgpe2llLmNhbGwodGhpcywicDIyNCIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAxIil9'@; put 'ZnVuY3Rpb24gX2UoKXtpZS5jYWxsKHRoaXMsInAxOTIiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIpfWZ1bmN0aW9uIFRlKCl7aWUuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZm'@; put 'ZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBTZSh6KXtpZigic3RyaW5nIj09dHlwZW9mIHope3ZhciBnPXcuX3ByaW1lKHopO3RoaXMubT1nLnAsdGhpcy5wcmltZT1nfWVsc2UgcCh6Lmd0bigxKSwibW9kdWx1cyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxIiksdGhp'@; put 'cy5tPXosdGhpcy5wcmltZT1udWxsfWZ1bmN0aW9uIHplKHope1NlLmNhbGwodGhpcyx6KSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyB3KDEpLml1c2hsbih0aGlzLnNoaWZ0'@; put 'KSx0aGlzLnIyPXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIuX2ludm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3VibigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9dGhp'@; put 'cy5yLnN1Yih0aGlzLm1pbnYpfWllLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFyIGc9bmV3IHcobnVsbCk7cmV0dXJuIGcud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKSxnfSxpZS5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbihnKXt2YXIgeCx5PWc7ZG97dGhp'@; put 'cy5zcGxpdCh5LHRoaXMudG1wKSx4PSh5PSh5PXRoaXMuaW11bEsoeSkpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZSh4PnRoaXMubik7dmFyIEM9eDx0aGlzLm4/LTE6eS51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT1DPyh5LndvcmRzWzBdPTAseS5sZW5ndGg9MSk6Qz4wP3ku'@; put 'aXN1Yih0aGlzLnApOnZvaWQgMCE9PXkuc3RyaXA/eS5zdHJpcCgpOnkuX3N0cmlwKCkseX0saWUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKGcseSl7Zy5pdXNocm4odGhpcy5uLDAseSl9LGllLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihnKXtyZXR1cm4gZy5pbXVsKHRoaXMuayl9LE4o'@; put 'c2UsaWUpLHNlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihnLHkpe2Zvcih2YXIgeD00MTk0MzAzLEM9TWF0aC5taW4oZy5sZW5ndGgsOSksVD0wO1Q8QztUKyspeS53b3Jkc1tUXT1nLndvcmRzW1RdO2lmKHkubGVuZ3RoPUMsZy5sZW5ndGg8PTkpcmV0dXJuIGcud29yZHNbMF09MCx2b2lk'@; put 'KGcubGVuZ3RoPTEpO3ZhciBWPWcud29yZHNbOV07Zm9yKHkud29yZHNbeS5sZW5ndGgrK109ViZ4LFQ9MTA7VDxnLmxlbmd0aDtUKyspe3ZhciBVPTB8Zy53b3Jkc1tUXTtnLndvcmRzW1QtMTBdPShVJngpPDw0fFY+Pj4yMixWPVV9Zy53b3Jkc1tULTEwXT1WPj4+PTIyLGcubGVuZ3RoLT0w'@; put 'PT09ViYmZy5sZW5ndGg+MTA/MTA6OX0sc2UucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKGcpe2cud29yZHNbZy5sZW5ndGhdPTAsZy53b3Jkc1tnLmxlbmd0aCsxXT0wLGcubGVuZ3RoKz0yO2Zvcih2YXIgeT0wLHg9MDt4PGcubGVuZ3RoO3grKyl7dmFyIEM9MHxnLndvcmRzW3hdO2cud29y'@; put 'ZHNbeF09NjcxMDg4NjMmKHkrPTk3NypDKSx5PTY0KkMrKHkvNjcxMDg4NjR8MCl9cmV0dXJuIDA9PT1nLndvcmRzW2cubGVuZ3RoLTFdJiYoZy5sZW5ndGgtLSwwPT09Zy53b3Jkc1tnLmxlbmd0aC0xXSYmZy5sZW5ndGgtLSksZ30sTihnZSxpZSksTihfZSxpZSksTihUZSxpZSksVGUucHJv'@; put 'dG90eXBlLmltdWxLPWZ1bmN0aW9uKGcpe2Zvcih2YXIgeT0wLHg9MDt4PGcubGVuZ3RoO3grKyl7dmFyIEM9MTkqKDB8Zy53b3Jkc1t4XSkreSxUPTY3MTA4ODYzJkM7Qz4+Pj0yNixnLndvcmRzW3hdPVQseT1DfXJldHVybiAwIT09eSYmKGcud29yZHNbZy5sZW5ndGgrK109eSksZ30sdy5f'@; put 'cHJpbWU9ZnVuY3Rpb24oZyl7aWYodGVbZ10pcmV0dXJuIHRlW2ddO3ZhciB5O2lmKCJrMjU2Ij09PWcpeT1uZXcgc2U7ZWxzZSBpZigicDIyNCI9PT1nKXk9bmV3IGdlO2Vsc2UgaWYoInAxOTIiPT09Zyl5PW5ldyBfZTtlbHNle2lmKCJwMjU1MTkiIT09Zyl0aHJvdyBuZXcgRXJyb3IoIlVu'@; put 'a25vd24gcHJpbWUgIitnKTt5PW5ldyBUZX1yZXR1cm4gdGVbZ109eSx5fSxTZS5wcm90b3R5cGUuX3ZlcmlmeTE9ZnVuY3Rpb24oZyl7cCgwPT09Zy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxwKGcucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1i'@; put 'ZXJzIil9LFNlLnByb3RvdHlwZS5fdmVyaWZ5Mj1mdW5jdGlvbihnLHkpe3AoIShnLm5lZ2F0aXZlfHkubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLHAoZy5yZWQmJmcucmVkPT09eS5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sU2Uu'@; put 'cHJvdG90eXBlLmltb2Q9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKGcpLl9mb3JjZVJlZCh0aGlzKTpnLnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcyl9LFNlLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oZyl7cmV0dXJuIGcuaXNaZXJvKCk/Zy5j'@; put 'bG9uZSgpOnRoaXMubS5zdWIoZykuX2ZvcmNlUmVkKHRoaXMpfSxTZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGcseSl7dGhpcy5fdmVyaWZ5MihnLHkpO3ZhciB4PWcuYWRkKHkpO3JldHVybiB4LmNtcCh0aGlzLm0pPj0wJiZ4LmlzdWIodGhpcy5tKSx4Ll9mb3JjZVJlZCh0aGlzKX0sU2Uu'@; put 'cHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oZyx5KXt0aGlzLl92ZXJpZnkyKGcseSk7dmFyIHg9Zy5pYWRkKHkpO3JldHVybiB4LmNtcCh0aGlzLm0pPj0wJiZ4LmlzdWIodGhpcy5tKSx4fSxTZS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKGcseSl7dGhpcy5fdmVyaWZ5MihnLHkpO3ZhciB4PWcu'@; put 'c3ViKHkpO3JldHVybiB4LmNtcG4oMCk8MCYmeC5pYWRkKHRoaXMubSkseC5fZm9yY2VSZWQodGhpcyl9LFNlLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKGcseSl7dGhpcy5fdmVyaWZ5MihnLHkpO3ZhciB4PWcuaXN1Yih5KTtyZXR1cm4geC5jbXBuKDApPDAmJnguaWFkZCh0aGlzLm0pLHh9'@; put 'LFNlLnByb3RvdHlwZS5zaGw9ZnVuY3Rpb24oZyx5KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MShnKSx0aGlzLmltb2QoZy51c2hsbih5KSl9LFNlLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKGcseSl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoZyx5KSx0aGlzLmltb2QoZy5pbXVsKHkpKX0sU2UucHJv'@; put 'dG90eXBlLm11bD1mdW5jdGlvbihnLHkpe3JldHVybiB0aGlzLl92ZXJpZnkyKGcseSksdGhpcy5pbW9kKGcubXVsKHkpKX0sU2UucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuaW11bChnLGcuY2xvbmUoKSl9LFNlLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oZyl7cmV0'@; put 'dXJuIHRoaXMubXVsKGcsZyl9LFNlLnByb3RvdHlwZS5zcXJ0PWZ1bmN0aW9uKGcpe2lmKGcuaXNaZXJvKCkpcmV0dXJuIGcuY2xvbmUoKTt2YXIgeT10aGlzLm0uYW5kbG4oMyk7aWYocCh5JTI9PTEpLDM9PT15KXt2YXIgeD10aGlzLm0uYWRkKG5ldyB3KDEpKS5pdXNocm4oMik7cmV0dXJu'@; put 'IHRoaXMucG93KGcseCl9Zm9yKHZhciBDPXRoaXMubS5zdWJuKDEpLFQ9MDshQy5pc1plcm8oKSYmMD09PUMuYW5kbG4oMSk7KVQrKyxDLml1c2hybigxKTtwKCFDLmlzWmVybygpKTt2YXIgVj1uZXcgdygxKS50b1JlZCh0aGlzKSxVPVYucmVkTmVnKCksRT10aGlzLm0uc3VibigxKS5pdXNo'@; put 'cm4oMSksbT10aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKG09bmV3IHcoMiptKm0pLnRvUmVkKHRoaXMpOzAhPT10aGlzLnBvdyhtLEUpLmNtcChVKTspbS5yZWRJQWRkKFUpO2Zvcih2YXIgQT10aGlzLnBvdyhtLEMpLGFlPXRoaXMucG93KGcsQy5hZGRuKDEpLml1c2hybigxKSksbmU9dGhpcy5w'@; put 'b3coZyxDKSxsZT1UOzAhPT1uZS5jbXAoVik7KXtmb3IodmFyIHdlPW5lLFplPTA7MCE9PXdlLmNtcChWKTtaZSsrKXdlPXdlLnJlZFNxcigpO3AoWmU8bGUpO3ZhciBRZT10aGlzLnBvdyhBLG5ldyB3KDEpLml1c2hsbihsZS1aZS0xKSk7YWU9YWUucmVkTXVsKFFlKSxBPVFlLnJlZFNxcigp'@; put 'LG5lPW5lLnJlZE11bChBKSxsZT1aZX1yZXR1cm4gYWV9LFNlLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKGcpe3ZhciB5PWcuX2ludm1wKHRoaXMubSk7cmV0dXJuIDAhPT15Lm5lZ2F0aXZlPyh5Lm5lZ2F0aXZlPTAsdGhpcy5pbW9kKHkpLnJlZE5lZygpKTp0aGlzLmltb2QoeSl9LFNlLnBy'@; put 'b3RvdHlwZS5wb3c9ZnVuY3Rpb24oZyx5KXtpZih5LmlzWmVybygpKXJldHVybiBuZXcgdygxKS50b1JlZCh0aGlzKTtpZigwPT09eS5jbXBuKDEpKXJldHVybiBnLmNsb25lKCk7dmFyIEM9bmV3IEFycmF5KDE2KTtDWzBdPW5ldyB3KDEpLnRvUmVkKHRoaXMpLENbMV09Zztmb3IodmFyIFQ9'@; put 'MjtUPEMubGVuZ3RoO1QrKylDW1RdPXRoaXMubXVsKENbVC0xXSxnKTt2YXIgVj1DWzBdLFU9MCxFPTAsbT15LmJpdExlbmd0aCgpJTI2O2ZvcigwPT09bSYmKG09MjYpLFQ9eS5sZW5ndGgtMTtUPj0wO1QtLSl7Zm9yKHZhciBBPXkud29yZHNbVF0sYWU9bS0xO2FlPj0wO2FlLS0pe3ZhciBu'@; put 'ZT1BPj5hZSYxO1YhPT1DWzBdJiYoVj10aGlzLnNxcihWKSksMCE9PW5lfHwwIT09VT8oVTw8PTEsVXw9bmUsKDQ9PSsrRXx8MD09PVQmJjA9PT1hZSkmJihWPXRoaXMubXVsKFYsQ1tVXSksRT0wLFU9MCkpOkU9MH1tPTI2fXJldHVybiBWfSxTZS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0'@; put 'aW9uKGcpe3ZhciB5PWcudW1vZCh0aGlzLm0pO3JldHVybiB5PT09Zz95LmNsb25lKCk6eX0sU2UucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKGcpe3ZhciB5PWcuY2xvbmUoKTtyZXR1cm4geS5yZWQ9bnVsbCx5fSx3Lm1vbnQ9ZnVuY3Rpb24oZyl7cmV0dXJuIG5ldyB6ZShnKX0s'@; put 'Tih6ZSxTZSksemUucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5pbW9kKGcudXNobG4odGhpcy5zaGlmdCkpfSx6ZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oZyl7dmFyIHk9dGhpcy5pbW9kKGcubXVsKHRoaXMucmludikpO3JldHVybiB5LnJl'@; put 'ZD1udWxsLHl9LHplLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKGcseSl7aWYoZy5pc1plcm8oKXx8eS5pc1plcm8oKSlyZXR1cm4gZy53b3Jkc1swXT0wLGcubGVuZ3RoPTEsZzt2YXIgeD1nLmltdWwoeSksQz14Lm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlz'@; put 'LnNoaWZ0KS5tdWwodGhpcy5tKSxUPXguaXN1YihDKS5pdXNocm4odGhpcy5zaGlmdCksVj1UO3JldHVybiBULmNtcCh0aGlzLm0pPj0wP1Y9VC5pc3ViKHRoaXMubSk6VC5jbXBuKDApPDAmJihWPVQuaWFkZCh0aGlzLm0pKSxWLl9mb3JjZVJlZCh0aGlzKX0semUucHJvdG90eXBlLm11bD1m'@; put 'dW5jdGlvbihnLHkpe2lmKGcuaXNaZXJvKCl8fHkuaXNaZXJvKCkpcmV0dXJuIG5ldyB3KDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgeD1nLm11bCh5KSxDPXgubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLFQ9eC5pc3ViKEMp'@; put 'Lml1c2hybih0aGlzLnNoaWZ0KSxWPVQ7cmV0dXJuIFQuY21wKHRoaXMubSk+PTA/Vj1ULmlzdWIodGhpcy5tKTpULmNtcG4oMCk8MCYmKFY9VC5pYWRkKHRoaXMubSkpLFYuX2ZvcmNlUmVkKHRoaXMpfSx6ZS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5pbW9kKGcu'@; put 'X2ludm1wKHRoaXMubSkubXVsKHRoaXMucjIpKS5fZm9yY2VSZWQodGhpcyl9fShjZT1iLm5tZChjZSksdGhpcyl9LDYxMzg6KGNlLEosYik9Pnt2YXIgRD1iKDk4MCksXz1iKDkxOTkpLHA9Yig3ODU5KSxOPWIoMjE0NCksdz1iKDM2NjMpLEY9YigzNDgyKSxIPWIoNDgxOCksUj1iKDk1MDkp'@; put 'LkJ1ZmZlcjtjZS5leHBvcnRzPWZ1bmN0aW9uKEIsVyxaKXt2YXIgWDtYPUIucGFkZGluZz9CLnBhZGRpbmc6Wj8xOjQ7dmFyIHRlLFE9RChCKSxxPVEubW9kdWx1cy5ieXRlTGVuZ3RoKCk7aWYoVy5sZW5ndGg+cXx8bmV3IE4oVykuY21wKFEubW9kdWx1cyk+PTApdGhyb3cgbmV3IEVycm9y'@; put 'KCJkZWNyeXB0aW9uIGVycm9yIik7dGU9Wj9IKG5ldyBOKFcpLFEpOncoVyxRKTt2YXIgaWU9Ui5hbGxvYyhxLXRlLmxlbmd0aCk7aWYodGU9Ui5jb25jYXQoW2llLHRlXSxxKSw0PT09WClyZXR1cm4gZnVuY3Rpb24gaihZLEIpe3ZhciBXPVkubW9kdWx1cy5ieXRlTGVuZ3RoKCksWj1GKCJz'@; put 'aGExIikudXBkYXRlKFIuYWxsb2MoMCkpLmRpZ2VzdCgpLFg9Wi5sZW5ndGg7aWYoMCE9PUJbMF0pdGhyb3cgbmV3IEVycm9yKCJkZWNyeXB0aW9uIGVycm9yIik7dmFyIFE9Qi5zbGljZSgxLFgrMSkscT1CLnNsaWNlKFgrMSksdGU9cChRLF8ocSxYKSksaWU9cChxLF8odGUsVy1YLTEpKTtp'@; put 'ZihmdW5jdGlvbiBMKFksQil7WT1SLmZyb20oWSksQj1SLmZyb20oQik7dmFyIFc9MCxaPVkubGVuZ3RoO1kubGVuZ3RoIT09Qi5sZW5ndGgmJihXKyssWj1NYXRoLm1pbihZLmxlbmd0aCxCLmxlbmd0aCkpO2Zvcih2YXIgWD0tMTsrK1g8WjspVys9WVtYXV5CW1hdO3JldHVybiBXfShaLGll'@; put 'LnNsaWNlKDAsWCkpKXRocm93IG5ldyBFcnJvcigiZGVjcnlwdGlvbiBlcnJvciIpO2Zvcih2YXIgc2U9WDswPT09aWVbc2VdOylzZSsrO2lmKDEhPT1pZVtzZSsrXSl0aHJvdyBuZXcgRXJyb3IoImRlY3J5cHRpb24gZXJyb3IiKTtyZXR1cm4gaWUuc2xpY2Uoc2UpfShRLHRlKTtpZigxPT09'@; put 'WClyZXR1cm4gZnVuY3Rpb24gUChZLEIsVyl7Zm9yKHZhciBaPUIuc2xpY2UoMCwyKSxYPTIsUT0wOzAhPT1CW1grK107KWlmKFg+PUIubGVuZ3RoKXtRKys7YnJlYWt9dmFyIHE9Qi5zbGljZSgyLFgtMSk7aWYoKCIwMDAyIiE9PVoudG9TdHJpbmcoImhleCIpJiYhV3x8IjAwMDEiIT09Wi50'@; put 'b1N0cmluZygiaGV4IikmJlcpJiZRKysscS5sZW5ndGg8OCYmUSsrLFEpdGhyb3cgbmV3IEVycm9yKCJkZWNyeXB0aW9uIGVycm9yIik7cmV0dXJuIEIuc2xpY2UoWCl9KDAsdGUsWik7aWYoMz09PVgpcmV0dXJuIHRlO3Rocm93IG5ldyBFcnJvcigidW5rbm93biBwYWRkaW5nIil9fSw2NTU5'@; put 'OihjZSxKLGIpPT57dmFyIEQ9Yig5ODApLF89YigxNzk4KSxwPWIoMzQ4MiksTj1iKDkxOTkpLHc9Yig3ODU5KSxGPWIoMjE0NCksSD1iKDQ4MTgpLFI9YigzNjYzKSxqPWIoOTUwOSkuQnVmZmVyO2NlLmV4cG9ydHM9ZnVuY3Rpb24oVyxaLFgpe3ZhciBRO1E9Vy5wYWRkaW5nP1cucGFkZGlu'@; put 'ZzpYPzE6NDt2YXIgdGUscT1EKFcpO2lmKDQ9PT1RKXRlPWZ1bmN0aW9uIFAoQixXKXt2YXIgWj1CLm1vZHVsdXMuYnl0ZUxlbmd0aCgpLFg9Vy5sZW5ndGgsUT1wKCJzaGExIikudXBkYXRlKGouYWxsb2MoMCkpLmRpZ2VzdCgpLHE9US5sZW5ndGgsdGU9MipxO2lmKFg+Wi10ZS0yKXRocm93'@; put 'IG5ldyBFcnJvcigibWVzc2FnZSB0b28gbG9uZyIpO3ZhciBpZT1qLmFsbG9jKFotWC10ZS0yKSxzZT1aLXEtMSxnZT1fKHEpLF9lPXcoai5jb25jYXQoW1EsaWUsai5hbGxvYygxLDEpLFddLHNlKSxOKGdlLHNlKSksVGU9dyhnZSxOKF9lLHEpKTtyZXR1cm4gbmV3IEYoai5jb25jYXQoW2ou'@; put 'YWxsb2MoMSksVGUsX2VdLFopKX0ocSxaKTtlbHNlIGlmKDE9PT1RKXRlPWZ1bmN0aW9uIEwoQixXLFope3ZhciBxLFg9Vy5sZW5ndGgsUT1CLm1vZHVsdXMuYnl0ZUxlbmd0aCgpO2lmKFg+US0xMSl0aHJvdyBuZXcgRXJyb3IoIm1lc3NhZ2UgdG9vIGxvbmciKTtyZXR1cm4gcT1aP2ouYWxs'@; put 'b2MoUS1YLTMsMjU1KTpmdW5jdGlvbiBZKEIpe2Zvcih2YXIgcSxXPWouYWxsb2NVbnNhZmUoQiksWj0wLFg9XygyKkIpLFE9MDtaPEI7KVE9PT1YLmxlbmd0aCYmKFg9XygyKkIpLFE9MCksKHE9WFtRKytdKSYmKFdbWisrXT1xKTtyZXR1cm4gV30oUS1YLTMpLG5ldyBGKGouY29uY2F0KFtq'@; put 'LmZyb20oWzAsWj8xOjJdKSxxLGouYWxsb2MoMSksV10sUSkpfShxLFosWCk7ZWxzZXtpZigzIT09USl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gcGFkZGluZyIpO2lmKCh0ZT1uZXcgRihaKSkuY21wKHEubW9kdWx1cyk+PTApdGhyb3cgbmV3IEVycm9yKCJkYXRhIHRvbyBsb25nIGZvciBt'@; put 'b2R1bHVzIil9cmV0dXJuIFg/Uih0ZSxxKTpIKHRlLHEpfX0sNDgxODooY2UsSixiKT0+e3ZhciBEPWIoMjE0NCksXz1iKDk1MDkpLkJ1ZmZlcjtjZS5leHBvcnRzPWZ1bmN0aW9uIHAoTix3KXtyZXR1cm4gXy5mcm9tKE4udG9SZWQoRC5tb250KHcubW9kdWx1cykpLnJlZFBvdyhuZXcgRCh3'@; put 'LnB1YmxpY0V4cG9uZW50KSkuZnJvbVJlZCgpLnRvQXJyYXkoKSl9fSw3ODU5OmNlPT57Y2UuZXhwb3J0cz1mdW5jdGlvbihiLEQpe2Zvcih2YXIgXz1iLmxlbmd0aCxwPS0xOysrcDxfOyliW3BdXj1EW3BdO3JldHVybiBifX0sMzY4OTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0IjtiLnIoSiks'@; put 'Yi5kKEose2RlY29kZTooKT0+U2UsZGVmYXVsdDooKT0+eCxlbmNvZGU6KCk9PnplLHRvQVNDSUk6KCk9PmcsdG9Vbmljb2RlOigpPT56LHVjczJkZWNvZGU6KCk9PmllLHVjczJlbmNvZGU6KCk9PnNlfSk7Y29uc3QgRD0yMTQ3NDgzNjQ3LF89MzYsUD0vXnhuLS0vLEw9L1teXDAtXHg3Rl0v'@; put 'LFk9L1tceDJFXHUzMDAyXHVGRjBFXHVGRjYxXS9nLEI9e292ZXJmbG93OiJPdmVyZmxvdzogaW5wdXQgbmVlZHMgd2lkZXIgaW50ZWdlcnMgdG8gcHJvY2VzcyIsIm5vdC1iYXNpYyI6IklsbGVnYWwgaW5wdXQgPj0gMHg4MCAobm90IGEgYmFzaWMgY29kZSBwb2ludCkiLCJpbnZhbGlkLWlu'@; put 'cHV0IjoiSW52YWxpZCBpbnB1dCJ9LFo9TWF0aC5mbG9vcixYPVN0cmluZy5mcm9tQ2hhckNvZGU7ZnVuY3Rpb24gUShDKXt0aHJvdyBuZXcgUmFuZ2VFcnJvcihCW0NdKX1mdW5jdGlvbiB0ZShDLFQpe2NvbnN0IFY9Qy5zcGxpdCgiQCIpO2xldCBVPSIiO1YubGVuZ3RoPjEmJihVPVZbMF0r'@; put 'IkAiLEM9VlsxXSk7Y29uc3QgbT1mdW5jdGlvbiBxKEMsVCl7Y29uc3QgVj1bXTtsZXQgVT1DLmxlbmd0aDtmb3IoO1UtLTspVltVXT1UKENbVV0pO3JldHVybiBWfSgoQz1DLnJlcGxhY2UoWSwiLiIpKS5zcGxpdCgiLiIpLFQpLmpvaW4oIi4iKTtyZXR1cm4gVSttfWZ1bmN0aW9uIGllKEMp'@; put 'e2NvbnN0IFQ9W107bGV0IFY9MDtjb25zdCBVPUMubGVuZ3RoO2Zvcig7VjxVOyl7Y29uc3QgRT1DLmNoYXJDb2RlQXQoVisrKTtpZihFPj01NTI5NiYmRTw9NTYzMTkmJlY8VSl7Y29uc3QgbT1DLmNoYXJDb2RlQXQoVisrKTs1NjMyMD09KDY0NTEyJm0pP1QucHVzaCgoKDEwMjMmRSk8PDEw'@; put 'KSsoMTAyMyZtKSs2NTUzNik6KFQucHVzaChFKSxWLS0pfWVsc2UgVC5wdXNoKEUpfXJldHVybiBUfWNvbnN0IHNlPUM9PlN0cmluZy5mcm9tQ29kZVBvaW50KC4uLkMpLGdlPWZ1bmN0aW9uKEMpe3JldHVybiBDPj00OCYmQzw1OD9DLTQ4KzI2OkM+PTY1JiZDPDkxP0MtNjU6Qz49OTcmJkM8'@; put 'MTIzP0MtOTc6X30sX2U9ZnVuY3Rpb24oQyxUKXtyZXR1cm4gQysyMis3NSooQzwyNiktKCgwIT1UKTw8NSl9LFRlPWZ1bmN0aW9uKEMsVCxWKXtsZXQgVT0wO2ZvcihDPVY/WihDLzcwMCk6Qz4+MSxDKz1aKEMvVCk7Qz40NTU7VSs9XylDPVooQy8zNSk7cmV0dXJuIFooVSszNipDLyhDKzM4'@; put 'KSl9LFNlPWZ1bmN0aW9uKEMpe2NvbnN0IFQ9W10sVj1DLmxlbmd0aDtsZXQgVT0wLEU9MTI4LG09NzIsQT1DLmxhc3RJbmRleE9mKCItIik7QTwwJiYoQT0wKTtmb3IobGV0IGFlPTA7YWU8QTsrK2FlKUMuY2hhckNvZGVBdChhZSk+PTEyOCYmUSgibm90LWJhc2ljIiksVC5wdXNoKEMuY2hh'@; put 'ckNvZGVBdChhZSkpO2ZvcihsZXQgYWU9QT4wP0ErMTowO2FlPFY7KXtjb25zdCBuZT1VO2ZvcihsZXQgd2U9MSxaZT1fOztaZSs9Xyl7YWU+PVYmJlEoImludmFsaWQtaW5wdXQiKTtjb25zdCBRZT1nZShDLmNoYXJDb2RlQXQoYWUrKykpO1FlPj1fJiZRKCJpbnZhbGlkLWlucHV0IiksUWU+'@; put 'WigoRC1VKS93ZSkmJlEoIm92ZXJmbG93IiksVSs9UWUqd2U7Y29uc3QgYXQ9WmU8PW0/MTpaZT49bSsyNj8yNjpaZS1tO2lmKFFlPGF0KWJyZWFrO2NvbnN0IHhlPV8tYXQ7d2U+WihEL3hlKSYmUSgib3ZlcmZsb3ciKSx3ZSo9eGV9Y29uc3QgbGU9VC5sZW5ndGgrMTttPVRlKFUtbmUsbGUs'@; put 'MD09bmUpLFooVS9sZSk+RC1FJiZRKCJvdmVyZmxvdyIpLEUrPVooVS9sZSksVSU9bGUsVC5zcGxpY2UoVSsrLDAsRSl9cmV0dXJuIFN0cmluZy5mcm9tQ29kZVBvaW50KC4uLlQpfSx6ZT1mdW5jdGlvbihDKXtjb25zdCBUPVtdLFY9KEM9aWUoQykpLmxlbmd0aDtsZXQgVT0xMjgsRT0wLG09'@; put 'NzI7Zm9yKGNvbnN0IG5lIG9mIEMpbmU8MTI4JiZULnB1c2goWChuZSkpO2NvbnN0IEE9VC5sZW5ndGg7bGV0IGFlPUE7Zm9yKEEmJlQucHVzaCgiLSIpO2FlPFY7KXtsZXQgbmU9RDtmb3IoY29uc3Qgd2Ugb2YgQyl3ZT49VSYmd2U8bmUmJihuZT13ZSk7Y29uc3QgbGU9YWUrMTtuZS1VPloo'@; put 'KEQtRSkvbGUpJiZRKCJvdmVyZmxvdyIpLEUrPShuZS1VKSpsZSxVPW5lO2Zvcihjb25zdCB3ZSBvZiBDKWlmKHdlPFUmJisrRT5EJiZRKCJvdmVyZmxvdyIpLHdlPT09VSl7bGV0IFplPUU7Zm9yKGxldCBRZT1fOztRZSs9Xyl7Y29uc3QgYXQ9UWU8PW0/MTpRZT49bSsyNj8yNjpRZS1tO2lm'@; put 'KFplPGF0KWJyZWFrO2NvbnN0IHhlPVplLWF0LHZlPV8tYXQ7VC5wdXNoKFgoX2UoYXQreGUldmUsMCkpKSxaZT1aKHhlL3ZlKX1ULnB1c2goWChfZShaZSwwKSkpLG09VGUoRSxsZSxhZT09PUEpLEU9MCwrK2FlfSsrRSwrK1V9cmV0dXJuIFQuam9pbigiIil9LHo9ZnVuY3Rpb24oQyl7cmV0'@; put 'dXJuIHRlKEMsZnVuY3Rpb24oVCl7cmV0dXJuIFAudGVzdChUKT9TZShULnNsaWNlKDQpLnRvTG93ZXJDYXNlKCkpOlR9KX0sZz1mdW5jdGlvbihDKXtyZXR1cm4gdGUoQyxmdW5jdGlvbihUKXtyZXR1cm4gTC50ZXN0KFQpPyJ4bi0tIit6ZShUKTpUfSl9LHg9e3ZlcnNpb246IjIuMy4xIix1'@; put 'Y3MyOntkZWNvZGU6aWUsZW5jb2RlOnNlfSxkZWNvZGU6U2UsZW5jb2RlOnplLHRvQVNDSUk6Zyx0b1VuaWNvZGU6en19LDcxMjk6KGNlLEopPT57InVzZSBzdHJpY3QiO3ZhciBiPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gXyhGKXt0cnl7cmV0dXJuIGRlY29k'@; put 'ZVVSSUNvbXBvbmVudChGLnJlcGxhY2UoL1wrL2csIiAiKSl9Y2F0Y2h7cmV0dXJuIG51bGx9fWZ1bmN0aW9uIHAoRil7dHJ5e3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoRil9Y2F0Y2h7cmV0dXJuIG51bGx9fUouc3RyaW5naWZ5PWZ1bmN0aW9uIHcoRixIKXtIPUh8fCIiO3ZhciBqLFAs'@; put 'Uj1bXTtmb3IoUCBpbiJzdHJpbmciIT10eXBlb2YgSCYmKEg9Ij8iKSxGKWlmKGIuY2FsbChGLFApKXtpZighKGo9RltQXSkmJihudWxsPT1qfHxpc05hTihqKSkmJihqPSIiKSxQPXAoUCksaj1wKGopLG51bGw9PT1QfHxudWxsPT09ailjb250aW51ZTtSLnB1c2goUCsiPSIrail9cmV0dXJu'@; put 'IFIubGVuZ3RoP0grUi5qb2luKCImIik6IiJ9LEoucGFyc2U9ZnVuY3Rpb24gTihGKXtmb3IodmFyIGosSD0vKFtePT8jJl0rKT0/KFteJl0qKS9nLFI9e307aj1ILmV4ZWMoRik7KXt2YXIgUD1fKGpbMV0pLEw9XyhqWzJdKTtudWxsPT09UHx8bnVsbD09PUx8fFAgaW4gUnx8KFJbUF09TCl9'@; put 'cmV0dXJuIFJ9fSwxNzk4OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNDE1NSksXz02NTUzNix3PWIoOTUwOSkuQnVmZmVyLEY9Yi5nLmNyeXB0b3x8Yi5nLm1zQ3J5cHRvO2NlLmV4cG9ydHM9RiYmRi5nZXRSYW5kb21WYWx1ZXM/ZnVuY3Rpb24gSChSLGope2lmKFI+NDI5NDk2'@; put 'NzI5NSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigicmVxdWVzdGVkIHRvbyBtYW55IHJhbmRvbSBieXRlcyIpO3ZhciBQPXcuYWxsb2NVbnNhZmUoUik7aWYoUj4wKWlmKFI+Xylmb3IodmFyIEw9MDtMPFI7TCs9XylGLmdldFJhbmRvbVZhbHVlcyhQLnNsaWNlKEwsTCtfKSk7ZWxzZSBGLmdldFJh'@; put 'bmRvbVZhbHVlcyhQKTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygaj9ELm5leHRUaWNrKGZ1bmN0aW9uKCl7aihudWxsLFApfSk6UH06ZnVuY3Rpb24gTigpe3Rocm93IG5ldyBFcnJvcigiU2VjdXJlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMg'@; put 'YnJvd3Nlci5cblVzZSBDaHJvbWUsIEZpcmVmb3ggb3IgSW50ZXJuZXQgRXhwbG9yZXIgMTEiKX19LDc5NjM6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig0MTU1KTtmdW5jdGlvbiBfKCl7dGhyb3cgbmV3IEVycm9yKCJzZWN1cmUgcmFuZG9tIG51bWJlciBnZW5lcmF0aW9uIG5v'@; put 'dCBzdXBwb3J0ZWQgYnkgdGhpcyBicm93c2VyXG51c2UgY2hyb21lLCBGaXJlRm94IG9yIEludGVybmV0IEV4cGxvcmVyIDExIil9dmFyIHA9Yig5NTA5KSxOPWIoMTc5OCksdz1wLkJ1ZmZlcixGPXAua01heExlbmd0aCxIPWIuZy5jcnlwdG98fGIuZy5tc0NyeXB0byxSPU1hdGgucG93KDIs'@; put 'MzIpLTE7ZnVuY3Rpb24gaihXLFope2lmKCJudW1iZXIiIT10eXBlb2YgV3x8VyE9Vyl0aHJvdyBuZXcgVHlwZUVycm9yKCJvZmZzZXQgbXVzdCBiZSBhIG51bWJlciIpO2lmKFc+Unx8VzwwKXRocm93IG5ldyBUeXBlRXJyb3IoIm9mZnNldCBtdXN0IGJlIGEgdWludDMyIik7aWYoVz5GfHxX'@; put 'PlopdGhyb3cgbmV3IFJhbmdlRXJyb3IoIm9mZnNldCBvdXQgb2YgcmFuZ2UiKX1mdW5jdGlvbiBQKFcsWixYKXtpZigibnVtYmVyIiE9dHlwZW9mIFd8fFchPVcpdGhyb3cgbmV3IFR5cGVFcnJvcigic2l6ZSBtdXN0IGJlIGEgbnVtYmVyIik7aWYoVz5SfHxXPDApdGhyb3cgbmV3IFR5cGVF'@; put 'cnJvcigic2l6ZSBtdXN0IGJlIGEgdWludDMyIik7aWYoVytaPlh8fFc+Ril0aHJvdyBuZXcgUmFuZ2VFcnJvcigiYnVmZmVyIHRvbyBzbWFsbCIpfWZ1bmN0aW9uIFkoVyxaLFgsUSl7aWYoRC5icm93c2VyKXt2YXIgdGU9bmV3IFVpbnQ4QXJyYXkoVy5idWZmZXIsWixYKTtyZXR1cm4gSC5n'@; put 'ZXRSYW5kb21WYWx1ZXModGUpLFE/dm9pZCBELm5leHRUaWNrKGZ1bmN0aW9uKCl7UShudWxsLFcpfSk6V31pZighUSlyZXR1cm4gTihYKS5jb3B5KFcsWiksVztOKFgsZnVuY3Rpb24oc2UsZ2Upe2lmKHNlKXJldHVybiBRKHNlKTtnZS5jb3B5KFcsWiksUShudWxsLFcpfSl9SCYmSC5nZXRS'@; put 'YW5kb21WYWx1ZXN8fCFELmJyb3dzZXI/KEoucmFuZG9tRmlsbD1mdW5jdGlvbiBMKFcsWixYLFEpe2lmKCEody5pc0J1ZmZlcihXKXx8VyBpbnN0YW5jZW9mIGIuZy5VaW50OEFycmF5KSl0aHJvdyBuZXcgVHlwZUVycm9yKCciYnVmIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIG9yIFVp'@; put 'bnQ4QXJyYXknKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgWilRPVosWj0wLFg9Vy5sZW5ndGg7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgWClRPVgsWD1XLmxlbmd0aC1aO2Vsc2UgaWYoImZ1bmN0aW9uIiE9dHlwZW9mIFEpdGhyb3cgbmV3IFR5cGVFcnJvcignImNiIiBhcmd1bWVudCBt'@; put 'dXN0IGJlIGEgZnVuY3Rpb24nKTtyZXR1cm4gaihaLFcubGVuZ3RoKSxQKFgsWixXLmxlbmd0aCksWShXLFosWCxRKX0sSi5yYW5kb21GaWxsU3luYz1mdW5jdGlvbiBCKFcsWixYKXtpZih0eXBlb2YgWj4idSImJihaPTApLCEody5pc0J1ZmZlcihXKXx8VyBpbnN0YW5jZW9mIGIuZy5VaW50'@; put 'OEFycmF5KSl0aHJvdyBuZXcgVHlwZUVycm9yKCciYnVmIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIG9yIFVpbnQ4QXJyYXknKTtyZXR1cm4gaihaLFcubGVuZ3RoKSx2b2lkIDA9PT1YJiYoWD1XLmxlbmd0aC1aKSxQKFgsWixXLmxlbmd0aCksWShXLFosWCl9KTooSi5yYW5kb21GaWxs'@; put 'PV8sSi5yYW5kb21GaWxsU3luYz1fKX0sNDI4MTpjZT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYj17fTtmdW5jdGlvbiBEKEYsSCxSKXtSfHwoUj1FcnJvcik7dmFyIFA9ZnVuY3Rpb24oTCl7ZnVuY3Rpb24gWShCLFcsWil7cmV0dXJuIEwuY2FsbCh0aGlzLGZ1bmN0aW9uIGooTCxZLEIpe3JldHVy'@; put 'biJzdHJpbmciPT10eXBlb2YgSD9IOkgoTCxZLEIpfShCLFcsWikpfHx0aGlzfXJldHVybiBmdW5jdGlvbiBKKEYsSCl7Ri5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShILnByb3RvdHlwZSksRi5wcm90b3R5cGUuY29uc3RydWN0b3I9RixGLl9fcHJvdG9fXz1IfShZLEwpLFl9KFIpO1AucHJv'@; put 'dG90eXBlLm5hbWU9Ui5uYW1lLFAucHJvdG90eXBlLmNvZGU9RixiW0ZdPVB9ZnVuY3Rpb24gXyhGLEgpe2lmKEFycmF5LmlzQXJyYXkoRikpe3ZhciBSPUYubGVuZ3RoO3JldHVybiBGPUYubWFwKGZ1bmN0aW9uKGope3JldHVybiBTdHJpbmcoail9KSxSPjI/Im9uZSBvZiAiLmNvbmNhdChI'@; put 'LCIgIikuY29uY2F0KEYuc2xpY2UoMCxSLTEpLmpvaW4oIiwgIiksIiwgb3IgIikrRltSLTFdOjI9PT1SPyJvbmUgb2YgIi5jb25jYXQoSCwiICIpLmNvbmNhdChGWzBdLCIgb3IgIikuY29uY2F0KEZbMV0pOiJvZiAiLmNvbmNhdChILCIgIikuY29uY2F0KEZbMF0pfXJldHVybiJvZiAiLmNv'@; put 'bmNhdChILCIgIikuY29uY2F0KFN0cmluZyhGKSl9RCgiRVJSX0lOVkFMSURfT1BUX1ZBTFVFIixmdW5jdGlvbihGLEgpe3JldHVybidUaGUgdmFsdWUgIicrSCsnIiBpcyBpbnZhbGlkIGZvciBvcHRpb24gIicrRisnIid9LFR5cGVFcnJvciksRCgiRVJSX0lOVkFMSURfQVJHX1RZUEUiLGZ1'@; put 'bmN0aW9uKEYsSCxSKXt2YXIgaixQO2lmKCJzdHJpbmciPT10eXBlb2YgSCYmZnVuY3Rpb24gcChGLEgsUil7cmV0dXJuIEYuc3Vic3RyKCFSfHxSPDA/MDorUixILmxlbmd0aCk9PT1IfShILCJub3QgIik/KGo9Im11c3Qgbm90IGJlIixIPUgucmVwbGFjZSgvXm5vdCAvLCIiKSk6aj0ibXVz'@; put 'dCBiZSIsZnVuY3Rpb24gTihGLEgsUil7cmV0dXJuKHZvaWQgMD09PVJ8fFI+Ri5sZW5ndGgpJiYoUj1GLmxlbmd0aCksRi5zdWJzdHJpbmcoUi1ILmxlbmd0aCxSKT09PUh9KEYsIiBhcmd1bWVudCIpKVA9IlRoZSAiLmNvbmNhdChGLCIgIikuY29uY2F0KGosIiAiKS5jb25jYXQoXyhILCJ0'@; put 'eXBlIikpO2Vsc2V7dmFyIEw9ZnVuY3Rpb24gdyhGLEgsUil7cmV0dXJuIm51bWJlciIhPXR5cGVvZiBSJiYoUj0wKSwhKFIrSC5sZW5ndGg+Ri5sZW5ndGgpJiYtMSE9PUYuaW5kZXhPZihILFIpfShGLCIuIik/InByb3BlcnR5IjoiYXJndW1lbnQiO1A9J1RoZSAiJy5jb25jYXQoRiwnIiAn'@; put 'KS5jb25jYXQoTCwiICIpLmNvbmNhdChqLCIgIikuY29uY2F0KF8oSCwidHlwZSIpKX1yZXR1cm4gUCsiLiBSZWNlaXZlZCB0eXBlICIuY29uY2F0KHR5cGVvZiBSKX0sVHlwZUVycm9yKSxEKCJFUlJfU1RSRUFNX1BVU0hfQUZURVJfRU9GIiwic3RyZWFtLnB1c2goKSBhZnRlciBFT0YiKSxE'@; put 'KCJFUlJfTUVUSE9EX05PVF9JTVBMRU1FTlRFRCIsZnVuY3Rpb24oRil7cmV0dXJuIlRoZSAiK0YrIiBtZXRob2QgaXMgbm90IGltcGxlbWVudGVkIn0pLEQoIkVSUl9TVFJFQU1fUFJFTUFUVVJFX0NMT1NFIiwiUHJlbWF0dXJlIGNsb3NlIiksRCgiRVJSX1NUUkVBTV9ERVNUUk9ZRUQiLGZ1'@; put 'bmN0aW9uKEYpe3JldHVybiJDYW5ub3QgY2FsbCAiK0YrIiBhZnRlciBhIHN0cmVhbSB3YXMgZGVzdHJveWVkIn0pLEQoIkVSUl9NVUxUSVBMRV9DQUxMQkFDSyIsIkNhbGxiYWNrIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyIpLEQoIkVSUl9TVFJFQU1fQ0FOTk9UX1BJUEUiLCJDYW5ub3QgcGlw'@; put 'ZSwgbm90IHJlYWRhYmxlIiksRCgiRVJSX1NUUkVBTV9XUklURV9BRlRFUl9FTkQiLCJ3cml0ZSBhZnRlciBlbmQiKSxEKCJFUlJfU1RSRUFNX05VTExfVkFMVUVTIiwiTWF5IG5vdCB3cml0ZSBudWxsIHZhbHVlcyB0byBzdHJlYW0iLFR5cGVFcnJvciksRCgiRVJSX1VOS05PV05fRU5DT0RJ'@; put 'TkciLGZ1bmN0aW9uKEYpe3JldHVybiJVbmtub3duIGVuY29kaW5nOiAiK0Z9LFR5cGVFcnJvciksRCgiRVJSX1NUUkVBTV9VTlNISUZUX0FGVEVSX0VORF9FVkVOVCIsInN0cmVhbS51bnNoaWZ0KCkgYWZ0ZXIgZW5kIGV2ZW50IiksY2UuZXhwb3J0cy5xPWJ9LDY3NTM6KGNlLEosYik9Pnsi'@; put 'dXNlIHN0cmljdCI7dmFyIEQ9Yig0MTU1KSxfPU9iamVjdC5rZXlzfHxmdW5jdGlvbihMKXt2YXIgWT1bXTtmb3IodmFyIEIgaW4gTClZLnB1c2goQik7cmV0dXJuIFl9O2NlLmV4cG9ydHM9Ujt2YXIgcD1iKDk0ODEpLE49Yig0MjI5KTtiKDU3MTcpKFIscCk7Zm9yKHZhciB3PV8oTi5wcm90'@; put 'b3R5cGUpLEY9MDtGPHcubGVuZ3RoO0YrKyl7dmFyIEg9d1tGXTtSLnByb3RvdHlwZVtIXXx8KFIucHJvdG90eXBlW0hdPU4ucHJvdG90eXBlW0hdKX1mdW5jdGlvbiBSKEwpe2lmKCEodGhpcyBpbnN0YW5jZW9mIFIpKXJldHVybiBuZXcgUihMKTtwLmNhbGwodGhpcyxMKSxOLmNhbGwodGhp'@; put 'cyxMKSx0aGlzLmFsbG93SGFsZk9wZW49ITAsTCYmKCExPT09TC5yZWFkYWJsZSYmKHRoaXMucmVhZGFibGU9ITEpLCExPT09TC53cml0YWJsZSYmKHRoaXMud3JpdGFibGU9ITEpLCExPT09TC5hbGxvd0hhbGZPcGVuJiYodGhpcy5hbGxvd0hhbGZPcGVuPSExLHRoaXMub25jZSgiZW5kIixq'@; put 'KSkpfWZ1bmN0aW9uIGooKXt0aGlzLl93cml0YWJsZVN0YXRlLmVuZGVkfHxELm5leHRUaWNrKFAsdGhpcyl9ZnVuY3Rpb24gUChMKXtMLmVuZCgpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShSLnByb3RvdHlwZSwid3JpdGFibGVIaWdoV2F0ZXJNYXJrIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVu'@; put 'Y3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5oaWdoV2F0ZXJNYXJrfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSLnByb3RvdHlwZSwid3JpdGFibGVCdWZmZXIiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlJiZ0aGlz'@; put 'Ll93cml0YWJsZVN0YXRlLmdldEJ1ZmZlcigpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSLnByb3RvdHlwZSwid3JpdGFibGVMZW5ndGgiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmxlbmd0aH19KSxPYmplY3QuZGVmaW5lUHJv'@; put 'cGVydHkoUi5wcm90b3R5cGUsImRlc3Ryb3llZCIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX3JlYWRhYmxlU3RhdGUmJnZvaWQgMCE9PXRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkJiZ0aGlzLl93'@; put 'cml0YWJsZVN0YXRlLmRlc3Ryb3llZH0sc2V0OmZ1bmN0aW9uKFkpe3ZvaWQgMD09PXRoaXMuX3JlYWRhYmxlU3RhdGV8fHZvaWQgMD09PXRoaXMuX3dyaXRhYmxlU3RhdGV8fCh0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD1ZLHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkPVkp'@; put 'fX0pfSwyNzI1OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO2NlLmV4cG9ydHM9Xzt2YXIgRD1iKDQ2MDUpO2Z1bmN0aW9uIF8ocCl7aWYoISh0aGlzIGluc3RhbmNlb2YgXykpcmV0dXJuIG5ldyBfKHApO0QuY2FsbCh0aGlzLHApfWIoNTcxNykoXyxEKSxfLnByb3RvdHlwZS5fdHJhbnNmb3Jt'@; put 'PWZ1bmN0aW9uKHAsTix3KXt3KG51bGwscCl9fSw5NDgxOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBfLEQ9Yig0MTU1KTtjZS5leHBvcnRzPWcsZy5SZWFkYWJsZVN0YXRlPXosYig3MTg3KTt2YXIgTCxOPWZ1bmN0aW9uKFJlLEllKXtyZXR1cm4gUmUubGlzdGVuZXJzKEllKS5sZW5n'@; put 'dGh9LHc9YigyNTAzKSxGPWIoODc2NCkuQnVmZmVyLEg9KHR5cGVvZiBiLmc8InUiP2IuZzp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dHlwZW9mIHNlbGY8InUiP3NlbGY6e30pLlVpbnQ4QXJyYXl8fGZ1bmN0aW9uKCl7fSxQPWIoNDYxNik7TD1QJiZQLmRlYnVnbG9nP1AuZGVidWdsb2co'@; put 'InN0cmVhbSIpOmZ1bmN0aW9uKCl7fTt2YXIgc2UsZ2UsX2UsWT1iKDczMjcpLEI9YigxMTk1KSxaPWIoMjQ1NykuZ2V0SGlnaFdhdGVyTWFyayxYPWIoNDI4MSkucSxRPVguRVJSX0lOVkFMSURfQVJHX1RZUEUscT1YLkVSUl9TVFJFQU1fUFVTSF9BRlRFUl9FT0YsdGU9WC5FUlJfTUVUSE9E'@; put 'X05PVF9JTVBMRU1FTlRFRCxpZT1YLkVSUl9TVFJFQU1fVU5TSElGVF9BRlRFUl9FTkRfRVZFTlQ7Yig1NzE3KShnLHcpO3ZhciBUZT1CLmVycm9yT3JEZXN0cm95LFNlPVsiZXJyb3IiLCJjbG9zZSIsImRlc3Ryb3kiLCJwYXVzZSIsInJlc3VtZSJdO2Z1bmN0aW9uIHooRmUsUmUsSWUpe189'@; put 'X3x8Yig2NzUzKSwiYm9vbGVhbiIhPXR5cGVvZiBJZSYmKEllPVJlIGluc3RhbmNlb2YgXyksdGhpcy5vYmplY3RNb2RlPSEhKEZlPUZlfHx7fSkub2JqZWN0TW9kZSxJZSYmKHRoaXMub2JqZWN0TW9kZT10aGlzLm9iamVjdE1vZGV8fCEhRmUucmVhZGFibGVPYmplY3RNb2RlKSx0aGlzLmhp'@; put 'Z2hXYXRlck1hcms9Wih0aGlzLEZlLCJyZWFkYWJsZUhpZ2hXYXRlck1hcmsiLEllKSx0aGlzLmJ1ZmZlcj1uZXcgWSx0aGlzLmxlbmd0aD0wLHRoaXMucGlwZXM9bnVsbCx0aGlzLnBpcGVzQ291bnQ9MCx0aGlzLmZsb3dpbmc9bnVsbCx0aGlzLmVuZGVkPSExLHRoaXMuZW5kRW1pdHRlZD0h'@; put 'MSx0aGlzLnJlYWRpbmc9ITEsdGhpcy5zeW5jPSEwLHRoaXMubmVlZFJlYWRhYmxlPSExLHRoaXMuZW1pdHRlZFJlYWRhYmxlPSExLHRoaXMucmVhZGFibGVMaXN0ZW5pbmc9ITEsdGhpcy5yZXN1bWVTY2hlZHVsZWQ9ITEsdGhpcy5wYXVzZWQ9ITAsdGhpcy5lbWl0Q2xvc2U9ITEhPT1GZS5l'@; put 'bWl0Q2xvc2UsdGhpcy5hdXRvRGVzdHJveT0hIUZlLmF1dG9EZXN0cm95LHRoaXMuZGVzdHJveWVkPSExLHRoaXMuZGVmYXVsdEVuY29kaW5nPUZlLmRlZmF1bHRFbmNvZGluZ3x8InV0ZjgiLHRoaXMuYXdhaXREcmFpbj0wLHRoaXMucmVhZGluZ01vcmU9ITEsdGhpcy5kZWNvZGVyPW51bGws'@; put 'dGhpcy5lbmNvZGluZz1udWxsLEZlLmVuY29kaW5nJiYoc2V8fChzZT1iKDI1NTMpLnMpLHRoaXMuZGVjb2Rlcj1uZXcgc2UoRmUuZW5jb2RpbmcpLHRoaXMuZW5jb2Rpbmc9RmUuZW5jb2RpbmcpfWZ1bmN0aW9uIGcoRmUpe2lmKF89X3x8Yig2NzUzKSwhKHRoaXMgaW5zdGFuY2VvZiBnKSly'@; put 'ZXR1cm4gbmV3IGcoRmUpO3RoaXMuX3JlYWRhYmxlU3RhdGU9bmV3IHooRmUsdGhpcyx0aGlzIGluc3RhbmNlb2YgXyksdGhpcy5yZWFkYWJsZT0hMCxGZSYmKCJmdW5jdGlvbiI9PXR5cGVvZiBGZS5yZWFkJiYodGhpcy5fcmVhZD1GZS5yZWFkKSwiZnVuY3Rpb24iPT10eXBlb2YgRmUuZGVz'@; put 'dHJveSYmKHRoaXMuX2Rlc3Ryb3k9RmUuZGVzdHJveSkpLHcuY2FsbCh0aGlzKX1mdW5jdGlvbiB5KEZlLFJlLEllLEhlLERlKXtMKCJyZWFkYWJsZUFkZENodW5rIixSZSk7dmFyIF90LGtlPUZlLl9yZWFkYWJsZVN0YXRlO2lmKG51bGw9PT1SZSlrZS5yZWFkaW5nPSExLGZ1bmN0aW9uIEUo'@; put 'RmUsUmUpe2lmKEwoIm9uRW9mQ2h1bmsiKSwhUmUuZW5kZWQpe2lmKFJlLmRlY29kZXIpe3ZhciBJZT1SZS5kZWNvZGVyLmVuZCgpO0llJiZJZS5sZW5ndGgmJihSZS5idWZmZXIucHVzaChJZSksUmUubGVuZ3RoKz1SZS5vYmplY3RNb2RlPzE6SWUubGVuZ3RoKX1SZS5lbmRlZD0hMCxSZS5z'@; put 'eW5jP20oRmUpOihSZS5uZWVkUmVhZGFibGU9ITEsUmUuZW1pdHRlZFJlYWRhYmxlfHwoUmUuZW1pdHRlZFJlYWRhYmxlPSEwLEEoRmUpKSl9fShGZSxrZSk7ZWxzZSBpZihEZXx8KF90PWZ1bmN0aW9uIEMoRmUsUmUpe3ZhciBJZTtyZXR1cm4hZnVuY3Rpb24gaihGZSl7cmV0dXJuIEYuaXNC'@; put 'dWZmZXIoRmUpfHxGZSBpbnN0YW5jZW9mIEh9KFJlKSYmInN0cmluZyIhPXR5cGVvZiBSZSYmdm9pZCAwIT09UmUmJiFGZS5vYmplY3RNb2RlJiYoSWU9bmV3IFEoImNodW5rIixbInN0cmluZyIsIkJ1ZmZlciIsIlVpbnQ4QXJyYXkiXSxSZSkpLEllfShrZSxSZSkpLF90KVRlKEZlLF90KTtl'@; put 'bHNlIGlmKGtlLm9iamVjdE1vZGV8fFJlJiZSZS5sZW5ndGg+MClpZigic3RyaW5nIiE9dHlwZW9mIFJlJiYha2Uub2JqZWN0TW9kZSYmT2JqZWN0LmdldFByb3RvdHlwZU9mKFJlKSE9PUYucHJvdG90eXBlJiYoUmU9ZnVuY3Rpb24gUihGZSl7cmV0dXJuIEYuZnJvbShGZSl9KFJlKSksSGUp'@; put 'a2UuZW5kRW1pdHRlZD9UZShGZSxuZXcgaWUpOngoRmUsa2UsUmUsITApO2Vsc2UgaWYoa2UuZW5kZWQpVGUoRmUsbmV3IHEpO2Vsc2V7aWYoa2UuZGVzdHJveWVkKXJldHVybiExO2tlLnJlYWRpbmc9ITEsa2UuZGVjb2RlciYmIUllPyhSZT1rZS5kZWNvZGVyLndyaXRlKFJlKSxrZS5vYmpl'@; put 'Y3RNb2RlfHwwIT09UmUubGVuZ3RoP3goRmUsa2UsUmUsITEpOmFlKEZlLGtlKSk6eChGZSxrZSxSZSwhMSl9ZWxzZSBIZXx8KGtlLnJlYWRpbmc9ITEsYWUoRmUsa2UpKTtyZXR1cm4ha2UuZW5kZWQmJihrZS5sZW5ndGg8a2UuaGlnaFdhdGVyTWFya3x8MD09PWtlLmxlbmd0aCl9ZnVuY3Rp'@; put 'b24geChGZSxSZSxJZSxIZSl7UmUuZmxvd2luZyYmMD09PVJlLmxlbmd0aCYmIVJlLnN5bmM/KFJlLmF3YWl0RHJhaW49MCxGZS5lbWl0KCJkYXRhIixJZSkpOihSZS5sZW5ndGgrPVJlLm9iamVjdE1vZGU/MTpJZS5sZW5ndGgsSGU/UmUuYnVmZmVyLnVuc2hpZnQoSWUpOlJlLmJ1ZmZlci5w'@; put 'dXNoKEllKSxSZS5uZWVkUmVhZGFibGUmJm0oRmUpKSxhZShGZSxSZSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KGcucHJvdG90eXBlLCJkZXN0cm95ZWQiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLl9yZWFkYWJsZVN0YXRlJiZ0aGlzLl9yZWFk'@; put 'YWJsZVN0YXRlLmRlc3Ryb3llZH0sc2V0OmZ1bmN0aW9uKFJlKXt0aGlzLl9yZWFkYWJsZVN0YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ9UmUpfX0pLGcucHJvdG90eXBlLmRlc3Ryb3k9Qi5kZXN0cm95LGcucHJvdG90eXBlLl91bmRlc3Ryb3k9Qi51bmRlc3Ryb3ksZy5w'@; put 'cm90b3R5cGUuX2Rlc3Ryb3k9ZnVuY3Rpb24oRmUsUmUpe1JlKEZlKX0sZy5wcm90b3R5cGUucHVzaD1mdW5jdGlvbihGZSxSZSl7dmFyIEhlLEllPXRoaXMuX3JlYWRhYmxlU3RhdGU7cmV0dXJuIEllLm9iamVjdE1vZGU/SGU9ITA6InN0cmluZyI9PXR5cGVvZiBGZSYmKChSZT1SZXx8SWUu'@; put 'ZGVmYXVsdEVuY29kaW5nKSE9PUllLmVuY29kaW5nJiYoRmU9Ri5mcm9tKEZlLFJlKSxSZT0iIiksSGU9ITApLHkodGhpcyxGZSxSZSwhMSxIZSl9LGcucHJvdG90eXBlLnVuc2hpZnQ9ZnVuY3Rpb24oRmUpe3JldHVybiB5KHRoaXMsRmUsbnVsbCwhMCwhMSl9LGcucHJvdG90eXBlLmlzUGF1'@; put 'c2VkPWZ1bmN0aW9uKCl7cmV0dXJuITE9PT10aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmd9LGcucHJvdG90eXBlLnNldEVuY29kaW5nPWZ1bmN0aW9uKEZlKXtzZXx8KHNlPWIoMjU1Mykucyk7dmFyIFJlPW5ldyBzZShGZSk7dGhpcy5fcmVhZGFibGVTdGF0ZS5kZWNvZGVyPVJlLHRoaXMu'@; put 'X3JlYWRhYmxlU3RhdGUuZW5jb2Rpbmc9dGhpcy5fcmVhZGFibGVTdGF0ZS5kZWNvZGVyLmVuY29kaW5nO2Zvcih2YXIgSWU9dGhpcy5fcmVhZGFibGVTdGF0ZS5idWZmZXIuaGVhZCxIZT0iIjtudWxsIT09SWU7KUhlKz1SZS53cml0ZShJZS5kYXRhKSxJZT1JZS5uZXh0O3JldHVybiB0aGlz'@; put 'Ll9yZWFkYWJsZVN0YXRlLmJ1ZmZlci5jbGVhcigpLCIiIT09SGUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuYnVmZmVyLnB1c2goSGUpLHRoaXMuX3JlYWRhYmxlU3RhdGUubGVuZ3RoPUhlLmxlbmd0aCx0aGlzfTt2YXIgVD0xMDczNzQxODI0O2Z1bmN0aW9uIFUoRmUsUmUpe3JldHVybiBGZTw9'@; put 'MHx8MD09PVJlLmxlbmd0aCYmUmUuZW5kZWQ/MDpSZS5vYmplY3RNb2RlPzE6RmUhPUZlP1JlLmZsb3dpbmcmJlJlLmxlbmd0aD9SZS5idWZmZXIuaGVhZC5kYXRhLmxlbmd0aDpSZS5sZW5ndGg6KEZlPlJlLmhpZ2hXYXRlck1hcmsmJihSZS5oaWdoV2F0ZXJNYXJrPWZ1bmN0aW9uIFYoRmUp'@; put 'e3JldHVybiBGZT49VD9GZT1UOihGZS0tLEZlfD1GZT4+PjEsRmV8PUZlPj4+MixGZXw9RmU+Pj40LEZlfD1GZT4+PjgsRmV8PUZlPj4+MTYsRmUrKyksRmV9KEZlKSksRmU8PVJlLmxlbmd0aD9GZTpSZS5lbmRlZD9SZS5sZW5ndGg6KFJlLm5lZWRSZWFkYWJsZT0hMCwwKSl9ZnVuY3Rpb24g'@; put 'bShGZSl7dmFyIFJlPUZlLl9yZWFkYWJsZVN0YXRlO0woImVtaXRSZWFkYWJsZSIsUmUubmVlZFJlYWRhYmxlLFJlLmVtaXR0ZWRSZWFkYWJsZSksUmUubmVlZFJlYWRhYmxlPSExLFJlLmVtaXR0ZWRSZWFkYWJsZXx8KEwoImVtaXRSZWFkYWJsZSIsUmUuZmxvd2luZyksUmUuZW1pdHRlZFJl'@; put 'YWRhYmxlPSEwLEQubmV4dFRpY2soQSxGZSkpfWZ1bmN0aW9uIEEoRmUpe3ZhciBSZT1GZS5fcmVhZGFibGVTdGF0ZTtMKCJlbWl0UmVhZGFibGVfIixSZS5kZXN0cm95ZWQsUmUubGVuZ3RoLFJlLmVuZGVkKSwhUmUuZGVzdHJveWVkJiYoUmUubGVuZ3RofHxSZS5lbmRlZCkmJihGZS5lbWl0'@; put 'KCJyZWFkYWJsZSIpLFJlLmVtaXR0ZWRSZWFkYWJsZT0hMSksUmUubmVlZFJlYWRhYmxlPSFSZS5mbG93aW5nJiYhUmUuZW5kZWQmJlJlLmxlbmd0aDw9UmUuaGlnaFdhdGVyTWFyayx4ZShGZSl9ZnVuY3Rpb24gYWUoRmUsUmUpe1JlLnJlYWRpbmdNb3JlfHwoUmUucmVhZGluZ01vcmU9ITAs'@; put 'RC5uZXh0VGljayhuZSxGZSxSZSkpfWZ1bmN0aW9uIG5lKEZlLFJlKXtmb3IoOyFSZS5yZWFkaW5nJiYhUmUuZW5kZWQmJihSZS5sZW5ndGg8UmUuaGlnaFdhdGVyTWFya3x8UmUuZmxvd2luZyYmMD09PVJlLmxlbmd0aCk7KXt2YXIgSWU9UmUubGVuZ3RoO2lmKEwoIm1heWJlUmVhZE1vcmUg'@; put 'cmVhZCAwIiksRmUucmVhZCgwKSxJZT09PVJlLmxlbmd0aClicmVha31SZS5yZWFkaW5nTW9yZT0hMX1mdW5jdGlvbiB3ZShGZSl7dmFyIFJlPUZlLl9yZWFkYWJsZVN0YXRlO1JlLnJlYWRhYmxlTGlzdGVuaW5nPUZlLmxpc3RlbmVyQ291bnQoInJlYWRhYmxlIik+MCxSZS5yZXN1bWVTY2hl'@; put 'ZHVsZWQmJiFSZS5wYXVzZWQ/UmUuZmxvd2luZz0hMDpGZS5saXN0ZW5lckNvdW50KCJkYXRhIik+MCYmRmUucmVzdW1lKCl9ZnVuY3Rpb24gWmUoRmUpe0woInJlYWRhYmxlIG5leHR0aWNrIHJlYWQgMCIpLEZlLnJlYWQoMCl9ZnVuY3Rpb24gYXQoRmUsUmUpe0woInJlc3VtZSIsUmUucmVh'@; put 'ZGluZyksUmUucmVhZGluZ3x8RmUucmVhZCgwKSxSZS5yZXN1bWVTY2hlZHVsZWQ9ITEsRmUuZW1pdCgicmVzdW1lIikseGUoRmUpLFJlLmZsb3dpbmcmJiFSZS5yZWFkaW5nJiZGZS5yZWFkKDApfWZ1bmN0aW9uIHhlKEZlKXt2YXIgUmU9RmUuX3JlYWRhYmxlU3RhdGU7Zm9yKEwoImZsb3ci'@; put 'LFJlLmZsb3dpbmcpO1JlLmZsb3dpbmcmJm51bGwhPT1GZS5yZWFkKCk7KTt9ZnVuY3Rpb24gdmUoRmUsUmUpe3JldHVybiAwPT09UmUubGVuZ3RoP251bGw6KFJlLm9iamVjdE1vZGU/SWU9UmUuYnVmZmVyLnNoaWZ0KCk6IUZlfHxGZT49UmUubGVuZ3RoPyhJZT1SZS5kZWNvZGVyP1JlLmJ1'@; put 'ZmZlci5qb2luKCIiKToxPT09UmUuYnVmZmVyLmxlbmd0aD9SZS5idWZmZXIuZmlyc3QoKTpSZS5idWZmZXIuY29uY2F0KFJlLmxlbmd0aCksUmUuYnVmZmVyLmNsZWFyKCkpOkllPVJlLmJ1ZmZlci5jb25zdW1lKEZlLFJlLmRlY29kZXIpLEllKTt2YXIgSWV9ZnVuY3Rpb24gcWUoRmUpe3Zh'@; put 'ciBSZT1GZS5fcmVhZGFibGVTdGF0ZTtMKCJlbmRSZWFkYWJsZSIsUmUuZW5kRW1pdHRlZCksUmUuZW5kRW1pdHRlZHx8KFJlLmVuZGVkPSEwLEQubmV4dFRpY2soamUsUmUsRmUpKX1mdW5jdGlvbiBqZShGZSxSZSl7aWYoTCgiZW5kUmVhZGFibGVOVCIsRmUuZW5kRW1pdHRlZCxGZS5sZW5n'@; put 'dGgpLCFGZS5lbmRFbWl0dGVkJiYwPT09RmUubGVuZ3RoJiYoRmUuZW5kRW1pdHRlZD0hMCxSZS5yZWFkYWJsZT0hMSxSZS5lbWl0KCJlbmQiKSxGZS5hdXRvRGVzdHJveSkpe3ZhciBJZT1SZS5fd3JpdGFibGVTdGF0ZTsoIUllfHxJZS5hdXRvRGVzdHJveSYmSWUuZmluaXNoZWQpJiZSZS5k'@; put 'ZXN0cm95KCl9fWZ1bmN0aW9uIEFlKEZlLFJlKXtmb3IodmFyIEllPTAsSGU9RmUubGVuZ3RoO0llPEhlO0llKyspaWYoRmVbSWVdPT09UmUpcmV0dXJuIEllO3JldHVybi0xfWcucHJvdG90eXBlLnJlYWQ9ZnVuY3Rpb24oRmUpe0woInJlYWQiLEZlKSxGZT1wYXJzZUludChGZSwxMCk7dmFy'@; put 'IFJlPXRoaXMuX3JlYWRhYmxlU3RhdGUsSWU9RmU7aWYoMCE9PUZlJiYoUmUuZW1pdHRlZFJlYWRhYmxlPSExKSwwPT09RmUmJlJlLm5lZWRSZWFkYWJsZSYmKCgwIT09UmUuaGlnaFdhdGVyTWFyaz9SZS5sZW5ndGg+PVJlLmhpZ2hXYXRlck1hcms6UmUubGVuZ3RoPjApfHxSZS5lbmRlZCkp'@; put 'cmV0dXJuIEwoInJlYWQ6IGVtaXRSZWFkYWJsZSIsUmUubGVuZ3RoLFJlLmVuZGVkKSwwPT09UmUubGVuZ3RoJiZSZS5lbmRlZD9xZSh0aGlzKTptKHRoaXMpLG51bGw7aWYoMD09PShGZT1VKEZlLFJlKSkmJlJlLmVuZGVkKXJldHVybiAwPT09UmUubGVuZ3RoJiZxZSh0aGlzKSxudWxsO3Zh'@; put 'ciBEZSxIZT1SZS5uZWVkUmVhZGFibGU7cmV0dXJuIEwoIm5lZWQgcmVhZGFibGUiLEhlKSwoMD09PVJlLmxlbmd0aHx8UmUubGVuZ3RoLUZlPFJlLmhpZ2hXYXRlck1hcmspJiZMKCJsZW5ndGggbGVzcyB0aGFuIHdhdGVybWFyayIsSGU9ITApLFJlLmVuZGVkfHxSZS5yZWFkaW5nP0woInJl'@; put 'YWRpbmcgb3IgZW5kZWQiLEhlPSExKTpIZSYmKEwoImRvIHJlYWQiKSxSZS5yZWFkaW5nPSEwLFJlLnN5bmM9ITAsMD09PVJlLmxlbmd0aCYmKFJlLm5lZWRSZWFkYWJsZT0hMCksdGhpcy5fcmVhZChSZS5oaWdoV2F0ZXJNYXJrKSxSZS5zeW5jPSExLFJlLnJlYWRpbmd8fChGZT1VKEllLFJl'@; put 'KSkpLG51bGw9PT0oRGU9RmU+MD92ZShGZSxSZSk6bnVsbCk/KFJlLm5lZWRSZWFkYWJsZT1SZS5sZW5ndGg8PVJlLmhpZ2hXYXRlck1hcmssRmU9MCk6KFJlLmxlbmd0aC09RmUsUmUuYXdhaXREcmFpbj0wKSwwPT09UmUubGVuZ3RoJiYoUmUuZW5kZWR8fChSZS5uZWVkUmVhZGFibGU9ITAp'@; put 'LEllIT09RmUmJlJlLmVuZGVkJiZxZSh0aGlzKSksbnVsbCE9PURlJiZ0aGlzLmVtaXQoImRhdGEiLERlKSxEZX0sZy5wcm90b3R5cGUuX3JlYWQ9ZnVuY3Rpb24oRmUpe1RlKHRoaXMsbmV3IHRlKCJfcmVhZCgpIikpfSxnLnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKEZlLFJlKXt2YXIgSWU9'@; put 'dGhpcyxIZT10aGlzLl9yZWFkYWJsZVN0YXRlO3N3aXRjaChIZS5waXBlc0NvdW50KXtjYXNlIDA6SGUucGlwZXM9RmU7YnJlYWs7Y2FzZSAxOkhlLnBpcGVzPVtIZS5waXBlcyxGZV07YnJlYWs7ZGVmYXVsdDpIZS5waXBlcy5wdXNoKEZlKX1IZS5waXBlc0NvdW50Kz0xLEwoInBpcGUgY291'@; put 'bnQ9JWQgb3B0cz0laiIsSGUucGlwZXNDb3VudCxSZSk7dmFyIGtlPVJlJiYhMT09PVJlLmVuZHx8RmU9PT1ELnN0ZG91dHx8RmU9PT1ELnN0ZGVycj90dDpudDtmdW5jdGlvbiBudCgpe0woIm9uZW5kIiksRmUuZW5kKCl9SGUuZW5kRW1pdHRlZD9ELm5leHRUaWNrKGtlKTpJZS5vbmNlKCJl'@; put 'bmQiLGtlKSxGZS5vbigidW5waXBlIixmdW5jdGlvbiBfdChOZSx1dCl7TCgib251bnBpcGUiKSxOZT09PUllJiZ1dCYmITE9PT11dC5oYXNVbnBpcGVkJiYodXQuaGFzVW5waXBlZD0hMCxmdW5jdGlvbiB5dCgpe0woImNsZWFudXAiKSxGZS5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLHJ0KSxG'@; put 'ZS5yZW1vdmVMaXN0ZW5lcigiZmluaXNoIixLZSksRmUucmVtb3ZlTGlzdGVuZXIoImRyYWluIixKZSksRmUucmVtb3ZlTGlzdGVuZXIoImVycm9yIixJdCksRmUucmVtb3ZlTGlzdGVuZXIoInVucGlwZSIsX3QpLEllLnJlbW92ZUxpc3RlbmVyKCJlbmQiLG50KSxJZS5yZW1vdmVMaXN0ZW5l'@; put 'cigiZW5kIix0dCksSWUucmVtb3ZlTGlzdGVuZXIoImRhdGEiLE10KSxvbj0hMCxIZS5hd2FpdERyYWluJiYoIUZlLl93cml0YWJsZVN0YXRlfHxGZS5fd3JpdGFibGVTdGF0ZS5uZWVkRHJhaW4pJiZKZSgpfSgpKX0pO3ZhciBKZT1mdW5jdGlvbiBsZShGZSl7cmV0dXJuIGZ1bmN0aW9uKCl7'@; put 'dmFyIEllPUZlLl9yZWFkYWJsZVN0YXRlO0woInBpcGVPbkRyYWluIixJZS5hd2FpdERyYWluKSxJZS5hd2FpdERyYWluJiZJZS5hd2FpdERyYWluLS0sMD09PUllLmF3YWl0RHJhaW4mJk4oRmUsImRhdGEiKSYmKEllLmZsb3dpbmc9ITAseGUoRmUpKX19KEllKTtGZS5vbigiZHJhaW4iLEpl'@; put 'KTt2YXIgb249ITE7ZnVuY3Rpb24gTXQoTmUpe0woIm9uZGF0YSIpO3ZhciB1dD1GZS53cml0ZShOZSk7TCgiZGVzdC53cml0ZSIsdXQpLCExPT09dXQmJigoMT09PUhlLnBpcGVzQ291bnQmJkhlLnBpcGVzPT09RmV8fEhlLnBpcGVzQ291bnQ+MSYmLTEhPT1BZShIZS5waXBlcyxGZSkpJiYh'@; put 'b24mJihMKCJmYWxzZSB3cml0ZSByZXNwb25zZSwgcGF1c2UiLEhlLmF3YWl0RHJhaW4pLEhlLmF3YWl0RHJhaW4rKyksSWUucGF1c2UoKSl9ZnVuY3Rpb24gSXQoTmUpe0woIm9uZXJyb3IiLE5lKSx0dCgpLEZlLnJlbW92ZUxpc3RlbmVyKCJlcnJvciIsSXQpLDA9PT1OKEZlLCJlcnJvciIp'@; put 'JiZUZShGZSxOZSl9ZnVuY3Rpb24gcnQoKXtGZS5yZW1vdmVMaXN0ZW5lcigiZmluaXNoIixLZSksdHQoKX1mdW5jdGlvbiBLZSgpe0woIm9uZmluaXNoIiksRmUucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixydCksdHQoKX1mdW5jdGlvbiB0dCgpe0woInVucGlwZSIpLEllLnVucGlwZShGZSl9'@; put 'cmV0dXJuIEllLm9uKCJkYXRhIixNdCksZnVuY3Rpb24gemUoRmUsUmUsSWUpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBGZS5wcmVwZW5kTGlzdGVuZXIpcmV0dXJuIEZlLnByZXBlbmRMaXN0ZW5lcihSZSxJZSk7RmUuX2V2ZW50cyYmRmUuX2V2ZW50c1tSZV0/QXJyYXkuaXNBcnJheShGZS5f'@; put 'ZXZlbnRzW1JlXSk/RmUuX2V2ZW50c1tSZV0udW5zaGlmdChJZSk6RmUuX2V2ZW50c1tSZV09W0llLEZlLl9ldmVudHNbUmVdXTpGZS5vbihSZSxJZSl9KEZlLCJlcnJvciIsSXQpLEZlLm9uY2UoImNsb3NlIixydCksRmUub25jZSgiZmluaXNoIixLZSksRmUuZW1pdCgicGlwZSIsSWUpLEhl'@; put 'LmZsb3dpbmd8fChMKCJwaXBlIHJlc3VtZSIpLEllLnJlc3VtZSgpKSxGZX0sZy5wcm90b3R5cGUudW5waXBlPWZ1bmN0aW9uKEZlKXt2YXIgUmU9dGhpcy5fcmVhZGFibGVTdGF0ZSxJZT17aGFzVW5waXBlZDohMX07aWYoMD09PVJlLnBpcGVzQ291bnQpcmV0dXJuIHRoaXM7aWYoMT09PVJl'@; put 'LnBpcGVzQ291bnQpcmV0dXJuIEZlJiZGZSE9PVJlLnBpcGVzfHwoRmV8fChGZT1SZS5waXBlcyksUmUucGlwZXM9bnVsbCxSZS5waXBlc0NvdW50PTAsUmUuZmxvd2luZz0hMSxGZSYmRmUuZW1pdCgidW5waXBlIix0aGlzLEllKSksdGhpcztpZighRmUpe3ZhciBIZT1SZS5waXBlcyxEZT1S'@; put 'ZS5waXBlc0NvdW50O1JlLnBpcGVzPW51bGwsUmUucGlwZXNDb3VudD0wLFJlLmZsb3dpbmc9ITE7Zm9yKHZhciBrZT0wO2tlPERlO2tlKyspSGVba2VdLmVtaXQoInVucGlwZSIsdGhpcyx7aGFzVW5waXBlZDohMX0pO3JldHVybiB0aGlzfXZhciBfdD1BZShSZS5waXBlcyxGZSk7cmV0dXJu'@; put 'LTE9PT1fdHx8KFJlLnBpcGVzLnNwbGljZShfdCwxKSxSZS5waXBlc0NvdW50LT0xLDE9PT1SZS5waXBlc0NvdW50JiYoUmUucGlwZXM9UmUucGlwZXNbMF0pLEZlLmVtaXQoInVucGlwZSIsdGhpcyxJZSkpLHRoaXN9LGcucHJvdG90eXBlLmFkZExpc3RlbmVyPWcucHJvdG90eXBlLm9uPWZ1'@; put 'bmN0aW9uKEZlLFJlKXt2YXIgSWU9dy5wcm90b3R5cGUub24uY2FsbCh0aGlzLEZlLFJlKSxIZT10aGlzLl9yZWFkYWJsZVN0YXRlO3JldHVybiJkYXRhIj09PUZlPyhIZS5yZWFkYWJsZUxpc3RlbmluZz10aGlzLmxpc3RlbmVyQ291bnQoInJlYWRhYmxlIik+MCwhMSE9PUhlLmZsb3dpbmcm'@; put 'JnRoaXMucmVzdW1lKCkpOiJyZWFkYWJsZSI9PT1GZSYmIUhlLmVuZEVtaXR0ZWQmJiFIZS5yZWFkYWJsZUxpc3RlbmluZyYmKEhlLnJlYWRhYmxlTGlzdGVuaW5nPUhlLm5lZWRSZWFkYWJsZT0hMCxIZS5mbG93aW5nPSExLEhlLmVtaXR0ZWRSZWFkYWJsZT0hMSxMKCJvbiByZWFkYWJsZSIs'@; put 'SGUubGVuZ3RoLEhlLnJlYWRpbmcpLEhlLmxlbmd0aD9tKHRoaXMpOkhlLnJlYWRpbmd8fEQubmV4dFRpY2soWmUsdGhpcykpLEllfSxnLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lcj1mdW5jdGlvbihGZSxSZSl7dmFyIEllPXcucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyLmNhbGwodGhpcyxG'@; put 'ZSxSZSk7cmV0dXJuInJlYWRhYmxlIj09PUZlJiZELm5leHRUaWNrKHdlLHRoaXMpLEllfSxnLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnM9ZnVuY3Rpb24oRmUpe3ZhciBSZT13LnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnMuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybigi'@; put 'cmVhZGFibGUiPT09RmV8fHZvaWQgMD09PUZlKSYmRC5uZXh0VGljayh3ZSx0aGlzKSxSZX0sZy5wcm90b3R5cGUucmVzdW1lPWZ1bmN0aW9uKCl7dmFyIEZlPXRoaXMuX3JlYWRhYmxlU3RhdGU7cmV0dXJuIEZlLmZsb3dpbmd8fChMKCJyZXN1bWUiKSxGZS5mbG93aW5nPSFGZS5yZWFkYWJs'@; put 'ZUxpc3RlbmluZyxmdW5jdGlvbiBRZShGZSxSZSl7UmUucmVzdW1lU2NoZWR1bGVkfHwoUmUucmVzdW1lU2NoZWR1bGVkPSEwLEQubmV4dFRpY2soYXQsRmUsUmUpKX0odGhpcyxGZSkpLEZlLnBhdXNlZD0hMSx0aGlzfSxnLnByb3RvdHlwZS5wYXVzZT1mdW5jdGlvbigpe3JldHVybiBMKCJj'@; put 'YWxsIHBhdXNlIGZsb3dpbmc9JWoiLHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZyksITEhPT10aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmcmJihMKCJwYXVzZSIpLHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZz0hMSx0aGlzLmVtaXQoInBhdXNlIikpLHRoaXMuX3JlYWRhYmxlU3Rh'@; put 'dGUucGF1c2VkPSEwLHRoaXN9LGcucHJvdG90eXBlLndyYXA9ZnVuY3Rpb24oRmUpe3ZhciBSZT10aGlzLEllPXRoaXMuX3JlYWRhYmxlU3RhdGUsSGU9ITE7Zm9yKHZhciBEZSBpbiBGZS5vbigiZW5kIixmdW5jdGlvbigpe2lmKEwoIndyYXBwZWQgZW5kIiksSWUuZGVjb2RlciYmIUllLmVu'@; put 'ZGVkKXt2YXIgX3Q9SWUuZGVjb2Rlci5lbmQoKTtfdCYmX3QubGVuZ3RoJiZSZS5wdXNoKF90KX1SZS5wdXNoKG51bGwpfSksRmUub24oImRhdGEiLGZ1bmN0aW9uKF90KXtMKCJ3cmFwcGVkIGRhdGEiKSxJZS5kZWNvZGVyJiYoX3Q9SWUuZGVjb2Rlci53cml0ZShfdCkpLEllLm9iamVjdE1v'@; put 'ZGUmJm51bGw9PV90fHwhKEllLm9iamVjdE1vZGV8fF90JiZfdC5sZW5ndGgpfHxSZS5wdXNoKF90KXx8KEhlPSEwLEZlLnBhdXNlKCkpfSksRmUpdm9pZCAwPT09dGhpc1tEZV0mJiJmdW5jdGlvbiI9PXR5cGVvZiBGZVtEZV0mJih0aGlzW0RlXT1mdW5jdGlvbihudCl7cmV0dXJuIGZ1bmN0'@; put 'aW9uKCl7cmV0dXJuIEZlW250XS5hcHBseShGZSxhcmd1bWVudHMpfX0oRGUpKTtmb3IodmFyIGtlPTA7a2U8U2UubGVuZ3RoO2tlKyspRmUub24oU2Vba2VdLHRoaXMuZW1pdC5iaW5kKHRoaXMsU2Vba2VdKSk7cmV0dXJuIHRoaXMuX3JlYWQ9ZnVuY3Rpb24oX3Qpe0woIndyYXBwZWQgX3Jl'@; put 'YWQiLF90KSxIZSYmKEhlPSExLEZlLnJlc3VtZSgpKX0sdGhpc30sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGcucHJvdG90eXBlW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT1nZSYmKGdlPWIoNTg1MCkpLGdlKHRoaXMpfSksT2JqZWN0LmRl'@; put 'ZmluZVByb3BlcnR5KGcucHJvdG90eXBlLCJyZWFkYWJsZUhpZ2hXYXRlck1hcmsiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlLmhpZ2hXYXRlck1hcmt9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGcucHJvdG90eXBlLCJyZWFkYWJs'@; put 'ZUJ1ZmZlciIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuYnVmZmVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShnLnByb3RvdHlwZSwicmVhZGFibGVGbG93aW5nIix7ZW51bWVyYWJsZTohMSxn'@; put 'ZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nfSxzZXQ6ZnVuY3Rpb24oUmUpe3RoaXMuX3JlYWRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmc9UmUpfX0pLGcuX2Zyb21MaXN0PXZlLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShnLnBy'@; put 'b3RvdHlwZSwicmVhZGFibGVMZW5ndGgiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlLmxlbmd0aH19KSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoZy5mcm9tPWZ1bmN0aW9uKEZlLFJlKXtyZXR1cm4gdm9pZCAwPT09X2UmJihf'@; put 'ZT1iKDUxNjcpKSxfZShnLEZlLFJlKX0pfSw0NjA1OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO2NlLmV4cG9ydHM9Ujt2YXIgRD1iKDQyODEpLnEsXz1ELkVSUl9NRVRIT0RfTk9UX0lNUExFTUVOVEVELHA9RC5FUlJfTVVMVElQTEVfQ0FMTEJBQ0ssTj1ELkVSUl9UUkFOU0ZPUk1fQUxSRUFE'@; put 'WV9UUkFOU0ZPUk1JTkcsdz1ELkVSUl9UUkFOU0ZPUk1fV0lUSF9MRU5HVEhfMCxGPWIoNjc1Myk7ZnVuY3Rpb24gSChMLFkpe3ZhciBCPXRoaXMuX3RyYW5zZm9ybVN0YXRlO0IudHJhbnNmb3JtaW5nPSExO3ZhciBXPUIud3JpdGVjYjtpZihudWxsPT09VylyZXR1cm4gdGhpcy5lbWl0KCJl'@; put 'cnJvciIsbmV3IHApO0Iud3JpdGVjaHVuaz1udWxsLEIud3JpdGVjYj1udWxsLG51bGwhPVkmJnRoaXMucHVzaChZKSxXKEwpO3ZhciBaPXRoaXMuX3JlYWRhYmxlU3RhdGU7Wi5yZWFkaW5nPSExLChaLm5lZWRSZWFkYWJsZXx8Wi5sZW5ndGg8Wi5oaWdoV2F0ZXJNYXJrKSYmdGhpcy5fcmVh'@; put 'ZChaLmhpZ2hXYXRlck1hcmspfWZ1bmN0aW9uIFIoTCl7aWYoISh0aGlzIGluc3RhbmNlb2YgUikpcmV0dXJuIG5ldyBSKEwpO0YuY2FsbCh0aGlzLEwpLHRoaXMuX3RyYW5zZm9ybVN0YXRlPXthZnRlclRyYW5zZm9ybTpILmJpbmQodGhpcyksbmVlZFRyYW5zZm9ybTohMSx0cmFuc2Zvcm1p'@; put 'bmc6ITEsd3JpdGVjYjpudWxsLHdyaXRlY2h1bms6bnVsbCx3cml0ZWVuY29kaW5nOm51bGx9LHRoaXMuX3JlYWRhYmxlU3RhdGUubmVlZFJlYWRhYmxlPSEwLHRoaXMuX3JlYWRhYmxlU3RhdGUuc3luYz0hMSxMJiYoImZ1bmN0aW9uIj09dHlwZW9mIEwudHJhbnNmb3JtJiYodGhpcy5fdHJh'@; put 'bnNmb3JtPUwudHJhbnNmb3JtKSwiZnVuY3Rpb24iPT10eXBlb2YgTC5mbHVzaCYmKHRoaXMuX2ZsdXNoPUwuZmx1c2gpKSx0aGlzLm9uKCJwcmVmaW5pc2giLGopfWZ1bmN0aW9uIGooKXt2YXIgTD10aGlzOyJmdW5jdGlvbiIhPXR5cGVvZiB0aGlzLl9mbHVzaHx8dGhpcy5fcmVhZGFibGVT'@; put 'dGF0ZS5kZXN0cm95ZWQ/UCh0aGlzLG51bGwsbnVsbCk6dGhpcy5fZmx1c2goZnVuY3Rpb24oWSxCKXtQKEwsWSxCKX0pfWZ1bmN0aW9uIFAoTCxZLEIpe2lmKFkpcmV0dXJuIEwuZW1pdCgiZXJyb3IiLFkpO2lmKG51bGwhPUImJkwucHVzaChCKSxMLl93cml0YWJsZVN0YXRlLmxlbmd0aCl0'@; put 'aHJvdyBuZXcgdztpZihMLl90cmFuc2Zvcm1TdGF0ZS50cmFuc2Zvcm1pbmcpdGhyb3cgbmV3IE47cmV0dXJuIEwucHVzaChudWxsKX1iKDU3MTcpKFIsRiksUi5wcm90b3R5cGUucHVzaD1mdW5jdGlvbihMLFkpe3JldHVybiB0aGlzLl90cmFuc2Zvcm1TdGF0ZS5uZWVkVHJhbnNmb3JtPSEx'@; put 'LEYucHJvdG90eXBlLnB1c2guY2FsbCh0aGlzLEwsWSl9LFIucHJvdG90eXBlLl90cmFuc2Zvcm09ZnVuY3Rpb24oTCxZLEIpe0IobmV3IF8oIl90cmFuc2Zvcm0oKSIpKX0sUi5wcm90b3R5cGUuX3dyaXRlPWZ1bmN0aW9uKEwsWSxCKXt2YXIgVz10aGlzLl90cmFuc2Zvcm1TdGF0ZTtpZihX'@; put 'LndyaXRlY2I9QixXLndyaXRlY2h1bms9TCxXLndyaXRlZW5jb2Rpbmc9WSwhVy50cmFuc2Zvcm1pbmcpe3ZhciBaPXRoaXMuX3JlYWRhYmxlU3RhdGU7KFcubmVlZFRyYW5zZm9ybXx8Wi5uZWVkUmVhZGFibGV8fFoubGVuZ3RoPFouaGlnaFdhdGVyTWFyaykmJnRoaXMuX3JlYWQoWi5oaWdo'@; put 'V2F0ZXJNYXJrKX19LFIucHJvdG90eXBlLl9yZWFkPWZ1bmN0aW9uKEwpe3ZhciBZPXRoaXMuX3RyYW5zZm9ybVN0YXRlO251bGw9PT1ZLndyaXRlY2h1bmt8fFkudHJhbnNmb3JtaW5nP1kubmVlZFRyYW5zZm9ybT0hMDooWS50cmFuc2Zvcm1pbmc9ITAsdGhpcy5fdHJhbnNmb3JtKFkud3Jp'@; put 'dGVjaHVuayxZLndyaXRlZW5jb2RpbmcsWS5hZnRlclRyYW5zZm9ybSkpfSxSLnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbihMLFkpe0YucHJvdG90eXBlLl9kZXN0cm95LmNhbGwodGhpcyxMLGZ1bmN0aW9uKEIpe1koQil9KX19LDQyMjk6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFy'@; put 'IE4sRD1iKDQxNTUpO2Z1bmN0aW9uIHAoeGUpe3ZhciB2ZT10aGlzO3RoaXMubmV4dD1udWxsLHRoaXMuZW50cnk9bnVsbCx0aGlzLmZpbmlzaD1mdW5jdGlvbigpeyFmdW5jdGlvbiBhdCh4ZSx2ZSxxZSl7dmFyIGplPXhlLmVudHJ5O2Zvcih4ZS5lbnRyeT1udWxsO2plOyl7dmFyIEFlPWpl'@; put 'LmNhbGxiYWNrO3ZlLnBlbmRpbmdjYi0tLEFlKHFlKSxqZT1qZS5uZXh0fXZlLmNvcmtlZFJlcXVlc3RzRnJlZS5uZXh0PXhlfSh2ZSx4ZSl9fWNlLmV4cG9ydHM9eix6LldyaXRhYmxlU3RhdGU9U2U7dmFyIHplLHc9e2RlcHJlY2F0ZTpiKDQ5MjcpfSxGPWIoMjUwMyksSD1iKDg3NjQpLkJ1'@; put 'ZmZlcixSPSh0eXBlb2YgYi5nPCJ1Ij9iLmc6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93OnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnt9KS5VaW50OEFycmF5fHxmdW5jdGlvbigpe30sTD1iKDExOTUpLEI9YigyNDU3KS5nZXRIaWdoV2F0ZXJNYXJrLFc9Yig0MjgxKS5xLFo9Vy5FUlJfSU5WQUxJ'@; put 'RF9BUkdfVFlQRSxYPVcuRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5URUQsUT1XLkVSUl9NVUxUSVBMRV9DQUxMQkFDSyxxPVcuRVJSX1NUUkVBTV9DQU5OT1RfUElQRSx0ZT1XLkVSUl9TVFJFQU1fREVTVFJPWUVELGllPVcuRVJSX1NUUkVBTV9OVUxMX1ZBTFVFUyxzZT1XLkVSUl9TVFJFQU1f'@; put 'V1JJVEVfQUZURVJfRU5ELGdlPVcuRVJSX1VOS05PV05fRU5DT0RJTkcsX2U9TC5lcnJvck9yRGVzdHJveTtmdW5jdGlvbiBUZSgpe31mdW5jdGlvbiBTZSh4ZSx2ZSxxZSl7Tj1OfHxiKDY3NTMpLCJib29sZWFuIiE9dHlwZW9mIHFlJiYocWU9dmUgaW5zdGFuY2VvZiBOKSx0aGlzLm9iamVj'@; put 'dE1vZGU9ISEoeGU9eGV8fHt9KS5vYmplY3RNb2RlLHFlJiYodGhpcy5vYmplY3RNb2RlPXRoaXMub2JqZWN0TW9kZXx8ISF4ZS53cml0YWJsZU9iamVjdE1vZGUpLHRoaXMuaGlnaFdhdGVyTWFyaz1CKHRoaXMseGUsIndyaXRhYmxlSGlnaFdhdGVyTWFyayIscWUpLHRoaXMuZmluYWxDYWxs'@; put 'ZWQ9ITEsdGhpcy5uZWVkRHJhaW49ITEsdGhpcy5lbmRpbmc9ITEsdGhpcy5lbmRlZD0hMSx0aGlzLmZpbmlzaGVkPSExLHRoaXMuZGVzdHJveWVkPSExLHRoaXMuZGVjb2RlU3RyaW5ncz0hKCExPT09eGUuZGVjb2RlU3RyaW5ncyksdGhpcy5kZWZhdWx0RW5jb2Rpbmc9eGUuZGVmYXVsdEVu'@; put 'Y29kaW5nfHwidXRmOCIsdGhpcy5sZW5ndGg9MCx0aGlzLndyaXRpbmc9ITEsdGhpcy5jb3JrZWQ9MCx0aGlzLnN5bmM9ITAsdGhpcy5idWZmZXJQcm9jZXNzaW5nPSExLHRoaXMub253cml0ZT1mdW5jdGlvbihBZSl7IWZ1bmN0aW9uIEUoeGUsdmUpe3ZhciBxZT14ZS5fd3JpdGFibGVTdGF0'@; put 'ZSxqZT1xZS5zeW5jLEFlPXFlLndyaXRlY2I7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIEFlKXRocm93IG5ldyBRO2lmKGZ1bmN0aW9uIFUoeGUpe3hlLndyaXRpbmc9ITEseGUud3JpdGVjYj1udWxsLHhlLmxlbmd0aC09eGUud3JpdGVsZW4seGUud3JpdGVsZW49MH0ocWUpLHZlKSFmdW5jdGlv'@; put 'biBWKHhlLHZlLHFlLGplLEFlKXstLXZlLnBlbmRpbmdjYixxZT8oRC5uZXh0VGljayhBZSxqZSksRC5uZXh0VGljayhaZSx4ZSx2ZSkseGUuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPSEwLF9lKHhlLGplKSk6KEFlKGplKSx4ZS5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAs'@; put 'X2UoeGUsamUpLFplKHhlLHZlKSl9KHhlLHFlLGplLHZlLEFlKTtlbHNle3ZhciBGZT1uZShxZSl8fHhlLmRlc3Ryb3llZDshRmUmJiFxZS5jb3JrZWQmJiFxZS5idWZmZXJQcm9jZXNzaW5nJiZxZS5idWZmZXJlZFJlcXVlc3QmJmFlKHhlLHFlKSxqZT9ELm5leHRUaWNrKG0seGUscWUsRmUs'@; put 'QWUpOm0oeGUscWUsRmUsQWUpfX0odmUsQWUpfSx0aGlzLndyaXRlY2I9bnVsbCx0aGlzLndyaXRlbGVuPTAsdGhpcy5idWZmZXJlZFJlcXVlc3Q9bnVsbCx0aGlzLmxhc3RCdWZmZXJlZFJlcXVlc3Q9bnVsbCx0aGlzLnBlbmRpbmdjYj0wLHRoaXMucHJlZmluaXNoZWQ9ITEsdGhpcy5lcnJv'@; put 'ckVtaXR0ZWQ9ITEsdGhpcy5lbWl0Q2xvc2U9ITEhPT14ZS5lbWl0Q2xvc2UsdGhpcy5hdXRvRGVzdHJveT0hIXhlLmF1dG9EZXN0cm95LHRoaXMuYnVmZmVyZWRSZXF1ZXN0Q291bnQ9MCx0aGlzLmNvcmtlZFJlcXVlc3RzRnJlZT1uZXcgcCh0aGlzKX1mdW5jdGlvbiB6KHhlKXt2YXIgdmU9'@; put 'dGhpcyBpbnN0YW5jZW9mKE49Tnx8Yig2NzUzKSk7aWYoIXZlJiYhemUuY2FsbCh6LHRoaXMpKXJldHVybiBuZXcgeih4ZSk7dGhpcy5fd3JpdGFibGVTdGF0ZT1uZXcgU2UoeGUsdGhpcyx2ZSksdGhpcy53cml0YWJsZT0hMCx4ZSYmKCJmdW5jdGlvbiI9PXR5cGVvZiB4ZS53cml0ZSYmKHRo'@; put 'aXMuX3dyaXRlPXhlLndyaXRlKSwiZnVuY3Rpb24iPT10eXBlb2YgeGUud3JpdGV2JiYodGhpcy5fd3JpdGV2PXhlLndyaXRldiksImZ1bmN0aW9uIj09dHlwZW9mIHhlLmRlc3Ryb3kmJih0aGlzLl9kZXN0cm95PXhlLmRlc3Ryb3kpLCJmdW5jdGlvbiI9PXR5cGVvZiB4ZS5maW5hbCYmKHRo'@; put 'aXMuX2ZpbmFsPXhlLmZpbmFsKSksRi5jYWxsKHRoaXMpfWZ1bmN0aW9uIFQoeGUsdmUscWUsamUsQWUsRmUsUmUpe3ZlLndyaXRlbGVuPWplLHZlLndyaXRlY2I9UmUsdmUud3JpdGluZz0hMCx2ZS5zeW5jPSEwLHZlLmRlc3Ryb3llZD92ZS5vbndyaXRlKG5ldyB0ZSgid3JpdGUiKSk6cWU/'@; put 'eGUuX3dyaXRldihBZSx2ZS5vbndyaXRlKTp4ZS5fd3JpdGUoQWUsRmUsdmUub253cml0ZSksdmUuc3luYz0hMX1mdW5jdGlvbiBtKHhlLHZlLHFlLGplKXtxZXx8ZnVuY3Rpb24gQSh4ZSx2ZSl7MD09PXZlLmxlbmd0aCYmdmUubmVlZERyYWluJiYodmUubmVlZERyYWluPSExLHhlLmVtaXQo'@; put 'ImRyYWluIikpfSh4ZSx2ZSksdmUucGVuZGluZ2NiLS0samUoKSxaZSh4ZSx2ZSl9ZnVuY3Rpb24gYWUoeGUsdmUpe3ZlLmJ1ZmZlclByb2Nlc3Npbmc9ITA7dmFyIHFlPXZlLmJ1ZmZlcmVkUmVxdWVzdDtpZih4ZS5fd3JpdGV2JiZxZSYmcWUubmV4dCl7dmFyIEFlPW5ldyBBcnJheSh2ZS5i'@; put 'dWZmZXJlZFJlcXVlc3RDb3VudCksRmU9dmUuY29ya2VkUmVxdWVzdHNGcmVlO0ZlLmVudHJ5PXFlO2Zvcih2YXIgUmU9MCxJZT0hMDtxZTspQWVbUmVdPXFlLHFlLmlzQnVmfHwoSWU9ITEpLHFlPXFlLm5leHQsUmUrPTE7QWUuYWxsQnVmZmVycz1JZSxUKHhlLHZlLCEwLHZlLmxlbmd0aCxB'@; put 'ZSwiIixGZS5maW5pc2gpLHZlLnBlbmRpbmdjYisrLHZlLmxhc3RCdWZmZXJlZFJlcXVlc3Q9bnVsbCxGZS5uZXh0Pyh2ZS5jb3JrZWRSZXF1ZXN0c0ZyZWU9RmUubmV4dCxGZS5uZXh0PW51bGwpOnZlLmNvcmtlZFJlcXVlc3RzRnJlZT1uZXcgcCh2ZSksdmUuYnVmZmVyZWRSZXF1ZXN0Q291'@; put 'bnQ9MH1lbHNle2Zvcig7cWU7KXt2YXIgSGU9cWUuY2h1bms7aWYoVCh4ZSx2ZSwhMSx2ZS5vYmplY3RNb2RlPzE6SGUubGVuZ3RoLEhlLHFlLmVuY29kaW5nLHFlLmNhbGxiYWNrKSxxZT1xZS5uZXh0LHZlLmJ1ZmZlcmVkUmVxdWVzdENvdW50LS0sdmUud3JpdGluZylicmVha31udWxsPT09'@; put 'cWUmJih2ZS5sYXN0QnVmZmVyZWRSZXF1ZXN0PW51bGwpfXZlLmJ1ZmZlcmVkUmVxdWVzdD1xZSx2ZS5idWZmZXJQcm9jZXNzaW5nPSExfWZ1bmN0aW9uIG5lKHhlKXtyZXR1cm4geGUuZW5kaW5nJiYwPT09eGUubGVuZ3RoJiZudWxsPT09eGUuYnVmZmVyZWRSZXF1ZXN0JiYheGUuZmluaXNo'@; put 'ZWQmJiF4ZS53cml0aW5nfWZ1bmN0aW9uIGxlKHhlLHZlKXt4ZS5fZmluYWwoZnVuY3Rpb24ocWUpe3ZlLnBlbmRpbmdjYi0tLHFlJiZfZSh4ZSxxZSksdmUucHJlZmluaXNoZWQ9ITAseGUuZW1pdCgicHJlZmluaXNoIiksWmUoeGUsdmUpfSl9ZnVuY3Rpb24gWmUoeGUsdmUpe3ZhciBxZT1u'@; put 'ZSh2ZSk7aWYocWUmJihmdW5jdGlvbiB3ZSh4ZSx2ZSl7IXZlLnByZWZpbmlzaGVkJiYhdmUuZmluYWxDYWxsZWQmJigiZnVuY3Rpb24iIT10eXBlb2YgeGUuX2ZpbmFsfHx2ZS5kZXN0cm95ZWQ/KHZlLnByZWZpbmlzaGVkPSEwLHhlLmVtaXQoInByZWZpbmlzaCIpKToodmUucGVuZGluZ2Ni'@; put 'KyssdmUuZmluYWxDYWxsZWQ9ITAsRC5uZXh0VGljayhsZSx4ZSx2ZSkpKX0oeGUsdmUpLDA9PT12ZS5wZW5kaW5nY2ImJih2ZS5maW5pc2hlZD0hMCx4ZS5lbWl0KCJmaW5pc2giKSx2ZS5hdXRvRGVzdHJveSkpKXt2YXIgamU9eGUuX3JlYWRhYmxlU3RhdGU7KCFqZXx8amUuYXV0b0Rlc3Ry'@; put 'b3kmJmplLmVuZEVtaXR0ZWQpJiZ4ZS5kZXN0cm95KCl9cmV0dXJuIHFlfWIoNTcxNykoeixGKSxTZS5wcm90b3R5cGUuZ2V0QnVmZmVyPWZ1bmN0aW9uKCl7Zm9yKHZhciB2ZT10aGlzLmJ1ZmZlcmVkUmVxdWVzdCxxZT1bXTt2ZTspcWUucHVzaCh2ZSksdmU9dmUubmV4dDtyZXR1cm4gcWV9'@; put 'LGZ1bmN0aW9uKCl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShTZS5wcm90b3R5cGUsImJ1ZmZlciIse2dldDp3LmRlcHJlY2F0ZShmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldEJ1ZmZlcigpfSwiX3dyaXRhYmxlU3RhdGUuYnVmZmVyIGlzIGRlcHJlY2F0ZWQuIFVzZSBfd3JpdGFibGVT'@; put 'dGF0ZS5nZXRCdWZmZXIgaW5zdGVhZC4iLCJERVAwMDAzIil9KX1jYXRjaHt9fSgpLCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5oYXNJbnN0YW5jZSYmImZ1bmN0aW9uIj09dHlwZW9mIEZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdPyh6ZT1GdW5jdGlv'@; put 'bi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXSxPYmplY3QuZGVmaW5lUHJvcGVydHkoeixTeW1ib2wuaGFzSW5zdGFuY2Use3ZhbHVlOmZ1bmN0aW9uKHZlKXtyZXR1cm4hIXplLmNhbGwodGhpcyx2ZSl8fHRoaXM9PT16JiZ2ZSYmdmUuX3dyaXRhYmxlU3RhdGUgaW5zdGFuY2VvZiBT'@; put 'ZX19KSk6emU9ZnVuY3Rpb24odmUpe3JldHVybiB2ZSBpbnN0YW5jZW9mIHRoaXN9LHoucHJvdG90eXBlLnBpcGU9ZnVuY3Rpb24oKXtfZSh0aGlzLG5ldyBxKX0sei5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oeGUsdmUscWUpe3ZhciBqZT10aGlzLl93cml0YWJsZVN0YXRlLEFlPSExLEZl'@; put 'PSFqZS5vYmplY3RNb2RlJiZmdW5jdGlvbiBQKHhlKXtyZXR1cm4gSC5pc0J1ZmZlcih4ZSl8fHhlIGluc3RhbmNlb2YgUn0oeGUpO3JldHVybiBGZSYmIUguaXNCdWZmZXIoeGUpJiYoeGU9ZnVuY3Rpb24gaih4ZSl7cmV0dXJuIEguZnJvbSh4ZSl9KHhlKSksImZ1bmN0aW9uIj09dHlwZW9m'@; put 'IHZlJiYocWU9dmUsdmU9bnVsbCksRmU/dmU9ImJ1ZmZlciI6dmV8fCh2ZT1qZS5kZWZhdWx0RW5jb2RpbmcpLCJmdW5jdGlvbiIhPXR5cGVvZiBxZSYmKHFlPVRlKSxqZS5lbmRpbmc/ZnVuY3Rpb24gZyh4ZSx2ZSl7dmFyIHFlPW5ldyBzZTtfZSh4ZSxxZSksRC5uZXh0VGljayh2ZSxxZSl9'@; put 'KHRoaXMscWUpOihGZXx8ZnVuY3Rpb24geSh4ZSx2ZSxxZSxqZSl7dmFyIEFlO3JldHVybiBudWxsPT09cWU/QWU9bmV3IGllOiJzdHJpbmciIT10eXBlb2YgcWUmJiF2ZS5vYmplY3RNb2RlJiYoQWU9bmV3IFooImNodW5rIixbInN0cmluZyIsIkJ1ZmZlciJdLHFlKSksIUFlfHwoX2UoeGUs'@; put 'QWUpLEQubmV4dFRpY2soamUsQWUpLCExKX0odGhpcyxqZSx4ZSxxZSkpJiYoamUucGVuZGluZ2NiKyssQWU9ZnVuY3Rpb24gQyh4ZSx2ZSxxZSxqZSxBZSxGZSl7aWYoIXFlKXt2YXIgUmU9ZnVuY3Rpb24geCh4ZSx2ZSxxZSl7cmV0dXJuIXhlLm9iamVjdE1vZGUmJiExIT09eGUuZGVjb2Rl'@; put 'U3RyaW5ncyYmInN0cmluZyI9PXR5cGVvZiB2ZSYmKHZlPUguZnJvbSh2ZSxxZSkpLHZlfSh2ZSxqZSxBZSk7amUhPT1SZSYmKHFlPSEwLEFlPSJidWZmZXIiLGplPVJlKX12YXIgSWU9dmUub2JqZWN0TW9kZT8xOmplLmxlbmd0aDt2ZS5sZW5ndGgrPUllO3ZhciBIZT12ZS5sZW5ndGg8dmUu'@; put 'aGlnaFdhdGVyTWFyaztpZihIZXx8KHZlLm5lZWREcmFpbj0hMCksdmUud3JpdGluZ3x8dmUuY29ya2VkKXt2YXIgRGU9dmUubGFzdEJ1ZmZlcmVkUmVxdWVzdDt2ZS5sYXN0QnVmZmVyZWRSZXF1ZXN0PXtjaHVuazpqZSxlbmNvZGluZzpBZSxpc0J1ZjpxZSxjYWxsYmFjazpGZSxuZXh0Om51'@; put 'bGx9LERlP0RlLm5leHQ9dmUubGFzdEJ1ZmZlcmVkUmVxdWVzdDp2ZS5idWZmZXJlZFJlcXVlc3Q9dmUubGFzdEJ1ZmZlcmVkUmVxdWVzdCx2ZS5idWZmZXJlZFJlcXVlc3RDb3VudCs9MX1lbHNlIFQoeGUsdmUsITEsSWUsamUsQWUsRmUpO3JldHVybiBIZX0odGhpcyxqZSxGZSx4ZSx2ZSxx'@; put 'ZSkpLEFlfSx6LnByb3RvdHlwZS5jb3JrPWZ1bmN0aW9uKCl7dGhpcy5fd3JpdGFibGVTdGF0ZS5jb3JrZWQrK30sei5wcm90b3R5cGUudW5jb3JrPWZ1bmN0aW9uKCl7dmFyIHhlPXRoaXMuX3dyaXRhYmxlU3RhdGU7eGUuY29ya2VkJiYoeGUuY29ya2VkLS0sIXhlLndyaXRpbmcmJiF4ZS5j'@; put 'b3JrZWQmJiF4ZS5idWZmZXJQcm9jZXNzaW5nJiZ4ZS5idWZmZXJlZFJlcXVlc3QmJmFlKHRoaXMseGUpKX0sei5wcm90b3R5cGUuc2V0RGVmYXVsdEVuY29kaW5nPWZ1bmN0aW9uKHZlKXtpZigic3RyaW5nIj09dHlwZW9mIHZlJiYodmU9dmUudG9Mb3dlckNhc2UoKSksIShbImhleCIsInV0'@; put 'ZjgiLCJ1dGYtOCIsImFzY2lpIiwiYmluYXJ5IiwiYmFzZTY0IiwidWNzMiIsInVjcy0yIiwidXRmMTZsZSIsInV0Zi0xNmxlIiwicmF3Il0uaW5kZXhPZigodmUrIiIpLnRvTG93ZXJDYXNlKCkpPi0xKSl0aHJvdyBuZXcgZ2UodmUpO3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmRlZmF1'@; put 'bHRFbmNvZGluZz12ZSx0aGlzfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoei5wcm90b3R5cGUsIndyaXRhYmxlQnVmZmVyIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5nZXRCdWZmZXIoKX19KSxP'@; put 'YmplY3QuZGVmaW5lUHJvcGVydHkoei5wcm90b3R5cGUsIndyaXRhYmxlSGlnaFdhdGVyTWFyayIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUuaGlnaFdhdGVyTWFya319KSx6LnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24oeGUsdmUs'@; put 'cWUpe3FlKG5ldyBYKCJfd3JpdGUoKSIpKX0sei5wcm90b3R5cGUuX3dyaXRldj1udWxsLHoucHJvdG90eXBlLmVuZD1mdW5jdGlvbih4ZSx2ZSxxZSl7dmFyIGplPXRoaXMuX3dyaXRhYmxlU3RhdGU7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHhlPyhxZT14ZSx4ZT1udWxsLHZlPW51bGwp'@; put 'OiJmdW5jdGlvbiI9PXR5cGVvZiB2ZSYmKHFlPXZlLHZlPW51bGwpLG51bGwhPXhlJiZ0aGlzLndyaXRlKHhlLHZlKSxqZS5jb3JrZWQmJihqZS5jb3JrZWQ9MSx0aGlzLnVuY29yaygpKSxqZS5lbmRpbmd8fGZ1bmN0aW9uIFFlKHhlLHZlLHFlKXt2ZS5lbmRpbmc9ITAsWmUoeGUsdmUpLHFl'@; put 'JiYodmUuZmluaXNoZWQ/RC5uZXh0VGljayhxZSk6eGUub25jZSgiZmluaXNoIixxZSkpLHZlLmVuZGVkPSEwLHhlLndyaXRhYmxlPSExfSh0aGlzLGplLHFlKSx0aGlzfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoei5wcm90b3R5cGUsIndyaXRhYmxlTGVuZ3RoIix7ZW51bWVyYWJsZTohMSxn'@; put 'ZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5sZW5ndGh9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHoucHJvdG90eXBlLCJkZXN0cm95ZWQiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLl93cml0YWJsZVN0YXRlJiZ0'@; put 'aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZH0sc2V0OmZ1bmN0aW9uKHZlKXt0aGlzLl93cml0YWJsZVN0YXRlJiYodGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9dmUpfX0pLHoucHJvdG90eXBlLmRlc3Ryb3k9TC5kZXN0cm95LHoucHJvdG90eXBlLl91bmRlc3Ryb3k9TC51bmRl'@; put 'c3Ryb3ksei5wcm90b3R5cGUuX2Rlc3Ryb3k9ZnVuY3Rpb24oeGUsdmUpe3ZlKHhlKX19LDU4NTA6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIF8sRD1iKDQxNTUpO2Z1bmN0aW9uIHAoc2UsZ2UsX2Upe3JldHVybiBnZT1mdW5jdGlvbiBOKHNlKXt2YXIgZ2U9ZnVuY3Rpb24gdyhzZSxn'@; put 'ZSl7aWYoIm9iamVjdCIhPXR5cGVvZiBzZXx8bnVsbD09PXNlKXJldHVybiBzZTt2YXIgX2U9c2VbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1fZSl7dmFyIFRlPV9lLmNhbGwoc2UsZ2V8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBUZSlyZXR1cm4gVGU7dGhyb3cg'@; put 'bmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1nZT9TdHJpbmc6TnVtYmVyKShzZSl9KHNlLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGdlP2dlOlN0cmluZyhnZSl9KGdlKSxnZSBp'@; put 'biBzZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoc2UsZ2Use3ZhbHVlOl9lLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6c2VbZ2VdPV9lLHNlfXZhciBGPWIoODYxMCksSD1TeW1ib2woImxhc3RSZXNvbHZlIiksUj1TeW1ib2woImxhc3RSZWplY3QiKSxqPVN5'@; put 'bWJvbCgiZXJyb3IiKSxQPVN5bWJvbCgiZW5kZWQiKSxMPVN5bWJvbCgibGFzdFByb21pc2UiKSxZPVN5bWJvbCgiaGFuZGxlUHJvbWlzZSIpLEI9U3ltYm9sKCJzdHJlYW0iKTtmdW5jdGlvbiBXKHNlLGdlKXtyZXR1cm57dmFsdWU6c2UsZG9uZTpnZX19ZnVuY3Rpb24gWihzZSl7dmFyIGdl'@; put 'PXNlW0hdO2lmKG51bGwhPT1nZSl7dmFyIF9lPXNlW0JdLnJlYWQoKTtudWxsIT09X2UmJihzZVtMXT1udWxsLHNlW0hdPW51bGwsc2VbUl09bnVsbCxnZShXKF9lLCExKSkpfX1mdW5jdGlvbiBYKHNlKXtELm5leHRUaWNrKFosc2UpfXZhciBxPU9iamVjdC5nZXRQcm90b3R5cGVPZihmdW5j'@; put 'dGlvbigpe30pLHRlPU9iamVjdC5zZXRQcm90b3R5cGVPZigocChfPXtnZXQgc3RyZWFtKCl7cmV0dXJuIHRoaXNbQl19LG5leHQ6ZnVuY3Rpb24oKXt2YXIgZ2U9dGhpcyxfZT10aGlzW2pdO2lmKG51bGwhPT1fZSlyZXR1cm4gUHJvbWlzZS5yZWplY3QoX2UpO2lmKHRoaXNbUF0pcmV0dXJu'@; put 'IFByb21pc2UucmVzb2x2ZShXKHZvaWQgMCwhMCkpO2lmKHRoaXNbQl0uZGVzdHJveWVkKXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih6LGcpe0QubmV4dFRpY2soZnVuY3Rpb24oKXtnZVtqXT9nKGdlW2pdKTp6KFcodm9pZCAwLCEwKSl9KX0pO3ZhciBTZSxUZT10aGlzW0xdO2lmKFRl'@; put 'KVNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uIFEoc2UsZ2Upe3JldHVybiBmdW5jdGlvbihfZSxUZSl7c2UudGhlbihmdW5jdGlvbigpe2dlW1BdP19lKFcodm9pZCAwLCEwKSk6Z2VbWV0oX2UsVGUpfSxUZSl9fShUZSx0aGlzKSk7ZWxzZXt2YXIgemU9dGhpc1tCXS5yZWFkKCk7aWYobnVsbCE9'@; put 'PXplKXJldHVybiBQcm9taXNlLnJlc29sdmUoVyh6ZSwhMSkpO1NlPW5ldyBQcm9taXNlKHRoaXNbWV0pfXJldHVybiB0aGlzW0xdPVNlLFNlfX0sU3ltYm9sLmFzeW5jSXRlcmF0b3IsZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLHAoXywicmV0dXJuIixmdW5jdGlvbigpe3ZhciBnZT10aGlz'@; put 'O3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihfZSxUZSl7Z2VbQl0uZGVzdHJveShudWxsLGZ1bmN0aW9uKFNlKXtTZT9UZShTZSk6X2UoVyh2b2lkIDAsITApKX0pfSl9KSxfKSxxKTtjZS5leHBvcnRzPWZ1bmN0aW9uKGdlKXt2YXIgX2UsVGU9T2JqZWN0LmNyZWF0ZSh0ZSwocChfZT17'@; put 'fSxCLHt2YWx1ZTpnZSx3cml0YWJsZTohMH0pLHAoX2UsSCx7dmFsdWU6bnVsbCx3cml0YWJsZTohMH0pLHAoX2UsUix7dmFsdWU6bnVsbCx3cml0YWJsZTohMH0pLHAoX2Usaix7dmFsdWU6bnVsbCx3cml0YWJsZTohMH0pLHAoX2UsUCx7dmFsdWU6Z2UuX3JlYWRhYmxlU3RhdGUuZW5kRW1p'@; put 'dHRlZCx3cml0YWJsZTohMH0pLHAoX2UsWSx7dmFsdWU6ZnVuY3Rpb24oemUseil7dmFyIGc9VGVbQl0ucmVhZCgpO2c/KFRlW0xdPW51bGwsVGVbSF09bnVsbCxUZVtSXT1udWxsLHplKFcoZywhMSkpKTooVGVbSF09emUsVGVbUl09eil9LHdyaXRhYmxlOiEwfSksX2UpKTtyZXR1cm4gVGVb'@; put 'TF09bnVsbCxGKGdlLGZ1bmN0aW9uKFNlKXtpZihTZSYmIkVSUl9TVFJFQU1fUFJFTUFUVVJFX0NMT1NFIiE9PVNlLmNvZGUpe3ZhciB6ZT1UZVtSXTtyZXR1cm4gbnVsbCE9PXplJiYoVGVbTF09bnVsbCxUZVtIXT1udWxsLFRlW1JdPW51bGwsemUoU2UpKSx2b2lkKFRlW2pdPVNlKX12YXIg'@; put 'ej1UZVtIXTtudWxsIT09eiYmKFRlW0xdPW51bGwsVGVbSF09bnVsbCxUZVtSXT1udWxsLHooVyh2b2lkIDAsITApKSksVGVbUF09ITB9KSxnZS5vbigicmVhZGFibGUiLFguYmluZChudWxsLFRlKSksVGV9fSw3MzI3OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEQoWixYKXt2'@; put 'YXIgUT1PYmplY3Qua2V5cyhaKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKFopO1gmJihxPXEuZmlsdGVyKGZ1bmN0aW9uKHRlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihaLHRlKS5l'@; put 'bnVtZXJhYmxlfSkpLFEucHVzaC5hcHBseShRLHEpfXJldHVybiBRfWZ1bmN0aW9uIF8oWil7Zm9yKHZhciBYPTE7WDxhcmd1bWVudHMubGVuZ3RoO1grKyl7dmFyIFE9bnVsbCE9YXJndW1lbnRzW1hdP2FyZ3VtZW50c1tYXTp7fTtYJTI/RChPYmplY3QoUSksITApLmZvckVhY2goZnVuY3Rp'@; put 'b24ocSl7cChaLHEsUVtxXSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhaLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKFEpKTpEKE9iamVjdChRKSkuZm9yRWFjaChmdW5jdGlvbihxKXtPYmplY3QuZGVmaW5lUHJv'@; put 'cGVydHkoWixxLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUSxxKSl9KX1yZXR1cm4gWn1mdW5jdGlvbiBwKFosWCxRKXtyZXR1cm4oWD1IKFgpKWluIFo/T2JqZWN0LmRlZmluZVByb3BlcnR5KFosWCx7dmFsdWU6USxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0'@; put 'YWJsZTohMH0pOlpbWF09USxafWZ1bmN0aW9uIHcoWixYKXtmb3IodmFyIFE9MDtRPFgubGVuZ3RoO1ErKyl7dmFyIHE9WFtRXTtxLmVudW1lcmFibGU9cS5lbnVtZXJhYmxlfHwhMSxxLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gcSYmKHEud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQ'@; put 'cm9wZXJ0eShaLEgocS5rZXkpLHEpfX1mdW5jdGlvbiBIKFope3ZhciBYPWZ1bmN0aW9uIFIoWixYKXtpZigib2JqZWN0IiE9dHlwZW9mIFp8fG51bGw9PT1aKXJldHVybiBaO3ZhciBRPVpbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1RKXt2YXIgcT1RLmNhbGwoWixYfHwiZGVm'@; put 'YXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgcSlyZXR1cm4gcTt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PVg/U3RyaW5nOk51bWJlcikoWil9KFosInN0cmluZyIpO3JldHVybiJz'@; put 'eW1ib2wiPT10eXBlb2YgWD9YOlN0cmluZyhYKX12YXIgUD1iKDg3NjQpLkJ1ZmZlcixZPWIoMjM2MSkuaW5zcGVjdCxCPVkmJlkuY3VzdG9tfHwiaW5zcGVjdCI7ZnVuY3Rpb24gVyhaLFgsUSl7UC5wcm90b3R5cGUuY29weS5jYWxsKFosWCxRKX1jZS5leHBvcnRzPWZ1bmN0aW9uKCl7ZnVu'@; put 'Y3Rpb24gWigpeyhmdW5jdGlvbiBOKFosWCl7aWYoIShaIGluc3RhbmNlb2YgWCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLFopLHRoaXMuaGVhZD1udWxsLHRoaXMudGFpbD1udWxsLHRoaXMubGVuZ3RoPTB9cmV0dXJu'@; put 'IGZ1bmN0aW9uIEYoWixYLFEpe1gmJncoWi5wcm90b3R5cGUsWCksUSYmdyhaLFEpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShaLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShaLFt7a2V5OiJwdXNoIix2YWx1ZTpmdW5jdGlvbihRKXt2YXIgcT17ZGF0YTpRLG5leHQ6bnVsbH07dGhpcy5s'@; put 'ZW5ndGg+MD90aGlzLnRhaWwubmV4dD1xOnRoaXMuaGVhZD1xLHRoaXMudGFpbD1xLCsrdGhpcy5sZW5ndGh9fSx7a2V5OiJ1bnNoaWZ0Iix2YWx1ZTpmdW5jdGlvbihRKXt2YXIgcT17ZGF0YTpRLG5leHQ6dGhpcy5oZWFkfTswPT09dGhpcy5sZW5ndGgmJih0aGlzLnRhaWw9cSksdGhpcy5o'@; put 'ZWFkPXEsKyt0aGlzLmxlbmd0aH19LHtrZXk6InNoaWZ0Iix2YWx1ZTpmdW5jdGlvbigpe2lmKDAhPT10aGlzLmxlbmd0aCl7dmFyIFE9dGhpcy5oZWFkLmRhdGE7cmV0dXJuIHRoaXMuaGVhZD0xPT09dGhpcy5sZW5ndGg/dGhpcy50YWlsPW51bGw6dGhpcy5oZWFkLm5leHQsLS10aGlzLmxl'@; put 'bmd0aCxRfX19LHtrZXk6ImNsZWFyIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaGVhZD10aGlzLnRhaWw9bnVsbCx0aGlzLmxlbmd0aD0wfX0se2tleToiam9pbiIsdmFsdWU6ZnVuY3Rpb24oUSl7aWYoMD09PXRoaXMubGVuZ3RoKXJldHVybiIiO2Zvcih2YXIgcT10aGlzLmhlYWQsdGU9IiIr'@; put 'cS5kYXRhO3E9cS5uZXh0Oyl0ZSs9UStxLmRhdGE7cmV0dXJuIHRlfX0se2tleToiY29uY2F0Iix2YWx1ZTpmdW5jdGlvbihRKXtpZigwPT09dGhpcy5sZW5ndGgpcmV0dXJuIFAuYWxsb2MoMCk7Zm9yKHZhciBxPVAuYWxsb2NVbnNhZmUoUT4+PjApLHRlPXRoaXMuaGVhZCxpZT0wO3RlOylX'@; put 'KHRlLmRhdGEscSxpZSksaWUrPXRlLmRhdGEubGVuZ3RoLHRlPXRlLm5leHQ7cmV0dXJuIHF9fSx7a2V5OiJjb25zdW1lIix2YWx1ZTpmdW5jdGlvbihRLHEpe3ZhciB0ZTtyZXR1cm4gUTx0aGlzLmhlYWQuZGF0YS5sZW5ndGg/KHRlPXRoaXMuaGVhZC5kYXRhLnNsaWNlKDAsUSksdGhpcy5o'@; put 'ZWFkLmRhdGE9dGhpcy5oZWFkLmRhdGEuc2xpY2UoUSkpOnRlPVE9PT10aGlzLmhlYWQuZGF0YS5sZW5ndGg/dGhpcy5zaGlmdCgpOnE/dGhpcy5fZ2V0U3RyaW5nKFEpOnRoaXMuX2dldEJ1ZmZlcihRKSx0ZX19LHtrZXk6ImZpcnN0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhl'@; put 'YWQuZGF0YX19LHtrZXk6Il9nZXRTdHJpbmciLHZhbHVlOmZ1bmN0aW9uKFEpe3ZhciBxPXRoaXMuaGVhZCx0ZT0xLGllPXEuZGF0YTtmb3IoUS09aWUubGVuZ3RoO3E9cS5uZXh0Oyl7dmFyIHNlPXEuZGF0YSxnZT1RPnNlLmxlbmd0aD9zZS5sZW5ndGg6UTtpZihpZSs9Z2U9PT1zZS5sZW5n'@; put 'dGg/c2U6c2Uuc2xpY2UoMCxRKSwwPT0oUS09Z2UpKXtnZT09PXNlLmxlbmd0aD8oKyt0ZSx0aGlzLmhlYWQ9cS5uZXh0P3EubmV4dDp0aGlzLnRhaWw9bnVsbCk6KHRoaXMuaGVhZD1xLHEuZGF0YT1zZS5zbGljZShnZSkpO2JyZWFrfSsrdGV9cmV0dXJuIHRoaXMubGVuZ3RoLT10ZSxpZX19'@; put 'LHtrZXk6Il9nZXRCdWZmZXIiLHZhbHVlOmZ1bmN0aW9uKFEpe3ZhciBxPVAuYWxsb2NVbnNhZmUoUSksdGU9dGhpcy5oZWFkLGllPTE7Zm9yKHRlLmRhdGEuY29weShxKSxRLT10ZS5kYXRhLmxlbmd0aDt0ZT10ZS5uZXh0Oyl7dmFyIHNlPXRlLmRhdGEsZ2U9UT5zZS5sZW5ndGg/c2UubGVu'@; put 'Z3RoOlE7aWYoc2UuY29weShxLHEubGVuZ3RoLVEsMCxnZSksMD09KFEtPWdlKSl7Z2U9PT1zZS5sZW5ndGg/KCsraWUsdGhpcy5oZWFkPXRlLm5leHQ/dGUubmV4dDp0aGlzLnRhaWw9bnVsbCk6KHRoaXMuaGVhZD10ZSx0ZS5kYXRhPXNlLnNsaWNlKGdlKSk7YnJlYWt9KytpZX1yZXR1cm4g'@; put 'dGhpcy5sZW5ndGgtPWllLHF9fSx7a2V5OkIsdmFsdWU6ZnVuY3Rpb24oUSxxKXtyZXR1cm4gWSh0aGlzLF8oXyh7fSxxKSx7fSx7ZGVwdGg6MCxjdXN0b21JbnNwZWN0OiExfSkpfX1dKSxafSgpfSwxMTk1OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNDE1NSk7ZnVuY3Rpb24g'@; put 'cChSLGope0YoUixqKSxOKFIpfWZ1bmN0aW9uIE4oUil7Ui5fd3JpdGFibGVTdGF0ZSYmIVIuX3dyaXRhYmxlU3RhdGUuZW1pdENsb3NlfHxSLl9yZWFkYWJsZVN0YXRlJiYhUi5fcmVhZGFibGVTdGF0ZS5lbWl0Q2xvc2V8fFIuZW1pdCgiY2xvc2UiKX1mdW5jdGlvbiBGKFIsail7Ui5lbWl0'@; put 'KCJlcnJvciIsail9Y2UuZXhwb3J0cz17ZGVzdHJveTpmdW5jdGlvbiBfKFIsail7dmFyIFA9dGhpcztyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZSYmdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWR8fHRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJv'@; put 'eWVkPyhqP2ooUik6UiYmKHRoaXMuX3dyaXRhYmxlU3RhdGU/dGhpcy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWR8fCh0aGlzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCxELm5leHRUaWNrKEYsdGhpcyxSKSk6RC5uZXh0VGljayhGLHRoaXMsUikpLHRoaXMpOih0aGlzLl9y'@; put 'ZWFkYWJsZVN0YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITApLHRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD0hMCksdGhpcy5fZGVzdHJveShSfHxudWxsLGZ1bmN0aW9uKEIpeyFqJiZCP1AuX3dyaXRhYmxlU3RhdGU/UC5f'@; put 'd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ/RC5uZXh0VGljayhOLFApOihQLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCxELm5leHRUaWNrKHAsUCxCKSk6RC5uZXh0VGljayhwLFAsQik6aj8oRC5uZXh0VGljayhOLFApLGooQikpOkQubmV4dFRpY2soTixQKX0pLHRoaXMpfSx1'@; put 'bmRlc3Ryb3k6ZnVuY3Rpb24gdygpe3RoaXMuX3JlYWRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD0hMSx0aGlzLl9yZWFkYWJsZVN0YXRlLnJlYWRpbmc9ITEsdGhpcy5fcmVhZGFibGVTdGF0ZS5lbmRlZD0hMSx0aGlzLl9yZWFkYWJsZVN0YXRlLmVuZEVtaXR0'@; put 'ZWQ9ITEpLHRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmVuZGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZW5kaW5nPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZmluYWxDYWxsZWQ9ITEsdGhpcy5fd3Jp'@; put 'dGFibGVTdGF0ZS5wcmVmaW5pc2hlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmZpbmlzaGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPSExKX0sZXJyb3JPckRlc3Ryb3k6ZnVuY3Rpb24gSChSLGope3ZhciBQPVIuX3JlYWRhYmxlU3RhdGUsTD1SLl93cml0YWJsZVN0'@; put 'YXRlO1AmJlAuYXV0b0Rlc3Ryb3l8fEwmJkwuYXV0b0Rlc3Ryb3k/Ui5kZXN0cm95KGopOlIuZW1pdCgiZXJyb3IiLGopfX19LDg2MTA6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig0MjgxKS5xLkVSUl9TVFJFQU1fUFJFTUFUVVJFX0NMT1NFO2Z1bmN0aW9uIHAoKXt9Y2UuZXhw'@; put 'b3J0cz1mdW5jdGlvbiB3KEYsSCxSKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgSClyZXR1cm4gdyhGLG51bGwsSCk7SHx8KEg9e30pLFI9ZnVuY3Rpb24gXyhGKXt2YXIgSD0hMTtyZXR1cm4gZnVuY3Rpb24oKXtpZighSCl7SD0hMDtmb3IodmFyIFI9YXJndW1lbnRzLmxlbmd0aCxqPW5ldyBB'@; put 'cnJheShSKSxQPTA7UDxSO1ArKylqW1BdPWFyZ3VtZW50c1tQXTtGLmFwcGx5KHRoaXMsail9fX0oUnx8cCk7dmFyIGo9SC5yZWFkYWJsZXx8ITEhPT1ILnJlYWRhYmxlJiZGLnJlYWRhYmxlLFA9SC53cml0YWJsZXx8ITEhPT1ILndyaXRhYmxlJiZGLndyaXRhYmxlLEw9ZnVuY3Rpb24oKXtG'@; put 'LndyaXRhYmxlfHxCKCl9LFk9Ri5fd3JpdGFibGVTdGF0ZSYmRi5fd3JpdGFibGVTdGF0ZS5maW5pc2hlZCxCPWZ1bmN0aW9uKCl7UD0hMSxZPSEwLGp8fFIuY2FsbChGKX0sVz1GLl9yZWFkYWJsZVN0YXRlJiZGLl9yZWFkYWJsZVN0YXRlLmVuZEVtaXR0ZWQsWj1mdW5jdGlvbigpe2o9ITEs'@; put 'Vz0hMCxQfHxSLmNhbGwoRil9LFg9ZnVuY3Rpb24oaWUpe1IuY2FsbChGLGllKX0sUT1mdW5jdGlvbigpe3ZhciBpZTtyZXR1cm4gaiYmIVc/KCghRi5fcmVhZGFibGVTdGF0ZXx8IUYuX3JlYWRhYmxlU3RhdGUuZW5kZWQpJiYoaWU9bmV3IEQpLFIuY2FsbChGLGllKSk6UCYmIVk/KCghRi5f'@; put 'd3JpdGFibGVTdGF0ZXx8IUYuX3dyaXRhYmxlU3RhdGUuZW5kZWQpJiYoaWU9bmV3IEQpLFIuY2FsbChGLGllKSk6dm9pZCAwfSxxPWZ1bmN0aW9uKCl7Ri5yZXEub24oImZpbmlzaCIsQil9O3JldHVybiBmdW5jdGlvbiBOKEYpe3JldHVybiBGLnNldEhlYWRlciYmImZ1bmN0aW9uIj09dHlw'@; put 'ZW9mIEYuYWJvcnR9KEYpPyhGLm9uKCJjb21wbGV0ZSIsQiksRi5vbigiYWJvcnQiLFEpLEYucmVxP3EoKTpGLm9uKCJyZXF1ZXN0IixxKSk6UCYmIUYuX3dyaXRhYmxlU3RhdGUmJihGLm9uKCJlbmQiLEwpLEYub24oImNsb3NlIixMKSksRi5vbigiZW5kIixaKSxGLm9uKCJmaW5pc2giLEIp'@; put 'LCExIT09SC5lcnJvciYmRi5vbigiZXJyb3IiLFgpLEYub24oImNsb3NlIixRKSxmdW5jdGlvbigpe0YucmVtb3ZlTGlzdGVuZXIoImNvbXBsZXRlIixCKSxGLnJlbW92ZUxpc3RlbmVyKCJhYm9ydCIsUSksRi5yZW1vdmVMaXN0ZW5lcigicmVxdWVzdCIscSksRi5yZXEmJkYucmVxLnJlbW92'@; put 'ZUxpc3RlbmVyKCJmaW5pc2giLEIpLEYucmVtb3ZlTGlzdGVuZXIoImVuZCIsTCksRi5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLEwpLEYucmVtb3ZlTGlzdGVuZXIoImZpbmlzaCIsQiksRi5yZW1vdmVMaXN0ZW5lcigiZW5kIixaKSxGLnJlbW92ZUxpc3RlbmVyKCJlcnJvciIsWCksRi5yZW1v'@; put 'dmVMaXN0ZW5lcigiY2xvc2UiLFEpfX19LDUxNjc6Y2U9PntjZS5leHBvcnRzPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJSZWFkYWJsZS5mcm9tIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGJyb3dzZXIiKX19LDk5NDY6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQscD1iKDQy'@; put 'ODEpLnEsTj1wLkVSUl9NSVNTSU5HX0FSR1Msdz1wLkVSUl9TVFJFQU1fREVTVFJPWUVEO2Z1bmN0aW9uIEYoQil7aWYoQil0aHJvdyBCfWZ1bmN0aW9uIGooQil7QigpfWZ1bmN0aW9uIFAoQixXKXtyZXR1cm4gQi5waXBlKFcpfWNlLmV4cG9ydHM9ZnVuY3Rpb24gWSgpe2Zvcih2YXIgQj1h'@; put 'cmd1bWVudHMubGVuZ3RoLFc9bmV3IEFycmF5KEIpLFo9MDtaPEI7WisrKVdbWl09YXJndW1lbnRzW1pdO3ZhciBYPWZ1bmN0aW9uIEwoQil7cmV0dXJuIEIubGVuZ3RoJiYiZnVuY3Rpb24iPT10eXBlb2YgQltCLmxlbmd0aC0xXT9CLnBvcCgpOkZ9KFcpO2lmKEFycmF5LmlzQXJyYXkoV1sw'@; put 'XSkmJihXPVdbMF0pLFcubGVuZ3RoPDIpdGhyb3cgbmV3IE4oInN0cmVhbXMiKTt2YXIgUSxxPVcubWFwKGZ1bmN0aW9uKHRlLGllKXt2YXIgc2U9aWU8Vy5sZW5ndGgtMTtyZXR1cm4gZnVuY3Rpb24gUihCLFcsWixYKXtYPWZ1bmN0aW9uIF8oQil7dmFyIFc9ITE7cmV0dXJuIGZ1bmN0aW9u'@; put 'KCl7V3x8KFc9ITAsQi5hcHBseSh2b2lkIDAsYXJndW1lbnRzKSl9fShYKTt2YXIgUT0hMTtCLm9uKCJjbG9zZSIsZnVuY3Rpb24oKXtRPSEwfSksdm9pZCAwPT09RCYmKEQ9Yig4NjEwKSksRChCLHtyZWFkYWJsZTpXLHdyaXRhYmxlOlp9LGZ1bmN0aW9uKHRlKXtpZih0ZSlyZXR1cm4gWCh0'@; put 'ZSk7UT0hMCxYKCl9KTt2YXIgcT0hMTtyZXR1cm4gZnVuY3Rpb24odGUpe2lmKCFRJiYhcSl7aWYocT0hMCxmdW5jdGlvbiBIKEIpe3JldHVybiBCLnNldEhlYWRlciYmImZ1bmN0aW9uIj09dHlwZW9mIEIuYWJvcnR9KEIpKXJldHVybiBCLmFib3J0KCk7aWYoImZ1bmN0aW9uIj09dHlwZW9m'@; put 'IEIuZGVzdHJveSlyZXR1cm4gQi5kZXN0cm95KCk7WCh0ZXx8bmV3IHcoInBpcGUiKSl9fX0odGUsc2UsaWU+MCxmdW5jdGlvbihfZSl7UXx8KFE9X2UpLF9lJiZxLmZvckVhY2goaiksIXNlJiYocS5mb3JFYWNoKGopLFgoUSkpfSl9KTtyZXR1cm4gVy5yZWR1Y2UoUCl9fSwyNDU3OihjZSxK'@; put 'LGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNDI4MSkucS5FUlJfSU5WQUxJRF9PUFRfVkFMVUU7Y2UuZXhwb3J0cz17Z2V0SGlnaFdhdGVyTWFyazpmdW5jdGlvbiBwKE4sdyxGLEgpe3ZhciBSPWZ1bmN0aW9uIF8oTix3LEYpe3JldHVybiBudWxsIT1OLmhpZ2hXYXRlck1hcms/Ti5oaWdo'@; put 'V2F0ZXJNYXJrOnc/TltGXTpudWxsfSh3LEgsRik7aWYobnVsbCE9Uil7aWYoIWlzRmluaXRlKFIpfHxNYXRoLmZsb29yKFIpIT09Unx8UjwwKXRocm93IG5ldyBEKEg/RjoiaGlnaFdhdGVyTWFyayIsUik7cmV0dXJuIE1hdGguZmxvb3IoUil9cmV0dXJuIE4ub2JqZWN0TW9kZT8xNjoxNjM4'@; put 'NH19fSwyNTAzOihjZSxKLGIpPT57Y2UuZXhwb3J0cz1iKDcxODcpLkV2ZW50RW1pdHRlcn0sNzQxODpjZT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPWZ1bmN0aW9uKGIsRCl7aWYoRD1ELnNwbGl0KCI6IilbMF0sIShiPStiKSlyZXR1cm4hMTtzd2l0Y2goRCl7Y2FzZSJodHRwIjpjYXNl'@; put 'IndzIjpyZXR1cm4gODAhPT1iO2Nhc2UiaHR0cHMiOmNhc2Uid3NzIjpyZXR1cm4gNDQzIT09YjtjYXNlImZ0cCI6cmV0dXJuIDIxIT09YjtjYXNlImdvcGhlciI6cmV0dXJuIDcwIT09YjtjYXNlImZpbGUiOnJldHVybiExfXJldHVybiAwIT09Yn19LDk3ODU6KGNlLEosYik9PnsidXNlIHN0'@; put 'cmljdCI7dmFyIEQ9Yig4NzY0KS5CdWZmZXIsXz1iKDU3MTcpLHA9YigzMzQ5KSxOPW5ldyBBcnJheSgxNiksdz1bMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSw3LDQsMTMsMSwxMCw2LDE1LDMsMTIsMCw5LDUsMiwxNCwxMSw4LDMsMTAsMTQsNCw5LDE1LDgsMSwyLDcs'@; put 'MCw2LDEzLDExLDUsMTIsMSw5LDExLDEwLDAsOCwxMiw0LDEzLDMsNywxNSwxNCw1LDYsMiw0LDAsNSw5LDcsMTIsMiwxMCwxNCwxLDMsOCwxMSw2LDE1LDEzXSxGPVs1LDE0LDcsMCw5LDIsMTEsNCwxMyw2LDE1LDgsMSwxMCwzLDEyLDYsMTEsMyw3LDAsMTMsNSwxMCwxNCwxNSw4LDEyLDQs'@; put 'OSwxLDIsMTUsNSwxLDMsNywxNCw2LDksMTEsOCwxMiwyLDEwLDAsNCwxMyw4LDYsNCwxLDMsMTEsMTUsMCw1LDEyLDIsMTMsOSw3LDEwLDE0LDEyLDE1LDEwLDQsMSw1LDgsNyw2LDIsMTMsMTQsMCwzLDksMTFdLEg9WzExLDE0LDE1LDEyLDUsOCw3LDksMTEsMTMsMTQsMTUsNiw3LDksOCw3'@; put 'LDYsOCwxMywxMSw5LDcsMTUsNywxMiwxNSw5LDExLDcsMTMsMTIsMTEsMTMsNiw3LDE0LDksMTMsMTUsMTQsOCwxMyw2LDUsMTIsNyw1LDExLDEyLDE0LDE1LDE0LDE1LDksOCw5LDE0LDUsNiw4LDYsNSwxMiw5LDE1LDUsMTEsNiw4LDEzLDEyLDUsMTIsMTMsMTQsMTEsOCw1LDZdLFI9Wzgs'@; put 'OSw5LDExLDEzLDE1LDE1LDUsNyw3LDgsMTEsMTQsMTQsMTIsNiw5LDEzLDE1LDcsMTIsOCw5LDExLDcsNywxMiw3LDYsMTUsMTMsMTEsOSw3LDE1LDExLDgsNiw2LDE0LDEyLDEzLDUsMTQsMTMsMTMsNyw1LDE1LDUsOCwxMSwxNCwxNCw2LDE0LDYsOSwxMiw5LDEyLDUsMTUsOCw4LDUsMTIs'@; put 'OSwxMiw1LDE0LDYsOCwxMyw2LDUsMTUsMTMsMTEsMTFdLGo9WzAsMTUxODUwMDI0OSwxODU5Nzc1MzkzLDI0MDA5NTk3MDgsMjg0MDg1MzgzOF0sUD1bMTM1MjgyOTkyNiwxNTQ4NjAzNjg0LDE4MzYwNzI2OTEsMjA1Mzk5NDIxNywwXTtmdW5jdGlvbiBMKCl7cC5jYWxsKHRoaXMsNjQpLHRo'@; put 'aXMuX2E9MTczMjU4NDE5Myx0aGlzLl9iPTQwMjMyMzM0MTcsdGhpcy5fYz0yNTYyMzgzMTAyLHRoaXMuX2Q9MjcxNzMzODc4LHRoaXMuX2U9MzI4NTM3NzUyMH1mdW5jdGlvbiBZKHEsdGUpe3JldHVybiBxPDx0ZXxxPj4+MzItdGV9ZnVuY3Rpb24gQihxLHRlLGllLHNlLGdlLF9lLFRlLFNl'@; put 'KXtyZXR1cm4gWShxKyh0ZV5pZV5zZSkrX2UrVGV8MCxTZSkrZ2V8MH1mdW5jdGlvbiBXKHEsdGUsaWUsc2UsZ2UsX2UsVGUsU2Upe3JldHVybiBZKHErKHRlJmllfH50ZSZzZSkrX2UrVGV8MCxTZSkrZ2V8MH1mdW5jdGlvbiBaKHEsdGUsaWUsc2UsZ2UsX2UsVGUsU2Upe3JldHVybiBZKHEr'@; put 'KCh0ZXx+aWUpXnNlKStfZStUZXwwLFNlKStnZXwwfWZ1bmN0aW9uIFgocSx0ZSxpZSxzZSxnZSxfZSxUZSxTZSl7cmV0dXJuIFkocSsodGUmc2V8aWUmfnNlKStfZStUZXwwLFNlKStnZXwwfWZ1bmN0aW9uIFEocSx0ZSxpZSxzZSxnZSxfZSxUZSxTZSl7cmV0dXJuIFkocSsodGVeKGllfH5z'@; put 'ZSkpK19lK1RlfDAsU2UpK2dlfDB9XyhMLHApLEwucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oKXtmb3IodmFyIHE9Tix0ZT0wO3RlPDE2OysrdGUpcVt0ZV09dGhpcy5fYmxvY2sucmVhZEludDMyTEUoNCp0ZSk7Zm9yKHZhciBpZT0wfHRoaXMuX2Esc2U9MHx0aGlzLl9iLGdlPTB8dGhp'@; put 'cy5fYyxfZT0wfHRoaXMuX2QsVGU9MHx0aGlzLl9lLFNlPTB8dGhpcy5fYSx6ZT0wfHRoaXMuX2Isej0wfHRoaXMuX2MsZz0wfHRoaXMuX2QseT0wfHRoaXMuX2UseD0wO3g8ODA7eCs9MSl7dmFyIEMsVDt4PDE2PyhDPUIoaWUsc2UsZ2UsX2UsVGUscVt3W3hdXSxqWzBdLEhbeF0pLFQ9UShT'@; put 'ZSx6ZSx6LGcseSxxW0ZbeF1dLFBbMF0sUlt4XSkpOng8MzI/KEM9VyhpZSxzZSxnZSxfZSxUZSxxW3dbeF1dLGpbMV0sSFt4XSksVD1YKFNlLHplLHosZyx5LHFbRlt4XV0sUFsxXSxSW3hdKSk6eDw0OD8oQz1aKGllLHNlLGdlLF9lLFRlLHFbd1t4XV0salsyXSxIW3hdKSxUPVooU2UsemUs'@; put 'eixnLHkscVtGW3hdXSxQWzJdLFJbeF0pKTp4PDY0PyhDPVgoaWUsc2UsZ2UsX2UsVGUscVt3W3hdXSxqWzNdLEhbeF0pLFQ9VyhTZSx6ZSx6LGcseSxxW0ZbeF1dLFBbM10sUlt4XSkpOihDPVEoaWUsc2UsZ2UsX2UsVGUscVt3W3hdXSxqWzRdLEhbeF0pLFQ9QihTZSx6ZSx6LGcseSxxW0Zb'@; put 'eF1dLFBbNF0sUlt4XSkpLGllPVRlLFRlPV9lLF9lPVkoZ2UsMTApLGdlPXNlLHNlPUMsU2U9eSx5PWcsZz1ZKHosMTApLHo9emUsemU9VH12YXIgVj10aGlzLl9iK2dlK2d8MDt0aGlzLl9iPXRoaXMuX2MrX2UreXwwLHRoaXMuX2M9dGhpcy5fZCtUZStTZXwwLHRoaXMuX2Q9dGhpcy5fZStp'@; put 'ZSt6ZXwwLHRoaXMuX2U9dGhpcy5fYStzZSt6fDAsdGhpcy5fYT1WfSxMLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKCl7dGhpcy5fYmxvY2tbdGhpcy5fYmxvY2tPZmZzZXQrK109MTI4LHRoaXMuX2Jsb2NrT2Zmc2V0PjU2JiYodGhpcy5fYmxvY2suZmlsbCgwLHRoaXMuX2Jsb2NrT2Zm'@; put 'c2V0LDY0KSx0aGlzLl91cGRhdGUoKSx0aGlzLl9ibG9ja09mZnNldD0wKSx0aGlzLl9ibG9jay5maWxsKDAsdGhpcy5fYmxvY2tPZmZzZXQsNTYpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyTEUodGhpcy5fbGVuZ3RoWzBdLDU2KSx0aGlzLl9ibG9jay53cml0ZVVJbnQzMkxFKHRoaXMuX2xl'@; put 'bmd0aFsxXSw2MCksdGhpcy5fdXBkYXRlKCk7dmFyIHE9RC5hbGxvYz9ELmFsbG9jKDIwKTpuZXcgRCgyMCk7cmV0dXJuIHEud3JpdGVJbnQzMkxFKHRoaXMuX2EsMCkscS53cml0ZUludDMyTEUodGhpcy5fYiw0KSxxLndyaXRlSW50MzJMRSh0aGlzLl9jLDgpLHEud3JpdGVJbnQzMkxFKHRo'@; put 'aXMuX2QsMTIpLHEud3JpdGVJbnQzMkxFKHRoaXMuX2UsMTYpLHF9LGNlLmV4cG9ydHM9TH0sOTUwOTooY2UsSixiKT0+e3ZhciBEPWIoODc2NCksXz1ELkJ1ZmZlcjtmdW5jdGlvbiBwKHcsRil7Zm9yKHZhciBIIGluIHcpRltIXT13W0hdfWZ1bmN0aW9uIE4odyxGLEgpe3JldHVybiBfKHcs'@; put 'RixIKX1fLmZyb20mJl8uYWxsb2MmJl8uYWxsb2NVbnNhZmUmJl8uYWxsb2NVbnNhZmVTbG93P2NlLmV4cG9ydHM9RDoocChELEopLEouQnVmZmVyPU4pLE4ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoXy5wcm90b3R5cGUpLHAoXyxOKSxOLmZyb209ZnVuY3Rpb24odyxGLEgpe2lmKCJudW1i'@; put 'ZXIiPT10eXBlb2Ygdyl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IG5vdCBiZSBhIG51bWJlciIpO3JldHVybiBfKHcsRixIKX0sTi5hbGxvYz1mdW5jdGlvbih3LEYsSCl7aWYoIm51bWJlciIhPXR5cGVvZiB3KXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3Qg'@; put 'YmUgYSBudW1iZXIiKTt2YXIgUj1fKHcpO3JldHVybiB2b2lkIDAhPT1GPyJzdHJpbmciPT10eXBlb2YgSD9SLmZpbGwoRixIKTpSLmZpbGwoRik6Ui5maWxsKDApLFJ9LE4uYWxsb2NVbnNhZmU9ZnVuY3Rpb24odyl7aWYoIm51bWJlciIhPXR5cGVvZiB3KXRocm93IG5ldyBUeXBlRXJyb3Io'@; put 'IkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gXyh3KX0sTi5hbGxvY1Vuc2FmZVNsb3c9ZnVuY3Rpb24odyl7aWYoIm51bWJlciIhPXR5cGVvZiB3KXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gRC5TbG93QnVmZmVyKHcp'@; put 'fX0sOTI0NjooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDczNzkpLF89Yig4NDIwKSxwPUQoIlJlZ0V4cC5wcm90b3R5cGUuZXhlYyIpLE49Yig0NDUzKTtjZS5leHBvcnRzPWZ1bmN0aW9uKEYpe2lmKCFfKEYpKXRocm93IG5ldyBOKCJgcmVnZXhgIG11c3QgYmUgYSBSZWdFeHAi'@; put 'KTtyZXR1cm4gZnVuY3Rpb24oUil7cmV0dXJuIG51bGwhPT1wKEYsUil9fX0sNzc3MTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDIxMCksXz1iKDIyOTYpLHA9YigxMDQ0KSgpLE49Yig3Mjk2KSx3PWIoNDQ1MyksRj1EKCIlTWF0aC5mbG9vciUiKTtjZS5leHBvcnRzPWZ1bmN0'@; put 'aW9uKFIsail7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFIpdGhyb3cgbmV3IHcoImBmbmAgaXMgbm90IGEgZnVuY3Rpb24iKTtpZigibnVtYmVyIiE9dHlwZW9mIGp8fGo8MHx8aj40Mjk0OTY3Mjk1fHxGKGopIT09ail0aHJvdyBuZXcgdygiYGxlbmd0aGAgbXVzdCBiZSBhIHBvc2l0aXZlIDMy'@; put 'LWJpdCBpbnRlZ2VyIik7dmFyIFA9YXJndW1lbnRzLmxlbmd0aD4yJiYhIWFyZ3VtZW50c1syXSxMPSEwLFk9ITA7aWYoImxlbmd0aCJpbiBSJiZOKXt2YXIgQj1OKFIsImxlbmd0aCIpO0ImJiFCLmNvbmZpZ3VyYWJsZSYmKEw9ITEpLEImJiFCLndyaXRhYmxlJiYoWT0hMSl9cmV0dXJuKEx8'@; put 'fFl8fCFQKSYmKHA/XyhSLCJsZW5ndGgiLGosITAsITApOl8oUiwibGVuZ3RoIixqKSksUn19LDQxODk6KGNlLEosYik9Pnt2YXIgRD1iKDk1MDkpLkJ1ZmZlcjtmdW5jdGlvbiBfKHAsTil7dGhpcy5fYmxvY2s9RC5hbGxvYyhwKSx0aGlzLl9maW5hbFNpemU9Tix0aGlzLl9ibG9ja1NpemU9'@; put 'cCx0aGlzLl9sZW49MH1fLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24ocCxOKXsic3RyaW5nIj09dHlwZW9mIHAmJihwPUQuZnJvbShwLE49Tnx8InV0ZjgiKSk7Zm9yKHZhciB3PXRoaXMuX2Jsb2NrLEY9dGhpcy5fYmxvY2tTaXplLEg9cC5sZW5ndGgsUj10aGlzLl9sZW4saj0wO2o8SDsp'@; put 'e2Zvcih2YXIgUD1SJUYsTD1NYXRoLm1pbihILWosRi1QKSxZPTA7WTxMO1krKyl3W1ArWV09cFtqK1ldO2orPUwsKFIrPUwpJUY9PTAmJnRoaXMuX3VwZGF0ZSh3KX1yZXR1cm4gdGhpcy5fbGVuKz1ILHRoaXN9LF8ucHJvdG90eXBlLmRpZ2VzdD1mdW5jdGlvbihwKXt2YXIgTj10aGlzLl9s'@; put 'ZW4ldGhpcy5fYmxvY2tTaXplO3RoaXMuX2Jsb2NrW05dPTEyOCx0aGlzLl9ibG9jay5maWxsKDAsTisxKSxOPj10aGlzLl9maW5hbFNpemUmJih0aGlzLl91cGRhdGUodGhpcy5fYmxvY2spLHRoaXMuX2Jsb2NrLmZpbGwoMCkpO3ZhciB3PTgqdGhpcy5fbGVuO2lmKHc8PTQyOTQ5NjcyOTUp'@; put 'dGhpcy5fYmxvY2sud3JpdGVVSW50MzJCRSh3LHRoaXMuX2Jsb2NrU2l6ZS00KTtlbHNle3ZhciBGPSg0Mjk0OTY3Mjk1JncpPj4+MDt0aGlzLl9ibG9jay53cml0ZVVJbnQzMkJFKCh3LUYpLzQyOTQ5NjcyOTYsdGhpcy5fYmxvY2tTaXplLTgpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyQkUo'@; put 'Rix0aGlzLl9ibG9ja1NpemUtNCl9dGhpcy5fdXBkYXRlKHRoaXMuX2Jsb2NrKTt2YXIgUj10aGlzLl9oYXNoKCk7cmV0dXJuIHA/Ui50b1N0cmluZyhwKTpSfSxfLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJfdXBkYXRlIG11c3QgYmUgaW1wbGVtZW50'@; put 'ZWQgYnkgc3ViY2xhc3MiKX0sY2UuZXhwb3J0cz1ffSw5MDcyOihjZSxKLGIpPT57dmFyIEQ9Y2UuZXhwb3J0cz1mdW5jdGlvbihwKXtwPXAudG9Mb3dlckNhc2UoKTt2YXIgTj1EW3BdO2lmKCFOKXRocm93IG5ldyBFcnJvcihwKyIgaXMgbm90IHN1cHBvcnRlZCAod2UgYWNjZXB0IHB1bGwg'@; put 'cmVxdWVzdHMpIik7cmV0dXJuIG5ldyBOfTtELnNoYT1iKDQ0NDgpLEQuc2hhMT1iKDgzMzYpLEQuc2hhMjI0PWIoODQzMiksRC5zaGEyNTY9Yig3NDk5KSxELnNoYTM4ND1iKDE2ODYpLEQuc2hhNTEyPWIoNzgxNil9LDQ0NDg6KGNlLEosYik9Pnt2YXIgRD1iKDU3MTcpLF89Yig0MTg5KSxw'@; put 'PWIoOTUwOSkuQnVmZmVyLE49WzE1MTg1MDAyNDksMTg1OTc3NTM5MywtMTg5NDAwNzU4OCwtODk5NDk3NTE0XSx3PW5ldyBBcnJheSg4MCk7ZnVuY3Rpb24gRigpe3RoaXMuaW5pdCgpLHRoaXMuX3c9dyxfLmNhbGwodGhpcyw2NCw1Nil9ZnVuY3Rpb24gSChQKXtyZXR1cm4gUDw8NXxQPj4+'@; put 'Mjd9ZnVuY3Rpb24gUihQKXtyZXR1cm4gUDw8MzB8UD4+PjJ9ZnVuY3Rpb24gaihQLEwsWSxCKXtyZXR1cm4gMD09PVA/TCZZfH5MJkI6Mj09PVA/TCZZfEwmQnxZJkI6TF5ZXkJ9RChGLF8pLEYucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0xNzMyNTg0MTkzLHRo'@; put 'aXMuX2I9NDAyMzIzMzQxNyx0aGlzLl9jPTI1NjIzODMxMDIsdGhpcy5fZD0yNzE3MzM4NzgsdGhpcy5fZT0zMjg1Mzc3NTIwLHRoaXN9LEYucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oUCl7Zm9yKHZhciBMPXRoaXMuX3csWT0wfHRoaXMuX2EsQj0wfHRoaXMuX2IsVz0wfHRoaXMuX2Ms'@; put 'Wj0wfHRoaXMuX2QsWD0wfHRoaXMuX2UsUT0wO1E8MTY7KytRKUxbUV09UC5yZWFkSW50MzJCRSg0KlEpO2Zvcig7UTw4MDsrK1EpTFtRXT1MW1EtM11eTFtRLThdXkxbUS0xNF1eTFtRLTE2XTtmb3IodmFyIHE9MDtxPDgwOysrcSl7dmFyIHRlPX5+KHEvMjApLGllPUgoWSkraih0ZSxCLFcs'@; put 'WikrWCtMW3FdK05bdGVdfDA7WD1aLFo9VyxXPVIoQiksQj1ZLFk9aWV9dGhpcy5fYT1ZK3RoaXMuX2F8MCx0aGlzLl9iPUIrdGhpcy5fYnwwLHRoaXMuX2M9Vyt0aGlzLl9jfDAsdGhpcy5fZD1aK3RoaXMuX2R8MCx0aGlzLl9lPVgrdGhpcy5fZXwwfSxGLnByb3RvdHlwZS5faGFzaD1mdW5j'@; put 'dGlvbigpe3ZhciBQPXAuYWxsb2NVbnNhZmUoMjApO3JldHVybiBQLndyaXRlSW50MzJCRSgwfHRoaXMuX2EsMCksUC53cml0ZUludDMyQkUoMHx0aGlzLl9iLDQpLFAud3JpdGVJbnQzMkJFKDB8dGhpcy5fYyw4KSxQLndyaXRlSW50MzJCRSgwfHRoaXMuX2QsMTIpLFAud3JpdGVJbnQzMkJF'@; put 'KDB8dGhpcy5fZSwxNiksUH0sY2UuZXhwb3J0cz1GfSw4MzM2OihjZSxKLGIpPT57dmFyIEQ9Yig1NzE3KSxfPWIoNDE4OSkscD1iKDk1MDkpLkJ1ZmZlcixOPVsxNTE4NTAwMjQ5LDE4NTk3NzUzOTMsLTE4OTQwMDc1ODgsLTg5OTQ5NzUxNF0sdz1uZXcgQXJyYXkoODApO2Z1bmN0aW9uIEYo'@; put 'KXt0aGlzLmluaXQoKSx0aGlzLl93PXcsXy5jYWxsKHRoaXMsNjQsNTYpfWZ1bmN0aW9uIEgoTCl7cmV0dXJuIEw8PDF8TD4+PjMxfWZ1bmN0aW9uIFIoTCl7cmV0dXJuIEw8PDV8TD4+PjI3fWZ1bmN0aW9uIGooTCl7cmV0dXJuIEw8PDMwfEw+Pj4yfWZ1bmN0aW9uIFAoTCxZLEIsVyl7cmV0'@; put 'dXJuIDA9PT1MP1kmQnx+WSZXOjI9PT1MP1kmQnxZJld8QiZXOlleQl5XfUQoRixfKSxGLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2E9MTczMjU4NDE5Myx0aGlzLl9iPTQwMjMyMzM0MTcsdGhpcy5fYz0yNTYyMzgzMTAyLHRoaXMuX2Q9MjcxNzMzODc4LHRoaXMu'@; put 'X2U9MzI4NTM3NzUyMCx0aGlzfSxGLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKEwpe2Zvcih2YXIgWT10aGlzLl93LEI9MHx0aGlzLl9hLFc9MHx0aGlzLl9iLFo9MHx0aGlzLl9jLFg9MHx0aGlzLl9kLFE9MHx0aGlzLl9lLHE9MDtxPDE2OysrcSlZW3FdPUwucmVhZEludDMyQkUoNCpx'@; put 'KTtmb3IoO3E8ODA7KytxKVlbcV09SChZW3EtM11eWVtxLThdXllbcS0xNF1eWVtxLTE2XSk7Zm9yKHZhciB0ZT0wO3RlPDgwOysrdGUpe3ZhciBpZT1+fih0ZS8yMCksc2U9UihCKStQKGllLFcsWixYKStRK1lbdGVdK05baWVdfDA7UT1YLFg9WixaPWooVyksVz1CLEI9c2V9dGhpcy5fYT1C'@; put 'K3RoaXMuX2F8MCx0aGlzLl9iPVcrdGhpcy5fYnwwLHRoaXMuX2M9Wit0aGlzLl9jfDAsdGhpcy5fZD1YK3RoaXMuX2R8MCx0aGlzLl9lPVErdGhpcy5fZXwwfSxGLnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciBMPXAuYWxsb2NVbnNhZmUoMjApO3JldHVybiBMLndyaXRlSW50MzJC'@; put 'RSgwfHRoaXMuX2EsMCksTC53cml0ZUludDMyQkUoMHx0aGlzLl9iLDQpLEwud3JpdGVJbnQzMkJFKDB8dGhpcy5fYyw4KSxMLndyaXRlSW50MzJCRSgwfHRoaXMuX2QsMTIpLEwud3JpdGVJbnQzMkJFKDB8dGhpcy5fZSwxNiksTH0sY2UuZXhwb3J0cz1GfSw4NDMyOihjZSxKLGIpPT57dmFy'@; put 'IEQ9Yig1NzE3KSxfPWIoNzQ5OSkscD1iKDQxODkpLE49Yig5NTA5KS5CdWZmZXIsdz1uZXcgQXJyYXkoNjQpO2Z1bmN0aW9uIEYoKXt0aGlzLmluaXQoKSx0aGlzLl93PXcscC5jYWxsKHRoaXMsNjQsNTYpfUQoRixfKSxGLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMu'@; put 'X2E9MzIzODM3MTAzMix0aGlzLl9iPTkxNDE1MDY2Myx0aGlzLl9jPTgxMjcwMjk5OSx0aGlzLl9kPTQxNDQ5MTI2OTcsdGhpcy5fZT00MjkwNzc1ODU3LHRoaXMuX2Y9MTc1MDYwMzAyNSx0aGlzLl9nPTE2OTQwNzY4MzksdGhpcy5faD0zMjA0MDc1NDI4LHRoaXN9LEYucHJvdG90eXBlLl9o'@; put 'YXNoPWZ1bmN0aW9uKCl7dmFyIEg9Ti5hbGxvY1Vuc2FmZSgyOCk7cmV0dXJuIEgud3JpdGVJbnQzMkJFKHRoaXMuX2EsMCksSC53cml0ZUludDMyQkUodGhpcy5fYiw0KSxILndyaXRlSW50MzJCRSh0aGlzLl9jLDgpLEgud3JpdGVJbnQzMkJFKHRoaXMuX2QsMTIpLEgud3JpdGVJbnQzMkJF'@; put 'KHRoaXMuX2UsMTYpLEgud3JpdGVJbnQzMkJFKHRoaXMuX2YsMjApLEgud3JpdGVJbnQzMkJFKHRoaXMuX2csMjQpLEh9LGNlLmV4cG9ydHM9Rn0sNzQ5OTooY2UsSixiKT0+e3ZhciBEPWIoNTcxNyksXz1iKDQxODkpLHA9Yig5NTA5KS5CdWZmZXIsTj1bMTExNjM1MjQwOCwxODk5NDQ3NDQx'@; put 'LDMwNDkzMjM0NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4NzA3NjMyMjEsMzYyNDM4MTA4MCwzMTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwyMTYyMDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQw'@; put 'MjIyMjQ3NzQsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5OTYwNjQ5ODYsMjU1NDIyMDg4MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMxMzY3MSwzMzM2NTcxODkxLDM1ODQ1Mjg3MTEsMTEzOTI2OTkzLDMzODI0MTg5NSw2NjYzMDcy'@; put 'MDUsNzczNTI5OTEyLDEyOTQ3NTczNzIsMTM5NjE4MjI5MSwxNjk1MTgzNzAwLDE5ODY2NjEwNTEsMjE3NzAyNjM1MCwyNDU2OTU2MDM3LDI3MzA0ODU5MjEsMjgyMDMwMjQxMSwzMjU5NzMwODAwLDMzNDU3NjQ3NzEsMzUxNjA2NTgxNywzNjAwMzUyODA0LDQwOTQ1NzE5MDksMjc1NDIzMzQ0'@; put 'LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwxNTM3MDAyMDYzLDE3NDc4NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3MzA0NTIsMjM2MTg1MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5'@; put 'MzI1Mjk4XSx3PW5ldyBBcnJheSg2NCk7ZnVuY3Rpb24gRigpe3RoaXMuaW5pdCgpLHRoaXMuX3c9dyxfLmNhbGwodGhpcyw2NCw1Nil9ZnVuY3Rpb24gSChCLFcsWil7cmV0dXJuIFpeQiYoV15aKX1mdW5jdGlvbiBSKEIsVyxaKXtyZXR1cm4gQiZXfFomKEJ8Vyl9ZnVuY3Rpb24gaihCKXty'@; put 'ZXR1cm4oQj4+PjJ8Qjw8MzApXihCPj4+MTN8Qjw8MTkpXihCPj4+MjJ8Qjw8MTApfWZ1bmN0aW9uIFAoQil7cmV0dXJuKEI+Pj42fEI8PDI2KV4oQj4+PjExfEI8PDIxKV4oQj4+PjI1fEI8PDcpfWZ1bmN0aW9uIEwoQil7cmV0dXJuKEI+Pj43fEI8PDI1KV4oQj4+PjE4fEI8PDE0KV5CPj4+'@; put 'M31mdW5jdGlvbiBZKEIpe3JldHVybihCPj4+MTd8Qjw8MTUpXihCPj4+MTl8Qjw8MTMpXkI+Pj4xMH1EKEYsXyksRi5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hPTE3NzkwMzM3MDMsdGhpcy5fYj0zMTQ0MTM0Mjc3LHRoaXMuX2M9MTAxMzkwNDI0Mix0aGlzLl9k'@; put 'PTI3NzM0ODA3NjIsdGhpcy5fZT0xMzU5ODkzMTE5LHRoaXMuX2Y9MjYwMDgyMjkyNCx0aGlzLl9nPTUyODczNDYzNSx0aGlzLl9oPTE1NDE0NTkyMjUsdGhpc30sRi5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihCKXtmb3IodmFyIFc9dGhpcy5fdyxaPTB8dGhpcy5fYSxYPTB8dGhpcy5f'@; put 'YixRPTB8dGhpcy5fYyxxPTB8dGhpcy5fZCx0ZT0wfHRoaXMuX2UsaWU9MHx0aGlzLl9mLHNlPTB8dGhpcy5fZyxnZT0wfHRoaXMuX2gsX2U9MDtfZTwxNjsrK19lKVdbX2VdPUIucmVhZEludDMyQkUoNCpfZSk7Zm9yKDtfZTw2NDsrK19lKVdbX2VdPVkoV1tfZS0yXSkrV1tfZS03XStMKFdb'@; put 'X2UtMTVdKStXW19lLTE2XXwwO2Zvcih2YXIgVGU9MDtUZTw2NDsrK1RlKXt2YXIgU2U9Z2UrUCh0ZSkrSCh0ZSxpZSxzZSkrTltUZV0rV1tUZV18MCx6ZT1qKFopK1IoWixYLFEpfDA7Z2U9c2Usc2U9aWUsaWU9dGUsdGU9cStTZXwwLHE9USxRPVgsWD1aLFo9U2UremV8MH10aGlzLl9hPVor'@; put 'dGhpcy5fYXwwLHRoaXMuX2I9WCt0aGlzLl9ifDAsdGhpcy5fYz1RK3RoaXMuX2N8MCx0aGlzLl9kPXErdGhpcy5fZHwwLHRoaXMuX2U9dGUrdGhpcy5fZXwwLHRoaXMuX2Y9aWUrdGhpcy5fZnwwLHRoaXMuX2c9c2UrdGhpcy5fZ3wwLHRoaXMuX2g9Z2UrdGhpcy5faHwwfSxGLnByb3RvdHlw'@; put 'ZS5faGFzaD1mdW5jdGlvbigpe3ZhciBCPXAuYWxsb2NVbnNhZmUoMzIpO3JldHVybiBCLndyaXRlSW50MzJCRSh0aGlzLl9hLDApLEIud3JpdGVJbnQzMkJFKHRoaXMuX2IsNCksQi53cml0ZUludDMyQkUodGhpcy5fYyw4KSxCLndyaXRlSW50MzJCRSh0aGlzLl9kLDEyKSxCLndyaXRlSW50'@; put 'MzJCRSh0aGlzLl9lLDE2KSxCLndyaXRlSW50MzJCRSh0aGlzLl9mLDIwKSxCLndyaXRlSW50MzJCRSh0aGlzLl9nLDI0KSxCLndyaXRlSW50MzJCRSh0aGlzLl9oLDI4KSxCfSxjZS5leHBvcnRzPUZ9LDE2ODY6KGNlLEosYik9Pnt2YXIgRD1iKDU3MTcpLF89Yig3ODE2KSxwPWIoNDE4OSks'@; put 'Tj1iKDk1MDkpLkJ1ZmZlcix3PW5ldyBBcnJheSgxNjApO2Z1bmN0aW9uIEYoKXt0aGlzLmluaXQoKSx0aGlzLl93PXcscC5jYWxsKHRoaXMsMTI4LDExMil9RChGLF8pLEYucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYWg9MzQxODA3MDM2NSx0aGlzLl9iaD0xNjU0'@; put 'MjcwMjUwLHRoaXMuX2NoPTI0Mzg1MjkzNzAsdGhpcy5fZGg9MzU1NDYyMzYwLHRoaXMuX2VoPTE3MzE0MDU0MTUsdGhpcy5fZmg9MjM5NDE4MDIzMSx0aGlzLl9naD0zNjc1MDA4NTI1LHRoaXMuX2hoPTEyMDMwNjI4MTMsdGhpcy5fYWw9MzIzODM3MTAzMix0aGlzLl9ibD05MTQxNTA2NjMs'@; put 'dGhpcy5fY2w9ODEyNzAyOTk5LHRoaXMuX2RsPTQxNDQ5MTI2OTcsdGhpcy5fZWw9NDI5MDc3NTg1Nyx0aGlzLl9mbD0xNzUwNjAzMDI1LHRoaXMuX2dsPTE2OTQwNzY4MzksdGhpcy5faGw9MzIwNDA3NTQyOCx0aGlzfSxGLnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciBIPU4uYWxs'@; put 'b2NVbnNhZmUoNDgpO2Z1bmN0aW9uIFIoaixQLEwpe0gud3JpdGVJbnQzMkJFKGosTCksSC53cml0ZUludDMyQkUoUCxMKzQpfXJldHVybiBSKHRoaXMuX2FoLHRoaXMuX2FsLDApLFIodGhpcy5fYmgsdGhpcy5fYmwsOCksUih0aGlzLl9jaCx0aGlzLl9jbCwxNiksUih0aGlzLl9kaCx0aGlz'@; put 'Ll9kbCwyNCksUih0aGlzLl9laCx0aGlzLl9lbCwzMiksUih0aGlzLl9maCx0aGlzLl9mbCw0MCksSH0sY2UuZXhwb3J0cz1GfSw3ODE2OihjZSxKLGIpPT57dmFyIEQ9Yig1NzE3KSxfPWIoNDE4OSkscD1iKDk1MDkpLkJ1ZmZlcixOPVsxMTE2MzUyNDA4LDM2MDk3Njc0NTgsMTg5OTQ0NzQ0'@; put 'MSw2MDI4OTE3MjUsMzA0OTMyMzQ3MSwzOTY0NDg0Mzk5LDM5MjEwMDk1NzMsMjE3MzI5NTU0OCw5NjE5ODcxNjMsNDA4MTYyODQ3MiwxNTA4OTcwOTkzLDMwNTM4MzQyNjUsMjQ1MzYzNTc0OCwyOTM3NjcxNTc5LDI4NzA3NjMyMjEsMzY2NDYwOTU2MCwzNjI0MzgxMDgwLDI3MzQ4ODMzOTQs'@; put 'MzEwNTk4NDAxLDExNjQ5OTY1NDIsNjA3MjI1Mjc4LDEzMjM2MTA3NjQsMTQyNjg4MTk4NywzNTkwMzA0OTk0LDE5MjUwNzgzODgsNDA2ODE4MjM4MywyMTYyMDc4MjA2LDk5MTMzNjExMywyNjE0ODg4MTAzLDYzMzgwMzMxNywzMjQ4MjIyNTgwLDM0Nzk3NzQ4NjgsMzgzNTM5MDQwMSwyNjY2'@; put 'NjEzNDU4LDQwMjIyMjQ3NzQsOTQ0NzExMTM5LDI2NDM0NzA3OCwyMzQxMjYyNzczLDYwNDgwNzYyOCwyMDA3ODAwOTMzLDc3MDI1NTk4MywxNDk1OTkwOTAxLDEyNDkxNTAxMjIsMTg1NjQzMTIzNSwxNTU1MDgxNjkyLDMxNzUyMTgxMzIsMTk5NjA2NDk4NiwyMTk4OTUwODM3LDI1NTQyMjA4'@; put 'ODIsMzk5OTcxOTMzOSwyODIxODM0MzQ5LDc2Njc4NDAxNiwyOTUyOTk2ODA4LDI1NjY1OTQ4NzksMzIxMDMxMzY3MSwzMjAzMzM3OTU2LDMzMzY1NzE4OTEsMTAzNDQ1NzAyNiwzNTg0NTI4NzExLDI0NjY5NDg5MDEsMTEzOTI2OTkzLDM3NTgzMjYzODMsMzM4MjQxODk1LDE2ODcxNzkzNiw2'@; put 'NjYzMDcyMDUsMTE4ODE3OTk2NCw3NzM1Mjk5MTIsMTU0NjA0NTczNCwxMjk0NzU3MzcyLDE1MjI4MDU0ODUsMTM5NjE4MjI5MSwyNjQzODMzODIzLDE2OTUxODM3MDAsMjM0MzUyNzM5MCwxOTg2NjYxMDUxLDEwMTQ0Nzc0ODAsMjE3NzAyNjM1MCwxMjA2NzU5MTQyLDI0NTY5NTYwMzcsMzQ0'@; put 'MDc3NjI3LDI3MzA0ODU5MjEsMTI5MDg2MzQ2MCwyODIwMzAyNDExLDMxNTg0NTQyNzMsMzI1OTczMDgwMCwzNTA1OTUyNjU3LDMzNDU3NjQ3NzEsMTA2MjE3MDA4LDM1MTYwNjU4MTcsMzYwNjAwODM0NCwzNjAwMzUyODA0LDE0MzI3MjU3NzYsNDA5NDU3MTkwOSwxNDY3MDMxNTk0LDI3NTQy'@; put 'MzM0NCw4NTExNjk3MjAsNDMwMjI3NzM0LDMxMDA4MjM3NTIsNTA2OTQ4NjE2LDEzNjMyNTgxOTUsNjU5MDYwNTU2LDM3NTA2ODU1OTMsODgzOTk3ODc3LDM3ODUwNTAyODAsOTU4MTM5NTcxLDMzMTgzMDc0MjcsMTMyMjgyMjIxOCwzODEyNzIzNDAzLDE1MzcwMDIwNjMsMjAwMzAzNDk5NSwx'@; put 'NzQ3ODczNzc5LDM2MDIwMzY4OTksMTk1NTU2MjIyMiwxNTc1OTkwMDEyLDIwMjQxMDQ4MTUsMTEyNTU5MjkyOCwyMjI3NzMwNDUyLDI3MTY5MDQzMDYsMjM2MTg1MjQyNCw0NDI3NzYwNDQsMjQyODQzNjQ3NCw1OTM2OTgzNDQsMjc1NjczNDE4NywzNzMzMTEwMjQ5LDMyMDQwMzE0NzksMjk5'@; put 'OTM1MTU3MywzMzI5MzI1Mjk4LDM4MTU5MjA0MjcsMzM5MTU2OTYxNCwzOTI4MzgzOTAwLDM1MTUyNjcyNzEsNTY2MjgwNzExLDM5NDAxODc2MDYsMzQ1NDA2OTUzNCw0MTE4NjMwMjcxLDQwMDAyMzk5OTIsMTE2NDE4NDc0LDE5MTQxMzg1NTQsMTc0MjkyNDIxLDI3MzEwNTUyNzAsMjg5Mzgw'@; put 'MzU2LDMyMDM5OTMwMDYsNDYwMzkzMjY5LDMyMDYyMDMxNSw2ODU0NzE3MzMsNTg3NDk2ODM2LDg1MjE0Mjk3MSwxMDg2NzkyODUxLDEwMTcwMzYyOTgsMzY1NTQzMTAwLDExMjYwMDA1ODAsMjYxODI5NzY3NiwxMjg4MDMzNDcwLDM0MDk4NTUxNTgsMTUwMTUwNTk0OCw0MjM0NTA5ODY2LDE2'@; put 'MDcxNjc5MTUsOTg3MTY3NDY4LDE4MTY0MDIzMTYsMTI0NjE4OTU5MV0sdz1uZXcgQXJyYXkoMTYwKTtmdW5jdGlvbiBGKCl7dGhpcy5pbml0KCksdGhpcy5fdz13LF8uY2FsbCh0aGlzLDEyOCwxMTIpfWZ1bmN0aW9uIEgoWCxRLHEpe3JldHVybiBxXlgmKFFecSl9ZnVuY3Rpb24gUihYLFEs'@; put 'cSl7cmV0dXJuIFgmUXxxJihYfFEpfWZ1bmN0aW9uIGooWCxRKXtyZXR1cm4oWD4+PjI4fFE8PDQpXihRPj4+MnxYPDwzMCleKFE+Pj43fFg8PDI1KX1mdW5jdGlvbiBQKFgsUSl7cmV0dXJuKFg+Pj4xNHxRPDwxOCleKFg+Pj4xOHxRPDwxNCleKFE+Pj45fFg8PDIzKX1mdW5jdGlvbiBMKFgs'@; put 'USl7cmV0dXJuKFg+Pj4xfFE8PDMxKV4oWD4+Pjh8UTw8MjQpXlg+Pj43fWZ1bmN0aW9uIFkoWCxRKXtyZXR1cm4oWD4+PjF8UTw8MzEpXihYPj4+OHxRPDwyNCleKFg+Pj43fFE8PDI1KX1mdW5jdGlvbiBCKFgsUSl7cmV0dXJuKFg+Pj4xOXxRPDwxMyleKFE+Pj4yOXxYPDwzKV5YPj4+Nn1m'@; put 'dW5jdGlvbiBXKFgsUSl7cmV0dXJuKFg+Pj4xOXxRPDwxMyleKFE+Pj4yOXxYPDwzKV4oWD4+PjZ8UTw8MjYpfWZ1bmN0aW9uIFooWCxRKXtyZXR1cm4gWD4+PjA8UT4+PjA/MTowfUQoRixfKSxGLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FoPTE3NzkwMzM3MDMs'@; put 'dGhpcy5fYmg9MzE0NDEzNDI3Nyx0aGlzLl9jaD0xMDEzOTA0MjQyLHRoaXMuX2RoPTI3NzM0ODA3NjIsdGhpcy5fZWg9MTM1OTg5MzExOSx0aGlzLl9maD0yNjAwODIyOTI0LHRoaXMuX2doPTUyODczNDYzNSx0aGlzLl9oaD0xNTQxNDU5MjI1LHRoaXMuX2FsPTQwODkyMzU3MjAsdGhpcy5f'@; put 'Ymw9MjIyNzg3MzU5NSx0aGlzLl9jbD00MjcxMTc1NzIzLHRoaXMuX2RsPTE1OTU3NTAxMjksdGhpcy5fZWw9MjkxNzU2NTEzNyx0aGlzLl9mbD03MjU1MTExOTksdGhpcy5fZ2w9NDIxNTM4OTU0Nyx0aGlzLl9obD0zMjcwMzMyMDksdGhpc30sRi5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlv'@; put 'bihYKXtmb3IodmFyIFE9dGhpcy5fdyxxPTB8dGhpcy5fYWgsdGU9MHx0aGlzLl9iaCxpZT0wfHRoaXMuX2NoLHNlPTB8dGhpcy5fZGgsZ2U9MHx0aGlzLl9laCxfZT0wfHRoaXMuX2ZoLFRlPTB8dGhpcy5fZ2gsU2U9MHx0aGlzLl9oaCx6ZT0wfHRoaXMuX2FsLHo9MHx0aGlzLl9ibCxnPTB8'@; put 'dGhpcy5fY2wseT0wfHRoaXMuX2RsLHg9MHx0aGlzLl9lbCxDPTB8dGhpcy5fZmwsVD0wfHRoaXMuX2dsLFY9MHx0aGlzLl9obCxVPTA7VTwzMjtVKz0yKVFbVV09WC5yZWFkSW50MzJCRSg0KlUpLFFbVSsxXT1YLnJlYWRJbnQzMkJFKDQqVSs0KTtmb3IoO1U8MTYwO1UrPTIpe3ZhciBFPVFb'@; put 'VS0zMF0sbT1RW1UtMzArMV0sQT1MKEUsbSksYWU9WShtLEUpLG5lPUIoRT1RW1UtNF0sbT1RW1UtNCsxXSksbGU9VyhtLEUpLFFlPVFbVS0zMl0sYXQ9UVtVLTMyKzFdLHhlPWFlK1FbVS0xNCsxXXwwLHZlPUErUVtVLTE0XStaKHhlLGFlKXwwO3ZlPSh2ZT12ZStuZStaKHhlPXhlK2xlfDAs'@; put 'bGUpfDApK1FlK1ooeGU9eGUrYXR8MCxhdCl8MCxRW1VdPXZlLFFbVSsxXT14ZX1mb3IodmFyIHFlPTA7cWU8MTYwO3FlKz0yKXt2ZT1RW3FlXSx4ZT1RW3FlKzFdO3ZhciBqZT1SKHEsdGUsaWUpLEFlPVIoemUseixnKSxGZT1qKHEsemUpLFJlPWooemUscSksSWU9UChnZSx4KSxIZT1QKHgs'@; put 'Z2UpLERlPU5bcWVdLGtlPU5bcWUrMV0sX3Q9SChnZSxfZSxUZSksbnQ9SCh4LEMsVCksSmU9VitIZXwwLG9uPVNlK0llK1ooSmUsVil8MDtvbj0ob249KG9uPW9uK190K1ooSmU9SmUrbnR8MCxudCl8MCkrRGUrWihKZT1KZStrZXwwLGtlKXwwKSt2ZStaKEplPUplK3hlfDAseGUpfDA7dmFy'@; put 'IHl0PVJlK0FlfDAsTXQ9RmUramUrWih5dCxSZSl8MDtTZT1UZSxWPVQsVGU9X2UsVD1DLF9lPWdlLEM9eCxnZT1zZStvbitaKHg9eStKZXwwLHkpfDAsc2U9aWUseT1nLGllPXRlLGc9eix0ZT1xLHo9emUscT1vbitNdCtaKHplPUplK3l0fDAsSmUpfDB9dGhpcy5fYWw9dGhpcy5fYWwremV8'@; put 'MCx0aGlzLl9ibD10aGlzLl9ibCt6fDAsdGhpcy5fY2w9dGhpcy5fY2wrZ3wwLHRoaXMuX2RsPXRoaXMuX2RsK3l8MCx0aGlzLl9lbD10aGlzLl9lbCt4fDAsdGhpcy5fZmw9dGhpcy5fZmwrQ3wwLHRoaXMuX2dsPXRoaXMuX2dsK1R8MCx0aGlzLl9obD10aGlzLl9obCtWfDAsdGhpcy5fYWg9'@; put 'dGhpcy5fYWgrcStaKHRoaXMuX2FsLHplKXwwLHRoaXMuX2JoPXRoaXMuX2JoK3RlK1oodGhpcy5fYmwseil8MCx0aGlzLl9jaD10aGlzLl9jaCtpZStaKHRoaXMuX2NsLGcpfDAsdGhpcy5fZGg9dGhpcy5fZGgrc2UrWih0aGlzLl9kbCx5KXwwLHRoaXMuX2VoPXRoaXMuX2VoK2dlK1oodGhp'@; put 'cy5fZWwseCl8MCx0aGlzLl9maD10aGlzLl9maCtfZStaKHRoaXMuX2ZsLEMpfDAsdGhpcy5fZ2g9dGhpcy5fZ2grVGUrWih0aGlzLl9nbCxUKXwwLHRoaXMuX2hoPXRoaXMuX2hoK1NlK1oodGhpcy5faGwsVil8MH0sRi5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgWD1wLmFsbG9j'@; put 'VW5zYWZlKDY0KTtmdW5jdGlvbiBRKHEsdGUsaWUpe1gud3JpdGVJbnQzMkJFKHEsaWUpLFgud3JpdGVJbnQzMkJFKHRlLGllKzQpfXJldHVybiBRKHRoaXMuX2FoLHRoaXMuX2FsLDApLFEodGhpcy5fYmgsdGhpcy5fYmwsOCksUSh0aGlzLl9jaCx0aGlzLl9jbCwxNiksUSh0aGlzLl9kaCx0'@; put 'aGlzLl9kbCwyNCksUSh0aGlzLl9laCx0aGlzLl9lbCwzMiksUSh0aGlzLl9maCx0aGlzLl9mbCw0MCksUSh0aGlzLl9naCx0aGlzLl9nbCw0OCksUSh0aGlzLl9oaCx0aGlzLl9obCw1NiksWH0sY2UuZXhwb3J0cz1GfSwyODMwOihjZSxKLGIpPT57Y2UuZXhwb3J0cz1wO3ZhciBEPWIoNzE4'@; put 'NykuRXZlbnRFbWl0dGVyO2Z1bmN0aW9uIHAoKXtELmNhbGwodGhpcyl9Yig1NzE3KShwLEQpLHAuUmVhZGFibGU9Yig5NDgxKSxwLldyaXRhYmxlPWIoNDIyOSkscC5EdXBsZXg9Yig2NzUzKSxwLlRyYW5zZm9ybT1iKDQ2MDUpLHAuUGFzc1Rocm91Z2g9YigyNzI1KSxwLmZpbmlzaGVkPWIo'@; put 'ODYxMCkscC5waXBlbGluZT1iKDk5NDYpLHAuU3RyZWFtPXAscC5wcm90b3R5cGUucGlwZT1mdW5jdGlvbihOLHcpe3ZhciBGPXRoaXM7ZnVuY3Rpb24gSChXKXtOLndyaXRhYmxlJiYhMT09PU4ud3JpdGUoVykmJkYucGF1c2UmJkYucGF1c2UoKX1mdW5jdGlvbiBSKCl7Ri5yZWFkYWJsZSYm'@; put 'Ri5yZXN1bWUmJkYucmVzdW1lKCl9Ri5vbigiZGF0YSIsSCksTi5vbigiZHJhaW4iLFIpLCFOLl9pc1N0ZGlvJiYoIXd8fCExIT09dy5lbmQpJiYoRi5vbigiZW5kIixQKSxGLm9uKCJjbG9zZSIsTCkpO3ZhciBqPSExO2Z1bmN0aW9uIFAoKXtqfHwoaj0hMCxOLmVuZCgpKX1mdW5jdGlvbiBM'@; put 'KCl7anx8KGo9ITAsImZ1bmN0aW9uIj09dHlwZW9mIE4uZGVzdHJveSYmTi5kZXN0cm95KCkpfWZ1bmN0aW9uIFkoVyl7aWYoQigpLDA9PT1ELmxpc3RlbmVyQ291bnQodGhpcywiZXJyb3IiKSl0aHJvdyBXfWZ1bmN0aW9uIEIoKXtGLnJlbW92ZUxpc3RlbmVyKCJkYXRhIixIKSxOLnJlbW92'@; put 'ZUxpc3RlbmVyKCJkcmFpbiIsUiksRi5yZW1vdmVMaXN0ZW5lcigiZW5kIixQKSxGLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsTCksRi5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLFkpLE4ucmVtb3ZlTGlzdGVuZXIoImVycm9yIixZKSxGLnJlbW92ZUxpc3RlbmVyKCJlbmQiLEIpLEYucmVtb3Zl'@; put 'TGlzdGVuZXIoImNsb3NlIixCKSxOLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsQil9cmV0dXJuIEYub24oImVycm9yIixZKSxOLm9uKCJlcnJvciIsWSksRi5vbigiZW5kIixCKSxGLm9uKCJjbG9zZSIsQiksTi5vbigiY2xvc2UiLEIpLE4uZW1pdCgicGlwZSIsRiksTn19LDI1NTM6KGNlLEos'@; put 'Yik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig5NTA5KS5CdWZmZXIsXz1ELmlzRW5jb2Rpbmd8fGZ1bmN0aW9uKHEpe3N3aXRjaCgocT0iIitxKSYmcS50b0xvd2VyQ2FzZSgpKXtjYXNlImhleCI6Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpjYXNlImFzY2lpIjpjYXNlImJpbmFyeSI6Y2FzZSJi'@; put 'YXNlNjQiOmNhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpjYXNlInJhdyI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19O2Z1bmN0aW9uIHcocSl7dmFyIHRlO3N3aXRjaCh0aGlzLmVuY29kaW5nPWZ1bmN0aW9uIE4ocSl7dmFyIHRlPWZ1bmN0'@; put 'aW9uIHAocSl7aWYoIXEpcmV0dXJuInV0ZjgiO2Zvcih2YXIgdGU7Oylzd2l0Y2gocSl7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4idXRmOCI7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiJ1dGYxNmxlIjtjYXNlImxhdGlu'@; put 'MSI6Y2FzZSJiaW5hcnkiOnJldHVybiJsYXRpbjEiO2Nhc2UiYmFzZTY0IjpjYXNlImFzY2lpIjpjYXNlImhleCI6cmV0dXJuIHE7ZGVmYXVsdDppZih0ZSlyZXR1cm47cT0oIiIrcSkudG9Mb3dlckNhc2UoKSx0ZT0hMH19KHEpO2lmKCJzdHJpbmciIT10eXBlb2YgdGUmJihELmlzRW5jb2Rp'@; put 'bmc9PT1ffHwhXyhxKSkpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK3EpO3JldHVybiB0ZXx8cX0ocSksdGhpcy5lbmNvZGluZyl7Y2FzZSJ1dGYxNmxlIjp0aGlzLnRleHQ9WSx0aGlzLmVuZD1CLHRlPTQ7YnJlYWs7Y2FzZSJ1dGY4Ijp0aGlzLmZpbGxMYXN0PWosdGU9'@; put 'NDticmVhaztjYXNlImJhc2U2NCI6dGhpcy50ZXh0PVcsdGhpcy5lbmQ9Wix0ZT0zO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIHRoaXMud3JpdGU9WCx2b2lkKHRoaXMuZW5kPVEpfXRoaXMubGFzdE5lZWQ9MCx0aGlzLmxhc3RUb3RhbD0wLHRoaXMubGFzdENoYXI9RC5hbGxvY1Vuc2FmZSh0ZSl9'@; put 'ZnVuY3Rpb24gRihxKXtyZXR1cm4gcTw9MTI3PzA6cT4+NT09Nj8yOnE+PjQ9PTE0PzM6cT4+Mz09MzA/NDpxPj42PT0yPy0xOi0yfWZ1bmN0aW9uIGoocSl7dmFyIHRlPXRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQsaWU9ZnVuY3Rpb24gUihxLHRlLGllKXtpZigxMjghPSgxOTImdGVb'@; put 'MF0pKXJldHVybiBxLmxhc3ROZWVkPTAsIlx1ZmZmZCI7aWYocS5sYXN0TmVlZD4xJiZ0ZS5sZW5ndGg+MSl7aWYoMTI4IT0oMTkyJnRlWzFdKSlyZXR1cm4gcS5sYXN0TmVlZD0xLCJcdWZmZmQiO2lmKHEubGFzdE5lZWQ+MiYmdGUubGVuZ3RoPjImJjEyOCE9KDE5MiZ0ZVsyXSkpcmV0dXJu'@; put 'IHEubGFzdE5lZWQ9MiwiXHVmZmZkIn19KHRoaXMscSk7cmV0dXJuIHZvaWQgMCE9PWllP2llOnRoaXMubGFzdE5lZWQ8PXEubGVuZ3RoPyhxLmNvcHkodGhpcy5sYXN0Q2hhcix0ZSwwLHRoaXMubGFzdE5lZWQpLHRoaXMubGFzdENoYXIudG9TdHJpbmcodGhpcy5lbmNvZGluZywwLHRoaXMu'@; put 'bGFzdFRvdGFsKSk6KHEuY29weSh0aGlzLmxhc3RDaGFyLHRlLDAscS5sZW5ndGgpLHZvaWQodGhpcy5sYXN0TmVlZC09cS5sZW5ndGgpKX1mdW5jdGlvbiBZKHEsdGUpe2lmKChxLmxlbmd0aC10ZSklMj09MCl7dmFyIGllPXEudG9TdHJpbmcoInV0ZjE2bGUiLHRlKTtpZihpZSl7dmFyIHNl'@; put 'PWllLmNoYXJDb2RlQXQoaWUubGVuZ3RoLTEpO2lmKHNlPj01NTI5NiYmc2U8PTU2MzE5KXJldHVybiB0aGlzLmxhc3ROZWVkPTIsdGhpcy5sYXN0VG90YWw9NCx0aGlzLmxhc3RDaGFyWzBdPXFbcS5sZW5ndGgtMl0sdGhpcy5sYXN0Q2hhclsxXT1xW3EubGVuZ3RoLTFdLGllLnNsaWNlKDAs'@; put 'LTEpfXJldHVybiBpZX1yZXR1cm4gdGhpcy5sYXN0TmVlZD0xLHRoaXMubGFzdFRvdGFsPTIsdGhpcy5sYXN0Q2hhclswXT1xW3EubGVuZ3RoLTFdLHEudG9TdHJpbmcoInV0ZjE2bGUiLHRlLHEubGVuZ3RoLTEpfWZ1bmN0aW9uIEIocSl7dmFyIHRlPXEmJnEubGVuZ3RoP3RoaXMud3JpdGUo'@; put 'cSk6IiI7cmV0dXJuIHRoaXMubGFzdE5lZWQ/dGUrdGhpcy5sYXN0Q2hhci50b1N0cmluZygidXRmMTZsZSIsMCx0aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkKTp0ZX1mdW5jdGlvbiBXKHEsdGUpe3ZhciBpZT0ocS5sZW5ndGgtdGUpJTM7cmV0dXJuIDA9PT1pZT9xLnRvU3RyaW5nKCJi'@; put 'YXNlNjQiLHRlKToodGhpcy5sYXN0TmVlZD0zLWllLHRoaXMubGFzdFRvdGFsPTMsMT09PWllP3RoaXMubGFzdENoYXJbMF09cVtxLmxlbmd0aC0xXToodGhpcy5sYXN0Q2hhclswXT1xW3EubGVuZ3RoLTJdLHRoaXMubGFzdENoYXJbMV09cVtxLmxlbmd0aC0xXSkscS50b1N0cmluZygiYmFz'@; put 'ZTY0Iix0ZSxxLmxlbmd0aC1pZSkpfWZ1bmN0aW9uIFoocSl7dmFyIHRlPXEmJnEubGVuZ3RoP3RoaXMud3JpdGUocSk6IiI7cmV0dXJuIHRoaXMubGFzdE5lZWQ/dGUrdGhpcy5sYXN0Q2hhci50b1N0cmluZygiYmFzZTY0IiwwLDMtdGhpcy5sYXN0TmVlZCk6dGV9ZnVuY3Rpb24gWChxKXty'@; put 'ZXR1cm4gcS50b1N0cmluZyh0aGlzLmVuY29kaW5nKX1mdW5jdGlvbiBRKHEpe3JldHVybiBxJiZxLmxlbmd0aD90aGlzLndyaXRlKHEpOiIifUoucz13LHcucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKHEpe2lmKDA9PT1xLmxlbmd0aClyZXR1cm4iIjt2YXIgdGUsaWU7aWYodGhpcy5sYXN0'@; put 'TmVlZCl7aWYodm9pZCAwPT09KHRlPXRoaXMuZmlsbExhc3QocSkpKXJldHVybiIiO2llPXRoaXMubGFzdE5lZWQsdGhpcy5sYXN0TmVlZD0wfWVsc2UgaWU9MDtyZXR1cm4gaWU8cS5sZW5ndGg/dGU/dGUrdGhpcy50ZXh0KHEsaWUpOnRoaXMudGV4dChxLGllKTp0ZXx8IiJ9LHcucHJvdG90'@; put 'eXBlLmVuZD1mdW5jdGlvbiBMKHEpe3ZhciB0ZT1xJiZxLmxlbmd0aD90aGlzLndyaXRlKHEpOiIiO3JldHVybiB0aGlzLmxhc3ROZWVkP3RlKyJcdWZmZmQiOnRlfSx3LnByb3RvdHlwZS50ZXh0PWZ1bmN0aW9uIFAocSx0ZSl7dmFyIGllPWZ1bmN0aW9uIEgocSx0ZSxpZSl7dmFyIHNlPXRl'@; put 'Lmxlbmd0aC0xO2lmKHNlPGllKXJldHVybiAwO3ZhciBnZT1GKHRlW3NlXSk7cmV0dXJuIGdlPj0wPyhnZT4wJiYocS5sYXN0TmVlZD1nZS0xKSxnZSk6LS1zZTxpZXx8LTI9PT1nZT8wOihnZT1GKHRlW3NlXSkpPj0wPyhnZT4wJiYocS5sYXN0TmVlZD1nZS0yKSxnZSk6LS1zZTxpZXx8LTI9'@; put 'PT1nZT8wOihnZT1GKHRlW3NlXSkpPj0wPyhnZT4wJiYoMj09PWdlP2dlPTA6cS5sYXN0TmVlZD1nZS0zKSxnZSk6MH0odGhpcyxxLHRlKTtpZighdGhpcy5sYXN0TmVlZClyZXR1cm4gcS50b1N0cmluZygidXRmOCIsdGUpO3RoaXMubGFzdFRvdGFsPWllO3ZhciBzZT1xLmxlbmd0aC0oaWUt'@; put 'dGhpcy5sYXN0TmVlZCk7cmV0dXJuIHEuY29weSh0aGlzLmxhc3RDaGFyLDAsc2UpLHEudG9TdHJpbmcoInV0ZjgiLHRlLHNlKX0sdy5wcm90b3R5cGUuZmlsbExhc3Q9ZnVuY3Rpb24ocSl7aWYodGhpcy5sYXN0TmVlZDw9cS5sZW5ndGgpcmV0dXJuIHEuY29weSh0aGlzLmxhc3RDaGFyLHRo'@; put 'aXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQsMCx0aGlzLmxhc3ROZWVkKSx0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKHRoaXMuZW5jb2RpbmcsMCx0aGlzLmxhc3RUb3RhbCk7cS5jb3B5KHRoaXMubGFzdENoYXIsdGhpcy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZCwwLHEubGVuZ3RoKSx0aGlz'@; put 'Lmxhc3ROZWVkLT1xLmxlbmd0aH19LDc4NTc6KGNlLEosYik9PnsidXNlIHN0cmljdCI7Y29uc3QgRD1iKDM2ODkpLF89Yig0NTY0KSxwPWIoNzUyKSxOPWIoMjIyNCkueSx3PWIoNTc2MSkubSxGPWIoODk3MSkuVSxIPWIoNzY1MiksUj1iKDQ1Nikse2Zyb21DYWxsYmFjazpqfT1iKDcwNDEp'@; put 'LHtnZXRDdXN0b21JbnNwZWN0U3ltYm9sOlB9PWIoMTI2OSksTD0vXltceDIxXHgyMy1ceDJCXHgyRC1ceDNBXHgzQy1ceDVCXHg1RC1ceDdFXSskLyxZPS9bXHgwMC1ceDFGXS8sQj1bIlxuIiwiXHIiLCJcMCJdLFc9L1tceDIwLVx4M0FceDNDLVx4N0VdKy8sWj0vW1x4MDlceDIwLVx4MkZc'@; put 'eDNCLVx4NDBceDVCLVx4NjBceDdCLVx4N0VdLyxYPXtqYW46MCxmZWI6MSxtYXI6MixhcHI6MyxtYXk6NCxqdW46NSxqdWw6NixhdWc6NyxzZXA6OCxvY3Q6OSxub3Y6MTAsZGVjOjExfSxRPTIxNDc0ODM2NDdlMyx0ZT0nSW52YWxpZCBzYW1lU2l0ZUNvbnRleHQgb3B0aW9uIGZvciBnZXRD'@; put 'b29raWVzKCk7IGV4cGVjdGVkIG9uZSBvZiAic3RyaWN0IiwgImxheCIsIG9yICJub25lIic7ZnVuY3Rpb24gaWUoamUpe0gudmFsaWRhdGUoSC5pc05vbkVtcHR5U3RyaW5nKGplKSxqZSk7Y29uc3QgQWU9U3RyaW5nKGplKS50b0xvd2VyQ2FzZSgpO3JldHVybiJub25lIj09PUFlfHwibGF4'@; put 'Ij09PUFlfHwic3RyaWN0Ij09PUFlP0FlOm51bGx9Y29uc3Qgc2U9T2JqZWN0LmZyZWV6ZSh7U0lMRU5UOiJzaWxlbnQiLFNUUklDVDoic3RyaWN0IixESVNBQkxFRDoidW5zYWZlLWRpc2FibGVkIn0pLGdlPS8oPzpeKD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSg/Olwu'@; put 'KD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSl7M30kKXwoPzpeKD86KD86W2EtZlxkXXsxLDR9Oil7N30oPzpbYS1mXGRdezEsNH18Oil8KD86W2EtZlxkXXsxLDR9Oil7Nn0oPzooPzoyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldXGR8XGQpKD86XC4oPzoyNVswLTVd'@; put 'fDJbMC00XVxkfDFcZFxkfFsxLTldXGR8XGQpKXszfXw6W2EtZlxkXXsxLDR9fDopfCg/OlthLWZcZF17MSw0fTopezV9KD86Oig/OjI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV1cZHxcZCkoPzpcLig/OjI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV1cZHxcZCkpezN9fCg/OjpbYS1m'@; put 'XGRdezEsNH0pezEsMn18Oil8KD86W2EtZlxkXXsxLDR9Oil7NH0oPzooPzo6W2EtZlxkXXsxLDR9KXswLDF9Oig/OjI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV1cZHxcZCkoPzpcLig/OjI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV1cZHxcZCkpezN9fCg/OjpbYS1mXGRdezEsNH0p'@; put 'ezEsM318Oil8KD86W2EtZlxkXXsxLDR9Oil7M30oPzooPzo6W2EtZlxkXXsxLDR9KXswLDJ9Oig/OjI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV1cZHxcZCkoPzpcLig/OjI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV1cZHxcZCkpezN9fCg/OjpbYS1mXGRdezEsNH0pezEsNH18Oil8'@; put 'KD86W2EtZlxkXXsxLDR9Oil7Mn0oPzooPzo6W2EtZlxkXXsxLDR9KXswLDN9Oig/OjI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV1cZHxcZCkoPzpcLig/OjI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV1cZHxcZCkpezN9fCg/OjpbYS1mXGRdezEsNH0pezEsNX18Oil8KD86W2EtZlxk'@; put 'XXsxLDR9Oil7MX0oPzooPzo6W2EtZlxkXXsxLDR9KXswLDR9Oig/OjI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV1cZHxcZCkoPzpcLig/OjI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV1cZHxcZCkpezN9fCg/OjpbYS1mXGRdezEsNH0pezEsNn18Oil8KD86Oig/Oig/OjpbYS1mXGRd'@; put 'ezEsNH0pezAsNX06KD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSg/OlwuKD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSl7M318KD86OlthLWZcZF17MSw0fSl7MSw3fXw6KSkpJCkvLF9lPSJcblxcWz8oPzpcbig/OlthLWZBLUZcXGRdezEsNH06KXs3'@; put 'fSg/OlthLWZBLUZcXGRdezEsNH18Oil8XG4oPzpbYS1mQS1GXFxkXXsxLDR9Oil7Nn0oPzooPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldXFxkfFxcZCkoPzpcXC4oPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldXFxkfFxcZCkpezN9fDpbYS1mQS1GXFxkXXsxLDR9'@; put 'fDopfFxuKD86W2EtZkEtRlxcZF17MSw0fTopezV9KD86Oig/OjI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV1cXGR8XFxkKSg/OlxcLig/OjI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV1cXGR8XFxkKSl7M318KD86OlthLWZBLUZcXGRdezEsNH0pezEsMn18Oil8XG4oPzpb'@; put 'YS1mQS1GXFxkXXsxLDR9Oil7NH0oPzooPzo6W2EtZkEtRlxcZF17MSw0fSl7MCwxfTooPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldXFxkfFxcZCkoPzpcXC4oPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldXFxkfFxcZCkpezN9fCg/OjpbYS1mQS1GXFxkXXsxLDR9'@; put 'KXsxLDN9fDopfFxuKD86W2EtZkEtRlxcZF17MSw0fTopezN9KD86KD86OlthLWZBLUZcXGRdezEsNH0pezAsMn06KD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XVxcZHxcXGQpKD86XFwuKD86MjVbMC01XXwyWzAtNF1cXGR8MVxcZFxcZHxbMS05XVxcZHxcXGQpKXszfXwoPzo6'@; put 'W2EtZkEtRlxcZF17MSw0fSl7MSw0fXw6KXxcbig/OlthLWZBLUZcXGRdezEsNH06KXsyfSg/Oig/OjpbYS1mQS1GXFxkXXsxLDR9KXswLDN9Oig/OjI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV1cXGR8XFxkKSg/OlxcLig/OjI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV1c'@; put 'XGR8XFxkKSl7M318KD86OlthLWZBLUZcXGRdezEsNH0pezEsNX18Oil8XG4oPzpbYS1mQS1GXFxkXXsxLDR9Oil7MX0oPzooPzo6W2EtZkEtRlxcZF17MSw0fSl7MCw0fTooPzoyNVswLTVdfDJbMC00XVxcZHwxXFxkXFxkfFsxLTldXFxkfFxcZCkoPzpcXC4oPzoyNVswLTVdfDJbMC00XVxc'@; put 'ZHwxXFxkXFxkfFsxLTldXFxkfFxcZCkpezN9fCg/OjpbYS1mQS1GXFxkXXsxLDR9KXsxLDZ9fDopfFxuKD86Oig/Oig/OjpbYS1mQS1GXFxkXXsxLDR9KXswLDV9Oig/OjI1WzAtNV18MlswLTRdXFxkfDFcXGRcXGR8WzEtOV1cXGR8XFxkKSg/OlxcLig/OjI1WzAtNV18MlswLTRdXFxkfDFc'@; put 'XGRcXGR8WzEtOV1cXGR8XFxkKSl7M318KD86OlthLWZBLUZcXGRdezEsNH0pezEsN318OikpXG4pKD86JVswLTlhLXpBLVpdezEsfSk/XFxdP1xuIi5yZXBsYWNlKC9ccypcL1wvLiokL2dtLCIiKS5yZXBsYWNlKC9cbi9nLCIiKS50cmltKCksVGU9bmV3IFJlZ0V4cChgXiR7X2V9JGApO2Z1'@; put 'bmN0aW9uIFNlKGplLEFlLEZlLFJlKXtsZXQgSWU9MDtmb3IoO0llPGplLmxlbmd0aDspe2NvbnN0IEhlPWplLmNoYXJDb2RlQXQoSWUpO2lmKEhlPD00N3x8SGU+PTU4KWJyZWFrO0llKyt9cmV0dXJuIEllPEFlfHxJZT5GZXx8IVJlJiZJZSE9amUubGVuZ3RoP251bGw6cGFyc2VJbnQoamUu'@; put 'c3Vic3RyKDAsSWUpLDEwKX1mdW5jdGlvbiB6ZShqZSl7Y29uc3QgQWU9amUuc3BsaXQoIjoiKSxGZT1bMCwwLDBdO2lmKDMhPT1BZS5sZW5ndGgpcmV0dXJuIG51bGw7Zm9yKGxldCBSZT0wO1JlPDM7UmUrKyl7Y29uc3QgSGU9U2UoQWVbUmVdLDEsMiwyPT1SZSk7aWYobnVsbD09PUhlKXJl'@; put 'dHVybiBudWxsO0ZlW1JlXT1IZX1yZXR1cm4gRmV9ZnVuY3Rpb24geihqZSl7amU9U3RyaW5nKGplKS5zdWJzdHIoMCwzKS50b0xvd2VyQ2FzZSgpO2NvbnN0IEFlPVhbamVdO3JldHVybiBBZT49MD9BZTpudWxsfWZ1bmN0aW9uIGcoamUpe2lmKCFqZSlyZXR1cm47Y29uc3QgQWU9amUuc3Bs'@; put 'aXQoWik7aWYoIUFlKXJldHVybjtsZXQgRmU9bnVsbCxSZT1udWxsLEllPW51bGwsSGU9bnVsbCxEZT1udWxsLGtlPW51bGw7Zm9yKGxldCBfdD0wO190PEFlLmxlbmd0aDtfdCsrKXtjb25zdCBudD1BZVtfdF0udHJpbSgpO2lmKCFudC5sZW5ndGgpY29udGludWU7bGV0IEplO251bGw9PT1J'@; put 'ZSYmKEplPXplKG50KSxKZSk/KEZlPUplWzBdLFJlPUplWzFdLEllPUplWzJdKTpudWxsIT09SGV8fChKZT1TZShudCwxLDIsITApLG51bGw9PT1KZSk/bnVsbCE9PURlfHwoSmU9eihudCksbnVsbD09PUplKT9udWxsPT09a2UmJihKZT1TZShudCwyLDQsITApLG51bGwhPT1KZSYmKGtlPUpl'@; put 'LGtlPj03MCYma2U8PTk5P2tlKz0xOTAwOmtlPj0wJiZrZTw9NjkmJihrZSs9MmUzKSkpOkRlPUplOkhlPUplfXJldHVybiBudWxsPT09SGV8fG51bGw9PT1EZXx8bnVsbD09PWtlfHxudWxsPT09SWV8fEhlPDF8fEhlPjMxfHxrZTwxNjAxfHxGZT4yM3x8UmU+NTl8fEllPjU5P3ZvaWQgMDpu'@; put 'ZXcgRGF0ZShEYXRlLlVUQyhrZSxEZSxIZSxGZSxSZSxJZSkpfWZ1bmN0aW9uIHkoamUpe3JldHVybiBILnZhbGlkYXRlKEguaXNEYXRlKGplKSxqZSksamUudG9VVENTdHJpbmcoKX1mdW5jdGlvbiB4KGplKXtyZXR1cm4gbnVsbD09amU/bnVsbDooamU9amUudHJpbSgpLnJlcGxhY2UoL15c'@; put 'Li8sIiIpLFRlLnRlc3QoamUpJiYoamU9amUucmVwbGFjZSgiWyIsIiIpLnJlcGxhY2UoIl0iLCIiKSksRCYmL1teXHUwMDAxLVx1MDA3Zl0vLnRlc3QoamUpJiYoamU9RC50b0FTQ0lJKGplKSksamUudG9Mb3dlckNhc2UoKSl9ZnVuY3Rpb24gQyhqZSxBZSxGZSl7aWYobnVsbD09amV8fG51'@; put 'bGw9PUFlKXJldHVybiBudWxsO2lmKCExIT09RmUmJihqZT14KGplKSxBZT14KEFlKSksamU9PUFlKXJldHVybiEwO2NvbnN0IFJlPWplLmxhc3RJbmRleE9mKEFlKTtyZXR1cm4hKFJlPD0wfHxqZS5sZW5ndGghPT1BZS5sZW5ndGgrUmV8fCIuIiE9PWplLnN1YnN0cihSZS0xLDEpfHxnZS50'@; put 'ZXN0KGplKSl9ZnVuY3Rpb24gVChqZSl7aWYoIWplfHwiLyIhPT1qZS5zdWJzdHIoMCwxKSlyZXR1cm4iLyI7aWYoIi8iPT09amUpcmV0dXJuIGplO2NvbnN0IEFlPWplLmxhc3RJbmRleE9mKCIvIik7cmV0dXJuIDA9PT1BZT8iLyI6amUuc2xpY2UoMCxBZSl9ZnVuY3Rpb24gRShqZSxBZSl7'@; put 'aWYoKCFBZXx8Im9iamVjdCIhPXR5cGVvZiBBZSkmJihBZT17fSksSC5pc0VtcHR5U3RyaW5nKGplKXx8IUguaXNTdHJpbmcoamUpKXJldHVybiBudWxsO2NvbnN0IEZlPShqZT1qZS50cmltKCkpLmluZGV4T2YoIjsiKSxJZT1mdW5jdGlvbiBVKGplLEFlKXtqZT1mdW5jdGlvbiBWKGplKXtp'@; put 'ZihILmlzRW1wdHlTdHJpbmcoamUpKXJldHVybiBqZTtmb3IobGV0IEFlPTA7QWU8Qi5sZW5ndGg7QWUrKyl7Y29uc3QgRmU9amUuaW5kZXhPZihCW0FlXSk7LTEhPT1GZSYmKGplPWplLnN1YnN0cigwLEZlKSl9cmV0dXJuIGplfShqZSksSC52YWxpZGF0ZShILmlzU3RyaW5nKGplKSxqZSk7'@; put 'bGV0IFJlLEllLEZlPWplLmluZGV4T2YoIj0iKTtpZihBZSkwPT09RmUmJihGZT0oamU9amUuc3Vic3RyKDEpKS5pbmRleE9mKCI9IikpO2Vsc2UgaWYoRmU8PTApcmV0dXJuO2lmKEZlPD0wPyhSZT0iIixJZT1qZS50cmltKCkpOihSZT1qZS5zdWJzdHIoMCxGZSkudHJpbSgpLEllPWplLnN1'@; put 'YnN0cihGZSsxKS50cmltKCkpLFkudGVzdChSZSl8fFkudGVzdChJZSkpcmV0dXJuO2NvbnN0IEhlPW5ldyBhdDtyZXR1cm4gSGUua2V5PVJlLEhlLnZhbHVlPUllLEhlfSgtMT09PUZlP2plOmplLnN1YnN0cigwLEZlKSwhIUFlLmxvb3NlKTtpZighSWUpcmV0dXJuO2lmKC0xPT09RmUpcmV0'@; put 'dXJuIEllO2NvbnN0IEhlPWplLnNsaWNlKEZlKzEpLnRyaW0oKTtpZigwPT09SGUubGVuZ3RoKXJldHVybiBJZTtjb25zdCBEZT1IZS5zcGxpdCgiOyIpO2Zvcig7RGUubGVuZ3RoOyl7Y29uc3Qga2U9RGUuc2hpZnQoKS50cmltKCk7aWYoMD09PWtlLmxlbmd0aCljb250aW51ZTtjb25zdCBf'@; put 'dD1rZS5pbmRleE9mKCI9Iik7bGV0IG50LEplO3N3aXRjaCgtMT09PV90PyhudD1rZSxKZT1udWxsKToobnQ9a2Uuc3Vic3RyKDAsX3QpLEplPWtlLnN1YnN0cihfdCsxKSksbnQ9bnQudHJpbSgpLnRvTG93ZXJDYXNlKCksSmUmJihKZT1KZS50cmltKCkpLG50KXtjYXNlImV4cGlyZXMiOmlm'@; put 'KEplKXtjb25zdCB5dD1nKEplKTt5dCYmKEllLmV4cGlyZXM9eXQpfWJyZWFrO2Nhc2UibWF4LWFnZSI6aWYoSmUmJi9eLT9bMC05XSskLy50ZXN0KEplKSl7Y29uc3QgeXQ9cGFyc2VJbnQoSmUsMTApO0llLnNldE1heEFnZSh5dCl9YnJlYWs7Y2FzZSJkb21haW4iOmlmKEplKXtjb25zdCB5'@; put 'dD1KZS50cmltKCkucmVwbGFjZSgvXlwuLywiIik7eXQmJihJZS5kb21haW49eXQudG9Mb3dlckNhc2UoKSl9YnJlYWs7Y2FzZSJwYXRoIjpJZS5wYXRoPUplJiYiLyI9PT1KZVswXT9KZTpudWxsO2JyZWFrO2Nhc2Uic2VjdXJlIjpJZS5zZWN1cmU9ITA7YnJlYWs7Y2FzZSJodHRwb25seSI6'@; put 'SWUuaHR0cE9ubHk9ITA7YnJlYWs7Y2FzZSJzYW1lc2l0ZSI6c3dpdGNoKEplP0plLnRvTG93ZXJDYXNlKCk6IiIpe2Nhc2Uic3RyaWN0IjpJZS5zYW1lU2l0ZT0ic3RyaWN0IjticmVhaztjYXNlImxheCI6SWUuc2FtZVNpdGU9ImxheCI7YnJlYWs7Y2FzZSJub25lIjpJZS5zYW1lU2l0ZT0i'@; put 'bm9uZSI7YnJlYWs7ZGVmYXVsdDpJZS5zYW1lU2l0ZT12b2lkIDB9YnJlYWs7ZGVmYXVsdDpJZS5leHRlbnNpb25zPUllLmV4dGVuc2lvbnN8fFtdLEllLmV4dGVuc2lvbnMucHVzaChrZSl9fXJldHVybiBJZX1mdW5jdGlvbiBhZShqZSl7bGV0IEFlO3RyeXtBZT1KU09OLnBhcnNlKGplKX1j'@; put 'YXRjaChGZSl7cmV0dXJuIEZlfXJldHVybiBBZX1mdW5jdGlvbiBuZShqZSl7aWYoIWplfHxILmlzRW1wdHlTdHJpbmcoamUpKXJldHVybiBudWxsO2xldCBBZTtpZigic3RyaW5nIj09dHlwZW9mIGplKXtpZihBZT1hZShqZSksQWUgaW5zdGFuY2VvZiBFcnJvcilyZXR1cm4gbnVsbH1lbHNl'@; put 'IEFlPWplO2NvbnN0IEZlPW5ldyBhdDtmb3IobGV0IFJlPTA7UmU8YXQuc2VyaWFsaXphYmxlUHJvcGVydGllcy5sZW5ndGg7UmUrKyl7Y29uc3QgSWU9YXQuc2VyaWFsaXphYmxlUHJvcGVydGllc1tSZV07dm9pZCAwPT09QWVbSWVdfHxBZVtJZV09PT1RZVtJZV18fChGZVtJZV09ImV4cGly'@; put 'ZXMiPT09SWV8fCJjcmVhdGlvbiI9PT1JZXx8Imxhc3RBY2Nlc3NlZCI9PT1JZT9udWxsPT09QWVbSWVdP251bGw6IkluZmluaXR5Ij09QWVbSWVdPyJJbmZpbml0eSI6bmV3IERhdGUoQWVbSWVdKTpBZVtJZV0pfXJldHVybiBGZX1mdW5jdGlvbiBsZShqZSxBZSl7SC52YWxpZGF0ZShILmlz'@; put 'T2JqZWN0KGplKSxqZSksSC52YWxpZGF0ZShILmlzT2JqZWN0KEFlKSxBZSk7bGV0IEZlPTA7cmV0dXJuIEZlPShBZS5wYXRoP0FlLnBhdGgubGVuZ3RoOjApLShqZS5wYXRoP2plLnBhdGgubGVuZ3RoOjApLDAhPT1GZXx8KEZlPShqZS5jcmVhdGlvbj9qZS5jcmVhdGlvbi5nZXRUaW1lKCk6'@; put 'USktKEFlLmNyZWF0aW9uP0FlLmNyZWF0aW9uLmdldFRpbWUoKTpRKSwwIT09RmV8fChGZT1qZS5jcmVhdGlvbkluZGV4LUFlLmNyZWF0aW9uSW5kZXgpKSxGZX1mdW5jdGlvbiBaZShqZSl7aWYoamUgaW5zdGFuY2VvZiBPYmplY3QpcmV0dXJuIGplO3RyeXtqZT1kZWNvZGVVUkkoamUpfWNh'@; put 'dGNoe31yZXR1cm4gXyhqZSl9Y29uc3QgUWU9e2tleToiIix2YWx1ZToiIixleHBpcmVzOiJJbmZpbml0eSIsbWF4QWdlOm51bGwsZG9tYWluOm51bGwscGF0aDpudWxsLHNlY3VyZTohMSxodHRwT25seTohMSxleHRlbnNpb25zOm51bGwsaG9zdE9ubHk6bnVsbCxwYXRoSXNEZWZhdWx0Om51'@; put 'bGwsY3JlYXRpb246bnVsbCxsYXN0QWNjZXNzZWQ6bnVsbCxzYW1lU2l0ZTp2b2lkIDB9O2NsYXNzIGF0e2NvbnN0cnVjdG9yKEFlPXt9KXtjb25zdCBGZT1QKCk7RmUmJih0aGlzW0ZlXT10aGlzLmluc3BlY3QpLE9iamVjdC5hc3NpZ24odGhpcyxRZSxBZSksdGhpcy5jcmVhdGlvbj10aGlz'@; put 'LmNyZWF0aW9ufHxuZXcgRGF0ZSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiY3JlYXRpb25JbmRleCIse2NvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLHZhbHVlOisrYXQuY29va2llc0NyZWF0ZWR9KX1pbnNwZWN0KCl7Y29uc3QgQWU9RGF0ZS5ub3coKSxG'@; put 'ZT1udWxsIT10aGlzLmhvc3RPbmx5P3RoaXMuaG9zdE9ubHk6Ij8iLFJlPXRoaXMuY3JlYXRpb24/QWUtdGhpcy5jcmVhdGlvbi5nZXRUaW1lKCkrIm1zIjoiPyIsSWU9dGhpcy5sYXN0QWNjZXNzZWQ/QWUtdGhpcy5sYXN0QWNjZXNzZWQuZ2V0VGltZSgpKyJtcyI6Ij8iO3JldHVybmBDb29r'@; put 'aWU9IiR7dGhpcy50b1N0cmluZygpfTsgaG9zdE9ubHk9JHtGZX07IGFBZ2U9JHtJZX07IGNBZ2U9JHtSZX0iYH10b0pTT04oKXtjb25zdCBBZT17fTtmb3IoY29uc3QgRmUgb2YgYXQuc2VyaWFsaXphYmxlUHJvcGVydGllcyl0aGlzW0ZlXSE9PVFlW0ZlXSYmKCJleHBpcmVzIj09PUZlfHwi'@; put 'Y3JlYXRpb24iPT09RmV8fCJsYXN0QWNjZXNzZWQiPT09RmU/QWVbRmVdPW51bGw9PT10aGlzW0ZlXT9udWxsOiJJbmZpbml0eSI9PXRoaXNbRmVdPyJJbmZpbml0eSI6dGhpc1tGZV0udG9JU09TdHJpbmcoKToibWF4QWdlIj09PUZlP251bGwhPT10aGlzW0ZlXSYmKEFlW0ZlXT10aGlzW0Zl'@; put 'XT09MS8wfHx0aGlzW0ZlXT09LTEvMD90aGlzW0ZlXS50b1N0cmluZygpOnRoaXNbRmVdKTp0aGlzW0ZlXSE9PVFlW0ZlXSYmKEFlW0ZlXT10aGlzW0ZlXSkpO3JldHVybiBBZX1jbG9uZSgpe3JldHVybiBuZSh0aGlzLnRvSlNPTigpKX12YWxpZGF0ZSgpe2lmKCFMLnRlc3QodGhpcy52YWx1'@; put 'ZSl8fHRoaXMuZXhwaXJlcyE9MS8wJiYhKHRoaXMuZXhwaXJlcyBpbnN0YW5jZW9mIERhdGUpJiYhZyh0aGlzLmV4cGlyZXMpfHxudWxsIT10aGlzLm1heEFnZSYmdGhpcy5tYXhBZ2U8PTB8fG51bGwhPXRoaXMucGF0aCYmIVcudGVzdCh0aGlzLnBhdGgpKXJldHVybiExO2NvbnN0IEFlPXRo'@; put 'aXMuY2RvbWFpbigpO3JldHVybiEoQWUmJihBZS5tYXRjaCgvXC4kLyl8fG51bGw9PXAuZ2V0UHVibGljU3VmZml4KEFlKSkpfXNldEV4cGlyZXMoQWUpe3RoaXMuZXhwaXJlcz1BZSBpbnN0YW5jZW9mIERhdGU/QWU6ZyhBZSl8fCJJbmZpbml0eSJ9c2V0TWF4QWdlKEFlKXt0aGlzLm1heEFn'@; put 'ZT1BZT09PTEvMHx8QWU9PT0tMS8wP0FlLnRvU3RyaW5nKCk6QWV9Y29va2llU3RyaW5nKCl7bGV0IEFlPXRoaXMudmFsdWU7cmV0dXJuIG51bGw9PUFlJiYoQWU9IiIpLCIiPT09dGhpcy5rZXk/QWU6YCR7dGhpcy5rZXl9PSR7QWV9YH10b1N0cmluZygpe2xldCBBZT10aGlzLmNvb2tpZVN0'@; put 'cmluZygpO2lmKHRoaXMuZXhwaXJlcyE9MS8wJiYodGhpcy5leHBpcmVzIGluc3RhbmNlb2YgRGF0ZT9BZSs9YDsgRXhwaXJlcz0ke3kodGhpcy5leHBpcmVzKX1gOkFlKz1gOyBFeHBpcmVzPSR7dGhpcy5leHBpcmVzfWApLG51bGwhPXRoaXMubWF4QWdlJiZ0aGlzLm1heEFnZSE9MS8wJiYo'@; put 'QWUrPWA7IE1heC1BZ2U9JHt0aGlzLm1heEFnZX1gKSx0aGlzLmRvbWFpbiYmIXRoaXMuaG9zdE9ubHkmJihBZSs9YDsgRG9tYWluPSR7dGhpcy5kb21haW59YCksdGhpcy5wYXRoJiYoQWUrPWA7IFBhdGg9JHt0aGlzLnBhdGh9YCksdGhpcy5zZWN1cmUmJihBZSs9IjsgU2VjdXJlIiksdGhp'@; put 'cy5odHRwT25seSYmKEFlKz0iOyBIdHRwT25seSIpLHRoaXMuc2FtZVNpdGUmJiJub25lIiE9PXRoaXMuc2FtZVNpdGUpe2NvbnN0IEZlPWF0LnNhbWVTaXRlQ2Fub25pY2FsW3RoaXMuc2FtZVNpdGUudG9Mb3dlckNhc2UoKV07QWUrPWA7IFNhbWVTaXRlPSR7RmV8fHRoaXMuc2FtZVNpdGV9'@; put 'YH1yZXR1cm4gdGhpcy5leHRlbnNpb25zJiZ0aGlzLmV4dGVuc2lvbnMuZm9yRWFjaChGZT0+e0FlKz1gOyAke0ZlfWB9KSxBZX1UVEwoQWUpe2lmKG51bGwhPXRoaXMubWF4QWdlKXJldHVybiB0aGlzLm1heEFnZTw9MD8wOjFlMyp0aGlzLm1heEFnZTtsZXQgRmU9dGhpcy5leHBpcmVzO3Jl'@; put 'dHVybiBGZSE9MS8wPyhGZSBpbnN0YW5jZW9mIERhdGV8fChGZT1nKEZlKXx8MS8wKSxGZT09MS8wPzEvMDpGZS5nZXRUaW1lKCktKEFlfHxEYXRlLm5vdygpKSk6MS8wfWV4cGlyeVRpbWUoQWUpe2lmKG51bGwhPXRoaXMubWF4QWdlKXtjb25zdCBSZT10aGlzLm1heEFnZTw9MD8tMS8wOjFl'@; put 'Myp0aGlzLm1heEFnZTtyZXR1cm4oQWV8fHRoaXMuY3JlYXRpb258fG5ldyBEYXRlKS5nZXRUaW1lKCkrUmV9cmV0dXJuIHRoaXMuZXhwaXJlcz09MS8wPzEvMDp0aGlzLmV4cGlyZXMuZ2V0VGltZSgpfWV4cGlyeURhdGUoQWUpe2NvbnN0IEZlPXRoaXMuZXhwaXJ5VGltZShBZSk7cmV0dXJu'@; put 'IEZlPT0xLzA/bmV3IERhdGUoUSk6RmU9PS0xLzA/bmV3IERhdGUoMCk6bmV3IERhdGUoRmUpfWlzUGVyc2lzdGVudCgpe3JldHVybiBudWxsIT10aGlzLm1heEFnZXx8dGhpcy5leHBpcmVzIT0xLzB9Y2Fub25pY2FsaXplZERvbWFpbigpe3JldHVybiBudWxsPT10aGlzLmRvbWFpbj9udWxs'@; put 'OngodGhpcy5kb21haW4pfWNkb21haW4oKXtyZXR1cm4gdGhpcy5jYW5vbmljYWxpemVkRG9tYWluKCl9fWZ1bmN0aW9uIHhlKGplKXtpZihudWxsIT1qZSl7Y29uc3QgQWU9amUudG9Mb3dlckNhc2UoKTtzd2l0Y2goQWUpe2Nhc2Ugc2UuU1RSSUNUOmNhc2Ugc2UuU0lMRU5UOmNhc2Ugc2Uu'@; put 'RElTQUJMRUQ6cmV0dXJuIEFlfX1yZXR1cm4gc2UuU0lMRU5UfWF0LmNvb2tpZXNDcmVhdGVkPTAsYXQucGFyc2U9RSxhdC5mcm9tSlNPTj1uZSxhdC5zZXJpYWxpemFibGVQcm9wZXJ0aWVzPU9iamVjdC5rZXlzKFFlKSxhdC5zYW1lU2l0ZUxldmVsPXtzdHJpY3Q6MyxsYXg6Mixub25lOjF9'@; put 'LGF0LnNhbWVTaXRlQ2Fub25pY2FsPXtzdHJpY3Q6IlN0cmljdCIsbGF4OiJMYXgifTtjbGFzcyB2ZXtjb25zdHJ1Y3RvcihBZSxGZT17cmVqZWN0UHVibGljU3VmZml4ZXM6ITB9KXsiYm9vbGVhbiI9PXR5cGVvZiBGZSYmKEZlPXtyZWplY3RQdWJsaWNTdWZmaXhlczpGZX0pLEgudmFsaWRh'@; put 'dGUoSC5pc09iamVjdChGZSksRmUpLHRoaXMucmVqZWN0UHVibGljU3VmZml4ZXM9RmUucmVqZWN0UHVibGljU3VmZml4ZXMsdGhpcy5lbmFibGVMb29zZU1vZGU9ISFGZS5sb29zZU1vZGUsdGhpcy5hbGxvd1NwZWNpYWxVc2VEb21haW49ImJvb2xlYW4iIT10eXBlb2YgRmUuYWxsb3dTcGVj'@; put 'aWFsVXNlRG9tYWlufHxGZS5hbGxvd1NwZWNpYWxVc2VEb21haW4sdGhpcy5zdG9yZT1BZXx8bmV3IHcsdGhpcy5wcmVmaXhTZWN1cml0eT14ZShGZS5wcmVmaXhTZWN1cml0eSksdGhpcy5fY2xvbmVTeW5jPXFlKCJjbG9uZSIpLHRoaXMuX2ltcG9ydENvb2tpZXNTeW5jPXFlKCJfaW1wb3J0'@; put 'Q29va2llcyIpLHRoaXMuZ2V0Q29va2llc1N5bmM9cWUoImdldENvb2tpZXMiKSx0aGlzLmdldENvb2tpZVN0cmluZ1N5bmM9cWUoImdldENvb2tpZVN0cmluZyIpLHRoaXMuZ2V0U2V0Q29va2llU3RyaW5nc1N5bmM9cWUoImdldFNldENvb2tpZVN0cmluZ3MiKSx0aGlzLnJlbW92ZUFsbENv'@; put 'b2tpZXNTeW5jPXFlKCJyZW1vdmVBbGxDb29raWVzIiksdGhpcy5zZXRDb29raWVTeW5jPXFlKCJzZXRDb29raWUiKSx0aGlzLnNlcmlhbGl6ZVN5bmM9cWUoInNlcmlhbGl6ZSIpfXNldENvb2tpZShBZSxGZSxSZSxJZSl7bGV0IEhlO2lmKEgudmFsaWRhdGUoSC5pc05vbkVtcHR5U3RyaW5n'@; put 'KEZlKSxJZSxSZSksSC5pc0Z1bmN0aW9uKEZlKSlyZXR1cm4oSWU9RmUpKG5ldyBFcnJvcigiTm8gVVJMIHdhcyBzcGVjaWZpZWQiKSk7Y29uc3QgRGU9WmUoRmUpO2lmKEguaXNGdW5jdGlvbihSZSkmJihJZT1SZSxSZT17fSksSC52YWxpZGF0ZShILmlzRnVuY3Rpb24oSWUpLEllKSwhSC5p'@; put 'c05vbkVtcHR5U3RyaW5nKEFlKSYmIUguaXNPYmplY3QoQWUpJiZBZSBpbnN0YW5jZW9mIFN0cmluZyYmMD09QWUubGVuZ3RoKXJldHVybiBJZShudWxsKTtjb25zdCBrZT14KERlLmhvc3RuYW1lKSxfdD1SZS5sb29zZXx8dGhpcy5lbmFibGVMb29zZU1vZGU7bGV0IG50PW51bGw7aWYoUmUu'@; put 'c2FtZVNpdGVDb250ZXh0JiYobnQ9aWUoUmUuc2FtZVNpdGVDb250ZXh0KSwhbnQpKXJldHVybiBJZShuZXcgRXJyb3IodGUpKTtpZigic3RyaW5nIj09dHlwZW9mIEFlfHxBZSBpbnN0YW5jZW9mIFN0cmluZyl7aWYoIShBZT1hdC5wYXJzZShBZSx7bG9vc2U6X3R9KSkpcmV0dXJuIEhlPW5l'@; put 'dyBFcnJvcigiQ29va2llIGZhaWxlZCB0byBwYXJzZSIpLEllKFJlLmlnbm9yZUVycm9yP251bGw6SGUpfWVsc2UgaWYoIShBZSBpbnN0YW5jZW9mIGF0KSlyZXR1cm4gSGU9bmV3IEVycm9yKCJGaXJzdCBhcmd1bWVudCB0byBzZXRDb29raWUgbXVzdCBiZSBhIENvb2tpZSBvYmplY3Qgb3Ig'@; put 'c3RyaW5nIiksSWUoUmUuaWdub3JlRXJyb3I/bnVsbDpIZSk7Y29uc3QgSmU9UmUubm93fHxuZXcgRGF0ZTtpZih0aGlzLnJlamVjdFB1YmxpY1N1ZmZpeGVzJiZBZS5kb21haW4mJm51bGw9PXAuZ2V0UHVibGljU3VmZml4KEFlLmNkb21haW4oKSx7YWxsb3dTcGVjaWFsVXNlRG9tYWluOnRo'@; put 'aXMuYWxsb3dTcGVjaWFsVXNlRG9tYWluLGlnbm9yZUVycm9yOlJlLmlnbm9yZUVycm9yfSkmJiFUZS50ZXN0KEFlLmRvbWFpbikpcmV0dXJuIEhlPW5ldyBFcnJvcigiQ29va2llIGhhcyBkb21haW4gc2V0IHRvIGEgcHVibGljIHN1ZmZpeCIpLEllKFJlLmlnbm9yZUVycm9yP251bGw6SGUp'@; put 'O2lmKEFlLmRvbWFpbil7aWYoIUMoa2UsQWUuY2RvbWFpbigpLCExKSlyZXR1cm4gSGU9bmV3IEVycm9yKGBDb29raWUgbm90IGluIHRoaXMgaG9zdCdzIGRvbWFpbi4gQ29va2llOiR7QWUuY2RvbWFpbigpfSBSZXF1ZXN0OiR7a2V9YCksSWUoUmUuaWdub3JlRXJyb3I/bnVsbDpIZSk7bnVs'@; put 'bD09QWUuaG9zdE9ubHkmJihBZS5ob3N0T25seT0hMSl9ZWxzZSBBZS5ob3N0T25seT0hMCxBZS5kb21haW49a2U7aWYoKCFBZS5wYXRofHwiLyIhPT1BZS5wYXRoWzBdKSYmKEFlLnBhdGg9VChEZS5wYXRobmFtZSksQWUucGF0aElzRGVmYXVsdD0hMCksITE9PT1SZS5odHRwJiZBZS5odHRw'@; put 'T25seSlyZXR1cm4gSGU9bmV3IEVycm9yKCJDb29raWUgaXMgSHR0cE9ubHkgYW5kIHRoaXMgaXNuJ3QgYW4gSFRUUCBBUEkiKSxJZShSZS5pZ25vcmVFcnJvcj9udWxsOkhlKTtpZigibm9uZSIhPT1BZS5zYW1lU2l0ZSYmdm9pZCAwIT09QWUuc2FtZVNpdGUmJm50JiYibm9uZSI9PT1udCly'@; put 'ZXR1cm4gSGU9bmV3IEVycm9yKCJDb29raWUgaXMgU2FtZVNpdGUgYnV0IHRoaXMgaXMgYSBjcm9zcy1vcmlnaW4gcmVxdWVzdCIpLEllKFJlLmlnbm9yZUVycm9yP251bGw6SGUpO2NvbnN0IG9uPXRoaXMucHJlZml4U2VjdXJpdHk9PT1zZS5TSUxFTlQ7aWYodGhpcy5wcmVmaXhTZWN1cml0'@; put 'eSE9PXNlLkRJU0FCTEVEKXtsZXQgS2UscnQ9ITE7aWYoZnVuY3Rpb24gbShqZSl7cmV0dXJuIEgudmFsaWRhdGUoSC5pc09iamVjdChqZSksamUpLCFqZS5rZXkuc3RhcnRzV2l0aCgiX19TZWN1cmUtIil8fGplLnNlY3VyZX0oQWUpP2Z1bmN0aW9uIEEoamUpe3JldHVybiBILnZhbGlkYXRl'@; put 'KEguaXNPYmplY3QoamUpKSwhamUua2V5LnN0YXJ0c1dpdGgoIl9fSG9zdC0iKXx8amUuc2VjdXJlJiZqZS5ob3N0T25seSYmbnVsbCE9amUucGF0aCYmIi8iPT09amUucGF0aH0oQWUpfHwocnQ9ITAsS2U9IkNvb2tpZSBoYXMgX19Ib3N0IHByZWZpeCBidXQgZWl0aGVyIFNlY3VyZSBvciBI'@; put 'b3N0T25seSBhdHRyaWJ1dGUgaXMgbm90IHNldCBvciBQYXRoIGlzIG5vdCAnLyciKToocnQ9ITAsS2U9IkNvb2tpZSBoYXMgX19TZWN1cmUgcHJlZml4IGJ1dCBTZWN1cmUgYXR0cmlidXRlIGlzIG5vdCBzZXQiKSxydClyZXR1cm4gSWUoUmUuaWdub3JlRXJyb3J8fG9uP251bGw6bmV3IEVy'@; put 'cm9yKEtlKSl9Y29uc3QgTXQ9dGhpcy5zdG9yZTtNdC51cGRhdGVDb29raWV8fChNdC51cGRhdGVDb29raWU9ZnVuY3Rpb24ocnQsS2UsdHQpe3RoaXMucHV0Q29va2llKEtlLHR0KX0pLE10LmZpbmRDb29raWUoQWUuZG9tYWluLEFlLnBhdGgsQWUua2V5LGZ1bmN0aW9uIEl0KHJ0LEtlKXtp'@; put 'ZihydClyZXR1cm4gSWUocnQpO2NvbnN0IHR0PWZ1bmN0aW9uKE5lKXtpZihOZSlyZXR1cm4gSWUoTmUpO0llKG51bGwsQWUpfTtpZihLZSl7aWYoITE9PT1SZS5odHRwJiZLZS5odHRwT25seSlyZXR1cm4gcnQ9bmV3IEVycm9yKCJvbGQgQ29va2llIGlzIEh0dHBPbmx5IGFuZCB0aGlzIGlz'@; put 'bid0IGFuIEhUVFAgQVBJIiksSWUoUmUuaWdub3JlRXJyb3I/bnVsbDpydCk7QWUuY3JlYXRpb249S2UuY3JlYXRpb24sQWUuY3JlYXRpb25JbmRleD1LZS5jcmVhdGlvbkluZGV4LEFlLmxhc3RBY2Nlc3NlZD1KZSxNdC51cGRhdGVDb29raWUoS2UsQWUsdHQpfWVsc2UgQWUuY3JlYXRpb249'@; put 'QWUubGFzdEFjY2Vzc2VkPUplLE10LnB1dENvb2tpZShBZSx0dCl9KX1nZXRDb29raWVzKEFlLEZlLFJlKXtILnZhbGlkYXRlKEguaXNOb25FbXB0eVN0cmluZyhBZSksUmUsQWUpO2NvbnN0IEllPVplKEFlKTtILmlzRnVuY3Rpb24oRmUpJiYoUmU9RmUsRmU9e30pLEgudmFsaWRhdGUoSC5p'@; put 'c09iamVjdChGZSksUmUsRmUpLEgudmFsaWRhdGUoSC5pc0Z1bmN0aW9uKFJlKSxSZSk7Y29uc3QgSGU9eChJZS5ob3N0bmFtZSksRGU9SWUucGF0aG5hbWV8fCIvIjtsZXQga2U9RmUuc2VjdXJlO251bGw9PWtlJiZJZS5wcm90b2NvbCYmKCJodHRwczoiPT1JZS5wcm90b2NvbHx8Indzczoi'@; put 'PT1JZS5wcm90b2NvbCkmJihrZT0hMCk7bGV0IF90PTA7aWYoRmUuc2FtZVNpdGVDb250ZXh0KXtjb25zdCBydD1pZShGZS5zYW1lU2l0ZUNvbnRleHQpO2lmKF90PWF0LnNhbWVTaXRlTGV2ZWxbcnRdLCFfdClyZXR1cm4gUmUobmV3IEVycm9yKHRlKSl9bGV0IG50PUZlLmh0dHA7bnVsbD09'@; put 'bnQmJihudD0hMCk7Y29uc3QgSmU9RmUubm93fHxEYXRlLm5vdygpLG9uPSExIT09RmUuZXhwaXJlLHl0PSEhRmUuYWxsUGF0aHMsTXQ9dGhpcy5zdG9yZTtmdW5jdGlvbiBJdChydCl7aWYocnQuaG9zdE9ubHkpe2lmKHJ0LmRvbWFpbiE9SGUpcmV0dXJuITF9ZWxzZSBpZighQyhIZSxydC5k'@; put 'b21haW4sITEpKXJldHVybiExO3JldHVybiEoIXl0JiYhRihEZSxydC5wYXRoKXx8cnQuc2VjdXJlJiYha2V8fHJ0Lmh0dHBPbmx5JiYhbnR8fF90JiZhdC5zYW1lU2l0ZUxldmVsW3J0LnNhbWVTaXRlfHwibm9uZSJdPl90fHxvbiYmcnQuZXhwaXJ5VGltZSgpPD1KZSYmKE10LnJlbW92ZUNv'@; put 'b2tpZShydC5kb21haW4scnQucGF0aCxydC5rZXksKCk9Pnt9KSwxKSl9TXQuZmluZENvb2tpZXMoSGUseXQ/bnVsbDpEZSx0aGlzLmFsbG93U3BlY2lhbFVzZURvbWFpbiwocnQsS2UpPT57aWYocnQpcmV0dXJuIFJlKHJ0KTtLZT1LZS5maWx0ZXIoSXQpLCExIT09RmUuc29ydCYmKEtlPUtl'@; put 'LnNvcnQobGUpKTtjb25zdCB0dD1uZXcgRGF0ZTtmb3IoY29uc3QgTmUgb2YgS2UpTmUubGFzdEFjY2Vzc2VkPXR0O1JlKG51bGwsS2UpfSl9Z2V0Q29va2llU3RyaW5nKC4uLkFlKXtjb25zdCBGZT1BZS5wb3AoKTtILnZhbGlkYXRlKEguaXNGdW5jdGlvbihGZSksRmUpLEFlLnB1c2goZnVu'@; put 'Y3Rpb24oSWUsSGUpe0llP0ZlKEllKTpGZShudWxsLEhlLnNvcnQobGUpLm1hcChEZT0+RGUuY29va2llU3RyaW5nKCkpLmpvaW4oIjsgIikpfSksdGhpcy5nZXRDb29raWVzLmFwcGx5KHRoaXMsQWUpfWdldFNldENvb2tpZVN0cmluZ3MoLi4uQWUpe2NvbnN0IEZlPUFlLnBvcCgpO0gudmFs'@; put 'aWRhdGUoSC5pc0Z1bmN0aW9uKEZlKSxGZSksQWUucHVzaChmdW5jdGlvbihJZSxIZSl7SWU/RmUoSWUpOkZlKG51bGwsSGUubWFwKERlPT5EZS50b1N0cmluZygpKSl9KSx0aGlzLmdldENvb2tpZXMuYXBwbHkodGhpcyxBZSl9c2VyaWFsaXplKEFlKXtILnZhbGlkYXRlKEguaXNGdW5jdGlv'@; put 'bihBZSksQWUpO2xldCBGZT10aGlzLnN0b3JlLmNvbnN0cnVjdG9yLm5hbWU7SC5pc09iamVjdChGZSkmJihGZT1udWxsKTtjb25zdCBSZT17dmVyc2lvbjpgdG91Z2gtY29va2llQCR7Un1gLHN0b3JlVHlwZTpGZSxyZWplY3RQdWJsaWNTdWZmaXhlczohIXRoaXMucmVqZWN0UHVibGljU3Vm'@; put 'Zml4ZXMsZW5hYmxlTG9vc2VNb2RlOiEhdGhpcy5lbmFibGVMb29zZU1vZGUsYWxsb3dTcGVjaWFsVXNlRG9tYWluOiEhdGhpcy5hbGxvd1NwZWNpYWxVc2VEb21haW4scHJlZml4U2VjdXJpdHk6eGUodGhpcy5wcmVmaXhTZWN1cml0eSksY29va2llczpbXX07aWYoIXRoaXMuc3RvcmUuZ2V0'@; put 'QWxsQ29va2llc3x8ImZ1bmN0aW9uIiE9dHlwZW9mIHRoaXMuc3RvcmUuZ2V0QWxsQ29va2llcylyZXR1cm4gQWUobmV3IEVycm9yKCJzdG9yZSBkb2VzIG5vdCBzdXBwb3J0IGdldEFsbENvb2tpZXMgYW5kIGNhbm5vdCBiZSBzZXJpYWxpemVkIikpO3RoaXMuc3RvcmUuZ2V0QWxsQ29va2ll'@; put 'cygoSWUsSGUpPT5JZT9BZShJZSk6KFJlLmNvb2tpZXM9SGUubWFwKERlPT4oZGVsZXRlKERlPURlIGluc3RhbmNlb2YgYXQ/RGUudG9KU09OKCk6RGUpLmNyZWF0aW9uSW5kZXgsRGUpKSxBZShudWxsLFJlKSkpfXRvSlNPTigpe3JldHVybiB0aGlzLnNlcmlhbGl6ZVN5bmMoKX1faW1wb3J0'@; put 'Q29va2llcyhBZSxGZSl7bGV0IFJlPUFlLmNvb2tpZXM7aWYoIVJlfHwhQXJyYXkuaXNBcnJheShSZSkpcmV0dXJuIEZlKG5ldyBFcnJvcigic2VyaWFsaXplZCBqYXIgaGFzIG5vIGNvb2tpZXMgYXJyYXkiKSk7UmU9UmUuc2xpY2UoKTtjb25zdCBJZT1IZT0+e2lmKEhlKXJldHVybiBGZShI'@; put 'ZSk7aWYoIVJlLmxlbmd0aClyZXR1cm4gRmUoSGUsdGhpcyk7bGV0IERlO3RyeXtEZT1uZShSZS5zaGlmdCgpKX1jYXRjaChrZSl7cmV0dXJuIEZlKGtlKX1pZihudWxsPT09RGUpcmV0dXJuIEllKG51bGwpO3RoaXMuc3RvcmUucHV0Q29va2llKERlLEllKX07SWUoKX1jbG9uZShBZSxGZSl7'@; put 'MT09PWFyZ3VtZW50cy5sZW5ndGgmJihGZT1BZSxBZT1udWxsKSx0aGlzLnNlcmlhbGl6ZSgoUmUsSWUpPT57aWYoUmUpcmV0dXJuIEZlKFJlKTt2ZS5kZXNlcmlhbGl6ZShJZSxBZSxGZSl9KX1jbG9uZVN5bmMoQWUpe2lmKDA9PT1hcmd1bWVudHMubGVuZ3RoKXJldHVybiB0aGlzLl9jbG9u'@; put 'ZVN5bmMoKTtpZighQWUuc3luY2hyb25vdXMpdGhyb3cgbmV3IEVycm9yKCJDb29raWVKYXIgY2xvbmUgZGVzdGluYXRpb24gc3RvcmUgaXMgbm90IHN5bmNocm9ub3VzOyB1c2UgYXN5bmMgQVBJIGluc3RlYWQuIik7cmV0dXJuIHRoaXMuX2Nsb25lU3luYyhBZSl9cmVtb3ZlQWxsQ29va2ll'@; put 'cyhBZSl7SC52YWxpZGF0ZShILmlzRnVuY3Rpb24oQWUpLEFlKTtjb25zdCBGZT10aGlzLnN0b3JlO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBGZS5yZW1vdmVBbGxDb29raWVzJiZGZS5yZW1vdmVBbGxDb29raWVzIT09Ti5wcm90b3R5cGUucmVtb3ZlQWxsQ29va2llcylyZXR1cm4gRmUucmVt'@; put 'b3ZlQWxsQ29va2llcyhBZSk7RmUuZ2V0QWxsQ29va2llcygoUmUsSWUpPT57aWYoUmUpcmV0dXJuIEFlKFJlKTtpZigwPT09SWUubGVuZ3RoKXJldHVybiBBZShudWxsKTtsZXQgSGU9MDtjb25zdCBEZT1bXTtmdW5jdGlvbiBrZShfdCl7aWYoX3QmJkRlLnB1c2goX3QpLEhlKyssSGU9PT1J'@; put 'ZS5sZW5ndGgpcmV0dXJuIEFlKERlLmxlbmd0aD9EZVswXTpudWxsKX1JZS5mb3JFYWNoKF90PT57RmUucmVtb3ZlQ29va2llKF90LmRvbWFpbixfdC5wYXRoLF90LmtleSxrZSl9KX0pfXN0YXRpYyBkZXNlcmlhbGl6ZShBZSxGZSxSZSl7bGV0IEllO2lmKDMhPT1hcmd1bWVudHMubGVuZ3Ro'@; put 'JiYoUmU9RmUsRmU9bnVsbCksSC52YWxpZGF0ZShILmlzRnVuY3Rpb24oUmUpLFJlKSwic3RyaW5nIj09dHlwZW9mIEFlKXtpZihJZT1hZShBZSksSWUgaW5zdGFuY2VvZiBFcnJvcilyZXR1cm4gUmUoSWUpfWVsc2UgSWU9QWU7Y29uc3QgSGU9bmV3IHZlKEZlLHtyZWplY3RQdWJsaWNTdWZm'@; put 'aXhlczpJZS5yZWplY3RQdWJsaWNTdWZmaXhlcyxsb29zZU1vZGU6SWUuZW5hYmxlTG9vc2VNb2RlLGFsbG93U3BlY2lhbFVzZURvbWFpbjpJZS5hbGxvd1NwZWNpYWxVc2VEb21haW4scHJlZml4U2VjdXJpdHk6SWUucHJlZml4U2VjdXJpdHl9KTtIZS5faW1wb3J0Q29va2llcyhJZSxEZT0+'@; put 'e2lmKERlKXJldHVybiBSZShEZSk7UmUobnVsbCxIZSl9KX1zdGF0aWMgZGVzZXJpYWxpemVTeW5jKEFlLEZlKXtjb25zdCBSZT0ic3RyaW5nIj09dHlwZW9mIEFlP0pTT04ucGFyc2UoQWUpOkFlLEllPW5ldyB2ZShGZSx7cmVqZWN0UHVibGljU3VmZml4ZXM6UmUucmVqZWN0UHVibGljU3Vm'@; put 'Zml4ZXMsbG9vc2VNb2RlOlJlLmVuYWJsZUxvb3NlTW9kZX0pO2lmKCFJZS5zdG9yZS5zeW5jaHJvbm91cyl0aHJvdyBuZXcgRXJyb3IoIkNvb2tpZUphciBzdG9yZSBpcyBub3Qgc3luY2hyb25vdXM7IHVzZSBhc3luYyBBUEkgaW5zdGVhZC4iKTtyZXR1cm4gSWUuX2ltcG9ydENvb2tpZXNT'@; put 'eW5jKFJlKSxJZX19ZnVuY3Rpb24gcWUoamUpe3JldHVybiBmdW5jdGlvbiguLi5BZSl7aWYoIXRoaXMuc3RvcmUuc3luY2hyb25vdXMpdGhyb3cgbmV3IEVycm9yKCJDb29raWVKYXIgc3RvcmUgaXMgbm90IHN5bmNocm9ub3VzOyB1c2UgYXN5bmMgQVBJIGluc3RlYWQuIik7bGV0IEZlLFJl'@; put 'O2lmKHRoaXNbamVdKC4uLkFlLChJZSxIZSk9PntGZT1JZSxSZT1IZX0pLEZlKXRocm93IEZlO3JldHVybiBSZX19dmUuZnJvbUpTT049dmUuZGVzZXJpYWxpemVTeW5jLFsiX2ltcG9ydENvb2tpZXMiLCJjbG9uZSIsImdldENvb2tpZXMiLCJnZXRDb29raWVTdHJpbmciLCJnZXRTZXRDb29r'@; put 'aWVTdHJpbmdzIiwicmVtb3ZlQWxsQ29va2llcyIsInNlcmlhbGl6ZSIsInNldENvb2tpZSJdLmZvckVhY2goamU9Pnt2ZS5wcm90b3R5cGVbamVdPWoodmUucHJvdG90eXBlW2plXSl9KSx2ZS5kZXNlcmlhbGl6ZT1qKHZlLmRlc2VyaWFsaXplKSxKLnZlcnNpb249UixKLkNvb2tpZUphcj12'@; put 'ZSxKLkNvb2tpZT1hdCxKLlN0b3JlPU4sSi5NZW1vcnlDb29raWVTdG9yZT13LEoucGFyc2VEYXRlPWcsSi5mb3JtYXREYXRlPXksSi5wYXJzZT1FLEouZnJvbUpTT049bmUsSi5kb21haW5NYXRjaD1DLEouZGVmYXVsdFBhdGg9VCxKLnBhdGhNYXRjaD1GLEouZ2V0UHVibGljU3VmZml4PXAu'@; put 'Z2V0UHVibGljU3VmZml4LEouY29va2llQ29tcGFyZT1sZSxKLnBlcm11dGVEb21haW49Yig3MzI0KS5wZXJtdXRlRG9tYWluLEoucGVybXV0ZVBhdGg9ZnVuY3Rpb24gd2UoamUpe2lmKEgudmFsaWRhdGUoSC5pc1N0cmluZyhqZSkpLCIvIj09PWplKXJldHVyblsiLyJdO2NvbnN0IEFlPVtq'@; put 'ZV07Zm9yKDtqZS5sZW5ndGg+MTspe2NvbnN0IEZlPWplLmxhc3RJbmRleE9mKCIvIik7aWYoMD09PUZlKWJyZWFrO2plPWplLnN1YnN0cigwLEZlKSxBZS5wdXNoKGplKX1yZXR1cm4gQWUucHVzaCgiLyIpLEFlfSxKLmNhbm9uaWNhbERvbWFpbj14LEouUHJlZml4U2VjdXJpdHlFbnVtPXNl'@; put 'LEouUGFyYW1ldGVyRXJyb3I9SC5QYXJhbWV0ZXJFcnJvcn0sNTc2MTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdHtmcm9tQ2FsbGJhY2s6X309Yig3MDQxKSxwPWIoMjIyNCkueSxOPWIoNzMyNCkucGVybXV0ZURvbWFpbix3PWIoODk3MSkuVSx7Z2V0Q3VzdG9tSW5zcGVjdFN5bWJv'@; put 'bDpGLGdldFV0aWxJbnNwZWN0Okh9PWIoMTI2OSk7Y2xhc3MgUiBleHRlbmRzIHB7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuc3luY2hyb25vdXM9ITAsdGhpcy5pZHg9T2JqZWN0LmNyZWF0ZShudWxsKTtjb25zdCBCPUYoKTtCJiYodGhpc1tCXT10aGlzLmluc3BlY3QpfWluc3BlY3Qo'@; put 'KXtyZXR1cm5geyBpZHg6ICR7SChqKSh0aGlzLmlkeCwhMSwyKX0gfWB9ZmluZENvb2tpZShCLFcsWixYKXtyZXR1cm4gWChudWxsLHRoaXMuaWR4W0JdJiZ0aGlzLmlkeFtCXVtXXT90aGlzLmlkeFtCXVtXXVtaXXx8bnVsbDp2b2lkIDApfWZpbmRDb29raWVzKEIsVyxaLFgpe2NvbnN0IFE9'@; put 'W107aWYoImZ1bmN0aW9uIj09dHlwZW9mIFomJihYPVosWj0hMCksIUIpcmV0dXJuIFgobnVsbCxbXSk7bGV0IHE7cT1XP2Z1bmN0aW9uKGdlKXtPYmplY3Qua2V5cyhnZSkuZm9yRWFjaChfZT0+e2lmKHcoVyxfZSkpe2NvbnN0IFRlPWdlW19lXTtmb3IoY29uc3QgU2UgaW4gVGUpUS5wdXNo'@; put 'KFRlW1NlXSl9fSl9OmZ1bmN0aW9uKGdlKXtmb3IoY29uc3QgX2UgaW4gZ2Upe2NvbnN0IFRlPWdlW19lXTtmb3IoY29uc3QgU2UgaW4gVGUpUS5wdXNoKFRlW1NlXSl9fTtjb25zdCB0ZT1OKEIsWil8fFtCXSxpZT10aGlzLmlkeDt0ZS5mb3JFYWNoKHNlPT57Y29uc3QgZ2U9aWVbc2VdO2dl'@; put 'JiZxKGdlKX0pLFgobnVsbCxRKX1wdXRDb29raWUoQixXKXt0aGlzLmlkeFtCLmRvbWFpbl18fCh0aGlzLmlkeFtCLmRvbWFpbl09T2JqZWN0LmNyZWF0ZShudWxsKSksdGhpcy5pZHhbQi5kb21haW5dW0IucGF0aF18fCh0aGlzLmlkeFtCLmRvbWFpbl1bQi5wYXRoXT1PYmplY3QuY3JlYXRl'@; put 'KG51bGwpKSx0aGlzLmlkeFtCLmRvbWFpbl1bQi5wYXRoXVtCLmtleV09QixXKG51bGwpfXVwZGF0ZUNvb2tpZShCLFcsWil7dGhpcy5wdXRDb29raWUoVyxaKX1yZW1vdmVDb29raWUoQixXLFosWCl7dGhpcy5pZHhbQl0mJnRoaXMuaWR4W0JdW1ddJiZ0aGlzLmlkeFtCXVtXXVtaXSYmZGVs'@; put 'ZXRlIHRoaXMuaWR4W0JdW1ddW1pdLFgobnVsbCl9cmVtb3ZlQ29va2llcyhCLFcsWil7cmV0dXJuIHRoaXMuaWR4W0JdJiYoVz9kZWxldGUgdGhpcy5pZHhbQl1bV106ZGVsZXRlIHRoaXMuaWR4W0JdKSxaKG51bGwpfXJlbW92ZUFsbENvb2tpZXMoQil7cmV0dXJuIHRoaXMuaWR4PU9iamVj'@; put 'dC5jcmVhdGUobnVsbCksQihudWxsKX1nZXRBbGxDb29raWVzKEIpe2NvbnN0IFc9W10sWj10aGlzLmlkeDtPYmplY3Qua2V5cyhaKS5mb3JFYWNoKFE9PntPYmplY3Qua2V5cyhaW1FdKS5mb3JFYWNoKHRlPT57T2JqZWN0LmtleXMoWltRXVt0ZV0pLmZvckVhY2goc2U9PntudWxsIT09c2Um'@; put 'JlcucHVzaChaW1FdW3RlXVtzZV0pfSl9KX0pLFcuc29ydCgoUSxxKT0+KFEuY3JlYXRpb25JbmRleHx8MCktKHEuY3JlYXRpb25JbmRleHx8MCkpLEIobnVsbCxXKX19ZnVuY3Rpb24gaihZKXtjb25zdCBCPU9iamVjdC5rZXlzKFkpO2lmKDA9PT1CLmxlbmd0aClyZXR1cm4iW09iamVjdDog'@; put 'bnVsbCBwcm90b3R5cGVdIHt9IjtsZXQgVz0iW09iamVjdDogbnVsbCBwcm90b3R5cGVdIHtcbiI7cmV0dXJuIE9iamVjdC5rZXlzKFkpLmZvckVhY2goKFosWCk9PntXKz1mdW5jdGlvbiBQKFksQil7bGV0IFo9YCAgJyR7WX0nOiBbT2JqZWN0OiBudWxsIHByb3RvdHlwZV0ge1xuYDtyZXR1'@; put 'cm4gT2JqZWN0LmtleXMoQikuZm9yRWFjaCgoWCxRLHEpPT57Wis9ZnVuY3Rpb24gTChZLEIpe2NvbnN0IFc9IiAgICAiO2xldCBaPWAke1d9JyR7WX0nOiBbT2JqZWN0OiBudWxsIHByb3RvdHlwZV0ge1xuYDtyZXR1cm4gT2JqZWN0LmtleXMoQikuZm9yRWFjaCgoWCxRLHEpPT57Wis9YCAg'@; put 'ICAgICR7WH06ICR7QltYXS5pbnNwZWN0KCl9YCxRPHEubGVuZ3RoLTEmJihaKz0iLCIpLForPSJcbiJ9KSxaKz1gJHtXfX1gLFp9KFgsQltYXSksUTxxLmxlbmd0aC0xJiYoWis9IiwiKSxaKz0iXG4ifSksWis9IiAgfSIsWn0oWixZW1pdKSxYPEIubGVuZ3RoLTEmJihXKz0iLCIpLFcrPSJc'@; put 'biJ9KSxXKz0ifSIsV31bImZpbmRDb29raWUiLCJmaW5kQ29va2llcyIsInB1dENvb2tpZSIsInVwZGF0ZUNvb2tpZSIsInJlbW92ZUNvb2tpZSIsInJlbW92ZUNvb2tpZXMiLCJyZW1vdmVBbGxDb29raWVzIiwiZ2V0QWxsQ29va2llcyJdLmZvckVhY2goWT0+e1IucHJvdG90eXBlW1ldPV8o'@; put 'Ui5wcm90b3R5cGVbWV0pfSksSi5tPVJ9LDg5NzE6KGNlLEopPT57InVzZSBzdHJpY3QiO0ouVT1mdW5jdGlvbiBiKEQsXyl7cmV0dXJuIF89PT1EfHwwPT09RC5pbmRleE9mKF8pJiYoIi8iPT09Xy5zdWJzdHIoLTEpfHwiLyI9PT1ELnN1YnN0cihfLmxlbmd0aCwxKSl9fSw3MzI0OihjZSxK'@; put 'LGIpPT57InVzZSBzdHJpY3QiO2NvbnN0IEQ9Yig3NTIpO0oucGVybXV0ZURvbWFpbj1mdW5jdGlvbiBfKHAsTil7Y29uc3Qgdz1ELmdldFB1YmxpY1N1ZmZpeChwLHthbGxvd1NwZWNpYWxVc2VEb21haW46Tn0pO2lmKCF3KXJldHVybiBudWxsO2lmKHc9PXApcmV0dXJuW3BdOyIuIj09cC5z'@; put 'bGljZSgtMSkmJihwPXAuc2xpY2UoMCwtMSkpO2NvbnN0IEg9cC5zbGljZSgwLC0ody5sZW5ndGgrMSkpLnNwbGl0KCIuIikucmV2ZXJzZSgpO2xldCBSPXc7Y29uc3Qgaj1bUl07Zm9yKDtILmxlbmd0aDspUj1gJHtILnNoaWZ0KCl9LiR7Un1gLGoucHVzaChSKTtyZXR1cm4gan19LDc1Mjoo'@; put 'Y2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBEPWIoODU2NiksXz1bImxvY2FsIiwiZXhhbXBsZSIsImludmFsaWQiLCJsb2NhbGhvc3QiLCJ0ZXN0Il0scD1bImxvY2FsaG9zdCIsImludmFsaWQiXTtKLmdldFB1YmxpY1N1ZmZpeD1mdW5jdGlvbiBOKHcsRj17fSl7Y29uc3QgSD13LnNw'@; put 'bGl0KCIuIiksUj1IW0gubGVuZ3RoLTFdLFA9ISFGLmlnbm9yZUVycm9yO2lmKEYuYWxsb3dTcGVjaWFsVXNlRG9tYWluJiZfLmluY2x1ZGVzKFIpKXtpZihILmxlbmd0aD4xKXJldHVybmAke0hbSC5sZW5ndGgtMl19LiR7Un1gO2lmKHAuaW5jbHVkZXMoUikpcmV0dXJuYCR7Un1gfWlmKCFQ'@; put 'JiZfLmluY2x1ZGVzKFIpKXRocm93IG5ldyBFcnJvcihgQ29va2llIGhhcyBkb21haW4gc2V0IHRvIHRoZSBwdWJsaWMgc3VmZml4ICIke1J9IiB3aGljaCBpcyBhIHNwZWNpYWwgdXNlIGRvbWFpbi4gVG8gYWxsb3cgdGhpcywgY29uZmlndXJlIHlvdXIgQ29va2llSmFyIHdpdGgge2FsbG93'@; put 'U3BlY2lhbFVzZURvbWFpbjp0cnVlLCByZWplY3RQdWJsaWNTdWZmaXhlczogZmFsc2V9LmApO3JldHVybiBELmdldCh3KX19LDIyMjQ6KGNlLEopPT57InVzZSBzdHJpY3QiO0oueT1jbGFzcyBie2NvbnN0cnVjdG9yKCl7dGhpcy5zeW5jaHJvbm91cz0hMX1maW5kQ29va2llKF8scCxOLHcp'@; put 'e3Rocm93IG5ldyBFcnJvcigiZmluZENvb2tpZSBpcyBub3QgaW1wbGVtZW50ZWQiKX1maW5kQ29va2llcyhfLHAsTix3KXt0aHJvdyBuZXcgRXJyb3IoImZpbmRDb29raWVzIGlzIG5vdCBpbXBsZW1lbnRlZCIpfXB1dENvb2tpZShfLHApe3Rocm93IG5ldyBFcnJvcigicHV0Q29va2llIGlz'@; put 'IG5vdCBpbXBsZW1lbnRlZCIpfXVwZGF0ZUNvb2tpZShfLHAsTil7dGhyb3cgbmV3IEVycm9yKCJ1cGRhdGVDb29raWUgaXMgbm90IGltcGxlbWVudGVkIil9cmVtb3ZlQ29va2llKF8scCxOLHcpe3Rocm93IG5ldyBFcnJvcigicmVtb3ZlQ29va2llIGlzIG5vdCBpbXBsZW1lbnRlZCIpfXJl'@; put 'bW92ZUNvb2tpZXMoXyxwLE4pe3Rocm93IG5ldyBFcnJvcigicmVtb3ZlQ29va2llcyBpcyBub3QgaW1wbGVtZW50ZWQiKX1yZW1vdmVBbGxDb29raWVzKF8pe3Rocm93IG5ldyBFcnJvcigicmVtb3ZlQWxsQ29va2llcyBpcyBub3QgaW1wbGVtZW50ZWQiKX1nZXRBbGxDb29raWVzKF8pe3Ro'@; put 'cm93IG5ldyBFcnJvcigiZ2V0QWxsQ29va2llcyBpcyBub3QgaW1wbGVtZW50ZWQgKHRoZXJlZm9yZSBqYXIgY2Fubm90IGJlIHNlcmlhbGl6ZWQpIil9fX0sMTI2OTooY2UsSixiKT0+e2Z1bmN0aW9uIEQoKXt0cnl7cmV0dXJuIGIoOTUzOSl9Y2F0Y2h7cmV0dXJuIG51bGx9fWZ1bmN0aW9u'@; put 'IF8oKXtyZXR1cm4gU3ltYm9sLmZvcigibm9kZWpzLnV0aWwuaW5zcGVjdC5jdXN0b20iKX1KLmdldFV0aWxJbnNwZWN0PWZ1bmN0aW9uKHcsRj17fSl7Y29uc3QgUj0oRi5yZXF1aXJlVXRpbHx8RCkoKTtyZXR1cm4gZnVuY3Rpb24oUCxMLFkpe3JldHVybiBSP1IuaW5zcGVjdChQLEwsWSk6'@; put 'dyhQKX19LEouZ2V0Q3VzdG9tSW5zcGVjdFN5bWJvbD1mdW5jdGlvbih3PXt9KXtyZXR1cm4ody5sb29rdXBDdXN0b21JbnNwZWN0U3ltYm9sfHxfKSgpfHxmdW5jdGlvbiBwKE4pe2NvbnN0IEY9KE4ucmVxdWlyZVV0aWx8fEQpKCk7cmV0dXJuIEY/Ri5pbnNwZWN0LmN1c3RvbTpudWxsfSh3'@; put 'KX19LDc2NTI6KGNlLEopPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoUCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIFB9ZnVuY3Rpb24gTihQKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIFB8fFAgaW5zdGFuY2VvZiBTdHJpbmd9ZnVuY3Rpb24gdyhQKXtyZXR1cm4iW29iamVjdCBPYmpl'@; put 'Y3RdIj09PXRvU3RyaW5nLmNhbGwoUCl9Y2xhc3MgaiBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKC4uLkwpe3N1cGVyKC4uLkwpfX1KLlBhcmFtZXRlckVycm9yPWosSi5pc0Z1bmN0aW9uPWIsSi5pc05vbkVtcHR5U3RyaW5nPWZ1bmN0aW9uIEQoUCl7cmV0dXJuIE4oUCkmJiIiIT09UH0s'@; put 'Si5pc0RhdGU9ZnVuY3Rpb24gXyhQKXtyZXR1cm4gZnVuY3Rpb24gRihQLEwpe3RyeXtyZXR1cm4gUCBpbnN0YW5jZW9mIEx9Y2F0Y2h7cmV0dXJuITF9fShQLERhdGUpJiZmdW5jdGlvbiBIKFApe3JldHVybiJudW1iZXIiPT10eXBlb2YgUCYmUCUxPT0wfShQLmdldFRpbWUoKSl9LEouaXNF'@; put 'bXB0eVN0cmluZz1mdW5jdGlvbiBwKFApe3JldHVybiIiPT09UHx8UCBpbnN0YW5jZW9mIFN0cmluZyYmIiI9PT1QLnRvU3RyaW5nKCl9LEouaXNTdHJpbmc9TixKLmlzT2JqZWN0PXcsSi52YWxpZGF0ZT1mdW5jdGlvbiBSKFAsTCxZKXtpZihiKEwpfHwoWT1MLEw9bnVsbCksdyhZKXx8KFk9'@; put 'e0Vycm9yOiJGYWlsZWQgQ2hlY2sifSksIVApe2lmKCFMKXRocm93IG5ldyBqKFkpO0wobmV3IGooWSkpfX19LDQ1NjpjZT0+e2NlLmV4cG9ydHM9IjQuMS4zIn0sNzA0MTooY2UsSik9PnsidXNlIHN0cmljdCI7Si5mcm9tQ2FsbGJhY2s9ZnVuY3Rpb24oYil7cmV0dXJuIE9iamVjdC5kZWZp'@; put 'bmVQcm9wZXJ0eShmdW5jdGlvbigpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aC0xXSlyZXR1cm4gbmV3IFByb21pc2UoKEQsXyk9Pnthcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aF09KHAsTik9PntpZihwKXJldHVybiBfKHApO0QoTil9LGFyZ3Vt'@; put 'ZW50cy5sZW5ndGgrKyxiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pO2IuYXBwbHkodGhpcyxhcmd1bWVudHMpfSwibmFtZSIse3ZhbHVlOmIubmFtZX0pfSxKLmZyb21Qcm9taXNlPWZ1bmN0aW9uKGIpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZnVuY3Rpb24oKXtjb25zdCBEPWFy'@; put 'Z3VtZW50c1thcmd1bWVudHMubGVuZ3RoLTFdO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBEKXJldHVybiBiLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtkZWxldGUgYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGgtMV0sYXJndW1lbnRzLmxlbmd0aC0tLGIuYXBwbHkodGhpcyxhcmd1bWVudHMpLnRo'@; put 'ZW4oXz0+RChudWxsLF8pLEQpfSwibmFtZSIse3ZhbHVlOmIubmFtZX0pfX0sNjcyOmZ1bmN0aW9uKGNlLEosYil7InVzZSBzdHJpY3QiO3ZhciBEPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbih3LEYsSCxSKXtyZXR1cm4gbmV3KEh8fChIPVByb21pc2UpKShmdW5jdGlvbihQLEwp'@; put 'e2Z1bmN0aW9uIFkoWil7dHJ5e1coUi5uZXh0KFopKX1jYXRjaChYKXtMKFgpfX1mdW5jdGlvbiBCKFope3RyeXtXKFIudGhyb3coWikpfWNhdGNoKFgpe0woWCl9fWZ1bmN0aW9uIFcoWil7Wi5kb25lP1AoWi52YWx1ZSk6ZnVuY3Rpb24gaihQKXtyZXR1cm4gUCBpbnN0YW5jZW9mIEg/UDpu'@; put 'ZXcgSChmdW5jdGlvbihMKXtMKFApfSl9KFoudmFsdWUpLnRoZW4oWSxCKX1XKChSPVIuYXBwbHkodyxGfHxbXSkpLm5leHQoKSl9KX07T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEouQ29udGV4dE1hbmFnZXI9dm9pZCAwO2NvbnN0IF89Yig1OTI4'@; put 'KSxwPWIoOTc3OCk7Si5Db250ZXh0TWFuYWdlcj1jbGFzcyBOe2dldCBnZXREZWZhdWx0Q29tcHV0ZUNvbnRleHRzKCl7cmV0dXJuIHRoaXMuZGVmYXVsdENvbXB1dGVDb250ZXh0c31nZXQgZ2V0RGVmYXVsdExhdW5jaGVyQ29udGV4dHMoKXtyZXR1cm4gdGhpcy5kZWZhdWx0TGF1bmNoZXJD'@; put 'b250ZXh0c31jb25zdHJ1Y3RvcihGLEgpe3RoaXMuc2VydmVyVXJsPUYsdGhpcy5yZXF1ZXN0Q2xpZW50PUgsdGhpcy5kZWZhdWx0Q29tcHV0ZUNvbnRleHRzPVsiQ0FTIEZvcm1hdHMgc2VydmljZSBjb21wdXRlIGNvbnRleHQiLCJEYXRhIE1pbmluZyBjb21wdXRlIGNvbnRleHQiLCJJbXBv'@; put 'cnQgOSBzZXJ2aWNlIGNvbXB1dGUgY29udGV4dCIsIlNBUyBKb2IgRXhlY3V0aW9uIGNvbXB1dGUgY29udGV4dCIsIlNBUyBNb2RlbCBNYW5hZ2VyIGNvbXB1dGUgY29udGV4dCIsIlNBUyBTdHVkaW8gY29tcHV0ZSBjb250ZXh0IiwiU0FTIFZpc3VhbCBGb3JlY2FzdGluZyBjb21wdXRlIGNv'@; put 'bnRleHQiXSx0aGlzLmRlZmF1bHRMYXVuY2hlckNvbnRleHRzPVsiQ0FTIEZvcm1hdHMgc2VydmljZSBsYXVuY2hlciBjb250ZXh0IiwiRGF0YSBNaW5pbmcgbGF1bmNoZXIgY29udGV4dCIsIkltcG9ydCA5IHNlcnZpY2UgbGF1bmNoZXIgY29udGV4dCIsIkpvYiBGbG93IEV4ZWN1dGlvbiBs'@; put 'YXVuY2hlciBjb250ZXh0IiwiU0FTIEpvYiBFeGVjdXRpb24gbGF1bmNoZXIgY29udGV4dCIsIlNBUyBNb2RlbCBNYW5hZ2VyIGxhdW5jaGVyIGNvbnRleHQiLCJTQVMgU3R1ZGlvIGxhdW5jaGVyIGNvbnRleHQiLCJTQVMgVmlzdWFsIEZvcmVjYXN0aW5nIGxhdW5jaGVyIGNvbnRleHQiXSxG'@; put 'JiYoMCxfLmlzVXJsKShGKX1nZXRDb21wdXRlQ29udGV4dHMoRil7cmV0dXJuIEQodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0e3Jlc3VsdDpIfT15aWVsZCB0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KGAke3RoaXMuc2VydmVyVXJsfS9jb21wdXRlL2NvbnRleHRzP2xpbWl0'@; put 'PTEwMDAwYCxGKS5jYXRjaChqPT57dGhyb3coMCxwLnByZWZpeE1lc3NhZ2UpKGosIkVycm9yIHdoaWxlIGdldHRpbmcgY29tcHV0ZSBjb250ZXh0cy4gIil9KTtyZXR1cm4oSCYmSC5pdGVtcz9ILml0ZW1zOltdKS5tYXAoaj0+KHtjcmVhdGVkQnk6ai5jcmVhdGVkQnksaWQ6ai5pZCxuYW1l'@; put 'OmoubmFtZSx2ZXJzaW9uOmoudmVyc2lvbixhdHRyaWJ1dGVzOnt9fSkpfSl9Z2V0TGF1bmNoZXJDb250ZXh0cyhGKXtyZXR1cm4gRCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7Y29uc3R7cmVzdWx0Okh9PXlpZWxkIHRoaXMucmVxdWVzdENsaWVudC5nZXQoYCR7dGhpcy5zZXJ2'@; put 'ZXJVcmx9L2xhdW5jaGVyL2NvbnRleHRzP2xpbWl0PTEwMDAwYCxGKS5jYXRjaChqPT57dGhyb3coMCxwLnByZWZpeE1lc3NhZ2UpKGosIkVycm9yIHdoaWxlIGdldHRpbmcgbGF1bmNoZXIgY29udGV4dHMuICIpfSk7cmV0dXJuKEgmJkguaXRlbXM/SC5pdGVtczpbXSkubWFwKGo9Pih7Y3Jl'@; put 'YXRlZEJ5OmouY3JlYXRlZEJ5LGlkOmouaWQsbmFtZTpqLm5hbWUsdmVyc2lvbjpqLnZlcnNpb24sYXR0cmlidXRlczp7fX0pKX0pfWNyZWF0ZUNvbXB1dGVDb250ZXh0KEYsSCxSLGosUCxMKXtyZXR1cm4gRCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7aWYodGhpcy52YWxpZGF0'@; put 'ZUNvbnRleHROYW1lKEYpLHRoaXMuaXNEZWZhdWx0Q29udGV4dChGLHRoaXMuZGVmYXVsdENvbXB1dGVDb250ZXh0cyxgQ29tcHV0ZSBjb250ZXh0ICcke0Z9JyBhbHJlYWR5IGV4aXN0cy5gKSwoeWllbGQgdGhpcy5nZXRDb21wdXRlQ29udGV4dHMoUCkpLmZpbmQoUT0+US5uYW1lPT09Rikp'@; put 'dGhyb3cgbmV3IEVycm9yKGBDb21wdXRlIGNvbnRleHQgJyR7Rn0nIGFscmVhZHkgZXhpc3RzLmApO2lmKEgmJiF0aGlzLmRlZmF1bHRMYXVuY2hlckNvbnRleHRzLmluY2x1ZGVzKEgpJiYhKHlpZWxkIHRoaXMuZ2V0TGF1bmNoZXJDb250ZXh0cyhQKSkuZmluZChxPT5xLm5hbWU9PT1IKSl7'@; put 'Y29uc3QgcT1gVGhlIGxhdW5jaGVyIGNvbnRleHQgZm9yICR7SH1gLGllPXlpZWxkIHRoaXMuY3JlYXRlTGF1bmNoZXJDb250ZXh0KEgscSwiZGlyZWN0IixQKS5jYXRjaChzZT0+e3Rocm93IG5ldyBFcnJvcihgRXJyb3Igd2hpbGUgY3JlYXRpbmcgbGF1bmNoZXIgY29udGV4dC4gJHtzZX1g'@; put 'KX0pO2lmKCFpZXx8IWllLm5hbWUpdGhyb3cgbmV3IEVycm9yKCJFcnJvciB3aGlsZSBjcmVhdGluZyBsYXVuY2hlciBjb250ZXh0LiIpO0g9aWUubmFtZX1sZXQgVz17cmV1c2VTZXJ2ZXJQcm9jZXNzZXM6ITB9O1ImJihXPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxXKSx7cnVu'@; put 'U2VydmVyQXM6Un0pKTtjb25zdCBaPXtuYW1lOkYsbGF1bmNoQ29udGV4dDp7Y29udGV4dE5hbWU6SHx8IiJ9LGF0dHJpYnV0ZXM6V307TCYmTC5sZW5ndGg/Wi5hdXRob3JpemVkVXNlcnM9TDpaLmF1dGhvcml6ZUFsbEF1dGhlbnRpY2F0ZWRVc2Vycz0hMCxqJiYoWi5lbnZpcm9ubWVudD17'@; put 'YXV0b0V4ZWNMaW5lczpqfSk7Y29uc3R7cmVzdWx0Olh9PXlpZWxkIHRoaXMucmVxdWVzdENsaWVudC5wb3N0KGAke3RoaXMuc2VydmVyVXJsfS9jb21wdXRlL2NvbnRleHRzYCxaLFApLmNhdGNoKFE9Pnt0aHJvdygwLHAucHJlZml4TWVzc2FnZSkoUSwiRXJyb3Igd2hpbGUgY3JlYXRpbmcg'@; put 'Y29tcHV0ZSBjb250ZXh0LiAiKX0pO3JldHVybiBYfSl9Y3JlYXRlTGF1bmNoZXJDb250ZXh0KEYsSCxSPSJkaXJlY3QiLGope3JldHVybiBEKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtpZighRil0aHJvdyBuZXcgRXJyb3IoIkNvbnRleHQgbmFtZSBpcyByZXF1aXJlZC4iKTtp'@; put 'Zih0aGlzLmlzRGVmYXVsdENvbnRleHQoRix0aGlzLmRlZmF1bHRMYXVuY2hlckNvbnRleHRzLGBMYXVuY2hlciBjb250ZXh0ICcke0Z9JyBhbHJlYWR5IGV4aXN0cy5gKSwoeWllbGQgdGhpcy5nZXRMYXVuY2hlckNvbnRleHRzKGopKS5maW5kKFc9PlcubmFtZT09PUYpKXRocm93IG5ldyBF'@; put 'cnJvcihgTGF1bmNoZXIgY29udGV4dCAnJHtGfScgYWxyZWFkeSBleGlzdHMuYCk7Y29uc3QgWT17bmFtZTpGLGRlc2NyaXB0aW9uOkgsbGF1bmNoVHlwZTpSfSx7cmVzdWx0OkJ9PXlpZWxkIHRoaXMucmVxdWVzdENsaWVudC5wb3N0KGAke3RoaXMuc2VydmVyVXJsfS9sYXVuY2hlci9jb250'@; put 'ZXh0c2AsWSxqKS5jYXRjaChXPT57dGhyb3coMCxwLnByZWZpeE1lc3NhZ2UpKFcsIkVycm9yIHdoaWxlIGNyZWF0aW5nIGxhdW5jaGVyIGNvbnRleHQuICIpfSk7cmV0dXJuIEJ9KX1lZGl0Q29tcHV0ZUNvbnRleHQoRixILFIpe3JldHVybiBEKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlv'@; put 'biooKXtsZXQgajt0aGlzLnZhbGlkYXRlQ29udGV4dE5hbWUoRiksdGhpcy5pc0RlZmF1bHRDb250ZXh0KEYsdGhpcy5kZWZhdWx0Q29tcHV0ZUNvbnRleHRzLCJFZGl0aW5nIGRlZmF1bHQgU0FTIGNvbXB1dGUgY29udGV4dHMgaXMgbm90IGFsbG93ZWQuIiwhMCksaj15aWVsZCB0aGlzLmdl'@; put 'dENvbXB1dGVDb250ZXh0QnlOYW1lKEYsUiksanx8KGo9eWllbGQgdGhpcy5nZXRDb21wdXRlQ29udGV4dEJ5SWQoSC5pZCxSKSk7Y29uc3R7cmVzdWx0OlAsZXRhZzpMfT15aWVsZCB0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KGAke3RoaXMuc2VydmVyVXJsfS9jb21wdXRlL2NvbnRleHRzLyR7'@; put 'ai5pZH1gLFIpLmNhdGNoKFk9Pnt0aHJvdyBZJiY0MDQ9PT1ZLnN0YXR1cz9uZXcgRXJyb3IoYFRoZSBjb250ZXh0ICcke0Z9JyB3YXMgbm90IGZvdW5kIG9uIHRoaXMgc2VydmVyLmApOll9KTtyZXR1cm4geWllbGQgdGhpcy5yZXF1ZXN0Q2xpZW50LnB1dChgL2NvbXB1dGUvY29udGV4dHMv'@; put 'JHtQLmlkfWAsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sUCksSCkse2F0dHJpYnV0ZXM6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LFAuYXR0cmlidXRlcyksSC5hdHRyaWJ1dGVzKX0pLFIseyJJZi1NYXRjaCI6TH0pfSl9Z2V0Q29tcHV0ZUNv'@; put 'bnRleHRCeU5hbWUoRixIKXtyZXR1cm4gRCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7Y29uc3R7cmVzdWx0OlJ9PXlpZWxkIHRoaXMucmVxdWVzdENsaWVudC5nZXQoYCR7dGhpcy5zZXJ2ZXJVcmx9L2NvbXB1dGUvY29udGV4dHM/ZmlsdGVyPWVxKG5hbWUsICIke0Z9IilgLEgp'@; put 'LmNhdGNoKGo9Pnt0aHJvdygwLHAucHJlZml4TWVzc2FnZSkoaiwiRXJyb3Igd2hpbGUgZ2V0dGluZyBjb21wdXRlIGNvbnRleHQgYnkgbmFtZS4gIil9KTtpZighUnx8IVIuaXRlbXN8fCFSLml0ZW1zLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoYFRoZSBjb250ZXh0ICcke0Z9JyB3YXMgbm90'@; put 'IGZvdW5kIGF0ICcke3RoaXMuc2VydmVyVXJsfScuYCk7cmV0dXJuIFIuaXRlbXNbMF19KX1nZXRDb21wdXRlQ29udGV4dEJ5SWQoRixIKXtyZXR1cm4gRCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7Y29uc3R7cmVzdWx0OlJ9PXlpZWxkIHRoaXMucmVxdWVzdENsaWVudC5nZXQo'@; put 'YCR7dGhpcy5zZXJ2ZXJVcmx9L2NvbXB1dGUvY29udGV4dHMvJHtGfWAsSCkuY2F0Y2goaj0+e3Rocm93KDAscC5wcmVmaXhNZXNzYWdlKShqLCJFcnJvciB3aGlsZSBnZXR0aW5nIGNvbXB1dGUgY29udGV4dCBieSBpZC4gIil9KTtyZXR1cm4gUn0pfWdldEV4ZWN1dGFibGVDb250ZXh0cyhG'@; put 'LEgpe3JldHVybiBEKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdHtyZXN1bHQ6Un09eWllbGQgdGhpcy5yZXF1ZXN0Q2xpZW50LmdldChgJHt0aGlzLnNlcnZlclVybH0vY29tcHV0ZS9jb250ZXh0cz9saW1pdD0xMDAwMGAsSD8uYWNjZXNzX3Rva2VuKS5jYXRjaChCPT57'@; put 'dGhyb3coMCxwLnByZWZpeE1lc3NhZ2UpKEIsIkVycm9yIHdoaWxlIGZldGNoaW5nIGNvbXB1dGUgY29udGV4dHMuIil9KSxqPVIuaXRlbXN8fFtdLFA9W10sTD1qLm1hcChCPT57Y29uc3QgVz1bIiVwdXQgJj1zeXN1c2VyaWQ7Il07cmV0dXJuKCk9PkYoYHRlc3QtJHtCLm5hbWV9YCxXLEIu'@; put 'bmFtZSxILG51bGwsITEsITAsITApLmNhdGNoKFo9PlopfSk7bGV0IFk9W107Zm9yKGNvbnN0IEIgb2YgTClZLnB1c2goeWllbGQgQigpKTtyZXR1cm4gWS5mb3JFYWNoKChCLFcpPT57aWYoQiYmQi5sb2cpdHJ5e2xldCBYPSIiO2NvbnN0IFE9Qi5sb2cuc3BsaXQoIlxuIikuZmluZChxPT5x'@; put 'LnN0YXJ0c1dpdGgoIlNZU1VTRVJJRD0iKSk7USYmKFg9US5yZXBsYWNlKCJTWVNVU0VSSUQ9IiwiIiksUC5wdXNoKHtjcmVhdGVkQnk6altXXS5jcmVhdGVkQnksaWQ6altXXS5pZCxuYW1lOmpbV10ubmFtZSx2ZXJzaW9uOmpbV10udmVyc2lvbixhdHRyaWJ1dGVzOntzeXNVc2VySWQ6WH19'@; put 'KSl9Y2F0Y2goWil7dGhyb3cgWn19KSxQfSl9ZGVsZXRlQ29tcHV0ZUNvbnRleHQoRixIKXtyZXR1cm4gRCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGhpcy52YWxpZGF0ZUNvbnRleHROYW1lKEYpLHRoaXMuaXNEZWZhdWx0Q29udGV4dChGLHRoaXMuZGVmYXVsdENvbXB1dGVD'@; put 'b250ZXh0cywiRGVsZXRpbmcgZGVmYXVsdCBTQVMgY29tcHV0ZSBjb250ZXh0cyBpcyBub3QgYWxsb3dlZC4iLCEwKTtjb25zdCBqPXlpZWxkIHRoaXMuZ2V0Q29tcHV0ZUNvbnRleHRCeU5hbWUoRixIKTtyZXR1cm4geWllbGQgdGhpcy5yZXF1ZXN0Q2xpZW50LmRlbGV0ZShgJHt0aGlzLnNl'@; put 'cnZlclVybH0vY29tcHV0ZS9jb250ZXh0cy8ke2ouaWR9YCxIKX0pfXZhbGlkYXRlQ29udGV4dE5hbWUoRil7aWYoIUYpdGhyb3cgbmV3IEVycm9yKCJDb250ZXh0IG5hbWUgaXMgcmVxdWlyZWQuIil9aXNEZWZhdWx0Q29udGV4dChGLEg9dGhpcy5kZWZhdWx0Q29tcHV0ZUNvbnRleHRzLFI9'@; put 'IiIsaj0hMSl7aWYoSC5pbmNsdWRlcyhGKSl0aHJvdyBuZXcgRXJyb3IoYCR7Un0ke2o/IlxuRGVmYXVsdCBjb250ZXh0czoiK0gubWFwKChQLEwpPT5gXG4ke0wrMX0uICR7UH1gKToiIn1gKX19fSw4MzA2OmZ1bmN0aW9uKGNlLEosYil7InVzZSBzdHJpY3QiO3ZhciBEPXRoaXMmJnRoaXMu'@; put 'X19hd2FpdGVyfHxmdW5jdGlvbihqLFAsTCxZKXtyZXR1cm4gbmV3KEx8fChMPVByb21pc2UpKShmdW5jdGlvbihXLFope2Z1bmN0aW9uIFgodGUpe3RyeXtxKFkubmV4dCh0ZSkpfWNhdGNoKGllKXtaKGllKX19ZnVuY3Rpb24gUSh0ZSl7dHJ5e3EoWS50aHJvdyh0ZSkpfWNhdGNoKGllKXta'@; put 'KGllKX19ZnVuY3Rpb24gcSh0ZSl7dGUuZG9uZT9XKHRlLnZhbHVlKTpmdW5jdGlvbiBCKFcpe3JldHVybiBXIGluc3RhbmNlb2YgTD9XOm5ldyBMKGZ1bmN0aW9uKFope1ooVyl9KX0odGUudmFsdWUpLnRoZW4oWCxRKX1xKChZPVkuYXBwbHkoaixQfHxbXSkpLm5leHQoKSl9KX0sXz10aGlz'@; put 'JiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oail7cmV0dXJuIGomJmouX19lc01vZHVsZT9qOntkZWZhdWx0Omp9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5TQVM5QXBpQ2xpZW50PXZvaWQgMDtjb25zdCBwPWIoNzc1NyksTj1f'@; put 'KGIoNjIzMCkpLHc9Yig3OTUpLEY9Yig1OTI4KTtKLlNBUzlBcGlDbGllbnQ9Y2xhc3MgSHtjb25zdHJ1Y3RvcihQLEwsWSl7dGhpcy5zZXJ2ZXJVcmw9UCx0aGlzLmpvYnNQYXRoPUwsUCYmKDAsRi5pc1VybCkoUCksdGhpcy5yZXF1ZXN0Q2xpZW50PW5ldyB3LlNhczlSZXF1ZXN0Q2xpZW50'@; put 'KFAsWSl9Z2V0Q29uZmlnKCl7cmV0dXJue3NlcnZlclVybDp0aGlzLnNlcnZlclVybH19c2V0Q29uZmlnKFApe1AmJih0aGlzLnNlcnZlclVybD1QKX1leGVjdXRlU2NyaXB0KFAsTCxZKXtyZXR1cm4gRCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7eWllbGQgdGhpcy5yZXF1ZXN0'@; put 'Q2xpZW50LmxvZ2luKEwsWSx0aGlzLmpvYnNQYXRoKTtjb25zdCBXPVIoWy4uLlAsImRhdGEgX251bGxfOyIsImZpbGUgX3dlYm91dDsiLCJwdXQgJ0V4ZWN1dGVkIHNhc2pzIHJ1bic7IiwicnVuOyJdLmpvaW4oIlxuIikpLFo9YC9Vc2VyIEZvbGRlcnMvJHtMfS9NeSBGb2xkZXIvc2FzanMv'@; put 'cnVubmVyYCxYPSJtdWx0aXBhcnQvZm9ybS1kYXRhOyBib3VuZGFyeT0iK1cuZ2V0Qm91bmRhcnkoKSxxPXsiY2FjaGUtY29udHJvbCI6Im5vLWNhY2hlIixBY2NlcHQ6IiovKiIsIkNvbnRlbnQtVHlwZSI6WCwiQ29udGVudC1MZW5ndGgiOlcuZ2V0TGVuZ3RoU3luYygpLENvbm5lY3Rpb246'@; put 'ImtlZXAtYWxpdmUifSx0ZT1gJHt0aGlzLmpvYnNQYXRofS8/JHsiX3Byb2dyYW09IitaKyImX2RlYnVnPWxvZyJ9YDtyZXR1cm4oeWllbGQgdGhpcy5yZXF1ZXN0Q2xpZW50LnBvc3QodGUsVyx2b2lkIDAsWCxxKSkucmVzdWx0fSl9fTtjb25zdCBSPWo9Pntjb25zdCBQPW5ldyBOLmRlZmF1'@; put 'bHQsTD1gc2FzanMtZXhlY3V0ZS1zYXM5LSR7KDAscC5nZW5lcmF0ZVRpbWVzdGFtcCkoIiIpfS5zYXNgO3JldHVybiBQLmFwcGVuZChMLGose2ZpbGVuYW1lOkwsY29udGVudFR5cGU6InRleHQvcGxhaW4ifSksUH19LDk4MjE6ZnVuY3Rpb24oY2UsSixiKXsidXNlIHN0cmljdCI7dmFyIEQ9'@; put 'Yig0MTU1KSxfPWIoNTEwOCkscD10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24odGUsaWUsc2UsZ2Upe3JldHVybiBuZXcoc2V8fChzZT1Qcm9taXNlKSkoZnVuY3Rpb24oVGUsU2Upe2Z1bmN0aW9uIHplKHkpe3RyeXtnKGdlLm5leHQoeSkpfWNhdGNoKHgpe1NlKHgpfX1mdW5jdGlv'@; put 'biB6KHkpe3RyeXtnKGdlLnRocm93KHkpKX1jYXRjaCh4KXtTZSh4KX19ZnVuY3Rpb24gZyh5KXt5LmRvbmU/VGUoeS52YWx1ZSk6ZnVuY3Rpb24gX2UoVGUpe3JldHVybiBUZSBpbnN0YW5jZW9mIHNlP1RlOm5ldyBzZShmdW5jdGlvbihTZSl7U2UoVGUpfSl9KHkudmFsdWUpLnRoZW4oemUs'@; put 'eil9ZygoZ2U9Z2UuYXBwbHkodGUsaWV8fFtdKSkubmV4dCgpKX0pfSxOPXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbih0ZSl7cmV0dXJuIHRlJiZ0ZS5fX2VzTW9kdWxlP3RlOntkZWZhdWx0OnRlfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2'@; put 'YWx1ZTohMH0pLEouU0FTVml5YUFwaUNsaWVudD12b2lkIDA7Y29uc3Qgdz1iKDU5MjgpLEY9TihiKDYyMzApKSxIPWIoMTM5NSksUj1iKDY5MDMpLGo9Yig2NzIpLFA9Yig5MDk3KSxMPWIoOTc3OCksWT1iKDEzNDMpLEI9Yig3MDQpLFc9Yig2NDk2KSxaPWIoMTYyMiksWD1iKDM1NjkpLFE9'@; put 'YigzNjYpO0ouU0FTVml5YUFwaUNsaWVudD1jbGFzcyBxe2NvbnN0cnVjdG9yKGllLHNlLGdlLF9lKXt0aGlzLnNlcnZlclVybD1pZSx0aGlzLnJvb3RGb2xkZXJOYW1lPXNlLHRoaXMuY29udGV4dE5hbWU9Z2UsdGhpcy5yZXF1ZXN0Q2xpZW50PV9lLHRoaXMuX2RlYnVnPSExLHRoaXMuc2Vz'@; put 'c2lvbk1hbmFnZXI9bmV3IFIuU2Vzc2lvbk1hbmFnZXIodGhpcy5zZXJ2ZXJVcmwsdGhpcy5jb250ZXh0TmFtZSx0aGlzLnJlcXVlc3RDbGllbnQpLHRoaXMuY29udGV4dE1hbmFnZXI9bmV3IGouQ29udGV4dE1hbmFnZXIodGhpcy5zZXJ2ZXJVcmwsdGhpcy5yZXF1ZXN0Q2xpZW50KSx0aGlz'@; put 'LmZvbGRlck1hcD1uZXcgTWFwLGllJiYoMCx3LmlzVXJsKShpZSl9YXBwZW5kUmVxdWVzdChpZSxzZSxnZSl7dGhpcy5yZXF1ZXN0Q2xpZW50LmFwcGVuZFJlcXVlc3QoaWUsc2UsZ2UpfWdldCBkZWJ1Zygpe3JldHVybiB0aGlzLl9kZWJ1Z31zZXQgZGVidWcoaWUpe3RoaXMuX2RlYnVnPWll'@; put 'LHRoaXMuc2Vzc2lvbk1hbmFnZXImJih0aGlzLnNlc3Npb25NYW5hZ2VyLmRlYnVnPWllKX1nZXRKb2JzSW5Gb2xkZXIoaWUpe3JldHVybiBwKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdCBzZT0oMCx3LmlzUmVsYXRpdmVQYXRoKShpZSk/YCR7dGhpcy5yb290Rm9sZGVy'@; put 'TmFtZX0vJHtpZX1gOmllO3JldHVybiB0aGlzLmZvbGRlck1hcC5nZXQoc2UpfHwoeWllbGQgdGhpcy5wb3B1bGF0ZUZvbGRlck1hcChzZSkpLHRoaXMuZm9sZGVyTWFwLmdldChzZSl9KX1nZXRDb25maWcoKXtyZXR1cm57c2VydmVyVXJsOnRoaXMuc2VydmVyVXJsLHJvb3RGb2xkZXJOYW1l'@; put 'OnRoaXMucm9vdEZvbGRlck5hbWV9fXNldENvbmZpZyhpZSxzZSl7aWUmJih0aGlzLnNlcnZlclVybD1pZSksc2UmJih0aGlzLnJvb3RGb2xkZXJOYW1lPXNlKX1nZXRDb21wdXRlQ29udGV4dHMoaWUpe3JldHVybiBwKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4geWll'@; put 'bGQgdGhpcy5jb250ZXh0TWFuYWdlci5nZXRDb21wdXRlQ29udGV4dHMoaWUpfSl9Z2V0RGVmYXVsdENvbXB1dGVDb250ZXh0cygpe3JldHVybiB0aGlzLmNvbnRleHRNYW5hZ2VyLmdldERlZmF1bHRDb21wdXRlQ29udGV4dHN9Z2V0TGF1bmNoZXJDb250ZXh0cyhpZSl7cmV0dXJuIHAodGhp'@; put 'cyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiB5aWVsZCB0aGlzLmNvbnRleHRNYW5hZ2VyLmdldExhdW5jaGVyQ29udGV4dHMoaWUpfSl9Z2V0RXhlY3V0YWJsZUNvbnRleHRzKGllKXtyZXR1cm4gcCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7Y29uc3Qgc2U9dGhp'@; put 'cy5leGVjdXRlU2NyaXB0LmJpbmQodGhpcyk7cmV0dXJuIHlpZWxkIHRoaXMuY29udGV4dE1hbmFnZXIuZ2V0RXhlY3V0YWJsZUNvbnRleHRzKHNlLGllKX0pfWNyZWF0ZVNlc3Npb24oaWUsc2Upe3JldHVybiBwKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdHtyZXN1bHQ6'@; put 'X2V9PXlpZWxkIHRoaXMucmVxdWVzdENsaWVudC5nZXQoIi9jb21wdXRlL2NvbnRleHRzP2xpbWl0PTEwMDAwIixzZSksVGU9X2UuaXRlbXMmJl9lLml0ZW1zLmxlbmd0aD9fZS5pdGVtcy5maW5kKHplPT56ZS5uYW1lPT09aWUpOm51bGw7aWYoIVRlKXRocm93IG5ldyBFcnJvcihgRXhlY3V0'@; put 'aW9uIGNvbnRleHQgJHtpZX0gbm90IGZvdW5kLmApO2NvbnN0e3Jlc3VsdDpTZX09eWllbGQgdGhpcy5yZXF1ZXN0Q2xpZW50LnBvc3QoYC9jb21wdXRlL2NvbnRleHRzLyR7VGUuaWR9L3Nlc3Npb25zYCx7fSxzZSk7cmV0dXJuIFNlfSl9Y3JlYXRlQ29tcHV0ZUNvbnRleHQoaWUsc2UsZ2Us'@; put 'X2UsVGUsU2Upe3JldHVybiBwKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4geWllbGQgdGhpcy5jb250ZXh0TWFuYWdlci5jcmVhdGVDb21wdXRlQ29udGV4dChpZSxzZSxnZSxfZSxUZSxTZSl9KX1jcmVhdGVMYXVuY2hlckNvbnRleHQoaWUsc2UsZ2U9ImRpcmVjdCIs'@; put 'X2Upe3JldHVybiBwKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4geWllbGQgdGhpcy5jb250ZXh0TWFuYWdlci5jcmVhdGVMYXVuY2hlckNvbnRleHQoaWUsc2UsZ2UsX2UpfSl9ZWRpdENvbXB1dGVDb250ZXh0KGllLHNlLGdlKXtyZXR1cm4gcCh0aGlzLHZvaWQgMCx2'@; put 'b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuIHlpZWxkIHRoaXMuY29udGV4dE1hbmFnZXIuZWRpdENvbXB1dGVDb250ZXh0KGllLHNlLGdlKX0pfWRlbGV0ZUNvbXB1dGVDb250ZXh0KGllLHNlKXtyZXR1cm4gcCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuIHlpZWxkIHRo'@; put 'aXMuY29udGV4dE1hbmFnZXIuZGVsZXRlQ29tcHV0ZUNvbnRleHQoaWUsc2UpfSl9ZXhlY3V0ZVNjcmlwdChpZSxzZSxnZSxfZSxUZT1udWxsLFNlPSExLHplPSExLHo9ITAsZyx5PSExLHgpe3JldHVybiBwKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4oMCxaLmV4ZWN1'@; put 'dGVPbkNvbXB1dGVBcGkpKHRoaXMucmVxdWVzdENsaWVudCx0aGlzLnNlc3Npb25NYW5hZ2VyLHRoaXMucm9vdEZvbGRlck5hbWUsaWUsc2UsZ2UsX2UsVGUsU2UsemUseixnLHkseCl9KX1nZXRGaWxlQ29udGVudChpZSxzZSxnZSl7cmV0dXJuIHAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0'@; put 'aW9uKigpe2NvbnN0IF9lPXlpZWxkIHRoaXMuZ2V0RmlsZVVyaShpZSxzZSxnZSkuY2F0Y2goVGU9Pnt0aHJvdygwLEwucHJlZml4TWVzc2FnZSkoVGUsYEVycm9yIHdoaWxlIGdldHRpbmcgZmlsZSBVUkkgZm9yOiAke3NlfSBpbiBmb2xkZXI6ICR7aWV9LiBgKX0pO3JldHVybiB5aWVsZCB0'@; put 'aGlzLnJlcXVlc3RDbGllbnQuZ2V0KGAke3RoaXMuc2VydmVyVXJsfSR7X2V9L2NvbnRlbnRgLGdlKS50aGVuKFRlPT5UZS5yZXN1bHQpfSl9dXBkYXRlRmlsZUNvbnRlbnQoaWUsc2UsZ2UsX2Upe3JldHVybiBwKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdCBUZT15aWVs'@; put 'ZCB0aGlzLmdldEZpbGVVcmkoaWUsc2UsX2UpLmNhdGNoKHo9Pnt0aHJvdygwLEwucHJlZml4TWVzc2FnZSkoeixgRXJyb3Igd2hpbGUgZ2V0dGluZyBmaWxlIFVSSSBmb3I6ICR7c2V9IGluIGZvbGRlcjogJHtpZX0uIGApfSkse3Jlc3VsdDpTZSxldGFnOnplfT15aWVsZCB0aGlzLnJlcXVl'@; put 'c3RDbGllbnQuZ2V0KGAke3RoaXMuc2VydmVyVXJsfSR7VGV9YCxfZSk7aWYoIVNlfHwhemUpdGhyb3cgbmV3IEVycm9yKGBGaWxlICR7c2V9IGRvZXMgbm90IGhhdmUgYW4gRVRhZywgb3IgcmVxdWVzdCBmYWlsZWQuYCk7cmV0dXJuIHlpZWxkIHRoaXMucmVxdWVzdENsaWVudC5wdXQoYCR7'@; put 'dGhpcy5zZXJ2ZXJVcmx9JHtUZX0vY29udGVudGAsZ2UsX2UseyJJZi1NYXRjaCI6emUsIkNvbnRlbnQtVHlwZSI6U2UuY29udGVudFR5cGV9KS50aGVuKHo9PnoucmVzdWx0KX0pfWdldEZvbGRlcihpZSxzZSl7cmV0dXJuIHAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVy'@; put 'biB5aWVsZCB0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KGAvZm9sZGVycy9mb2xkZXJzL0BpdGVtP3BhdGg9JHtpZX1gLHNlKS50aGVuKGdlPT5nZS5yZXN1bHQpfSl9Y3JlYXRlRmlsZShpZSxzZSxnZSxfZSxUZSl7cmV0dXJuIHAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2lmKCFn'@; put 'ZSYmIV9lKXRocm93IG5ldyBFcnJvcigiUGF0aCBvciBVUkkgb2YgdGhlIHBhcmVudCBmb2xkZXIgaXMgcmVxdWlyZWQuIik7IV9lJiZnZSYmKF9lPXlpZWxkIHRoaXMuZ2V0Rm9sZGVyVXJpKGdlLFRlKSk7Y29uc3QgU2U9e0FjY2VwdDoiYXBwbGljYXRpb24vdm5kLnNhcy5maWxlK2pzb24i'@; put 'LCJDb250ZW50LURpc3Bvc2l0aW9uIjpgZmlsZW5hbWU9IiR7aWV9IjtgfSx6ZT1uZXcgRi5kZWZhdWx0O3JldHVybiB6ZS5hcHBlbmQoImZpbGUiLHNlLGllKSwoeWllbGQgdGhpcy5yZXF1ZXN0Q2xpZW50LnBvc3QoYC9maWxlcy9maWxlcz9wYXJlbnRGb2xkZXJVcmk9JHtfZX0mdHlwZURl'@; put 'Zk5hbWU9ZmlsZSNyYXdVcGxvYWRgLHplLFRlLCJtdWx0aXBhcnQvZm9ybS1kYXRhOyBib3VuZGFyeT0iK3plLl9ib3VuZGFyeSxTZSkpLnJlc3VsdH0pfWNyZWF0ZUZvbGRlcihpZSxzZSxnZSxfZSxUZSl7cmV0dXJuIHAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IFNl'@; put 'PUQubG9nZ2VyfHxfO2lmKCFzZSYmIWdlKXRocm93IG5ldyBFcnJvcigiUGF0aCBvciBVUkkgb2YgdGhlIHBhcmVudCBmb2xkZXIgaXMgcmVxdWlyZWQuIik7aWYoIWdlJiZzZSlpZihnZT15aWVsZCB0aGlzLmdldEZvbGRlclVyaShzZSxfZSkpe2lmKFRlKXtjb25zdCB6PXNlKyIvIitpZTso'@; put 'eWllbGQgdGhpcy5nZXRGb2xkZXJVcmkoeixfZSkpJiYoeWllbGQgdGhpcy5kZWxldGVGb2xkZXIoc2UrIi8iK2llLF9lKSl9fWVsc2V7U2UuaW5mbyhgUGFyZW50IGZvbGRlciBhdCBwYXRoICcke3NlfScgaXMgbm90IHByZXNlbnQuYCk7Y29uc3Qgej1zZS5zdWJzdHJpbmcoMCxzZS5sYXN0'@; put 'SW5kZXhPZigiLyIpKSxnPWAke3NlLnNwbGl0KCIvIikucG9wKCl9YDtpZigiIj09PXopdGhyb3cgbmV3IEguUm9vdEZvbGRlck5vdEZvdW5kRXJyb3Ioc2UsdGhpcy5zZXJ2ZXJVcmwsX2UpO1NlLmluZm8oYENyZWF0aW5nIHBhcmVudCBmb2xkZXI6XG4nJHtnfScgaW4gJyR7en0nYCk7Y29u'@; put 'c3QgeT15aWVsZCB0aGlzLmNyZWF0ZUZvbGRlcihnLHosdm9pZCAwLF9lKTtTZS5pbmZvKGBQYXJlbnQgZm9sZGVyICcke2d9JyBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgY3JlYXRlZC5gKSxnZT1gL2ZvbGRlcnMvZm9sZGVycy8ke3kuaWR9YH1jb25zdHtyZXN1bHQ6emV9PXlpZWxkIHRoaXMu'@; put 'cmVxdWVzdENsaWVudC5wb3N0KGAvZm9sZGVycy9mb2xkZXJzP3BhcmVudEZvbGRlclVyaT0ke2dlfWAse25hbWU6aWUsdHlwZToiZm9sZGVyIn0sX2UpLmNhdGNoKHo9Pntjb25zdHttZXNzYWdlOmcscmVzcG9uc2U6eX09ejtpZihnJiZ5JiZ5LmRhdGEmJnkuZGF0YS5tZXNzYWdlKXtjb25z'@; put 'dHtzdGF0dXM6eH09eSx7bWVzc2FnZTpDfT15LmRhdGEsVD1bZyxDXS5tYXAoVT0+L1wuJC8udGVzdChVKT9VOmAke1V9LmApO3Rocm93IVRlJiY0MDk9PT14JiZULnB1c2goJ1RvIG92ZXJyaWRlLCBwbGVhc2Ugc2V0ICJpc0ZvcmNlZCIgdG8gInRydWUiLicpLFQuam9pbigiICIpfXRocm93'@; put 'IHp9KTtyZXR1cm4geWllbGQgdGhpcy5wb3B1bGF0ZUZvbGRlck1hcChgJHtzZX0vJHtpZX1gLF9lKSx6ZX0pfWNyZWF0ZUpvYkRlZmluaXRpb24oaWUsc2UsZ2UsX2UsVGUpe3JldHVybiBwKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtpZighZ2UmJiFfZSl0aHJvdyBuZXcgRXJy'@; put 'b3IoIlBhdGggdG8gb3IgVVJJIG9mIHRoZSBwYXJlbnQgZm9sZGVyIGlzIHJlcXVpcmVkLiIpO3JldHVybiFfZSYmZ2UmJihfZT15aWVsZCB0aGlzLmdldEZvbGRlclVyaShnZSxUZSkpLHlpZWxkIHRoaXMucmVxdWVzdENsaWVudC5wb3N0KGAke3RoaXMuc2VydmVyVXJsfS9qb2JEZWZpbml0'@; put 'aW9ucy9kZWZpbml0aW9ucz9wYXJlbnRGb2xkZXJVcmk9JHtfZX1gLHtuYW1lOmllLHBhcmFtZXRlcnM6W3tuYW1lOiJfYWRkamVzYmVnaW5lbmRtYWNyb3MiLHR5cGU6IkNIQVJBQ1RFUiIsZGVmYXVsdFZhbHVlOiJmYWxzZSJ9XSx0eXBlOiJDb21wdXRlIixjb2RlOnNlfSxUZSl9KX1nZXRB'@; put 'dXRoQ29kZShpZSl7cmV0dXJuIHAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IHNlPWAke3RoaXMuc2VydmVyVXJsfS9TQVNMb2dvbi9vYXV0aC9hdXRob3JpemU/Y2xpZW50X2lkPSR7aWV9JnJlc3BvbnNlX3R5cGU9Y29kZWA7cmV0dXJuIHlpZWxkIHRoaXMucmVxdWVz'@; put 'dENsaWVudC5nZXQoc2Usdm9pZCAwLCJ0ZXh0L3BsYWluIikudGhlbihfZT0+X2UucmVzdWx0KS50aGVuKF9lPT5wKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtsZXQgVGU9IiI7aWYoKDAsUC5pc0F1dGhvcml6ZUZvcm1SZXF1aXJlZCkoX2UpKXtjb25zdCB6ZT0oeWllbGQgdGhp'@; put 'cy5yZXF1ZXN0Q2xpZW50LmF1dGhvcml6ZShfZSkpLnNwbGl0KCI8Ym9keT4iKVsxXS5zcGxpdCgiPC9ib2R5PiIpWzBdLHo9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHouaW5uZXJIVE1MPXplLFRlPXoucXVlcnlTZWxlY3RvcigiLmluZm9ib3ggaDQiKS5pbm5lclRl'@; put 'eHQsVGV9e2NvbnN0IFNlPV9lLnNwbGl0KCI8Ym9keT4iKVsxXS5zcGxpdCgiPC9ib2R5PiIpWzBdLHplPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB6ZS5pbm5lckhUTUw9U2UsemUmJihUZT16ZS5xdWVyeVNlbGVjdG9yKCIuaW5mb2JveCBoNCIpLmlubmVyVGV4dCks'@; put 'VGV9fSkpLmNhdGNoKCgpPT5udWxsKX0pfWdldEFjY2Vzc1Rva2VuKGllLHNlLGdlKXtyZXR1cm4gcCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuKDAsWC5nZXRBY2Nlc3NUb2tlbkZvclZpeWEpKHRoaXMucmVxdWVzdENsaWVudCxpZSxzZSxnZSl9KX1yZWZyZXNoVG9r'@; put 'ZW5zKGllLHNlLGdlKXtyZXR1cm4gcCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuKDAsUS5yZWZyZXNoVG9rZW5zRm9yVml5YSkodGhpcy5yZXF1ZXN0Q2xpZW50LGllLHNlLGdlKX0pfWRlbGV0ZUNsaWVudChpZSxzZSl7cmV0dXJuIHAodGhpcyx2b2lkIDAsdm9pZCAw'@; put 'LGZ1bmN0aW9uKigpe2NvbnN0IGdlPXRoaXMuc2VydmVyVXJsK2Avb2F1dGgvY2xpZW50cy8ke2llfWA7cmV0dXJuKHlpZWxkIHRoaXMucmVxdWVzdENsaWVudC5kZWxldGUoZ2Usc2UpKS5yZXN1bHR9KX1leGVjdXRlQ29tcHV0ZUpvYihpZSxzZSxnZSxfZSxUZSxTZT0hMCx6ZT0hMSx6LGc9'@; put 'ITEseSl7cmV0dXJuIHAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2xldCB4PShUZXx8e30pLmFjY2Vzc190b2tlbjtpZihUZSYmKHthY2Nlc3NfdG9rZW46eH09eWllbGQoMCxCLmdldFRva2VucykodGhpcy5yZXF1ZXN0Q2xpZW50LFRlKSksKDAsdy5pc1JlbGF0aXZlUGF0aCko'@; put 'aWUpJiYhdGhpcy5yb290Rm9sZGVyTmFtZSl0aHJvdyBuZXcgRXJyb3IoIlJlbGF0aXZlIHBhdGhzIGNhbm5vdCBiZSB1c2VkIHdpdGhvdXQgc3BlY2lmeWluZyBhIHJvb3QgZm9sZGVyIG5hbWUiKTtjb25zdCBDPWllLnNwbGl0KCIvIiksVD1DLnBvcCgpLFY9Qy5qb2luKCIvIiksVT0oMCx3'@; put 'LmlzUmVsYXRpdmVQYXRoKShpZSk/YCR7dGhpcy5yb290Rm9sZGVyTmFtZX0vJHtWfWA6Vjt5aWVsZCB0aGlzLnBvcHVsYXRlRm9sZGVyTWFwKFUseCkuY2F0Y2gobmU9Pnt0aHJvdygwLEwucHJlZml4TWVzc2FnZSkobmUsIkVycm9yIHdoaWxlIHBvcHVsYXRpbmcgZm9sZGVyIG1hcC4gIil9'@; put 'KTtjb25zdCBFPXRoaXMuZm9sZGVyTWFwLmdldChVKTtpZighRSl0aHJvdyBuZXcgRXJyb3IoYFRoZSBmb2xkZXIgJyR7VX0nIHdhcyBub3QgZm91bmQgb24gJyR7dGhpcy5zZXJ2ZXJVcmx9J2ApO2NvbnN0IG09RT8uZmluZChuZT0+bmUubmFtZT09PVQpO2lmKCFtKXRocm93IG5ldyBFcnJv'@; put 'cigiSm9iIHdhcyBub3QgZm91bmQuIik7bGV0IEE9bT8uY29kZTtpZighQSl7Y29uc3QgbmU9bT8ubGlua3MuZmluZCh3ZT0+ImdldFJlc291cmNlIj09PXdlLnJlbCk7aWYoIW5lKXRocm93IG5ldyBFcnJvcigiVVJJIG9mIGpvYiBkZWZpbml0aW9uIHdhcyBub3QgZm91bmQuIik7Y29uc3R7'@; put 'cmVzdWx0OmxlfT15aWVsZCB0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KGAke3RoaXMuc2VydmVyVXJsfSR7bmUuaHJlZn1gLHgpLmNhdGNoKHdlPT57dGhyb3coMCxMLnByZWZpeE1lc3NhZ2UpKHdlLCJFcnJvciB3aGlsZSBnZXR0aW5nIGpvYiBkZWZpbml0aW9uLiAiKX0pO0E9bGUuY29kZSxt'@; put 'LmNvZGU9QX1BfHwoQT0iIik7Y29uc3QgYWU9QS5yZXBsYWNlKC9cclxuL2csIlxuIikuc3BsaXQoIlxuIik7cmV0dXJuIHlpZWxkIHRoaXMuZXhlY3V0ZVNjcmlwdChpZSxhZSxzZSxUZSxfZSxnZSx6ZSxTZSx6LGcseSl9KX1leGVjdXRlSm9iKGllLHNlLGdlLF9lLFRlKXt2YXIgU2UsemUs'@; put 'ejtyZXR1cm4gcCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0IGc9KFRlfHx7fSkuYWNjZXNzX3Rva2VuO2lmKFRlJiYoe2FjY2Vzc190b2tlbjpnfT15aWVsZCgwLEIuZ2V0VG9rZW5zKSh0aGlzLnJlcXVlc3RDbGllbnQsVGUpKSwoMCx3LmlzUmVsYXRpdmVQYXRoKShpZSkm'@; put 'JiF0aGlzLnJvb3RGb2xkZXJOYW1lKXRocm93IG5ldyBFcnJvcigiUmVsYXRpdmUgcGF0aHMgY2Fubm90IGJlIHVzZWQgd2l0aG91dCBzcGVjaWZ5aW5nIGEgcm9vdCBmb2xkZXIgbmFtZS4iKTtjb25zdCB5PWllLnNwbGl0KCIvIikseD15LnBvcCgpLEM9eS5qb2luKCIvIiksVD0oMCx3Lmlz'@; put 'UmVsYXRpdmVQYXRoKShpZSk/YCR7dGhpcy5yb290Rm9sZGVyTmFtZX0vJHtDfWA6Qzt5aWVsZCB0aGlzLnBvcHVsYXRlRm9sZGVyTWFwKFQsZyk7Y29uc3QgVj10aGlzLmZvbGRlck1hcC5nZXQoVCk7aWYoIVYpdGhyb3cgbmV3IEVycm9yKGBUaGUgZm9sZGVyICcke1R9JyB3YXMgbm90IGZv'@; put 'dW5kIG9uICcke3RoaXMuc2VydmVyVXJsfScuYCk7Y29uc3QgVT1WPy5maW5kKEFlPT5BZS5uYW1lPT09eCk7bGV0IEU9W107aWYoX2UmJk9iamVjdC5rZXlzKF9lKS5sZW5ndGgmJihFPXlpZWxkIHRoaXMudXBsb2FkVGFibGVzKF9lLGcpKSwhVSl0aHJvdyBuZXcgRXJyb3IoIkpvYiB3YXMg'@; put 'bm90IGZvdW5kLiIpO2NvbnN0IG09bnVsbD09PShTZT1VPy5saW5rcy5maW5kKEFlPT4iZ2V0UmVzb3VyY2UiPT09QWUucmVsKSl8fHZvaWQgMD09PVNlP3ZvaWQgMDpTZS5ocmVmLHtyZXN1bHQ6QX09eWllbGQgdGhpcy5yZXF1ZXN0Q2xpZW50LmdldChgJHt0aGlzLnNlcnZlclVybH0ke219'@; put 'YCxnKSxhZT17X2NvbnRleHROYW1lOnNlLF9wcm9ncmFtOmAke1R9LyR7eH1gLF93ZWJpbl9maWxlX2NvdW50OkUubGVuZ3RoLF9PTUlUSlNPTkxJU1RJTkc6ITAsX09NSVRKU09OTE9HOiEwLF9vbWl0U2Vzc2lvblJlc3VsdHM6ITEsX09NSVRURVhUTElTVElORzohMCxfT01JVFRFWFRMT0c6'@; put 'ITB9O2dlJiYoYWUuX09NSVRURVhUTE9HPSJmYWxzZSIsYWUuX29taXRTZXNzaW9uUmVzdWx0cz0iZmFsc2UiLGFlLl9ERUJVRz0xMzEpLEUuZm9yRWFjaCgoQWUsRmUpPT57YWVbYF93ZWJpbl9maWxldXJpJHtGZSsxfWBdPWAvZmlsZXMvZmlsZXMvJHtBZS5maWxlLmlkfWAsYWVbYF93ZWJp'@; put 'bl9uYW1lJHtGZSsxfWBdPUFlLnRhYmxlTmFtZX0pO2NvbnN0IG5lPXtuYW1lOmBleGVjLSR7eH1gLGRlc2NyaXB0aW9uOiJQb3dlcmVkIGJ5IFNBU2pzIixqb2JEZWZpbml0aW9uOkEsYXJndW1lbnRzOmFlfSx7cmVzdWx0OmxlfT15aWVsZCB0aGlzLnJlcXVlc3RDbGllbnQucG9zdChgJHt0'@; put 'aGlzLnNlcnZlclVybH0vam9iRXhlY3V0aW9uL2pvYnM/X2FjdGlvbj13YWl0YCxuZSxnKSx3ZT15aWVsZCB0aGlzLnBvbGxKb2JTdGF0ZShsZSxUZSkuY2F0Y2goQWU9Pnt0aHJvdygwLEwucHJlZml4TWVzc2FnZSkoQWUsIkVycm9yIHdoaWxlIHBvbGxpbmcgam9iIHN0YXR1cy4gIil9KSx7'@; put 'cmVzdWx0OlplfT15aWVsZCB0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KGAke3RoaXMuc2VydmVyVXJsfS9qb2JFeGVjdXRpb24vam9icy8ke2xlLmlkfWAsZyk7bGV0IFFlLGF0O2NvbnN0IHhlPVplLnJlc3VsdHNbIl93ZWJvdXQuanNvbiJdLHZlPVplLmxpbmtzLmZpbmQoQWU9PiJsb2ciPT09'@; put 'QWUucmVsKTtpZih4ZSYmKFFlPXlpZWxkIHRoaXMucmVxdWVzdENsaWVudC5nZXQoYCR7dGhpcy5zZXJ2ZXJVcmx9JHt4ZX0vY29udGVudGAsZywidGV4dC9wbGFpbiIpKSxnZSYmdmUmJihhdD15aWVsZCB0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KGAke3RoaXMuc2VydmVyVXJsfSR7dmUuaHJl'@; put 'Zn0vY29udGVudGAsZykudGhlbihBZT0+QWUucmVzdWx0Lml0ZW1zLm1hcChGZT0+RmUubGluZSkuam9pbigiXG4iKSkpLCJmYWlsZWQiPT09d2UpdGhyb3cgbmV3IEguSm9iRXhlY3V0aW9uRXJyb3IobnVsbD09PSh6ZT1aZS5lcnJvcil8fHZvaWQgMD09PXplP3ZvaWQgMDp6ZS5lcnJvckNv'@; put 'ZGUsbnVsbD09PSh6PVplLmVycm9yKXx8dm9pZCAwPT09ej92b2lkIDA6ei5tZXNzYWdlLGF0KTtjb25zdCBxZT17cmVzdWx0OlFlPy5yZXN1bHQsbG9nOmF0fSx7ZXJyb3I6amV9PVplO3JldHVybiBqZSYmKHFlLmVycm9yPWplKSxxZX0pfXBvcHVsYXRlRm9sZGVyTWFwKGllLHNlKXtyZXR1'@; put 'cm4gcCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7Y29uc3QgZ2U9KDAsdy5pc1JlbGF0aXZlUGF0aCkoaWUpP2Ake3RoaXMucm9vdEZvbGRlck5hbWV9LyR7aWV9YDppZTtpZih0aGlzLmZvbGRlck1hcC5nZXQoZ2UpKXJldHVybjtjb25zdCBfZT0iL2ZvbGRlcnMvZm9sZGVycy9A'@; put 'aXRlbT9wYXRoPSIrZ2Use3Jlc3VsdDpUZX09eWllbGQgdGhpcy5yZXF1ZXN0Q2xpZW50LmdldChgJHtfZX1gLHNlKS5jYXRjaCh6PT57dGhyb3coMCxMLnByZWZpeE1lc3NhZ2UpKHosIkVycm9yIHdoaWxlIGdldHRpbmcgZm9sZGVyLiAiKX0pO2lmKCFUZSl0aHJvdyBuZXcgRXJyb3IoYFRo'@; put 'ZSBwYXRoICR7Z2V9IGRvZXMgbm90IGV4aXN0IG9uICR7dGhpcy5zZXJ2ZXJVcmx9YCk7Y29uc3R7cmVzdWx0OlNlfT15aWVsZCB0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KGAvZm9sZGVycy9mb2xkZXJzLyR7VGUuaWR9L21lbWJlcnM/bGltaXQ9JHtUZS5tZW1iZXJDb3VudDw1MDA/NTAwOlRl'@; put 'Lm1lbWJlckNvdW50fWAsc2UpLmNhdGNoKHo9Pnt0aHJvdygwLEwucHJlZml4TWVzc2FnZSkoeiwiRXJyb3Igd2hpbGUgZ2V0dGluZyBtZW1iZXJzLiAiKX0pO3RoaXMuZm9sZGVyTWFwLnNldChnZSxTZS5pdGVtcyl9KX1wb2xsSm9iU3RhdGUoaWUsc2UsZ2Upe3JldHVybiBwKHRoaXMsdm9p'@; put 'ZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4oMCxZLnBvbGxKb2JTdGF0ZSkodGhpcy5yZXF1ZXN0Q2xpZW50LGllLHRoaXMuZGVidWcsc2UsZ2UpfSl9dXBsb2FkVGFibGVzKGllLHNlKXtyZXR1cm4gcCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuKDAsVy51cGxv'@; put 'YWRUYWJsZXMpKHRoaXMucmVxdWVzdENsaWVudCxpZSxzZSl9KX1nZXRGb2xkZXJEZXRhaWxzKGllLHNlKXtyZXR1cm4gcCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7Y29uc3QgZ2U9KDAsdy5pc1VyaSkoaWUpP2llOmAvZm9sZGVycy9mb2xkZXJzL0BpdGVtP3BhdGg9JHtpZX1g'@; put 'LHtyZXN1bHQ6X2V9PXlpZWxkIHRoaXMucmVxdWVzdENsaWVudC5nZXQoYCR7dGhpcy5zZXJ2ZXJVcmx9JHtnZX1gLHNlKS5jYXRjaChUZT0+e2lmKFRlIGluc3RhbmNlb2YgSC5DZXJ0aWZpY2F0ZUVycm9yKXRocm93IFRlO3JldHVybntyZXN1bHQ6bnVsbH19KTtpZihfZSlyZXR1cm4gX2V9'@; put 'KX1nZXRGb2xkZXJVcmkoaWUsc2Upe3JldHVybiBwKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdCBnZT15aWVsZCB0aGlzLmdldEZvbGRlckRldGFpbHMoaWUsc2UpO2lmKGdlKXJldHVybmAvZm9sZGVycy9mb2xkZXJzLyR7Z2UuaWR9YH0pfWdldEZpbGVVcmkoaWUsc2Us'@; put 'Z2Upe3ZhciBfZTtyZXR1cm4gcCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7Y29uc3QgVGU9eWllbGQgdGhpcy5saXN0Rm9sZGVyKGllLGdlLDFlMyx7cmV0dXJuRGV0YWlsczohMH0pLmNhdGNoKHplPT57dGhyb3coMCxMLnByZWZpeE1lc3NhZ2UpKHplLGBFcnJvciB3aGlsZSBs'@; put 'aXN0aW5nIGZvbGRlcjogJHtpZX0uIGApfSk7aWYoIVRlfHwhVGUubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgTm8gbWVtYmVycyBmb3VuZCBpbiBmb2xkZXI6ICR7aWV9YCk7Y29uc3QgU2U9bnVsbD09PShfZT1UZS5maW5kKHplPT56ZS5uYW1lPT09c2UpKXx8dm9pZCAwPT09X2U/dm9pZCAw'@; put 'Ol9lLnVyaTtpZighU2UpdGhyb3cgbmV3IEVycm9yKGBGaWxlICR7c2V9IG5vdCBmb3VuZCBpbiBmb2xkZXI6ICR7aWV9YCk7cmV0dXJuIFNlfSl9Z2V0UmVjeWNsZUJpblVyaShpZSl7cmV0dXJuIHAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0e3Jlc3VsdDpnZX09eWll'@; put 'bGQgdGhpcy5yZXF1ZXN0Q2xpZW50LmdldChgJHt0aGlzLnNlcnZlclVybH0vZm9sZGVycy9mb2xkZXJzL0BteVJlY3ljbGVCaW5gLGllKS5jYXRjaChfZT0+e2lmKF9lIGluc3RhbmNlb2YgSC5DZXJ0aWZpY2F0ZUVycm9yKXRocm93IF9lO3JldHVybntyZXN1bHQ6bnVsbH19KTtpZihnZSly'@; put 'ZXR1cm5gL2ZvbGRlcnMvZm9sZGVycy8ke2dlLmlkfWB9KX1nZXRDb21wdXRlQ29udGV4dEJ5TmFtZShpZSxzZSl7cmV0dXJuIHAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiB5aWVsZCB0aGlzLmNvbnRleHRNYW5hZ2VyLmdldENvbXB1dGVDb250ZXh0QnlOYW1lKGll'@; put 'LHNlKX0pfWdldENvbXB1dGVDb250ZXh0QnlJZChpZSxzZSl7cmV0dXJuIHAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiB5aWVsZCB0aGlzLmNvbnRleHRNYW5hZ2VyLmdldENvbXB1dGVDb250ZXh0QnlJZChpZSxzZSl9KX1saXN0Rm9sZGVyKGllLHNlLGdlPTIwLF9l'@; put 'KXtyZXR1cm4gcCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7Y29uc3QgVGU9KDAsdy5pc1VyaSkoaWUpP2llOnlpZWxkIHRoaXMuZ2V0Rm9sZGVyVXJpKGllLHNlKSx7cmVzdWx0OlNlfT15aWVsZCB0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KGAke3RoaXMuc2VydmVyVXJsfSR7VGV9'@; put 'L21lbWJlcnM/bGltaXQ9JHtnZX1gLHNlKTtsZXQgemU9W107cmV0dXJuIFNlJiZTZS5pdGVtcyYmKHplPV9lPy5yZXR1cm5EZXRhaWxzP1NlLml0ZW1zOlNlLml0ZW1zLm1hcCh6PT56Lm5hbWUpKSx6ZX0pfW1vdmVGb2xkZXIoaWUsc2UsZ2UsX2Upe3JldHVybiBwKHRoaXMsdm9pZCAwLHZv'@; put 'aWQgMCxmdW5jdGlvbiooKXtjb25zdCBUZT1pZS5zcGxpdCgiLyIpLnBvcCgpO2lmKHlpZWxkIHRoaXMuZ2V0Rm9sZGVyRGV0YWlscyhzZSxfZSkpZ2U9VGU7ZWxzZXtsZXQgeD1zZS5zcGxpdCgiLyIpO3guc3BsaWNlKHgubGVuZ3RoLTEsMSksc2U9eC5qb2luKCIvIil9Y29uc3QgemU9eWll'@; put 'bGQgdGhpcy5nZXRGb2xkZXJVcmkoaWUsX2UpLHo9eWllbGQgdGhpcy5nZXRGb2xkZXJVcmkoc2UsX2UpO2lmKCF6ZSlyZXR1cm47Y29uc3QgZz16ZT8uc3BsaXQoIi8iKS5wb3AoKSx7cmVzdWx0Onl9PXlpZWxkIHRoaXMucmVxdWVzdENsaWVudC5wYXRjaChgJHt0aGlzLnNlcnZlclVybH0k'@; put 'e3plfWAse2lkOmcsbmFtZTpnZSxwYXJlbnRGb2xkZXJVcmk6en0sX2UpLmNhdGNoKHg9Pnt0aHJvdyB4LmNvZGUmJiJFTk9URk9VTkQiPT09eC5jb2RlP3tib2R5OnttZXNzYWdlOmBGb2xkZXIgJyR7aWUuc3BsaXQoIi8iKS5wb3AoKX0nIHdhcyBub3QgZm91bmQuYH19Onh9KTtyZXR1cm4g'@; put 'eXx8dm9pZCAwfSl9ZGVsZXRlRm9sZGVyKGllLHNlKXtyZXR1cm4gcCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7Y29uc3QgZ2U9eWllbGQgdGhpcy5nZXRSZWN5Y2xlQmluVXJpKHNlKSxfZT1pZS5zcGxpdCgiLyIpLnBvcCgpfHwiIixUZT1uZXcgRGF0ZSx6ZT1fZSsiICIrVGUu'@; put 'dG9Mb2NhbGVEYXRlU3RyaW5nKCkrIiAiK1RlLnRvTG9jYWxlVGltZVN0cmluZygpO3JldHVybiB5aWVsZCB0aGlzLm1vdmVGb2xkZXIoaWUsZ2UsemUsc2UpfSl9fX0sNTk1NjpmdW5jdGlvbihjZSxKLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgRD10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rp'@; put 'b24oVyxaLFgsUSl7cmV0dXJuIG5ldyhYfHwoWD1Qcm9taXNlKSkoZnVuY3Rpb24odGUsaWUpe2Z1bmN0aW9uIHNlKFRlKXt0cnl7X2UoUS5uZXh0KFRlKSl9Y2F0Y2goU2Upe2llKFNlKX19ZnVuY3Rpb24gZ2UoVGUpe3RyeXtfZShRLnRocm93KFRlKSl9Y2F0Y2goU2Upe2llKFNlKX19ZnVu'@; put 'Y3Rpb24gX2UoVGUpe1RlLmRvbmU/dGUoVGUudmFsdWUpOmZ1bmN0aW9uIHEodGUpe3JldHVybiB0ZSBpbnN0YW5jZW9mIFg/dGU6bmV3IFgoZnVuY3Rpb24oaWUpe2llKHRlKX0pfShUZS52YWx1ZSkudGhlbihzZSxnZSl9X2UoKFE9US5hcHBseShXLFp8fFtdKSkubmV4dCgpKX0pfTtPYmpl'@; put 'Y3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7Y29uc3QgXz1iKDU5MjgpLHA9YigxMjMwKSxOPWIoOTgyMSksdz1iKDgzMDYpLEY9YigzNDY3KSxIPWIoMTUyNyksUj1iKDM5MDApLGo9Yig0NTg4KSxQPWIoMzYwMiksTD1iKDgyMTcpLFk9e3NlcnZlclVybDoi'@; put 'IixwYXRoU0FTSlM6Ii9TQVNqc0FwaS9zdHAvZXhlY3V0ZSIscGF0aFNBUzk6Ii9TQVNTdG9yZWRQcm9jZXNzL2RvIixwYXRoU0FTVml5YToiL1NBU0pvYkV4ZWN1dGlvbiIsYXBwTG9jOiIvUHVibGljL3NlZWRhcHAiLHNlcnZlclR5cGU6Ui5TZXJ2ZXJUeXBlLlNhc1ZpeWEsZGVidWc6ITEs'@; put 'Y29udGV4dE5hbWU6IlNBUyBKb2IgRXhlY3V0aW9uIGNvbXB1dGUgY29udGV4dCIsdXNlQ29tcHV0ZUFwaTpudWxsLGxvZ2luTWVjaGFuaXNtOnAuTG9naW5NZWNoYW5pc20uRGVmYXVsdH07Si5kZWZhdWx0PWNsYXNzIEJ7Y29uc3RydWN0b3IoWil7dGhpcy5zYXNqc0NvbmZpZz1uZXcgcC5T'@; put 'QVNqc0NvbmZpZyx0aGlzLmpvYnNQYXRoPSIiLHRoaXMuc2FzVml5YUFwaUNsaWVudD1udWxsLHRoaXMuc2FzOUFwaUNsaWVudD1udWxsLHRoaXMuc2FzSlNBcGlDbGllbnQ9bnVsbCx0aGlzLmZpbGVVcGxvYWRlcj1udWxsLHRoaXMuYXV0aE1hbmFnZXI9bnVsbCx0aGlzLnJlcXVlc3RDbGll'@; put 'bnQ9bnVsbCx0aGlzLndlYkpvYkV4ZWN1dG9yPW51bGwsdGhpcy5zYXNqc0pvYkV4ZWN1dG9yPW51bGwsdGhpcy5jb21wdXRlSm9iRXhlY3V0b3I9bnVsbCx0aGlzLmplc0pvYkV4ZWN1dG9yPW51bGwsdGhpcy5zYXM5Sm9iRXhlY3V0b3I9bnVsbCx0aGlzLnJlc2VuZFdhaXRpbmdSZXF1ZXN0'@; put 'cz0oKT0+RCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dmFyIFgsUSxxLHRlLGllO3lpZWxkIG51bGw9PT0oWD10aGlzLndlYkpvYkV4ZWN1dG9yKXx8dm9pZCAwPT09WD92b2lkIDA6WC5yZXNlbmRXYWl0aW5nUmVxdWVzdHMoKSx5aWVsZCBudWxsPT09KFE9dGhpcy5jb21wdXRl'@; put 'Sm9iRXhlY3V0b3IpfHx2b2lkIDA9PT1RP3ZvaWQgMDpRLnJlc2VuZFdhaXRpbmdSZXF1ZXN0cygpLHlpZWxkIG51bGw9PT0ocT10aGlzLmplc0pvYkV4ZWN1dG9yKXx8dm9pZCAwPT09cT92b2lkIDA6cS5yZXNlbmRXYWl0aW5nUmVxdWVzdHMoKSx5aWVsZCBudWxsPT09KHRlPXRoaXMuZmls'@; put 'ZVVwbG9hZGVyKXx8dm9pZCAwPT09dGU/dm9pZCAwOnRlLnJlc2VuZFdhaXRpbmdSZXF1ZXN0cygpLHlpZWxkIG51bGw9PT0oaWU9dGhpcy5zYXNqc0pvYkV4ZWN1dG9yKXx8dm9pZCAwPT09aWU/dm9pZCAwOmllLnJlc2VuZFdhaXRpbmdSZXF1ZXN0cygpfSksdGhpcy5zZXRWZXJib3NlTW9k'@; put 'ZT1YPT57dmFyIFE7bnVsbD09PShRPXRoaXMucmVxdWVzdENsaWVudCl8fHZvaWQgMD09PVF8fFEuc2V0VmVyYm9zZU1vZGUoWCl9LHRoaXMuc2FzanNDb25maWc9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LFkpLFopLHRoaXMuc2V0dXBDb25maWd1cmF0aW9uKCl9Z2V0Q3NyZlRv'@; put 'a2VuKFo9ImdlbmVyYWwiKXt2YXIgWDtyZXR1cm4gbnVsbD09PShYPXRoaXMucmVxdWVzdENsaWVudCl8fHZvaWQgMD09PVg/dm9pZCAwOlguZ2V0Q3NyZlRva2VuKFopfWV4ZWN1dGVTY3JpcHQoe2xpbmVzT2ZDb2RlOlosZmlsZU5hbWU6WCxjb250ZXh0TmFtZTpRLHJ1blRpbWU6cSxhdXRo'@; put 'Q29uZmlnOnRlLGF1dGhDb25maWdTYXM5OmllLGRlYnVnOnNlfSl7dmFyIGdlLF9lO3JldHVybiBEKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtpZih0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJleGVjdXRlU2NyaXB0IixbUi5TZXJ2ZXJUeXBlLlNhczksUi5TZXJ2ZXJUeXBlLlNh'@; put 'c2pzLFIuU2VydmVyVHlwZS5TYXNWaXlhXSksdGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlPT09Ui5TZXJ2ZXJUeXBlLlNhczkpe2lmKCFpZSl0aHJvdyBuZXcgRXJyb3IoIkF1dGggY29uZmlnIGZvciBzYXM5IGlzIG5vdCBwcm92aWRlZCIpO3JldHVybiB5aWVsZCBudWxsPT09KGdlPXRo'@; put 'aXMuc2FzOUFwaUNsaWVudCl8fHZvaWQgMD09PWdlP3ZvaWQgMDpnZS5leGVjdXRlU2NyaXB0KFosaWUudXNlck5hbWUsaWUucGFzc3dvcmQpfWlmKHRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZT09PVIuU2VydmVyVHlwZS5TYXNqcylyZXR1cm4geWllbGQgbnVsbD09PShfZT10aGlzLnNh'@; put 'c0pTQXBpQ2xpZW50KXx8dm9pZCAwPT09X2U/dm9pZCAwOl9lLmV4ZWN1dGVTY3JpcHQoWi5qb2luKCJcbiIpLHEsdGUpO2lmKHRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZT09PVIuU2VydmVyVHlwZS5TYXNWaXlhKXtpZighKFE9UXx8dGhpcy5zYXNqc0NvbmZpZy5jb250ZXh0TmFtZSkp'@; put 'dGhyb3cgbmV3IEVycm9yKCJDb250ZXh0IG5hbWUgaXMgdW5kZWZpbmVkLiBQbGVhc2Ugc2V0IGEgYGNvbnRleHROYW1lYCBpbiB5b3VyIFNBU2pzIG9yIG92ZXJyaWRlIGNvbmZpZy4iKTtpZighWCl0aHJvdyBuZXcgRXJyb3IoIkZpbGUgbmFtZSBpcyByZXF1aXJlZCBpbiBjYXNlIG9mIFNB'@; put 'UyBWSVlBLiBQbGVhc2UgcHJvdmlkZSBhIGBmaWxlTmFtZWAuIik7cmV0dXJuIHlpZWxkIHRoaXMuc2FzVml5YUFwaUNsaWVudC5leGVjdXRlU2NyaXB0KFgsWixRLHRlLG51bGwsc2V8fHRoaXMuc2FzanNDb25maWcuZGVidWcpfX0pfWV4ZWN1dGVKb2IoWixYLFEpe3ZhciBxO3JldHVybiBE'@; put 'KHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiZXhlY3V0ZVNjcmlwdCIsW1IuU2VydmVyVHlwZS5TYXNqc10pLHlpZWxkIG51bGw9PT0ocT10aGlzLnNhc0pTQXBpQ2xpZW50KXx8dm9pZCAwPT09cT92b2lkIDA6cS5leGVjdXRl'@; put 'Sm9iKFosWCxRKX0pfWdldENvbXB1dGVDb250ZXh0cyhaKXtyZXR1cm4gRCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImdldENvbXB1dGVDb250ZXh0cyIsW1IuU2VydmVyVHlwZS5TYXNWaXlhXSkseWllbGQgdGhpcy5zYXNW'@; put 'aXlhQXBpQ2xpZW50LmdldENvbXB1dGVDb250ZXh0cyhaKX0pfWdldExhdW5jaGVyQ29udGV4dHMoWil7cmV0dXJuIEQodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJnZXRMYXVuY2hlckNvbnRleHRzIixbUi5TZXJ2ZXJUeXBl'@; put 'LlNhc1ZpeWFdKSx5aWVsZCB0aGlzLnNhc1ZpeWFBcGlDbGllbnQuZ2V0TGF1bmNoZXJDb250ZXh0cyhaKX0pfWdldERlZmF1bHRDb21wdXRlQ29udGV4dHMoKXtyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiZ2V0RGVmYXVsdENvbXB1dGVDb250ZXh0cyIsW1IuU2VydmVyVHlwZS5T'@; put 'YXNWaXlhXSksdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmdldERlZmF1bHRDb21wdXRlQ29udGV4dHMoKX1nZXRFeGVjdXRhYmxlQ29udGV4dHMoWil7cmV0dXJuIEQodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJnZXRFeGVjdXRh'@; put 'YmxlQ29udGV4dHMiLFtSLlNlcnZlclR5cGUuU2FzVml5YV0pLHlpZWxkIHRoaXMuc2FzVml5YUFwaUNsaWVudC5nZXRFeGVjdXRhYmxlQ29udGV4dHMoWil9KX1jcmVhdGVDb21wdXRlQ29udGV4dChaLFgsUSxxLHRlLGllKXtyZXR1cm4gRCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24q'@; put 'KCl7cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImNyZWF0ZUNvbXB1dGVDb250ZXh0IixbUi5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSx5aWVsZCB0aGlzLnNhc1ZpeWFBcGlDbGllbnQuY3JlYXRlQ29tcHV0ZUNvbnRleHQoWixYLFEscSx0ZSxpZSl9KX1jcmVhdGVMYXVuY2hlckNvbnRl'@; put 'eHQoWixYLFEscSl7cmV0dXJuIEQodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJjcmVhdGVMYXVuY2hlckNvbnRleHQiLFtSLlNlcnZlclR5cGUuU2FzVml5YV0pLHlpZWxkIHRoaXMuc2FzVml5YUFwaUNsaWVudC5jcmVhdGVM'@; put 'YXVuY2hlckNvbnRleHQoWixYLFEscSl9KX1lZGl0Q29tcHV0ZUNvbnRleHQoWixYLFEpe3JldHVybiBEKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiZWRpdENvbXB1dGVDb250ZXh0IixbUi5TZXJ2ZXJUeXBlLlNhc1ZpeWFd'@; put 'KSx5aWVsZCB0aGlzLnNhc1ZpeWFBcGlDbGllbnQuZWRpdENvbXB1dGVDb250ZXh0KFosWCxRKX0pfWRlbGV0ZUNvbXB1dGVDb250ZXh0KFosWCl7cmV0dXJuIEQodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJkZWxldGVDb21w'@; put 'dXRlQ29udGV4dCIsW1IuU2VydmVyVHlwZS5TYXNWaXlhXSkseWllbGQgdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmRlbGV0ZUNvbXB1dGVDb250ZXh0KFosWCl9KX1nZXRDb21wdXRlQ29udGV4dEJ5TmFtZShaLFgpe3JldHVybiBEKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1'@; put 'cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiZ2V0Q29tcHV0ZUNvbnRleHRCeU5hbWUiLFtSLlNlcnZlclR5cGUuU2FzVml5YV0pLHlpZWxkIHRoaXMuc2FzVml5YUFwaUNsaWVudC5nZXRDb21wdXRlQ29udGV4dEJ5TmFtZShaLFgpfSl9Z2V0Q29tcHV0ZUNvbnRleHRCeUlkKFosWCl7cmV0'@; put 'dXJuIEQodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJnZXRDb21wdXRlQ29udGV4dEJ5SWQiLFtSLlNlcnZlclR5cGUuU2FzVml5YV0pLHlpZWxkIHRoaXMuc2FzVml5YUFwaUNsaWVudC5nZXRDb21wdXRlQ29udGV4dEJ5SWQo'@; put 'WixYKX0pfWNyZWF0ZVNlc3Npb24oWixYKXtyZXR1cm4gRCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImNyZWF0ZVNlc3Npb24iLFtSLlNlcnZlclR5cGUuU2FzVml5YV0pLHlpZWxkIHRoaXMuc2FzVml5YUFwaUNsaWVudC5j'@; put 'cmVhdGVTZXNzaW9uKFosWCl9KX1jcmVhdGVGb2xkZXIoWixYLFEscSx0ZSxpZSl7cmV0dXJuIEQodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiB0ZT95aWVsZCB0ZS5jcmVhdGVGb2xkZXIoWixYLFEscSxpZSk6eWllbGQgdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmNyZWF0'@; put 'ZUZvbGRlcihaLFgsUSxxLGllKX0pfWNyZWF0ZUZpbGUoWixYLFEscSx0ZSxpZSl7cmV0dXJuIEQodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiBpZT95aWVsZCBpZS5jcmVhdGVGaWxlKFosWCxRLHEsdGUpOnlpZWxkIHRoaXMuc2FzVml5YUFwaUNsaWVudC5jcmVhdGVG'@; put 'aWxlKFosWCxRLHEsdGUpfSl9Z2V0RmlsZUNvbnRlbnQoWixYLFEpe3JldHVybiBEKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiZ2V0RmlsZUNvbnRlbnQiLFtSLlNlcnZlclR5cGUuU2FzVml5YV0pLHlpZWxkIHRoaXMuc2Fz'@; put 'Vml5YUFwaUNsaWVudC5nZXRGaWxlQ29udGVudChaLFgsUSl9KX11cGRhdGVGaWxlQ29udGVudChaLFgsUSxxKXtyZXR1cm4gRCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoInVwZGF0ZUZpbGVDb250ZW50IixbUi5TZXJ2ZXJU'@; put 'eXBlLlNhc1ZpeWFdKSx5aWVsZCB0aGlzLnNhc1ZpeWFBcGlDbGllbnQudXBkYXRlRmlsZUNvbnRlbnQoWixYLFEscSl9KX1nZXRGb2xkZXIoWixYKXtyZXR1cm4gRCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImdldEZvbGRl'@; put 'ciIsW1IuU2VydmVyVHlwZS5TYXNWaXlhXSkseWllbGQgdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmdldEZvbGRlcihaLFgpfSl9ZGVsZXRlRm9sZGVyKFosWCl7dmFyIFE7cmV0dXJuIEQodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVk'@; put 'KCJkZWxldGVGb2xkZXIiLFtSLlNlcnZlclR5cGUuU2FzVml5YV0pLHlpZWxkIG51bGw9PT0oUT10aGlzLnNhc1ZpeWFBcGlDbGllbnQpfHx2b2lkIDA9PT1RP3ZvaWQgMDpRLmRlbGV0ZUZvbGRlcihaLFgpfSl9bGlzdEZvbGRlcihaLFgsUSxxPSExKXt2YXIgdGU7cmV0dXJuIEQodGhpcyx2'@; put 'b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJsaXN0Rm9sZGVyIixbUi5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSx5aWVsZCBudWxsPT09KHRlPXRoaXMuc2FzVml5YUFwaUNsaWVudCl8fHZvaWQgMD09PXRlP3ZvaWQgMDp0ZS5saXN0Rm9sZGVy'@; put 'KFosWCxRLHtyZXR1cm5EZXRhaWxzOnF9KX0pfW1vdmVGb2xkZXIoWixYLFEscSl7dmFyIHRlO3JldHVybiBEKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgibW92ZUZvbGRlciIsW1IuU2VydmVyVHlwZS5TYXNWaXlhXSkseWll'@; put 'bGQgbnVsbD09PSh0ZT10aGlzLnNhc1ZpeWFBcGlDbGllbnQpfHx2b2lkIDA9PT10ZT92b2lkIDA6dGUubW92ZUZvbGRlcihaLFgsUSxxKX0pfWNyZWF0ZUpvYkRlZmluaXRpb24oWixYLFEscSx0ZSxpZSl7cmV0dXJuIEQodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiB0'@; put 'aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJjcmVhdGVKb2JEZWZpbml0aW9uIixbUi5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSxpZT95aWVsZCBpZS5jcmVhdGVKb2JEZWZpbml0aW9uKFosWCxRLHEsdGUpOnlpZWxkIHRoaXMuc2FzVml5YUFwaUNsaWVudC5jcmVhdGVKb2JEZWZpbml0aW9uKFosWCxR'@; put 'LHEsdGUpfSl9Z2V0QXV0aENvZGUoWil7cmV0dXJuIEQodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJnZXRBdXRoQ29kZSIsW1IuU2VydmVyVHlwZS5TYXNWaXlhXSkseWllbGQgdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmdldEF1'@; put 'dGhDb2RlKFopfSl9Z2V0QWNjZXNzVG9rZW4oWixYLFEpe3JldHVybiBEKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiZ2V0QWNjZXNzVG9rZW4iLFtSLlNlcnZlclR5cGUuU2FzVml5YSxSLlNlcnZlclR5cGUuU2FzanNdKSx0'@; put 'aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGU9PT1SLlNlcnZlclR5cGUuU2FzanM/eWllbGQgdGhpcy5zYXNKU0FwaUNsaWVudC5nZXRBY2Nlc3NUb2tlbihaLFEpOnlpZWxkIHRoaXMuc2FzVml5YUFwaUNsaWVudC5nZXRBY2Nlc3NUb2tlbihaLFgsUSl9KX1yZWZyZXNoVG9rZW5zKFosWCxR'@; put 'KXtyZXR1cm4gRCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoInJlZnJlc2hUb2tlbnMiLFtSLlNlcnZlclR5cGUuU2FzVml5YSxSLlNlcnZlclR5cGUuU2FzanNdKSx0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGU9PT1SLlNl'@; put 'cnZlclR5cGUuU2FzanM/eWllbGQgdGhpcy5zYXNKU0FwaUNsaWVudC5yZWZyZXNoVG9rZW5zKFEpOnlpZWxkIHRoaXMuc2FzVml5YUFwaUNsaWVudC5yZWZyZXNoVG9rZW5zKFosWCxRKX0pfWRlbGV0ZUNsaWVudChaLFgpe3JldHVybiBEKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbioo'@; put 'KXtyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiZGVsZXRlQ2xpZW50IixbUi5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSx5aWVsZCB0aGlzLnNhc1ZpeWFBcGlDbGllbnQuZGVsZXRlQ2xpZW50KFosWCl9KX1nZXRTYXNqc0NvbmZpZygpe3JldHVybiB0aGlzLnNhc2pzQ29uZmlnfWdldFVz'@; put 'ZXJOYW1lKCl7cmV0dXJuIHRoaXMuYXV0aE1hbmFnZXIudXNlck5hbWV9c2V0U0FTanNDb25maWcoWil7cmV0dXJuIEQodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMuc2FzanNDb25maWc9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHRoaXMuc2FzanNDb25maWcp'@; put 'LFopLHRoaXMuc2V0dXBDb25maWd1cmF0aW9uKCl9KX1zZXREZWJ1Z1N0YXRlKFope3RoaXMuc2FzanNDb25maWcuZGVidWc9Wix0aGlzLnNhc1ZpeWFBcGlDbGllbnQmJih0aGlzLnNhc1ZpeWFBcGlDbGllbnQuZGVidWc9Wil9Y2hlY2tTZXNzaW9uKCl7cmV0dXJuIEQodGhpcyx2b2lkIDAs'@; put 'dm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiB0aGlzLmF1dGhNYW5hZ2VyLmNoZWNrU2Vzc2lvbigpfSl9bG9nSW4oWixYLFEscT17fSl7cmV0dXJuIEQodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2lmKHRoaXMuc2FzanNDb25maWcubG9naW5NZWNoYW5pc209PT1wLkxvZ2luTWVj'@; put 'aGFuaXNtLkRlZmF1bHQpe2lmKCFafHwhWCl0aHJvdyBuZXcgRXJyb3IoIkEgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGFyZSByZXF1aXJlZCB3aGVuIHVzaW5nIHRoZSBkZWZhdWx0IGxvZ2luIG1lY2hhbmlzbS4iKTtyZXR1cm4gdGhpcy5hdXRoTWFuYWdlci5sb2dJbihaLFgpfWlmKHR5cGVv'@; put 'ZiB3aW5kb3c+InUiKXRocm93IG5ldyBFcnJvcigiVGhlIHJlZGlyZWN0ZWQgbG9naW4gbWVjaGFuaXNtIGlzIG9ubHkgYXZhaWxhYmxlIGZvciB1c2UgaW4gdGhlIGJyb3dzZXIuIik7cmV0dXJuIHRoaXMuYXV0aE1hbmFnZXIucmVkaXJlY3RlZExvZ0luKHEpfSl9bG9nT3V0KCl7cmV0dXJu'@; put 'IHRoaXMuYXV0aE1hbmFnZXIubG9nT3V0KCl9dXBsb2FkRmlsZShaLFgsUSxxPXt9LHRlKXtyZXR1cm4gRCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy5zYXNqc0NvbmZpZykscSk7Y29uc3QgaWU9e2ZpbGVzOlgs'@; put 'cGFyYW1zOlF9O3JldHVybiB5aWVsZCB0aGlzLmZpbGVVcGxvYWRlci5leGVjdXRlKFosaWUscSx0ZSl9KX1yZXF1ZXN0KFosWCxRPXt9LHEsdGUsaWU9W10pe3JldHVybiBEKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtRPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0'@; put 'aGlzLnNhc2pzQ29uZmlnKSxRKTtjb25zdCBzZT0oMCxfLnZhbGlkYXRlSW5wdXQpKFgpO3JldHVybiBzZS5zdGF0dXM/US5zZXJ2ZXJUeXBlPT09Ui5TZXJ2ZXJUeXBlLlNhc2pzP3lpZWxkIHRoaXMuc2FzanNKb2JFeGVjdXRvci5leGVjdXRlKFosWCxRLHEsdGUsaWUpOlEuc2VydmVyVHlw'@; put 'ZT09PVIuU2VydmVyVHlwZS5TYXNWaXlhJiZudWxsIT1RLnVzZUNvbXB1dGVBcGk/US51c2VDb21wdXRlQXBpP3lpZWxkIHRoaXMuY29tcHV0ZUpvYkV4ZWN1dG9yLmV4ZWN1dGUoWixYLFEscSx0ZSk6KFEuY29udGV4dE5hbWV8fChRPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxR'@; put 'KSx7Y29udGV4dE5hbWU6IlNBUyBKb2IgRXhlY3V0aW9uIGNvbXB1dGUgY29udGV4dCJ9KSkseWllbGQgdGhpcy5qZXNKb2JFeGVjdXRvci5leGVjdXRlKFosWCxRLHEsdGUsaWUpKTpRLnNlcnZlclR5cGU9PT1SLlNlcnZlclR5cGUuU2FzOSYmUS51c2VybmFtZSYmUS5wYXNzd29yZD95aWVs'@; put 'ZCB0aGlzLnNhczlKb2JFeGVjdXRvci5leGVjdXRlKFosWCxRKTp5aWVsZCB0aGlzLndlYkpvYkV4ZWN1dG9yLmV4ZWN1dGUoWixYLFEscSx0ZSxpZSk6UHJvbWlzZS5yZWplY3QobmV3IHAuRXJyb3JSZXNwb25zZShzZS5tc2cpKX0pfWRlcGxveVNlcnZpY2VQYWNrKFosWCxRLHEsdGU9ITEp'@; put 'e3JldHVybiBEKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJkZXBsb3lTZXJ2aWNlUGFjayIsW1IuU2VydmVyVHlwZS5TYXNWaXlhXSk7bGV0IGllPW51bGw7aWYoUXx8WClRfHwoUT10aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybCksWHx8'@; put 'KFg9dGhpcy5zYXNqc0NvbmZpZy5hcHBMb2MpLHRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZT09PVIuU2VydmVyVHlwZS5TYXNWaXlhPyhpZT1uZXcgTi5TQVNWaXlhQXBpQ2xpZW50KFEsWCx0aGlzLnNhc2pzQ29uZmlnLmNvbnRleHROYW1lLHRoaXMucmVxdWVzdENsaWVudCksaWUuZGVi'@; put 'dWc9dGhpcy5zYXNqc0NvbmZpZy5kZWJ1Zyk6dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlPT09Ui5TZXJ2ZXJUeXBlLlNhczkmJihpZT1uZXcgdy5TQVM5QXBpQ2xpZW50KFEsdGhpcy5qb2JzUGF0aCx0aGlzLnNhc2pzQ29uZmlnLmh0dHBzQWdlbnRPcHRpb25zKSk7ZWxzZXtsZXQgZ2U9'@; put 'bnVsbDt0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGU9PT1SLlNlcnZlclR5cGUuU2FzVml5YT9nZT10aGlzLnNhc1ZpeWFBcGlDbGllbnQuZ2V0Q29uZmlnKCk6dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlPT09Ui5TZXJ2ZXJUeXBlLlNhczkmJihnZT10aGlzLnNhczlBcGlDbGllbnQu'@; put 'Z2V0Q29uZmlnKCkpLFE9Z2Uuc2VydmVyVXJsLFg9Z2Uucm9vdEZvbGRlck5hbWV9Wi5tZW1iZXJzWzBdLm1lbWJlcnMmJloubWVtYmVyc1swXS5tZW1iZXJzLnNvcnQoZ2U9PiJmb2xkZXIiPT09Z2UudHlwZT8tMToxKTtjb25zdCBzZT1aLm1lbWJlcnM7eWllbGQgdGhpcy5jcmVhdGVGb2xk'@; put 'ZXJzQW5kU2VydmljZXMoWCxzZSxxLGllLHRlKX0pfXN0YXJ0Q29tcHV0ZUpvYihaLFgsUT17fSxxLHRlLGllLHNlPSExLGdlLF9lKXt2YXIgVGUsU2UsemUsejtyZXR1cm4gRCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7aWYoUT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24o'@; put 'e30sdGhpcy5zYXNqc0NvbmZpZyksUSksdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgic3RhcnRDb21wdXRlSm9iIixbUi5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSwhUS5jb250ZXh0TmFtZSl0aHJvdyBuZXcgRXJyb3IoIkNvbnRleHQgbmFtZSBpcyB1bmRlZmluZWQuIFBsZWFzZSBzZXQgYSBgY29u'@; put 'dGV4dE5hbWVgIGluIHlvdXIgU0FTanMgb3Igb3ZlcnJpZGUgY29uZmlnLiIpO3JldHVybiBfZT8obnVsbD09PShUZT10aGlzLnJlcXVlc3RDbGllbnQpfHx2b2lkIDA9PT1UZXx8VGUuc2V0VmVyYm9zZU1vZGUoX2UpLG51bGw9PT0oU2U9dGhpcy5yZXF1ZXN0Q2xpZW50KXx8dm9pZCAwPT09'@; put 'U2V8fFNlLmVuYWJsZVZlcmJvc2VNb2RlKCkpOiExPT09X2UmJihudWxsPT09KHplPXRoaXMucmVxdWVzdENsaWVudCl8fHZvaWQgMD09PXplfHx6ZS5kaXNhYmxlVmVyYm9zZU1vZGUoKSksbnVsbD09PSh6PXRoaXMuc2FzVml5YUFwaUNsaWVudCl8fHZvaWQgMD09PXo/dm9pZCAwOnouZXhl'@; put 'Y3V0ZUNvbXB1dGVKb2IoWixRLmNvbnRleHROYW1lLFEuZGVidWcsWCxxLCEhdGUsITEsaWUsc2UsZ2UpfSl9ZmV0Y2hMb2dGaWxlQ29udGVudChaLFgpe3JldHVybiBEKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4geWllbGQgdGhpcy5yZXF1ZXN0Q2xpZW50LmdldCha'@; put 'LFgpLnRoZW4oUT0+e2lmKCFRKXJldHVybiBQcm9taXNlLnJlamVjdChuZXcgcC5FcnJvclJlc3BvbnNlKCJFcnJvciB3aGlsZSBmZXRjaGluZyBsb2cuIFJlc3BvbnNlIHdhcyBub3QgcHJvdmlkZWQuIikpO3RyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoUS5yZXN1bHQpfWNhdGNoKHEpe3Jl'@; put 'dHVybiBQcm9taXNlLnJlamVjdChuZXcgcC5FcnJvclJlc3BvbnNlKCJFcnJvciB3aGlsZSBmZXRjaGluZyBsb2cuIFRoZSByZXN1bHQgaXMgbm90IHZhbGlkLiIscSkpfX0pfSl9Z2V0U2FzUmVxdWVzdHMoKXtyZXR1cm5bLi4udGhpcy5yZXF1ZXN0Q2xpZW50LmdldFJlcXVlc3RzKCldLnNv'@; put 'cnQoXy5jb21wYXJlVGltZXN0YW1wcyl9Y2xlYXJTYXNSZXF1ZXN0cygpe3RoaXMucmVxdWVzdENsaWVudC5jbGVhclJlcXVlc3RzKCl9c2V0dXBDb25maWd1cmF0aW9uKCl7aWYodm9pZCAwPT09dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmx8fCIiPT09dGhpcy5zYXNqc0NvbmZpZy5zZXJ2'@; put 'ZXJVcmwpaWYodHlwZW9mIGxvY2F0aW9uPCJ1Iil7bGV0IFo9YCR7bG9jYXRpb24ucHJvdG9jb2x9Ly8ke2xvY2F0aW9uLmhvc3RuYW1lfWA7bG9jYXRpb24ucG9ydCYmKFo9YCR7Wn06JHtsb2NhdGlvbi5wb3J0fWApLHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsPVp9ZWxzZSB0aGlzLnNh'@; put 'c2pzQ29uZmlnLnNlcnZlclVybD0iIjsiLyI9PT10aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybC5zbGljZSgtMSkmJih0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybD10aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybC5zbGljZSgwLC0xKSksdGhpcy5yZXF1ZXN0Q2xpZW50P3RoaXMucmVxdWVz'@; put 'dENsaWVudC5zZXRDb25maWcodGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwsdGhpcy5zYXNqc0NvbmZpZy5odHRwc0FnZW50T3B0aW9ucyk6dGhpcy5yZXF1ZXN0Q2xpZW50PW5ldyh0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGU9PT1SLlNlcnZlclR5cGUuU2FzanM/UC5TYXNqc1JlcXVl'@; put 'c3RDbGllbnQ6ai5SZXF1ZXN0Q2xpZW50KSh0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybCx0aGlzLnNhc2pzQ29uZmlnLmh0dHBzQWdlbnRPcHRpb25zLHRoaXMuc2FzanNDb25maWcucmVxdWVzdEhpc3RvcnlMaW1pdCx0aGlzLnNhc2pzQ29uZmlnLnZlcmJvc2UpLHRoaXMuam9ic1BhdGg9'@; put 'dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlPT09Ui5TZXJ2ZXJUeXBlLlNhc1ZpeWE/dGhpcy5zYXNqc0NvbmZpZy5wYXRoU0FTVml5YTp0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGU9PT1SLlNlcnZlclR5cGUuU2FzOT90aGlzLnNhc2pzQ29uZmlnLnBhdGhTQVM5OnRoaXMuc2FzanND'@; put 'b25maWcucGF0aFNBU0pTLHRoaXMuYXV0aE1hbmFnZXI9bmV3IEguQXV0aE1hbmFnZXIodGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwsdGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlLHRoaXMucmVxdWVzdENsaWVudCx0aGlzLnJlc2VuZFdhaXRpbmdSZXF1ZXN0cyksdGhpcy5zYXNqc0Nv'@; put 'bmZpZy5zZXJ2ZXJUeXBlPT09Ui5TZXJ2ZXJUeXBlLlNhc1ZpeWEmJih0aGlzLnNhc1ZpeWFBcGlDbGllbnQ/dGhpcy5zYXNWaXlhQXBpQ2xpZW50LnNldENvbmZpZyh0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybCx0aGlzLnNhc2pzQ29uZmlnLmFwcExvYyk6dGhpcy5zYXNWaXlhQXBpQ2xp'@; put 'ZW50PW5ldyBOLlNBU1ZpeWFBcGlDbGllbnQodGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwsdGhpcy5zYXNqc0NvbmZpZy5hcHBMb2MsdGhpcy5zYXNqc0NvbmZpZy5jb250ZXh0TmFtZSx0aGlzLnJlcXVlc3RDbGllbnQpLHRoaXMuc2FzVml5YUFwaUNsaWVudC5kZWJ1Zz10aGlzLnNhc2pz'@; put 'Q29uZmlnLmRlYnVnKSx0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGU9PT1SLlNlcnZlclR5cGUuU2FzOSYmKHRoaXMuc2FzOUFwaUNsaWVudD90aGlzLnNhczlBcGlDbGllbnQuc2V0Q29uZmlnKHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsKTp0aGlzLnNhczlBcGlDbGllbnQ9bmV3IHcu'@; put 'U0FTOUFwaUNsaWVudCh0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybCx0aGlzLmpvYnNQYXRoLHRoaXMuc2FzanNDb25maWcuaHR0cHNBZ2VudE9wdGlvbnMpKSx0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGU9PT1SLlNlcnZlclR5cGUuU2FzanMmJih0aGlzLnNhc0pTQXBpQ2xpZW50fHwo'@; put 'dGhpcy5zYXNKU0FwaUNsaWVudD1uZXcgRi5TQVNqc0FwaUNsaWVudCh0aGlzLnJlcXVlc3RDbGllbnQpKSksdGhpcy5maWxlVXBsb2FkZXI9bmV3IEwuRmlsZVVwbG9hZGVyKHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsLHRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZSx0aGlzLmpvYnNQ'@; put 'YXRoLHRoaXMucmVxdWVzdENsaWVudCksdGhpcy53ZWJKb2JFeGVjdXRvcj1uZXcgTC5XZWJKb2JFeGVjdXRvcih0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybCx0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGUsdGhpcy5qb2JzUGF0aCx0aGlzLnJlcXVlc3RDbGllbnQsdGhpcy5zYXNWaXlh'@; put 'QXBpQ2xpZW50KSx0aGlzLnNhc2pzSm9iRXhlY3V0b3I9bmV3IEwuU2FzanNKb2JFeGVjdXRvcih0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybCx0aGlzLmpvYnNQYXRoLHRoaXMucmVxdWVzdENsaWVudCksdGhpcy5zYXM5Sm9iRXhlY3V0b3I9bmV3IEwuU2FzOUpvYkV4ZWN1dG9yKHRoaXMu'@; put 'c2FzanNDb25maWcuc2VydmVyVXJsLHRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZSx0aGlzLmpvYnNQYXRoLHRoaXMucmVxdWVzdENsaWVudCx0aGlzLnNhc2pzQ29uZmlnLmh0dHBzQWdlbnRPcHRpb25zKSx0aGlzLmNvbXB1dGVKb2JFeGVjdXRvcj1uZXcgTC5Db21wdXRlSm9iRXhlY3V0'@; put 'b3IodGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwsdGhpcy5zYXNWaXlhQXBpQ2xpZW50KSx0aGlzLmplc0pvYkV4ZWN1dG9yPW5ldyBMLkplc0pvYkV4ZWN1dG9yKHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsLHRoaXMuc2FzVml5YUFwaUNsaWVudCl9Y3JlYXRlRm9sZGVyc0FuZFNlcnZp'@; put 'Y2VzKFosWCxRLHEsdGUpe3JldHVybiBEKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt5aWVsZCgwLF8uYXN5bmNGb3JFYWNoKShYLGllPT5EKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtzd2l0Y2goaWUudHlwZSl7Y2FzZSJmb2xkZXIiOnlpZWxkIHRoaXMuY3JlYXRl'@; put 'Rm9sZGVyKGllLm5hbWUsWix2b2lkIDAsUSxxLHRlKTticmVhaztjYXNlImZpbGUiOnlpZWxkIHRoaXMuY3JlYXRlRmlsZShpZS5uYW1lLGllLmNvZGUsWix2b2lkIDAsUSxxKTticmVhaztjYXNlInNlcnZpY2UiOnlpZWxkIHRoaXMuY3JlYXRlSm9iRGVmaW5pdGlvbihpZS5uYW1lLGllLmNv'@; put 'ZGUsWix2b2lkIDAsUSxxKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgVW5pZGVudGlmaWVkIG1lbWJlciAnJHtpZS5uYW1lfScgcHJvdmlkZWQuYCl9ImZvbGRlciI9PT1pZS50eXBlJiZpZS5tZW1iZXJzJiZpZS5tZW1iZXJzLmxlbmd0aCYmKHlpZWxkIHRoaXMuY3JlYXRlRm9s'@; put 'ZGVyc0FuZFNlcnZpY2VzKGAke1p9LyR7aWUubmFtZX1gLGllLm1lbWJlcnMsUSxxLHRlKSl9KSl9KX1pc01ldGhvZFN1cHBvcnRlZChaLFgpe2lmKCF0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGV8fCFYLmluY2x1ZGVzKHRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZSkpdGhyb3cgbmV3'@; put 'IEVycm9yKGBNZXRob2QgJyR7Wn0nIGlzIG9ubHkgc3VwcG9ydGVkIG9uICR7WC5qb2luKCIsICIpfSBzZXJ2ZXJzLmApfWVuYWJsZVZlcmJvc2VNb2RlKFosWCl7dmFyIFE7bnVsbD09PShRPXRoaXMucmVxdWVzdENsaWVudCl8fHZvaWQgMD09PVF8fFEuZW5hYmxlVmVyYm9zZU1vZGUoWixY'@; put 'KX1kaXNhYmxlVmVyYm9zZU1vZGUoKXt2YXIgWjtudWxsPT09KFo9dGhpcy5yZXF1ZXN0Q2xpZW50KXx8dm9pZCAwPT09Wnx8Wi5kaXNhYmxlVmVyYm9zZU1vZGUoKX19fSwzNDY3OmZ1bmN0aW9uKGNlLEosYil7InVzZSBzdHJpY3QiO3ZhciBEPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5j'@; put 'dGlvbihQLEwsWSxCKXtyZXR1cm4gbmV3KFl8fChZPVByb21pc2UpKShmdW5jdGlvbihaLFgpe2Z1bmN0aW9uIFEoaWUpe3RyeXt0ZShCLm5leHQoaWUpKX1jYXRjaChzZSl7WChzZSl9fWZ1bmN0aW9uIHEoaWUpe3RyeXt0ZShCLnRocm93KGllKSl9Y2F0Y2goc2Upe1goc2UpfX1mdW5jdGlv'@; put 'biB0ZShpZSl7aWUuZG9uZT9aKGllLnZhbHVlKTpmdW5jdGlvbiBXKFope3JldHVybiBaIGluc3RhbmNlb2YgWT9aOm5ldyBZKGZ1bmN0aW9uKFgpe1goWil9KX0oaWUudmFsdWUpLnRoZW4oUSxxKX10ZSgoQj1CLmFwcGx5KFAsTHx8W10pKS5uZXh0KCkpfSl9LF89dGhpcyYmdGhpcy5fX2lt'@; put 'cG9ydERlZmF1bHR8fGZ1bmN0aW9uKFApe3JldHVybiBQJiZQLl9fZXNNb2R1bGU/UDp7ZGVmYXVsdDpQfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEouU0FTanNBcGlDbGllbnQ9dm9pZCAwO2NvbnN0IHA9XyhiKDYyMzApKSxOPWIoMzkwMCks'@; put 'dz1iKDk3NzgpLEY9Yig1NyksSD1iKDI0OSksUj1iKDcwNCk7Si5TQVNqc0FwaUNsaWVudD1jbGFzcyBqe2NvbnN0cnVjdG9yKEwpe3RoaXMucmVxdWVzdENsaWVudD1MfWdldEFjY2Vzc1Rva2VuRm9yUmVxdWVzdChMKXtyZXR1cm4gRCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7'@; put 'aWYoTCl7Y29uc3R7YWNjZXNzX3Rva2VuOll9PXlpZWxkKDAsUi5nZXRUb2tlbnMpKHRoaXMucmVxdWVzdENsaWVudCxMLE4uU2VydmVyVHlwZS5TYXNqcyk7cmV0dXJuIFl9fSl9ZGVwbG95KEwsWSxCKXtyZXR1cm4gRCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7Y29uc3QgVz15'@; put 'aWVsZCB0aGlzLmdldEFjY2Vzc1Rva2VuRm9yUmVxdWVzdChCKTtMLmFwcExvYz1MLmFwcExvY3x8WTtjb25zdHtyZXN1bHQ6Wn09eWllbGQgdGhpcy5yZXF1ZXN0Q2xpZW50LnBvc3QoIlNBU2pzQXBpL2RyaXZlL2RlcGxveSIsTCxXLHZvaWQgMCx7fSx7bWF4Q29udGVudExlbmd0aDoxLzAs'@; put 'bWF4Qm9keUxlbmd0aDoxLzB9KTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFopfSl9ZGVwbG95WmlwRmlsZShMLFkpe3JldHVybiBEKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdHtjcmVhdGVSZWFkU3RyZWFtOkJ9PWIoMjk3NSksVz15aWVsZCB0aGlzLmdldEFjY2Vzc1Rv'@; put 'a2VuRm9yUmVxdWVzdChZKSxaPXlpZWxkIEIoTCksWD1uZXcgcC5kZWZhdWx0O1guYXBwZW5kKCJmaWxlIixaKTtjb25zdCBRPWBtdWx0aXBhcnQvZm9ybS1kYXRhOyBib3VuZGFyeT0ke1guZ2V0Qm91bmRhcnkoKX1gLHtyZXN1bHQ6cX09eWllbGQgdGhpcy5yZXF1ZXN0Q2xpZW50LnBvc3Qo'@; put 'IlNBU2pzQXBpL2RyaXZlL2RlcGxveS91cGxvYWQiLFgsVyxRLHt9LHttYXhDb250ZW50TGVuZ3RoOjEvMCxtYXhCb2R5TGVuZ3RoOjEvMH0pO3JldHVybiBQcm9taXNlLnJlc29sdmUocSl9KX1leGVjdXRlSm9iKEwsWSxCKXtyZXR1cm4gRCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24q'@; put 'KCl7Y29uc3QgVz1CP0IuYWNjZXNzX3Rva2VuOnZvaWQgMDtsZXQgWjtaPUwuX3Byb2dyYW0uc3RhcnRzV2l0aCgiLyIpP0wuX3Byb2dyYW06YCR7WX0vJHtMLl9wcm9ncmFtfWA7Y29uc3QgWD15aWVsZCB0aGlzLnJlcXVlc3RDbGllbnQucG9zdCgiU0FTanNBcGkvc3RwL2V4ZWN1dGUiLE9i'@; put 'amVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7X2RlYnVnOjEzMX0sTCkse19wcm9ncmFtOlp9KSxXKTtyZXR1cm57cmVzdWx0OlgucmVzdWx0LGxvZzpYLmxvZ319KX1leGVjdXRlU2NyaXB0KEwsWT0ic2FzIixCKXtyZXR1cm4gRCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7Y29u'@; put 'c3QgVz15aWVsZCB0aGlzLmdldEFjY2Vzc1Rva2VuRm9yUmVxdWVzdChCKSxaPXtsb2c6IiJ9O3JldHVybiB5aWVsZCB0aGlzLnJlcXVlc3RDbGllbnQucG9zdCgiU0FTanNBcGkvY29kZS9leGVjdXRlIix7Y29kZTpMLHJ1blRpbWU6WX0sVykudGhlbihYPT57Y29uc3R7bG9nOlEscHJpbnRP'@; put 'dXRwdXQ6cSxyZXN1bHQ6dGV9PVg7Wi5sb2c9USxxJiYoWi5wcmludE91dHB1dD1xKSx0ZSYmKFoud2Vib3V0PXRlKX0pLmNhdGNoKFg9Pnt0aHJvdygwLHcucHJlZml4TWVzc2FnZSkoWCwiRXJyb3Igd2hpbGUgc2VuZGluZyBQT1NUIHJlcXVlc3QgdG8gZXhlY3V0ZSBjb2RlLiAiKX0pLFp9'@; put 'KX1nZXRBY2Nlc3NUb2tlbihMLFkpe3JldHVybiBEKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4oMCxGLmdldEFjY2Vzc1Rva2VuRm9yU2FzanMpKHRoaXMucmVxdWVzdENsaWVudCxMLFkpfSl9cmVmcmVzaFRva2VucyhMKXtyZXR1cm4gRCh0aGlzLHZvaWQgMCx2b2lk'@; put 'IDAsZnVuY3Rpb24qKCl7cmV0dXJuKDAsSC5yZWZyZXNoVG9rZW5zRm9yU2FzanMpKHRoaXMucmVxdWVzdENsaWVudCxMKX0pfX19LDY5MDM6ZnVuY3Rpb24oY2UsSixiKXsidXNlIHN0cmljdCI7dmFyIEQ9Yig0MTU1KSxfPWIoNTEwOCkscD10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rp'@; put 'b24oUCxMLFksQil7cmV0dXJuIG5ldyhZfHwoWT1Qcm9taXNlKSkoZnVuY3Rpb24oWixYKXtmdW5jdGlvbiBRKGllKXt0cnl7dGUoQi5uZXh0KGllKSl9Y2F0Y2goc2Upe1goc2UpfX1mdW5jdGlvbiBxKGllKXt0cnl7dGUoQi50aHJvdyhpZSkpfWNhdGNoKHNlKXtYKHNlKX19ZnVuY3Rpb24g'@; put 'dGUoaWUpe2llLmRvbmU/WihpZS52YWx1ZSk6ZnVuY3Rpb24gVyhaKXtyZXR1cm4gWiBpbnN0YW5jZW9mIFk/WjpuZXcgWShmdW5jdGlvbihYKXtYKFopfSl9KGllLnZhbHVlKS50aGVuKFEscSl9dGUoKEI9Qi5hcHBseShQLEx8fFtdKSkubmV4dCgpKX0pfTtPYmplY3QuZGVmaW5lUHJvcGVy'@; put 'dHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5TZXNzaW9uTWFuYWdlcj12b2lkIDA7Y29uc3QgTj1iKDEyMzApLHc9YigxMzk1KSxGPWIoNTkyOCksSD1iKDk3NzgpO0ouU2Vzc2lvbk1hbmFnZXI9Y2xhc3Mgantjb25zdHJ1Y3RvcihMLFksQil7dGhpcy5zZXJ2ZXJVcmw9TCx0aGlz'@; put 'LmNvbnRleHROYW1lPVksdGhpcy5yZXF1ZXN0Q2xpZW50PUIsdGhpcy5sb2dnZWRFcnJvcnM9W10sdGhpcy5zZXNzaW9uU3RhdGVMaW5rRXJyb3I9IkVycm9yIHdoaWxlIGdldHRpbmcgc2Vzc2lvbiBzdGF0ZSBsaW5rLiAiLHRoaXMuc2Vzc2lvbnM9W10sdGhpcy5jdXJyZW50Q29udGV4dD1u'@; put 'dWxsLHRoaXMuc2V0dGluZ0NvbnRleHQ9ITEsdGhpcy5fZGVidWc9ITEsdGhpcy5wcmludGVkU2Vzc2lvblN0YXRlPXtwcmludGVkOiExLHN0YXRlOk4uU2Vzc2lvblN0YXRlLk5vU3RhdGV9LEwmJigwLEYuaXNVcmwpKEwpfWdldCBkZWJ1Zygpe3JldHVybiB0aGlzLl9kZWJ1Z31zZXQgZGVi'@; put 'dWcoTCl7dGhpcy5fZGVidWc9TH1pc1Nlc3Npb25WYWxpZChMKXtpZighTClyZXR1cm4hMTtjb25zdCBZPSgobmV3IERhdGUpLmdldFRpbWUoKS1uZXcgRGF0ZShMLmNyZWF0aW9uVGltZVN0YW1wKS5nZXRUaW1lKCkpLzFlMztyZXR1cm4hKCFMLmF0dHJpYnV0ZXN8fFk+PUwuYXR0cmlidXRl'@; put 'cy5zZXNzaW9uSW5hY3RpdmVUaW1lb3V0KX1yZW1vdmVTZXNzaW9uRnJvbVBvb2woTCl7dGhpcy5zZXNzaW9ucz10aGlzLnNlc3Npb25zLmZpbHRlcihZPT5ZLmlkIT09TC5pZCl9cmVtb3ZlRXhwaXJlZFNlc3Npb25zKCl7dGhpcy5zZXNzaW9ucz10aGlzLnNlc3Npb25zLmZpbHRlcihMPT50'@; put 'aGlzLmlzU2Vzc2lvblZhbGlkKEwpKX10aHJvd0Vycm9ycyhMLFkpe3Rocm93IFk/KDAsSC5wcmVmaXhNZXNzYWdlKShuZXcgRXJyb3IoTC5qb2luKCIuICIpKSxZKTpuZXcgRXJyb3IoTC5tYXAoQj0+Qi5tZXNzYWdlP0IubWVzc2FnZTpCKS5qb2luKCIuICIpKX1nZXRTZXNzaW9uKEwpe3Jl'@; put 'dHVybiBwKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdCBZPVtdO2xldCBCPSExO2NvbnN0IFc9KCk9PntZLmxlbmd0aCYmIUImJihCPSEwLHRoaXMudGhyb3dFcnJvcnMoWSkpfTtpZih0aGlzLnJlbW92ZUV4cGlyZWRTZXNzaW9ucygpLHRoaXMuc2Vzc2lvbnMubGVuZ3Ro'@; put 'KXtjb25zdCBaPXRoaXMuc2Vzc2lvbnNbMF07cmV0dXJuIHRoaXMucmVtb3ZlU2Vzc2lvbkZyb21Qb29sKFopLHRoaXMuY3JlYXRlU2Vzc2lvbnMoTCkuY2F0Y2goWD0+e1kucHVzaChYKX0pLHRoaXMuY3JlYXRlQW5kV2FpdEZvclNlc3Npb24oTCkuY2F0Y2goWD0+e1kucHVzaChYKX0pLFco'@; put 'KSxafXt0aGlzLmNyZWF0ZVNlc3Npb25zKEwpLmNhdGNoKFg9PntZLnB1c2goWCl9KSx5aWVsZCB0aGlzLmNyZWF0ZUFuZFdhaXRGb3JTZXNzaW9uKEwpLmNhdGNoKFg9PntZLnB1c2goWCl9KSx0aGlzLnJlbW92ZUV4cGlyZWRTZXNzaW9ucygpO2NvbnN0IFo9dGhpcy5zZXNzaW9ucy5wb3Ao'@; put 'KTtyZXR1cm4gdGhpcy5yZW1vdmVTZXNzaW9uRnJvbVBvb2woWiksVygpLFp9fSl9Z2V0RXJyb3JNZXNzYWdlKEwsWSxCKXtyZXR1cm5gJHtCfSByZXF1ZXN0IHRvICR7WX0gZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgJHtMLnJlc3BvbnNlLnN0YXR1c3x8InVua25vd24ifS4gYCtMLnJlc3Bv'@; put 'bnNlLmRhdGEubWVzc2FnZXx8IiJ9Y2xlYXJTZXNzaW9uKEwsWSl7cmV0dXJuIHAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IEI9YC9jb21wdXRlL3Nlc3Npb25zLyR7TH1gO3JldHVybiB5aWVsZCB0aGlzLnJlcXVlc3RDbGllbnQuZGVsZXRlKEIsWSkudGhlbigoKT0+'@; put 'e3RoaXMuc2Vzc2lvbnM9dGhpcy5zZXNzaW9ucy5maWx0ZXIoVz0+Vy5pZCE9PUwpfSkuY2F0Y2goVz0+e3Rocm93KDAsSC5wcmVmaXhNZXNzYWdlKSh0aGlzLmdldEVycm9yTWVzc2FnZShXLEIsIkRFTEVURSIpLCJFcnJvciB3aGlsZSBkZWxldGluZyBzZXNzaW9uLiAiKX0pfSl9Y3JlYXRl'@; put 'U2Vzc2lvbnMoTCl7cmV0dXJuIHAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IFk9W107dGhpcy5zZXNzaW9ucy5sZW5ndGh8fCh5aWVsZCgwLEYuYXN5bmNGb3JFYWNoKShuZXcgQXJyYXkoMSksKCk9PnAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3lpZWxk'@; put 'IHRoaXMuY3JlYXRlQW5kV2FpdEZvclNlc3Npb24oTCkuY2F0Y2goQj0+e1kucHVzaChCKX0pfSkpKSxZLmxlbmd0aCYmdGhpcy50aHJvd0Vycm9ycyhZLCJFcnJvciB3aGlsZSBjcmVhdGluZyBzZXNzaW9uLiAiKX0pfXdhaXRGb3JDdXJyZW50Q29udGV4dCgpe3JldHVybiBwKHRoaXMsdm9p'@; put 'ZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4gbmV3IFByb21pc2UoTD0+e2NvbnN0IFk9c2V0SW50ZXJ2YWwoKCk9Pnt0aGlzLmN1cnJlbnRDb250ZXh0JiYodGhpcy5zZXR0aW5nQ29udGV4dD0hMSxjbGVhckludGVydmFsKFkpLEwoKSl9LDEwMCl9KX0pfWNyZWF0ZUFuZFdhaXRGb3JT'@; put 'ZXNzaW9uKEwpe3JldHVybiBwKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0aGlzLmN1cnJlbnRDb250ZXh0fHwodGhpcy5zZXR0aW5nQ29udGV4dD95aWVsZCB0aGlzLndhaXRGb3JDdXJyZW50Q29udGV4dCgpOnlpZWxkIHRoaXMuc2V0Q3VycmVudENvbnRleHQoTCkpO2NvbnN0'@; put 'IFk9YCR7dGhpcy5zZXJ2ZXJVcmx9L2NvbXB1dGUvY29udGV4dHMvJHt0aGlzLmN1cnJlbnRDb250ZXh0LmlkfS9zZXNzaW9uc2Ase3Jlc3VsdDpCLGV0YWc6V309eWllbGQgdGhpcy5yZXF1ZXN0Q2xpZW50LnBvc3QoWSx7fSxMKS5jYXRjaChYPT57dGhyb3coMCxILnByZWZpeE1lc3NhZ2Up'@; put 'KHRoaXMuZ2V0RXJyb3JNZXNzYWdlKFgsWSwiUE9TVCIpLCJFcnJvciB3aGlsZSBjcmVhdGluZyBzZXNzaW9uLiAiKX0pO0IuZXRhZz1XO2NvbnN0IFo9Qi5saW5rcy5maW5kKFg9PiJzdGF0ZSI9PT1YLnJlbCk7aWYoIVopdGhyb3cgdGhpcy5zZXNzaW9uU3RhdGVMaW5rRXJyb3I7cmV0dXJu'@; put 'IEIuc3RhdGVVcmw9Wi5ocmVmLHlpZWxkIHRoaXMud2FpdEZvclNlc3Npb24oQixXLEwpLHRoaXMuc2Vzc2lvbnMucHVzaChCKSxCfSl9c2V0Q3VycmVudENvbnRleHQoTCl7cmV0dXJuIHAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2lmKCF0aGlzLmN1cnJlbnRDb250ZXh0KXtj'@; put 'b25zdCBZPWAke3RoaXMuc2VydmVyVXJsfS9jb21wdXRlL2NvbnRleHRzP2xpbWl0PTEwMDAwYDt0aGlzLnNldHRpbmdDb250ZXh0PSEwO2NvbnN0e3Jlc3VsdDpCfT15aWVsZCB0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KFksTCkuY2F0Y2goWD0+e3Rocm93KDAsSC5wcmVmaXhNZXNzYWdlKSh0'@; put 'aGlzLmdldEVycm9yTWVzc2FnZShYLFksIkdFVCIpLCJFcnJvciB3aGlsZSBnZXR0aW5nIGxpc3Qgb2YgY29udGV4dHMuICIpfSksWj0oQiYmQi5pdGVtcyYmQi5pdGVtcy5sZW5ndGg/Qi5pdGVtczpbXSkuZmluZChYPT5YLm5hbWU9PT10aGlzLmNvbnRleHROYW1lKTtpZighWil0aHJvdyBu'@; put 'ZXcgRXJyb3IoYFRoZSBjb250ZXh0ICcke3RoaXMuY29udGV4dE5hbWV9JyB3YXMgbm90IGZvdW5kIG9uIHRoZSBzZXJ2ZXIgJHt0aGlzLnNlcnZlclVybH0uYCk7dGhpcy5jdXJyZW50Q29udGV4dD1aLFByb21pc2UucmVzb2x2ZSgpfX0pfXdhaXRGb3JTZXNzaW9uKEwsWSxCKXt2YXIgVzty'@; put 'ZXR1cm4gcCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0e3N0YXRlOlp9PUw7Y29uc3R7c3RhdGVVcmw6WH09TCxRPUQubG9nZ2VyfHxfO2lmKFo9PT1OLlNlc3Npb25TdGF0ZS5QZW5kaW5nfHxaPT09Ti5TZXNzaW9uU3RhdGUuUnVubmluZ3x8Wj09PU4uU2Vzc2lvblN0YXRl'@; put 'Lk5vU3RhdGUpe2lmKFgpe3RoaXMuZGVidWcmJiF0aGlzLnByaW50ZWRTZXNzaW9uU3RhdGUucHJpbnRlZCYmKFEuaW5mbyhgUG9sbGluZzogJHt0aGlzLnNlcnZlclVybCtYfWApLHRoaXMucHJpbnRlZFNlc3Npb25TdGF0ZS5wcmludGVkPSEwKTtjb25zdCBxPWAke3RoaXMuc2VydmVyVXJs'@; put 'fSR7WH0/d2FpdD0zMGAse3Jlc3VsdDp0ZSxyZXNwb25zZVN0YXR1czppZX09eWllbGQgdGhpcy5nZXRTZXNzaW9uU3RhdGUocSxZLEIpLmNhdGNoKHNlPT57dGhyb3coMCxILnByZWZpeE1lc3NhZ2UpKHNlLCJFcnJvciB3aGlsZSB3YWl0aW5nIGZvciBzZXNzaW9uLiAiKX0pO2lmKFo9dGUu'@; put 'dHJpbSgpLHRoaXMuZGVidWcmJnRoaXMucHJpbnRlZFNlc3Npb25TdGF0ZS5zdGF0ZSE9PVomJihRLmluZm8oYEN1cnJlbnQgc2Vzc2lvbiBzdGF0ZSBpcyAnJHtafSdgKSx0aGlzLnByaW50ZWRTZXNzaW9uU3RhdGUuc3RhdGU9Wix0aGlzLnByaW50ZWRTZXNzaW9uU3RhdGUucHJpbnRlZD0h'@; put 'MSksIVope2NvbnN0IHNlPW5ldyB3Lk5vU2Vzc2lvblN0YXRlRXJyb3IoaWUsdGhpcy5zZXJ2ZXJVcmwrWCxudWxsPT09KFc9TC5saW5rcy5maW5kKGdlPT4ibG9nIj09PWdlLnJlbCkpfHx2b2lkIDA9PT1XP3ZvaWQgMDpXLmhyZWYpO3JldHVybiB0aGlzLmxvZ2dlZEVycm9ycy5maW5kKGdl'@; put 'PT5nZS5zZXJ2ZXJSZXNwb25zZVN0YXR1cz09PXNlLnNlcnZlclJlc3BvbnNlU3RhdHVzKXx8KHRoaXMubG9nZ2VkRXJyb3JzLnB1c2goc2UpLFEuaW5mbyhzZS5tZXNzYWdlKSkseWllbGQgdGhpcy53YWl0Rm9yU2Vzc2lvbihMLFksQil9cmV0dXJuIHRoaXMubG9nZ2VkRXJyb3JzPVtdLFp9'@; put 'dGhyb3cgdGhpcy5zZXNzaW9uU3RhdGVMaW5rRXJyb3J9cmV0dXJuIHRoaXMubG9nZ2VkRXJyb3JzPVtdLFp9KX1nZXRTZXNzaW9uU3RhdGUoTCxZLEIpe3JldHVybiBwKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4geWllbGQgdGhpcy5yZXF1ZXN0Q2xpZW50LmdldChM'@; put 'LEIsInRleHQvcGxhaW4iLHsiSWYtTm9uZS1NYXRjaCI6WX0pLnRoZW4oVz0+KHtyZXN1bHQ6Vy5yZXN1bHQscmVzcG9uc2VTdGF0dXM6Vy5zdGF0dXN9KSkuY2F0Y2goVz0+e3Rocm93KDAsSC5wcmVmaXhNZXNzYWdlKSh0aGlzLmdldEVycm9yTWVzc2FnZShXLEwsIkdFVCIpLCJFcnJvciB3'@; put 'aGlsZSBnZXR0aW5nIHNlc3Npb24gc3RhdGUuICIpfSl9KX1nZXRWYXJpYWJsZShMLFksQil7cmV0dXJuIHAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IFc9YCR7dGhpcy5zZXJ2ZXJVcmx9L2NvbXB1dGUvc2Vzc2lvbnMvJHtMfS92YXJpYWJsZXMvJHtZfWA7cmV0dXJu'@; put 'IHlpZWxkIHRoaXMucmVxdWVzdENsaWVudC5nZXQoVyxCKS5jYXRjaChaPT57dGhyb3coMCxILnByZWZpeE1lc3NhZ2UpKHRoaXMuZ2V0RXJyb3JNZXNzYWdlKFosVywiR0VUIiksYEVycm9yIHdoaWxlIGZldGNoaW5nIHNlc3Npb24gdmFyaWFibGUgJyR7WX0nLiBgKX0pfSl9fX0sMTYyMjpm'@; put 'dW5jdGlvbihjZSxKLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDQxNTUpLF89Yig1MTA4KSxwPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihCLFcsWixYKXtyZXR1cm4gbmV3KFp8fChaPVByb21pc2UpKShmdW5jdGlvbihxLHRlKXtmdW5jdGlvbiBpZShfZSl7dHJ5e2dlKFgubmV4'@; put 'dChfZSkpfWNhdGNoKFRlKXt0ZShUZSl9fWZ1bmN0aW9uIHNlKF9lKXt0cnl7Z2UoWC50aHJvdyhfZSkpfWNhdGNoKFRlKXt0ZShUZSl9fWZ1bmN0aW9uIGdlKF9lKXtfZS5kb25lP3EoX2UudmFsdWUpOmZ1bmN0aW9uIFEocSl7cmV0dXJuIHEgaW5zdGFuY2VvZiBaP3E6bmV3IFooZnVuY3Rp'@; put 'b24odGUpe3RlKHEpfSl9KF9lLnZhbHVlKS50aGVuKGllLHNlKX1nZSgoWD1YLmFwcGx5KEIsV3x8W10pKS5uZXh0KCkpfSl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLmV4ZWN1dGVPbkNvbXB1dGVBcGk9dm9pZCAwO2NvbnN0IE49Yig3NzU3'@; put 'KSx3PWIoOTc3OCksRj1iKDM2MDcpLEg9Yig3MDQpLFI9Yig1OTI4KSxqPWIoNzE0KSxQPWIoMTM0MyksTD1iKDY0OTYpO0ouZXhlY3V0ZU9uQ29tcHV0ZUFwaT1mdW5jdGlvbiBZKEIsVyxaLFgsUSxxLHRlLGllPW51bGwsc2U9ITEsZ2U9ITEsX2U9ITAsVGUsU2U9ITEsemUpe3ZhciB6LGc7'@; put 'cmV0dXJuIHAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2xldCB5PSh0ZXx8e30pLmFjY2Vzc190b2tlbjt0ZSYmKHthY2Nlc3NfdG9rZW46eX09eWllbGQoMCxILmdldFRva2VucykoQix0ZSkpO2NvbnN0IHg9RC5sb2dnZXJ8fF87dHJ5e2xldCBDO2NvbnN0IFQ9eWllbGQgVy5n'@; put 'ZXRTZXNzaW9uKHkpLmNhdGNoKHhlPT57dGhyb3coMCx3LnByZWZpeE1lc3NhZ2UpKHhlLCJFcnJvciB3aGlsZSBnZXR0aW5nIHNlc3Npb24uICIpfSk7aWYoQz1ULmlkLFNlKXtjb25zdHtyZXN1bHQ6eGV9PXlpZWxkIFcuZ2V0VmFyaWFibGUoQywiU1lTSk9CSUQiLHkpLmNhdGNoKHZlPT57'@; put 'dGhyb3coMCx3LnByZWZpeE1lc3NhZ2UpKHZlLCJFcnJvciB3aGlsZSBnZXR0aW5nIHNlc3Npb24gdmFyaWFibGUuICIpfSk7aWYoeGUmJnhlLnZhbHVlKXtjb25zdCB2ZT1aP1guc3BsaXQoWikuam9pbigiIikucmVwbGFjZSgvXlwvLywiIik6WDsoRC5sb2dnZXJ8fF8pLmluZm8oYFRyaWdn'@; put 'ZXJpbmcgJyR7dmV9JyB3aXRoIFBJRCAke3hlLnZhbHVlfSBhdCAkeygwLE4udGltZXN0YW1wVG9ZWVlZTU1EREhITU1TUykoKX1gKX19bGV0IFY7Vj0oMCxSLmlzUmVsYXRpdmVQYXRoKShYKT9gZXhlYy0ke1guaW5jbHVkZXMoIi8iKT9YLnNwbGl0KCIvIilbMV06WH1gOlguc3BsaXQoIi8i'@; put 'KS5wb3AoKTtsZXQgVT17U1lTX0pFU19KT0JfVVJJOiIiLF9wcm9ncmFtOigwLFIuaXNSZWxhdGl2ZVBhdGgpKFgpP1orIi8iK1g6WH07emUmJihVPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxVKSx6ZSkpLHNlJiYoVT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sVSks'@; put 'e19ERUJVRzoxMzF9KSk7bGV0IEU9W107aWUmJihKU09OLnN0cmluZ2lmeShpZSkuaW5jbHVkZXMoIjsiKT8oRT15aWVsZCgwLEwudXBsb2FkVGFibGVzKShCLGllLHkpLmNhdGNoKHhlPT57dGhyb3coMCx3LnByZWZpeE1lc3NhZ2UpKHhlLCJFcnJvciB3aGlsZSB1cGxvYWRpbmcgdGFibGVz'@; put 'LiAiKX0pLFUuX3dlYmluX2ZpbGVfY291bnQ9RS5sZW5ndGgsRS5mb3JFYWNoKCh4ZSx2ZSk9PntVW2Bfd2ViaW5fZmlsZXVyaSR7dmUrMX1gXT1gL2ZpbGVzL2ZpbGVzLyR7eGUuZmlsZS5pZH1gLFVbYF93ZWJpbl9uYW1lJHt2ZSsxfWBdPXhlLnRhYmxlTmFtZX0pKTpVPU9iamVjdC5hc3Np'@; put 'Z24oT2JqZWN0LmFzc2lnbih7fSxVKSwoMCxqLmZvcm1hdERhdGFGb3JSZXF1ZXN0KShpZSkpKTtjb25zdCBtPXtuYW1lOlZ8fCJEZWZhdWx0IEpvYiBOYW1lIixkZXNjcmlwdGlvbjoiUG93ZXJlZCBieSBTQVNqcyIsY29kZTpRLHZhcmlhYmxlczpVLHZlcnNpb246Mn0se3Jlc3VsdDpBfT15'@; put 'aWVsZCBCLnBvc3QoYC9jb21wdXRlL3Nlc3Npb25zLyR7Q30vam9ic2AsbSx5KS5jYXRjaCh4ZT0+e3Rocm93KDAsdy5wcmVmaXhNZXNzYWdlKSh4ZSwiRXJyb3Igd2hpbGUgcG9zdGluZyBqb2IuICIpfSk7aWYoIV9lKXJldHVybiBUO3NlJiYoeC5pbmZvKGBKb2IgaGFzIGJlZW4gc3VibWl0'@; put 'dGVkIGZvciAnJHtWfScuYCkseC5pbmZvKGBZb3UgY2FuIG1vbml0b3IgdGhlIGpvYiBwcm9ncmVzcyBhdCAnJHtCLmdldEJhc2VVcmwoKX0ke0EubGlua3MuZmluZCh4ZT0+InN0YXRlIj09PXhlLnJlbCkuaHJlZn0nLmApKTtjb25zdCBuZT15aWVsZCgwLFAucG9sbEpvYlN0YXRlKShCLEEs'@; put 'c2UsdGUsVGUse3Nlc3Npb246VCxzZXNzaW9uTWFuYWdlcjpXfSkuY2F0Y2goeGU9PnAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3ZhciB2ZSxxZTtjb25zdCBqZT1udWxsPT09KHZlPXhlPy5yZXNwb25zZSl8fHZvaWQgMD09PXZlP3ZvaWQgMDp2ZS5kYXRhLEFlPS9lcnI9WzAt'@; put 'OV0qLC8uZXhlYyhqZSk7aWYoIjUxMTMiPT09KG51bGw9PT0ocWU9QWU/LlswXSl8fHZvaWQgMD09PXFlP3ZvaWQgMDpxZS5zbGljZSg0LC0xKSkpe2NvbnN0IEllPUEubGlua3MuZmluZChIZT0+InVwIj09PUhlLnJlbCkuaHJlZisiL2xvZyI7eGUubG9nPXlpZWxkKDAsUi5mZXRjaExvZ0J5'@; put 'Q2h1bmtzKShCLHksSWUsMWU2KX10aHJvdygwLHcucHJlZml4TWVzc2FnZSkoeGUsIkVycm9yIHdoaWxlIHBvbGxpbmcgam9iIHN0YXR1cy4gIil9KSk7dGUmJih7YWNjZXNzX3Rva2VuOnl9PXlpZWxkKDAsSC5nZXRUb2tlbnMpKEIsdGUpKTtjb25zdHtyZXN1bHQ6bGV9PXlpZWxkIEIuZ2V0'@; put 'KGAvY29tcHV0ZS9zZXNzaW9ucy8ke0N9L2pvYnMvJHtBLmlkfWAseSkuY2F0Y2goeGU9Pnt0aHJvdygwLHcucHJlZml4TWVzc2FnZSkoeGUsIkVycm9yIHdoaWxlIGdldHRpbmcgam9iLiAiKX0pO2xldCB3ZSxaZT0iIjtjb25zdCBRZT1sZS5saW5rcy5maW5kKHhlPT4ibG9nIj09PXhlLnJl'@; put 'bCk7aWYoc2UmJlFlKXtjb25zdCB4ZT1gJHtRZS5ocmVmfS9jb250ZW50YCx2ZT1udWxsIT09KGc9bnVsbD09PSh6PWxlLmxvZ1N0YXRpc3RpY3MpfHx2b2lkIDA9PT16P3ZvaWQgMDp6LmxpbmVDb3VudCkmJnZvaWQgMCE9PWc/ZzoxZTY7WmU9eWllbGQoMCxSLmZldGNoTG9nQnlDaHVua3Mp'@; put 'KEIseSx4ZSx2ZSl9aWYobmU9PT1QLkpvYlN0YXRlLkZhaWxlZHx8bmU9PT1QLkpvYlN0YXRlLkVycm9yKXRocm93IG5ldyBGLkNvbXB1dGVKb2JFeGVjdXRpb25FcnJvcihsZSxaZSk7aWYoIWdlKXJldHVybntqb2I6bGUsbG9nOlplfTtjb25zdCBhdD1gL2NvbXB1dGUvc2Vzc2lvbnMvJHtD'@; put 'fS9maWxlcmVmcy9fd2Vib3V0L2NvbnRlbnRgO3JldHVybiB3ZT15aWVsZCBCLmdldChhdCx5LCJ0ZXh0L3BsYWluIikuY2F0Y2goeGU9PnAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3ZhciB2ZSxxZTtpZih4ZSBpbnN0YW5jZW9mIEYuTm90Rm91bmRFcnJvciYmUWUpe2NvbnN0'@; put 'IGplPWAke1FlLmhyZWZ9L2NvbnRlbnRgLEFlPW51bGwhPT0ocWU9bnVsbD09PSh2ZT1sZS5sb2dTdGF0aXN0aWNzKXx8dm9pZCAwPT09dmU/dm9pZCAwOnZlLmxpbmVDb3VudCkmJnZvaWQgMCE9PXFlP3FlOjFlNjtyZXR1cm4gWmU9eWllbGQoMCxSLmZldGNoTG9nQnlDaHVua3MpKEIseSxq'@; put 'ZSxBZSksUHJvbWlzZS5yZWplY3Qoe3N0YXR1czo1MDAsbG9nOlplfSl9cmV0dXJue3Jlc3VsdDpKU09OLnN0cmluZ2lmeSh4ZSl9fSkpLHlpZWxkIFcuY2xlYXJTZXNzaW9uKEMseSkuY2F0Y2goeGU9Pnt0aHJvdygwLHcucHJlZml4TWVzc2FnZSkoeGUsIkVycm9yIHdoaWxlIGNsZWFyaW5n'@; put 'IHNlc3Npb24uICIpfSkse3Jlc3VsdDp3ZT8ucmVzdWx0LGxvZzpaZX19Y2F0Y2goQyl7aWYoNDA0PT09Qy5zdGF0dXMpcmV0dXJuIFkoQixXLFosWCxRLHEsdGUsaWUsc2UsITEsITApO3Rocm93KDAsdy5wcmVmaXhNZXNzYWdlKShDLCJFcnJvciB3aGlsZSBleGVjdXRpbmcgc2NyaXB0LiAi'@; put 'KX19KX19LDc0NTg6ZnVuY3Rpb24oY2UsSixiKXsidXNlIHN0cmljdCI7dmFyIEQ9Yig0MTU1KSxfPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihGLEgsUixqKXtyZXR1cm4gbmV3KFJ8fChSPVByb21pc2UpKShmdW5jdGlvbihMLFkpe2Z1bmN0aW9uIEIoWCl7dHJ5e1ooai5uZXh0'@; put 'KFgpKX1jYXRjaChRKXtZKFEpfX1mdW5jdGlvbiBXKFgpe3RyeXtaKGoudGhyb3coWCkpfWNhdGNoKFEpe1koUSl9fWZ1bmN0aW9uIFooWCl7WC5kb25lP0woWC52YWx1ZSk6ZnVuY3Rpb24gUChMKXtyZXR1cm4gTCBpbnN0YW5jZW9mIFI/TDpuZXcgUihmdW5jdGlvbihZKXtZKEwpfSl9KFgu'@; put 'dmFsdWUpLnRoZW4oQixXKX1aKChqPWouYXBwbHkoRixIfHxbXSkpLm5leHQoKSl9KX07T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEouZ2V0RmlsZVN0cmVhbT12b2lkIDA7Y29uc3QgcD1iKDI5NzUpLE49Yig3NzU3KTtKLmdldEZpbGVTdHJlYW09'@; put 'KEYsSCk9Pl8odm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7Y29uc3R7Y3JlYXRlV3JpdGVTdHJlYW06Un09YigyOTc1KSxqPUh8fEQuY3dkKCk7aWYoeWllbGQoMCxwLmlzRm9sZGVyKShqKSl7Y29uc3QgTD1gJHtGLm5hbWV8fCJqb2IifS0keygwLE4uZ2VuZXJhdGVUaW1lc3Rh'@; put 'bXApKCl9LmxvZ2AsQj1iKDI1MjApLmpvaW4oSHx8RC5jd2QoKSxMKTtyZXR1cm4geWllbGQgUihCKX1yZXR1cm4geWllbGQgUihqKX0pfSwxMzQzOmZ1bmN0aW9uKGNlLEosYil7InVzZSBzdHJpY3QiO3ZhciBEPWIoNDE1NSksXz1iKDUxMDgpLHA9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1'@; put 'bmN0aW9uKFcsWixYLFEpe3JldHVybiBuZXcoWHx8KFg9UHJvbWlzZSkpKGZ1bmN0aW9uKHRlLGllKXtmdW5jdGlvbiBzZShUZSl7dHJ5e19lKFEubmV4dChUZSkpfWNhdGNoKFNlKXtpZShTZSl9fWZ1bmN0aW9uIGdlKFRlKXt0cnl7X2UoUS50aHJvdyhUZSkpfWNhdGNoKFNlKXtpZShTZSl9'@; put 'fWZ1bmN0aW9uIF9lKFRlKXtUZS5kb25lP3RlKFRlLnZhbHVlKTpmdW5jdGlvbiBxKHRlKXtyZXR1cm4gdGUgaW5zdGFuY2VvZiBYP3RlOm5ldyBYKGZ1bmN0aW9uKGllKXtpZSh0ZSl9KX0oVGUudmFsdWUpLnRoZW4oc2UsZ2UpfV9lKChRPVEuYXBwbHkoVyxafHxbXSkpLm5leHQoKSl9KX07'@; put 'T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEouZG9Qb2xsPUoucG9sbEpvYlN0YXRlPUouSm9iU3RhdGU9dm9pZCAwO2NvbnN0IE49Yig3MDQpLHc9YigxMzk1KSxGPWIoMTIzMCksSD1iKDU5MjgpO3ZhciBSLFc7KFc9Uj1KLkpvYlN0YXRlfHwoSi5K'@; put 'b2JTdGF0ZT17fSkpLkNvbXBsZXRlZD0iY29tcGxldGVkIixXLlJ1bm5pbmc9InJ1bm5pbmciLFcuUGVuZGluZz0icGVuZGluZyIsVy5VbmF2YWlsYWJsZT0idW5hdmFpbGFibGUiLFcuTm9TdGF0ZT0iIixXLkZhaWxlZD0iZmFpbGVkIixXLkVycm9yPSJlcnJvciIsSi5wb2xsSm9iU3RhdGU9'@; put 'ZnVuY3Rpb24gaihXLFosWCxRLHEsdGUpe3JldHVybiBwKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdCBpZT1ELmxvZ2dlcnx8XyxzZT1xPy5zdHJlYW1Mb2d8fCExLGdlPVt7bWF4UG9sbENvdW50OjIwMCxwb2xsSW50ZXJ2YWw6MzAwfSx7bWF4UG9sbENvdW50OjMwMCxw'@; put 'b2xsSW50ZXJ2YWw6M2UzfSx7bWF4UG9sbENvdW50OjUwMCxwb2xsSW50ZXJ2YWw6M2U0fSx7bWF4UG9sbENvdW50OjM0MDAscG9sbEludGVydmFsOjZlNH1dO2xldCBfZTtpZih2b2lkIDAhPT1xKXtfZT1bcV07bGV0e3BvbGxTdHJhdGVneTp4fT1xO3ZvaWQgMCE9PXg/KEIoeCkseD14LnNv'@; put 'cnQoKEMsVCk9PkMubWF4UG9sbENvdW50LVQubWF4UG9sbENvdW50KSxfZT1bLi4uX2UsLi4ueF0pOl9lPVsuLi5fZSwuLi5nZV19ZWxzZSBfZT1nZTtsZXQgVGU9X2Uuc3BsaWNlKDAsMSlbMF07cT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sVGUpLHF8fHt9KTtjb25zdCBTZT1a'@; put 'LmxpbmtzLmZpbmQoeD0+InN0YXRlIj09PXgucmVsKTtpZighU2UpdGhyb3cgbmV3IEVycm9yKCJKb2Igc3RhdGUgbGluayB3YXMgbm90IGZvdW5kLiIpO2xldCBnLHplPXlpZWxkIFAoVyxaLFIuTm9TdGF0ZSxYLFEpLmNhdGNoKHg9PihpZS5lcnJvcihgRXJyb3IgZmV0Y2hpbmcgam9iIHN0'@; put 'YXRlIGZyb20gJHtTZS5ocmVmfS4gU3RhcnRpbmcgcG9sbCwgYXNzdW1pbmcgam9iIHRvIGJlIHJ1bm5pbmcuYCx4KSxSLlVuYXZhaWxhYmxlKSksej0wO2lmKHplPT09Ui5Db21wbGV0ZWQpcmV0dXJuIFByb21pc2UucmVzb2x2ZSh6ZSk7aWYoc2UmJigwLEguaXNOb2RlKSgpKXtjb25zdHtn'@; put 'ZXRGaWxlU3RyZWFtOnh9PWIoNzQ1OCk7Zz15aWVsZCB4KFoscS5sb2dGb2xkZXJQYXRoKX1sZXQgeT15aWVsZCgwLEouZG9Qb2xsKShXLFosemUsWCx6LHEsUSxzZSxnLHRlKTtpZih6ZT15LnN0YXRlLHo9eS5wb2xsQ291bnQsIUwoemUpfHx6Pj1xLm1heFBvbGxDb3VudCYmIV9lLmxlbmd0'@; put 'aClyZXR1cm4gemU7Zm9yKDtfZS5sZW5ndGgmJkwoemUpOylUZT1fZS5zcGxpY2UoMCwxKVswXSxxJiYoVGUubG9nRm9sZGVyUGF0aD1xLmxvZ0ZvbGRlclBhdGgpLHk9eWllbGQoMCxKLmRvUG9sbCkoVyxaLHplLFgseixUZSxRLHNlLGcsdGUpLHplPXkuc3RhdGUsej15LnBvbGxDb3VudDty'@; put 'ZXR1cm4gZyYmZy5lbmQoKSx6ZX0pfTtjb25zdCBQPShXLFosWCxRLHEpPT5wKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IHRlPVoubGlua3MuZmluZChpZT0+InN0YXRlIj09PWllLnJlbCk7aWYoTChYKSl7bGV0IGllO3EmJihpZT15aWVsZCgwLE4uZ2V0VG9rZW5z'@; put 'KShXLHEpKTtjb25zdHtyZXN1bHQ6c2V9PXlpZWxkIFcuZ2V0KGAke3RlLmhyZWZ9P19hY3Rpb249d2FpdCZ3YWl0PTMwMGAsaWU/LmFjY2Vzc190b2tlbiwidGV4dC9wbGFpbiIse30sUSkuY2F0Y2goZ2U9Pnt0aHJvdyBuZXcgdy5Kb2JTdGF0ZVBvbGxFcnJvcihaLmlkLGdlKX0pO3JldHVy'@; put 'biBzZS50cmltKCl9cmV0dXJuIFh9KSxMPVc9Plc9PT1SLlJ1bm5pbmd8fFc9PT1SLk5vU3RhdGV8fFc9PT1SLlBlbmRpbmd8fFc9PT1SLlVuYXZhaWxhYmxlO0ouZG9Qb2xsPShXLFosWCxRLHEsdGUsaWUsc2UsZ2UsX2UpPT5wKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3Zh'@; put 'ciBUZSxTZTtjb25zdHttYXhQb2xsQ291bnQ6emUscG9sbEludGVydmFsOnp9PXRlLGc9RC5sb2dnZXJ8fF8seT1aLmxpbmtzLmZpbmQoRT0+InN0YXRlIj09PUUucmVsKTtsZXQgQz0wLFQ9WCxWPVIuTm9TdGF0ZSxVPTA7Zm9yKDtMKFQpJiZxPD16ZTspe2lmKF9lJiZxJiZxJTEwPT0wJiZp'@; put 'ZSl7Y29uc3R7c2Vzc2lvbjptLHNlc3Npb25NYW5hZ2VyOkF9PV9lLHtzdGF0ZVVybDphZSxldGFnOm5lLGlkOmxlfT1tLHthY2Nlc3NfdG9rZW46d2V9PWllLHtpZDpaZX09Wix7cmVzdWx0OlFlLHJlc3BvbnNlU3RhdHVzOmF0fT15aWVsZCBBLmdldFNlc3Npb25TdGF0ZShhZSxuZSx3ZSku'@; put 'Y2F0Y2godmU9Pnt0aHJvdyBuZXcgdy5Kb2JTdGF0ZVBvbGxFcnJvcihaZSx2ZSl9KSx4ZT12ZT0+W0YuU2Vzc2lvblN0YXRlLlJ1bm5pbmcsRi5TZXNzaW9uU3RhdGUuSWRsZV0uaW5jbHVkZXModmUpO2lmKCF4ZShRZSl8fDIwMCE9PWF0KXtBLmNsZWFyU2Vzc2lvbihsZSx3ZSk7Y29uc3Qg'@; put 'dmU9eGUoUWUpP2BTZXNzaW9uIHJlc3BvbnNlIHN0YXR1cyBpcyBub3QgMjAwLiBTZXNzaW9uIHJlc3BvbnNlIHN0YXR1cyBpcyAke2F0fS5gOmBTZXNzaW9uIHN0YXRlIG9mIHRoZSBqb2IgaXMgbm90ICdydW5uaW5nJyBvciAnaWRsZScuIFNlc3Npb24gc3RhdGUgaXMgJyR7UWV9J2A7dGhy'@; put 'b3cgbmV3IHcuSm9iU3RhdGVQb2xsRXJyb3IoWmUsbmV3IEVycm9yKHZlKSl9fVQ9eWllbGQgUChXLFosVCxRLGllKS5jYXRjaChtPT57aWYoQysrLHE+PXplfHxDPj01KXRocm93IG07cmV0dXJuIGcuZXJyb3IoYEVycm9yIGZldGNoaW5nIGpvYiBzdGF0ZSBmcm9tICR7eS5ocmVmfS4gUmVz'@; put 'dW1pbmcgcG9sbCwgYXNzdW1pbmcgam9iIHRvIGJlIHJ1bm5pbmcuYCxtKSxSLlVuYXZhaWxhYmxlfSkscSsrO2NvbnN0IEU9Wi5saW5rcy5maW5kKG09PiJzZWxmIj09PW0ucmVsKS5ocmVmO2lmKHNlKXtjb25zdHtyZXN1bHQ6bX09eWllbGQgVy5nZXQoRSxpZT8uYWNjZXNzX3Rva2VuKSxB'@; put 'PW51bGwhPT0oU2U9bnVsbD09PShUZT1tLmxvZ1N0YXRpc3RpY3MpfHx2b2lkIDA9PT1UZT92b2lkIDA6VGUubGluZUNvdW50KSYmdm9pZCAwIT09U2U/U2U6MWU2LHtzYXZlTG9nOmFlfT0oMCxILmlzTm9kZSkoKT9iKDIwODApOntzYXZlTG9nOm51bGx9O2FlJiYoeWllbGQgYWUoWixXLFUs'@; put 'QSxnZSxpZT8uYWNjZXNzX3Rva2VuKSksVSs9QX1RJiZWIT09VCYmKGcuaW5mbyhgUG9sbGluZzogJHtXLmdldEJhc2VVcmwoKStFfS9zdGF0ZWApLGcuaW5mbyhgQ3VycmVudCBqb2Igc3RhdGU6ICR7VH1gKSxWPVQpLFQhPT1SLlVuYXZhaWxhYmxlJiZDPjAmJihDPTApLFQhPT1SLkNvbXBs'@; put 'ZXRlZCYmKHlpZWxkKDAsSC5kZWxheSkoeikpfXJldHVybntzdGF0ZTpULHBvbGxDb3VudDpxfX0pO2NvbnN0IEI9Vz0+e2NvbnN0IFo9KFgsUSk9Pnt0aHJvdyBuZXcgRXJyb3IoYFBvbGwgc3RyYXRlZ2llcyBhcmUgbm90IHZhbGlkLiR7WD9gICR7WH1gOiIifSR7UT9gIEludmFsaWQgcG9s'@; put 'bCBzdHJhdGVneTogXG4ke0pTT04uc3RyaW5naWZ5KFEsbnVsbCwyKX1gOiIifWApfTtXLmZvckVhY2goKFgsUSk9Pntjb25zdHttYXhQb2xsQ291bnQ6cSxwb2xsSW50ZXJ2YWw6dGV9PVg7cTwxP1ooIidtYXhQb2xsQ291bnQnIGhhcyB0byBiZSBncmVhdGVyIHRoYW4gMC4iLFgpOjAhPT1R'@; put 'P3E8PVdbUS0xXS5tYXhQb2xsQ291bnQmJlooIidtYXhQb2xsQ291bnQnIGhhcyB0byBiZSBncmVhdGVyIHRoYW4gJ21heFBvbGxDb3VudCcgaW4gcHJldmlvdXMgcG9sbCBzdHJhdGVneS4iLFgpOnRlPDEmJlooIidwb2xsSW50ZXJ2YWwnIGhhcyB0byBiZSBncmVhdGVyIHRoYW4gMC4iLFgp'@; put 'fSl9fSwyMDgwOmZ1bmN0aW9uKGNlLEosYil7InVzZSBzdHJpY3QiO3ZhciBEPWIoNDE1NSksXz1iKDUxMDgpLHA9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKEgsUixqLFApe3JldHVybiBuZXcoanx8KGo9UHJvbWlzZSkpKGZ1bmN0aW9uKFksQil7ZnVuY3Rpb24gVyhRKXt0cnl7'@; put 'WChQLm5leHQoUSkpfWNhdGNoKHEpe0IocSl9fWZ1bmN0aW9uIFooUSl7dHJ5e1goUC50aHJvdyhRKSl9Y2F0Y2gocSl7QihxKX19ZnVuY3Rpb24gWChRKXtRLmRvbmU/WShRLnZhbHVlKTpmdW5jdGlvbiBMKFkpe3JldHVybiBZIGluc3RhbmNlb2Ygaj9ZOm5ldyBqKGZ1bmN0aW9uKEIpe0Io'@; put 'WSl9KX0oUS52YWx1ZSkudGhlbihXLFopfVgoKFA9UC5hcHBseShILFJ8fFtdKSkubmV4dCgpKX0pfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5zYXZlTG9nPXZvaWQgMDtjb25zdCBOPWIoNTkyOCksdz1iKDYxMzEpO0ouc2F2ZUxvZz1mdW5j'@; put 'dGlvbiBGKEgsUixqLFAsTCxZKXtyZXR1cm4gcCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7aWYoIVkpdGhyb3cgbmV3IEVycm9yKGBMb2dzIGZvciBqb2IgJHtILmlkfSBjYW5ub3QgYmUgZmV0Y2hlZCB3aXRob3V0IGEgdmFsaWQgYWNjZXNzIHRva2VuLmApO2lmKCFMKXRocm93'@; put 'IG5ldyBFcnJvcihgTG9ncyBmb3Igam9iICR7SC5pZH0gY2Fubm90IGJlIHdyaXR0ZW4gd2l0aG91dCBhIHZhbGlkIHdyaXRlIHN0cmVhbS5gKTtjb25zdCBCPUQubG9nZ2VyfHxfLFc9SC5saW5rcy5maW5kKFg9PiJsb2ciPT09WC5yZWwpO2lmKCFXKXRocm93IG5ldyBFcnJvcihgTG9nIFVS'@; put 'TCBmb3Igam9iICR7SC5pZH0gd2FzIG5vdCBmb3VuZC5gKTtjb25zdCBaPXlpZWxkKDAsTi5mZXRjaExvZykoUixZLGAke1cuaHJlZn0vY29udGVudGAsaixQKTtCLmluZm8oYFdyaXRpbmcgbG9ncyB0byAke0wucGF0aH1gKSx5aWVsZCgwLHcud3JpdGVTdHJlYW0pKEwsWnx8IiIpfSl9fSw2'@; put 'NDk2OmZ1bmN0aW9uKGNlLEosYil7InVzZSBzdHJpY3QiO3ZhciBEPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbih3LEYsSCxSKXtyZXR1cm4gbmV3KEh8fChIPVByb21pc2UpKShmdW5jdGlvbihQLEwpe2Z1bmN0aW9uIFkoWil7dHJ5e1coUi5uZXh0KFopKX1jYXRjaChYKXtMKFgp'@; put 'fX1mdW5jdGlvbiBCKFope3RyeXtXKFIudGhyb3coWikpfWNhdGNoKFgpe0woWCl9fWZ1bmN0aW9uIFcoWil7Wi5kb25lP1AoWi52YWx1ZSk6ZnVuY3Rpb24gaihQKXtyZXR1cm4gUCBpbnN0YW5jZW9mIEg/UDpuZXcgSChmdW5jdGlvbihMKXtMKFApfSl9KFoudmFsdWUpLnRoZW4oWSxCKX1X'@; put 'KChSPVIuYXBwbHkodyxGfHxbXSkpLm5leHQoKSl9KX07T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEoudXBsb2FkVGFibGVzPXZvaWQgMDtjb25zdCBfPWIoOTc3OCkscD1iKDI0MDIpO0oudXBsb2FkVGFibGVzPWZ1bmN0aW9uIE4odyxGLEgpe3Jl'@; put 'dHVybiBEKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdCBSPVtdO2Zvcihjb25zdCBqIGluIEYpe2NvbnN0IFA9KDAscC5jb252ZXJ0VG9DU1YpKEYsaik7aWYoIkVSUk9SOiBMQVJHRSBTVFJJTkcgTEVOR1RIIj09PVApdGhyb3cgbmV3IEVycm9yKCJUaGUgbWF4IGxlbmd0'@; put 'aCBvZiBhIHN0cmluZyB2YWx1ZSBpbiBTQVNqcyBpcyAzMjc2NSBjaGFyYWN0ZXJzLiIpO2NvbnN0IEw9eWllbGQgdy51cGxvYWRGaWxlKCIvZmlsZXMvZmlsZXMjcmF3VXBsb2FkIixQLEgpLmNhdGNoKFk9Pnt0aHJvdygwLF8ucHJlZml4TWVzc2FnZSkoWSwiRXJyb3Igd2hpbGUgdXBsb2Fk'@; put 'aW5nIGZpbGUuICIpfSk7Ui5wdXNoKHt0YWJsZU5hbWU6aixmaWxlOkwucmVzdWx0fSl9cmV0dXJuIFJ9KX19LDYxMzE6ZnVuY3Rpb24oY2UsSil7InVzZSBzdHJpY3QiO3ZhciBiPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihfLHAsTix3KXtyZXR1cm4gbmV3KE58fChOPVByb21p'@; put 'c2UpKShmdW5jdGlvbihILFIpe2Z1bmN0aW9uIGooWSl7dHJ5e0wody5uZXh0KFkpKX1jYXRjaChCKXtSKEIpfX1mdW5jdGlvbiBQKFkpe3RyeXtMKHcudGhyb3coWSkpfWNhdGNoKEIpe1IoQil9fWZ1bmN0aW9uIEwoWSl7WS5kb25lP0goWS52YWx1ZSk6ZnVuY3Rpb24gRihIKXtyZXR1cm4g'@; put 'SCBpbnN0YW5jZW9mIE4/SDpuZXcgTihmdW5jdGlvbihSKXtSKEgpfSl9KFkudmFsdWUpLnRoZW4oaixQKX1MKCh3PXcuYXBwbHkoXyxwfHxbXSkpLm5leHQoKSl9KX07T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEoud3JpdGVTdHJlYW09dm9pZCAw'@; put 'LEoud3JpdGVTdHJlYW09KF8scCk9PmIodm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuIG5ldyBQcm9taXNlKChOLHcpPT57Xy53cml0ZShwKyJcbiIsRj0+e0Y/dyhGKTpOKCEwKX0pfSl9KX0sMjg1MTpmdW5jdGlvbihjZSxKLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgRD1i'@; put 'KDUxMDgpLF89Yig0MTU1KSxwPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihXLFosWCxRKXtyZXR1cm4gbmV3KFh8fChYPVByb21pc2UpKShmdW5jdGlvbih0ZSxpZSl7ZnVuY3Rpb24gc2UoVGUpe3RyeXtfZShRLm5leHQoVGUpKX1jYXRjaChTZSl7aWUoU2UpfX1mdW5jdGlvbiBn'@; put 'ZShUZSl7dHJ5e19lKFEudGhyb3coVGUpKX1jYXRjaChTZSl7aWUoU2UpfX1mdW5jdGlvbiBfZShUZSl7VGUuZG9uZT90ZShUZS52YWx1ZSk6ZnVuY3Rpb24gcSh0ZSl7cmV0dXJuIHRlIGluc3RhbmNlb2YgWD90ZTpuZXcgWChmdW5jdGlvbihpZSl7aWUodGUpfSl9KFRlLnZhbHVlKS50aGVu'@; put 'KHNlLGdlKX1fZSgoUT1RLmFwcGx5KFcsWnx8W10pKS5uZXh0KCkpfSl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLkF1dGhNYW5hZ2VyPXZvaWQgMDtjb25zdCBOPWIoMzkwMCksdz1iKDEzOTUpLEY9Yig1OTI4KSxIPWIoMTE3MCksUj1iKDU0'@; put 'MTgpLGo9Yig0NTgyKSxQPWIoNjU0NyksTD1iKDE1MjcpO0ouQXV0aE1hbmFnZXI9Y2xhc3MgWXtjb25zdHJ1Y3RvcihaLFgsUSxxKXt0aGlzLnNlcnZlclVybD1aLHRoaXMuc2VydmVyVHlwZT1YLHRoaXMucmVxdWVzdENsaWVudD1RLHRoaXMubG9naW5DYWxsYmFjaz1xLHRoaXMudXNlck5h'@; put 'bWU9IiIsdGhpcy51c2VyTG9uZ05hbWU9IiIsdGhpcy5yZWRpcmVjdGVkTG9naW5Vcmw9Ii9TQVNMb2dvbiIsdGhpcy5leHRyYWN0VXNlck5hbWU9dGU9Pntzd2l0Y2godGhpcy5zZXJ2ZXJUeXBlKXtjYXNlIE4uU2VydmVyVHlwZS5TYXNWaXlhOnJldHVybiB0ZT8uaWQ7Y2FzZSBOLlNlcnZl'@; put 'clR5cGUuU2FzOTpyZXR1cm4iIjtjYXNlIE4uU2VydmVyVHlwZS5TYXNqczpyZXR1cm4gdGU/LnVzZXJuYW1lO2RlZmF1bHQ6cmV0dXJuIEQuZXJyb3IoIlNlcnZlciBUeXBlIG5vdCBmb3VuZCBpbiBleHRyYWN0VXNlck5hbWUgZnVuY3Rpb24iKSwiIn19LHRoaXMuZXh0cmFjdFVzZXJMb25n'@; put 'TmFtZT10ZT0+e3N3aXRjaCh0aGlzLnNlcnZlclR5cGUpe2Nhc2UgTi5TZXJ2ZXJUeXBlLlNhc1ZpeWE6cmV0dXJuIHRlPy5uYW1lO2Nhc2UgTi5TZXJ2ZXJUeXBlLlNhczk6cmV0dXJuKDAsSC5leHRyYWN0VXNlckxvbmdOYW1lU2FzOSkodGUpO2Nhc2UgTi5TZXJ2ZXJUeXBlLlNhc2pzOnJl'@; put 'dHVybiB0ZT8uZGlzcGxheU5hbWU7ZGVmYXVsdDpyZXR1cm4gRC5lcnJvcigiU2VydmVyIFR5cGUgbm90IGZvdW5kIGluIGV4dHJhY3RVc2VyTmFtZSBmdW5jdGlvbiIpLCIifX0sdGhpcy5zZXRMb2dpblVybD10ZT0+e2xldCBpZT10ZVsxXS5yZXBsYWNlKC9cPy4qLywiIik7aWYoIi8iPT09'@; put 'aWVbMF0pe2llPWllLnN1YnN0cigxKTtjb25zdCBzZT10aGlzLnNlcnZlclVybD9gJHt0aGlzLnNlcnZlclVybH0vJHtpZX1gOmAke2llfWA7dGhpcy5sb2dpblVybD10aGlzLnNlcnZlclR5cGU9PT1OLlNlcnZlclR5cGUuU2FzVml5YT9zZTpzZS5yZXBsYWNlKCIvU0FTTG9nb24vbG9naW4u'@; put 'ZG8iLCIvU0FTTG9nb24vbG9naW4iKX19LHRoaXMubG9naW5Vcmw9Ii9TQVNMb2dvbi9sb2dpbiIsdGhpcy5sb2dvdXRVcmw9dGhpcy5zZXJ2ZXJUeXBlPT09Ti5TZXJ2ZXJUeXBlLlNhczk/Ii9TQVNMb2dvbi9sb2dvdXQ/Ijp0aGlzLnNlcnZlclR5cGU9PT1OLlNlcnZlclR5cGUuU2FzVml5'@; put 'YT8iL1NBU0xvZ29uL2xvZ291dC5kbz8iOiIvU0FTTG9nb24vbG9nb3V0Iix0aGlzLnJlZGlyZWN0ZWRMb2dpblVybD10aGlzLnNlcnZlclVybCt0aGlzLnJlZGlyZWN0ZWRMb2dpblVybH1yZWRpcmVjdGVkTG9nSW4oe29uTG9nZ2VkT3V0Olp9KXtyZXR1cm4gcCh0aGlzLHZvaWQgMCx2b2lk'@; put 'IDAsZnVuY3Rpb24qKCl7Y29uc3R7aXNMb2dnZWRJbjpYLHVzZXJOYW1lOlEsdXNlckxvbmdOYW1lOnF9PXlpZWxkIHRoaXMuZmV0Y2hVc2VyTmFtZSgpO2lmKFgpcmV0dXJuKF8ubG9nZ2VyfHxEKS5sb2coImxvZ2luIHdhcyBub3QgYXR0ZW1wdGVkIGFzIGEgdmFsaWQgc2Vzc2lvbiBhbHJl'@; put 'YWR5IGV4aXN0cyIpLHlpZWxkIHRoaXMubG9naW5DYWxsYmFjaygpLHtpc0xvZ2dlZEluOiEwLHVzZXJOYW1lOlEsdXNlckxvbmdOYW1lOnF9O2NvbnN0IHRlPXlpZWxkKDAsUi5vcGVuV2ViUGFnZSkodGhpcy5yZWRpcmVjdGVkTG9naW5VcmwsIlNBU0xvZ29uIix7d2lkdGg6NTAwLGhlaWdo'@; put 'dDo2MDB9LFopO2lmKCF0ZSlyZXR1cm57aXNMb2dnZWRJbjohMSx1c2VyTmFtZToiIix1c2VyTG9uZ05hbWU6IiJ9O2NvbnN0e2lzTG9nZ2VkSW46aWV9PXRoaXMuc2VydmVyVHlwZT09PU4uU2VydmVyVHlwZS5TYXNWaXlhP3lpZWxkKDAsUC52ZXJpZnlTYXNWaXlhTG9naW4pKHRlKTp5aWVs'@; put 'ZCgwLGoudmVyaWZ5U2FzOUxvZ2luKSh0ZSk7aWYodGUuY2xvc2UoKSxpZSl7dGhpcy5zZXJ2ZXJUeXBlPT09Ti5TZXJ2ZXJUeXBlLlNhczkmJih5aWVsZCB0aGlzLnBlcmZvcm1DQVNTZWN1cml0eUNoZWNrKCkpO2NvbnN0e3VzZXJOYW1lOnNlLHVzZXJMb25nTmFtZTpnZX09eWllbGQgdGhp'@; put 'cy5mZXRjaFVzZXJOYW1lKCk7cmV0dXJuIHlpZWxkIHRoaXMubG9naW5DYWxsYmFjaygpLHtpc0xvZ2dlZEluOiEwLHVzZXJOYW1lOnNlLHVzZXJMb25nTmFtZTpnZX19cmV0dXJue2lzTG9nZ2VkSW46ITEsdXNlck5hbWU6IiIsdXNlckxvbmdOYW1lOiIifX0pfWxvZ0luKFosWCl7cmV0dXJu'@; put 'IHAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IFE9e19zZXJ2aWNlOiJkZWZhdWx0Iix1c2VybmFtZTpaLHBhc3N3b3JkOlh9O3RoaXMudXNlck5hbWU9IiIsdGhpcy51c2VyTG9uZ05hbWU9IiI7bGV0e2lzTG9nZ2VkSW46cSxsb2dpbkZvcm06dGUsdXNlckxvbmdOYW1l'@; put 'OmllfT15aWVsZCB0aGlzLmNoZWNrU2Vzc2lvbigpO2lmKHEpcmV0dXJuKF8ubG9nZ2VyfHxEKS5sb2coImxvZ2luIHdhcyBub3QgYXR0ZW1wdGVkIGFzIGEgdmFsaWQgc2Vzc2lvbiBhbHJlYWR5IGV4aXN0cyIpLHlpZWxkIHRoaXMubG9naW5DYWxsYmFjaygpLHRoaXMudXNlck5hbWU9US51'@; put 'c2VybmFtZSx0aGlzLnVzZXJMb25nTmFtZT1pZSx7aXNMb2dnZWRJbjohMCx1c2VyTmFtZTp0aGlzLnVzZXJOYW1lLHVzZXJMb25nTmFtZTp0aGlzLnVzZXJMb25nTmFtZX07bGV0IHNlPXlpZWxkIHRoaXMuc2VuZExvZ2luUmVxdWVzdCh0ZSxRKSxnZT0oMCxMLmlzTG9nSW5TdWNjZXNzSGVh'@; put 'ZGVyUHJlc2VudCkodGhpcy5zZXJ2ZXJUeXBlLHNlKTtpZighZ2Upe2lmKEIoc2UpKXtjb25zdCBUZT15aWVsZCB0aGlzLmdldExvZ2luRm9ybShzZSk7c2U9eWllbGQgdGhpcy5zZW5kTG9naW5SZXF1ZXN0KFRlLFEpfWNvbnN0IF9lPXlpZWxkIHRoaXMuY2hlY2tTZXNzaW9uKCk7Z2U9X2Uu'@; put 'aXNMb2dnZWRJbix0aGlzLnVzZXJMb25nTmFtZT1fZS51c2VyTG9uZ05hbWV9cmV0dXJuIGdlJiYodGhpcy5zZXJ2ZXJUeXBlPT09Ti5TZXJ2ZXJUeXBlLlNhczkmJih5aWVsZCB0aGlzLnBlcmZvcm1DQVNTZWN1cml0eUNoZWNrKCkpLHRoaXMubG9naW5DYWxsYmFjaygpLHRoaXMudXNlck5h'@; put 'bWU9US51c2VybmFtZSkse2lzTG9nZ2VkSW46Z2UsdXNlck5hbWU6dGhpcy51c2VyTmFtZSx1c2VyTG9uZ05hbWU6dGhpcy51c2VyTG9uZ05hbWV9fSl9cGVyZm9ybUNBU1NlY3VyaXR5Q2hlY2soKXtyZXR1cm4gcCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7Y29uc3QgWj1gJHt0'@; put 'aGlzLnNlcnZlclVybH0vU0FTU3RvcmVkUHJvY2Vzcy9qX3NwcmluZ19jYXNfc2VjdXJpdHlfY2hlY2tgO3lpZWxkIHRoaXMucmVxdWVzdENsaWVudC5nZXQoYC9TQVNMb2dvbi9sb2dpbj9zZXJ2aWNlPSR7Wn1gLHZvaWQgMCkuY2F0Y2goWD0+e2lmKCEoWCBpbnN0YW5jZW9mIHcuTm90Rm91'@; put 'bmRFcnJvcikpdGhyb3cgWH0pfSl9c2VuZExvZ2luUmVxdWVzdChaLFgpe3JldHVybiBwKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtpZih0aGlzLnNlcnZlclR5cGU9PT1OLlNlcnZlclR5cGUuU2FzanMpe2NvbnN0e3VzZXJuYW1lOnRlLHBhc3N3b3JkOmllfT1YLHtyZXN1bHQ6'@; put 'c2V9PXlpZWxkIHRoaXMucmVxdWVzdENsaWVudC5wb3N0KHRoaXMubG9naW5Vcmwse3VzZXJuYW1lOnRlLHBhc3N3b3JkOmllfSx2b2lkIDApO3JldHVybiBzZX1mb3IoY29uc3QgdGUgaW4gWilYW3RlXT1aW3RlXTtjb25zdCBRPSgwLEYuc2VyaWFsaXplKShYKSx7cmVzdWx0OnF9PXlpZWxk'@; put 'IHRoaXMucmVxdWVzdENsaWVudC5wb3N0KHRoaXMubG9naW5VcmwsUSx2b2lkIDAsInRleHQvcGxhaW4iLHsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIixBY2NlcHQ6IiovKiJ9KTtyZXR1cm4gcX0pfWNoZWNrU2Vzc2lvbigpe3JldHVybiBwKHRo'@; put 'aXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdHtpc0xvZ2dlZEluOlosdXNlck5hbWU6WCx1c2VyTG9uZ05hbWU6UX09eWllbGQgdGhpcy5mZXRjaFVzZXJOYW1lKCk7bGV0IHE9bnVsbDtyZXR1cm4gWnx8KHlpZWxkIHRoaXMubG9nT3V0KCkscT15aWVsZCB0aGlzLmdldE5ld0xv'@; put 'Z2luRm9ybSgpKSxQcm9taXNlLnJlc29sdmUoe2lzTG9nZ2VkSW46Wix1c2VyTmFtZTpYLHVzZXJMb25nTmFtZTpRLGxvZ2luRm9ybTpxfSl9KX1nZXROZXdMb2dpbkZvcm0oKXtyZXR1cm4gcCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7aWYodGhpcy5zZXJ2ZXJUeXBlPT09Ti5T'@; put 'ZXJ2ZXJUeXBlLlNhc2pzKXJldHVybiB0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIvIix2b2lkIDApLnRoZW4oKHtyZXN1bHQ6WH0pPT57dmFyIFE7Y29uc3QgcT1udWxsPT09KFE9LzxzY3JpcHQ+ZG9jdW1lbnQuY29va2llID0gJyhYU1JGLVRPS0VOPS4qOyBNYXgtQWdlPTg2NDAwOyBTYW1l'@; put 'U2l0ZT1TdHJpY3Q7IFBhdGg9XC87KSc8XC9zY3JpcHQ+Ly5leGVjKFgpKXx8dm9pZCAwPT09UT92b2lkIDA6UVsxXTtxJiYoZG9jdW1lbnQuY29va2llPXEpfSk7Y29uc3R7cmVzdWx0Olp9PXlpZWxkIHRoaXMucmVxdWVzdENsaWVudC5nZXQodGhpcy5sb2dpblVybC5yZXBsYWNlKCIvU0FT'@; put 'TG9nb24vbG9naW4uZG8iLCIvU0FTTG9nb24vbG9naW4iKSx2b2lkIDAsInRleHQvcGxhaW4iKTtyZXR1cm4geWllbGQgdGhpcy5nZXRMb2dpbkZvcm0oWil9KX1mZXRjaFVzZXJOYW1lKCl7cmV0dXJuIHAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IFo9dGhpcy5zZXJ2'@; put 'ZXJUeXBlPT09Ti5TZXJ2ZXJUeXBlLlNhc1ZpeWE/YCR7dGhpcy5zZXJ2ZXJVcmx9L2lkZW50aXRpZXMvdXNlcnMvQGN1cnJlbnRVc2VyYDp0aGlzLnNlcnZlclR5cGU9PT1OLlNlcnZlclR5cGUuU2FzOT9gJHt0aGlzLnNlcnZlclVybH0vU0FTU3RvcmVkUHJvY2Vzc2A6YCR7dGhpcy5zZXJ2'@; put 'ZXJVcmx9L1NBU2pzQXBpL3Nlc3Npb25gLHtyZXN1bHQ6WH09eWllbGQgdGhpcy5yZXF1ZXN0Q2xpZW50LmdldChaLHZvaWQgMCwidGV4dC9wbGFpbiIpLmNhdGNoKHE9Pih7cmVzdWx0OiJhdXRoRXJyIn0pKSxRPSJhdXRoRXJyIiE9PVg7cmV0dXJuIFE/e2lzTG9nZ2VkSW46USx1c2VyTmFt'@; put 'ZTp0aGlzLmV4dHJhY3RVc2VyTmFtZShYKSx1c2VyTG9uZ05hbWU6dGhpcy5leHRyYWN0VXNlckxvbmdOYW1lKFgpfTooeWllbGQgdGhpcy5sb2dPdXQoKSx7aXNMb2dnZWRJbjpRLHVzZXJOYW1lOiIiLHVzZXJMb25nTmFtZToiIn0pfSl9Z2V0TG9naW5Gb3JtKFope2NvbnN0IFE9Lzxmb3Jt'@; put 'LithY3Rpb249IiguKihMb2dvbnxsb2dpbilbXiJdKikuKj4vLmV4ZWMoWikscT17fTtpZihRJiZRLmxlbmd0aCl7dGhpcy5zZXRMb2dpblVybChRKTtjb25zdCB0ZT0oWj1aLnJlcGxhY2UoLzxpbnB1dC9nLCJcbjxpbnB1dCIpKS5tYXRjaCgvPGlucHV0LioiaGlkZGVuIltePl0qPi9nKTt0'@; put 'ZSYmdGUuZm9yRWFjaChpZT0+e2NvbnN0IHNlPWllLm1hdGNoKC9uYW1lPSIoW14iXSopIlxzdmFsdWU9IihbXiJdKikvKTtzZSYmc2UubGVuZ3RoJiYocVtzZVsxXV09c2VbMl0pfSl9cmV0dXJuIE9iamVjdC5rZXlzKHEpLmxlbmd0aD9xOm51bGx9bG9nT3V0KCl7cmV0dXJuIHAodGhpcyx2'@; put 'b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiB0aGlzLnJlcXVlc3RDbGllbnQuY2xlYXJDc3JmVG9rZW5zKCksdGhpcy5yZXF1ZXN0Q2xpZW50LmdldCh0aGlzLmxvZ291dFVybCx2b2lkIDApLnRoZW4oKCk9PiEwKX0pfX07Y29uc3QgQj1XPT4vQW4gZXJyb3Igb2NjdXJyZWQgd2hp'@; put 'bGUgdGhlIHN5c3RlbSB3YXMgdmVyaWZ5aW5nIHlvdXIgY3JlZGVudGlhbHMuIFBsZWFzZSBlbnRlciB5b3VyIGNyZWRlbnRpYWxzIGFnYWluLi9nbS50ZXN0KFcpfSw1NzpmdW5jdGlvbihjZSxKLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgRD10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24o'@; put 'RixILFIsail7cmV0dXJuIG5ldyhSfHwoUj1Qcm9taXNlKSkoZnVuY3Rpb24oTCxZKXtmdW5jdGlvbiBCKFgpe3RyeXtaKGoubmV4dChYKSl9Y2F0Y2goUSl7WShRKX19ZnVuY3Rpb24gVyhYKXt0cnl7WihqLnRocm93KFgpKX1jYXRjaChRKXtZKFEpfX1mdW5jdGlvbiBaKFgpe1guZG9uZT9M'@; put 'KFgudmFsdWUpOmZ1bmN0aW9uIFAoTCl7cmV0dXJuIEwgaW5zdGFuY2VvZiBSP0w6bmV3IFIoZnVuY3Rpb24oWSl7WShMKX0pfShYLnZhbHVlKS50aGVuKEIsVyl9Wigoaj1qLmFwcGx5KEYsSHx8W10pKS5uZXh0KCkpfSl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7'@; put 'dmFsdWU6ITB9KSxKLmdldEFjY2Vzc1Rva2VuRm9yU2FzanM9dm9pZCAwO2NvbnN0IF89Yig5Nzc4KSxwPWIoOTAxNyksTj1iKDM5MDApO0ouZ2V0QWNjZXNzVG9rZW5Gb3JTYXNqcz1mdW5jdGlvbiB3KEYsSCxSKXtyZXR1cm4gRCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7Y29u'@; put 'c3Qgaj0iL1NBU2pzQXBpL2F1dGgvdG9rZW4iLFA9e2NsaWVudElkOkgsY29kZTpSfTtyZXR1cm4geWllbGQgRi5wb3N0KGosUCx2b2lkIDApLnRoZW4oTD0+e2NvbnN0IFk9TC5yZXN1bHQ7cmV0dXJue2FjY2Vzc190b2tlbjpZLmFjY2Vzc1Rva2VuLHJlZnJlc2hfdG9rZW46WS5yZWZyZXNo'@; put 'VG9rZW59fSkuY2F0Y2goTD0+e3Rocm93KDAsXy5wcmVmaXhNZXNzYWdlKShMLCgwLHAuZ2V0VG9rZW5SZXF1ZXN0RXJyb3JQcmVmaXgpKCJmZXRjaGluZyBhY2Nlc3MgdG9rZW4iLCJnZXRBY2Nlc3NUb2tlbkZvclNhc2pzIixOLlNlcnZlclR5cGUuU2FzanMsaixQLEgpKX0pfSl9fSwzNTY5'@; put 'OmZ1bmN0aW9uKGNlLEosYil7InVzZSBzdHJpY3QiO3ZhciBEPWIoODc2NCkuQnVmZmVyLF89dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKFIsaixQLEwpe3JldHVybiBuZXcoUHx8KFA9UHJvbWlzZSkpKGZ1bmN0aW9uKEIsVyl7ZnVuY3Rpb24gWihxKXt0cnl7UShMLm5leHQocSkp'@; put 'fWNhdGNoKHRlKXtXKHRlKX19ZnVuY3Rpb24gWChxKXt0cnl7UShMLnRocm93KHEpKX1jYXRjaCh0ZSl7Vyh0ZSl9fWZ1bmN0aW9uIFEocSl7cS5kb25lP0IocS52YWx1ZSk6ZnVuY3Rpb24gWShCKXtyZXR1cm4gQiBpbnN0YW5jZW9mIFA/QjpuZXcgUChmdW5jdGlvbihXKXtXKEIpfSl9KHEu'@; put 'dmFsdWUpLnRoZW4oWixYKX1RKChMPUwuYXBwbHkoUixqfHxbXSkpLm5leHQoKSl9KX07T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEouZ2V0QWNjZXNzVG9rZW5Gb3JWaXlhPXZvaWQgMDtjb25zdCBwPWIoMzkwMCksTj1iKDk3NzgpLHc9YigxMzk1'@; put 'KSxGPWIoOTAxNyk7Si5nZXRBY2Nlc3NUb2tlbkZvclZpeWE9ZnVuY3Rpb24gSChSLGosUCxMKXtyZXR1cm4gXyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0IFk7WT10eXBlb2YgRD4idSI/YnRvYShqKyI6IitQKTpELmZyb20oaisiOiIrUCkudG9TdHJpbmcoImJhc2U2NCIp'@; put 'O2NvbnN0IEI9Ii9TQVNMb2dvbi9vYXV0aC90b2tlbiIsVz17QXV0aG9yaXphdGlvbjoiQmFzaWMgIitZLEFjY2VwdDoiYXBwbGljYXRpb24vanNvbiJ9LFo9bmV3IFVSTFNlYXJjaFBhcmFtcyh7Z3JhbnRfdHlwZToiYXV0aG9yaXphdGlvbl9jb2RlIixjb2RlOkx9KSxYPW5ldyBVUkxTZWFy'@; put 'Y2hQYXJhbXMoWik7cmV0dXJuIHlpZWxkIFIucG9zdChCLFgsdm9pZCAwLCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLFcpLnRoZW4ocT0+cS5yZXN1bHQpLmNhdGNoKHE9Pnt0aHJvdyBxIGluc3RhbmNlb2Ygdy5DZXJ0aWZpY2F0ZUVycm9yP3E6KDAsTi5wcmVmaXhNZXNz'@; put 'YWdlKShxLCgwLEYuZ2V0VG9rZW5SZXF1ZXN0RXJyb3JQcmVmaXgpKCJmZXRjaGluZyBhY2Nlc3MgdG9rZW4iLCJnZXRBY2Nlc3NUb2tlbkZvclZpeWEiLHAuU2VydmVyVHlwZS5TYXNWaXlhLEIsWixXLGosUCkpfSl9KX19LDkwMTc6KGNlLEosYik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRl'@; put 'ZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEouZ2V0VG9rZW5SZXF1ZXN0RXJyb3JQcmVmaXhSZXNwb25zZT1KLmdldFRva2VuUmVxdWVzdEVycm9yUHJlZml4PXZvaWQgMDtjb25zdCBEPWIoMzkwMCkscD1GPT5gUmVzcG9uc2UgZnJvbSAkeyhGPT5GPT09RC5TZXJ2'@; put 'ZXJUeXBlLlNhc1ZpeWE/IlZpeWEiOiJTYXNqcyIpKEYpfSBpcyBiZWxvdy5gO0ouZ2V0VG9rZW5SZXF1ZXN0RXJyb3JQcmVmaXg9KEYsSCxSLGosUCxMLFksQik9Pntjb25zdCBXPVg9PkpTT04uc3RyaW5naWZ5KFgsbnVsbCwyKSxaPVtgRXJyb3Igd2hpbGUgJHtGfSBmcm9tICR7an1gLGBU'@; put 'aHJvd24gYnkgdGhlIEBzYXNqcy9hZGFwdGVyICR7SH0gZnVuY3Rpb24uYF07cmV0dXJuIFAmJihaLnB1c2goIlBheWxvYWQ6IiksWi5wdXNoKFcoUCkpKSxMJiYoWi5wdXNoKCJIZWFkZXJzOiIpLFoucHVzaChXKEwpKSksWSYmWi5wdXNoKGBDbGllbnRJZDogJHtZfWApLEImJloucHVzaChg'@; put 'Q2xpZW50U2VjcmV0OiAke0J9YCksWi5wdXNoKCIiKSxaLnB1c2goYCR7cChSKX1gKSxaLnB1c2goIiIpLFouam9pbigiXG4iKX0sSi5nZXRUb2tlblJlcXVlc3RFcnJvclByZWZpeFJlc3BvbnNlPShGLEgpPT5GLnNwbGl0KGAke3AoSCl9XG5gKS5wb3AoKX0sNzA0OmZ1bmN0aW9uKGNlLEos'@; put 'Yil7InVzZSBzdHJpY3QiO3ZhciBEPWIoNDE1NSksXz1iKDUxMDgpLHA9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKGosUCxMLFkpe3JldHVybiBuZXcoTHx8KEw9UHJvbWlzZSkpKGZ1bmN0aW9uKFcsWil7ZnVuY3Rpb24gWCh0ZSl7dHJ5e3EoWS5uZXh0KHRlKSl9Y2F0Y2goaWUp'@; put 'e1ooaWUpfX1mdW5jdGlvbiBRKHRlKXt0cnl7cShZLnRocm93KHRlKSl9Y2F0Y2goaWUpe1ooaWUpfX1mdW5jdGlvbiBxKHRlKXt0ZS5kb25lP1codGUudmFsdWUpOmZ1bmN0aW9uIEIoVyl7cmV0dXJuIFcgaW5zdGFuY2VvZiBMP1c6bmV3IEwoZnVuY3Rpb24oWil7WihXKX0pfSh0ZS52YWx1'@; put 'ZSkudGhlbihYLFEpfXEoKFk9WS5hcHBseShqLFB8fFtdKSkubmV4dCgpKX0pfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5nZXRUb2tlbnM9dm9pZCAwO2NvbnN0IE49Yig2Nzk5KSx3PWIoMzkwMCksRj1iKDM2NiksSD1iKDI0OSk7Si5nZXRU'@; put 'b2tlbnM9ZnVuY3Rpb24gUihqLFAsTD13LlNlcnZlclR5cGUuU2FzVml5YSl7cmV0dXJuIHAodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IFk9RC5sb2dnZXJ8fF87bGV0e2FjY2Vzc190b2tlbjpCLHJlZnJlc2hfdG9rZW46VyxjbGllbnQ6WixzZWNyZXQ6WH09UDtpZigo'@; put 'MCxOLmlzQWNjZXNzVG9rZW5FeHBpcmluZykoQil8fCgwLE4uaXNSZWZyZXNoVG9rZW5FeHBpcmluZykoVykpe2lmKCgwLE4uaGFzVG9rZW5FeHBpcmVkKShXKSl7Y29uc3QgcT0iVW5hYmxlIHRvIG9idGFpbiBuZXcgYWNjZXNzIHRva2VuLiBZb3VyIHJlZnJlc2ggdG9rZW4gaGFzIGV4cGly'@; put 'ZWQuIjt0aHJvdyBZLmVycm9yKHEpLG5ldyBFcnJvcihxKX1ZLmluZm8oIlJlZnJlc2hpbmcgYWNjZXNzIGFuZCByZWZyZXNoIHRva2Vucy4iKSwoe2FjY2Vzc190b2tlbjpCLHJlZnJlc2hfdG9rZW46V309TD09PXcuU2VydmVyVHlwZS5TYXNWaXlhP3lpZWxkKDAsRi5yZWZyZXNoVG9rZW5z'@; put 'Rm9yVml5YSkoaixaLFgsVyk6eWllbGQoMCxILnJlZnJlc2hUb2tlbnNGb3JTYXNqcykoaixXKSl9cmV0dXJue2FjY2Vzc190b2tlbjpCLHJlZnJlc2hfdG9rZW46VyxjbGllbnQ6WixzZWNyZXQ6WH19KX19LDE1Mjc6ZnVuY3Rpb24oY2UsSixiKXsidXNlIHN0cmljdCI7dmFyIEQ9dGhpcyYm'@; put 'dGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKHAsTix3LEYpe3ZvaWQgMD09PUYmJihGPXcpO3ZhciBIPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTix3KTsoIUh8fCgiZ2V0ImluIEg/IU4uX19lc01vZHVsZTpILndyaXRhYmxlfHxILmNvbmZp'@; put 'Z3VyYWJsZSkpJiYoSD17ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTlt3XX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkocCxGLEgpfTpmdW5jdGlvbihwLE4sdyxGKXt2b2lkIDA9PT1GJiYoRj13KSxwW0ZdPU5bd119KSxfPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxm'@; put 'dW5jdGlvbihwLE4pe2Zvcih2YXIgdyBpbiBwKSJkZWZhdWx0IiE9PXcmJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTix3KSYmRChOLHAsdyl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxfKGIoMjg1MSksSiksXyhiKDkw'@; put 'OTcpLEopLF8oYig5MTY2KSxKKSxfKGIoNjY0MyksSil9LDkwOTc6KGNlLEopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLmlzQXV0aG9yaXplRm9ybVJlcXVpcmVkPXZvaWQgMCxKLmlzQXV0aG9yaXplRm9ybVJlcXVp'@; put 'cmVkPUQ9Pi88Zm9ybS4rYWN0aW9uPSIoLipMb2dvblwvb2F1dGhcL2F1dGhvcml6ZVteIl0qKS4qPi9nbS50ZXN0KEQpfSw5MTY2OihjZSxKKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5pc0xvZ0luUmVxdWlyZWQ9'@; put 'dm9pZCAwLEouaXNMb2dJblJlcXVpcmVkPUQ9Pi88Zm9ybS4rYWN0aW9uPSIoLiooTG9nb24pfChsb2dpbilbXiJdKikuKj4vZ20udGVzdChEKX0sNjY0MzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5p'@; put 'c0xvZ0luU3VjY2Vzc0hlYWRlclByZXNlbnQ9Si5nZXRFeHBlY3RlZExvZ0luU3VjY2Vzc0hlYWRlcj1KLmxvZ2luU3VjY2Vzc0hlYWRlcnM9Si5kZWZhdWx0U3VjY2Vzc0hlYWRlcktleT12b2lkIDA7Y29uc3QgRD1iKDM5MDApLF89Yig1OTI4KSxwPSJZb3UgaGF2ZSBzaWduZWQgaW4uIjtK'@; put 'LmRlZmF1bHRTdWNjZXNzSGVhZGVyS2V5PSJkZWZhdWx0IixKLmxvZ2luU3VjY2Vzc0hlYWRlcnM9e2VzOiJZYSBzZSBoYSBpbmljaWFkbyBsYSBzZXNpXHhmM24uIix0aDoiXHUwZTA0XHUwZTM4XHUwZTEzXHUwZTI1XHUwZTA3XHUwZTBhXHUwZTM3XHUwZTQ4XHUwZTJkXHUwZTQwXHUwZTAy'@; put 'XHUwZTQ5XHUwZTMyXHUwZTQzXHUwZTBhXHUwZTQ5XHUwZTQxXHUwZTI1XHUwZTQ5XHUwZTI3IixqYToiXHUzMGI1XHUzMGE0XHUzMGYzXHUzMGE0XHUzMGYzXHUzMDU3XHUzMDdlXHUzMDU3XHUzMDVmXHUzMDAyIixuYjoiRHUgaGFyIGxvZ2dldCBkZWcgcFx4ZTUuIixzbDoiUHJpamF2aWxp'@; put 'IHN0ZSBzZS4iLGFyOiJcdTA2NDRcdTA2NDJcdTA2MmYgXHUwNjQyXHUwNjQ1XHUwNjJhICIsc2s6IlByaWhsXHhlMXNpbGkgc3RlIHNhLiIsemhfSEs6Ilx1NjBhOFx1NWRmMlx1NzY3Ylx1NTE2NVx1MzAwMiIsemhfQ046Ilx1NjBhOFx1NWRmMlx1NzY3Ylx1NWY1NVx1MzAwMiIsaXQ6Ikwn'@; put 'dXRlbnRlIHNpIFx4ZTggY29ubmVzc28uIixzdjoiRHUgaGFyIGxvZ2dhdCBpbi4iLGhlOiJcdTA1ZTBcdTA1ZGJcdTA1ZTBcdTA1ZTFcdTA1ZWEgIixubDoiVSBoZWJ0IHppY2ggYWFuZ2VtZWxkLiIscGw6Ilpvc3RhXHUwMTQyZVx1MDE1YiB6YWxvZ293YW55LiIsa286Ilx1Yjg1Y1x1YWRm'@; put 'OFx1Yzc3OFx1ZDU4OFx1YzJiNVx1YjJjOFx1YjJlNC4iLHpoX1RXOiJcdTYwYThcdTVkZjJcdTc2N2JcdTUxNjVcdTMwMDIiLHRyOiJPdHVydW0gYVx4ZTd0XHUwMTMxblx1MDEzMXouIixpdzoiXHUwNWUwXHUwNWRiXHUwNWUwXHUwNWUxXHUwNWVhICIsZnI6IlZvdXMgXHhlYXRlcyBjb25u'@; put 'ZWN0XHhlOS4iLHVrOiJcdTA0MTJcdTA0MzggXHUwNDMyXHUwNDMyXHUwNDU2XHUwNDM5XHUwNDQ4XHUwNDNiXHUwNDM4IFx1MDQzMiBcdTA0M2VcdTA0MzFcdTA0M2JcdTA0NTZcdTA0M2FcdTA0M2VcdTA0MzJcdTA0MzhcdTA0MzkgXHUwNDM3XHUwNDMwXHUwNDNmXHUwNDM4XHUwNDQxLiIs'@; put 'cHRfQlI6IlZvY1x4ZWEgc2UgY29uZWN0b3UuIixubzoiRHUgaGFyIGxvZ2dldCBkZWcgcFx4ZTUuIixjczoiSnN0ZSBwXHUwMTU5aWhsXHhlMVx1MDE2MWVuaS4iLGZpOiJPbGV0IGtpcmphdXR1bnV0IHNpc1x4ZTRceGU0bi4iLHJ1OiJcdTA0MTJcdTA0NGIgXHUwNDMyXHUwNDRiXHUwNDNm'@; put 'XHUwNDNlXHUwNDNiXHUwNDNkXHUwNDM4XHUwNDNiXHUwNDM4IFx1MDQzMlx1MDQ0NVx1MDQzZVx1MDQzNCBcdTA0MzIgXHUwNDQxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNjXHUwNDQzLiIsZWw6Ilx1MDM4OFx1MDNjN1x1MDNiNVx1MDNjNFx1MDNiNSBcdTAzYzNcdTAzYzVcdTAz'@; put 'YmRcdTAzYjRcdTAzYjVcdTAzYjhcdTAzYjVcdTAzYWYuIixocjoiUHJpamF2aWxpIHN0ZSBzZS4iLGRhOiJEdSBlciBsb2dnZXQgcFx4ZTUuIixkZToiU2llIHNpbmQgamV0enQgYW5nZW1lbGRldC4iLHNoOiJQcmlqYXZsamVuaSBzdGUuIixwdDoiSW5pY2lvdSBzZXNzXHhlM28uIixodToi'@; put 'QmVqZWxlbnRrZXpldHQuIixzcjoiUHJpamF2bGplbmkgc3RlLiIsZW46cCxbSi5kZWZhdWx0U3VjY2Vzc0hlYWRlcktleV06cH0sSi5nZXRFeHBlY3RlZExvZ0luU3VjY2Vzc0hlYWRlcj0oKT0+e2xldCBGPUoubG9naW5TdWNjZXNzSGVhZGVyc1tKLmRlZmF1bHRTdWNjZXNzSGVhZGVyS2V5'@; put 'XTtjb25zdCBIPSgwLF8uZ2V0VXNlckxhbmd1YWdlKSgpO2lmKEgpe2xldCBSPUoubG9naW5TdWNjZXNzSGVhZGVyc1tIXTtpZihSKUY9UjtlbHNle2NvbnN0IFA9T2JqZWN0LmtleXMoSi5sb2dpblN1Y2Nlc3NIZWFkZXJzKS5maW5kKEw9Pm5ldyBSZWdFeHAoTCwiaSIpLnRlc3QoSCkpO1Am'@; put 'JihGPUoubG9naW5TdWNjZXNzSGVhZGVyc1tQXSl9fXJldHVybiBGfSxKLmlzTG9nSW5TdWNjZXNzSGVhZGVyUHJlc2VudD0oRixIKT0+Rj09PUQuU2VydmVyVHlwZS5TYXNqcz9IPy5sb2dnZWRJbjpuZXcgUmVnRXhwKCgwLEouZ2V0RXhwZWN0ZWRMb2dJblN1Y2Nlc3NIZWFkZXIpKCksImdt'@; put 'IikudGVzdChIKX0sNTQxODpmdW5jdGlvbihjZSxKLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgRD10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24odyxGLEgsUil7cmV0dXJuIG5ldyhIfHwoSD1Qcm9taXNlKSkoZnVuY3Rpb24oUCxMKXtmdW5jdGlvbiBZKFope3RyeXtXKFIubmV4dChaKSl9'@; put 'Y2F0Y2goWCl7TChYKX19ZnVuY3Rpb24gQihaKXt0cnl7VyhSLnRocm93KFopKX1jYXRjaChYKXtMKFgpfX1mdW5jdGlvbiBXKFope1ouZG9uZT9QKFoudmFsdWUpOmZ1bmN0aW9uIGooUCl7cmV0dXJuIFAgaW5zdGFuY2VvZiBIP1A6bmV3IEgoZnVuY3Rpb24oTCl7TChQKX0pfShaLnZhbHVl'@; put 'KS50aGVuKFksQil9VygoUj1SLmFwcGx5KHcsRnx8W10pKS5uZXh0KCkpfSl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLm9wZW5XZWJQYWdlPXZvaWQgMDtjb25zdCBfPWIoMTIxMCkscD17d2lkdGg6NTAwLGhlaWdodDo2MDB9O0oub3Blbldl'@; put 'YlBhZ2U9ZnVuY3Rpb24gTih3LEY9IiIsSD1wLFIpe3JldHVybiBEKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdHt3aWR0aDpqLGhlaWdodDpQfT1ILEw9c2NyZWVuLndpZHRoLzItai8yLFk9c2NyZWVuLmhlaWdodC8yLVAvMjtyZXR1cm4gd2luZG93Lm9wZW4odyxGLGB0'@; put 'b29sYmFyPTAsbG9jYXRpb249MCxtZW51YmFyPTAsd2lkdGg9JHtqfSxoZWlnaHQ9JHtQfSxsZWZ0PSR7TH0sdG9wPSR7WX1gKXx8KCh5aWVsZChSPz9fLm9wZW5Mb2dpblByb21wdCkoKSk/d2luZG93Lm9wZW4odyxGLGB0b29sYmFyPTAsbG9jYXRpb249MCxtZW51YmFyPTAsd2lkdGg9JHtq'@; put 'fSxoZWlnaHQ9JHtQfSxsZWZ0PSR7TH0sdG9wPSR7WX1gKTpudWxsKX0pfX0sMjQ5OmZ1bmN0aW9uKGNlLEosYil7InVzZSBzdHJpY3QiO3ZhciBEPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihGLEgsUixqKXtyZXR1cm4gbmV3KFJ8fChSPVByb21pc2UpKShmdW5jdGlvbihMLFkp'@; put 'e2Z1bmN0aW9uIEIoWCl7dHJ5e1ooai5uZXh0KFgpKX1jYXRjaChRKXtZKFEpfX1mdW5jdGlvbiBXKFgpe3RyeXtaKGoudGhyb3coWCkpfWNhdGNoKFEpe1koUSl9fWZ1bmN0aW9uIFooWCl7WC5kb25lP0woWC52YWx1ZSk6ZnVuY3Rpb24gUChMKXtyZXR1cm4gTCBpbnN0YW5jZW9mIFI/TDpu'@; put 'ZXcgUihmdW5jdGlvbihZKXtZKEwpfSl9KFgudmFsdWUpLnRoZW4oQixXKX1aKChqPWouYXBwbHkoRixIfHxbXSkpLm5leHQoKSl9KX07T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEoucmVmcmVzaFRva2Vuc0ZvclNhc2pzPXZvaWQgMDtjb25zdCBf'@; put 'PWIoOTc3OCkscD1iKDkwMTcpLE49YigzOTAwKTtKLnJlZnJlc2hUb2tlbnNGb3JTYXNqcz1mdW5jdGlvbiB3KEYsSCl7cmV0dXJuIEQodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IFI9Ii9TQVNqc0FwaS9hdXRoL3JlZnJlc2giLGo9e0F1dGhvcml6YXRpb246IkJlYXJl'@; put 'ciAiK0h9O3JldHVybiB5aWVsZCBGLnBvc3QoUix2b2lkIDAsdm9pZCAwLHZvaWQgMCxqKS50aGVuKEw9Pntjb25zdCBZPUwucmVzdWx0O3JldHVybnthY2Nlc3NfdG9rZW46WS5hY2Nlc3NUb2tlbixyZWZyZXNoX3Rva2VuOlkucmVmcmVzaFRva2VufX0pLmNhdGNoKEw9Pnt0aHJvdygwLF8u'@; put 'cHJlZml4TWVzc2FnZSkoTCwoMCxwLmdldFRva2VuUmVxdWVzdEVycm9yUHJlZml4KSgicmVmcmVzaGluZyB0b2tlbnMiLCJyZWZyZXNoVG9rZW5zRm9yU2FzanMiLE4uU2VydmVyVHlwZS5TYXNqcyxSKSl9KX0pfX0sMzY2OmZ1bmN0aW9uKGNlLEosYil7InVzZSBzdHJpY3QiO3ZhciBEPWIo'@; put 'ODc2NCkuQnVmZmVyLF89dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKFAsTCxZLEIpe3JldHVybiBuZXcoWXx8KFk9UHJvbWlzZSkpKGZ1bmN0aW9uKFosWCl7ZnVuY3Rpb24gUShpZSl7dHJ5e3RlKEIubmV4dChpZSkpfWNhdGNoKHNlKXtYKHNlKX19ZnVuY3Rpb24gcShpZSl7dHJ5'@; put 'e3RlKEIudGhyb3coaWUpKX1jYXRjaChzZSl7WChzZSl9fWZ1bmN0aW9uIHRlKGllKXtpZS5kb25lP1ooaWUudmFsdWUpOmZ1bmN0aW9uIFcoWil7cmV0dXJuIFogaW5zdGFuY2VvZiBZP1o6bmV3IFkoZnVuY3Rpb24oWCl7WChaKX0pfShpZS52YWx1ZSkudGhlbihRLHEpfXRlKChCPUIuYXBw'@; put 'bHkoUCxMfHxbXSkpLm5leHQoKSl9KX0scD10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oUCl7cmV0dXJuIFAmJlAuX19lc01vZHVsZT9QOntkZWZhdWx0OlB9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5yZWZyZXNoVG9r'@; put 'ZW5zRm9yVml5YT12b2lkIDA7Y29uc3QgTj1iKDM5MDApLHc9Yig5Nzc4KSxGPXAoYig2MjMwKSksSD1iKDU5MjgpLFI9Yig5MDE3KTtKLnJlZnJlc2hUb2tlbnNGb3JWaXlhPWZ1bmN0aW9uIGooUCxMLFksQil7cmV0dXJuIF8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2lmKCEo'@; put 'MCxILmlzTm9kZSkoKSl0aHJvdyBuZXcgRXJyb3IoIk1ldGhvZCAncmVmcmVzaFRva2Vuc0ZvclZpeWEnIGNhbiBvbmx5IGJlIHVzZWQgYnkgTm9kZS4iKTtjb25zdCBXPSIvU0FTTG9nb24vb2F1dGgvdG9rZW4iLFg9e0F1dGhvcml6YXRpb246IkJhc2ljICIrKHR5cGVvZiBEPiJ1Ij9idG9h'@; put 'KEwrIjoiK1kpOkQuZnJvbShMKyI6IitZKS50b1N0cmluZygiYmFzZTY0IikpfSxRPW5ldyBGLmRlZmF1bHQ7cmV0dXJuIFEuYXBwZW5kKCJncmFudF90eXBlIiwicmVmcmVzaF90b2tlbiIpLFEuYXBwZW5kKCJyZWZyZXNoX3Rva2VuIixCKSx5aWVsZCBQLnBvc3QoVyxRLHZvaWQgMCwibXVs'@; put 'dGlwYXJ0L2Zvcm0tZGF0YTsgYm91bmRhcnk9IitRLl9ib3VuZGFyeSxYKS50aGVuKHRlPT50ZS5yZXN1bHQpLmNhdGNoKHRlPT57dGhyb3coMCx3LnByZWZpeE1lc3NhZ2UpKHRlLCgwLFIuZ2V0VG9rZW5SZXF1ZXN0RXJyb3JQcmVmaXgpKCJyZWZyZXNoaW5nIHRva2VucyIsInJlZnJlc2hU'@; put 'b2tlbnNGb3JWaXlhIixOLlNlcnZlclR5cGUuU2FzVml5YSxXLFEsWCxMLFkpKX0pfSl9fSw0NTgyOmZ1bmN0aW9uKGNlLEosYil7InVzZSBzdHJpY3QiO3ZhciBEPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbih3LEYsSCxSKXtyZXR1cm4gbmV3KEh8fChIPVByb21pc2UpKShmdW5j'@; put 'dGlvbihQLEwpe2Z1bmN0aW9uIFkoWil7dHJ5e1coUi5uZXh0KFopKX1jYXRjaChYKXtMKFgpfX1mdW5jdGlvbiBCKFope3RyeXtXKFIudGhyb3coWikpfWNhdGNoKFgpe0woWCl9fWZ1bmN0aW9uIFcoWil7Wi5kb25lP1AoWi52YWx1ZSk6ZnVuY3Rpb24gaihQKXtyZXR1cm4gUCBpbnN0YW5j'@; put 'ZW9mIEg/UDpuZXcgSChmdW5jdGlvbihMKXtMKFApfSl9KFoudmFsdWUpLnRoZW4oWSxCKX1XKChSPVIuYXBwbHkodyxGfHxbXSkpLm5leHQoKSl9KX07T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEoudmVyaWZ5U2FzOUxvZ2luPXZvaWQgMDtjb25z'@; put 'dCBfPWIoNTkyOCkscD1iKDE1MjcpO0oudmVyaWZ5U2FzOUxvZ2luPWZ1bmN0aW9uIE4odyl7cmV0dXJuIEQodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2xldCBGPSExLEg9bmV3IERhdGUsUj0wO2Rve2lmKHlpZWxkKDAsXy5kZWxheSkoMWUzKSx3LmNsb3NlZClicmVhaztGPXcu'@; put 'd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoIlNBU0xvZ29uIikmJncud2luZG93LmRvY3VtZW50LmJvZHkuaW5uZXJUZXh0LmluY2x1ZGVzKCgwLHAuZ2V0RXhwZWN0ZWRMb2dJblN1Y2Nlc3NIZWFkZXIpKCkpLFI9KChuZXcgRGF0ZSkudmFsdWVPZigpLUgudmFsdWVPZigpKS8xZTN9'@; put 'd2hpbGUoIUYmJlI8MzAwKTtyZXR1cm57aXNMb2dnZWRJbjpGfX0pfX0sNjU0NzpmdW5jdGlvbihjZSxKLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgRD10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oRixILFIsail7cmV0dXJuIG5ldyhSfHwoUj1Qcm9taXNlKSkoZnVuY3Rpb24oTCxZKXtm'@; put 'dW5jdGlvbiBCKFgpe3RyeXtaKGoubmV4dChYKSl9Y2F0Y2goUSl7WShRKX19ZnVuY3Rpb24gVyhYKXt0cnl7WihqLnRocm93KFgpKX1jYXRjaChRKXtZKFEpfX1mdW5jdGlvbiBaKFgpe1guZG9uZT9MKFgudmFsdWUpOmZ1bmN0aW9uIFAoTCl7cmV0dXJuIEwgaW5zdGFuY2VvZiBSP0w6bmV3'@; put 'IFIoZnVuY3Rpb24oWSl7WShMKX0pfShYLnZhbHVlKS50aGVuKEIsVyl9Wigoaj1qLmFwcGx5KEYsSHx8W10pKS5uZXh0KCkpfSl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLmlzTG9nZ2VkSW5TQVNWSVlBPUoudmVyaWZ5U2FzVml5YUxvZ2lu'@; put 'PXZvaWQgMDtjb25zdCBfPWIoNTkyOCkscD1iKDE1MjcpO0oudmVyaWZ5U2FzVml5YUxvZ2luPWZ1bmN0aW9uIE4oRil7dmFyIEgsUjtyZXR1cm4gRCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0IGo9ITEsUD1uZXcgRGF0ZSxMPTA7ZG97aWYoeWllbGQoMCxfLmRlbGF5KSgx'@; put 'ZTMpLEYuY2xvc2VkKWJyZWFrO2o9KDAsSi5pc0xvZ2dlZEluU0FTVklZQSkoKSxMPSgobmV3IERhdGUpLnZhbHVlT2YoKS1QLnZhbHVlT2YoKSkvMWUzfXdoaWxlKCFqJiZMPDMwMCk7bGV0IFk9ITE7UD1uZXcgRGF0ZTtkb3tpZih5aWVsZCgwLF8uZGVsYXkpKDFlMyksRi5jbG9zZWQpYnJl'@; put 'YWs7WT1GLndpbmRvdy5sb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCJTQVNMb2dvbiIpfHwobnVsbD09PShSPW51bGw9PT0oSD1GLndpbmRvdy5kb2N1bWVudC5ib2R5KXx8dm9pZCAwPT09SD92b2lkIDA6SC5pbm5lclRleHQpfHx2b2lkIDA9PT1SP3ZvaWQgMDpSLmluY2x1ZGVzKCgwLHAuZ2V0'@; put 'RXhwZWN0ZWRMb2dJblN1Y2Nlc3NIZWFkZXIpKCkpKSxMPSgobmV3IERhdGUpLnZhbHVlT2YoKS1QLnZhbHVlT2YoKSkvMWUzfXdoaWxlKCFZJiZMPDMwMCk7cmV0dXJue2lzTG9nZ2VkSW46aiYmWX19KX0sSi5pc0xvZ2dlZEluU0FTVklZQT0oKT0+ZG9jdW1lbnQuY29va2llLmluY2x1ZGVz'@; put 'KCJDdXJyZW50LVVzZXIiKSYmZG9jdW1lbnQuY29va2llLmluY2x1ZGVzKCJ1c2VySWQiKX0sNDAzNzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5nZW5lcmF0ZUZpbGVVcGxvYWRGb3JtPXZvaWQgMDtj'@; put 'b25zdCBEPWIoMjQwMiksXz1iKDU5MjgpO0ouZ2VuZXJhdGVGaWxlVXBsb2FkRm9ybT0oTix3KT0+e2Zvcihjb25zdCBGIGluIHcpe2lmKCFBcnJheS5pc0FycmF5KHdbRl0pKWNvbnRpbnVlO2NvbnN0IEg9RixSPSgwLEQuY29udmVydFRvQ1NWKSh3LEYpO2lmKCJFUlJPUjogTEFSR0UgU1RS'@; put 'SU5HIExFTkdUSCI9PT1SKXRocm93IG5ldyBFcnJvcigiVGhlIG1heCBsZW5ndGggb2YgYSBzdHJpbmcgdmFsdWUgaW4gU0FTanMgaXMgMzI3NjUgY2hhcmFjdGVycy4iKTtpZigoMCxfLmlzTm9kZSkoKSlOLmFwcGVuZChILFIse2ZpbGVuYW1lOmAke0h9LmNzdmAsY29udGVudFR5cGU6ImFw'@; put 'cGxpY2F0aW9uL2NzdiJ9KTtlbHNle2NvbnN0IGo9bmV3IEJsb2IoW1JdLHt0eXBlOiJhcHBsaWNhdGlvbi9jc3YifSk7Ti5hcHBlbmQoSCxqLGAke0h9LmNzdmApfX1yZXR1cm4gTn19LDIxNzA6KGNlLEosYik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNN'@; put 'b2R1bGUiLHt2YWx1ZTohMH0pLEouZ2VuZXJhdGVUYWJsZVVwbG9hZEZvcm09dm9pZCAwO2NvbnN0IEQ9YigyNDAyKSxfPWIoNDc5OSk7Si5nZW5lcmF0ZVRhYmxlVXBsb2FkRm9ybT0oTix3KT0+e2NvbnN0IEY9W10sSD17fTtsZXQgUj0wO2Zvcihjb25zdCBqIGluIHcpe1IrKywoMCxELmlz'@; put 'Rm9ybWF0c1RhYmxlKShqKXx8Ri5wdXNoKGopO2NvbnN0IFA9KDAsRC5jb252ZXJ0VG9DU1YpKHcsaik7aWYoIkVSUk9SOiBMQVJHRSBTVFJJTkcgTEVOR1RIIj09PVApdGhyb3cgbmV3IEVycm9yKCJUaGUgbWF4IGxlbmd0aCBvZiBhIHN0cmluZyB2YWx1ZSBpbiBTQVNqcyBpcyAzMjc2NSBj'@; put 'aGFyYWN0ZXJzLiIpO1AubGVuZ3RoPjE2ZTM/KDAsXy5zcGxpdENodW5rcykoUCkubWFwKFk9PntOLmFwcGVuZChgc2FzanMke1J9ZGF0YWAsWSl9KTpIW2BzYXNqcyR7Un1kYXRhYF09UH1yZXR1cm4gSC5zYXNqc190YWJsZXM9Ri5qb2luKCIgIikse2Zvcm1EYXRhOk4scmVxdWVzdFBhcmFt'@; put 'czpIfX19LDM2MDc6ZnVuY3Rpb24oY2UsSixiKXsidXNlIHN0cmljdCI7dmFyIEQ9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKHcsRixILFIpe3ZvaWQgMD09PVImJihSPUgpO3ZhciBqPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io'@; put 'RixIKTsoIWp8fCgiZ2V0ImluIGo/IUYuX19lc01vZHVsZTpqLndyaXRhYmxlfHxqLmNvbmZpZ3VyYWJsZSkpJiYoaj17ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRltIXX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodyxSLGopfTpmdW5jdGlvbih3LEYsSCxSKXt2b2lk'@; put 'IDA9PT1SJiYoUj1IKSx3W1JdPUZbSF19KSxfPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbih3LEYpe2Zvcih2YXIgSCBpbiB3KSJkZWZhdWx0IiE9PUgmJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoRixIKSYmRChGLHcsSCl9LHA9dGhpcyYmdGhpcy5f'@; put 'X2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKHcpe3JldHVybiB3JiZ3Ll9fZXNNb2R1bGU/dzp7ZGVmYXVsdDp3fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2NvbnN0IE49cChiKDU5NTYpKTtfKGIoMTIzMCksSiksXyhiKDEzOTUpLEopLF8oYig5'@; put 'ODIxKSxKKSxfKGIoODMwNiksSiksXyhiKDM0NjcpLEopLF8oYigzNjAyKSxKKSxKLmRlZmF1bHQ9Ti5kZWZhdWx0fSwxNTcwOmZ1bmN0aW9uKGNlLEosYil7InVzZSBzdHJpY3QiO3ZhciBEPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihGLEgsUixqKXtyZXR1cm4gbmV3KFJ8fChS'@; put 'PVByb21pc2UpKShmdW5jdGlvbihMLFkpe2Z1bmN0aW9uIEIoWCl7dHJ5e1ooai5uZXh0KFgpKX1jYXRjaChRKXtZKFEpfX1mdW5jdGlvbiBXKFgpe3RyeXtaKGoudGhyb3coWCkpfWNhdGNoKFEpe1koUSl9fWZ1bmN0aW9uIFooWCl7WC5kb25lP0woWC52YWx1ZSk6ZnVuY3Rpb24gUChMKXty'@; put 'ZXR1cm4gTCBpbnN0YW5jZW9mIFI/TDpuZXcgUihmdW5jdGlvbihZKXtZKEwpfSl9KFgudmFsdWUpLnRoZW4oQixXKX1aKChqPWouYXBwbHkoRixIfHxbXSkpLm5leHQoKSl9KX07T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEouQ29tcHV0ZUpvYkV4'@; put 'ZWN1dG9yPXZvaWQgMDtjb25zdCBfPWIoMzkwMCkscD1iKDEzOTUpLE49Yig2MTE4KTtKLkNvbXB1dGVKb2JFeGVjdXRvcj1jbGFzcyB3IGV4dGVuZHMgTi5CYXNlSm9iRXhlY3V0b3J7Y29uc3RydWN0b3IoSCxSKXtzdXBlcihILF8uU2VydmVyVHlwZS5TYXNWaXlhKSx0aGlzLnNhc1ZpeWFB'@; put 'cGlDbGllbnQ9Un1leGVjdXRlKEgsUixqLFAsTCl7cmV0dXJuIEQodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IFk9UHx8KCgpPT5Qcm9taXNlLnJlc29sdmUoKSk7cmV0dXJuIG5ldyBQcm9taXNlKChYLFEpPT57dmFyIHE7bnVsbD09PShxPXRoaXMuc2FzVml5YUFwaUNs'@; put 'aWVudCl8fHZvaWQgMD09PXF8fHEuZXhlY3V0ZUNvbXB1dGVKb2IoSCxqLmNvbnRleHROYW1lLGouZGVidWcsUixMLCEwLCEwKS50aGVuKHRlPT57dGhpcy5zYXNWaXlhQXBpQ2xpZW50LmFwcGVuZFJlcXVlc3QodGUsSCxqLmRlYnVnKSxYKHRlLnJlc3VsdCl9KS5jYXRjaCh0ZT0+RCh0aGlz'@; put 'LHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGUgaW5zdGFuY2VvZiBwLkNvbXB1dGVKb2JFeGVjdXRpb25FcnJvciYmKHRoaXMuc2FzVml5YUFwaUNsaWVudC5hcHBlbmRSZXF1ZXN0KHRlLEgsai5kZWJ1ZyksUShuZXcgcC5FcnJvclJlc3BvbnNlKHRlPy5tZXNzYWdlLHRlKSkpLHRlIGlu'@; put 'c3RhbmNlb2YgcC5Mb2dpblJlcXVpcmVkRXJyb3I/KHRoaXMuYXBwZW5kV2FpdGluZ1JlcXVlc3QoKCk9PnRoaXMuZXhlY3V0ZShILFIsaixQKS50aGVuKGllPT57WChpZSl9LGllPT57UShpZSl9KSkseWllbGQgWSgpKTpRKG5ldyBwLkVycm9yUmVzcG9uc2UodGU/Lm1lc3NhZ2UsdGUpKX0p'@; put 'KX0pfSl9fX0sMzQ5MTpmdW5jdGlvbihjZSxKLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgRD10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oSCxSLGosUCl7cmV0dXJuIG5ldyhqfHwoaj1Qcm9taXNlKSkoZnVuY3Rpb24oWSxCKXtmdW5jdGlvbiBXKFEpe3RyeXtYKFAubmV4dChRKSl9Y2F0'@; put 'Y2gocSl7QihxKX19ZnVuY3Rpb24gWihRKXt0cnl7WChQLnRocm93KFEpKX1jYXRjaChxKXtCKHEpfX1mdW5jdGlvbiBYKFEpe1EuZG9uZT9ZKFEudmFsdWUpOmZ1bmN0aW9uIEwoWSl7cmV0dXJuIFkgaW5zdGFuY2VvZiBqP1k6bmV3IGooZnVuY3Rpb24oQil7QihZKX0pfShRLnZhbHVlKS50'@; put 'aGVuKFcsWil9WCgoUD1QLmFwcGx5KEgsUnx8W10pKS5uZXh0KCkpfSl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLkZpbGVVcGxvYWRlcj12b2lkIDA7Y29uc3QgXz1iKDU5MjgpLHA9YigxMzk1KSxOPWIoMzkwMCksdz1iKDYxMTgpO0ouRmls'@; put 'ZVVwbG9hZGVyPWNsYXNzIEYgZXh0ZW5kcyB3LkJhc2VKb2JFeGVjdXRvcntjb25zdHJ1Y3RvcihSLGosUCxMKXtzdXBlcihSLGopLHRoaXMuam9ic1BhdGg9UCx0aGlzLnJlcXVlc3RDbGllbnQ9TH1leGVjdXRlKFIsaixQLEwpe3JldHVybiBEKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlv'@; put 'biooKXtjb25zdHtmaWxlczpZLHBhcmFtczpCfT1qLFc9THx8KCgpPT5Qcm9taXNlLnJlc29sdmUoKSk7aWYoIVk/Lmxlbmd0aCl0aHJvdyBuZXcgcC5FcnJvclJlc3BvbnNlKCJBdCBsZWFzdCBvbmUgZmlsZSBtdXN0IGJlIHByb3ZpZGVkLiIpO2lmKCFSfHwiIj09PVIpdGhyb3cgbmV3IHAu'@; put 'RXJyb3JSZXNwb25zZSgic2FzSm9iIG11c3QgYmUgcHJvdmlkZWQuIik7bGV0IFo9IiI7Zm9yKGxldCBnZSBpbiBCKUIuaGFzT3duUHJvcGVydHkoZ2UpJiYoWis9YCYke2dlfT0ke0JbZ2VdfWApO2NvbnN0IFg9UC5hcHBMb2M/UC5hcHBMb2MucmVwbGFjZSgvXC8/JC8sIi8iKStSLnJlcGxh'@; put 'Y2UoL15cLy8sIiIpOlIsUT1gJHt0aGlzLmpvYnNQYXRofS8/JHsiX3Byb2dyYW09IitYfSR7Wn1gLHE9bmV3IEZvcm1EYXRhO2ZvcihsZXQgZ2Ugb2YgWSlxLmFwcGVuZCgiZmlsZSIsZ2UuZmlsZSxnZS5maWxlTmFtZSk7Y29uc3QgdGU9dGhpcy5yZXF1ZXN0Q2xpZW50LmdldENzcmZUb2tl'@; put 'bigiZmlsZSIpO3RlJiZxLmFwcGVuZCgiX2NzcmYiLHRlLnZhbHVlKSxQLmRlYnVnJiZxLmFwcGVuZCgiX2RlYnVnIiwiMTMxIiksUC5zZXJ2ZXJUeXBlPT09Ti5TZXJ2ZXJUeXBlLlNhc1ZpeWEmJlAuY29udGV4dE5hbWUmJnEuYXBwZW5kKCJfY29udGV4dG5hbWUiLFAuY29udGV4dE5hbWUp'@; put 'O2NvbnN0IGllPXsiY2FjaGUtY29udHJvbCI6Im5vLWNhY2hlIixBY2NlcHQ6IiovKiIsIkNvbnRlbnQtVHlwZSI6InRleHQvcGxhaW4ifTtyZXR1cm4gbmV3IFByb21pc2UoKGdlLF9lKT0+e3RoaXMucmVxdWVzdENsaWVudC5wb3N0KFEscSx2b2lkIDAsImFwcGxpY2F0aW9uL2pzb24iLGll'@; put 'KS50aGVuKFRlPT5EKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0aGlzLnJlcXVlc3RDbGllbnQuYXBwZW5kUmVxdWVzdChUZSxSLFAuZGVidWcpO2xldCBTZT1UZS5yZXN1bHQ7aWYoUC5kZWJ1Zylzd2l0Y2godGhpcy5zZXJ2ZXJUeXBlKXtjYXNlIE4uU2VydmVyVHlwZS5TYXNW'@; put 'aXlhOlNlPXlpZWxkKDAsXy5wYXJzZVNhc1ZpeWFEZWJ1Z1Jlc3BvbnNlKShUZS5yZXN1bHQsdGhpcy5yZXF1ZXN0Q2xpZW50LFAuc2VydmVyVXJsKTticmVhaztjYXNlIE4uU2VydmVyVHlwZS5TYXM5OlNlPSJzdHJpbmciPT10eXBlb2YgVGUucmVzdWx0PygwLF8ucGFyc2VXZWJvdXRSZXNw'@; put 'b25zZSkoVGUucmVzdWx0LFEpOlRlLnJlc3VsdDticmVhaztjYXNlIE4uU2VydmVyVHlwZS5TYXNqczpTZT0ic3RyaW5nIj09dHlwZW9mIFRlLnJlc3VsdD8oMCxfLmdldFZhbGlkSnNvbikoVGUucmVzdWx0KTpUZS5yZXN1bHR9ZWxzZSBTZT0ic3RyaW5nIj09dHlwZW9mIFRlLnJlc3VsdD8o'@; put 'MCxfLmdldFZhbGlkSnNvbikoVGUucmVzdWx0KTpUZS5yZXN1bHQ7Z2UoU2UpfSkpLmNhdGNoKFRlPT5EKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtUZSBpbnN0YW5jZW9mIHAuSm9iRXhlY3V0aW9uRXJyb3ImJih0aGlzLnJlcXVlc3RDbGllbnQuYXBwZW5kUmVxdWVzdChUZSxS'@; put 'LFAuZGVidWcpLF9lKG5ldyBwLkVycm9yUmVzcG9uc2UoVGU/Lm1lc3NhZ2UsVGUpKSksVGUgaW5zdGFuY2VvZiBwLkxvZ2luUmVxdWlyZWRFcnJvcj8odGhpcy5hcHBlbmRXYWl0aW5nUmVxdWVzdCgoKT0+dGhpcy5leGVjdXRlKFIsaixQLEwpLnRoZW4oU2U9PntnZShTZSl9LFNlPT57X2Uo'@; put 'U2UpfSkpLHlpZWxkIFcoKSk6X2UobmV3IHAuRXJyb3JSZXNwb25zZSgiRmlsZSB1cGxvYWQgcmVxdWVzdCBmYWlsZWQuIixUZSkpfSkpfSl9KX19fSw0NDQ2OmZ1bmN0aW9uKGNlLEosYil7InVzZSBzdHJpY3QiO3ZhciBEPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihILFIsaixQ'@; put 'KXtyZXR1cm4gbmV3KGp8fChqPVByb21pc2UpKShmdW5jdGlvbihZLEIpe2Z1bmN0aW9uIFcoUSl7dHJ5e1goUC5uZXh0KFEpKX1jYXRjaChxKXtCKHEpfX1mdW5jdGlvbiBaKFEpe3RyeXtYKFAudGhyb3coUSkpfWNhdGNoKHEpe0IocSl9fWZ1bmN0aW9uIFgoUSl7US5kb25lP1koUS52YWx1'@; put 'ZSk6ZnVuY3Rpb24gTChZKXtyZXR1cm4gWSBpbnN0YW5jZW9mIGo/WTpuZXcgaihmdW5jdGlvbihCKXtCKFkpfSl9KFEudmFsdWUpLnRoZW4oVyxaKX1YKChQPVAuYXBwbHkoSCxSfHxbXSkpLm5leHQoKSl9KX07T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZToh'@; put 'MH0pLEouSmVzSm9iRXhlY3V0b3I9dm9pZCAwO2NvbnN0IF89YigzOTAwKSxwPWIoMTM5NSksTj1iKDYxMTgpLHc9Yig1OTI4KTtKLkplc0pvYkV4ZWN1dG9yPWNsYXNzIEYgZXh0ZW5kcyBOLkJhc2VKb2JFeGVjdXRvcntjb25zdHJ1Y3RvcihSLGope3N1cGVyKFIsXy5TZXJ2ZXJUeXBlLlNh'@; put 'c1ZpeWEpLHRoaXMuc2FzVml5YUFwaUNsaWVudD1qfWV4ZWN1dGUoUixqLFAsTCxZLEI9W10pe3JldHVybiBEKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdCBXPUx8fCgoKT0+UHJvbWlzZS5yZXNvbHZlKCkpO3JldHVybiBuZXcgUHJvbWlzZSgoWCxRKT0+e3ZhciBxO251'@; put 'bGw9PT0ocT10aGlzLnNhc1ZpeWFBcGlDbGllbnQpfHx2b2lkIDA9PT1xfHxxLmV4ZWN1dGVKb2IoUixQLmNvbnRleHROYW1lLFAuZGVidWcsaixZKS50aGVuKHRlPT57dGhpcy5zYXNWaXlhQXBpQ2xpZW50LmFwcGVuZFJlcXVlc3QodGUsUixQLmRlYnVnKTtjb25zdCBpZT0oMCx3LmFwcGVu'@; put 'ZEV4dHJhUmVzcG9uc2VBdHRyaWJ1dGVzKSh0ZSxCKTtYKGllKX0pLmNhdGNoKHRlPT5EKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0ZSBpbnN0YW5jZW9mIHAuSm9iRXhlY3V0aW9uRXJyb3ImJih0aGlzLnNhc1ZpeWFBcGlDbGllbnQuYXBwZW5kUmVxdWVzdCh0ZSxSLFAuZGVi'@; put 'dWcpLFEobmV3IHAuRXJyb3JSZXNwb25zZSh0ZT8ubWVzc2FnZSx0ZSkpKSx0ZSBpbnN0YW5jZW9mIHAuTG9naW5SZXF1aXJlZEVycm9yPyh0aGlzLmFwcGVuZFdhaXRpbmdSZXF1ZXN0KCgpPT50aGlzLmV4ZWN1dGUoUixqLFAsTCxZLEIpLnRoZW4oaWU9PntYKGllKX0saWU9PntRKGllKX0p'@; put 'KSx5aWVsZCBXKCkpOlEobmV3IHAuRXJyb3JSZXNwb25zZSh0ZT8ubWVzc2FnZSx0ZSkpfSkpfSl9KX19fSw2MTE4OmZ1bmN0aW9uKGNlLEosYil7InVzZSBzdHJpY3QiO3ZhciBEPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihOLHcsRixIKXtyZXR1cm4gbmV3KEZ8fChGPVByb21p'@; put 'c2UpKShmdW5jdGlvbihqLFApe2Z1bmN0aW9uIEwoVyl7dHJ5e0IoSC5uZXh0KFcpKX1jYXRjaChaKXtQKFopfX1mdW5jdGlvbiBZKFcpe3RyeXtCKEgudGhyb3coVykpfWNhdGNoKFope1AoWil9fWZ1bmN0aW9uIEIoVyl7Vy5kb25lP2ooVy52YWx1ZSk6ZnVuY3Rpb24gUihqKXtyZXR1cm4g'@; put 'aiBpbnN0YW5jZW9mIEY/ajpuZXcgRihmdW5jdGlvbihQKXtQKGopfSl9KFcudmFsdWUpLnRoZW4oTCxZKX1CKChIPUguYXBwbHkoTix3fHxbXSkpLm5leHQoKSl9KX07T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEouQmFzZUpvYkV4ZWN1dG9yPXZv'@; put 'aWQgMDtjb25zdCBfPWIoNTkyOCk7Si5CYXNlSm9iRXhlY3V0b3I9Y2xhc3MgcHtjb25zdHJ1Y3Rvcih3LEYpe3RoaXMuc2VydmVyVXJsPXcsdGhpcy5zZXJ2ZXJUeXBlPUYsdGhpcy53YWl0aW5nUmVxdWVzdHM9W10sdGhpcy5yZXNlbmRXYWl0aW5nUmVxdWVzdHM9KCk9PkQodGhpcyx2b2lk'@; put 'IDAsdm9pZCAwLGZ1bmN0aW9uKigpe3lpZWxkKDAsXy5hc3luY0ZvckVhY2gpKHRoaXMud2FpdGluZ1JlcXVlc3RzLEg9PkQodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3lpZWxkIEgoKX0pKSx0aGlzLndhaXRpbmdSZXF1ZXN0cz1bXX0pfWFwcGVuZFdhaXRpbmdSZXF1ZXN0KHcp'@; put 'e3RoaXMud2FpdGluZ1JlcXVlc3RzLnB1c2godyl9Z2V0UmVxdWVzdFBhcmFtcyh3KXtjb25zdCBGPXt9O3JldHVybiB3LmRlYnVnJiYoRi5fb21pdHRleHRsb2c9ImZhbHNlIixGLl9vbWl0U2Vzc2lvblJlc3VsdHM9ImZhbHNlIixGLl9kZWJ1Zz0xMzEpLEZ9fX0sMjY5MzpmdW5jdGlvbihj'@; put 'ZSxKLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgRD10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oUCxMLFksQil7cmV0dXJuIG5ldyhZfHwoWT1Qcm9taXNlKSkoZnVuY3Rpb24oWixYKXtmdW5jdGlvbiBRKGllKXt0cnl7dGUoQi5uZXh0KGllKSl9Y2F0Y2goc2Upe1goc2UpfX1mdW5jdGlv'@; put 'biBxKGllKXt0cnl7dGUoQi50aHJvdyhpZSkpfWNhdGNoKHNlKXtYKHNlKX19ZnVuY3Rpb24gdGUoaWUpe2llLmRvbmU/WihpZS52YWx1ZSk6ZnVuY3Rpb24gVyhaKXtyZXR1cm4gWiBpbnN0YW5jZW9mIFk/WjpuZXcgWShmdW5jdGlvbihYKXtYKFopfSl9KGllLnZhbHVlKS50aGVuKFEscSl9'@; put 'dGUoKEI9Qi5hcHBseShQLEx8fFtdKSkubmV4dCgpKX0pfSxfPXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihQKXtyZXR1cm4gUCYmUC5fX2VzTW9kdWxlP1A6e2RlZmF1bHQ6UH19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxK'@; put 'LlNhczlKb2JFeGVjdXRvcj12b2lkIDA7Y29uc3QgcD1fKGIoNjIzMCkpLE49YigxMzk1KSx3PWIoNTkyOCksRj1iKDYxMTgpLEg9Yig3OTUpO0ouU2FzOUpvYkV4ZWN1dG9yPWNsYXNzIFIgZXh0ZW5kcyBGLkJhc2VKb2JFeGVjdXRvcntjb25zdHJ1Y3RvcihMLFksQixXLFope3N1cGVyKEws'@; put 'WSksdGhpcy5qb2JzUGF0aD1CLHRoaXMucmVxdWVzdENsaWVudD1XLHRoaXMuc2FzOVJlcXVlc3RDbGllbnQ9bmV3IEguU2FzOVJlcXVlc3RDbGllbnQoTCxaKX1leGVjdXRlKEwsWSxCKXtyZXR1cm4gRCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7Y29uc3QgVz0oMCx3LmlzUmVs'@; put 'YXRpdmVQYXRoKShMKSYmQi5hcHBMb2M/Qi5hcHBMb2MucmVwbGFjZSgvXC8/JC8sIi8iKStMLnJlcGxhY2UoL15cLy8sIiIpOkw7bGV0IFo9YCR7Qi5zZXJ2ZXJVcmx9JHt0aGlzLmpvYnNQYXRofT8keyJfcHJvZ3JhbT0iK1d9YDtaPWAke1p9JHtCLnVzZXJuYW1lJiZCLnBhc3N3b3JkPyIm'@; put 'X3VzZXJuYW1lPSIrQi51c2VybmFtZSsiJl9wYXNzd29yZD0iK0IucGFzc3dvcmQ6IiJ9YCxaPWAke1p9JHtCLmRlYnVnPyImX2RlYnVnPTEzMSI6IiJ9YDtsZXQgWD1PYmplY3QuYXNzaWduKHt9LHRoaXMuZ2V0UmVxdWVzdFBhcmFtcyhCKSksUT1uZXcgcC5kZWZhdWx0O2lmKFkpdHJ5e1E9'@; put 'aihRLFkpfWNhdGNoKGllKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IE4uRXJyb3JSZXNwb25zZShpZT8ubWVzc2FnZSxpZSkpfWVsc2UgWT0iIjtmb3IoY29uc3QgaWUgaW4gWClYLmhhc093blByb3BlcnR5KGllKSYmUS5hcHBlbmQoaWUsWFtpZV0pO3lpZWxkIHRoaXMuc2FzOVJlcXVl'@; put 'c3RDbGllbnQubG9naW4oQi51c2VybmFtZSxCLnBhc3N3b3JkLHRoaXMuam9ic1BhdGgpO2NvbnN0IHE9WSYmT2JqZWN0LmtleXMoWSkubGVuZ3RoPyJtdWx0aXBhcnQvZm9ybS1kYXRhOyBib3VuZGFyeT0iK1EuX2JvdW5kYXJ5OiJ0ZXh0L3BsYWluIjtyZXR1cm4gbmV3IFByb21pc2UoKGll'@; put 'LHNlKT0+dGhpcy5zYXM5UmVxdWVzdENsaWVudC5wb3N0KFosUSx2b2lkIDAscSx7QWNjZXB0OiIqLyoiLENvbm5lY3Rpb246IktlZXAtQWxpdmUifSkudGhlbihnZT0+e3RoaXMucmVxdWVzdENsaWVudC5hcHBlbmRSZXF1ZXN0KGdlLEwsQi5kZWJ1ZyksaWUoZ2UpfSkuY2F0Y2goZ2U9Pnts'@; put 'ZXQgX2U9Z2U7Z2UucmVzdWx0JiYiIiE9PWdlLnJlc3VsdD9fZT1nZS5yZXN1bHQ6Z2UubWVzc2FnZSYmKF9lPWdlLm1lc3NhZ2UpLHRoaXMucmVxdWVzdENsaWVudC5hcHBlbmRSZXF1ZXN0KF9lLEwsQi5kZWJ1Zyksc2UobmV3IE4uRXJyb3JSZXNwb25zZShnZT8ubWVzc2FnZSxnZSkpfSkp'@; put 'fSl9Z2V0UmVxdWVzdFBhcmFtcyhMKXtjb25zdCBZPXt9O3JldHVybiBMLmRlYnVnJiYoWS5fZGVidWc9MTMxKSxZfX07Y29uc3Qgaj0oUCxMKT0+e2Zvcihjb25zdCBZIGluIEwpe2NvbnN0IEI9WSxXPSgwLHcuY29udmVydFRvQ1NWKShMLFkpO2lmKCJFUlJPUjogTEFSR0UgU1RSSU5HIExF'@; put 'TkdUSCI9PT1XKXRocm93IG5ldyBFcnJvcigiVGhlIG1heCBsZW5ndGggb2YgYSBzdHJpbmcgdmFsdWUgaW4gU0FTanMgaXMgMzI3NjUgY2hhcmFjdGVycy4iKTtQLmFwcGVuZChCLFcse2ZpbGVuYW1lOmAke0J9LmNzdmAsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL2NzdiJ9KX1yZXR1cm4g'@; put 'UH19LDEwNjU6ZnVuY3Rpb24oY2UsSixiKXsidXNlIHN0cmljdCI7dmFyIEQ9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKEwsWSxCLFcpe3JldHVybiBuZXcoQnx8KEI9UHJvbWlzZSkpKGZ1bmN0aW9uKFgsUSl7ZnVuY3Rpb24gcShzZSl7dHJ5e2llKFcubmV4dChzZSkpfWNhdGNo'@; put 'KGdlKXtRKGdlKX19ZnVuY3Rpb24gdGUoc2Upe3RyeXtpZShXLnRocm93KHNlKSl9Y2F0Y2goZ2Upe1EoZ2UpfX1mdW5jdGlvbiBpZShzZSl7c2UuZG9uZT9YKHNlLnZhbHVlKTpmdW5jdGlvbiBaKFgpe3JldHVybiBYIGluc3RhbmNlb2YgQj9YOm5ldyBCKGZ1bmN0aW9uKFEpe1EoWCl9KX0o'@; put 'c2UudmFsdWUpLnRoZW4ocSx0ZSl9aWUoKFc9Vy5hcHBseShMLFl8fFtdKSkubmV4dCgpKX0pfSxfPXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihMKXtyZXR1cm4gTCYmTC5fX2VzTW9kdWxlP0w6e2RlZmF1bHQ6TH19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2Vz'@; put 'TW9kdWxlIix7dmFsdWU6ITB9KSxKLlNhc2pzSm9iRXhlY3V0b3I9dm9pZCAwO2NvbnN0IHA9XyhiKDYyMzApKSxOPWIoMzkwMCksdz1iKDEzOTUpLEY9Yig0MDM3KSxIPWIoNTkyOCksUj1iKDU5MjgpLGo9Yig2MTE4KTtKLlNhc2pzSm9iRXhlY3V0b3I9Y2xhc3MgUCBleHRlbmRzIGouQmFz'@; put 'ZUpvYkV4ZWN1dG9ye2NvbnN0cnVjdG9yKFksQixXKXtzdXBlcihZLE4uU2VydmVyVHlwZS5TYXNqcyksdGhpcy5qb2JzUGF0aD1CLHRoaXMucmVxdWVzdENsaWVudD1XfWV4ZWN1dGUoWSxCLFcsWixYLFE9W10pe3JldHVybiBEKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25z'@; put 'dCBxPVosdGU9KDAsUi5pc1JlbGF0aXZlUGF0aCkoWSkmJlcuYXBwTG9jP1cuYXBwTG9jLnJlcGxhY2UoL1wvPyQvLCIvIikrWS5yZXBsYWNlKC9eXC8vLCIiKTpZO2xldCBpZT1gJHtXLnNlcnZlclVybH0ke3RoaXMuam9ic1BhdGh9Lz8keyJfcHJvZ3JhbT0iK3RlfWAsc2U9T2JqZWN0LmFz'@; put 'c2lnbih7fSx0aGlzLmdldFJlcXVlc3RQYXJhbXMoVykpLGdlPSgwLEguZ2V0Rm9ybURhdGEpKCk7aWYoQil0cnl7Z2U9KDAsRi5nZW5lcmF0ZUZpbGVVcGxvYWRGb3JtKShnZSxCKX1jYXRjaChTZSl7cmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyB3LkVycm9yUmVzcG9uc2UoU2U/Lm1lc3Nh'@; put 'Z2UsU2UpKX1mb3IoY29uc3QgU2UgaW4gc2Upc2UuaGFzT3duUHJvcGVydHkoU2UpJiZnZS5hcHBlbmQoU2Usc2VbU2VdKTtjb25zdCBfZT1nZSBpbnN0YW5jZW9mIHAuZGVmYXVsdCYmdHlwZW9mIEZvcm1EYXRhPiJ1Ij9gbXVsdGlwYXJ0L2Zvcm0tZGF0YTsgYm91bmRhcnk9JHtnZS5nZXRI'@; put 'ZWFkZXJzKClbImNvbnRlbnQtdHlwZSJdfWA6Im11bHRpcGFydC9mb3JtLWRhdGEiO3JldHVybiBuZXcgUHJvbWlzZSgoU2UsemUpPT57dGhpcy5yZXF1ZXN0Q2xpZW50LnBvc3QoaWUsZ2UsWD8uYWNjZXNzX3Rva2VuLF9lKS50aGVuKHo9PkQodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9u'@; put 'Kigpe2lmKE9iamVjdC5lbnRyaWVzKHoucmVzdWx0KS5sZW5ndGg8MSl0aHJvdyBuZXcgdy5Kb2JFeGVjdXRpb25FcnJvcigwLGBObyB3ZWJvdXQgd2FzIHJldHVybmVkIGJ5IGpvYiAke3RlfS4gIFBsZWFzZSBjaGVjayB0aGUgU0FTIGxvZyBmb3IgbW9yZSBpbmZvLmAsei5sb2cpO2NvbnN0'@; put 'e3Jlc3VsdDpnfT16O2cmJiJzdHJpbmciPT10eXBlb2YgZyYmZy50cmltKCkmJih6LnJlc3VsdD0oMCxSLmdldFZhbGlkSnNvbikoZykpLHRoaXMucmVxdWVzdENsaWVudC5hcHBlbmRSZXF1ZXN0KHosWSxXLmRlYnVnKTtjb25zdCB5PSgwLFIuYXBwZW5kRXh0cmFSZXNwb25zZUF0dHJpYnV0'@; put 'ZXMpKHosUSk7U2UoeSl9KSkuY2F0Y2goej0+RCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7eiBpbnN0YW5jZW9mIHcuSm9iRXhlY3V0aW9uRXJyb3ImJih0aGlzLnJlcXVlc3RDbGllbnQuYXBwZW5kUmVxdWVzdCh6LFksVy5kZWJ1ZyksemUobmV3IHcuRXJyb3JSZXNwb25zZSh6'@; put 'Py5tZXNzYWdlLHopKSkseiBpbnN0YW5jZW9mIHcuTG9naW5SZXF1aXJlZEVycm9yPyhafHx6ZShuZXcgdy5FcnJvclJlc3BvbnNlKCJSZXF1ZXN0IGlzIG5vdCBhdXRoZW50aWNhdGVkLiBNYWtlIHN1cmUgLmVudiBmaWxlIGV4aXN0cyB3aXRoIHZhbGlkIGNyZWRlbnRpYWxzLiIseikpLHRo'@; put 'aXMuYXBwZW5kV2FpdGluZ1JlcXVlc3QoKCk9PnRoaXMuZXhlY3V0ZShZLEIsVyxaLFgsUSkudGhlbihnPT57U2UoZyl9LGc9Pnt6ZShnKX0pKSxxJiYoeWllbGQgcSgpKSk6emUobmV3IHcuRXJyb3JSZXNwb25zZSh6Py5tZXNzYWdlLHopKX0pKX0pfSl9fX0sNjA4NDpmdW5jdGlvbihjZSxK'@; put 'LGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgRD10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oTCxZLEIsVyl7cmV0dXJuIG5ldyhCfHwoQj1Qcm9taXNlKSkoZnVuY3Rpb24oWCxRKXtmdW5jdGlvbiBxKHNlKXt0cnl7aWUoVy5uZXh0KHNlKSl9Y2F0Y2goZ2Upe1EoZ2UpfX1mdW5jdGlvbiB0'@; put 'ZShzZSl7dHJ5e2llKFcudGhyb3coc2UpKX1jYXRjaChnZSl7UShnZSl9fWZ1bmN0aW9uIGllKHNlKXtzZS5kb25lP1goc2UudmFsdWUpOmZ1bmN0aW9uIFooWCl7cmV0dXJuIFggaW5zdGFuY2VvZiBCP1g6bmV3IEIoZnVuY3Rpb24oUSl7UShYKX0pfShzZS52YWx1ZSkudGhlbihxLHRlKX1p'@; put 'ZSgoVz1XLmFwcGx5KEwsWXx8W10pKS5uZXh0KCkpfSl9LF89dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKEwpe3JldHVybiBMJiZMLl9fZXNNb2R1bGU/TDp7ZGVmYXVsdDpMfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEou'@; put 'V2ViSm9iRXhlY3V0b3I9dm9pZCAwO2NvbnN0IHA9XyhiKDYyMzApKSxOPWIoMzkwMCksdz1iKDEzOTUpLEY9Yig0MDM3KSxIPWIoMjE3MCksUj1iKDU5MjgpLGo9Yig2MTE4KTtKLldlYkpvYkV4ZWN1dG9yPWNsYXNzIFAgZXh0ZW5kcyBqLkJhc2VKb2JFeGVjdXRvcntjb25zdHJ1Y3RvcihZ'@; put 'LEIsVyxaLFgpe3N1cGVyKFksQiksdGhpcy5qb2JzUGF0aD1XLHRoaXMucmVxdWVzdENsaWVudD1aLHRoaXMuc2FzVml5YUFwaUNsaWVudD1YfWV4ZWN1dGUoWSxCLFcsWixYLFE9W10pe3JldHVybiBEKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdCBxPVosdGU9KDAsUi5p'@; put 'c1JlbGF0aXZlUGF0aCkoWSkmJlcuYXBwTG9jP1cuYXBwTG9jLnJlcGxhY2UoL1wvPyQvLCIvIikrWS5yZXBsYWNlKC9eXC8vLCIiKTpZO2xldCBpZT1gJHtXLnNlcnZlclVybH0ke3RoaXMuam9ic1BhdGh9Lz8keyJfcHJvZ3JhbT0iK3RlfWA7aWYoVy5zZXJ2ZXJUeXBlPT09Ti5TZXJ2ZXJU'@; put 'eXBlLlNhc1ZpeWEpe2xldCBTZTt0cnl7U2U9eWllbGQgdGhpcy5nZXRKb2JVcmkoWSl9Y2F0Y2goemUpe3JldHVybiBuZXcgUHJvbWlzZSgoeixnKT0+RCh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7emUgaW5zdGFuY2VvZiB3LkxvZ2luUmVxdWlyZWRFcnJvcj8odGhpcy5hcHBl'@; put 'bmRXYWl0aW5nUmVxdWVzdCgoKT0+dGhpcy5leGVjdXRlKFksQixXLFosWCxRKS50aGVuKHk9Pnt6KHkpfSx5PT57Zyh5KX0pKSxxJiYoeWllbGQgcSgpKSk6ZyhuZXcgdy5FcnJvclJlc3BvbnNlKHplPy5tZXNzYWdlLHplKSl9KSl9aWUrPVNlLmxlbmd0aD4wPyImX2pvYj0iK1NlOiIiLFNl'@; put 'Lmxlbmd0aD4wJiYoaWUrPSImX2pvYj0iK1NlLGllPWllLnJlcGxhY2UoIl9wcm9ncmFtPSIsIl9fcHJvZ3JhbT0iKSksaWUrPVcuY29udGV4dE5hbWUmJiEvXHMvLnRlc3QoVy5jb250ZXh0TmFtZSk/YCZfY29udGV4dG5hbWU9JHtXLmNvbnRleHROYW1lfWA6IiJ9bGV0IHNlPU9iamVjdC5h'@; put 'c3NpZ24oe30sdGhpcy5nZXRSZXF1ZXN0UGFyYW1zKFcpKSxnZT0oMCxSLmdldEZvcm1EYXRhKSgpO2lmKEIpe2NvbnN0IFNlPUpTT04uc3RyaW5naWZ5KEIpO2lmKFcuc2VydmVyVHlwZT09PU4uU2VydmVyVHlwZS5TYXM5fHxTZS5sZW5ndGg+NWU1fHxTZS5pbmNsdWRlcygiOyIpKXRyeXtn'@; put 'ZT0oMCxGLmdlbmVyYXRlRmlsZVVwbG9hZEZvcm0pKGdlLEIpfWNhdGNoKHplKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IHcuRXJyb3JSZXNwb25zZSh6ZT8ubWVzc2FnZSx6ZSkpfWVsc2UgdHJ5e2NvbnN0e2Zvcm1EYXRhOnplLHJlcXVlc3RQYXJhbXM6en09KDAsSC5nZW5lcmF0ZVRh'@; put 'YmxlVXBsb2FkRm9ybSkoZ2UsQik7Z2U9emUsc2U9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHNlKSx6KX1jYXRjaCh6ZSl7cmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyB3LkVycm9yUmVzcG9uc2UoemU/Lm1lc3NhZ2UsemUpKX19Zm9yKGNvbnN0IFNlIGluIHNlKXNlLmhhc093'@; put 'blByb3BlcnR5KFNlKSYmZ2UuYXBwZW5kKFNlLHNlW1NlXSk7Y29uc3QgX2U9Z2UgaW5zdGFuY2VvZiBwLmRlZmF1bHQmJnR5cGVvZiBGb3JtRGF0YT4idSI/YG11bHRpcGFydC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSR7Z2UuZ2V0SGVhZGVycygpWyJjb250ZW50LXR5cGUiXX1gOiJtdWx0aXBh'@; put 'cnQvZm9ybS1kYXRhIjtyZXR1cm4gbmV3IFByb21pc2UoKFNlLHplKT0+e3RoaXMucmVxdWVzdENsaWVudC5wb3N0KGllLGdlLFg/LmFjY2Vzc190b2tlbixfZSkudGhlbih6PT5EKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0aGlzLnJlcXVlc3RDbGllbnQuYXBwZW5kUmVxdWVz'@; put 'dCh6LFksVy5kZWJ1Zyk7bGV0IGc9ei5yZXN1bHQ7aWYoVy5kZWJ1Zylzd2l0Y2godGhpcy5zZXJ2ZXJUeXBlKXtjYXNlIE4uU2VydmVyVHlwZS5TYXNWaXlhOmc9eWllbGQoMCxSLnBhcnNlU2FzVml5YURlYnVnUmVzcG9uc2UpKHoucmVzdWx0LHRoaXMucmVxdWVzdENsaWVudCx0aGlzLnNl'@; put 'cnZlclVybCk7YnJlYWs7Y2FzZSBOLlNlcnZlclR5cGUuU2FzOTpnPSJzdHJpbmciPT10eXBlb2Ygei5yZXN1bHQ/KDAsUi5wYXJzZVdlYm91dFJlc3BvbnNlKSh6LnJlc3VsdCxpZSk6ei5yZXN1bHR9Y29uc3QgeT0oMCxSLmFwcGVuZEV4dHJhUmVzcG9uc2VBdHRyaWJ1dGVzKSh7cmVzdWx0'@; put 'OmcsbG9nOnoubG9nfSxRKTtTZSh5KX0pKS5jYXRjaCh6PT5EKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt6IGluc3RhbmNlb2Ygdy5Kb2JFeGVjdXRpb25FcnJvciYmKHRoaXMucmVxdWVzdENsaWVudC5hcHBlbmRSZXF1ZXN0KHosWSxXLmRlYnVnKSx6ZShuZXcgdy5FcnJvclJl'@; put 'c3BvbnNlKHo/Lm1lc3NhZ2UseikpKSx6IGluc3RhbmNlb2Ygdy5Mb2dpblJlcXVpcmVkRXJyb3I/KFp8fHplKG5ldyB3LkVycm9yUmVzcG9uc2UoIlJlcXVlc3QgaXMgbm90IGF1dGhlbnRpY2F0ZWQuIE1ha2Ugc3VyZSAuZW52IGZpbGUgZXhpc3RzIHdpdGggdmFsaWQgY3JlZGVudGlhbHMu'@; put 'Iix6KSksdGhpcy5hcHBlbmRXYWl0aW5nUmVxdWVzdCgoKT0+dGhpcy5leGVjdXRlKFksQixXLFosWCxRKS50aGVuKGc9PntTZShnKX0sZz0+e3plKGcpfSkpLHEmJih5aWVsZCBxKCkpKTp6ZShuZXcgdy5FcnJvclJlc3BvbnNlKHo/Lm1lc3NhZ2UseikpfSkpfSl9KX1nZXRKb2JVcmkoWSl7'@; put 'cmV0dXJuIEQodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2lmKCF0aGlzLnNhc1ZpeWFBcGlDbGllbnQpcmV0dXJuIiI7bGV0IFcsWixCPSIiO2lmKCgwLFIuaXNSZWxhdGl2ZVBhdGgpKFkpKXtjb25zdCBRPVkuc3BsaXQoIi8iKTtXPVEubGVuZ3RoPjE/UVswXToiIixaPVEubGVu'@; put 'Z3RoPjE/UVsxXToiIn1lbHNle2NvbnN0IFE9WS5zcGxpdCgiLyIpO1o9US5wb3AoKXx8IiIsVz1RLmpvaW4oIi8iKX1pZighWil0aHJvdyBuZXcgRXJyb3IoIkpvYiBuYW1lIGlzIGVtcHR5LCBudWxsIG9yIHVuZGVmaW5lZC4iKTtjb25zdCBYPXlpZWxkIHRoaXMuc2FzVml5YUFwaUNsaWVu'@; put 'dC5nZXRKb2JzSW5Gb2xkZXIoVyk7aWYoWCl7Y29uc3QgUT1YLmZpbmQocT0+cS5uYW1lPT09WiYmImpvYkRlZmluaXRpb24iPT09cS5jb250ZW50VHlwZSk7USYmKEI9US51cmkpfXJldHVybiBCfSl9fX0sODIxNzpmdW5jdGlvbihjZSxKLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgRD10aGlzJiZ0'@; put 'aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24ocCxOLHcsRil7dm9pZCAwPT09RiYmKEY9dyk7dmFyIEg9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOLHcpOyghSHx8KCJnZXQiaW4gSD8hTi5fX2VzTW9kdWxlOkgud3JpdGFibGV8fEguY29uZmln'@; put 'dXJhYmxlKSkmJihIPXtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBOW3ddfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwLEYsSCl9OmZ1bmN0aW9uKHAsTix3LEYpe3ZvaWQgMD09PUYmJihGPXcpLHBbRl09Tlt3XX0pLF89dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1'@; put 'bmN0aW9uKHAsTil7Zm9yKHZhciB3IGluIHApImRlZmF1bHQiIT09dyYmIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChOLHcpJiZEKE4scCx3KX07T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLF8oYigxNTcwKSxKKSxfKGIoMzQ5'@; put 'MSksSiksXyhiKDQ0NDYpLEopLF8oYig2MTE4KSxKKSxfKGIoMjY5MyksSiksXyhiKDYwODQpLEopLF8oYigxMDY1KSxKKX0sNDU4ODpmdW5jdGlvbihjZSxKLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDQxNTUpLF89Yig1MTA4KSxwPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2Jq'@; put 'ZWN0LmNyZWF0ZT9mdW5jdGlvbih0ZSxpZSxzZSxnZSl7dm9pZCAwPT09Z2UmJihnZT1zZSk7dmFyIF9lPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaWUsc2UpOyghX2V8fCgiZ2V0ImluIF9lPyFpZS5fX2VzTW9kdWxlOl9lLndyaXRhYmxlfHxfZS5jb25maWd1cmFibGUpKSYm'@; put 'KF9lPXtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpZVtzZV19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRlLGdlLF9lKX06ZnVuY3Rpb24odGUsaWUsc2UsZ2Upe3ZvaWQgMD09PWdlJiYoZ2U9c2UpLHRlW2dlXT1pZVtzZV19KSxOPXRoaXMmJnRoaXMuX19zZXRNb2R1'@; put 'bGVEZWZhdWx0fHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbih0ZSxpZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRlLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTppZX0pfTpmdW5jdGlvbih0ZSxpZSl7dGUuZGVmYXVsdD1pZX0pLHc9dGhpcyYmdGhpcy5fX2ltcG9ydFN0YXJ8fGZ1'@; put 'bmN0aW9uKHRlKXtpZih0ZSYmdGUuX19lc01vZHVsZSlyZXR1cm4gdGU7dmFyIGllPXt9O2lmKG51bGwhPXRlKWZvcih2YXIgc2UgaW4gdGUpImRlZmF1bHQiIT09c2UmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0ZSxzZSkmJnAoaWUsdGUsc2UpO3JldHVybiBOKGll'@; put 'LHRlKSxpZX0sRj10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24odGUsaWUsc2UsZ2Upe3JldHVybiBuZXcoc2V8fChzZT1Qcm9taXNlKSkoZnVuY3Rpb24oVGUsU2Upe2Z1bmN0aW9uIHplKHkpe3RyeXtnKGdlLm5leHQoeSkpfWNhdGNoKHgpe1NlKHgpfX1mdW5jdGlvbiB6KHkpe3Ry'@; put 'eXtnKGdlLnRocm93KHkpKX1jYXRjaCh4KXtTZSh4KX19ZnVuY3Rpb24gZyh5KXt5LmRvbmU/VGUoeS52YWx1ZSk6ZnVuY3Rpb24gX2UoVGUpe3JldHVybiBUZSBpbnN0YW5jZW9mIHNlP1RlOm5ldyBzZShmdW5jdGlvbihTZSl7U2UoVGUpfSl9KHkudmFsdWUpLnRoZW4oemUseil9ZygoZ2U9'@; put 'Z2UuYXBwbHkodGUsaWV8fFtdKSkubmV4dCgpKX0pfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi50aHJvd0lmRXJyb3I9Si5SZXF1ZXN0Q2xpZW50PXZvaWQgMDtjb25zdCBIPXcoYig4MzczKSksUj1iKDE1MjcpLGo9YigxMzk1KSxQPWIoMjgx'@; put 'MyksTD1iKDk3NzgpLFk9Yig5NTI2KSxCPWIoNTkyOCksVz1iKDEwMDUpLFo9Yig5NTM5KTtKLlJlcXVlc3RDbGllbnQ9Y2xhc3MgWHtjb25zdHJ1Y3RvcihpZSxzZSxnZSxfZSl7dGhpcy5iYXNlVXJsPWllLHRoaXMucmVxdWVzdHM9W10sdGhpcy5yZXF1ZXN0c0xpbWl0PTEwLHRoaXMudmVy'@; put 'Ym9zZU1vZGU9ITEsdGhpcy5jc3JmVG9rZW49e2hlYWRlck5hbWU6IiIsdmFsdWU6IiJ9LHRoaXMuZ2V0UmVxdWVzdHM9KCk9PnRoaXMucmVxdWVzdHMsdGhpcy5jbGVhclJlcXVlc3RzPSgpPT57dGhpcy5yZXF1ZXN0cz1bXX0sdGhpcy5hdXRob3JpemU9VGU9PkYodGhpcyx2b2lkIDAsdm9p'@; put 'ZCAwLGZ1bmN0aW9uKigpe2xldCBTZT1udWxsO2NvbnN0IHplPXt9LHo9VGUuc3BsaXQoIjxib2R5PiIpWzFdLnNwbGl0KCI8L2JvZHk+IilbMF0sZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtnLmlubmVySFRNTD16O2NvbnN0IHk9Zy5xdWVyeVNlbGVjdG9yKCIjYXBwbGljYXRp'@; put 'b25fYXV0aG9yaXphdGlvbiIpO1NlPXk/dGhpcy5iYXNlVXJsK3kuZ2V0QXR0cmlidXRlKCJhY3Rpb24iKTpudWxsO2NvbnN0IHg9eT8ucXVlcnlTZWxlY3RvckFsbCgiaW5wdXQiKTtmb3IoY29uc3QgViBvZiB4KSJ1c2VyX29hdXRoX2FwcHJvdmFsIj09PVYubmFtZSYmKFYudmFsdWU9InRy'@; put 'dWUiKSx6ZVtWLm5hbWVdPVYudmFsdWU7Y29uc3QgQz1PYmplY3Qua2V5cyh6ZSkuZmluZChWPT5WPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCJjc3JmIikpO0MmJih0aGlzLmNzcmZUb2tlbi52YWx1ZT16ZVtDXSx0aGlzLmNzcmZUb2tlbi5oZWFkZXJOYW1lPXRoaXMuY3NyZlRva2VuLmhl'@; put 'YWRlck5hbWV8fCJ4LWNzcmYtdG9rZW4iKTtjb25zdCBUPW5ldyBGb3JtRGF0YTtmb3IoY29uc3QgViBpbiB6ZSl6ZS5oYXNPd25Qcm9wZXJ0eShWKSYmVC5hcHBlbmQoVix6ZVtWXSk7aWYoIVNlKXRocm93IG5ldyBFcnJvcigiQXV0aCBGb3JtIFVSTCBpcyBudWxsIG9yIHVuZGVmaW5lZC4i'@; put 'KTtyZXR1cm4geWllbGQgdGhpcy5odHRwQ2xpZW50LnBvc3QoU2UsVCx7cmVzcG9uc2VUeXBlOiJ0ZXh0IixoZWFkZXJzOntBY2NlcHQ6IiovKiIsIkNvbnRlbnQtVHlwZSI6InRleHQvcGxhaW4ifX0pLnRoZW4oVj0+Vi5kYXRhKS5jYXRjaChWPT57KEQubG9nZ2VyfHxfKS5lcnJvcihWKX0p'@; put 'fSksdGhpcy5wcmV0dGlmeVN0cmluZz1UZT0+KDAsWi5pbnNwZWN0KShUZSx7Y29sb3JzOiJibGVhY2hlZCIhPT10aGlzLnZlcmJvc2VNb2RlfSksdGhpcy5wYXJzZUludGVyY2VwdGVkQm9keT1UZT0+e2lmKCFUZSlyZXR1cm4iIjtsZXQgU2U7aWYoInN0cmluZyI9PXR5cGVvZiBUZSl0cnl7'@; put 'U2U9SlNPTi5wYXJzZShUZSl9Y2F0Y2h7U2U9VGV9ZWxzZSBTZT1UZTtjb25zdCB6ZT10aGlzLnByZXR0aWZ5U3RyaW5nKFNlKS5zcGxpdCgiXG4iKTtyZXR1cm4gemUubGVuZ3RoPjUxJiYoemUuc3BsaWNlKDUwKSx6ZS5wdXNoKCIuLi4iKSksemUuam9pbigiXG4iKX0sdGhpcy5oYW5kbGVB'@; put 'eGlvc1Jlc3BvbnNlPVRlPT57dmFyIFNlLHplLHosZztjb25zdHtzdGF0dXM6eSxjb25maWc6eCxyZXF1ZXN0OkMsZGF0YTpUfT1UZSxWPW51bGwhPT0oU2U9Qz8uX2hlYWRlcikmJnZvaWQgMCE9PVNlP1NlOiJOb3QgcHJvdmlkZWRcbiIsVT1udWxsIT09KHo9bnVsbD09PSh6ZT1DPy5yZXMp'@; put 'fHx2b2lkIDA9PT16ZT92b2lkIDA6emUucmF3SGVhZGVycykmJnZvaWQgMCE9PXo/ejpbIk5vdCBwcm92aWRlZCJdLEU9dGhpcy5mb3JtYXRIZWFkZXJzKFUpLG09dGhpcy5wYXJzZUludGVyY2VwdGVkQm9keShUKTtyZXR1cm4gbnVsbD09PShnPUQubG9nZ2VyKXx8dm9pZCAwPT09Z3x8Zy5p'@; put 'bmZvKGBIVFRQIFJlcXVlc3QgKGZpcnN0IDUwIGxpbmVzKTpcbiR7Vn0ke3RoaXMucGFyc2VJbnRlcmNlcHRlZEJvZHkoeC5kYXRhKX1cblxuSFRUUCBSZXNwb25zZSBDb2RlOiAke3RoaXMucHJldHRpZnlTdHJpbmcoeSl9XG5cbkhUVFAgUmVzcG9uc2UgKGZpcnN0IDUwIGxpbmVzKTpcbiR7'@; put 'RX0ke20/YFxuXG4ke219YDoiIn1cbmApLFRlfSx0aGlzLmhhbmRsZUF4aW9zRXJyb3I9VGU9Pnt2YXIgU2UsemUseixnLHkseDtjb25zdCBDPSJOb3QgcHJvdmlkZWQiLHtyZXNwb25zZTpULHJlcXVlc3Q6Vixjb25maWc6VX09VGU7bGV0IEU9e19oZWFkZXI6YCR7Q31cbmAscmVzOntyYXdI'@; put 'ZWFkZXJzOltDXX19O1YmJihFPXtfaGVhZGVyOm51bGwhPT0oej1udWxsIT09KFNlPVYuX2hlYWRlcikmJnZvaWQgMCE9PVNlP1NlOm51bGw9PT0oemU9Vi5fY3VycmVudFJlcXVlc3QpfHx2b2lkIDA9PT16ZT92b2lkIDA6emUuX2hlYWRlcikmJnZvaWQgMCE9PXo/ejpDLHJlczp7cmF3SGVh'@; put 'ZGVyczpudWxsIT09KHk9bnVsbD09PShnPVYucmVzKXx8dm9pZCAwPT09Zz92b2lkIDA6Zy5yYXdIZWFkZXJzKSYmdm9pZCAwIT09eT95OltDXX19KTtsZXQgbT1UfHx7c3RhdHVzOkMscmVxdWVzdDpFLGNvbmZpZzpVfHx7ZGF0YTpDLGhlYWRlcnM6e319LGRhdGE6Q307Y29uc3R7c3RhdHVz'@; put 'OkEscmVxdWVzdDphZSxkYXRhOm5lfT1tLHtfaGVhZGVyOmxlLHJlczp3ZX09YWUsWmU9dGhpcy5mb3JtYXRIZWFkZXJzKHdlLnJhd0hlYWRlcnMpLFFlPXRoaXMucGFyc2VJbnRlcmNlcHRlZEJvZHkobmUpO3JldHVybiBudWxsPT09KHg9RC5sb2dnZXIpfHx2b2lkIDA9PT14fHx4LmluZm8o'@; put 'YEhUVFAgUmVxdWVzdCAoZmlyc3QgNTAgbGluZXMpOlxuJHtsZX0ke3RoaXMucGFyc2VJbnRlcmNlcHRlZEJvZHkoVT8uZGF0YSl9XG5cbkhUVFAgUmVzcG9uc2UgQ29kZTogJHt0aGlzLnByZXR0aWZ5U3RyaW5nKEEpfVxuXG5IVFRQIFJlc3BvbnNlIChmaXJzdCA1MCBsaW5lcyk6XG4ke1pl'@; put 'fSR7UWU/YFxuXG4ke1FlfWA6IiJ9XG5gKSxUZX0sdGhpcy5mb3JtYXRIZWFkZXJzPVRlPT5UZS5yZWR1Y2UoKFNlLHplLHopPT5TZSsoeiUyPT0wP2AkezA9PT16PyIiOiJcbiJ9JHt6ZX1gOmA6ICR7emV9YCksIiIpLHRoaXMuc2V0VmVyYm9zZU1vZGU9VGU9Pnt0aGlzLnZlcmJvc2VNb2Rl'@; put 'PVRlLHRoaXMudmVyYm9zZU1vZGU/dGhpcy5lbmFibGVWZXJib3NlTW9kZSgpOnRoaXMuZGlzYWJsZVZlcmJvc2VNb2RlKCl9LHRoaXMuZW5hYmxlVmVyYm9zZU1vZGU9KFRlPXRoaXMuaGFuZGxlQXhpb3NSZXNwb25zZSxTZT10aGlzLmhhbmRsZUF4aW9zRXJyb3IpPT57dGhpcy5odHRwSW50'@; put 'ZXJjZXB0b3I9dGhpcy5odHRwQ2xpZW50LmludGVyY2VwdG9ycy5yZXNwb25zZS51c2UoVGUsU2UpfSx0aGlzLmRpc2FibGVWZXJib3NlTW9kZT0oKT0+e3RoaXMuaHR0cEludGVyY2VwdG9yJiZ0aGlzLmh0dHBDbGllbnQuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmVqZWN0KHRoaXMuaHR0cElu'@; put 'dGVyY2VwdG9yKX0sdGhpcy5nZXRIZWFkZXJzPShUZSxTZSk9Pntjb25zdCB6ZT17fTtyZXR1cm4iYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiE9PVNlJiYoemVbIkNvbnRlbnQtVHlwZSJdPVNlKSx6ZS5BY2NlcHQ9ImFwcGxpY2F0aW9uL2pzb24iPT09U2U/ImFwcGxpY2F0'@; put 'aW9uL2pzb24iOiIqLyoiLFRlJiYoemUuQXV0aG9yaXphdGlvbj1gQmVhcmVyICR7VGV9YCksdGhpcy5jc3JmVG9rZW4uaGVhZGVyTmFtZSYmdGhpcy5jc3JmVG9rZW4udmFsdWUmJih6ZVt0aGlzLmNzcmZUb2tlbi5oZWFkZXJOYW1lXT10aGlzLmNzcmZUb2tlbi52YWx1ZSksemV9LHRoaXMu'@; put 'cGFyc2VBbmRTZXRGaWxlVXBsb2FkQ3NyZlRva2VuPVRlPT57Y29uc3QgU2U9dGhpcy5wYXJzZUNzcmZUb2tlbihUZSk7U2UmJih0aGlzLmZpbGVVcGxvYWRDc3JmVG9rZW49U2UpfSx0aGlzLnBhcnNlQW5kU2V0Q3NyZlRva2VuPVRlPT57Y29uc3QgU2U9dGhpcy5wYXJzZUNzcmZUb2tlbihU'@; put 'ZSk7U2UmJih0aGlzLmNzcmZUb2tlbj1TZSl9LHRoaXMucGFyc2VDc3JmVG9rZW49VGU9Pnt2YXIgU2U7Y29uc3QgemU9bnVsbD09PShTZT1UZS5oZWFkZXJzWyJ4LWNzcmYtaGVhZGVyIl0pfHx2b2lkIDA9PT1TZT92b2lkIDA6U2UudG9Mb3dlckNhc2UoKTtpZih6ZSlyZXR1cm57aGVhZGVy'@; put 'TmFtZTp6ZSx2YWx1ZTpUZS5oZWFkZXJzW3plXXx8IiJ9fSx0aGlzLmhhbmRsZUVycm9yPShUZSxTZSx6ZT0hMSk9PkYodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IHo9VGUucmVzcG9uc2U7aWYoVGUgaW5zdGFuY2VvZiBqLkF1dGhvcml6ZUVycm9yKXtjb25zdCBnPXlp'@; put 'ZWxkIHRoaXMuaHR0cENsaWVudC5nZXQoVGUuY29uZmlybVVybCx7cmVzcG9uc2VUeXBlOiJ0ZXh0IixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoidGV4dC9wbGFpbiIsQWNjZXB0OiIqLyoifX0pLmNhdGNoKHk9Pnt0aHJvdygwLEwucHJlZml4TWVzc2FnZSkoeSwiRXJyb3Igd2hpbGUgZ2V0'@; put 'dGluZyBlcnJvciBjb25maXJtVXJsLiAiKX0pO3JldHVybigwLFIuaXNBdXRob3JpemVGb3JtUmVxdWlyZWQpKGc/LmRhdGEpJiYoeWllbGQgdGhpcy5hdXRob3JpemUoZy5kYXRhKS5jYXRjaCh5PT57dGhyb3coMCxMLnByZWZpeE1lc3NhZ2UpKHksIkVycm9yIHdoaWxlIGF1dGhvcml6aW5n'@; put 'IHJlcXVlc3QuICIpfSkpLHlpZWxkIFNlKCkuY2F0Y2goeT0+e3Rocm93KDAsTC5wcmVmaXhNZXNzYWdlKSh5LCJFcnJvciB3aGlsZSBleGVjdXRpbmcgY2FsbGJhY2sgaW4gaGFuZGxlRXJyb3IuICIpfSl9aWYoVGUgaW5zdGFuY2VvZiBqLkxvZ2luUmVxdWlyZWRFcnJvcil0aHJvdyB0aGlz'@; put 'LmNsZWFyQ3NyZlRva2VucygpLFRlO2lmKFRlIGluc3RhbmNlb2YgVy5JbnZhbGlkU0FTanNDc3JmRXJyb3IpcmV0dXJuIHlpZWxkIHRoaXMuaHR0cENsaWVudC5nZXQoIi8iLHt3aXRoWFNSRlRva2VuOiEwfSkudGhlbihnPT57dmFyIHk7Y29uc3QgeD1udWxsPT09KHk9LzxzY3JpcHQ+ZG9j'@; put 'dW1lbnQuY29va2llID0gJyhYU1JGLVRPS0VOPS4qOyBNYXgtQWdlPTg2NDAwOyBTYW1lU2l0ZT1TdHJpY3Q7IFBhdGg9XC87KSc8XC9zY3JpcHQ+Ly5leGVjKGcuZGF0YSkpfHx2b2lkIDA9PT15P3ZvaWQgMDp5WzFdO3gmJihkb2N1bWVudC5jb29raWU9eCl9KS5jYXRjaChnPT57dGhyb3co'@; put 'MCxMLnByZWZpeE1lc3NhZ2UpKGcsIkVycm9yIHdoaWxlIHJlLWZldGNoaW5nIENTUkYgdG9rZW4uIil9KSx5aWVsZCBTZSgpLmNhdGNoKGc9Pnt0aHJvdygwLEwucHJlZml4TWVzc2FnZSkoZywiRXJyb3Igd2hpbGUgZXhlY3V0aW5nIGNhbGxiYWNrIGluIGhhbmRsZUVycm9yLiAiKX0pO2lm'@; put 'KDQwMz09PXo/LnN0YXR1c3x8NDQ5PT09ej8uc3RhdHVzKXtpZih0aGlzLnBhcnNlQW5kU2V0Q3NyZlRva2VuKHopLHRoaXMuY3NyZlRva2VuLmhlYWRlck5hbWUmJnRoaXMuY3NyZlRva2VuLnZhbHVlKXJldHVybiB5aWVsZCBTZSgpLmNhdGNoKGc9Pnt0aHJvdygwLEwucHJlZml4TWVzc2Fn'@; put 'ZSkoZywiRXJyb3Igd2hpbGUgZXhlY3V0aW5nIGNhbGxiYWNrIGluIGhhbmRsZUVycm9yLiAiKX0pO3Rocm93IFRlfWlmKDQwND09PXo/LnN0YXR1cyl0aHJvdyBuZXcgai5Ob3RGb3VuZEVycm9yKHouY29uZmlnLnVybCk7aWYoNTAyIT09ej8uc3RhdHVzKXRocm93IFRlLmlzQXhpb3NFcnJv'@; put 'ciYmIlVOQUJMRV9UT19WRVJJRllfTEVBRl9TSUdOQVRVUkUiPT09VGUuY29kZT9uZXcgai5DZXJ0aWZpY2F0ZUVycm9yKFRlLm1lc3NhZ2UpOlRlLm1lc3NhZ2U/VGU6KDAsTC5wcmVmaXhNZXNzYWdlKShUZSwiRXJyb3Igd2hpbGUgaGFuZGxpbmcgZXJyb3IuICIpO2lmKHplKXRocm93IG5l'@; put 'dyBqLkludGVybmFsU2VydmVyRXJyb3J9KSx0aGlzLmNyZWF0ZUh0dHBDbGllbnQoaWUsc2UpLGdlJiYodGhpcy5yZXF1ZXN0c0xpbWl0PWdlKSxfZSYmKHRoaXMuc2V0VmVyYm9zZU1vZGUoX2UpLHRoaXMuZW5hYmxlVmVyYm9zZU1vZGUoKSl9c2V0Q29uZmlnKGllLHNlKXt0aGlzLmNyZWF0'@; put 'ZUh0dHBDbGllbnQoaWUsc2UpfXNhdmVMb2NhbFN0b3JhZ2VUb2tlbihpZSxzZSl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oImFjY2Vzc1Rva2VuIixpZSksbG9jYWxTdG9yYWdlLnNldEl0ZW0oInJlZnJlc2hUb2tlbiIsc2UpfWdldENzcmZUb2tlbihpZT0iZ2VuZXJhbCIpe3JldHVybiJmaWxl'@; put 'Ij09PWllP3RoaXMuZmlsZVVwbG9hZENzcmZUb2tlbjp0aGlzLmNzcmZUb2tlbn1jbGVhckNzcmZUb2tlbnMoKXt0aGlzLmNzcmZUb2tlbj17aGVhZGVyTmFtZToiIix2YWx1ZToiIn0sdGhpcy5maWxlVXBsb2FkQ3NyZlRva2VuPXtoZWFkZXJOYW1lOiIiLHZhbHVlOiIifX1jbGVhckxvY2Fs'@; put 'U3RvcmFnZVRva2Vucygpe2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJhY2Nlc3NUb2tlbiIsIiIpLGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJyZWZyZXNoVG9rZW4iLCIiKX1nZXRCYXNlVXJsKCl7cmV0dXJuIHRoaXMuaHR0cENsaWVudC5kZWZhdWx0cy5iYXNlVVJMfHwiIn1hcHBlbmRSZXF1ZXN0'@; put 'KGllLHNlLGdlKXtsZXQgX2U9IiIsVGU9IiIsU2U9bnVsbDtnZSYmKGllPy5sb2c/KF9lPSgwLEIucGFyc2VTb3VyY2VDb2RlKShpZS5sb2cpLFRlPSgwLEIucGFyc2VHZW5lcmF0ZWRDb2RlKShpZS5sb2cpLFNlPWllPy5yZXN1bHQ/aWUucmVzdWx0LldPUks6aWUubG9nKTppZT8ucmVzdWx0'@; put 'JiYoInN0cmluZyI9PXR5cGVvZiBpZS5yZXN1bHQmJihfZT0oMCxCLnBhcnNlU291cmNlQ29kZSkoaWUucmVzdWx0KSxUZT0oMCxCLnBhcnNlR2VuZXJhdGVkQ29kZSkoaWUucmVzdWx0KSksU2U9aWUucmVzdWx0LldPUkspKTtjb25zdCB6ZT0ic3RyaW5nIj09dHlwZW9mIGllPy5yZXN1bHQ/'@; put 'aWU/LnJlc3VsdDpKU09OLnN0cmluZ2lmeShpZT8ucmVzdWx0LG51bGwsMik7dGhpcy5yZXF1ZXN0cy5wdXNoKHtsb2dGaWxlOmllPy5sb2d8fHplfHxpZSxzZXJ2aWNlTGluazpzZSx0aW1lc3RhbXA6bmV3IERhdGUsc291cmNlQ29kZTpfZSxnZW5lcmF0ZWRDb2RlOlRlLFNBU1dPUks6U2V9'@; put 'KSx0aGlzLnJlcXVlc3RzLmxlbmd0aD50aGlzLnJlcXVlc3RzTGltaXQmJnRoaXMucmVxdWVzdHMuc3BsaWNlKDAsMSl9Z2V0KGllLHNlLGdlPSJhcHBsaWNhdGlvbi9qc29uIixfZT17fSxUZT0hMSl7cmV0dXJuIEYodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IHplPXto'@; put 'ZWFkZXJzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLmdldEhlYWRlcnMoc2UsZ2UpKSxfZSkscmVzcG9uc2VUeXBlOiJ0ZXh0L3BsYWluIj09PWdlPyJ0ZXh0IjoianNvbiIsd2l0aFhTUkZUb2tlbjohMH07cmV0dXJuInRleHQvcGxhaW4iPT09Z2UmJih6ZS50cmFuc2Zv'@; put 'cm1SZXNwb25zZT12b2lkIDApLHRoaXMuaHR0cENsaWVudC5nZXQoaWUsemUpLnRoZW4oej0+KCgwLEoudGhyb3dJZkVycm9yKSh6KSx0aGlzLnBhcnNlUmVzcG9uc2UoeikpKS5jYXRjaCh6PT5GKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4geWllbGQgdGhpcy5oYW5k'@; put 'bGVFcnJvcih6LCgpPT50aGlzLmdldChpZSxzZSxnZSxfZSkuY2F0Y2goZz0+e3Rocm93KDAsTC5wcmVmaXhNZXNzYWdlKShnLCJFcnJvciB3aGlsZSBleGVjdXRpbmcgaGFuZGxlIGVycm9yIGNhbGxiYWNrLiAiKX0pLFRlKX0pKX0pfXBvc3QoaWUsc2UsZ2UsX2U9ImFwcGxpY2F0aW9uL2pz'@; put 'b24iLFRlPXt9LFNlPXt9KXtyZXR1cm4gRih0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7Y29uc3QgemU9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHRoaXMuZ2V0SGVhZGVycyhnZSxfZSkpLFRlKTtyZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoaWUsc2UsT2JqZWN0'@; put 'LmFzc2lnbih7aGVhZGVyczp6ZSx3aXRoWFNSRlRva2VuOiEwfSxTZSkpLnRoZW4oej0+KCgwLEoudGhyb3dJZkVycm9yKSh6KSx0aGlzLnBhcnNlUmVzcG9uc2UoeikpKS5jYXRjaCh6PT5GKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4geWllbGQgdGhpcy5oYW5kbGVF'@; put 'cnJvcih6LCgpPT50aGlzLnBvc3QoaWUsc2UsZ2UsX2UsVGUpKX0pKX0pfXB1dChpZSxzZSxnZSxfZT17fSl7cmV0dXJuIEYodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IFRlPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLmdldEhlYWRlcnMoZ2UsImFw'@; put 'cGxpY2F0aW9uL2pzb24iKSksX2UpO3JldHVybiB0aGlzLmh0dHBDbGllbnQucHV0KGllLHNlLHtoZWFkZXJzOlRlLHdpdGhYU1JGVG9rZW46ITB9KS50aGVuKFNlPT4oKDAsSi50aHJvd0lmRXJyb3IpKFNlKSx0aGlzLnBhcnNlUmVzcG9uc2UoU2UpKSkuY2F0Y2goU2U9PkYodGhpcyx2b2lk'@; put 'IDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiB5aWVsZCB0aGlzLmhhbmRsZUVycm9yKFNlLCgpPT50aGlzLnB1dChpZSxzZSxnZSxfZSkpfSkpfSl9ZGVsZXRlKGllLHNlKXtyZXR1cm4gRih0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7Y29uc3QgZ2U9dGhpcy5nZXRIZWFkZXJz'@; put 'KHNlLCJhcHBsaWNhdGlvbi9qc29uIik7cmV0dXJuIHRoaXMuaHR0cENsaWVudC5kZWxldGUoaWUse2hlYWRlcnM6Z2Usd2l0aFhTUkZUb2tlbjohMH0pLnRoZW4oX2U9PigoMCxKLnRocm93SWZFcnJvcikoX2UpLHRoaXMucGFyc2VSZXNwb25zZShfZSkpKS5jYXRjaChfZT0+Rih0aGlzLHZv'@; put 'aWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuIHlpZWxkIHRoaXMuaGFuZGxlRXJyb3IoX2UsKCk9PnRoaXMuZGVsZXRlKGllLHNlKSl9KSl9KX1wYXRjaChpZSxzZT17fSxnZSl7cmV0dXJuIEYodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IF9lPXRoaXMuZ2V0SGVh'@; put 'ZGVycyhnZSwiYXBwbGljYXRpb24vanNvbiIpO3JldHVybiB0aGlzLmh0dHBDbGllbnQucGF0Y2goaWUsc2Use2hlYWRlcnM6X2Usd2l0aFhTUkZUb2tlbjohMH0pLnRoZW4oVGU9PigoMCxKLnRocm93SWZFcnJvcikoVGUpLHRoaXMucGFyc2VSZXNwb25zZShUZSkpKS5jYXRjaChUZT0+Rih0'@; put 'aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuIHlpZWxkIHRoaXMuaGFuZGxlRXJyb3IoVGUsKCk9PnRoaXMucGF0Y2goaWUsc2UsZ2UpKX0pKX0pfXVwbG9hZEZpbGUoaWUsc2UsZ2Upe3ZhciBfZTtyZXR1cm4gRih0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7Y29u'@; put 'c3QgVGU9dGhpcy5nZXRIZWFkZXJzKGdlLCJhcHBsaWNhdGlvbi9qc29uIik7bnVsbCE9PShfZT10aGlzLmZpbGVVcGxvYWRDc3JmVG9rZW4pJiZ2b2lkIDAhPT1fZSYmX2UudmFsdWUmJihUZVt0aGlzLmZpbGVVcGxvYWRDc3JmVG9rZW4uaGVhZGVyTmFtZV09dGhpcy5maWxlVXBsb2FkQ3Ny'@; put 'ZlRva2VuLnZhbHVlKTt0cnl7Y29uc3QgU2U9eWllbGQgdGhpcy5odHRwQ2xpZW50LnBvc3QoaWUsc2Use2hlYWRlcnM6VGUsdHJhbnNmb3JtUmVxdWVzdDp6ZT0+emV9KTtyZXR1cm57cmVzdWx0OlNlLmRhdGEsZXRhZzpTZS5oZWFkZXJzLmV0YWd9fWNhdGNoKFNlKXtjb25zdCB6ZT1TZS5y'@; put 'ZXNwb25zZTtpZig0MDM9PT16ZT8uc3RhdHVzfHw0NDk9PT16ZT8uc3RhdHVzKXtpZih0aGlzLnBhcnNlQW5kU2V0RmlsZVVwbG9hZENzcmZUb2tlbih6ZSksdGhpcy5maWxlVXBsb2FkQ3NyZlRva2VuKXJldHVybiB0aGlzLnVwbG9hZEZpbGUoaWUsc2UsZ2UpO3Rocm93IFNlfXRocm93IFNl'@; put 'fX0pfXBhcnNlUmVzcG9uc2UoaWUpe2NvbnN0IHNlPWllPy5oZWFkZXJzP2llLmhlYWRlcnMuZXRhZzoiIjtsZXQgZ2UsX2U9ITE7dHJ5e2dlPSJzdHJpbmciPT10eXBlb2YgaWUuZGF0YT9KU09OLnBhcnNlKGllLmRhdGEpOmllLmRhdGF9Y2F0Y2h7dHJ5e2dlPUpTT04ucGFyc2UoKDAsUC5w'@; put 'YXJzZVdlYm91dFJlc3BvbnNlKShpZS5kYXRhKSl9Y2F0Y2h7Z2U9aWUuZGF0YX1fZT0hMH1sZXQgVGU9e3Jlc3VsdDpnZSxldGFnOnNlLHN0YXR1czppZS5zdGF0dXN9O3JldHVybiBfZSYmKFRlLmxvZz1pZS5kYXRhKSxUZX1jcmVhdGVIdHRwQ2xpZW50KGllLHNlKXtjb25zdCBnZT1zZT9u'@; put 'ZXcgSC5BZ2VudChzZSk6dm9pZCAwO3RoaXMuaHR0cENsaWVudD0oMCxCLmNyZWF0ZUF4aW9zSW5zdGFuY2UpKGllLGdlKSx0aGlzLmh0dHBDbGllbnQuZGVmYXVsdHMudmFsaWRhdGVTdGF0dXM9X2U9Pl9lPj0yMDAmJl9lPD00MDF9fSxKLnRocm93SWZFcnJvcj10ZT0+e3ZhciBpZSxzZSxn'@; put 'ZSxfZSxUZSxTZSx6ZTtzd2l0Y2godGUuc3RhdHVzKXtjYXNlIDQwMDppZigib2JqZWN0Ij09dHlwZW9mIHRlLmRhdGEmJiJpbnZhbGlkX2dyYW50Ij09PXRlLmRhdGEuZXJyb3IpdGhyb3cgbmV3IGouTG9naW5SZXF1aXJlZEVycm9yKHRlLmRhdGEpO2lmKCJzdHJpbmciPT10eXBlb2YgdGUu'@; put 'ZGF0YSYmImludmFsaWQgY3NyZiB0b2tlbiEiPT09dGUuZGF0YS50b0xvd2VyQ2FzZSgpKXRocm93IG5ldyBXLkludmFsaWRTQVNqc0NzcmZFcnJvcjticmVhaztjYXNlIDQwMTp0aHJvdyJvYmplY3QiPT10eXBlb2YgdGUuZGF0YT9uZXcgai5Mb2dpblJlcXVpcmVkRXJyb3IodGUuZGF0YSk6'@; put 'bmV3IGouTG9naW5SZXF1aXJlZEVycm9yfWlmKG51bGwhPT0oc2U9bnVsbD09PShpZT10ZS5kYXRhKXx8dm9pZCAwPT09aWU/dm9pZCAwOmllLmVudGl0eUlEKSYmdm9pZCAwIT09c2UmJnNlLmluY2x1ZGVzKCJsb2dpbiIpKXRocm93IG5ldyBqLkxvZ2luUmVxdWlyZWRFcnJvcjtpZigic3Ry'@; put 'aW5nIj09dHlwZW9mIHRlLmRhdGEmJigwLFIuaXNBdXRob3JpemVGb3JtUmVxdWlyZWQpKHRlLmRhdGEpKXRocm93IG5ldyBqLkF1dGhvcml6ZUVycm9yKCJBdXRob3JpemF0aW9uIHJlcXVpcmVkIix0ZS5yZXF1ZXN0LnJlc3BvbnNlVVJMKTtpZigic3RyaW5nIj09dHlwZW9mIHRlLmRhdGEm'@; put 'JigwLFIuaXNMb2dJblJlcXVpcmVkKSh0ZS5kYXRhKSYmKG51bGw9PT0oX2U9bnVsbD09PShnZT10ZS5jb25maWcpfHx2b2lkIDA9PT1nZT92b2lkIDA6Z2UudXJsKXx8dm9pZCAwPT09X2V8fCFfZS5pbmNsdWRlcygiL1NBU0xvZ29uL2xvZ2luIikpKXRocm93IG5ldyBqLkxvZ2luUmVxdWly'@; put 'ZWRFcnJvcjtpZihudWxsIT09KFRlPXRlLmRhdGEpJiZ2b2lkIDAhPT1UZSYmVGUuYXV0aF9yZXF1ZXN0KXRocm93IG5ldyBqLkF1dGhvcml6ZUVycm9yKHRlLmRhdGEubWVzc2FnZSx0ZS5yZXF1ZXN0LnJlc3BvbnNlVVJMKTtpZihudWxsIT09KHplPW51bGw9PT0oU2U9dGUuY29uZmlnKXx8'@; put 'dm9pZCAwPT09U2U/dm9pZCAwOlNlLnVybCkmJnZvaWQgMCE9PXplJiZ6ZS5pbmNsdWRlcygic2FzQXV0aEVycm9yIikpdGhyb3cgbmV3IFkuU0FTOUF1dGhFcnJvcjtjb25zdCB6PXEodGUuZGF0YSk7aWYoeil0aHJvdyB6fTtjb25zdCBxPXRlPT57aWYoIXRlKXJldHVybiBudWxsO3RyeXtj'@; put 'b25zdCBpZT1KU09OLnBhcnNlKHRlPy5yZXBsYWNlKC9bXG5ccl0vZywiICIpKTtpZihpZS5lcnJvckNvZGUmJmllLm1lc3NhZ2UpcmV0dXJuIG5ldyBqLkpvYkV4ZWN1dGlvbkVycm9yKGllLmVycm9yQ29kZSxpZS5tZXNzYWdlLHRlPy5yZXBsYWNlKC9bXG5ccl0vZywiICIpKX1jYXRjaHt9'@; put 'dHJ5e2lmKHRlPy5pbmNsdWRlcygneyJlcnJvckNvZGUnKSl7Y29uc3Qgc2U9dGUuc3BsaXQoJ3siZXJyb3JDb2RlJyk7aWYoc2UubGVuZ3RoPjEpe2NvbnN0IGdlPSd7ImVycm9yQ29kZScrc2VbMV0uc3BsaXQoJyJ9JylbMF0rJyJ9JyxfZT1KU09OLnBhcnNlKGdlLnJlcGxhY2UoL1tcblxy'@; put 'XS9nLCIgIikpO3JldHVybiBuZXcgai5Kb2JFeGVjdXRpb25FcnJvcihfZS5lcnJvckNvZGUsX2UubWVzc2FnZSx0ZT8ucmVwbGFjZSgvW1xuXHJdL2csIlxuIikpfX19Y2F0Y2h7fXRyeXtpZih0ZT8ubWF0Y2goL3N0b3JlZCBwcm9jZXNzIG5vdCBmb3VuZDogL2kpKXtjb25zdCBzZT10ZS5z'@; put 'cGxpdCgvc3RvcmVkIHByb2Nlc3Mgbm90IGZvdW5kOiAvaSk7aWYoc2UubGVuZ3RoPjEpe2NvbnN0IGdlPXNlWzFdLnNwbGl0KCI8aT4iKVsxXS5zcGxpdCgiPC9pPiIpWzBdLF9lPWdlLmVuZHNXaXRoKCJydW5uZXIiKT8iU0FTSlMgcnVubmVyIG5vdCBmb3VuZC4gSGVyZSdzIHRoZSBsaW5r'@; put 'IChodHRwczovL2NsaS5zYXNqcy5pby9hdXRoLyNzYXNqcy1ydW5uZXIpIHRvIHRoZSBTQVMgY29kZSBmb3IgcmVnaXN0ZXJpbmcgdGhlIFNBU2pzIHJ1bm5lciI6YFN0b3JlZCBwcm9jZXNzIG5vdCBmb3VuZDogJHtnZX1gO3JldHVybiBuZXcgai5Kb2JFeGVjdXRpb25FcnJvcig1MDAsX2Us'@; put 'IiIpfX19Y2F0Y2h7fXRyeXtpZighdGU/Lm1hdGNoKC8+PndlYm91dEJFR0lOPDwvKSYmdGU/Lm1hdGNoKC9TdG9yZWQgUHJvY2VzcyBFcnJvci9pKSYmdGU/Lm1hdGNoKC9UaGlzIHJlcXVlc3QgY29tcGxldGVkIHdpdGggZXJyb3JzLi9pKSl7Y29uc3Qgc2U9dGUuc3BsaXQoIjxoMj5TQVMg'@; put 'TG9nPC9oMj4iKTtpZihzZS5sZW5ndGg+MSl7Y29uc3QgZ2U9c2VbMV0uc3BsaXQoIjxwcmU+IilbMV0uc3BsaXQoIjwvcHJlPiIpWzBdO3JldHVybiBuZXcgai5Kb2JFeGVjdXRpb25FcnJvcig1MDAsIlRoaXMgcmVxdWVzdCBjb21wbGV0ZWQgd2l0aCBlcnJvcnMuIixnZSl9fX1jYXRjaHt9'@; put 'cmV0dXJuIG51bGx9fSw3OTU6ZnVuY3Rpb24oY2UsSixiKXsidXNlIHN0cmljdCI7dmFyIEQ9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKEwsWSxCLFcpe3ZvaWQgMD09PVcmJihXPUIpO3ZhciBaPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny'@; put 'aXB0b3IoWSxCKTsoIVp8fCgiZ2V0ImluIFo/IVkuX19lc01vZHVsZTpaLndyaXRhYmxlfHxaLmNvbmZpZ3VyYWJsZSkpJiYoWj17ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWVtCXX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTCxXLFopfTpmdW5jdGlvbihMLFksQixX'@; put 'KXt2b2lkIDA9PT1XJiYoVz1CKSxMW1ddPVlbQl19KSxfPXRoaXMmJnRoaXMuX19zZXRNb2R1bGVEZWZhdWx0fHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihMLFkpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShMLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTpZfSl9OmZ1bmN0aW9uKEws'@; put 'WSl7TC5kZWZhdWx0PVl9KSxwPXRoaXMmJnRoaXMuX19pbXBvcnRTdGFyfHxmdW5jdGlvbihMKXtpZihMJiZMLl9fZXNNb2R1bGUpcmV0dXJuIEw7dmFyIFk9e307aWYobnVsbCE9TClmb3IodmFyIEIgaW4gTCkiZGVmYXVsdCIhPT1CJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5'@; put 'LmNhbGwoTCxCKSYmRChZLEwsQik7cmV0dXJuIF8oWSxMKSxZfSxOPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihMLFksQixXKXtyZXR1cm4gbmV3KEJ8fChCPVByb21pc2UpKShmdW5jdGlvbihYLFEpe2Z1bmN0aW9uIHEoc2Upe3RyeXtpZShXLm5leHQoc2UpKX1jYXRjaChnZSl7'@; put 'UShnZSl9fWZ1bmN0aW9uIHRlKHNlKXt0cnl7aWUoVy50aHJvdyhzZSkpfWNhdGNoKGdlKXtRKGdlKX19ZnVuY3Rpb24gaWUoc2Upe3NlLmRvbmU/WChzZS52YWx1ZSk6ZnVuY3Rpb24gWihYKXtyZXR1cm4gWCBpbnN0YW5jZW9mIEI/WDpuZXcgQihmdW5jdGlvbihRKXtRKFgpfSl9KHNlLnZh'@; put 'bHVlKS50aGVuKHEsdGUpfWllKChXPVcuYXBwbHkoTCxZfHxbXSkpLm5leHQoKSl9KX07T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEouU2FzOVJlcXVlc3RDbGllbnQ9dm9pZCAwO2NvbnN0IHc9Yig4MjI0KSxGPXAoYig3ODU3KSksSD1iKDk3Nzgp'@; put 'LFI9Yig0NTg4KSxqPWIoMTM5NSk7Si5TYXM5UmVxdWVzdENsaWVudD1jbGFzcyBQIGV4dGVuZHMgUi5SZXF1ZXN0Q2xpZW50e2NvbnN0cnVjdG9yKFksQil7c3VwZXIoWSxCKSx0aGlzLmh0dHBDbGllbnQuZGVmYXVsdHMubWF4UmVkaXJlY3RzPTAsdGhpcy5odHRwQ2xpZW50LmRlZmF1bHRz'@; put 'LnZhbGlkYXRlU3RhdHVzPVc9Plc+PTIwMCYmVzwzMDMsdy53cmFwcGVyJiYoKDAsdy53cmFwcGVyKSh0aGlzLmh0dHBDbGllbnQpLHRoaXMuaHR0cENsaWVudC5kZWZhdWx0cy5qYXI9bmV3IEYuQ29va2llSmFyKX1sb2dpbihZLEIsVyl7cmV0dXJuIE4odGhpcyx2b2lkIDAsdm9pZCAwLGZ1'@; put 'bmN0aW9uKigpe2NvbnN0IFo9YC9Vc2VyIEZvbGRlcnMvJHtZfS9NeSBGb2xkZXIvc2FzanMvcnVubmVyYDt0aGlzLmh0dHBDbGllbnQuZGVmYXVsdHMuamFyJiYodGhpcy5odHRwQ2xpZW50LmRlZmF1bHRzLmphci5yZW1vdmVBbGxDb29raWVzKCkseWllbGQgdGhpcy5nZXQoYCR7V30/X3By'@; put 'b2dyYW09JHtafSZfdXNlcm5hbWU9JHtZfSZfcGFzc3dvcmQ9JHtCfWAsdm9pZCAwLCJ0ZXh0L3BsYWluIikpfSl9Z2V0KFksQixXPSJhcHBsaWNhdGlvbi9qc29uIixaPXt9LFg9ITEpe3JldHVybiBOKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdCBxPXtoZWFkZXJzOk9i'@; put 'amVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLmdldEhlYWRlcnMoQixXKSksWikscmVzcG9uc2VUeXBlOiJ0ZXh0L3BsYWluIj09PVc/InRleHQiOiJqc29uIix3aXRoWFNSRlRva2VuOiEwfTtyZXR1cm4idGV4dC9wbGFpbiI9PT1XJiYocS50cmFuc2Zvcm1SZXNwb25zZT12b2lk'@; put 'IDApLHRoaXMuaHR0cENsaWVudC5nZXQoWSxxKS50aGVuKHRlPT4zMDI9PT10ZS5zdGF0dXM/dGhpcy5nZXQodGUuaGVhZGVycy5sb2NhdGlvbixCLFcpOigoMCxSLnRocm93SWZFcnJvcikodGUpLHRoaXMucGFyc2VSZXNwb25zZSh0ZSkpKS5jYXRjaCh0ZT0+Tih0aGlzLHZvaWQgMCx2b2lk'@; put 'IDAsZnVuY3Rpb24qKCl7aWYodGUgaW5zdGFuY2VvZiBqLkpvYkV4ZWN1dGlvbkVycm9yKXRocm93IHRlO3JldHVybiB5aWVsZCB0aGlzLmhhbmRsZUVycm9yKHRlLCgpPT50aGlzLmdldChZLEIsVyxaKS5jYXRjaChpZT0+e3Rocm93KDAsSC5wcmVmaXhNZXNzYWdlKShpZSwiRXJyb3Igd2hp'@; put 'bGUgZXhlY3V0aW5nIGhhbmRsZSBlcnJvciBjYWxsYmFjay4gIil9KSxYKS5jYXRjaChpZT0+e3Rocm93KDAsSC5wcmVmaXhNZXNzYWdlKShpZSwiRXJyb3Igd2hpbGUgaGFuZGxpbmcgZXJyb3IuICIpfSl9KSl9KX1wb3N0KFksQixXLFo9ImFwcGxpY2F0aW9uL2pzb24iLFg9e30pe3JldHVy'@; put 'biBOKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdCBRPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLmdldEhlYWRlcnMoVyxaKSksWCk7cmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KFksQix7aGVhZGVyczpRLHdpdGhYU1JGVG9rZW46ITB9KS50aGVu'@; put 'KHE9Pk4odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiAzMDI9PT1xLnN0YXR1cz95aWVsZCB0aGlzLmdldChxLmhlYWRlcnMubG9jYXRpb24sdm9pZCAwLFosWCk6KCgwLFIudGhyb3dJZkVycm9yKShxKSx0aGlzLnBhcnNlUmVzcG9uc2UocSkpfSkpLmNhdGNoKHE9Pk4o'@; put 'dGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiB5aWVsZCB0aGlzLmhhbmRsZUVycm9yKHEsKCk9PnRoaXMucG9zdChZLEIsVyxaLFgpKX0pKX0pfX19LDM2MDI6KGNlLEosYik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2'@; put 'YWx1ZTohMH0pLEouU0FTSlNfTE9HU19TRVBBUkFUT1I9Si5TYXNqc1JlcXVlc3RDbGllbnQ9dm9pZCAwO2NvbnN0IEQ9Yig0NTg4KTtKLlNhc2pzUmVxdWVzdENsaWVudD1jbGFzcyBfIGV4dGVuZHMgRC5SZXF1ZXN0Q2xpZW50e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0'@; put 'aGlzLmdldEhlYWRlcnM9KE4sdyk9Pnt2YXIgRjtjb25zdCBIPXt9O3JldHVybiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIT09dyYmKEhbIkNvbnRlbnQtVHlwZSJdPXcpLEguQWNjZXB0PSJhcHBsaWNhdGlvbi9qc29uIj09PXc/dzoiKi8qIiwhTiYmdHlwZW9mIHdpbmRv'@; put 'dzwidSImJihOPW51bGwhPT0oRj1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiYWNjZXNzVG9rZW4iKSkmJnZvaWQgMCE9PUY/Rjp2b2lkIDApLE4mJihILkF1dGhvcml6YXRpb249YEJlYXJlciAke059YCksSH19cGFyc2VSZXNwb25zZShOKXtjb25zdCB3PU4/LmhlYWRlcnM/Ti5oZWFkZXJzLmV0'@; put 'YWc6IiI7bGV0IEgsUixqLEY9e307dHJ5e0Y9InN0cmluZyI9PXR5cGVvZiBOLmRhdGE/SlNPTi5wYXJzZShOLmRhdGEpOk4uZGF0YX1jYXRjaHtpZihOLmRhdGEuaW5jbHVkZXMoSi5TQVNKU19MT0dTX1NFUEFSQVRPUikpe2NvbnN0e2RhdGE6WX09TixCPVkuc3BsaXQoSi5TQVNKU19MT0dT'@; put 'X1NFUEFSQVRPUik7SD1CLnNwbGljZSgwLDEpWzBdLHZvaWQgMCE9PUgmJihGPUgpO2NvbnN0IFc9Qi5zcGxpY2UoMCxCLmxlbmd0aC0xKSxaPW5ldyBSZWdFeHAoYCR7Si5TQVNKU19MT0dTX1NFUEFSQVRPUn0kYCksWD1CWzBdO1gmJihaLnRlc3QoWSk/Vy5sZW5ndGg+MSYmVy5wdXNoKFgp'@; put 'Omo9WCksUj1XLmpvaW4oSi5TQVNKU19MT0dTX1NFUEFSQVRPUil9ZWxzZSBGPU4uZGF0YX1jb25zdCBQPXtyZXN1bHQ6Rixsb2c6Unx8IiIsZXRhZzp3LHN0YXR1czpOLnN0YXR1c307cmV0dXJuIGomJihQLnByaW50T3V0cHV0PWopLFB9fSxKLlNBU0pTX0xPR1NfU0VQQVJBVE9SPSJTQVNK'@; put 'U19MT0dTX1NFUEFSQVRPUl8xNjNlZTE3YjZmZjI0ZjAyODkyODk3MmQ4MGEyNjc4NCJ9LDQ3MDooY2UsSik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSw0NjY2OihjZSxKKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVm'@; put 'aW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDYxNzc6KGNlLEopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sNTc2NjooY2UsSik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5'@; put 'KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSw0OTc1OihjZSxKKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDIxNTooY2UsSik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1'@; put 'bGUiLHt2YWx1ZTohMH0pfSw0NzgyOihjZSxKKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDQxNjg6KGNlLEopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6'@; put 'ITB9KX0sODUxNjooY2UsSik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSwzODQwOihjZSxKKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDMxNTM6'@; put 'KGNlLEopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sMTQyODooY2UsSik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSw1ODQxOihjZSxKKT0+eyJ1'@; put 'c2Ugc3RyaWN0Ijt2YXIgRCxfO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLkxvZ2luTWVjaGFuaXNtPUouU0FTanNDb25maWc9dm9pZCAwLEouU0FTanNDb25maWc9Y2xhc3MgYntjb25zdHJ1Y3Rvcigpe3RoaXMuc2VydmVyVXJsPSIiLHRoaXMu'@; put 'cGF0aFNBU0pTPSIiLHRoaXMucGF0aFNBUzk9IiIsdGhpcy5wYXRoU0FTVml5YT0iIix0aGlzLmFwcExvYz0iIix0aGlzLnNlcnZlclR5cGU9bnVsbCx0aGlzLmRlYnVnPSEwLHRoaXMudmVyYm9zZT0hMCx0aGlzLmNvbnRleHROYW1lPSIiLHRoaXMudXNlQ29tcHV0ZUFwaT1udWxsLHRoaXMu'@; put 'bG9naW5NZWNoYW5pc209RC5EZWZhdWx0LHRoaXMucmVxdWVzdEhpc3RvcnlMaW1pdD0xMH19LChfPUQ9Si5Mb2dpbk1lY2hhbmlzbXx8KEouTG9naW5NZWNoYW5pc209e30pKS5EZWZhdWx0PSJEZWZhdWx0IixfLlJlZGlyZWN0ZWQ9IlJlZGlyZWN0ZWQifSw2MDM4OihjZSxKKT0+eyJ1c2Ug'@; put 'c3RyaWN0Ijt2YXIgRDtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5TZXNzaW9uU3RhdGU9dm9pZCAwLChEPUouU2Vzc2lvblN0YXRlfHwoSi5TZXNzaW9uU3RhdGU9e30pKS5Db21wbGV0ZWQ9ImNvbXBsZXRlZCIsRC5SdW5uaW5nPSJydW5uaW5n'@; put 'IixELlBlbmRpbmc9InBlbmRpbmciLEQuSWRsZT0iaWRsZSIsRC5VbmF2YWlsYWJsZT0idW5hdmFpbGFibGUiLEQuTm9TdGF0ZT0iIixELkZhaWxlZD0iZmFpbGVkIixELkVycm9yPSJlcnJvciJ9LDk0OTM6KGNlLEopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJf'@; put 'X2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sODY1MDooY2UsSik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSwxMjQ6KGNlLEopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7'@; put 'dmFsdWU6ITB9KSxKLkF1dGhvcml6ZUVycm9yPXZvaWQgMDtjbGFzcyBiIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoXyxwKXtzdXBlcihfKSx0aGlzLm1lc3NhZ2U9Xyx0aGlzLmNvbmZpcm1Vcmw9cCx0aGlzLm5hbWU9IkF1dGhvcml6ZUVycm9yIixPYmplY3Quc2V0UHJvdG90eXBlT2Yo'@; put 'dGhpcyxiLnByb3RvdHlwZSl9fUouQXV0aG9yaXplRXJyb3I9Yn0sOTQ2NTooY2UsSik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEouQ2VydGlmaWNhdGVFcnJvcj12b2lkIDA7Y2xhc3MgRCBleHRlbmRzIEVycm9ye2Nv'@; put 'bnN0cnVjdG9yKHApe3N1cGVyKGAke3B9XG5QbGVhc2UgdmlzaXQgdGhlIGxpbmsgYmVsb3cgZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24gb24gdGhpcyBpc3N1ZTpcbi0gaHR0cHM6Ly9naXRodWIuY29tL3Nhc2pzL2NsaS9pc3N1ZXMvMTE4MSNpc3N1ZWNvbW1lbnQtMTA5MDYzODU4NFxuYCks'@; put 'dGhpcy5uYW1lPSJDZXJ0aWZpY2F0ZUVycm9yIixPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxELnByb3RvdHlwZSl9fUouQ2VydGlmaWNhdGVFcnJvcj1EfSw1MjY3OihjZSxKKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEw'@; put 'fSksSi5Db21wdXRlSm9iRXhlY3V0aW9uRXJyb3I9dm9pZCAwO2NsYXNzIGIgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihfLHApe3N1cGVyKCJFcnJvcjogSm9iIGV4ZWN1dGlvbiBmYWlsZWQiKSx0aGlzLmpvYj1fLHRoaXMubG9nPXAsdGhpcy5uYW1lPSJDb21wdXRlSm9iRXhlY3V0aW9u'@; put 'RXJyb3IiLE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLGIucHJvdG90eXBlKX19Si5Db21wdXRlSm9iRXhlY3V0aW9uRXJyb3I9Yn0sOTIzMjooY2UsSik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEouRXJyb3JSZXNw'@; put 'b25zZT12b2lkIDAsSi5FcnJvclJlc3BvbnNlPWNsYXNzIGJ7Y29uc3RydWN0b3IoXyxwLE4pe2xldCB3PXA7aWYoIm9iamVjdCIhPXR5cGVvZiBwKXRyeXt3PUpTT04ucGFyc2UocCl9Y2F0Y2h7Tj1wLHc9IiJ9dGhpcy5lcnJvcj17bWVzc2FnZTpfLGRldGFpbHM6dyxyYXc6Tn19fX0sNTEw'@; put 'OTooY2UsSik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEouSW50ZXJuYWxTZXJ2ZXJFcnJvcj12b2lkIDA7Y2xhc3MgYiBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKCl7c3VwZXIoIkVycm9yOiBJbnRlcm5hbCBzZXJ2'@; put 'ZXIgZXJyb3IuIiksdGhpcy5uYW1lPSJJbnRlcm5hbFNlcnZlckVycm9yIixPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxiLnByb3RvdHlwZSl9fUouSW50ZXJuYWxTZXJ2ZXJFcnJvcj1ifSw1NTE4OihjZSxKKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19l'@; put 'c01vZHVsZSIse3ZhbHVlOiEwfSksSi5JbnZhbGlkSnNvbkVycm9yPXZvaWQgMDtjbGFzcyBiIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoKXtzdXBlcigiRXJyb3I6IGludmFsaWQgSnNvbiBzdHJpbmciKSx0aGlzLm5hbWU9IkludmFsaWRKc29uRXJyb3IiLE9iamVjdC5zZXRQcm90b3R5'@; put 'cGVPZih0aGlzLGIucHJvdG90eXBlKX19Si5JbnZhbGlkSnNvbkVycm9yPWJ9LDEwMDU6KGNlLEopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLkludmFsaWRTQVNqc0NzcmZFcnJvcj12b2lkIDA7Y2xhc3MgYiBleHRl'@; put 'bmRzIEVycm9ye2NvbnN0cnVjdG9yKCl7c3VwZXIoIkF1dGggZXJyb3I6IEludmFsaWQgQ1NSRiB0b2tlbiEiKSx0aGlzLm5hbWU9IkludmFsaWRTQVNqc0NzcmZFcnJvciIsT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsYi5wcm90b3R5cGUpfX1KLkludmFsaWRTQVNqc0NzcmZFcnJvcj1i'@; put 'fSw4NTMxOihjZSxKKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5Kb2JFeGVjdXRpb25FcnJvcj12b2lkIDA7Y2xhc3MgYiBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKF8scCxOKXtzdXBlcihgRXJyb3IgQ29kZSAk'@; put 'e199OiAke3B9YCksdGhpcy5lcnJvckNvZGU9Xyx0aGlzLmVycm9yTWVzc2FnZT1wLHRoaXMucmVzdWx0PU4sdGhpcy5uYW1lPSJKb2JFeGVjdXRpb25FcnJvciIsT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsYi5wcm90b3R5cGUpfX1KLkpvYkV4ZWN1dGlvbkVycm9yPWJ9LDkwNzk6KGNl'@; put 'LEopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLkpvYlN0YXRlUG9sbEVycm9yPXZvaWQgMDtjbGFzcyBiIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoXyxwKXtzdXBlcihgRXJyb3Igd2hpbGUgcG9sbGluZyBqb2Ig'@; put 'c3RhdGUgZm9yIGpvYiAke199OiAke3AubWVzc2FnZXx8cH1gKSx0aGlzLm9yaWdpbmFsRXJyb3I9cCx0aGlzLm5hbWU9IkpvYlN0YXRlUG9sbEVycm9yIixPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxiLnByb3RvdHlwZSl9fUouSm9iU3RhdGVQb2xsRXJyb3I9Yn0sMzA5NjooY2UsSik9'@; put 'PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEouSnNvblBhcnNlQXJyYXlFcnJvcj12b2lkIDA7Y2xhc3MgYiBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKCl7c3VwZXIoIkNhbiBub3QgcGFyc2UgYXJyYXkgb2JqZWN0IHRv'@; put 'IGpzb24uIiksdGhpcy5uYW1lPSJKc29uUGFyc2VBcnJheUVycm9yIixPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxiLnByb3RvdHlwZSl9fUouSnNvblBhcnNlQXJyYXlFcnJvcj1ifSw2NzQzOihjZSxKKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01v'@; put 'ZHVsZSIse3ZhbHVlOiEwfSksSi5Mb2dpblJlcXVpcmVkRXJyb3I9dm9pZCAwO2NsYXNzIGIgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihfKXtzdXBlcihgQXV0aCBlcnJvcjogJHtfP0pTT04uc3RyaW5naWZ5KF8sbnVsbCwyKToiWW91IG11c3QgYmUgbG9nZ2VkIGluIHRvIGFjY2VzcyB0'@; put 'aGlzIHJlc291cmNlIn1gKSx0aGlzLm5hbWU9IkxvZ2luUmVxdWlyZWRFcnJvciIsT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsYi5wcm90b3R5cGUpfX1KLkxvZ2luUmVxdWlyZWRFcnJvcj1ifSw3ODY0OihjZSxKKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwi'@; put 'X19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5Ob1Nlc3Npb25TdGF0ZUVycm9yPXZvaWQgMDtjbGFzcyBiIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoXyxwLE4pe3N1cGVyKGBDb3VsZCBub3QgZ2V0IHNlc3Npb24gc3RhdGUuIFNlcnZlciByZXNwb25kZWQgd2l0aCAke199IHdoaWxzdCBj'@; put 'aGVja2luZyBzdGF0ZTogJHtwfWApLHRoaXMuc2VydmVyUmVzcG9uc2VTdGF0dXM9Xyx0aGlzLnNlc3Npb25TdGF0ZVVybD1wLHRoaXMubG9nVXJsPU4sdGhpcy5uYW1lPSJOb1Nlc3Npb25TdGF0dXMiLE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLGIucHJvdG90eXBlKX19Si5Ob1Nlc3Np'@; put 'b25TdGF0ZUVycm9yPWJ9LDk1Nzc6KGNlLEopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLk5vdEZvdW5kRXJyb3I9dm9pZCAwO2NsYXNzIGIgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihfKXtzdXBlcihgRXJyb3I6'@; put 'IFJlc291cmNlIGF0ICR7X30gd2FzIG5vdCBmb3VuZGApLHRoaXMudXJsPV8sdGhpcy5uYW1lPSJOb3RGb3VuZEVycm9yIixPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxiLnByb3RvdHlwZSl9fUouTm90Rm91bmRFcnJvcj1ifSw5Mjc5OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO09iamVj'@; put 'dC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLlJvb3RGb2xkZXJOb3RGb3VuZEVycm9yPXZvaWQgMDtjb25zdCBEPWIoNjc5OSk7Y2xhc3MgXyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKE4sdyxGKXtsZXQgSD1gUm9vdCBmb2xkZXIgJHtOfSB3YXMgbm90'@; put 'IGZvdW5kLlxuUGxlYXNlIGNoZWNrICR7d30vU0FTRHJpdmUuXG5JZiB0aGUgZm9sZGVyIERPRVMgZXhpc3QgdGhlbiBpdCBpcyBsaWtlbHkgYSBwZXJtaXNzaW9uIHByb2JsZW0uXG5gO2lmKEYpe2xldCBqPSgwLEQuZGVjb2RlVG9rZW4pKEYpLnNjb3BlO2o9ai5tYXAoUD0+IiogIitQKSxI'@; put 'Kz0iWW91ciBhY2Nlc3MgdG9rZW4gY29udGFpbnMgdGhlIGZvbGxvd2luZyBzY29wZXM6XG4iK2ouam9pbigiXG4iKX1zdXBlcihIKSx0aGlzLm5hbWU9IlJvb3RGb2xkZXJOb3RGb3VuZEVycm9yIixPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxfLnByb3RvdHlwZSl9fUouUm9vdEZvbGRl'@; put 'ck5vdEZvdW5kRXJyb3I9X30sOTUyNjooY2UsSik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEouU0FTOUF1dGhFcnJvcj12b2lkIDA7Y2xhc3MgYiBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKCl7c3VwZXIoIlRoZSBj'@; put 'cmVkZW50aWFscyB5b3UgcHJvdmlkZWQgY2Fubm90IGJlIGF1dGhlbnRpY2F0ZWQuIFBsZWFzZSBwcm92aWRlIGEgdmFsaWQgc2V0IG9mIGNyZWRlbnRpYWxzLiIpLHRoaXMubmFtZT0iQXV0aG9yaXplRXJyb3IiLE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLGIucHJvdG90eXBlKX19Si5T'@; put 'QVM5QXV0aEVycm9yPWJ9LDg4NzU6KGNlLEopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLldlYm91dFJlc3BvbnNlRXJyb3I9dm9pZCAwO2NsYXNzIGIgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihfKXtzdXBlcihg'@; put 'RXJyb3I6IGVycm9yIHdoaWxlIHBhcnNpbmcgcmVzcG9uc2UgZnJvbSAke199YCksdGhpcy51cmw9Xyx0aGlzLm5hbWU9IldlYm91dFJlc3BvbnNlRXJyb3IiLE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLGIucHJvdG90eXBlKX19Si5XZWJvdXRSZXNwb25zZUVycm9yPWJ9LDEzOTU6ZnVu'@; put 'Y3Rpb24oY2UsSixiKXsidXNlIHN0cmljdCI7dmFyIEQ9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKHAsTix3LEYpe3ZvaWQgMD09PUYmJihGPXcpO3ZhciBIPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTix3KTsoIUh8fCgiZ2V0'@; put 'ImluIEg/IU4uX19lc01vZHVsZTpILndyaXRhYmxlfHxILmNvbmZpZ3VyYWJsZSkpJiYoSD17ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTlt3XX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkocCxGLEgpfTpmdW5jdGlvbihwLE4sdyxGKXt2b2lkIDA9PT1GJiYoRj13KSxw'@; put 'W0ZdPU5bd119KSxfPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihwLE4pe2Zvcih2YXIgdyBpbiBwKSJkZWZhdWx0IiE9PXcmJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTix3KSYmRChOLHAsdyl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2Vz'@; put 'TW9kdWxlIix7dmFsdWU6ITB9KSxfKGIoMTI0KSxKKSxfKGIoOTQ2NSksSiksXyhiKDUyNjcpLEopLF8oYig5MjMyKSxKKSxfKGIoNTEwOSksSiksXyhiKDU1MTgpLEopLF8oYig4NTMxKSxKKSxfKGIoOTA3OSksSiksXyhiKDMwOTYpLEopLF8oYig2NzQzKSxKKSxfKGIoNzg2NCksSiksXyhi'@; put 'KDk1NzcpLEopLF8oYig5Mjc5KSxKKSxfKGIoODg3NSksSil9LDEyMzA6ZnVuY3Rpb24oY2UsSixiKXsidXNlIHN0cmljdCI7dmFyIEQ9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKHAsTix3LEYpe3ZvaWQgMD09PUYmJihGPXcpO3ZhciBIPU9i'@; put 'amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTix3KTsoIUh8fCgiZ2V0ImluIEg/IU4uX19lc01vZHVsZTpILndyaXRhYmxlfHxILmNvbmZpZ3VyYWJsZSkpJiYoSD17ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTlt3XX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHko'@; put 'cCxGLEgpfTpmdW5jdGlvbihwLE4sdyxGKXt2b2lkIDA9PT1GJiYoRj13KSxwW0ZdPU5bd119KSxfPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihwLE4pe2Zvcih2YXIgdyBpbiBwKSJkZWZhdWx0IiE9PXcmJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwo'@; put 'Tix3KSYmRChOLHAsdyl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxfKGIoNDcwKSxKKSxfKGIoNDY2NiksSiksXyhiKDQ5NzUpLEopLF8oYig1NzY2KSxKKSxfKGIoMjE1KSxKKSxfKGIoNDc4MiksSiksXyhiKDQxNjgpLEopLF8oYig4NTE2KSxK'@; put 'KSxfKGIoMzg0MCksSiksXyhiKDU4NDEpLEopLF8oYigxNDI4KSxKKSxfKGIoNjAzOCksSiksXyhiKDk0OTMpLEopLF8oYigzMTUzKSxKKSxfKGIoODY1MCksSiksXyhiKDYxNzcpLEopLF8oYigxMzk1KSxKKX0sMzMwMjpmdW5jdGlvbihjZSxKKXsidXNlIHN0cmljdCI7dmFyIGI9dGhpcyYm'@; put 'dGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKF8scCxOLHcpe3JldHVybiBuZXcoTnx8KE49UHJvbWlzZSkpKGZ1bmN0aW9uKEgsUil7ZnVuY3Rpb24gaihZKXt0cnl7TCh3Lm5leHQoWSkpfWNhdGNoKEIpe1IoQil9fWZ1bmN0aW9uIFAoWSl7dHJ5e0wody50aHJvdyhZKSl9Y2F0Y2goQil7UihC'@; put 'KX19ZnVuY3Rpb24gTChZKXtZLmRvbmU/SChZLnZhbHVlKTpmdW5jdGlvbiBGKEgpe3JldHVybiBIIGluc3RhbmNlb2YgTj9IOm5ldyBOKGZ1bmN0aW9uKFIpe1IoSCl9KX0oWS52YWx1ZSkudGhlbihqLFApfUwoKHc9dy5hcHBseShfLHB8fFtdKSkubmV4dCgpKX0pfTtPYmplY3QuZGVmaW5l'@; put 'UHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5hcHBlbmRFeHRyYVJlc3BvbnNlQXR0cmlidXRlcz12b2lkIDAsSi5hcHBlbmRFeHRyYVJlc3BvbnNlQXR0cmlidXRlcz1mdW5jdGlvbiBEKF8scCl7cmV0dXJuIGIodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2xl'@; put 'dCBOPXt9O2lmKHA/Lmxlbmd0aCl7Y29uc3Qgdz1wLnJlZHVjZSgoRixIKT0+KEZbSF09X1tIXSxGKSx7fSk7Tj1PYmplY3QuYXNzaWduKHtyZXN1bHQ6Xy5yZXN1bHR9LHcpfWVsc2UgTj1fLnJlc3VsdDtyZXR1cm4gTn0pfX0sNzkyMjpmdW5jdGlvbihjZSxKKXsidXNlIHN0cmljdCI7dmFy'@; put 'IGI9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKF8scCxOLHcpe3JldHVybiBuZXcoTnx8KE49UHJvbWlzZSkpKGZ1bmN0aW9uKEgsUil7ZnVuY3Rpb24gaihZKXt0cnl7TCh3Lm5leHQoWSkpfWNhdGNoKEIpe1IoQil9fWZ1bmN0aW9uIFAoWSl7dHJ5e0wody50aHJvdyhZKSl9Y2F0'@; put 'Y2goQil7UihCKX19ZnVuY3Rpb24gTChZKXtZLmRvbmU/SChZLnZhbHVlKTpmdW5jdGlvbiBGKEgpe3JldHVybiBIIGluc3RhbmNlb2YgTj9IOm5ldyBOKGZ1bmN0aW9uKFIpe1IoSCl9KX0oWS52YWx1ZSkudGhlbihqLFApfUwoKHc9dy5hcHBseShfLHB8fFtdKSkubmV4dCgpKX0pfTtPYmpl'@; put 'Y3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5hc3luY0ZvckVhY2g9dm9pZCAwLEouYXN5bmNGb3JFYWNoPWZ1bmN0aW9uIEQoXyxwKXtyZXR1cm4gYih0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7Zm9yKGxldCBOPTA7TjxfLmxlbmd0aDtOKysp'@; put 'eWllbGQgcChfW05dLE4sXyl9KX19LDM3OTM6KGNlLEopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLmNvbXBhcmVUaW1lc3RhbXBzPXZvaWQgMCxKLmNvbXBhcmVUaW1lc3RhbXBzPShELF8pPT5fLnRpbWVzdGFtcC5n'@; put 'ZXRUaW1lKCktRC50aW1lc3RhbXAuZ2V0VGltZSgpfSwyNDAyOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNTEwOCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEouaXNGb3JtYXRzVGFibGU9Si5jb252ZXJ0VG9DU1Y9dm9pZCAwO2Nv'@; put 'bnN0IF89Yig2NDY3KSxwPWIoOTc3OCk7Si5jb252ZXJ0VG9DU1Y9KEgsUik9Pnt2YXIgajtpZighSFtSXSl7Y29uc3QgUT0oMCxwLnByZWZpeE1lc3NhZ2UpKCJObyB0YWJsZSBwcm92aWRlZCB0byBiZSBjb252ZXJ0ZWQgdG8gQ1NWLiIsIkVycm9yIHdoaWxlIGNvbnZlcnRpbmcgdG8gQ1NW'@; put 'LiAiKTt0aHJvdyJzdHJpbmciPT10eXBlb2YgUT9uZXcgRXJyb3IoUSk6UX1jb25zdCBQPUhbUl07aWYoIUFycmF5LmlzQXJyYXkoUCkpcmV0dXJuIiI7bGV0IEIsTD1udWxsPT09KGo9SFtgJCR7Un1gXSl8fHZvaWQgMD09PWo/dm9pZCAwOmouZm9ybWF0cyxZPVtdLFc9ITE7TCYmKFk9T2Jq'@; put 'ZWN0LmtleXMoTCkubWFwKFE9PmAke1F9OiR7TFtRXX1gKSk7Y29uc3QgWj1PYmplY3Qua2V5cyhQWzBdKTtyZXR1cm4gWi5mb3JFYWNoKFE9PntpZighTHx8IU9iamVjdC5rZXlzKEwpLmluY2x1ZGVzKFEpKXtsZXQgcT0hMSx0ZT0hMTtpZihQLmZvckVhY2goaWU9PntudWxsPT09aWVbUV18'@; put 'fCJudW1iZXIiPT10eXBlb2YgaWVbUV0/cT0hMDoic3RyaW5nIj09dHlwZW9mIGllW1FdJiYoMCxfLmlzU3BlY2lhbE1pc3NpbmcpKGllW1FdKSYmKHRlPSEwKX0pLHEmJnRlKVkucHVzaChgJHtRfTpiZXN0LmApLEx8fChMPXt9KSxMW1FdPSJiZXN0LiI7ZWxzZXtsZXQgaWU9bnVsbCxzZT0h'@; put 'MSxnZT0tMTtjb25zdCBfZT1QLm1hcCgoVGUsU2UpPT57aWYoVGVbUV18fCIiPT09VGVbUV0pe2xldCB6ZTtyZXR1cm4gaWU/c2V8fChzZT0oIiI9PT1UZVtRXXx8InN0cmluZyI9PXR5cGVvZiBUZVtRXT8iY2hhcnMiOiJudW1iZXIiKSE9PWllLGdlPXNlP1NlKzE6LTEpOmllPSIiPT09VGVb'@; put 'UV18fCJzdHJpbmciPT10eXBlb2YgVGVbUV0/ImNoYXJzIjoibnVtYmVyIiwic3RyaW5nIj09dHlwZW9mIFRlW1FdJiYoemU9RihUZVtRXSkpLHplfX0pLnNvcnQoKFRlLFNlKT0+U2UtVGUpWzBdO19lJiZfZT4zMjc2NSYmKFc9ITApLHNlJiZELmVycm9yKGBSb3cgKCR7Z2V9KSwgQ29sdW1u'@; put 'ICgke1F9KSBoYXMgbWl4ZWQgdHlwZXM6IEVSUk9SYCksWS5wdXNoKGAke1F9OiR7ImNoYXJzIj09PWllPyIkY2hhciI6IiJ9JHtfZXx8KCJjaGFycyI9PT1pZT8iMSI6ImJlc3QiKX0uYCl9fX0pLEwmJihZPVkuc29ydCgoUSxxKT0+Wi5pbmRleE9mKFEucmVwbGFjZSgvOi4qLywiIikpLVou'@; put 'aW5kZXhPZihxLnJlcGxhY2UoLzouKi8sIiIpKSkpLFc/IkVSUk9SOiBMQVJHRSBTVFJJTkcgTEVOR1RIIjooQj1QLm1hcChRPT5PYmplY3Qua2V5cyhRKS5tYXAoKHRlLGllKT0+e2xldCBzZTtjb25zdCBnZT1RW3RlXTtpZigibnVtYmVyIj09dHlwZW9mIGdlKXJldHVybiBnZTtpZihzZT1u'@; put 'dWxsPT09Z2U/IiI6Z2UsTCYmImJlc3QuIj09PUxbdGVdKXtpZihzZSYmISgwLF8uaXNTcGVjaWFsTWlzc2luZykoc2UpKXRocm93IG5ldyBFcnJvcigiQSBTcGVjaWFsIG1pc3NpbmcgdmFsdWUgY2FuIG9ubHkgYmUgYSBzaW5nbGUgY2hhcmFjdGVyIGZyb20gJ0EnIHRvICdaJywgJ18nLCAn'@; put 'LlthLXpdJywgJy5fJyIpO3JldHVybmAke3NlLmluY2x1ZGVzKCIuIik/IiI6Ii4ifSR7c2UudG9Mb3dlckNhc2UoKX1gfXJldHVybiBzZT1zZS5yZXBsYWNlKC8iL2csJyIiJyksc2U9YCIke3NlfSJgLHNlLnN1YnN0cmluZygxLHNlLmxlbmd0aC0xKS5zZWFyY2goLyhcdHxcbnxccnwsfFwn'@; put 'fFwiKS9nbSk8MCYmKHNlPXNlLnN1YnN0cmluZygxLHNlLmxlbmd0aC0xKSksc2U9c2UucmVwbGFjZSgvXHJcbi9nbSwiXG4iKSwiIj09PXNlJiZZW2llXS5pbmNsdWRlcygiYmVzdCIpJiYoc2U9Ii4iKSxzZX0pLmpvaW4oIiwiKSksWS5qb2luKCIsIikucmVwbGFjZSgvLC9nLCIgIikrIlxy'@; put 'XG4iK0Iuam9pbigiXHJcbiIpKX0sSi5pc0Zvcm1hdHNUYWJsZT1IPT4vXlwkLiovLnRlc3QoSCk7Y29uc3QgRj1IPT57bGV0IFI9SC5sZW5ndGg7Zm9yKGxldCBqPUgubGVuZ3RoLTE7aj49MDtqLS0pe2NvbnN0IFA9SC5jaGFyQ29kZUF0KGopO1A+MTI3JiZQPD0yMDQ3P1IrKzpQPjIwNDcm'@; put 'JlA8PTY1NTM1JiYoUis9MiksUD49NTYzMjAmJlA8PTU3MzQzJiZqLS19cmV0dXJuIFJ9fSw2MTE2OmZ1bmN0aW9uKGNlLEosYil7InVzZSBzdHJpY3QiO3ZhciBEPXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihOKXtyZXR1cm4gTiYmTi5fX2VzTW9kdWxlP046e2RlZmF1'@; put 'bHQ6Tn19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLmNyZWF0ZUF4aW9zSW5zdGFuY2U9dm9pZCAwO2NvbnN0IF89RChiKDcyMTgpKTtKLmNyZWF0ZUF4aW9zSW5zdGFuY2U9KE4sdyk9Pl8uZGVmYXVsdC5jcmVhdGUoe2Jhc2VVUkw6TixodHRw'@; put 'c0FnZW50Ond9KX0sOTgyNTooY2UsSik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEouZGVsYXk9dm9pZCAwLEouZGVsYXk9RD0+bmV3IFByb21pc2UoXz0+c2V0VGltZW91dChfLEQpKX0sOTkwOmZ1bmN0aW9uKGNlLEos'@; put 'Yil7InVzZSBzdHJpY3QiO3ZhciBEPWIoNDE1NSksXz1iKDUxMDgpLHA9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKEgsUixqLFApe3JldHVybiBuZXcoanx8KGo9UHJvbWlzZSkpKGZ1bmN0aW9uKFksQil7ZnVuY3Rpb24gVyhRKXt0cnl7WChQLm5leHQoUSkpfWNhdGNoKHEpe0Io'@; put 'cSl9fWZ1bmN0aW9uIFooUSl7dHJ5e1goUC50aHJvdyhRKSl9Y2F0Y2gocSl7QihxKX19ZnVuY3Rpb24gWChRKXtRLmRvbmU/WShRLnZhbHVlKTpmdW5jdGlvbiBMKFkpe3JldHVybiBZIGluc3RhbmNlb2Ygaj9ZOm5ldyBqKGZ1bmN0aW9uKEIpe0IoWSl9KX0oUS52YWx1ZSkudGhlbihXLFop'@; put 'fVgoKFA9UC5hcHBseShILFJ8fFtdKSkubmV4dCgpKX0pfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5mZXRjaExvZz1KLmZldGNoTG9nQnlDaHVua3M9dm9pZCAwO2NvbnN0IE49Yig5Nzc4KTtKLmZldGNoTG9nQnlDaHVua3M9KEgsUixqLFAp'@; put 'PT5wKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiB5aWVsZCgwLEouZmV0Y2hMb2cpKEgsUixqLDAsUCl9KSxKLmZldGNoTG9nPShILFIsaixQLEwpPT5wKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IFk9RC5sb2dnZXJ8fF87bGV0IEI9IiI7'@; put 'Y29uc3QgVz1MPDFlND9MOjFlNDtkb3tZLmluZm8oYEZldGNoaW5nIGxvZ3MgZnJvbSBsaW5lIG5vOiAke1ArMX0gdG8gJHtQK1d9IG9mICR7TH0uYCk7Y29uc3QgWj15aWVsZCBILmdldChgJHtqfT9zdGFydD0ke1B9JmxpbWl0PSR7V31gLFIpLnRoZW4oUT0+US5yZXN1bHQpLmNhdGNoKFE9'@; put 'Pnt0aHJvdygwLE4ucHJlZml4TWVzc2FnZSkoUSwiRXJyb3Igd2hpbGUgZ2V0dGluZyBsb2cuICIpfSk7aWYoMD09PVouaXRlbXMubGVuZ3RoKWJyZWFrO0IrPVouaXRlbXMubWFwKFE9PlEubGluZSkuam9pbigiXG4iKSxQKz1XfXdoaWxlKFA8TCk7cmV0dXJuIEJ9KX0sNzE0OihjZSxKLGIp'@; put 'PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLmZvcm1hdERhdGFGb3JSZXF1ZXN0PXZvaWQgMDtjb25zdCBEPWIoMjQwMiksXz1iKDQ3OTkpO0ouZm9ybWF0RGF0YUZvclJlcXVlc3Q9Tj0+e2NvbnN0IHc9W107bGV0IEY9'@; put 'MDtjb25zdCBIPXt9O2Zvcihjb25zdCBSIGluIE4pe2lmKCgwLEQuaXNGb3JtYXRzVGFibGUpKFIpJiZPYmplY3Qua2V5cyhOKS5pbmNsdWRlcyhSLnJlcGxhY2UoL15cJC8sIiIpKSljb250aW51ZTtGKyssKDAsRC5pc0Zvcm1hdHNUYWJsZSkoUil8fHcucHVzaChSKTtjb25zdCBqPSgwLEQu'@; put 'Y29udmVydFRvQ1NWKShOLFIpO2lmKCJFUlJPUjogTEFSR0UgU1RSSU5HIExFTkdUSCI9PT1qKXRocm93IG5ldyBFcnJvcigiVGhlIG1heCBsZW5ndGggb2YgYSBzdHJpbmcgdmFsdWUgaW4gU0FTanMgaXMgMzI3NjUgY2hhcmFjdGVycy4iKTtpZihqLmxlbmd0aD4xNmUzKXtjb25zdCBQPSgw'@; put 'LF8uc3BsaXRDaHVua3MpKGopO0hbYHNhc2pzJHtGfWRhdGEwYF09UC5sZW5ndGgsUC5mb3JFYWNoKChMLFkpPT57SFtgc2FzanMke0Z9ZGF0YSR7WSsxfWBdPUx9KX1lbHNlIEhbYHNhc2pzJHtGfWRhdGFgXT1qfXJldHVybiBILnNhc2pzX3RhYmxlcz13LmpvaW4oIiAiKSxIfX0sODQ1ODpm'@; put 'dW5jdGlvbihjZSxKLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgRD10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24odyl7cmV0dXJuIHcmJncuX19lc01vZHVsZT93OntkZWZhdWx0Ond9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5n'@; put 'ZXRGb3JtRGF0YT12b2lkIDA7Y29uc3QgXz1iKDU5MjgpLHA9RChiKDYyMzApKTtKLmdldEZvcm1EYXRhPSgpPT4oMCxfLmlzTm9kZSkoKT9uZXcgcC5kZWZhdWx0Om5ldyBGb3JtRGF0YX0sMzI2MDooY2UsSik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNN'@; put 'b2R1bGUiLHt2YWx1ZTohMH0pLEouZ2V0VXNlckxhbmd1YWdlPXZvaWQgMCxKLmdldFVzZXJMYW5ndWFnZT0oKT0+d2luZG93Lm5hdmlnYXRvci5sYW5ndWFnZXx8d2luZG93Lm5hdmlnYXRvci51c2VyTGFuZ3VhZ2V9LDE4ODQ6KGNlLEosYik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmlu'@; put 'ZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEouZ2V0VmFsaWRKc29uPXZvaWQgMDtjb25zdCBEPWIoMTM5NSk7Si5nZXRWYWxpZEpzb249cD0+e3RyeXtpZihudWxsPT1wKXRocm93IG5ldyBELkludmFsaWRKc29uRXJyb3I7aWYoQXJyYXkuaXNBcnJheShwKSl0aHJvdyBu'@; put 'ZXcgRC5Kc29uUGFyc2VBcnJheUVycm9yO3JldHVybiJvYmplY3QiPT10eXBlb2YgcD9wOiIiPT09cD97fTpKU09OLnBhcnNlKHApfWNhdGNoKE4pe3Rocm93IE4gaW5zdGFuY2VvZiBELkpzb25QYXJzZUFycmF5RXJyb3I/TjpuZXcgRC5JbnZhbGlkSnNvbkVycm9yfX19LDU5Mjg6ZnVuY3Rp'@; put 'b24oY2UsSixiKXsidXNlIHN0cmljdCI7dmFyIEQ9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKHAsTix3LEYpe3ZvaWQgMD09PUYmJihGPXcpO3ZhciBIPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTix3KTsoIUh8fCgiZ2V0Imlu'@; put 'IEg/IU4uX19lc01vZHVsZTpILndyaXRhYmxlfHxILmNvbmZpZ3VyYWJsZSkpJiYoSD17ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTlt3XX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkocCxGLEgpfTpmdW5jdGlvbihwLE4sdyxGKXt2b2lkIDA9PT1GJiYoRj13KSxwW0Zd'@; put 'PU5bd119KSxfPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihwLE4pe2Zvcih2YXIgdyBpbiBwKSJkZWZhdWx0IiE9PXcmJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTix3KSYmRChOLHAsdyl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9k'@; put 'dWxlIix7dmFsdWU6ITB9KSxfKGIoMzMwMiksSiksXyhiKDc5MjIpLEopLF8oYigzNzkzKSxKKSxfKGIoMjQwMiksSiksXyhiKDYxMTYpLEopLF8oYig5ODI1KSxKKSxfKGIoOTkwKSxKKSxfKGIoMTg4NCksSiksXyhiKDQyNDMpLEopLF8oYigyNTcpLEopLF8oYigyKSxKKSxfKGIoMjYxNSks'@; put 'SiksXyhiKDI5MjApLEopLF8oYigyNDIyKSxKKSxfKGIoMzEpLEopLF8oYig2NTE1KSxKKSxfKGIoNjQxNiksSiksXyhiKDI4MTMpLEopLF8oYig5ODk2KSxKKSxfKGIoNDc5OSksSiksXyhiKDQ1MTYpLEopLF8oYig4NDU4KSxKKSxfKGIoMzI2MCksSil9LDQyNDM6KGNlLEosYik9PnsidXNl'@; put 'IHN0cmljdCI7dmFyIEQ9Yig0MTU1KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5pc05vZGU9dm9pZCAwLEouaXNOb2RlPSgpPT50eXBlb2YgRDwidSImJm51bGwhPUQudmVyc2lvbnMmJm51bGwhPUQudmVyc2lvbnMubm9kZX0sMjU3OihjZSxK'@; put 'KT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5pc1JlbGF0aXZlUGF0aD12b2lkIDAsSi5pc1JlbGF0aXZlUGF0aD1EPT4hIUQmJiFELnN0YXJ0c1dpdGgoIi8iKX0sMjooY2UsSik9PnsidXNlIHN0cmljdCI7T2JqZWN0'@; put 'LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEouaXNVcmk9dm9pZCAwLEouaXNVcmk9RD0+L15cL2ZvbGRlcnNcL2ZvbGRlcnNcLy8udGVzdChEKX0sMjYxNTooY2UsSik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUi'@; put 'LHt2YWx1ZTohMH0pLEouaXNVcmw9dm9pZCAwLEouaXNVcmw9RD0+e2NvbnN0IF89WyJodHRwOiIsImh0dHBzOiJdO3RyeXtjb25zdCBwPW5ldyBVUkwoRCk7aWYoIV8uaW5jbHVkZXMocC5wcm90b2NvbCkpcmV0dXJuITF9Y2F0Y2h7cmV0dXJuITF9cmV0dXJuITB9fSwxMjEwOmZ1bmN0aW9u'@; put 'KGNlLEopeyJ1c2Ugc3RyaWN0Ijt2YXIgYj10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oSCxSLGosUCl7cmV0dXJuIG5ldyhqfHwoaj1Qcm9taXNlKSkoZnVuY3Rpb24oWSxCKXtmdW5jdGlvbiBXKFEpe3RyeXtYKFAubmV4dChRKSl9Y2F0Y2gocSl7QihxKX19ZnVuY3Rpb24gWihR'@; put 'KXt0cnl7WChQLnRocm93KFEpKX1jYXRjaChxKXtCKHEpfX1mdW5jdGlvbiBYKFEpe1EuZG9uZT9ZKFEudmFsdWUpOmZ1bmN0aW9uIEwoWSl7cmV0dXJuIFkgaW5zdGFuY2VvZiBqP1k6bmV3IGooZnVuY3Rpb24oQil7QihZKX0pfShRLnZhbHVlKS50aGVuKFcsWil9WCgoUD1QLmFwcGx5KEgs'@; put 'Unx8W10pKS5uZXh0KCkpfSl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLm9wZW5Mb2dpblByb21wdD12b2lkIDA7dmFyIEQ9ZnVuY3Rpb24oSCl7cmV0dXJuIEguc3R5bGVzPSJzYXNqc0FkYXB0ZXJTdHlsZXMiLEgub3ZlcmxheT0ic2FzanNB'@; put 'ZGFwdGVyTG9naW5Qcm9tcHRCRyIsSC5kaWFsb2c9InNhc2pzQWRhcHRlckxvZ2luUHJvbXB0IixIfShEfHx7fSk7Y29uc3QgXz0ic2FzanMtYWRhcHRlciIscD17cG9wVXA6YCR7X31wb3BVcGAscG9wVXBCRzpgJHtffXBvcFVwQkdgfTtKLm9wZW5Mb2dpblByb21wdD0oKT0+bmV3IFByb21p'@; put 'c2UoSD0+Yih2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdCBSPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7Ui5pZD1ELnN0eWxlcyxSLmlubmVyVGV4dD1GO2NvbnN0IGo9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ai5pZD1ELm92ZXJsYXksai5j'@; put 'bGFzc0xpc3QuYWRkKHAucG9wVXBCRyk7Y29uc3QgUD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtQLmlkPUQuZGlhbG9nLFAuY2xhc3NMaXN0LmFkZChwLnBvcFVwKTtjb25zdCBMPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImgxIik7TC5pbm5lclRleHQ9IlNlc3Npb24gRXhwaXJl'@; put 'ZCEiLFAuYXBwZW5kQ2hpbGQoTCk7Y29uc3QgWT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxCPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtCLmlubmVyVGV4dD0iWW91IG5lZWQgdG8gcmVsb2dpbiwgY2xpY2sgT0sgdG8gbG9naW4uIixZLmFwcGVuZENoaWxkKEIpLFAu'@; put 'YXBwZW5kQ2hpbGQoWSk7Y29uc3QgVz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTtXLmNsYXNzTGlzdC5hZGQoImNhbmNlbCIpLFcuaW5uZXJUZXh0PSJDYW5jZWwiLFcub25jbGljaz0oKT0+e3coKSxIKCExKX0sUC5hcHBlbmRDaGlsZChXKTtjb25zdCBaPWRvY3VtZW50LmNy'@; put 'ZWF0ZUVsZW1lbnQoImJ1dHRvbiIpO1ouY2xhc3NMaXN0LmFkZCgiY29uZmlybSIpLFouaW5uZXJUZXh0PSJPayIsWi5vbmNsaWNrPSgpPT57dygpLEgoITApfSxQLmFwcGVuZENoaWxkKFopLGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsZG9jdW1lbnQuYm9keS5hcHBl'@; put 'bmRDaGlsZChSKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGopLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoUCl9KSk7Y29uc3Qgdz0oKT0+e09iamVjdC52YWx1ZXMoRCkuZm9yRWFjaChIPT57dmFyIFI7Y29uc3Qgaj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChIKTtudWxsPT09KFI9'@; put 'aj8ucGFyZW50Tm9kZSl8fHZvaWQgMD09PVJ8fFIucmVtb3ZlQ2hpbGQoail9KSxkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93PSJhdXRvIn0sRj1gXG4uJHtwLnBvcFVwQkd9ICxcbi4ke3AucG9wVXB9IHtcbiAgei1pbmRleDogMTAwMDA7XG59XG4uJHtwLnBvcFVwfSB7XG4gIGJveC1z'@; put 'aXppbmc6IGJvcmRlci1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDQwJTtcbiAgbGVmdDogNTAlO1xuICBwYWRkaW5nOiAw'@; put 'O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtZmFtaWx5OiAnUFQgU2FucycsIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHotaW5kZXg6IDk5OTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAw'@; put 'LCAwLjIpO1xuICBtYXJnaW46IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDMwMHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIG1heC1oZWlnaHQ6IDMwMHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cbi4ke3AucG9wVXB9ID4gaDEge1xuICBib3gt'@; put 'c2l6aW5nOiBib3JkZXItYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogNXB4O1xuICBtaW4taGVpZ2h0OiA0MHB4O1xuICBmb250LXNpemU6IDEuMmVtO1xuICBmb250LXdlaWdodDogYm9s'@; put 'ZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgYm9yZGVyLXdpZHRoOiA1cHg7XG4gIGJvcmRlci1jb2xvcjogYmxhY2s7XG59XG4uJHtwLnBvcFVwfSA+IGRp'@; put 'diB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtMTA4cHgpO1xuICBtYXJnaW46IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzog'@; put 'Ym9yZGVyLWJveDtcbiAgcGFkZGluZzogNSU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1jb2xvcjogI2NjYztcbiAgYm9yZGVyLXN0eWxlOiBub25lIG5vbmUgc29saWQgbm9uZTtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG4uJHtwLnBv'@; put 'cFVwfSA+IGRpdiA+IHNwYW4ge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAw'@; put 'O1xuICB3aWR0aDogMzAwcHg7XG4gIGhlaWdodDogMTA4cHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cbi4ke3AucG9wVXB9IC5jYW5jZWwge1xuICBmbG9hdDogbGVmdDtcbn1cbi4ke3AucG9wVXB9IC5jb25maXJtIHtcbiAgZmxvYXQ6'@; put 'IHJpZ2h0O1xufVxuLiR7cC5wb3BVcH0gPiBidXR0b24ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAxMHB4O1xuICB3'@; put 'aWR0aDogNTAlO1xuICBib3JkZXI6IDFweCBub25lICNjY2M7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBoZWlnaHQ6IDUwcHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMSwgMSwgMSwgMC4yKTtcbn1cbi4ke3AucG9wVXB9'@; put 'ID4gYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjIpO1xufVxuLiR7cC5wb3BVcEJHfSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAw'@; put 'JTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBvcGFjaXR5OiAwLjk1O1xuICB6LWluZGV4OiA1MDtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KCMwMzc4Y2QsICMwMTIwMzYpO1xufVxuYH0sMjkyMDooY2UsSik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRl'@; put 'ZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEoubmVlZHNSZXRyeT12b2lkIDAsSi5uZWVkc1JldHJ5PUQ9PiEhRCYmKEQuaW5jbHVkZXMoJyJlcnJvckNvZGUiOjQwMycpJiZELmluY2x1ZGVzKCJfY3NyZiIpJiZELmluY2x1ZGVzKCJYLUNTUkYtVE9LRU4iKXx8RC5p'@; put 'bmNsdWRlcygnInN0YXR1cyI6NDAzJykmJkQuaW5jbHVkZXMoJyJlcnJvciI6IkZvcmJpZGRlbiInKXx8RC5pbmNsdWRlcygnInN0YXR1cyI6NDQ5JykmJkQuaW5jbHVkZXMoIkF1dGhlbnRpY2F0aW9uIHN1Y2Nlc3MsIHJldHJ5IG9yaWdpbmFsIHJlcXVlc3QiKSl9LDI0MjI6KGNlLEopPT57'@; put 'InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLnBhcnNlR2VuZXJhdGVkQ29kZT12b2lkIDAsSi5wYXJzZUdlbmVyYXRlZENvZGU9RD0+RC5zcGxpdCgiXG4iKS5maWx0ZXIodz0+dy50cmltKCkuc3RhcnRzV2l0aCgiTVBSSU5U'@; put 'IikpLmpvaW4oIlxyXG4iKX0sMzE6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig1MTA4KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5wYXJzZVNhc1ZpeWFMb2c9dm9pZCAwLEoucGFyc2VTYXNWaXlhTG9nPXA9PntsZXQgTjt0cnl7'@; put 'Tj1wLml0ZW1zP3AuaXRlbXMubWFwKHc9PncubGluZSkuam9pbigiXG4iKTpKU09OLnN0cmluZ2lmeShwKX1jYXRjaCh3KXtELmVycm9yKCJBbiBlcnJvciBoYXMgb2NjdXJyZWQgd2hpbGUgcGFyc2luZyB0aGUgbG9nIHJlc3BvbnNlIix3KSxOPXB9cmV0dXJuIE59fSw2NTE1OihjZSxKKT0+'@; put 'eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5wYXJzZVNvdXJjZUNvZGU9dm9pZCAwLEoucGFyc2VTb3VyY2VDb2RlPUQ9PkQuc3BsaXQoIlxuIikuZmlsdGVyKE49Pk4udHJpbSgpLnN1YnN0cmluZygwLDEwKS50cmltU3Rh'@; put 'cnQoKS5tYXRjaCgvXlxkLykpLmpvaW4oIlxyXG4iKX0sNjQxNjpmdW5jdGlvbihjZSxKLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgRD10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oTix3LEYsSCl7cmV0dXJuIG5ldyhGfHwoRj1Qcm9taXNlKSkoZnVuY3Rpb24oaixQKXtmdW5jdGlvbiBM'@; put 'KFcpe3RyeXtCKEgubmV4dChXKSl9Y2F0Y2goWil7UChaKX19ZnVuY3Rpb24gWShXKXt0cnl7QihILnRocm93KFcpKX1jYXRjaChaKXtQKFopfX1mdW5jdGlvbiBCKFcpe1cuZG9uZT9qKFcudmFsdWUpOmZ1bmN0aW9uIFIoail7cmV0dXJuIGogaW5zdGFuY2VvZiBGP2o6bmV3IEYoZnVuY3Rp'@; put 'b24oUCl7UChqKX0pfShXLnZhbHVlKS50aGVuKEwsWSl9QigoSD1ILmFwcGx5KE4sd3x8W10pKS5uZXh0KCkpfSl9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxKLnBhcnNlU2FzVml5YURlYnVnUmVzcG9uc2U9dm9pZCAwO2NvbnN0IF89Yig1OTI4'@; put 'KTtKLnBhcnNlU2FzVml5YURlYnVnUmVzcG9uc2U9KE4sdyxGKT0+RCh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdCBIPU4uc3BsaXQoLzxpZnJhbWUgc3R5bGU9IndpZHRoOiA5OSU7IGhlaWdodDogNTAwcHgiIHNyYz0ifDxpZnJhbWUgc3R5bGU9IndpZHRoOiA5OSU7'@; put 'IGhlaWdodDogNTAwcHg7IGJhY2tncm91bmQtY29sb3I6Q2FudmFzOyIgc3JjPS8pWzFdLFI9SD9ILnNwbGl0KC8iPjxcL2lmcmFtZT58PjxcL2lmcmFtZT4vKVswXTpudWxsO2lmKCFSKXRocm93IG5ldyBFcnJvcigiVW5hYmxlIHRvIGZpbmQgd2Vib3V0IGZpbGUgVVJMLiIpO3JldHVybiB3'@; put 'LmdldChGK1Isdm9pZCAwLCJ0ZXh0L3BsYWluIikudGhlbihqPT4oMCxfLmdldFZhbGlkSnNvbikoai5yZXN1bHQpKX0pfSwyODEzOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNTEwOCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEou'@; put 'cGFyc2VXZWJvdXRSZXNwb25zZT12b2lkIDA7Y29uc3QgXz1iKDEzOTUpO0oucGFyc2VXZWJvdXRSZXNwb25zZT0oTix3KT0+e2xldCBGPSIiO2lmKE4uaW5jbHVkZXMoIj4+d2Vib3V0QkVHSU48PCIpKXRyeXtGPU4uc3BsaXQoIj4+d2Vib3V0QkVHSU48PCIpWzFdLnNwbGl0KCI+PndlYm91'@; put 'dEVORDw8IilbMF19Y2F0Y2goSCl7aWYodyl0aHJvdyBuZXcgXy5XZWJvdXRSZXNwb25zZUVycm9yKHcpO0Y9IiIsRC5lcnJvcihIKX1yZXR1cm4gRn19LDExNzA6KGNlLEopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxK'@; put 'LmV4dHJhY3RVc2VyTG9uZ05hbWVTYXM5PXZvaWQgMDtjb25zdCBiPVsiTG9nIE9mZiJdO0ouZXh0cmFjdFVzZXJMb25nTmFtZVNhczk9Xz0+e2NvbnN0IE49Xz8ubWF0Y2goLyJ0aXRsZSI6XHM/Ii4qPyIvKTtsZXQgdz1OPy5bMF0uc3BsaXQoIjoiKVsxXS50cmltKCksRj13Py5pbmRleE9m'@; put 'KCIgIik7cmV0dXJuIHc/KGIubWFwKEg9Pntjb25zdCBSPXc/LmluZGV4T2YoSCl8fC0xO1I+LTEmJihGPVIrSC5sZW5ndGgpfSksdy5zbGljZShGLC0xKS50cmltKCkpOiJ1bmtub3duIn19LDk4OTY6KGNlLEopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShKLCJfX2Vz'@; put 'TW9kdWxlIix7dmFsdWU6ITB9KSxKLnNlcmlhbGl6ZT12b2lkIDAsSi5zZXJpYWxpemU9RD0+e2NvbnN0IF89W107Zm9yKGNvbnN0IHAgaW4gRClpZihELmhhc093blByb3BlcnR5KHApKWlmKERbcF1pbnN0YW5jZW9mIEFycmF5KWZvcihsZXQgTj0wLHc9RFtwXS5sZW5ndGg7Tjx3O04rKylf'@; put 'LnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KHApKyI9IitlbmNvZGVVUklDb21wb25lbnQoRFtwXVtOXSkpO2Vsc2UgXy5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChwKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KERbcF0pKTtyZXR1cm4gXy5qb2luKCImIil9fSw0Nzk5OihjZSxKKT0+eyJ1c2Ug'@; put 'c3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi5zcGxpdENodW5rcz12b2lkIDAsSi5zcGxpdENodW5rcz1EPT57Y29uc3QgcD1NYXRoLmNlaWwoRC5sZW5ndGgvMTZlMyksTj1uZXcgQXJyYXkocCk7Zm9yKGxldCB3PTAsRj0wO3c8cDsr'@; put 'K3csRis9MTZlMylOW3ddPUQuc3Vic3RyKEYsMTZlMyk7cmV0dXJuIE59fSw0NTE2OihjZSxKKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoSiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksSi52YWxpZGF0ZUlucHV0PUouSU5WQUxJRF9UQUJMRV9TVFJVQ1RVUkU9Si5N'@; put 'T1JFX0lORk89dm9pZCAwLEouTU9SRV9JTkZPPSJGb3IgbW9yZSBpbmZvIHNlZSBodHRwczovL3Nhc2pzLmlvL3Nhc2pzLWFkYXB0ZXIvI3JlcXVlc3QtcmVzcG9uc2UiLEouSU5WQUxJRF9UQUJMRV9TVFJVQ1RVUkU9YFBhcmFtZXRlciBkYXRhIGNvbnRhaW5zIGludmFsaWQgdGFibGUgc3Ry'@; put 'dWN0dXJlLiAke0ouTU9SRV9JTkZPfWAsSi52YWxpZGF0ZUlucHV0PV89PntpZihudWxsPT09XylyZXR1cm57c3RhdHVzOiEwLG1zZzoiIn07aWYoIm9iamVjdCIhPT1EKF8pKXJldHVybntzdGF0dXM6ITEsbXNnOkouSU5WQUxJRF9UQUJMRV9TVFJVQ1RVUkV9O2NvbnN0IHA9Tj0+Ti5tYXRj'@; put 'aCgvXlwkLiovKSYmT2JqZWN0LmtleXMoXykuaW5jbHVkZXMoTi5yZXBsYWNlKC9eXCQvLCIiKSk7Zm9yKGNvbnN0IE4gaW4gXyl7aWYoIU4ubWF0Y2goL15bYS16QS1aX10vKSYmIXAoTikpcmV0dXJue3N0YXR1czohMSxtc2c6IkZpcnN0IGxldHRlciBvZiB0YWJsZSBzaG91bGQgYmUgYWxw'@; put 'aGFiZXQgb3IgdW5kZXJzY29yZS4ifTtpZighTi5tYXRjaCgvXlthLXpBLVpfXVthLXpBLVowLTlfXSokLykmJiFwKE4pKXJldHVybntzdGF0dXM6ITEsbXNnOiJUYWJsZSBuYW1lIHNob3VsZCBiZSBhbHBoYW51bWVyaWMuIn07aWYoTi5sZW5ndGg+MzIpcmV0dXJue3N0YXR1czohMSxtc2c6'@; put 'Ik1heGltdW0gbGVuZ3RoIGZvciB0YWJsZSBuYW1lIGNvdWxkIGJlIDMyIGNoYXJhY3RlcnMuIn07aWYoIkFycmF5IiE9PUQoX1tOXSkmJiFwKE4pKXJldHVybntzdGF0dXM6ITEsbXNnOkouSU5WQUxJRF9UQUJMRV9TVFJVQ1RVUkV9O2lmKEFycmF5LmlzQXJyYXkoX1tOXSkpZm9yKGNvbnN0'@; put 'IHcgb2YgX1tOXSl7aWYoIm9iamVjdCIhPT1EKHcpKXJldHVybntzdGF0dXM6ITEsbXNnOmBUYWJsZSAke059IGNvbnRhaW5zIGludmFsaWQgc3RydWN0dXJlLiAke0ouTU9SRV9JTkZPfWB9O3tjb25zdCBGPU9iamVjdC5rZXlzKHcpO2Zvcihjb25zdCBIIG9mIEYpaWYodm9pZCAwPT09d1tI'@; put 'XSlyZXR1cm57c3RhdHVzOiExLG1zZzpgQSByb3cgaW4gdGFibGUgJHtOfSBjb250YWlucyBpbnZhbGlkIHZhbHVlLiBDYW4ndCBhc3NpZ24gdW5kZWZpbmVkIHRvICR7SH0uYH19fX1yZXR1cm57c3RhdHVzOiEwLG1zZzoiIn19O2NvbnN0IEQ9Xz0+QXJyYXkuaXNBcnJheShfKT8iQXJyYXki'@; put 'OnR5cGVvZiBffSw4OTgxOihjZSxKKT0+eyJ1c2Ugc3RyaWN0IjtKLmZyb21DYWxsYmFjaz1mdW5jdGlvbihiKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGZ1bmN0aW9uKC4uLkQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBEW0QubGVuZ3RoLTFdKXJldHVybiBuZXcgUHJvbWlzZSgo'@; put 'XyxwKT0+e0QucHVzaCgoTix3KT0+bnVsbCE9Tj9wKE4pOl8odykpLGIuYXBwbHkodGhpcyxEKX0pO2IuYXBwbHkodGhpcyxEKX0sIm5hbWUiLHt2YWx1ZTpiLm5hbWV9KX0sSi5mcm9tUHJvbWlzZT1mdW5jdGlvbihiKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGZ1bmN0aW9uKC4u'@; put 'LkQpe2NvbnN0IF89RFtELmxlbmd0aC0xXTtpZigiZnVuY3Rpb24iIT10eXBlb2YgXylyZXR1cm4gYi5hcHBseSh0aGlzLEQpO0QucG9wKCksYi5hcHBseSh0aGlzLEQpLnRoZW4ocD0+XyhudWxsLHApLF8pfSwibmFtZSIse3ZhbHVlOmIubmFtZX0pfX0sNDU2NDooY2UsSixiKT0+eyJ1c2Ug'@; put 'c3RyaWN0Ijt2YXIgRD1iKDc0MTgpLF89Yig3MTI5KSxwPS9eW1x4MDAtXHgyMFx1MDBhMFx1MTY4MFx1MjAwMC1cdTIwMGFcdTIwMjhcdTIwMjlcdTIwMmZcdTIwNWZcdTMwMDBcdWZlZmZdKy8sTj0vW1xuXHJcdF0vZyx3PS9eW0EtWmEtel1bQS1aYS16MC05Ky0uXSo6XC9cLy8sRj0vOlxk'@; put 'KyQvLEg9L14oW2Etel1bYS16MC05ListXSo6KT8oXC9cLyk/KFtcXC9dKyk/KFtcU1xzXSopL2ksUj0vXlthLXpBLVpdOi87ZnVuY3Rpb24gaih0ZSl7cmV0dXJuKHRlfHwiIikudG9TdHJpbmcoKS5yZXBsYWNlKHAsIiIpfXZhciBQPVtbIiMiLCJoYXNoIl0sWyI/IiwicXVlcnkiXSxmdW5j'@; put 'dGlvbihpZSxzZSl7cmV0dXJuIEIoc2UucHJvdG9jb2wpP2llLnJlcGxhY2UoL1xcL2csIi8iKTppZX0sWyIvIiwicGF0aG5hbWUiXSxbIkAiLCJhdXRoIiwxXSxbTmFOLCJob3N0Iix2b2lkIDAsMSwxXSxbLzooXGQqKSQvLCJwb3J0Iix2b2lkIDAsMV0sW05hTiwiaG9zdG5hbWUiLHZvaWQg'@; put 'MCwxLDFdXSxMPXtoYXNoOjEscXVlcnk6MX07ZnVuY3Rpb24gWSh0ZSl7dmFyIGllO2llPXR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp0eXBlb2YgYi5nPCJ1Ij9iLmc6dHlwZW9mIHNlbGY8InUiP3NlbGY6e307dmFyIFRlLGdlPXt9LF9lPXR5cGVvZih0ZT10ZXx8aWUubG9jYXRpb258fHt9'@; put 'KTtpZigiYmxvYjoiPT09dGUucHJvdG9jb2wpZ2U9bmV3IFgodW5lc2NhcGUodGUucGF0aG5hbWUpLHt9KTtlbHNlIGlmKCJzdHJpbmciPT09X2UpZm9yKFRlIGluIGdlPW5ldyBYKHRlLHt9KSxMKWRlbGV0ZSBnZVtUZV07ZWxzZSBpZigib2JqZWN0Ij09PV9lKXtmb3IoVGUgaW4gdGUpVGUg'@; put 'aW4gTHx8KGdlW1RlXT10ZVtUZV0pO3ZvaWQgMD09PWdlLnNsYXNoZXMmJihnZS5zbGFzaGVzPXcudGVzdCh0ZS5ocmVmKSl9cmV0dXJuIGdlfWZ1bmN0aW9uIEIodGUpe3JldHVybiJmaWxlOiI9PT10ZXx8ImZ0cDoiPT09dGV8fCJodHRwOiI9PT10ZXx8Imh0dHBzOiI9PT10ZXx8IndzOiI9'@; put 'PT10ZXx8IndzczoiPT09dGV9ZnVuY3Rpb24gVyh0ZSxpZSl7dGU9KHRlPWoodGUpKS5yZXBsYWNlKE4sIiIpLGllPWllfHx7fTt2YXIgemUsc2U9SC5leGVjKHRlKSxnZT1zZVsxXT9zZVsxXS50b0xvd2VyQ2FzZSgpOiIiLF9lPSEhc2VbMl0sVGU9ISFzZVszXSxTZT0wO3JldHVybiBfZT9U'@; put 'ZT8oemU9c2VbMl0rc2VbM10rc2VbNF0sU2U9c2VbMl0ubGVuZ3RoK3NlWzNdLmxlbmd0aCk6KHplPXNlWzJdK3NlWzRdLFNlPXNlWzJdLmxlbmd0aCk6VGU/KHplPXNlWzNdK3NlWzRdLFNlPXNlWzNdLmxlbmd0aCk6emU9c2VbNF0sImZpbGU6Ij09PWdlP1NlPj0yJiYoemU9emUuc2xpY2Uo'@; put 'MikpOkIoZ2UpP3plPXNlWzRdOmdlP19lJiYoemU9emUuc2xpY2UoMikpOlNlPj0yJiZCKGllLnByb3RvY29sKSYmKHplPXNlWzRdKSx7cHJvdG9jb2w6Z2Usc2xhc2hlczpfZXx8QihnZSksc2xhc2hlc0NvdW50OlNlLHJlc3Q6emV9fWZ1bmN0aW9uIFgodGUsaWUsc2Upe2lmKHRlPSh0ZT1q'@; put 'KHRlKSkucmVwbGFjZShOLCIiKSwhKHRoaXMgaW5zdGFuY2VvZiBYKSlyZXR1cm4gbmV3IFgodGUsaWUsc2UpO3ZhciBnZSxfZSxUZSxTZSx6ZSx6LGc9UC5zbGljZSgpLHk9dHlwZW9mIGllLHg9dGhpcyxDPTA7Zm9yKCJvYmplY3QiIT09eSYmInN0cmluZyIhPT15JiYoc2U9aWUsaWU9bnVs'@; put 'bCksc2UmJiJmdW5jdGlvbiIhPXR5cGVvZiBzZSYmKHNlPV8ucGFyc2UpLGdlPSEoX2U9Vyh0ZXx8IiIsaWU9WShpZSkpKS5wcm90b2NvbCYmIV9lLnNsYXNoZXMseC5zbGFzaGVzPV9lLnNsYXNoZXN8fGdlJiZpZS5zbGFzaGVzLHgucHJvdG9jb2w9X2UucHJvdG9jb2x8fGllLnByb3RvY29s'@; put 'fHwiIix0ZT1fZS5yZXN0LCgiZmlsZToiPT09X2UucHJvdG9jb2wmJigyIT09X2Uuc2xhc2hlc0NvdW50fHxSLnRlc3QodGUpKXx8IV9lLnNsYXNoZXMmJihfZS5wcm90b2NvbHx8X2Uuc2xhc2hlc0NvdW50PDJ8fCFCKHgucHJvdG9jb2wpKSkmJihnWzNdPVsvKC4qKS8sInBhdGhuYW1lIl0p'@; put 'O0M8Zy5sZW5ndGg7QysrKSJmdW5jdGlvbiIhPXR5cGVvZihTZT1nW0NdKT8oej1TZVsxXSwoVGU9U2VbMF0pIT1UZT94W3pdPXRlOiJzdHJpbmciPT10eXBlb2YgVGU/fih6ZT0iQCI9PT1UZT90ZS5sYXN0SW5kZXhPZihUZSk6dGUuaW5kZXhPZihUZSkpJiYoIm51bWJlciI9PXR5cGVvZiBT'@; put 'ZVsyXT8oeFt6XT10ZS5zbGljZSgwLHplKSx0ZT10ZS5zbGljZSh6ZStTZVsyXSkpOih4W3pdPXRlLnNsaWNlKHplKSx0ZT10ZS5zbGljZSgwLHplKSkpOih6ZT1UZS5leGVjKHRlKSkmJih4W3pdPXplWzFdLHRlPXRlLnNsaWNlKDAsemUuaW5kZXgpKSx4W3pdPXhbel18fGdlJiZTZVszXSYm'@; put 'aWVbel18fCIiLFNlWzRdJiYoeFt6XT14W3pdLnRvTG93ZXJDYXNlKCkpKTp0ZT1TZSh0ZSx4KTtzZSYmKHgucXVlcnk9c2UoeC5xdWVyeSkpLGdlJiZpZS5zbGFzaGVzJiYiLyIhPT14LnBhdGhuYW1lLmNoYXJBdCgwKSYmKCIiIT09eC5wYXRobmFtZXx8IiIhPT1pZS5wYXRobmFtZSkmJih4'@; put 'LnBhdGhuYW1lPWZ1bmN0aW9uIFoodGUsaWUpe2lmKCIiPT09dGUpcmV0dXJuIGllO2Zvcih2YXIgc2U9KGllfHwiLyIpLnNwbGl0KCIvIikuc2xpY2UoMCwtMSkuY29uY2F0KHRlLnNwbGl0KCIvIikpLGdlPXNlLmxlbmd0aCxfZT1zZVtnZS0xXSxUZT0hMSxTZT0wO2dlLS07KSIuIj09PXNl'@; put 'W2dlXT9zZS5zcGxpY2UoZ2UsMSk6Ii4uIj09PXNlW2dlXT8oc2Uuc3BsaWNlKGdlLDEpLFNlKyspOlNlJiYoMD09PWdlJiYoVGU9ITApLHNlLnNwbGljZShnZSwxKSxTZS0tKTtyZXR1cm4gVGUmJnNlLnVuc2hpZnQoIiIpLCgiLiI9PT1fZXx8Ii4uIj09PV9lKSYmc2UucHVzaCgiIiksc2Uu'@; put 'am9pbigiLyIpfSh4LnBhdGhuYW1lLGllLnBhdGhuYW1lKSksIi8iIT09eC5wYXRobmFtZS5jaGFyQXQoMCkmJkIoeC5wcm90b2NvbCkmJih4LnBhdGhuYW1lPSIvIit4LnBhdGhuYW1lKSxEKHgucG9ydCx4LnByb3RvY29sKXx8KHguaG9zdD14Lmhvc3RuYW1lLHgucG9ydD0iIikseC51c2Vy'@; put 'bmFtZT14LnBhc3N3b3JkPSIiLHguYXV0aCYmKH4oemU9eC5hdXRoLmluZGV4T2YoIjoiKSk/KHgudXNlcm5hbWU9eC5hdXRoLnNsaWNlKDAsemUpLHgudXNlcm5hbWU9ZW5jb2RlVVJJQ29tcG9uZW50KGRlY29kZVVSSUNvbXBvbmVudCh4LnVzZXJuYW1lKSkseC5wYXNzd29yZD14LmF1dGgu'@; put 'c2xpY2UoemUrMSkseC5wYXNzd29yZD1lbmNvZGVVUklDb21wb25lbnQoZGVjb2RlVVJJQ29tcG9uZW50KHgucGFzc3dvcmQpKSk6eC51c2VybmFtZT1lbmNvZGVVUklDb21wb25lbnQoZGVjb2RlVVJJQ29tcG9uZW50KHguYXV0aCkpLHguYXV0aD14LnBhc3N3b3JkP3gudXNlcm5hbWUrIjoi'@; put 'K3gucGFzc3dvcmQ6eC51c2VybmFtZSkseC5vcmlnaW49ImZpbGU6IiE9PXgucHJvdG9jb2wmJkIoeC5wcm90b2NvbCkmJnguaG9zdD94LnByb3RvY29sKyIvLyIreC5ob3N0OiJudWxsIix4LmhyZWY9eC50b1N0cmluZygpfVgucHJvdG90eXBlPXtzZXQ6ZnVuY3Rpb24gUSh0ZSxpZSxzZSl7'@; put 'dmFyIGdlPXRoaXM7c3dpdGNoKHRlKXtjYXNlInF1ZXJ5Ijoic3RyaW5nIj09dHlwZW9mIGllJiZpZS5sZW5ndGgmJihpZT0oc2V8fF8ucGFyc2UpKGllKSksZ2VbdGVdPWllO2JyZWFrO2Nhc2UicG9ydCI6Z2VbdGVdPWllLEQoaWUsZ2UucHJvdG9jb2wpP2llJiYoZ2UuaG9zdD1nZS5ob3N0'@; put 'bmFtZSsiOiIraWUpOihnZS5ob3N0PWdlLmhvc3RuYW1lLGdlW3RlXT0iIik7YnJlYWs7Y2FzZSJob3N0bmFtZSI6Z2VbdGVdPWllLGdlLnBvcnQmJihpZSs9IjoiK2dlLnBvcnQpLGdlLmhvc3Q9aWU7YnJlYWs7Y2FzZSJob3N0IjpnZVt0ZV09aWUsRi50ZXN0KGllKT8oaWU9aWUuc3BsaXQo'@; put 'IjoiKSxnZS5wb3J0PWllLnBvcCgpLGdlLmhvc3RuYW1lPWllLmpvaW4oIjoiKSk6KGdlLmhvc3RuYW1lPWllLGdlLnBvcnQ9IiIpO2JyZWFrO2Nhc2UicHJvdG9jb2wiOmdlLnByb3RvY29sPWllLnRvTG93ZXJDYXNlKCksZ2Uuc2xhc2hlcz0hc2U7YnJlYWs7Y2FzZSJwYXRobmFtZSI6Y2Fz'@; put 'ZSJoYXNoIjppZihpZSl7dmFyIF9lPSJwYXRobmFtZSI9PT10ZT8iLyI6IiMiO2dlW3RlXT1pZS5jaGFyQXQoMCkhPT1fZT9fZStpZTppZX1lbHNlIGdlW3RlXT1pZTticmVhaztjYXNlInVzZXJuYW1lIjpjYXNlInBhc3N3b3JkIjpnZVt0ZV09ZW5jb2RlVVJJQ29tcG9uZW50KGllKTticmVh'@; put 'aztjYXNlImF1dGgiOnZhciBUZT1pZS5pbmRleE9mKCI6Iik7flRlPyhnZS51c2VybmFtZT1pZS5zbGljZSgwLFRlKSxnZS51c2VybmFtZT1lbmNvZGVVUklDb21wb25lbnQoZGVjb2RlVVJJQ29tcG9uZW50KGdlLnVzZXJuYW1lKSksZ2UucGFzc3dvcmQ9aWUuc2xpY2UoVGUrMSksZ2UucGFz'@; put 'c3dvcmQ9ZW5jb2RlVVJJQ29tcG9uZW50KGRlY29kZVVSSUNvbXBvbmVudChnZS5wYXNzd29yZCkpKTpnZS51c2VybmFtZT1lbmNvZGVVUklDb21wb25lbnQoZGVjb2RlVVJJQ29tcG9uZW50KGllKSl9Zm9yKHZhciBTZT0wO1NlPFAubGVuZ3RoO1NlKyspe3ZhciB6ZT1QW1NlXTt6ZVs0XSYm'@; put 'KGdlW3plWzFdXT1nZVt6ZVsxXV0udG9Mb3dlckNhc2UoKSl9cmV0dXJuIGdlLmF1dGg9Z2UucGFzc3dvcmQ/Z2UudXNlcm5hbWUrIjoiK2dlLnBhc3N3b3JkOmdlLnVzZXJuYW1lLGdlLm9yaWdpbj0iZmlsZToiIT09Z2UucHJvdG9jb2wmJkIoZ2UucHJvdG9jb2wpJiZnZS5ob3N0P2dlLnBy'@; put 'b3RvY29sKyIvLyIrZ2UuaG9zdDoibnVsbCIsZ2UuaHJlZj1nZS50b1N0cmluZygpLGdlfSx0b1N0cmluZzpmdW5jdGlvbiBxKHRlKXsoIXRlfHwiZnVuY3Rpb24iIT10eXBlb2YgdGUpJiYodGU9Xy5zdHJpbmdpZnkpO3ZhciBpZSxzZT10aGlzLGdlPXNlLmhvc3QsX2U9c2UucHJvdG9jb2w7'@; put 'X2UmJiI6IiE9PV9lLmNoYXJBdChfZS5sZW5ndGgtMSkmJihfZSs9IjoiKTt2YXIgVGU9X2UrKHNlLnByb3RvY29sJiZzZS5zbGFzaGVzfHxCKHNlLnByb3RvY29sKT8iLy8iOiIiKTtyZXR1cm4gc2UudXNlcm5hbWU/KFRlKz1zZS51c2VybmFtZSxzZS5wYXNzd29yZCYmKFRlKz0iOiIrc2Uu'@; put 'cGFzc3dvcmQpLFRlKz0iQCIpOnNlLnBhc3N3b3JkPyhUZSs9IjoiK3NlLnBhc3N3b3JkLFRlKz0iQCIpOiJmaWxlOiIhPT1zZS5wcm90b2NvbCYmQihzZS5wcm90b2NvbCkmJiFnZSYmIi8iIT09c2UucGF0aG5hbWUmJihUZSs9IkAiKSwoIjoiPT09Z2VbZ2UubGVuZ3RoLTFdfHxGLnRlc3Qo'@; put 'c2UuaG9zdG5hbWUpJiYhc2UucG9ydCkmJihnZSs9IjoiKSxUZSs9Z2Urc2UucGF0aG5hbWUsKGllPSJvYmplY3QiPT10eXBlb2Ygc2UucXVlcnk/dGUoc2UucXVlcnkpOnNlLnF1ZXJ5KSYmKFRlKz0iPyIhPT1pZS5jaGFyQXQoMCk/Ij8iK2llOmllKSxzZS5oYXNoJiYoVGUrPXNlLmhhc2gp'@; put 'LFRlfX0sWC5leHRyYWN0UHJvdG9jb2w9VyxYLmxvY2F0aW9uPVksWC50cmltTGVmdD1qLFgucXM9XyxjZS5leHBvcnRzPVh9LDQ5Mjc6KGNlLEosYik9Pnt2YXIgRD1iKDUxMDgpO2Z1bmN0aW9uIHAoTil7dHJ5e2lmKCFiLmcubG9jYWxTdG9yYWdlKXJldHVybiExfWNhdGNoe3JldHVybiEx'@; put 'fXZhciB3PWIuZy5sb2NhbFN0b3JhZ2VbTl07cmV0dXJuIG51bGwhPXcmJiJ0cnVlIj09PVN0cmluZyh3KS50b0xvd2VyQ2FzZSgpfWNlLmV4cG9ydHM9ZnVuY3Rpb24gXyhOLHcpe2lmKHAoIm5vRGVwcmVjYXRpb24iKSlyZXR1cm4gTjt2YXIgRj0hMTtyZXR1cm4gZnVuY3Rpb24gSCgpe2lm'@; put 'KCFGKXtpZihwKCJ0aHJvd0RlcHJlY2F0aW9uIikpdGhyb3cgbmV3IEVycm9yKHcpO3AoInRyYWNlRGVwcmVjYXRpb24iKT9ELnRyYWNlKHcpOkQud2Fybih3KSxGPSEwfXJldHVybiBOLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19fSwzODQ6Y2U9PntjZS5leHBvcnRzPWZ1bmN0aW9uKGIpe3Jl'@; put 'dHVybiBiJiYib2JqZWN0Ij09dHlwZW9mIGImJiJmdW5jdGlvbiI9PXR5cGVvZiBiLmNvcHkmJiJmdW5jdGlvbiI9PXR5cGVvZiBiLmZpbGwmJiJmdW5jdGlvbiI9PXR5cGVvZiBiLnJlYWRVSW50OH19LDU5NTU6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigyNTg0KSxfPWIoODY2'@; put 'MikscD1iKDY0MzApLE49Yig1NjkyKTtmdW5jdGlvbiB3KGtlKXtyZXR1cm4ga2UuY2FsbC5iaW5kKGtlKX12YXIgRj10eXBlb2YgQmlnSW50PCJ1IixIPXR5cGVvZiBTeW1ib2w8InUiLFI9dyhPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nKSxqPXcoTnVtYmVyLnByb3RvdHlwZS52YWx1ZU9m'@; put 'KSxQPXcoU3RyaW5nLnByb3RvdHlwZS52YWx1ZU9mKSxMPXcoQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZik7aWYoRil2YXIgWT13KEJpZ0ludC5wcm90b3R5cGUudmFsdWVPZik7aWYoSCl2YXIgQj13KFN5bWJvbC5wcm90b3R5cGUudmFsdWVPZik7ZnVuY3Rpb24gVyhrZSxfdCl7aWYoIm9i'@; put 'amVjdCIhPXR5cGVvZiBrZSlyZXR1cm4hMTt0cnl7cmV0dXJuIF90KGtlKSwhMH1jYXRjaHtyZXR1cm4hMX19ZnVuY3Rpb24gZyhrZSl7cmV0dXJuIltvYmplY3QgTWFwXSI9PT1SKGtlKX1mdW5jdGlvbiB4KGtlKXtyZXR1cm4iW29iamVjdCBTZXRdIj09PVIoa2UpfWZ1bmN0aW9uIFQoa2Up'@; put 'e3JldHVybiJbb2JqZWN0IFdlYWtNYXBdIj09PVIoa2UpfWZ1bmN0aW9uIFUoa2Upe3JldHVybiJbb2JqZWN0IFdlYWtTZXRdIj09PVIoa2UpfWZ1bmN0aW9uIG0oa2Upe3JldHVybiJbb2JqZWN0IEFycmF5QnVmZmVyXSI9PT1SKGtlKX1mdW5jdGlvbiBBKGtlKXtyZXR1cm4hKHR5cGVvZiBB'@; put 'cnJheUJ1ZmZlcj4idSIpJiYobS53b3JraW5nP20oa2UpOmtlIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpfWZ1bmN0aW9uIGFlKGtlKXtyZXR1cm4iW29iamVjdCBEYXRhVmlld10iPT09UihrZSl9ZnVuY3Rpb24gbmUoa2Upe3JldHVybiEodHlwZW9mIERhdGFWaWV3PiJ1IikmJihhZS53b3Jr'@; put 'aW5nP2FlKGtlKTprZSBpbnN0YW5jZW9mIERhdGFWaWV3KX1KLmlzQXJndW1lbnRzT2JqZWN0PUQsSi5pc0dlbmVyYXRvckZ1bmN0aW9uPV8sSi5pc1R5cGVkQXJyYXk9TixKLmlzUHJvbWlzZT1mdW5jdGlvbiBaKGtlKXtyZXR1cm4gdHlwZW9mIFByb21pc2U8InUiJiZrZSBpbnN0YW5jZW9m'@; put 'IFByb21pc2V8fG51bGwhPT1rZSYmIm9iamVjdCI9PXR5cGVvZiBrZSYmImZ1bmN0aW9uIj09dHlwZW9mIGtlLnRoZW4mJiJmdW5jdGlvbiI9PXR5cGVvZiBrZS5jYXRjaH0sSi5pc0FycmF5QnVmZmVyVmlldz1mdW5jdGlvbiBYKGtlKXtyZXR1cm4gdHlwZW9mIEFycmF5QnVmZmVyPCJ1IiYm'@; put 'QXJyYXlCdWZmZXIuaXNWaWV3P0FycmF5QnVmZmVyLmlzVmlldyhrZSk6TihrZSl8fG5lKGtlKX0sSi5pc1VpbnQ4QXJyYXk9ZnVuY3Rpb24gUShrZSl7cmV0dXJuIlVpbnQ4QXJyYXkiPT09cChrZSl9LEouaXNVaW50OENsYW1wZWRBcnJheT1mdW5jdGlvbiBxKGtlKXtyZXR1cm4iVWludDhD'@; put 'bGFtcGVkQXJyYXkiPT09cChrZSl9LEouaXNVaW50MTZBcnJheT1mdW5jdGlvbiB0ZShrZSl7cmV0dXJuIlVpbnQxNkFycmF5Ij09PXAoa2UpfSxKLmlzVWludDMyQXJyYXk9ZnVuY3Rpb24gaWUoa2Upe3JldHVybiJVaW50MzJBcnJheSI9PT1wKGtlKX0sSi5pc0ludDhBcnJheT1mdW5jdGlv'@; put 'biBzZShrZSl7cmV0dXJuIkludDhBcnJheSI9PT1wKGtlKX0sSi5pc0ludDE2QXJyYXk9ZnVuY3Rpb24gZ2Uoa2Upe3JldHVybiJJbnQxNkFycmF5Ij09PXAoa2UpfSxKLmlzSW50MzJBcnJheT1mdW5jdGlvbiBfZShrZSl7cmV0dXJuIkludDMyQXJyYXkiPT09cChrZSl9LEouaXNGbG9hdDMy'@; put 'QXJyYXk9ZnVuY3Rpb24gVGUoa2Upe3JldHVybiJGbG9hdDMyQXJyYXkiPT09cChrZSl9LEouaXNGbG9hdDY0QXJyYXk9ZnVuY3Rpb24gU2Uoa2Upe3JldHVybiJGbG9hdDY0QXJyYXkiPT09cChrZSl9LEouaXNCaWdJbnQ2NEFycmF5PWZ1bmN0aW9uIHplKGtlKXtyZXR1cm4iQmlnSW50NjRB'@; put 'cnJheSI9PT1wKGtlKX0sSi5pc0JpZ1VpbnQ2NEFycmF5PWZ1bmN0aW9uIHooa2Upe3JldHVybiJCaWdVaW50NjRBcnJheSI9PT1wKGtlKX0sZy53b3JraW5nPXR5cGVvZiBNYXA8InUiJiZnKG5ldyBNYXApLEouaXNNYXA9ZnVuY3Rpb24geShrZSl7cmV0dXJuISh0eXBlb2YgTWFwPiJ1Iikm'@; put 'JihnLndvcmtpbmc/ZyhrZSk6a2UgaW5zdGFuY2VvZiBNYXApfSx4Lndvcmtpbmc9dHlwZW9mIFNldDwidSImJngobmV3IFNldCksSi5pc1NldD1mdW5jdGlvbiBDKGtlKXtyZXR1cm4hKHR5cGVvZiBTZXQ+InUiKSYmKHgud29ya2luZz94KGtlKTprZSBpbnN0YW5jZW9mIFNldCl9LFQud29y'@; put 'a2luZz10eXBlb2YgV2Vha01hcDwidSImJlQobmV3IFdlYWtNYXApLEouaXNXZWFrTWFwPWZ1bmN0aW9uIFYoa2Upe3JldHVybiEodHlwZW9mIFdlYWtNYXA+InUiKSYmKFQud29ya2luZz9UKGtlKTprZSBpbnN0YW5jZW9mIFdlYWtNYXApfSxVLndvcmtpbmc9dHlwZW9mIFdlYWtTZXQ8InUi'@; put 'JiZVKG5ldyBXZWFrU2V0KSxKLmlzV2Vha1NldD1mdW5jdGlvbiBFKGtlKXtyZXR1cm4gVShrZSl9LG0ud29ya2luZz10eXBlb2YgQXJyYXlCdWZmZXI8InUiJiZtKG5ldyBBcnJheUJ1ZmZlciksSi5pc0FycmF5QnVmZmVyPUEsYWUud29ya2luZz10eXBlb2YgQXJyYXlCdWZmZXI8InUiJiZ0'@; put 'eXBlb2YgRGF0YVZpZXc8InUiJiZhZShuZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDEpLDAsMSkpLEouaXNEYXRhVmlldz1uZTt2YXIgbGU9dHlwZW9mIFNoYXJlZEFycmF5QnVmZmVyPCJ1Ij9TaGFyZWRBcnJheUJ1ZmZlcjp2b2lkIDA7ZnVuY3Rpb24gd2Uoa2Upe3JldHVybiJbb2Jq'@; put 'ZWN0IFNoYXJlZEFycmF5QnVmZmVyXSI9PT1SKGtlKX1mdW5jdGlvbiBaZShrZSl7cmV0dXJuISh0eXBlb2YgbGU+InUiKSYmKHR5cGVvZiB3ZS53b3JraW5nPiJ1IiYmKHdlLndvcmtpbmc9d2UobmV3IGxlKSksd2Uud29ya2luZz93ZShrZSk6a2UgaW5zdGFuY2VvZiBsZSl9ZnVuY3Rpb24g'@; put 'amUoa2Upe3JldHVybiBXKGtlLGopfWZ1bmN0aW9uIEFlKGtlKXtyZXR1cm4gVyhrZSxQKX1mdW5jdGlvbiBGZShrZSl7cmV0dXJuIFcoa2UsTCl9ZnVuY3Rpb24gUmUoa2Upe3JldHVybiBGJiZXKGtlLFkpfWZ1bmN0aW9uIEllKGtlKXtyZXR1cm4gSCYmVyhrZSxCKX1KLmlzU2hhcmVkQXJy'@; put 'YXlCdWZmZXI9WmUsSi5pc0FzeW5jRnVuY3Rpb249ZnVuY3Rpb24gUWUoa2Upe3JldHVybiJbb2JqZWN0IEFzeW5jRnVuY3Rpb25dIj09PVIoa2UpfSxKLmlzTWFwSXRlcmF0b3I9ZnVuY3Rpb24gYXQoa2Upe3JldHVybiJbb2JqZWN0IE1hcCBJdGVyYXRvcl0iPT09UihrZSl9LEouaXNTZXRJ'@; put 'dGVyYXRvcj1mdW5jdGlvbiB4ZShrZSl7cmV0dXJuIltvYmplY3QgU2V0IEl0ZXJhdG9yXSI9PT1SKGtlKX0sSi5pc0dlbmVyYXRvck9iamVjdD1mdW5jdGlvbiB2ZShrZSl7cmV0dXJuIltvYmplY3QgR2VuZXJhdG9yXSI9PT1SKGtlKX0sSi5pc1dlYkFzc2VtYmx5Q29tcGlsZWRNb2R1bGU9'@; put 'ZnVuY3Rpb24gcWUoa2Upe3JldHVybiJbb2JqZWN0IFdlYkFzc2VtYmx5Lk1vZHVsZV0iPT09UihrZSl9LEouaXNOdW1iZXJPYmplY3Q9amUsSi5pc1N0cmluZ09iamVjdD1BZSxKLmlzQm9vbGVhbk9iamVjdD1GZSxKLmlzQmlnSW50T2JqZWN0PVJlLEouaXNTeW1ib2xPYmplY3Q9SWUsSi5p'@; put 'c0JveGVkUHJpbWl0aXZlPWZ1bmN0aW9uIEhlKGtlKXtyZXR1cm4gamUoa2UpfHxBZShrZSl8fEZlKGtlKXx8UmUoa2UpfHxJZShrZSl9LEouaXNBbnlBcnJheUJ1ZmZlcj1mdW5jdGlvbiBEZShrZSl7cmV0dXJuIHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmKEEoa2UpfHxaZShrZSkpfSxbImlz'@; put 'UHJveHkiLCJpc0V4dGVybmFsIiwiaXNNb2R1bGVOYW1lc3BhY2VPYmplY3QiXS5mb3JFYWNoKGZ1bmN0aW9uKGtlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoSixrZSx7ZW51bWVyYWJsZTohMSx2YWx1ZTpmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcihrZSsiIGlzIG5vdCBzdXBwb3J0ZWQg'@; put 'aW4gdXNlcmxhbmQiKX19KX0pfSw5NTM5OihjZSxKLGIpPT57dmFyIEQ9Yig0MTU1KSxfPWIoNTEwOCkscD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yc3x8ZnVuY3Rpb24od2Upe2Zvcih2YXIgWmU9T2JqZWN0LmtleXMod2UpLFFlPXt9LGF0PTA7YXQ8WmUubGVuZ3RoO2F0Kysp'@; put 'UWVbWmVbYXRdXT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdlLFplW2F0XSk7cmV0dXJuIFFlfSxOPS8lW3NkaiVdL2c7Si5mb3JtYXQ9ZnVuY3Rpb24obGUpe2lmKCFfZShsZSkpe2Zvcih2YXIgd2U9W10sWmU9MDtaZTxhcmd1bWVudHMubGVuZ3RoO1plKyspd2UucHVzaChS'@; put 'KGFyZ3VtZW50c1taZV0pKTtyZXR1cm4gd2Uuam9pbigiICIpfVplPTE7Zm9yKHZhciBRZT1hcmd1bWVudHMsYXQ9UWUubGVuZ3RoLHhlPVN0cmluZyhsZSkucmVwbGFjZShOLGZ1bmN0aW9uKHFlKXtpZigiJSUiPT09cWUpcmV0dXJuIiUiO2lmKFplPj1hdClyZXR1cm4gcWU7c3dpdGNoKHFl'@; put 'KXtjYXNlIiVzIjpyZXR1cm4gU3RyaW5nKFFlW1plKytdKTtjYXNlIiVkIjpyZXR1cm4gTnVtYmVyKFFlW1plKytdKTtjYXNlIiVqIjp0cnl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KFFlW1plKytdKX1jYXRjaHtyZXR1cm4iW0NpcmN1bGFyXSJ9ZGVmYXVsdDpyZXR1cm4gcWV9fSksdmU9UWVb'@; put 'WmVdO1plPGF0O3ZlPVFlWysrWmVdKWllKHZlKXx8IXoodmUpP3hlKz0iICIrdmU6eGUrPSIgIitSKHZlKTtyZXR1cm4geGV9LEouZGVwcmVjYXRlPWZ1bmN0aW9uKGxlLHdlKXtpZih0eXBlb2YgRDwidSImJiEwPT09RC5ub0RlcHJlY2F0aW9uKXJldHVybiBsZTtpZih0eXBlb2YgRD4idSIp'@; put 'cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEouZGVwcmVjYXRlKGxlLHdlKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O3ZhciBaZT0hMTtyZXR1cm4gZnVuY3Rpb24gUWUoKXtpZighWmUpe2lmKEQudGhyb3dEZXByZWNhdGlvbil0aHJvdyBuZXcgRXJyb3Iod2UpO0QudHJhY2VEZXByZWNhdGlv'@; put 'bj9fLnRyYWNlKHdlKTpfLmVycm9yKHdlKSxaZT0hMH1yZXR1cm4gbGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX07dmFyIHc9e30sRj0vXiQvO2lmKEQuZW52Lk5PREVfREVCVUcpe3ZhciBIPUQuZW52Lk5PREVfREVCVUc7SD1ILnJlcGxhY2UoL1t8XFx7fSgpW1xdXiQrPy5dL2csIlxcJCYi'@; put 'KS5yZXBsYWNlKC9cKi9nLCIuKiIpLnJlcGxhY2UoLywvZywiJHxeIikudG9VcHBlckNhc2UoKSxGPW5ldyBSZWdFeHAoIl4iK0grIiQiLCJpIil9ZnVuY3Rpb24gUihsZSx3ZSl7dmFyIFplPXtzZWVuOltdLHN0eWxpemU6UH07cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+PTMmJihaZS5kZXB0'@; put 'aD1hcmd1bWVudHNbMl0pLGFyZ3VtZW50cy5sZW5ndGg+PTQmJihaZS5jb2xvcnM9YXJndW1lbnRzWzNdKSx0ZSh3ZSk/WmUuc2hvd0hpZGRlbj13ZTp3ZSYmSi5fZXh0ZW5kKFplLHdlKSxTZShaZS5zaG93SGlkZGVuKSYmKFplLnNob3dIaWRkZW49ITEpLFNlKFplLmRlcHRoKSYmKFplLmRl'@; put 'cHRoPTIpLFNlKFplLmNvbG9ycykmJihaZS5jb2xvcnM9ITEpLFNlKFplLmN1c3RvbUluc3BlY3QpJiYoWmUuY3VzdG9tSW5zcGVjdD0hMCksWmUuY29sb3JzJiYoWmUuc3R5bGl6ZT1qKSxZKFplLGxlLFplLmRlcHRoKX1mdW5jdGlvbiBqKGxlLHdlKXt2YXIgWmU9Ui5zdHlsZXNbd2VdO3Jl'@; put 'dHVybiBaZT8iXHgxYlsiK1IuY29sb3JzW1plXVswXSsibSIrbGUrIlx4MWJbIitSLmNvbG9yc1taZV1bMV0rIm0iOmxlfWZ1bmN0aW9uIFAobGUsd2Upe3JldHVybiBsZX1mdW5jdGlvbiBZKGxlLHdlLFplKXtpZihsZS5jdXN0b21JbnNwZWN0JiZ3ZSYmeCh3ZS5pbnNwZWN0KSYmd2UuaW5z'@; put 'cGVjdCE9PUouaW5zcGVjdCYmKCF3ZS5jb25zdHJ1Y3Rvcnx8d2UuY29uc3RydWN0b3IucHJvdG90eXBlIT09d2UpKXt2YXIgUWU9d2UuaW5zcGVjdChaZSxsZSk7cmV0dXJuIF9lKFFlKXx8KFFlPVkobGUsUWUsWmUpKSxRZX12YXIgYXQ9ZnVuY3Rpb24gQihsZSx3ZSl7aWYoU2Uod2UpKXJl'@; put 'dHVybiBsZS5zdHlsaXplKCJ1bmRlZmluZWQiLCJ1bmRlZmluZWQiKTtpZihfZSh3ZSkpe3ZhciBaZT0iJyIrSlNPTi5zdHJpbmdpZnkod2UpLnJlcGxhY2UoL14ifCIkL2csIiIpLnJlcGxhY2UoLycvZywiXFwnIikucmVwbGFjZSgvXFwiL2csJyInKSsiJyI7cmV0dXJuIGxlLnN0eWxpemUo'@; put 'WmUsInN0cmluZyIpfXJldHVybiBnZSh3ZSk/bGUuc3R5bGl6ZSgiIit3ZSwibnVtYmVyIik6dGUod2UpP2xlLnN0eWxpemUoIiIrd2UsImJvb2xlYW4iKTppZSh3ZSk/bGUuc3R5bGl6ZSgibnVsbCIsIm51bGwiKTp2b2lkIDB9KGxlLHdlKTtpZihhdClyZXR1cm4gYXQ7dmFyIHhlPU9iamVj'@; put 'dC5rZXlzKHdlKSx2ZT1mdW5jdGlvbiBMKGxlKXt2YXIgd2U9e307cmV0dXJuIGxlLmZvckVhY2goZnVuY3Rpb24oWmUsUWUpe3dlW1plXT0hMH0pLHdlfSh4ZSk7aWYobGUuc2hvd0hpZGRlbiYmKHhlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHdlKSkseSh3ZSkmJih4ZS5pbmRleE9m'@; put 'KCJtZXNzYWdlIik+PTB8fHhlLmluZGV4T2YoImRlc2NyaXB0aW9uIik+PTApKXJldHVybiBXKHdlKTtpZigwPT09eGUubGVuZ3RoKXtpZih4KHdlKSlyZXR1cm4gbGUuc3R5bGl6ZSgiW0Z1bmN0aW9uIisod2UubmFtZT8iOiAiK3dlLm5hbWU6IiIpKyJdIiwic3BlY2lhbCIpO2lmKHplKHdl'@; put 'KSlyZXR1cm4gbGUuc3R5bGl6ZShSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwod2UpLCJyZWdleHAiKTtpZihnKHdlKSlyZXR1cm4gbGUuc3R5bGl6ZShEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHdlKSwiZGF0ZSIpO2lmKHkod2UpKXJldHVybiBXKHdlKX12YXIgSWUsamU9'@; put 'IiIsQWU9ITEsRmU9WyJ7IiwifSJdO3JldHVybiBxKHdlKSYmKEFlPSEwLEZlPVsiWyIsIl0iXSkseCh3ZSkmJihqZT0iIFtGdW5jdGlvbiIrKHdlLm5hbWU/IjogIit3ZS5uYW1lOiIiKSsiXSIpLHplKHdlKSYmKGplPSIgIitSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwod2UpKSxn'@; put 'KHdlKSYmKGplPSIgIitEYXRlLnByb3RvdHlwZS50b1VUQ1N0cmluZy5jYWxsKHdlKSkseSh3ZSkmJihqZT0iICIrVyh3ZSkpLDAhPT14ZS5sZW5ndGh8fEFlJiYwIT13ZS5sZW5ndGg/WmU8MD96ZSh3ZSk/bGUuc3R5bGl6ZShSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwod2UpLCJy'@; put 'ZWdleHAiKTpsZS5zdHlsaXplKCJbT2JqZWN0XSIsInNwZWNpYWwiKToobGUuc2Vlbi5wdXNoKHdlKSxJZT1BZT9mdW5jdGlvbiBaKGxlLHdlLFplLFFlLGF0KXtmb3IodmFyIHhlPVtdLHZlPTAscWU9d2UubGVuZ3RoO3ZlPHFlOysrdmUpbSh3ZSxTdHJpbmcodmUpKT94ZS5wdXNoKFgobGUs'@; put 'd2UsWmUsUWUsU3RyaW5nKHZlKSwhMCkpOnhlLnB1c2goIiIpO3JldHVybiBhdC5mb3JFYWNoKGZ1bmN0aW9uKGplKXtqZS5tYXRjaCgvXlxkKyQvKXx8eGUucHVzaChYKGxlLHdlLFplLFFlLGplLCEwKSl9KSx4ZX0obGUsd2UsWmUsdmUseGUpOnhlLm1hcChmdW5jdGlvbihIZSl7cmV0dXJu'@; put 'IFgobGUsd2UsWmUsdmUsSGUsQWUpfSksbGUuc2Vlbi5wb3AoKSxmdW5jdGlvbiBRKGxlLHdlLFplKXt2YXIgYXQ9bGUucmVkdWNlKGZ1bmN0aW9uKHhlLHZlKXtyZXR1cm4gdmUuaW5kZXhPZigiXG4iKSx4ZSt2ZS5yZXBsYWNlKC9cdTAwMWJcW1xkXGQ/bS9nLCIiKS5sZW5ndGgrMX0sMCk7'@; put 'cmV0dXJuIGF0PjYwP1plWzBdKygiIj09PXdlPyIiOndlKyJcbiAiKSsiICIrbGUuam9pbigiLFxuICAiKSsiICIrWmVbMV06WmVbMF0rd2UrIiAiK2xlLmpvaW4oIiwgIikrIiAiK1plWzFdfShJZSxqZSxGZSkpOkZlWzBdK2plK0ZlWzFdfWZ1bmN0aW9uIFcobGUpe3JldHVybiJbIitFcnJv'@; put 'ci5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChsZSkrIl0ifWZ1bmN0aW9uIFgobGUsd2UsWmUsUWUsYXQseGUpe3ZhciB2ZSxxZSxqZTtpZigoamU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3ZSxhdCl8fHt2YWx1ZTp3ZVthdF19KS5nZXQ/cWU9bGUuc3R5bGl6ZShqZS5zZXQ/'@; put 'IltHZXR0ZXIvU2V0dGVyXSI6IltHZXR0ZXJdIiwic3BlY2lhbCIpOmplLnNldCYmKHFlPWxlLnN0eWxpemUoIltTZXR0ZXJdIiwic3BlY2lhbCIpKSxtKFFlLGF0KXx8KHZlPSJbIithdCsiXSIpLHFlfHwobGUuc2Vlbi5pbmRleE9mKGplLnZhbHVlKTwwPyhxZT1pZShaZSk/WShsZSxqZS52'@; put 'YWx1ZSxudWxsKTpZKGxlLGplLnZhbHVlLFplLTEpKS5pbmRleE9mKCJcbiIpPi0xJiYocWU9eGU/cWUuc3BsaXQoIlxuIikubWFwKGZ1bmN0aW9uKEFlKXtyZXR1cm4iICAiK0FlfSkuam9pbigiXG4iKS5zbGljZSgyKToiXG4iK3FlLnNwbGl0KCJcbiIpLm1hcChmdW5jdGlvbihBZSl7cmV0'@; put 'dXJuIiAgICIrQWV9KS5qb2luKCJcbiIpKTpxZT1sZS5zdHlsaXplKCJbQ2lyY3VsYXJdIiwic3BlY2lhbCIpKSxTZSh2ZSkpe2lmKHhlJiZhdC5tYXRjaCgvXlxkKyQvKSlyZXR1cm4gcWU7KHZlPUpTT04uc3RyaW5naWZ5KCIiK2F0KSkubWF0Y2goL14iKFthLXpBLVpfXVthLXpBLVpfMC05'@; put 'XSopIiQvKT8odmU9dmUuc2xpY2UoMSwtMSksdmU9bGUuc3R5bGl6ZSh2ZSwibmFtZSIpKToodmU9dmUucmVwbGFjZSgvJy9nLCJcXCciKS5yZXBsYWNlKC9cXCIvZywnIicpLnJlcGxhY2UoLyheInwiJCkvZywiJyIpLHZlPWxlLnN0eWxpemUodmUsInN0cmluZyIpKX1yZXR1cm4gdmUrIjog'@; put 'IitxZX1mdW5jdGlvbiBxKGxlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShsZSl9ZnVuY3Rpb24gdGUobGUpe3JldHVybiJib29sZWFuIj09dHlwZW9mIGxlfWZ1bmN0aW9uIGllKGxlKXtyZXR1cm4gbnVsbD09PWxlfWZ1bmN0aW9uIGdlKGxlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGxlfWZ1'@; put 'bmN0aW9uIF9lKGxlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGxlfWZ1bmN0aW9uIFNlKGxlKXtyZXR1cm4gdm9pZCAwPT09bGV9ZnVuY3Rpb24gemUobGUpe3JldHVybiB6KGxlKSYmIltvYmplY3QgUmVnRXhwXSI9PT1UKGxlKX1mdW5jdGlvbiB6KGxlKXtyZXR1cm4ib2JqZWN0Ij09dHlw'@; put 'ZW9mIGxlJiZudWxsIT09bGV9ZnVuY3Rpb24gZyhsZSl7cmV0dXJuIHoobGUpJiYiW29iamVjdCBEYXRlXSI9PT1UKGxlKX1mdW5jdGlvbiB5KGxlKXtyZXR1cm4geihsZSkmJigiW29iamVjdCBFcnJvcl0iPT09VChsZSl8fGxlIGluc3RhbmNlb2YgRXJyb3IpfWZ1bmN0aW9uIHgobGUpe3Jl'@; put 'dHVybiJmdW5jdGlvbiI9PXR5cGVvZiBsZX1mdW5jdGlvbiBUKGxlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGxlKX1mdW5jdGlvbiBWKGxlKXtyZXR1cm4gbGU8MTA/IjAiK2xlLnRvU3RyaW5nKDEwKTpsZS50b1N0cmluZygxMCl9Si5kZWJ1Z2xvZz1mdW5jdGlv'@; put 'bihsZSl7aWYobGU9bGUudG9VcHBlckNhc2UoKSwhd1tsZV0paWYoRi50ZXN0KGxlKSl7dmFyIHdlPUQucGlkO3dbbGVdPWZ1bmN0aW9uKCl7dmFyIFplPUouZm9ybWF0LmFwcGx5KEosYXJndW1lbnRzKTtfLmVycm9yKCIlcyAlZDogJXMiLGxlLHdlLFplKX19ZWxzZSB3W2xlXT1mdW5jdGlv'@; put 'bigpe307cmV0dXJuIHdbbGVdfSxKLmluc3BlY3Q9UixSLmNvbG9ycz17Ym9sZDpbMSwyMl0saXRhbGljOlszLDIzXSx1bmRlcmxpbmU6WzQsMjRdLGludmVyc2U6WzcsMjddLHdoaXRlOlszNywzOV0sZ3JleTpbOTAsMzldLGJsYWNrOlszMCwzOV0sYmx1ZTpbMzQsMzldLGN5YW46WzM2LDM5'@; put 'XSxncmVlbjpbMzIsMzldLG1hZ2VudGE6WzM1LDM5XSxyZWQ6WzMxLDM5XSx5ZWxsb3c6WzMzLDM5XX0sUi5zdHlsZXM9e3NwZWNpYWw6ImN5YW4iLG51bWJlcjoieWVsbG93Iixib29sZWFuOiJ5ZWxsb3ciLHVuZGVmaW5lZDoiZ3JleSIsbnVsbDoiYm9sZCIsc3RyaW5nOiJncmVlbiIsZGF0'@; put 'ZToibWFnZW50YSIscmVnZXhwOiJyZWQifSxKLnR5cGVzPWIoNTk1NSksSi5pc0FycmF5PXEsSi5pc0Jvb2xlYW49dGUsSi5pc051bGw9aWUsSi5pc051bGxPclVuZGVmaW5lZD1mdW5jdGlvbiBzZShsZSl7cmV0dXJuIG51bGw9PWxlfSxKLmlzTnVtYmVyPWdlLEouaXNTdHJpbmc9X2UsSi5p'@; put 'c1N5bWJvbD1mdW5jdGlvbiBUZShsZSl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBsZX0sSi5pc1VuZGVmaW5lZD1TZSxKLmlzUmVnRXhwPXplLEoudHlwZXMuaXNSZWdFeHA9emUsSi5pc09iamVjdD16LEouaXNEYXRlPWcsSi50eXBlcy5pc0RhdGU9ZyxKLmlzRXJyb3I9eSxKLnR5cGVzLmlz'@; put 'TmF0aXZlRXJyb3I9eSxKLmlzRnVuY3Rpb249eCxKLmlzUHJpbWl0aXZlPWZ1bmN0aW9uIEMobGUpe3JldHVybiBudWxsPT09bGV8fCJib29sZWFuIj09dHlwZW9mIGxlfHwibnVtYmVyIj09dHlwZW9mIGxlfHwic3RyaW5nIj09dHlwZW9mIGxlfHwic3ltYm9sIj09dHlwZW9mIGxlfHx0eXBl'@; put 'b2YgbGU+InUifSxKLmlzQnVmZmVyPWIoMzg0KTt2YXIgVT1bIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdO2Z1bmN0aW9uIG0obGUsd2Upe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5'@; put 'LmNhbGwobGUsd2UpfUoubG9nPWZ1bmN0aW9uKCl7Xy5sb2coIiVzIC0gJXMiLGZ1bmN0aW9uIEUoKXt2YXIgbGU9bmV3IERhdGUsd2U9W1YobGUuZ2V0SG91cnMoKSksVihsZS5nZXRNaW51dGVzKCkpLFYobGUuZ2V0U2Vjb25kcygpKV0uam9pbigiOiIpO3JldHVybltsZS5nZXREYXRlKCks'@; put 'VVtsZS5nZXRNb250aCgpXSx3ZV0uam9pbigiICIpfSgpLEouZm9ybWF0LmFwcGx5KEosYXJndW1lbnRzKSl9LEouaW5oZXJpdHM9Yig1NzE3KSxKLl9leHRlbmQ9ZnVuY3Rpb24obGUsd2Upe2lmKCF3ZXx8IXood2UpKXJldHVybiBsZTtmb3IodmFyIFplPU9iamVjdC5rZXlzKHdlKSxRZT1a'@; put 'ZS5sZW5ndGg7UWUtLTspbGVbWmVbUWVdXT13ZVtaZVtRZV1dO3JldHVybiBsZX07dmFyIEE9dHlwZW9mIFN5bWJvbDwidSI/U3ltYm9sKCJ1dGlsLnByb21pc2lmeS5jdXN0b20iKTp2b2lkIDA7ZnVuY3Rpb24gYWUobGUsd2Upe2lmKCFsZSl7dmFyIFplPW5ldyBFcnJvcigiUHJvbWlzZSB3'@; put 'YXMgcmVqZWN0ZWQgd2l0aCBhIGZhbHN5IHZhbHVlIik7WmUucmVhc29uPWxlLGxlPVplfXJldHVybiB3ZShsZSl9Si5wcm9taXNpZnk9ZnVuY3Rpb24od2Upe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB3ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgIm9yaWdpbmFsIiBhcmd1bWVudCBtdXN0'@; put 'IGJlIG9mIHR5cGUgRnVuY3Rpb24nKTtpZihBJiZ3ZVtBXSl7dmFyIFplO2lmKCJmdW5jdGlvbiIhPXR5cGVvZihaZT13ZVtBXSkpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJ1dGlsLnByb21pc2lmeS5jdXN0b20iIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBGdW5jdGlvbicpO3JldHVy'@; put 'biBPYmplY3QuZGVmaW5lUHJvcGVydHkoWmUsQSx7dmFsdWU6WmUsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxaZX1mdW5jdGlvbiBaZSgpe2Zvcih2YXIgUWUsYXQseGU9bmV3IFByb21pc2UoZnVuY3Rpb24oamUsQWUpe1FlPWplLGF0PUFlfSksdmU9W10s'@; put 'cWU9MDtxZTxhcmd1bWVudHMubGVuZ3RoO3FlKyspdmUucHVzaChhcmd1bWVudHNbcWVdKTt2ZS5wdXNoKGZ1bmN0aW9uKGplLEFlKXtqZT9hdChqZSk6UWUoQWUpfSk7dHJ5e3dlLmFwcGx5KHRoaXMsdmUpfWNhdGNoKGplKXthdChqZSl9cmV0dXJuIHhlfXJldHVybiBPYmplY3Quc2V0UHJv'@; put 'dG90eXBlT2YoWmUsT2JqZWN0LmdldFByb3RvdHlwZU9mKHdlKSksQSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KFplLEEse3ZhbHVlOlplLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoWmUscCh3ZSkpfSxKLnByb21p'@; put 'c2lmeS5jdXN0b209QSxKLmNhbGxiYWNraWZ5PWZ1bmN0aW9uIG5lKGxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgbGUpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJvcmlnaW5hbCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEZ1bmN0aW9uJyk7ZnVuY3Rpb24gd2UoKXtmb3IodmFyIFpl'@; put 'PVtdLFFlPTA7UWU8YXJndW1lbnRzLmxlbmd0aDtRZSsrKVplLnB1c2goYXJndW1lbnRzW1FlXSk7dmFyIGF0PVplLnBvcCgpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBhdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgbGFzdCBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRnVuY3Rpb24iKTt2'@; put 'YXIgeGU9dGhpcyx2ZT1mdW5jdGlvbigpe3JldHVybiBhdC5hcHBseSh4ZSxhcmd1bWVudHMpfTtsZS5hcHBseSh0aGlzLFplKS50aGVuKGZ1bmN0aW9uKHFlKXtELm5leHRUaWNrKHZlLmJpbmQobnVsbCxudWxsLHFlKSl9LGZ1bmN0aW9uKHFlKXtELm5leHRUaWNrKGFlLmJpbmQobnVsbCxx'@; put 'ZSx2ZSkpfSl9cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZih3ZSxPYmplY3QuZ2V0UHJvdG90eXBlT2YobGUpKSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyh3ZSxwKGxlKSksd2V9fSw0ODE6KGNlLEosYik9PnshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO0QuZXhwb3J0cy5pc191cmk9'@; put 'cCxELmV4cG9ydHMuaXNfaHR0cF91cmk9TixELmV4cG9ydHMuaXNfaHR0cHNfdXJpPXcsRC5leHBvcnRzLmlzX3dlYl91cmk9RixELmV4cG9ydHMuaXNVcmk9cCxELmV4cG9ydHMuaXNIdHRwVXJpPU4sRC5leHBvcnRzLmlzSHR0cHNVcmk9dyxELmV4cG9ydHMuaXNXZWJVcmk9Rjt2YXIgXz1m'@; put 'dW5jdGlvbihIKXtyZXR1cm4gSC5tYXRjaCgvKD86KFteOlwvPyNdKyk6KT8oPzpcL1wvKFteXC8/I10qKSk/KFtePyNdKikoPzpcPyhbXiNdKikpPyg/OiMoLiopKT8vKX07ZnVuY3Rpb24gcChIKXtpZihIJiYhL1teYS16MC05XDpcL1w/XCNcW1xdXEBcIVwkXCZcJ1woXClcKlwrXCxcO1w9'@; put 'XC5cLVxfXH5cJV0vaS50ZXN0KEgpJiYhLyVbXjAtOWEtZl0vaS50ZXN0KEgpJiYhLyVbMC05YS1mXSg6P1teMC05YS1mXXwkKS9pLnRlc3QoSCkpe3ZhciBSLFAsTCxZLEIsaj0iIixXPSIiO2lmKFA9KFI9XyhIKSlbMl0sTD1SWzNdLFk9Uls0XSxCPVJbNV0sKGo9UlsxXSkmJmoubGVuZ3Ro'@; put 'JiZMLmxlbmd0aD49MCl7aWYoUCYmUC5sZW5ndGgpe2lmKDAhPT1MLmxlbmd0aCYmIS9eXC8vLnRlc3QoTCkpcmV0dXJufWVsc2UgaWYoL15cL1wvLy50ZXN0KEwpKXJldHVybjtpZigvXlthLXpdW2EtejAtOVwrXC1cLl0qJC8udGVzdChqLnRvTG93ZXJDYXNlKCkpKXJldHVybiBXKz1qKyI6'@; put 'IixQJiZQLmxlbmd0aCYmKFcrPSIvLyIrUCksVys9TCxZJiZZLmxlbmd0aCYmKFcrPSI/IitZKSxCJiZCLmxlbmd0aCYmKFcrPSIjIitCKSxXfX19ZnVuY3Rpb24gTihILFIpe2lmKHAoSCkpe3ZhciBqLFksVyxaLFA9IiIsTD0iIixCPSIiLFg9IiI7aWYoTD0oaj1fKEgpKVsyXSxZPWpbM10s'@; put 'Vz1qWzRdLFo9als1XSxQPWpbMV0pe2lmKFIpe2lmKCJodHRwcyIhPVAudG9Mb3dlckNhc2UoKSlyZXR1cm59ZWxzZSBpZigiaHR0cCIhPVAudG9Mb3dlckNhc2UoKSlyZXR1cm47aWYoTClyZXR1cm4vOihcZCspJC8udGVzdChMKSYmKEI9TC5tYXRjaCgvOihcZCspJC8pWzBdLEw9TC5yZXBs'@; put 'YWNlKC86XGQrJC8sIiIpKSxYKz1QKyI6IixYKz0iLy8iK0wsQiYmKFgrPUIpLFgrPVksVyYmVy5sZW5ndGgmJihYKz0iPyIrVyksWiYmWi5sZW5ndGgmJihYKz0iIyIrWiksWH19fWZ1bmN0aW9uIHcoSCl7cmV0dXJuIE4oSCwhMCl9ZnVuY3Rpb24gRihIKXtyZXR1cm4gTihIKXx8dyhIKX19'@; put 'KGNlPWIubm1kKGNlKSl9LDUxNDA6KF9fdW51c2VkX3dlYnBhY2tfbW9kdWxlLGV4cG9ydHMpPT57dmFyIGluZGV4T2Y9ZnVuY3Rpb24oY2UsSil7aWYoY2UuaW5kZXhPZilyZXR1cm4gY2UuaW5kZXhPZihKKTtmb3IodmFyIGI9MDtiPGNlLmxlbmd0aDtiKyspaWYoY2VbYl09PT1KKXJldHVy'@; put 'biBiO3JldHVybi0xfSxPYmplY3Rfa2V5cz1mdW5jdGlvbihjZSl7aWYoT2JqZWN0LmtleXMpcmV0dXJuIE9iamVjdC5rZXlzKGNlKTt2YXIgSj1bXTtmb3IodmFyIGIgaW4gY2UpSi5wdXNoKGIpO3JldHVybiBKfSxmb3JFYWNoPWZ1bmN0aW9uKGNlLEope2lmKGNlLmZvckVhY2gpcmV0dXJu'@; put 'IGNlLmZvckVhY2goSik7Zm9yKHZhciBiPTA7YjxjZS5sZW5ndGg7YisrKUooY2VbYl0sYixjZSl9LGRlZmluZVByb3A9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwiXyIse30pLGZ1bmN0aW9uKGNlLEosYil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGNl'@; put 'LEose3dyaXRhYmxlOiEwLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwLHZhbHVlOmJ9KX19Y2F0Y2h7cmV0dXJuIGZ1bmN0aW9uKEosYixEKXtKW2JdPUR9fX0oKSxnbG9iYWxzPVsiQXJyYXkiLCJCb29sZWFuIiwiRGF0ZSIsIkVycm9yIiwiRXZhbEVycm9yIiwiRnVuY3Rpb24iLCJJ'@; put 'bmZpbml0eSIsIkpTT04iLCJNYXRoIiwiTmFOIiwiTnVtYmVyIiwiT2JqZWN0IiwiUmFuZ2VFcnJvciIsIlJlZmVyZW5jZUVycm9yIiwiUmVnRXhwIiwiU3RyaW5nIiwiU3ludGF4RXJyb3IiLCJUeXBlRXJyb3IiLCJVUklFcnJvciIsImRlY29kZVVSSSIsImRlY29kZVVSSUNvbXBvbmVudCIs'@; put 'ImVuY29kZVVSSSIsImVuY29kZVVSSUNvbXBvbmVudCIsImVzY2FwZSIsImV2YWwiLCJpc0Zpbml0ZSIsImlzTmFOIiwicGFyc2VGbG9hdCIsInBhcnNlSW50IiwidW5kZWZpbmVkIiwidW5lc2NhcGUiXTtmdW5jdGlvbiBDb250ZXh0KCl7fUNvbnRleHQucHJvdG90eXBlPXt9O3ZhciBTY3Jp'@; put 'cHQ9ZXhwb3J0cy5TY3JpcHQ9ZnVuY3Rpb24oSil7aWYoISh0aGlzIGluc3RhbmNlb2YgU2NyaXB0KSlyZXR1cm4gbmV3IFNjcmlwdChKKTt0aGlzLmNvZGU9Sn07U2NyaXB0LnByb3RvdHlwZS5ydW5JbkNvbnRleHQ9ZnVuY3Rpb24oY2Upe2lmKCEoY2UgaW5zdGFuY2VvZiBDb250ZXh0KSl0'@; put 'aHJvdyBuZXcgVHlwZUVycm9yKCJuZWVkcyBhICdjb250ZXh0JyBhcmd1bWVudC4iKTt2YXIgSj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTtKLnN0eWxlfHwoSi5zdHlsZT17fSksSi5zdHlsZS5kaXNwbGF5PSJub25lIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKEopO3Zh'@; put 'ciBiPUouY29udGVudFdpbmRvdyxEPWIuZXZhbCxfPWIuZXhlY1NjcmlwdDshRCYmXyYmKF8uY2FsbChiLCJudWxsIiksRD1iLmV2YWwpLGZvckVhY2goT2JqZWN0X2tleXMoY2UpLGZ1bmN0aW9uKHcpe2Jbd109Y2Vbd119KSxmb3JFYWNoKGdsb2JhbHMsZnVuY3Rpb24odyl7Y2Vbd10mJihi'@; put 'W3ddPWNlW3ddKX0pO3ZhciBwPU9iamVjdF9rZXlzKGIpLE49RC5jYWxsKGIsdGhpcy5jb2RlKTtyZXR1cm4gZm9yRWFjaChPYmplY3Rfa2V5cyhiKSxmdW5jdGlvbih3KXsodyBpbiBjZXx8LTE9PT1pbmRleE9mKHAsdykpJiYoY2Vbd109Ylt3XSl9KSxmb3JFYWNoKGdsb2JhbHMsZnVuY3Rp'@; put 'b24odyl7dyBpbiBjZXx8ZGVmaW5lUHJvcChjZSx3LGJbd10pfSksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChKKSxOfSxTY3JpcHQucHJvdG90eXBlLnJ1bkluVGhpc0NvbnRleHQ9ZnVuY3Rpb24oKXtyZXR1cm4gZXZhbCh0aGlzLmNvZGUpfSxTY3JpcHQucHJvdG90eXBlLnJ1bkluTmV3'@; put 'Q29udGV4dD1mdW5jdGlvbihjZSl7dmFyIEo9U2NyaXB0LmNyZWF0ZUNvbnRleHQoY2UpLGI9dGhpcy5ydW5JbkNvbnRleHQoSik7cmV0dXJuIGNlJiZmb3JFYWNoKE9iamVjdF9rZXlzKEopLGZ1bmN0aW9uKEQpe2NlW0RdPUpbRF19KSxifSxmb3JFYWNoKE9iamVjdF9rZXlzKFNjcmlwdC5w'@; put 'cm90b3R5cGUpLGZ1bmN0aW9uKGNlKXtleHBvcnRzW2NlXT1TY3JpcHRbY2VdPWZ1bmN0aW9uKEope3ZhciBiPVNjcmlwdChKKTtyZXR1cm4gYltjZV0uYXBwbHkoYixbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSl9fSksZXhwb3J0cy5pc0NvbnRleHQ9ZnVuY3Rpb24oY2Upe3JldHVybiBj'@; put 'ZSBpbnN0YW5jZW9mIENvbnRleHR9LGV4cG9ydHMuY3JlYXRlU2NyaXB0PWZ1bmN0aW9uKGNlKXtyZXR1cm4gZXhwb3J0cy5TY3JpcHQoY2UpfSxleHBvcnRzLmNyZWF0ZUNvbnRleHQ9U2NyaXB0LmNyZWF0ZUNvbnRleHQ9ZnVuY3Rpb24oY2Upe3ZhciBKPW5ldyBDb250ZXh0O3JldHVybiJv'@; put 'YmplY3QiPT10eXBlb2YgY2UmJmZvckVhY2goT2JqZWN0X2tleXMoY2UpLGZ1bmN0aW9uKGIpe0pbYl09Y2VbYl19KSxKfX0sNjQzMDooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDQwMjkpLF89YigzMDgzKSxwPWIoNTU1OSksTj1iKDczNzkpLHc9Yig3Mjk2KSxGPU4oIk9iamVj'@; put 'dC5wcm90b3R5cGUudG9TdHJpbmciKSxIPWIoNjQxMCkoKSxSPXR5cGVvZiBnbG9iYWxUaGlzPiJ1Ij9iLmc6Z2xvYmFsVGhpcyxqPV8oKSxQPU4oIlN0cmluZy5wcm90b3R5cGUuc2xpY2UiKSxMPU9iamVjdC5nZXRQcm90b3R5cGVPZixZPU4oIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIiwh'@; put 'MCl8fGZ1bmN0aW9uKFEscSl7Zm9yKHZhciB0ZT0wO3RlPFEubGVuZ3RoO3RlKz0xKWlmKFFbdGVdPT09cSlyZXR1cm4gdGU7cmV0dXJuLTF9LEI9e19fcHJvdG9fXzpudWxsfTtEKGosSCYmdyYmTD9mdW5jdGlvbihYKXt2YXIgUT1uZXcgUltYXTtpZihTeW1ib2wudG9TdHJpbmdUYWcgaW4g'@; put 'USl7dmFyIHE9TChRKSx0ZT13KHEsU3ltYm9sLnRvU3RyaW5nVGFnKTtpZighdGUpe3ZhciBpZT1MKHEpO3RlPXcoaWUsU3ltYm9sLnRvU3RyaW5nVGFnKX1CWyIkIitYXT1wKHRlLmdldCl9fTpmdW5jdGlvbihYKXt2YXIgUT1uZXcgUltYXSxxPVEuc2xpY2V8fFEuc2V0O3EmJihCWyIkIitY'@; put 'XT1wKHEpKX0pLGNlLmV4cG9ydHM9ZnVuY3Rpb24oUSl7aWYoIVF8fCJvYmplY3QiIT10eXBlb2YgUSlyZXR1cm4hMTtpZighSCl7dmFyIHE9UChGKFEpLDgsLTEpO3JldHVybiBZKGoscSk+LTE/cToiT2JqZWN0Ij09PXEmJmZ1bmN0aW9uKFEpe3ZhciBxPSExO3JldHVybiBEKEIsZnVuY3Rp'@; put 'b24odGUsaWUpe2lmKCFxKXRyeXt0ZShRKSxxPVAoaWUsMSl9Y2F0Y2h7fX0pLHF9KFEpfXJldHVybiB3P2Z1bmN0aW9uKFEpe3ZhciBxPSExO3JldHVybiBEKEIsZnVuY3Rpb24odGUsaWUpe2lmKCFxKXRyeXsiJCIrdGUoUSk9PT1pZSYmKHE9UChpZSwxKSl9Y2F0Y2h7fX0pLHF9KFEpOm51'@; put 'bGx9fSw4NjQ2OigpPT57fSw5NTA6KCk9Pnt9LDY2MDE6KCk9Pnt9LDkyMTQ6KCk9Pnt9LDY0MTk6KCk9Pnt9LDYzNTM6KCk9Pnt9LDg2MjM6KCk9Pnt9LDc3NDg6KCk9Pnt9LDU1Njg6KCk9Pnt9LDU0NDM6KCk9Pnt9LDQxMjk6KCk9Pnt9LDY2MTk6KCk9Pnt9LDcxMDg6KCk9Pnt9LDIzNjE6'@; put 'KCk9Pnt9LDQ2MTY6KCk9Pnt9LDgzNzM6KCk9Pnt9LDMwODM6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig5OTA4KSxfPXR5cGVvZiBnbG9iYWxUaGlzPiJ1Ij9iLmc6Z2xvYmFsVGhpcztjZS5leHBvcnRzPWZ1bmN0aW9uKCl7Zm9yKHZhciBOPVtdLHc9MDt3PEQubGVuZ3RoO3cr'@; put 'KykiZnVuY3Rpb24iPT10eXBlb2YgX1tEW3ddXSYmKE5bTi5sZW5ndGhdPURbd10pO3JldHVybiBOfX0sNzIxODooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDQxNTUpLF89Yig4NzY0KS5CdWZmZXIscD1iKDUxMDgpO2Z1bmN0aW9uIE4oU3QsVnQpe3JldHVybiBmdW5jdGlvbigp'@; put 'e3JldHVybiBTdC5hcHBseShWdCxhcmd1bWVudHMpfX1jb25zdHt0b1N0cmluZzp3fT1PYmplY3QucHJvdG90eXBlLHtnZXRQcm90b3R5cGVPZjpGfT1PYmplY3QsSD0oU3Q9PlZ0PT57Y29uc3QgeW49dy5jYWxsKFZ0KTtyZXR1cm4gU3RbeW5dfHwoU3RbeW5dPXluLnNsaWNlKDgsLTEpLnRv'@; put 'TG93ZXJDYXNlKCkpfSkoT2JqZWN0LmNyZWF0ZShudWxsKSksUj1TdD0+KFN0PVN0LnRvTG93ZXJDYXNlKCksVnQ9PkgoVnQpPT09U3QpLGo9U3Q9PlZ0PT50eXBlb2YgVnQ9PT1TdCx7aXNBcnJheTpQfT1BcnJheSxMPWooInVuZGVmaW5lZCIpLEI9UigiQXJyYXlCdWZmZXIiKSxaPWooInN0'@; put 'cmluZyIpLFg9aigiZnVuY3Rpb24iKSxRPWooIm51bWJlciIpLHE9U3Q9Pm51bGwhPT1TdCYmIm9iamVjdCI9PXR5cGVvZiBTdCxpZT1TdD0+e2lmKCJvYmplY3QiIT09SChTdCkpcmV0dXJuITE7Y29uc3QgVnQ9RihTdCk7cmV0dXJuIShudWxsIT09VnQmJlZ0IT09T2JqZWN0LnByb3RvdHlw'@; put 'ZSYmbnVsbCE9PU9iamVjdC5nZXRQcm90b3R5cGVPZihWdCl8fFN5bWJvbC50b1N0cmluZ1RhZyBpbiBTdHx8U3ltYm9sLml0ZXJhdG9yIGluIFN0KX0sc2U9UigiRGF0ZSIpLGdlPVIoIkZpbGUiKSxfZT1SKCJCbG9iIiksVGU9UigiRmlsZUxpc3QiKSx6PVIoIlVSTFNlYXJjaFBhcmFtcyIp'@; put 'LFtnLHkseCxDXT1bIlJlYWRhYmxlU3RyZWFtIiwiUmVxdWVzdCIsIlJlc3BvbnNlIiwiSGVhZGVycyJdLm1hcChSKTtmdW5jdGlvbiBWKFN0LFZ0LHthbGxPd25LZXlzOnluPSExfT17fSl7aWYobnVsbD09PVN0fHx0eXBlb2YgU3Q+InUiKXJldHVybjtsZXQgZ24sUm47aWYoIm9iamVjdCIh'@; put 'PXR5cGVvZiBTdCYmKFN0PVtTdF0pLFAoU3QpKWZvcihnbj0wLFJuPVN0Lmxlbmd0aDtnbjxSbjtnbisrKVZ0LmNhbGwobnVsbCxTdFtnbl0sZ24sU3QpO2Vsc2V7Y29uc3Qgdm49eW4/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoU3QpOk9iamVjdC5rZXlzKFN0KSxkcj12bi5sZW5ndGg7'@; put 'bGV0IHZpO2Zvcihnbj0wO2duPGRyO2duKyspdmk9dm5bZ25dLFZ0LmNhbGwobnVsbCxTdFt2aV0sdmksU3QpfX1mdW5jdGlvbiBVKFN0LFZ0KXtWdD1WdC50b0xvd2VyQ2FzZSgpO2NvbnN0IHluPU9iamVjdC5rZXlzKFN0KTtsZXQgUm4sZ249eW4ubGVuZ3RoO2Zvcig7Z24tLSA+MDspaWYo'@; put 'Um49eW5bZ25dLFZ0PT09Um4udG9Mb3dlckNhc2UoKSlyZXR1cm4gUm47cmV0dXJuIG51bGx9Y29uc3QgRT10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6Yi5nLG09U3Q9PiFMKFN0KSYmU3QhPT1F'@; put 'LGF0PShTdD0+VnQ9PlN0JiZWdCBpbnN0YW5jZW9mIFN0KSh0eXBlb2YgVWludDhBcnJheTwidSImJkYoVWludDhBcnJheSkpLHFlPVIoIkhUTUxGb3JtRWxlbWVudCIpLEFlPSgoe2hhc093blByb3BlcnR5OlN0fSk9PihWdCx5bik9PlN0LmNhbGwoVnQseW4pKShPYmplY3QucHJvdG90eXBl'@; put 'KSxGZT1SKCJSZWdFeHAiKSxSZT0oU3QsVnQpPT57Y29uc3QgeW49T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoU3QpLGduPXt9O1YoeW4sKFJuLHZuKT0+e2xldCBkcjshMSE9PShkcj1WdChSbix2bixTdCkpJiYoZ25bdm5dPWRyfHxSbil9KSxPYmplY3QuZGVmaW5lUHJvcGVy'@; put 'dGllcyhTdCxnbil9LEplPVIoIkFzeW5jRnVuY3Rpb24iKSx5dD0oU3Q9ImZ1bmN0aW9uIj09dHlwZW9mIHNldEltbWVkaWF0ZSxWdD1YKEUucG9zdE1lc3NhZ2UpLFN0P3NldEltbWVkaWF0ZTpWdD8oeW49YGF4aW9zQCR7TWF0aC5yYW5kb20oKX1gLGduPVtdLEUuYWRkRXZlbnRMaXN0ZW5l'@; put 'cigibWVzc2FnZSIsKHtzb3VyY2U6Um4sZGF0YTp2bn0pPT57Um49PT1FJiZ2bj09PXluJiZnbi5sZW5ndGgmJmduLnNoaWZ0KCkoKX0sITEpLFJuPT57Z24ucHVzaChSbiksRS5wb3N0TWVzc2FnZSh5biwiKiIpfSk6eW49PnNldFRpbWVvdXQoeW4pKSxNdD10eXBlb2YgcXVldWVNaWNyb3Rh'@; put 'c2s8InUiP3F1ZXVlTWljcm90YXNrLmJpbmQoRSk6dHlwZW9mIEQ8InUiJiZELm5leHRUaWNrfHx5dDt2YXIgU3QsVnQseW4sZ24sSXQ9e2lzQXJyYXk6UCxpc0FycmF5QnVmZmVyOkIsaXNCdWZmZXI6ZnVuY3Rpb24gWShTdCl7cmV0dXJuIG51bGwhPT1TdCYmIUwoU3QpJiZudWxsIT09U3Qu'@; put 'Y29uc3RydWN0b3ImJiFMKFN0LmNvbnN0cnVjdG9yKSYmWChTdC5jb25zdHJ1Y3Rvci5pc0J1ZmZlcikmJlN0LmNvbnN0cnVjdG9yLmlzQnVmZmVyKFN0KX0saXNGb3JtRGF0YTpTdD0+e2xldCBWdDtyZXR1cm4gU3QmJigiZnVuY3Rpb24iPT10eXBlb2YgRm9ybURhdGEmJlN0IGluc3RhbmNl'@; put 'b2YgRm9ybURhdGF8fFgoU3QuYXBwZW5kKSYmKCJmb3JtZGF0YSI9PT0oVnQ9SChTdCkpfHwib2JqZWN0Ij09PVZ0JiZYKFN0LnRvU3RyaW5nKSYmIltvYmplY3QgRm9ybURhdGFdIj09PVN0LnRvU3RyaW5nKCkpKX0saXNBcnJheUJ1ZmZlclZpZXc6ZnVuY3Rpb24gVyhTdCl7bGV0IFZ0O3Jl'@; put 'dHVybiBWdD10eXBlb2YgQXJyYXlCdWZmZXI8InUiJiZBcnJheUJ1ZmZlci5pc1ZpZXc/QXJyYXlCdWZmZXIuaXNWaWV3KFN0KTpTdCYmU3QuYnVmZmVyJiZCKFN0LmJ1ZmZlciksVnR9LGlzU3RyaW5nOlosaXNOdW1iZXI6USxpc0Jvb2xlYW46U3Q9PiEwPT09U3R8fCExPT09U3QsaXNPYmpl'@; put 'Y3Q6cSxpc1BsYWluT2JqZWN0OmllLGlzUmVhZGFibGVTdHJlYW06Zyxpc1JlcXVlc3Q6eSxpc1Jlc3BvbnNlOngsaXNIZWFkZXJzOkMsaXNVbmRlZmluZWQ6TCxpc0RhdGU6c2UsaXNGaWxlOmdlLGlzQmxvYjpfZSxpc1JlZ0V4cDpGZSxpc0Z1bmN0aW9uOlgsaXNTdHJlYW06U3Q9PnEoU3Qp'@; put 'JiZYKFN0LnBpcGUpLGlzVVJMU2VhcmNoUGFyYW1zOnosaXNUeXBlZEFycmF5OmF0LGlzRmlsZUxpc3Q6VGUsZm9yRWFjaDpWLG1lcmdlOmZ1bmN0aW9uIEEoKXtjb25zdHtjYXNlbGVzczpTdH09bSh0aGlzKSYmdGhpc3x8e30sVnQ9e30seW49KGduLFJuKT0+e2NvbnN0IHZuPVN0JiZVKFZ0'@; put 'LFJuKXx8Um47VnRbdm5dPWllKFZ0W3ZuXSkmJmllKGduKT9BKFZ0W3ZuXSxnbik6aWUoZ24pP0Eoe30sZ24pOlAoZ24pP2duLnNsaWNlKCk6Z259O2ZvcihsZXQgZ249MCxSbj1hcmd1bWVudHMubGVuZ3RoO2duPFJuO2duKyspYXJndW1lbnRzW2duXSYmVihhcmd1bWVudHNbZ25dLHluKTty'@; put 'ZXR1cm4gVnR9LGV4dGVuZDooU3QsVnQseW4se2FsbE93bktleXM6Z259PXt9KT0+KFYoVnQsKFJuLHZuKT0+e1N0W3ZuXT15biYmWChSbik/TihSbix5bik6Um59LHthbGxPd25LZXlzOmdufSksU3QpLHRyaW06U3Q9PlN0LnRyaW0/U3QudHJpbSgpOlN0LnJlcGxhY2UoL15bXHNcdUZFRkZc'@; put 'eEEwXSt8W1xzXHVGRUZGXHhBMF0rJC9nLCIiKSxzdHJpcEJPTTpTdD0+KDY1Mjc5PT09U3QuY2hhckNvZGVBdCgwKSYmKFN0PVN0LnNsaWNlKDEpKSxTdCksaW5oZXJpdHM6KFN0LFZ0LHluLGduKT0+e1N0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKFZ0LnByb3RvdHlwZSxnbiksU3QucHJv'@; put 'dG90eXBlLmNvbnN0cnVjdG9yPVN0LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTdCwic3VwZXIiLHt2YWx1ZTpWdC5wcm90b3R5cGV9KSx5biYmT2JqZWN0LmFzc2lnbihTdC5wcm90b3R5cGUseW4pfSx0b0ZsYXRPYmplY3Q6KFN0LFZ0LHluLGduKT0+e2xldCBSbix2bixkcjtjb25zdCB2aT17'@; put 'fTtpZihWdD1WdHx8e30sbnVsbD09U3QpcmV0dXJuIFZ0O2Rve2ZvcihSbj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhTdCksdm49Um4ubGVuZ3RoO3ZuLS0gPjA7KWRyPVJuW3ZuXSwoIWdufHxnbihkcixTdCxWdCkpJiYhdmlbZHJdJiYoVnRbZHJdPVN0W2RyXSx2aVtkcl09ITApO1N0'@; put 'PSExIT09eW4mJkYoU3QpfXdoaWxlKFN0JiYoIXlufHx5bihTdCxWdCkpJiZTdCE9PU9iamVjdC5wcm90b3R5cGUpO3JldHVybiBWdH0sa2luZE9mOkgsa2luZE9mVGVzdDpSLGVuZHNXaXRoOihTdCxWdCx5bik9PntTdD1TdHJpbmcoU3QpLCh2b2lkIDA9PT15bnx8eW4+U3QubGVuZ3RoKSYm'@; put 'KHluPVN0Lmxlbmd0aCk7Y29uc3QgZ249U3QuaW5kZXhPZihWdCx5bi09VnQubGVuZ3RoKTtyZXR1cm4tMSE9PWduJiZnbj09PXlufSx0b0FycmF5OlN0PT57aWYoIVN0KXJldHVybiBudWxsO2lmKFAoU3QpKXJldHVybiBTdDtsZXQgVnQ9U3QubGVuZ3RoO2lmKCFRKFZ0KSlyZXR1cm4gbnVs'@; put 'bDtjb25zdCB5bj1uZXcgQXJyYXkoVnQpO2Zvcig7VnQtLSA+MDspeW5bVnRdPVN0W1Z0XTtyZXR1cm4geW59LGZvckVhY2hFbnRyeTooU3QsVnQpPT57Y29uc3QgZ249KFN0JiZTdFtTeW1ib2wuaXRlcmF0b3JdKS5jYWxsKFN0KTtsZXQgUm47Zm9yKDsoUm49Z24ubmV4dCgpKSYmIVJuLmRv'@; put 'bmU7KXtjb25zdCB2bj1Sbi52YWx1ZTtWdC5jYWxsKFN0LHZuWzBdLHZuWzFdKX19LG1hdGNoQWxsOihTdCxWdCk9PntsZXQgeW47Y29uc3QgZ249W107Zm9yKDtudWxsIT09KHluPVN0LmV4ZWMoVnQpKTspZ24ucHVzaCh5bik7cmV0dXJuIGdufSxpc0hUTUxGb3JtOnFlLGhhc093blByb3Bl'@; put 'cnR5OkFlLGhhc093blByb3A6QWUscmVkdWNlRGVzY3JpcHRvcnM6UmUsZnJlZXplTWV0aG9kczpTdD0+e1JlKFN0LChWdCx5bik9PntpZihYKFN0KSYmLTEhPT1bImFyZ3VtZW50cyIsImNhbGxlciIsImNhbGxlZSJdLmluZGV4T2YoeW4pKXJldHVybiExO2lmKFgoU3RbeW5dKSl7aWYoVnQu'@; put 'ZW51bWVyYWJsZT0hMSwid3JpdGFibGUiaW4gVnQpcmV0dXJuIHZvaWQoVnQud3JpdGFibGU9ITEpO1Z0LnNldHx8KFZ0LnNldD0oKT0+e3Rocm93IEVycm9yKCJDYW4gbm90IHJld3JpdGUgcmVhZC1vbmx5IG1ldGhvZCAnIit5bisiJyIpfSl9fSl9LHRvT2JqZWN0U2V0OihTdCxWdCk9Pntj'@; put 'b25zdCB5bj17fSxnbj1Sbj0+e1JuLmZvckVhY2godm49Pnt5blt2bl09ITB9KX07cmV0dXJuIFAoU3QpP2duKFN0KTpnbihTdHJpbmcoU3QpLnNwbGl0KFZ0KSkseW59LHRvQ2FtZWxDYXNlOlN0PT5TdC50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xzXShbYS16XGRdKShcdyopL2csZnVu'@; put 'Y3Rpb24oeW4sZ24sUm4pe3JldHVybiBnbi50b1VwcGVyQ2FzZSgpK1JufSksbm9vcDooKT0+e30sdG9GaW5pdGVOdW1iZXI6KFN0LFZ0KT0+bnVsbCE9U3QmJk51bWJlci5pc0Zpbml0ZShTdD0rU3QpP1N0OlZ0LGZpbmRLZXk6VSxnbG9iYWw6RSxpc0NvbnRleHREZWZpbmVkOm0saXNTcGVj'@; put 'Q29tcGxpYW50Rm9ybTpmdW5jdGlvbiBfdChTdCl7cmV0dXJuISEoU3QmJlgoU3QuYXBwZW5kKSYmIkZvcm1EYXRhIj09PVN0W1N5bWJvbC50b1N0cmluZ1RhZ10mJlN0W1N5bWJvbC5pdGVyYXRvcl0pfSx0b0pTT05PYmplY3Q6U3Q9Pntjb25zdCBWdD1uZXcgQXJyYXkoMTApLHluPShnbixS'@; put 'bik9PntpZihxKGduKSl7aWYoVnQuaW5kZXhPZihnbik+PTApcmV0dXJuO2lmKCEoInRvSlNPTiJpbiBnbikpe1Z0W1JuXT1nbjtjb25zdCB2bj1QKGduKT9bXTp7fTtyZXR1cm4gVihnbiwoZHIsdmkpPT57Y29uc3QgVnI9eW4oZHIsUm4rMSk7IUwoVnIpJiYodm5bdmldPVZyKX0pLFZ0W1Ju'@; put 'XT12b2lkIDAsdm59fXJldHVybiBnbn07cmV0dXJuIHluKFN0LDApfSxpc0FzeW5jRm46SmUsaXNUaGVuYWJsZTpTdD0+U3QmJihxKFN0KXx8WChTdCkpJiZYKFN0LnRoZW4pJiZYKFN0LmNhdGNoKSxzZXRJbW1lZGlhdGU6eXQsYXNhcDpNdH07ZnVuY3Rpb24gcnQoU3QsVnQseW4sZ24sUm4p'@; put 'e0Vycm9yLmNhbGwodGhpcyksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPShuZXcgRXJyb3IpLnN0YWNrLHRoaXMubWVzc2FnZT1TdCx0aGlzLm5hbWU9IkF4aW9zRXJyb3IiLFZ0JiYodGhp'@; put 'cy5jb2RlPVZ0KSx5biYmKHRoaXMuY29uZmlnPXluKSxnbiYmKHRoaXMucmVxdWVzdD1nbiksUm4mJih0aGlzLnJlc3BvbnNlPVJuLHRoaXMuc3RhdHVzPVJuLnN0YXR1cz9Sbi5zdGF0dXM6bnVsbCl9SXQuaW5oZXJpdHMocnQsRXJyb3Ise3RvSlNPTjpmdW5jdGlvbigpe3JldHVybnttZXNz'@; put 'YWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFj'@; put 'azp0aGlzLnN0YWNrLGNvbmZpZzpJdC50b0pTT05PYmplY3QodGhpcy5jb25maWcpLGNvZGU6dGhpcy5jb2RlLHN0YXR1czp0aGlzLnN0YXR1c319fSk7Y29uc3QgS2U9cnQucHJvdG90eXBlLHR0PXt9O2Z1bmN0aW9uIHV0KFN0KXtyZXR1cm4gSXQuaXNQbGFpbk9iamVjdChTdCl8fEl0Lmlz'@; put 'QXJyYXkoU3QpfWZ1bmN0aW9uIEp0KFN0KXtyZXR1cm4gSXQuZW5kc1dpdGgoU3QsIltdIik/U3Quc2xpY2UoMCwtMik6U3R9ZnVuY3Rpb24gTHQoU3QsVnQseW4pe3JldHVybiBTdD9TdC5jb25jYXQoVnQpLm1hcChmdW5jdGlvbihSbix2bil7cmV0dXJuIFJuPUp0KFJuKSwheW4mJnZuPyJb'@; put 'IitSbisiXSI6Um59KS5qb2luKHluPyIuIjoiIik6VnR9WyJFUlJfQkFEX09QVElPTl9WQUxVRSIsIkVSUl9CQURfT1BUSU9OIiwiRUNPTk5BQk9SVEVEIiwiRVRJTUVET1VUIiwiRVJSX05FVFdPUksiLCJFUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTIiwiRVJSX0RFUFJFQ0FURUQiLCJFUlJf'@; put 'QkFEX1JFU1BPTlNFIiwiRVJSX0JBRF9SRVFVRVNUIiwiRVJSX0NBTkNFTEVEIiwiRVJSX05PVF9TVVBQT1JUIiwiRVJSX0lOVkFMSURfVVJMIl0uZm9yRWFjaChTdD0+e3R0W1N0XT17dmFsdWU6U3R9fSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMocnQsdHQpLE9iamVjdC5kZWZpbmVQcm9w'@; put 'ZXJ0eShLZSwiaXNBeGlvc0Vycm9yIix7dmFsdWU6ITB9KSxydC5mcm9tPShTdCxWdCx5bixnbixSbix2bik9Pntjb25zdCBkcj1PYmplY3QuY3JlYXRlKEtlKTtyZXR1cm4gSXQudG9GbGF0T2JqZWN0KFN0LGRyLGZ1bmN0aW9uKFZyKXtyZXR1cm4gVnIhPT1FcnJvci5wcm90b3R5cGV9LHZp'@; put 'PT4iaXNBeGlvc0Vycm9yIiE9PXZpKSxydC5jYWxsKGRyLFN0Lm1lc3NhZ2UsVnQseW4sZ24sUm4pLGRyLmNhdXNlPVN0LGRyLm5hbWU9U3QubmFtZSx2biYmT2JqZWN0LmFzc2lnbihkcix2biksZHJ9O2NvbnN0IG9pPUl0LnRvRmxhdE9iamVjdChJdCx7fSxudWxsLGZ1bmN0aW9uKFZ0KXty'@; put 'ZXR1cm4vXmlzW0EtWl0vLnRlc3QoVnQpfSk7ZnVuY3Rpb24gZW4oU3QsVnQseW4pe2lmKCFJdC5pc09iamVjdChTdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigidGFyZ2V0IG11c3QgYmUgYW4gb2JqZWN0Iik7VnQ9VnR8fG5ldyBGb3JtRGF0YTtjb25zdCBnbj0oeW49SXQudG9GbGF0T2JqZWN0'@; put 'KHluLHttZXRhVG9rZW5zOiEwLGRvdHM6ITEsaW5kZXhlczohMX0sITEsZnVuY3Rpb24oYnMsamkpe3JldHVybiFJdC5pc1VuZGVmaW5lZChqaVtic10pfSkpLm1ldGFUb2tlbnMsUm49eW4udmlzaXRvcnx8YWEsdm49eW4uZG90cyxkcj15bi5pbmRleGVzLFZyPSh5bi5CbG9ifHx0eXBlb2Yg'@; put 'QmxvYjwidSImJkJsb2IpJiZJdC5pc1NwZWNDb21wbGlhbnRGb3JtKFZ0KTtpZighSXQuaXNGdW5jdGlvbihSbikpdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiB0YShlcyl7aWYobnVsbD09PWVzKXJldHVybiIiO2lmKEl0LmlzRGF0'@; put 'ZShlcykpcmV0dXJuIGVzLnRvSVNPU3RyaW5nKCk7aWYoIVZyJiZJdC5pc0Jsb2IoZXMpKXRocm93IG5ldyBydCgiQmxvYiBpcyBub3Qgc3VwcG9ydGVkLiBVc2UgYSBCdWZmZXIgaW5zdGVhZC4iKTtyZXR1cm4gSXQuaXNBcnJheUJ1ZmZlcihlcyl8fEl0LmlzVHlwZWRBcnJheShlcyk/VnIm'@; put 'JiJmdW5jdGlvbiI9PXR5cGVvZiBCbG9iP25ldyBCbG9iKFtlc10pOl8uZnJvbShlcyk6ZXN9ZnVuY3Rpb24gYWEoZXMsYnMsamkpe2xldCBMYz1lcztpZihlcyYmIWppJiYib2JqZWN0Ij09dHlwZW9mIGVzKWlmKEl0LmVuZHNXaXRoKGJzLCJ7fSIpKWJzPWduP2JzOmJzLnNsaWNlKDAsLTIp'@; put 'LGVzPUpTT04uc3RyaW5naWZ5KGVzKTtlbHNlIGlmKEl0LmlzQXJyYXkoZXMpJiZmdW5jdGlvbiBQdChTdCl7cmV0dXJuIEl0LmlzQXJyYXkoU3QpJiYhU3Quc29tZSh1dCl9KGVzKXx8KEl0LmlzRmlsZUxpc3QoZXMpfHxJdC5lbmRzV2l0aChicywiW10iKSkmJihMYz1JdC50b0FycmF5KGVz'@; put 'KSkpcmV0dXJuIGJzPUp0KGJzKSxMYy5mb3JFYWNoKGZ1bmN0aW9uKFNhLGthKXshSXQuaXNVbmRlZmluZWQoU2EpJiZudWxsIT09U2EmJlZ0LmFwcGVuZCghMD09PWRyP0x0KFtic10sa2Esdm4pOm51bGw9PT1kcj9iczpicysiW10iLHRhKFNhKSl9KSwhMTtyZXR1cm4hIXV0KGVzKXx8KFZ0'@; put 'LmFwcGVuZChMdChqaSxicyx2biksdGEoZXMpKSwhMSl9Y29uc3QgamE9W10sJHM9T2JqZWN0LmFzc2lnbihvaSx7ZGVmYXVsdFZpc2l0b3I6YWEsY29udmVydFZhbHVlOnRhLGlzVmlzaXRhYmxlOnV0fSk7aWYoIUl0LmlzT2JqZWN0KFN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJkYXRhIG11'@; put 'c3QgYmUgYW4gb2JqZWN0Iik7cmV0dXJuIGZ1bmN0aW9uIEtsKGVzLGJzKXtpZighSXQuaXNVbmRlZmluZWQoZXMpKXtpZigtMSE9PWphLmluZGV4T2YoZXMpKXRocm93IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIiticy5qb2luKCIuIikpO2phLnB1c2goZXMpLEl0'@; put 'LmZvckVhY2goZXMsZnVuY3Rpb24oTGMsVmwpeyEwPT09KCEoSXQuaXNVbmRlZmluZWQoTGMpfHxudWxsPT09TGMpJiZSbi5jYWxsKFZ0LExjLEl0LmlzU3RyaW5nKFZsKT9WbC50cmltKCk6VmwsYnMsJHMpKSYmS2woTGMsYnM/YnMuY29uY2F0KFZsKTpbVmxdKX0pLGphLnBvcCgpfX0oU3Qp'@; put 'LFZ0fWZ1bmN0aW9uIHNuKFN0KXtjb25zdCBWdD17IiEiOiIlMjEiLCInIjoiJTI3IiwiKCI6IiUyOCIsIikiOiIlMjkiLCJ+IjoiJTdFIiwiJTIwIjoiKyIsIiUwMCI6IlwwIn07cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChTdCkucmVwbGFjZSgvWyEnKCl+XXwlMjB8JTAwL2csZnVuY3Rp'@; put 'b24oZ24pe3JldHVybiBWdFtnbl19KX1mdW5jdGlvbiBJaShTdCxWdCl7dGhpcy5fcGFpcnM9W10sU3QmJmVuKFN0LHRoaXMsVnQpfWNvbnN0IGRuPUlpLnByb3RvdHlwZTtmdW5jdGlvbiBmdChTdCl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChTdCkucmVwbGFjZSgvJTNBL2dpLCI6Iiku'@; put 'cmVwbGFjZSgvJTI0L2csIiQiKS5yZXBsYWNlKC8lMkMvZ2ksIiwiKS5yZXBsYWNlKC8lMjAvZywiKyIpLnJlcGxhY2UoLyU1Qi9naSwiWyIpLnJlcGxhY2UoLyU1RC9naSwiXSIpfWZ1bmN0aW9uIEZyKFN0LFZ0LHluKXtpZighVnQpcmV0dXJuIFN0O2NvbnN0IGduPXluJiZ5bi5lbmNvZGV8'@; put 'fGZ0O0l0LmlzRnVuY3Rpb24oeW4pJiYoeW49e3NlcmlhbGl6ZTp5bn0pO2NvbnN0IFJuPXluJiZ5bi5zZXJpYWxpemU7bGV0IHZuO2lmKHZuPVJuP1JuKFZ0LHluKTpJdC5pc1VSTFNlYXJjaFBhcmFtcyhWdCk/VnQudG9TdHJpbmcoKTpuZXcgSWkoVnQseW4pLnRvU3RyaW5nKGduKSx2bil7'@; put 'Y29uc3QgZHI9U3QuaW5kZXhPZigiIyIpOy0xIT09ZHImJihTdD1TdC5zbGljZSgwLGRyKSksU3QrPSgtMT09PVN0LmluZGV4T2YoIj8iKT8iPyI6IiYiKSt2bn1yZXR1cm4gU3R9ZG4uYXBwZW5kPWZ1bmN0aW9uKFZ0LHluKXt0aGlzLl9wYWlycy5wdXNoKFtWdCx5bl0pfSxkbi50b1N0cmlu'@; put 'Zz1mdW5jdGlvbihWdCl7Y29uc3QgeW49VnQ/ZnVuY3Rpb24oZ24pe3JldHVybiBWdC5jYWxsKHRoaXMsZ24sc24pfTpzbjtyZXR1cm4gdGhpcy5fcGFpcnMubWFwKGZ1bmN0aW9uKFJuKXtyZXR1cm4geW4oUm5bMF0pKyI9Iit5bihSblsxXSl9LCIiKS5qb2luKCImIil9O3ZhciBrdD1jbGFz'@; put 'cyBadHtjb25zdHJ1Y3Rvcigpe3RoaXMuaGFuZGxlcnM9W119dXNlKFZ0LHluLGduKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6VnQscmVqZWN0ZWQ6eW4sc3luY2hyb25vdXM6ISFnbiYmZ24uc3luY2hyb25vdXMscnVuV2hlbjpnbj9nbi5ydW5XaGVuOm51bGx9KSx0'@; put 'aGlzLmhhbmRsZXJzLmxlbmd0aC0xfWVqZWN0KFZ0KXt0aGlzLmhhbmRsZXJzW1Z0XSYmKHRoaXMuaGFuZGxlcnNbVnRdPW51bGwpfWNsZWFyKCl7dGhpcy5oYW5kbGVycyYmKHRoaXMuaGFuZGxlcnM9W10pfWZvckVhY2goVnQpe0l0LmZvckVhY2godGhpcy5oYW5kbGVycyxmdW5jdGlvbihn'@; put 'bil7bnVsbCE9PWduJiZWdChnbil9KX19LExuPXtzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExfSxXZT17aXNCcm93c2VyOiEwLGNsYXNzZXM6e1VSTFNlYXJjaFBhcmFtczp0eXBlb2YgVVJMU2VhcmNoUGFyYW1zPCJ1Ij9V'@; put 'UkxTZWFyY2hQYXJhbXM6SWksRm9ybURhdGE6dHlwZW9mIEZvcm1EYXRhPCJ1Ij9Gb3JtRGF0YTpudWxsLEJsb2I6dHlwZW9mIEJsb2I8InUiP0Jsb2I6bnVsbH0scHJvdG9jb2xzOlsiaHR0cCIsImh0dHBzIiwiZmlsZSIsImJsb2IiLCJ1cmwiLCJkYXRhIl19O2NvbnN0IEF0PXR5cGVvZiB3'@; put 'aW5kb3c8InUiJiZ0eXBlb2YgZG9jdW1lbnQ8InUiLGlyPSJvYmplY3QiPT10eXBlb2YgbmF2aWdhdG9yJiZuYXZpZ2F0b3J8fHZvaWQgMCxodD1BdCYmKCFpcnx8WyJSZWFjdE5hdGl2ZSIsIk5hdGl2ZVNjcmlwdCIsIk5TIl0uaW5kZXhPZihpci5wcm9kdWN0KTwwKSxFdD10eXBlb2YgV29y'@; put 'a2VyR2xvYmFsU2NvcGU8InUiJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBzZWxmLmltcG9ydFNjcmlwdHMsem49QXQmJndpbmRvdy5sb2NhdGlvbi5ocmVmfHwiaHR0cDovL2xvY2FsaG9zdCI7dmFyIGp0PXsuLi5PYmplY3QuZnJlZXpl'@; put 'KHtfX3Byb3RvX186bnVsbCxoYXNCcm93c2VyRW52OkF0LGhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudjpFdCxoYXNTdGFuZGFyZEJyb3dzZXJFbnY6aHQsbmF2aWdhdG9yOmlyLG9yaWdpbjp6bn0pLC4uLldlfTtmdW5jdGlvbiBEaShTdCl7ZnVuY3Rpb24gVnQoeW4sZ24sUm4sdm4p'@; put 'e2xldCBkcj15blt2bisrXTtpZigiX19wcm90b19fIj09PWRyKXJldHVybiEwO2NvbnN0IHZpPU51bWJlci5pc0Zpbml0ZSgrZHIpLFZyPXZuPj15bi5sZW5ndGg7cmV0dXJuIGRyPSFkciYmSXQuaXNBcnJheShSbik/Um4ubGVuZ3RoOmRyLFZyPyhSbltkcl09SXQuaGFzT3duUHJvcChSbixk'@; put 'cik/W1JuW2RyXSxnbl06Z24sIXZpKTooKCFSbltkcl18fCFJdC5pc09iamVjdChSbltkcl0pKSYmKFJuW2RyXT1bXSksVnQoeW4sZ24sUm5bZHJdLHZuKSYmSXQuaXNBcnJheShSbltkcl0pJiYoUm5bZHJdPWZ1bmN0aW9uIGZuKFN0KXtjb25zdCBWdD17fSx5bj1PYmplY3Qua2V5cyhTdCk7'@; put 'bGV0IGduO2NvbnN0IFJuPXluLmxlbmd0aDtsZXQgdm47Zm9yKGduPTA7Z248Um47Z24rKyl2bj15bltnbl0sVnRbdm5dPVN0W3ZuXTtyZXR1cm4gVnR9KFJuW2RyXSkpLCF2aSl9aWYoSXQuaXNGb3JtRGF0YShTdCkmJkl0LmlzRnVuY3Rpb24oU3QuZW50cmllcykpe2NvbnN0IHluPXt9O3Jl'@; put 'dHVybiBJdC5mb3JFYWNoRW50cnkoU3QsKGduLFJuKT0+e1Z0KGZ1bmN0aW9uIGNuKFN0KXtyZXR1cm4gSXQubWF0Y2hBbGwoL1x3K3xcWyhcdyopXS9nLFN0KS5tYXAoVnQ9PiJbXSI9PT1WdFswXT8iIjpWdFsxXXx8VnRbMF0pfShnbiksUm4seW4sMCl9KSx5bn1yZXR1cm4gbnVsbH1jb25z'@; put 'dCB0bj17dHJhbnNpdGlvbmFsOkxuLGFkYXB0ZXI6WyJ4aHIiLCJodHRwIiwiZmV0Y2giXSx0cmFuc2Zvcm1SZXF1ZXN0OltmdW5jdGlvbihWdCx5bil7Y29uc3QgZ249eW4uZ2V0Q29udGVudFR5cGUoKXx8IiIsUm49Z24uaW5kZXhPZigiYXBwbGljYXRpb24vanNvbiIpPi0xLHZuPUl0Lmlz'@; put 'T2JqZWN0KFZ0KTtpZih2biYmSXQuaXNIVE1MRm9ybShWdCkmJihWdD1uZXcgRm9ybURhdGEoVnQpKSxJdC5pc0Zvcm1EYXRhKFZ0KSlyZXR1cm4gUm4/SlNPTi5zdHJpbmdpZnkoRGkoVnQpKTpWdDtpZihJdC5pc0FycmF5QnVmZmVyKFZ0KXx8SXQuaXNCdWZmZXIoVnQpfHxJdC5pc1N0cmVh'@; put 'bShWdCl8fEl0LmlzRmlsZShWdCl8fEl0LmlzQmxvYihWdCl8fEl0LmlzUmVhZGFibGVTdHJlYW0oVnQpKXJldHVybiBWdDtpZihJdC5pc0FycmF5QnVmZmVyVmlldyhWdCkpcmV0dXJuIFZ0LmJ1ZmZlcjtpZihJdC5pc1VSTFNlYXJjaFBhcmFtcyhWdCkpcmV0dXJuIHluLnNldENvbnRlbnRU'@; put 'eXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIsITEpLFZ0LnRvU3RyaW5nKCk7bGV0IHZpO2lmKHZuKXtpZihnbi5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKT4tMSlyZXR1cm4gZnVuY3Rpb24gZGkoU3QsVnQp'@; put 'e3JldHVybiBlbihTdCxuZXcganQuY2xhc3Nlcy5VUkxTZWFyY2hQYXJhbXMsT2JqZWN0LmFzc2lnbih7dmlzaXRvcjpmdW5jdGlvbih5bixnbixSbix2bil7cmV0dXJuIGp0LmlzTm9kZSYmSXQuaXNCdWZmZXIoeW4pPyh0aGlzLmFwcGVuZChnbix5bi50b1N0cmluZygiYmFzZTY0IikpLCEx'@; put 'KTp2bi5kZWZhdWx0VmlzaXRvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSxWdCkpfShWdCx0aGlzLmZvcm1TZXJpYWxpemVyKS50b1N0cmluZygpO2lmKCh2aT1JdC5pc0ZpbGVMaXN0KFZ0KSl8fGduLmluZGV4T2YoIm11bHRpcGFydC9mb3JtLWRhdGEiKT4tMSl7Y29uc3QgVnI9dGhpcy5l'@; put 'bnYmJnRoaXMuZW52LkZvcm1EYXRhO3JldHVybiBlbih2aT97ImZpbGVzW10iOlZ0fTpWdCxWciYmbmV3IFZyLHRoaXMuZm9ybVNlcmlhbGl6ZXIpfX1yZXR1cm4gdm58fFJuPyh5bi5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24vanNvbiIsITEpLGZ1bmN0aW9uIFF0KFN0LFZ0LHluKXtp'@; put 'ZihJdC5pc1N0cmluZyhTdCkpdHJ5e3JldHVybihWdHx8SlNPTi5wYXJzZSkoU3QpLEl0LnRyaW0oU3QpfWNhdGNoKGduKXtpZigiU3ludGF4RXJyb3IiIT09Z24ubmFtZSl0aHJvdyBnbn1yZXR1cm4oeW58fEpTT04uc3RyaW5naWZ5KShTdCl9KFZ0KSk6VnR9XSx0cmFuc2Zvcm1SZXNwb25z'@; put 'ZTpbZnVuY3Rpb24oVnQpe2NvbnN0IHluPXRoaXMudHJhbnNpdGlvbmFsfHx0bi50cmFuc2l0aW9uYWwsZ249eW4mJnluLmZvcmNlZEpTT05QYXJzaW5nLFJuPSJqc29uIj09PXRoaXMucmVzcG9uc2VUeXBlO2lmKEl0LmlzUmVzcG9uc2UoVnQpfHxJdC5pc1JlYWRhYmxlU3RyZWFtKFZ0KSly'@; put 'ZXR1cm4gVnQ7aWYoVnQmJkl0LmlzU3RyaW5nKFZ0KSYmKGduJiYhdGhpcy5yZXNwb25zZVR5cGV8fFJuKSl7Y29uc3QgZHI9ISh5biYmeW4uc2lsZW50SlNPTlBhcnNpbmcpJiZSbjt0cnl7cmV0dXJuIEpTT04ucGFyc2UoVnQpfWNhdGNoKHZpKXtpZihkcil0aHJvdyJTeW50YXhFcnJvciI9'@; put 'PT12aS5uYW1lP3J0LmZyb20odmkscnQuRVJSX0JBRF9SRVNQT05TRSx0aGlzLG51bGwsdGhpcy5yZXNwb25zZSk6dml9fXJldHVybiBWdH1dLHRpbWVvdXQ6MCx4c3JmQ29va2llTmFtZToiWFNSRi1UT0tFTiIseHNyZkhlYWRlck5hbWU6IlgtWFNSRi1UT0tFTiIsbWF4Q29udGVudExlbmd0'@; put 'aDotMSxtYXhCb2R5TGVuZ3RoOi0xLGVudjp7Rm9ybURhdGE6anQuY2xhc3Nlcy5Gb3JtRGF0YSxCbG9iOmp0LmNsYXNzZXMuQmxvYn0sdmFsaWRhdGVTdGF0dXM6ZnVuY3Rpb24oVnQpe3JldHVybiBWdD49MjAwJiZWdDwzMDB9LGhlYWRlcnM6e2NvbW1vbjp7QWNjZXB0OiJhcHBsaWNhdGlv'@; put 'bi9qc29uLCB0ZXh0L3BsYWluLCAqLyoiLCJDb250ZW50LVR5cGUiOnZvaWQgMH19fTtJdC5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCJdLFN0PT57dG4uaGVhZGVyc1tTdF09e319KTt2YXIgY2E9dG47Y29uc3QgeGk9SXQudG9PYmplY3RTZXQo'@; put 'WyJhZ2UiLCJhdXRob3JpemF0aW9uIiwiY29udGVudC1sZW5ndGgiLCJjb250ZW50LXR5cGUiLCJldGFnIiwiZXhwaXJlcyIsImZyb20iLCJob3N0IiwiaWYtbW9kaWZpZWQtc2luY2UiLCJpZi11bm1vZGlmaWVkLXNpbmNlIiwibGFzdC1tb2RpZmllZCIsImxvY2F0aW9uIiwibWF4LWZvcndh'@; put 'cmRzIiwicHJveHktYXV0aG9yaXphdGlvbiIsInJlZmVyZXIiLCJyZXRyeS1hZnRlciIsInVzZXItYWdlbnQiXSksR249U3ltYm9sKCJpbnRlcm5hbHMiKTtmdW5jdGlvbiBLaShTdCl7cmV0dXJuIFN0JiZTdHJpbmcoU3QpLnRyaW0oKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIEpyKFN0KXty'@; put 'ZXR1cm4hMT09PVN0fHxudWxsPT1TdD9TdDpJdC5pc0FycmF5KFN0KT9TdC5tYXAoSnIpOlN0cmluZyhTdCl9ZnVuY3Rpb24gSGkoU3QsVnQseW4sZ24sUm4pe2lmKEl0LmlzRnVuY3Rpb24oZ24pKXJldHVybiBnbi5jYWxsKHRoaXMsVnQseW4pO2lmKFJuJiYoVnQ9eW4pLEl0LmlzU3RyaW5n'@; put 'KFZ0KSl7aWYoSXQuaXNTdHJpbmcoZ24pKXJldHVybi0xIT09VnQuaW5kZXhPZihnbik7aWYoSXQuaXNSZWdFeHAoZ24pKXJldHVybiBnbi50ZXN0KFZ0KX19Y2xhc3MgWWl7Y29uc3RydWN0b3IoVnQpe1Z0JiZ0aGlzLnNldChWdCl9c2V0KFZ0LHluLGduKXtjb25zdCBSbj10aGlzO2Z1bmN0'@; put 'aW9uIHZuKHZpLFZyLHRhKXtjb25zdCBhYT1LaShWcik7aWYoIWFhKXRocm93IG5ldyBFcnJvcigiaGVhZGVyIG5hbWUgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmciKTtjb25zdCBqYT1JdC5maW5kS2V5KFJuLGFhKTsoIWphfHx2b2lkIDA9PT1SbltqYV18fCEwPT09dGF8fHZvaWQgMD09'@; put 'PXRhJiYhMSE9PVJuW2phXSkmJihSbltqYXx8VnJdPUpyKHZpKSl9Y29uc3QgZHI9KHZpLFZyKT0+SXQuZm9yRWFjaCh2aSwodGEsYWEpPT52bih0YSxhYSxWcikpO2lmKEl0LmlzUGxhaW5PYmplY3QoVnQpfHxWdCBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3IpZHIoVnQseW4pO2Vsc2Ug'@; put 'aWYoSXQuaXNTdHJpbmcoVnQpJiYoVnQ9VnQudHJpbSgpKSYmIShTdD0+L15bLV9hLXpBLVowLTleYHx+LCEjJCUmJyorLl0rJC8udGVzdChTdC50cmltKCkpKShWdCkpZHIoKFN0PT57Y29uc3QgVnQ9e307bGV0IHluLGduLFJuO3JldHVybiBTdCYmU3Quc3BsaXQoIlxuIikuZm9yRWFjaChm'@; put 'dW5jdGlvbihkcil7Um49ZHIuaW5kZXhPZigiOiIpLHluPWRyLnN1YnN0cmluZygwLFJuKS50cmltKCkudG9Mb3dlckNhc2UoKSxnbj1kci5zdWJzdHJpbmcoUm4rMSkudHJpbSgpLCEoIXlufHxWdFt5bl0mJnhpW3luXSkmJigic2V0LWNvb2tpZSI9PT15bj9WdFt5bl0/VnRbeW5dLnB1c2go'@; put 'Z24pOlZ0W3luXT1bZ25dOlZ0W3luXT1WdFt5bl0/VnRbeW5dKyIsICIrZ246Z24pfSksVnR9KShWdCkseW4pO2Vsc2UgaWYoSXQuaXNIZWFkZXJzKFZ0KSlmb3IoY29uc3RbdmksVnJdb2YgVnQuZW50cmllcygpKXZuKFZyLHZpLGduKTtlbHNlIG51bGwhPVZ0JiZ2bih5bixWdCxnbik7cmV0'@; put 'dXJuIHRoaXN9Z2V0KFZ0LHluKXtpZihWdD1LaShWdCkpe2NvbnN0IGduPUl0LmZpbmRLZXkodGhpcyxWdCk7aWYoZ24pe2NvbnN0IFJuPXRoaXNbZ25dO2lmKCF5bilyZXR1cm4gUm47aWYoITA9PT15bilyZXR1cm4gZnVuY3Rpb24gUXIoU3Qpe2NvbnN0IFZ0PU9iamVjdC5jcmVhdGUobnVs'@; put 'bCkseW49LyhbXlxzLDs9XSspXHMqKD86PVxzKihbXiw7XSspKT8vZztsZXQgZ247Zm9yKDtnbj15bi5leGVjKFN0KTspVnRbZ25bMV1dPWduWzJdO3JldHVybiBWdH0oUm4pO2lmKEl0LmlzRnVuY3Rpb24oeW4pKXJldHVybiB5bi5jYWxsKHRoaXMsUm4sZ24pO2lmKEl0LmlzUmVnRXhwKHlu'@; put 'KSlyZXR1cm4geW4uZXhlYyhSbik7dGhyb3cgbmV3IFR5cGVFcnJvcigicGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24iKX19fWhhcyhWdCx5bil7aWYoVnQ9S2koVnQpKXtjb25zdCBnbj1JdC5maW5kS2V5KHRoaXMsVnQpO3JldHVybiEoIWdufHx2b2lkIDA9PT10aGlz'@; put 'W2duXXx8eW4mJiFIaSgwLHRoaXNbZ25dLGduLHluKSl9cmV0dXJuITF9ZGVsZXRlKFZ0LHluKXtjb25zdCBnbj10aGlzO2xldCBSbj0hMTtmdW5jdGlvbiB2bihkcil7aWYoZHI9S2koZHIpKXtjb25zdCB2aT1JdC5maW5kS2V5KGduLGRyKTt2aSYmKCF5bnx8SGkoMCxnblt2aV0sdmkseW4p'@; put 'KSYmKGRlbGV0ZSBnblt2aV0sUm49ITApfX1yZXR1cm4gSXQuaXNBcnJheShWdCk/VnQuZm9yRWFjaCh2bik6dm4oVnQpLFJufWNsZWFyKFZ0KXtjb25zdCB5bj1PYmplY3Qua2V5cyh0aGlzKTtsZXQgZ249eW4ubGVuZ3RoLFJuPSExO2Zvcig7Z24tLTspe2NvbnN0IHZuPXluW2duXTsoIVZ0'@; put 'fHxIaSgwLHRoaXNbdm5dLHZuLFZ0LCEwKSkmJihkZWxldGUgdGhpc1t2bl0sUm49ITApfXJldHVybiBSbn1ub3JtYWxpemUoVnQpe2NvbnN0IHluPXRoaXMsZ249e307cmV0dXJuIEl0LmZvckVhY2godGhpcywoUm4sdm4pPT57Y29uc3QgZHI9SXQuZmluZEtleShnbix2bik7aWYoZHIpcmV0'@; put 'dXJuIHluW2RyXT1KcihSbiksdm9pZCBkZWxldGUgeW5bdm5dO2NvbnN0IHZpPVZ0P2Z1bmN0aW9uIElhKFN0KXtyZXR1cm4gU3QudHJpbSgpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvKFthLXpcZF0pKFx3KikvZywoVnQseW4sZ24pPT55bi50b1VwcGVyQ2FzZSgpK2duKX0odm4pOlN0cmlu'@; put 'Zyh2bikudHJpbSgpO3ZpIT09dm4mJmRlbGV0ZSB5blt2bl0seW5bdmldPUpyKFJuKSxnblt2aV09ITB9KSx0aGlzfWNvbmNhdCguLi5WdCl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsLi4uVnQpfXRvSlNPTihWdCl7Y29uc3QgeW49T2JqZWN0LmNyZWF0ZShudWxsKTty'@; put 'ZXR1cm4gSXQuZm9yRWFjaCh0aGlzLChnbixSbik9PntudWxsIT1nbiYmITEhPT1nbiYmKHluW1JuXT1WdCYmSXQuaXNBcnJheShnbik/Z24uam9pbigiLCAiKTpnbil9KSx5bn1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wu'@; put 'aXRlcmF0b3JdKCl9dG9TdHJpbmcoKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbVnQseW5dKT0+VnQrIjogIit5bikuam9pbigiXG4iKX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJBeGlvc0hlYWRlcnMifXN0YXRpYyBmcm9tKFZ0KXtyZXR1'@; put 'cm4gVnQgaW5zdGFuY2VvZiB0aGlzP1Z0Om5ldyB0aGlzKFZ0KX1zdGF0aWMgY29uY2F0KFZ0LC4uLnluKXtjb25zdCBnbj1uZXcgdGhpcyhWdCk7cmV0dXJuIHluLmZvckVhY2goUm49PmduLnNldChSbikpLGdufXN0YXRpYyBhY2Nlc3NvcihWdCl7Y29uc3QgZ249KHRoaXNbR25dPXRoaXNb'@; put 'R25dPXthY2Nlc3NvcnM6e319KS5hY2Nlc3NvcnMsUm49dGhpcy5wcm90b3R5cGU7ZnVuY3Rpb24gdm4oZHIpe2NvbnN0IHZpPUtpKGRyKTtnblt2aV18fChmdW5jdGlvbiBQcihTdCxWdCl7Y29uc3QgeW49SXQudG9DYW1lbENhc2UoIiAiK1Z0KTtbImdldCIsInNldCIsImhhcyJdLmZvckVh'@; put 'Y2goZ249PntPYmplY3QuZGVmaW5lUHJvcGVydHkoU3QsZ24reW4se3ZhbHVlOmZ1bmN0aW9uKFJuLHZuLGRyKXtyZXR1cm4gdGhpc1tnbl0uY2FsbCh0aGlzLFZ0LFJuLHZuLGRyKX0sY29uZmlndXJhYmxlOiEwfSl9KX0oUm4sZHIpLGduW3ZpXT0hMCl9cmV0dXJuIEl0LmlzQXJyYXkoVnQp'@; put 'P1Z0LmZvckVhY2godm4pOnZuKFZ0KSx0aGlzfX1ZaS5hY2Nlc3NvcihbIkNvbnRlbnQtVHlwZSIsIkNvbnRlbnQtTGVuZ3RoIiwiQWNjZXB0IiwiQWNjZXB0LUVuY29kaW5nIiwiVXNlci1BZ2VudCIsIkF1dGhvcml6YXRpb24iXSksSXQucmVkdWNlRGVzY3JpcHRvcnMoWWkucHJvdG90eXBl'@; put 'LCh7dmFsdWU6U3R9LFZ0KT0+e2xldCB5bj1WdFswXS50b1VwcGVyQ2FzZSgpK1Z0LnNsaWNlKDEpO3JldHVybntnZXQ6KCk9PlN0LHNldChnbil7dGhpc1t5bl09Z259fX0pLEl0LmZyZWV6ZU1ldGhvZHMoWWkpO3ZhciBmYT1ZaTtmdW5jdGlvbiBucihTdCxWdCl7Y29uc3QgeW49dGhpc3x8'@; put 'Y2EsZ249VnR8fHluLFJuPWZhLmZyb20oZ24uaGVhZGVycyk7bGV0IHZuPWduLmRhdGE7cmV0dXJuIEl0LmZvckVhY2goU3QsZnVuY3Rpb24odmkpe3ZuPXZpLmNhbGwoeW4sdm4sUm4ubm9ybWFsaXplKCksVnQ/VnQuc3RhdHVzOnZvaWQgMCl9KSxSbi5ub3JtYWxpemUoKSx2bn1mdW5jdGlv'@; put 'biBvYShTdCl7cmV0dXJuISghU3R8fCFTdC5fX0NBTkNFTF9fKX1mdW5jdGlvbiBfYShTdCxWdCx5bil7cnQuY2FsbCh0aGlzLFN0Pz8iY2FuY2VsZWQiLHJ0LkVSUl9DQU5DRUxFRCxWdCx5biksdGhpcy5uYW1lPSJDYW5jZWxlZEVycm9yIn1mdW5jdGlvbiBPYShTdCxWdCx5bil7Y29uc3Qg'@; put 'Z249eW4uY29uZmlnLnZhbGlkYXRlU3RhdHVzO3luLnN0YXR1cyYmZ24mJiFnbih5bi5zdGF0dXMpP1Z0KG5ldyBydCgiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK3luLnN0YXR1cyxbcnQuRVJSX0JBRF9SRVFVRVNULHJ0LkVSUl9CQURfUkVTUE9OU0VdW01hdGguZmxvb3Io'@; put 'eW4uc3RhdHVzLzEwMCktNF0seW4uY29uZmlnLHluLnJlcXVlc3QseW4pKTpTdCh5bil9SXQuaW5oZXJpdHMoX2EscnQse19fQ0FOQ0VMX186ITB9KTtjb25zdCBIbz0oU3QsVnQseW49Myk9PntsZXQgZ249MDtjb25zdCBSbj1mdW5jdGlvbiBlaShTdCxWdCl7U3Q9U3R8fDEwO2NvbnN0IHlu'@; put 'PW5ldyBBcnJheShTdCksZ249bmV3IEFycmF5KFN0KTtsZXQgZHIsUm49MCx2bj0wO3JldHVybiBWdD12b2lkIDAhPT1WdD9WdDoxZTMsZnVuY3Rpb24oVnIpe2NvbnN0IHRhPURhdGUubm93KCksYWE9Z25bdm5dO2RyfHwoZHI9dGEpLHluW1JuXT1WcixnbltSbl09dGE7bGV0IGphPXZuLCRz'@; put 'PTA7Zm9yKDtqYSE9PVJuOykkcys9eW5bamErK10samElPVN0O2lmKFJuPShSbisxKSVTdCxSbj09PXZuJiYodm49KHZuKzEpJVN0KSx0YS1kcjxWdClyZXR1cm47Y29uc3QgS2w9YWEmJnRhLWFhO3JldHVybiBLbD9NYXRoLnJvdW5kKDFlMyokcy9LbCk6dm9pZCAwfX0oNTAsMjUwKTtyZXR1'@; put 'cm4gZnVuY3Rpb24gZnMoU3QsVnQpe2xldCBSbix2bix5bj0wLGduPTFlMy9WdDtjb25zdCBkcj0odGEsYWE9RGF0ZS5ub3coKSk9Pnt5bj1hYSxSbj1udWxsLHZuJiYoY2xlYXJUaW1lb3V0KHZuKSx2bj1udWxsKSxTdC5hcHBseShudWxsLHRhKX07cmV0dXJuWyguLi50YSk9Pntjb25zdCBh'@; put 'YT1EYXRlLm5vdygpLGphPWFhLXluO2phPj1nbj9kcih0YSxhYSk6KFJuPXRhLHZufHwodm49c2V0VGltZW91dCgoKT0+e3ZuPW51bGwsZHIoUm4pfSxnbi1qYSkpKX0sKCk9PlJuJiZkcihSbildfSh2bj0+e2NvbnN0IGRyPXZuLmxvYWRlZCx2aT12bi5sZW5ndGhDb21wdXRhYmxlP3ZuLnRv'@; put 'dGFsOnZvaWQgMCxWcj1kci1nbix0YT1SbihWcik7Z249ZHIsU3Qoe2xvYWRlZDpkcix0b3RhbDp2aSxwcm9ncmVzczp2aT9kci92aTp2b2lkIDAsYnl0ZXM6VnIscmF0ZTp0YXx8dm9pZCAwLGVzdGltYXRlZDp0YSYmdmkmJmRyPD12aT8odmktZHIpL3RhOnZvaWQgMCxldmVudDp2bixsZW5n'@; put 'dGhDb21wdXRhYmxlOm51bGwhPXZpLFtWdD8iZG93bmxvYWQiOiJ1cGxvYWQiXTohMH0pfSx5bil9LG1sPShTdCxWdCk9Pntjb25zdCB5bj1udWxsIT1TdDtyZXR1cm5bZ249PlZ0WzBdKHtsZW5ndGhDb21wdXRhYmxlOnluLHRvdGFsOlN0LGxvYWRlZDpnbn0pLFZ0WzFdXX0sdXU9U3Q9Pigu'@; put 'Li5WdCk9Pkl0LmFzYXAoKCk9PlN0KC4uLlZ0KSk7dmFyIEljPWp0Lmhhc1N0YW5kYXJkQnJvd3NlckVudj8oKFN0LFZ0KT0+eW49Pih5bj1uZXcgVVJMKHluLGp0Lm9yaWdpbiksU3QucHJvdG9jb2w9PT15bi5wcm90b2NvbCYmU3QuaG9zdD09PXluLmhvc3QmJihWdHx8U3QucG9ydD09PXlu'@; put 'LnBvcnQpKSkobmV3IFVSTChqdC5vcmlnaW4pLGp0Lm5hdmlnYXRvciYmLyhtc2llfHRyaWRlbnQpL2kudGVzdChqdC5uYXZpZ2F0b3IudXNlckFnZW50KSk6KCk9PiEwLEEwPWp0Lmhhc1N0YW5kYXJkQnJvd3NlckVudj97d3JpdGUoU3QsVnQseW4sZ24sUm4sdm4pe2NvbnN0IGRyPVtTdCsi'@; put 'PSIrZW5jb2RlVVJJQ29tcG9uZW50KFZ0KV07SXQuaXNOdW1iZXIoeW4pJiZkci5wdXNoKCJleHBpcmVzPSIrbmV3IERhdGUoeW4pLnRvR01UU3RyaW5nKCkpLEl0LmlzU3RyaW5nKGduKSYmZHIucHVzaCgicGF0aD0iK2duKSxJdC5pc1N0cmluZyhSbikmJmRyLnB1c2goImRvbWFpbj0iK1Ju'@; put 'KSwhMD09PXZuJiZkci5wdXNoKCJzZWN1cmUiKSxkb2N1bWVudC5jb29raWU9ZHIuam9pbigiOyAiKX0scmVhZChTdCl7Y29uc3QgVnQ9ZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoIihefDtcXHMqKSgiK1N0KyIpPShbXjtdKikiKSk7cmV0dXJuIFZ0P2RlY29kZVVSSUNvbXBv'@; put 'bmVudChWdFszXSk6bnVsbH0scmVtb3ZlKFN0KXt0aGlzLndyaXRlKFN0LCIiLERhdGUubm93KCktODY0ZTUpfX06e3dyaXRlKCl7fSxyZWFkOigpPT5udWxsLHJlbW92ZSgpe319O2Z1bmN0aW9uIGxpKFN0LFZ0LHluKXtsZXQgZ249IWZ1bmN0aW9uIG9yKFN0KXtyZXR1cm4vXihbYS16XVth'@; put 'LXpcZCtcLS5dKjopP1wvXC8vaS50ZXN0KFN0KX0oVnQpO3JldHVybiBTdCYmZ258fDA9PXluP2Z1bmN0aW9uIFRhKFN0LFZ0KXtyZXR1cm4gVnQ/U3QucmVwbGFjZSgvXC8/XC8kLywiIikrIi8iK1Z0LnJlcGxhY2UoL15cLysvLCIiKTpTdH0oU3QsVnQpOlZ0fWNvbnN0IE50PVN0PT5TdCBp'@; put 'bnN0YW5jZW9mIGZhP3suLi5TdH06U3Q7ZnVuY3Rpb24gWHIoU3QsVnQpe1Z0PVZ0fHx7fTtjb25zdCB5bj17fTtmdW5jdGlvbiBnbih0YSxhYSxqYSwkcyl7cmV0dXJuIEl0LmlzUGxhaW5PYmplY3QodGEpJiZJdC5pc1BsYWluT2JqZWN0KGFhKT9JdC5tZXJnZS5jYWxsKHtjYXNlbGVzczok'@; put 'c30sdGEsYWEpOkl0LmlzUGxhaW5PYmplY3QoYWEpP0l0Lm1lcmdlKHt9LGFhKTpJdC5pc0FycmF5KGFhKT9hYS5zbGljZSgpOmFhfWZ1bmN0aW9uIFJuKHRhLGFhLGphLCRzKXtyZXR1cm4gSXQuaXNVbmRlZmluZWQoYWEpP0l0LmlzVW5kZWZpbmVkKHRhKT92b2lkIDA6Z24odm9pZCAwLHRh'@; put 'LDAsJHMpOmduKHRhLGFhLDAsJHMpfWZ1bmN0aW9uIHZuKHRhLGFhKXtpZighSXQuaXNVbmRlZmluZWQoYWEpKXJldHVybiBnbih2b2lkIDAsYWEpfWZ1bmN0aW9uIGRyKHRhLGFhKXtyZXR1cm4gSXQuaXNVbmRlZmluZWQoYWEpP0l0LmlzVW5kZWZpbmVkKHRhKT92b2lkIDA6Z24odm9pZCAw'@; put 'LHRhKTpnbih2b2lkIDAsYWEpfWZ1bmN0aW9uIHZpKHRhLGFhLGphKXtyZXR1cm4gamEgaW4gVnQ/Z24odGEsYWEpOmphIGluIFN0P2duKHZvaWQgMCx0YSk6dm9pZCAwfWNvbnN0IFZyPXt1cmw6dm4sbWV0aG9kOnZuLGRhdGE6dm4sYmFzZVVSTDpkcix0cmFuc2Zvcm1SZXF1ZXN0OmRyLHRy'@; put 'YW5zZm9ybVJlc3BvbnNlOmRyLHBhcmFtc1NlcmlhbGl6ZXI6ZHIsdGltZW91dDpkcix0aW1lb3V0TWVzc2FnZTpkcix3aXRoQ3JlZGVudGlhbHM6ZHIsd2l0aFhTUkZUb2tlbjpkcixhZGFwdGVyOmRyLHJlc3BvbnNlVHlwZTpkcix4c3JmQ29va2llTmFtZTpkcix4c3JmSGVhZGVyTmFtZTpk'@; put 'cixvblVwbG9hZFByb2dyZXNzOmRyLG9uRG93bmxvYWRQcm9ncmVzczpkcixkZWNvbXByZXNzOmRyLG1heENvbnRlbnRMZW5ndGg6ZHIsbWF4Qm9keUxlbmd0aDpkcixiZWZvcmVSZWRpcmVjdDpkcix0cmFuc3BvcnQ6ZHIsaHR0cEFnZW50OmRyLGh0dHBzQWdlbnQ6ZHIsY2FuY2VsVG9rZW46'@; put 'ZHIsc29ja2V0UGF0aDpkcixyZXNwb25zZUVuY29kaW5nOmRyLHZhbGlkYXRlU3RhdHVzOnZpLGhlYWRlcnM6KHRhLGFhLGphKT0+Um4oTnQodGEpLE50KGFhKSwwLCEwKX07cmV0dXJuIEl0LmZvckVhY2goT2JqZWN0LmtleXMoT2JqZWN0LmFzc2lnbih7fSxTdCxWdCkpLGZ1bmN0aW9uKGFh'@; put 'KXtjb25zdCBqYT1WclthYV18fFJuLCRzPWphKFN0W2FhXSxWdFthYV0sYWEpO0l0LmlzVW5kZWZpbmVkKCRzKSYmamEhPT12aXx8KHluW2FhXT0kcyl9KSx5bn12YXIgZzA9U3Q9Pntjb25zdCBWdD1Ycih7fSxTdCk7bGV0IFZyLHtkYXRhOnluLHdpdGhYU1JGVG9rZW46Z24seHNyZkhlYWRl'@; put 'ck5hbWU6Um4seHNyZkNvb2tpZU5hbWU6dm4saGVhZGVyczpkcixhdXRoOnZpfT1WdDtpZihWdC5oZWFkZXJzPWRyPWZhLmZyb20oZHIpLFZ0LnVybD1GcihsaShWdC5iYXNlVVJMLFZ0LnVybCksU3QucGFyYW1zLFN0LnBhcmFtc1NlcmlhbGl6ZXIpLHZpJiZkci5zZXQoIkF1dGhvcml6YXRp'@; put 'b24iLCJCYXNpYyAiK2J0b2EoKHZpLnVzZXJuYW1lfHwiIikrIjoiKyh2aS5wYXNzd29yZD91bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQodmkucGFzc3dvcmQpKToiIikpKSxJdC5pc0Zvcm1EYXRhKHluKSlpZihqdC5oYXNTdGFuZGFyZEJyb3dzZXJFbnZ8fGp0Lmhhc1N0YW5kYXJkQnJv'@; put 'd3NlcldlYldvcmtlckVudilkci5zZXRDb250ZW50VHlwZSh2b2lkIDApO2Vsc2UgaWYoITEhPT0oVnI9ZHIuZ2V0Q29udGVudFR5cGUoKSkpe2NvbnN0W3RhLC4uLmFhXT1Wcj9Wci5zcGxpdCgiOyIpLm1hcChqYT0+amEudHJpbSgpKS5maWx0ZXIoQm9vbGVhbik6W107ZHIuc2V0Q29udGVu'@; put 'dFR5cGUoW3RhfHwibXVsdGlwYXJ0L2Zvcm0tZGF0YSIsLi4uYWFdLmpvaW4oIjsgIikpfWlmKGp0Lmhhc1N0YW5kYXJkQnJvd3NlckVudiYmKGduJiZJdC5pc0Z1bmN0aW9uKGduKSYmKGduPWduKFZ0KSksZ258fCExIT09Z24mJkljKFZ0LnVybCkpKXtjb25zdCB0YT1SbiYmdm4mJkEwLnJl'@; put 'YWQodm4pO3RhJiZkci5zZXQoUm4sdGEpfXJldHVybiBWdH0sRHU9dHlwZW9mIFhNTEh0dHBSZXF1ZXN0PCJ1IiYmZnVuY3Rpb24oU3Qpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih5bixnbil7Y29uc3QgUm49ZzAoU3QpO2xldCB2bj1Sbi5kYXRhO2NvbnN0IGRyPWZhLmZyb20oUm4u'@; put 'aGVhZGVycykubm9ybWFsaXplKCk7bGV0IGFhLGphLCRzLEtsLGVzLHtyZXNwb25zZVR5cGU6dmksb25VcGxvYWRQcm9ncmVzczpWcixvbkRvd25sb2FkUHJvZ3Jlc3M6dGF9PVJuO2Z1bmN0aW9uIGJzKCl7S2wmJktsKCksZXMmJmVzKCksUm4uY2FuY2VsVG9rZW4mJlJuLmNhbmNlbFRva2Vu'@; put 'LnVuc3Vic2NyaWJlKGFhKSxSbi5zaWduYWwmJlJuLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsYWEpfWxldCBqaT1uZXcgWE1MSHR0cFJlcXVlc3Q7ZnVuY3Rpb24gTGMoKXtpZighamkpcmV0dXJuO2NvbnN0IFNhPWZhLmZyb20oImdldEFsbFJlc3BvbnNlSGVhZGVycyJp'@; put 'biBqaSYmamkuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpO09hKGZ1bmN0aW9uKEcwKXt5bihHMCksYnMoKX0sZnVuY3Rpb24oRzApe2duKEcwKSxicygpfSx7ZGF0YTp2aSYmInRleHQiIT09dmkmJiJqc29uIiE9PXZpP2ppLnJlc3BvbnNlOmppLnJlc3BvbnNlVGV4dCxzdGF0dXM6amkuc3Rh'@; put 'dHVzLHN0YXR1c1RleHQ6amkuc3RhdHVzVGV4dCxoZWFkZXJzOlNhLGNvbmZpZzpTdCxyZXF1ZXN0OmppfSksamk9bnVsbH1qaS5vcGVuKFJuLm1ldGhvZC50b1VwcGVyQ2FzZSgpLFJuLnVybCwhMCksamkudGltZW91dD1Sbi50aW1lb3V0LCJvbmxvYWRlbmQiaW4gamk/amkub25sb2FkZW5k'@; put 'PUxjOmppLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpeyFqaXx8NCE9PWppLnJlYWR5U3RhdGV8fDA9PT1qaS5zdGF0dXMmJighamkucmVzcG9uc2VVUkx8fDAhPT1qaS5yZXNwb25zZVVSTC5pbmRleE9mKCJmaWxlOiIpKXx8c2V0VGltZW91dChMYyl9LGppLm9uYWJvcnQ9ZnVuY3Rp'@; put 'b24oKXtqaSYmKGduKG5ldyBydCgiUmVxdWVzdCBhYm9ydGVkIixydC5FQ09OTkFCT1JURUQsU3QsamkpKSxqaT1udWxsKX0samkub25lcnJvcj1mdW5jdGlvbigpe2duKG5ldyBydCgiTmV0d29yayBFcnJvciIscnQuRVJSX05FVFdPUkssU3QsamkpKSxqaT1udWxsfSxqaS5vbnRpbWVvdXQ9'@; put 'ZnVuY3Rpb24oKXtsZXQga2E9Um4udGltZW91dD8idGltZW91dCBvZiAiK1JuLnRpbWVvdXQrIm1zIGV4Y2VlZGVkIjoidGltZW91dCBleGNlZWRlZCI7Um4udGltZW91dEVycm9yTWVzc2FnZSYmKGthPVJuLnRpbWVvdXRFcnJvck1lc3NhZ2UpLGduKG5ldyBydChrYSwoUm4udHJhbnNpdGlv'@; put 'bmFsfHxMbikuY2xhcmlmeVRpbWVvdXRFcnJvcj9ydC5FVElNRURPVVQ6cnQuRUNPTk5BQk9SVEVELFN0LGppKSksamk9bnVsbH0sdm9pZCAwPT09dm4mJmRyLnNldENvbnRlbnRUeXBlKG51bGwpLCJzZXRSZXF1ZXN0SGVhZGVyImluIGppJiZJdC5mb3JFYWNoKGRyLnRvSlNPTigpLGZ1bmN0'@; put 'aW9uKGthLFFoKXtqaS5zZXRSZXF1ZXN0SGVhZGVyKFFoLGthKX0pLEl0LmlzVW5kZWZpbmVkKFJuLndpdGhDcmVkZW50aWFscyl8fChqaS53aXRoQ3JlZGVudGlhbHM9ISFSbi53aXRoQ3JlZGVudGlhbHMpLHZpJiYianNvbiIhPT12aSYmKGppLnJlc3BvbnNlVHlwZT1Sbi5yZXNwb25zZVR5'@; put 'cGUpLHRhJiYoWyRzLGVzXT1Ibyh0YSwhMCksamkuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLCRzKSksVnImJmppLnVwbG9hZCYmKFtqYSxLbF09SG8oVnIpLGppLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsamEpLGppLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJs'@; put 'b2FkZW5kIixLbCkpLChSbi5jYW5jZWxUb2tlbnx8Um4uc2lnbmFsKSYmKGFhPVNhPT57amkmJihnbighU2F8fFNhLnR5cGU/bmV3IF9hKG51bGwsU3QsamkpOlNhKSxqaS5hYm9ydCgpLGppPW51bGwpfSxSbi5jYW5jZWxUb2tlbiYmUm4uY2FuY2VsVG9rZW4uc3Vic2NyaWJlKGFhKSxSbi5z'@; put 'aWduYWwmJihSbi5zaWduYWwuYWJvcnRlZD9hYSgpOlJuLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsYWEpKSk7Y29uc3QgVmw9ZnVuY3Rpb24gTmEoU3Qpe2NvbnN0IFZ0PS9eKFstK1x3XXsxLDI1fSkoOj9cL1wvfDopLy5leGVjKFN0KTtyZXR1cm4gVnQmJlZ0WzFdfHwiIn0o'@; put 'Um4udXJsKTtWbCYmLTE9PT1qdC5wcm90b2NvbHMuaW5kZXhPZihWbCk/Z24obmV3IHJ0KCJVbnN1cHBvcnRlZCBwcm90b2NvbCAiK1ZsKyI6IixydC5FUlJfQkFEX1JFUVVFU1QsU3QpKTpqaS5zZW5kKHZufHxudWxsKX0pfSxsZD0oU3QsVnQpPT57Y29uc3R7bGVuZ3RoOnlufT1TdD1TdD9T'@; put 'dC5maWx0ZXIoQm9vbGVhbik6W107aWYoVnR8fHluKXtsZXQgUm4sZ249bmV3IEFib3J0Q29udHJvbGxlcjtjb25zdCB2bj1mdW5jdGlvbih0YSl7aWYoIVJuKXtSbj0hMCx2aSgpO2NvbnN0IGFhPXRhIGluc3RhbmNlb2YgRXJyb3I/dGE6dGhpcy5yZWFzb247Z24uYWJvcnQoYWEgaW5zdGFu'@; put 'Y2VvZiBydD9hYTpuZXcgX2EoYWEgaW5zdGFuY2VvZiBFcnJvcj9hYS5tZXNzYWdlOmFhKSl9fTtsZXQgZHI9VnQmJnNldFRpbWVvdXQoKCk9Pntkcj1udWxsLHZuKG5ldyBydChgdGltZW91dCAke1Z0fSBvZiBtcyBleGNlZWRlZGAscnQuRVRJTUVET1VUKSl9LFZ0KTtjb25zdCB2aT0oKT0+'@; put 'e1N0JiYoZHImJmNsZWFyVGltZW91dChkciksZHI9bnVsbCxTdC5mb3JFYWNoKHRhPT57dGEudW5zdWJzY3JpYmU/dGEudW5zdWJzY3JpYmUodm4pOnRhLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0Iix2bil9KSxTdD1udWxsKX07U3QuZm9yRWFjaCh0YT0+dGEuYWRkRXZlbnRMaXN0ZW5l'@; put 'cigiYWJvcnQiLHZuKSk7Y29uc3R7c2lnbmFsOlZyfT1nbjtyZXR1cm4gVnIudW5zdWJzY3JpYmU9KCk9Pkl0LmFzYXAodmkpLFZyfX07Y29uc3QgJGg9ZnVuY3Rpb24qKFN0LFZ0KXtsZXQgeW49U3QuYnl0ZUxlbmd0aDtpZighVnR8fHluPFZ0KXJldHVybiB2b2lkKHlpZWxkIFN0KTtsZXQg'@; put 'Um4sZ249MDtmb3IoO2duPHluOylSbj1nbitWdCx5aWVsZCBTdC5zbGljZShnbixSbiksZ249Um59LHBmPWZ1bmN0aW9uKCl7dmFyIFN0PV93cmFwQXN5bmNHZW5lcmF0b3IoZnVuY3Rpb24qKFZ0LHluKXt2YXIgdm4sZ249ITEsUm49ITE7dHJ5e2Zvcih2YXIgdmksZHI9X2FzeW5jSXRlcmF0'@; put 'b3Iod28oVnQpKTtnbj0hKHZpPXlpZWxkIF9hd2FpdEFzeW5jR2VuZXJhdG9yKGRyLm5leHQoKSkpLmRvbmU7Z249ITEpe2NvbnN0IFZyPXZpLnZhbHVlO3lpZWxkKl9hc3luY0dlbmVyYXRvckRlbGVnYXRlKF9hc3luY0l0ZXJhdG9yKCRoKFZyLHluKSksX2F3YWl0QXN5bmNHZW5lcmF0b3Ip'@; put 'fX1jYXRjaChWcil7Um49ITAsdm49VnJ9ZmluYWxseXt0cnl7Z24mJm51bGwhPWRyLnJldHVybiYmKHlpZWxkIF9hd2FpdEFzeW5jR2VuZXJhdG9yKGRyLnJldHVybigpKSl9ZmluYWxseXtpZihSbil0aHJvdyB2bn19fSk7cmV0dXJuIGZ1bmN0aW9uKHluLGduKXtyZXR1cm4gU3QuYXBwbHko'@; put 'dGhpcyxhcmd1bWVudHMpfX0oKSx3bz1mdW5jdGlvbigpe3ZhciBTdD1fd3JhcEFzeW5jR2VuZXJhdG9yKGZ1bmN0aW9uKihWdCl7aWYoVnRbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKXJldHVybiB2b2lkKHlpZWxkKl9hc3luY0dlbmVyYXRvckRlbGVnYXRlKF9hc3luY0l0ZXJhdG9yKFZ0KSxf'@; put 'YXdhaXRBc3luY0dlbmVyYXRvcikpO2NvbnN0IHluPVZ0LmdldFJlYWRlcigpO3RyeXtmb3IoOzspe2NvbnN0e2RvbmU6Z24sdmFsdWU6Um59PXlpZWxkIF9hd2FpdEFzeW5jR2VuZXJhdG9yKHluLnJlYWQoKSk7aWYoZ24pYnJlYWs7eWllbGQgUm59fWZpbmFsbHl7eWllbGQgX2F3YWl0QXN5'@; put 'bmNHZW5lcmF0b3IoeW4uY2FuY2VsKCkpfX0pO3JldHVybiBmdW5jdGlvbih5bil7cmV0dXJuIFN0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksR2k9KFN0LFZ0LHluLGduKT0+e2NvbnN0IFJuPXBmKFN0LFZ0KTtsZXQgZHIsdm49MCx2aT1Wcj0+e2RyfHwoZHI9ITAsZ24mJmduKFZyKSl9'@; put 'O3JldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe3B1bGw6VnI9Pl9hc3luY1RvR2VuZXJhdG9yKGZ1bmN0aW9uKigpe3RyeXtjb25zdHtkb25lOnRhLHZhbHVlOmFhfT15aWVsZCBSbi5uZXh0KCk7aWYodGEpcmV0dXJuIHZpKCksdm9pZCBWci5jbG9zZSgpO2lmKHluKXtsZXQgJHM9dm4rPWFh'@; put 'LmJ5dGVMZW5ndGg7eW4oJHMpfVZyLmVucXVldWUobmV3IFVpbnQ4QXJyYXkoYWEpKX1jYXRjaCh0YSl7dGhyb3cgdmkodGEpLHRhfX0pKCksY2FuY2VsOlZyPT4odmkoVnIpLFJuLnJldHVybigpKX0se2hpZ2hXYXRlck1hcms6Mn0pfSx2bD0iZnVuY3Rpb24iPT10eXBlb2YgZmV0Y2gmJiJm'@; put 'dW5jdGlvbiI9PXR5cGVvZiBSZXF1ZXN0JiYiZnVuY3Rpb24iPT10eXBlb2YgUmVzcG9uc2UsWGM9dmwmJiJmdW5jdGlvbiI9PXR5cGVvZiBSZWFkYWJsZVN0cmVhbSxRZz12bCYmKCJmdW5jdGlvbiI9PXR5cGVvZiBUZXh0RW5jb2Rlcj8oU3Q9PlZ0PT5TdC5lbmNvZGUoVnQpKShuZXcgVGV4'@; put 'dEVuY29kZXIpOmZ1bmN0aW9uKCl7dmFyIFN0PV9hc3luY1RvR2VuZXJhdG9yKGZ1bmN0aW9uKihWdCl7cmV0dXJuIG5ldyBVaW50OEFycmF5KHlpZWxkIG5ldyBSZXNwb25zZShWdCkuYXJyYXlCdWZmZXIoKSl9KTtyZXR1cm4gZnVuY3Rpb24oVnQpe3JldHVybiBTdC5hcHBseSh0aGlzLGFy'@; put 'Z3VtZW50cyl9fSgpKSxtMD0oU3QsLi4uVnQpPT57dHJ5e3JldHVybiEhU3QoLi4uVnQpfWNhdGNoe3JldHVybiExfX0sZTU9WGMmJm0wKCgpPT57bGV0IFN0PSExO2NvbnN0IFZ0PW5ldyBSZXF1ZXN0KGp0Lm9yaWdpbix7Ym9keTpuZXcgUmVhZGFibGVTdHJlYW0sbWV0aG9kOiJQT1NUIixn'@; put 'ZXQgZHVwbGV4KCl7cmV0dXJuIFN0PSEwLCJoYWxmIn19KS5oZWFkZXJzLmhhcygiQ29udGVudC1UeXBlIik7cmV0dXJuIFN0JiYhVnR9KSxnZj1YYyYmbTAoKCk9Pkl0LmlzUmVhZGFibGVTdHJlYW0obmV3IFJlc3BvbnNlKCIiKS5ib2R5KSksY2Q9e3N0cmVhbTpnZiYmKFN0PT5TdC5ib2R5'@; put 'KX07dmwmJihTdD0+e1sidGV4dCIsImFycmF5QnVmZmVyIiwiYmxvYiIsImZvcm1EYXRhIiwic3RyZWFtIl0uZm9yRWFjaChWdD0+eyFjZFtWdF0mJihjZFtWdF09SXQuaXNGdW5jdGlvbihTdFtWdF0pP3luPT55bltWdF0oKTooeW4sZ24pPT57dGhyb3cgbmV3IHJ0KGBSZXNwb25zZSB0eXBl'@; put 'ICcke1Z0fScgaXMgbm90IHN1cHBvcnRlZGAscnQuRVJSX05PVF9TVVBQT1JULGduKX0pfSl9KShuZXcgUmVzcG9uc2UpO2NvbnN0IG1mPWZ1bmN0aW9uKCl7dmFyIFN0PV9hc3luY1RvR2VuZXJhdG9yKGZ1bmN0aW9uKihWdCl7cmV0dXJuIG51bGw9PVZ0PzA6SXQuaXNCbG9iKFZ0KT9WdC5z'@; put 'aXplOkl0LmlzU3BlY0NvbXBsaWFudEZvcm0oVnQpPyh5aWVsZCBuZXcgUmVxdWVzdChqdC5vcmlnaW4se21ldGhvZDoiUE9TVCIsYm9keTpWdH0pLmFycmF5QnVmZmVyKCkpLmJ5dGVMZW5ndGg6SXQuaXNBcnJheUJ1ZmZlclZpZXcoVnQpfHxJdC5pc0FycmF5QnVmZmVyKFZ0KT9WdC5ieXRl'@; put 'TGVuZ3RoOihJdC5pc1VSTFNlYXJjaFBhcmFtcyhWdCkmJihWdCs9IiIpLEl0LmlzU3RyaW5nKFZ0KT8oeWllbGQgUWcoVnQpKS5ieXRlTGVuZ3RoOnZvaWQgMCl9KTtyZXR1cm4gZnVuY3Rpb24oeW4pe3JldHVybiBTdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLEQxPWZ1bmN0aW9uKCl7'@; put 'dmFyIFN0PV9hc3luY1RvR2VuZXJhdG9yKGZ1bmN0aW9uKihWdCx5bil7cmV0dXJuIEl0LnRvRmluaXRlTnVtYmVyKFZ0LmdldENvbnRlbnRMZW5ndGgoKSk/P21mKHluKX0pO3JldHVybiBmdW5jdGlvbih5bixnbil7cmV0dXJuIFN0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCk7dmFyIHZm'@; put 'PXZsJiZmdW5jdGlvbigpe3ZhciBTdD1fYXN5bmNUb0dlbmVyYXRvcihmdW5jdGlvbiooVnQpe2xldHt1cmw6eW4sbWV0aG9kOmduLGRhdGE6Um4sc2lnbmFsOnZuLGNhbmNlbFRva2VuOmRyLHRpbWVvdXQ6dmksb25Eb3dubG9hZFByb2dyZXNzOlZyLG9uVXBsb2FkUHJvZ3Jlc3M6dGEscmVz'@; put 'cG9uc2VUeXBlOmFhLGhlYWRlcnM6amEsd2l0aENyZWRlbnRpYWxzOiRzPSJzYW1lLW9yaWdpbiIsZmV0Y2hPcHRpb25zOktsfT1nMChWdCk7YWE9YWE/KGFhKyIiKS50b0xvd2VyQ2FzZSgpOiJ0ZXh0IjtsZXQgYnMsZXM9bGQoW3ZuLGRyJiZkci50b0Fib3J0U2lnbmFsKCldLHZpKTtjb25z'@; put 'dCBqaT1lcyYmZXMudW5zdWJzY3JpYmUmJigoKT0+e2VzLnVuc3Vic2NyaWJlKCl9KTtsZXQgTGM7dHJ5e2lmKHRhJiZlNSYmImdldCIhPT1nbiYmImhlYWQiIT09Z24mJjAhPT0oTGM9eWllbGQgRDEoamEsUm4pKSl7bGV0IEcwLFkwPW5ldyBSZXF1ZXN0KHluLHttZXRob2Q6IlBPU1QiLGJv'@; put 'ZHk6Um4sZHVwbGV4OiJoYWxmIn0pO2lmKEl0LmlzRm9ybURhdGEoUm4pJiYoRzA9WTAuaGVhZGVycy5nZXQoImNvbnRlbnQtdHlwZSIpKSYmamEuc2V0Q29udGVudFR5cGUoRzApLFkwLmJvZHkpe2NvbnN0W1ZzLHFpXT1tbChMYyxIbyh1dSh0YSkpKTtSbj1HaShZMC5ib2R5LDY1NTM2LFZz'@; put 'LHFpKX19SXQuaXNTdHJpbmcoJHMpfHwoJHM9JHM/ImluY2x1ZGUiOiJvbWl0Iik7Y29uc3QgVmw9ImNyZWRlbnRpYWxzImluIFJlcXVlc3QucHJvdG90eXBlO2JzPW5ldyBSZXF1ZXN0KHluLHsuLi5LbCxzaWduYWw6ZXMsbWV0aG9kOmduLnRvVXBwZXJDYXNlKCksaGVhZGVyczpqYS5ub3Jt'@; put 'YWxpemUoKS50b0pTT04oKSxib2R5OlJuLGR1cGxleDoiaGFsZiIsY3JlZGVudGlhbHM6Vmw/JHM6dm9pZCAwfSk7bGV0IFNhPXlpZWxkIGZldGNoKGJzKTtjb25zdCBrYT1nZiYmKCJzdHJlYW0iPT09YWF8fCJyZXNwb25zZSI9PT1hYSk7aWYoZ2YmJihWcnx8a2EmJmppKSl7Y29uc3QgWTA9'@; put 'e307WyJzdGF0dXMiLCJzdGF0dXNUZXh0IiwiaGVhZGVycyJdLmZvckVhY2goU289PntZMFtTb109U2FbU29dfSk7Y29uc3QgRzA9SXQudG9GaW5pdGVOdW1iZXIoU2EuaGVhZGVycy5nZXQoImNvbnRlbnQtbGVuZ3RoIikpLFtWcyxxaV09VnImJm1sKEcwLEhvKHV1KFZyKSwhMCkpfHxbXTtT'@; put 'YT1uZXcgUmVzcG9uc2UoR2koU2EuYm9keSw2NTUzNixWcywoKT0+e3FpJiZxaSgpLGppJiZqaSgpfSksWTApfWFhPWFhfHwidGV4dCI7bGV0IFFoPXlpZWxkIGNkW0l0LmZpbmRLZXkoY2QsYWEpfHwidGV4dCJdKFNhLFZ0KTtyZXR1cm4ha2EmJmppJiZqaSgpLHlpZWxkIG5ldyBQcm9taXNl'@; put 'KChZMCxHMCk9PntPYShZMCxHMCx7ZGF0YTpRaCxoZWFkZXJzOmZhLmZyb20oU2EuaGVhZGVycyksc3RhdHVzOlNhLnN0YXR1cyxzdGF0dXNUZXh0OlNhLnN0YXR1c1RleHQsY29uZmlnOlZ0LHJlcXVlc3Q6YnN9KX0pfWNhdGNoKFZsKXt0aHJvdyBqaSYmamkoKSxWbCYmIlR5cGVFcnJvciI9'@; put 'PT1WbC5uYW1lJiYvZmV0Y2gvaS50ZXN0KFZsLm1lc3NhZ2UpP09iamVjdC5hc3NpZ24obmV3IHJ0KCJOZXR3b3JrIEVycm9yIixydC5FUlJfTkVUV09SSyxWdCxicykse2NhdXNlOlZsLmNhdXNlfHxWbH0pOnJ0LmZyb20oVmwsVmwmJlZsLmNvZGUsVnQsYnMpfX0pO3JldHVybiBmdW5jdGlv'@; put 'bihWdCl7cmV0dXJuIFN0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCk7Y29uc3QgZWg9e2h0dHA6bnVsbCx4aHI6RHUsZmV0Y2g6dmZ9O0l0LmZvckVhY2goZWgsKFN0LFZ0KT0+e2lmKFN0KXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KFN0LCJuYW1lIix7dmFsdWU6VnR9KX1jYXRjaHt9'@; put 'T2JqZWN0LmRlZmluZVByb3BlcnR5KFN0LCJhZGFwdGVyTmFtZSIse3ZhbHVlOlZ0fSl9fSk7Y29uc3QgeWY9U3Q9PmAtICR7U3R9YCxLaD1TdD0+SXQuaXNGdW5jdGlvbihTdCl8fG51bGw9PT1TdHx8ITE9PT1TdDt2YXIgUmNfZ2V0QWRhcHRlcj1TdD0+e1N0PUl0LmlzQXJyYXkoU3QpP1N0'@; put 'OltTdF07Y29uc3R7bGVuZ3RoOlZ0fT1TdDtsZXQgeW4sZ247Y29uc3QgUm49e307Zm9yKGxldCB2bj0wO3ZuPFZ0O3ZuKyspe2xldCBkcjtpZih5bj1TdFt2bl0sZ249eW4sIUtoKHluKSYmKGduPWVoWyhkcj1TdHJpbmcoeW4pKS50b0xvd2VyQ2FzZSgpXSx2b2lkIDA9PT1nbikpdGhyb3cg'@; put 'bmV3IHJ0KGBVbmtub3duIGFkYXB0ZXIgJyR7ZHJ9J2ApO2lmKGduKWJyZWFrO1JuW2RyfHwiIyIrdm5dPWdufWlmKCFnbil7Y29uc3Qgdm49T2JqZWN0LmVudHJpZXMoUm4pLm1hcCgoW3ZpLFZyXSk9PmBhZGFwdGVyICR7dml9IGArKCExPT09VnI/ImlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhl'@; put 'IGVudmlyb25tZW50IjoiaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgYnVpbGQiKSk7dGhyb3cgbmV3IHJ0KCJUaGVyZSBpcyBubyBzdWl0YWJsZSBhZGFwdGVyIHRvIGRpc3BhdGNoIHRoZSByZXF1ZXN0ICIrKFZ0P3ZuLmxlbmd0aD4xPyJzaW5jZSA6XG4iK3ZuLm1hcCh5Zikuam9pbigiXG4i'@; put 'KToiICIreWYodm5bMF0pOiJhcyBubyBhZGFwdGVyIHNwZWNpZmllZCIpLCJFUlJfTk9UX1NVUFBPUlQiKX1yZXR1cm4gZ259O2Z1bmN0aW9uIEJhKFN0KXtpZihTdC5jYW5jZWxUb2tlbiYmU3QuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpLFN0LnNpZ25hbCYmU3Quc2lnbmFsLmFi'@; put 'b3J0ZWQpdGhyb3cgbmV3IF9hKG51bGwsU3QpfWZ1bmN0aW9uIEkzKFN0KXtyZXR1cm4gQmEoU3QpLFN0LmhlYWRlcnM9ZmEuZnJvbShTdC5oZWFkZXJzKSxTdC5kYXRhPW5yLmNhbGwoU3QsU3QudHJhbnNmb3JtUmVxdWVzdCksLTEhPT1bInBvc3QiLCJwdXQiLCJwYXRjaCJdLmluZGV4T2Yo'@; put 'U3QubWV0aG9kKSYmU3QuaGVhZGVycy5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiwhMSksUmNfZ2V0QWRhcHRlcihTdC5hZGFwdGVyfHxjYS5hZGFwdGVyKShTdCkudGhlbihmdW5jdGlvbihnbil7cmV0dXJuIEJhKFN0KSxnbi5kYXRhPW5yLmNh'@; put 'bGwoU3QsU3QudHJhbnNmb3JtUmVzcG9uc2UsZ24pLGduLmhlYWRlcnM9ZmEuZnJvbShnbi5oZWFkZXJzKSxnbn0sZnVuY3Rpb24oZ24pe3JldHVybiBvYShnbil8fChCYShTdCksZ24mJmduLnJlc3BvbnNlJiYoZ24ucmVzcG9uc2UuZGF0YT1uci5jYWxsKFN0LFN0LnRyYW5zZm9ybVJlc3Bv'@; put 'bnNlLGduLnJlc3BvbnNlKSxnbi5yZXNwb25zZS5oZWFkZXJzPWZhLmZyb20oZ24ucmVzcG9uc2UuaGVhZGVycykpKSxQcm9taXNlLnJlamVjdChnbil9KX1jb25zdCBxaD17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVh'@; put 'Y2goKFN0LFZ0KT0+e3FoW1N0XT1mdW5jdGlvbihnbil7cmV0dXJuIHR5cGVvZiBnbj09PVN0fHwiYSIrKFZ0PDE/Im4gIjoiICIpK1N0fX0pO2NvbnN0IEpoPXt9O3FoLnRyYW5zaXRpb25hbD1mdW5jdGlvbihWdCx5bixnbil7ZnVuY3Rpb24gUm4odm4sZHIpe3JldHVybiJbQXhpb3MgdjEu'@; put 'OC4yXSBUcmFuc2l0aW9uYWwgb3B0aW9uICciK3ZuKyInIitkcisoZ24/Ii4gIitnbjoiIil9cmV0dXJuKHZuLGRyLHZpKT0+e2lmKCExPT09VnQpdGhyb3cgbmV3IHJ0KFJuKGRyLCIgaGFzIGJlZW4gcmVtb3ZlZCIrKHluPyIgaW4gIit5bjoiIikpLHJ0LkVSUl9ERVBSRUNBVEVEKTtyZXR1'@; put 'cm4geW4mJiFKaFtkcl0mJihKaFtkcl09ITAscC53YXJuKFJuKGRyLCIgaGFzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSB2Iit5bisiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSwhVnR8fFZ0KHZuLGRyLHZpKX19LHFoLnNwZWxsaW5nPWZ1bmN0aW9uKFZ0KXty'@; put 'ZXR1cm4oeW4sZ24pPT4ocC53YXJuKGAke2dufSBpcyBsaWtlbHkgYSBtaXNzcGVsbGluZyBvZiAke1Z0fWApLCEwKX07dmFyIHJuPXthc3NlcnRPcHRpb25zOmZ1bmN0aW9uIEFuKFN0LFZ0LHluKXtpZigib2JqZWN0IiE9dHlwZW9mIFN0KXRocm93IG5ldyBydCgib3B0aW9ucyBtdXN0IGJl'@; put 'IGFuIG9iamVjdCIscnQuRVJSX0JBRF9PUFRJT05fVkFMVUUpO2NvbnN0IGduPU9iamVjdC5rZXlzKFN0KTtsZXQgUm49Z24ubGVuZ3RoO2Zvcig7Um4tLSA+MDspe2NvbnN0IHZuPWduW1JuXSxkcj1WdFt2bl07aWYoZHIpe2NvbnN0IHZpPVN0W3ZuXSxWcj12b2lkIDA9PT12aXx8ZHIodmks'@; put 'dm4sU3QpO2lmKCEwIT09VnIpdGhyb3cgbmV3IHJ0KCJvcHRpb24gIit2bisiIG11c3QgYmUgIitWcixydC5FUlJfQkFEX09QVElPTl9WQUxVRSl9ZWxzZSBpZighMCE9PXluKXRocm93IG5ldyBydCgiVW5rbm93biBvcHRpb24gIit2bixydC5FUlJfQkFEX09QVElPTil9fSx2YWxpZGF0b3Jz'@; put 'OnFofTtjb25zdCBtaT1ybi52YWxpZGF0b3JzO2NsYXNzIEFye2NvbnN0cnVjdG9yKFZ0KXt0aGlzLmRlZmF1bHRzPVZ0LHRoaXMuaW50ZXJjZXB0b3JzPXtyZXF1ZXN0Om5ldyBrdCxyZXNwb25zZTpuZXcga3R9fXJlcXVlc3QoVnQseW4pe3ZhciBnbj10aGlzO3JldHVybiBfYXN5bmNUb0dl'@; put 'bmVyYXRvcihmdW5jdGlvbiooKXt0cnl7cmV0dXJuIHlpZWxkIGduLl9yZXF1ZXN0KFZ0LHluKX1jYXRjaChSbil7aWYoUm4gaW5zdGFuY2VvZiBFcnJvcil7bGV0IHZuPXt9O0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHZuKTp2bj1uZXcgRXJyb3I7'@; put 'Y29uc3QgZHI9dm4uc3RhY2s/dm4uc3RhY2sucmVwbGFjZSgvXi4rXG4vLCIiKToiIjt0cnl7Um4uc3RhY2s/ZHImJiFTdHJpbmcoUm4uc3RhY2spLmVuZHNXaXRoKGRyLnJlcGxhY2UoL14uK1xuLitcbi8sIiIpKSYmKFJuLnN0YWNrKz0iXG4iK2RyKTpSbi5zdGFjaz1kcn1jYXRjaHt9fXRo'@; put 'cm93IFJufX0pKCl9X3JlcXVlc3QoVnQseW4peyJzdHJpbmciPT10eXBlb2YgVnQ/KHluPXlufHx7fSkudXJsPVZ0OnluPVZ0fHx7fSx5bj1Ycih0aGlzLmRlZmF1bHRzLHluKTtjb25zdHt0cmFuc2l0aW9uYWw6Z24scGFyYW1zU2VyaWFsaXplcjpSbixoZWFkZXJzOnZufT15bjt2b2lkIDAh'@; put 'PT1nbiYmcm4uYXNzZXJ0T3B0aW9ucyhnbix7c2lsZW50SlNPTlBhcnNpbmc6bWkudHJhbnNpdGlvbmFsKG1pLmJvb2xlYW4pLGZvcmNlZEpTT05QYXJzaW5nOm1pLnRyYW5zaXRpb25hbChtaS5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOm1pLnRyYW5zaXRpb25hbChtaS5ib29sZWFu'@; put 'KX0sITEpLG51bGwhPVJuJiYoSXQuaXNGdW5jdGlvbihSbik/eW4ucGFyYW1zU2VyaWFsaXplcj17c2VyaWFsaXplOlJufTpybi5hc3NlcnRPcHRpb25zKFJuLHtlbmNvZGU6bWkuZnVuY3Rpb24sc2VyaWFsaXplOm1pLmZ1bmN0aW9ufSwhMCkpLHZvaWQgMCE9PXluLmFsbG93QWJzb2x1dGVV'@; put 'cmxzfHwoeW4uYWxsb3dBYnNvbHV0ZVVybHM9dm9pZCAwPT09dGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJsc3x8dGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJscykscm4uYXNzZXJ0T3B0aW9ucyh5bix7YmFzZVVybDptaS5zcGVsbGluZygiYmFzZVVSTCIpLHdpdGhYc3JmVG9r'@; put 'ZW46bWkuc3BlbGxpbmcoIndpdGhYU1JGVG9rZW4iKX0sITApLHluLm1ldGhvZD0oeW4ubWV0aG9kfHx0aGlzLmRlZmF1bHRzLm1ldGhvZHx8ImdldCIpLnRvTG93ZXJDYXNlKCk7bGV0IGRyPXZuJiZJdC5tZXJnZSh2bi5jb21tb24sdm5beW4ubWV0aG9kXSk7dm4mJkl0LmZvckVhY2goWyJk'@; put 'ZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0sZXM9PntkZWxldGUgdm5bZXNdfSkseW4uaGVhZGVycz1mYS5jb25jYXQoZHIsdm4pO2NvbnN0IHZpPVtdO2xldCBWcj0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24o'@; put 'YnMpeyJmdW5jdGlvbiI9PXR5cGVvZiBicy5ydW5XaGVuJiYhMT09PWJzLnJ1bldoZW4oeW4pfHwoVnI9VnImJmJzLnN5bmNocm9ub3VzLHZpLnVuc2hpZnQoYnMuZnVsZmlsbGVkLGJzLnJlamVjdGVkKSl9KTtjb25zdCB0YT1bXTt0aGlzLmludGVyY2VwdG9ycy5yZXNwb25zZS5mb3JFYWNo'@; put 'KGZ1bmN0aW9uKGJzKXt0YS5wdXNoKGJzLmZ1bGZpbGxlZCxicy5yZWplY3RlZCl9KTtsZXQgYWEsJHMsamE9MDtpZighVnIpe2NvbnN0IGVzPVtJMy5iaW5kKHRoaXMpLHZvaWQgMF07Zm9yKGVzLnVuc2hpZnQuYXBwbHkoZXMsdmkpLGVzLnB1c2guYXBwbHkoZXMsdGEpLCRzPWVzLmxlbmd0'@; put 'aCxhYT1Qcm9taXNlLnJlc29sdmUoeW4pO2phPCRzOylhYT1hYS50aGVuKGVzW2phKytdLGVzW2phKytdKTtyZXR1cm4gYWF9JHM9dmkubGVuZ3RoO2xldCBLbD15bjtmb3IoamE9MDtqYTwkczspe2NvbnN0IGVzPXZpW2phKytdLGJzPXZpW2phKytdO3RyeXtLbD1lcyhLbCl9Y2F0Y2goamkp'@; put 'e2JzLmNhbGwodGhpcyxqaSk7YnJlYWt9fXRyeXthYT1JMy5jYWxsKHRoaXMsS2wpfWNhdGNoKGVzKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoZXMpfWZvcihqYT0wLCRzPXRhLmxlbmd0aDtqYTwkczspYWE9YWEudGhlbih0YVtqYSsrXSx0YVtqYSsrXSk7cmV0dXJuIGFhfWdldFVyaShWdCl7'@; put 'cmV0dXJuIEZyKGxpKChWdD1Ycih0aGlzLmRlZmF1bHRzLFZ0KSkuYmFzZVVSTCxWdC51cmwsVnQuYWxsb3dBYnNvbHV0ZVVybHMpLFZ0LnBhcmFtcyxWdC5wYXJhbXNTZXJpYWxpemVyKX19SXQuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJvcHRpb25zIl0sZnVuY3Rpb24oVnQp'@; put 'e0FyLnByb3RvdHlwZVtWdF09ZnVuY3Rpb24oeW4sZ24pe3JldHVybiB0aGlzLnJlcXVlc3QoWHIoZ258fHt9LHttZXRob2Q6VnQsdXJsOnluLGRhdGE6KGdufHx7fSkuZGF0YX0pKX19KSxJdC5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sZnVuY3Rpb24oVnQpe2Z1bmN0aW9uIHlu'@; put 'KGduKXtyZXR1cm4gZnVuY3Rpb24odm4sZHIsdmkpe3JldHVybiB0aGlzLnJlcXVlc3QoWHIodml8fHt9LHttZXRob2Q6VnQsaGVhZGVyczpnbj97IkNvbnRlbnQtVHlwZSI6Im11bHRpcGFydC9mb3JtLWRhdGEifTp7fSx1cmw6dm4sZGF0YTpkcn0pKX19QXIucHJvdG90eXBlW1Z0XT15bigp'@; put 'LEFyLnByb3RvdHlwZVtWdCsiRm9ybSJdPXluKCEwKX0pO3ZhciBGcz1BcjtjbGFzcyBRYXtjb25zdHJ1Y3RvcihWdCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFZ0KXRocm93IG5ldyBUeXBlRXJyb3IoImV4ZWN1dG9yIG11c3QgYmUgYSBmdW5jdGlvbi4iKTtsZXQgeW47dGhpcy5wcm9taXNl'@; put 'PW5ldyBQcm9taXNlKGZ1bmN0aW9uKHZuKXt5bj12bn0pO2NvbnN0IGduPXRoaXM7dGhpcy5wcm9taXNlLnRoZW4oUm49PntpZighZ24uX2xpc3RlbmVycylyZXR1cm47bGV0IHZuPWduLl9saXN0ZW5lcnMubGVuZ3RoO2Zvcig7dm4tLSA+MDspZ24uX2xpc3RlbmVyc1t2bl0oUm4pO2duLl9s'@; put 'aXN0ZW5lcnM9bnVsbH0pLHRoaXMucHJvbWlzZS50aGVuPVJuPT57bGV0IHZuO2NvbnN0IGRyPW5ldyBQcm9taXNlKHZpPT57Z24uc3Vic2NyaWJlKHZpKSx2bj12aX0pLnRoZW4oUm4pO3JldHVybiBkci5jYW5jZWw9ZnVuY3Rpb24oKXtnbi51bnN1YnNjcmliZSh2bil9LGRyfSxWdChmdW5j'@; put 'dGlvbih2bixkcix2aSl7Z24ucmVhc29ufHwoZ24ucmVhc29uPW5ldyBfYSh2bixkcix2aSkseW4oZ24ucmVhc29uKSl9KX10aHJvd0lmUmVxdWVzdGVkKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259c3Vic2NyaWJlKFZ0KXt0aGlzLnJlYXNvbj9WdCh0aGlzLnJlYXNvbik6'@; put 'dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKFZ0KTp0aGlzLl9saXN0ZW5lcnM9W1Z0XX11bnN1YnNjcmliZShWdCl7aWYoIXRoaXMuX2xpc3RlbmVycylyZXR1cm47Y29uc3QgeW49dGhpcy5fbGlzdGVuZXJzLmluZGV4T2YoVnQpOy0xIT09eW4mJnRoaXMuX2xpc3RlbmVy'@; put 'cy5zcGxpY2UoeW4sMSl9dG9BYm9ydFNpZ25hbCgpe2NvbnN0IFZ0PW5ldyBBYm9ydENvbnRyb2xsZXIseW49Z249PntWdC5hYm9ydChnbil9O3JldHVybiB0aGlzLnN1YnNjcmliZSh5biksVnQuc2lnbmFsLnVuc3Vic2NyaWJlPSgpPT50aGlzLnVuc3Vic2NyaWJlKHluKSxWdC5zaWduYWx9'@; put 'c3RhdGljIHNvdXJjZSgpe2xldCBWdDtyZXR1cm57dG9rZW46bmV3IFFhKGZ1bmN0aW9uKFJuKXtWdD1Sbn0pLGNhbmNlbDpWdH19fXZhciBybD1RYTtjb25zdCBDbz17Q29udGludWU6MTAwLFN3aXRjaGluZ1Byb3RvY29sczoxMDEsUHJvY2Vzc2luZzoxMDIsRWFybHlIaW50czoxMDMsT2s6'@; put 'MjAwLENyZWF0ZWQ6MjAxLEFjY2VwdGVkOjIwMixOb25BdXRob3JpdGF0aXZlSW5mb3JtYXRpb246MjAzLE5vQ29udGVudDoyMDQsUmVzZXRDb250ZW50OjIwNSxQYXJ0aWFsQ29udGVudDoyMDYsTXVsdGlTdGF0dXM6MjA3LEFscmVhZHlSZXBvcnRlZDoyMDgsSW1Vc2VkOjIyNixNdWx0aXBs'@; put 'ZUNob2ljZXM6MzAwLE1vdmVkUGVybWFuZW50bHk6MzAxLEZvdW5kOjMwMixTZWVPdGhlcjozMDMsTm90TW9kaWZpZWQ6MzA0LFVzZVByb3h5OjMwNSxVbnVzZWQ6MzA2LFRlbXBvcmFyeVJlZGlyZWN0OjMwNyxQZXJtYW5lbnRSZWRpcmVjdDozMDgsQmFkUmVxdWVzdDo0MDAsVW5hdXRob3Jp'@; put 'emVkOjQwMSxQYXltZW50UmVxdWlyZWQ6NDAyLEZvcmJpZGRlbjo0MDMsTm90Rm91bmQ6NDA0LE1ldGhvZE5vdEFsbG93ZWQ6NDA1LE5vdEFjY2VwdGFibGU6NDA2LFByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZDo0MDcsUmVxdWVzdFRpbWVvdXQ6NDA4LENvbmZsaWN0OjQwOSxHb25lOjQx'@; put 'MCxMZW5ndGhSZXF1aXJlZDo0MTEsUHJlY29uZGl0aW9uRmFpbGVkOjQxMixQYXlsb2FkVG9vTGFyZ2U6NDEzLFVyaVRvb0xvbmc6NDE0LFVuc3VwcG9ydGVkTWVkaWFUeXBlOjQxNSxSYW5nZU5vdFNhdGlzZmlhYmxlOjQxNixFeHBlY3RhdGlvbkZhaWxlZDo0MTcsSW1BVGVhcG90OjQxOCxN'@; put 'aXNkaXJlY3RlZFJlcXVlc3Q6NDIxLFVucHJvY2Vzc2FibGVFbnRpdHk6NDIyLExvY2tlZDo0MjMsRmFpbGVkRGVwZW5kZW5jeTo0MjQsVG9vRWFybHk6NDI1LFVwZ3JhZGVSZXF1aXJlZDo0MjYsUHJlY29uZGl0aW9uUmVxdWlyZWQ6NDI4LFRvb01hbnlSZXF1ZXN0czo0MjksUmVxdWVzdEhl'@; put 'YWRlckZpZWxkc1Rvb0xhcmdlOjQzMSxVbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uczo0NTEsSW50ZXJuYWxTZXJ2ZXJFcnJvcjo1MDAsTm90SW1wbGVtZW50ZWQ6NTAxLEJhZEdhdGV3YXk6NTAyLFNlcnZpY2VVbmF2YWlsYWJsZTo1MDMsR2F0ZXdheVRpbWVvdXQ6NTA0LEh0dHBWZXJzaW9u'@; put 'Tm90U3VwcG9ydGVkOjUwNSxWYXJpYW50QWxzb05lZ290aWF0ZXM6NTA2LEluc3VmZmljaWVudFN0b3JhZ2U6NTA3LExvb3BEZXRlY3RlZDo1MDgsTm90RXh0ZW5kZWQ6NTEwLE5ldHdvcmtBdXRoZW50aWNhdGlvblJlcXVpcmVkOjUxMX07T2JqZWN0LmVudHJpZXMoQ28pLmZvckVhY2goKFtT'@; put 'dCxWdF0pPT57Q29bVnRdPVN0fSk7dmFyIE5sPUNvO2NvbnN0IElzPWZ1bmN0aW9uIE5zKFN0KXtjb25zdCBWdD1uZXcgRnMoU3QpLHluPU4oRnMucHJvdG90eXBlLnJlcXVlc3QsVnQpO3JldHVybiBJdC5leHRlbmQoeW4sRnMucHJvdG90eXBlLFZ0LHthbGxPd25LZXlzOiEwfSksSXQuZXh0'@; put 'ZW5kKHluLFZ0LG51bGwse2FsbE93bktleXM6ITB9KSx5bi5jcmVhdGU9ZnVuY3Rpb24oUm4pe3JldHVybiBOcyhYcihTdCxSbikpfSx5bn0oY2EpO0lzLkF4aW9zPUZzLElzLkNhbmNlbGVkRXJyb3I9X2EsSXMuQ2FuY2VsVG9rZW49cmwsSXMuaXNDYW5jZWw9b2EsSXMuVkVSU0lPTj0iMS44'@; put 'LjIiLElzLnRvRm9ybURhdGE9ZW4sSXMuQXhpb3NFcnJvcj1ydCxJcy5DYW5jZWw9SXMuQ2FuY2VsZWRFcnJvcixJcy5hbGw9ZnVuY3Rpb24oVnQpe3JldHVybiBQcm9taXNlLmFsbChWdCl9LElzLnNwcmVhZD1mdW5jdGlvbiB6cyhTdCl7cmV0dXJuIGZ1bmN0aW9uKHluKXtyZXR1cm4gU3Qu'@; put 'YXBwbHkobnVsbCx5bil9fSxJcy5pc0F4aW9zRXJyb3I9ZnVuY3Rpb24gTm8oU3Qpe3JldHVybiBJdC5pc09iamVjdChTdCkmJiEwPT09U3QuaXNBeGlvc0Vycm9yfSxJcy5tZXJnZUNvbmZpZz1YcixJcy5BeGlvc0hlYWRlcnM9ZmEsSXMuZm9ybVRvSlNPTj1TdD0+RGkoSXQuaXNIVE1MRm9y'@; put 'bShTdCk/bmV3IEZvcm1EYXRhKFN0KTpTdCksSXMuZ2V0QWRhcHRlcj1SY19nZXRBZGFwdGVyLElzLkh0dHBTdGF0dXNDb2RlPU5sLElzLmRlZmF1bHQ9SXMsY2UuZXhwb3J0cz1Jc30sODU2NjooY2UsSik9PnsidXNlIHN0cmljdCI7dmFyIEQsXztPYmplY3QuZGVmaW5lUHJvcGVydGllcyhK'@; put 'LHtfX2VzTW9kdWxlOnt2YWx1ZTohMH0sW1N5bWJvbC50b1N0cmluZ1RhZ106e3ZhbHVlOiJNb2R1bGUifX0pO2NvbnN0IHc9ZnVuY3Rpb24gYihaKXtyZXR1cm4gWiYmWi5fX2VzTW9kdWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoWiwiZGVmYXVsdCIpP1ouZGVm'@; put 'YXVsdDpafShmdW5jdGlvbiBwKCl7aWYoXylyZXR1cm4gRDtfPTE7Y29uc3QgWj0yMTQ3NDgzNjQ3LFg9MzYsVGU9L154bi0tLyxTZT0vW15cMC1ceDdGXS8semU9L1tceDJFXHUzMDAyXHVGRjBFXHVGRjYxXS9nLHo9e292ZXJmbG93OiJPdmVyZmxvdzogaW5wdXQgbmVlZHMgd2lkZXIgaW50'@; put 'ZWdlcnMgdG8gcHJvY2VzcyIsIm5vdC1iYXNpYyI6IklsbGVnYWwgaW5wdXQgPj0gMHg4MCAobm90IGEgYmFzaWMgY29kZSBwb2ludCkiLCJpbnZhbGlkLWlucHV0IjoiSW52YWxpZCBpbnB1dCJ9LHk9TWF0aC5mbG9vcix4PVN0cmluZy5mcm9tQ2hhckNvZGU7ZnVuY3Rpb24gQyh3ZSl7dGhy'@; put 'b3cgbmV3IFJhbmdlRXJyb3Ioelt3ZV0pfWZ1bmN0aW9uIFYod2UsWmUpe2NvbnN0IFFlPXdlLnNwbGl0KCJAIik7bGV0IGF0PSIiO1FlLmxlbmd0aD4xJiYoYXQ9UWVbMF0rIkAiLHdlPVFlWzFdKTtjb25zdCB2ZT1mdW5jdGlvbiBUKHdlLFplKXtjb25zdCBRZT1bXTtsZXQgYXQ9d2UubGVu'@; put 'Z3RoO2Zvcig7YXQtLTspUWVbYXRdPVplKHdlW2F0XSk7cmV0dXJuIFFlfSgod2U9d2UucmVwbGFjZSh6ZSwiLiIpKS5zcGxpdCgiLiIpLFplKS5qb2luKCIuIik7cmV0dXJuIGF0K3ZlfWZ1bmN0aW9uIFUod2Upe2NvbnN0IFplPVtdO2xldCBRZT0wO2NvbnN0IGF0PXdlLmxlbmd0aDtmb3Io'@; put 'O1FlPGF0Oyl7Y29uc3QgeGU9d2UuY2hhckNvZGVBdChRZSsrKTtpZih4ZT49NTUyOTYmJnhlPD01NjMxOSYmUWU8YXQpe2NvbnN0IHZlPXdlLmNoYXJDb2RlQXQoUWUrKyk7NTYzMjA9PSg2NDUxMiZ2ZSk/WmUucHVzaCgoKDEwMjMmeGUpPDwxMCkrKDEwMjMmdmUpKzY1NTM2KTooWmUucHVz'@; put 'aCh4ZSksUWUtLSl9ZWxzZSBaZS5wdXNoKHhlKX1yZXR1cm4gWmV9Y29uc3QgbT1mdW5jdGlvbih3ZSl7cmV0dXJuIHdlPj00OCYmd2U8NTg/d2UtNDgrMjY6d2U+PTY1JiZ3ZTw5MT93ZS02NTp3ZT49OTcmJndlPDEyMz93ZS05NzpYfSxBPWZ1bmN0aW9uKHdlLFplKXtyZXR1cm4gd2UrMjIr'@; put 'NzUqKHdlPDI2KS0oKDAhPVplKTw8NSl9LGFlPWZ1bmN0aW9uKHdlLFplLFFlKXtsZXQgYXQ9MDtmb3Iod2U9UWU/eSh3ZS83MDApOndlPj4xLHdlKz15KHdlL1plKTt3ZT40NTU7YXQrPVgpd2U9eSh3ZS8zNSk7cmV0dXJuIHkoYXQrMzYqd2UvKHdlKzM4KSl9LG5lPWZ1bmN0aW9uKHdlKXtj'@; put 'b25zdCBaZT1bXSxRZT13ZS5sZW5ndGg7bGV0IGF0PTAseGU9MTI4LHZlPTcyLHFlPXdlLmxhc3RJbmRleE9mKCItIik7cWU8MCYmKHFlPTApO2ZvcihsZXQgamU9MDtqZTxxZTsrK2plKXdlLmNoYXJDb2RlQXQoamUpPj0xMjgmJkMoIm5vdC1iYXNpYyIpLFplLnB1c2god2UuY2hhckNvZGVB'@; put 'dChqZSkpO2ZvcihsZXQgamU9cWU+MD9xZSsxOjA7amU8UWU7KXtjb25zdCBBZT1hdDtmb3IobGV0IFJlPTEsSWU9WDs7SWUrPVgpe2plPj1RZSYmQygiaW52YWxpZC1pbnB1dCIpO2NvbnN0IEhlPW0od2UuY2hhckNvZGVBdChqZSsrKSk7SGU+PVgmJkMoImludmFsaWQtaW5wdXQiKSxIZT55'@; put 'KChaLWF0KS9SZSkmJkMoIm92ZXJmbG93IiksYXQrPUhlKlJlO2NvbnN0IERlPUllPD12ZT8xOkllPj12ZSsyNj8yNjpJZS12ZTtpZihIZTxEZSlicmVhaztjb25zdCBrZT1YLURlO1JlPnkoWi9rZSkmJkMoIm92ZXJmbG93IiksUmUqPWtlfWNvbnN0IEZlPVplLmxlbmd0aCsxO3ZlPWFlKGF0'@; put 'LUFlLEZlLDA9PUFlKSx5KGF0L0ZlKT5aLXhlJiZDKCJvdmVyZmxvdyIpLHhlKz15KGF0L0ZlKSxhdCU9RmUsWmUuc3BsaWNlKGF0KyssMCx4ZSl9cmV0dXJuIFN0cmluZy5mcm9tQ29kZVBvaW50KC4uLlplKX0sbGU9ZnVuY3Rpb24od2Upe2NvbnN0IFplPVtdLFFlPSh3ZT1VKHdlKSkubGVu'@; put 'Z3RoO2xldCBhdD0xMjgseGU9MCx2ZT03Mjtmb3IoY29uc3QgQWUgb2Ygd2UpQWU8MTI4JiZaZS5wdXNoKHgoQWUpKTtjb25zdCBxZT1aZS5sZW5ndGg7bGV0IGplPXFlO2ZvcihxZSYmWmUucHVzaCgiLSIpO2plPFFlOyl7bGV0IEFlPVo7Zm9yKGNvbnN0IFJlIG9mIHdlKVJlPj1hdCYmUmU8'@; put 'QWUmJihBZT1SZSk7Y29uc3QgRmU9amUrMTtBZS1hdD55KChaLXhlKS9GZSkmJkMoIm92ZXJmbG93IikseGUrPShBZS1hdCkqRmUsYXQ9QWU7Zm9yKGNvbnN0IFJlIG9mIHdlKWlmKFJlPGF0JiYrK3hlPlomJkMoIm92ZXJmbG93IiksUmU9PT1hdCl7bGV0IEllPXhlO2ZvcihsZXQgSGU9WDs7'@; put 'SGUrPVgpe2NvbnN0IERlPUhlPD12ZT8xOkhlPj12ZSsyNj8yNjpIZS12ZTtpZihJZTxEZSlicmVhaztjb25zdCBrZT1JZS1EZSxfdD1YLURlO1plLnB1c2goeChBKERlK2tlJV90LDApKSksSWU9eShrZS9fdCl9WmUucHVzaCh4KEEoSWUsMCkpKSx2ZT1hZSh4ZSxGZSxqZT09PXFlKSx4ZT0w'@; put 'LCsramV9Kyt4ZSwrK2F0fXJldHVybiBaZS5qb2luKCIiKX07cmV0dXJuIEQ9e3ZlcnNpb246IjIuMy4xIix1Y3MyOntkZWNvZGU6VSxlbmNvZGU6d2U9PlN0cmluZy5mcm9tQ29kZVBvaW50KC4uLndlKX0sZGVjb2RlOm5lLGVuY29kZTpsZSx0b0FTQ0lJOmZ1bmN0aW9uKHdlKXtyZXR1cm4g'@; put 'Vih3ZSxmdW5jdGlvbihaZSl7cmV0dXJuIFNlLnRlc3QoWmUpPyJ4bi0tIitsZShaZSk6WmV9KX0sdG9Vbmljb2RlOmZ1bmN0aW9uKHdlKXtyZXR1cm4gVih3ZSxmdW5jdGlvbihaZSl7cmV0dXJuIFRlLnRlc3QoWmUpP25lKFplLnNsaWNlKDQpLnRvTG93ZXJDYXNlKCkpOlplfSl9fX0oKSks'@; put 'SD1bImFjIiwiY29tLmFjIiwiZWR1LmFjIiwiZ292LmFjIiwibWlsLmFjIiwibmV0LmFjIiwib3JnLmFjIiwiYWQiLCJhZSIsImFjLmFlIiwiY28uYWUiLCJnb3YuYWUiLCJtaWwuYWUiLCJuZXQuYWUiLCJvcmcuYWUiLCJzY2guYWUiLCJhZXJvIiwiYWlybGluZS5hZXJvIiwiYWlycG9ydC5h'@; put 'ZXJvIiwiYWNjaWRlbnQtaW52ZXN0aWdhdGlvbi5hZXJvIiwiYWNjaWRlbnQtcHJldmVudGlvbi5hZXJvIiwiYWVyb2JhdGljLmFlcm8iLCJhZXJvY2x1Yi5hZXJvIiwiYWVyb2Ryb21lLmFlcm8iLCJhZ2VudHMuYWVybyIsImFpci1zdXJ2ZWlsbGFuY2UuYWVybyIsImFpci10cmFmZmljLWNv'@; put 'bnRyb2wuYWVybyIsImFpcmNyYWZ0LmFlcm8iLCJhaXJ0cmFmZmljLmFlcm8iLCJhbWJ1bGFuY2UuYWVybyIsImFzc29jaWF0aW9uLmFlcm8iLCJhdXRob3IuYWVybyIsImJhbGxvb25pbmcuYWVybyIsImJyb2tlci5hZXJvIiwiY2FhLmFlcm8iLCJjYXJnby5hZXJvIiwiY2F0ZXJpbmcuYWVy'@; put 'byIsImNlcnRpZmljYXRpb24uYWVybyIsImNoYW1waW9uc2hpcC5hZXJvIiwiY2hhcnRlci5hZXJvIiwiY2l2aWxhdmlhdGlvbi5hZXJvIiwiY2x1Yi5hZXJvIiwiY29uZmVyZW5jZS5hZXJvIiwiY29uc3VsdGFudC5hZXJvIiwiY29uc3VsdGluZy5hZXJvIiwiY29udHJvbC5hZXJvIiwiY291'@; put 'bmNpbC5hZXJvIiwiY3Jldy5hZXJvIiwiZGVzaWduLmFlcm8iLCJkZ2NhLmFlcm8iLCJlZHVjYXRvci5hZXJvIiwiZW1lcmdlbmN5LmFlcm8iLCJlbmdpbmUuYWVybyIsImVuZ2luZWVyLmFlcm8iLCJlbnRlcnRhaW5tZW50LmFlcm8iLCJlcXVpcG1lbnQuYWVybyIsImV4Y2hhbmdlLmFlcm8i'@; put 'LCJleHByZXNzLmFlcm8iLCJmZWRlcmF0aW9uLmFlcm8iLCJmbGlnaHQuYWVybyIsImZyZWlnaHQuYWVybyIsImZ1ZWwuYWVybyIsImdsaWRpbmcuYWVybyIsImdvdmVybm1lbnQuYWVybyIsImdyb3VuZGhhbmRsaW5nLmFlcm8iLCJncm91cC5hZXJvIiwiaGFuZ2dsaWRpbmcuYWVybyIsImhv'@; put 'bWVidWlsdC5hZXJvIiwiaW5zdXJhbmNlLmFlcm8iLCJqb3VybmFsLmFlcm8iLCJqb3VybmFsaXN0LmFlcm8iLCJsZWFzaW5nLmFlcm8iLCJsb2dpc3RpY3MuYWVybyIsIm1hZ2F6aW5lLmFlcm8iLCJtYWludGVuYW5jZS5hZXJvIiwibWFya2V0cGxhY2UuYWVybyIsIm1lZGlhLmFlcm8iLCJt'@; put 'aWNyb2xpZ2h0LmFlcm8iLCJtb2RlbGxpbmcuYWVybyIsIm5hdmlnYXRpb24uYWVybyIsInBhcmFjaHV0aW5nLmFlcm8iLCJwYXJhZ2xpZGluZy5hZXJvIiwicGFzc2VuZ2VyLWFzc29jaWF0aW9uLmFlcm8iLCJwaWxvdC5hZXJvIiwicHJlc3MuYWVybyIsInByb2R1Y3Rpb24uYWVybyIsInJl'@; put 'Y3JlYXRpb24uYWVybyIsInJlcGJvZHkuYWVybyIsInJlcy5hZXJvIiwicmVzZWFyY2guYWVybyIsInJvdG9yY3JhZnQuYWVybyIsInNhZmV0eS5hZXJvIiwic2NpZW50aXN0LmFlcm8iLCJzZXJ2aWNlcy5hZXJvIiwic2hvdy5hZXJvIiwic2t5ZGl2aW5nLmFlcm8iLCJzb2Z0d2FyZS5hZXJv'@; put 'Iiwic3R1ZGVudC5hZXJvIiwidGF4aS5hZXJvIiwidHJhZGVyLmFlcm8iLCJ0cmFkaW5nLmFlcm8iLCJ0cmFpbmVyLmFlcm8iLCJ1bmlvbi5hZXJvIiwid29ya2luZ2dyb3VwLmFlcm8iLCJ3b3Jrcy5hZXJvIiwiYWYiLCJjb20uYWYiLCJlZHUuYWYiLCJnb3YuYWYiLCJuZXQuYWYiLCJvcmcu'@; put 'YWYiLCJhZyIsImNvLmFnIiwiY29tLmFnIiwibmV0LmFnIiwibm9tLmFnIiwib3JnLmFnIiwiYWkiLCJjb20uYWkiLCJuZXQuYWkiLCJvZmYuYWkiLCJvcmcuYWkiLCJhbCIsImNvbS5hbCIsImVkdS5hbCIsImdvdi5hbCIsIm1pbC5hbCIsIm5ldC5hbCIsIm9yZy5hbCIsImFtIiwiY28uYW0i'@; put 'LCJjb20uYW0iLCJjb21tdW5lLmFtIiwibmV0LmFtIiwib3JnLmFtIiwiYW8iLCJjby5hbyIsImVkLmFvIiwiZWR1LmFvIiwiZ292LmFvIiwiZ3YuYW8iLCJpdC5hbyIsIm9nLmFvIiwib3JnLmFvIiwicGIuYW8iLCJhcSIsImFyIiwiYmV0LmFyIiwiY29tLmFyIiwiY29vcC5hciIsImVkdS5h'@; put 'ciIsImdvYi5hciIsImdvdi5hciIsImludC5hciIsIm1pbC5hciIsIm11c2ljYS5hciIsIm11dHVhbC5hciIsIm5ldC5hciIsIm9yZy5hciIsInNlbmFzYS5hciIsInR1ci5hciIsImFycGEiLCJlMTY0LmFycGEiLCJob21lLmFycGEiLCJpbi1hZGRyLmFycGEiLCJpcDYuYXJwYSIsImlyaXMu'@; put 'YXJwYSIsInVyaS5hcnBhIiwidXJuLmFycGEiLCJhcyIsImdvdi5hcyIsImFzaWEiLCJhdCIsImFjLmF0Iiwic3RoLmFjLmF0IiwiY28uYXQiLCJndi5hdCIsIm9yLmF0IiwiYXUiLCJhc24uYXUiLCJjb20uYXUiLCJlZHUuYXUiLCJnb3YuYXUiLCJpZC5hdSIsIm5ldC5hdSIsIm9yZy5hdSIs'@; put 'ImNvbmYuYXUiLCJvei5hdSIsImFjdC5hdSIsIm5zdy5hdSIsIm50LmF1IiwicWxkLmF1Iiwic2EuYXUiLCJ0YXMuYXUiLCJ2aWMuYXUiLCJ3YS5hdSIsImFjdC5lZHUuYXUiLCJjYXRob2xpYy5lZHUuYXUiLCJuc3cuZWR1LmF1IiwibnQuZWR1LmF1IiwicWxkLmVkdS5hdSIsInNhLmVkdS5h'@; put 'dSIsInRhcy5lZHUuYXUiLCJ2aWMuZWR1LmF1Iiwid2EuZWR1LmF1IiwicWxkLmdvdi5hdSIsInNhLmdvdi5hdSIsInRhcy5nb3YuYXUiLCJ2aWMuZ292LmF1Iiwid2EuZ292LmF1Iiwic2Nob29scy5uc3cuZWR1LmF1IiwiYXciLCJjb20uYXciLCJheCIsImF6IiwiYml6LmF6IiwiY29tLmF6'@; put 'IiwiZWR1LmF6IiwiZ292LmF6IiwiaW5mby5heiIsImludC5heiIsIm1pbC5heiIsIm5hbWUuYXoiLCJuZXQuYXoiLCJvcmcuYXoiLCJwcC5heiIsInByby5heiIsImJhIiwiY29tLmJhIiwiZWR1LmJhIiwiZ292LmJhIiwibWlsLmJhIiwibmV0LmJhIiwib3JnLmJhIiwiYmIiLCJiaXouYmIi'@; put 'LCJjby5iYiIsImNvbS5iYiIsImVkdS5iYiIsImdvdi5iYiIsImluZm8uYmIiLCJuZXQuYmIiLCJvcmcuYmIiLCJzdG9yZS5iYiIsInR2LmJiIiwiKi5iZCIsImJlIiwiYWMuYmUiLCJiZiIsImdvdi5iZiIsImJnIiwiMC5iZyIsIjEuYmciLCIyLmJnIiwiMy5iZyIsIjQuYmciLCI1LmJnIiwi'@; put 'Ni5iZyIsIjcuYmciLCI4LmJnIiwiOS5iZyIsImEuYmciLCJiLmJnIiwiYy5iZyIsImQuYmciLCJlLmJnIiwiZi5iZyIsImcuYmciLCJoLmJnIiwiaS5iZyIsImouYmciLCJrLmJnIiwibC5iZyIsIm0uYmciLCJuLmJnIiwiby5iZyIsInAuYmciLCJxLmJnIiwici5iZyIsInMuYmciLCJ0LmJn'@; put 'IiwidS5iZyIsInYuYmciLCJ3LmJnIiwieC5iZyIsInkuYmciLCJ6LmJnIiwiYmgiLCJjb20uYmgiLCJlZHUuYmgiLCJnb3YuYmgiLCJuZXQuYmgiLCJvcmcuYmgiLCJiaSIsImNvLmJpIiwiY29tLmJpIiwiZWR1LmJpIiwib3IuYmkiLCJvcmcuYmkiLCJiaXoiLCJiaiIsImFmcmljYS5iaiIs'@; put 'ImFncm8uYmoiLCJhcmNoaXRlY3Rlcy5iaiIsImFzc3VyLmJqIiwiYXZvY2F0cy5iaiIsImNvLmJqIiwiY29tLmJqIiwiZWNvLmJqIiwiZWNvbm8uYmoiLCJlZHUuYmoiLCJpbmZvLmJqIiwibG9pc2lycy5iaiIsIm1vbmV5LmJqIiwibmV0LmJqIiwib3JnLmJqIiwib3RlLmJqIiwicmVzdGF1'@; put 'cmFudC5iaiIsInJlc3RvLmJqIiwidG91cmlzbS5iaiIsInVuaXYuYmoiLCJibSIsImNvbS5ibSIsImVkdS5ibSIsImdvdi5ibSIsIm5ldC5ibSIsIm9yZy5ibSIsImJuIiwiY29tLmJuIiwiZWR1LmJuIiwiZ292LmJuIiwibmV0LmJuIiwib3JnLmJuIiwiYm8iLCJjb20uYm8iLCJlZHUuYm8i'@; put 'LCJnb2IuYm8iLCJpbnQuYm8iLCJtaWwuYm8iLCJuZXQuYm8iLCJvcmcuYm8iLCJ0di5ibyIsIndlYi5ibyIsImFjYWRlbWlhLmJvIiwiYWdyby5ibyIsImFydGUuYm8iLCJibG9nLmJvIiwiYm9saXZpYS5ibyIsImNpZW5jaWEuYm8iLCJjb29wZXJhdGl2YS5ibyIsImRlbW9jcmFjaWEuYm8i'@; put 'LCJkZXBvcnRlLmJvIiwiZWNvbG9naWEuYm8iLCJlY29ub21pYS5ibyIsImVtcHJlc2EuYm8iLCJpbmRpZ2VuYS5ibyIsImluZHVzdHJpYS5ibyIsImluZm8uYm8iLCJtZWRpY2luYS5ibyIsIm1vdmltaWVudG8uYm8iLCJtdXNpY2EuYm8iLCJuYXR1cmFsLmJvIiwibm9tYnJlLmJvIiwibm90'@; put 'aWNpYXMuYm8iLCJwYXRyaWEuYm8iLCJwbHVyaW5hY2lvbmFsLmJvIiwicG9saXRpY2EuYm8iLCJwcm9mZXNpb25hbC5ibyIsInB1ZWJsby5ibyIsInJldmlzdGEuYm8iLCJzYWx1ZC5ibyIsInRlY25vbG9naWEuYm8iLCJ0a3NhdC5ibyIsInRyYW5zcG9ydGUuYm8iLCJ3aWtpLmJvIiwiYnIi'@; put 'LCI5Z3VhY3UuYnIiLCJhYmMuYnIiLCJhZG0uYnIiLCJhZHYuYnIiLCJhZ3IuYnIiLCJhanUuYnIiLCJhbS5iciIsImFuYW5pLmJyIiwiYXBhcmVjaWRhLmJyIiwiYXBwLmJyIiwiYXJxLmJyIiwiYXJ0LmJyIiwiYXRvLmJyIiwiYi5iciIsImJhcnVlcmkuYnIiLCJiZWxlbS5iciIsImJldC5i'@; put 'ciIsImJoei5iciIsImJpYi5iciIsImJpby5iciIsImJsb2cuYnIiLCJibWQuYnIiLCJib2F2aXN0YS5iciIsImJzYi5iciIsImNhbXBpbmFncmFuZGUuYnIiLCJjYW1waW5hcy5iciIsImNheGlhcy5iciIsImNpbS5iciIsImNuZy5iciIsImNudC5iciIsImNvbS5iciIsImNvbnRhZ2VtLmJy'@; put 'IiwiY29vcC5iciIsImNvei5iciIsImNyaS5iciIsImN1aWFiYS5iciIsImN1cml0aWJhLmJyIiwiZGVmLmJyIiwiZGVzLmJyIiwiZGV0LmJyIiwiZGV2LmJyIiwiZWNuLmJyIiwiZWNvLmJyIiwiZWR1LmJyIiwiZW1wLmJyIiwiZW5mLmJyIiwiZW5nLmJyIiwiZXNwLmJyIiwiZXRjLmJyIiwi'@; put 'ZXRpLmJyIiwiZmFyLmJyIiwiZmVpcmEuYnIiLCJmbG9nLmJyIiwiZmxvcmlwYS5iciIsImZtLmJyIiwiZm5kLmJyIiwiZm9ydGFsLmJyIiwiZm90LmJyIiwiZm96LmJyIiwiZnN0LmJyIiwiZzEyLmJyIiwiZ2VvLmJyIiwiZ2dmLmJyIiwiZ29pYW5pYS5iciIsImdvdi5iciIsImFjLmdvdi5i'@; put 'ciIsImFsLmdvdi5iciIsImFtLmdvdi5iciIsImFwLmdvdi5iciIsImJhLmdvdi5iciIsImNlLmdvdi5iciIsImRmLmdvdi5iciIsImVzLmdvdi5iciIsImdvLmdvdi5iciIsIm1hLmdvdi5iciIsIm1nLmdvdi5iciIsIm1zLmdvdi5iciIsIm10Lmdvdi5iciIsInBhLmdvdi5iciIsInBiLmdv'@; put 'di5iciIsInBlLmdvdi5iciIsInBpLmdvdi5iciIsInByLmdvdi5iciIsInJqLmdvdi5iciIsInJuLmdvdi5iciIsInJvLmdvdi5iciIsInJyLmdvdi5iciIsInJzLmdvdi5iciIsInNjLmdvdi5iciIsInNlLmdvdi5iciIsInNwLmdvdi5iciIsInRvLmdvdi5iciIsImdydS5iciIsImltYi5i'@; put 'ciIsImluZC5iciIsImluZi5iciIsImphYi5iciIsImphbXBhLmJyIiwiamRmLmJyIiwiam9pbnZpbGxlLmJyIiwiam9yLmJyIiwianVzLmJyIiwibGVnLmJyIiwibGVpbGFvLmJyIiwibGVsLmJyIiwibG9nLmJyIiwibG9uZHJpbmEuYnIiLCJtYWNhcGEuYnIiLCJtYWNlaW8uYnIiLCJtYW5h'@; put 'dXMuYnIiLCJtYXJpbmdhLmJyIiwibWF0LmJyIiwibWVkLmJyIiwibWlsLmJyIiwibW9yZW5hLmJyIiwibXAuYnIiLCJtdXMuYnIiLCJuYXRhbC5iciIsIm5ldC5iciIsIm5pdGVyb2kuYnIiLCIqLm5vbS5iciIsIm5vdC5iciIsIm50ci5iciIsIm9kby5iciIsIm9uZy5iciIsIm9yZy5iciIs'@; put 'Im9zYXNjby5iciIsInBhbG1hcy5iciIsInBvYS5iciIsInBwZy5iciIsInByby5iciIsInBzYy5iciIsInBzaS5iciIsInB2aC5iciIsInFzbC5iciIsInJhZGlvLmJyIiwicmVjLmJyIiwicmVjaWZlLmJyIiwicmVwLmJyIiwicmliZWlyYW8uYnIiLCJyaW8uYnIiLCJyaW9icmFuY28uYnIi'@; put 'LCJyaW9wcmV0by5iciIsInNhbHZhZG9yLmJyIiwic2FtcGEuYnIiLCJzYW50YW1hcmlhLmJyIiwic2FudG9hbmRyZS5iciIsInNhb2Jlcm5hcmRvLmJyIiwic2FvZ29uY2EuYnIiLCJzZWcuYnIiLCJzamMuYnIiLCJzbGcuYnIiLCJzbHouYnIiLCJzb3JvY2FiYS5iciIsInNydi5iciIsInRh'@; put 'eGkuYnIiLCJ0Yy5iciIsInRlYy5iciIsInRlby5iciIsInRoZS5iciIsInRtcC5iciIsInRyZC5iciIsInR1ci5iciIsInR2LmJyIiwidWRpLmJyIiwidmV0LmJyIiwidml4LmJyIiwidmxvZy5iciIsIndpa2kuYnIiLCJ6bGcuYnIiLCJicyIsImNvbS5icyIsImVkdS5icyIsImdvdi5icyIs'@; put 'Im5ldC5icyIsIm9yZy5icyIsImJ0IiwiY29tLmJ0IiwiZWR1LmJ0IiwiZ292LmJ0IiwibmV0LmJ0Iiwib3JnLmJ0IiwiYnYiLCJidyIsImNvLmJ3Iiwib3JnLmJ3IiwiYnkiLCJnb3YuYnkiLCJtaWwuYnkiLCJjb20uYnkiLCJvZi5ieSIsImJ6IiwiY28uYnoiLCJjb20uYnoiLCJlZHUuYnoi'@; put 'LCJnb3YuYnoiLCJuZXQuYnoiLCJvcmcuYnoiLCJjYSIsImFiLmNhIiwiYmMuY2EiLCJtYi5jYSIsIm5iLmNhIiwibmYuY2EiLCJubC5jYSIsIm5zLmNhIiwibnQuY2EiLCJudS5jYSIsIm9uLmNhIiwicGUuY2EiLCJxYy5jYSIsInNrLmNhIiwieWsuY2EiLCJnYy5jYSIsImNhdCIsImNjIiwi'@; put 'Y2QiLCJnb3YuY2QiLCJjZiIsImNnIiwiY2giLCJjaSIsImFjLmNpIiwiYVx4ZTlyb3BvcnQuY2kiLCJhc3NvLmNpIiwiY28uY2kiLCJjb20uY2kiLCJlZC5jaSIsImVkdS5jaSIsImdvLmNpIiwiZ291di5jaSIsImludC5jaSIsIm5ldC5jaSIsIm9yLmNpIiwib3JnLmNpIiwiKi5jayIsIiF3'@; put 'd3cuY2siLCJjbCIsImNvLmNsIiwiZ29iLmNsIiwiZ292LmNsIiwibWlsLmNsIiwiY20iLCJjby5jbSIsImNvbS5jbSIsImdvdi5jbSIsIm5ldC5jbSIsImNuIiwiYWMuY24iLCJjb20uY24iLCJlZHUuY24iLCJnb3YuY24iLCJtaWwuY24iLCJuZXQuY24iLCJvcmcuY24iLCJcdTUxNmNcdTUz'@; put 'ZjguY24iLCJcdTdkYjJcdTdkNjEuY24iLCJcdTdmNTFcdTdlZGMuY24iLCJhaC5jbiIsImJqLmNuIiwiY3EuY24iLCJmai5jbiIsImdkLmNuIiwiZ3MuY24iLCJneC5jbiIsImd6LmNuIiwiaGEuY24iLCJoYi5jbiIsImhlLmNuIiwiaGkuY24iLCJoay5jbiIsImhsLmNuIiwiaG4uY24iLCJq'@; put 'bC5jbiIsImpzLmNuIiwianguY24iLCJsbi5jbiIsIm1vLmNuIiwibm0uY24iLCJueC5jbiIsInFoLmNuIiwic2MuY24iLCJzZC5jbiIsInNoLmNuIiwic24uY24iLCJzeC5jbiIsInRqLmNuIiwidHcuY24iLCJ4ai5jbiIsInh6LmNuIiwieW4uY24iLCJ6ai5jbiIsImNvIiwiY29tLmNvIiwi'@; put 'ZWR1LmNvIiwiZ292LmNvIiwibWlsLmNvIiwibmV0LmNvIiwibm9tLmNvIiwib3JnLmNvIiwiY29tIiwiY29vcCIsImNyIiwiYWMuY3IiLCJjby5jciIsImVkLmNyIiwiZmkuY3IiLCJnby5jciIsIm9yLmNyIiwic2EuY3IiLCJjdSIsImNvbS5jdSIsImVkdS5jdSIsImdvYi5jdSIsImluZi5j'@; put 'dSIsIm5hdC5jdSIsIm5ldC5jdSIsIm9yZy5jdSIsImN2IiwiY29tLmN2IiwiZWR1LmN2IiwiaWQuY3YiLCJpbnQuY3YiLCJuZXQuY3YiLCJub21lLmN2Iiwib3JnLmN2IiwicHVibC5jdiIsImN3IiwiY29tLmN3IiwiZWR1LmN3IiwibmV0LmN3Iiwib3JnLmN3IiwiY3giLCJnb3YuY3giLCJj'@; put 'eSIsImFjLmN5IiwiYml6LmN5IiwiY29tLmN5IiwiZWtsb2dlcy5jeSIsImdvdi5jeSIsImx0ZC5jeSIsIm1pbC5jeSIsIm5ldC5jeSIsIm9yZy5jeSIsInByZXNzLmN5IiwicHJvLmN5IiwidG0uY3kiLCJjeiIsImRlIiwiZGoiLCJkayIsImRtIiwiY28uZG0iLCJjb20uZG0iLCJlZHUuZG0i'@; put 'LCJnb3YuZG0iLCJuZXQuZG0iLCJvcmcuZG0iLCJkbyIsImFydC5kbyIsImNvbS5kbyIsImVkdS5kbyIsImdvYi5kbyIsImdvdi5kbyIsIm1pbC5kbyIsIm5ldC5kbyIsIm9yZy5kbyIsInNsZC5kbyIsIndlYi5kbyIsImR6IiwiYXJ0LmR6IiwiYXNzby5keiIsImNvbS5keiIsImVkdS5keiIs'@; put 'Imdvdi5keiIsIm5ldC5keiIsIm9yZy5keiIsInBvbC5keiIsInNvYy5keiIsInRtLmR6IiwiZWMiLCJjb20uZWMiLCJlZHUuZWMiLCJmaW4uZWMiLCJnb2IuZWMiLCJnb3YuZWMiLCJpbmZvLmVjIiwiazEyLmVjIiwibWVkLmVjIiwibWlsLmVjIiwibmV0LmVjIiwib3JnLmVjIiwicHJvLmVj'@; put 'IiwiZWR1IiwiZWUiLCJhaXAuZWUiLCJjb20uZWUiLCJlZHUuZWUiLCJmaWUuZWUiLCJnb3YuZWUiLCJsaWIuZWUiLCJtZWQuZWUiLCJvcmcuZWUiLCJwcmkuZWUiLCJyaWlrLmVlIiwiZWciLCJhYy5lZyIsImNvbS5lZyIsImVkdS5lZyIsImV1bi5lZyIsImdvdi5lZyIsImluZm8uZWciLCJt'@; put 'ZS5lZyIsIm1pbC5lZyIsIm5hbWUuZWciLCJuZXQuZWciLCJvcmcuZWciLCJzY2kuZWciLCJzcG9ydC5lZyIsInR2LmVnIiwiKi5lciIsImVzIiwiY29tLmVzIiwiZWR1LmVzIiwiZ29iLmVzIiwibm9tLmVzIiwib3JnLmVzIiwiZXQiLCJiaXouZXQiLCJjb20uZXQiLCJlZHUuZXQiLCJnb3Yu'@; put 'ZXQiLCJpbmZvLmV0IiwibmFtZS5ldCIsIm5ldC5ldCIsIm9yZy5ldCIsImV1IiwiZmkiLCJhbGFuZC5maSIsImZqIiwiYWMuZmoiLCJiaXouZmoiLCJjb20uZmoiLCJnb3YuZmoiLCJpbmZvLmZqIiwibWlsLmZqIiwibmFtZS5maiIsIm5ldC5maiIsIm9yZy5maiIsInByby5maiIsIiouZmsi'@; put 'LCJmbSIsImNvbS5mbSIsImVkdS5mbSIsIm5ldC5mbSIsIm9yZy5mbSIsImZvIiwiZnIiLCJhc3NvLmZyIiwiY29tLmZyIiwiZ291di5mciIsIm5vbS5mciIsInByZC5mciIsInRtLmZyIiwiYXZvdWVzLmZyIiwiY2NpLmZyIiwiZ3JldGEuZnIiLCJodWlzc2llci1qdXN0aWNlLmZyIiwiZ2Ei'@; put 'LCJnYiIsImdkIiwiZWR1LmdkIiwiZ292LmdkIiwiZ2UiLCJjb20uZ2UiLCJlZHUuZ2UiLCJnb3YuZ2UiLCJuZXQuZ2UiLCJvcmcuZ2UiLCJwdnQuZ2UiLCJzY2hvb2wuZ2UiLCJnZiIsImdnIiwiY28uZ2ciLCJuZXQuZ2ciLCJvcmcuZ2ciLCJnaCIsImNvbS5naCIsImVkdS5naCIsImdvdi5n'@; put 'aCIsIm1pbC5naCIsIm9yZy5naCIsImdpIiwiY29tLmdpIiwiZWR1LmdpIiwiZ292LmdpIiwibHRkLmdpIiwibW9kLmdpIiwib3JnLmdpIiwiZ2wiLCJjby5nbCIsImNvbS5nbCIsImVkdS5nbCIsIm5ldC5nbCIsIm9yZy5nbCIsImdtIiwiZ24iLCJhYy5nbiIsImNvbS5nbiIsImVkdS5nbiIs'@; put 'Imdvdi5nbiIsIm5ldC5nbiIsIm9yZy5nbiIsImdvdiIsImdwIiwiYXNzby5ncCIsImNvbS5ncCIsImVkdS5ncCIsIm1vYmkuZ3AiLCJuZXQuZ3AiLCJvcmcuZ3AiLCJncSIsImdyIiwiY29tLmdyIiwiZWR1LmdyIiwiZ292LmdyIiwibmV0LmdyIiwib3JnLmdyIiwiZ3MiLCJndCIsImNvbS5n'@; put 'dCIsImVkdS5ndCIsImdvYi5ndCIsImluZC5ndCIsIm1pbC5ndCIsIm5ldC5ndCIsIm9yZy5ndCIsImd1IiwiY29tLmd1IiwiZWR1Lmd1IiwiZ292Lmd1IiwiZ3VhbS5ndSIsImluZm8uZ3UiLCJuZXQuZ3UiLCJvcmcuZ3UiLCJ3ZWIuZ3UiLCJndyIsImd5IiwiY28uZ3kiLCJjb20uZ3kiLCJl'@; put 'ZHUuZ3kiLCJnb3YuZ3kiLCJuZXQuZ3kiLCJvcmcuZ3kiLCJoayIsImNvbS5oayIsImVkdS5oayIsImdvdi5oayIsImlkdi5oayIsIm5ldC5oayIsIm9yZy5oayIsIlx1NGUyYVx1NGViYS5oayIsIlx1NTAwYlx1NGViYS5oayIsIlx1NTE2Y1x1NTNmOC5oayIsIlx1NjUzZlx1NWU5Yy5oayIs'@; put 'Ilx1NjU0ZVx1ODBiMi5oayIsIlx1NjU1OVx1ODBiMi5oayIsIlx1N2I4N1x1NGViYS5oayIsIlx1N2Q0NFx1N2U1NC5oayIsIlx1N2Q0NFx1N2VjNy5oayIsIlx1N2RiMlx1N2Q2MS5oayIsIlx1N2RiMlx1N2VkYy5oayIsIlx1N2VjNFx1N2U1NC5oayIsIlx1N2VjNFx1N2VjNy5oayIsIlx1'@; put 'N2Y1MVx1N2Q2MS5oayIsIlx1N2Y1MVx1N2VkYy5oayIsImhtIiwiaG4iLCJjb20uaG4iLCJlZHUuaG4iLCJnb2IuaG4iLCJtaWwuaG4iLCJuZXQuaG4iLCJvcmcuaG4iLCJociIsImNvbS5ociIsImZyb20uaHIiLCJpei5ociIsIm5hbWUuaHIiLCJodCIsImFkdWx0Lmh0IiwiYXJ0Lmh0Iiwi'@; put 'YXNzby5odCIsImNvbS5odCIsImNvb3AuaHQiLCJlZHUuaHQiLCJmaXJtLmh0IiwiZ291di5odCIsImluZm8uaHQiLCJtZWQuaHQiLCJuZXQuaHQiLCJvcmcuaHQiLCJwZXJzby5odCIsInBvbC5odCIsInByby5odCIsInJlbC5odCIsInNob3AuaHQiLCJodSIsIjIwMDAuaHUiLCJhZ3Jhci5o'@; put 'dSIsImJvbHQuaHUiLCJjYXNpbm8uaHUiLCJjaXR5Lmh1IiwiY28uaHUiLCJlcm90aWNhLmh1IiwiZXJvdGlrYS5odSIsImZpbG0uaHUiLCJmb3J1bS5odSIsImdhbWVzLmh1IiwiaG90ZWwuaHUiLCJpbmZvLmh1IiwiaW5nYXRsYW4uaHUiLCJqb2dhc3ouaHUiLCJrb255dmVsby5odSIsImxh'@; put 'a2FzLmh1IiwibWVkaWEuaHUiLCJuZXdzLmh1Iiwib3JnLmh1IiwicHJpdi5odSIsInJla2xhbS5odSIsInNleC5odSIsInNob3AuaHUiLCJzcG9ydC5odSIsInN1bGkuaHUiLCJzemV4Lmh1IiwidG0uaHUiLCJ0b3pzZGUuaHUiLCJ1dGF6YXMuaHUiLCJ2aWRlby5odSIsImlkIiwiYWMuaWQi'@; put 'LCJiaXouaWQiLCJjby5pZCIsImRlc2EuaWQiLCJnby5pZCIsIm1pbC5pZCIsIm15LmlkIiwibmV0LmlkIiwib3IuaWQiLCJwb25wZXMuaWQiLCJzY2guaWQiLCJ3ZWIuaWQiLCJpZSIsImdvdi5pZSIsImlsIiwiYWMuaWwiLCJjby5pbCIsImdvdi5pbCIsImlkZi5pbCIsImsxMi5pbCIsIm11'@; put 'bmkuaWwiLCJuZXQuaWwiLCJvcmcuaWwiLCJcdTA1ZDlcdTA1ZTlcdTA1ZThcdTA1ZDBcdTA1ZGMiLCJcdTA1ZDBcdTA1ZTdcdTA1ZDNcdTA1ZGVcdTA1ZDlcdTA1ZDQuXHUwNWQ5XHUwNWU5XHUwNWU4XHUwNWQwXHUwNWRjIiwiXHUwNWQ5XHUwNWU5XHUwNWQ1XHUwNWQxLlx1MDVkOVx1MDVl'@; put 'OVx1MDVlOFx1MDVkMFx1MDVkYyIsIlx1MDVlNlx1MDVkNFx1MDVkYy5cdTA1ZDlcdTA1ZTlcdTA1ZThcdTA1ZDBcdTA1ZGMiLCJcdTA1ZGVcdTA1ZGVcdTA1ZTlcdTA1ZGMuXHUwNWQ5XHUwNWU5XHUwNWU4XHUwNWQwXHUwNWRjIiwiaW0iLCJhYy5pbSIsImNvLmltIiwibHRkLmNvLmltIiwi'@; put 'cGxjLmNvLmltIiwiY29tLmltIiwibmV0LmltIiwib3JnLmltIiwidHQuaW0iLCJ0di5pbSIsImluIiwiNWcuaW4iLCI2Zy5pbiIsImFjLmluIiwiYWkuaW4iLCJhbS5pbiIsImJpaGFyLmluIiwiYml6LmluIiwiYnVzaW5lc3MuaW4iLCJjYS5pbiIsImNuLmluIiwiY28uaW4iLCJjb20uaW4i'@; put 'LCJjb29wLmluIiwiY3MuaW4iLCJkZWxoaS5pbiIsImRyLmluIiwiZWR1LmluIiwiZXIuaW4iLCJmaXJtLmluIiwiZ2VuLmluIiwiZ292LmluIiwiZ3VqYXJhdC5pbiIsImluZC5pbiIsImluZm8uaW4iLCJpbnQuaW4iLCJpbnRlcm5ldC5pbiIsImlvLmluIiwibWUuaW4iLCJtaWwuaW4iLCJu'@; put 'ZXQuaW4iLCJuaWMuaW4iLCJvcmcuaW4iLCJwZy5pbiIsInBvc3QuaW4iLCJwcm8uaW4iLCJyZXMuaW4iLCJ0cmF2ZWwuaW4iLCJ0di5pbiIsInVrLmluIiwidXAuaW4iLCJ1cy5pbiIsImluZm8iLCJpbnQiLCJldS5pbnQiLCJpbyIsImNvLmlvIiwiY29tLmlvIiwiZWR1LmlvIiwiZ292Lmlv'@; put 'IiwibWlsLmlvIiwibmV0LmlvIiwibm9tLmlvIiwib3JnLmlvIiwiaXEiLCJjb20uaXEiLCJlZHUuaXEiLCJnb3YuaXEiLCJtaWwuaXEiLCJuZXQuaXEiLCJvcmcuaXEiLCJpciIsImFjLmlyIiwiY28uaXIiLCJnb3YuaXIiLCJpZC5pciIsIm5ldC5pciIsIm9yZy5pciIsInNjaC5pciIsIlx1'@; put 'MDYyN1x1MDZjY1x1MDYzMVx1MDYyN1x1MDY0Ni5pciIsIlx1MDYyN1x1MDY0YVx1MDYzMVx1MDYyN1x1MDY0Ni5pciIsImlzIiwiaXQiLCJlZHUuaXQiLCJnb3YuaXQiLCJhYnIuaXQiLCJhYnJ1enpvLml0IiwiYW9zdGEtdmFsbGV5Lml0IiwiYW9zdGF2YWxsZXkuaXQiLCJiYXMuaXQiLCJi'@; put 'YXNpbGljYXRhLml0IiwiY2FsLml0IiwiY2FsYWJyaWEuaXQiLCJjYW0uaXQiLCJjYW1wYW5pYS5pdCIsImVtaWxpYS1yb21hZ25hLml0IiwiZW1pbGlhcm9tYWduYS5pdCIsImVtci5pdCIsImZyaXVsaS12LWdpdWxpYS5pdCIsImZyaXVsaS12ZS1naXVsaWEuaXQiLCJmcml1bGktdmVnaXVs'@; put 'aWEuaXQiLCJmcml1bGktdmVuZXppYS1naXVsaWEuaXQiLCJmcml1bGktdmVuZXppYWdpdWxpYS5pdCIsImZyaXVsaS12Z2l1bGlhLml0IiwiZnJpdWxpdi1naXVsaWEuaXQiLCJmcml1bGl2ZS1naXVsaWEuaXQiLCJmcml1bGl2ZWdpdWxpYS5pdCIsImZyaXVsaXZlbmV6aWEtZ2l1bGlhLml0'@; put 'IiwiZnJpdWxpdmVuZXppYWdpdWxpYS5pdCIsImZyaXVsaXZnaXVsaWEuaXQiLCJmdmcuaXQiLCJsYXouaXQiLCJsYXppby5pdCIsImxpZy5pdCIsImxpZ3VyaWEuaXQiLCJsb20uaXQiLCJsb21iYXJkaWEuaXQiLCJsb21iYXJkeS5pdCIsImx1Y2FuaWEuaXQiLCJtYXIuaXQiLCJtYXJjaGUu'@; put 'aXQiLCJtb2wuaXQiLCJtb2xpc2UuaXQiLCJwaWVkbW9udC5pdCIsInBpZW1vbnRlLml0IiwicG1uLml0IiwicHVnLml0IiwicHVnbGlhLml0Iiwic2FyLml0Iiwic2FyZGVnbmEuaXQiLCJzYXJkaW5pYS5pdCIsInNpYy5pdCIsInNpY2lsaWEuaXQiLCJzaWNpbHkuaXQiLCJ0YWEuaXQiLCJ0'@; put 'b3MuaXQiLCJ0b3NjYW5hLml0IiwidHJlbnRpbi1zdWQtdGlyb2wuaXQiLCJ0cmVudGluLXNceGZjZC10aXJvbC5pdCIsInRyZW50aW4tc3VkdGlyb2wuaXQiLCJ0cmVudGluLXNceGZjZHRpcm9sLml0IiwidHJlbnRpbi1zdWVkLXRpcm9sLml0IiwidHJlbnRpbi1zdWVkdGlyb2wuaXQiLCJ0'@; put 'cmVudGluby5pdCIsInRyZW50aW5vLWEtYWRpZ2UuaXQiLCJ0cmVudGluby1hYWRpZ2UuaXQiLCJ0cmVudGluby1hbHRvLWFkaWdlLml0IiwidHJlbnRpbm8tYWx0b2FkaWdlLml0IiwidHJlbnRpbm8tcy10aXJvbC5pdCIsInRyZW50aW5vLXN0aXJvbC5pdCIsInRyZW50aW5vLXN1ZC10aXJv'@; put 'bC5pdCIsInRyZW50aW5vLXNceGZjZC10aXJvbC5pdCIsInRyZW50aW5vLXN1ZHRpcm9sLml0IiwidHJlbnRpbm8tc1x4ZmNkdGlyb2wuaXQiLCJ0cmVudGluby1zdWVkLXRpcm9sLml0IiwidHJlbnRpbm8tc3VlZHRpcm9sLml0IiwidHJlbnRpbm9hLWFkaWdlLml0IiwidHJlbnRpbm9hYWRp'@; put 'Z2UuaXQiLCJ0cmVudGlub2FsdG8tYWRpZ2UuaXQiLCJ0cmVudGlub2FsdG9hZGlnZS5pdCIsInRyZW50aW5vcy10aXJvbC5pdCIsInRyZW50aW5vc3Rpcm9sLml0IiwidHJlbnRpbm9zdWQtdGlyb2wuaXQiLCJ0cmVudGlub3NceGZjZC10aXJvbC5pdCIsInRyZW50aW5vc3VkdGlyb2wuaXQi'@; put 'LCJ0cmVudGlub3NceGZjZHRpcm9sLml0IiwidHJlbnRpbm9zdWVkLXRpcm9sLml0IiwidHJlbnRpbm9zdWVkdGlyb2wuaXQiLCJ0cmVudGluc3VkLXRpcm9sLml0IiwidHJlbnRpbnNceGZjZC10aXJvbC5pdCIsInRyZW50aW5zdWR0aXJvbC5pdCIsInRyZW50aW5zXHhmY2R0aXJvbC5pdCIs'@; put 'InRyZW50aW5zdWVkLXRpcm9sLml0IiwidHJlbnRpbnN1ZWR0aXJvbC5pdCIsInR1c2NhbnkuaXQiLCJ1bWIuaXQiLCJ1bWJyaWEuaXQiLCJ2YWwtZC1hb3N0YS5pdCIsInZhbC1kYW9zdGEuaXQiLCJ2YWxkLWFvc3RhLml0IiwidmFsZGFvc3RhLml0IiwidmFsbGUtYW9zdGEuaXQiLCJ2YWxs'@; put 'ZS1kLWFvc3RhLml0IiwidmFsbGUtZGFvc3RhLml0IiwidmFsbGVhb3N0YS5pdCIsInZhbGxlZC1hb3N0YS5pdCIsInZhbGxlZGFvc3RhLml0IiwidmFsbGVlLWFvc3RlLml0IiwidmFsbFx4ZTllLWFvc3RlLml0IiwidmFsbGVlLWQtYW9zdGUuaXQiLCJ2YWxsXHhlOWUtZC1hb3N0ZS5pdCIs'@; put 'InZhbGxlZWFvc3RlLml0IiwidmFsbFx4ZTllYW9zdGUuaXQiLCJ2YWxsZWVkYW9zdGUuaXQiLCJ2YWxsXHhlOWVkYW9zdGUuaXQiLCJ2YW8uaXQiLCJ2ZGEuaXQiLCJ2ZW4uaXQiLCJ2ZW5ldG8uaXQiLCJhZy5pdCIsImFncmlnZW50by5pdCIsImFsLml0IiwiYWxlc3NhbmRyaWEuaXQiLCJh'@; put 'bHRvLWFkaWdlLml0IiwiYWx0b2FkaWdlLml0IiwiYW4uaXQiLCJhbmNvbmEuaXQiLCJhbmRyaWEtYmFybGV0dGEtdHJhbmkuaXQiLCJhbmRyaWEtdHJhbmktYmFybGV0dGEuaXQiLCJhbmRyaWFiYXJsZXR0YXRyYW5pLml0IiwiYW5kcmlhdHJhbmliYXJsZXR0YS5pdCIsImFvLml0IiwiYW9z'@; put 'dGEuaXQiLCJhb3N0ZS5pdCIsImFwLml0IiwiYXEuaXQiLCJhcXVpbGEuaXQiLCJhci5pdCIsImFyZXp6by5pdCIsImFzY29saS1waWNlbm8uaXQiLCJhc2NvbGlwaWNlbm8uaXQiLCJhc3RpLml0IiwiYXQuaXQiLCJhdi5pdCIsImF2ZWxsaW5vLml0IiwiYmEuaXQiLCJiYWxzYW4uaXQiLCJi'@; put 'YWxzYW4tc3VkdGlyb2wuaXQiLCJiYWxzYW4tc1x4ZmNkdGlyb2wuaXQiLCJiYWxzYW4tc3VlZHRpcm9sLml0IiwiYmFyaS5pdCIsImJhcmxldHRhLXRyYW5pLWFuZHJpYS5pdCIsImJhcmxldHRhdHJhbmlhbmRyaWEuaXQiLCJiZWxsdW5vLml0IiwiYmVuZXZlbnRvLml0IiwiYmVyZ2Ftby5p'@; put 'dCIsImJnLml0IiwiYmkuaXQiLCJiaWVsbGEuaXQiLCJibC5pdCIsImJuLml0IiwiYm8uaXQiLCJib2xvZ25hLml0IiwiYm9semFuby5pdCIsImJvbHphbm8tYWx0b2FkaWdlLml0IiwiYm96ZW4uaXQiLCJib3plbi1zdWR0aXJvbC5pdCIsImJvemVuLXNceGZjZHRpcm9sLml0IiwiYm96ZW4t'@; put 'c3VlZHRpcm9sLml0IiwiYnIuaXQiLCJicmVzY2lhLml0IiwiYnJpbmRpc2kuaXQiLCJicy5pdCIsImJ0Lml0IiwiYnVsc2FuLml0IiwiYnVsc2FuLXN1ZHRpcm9sLml0IiwiYnVsc2FuLXNceGZjZHRpcm9sLml0IiwiYnVsc2FuLXN1ZWR0aXJvbC5pdCIsImJ6Lml0IiwiY2EuaXQiLCJjYWds'@; put 'aWFyaS5pdCIsImNhbHRhbmlzc2V0dGEuaXQiLCJjYW1waWRhbm8tbWVkaW8uaXQiLCJjYW1waWRhbm9tZWRpby5pdCIsImNhbXBvYmFzc28uaXQiLCJjYXJib25pYS1pZ2xlc2lhcy5pdCIsImNhcmJvbmlhaWdsZXNpYXMuaXQiLCJjYXJyYXJhLW1hc3NhLml0IiwiY2FycmFyYW1hc3NhLml0'@; put 'IiwiY2FzZXJ0YS5pdCIsImNhdGFuaWEuaXQiLCJjYXRhbnphcm8uaXQiLCJjYi5pdCIsImNlLml0IiwiY2VzZW5hLWZvcmxpLml0IiwiY2VzZW5hLWZvcmxceGVjLml0IiwiY2VzZW5hZm9ybGkuaXQiLCJjZXNlbmFmb3JsXHhlYy5pdCIsImNoLml0IiwiY2hpZXRpLml0IiwiY2kuaXQiLCJj'@; put 'bC5pdCIsImNuLml0IiwiY28uaXQiLCJjb21vLml0IiwiY29zZW56YS5pdCIsImNyLml0IiwiY3JlbW9uYS5pdCIsImNyb3RvbmUuaXQiLCJjcy5pdCIsImN0Lml0IiwiY3VuZW8uaXQiLCJjei5pdCIsImRlbGwtb2dsaWFzdHJhLml0IiwiZGVsbG9nbGlhc3RyYS5pdCIsImVuLml0IiwiZW5u'@; put 'YS5pdCIsImZjLml0IiwiZmUuaXQiLCJmZXJtby5pdCIsImZlcnJhcmEuaXQiLCJmZy5pdCIsImZpLml0IiwiZmlyZW56ZS5pdCIsImZsb3JlbmNlLml0IiwiZm0uaXQiLCJmb2dnaWEuaXQiLCJmb3JsaS1jZXNlbmEuaXQiLCJmb3JsXHhlYy1jZXNlbmEuaXQiLCJmb3JsaWNlc2VuYS5pdCIs'@; put 'ImZvcmxceGVjY2VzZW5hLml0IiwiZnIuaXQiLCJmcm9zaW5vbmUuaXQiLCJnZS5pdCIsImdlbm9hLml0IiwiZ2Vub3ZhLml0IiwiZ28uaXQiLCJnb3JpemlhLml0IiwiZ3IuaXQiLCJncm9zc2V0by5pdCIsImlnbGVzaWFzLWNhcmJvbmlhLml0IiwiaWdsZXNpYXNjYXJib25pYS5pdCIsImlt'@; put 'Lml0IiwiaW1wZXJpYS5pdCIsImlzLml0IiwiaXNlcm5pYS5pdCIsImtyLml0IiwibGEtc3BlemlhLml0IiwibGFxdWlsYS5pdCIsImxhc3BlemlhLml0IiwibGF0aW5hLml0IiwibGMuaXQiLCJsZS5pdCIsImxlY2NlLml0IiwibGVjY28uaXQiLCJsaS5pdCIsImxpdm9ybm8uaXQiLCJsby5p'@; put 'dCIsImxvZGkuaXQiLCJsdC5pdCIsImx1Lml0IiwibHVjY2EuaXQiLCJtYWNlcmF0YS5pdCIsIm1hbnRvdmEuaXQiLCJtYXNzYS1jYXJyYXJhLml0IiwibWFzc2FjYXJyYXJhLml0IiwibWF0ZXJhLml0IiwibWIuaXQiLCJtYy5pdCIsIm1lLml0IiwibWVkaW8tY2FtcGlkYW5vLml0IiwibWVk'@; put 'aW9jYW1waWRhbm8uaXQiLCJtZXNzaW5hLml0IiwibWkuaXQiLCJtaWxhbi5pdCIsIm1pbGFuby5pdCIsIm1uLml0IiwibW8uaXQiLCJtb2RlbmEuaXQiLCJtb256YS5pdCIsIm1vbnphLWJyaWFuemEuaXQiLCJtb256YS1lLWRlbGxhLWJyaWFuemEuaXQiLCJtb256YWJyaWFuemEuaXQiLCJt'@; put 'b256YWVicmlhbnphLml0IiwibW9uemFlZGVsbGFicmlhbnphLml0IiwibXMuaXQiLCJtdC5pdCIsIm5hLml0IiwibmFwbGVzLml0IiwibmFwb2xpLml0Iiwibm8uaXQiLCJub3ZhcmEuaXQiLCJudS5pdCIsIm51b3JvLml0Iiwib2cuaXQiLCJvZ2xpYXN0cmEuaXQiLCJvbGJpYS10ZW1waW8u'@; put 'aXQiLCJvbGJpYXRlbXBpby5pdCIsIm9yLml0Iiwib3Jpc3Rhbm8uaXQiLCJvdC5pdCIsInBhLml0IiwicGFkb3ZhLml0IiwicGFkdWEuaXQiLCJwYWxlcm1vLml0IiwicGFybWEuaXQiLCJwYXZpYS5pdCIsInBjLml0IiwicGQuaXQiLCJwZS5pdCIsInBlcnVnaWEuaXQiLCJwZXNhcm8tdXJi'@; put 'aW5vLml0IiwicGVzYXJvdXJiaW5vLml0IiwicGVzY2FyYS5pdCIsInBnLml0IiwicGkuaXQiLCJwaWFjZW56YS5pdCIsInBpc2EuaXQiLCJwaXN0b2lhLml0IiwicG4uaXQiLCJwby5pdCIsInBvcmRlbm9uZS5pdCIsInBvdGVuemEuaXQiLCJwci5pdCIsInByYXRvLml0IiwicHQuaXQiLCJw'@; put 'dS5pdCIsInB2Lml0IiwicHouaXQiLCJyYS5pdCIsInJhZ3VzYS5pdCIsInJhdmVubmEuaXQiLCJyYy5pdCIsInJlLml0IiwicmVnZ2lvLWNhbGFicmlhLml0IiwicmVnZ2lvLWVtaWxpYS5pdCIsInJlZ2dpb2NhbGFicmlhLml0IiwicmVnZ2lvZW1pbGlhLml0IiwicmcuaXQiLCJyaS5pdCIs'@; put 'InJpZXRpLml0IiwicmltaW5pLml0Iiwicm0uaXQiLCJybi5pdCIsInJvLml0Iiwicm9tYS5pdCIsInJvbWUuaXQiLCJyb3ZpZ28uaXQiLCJzYS5pdCIsInNhbGVybm8uaXQiLCJzYXNzYXJpLml0Iiwic2F2b25hLml0Iiwic2kuaXQiLCJzaWVuYS5pdCIsInNpcmFjdXNhLml0Iiwic28uaXQi'@; put 'LCJzb25kcmlvLml0Iiwic3AuaXQiLCJzci5pdCIsInNzLml0Iiwic1x4ZmNkdGlyb2wuaXQiLCJzdWVkdGlyb2wuaXQiLCJzdi5pdCIsInRhLml0IiwidGFyYW50by5pdCIsInRlLml0IiwidGVtcGlvLW9sYmlhLml0IiwidGVtcGlvb2xiaWEuaXQiLCJ0ZXJhbW8uaXQiLCJ0ZXJuaS5pdCIs'@; put 'InRuLml0IiwidG8uaXQiLCJ0b3Jpbm8uaXQiLCJ0cC5pdCIsInRyLml0IiwidHJhbmktYW5kcmlhLWJhcmxldHRhLml0IiwidHJhbmktYmFybGV0dGEtYW5kcmlhLml0IiwidHJhbmlhbmRyaWFiYXJsZXR0YS5pdCIsInRyYW5pYmFybGV0dGFhbmRyaWEuaXQiLCJ0cmFwYW5pLml0IiwidHJl'@; put 'bnRvLml0IiwidHJldmlzby5pdCIsInRyaWVzdGUuaXQiLCJ0cy5pdCIsInR1cmluLml0IiwidHYuaXQiLCJ1ZC5pdCIsInVkaW5lLml0IiwidXJiaW5vLXBlc2Fyby5pdCIsInVyYmlub3Blc2Fyby5pdCIsInZhLml0IiwidmFyZXNlLml0IiwidmIuaXQiLCJ2Yy5pdCIsInZlLml0IiwidmVu'@; put 'ZXppYS5pdCIsInZlbmljZS5pdCIsInZlcmJhbmlhLml0IiwidmVyY2VsbGkuaXQiLCJ2ZXJvbmEuaXQiLCJ2aS5pdCIsInZpYm8tdmFsZW50aWEuaXQiLCJ2aWJvdmFsZW50aWEuaXQiLCJ2aWNlbnphLml0Iiwidml0ZXJiby5pdCIsInZyLml0IiwidnMuaXQiLCJ2dC5pdCIsInZ2Lml0Iiwi'@; put 'amUiLCJjby5qZSIsIm5ldC5qZSIsIm9yZy5qZSIsIiouam0iLCJqbyIsImFncmkuam8iLCJhaS5qbyIsImNvbS5qbyIsImVkdS5qbyIsImVuZy5qbyIsImZtLmpvIiwiZ292LmpvIiwibWlsLmpvIiwibmV0LmpvIiwib3JnLmpvIiwicGVyLmpvIiwicGhkLmpvIiwic2NoLmpvIiwidHYuam8i'@; put 'LCJqb2JzIiwianAiLCJhYy5qcCIsImFkLmpwIiwiY28uanAiLCJlZC5qcCIsImdvLmpwIiwiZ3IuanAiLCJsZy5qcCIsIm5lLmpwIiwib3IuanAiLCJhaWNoaS5qcCIsImFraXRhLmpwIiwiYW9tb3JpLmpwIiwiY2hpYmEuanAiLCJlaGltZS5qcCIsImZ1a3VpLmpwIiwiZnVrdW9rYS5qcCIs'@; put 'ImZ1a3VzaGltYS5qcCIsImdpZnUuanAiLCJndW5tYS5qcCIsImhpcm9zaGltYS5qcCIsImhva2thaWRvLmpwIiwiaHlvZ28uanAiLCJpYmFyYWtpLmpwIiwiaXNoaWthd2EuanAiLCJpd2F0ZS5qcCIsImthZ2F3YS5qcCIsImthZ29zaGltYS5qcCIsImthbmFnYXdhLmpwIiwia29jaGkuanAi'@; put 'LCJrdW1hbW90by5qcCIsImt5b3RvLmpwIiwibWllLmpwIiwibWl5YWdpLmpwIiwibWl5YXpha2kuanAiLCJuYWdhbm8uanAiLCJuYWdhc2FraS5qcCIsIm5hcmEuanAiLCJuaWlnYXRhLmpwIiwib2l0YS5qcCIsIm9rYXlhbWEuanAiLCJva2luYXdhLmpwIiwib3Nha2EuanAiLCJzYWdhLmpw'@; put 'Iiwic2FpdGFtYS5qcCIsInNoaWdhLmpwIiwic2hpbWFuZS5qcCIsInNoaXp1b2thLmpwIiwidG9jaGlnaS5qcCIsInRva3VzaGltYS5qcCIsInRva3lvLmpwIiwidG90dG9yaS5qcCIsInRveWFtYS5qcCIsIndha2F5YW1hLmpwIiwieWFtYWdhdGEuanAiLCJ5YW1hZ3VjaGkuanAiLCJ5YW1h'@; put 'bmFzaGkuanAiLCJcdTRlMDlcdTkxY2QuanAiLCJcdTRlYWNcdTkwZmQuanAiLCJcdTRmNTBcdThjYzAuanAiLCJcdTUxNzVcdTVlYWIuanAiLCJcdTUzMTdcdTZkNzdcdTkwNTMuanAiLCJcdTUzNDNcdTg0NDkuanAiLCJcdTU0OGNcdTZiNGNcdTVjNzEuanAiLCJcdTU3ZmNcdTczODkuanAi'@; put 'LCJcdTU5MjdcdTUyMDYuanAiLCJcdTU5MjdcdTk2MmEuanAiLCJcdTU5NDhcdTgyNmYuanAiLCJcdTViYWVcdTU3Y2UuanAiLCJcdTViYWVcdTVkMGUuanAiLCJcdTViY2NcdTVjNzEuanAiLCJcdTVjNzFcdTUzZTMuanAiLCJcdTVjNzFcdTVmNjIuanAiLCJcdTVjNzFcdTY4YTguanAiLCJc'@; put 'dTVjOTBcdTk2MWMuanAiLCJcdTVjYTFcdTVjNzEuanAiLCJcdTVjYTlcdTYyNGIuanAiLCJcdTVjZjZcdTY4MzkuanAiLCJcdTVlODNcdTVjZjYuanAiLCJcdTVmYjNcdTVjZjYuanAiLCJcdTYxMWJcdTVhOWIuanAiLCJcdTYxMWJcdTc3ZTUuanAiLCJcdTY1YjBcdTZmNWYuanAiLCJcdTY3'@; put 'NzFcdTRlYWMuanAiLCJcdTY4MDNcdTY3MjguanAiLCJcdTZjOTZcdTdlMDQuanAiLCJcdTZlY2JcdThjYzAuanAiLCJcdTcxOGFcdTY3MmMuanAiLCJcdTc3ZjNcdTVkZGQuanAiLCJcdTc5NWVcdTU5NDhcdTVkZGQuanAiLCJcdTc5OGZcdTRlOTUuanAiLCJcdTc5OGZcdTVjYTEuanAiLCJc'@; put 'dTc5OGZcdTVjZjYuanAiLCJcdTc5Y2JcdTc1MzAuanAiLCJcdTdmYTRcdTk5YWMuanAiLCJcdTgzMjhcdTU3Y2UuanAiLCJcdTk1NzdcdTVkMGUuanAiLCJcdTk1NzdcdTkxY2UuanAiLCJcdTk3NTJcdTY4ZWUuanAiLCJcdTk3NTlcdTVjYTEuanAiLCJcdTk5OTlcdTVkZGQuanAiLCJcdTlh'@; put 'ZDhcdTc3ZTUuanAiLCJcdTljZTVcdTUzZDYuanAiLCJcdTllN2ZcdTUxNTBcdTVjZjYuanAiLCIqLmthd2FzYWtpLmpwIiwiIWNpdHkua2F3YXNha2kuanAiLCIqLmtpdGFreXVzaHUuanAiLCIhY2l0eS5raXRha3l1c2h1LmpwIiwiKi5rb2JlLmpwIiwiIWNpdHkua29iZS5qcCIsIioubmFn'@; put 'b3lhLmpwIiwiIWNpdHkubmFnb3lhLmpwIiwiKi5zYXBwb3JvLmpwIiwiIWNpdHkuc2FwcG9yby5qcCIsIiouc2VuZGFpLmpwIiwiIWNpdHkuc2VuZGFpLmpwIiwiKi55b2tvaGFtYS5qcCIsIiFjaXR5Lnlva29oYW1hLmpwIiwiYWlzYWkuYWljaGkuanAiLCJhbWEuYWljaGkuanAiLCJhbmpv'@; put 'LmFpY2hpLmpwIiwiYXN1a2UuYWljaGkuanAiLCJjaGlyeXUuYWljaGkuanAiLCJjaGl0YS5haWNoaS5qcCIsImZ1c28uYWljaGkuanAiLCJnYW1hZ29yaS5haWNoaS5qcCIsImhhbmRhLmFpY2hpLmpwIiwiaGF6dS5haWNoaS5qcCIsImhla2luYW4uYWljaGkuanAiLCJoaWdhc2hpdXJhLmFp'@; put 'Y2hpLmpwIiwiaWNoaW5vbWl5YS5haWNoaS5qcCIsImluYXphd2EuYWljaGkuanAiLCJpbnV5YW1hLmFpY2hpLmpwIiwiaXNzaGlraS5haWNoaS5qcCIsIml3YWt1cmEuYWljaGkuanAiLCJrYW5pZS5haWNoaS5qcCIsImthcml5YS5haWNoaS5qcCIsImthc3VnYWkuYWljaGkuanAiLCJraXJh'@; put 'LmFpY2hpLmpwIiwia2l5b3N1LmFpY2hpLmpwIiwia29tYWtpLmFpY2hpLmpwIiwia29uYW4uYWljaGkuanAiLCJrb3RhLmFpY2hpLmpwIiwibWloYW1hLmFpY2hpLmpwIiwibWl5b3NoaS5haWNoaS5qcCIsIm5pc2hpby5haWNoaS5qcCIsIm5pc3NoaW4uYWljaGkuanAiLCJvYnUuYWljaGku'@; put 'anAiLCJvZ3VjaGkuYWljaGkuanAiLCJvaGFydS5haWNoaS5qcCIsIm9rYXpha2kuYWljaGkuanAiLCJvd2FyaWFzYWhpLmFpY2hpLmpwIiwic2V0by5haWNoaS5qcCIsInNoaWthdHN1LmFpY2hpLmpwIiwic2hpbnNoaXJvLmFpY2hpLmpwIiwic2hpdGFyYS5haWNoaS5qcCIsInRhaGFyYS5h'@; put 'aWNoaS5qcCIsInRha2FoYW1hLmFpY2hpLmpwIiwidG9iaXNoaW1hLmFpY2hpLmpwIiwidG9laS5haWNoaS5qcCIsInRvZ28uYWljaGkuanAiLCJ0b2thaS5haWNoaS5qcCIsInRva29uYW1lLmFpY2hpLmpwIiwidG95b2FrZS5haWNoaS5qcCIsInRveW9oYXNoaS5haWNoaS5qcCIsInRveW9r'@; put 'YXdhLmFpY2hpLmpwIiwidG95b25lLmFpY2hpLmpwIiwidG95b3RhLmFpY2hpLmpwIiwidHN1c2hpbWEuYWljaGkuanAiLCJ5YXRvbWkuYWljaGkuanAiLCJha2l0YS5ha2l0YS5qcCIsImRhaXNlbi5ha2l0YS5qcCIsImZ1amlzYXRvLmFraXRhLmpwIiwiZ29qb21lLmFraXRhLmpwIiwiaGFj'@; put 'aGlyb2dhdGEuYWtpdGEuanAiLCJoYXBwb3UuYWtpdGEuanAiLCJoaWdhc2hpbmFydXNlLmFraXRhLmpwIiwiaG9uam8uYWtpdGEuanAiLCJob25qeW8uYWtpdGEuanAiLCJpa2F3YS5ha2l0YS5qcCIsImthbWlrb2FuaS5ha2l0YS5qcCIsImthbWlva2EuYWtpdGEuanAiLCJrYXRhZ2FtaS5h'@; put 'a2l0YS5qcCIsImthenVuby5ha2l0YS5qcCIsImtpdGFha2l0YS5ha2l0YS5qcCIsImtvc2FrYS5ha2l0YS5qcCIsImt5b3dhLmFraXRhLmpwIiwibWlzYXRvLmFraXRhLmpwIiwibWl0YW5lLmFraXRhLmpwIiwibW9yaXlvc2hpLmFraXRhLmpwIiwibmlrYWhvLmFraXRhLmpwIiwibm9zaGly'@; put 'by5ha2l0YS5qcCIsIm9kYXRlLmFraXRhLmpwIiwib2dhLmFraXRhLmpwIiwib2dhdGEuYWtpdGEuanAiLCJzZW1ib2t1LmFraXRhLmpwIiwieW9rb3RlLmFraXRhLmpwIiwieXVyaWhvbmpvLmFraXRhLmpwIiwiYW9tb3JpLmFvbW9yaS5qcCIsImdvbm9oZS5hb21vcmkuanAiLCJoYWNoaW5v'@; put 'aGUuYW9tb3JpLmpwIiwiaGFzaGlrYW1pLmFvbW9yaS5qcCIsImhpcmFuYWkuYW9tb3JpLmpwIiwiaGlyb3Nha2kuYW9tb3JpLmpwIiwiaXRheWFuYWdpLmFvbW9yaS5qcCIsImt1cm9pc2hpLmFvbW9yaS5qcCIsIm1pc2F3YS5hb21vcmkuanAiLCJtdXRzdS5hb21vcmkuanAiLCJuYWthZG9t'@; put 'YXJpLmFvbW9yaS5qcCIsIm5vaGVqaS5hb21vcmkuanAiLCJvaXJhc2UuYW9tb3JpLmpwIiwib3dhbmkuYW9tb3JpLmpwIiwicm9rdW5vaGUuYW9tb3JpLmpwIiwic2Fubm9oZS5hb21vcmkuanAiLCJzaGljaGlub2hlLmFvbW9yaS5qcCIsInNoaW5nby5hb21vcmkuanAiLCJ0YWtrby5hb21v'@; put 'cmkuanAiLCJ0b3dhZGEuYW9tb3JpLmpwIiwidHN1Z2FydS5hb21vcmkuanAiLCJ0c3VydXRhLmFvbW9yaS5qcCIsImFiaWtvLmNoaWJhLmpwIiwiYXNhaGkuY2hpYmEuanAiLCJjaG9uYW4uY2hpYmEuanAiLCJjaG9zZWkuY2hpYmEuanAiLCJjaG9zaGkuY2hpYmEuanAiLCJjaHVvLmNoaWJh'@; put 'LmpwIiwiZnVuYWJhc2hpLmNoaWJhLmpwIiwiZnV0dHN1LmNoaWJhLmpwIiwiaGFuYW1pZ2F3YS5jaGliYS5qcCIsImljaGloYXJhLmNoaWJhLmpwIiwiaWNoaWthd2EuY2hpYmEuanAiLCJpY2hpbm9taXlhLmNoaWJhLmpwIiwiaW56YWkuY2hpYmEuanAiLCJpc3VtaS5jaGliYS5qcCIsImth'@; put 'bWFnYXlhLmNoaWJhLmpwIiwia2Ftb2dhd2EuY2hpYmEuanAiLCJrYXNoaXdhLmNoaWJhLmpwIiwia2F0b3JpLmNoaWJhLmpwIiwia2F0c3V1cmEuY2hpYmEuanAiLCJraW1pdHN1LmNoaWJhLmpwIiwia2lzYXJhenUuY2hpYmEuanAiLCJrb3pha2kuY2hpYmEuanAiLCJrdWp1a3VyaS5jaGli'@; put 'YS5qcCIsImt5b25hbi5jaGliYS5qcCIsIm1hdHN1ZG8uY2hpYmEuanAiLCJtaWRvcmkuY2hpYmEuanAiLCJtaWhhbWEuY2hpYmEuanAiLCJtaW5hbWlib3NvLmNoaWJhLmpwIiwibW9iYXJhLmNoaWJhLmpwIiwibXV0c3V6YXdhLmNoaWJhLmpwIiwibmFnYXJhLmNoaWJhLmpwIiwibmFnYXJl'@; put 'eWFtYS5jaGliYS5qcCIsIm5hcmFzaGluby5jaGliYS5qcCIsIm5hcml0YS5jaGliYS5qcCIsIm5vZGEuY2hpYmEuanAiLCJvYW1pc2hpcmFzYXRvLmNoaWJhLmpwIiwib21pZ2F3YS5jaGliYS5qcCIsIm9uanVrdS5jaGliYS5qcCIsIm90YWtpLmNoaWJhLmpwIiwic2FrYWUuY2hpYmEuanAi'@; put 'LCJzYWt1cmEuY2hpYmEuanAiLCJzaGltb2Z1c2EuY2hpYmEuanAiLCJzaGlyYWtvLmNoaWJhLmpwIiwic2hpcm9pLmNoaWJhLmpwIiwic2hpc3VpLmNoaWJhLmpwIiwic29kZWdhdXJhLmNoaWJhLmpwIiwic29zYS5jaGliYS5qcCIsInRha28uY2hpYmEuanAiLCJ0YXRleWFtYS5jaGliYS5q'@; put 'cCIsInRvZ2FuZS5jaGliYS5qcCIsInRvaG5vc2hvLmNoaWJhLmpwIiwidG9taXNhdG8uY2hpYmEuanAiLCJ1cmF5YXN1LmNoaWJhLmpwIiwieWFjaGltYXRhLmNoaWJhLmpwIiwieWFjaGl5by5jaGliYS5qcCIsInlva2FpY2hpYmEuY2hpYmEuanAiLCJ5b2tvc2hpYmFoaWthcmkuY2hpYmEu'@; put 'anAiLCJ5b3RzdWthaWRvLmNoaWJhLmpwIiwiYWluYW4uZWhpbWUuanAiLCJob25haS5laGltZS5qcCIsImlrYXRhLmVoaW1lLmpwIiwiaW1hYmFyaS5laGltZS5qcCIsIml5by5laGltZS5qcCIsImthbWlqaW1hLmVoaW1lLmpwIiwia2lob2t1LmVoaW1lLmpwIiwia3VtYWtvZ2VuLmVoaW1l'@; put 'LmpwIiwibWFzYWtpLmVoaW1lLmpwIiwibWF0c3Vuby5laGltZS5qcCIsIm1hdHN1eWFtYS5laGltZS5qcCIsIm5hbWlrYXRhLmVoaW1lLmpwIiwibmlpaGFtYS5laGltZS5qcCIsIm96dS5laGltZS5qcCIsInNhaWpvLmVoaW1lLmpwIiwic2VpeW8uZWhpbWUuanAiLCJzaGlrb2t1Y2h1by5l'@; put 'aGltZS5qcCIsInRvYmUuZWhpbWUuanAiLCJ0b29uLmVoaW1lLmpwIiwidWNoaWtvLmVoaW1lLmpwIiwidXdhamltYS5laGltZS5qcCIsInlhd2F0YWhhbWEuZWhpbWUuanAiLCJlY2hpemVuLmZ1a3VpLmpwIiwiZWloZWlqaS5mdWt1aS5qcCIsImZ1a3VpLmZ1a3VpLmpwIiwiaWtlZGEuZnVr'@; put 'dWkuanAiLCJrYXRzdXlhbWEuZnVrdWkuanAiLCJtaWhhbWEuZnVrdWkuanAiLCJtaW5hbWllY2hpemVuLmZ1a3VpLmpwIiwib2JhbWEuZnVrdWkuanAiLCJvaGkuZnVrdWkuanAiLCJvbm8uZnVrdWkuanAiLCJzYWJhZS5mdWt1aS5qcCIsInNha2FpLmZ1a3VpLmpwIiwidGFrYWhhbWEuZnVr'@; put 'dWkuanAiLCJ0c3VydWdhLmZ1a3VpLmpwIiwid2FrYXNhLmZ1a3VpLmpwIiwiYXNoaXlhLmZ1a3Vva2EuanAiLCJidXplbi5mdWt1b2thLmpwIiwiY2hpa3Vnby5mdWt1b2thLmpwIiwiY2hpa3Voby5mdWt1b2thLmpwIiwiY2hpa3Vqby5mdWt1b2thLmpwIiwiY2hpa3VzaGluby5mdWt1b2th'@; put 'LmpwIiwiY2hpa3V6ZW4uZnVrdW9rYS5qcCIsImNodW8uZnVrdW9rYS5qcCIsImRhemFpZnUuZnVrdW9rYS5qcCIsImZ1a3VjaGkuZnVrdW9rYS5qcCIsImhha2F0YS5mdWt1b2thLmpwIiwiaGlnYXNoaS5mdWt1b2thLmpwIiwiaGlyb2thd2EuZnVrdW9rYS5qcCIsImhpc2F5YW1hLmZ1a3Vv'@; put 'a2EuanAiLCJpaXp1a2EuZnVrdW9rYS5qcCIsImluYXRzdWtpLmZ1a3Vva2EuanAiLCJrYWhvLmZ1a3Vva2EuanAiLCJrYXN1Z2EuZnVrdW9rYS5qcCIsImthc3V5YS5mdWt1b2thLmpwIiwia2F3YXJhLmZ1a3Vva2EuanAiLCJrZWlzZW4uZnVrdW9rYS5qcCIsImtvZ2EuZnVrdW9rYS5qcCIs'@; put 'Imt1cmF0ZS5mdWt1b2thLmpwIiwia3Vyb2dpLmZ1a3Vva2EuanAiLCJrdXJ1bWUuZnVrdW9rYS5qcCIsIm1pbmFtaS5mdWt1b2thLmpwIiwibWl5YWtvLmZ1a3Vva2EuanAiLCJtaXlhbWEuZnVrdW9rYS5qcCIsIm1peWF3YWthLmZ1a3Vva2EuanAiLCJtaXp1bWFraS5mdWt1b2thLmpwIiwi'@; put 'bXVuYWthdGEuZnVrdW9rYS5qcCIsIm5ha2FnYXdhLmZ1a3Vva2EuanAiLCJuYWthbWEuZnVrdW9rYS5qcCIsIm5pc2hpLmZ1a3Vva2EuanAiLCJub2dhdGEuZnVrdW9rYS5qcCIsIm9nb3JpLmZ1a3Vva2EuanAiLCJva2FnYWtpLmZ1a3Vva2EuanAiLCJva2F3YS5mdWt1b2thLmpwIiwib2tp'@; put 'LmZ1a3Vva2EuanAiLCJvbXV0YS5mdWt1b2thLmpwIiwib25nYS5mdWt1b2thLmpwIiwib25vam8uZnVrdW9rYS5qcCIsIm90by5mdWt1b2thLmpwIiwic2FpZ2F3YS5mdWt1b2thLmpwIiwic2FzYWd1cmkuZnVrdW9rYS5qcCIsInNoaW5ndS5mdWt1b2thLmpwIiwic2hpbnlvc2hpdG9taS5m'@; put 'dWt1b2thLmpwIiwic2hvbmFpLmZ1a3Vva2EuanAiLCJzb2VkYS5mdWt1b2thLmpwIiwic3VlLmZ1a3Vva2EuanAiLCJ0YWNoaWFyYWkuZnVrdW9rYS5qcCIsInRhZ2F3YS5mdWt1b2thLmpwIiwidGFrYXRhLmZ1a3Vva2EuanAiLCJ0b2hvLmZ1a3Vva2EuanAiLCJ0b3lvdHN1LmZ1a3Vva2Eu'@; put 'anAiLCJ0c3Vpa2kuZnVrdW9rYS5qcCIsInVraWhhLmZ1a3Vva2EuanAiLCJ1bWkuZnVrdW9rYS5qcCIsInVzdWkuZnVrdW9rYS5qcCIsInlhbWFkYS5mdWt1b2thLmpwIiwieWFtZS5mdWt1b2thLmpwIiwieWFuYWdhd2EuZnVrdW9rYS5qcCIsInl1a3VoYXNoaS5mdWt1b2thLmpwIiwiYWl6'@; put 'dWJhbmdlLmZ1a3VzaGltYS5qcCIsImFpenVtaXNhdG8uZnVrdXNoaW1hLmpwIiwiYWl6dXdha2FtYXRzdS5mdWt1c2hpbWEuanAiLCJhc2FrYXdhLmZ1a3VzaGltYS5qcCIsImJhbmRhaS5mdWt1c2hpbWEuanAiLCJkYXRlLmZ1a3VzaGltYS5qcCIsImZ1a3VzaGltYS5mdWt1c2hpbWEuanAi'@; put 'LCJmdXJ1ZG9uby5mdWt1c2hpbWEuanAiLCJmdXRhYmEuZnVrdXNoaW1hLmpwIiwiaGFuYXdhLmZ1a3VzaGltYS5qcCIsImhpZ2FzaGkuZnVrdXNoaW1hLmpwIiwiaGlyYXRhLmZ1a3VzaGltYS5qcCIsImhpcm9uby5mdWt1c2hpbWEuanAiLCJpaXRhdGUuZnVrdXNoaW1hLmpwIiwiaW5hd2Fz'@; put 'aGlyby5mdWt1c2hpbWEuanAiLCJpc2hpa2F3YS5mdWt1c2hpbWEuanAiLCJpd2FraS5mdWt1c2hpbWEuanAiLCJpenVtaXpha2kuZnVrdXNoaW1hLmpwIiwia2FnYW1paXNoaS5mdWt1c2hpbWEuanAiLCJrYW5leWFtYS5mdWt1c2hpbWEuanAiLCJrYXdhbWF0YS5mdWt1c2hpbWEuanAiLCJr'@; put 'aXRha2F0YS5mdWt1c2hpbWEuanAiLCJraXRhc2hpb2JhcmEuZnVrdXNoaW1hLmpwIiwia29vcmkuZnVrdXNoaW1hLmpwIiwia29yaXlhbWEuZnVrdXNoaW1hLmpwIiwia3VuaW1pLmZ1a3VzaGltYS5qcCIsIm1paGFydS5mdWt1c2hpbWEuanAiLCJtaXNoaW1hLmZ1a3VzaGltYS5qcCIsIm5h'@; put 'bWllLmZ1a3VzaGltYS5qcCIsIm5hbmdvLmZ1a3VzaGltYS5qcCIsIm5pc2hpYWl6dS5mdWt1c2hpbWEuanAiLCJuaXNoaWdvLmZ1a3VzaGltYS5qcCIsIm9rdW1hLmZ1a3VzaGltYS5qcCIsIm9tb3RlZ28uZnVrdXNoaW1hLmpwIiwib25vLmZ1a3VzaGltYS5qcCIsIm90YW1hLmZ1a3VzaGlt'@; put 'YS5qcCIsInNhbWVnYXdhLmZ1a3VzaGltYS5qcCIsInNoaW1vZ28uZnVrdXNoaW1hLmpwIiwic2hpcmFrYXdhLmZ1a3VzaGltYS5qcCIsInNob3dhLmZ1a3VzaGltYS5qcCIsInNvbWEuZnVrdXNoaW1hLmpwIiwic3VrYWdhd2EuZnVrdXNoaW1hLmpwIiwidGFpc2hpbi5mdWt1c2hpbWEuanAi'@; put 'LCJ0YW1ha2F3YS5mdWt1c2hpbWEuanAiLCJ0YW5hZ3VyYS5mdWt1c2hpbWEuanAiLCJ0ZW5laS5mdWt1c2hpbWEuanAiLCJ5YWJ1a2kuZnVrdXNoaW1hLmpwIiwieWFtYXRvLmZ1a3VzaGltYS5qcCIsInlhbWF0c3VyaS5mdWt1c2hpbWEuanAiLCJ5YW5haXp1LmZ1a3VzaGltYS5qcCIsInl1'@; put 'Z2F3YS5mdWt1c2hpbWEuanAiLCJhbnBhY2hpLmdpZnUuanAiLCJlbmEuZ2lmdS5qcCIsImdpZnUuZ2lmdS5qcCIsImdpbmFuLmdpZnUuanAiLCJnb2RvLmdpZnUuanAiLCJndWpvLmdpZnUuanAiLCJoYXNoaW1hLmdpZnUuanAiLCJoaWNoaXNvLmdpZnUuanAiLCJoaWRhLmdpZnUuanAiLCJo'@; put 'aWdhc2hpc2hpcmFrYXdhLmdpZnUuanAiLCJpYmlnYXdhLmdpZnUuanAiLCJpa2VkYS5naWZ1LmpwIiwia2FrYW1pZ2FoYXJhLmdpZnUuanAiLCJrYW5pLmdpZnUuanAiLCJrYXNhaGFyYS5naWZ1LmpwIiwia2FzYW1hdHN1LmdpZnUuanAiLCJrYXdhdWUuZ2lmdS5qcCIsImtpdGFnYXRhLmdp'@; put 'ZnUuanAiLCJtaW5vLmdpZnUuanAiLCJtaW5va2Ftby5naWZ1LmpwIiwibWl0YWtlLmdpZnUuanAiLCJtaXp1bmFtaS5naWZ1LmpwIiwibW90b3N1LmdpZnUuanAiLCJuYWthdHN1Z2F3YS5naWZ1LmpwIiwib2dha2kuZ2lmdS5qcCIsInNha2Fob2dpLmdpZnUuanAiLCJzZWtpLmdpZnUuanAi'@; put 'LCJzZWtpZ2FoYXJhLmdpZnUuanAiLCJzaGlyYWthd2EuZ2lmdS5qcCIsInRhamltaS5naWZ1LmpwIiwidGFrYXlhbWEuZ2lmdS5qcCIsInRhcnVpLmdpZnUuanAiLCJ0b2tpLmdpZnUuanAiLCJ0b21pa2EuZ2lmdS5qcCIsIndhbm91Y2hpLmdpZnUuanAiLCJ5YW1hZ2F0YS5naWZ1LmpwIiwi'@; put 'eWFvdHN1LmdpZnUuanAiLCJ5b3JvLmdpZnUuanAiLCJhbm5ha2EuZ3VubWEuanAiLCJjaGl5b2RhLmd1bm1hLmpwIiwiZnVqaW9rYS5ndW5tYS5qcCIsImhpZ2FzaGlhZ2F0c3VtYS5ndW5tYS5qcCIsImlzZXNha2kuZ3VubWEuanAiLCJpdGFrdXJhLmd1bm1hLmpwIiwia2FubmEuZ3VubWEu'@; put 'anAiLCJrYW5yYS5ndW5tYS5qcCIsImthdGFzaGluYS5ndW5tYS5qcCIsImthd2FiYS5ndW5tYS5qcCIsImtpcnl1Lmd1bm1hLmpwIiwia3VzYXRzdS5ndW5tYS5qcCIsIm1hZWJhc2hpLmd1bm1hLmpwIiwibWVpd2EuZ3VubWEuanAiLCJtaWRvcmkuZ3VubWEuanAiLCJtaW5ha2FtaS5ndW5t'@; put 'YS5qcCIsIm5hZ2Fub2hhcmEuZ3VubWEuanAiLCJuYWthbm9qby5ndW5tYS5qcCIsIm5hbm1va3UuZ3VubWEuanAiLCJudW1hdGEuZ3VubWEuanAiLCJvaXp1bWkuZ3VubWEuanAiLCJvcmEuZ3VubWEuanAiLCJvdGEuZ3VubWEuanAiLCJzaGlidWthd2EuZ3VubWEuanAiLCJzaGltb25pdGEu'@; put 'Z3VubWEuanAiLCJzaGludG8uZ3VubWEuanAiLCJzaG93YS5ndW5tYS5qcCIsInRha2FzYWtpLmd1bm1hLmpwIiwidGFrYXlhbWEuZ3VubWEuanAiLCJ0YW1hbXVyYS5ndW5tYS5qcCIsInRhdGViYXlhc2hpLmd1bm1hLmpwIiwidG9taW9rYS5ndW5tYS5qcCIsInRzdWtpeW9uby5ndW5tYS5q'@; put 'cCIsInRzdW1hZ29pLmd1bm1hLmpwIiwidWVuby5ndW5tYS5qcCIsInlvc2hpb2thLmd1bm1hLmpwIiwiYXNhbWluYW1pLmhpcm9zaGltYS5qcCIsImRhaXdhLmhpcm9zaGltYS5qcCIsImV0YWppbWEuaGlyb3NoaW1hLmpwIiwiZnVjaHUuaGlyb3NoaW1hLmpwIiwiZnVrdXlhbWEuaGlyb3No'@; put 'aW1hLmpwIiwiaGF0c3VrYWljaGkuaGlyb3NoaW1hLmpwIiwiaGlnYXNoaWhpcm9zaGltYS5oaXJvc2hpbWEuanAiLCJob25nby5oaXJvc2hpbWEuanAiLCJqaW5zZWtpa29nZW4uaGlyb3NoaW1hLmpwIiwia2FpdGEuaGlyb3NoaW1hLmpwIiwia3VpLmhpcm9zaGltYS5qcCIsImt1bWFuby5o'@; put 'aXJvc2hpbWEuanAiLCJrdXJlLmhpcm9zaGltYS5qcCIsIm1paGFyYS5oaXJvc2hpbWEuanAiLCJtaXlvc2hpLmhpcm9zaGltYS5qcCIsIm5ha2EuaGlyb3NoaW1hLmpwIiwib25vbWljaGkuaGlyb3NoaW1hLmpwIiwib3Nha2lrYW1pamltYS5oaXJvc2hpbWEuanAiLCJvdGFrZS5oaXJvc2hp'@; put 'bWEuanAiLCJzYWthLmhpcm9zaGltYS5qcCIsInNlcmEuaGlyb3NoaW1hLmpwIiwic2VyYW5pc2hpLmhpcm9zaGltYS5qcCIsInNoaW5pY2hpLmhpcm9zaGltYS5qcCIsInNob2JhcmEuaGlyb3NoaW1hLmpwIiwidGFrZWhhcmEuaGlyb3NoaW1hLmpwIiwiYWJhc2hpcmkuaG9ra2FpZG8uanAi'@; put 'LCJhYmlyYS5ob2trYWlkby5qcCIsImFpYmV0c3UuaG9ra2FpZG8uanAiLCJha2FiaXJhLmhva2thaWRvLmpwIiwiYWtrZXNoaS5ob2trYWlkby5qcCIsImFzYWhpa2F3YS5ob2trYWlkby5qcCIsImFzaGliZXRzdS5ob2trYWlkby5qcCIsImFzaG9yby5ob2trYWlkby5qcCIsImFzc2FidS5o'@; put 'b2trYWlkby5qcCIsImF0c3VtYS5ob2trYWlkby5qcCIsImJpYmFpLmhva2thaWRvLmpwIiwiYmllaS5ob2trYWlkby5qcCIsImJpZnVrYS5ob2trYWlkby5qcCIsImJpaG9yby5ob2trYWlkby5qcCIsImJpcmF0b3JpLmhva2thaWRvLmpwIiwiY2hpcHB1YmV0c3UuaG9ra2FpZG8uanAiLCJj'@; put 'aGl0b3NlLmhva2thaWRvLmpwIiwiZGF0ZS5ob2trYWlkby5qcCIsImViZXRzdS5ob2trYWlkby5qcCIsImVtYmV0c3UuaG9ra2FpZG8uanAiLCJlbml3YS5ob2trYWlkby5qcCIsImVyaW1vLmhva2thaWRvLmpwIiwiZXNhbi5ob2trYWlkby5qcCIsImVzYXNoaS5ob2trYWlkby5qcCIsImZ1'@; put 'a2FnYXdhLmhva2thaWRvLmpwIiwiZnVrdXNoaW1hLmhva2thaWRvLmpwIiwiZnVyYW5vLmhva2thaWRvLmpwIiwiZnVydWJpcmEuaG9ra2FpZG8uanAiLCJoYWJvcm8uaG9ra2FpZG8uanAiLCJoYWtvZGF0ZS5ob2trYWlkby5qcCIsImhhbWF0b25iZXRzdS5ob2trYWlkby5qcCIsImhpZGFr'@; put 'YS5ob2trYWlkby5qcCIsImhpZ2FzaGlrYWd1cmEuaG9ra2FpZG8uanAiLCJoaWdhc2hpa2F3YS5ob2trYWlkby5qcCIsImhpcm9vLmhva2thaWRvLmpwIiwiaG9rdXJ5dS5ob2trYWlkby5qcCIsImhva3V0by5ob2trYWlkby5qcCIsImhvbmJldHN1Lmhva2thaWRvLmpwIiwiaG9yb2thbmFp'@; put 'Lmhva2thaWRvLmpwIiwiaG9yb25vYmUuaG9ra2FpZG8uanAiLCJpa2VkYS5ob2trYWlkby5qcCIsImltYWthbmUuaG9ra2FpZG8uanAiLCJpc2hpa2FyaS5ob2trYWlkby5qcCIsIml3YW1pemF3YS5ob2trYWlkby5qcCIsIml3YW5haS5ob2trYWlkby5qcCIsImthbWlmdXJhbm8uaG9ra2Fp'@; put 'ZG8uanAiLCJrYW1pa2F3YS5ob2trYWlkby5qcCIsImthbWlzaGlob3JvLmhva2thaWRvLmpwIiwia2FtaXN1bmFnYXdhLmhva2thaWRvLmpwIiwia2Ftb2VuYWkuaG9ra2FpZG8uanAiLCJrYXlhYmUuaG9ra2FpZG8uanAiLCJrZW1idWNoaS5ob2trYWlkby5qcCIsImtpa29uYWkuaG9ra2Fp'@; put 'ZG8uanAiLCJraW1vYmV0c3UuaG9ra2FpZG8uanAiLCJraXRhaGlyb3NoaW1hLmhva2thaWRvLmpwIiwia2l0YW1pLmhva2thaWRvLmpwIiwia2l5b3NhdG8uaG9ra2FpZG8uanAiLCJrb3NoaW1penUuaG9ra2FpZG8uanAiLCJrdW5uZXBwdS5ob2trYWlkby5qcCIsImt1cml5YW1hLmhva2th'@; put 'aWRvLmpwIiwia3Vyb21hdHN1bmFpLmhva2thaWRvLmpwIiwia3VzaGlyby5ob2trYWlkby5qcCIsImt1dGNoYW4uaG9ra2FpZG8uanAiLCJreW93YS5ob2trYWlkby5qcCIsIm1hc2hpa2UuaG9ra2FpZG8uanAiLCJtYXRzdW1hZS5ob2trYWlkby5qcCIsIm1pa2FzYS5ob2trYWlkby5qcCIs'@; put 'Im1pbmFtaWZ1cmFuby5ob2trYWlkby5qcCIsIm1vbWJldHN1Lmhva2thaWRvLmpwIiwibW9zZXVzaGkuaG9ra2FpZG8uanAiLCJtdWthd2EuaG9ra2FpZG8uanAiLCJtdXJvcmFuLmhva2thaWRvLmpwIiwibmFpZS5ob2trYWlkby5qcCIsIm5ha2FnYXdhLmhva2thaWRvLmpwIiwibmFrYXNh'@; put 'dHN1bmFpLmhva2thaWRvLmpwIiwibmFrYXRvbWJldHN1Lmhva2thaWRvLmpwIiwibmFuYWUuaG9ra2FpZG8uanAiLCJuYW5wb3JvLmhva2thaWRvLmpwIiwibmF5b3JvLmhva2thaWRvLmpwIiwibmVtdXJvLmhva2thaWRvLmpwIiwibmlpa2FwcHUuaG9ra2FpZG8uanAiLCJuaWtpLmhva2th'@; put 'aWRvLmpwIiwibmlzaGlva29wcGUuaG9ra2FpZG8uanAiLCJub2JvcmliZXRzdS5ob2trYWlkby5qcCIsIm51bWF0YS5ob2trYWlkby5qcCIsIm9iaWhpcm8uaG9ra2FpZG8uanAiLCJvYmlyYS5ob2trYWlkby5qcCIsIm9rZXRvLmhva2thaWRvLmpwIiwib2tvcHBlLmhva2thaWRvLmpwIiwi'@; put 'b3RhcnUuaG9ra2FpZG8uanAiLCJvdG9iZS5ob2trYWlkby5qcCIsIm90b2Z1a2UuaG9ra2FpZG8uanAiLCJvdG9pbmVwcHUuaG9ra2FpZG8uanAiLCJvdW11Lmhva2thaWRvLmpwIiwib3pvcmEuaG9ra2FpZG8uanAiLCJwaXBwdS5ob2trYWlkby5qcCIsInJhbmtvc2hpLmhva2thaWRvLmpw'@; put 'IiwicmVidW4uaG9ra2FpZG8uanAiLCJyaWt1YmV0c3UuaG9ra2FpZG8uanAiLCJyaXNoaXJpLmhva2thaWRvLmpwIiwicmlzaGlyaWZ1amkuaG9ra2FpZG8uanAiLCJzYXJvbWEuaG9ra2FpZG8uanAiLCJzYXJ1ZnV0c3UuaG9ra2FpZG8uanAiLCJzaGFrb3Rhbi5ob2trYWlkby5qcCIsInNo'@; put 'YXJpLmhva2thaWRvLmpwIiwic2hpYmVjaGEuaG9ra2FpZG8uanAiLCJzaGliZXRzdS5ob2trYWlkby5qcCIsInNoaWthYmUuaG9ra2FpZG8uanAiLCJzaGlrYW9pLmhva2thaWRvLmpwIiwic2hpbWFtYWtpLmhva2thaWRvLmpwIiwic2hpbWl6dS5ob2trYWlkby5qcCIsInNoaW1va2F3YS5o'@; put 'b2trYWlkby5qcCIsInNoaW5zaGlub3RzdS5ob2trYWlkby5qcCIsInNoaW50b2t1Lmhva2thaWRvLmpwIiwic2hpcmFudWthLmhva2thaWRvLmpwIiwic2hpcmFvaS5ob2trYWlkby5qcCIsInNoaXJpdWNoaS5ob2trYWlkby5qcCIsInNvYmV0c3UuaG9ra2FpZG8uanAiLCJzdW5hZ2F3YS5o'@; put 'b2trYWlkby5qcCIsInRhaWtpLmhva2thaWRvLmpwIiwidGFrYXN1Lmhva2thaWRvLmpwIiwidGFraWthd2EuaG9ra2FpZG8uanAiLCJ0YWtpbm91ZS5ob2trYWlkby5qcCIsInRlc2hpa2FnYS5ob2trYWlkby5qcCIsInRvYmV0c3UuaG9ra2FpZG8uanAiLCJ0b2htYS5ob2trYWlkby5qcCIs'@; put 'InRvbWFrb21haS5ob2trYWlkby5qcCIsInRvbWFyaS5ob2trYWlkby5qcCIsInRveWEuaG9ra2FpZG8uanAiLCJ0b3lha28uaG9ra2FpZG8uanAiLCJ0b3lvdG9taS5ob2trYWlkby5qcCIsInRveW91cmEuaG9ra2FpZG8uanAiLCJ0c3ViZXRzdS5ob2trYWlkby5qcCIsInRzdWtpZ2F0YS5o'@; put 'b2trYWlkby5qcCIsInVyYWthd2EuaG9ra2FpZG8uanAiLCJ1cmF1c3UuaG9ra2FpZG8uanAiLCJ1cnl1Lmhva2thaWRvLmpwIiwidXRhc2hpbmFpLmhva2thaWRvLmpwIiwid2Fra2FuYWkuaG9ra2FpZG8uanAiLCJ3YXNzYW11Lmhva2thaWRvLmpwIiwieWFrdW1vLmhva2thaWRvLmpwIiwi'@; put 'eW9pY2hpLmhva2thaWRvLmpwIiwiYWlvaS5oeW9nby5qcCIsImFrYXNoaS5oeW9nby5qcCIsImFrby5oeW9nby5qcCIsImFtYWdhc2FraS5oeW9nby5qcCIsImFvZ2FraS5oeW9nby5qcCIsImFzYWdvLmh5b2dvLmpwIiwiYXNoaXlhLmh5b2dvLmpwIiwiYXdhamkuaHlvZ28uanAiLCJmdWt1'@; put 'c2FraS5oeW9nby5qcCIsImdvc2hpa2kuaHlvZ28uanAiLCJoYXJpbWEuaHlvZ28uanAiLCJoaW1lamkuaHlvZ28uanAiLCJpY2hpa2F3YS5oeW9nby5qcCIsImluYWdhd2EuaHlvZ28uanAiLCJpdGFtaS5oeW9nby5qcCIsImtha29nYXdhLmh5b2dvLmpwIiwia2FtaWdvcmkuaHlvZ28uanAi'@; put 'LCJrYW1pa2F3YS5oeW9nby5qcCIsImthc2FpLmh5b2dvLmpwIiwia2FzdWdhLmh5b2dvLmpwIiwia2F3YW5pc2hpLmh5b2dvLmpwIiwibWlraS5oeW9nby5qcCIsIm1pbmFtaWF3YWppLmh5b2dvLmpwIiwibmlzaGlub21peWEuaHlvZ28uanAiLCJuaXNoaXdha2kuaHlvZ28uanAiLCJvbm8u'@; put 'aHlvZ28uanAiLCJzYW5kYS5oeW9nby5qcCIsInNhbm5hbi5oeW9nby5qcCIsInNhc2F5YW1hLmh5b2dvLmpwIiwic2F5by5oeW9nby5qcCIsInNoaW5ndS5oeW9nby5qcCIsInNoaW5vbnNlbi5oeW9nby5qcCIsInNoaXNvLmh5b2dvLmpwIiwic3Vtb3RvLmh5b2dvLmpwIiwidGFpc2hpLmh5'@; put 'b2dvLmpwIiwidGFrYS5oeW9nby5qcCIsInRha2FyYXp1a2EuaHlvZ28uanAiLCJ0YWthc2Fnby5oeW9nby5qcCIsInRha2luby5oeW9nby5qcCIsInRhbWJhLmh5b2dvLmpwIiwidGF0c3Vuby5oeW9nby5qcCIsInRveW9va2EuaHlvZ28uanAiLCJ5YWJ1Lmh5b2dvLmpwIiwieWFzaGlyby5o'@; put 'eW9nby5qcCIsInlva2EuaHlvZ28uanAiLCJ5b2thd2EuaHlvZ28uanAiLCJhbWkuaWJhcmFraS5qcCIsImFzYWhpLmliYXJha2kuanAiLCJiYW5kby5pYmFyYWtpLmpwIiwiY2hpa3VzZWkuaWJhcmFraS5qcCIsImRhaWdvLmliYXJha2kuanAiLCJmdWppc2hpcm8uaWJhcmFraS5qcCIsImhp'@; put 'dGFjaGkuaWJhcmFraS5qcCIsImhpdGFjaGluYWthLmliYXJha2kuanAiLCJoaXRhY2hpb21peWEuaWJhcmFraS5qcCIsImhpdGFjaGlvdGEuaWJhcmFraS5qcCIsImliYXJha2kuaWJhcmFraS5qcCIsImluYS5pYmFyYWtpLmpwIiwiaW5hc2hpa2kuaWJhcmFraS5qcCIsIml0YWtvLmliYXJh'@; put 'a2kuanAiLCJpd2FtYS5pYmFyYWtpLmpwIiwiam9zby5pYmFyYWtpLmpwIiwia2FtaXN1LmliYXJha2kuanAiLCJrYXNhbWEuaWJhcmFraS5qcCIsImthc2hpbWEuaWJhcmFraS5qcCIsImthc3VtaWdhdXJhLmliYXJha2kuanAiLCJrb2dhLmliYXJha2kuanAiLCJtaWhvLmliYXJha2kuanAi'@; put 'LCJtaXRvLmliYXJha2kuanAiLCJtb3JpeWEuaWJhcmFraS5qcCIsIm5ha2EuaWJhcmFraS5qcCIsIm5hbWVnYXRhLmliYXJha2kuanAiLCJvYXJhaS5pYmFyYWtpLmpwIiwib2dhd2EuaWJhcmFraS5qcCIsIm9taXRhbWEuaWJhcmFraS5qcCIsInJ5dWdhc2FraS5pYmFyYWtpLmpwIiwic2Fr'@; put 'YWkuaWJhcmFraS5qcCIsInNha3VyYWdhd2EuaWJhcmFraS5qcCIsInNoaW1vZGF0ZS5pYmFyYWtpLmpwIiwic2hpbW90c3VtYS5pYmFyYWtpLmpwIiwic2hpcm9zYXRvLmliYXJha2kuanAiLCJzb3dhLmliYXJha2kuanAiLCJzdWlmdS5pYmFyYWtpLmpwIiwidGFrYWhhZ2kuaWJhcmFraS5q'@; put 'cCIsInRhbWF0c3VrdXJpLmliYXJha2kuanAiLCJ0b2thaS5pYmFyYWtpLmpwIiwidG9tb2JlLmliYXJha2kuanAiLCJ0b25lLmliYXJha2kuanAiLCJ0b3JpZGUuaWJhcmFraS5qcCIsInRzdWNoaXVyYS5pYmFyYWtpLmpwIiwidHN1a3ViYS5pYmFyYWtpLmpwIiwidWNoaWhhcmEuaWJhcmFr'@; put 'aS5qcCIsInVzaGlrdS5pYmFyYWtpLmpwIiwieWFjaGl5by5pYmFyYWtpLmpwIiwieWFtYWdhdGEuaWJhcmFraS5qcCIsInlhd2FyYS5pYmFyYWtpLmpwIiwieXVraS5pYmFyYWtpLmpwIiwiYW5hbWl6dS5pc2hpa2F3YS5qcCIsImhha3VpLmlzaGlrYXdhLmpwIiwiaGFrdXNhbi5pc2hpa2F3'@; put 'YS5qcCIsImthZ2EuaXNoaWthd2EuanAiLCJrYWhva3UuaXNoaWthd2EuanAiLCJrYW5hemF3YS5pc2hpa2F3YS5qcCIsImthd2FraXRhLmlzaGlrYXdhLmpwIiwia29tYXRzdS5pc2hpa2F3YS5qcCIsIm5ha2Fub3RvLmlzaGlrYXdhLmpwIiwibmFuYW8uaXNoaWthd2EuanAiLCJub21pLmlz'@; put 'aGlrYXdhLmpwIiwibm9ub2ljaGkuaXNoaWthd2EuanAiLCJub3RvLmlzaGlrYXdhLmpwIiwic2hpa2EuaXNoaWthd2EuanAiLCJzdXp1LmlzaGlrYXdhLmpwIiwidHN1YmF0YS5pc2hpa2F3YS5qcCIsInRzdXJ1Z2kuaXNoaWthd2EuanAiLCJ1Y2hpbmFkYS5pc2hpa2F3YS5qcCIsIndhamlt'@; put 'YS5pc2hpa2F3YS5qcCIsImZ1ZGFpLml3YXRlLmpwIiwiZnVqaXNhd2EuaXdhdGUuanAiLCJoYW5hbWFraS5pd2F0ZS5qcCIsImhpcmFpenVtaS5pd2F0ZS5qcCIsImhpcm9uby5pd2F0ZS5qcCIsImljaGlub2hlLml3YXRlLmpwIiwiaWNoaW5vc2VraS5pd2F0ZS5qcCIsIml3YWl6dW1pLml3'@; put 'YXRlLmpwIiwiaXdhdGUuaXdhdGUuanAiLCJqb2JvamkuaXdhdGUuanAiLCJrYW1haXNoaS5pd2F0ZS5qcCIsImthbmVnYXNha2kuaXdhdGUuanAiLCJrYXJ1bWFpLml3YXRlLmpwIiwia2F3YWkuaXdhdGUuanAiLCJraXRha2FtaS5pd2F0ZS5qcCIsImt1amkuaXdhdGUuanAiLCJrdW5vaGUu'@; put 'aXdhdGUuanAiLCJrdXp1bWFraS5pd2F0ZS5qcCIsIm1peWFrby5pd2F0ZS5qcCIsIm1penVzYXdhLml3YXRlLmpwIiwibW9yaW9rYS5pd2F0ZS5qcCIsIm5pbm9oZS5pd2F0ZS5qcCIsIm5vZGEuaXdhdGUuanAiLCJvZnVuYXRvLml3YXRlLmpwIiwib3NodS5pd2F0ZS5qcCIsIm90c3VjaGku'@; put 'aXdhdGUuanAiLCJyaWt1emVudGFrYXRhLml3YXRlLmpwIiwic2hpd2EuaXdhdGUuanAiLCJzaGl6dWt1aXNoaS5pd2F0ZS5qcCIsInN1bWl0YS5pd2F0ZS5qcCIsInRhbm9oYXRhLml3YXRlLmpwIiwidG9uby5pd2F0ZS5qcCIsInlhaGFiYS5pd2F0ZS5qcCIsInlhbWFkYS5pd2F0ZS5qcCIs'@; put 'ImF5YWdhd2Eua2FnYXdhLmpwIiwiaGlnYXNoaWthZ2F3YS5rYWdhd2EuanAiLCJrYW5vbmppLmthZ2F3YS5qcCIsImtvdG9oaXJhLmthZ2F3YS5qcCIsIm1hbm5vLmthZ2F3YS5qcCIsIm1hcnVnYW1lLmthZ2F3YS5qcCIsIm1pdG95by5rYWdhd2EuanAiLCJuYW9zaGltYS5rYWdhd2EuanAi'@; put 'LCJzYW51a2kua2FnYXdhLmpwIiwidGFkb3RzdS5rYWdhd2EuanAiLCJ0YWthbWF0c3Uua2FnYXdhLmpwIiwidG9ub3Noby5rYWdhd2EuanAiLCJ1Y2hpbm9taS5rYWdhd2EuanAiLCJ1dGF6dS5rYWdhd2EuanAiLCJ6ZW50c3VqaS5rYWdhd2EuanAiLCJha3VuZS5rYWdvc2hpbWEuanAiLCJh'@; put 'bWFtaS5rYWdvc2hpbWEuanAiLCJoaW9raS5rYWdvc2hpbWEuanAiLCJpc2Eua2Fnb3NoaW1hLmpwIiwiaXNlbi5rYWdvc2hpbWEuanAiLCJpenVtaS5rYWdvc2hpbWEuanAiLCJrYWdvc2hpbWEua2Fnb3NoaW1hLmpwIiwia2Fub3lhLmthZ29zaGltYS5qcCIsImthd2FuYWJlLmthZ29zaGlt'@; put 'YS5qcCIsImtpbmtvLmthZ29zaGltYS5qcCIsImtvdXlhbWEua2Fnb3NoaW1hLmpwIiwibWFrdXJhemFraS5rYWdvc2hpbWEuanAiLCJtYXRzdW1vdG8ua2Fnb3NoaW1hLmpwIiwibWluYW1pdGFuZS5rYWdvc2hpbWEuanAiLCJuYWthdGFuZS5rYWdvc2hpbWEuanAiLCJuaXNoaW5vb21vdGUu'@; put 'a2Fnb3NoaW1hLmpwIiwic2F0c3VtYXNlbmRhaS5rYWdvc2hpbWEuanAiLCJzb28ua2Fnb3NoaW1hLmpwIiwidGFydW1penUua2Fnb3NoaW1hLmpwIiwieXVzdWkua2Fnb3NoaW1hLmpwIiwiYWlrYXdhLmthbmFnYXdhLmpwIiwiYXRzdWdpLmthbmFnYXdhLmpwIiwiYXlhc2Uua2FuYWdhd2Eu'@; put 'anAiLCJjaGlnYXNha2kua2FuYWdhd2EuanAiLCJlYmluYS5rYW5hZ2F3YS5qcCIsImZ1amlzYXdhLmthbmFnYXdhLmpwIiwiaGFkYW5vLmthbmFnYXdhLmpwIiwiaGFrb25lLmthbmFnYXdhLmpwIiwiaGlyYXRzdWthLmthbmFnYXdhLmpwIiwiaXNlaGFyYS5rYW5hZ2F3YS5qcCIsImthaXNl'@; put 'aS5rYW5hZ2F3YS5qcCIsImthbWFrdXJhLmthbmFnYXdhLmpwIiwia2l5b2thd2Eua2FuYWdhd2EuanAiLCJtYXRzdWRhLmthbmFnYXdhLmpwIiwibWluYW1pYXNoaWdhcmEua2FuYWdhd2EuanAiLCJtaXVyYS5rYW5hZ2F3YS5qcCIsIm5ha2FpLmthbmFnYXdhLmpwIiwibmlub21peWEua2Fu'@; put 'YWdhd2EuanAiLCJvZGF3YXJhLmthbmFnYXdhLmpwIiwib2kua2FuYWdhd2EuanAiLCJvaXNvLmthbmFnYXdhLmpwIiwic2FnYW1paGFyYS5rYW5hZ2F3YS5qcCIsInNhbXVrYXdhLmthbmFnYXdhLmpwIiwidHN1a3VpLmthbmFnYXdhLmpwIiwieWFtYWtpdGEua2FuYWdhd2EuanAiLCJ5YW1h'@; put 'dG8ua2FuYWdhd2EuanAiLCJ5b2tvc3VrYS5rYW5hZ2F3YS5qcCIsInl1Z2F3YXJhLmthbmFnYXdhLmpwIiwiemFtYS5rYW5hZ2F3YS5qcCIsInp1c2hpLmthbmFnYXdhLmpwIiwiYWtpLmtvY2hpLmpwIiwiZ2Vpc2VpLmtvY2hpLmpwIiwiaGlkYWthLmtvY2hpLmpwIiwiaGlnYXNoaXRzdW5v'@; put 'LmtvY2hpLmpwIiwiaW5vLmtvY2hpLmpwIiwia2FnYW1pLmtvY2hpLmpwIiwia2FtaS5rb2NoaS5qcCIsImtpdGFnYXdhLmtvY2hpLmpwIiwia29jaGkua29jaGkuanAiLCJtaWhhcmEua29jaGkuanAiLCJtb3RveWFtYS5rb2NoaS5qcCIsIm11cm90by5rb2NoaS5qcCIsIm5haGFyaS5rb2No'@; put 'aS5qcCIsIm5ha2FtdXJhLmtvY2hpLmpwIiwibmFua29rdS5rb2NoaS5qcCIsIm5pc2hpdG9zYS5rb2NoaS5qcCIsIm5peW9kb2dhd2Eua29jaGkuanAiLCJvY2hpLmtvY2hpLmpwIiwib2thd2Eua29jaGkuanAiLCJvdG95by5rb2NoaS5qcCIsIm90c3VraS5rb2NoaS5qcCIsInNha2F3YS5r'@; put 'b2NoaS5qcCIsInN1a3Vtby5rb2NoaS5qcCIsInN1c2FraS5rb2NoaS5qcCIsInRvc2Eua29jaGkuanAiLCJ0b3Nhc2hpbWl6dS5rb2NoaS5qcCIsInRveW8ua29jaGkuanAiLCJ0c3Vuby5rb2NoaS5qcCIsInVtYWppLmtvY2hpLmpwIiwieWFzdWRhLmtvY2hpLmpwIiwieXVzdWhhcmEua29j'@; put 'aGkuanAiLCJhbWFrdXNhLmt1bWFtb3RvLmpwIiwiYXJhby5rdW1hbW90by5qcCIsImFzby5rdW1hbW90by5qcCIsImNob3lvLmt1bWFtb3RvLmpwIiwiZ3lva3V0by5rdW1hbW90by5qcCIsImthbWlhbWFrdXNhLmt1bWFtb3RvLmpwIiwia2lrdWNoaS5rdW1hbW90by5qcCIsImt1bWFtb3Rv'@; put 'Lmt1bWFtb3RvLmpwIiwibWFzaGlraS5rdW1hbW90by5qcCIsIm1pZnVuZS5rdW1hbW90by5qcCIsIm1pbmFtYXRhLmt1bWFtb3RvLmpwIiwibWluYW1pb2d1bmkua3VtYW1vdG8uanAiLCJuYWdhc3Uua3VtYW1vdG8uanAiLCJuaXNoaWhhcmEua3VtYW1vdG8uanAiLCJvZ3VuaS5rdW1hbW90'@; put 'by5qcCIsIm96dS5rdW1hbW90by5qcCIsInN1bW90by5rdW1hbW90by5qcCIsInRha2Ftb3JpLmt1bWFtb3RvLmpwIiwidWtpLmt1bWFtb3RvLmpwIiwidXRvLmt1bWFtb3RvLmpwIiwieWFtYWdhLmt1bWFtb3RvLmpwIiwieWFtYXRvLmt1bWFtb3RvLmpwIiwieWF0c3VzaGlyby5rdW1hbW90'@; put 'by5qcCIsImF5YWJlLmt5b3RvLmpwIiwiZnVrdWNoaXlhbWEua3lvdG8uanAiLCJoaWdhc2hpeWFtYS5reW90by5qcCIsImlkZS5reW90by5qcCIsImluZS5reW90by5qcCIsImpveW8ua3lvdG8uanAiLCJrYW1lb2thLmt5b3RvLmpwIiwia2Ftby5reW90by5qcCIsImtpdGEua3lvdG8uanAi'@; put 'LCJraXp1Lmt5b3RvLmpwIiwia3VtaXlhbWEua3lvdG8uanAiLCJreW90YW1iYS5reW90by5qcCIsImt5b3RhbmFiZS5reW90by5qcCIsImt5b3RhbmdvLmt5b3RvLmpwIiwibWFpenVydS5reW90by5qcCIsIm1pbmFtaS5reW90by5qcCIsIm1pbmFtaXlhbWFzaGlyby5reW90by5qcCIsIm1p'@; put 'eWF6dS5reW90by5qcCIsIm11a28ua3lvdG8uanAiLCJuYWdhb2tha3lvLmt5b3RvLmpwIiwibmFrYWd5by5reW90by5qcCIsIm5hbnRhbi5reW90by5qcCIsIm95YW1hemFraS5reW90by5qcCIsInNha3lvLmt5b3RvLmpwIiwic2Vpa2Eua3lvdG8uanAiLCJ0YW5hYmUua3lvdG8uanAiLCJ1'@; put 'amkua3lvdG8uanAiLCJ1aml0YXdhcmEua3lvdG8uanAiLCJ3YXp1a2Eua3lvdG8uanAiLCJ5YW1hc2hpbmEua3lvdG8uanAiLCJ5YXdhdGEua3lvdG8uanAiLCJhc2FoaS5taWUuanAiLCJpbmFiZS5taWUuanAiLCJpc2UubWllLmpwIiwia2FtZXlhbWEubWllLmpwIiwia2F3YWdvZS5taWUu'@; put 'anAiLCJraWhvLm1pZS5qcCIsImtpc29zYWtpLm1pZS5qcCIsImtpd2EubWllLmpwIiwia29tb25vLm1pZS5qcCIsImt1bWFuby5taWUuanAiLCJrdXdhbmEubWllLmpwIiwibWF0c3VzYWthLm1pZS5qcCIsIm1laXdhLm1pZS5qcCIsIm1paGFtYS5taWUuanAiLCJtaW5hbWlpc2UubWllLmpw'@; put 'IiwibWlzdWdpLm1pZS5qcCIsIm1peWFtYS5taWUuanAiLCJuYWJhcmkubWllLmpwIiwic2hpbWEubWllLmpwIiwic3V6dWthLm1pZS5qcCIsInRhZG8ubWllLmpwIiwidGFpa2kubWllLmpwIiwidGFraS5taWUuanAiLCJ0YW1ha2kubWllLmpwIiwidG9iYS5taWUuanAiLCJ0c3UubWllLmpw'@; put 'IiwidWRvbm8ubWllLmpwIiwidXJlc2hpbm8ubWllLmpwIiwid2F0YXJhaS5taWUuanAiLCJ5b2trYWljaGkubWllLmpwIiwiZnVydWthd2EubWl5YWdpLmpwIiwiaGlnYXNoaW1hdHN1c2hpbWEubWl5YWdpLmpwIiwiaXNoaW5vbWFraS5taXlhZ2kuanAiLCJpd2FudW1hLm1peWFnaS5qcCIs'@; put 'Imtha3VkYS5taXlhZ2kuanAiLCJrYW1pLm1peWFnaS5qcCIsImthd2FzYWtpLm1peWFnaS5qcCIsIm1hcnVtb3JpLm1peWFnaS5qcCIsIm1hdHN1c2hpbWEubWl5YWdpLmpwIiwibWluYW1pc2FucmlrdS5taXlhZ2kuanAiLCJtaXNhdG8ubWl5YWdpLmpwIiwibXVyYXRhLm1peWFnaS5qcCIs'@; put 'Im5hdG9yaS5taXlhZ2kuanAiLCJvZ2F3YXJhLm1peWFnaS5qcCIsIm9oaXJhLm1peWFnaS5qcCIsIm9uYWdhd2EubWl5YWdpLmpwIiwib3Nha2kubWl5YWdpLmpwIiwicmlmdS5taXlhZ2kuanAiLCJzZW1pbmUubWl5YWdpLmpwIiwic2hpYmF0YS5taXlhZ2kuanAiLCJzaGljaGlrYXNodWt1'@; put 'Lm1peWFnaS5qcCIsInNoaWthbWEubWl5YWdpLmpwIiwic2hpb2dhbWEubWl5YWdpLmpwIiwic2hpcm9pc2hpLm1peWFnaS5qcCIsInRhZ2Fqby5taXlhZ2kuanAiLCJ0YWl3YS5taXlhZ2kuanAiLCJ0b21lLm1peWFnaS5qcCIsInRvbWl5YS5taXlhZ2kuanAiLCJ3YWt1eWEubWl5YWdpLmpw'@; put 'Iiwid2F0YXJpLm1peWFnaS5qcCIsInlhbWFtb3RvLm1peWFnaS5qcCIsInphby5taXlhZ2kuanAiLCJheWEubWl5YXpha2kuanAiLCJlYmluby5taXlhemFraS5qcCIsImdva2FzZS5taXlhemFraS5qcCIsImh5dWdhLm1peWF6YWtpLmpwIiwia2Fkb2dhd2EubWl5YXpha2kuanAiLCJrYXdh'@; put 'bWluYW1pLm1peWF6YWtpLmpwIiwia2lqby5taXlhemFraS5qcCIsImtpdGFnYXdhLm1peWF6YWtpLmpwIiwia2l0YWthdGEubWl5YXpha2kuanAiLCJraXRhdXJhLm1peWF6YWtpLmpwIiwia29iYXlhc2hpLm1peWF6YWtpLmpwIiwia3VuaXRvbWkubWl5YXpha2kuanAiLCJrdXNoaW1hLm1p'@; put 'eWF6YWtpLmpwIiwibWltYXRhLm1peWF6YWtpLmpwIiwibWl5YWtvbm9qby5taXlhemFraS5qcCIsIm1peWF6YWtpLm1peWF6YWtpLmpwIiwibW9yb3RzdWthLm1peWF6YWtpLmpwIiwibmljaGluYW4ubWl5YXpha2kuanAiLCJuaXNoaW1lcmEubWl5YXpha2kuanAiLCJub2Jlb2thLm1peWF6'@; put 'YWtpLmpwIiwic2FpdG8ubWl5YXpha2kuanAiLCJzaGlpYmEubWl5YXpha2kuanAiLCJzaGludG9taS5taXlhemFraS5qcCIsInRha2FoYXJ1Lm1peWF6YWtpLmpwIiwidGFrYW5hYmUubWl5YXpha2kuanAiLCJ0YWthemFraS5taXlhemFraS5qcCIsInRzdW5vLm1peWF6YWtpLmpwIiwiYWNo'@; put 'aS5uYWdhbm8uanAiLCJhZ2VtYXRzdS5uYWdhbm8uanAiLCJhbmFuLm5hZ2Fuby5qcCIsImFva2kubmFnYW5vLmpwIiwiYXNhaGkubmFnYW5vLmpwIiwiYXp1bWluby5uYWdhbm8uanAiLCJjaGlrdWhva3UubmFnYW5vLmpwIiwiY2hpa3VtYS5uYWdhbm8uanAiLCJjaGluby5uYWdhbm8uanAi'@; put 'LCJmdWppbWkubmFnYW5vLmpwIiwiaGFrdWJhLm5hZ2Fuby5qcCIsImhhcmEubmFnYW5vLmpwIiwiaGlyYXlhLm5hZ2Fuby5qcCIsImlpZGEubmFnYW5vLmpwIiwiaWlqaW1hLm5hZ2Fuby5qcCIsImlpeWFtYS5uYWdhbm8uanAiLCJpaXp1bmEubmFnYW5vLmpwIiwiaWtlZGEubmFnYW5vLmpw'@; put 'IiwiaWt1c2FrYS5uYWdhbm8uanAiLCJpbmEubmFnYW5vLmpwIiwia2FydWl6YXdhLm5hZ2Fuby5qcCIsImthd2FrYW1pLm5hZ2Fuby5qcCIsImtpc28ubmFnYW5vLmpwIiwia2lzb2Z1a3VzaGltYS5uYWdhbm8uanAiLCJraXRhYWlraS5uYWdhbm8uanAiLCJrb21hZ2FuZS5uYWdhbm8uanAi'@; put 'LCJrb21vcm8ubmFnYW5vLmpwIiwibWF0c3VrYXdhLm5hZ2Fuby5qcCIsIm1hdHN1bW90by5uYWdhbm8uanAiLCJtaWFzYS5uYWdhbm8uanAiLCJtaW5hbWlhaWtpLm5hZ2Fuby5qcCIsIm1pbmFtaW1ha2kubmFnYW5vLmpwIiwibWluYW1pbWlub3dhLm5hZ2Fuby5qcCIsIm1pbm93YS5uYWdh'@; put 'bm8uanAiLCJtaXlhZGEubmFnYW5vLmpwIiwibWl5b3RhLm5hZ2Fuby5qcCIsIm1vY2hpenVraS5uYWdhbm8uanAiLCJuYWdhbm8ubmFnYW5vLmpwIiwibmFnYXdhLm5hZ2Fuby5qcCIsIm5hZ2lzby5uYWdhbm8uanAiLCJuYWthZ2F3YS5uYWdhbm8uanAiLCJuYWthbm8ubmFnYW5vLmpwIiwi'@; put 'bm96YXdhb25zZW4ubmFnYW5vLmpwIiwib2J1c2UubmFnYW5vLmpwIiwib2dhd2EubmFnYW5vLmpwIiwib2theWEubmFnYW5vLmpwIiwib21hY2hpLm5hZ2Fuby5qcCIsIm9taS5uYWdhbm8uanAiLCJvb2t1d2EubmFnYW5vLmpwIiwib29zaGlrYS5uYWdhbm8uanAiLCJvdGFraS5uYWdhbm8u'@; put 'anAiLCJvdGFyaS5uYWdhbm8uanAiLCJzYWthZS5uYWdhbm8uanAiLCJzYWtha2kubmFnYW5vLmpwIiwic2FrdS5uYWdhbm8uanAiLCJzYWt1aG8ubmFnYW5vLmpwIiwic2hpbW9zdXdhLm5hZ2Fuby5qcCIsInNoaW5hbm9tYWNoaS5uYWdhbm8uanAiLCJzaGlvamlyaS5uYWdhbm8uanAiLCJz'@; put 'dXdhLm5hZ2Fuby5qcCIsInN1emFrYS5uYWdhbm8uanAiLCJ0YWthZ2kubmFnYW5vLmpwIiwidGFrYW1vcmkubmFnYW5vLmpwIiwidGFrYXlhbWEubmFnYW5vLmpwIiwidGF0ZXNoaW5hLm5hZ2Fuby5qcCIsInRhdHN1bm8ubmFnYW5vLmpwIiwidG9nYWt1c2hpLm5hZ2Fuby5qcCIsInRvZ3Vy'@; put 'YS5uYWdhbm8uanAiLCJ0b21pLm5hZ2Fuby5qcCIsInVlZGEubmFnYW5vLmpwIiwid2FkYS5uYWdhbm8uanAiLCJ5YW1hZ2F0YS5uYWdhbm8uanAiLCJ5YW1hbm91Y2hpLm5hZ2Fuby5qcCIsInlhc2FrYS5uYWdhbm8uanAiLCJ5YXN1b2thLm5hZ2Fuby5qcCIsImNoaWppd2EubmFnYXNha2ku'@; put 'anAiLCJmdXRzdS5uYWdhc2FraS5qcCIsImdvdG8ubmFnYXNha2kuanAiLCJoYXNhbWkubmFnYXNha2kuanAiLCJoaXJhZG8ubmFnYXNha2kuanAiLCJpa2kubmFnYXNha2kuanAiLCJpc2FoYXlhLm5hZ2FzYWtpLmpwIiwia2F3YXRhbmEubmFnYXNha2kuanAiLCJrdWNoaW5vdHN1Lm5hZ2Fz'@; put 'YWtpLmpwIiwibWF0c3V1cmEubmFnYXNha2kuanAiLCJuYWdhc2FraS5uYWdhc2FraS5qcCIsIm9iYW1hLm5hZ2FzYWtpLmpwIiwib211cmEubmFnYXNha2kuanAiLCJvc2V0by5uYWdhc2FraS5qcCIsInNhaWthaS5uYWdhc2FraS5qcCIsInNhc2Viby5uYWdhc2FraS5qcCIsInNlaWhpLm5h'@; put 'Z2FzYWtpLmpwIiwic2hpbWFiYXJhLm5hZ2FzYWtpLmpwIiwic2hpbmthbWlnb3RvLm5hZ2FzYWtpLmpwIiwidG9naXRzdS5uYWdhc2FraS5qcCIsInRzdXNoaW1hLm5hZ2FzYWtpLmpwIiwidW56ZW4ubmFnYXNha2kuanAiLCJhbmRvLm5hcmEuanAiLCJnb3NlLm5hcmEuanAiLCJoZWd1cmku'@; put 'bmFyYS5qcCIsImhpZ2FzaGl5b3NoaW5vLm5hcmEuanAiLCJpa2FydWdhLm5hcmEuanAiLCJpa29tYS5uYXJhLmpwIiwia2FtaWtpdGF5YW1hLm5hcmEuanAiLCJrYW5tYWtpLm5hcmEuanAiLCJrYXNoaWJhLm5hcmEuanAiLCJrYXNoaWhhcmEubmFyYS5qcCIsImthdHN1cmFnaS5uYXJhLmpw'@; put 'Iiwia2F3YWkubmFyYS5qcCIsImthd2FrYW1pLm5hcmEuanAiLCJrYXdhbmlzaGkubmFyYS5qcCIsImtvcnlvLm5hcmEuanAiLCJrdXJvdGFraS5uYXJhLmpwIiwibWl0c3VlLm5hcmEuanAiLCJtaXlha2UubmFyYS5qcCIsIm5hcmEubmFyYS5qcCIsIm5vc2VnYXdhLm5hcmEuanAiLCJvamku'@; put 'bmFyYS5qcCIsIm91ZGEubmFyYS5qcCIsIm95b2RvLm5hcmEuanAiLCJzYWt1cmFpLm5hcmEuanAiLCJzYW5nby5uYXJhLmpwIiwic2hpbW9pY2hpLm5hcmEuanAiLCJzaGltb2tpdGF5YW1hLm5hcmEuanAiLCJzaGluam8ubmFyYS5qcCIsInNvbmkubmFyYS5qcCIsInRha2F0b3JpLm5hcmEu'@; put 'anAiLCJ0YXdhcmFtb3RvLm5hcmEuanAiLCJ0ZW5rYXdhLm5hcmEuanAiLCJ0ZW5yaS5uYXJhLmpwIiwidWRhLm5hcmEuanAiLCJ5YW1hdG9rb3JpeWFtYS5uYXJhLmpwIiwieWFtYXRvdGFrYWRhLm5hcmEuanAiLCJ5YW1hem9lLm5hcmEuanAiLCJ5b3NoaW5vLm5hcmEuanAiLCJhZ2Eubmlp'@; put 'Z2F0YS5qcCIsImFnYW5vLm5paWdhdGEuanAiLCJnb3Nlbi5uaWlnYXRhLmpwIiwiaXRvaWdhd2EubmlpZ2F0YS5qcCIsIml6dW1vemFraS5uaWlnYXRhLmpwIiwiam9ldHN1Lm5paWdhdGEuanAiLCJrYW1vLm5paWdhdGEuanAiLCJrYXJpd2EubmlpZ2F0YS5qcCIsImthc2hpd2F6YWtpLm5p'@; put 'aWdhdGEuanAiLCJtaW5hbWl1b251bWEubmlpZ2F0YS5qcCIsIm1pdHN1a2UubmlpZ2F0YS5qcCIsIm11aWthLm5paWdhdGEuanAiLCJtdXJha2FtaS5uaWlnYXRhLmpwIiwibXlva28ubmlpZ2F0YS5qcCIsIm5hZ2Fva2EubmlpZ2F0YS5qcCIsIm5paWdhdGEubmlpZ2F0YS5qcCIsIm9qaXlh'@; put 'Lm5paWdhdGEuanAiLCJvbWkubmlpZ2F0YS5qcCIsInNhZG8ubmlpZ2F0YS5qcCIsInNhbmpvLm5paWdhdGEuanAiLCJzZWlyby5uaWlnYXRhLmpwIiwic2Vpcm91Lm5paWdhdGEuanAiLCJzZWtpa2F3YS5uaWlnYXRhLmpwIiwic2hpYmF0YS5uaWlnYXRhLmpwIiwidGFnYW1pLm5paWdhdGEu'@; put 'anAiLCJ0YWluYWkubmlpZ2F0YS5qcCIsInRvY2hpby5uaWlnYXRhLmpwIiwidG9rYW1hY2hpLm5paWdhdGEuanAiLCJ0c3ViYW1lLm5paWdhdGEuanAiLCJ0c3VuYW4ubmlpZ2F0YS5qcCIsInVvbnVtYS5uaWlnYXRhLmpwIiwieWFoaWtvLm5paWdhdGEuanAiLCJ5b2l0YS5uaWlnYXRhLmpw'@; put 'IiwieXV6YXdhLm5paWdhdGEuanAiLCJiZXBwdS5vaXRhLmpwIiwiYnVuZ29vbm8ub2l0YS5qcCIsImJ1bmdvdGFrYWRhLm9pdGEuanAiLCJoYXNhbWEub2l0YS5qcCIsImhpamkub2l0YS5qcCIsImhpbWVzaGltYS5vaXRhLmpwIiwiaGl0YS5vaXRhLmpwIiwia2FtaXRzdWUub2l0YS5qcCIs'@; put 'Imtva29ub2Uub2l0YS5qcCIsImt1anUub2l0YS5qcCIsImt1bmlzYWtpLm9pdGEuanAiLCJrdXN1Lm9pdGEuanAiLCJvaXRhLm9pdGEuanAiLCJzYWlraS5vaXRhLmpwIiwidGFrZXRhLm9pdGEuanAiLCJ0c3VrdW1pLm9pdGEuanAiLCJ1c2Eub2l0YS5qcCIsInVzdWtpLm9pdGEuanAiLCJ5'@; put 'dWZ1Lm9pdGEuanAiLCJha2Fpd2Eub2theWFtYS5qcCIsImFzYWt1Y2hpLm9rYXlhbWEuanAiLCJiaXplbi5va2F5YW1hLmpwIiwiaGF5YXNoaW1hLm9rYXlhbWEuanAiLCJpYmFyYS5va2F5YW1hLmpwIiwia2FnYW1pbm8ub2theWFtYS5qcCIsImthc2Fva2Eub2theWFtYS5qcCIsImtpYmlj'@; put 'aHVvLm9rYXlhbWEuanAiLCJrdW1lbmFuLm9rYXlhbWEuanAiLCJrdXJhc2hpa2kub2theWFtYS5qcCIsIm1hbml3YS5va2F5YW1hLmpwIiwibWlzYWtpLm9rYXlhbWEuanAiLCJuYWdpLm9rYXlhbWEuanAiLCJuaWltaS5va2F5YW1hLmpwIiwibmlzaGlhd2FrdXJhLm9rYXlhbWEuanAiLCJv'@; put 'a2F5YW1hLm9rYXlhbWEuanAiLCJzYXRvc2hvLm9rYXlhbWEuanAiLCJzZXRvdWNoaS5va2F5YW1hLmpwIiwic2hpbmpvLm9rYXlhbWEuanAiLCJzaG9vLm9rYXlhbWEuanAiLCJzb2phLm9rYXlhbWEuanAiLCJ0YWthaGFzaGkub2theWFtYS5qcCIsInRhbWFuby5va2F5YW1hLmpwIiwidHN1'@; put 'eWFtYS5va2F5YW1hLmpwIiwid2FrZS5va2F5YW1hLmpwIiwieWFrYWdlLm9rYXlhbWEuanAiLCJhZ3VuaS5va2luYXdhLmpwIiwiZ2lub3dhbi5va2luYXdhLmpwIiwiZ2lub3phLm9raW5hd2EuanAiLCJndXNoaWthbWkub2tpbmF3YS5qcCIsImhhZWJhcnUub2tpbmF3YS5qcCIsImhpZ2Fz'@; put 'aGkub2tpbmF3YS5qcCIsImhpcmFyYS5va2luYXdhLmpwIiwiaWhleWEub2tpbmF3YS5qcCIsImlzaGlnYWtpLm9raW5hd2EuanAiLCJpc2hpa2F3YS5va2luYXdhLmpwIiwiaXRvbWFuLm9raW5hd2EuanAiLCJpemVuYS5va2luYXdhLmpwIiwia2FkZW5hLm9raW5hd2EuanAiLCJraW4ub2tp'@; put 'bmF3YS5qcCIsImtpdGFkYWl0by5va2luYXdhLmpwIiwia2l0YW5ha2FndXN1a3Uub2tpbmF3YS5qcCIsImt1bWVqaW1hLm9raW5hd2EuanAiLCJrdW5pZ2FtaS5va2luYXdhLmpwIiwibWluYW1pZGFpdG8ub2tpbmF3YS5qcCIsIm1vdG9idS5va2luYXdhLmpwIiwibmFnby5va2luYXdhLmpw'@; put 'IiwibmFoYS5va2luYXdhLmpwIiwibmFrYWd1c3VrdS5va2luYXdhLmpwIiwibmFraWppbi5va2luYXdhLmpwIiwibmFuam8ub2tpbmF3YS5qcCIsIm5pc2hpaGFyYS5va2luYXdhLmpwIiwib2dpbWkub2tpbmF3YS5qcCIsIm9raW5hd2Eub2tpbmF3YS5qcCIsIm9ubmEub2tpbmF3YS5qcCIs'@; put 'InNoaW1vamkub2tpbmF3YS5qcCIsInRha2V0b21pLm9raW5hd2EuanAiLCJ0YXJhbWEub2tpbmF3YS5qcCIsInRva2FzaGlraS5va2luYXdhLmpwIiwidG9taWd1c3VrdS5va2luYXdhLmpwIiwidG9uYWtpLm9raW5hd2EuanAiLCJ1cmFzb2Uub2tpbmF3YS5qcCIsInVydW1hLm9raW5hd2Eu'@; put 'anAiLCJ5YWVzZS5va2luYXdhLmpwIiwieW9taXRhbi5va2luYXdhLmpwIiwieW9uYWJhcnUub2tpbmF3YS5qcCIsInlvbmFndW5pLm9raW5hd2EuanAiLCJ6YW1hbWkub2tpbmF3YS5qcCIsImFiZW5vLm9zYWthLmpwIiwiY2hpaGF5YWFrYXNha2Eub3Nha2EuanAiLCJjaHVvLm9zYWthLmpw'@; put 'IiwiZGFpdG8ub3Nha2EuanAiLCJmdWppaWRlcmEub3Nha2EuanAiLCJoYWJpa2luby5vc2FrYS5qcCIsImhhbm5hbi5vc2FrYS5qcCIsImhpZ2FzaGlvc2FrYS5vc2FrYS5qcCIsImhpZ2FzaGlzdW1peW9zaGkub3Nha2EuanAiLCJoaWdhc2hpeW9kb2dhd2Eub3Nha2EuanAiLCJoaXJha2F0'@; put 'YS5vc2FrYS5qcCIsImliYXJha2kub3Nha2EuanAiLCJpa2VkYS5vc2FrYS5qcCIsIml6dW1pLm9zYWthLmpwIiwiaXp1bWlvdHN1Lm9zYWthLmpwIiwiaXp1bWlzYW5vLm9zYWthLmpwIiwia2Fkb21hLm9zYWthLmpwIiwia2FpenVrYS5vc2FrYS5qcCIsImthbmFuLm9zYWthLmpwIiwia2Fz'@; put 'aGl3YXJhLm9zYWthLmpwIiwia2F0YW5vLm9zYWthLmpwIiwia2F3YWNoaW5hZ2Fuby5vc2FrYS5qcCIsImtpc2hpd2FkYS5vc2FrYS5qcCIsImtpdGEub3Nha2EuanAiLCJrdW1hdG9yaS5vc2FrYS5qcCIsIm1hdHN1YmFyYS5vc2FrYS5qcCIsIm1pbmF0by5vc2FrYS5qcCIsIm1pbm9oLm9z'@; put 'YWthLmpwIiwibWlzYWtpLm9zYWthLmpwIiwibW9yaWd1Y2hpLm9zYWthLmpwIiwibmV5YWdhd2Eub3Nha2EuanAiLCJuaXNoaS5vc2FrYS5qcCIsIm5vc2Uub3Nha2EuanAiLCJvc2FrYXNheWFtYS5vc2FrYS5qcCIsInNha2FpLm9zYWthLmpwIiwic2F5YW1hLm9zYWthLmpwIiwic2VubmFu'@; put 'Lm9zYWthLmpwIiwic2V0dHN1Lm9zYWthLmpwIiwic2hpam9uYXdhdGUub3Nha2EuanAiLCJzaGltYW1vdG8ub3Nha2EuanAiLCJzdWl0YS5vc2FrYS5qcCIsInRhZGFva2Eub3Nha2EuanAiLCJ0YWlzaGkub3Nha2EuanAiLCJ0YWppcmkub3Nha2EuanAiLCJ0YWthaXNoaS5vc2FrYS5qcCIs'@; put 'InRha2F0c3VraS5vc2FrYS5qcCIsInRvbmRhYmF5YXNoaS5vc2FrYS5qcCIsInRveW9uYWthLm9zYWthLmpwIiwidG95b25vLm9zYWthLmpwIiwieWFvLm9zYWthLmpwIiwiYXJpYWtlLnNhZ2EuanAiLCJhcml0YS5zYWdhLmpwIiwiZnVrdWRvbWkuc2FnYS5qcCIsImdlbmthaS5zYWdhLmpw'@; put 'IiwiaGFtYXRhbWEuc2FnYS5qcCIsImhpemVuLnNhZ2EuanAiLCJpbWFyaS5zYWdhLmpwIiwia2FtaW1pbmUuc2FnYS5qcCIsImthbnpha2kuc2FnYS5qcCIsImthcmF0c3Uuc2FnYS5qcCIsImthc2hpbWEuc2FnYS5qcCIsImtpdGFnYXRhLnNhZ2EuanAiLCJraXRhaGF0YS5zYWdhLmpwIiwi'@; put 'a2l5YW1hLnNhZ2EuanAiLCJrb3Vob2t1LnNhZ2EuanAiLCJreXVyYWdpLnNhZ2EuanAiLCJuaXNoaWFyaXRhLnNhZ2EuanAiLCJvZ2kuc2FnYS5qcCIsIm9tYWNoaS5zYWdhLmpwIiwib3VjaGkuc2FnYS5qcCIsInNhZ2Euc2FnYS5qcCIsInNoaXJvaXNoaS5zYWdhLmpwIiwidGFrdS5zYWdh'@; put 'LmpwIiwidGFyYS5zYWdhLmpwIiwidG9zdS5zYWdhLmpwIiwieW9zaGlub2dhcmkuc2FnYS5qcCIsImFyYWthd2Euc2FpdGFtYS5qcCIsImFzYWthLnNhaXRhbWEuanAiLCJjaGljaGlidS5zYWl0YW1hLmpwIiwiZnVqaW1pLnNhaXRhbWEuanAiLCJmdWppbWluby5zYWl0YW1hLmpwIiwiZnVr'@; put 'YXlhLnNhaXRhbWEuanAiLCJoYW5uby5zYWl0YW1hLmpwIiwiaGFueXUuc2FpdGFtYS5qcCIsImhhc3VkYS5zYWl0YW1hLmpwIiwiaGF0b2dheWEuc2FpdGFtYS5qcCIsImhhdG95YW1hLnNhaXRhbWEuanAiLCJoaWRha2Euc2FpdGFtYS5qcCIsImhpZ2FzaGljaGljaGlidS5zYWl0YW1hLmpw'@; put 'IiwiaGlnYXNoaW1hdHN1eWFtYS5zYWl0YW1hLmpwIiwiaG9uam8uc2FpdGFtYS5qcCIsImluYS5zYWl0YW1hLmpwIiwiaXJ1bWEuc2FpdGFtYS5qcCIsIml3YXRzdWtpLnNhaXRhbWEuanAiLCJrYW1paXp1bWkuc2FpdGFtYS5qcCIsImthbWlrYXdhLnNhaXRhbWEuanAiLCJrYW1pc2F0by5z'@; put 'YWl0YW1hLmpwIiwia2FzdWthYmUuc2FpdGFtYS5qcCIsImthd2Fnb2Uuc2FpdGFtYS5qcCIsImthd2FndWNoaS5zYWl0YW1hLmpwIiwia2F3YWppbWEuc2FpdGFtYS5qcCIsImthem8uc2FpdGFtYS5qcCIsImtpdGFtb3RvLnNhaXRhbWEuanAiLCJrb3NoaWdheWEuc2FpdGFtYS5qcCIsImtv'@; put 'dW5vc3Uuc2FpdGFtYS5qcCIsImt1a2kuc2FpdGFtYS5qcCIsImt1bWFnYXlhLnNhaXRhbWEuanAiLCJtYXRzdWJ1c2hpLnNhaXRhbWEuanAiLCJtaW5hbm8uc2FpdGFtYS5qcCIsIm1pc2F0by5zYWl0YW1hLmpwIiwibWl5YXNoaXJvLnNhaXRhbWEuanAiLCJtaXlvc2hpLnNhaXRhbWEuanAi'@; put 'LCJtb3JveWFtYS5zYWl0YW1hLmpwIiwibmFnYXRvcm8uc2FpdGFtYS5qcCIsIm5hbWVnYXdhLnNhaXRhbWEuanAiLCJuaWl6YS5zYWl0YW1hLmpwIiwib2dhbm8uc2FpdGFtYS5qcCIsIm9nYXdhLnNhaXRhbWEuanAiLCJvZ29zZS5zYWl0YW1hLmpwIiwib2tlZ2F3YS5zYWl0YW1hLmpwIiwi'@; put 'b21peWEuc2FpdGFtYS5qcCIsIm90YWtpLnNhaXRhbWEuanAiLCJyYW56YW4uc2FpdGFtYS5qcCIsInJ5b2thbWkuc2FpdGFtYS5qcCIsInNhaXRhbWEuc2FpdGFtYS5qcCIsInNha2Fkby5zYWl0YW1hLmpwIiwic2F0dGUuc2FpdGFtYS5qcCIsInNheWFtYS5zYWl0YW1hLmpwIiwic2hpa2ku'@; put 'c2FpdGFtYS5qcCIsInNoaXJhb2thLnNhaXRhbWEuanAiLCJzb2thLnNhaXRhbWEuanAiLCJzdWdpdG8uc2FpdGFtYS5qcCIsInRvZGEuc2FpdGFtYS5qcCIsInRva2lnYXdhLnNhaXRhbWEuanAiLCJ0b2tvcm96YXdhLnNhaXRhbWEuanAiLCJ0c3VydWdhc2hpbWEuc2FpdGFtYS5qcCIsInVy'@; put 'YXdhLnNhaXRhbWEuanAiLCJ3YXJhYmkuc2FpdGFtYS5qcCIsInlhc2hpby5zYWl0YW1hLmpwIiwieW9rb3plLnNhaXRhbWEuanAiLCJ5b25vLnNhaXRhbWEuanAiLCJ5b3JpaS5zYWl0YW1hLmpwIiwieW9zaGlkYS5zYWl0YW1hLmpwIiwieW9zaGlrYXdhLnNhaXRhbWEuanAiLCJ5b3NoaW1p'@; put 'LnNhaXRhbWEuanAiLCJhaXNoby5zaGlnYS5qcCIsImdhbW8uc2hpZ2EuanAiLCJoaWdhc2hpb21pLnNoaWdhLmpwIiwiaGlrb25lLnNoaWdhLmpwIiwia29rYS5zaGlnYS5qcCIsImtvbmFuLnNoaWdhLmpwIiwia29zZWkuc2hpZ2EuanAiLCJrb3RvLnNoaWdhLmpwIiwia3VzYXRzdS5zaGln'@; put 'YS5qcCIsIm1haWJhcmEuc2hpZ2EuanAiLCJtb3JpeWFtYS5zaGlnYS5qcCIsIm5hZ2FoYW1hLnNoaWdhLmpwIiwibmlzaGlhemFpLnNoaWdhLmpwIiwibm90b2dhd2Euc2hpZ2EuanAiLCJvbWloYWNoaW1hbi5zaGlnYS5qcCIsIm90c3Uuc2hpZ2EuanAiLCJyaXR0by5zaGlnYS5qcCIsInJ5'@; put 'dW9oLnNoaWdhLmpwIiwidGFrYXNoaW1hLnNoaWdhLmpwIiwidGFrYXRzdWtpLnNoaWdhLmpwIiwidG9yYWhpbWUuc2hpZ2EuanAiLCJ0b3lvc2F0by5zaGlnYS5qcCIsInlhc3Uuc2hpZ2EuanAiLCJha2FnaS5zaGltYW5lLmpwIiwiYW1hLnNoaW1hbmUuanAiLCJnb3RzdS5zaGltYW5lLmpw'@; put 'IiwiaGFtYWRhLnNoaW1hbmUuanAiLCJoaWdhc2hpaXp1bW8uc2hpbWFuZS5qcCIsImhpa2F3YS5zaGltYW5lLmpwIiwiaGlraW1pLnNoaW1hbmUuanAiLCJpenVtby5zaGltYW5lLmpwIiwia2FraW5va2kuc2hpbWFuZS5qcCIsIm1hc3VkYS5zaGltYW5lLmpwIiwibWF0c3VlLnNoaW1hbmUu'@; put 'anAiLCJtaXNhdG8uc2hpbWFuZS5qcCIsIm5pc2hpbm9zaGltYS5zaGltYW5lLmpwIiwib2hkYS5zaGltYW5lLmpwIiwib2tpbm9zaGltYS5zaGltYW5lLmpwIiwib2t1aXp1bW8uc2hpbWFuZS5qcCIsInNoaW1hbmUuc2hpbWFuZS5qcCIsInRhbWF5dS5zaGltYW5lLmpwIiwidHN1d2Fuby5z'@; put 'aGltYW5lLmpwIiwidW5uYW4uc2hpbWFuZS5qcCIsInlha3Vtby5zaGltYW5lLmpwIiwieWFzdWdpLnNoaW1hbmUuanAiLCJ5YXRzdWthLnNoaW1hbmUuanAiLCJhcmFpLnNoaXp1b2thLmpwIiwiYXRhbWkuc2hpenVva2EuanAiLCJmdWppLnNoaXp1b2thLmpwIiwiZnVqaWVkYS5zaGl6dW9r'@; put 'YS5qcCIsImZ1amlrYXdhLnNoaXp1b2thLmpwIiwiZnVqaW5vbWl5YS5zaGl6dW9rYS5qcCIsImZ1a3Vyb2kuc2hpenVva2EuanAiLCJnb3RlbWJhLnNoaXp1b2thLmpwIiwiaGFpYmFyYS5zaGl6dW9rYS5qcCIsImhhbWFtYXRzdS5zaGl6dW9rYS5qcCIsImhpZ2FzaGlpenUuc2hpenVva2Eu'@; put 'anAiLCJpdG8uc2hpenVva2EuanAiLCJpd2F0YS5zaGl6dW9rYS5qcCIsIml6dS5zaGl6dW9rYS5qcCIsIml6dW5va3VuaS5zaGl6dW9rYS5qcCIsImtha2VnYXdhLnNoaXp1b2thLmpwIiwia2FubmFtaS5zaGl6dW9rYS5qcCIsImthd2FuZWhvbi5zaGl6dW9rYS5qcCIsImthd2F6dS5zaGl6'@; put 'dW9rYS5qcCIsImtpa3VnYXdhLnNoaXp1b2thLmpwIiwia29zYWkuc2hpenVva2EuanAiLCJtYWtpbm9oYXJhLnNoaXp1b2thLmpwIiwibWF0c3V6YWtpLnNoaXp1b2thLmpwIiwibWluYW1paXp1LnNoaXp1b2thLmpwIiwibWlzaGltYS5zaGl6dW9rYS5qcCIsIm1vcmltYWNoaS5zaGl6dW9r'@; put 'YS5qcCIsIm5pc2hpaXp1LnNoaXp1b2thLmpwIiwibnVtYXp1LnNoaXp1b2thLmpwIiwib21hZXpha2kuc2hpenVva2EuanAiLCJzaGltYWRhLnNoaXp1b2thLmpwIiwic2hpbWl6dS5zaGl6dW9rYS5qcCIsInNoaW1vZGEuc2hpenVva2EuanAiLCJzaGl6dW9rYS5zaGl6dW9rYS5qcCIsInN1'@; put 'c29uby5zaGl6dW9rYS5qcCIsInlhaXp1LnNoaXp1b2thLmpwIiwieW9zaGlkYS5zaGl6dW9rYS5qcCIsImFzaGlrYWdhLnRvY2hpZ2kuanAiLCJiYXRvLnRvY2hpZ2kuanAiLCJoYWdhLnRvY2hpZ2kuanAiLCJpY2hpa2FpLnRvY2hpZ2kuanAiLCJpd2FmdW5lLnRvY2hpZ2kuanAiLCJrYW1p'@; put 'bm9rYXdhLnRvY2hpZ2kuanAiLCJrYW51bWEudG9jaGlnaS5qcCIsImthcmFzdXlhbWEudG9jaGlnaS5qcCIsImt1cm9pc28udG9jaGlnaS5qcCIsIm1hc2hpa28udG9jaGlnaS5qcCIsIm1pYnUudG9jaGlnaS5qcCIsIm1va2EudG9jaGlnaS5qcCIsIm1vdGVnaS50b2NoaWdpLmpwIiwibmFz'@; put 'dS50b2NoaWdpLmpwIiwibmFzdXNoaW9iYXJhLnRvY2hpZ2kuanAiLCJuaWtrby50b2NoaWdpLmpwIiwibmlzaGlrYXRhLnRvY2hpZ2kuanAiLCJub2dpLnRvY2hpZ2kuanAiLCJvaGlyYS50b2NoaWdpLmpwIiwib2h0YXdhcmEudG9jaGlnaS5qcCIsIm95YW1hLnRvY2hpZ2kuanAiLCJzYWt1'@; put 'cmEudG9jaGlnaS5qcCIsInNhbm8udG9jaGlnaS5qcCIsInNoaW1vdHN1a2UudG9jaGlnaS5qcCIsInNoaW95YS50b2NoaWdpLmpwIiwidGFrYW5lemF3YS50b2NoaWdpLmpwIiwidG9jaGlnaS50b2NoaWdpLmpwIiwidHN1Z2EudG9jaGlnaS5qcCIsInVqaWllLnRvY2hpZ2kuanAiLCJ1dHN1'@; put 'bm9taXlhLnRvY2hpZ2kuanAiLCJ5YWl0YS50b2NoaWdpLmpwIiwiYWl6dW1pLnRva3VzaGltYS5qcCIsImFuYW4udG9rdXNoaW1hLmpwIiwiaWNoaWJhLnRva3VzaGltYS5qcCIsIml0YW5vLnRva3VzaGltYS5qcCIsImthaW5hbi50b2t1c2hpbWEuanAiLCJrb21hdHN1c2hpbWEudG9rdXNo'@; put 'aW1hLmpwIiwibWF0c3VzaGlnZS50b2t1c2hpbWEuanAiLCJtaW1hLnRva3VzaGltYS5qcCIsIm1pbmFtaS50b2t1c2hpbWEuanAiLCJtaXlvc2hpLnRva3VzaGltYS5qcCIsIm11Z2kudG9rdXNoaW1hLmpwIiwibmFrYWdhd2EudG9rdXNoaW1hLmpwIiwibmFydXRvLnRva3VzaGltYS5qcCIs'@; put 'InNhbmFnb2NoaS50b2t1c2hpbWEuanAiLCJzaGlzaGlrdWkudG9rdXNoaW1hLmpwIiwidG9rdXNoaW1hLnRva3VzaGltYS5qcCIsIndhamlraS50b2t1c2hpbWEuanAiLCJhZGFjaGkudG9reW8uanAiLCJha2lydW5vLnRva3lvLmpwIiwiYWtpc2hpbWEudG9reW8uanAiLCJhb2dhc2hpbWEu'@; put 'dG9reW8uanAiLCJhcmFrYXdhLnRva3lvLmpwIiwiYnVua3lvLnRva3lvLmpwIiwiY2hpeW9kYS50b2t5by5qcCIsImNob2Z1LnRva3lvLmpwIiwiY2h1by50b2t5by5qcCIsImVkb2dhd2EudG9reW8uanAiLCJmdWNodS50b2t5by5qcCIsImZ1c3NhLnRva3lvLmpwIiwiaGFjaGlqby50b2t5'@; put 'by5qcCIsImhhY2hpb2ppLnRva3lvLmpwIiwiaGFtdXJhLnRva3lvLmpwIiwiaGlnYXNoaWt1cnVtZS50b2t5by5qcCIsImhpZ2FzaGltdXJheWFtYS50b2t5by5qcCIsImhpZ2FzaGl5YW1hdG8udG9reW8uanAiLCJoaW5vLnRva3lvLmpwIiwiaGlub2RlLnRva3lvLmpwIiwiaGlub2hhcmEu'@; put 'dG9reW8uanAiLCJpbmFnaS50b2t5by5qcCIsIml0YWJhc2hpLnRva3lvLmpwIiwia2F0c3VzaGlrYS50b2t5by5qcCIsImtpdGEudG9reW8uanAiLCJraXlvc2UudG9reW8uanAiLCJrb2RhaXJhLnRva3lvLmpwIiwia29nYW5laS50b2t5by5qcCIsImtva3VidW5qaS50b2t5by5qcCIsImtv'@; put 'bWFlLnRva3lvLmpwIiwia290by50b2t5by5qcCIsImtvdXp1c2hpbWEudG9reW8uanAiLCJrdW5pdGFjaGkudG9reW8uanAiLCJtYWNoaWRhLnRva3lvLmpwIiwibWVndXJvLnRva3lvLmpwIiwibWluYXRvLnRva3lvLmpwIiwibWl0YWthLnRva3lvLmpwIiwibWl6dWhvLnRva3lvLmpwIiwi'@; put 'bXVzYXNoaW11cmF5YW1hLnRva3lvLmpwIiwibXVzYXNoaW5vLnRva3lvLmpwIiwibmFrYW5vLnRva3lvLmpwIiwibmVyaW1hLnRva3lvLmpwIiwib2dhc2F3YXJhLnRva3lvLmpwIiwib2t1dGFtYS50b2t5by5qcCIsIm9tZS50b2t5by5qcCIsIm9zaGltYS50b2t5by5qcCIsIm90YS50b2t5'@; put 'by5qcCIsInNldGFnYXlhLnRva3lvLmpwIiwic2hpYnV5YS50b2t5by5qcCIsInNoaW5hZ2F3YS50b2t5by5qcCIsInNoaW5qdWt1LnRva3lvLmpwIiwic3VnaW5hbWkudG9reW8uanAiLCJzdW1pZGEudG9reW8uanAiLCJ0YWNoaWthd2EudG9reW8uanAiLCJ0YWl0by50b2t5by5qcCIsInRh'@; put 'bWEudG9reW8uanAiLCJ0b3NoaW1hLnRva3lvLmpwIiwiY2hpenUudG90dG9yaS5qcCIsImhpbm8udG90dG9yaS5qcCIsImthd2FoYXJhLnRvdHRvcmkuanAiLCJrb2dlLnRvdHRvcmkuanAiLCJrb3RvdXJhLnRvdHRvcmkuanAiLCJtaXNhc2EudG90dG9yaS5qcCIsIm5hbmJ1LnRvdHRvcmku'@; put 'anAiLCJuaWNoaW5hbi50b3R0b3JpLmpwIiwic2FrYWltaW5hdG8udG90dG9yaS5qcCIsInRvdHRvcmkudG90dG9yaS5qcCIsIndha2FzYS50b3R0b3JpLmpwIiwieWF6dS50b3R0b3JpLmpwIiwieW9uYWdvLnRvdHRvcmkuanAiLCJhc2FoaS50b3lhbWEuanAiLCJmdWNodS50b3lhbWEuanAi'@; put 'LCJmdWt1bWl0c3UudG95YW1hLmpwIiwiZnVuYWhhc2hpLnRveWFtYS5qcCIsImhpbWkudG95YW1hLmpwIiwiaW1penUudG95YW1hLmpwIiwiaW5hbWkudG95YW1hLmpwIiwiam9oYW5hLnRveWFtYS5qcCIsImthbWlpY2hpLnRveWFtYS5qcCIsImt1cm9iZS50b3lhbWEuanAiLCJuYWthbmlp'@; put 'a2F3YS50b3lhbWEuanAiLCJuYW1lcmlrYXdhLnRveWFtYS5qcCIsIm5hbnRvLnRveWFtYS5qcCIsIm55dXplbi50b3lhbWEuanAiLCJveWFiZS50b3lhbWEuanAiLCJ0YWlyYS50b3lhbWEuanAiLCJ0YWthb2thLnRveWFtYS5qcCIsInRhdGV5YW1hLnRveWFtYS5qcCIsInRvZ2EudG95YW1h'@; put 'LmpwIiwidG9uYW1pLnRveWFtYS5qcCIsInRveWFtYS50b3lhbWEuanAiLCJ1bmF6dWtpLnRveWFtYS5qcCIsInVvenUudG95YW1hLmpwIiwieWFtYWRhLnRveWFtYS5qcCIsImFyaWRhLndha2F5YW1hLmpwIiwiYXJpZGFnYXdhLndha2F5YW1hLmpwIiwiZ29iby53YWtheWFtYS5qcCIsImhh'@; put 'c2hpbW90by53YWtheWFtYS5qcCIsImhpZGFrYS53YWtheWFtYS5qcCIsImhpcm9nYXdhLndha2F5YW1hLmpwIiwiaW5hbWkud2FrYXlhbWEuanAiLCJpd2FkZS53YWtheWFtYS5qcCIsImthaW5hbi53YWtheWFtYS5qcCIsImthbWl0b25kYS53YWtheWFtYS5qcCIsImthdHN1cmFnaS53YWth'@; put 'eWFtYS5qcCIsImtpbWluby53YWtheWFtYS5qcCIsImtpbm9rYXdhLndha2F5YW1hLmpwIiwia2l0YXlhbWEud2FrYXlhbWEuanAiLCJrb3lhLndha2F5YW1hLmpwIiwia296YS53YWtheWFtYS5qcCIsImtvemFnYXdhLndha2F5YW1hLmpwIiwia3Vkb3lhbWEud2FrYXlhbWEuanAiLCJrdXNo'@; put 'aW1vdG8ud2FrYXlhbWEuanAiLCJtaWhhbWEud2FrYXlhbWEuanAiLCJtaXNhdG8ud2FrYXlhbWEuanAiLCJuYWNoaWthdHN1dXJhLndha2F5YW1hLmpwIiwic2hpbmd1Lndha2F5YW1hLmpwIiwic2hpcmFoYW1hLndha2F5YW1hLmpwIiwidGFpamkud2FrYXlhbWEuanAiLCJ0YW5hYmUud2Fr'@; put 'YXlhbWEuanAiLCJ3YWtheWFtYS53YWtheWFtYS5qcCIsInl1YXNhLndha2F5YW1hLmpwIiwieXVyYS53YWtheWFtYS5qcCIsImFzYWhpLnlhbWFnYXRhLmpwIiwiZnVuYWdhdGEueWFtYWdhdGEuanAiLCJoaWdhc2hpbmUueWFtYWdhdGEuanAiLCJpaWRlLnlhbWFnYXRhLmpwIiwia2Fob2t1'@; put 'LnlhbWFnYXRhLmpwIiwia2FtaW5veWFtYS55YW1hZ2F0YS5qcCIsImthbmV5YW1hLnlhbWFnYXRhLmpwIiwia2F3YW5pc2hpLnlhbWFnYXRhLmpwIiwibWFtdXJvZ2F3YS55YW1hZ2F0YS5qcCIsIm1pa2F3YS55YW1hZ2F0YS5qcCIsIm11cmF5YW1hLnlhbWFnYXRhLmpwIiwibmFnYWkueWFt'@; put 'YWdhdGEuanAiLCJuYWtheWFtYS55YW1hZ2F0YS5qcCIsIm5hbnlvLnlhbWFnYXRhLmpwIiwibmlzaGlrYXdhLnlhbWFnYXRhLmpwIiwib2JhbmF6YXdhLnlhbWFnYXRhLmpwIiwib2UueWFtYWdhdGEuanAiLCJvZ3VuaS55YW1hZ2F0YS5qcCIsIm9oa3VyYS55YW1hZ2F0YS5qcCIsIm9pc2hp'@; put 'ZGEueWFtYWdhdGEuanAiLCJzYWdhZS55YW1hZ2F0YS5qcCIsInNha2F0YS55YW1hZ2F0YS5qcCIsInNha2VnYXdhLnlhbWFnYXRhLmpwIiwic2hpbmpvLnlhbWFnYXRhLmpwIiwic2hpcmF0YWthLnlhbWFnYXRhLmpwIiwic2hvbmFpLnlhbWFnYXRhLmpwIiwidGFrYWhhdGEueWFtYWdhdGEu'@; put 'anAiLCJ0ZW5kby55YW1hZ2F0YS5qcCIsInRvemF3YS55YW1hZ2F0YS5qcCIsInRzdXJ1b2thLnlhbWFnYXRhLmpwIiwieWFtYWdhdGEueWFtYWdhdGEuanAiLCJ5YW1hbm9iZS55YW1hZ2F0YS5qcCIsInlvbmV6YXdhLnlhbWFnYXRhLmpwIiwieXV6YS55YW1hZ2F0YS5qcCIsImFidS55YW1h'@; put 'Z3VjaGkuanAiLCJoYWdpLnlhbWFndWNoaS5qcCIsImhpa2FyaS55YW1hZ3VjaGkuanAiLCJob2Z1LnlhbWFndWNoaS5qcCIsIml3YWt1bmkueWFtYWd1Y2hpLmpwIiwia3VkYW1hdHN1LnlhbWFndWNoaS5qcCIsIm1pdG91LnlhbWFndWNoaS5qcCIsIm5hZ2F0by55YW1hZ3VjaGkuanAiLCJv'@; put 'c2hpbWEueWFtYWd1Y2hpLmpwIiwic2hpbW9ub3Nla2kueWFtYWd1Y2hpLmpwIiwic2h1bmFuLnlhbWFndWNoaS5qcCIsInRhYnVzZS55YW1hZ3VjaGkuanAiLCJ0b2t1eWFtYS55YW1hZ3VjaGkuanAiLCJ0b3lvdGEueWFtYWd1Y2hpLmpwIiwidWJlLnlhbWFndWNoaS5qcCIsInl1dS55YW1h'@; put 'Z3VjaGkuanAiLCJjaHVvLnlhbWFuYXNoaS5qcCIsImRvc2hpLnlhbWFuYXNoaS5qcCIsImZ1ZWZ1a2kueWFtYW5hc2hpLmpwIiwiZnVqaWthd2EueWFtYW5hc2hpLmpwIiwiZnVqaWthd2FndWNoaWtvLnlhbWFuYXNoaS5qcCIsImZ1aml5b3NoaWRhLnlhbWFuYXNoaS5qcCIsImhheWFrYXdh'@; put 'LnlhbWFuYXNoaS5qcCIsImhva3V0by55YW1hbmFzaGkuanAiLCJpY2hpa2F3YW1pc2F0by55YW1hbmFzaGkuanAiLCJrYWkueWFtYW5hc2hpLmpwIiwia29mdS55YW1hbmFzaGkuanAiLCJrb3NodS55YW1hbmFzaGkuanAiLCJrb3N1Z2UueWFtYW5hc2hpLmpwIiwibWluYW1pLWFscHMueWFt'@; put 'YW5hc2hpLmpwIiwibWlub2J1LnlhbWFuYXNoaS5qcCIsIm5ha2FtaWNoaS55YW1hbmFzaGkuanAiLCJuYW5idS55YW1hbmFzaGkuanAiLCJuYXJ1c2F3YS55YW1hbmFzaGkuanAiLCJuaXJhc2FraS55YW1hbmFzaGkuanAiLCJuaXNoaWthdHN1cmEueWFtYW5hc2hpLmpwIiwib3NoaW5vLnlh'@; put 'bWFuYXNoaS5qcCIsIm90c3VraS55YW1hbmFzaGkuanAiLCJzaG93YS55YW1hbmFzaGkuanAiLCJ0YWJheWFtYS55YW1hbmFzaGkuanAiLCJ0c3VydS55YW1hbmFzaGkuanAiLCJ1ZW5vaGFyYS55YW1hbmFzaGkuanAiLCJ5YW1hbmFrYWtvLnlhbWFuYXNoaS5qcCIsInlhbWFuYXNoaS55YW1h'@; put 'bmFzaGkuanAiLCJrZSIsImFjLmtlIiwiY28ua2UiLCJnby5rZSIsImluZm8ua2UiLCJtZS5rZSIsIm1vYmkua2UiLCJuZS5rZSIsIm9yLmtlIiwic2Mua2UiLCJrZyIsImNvbS5rZyIsImVkdS5rZyIsImdvdi5rZyIsIm1pbC5rZyIsIm5ldC5rZyIsIm9yZy5rZyIsIioua2giLCJraSIsImJp'@; put 'ei5raSIsImNvbS5raSIsImVkdS5raSIsImdvdi5raSIsImluZm8ua2kiLCJuZXQua2kiLCJvcmcua2kiLCJrbSIsImFzcy5rbSIsImNvbS5rbSIsImVkdS5rbSIsImdvdi5rbSIsIm1pbC5rbSIsIm5vbS5rbSIsIm9yZy5rbSIsInByZC5rbSIsInRtLmttIiwiYXNzby5rbSIsImNvb3Aua20i'@; put 'LCJnb3V2LmttIiwibWVkZWNpbi5rbSIsIm5vdGFpcmVzLmttIiwicGhhcm1hY2llbnMua20iLCJwcmVzc2Uua20iLCJ2ZXRlcmluYWlyZS5rbSIsImtuIiwiZWR1LmtuIiwiZ292LmtuIiwibmV0LmtuIiwib3JnLmtuIiwia3AiLCJjb20ua3AiLCJlZHUua3AiLCJnb3Yua3AiLCJvcmcua3Ai'@; put 'LCJyZXAua3AiLCJ0cmEua3AiLCJrciIsImFjLmtyIiwiY28ua3IiLCJlcy5rciIsImdvLmtyIiwiaHMua3IiLCJrZy5rciIsIm1pbC5rciIsIm1zLmtyIiwibmUua3IiLCJvci5rciIsInBlLmtyIiwicmUua3IiLCJzYy5rciIsImJ1c2FuLmtyIiwiY2h1bmdidWsua3IiLCJjaHVuZ25hbS5r'@; put 'ciIsImRhZWd1LmtyIiwiZGFlamVvbi5rciIsImdhbmd3b24ua3IiLCJnd2FuZ2p1LmtyIiwiZ3llb25nYnVrLmtyIiwiZ3llb25nZ2kua3IiLCJneWVvbmduYW0ua3IiLCJpbmNoZW9uLmtyIiwiamVqdS5rciIsImplb25idWsua3IiLCJqZW9ubmFtLmtyIiwic2VvdWwua3IiLCJ1bHNhbi5r'@; put 'ciIsImt3IiwiY29tLmt3IiwiZWR1Lmt3IiwiZW1iLmt3IiwiZ292Lmt3IiwiaW5kLmt3IiwibmV0Lmt3Iiwib3JnLmt3Iiwia3kiLCJjb20ua3kiLCJlZHUua3kiLCJuZXQua3kiLCJvcmcua3kiLCJreiIsImNvbS5reiIsImVkdS5reiIsImdvdi5reiIsIm1pbC5reiIsIm5ldC5reiIsIm9y'@; put 'Zy5reiIsImxhIiwiY29tLmxhIiwiZWR1LmxhIiwiZ292LmxhIiwiaW5mby5sYSIsImludC5sYSIsIm5ldC5sYSIsIm9yZy5sYSIsInBlci5sYSIsImxiIiwiY29tLmxiIiwiZWR1LmxiIiwiZ292LmxiIiwibmV0LmxiIiwib3JnLmxiIiwibGMiLCJjby5sYyIsImNvbS5sYyIsImVkdS5sYyIs'@; put 'Imdvdi5sYyIsIm5ldC5sYyIsIm9yZy5sYyIsImxpIiwibGsiLCJhYy5sayIsImFzc24ubGsiLCJjb20ubGsiLCJlZHUubGsiLCJnb3YubGsiLCJncnAubGsiLCJob3RlbC5sayIsImludC5sayIsImx0ZC5sayIsIm5ldC5sayIsIm5nby5sayIsIm9yZy5sayIsInNjaC5sayIsInNvYy5sayIs'@; put 'IndlYi5sayIsImxyIiwiY29tLmxyIiwiZWR1LmxyIiwiZ292LmxyIiwibmV0LmxyIiwib3JnLmxyIiwibHMiLCJhYy5scyIsImJpei5scyIsImNvLmxzIiwiZWR1LmxzIiwiZ292LmxzIiwiaW5mby5scyIsIm5ldC5scyIsIm9yZy5scyIsInNjLmxzIiwibHQiLCJnb3YubHQiLCJsdSIsImx2'@; put 'IiwiYXNuLmx2IiwiY29tLmx2IiwiY29uZi5sdiIsImVkdS5sdiIsImdvdi5sdiIsImlkLmx2IiwibWlsLmx2IiwibmV0Lmx2Iiwib3JnLmx2IiwibHkiLCJjb20ubHkiLCJlZHUubHkiLCJnb3YubHkiLCJpZC5seSIsIm1lZC5seSIsIm5ldC5seSIsIm9yZy5seSIsInBsYy5seSIsInNjaC5s'@; put 'eSIsIm1hIiwiYWMubWEiLCJjby5tYSIsImdvdi5tYSIsIm5ldC5tYSIsIm9yZy5tYSIsInByZXNzLm1hIiwibWMiLCJhc3NvLm1jIiwidG0ubWMiLCJtZCIsIm1lIiwiYWMubWUiLCJjby5tZSIsImVkdS5tZSIsImdvdi5tZSIsIml0cy5tZSIsIm5ldC5tZSIsIm9yZy5tZSIsInByaXYubWUi'@; put 'LCJtZyIsImNvLm1nIiwiY29tLm1nIiwiZWR1Lm1nIiwiZ292Lm1nIiwibWlsLm1nIiwibm9tLm1nIiwib3JnLm1nIiwicHJkLm1nIiwibWgiLCJtaWwiLCJtayIsImNvbS5tayIsImVkdS5tayIsImdvdi5tayIsImluZi5tayIsIm5hbWUubWsiLCJuZXQubWsiLCJvcmcubWsiLCJtbCIsImNv'@; put 'bS5tbCIsImVkdS5tbCIsImdvdXYubWwiLCJnb3YubWwiLCJuZXQubWwiLCJvcmcubWwiLCJwcmVzc2UubWwiLCIqLm1tIiwibW4iLCJlZHUubW4iLCJnb3YubW4iLCJvcmcubW4iLCJtbyIsImNvbS5tbyIsImVkdS5tbyIsImdvdi5tbyIsIm5ldC5tbyIsIm9yZy5tbyIsIm1vYmkiLCJtcCIs'@; put 'Im1xIiwibXIiLCJnb3YubXIiLCJtcyIsImNvbS5tcyIsImVkdS5tcyIsImdvdi5tcyIsIm5ldC5tcyIsIm9yZy5tcyIsIm10IiwiY29tLm10IiwiZWR1Lm10IiwibmV0Lm10Iiwib3JnLm10IiwibXUiLCJhYy5tdSIsImNvLm11IiwiY29tLm11IiwiZ292Lm11IiwibmV0Lm11Iiwib3IubXUi'@; put 'LCJvcmcubXUiLCJtdXNldW0iLCJtdiIsImFlcm8ubXYiLCJiaXoubXYiLCJjb20ubXYiLCJjb29wLm12IiwiZWR1Lm12IiwiZ292Lm12IiwiaW5mby5tdiIsImludC5tdiIsIm1pbC5tdiIsIm11c2V1bS5tdiIsIm5hbWUubXYiLCJuZXQubXYiLCJvcmcubXYiLCJwcm8ubXYiLCJtdyIsImFj'@; put 'Lm13IiwiYml6Lm13IiwiY28ubXciLCJjb20ubXciLCJjb29wLm13IiwiZWR1Lm13IiwiZ292Lm13IiwiaW50Lm13IiwibmV0Lm13Iiwib3JnLm13IiwibXgiLCJjb20ubXgiLCJlZHUubXgiLCJnb2IubXgiLCJuZXQubXgiLCJvcmcubXgiLCJteSIsImJpei5teSIsImNvbS5teSIsImVkdS5t'@; put 'eSIsImdvdi5teSIsIm1pbC5teSIsIm5hbWUubXkiLCJuZXQubXkiLCJvcmcubXkiLCJteiIsImFjLm16IiwiYWR2Lm16IiwiY28ubXoiLCJlZHUubXoiLCJnb3YubXoiLCJtaWwubXoiLCJuZXQubXoiLCJvcmcubXoiLCJuYSIsImFsdC5uYSIsImNvLm5hIiwiY29tLm5hIiwiZ292Lm5hIiwi'@; put 'bmV0Lm5hIiwib3JnLm5hIiwibmFtZSIsIm5jIiwiYXNzby5uYyIsIm5vbS5uYyIsIm5lIiwibmV0IiwibmYiLCJhcnRzLm5mIiwiY29tLm5mIiwiZmlybS5uZiIsImluZm8ubmYiLCJuZXQubmYiLCJvdGhlci5uZiIsInBlci5uZiIsInJlYy5uZiIsInN0b3JlLm5mIiwid2ViLm5mIiwibmci'@; put 'LCJjb20ubmciLCJlZHUubmciLCJnb3YubmciLCJpLm5nIiwibWlsLm5nIiwibW9iaS5uZyIsIm5hbWUubmciLCJuZXQubmciLCJvcmcubmciLCJzY2gubmciLCJuaSIsImFjLm5pIiwiYml6Lm5pIiwiY28ubmkiLCJjb20ubmkiLCJlZHUubmkiLCJnb2IubmkiLCJpbi5uaSIsImluZm8ubmki'@; put 'LCJpbnQubmkiLCJtaWwubmkiLCJuZXQubmkiLCJub20ubmkiLCJvcmcubmkiLCJ3ZWIubmkiLCJubCIsIm5vIiwiZmhzLm5vIiwiZm9sa2ViaWJsLm5vIiwiZnlsa2VzYmlibC5ubyIsImlkcmV0dC5ubyIsIm11c2V1bS5ubyIsInByaXYubm8iLCJ2Z3Mubm8iLCJkZXAubm8iLCJoZXJhZC5u'@; put 'byIsImtvbW11bmUubm8iLCJtaWwubm8iLCJzdGF0Lm5vIiwiYWEubm8iLCJhaC5ubyIsImJ1Lm5vIiwiZm0ubm8iLCJobC5ubyIsImhtLm5vIiwiamFuLW1heWVuLm5vIiwibXIubm8iLCJubC5ubyIsIm50Lm5vIiwib2Yubm8iLCJvbC5ubyIsIm9zbG8ubm8iLCJybC5ubyIsInNmLm5vIiwi'@; put 'c3Qubm8iLCJzdmFsYmFyZC5ubyIsInRtLm5vIiwidHIubm8iLCJ2YS5ubyIsInZmLm5vIiwiZ3MuYWEubm8iLCJncy5haC5ubyIsImdzLmJ1Lm5vIiwiZ3MuZm0ubm8iLCJncy5obC5ubyIsImdzLmhtLm5vIiwiZ3MuamFuLW1heWVuLm5vIiwiZ3MubXIubm8iLCJncy5ubC5ubyIsImdzLm50'@; put 'Lm5vIiwiZ3Mub2Yubm8iLCJncy5vbC5ubyIsImdzLm9zbG8ubm8iLCJncy5ybC5ubyIsImdzLnNmLm5vIiwiZ3Muc3Qubm8iLCJncy5zdmFsYmFyZC5ubyIsImdzLnRtLm5vIiwiZ3MudHIubm8iLCJncy52YS5ubyIsImdzLnZmLm5vIiwiYWtyZWhhbW4ubm8iLCJceGU1a3JlaGFtbi5ubyIs'@; put 'ImFsZ2FyZC5ubyIsIlx4ZTVsZ1x4ZTVyZC5ubyIsImFybmEubm8iLCJicm9ubm95c3VuZC5ubyIsImJyXHhmOG5uXHhmOHlzdW5kLm5vIiwiYnJ1bXVuZGRhbC5ubyIsImJyeW5lLm5vIiwiZHJvYmFrLm5vIiwiZHJceGY4YmFrLm5vIiwiZWdlcnN1bmQubm8iLCJmZXRzdW5kLm5vIiwiZmxv'@; put 'cm8ubm8iLCJmbG9yXHhmOC5ubyIsImZyZWRyaWtzdGFkLm5vIiwiaG9ra3N1bmQubm8iLCJob25lZm9zcy5ubyIsImhceGY4bmVmb3NzLm5vIiwiamVzc2hlaW0ubm8iLCJqb3JwZWxhbmQubm8iLCJqXHhmOHJwZWxhbmQubm8iLCJraXJrZW5lcy5ubyIsImtvcGVydmlrLm5vIiwia3Jva3N0'@; put 'YWRlbHZhLm5vIiwibGFuZ2V2YWcubm8iLCJsYW5nZXZceGU1Zy5ubyIsImxlaXJ2aWsubm8iLCJtam9uZGFsZW4ubm8iLCJtalx4ZjhuZGFsZW4ubm8iLCJtby1pLXJhbmEubm8iLCJtb3Nqb2VuLm5vIiwibW9zalx4Zjhlbi5ubyIsIm5lc29kZHRhbmdlbi5ubyIsIm9ya2FuZ2VyLm5vIiwi'@; put 'b3NveXJvLm5vIiwib3NceGY4eXJvLm5vIiwicmFob2x0Lm5vIiwiclx4ZTVob2x0Lm5vIiwic2FuZG5lc3Nqb2VuLm5vIiwic2FuZG5lc3NqXHhmOGVuLm5vIiwic2tlZHNtb2tvcnNldC5ubyIsInNsYXR0dW0ubm8iLCJzcGplbGthdmlrLm5vIiwic3RhdGhlbGxlLm5vIiwic3RhdmVybi5u'@; put 'byIsInN0am9yZGFsc2hhbHNlbi5ubyIsInN0alx4ZjhyZGFsc2hhbHNlbi5ubyIsInRhbmFuZ2VyLm5vIiwidHJhbmJ5Lm5vIiwidm9zc2V2YW5nZW4ubm8iLCJhYXJib3J0ZS5ubyIsImFlanJpZS5ubyIsImFmam9yZC5ubyIsIlx4ZTVmam9yZC5ubyIsImFnZGVuZXMubm8iLCJuZXMuYWtl'@; put 'cnNodXMubm8iLCJha25vbHVva3RhLm5vIiwiXHhlMWtcdTAxNGJvbHVva3RhLm5vIiwiYWwubm8iLCJceGU1bC5ubyIsImFsYWhlYWRqdS5ubyIsIlx4ZTFsYWhlYWRqdS5ubyIsImFsZXN1bmQubm8iLCJceGU1bGVzdW5kLm5vIiwiYWxzdGFoYXVnLm5vIiwiYWx0YS5ubyIsIlx4ZTFsdFx4'@; put 'ZTEubm8iLCJhbHZkYWwubm8iLCJhbWxpLm5vIiwiXHhlNW1saS5ubyIsImFtb3Qubm8iLCJceGU1bW90Lm5vIiwiYW5kYXN1b2xvLm5vIiwiYW5kZWJ1Lm5vIiwiYW5kb3kubm8iLCJhbmRceGY4eS5ubyIsImFyZGFsLm5vIiwiXHhlNXJkYWwubm8iLCJhcmVtYXJrLm5vIiwiYXJlbmRhbC5u'@; put 'byIsIlx4ZTVzLm5vIiwiYXNlcmFsLm5vIiwiXHhlNXNlcmFsLm5vIiwiYXNrZXIubm8iLCJhc2tpbS5ubyIsImFza295Lm5vIiwiYXNrXHhmOHkubm8iLCJhc2t2b2xsLm5vIiwiYXNuZXMubm8iLCJceGU1c25lcy5ubyIsImF1ZG5lZGFsbi5ubyIsImF1a3JhLm5vIiwiYXVyZS5ubyIsImF1'@; put 'cmxhbmQubm8iLCJhdXJza29nLWhvbGFuZC5ubyIsImF1cnNrb2ctaFx4ZjhsYW5kLm5vIiwiYXVzdGV2b2xsLm5vIiwiYXVzdHJoZWltLm5vIiwiYXZlcm95Lm5vIiwiYXZlclx4Zjh5Lm5vIiwiYmFkYWRkamEubm8iLCJiXHhlNWRceGU1ZGRqXHhlNS5ubyIsImJceGU2cnVtLm5vIiwiYmFo'@; put 'Y2F2dW90bmEubm8iLCJiXHhlMWhjYXZ1b3RuYS5ubyIsImJhaGNjYXZ1b3RuYS5ubyIsImJceGUxaGNjYXZ1b3RuYS5ubyIsImJhaWRhci5ubyIsImJceGUxaWRceGUxci5ubyIsImJhamRkYXIubm8iLCJiXHhlMWpkZGFyLm5vIiwiYmFsYXQubm8iLCJiXHhlMWxceGUxdC5ubyIsImJhbGVz'@; put 'dHJhbmQubm8iLCJiYWxsYW5nZW4ubm8iLCJiYWxzZmpvcmQubm8iLCJiYW1ibGUubm8iLCJiYXJkdS5ubyIsImJhcnVtLm5vIiwiYmF0c2Zqb3JkLm5vIiwiYlx4ZTV0c2Zqb3JkLm5vIiwiYmVhcmFsdmFoa2kubm8iLCJiZWFyYWx2XHhlMWhraS5ubyIsImJlYXJkdS5ubyIsImJlaWFybi5u'@; put 'byIsImJlcmcubm8iLCJiZXJnZW4ubm8iLCJiZXJsZXZhZy5ubyIsImJlcmxldlx4ZTVnLm5vIiwiYmlldmF0Lm5vIiwiYmlldlx4ZTF0Lm5vIiwiYmluZGFsLm5vIiwiYmlya2VuZXMubm8iLCJiamFya295Lm5vIiwiYmphcmtceGY4eS5ubyIsImJqZXJrcmVpbS5ubyIsImJqdWduLm5vIiwi'@; put 'Ym9kby5ubyIsImJvZFx4Zjgubm8iLCJib2tuLm5vIiwiYm9tbG8ubm8iLCJiXHhmOG1sby5ubyIsImJyZW1hbmdlci5ubyIsImJyb25ub3kubm8iLCJiclx4Zjhublx4Zjh5Lm5vIiwiYnVkZWpqdS5ubyIsIm5lcy5idXNrZXJ1ZC5ubyIsImJ5Z2xhbmQubm8iLCJieWtsZS5ubyIsImNhaGNl'@; put 'c3VvbG8ubm8iLCJcdTAxMGRceGUxaGNlc3VvbG8ubm8iLCJkYXZ2ZW5qYXJnYS5ubyIsImRhdnZlbmpceGUxcmdhLm5vIiwiZGF2dmVzaWlkYS5ubyIsImRlYXRudS5ubyIsImRpZWxkZGFudW9ycmkubm8iLCJkaXZ0YXN2dW9kbmEubm8iLCJkaXZ0dGFzdnVvdG5hLm5vIiwiZG9ubmEubm8i'@; put 'LCJkXHhmOG5uYS5ubyIsImRvdnJlLm5vIiwiZHJhbW1lbi5ubyIsImRyYW5nZWRhbC5ubyIsImR5cm95Lm5vIiwiZHlyXHhmOHkubm8iLCJlaWQubm8iLCJlaWRmam9yZC5ubyIsImVpZHNiZXJnLm5vIiwiZWlkc2tvZy5ubyIsImVpZHN2b2xsLm5vIiwiZWlnZXJzdW5kLm5vIiwiZWx2ZXJ1'@; put 'bS5ubyIsImVuZWJha2subm8iLCJlbmdlcmRhbC5ubyIsImV0bmUubm8iLCJldG5lZGFsLm5vIiwiZXZlbmFzc2kubm8iLCJldmVuXHhlMVx1MDE2MVx1MDE2MWkubm8iLCJldmVuZXMubm8iLCJldmplLW9nLWhvcm5uZXMubm8iLCJmYXJzdW5kLm5vIiwiZmF1c2tlLm5vIiwiZmVkamUubm8i'@; put 'LCJmZXQubm8iLCJmaW5ub3kubm8iLCJmaW5uXHhmOHkubm8iLCJmaXRqYXIubm8iLCJmamFsZXIubm8iLCJmamVsbC5ubyIsImZsYS5ubyIsImZsXHhlNS5ubyIsImZsYWtzdGFkLm5vIiwiZmxhdGFuZ2VyLm5vIiwiZmxla2tlZmpvcmQubm8iLCJmbGVzYmVyZy5ubyIsImZsb3JhLm5vIiwi'@; put 'Zm9sbGRhbC5ubyIsImZvcmRlLm5vIiwiZlx4ZjhyZGUubm8iLCJmb3JzYW5kLm5vIiwiZm9zbmVzLm5vIiwiZnJceGU2bmEubm8iLCJmcmFuYS5ubyIsImZyZWkubm8iLCJmcm9nbi5ubyIsImZyb2xhbmQubm8iLCJmcm9zdGEubm8iLCJmcm95YS5ubyIsImZyXHhmOHlhLm5vIiwiZnVvaXNr'@; put 'dS5ubyIsImZ1b3Nza28ubm8iLCJmdXNhLm5vIiwiZnlyZXNkYWwubm8iLCJnYWl2dW90bmEubm8iLCJnXHhlMWl2dW90bmEubm8iLCJnYWxzYS5ubyIsImdceGUxbHNceGUxLm5vIiwiZ2FtdmlrLm5vIiwiZ2FuZ2F2aWlrYS5ubyIsImdceGUxXHUwMTRiZ2F2aWlrYS5ubyIsImdhdWxhci5u'@; put 'byIsImdhdXNkYWwubm8iLCJnaWVodGF2dW9hdG5hLm5vIiwiZ2lsZGVza2FsLm5vIiwiZ2lsZGVza1x4ZTVsLm5vIiwiZ2lza2Uubm8iLCJnamVtbmVzLm5vIiwiZ2plcmRydW0ubm8iLCJnamVyc3RhZC5ubyIsImdqZXNkYWwubm8iLCJnam92aWsubm8iLCJnalx4Zjh2aWsubm8iLCJnbG9w'@; put 'cGVuLm5vIiwiZ29sLm5vIiwiZ3Jhbi5ubyIsImdyYW5lLm5vIiwiZ3JhbnZpbi5ubyIsImdyYXRhbmdlbi5ubyIsImdyaW1zdGFkLm5vIiwiZ3Jvbmcubm8iLCJncnVlLm5vIiwiZ3VsZW4ubm8iLCJndW92ZGFnZWFpZG51Lm5vIiwiaGEubm8iLCJoXHhlNS5ubyIsImhhYm1lci5ubyIsImhc'@; put 'eGUxYm1lci5ubyIsImhhZHNlbC5ubyIsImhceGU2Z2Vib3N0YWQubm8iLCJoYWdlYm9zdGFkLm5vIiwiaGFsZGVuLm5vIiwiaGFsc2Eubm8iLCJoYW1hci5ubyIsImhhbWFyb3kubm8iLCJoYW1tYXJmZWFzdGEubm8iLCJoXHhlMW1tXHhlMXJmZWFzdGEubm8iLCJoYW1tZXJmZXN0Lm5vIiwi'@; put 'aGFwbWlyLm5vIiwiaFx4ZTFwbWlyLm5vIiwiaGFyYW0ubm8iLCJoYXJlaWQubm8iLCJoYXJzdGFkLm5vIiwiaGFzdmlrLm5vIiwiaGF0dGZqZWxsZGFsLm5vIiwiaGF1Z2VzdW5kLm5vIiwib3MuaGVkbWFyay5ubyIsInZhbGVyLmhlZG1hcmsubm8iLCJ2XHhlNWxlci5oZWRtYXJrLm5vIiwi'@; put 'aGVtbmUubm8iLCJoZW1uZXMubm8iLCJoZW1zZWRhbC5ubyIsImhpdHJhLm5vIiwiaGphcnRkYWwubm8iLCJoamVsbWVsYW5kLm5vIiwiaG9ib2wubm8iLCJob2JceGY4bC5ubyIsImhvZi5ubyIsImhvbC5ubyIsImhvbGUubm8iLCJob2xtZXN0cmFuZC5ubyIsImhvbHRhbGVuLm5vIiwiaG9s'@; put 'dFx4ZTVsZW4ubm8iLCJvcy5ob3JkYWxhbmQubm8iLCJob3JuaW5kYWwubm8iLCJob3J0ZW4ubm8iLCJob3lhbmdlci5ubyIsImhceGY4eWFuZ2VyLm5vIiwiaG95bGFuZGV0Lm5vIiwiaFx4Zjh5bGFuZGV0Lm5vIiwiaHVyZGFsLm5vIiwiaHVydW0ubm8iLCJodmFsZXIubm8iLCJoeWxsZXN0'@; put 'YWQubm8iLCJpYmVzdGFkLm5vIiwiaW5kZXJveS5ubyIsImluZGVyXHhmOHkubm8iLCJpdmVsYW5kLm5vIiwiaXZndS5ubyIsImpldm5ha2VyLm5vIiwiam9sc3Rlci5ubyIsImpceGY4bHN0ZXIubm8iLCJqb25kYWwubm8iLCJrYWZqb3JkLm5vIiwia1x4ZTVmam9yZC5ubyIsImthcmFzam9o'@; put 'a2Eubm8iLCJrXHhlMXJceGUxXHUwMTYxam9oa2Eubm8iLCJrYXJhc2pvay5ubyIsImthcmxzb3kubm8iLCJrYXJtb3kubm8iLCJrYXJtXHhmOHkubm8iLCJrYXV0b2tlaW5vLm5vIiwia2xhYnUubm8iLCJrbFx4ZTZidS5ubyIsImtsZXBwLm5vIiwia29uZ3NiZXJnLm5vIiwia29uZ3N2aW5n'@; put 'ZXIubm8iLCJrcmFhbmdoa2Uubm8iLCJrclx4ZTVhbmdoa2Uubm8iLCJrcmFnZXJvLm5vIiwia3JhZ2VyXHhmOC5ubyIsImtyaXN0aWFuc2FuZC5ubyIsImtyaXN0aWFuc3VuZC5ubyIsImtyb2RzaGVyYWQubm8iLCJrclx4Zjhkc2hlcmFkLm5vIiwia3ZceGU2ZmpvcmQubm8iLCJrdlx4ZTZu'@; put 'YW5nZW4ubm8iLCJrdmFmam9yZC5ubyIsImt2YWxzdW5kLm5vIiwia3ZhbS5ubyIsImt2YW5hbmdlbi5ubyIsImt2aW5lc2RhbC5ubyIsImt2aW5uaGVyYWQubm8iLCJrdml0ZXNlaWQubm8iLCJrdml0c295Lm5vIiwia3ZpdHNceGY4eS5ubyIsImxhYWtlc3Z1ZW1pZS5ubyIsImxceGU2cmRh'@; put 'bC5ubyIsImxhaHBwaS5ubyIsImxceGUxaHBwaS5ubyIsImxhcmRhbC5ubyIsImxhcnZpay5ubyIsImxhdmFnaXMubm8iLCJsYXZhbmdlbi5ubyIsImxlYW5nYXZpaWthLm5vIiwibGVhXHUwMTRiZ2F2aWlrYS5ubyIsImxlYmVzYnkubm8iLCJsZWlrYW5nZXIubm8iLCJsZWlyZmpvcmQubm8i'@; put 'LCJsZWthLm5vIiwibGVrc3Zpay5ubyIsImxlbnZpay5ubyIsImxlcmRhbC5ubyIsImxlc2phLm5vIiwibGV2YW5nZXIubm8iLCJsaWVyLm5vIiwibGllcm5lLm5vIiwibGlsbGVoYW1tZXIubm8iLCJsaWxsZXNhbmQubm8iLCJsaW5kYXMubm8iLCJsaW5kXHhlNXMubm8iLCJsaW5kZXNuZXMu'@; put 'bm8iLCJsb2FiYXQubm8iLCJsb2FiXHhlMXQubm8iLCJsb2Rpbmdlbi5ubyIsImxceGY4ZGluZ2VuLm5vIiwibG9tLm5vIiwibG9wcGEubm8iLCJsb3JlbnNrb2cubm8iLCJsXHhmOHJlbnNrb2cubm8iLCJsb3Rlbi5ubyIsImxceGY4dGVuLm5vIiwibHVuZC5ubyIsImx1bm5lci5ubyIsImx1'@; put 'cm95Lm5vIiwibHVyXHhmOHkubm8iLCJsdXN0ZXIubm8iLCJseW5nZGFsLm5vIiwibHluZ2VuLm5vIiwibWFsYXR2dW9wbWkubm8iLCJtXHhlMWxhdHZ1b3BtaS5ubyIsIm1hbHNlbHYubm8iLCJtXHhlNWxzZWx2Lm5vIiwibWFsdmlrLm5vIiwibWFuZGFsLm5vIiwibWFya2VyLm5vIiwibWFy'@; put 'bmFyZGFsLm5vIiwibWFzZmpvcmRlbi5ubyIsIm1hc295Lm5vIiwibVx4ZTVzXHhmOHkubm8iLCJtYXR0YS12YXJqamF0Lm5vIiwibVx4ZTF0dGEtdlx4ZTFyamphdC5ubyIsIm1lbGFuZC5ubyIsIm1lbGRhbC5ubyIsIm1lbGh1cy5ubyIsIm1lbG95Lm5vIiwibWVsXHhmOHkubm8iLCJtZXJh'@; put 'a2VyLm5vIiwibWVyXHhlNWtlci5ubyIsIm1pZHN1bmQubm8iLCJtaWR0cmUtZ2F1bGRhbC5ubyIsIm1vYXJla2Uubm8iLCJtb1x4ZTVyZWtlLm5vIiwibW9kYWxlbi5ubyIsIm1vZHVtLm5vIiwibW9sZGUubm8iLCJoZXJveS5tb3JlLW9nLXJvbXNkYWwubm8iLCJzYW5kZS5tb3JlLW9nLXJv'@; put 'bXNkYWwubm8iLCJoZXJceGY4eS5tXHhmOHJlLW9nLXJvbXNkYWwubm8iLCJzYW5kZS5tXHhmOHJlLW9nLXJvbXNkYWwubm8iLCJtb3NrZW5lcy5ubyIsIm1vc3Mubm8iLCJtb3N2aWsubm8iLCJtdW9zYXQubm8iLCJtdW9zXHhlMXQubm8iLCJuYWFtZXNqZXZ1ZW1pZS5ubyIsIm5ceGU1XHhl'@; put 'NW1lc2pldnVlbWllLm5vIiwiblx4ZTZyXHhmOHkubm8iLCJuYW1kYWxzZWlkLm5vIiwibmFtc29zLm5vIiwibmFtc3Nrb2dhbi5ubyIsIm5hbm5lc3RhZC5ubyIsIm5hcm95Lm5vIiwibmFydmlpa2Eubm8iLCJuYXJ2aWsubm8iLCJuYXVzdGRhbC5ubyIsIm5hdnVvdG5hLm5vIiwiblx4ZTF2'@; put 'dW90bmEubm8iLCJuZWRyZS1laWtlci5ubyIsIm5lc25hLm5vIiwibmVzb2RkZW4ubm8iLCJuZXNzZWJ5Lm5vIiwibmVzc2V0Lm5vIiwibmlzc2VkYWwubm8iLCJuaXR0ZWRhbC5ubyIsIm5vcmQtYXVyZGFsLm5vIiwibm9yZC1mcm9uLm5vIiwibm9yZC1vZGFsLm5vIiwibm9yZGRhbC5ubyIs'@; put 'Im5vcmRrYXBwLm5vIiwiYm8ubm9yZGxhbmQubm8iLCJiXHhmOC5ub3JkbGFuZC5ubyIsImhlcm95Lm5vcmRsYW5kLm5vIiwiaGVyXHhmOHkubm9yZGxhbmQubm8iLCJub3JkcmUtbGFuZC5ubyIsIm5vcmRyZWlzYS5ubyIsIm5vcmUtb2ctdXZkYWwubm8iLCJub3RvZGRlbi5ubyIsIm5vdHRl'@; put 'cm95Lm5vIiwiblx4Zjh0dGVyXHhmOHkubm8iLCJvZGRhLm5vIiwib2tzbmVzLm5vIiwiXHhmOGtzbmVzLm5vIiwib21hc3Z1b3RuYS5ubyIsIm9wcGRhbC5ubyIsIm9wcGVnYXJkLm5vIiwib3BwZWdceGU1cmQubm8iLCJvcmtkYWwubm8iLCJvcmxhbmQubm8iLCJceGY4cmxhbmQubm8iLCJv'@; put 'cnNrb2cubm8iLCJceGY4cnNrb2cubm8iLCJvcnN0YS5ubyIsIlx4Zjhyc3RhLm5vIiwib3Nlbi5ubyIsIm9zdGVyb3kubm8iLCJvc3Rlclx4Zjh5Lm5vIiwidmFsZXIub3N0Zm9sZC5ubyIsInZceGU1bGVyLlx4ZjhzdGZvbGQubm8iLCJvc3RyZS10b3Rlbi5ubyIsIlx4ZjhzdHJlLXRvdGVu'@; put 'Lm5vIiwib3ZlcmhhbGxhLm5vIiwib3ZyZS1laWtlci5ubyIsIlx4Zjh2cmUtZWlrZXIubm8iLCJveWVyLm5vIiwiXHhmOHllci5ubyIsIm95Z2FyZGVuLm5vIiwiXHhmOHlnYXJkZW4ubm8iLCJveXN0cmUtc2xpZHJlLm5vIiwiXHhmOHlzdHJlLXNsaWRyZS5ubyIsInBvcnNhbmdlci5ubyIs'@; put 'InBvcnNhbmd1Lm5vIiwicG9yc1x4ZTFcdTAxNGJndS5ubyIsInBvcnNncnVubi5ubyIsInJhZGUubm8iLCJyXHhlNWRlLm5vIiwicmFkb3kubm8iLCJyYWRceGY4eS5ubyIsInJceGU2bGluZ2VuLm5vIiwicmFoa2tlcmF2anUubm8iLCJyXHhlMWhra2VyXHhlMXZqdS5ubyIsInJhaXNhLm5v'@; put 'Iiwiclx4ZTFpc2Eubm8iLCJyYWtrZXN0YWQubm8iLCJyYWxpbmdlbi5ubyIsInJhbmEubm8iLCJyYW5kYWJlcmcubm8iLCJyYXVtYS5ubyIsInJlbmRhbGVuLm5vIiwicmVubmVidS5ubyIsInJlbm5lc295Lm5vIiwicmVubmVzXHhmOHkubm8iLCJyaW5kYWwubm8iLCJyaW5nZWJ1Lm5vIiwi'@; put 'cmluZ2VyaWtlLm5vIiwicmluZ3Nha2VyLm5vIiwicmlzb3Iubm8iLCJyaXNceGY4ci5ubyIsInJpc3NhLm5vIiwicm9hbi5ubyIsInJvZG95Lm5vIiwiclx4ZjhkXHhmOHkubm8iLCJyb2xsYWcubm8iLCJyb21zYS5ubyIsInJvbXNrb2cubm8iLCJyXHhmOG1za29nLm5vIiwicm9yb3Mubm8i'@; put 'LCJyXHhmOHJvcy5ubyIsInJvc3Qubm8iLCJyXHhmOHN0Lm5vIiwicm95a2VuLm5vIiwiclx4Zjh5a2VuLm5vIiwicm95cnZpay5ubyIsInJceGY4eXJ2aWsubm8iLCJydW92YXQubm8iLCJyeWdnZS5ubyIsInNhbGFuZ2VuLm5vIiwic2FsYXQubm8iLCJzXHhlMWxhdC5ubyIsInNceGUxbFx4'@; put 'ZTF0Lm5vIiwic2FsdGRhbC5ubyIsInNhbW5hbmdlci5ubyIsInNhbmRlZmpvcmQubm8iLCJzYW5kbmVzLm5vIiwic2FuZG95Lm5vIiwic2FuZFx4Zjh5Lm5vIiwic2FycHNib3JnLm5vIiwic2F1ZGEubm8iLCJzYXVoZXJhZC5ubyIsInNlbC5ubyIsInNlbGJ1Lm5vIiwic2VsamUubm8iLCJz'@; put 'ZWxqb3JkLm5vIiwic2llbGxhay5ubyIsInNpZ2RhbC5ubyIsInNpbGphbi5ubyIsInNpcmRhbC5ubyIsInNrYW5pdC5ubyIsInNrXHhlMW5pdC5ubyIsInNrYW5sYW5kLm5vIiwic2tceGU1bmxhbmQubm8iLCJza2F1bi5ubyIsInNrZWRzbW8ubm8iLCJza2kubm8iLCJza2llbi5ubyIsInNr'@; put 'aWVydmEubm8iLCJza2llcnZceGUxLm5vIiwic2tpcHR2ZXQubm8iLCJza2phay5ubyIsInNralx4ZTVrLm5vIiwic2tqZXJ2b3kubm8iLCJza2plcnZceGY4eS5ubyIsInNrb2RqZS5ubyIsInNtb2xhLm5vIiwic21ceGY4bGEubm8iLCJzbmFhc2Uubm8iLCJzblx4ZTVhc2Uubm8iLCJzbmFz'@; put 'YS5ubyIsInNuXHhlNXNhLm5vIiwic25pbGxmam9yZC5ubyIsInNub2FzYS5ubyIsInNvZ25kYWwubm8iLCJzb2duZS5ubyIsInNceGY4Z25lLm5vIiwic29rbmRhbC5ubyIsInNvbGEubm8iLCJzb2x1bmQubm8iLCJzb21uYS5ubyIsInNceGY4bW5hLm5vIiwic29uZHJlLWxhbmQubm8iLCJz'@; put 'XHhmOG5kcmUtbGFuZC5ubyIsInNvbmdkYWxlbi5ubyIsInNvci1hdXJkYWwubm8iLCJzXHhmOHItYXVyZGFsLm5vIiwic29yLWZyb24ubm8iLCJzXHhmOHItZnJvbi5ubyIsInNvci1vZGFsLm5vIiwic1x4ZjhyLW9kYWwubm8iLCJzb3ItdmFyYW5nZXIubm8iLCJzXHhmOHItdmFyYW5nZXIu'@; put 'bm8iLCJzb3Jmb2xkLm5vIiwic1x4ZjhyZm9sZC5ubyIsInNvcnJlaXNhLm5vIiwic1x4ZjhycmVpc2Eubm8iLCJzb3J0bGFuZC5ubyIsInNvcnVtLm5vIiwic1x4ZjhydW0ubm8iLCJzcHlkZWJlcmcubm8iLCJzdGFuZ2Uubm8iLCJzdGF2YW5nZXIubm8iLCJzdGVpZ2VuLm5vIiwic3RlaW5r'@; put 'amVyLm5vIiwic3Rqb3JkYWwubm8iLCJzdGpceGY4cmRhbC5ubyIsInN0b2trZS5ubyIsInN0b3ItZWx2ZGFsLm5vIiwic3RvcmQubm8iLCJzdG9yZGFsLm5vIiwic3RvcmZqb3JkLm5vIiwic3RyYW5kLm5vIiwic3RyYW5kYS5ubyIsInN0cnluLm5vIiwic3VsYS5ubyIsInN1bGRhbC5ubyIs'@; put 'InN1bmQubm8iLCJzdW5uZGFsLm5vIiwic3VybmFkYWwubm8iLCJzdmVpby5ubyIsInN2ZWx2aWsubm8iLCJzeWtreWx2ZW4ubm8iLCJ0YW5hLm5vIiwiYm8udGVsZW1hcmsubm8iLCJiXHhmOC50ZWxlbWFyay5ubyIsInRpbWUubm8iLCJ0aW5ndm9sbC5ubyIsInRpbm4ubm8iLCJ0amVsZHN1'@; put 'bmQubm8iLCJ0am9tZS5ubyIsInRqXHhmOG1lLm5vIiwidG9ra2Uubm8iLCJ0b2xnYS5ubyIsInRvbnNiZXJnLm5vIiwidFx4Zjhuc2Jlcmcubm8iLCJ0b3Jza2VuLm5vIiwidHJceGU2bmEubm8iLCJ0cmFuYS5ubyIsInRyYW5veS5ubyIsInRyYW5ceGY4eS5ubyIsInRyb2FuZGluLm5vIiwi'@; put 'dHJvZ3N0YWQubm8iLCJ0clx4Zjhnc3RhZC5ubyIsInRyb21zYS5ubyIsInRyb21zby5ubyIsInRyb21zXHhmOC5ubyIsInRyb25kaGVpbS5ubyIsInRyeXNpbC5ubyIsInR2ZWRlc3RyYW5kLm5vIiwidHlkYWwubm8iLCJ0eW5zZXQubm8iLCJ0eXNmam9yZC5ubyIsInR5c25lcy5ubyIsInR5'@; put 'c3ZceGU2ci5ubyIsInR5c3Zhci5ubyIsInVsbGVuc2FrZXIubm8iLCJ1bGxlbnN2YW5nLm5vIiwidWx2aWsubm8iLCJ1bmphcmdhLm5vIiwidW5qXHhlMXJnYS5ubyIsInV0c2lyYS5ubyIsInZhYXBzdGUubm8iLCJ2YWRzby5ubyIsInZhZHNceGY4Lm5vIiwidlx4ZTZyXHhmOHkubm8iLCJ2'@; put 'YWdhLm5vIiwidlx4ZTVnXHhlNS5ubyIsInZhZ2FuLm5vIiwidlx4ZTVnYW4ubm8iLCJ2YWdzb3kubm8iLCJ2XHhlNWdzXHhmOHkubm8iLCJ2YWtzZGFsLm5vIiwidmFsbGUubm8iLCJ2YW5nLm5vIiwidmFueWx2ZW4ubm8iLCJ2YXJkby5ubyIsInZhcmRceGY4Lm5vIiwidmFyZ2dhdC5ubyIs'@; put 'InZceGUxcmdnXHhlMXQubm8iLCJ2YXJveS5ubyIsInZlZnNuLm5vIiwidmVnYS5ubyIsInZlZ2Fyc2hlaS5ubyIsInZlZ1x4ZTVyc2hlaS5ubyIsInZlbm5lc2xhLm5vIiwidmVyZGFsLm5vIiwidmVycmFuLm5vIiwidmVzdGJ5Lm5vIiwic2FuZGUudmVzdGZvbGQubm8iLCJ2ZXN0bmVzLm5v'@; put 'IiwidmVzdHJlLXNsaWRyZS5ubyIsInZlc3RyZS10b3Rlbi5ubyIsInZlc3R2YWdveS5ubyIsInZlc3R2XHhlNWdceGY4eS5ubyIsInZldmVsc3RhZC5ubyIsInZpay5ubyIsInZpa25hLm5vIiwidmluZGFmam9yZC5ubyIsInZvYWdhdC5ubyIsInZvbGRhLm5vIiwidm9zcy5ubyIsIioubnAi'@; put 'LCJuciIsImJpei5uciIsImNvbS5uciIsImVkdS5uciIsImdvdi5uciIsImluZm8ubnIiLCJuZXQubnIiLCJvcmcubnIiLCJudSIsIm56IiwiYWMubnoiLCJjby5ueiIsImNyaS5ueiIsImdlZWsubnoiLCJnZW4ubnoiLCJnb3Z0Lm56IiwiaGVhbHRoLm56IiwiaXdpLm56Iiwia2l3aS5ueiIs'@; put 'Im1hb3JpLm56IiwibVx1MDEwMW9yaS5ueiIsIm1pbC5ueiIsIm5ldC5ueiIsIm9yZy5ueiIsInBhcmxpYW1lbnQubnoiLCJzY2hvb2wubnoiLCJvbSIsImNvLm9tIiwiY29tLm9tIiwiZWR1Lm9tIiwiZ292Lm9tIiwibWVkLm9tIiwibXVzZXVtLm9tIiwibmV0Lm9tIiwib3JnLm9tIiwicHJv'@; put 'Lm9tIiwib25pb24iLCJvcmciLCJwYSIsImFiby5wYSIsImFjLnBhIiwiY29tLnBhIiwiZWR1LnBhIiwiZ29iLnBhIiwiaW5nLnBhIiwibWVkLnBhIiwibmV0LnBhIiwibm9tLnBhIiwib3JnLnBhIiwic2xkLnBhIiwicGUiLCJjb20ucGUiLCJlZHUucGUiLCJnb2IucGUiLCJtaWwucGUiLCJu'@; put 'ZXQucGUiLCJub20ucGUiLCJvcmcucGUiLCJwZiIsImNvbS5wZiIsImVkdS5wZiIsIm9yZy5wZiIsIioucGciLCJwaCIsImNvbS5waCIsImVkdS5waCIsImdvdi5waCIsImkucGgiLCJtaWwucGgiLCJuZXQucGgiLCJuZ28ucGgiLCJvcmcucGgiLCJwayIsImFjLnBrIiwiYml6LnBrIiwiY29t'@; put 'LnBrIiwiZWR1LnBrIiwiZmFtLnBrIiwiZ2twLnBrIiwiZ29iLnBrIiwiZ29nLnBrIiwiZ29rLnBrIiwiZ29uLnBrIiwiZ29wLnBrIiwiZ29zLnBrIiwiZ292LnBrIiwibmV0LnBrIiwib3JnLnBrIiwid2ViLnBrIiwicGwiLCJjb20ucGwiLCJuZXQucGwiLCJvcmcucGwiLCJhZ3JvLnBsIiwi'@; put 'YWlkLnBsIiwiYXRtLnBsIiwiYXV0by5wbCIsImJpei5wbCIsImVkdS5wbCIsImdtaW5hLnBsIiwiZ3NtLnBsIiwiaW5mby5wbCIsIm1haWwucGwiLCJtZWRpYS5wbCIsIm1pYXN0YS5wbCIsIm1pbC5wbCIsIm5pZXJ1Y2hvbW9zY2kucGwiLCJub20ucGwiLCJwYy5wbCIsInBvd2lhdC5wbCIs'@; put 'InByaXYucGwiLCJyZWFsZXN0YXRlLnBsIiwicmVsLnBsIiwic2V4LnBsIiwic2hvcC5wbCIsInNrbGVwLnBsIiwic29zLnBsIiwic3prb2xhLnBsIiwidGFyZ2kucGwiLCJ0bS5wbCIsInRvdXJpc20ucGwiLCJ0cmF2ZWwucGwiLCJ0dXJ5c3R5a2EucGwiLCJnb3YucGwiLCJhcC5nb3YucGwi'@; put 'LCJncml3Lmdvdi5wbCIsImljLmdvdi5wbCIsImlzLmdvdi5wbCIsImttcHNwLmdvdi5wbCIsImtvbnN1bGF0Lmdvdi5wbCIsImtwcHNwLmdvdi5wbCIsImt3cC5nb3YucGwiLCJrd3BzcC5nb3YucGwiLCJtdXAuZ292LnBsIiwibXcuZ292LnBsIiwib2lhLmdvdi5wbCIsIm9pcm0uZ292LnBs'@; put 'Iiwib2tlLmdvdi5wbCIsIm9vdy5nb3YucGwiLCJvc2Noci5nb3YucGwiLCJvdW0uZ292LnBsIiwicGEuZ292LnBsIiwicGluYi5nb3YucGwiLCJwaXcuZ292LnBsIiwicG8uZ292LnBsIiwicHIuZ292LnBsIiwicHNwLmdvdi5wbCIsInBzc2UuZ292LnBsIiwicHVwLmdvdi5wbCIsInJ6Z3cu'@; put 'Z292LnBsIiwic2EuZ292LnBsIiwic2RuLmdvdi5wbCIsInNrby5nb3YucGwiLCJzby5nb3YucGwiLCJzci5nb3YucGwiLCJzdGFyb3N0d28uZ292LnBsIiwidWcuZ292LnBsIiwidWdpbS5nb3YucGwiLCJ1bS5nb3YucGwiLCJ1bWlnLmdvdi5wbCIsInVwb3cuZ292LnBsIiwidXBwby5nb3Yu'@; put 'cGwiLCJ1cy5nb3YucGwiLCJ1dy5nb3YucGwiLCJ1enMuZ292LnBsIiwid2lmLmdvdi5wbCIsIndpaWguZ292LnBsIiwid2luYi5nb3YucGwiLCJ3aW9zLmdvdi5wbCIsIndpdGQuZ292LnBsIiwid2l3Lmdvdi5wbCIsIndrei5nb3YucGwiLCJ3c2EuZ292LnBsIiwid3Nrci5nb3YucGwiLCJ3'@; put 'c3NlLmdvdi5wbCIsInd1b3ouZ292LnBsIiwid3ptaXV3Lmdvdi5wbCIsInpwLmdvdi5wbCIsInpwaXNkbi5nb3YucGwiLCJhdWd1c3Rvdy5wbCIsImJhYmlhLWdvcmEucGwiLCJiZWR6aW4ucGwiLCJiZXNraWR5LnBsIiwiYmlhbG93aWV6YS5wbCIsImJpYWx5c3Rvay5wbCIsImJpZWxhd2Eu'@; put 'cGwiLCJiaWVzemN6YWR5LnBsIiwiYm9sZXNsYXdpZWMucGwiLCJieWRnb3N6Y3oucGwiLCJieXRvbS5wbCIsImNpZXN6eW4ucGwiLCJjemVsYWR6LnBsIiwiY3plc3QucGwiLCJkbHVnb2xla2EucGwiLCJlbGJsYWcucGwiLCJlbGsucGwiLCJnbG9nb3cucGwiLCJnbmllem5vLnBsIiwiZ29y'@; put 'bGljZS5wbCIsImdyYWpld28ucGwiLCJpbGF3YS5wbCIsImphd29yem5vLnBsIiwiamVsZW5pYS1nb3JhLnBsIiwiamdvcmEucGwiLCJrYWxpc3oucGwiLCJrYXJwYWN6LnBsIiwia2FydHV6eS5wbCIsImthc3p1YnkucGwiLCJrYXRvd2ljZS5wbCIsImthemltaWVyei1kb2xueS5wbCIsImtl'@; put 'cG5vLnBsIiwia2V0cnp5bi5wbCIsImtsb2R6a28ucGwiLCJrb2JpZXJ6eWNlLnBsIiwia29sb2JyemVnLnBsIiwia29uaW4ucGwiLCJrb25za293b2xhLnBsIiwia3V0bm8ucGwiLCJsYXB5LnBsIiwibGVib3JrLnBsIiwibGVnbmljYS5wbCIsImxlemFqc2sucGwiLCJsaW1hbm93YS5wbCIs'@; put 'ImxvbXphLnBsIiwibG93aWN6LnBsIiwibHViaW4ucGwiLCJsdWtvdy5wbCIsIm1hbGJvcmsucGwiLCJtYWxvcG9sc2thLnBsIiwibWF6b3dzemUucGwiLCJtYXp1cnkucGwiLCJtaWVsZWMucGwiLCJtaWVsbm8ucGwiLCJtcmFnb3dvLnBsIiwibmFrbG8ucGwiLCJub3dhcnVkYS5wbCIsIm55'@; put 'c2EucGwiLCJvbGF3YS5wbCIsIm9sZWNrby5wbCIsIm9sa3Vzei5wbCIsIm9sc3p0eW4ucGwiLCJvcG9jem5vLnBsIiwib3BvbGUucGwiLCJvc3Ryb2RhLnBsIiwib3N0cm9sZWthLnBsIiwib3N0cm93aWVjLnBsIiwib3N0cm93d2xrcC5wbCIsInBpbGEucGwiLCJwaXN6LnBsIiwicG9kaGFs'@; put 'ZS5wbCIsInBvZGxhc2llLnBsIiwicG9sa293aWNlLnBsIiwicG9tb3Jza2llLnBsIiwicG9tb3J6ZS5wbCIsInByb2Nob3dpY2UucGwiLCJwcnVzemtvdy5wbCIsInByemV3b3Jzay5wbCIsInB1bGF3eS5wbCIsInJhZG9tLnBsIiwicmF3YS1tYXoucGwiLCJyeWJuaWsucGwiLCJyemVzem93'@; put 'LnBsIiwic2Fub2sucGwiLCJzZWpueS5wbCIsInNrb2N6b3cucGwiLCJzbGFzay5wbCIsInNsdXBzay5wbCIsInNvc25vd2llYy5wbCIsInN0YWxvd2Etd29sYS5wbCIsInN0YXJhY2hvd2ljZS5wbCIsInN0YXJnYXJkLnBsIiwic3V3YWxraS5wbCIsInN3aWRuaWNhLnBsIiwic3dpZWJvZHpp'@; put 'bi5wbCIsInN3aW5vdWpzY2llLnBsIiwic3pjemVjaW4ucGwiLCJzemN6eXRuby5wbCIsInRhcm5vYnJ6ZWcucGwiLCJ0Z29yeS5wbCIsInR1cmVrLnBsIiwidHljaHkucGwiLCJ1c3RrYS5wbCIsIndhbGJyenljaC5wbCIsIndhcm1pYS5wbCIsIndhcnN6YXdhLnBsIiwid2F3LnBsIiwid2Vn'@; put 'cm93LnBsIiwid2llbHVuLnBsIiwid2xvY2wucGwiLCJ3bG9jbGF3ZWsucGwiLCJ3b2R6aXNsYXcucGwiLCJ3b2xvbWluLnBsIiwid3JvY2xhdy5wbCIsInphY2hwb21vci5wbCIsInphZ2FuLnBsIiwiemFyb3cucGwiLCJ6Z29yYS5wbCIsInpnb3J6ZWxlYy5wbCIsInBtIiwicG4iLCJjby5w'@; put 'biIsImVkdS5wbiIsImdvdi5wbiIsIm5ldC5wbiIsIm9yZy5wbiIsInBvc3QiLCJwciIsImJpei5wciIsImNvbS5wciIsImVkdS5wciIsImdvdi5wciIsImluZm8ucHIiLCJpc2xhLnByIiwibmFtZS5wciIsIm5ldC5wciIsIm9yZy5wciIsInByby5wciIsImFjLnByIiwiZXN0LnByIiwicHJv'@; put 'Zi5wciIsInBybyIsImFhYS5wcm8iLCJhY2EucHJvIiwiYWNjdC5wcm8iLCJhdm9jYXQucHJvIiwiYmFyLnBybyIsImNwYS5wcm8iLCJlbmcucHJvIiwianVyLnBybyIsImxhdy5wcm8iLCJtZWQucHJvIiwicmVjaHQucHJvIiwicHMiLCJjb20ucHMiLCJlZHUucHMiLCJnb3YucHMiLCJuZXQu'@; put 'cHMiLCJvcmcucHMiLCJwbG8ucHMiLCJzZWMucHMiLCJwdCIsImNvbS5wdCIsImVkdS5wdCIsImdvdi5wdCIsImludC5wdCIsIm5ldC5wdCIsIm5vbWUucHQiLCJvcmcucHQiLCJwdWJsLnB0IiwicHciLCJiZWxhdS5wdyIsImNvLnB3IiwiZWQucHciLCJnby5wdyIsIm9yLnB3IiwicHkiLCJj'@; put 'b20ucHkiLCJjb29wLnB5IiwiZWR1LnB5IiwiZ292LnB5IiwibWlsLnB5IiwibmV0LnB5Iiwib3JnLnB5IiwicWEiLCJjb20ucWEiLCJlZHUucWEiLCJnb3YucWEiLCJtaWwucWEiLCJuYW1lLnFhIiwibmV0LnFhIiwib3JnLnFhIiwic2NoLnFhIiwicmUiLCJhc3NvLnJlIiwiY29tLnJlIiwi'@; put 'cm8iLCJhcnRzLnJvIiwiY29tLnJvIiwiZmlybS5ybyIsImluZm8ucm8iLCJub20ucm8iLCJudC5ybyIsIm9yZy5ybyIsInJlYy5ybyIsInN0b3JlLnJvIiwidG0ucm8iLCJ3d3cucm8iLCJycyIsImFjLnJzIiwiY28ucnMiLCJlZHUucnMiLCJnb3YucnMiLCJpbi5ycyIsIm9yZy5ycyIsInJ1'@; put 'IiwicnciLCJhYy5ydyIsImNvLnJ3IiwiY29vcC5ydyIsImdvdi5ydyIsIm1pbC5ydyIsIm5ldC5ydyIsIm9yZy5ydyIsInNhIiwiY29tLnNhIiwiZWR1LnNhIiwiZ292LnNhIiwibWVkLnNhIiwibmV0LnNhIiwib3JnLnNhIiwicHViLnNhIiwic2NoLnNhIiwic2IiLCJjb20uc2IiLCJlZHUu'@; put 'c2IiLCJnb3Yuc2IiLCJuZXQuc2IiLCJvcmcuc2IiLCJzYyIsImNvbS5zYyIsImVkdS5zYyIsImdvdi5zYyIsIm5ldC5zYyIsIm9yZy5zYyIsInNkIiwiY29tLnNkIiwiZWR1LnNkIiwiZ292LnNkIiwiaW5mby5zZCIsIm1lZC5zZCIsIm5ldC5zZCIsIm9yZy5zZCIsInR2LnNkIiwic2UiLCJh'@; put 'LnNlIiwiYWMuc2UiLCJiLnNlIiwiYmQuc2UiLCJicmFuZC5zZSIsImMuc2UiLCJkLnNlIiwiZS5zZSIsImYuc2UiLCJmaC5zZSIsImZoc2suc2UiLCJmaHYuc2UiLCJnLnNlIiwiaC5zZSIsImkuc2UiLCJrLnNlIiwia29tZm9yYi5zZSIsImtvbW11bmFsZm9yYnVuZC5zZSIsImtvbXZ1eC5z'@; put 'ZSIsImwuc2UiLCJsYW5iaWIuc2UiLCJtLnNlIiwibi5zZSIsIm5hdHVyYnJ1a3NneW1uLnNlIiwiby5zZSIsIm9yZy5zZSIsInAuc2UiLCJwYXJ0aS5zZSIsInBwLnNlIiwicHJlc3Muc2UiLCJyLnNlIiwicy5zZSIsInQuc2UiLCJ0bS5zZSIsInUuc2UiLCJ3LnNlIiwieC5zZSIsInkuc2Ui'@; put 'LCJ6LnNlIiwic2ciLCJjb20uc2ciLCJlZHUuc2ciLCJnb3Yuc2ciLCJuZXQuc2ciLCJvcmcuc2ciLCJzaCIsImNvbS5zaCIsImdvdi5zaCIsIm1pbC5zaCIsIm5ldC5zaCIsIm9yZy5zaCIsInNpIiwic2oiLCJzayIsInNsIiwiY29tLnNsIiwiZWR1LnNsIiwiZ292LnNsIiwibmV0LnNsIiwi'@; put 'b3JnLnNsIiwic20iLCJzbiIsImFydC5zbiIsImNvbS5zbiIsImVkdS5zbiIsImdvdXYuc24iLCJvcmcuc24iLCJwZXJzby5zbiIsInVuaXYuc24iLCJzbyIsImNvbS5zbyIsImVkdS5zbyIsImdvdi5zbyIsIm1lLnNvIiwibmV0LnNvIiwib3JnLnNvIiwic3IiLCJzcyIsImJpei5zcyIsImNv'@; put 'LnNzIiwiY29tLnNzIiwiZWR1LnNzIiwiZ292LnNzIiwibWUuc3MiLCJuZXQuc3MiLCJvcmcuc3MiLCJzY2guc3MiLCJzdCIsImNvLnN0IiwiY29tLnN0IiwiY29uc3VsYWRvLnN0IiwiZWR1LnN0IiwiZW1iYWl4YWRhLnN0IiwibWlsLnN0IiwibmV0LnN0Iiwib3JnLnN0IiwicHJpbmNpcGUu'@; put 'c3QiLCJzYW90b21lLnN0Iiwic3RvcmUuc3QiLCJzdSIsInN2IiwiY29tLnN2IiwiZWR1LnN2IiwiZ29iLnN2Iiwib3JnLnN2IiwicmVkLnN2Iiwic3giLCJnb3Yuc3giLCJzeSIsImNvbS5zeSIsImVkdS5zeSIsImdvdi5zeSIsIm1pbC5zeSIsIm5ldC5zeSIsIm9yZy5zeSIsInN6IiwiYWMu'@; put 'c3oiLCJjby5zeiIsIm9yZy5zeiIsInRjIiwidGQiLCJ0ZWwiLCJ0ZiIsInRnIiwidGgiLCJhYy50aCIsImNvLnRoIiwiZ28udGgiLCJpbi50aCIsIm1pLnRoIiwibmV0LnRoIiwib3IudGgiLCJ0aiIsImFjLnRqIiwiYml6LnRqIiwiY28udGoiLCJjb20udGoiLCJlZHUudGoiLCJnby50aiIs'@; put 'Imdvdi50aiIsImludC50aiIsIm1pbC50aiIsIm5hbWUudGoiLCJuZXQudGoiLCJuaWMudGoiLCJvcmcudGoiLCJ0ZXN0LnRqIiwid2ViLnRqIiwidGsiLCJ0bCIsImdvdi50bCIsInRtIiwiY28udG0iLCJjb20udG0iLCJlZHUudG0iLCJnb3YudG0iLCJtaWwudG0iLCJuZXQudG0iLCJub20u'@; put 'dG0iLCJvcmcudG0iLCJ0biIsImNvbS50biIsImVucy50biIsImZpbi50biIsImdvdi50biIsImluZC50biIsImluZm8udG4iLCJpbnRsLnRuIiwibWluY29tLnRuIiwibmF0LnRuIiwibmV0LnRuIiwib3JnLnRuIiwicGVyc28udG4iLCJ0b3VyaXNtLnRuIiwidG8iLCJjb20udG8iLCJlZHUu'@; put 'dG8iLCJnb3YudG8iLCJtaWwudG8iLCJuZXQudG8iLCJvcmcudG8iLCJ0ciIsImF2LnRyIiwiYmJzLnRyIiwiYmVsLnRyIiwiYml6LnRyIiwiY29tLnRyIiwiZHIudHIiLCJlZHUudHIiLCJnZW4udHIiLCJnb3YudHIiLCJpbmZvLnRyIiwiazEyLnRyIiwia2VwLnRyIiwibWlsLnRyIiwibmFt'@; put 'ZS50ciIsIm5ldC50ciIsIm9yZy50ciIsInBvbC50ciIsInRlbC50ciIsInRzay50ciIsInR2LnRyIiwid2ViLnRyIiwibmMudHIiLCJnb3YubmMudHIiLCJ0dCIsImJpei50dCIsImNvLnR0IiwiY29tLnR0IiwiZWR1LnR0IiwiZ292LnR0IiwiaW5mby50dCIsIm1pbC50dCIsIm5hbWUudHQi'@; put 'LCJuZXQudHQiLCJvcmcudHQiLCJwcm8udHQiLCJ0diIsInR3IiwiY2x1Yi50dyIsImNvbS50dyIsImViaXoudHciLCJlZHUudHciLCJnYW1lLnR3IiwiZ292LnR3IiwiaWR2LnR3IiwibWlsLnR3IiwibmV0LnR3Iiwib3JnLnR3IiwidHoiLCJhYy50eiIsImNvLnR6IiwiZ28udHoiLCJob3Rl'@; put 'bC50eiIsImluZm8udHoiLCJtZS50eiIsIm1pbC50eiIsIm1vYmkudHoiLCJuZS50eiIsIm9yLnR6Iiwic2MudHoiLCJ0di50eiIsInVhIiwiY29tLnVhIiwiZWR1LnVhIiwiZ292LnVhIiwiaW4udWEiLCJuZXQudWEiLCJvcmcudWEiLCJjaGVya2Fzc3kudWEiLCJjaGVya2FzeS51YSIsImNo'@; put 'ZXJuaWdvdi51YSIsImNoZXJuaWhpdi51YSIsImNoZXJuaXZ0c2kudWEiLCJjaGVybm92dHN5LnVhIiwiY2sudWEiLCJjbi51YSIsImNyLnVhIiwiY3JpbWVhLnVhIiwiY3YudWEiLCJkbi51YSIsImRuZXByb3BldHJvdnNrLnVhIiwiZG5pcHJvcGV0cm92c2sudWEiLCJkb25ldHNrLnVhIiwi'@; put 'ZHAudWEiLCJpZi51YSIsIml2YW5vLWZyYW5raXZzay51YSIsImtoLnVhIiwia2hhcmtpdi51YSIsImtoYXJrb3YudWEiLCJraGVyc29uLnVhIiwia2htZWxuaXRza2l5LnVhIiwia2htZWxueXRza3lpLnVhIiwia2lldi51YSIsImtpcm92b2dyYWQudWEiLCJrbS51YSIsImtyLnVhIiwia3Jv'@; put 'cHl2bnl0c2t5aS51YSIsImtyeW0udWEiLCJrcy51YSIsImt2LnVhIiwia3lpdi51YSIsImxnLnVhIiwibHQudWEiLCJsdWdhbnNrLnVhIiwibHVoYW5zay51YSIsImx1dHNrLnVhIiwibHYudWEiLCJsdml2LnVhIiwibWsudWEiLCJteWtvbGFpdi51YSIsIm5pa29sYWV2LnVhIiwib2QudWEi'@; put 'LCJvZGVzYS51YSIsIm9kZXNzYS51YSIsInBsLnVhIiwicG9sdGF2YS51YSIsInJpdm5lLnVhIiwicm92bm8udWEiLCJydi51YSIsInNiLnVhIiwic2ViYXN0b3BvbC51YSIsInNldmFzdG9wb2wudWEiLCJzbS51YSIsInN1bXkudWEiLCJ0ZS51YSIsInRlcm5vcGlsLnVhIiwidXoudWEiLCJ1'@; put 'emhnb3JvZC51YSIsInV6aGhvcm9kLnVhIiwidmlubmljYS51YSIsInZpbm55dHNpYS51YSIsInZuLnVhIiwidm9seW4udWEiLCJ5YWx0YS51YSIsInpha2FycGF0dGlhLnVhIiwiemFwb3Jpemh6aGUudWEiLCJ6YXBvcml6aHpoaWEudWEiLCJ6aGl0b21pci51YSIsInpoeXRvbXlyLnVhIiwi'@; put 'enAudWEiLCJ6dC51YSIsInVnIiwiYWMudWciLCJjby51ZyIsImNvbS51ZyIsImdvLnVnIiwibmUudWciLCJvci51ZyIsIm9yZy51ZyIsInNjLnVnIiwidWsiLCJhYy51ayIsImNvLnVrIiwiZ292LnVrIiwibHRkLnVrIiwibWUudWsiLCJuZXQudWsiLCJuaHMudWsiLCJvcmcudWsiLCJwbGMu'@; put 'dWsiLCJwb2xpY2UudWsiLCIqLnNjaC51ayIsInVzIiwiZG5pLnVzIiwiZmVkLnVzIiwiaXNhLnVzIiwia2lkcy51cyIsIm5zbi51cyIsImFrLnVzIiwiYWwudXMiLCJhci51cyIsImFzLnVzIiwiYXoudXMiLCJjYS51cyIsImNvLnVzIiwiY3QudXMiLCJkYy51cyIsImRlLnVzIiwiZmwudXMi'@; put 'LCJnYS51cyIsImd1LnVzIiwiaGkudXMiLCJpYS51cyIsImlkLnVzIiwiaWwudXMiLCJpbi51cyIsImtzLnVzIiwia3kudXMiLCJsYS51cyIsIm1hLnVzIiwibWQudXMiLCJtZS51cyIsIm1pLnVzIiwibW4udXMiLCJtby51cyIsIm1zLnVzIiwibXQudXMiLCJuYy51cyIsIm5kLnVzIiwibmUu'@; put 'dXMiLCJuaC51cyIsIm5qLnVzIiwibm0udXMiLCJudi51cyIsIm55LnVzIiwib2gudXMiLCJvay51cyIsIm9yLnVzIiwicGEudXMiLCJwci51cyIsInJpLnVzIiwic2MudXMiLCJzZC51cyIsInRuLnVzIiwidHgudXMiLCJ1dC51cyIsInZhLnVzIiwidmkudXMiLCJ2dC51cyIsIndhLnVzIiwi'@; put 'd2kudXMiLCJ3di51cyIsInd5LnVzIiwiazEyLmFrLnVzIiwiazEyLmFsLnVzIiwiazEyLmFyLnVzIiwiazEyLmFzLnVzIiwiazEyLmF6LnVzIiwiazEyLmNhLnVzIiwiazEyLmNvLnVzIiwiazEyLmN0LnVzIiwiazEyLmRjLnVzIiwiazEyLmZsLnVzIiwiazEyLmdhLnVzIiwiazEyLmd1LnVz'@; put 'IiwiazEyLmlhLnVzIiwiazEyLmlkLnVzIiwiazEyLmlsLnVzIiwiazEyLmluLnVzIiwiazEyLmtzLnVzIiwiazEyLmt5LnVzIiwiazEyLmxhLnVzIiwiazEyLm1hLnVzIiwiazEyLm1kLnVzIiwiazEyLm1lLnVzIiwiazEyLm1pLnVzIiwiazEyLm1uLnVzIiwiazEyLm1vLnVzIiwiazEyLm1z'@; put 'LnVzIiwiazEyLm10LnVzIiwiazEyLm5jLnVzIiwiazEyLm5lLnVzIiwiazEyLm5oLnVzIiwiazEyLm5qLnVzIiwiazEyLm5tLnVzIiwiazEyLm52LnVzIiwiazEyLm55LnVzIiwiazEyLm9oLnVzIiwiazEyLm9rLnVzIiwiazEyLm9yLnVzIiwiazEyLnBhLnVzIiwiazEyLnByLnVzIiwiazEy'@; put 'LnNjLnVzIiwiazEyLnRuLnVzIiwiazEyLnR4LnVzIiwiazEyLnV0LnVzIiwiazEyLnZhLnVzIiwiazEyLnZpLnVzIiwiazEyLnZ0LnVzIiwiazEyLndhLnVzIiwiazEyLndpLnVzIiwiY2MuYWsudXMiLCJsaWIuYWsudXMiLCJjYy5hbC51cyIsImxpYi5hbC51cyIsImNjLmFyLnVzIiwibGli'@; put 'LmFyLnVzIiwiY2MuYXMudXMiLCJsaWIuYXMudXMiLCJjYy5hei51cyIsImxpYi5hei51cyIsImNjLmNhLnVzIiwibGliLmNhLnVzIiwiY2MuY28udXMiLCJsaWIuY28udXMiLCJjYy5jdC51cyIsImxpYi5jdC51cyIsImNjLmRjLnVzIiwibGliLmRjLnVzIiwiY2MuZGUudXMiLCJjYy5mbC51'@; put 'cyIsImNjLmdhLnVzIiwiY2MuZ3UudXMiLCJjYy5oaS51cyIsImNjLmlhLnVzIiwiY2MuaWQudXMiLCJjYy5pbC51cyIsImNjLmluLnVzIiwiY2Mua3MudXMiLCJjYy5reS51cyIsImNjLmxhLnVzIiwiY2MubWEudXMiLCJjYy5tZC51cyIsImNjLm1lLnVzIiwiY2MubWkudXMiLCJjYy5tbi51'@; put 'cyIsImNjLm1vLnVzIiwiY2MubXMudXMiLCJjYy5tdC51cyIsImNjLm5jLnVzIiwiY2MubmQudXMiLCJjYy5uZS51cyIsImNjLm5oLnVzIiwiY2MubmoudXMiLCJjYy5ubS51cyIsImNjLm52LnVzIiwiY2MubnkudXMiLCJjYy5vaC51cyIsImNjLm9rLnVzIiwiY2Mub3IudXMiLCJjYy5wYS51'@; put 'cyIsImNjLnByLnVzIiwiY2MucmkudXMiLCJjYy5zYy51cyIsImNjLnNkLnVzIiwiY2MudG4udXMiLCJjYy50eC51cyIsImNjLnV0LnVzIiwiY2MudmEudXMiLCJjYy52aS51cyIsImNjLnZ0LnVzIiwiY2Mud2EudXMiLCJjYy53aS51cyIsImNjLnd2LnVzIiwiY2Mud3kudXMiLCJrMTIud3ku'@; put 'dXMiLCJsaWIuZmwudXMiLCJsaWIuZ2EudXMiLCJsaWIuZ3UudXMiLCJsaWIuaGkudXMiLCJsaWIuaWEudXMiLCJsaWIuaWQudXMiLCJsaWIuaWwudXMiLCJsaWIuaW4udXMiLCJsaWIua3MudXMiLCJsaWIua3kudXMiLCJsaWIubGEudXMiLCJsaWIubWEudXMiLCJsaWIubWQudXMiLCJsaWIu'@; put 'bWUudXMiLCJsaWIubWkudXMiLCJsaWIubW4udXMiLCJsaWIubW8udXMiLCJsaWIubXMudXMiLCJsaWIubXQudXMiLCJsaWIubmMudXMiLCJsaWIubmQudXMiLCJsaWIubmUudXMiLCJsaWIubmgudXMiLCJsaWIubmoudXMiLCJsaWIubm0udXMiLCJsaWIubnYudXMiLCJsaWIubnkudXMiLCJs'@; put 'aWIub2gudXMiLCJsaWIub2sudXMiLCJsaWIub3IudXMiLCJsaWIucGEudXMiLCJsaWIucHIudXMiLCJsaWIucmkudXMiLCJsaWIuc2MudXMiLCJsaWIuc2QudXMiLCJsaWIudG4udXMiLCJsaWIudHgudXMiLCJsaWIudXQudXMiLCJsaWIudmEudXMiLCJsaWIudmkudXMiLCJsaWIudnQudXMi'@; put 'LCJsaWIud2EudXMiLCJsaWIud2kudXMiLCJsaWIud3kudXMiLCJjaHRyLmsxMi5tYS51cyIsInBhcm9jaC5rMTIubWEudXMiLCJwdnQuazEyLm1hLnVzIiwiYW5uLWFyYm9yLm1pLnVzIiwiY29nLm1pLnVzIiwiZHN0Lm1pLnVzIiwiZWF0b24ubWkudXMiLCJnZW4ubWkudXMiLCJtdXMubWku'@; put 'dXMiLCJ0ZWMubWkudXMiLCJ3YXNodGVuYXcubWkudXMiLCJ1eSIsImNvbS51eSIsImVkdS51eSIsImd1Yi51eSIsIm1pbC51eSIsIm5ldC51eSIsIm9yZy51eSIsInV6IiwiY28udXoiLCJjb20udXoiLCJuZXQudXoiLCJvcmcudXoiLCJ2YSIsInZjIiwiY29tLnZjIiwiZWR1LnZjIiwiZ292'@; put 'LnZjIiwibWlsLnZjIiwibmV0LnZjIiwib3JnLnZjIiwidmUiLCJhcnRzLnZlIiwiYmliLnZlIiwiY28udmUiLCJjb20udmUiLCJlMTIudmUiLCJlZHUudmUiLCJmaXJtLnZlIiwiZ29iLnZlIiwiZ292LnZlIiwiaW5mby52ZSIsImludC52ZSIsIm1pbC52ZSIsIm5ldC52ZSIsIm5vbS52ZSIs'@; put 'Im9yZy52ZSIsInJhci52ZSIsInJlYy52ZSIsInN0b3JlLnZlIiwidGVjLnZlIiwid2ViLnZlIiwidmciLCJ2aSIsImNvLnZpIiwiY29tLnZpIiwiazEyLnZpIiwibmV0LnZpIiwib3JnLnZpIiwidm4iLCJhYy52biIsImFpLnZuIiwiYml6LnZuIiwiY29tLnZuIiwiZWR1LnZuIiwiZ292LnZu'@; put 'IiwiaGVhbHRoLnZuIiwiaWQudm4iLCJpbmZvLnZuIiwiaW50LnZuIiwiaW8udm4iLCJuYW1lLnZuIiwibmV0LnZuIiwib3JnLnZuIiwicHJvLnZuIiwiYW5naWFuZy52biIsImJhY2dpYW5nLnZuIiwiYmFja2FuLnZuIiwiYmFjbGlldS52biIsImJhY25pbmgudm4iLCJiYXJpYS12dW5ndGF1'@; put 'LnZuIiwiYmVudHJlLnZuIiwiYmluaGRpbmgudm4iLCJiaW5oZHVvbmcudm4iLCJiaW5ocGh1b2Mudm4iLCJiaW5odGh1YW4udm4iLCJjYW1hdS52biIsImNhbnRoby52biIsImNhb2Jhbmcudm4iLCJkYWtsYWsudm4iLCJkYWtub25nLnZuIiwiZGFuYW5nLnZuIiwiZGllbmJpZW4udm4iLCJk'@; put 'b25nbmFpLnZuIiwiZG9uZ3RoYXAudm4iLCJnaWFsYWkudm4iLCJoYWdpYW5nLnZuIiwiaGFpZHVvbmcudm4iLCJoYWlwaG9uZy52biIsImhhbmFtLnZuIiwiaGFub2kudm4iLCJoYXRpbmgudm4iLCJoYXVnaWFuZy52biIsImhvYWJpbmgudm4iLCJodW5neWVuLnZuIiwia2hhbmhob2Eudm4i'@; put 'LCJraWVuZ2lhbmcudm4iLCJrb250dW0udm4iLCJsYWljaGF1LnZuIiwibGFtZG9uZy52biIsImxhbmdzb24udm4iLCJsYW9jYWkudm4iLCJsb25nYW4udm4iLCJuYW1kaW5oLnZuIiwibmdoZWFuLnZuIiwibmluaGJpbmgudm4iLCJuaW5odGh1YW4udm4iLCJwaHV0aG8udm4iLCJwaHV5ZW4u'@; put 'dm4iLCJxdWFuZ2Jpbmgudm4iLCJxdWFuZ25hbS52biIsInF1YW5nbmdhaS52biIsInF1YW5nbmluaC52biIsInF1YW5ndHJpLnZuIiwic29jdHJhbmcudm4iLCJzb25sYS52biIsInRheW5pbmgudm4iLCJ0aGFpYmluaC52biIsInRoYWluZ3V5ZW4udm4iLCJ0aGFuaGhvYS52biIsInRoYW5o'@; put 'cGhvaG9jaGltaW5oLnZuIiwidGh1YXRoaWVuaHVlLnZuIiwidGllbmdpYW5nLnZuIiwidHJhdmluaC52biIsInR1eWVucXVhbmcudm4iLCJ2aW5obG9uZy52biIsInZpbmhwaHVjLnZuIiwieWVuYmFpLnZuIiwidnUiLCJjb20udnUiLCJlZHUudnUiLCJuZXQudnUiLCJvcmcudnUiLCJ3ZiIs'@; put 'IndzIiwiY29tLndzIiwiZWR1LndzIiwiZ292LndzIiwibmV0LndzIiwib3JnLndzIiwieXQiLCJcdTA2MjdcdTA2NDVcdTA2MjdcdTA2MzFcdTA2MjdcdTA2MmEiLCJcdTA1NzBcdTA1NjFcdTA1NzUiLCJcdTA5YWNcdTA5YmVcdTA5ODJcdTA5YjJcdTA5YmUiLCJcdTA0MzFcdTA0MzMiLCJc'@; put 'dTA2MjdcdTA2NDRcdTA2MjhcdTA2MmRcdTA2MzFcdTA2NGFcdTA2NDYiLCJcdTA0MzFcdTA0MzVcdTA0M2IiLCJcdTRlMmRcdTU2ZmQiLCJcdTRlMmRcdTU3MGIiLCJcdTA2MjdcdTA2NDRcdTA2MmNcdTA2MzJcdTA2MjdcdTA2MjZcdTA2MzEiLCJcdTA2NDVcdTA2MzVcdTA2MzEiLCJcdTA0'@; put 'MzVcdTA0NGUiLCJcdTAzYjVcdTAzYzUiLCJcdTA2NDVcdTA2NDhcdTA2MzFcdTA2NGFcdTA2MmFcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MjciLCJcdTEwZDJcdTEwZDQiLCJcdTAzYjVcdTAzYmIiLCJcdTk5OTlcdTZlMmYiLCJcdTUwMGJcdTRlYmEuXHU5OTk5XHU2ZTJmIiwiXHU1MTZjXHU1'@; put 'M2Y4Llx1OTk5OVx1NmUyZiIsIlx1NjUzZlx1NWU5Yy5cdTk5OTlcdTZlMmYiLCJcdTY1NTlcdTgwYjIuXHU5OTk5XHU2ZTJmIiwiXHU3ZDQ0XHU3ZTU0Llx1OTk5OVx1NmUyZiIsIlx1N2RiMlx1N2Q2MS5cdTk5OTlcdTZlMmYiLCJcdTBjYWRcdTBjYmVcdTBjYjBcdTBjYTQiLCJcdTBiMmRc'@; put 'dTBiM2VcdTBiMzBcdTBiMjQiLCJcdTA5YWRcdTA5YmVcdTA5ZjBcdTA5YTQiLCJcdTA5MmRcdTA5M2VcdTA5MzBcdTA5MjRcdTA5MmVcdTA5NGQiLCJcdTA5MmRcdTA5M2VcdTA5MzBcdTA5NGJcdTA5MjQiLCJcdTA2ODBcdTA2MjdcdTA2MzFcdTA2MmEiLCJcdTBkMmRcdTBkM2VcdTBkMzBc'@; put 'dTBkMjRcdTBkMDIiLCJcdTA5MmRcdTA5M2VcdTA5MzBcdTA5MjQiLCJcdTA2MjhcdTA2MjdcdTA2MzFcdTA2MmEiLCJcdTA2MjhcdTA2YmVcdTA2MjdcdTA2MzFcdTA2MmEiLCJcdTBjMmRcdTBjM2VcdTBjMzBcdTBjMjRcdTBjNGQiLCJcdTBhYWRcdTBhYmVcdTBhYjBcdTBhYTQiLCJcdTBh'@; put 'MmRcdTBhM2VcdTBhMzBcdTBhMjQiLCJcdTA5YWRcdTA5YmVcdTA5YjBcdTA5YTQiLCJcdTBiODdcdTBiYThcdTBiY2RcdTBiYTRcdTBiYmZcdTBiYWZcdTBiYmUiLCJcdTA2MjdcdTA2Y2NcdTA2MzFcdTA2MjdcdTA2NDYiLCJcdTA2MjdcdTA2NGFcdTA2MzFcdTA2MjdcdTA2NDYiLCJcdTA2'@; put 'MzlcdTA2MzFcdTA2MjdcdTA2NDIiLCJcdTA2MjdcdTA2NDRcdTA2MjdcdTA2MzFcdTA2MmZcdTA2NDYiLCJcdWQ1NWNcdWFkNmQiLCJcdTA0OWJcdTA0MzBcdTA0MzciLCJcdTBlYTVcdTBlYjJcdTBlYTciLCJcdTBkYmRcdTBkODJcdTBkOWFcdTBkY2YiLCJcdTBiODdcdTBiYjJcdTBiOTlc'@; put 'dTBiY2RcdTBiOTVcdTBiYzgiLCJcdTA2MjdcdTA2NDRcdTA2NDVcdTA2M2FcdTA2MzFcdTA2MjgiLCJcdTA0M2NcdTA0M2FcdTA0MzQiLCJcdTA0M2NcdTA0M2VcdTA0M2QiLCJcdTZmYjNcdTk1ODAiLCJcdTZmYjNcdTk1ZTgiLCJcdTA2NDVcdTA2NDRcdTA2NGFcdTA2MzNcdTA2NGFcdTA2'@; put 'MjciLCJcdTA2MzlcdTA2NDVcdTA2MjdcdTA2NDYiLCJcdTA2N2VcdTA2MjdcdTA2YTlcdTA2MzNcdTA2MmFcdTA2MjdcdTA2NDYiLCJcdTA2N2VcdTA2MjdcdTA2NDNcdTA2MzNcdTA2MmFcdTA2MjdcdTA2NDYiLCJcdTA2NDFcdTA2NDRcdTA2MzNcdTA2MzdcdTA2NGFcdTA2NDYiLCJcdTA0'@; put 'NDFcdTA0NDBcdTA0MzEiLCJcdTA0MzBcdTA0M2EuXHUwNDQxXHUwNDQwXHUwNDMxIiwiXHUwNDNlXHUwNDMxXHUwNDQwLlx1MDQ0MVx1MDQ0MFx1MDQzMSIsIlx1MDQzZVx1MDQzNC5cdTA0NDFcdTA0NDBcdTA0MzEiLCJcdTA0M2VcdTA0NDBcdTA0MzMuXHUwNDQxXHUwNDQwXHUwNDMxIiwi'@; put 'XHUwNDNmXHUwNDQwLlx1MDQ0MVx1MDQ0MFx1MDQzMSIsIlx1MDQ0M1x1MDQzZlx1MDQ0MC5cdTA0NDFcdTA0NDBcdTA0MzEiLCJcdTA0NDBcdTA0NDQiLCJcdTA2NDJcdTA2MzdcdTA2MzEiLCJcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MzlcdTA2NDhcdTA2MmZcdTA2NGFcdTA2MjkiLCJcdTA2'@; put 'MjdcdTA2NDRcdTA2MzNcdTA2MzlcdTA2NDhcdTA2MmZcdTA2Y2NcdTA2MjkiLCJcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MzlcdTA2NDhcdTA2MmZcdTA2Y2NcdTA2YzMiLCJcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MzlcdTA2NDhcdTA2MmZcdTA2NGFcdTA2NDciLCJcdTA2MzNcdTA2NDhcdTA2'@; put 'MmZcdTA2MjdcdTA2NDYiLCJcdTY1YjBcdTUyYTBcdTU3NjEiLCJcdTBiOWFcdTBiYmZcdTBiOTlcdTBiY2RcdTBiOTVcdTBiYWFcdTBiY2RcdTBiYWFcdTBiYzJcdTBiYjBcdTBiY2QiLCJcdTA2MzNcdTA2NDhcdTA2MzFcdTA2NGFcdTA2MjkiLCJcdTA2MzNcdTA2NDhcdTA2MzFcdTA2NGFc'@; put 'dTA2MjciLCJcdTBlNDRcdTBlMTdcdTBlMjIiLCJcdTBlMTdcdTBlMmJcdTBlMzJcdTBlMjMuXHUwZTQ0XHUwZTE3XHUwZTIyIiwiXHUwZTE4XHUwZTM4XHUwZTIzXHUwZTAxXHUwZTM0XHUwZTA4Llx1MGU0NFx1MGUxN1x1MGUyMiIsIlx1MGU0MFx1MGUxOVx1MGU0N1x1MGUxNS5cdTBlNDRc'@; put 'dTBlMTdcdTBlMjIiLCJcdTBlMjNcdTBlMzFcdTBlMTBcdTBlMWFcdTBlMzJcdTBlMjUuXHUwZTQ0XHUwZTE3XHUwZTIyIiwiXHUwZTI4XHUwZTM2XHUwZTAxXHUwZTI5XHUwZTMyLlx1MGU0NFx1MGUxN1x1MGUyMiIsIlx1MGUyZFx1MGUwN1x1MGUwNFx1MGU0Y1x1MGUwMVx1MGUyMy5cdTBl'@; put 'NDRcdTBlMTdcdTBlMjIiLCJcdTA2MmFcdTA2NDhcdTA2NDZcdTA2MzMiLCJcdTUzZjBcdTcwNjMiLCJcdTUzZjBcdTZlN2UiLCJcdTgxZmFcdTcwNjMiLCJcdTA0NDNcdTA0M2FcdTA0NDAiLCJcdTA2MjdcdTA2NDRcdTA2NGFcdTA2NDVcdTA2NDYiLCJ4eHgiLCJ5ZSIsImNvbS55ZSIsImVk'@; put 'dS55ZSIsImdvdi55ZSIsIm1pbC55ZSIsIm5ldC55ZSIsIm9yZy55ZSIsImFjLnphIiwiYWdyaWMuemEiLCJhbHQuemEiLCJjby56YSIsImVkdS56YSIsImdvdi56YSIsImdyb25kYXIuemEiLCJsYXcuemEiLCJtaWwuemEiLCJuZXQuemEiLCJuZ28uemEiLCJuaWMuemEiLCJuaXMuemEiLCJu'@; put 'b20uemEiLCJvcmcuemEiLCJzY2hvb2wuemEiLCJ0bS56YSIsIndlYi56YSIsInptIiwiYWMuem0iLCJiaXouem0iLCJjby56bSIsImNvbS56bSIsImVkdS56bSIsImdvdi56bSIsImluZm8uem0iLCJtaWwuem0iLCJuZXQuem0iLCJvcmcuem0iLCJzY2guem0iLCJ6dyIsImFjLnp3IiwiY28u'@; put 'enciLCJnb3YuenciLCJtaWwuenciLCJvcmcuenciLCJhYWEiLCJhYXJwIiwiYWJiIiwiYWJib3R0IiwiYWJidmllIiwiYWJjIiwiYWJsZSIsImFib2dhZG8iLCJhYnVkaGFiaSIsImFjYWRlbXkiLCJhY2NlbnR1cmUiLCJhY2NvdW50YW50IiwiYWNjb3VudGFudHMiLCJhY28iLCJhY3RvciIs'@; put 'ImFkcyIsImFkdWx0IiwiYWVnIiwiYWV0bmEiLCJhZmwiLCJhZnJpY2EiLCJhZ2FraGFuIiwiYWdlbmN5IiwiYWlnIiwiYWlyYnVzIiwiYWlyZm9yY2UiLCJhaXJ0ZWwiLCJha2RuIiwiYWxpYmFiYSIsImFsaXBheSIsImFsbGZpbmFueiIsImFsbHN0YXRlIiwiYWxseSIsImFsc2FjZSIsImFs'@; put 'c3RvbSIsImFtYXpvbiIsImFtZXJpY2FuZXhwcmVzcyIsImFtZXJpY2FuZmFtaWx5IiwiYW1leCIsImFtZmFtIiwiYW1pY2EiLCJhbXN0ZXJkYW0iLCJhbmFseXRpY3MiLCJhbmRyb2lkIiwiYW5xdWFuIiwiYW56IiwiYW9sIiwiYXBhcnRtZW50cyIsImFwcCIsImFwcGxlIiwiYXF1YXJlbGxl'@; put 'IiwiYXJhYiIsImFyYW1jbyIsImFyY2hpIiwiYXJteSIsImFydCIsImFydGUiLCJhc2RhIiwiYXNzb2NpYXRlcyIsImF0aGxldGEiLCJhdHRvcm5leSIsImF1Y3Rpb24iLCJhdWRpIiwiYXVkaWJsZSIsImF1ZGlvIiwiYXVzcG9zdCIsImF1dGhvciIsImF1dG8iLCJhdXRvcyIsImF3cyIsImF4'@; put 'YSIsImF6dXJlIiwiYmFieSIsImJhaWR1IiwiYmFuYW1leCIsImJhbmQiLCJiYW5rIiwiYmFyIiwiYmFyY2Vsb25hIiwiYmFyY2xheWNhcmQiLCJiYXJjbGF5cyIsImJhcmVmb290IiwiYmFyZ2FpbnMiLCJiYXNlYmFsbCIsImJhc2tldGJhbGwiLCJiYXVoYXVzIiwiYmF5ZXJuIiwiYmJjIiwi'@; put 'YmJ0IiwiYmJ2YSIsImJjZyIsImJjbiIsImJlYXRzIiwiYmVhdXR5IiwiYmVlciIsImJlbnRsZXkiLCJiZXJsaW4iLCJiZXN0IiwiYmVzdGJ1eSIsImJldCIsImJoYXJ0aSIsImJpYmxlIiwiYmlkIiwiYmlrZSIsImJpbmciLCJiaW5nbyIsImJpbyIsImJsYWNrIiwiYmxhY2tmcmlkYXkiLCJi'@; put 'bG9ja2J1c3RlciIsImJsb2ciLCJibG9vbWJlcmciLCJibHVlIiwiYm1zIiwiYm13IiwiYm5wcGFyaWJhcyIsImJvYXRzIiwiYm9laHJpbmdlciIsImJvZmEiLCJib20iLCJib25kIiwiYm9vIiwiYm9vayIsImJvb2tpbmciLCJib3NjaCIsImJvc3RpayIsImJvc3RvbiIsImJvdCIsImJvdXRp'@; put 'cXVlIiwiYm94IiwiYnJhZGVzY28iLCJicmlkZ2VzdG9uZSIsImJyb2Fkd2F5IiwiYnJva2VyIiwiYnJvdGhlciIsImJydXNzZWxzIiwiYnVpbGQiLCJidWlsZGVycyIsImJ1c2luZXNzIiwiYnV5IiwiYnV6eiIsImJ6aCIsImNhYiIsImNhZmUiLCJjYWwiLCJjYWxsIiwiY2Fsdmlua2xlaW4i'@; put 'LCJjYW0iLCJjYW1lcmEiLCJjYW1wIiwiY2Fub24iLCJjYXBldG93biIsImNhcGl0YWwiLCJjYXBpdGFsb25lIiwiY2FyIiwiY2FyYXZhbiIsImNhcmRzIiwiY2FyZSIsImNhcmVlciIsImNhcmVlcnMiLCJjYXJzIiwiY2FzYSIsImNhc2UiLCJjYXNoIiwiY2FzaW5vIiwiY2F0ZXJpbmciLCJj'@; put 'YXRob2xpYyIsImNiYSIsImNibiIsImNicmUiLCJjZW50ZXIiLCJjZW8iLCJjZXJuIiwiY2ZhIiwiY2ZkIiwiY2hhbmVsIiwiY2hhbm5lbCIsImNoYXJpdHkiLCJjaGFzZSIsImNoYXQiLCJjaGVhcCIsImNoaW50YWkiLCJjaHJpc3RtYXMiLCJjaHJvbWUiLCJjaHVyY2giLCJjaXByaWFuaSIs'@; put 'ImNpcmNsZSIsImNpc2NvIiwiY2l0YWRlbCIsImNpdGkiLCJjaXRpYyIsImNpdHkiLCJjbGFpbXMiLCJjbGVhbmluZyIsImNsaWNrIiwiY2xpbmljIiwiY2xpbmlxdWUiLCJjbG90aGluZyIsImNsb3VkIiwiY2x1YiIsImNsdWJtZWQiLCJjb2FjaCIsImNvZGVzIiwiY29mZmVlIiwiY29sbGVn'@; put 'ZSIsImNvbG9nbmUiLCJjb21tYmFuayIsImNvbW11bml0eSIsImNvbXBhbnkiLCJjb21wYXJlIiwiY29tcHV0ZXIiLCJjb21zZWMiLCJjb25kb3MiLCJjb25zdHJ1Y3Rpb24iLCJjb25zdWx0aW5nIiwiY29udGFjdCIsImNvbnRyYWN0b3JzIiwiY29va2luZyIsImNvb2wiLCJjb3JzaWNhIiwi'@; put 'Y291bnRyeSIsImNvdXBvbiIsImNvdXBvbnMiLCJjb3Vyc2VzIiwiY3BhIiwiY3JlZGl0IiwiY3JlZGl0Y2FyZCIsImNyZWRpdHVuaW9uIiwiY3JpY2tldCIsImNyb3duIiwiY3JzIiwiY3J1aXNlIiwiY3J1aXNlcyIsImN1aXNpbmVsbGEiLCJjeW1ydSIsImN5b3UiLCJkYWQiLCJkYW5jZSIs'@; put 'ImRhdGEiLCJkYXRlIiwiZGF0aW5nIiwiZGF0c3VuIiwiZGF5IiwiZGNsayIsImRkcyIsImRlYWwiLCJkZWFsZXIiLCJkZWFscyIsImRlZ3JlZSIsImRlbGl2ZXJ5IiwiZGVsbCIsImRlbG9pdHRlIiwiZGVsdGEiLCJkZW1vY3JhdCIsImRlbnRhbCIsImRlbnRpc3QiLCJkZXNpIiwiZGVzaWdu'@; put 'IiwiZGV2IiwiZGhsIiwiZGlhbW9uZHMiLCJkaWV0IiwiZGlnaXRhbCIsImRpcmVjdCIsImRpcmVjdG9yeSIsImRpc2NvdW50IiwiZGlzY292ZXIiLCJkaXNoIiwiZGl5IiwiZG5wIiwiZG9jcyIsImRvY3RvciIsImRvZyIsImRvbWFpbnMiLCJkb3QiLCJkb3dubG9hZCIsImRyaXZlIiwiZHR2'@; put 'IiwiZHViYWkiLCJkdW5sb3AiLCJkdXBvbnQiLCJkdXJiYW4iLCJkdmFnIiwiZHZyIiwiZWFydGgiLCJlYXQiLCJlY28iLCJlZGVrYSIsImVkdWNhdGlvbiIsImVtYWlsIiwiZW1lcmNrIiwiZW5lcmd5IiwiZW5naW5lZXIiLCJlbmdpbmVlcmluZyIsImVudGVycHJpc2VzIiwiZXBzb24iLCJl'@; put 'cXVpcG1lbnQiLCJlcmljc3NvbiIsImVybmkiLCJlc3EiLCJlc3RhdGUiLCJldXJvdmlzaW9uIiwiZXVzIiwiZXZlbnRzIiwiZXhjaGFuZ2UiLCJleHBlcnQiLCJleHBvc2VkIiwiZXhwcmVzcyIsImV4dHJhc3BhY2UiLCJmYWdlIiwiZmFpbCIsImZhaXJ3aW5kcyIsImZhaXRoIiwiZmFtaWx5'@; put 'IiwiZmFuIiwiZmFucyIsImZhcm0iLCJmYXJtZXJzIiwiZmFzaGlvbiIsImZhc3QiLCJmZWRleCIsImZlZWRiYWNrIiwiZmVycmFyaSIsImZlcnJlcm8iLCJmaWRlbGl0eSIsImZpZG8iLCJmaWxtIiwiZmluYWwiLCJmaW5hbmNlIiwiZmluYW5jaWFsIiwiZmlyZSIsImZpcmVzdG9uZSIsImZp'@; put 'cm1kYWxlIiwiZmlzaCIsImZpc2hpbmciLCJmaXQiLCJmaXRuZXNzIiwiZmxpY2tyIiwiZmxpZ2h0cyIsImZsaXIiLCJmbG9yaXN0IiwiZmxvd2VycyIsImZseSIsImZvbyIsImZvb2QiLCJmb290YmFsbCIsImZvcmQiLCJmb3JleCIsImZvcnNhbGUiLCJmb3J1bSIsImZvdW5kYXRpb24iLCJm'@; put 'b3giLCJmcmVlIiwiZnJlc2VuaXVzIiwiZnJsIiwiZnJvZ2FucyIsImZyb250aWVyIiwiZnRyIiwiZnVqaXRzdSIsImZ1biIsImZ1bmQiLCJmdXJuaXR1cmUiLCJmdXRib2wiLCJmeWkiLCJnYWwiLCJnYWxsZXJ5IiwiZ2FsbG8iLCJnYWxsdXAiLCJnYW1lIiwiZ2FtZXMiLCJnYXAiLCJnYXJk'@; put 'ZW4iLCJnYXkiLCJnYml6IiwiZ2RuIiwiZ2VhIiwiZ2VudCIsImdlbnRpbmciLCJnZW9yZ2UiLCJnZ2VlIiwiZ2lmdCIsImdpZnRzIiwiZ2l2ZXMiLCJnaXZpbmciLCJnbGFzcyIsImdsZSIsImdsb2JhbCIsImdsb2JvIiwiZ21haWwiLCJnbWJoIiwiZ21vIiwiZ214IiwiZ29kYWRkeSIsImdv'@; put 'bGQiLCJnb2xkcG9pbnQiLCJnb2xmIiwiZ29vIiwiZ29vZHllYXIiLCJnb29nIiwiZ29vZ2xlIiwiZ29wIiwiZ290IiwiZ3JhaW5nZXIiLCJncmFwaGljcyIsImdyYXRpcyIsImdyZWVuIiwiZ3JpcGUiLCJncm9jZXJ5IiwiZ3JvdXAiLCJndWNjaSIsImd1Z2UiLCJndWlkZSIsImd1aXRhcnMi'@; put 'LCJndXJ1IiwiaGFpciIsImhhbWJ1cmciLCJoYW5nb3V0IiwiaGF1cyIsImhibyIsImhkZmMiLCJoZGZjYmFuayIsImhlYWx0aCIsImhlYWx0aGNhcmUiLCJoZWxwIiwiaGVsc2lua2kiLCJoZXJlIiwiaGVybWVzIiwiaGlwaG9wIiwiaGlzYW1pdHN1IiwiaGl0YWNoaSIsImhpdiIsImhrdCIs'@; put 'ImhvY2tleSIsImhvbGRpbmdzIiwiaG9saWRheSIsImhvbWVkZXBvdCIsImhvbWVnb29kcyIsImhvbWVzIiwiaG9tZXNlbnNlIiwiaG9uZGEiLCJob3JzZSIsImhvc3BpdGFsIiwiaG9zdCIsImhvc3RpbmciLCJob3QiLCJob3RlbHMiLCJob3RtYWlsIiwiaG91c2UiLCJob3ciLCJoc2JjIiwi'@; put 'aHVnaGVzIiwiaHlhdHQiLCJoeXVuZGFpIiwiaWJtIiwiaWNiYyIsImljZSIsImljdSIsImllZWUiLCJpZm0iLCJpa2FubyIsImltYW1hdCIsImltZGIiLCJpbW1vIiwiaW1tb2JpbGllbiIsImluYyIsImluZHVzdHJpZXMiLCJpbmZpbml0aSIsImluZyIsImluayIsImluc3RpdHV0ZSIsImlu'@; put 'c3VyYW5jZSIsImluc3VyZSIsImludGVybmF0aW9uYWwiLCJpbnR1aXQiLCJpbnZlc3RtZW50cyIsImlwaXJhbmdhIiwiaXJpc2giLCJpc21haWxpIiwiaXN0IiwiaXN0YW5idWwiLCJpdGF1IiwiaXR2IiwiamFndWFyIiwiamF2YSIsImpjYiIsImplZXAiLCJqZXR6dCIsImpld2VscnkiLCJq'@; put 'aW8iLCJqbGwiLCJqbXAiLCJqbmoiLCJqb2J1cmciLCJqb3QiLCJqb3kiLCJqcG1vcmdhbiIsImpwcnMiLCJqdWVnb3MiLCJqdW5pcGVyIiwia2F1ZmVuIiwia2RkaSIsImtlcnJ5aG90ZWxzIiwia2Vycnlsb2dpc3RpY3MiLCJrZXJyeXByb3BlcnRpZXMiLCJrZmgiLCJraWEiLCJraWRzIiwi'@; put 'a2ltIiwia2luZGxlIiwia2l0Y2hlbiIsImtpd2kiLCJrb2VsbiIsImtvbWF0c3UiLCJrb3NoZXIiLCJrcG1nIiwia3BuIiwia3JkIiwia3JlZCIsImt1b2tncm91cCIsImt5b3RvIiwibGFjYWl4YSIsImxhbWJvcmdoaW5pIiwibGFtZXIiLCJsYW5jYXN0ZXIiLCJsYW5kIiwibGFuZHJvdmVy'@; put 'IiwibGFueGVzcyIsImxhc2FsbGUiLCJsYXQiLCJsYXRpbm8iLCJsYXRyb2JlIiwibGF3IiwibGF3eWVyIiwibGRzIiwibGVhc2UiLCJsZWNsZXJjIiwibGVmcmFrIiwibGVnYWwiLCJsZWdvIiwibGV4dXMiLCJsZ2J0IiwibGlkbCIsImxpZmUiLCJsaWZlaW5zdXJhbmNlIiwibGlmZXN0eWxl'@; put 'IiwibGlnaHRpbmciLCJsaWtlIiwibGlsbHkiLCJsaW1pdGVkIiwibGltbyIsImxpbmNvbG4iLCJsaW5rIiwibGlwc3kiLCJsaXZlIiwibGl2aW5nIiwibGxjIiwibGxwIiwibG9hbiIsImxvYW5zIiwibG9ja2VyIiwibG9jdXMiLCJsb2wiLCJsb25kb24iLCJsb3R0ZSIsImxvdHRvIiwibG92'@; put 'ZSIsImxwbCIsImxwbGZpbmFuY2lhbCIsImx0ZCIsImx0ZGEiLCJsdW5kYmVjayIsImx1eGUiLCJsdXh1cnkiLCJtYWRyaWQiLCJtYWlmIiwibWFpc29uIiwibWFrZXVwIiwibWFuIiwibWFuYWdlbWVudCIsIm1hbmdvIiwibWFwIiwibWFya2V0IiwibWFya2V0aW5nIiwibWFya2V0cyIsIm1h'@; put 'cnJpb3R0IiwibWFyc2hhbGxzIiwibWF0dGVsIiwibWJhIiwibWNraW5zZXkiLCJtZWQiLCJtZWRpYSIsIm1lZXQiLCJtZWxib3VybmUiLCJtZW1lIiwibWVtb3JpYWwiLCJtZW4iLCJtZW51IiwibWVyY2siLCJtZXJja21zZCIsIm1pYW1pIiwibWljcm9zb2Z0IiwibWluaSIsIm1pbnQiLCJt'@; put 'aXQiLCJtaXRzdWJpc2hpIiwibWxiIiwibWxzIiwibW1hIiwibW9iaWxlIiwibW9kYSIsIm1vZSIsIm1vaSIsIm1vbSIsIm1vbmFzaCIsIm1vbmV5IiwibW9uc3RlciIsIm1vcm1vbiIsIm1vcnRnYWdlIiwibW9zY293IiwibW90byIsIm1vdG9yY3ljbGVzIiwibW92IiwibW92aWUiLCJtc2Qi'@; put 'LCJtdG4iLCJtdHIiLCJtdXNpYyIsIm5hYiIsIm5hZ295YSIsIm5hdnkiLCJuYmEiLCJuZWMiLCJuZXRiYW5rIiwibmV0ZmxpeCIsIm5ldHdvcmsiLCJuZXVzdGFyIiwibmV3IiwibmV3cyIsIm5leHQiLCJuZXh0ZGlyZWN0IiwibmV4dXMiLCJuZmwiLCJuZ28iLCJuaGsiLCJuaWNvIiwibmlr'@; put 'ZSIsIm5pa29uIiwibmluamEiLCJuaXNzYW4iLCJuaXNzYXkiLCJub2tpYSIsIm5vcnRvbiIsIm5vdyIsIm5vd3J1eiIsIm5vd3R2IiwibnJhIiwibnJ3IiwibnR0IiwibnljIiwib2JpIiwib2JzZXJ2ZXIiLCJvZmZpY2UiLCJva2luYXdhIiwib2xheWFuIiwib2xheWFuZ3JvdXAiLCJvbGxv'@; put 'Iiwib21lZ2EiLCJvbmUiLCJvbmciLCJvbmwiLCJvbmxpbmUiLCJvb28iLCJvcGVuIiwib3JhY2xlIiwib3JhbmdlIiwib3JnYW5pYyIsIm9yaWdpbnMiLCJvc2FrYSIsIm90c3VrYSIsIm90dCIsIm92aCIsInBhZ2UiLCJwYW5hc29uaWMiLCJwYXJpcyIsInBhcnMiLCJwYXJ0bmVycyIsInBh'@; put 'cnRzIiwicGFydHkiLCJwYXkiLCJwY2N3IiwicGV0IiwicGZpemVyIiwicGhhcm1hY3kiLCJwaGQiLCJwaGlsaXBzIiwicGhvbmUiLCJwaG90byIsInBob3RvZ3JhcGh5IiwicGhvdG9zIiwicGh5c2lvIiwicGljcyIsInBpY3RldCIsInBpY3R1cmVzIiwicGlkIiwicGluIiwicGluZyIsInBp'@; put 'bmsiLCJwaW9uZWVyIiwicGl6emEiLCJwbGFjZSIsInBsYXkiLCJwbGF5c3RhdGlvbiIsInBsdW1iaW5nIiwicGx1cyIsInBuYyIsInBvaGwiLCJwb2tlciIsInBvbGl0aWUiLCJwb3JuIiwicHJhbWVyaWNhIiwicHJheGkiLCJwcmVzcyIsInByaW1lIiwicHJvZCIsInByb2R1Y3Rpb25zIiwi'@; put 'cHJvZiIsInByb2dyZXNzaXZlIiwicHJvbW8iLCJwcm9wZXJ0aWVzIiwicHJvcGVydHkiLCJwcm90ZWN0aW9uIiwicHJ1IiwicHJ1ZGVudGlhbCIsInB1YiIsInB3YyIsInFwb24iLCJxdWViZWMiLCJxdWVzdCIsInJhY2luZyIsInJhZGlvIiwicmVhZCIsInJlYWxlc3RhdGUiLCJyZWFsdG9y'@; put 'IiwicmVhbHR5IiwicmVjaXBlcyIsInJlZCIsInJlZHN0b25lIiwicmVkdW1icmVsbGEiLCJyZWhhYiIsInJlaXNlIiwicmVpc2VuIiwicmVpdCIsInJlbGlhbmNlIiwicmVuIiwicmVudCIsInJlbnRhbHMiLCJyZXBhaXIiLCJyZXBvcnQiLCJyZXB1YmxpY2FuIiwicmVzdCIsInJlc3RhdXJh'@; put 'bnQiLCJyZXZpZXciLCJyZXZpZXdzIiwicmV4cm90aCIsInJpY2giLCJyaWNoYXJkbGkiLCJyaWNvaCIsInJpbCIsInJpbyIsInJpcCIsInJvY2tzIiwicm9kZW8iLCJyb2dlcnMiLCJyb29tIiwicnN2cCIsInJ1Z2J5IiwicnVociIsInJ1biIsInJ3ZSIsInJ5dWt5dSIsInNhYXJsYW5kIiwi'@; put 'c2FmZSIsInNhZmV0eSIsInNha3VyYSIsInNhbGUiLCJzYWxvbiIsInNhbXNjbHViIiwic2Ftc3VuZyIsInNhbmR2aWsiLCJzYW5kdmlrY29yb21hbnQiLCJzYW5vZmkiLCJzYXAiLCJzYXJsIiwic2FzIiwic2F2ZSIsInNheG8iLCJzYmkiLCJzYnMiLCJzY2IiLCJzY2hhZWZmbGVyIiwic2No'@; put 'bWlkdCIsInNjaG9sYXJzaGlwcyIsInNjaG9vbCIsInNjaHVsZSIsInNjaHdhcnoiLCJzY2llbmNlIiwic2NvdCIsInNlYXJjaCIsInNlYXQiLCJzZWN1cmUiLCJzZWN1cml0eSIsInNlZWsiLCJzZWxlY3QiLCJzZW5lciIsInNlcnZpY2VzIiwic2V2ZW4iLCJzZXciLCJzZXgiLCJzZXh5Iiwi'@; put 'c2ZyIiwic2hhbmdyaWxhIiwic2hhcnAiLCJzaGVsbCIsInNoaWEiLCJzaGlrc2hhIiwic2hvZXMiLCJzaG9wIiwic2hvcHBpbmciLCJzaG91amkiLCJzaG93Iiwic2lsayIsInNpbmEiLCJzaW5nbGVzIiwic2l0ZSIsInNraSIsInNraW4iLCJza3kiLCJza3lwZSIsInNsaW5nIiwic21hcnQi'@; put 'LCJzbWlsZSIsInNuY2YiLCJzb2NjZXIiLCJzb2NpYWwiLCJzb2Z0YmFuayIsInNvZnR3YXJlIiwic29odSIsInNvbGFyIiwic29sdXRpb25zIiwic29uZyIsInNvbnkiLCJzb3kiLCJzcGEiLCJzcGFjZSIsInNwb3J0Iiwic3BvdCIsInNybCIsInN0YWRhIiwic3RhcGxlcyIsInN0YXIiLCJz'@; put 'dGF0ZWJhbmsiLCJzdGF0ZWZhcm0iLCJzdGMiLCJzdGNncm91cCIsInN0b2NraG9sbSIsInN0b3JhZ2UiLCJzdG9yZSIsInN0cmVhbSIsInN0dWRpbyIsInN0dWR5Iiwic3R5bGUiLCJzdWNrcyIsInN1cHBsaWVzIiwic3VwcGx5Iiwic3VwcG9ydCIsInN1cmYiLCJzdXJnZXJ5Iiwic3V6dWtp'@; put 'Iiwic3dhdGNoIiwic3dpc3MiLCJzeWRuZXkiLCJzeXN0ZW1zIiwidGFiIiwidGFpcGVpIiwidGFsayIsInRhb2JhbyIsInRhcmdldCIsInRhdGFtb3RvcnMiLCJ0YXRhciIsInRhdHRvbyIsInRheCIsInRheGkiLCJ0Y2kiLCJ0ZGsiLCJ0ZWFtIiwidGVjaCIsInRlY2hub2xvZ3kiLCJ0ZW1h'@; put 'c2VrIiwidGVubmlzIiwidGV2YSIsInRoZCIsInRoZWF0ZXIiLCJ0aGVhdHJlIiwidGlhYSIsInRpY2tldHMiLCJ0aWVuZGEiLCJ0aXBzIiwidGlyZXMiLCJ0aXJvbCIsInRqbWF4eCIsInRqeCIsInRrbWF4eCIsInRtYWxsIiwidG9kYXkiLCJ0b2t5byIsInRvb2xzIiwidG9wIiwidG9yYXki'@; put 'LCJ0b3NoaWJhIiwidG90YWwiLCJ0b3VycyIsInRvd24iLCJ0b3lvdGEiLCJ0b3lzIiwidHJhZGUiLCJ0cmFkaW5nIiwidHJhaW5pbmciLCJ0cmF2ZWwiLCJ0cmF2ZWxlcnMiLCJ0cmF2ZWxlcnNpbnN1cmFuY2UiLCJ0cnVzdCIsInRydiIsInR1YmUiLCJ0dWkiLCJ0dW5lcyIsInR1c2h1Iiwi'@; put 'dHZzIiwidWJhbmsiLCJ1YnMiLCJ1bmljb20iLCJ1bml2ZXJzaXR5IiwidW5vIiwidW9sIiwidXBzIiwidmFjYXRpb25zIiwidmFuYSIsInZhbmd1YXJkIiwidmVnYXMiLCJ2ZW50dXJlcyIsInZlcmlzaWduIiwidmVyc2ljaGVydW5nIiwidmV0IiwidmlhamVzIiwidmlkZW8iLCJ2aWciLCJ2'@; put 'aWtpbmciLCJ2aWxsYXMiLCJ2aW4iLCJ2aXAiLCJ2aXJnaW4iLCJ2aXNhIiwidmlzaW9uIiwidml2YSIsInZpdm8iLCJ2bGFhbmRlcmVuIiwidm9ka2EiLCJ2b2x2byIsInZvdGUiLCJ2b3RpbmciLCJ2b3RvIiwidm95YWdlIiwid2FsZXMiLCJ3YWxtYXJ0Iiwid2FsdGVyIiwid2FuZyIsIndh'@; put 'bmdnb3UiLCJ3YXRjaCIsIndhdGNoZXMiLCJ3ZWF0aGVyIiwid2VhdGhlcmNoYW5uZWwiLCJ3ZWJjYW0iLCJ3ZWJlciIsIndlYnNpdGUiLCJ3ZWQiLCJ3ZWRkaW5nIiwid2VpYm8iLCJ3ZWlyIiwid2hvc3dobyIsIndpZW4iLCJ3aWtpIiwid2lsbGlhbWhpbGwiLCJ3aW4iLCJ3aW5kb3dzIiwi'@; put 'd2luZSIsIndpbm5lcnMiLCJ3bWUiLCJ3b2x0ZXJza2x1d2VyIiwid29vZHNpZGUiLCJ3b3JrIiwid29ya3MiLCJ3b3JsZCIsIndvdyIsInd0YyIsInd0ZiIsInhib3giLCJ4ZXJveCIsInhpaHVhbiIsInhpbiIsIlx1MDkxNVx1MDk0OVx1MDkyZSIsIlx1MzBiYlx1MzBmY1x1MzBlYiIsIlx1'@; put 'NGY1Ylx1NWM3MSIsIlx1NjE0OFx1NTU4NCIsIlx1OTZjNlx1NTZlMiIsIlx1NTcyOFx1N2ViZiIsIlx1NzBiOVx1NzcwYiIsIlx1MGUwNFx1MGUyZFx1MGUyMSIsIlx1NTE2Ylx1NTM2NiIsIlx1MDY0NVx1MDY0OFx1MDY0Mlx1MDYzOSIsIlx1NTE2Y1x1NzZjYSIsIlx1NTE2Y1x1NTNmOCIs'@; put 'Ilx1OTk5OVx1NjgzY1x1OTFjY1x1NjJjOSIsIlx1N2Y1MVx1N2FkOSIsIlx1NzlmYlx1NTJhOCIsIlx1NjIxMVx1NzIzMVx1NGY2MCIsIlx1MDQzY1x1MDQzZVx1MDQ0MVx1MDQzYVx1MDQzMlx1MDQzMCIsIlx1MDQzYVx1MDQzMFx1MDQ0Mlx1MDQzZVx1MDQzYlx1MDQzOFx1MDQzYSIsIlx1'@; put 'MDQzZVx1MDQzZFx1MDQzYlx1MDQzMFx1MDQzOVx1MDQzZCIsIlx1MDQ0MVx1MDQzMFx1MDQzOVx1MDQ0MiIsIlx1ODA1NFx1OTAxYSIsIlx1MDVlN1x1MDVkNVx1MDVkZCIsIlx1NjVmNlx1NWMxYSIsIlx1NWZhZVx1NTM1YSIsIlx1NmRlMVx1OWE2Y1x1OTUyMSIsIlx1MzBkNVx1MzBhMVx1'@; put 'MzBjM1x1MzBiN1x1MzBlN1x1MzBmMyIsIlx1MDQzZVx1MDQ0MFx1MDQzMyIsIlx1MDkyOFx1MDk0N1x1MDkxZiIsIlx1MzBiOVx1MzBjOFx1MzBhMiIsIlx1MzBhMlx1MzBkZVx1MzBiZVx1MzBmMyIsIlx1YzBiY1x1YzEzMSIsIlx1NTU0Nlx1NjgwNyIsIlx1NTU0Nlx1NWU5NyIsIlx1NTU0'@; put 'Nlx1NTdjZSIsIlx1MDQzNFx1MDQzNVx1MDQ0Mlx1MDQzOCIsIlx1MzBkZFx1MzBhNFx1MzBmM1x1MzBjOCIsIlx1NjViMFx1OTVmYiIsIlx1NWJiNlx1OTZmYiIsIlx1MDY0M1x1MDY0OFx1MDY0NSIsIlx1NGUyZFx1NjU4N1x1N2Y1MSIsIlx1NGUyZFx1NGZlMSIsIlx1NWEzMVx1NGU1MCIs'@; put 'Ilx1OGMzN1x1NmI0YyIsIlx1OTZmYlx1OGEwYVx1NzZjOFx1NzlkMSIsIlx1OGQyZFx1NzI2OSIsIlx1MzBhZlx1MzBlOVx1MzBhNlx1MzBjOSIsIlx1OTAxYVx1OGNhOSIsIlx1N2Y1MVx1NWU5NyIsIlx1MDkzOFx1MDkwMlx1MDkxN1x1MDkyMFx1MDkyOCIsIlx1OTkxMFx1NTM4NSIsIlx1'@; put 'N2Y1MVx1N2VkYyIsIlx1MDQzYVx1MDQzZVx1MDQzYyIsIlx1NGU5YVx1OWE2Y1x1OTAwYSIsIlx1OThkZlx1NTRjMSIsIlx1OThkZVx1NTIyOVx1NmQ2NiIsIlx1NjI0Ylx1NjczYSIsIlx1MDYyN1x1MDYzMVx1MDYyN1x1MDY0NVx1MDY0M1x1MDY0OCIsIlx1MDYyN1x1MDY0NFx1MDYzOVx1'@; put 'MDY0NFx1MDY0YVx1MDYyN1x1MDY0NiIsIlx1MDYyOFx1MDYyN1x1MDYzMlx1MDYyN1x1MDYzMSIsIlx1MDYyN1x1MDYyOFx1MDY0OFx1MDYzOFx1MDYyOFx1MDY0YSIsIlx1MDY0M1x1MDYyN1x1MDYyYlx1MDY0OFx1MDY0NFx1MDY0YVx1MDY0MyIsIlx1MDY0N1x1MDY0NVx1MDYzMVx1MDYy'@; put 'N1x1MDY0NyIsIlx1YjJmN1x1Y2VmNCIsIlx1NjUzZlx1NWU5YyIsIlx1MDYzNFx1MDYyOFx1MDY0M1x1MDYyOSIsIlx1MDYyOFx1MDY0YVx1MDYyYVx1MDY0MyIsIlx1MDYzOVx1MDYzMVx1MDYyOCIsIlx1NjczYVx1Njc4NCIsIlx1N2VjNFx1N2VjN1x1NjczYVx1Njc4NCIsIlx1NTA2NVx1'@; put 'NWViNyIsIlx1NjJkYlx1ODA1OCIsIlx1MDQ0MFx1MDQ0M1x1MDQ0MSIsIlx1NTkyN1x1NjJmZiIsIlx1MzA3Zlx1MzA5M1x1MzA2YSIsIlx1MzBiMFx1MzBmY1x1MzBiMFx1MzBlYiIsIlx1NGUxNlx1NzU0YyIsIlx1NjZmOFx1N2M0ZCIsIlx1N2Y1MVx1NTc0MCIsIlx1YjJmN1x1YjEzNyIs'@; put 'Ilx1MzBiM1x1MzBlMCIsIlx1NTkyOVx1NGUzYlx1NjU1OSIsIlx1NmUzOFx1NjIwZiIsInZlcm1ceGY2Z2Vuc2JlcmF0ZXIiLCJ2ZXJtXHhmNmdlbnNiZXJhdHVuZyIsIlx1NGYwMVx1NGUxYSIsIlx1NGZlMVx1NjA2ZiIsIlx1NTYwOVx1OTFjY1x1NTkyN1x1OTE1Mlx1NWU5NyIsIlx1NTYw'@; put 'OVx1OTFjYyIsIlx1NWU3Zlx1NGUxYyIsIlx1NjUzZlx1NTJhMSIsInh5eiIsInlhY2h0cyIsInlhaG9vIiwieWFtYXh1biIsInlhbmRleCIsInlvZG9iYXNoaSIsInlvZ2EiLCJ5b2tvaGFtYSIsInlvdSIsInlvdXR1YmUiLCJ5dW4iLCJ6YXBwb3MiLCJ6YXJhIiwiemVybyIsInppcCIsInpv'@; put 'bmUiLCJ6dWVyaWNoIiwiY28ua3JkIiwiZWR1LmtyZCIsImFydC5wbCIsImdsaXdpY2UucGwiLCJrcmFrb3cucGwiLCJwb3puYW4ucGwiLCJ3cm9jLnBsIiwiemFrb3BhbmUucGwiLCJsaWIuZGUudXMiLCIxMmNoYXJzLmRldiIsIjEyY2hhcnMuaXQiLCIxMmNoYXJzLnBybyIsImNjLnVhIiwi'@; put 'aW5mLnVhIiwibHRkLnVhIiwiNjExLnRvIiwiYTJob3N0ZWQuY29tIiwiY3BzZXJ2ZXIuY29tIiwiYWFhLnZvZGthIiwiKi5vbi1hY29ybi5pbyIsImFjdGl2ZXRyYWlsLmJpeiIsImFkYXB0YWJsZS5hcHAiLCJhZG9iZWFlbWNsb3VkLmNvbSIsIiouZGV2LmFkb2JlYWVtY2xvdWQuY29tIiwi'@; put 'YWVtLmxpdmUiLCJobHgubGl2ZSIsImFkb2JlYWVtY2xvdWQubmV0IiwiYWVtLnBhZ2UiLCJobHgucGFnZSIsImhseDMucGFnZSIsImFkb2JlaW8tc3RhdGljLm5ldCIsImFkb2JlaW9ydW50aW1lLm5ldCIsImFmcmljYS5jb20iLCJiZWVwLnBsIiwiYWlya2l0YXBwcy5jb20iLCJhaXJraXRh'@; put 'cHBzLWF1LmNvbSIsImFpcmtpdGFwcHMuZXUiLCJhaXZlbmNsb3VkLmNvbSIsImFrYWRucy5uZXQiLCJha2FtYWkubmV0IiwiYWthbWFpLXN0YWdpbmcubmV0IiwiYWthbWFpZWRnZS5uZXQiLCJha2FtYWllZGdlLXN0YWdpbmcubmV0IiwiYWthbWFpaGQubmV0IiwiYWthbWFpaGQtc3RhZ2lu'@; put 'Zy5uZXQiLCJha2FtYWlvcmlnaW4ubmV0IiwiYWthbWFpb3JpZ2luLXN0YWdpbmcubmV0IiwiYWthbWFpemVkLm5ldCIsImFrYW1haXplZC1zdGFnaW5nLm5ldCIsImVkZ2VrZXkubmV0IiwiZWRnZWtleS1zdGFnaW5nLm5ldCIsImVkZ2VzdWl0ZS5uZXQiLCJlZGdlc3VpdGUtc3RhZ2luZy5u'@; put 'ZXQiLCJiYXJzeS5jYSIsIiouY29tcHV0ZS5lc3RhdGUiLCIqLmFsY2VzLm5ldHdvcmsiLCJrYXNzZXJ2ZXIuY29tIiwiYWx0ZXJ2aXN0YS5vcmciLCJhbHdheXNkYXRhLm5ldCIsIm15YW1hemUubmV0IiwiZXhlY3V0ZS1hcGkuY24tbm9ydGgtMS5hbWF6b25hd3MuY29tLmNuIiwiZXhlY3V0'@; put 'ZS1hcGkuY24tbm9ydGh3ZXN0LTEuYW1hem9uYXdzLmNvbS5jbiIsImV4ZWN1dGUtYXBpLmFmLXNvdXRoLTEuYW1hem9uYXdzLmNvbSIsImV4ZWN1dGUtYXBpLmFwLWVhc3QtMS5hbWF6b25hd3MuY29tIiwiZXhlY3V0ZS1hcGkuYXAtbm9ydGhlYXN0LTEuYW1hem9uYXdzLmNvbSIsImV4ZWN1'@; put 'dGUtYXBpLmFwLW5vcnRoZWFzdC0yLmFtYXpvbmF3cy5jb20iLCJleGVjdXRlLWFwaS5hcC1ub3J0aGVhc3QtMy5hbWF6b25hd3MuY29tIiwiZXhlY3V0ZS1hcGkuYXAtc291dGgtMS5hbWF6b25hd3MuY29tIiwiZXhlY3V0ZS1hcGkuYXAtc291dGgtMi5hbWF6b25hd3MuY29tIiwiZXhlY3V0'@; put 'ZS1hcGkuYXAtc291dGhlYXN0LTEuYW1hem9uYXdzLmNvbSIsImV4ZWN1dGUtYXBpLmFwLXNvdXRoZWFzdC0yLmFtYXpvbmF3cy5jb20iLCJleGVjdXRlLWFwaS5hcC1zb3V0aGVhc3QtMy5hbWF6b25hd3MuY29tIiwiZXhlY3V0ZS1hcGkuYXAtc291dGhlYXN0LTQuYW1hem9uYXdzLmNvbSIs'@; put 'ImV4ZWN1dGUtYXBpLmFwLXNvdXRoZWFzdC01LmFtYXpvbmF3cy5jb20iLCJleGVjdXRlLWFwaS5jYS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsImV4ZWN1dGUtYXBpLmNhLXdlc3QtMS5hbWF6b25hd3MuY29tIiwiZXhlY3V0ZS1hcGkuZXUtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJl'@; put 'eGVjdXRlLWFwaS5ldS1jZW50cmFsLTIuYW1hem9uYXdzLmNvbSIsImV4ZWN1dGUtYXBpLmV1LW5vcnRoLTEuYW1hem9uYXdzLmNvbSIsImV4ZWN1dGUtYXBpLmV1LXNvdXRoLTEuYW1hem9uYXdzLmNvbSIsImV4ZWN1dGUtYXBpLmV1LXNvdXRoLTIuYW1hem9uYXdzLmNvbSIsImV4ZWN1dGUt'@; put 'YXBpLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tIiwiZXhlY3V0ZS1hcGkuZXUtd2VzdC0yLmFtYXpvbmF3cy5jb20iLCJleGVjdXRlLWFwaS5ldS13ZXN0LTMuYW1hem9uYXdzLmNvbSIsImV4ZWN1dGUtYXBpLmlsLWNlbnRyYWwtMS5hbWF6b25hd3MuY29tIiwiZXhlY3V0ZS1hcGkubWUtY2Vu'@; put 'dHJhbC0xLmFtYXpvbmF3cy5jb20iLCJleGVjdXRlLWFwaS5tZS1zb3V0aC0xLmFtYXpvbmF3cy5jb20iLCJleGVjdXRlLWFwaS5zYS1lYXN0LTEuYW1hem9uYXdzLmNvbSIsImV4ZWN1dGUtYXBpLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tIiwiZXhlY3V0ZS1hcGkudXMtZWFzdC0yLmFtYXpv'@; put 'bmF3cy5jb20iLCJleGVjdXRlLWFwaS51cy1nb3YtZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJleGVjdXRlLWFwaS51cy1nb3Ytd2VzdC0xLmFtYXpvbmF3cy5jb20iLCJleGVjdXRlLWFwaS51cy13ZXN0LTEuYW1hem9uYXdzLmNvbSIsImV4ZWN1dGUtYXBpLnVzLXdlc3QtMi5hbWF6b25hd3Mu'@; put 'Y29tIiwiY2xvdWRmcm9udC5uZXQiLCJhdXRoLmFmLXNvdXRoLTEuYW1hem9uY29nbml0by5jb20iLCJhdXRoLmFwLWVhc3QtMS5hbWF6b25jb2duaXRvLmNvbSIsImF1dGguYXAtbm9ydGhlYXN0LTEuYW1hem9uY29nbml0by5jb20iLCJhdXRoLmFwLW5vcnRoZWFzdC0yLmFtYXpvbmNvZ25p'@; put 'dG8uY29tIiwiYXV0aC5hcC1ub3J0aGVhc3QtMy5hbWF6b25jb2duaXRvLmNvbSIsImF1dGguYXAtc291dGgtMS5hbWF6b25jb2duaXRvLmNvbSIsImF1dGguYXAtc291dGgtMi5hbWF6b25jb2duaXRvLmNvbSIsImF1dGguYXAtc291dGhlYXN0LTEuYW1hem9uY29nbml0by5jb20iLCJhdXRo'@; put 'LmFwLXNvdXRoZWFzdC0yLmFtYXpvbmNvZ25pdG8uY29tIiwiYXV0aC5hcC1zb3V0aGVhc3QtMy5hbWF6b25jb2duaXRvLmNvbSIsImF1dGguYXAtc291dGhlYXN0LTQuYW1hem9uY29nbml0by5jb20iLCJhdXRoLmNhLWNlbnRyYWwtMS5hbWF6b25jb2duaXRvLmNvbSIsImF1dGguY2Etd2Vz'@; put 'dC0xLmFtYXpvbmNvZ25pdG8uY29tIiwiYXV0aC5ldS1jZW50cmFsLTEuYW1hem9uY29nbml0by5jb20iLCJhdXRoLmV1LWNlbnRyYWwtMi5hbWF6b25jb2duaXRvLmNvbSIsImF1dGguZXUtbm9ydGgtMS5hbWF6b25jb2duaXRvLmNvbSIsImF1dGguZXUtc291dGgtMS5hbWF6b25jb2duaXRv'@; put 'LmNvbSIsImF1dGguZXUtc291dGgtMi5hbWF6b25jb2duaXRvLmNvbSIsImF1dGguZXUtd2VzdC0xLmFtYXpvbmNvZ25pdG8uY29tIiwiYXV0aC5ldS13ZXN0LTIuYW1hem9uY29nbml0by5jb20iLCJhdXRoLmV1LXdlc3QtMy5hbWF6b25jb2duaXRvLmNvbSIsImF1dGguaWwtY2VudHJhbC0x'@; put 'LmFtYXpvbmNvZ25pdG8uY29tIiwiYXV0aC5tZS1jZW50cmFsLTEuYW1hem9uY29nbml0by5jb20iLCJhdXRoLm1lLXNvdXRoLTEuYW1hem9uY29nbml0by5jb20iLCJhdXRoLnNhLWVhc3QtMS5hbWF6b25jb2duaXRvLmNvbSIsImF1dGgudXMtZWFzdC0xLmFtYXpvbmNvZ25pdG8uY29tIiwi'@; put 'YXV0aC1maXBzLnVzLWVhc3QtMS5hbWF6b25jb2duaXRvLmNvbSIsImF1dGgudXMtZWFzdC0yLmFtYXpvbmNvZ25pdG8uY29tIiwiYXV0aC1maXBzLnVzLWVhc3QtMi5hbWF6b25jb2duaXRvLmNvbSIsImF1dGgtZmlwcy51cy1nb3Ytd2VzdC0xLmFtYXpvbmNvZ25pdG8uY29tIiwiYXV0aC51'@; put 'cy13ZXN0LTEuYW1hem9uY29nbml0by5jb20iLCJhdXRoLWZpcHMudXMtd2VzdC0xLmFtYXpvbmNvZ25pdG8uY29tIiwiYXV0aC51cy13ZXN0LTIuYW1hem9uY29nbml0by5jb20iLCJhdXRoLWZpcHMudXMtd2VzdC0yLmFtYXpvbmNvZ25pdG8uY29tIiwiKi5jb21wdXRlLmFtYXpvbmF3cy5j'@; put 'b20uY24iLCIqLmNvbXB1dGUuYW1hem9uYXdzLmNvbSIsIiouY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20iLCJ1cy1lYXN0LTEuYW1hem9uYXdzLmNvbSIsImVtcmFwcHVpLXByb2QuY24tbm9ydGgtMS5hbWF6b25hd3MuY29tLmNuIiwiZW1ybm90ZWJvb2tzLXByb2QuY24tbm9ydGgtMS5hbWF6'@; put 'b25hd3MuY29tLmNuIiwiZW1yc3R1ZGlvLXByb2QuY24tbm9ydGgtMS5hbWF6b25hd3MuY29tLmNuIiwiZW1yYXBwdWktcHJvZC5jbi1ub3J0aHdlc3QtMS5hbWF6b25hd3MuY29tLmNuIiwiZW1ybm90ZWJvb2tzLXByb2QuY24tbm9ydGh3ZXN0LTEuYW1hem9uYXdzLmNvbS5jbiIsImVtcnN0'@; put 'dWRpby1wcm9kLmNuLW5vcnRod2VzdC0xLmFtYXpvbmF3cy5jb20uY24iLCJlbXJhcHB1aS1wcm9kLmFmLXNvdXRoLTEuYW1hem9uYXdzLmNvbSIsImVtcm5vdGVib29rcy1wcm9kLmFmLXNvdXRoLTEuYW1hem9uYXdzLmNvbSIsImVtcnN0dWRpby1wcm9kLmFmLXNvdXRoLTEuYW1hem9uYXdz'@; put 'LmNvbSIsImVtcmFwcHVpLXByb2QuYXAtZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJlbXJub3RlYm9va3MtcHJvZC5hcC1lYXN0LTEuYW1hem9uYXdzLmNvbSIsImVtcnN0dWRpby1wcm9kLmFwLWVhc3QtMS5hbWF6b25hd3MuY29tIiwiZW1yYXBwdWktcHJvZC5hcC1ub3J0aGVhc3QtMS5hbWF6'@; put 'b25hd3MuY29tIiwiZW1ybm90ZWJvb2tzLXByb2QuYXAtbm9ydGhlYXN0LTEuYW1hem9uYXdzLmNvbSIsImVtcnN0dWRpby1wcm9kLmFwLW5vcnRoZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJlbXJhcHB1aS1wcm9kLmFwLW5vcnRoZWFzdC0yLmFtYXpvbmF3cy5jb20iLCJlbXJub3RlYm9va3Mt'@; put 'cHJvZC5hcC1ub3J0aGVhc3QtMi5hbWF6b25hd3MuY29tIiwiZW1yc3R1ZGlvLXByb2QuYXAtbm9ydGhlYXN0LTIuYW1hem9uYXdzLmNvbSIsImVtcmFwcHVpLXByb2QuYXAtbm9ydGhlYXN0LTMuYW1hem9uYXdzLmNvbSIsImVtcm5vdGVib29rcy1wcm9kLmFwLW5vcnRoZWFzdC0zLmFtYXpv'@; put 'bmF3cy5jb20iLCJlbXJzdHVkaW8tcHJvZC5hcC1ub3J0aGVhc3QtMy5hbWF6b25hd3MuY29tIiwiZW1yYXBwdWktcHJvZC5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20iLCJlbXJub3RlYm9va3MtcHJvZC5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20iLCJlbXJzdHVkaW8tcHJvZC5hcC1zb3V0'@; put 'aC0xLmFtYXpvbmF3cy5jb20iLCJlbXJhcHB1aS1wcm9kLmFwLXNvdXRoLTIuYW1hem9uYXdzLmNvbSIsImVtcm5vdGVib29rcy1wcm9kLmFwLXNvdXRoLTIuYW1hem9uYXdzLmNvbSIsImVtcnN0dWRpby1wcm9kLmFwLXNvdXRoLTIuYW1hem9uYXdzLmNvbSIsImVtcmFwcHVpLXByb2QuYXAt'@; put 'c291dGhlYXN0LTEuYW1hem9uYXdzLmNvbSIsImVtcm5vdGVib29rcy1wcm9kLmFwLXNvdXRoZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJlbXJzdHVkaW8tcHJvZC5hcC1zb3V0aGVhc3QtMS5hbWF6b25hd3MuY29tIiwiZW1yYXBwdWktcHJvZC5hcC1zb3V0aGVhc3QtMi5hbWF6b25hd3MuY29t'@; put 'IiwiZW1ybm90ZWJvb2tzLXByb2QuYXAtc291dGhlYXN0LTIuYW1hem9uYXdzLmNvbSIsImVtcnN0dWRpby1wcm9kLmFwLXNvdXRoZWFzdC0yLmFtYXpvbmF3cy5jb20iLCJlbXJhcHB1aS1wcm9kLmFwLXNvdXRoZWFzdC0zLmFtYXpvbmF3cy5jb20iLCJlbXJub3RlYm9va3MtcHJvZC5hcC1z'@; put 'b3V0aGVhc3QtMy5hbWF6b25hd3MuY29tIiwiZW1yc3R1ZGlvLXByb2QuYXAtc291dGhlYXN0LTMuYW1hem9uYXdzLmNvbSIsImVtcmFwcHVpLXByb2QuYXAtc291dGhlYXN0LTQuYW1hem9uYXdzLmNvbSIsImVtcm5vdGVib29rcy1wcm9kLmFwLXNvdXRoZWFzdC00LmFtYXpvbmF3cy5jb20i'@; put 'LCJlbXJzdHVkaW8tcHJvZC5hcC1zb3V0aGVhc3QtNC5hbWF6b25hd3MuY29tIiwiZW1yYXBwdWktcHJvZC5jYS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsImVtcm5vdGVib29rcy1wcm9kLmNhLWNlbnRyYWwtMS5hbWF6b25hd3MuY29tIiwiZW1yc3R1ZGlvLXByb2QuY2EtY2VudHJhbC0x'@; put 'LmFtYXpvbmF3cy5jb20iLCJlbXJhcHB1aS1wcm9kLmNhLXdlc3QtMS5hbWF6b25hd3MuY29tIiwiZW1ybm90ZWJvb2tzLXByb2QuY2Etd2VzdC0xLmFtYXpvbmF3cy5jb20iLCJlbXJzdHVkaW8tcHJvZC5jYS13ZXN0LTEuYW1hem9uYXdzLmNvbSIsImVtcmFwcHVpLXByb2QuZXUtY2VudHJh'@; put 'bC0xLmFtYXpvbmF3cy5jb20iLCJlbXJub3RlYm9va3MtcHJvZC5ldS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsImVtcnN0dWRpby1wcm9kLmV1LWNlbnRyYWwtMS5hbWF6b25hd3MuY29tIiwiZW1yYXBwdWktcHJvZC5ldS1jZW50cmFsLTIuYW1hem9uYXdzLmNvbSIsImVtcm5vdGVib29r'@; put 'cy1wcm9kLmV1LWNlbnRyYWwtMi5hbWF6b25hd3MuY29tIiwiZW1yc3R1ZGlvLXByb2QuZXUtY2VudHJhbC0yLmFtYXpvbmF3cy5jb20iLCJlbXJhcHB1aS1wcm9kLmV1LW5vcnRoLTEuYW1hem9uYXdzLmNvbSIsImVtcm5vdGVib29rcy1wcm9kLmV1LW5vcnRoLTEuYW1hem9uYXdzLmNvbSIs'@; put 'ImVtcnN0dWRpby1wcm9kLmV1LW5vcnRoLTEuYW1hem9uYXdzLmNvbSIsImVtcmFwcHVpLXByb2QuZXUtc291dGgtMS5hbWF6b25hd3MuY29tIiwiZW1ybm90ZWJvb2tzLXByb2QuZXUtc291dGgtMS5hbWF6b25hd3MuY29tIiwiZW1yc3R1ZGlvLXByb2QuZXUtc291dGgtMS5hbWF6b25hd3Mu'@; put 'Y29tIiwiZW1yYXBwdWktcHJvZC5ldS1zb3V0aC0yLmFtYXpvbmF3cy5jb20iLCJlbXJub3RlYm9va3MtcHJvZC5ldS1zb3V0aC0yLmFtYXpvbmF3cy5jb20iLCJlbXJzdHVkaW8tcHJvZC5ldS1zb3V0aC0yLmFtYXpvbmF3cy5jb20iLCJlbXJhcHB1aS1wcm9kLmV1LXdlc3QtMS5hbWF6b25h'@; put 'd3MuY29tIiwiZW1ybm90ZWJvb2tzLXByb2QuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20iLCJlbXJzdHVkaW8tcHJvZC5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbSIsImVtcmFwcHVpLXByb2QuZXUtd2VzdC0yLmFtYXpvbmF3cy5jb20iLCJlbXJub3RlYm9va3MtcHJvZC5ldS13ZXN0LTIuYW1h'@; put 'em9uYXdzLmNvbSIsImVtcnN0dWRpby1wcm9kLmV1LXdlc3QtMi5hbWF6b25hd3MuY29tIiwiZW1yYXBwdWktcHJvZC5ldS13ZXN0LTMuYW1hem9uYXdzLmNvbSIsImVtcm5vdGVib29rcy1wcm9kLmV1LXdlc3QtMy5hbWF6b25hd3MuY29tIiwiZW1yc3R1ZGlvLXByb2QuZXUtd2VzdC0zLmFt'@; put 'YXpvbmF3cy5jb20iLCJlbXJhcHB1aS1wcm9kLmlsLWNlbnRyYWwtMS5hbWF6b25hd3MuY29tIiwiZW1ybm90ZWJvb2tzLXByb2QuaWwtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJlbXJzdHVkaW8tcHJvZC5pbC1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsImVtcmFwcHVpLXByb2QubWUt'@; put 'Y2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJlbXJub3RlYm9va3MtcHJvZC5tZS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsImVtcnN0dWRpby1wcm9kLm1lLWNlbnRyYWwtMS5hbWF6b25hd3MuY29tIiwiZW1yYXBwdWktcHJvZC5tZS1zb3V0aC0xLmFtYXpvbmF3cy5jb20iLCJlbXJub3Rl'@; put 'Ym9va3MtcHJvZC5tZS1zb3V0aC0xLmFtYXpvbmF3cy5jb20iLCJlbXJzdHVkaW8tcHJvZC5tZS1zb3V0aC0xLmFtYXpvbmF3cy5jb20iLCJlbXJhcHB1aS1wcm9kLnNhLWVhc3QtMS5hbWF6b25hd3MuY29tIiwiZW1ybm90ZWJvb2tzLXByb2Quc2EtZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJl'@; put 'bXJzdHVkaW8tcHJvZC5zYS1lYXN0LTEuYW1hem9uYXdzLmNvbSIsImVtcmFwcHVpLXByb2QudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJlbXJub3RlYm9va3MtcHJvZC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbSIsImVtcnN0dWRpby1wcm9kLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tIiwi'@; put 'ZW1yYXBwdWktcHJvZC51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSIsImVtcm5vdGVib29rcy1wcm9kLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tIiwiZW1yc3R1ZGlvLXByb2QudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20iLCJlbXJhcHB1aS1wcm9kLnVzLWdvdi1lYXN0LTEuYW1hem9uYXdzLmNv'@; put 'bSIsImVtcm5vdGVib29rcy1wcm9kLnVzLWdvdi1lYXN0LTEuYW1hem9uYXdzLmNvbSIsImVtcnN0dWRpby1wcm9kLnVzLWdvdi1lYXN0LTEuYW1hem9uYXdzLmNvbSIsImVtcmFwcHVpLXByb2QudXMtZ292LXdlc3QtMS5hbWF6b25hd3MuY29tIiwiZW1ybm90ZWJvb2tzLXByb2QudXMtZ292'@; put 'LXdlc3QtMS5hbWF6b25hd3MuY29tIiwiZW1yc3R1ZGlvLXByb2QudXMtZ292LXdlc3QtMS5hbWF6b25hd3MuY29tIiwiZW1yYXBwdWktcHJvZC51cy13ZXN0LTEuYW1hem9uYXdzLmNvbSIsImVtcm5vdGVib29rcy1wcm9kLnVzLXdlc3QtMS5hbWF6b25hd3MuY29tIiwiZW1yc3R1ZGlvLXBy'@; put 'b2QudXMtd2VzdC0xLmFtYXpvbmF3cy5jb20iLCJlbXJhcHB1aS1wcm9kLnVzLXdlc3QtMi5hbWF6b25hd3MuY29tIiwiZW1ybm90ZWJvb2tzLXByb2QudXMtd2VzdC0yLmFtYXpvbmF3cy5jb20iLCJlbXJzdHVkaW8tcHJvZC51cy13ZXN0LTIuYW1hem9uYXdzLmNvbSIsIiouY24tbm9ydGgt'@; put 'MS5haXJmbG93LmFtYXpvbmF3cy5jb20uY24iLCIqLmNuLW5vcnRod2VzdC0xLmFpcmZsb3cuYW1hem9uYXdzLmNvbS5jbiIsIiouYWYtc291dGgtMS5haXJmbG93LmFtYXpvbmF3cy5jb20iLCIqLmFwLWVhc3QtMS5haXJmbG93LmFtYXpvbmF3cy5jb20iLCIqLmFwLW5vcnRoZWFzdC0xLmFp'@; put 'cmZsb3cuYW1hem9uYXdzLmNvbSIsIiouYXAtbm9ydGhlYXN0LTIuYWlyZmxvdy5hbWF6b25hd3MuY29tIiwiKi5hcC1ub3J0aGVhc3QtMy5haXJmbG93LmFtYXpvbmF3cy5jb20iLCIqLmFwLXNvdXRoLTEuYWlyZmxvdy5hbWF6b25hd3MuY29tIiwiKi5hcC1zb3V0aC0yLmFpcmZsb3cuYW1h'@; put 'em9uYXdzLmNvbSIsIiouYXAtc291dGhlYXN0LTEuYWlyZmxvdy5hbWF6b25hd3MuY29tIiwiKi5hcC1zb3V0aGVhc3QtMi5haXJmbG93LmFtYXpvbmF3cy5jb20iLCIqLmFwLXNvdXRoZWFzdC0zLmFpcmZsb3cuYW1hem9uYXdzLmNvbSIsIiouYXAtc291dGhlYXN0LTQuYWlyZmxvdy5hbWF6'@; put 'b25hd3MuY29tIiwiKi5jYS1jZW50cmFsLTEuYWlyZmxvdy5hbWF6b25hd3MuY29tIiwiKi5jYS13ZXN0LTEuYWlyZmxvdy5hbWF6b25hd3MuY29tIiwiKi5ldS1jZW50cmFsLTEuYWlyZmxvdy5hbWF6b25hd3MuY29tIiwiKi5ldS1jZW50cmFsLTIuYWlyZmxvdy5hbWF6b25hd3MuY29tIiwi'@; put 'Ki5ldS1ub3J0aC0xLmFpcmZsb3cuYW1hem9uYXdzLmNvbSIsIiouZXUtc291dGgtMS5haXJmbG93LmFtYXpvbmF3cy5jb20iLCIqLmV1LXNvdXRoLTIuYWlyZmxvdy5hbWF6b25hd3MuY29tIiwiKi5ldS13ZXN0LTEuYWlyZmxvdy5hbWF6b25hd3MuY29tIiwiKi5ldS13ZXN0LTIuYWlyZmxv'@; put 'dy5hbWF6b25hd3MuY29tIiwiKi5ldS13ZXN0LTMuYWlyZmxvdy5hbWF6b25hd3MuY29tIiwiKi5pbC1jZW50cmFsLTEuYWlyZmxvdy5hbWF6b25hd3MuY29tIiwiKi5tZS1jZW50cmFsLTEuYWlyZmxvdy5hbWF6b25hd3MuY29tIiwiKi5tZS1zb3V0aC0xLmFpcmZsb3cuYW1hem9uYXdzLmNv'@; put 'bSIsIiouc2EtZWFzdC0xLmFpcmZsb3cuYW1hem9uYXdzLmNvbSIsIioudXMtZWFzdC0xLmFpcmZsb3cuYW1hem9uYXdzLmNvbSIsIioudXMtZWFzdC0yLmFpcmZsb3cuYW1hem9uYXdzLmNvbSIsIioudXMtd2VzdC0xLmFpcmZsb3cuYW1hem9uYXdzLmNvbSIsIioudXMtd2VzdC0yLmFpcmZs'@; put 'b3cuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5jbi1ub3J0aC0xLmFtYXpvbmF3cy5jb20uY24iLCJzMy1hY2Nlc3Nwb2ludC5kdWFsc3RhY2suY24tbm9ydGgtMS5hbWF6b25hd3MuY29tLmNuIiwiczMtd2Vic2l0ZS5kdWFsc3RhY2suY24tbm9ydGgtMS5hbWF6b25hd3MuY29tLmNu'@; put 'IiwiczMuY24tbm9ydGgtMS5hbWF6b25hd3MuY29tLmNuIiwiczMtYWNjZXNzcG9pbnQuY24tbm9ydGgtMS5hbWF6b25hd3MuY29tLmNuIiwiczMtZGVwcmVjYXRlZC5jbi1ub3J0aC0xLmFtYXpvbmF3cy5jb20uY24iLCJzMy1vYmplY3QtbGFtYmRhLmNuLW5vcnRoLTEuYW1hem9uYXdzLmNv'@; put 'bS5jbiIsInMzLXdlYnNpdGUuY24tbm9ydGgtMS5hbWF6b25hd3MuY29tLmNuIiwiczMuZHVhbHN0YWNrLmNuLW5vcnRod2VzdC0xLmFtYXpvbmF3cy5jb20uY24iLCJzMy1hY2Nlc3Nwb2ludC5kdWFsc3RhY2suY24tbm9ydGh3ZXN0LTEuYW1hem9uYXdzLmNvbS5jbiIsInMzLmNuLW5vcnRo'@; put 'd2VzdC0xLmFtYXpvbmF3cy5jb20uY24iLCJzMy1hY2Nlc3Nwb2ludC5jbi1ub3J0aHdlc3QtMS5hbWF6b25hd3MuY29tLmNuIiwiczMtb2JqZWN0LWxhbWJkYS5jbi1ub3J0aHdlc3QtMS5hbWF6b25hd3MuY29tLmNuIiwiczMtd2Vic2l0ZS5jbi1ub3J0aHdlc3QtMS5hbWF6b25hd3MuY29t'@; put 'LmNuIiwiczMuZHVhbHN0YWNrLmFmLXNvdXRoLTEuYW1hem9uYXdzLmNvbSIsInMzLWFjY2Vzc3BvaW50LmR1YWxzdGFjay5hZi1zb3V0aC0xLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLmR1YWxzdGFjay5hZi1zb3V0aC0xLmFtYXpvbmF3cy5jb20iLCJzMy5hZi1zb3V0aC0xLmFtYXpv'@; put 'bmF3cy5jb20iLCJzMy1hY2Nlc3Nwb2ludC5hZi1zb3V0aC0xLmFtYXpvbmF3cy5jb20iLCJzMy1vYmplY3QtbGFtYmRhLmFmLXNvdXRoLTEuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUuYWYtc291dGgtMS5hbWF6b25hd3MuY29tIiwiczMuZHVhbHN0YWNrLmFwLWVhc3QtMS5hbWF6b25h'@; put 'd3MuY29tIiwiczMtYWNjZXNzcG9pbnQuZHVhbHN0YWNrLmFwLWVhc3QtMS5hbWF6b25hd3MuY29tIiwiczMuYXAtZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy1hY2Nlc3Nwb2ludC5hcC1lYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLW9iamVjdC1sYW1iZGEuYXAtZWFzdC0xLmFtYXpvbmF3'@; put 'cy5jb20iLCJzMy13ZWJzaXRlLmFwLWVhc3QtMS5hbWF6b25hd3MuY29tIiwiczMuZHVhbHN0YWNrLmFwLW5vcnRoZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy1hY2Nlc3Nwb2ludC5kdWFsc3RhY2suYXAtbm9ydGhlYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUuZHVhbHN0YWNr'@; put 'LmFwLW5vcnRoZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy5hcC1ub3J0aGVhc3QtMS5hbWF6b25hd3MuY29tIiwiczMtYWNjZXNzcG9pbnQuYXAtbm9ydGhlYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLW9iamVjdC1sYW1iZGEuYXAtbm9ydGhlYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLXdl'@; put 'YnNpdGUuYXAtbm9ydGhlYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5hcC1ub3J0aGVhc3QtMi5hbWF6b25hd3MuY29tIiwiczMtYWNjZXNzcG9pbnQuZHVhbHN0YWNrLmFwLW5vcnRoZWFzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLmR1YWxzdGFjay5hcC1ub3J0'@; put 'aGVhc3QtMi5hbWF6b25hd3MuY29tIiwiczMuYXAtbm9ydGhlYXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLWFjY2Vzc3BvaW50LmFwLW5vcnRoZWFzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy1vYmplY3QtbGFtYmRhLmFwLW5vcnRoZWFzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLmFw'@; put 'LW5vcnRoZWFzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy5kdWFsc3RhY2suYXAtbm9ydGhlYXN0LTMuYW1hem9uYXdzLmNvbSIsInMzLWFjY2Vzc3BvaW50LmR1YWxzdGFjay5hcC1ub3J0aGVhc3QtMy5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS5kdWFsc3RhY2suYXAtbm9ydGhlYXN0LTMu'@; put 'YW1hem9uYXdzLmNvbSIsInMzLmFwLW5vcnRoZWFzdC0zLmFtYXpvbmF3cy5jb20iLCJzMy1hY2Nlc3Nwb2ludC5hcC1ub3J0aGVhc3QtMy5hbWF6b25hd3MuY29tIiwiczMtb2JqZWN0LWxhbWJkYS5hcC1ub3J0aGVhc3QtMy5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS5hcC1ub3J0aGVh'@; put 'c3QtMy5hbWF6b25hd3MuY29tIiwiczMuZHVhbHN0YWNrLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbSIsInMzLWFjY2Vzc3BvaW50LmR1YWxzdGFjay5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLmR1YWxzdGFjay5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20iLCJzMy5h'@; put 'cC1zb3V0aC0xLmFtYXpvbmF3cy5jb20iLCJzMy1hY2Nlc3Nwb2ludC5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20iLCJzMy1vYmplY3QtbGFtYmRhLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUuYXAtc291dGgtMS5hbWF6b25hd3MuY29tIiwiczMuZHVhbHN0YWNrLmFw'@; put 'LXNvdXRoLTIuYW1hem9uYXdzLmNvbSIsInMzLWFjY2Vzc3BvaW50LmR1YWxzdGFjay5hcC1zb3V0aC0yLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLmR1YWxzdGFjay5hcC1zb3V0aC0yLmFtYXpvbmF3cy5jb20iLCJzMy5hcC1zb3V0aC0yLmFtYXpvbmF3cy5jb20iLCJzMy1hY2Nlc3Nw'@; put 'b2ludC5hcC1zb3V0aC0yLmFtYXpvbmF3cy5jb20iLCJzMy1vYmplY3QtbGFtYmRhLmFwLXNvdXRoLTIuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUuYXAtc291dGgtMi5hbWF6b25hd3MuY29tIiwiczMuZHVhbHN0YWNrLmFwLXNvdXRoZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy1hY2Nl'@; put 'c3Nwb2ludC5kdWFsc3RhY2suYXAtc291dGhlYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUuZHVhbHN0YWNrLmFwLXNvdXRoZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy5hcC1zb3V0aGVhc3QtMS5hbWF6b25hd3MuY29tIiwiczMtYWNjZXNzcG9pbnQuYXAtc291dGhlYXN0LTEu'@; put 'YW1hem9uYXdzLmNvbSIsInMzLW9iamVjdC1sYW1iZGEuYXAtc291dGhlYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUuYXAtc291dGhlYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5hcC1zb3V0aGVhc3QtMi5hbWF6b25hd3MuY29tIiwiczMtYWNjZXNzcG9pbnQu'@; put 'ZHVhbHN0YWNrLmFwLXNvdXRoZWFzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLmR1YWxzdGFjay5hcC1zb3V0aGVhc3QtMi5hbWF6b25hd3MuY29tIiwiczMuYXAtc291dGhlYXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLWFjY2Vzc3BvaW50LmFwLXNvdXRoZWFzdC0yLmFtYXpvbmF3'@; put 'cy5jb20iLCJzMy1vYmplY3QtbGFtYmRhLmFwLXNvdXRoZWFzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLmFwLXNvdXRoZWFzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy5kdWFsc3RhY2suYXAtc291dGhlYXN0LTMuYW1hem9uYXdzLmNvbSIsInMzLWFjY2Vzc3BvaW50LmR1YWxzdGFj'@; put 'ay5hcC1zb3V0aGVhc3QtMy5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS5kdWFsc3RhY2suYXAtc291dGhlYXN0LTMuYW1hem9uYXdzLmNvbSIsInMzLmFwLXNvdXRoZWFzdC0zLmFtYXpvbmF3cy5jb20iLCJzMy1hY2Nlc3Nwb2ludC5hcC1zb3V0aGVhc3QtMy5hbWF6b25hd3MuY29tIiwi'@; put 'czMtb2JqZWN0LWxhbWJkYS5hcC1zb3V0aGVhc3QtMy5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS5hcC1zb3V0aGVhc3QtMy5hbWF6b25hd3MuY29tIiwiczMuZHVhbHN0YWNrLmFwLXNvdXRoZWFzdC00LmFtYXpvbmF3cy5jb20iLCJzMy1hY2Nlc3Nwb2ludC5kdWFsc3RhY2suYXAtc291'@; put 'dGhlYXN0LTQuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUuZHVhbHN0YWNrLmFwLXNvdXRoZWFzdC00LmFtYXpvbmF3cy5jb20iLCJzMy5hcC1zb3V0aGVhc3QtNC5hbWF6b25hd3MuY29tIiwiczMtYWNjZXNzcG9pbnQuYXAtc291dGhlYXN0LTQuYW1hem9uYXdzLmNvbSIsInMzLW9iamVj'@; put 'dC1sYW1iZGEuYXAtc291dGhlYXN0LTQuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUuYXAtc291dGhlYXN0LTQuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5hcC1zb3V0aGVhc3QtNS5hbWF6b25hd3MuY29tIiwiczMtYWNjZXNzcG9pbnQuZHVhbHN0YWNrLmFwLXNvdXRoZWFzdC01'@; put 'LmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLmR1YWxzdGFjay5hcC1zb3V0aGVhc3QtNS5hbWF6b25hd3MuY29tIiwiczMuYXAtc291dGhlYXN0LTUuYW1hem9uYXdzLmNvbSIsInMzLWFjY2Vzc3BvaW50LmFwLXNvdXRoZWFzdC01LmFtYXpvbmF3cy5jb20iLCJzMy1kZXByZWNhdGVkLmFw'@; put 'LXNvdXRoZWFzdC01LmFtYXpvbmF3cy5jb20iLCJzMy1vYmplY3QtbGFtYmRhLmFwLXNvdXRoZWFzdC01LmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLmFwLXNvdXRoZWFzdC01LmFtYXpvbmF3cy5jb20iLCJzMy5kdWFsc3RhY2suY2EtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJzMy1h'@; put 'Y2Nlc3Nwb2ludC5kdWFsc3RhY2suY2EtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJzMy1hY2Nlc3Nwb2ludC1maXBzLmR1YWxzdGFjay5jYS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsInMzLWZpcHMuZHVhbHN0YWNrLmNhLWNlbnRyYWwtMS5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0'@; put 'ZS5kdWFsc3RhY2suY2EtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJzMy5jYS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsInMzLWFjY2Vzc3BvaW50LmNhLWNlbnRyYWwtMS5hbWF6b25hd3MuY29tIiwiczMtYWNjZXNzcG9pbnQtZmlwcy5jYS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIs'@; put 'InMzLWZpcHMuY2EtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJzMy1vYmplY3QtbGFtYmRhLmNhLWNlbnRyYWwtMS5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS5jYS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5jYS13ZXN0LTEuYW1hem9uYXdzLmNvbSIsInMz'@; put 'LWFjY2Vzc3BvaW50LmR1YWxzdGFjay5jYS13ZXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLWFjY2Vzc3BvaW50LWZpcHMuZHVhbHN0YWNrLmNhLXdlc3QtMS5hbWF6b25hd3MuY29tIiwiczMtZmlwcy5kdWFsc3RhY2suY2Etd2VzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLmR1YWxz'@; put 'dGFjay5jYS13ZXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLmNhLXdlc3QtMS5hbWF6b25hd3MuY29tIiwiczMtYWNjZXNzcG9pbnQuY2Etd2VzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy1hY2Nlc3Nwb2ludC1maXBzLmNhLXdlc3QtMS5hbWF6b25hd3MuY29tIiwiczMtZmlwcy5jYS13ZXN0LTEu'@; put 'YW1hem9uYXdzLmNvbSIsInMzLW9iamVjdC1sYW1iZGEuY2Etd2VzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLmNhLXdlc3QtMS5hbWF6b25hd3MuY29tIiwiczMuZHVhbHN0YWNrLmV1LWNlbnRyYWwtMS5hbWF6b25hd3MuY29tIiwiczMtYWNjZXNzcG9pbnQuZHVhbHN0YWNrLmV1'@; put 'LWNlbnRyYWwtMS5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS5kdWFsc3RhY2suZXUtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJzMy5ldS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsInMzLWFjY2Vzc3BvaW50LmV1LWNlbnRyYWwtMS5hbWF6b25hd3MuY29tIiwiczMtb2JqZWN0LWxh'@; put 'bWJkYS5ldS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUuZXUtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJzMy5kdWFsc3RhY2suZXUtY2VudHJhbC0yLmFtYXpvbmF3cy5jb20iLCJzMy1hY2Nlc3Nwb2ludC5kdWFsc3RhY2suZXUtY2VudHJhbC0yLmFtYXpvbmF3cy5j'@; put 'b20iLCJzMy13ZWJzaXRlLmR1YWxzdGFjay5ldS1jZW50cmFsLTIuYW1hem9uYXdzLmNvbSIsInMzLmV1LWNlbnRyYWwtMi5hbWF6b25hd3MuY29tIiwiczMtYWNjZXNzcG9pbnQuZXUtY2VudHJhbC0yLmFtYXpvbmF3cy5jb20iLCJzMy1vYmplY3QtbGFtYmRhLmV1LWNlbnRyYWwtMi5hbWF6'@; put 'b25hd3MuY29tIiwiczMtd2Vic2l0ZS5ldS1jZW50cmFsLTIuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5ldS1ub3J0aC0xLmFtYXpvbmF3cy5jb20iLCJzMy1hY2Nlc3Nwb2ludC5kdWFsc3RhY2suZXUtbm9ydGgtMS5hbWF6b25hd3MuY29tIiwiczMuZXUtbm9ydGgtMS5hbWF6b25h'@; put 'd3MuY29tIiwiczMtYWNjZXNzcG9pbnQuZXUtbm9ydGgtMS5hbWF6b25hd3MuY29tIiwiczMtb2JqZWN0LWxhbWJkYS5ldS1ub3J0aC0xLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLmV1LW5vcnRoLTEuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5ldS1zb3V0aC0xLmFtYXpvbmF3'@; put 'cy5jb20iLCJzMy1hY2Nlc3Nwb2ludC5kdWFsc3RhY2suZXUtc291dGgtMS5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS5kdWFsc3RhY2suZXUtc291dGgtMS5hbWF6b25hd3MuY29tIiwiczMuZXUtc291dGgtMS5hbWF6b25hd3MuY29tIiwiczMtYWNjZXNzcG9pbnQuZXUtc291dGgtMS5h'@; put 'bWF6b25hd3MuY29tIiwiczMtb2JqZWN0LWxhbWJkYS5ldS1zb3V0aC0xLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLmV1LXNvdXRoLTEuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5ldS1zb3V0aC0yLmFtYXpvbmF3cy5jb20iLCJzMy1hY2Nlc3Nwb2ludC5kdWFsc3RhY2suZXUt'@; put 'c291dGgtMi5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS5kdWFsc3RhY2suZXUtc291dGgtMi5hbWF6b25hd3MuY29tIiwiczMuZXUtc291dGgtMi5hbWF6b25hd3MuY29tIiwiczMtYWNjZXNzcG9pbnQuZXUtc291dGgtMi5hbWF6b25hd3MuY29tIiwiczMtb2JqZWN0LWxhbWJkYS5ldS1z'@; put 'b3V0aC0yLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLmV1LXNvdXRoLTIuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLWFjY2Vzc3BvaW50LmR1YWxzdGFjay5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUuZHVh'@; put 'bHN0YWNrLmV1LXdlc3QtMS5hbWF6b25hd3MuY29tIiwiczMuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy1hY2Nlc3Nwb2ludC5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLWRlcHJlY2F0ZWQuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy1vYmplY3QtbGFtYmRhLmV1LXdl'@; put 'c3QtMS5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5ldS13ZXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLWFjY2Vzc3BvaW50LmR1YWxzdGFjay5ldS13ZXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLmV1LXdlc3QtMi5hbWF6'@; put 'b25hd3MuY29tIiwiczMtYWNjZXNzcG9pbnQuZXUtd2VzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy1vYmplY3QtbGFtYmRhLmV1LXdlc3QtMi5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS5ldS13ZXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5ldS13ZXN0LTMuYW1hem9uYXdz'@; put 'LmNvbSIsInMzLWFjY2Vzc3BvaW50LmR1YWxzdGFjay5ldS13ZXN0LTMuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUuZHVhbHN0YWNrLmV1LXdlc3QtMy5hbWF6b25hd3MuY29tIiwiczMuZXUtd2VzdC0zLmFtYXpvbmF3cy5jb20iLCJzMy1hY2Nlc3Nwb2ludC5ldS13ZXN0LTMuYW1hem9u'@; put 'YXdzLmNvbSIsInMzLW9iamVjdC1sYW1iZGEuZXUtd2VzdC0zLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLmV1LXdlc3QtMy5hbWF6b25hd3MuY29tIiwiczMuZHVhbHN0YWNrLmlsLWNlbnRyYWwtMS5hbWF6b25hd3MuY29tIiwiczMtYWNjZXNzcG9pbnQuZHVhbHN0YWNrLmlsLWNlbnRy'@; put 'YWwtMS5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS5kdWFsc3RhY2suaWwtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJzMy5pbC1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsInMzLWFjY2Vzc3BvaW50LmlsLWNlbnRyYWwtMS5hbWF6b25hd3MuY29tIiwiczMtb2JqZWN0LWxhbWJkYS5p'@; put 'bC1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUuaWwtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJzMy5kdWFsc3RhY2subWUtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJzMy1hY2Nlc3Nwb2ludC5kdWFsc3RhY2subWUtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJz'@; put 'My13ZWJzaXRlLmR1YWxzdGFjay5tZS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsInMzLm1lLWNlbnRyYWwtMS5hbWF6b25hd3MuY29tIiwiczMtYWNjZXNzcG9pbnQubWUtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJzMy1vYmplY3QtbGFtYmRhLm1lLWNlbnRyYWwtMS5hbWF6b25hd3Mu'@; put 'Y29tIiwiczMtd2Vic2l0ZS5tZS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5tZS1zb3V0aC0xLmFtYXpvbmF3cy5jb20iLCJzMy1hY2Nlc3Nwb2ludC5kdWFsc3RhY2subWUtc291dGgtMS5hbWF6b25hd3MuY29tIiwiczMubWUtc291dGgtMS5hbWF6b25hd3MuY29t'@; put 'IiwiczMtYWNjZXNzcG9pbnQubWUtc291dGgtMS5hbWF6b25hd3MuY29tIiwiczMtb2JqZWN0LWxhbWJkYS5tZS1zb3V0aC0xLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLm1lLXNvdXRoLTEuYW1hem9uYXdzLmNvbSIsInMzLmFtYXpvbmF3cy5jb20iLCJzMy0xLmFtYXpvbmF3cy5jb20i'@; put 'LCJzMy1hcC1lYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLWFwLW5vcnRoZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy1hcC1ub3J0aGVhc3QtMi5hbWF6b25hd3MuY29tIiwiczMtYXAtbm9ydGhlYXN0LTMuYW1hem9uYXdzLmNvbSIsInMzLWFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbSIsInMz'@; put 'LWFwLXNvdXRoZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy1hcC1zb3V0aGVhc3QtMi5hbWF6b25hd3MuY29tIiwiczMtY2EtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJzMy1ldS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsInMzLWV1LW5vcnRoLTEuYW1hem9uYXdzLmNvbSIsInMzLWV1'@; put 'LXdlc3QtMS5hbWF6b25hd3MuY29tIiwiczMtZXUtd2VzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy1ldS13ZXN0LTMuYW1hem9uYXdzLmNvbSIsInMzLWV4dGVybmFsLTEuYW1hem9uYXdzLmNvbSIsInMzLWZpcHMtdXMtZ292LWVhc3QtMS5hbWF6b25hd3MuY29tIiwiczMtZmlwcy11cy1nb3Yt'@; put 'd2VzdC0xLmFtYXpvbmF3cy5jb20iLCJtcmFwLmFjY2Vzc3BvaW50LnMzLWdsb2JhbC5hbWF6b25hd3MuY29tIiwiczMtbWUtc291dGgtMS5hbWF6b25hd3MuY29tIiwiczMtc2EtZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy11cy1lYXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLXVzLWdvdi1l'@; put 'YXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLXVzLWdvdi13ZXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLXVzLXdlc3QtMS5hbWF6b25hd3MuY29tIiwiczMtdXMtd2VzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLWFwLW5vcnRoZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRl'@; put 'LWFwLXNvdXRoZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLWFwLXNvdXRoZWFzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLWV1LXdlc3QtMS5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS1zYS1lYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUtdXMtZWFz'@; put 'dC0xLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLXVzLWdvdi13ZXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUtdXMtd2VzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLXVzLXdlc3QtMi5hbWF6b25hd3MuY29tIiwiczMuZHVhbHN0YWNrLnNhLWVhc3QtMS5hbWF6b25h'@; put 'd3MuY29tIiwiczMtYWNjZXNzcG9pbnQuZHVhbHN0YWNrLnNhLWVhc3QtMS5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS5kdWFsc3RhY2suc2EtZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy5zYS1lYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLWFjY2Vzc3BvaW50LnNhLWVhc3QtMS5hbWF6'@; put 'b25hd3MuY29tIiwiczMtb2JqZWN0LWxhbWJkYS5zYS1lYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUuc2EtZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy5kdWFsc3RhY2sudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy1hY2Nlc3Nwb2ludC5kdWFsc3RhY2sudXMtZWFzdC0x'@; put 'LmFtYXpvbmF3cy5jb20iLCJzMy1hY2Nlc3Nwb2ludC1maXBzLmR1YWxzdGFjay51cy1lYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLWZpcHMuZHVhbHN0YWNrLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS5kdWFsc3RhY2sudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJz'@; put 'My51cy1lYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLWFjY2Vzc3BvaW50LnVzLWVhc3QtMS5hbWF6b25hd3MuY29tIiwiczMtYWNjZXNzcG9pbnQtZmlwcy51cy1lYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLWRlcHJlY2F0ZWQudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy1maXBzLnVz'@; put 'LWVhc3QtMS5hbWF6b25hd3MuY29tIiwiczMtb2JqZWN0LWxhbWJkYS51cy1lYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy5kdWFsc3RhY2sudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy1hY2Nlc3Nwb2ludC5kdWFsc3Rh'@; put 'Y2sudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy1hY2Nlc3Nwb2ludC1maXBzLmR1YWxzdGFjay51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLWZpcHMuZHVhbHN0YWNrLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS5kdWFsc3RhY2sudXMtZWFzdC0yLmFtYXpv'@; put 'bmF3cy5jb20iLCJzMy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLWFjY2Vzc3BvaW50LnVzLWVhc3QtMi5hbWF6b25hd3MuY29tIiwiczMtYWNjZXNzcG9pbnQtZmlwcy51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLWRlcHJlY2F0ZWQudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20i'@; put 'LCJzMy1maXBzLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tIiwiczMtb2JqZWN0LWxhbWJkYS51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy5kdWFsc3RhY2sudXMtZ292LWVhc3QtMS5hbWF6b25hd3MuY29tIiwiczMtYWNj'@; put 'ZXNzcG9pbnQuZHVhbHN0YWNrLnVzLWdvdi1lYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLWFjY2Vzc3BvaW50LWZpcHMuZHVhbHN0YWNrLnVzLWdvdi1lYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLWZpcHMuZHVhbHN0YWNrLnVzLWdvdi1lYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLnVzLWdv'@; put 'di1lYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLWFjY2Vzc3BvaW50LnVzLWdvdi1lYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLWFjY2Vzc3BvaW50LWZpcHMudXMtZ292LWVhc3QtMS5hbWF6b25hd3MuY29tIiwiczMtZmlwcy51cy1nb3YtZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy1vYmpl'@; put 'Y3QtbGFtYmRhLnVzLWdvdi1lYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUudXMtZ292LWVhc3QtMS5hbWF6b25hd3MuY29tIiwiczMuZHVhbHN0YWNrLnVzLWdvdi13ZXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLWFjY2Vzc3BvaW50LmR1YWxzdGFjay51cy1nb3Ytd2VzdC0xLmFt'@; put 'YXpvbmF3cy5jb20iLCJzMy1hY2Nlc3Nwb2ludC1maXBzLmR1YWxzdGFjay51cy1nb3Ytd2VzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy1maXBzLmR1YWxzdGFjay51cy1nb3Ytd2VzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy51cy1nb3Ytd2VzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy1hY2Nlc3Nw'@; put 'b2ludC51cy1nb3Ytd2VzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy1hY2Nlc3Nwb2ludC1maXBzLnVzLWdvdi13ZXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLWZpcHMudXMtZ292LXdlc3QtMS5hbWF6b25hd3MuY29tIiwiczMtb2JqZWN0LWxhbWJkYS51cy1nb3Ytd2VzdC0xLmFtYXpvbmF3cy5j'@; put 'b20iLCJzMy13ZWJzaXRlLnVzLWdvdi13ZXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay51cy13ZXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLWFjY2Vzc3BvaW50LmR1YWxzdGFjay51cy13ZXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLWFjY2Vzc3BvaW50LWZpcHMuZHVhbHN0YWNr'@; put 'LnVzLXdlc3QtMS5hbWF6b25hd3MuY29tIiwiczMtZmlwcy5kdWFsc3RhY2sudXMtd2VzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLmR1YWxzdGFjay51cy13ZXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLnVzLXdlc3QtMS5hbWF6b25hd3MuY29tIiwiczMtYWNjZXNzcG9pbnQudXMt'@; put 'd2VzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy1hY2Nlc3Nwb2ludC1maXBzLnVzLXdlc3QtMS5hbWF6b25hd3MuY29tIiwiczMtZmlwcy51cy13ZXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLW9iamVjdC1sYW1iZGEudXMtd2VzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLnVzLXdlc3Qt'@; put 'MS5hbWF6b25hd3MuY29tIiwiczMuZHVhbHN0YWNrLnVzLXdlc3QtMi5hbWF6b25hd3MuY29tIiwiczMtYWNjZXNzcG9pbnQuZHVhbHN0YWNrLnVzLXdlc3QtMi5hbWF6b25hd3MuY29tIiwiczMtYWNjZXNzcG9pbnQtZmlwcy5kdWFsc3RhY2sudXMtd2VzdC0yLmFtYXpvbmF3cy5jb20iLCJz'@; put 'My1maXBzLmR1YWxzdGFjay51cy13ZXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUuZHVhbHN0YWNrLnVzLXdlc3QtMi5hbWF6b25hd3MuY29tIiwiczMudXMtd2VzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy1hY2Nlc3Nwb2ludC51cy13ZXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLWFj'@; put 'Y2Vzc3BvaW50LWZpcHMudXMtd2VzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy1kZXByZWNhdGVkLnVzLXdlc3QtMi5hbWF6b25hd3MuY29tIiwiczMtZmlwcy51cy13ZXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLW9iamVjdC1sYW1iZGEudXMtd2VzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJz'@; put 'aXRlLnVzLXdlc3QtMi5hbWF6b25hd3MuY29tIiwibGFiZWxpbmcuYXAtbm9ydGhlYXN0LTEuc2FnZW1ha2VyLmF3cyIsImxhYmVsaW5nLmFwLW5vcnRoZWFzdC0yLnNhZ2VtYWtlci5hd3MiLCJsYWJlbGluZy5hcC1zb3V0aC0xLnNhZ2VtYWtlci5hd3MiLCJsYWJlbGluZy5hcC1zb3V0aGVh'@; put 'c3QtMS5zYWdlbWFrZXIuYXdzIiwibGFiZWxpbmcuYXAtc291dGhlYXN0LTIuc2FnZW1ha2VyLmF3cyIsImxhYmVsaW5nLmNhLWNlbnRyYWwtMS5zYWdlbWFrZXIuYXdzIiwibGFiZWxpbmcuZXUtY2VudHJhbC0xLnNhZ2VtYWtlci5hd3MiLCJsYWJlbGluZy5ldS13ZXN0LTEuc2FnZW1ha2Vy'@; put 'LmF3cyIsImxhYmVsaW5nLmV1LXdlc3QtMi5zYWdlbWFrZXIuYXdzIiwibGFiZWxpbmcudXMtZWFzdC0xLnNhZ2VtYWtlci5hd3MiLCJsYWJlbGluZy51cy1lYXN0LTIuc2FnZW1ha2VyLmF3cyIsImxhYmVsaW5nLnVzLXdlc3QtMi5zYWdlbWFrZXIuYXdzIiwibm90ZWJvb2suYWYtc291dGgt'@; put 'MS5zYWdlbWFrZXIuYXdzIiwibm90ZWJvb2suYXAtZWFzdC0xLnNhZ2VtYWtlci5hd3MiLCJub3RlYm9vay5hcC1ub3J0aGVhc3QtMS5zYWdlbWFrZXIuYXdzIiwibm90ZWJvb2suYXAtbm9ydGhlYXN0LTIuc2FnZW1ha2VyLmF3cyIsIm5vdGVib29rLmFwLW5vcnRoZWFzdC0zLnNhZ2VtYWtl'@; put 'ci5hd3MiLCJub3RlYm9vay5hcC1zb3V0aC0xLnNhZ2VtYWtlci5hd3MiLCJub3RlYm9vay5hcC1zb3V0aC0yLnNhZ2VtYWtlci5hd3MiLCJub3RlYm9vay5hcC1zb3V0aGVhc3QtMS5zYWdlbWFrZXIuYXdzIiwibm90ZWJvb2suYXAtc291dGhlYXN0LTIuc2FnZW1ha2VyLmF3cyIsIm5vdGVi'@; put 'b29rLmFwLXNvdXRoZWFzdC0zLnNhZ2VtYWtlci5hd3MiLCJub3RlYm9vay5hcC1zb3V0aGVhc3QtNC5zYWdlbWFrZXIuYXdzIiwibm90ZWJvb2suY2EtY2VudHJhbC0xLnNhZ2VtYWtlci5hd3MiLCJub3RlYm9vay1maXBzLmNhLWNlbnRyYWwtMS5zYWdlbWFrZXIuYXdzIiwibm90ZWJvb2su'@; put 'Y2Etd2VzdC0xLnNhZ2VtYWtlci5hd3MiLCJub3RlYm9vay1maXBzLmNhLXdlc3QtMS5zYWdlbWFrZXIuYXdzIiwibm90ZWJvb2suZXUtY2VudHJhbC0xLnNhZ2VtYWtlci5hd3MiLCJub3RlYm9vay5ldS1jZW50cmFsLTIuc2FnZW1ha2VyLmF3cyIsIm5vdGVib29rLmV1LW5vcnRoLTEuc2Fn'@; put 'ZW1ha2VyLmF3cyIsIm5vdGVib29rLmV1LXNvdXRoLTEuc2FnZW1ha2VyLmF3cyIsIm5vdGVib29rLmV1LXNvdXRoLTIuc2FnZW1ha2VyLmF3cyIsIm5vdGVib29rLmV1LXdlc3QtMS5zYWdlbWFrZXIuYXdzIiwibm90ZWJvb2suZXUtd2VzdC0yLnNhZ2VtYWtlci5hd3MiLCJub3RlYm9vay5l'@; put 'dS13ZXN0LTMuc2FnZW1ha2VyLmF3cyIsIm5vdGVib29rLmlsLWNlbnRyYWwtMS5zYWdlbWFrZXIuYXdzIiwibm90ZWJvb2subWUtY2VudHJhbC0xLnNhZ2VtYWtlci5hd3MiLCJub3RlYm9vay5tZS1zb3V0aC0xLnNhZ2VtYWtlci5hd3MiLCJub3RlYm9vay5zYS1lYXN0LTEuc2FnZW1ha2Vy'@; put 'LmF3cyIsIm5vdGVib29rLnVzLWVhc3QtMS5zYWdlbWFrZXIuYXdzIiwibm90ZWJvb2stZmlwcy51cy1lYXN0LTEuc2FnZW1ha2VyLmF3cyIsIm5vdGVib29rLnVzLWVhc3QtMi5zYWdlbWFrZXIuYXdzIiwibm90ZWJvb2stZmlwcy51cy1lYXN0LTIuc2FnZW1ha2VyLmF3cyIsIm5vdGVib29r'@; put 'LnVzLWdvdi1lYXN0LTEuc2FnZW1ha2VyLmF3cyIsIm5vdGVib29rLWZpcHMudXMtZ292LWVhc3QtMS5zYWdlbWFrZXIuYXdzIiwibm90ZWJvb2sudXMtZ292LXdlc3QtMS5zYWdlbWFrZXIuYXdzIiwibm90ZWJvb2stZmlwcy51cy1nb3Ytd2VzdC0xLnNhZ2VtYWtlci5hd3MiLCJub3RlYm9v'@; put 'ay51cy13ZXN0LTEuc2FnZW1ha2VyLmF3cyIsIm5vdGVib29rLWZpcHMudXMtd2VzdC0xLnNhZ2VtYWtlci5hd3MiLCJub3RlYm9vay51cy13ZXN0LTIuc2FnZW1ha2VyLmF3cyIsIm5vdGVib29rLWZpcHMudXMtd2VzdC0yLnNhZ2VtYWtlci5hd3MiLCJub3RlYm9vay5jbi1ub3J0aC0xLnNh'@; put 'Z2VtYWtlci5jb20uY24iLCJub3RlYm9vay5jbi1ub3J0aHdlc3QtMS5zYWdlbWFrZXIuY29tLmNuIiwic3R1ZGlvLmFmLXNvdXRoLTEuc2FnZW1ha2VyLmF3cyIsInN0dWRpby5hcC1lYXN0LTEuc2FnZW1ha2VyLmF3cyIsInN0dWRpby5hcC1ub3J0aGVhc3QtMS5zYWdlbWFrZXIuYXdzIiwi'@; put 'c3R1ZGlvLmFwLW5vcnRoZWFzdC0yLnNhZ2VtYWtlci5hd3MiLCJzdHVkaW8uYXAtbm9ydGhlYXN0LTMuc2FnZW1ha2VyLmF3cyIsInN0dWRpby5hcC1zb3V0aC0xLnNhZ2VtYWtlci5hd3MiLCJzdHVkaW8uYXAtc291dGhlYXN0LTEuc2FnZW1ha2VyLmF3cyIsInN0dWRpby5hcC1zb3V0aGVh'@; put 'c3QtMi5zYWdlbWFrZXIuYXdzIiwic3R1ZGlvLmFwLXNvdXRoZWFzdC0zLnNhZ2VtYWtlci5hd3MiLCJzdHVkaW8uY2EtY2VudHJhbC0xLnNhZ2VtYWtlci5hd3MiLCJzdHVkaW8uZXUtY2VudHJhbC0xLnNhZ2VtYWtlci5hd3MiLCJzdHVkaW8uZXUtbm9ydGgtMS5zYWdlbWFrZXIuYXdzIiwi'@; put 'c3R1ZGlvLmV1LXNvdXRoLTEuc2FnZW1ha2VyLmF3cyIsInN0dWRpby5ldS1zb3V0aC0yLnNhZ2VtYWtlci5hd3MiLCJzdHVkaW8uZXUtd2VzdC0xLnNhZ2VtYWtlci5hd3MiLCJzdHVkaW8uZXUtd2VzdC0yLnNhZ2VtYWtlci5hd3MiLCJzdHVkaW8uZXUtd2VzdC0zLnNhZ2VtYWtlci5hd3Mi'@; put 'LCJzdHVkaW8uaWwtY2VudHJhbC0xLnNhZ2VtYWtlci5hd3MiLCJzdHVkaW8ubWUtY2VudHJhbC0xLnNhZ2VtYWtlci5hd3MiLCJzdHVkaW8ubWUtc291dGgtMS5zYWdlbWFrZXIuYXdzIiwic3R1ZGlvLnNhLWVhc3QtMS5zYWdlbWFrZXIuYXdzIiwic3R1ZGlvLnVzLWVhc3QtMS5zYWdlbWFr'@; put 'ZXIuYXdzIiwic3R1ZGlvLnVzLWVhc3QtMi5zYWdlbWFrZXIuYXdzIiwic3R1ZGlvLnVzLWdvdi1lYXN0LTEuc2FnZW1ha2VyLmF3cyIsInN0dWRpby1maXBzLnVzLWdvdi1lYXN0LTEuc2FnZW1ha2VyLmF3cyIsInN0dWRpby51cy1nb3Ytd2VzdC0xLnNhZ2VtYWtlci5hd3MiLCJzdHVkaW8t'@; put 'Zmlwcy51cy1nb3Ytd2VzdC0xLnNhZ2VtYWtlci5hd3MiLCJzdHVkaW8udXMtd2VzdC0xLnNhZ2VtYWtlci5hd3MiLCJzdHVkaW8udXMtd2VzdC0yLnNhZ2VtYWtlci5hd3MiLCJzdHVkaW8uY24tbm9ydGgtMS5zYWdlbWFrZXIuY29tLmNuIiwic3R1ZGlvLmNuLW5vcnRod2VzdC0xLnNhZ2Vt'@; put 'YWtlci5jb20uY24iLCIqLmV4cGVyaW1lbnRzLnNhZ2VtYWtlci5hd3MiLCJhbmFseXRpY3MtZ2F0ZXdheS5hcC1ub3J0aGVhc3QtMS5hbWF6b25hd3MuY29tIiwiYW5hbHl0aWNzLWdhdGV3YXkuYXAtbm9ydGhlYXN0LTIuYW1hem9uYXdzLmNvbSIsImFuYWx5dGljcy1nYXRld2F5LmFwLXNv'@; put 'dXRoLTEuYW1hem9uYXdzLmNvbSIsImFuYWx5dGljcy1nYXRld2F5LmFwLXNvdXRoZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJhbmFseXRpY3MtZ2F0ZXdheS5hcC1zb3V0aGVhc3QtMi5hbWF6b25hd3MuY29tIiwiYW5hbHl0aWNzLWdhdGV3YXkuZXUtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20i'@; put 'LCJhbmFseXRpY3MtZ2F0ZXdheS5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbSIsImFuYWx5dGljcy1nYXRld2F5LnVzLWVhc3QtMS5hbWF6b25hd3MuY29tIiwiYW5hbHl0aWNzLWdhdGV3YXkudXMtZWFzdC0yLmFtYXpvbmF3cy5jb20iLCJhbmFseXRpY3MtZ2F0ZXdheS51cy13ZXN0LTIuYW1h'@; put 'em9uYXdzLmNvbSIsImFtcGxpZnlhcHAuY29tIiwiKi5hd3NhcHBydW5uZXIuY29tIiwid2Vidmlldy1hc3NldHMuYXdzLWNsb3VkOS5hZi1zb3V0aC0xLmFtYXpvbmF3cy5jb20iLCJ2ZnMuY2xvdWQ5LmFmLXNvdXRoLTEuYW1hem9uYXdzLmNvbSIsIndlYnZpZXctYXNzZXRzLmNsb3VkOS5h'@; put 'Zi1zb3V0aC0xLmFtYXpvbmF3cy5jb20iLCJ3ZWJ2aWV3LWFzc2V0cy5hd3MtY2xvdWQ5LmFwLWVhc3QtMS5hbWF6b25hd3MuY29tIiwidmZzLmNsb3VkOS5hcC1lYXN0LTEuYW1hem9uYXdzLmNvbSIsIndlYnZpZXctYXNzZXRzLmNsb3VkOS5hcC1lYXN0LTEuYW1hem9uYXdzLmNvbSIsIndl'@; put 'YnZpZXctYXNzZXRzLmF3cy1jbG91ZDkuYXAtbm9ydGhlYXN0LTEuYW1hem9uYXdzLmNvbSIsInZmcy5jbG91ZDkuYXAtbm9ydGhlYXN0LTEuYW1hem9uYXdzLmNvbSIsIndlYnZpZXctYXNzZXRzLmNsb3VkOS5hcC1ub3J0aGVhc3QtMS5hbWF6b25hd3MuY29tIiwid2Vidmlldy1hc3NldHMu'@; put 'YXdzLWNsb3VkOS5hcC1ub3J0aGVhc3QtMi5hbWF6b25hd3MuY29tIiwidmZzLmNsb3VkOS5hcC1ub3J0aGVhc3QtMi5hbWF6b25hd3MuY29tIiwid2Vidmlldy1hc3NldHMuY2xvdWQ5LmFwLW5vcnRoZWFzdC0yLmFtYXpvbmF3cy5jb20iLCJ3ZWJ2aWV3LWFzc2V0cy5hd3MtY2xvdWQ5LmFw'@; put 'LW5vcnRoZWFzdC0zLmFtYXpvbmF3cy5jb20iLCJ2ZnMuY2xvdWQ5LmFwLW5vcnRoZWFzdC0zLmFtYXpvbmF3cy5jb20iLCJ3ZWJ2aWV3LWFzc2V0cy5jbG91ZDkuYXAtbm9ydGhlYXN0LTMuYW1hem9uYXdzLmNvbSIsIndlYnZpZXctYXNzZXRzLmF3cy1jbG91ZDkuYXAtc291dGgtMS5hbWF6'@; put 'b25hd3MuY29tIiwidmZzLmNsb3VkOS5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20iLCJ3ZWJ2aWV3LWFzc2V0cy5jbG91ZDkuYXAtc291dGgtMS5hbWF6b25hd3MuY29tIiwid2Vidmlldy1hc3NldHMuYXdzLWNsb3VkOS5hcC1zb3V0aGVhc3QtMS5hbWF6b25hd3MuY29tIiwidmZzLmNsb3Vk'@; put 'OS5hcC1zb3V0aGVhc3QtMS5hbWF6b25hd3MuY29tIiwid2Vidmlldy1hc3NldHMuY2xvdWQ5LmFwLXNvdXRoZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJ3ZWJ2aWV3LWFzc2V0cy5hd3MtY2xvdWQ5LmFwLXNvdXRoZWFzdC0yLmFtYXpvbmF3cy5jb20iLCJ2ZnMuY2xvdWQ5LmFwLXNvdXRoZWFz'@; put 'dC0yLmFtYXpvbmF3cy5jb20iLCJ3ZWJ2aWV3LWFzc2V0cy5jbG91ZDkuYXAtc291dGhlYXN0LTIuYW1hem9uYXdzLmNvbSIsIndlYnZpZXctYXNzZXRzLmF3cy1jbG91ZDkuY2EtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJ2ZnMuY2xvdWQ5LmNhLWNlbnRyYWwtMS5hbWF6b25hd3MuY29t'@; put 'Iiwid2Vidmlldy1hc3NldHMuY2xvdWQ5LmNhLWNlbnRyYWwtMS5hbWF6b25hd3MuY29tIiwid2Vidmlldy1hc3NldHMuYXdzLWNsb3VkOS5ldS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsInZmcy5jbG91ZDkuZXUtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJ3ZWJ2aWV3LWFzc2V0cy5j'@; put 'bG91ZDkuZXUtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJ3ZWJ2aWV3LWFzc2V0cy5hd3MtY2xvdWQ5LmV1LW5vcnRoLTEuYW1hem9uYXdzLmNvbSIsInZmcy5jbG91ZDkuZXUtbm9ydGgtMS5hbWF6b25hd3MuY29tIiwid2Vidmlldy1hc3NldHMuY2xvdWQ5LmV1LW5vcnRoLTEuYW1hem9u'@; put 'YXdzLmNvbSIsIndlYnZpZXctYXNzZXRzLmF3cy1jbG91ZDkuZXUtc291dGgtMS5hbWF6b25hd3MuY29tIiwidmZzLmNsb3VkOS5ldS1zb3V0aC0xLmFtYXpvbmF3cy5jb20iLCJ3ZWJ2aWV3LWFzc2V0cy5jbG91ZDkuZXUtc291dGgtMS5hbWF6b25hd3MuY29tIiwid2Vidmlldy1hc3NldHMu'@; put 'YXdzLWNsb3VkOS5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbSIsInZmcy5jbG91ZDkuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20iLCJ3ZWJ2aWV3LWFzc2V0cy5jbG91ZDkuZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20iLCJ3ZWJ2aWV3LWFzc2V0cy5hd3MtY2xvdWQ5LmV1LXdlc3QtMi5hbWF6b25h'@; put 'd3MuY29tIiwidmZzLmNsb3VkOS5ldS13ZXN0LTIuYW1hem9uYXdzLmNvbSIsIndlYnZpZXctYXNzZXRzLmNsb3VkOS5ldS13ZXN0LTIuYW1hem9uYXdzLmNvbSIsIndlYnZpZXctYXNzZXRzLmF3cy1jbG91ZDkuZXUtd2VzdC0zLmFtYXpvbmF3cy5jb20iLCJ2ZnMuY2xvdWQ5LmV1LXdlc3Qt'@; put 'My5hbWF6b25hd3MuY29tIiwid2Vidmlldy1hc3NldHMuY2xvdWQ5LmV1LXdlc3QtMy5hbWF6b25hd3MuY29tIiwid2Vidmlldy1hc3NldHMuYXdzLWNsb3VkOS5pbC1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsInZmcy5jbG91ZDkuaWwtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJ3ZWJ2'@; put 'aWV3LWFzc2V0cy5hd3MtY2xvdWQ5Lm1lLXNvdXRoLTEuYW1hem9uYXdzLmNvbSIsInZmcy5jbG91ZDkubWUtc291dGgtMS5hbWF6b25hd3MuY29tIiwid2Vidmlldy1hc3NldHMuY2xvdWQ5Lm1lLXNvdXRoLTEuYW1hem9uYXdzLmNvbSIsIndlYnZpZXctYXNzZXRzLmF3cy1jbG91ZDkuc2Et'@; put 'ZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJ2ZnMuY2xvdWQ5LnNhLWVhc3QtMS5hbWF6b25hd3MuY29tIiwid2Vidmlldy1hc3NldHMuY2xvdWQ5LnNhLWVhc3QtMS5hbWF6b25hd3MuY29tIiwid2Vidmlldy1hc3NldHMuYXdzLWNsb3VkOS51cy1lYXN0LTEuYW1hem9uYXdzLmNvbSIsInZmcy5j'@; put 'bG91ZDkudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJ3ZWJ2aWV3LWFzc2V0cy5jbG91ZDkudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJ3ZWJ2aWV3LWFzc2V0cy5hd3MtY2xvdWQ5LnVzLWVhc3QtMi5hbWF6b25hd3MuY29tIiwidmZzLmNsb3VkOS51cy1lYXN0LTIuYW1hem9uYXdzLmNv'@; put 'bSIsIndlYnZpZXctYXNzZXRzLmNsb3VkOS51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSIsIndlYnZpZXctYXNzZXRzLmF3cy1jbG91ZDkudXMtd2VzdC0xLmFtYXpvbmF3cy5jb20iLCJ2ZnMuY2xvdWQ5LnVzLXdlc3QtMS5hbWF6b25hd3MuY29tIiwid2Vidmlldy1hc3NldHMuY2xvdWQ5LnVz'@; put 'LXdlc3QtMS5hbWF6b25hd3MuY29tIiwid2Vidmlldy1hc3NldHMuYXdzLWNsb3VkOS51cy13ZXN0LTIuYW1hem9uYXdzLmNvbSIsInZmcy5jbG91ZDkudXMtd2VzdC0yLmFtYXpvbmF3cy5jb20iLCJ3ZWJ2aWV3LWFzc2V0cy5jbG91ZDkudXMtd2VzdC0yLmFtYXpvbmF3cy5jb20iLCJhd3Nh'@; put 'cHBzLmNvbSIsImNuLW5vcnRoLTEuZWIuYW1hem9uYXdzLmNvbS5jbiIsImNuLW5vcnRod2VzdC0xLmViLmFtYXpvbmF3cy5jb20uY24iLCJlbGFzdGljYmVhbnN0YWxrLmNvbSIsImFmLXNvdXRoLTEuZWxhc3RpY2JlYW5zdGFsay5jb20iLCJhcC1lYXN0LTEuZWxhc3RpY2JlYW5zdGFsay5j'@; put 'b20iLCJhcC1ub3J0aGVhc3QtMS5lbGFzdGljYmVhbnN0YWxrLmNvbSIsImFwLW5vcnRoZWFzdC0yLmVsYXN0aWNiZWFuc3RhbGsuY29tIiwiYXAtbm9ydGhlYXN0LTMuZWxhc3RpY2JlYW5zdGFsay5jb20iLCJhcC1zb3V0aC0xLmVsYXN0aWNiZWFuc3RhbGsuY29tIiwiYXAtc291dGhlYXN0'@; put 'LTEuZWxhc3RpY2JlYW5zdGFsay5jb20iLCJhcC1zb3V0aGVhc3QtMi5lbGFzdGljYmVhbnN0YWxrLmNvbSIsImFwLXNvdXRoZWFzdC0zLmVsYXN0aWNiZWFuc3RhbGsuY29tIiwiY2EtY2VudHJhbC0xLmVsYXN0aWNiZWFuc3RhbGsuY29tIiwiZXUtY2VudHJhbC0xLmVsYXN0aWNiZWFuc3Rh'@; put 'bGsuY29tIiwiZXUtbm9ydGgtMS5lbGFzdGljYmVhbnN0YWxrLmNvbSIsImV1LXNvdXRoLTEuZWxhc3RpY2JlYW5zdGFsay5jb20iLCJldS13ZXN0LTEuZWxhc3RpY2JlYW5zdGFsay5jb20iLCJldS13ZXN0LTIuZWxhc3RpY2JlYW5zdGFsay5jb20iLCJldS13ZXN0LTMuZWxhc3RpY2JlYW5z'@; put 'dGFsay5jb20iLCJpbC1jZW50cmFsLTEuZWxhc3RpY2JlYW5zdGFsay5jb20iLCJtZS1zb3V0aC0xLmVsYXN0aWNiZWFuc3RhbGsuY29tIiwic2EtZWFzdC0xLmVsYXN0aWNiZWFuc3RhbGsuY29tIiwidXMtZWFzdC0xLmVsYXN0aWNiZWFuc3RhbGsuY29tIiwidXMtZWFzdC0yLmVsYXN0aWNi'@; put 'ZWFuc3RhbGsuY29tIiwidXMtZ292LWVhc3QtMS5lbGFzdGljYmVhbnN0YWxrLmNvbSIsInVzLWdvdi13ZXN0LTEuZWxhc3RpY2JlYW5zdGFsay5jb20iLCJ1cy13ZXN0LTEuZWxhc3RpY2JlYW5zdGFsay5jb20iLCJ1cy13ZXN0LTIuZWxhc3RpY2JlYW5zdGFsay5jb20iLCIqLmVsYi5hbWF6'@; put 'b25hd3MuY29tLmNuIiwiKi5lbGIuYW1hem9uYXdzLmNvbSIsImF3c2dsb2JhbGFjY2VsZXJhdG9yLmNvbSIsIioucHJpdmF0ZS5yZXBvc3QuYXdzIiwiZWVyby5vbmxpbmUiLCJlZXJvLXN0YWdlLm9ubGluZSIsImFwaWdlZS5pbyIsInBhbmVsLmRldiIsInNpaWl0ZXMuY29tIiwiYXBwc3Bh'@; put 'Y2Vob3N0ZWQuY29tIiwiYXBwc3BhY2V1c2VyY29udGVudC5jb20iLCJhcHB1ZG8ubmV0Iiwib24tYXB0aWJsZS5jb20iLCJmNS5zaSIsImFydmFuZWRnZS5pciIsInVzZXIuYXNlaW5ldC5uZS5qcCIsImd2LnZjIiwiZC5ndi52YyIsInVzZXIucGFydHkuZXVzIiwicGltaWVudGEub3JnIiwi'@; put 'cG9pdnJvbi5vcmciLCJwb3RhZ2VyLm9yZyIsInN3ZWV0cGVwcGVyLm9yZyIsIm15YXN1c3Rvci5jb20iLCJjZG4ucHJvZC5hdGxhc3NpYW4tZGV2Lm5ldCIsInRyYW5zbGF0ZWQucGFnZSIsIm15ZnJpdHoubGluayIsIm15ZnJpdHoubmV0Iiwib25hdnN0YWNrLm5ldCIsIiouYXdkZXYuY2Ei'@; put 'LCIqLmFkdmlzb3Iud3MiLCJlY29tbWVyY2Utc2hvcC5wbCIsImItZGF0YS5pbyIsImJhbGVuYS1kZXZpY2VzLmNvbSIsImJhc2UuZWMiLCJvZmZpY2lhbC5lYyIsImJ1eXNob3AuanAiLCJmYXNoaW9uc3RvcmUuanAiLCJoYW5kY3JhZnRlZC5qcCIsImthd2FpaXNob3AuanAiLCJzdXBlcnNh'@; put 'bGUuanAiLCJ0aGVzaG9wLmpwIiwic2hvcHNlbGVjdC5uZXQiLCJiYXNlLnNob3AiLCJiZWFnbGVib2FyZC5pbyIsIiouYmVnZXQuYXBwIiwicGFnZXMuZ2F5IiwiYm5yLmxhIiwiYml0YnVja2V0LmlvIiwiYmxhY2tiYXVkY2RuLm5ldCIsIm9mLmplIiwiYmx1ZWJpdGUuaW8iLCJib29tbGEu'@; put 'bmV0IiwiYm91dGlyLmNvbSIsImJveGZ1c2UuaW8iLCJzcXVhcmU3LmNoIiwiYnBsYWNlZC5jb20iLCJicGxhY2VkLmRlIiwic3F1YXJlNy5kZSIsImJwbGFjZWQubmV0Iiwic3F1YXJlNy5uZXQiLCIqLnMuYnJhdmUuaW8iLCJzaG9wLmJyZW5kbHkuaHIiLCJzaG9wLmJyZW5kbHkucnMiLCJi'@; put 'cm93c2Vyc2FmZXR5bWFyay5pbyIsInJhZGlvLmFtIiwicmFkaW8uZm0iLCJ1azAuYmlndi5pbyIsImRoLmJ5dGVtYXJrLmNvLnVrIiwidm0uYnl0ZW1hcmsuY28udWsiLCJjYWZqcy5jb20iLCJjYW52YS1hcHBzLmNuIiwiKi5teS5jYW52YXNpdGUuY24iLCJjYW52YS1hcHBzLmNvbSIsIiou'@; put 'bXkuY2FudmEuc2l0ZSIsImRyci5hYyIsInV3dS5haSIsImNhcnJkLmNvIiwiY3JkLmNvIiwianUubXAiLCJhcGkuZ292LnVrIiwiY2RuNzctc3RvcmFnZS5jb20iLCJyc2MuY29udGVudHByb3h5OS5jeiIsInIuY2RuNzcubmV0IiwiY2RuNzctc3NsLm5ldCIsImMuY2RuNzcub3JnIiwicnNj'@; put 'LmNkbjc3Lm9yZyIsInNzbC5vcmlnaW4uY2RuNzctc2VjdXJlLm9yZyIsInphLmJ6IiwiYnIuY29tIiwiY24uY29tIiwiZGUuY29tIiwiZXUuY29tIiwianBuLmNvbSIsIm1leC5jb20iLCJydS5jb20iLCJzYS5jb20iLCJ1ay5jb20iLCJ1cy5jb20iLCJ6YS5jb20iLCJjb20uZGUiLCJnYi5u'@; put 'ZXQiLCJodS5uZXQiLCJqcC5uZXQiLCJzZS5uZXQiLCJ1ay5uZXQiLCJhZS5vcmciLCJjb20uc2UiLCJjeC51YSIsImRpc2NvdXJzZS5ncm91cCIsImRpc2NvdXJzZS50ZWFtIiwiY2xlcmsuYXBwIiwiY2xlcmtzdGFnZS5hcHAiLCIqLmxjbC5kZXYiLCIqLmxjbHN0YWdlLmRldiIsIiouc3Rn'@; put 'LmRldiIsIiouc3Rnc3RhZ2UuZGV2IiwiY2xldmVyYXBwcy5jYyIsIiouc2VydmljZXMuY2xldmVyLWNsb3VkLmNvbSIsImNsZXZlcmFwcHMuaW8iLCJjbGV2ZXJhcHBzLnRlY2giLCJjbGlja3Jpc2luZy5uZXQiLCJjbG91ZG5zLmFzaWEiLCJjbG91ZG5zLmJlIiwiY2xvdWQtaXAuYml6Iiwi'@; put 'Y2xvdWRucy5iaXoiLCJjbG91ZG5zLmNjIiwiY2xvdWRucy5jaCIsImNsb3VkbnMuY2wiLCJjbG91ZG5zLmNsdWIiLCJkbnNhYnIuY29tIiwiaXAtZGRucy5jb20iLCJjbG91ZG5zLmN4IiwiY2xvdWRucy5ldSIsImNsb3VkbnMuaW4iLCJjbG91ZG5zLmluZm8iLCJkZG5zLWlwLm5ldCIsImRu'@; put 'cy1jbG91ZC5uZXQiLCJkbnMtZHluYW1pYy5uZXQiLCJjbG91ZG5zLm56IiwiY2xvdWRucy5vcmciLCJpcC1keW5hbWljLm9yZyIsImNsb3VkbnMucGgiLCJjbG91ZG5zLnBybyIsImNsb3VkbnMucHciLCJjbG91ZG5zLnVzIiwiYzY2Lm1lIiwiY2xvdWQ2Ni53cyIsImNsb3VkNjYuem9uZSIs'@; put 'ImpkZXZjbG91ZC5jb20iLCJ3cGRldmNsb3VkLmNvbSIsImNsb3VkYWNjZXNzLmhvc3QiLCJmcmVlc2l0ZS5ob3N0IiwiY2xvdWRhY2Nlc3MubmV0IiwiKi5jbG91ZGVyYS5zaXRlIiwiY2YtaXBmcy5jb20iLCJjbG91ZGZsYXJlLWlwZnMuY29tIiwidHJ5Y2xvdWRmbGFyZS5jb20iLCJwYWdl'@; put 'cy5kZXYiLCJyMi5kZXYiLCJ3b3JrZXJzLmRldiIsImNsb3VkZmxhcmUubmV0IiwiY2RuLmNsb3VkZmxhcmUubmV0IiwiY2RuLmNsb3VkZmxhcmVhbnljYXN0Lm5ldCIsImNkbi5jbG91ZGZsYXJlY24ubmV0IiwiY2RuLmNsb3VkZmxhcmVnbG9iYWwubmV0IiwiY3VzdC5jbG91ZHNjYWxlLmNo'@; put 'Iiwib2JqZWN0cy5scGcuY2xvdWRzY2FsZS5jaCIsIm9iamVjdHMucm1hLmNsb3Vkc2NhbGUuY2giLCJ3bmV4dC5hcHAiLCJjbnB5LmdkbiIsIioub3RhcC5jbyIsImNvLmNhIiwiY28uY29tIiwiY29kZWJlcmcucGFnZSIsImNzYi5hcHAiLCJwcmV2aWV3LmNzYi5hcHAiLCJjby5ubCIsImNv'@; put 'Lm5vIiwid2ViaG9zdGluZy5iZSIsImhvc3RpbmctY2x1c3Rlci5ubCIsImN0ZmNsb3VkLm5ldCIsImNvbnZleC5zaXRlIiwiYWMucnUiLCJlZHUucnUiLCJnb3YucnUiLCJpbnQucnUiLCJtaWwucnUiLCJ0ZXN0LnJ1IiwiZHluLmNvc2lkbnMuZGUiLCJkbnN1cGRhdGVyLmRlIiwiZHluYW1p'@; put 'c2NoZXMtZG5zLmRlIiwiaW50ZXJuZXQtZG5zLmRlIiwibC1vLWctaS1uLmRlIiwiZHluYW1pYy1kbnMuaW5mbyIsImZlc3RlLWlwLm5ldCIsImtueC1zZXJ2ZXIubmV0Iiwic3RhdGljLWFjY2Vzcy5uZXQiLCJjcmFmdC5tZSIsInJlYWxtLmN6Iiwib24uY3Jpc3AuZW1haWwiLCIqLmNyeXB0'@; put 'b25vbWljLm5ldCIsImN1cnYuZGV2IiwiY2ZvbGtzLnBsIiwiY3lvbi5saW5rIiwiY3lvbi5zaXRlIiwicGxhdGZvcm0wLmFwcCIsImZud2suc2l0ZSIsImZvbGlvbmV0d29yay5zaXRlIiwiYml6LmRrIiwiY28uZGsiLCJmaXJtLmRrIiwicmVnLmRrIiwic3RvcmUuZGsiLCJkeW5kbnMuZGFw'@; put 'cG5vZGUuaW8iLCJidWlsdHdpdGhkYXJrLmNvbSIsImRhcmtsYW5nLmlvIiwiZGVtby5kYXRhZGV0ZWN0LmNvbSIsImluc3RhbmNlLmRhdGFkZXRlY3QuY29tIiwiZWRnZXN0YWNrLm1lIiwiZGF0dG9sb2NhbC5jb20iLCJkYXR0b3JlbGF5LmNvbSIsImRhdHRvd2ViLmNvbSIsIm15ZGF0dG8u'@; put 'Y29tIiwiZGF0dG9sb2NhbC5uZXQiLCJteWRhdHRvLm5ldCIsImRkbnNzLmRlIiwiZHluLmRkbnNzLmRlIiwiZHluZG5zLmRkbnNzLmRlIiwiZHluLWlwMjQuZGUiLCJkeW5kbnMxLmRlIiwiaG9tZS13ZWJzZXJ2ZXIuZGUiLCJkeW4uaG9tZS13ZWJzZXJ2ZXIuZGUiLCJteWhvbWUtc2VydmVy'@; put 'LmRlIiwiZGRuc3Mub3JnIiwiZGViaWFuLm5ldCIsImRlZmluaW1hLmlvIiwiZGVmaW5pbWEubmV0IiwiZGVuby5kZXYiLCJkZW5vLXN0YWdpbmcuZGV2IiwiZGVkeW4uaW8iLCJkZXRhLmFwcCIsImRldGEuZGV2IiwiZGZpcm1hLnBsIiwiZGtvbnRvLnBsIiwieW91Mi5wbCIsIm9uZGlnaXRh'@; put 'bG9jZWFuLmFwcCIsIiouZGlnaXRhbG9jZWFuc3BhY2VzLmNvbSIsInVzLmtnIiwicnNzLm15LmlkIiwiZGloZXIuc29sdXRpb25zIiwiZGlzY29yZHNheXMuY29tIiwiZGlzY29yZHNlei5jb20iLCJqb3ppLmJpeiIsImRuc2hvbWUuZGUiLCJvbmxpbmUudGgiLCJzaG9wLnRoIiwiZHJheWRk'@; put 'bnMuY29tIiwic2hvcGFyZW5hLnBsIiwiZHJlYW1ob3N0ZXJzLmNvbSIsImR1cnVtaXMuY29tIiwibXlkcm9iby5jb20iLCJkcnVkLmlvIiwiZHJ1ZC51cyIsImR1Y2tkbnMub3JnIiwiZHkuZmkiLCJ0dW5rLm9yZyIsImR5bmRucy5iaXoiLCJmb3ItYmV0dGVyLmJpeiIsImZvci1tb3JlLmJp'@; put 'eiIsImZvci1zb21lLmJpeiIsImZvci10aGUuYml6Iiwic2VsZmlwLmJpeiIsIndlYmhvcC5iaXoiLCJmdHBhY2Nlc3MuY2MiLCJnYW1lLXNlcnZlci5jYyIsIm15cGhvdG9zLmNjIiwic2NyYXBwaW5nLmNjIiwiYmxvZ2Rucy5jb20iLCJjZWNoaXJlLmNvbSIsImRuc2FsaWFzLmNvbSIsImRu'@; put 'c2Rvam8uY29tIiwiZG9lc250ZXhpc3QuY29tIiwiZG9udGV4aXN0LmNvbSIsImRvb21kbnMuY29tIiwiZHluLW8tc2F1ci5jb20iLCJkeW5hbGlhcy5jb20iLCJkeW5kbnMtYXQtaG9tZS5jb20iLCJkeW5kbnMtYXQtd29yay5jb20iLCJkeW5kbnMtYmxvZy5jb20iLCJkeW5kbnMtZnJlZS5j'@; put 'b20iLCJkeW5kbnMtaG9tZS5jb20iLCJkeW5kbnMtaXAuY29tIiwiZHluZG5zLW1haWwuY29tIiwiZHluZG5zLW9mZmljZS5jb20iLCJkeW5kbnMtcGljcy5jb20iLCJkeW5kbnMtcmVtb3RlLmNvbSIsImR5bmRucy1zZXJ2ZXIuY29tIiwiZHluZG5zLXdlYi5jb20iLCJkeW5kbnMtd2lraS5j'@; put 'b20iLCJkeW5kbnMtd29yay5jb20iLCJlc3QtYS1sYS1tYWlzb24uY29tIiwiZXN0LWEtbGEtbWFzaW9uLmNvbSIsImVzdC1sZS1wYXRyb24uY29tIiwiZXN0LW1vbi1ibG9ndWV1ci5jb20iLCJmcm9tLWFrLmNvbSIsImZyb20tYWwuY29tIiwiZnJvbS1hci5jb20iLCJmcm9tLWNhLmNvbSIs'@; put 'ImZyb20tY3QuY29tIiwiZnJvbS1kYy5jb20iLCJmcm9tLWRlLmNvbSIsImZyb20tZmwuY29tIiwiZnJvbS1nYS5jb20iLCJmcm9tLWhpLmNvbSIsImZyb20taWEuY29tIiwiZnJvbS1pZC5jb20iLCJmcm9tLWlsLmNvbSIsImZyb20taW4uY29tIiwiZnJvbS1rcy5jb20iLCJmcm9tLWt5LmNv'@; put 'bSIsImZyb20tbWEuY29tIiwiZnJvbS1tZC5jb20iLCJmcm9tLW1pLmNvbSIsImZyb20tbW4uY29tIiwiZnJvbS1tby5jb20iLCJmcm9tLW1zLmNvbSIsImZyb20tbXQuY29tIiwiZnJvbS1uYy5jb20iLCJmcm9tLW5kLmNvbSIsImZyb20tbmUuY29tIiwiZnJvbS1uaC5jb20iLCJmcm9tLW5q'@; put 'LmNvbSIsImZyb20tbm0uY29tIiwiZnJvbS1udi5jb20iLCJmcm9tLW9oLmNvbSIsImZyb20tb2suY29tIiwiZnJvbS1vci5jb20iLCJmcm9tLXBhLmNvbSIsImZyb20tcHIuY29tIiwiZnJvbS1yaS5jb20iLCJmcm9tLXNjLmNvbSIsImZyb20tc2QuY29tIiwiZnJvbS10bi5jb20iLCJmcm9t'@; put 'LXR4LmNvbSIsImZyb20tdXQuY29tIiwiZnJvbS12YS5jb20iLCJmcm9tLXZ0LmNvbSIsImZyb20td2EuY29tIiwiZnJvbS13aS5jb20iLCJmcm9tLXd2LmNvbSIsImZyb20td3kuY29tIiwiZ2V0bXlpcC5jb20iLCJnb3RkbnMuY29tIiwiaG9iYnktc2l0ZS5jb20iLCJob21lbGludXguY29t'@; put 'IiwiaG9tZXVuaXguY29tIiwiaWFtYWxsYW1hLmNvbSIsImlzLWEtYW5hcmNoaXN0LmNvbSIsImlzLWEtYmxvZ2dlci5jb20iLCJpcy1hLWJvb2trZWVwZXIuY29tIiwiaXMtYS1idWxscy1mYW4uY29tIiwiaXMtYS1jYXRlcmVyLmNvbSIsImlzLWEtY2hlZi5jb20iLCJpcy1hLWNvbnNlcnZh'@; put 'dGl2ZS5jb20iLCJpcy1hLWNwYS5jb20iLCJpcy1hLWN1YmljbGUtc2xhdmUuY29tIiwiaXMtYS1kZW1vY3JhdC5jb20iLCJpcy1hLWRlc2lnbmVyLmNvbSIsImlzLWEtZG9jdG9yLmNvbSIsImlzLWEtZmluYW5jaWFsYWR2aXNvci5jb20iLCJpcy1hLWdlZWsuY29tIiwiaXMtYS1ncmVlbi5j'@; put 'b20iLCJpcy1hLWd1cnUuY29tIiwiaXMtYS1oYXJkLXdvcmtlci5jb20iLCJpcy1hLWh1bnRlci5jb20iLCJpcy1hLWxhbmRzY2FwZXIuY29tIiwiaXMtYS1sYXd5ZXIuY29tIiwiaXMtYS1saWJlcmFsLmNvbSIsImlzLWEtbGliZXJ0YXJpYW4uY29tIiwiaXMtYS1sbGFtYS5jb20iLCJpcy1h'@; put 'LW11c2ljaWFuLmNvbSIsImlzLWEtbmFzY2FyZmFuLmNvbSIsImlzLWEtbnVyc2UuY29tIiwiaXMtYS1wYWludGVyLmNvbSIsImlzLWEtcGVyc29uYWx0cmFpbmVyLmNvbSIsImlzLWEtcGhvdG9ncmFwaGVyLmNvbSIsImlzLWEtcGxheWVyLmNvbSIsImlzLWEtcmVwdWJsaWNhbi5jb20iLCJp'@; put 'cy1hLXJvY2tzdGFyLmNvbSIsImlzLWEtc29jaWFsaXN0LmNvbSIsImlzLWEtc3R1ZGVudC5jb20iLCJpcy1hLXRlYWNoZXIuY29tIiwiaXMtYS10ZWNoaWUuY29tIiwiaXMtYS10aGVyYXBpc3QuY29tIiwiaXMtYW4tYWNjb3VudGFudC5jb20iLCJpcy1hbi1hY3Rvci5jb20iLCJpcy1hbi1h'@; put 'Y3RyZXNzLmNvbSIsImlzLWFuLWFuYXJjaGlzdC5jb20iLCJpcy1hbi1hcnRpc3QuY29tIiwiaXMtYW4tZW5naW5lZXIuY29tIiwiaXMtYW4tZW50ZXJ0YWluZXIuY29tIiwiaXMtY2VydGlmaWVkLmNvbSIsImlzLWdvbmUuY29tIiwiaXMtaW50by1hbmltZS5jb20iLCJpcy1pbnRvLWNhcnMu'@; put 'Y29tIiwiaXMtaW50by1jYXJ0b29ucy5jb20iLCJpcy1pbnRvLWdhbWVzLmNvbSIsImlzLWxlZXQuY29tIiwiaXMtbm90LWNlcnRpZmllZC5jb20iLCJpcy1zbGljay5jb20iLCJpcy11YmVybGVldC5jb20iLCJpcy13aXRoLXRoZWJhbmQuY29tIiwiaXNhLWdlZWsuY29tIiwiaXNhLWhvY2tl'@; put 'eW51dC5jb20iLCJpc3NtYXJ0ZXJ0aGFueW91LmNvbSIsImxpa2VzLXBpZS5jb20iLCJsaWtlc2NhbmR5LmNvbSIsIm5lYXQtdXJsLmNvbSIsInNhdmVzLXRoZS13aGFsZXMuY29tIiwic2VsZmlwLmNvbSIsInNlbGxzLWZvci1sZXNzLmNvbSIsInNlbGxzLWZvci11LmNvbSIsInNlcnZlYmJz'@; put 'LmNvbSIsInNpbXBsZS11cmwuY29tIiwic3BhY2UtdG8tcmVudC5jb20iLCJ0ZWFjaGVzLXlvZ2EuY29tIiwid3JpdGVzdGhpc2Jsb2cuY29tIiwiYXRoLmN4IiwiZnVldHRlcnRkYXNuZXR6LmRlIiwiaXN0ZWluZ2Vlay5kZSIsImlzdG1laW4uZGUiLCJsZWJ0aW1uZXR6LmRlIiwibGVpdHVu'@; put 'Z3Nlbi5kZSIsInRyYWV1bXRnZXJhZGUuZGUiLCJiYXJyZWwtb2Yta25vd2xlZGdlLmluZm8iLCJiYXJyZWxsLW9mLWtub3dsZWRnZS5pbmZvIiwiZHluZG5zLmluZm8iLCJmb3Itb3VyLmluZm8iLCJncm9rcy10aGUuaW5mbyIsImdyb2tzLXRoaXMuaW5mbyIsImhlcmUtZm9yLW1vcmUuaW5m'@; put 'byIsImtub3dzaXRhbGwuaW5mbyIsInNlbGZpcC5pbmZvIiwid2ViaG9wLmluZm8iLCJmb3Jnb3QuaGVyLm5hbWUiLCJmb3Jnb3QuaGlzLm5hbWUiLCJhdC1iYW5kLWNhbXAubmV0IiwiYmxvZ2Rucy5uZXQiLCJicm9rZS1pdC5uZXQiLCJidXlzaG91c2VzLm5ldCIsImRuc2FsaWFzLm5ldCIs'@; put 'ImRuc2Rvam8ubmV0IiwiZG9lcy1pdC5uZXQiLCJkb250ZXhpc3QubmV0IiwiZHluYWxpYXMubmV0IiwiZHluYXRob21lLm5ldCIsImVuZG9maW50ZXJuZXQubmV0IiwiZnJvbS1hei5uZXQiLCJmcm9tLWNvLm5ldCIsImZyb20tbGEubmV0IiwiZnJvbS1ueS5uZXQiLCJnZXRzLWl0Lm5ldCIs'@; put 'ImhhbS1yYWRpby1vcC5uZXQiLCJob21lZnRwLm5ldCIsImhvbWVpcC5uZXQiLCJob21lbGludXgubmV0IiwiaG9tZXVuaXgubmV0IiwiaW4tdGhlLWJhbmQubmV0IiwiaXMtYS1jaGVmLm5ldCIsImlzLWEtZ2Vlay5uZXQiLCJpc2EtZ2Vlay5uZXQiLCJraWNrcy1hc3MubmV0Iiwib2ZmaWNl'@; put 'LW9uLXRoZS5uZXQiLCJwb2R6b25lLm5ldCIsInNjcmFwcGVyLXNpdGUubmV0Iiwic2VsZmlwLm5ldCIsInNlbGxzLWl0Lm5ldCIsInNlcnZlYmJzLm5ldCIsInNlcnZlZnRwLm5ldCIsInRocnVoZXJlLm5ldCIsIndlYmhvcC5uZXQiLCJtZXJzZWluZS5udSIsIm1pbmUubnUiLCJzaGFja25l'@; put 'dC5udSIsImJsb2dkbnMub3JnIiwiYmxvZ3NpdGUub3JnIiwiYm9sZGx5Z29pbmdub3doZXJlLm9yZyIsImRuc2FsaWFzLm9yZyIsImRuc2Rvam8ub3JnIiwiZG9lc250ZXhpc3Qub3JnIiwiZG9udGV4aXN0Lm9yZyIsImRvb21kbnMub3JnIiwiZHZyZG5zLm9yZyIsImR5bmFsaWFzLm9yZyIs'@; put 'ImR5bmRucy5vcmciLCJnby5keW5kbnMub3JnIiwiaG9tZS5keW5kbnMub3JnIiwiZW5kb2ZpbnRlcm5ldC5vcmciLCJlbmRvZnRoZWludGVybmV0Lm9yZyIsImZyb20tbWUub3JnIiwiZ2FtZS1ob3N0Lm9yZyIsImdvdGRucy5vcmciLCJob2JieS1zaXRlLm9yZyIsImhvbWVkbnMub3JnIiwi'@; put 'aG9tZWZ0cC5vcmciLCJob21lbGludXgub3JnIiwiaG9tZXVuaXgub3JnIiwiaXMtYS1icnVpbnNmYW4ub3JnIiwiaXMtYS1jYW5kaWRhdGUub3JnIiwiaXMtYS1jZWx0aWNzZmFuLm9yZyIsImlzLWEtY2hlZi5vcmciLCJpcy1hLWdlZWsub3JnIiwiaXMtYS1rbmlnaHQub3JnIiwiaXMtYS1s'@; put 'aW51eC11c2VyLm9yZyIsImlzLWEtcGF0c2Zhbi5vcmciLCJpcy1hLXNveGZhbi5vcmciLCJpcy1mb3VuZC5vcmciLCJpcy1sb3N0Lm9yZyIsImlzLXNhdmVkLm9yZyIsImlzLXZlcnktYmFkLm9yZyIsImlzLXZlcnktZXZpbC5vcmciLCJpcy12ZXJ5LWdvb2Qub3JnIiwiaXMtdmVyeS1uaWNl'@; put 'Lm9yZyIsImlzLXZlcnktc3dlZXQub3JnIiwiaXNhLWdlZWsub3JnIiwia2lja3MtYXNzLm9yZyIsIm1pc2NvbmZ1c2VkLm9yZyIsInBvZHpvbmUub3JnIiwicmVhZG15YmxvZy5vcmciLCJzZWxmaXAub3JnIiwic2VsbHN5b3VyaG9tZS5vcmciLCJzZXJ2ZWJicy5vcmciLCJzZXJ2ZWZ0cC5v'@; put 'cmciLCJzZXJ2ZWdhbWUub3JnIiwic3R1ZmYtNC1zYWxlLm9yZyIsIndlYmhvcC5vcmciLCJiZXR0ZXItdGhhbi50diIsImR5bmRucy50diIsIm9uLXRoZS13ZWIudHYiLCJ3b3JzZS10aGFuLnR2IiwiaXMtYnkudXMiLCJsYW5kLTQtc2FsZS51cyIsInN0dWZmLTQtc2FsZS51cyIsImR5bmRu'@; put 'cy53cyIsIm15cGV0cy53cyIsImRkbnNmcmVlLmNvbSIsImRkbnNnZWVrLmNvbSIsImdpaXplLmNvbSIsImdsZWV6ZS5jb20iLCJrb3pvdy5jb20iLCJsb3NleW91cmlwLmNvbSIsIm9vZ3V5LmNvbSIsInRoZXdvcmtwYy5jb20iLCJjYXNhY2FtLm5ldCIsImR5bnUubmV0IiwiYWNjZXNzY2Ft'@; put 'Lm9yZyIsImNhbWR2ci5vcmciLCJmcmVlZGRucy5vcmciLCJteXdpcmUub3JnIiwid2VicmVkaXJlY3Qub3JnIiwibXlkZG5zLnJvY2tzIiwiZHludjYubmV0IiwiZTQuY3oiLCJlYXN5cGFuZWwuYXBwIiwiZWFzeXBhbmVsLmhvc3QiLCIqLmV3cC5saXZlIiwidHdtYWlsLmNjIiwidHdtYWls'@; put 'Lm5ldCIsInR3bWFpbC5vcmciLCJteW1haWxlci5jb20udHciLCJ1cmwudHciLCJhdC5lbWYuY2FtcCIsInJ0Lmh0IiwiZWxlbWVudG9yLmNsb3VkIiwiZWxlbWVudG9yLmNvb2wiLCJlbi1yb290LmZyIiwibXl0dWxlYXAuY29tIiwidHVsZWFwLXBhcnRuZXJzLmNvbSIsImVuY3IuYXBwIiwi'@; put 'ZW5jb3JlYXBpLmNvbSIsImV1LmVuY293YXkuY2xvdWQiLCJldS5vcmciLCJhbC5ldS5vcmciLCJhc3NvLmV1Lm9yZyIsImF0LmV1Lm9yZyIsImF1LmV1Lm9yZyIsImJlLmV1Lm9yZyIsImJnLmV1Lm9yZyIsImNhLmV1Lm9yZyIsImNkLmV1Lm9yZyIsImNoLmV1Lm9yZyIsImNuLmV1Lm9yZyIs'@; put 'ImN5LmV1Lm9yZyIsImN6LmV1Lm9yZyIsImRlLmV1Lm9yZyIsImRrLmV1Lm9yZyIsImVkdS5ldS5vcmciLCJlZS5ldS5vcmciLCJlcy5ldS5vcmciLCJmaS5ldS5vcmciLCJmci5ldS5vcmciLCJnci5ldS5vcmciLCJoci5ldS5vcmciLCJodS5ldS5vcmciLCJpZS5ldS5vcmciLCJpbC5ldS5v'@; put 'cmciLCJpbi5ldS5vcmciLCJpbnQuZXUub3JnIiwiaXMuZXUub3JnIiwiaXQuZXUub3JnIiwianAuZXUub3JnIiwia3IuZXUub3JnIiwibHQuZXUub3JnIiwibHUuZXUub3JnIiwibHYuZXUub3JnIiwibWUuZXUub3JnIiwibWsuZXUub3JnIiwibXQuZXUub3JnIiwibXkuZXUub3JnIiwibmV0'@; put 'LmV1Lm9yZyIsIm5nLmV1Lm9yZyIsIm5sLmV1Lm9yZyIsIm5vLmV1Lm9yZyIsIm56LmV1Lm9yZyIsInBsLmV1Lm9yZyIsInB0LmV1Lm9yZyIsInJvLmV1Lm9yZyIsInJ1LmV1Lm9yZyIsInNlLmV1Lm9yZyIsInNpLmV1Lm9yZyIsInNrLmV1Lm9yZyIsInRyLmV1Lm9yZyIsInVrLmV1Lm9yZyIs'@; put 'InVzLmV1Lm9yZyIsImV1cm9kaXIucnUiLCJldS0xLmV2ZW5ub2RlLmNvbSIsImV1LTIuZXZlbm5vZGUuY29tIiwiZXUtMy5ldmVubm9kZS5jb20iLCJldS00LmV2ZW5ub2RlLmNvbSIsInVzLTEuZXZlbm5vZGUuY29tIiwidXMtMi5ldmVubm9kZS5jb20iLCJ1cy0zLmV2ZW5ub2RlLmNvbSIs'@; put 'InVzLTQuZXZlbm5vZGUuY29tIiwicmVsYXkuZXZlcnZhdWx0LmFwcCIsInJlbGF5LmV2ZXJ2YXVsdC5kZXYiLCJleHBvLmFwcCIsInN0YWdpbmcuZXhwby5hcHAiLCJvbmZhYnJpY2EuY29tIiwicnUubmV0IiwiYWR5Z2V5YS5ydSIsImJhc2hraXJpYS5ydSIsImJpci5ydSIsImNiZy5ydSIs'@; put 'ImNvbS5ydSIsImRhZ2VzdGFuLnJ1IiwiZ3Jvem55LnJ1Iiwia2FsbXlraWEucnUiLCJrdXN0YW5haS5ydSIsIm1hcmluZS5ydSIsIm1vcmRvdmlhLnJ1IiwibXNrLnJ1IiwibXl0aXMucnUiLCJuYWxjaGlrLnJ1Iiwibm92LnJ1IiwicHlhdGlnb3Jzay5ydSIsInNwYi5ydSIsInZsYWRpa2F2'@; put 'a2F6LnJ1IiwidmxhZGltaXIucnUiLCJhYmtoYXppYS5zdSIsImFkeWdleWEuc3UiLCJha3R5dWJpbnNrLnN1IiwiYXJraGFuZ2Vsc2suc3UiLCJhcm1lbmlhLnN1IiwiYXNoZ2FiYWQuc3UiLCJhemVyYmFpamFuLnN1IiwiYmFsYXNob3Yuc3UiLCJiYXNoa2lyaWEuc3UiLCJicnlhbnNrLnN1'@; put 'IiwiYnVraGFyYS5zdSIsImNoaW1rZW50LnN1IiwiZGFnZXN0YW4uc3UiLCJlYXN0LWthemFraHN0YW4uc3UiLCJleG5ldC5zdSIsImdlb3JnaWEuc3UiLCJncm96bnkuc3UiLCJpdmFub3ZvLnN1IiwiamFtYnlsLnN1Iiwia2FsbXlraWEuc3UiLCJrYWx1Z2Euc3UiLCJrYXJhY29sLnN1Iiwi'@; put 'a2FyYWdhbmRhLnN1Iiwia2FyZWxpYS5zdSIsImtoYWthc3NpYS5zdSIsImtyYXNub2Rhci5zdSIsImt1cmdhbi5zdSIsImt1c3RhbmFpLnN1IiwibGVudWcuc3UiLCJtYW5neXNobGFrLnN1IiwibW9yZG92aWEuc3UiLCJtc2suc3UiLCJtdXJtYW5zay5zdSIsIm5hbGNoaWsuc3UiLCJuYXZv'@; put 'aS5zdSIsIm5vcnRoLWthemFraHN0YW4uc3UiLCJub3Yuc3UiLCJvYm5pbnNrLnN1IiwicGVuemEuc3UiLCJwb2tyb3Zzay5zdSIsInNvY2hpLnN1Iiwic3BiLnN1IiwidGFzaGtlbnQuc3UiLCJ0ZXJtZXouc3UiLCJ0b2dsaWF0dGkuc3UiLCJ0cm9pdHNrLnN1IiwidHNlbGlub2dyYWQuc3Ui'@; put 'LCJ0dWxhLnN1IiwidHV2YS5zdSIsInZsYWRpa2F2a2F6LnN1IiwidmxhZGltaXIuc3UiLCJ2b2xvZ2RhLnN1IiwiY2hhbm5lbHNkdnIubmV0IiwidS5jaGFubmVsc2R2ci5uZXQiLCJlZGdlY29tcHV0ZS5hcHAiLCJmYXN0bHktZWRnZS5jb20iLCJmYXN0bHktdGVycmFyaXVtLmNvbSIsImZy'@; put 'ZWV0bHMuZmFzdGx5Lm5ldCIsIm1hcC5mYXN0bHkubmV0IiwiYS5wcm9kLmZhc3RseS5uZXQiLCJnbG9iYWwucHJvZC5mYXN0bHkubmV0IiwiYS5zc2wuZmFzdGx5Lm5ldCIsImIuc3NsLmZhc3RseS5uZXQiLCJnbG9iYWwuc3NsLmZhc3RseS5uZXQiLCJmYXN0bHlsYi5uZXQiLCJtYXAuZmFz'@; put 'dGx5bGIubmV0IiwiKi51c2VyLmZtIiwiZmFzdHZwcy1zZXJ2ZXIuY29tIiwiZmFzdHZwcy5ob3N0IiwibXlmYXN0Lmhvc3QiLCJmYXN0dnBzLnNpdGUiLCJteWZhc3Quc3BhY2UiLCJjb25uLnVrIiwiY29wcm8udWsiLCJob3NwLnVrIiwiZmVkb3JhaW5mcmFjbG91ZC5vcmciLCJmZWRvcmFw'@; put 'ZW9wbGUub3JnIiwiY2xvdWQuZmVkb3JhcHJvamVjdC5vcmciLCJhcHAub3MuZmVkb3JhcHJvamVjdC5vcmciLCJhcHAub3Muc3RnLmZlZG9yYXByb2plY3Qub3JnIiwibXlkb2Jpc3MuY29tIiwiZmgtbXVlbnN0ZXIuaW8iLCJmaWxlZ2Vhci5tZSIsImZpcmViYXNlYXBwLmNvbSIsImZsZHJ2'@; put 'LmNvbSIsImZsdXR0ZXJmbG93LmFwcCIsImZseS5kZXYiLCJzaHcuaW8iLCJlZGdlYXBwLm5ldCIsImZvcmdlYmxvY2tzLmNvbSIsImlkLmZvcmdlcm9jay5pbyIsImZyYW1lci5haSIsImZyYW1lci5hcHAiLCJmcmFtZXJjYW52YXMuY29tIiwiZnJhbWVyLm1lZGlhIiwiZnJhbWVyLnBob3Rv'@; put 'cyIsImZyYW1lci53ZWJzaXRlIiwiZnJhbWVyLndpa2kiLCIwZS52YyIsImZyZWVib3gtb3MuY29tIiwiZnJlZWJveG9zLmNvbSIsImZieC1vcy5mciIsImZieG9zLmZyIiwiZnJlZWJveC1vcy5mciIsImZyZWVib3hvcy5mciIsImZyZWVkZXNrdG9wLm9yZyIsImZyZWVteWlwLmNvbSIsIiou'@; put 'ZnJ1c2t5LmRlIiwid2llbi5mdW5rZmV1ZXIuYXQiLCJkYWVtb24uYXNpYSIsImRpeC5hc2lhIiwibXlkbnMuYnoiLCIwYW0uanAiLCIwZzAuanAiLCIwajAuanAiLCIwdDAuanAiLCJteWRucy5qcCIsInBndy5qcCIsIndqZy5qcCIsImtleXdvcmQtb24ubmV0IiwibGl2ZS1vbi5uZXQiLCJz'@; put 'ZXJ2ZXItb24ubmV0IiwibXlkbnMudHciLCJteWRucy52YyIsIiouZnV0dXJlY21zLmF0IiwiKi5leC5mdXR1cmVjbXMuYXQiLCIqLmluLmZ1dHVyZWNtcy5hdCIsImZ1dHVyZWhvc3RpbmcuYXQiLCJmdXR1cmVtYWlsaW5nLmF0IiwiKi5leC5vcnRzaW5mby5hdCIsIioua3VuZGVuLm9ydHNp'@; put 'bmZvLmF0IiwiKi5zdGF0aWNzLmNsb3VkIiwiYWxpYXNlczEyMS5jb20iLCJjYW1wYWlnbi5nb3YudWsiLCJzZXJ2aWNlLmdvdi51ayIsImluZGVwZW5kZW50LWNvbW1pc3Npb24udWsiLCJpbmRlcGVuZGVudC1pbnF1ZXN0LnVrIiwiaW5kZXBlbmRlbnQtaW5xdWlyeS51ayIsImluZGVwZW5k'@; put 'ZW50LXBhbmVsLnVrIiwiaW5kZXBlbmRlbnQtcmV2aWV3LnVrIiwicHVibGljLWlucXVpcnkudWsiLCJyb3lhbC1jb21taXNzaW9uLnVrIiwiZ2VoaXJuLm5lLmpwIiwidXNlcmNvbnRlbnQuanAiLCJnZW50YXBwcy5jb20iLCJnZW50bGVudGFwaXMuY29tIiwibGFiLm1zIiwiY2RuLWVkZ2Vz'@; put 'Lm5ldCIsImxvY2FsY2VydC5uZXQiLCJsb2NhbGhvc3RjZXJ0Lm5ldCIsImdzai5ieiIsImdpdGh1YnVzZXJjb250ZW50LmNvbSIsImdpdGh1YnByZXZpZXcuZGV2IiwiZ2l0aHViLmlvIiwiZ2l0bGFiLmlvIiwiZ2l0YXBwLnNpIiwiZ2l0cGFnZS5zaSIsImdsaXRjaC5tZSIsIm5vZy5jb21t'@; put 'dW5pdHkiLCJjby5ybyIsInNob3Aucm8iLCJsb2xpcG9wLmlvIiwiYW5ncnkuanAiLCJiYWJ5Ymx1ZS5qcCIsImJhYnltaWxrLmpwIiwiYmFja2Ryb3AuanAiLCJiYW1iaW5hLmpwIiwiYml0dGVyLmpwIiwiYmx1c2guanAiLCJib28uanAiLCJib3kuanAiLCJib3lmcmllbmQuanAiLCJidXQu'@; put 'anAiLCJjYW5keXBvcC5qcCIsImNhcG9vLmpwIiwiY2F0Zm9vZC5qcCIsImNoZWFwLmpwIiwiY2hpY2FwcGEuanAiLCJjaGlsbG91dC5qcCIsImNoaXBzLmpwIiwiY2hvd2Rlci5qcCIsImNodS5qcCIsImNpYW8uanAiLCJjb2NvdHRlLmpwIiwiY29vbGJsb2cuanAiLCJjcmFua3kuanAiLCJj'@; put 'dXRlZ2lybC5qcCIsImRhYS5qcCIsImRlY2EuanAiLCJkZWNpLmpwIiwiZGlnaWNrLmpwIiwiZWdvaXNtLmpwIiwiZmFrZWZ1ci5qcCIsImZlbS5qcCIsImZsaWVyLmpwIiwiZmxvcHB5LmpwIiwiZm9vbC5qcCIsImZyZW5jaGtpc3MuanAiLCJnaXJsZnJpZW5kLmpwIiwiZ2lybHkuanAiLCJn'@; put 'bG9vbXkuanAiLCJnb25uYS5qcCIsImdyZWF0ZXIuanAiLCJoYWNjYS5qcCIsImhlYXZ5LmpwIiwiaGVyLmpwIiwiaGloby5qcCIsImhpcHB5LmpwIiwiaG9seS5qcCIsImh1bmdyeS5qcCIsImljdXJ1cy5qcCIsIml0aWdvLmpwIiwiamVsbHliZWFuLmpwIiwia2lraXJhcmEuanAiLCJraWxs'@; put 'LmpwIiwia2lsby5qcCIsImt1cm9uLmpwIiwibGl0dGxlc3Rhci5qcCIsImxvbGlwb3BtYy5qcCIsImxvbGl0YXB1bmsuanAiLCJsb21vLmpwIiwibG92ZXBvcC5qcCIsImxvdmVzaWNrLmpwIiwibWFpbi5qcCIsIm1vZHMuanAiLCJtb25kLmpwIiwibW9uZ29saWFuLmpwIiwibW9vLmpwIiwi'@; put 'bmFtYXN0ZS5qcCIsIm5pa2l0YS5qcCIsIm5vYnVzaGkuanAiLCJub29yLmpwIiwib29wcy5qcCIsInBhcmFsbGVsLmpwIiwicGFyYXNpdGUuanAiLCJwZWNvcmkuanAiLCJwZWV3ZWUuanAiLCJwZW5uZS5qcCIsInBlcHBlci5qcCIsInBlcm1hLmpwIiwicGlnYm9hdC5qcCIsInBpbm9rby5q'@; put 'cCIsInB1bnl1LmpwIiwicHVwdS5qcCIsInB1c3N5Y2F0LmpwIiwicHlhLmpwIiwicmFpbmRyb3AuanAiLCJyZWFkeW1hZGUuanAiLCJzYWRpc3QuanAiLCJzY2hvb2xidXMuanAiLCJzZWNyZXQuanAiLCJzdGFiYS5qcCIsInN0cmlwcGVyLmpwIiwic3ViLmpwIiwic3VubnlkYXkuanAiLCJ0'@; put 'aGljay5qcCIsInRvbmtvdHN1LmpwIiwidW5kZXIuanAiLCJ1cHBlci5qcCIsInZlbHZldC5qcCIsInZlcnNlLmpwIiwidmVyc3VzLmpwIiwidml2aWFuLmpwIiwid2F0c29uLmpwIiwid2VibGlrZS5qcCIsIndoaXRlc25vdy5qcCIsInpvbWJpZS5qcCIsImhldGVtbC5uZXQiLCJncmFwaGlj'@; put 'LmRlc2lnbiIsImdvaXAuZGUiLCJibG9nc3BvdC5hZSIsImJsb2dzcG90LmFsIiwiYmxvZ3Nwb3QuYW0iLCIqLmhvc3RlZC5hcHAiLCIqLnJ1bi5hcHAiLCJ3ZWIuYXBwIiwiYmxvZ3Nwb3QuY29tLmFyIiwiYmxvZ3Nwb3QuY28uYXQiLCJibG9nc3BvdC5jb20uYXUiLCJibG9nc3BvdC5iYSIs'@; put 'ImJsb2dzcG90LmJlIiwiYmxvZ3Nwb3QuYmciLCJibG9nc3BvdC5iaiIsImJsb2dzcG90LmNvbS5iciIsImJsb2dzcG90LmNvbS5ieSIsImJsb2dzcG90LmNhIiwiYmxvZ3Nwb3QuY2YiLCJibG9nc3BvdC5jaCIsImJsb2dzcG90LmNsIiwiYmxvZ3Nwb3QuY29tLmNvIiwiKi4wZW1tLmNvbSIs'@; put 'ImFwcHNwb3QuY29tIiwiKi5yLmFwcHNwb3QuY29tIiwiYmxvZ3Nwb3QuY29tIiwiY29kZXNwb3QuY29tIiwiZ29vZ2xlYXBpcy5jb20iLCJnb29nbGVjb2RlLmNvbSIsInBhZ2VzcGVlZG1vYmlsaXplci5jb20iLCJ3aXRoZ29vZ2xlLmNvbSIsIndpdGh5b3V0dWJlLmNvbSIsImJsb2dzcG90'@; put 'LmN2IiwiYmxvZ3Nwb3QuY29tLmN5IiwiYmxvZ3Nwb3QuY3oiLCJibG9nc3BvdC5kZSIsIiouZ2F0ZXdheS5kZXYiLCJibG9nc3BvdC5kayIsImJsb2dzcG90LmNvbS5lZSIsImJsb2dzcG90LmNvbS5lZyIsImJsb2dzcG90LmNvbS5lcyIsImJsb2dzcG90LmZpIiwiYmxvZ3Nwb3QuZnIiLCJj'@; put 'bG91ZC5nb29nIiwidHJhbnNsYXRlLmdvb2ciLCIqLnVzZXJjb250ZW50Lmdvb2ciLCJibG9nc3BvdC5nciIsImJsb2dzcG90LmhrIiwiYmxvZ3Nwb3QuaHIiLCJibG9nc3BvdC5odSIsImJsb2dzcG90LmNvLmlkIiwiYmxvZ3Nwb3QuaWUiLCJibG9nc3BvdC5jby5pbCIsImJsb2dzcG90Lmlu'@; put 'IiwiYmxvZ3Nwb3QuaXMiLCJibG9nc3BvdC5pdCIsImJsb2dzcG90LmpwIiwiYmxvZ3Nwb3QuY28ua2UiLCJibG9nc3BvdC5rciIsImJsb2dzcG90LmxpIiwiYmxvZ3Nwb3QubHQiLCJibG9nc3BvdC5sdSIsImJsb2dzcG90Lm1kIiwiYmxvZ3Nwb3QubWsiLCJibG9nc3BvdC5jb20ubXQiLCJi'@; put 'bG9nc3BvdC5teCIsImJsb2dzcG90Lm15IiwiY2xvdWRmdW5jdGlvbnMubmV0IiwiYmxvZ3Nwb3QuY29tLm5nIiwiYmxvZ3Nwb3QubmwiLCJibG9nc3BvdC5ubyIsImJsb2dzcG90LmNvLm56IiwiYmxvZ3Nwb3QucGUiLCJibG9nc3BvdC5wdCIsImJsb2dzcG90LnFhIiwiYmxvZ3Nwb3QucmUi'@; put 'LCJibG9nc3BvdC5ybyIsImJsb2dzcG90LnJzIiwiYmxvZ3Nwb3QucnUiLCJibG9nc3BvdC5zZSIsImJsb2dzcG90LnNnIiwiYmxvZ3Nwb3Quc2kiLCJibG9nc3BvdC5zayIsImJsb2dzcG90LnNuIiwiYmxvZ3Nwb3QudGQiLCJibG9nc3BvdC5jb20udHIiLCJibG9nc3BvdC50dyIsImJsb2dz'@; put 'cG90LnVnIiwiYmxvZ3Nwb3QuY28udWsiLCJibG9nc3BvdC5jb20udXkiLCJibG9nc3BvdC52biIsImJsb2dzcG90LmNvLnphIiwiZ291cGlsZS5mciIsInB5bW50LnVrIiwiY2xvdWRhcHBzLmRpZ2l0YWwiLCJsb25kb24uY2xvdWRhcHBzLmRpZ2l0YWwiLCJnb3YubmwiLCJncmFmYW5hLWRl'@; put 'di5uZXQiLCJncmF5amF5bGVhZ3Vlcy5jb20iLCJnXHhmY25zdGlnYmVzdGVsbGVuLmRlIiwiZ1x4ZmNuc3RpZ2xpZWZlcm4uZGUiLCJmaW4uY2kiLCJmcmVlLmhyIiwiY2FhLmxpIiwidWEucnMiLCJjb25mLnNlIiwiaFx4ZTRra2luZW4uZmkiLCJocnNuLmRldiIsImhhc2hiYW5nLnNoIiwi'@; put 'aGFzdXJhLmFwcCIsImhhc3VyYS1hcHAuaW8iLCJoYXRlbmFibG9nLmNvbSIsImhhdGVuYWRpYXJ5LmNvbSIsImhhdGVibG8uanAiLCJoYXRlbmFibG9nLmpwIiwiaGF0ZW5hZGlhcnkuanAiLCJoYXRlbmFkaWFyeS5vcmciLCJwYWdlcy5pdC5ocy1oZWlsYnJvbm4uZGUiLCJwYWdlcy1yZXNl'@; put 'YXJjaC5pdC5ocy1oZWlsYnJvbm4uZGUiLCJoZWl5dS5zcGFjZSIsImhlbGlvaG8uc3QiLCJoZWxpb2hvc3QudXMiLCJoZXBmb3JnZS5vcmciLCJoZXJva3VhcHAuY29tIiwiaGVyb2t1c3NsLmNvbSIsImhleWZsb3cucGFnZSIsImhleWZsb3cuc2l0ZSIsInJhdmVuZGIuY2xvdWQiLCJyYXZl'@; put 'bmRiLmNvbW11bml0eSIsImRldmVsb3BtZW50LnJ1biIsInJhdmVuZGIucnVuIiwiaG9tZXNrbGVwLnBsIiwiKi5raW4ub25lIiwiKi5pZC5wdWIiLCIqLmtpbi5wdWIiLCJzZWNhYXMuaGsiLCJob3BsaXguc2hvcCIsIm9yeC5iaXoiLCJiaXouZ2wiLCJiaXoubmciLCJjby5iaXoubmciLCJk'@; put 'bC5iaXoubmciLCJnby5iaXoubmciLCJsZy5iaXoubmciLCJvbi5iaXoubmciLCJjb2wubmciLCJmaXJtLm5nIiwiZ2VuLm5nIiwibHRkLm5nIiwibmdvLm5nIiwicGxjLm5nIiwiaWUudWEiLCJob3N0eWhvc3RpbmcuaW8iLCJoZi5zcGFjZSIsInN0YXRpYy5oZi5zcGFjZSIsImh5cGVybm9k'@; put 'ZS5pbyIsImlvYmIubmV0IiwiY28uY3oiLCIqLm1vb25zY2FsZS5pbyIsIm1vb25zY2FsZS5uZXQiLCJnci5jb20iLCJpa2kuZmkiLCJpYnhvcy5pdCIsImlsaWFkYm94b3MuaXQiLCJzbXVzaGNkbi5jb20iLCJ3cGhvc3RlZG1haWwuY29tIiwid3BtdWNkbi5jb20iLCJ0ZW1wdXJsLmhvc3Qi'@; put 'LCJ3cG11ZGV2Lmhvc3QiLCJkeW4tYmVybGluLmRlIiwiaW4tYmVybGluLmRlIiwiaW4tYnJiLmRlIiwiaW4tYnV0dGVyLmRlIiwiaW4tZHNsLmRlIiwiaW4tdnBuLmRlIiwiaW4tZHNsLm5ldCIsImluLXZwbi5uZXQiLCJpbi1kc2wub3JnIiwiaW4tdnBuLm9yZyIsImJpei5hdCIsImluZm8u'@; put 'YXQiLCJpbmZvLmN4IiwiYWMubGVnLmJyIiwiYWwubGVnLmJyIiwiYW0ubGVnLmJyIiwiYXAubGVnLmJyIiwiYmEubGVnLmJyIiwiY2UubGVnLmJyIiwiZGYubGVnLmJyIiwiZXMubGVnLmJyIiwiZ28ubGVnLmJyIiwibWEubGVnLmJyIiwibWcubGVnLmJyIiwibXMubGVnLmJyIiwibXQubGVn'@; put 'LmJyIiwicGEubGVnLmJyIiwicGIubGVnLmJyIiwicGUubGVnLmJyIiwicGkubGVnLmJyIiwicHIubGVnLmJyIiwicmoubGVnLmJyIiwicm4ubGVnLmJyIiwicm8ubGVnLmJyIiwicnIubGVnLmJyIiwicnMubGVnLmJyIiwic2MubGVnLmJyIiwic2UubGVnLmJyIiwic3AubGVnLmJyIiwidG8u'@; put 'bGVnLmJyIiwicGl4b2xpbm8uY29tIiwibmE0dS5ydSIsImFwcHMtMWFuZDEuY29tIiwibGl2ZS13ZWJzaXRlLmNvbSIsImFwcHMtMWFuZDEubmV0Iiwid2Vic2l0ZWJ1aWxkZXIub25saW5lIiwiYXBwLWlvbm9zLnNwYWNlIiwiaW9wc3lzLnNlIiwiKi5kd2ViLmxpbmsiLCJpcGlmb255Lm5l'@; put 'dCIsImlyLm1kIiwiaXMtYS1nb29kLmRldiIsImlzLWEuZGV2IiwiaXNlcnZzY2h1bGUuZGUiLCJtZWluLWlzZXJ2LmRlIiwic2NodWxwbGF0dGZvcm0uZGUiLCJzY2h1bHNlcnZlci5kZSIsInRlc3QtaXNlcnYuZGUiLCJpc2Vydi5kZXYiLCJtZWwuY2xvdWRsZXRzLmNvbS5hdSIsImNsb3Vk'@; put 'LmludGVyaG9zdHNvbHV0aW9ucy5iZSIsImFscDEuYWUuZmxvdy5jaCIsImFwcGVuZ2luZS5mbG93LmNoIiwiZXMtMS5heGFybmV0LmNsb3VkIiwiZGlhZGVtLmNsb3VkIiwidmlwLmplbGFzdGljLmNsb3VkIiwiamVsZS5jbG91ZCIsIml0MS5ldXIuYXJ1YmEuamVudi1hcnViYS5jbG91ZCIs'@; put 'Iml0MS5qZW52LWFydWJhLmNsb3VkIiwia2VsaXdlYi5jbG91ZCIsImNzLmtlbGl3ZWIuY2xvdWQiLCJveGEuY2xvdWQiLCJ0bi5veGEuY2xvdWQiLCJ1ay5veGEuY2xvdWQiLCJwcmltZXRlbC5jbG91ZCIsInVrLnByaW1ldGVsLmNsb3VkIiwiY2EucmVjbGFpbS5jbG91ZCIsInVrLnJlY2xh'@; put 'aW0uY2xvdWQiLCJ1cy5yZWNsYWltLmNsb3VkIiwiY2gudHJlbmRob3N0aW5nLmNsb3VkIiwiZGUudHJlbmRob3N0aW5nLmNsb3VkIiwiamVsZS5jbHViIiwiZG9wYWFzLmNvbSIsInBhYXMuaG9zdGVkLWJ5LXByZXZpZGVyLmNvbSIsInJhZy1jbG91ZC5ob3N0ZXVyLmNvbSIsInJhZy1jbG91'@; put 'ZC1jaC5ob3N0ZXVyLmNvbSIsImpjbG91ZC5pay1zZXJ2ZXIuY29tIiwiamNsb3VkLXZlci1qcGMuaWstc2VydmVyLmNvbSIsImRlbW8uamVsYXN0aWMuY29tIiwicGFhcy5tYXNzaXZlZ3JpZC5jb20iLCJqZWQud2FmYWljbG91ZC5jb20iLCJyeWQud2FmYWljbG91ZC5jb20iLCJqLnNjYWxl'@; put 'Zm9yY2UuY29tLmN5IiwiamVsYXN0aWMuZG9nYWRvLmV1IiwiZmkuY2xvdWRwbGF0Zm9ybS5maSIsImRlbW8uZGF0YWNlbnRlci5maSIsInBhYXMuZGF0YWNlbnRlci5maSIsImplbGUuaG9zdCIsIm1pcmNsb3VkLmhvc3QiLCJwYWFzLmJlZWJ5dGUuaW8iLCJzZWtkMS5iZWVieXRlYXBwLmlv'@; put 'IiwiamVsZS5pbyIsImpjLm5lZW4uaXQiLCJqY2xvdWQua3oiLCJjbG91ZGppZmZ5Lm5ldCIsImZyYTEtZGUuY2xvdWRqaWZmeS5uZXQiLCJ3ZXN0MS11cy5jbG91ZGppZmZ5Lm5ldCIsImpscy1zdG8xLmVsYXN0eC5uZXQiLCJqbHMtc3RvMi5lbGFzdHgubmV0IiwiamxzLXN0bzMuZWxhc3R4'@; put 'Lm5ldCIsImZyLTEucGFhcy5tYXNzaXZlZ3JpZC5uZXQiLCJsb24tMS5wYWFzLm1hc3NpdmVncmlkLm5ldCIsImxvbi0yLnBhYXMubWFzc2l2ZWdyaWQubmV0IiwibnktMS5wYWFzLm1hc3NpdmVncmlkLm5ldCIsIm55LTIucGFhcy5tYXNzaXZlZ3JpZC5uZXQiLCJzZy0xLnBhYXMubWFzc2l2'@; put 'ZWdyaWQubmV0IiwiamVsYXN0aWMuc2F2ZWluY2xvdWQubmV0Iiwibm9yZGVzdGUtaWRjLnNhdmVpbmNsb3VkLm5ldCIsImouc2NhbGVmb3JjZS5uZXQiLCJzZHNjbG91ZC5wbCIsInVuaWNsb3VkLnBsIiwibWlyY2xvdWQucnUiLCJlbnNjYWxlZC5zZyIsImplbGUuc2l0ZSIsImplbGFzdGlj'@; put 'LnRlYW0iLCJvcmFuZ2VjbG91ZC50biIsImoubGF5ZXJzaGlmdC5jby51ayIsInBoeC5lbnNjYWxlZC51cyIsIm1pcmNsb3VkLnVzIiwibXlqaW5vLnJ1IiwiKi5ob3N0aW5nLm15amluby5ydSIsIioubGFuZGluZy5teWppbm8ucnUiLCIqLnNwZWN0cnVtLm15amluby5ydSIsIioudnBzLm15'@; put 'amluby5ydSIsImpvdGVsdWx1LmNsb3VkIiwid2ViYWRvcnNpdGUuY29tIiwiam91d3dlYi5zaXRlIiwiKi5jbnMuam95ZW50LmNvbSIsIioudHJpdG9uLnpvbmUiLCJqcy5vcmciLCJrYWFzLmdnIiwia2hwbGF5Lm5sIiwia2Fwc2kuZmkiLCJlenByb3h5Lmt1bGV1dmVuLmJlIiwia3VsZXV2'@; put 'ZW4uY2xvdWQiLCJrZXltYWNoaW5lLmRlIiwia2luZ2hvc3QubmV0IiwidW5pNS5uZXQiLCJrbmlnaHRwb2ludC5zeXN0ZW1zIiwia29vYmluLmV2ZW50cyIsIndlYnRoaW5ncy5pbyIsImtyZWxsaWFuLm5ldCIsIm95YS50byIsImdpdC1yZXBvcy5kZSIsImxjdWJlLXNlcnZlci5kZSIsInN2'@; put 'bi1yZXBvcy5kZSIsImxlYWRwYWdlcy5jbyIsImxwYWdlcy5jbyIsImxwdXNlcmNvbnRlbnQuY29tIiwibGVsdXguc2l0ZSIsImxpYnAycC5kaXJlY3QiLCJydW5jb250YWluZXJzLmRldiIsImNvLmJ1c2luZXNzIiwiY28uZWR1Y2F0aW9uIiwiY28uZXZlbnRzIiwiY28uZmluYW5jaWFsIiwi'@; put 'Y28ubmV0d29yayIsImNvLnBsYWNlIiwiY28udGVjaG5vbG9neSIsImxpbmt5YXJkLWNsb3VkLmNoIiwibGlua3lhcmQuY2xvdWQiLCJtZW1iZXJzLmxpbm9kZS5jb20iLCIqLm5vZGViYWxhbmNlci5saW5vZGUuY29tIiwiKi5saW5vZGVvYmplY3RzLmNvbSIsImlwLmxpbm9kZXVzZXJjb250'@; put 'ZW50LmNvbSIsIndlLmJzIiwiZmlsZWdlYXItc2cubWUiLCJnZ2ZmLm5ldCIsIioudXNlci5sb2NhbGNlcnQuZGV2IiwibG9kei5wbCIsInBhYmlhbmljZS5wbCIsInBsb2NrLnBsIiwic2llcmFkei5wbCIsInNraWVybmlld2ljZS5wbCIsInpnaWVyei5wbCIsImxvZ2lubGluZS5hcHAiLCJs'@; put 'b2dpbmxpbmUuZGV2IiwibG9naW5saW5lLmlvIiwibG9naW5saW5lLnNlcnZpY2VzIiwibG9naW5saW5lLnNpdGUiLCJsb2htdXMubWUiLCJzZXJ2ZXJzLnJ1biIsImtyYXNuaWsucGwiLCJsZWN6bmEucGwiLCJsdWJhcnRvdy5wbCIsImx1Ymxpbi5wbCIsInBvbmlhdG93YS5wbCIsInN3aWRu'@; put 'aWsucGwiLCJnbHVnLm9yZy51ayIsImx1Zy5vcmcudWsiLCJsdWdzLm9yZy51ayIsImJhcnN5LmJnIiwiYmFyc3kuY2x1YiIsImJhcnN5Y2VudGVyLmNvbSIsImJhcnN5b25saW5lLmNvbSIsImJhcnN5LmRlIiwiYmFyc3kuZGV2IiwiYmFyc3kuZXUiLCJiYXJzeS5nciIsImJhcnN5LmluIiwi'@; put 'YmFyc3kuaW5mbyIsImJhcnN5LmlvIiwiYmFyc3kubWUiLCJiYXJzeS5tZW51IiwiYmFyc3lvbmxpbmUubWVudSIsImJhcnN5Lm1vYmkiLCJiYXJzeS5uZXQiLCJiYXJzeS5vbmxpbmUiLCJiYXJzeS5vcmciLCJiYXJzeS5wcm8iLCJiYXJzeS5wdWIiLCJiYXJzeS5ybyIsImJhcnN5LnJzIiwi'@; put 'YmFyc3kuc2hvcCIsImJhcnN5b25saW5lLnNob3AiLCJiYXJzeS5zaXRlIiwiYmFyc3kuc3RvcmUiLCJiYXJzeS5zdXBwb3J0IiwiYmFyc3kudWsiLCJiYXJzeS5jby51ayIsImJhcnN5b25saW5lLmNvLnVrIiwiKi5tYWdlbnRvc2l0ZS5jbG91ZCIsImhiLmNsZG1haWwucnUiLCJtYXRsYWIu'@; put 'Y2xvdWQiLCJtb2RlbHNjYXBlLmNvbSIsIm13Y2xvdWRub25wcm9kLmNvbSIsInBvbHlzcGFjZS5jb20iLCJtYXlmaXJzdC5pbmZvIiwibWF5Zmlyc3Qub3JnIiwibWF6ZXBsYXkuY29tIiwibWNkaXIubWUiLCJtY2Rpci5ydSIsInZwcy5tY2Rpci5ydSIsIm1jcHJlLnJ1IiwibWVkaWF0ZWNo'@; put 'LmJ5IiwibWVkaWF0ZWNoLmRldiIsImhyYS5oZWFsdGgiLCJtZWR1c2Fqcy5hcHAiLCJtaW5pc2VydmVyLmNvbSIsIm1lbXNldC5uZXQiLCJtZXNzZXJsaS5hcHAiLCJhdG1ldGEuY29tIiwiYXBwcy5mYnNieC5jb20iLCIqLmNsb3VkLm1ldGFjZW50cnVtLmN6IiwiY3VzdG9tLm1ldGFjZW50'@; put 'cnVtLmN6IiwiZmx0LmNsb3VkLm11bmkuY3oiLCJ1c3IuY2xvdWQubXVuaS5jeiIsIm1ldGVvcmFwcC5jb20iLCJldS5tZXRlb3JhcHAuY29tIiwiY28ucGwiLCIqLmF6dXJlY29udGFpbmVyLmlvIiwiYXp1cmUtYXBpLm5ldCIsImF6dXJlLW1vYmlsZS5uZXQiLCJhenVyZWVkZ2UubmV0Iiwi'@; put 'YXp1cmVmZC5uZXQiLCJhenVyZXN0YXRpY2FwcHMubmV0IiwiMS5henVyZXN0YXRpY2FwcHMubmV0IiwiMi5henVyZXN0YXRpY2FwcHMubmV0IiwiMy5henVyZXN0YXRpY2FwcHMubmV0IiwiNC5henVyZXN0YXRpY2FwcHMubmV0IiwiNS5henVyZXN0YXRpY2FwcHMubmV0IiwiNi5henVyZXN0'@; put 'YXRpY2FwcHMubmV0IiwiNy5henVyZXN0YXRpY2FwcHMubmV0IiwiY2VudHJhbHVzLmF6dXJlc3RhdGljYXBwcy5uZXQiLCJlYXN0YXNpYS5henVyZXN0YXRpY2FwcHMubmV0IiwiZWFzdHVzMi5henVyZXN0YXRpY2FwcHMubmV0Iiwid2VzdGV1cm9wZS5henVyZXN0YXRpY2FwcHMubmV0Iiwi'@; put 'd2VzdHVzMi5henVyZXN0YXRpY2FwcHMubmV0IiwiYXp1cmV3ZWJzaXRlcy5uZXQiLCJjbG91ZGFwcC5uZXQiLCJ0cmFmZmljbWFuYWdlci5uZXQiLCJibG9iLmNvcmUud2luZG93cy5uZXQiLCJzZXJ2aWNlYnVzLndpbmRvd3MubmV0Iiwicm91dGluZ3RoZWNsb3VkLmNvbSIsInNuLm15bmV0'@; put 'bmFtZS5uZXQiLCJyb3V0aW5ndGhlY2xvdWQubmV0Iiwicm91dGluZ3RoZWNsb3VkLm9yZyIsImNzeC5jYyIsIm15ZGJzZXJ2ZXIuY29tIiwid2Vic3BhY2Vjb25maWcuZGUiLCJtaXR0d2FsZC5pbmZvIiwibWl0dHdhbGRzZXJ2ZXIuaW5mbyIsInR5cG8zc2VydmVyLmluZm8iLCJwcm9qZWN0'@; put 'LnNwYWNlIiwibW9keC5kZXYiLCJibW9hdHRhY2htZW50cy5vcmciLCJuZXQucnUiLCJvcmcucnUiLCJwcC5ydSIsImhvc3RlZHBpLmNvbSIsImNhcmFjYWwubXl0aGljLWJlYXN0cy5jb20iLCJjdXN0b21lci5teXRoaWMtYmVhc3RzLmNvbSIsImZlbnRpZ2VyLm15dGhpYy1iZWFzdHMuY29t'@; put 'IiwibHlueC5teXRoaWMtYmVhc3RzLmNvbSIsIm9jZWxvdC5teXRoaWMtYmVhc3RzLmNvbSIsIm9uY2lsbGEubXl0aGljLWJlYXN0cy5jb20iLCJvbnphLm15dGhpYy1iZWFzdHMuY29tIiwic3BoaW54Lm15dGhpYy1iZWFzdHMuY29tIiwidnMubXl0aGljLWJlYXN0cy5jb20iLCJ4Lm15dGhp'@; put 'Yy1iZWFzdHMuY29tIiwieWFsaS5teXRoaWMtYmVhc3RzLmNvbSIsImN1c3QucmV0cm9zbnViLmNvLnVrIiwidWkubmFidS5jYXNhIiwiY2xvdWQubm9zcGFtcHJveHkuY29tIiwibmV0ZnkuYXBwIiwibmV0bGlmeS5hcHAiLCI0dS5jb20iLCJuZnNob3N0LmNvbSIsImlwZnMubmZ0c3RvcmFn'@; put 'ZS5saW5rIiwibmdvLnVzIiwibmdyb2suYXBwIiwibmdyb2stZnJlZS5hcHAiLCJuZ3Jvay5kZXYiLCJuZ3Jvay1mcmVlLmRldiIsIm5ncm9rLmlvIiwiYXAubmdyb2suaW8iLCJhdS5uZ3Jvay5pbyIsImV1Lm5ncm9rLmlvIiwiaW4ubmdyb2suaW8iLCJqcC5uZ3Jvay5pbyIsInNhLm5ncm9r'@; put 'LmlvIiwidXMubmdyb2suaW8iLCJuZ3Jvay5waXp6YSIsIm5ncm9rLnBybyIsInRvcnVuLnBsIiwibmgtc2Vydi5jby51ayIsIm5pbXNpdGUudWsiLCJtbWFmYW4uYml6IiwibXlmdHAuYml6Iiwibm8taXAuYml6Iiwibm8taXAuY2EiLCJmYW50YXN5bGVhZ3VlLmNjIiwiZ290ZG5zLmNoIiwi'@; put 'M3V0aWxpdGllcy5jb20iLCJibG9nc3l0ZS5jb20iLCJjaXNjb2ZyZWFrLmNvbSIsImRhbW5zZXJ2ZXIuY29tIiwiZGRuc2tpbmcuY29tIiwiZGl0Y2h5b3VyaXAuY29tIiwiZG5zaXNraW5reS5jb20iLCJkeW5ucy5jb20iLCJnZWVrZ2FsYXh5LmNvbSIsImhlYWx0aC1jYXJlcmVmb3JtLmNv'@; put 'bSIsImhvbWVzZWN1cml0eW1hYy5jb20iLCJob21lc2VjdXJpdHlwYy5jb20iLCJteWFjdGl2ZWRpcmVjdG9yeS5jb20iLCJteXNlY3VyaXR5Y2FtZXJhLmNvbSIsIm15dm5jLmNvbSIsIm5ldC1mcmVha3MuY29tIiwib250aGV3aWZpLmNvbSIsInBvaW50MnRoaXMuY29tIiwicXVpY2tzeXRl'@; put 'cy5jb20iLCJzZWN1cml0eXRhY3RpY3MuY29tIiwic2VydmViZWVyLmNvbSIsInNlcnZlY291bnRlcnN0cmlrZS5jb20iLCJzZXJ2ZWV4Y2hhbmdlLmNvbSIsInNlcnZlZnRwLmNvbSIsInNlcnZlZ2FtZS5jb20iLCJzZXJ2ZWhhbGZsaWZlLmNvbSIsInNlcnZlaHR0cC5jb20iLCJzZXJ2ZWh1'@; put 'bW91ci5jb20iLCJzZXJ2ZWlyYy5jb20iLCJzZXJ2ZW1wMy5jb20iLCJzZXJ2ZXAycC5jb20iLCJzZXJ2ZXBpY3MuY29tIiwic2VydmVxdWFrZS5jb20iLCJzZXJ2ZXNhcmNhc20uY29tIiwic3R1ZmZ0b3JlYWQuY29tIiwidW51c3VhbHBlcnNvbi5jb20iLCJ3b3JraXNib3JpbmcuY29tIiwi'@; put 'ZHZyY2FtLmluZm8iLCJpbG92ZWNvbGxlZ2UuaW5mbyIsIm5vLWlwLmluZm8iLCJicmFzaWxpYS5tZSIsImRkbnMubWUiLCJkbnNmb3IubWUiLCJob3B0by5tZSIsImxvZ2ludG8ubWUiLCJub2lwLm1lIiwid2ViaG9wLm1lIiwiYm91bmNlbWUubmV0IiwiZGRucy5uZXQiLCJlYXRpbmctb3Jn'@; put 'YW5pYy5uZXQiLCJteWRpc3NlbnQubmV0IiwibXllZmZlY3QubmV0IiwibXltZWRpYXBjLm5ldCIsIm15cHN4Lm5ldCIsIm15c2VjdXJpdHljYW1lcmEubmV0IiwibmhsZmFuLm5ldCIsIm5vLWlwLm5ldCIsInBnYWZhbi5uZXQiLCJwcml2YXRpemVoZWFsdGhpbnN1cmFuY2UubmV0IiwicmVk'@; put 'aXJlY3RtZS5uZXQiLCJzZXJ2ZWJsb2cubmV0Iiwic2VydmVtaW5lY3JhZnQubmV0Iiwic3l0ZXMubmV0IiwiY2FibGUtbW9kZW0ub3JnIiwiY29sbGVnZWZhbi5vcmciLCJjb3VjaHBvdGF0b2ZyaWVzLm9yZyIsImhvcHRvLm9yZyIsIm1sYmZhbi5vcmciLCJteWZ0cC5vcmciLCJteXNlY3Vy'@; put 'aXR5Y2FtZXJhLm9yZyIsIm5mbGZhbi5vcmciLCJuby1pcC5vcmciLCJyZWFkLWJvb2tzLm9yZyIsInVmY2Zhbi5vcmciLCJ6YXB0by5vcmciLCJuby1pcC5jby51ayIsImdvbGZmYW4udXMiLCJub2lwLnVzIiwicG9pbnR0by51cyIsInN0YWdlLm5vZGVhcnQuaW8iLCIqLmRldmVsb3Blci5h'@; put 'cHAiLCJub29wLmFwcCIsIioubm9ydGhmbGFuay5hcHAiLCIqLmJ1aWxkLnJ1biIsIiouY29kZS5ydW4iLCIqLmRhdGFiYXNlLnJ1biIsIioubWlncmF0aW9uLnJ1biIsIm5vdGljZWFibGUubmV3cyIsIm5vdGlvbi5zaXRlIiwiZG5za2luZy5jaCIsIm15cGkuY28iLCJuNHQuY28iLCIwMDF3'@; put 'd3cuY29tIiwibXlpcGhvc3QuY29tIiwiZm9ydW16LmluZm8iLCJzb3VuZGNhc3QubWUiLCJ0Y3A0Lm1lIiwiZG5zdXAubmV0IiwiaGljYW0ubmV0Iiwibm93LWRucy5uZXQiLCJvd25pcC5uZXQiLCJ2cG5kbnMubmV0IiwiZHluc2Vydi5vcmciLCJub3ctZG5zLm9yZyIsIng0NDMucHciLCJu'@; put 'b3ctZG5zLnRvcCIsIm50ZGxsLnRvcCIsImZyZWVkZG5zLnVzIiwibnN1cGRhdGUuaW5mbyIsIm5lcmRwb2wub3ZoIiwibnljLm1uIiwicHJ2Y3kucGFnZSIsIm9ibC5vbmciLCJvYnNlcnZhYmxlaHEuY2xvdWQiLCJzdGF0aWMub2JzZXJ2YWJsZXVzZXJjb250ZW50LmNvbSIsIm9tZy5sb2wi'@; put 'LCJjbG91ZHljbHVzdGVyLm5ldCIsIm9tbml3ZS5zaXRlIiwiMTIzd2Vic2VpdGUuYXQiLCIxMjN3ZWJzaXRlLmJlIiwic2ltcGxlc2l0ZS5jb20uYnIiLCIxMjN3ZWJzaXRlLmNoIiwic2ltcGxlc2l0ZS5jb20iLCIxMjN3ZWJzZWl0ZS5kZSIsIjEyM2hqZW1tZXNpZGUuZGsiLCIxMjNtaXdl'@; put 'Yi5lcyIsIjEyM2tvdGlzaXZ1LmZpIiwiMTIzc2l0ZXdlYi5mciIsInNpbXBsZXNpdGUuZ3IiLCIxMjNob21lcGFnZS5pdCIsIjEyM3dlYnNpdGUubHUiLCIxMjN3ZWJzaXRlLm5sIiwiMTIzaGplbW1lc2lkZS5ubyIsInNlcnZpY2Uub25lIiwic2ltcGxlc2l0ZS5wbCIsIjEyM3BhZ2luYXdl'@; put 'Yi5wdCIsIjEyM21pbnNpZGEuc2UiLCJpcy1hLWZ1bGxzdGFjay5kZXYiLCJpcy1jb29sLmRldiIsImlzLW5vdC1hLmRldiIsImxvY2FscGxheWVyLmRldiIsImlzLWxvY2FsLm9yZyIsIm9wZW5zb2NpYWwuc2l0ZSIsIm9wZW5jcmFmdC5ob3N0aW5nIiwiMTYtYi5pdCIsIjMyLWIuaXQiLCI2'@; put 'NC1iLml0Iiwib3JzaXRlcy5jb20iLCJvcGVyYXVuaXRlLmNvbSIsIiouY3VzdG9tZXItb2NpLmNvbSIsIioub2NpLmN1c3RvbWVyLW9jaS5jb20iLCIqLm9jcC5jdXN0b21lci1vY2kuY29tIiwiKi5vY3MuY3VzdG9tZXItb2NpLmNvbSIsIioub3JhY2xlY2xvdWRhcHBzLmNvbSIsIioub3Jh'@; put 'Y2xlZ292Y2xvdWRhcHBzLmNvbSIsIioub3JhY2xlZ292Y2xvdWRhcHBzLnVrIiwidGVjaC5vcmFuZ2UiLCJjYW4ucmUiLCJhdXRoZ2Vhci1zdGFnaW5nLmNvbSIsImF1dGhnZWFyYXBwcy5jb20iLCJza3lnZWFyYXBwLmNvbSIsIm91dHN5c3RlbXNjbG91ZC5jb20iLCIqLmhvc3Rpbmcub3Zo'@; put 'Lm5ldCIsIioud2VicGFhcy5vdmgubmV0Iiwib3ducHJvdmlkZXIuY29tIiwib3duLnBtIiwiKi5vd28uY29kZXMiLCJveC5ycyIsIm95LmxjIiwicGdmb2cuY29tIiwicGFnZXhsLmNvbSIsImdvdHBhbnRoZW9uLmNvbSIsInBhbnRoZW9uc2l0ZS5pbyIsIioucGF5d2hpcmwuY29tIiwiKi54'@; put 'bWl0LmNvIiwieG1pdC5kZXYiLCJtYWRldGhpcy5zaXRlIiwic3J2LnVzIiwiZ2guc3J2LnVzIiwiZ2wuc3J2LnVzIiwibGszLnJ1IiwibXlwZXAubGluayIsInBlcnNwZWN0YS5jbG91ZCIsIm9uLXdlYi5mciIsIioudXBzdW4uYXBwIiwidXBzdW5hcHAuY29tIiwiZW50LnBsYXRmb3JtLnNo'@; put 'IiwiZXUucGxhdGZvcm0uc2giLCJ1cy5wbGF0Zm9ybS5zaCIsIioucGxhdGZvcm1zaC5zaXRlIiwiKi50c3Quc2l0ZSIsInBsYXR0ZXItYXBwLmNvbSIsInBsYXR0ZXItYXBwLmRldiIsInBsYXR0ZXJwLnVzIiwicGxleS5nYW1lcyIsIm9ucG9ydGVyLnJ1biIsImNvLmJuIiwicG9zdG1hbi1l'@; put 'Y2hvLmNvbSIsInBzdG1uLmlvIiwibW9jay5wc3Rtbi5pbyIsImh0dHBiaW4ub3JnIiwicHJlcXVhbGlmeW1lLnRvZGF5IiwieGVuLnByZ21yLmNvbSIsInByaXYuYXQiLCJwcm90b25ldC5pbyIsImNoaXJ1cmdpZW5zLWRlbnRpc3Rlcy1lbi1mcmFuY2UuZnIiLCJieWVuLnNpdGUiLCJwdWJ0'@; put 'bHMub3JnIiwicHl0aG9uYW55d2hlcmUuY29tIiwiZXUucHl0aG9uYW55d2hlcmUuY29tIiwicWEyLmNvbSIsInFjeC5pbyIsIiouc3lzLnFjeC5pbyIsIm15cW5hcGNsb3VkLmNuIiwiYWxwaGEtbXlxbmFwY2xvdWQuY29tIiwiZGV2LW15cW5hcGNsb3VkLmNvbSIsIm15Y2xvdWRuYXMuY29t'@; put 'IiwibXluYXNjbG91ZC5jb20iLCJteXFuYXBjbG91ZC5jb20iLCJxb3RvLmlvIiwicXVhbGlmaW9hcHAuY29tIiwibGFkZXNrLmNvbSIsInFidXNlci5jb20iLCIqLnF1aXBlbGVtZW50cy5jb20iLCJ2YXBvci5jbG91ZCIsInZhcG9yY2xvdWQuaW8iLCJyYWNrbWF6ZS5jb20iLCJyYWNrbWF6'@; put 'ZS5uZXQiLCJjbG91ZHNpdGUuYnVpbGRlcnMiLCJteXJhZHdlYi5uZXQiLCJzZXJ2ZXJuYW1lLnVzIiwid2ViLmluIiwiaW4ubmV0IiwibXlyZGJ4LmlvIiwic2l0ZS5yYi1ob3N0aW5nLmlvIiwiKi5vbi1yYW5jaGVyLmNsb3VkIiwiKi5vbi1rM3MuaW8iLCIqLm9uLXJpby5pbyIsInJhdnBh'@; put 'Z2UuY28uaWwiLCJyZWFkdGhlZG9jcy1ob3N0ZWQuY29tIiwicmVhZHRoZWRvY3MuaW8iLCJyaGNsb3VkLmNvbSIsImluc3RhbmNlcy5zcGF3bi5jYyIsIm9ucmVuZGVyLmNvbSIsImFwcC5yZW5kZXIuY29tIiwicmVwbGl0LmFwcCIsImlkLnJlcGxpdC5hcHAiLCJmaXJld2FsbGVkcmVwbGl0'@; put 'LmNvIiwiaWQuZmlyZXdhbGxlZHJlcGxpdC5jbyIsInJlcGwuY28iLCJpZC5yZXBsLmNvIiwicmVwbGl0LmRldiIsImFyY2hlci5yZXBsaXQuZGV2IiwiYm9uZXMucmVwbGl0LmRldiIsImNhbmFyeS5yZXBsaXQuZGV2IiwiZ2xvYmFsLnJlcGxpdC5kZXYiLCJoYWNrZXIucmVwbGl0LmRldiIs'@; put 'ImlkLnJlcGxpdC5kZXYiLCJqYW5ld2F5LnJlcGxpdC5kZXYiLCJraW0ucmVwbGl0LmRldiIsImtpcmEucmVwbGl0LmRldiIsImtpcmsucmVwbGl0LmRldiIsIm9kby5yZXBsaXQuZGV2IiwicGFyaXMucmVwbGl0LmRldiIsInBpY2FyZC5yZXBsaXQuZGV2IiwicGlrZS5yZXBsaXQuZGV2Iiwi'@; put 'cHJlcmVsZWFzZS5yZXBsaXQuZGV2IiwicmVlZC5yZXBsaXQuZGV2IiwicmlrZXIucmVwbGl0LmRldiIsInNpc2tvLnJlcGxpdC5kZXYiLCJzcG9jay5yZXBsaXQuZGV2Iiwic3RhZ2luZy5yZXBsaXQuZGV2Iiwic3VsdS5yZXBsaXQuZGV2IiwidGFycGl0LnJlcGxpdC5kZXYiLCJ0ZWFtcy5y'@; put 'ZXBsaXQuZGV2IiwidHVja2VyLnJlcGxpdC5kZXYiLCJ3ZXNsZXkucmVwbGl0LmRldiIsIndvcmYucmVwbGl0LmRldiIsInJlcGwucnVuIiwicmVzaW5kZXZpY2UuaW8iLCJkZXZpY2VzLnJlc2luc3RhZ2luZy5pbyIsImh6Yy5pbyIsImFkaW1vLmNvLnVrIiwiaXRjb3VsZGJld29yLnNlIiwi'@; put 'YXVzLmJhc2tldGJhbGwiLCJuei5iYXNrZXRiYWxsIiwiZ2l0LXBhZ2VzLnJpdC5lZHUiLCJyb2NreS5wYWdlIiwicnViLmRlIiwicnVoci11bmktYm9jaHVtLmRlIiwiaW8ubm9jLnJ1aHItdW5pLWJvY2h1bS5kZSIsIlx1MDQzMVx1MDQzOFx1MDQzNy5cdTA0NDBcdTA0NDNcdTA0NDEiLCJc'@; put 'dTA0M2FcdTA0M2VcdTA0M2MuXHUwNDQwXHUwNDQzXHUwNDQxIiwiXHUwNDNhXHUwNDQwXHUwNDRiXHUwNDNjLlx1MDQ0MFx1MDQ0M1x1MDQ0MSIsIlx1MDQzY1x1MDQzOFx1MDQ0MC5cdTA0NDBcdTA0NDNcdTA0NDEiLCJcdTA0M2NcdTA0NDFcdTA0M2EuXHUwNDQwXHUwNDQzXHUwNDQxIiwi'@; put 'XHUwNDNlXHUwNDQwXHUwNDMzLlx1MDQ0MFx1MDQ0M1x1MDQ0MSIsIlx1MDQ0MVx1MDQzMFx1MDQzY1x1MDQzMFx1MDQ0MFx1MDQzMC5cdTA0NDBcdTA0NDNcdTA0NDEiLCJcdTA0NDFcdTA0M2VcdTA0NDdcdTA0MzguXHUwNDQwXHUwNDQzXHUwNDQxIiwiXHUwNDQxXHUwNDNmXHUwNDMxLlx1'@; put 'MDQ0MFx1MDQ0M1x1MDQ0MSIsIlx1MDQ0Zi5cdTA0NDBcdTA0NDNcdTA0NDEiLCJyYXMucnUiLCJueWF0LmFwcCIsIjE4MHIuY29tIiwiZG9qaW4uY29tIiwic2FrdXJhdGFuLmNvbSIsInNha3VyYXdlYi5jb20iLCJ4MC5jb20iLCIyLWQuanAiLCJib25hLmpwIiwiY3JhcC5qcCIsImRheW5p'@; put 'Z2h0LmpwIiwiZWVrLmpwIiwiZmxvcC5qcCIsImhhbGZtb29uLmpwIiwiamVlei5qcCIsIm1hdHJpeC5qcCIsIm1pbW96YS5qcCIsIml2b3J5Lm5lLmpwIiwibWFpbC1ib3gubmUuanAiLCJtaW50cy5uZS5qcCIsIm1va3VyZW4ubmUuanAiLCJvcGFsLm5lLmpwIiwic2FrdXJhLm5lLmpwIiwi'@; put 'c3Vtb21vLm5lLmpwIiwidG9wYXoubmUuanAiLCJuZXRnYW1lcnMuanAiLCJueWFudGEuanAiLCJvMG8wLmpwIiwicmR5LmpwIiwicmdyLmpwIiwicnVsZXouanAiLCJzMy5pc2swMS5zYWt1cmFzdG9yYWdlLmpwIiwiczMuaXNrMDIuc2FrdXJhc3RvcmFnZS5qcCIsInNhbG9vbi5qcCIsInNi'@; put 'bG8uanAiLCJza3IuanAiLCJ0YW5rLmpwIiwidWgtb2guanAiLCJ1bmRvLmpwIiwicnMud2ViYWNjZWwuanAiLCJ1c2VyLndlYmFjY2VsLmpwIiwid2Vic296YWkuanAiLCJ4aWkuanAiLCJzcXVhcmVzLm5ldCIsImpwbi5vcmciLCJraXJhcmEuc3QiLCJ4MC50byIsImZyb20udHYiLCJzYWt1'@; put 'cmEudHYiLCIqLmJ1aWxkZXIuY29kZS5jb20iLCIqLmRldi1idWlsZGVyLmNvZGUuY29tIiwiKi5zdGctYnVpbGRlci5jb2RlLmNvbSIsIiouMDAxLnRlc3QuY29kZS1idWlsZGVyLXN0Zy5wbGF0Zm9ybS5zYWxlc2ZvcmNlLmNvbSIsIiouZC5jcm0uZGV2IiwiKi53LmNybS5kZXYiLCIqLndh'@; put 'LmNybS5kZXYiLCIqLndiLmNybS5kZXYiLCIqLndjLmNybS5kZXYiLCIqLndkLmNybS5kZXYiLCIqLndlLmNybS5kZXYiLCIqLndmLmNybS5kZXYiLCJzYW5kY2F0cy5pbyIsImxvZ29pcC5jb20iLCJsb2dvaXAuZGUiLCJmci1wYXItMS5iYXJlbWV0YWwuc2N3LmNsb3VkIiwiZnItcGFyLTIu'@; put 'YmFyZW1ldGFsLnNjdy5jbG91ZCIsIm5sLWFtcy0xLmJhcmVtZXRhbC5zY3cuY2xvdWQiLCJjb2NrcGl0LmZyLXBhci5zY3cuY2xvdWQiLCJmbmMuZnItcGFyLnNjdy5jbG91ZCIsImZ1bmN0aW9ucy5mbmMuZnItcGFyLnNjdy5jbG91ZCIsIms4cy5mci1wYXIuc2N3LmNsb3VkIiwibm9kZXMu'@; put 'azhzLmZyLXBhci5zY3cuY2xvdWQiLCJzMy5mci1wYXIuc2N3LmNsb3VkIiwiczMtd2Vic2l0ZS5mci1wYXIuc2N3LmNsb3VkIiwid2htLmZyLXBhci5zY3cuY2xvdWQiLCJwcml2Lmluc3RhbmNlcy5zY3cuY2xvdWQiLCJwdWIuaW5zdGFuY2VzLnNjdy5jbG91ZCIsIms4cy5zY3cuY2xvdWQi'@; put 'LCJjb2NrcGl0Lm5sLWFtcy5zY3cuY2xvdWQiLCJrOHMubmwtYW1zLnNjdy5jbG91ZCIsIm5vZGVzLms4cy5ubC1hbXMuc2N3LmNsb3VkIiwiczMubmwtYW1zLnNjdy5jbG91ZCIsInMzLXdlYnNpdGUubmwtYW1zLnNjdy5jbG91ZCIsIndobS5ubC1hbXMuc2N3LmNsb3VkIiwiY29ja3BpdC5w'@; put 'bC13YXcuc2N3LmNsb3VkIiwiazhzLnBsLXdhdy5zY3cuY2xvdWQiLCJub2Rlcy5rOHMucGwtd2F3LnNjdy5jbG91ZCIsInMzLnBsLXdhdy5zY3cuY2xvdWQiLCJzMy13ZWJzaXRlLnBsLXdhdy5zY3cuY2xvdWQiLCJzY2FsZWJvb2suc2N3LmNsb3VkIiwic21hcnRsYWJlbGluZy5zY3cuY2xv'@; put 'dWQiLCJkZWRpYm94LmZyIiwic2Nob2tva2Vrcy5uZXQiLCJnb3Yuc2NvdCIsInNlcnZpY2UuZ292LnNjb3QiLCJzY3J5c2VjLmNvbSIsImNsaWVudC5zY3J5cHRlZC5pbyIsImZpcmV3YWxsLWdhdGV3YXkuY29tIiwiZmlyZXdhbGwtZ2F0ZXdheS5kZSIsIm15LWdhdGV3YXkuZGUiLCJteS1y'@; put 'b3V0ZXIuZGUiLCJzcGRucy5kZSIsInNwZG5zLmV1IiwiZmlyZXdhbGwtZ2F0ZXdheS5uZXQiLCJteS1maXJld2FsbC5vcmciLCJteWZpcmV3YWxsLm9yZyIsInNwZG5zLm9yZyIsInNlaWRhdC5uZXQiLCJzZWxsZnkuc3RvcmUiLCJtaW5pc2l0ZS5tcyIsInNlbnNlZXJpbmcubmV0Iiwic2Vy'@; put 'dmVib2x0LmNsb3VkIiwiYml6LnVhIiwiY28udWEiLCJwcC51YSIsImFzLnNoLmNuIiwic2hlZXp5LmdhbWVzIiwic2hpZnRlZGl0LmlvIiwibXlzaG9wYmxvY2tzLmNvbSIsIm15c2hvcGlmeS5jb20iLCJzaG9waXRzaXRlLmNvbSIsInNob3B3YXJlLnNob3AiLCJzaG9wd2FyZS5zdG9yZSIs'@; put 'Im1vLXNpZW1lbnMuaW8iLCIxa2FwcC5jb20iLCJhcHBjaGl6aS5jb20iLCJhcHBsaW56aS5jb20iLCJzaW5hYXBwLmNvbSIsInZpcHNpbmFhcHAuY29tIiwic2l0ZWxlYWYubmV0Iiwic21hbGwtd2ViLm9yZyIsImFlcm9wb3J0LmZyIiwiYXZvY2F0LmZyIiwiY2hhbWJhZ3JpLmZyIiwiY2hp'@; put 'cnVyZ2llbnMtZGVudGlzdGVzLmZyIiwiZXhwZXJ0cy1jb21wdGFibGVzLmZyIiwibWVkZWNpbi5mciIsIm5vdGFpcmVzLmZyIiwicGhhcm1hY2llbi5mciIsInBvcnQuZnIiLCJ2ZXRlcmluYWlyZS5mciIsInZwNC5tZSIsIiouc25vd2ZsYWtlLmFwcCIsIioucHJpdmF0ZWxpbmsuc25vd2Zs'@; put 'YWtlLmFwcCIsInN0cmVhbWxpdC5hcHAiLCJzdHJlYW1saXRhcHAuY29tIiwidHJ5LXNub3dwbG93LmNvbSIsIm1hZmVsby5uZXQiLCJwbGF5c3RhdGlvbi1jbG91ZC5jb20iLCJzcmh0LnNpdGUiLCJhcHBzLmxhaXIuaW8iLCIqLnN0b2xvcy5pbyIsInNwYWNla2l0LmlvIiwiaW5kLm1vbSIs'@; put 'ImN1c3RvbWVyLnNwZWVkcGFydG5lci5kZSIsIm15c3ByZWFkc2hvcC5hdCIsIm15c3ByZWFkc2hvcC5jb20uYXUiLCJteXNwcmVhZHNob3AuYmUiLCJteXNwcmVhZHNob3AuY2EiLCJteXNwcmVhZHNob3AuY2giLCJteXNwcmVhZHNob3AuY29tIiwibXlzcHJlYWRzaG9wLmRlIiwibXlzcHJl'@; put 'YWRzaG9wLmRrIiwibXlzcHJlYWRzaG9wLmVzIiwibXlzcHJlYWRzaG9wLmZpIiwibXlzcHJlYWRzaG9wLmZyIiwibXlzcHJlYWRzaG9wLmllIiwibXlzcHJlYWRzaG9wLml0IiwibXlzcHJlYWRzaG9wLm5ldCIsIm15c3ByZWFkc2hvcC5ubCIsIm15c3ByZWFkc2hvcC5ubyIsIm15c3ByZWFk'@; put 'c2hvcC5wbCIsIm15c3ByZWFkc2hvcC5zZSIsIm15c3ByZWFkc2hvcC5jby51ayIsInctY29ycC1zdGF0aWNibGl0ei5jb20iLCJ3LWNyZWRlbnRpYWxsZXNzLXN0YXRpY2JsaXR6LmNvbSIsInctc3RhdGljYmxpdHouY29tIiwic3RhY2toZXJvLW5ldHdvcmsuY29tIiwicnVucy5vbnN0YWNr'@; put 'aXQuY2xvdWQiLCJzdGFja2l0LmdnIiwic3RhY2tpdC5yb2NrcyIsInN0YWNraXQucnVuIiwic3RhY2tpdC56b25lIiwibXVzaWNpYW4uaW8iLCJub3ZlY29yZS5zaXRlIiwiYXBpLnN0ZGxpYi5jb20iLCJmZWVkYmFjay5hYyIsImZvcm1zLmFjIiwiYXNzZXNzbWVudHMuY3giLCJjYWxjdWxh'@; put 'dG9ycy5jeCIsImZ1bm5lbHMuY3giLCJwYXlub3cuY3giLCJxdWl6emVzLmN4IiwicmVzZWFyY2hlZC5jeCIsInRlc3RzLmN4Iiwic3VydmV5cy5zbyIsInN0b3JlYmFzZS5zdG9yZSIsInN0b3JpcHJlc3MuYXBwIiwic3RvcmouZmFybSIsInN0cmFwaWFwcC5jb20iLCJtZWRpYS5zdHJhcGlh'@; put 'cHAuY29tIiwidnBzLWhvc3QubmV0IiwiYXRsLmplbGFzdGljLnZwcy1ob3N0Lm5ldCIsIm5qcy5qZWxhc3RpYy52cHMtaG9zdC5uZXQiLCJyaWMuamVsYXN0aWMudnBzLWhvc3QubmV0Iiwic3RyZWFrLWxpbmsuY29tIiwic3RyZWFrbGlua3MuY29tIiwic3RyZWFrdXNlcmNvbnRlbnQuY29t'@; put 'Iiwic29jLnNyY2YubmV0IiwidXNlci5zcmNmLm5ldCIsInV0d2VudGUuaW8iLCJ0ZW1wLWRucy5jb20iLCJzdXBhYmFzZS5jbyIsInN1cGFiYXNlLmluIiwic3VwYWJhc2UubmV0Iiwic3luY2xvdWQuaXQiLCJkc2Nsb3VkLmJpeiIsImRpcmVjdC5xdWlja2Nvbm5lY3QuY24iLCJkc215bmFz'@; put 'LmNvbSIsImZhbWlseWRzLmNvbSIsImRpc2tzdGF0aW9uLm1lIiwiZHNjbG91ZC5tZSIsImkyMzQubWUiLCJteWRzLm1lIiwic3lub2xvZ3kubWUiLCJkc2Nsb3VkLm1vYmkiLCJkc215bmFzLm5ldCIsImZhbWlseWRzLm5ldCIsImRzbXluYXMub3JnIiwiZmFtaWx5ZHMub3JnIiwiZGlyZWN0'@; put 'LnF1aWNrY29ubmVjdC50byIsInZwbnBsdXMudG8iLCJteXRhYml0LmNvbSIsIm15dGFiaXQuY28uaWwiLCJ0YWJpdG9yZGVyLmNvLmlsIiwidGFpZnVuLWRucy5kZSIsInRzLm5ldCIsIiouYy50cy5uZXQiLCJnZGEucGwiLCJnZGFuc2sucGwiLCJnZHluaWEucGwiLCJtZWQucGwiLCJzb3Bv'@; put 'dC5wbCIsInRhdmV1c2VyY29udGVudC5jb20iLCJwLnRhd2suZW1haWwiLCJwLnRhd2t0by5lbWFpbCIsInNpdGUudGItaG9zdGluZy5jb20iLCJlZHVnaXQuaW8iLCJzMy50ZWNraWRzLm9yZyIsInRlbGViaXQuYXBwIiwidGVsZWJpdC5pbyIsIioudGVsZWJpdC54eXoiLCIqLmZpcmVuZXQu'@; put 'Y2giLCIqLnN2Yy5maXJlbmV0LmNoIiwicmVzZXJ2ZC5jb20iLCJ0aGluZ2R1c3RkYXRhLmNvbSIsImN1c3QuZGV2LnRoaW5nZHVzdC5pbyIsInJlc2VydmQuZGV2LnRoaW5nZHVzdC5pbyIsImN1c3QuZGlzcmVjLnRoaW5nZHVzdC5pbyIsInJlc2VydmQuZGlzcmVjLnRoaW5nZHVzdC5pbyIs'@; put 'ImN1c3QucHJvZC50aGluZ2R1c3QuaW8iLCJjdXN0LnRlc3RpbmcudGhpbmdkdXN0LmlvIiwicmVzZXJ2ZC50ZXN0aW5nLnRoaW5nZHVzdC5pbyIsInRpY2tldHMuaW8iLCJhcnZvLm5ldHdvcmsiLCJhemltdXRoLm5ldHdvcmsiLCJ0bG9uLm5ldHdvcmsiLCJ0b3Jwcm9qZWN0Lm5ldCIsInBh'@; put 'Z2VzLnRvcnByb2plY3QubmV0IiwidG93bm5ld3Mtc3RhZ2luZy5jb20iLCIxMmhwLmF0IiwiMml4LmF0IiwiNGxpbWEuYXQiLCJsaW1hLWNpdHkuYXQiLCIxMmhwLmNoIiwiMml4LmNoIiwiNGxpbWEuY2giLCJsaW1hLWNpdHkuY2giLCJ0cmFmZmljcGxleC5jbG91ZCIsImRlLmNvb2wiLCIx'@; put 'MmhwLmRlIiwiMml4LmRlIiwiNGxpbWEuZGUiLCJsaW1hLWNpdHkuZGUiLCIxMzM3LnBpY3R1cmVzIiwiY2xhbi5yaXAiLCJsaW1hLWNpdHkucm9ja3MiLCJ3ZWJzcGFjZS5yb2NrcyIsImxpbWEuem9uZSIsIioudHJhbnN1cmwuYmUiLCIqLnRyYW5zdXJsLmV1Iiwic2l0ZS50cmFuc2lwLm1l'@; put 'IiwiKi50cmFuc3VybC5ubCIsInR1eGZhbWlseS5vcmciLCJkZC1kbnMuZGUiLCJkcmF5LWRucy5kZSIsImRyYXlkbnMuZGUiLCJkeW4tdnBuLmRlIiwiZHludnBuLmRlIiwibWVpbi12aWdvci5kZSIsIm15LXZpZ29yLmRlIiwibXktd2FuLmRlIiwic3luby1kcy5kZSIsInN5bm9sb2d5LWRp'@; put 'c2tzdGF0aW9uLmRlIiwic3lub2xvZ3ktZHMuZGUiLCJkaXNrc3RhdGlvbi5ldSIsImRpc2tzdGF0aW9uLm9yZyIsInR5cGVkcmVhbS5hcHAiLCJwcm8udHlwZWZvcm0uY29tIiwiKi51YmVyc3BhY2UuZGUiLCJ1YmVyLnNwYWNlIiwiaGsuY29tIiwiaW5jLmhrIiwibHRkLmhrIiwiaGsub3Jn'@; put 'IiwiaXQuY29tIiwidW5pc29uLXNlcnZpY2VzLmNsb3VkIiwidmlydHVhbC11c2VyLmRlIiwidmlydHVhbHVzZXIuZGUiLCJuYW1lLnBtIiwic2NoLnRmIiwiYml6LndmIiwic2NoLndmIiwib3JnLnl0IiwicnMuYmEiLCJiaWVsc2tvLnBsIiwidXBsaS5pbyIsInVyb3duLmNsb3VkIiwiZG5z'@; put 'dXBkYXRlLmluZm8iLCJ1cy5vcmciLCJ2LnVhIiwiZXhwcmVzcy52YWwucnVuIiwid2ViLnZhbC5ydW4iLCJ2ZXJjZWwuYXBwIiwidjAuYnVpbGQiLCJ2ZXJjZWwuZGV2IiwidnVzZXJjb250ZW50Lm5ldCIsIm5vdy5zaCIsIjIwMzguaW8iLCJyb3V0ZXIubWFuYWdlbWVudCIsInYtaW5mby5p'@; put 'bmZvIiwidm9vcmxvcGVyLmNsb3VkIiwiKi52dWx0cm9iamVjdHMuY29tIiwid2FmZmxlY2VsbC5jb20iLCJ3ZWJmbG93LmlvIiwid2ViZmxvd3Rlc3QuaW8iLCIqLndlYmhhcmUuZGV2IiwiYm9va29ubGluZS5hcHAiLCJob3RlbHdpdGhmbGlnaHQuY29tIiwicmVzZXJ2ZS1vbmxpbmUuY29t'@; put 'IiwicmVzZXJ2ZS1vbmxpbmUubmV0IiwiY3ByYXBpZC5jb20iLCJwbGVza25zLmNvbSIsIndwMi5ob3N0IiwicGRucy5wYWdlIiwicGxlc2sucGFnZSIsIndwc3F1YXJlZC5zaXRlIiwiKi53YWRsLnRvcCIsInJlbW90ZXdkLmNvbSIsImJveC5jYSIsInBhZ2VzLndpYXJkd2ViLmNvbSIsInRv'@; put 'b2xmb3JnZS5vcmciLCJ3bWNsb3VkLm9yZyIsIndtZmxhYnMub3JnIiwid2RoLmFwcCIsInBhbmVsLmdnIiwiZGFlbW9uLnBhbmVsLmdnIiwid2l4c2l0ZS5jb20iLCJ3aXhzdHVkaW8uY29tIiwiZWRpdG9yeC5pbyIsIndpeHN0dWRpby5pbyIsIndpeC5ydW4iLCJtZXNzd2l0aGRucy5jb20i'@; put 'LCJ3b2x0bGFiLWRlbW8uY29tIiwibXlmb3J1bS5jb21tdW5pdHkiLCJjb21tdW5pdHktcHJvLmRlIiwiZGlza3Vzc2lvbnNiZXJlaWNoLmRlIiwiY29tbXVuaXR5LXByby5uZXQiLCJtZWluZm9ydW0ubmV0IiwiYWZmaW5pdHlsb3R0ZXJ5Lm9yZy51ayIsInJhZmZsZWVudHJ5Lm9yZy51ayIs'@; put 'IndlZWtseWxvdHRlcnkub3JnLnVrIiwid3BlbmdpbmVwb3dlcmVkLmNvbSIsImpzLndwZW5naW5lcG93ZXJlZC5jb20iLCJoYWxmLmhvc3QiLCJ4bmJheS5jb20iLCJ1Mi54bmJheS5jb20iLCJ1Mi1sb2NhbC54bmJheS5jb20iLCJjaXN0cm9uLm5sIiwiZGVtb24ubmwiLCJ4czRhbGwuc3Bh'@; put 'Y2UiLCJ5YW5kZXhjbG91ZC5uZXQiLCJzdG9yYWdlLnlhbmRleGNsb3VkLm5ldCIsIndlYnNpdGUueWFuZGV4Y2xvdWQubmV0Iiwib2ZmaWNpYWwuYWNhZGVteSIsInlvbGFzaXRlLmNvbSIsInlvbWJvLm1lIiwieW5oLmZyIiwibm9ob3N0Lm1lIiwibm9oby5zdCIsInphLm5ldCIsInphLm9y'@; put 'ZyIsInphcC5jbG91ZCIsInplYWJ1ci5hcHAiLCJic3MuZGVzaWduIiwiYmFzaWNzZXJ2ZXIuaW8iLCJ2aXJ0dWFsc2VydmVyLmlvIiwiZW50ZXJwcmlzZWNsb3VkLm51Il0ucmVkdWNlKChaLFgpPT57Y29uc3QgUT1YLnJlcGxhY2UoL14oXCpcLnxcISkvLCIiKSxxPXcudG9BU0NJSShRKSx0'@; put 'ZT1YLmNoYXJBdCgwKTtpZihaLmhhcyhxKSl0aHJvdyBuZXcgRXJyb3IoYE11bHRpcGxlIHJ1bGVzIGZvdW5kIGZvciAke1h9ICgke3F9KWApO3JldHVybiBaLnNldChxLHtydWxlOlgsc3VmZml4OlEscHVueVN1ZmZpeDpxLHdpbGRjYXJkOiIqIj09PXRlLGV4Y2VwdGlvbjoiISI9PT10ZX0p'@; put 'LFp9LG5ldyBNYXApLGo9e0RPTUFJTl9UT09fU0hPUlQ6IkRvbWFpbiBuYW1lIHRvbyBzaG9ydC4iLERPTUFJTl9UT09fTE9ORzoiRG9tYWluIG5hbWUgdG9vIGxvbmcuIEl0IHNob3VsZCBiZSBubyBtb3JlIHRoYW4gMjU1IGNoYXJzLiIsTEFCRUxfU1RBUlRTX1dJVEhfREFTSDoiRG9tYWlu'@; put 'IG5hbWUgbGFiZWwgY2FuIG5vdCBzdGFydCB3aXRoIGEgZGFzaC4iLExBQkVMX0VORFNfV0lUSF9EQVNIOiJEb21haW4gbmFtZSBsYWJlbCBjYW4gbm90IGVuZCB3aXRoIGEgZGFzaC4iLExBQkVMX1RPT19MT05HOiJEb21haW4gbmFtZSBsYWJlbCBzaG91bGQgYmUgYXQgbW9zdCA2MyBjaGFy'@; put 'cyBsb25nLiIsTEFCRUxfVE9PX1NIT1JUOiJEb21haW4gbmFtZSBsYWJlbCBzaG91bGQgYmUgYXQgbGVhc3QgMSBjaGFyYWN0ZXIgbG9uZy4iLExBQkVMX0lOVkFMSURfQ0hBUlM6IkRvbWFpbiBuYW1lIGxhYmVsIGNhbiBvbmx5IGNvbnRhaW4gYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgb3Ig'@; put 'ZGFzaGVzLiJ9LEw9Wj0+e2lmKCJzdHJpbmciIT10eXBlb2YgWil0aHJvdyBuZXcgVHlwZUVycm9yKCJEb21haW4gbmFtZSBtdXN0IGJlIGEgc3RyaW5nLiIpO2xldCBYPVouc2xpY2UoMCkudG9Mb3dlckNhc2UoKTsiLiI9PT1YLmNoYXJBdChYLmxlbmd0aC0xKSYmKFg9WC5zbGljZSgwLFgu'@; put 'bGVuZ3RoLTEpKTtjb25zdCBRPShaPT57Y29uc3QgWD13LnRvQVNDSUkoWik7aWYoWC5sZW5ndGg8MSlyZXR1cm4iRE9NQUlOX1RPT19TSE9SVCI7aWYoWC5sZW5ndGg+MjU1KXJldHVybiJET01BSU5fVE9PX0xPTkciO2NvbnN0IFE9WC5zcGxpdCgiLiIpO2xldCBxO2ZvcihsZXQgdGU9MDt0'@; put 'ZTxRLmxlbmd0aDsrK3RlKXtpZihxPVFbdGVdLCFxLmxlbmd0aClyZXR1cm4iTEFCRUxfVE9PX1NIT1JUIjtpZihxLmxlbmd0aD42MylyZXR1cm4iTEFCRUxfVE9PX0xPTkciO2lmKCItIj09PXEuY2hhckF0KDApKXJldHVybiJMQUJFTF9TVEFSVFNfV0lUSF9EQVNIIjtpZigiLSI9PT1xLmNo'@; put 'YXJBdChxLmxlbmd0aC0xKSlyZXR1cm4iTEFCRUxfRU5EU19XSVRIX0RBU0giO2lmKCEvXlthLXowLTlcLV9dKyQvLnRlc3QocSkpcmV0dXJuIkxBQkVMX0lOVkFMSURfQ0hBUlMifX0pKFgpO2lmKFEpcmV0dXJue2lucHV0OlosZXJyb3I6e21lc3NhZ2U6altRXSxjb2RlOlF9fTtjb25zdCBx'@; put 'PXtpbnB1dDpaLHRsZDpudWxsLHNsZDpudWxsLGRvbWFpbjpudWxsLHN1YmRvbWFpbjpudWxsLGxpc3RlZDohMX0sdGU9WC5zcGxpdCgiLiIpO2lmKCJsb2NhbCI9PT10ZVt0ZS5sZW5ndGgtMV0pcmV0dXJuIHE7Y29uc3QgaWU9KCk9PigveG4tLS8udGVzdChYKSYmKHEuZG9tYWluJiYocS5k'@; put 'b21haW49dy50b0FTQ0lJKHEuZG9tYWluKSkscS5zdWJkb21haW4mJihxLnN1YmRvbWFpbj13LnRvQVNDSUkocS5zdWJkb21haW4pKSkscSksc2U9KFo9Pntjb25zdCBYPXcudG9BU0NJSShaKS5zcGxpdCgiLiIpO2ZvcihsZXQgUT0wO1E8WC5sZW5ndGg7USsrKXtjb25zdCBxPVguc2xpY2Uo'@; put 'USkuam9pbigiLiIpLHRlPUguZ2V0KHEpO2lmKHRlKXJldHVybiB0ZX1yZXR1cm4gbnVsbH0pKFgpO2lmKCFzZSlyZXR1cm4gdGUubGVuZ3RoPDI/cToocS50bGQ9dGUucG9wKCkscS5zbGQ9dGUucG9wKCkscS5kb21haW49W3Euc2xkLHEudGxkXS5qb2luKCIuIiksdGUubGVuZ3RoJiYocS5z'@; put 'dWJkb21haW49dGUucG9wKCkpLGllKCkpO3EubGlzdGVkPSEwO2NvbnN0IGdlPXNlLnN1ZmZpeC5zcGxpdCgiLiIpLF9lPXRlLnNsaWNlKDAsdGUubGVuZ3RoLWdlLmxlbmd0aCk7cmV0dXJuIHNlLmV4Y2VwdGlvbiYmX2UucHVzaChnZS5zaGlmdCgpKSxxLnRsZD1nZS5qb2luKCIuIiksIV9l'@; put 'Lmxlbmd0aHx8KHNlLndpbGRjYXJkJiYoZ2UudW5zaGlmdChfZS5wb3AoKSkscS50bGQ9Z2Uuam9pbigiLiIpKSwhX2UubGVuZ3RoKXx8KHEuc2xkPV9lLnBvcCgpLHEuZG9tYWluPVtxLnNsZCxxLnRsZF0uam9pbigiLiIpLF9lLmxlbmd0aCYmKHEuc3ViZG9tYWluPV9lLmpvaW4oIi4iKSkp'@; put 'LGllKCl9LFk9Wj0+WiYmTChaKS5kb21haW58fG51bGwsQj1aPT57Y29uc3QgWD1MKFopO3JldHVybiEoIVguZG9tYWlufHwhWC5saXN0ZWQpfTtKLmRlZmF1bHQ9e3BhcnNlOkwsZ2V0OlksaXNWYWxpZDpCfSxKLmVycm9yQ29kZXM9aixKLmdldD1ZLEouaXNWYWxpZD1CLEoucGFyc2U9TH0s'@; put 'NDk0NjpjZT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPUpTT04ucGFyc2UoJ3siYWVzLTEyOC1lY2IiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxMjgsIml2IjowLCJtb2RlIjoiRUNCIiwidHlwZSI6ImJsb2NrIn0sImFlcy0xOTItZWNiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJp'@; put 'diI6MCwibW9kZSI6IkVDQiIsInR5cGUiOiJibG9jayJ9LCJhZXMtMjU2LWVjYiI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjI1NiwiaXYiOjAsIm1vZGUiOiJFQ0IiLCJ0eXBlIjoiYmxvY2sifSwiYWVzLTEyOC1jYmMiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxMjgsIml2IjoxNiwibW9kZSI6'@; put 'IkNCQyIsInR5cGUiOiJibG9jayJ9LCJhZXMtMTkyLWNiYyI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjE5MiwiaXYiOjE2LCJtb2RlIjoiQ0JDIiwidHlwZSI6ImJsb2NrIn0sImFlcy0yNTYtY2JjIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MjU2LCJpdiI6MTYsIm1vZGUiOiJDQkMiLCJ0eXBl'@; put 'IjoiYmxvY2sifSwiYWVzMTI4Ijp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTYsIm1vZGUiOiJDQkMiLCJ0eXBlIjoiYmxvY2sifSwiYWVzMTkyIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTYsIm1vZGUiOiJDQkMiLCJ0eXBlIjoiYmxvY2sifSwiYWVzMjU2Ijp7'@; put 'ImNpcGhlciI6IkFFUyIsImtleSI6MjU2LCJpdiI6MTYsIm1vZGUiOiJDQkMiLCJ0eXBlIjoiYmxvY2sifSwiYWVzLTEyOC1jZmIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxMjgsIml2IjoxNiwibW9kZSI6IkNGQiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTE5Mi1jZmIiOnsiY2lwaGVyIjoi'@; put 'QUVTIiwia2V5IjoxOTIsIml2IjoxNiwibW9kZSI6IkNGQiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTI1Ni1jZmIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjoxNiwibW9kZSI6IkNGQiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTEyOC1jZmI4Ijp7ImNpcGhlciI6IkFFUyIsImtl'@; put 'eSI6MTI4LCJpdiI6MTYsIm1vZGUiOiJDRkI4IiwidHlwZSI6InN0cmVhbSJ9LCJhZXMtMTkyLWNmYjgiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxOTIsIml2IjoxNiwibW9kZSI6IkNGQjgiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0yNTYtY2ZiOCI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjI1'@; put 'NiwiaXYiOjE2LCJtb2RlIjoiQ0ZCOCIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTEyOC1jZmIxIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTYsIm1vZGUiOiJDRkIxIiwidHlwZSI6InN0cmVhbSJ9LCJhZXMtMTkyLWNmYjEiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxOTIsIml2'@; put 'IjoxNiwibW9kZSI6IkNGQjEiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0yNTYtY2ZiMSI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjI1NiwiaXYiOjE2LCJtb2RlIjoiQ0ZCMSIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTEyOC1vZmIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxMjgsIml2IjoxNiwi'@; put 'bW9kZSI6Ik9GQiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTE5Mi1vZmIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxOTIsIml2IjoxNiwibW9kZSI6Ik9GQiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTI1Ni1vZmIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjoxNiwibW9kZSI6Ik9G'@; put 'QiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTEyOC1jdHIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxMjgsIml2IjoxNiwibW9kZSI6IkNUUiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTE5Mi1jdHIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxOTIsIml2IjoxNiwibW9kZSI6IkNUUiIsInR5cGUi'@; put 'OiJzdHJlYW0ifSwiYWVzLTI1Ni1jdHIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjoxNiwibW9kZSI6IkNUUiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTEyOC1nY20iOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxMjgsIml2IjoxMiwibW9kZSI6IkdDTSIsInR5cGUiOiJhdXRoIn0s'@; put 'ImFlcy0xOTItZ2NtIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTIsIm1vZGUiOiJHQ00iLCJ0eXBlIjoiYXV0aCJ9LCJhZXMtMjU2LWdjbSI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjI1NiwiaXYiOjEyLCJtb2RlIjoiR0NNIiwidHlwZSI6ImF1dGgifX0nKX0sNTIwNzpjZT0+'@; put 'eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPUpTT04ucGFyc2UoJ3sic2hhMjI0V2l0aFJTQUVuY3J5cHRpb24iOnsic2lnbiI6InJzYSIsImhhc2giOiJzaGEyMjQiLCJpZCI6IjMwMmQzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwNDA1MDAwNDFjIn0sIlJTQS1TSEEyMjQiOnsic2lnbiI6ImVj'@; put 'ZHNhL3JzYSIsImhhc2giOiJzaGEyMjQiLCJpZCI6IjMwMmQzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwNDA1MDAwNDFjIn0sInNoYTI1NldpdGhSU0FFbmNyeXB0aW9uIjp7InNpZ24iOiJyc2EiLCJoYXNoIjoic2hhMjU2IiwiaWQiOiIzMDMxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEw'@; put 'NTAwMDQyMCJ9LCJSU0EtU0hBMjU2Ijp7InNpZ24iOiJlY2RzYS9yc2EiLCJoYXNoIjoic2hhMjU2IiwiaWQiOiIzMDMxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMDQyMCJ9LCJzaGEzODRXaXRoUlNBRW5jcnlwdGlvbiI6eyJzaWduIjoicnNhIiwiaGFzaCI6InNoYTM4NCIsImlk'@; put 'IjoiMzA0MTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAyMDUwMDA0MzAifSwiUlNBLVNIQTM4NCI6eyJzaWduIjoiZWNkc2EvcnNhIiwiaGFzaCI6InNoYTM4NCIsImlkIjoiMzA0MTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAyMDUwMDA0MzAifSwic2hhNTEyV2l0aFJTQUVuY3J5cHRpb24i'@; put 'Onsic2lnbiI6InJzYSIsImhhc2giOiJzaGE1MTIiLCJpZCI6IjMwNTEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMzA1MDAwNDQwIn0sIlJTQS1TSEE1MTIiOnsic2lnbiI6ImVjZHNhL3JzYSIsImhhc2giOiJzaGE1MTIiLCJpZCI6IjMwNTEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMzA1'@; put 'MDAwNDQwIn0sIlJTQS1TSEExIjp7InNpZ24iOiJyc2EiLCJoYXNoIjoic2hhMSIsImlkIjoiMzAyMTMwMDkwNjA1MmIwZTAzMDIxYTA1MDAwNDE0In0sImVjZHNhLXdpdGgtU0hBMSI6eyJzaWduIjoiZWNkc2EiLCJoYXNoIjoic2hhMSIsImlkIjoiIn0sInNoYTI1NiI6eyJzaWduIjoiZWNk'@; put 'c2EiLCJoYXNoIjoic2hhMjU2IiwiaWQiOiIifSwic2hhMjI0Ijp7InNpZ24iOiJlY2RzYSIsImhhc2giOiJzaGEyMjQiLCJpZCI6IiJ9LCJzaGEzODQiOnsic2lnbiI6ImVjZHNhIiwiaGFzaCI6InNoYTM4NCIsImlkIjoiIn0sInNoYTUxMiI6eyJzaWduIjoiZWNkc2EiLCJoYXNoIjoic2hh'@; put 'NTEyIiwiaWQiOiIifSwiRFNBLVNIQSI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTEiLCJpZCI6IiJ9LCJEU0EtU0hBMSI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTEiLCJpZCI6IiJ9LCJEU0EiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGExIiwiaWQiOiIifSwiRFNBLVdJVEgtU0hB'@; put 'MjI0Ijp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhMjI0IiwiaWQiOiIifSwiRFNBLVNIQTIyNCI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTIyNCIsImlkIjoiIn0sIkRTQS1XSVRILVNIQTI1NiI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTI1NiIsImlkIjoiIn0sIkRTQS1TSEEyNTYi'@; put 'Onsic2lnbiI6ImRzYSIsImhhc2giOiJzaGEyNTYiLCJpZCI6IiJ9LCJEU0EtV0lUSC1TSEEzODQiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGEzODQiLCJpZCI6IiJ9LCJEU0EtU0hBMzg0Ijp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhMzg0IiwiaWQiOiIifSwiRFNBLVdJVEgtU0hBNTEy'@; put 'Ijp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhNTEyIiwiaWQiOiIifSwiRFNBLVNIQTUxMiI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTUxMiIsImlkIjoiIn0sIkRTQS1SSVBFTUQxNjAiOnsic2lnbiI6ImRzYSIsImhhc2giOiJybWQxNjAiLCJpZCI6IiJ9LCJyaXBlbWQxNjBXaXRoUlNB'@; put 'Ijp7InNpZ24iOiJyc2EiLCJoYXNoIjoicm1kMTYwIiwiaWQiOiIzMDIxMzAwOTA2MDUyYjI0MDMwMjAxMDUwMDA0MTQifSwiUlNBLVJJUEVNRDE2MCI6eyJzaWduIjoicnNhIiwiaGFzaCI6InJtZDE2MCIsImlkIjoiMzAyMTMwMDkwNjA1MmIyNDAzMDIwMTA1MDAwNDE0In0sIm1kNVdpdGhS'@; put 'U0FFbmNyeXB0aW9uIjp7InNpZ24iOiJyc2EiLCJoYXNoIjoibWQ1IiwiaWQiOiIzMDIwMzAwYzA2MDgyYTg2NDg4NmY3MGQwMjA1MDUwMDA0MTAifSwiUlNBLU1ENSI6eyJzaWduIjoicnNhIiwiaGFzaCI6Im1kNSIsImlkIjoiMzAyMDMwMGMwNjA4MmE4NjQ4ODZmNzBkMDIwNTA1MDAwNDEw'@; put 'In19Jyl9LDEzMDg6Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7IjEuMy4xMzIuMC4xMCI6InNlY3AyNTZrMSIsIjEuMy4xMzIuMC4zMyI6InAyMjQiLCIxLjIuODQwLjEwMDQ1LjMuMS4xIjoicDE5MiIsIjEuMi44NDAuMTAwNDUuMy4xLjciOiJwMjU2IiwiMS4z'@; put 'LjEzMi4wLjM0IjoicDM4NCIsIjEuMy4xMzIuMC4zNSI6InA1MjEifScpfSwzMjA4OmNlPT57InVzZSBzdHJpY3QiO2NlLmV4cG9ydHM9SlNPTi5wYXJzZSgneyJPX1JET05MWSI6MCwiT19XUk9OTFkiOjEsIk9fUkRXUiI6MiwiU19JRk1UIjo2MTQ0MCwiU19JRlJFRyI6MzI3NjgsIlNfSUZE'@; put 'SVIiOjE2Mzg0LCJTX0lGQ0hSIjo4MTkyLCJTX0lGQkxLIjoyNDU3NiwiU19JRklGTyI6NDA5NiwiU19JRkxOSyI6NDA5NjAsIlNfSUZTT0NLIjo0OTE1MiwiT19DUkVBVCI6NTEyLCJPX0VYQ0wiOjIwNDgsIk9fTk9DVFRZIjoxMzEwNzIsIk9fVFJVTkMiOjEwMjQsIk9fQVBQRU5EIjo4LCJP'@; put 'X0RJUkVDVE9SWSI6MTA0ODU3NiwiT19OT0ZPTExPVyI6MjU2LCJPX1NZTkMiOjEyOCwiT19TWU1MSU5LIjoyMDk3MTUyLCJPX05PTkJMT0NLIjo0LCJTX0lSV1hVIjo0NDgsIlNfSVJVU1IiOjI1NiwiU19JV1VTUiI6MTI4LCJTX0lYVVNSIjo2NCwiU19JUldYRyI6NTYsIlNfSVJHUlAiOjMy'@; put 'LCJTX0lXR1JQIjoxNiwiU19JWEdSUCI6OCwiU19JUldYTyI6NywiU19JUk9USCI6NCwiU19JV09USCI6MiwiU19JWE9USCI6MSwiRTJCSUciOjcsIkVBQ0NFUyI6MTMsIkVBRERSSU5VU0UiOjQ4LCJFQUREUk5PVEFWQUlMIjo0OSwiRUFGTk9TVVBQT1JUIjo0NywiRUFHQUlOIjozNSwiRUFM'@; put 'UkVBRFkiOjM3LCJFQkFERiI6OSwiRUJBRE1TRyI6OTQsIkVCVVNZIjoxNiwiRUNBTkNFTEVEIjo4OSwiRUNISUxEIjoxMCwiRUNPTk5BQk9SVEVEIjo1MywiRUNPTk5SRUZVU0VEIjo2MSwiRUNPTk5SRVNFVCI6NTQsIkVERUFETEsiOjExLCJFREVTVEFERFJSRVEiOjM5LCJFRE9NIjozMywi'@; put 'RURRVU9UIjo2OSwiRUVYSVNUIjoxNywiRUZBVUxUIjoxNCwiRUZCSUciOjI3LCJFSE9TVFVOUkVBQ0giOjY1LCJFSURSTSI6OTAsIkVJTFNFUSI6OTIsIkVJTlBST0dSRVNTIjozNiwiRUlOVFIiOjQsIkVJTlZBTCI6MjIsIkVJTyI6NSwiRUlTQ09OTiI6NTYsIkVJU0RJUiI6MjEsIkVMT09Q'@; put 'Ijo2MiwiRU1GSUxFIjoyNCwiRU1MSU5LIjozMSwiRU1TR1NJWkUiOjQwLCJFTVVMVElIT1AiOjk1LCJFTkFNRVRPT0xPTkciOjYzLCJFTkVURE9XTiI6NTAsIkVORVRSRVNFVCI6NTIsIkVORVRVTlJFQUNIIjo1MSwiRU5GSUxFIjoyMywiRU5PQlVGUyI6NTUsIkVOT0RBVEEiOjk2LCJFTk9E'@; put 'RVYiOjE5LCJFTk9FTlQiOjIsIkVOT0VYRUMiOjgsIkVOT0xDSyI6NzcsIkVOT0xJTksiOjk3LCJFTk9NRU0iOjEyLCJFTk9NU0ciOjkxLCJFTk9QUk9UT09QVCI6NDIsIkVOT1NQQyI6MjgsIkVOT1NSIjo5OCwiRU5PU1RSIjo5OSwiRU5PU1lTIjo3OCwiRU5PVENPTk4iOjU3LCJFTk9URElS'@; put 'IjoyMCwiRU5PVEVNUFRZIjo2NiwiRU5PVFNPQ0siOjM4LCJFTk9UU1VQIjo0NSwiRU5PVFRZIjoyNSwiRU5YSU8iOjYsIkVPUE5PVFNVUFAiOjEwMiwiRU9WRVJGTE9XIjo4NCwiRVBFUk0iOjEsIkVQSVBFIjozMiwiRVBST1RPIjoxMDAsIkVQUk9UT05PU1VQUE9SVCI6NDMsIkVQUk9UT1RZ'@; put 'UEUiOjQxLCJFUkFOR0UiOjM0LCJFUk9GUyI6MzAsIkVTUElQRSI6MjksIkVTUkNIIjozLCJFU1RBTEUiOjcwLCJFVElNRSI6MTAxLCJFVElNRURPVVQiOjYwLCJFVFhUQlNZIjoyNiwiRVdPVUxEQkxPQ0siOjM1LCJFWERFViI6MTgsIlNJR0hVUCI6MSwiU0lHSU5UIjoyLCJTSUdRVUlUIjoz'@; put 'LCJTSUdJTEwiOjQsIlNJR1RSQVAiOjUsIlNJR0FCUlQiOjYsIlNJR0lPVCI6NiwiU0lHQlVTIjoxMCwiU0lHRlBFIjo4LCJTSUdLSUxMIjo5LCJTSUdVU1IxIjozMCwiU0lHU0VHViI6MTEsIlNJR1VTUjIiOjMxLCJTSUdQSVBFIjoxMywiU0lHQUxSTSI6MTQsIlNJR1RFUk0iOjE1LCJTSUdD'@; put 'SExEIjoyMCwiU0lHQ09OVCI6MTksIlNJR1NUT1AiOjE3LCJTSUdUU1RQIjoxOCwiU0lHVFRJTiI6MjEsIlNJR1RUT1UiOjIyLCJTSUdVUkciOjE2LCJTSUdYQ1BVIjoyNCwiU0lHWEZTWiI6MjUsIlNJR1ZUQUxSTSI6MjYsIlNJR1BST0YiOjI3LCJTSUdXSU5DSCI6MjgsIlNJR0lPIjoyMywi'@; put 'U0lHU1lTIjoxMiwiU1NMX09QX0FMTCI6MjE0NzQ4NjcxOSwiU1NMX09QX0FMTE9XX1VOU0FGRV9MRUdBQ1lfUkVORUdPVElBVElPTiI6MjYyMTQ0LCJTU0xfT1BfQ0lQSEVSX1NFUlZFUl9QUkVGRVJFTkNFIjo0MTk0MzA0LCJTU0xfT1BfQ0lTQ09fQU5ZQ09OTkVDVCI6MzI3NjgsIlNTTF9P'@; put 'UF9DT09LSUVfRVhDSEFOR0UiOjgxOTIsIlNTTF9PUF9DUllQVE9QUk9fVExTRVhUX0JVRyI6MjE0NzQ4MzY0OCwiU1NMX09QX0RPTlRfSU5TRVJUX0VNUFRZX0ZSQUdNRU5UUyI6MjA0OCwiU1NMX09QX0VQSEVNRVJBTF9SU0EiOjAsIlNTTF9PUF9MRUdBQ1lfU0VSVkVSX0NPTk5FQ1QiOjQs'@; put 'IlNTTF9PUF9NSUNST1NPRlRfQklHX1NTTFYzX0JVRkZFUiI6MzIsIlNTTF9PUF9NSUNST1NPRlRfU0VTU19JRF9CVUciOjEsIlNTTF9PUF9NU0lFX1NTTFYyX1JTQV9QQURESU5HIjowLCJTU0xfT1BfTkVUU0NBUEVfQ0FfRE5fQlVHIjo1MzY4NzA5MTIsIlNTTF9PUF9ORVRTQ0FQRV9DSEFM'@; put 'TEVOR0VfQlVHIjoyLCJTU0xfT1BfTkVUU0NBUEVfREVNT19DSVBIRVJfQ0hBTkdFX0JVRyI6MTA3Mzc0MTgyNCwiU1NMX09QX05FVFNDQVBFX1JFVVNFX0NJUEhFUl9DSEFOR0VfQlVHIjo4LCJTU0xfT1BfTk9fQ09NUFJFU1NJT04iOjEzMTA3MiwiU1NMX09QX05PX1FVRVJZX01UVSI6NDA5'@; put 'NiwiU1NMX09QX05PX1NFU1NJT05fUkVTVU1QVElPTl9PTl9SRU5FR09USUFUSU9OIjo2NTUzNiwiU1NMX09QX05PX1NTTHYyIjoxNjc3NzIxNiwiU1NMX09QX05PX1NTTHYzIjozMzU1NDQzMiwiU1NMX09QX05PX1RJQ0tFVCI6MTYzODQsIlNTTF9PUF9OT19UTFN2MSI6NjcxMDg4NjQsIlNT'@; put 'TF9PUF9OT19UTFN2MV8xIjoyNjg0MzU0NTYsIlNTTF9PUF9OT19UTFN2MV8yIjoxMzQyMTc3MjgsIlNTTF9PUF9QS0NTMV9DSEVDS18xIjowLCJTU0xfT1BfUEtDUzFfQ0hFQ0tfMiI6MCwiU1NMX09QX1NJTkdMRV9ESF9VU0UiOjEwNDg1NzYsIlNTTF9PUF9TSU5HTEVfRUNESF9VU0UiOjUy'@; put 'NDI4OCwiU1NMX09QX1NTTEVBWV8wODBfQ0xJRU5UX0RIX0JVRyI6MTI4LCJTU0xfT1BfU1NMUkVGMl9SRVVTRV9DRVJUX1RZUEVfQlVHIjowLCJTU0xfT1BfVExTX0JMT0NLX1BBRERJTkdfQlVHIjo1MTIsIlNTTF9PUF9UTFNfRDVfQlVHIjoyNTYsIlNTTF9PUF9UTFNfUk9MTEJBQ0tfQlVH'@; put 'Ijo4Mzg4NjA4LCJFTkdJTkVfTUVUSE9EX0RTQSI6MiwiRU5HSU5FX01FVEhPRF9ESCI6NCwiRU5HSU5FX01FVEhPRF9SQU5EIjo4LCJFTkdJTkVfTUVUSE9EX0VDREgiOjE2LCJFTkdJTkVfTUVUSE9EX0VDRFNBIjozMiwiRU5HSU5FX01FVEhPRF9DSVBIRVJTIjo2NCwiRU5HSU5FX01FVEhP'@; put 'RF9ESUdFU1RTIjoxMjgsIkVOR0lORV9NRVRIT0RfU1RPUkUiOjI1NiwiRU5HSU5FX01FVEhPRF9QS0VZX01FVEhTIjo1MTIsIkVOR0lORV9NRVRIT0RfUEtFWV9BU04xX01FVEhTIjoxMDI0LCJFTkdJTkVfTUVUSE9EX0FMTCI6NjU1MzUsIkVOR0lORV9NRVRIT0RfTk9ORSI6MCwiREhfQ0hF'@; put 'Q0tfUF9OT1RfU0FGRV9QUklNRSI6MiwiREhfQ0hFQ0tfUF9OT1RfUFJJTUUiOjEsIkRIX1VOQUJMRV9UT19DSEVDS19HRU5FUkFUT1IiOjQsIkRIX05PVF9TVUlUQUJMRV9HRU5FUkFUT1IiOjgsIk5QTl9FTkFCTEVEIjoxLCJSU0FfUEtDUzFfUEFERElORyI6MSwiUlNBX1NTTFYyM19QQURE'@; put 'SU5HIjoyLCJSU0FfTk9fUEFERElORyI6MywiUlNBX1BLQ1MxX09BRVBfUEFERElORyI6NCwiUlNBX1g5MzFfUEFERElORyI6NSwiUlNBX1BLQ1MxX1BTU19QQURESU5HIjo2LCJQT0lOVF9DT05WRVJTSU9OX0NPTVBSRVNTRUQiOjIsIlBPSU5UX0NPTlZFUlNJT05fVU5DT01QUkVTU0VEIjo0'@; put 'LCJQT0lOVF9DT05WRVJTSU9OX0hZQlJJRCI6NiwiRl9PSyI6MCwiUl9PSyI6NCwiV19PSyI6MiwiWF9PSyI6MSwiVVZfVURQX1JFVVNFQUREUiI6NH0nKX0sOTc5OTpjZT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPUpTT04ucGFyc2UoJ3sibW9kcDEiOnsiZ2VuIjoiMDIiLCJwcmltZSI6'@; put 'ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRj'@; put 'NDJlOWE2M2EzNjIwZmZmZmZmZmZmZmZmZmZmZiJ9LCJtb2RwMiI6eyJnZW4iOiIwMiIsInByaW1lIjoiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNj'@; put 'ZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYyNDExN2M0YjFmZTY0OTI4NjY1MWVjZTY1MzgxZmZmZmZmZmZmZmZmZmZmZiJ9LCJtb2RwNSI6eyJn'@; put 'ZW4iOiIwMiIsInByaW1lIjoiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4'@; put 'NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYyNDExN2M0YjFmZTY0OTI4NjY1MWVjZTQ1YjNkYzIwMDdjYjhhMTYzYmYwNTk4ZGE0ODM2MWM1NWQzOWE2OTE2M2ZhOGZkMjRjZjVmODM2NTVkMjNkY2EzYWQ5NjFjNjJmMzU2'@; put 'MjA4NTUyYmI5ZWQ1MjkwNzcwOTY5NjZkNjcwYzM1NGU0YWJjOTgwNGYxNzQ2YzA4Y2EyMzczMjdmZmZmZmZmZmZmZmZmZmZmIn0sIm1vZHAxNCI6eyJnZW4iOiIwMiIsInByaW1lIjoiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3'@; put 'Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYyNDExN2M0YjFmZTY0'@; put 'OTI4NjY1MWVjZTQ1YjNkYzIwMDdjYjhhMTYzYmYwNTk4ZGE0ODM2MWM1NWQzOWE2OTE2M2ZhOGZkMjRjZjVmODM2NTVkMjNkY2EzYWQ5NjFjNjJmMzU2MjA4NTUyYmI5ZWQ1MjkwNzcwOTY5NjZkNjcwYzM1NGU0YWJjOTgwNGYxNzQ2YzA4Y2ExODIxN2MzMjkwNWU0NjJlMzZjZTNiZTM5ZTc3'@; put 'MmMxODBlODYwMzliMjc4M2EyZWMwN2EyOGZiNWM1NWRmMDZmNGM1MmM5ZGUyYmNiZjY5NTU4MTcxODM5OTU0OTdjZWE5NTZhZTUxNWQyMjYxODk4ZmEwNTEwMTU3MjhlNWE4YWFjYWE2OGZmZmZmZmZmZmZmZmZmZmYifSwibW9kcDE1Ijp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZm'@; put 'ZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2'@; put 'YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBj'@; put 'MzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTE4MjE3YzMyOTA1ZTQ2MmUzNmNlM2JlMzllNzcyYzE4MGU4NjAzOWIyNzgzYTJlYzA3YTI4ZmI1YzU1ZGYwNmY0YzUyYzlkZTJiY2JmNjk1NTgxNzE4Mzk5NTQ5N2NlYTk1NmFlNTE1ZDIyNjE4OThmYTA1MTAxNTcyOGU1YThhYWFjNDJkYWQzMzE3MGQw'@; put 'NDUwN2EzM2E4NTUyMWFiZGYxY2JhNjRlY2ZiODUwNDU4ZGJlZjBhOGFlYTcxNTc1ZDA2MGM3ZGIzOTcwZjg1YTZlMWU0YzdhYmY1YWU4Y2RiMDkzM2Q3MWU4Yzk0ZTA0YTI1NjE5ZGNlZTNkMjI2MWFkMmVlNmJmMTJmZmEwNmQ5OGEwODY0ZDg3NjAyNzMzZWM4NmE2NDUyMWYyYjE4MTc3YjIw'@; put 'MGNiYmUxMTc1NzdhNjE1ZDZjNzcwOTg4YzBiYWQ5NDZlMjA4ZTI0ZmEwNzRlNWFiMzE0M2RiNWJmY2UwZmQxMDhlNGI4MmQxMjBhOTNhZDJjYWZmZmZmZmZmZmZmZmZmZmYifSwibW9kcDE2Ijp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0'@; put 'YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJm'@; put 'YjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTE4'@; put 'MjE3YzMyOTA1ZTQ2MmUzNmNlM2JlMzllNzcyYzE4MGU4NjAzOWIyNzgzYTJlYzA3YTI4ZmI1YzU1ZGYwNmY0YzUyYzlkZTJiY2JmNjk1NTgxNzE4Mzk5NTQ5N2NlYTk1NmFlNTE1ZDIyNjE4OThmYTA1MTAxNTcyOGU1YThhYWFjNDJkYWQzMzE3MGQwNDUwN2EzM2E4NTUyMWFiZGYxY2JhNjRl'@; put 'Y2ZiODUwNDU4ZGJlZjBhOGFlYTcxNTc1ZDA2MGM3ZGIzOTcwZjg1YTZlMWU0YzdhYmY1YWU4Y2RiMDkzM2Q3MWU4Yzk0ZTA0YTI1NjE5ZGNlZTNkMjI2MWFkMmVlNmJmMTJmZmEwNmQ5OGEwODY0ZDg3NjAyNzMzZWM4NmE2NDUyMWYyYjE4MTc3YjIwMGNiYmUxMTc1NzdhNjE1ZDZjNzcwOTg4'@; put 'YzBiYWQ5NDZlMjA4ZTI0ZmEwNzRlNWFiMzE0M2RiNWJmY2UwZmQxMDhlNGI4MmQxMjBhOTIxMDgwMTFhNzIzYzEyYTc4N2U2ZDc4ODcxOWExMGJkYmE1YjI2OTljMzI3MTg2YWY0ZTIzYzFhOTQ2ODM0YjYxNTBiZGEyNTgzZTljYTJhZDQ0Y2U4ZGJiYmMyZGIwNGRlOGVmOTJlOGVmYzE0MWZi'@; put 'ZWNhYTYyODdjNTk0NzRlNmJjMDVkOTliMjk2NGZhMDkwYzNhMjIzM2JhMTg2NTE1YmU3ZWQxZjYxMjk3MGNlZTJkN2FmYjgxYmRkNzYyMTcwNDgxY2QwMDY5MTI3ZDViMDVhYTk5M2I0ZWE5ODhkOGZkZGMxODZmZmI3ZGM5MGE2YzA4ZjRkZjQzNWM5MzQwNjMxOTlmZmZmZmZmZmZmZmZmZmZm'@; put 'In0sIm1vZHAxNyI6eyJnZW4iOiIwMiIsInByaW1lIjoiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUx'@; put 'MzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYyNDExN2M0YjFmZTY0OTI4NjY1MWVjZTQ1YjNkYzIwMDdjYjhhMTYzYmYwNTk4ZGE0ODM2MWM1NWQzOWE2OTE2M2ZhOGZkMjRjZjVmODM2NTVkMjNk'@; put 'Y2EzYWQ5NjFjNjJmMzU2MjA4NTUyYmI5ZWQ1MjkwNzcwOTY5NjZkNjcwYzM1NGU0YWJjOTgwNGYxNzQ2YzA4Y2ExODIxN2MzMjkwNWU0NjJlMzZjZTNiZTM5ZTc3MmMxODBlODYwMzliMjc4M2EyZWMwN2EyOGZiNWM1NWRmMDZmNGM1MmM5ZGUyYmNiZjY5NTU4MTcxODM5OTU0OTdjZWE5NTZh'@; put 'ZTUxNWQyMjYxODk4ZmEwNTEwMTU3MjhlNWE4YWFhYzQyZGFkMzMxNzBkMDQ1MDdhMzNhODU1MjFhYmRmMWNiYTY0ZWNmYjg1MDQ1OGRiZWYwYThhZWE3MTU3NWQwNjBjN2RiMzk3MGY4NWE2ZTFlNGM3YWJmNWFlOGNkYjA5MzNkNzFlOGM5NGUwNGEyNTYxOWRjZWUzZDIyNjFhZDJlZTZiZjEy'@; put 'ZmZhMDZkOThhMDg2NGQ4NzYwMjczM2VjODZhNjQ1MjFmMmIxODE3N2IyMDBjYmJlMTE3NTc3YTYxNWQ2Yzc3MDk4OGMwYmFkOTQ2ZTIwOGUyNGZhMDc0ZTVhYjMxNDNkYjViZmNlMGZkMTA4ZTRiODJkMTIwYTkyMTA4MDExYTcyM2MxMmE3ODdlNmQ3ODg3MTlhMTBiZGJhNWIyNjk5YzMyNzE4'@; put 'NmFmNGUyM2MxYTk0NjgzNGI2MTUwYmRhMjU4M2U5Y2EyYWQ0NGNlOGRiYmJjMmRiMDRkZThlZjkyZThlZmMxNDFmYmVjYWE2Mjg3YzU5NDc0ZTZiYzA1ZDk5YjI5NjRmYTA5MGMzYTIyMzNiYTE4NjUxNWJlN2VkMWY2MTI5NzBjZWUyZDdhZmI4MWJkZDc2MjE3MDQ4MWNkMDA2OTEyN2Q1YjA1'@; put 'YWE5OTNiNGVhOTg4ZDhmZGRjMTg2ZmZiN2RjOTBhNmMwOGY0ZGY0MzVjOTM0MDI4NDkyMzZjM2ZhYjRkMjdjNzAyNmMxZDRkY2IyNjAyNjQ2ZGVjOTc1MWU3NjNkYmEzN2JkZjhmZjk0MDZhZDllNTMwZWU1ZGIzODJmNDEzMDAxYWViMDZhNTNlZDkwMjdkODMxMTc5NzI3YjA4NjVhODkxOGRh'@; put 'M2VkYmViY2Y5YjE0ZWQ0NGNlNmNiYWNlZDRiYjFiZGI3ZjE0NDdlNmNjMjU0YjMzMjA1MTUxMmJkN2FmNDI2ZmI4ZjQwMTM3OGNkMmJmNTk4M2NhMDFjNjRiOTJlY2YwMzJlYTE1ZDE3MjFkMDNmNDgyZDdjZTZlNzRmZWY2ZDU1ZTcwMmY0Njk4MGM4MmI1YTg0MDMxOTAwYjFjOWU1OWU3Yzk3'@; put 'ZmJlYzdlOGYzMjNhOTdhN2UzNmNjODhiZTBmMWQ0NWI3ZmY1ODVhYzU0YmQ0MDdiMjJiNDE1NGFhY2M4ZjZkN2ViZjQ4ZTFkODE0Y2M1ZWQyMGY4MDM3ZTBhNzk3MTVlZWYyOWJlMzI4MDZhMWQ1OGJiN2M1ZGE3NmY1NTBhYTNkOGExZmJmZjBlYjE5Y2NiMWEzMTNkNTVjZGE1NmM5ZWMyZWYy'@; put 'OTYzMjM4N2ZlOGQ3NmUzYzA0NjgwNDNlOGY2NjNmNDg2MGVlMTJiZjJkNWIwYjc0NzRkNmU2OTRmOTFlNmRjYzQwMjRmZmZmZmZmZmZmZmZmZmZmIn0sIm1vZHAxOCI6eyJnZW4iOiIwMiIsInByaW1lIjoiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2Qx'@; put 'MjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYy'@; put 'NDExN2M0YjFmZTY0OTI4NjY1MWVjZTQ1YjNkYzIwMDdjYjhhMTYzYmYwNTk4ZGE0ODM2MWM1NWQzOWE2OTE2M2ZhOGZkMjRjZjVmODM2NTVkMjNkY2EzYWQ5NjFjNjJmMzU2MjA4NTUyYmI5ZWQ1MjkwNzcwOTY5NjZkNjcwYzM1NGU0YWJjOTgwNGYxNzQ2YzA4Y2ExODIxN2MzMjkwNWU0NjJl'@; put 'MzZjZTNiZTM5ZTc3MmMxODBlODYwMzliMjc4M2EyZWMwN2EyOGZiNWM1NWRmMDZmNGM1MmM5ZGUyYmNiZjY5NTU4MTcxODM5OTU0OTdjZWE5NTZhZTUxNWQyMjYxODk4ZmEwNTEwMTU3MjhlNWE4YWFhYzQyZGFkMzMxNzBkMDQ1MDdhMzNhODU1MjFhYmRmMWNiYTY0ZWNmYjg1MDQ1OGRiZWYw'@; put 'YThhZWE3MTU3NWQwNjBjN2RiMzk3MGY4NWE2ZTFlNGM3YWJmNWFlOGNkYjA5MzNkNzFlOGM5NGUwNGEyNTYxOWRjZWUzZDIyNjFhZDJlZTZiZjEyZmZhMDZkOThhMDg2NGQ4NzYwMjczM2VjODZhNjQ1MjFmMmIxODE3N2IyMDBjYmJlMTE3NTc3YTYxNWQ2Yzc3MDk4OGMwYmFkOTQ2ZTIwOGUy'@; put 'NGZhMDc0ZTVhYjMxNDNkYjViZmNlMGZkMTA4ZTRiODJkMTIwYTkyMTA4MDExYTcyM2MxMmE3ODdlNmQ3ODg3MTlhMTBiZGJhNWIyNjk5YzMyNzE4NmFmNGUyM2MxYTk0NjgzNGI2MTUwYmRhMjU4M2U5Y2EyYWQ0NGNlOGRiYmJjMmRiMDRkZThlZjkyZThlZmMxNDFmYmVjYWE2Mjg3YzU5NDc0'@; put 'ZTZiYzA1ZDk5YjI5NjRmYTA5MGMzYTIyMzNiYTE4NjUxNWJlN2VkMWY2MTI5NzBjZWUyZDdhZmI4MWJkZDc2MjE3MDQ4MWNkMDA2OTEyN2Q1YjA1YWE5OTNiNGVhOTg4ZDhmZGRjMTg2ZmZiN2RjOTBhNmMwOGY0ZGY0MzVjOTM0MDI4NDkyMzZjM2ZhYjRkMjdjNzAyNmMxZDRkY2IyNjAyNjQ2'@; put 'ZGVjOTc1MWU3NjNkYmEzN2JkZjhmZjk0MDZhZDllNTMwZWU1ZGIzODJmNDEzMDAxYWViMDZhNTNlZDkwMjdkODMxMTc5NzI3YjA4NjVhODkxOGRhM2VkYmViY2Y5YjE0ZWQ0NGNlNmNiYWNlZDRiYjFiZGI3ZjE0NDdlNmNjMjU0YjMzMjA1MTUxMmJkN2FmNDI2ZmI4ZjQwMTM3OGNkMmJmNTk4'@; put 'M2NhMDFjNjRiOTJlY2YwMzJlYTE1ZDE3MjFkMDNmNDgyZDdjZTZlNzRmZWY2ZDU1ZTcwMmY0Njk4MGM4MmI1YTg0MDMxOTAwYjFjOWU1OWU3Yzk3ZmJlYzdlOGYzMjNhOTdhN2UzNmNjODhiZTBmMWQ0NWI3ZmY1ODVhYzU0YmQ0MDdiMjJiNDE1NGFhY2M4ZjZkN2ViZjQ4ZTFkODE0Y2M1ZWQy'@; put 'MGY4MDM3ZTBhNzk3MTVlZWYyOWJlMzI4MDZhMWQ1OGJiN2M1ZGE3NmY1NTBhYTNkOGExZmJmZjBlYjE5Y2NiMWEzMTNkNTVjZGE1NmM5ZWMyZWYyOTYzMjM4N2ZlOGQ3NmUzYzA0NjgwNDNlOGY2NjNmNDg2MGVlMTJiZjJkNWIwYjc0NzRkNmU2OTRmOTFlNmRiZTExNTk3NGEzOTI2ZjEyZmVl'@; put 'NWU0Mzg3NzdjYjZhOTMyZGY4Y2Q4YmVjNGQwNzNiOTMxYmEzYmM4MzJiNjhkOWRkMzAwNzQxZmE3YmY4YWZjNDdlZDI1NzZmNjkzNmJhNDI0NjYzYWFiNjM5YzVhZTRmNTY4MzQyM2I0NzQyYmYxYzk3ODIzOGYxNmNiZTM5ZDY1MmRlM2ZkYjhiZWZjODQ4YWQ5MjIyMjJlMDRhNDAzN2MwNzEz'@; put 'ZWI1N2E4MWEyM2YwYzczNDczZmM2NDZjZWEzMDZiNGJjYmM4ODYyZjgzODVkZGZhOWQ0YjdmYTJjMDg3ZTg3OTY4MzMwM2VkNWJkZDNhMDYyYjNjZjViM2EyNzhhNjZkMmExM2Y4M2Y0NGY4MmRkZjMxMGVlMDc0YWI2YTM2NDU5N2U4OTlhMDI1NWRjMTY0ZjMxY2M1MDg0Njg1MWRmOWFiNDgx'@; put 'OTVkZWQ3ZWExYjFkNTEwYmQ3ZWU3NGQ3M2ZhZjM2YmMzMWVjZmEyNjgzNTkwNDZmNGViODc5ZjkyNDAwOTQzOGI0ODFjNmNkNzg4OWEwMDJlZDVlZTM4MmJjOTE5MGRhNmZjMDI2ZTQ3OTU1OGU0NDc1Njc3ZTlhYTllMzA1MGUyNzY1Njk0ZGZjODFmNTZlODgwYjk2ZTcxNjBjOTgwZGQ5OGVk'@; put 'ZDNkZmZmZmZmZmZmZmZmZmZmZmYifX0nKX0sODU5NzpjZT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPXtpODoiNi42LjEifX0sMjU2MjpjZT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPUpTT04ucGFyc2UoJ3siMi4xNi44NDAuMS4xMDEuMy40LjEuMSI6ImFlcy0xMjgtZWNiIiwiMi4x'@; put 'Ni44NDAuMS4xMDEuMy40LjEuMiI6ImFlcy0xMjgtY2JjIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuMyI6ImFlcy0xMjgtb2ZiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuNCI6ImFlcy0xMjgtY2ZiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuMjEiOiJhZXMtMTkyLWVjYiIsIjIuMTYuODQwLjEu'@; put 'MTAxLjMuNC4xLjIyIjoiYWVzLTE5Mi1jYmMiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4yMyI6ImFlcy0xOTItb2ZiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuMjQiOiJhZXMtMTkyLWNmYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjQxIjoiYWVzLTI1Ni1lY2IiLCIyLjE2Ljg0MC4xLjEwMS4z'@; put 'LjQuMS40MiI6ImFlcy0yNTYtY2JjIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuNDMiOiJhZXMtMjU2LW9mYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjQ0IjoiYWVzLTI1Ni1jZmIifScpfX0sX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fPXt9O2Z1bmN0aW9uIF9fbmVzdGVkX3dlYnBhY2tfcmVx'@; put 'dWlyZV8yODk0OTI2X18oY2Upe3ZhciBKPV9fd2VicGFja19tb2R1bGVfY2FjaGVfX1tjZV07aWYodm9pZCAwIT09SilyZXR1cm4gSi5leHBvcnRzO3ZhciBiPV9fd2VicGFja19tb2R1bGVfY2FjaGVfX1tjZV09e2lkOmNlLGxvYWRlZDohMSxleHBvcnRzOnt9fTtyZXR1cm4gX193ZWJwYWNr'@; put 'X21vZHVsZXNfX1tjZV0uY2FsbChiLmV4cG9ydHMsYixiLmV4cG9ydHMsX19uZXN0ZWRfd2VicGFja19yZXF1aXJlXzI4OTQ5MjZfXyksYi5sb2FkZWQ9ITAsYi5leHBvcnRzfV9fbmVzdGVkX3dlYnBhY2tfcmVxdWlyZV8yODk0OTI2X18uZD0oY2UsSik9Pntmb3IodmFyIGIgaW4gSilfX25l'@; put 'c3RlZF93ZWJwYWNrX3JlcXVpcmVfMjg5NDkyNl9fLm8oSixiKSYmIV9fbmVzdGVkX3dlYnBhY2tfcmVxdWlyZV8yODk0OTI2X18ubyhjZSxiKSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGNlLGIse2VudW1lcmFibGU6ITAsZ2V0OkpbYl19KX0sX19uZXN0ZWRfd2VicGFja19yZXF1aXJlXzI4'@; put 'OTQ5MjZfXy5nPWZ1bmN0aW9uKCl7aWYoIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzKXJldHVybiBnbG9iYWxUaGlzO3RyeXtyZXR1cm4gdGhpc3x8bmV3IEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCl9Y2F0Y2h7aWYoIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cpcmV0dXJuIHdpbmRvd319'@; put 'KCksX19uZXN0ZWRfd2VicGFja19yZXF1aXJlXzI4OTQ5MjZfXy5vPShjZSxKKT0+T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGNlLEopLF9fbmVzdGVkX3dlYnBhY2tfcmVxdWlyZV8yODk0OTI2X18ucj1jZT0+e3R5cGVvZiBTeW1ib2w8InUiJiZTeW1ib2wudG9TdHJp'@; put 'bmdUYWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShjZSxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOiJNb2R1bGUifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGNlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sX19uZXN0ZWRfd2VicGFja19yZXF1aXJlXzI4OTQ5MjZfXy5ubWQ9Y2U9Pihj'@; put 'ZS5wYXRocz1bXSxjZS5jaGlsZHJlbnx8KGNlLmNoaWxkcmVuPVtdKSxjZSk7dmFyIF9fbmVzdGVkX3dlYnBhY2tfZXhwb3J0c19fPV9fbmVzdGVkX3dlYnBhY2tfcmVxdWlyZV8yODk0OTI2X18oMzYwNyk7cmV0dXJuIF9fbmVzdGVkX3dlYnBhY2tfZXhwb3J0c19ffSkoKSxtb2R1bGUuZXhw'@; put 'b3J0cz1iKCl9LDU5NDg6ZnVuY3Rpb24oY2UsSixiKXsidXNlIHN0cmljdCI7dmFyIEQ9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKEgpe3JldHVybiBIJiZILl9fZXNNb2R1bGU/SDp7ZGVmYXVsdDpIfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KEosIl9fZXNNb2R1bGUi'@; put 'LHt2YWx1ZTohMH0pLEouaXNTcGVjaWFsTWlzc2luZz1KLmNob2ljZVZhbGlkYXRvcj1KLmNvbmZpcm1hdGlvblZhbGlkYXRvcj1KLnVybFZhbGlkYXRvcj12b2lkIDA7Y29uc3QgXz1EKGIoMTI5NTQpKTtKLnVybFZhbGlkYXRvcj0oSCxSKT0+ISFfLmRlZmF1bHQuaXNIdHRwVXJpKEgpfHwh'@; put 'IV8uZGVmYXVsdC5pc0h0dHBzVXJpKEgpfHwiIj09PUh8fFIsSi5jb25maXJtYXRpb25WYWxpZGF0b3I9SD0+ITA9PT1IfHwhMT09PUgsSi5jaG9pY2VWYWxpZGF0b3I9KEgsUixqKT0+SD4wJiZIPD1SfHxqLEouaXNTcGVjaWFsTWlzc2luZz1IPT4oInN0cmluZyIhPXR5cGVvZiBIfHwhSC5p'@; put 'bmNsdWRlcygiLi4iKSkmJm5ldyBSZWdFeHAoIl4oXFwuKT9bYS16Xy5dezF9JCIsImkiKS50ZXN0KEgpfSwxMzI0NzooY2UsSik9PnsidXNlIHN0cmljdCI7dmFyIF87Si5ZPXZvaWQgMCwoXz1KLll8fChKLlk9e30pKS5TYXNWaXlhPSJTQVNWSVlBIixfLlNhczk9IlNBUzkiLF8uU2FzanM9'@; put 'IlNBU0pTIn0sMjUwMDE6KGNlLEopPT57InVzZSBzdHJpY3QiO0ouQz12b2lkIDAsSi5DPShfLHA9MSxOPTEwOTk1MTE2Mjc3NzYpPT57aWYoMD09PV8pcmV0dXJuIjAgQiI7Xz1fPk4/TjpfO2NvbnN0IEg9cDwwPzA6cCxSPU1hdGguZmxvb3IoTWF0aC5sb2coXykvTWF0aC5sb2coMTAyNCkp'@; put 'O3JldHVybihfL01hdGgucG93KDEwMjQsUikpLnRvRml4ZWQoSCkrIiAiK1siQiIsIktCIiwiTUIiLCJHQiIsIlRCIl1bUl19fSw0MjkyNDpmdW5jdGlvbihjZSl7dmFyIEo9e3ZlcnNpb246IjEuMTUuMCJ9O0pbNDM3XT1mdW5jdGlvbigpe2Zvcih2YXIgYj0iXDBceDAxXHgwMlx4MDNceDA0'@; put 'XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFi'@; put 'Y2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZceGM3XHhmY1x4ZTlceGUyXHhlNFx4ZTBceGU1XHhlN1x4ZWFceGViXHhlOFx4ZWZceGVlXHhlY1x4YzRceGM1XHhjOVx4ZTZceGM2XHhmNFx4ZjZceGYyXHhmYlx4ZjlceGZmXHhkNlx4ZGNceGEyXHhhM1x4YTVcdTIwYTdcdTAxOTJc'@; put 'eGUxXHhlZFx4ZjNceGZhXHhmMVx4ZDFceGFhXHhiYVx4YmZcdTIzMTBceGFjXHhiZFx4YmNceGExXHhhYlx4YmJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFcdTI1NjJcdTI1NTZcdTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRcdTI1NWNcdTI1NWJcdTI1MTBcdTI1'@; put 'MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTI1NWVcdTI1NWZcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNcdTI1NjdcdTI1NjhcdTI1NjRcdTI1NjVcdTI1NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NmJcdTI1NmFcdTI1MThcdTI1MGNcdTI1ODhc'@; put 'dTI1ODRcdTI1OGNcdTI1OTBcdTI1ODBcdTAzYjFceGRmXHUwMzkzXHUwM2MwXHUwM2EzXHUwM2MzXHhiNVx1MDNjNFx1MDNhNlx1MDM5OFx1MDNhOVx1MDNiNFx1MjIxZVx1MDNjNlx1MDNiNVx1MjIyOVx1MjI2MVx4YjFcdTIyNjVcdTIyNjRcdTIzMjBcdTIzMjFceGY3XHUyMjQ4XHhiMFx1'@; put 'MjIxOVx4YjdcdTIyMWFcdTIwN2ZceGIyXHUyNWEwXHhhMCIsRD1bXSxfPXt9LHA9MDsyNTYhPXA7KytwKTY1NTMzIT09Yi5jaGFyQ29kZUF0KHApJiYoX1tiLmNoYXJBdChwKV09cCksRFtwXT1iLmNoYXJBdChwKTtyZXR1cm57ZW5jOl8sZGVjOkR9fSgpLEpbNjIwXT1mdW5jdGlvbigpe2Zv'@; put 'cih2YXIgYj0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdI'@; put 'SUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZceGM3XHhmY1x4ZTlceGUyXHhlNFx4ZTBcdTAxMDVceGU3XHhlYVx4ZWJceGU4XHhlZlx4ZWVcdTAxMDdceGM0XHUwMTA0XHUwMTE4XHUwMTE5XHUwMTQyXHhmNFx4ZjZcdTAxMDZceGZi'@; put 'XHhmOVx1MDE1YVx4ZDZceGRjXHhhMlx1MDE0MVx4YTVcdTAxNWJcdTAxOTJcdTAxNzlcdTAxN2JceGYzXHhkM1x1MDE0NFx1MDE0M1x1MDE3YVx1MDE3Y1x4YmZcdTIzMTBceGFjXHhiZFx4YmNceGExXHhhYlx4YmJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFcdTI1NjJc'@; put 'dTI1NTZcdTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRcdTI1NWNcdTI1NWJcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTI1NWVcdTI1NWZcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNcdTI1NjdcdTI1NjhcdTI1NjRcdTI1'@; put 'NjVcdTI1NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NmJcdTI1NmFcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTI1OGNcdTI1OTBcdTI1ODBcdTAzYjFceGRmXHUwMzkzXHUwM2MwXHUwM2EzXHUwM2MzXHhiNVx1MDNjNFx1MDNhNlx1MDM5OFx1MDNhOVx1MDNiNFx1MjIxZVx1MDNjNlx1MDNi'@; put 'NVx1MjIyOVx1MjI2MVx4YjFcdTIyNjVcdTIyNjRcdTIzMjBcdTIzMjFceGY3XHUyMjQ4XHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIwN2ZceGIyXHUyNWEwXHhhMCIsRD1bXSxfPXt9LHA9MDsyNTYhPXA7KytwKTY1NTMzIT09Yi5jaGFyQ29kZUF0KHApJiYoX1tiLmNoYXJBdChwKV09cCksRFtw'@; put 'XT1iLmNoYXJBdChwKTtyZXR1cm57ZW5jOl8sZGVjOkR9fSgpLEpbNzM3XT1mdW5jdGlvbigpe2Zvcih2YXIgYj0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJc'@; put 'eDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZcdTAzOTFcdTAzOTJcdTAzOTNcdTAzOTRcdTAzOTVcdTAzOTZcdTAzOTdcdTAzOThc'@; put 'dTAzOTlcdTAzOWFcdTAzOWJcdTAzOWNcdTAzOWRcdTAzOWVcdTAzOWZcdTAzYTBcdTAzYTFcdTAzYTNcdTAzYTRcdTAzYTVcdTAzYTZcdTAzYTdcdTAzYThcdTAzYTlcdTAzYjFcdTAzYjJcdTAzYjNcdTAzYjRcdTAzYjVcdTAzYjZcdTAzYjdcdTAzYjhcdTAzYjlcdTAzYmFcdTAzYmJcdTAz'@; put 'YmNcdTAzYmRcdTAzYmVcdTAzYmZcdTAzYzBcdTAzYzFcdTAzYzNcdTAzYzJcdTAzYzRcdTAzYzVcdTAzYzZcdTAzYzdcdTAzYzhcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFcdTI1NjJcdTI1NTZcdTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRcdTI1NWNcdTI1NWJc'@; put 'dTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTI1NWVcdTI1NWZcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNcdTI1NjdcdTI1NjhcdTI1NjRcdTI1NjVcdTI1NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NmJcdTI1NmFcdTI1MThcdTI1'@; put 'MGNcdTI1ODhcdTI1ODRcdTI1OGNcdTI1OTBcdTI1ODBcdTAzYzlcdTAzYWNcdTAzYWRcdTAzYWVcdTAzY2FcdTAzYWZcdTAzY2NcdTAzY2RcdTAzY2JcdTAzY2VcdTAzODZcdTAzODhcdTAzODlcdTAzOGFcdTAzOGNcdTAzOGVcdTAzOGZceGIxXHUyMjY1XHUyMjY0XHUwM2FhXHUwM2FiXHhm'@; put 'N1x1MjI0OFx4YjBcdTIyMTlceGI3XHUyMjFhXHUyMDdmXHhiMlx1MjVhMFx4YTAiLEQ9W10sXz17fSxwPTA7MjU2IT1wOysrcCk2NTUzMyE9PWIuY2hhckNvZGVBdChwKSYmKF9bYi5jaGFyQXQocCldPXApLERbcF09Yi5jaGFyQXQocCk7cmV0dXJue2VuYzpfLGRlYzpEfX0oKSxKWzg1MF09'@; put 'ZnVuY3Rpb24oKXtmb3IodmFyIGI9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7'@; put 'PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHhjN1x4ZmNceGU5XHhlMlx4ZTRceGUwXHhlNVx4ZTdceGVhXHhlYlx4ZThceGVmXHhlZVx4ZWNceGM0XHhjNVx4YzlceGU2XHhjNlx4ZjRceGY2XHhmMlx4ZmJc'@; put 'eGY5XHhmZlx4ZDZceGRjXHhmOFx4YTNceGQ4XHhkN1x1MDE5Mlx4ZTFceGVkXHhmM1x4ZmFceGYxXHhkMVx4YWFceGJhXHhiZlx4YWVceGFjXHhiZFx4YmNceGExXHhhYlx4YmJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRceGMxXHhjMlx4YzBceGE5XHUyNTYzXHUyNTUxXHUyNTU3'@; put 'XHUyNTVkXHhhMlx4YTVcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NceGUzXHhjM1x1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x4YTRceGYwXHhkMFx4Y2FceGNiXHhjOFx1MDEzMVx4Y2RceGNlXHhjZlx1MjUxOFx1MjUwY1x1MjU4'@; put 'OFx1MjU4NFx4YTZceGNjXHUyNTgwXHhkM1x4ZGZceGQ0XHhkMlx4ZjVceGQ1XHhiNVx4ZmVceGRlXHhkYVx4ZGJceGQ5XHhmZFx4ZGRceGFmXHhiNFx4YWRceGIxXHUyMDE3XHhiZVx4YjZceGE3XHhmN1x4YjhceGIwXHhhOFx4YjdceGI5XHhiM1x4YjJcdTI1YTBceGEwIixEPVtdLF89e30s'@; put 'cD0wOzI1NiE9cDsrK3ApNjU1MzMhPT1iLmNoYXJDb2RlQXQocCkmJihfW2IuY2hhckF0KHApXT1wKSxEW3BdPWIuY2hhckF0KHApO3JldHVybntlbmM6XyxkZWM6RH19KCksSls4NTJdPWZ1bmN0aW9uKCl7Zm9yKHZhciBiPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5c'@; put 'dlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1'@; put 'dnd4eXp7fH1+XHg3Zlx4YzdceGZjXHhlOVx4ZTJceGU0XHUwMTZmXHUwMTA3XHhlN1x1MDE0Mlx4ZWJcdTAxNTBcdTAxNTFceGVlXHUwMTc5XHhjNFx1MDEwNlx4YzlcdTAxMzlcdTAxM2FceGY0XHhmNlx1MDEzZFx1MDEzZVx1MDE1YVx1MDE1Ylx4ZDZceGRjXHUwMTY0XHUwMTY1XHUwMTQx'@; put 'XHhkN1x1MDEwZFx4ZTFceGVkXHhmM1x4ZmFcdTAxMDRcdTAxMDVcdTAxN2RcdTAxN2VcdTAxMThcdTAxMTlceGFjXHUwMTdhXHUwMTBjXHUwMTVmXHhhYlx4YmJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRceGMxXHhjMlx1MDExYVx1MDE1ZVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1'@; put 'ZFx1MDE3Ylx1MDE3Y1x1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MDEwMlx1MDEwM1x1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x4YTRcdTAxMTFcdTAxMTBcdTAxMGVceGNiXHUwMTBmXHUwMTQ3XHhjZFx4Y2VcdTAxMWJcdTI1'@; put 'MThcdTI1MGNcdTI1ODhcdTI1ODRcdTAxNjJcdTAxNmVcdTI1ODBceGQzXHhkZlx4ZDRcdTAxNDNcdTAxNDRcdTAxNDhcdTAxNjBcdTAxNjFcdTAxNTRceGRhXHUwMTU1XHUwMTcwXHhmZFx4ZGRcdTAxNjNceGI0XHhhZFx1MDJkZFx1MDJkYlx1MDJjN1x1MDJkOFx4YTdceGY3XHhiOFx4YjBc'@; put 'eGE4XHUwMmQ5XHUwMTcxXHUwMTU4XHUwMTU5XHUyNWEwXHhhMCIsRD1bXSxfPXt9LHA9MDsyNTYhPXA7KytwKTY1NTMzIT09Yi5jaGFyQ29kZUF0KHApJiYoX1tiLmNoYXJBdChwKV09cCksRFtwXT1iLmNoYXJBdChwKTtyZXR1cm57ZW5jOl8sZGVjOkR9fSgpLEpbODU3XT1mdW5jdGlvbigp'@; put 'e2Zvcih2YXIgYj0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RF'@; put 'RkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZceGM3XHhmY1x4ZTlceGUyXHhlNFx4ZTBceGU1XHhlN1x4ZWFceGViXHhlOFx4ZWZceGVlXHUwMTMxXHhjNFx4YzVceGM5XHhlNlx4YzZceGY0XHhmNlx4ZjJceGZiXHhmOVx1MDEz'@; put 'MFx4ZDZceGRjXHhmOFx4YTNceGQ4XHUwMTVlXHUwMTVmXHhlMVx4ZWRceGYzXHhmYVx4ZjFceGQxXHUwMTFlXHUwMTFmXHhiZlx4YWVceGFjXHhiZFx4YmNceGExXHhhYlx4YmJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRceGMxXHhjMlx4YzBceGE5XHUyNTYzXHUyNTUxXHUyNTU3'@; put 'XHUyNTVkXHhhMlx4YTVcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NceGUzXHhjM1x1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x4YTRceGJhXHhhYVx4Y2FceGNiXHhjOFx1ZmZmZFx4Y2RceGNlXHhjZlx1MjUxOFx1MjUwY1x1MjU4'@; put 'OFx1MjU4NFx4YTZceGNjXHUyNTgwXHhkM1x4ZGZceGQ0XHhkMlx4ZjVceGQ1XHhiNVx1ZmZmZFx4ZDdceGRhXHhkYlx4ZDlceGVjXHhmZlx4YWZceGI0XHhhZFx4YjFcdWZmZmRceGJlXHhiNlx4YTdceGY3XHhiOFx4YjBceGE4XHhiN1x4YjlceGIzXHhiMlx1MjVhMFx4YTAiLEQ9W10sXz17'@; put 'fSxwPTA7MjU2IT1wOysrcCk2NTUzMyE9PWIuY2hhckNvZGVBdChwKSYmKF9bYi5jaGFyQXQocCldPXApLERbcF09Yi5jaGFyQXQocCk7cmV0dXJue2VuYzpfLGRlYzpEfX0oKSxKWzg2MV09ZnVuY3Rpb24oKXtmb3IodmFyIGI9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRc'@; put 'blx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJz'@; put 'dHV2d3h5ent8fX5ceDdmXHhjN1x4ZmNceGU5XHhlMlx4ZTRceGUwXHhlNVx4ZTdceGVhXHhlYlx4ZThceGQwXHhmMFx4ZGVceGM0XHhjNVx4YzlceGU2XHhjNlx4ZjRceGY2XHhmZVx4ZmJceGRkXHhmZFx4ZDZceGRjXHhmOFx4YTNceGQ4XHUyMGE3XHUwMTkyXHhlMVx4ZWRceGYzXHhmYVx4'@; put 'YzFceGNkXHhkM1x4ZGFceGJmXHUyMzEwXHhhY1x4YmRceGJjXHhhMVx4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUyNTVjXHUyNTViXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUy'@; put 'NTFjXHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZiXHUyNTZhXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkw'@; put 'XHUyNTgwXHUwM2IxXHhkZlx1MDM5M1x1MDNjMFx1MDNhM1x1MDNjM1x4YjVcdTAzYzRcdTAzYTZcdTAzOThcdTAzYTlcdTAzYjRcdTIyMWVcdTAzYzZcdTAzYjVcdTIyMjlcdTIyNjFceGIxXHUyMjY1XHUyMjY0XHUyMzIwXHUyMzIxXHhmN1x1MjI0OFx4YjBcdTIyMTlceGI3XHUyMjFhXHUy'@; put 'MDdmXHhiMlx1MjVhMFx4YTAiLEQ9W10sXz17fSxwPTA7MjU2IT1wOysrcCk2NTUzMyE9PWIuY2hhckNvZGVBdChwKSYmKF9bYi5jaGFyQXQocCldPXApLERbcF09Yi5jaGFyQXQocCk7cmV0dXJue2VuYzpfLGRlYzpEfX0oKSxKWzg2NV09ZnVuY3Rpb24oKXtmb3IodmFyIGI9IlwwXHgwMVx4'@; put 'MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZ'@; put 'WltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHhjN1x4ZmNceGU5XHhlMlx4ZTRceGUwXHhlNVx4ZTdceGVhXHhlYlx4ZThceGVmXHhlZVx4ZWNceGM0XHhjNVx4YzlceGU2XHhjNlx4ZjRceGY2XHhmMlx4ZmJceGY5XHhmZlx4ZDZceGRjXHhmOFx4YTNceGQ4XHUy'@; put 'MGE3XHUwMTkyXHhlMVx4ZWRceGYzXHhmYVx4ZjFceGQxXHhhYVx4YmFceGJmXHUyMzEwXHhhY1x4YmRceGJjXHhhMVx4YWJceGE0XHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUyNTVjXHUyNTVi'@; put 'XHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZiXHUyNTZhXHUyNTE4XHUy'@; put 'NTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwM2IxXHhkZlx1MDM5M1x1MDNjMFx1MDNhM1x1MDNjM1x4YjVcdTAzYzRcdTAzYTZcdTAzOThcdTAzYTlcdTAzYjRcdTIyMWVcdTAzYzZcdTAzYjVcdTIyMjlcdTIyNjFceGIxXHUyMjY1XHUyMjY0XHUyMzIwXHUyMzIxXHhmN1x1'@; put 'MjI0OFx4YjBcdTIyMTlceGI3XHUyMjFhXHUyMDdmXHhiMlx1MjVhMFx4YTAiLEQ9W10sXz17fSxwPTA7MjU2IT1wOysrcCk2NTUzMyE9PWIuY2hhckNvZGVBdChwKSYmKF9bYi5jaGFyQXQocCldPXApLERbcF09Yi5jaGFyQXQocCk7cmV0dXJue2VuYzpfLGRlYzpEfX0oKSxKWzg2Nl09ZnVu'@; put 'Y3Rpb24oKXtmb3IodmFyIGI9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+'@; put 'P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHUwNDEwXHUwNDExXHUwNDEyXHUwNDEzXHUwNDE0XHUwNDE1XHUwNDE2XHUwNDE3XHUwNDE4XHUwNDE5XHUwNDFhXHUwNDFiXHUwNDFjXHUwNDFkXHUwNDFlXHUwNDFm'@; put 'XHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5XHUwNDJhXHUwNDJiXHUwNDJjXHUwNDJkXHUwNDJlXHUwNDJmXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUw'@; put 'NDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUyNTVjXHUyNTViXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUyNTVl'@; put 'XHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZiXHUyNTZhXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwNDQwXHUwNDQxXHUw'@; put 'NDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHUwNDRmXHUwNDAxXHUwNDUxXHUwNDA0XHUwNDU0XHUwNDA3XHUwNDU3XHUwNDBlXHUwNDVlXHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIxMTZceGE0XHUyNWEw'@; put 'XHhhMCIsRD1bXSxfPXt9LHA9MDsyNTYhPXA7KytwKTY1NTMzIT09Yi5jaGFyQ29kZUF0KHApJiYoX1tiLmNoYXJBdChwKV09cCksRFtwXT1iLmNoYXJBdChwKTtyZXR1cm57ZW5jOl8sZGVjOkR9fSgpLEpbODc0XT1mdW5jdGlvbigpe2Zvcih2YXIgYj0iXDBceDAxXHgwMlx4MDNceDA0XHgw'@; put 'NVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2Rl'@; put 'ZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZcdTIwYWNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTIwMjZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIw'@; put 'MTNcdTIwMTRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRceGEwXHUwZTAxXHUwZTAyXHUwZTAzXHUwZTA0XHUwZTA1XHUwZTA2XHUwZTA3XHUwZTA4XHUwZTA5XHUwZTBhXHUwZTBiXHUwZTBjXHUwZTBkXHUwZTBlXHUwZTBmXHUwZTEwXHUwZTExXHUw'@; put 'ZTEyXHUwZTEzXHUwZTE0XHUwZTE1XHUwZTE2XHUwZTE3XHUwZTE4XHUwZTE5XHUwZTFhXHUwZTFiXHUwZTFjXHUwZTFkXHUwZTFlXHUwZTFmXHUwZTIwXHUwZTIxXHUwZTIyXHUwZTIzXHUwZTI0XHUwZTI1XHUwZTI2XHUwZTI3XHUwZTI4XHUwZTI5XHUwZTJhXHUwZTJiXHUwZTJjXHUwZTJk'@; put 'XHUwZTJlXHUwZTJmXHUwZTMwXHUwZTMxXHUwZTMyXHUwZTMzXHUwZTM0XHUwZTM1XHUwZTM2XHUwZTM3XHUwZTM4XHUwZTM5XHUwZTNhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwZTNmXHUwZTQwXHUwZTQxXHUwZTQyXHUwZTQzXHUwZTQ0XHUwZTQ1XHUwZTQ2XHUwZTQ3XHUwZTQ4XHUw'@; put 'ZTQ5XHUwZTRhXHUwZTRiXHUwZTRjXHUwZTRkXHUwZTRlXHUwZTRmXHUwZTUwXHUwZTUxXHUwZTUyXHUwZTUzXHUwZTU0XHUwZTU1XHUwZTU2XHUwZTU3XHUwZTU4XHUwZTU5XHUwZTVhXHUwZTViXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIixEPVtdLF89e30scD0wOzI1NiE9cDsrK3ApNjU1'@; put 'MzMhPT1iLmNoYXJDb2RlQXQocCkmJihfW2IuY2hhckF0KHApXT1wKSxEW3BdPWIuY2hhckF0KHApO3JldHVybntlbmM6XyxkZWM6RH19KCksSls4OTVdPWZ1bmN0aW9uKCl7Zm9yKHZhciBiPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBc'@; put 'eDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MDEw'@; put 'Y1x4ZmNceGU5XHUwMTBmXHhlNFx1MDEwZVx1MDE2NFx1MDEwZFx1MDExYlx1MDExYVx1MDEzOVx4Y2RcdTAxM2VcdTAxZWFceGM0XHhjMVx4YzlcdTAxN2VcdTAxN2RceGY0XHhmNlx4ZDNcdTAxNmZceGRhXHhmZFx4ZDZceGRjXHUwMTYwXHUwMTNkXHhkZFx1MDE1OFx1MDE2NVx4ZTFceGVk'@; put 'XHhmM1x4ZmFcdTAxNDhcdTAxNDdcdTAxNmVceGQ0XHUwMTYxXHUwMTU5XHUwMTU1XHUwMTU0XHhiY1x4YTdceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUx'@; put 'MFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUwY1x1'@; put 'MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDNiMVx4ZGZcdTAzOTNcdTAzYzBcdTAzYTNcdTAzYzNceGI1XHUwM2M0XHUwM2E2XHUwMzk4XHUwM2E5XHUwM2I0XHUyMjFlXHUwM2M2XHUwM2I1XHUyMjI5XHUyMjYxXHhiMVx1MjI2NVx1MjI2NFx1MjMyMFx1MjMyMVx4ZjdcdTIyNDhc'@; put 'eGIwXHUyMjE5XHhiN1x1MjIxYVx1MjA3Zlx4YjJcdTI1YTBceGEwIixEPVtdLF89e30scD0wOzI1NiE9cDsrK3ApNjU1MzMhPT1iLmNoYXJDb2RlQXQocCkmJihfW2IuY2hhckF0KHApXT1wKSxEW3BdPWIuY2hhckF0KHApO3JldHVybntlbmM6XyxkZWM6RH19KCksSls5MzJdPWZ1bmN0aW9u'@; put 'KCl7dmFyIHAsYj1bXSxEPXt9LF89W107Zm9yKF9bMF09IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4v'@; put 'MDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZjYxXHVmZjYyXHVmZjYzXHVmZjY0XHVmZjY1XHVmZjY2XHVmZjY3XHVmZjY4'@; put 'XHVmZjY5XHVmZjZhXHVmZjZiXHVmZjZjXHVmZjZkXHVmZjZlXHVmZjZmXHVmZjcwXHVmZjcxXHVmZjcyXHVmZjczXHVmZjc0XHVmZjc1XHVmZjc2XHVmZjc3XHVmZjc4XHVmZjc5XHVmZjdhXHVmZjdiXHVmZjdjXHVmZjdkXHVmZjdlXHVmZjdmXHVmZjgwXHVmZjgxXHVmZjgyXHVmZjgzXHVm'@; put 'Zjg0XHVmZjg1XHVmZjg2XHVmZjg3XHVmZjg4XHVmZjg5XHVmZjhhXHVmZjhiXHVmZjhjXHVmZjhkXHVmZjhlXHVmZjhmXHVmZjkwXHVmZjkxXHVmZjkyXHVmZjkzXHVmZjk0XHVmZjk1XHVmZjk2XHVmZjk3XHVmZjk4XHVmZjk5XHVmZjlhXHVmZjliXHVmZjljXHVmZjlkXHVmZjllXHVmZjlm'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMF1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1swXVtwXV09MCtwLGJbMCtwXT1fWzBdW3BdKTtmb3IoX1sxMjldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTMwMDBcdTMwMDFcdTMwMDJcdWZmMGNcdWZmMGVcdTMwZmJcdWZmMWFcdWZmMWJcdWZmMWZcdWZmMDFcdTMwOWJcdTMwOWNceGI0XHVmZjQwXHhhOFx1ZmYzZVx1ZmZlM1x1ZmYzZlx1MzBmZFx1MzBmZVx1MzA5ZFx1MzA5ZVx1MzAwM1x1NGVk'@; put 'ZFx1MzAwNVx1MzAwNlx1MzAwN1x1MzBmY1x1MjAxNVx1MjAxMFx1ZmYwZlx1ZmYzY1x1ZmY1ZVx1MjIyNVx1ZmY1Y1x1MjAyNlx1MjAyNVx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1ZmYwOFx1ZmYwOVx1MzAxNFx1MzAxNVx1ZmYzYlx1ZmYzZFx1ZmY1Ylx1ZmY1ZFx1MzAwOFx1MzAwOVx1'@; put 'MzAwYVx1MzAwYlx1MzAwY1x1MzAwZFx1MzAwZVx1MzAwZlx1MzAxMFx1MzAxMVx1ZmYwYlx1ZmYwZFx4YjFceGQ3XHVmZmZkXHhmN1x1ZmYxZFx1MjI2MFx1ZmYxY1x1ZmYxZVx1MjI2Nlx1MjI2N1x1MjIxZVx1MjIzNFx1MjY0Mlx1MjY0MFx4YjBcdTIwMzJcdTIwMzNcdTIxMDNcdWZmZTVc'@; put 'dWZmMDRcdWZmZTBcdWZmZTFcdWZmMDVcdWZmMDNcdWZmMDZcdWZmMGFcdWZmMjBceGE3XHUyNjA2XHUyNjA1XHUyNWNiXHUyNWNmXHUyNWNlXHUyNWM3XHUyNWM2XHUyNWExXHUyNWEwXHUyNWIzXHUyNWIyXHUyNWJkXHUyNWJjXHUyMDNiXHUzMDEyXHUyMTkyXHUyMTkwXHUyMTkxXHUyMTkz'@; put 'XHUzMDEzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMjA4XHUyMjBiXHUyMjg2XHUyMjg3XHUyMjgyXHUyMjgzXHUyMjJhXHUyMjI5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHUyMjI3XHUyMjI4XHVmZmUyXHUyMWQyXHUyMWQ0XHUyMjAwXHUyMjAzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMjIwXHUyMmE1XHUyMzEyXHUyMjAyXHUyMjA3XHUyMjYxXHUyMjUyXHUyMjZhXHUyMjZi'@; put 'XHUyMjFhXHUyMjNkXHUyMjFkXHUyMjM1XHUyMjJiXHUyMjJjXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMTJiXHUyMDMwXHUyNjZmXHUyNjZkXHUyNjZhXHUyMDIwXHUyMDIxXHhiNlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjVlZlx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzEyOV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTI5XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzEyOV1bcF1dPTMzMDI0K3AsYlszMzAyNCtwXT1fWzEyOV1bcF0pO2ZvcihfWzEzMF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmYxMFx1ZmYxMVx1ZmYxMlx1ZmYxM1x1ZmYxNFx1ZmYxNVx1ZmYxNlx1ZmYxN1x1ZmYx'@; put 'OFx1ZmYxOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmYyMVx1ZmYyMlx1ZmYyM1x1ZmYyNFx1ZmYyNVx1ZmYyNlx1ZmYyN1x1ZmYyOFx1ZmYyOVx1ZmYyYVx1ZmYyYlx1ZmYyY1x1ZmYyZFx1ZmYyZVx1ZmYyZlx1ZmYzMFx1ZmYzMVx1ZmYzMlx1ZmYzM1x1'@; put 'ZmYzNFx1ZmYzNVx1ZmYzNlx1ZmYzN1x1ZmYzOFx1ZmYzOVx1ZmYzYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmY0MVx1ZmY0Mlx1ZmY0M1x1ZmY0NFx1ZmY0NVx1ZmY0Nlx1ZmY0N1x1ZmY0OFx1ZmY0OVx1ZmY0YVx1ZmY0Ylx1ZmY0Y1x1ZmY0ZFx1ZmY0'@; put 'ZVx1ZmY0Zlx1ZmY1MFx1ZmY1MVx1ZmY1Mlx1ZmY1M1x1ZmY1NFx1ZmY1NVx1ZmY1Nlx1ZmY1N1x1ZmY1OFx1ZmY1OVx1ZmY1YVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MzA0MVx1MzA0Mlx1MzA0M1x1MzA0NFx1MzA0NVx1MzA0Nlx1MzA0N1x1MzA0OFx1MzA0OVx1MzA0YVx1MzA0Ylx1'@; put 'MzA0Y1x1MzA0ZFx1MzA0ZVx1MzA0Zlx1MzA1MFx1MzA1MVx1MzA1Mlx1MzA1M1x1MzA1NFx1MzA1NVx1MzA1Nlx1MzA1N1x1MzA1OFx1MzA1OVx1MzA1YVx1MzA1Ylx1MzA1Y1x1MzA1ZFx1MzA1ZVx1MzA1Zlx1MzA2MFx1MzA2MVx1MzA2Mlx1MzA2M1x1MzA2NFx1MzA2NVx1MzA2Nlx1MzA2'@; put 'N1x1MzA2OFx1MzA2OVx1MzA2YVx1MzA2Ylx1MzA2Y1x1MzA2ZFx1MzA2ZVx1MzA2Zlx1MzA3MFx1MzA3MVx1MzA3Mlx1MzA3M1x1MzA3NFx1MzA3NVx1MzA3Nlx1MzA3N1x1MzA3OFx1MzA3OVx1MzA3YVx1MzA3Ylx1MzA3Y1x1MzA3ZFx1MzA3ZVx1MzA3Zlx1MzA4MFx1MzA4MVx1MzA4Mlx1'@; put 'MzA4M1x1MzA4NFx1MzA4NVx1MzA4Nlx1MzA4N1x1MzA4OFx1MzA4OVx1MzA4YVx1MzA4Ylx1MzA4Y1x1MzA4ZFx1MzA4ZVx1MzA4Zlx1MzA5MFx1MzA5MVx1MzA5Mlx1MzA5M1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzEzMF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTMwXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzEzMF1bcF1dPTMzMjgwK3AsYlszMzI4MCtwXT1fWzEzMF1bcF0pO2ZvcihfWzEzMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MzBhMVx1MzBhMlx1MzBhM1x1MzBhNFx1MzBhNVx1MzBhNlx1MzBhN1x1MzBhOFx1MzBhOVx1MzBhYVx1MzBhYlx1MzBhY1x1MzBhZFx1MzBhZVx1MzBhZlx1MzBiMFx1MzBiMVx1MzBiMlx1MzBiM1x1MzBiNFx1MzBiNVx1MzBi'@; put 'Nlx1MzBiN1x1MzBiOFx1MzBiOVx1MzBiYVx1MzBiYlx1MzBiY1x1MzBiZFx1MzBiZVx1MzBiZlx1MzBjMFx1MzBjMVx1MzBjMlx1MzBjM1x1MzBjNFx1MzBjNVx1MzBjNlx1MzBjN1x1MzBjOFx1MzBjOVx1MzBjYVx1MzBjYlx1MzBjY1x1MzBjZFx1MzBjZVx1MzBjZlx1MzBkMFx1MzBkMVx1'@; put 'MzBkMlx1MzBkM1x1MzBkNFx1MzBkNVx1MzBkNlx1MzBkN1x1MzBkOFx1MzBkOVx1MzBkYVx1MzBkYlx1MzBkY1x1MzBkZFx1MzBkZVx1MzBkZlx1ZmZmZFx1MzBlMFx1MzBlMVx1MzBlMlx1MzBlM1x1MzBlNFx1MzBlNVx1MzBlNlx1MzBlN1x1MzBlOFx1MzBlOVx1MzBlYVx1MzBlYlx1MzBl'@; put 'Y1x1MzBlZFx1MzBlZVx1MzBlZlx1MzBmMFx1MzBmMVx1MzBmMlx1MzBmM1x1MzBmNFx1MzBmNVx1MzBmNlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDM5MVx1MDM5Mlx1MDM5M1x1MDM5NFx1MDM5NVx1MDM5Nlx1MDM5N1x1MDM5OFx1MDM5OVx1'@; put 'MDM5YVx1MDM5Ylx1MDM5Y1x1MDM5ZFx1MDM5ZVx1MDM5Zlx1MDNhMFx1MDNhMVx1MDNhM1x1MDNhNFx1MDNhNVx1MDNhNlx1MDNhN1x1MDNhOFx1MDNhOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDNiMVx1MDNiMlx1MDNiM1x1MDNiNFx1MDNi'@; put 'NVx1MDNiNlx1MDNiN1x1MDNiOFx1MDNiOVx1MDNiYVx1MDNiYlx1MDNiY1x1MDNiZFx1MDNiZVx1MDNiZlx1MDNjMFx1MDNjMVx1MDNjM1x1MDNjNFx1MDNjNVx1MDNjNlx1MDNjN1x1MDNjOFx1MDNjOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzEzMV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTMxXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzEzMV1bcF1dPTMzNTM2K3AsYlszMzUzNitwXT1fWzEzMV1bcF0pO2ZvcihfWzEzMl09Ilx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQwMVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQy'@; put 'Mlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1MDQyZVx1MDQyZlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQ1MVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1ZmZmZFx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0'@; put 'OFx1MDQ0OVx1MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0ZFx1MDQ0ZVx1MDQ0Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjUwMFx1MjUwMlx1MjUwY1x1MjUxMFx1MjUxOFx1MjUxNFx1MjUxY1x1'@; put 'MjUyY1x1MjUyNFx1MjUzNFx1MjUzY1x1MjUwMVx1MjUwM1x1MjUwZlx1MjUxM1x1MjUxYlx1MjUxN1x1MjUyM1x1MjUzM1x1MjUyYlx1MjUzYlx1MjU0Ylx1MjUyMFx1MjUyZlx1MjUyOFx1MjUzN1x1MjUzZlx1MjUxZFx1MjUzMFx1MjUyNVx1MjUzOFx1MjU0Mlx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzEzMl0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTMyXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzEzMl1bcF1dPTMzNzkyK3AsYlszMzc5MitwXT1fWzEzMl1bcF0pO2ZvcihfWzEz'@; put 'NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjQ2MFx1MjQ2MVx1MjQ2Mlx1MjQ2M1x1MjQ2NFx1MjQ2NVx1MjQ2Nlx1MjQ2N1x1MjQ2OFx1MjQ2OVx1MjQ2YVx1MjQ2Ylx1MjQ2Y1x1MjQ2ZFx1MjQ2ZVx1MjQ2Zlx1MjQ3MFx1MjQ3'@; put 'MVx1MjQ3Mlx1MjQ3M1x1MjE2MFx1MjE2MVx1MjE2Mlx1MjE2M1x1MjE2NFx1MjE2NVx1MjE2Nlx1MjE2N1x1MjE2OFx1MjE2OVx1ZmZmZFx1MzM0OVx1MzMxNFx1MzMyMlx1MzM0ZFx1MzMxOFx1MzMyN1x1MzMwM1x1MzMzNlx1MzM1MVx1MzM1N1x1MzMwZFx1MzMyNlx1MzMyM1x1MzMyYlx1'@; put 'MzM0YVx1MzMzYlx1MzM5Y1x1MzM5ZFx1MzM5ZVx1MzM4ZVx1MzM4Zlx1MzNjNFx1MzNhMVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MzM3Ylx1ZmZmZFx1MzAxZFx1MzAxZlx1MjExNlx1MzNjZFx1MjEyMVx1MzJhNFx1MzJhNVx1MzJhNlx1MzJh'@; put 'N1x1MzJhOFx1MzIzMVx1MzIzMlx1MzIzOVx1MzM3ZVx1MzM3ZFx1MzM3Y1x1MjI1Mlx1MjI2MVx1MjIyYlx1MjIyZVx1MjIxMVx1MjIxYVx1MjJhNVx1MjIyMFx1MjIxZlx1MjJiZlx1MjIzNVx1MjIyOVx1MjIyYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzEzNV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTM1XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzEzNV1bcF1dPTM0NTYwK3AsYlszNDU2MCtwXT1fWzEzNV1b'@; put 'cF0pO2ZvcihfWzEzNl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NGU5Y1x1NTUxNlx1NWEwM1x1'@; put 'OTYzZlx1NTRjMFx1NjExYlx1NjMyOFx1NTlmNlx1OTAyMlx1ODQ3NVx1ODMxY1x1N2E1MFx1NjBhYVx1NjNlMVx1NmUyNVx1NjVlZFx1ODQ2Nlx1ODJhNlx1OWJmNVx1Njg5M1x1NTcyN1x1NjVhMVx1NjI3MVx1NWI5Ylx1NTlkMFx1ODY3Ylx1OThmNFx1N2Q2Mlx1N2RiZVx1OWI4ZVx1NjIx'@; put 'Nlx1N2M5Zlx1ODhiN1x1NWI4OVx1NWViNVx1NjMwOVx1NjY5N1x1Njg0OFx1OTVjN1x1OTc4ZFx1Njc0Zlx1NGVlNVx1NGYwYVx1NGY0ZFx1NGY5ZFx1NTA0OVx1NTZmMlx1NTkzN1x1NTlkNFx1NWEwMVx1NWMwOVx1NjBkZlx1NjEwZlx1NjE3MFx1NjYxM1x1NjkwNVx1NzBiYVx1NzU0Zlx1'@; put 'NzU3MFx1NzlmYlx1N2RhZFx1N2RlZlx1ODBjM1x1ODQwZVx1ODg2M1x1OGIwMlx1OTA1NVx1OTA3YVx1NTMzYlx1NGU5NVx1NGVhNVx1NTdkZlx1ODBiMlx1OTBjMVx1NzhlZlx1NGUwMFx1NThmMVx1NmVhMlx1OTAzOFx1N2EzMlx1ODMyOFx1ODI4Ylx1OWMyZlx1NTE0MVx1NTM3MFx1NTRi'@; put 'ZFx1NTRlMVx1NTZlMFx1NTlmYlx1NWYxNVx1OThmMlx1NmRlYlx1ODBlNFx1ODUyZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzEzNl0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTM2XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzEzNl1bcF1dPTM0ODE2K3AsYlszNDgx'@; put 'NitwXT1fWzEzNl1bcF0pO2ZvcihfWzEzN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTY2Mlx1OTY3MFx1OTZhMFx1OTdmYlx1NTQwYlx1NTNmM1x1NWI4N1x1NzBjZlx1N2ZiZFx1OGZjMlx1OTZlOFx1NTM2Zlx1OWQ1Y1x1N2Fi'@; put 'YVx1NGUxMVx1Nzg5M1x1ODFmY1x1NmUyNlx1NTYxOFx1NTUwNFx1NmIxZFx1ODUxYVx1OWMzYlx1NTllNVx1NTNhOVx1NmQ2Nlx1NzRkY1x1OTU4Zlx1NTY0Mlx1NGU5MVx1OTA0Ylx1OTZmMlx1ODM0Zlx1OTkwY1x1NTNlMVx1NTViNlx1NWIzMFx1NWY3MVx1NjYyMFx1NjZmM1x1NjgwNFx1'@; put 'NmMzOFx1NmNmM1x1NmQyOVx1NzQ1Ylx1NzZjOFx1N2E0ZVx1OTgzNFx1ODJmMVx1ODg1Ylx1OGE2MFx1OTJlZFx1NmRiMlx1NzVhYlx1NzZjYVx1OTljNVx1NjBhNlx1OGIwMVx1OGQ4YVx1OTViMlx1Njk4ZVx1NTNhZFx1NTE4Nlx1ZmZmZFx1NTcxMlx1NTgzMFx1NTk0NFx1NWJiNFx1NWVm'@; put 'Nlx1NjAyOFx1NjNhOVx1NjNmNFx1NmNiZlx1NmYxNFx1NzA4ZVx1NzExNFx1NzE1OVx1NzFkNVx1NzMzZlx1N2UwMVx1ODI3Nlx1ODJkMVx1ODU5N1x1OTA2MFx1OTI1Ylx1OWQxYlx1NTg2OVx1NjViY1x1NmM1YVx1NzUyNVx1NTFmOVx1NTkyZVx1NTk2NVx1NWY4MFx1NWZkY1x1NjJiY1x1'@; put 'NjVmYVx1NmEyYVx1NmIyN1x1NmJiNFx1NzM4Ylx1N2ZjMVx1ODk1Nlx1OWQyY1x1OWQwZVx1OWVjNFx1NWNhMVx1NmM5Nlx1ODM3Ylx1NTEwNFx1NWM0Ylx1NjFiNlx1ODFjNlx1Njg3Nlx1NzI2MVx1NGU1OVx1NGZmYVx1NTM3OFx1NjA2OVx1NmUyOVx1N2E0Zlx1OTdmM1x1NGUwYlx1NTMx'@; put 'Nlx1NGVlZVx1NGY1NVx1NGYzZFx1NGZhMVx1NGY3M1x1NTJhMFx1NTNlZlx1NTYwOVx1NTkwZlx1NWFjMVx1NWJiNlx1NWJlMVx1NzlkMVx1NjY4N1x1Njc5Y1x1NjdiNlx1NmI0Y1x1NmNiM1x1NzA2Ylx1NzNjMlx1Nzk4ZFx1NzliZVx1N2EzY1x1N2I4N1x1ODJiMVx1ODJkYlx1ODMwNFx1'@; put 'ODM3N1x1ODNlZlx1ODNkM1x1ODc2Nlx1OGFiMlx1NTYyOVx1OGNhOFx1OGZlNlx1OTA0ZVx1OTcxZVx1ODY4YVx1NGZjNFx1NWNlOFx1NjIxMVx1NzI1OVx1NzUzYlx1ODFlNVx1ODJiZFx1ODZmZVx1OGNjMFx1OTZjNVx1OTkxM1x1OTlkNVx1NGVjYlx1NGYxYVx1ODllM1x1NTZkZVx1NTg0'@; put 'YVx1NThjYVx1NWVmYlx1NWZlYlx1NjAyYVx1NjA5NFx1NjA2Mlx1NjFkMFx1NjIxMlx1NjJkMFx1NjUzOVx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzEzN10ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTM3XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzEzN11bcF1dPTM1'@; put 'MDcyK3AsYlszNTA3MitwXT1fWzEzN11bcF0pO2ZvcihfWzEzOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWI0MVx1NjY2Nlx1NjhiMFx1NmQ3N1x1NzA3MFx1NzU0Y1x1NzY4Nlx1N2Q3NVx1ODJhNVx1ODdmOVx1OTU4Ylx1OTY4'@; put 'ZVx1OGM5ZFx1NTFmMVx1NTJiZVx1NTkxNlx1NTRiM1x1NWJiM1x1NWQxNlx1NjE2OFx1Njk4Mlx1NmRhZlx1Nzg4ZFx1ODRjYlx1ODg1N1x1OGE3Mlx1OTNhN1x1OWFiOFx1NmQ2Y1x1OTlhOFx1ODZkOVx1NTdhM1x1NjdmZlx1ODZjZVx1OTIwZVx1NTI4M1x1NTY4N1x1NTQwNFx1NWVkM1x1'@; put 'NjJlMVx1NjRiOVx1NjgzY1x1NjgzOFx1NmJiYlx1NzM3Mlx1NzhiYVx1N2E2Ylx1ODk5YVx1ODlkMlx1OGQ2Ylx1OGYwM1x1OTBlZFx1OTVhM1x1OTY5NFx1OTc2OVx1NWI2Nlx1NWNiM1x1Njk3ZFx1OTg0ZFx1OTg0ZVx1NjM5Ylx1N2IyMFx1NmEyYlx1ZmZmZFx1NmE3Zlx1NjhiNlx1OWMw'@; put 'ZFx1NmY1Zlx1NTI3Mlx1NTU5ZFx1NjA3MFx1NjJlY1x1NmQzYlx1NmUwN1x1NmVkMVx1ODQ1Ylx1ODkxMFx1OGY0NFx1NGUxNFx1OWMzOVx1NTNmNlx1NjkxYlx1NmEzYVx1OTc4NFx1NjgyYVx1NTE1Y1x1N2FjM1x1ODRiMlx1OTFkY1x1OTM4Y1x1NTY1Ylx1OWQyOFx1NjgyMlx1ODMwNVx1'@; put 'ODQzMVx1N2NhNVx1NTIwOFx1ODJjNVx1NzRlNlx1NGU3ZVx1NGY4M1x1NTFhMFx1NWJkMlx1NTIwYVx1NTJkOFx1NTJlN1x1NWRmYlx1NTU5YVx1NTgyYVx1NTllNlx1NWI4Y1x1NWI5OFx1NWJkYlx1NWU3Mlx1NWU3OVx1NjBhM1x1NjExZlx1NjE2M1x1NjFiZVx1NjNkYlx1NjU2Mlx1Njdk'@; put 'MVx1Njg1M1x1NjhmYVx1NmIzZVx1NmI1M1x1NmM1N1x1NmYyMlx1NmY5N1x1NmY0NVx1NzRiMFx1NzUxOFx1NzZlM1x1NzcwYlx1N2FmZlx1N2JhMVx1N2MyMVx1N2RlOVx1N2YzNlx1N2ZmMFx1ODA5ZFx1ODI2Nlx1ODM5ZVx1ODliM1x1OGFjY1x1OGNhYlx1OTA4NFx1OTQ1MVx1OTU5M1x1'@; put 'OTU5MVx1OTVhMlx1OTY2NVx1OTdkM1x1OTkyOFx1ODIxOFx1NGUzOFx1NTQyYlx1NWNiOFx1NWRjY1x1NzNhOVx1NzY0Y1x1NzczY1x1NWNhOVx1N2ZlYlx1OGQwYlx1OTZjMVx1OTgxMVx1OTg1NFx1OTg1OFx1NGYwMVx1NGYwZVx1NTM3MVx1NTU5Y1x1NTY2OFx1NTdmYVx1NTk0N1x1NWIw'@; put 'OVx1NWJjNFx1NWM5MFx1NWUwY1x1NWU3ZVx1NWZjY1x1NjNlZVx1NjczYVx1NjVkN1x1NjVlMlx1NjcxZlx1NjhjYlx1NjhjNFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzEzOF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTM4XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtf'@; put 'WzEzOF1bcF1dPTM1MzI4K3AsYlszNTMyOCtwXT1fWzEzOF1bcF0pO2ZvcihfWzEzOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmE1Zlx1NWUzMFx1NmJjNVx1NmMxN1x1NmM3ZFx1NzU3Zlx1Nzk0OFx1NWI2M1x1N2EwMFx1N2Qw'@; put 'MFx1NWZiZFx1ODk4Zlx1OGExOFx1OGNiNFx1OGQ3N1x1OGVjY1x1OGYxZFx1OThlMlx1OWEwZVx1OWIzY1x1NGU4MFx1NTA3ZFx1NTEwMFx1NTk5M1x1NWI5Y1x1NjIyZlx1NjI4MFx1NjRlY1x1NmIzYVx1NzJhMFx1NzU5MVx1Nzk0N1x1N2ZhOVx1ODdmYlx1OGFiY1x1OGI3MFx1NjNhY1x1'@; put 'ODNjYVx1OTdhMFx1NTQwOVx1NTQwM1x1NTVhYlx1Njg1NFx1NmE1OFx1OGE3MFx1NzgyN1x1Njc3NVx1OWVjZFx1NTM3NFx1NWJhMlx1ODExYVx1ODY1MFx1OTAwNlx1NGUxOFx1NGU0NVx1NGVjN1x1NGYxMVx1NTNjYVx1NTQzOFx1NWJhZVx1NWYxM1x1NjAyNVx1NjU1MVx1ZmZmZFx1Njcz'@; put 'ZFx1NmM0Mlx1NmM3Mlx1NmNlM1x1NzA3OFx1NzQwM1x1N2E3Nlx1N2FhZVx1N2IwOFx1N2QxYVx1N2NmZVx1N2Q2Nlx1NjVlN1x1NzI1Ylx1NTNiYlx1NWM0NVx1NWRlOFx1NjJkMlx1NjJlMFx1NjMxOVx1NmUyMFx1ODY1YVx1OGEzMVx1OGRkZFx1OTJmOFx1NmYwMVx1NzlhNlx1OWI1YVx1'@; put 'NGVhOFx1NGVhYlx1NGVhY1x1NGY5Ylx1NGZhMFx1NTBkMVx1NTE0N1x1N2FmNlx1NTE3MVx1NTFmNlx1NTM1NFx1NTMyMVx1NTM3Zlx1NTNlYlx1NTVhY1x1NTg4M1x1NWNlMVx1NWYzN1x1NWY0YVx1NjAyZlx1NjA1MFx1NjA2ZFx1NjMxZlx1NjU1OVx1NmE0Ylx1NmNjMVx1NzJjMlx1NzJl'@; put 'ZFx1NzdlZlx1ODBmOFx1ODEwNVx1ODIwOFx1ODU0ZVx1OTBmN1x1OTNlMVx1OTdmZlx1OTk1N1x1OWE1YVx1NGVmMFx1NTFkZFx1NWMyZFx1NjY4MVx1Njk2ZFx1NWM0MFx1NjZmMlx1Njk3NVx1NzM4OVx1Njg1MFx1N2M4MVx1NTBjNVx1NTJlNFx1NTc0N1x1NWRmZVx1OTMyNlx1NjVhNFx1'@; put 'NmIyM1x1NmIzZFx1NzQzNFx1Nzk4MVx1NzliZFx1N2I0Ylx1N2RjYVx1ODJiOVx1ODNjY1x1ODg3Zlx1ODk1Zlx1OGIzOVx1OGZkMVx1OTFkMVx1NTQxZlx1OTI4MFx1NGU1ZFx1NTAzNlx1NTNlNVx1NTMzYVx1NzJkN1x1NzM5Nlx1NzdlOVx1ODJlNlx1OGVhZlx1OTljNlx1OTljOFx1OTlk'@; put 'Mlx1NTE3N1x1NjExYVx1ODY1ZVx1NTViMFx1N2E3YVx1NTA3Nlx1NWJkM1x1OTA0N1x1OTY4NVx1NGUzMlx1NmFkYlx1OTFlN1x1NWM1MVx1NWM0OFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzEzOV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTM5XVtwXS5jaGFyQ29k'@; put 'ZUF0KDApJiYoRFtfWzEzOV1bcF1dPTM1NTg0K3AsYlszNTU4NCtwXT1fWzEzOV1bcF0pO2ZvcihfWzE0MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjM5OFx1N2E5Zlx1NmM5M1x1OTc3NFx1OGY2MVx1N2FhYVx1NzE4YVx1OTY4'@; put 'OFx1N2M4Mlx1NjgxN1x1N2U3MFx1Njg1MVx1OTM2Y1x1NTJmMlx1NTQxYlx1ODVhYlx1OGExM1x1N2ZhNFx1OGVjZFx1OTBlMVx1NTM2Nlx1ODg4OFx1Nzk0MVx1NGZjMlx1NTBiZVx1NTIxMVx1NTE0NFx1NTU1M1x1NTcyZFx1NzNlYVx1NTc4Ylx1NTk1MVx1NWY2Mlx1NWY4NFx1NjA3NVx1'@; put 'NjE3Nlx1NjE2N1x1NjFhOVx1NjNiMlx1NjQzYVx1NjU2Y1x1NjY2Zlx1Njg0Mlx1NmUxM1x1NzU2Nlx1N2EzZFx1N2NmYlx1N2Q0Y1x1N2Q5OVx1N2U0Ylx1N2Y2Ylx1ODMwZVx1ODM0YVx1ODZjZFx1OGEwOFx1OGE2M1x1OGI2Nlx1OGVmZFx1OTgxYVx1OWQ4Zlx1ODJiOFx1OGZjZVx1OWJl'@; put 'OFx1ZmZmZFx1NTI4N1x1NjIxZlx1NjQ4M1x1NmZjMFx1OTY5OVx1Njg0MVx1NTA5MVx1NmIyMFx1NmM3YVx1NmY1NFx1N2E3NFx1N2Q1MFx1ODg0MFx1OGEyM1x1NjcwOFx1NGVmNlx1NTAzOVx1NTAyNlx1NTA2NVx1NTE3Y1x1NTIzOFx1NTI2M1x1NTVhN1x1NTcwZlx1NTgwNVx1NWFjY1x1'@; put 'NWVmYVx1NjFiMlx1NjFmOFx1NjJmM1x1NjM3Mlx1NjkxY1x1NmEyOVx1NzI3ZFx1NzJhY1x1NzMyZVx1NzgxNFx1Nzg2Zlx1N2Q3OVx1NzcwY1x1ODBhOVx1ODk4Ylx1OGIxOVx1OGNlMlx1OGVkMlx1OTA2M1x1OTM3NVx1OTY3YVx1OTg1NVx1OWExM1x1OWU3OFx1NTE0M1x1NTM5Zlx1NTNi'@; put 'M1x1NWU3Ylx1NWYyNlx1NmUxYlx1NmU5MFx1NzM4NFx1NzNmZVx1N2Q0M1x1ODIzN1x1OGEwMFx1OGFmYVx1OTY1MFx1NGU0ZVx1NTAwYlx1NTNlNFx1NTQ3Y1x1NTZmYVx1NTlkMVx1NWI2NFx1NWRmMVx1NWVhYlx1NWYyN1x1NjIzOFx1NjU0NVx1NjdhZlx1NmU1Nlx1NzJkMFx1N2NjYVx1'@; put 'ODhiNFx1ODBhMVx1ODBlMVx1ODNmMFx1ODY0ZVx1OGE4N1x1OGRlOFx1OTIzN1x1OTZjN1x1OTg2N1x1OWYxM1x1NGU5NFx1NGU5Mlx1NGYwZFx1NTM0OFx1NTQ0OVx1NTQzZVx1NWEyZlx1NWY4Y1x1NWZhMVx1NjA5Zlx1NjhhN1x1NmE4ZVx1NzQ1YVx1Nzg4MVx1OGE5ZVx1OGFhNFx1OGI3'@; put 'N1x1OTE5MFx1NGU1ZVx1OWJjOVx1NGVhNFx1NGY3Y1x1NGZhZlx1NTAxOVx1NTAxNlx1NTE0OVx1NTE2Y1x1NTI5Zlx1NTJiOVx1NTJmZVx1NTM5YVx1NTNlM1x1NTQxMVx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE0MF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTQw'@; put 'XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE0MF1bcF1dPTM1ODQwK3AsYlszNTg0MCtwXT1fWzE0MF1bcF0pO2ZvcihfWzE0MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTQwZVx1NTU4OVx1NTc1MVx1NTdhMlx1NTk3ZFx1NWI1'@; put 'NFx1NWI1ZFx1NWI4Zlx1NWRlNVx1NWRlN1x1NWRmN1x1NWU3OFx1NWU4M1x1NWU5YVx1NWViN1x1NWYxOFx1NjA1Mlx1NjE0Y1x1NjI5N1x1NjJkOFx1NjNhN1x1NjUzYlx1NjYwMlx1NjY0M1x1NjZmNFx1Njc2ZFx1NjgyMVx1Njg5N1x1NjljYlx1NmM1Zlx1NmQyYVx1NmQ2OVx1NmUyZlx1'@; put 'NmU5ZFx1NzUzMlx1NzY4N1x1Nzg2Y1x1N2EzZlx1N2NlMFx1N2QwNVx1N2QxOFx1N2Q1ZVx1N2RiMVx1ODAxNVx1ODAwM1x1ODBhZlx1ODBiMVx1ODE1NFx1ODE4Zlx1ODIyYVx1ODM1Mlx1ODg0Y1x1ODg2MVx1OGIxYlx1OGNhMlx1OGNmY1x1OTBjYVx1OTE3NVx1OTI3MVx1NzgzZlx1OTJm'@; put 'Y1x1OTVhNFx1OTY0ZFx1ZmZmZFx1OTgwNVx1OTk5OVx1OWFkOFx1OWQzYlx1NTI1Ylx1NTJhYlx1NTNmN1x1NTQwOFx1NThkNVx1NjJmN1x1NmZlMFx1OGM2YVx1OGY1Zlx1OWViOVx1NTE0Ylx1NTIzYlx1NTQ0YVx1NTZmZFx1N2E0MFx1OTE3N1x1OWQ2MFx1OWVkMlx1NzM0NFx1NmYwOVx1'@; put 'ODE3MFx1NzUxMVx1NWZmZFx1NjBkYVx1OWFhOFx1NzJkYlx1OGZiY1x1NmI2NFx1OTgwM1x1NGVjYVx1NTZmMFx1NTc2NFx1NThiZVx1NWE1YVx1NjA2OFx1NjFjN1x1NjYwZlx1NjYwNlx1NjgzOVx1NjhiMVx1NmRmN1x1NzVkNVx1N2QzYVx1ODI2ZVx1OWI0Mlx1NGU5Ylx1NGY1MFx1NTNj'@; put 'OVx1NTUwNlx1NWQ2Zlx1NWRlNlx1NWRlZVx1NjdmYlx1NmM5OVx1NzQ3M1x1NzgwMlx1OGE1MFx1OTM5Nlx1ODhkZlx1NTc1MFx1NWVhN1x1NjMyYlx1NTBiNVx1NTBhY1x1NTE4ZFx1NjcwMFx1NTRjOVx1NTg1ZVx1NTliYlx1NWJiMFx1NWY2OVx1NjI0ZFx1NjNhMVx1NjgzZFx1NmI3M1x1'@; put 'NmUwOFx1NzA3ZFx1OTFjN1x1NzI4MFx1NzgxNVx1NzgyNlx1Nzk2ZFx1NjU4ZVx1N2QzMFx1ODNkY1x1ODhjMVx1OGYwOVx1OTY5Ylx1NTI2NFx1NTcyOFx1Njc1MFx1N2Y2YVx1OGNhMVx1NTFiNFx1NTc0Mlx1OTYyYVx1NTgzYVx1Njk4YVx1ODBiNFx1NTRiMlx1NWQwZVx1NTdmY1x1Nzg5'@; put 'NVx1OWRmYVx1NGY1Y1x1NTI0YVx1NTQ4Ylx1NjQzZVx1NjYyOFx1NjcxNFx1NjdmNVx1N2E4NFx1N2I1Nlx1N2QyMlx1OTMyZlx1Njg1Y1x1OWJhZFx1N2IzOVx1NTMxOVx1NTE4YVx1NTIzN1x1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE0MV0ubGVuZ3RoOysrcCk2'@; put 'NTUzMyE9PV9bMTQxXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE0MV1bcF1dPTM2MDk2K3AsYlszNjA5NitwXT1fWzE0MV1bcF0pO2ZvcihfWzE0Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWJkZlx1NjJmNlx1NjRhZVx1NjRl'@; put 'Nlx1NjcyZFx1NmJiYVx1ODVhOVx1OTZkMVx1NzY5MFx1OWJkNlx1NjM0Y1x1OTMwNlx1OWJhYlx1NzZiZlx1NjY1Mlx1NGUwOVx1NTA5OFx1NTNjMlx1NWM3MVx1NjBlOFx1NjQ5Mlx1NjU2M1x1Njg1Zlx1NzFlNlx1NzNjYVx1NzUyM1x1N2I5N1x1N2U4Mlx1ODY5NVx1OGI4M1x1OGNkYlx1'@; put 'OTE3OFx1OTkxMFx1NjVhY1x1NjZhYlx1NmI4Ylx1NGVkNVx1NGVkNFx1NGYzYVx1NGY3Zlx1NTIzYVx1NTNmOFx1NTNmMlx1NTVlM1x1NTZkYlx1NThlYlx1NTljYlx1NTljOVx1NTlmZlx1NWI1MFx1NWM0ZFx1NWUwMlx1NWUyYlx1NWZkN1x1NjAxZFx1NjMwN1x1NjUyZlx1NWI1Y1x1NjVh'@; put 'Zlx1NjViZFx1NjVlOFx1Njc5ZFx1NmI2Mlx1ZmZmZFx1NmI3Ylx1NmMwZlx1NzM0NVx1Nzk0OVx1NzljMVx1N2NmOFx1N2QxOVx1N2QyYlx1ODBhMlx1ODEwMlx1ODFmM1x1ODk5Nlx1OGE1ZVx1OGE2OVx1OGE2Nlx1OGE4Y1x1OGFlZVx1OGNjN1x1OGNkY1x1OTZjY1x1OThmY1x1NmI2Zlx1'@; put 'NGU4Ylx1NGYzY1x1NGY4ZFx1NTE1MFx1NWI1N1x1NWJmYVx1NjE0OFx1NjMwMVx1NjY0Mlx1NmIyMVx1NmVjYlx1NmNiYlx1NzIzZVx1NzRiZFx1NzVkNFx1NzhjMVx1NzkzYVx1ODAwY1x1ODAzM1x1ODFlYVx1ODQ5NFx1OGY5ZVx1NmM1MFx1OWU3Zlx1NWYwZlx1OGI1OFx1OWQyYlx1N2Fm'@; put 'YVx1OGVmOFx1NWI4ZFx1OTZlYlx1NGUwM1x1NTNmMVx1NTdmN1x1NTkzMVx1NWFjOVx1NWJhNFx1NjA4OVx1NmU3Zlx1NmYwNlx1NzViZVx1OGNlYVx1NWI5Zlx1ODUwMFx1N2JlMFx1NTA3Mlx1NjdmNFx1ODI5ZFx1NWM2MVx1ODU0YVx1N2UxZVx1ODIwZVx1NTE5OVx1NWMwNFx1NjM2OFx1'@; put 'OGQ2Nlx1NjU5Y1x1NzE2ZVx1NzkzZVx1N2QxN1x1ODAwNVx1OGIxZFx1OGVjYVx1OTA2ZVx1ODZjN1x1OTBhYVx1NTAxZlx1NTJmYVx1NWMzYVx1Njc1M1x1NzA3Y1x1NzIzNVx1OTE0Y1x1OTFjOFx1OTMyYlx1ODJlNVx1NWJjMlx1NWYzMVx1NjBmOVx1NGUzYlx1NTNkNlx1NWI4OFx1NjI0'@; put 'Ylx1NjczMVx1NmI4YVx1NzJlOVx1NzNlMFx1N2EyZVx1ODE2Ylx1OGRhM1x1OTE1Mlx1OTk5Nlx1NTExMlx1NTNkN1x1NTQ2YVx1NWJmZlx1NjM4OFx1NmEzOVx1N2RhY1x1OTcwMFx1NTZkYVx1NTNjZVx1NTQ2OFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE0Ml0u'@; put 'bGVuZ3RoOysrcCk2NTUzMyE9PV9bMTQyXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE0Ml1bcF1dPTM2MzUyK3AsYlszNjM1MitwXT1fWzE0Ml1bcF0pO2ZvcihfWzE0M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWI5N1x1NWMz'@; put 'MVx1NWRkZVx1NGZlZVx1NjEwMVx1NjJmZVx1NmQzMlx1NzljMFx1NzljYlx1N2Q0Mlx1N2U0ZFx1N2ZkMlx1ODFlZFx1ODIxZlx1ODQ5MFx1ODg0Nlx1ODk3Mlx1OGI5MFx1OGU3NFx1OGYyZlx1OTAzMVx1OTE0Ylx1OTE2Y1x1OTZjNlx1OTE5Y1x1NGVjMFx1NGY0Zlx1NTE0NVx1NTM0MVx1'@; put 'NWY5M1x1NjIwZVx1NjdkNFx1NmM0MVx1NmUwYlx1NzM2M1x1N2UyNlx1OTFjZFx1OTI4M1x1NTNkNFx1NTkxOVx1NWJiZlx1NmRkMVx1Nzk1ZFx1N2UyZVx1N2M5Ylx1NTg3ZVx1NzE5Zlx1NTFmYVx1ODg1M1x1OGZmMFx1NGZjYVx1NWNmYlx1NjYyNVx1NzdhY1x1N2FlM1x1ODIxY1x1OTlm'@; put 'Zlx1NTFjNlx1NWZhYVx1NjVlY1x1Njk2Zlx1NmI4OVx1NmRmM1x1ZmZmZFx1NmU5Nlx1NmY2NFx1NzZmZVx1N2QxNFx1NWRlMVx1OTA3NVx1OTE4N1x1OTgwNlx1NTFlNlx1NTIxZFx1NjI0MFx1NjY5MVx1NjZkOVx1NmUxYVx1NWViNlx1N2RkMlx1N2Y3Mlx1NjZmOFx1ODVhZlx1ODVmN1x1'@; put 'OGFmOFx1NTJhOVx1NTNkOVx1NTk3M1x1NWU4Zlx1NWY5MFx1NjA1NVx1OTJlNFx1OTY2NFx1NTBiN1x1NTExZlx1NTJkZFx1NTMyMFx1NTM0N1x1NTNlY1x1NTRlOFx1NTU0Nlx1NTUzMVx1NTYxN1x1NTk2OFx1NTliZVx1NWEzY1x1NWJiNVx1NWMwNlx1NWMwZlx1NWMxMVx1NWMxYVx1NWU4'@; put 'NFx1NWU4YVx1NWVlMFx1NWY3MFx1NjI3Zlx1NjI4NFx1NjJkYlx1NjM4Y1x1NjM3N1x1NjYwN1x1NjYwY1x1NjYyZFx1NjY3Nlx1Njc3ZVx1NjhhMlx1NmExZlx1NmEzNVx1NmNiY1x1NmQ4OFx1NmUwOVx1NmU1OFx1NzEzY1x1NzEyNlx1NzE2N1x1NzVjN1x1NzcwMVx1Nzg1ZFx1NzkwMVx1'@; put 'Nzk2NVx1NzlmMFx1N2FlMFx1N2IxMVx1N2NhN1x1N2QzOVx1ODA5Nlx1ODNkNlx1ODQ4Ylx1ODU0OVx1ODg1ZFx1ODhmM1x1OGExZlx1OGEzY1x1OGE1NFx1OGE3M1x1OGM2MVx1OGNkZVx1OTFhNFx1OTI2Nlx1OTM3ZVx1OTQxOFx1OTY5Y1x1OTc5OFx1NGUwYVx1NGUwOFx1NGUxZVx1NGU1'@; put 'N1x1NTE5N1x1NTI3MFx1NTdjZVx1NTgzNFx1NThjY1x1NWIyMlx1NWUzOFx1NjBjNVx1NjRmZVx1Njc2MVx1Njc1Nlx1NmQ0NFx1NzJiNlx1NzU3M1x1N2E2M1x1ODRiOFx1OGI3Mlx1OTFiOFx1OTMyMFx1NTYzMVx1NTdmNFx1OThmZVx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9'@; put 'MDtwIT1fWzE0M10ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTQzXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE0M11bcF1dPTM2NjA4K3AsYlszNjYwOCtwXT1fWzE0M11bcF0pO2ZvcihfWzE0NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1NjJlZFx1NjkwZFx1NmI5Nlx1NzFlZFx1N2U1NFx1ODA3N1x1ODI3Mlx1ODllNlx1OThkZlx1ODc1NVx1OGZiMVx1NWMzYlx1NGYzOFx1NGZlMVx1NGZiNVx1NTUwN1x1NWEyMFx1NWJkZFx1NWJlOVx1NWZjM1x1NjE0ZVx1NjMyZlx1NjViMFx1NjY0Ylx1NjhlZVx1Njk5Ylx1NmQ3OFx1'@; put 'NmRmMVx1NzUzM1x1NzViOVx1NzcxZlx1Nzk1ZVx1NzllNlx1N2QzM1x1ODFlM1x1ODJhZlx1ODVhYVx1ODlhYVx1OGEzYVx1OGVhYlx1OGY5Ylx1OTAzMlx1OTFkZFx1OTcwN1x1NGViYVx1NGVjMVx1NTIwM1x1NTg3NVx1NThlY1x1NWMwYlx1NzUxYVx1NWMzZFx1ODE0ZVx1OGEwYVx1OGZj'@; put 'NVx1OTY2M1x1OTc2ZFx1N2IyNVx1OGFjZlx1OTgwOFx1OTE2Mlx1NTZmM1x1NTNhOFx1ZmZmZFx1OTAxN1x1NTQzOVx1NTc4Mlx1NWUyNVx1NjNhOFx1NmMzNFx1NzA4YVx1Nzc2MVx1N2M4Ylx1N2ZlMFx1ODg3MFx1OTA0Mlx1OTE1NFx1OTMxMFx1OTMxOFx1OTY4Zlx1NzQ1ZVx1OWFjNFx1'@; put 'NWQwN1x1NWQ2OVx1NjU3MFx1NjdhMlx1OGRhOFx1OTZkYlx1NjM2ZVx1Njc0OVx1NjkxOVx1ODNjNVx1OTgxN1x1OTZjMFx1ODhmZVx1NmY4NFx1NjQ3YVx1NWJmOFx1NGUxNlx1NzAyY1x1NzU1ZFx1NjYyZlx1NTFjNFx1NTIzNlx1NTJlMlx1NTlkM1x1NWY4MVx1NjAyN1x1NjIxMFx1NjUz'@; put 'Zlx1NjU3NFx1NjYxZlx1NjY3NFx1NjhmMlx1NjgxNlx1NmI2M1x1NmUwNVx1NzI3Mlx1NzUxZlx1NzZkYlx1N2NiZVx1ODA1Nlx1NThmMFx1ODhmZFx1ODk3Zlx1OGFhMFx1OGE5M1x1OGFjYlx1OTAxZFx1OTE5Mlx1OTc1Mlx1OTc1OVx1NjU4OVx1N2EwZVx1ODEwNlx1OTZiYlx1NWUyZFx1'@; put 'NjBkY1x1NjIxYVx1NjVhNVx1NjYxNFx1Njc5MFx1NzdmM1x1N2E0ZFx1N2M0ZFx1N2UzZVx1ODEwYVx1OGNhY1x1OGQ2NFx1OGRlMVx1OGU1Zlx1NzhhOVx1NTIwN1x1NjJkOVx1NjNhNVx1NjQ0Mlx1NjI5OFx1OGEyZFx1N2E4M1x1N2JjMFx1OGFhY1x1OTZlYVx1N2Q3Nlx1ODIwY1x1ODc0'@; put 'OVx1NGVkOVx1NTE0OFx1NTM0M1x1NTM2MFx1NWJhM1x1NWMwMlx1NWMxNlx1NWRkZFx1NjIyNlx1NjI0N1x1NjRiMFx1NjgxM1x1NjgzNFx1NmNjOVx1NmQ0NVx1NmQxN1x1NjdkM1x1NmY1Y1x1NzE0ZVx1NzE3ZFx1NjVjYlx1N2E3Zlx1N2JhZFx1N2RkYVx1ZmZmZFx1ZmZmZFx1ZmZmZCIu'@; put 'c3BsaXQoIiIpLHA9MDtwIT1fWzE0NF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTQ0XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE0NF1bcF1dPTM2ODY0K3AsYlszNjg2NCtwXT1fWzE0NF1bcF0pO2ZvcihfWzE0NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1N2U0YVx1N2ZhOFx1ODE3YVx1ODIxYlx1ODIzOVx1ODVhNlx1OGE2ZVx1OGNjZVx1OGRmNVx1OTA3OFx1OTA3N1x1OTJhZFx1OTI5MVx1OTU4M1x1OWJhZVx1NTI0ZFx1NTU4NFx1NmYzOFx1NzEzNlx1NTE2OFx1Nzk4NVx1N2U1NVx1ODFiM1x1N2NjZVx1NTY0Y1x1'@; put 'NTg1MVx1NWNhOFx1NjNhYVx1NjZmZVx1NjZmZFx1Njk1YVx1NzJkOVx1NzU4Zlx1NzU4ZVx1NzkwZVx1Nzk1Nlx1NzlkZlx1N2M5N1x1N2QyMFx1N2Q0NFx1ODYwN1x1OGEzNFx1OTYzYlx1OTA2MVx1OWYyMFx1NTBlN1x1NTI3NVx1NTNjY1x1NTNlMlx1NTAwOVx1NTVhYVx1NThlZVx1NTk0'@; put 'Zlx1NzIzZFx1NWI4Ylx1NWM2NFx1NTMxZFx1NjBlM1x1NjBmM1x1NjM1Y1x1NjM4M1x1NjMzZlx1NjNiYlx1ZmZmZFx1NjRjZFx1NjVlOVx1NjZmOVx1NWRlM1x1NjljZFx1NjlmZFx1NmYxNVx1NzFlNVx1NGU4OVx1NzVlOVx1NzZmOFx1N2E5M1x1N2NkZlx1N2RjZlx1N2Q5Y1x1ODA2MVx1'@; put 'ODM0OVx1ODM1OFx1ODQ2Y1x1ODRiY1x1ODVmYlx1ODhjNVx1OGQ3MFx1OTAwMVx1OTA2ZFx1OTM5N1x1OTcxY1x1OWExMlx1NTBjZlx1NTg5N1x1NjE4ZVx1ODFkM1x1ODUzNVx1OGQwOFx1OTAyMFx1NGZjM1x1NTA3NFx1NTI0N1x1NTM3M1x1NjA2Zlx1NjM0OVx1Njc1Zlx1NmUyY1x1OGRi'@; put 'M1x1OTAxZlx1NGZkN1x1NWM1ZVx1OGNjYVx1NjVjZlx1N2Q5YVx1NTM1Mlx1ODg5Nlx1NTE3Nlx1NjNjM1x1NWI1OFx1NWI2Ylx1NWMwYVx1NjQwZFx1Njc1MVx1OTA1Y1x1NGVkNlx1NTkxYVx1NTkyYVx1NmM3MFx1OGE1MVx1NTUzZVx1NTgxNVx1NTlhNVx1NjBmMFx1NjI1M1x1NjdjMVx1'@; put 'ODIzNVx1Njk1NVx1OTY0MFx1OTljNFx1OWEyOFx1NGY1M1x1NTgwNlx1NWJmZVx1ODAxMFx1NWNiMVx1NWUyZlx1NWY4NVx1NjAyMFx1NjE0Ylx1NjIzNFx1NjZmZlx1NmNmMFx1NmVkZVx1ODBjZVx1ODE3Zlx1ODJkNFx1ODg4Ylx1OGNiOFx1OTAwMFx1OTAyZVx1OTY4YVx1OWVkYlx1OWJk'@; put 'Ylx1NGVlM1x1NTNmMFx1NTkyN1x1N2IyY1x1OTE4ZFx1OTg0Y1x1OWRmOVx1NmVkZFx1NzAyN1x1NTM1M1x1NTU0NFx1NWI4NVx1NjI1OFx1NjI5ZVx1NjJkM1x1NmNhMlx1NmZlZlx1NzQyMlx1OGExN1x1OTQzOFx1NmZjMVx1OGFmZVx1ODMzOFx1NTFlN1x1ODZmOFx1NTNlYVx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE0NV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTQ1XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE0NV1bcF1dPTM3MTIwK3AsYlszNzEyMCtwXT1fWzE0NV1bcF0pO2ZvcihfWzE0Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTNlOVx1NGY0Nlx1OTA1NFx1OGZiMFx1NTk2YVx1ODEzMVx1NWRmZFx1N2FlYVx1OGZiZlx1NjhkYVx1OGMzN1x1NzJmOFx1OWM0OFx1NmEzZFx1OGFiMFx1NGUzOVx1NTM1OFx1NTYwNlx1NTc2Nlx1NjJjNVx1NjNhMlx1NjVlNlx1NmI0ZVx1'@; put 'NmRlMVx1NmU1Ylx1NzBhZFx1NzdlZFx1N2FlZlx1N2JhYVx1N2RiYlx1ODAzZFx1ODBjNlx1ODZjYlx1OGE5NVx1OTM1Ylx1NTZlM1x1NThjN1x1NWYzZVx1NjVhZFx1NjY5Nlx1NmE4MFx1NmJiNVx1NzUzN1x1OGFjN1x1NTAyNFx1NzdlNVx1NTczMFx1NWYxYlx1NjA2NVx1NjY3YVx1NmM2'@; put 'MFx1NzVmNFx1N2ExYVx1N2Y2ZVx1ODFmNFx1ODcxOFx1OTA0NVx1OTliM1x1N2JjOVx1NzU1Y1x1N2FmOVx1N2I1MVx1ODRjNFx1ZmZmZFx1OTAxMFx1NzllOVx1N2E5Mlx1ODMzNlx1NWFlMVx1Nzc0MFx1NGUyZFx1NGVmMlx1NWI5OVx1NWZlMFx1NjJiZFx1NjYzY1x1NjdmMVx1NmNlOFx1'@; put 'ODY2Ylx1ODg3N1x1OGEzYlx1OTE0ZVx1OTJmM1x1OTlkMFx1NmExN1x1NzAyNlx1NzMyYVx1ODJlN1x1ODQ1N1x1OGNhZlx1NGUwMVx1NTE0Nlx1NTFjYlx1NTU4Ylx1NWJmNVx1NWUxNlx1NWUzM1x1NWU4MVx1NWYxNFx1NWYzNVx1NWY2Ylx1NWZiNFx1NjFmMlx1NjMxMVx1NjZhMlx1Njcx'@; put 'ZFx1NmY2ZVx1NzI1Mlx1NzUzYVx1NzczYVx1ODA3NFx1ODEzOVx1ODE3OFx1ODc3Nlx1OGFiZlx1OGFkY1x1OGQ4NVx1OGRmM1x1OTI5YVx1OTU3N1x1OTgwMlx1OWNlNVx1NTJjNVx1NjM1N1x1NzZmNFx1NjcxNVx1NmM4OFx1NzNjZFx1OGNjM1x1OTNhZVx1OTY3M1x1NmQyNVx1NTg5Y1x1'@; put 'NjkwZVx1NjljY1x1OGZmZFx1OTM5YVx1NzVkYlx1OTAxYVx1NTg1YVx1NjgwMlx1NjNiNFx1NjlmYlx1NGY0M1x1NmYyY1x1NjdkOFx1OGZiYlx1ODUyNlx1N2RiNFx1OTM1NFx1NjkzZlx1NmY3MFx1NTc2YVx1NThmN1x1NWIyY1x1N2QyY1x1NzIyYVx1NTQwYVx1OTFlM1x1OWRiNFx1NGVh'@; put 'ZFx1NGY0ZVx1NTA1Y1x1NTA3NVx1NTI0M1x1OGM5ZVx1NTQ0OFx1NTgyNFx1NWI5YVx1NWUxZFx1NWU5NVx1NWVhZFx1NWVmN1x1NWYxZlx1NjA4Y1x1NjJiNVx1NjMzYVx1NjNkMFx1NjhhZlx1NmM0MFx1Nzg4N1x1Nzk4ZVx1N2EwYlx1N2RlMFx1ODI0N1x1OGEwMlx1OGFlNlx1OGU0NFx1'@; put 'OTAxM1x1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE0Nl0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTQ2XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE0Nl1bcF1dPTM3Mzc2K3AsYlszNzM3NitwXT1fWzE0Nl1bcF0pO2ZvcihfWzE0N109Ilx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTBiOFx1OTEyZFx1OTFkOFx1OWYwZVx1NmNlNVx1NjQ1OFx1NjRlMlx1NjU3NVx1NmVmNFx1NzY4NFx1N2IxYlx1OTA2OVx1OTNkMVx1NmViYVx1NTRmMlx1NWZiOVx1NjRhNFx1OGY0ZFx1OGZlZFx1OTI0NFx1NTE3OFx1'@; put 'NTg2Ylx1NTkyOVx1NWM1NVx1NWU5N1x1NmRmYlx1N2U4Zlx1NzUxY1x1OGNiY1x1OGVlMlx1OTg1Ylx1NzBiOVx1NGYxZFx1NmJiZlx1NmZiMVx1NzUzMFx1OTZmYlx1NTE0ZVx1NTQxMFx1NTgzNVx1NTg1N1x1NTlhY1x1NWM2MFx1NWY5Mlx1NjU5N1x1Njc1Y1x1NmUyMVx1NzY3Ylx1ODNk'@; put 'Zlx1OGNlZFx1OTAxNFx1OTBmZFx1OTM0ZFx1NzgyNVx1NzgzYVx1NTJhYVx1NWVhNlx1NTcxZlx1NTk3NFx1NjAxMlx1NTAxMlx1NTE1YVx1NTFhY1x1ZmZmZFx1NTFjZFx1NTIwMFx1NTUxMFx1NTg1NFx1NTg1OFx1NTk1N1x1NWI5NVx1NWNmNlx1NWQ4Ylx1NjBiY1x1NjI5NVx1NjQyZFx1'@; put 'Njc3MVx1Njg0M1x1NjhiY1x1NjhkZlx1NzZkN1x1NmRkOFx1NmU2Zlx1NmQ5Ylx1NzA2Zlx1NzFjOFx1NWY1M1x1NzVkOFx1Nzk3N1x1N2I0OVx1N2I1NFx1N2I1Mlx1N2NkNlx1N2Q3MVx1NTIzMFx1ODQ2M1x1ODU2OVx1ODVlNFx1OGEwZVx1OGIwNFx1OGM0Nlx1OGUwZlx1OTAwM1x1OTAw'@; put 'Zlx1OTQxOVx1OTY3Nlx1OTgyZFx1OWEzMFx1OTVkOFx1NTBjZFx1NTJkNVx1NTQwY1x1NTgwMlx1NWMwZVx1NjFhN1x1NjQ5ZVx1NmQxZVx1NzdiM1x1N2FlNVx1ODBmNFx1ODQwNFx1OTA1M1x1OTI4NVx1NWNlMFx1OWQwN1x1NTMzZlx1NWY5N1x1NWZiM1x1NmQ5Y1x1NzI3OVx1Nzc2M1x1'@; put 'NzliZlx1N2JlNFx1NmJkMlx1NzJlY1x1OGFhZFx1NjgwM1x1NmE2MVx1NTFmOFx1N2E4MVx1NjkzNFx1NWM0YVx1OWNmNlx1ODJlYlx1NWJjNVx1OTE0OVx1NzAxZVx1NTY3OFx1NWM2Zlx1NjBjN1x1NjU2Nlx1NmM4Y1x1OGM1YVx1OTA0MVx1OTgxM1x1NTQ1MVx1NjZjN1x1OTIwZFx1NTk0'@; put 'OFx1OTBhM1x1NTE4NVx1NGU0ZFx1NTFlYVx1ODU5OVx1OGIwZVx1NzA1OFx1NjM3YVx1OTM0Ylx1Njk2Mlx1OTliNFx1N2UwNFx1NzU3N1x1NTM1N1x1Njk2MFx1OGVkZlx1OTZlM1x1NmM1ZFx1NGU4Y1x1NWMzY1x1NWYxMFx1OGZlOVx1NTMwMlx1OGNkMVx1ODA4OVx1ODY3OVx1NWVmZlx1'@; put 'NjVlNVx1NGU3M1x1NTE2NVx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE0N10ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTQ3XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE0N11bcF1dPTM3NjMyK3AsYlszNzYzMitwXT1fWzE0N11bcF0pO2ZvcihfWzE0OF09Ilx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTk4Mlx1NWMzZlx1OTdlZVx1NGVmYlx1NTk4YVx1NWZjZFx1OGE4ZFx1NmZlMVx1NzliMFx1Nzk2Mlx1NWJlN1x1ODQ3MVx1NzMyYlx1NzFiMVx1NWU3NFx1NWZmNVx1NjM3Ylx1NjQ5YVx1NzFjM1x1'@; put 'N2M5OFx1NGU0M1x1NWVmY1x1NGU0Ylx1NTdkY1x1NTZhMlx1NjBhOVx1NmZjM1x1N2QwZFx1ODBmZFx1ODEzM1x1ODFiZlx1OGZiMlx1ODk5N1x1ODZhNFx1NWRmNFx1NjI4YVx1NjRhZFx1ODk4N1x1Njc3N1x1NmNlMlx1NmQzZVx1NzQzNlx1NzgzNFx1NWE0Nlx1N2Y3NVx1ODJhZFx1OTlh'@; put 'Y1x1NGZmM1x1NWVjM1x1NjJkZFx1NjM5Mlx1NjU1N1x1Njc2Zlx1NzZjM1x1NzI0Y1x1ODBjY1x1ODBiYVx1OGYyOVx1OTE0ZFx1NTAwZFx1NTdmOVx1NWE5Mlx1Njg4NVx1ZmZmZFx1Njk3M1x1NzE2NFx1NzJmZFx1OGNiN1x1NThmMlx1OGNlMFx1OTY2YVx1OTAxOVx1ODc3Zlx1NzllNFx1'@; put 'NzdlN1x1ODQyOVx1NGYyZlx1NTI2NVx1NTM1YVx1NjJjZFx1NjdjZlx1NmNjYVx1NzY3ZFx1N2I5NFx1N2M5NVx1ODIzNlx1ODU4NFx1OGZlYlx1NjZkZFx1NmYyMFx1NzIwNlx1N2UxYlx1ODNhYlx1OTljMVx1OWVhNlx1NTFmZFx1N2JiMVx1Nzg3Mlx1N2JiOFx1ODA4N1x1N2I0OFx1NmFl'@; put 'OFx1NWU2MVx1ODA4Y1x1NzU1MVx1NzU2MFx1NTE2Ylx1OTI2Mlx1NmU4Y1x1NzY3YVx1OTE5N1x1OWFlYVx1NGYxMFx1N2Y3MFx1NjI5Y1x1N2I0Zlx1OTVhNVx1OWNlOVx1NTY3YVx1NTg1OVx1ODZlNFx1OTZiY1x1NGYzNFx1NTIyNFx1NTM0YVx1NTNjZFx1NTNkYlx1NWUwNlx1NjQyY1x1'@; put 'NjU5MVx1Njc3Zlx1NmMzZVx1NmM0ZVx1NzI0OFx1NzJhZlx1NzNlZFx1NzU1NFx1N2U0MVx1ODIyY1x1ODVlOVx1OGNhOVx1N2JjNFx1OTFjNlx1NzE2OVx1OTgxMlx1OThlZlx1NjMzZFx1NjY2OVx1NzU2YVx1NzZlNFx1NzhkMFx1ODU0M1x1ODZlZVx1NTMyYVx1NTM1MVx1NTQyNlx1NTk4'@; put 'M1x1NWU4N1x1NWY3Y1x1NjBiMlx1NjI0OVx1NjI3OVx1NjJhYlx1NjU5MFx1NmJkNFx1NmNjY1x1NzViMlx1NzZhZVx1Nzg5MVx1NzlkOFx1N2RjYlx1N2Y3N1x1ODBhNVx1ODhhYlx1OGFiOVx1OGNiYlx1OTA3Zlx1OTc1ZVx1OThkYlx1NmEwYlx1N2MzOFx1NTA5OVx1NWMzZVx1NWZhZVx1'@; put 'Njc4N1x1NmJkOFx1NzQzNVx1NzcwOVx1N2Y4ZVx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE0OF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTQ4XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE0OF1bcF1dPTM3ODg4K3AsYlszNzg4OCtwXT1fWzE0OF1bcF0pO2Zvcihf'@; put 'WzE0OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWYzYlx1NjdjYVx1N2ExN1x1NTMzOVx1NzU4Ylx1OWFlZFx1NWY2Nlx1ODE5ZFx1ODNmMVx1ODA5OFx1NWYzY1x1NWZjNVx1NzU2Mlx1N2I0Nlx1OTAzY1x1Njg2N1x1NTllYlx1'@; put 'NWE5Ylx1N2QxMFx1NzY3ZVx1OGIyY1x1NGZmNVx1NWY2YVx1NmExOVx1NmMzN1x1NmYwMlx1NzRlMlx1Nzk2OFx1ODg2OFx1OGE1NVx1OGM3OVx1NWVkZlx1NjNjZlx1NzVjNVx1NzlkMlx1ODJkN1x1OTMyOFx1OTJmMlx1ODQ5Y1x1ODZlZFx1OWMyZFx1NTRjMVx1NWY2Y1x1NjU4Y1x1NmQ1'@; put 'Y1x1NzAxNVx1OGNhN1x1OGNkM1x1OTgzYlx1NjU0Zlx1NzRmNlx1NGUwZFx1NGVkOFx1NTdlMFx1NTkyYlx1NWE2Nlx1NWJjY1x1NTFhOFx1NWUwM1x1NWU5Y1x1NjAxNlx1NjI3Nlx1NjU3N1x1ZmZmZFx1NjVhN1x1NjY2ZVx1NmQ2ZVx1NzIzNlx1N2IyNlx1ODE1MFx1ODE5YVx1ODI5OVx1'@; put 'OGI1Y1x1OGNhMFx1OGNlNlx1OGQ3NFx1OTYxY1x1OTY0NFx1NGZhZVx1NjRhYlx1NmI2Nlx1ODIxZVx1ODQ2MVx1ODU2YVx1OTBlOFx1NWMwMVx1Njk1M1x1OThhOFx1ODQ3YVx1ODU1N1x1NGYwZlx1NTI2Zlx1NWZhOVx1NWU0NVx1NjcwZFx1Nzk4Zlx1ODE3OVx1ODkwN1x1ODk4Nlx1NmRm'@; put 'NVx1NWYxN1x1NjI1NVx1NmNiOFx1NGVjZlx1NzI2OVx1OWI5Mlx1NTIwNlx1NTQzYlx1NTY3NFx1NThiM1x1NjFhNFx1NjI2ZVx1NzExYVx1NTk2ZVx1N2M4OVx1N2NkZVx1N2QxYlx1OTZmMFx1NjU4N1x1ODA1ZVx1NGUxOVx1NGY3NVx1NTE3NVx1NTg0MFx1NWU2M1x1NWU3M1x1NWYwYVx1'@; put 'NjdjNFx1NGUyNlx1ODUzZFx1OTU4OVx1OTY1Ylx1N2M3M1x1OTgwMVx1NTBmYlx1NThjMVx1NzY1Nlx1NzhhN1x1NTIyNVx1NzdhNVx1ODUxMVx1N2I4Nlx1NTA0Zlx1NTkwOVx1NzI0N1x1N2JjN1x1N2RlOFx1OGZiYVx1OGZkNFx1OTA0ZFx1NGZiZlx1NTJjOVx1NWEyOVx1NWYwMVx1OTdh'@; put 'ZFx1NGZkZFx1ODIxN1x1OTJlYVx1NTcwM1x1NjM1NVx1NmI2OVx1NzUyYlx1ODhkY1x1OGYxNFx1N2E0Mlx1NTJkZlx1NTg5M1x1NjE1NVx1NjIwYVx1NjZhZVx1NmJjZFx1N2MzZlx1ODNlOVx1NTAyM1x1NGZmOFx1NTMwNVx1NTQ0Nlx1NTgzMVx1NTk0OVx1NWI5ZFx1NWNmMFx1NWNlZlx1'@; put 'NWQyOVx1NWU5Nlx1NjJiMVx1NjM2N1x1NjUzZVx1NjViOVx1NjcwYlx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE0OV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTQ5XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE0OV1bcF1dPTM4MTQ0K3AsYlszODE0NCtwXT1fWzE0'@; put 'OV1bcF0pO2ZvcihfWzE1MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmNkNVx1NmNlMVx1NzBmOVx1NzgzMlx1N2UyYlx1ODBkZVx1ODJiM1x1ODQwY1x1ODRlY1x1ODcwMlx1ODkxMlx1OGEyYVx1OGM0YVx1OTBhNlx1OTJkMlx1'@; put 'OThmZFx1OWNmM1x1OWQ2Y1x1NGU0Zlx1NGVhMVx1NTA4ZFx1NTI1Nlx1NTc0YVx1NTlhOFx1NWUzZFx1NWZkOFx1NWZkOVx1NjIzZlx1NjZiNFx1NjcxYlx1NjdkMFx1NjhkMlx1NTE5Mlx1N2QyMVx1ODBhYVx1ODFhOFx1OGIwMFx1OGM4Y1x1OGNiZlx1OTI3ZVx1OTYzMlx1NTQyMFx1OTgy'@; put 'Y1x1NTMxN1x1NTBkNVx1NTM1Y1x1NThhOFx1NjRiMlx1NjczNFx1NzI2N1x1Nzc2Nlx1N2E0Nlx1OTFlNlx1NTJjM1x1NmNhMVx1NmI4Nlx1NTgwMFx1NWU0Y1x1NTk1NFx1NjcyY1x1N2ZmYlx1NTFlMVx1NzZjNlx1ZmZmZFx1NjQ2OVx1NzhlOFx1OWI1NFx1OWViYlx1NTdjYlx1NTliOVx1'@; put 'NjYyN1x1Njc5YVx1NmJjZVx1NTRlOVx1NjlkOVx1NWU1NVx1ODE5Y1x1Njc5NVx1OWJhYVx1NjdmZVx1OWM1Mlx1Njg1ZFx1NGVhNlx1NGZlM1x1NTNjOFx1NjJiOVx1NjcyYlx1NmNhYlx1OGZjNFx1NGZhZFx1N2U2ZFx1OWViZlx1NGUwN1x1NjE2Mlx1NmU4MFx1NmYyYlx1ODUxM1x1NTQ3'@; put 'M1x1NjcyYVx1OWI0NVx1NWRmM1x1N2I5NVx1NWNhY1x1NWJjNlx1ODcxY1x1NmU0YVx1ODRkMVx1N2ExNFx1ODEwOFx1NTk5OVx1N2M4ZFx1NmMxMVx1NzcyMFx1NTJkOVx1NTkyMlx1NzEyMVx1NzI1Zlx1NzdkYlx1OTcyN1x1OWQ2MVx1NjkwYlx1NWE3Zlx1NWExOFx1NTFhNVx1NTQwZFx1'@; put 'NTQ3ZFx1NjYwZVx1NzZkZlx1OGZmN1x1OTI5OFx1OWNmNFx1NTllYVx1NzI1ZFx1NmVjNVx1NTE0ZFx1NjhjOVx1N2RiZlx1N2RlY1x1OTc2Mlx1OWViYVx1NjQ3OFx1NmEyMVx1ODMwMlx1NTk4NFx1NWI1Zlx1NmJkYlx1NzMxYlx1NzZmMlx1N2RiMlx1ODAxN1x1ODQ5OVx1NTEzMlx1Njcy'@; put 'OFx1OWVkOVx1NzZlZVx1Njc2Mlx1NTJmZlx1OTkwNVx1NWMyNFx1NjIzYlx1N2M3ZVx1OGNiMFx1NTU0Zlx1NjBiNlx1N2QwYlx1OTU4MFx1NTMwMVx1NGU1Zlx1NTFiNlx1NTkxY1x1NzIzYVx1ODAzNlx1OTFjZVx1NWYyNVx1NzdlMlx1NTM4NFx1NWY3OVx1N2QwNFx1ODVhY1x1OGEzM1x1'@; put 'OGU4ZFx1OTc1Nlx1NjdmM1x1ODVhZVx1OTQ1M1x1NjEwOVx1NjEwOFx1NmNiOVx1NzY1Mlx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE1MF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTUwXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE1MF1bcF1dPTM4NDAwK3AsYlsz'@; put 'ODQwMCtwXT1fWzE1MF1bcF0pO2ZvcihfWzE1MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGFlZFx1OGYzOFx1NTUyZlx1NGY1MVx1NTEyYVx1NTJjN1x1NTNjYlx1NWJhNVx1NWU3ZFx1NjBhMFx1NjE4Mlx1NjNkNlx1NjcwOVx1'@; put 'NjdkYVx1NmU2N1x1NmQ4Y1x1NzMzNlx1NzMzN1x1NzUzMVx1Nzk1MFx1ODhkNVx1OGE5OFx1OTA0YVx1OTA5MVx1OTBmNVx1OTZjNFx1ODc4ZFx1NTkxNVx1NGU4OFx1NGY1OVx1NGUwZVx1OGE4OVx1OGYzZlx1OTgxMFx1NTBhZFx1NWU3Y1x1NTk5Nlx1NWJiOVx1NWViOFx1NjNkYVx1NjNm'@; put 'YVx1NjRjMVx1NjZkY1x1Njk0YVx1NjlkOFx1NmQwYlx1NmViNlx1NzE5NFx1NzUyOFx1N2FhZlx1N2Y4YVx1ODAwMFx1ODQ0OVx1ODRjOVx1ODk4MVx1OGIyMVx1OGUwYVx1OTA2NVx1OTY3ZFx1OTkwYVx1NjE3ZVx1NjI5MVx1NmIzMlx1ZmZmZFx1NmM4M1x1NmQ3NFx1N2ZjY1x1N2ZmY1x1'@; put 'NmRjMFx1N2Y4NVx1ODdiYVx1ODhmOFx1Njc2NVx1ODNiMVx1OTgzY1x1OTZmN1x1NmQxYlx1N2Q2MVx1ODQzZFx1OTE2YVx1NGU3MVx1NTM3NVx1NWQ1MFx1NmIwNFx1NmZlYlx1ODVjZFx1ODYyZFx1ODlhN1x1NTIyOVx1NTQwZlx1NWM2NVx1Njc0ZVx1NjhhOFx1NzQwNlx1NzQ4M1x1NzVl'@; put 'Mlx1ODhjZlx1ODhlMVx1OTFjY1x1OTZlMlx1OTY3OFx1NWY4Ylx1NzM4N1x1N2FjYlx1ODQ0ZVx1NjNhMFx1NzU2NVx1NTI4OVx1NmQ0MVx1NmU5Y1x1NzQwOVx1NzU1OVx1Nzg2Ylx1N2M5Mlx1OTY4Nlx1N2FkY1x1OWY4ZFx1NGZiNlx1NjE2ZVx1NjVjNVx1ODY1Y1x1NGU4Nlx1NGVhZVx1'@; put 'NTBkYVx1NGUyMVx1NTFjY1x1NWJlZVx1NjU5OVx1Njg4MVx1NmRiY1x1NzMxZlx1NzY0Mlx1NzdhZFx1N2ExY1x1N2NlN1x1ODI2Zlx1OGFkMlx1OTA3Y1x1OTFjZlx1OTY3NVx1OTgxOFx1NTI5Ylx1N2RkMVx1NTAyYlx1NTM5OFx1Njc5N1x1NmRjYlx1NzFkMFx1NzQzM1x1ODFlOFx1OGYy'@; put 'YVx1OTZhM1x1OWM1N1x1OWU5Zlx1NzQ2MFx1NTg0MVx1NmQ5OVx1N2QyZlx1OTg1ZVx1NGVlNFx1NGYzNlx1NGY4Ylx1NTFiN1x1NTJiMVx1NWRiYVx1NjAxY1x1NzNiMlx1NzkzY1x1ODJkM1x1OTIzNFx1OTZiN1x1OTZmNlx1OTcwYVx1OWU5N1x1OWY2Mlx1NjZhNlx1NmI3NFx1NTIxN1x1'@; put 'NTJhM1x1NzBjOFx1ODhjMlx1NWVjOVx1NjA0Ylx1NjE5MFx1NmYyM1x1NzE0OVx1N2MzZVx1N2RmNFx1ODA2Zlx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE1MV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTUxXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE1MV1bcF1d'@; put 'PTM4NjU2K3AsYlszODY1NitwXT1fWzE1MV1bcF0pO2ZvcihfWzE1Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODRlZVx1OTAyM1x1OTMyY1x1NTQ0Mlx1OWI2Zlx1NmFkM1x1NzA4OVx1OGNjMlx1OGRlZlx1OTczMlx1NTJiNFx1'@; put 'NWE0MVx1NWVjYVx1NWYwNFx1NjcxN1x1Njk3Y1x1Njk5NFx1NmQ2YVx1NmYwZlx1NzI2Mlx1NzJmY1x1N2JlZFx1ODAwMVx1ODA3ZVx1ODc0Ylx1OTBjZVx1NTE2ZFx1OWU5M1x1Nzk4NFx1ODA4Ylx1OTMzMlx1OGFkNlx1NTAyZFx1NTQ4Y1x1OGE3MVx1NmI2YVx1OGNjNFx1ODEwN1x1NjBk'@; put 'MVx1NjdhMFx1OWRmMlx1NGU5OVx1NGU5OFx1OWMxMFx1OGE2Ylx1ODVjMVx1ODU2OFx1NjkwMFx1NmU3ZVx1Nzg5N1x1ODE1NVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1NWYwY1x1NGUxMFx1NGUxNVx1NGUyYVx1NGUzMVx1NGUzNlx1NGUzY1x1NGUzZlx1NGU0Mlx1NGU1Nlx1NGU1OFx1NGU4Mlx1NGU4NVx1OGM2Ylx1NGU4YVx1ODIxMlx1NWYwZFx1NGU4ZVx1NGU5ZVx1NGU5Zlx1NGVhMFx1NGVhMlx1NGViMFx1NGViM1x1NGViNlx1NGVjZVx1'@; put 'NGVjZFx1NGVjNFx1NGVjNlx1NGVjMlx1NGVkN1x1NGVkZVx1NGVlZFx1NGVkZlx1NGVmN1x1NGYwOVx1NGY1YVx1NGYzMFx1NGY1Ylx1NGY1ZFx1NGY1N1x1NGY0N1x1NGY3Nlx1NGY4OFx1NGY4Zlx1NGY5OFx1NGY3Ylx1NGY2OVx1NGY3MFx1NGY5MVx1NGY2Zlx1NGY4Nlx1NGY5Nlx1NTEx'@; put 'OFx1NGZkNFx1NGZkZlx1NGZjZVx1NGZkOFx1NGZkYlx1NGZkMVx1NGZkYVx1NGZkMFx1NGZlNFx1NGZlNVx1NTAxYVx1NTAyOFx1NTAxNFx1NTAyYVx1NTAyNVx1NTAwNVx1NGYxY1x1NGZmNlx1NTAyMVx1NTAyOVx1NTAyY1x1NGZmZVx1NGZlZlx1NTAxMVx1NTAwNlx1NTA0M1x1NTA0N1x1'@; put 'NjcwM1x1NTA1NVx1NTA1MFx1NTA0OFx1NTA1YVx1NTA1Nlx1NTA2Y1x1NTA3OFx1NTA4MFx1NTA5YVx1NTA4NVx1NTBiNFx1NTBiMlx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE1Ml0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTUyXVtwXS5jaGFyQ29kZUF0KDApJiYo'@; put 'RFtfWzE1Ml1bcF1dPTM4OTEyK3AsYlszODkxMitwXT1fWzE1Ml1bcF0pO2ZvcihfWzE1M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTBjOVx1NTBjYVx1NTBiM1x1NTBjMlx1NTBkNlx1NTBkZVx1NTBlNVx1NTBlZFx1NTBlM1x1'@; put 'NTBlZVx1NTBmOVx1NTBmNVx1NTEwOVx1NTEwMVx1NTEwMlx1NTExNlx1NTExNVx1NTExNFx1NTExYVx1NTEyMVx1NTEzYVx1NTEzN1x1NTEzY1x1NTEzYlx1NTEzZlx1NTE0MFx1NTE1Mlx1NTE0Y1x1NTE1NFx1NTE2Mlx1N2FmOFx1NTE2OVx1NTE2YVx1NTE2ZVx1NTE4MFx1NTE4Mlx1NTZk'@; put 'OFx1NTE4Y1x1NTE4OVx1NTE4Zlx1NTE5MVx1NTE5M1x1NTE5NVx1NTE5Nlx1NTFhNFx1NTFhNlx1NTFhMlx1NTFhOVx1NTFhYVx1NTFhYlx1NTFiM1x1NTFiMVx1NTFiMlx1NTFiMFx1NTFiNVx1NTFiZFx1NTFjNVx1NTFjOVx1NTFkYlx1NTFlMFx1ODY1NVx1NTFlOVx1NTFlZFx1ZmZmZFx1'@; put 'NTFmMFx1NTFmNVx1NTFmZVx1NTIwNFx1NTIwYlx1NTIxNFx1NTIwZVx1NTIyN1x1NTIyYVx1NTIyZVx1NTIzM1x1NTIzOVx1NTI0Zlx1NTI0NFx1NTI0Ylx1NTI0Y1x1NTI1ZVx1NTI1NFx1NTI2YVx1NTI3NFx1NTI2OVx1NTI3M1x1NTI3Zlx1NTI3ZFx1NTI4ZFx1NTI5NFx1NTI5Mlx1NTI3'@; put 'MVx1NTI4OFx1NTI5MVx1OGZhOFx1OGZhN1x1NTJhY1x1NTJhZFx1NTJiY1x1NTJiNVx1NTJjMVx1NTJjZFx1NTJkN1x1NTJkZVx1NTJlM1x1NTJlNlx1OThlZFx1NTJlMFx1NTJmM1x1NTJmNVx1NTJmOFx1NTJmOVx1NTMwNlx1NTMwOFx1NzUzOFx1NTMwZFx1NTMxMFx1NTMwZlx1NTMxNVx1'@; put 'NTMxYVx1NTMyM1x1NTMyZlx1NTMzMVx1NTMzM1x1NTMzOFx1NTM0MFx1NTM0Nlx1NTM0NVx1NGUxN1x1NTM0OVx1NTM0ZFx1NTFkNlx1NTM1ZVx1NTM2OVx1NTM2ZVx1NTkxOFx1NTM3Ylx1NTM3N1x1NTM4Mlx1NTM5Nlx1NTNhMFx1NTNhNlx1NTNhNVx1NTNhZVx1NTNiMFx1NTNiNlx1NTNj'@; put 'M1x1N2MxMlx1OTZkOVx1NTNkZlx1NjZmY1x1NzFlZVx1NTNlZVx1NTNlOFx1NTNlZFx1NTNmYVx1NTQwMVx1NTQzZFx1NTQ0MFx1NTQyY1x1NTQyZFx1NTQzY1x1NTQyZVx1NTQzNlx1NTQyOVx1NTQxZFx1NTQ0ZVx1NTQ4Zlx1NTQ3NVx1NTQ4ZVx1NTQ1Zlx1NTQ3MVx1NTQ3N1x1NTQ3MFx1'@; put 'NTQ5Mlx1NTQ3Ylx1NTQ4MFx1NTQ3Nlx1NTQ4NFx1NTQ5MFx1NTQ4Nlx1NTRjN1x1NTRhMlx1NTRiOFx1NTRhNVx1NTRhY1x1NTRjNFx1NTRjOFx1NTRhOFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE1M10ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTUzXVtwXS5jaGFy'@; put 'Q29kZUF0KDApJiYoRFtfWzE1M11bcF1dPTM5MTY4K3AsYlszOTE2OCtwXT1fWzE1M11bcF0pO2ZvcihfWzE1NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTRhYlx1NTRjMlx1NTRhNFx1NTRiZVx1NTRiY1x1NTRkOFx1NTRlNVx1'@; put 'NTRlNlx1NTUwZlx1NTUxNFx1NTRmZFx1NTRlZVx1NTRlZFx1NTRmYVx1NTRlMlx1NTUzOVx1NTU0MFx1NTU2M1x1NTU0Y1x1NTUyZVx1NTU1Y1x1NTU0NVx1NTU1Nlx1NTU1N1x1NTUzOFx1NTUzM1x1NTU1ZFx1NTU5OVx1NTU4MFx1NTRhZlx1NTU4YVx1NTU5Zlx1NTU3Ylx1NTU3ZVx1NTU5'@; put 'OFx1NTU5ZVx1NTVhZVx1NTU3Y1x1NTU4M1x1NTVhOVx1NTU4N1x1NTVhOFx1NTVkYVx1NTVjNVx1NTVkZlx1NTVjNFx1NTVkY1x1NTVlNFx1NTVkNFx1NTYxNFx1NTVmN1x1NTYxNlx1NTVmZVx1NTVmZFx1NTYxYlx1NTVmOVx1NTY0ZVx1NTY1MFx1NzFkZlx1NTYzNFx1NTYzNlx1NTYzMlx1'@; put 'NTYzOFx1ZmZmZFx1NTY2Ylx1NTY2NFx1NTYyZlx1NTY2Y1x1NTY2YVx1NTY4Nlx1NTY4MFx1NTY4YVx1NTZhMFx1NTY5NFx1NTY4Zlx1NTZhNVx1NTZhZVx1NTZiNlx1NTZiNFx1NTZjMlx1NTZiY1x1NTZjMVx1NTZjM1x1NTZjMFx1NTZjOFx1NTZjZVx1NTZkMVx1NTZkM1x1NTZkN1x1NTZl'@; put 'ZVx1NTZmOVx1NTcwMFx1NTZmZlx1NTcwNFx1NTcwOVx1NTcwOFx1NTcwYlx1NTcwZFx1NTcxM1x1NTcxOFx1NTcxNlx1NTVjN1x1NTcxY1x1NTcyNlx1NTczN1x1NTczOFx1NTc0ZVx1NTczYlx1NTc0MFx1NTc0Zlx1NTc2OVx1NTdjMFx1NTc4OFx1NTc2MVx1NTc3Zlx1NTc4OVx1NTc5M1x1'@; put 'NTdhMFx1NTdiM1x1NTdhNFx1NTdhYVx1NTdiMFx1NTdjM1x1NTdjNlx1NTdkNFx1NTdkMlx1NTdkM1x1NTgwYVx1NTdkNlx1NTdlM1x1NTgwYlx1NTgxOVx1NTgxZFx1NTg3Mlx1NTgyMVx1NTg2Mlx1NTg0Ylx1NTg3MFx1NmJjMFx1NTg1Mlx1NTgzZFx1NTg3OVx1NTg4NVx1NThiOVx1NTg5'@; put 'Zlx1NThhYlx1NThiYVx1NThkZVx1NThiYlx1NThiOFx1NThhZVx1NThjNVx1NThkM1x1NThkMVx1NThkN1x1NThkOVx1NThkOFx1NThlNVx1NThkY1x1NThlNFx1NThkZlx1NThlZlx1NThmYVx1NThmOVx1NThmYlx1NThmY1x1NThmZFx1NTkwMlx1NTkwYVx1NTkxMFx1NTkxYlx1NjhhNlx1'@; put 'NTkyNVx1NTkyY1x1NTkyZFx1NTkzMlx1NTkzOFx1NTkzZVx1N2FkMlx1NTk1NVx1NTk1MFx1NTk0ZVx1NTk1YVx1NTk1OFx1NTk2Mlx1NTk2MFx1NTk2N1x1NTk2Y1x1NTk2OVx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE1NF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9b'@; put 'MTU0XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE1NF1bcF1dPTM5NDI0K3AsYlszOTQyNCtwXT1fWzE1NF1bcF0pO2ZvcihfWzE1NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTk3OFx1NTk4MVx1NTk5ZFx1NGY1ZVx1NGZhYlx1'@; put 'NTlhM1x1NTliMlx1NTljNlx1NTllOFx1NTlkY1x1NTk4ZFx1NTlkOVx1NTlkYVx1NWEyNVx1NWExZlx1NWExMVx1NWExY1x1NWEwOVx1NWExYVx1NWE0MFx1NWE2Y1x1NWE0OVx1NWEzNVx1NWEzNlx1NWE2Mlx1NWE2YVx1NWE5YVx1NWFiY1x1NWFiZVx1NWFjYlx1NWFjMlx1NWFiZFx1NWFl'@; put 'M1x1NWFkN1x1NWFlNlx1NWFlOVx1NWFkNlx1NWFmYVx1NWFmYlx1NWIwY1x1NWIwYlx1NWIxNlx1NWIzMlx1NWFkMFx1NWIyYVx1NWIzNlx1NWIzZVx1NWI0M1x1NWI0NVx1NWI0MFx1NWI1MVx1NWI1NVx1NWI1YVx1NWI1Ylx1NWI2NVx1NWI2OVx1NWI3MFx1NWI3M1x1NWI3NVx1NWI3OFx1'@; put 'NjU4OFx1NWI3YVx1NWI4MFx1ZmZmZFx1NWI4M1x1NWJhNlx1NWJiOFx1NWJjM1x1NWJjN1x1NWJjOVx1NWJkNFx1NWJkMFx1NWJlNFx1NWJlNlx1NWJlMlx1NWJkZVx1NWJlNVx1NWJlYlx1NWJmMFx1NWJmNlx1NWJmM1x1NWMwNVx1NWMwN1x1NWMwOFx1NWMwZFx1NWMxM1x1NWMyMFx1NWMy'@; put 'Mlx1NWMyOFx1NWMzOFx1NWMzOVx1NWM0MVx1NWM0Nlx1NWM0ZVx1NWM1M1x1NWM1MFx1NWM0Zlx1NWI3MVx1NWM2Y1x1NWM2ZVx1NGU2Mlx1NWM3Nlx1NWM3OVx1NWM4Y1x1NWM5MVx1NWM5NFx1NTk5Ylx1NWNhYlx1NWNiYlx1NWNiNlx1NWNiY1x1NWNiN1x1NWNjNVx1NWNiZVx1NWNjN1x1'@; put 'NWNkOVx1NWNlOVx1NWNmZFx1NWNmYVx1NWNlZFx1NWQ4Y1x1NWNlYVx1NWQwYlx1NWQxNVx1NWQxN1x1NWQ1Y1x1NWQxZlx1NWQxYlx1NWQxMVx1NWQxNFx1NWQyMlx1NWQxYVx1NWQxOVx1NWQxOFx1NWQ0Y1x1NWQ1Mlx1NWQ0ZVx1NWQ0Ylx1NWQ2Y1x1NWQ3M1x1NWQ3Nlx1NWQ4N1x1NWQ4'@; put 'NFx1NWQ4Mlx1NWRhMlx1NWQ5ZFx1NWRhY1x1NWRhZVx1NWRiZFx1NWQ5MFx1NWRiN1x1NWRiY1x1NWRjOVx1NWRjZFx1NWRkM1x1NWRkMlx1NWRkNlx1NWRkYlx1NWRlYlx1NWRmMlx1NWRmNVx1NWUwYlx1NWUxYVx1NWUxOVx1NWUxMVx1NWUxYlx1NWUzNlx1NWUzN1x1NWU0NFx1NWU0M1x1'@; put 'NWU0MFx1NWU0ZVx1NWU1N1x1NWU1NFx1NWU1Zlx1NWU2Mlx1NWU2NFx1NWU0N1x1NWU3NVx1NWU3Nlx1NWU3YVx1OWViY1x1NWU3Zlx1NWVhMFx1NWVjMVx1NWVjMlx1NWVjOFx1NWVkMFx1NWVjZlx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE1NV0ubGVuZ3RoOysr'@; put 'cCk2NTUzMyE9PV9bMTU1XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE1NV1bcF1dPTM5NjgwK3AsYlszOTY4MCtwXT1fWzE1NV1bcF0pO2ZvcihfWzE1Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWVkNlx1NWVlM1x1NWVkZFx1'@; put 'NWVkYVx1NWVkYlx1NWVlMlx1NWVlMVx1NWVlOFx1NWVlOVx1NWVlY1x1NWVmMVx1NWVmM1x1NWVmMFx1NWVmNFx1NWVmOFx1NWVmZVx1NWYwM1x1NWYwOVx1NWY1ZFx1NWY1Y1x1NWYwYlx1NWYxMVx1NWYxNlx1NWYyOVx1NWYyZFx1NWYzOFx1NWY0MVx1NWY0OFx1NWY0Y1x1NWY0ZVx1NWYy'@; put 'Zlx1NWY1MVx1NWY1Nlx1NWY1N1x1NWY1OVx1NWY2MVx1NWY2ZFx1NWY3M1x1NWY3N1x1NWY4M1x1NWY4Mlx1NWY3Zlx1NWY4YVx1NWY4OFx1NWY5MVx1NWY4N1x1NWY5ZVx1NWY5OVx1NWY5OFx1NWZhMFx1NWZhOFx1NWZhZFx1NWZiY1x1NWZkNlx1NWZmYlx1NWZlNFx1NWZmOFx1NWZmMVx1'@; put 'NWZkZFx1NjBiM1x1NWZmZlx1NjAyMVx1NjA2MFx1ZmZmZFx1NjAxOVx1NjAxMFx1NjAyOVx1NjAwZVx1NjAzMVx1NjAxYlx1NjAxNVx1NjAyYlx1NjAyNlx1NjAwZlx1NjAzYVx1NjA1YVx1NjA0MVx1NjA2YVx1NjA3N1x1NjA1Zlx1NjA0YVx1NjA0Nlx1NjA0ZFx1NjA2M1x1NjA0M1x1NjA2'@; put 'NFx1NjA0Mlx1NjA2Y1x1NjA2Ylx1NjA1OVx1NjA4MVx1NjA4ZFx1NjBlN1x1NjA4M1x1NjA5YVx1NjA4NFx1NjA5Ylx1NjA5Nlx1NjA5N1x1NjA5Mlx1NjBhN1x1NjA4Ylx1NjBlMVx1NjBiOFx1NjBlMFx1NjBkM1x1NjBiNFx1NWZmMFx1NjBiZFx1NjBjNlx1NjBiNVx1NjBkOFx1NjE0ZFx1'@; put 'NjExNVx1NjEwNlx1NjBmNlx1NjBmN1x1NjEwMFx1NjBmNFx1NjBmYVx1NjEwM1x1NjEyMVx1NjBmYlx1NjBmMVx1NjEwZFx1NjEwZVx1NjE0N1x1NjEzZVx1NjEyOFx1NjEyN1x1NjE0YVx1NjEzZlx1NjEzY1x1NjEyY1x1NjEzNFx1NjEzZFx1NjE0Mlx1NjE0NFx1NjE3M1x1NjE3N1x1NjE1'@; put 'OFx1NjE1OVx1NjE1YVx1NjE2Ylx1NjE3NFx1NjE2Zlx1NjE2NVx1NjE3MVx1NjE1Zlx1NjE1ZFx1NjE1M1x1NjE3NVx1NjE5OVx1NjE5Nlx1NjE4N1x1NjFhY1x1NjE5NFx1NjE5YVx1NjE4YVx1NjE5MVx1NjFhYlx1NjFhZVx1NjFjY1x1NjFjYVx1NjFjOVx1NjFmN1x1NjFjOFx1NjFjM1x1'@; put 'NjFjNlx1NjFiYVx1NjFjYlx1N2Y3OVx1NjFjZFx1NjFlNlx1NjFlM1x1NjFmNlx1NjFmYVx1NjFmNFx1NjFmZlx1NjFmZFx1NjFmY1x1NjFmZVx1NjIwMFx1NjIwOFx1NjIwOVx1NjIwZFx1NjIwY1x1NjIxNFx1NjIxYlx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE1'@; put 'Nl0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTU2XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE1Nl1bcF1dPTM5OTM2K3AsYlszOTkzNitwXT1fWzE1Nl1bcF0pO2ZvcihfWzE1N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjIxZVx1'@; put 'NjIyMVx1NjIyYVx1NjIyZVx1NjIzMFx1NjIzMlx1NjIzM1x1NjI0MVx1NjI0ZVx1NjI1ZVx1NjI2M1x1NjI1Ylx1NjI2MFx1NjI2OFx1NjI3Y1x1NjI4Mlx1NjI4OVx1NjI3ZVx1NjI5Mlx1NjI5M1x1NjI5Nlx1NjJkNFx1NjI4M1x1NjI5NFx1NjJkN1x1NjJkMVx1NjJiYlx1NjJjZlx1NjJm'@; put 'Zlx1NjJjNlx1NjRkNFx1NjJjOFx1NjJkY1x1NjJjY1x1NjJjYVx1NjJjMlx1NjJjN1x1NjI5Ylx1NjJjOVx1NjMwY1x1NjJlZVx1NjJmMVx1NjMyN1x1NjMwMlx1NjMwOFx1NjJlZlx1NjJmNVx1NjM1MFx1NjMzZVx1NjM0ZFx1NjQxY1x1NjM0Zlx1NjM5Nlx1NjM4ZVx1NjM4MFx1NjNhYlx1'@; put 'NjM3Nlx1NjNhM1x1NjM4Zlx1NjM4OVx1NjM5Zlx1NjNiNVx1NjM2Ylx1ZmZmZFx1NjM2OVx1NjNiZVx1NjNlOVx1NjNjMFx1NjNjNlx1NjNlM1x1NjNjOVx1NjNkMlx1NjNmNlx1NjNjNFx1NjQxNlx1NjQzNFx1NjQwNlx1NjQxM1x1NjQyNlx1NjQzNlx1NjUxZFx1NjQxN1x1NjQyOFx1NjQw'@; put 'Zlx1NjQ2N1x1NjQ2Zlx1NjQ3Nlx1NjQ0ZVx1NjUyYVx1NjQ5NVx1NjQ5M1x1NjRhNVx1NjRhOVx1NjQ4OFx1NjRiY1x1NjRkYVx1NjRkMlx1NjRjNVx1NjRjN1x1NjRiYlx1NjRkOFx1NjRjMlx1NjRmMVx1NjRlN1x1ODIwOVx1NjRlMFx1NjRlMVx1NjJhY1x1NjRlM1x1NjRlZlx1NjUyY1x1'@; put 'NjRmNlx1NjRmNFx1NjRmMlx1NjRmYVx1NjUwMFx1NjRmZFx1NjUxOFx1NjUxY1x1NjUwNVx1NjUyNFx1NjUyM1x1NjUyYlx1NjUzNFx1NjUzNVx1NjUzN1x1NjUzNlx1NjUzOFx1NzU0Ylx1NjU0OFx1NjU1Nlx1NjU1NVx1NjU0ZFx1NjU1OFx1NjU1ZVx1NjU1ZFx1NjU3Mlx1NjU3OFx1NjU4'@; put 'Mlx1NjU4M1x1OGI4YVx1NjU5Ylx1NjU5Zlx1NjVhYlx1NjViN1x1NjVjM1x1NjVjNlx1NjVjMVx1NjVjNFx1NjVjY1x1NjVkMlx1NjVkYlx1NjVkOVx1NjVlMFx1NjVlMVx1NjVmMVx1Njc3Mlx1NjYwYVx1NjYwM1x1NjVmYlx1Njc3M1x1NjYzNVx1NjYzNlx1NjYzNFx1NjYxY1x1NjY0Zlx1'@; put 'NjY0NFx1NjY0OVx1NjY0MVx1NjY1ZVx1NjY1ZFx1NjY2NFx1NjY2N1x1NjY2OFx1NjY1Zlx1NjY2Mlx1NjY3MFx1NjY4M1x1NjY4OFx1NjY4ZVx1NjY4OVx1NjY4NFx1NjY5OFx1NjY5ZFx1NjZjMVx1NjZiOVx1NjZjOVx1NjZiZVx1NjZiY1x1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIp'@; put 'LHA9MDtwIT1fWzE1N10ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTU3XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE1N11bcF1dPTQwMTkyK3AsYls0MDE5MitwXT1fWzE1N11bcF0pO2ZvcihfWzE1OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1NjZjNFx1NjZiOFx1NjZkNlx1NjZkYVx1NjZlMFx1NjYzZlx1NjZlNlx1NjZlOVx1NjZmMFx1NjZmNVx1NjZmN1x1NjcwZlx1NjcxNlx1NjcxZVx1NjcyNlx1NjcyN1x1OTczOFx1NjcyZVx1NjczZlx1NjczNlx1Njc0MVx1NjczOFx1NjczN1x1Njc0Nlx1Njc1ZVx1Njc2MFx1Njc1'@; put 'OVx1Njc2M1x1Njc2NFx1Njc4OVx1Njc3MFx1NjdhOVx1Njc3Y1x1Njc2YVx1Njc4Y1x1Njc4Ylx1NjdhNlx1NjdhMVx1Njc4NVx1NjdiN1x1NjdlZlx1NjdiNFx1NjdlY1x1NjdiM1x1NjdlOVx1NjdiOFx1NjdlNFx1NjdkZVx1NjdkZFx1NjdlMlx1NjdlZVx1NjdiOVx1NjdjZVx1NjdjNlx1'@; put 'NjdlN1x1NmE5Y1x1NjgxZVx1Njg0Nlx1NjgyOVx1Njg0MFx1Njg0ZFx1NjgzMlx1Njg0ZVx1ZmZmZFx1NjhiM1x1NjgyYlx1Njg1OVx1Njg2M1x1Njg3N1x1Njg3Zlx1Njg5Zlx1Njg4Zlx1NjhhZFx1Njg5NFx1Njg5ZFx1Njg5Ylx1Njg4M1x1NmFhZVx1NjhiOVx1Njg3NFx1NjhiNVx1Njhh'@; put 'MFx1NjhiYVx1NjkwZlx1Njg4ZFx1Njg3ZVx1NjkwMVx1NjhjYVx1NjkwOFx1NjhkOFx1NjkyMlx1NjkyNlx1NjhlMVx1NjkwY1x1NjhjZFx1NjhkNFx1NjhlN1x1NjhkNVx1NjkzNlx1NjkxMlx1NjkwNFx1NjhkN1x1NjhlM1x1NjkyNVx1NjhmOVx1NjhlMFx1NjhlZlx1NjkyOFx1NjkyYVx1'@; put 'NjkxYVx1NjkyM1x1NjkyMVx1NjhjNlx1Njk3OVx1Njk3N1x1Njk1Y1x1Njk3OFx1Njk2Ylx1Njk1NFx1Njk3ZVx1Njk2ZVx1NjkzOVx1Njk3NFx1NjkzZFx1Njk1OVx1NjkzMFx1Njk2MVx1Njk1ZVx1Njk1ZFx1Njk4MVx1Njk2YVx1NjliMlx1NjlhZVx1NjlkMFx1NjliZlx1NjljMVx1Njlk'@; put 'M1x1NjliZVx1NjljZVx1NWJlOFx1NjljYVx1NjlkZFx1NjliYlx1NjljM1x1NjlhN1x1NmEyZVx1Njk5MVx1NjlhMFx1Njk5Y1x1Njk5NVx1NjliNFx1NjlkZVx1NjllOFx1NmEwMlx1NmExYlx1NjlmZlx1NmIwYVx1NjlmOVx1NjlmMlx1NjllN1x1NmEwNVx1NjliMVx1NmExZVx1NjllZFx1'@; put 'NmExNFx1NjllYlx1NmEwYVx1NmExMlx1NmFjMVx1NmEyM1x1NmExM1x1NmE0NFx1NmEwY1x1NmE3Mlx1NmEzNlx1NmE3OFx1NmE0N1x1NmE2Mlx1NmE1OVx1NmE2Nlx1NmE0OFx1NmEzOFx1NmEyMlx1NmE5MFx1NmE4ZFx1NmFhMFx1NmE4NFx1NmFhMlx1NmFhM1x1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE1OF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTU4XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE1OF1bcF1dPTQwNDQ4K3AsYls0MDQ0OCtwXT1fWzE1OF1bcF0pO2ZvcihfWzE1OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1NmE5N1x1ODYxN1x1NmFiYlx1NmFjM1x1NmFjMlx1NmFiOFx1NmFiM1x1NmFhY1x1NmFkZVx1NmFkMVx1NmFkZlx1NmFhYVx1NmFkYVx1NmFlYVx1NmFmYlx1NmIwNVx1ODYxNlx1NmFmYVx1NmIxMlx1NmIxNlx1OWIzMVx1NmIxZlx1NmIzOFx1NmIzN1x1NzZk'@; put 'Y1x1NmIzOVx1OThlZVx1NmI0N1x1NmI0M1x1NmI0OVx1NmI1MFx1NmI1OVx1NmI1NFx1NmI1Ylx1NmI1Zlx1NmI2MVx1NmI3OFx1NmI3OVx1NmI3Zlx1NmI4MFx1NmI4NFx1NmI4M1x1NmI4ZFx1NmI5OFx1NmI5NVx1NmI5ZVx1NmJhNFx1NmJhYVx1NmJhYlx1NmJhZlx1NmJiMlx1NmJiMVx1'@; put 'NmJiM1x1NmJiN1x1NmJiY1x1NmJjNlx1NmJjYlx1NmJkM1x1NmJkZlx1NmJlY1x1NmJlYlx1NmJmM1x1NmJlZlx1ZmZmZFx1OWViZVx1NmMwOFx1NmMxM1x1NmMxNFx1NmMxYlx1NmMyNFx1NmMyM1x1NmM1ZVx1NmM1NVx1NmM2Mlx1NmM2YVx1NmM4Mlx1NmM4ZFx1NmM5YVx1NmM4MVx1NmM5'@; put 'Ylx1NmM3ZVx1NmM2OFx1NmM3M1x1NmM5Mlx1NmM5MFx1NmNjNFx1NmNmMVx1NmNkM1x1NmNiZFx1NmNkN1x1NmNjNVx1NmNkZFx1NmNhZVx1NmNiMVx1NmNiZVx1NmNiYVx1NmNkYlx1NmNlZlx1NmNkOVx1NmNlYVx1NmQxZlx1ODg0ZFx1NmQzNlx1NmQyYlx1NmQzZFx1NmQzOFx1NmQxOVx1'@; put 'NmQzNVx1NmQzM1x1NmQxMlx1NmQwY1x1NmQ2M1x1NmQ5M1x1NmQ2NFx1NmQ1YVx1NmQ3OVx1NmQ1OVx1NmQ4ZVx1NmQ5NVx1NmZlNFx1NmQ4NVx1NmRmOVx1NmUxNVx1NmUwYVx1NmRiNVx1NmRjN1x1NmRlNlx1NmRiOFx1NmRjNlx1NmRlY1x1NmRkZVx1NmRjY1x1NmRlOFx1NmRkMlx1NmRj'@; put 'NVx1NmRmYVx1NmRkOVx1NmRlNFx1NmRkNVx1NmRlYVx1NmRlZVx1NmUyZFx1NmU2ZVx1NmUyZVx1NmUxOVx1NmU3Mlx1NmU1Zlx1NmUzZVx1NmUyM1x1NmU2Ylx1NmUyYlx1NmU3Nlx1NmU0ZFx1NmUxZlx1NmU0M1x1NmUzYVx1NmU0ZVx1NmUyNFx1NmVmZlx1NmUxZFx1NmUzOFx1NmU4Mlx1'@; put 'NmVhYVx1NmU5OFx1NmVjOVx1NmViN1x1NmVkM1x1NmViZFx1NmVhZlx1NmVjNFx1NmViMlx1NmVkNFx1NmVkNVx1NmU4Zlx1NmVhNVx1NmVjMlx1NmU5Zlx1NmY0MVx1NmYxMVx1NzA0Y1x1NmVlY1x1NmVmOFx1NmVmZVx1NmYzZlx1NmVmMlx1NmYzMVx1NmVlZlx1NmYzMlx1NmVjY1x1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE1OV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTU5XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE1OV1bcF1dPTQwNzA0K3AsYls0MDcwNCtwXT1fWzE1OV1bcF0pO2ZvcihfWzIyNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmYzZVx1NmYxM1x1NmVmN1x1NmY4Nlx1NmY3YVx1NmY3OFx1NmY4MVx1NmY4MFx1NmY2Zlx1NmY1Ylx1NmZmM1x1NmY2ZFx1NmY4Mlx1NmY3Y1x1NmY1OFx1NmY4ZVx1NmY5MVx1NmZjMlx1NmY2Nlx1NmZiM1x1NmZhM1x1NmZhMVx1NmZh'@; put 'NFx1NmZiOVx1NmZjNlx1NmZhYVx1NmZkZlx1NmZkNVx1NmZlY1x1NmZkNFx1NmZkOFx1NmZmMVx1NmZlZVx1NmZkYlx1NzAwOVx1NzAwYlx1NmZmYVx1NzAxMVx1NzAwMVx1NzAwZlx1NmZmZVx1NzAxYlx1NzAxYVx1NmY3NFx1NzAxZFx1NzAxOFx1NzAxZlx1NzAzMFx1NzAzZVx1NzAzMlx1'@; put 'NzA1MVx1NzA2M1x1NzA5OVx1NzA5Mlx1NzBhZlx1NzBmMVx1NzBhY1x1NzBiOFx1NzBiM1x1NzBhZVx1NzBkZlx1NzBjYlx1NzBkZFx1ZmZmZFx1NzBkOVx1NzEwOVx1NzBmZFx1NzExY1x1NzExOVx1NzE2NVx1NzE1NVx1NzE4OFx1NzE2Nlx1NzE2Mlx1NzE0Y1x1NzE1Nlx1NzE2Y1x1NzE4'@; put 'Zlx1NzFmYlx1NzE4NFx1NzE5NVx1NzFhOFx1NzFhY1x1NzFkN1x1NzFiOVx1NzFiZVx1NzFkMlx1NzFjOVx1NzFkNFx1NzFjZVx1NzFlMFx1NzFlY1x1NzFlN1x1NzFmNVx1NzFmY1x1NzFmOVx1NzFmZlx1NzIwZFx1NzIxMFx1NzIxYlx1NzIyOFx1NzIyZFx1NzIyY1x1NzIzMFx1NzIzMlx1'@; put 'NzIzYlx1NzIzY1x1NzIzZlx1NzI0MFx1NzI0Nlx1NzI0Ylx1NzI1OFx1NzI3NFx1NzI3ZVx1NzI4Mlx1NzI4MVx1NzI4N1x1NzI5Mlx1NzI5Nlx1NzJhMlx1NzJhN1x1NzJiOVx1NzJiMlx1NzJjM1x1NzJjNlx1NzJjNFx1NzJjZVx1NzJkMlx1NzJlMlx1NzJlMFx1NzJlMVx1NzJmOVx1NzJm'@; put 'N1x1NTAwZlx1NzMxN1x1NzMwYVx1NzMxY1x1NzMxNlx1NzMxZFx1NzMzNFx1NzMyZlx1NzMyOVx1NzMyNVx1NzMzZVx1NzM0ZVx1NzM0Zlx1OWVkOFx1NzM1N1x1NzM2YVx1NzM2OFx1NzM3MFx1NzM3OFx1NzM3NVx1NzM3Ylx1NzM3YVx1NzNjOFx1NzNiM1x1NzNjZVx1NzNiYlx1NzNjMFx1'@; put 'NzNlNVx1NzNlZVx1NzNkZVx1NzRhMlx1NzQwNVx1NzQ2Zlx1NzQyNVx1NzNmOFx1NzQzMlx1NzQzYVx1NzQ1NVx1NzQzZlx1NzQ1Zlx1NzQ1OVx1NzQ0MVx1NzQ1Y1x1NzQ2OVx1NzQ3MFx1NzQ2M1x1NzQ2YVx1NzQ3Nlx1NzQ3ZVx1NzQ4Ylx1NzQ5ZVx1NzRhN1x1NzRjYVx1NzRjZlx1NzRk'@; put 'NFx1NzNmMVx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIyNF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjI0XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIyNF1bcF1dPTU3MzQ0K3AsYls1NzM0NCtwXT1fWzIyNF1bcF0pO2ZvcihfWzIyNV09Ilx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzRlMFx1NzRlM1x1NzRlN1x1NzRlOVx1NzRlZVx1NzRmMlx1NzRmMFx1NzRmMVx1NzRmOFx1NzRmN1x1NzUwNFx1NzUwM1x1NzUwNVx1NzUwY1x1NzUwZVx1NzUwZFx1NzUxNVx1NzUxM1x1NzUxZVx1NzUyNlx1NzUy'@; put 'Y1x1NzUzY1x1NzU0NFx1NzU0ZFx1NzU0YVx1NzU0OVx1NzU1Ylx1NzU0Nlx1NzU1YVx1NzU2OVx1NzU2NFx1NzU2N1x1NzU2Ylx1NzU2ZFx1NzU3OFx1NzU3Nlx1NzU4Nlx1NzU4N1x1NzU3NFx1NzU4YVx1NzU4OVx1NzU4Mlx1NzU5NFx1NzU5YVx1NzU5ZFx1NzVhNVx1NzVhM1x1NzVjMlx1'@; put 'NzViM1x1NzVjM1x1NzViNVx1NzViZFx1NzViOFx1NzViY1x1NzViMVx1NzVjZFx1NzVjYVx1NzVkMlx1NzVkOVx1NzVlM1x1NzVkZVx1NzVmZVx1NzVmZlx1ZmZmZFx1NzVmY1x1NzYwMVx1NzVmMFx1NzVmYVx1NzVmMlx1NzVmM1x1NzYwYlx1NzYwZFx1NzYwOVx1NzYxZlx1NzYyN1x1NzYy'@; put 'MFx1NzYyMVx1NzYyMlx1NzYyNFx1NzYzNFx1NzYzMFx1NzYzYlx1NzY0N1x1NzY0OFx1NzY0Nlx1NzY1Y1x1NzY1OFx1NzY2MVx1NzY2Mlx1NzY2OFx1NzY2OVx1NzY2YVx1NzY2N1x1NzY2Y1x1NzY3MFx1NzY3Mlx1NzY3Nlx1NzY3OFx1NzY3Y1x1NzY4MFx1NzY4M1x1NzY4OFx1NzY4Ylx1'@; put 'NzY4ZVx1NzY5Nlx1NzY5M1x1NzY5OVx1NzY5YVx1NzZiMFx1NzZiNFx1NzZiOFx1NzZiOVx1NzZiYVx1NzZjMlx1NzZjZFx1NzZkNlx1NzZkMlx1NzZkZVx1NzZlMVx1NzZlNVx1NzZlN1x1NzZlYVx1ODYyZlx1NzZmYlx1NzcwOFx1NzcwN1x1NzcwNFx1NzcyOVx1NzcyNFx1NzcxZVx1Nzcy'@; put 'NVx1NzcyNlx1NzcxYlx1NzczN1x1NzczOFx1Nzc0N1x1Nzc1YVx1Nzc2OFx1Nzc2Ylx1Nzc1Ylx1Nzc2NVx1Nzc3Zlx1Nzc3ZVx1Nzc3OVx1Nzc4ZVx1Nzc4Ylx1Nzc5MVx1NzdhMFx1Nzc5ZVx1NzdiMFx1NzdiNlx1NzdiOVx1NzdiZlx1NzdiY1x1NzdiZFx1NzdiYlx1NzdjN1x1NzdjZFx1'@; put 'NzdkN1x1NzdkYVx1NzdkY1x1NzdlM1x1NzdlZVx1NzdmY1x1NzgwY1x1NzgxMlx1NzkyNlx1NzgyMFx1NzkyYVx1Nzg0NVx1Nzg4ZVx1Nzg3NFx1Nzg4Nlx1Nzg3Y1x1Nzg5YVx1Nzg4Y1x1NzhhM1x1NzhiNVx1NzhhYVx1NzhhZlx1NzhkMVx1NzhjNlx1NzhjYlx1NzhkNFx1NzhiZVx1Nzhi'@; put 'Y1x1NzhjNVx1NzhjYVx1NzhlY1x1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIyNV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjI1XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIyNV1bcF1dPTU3NjAwK3AsYls1NzYwMCtwXT1fWzIyNV1bcF0pO2ZvcihfWzIyNl09Ilx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzhlN1x1NzhkYVx1NzhmZFx1NzhmNFx1NzkwN1x1NzkxMlx1NzkxMVx1NzkxOVx1NzkyY1x1NzkyYlx1Nzk0MFx1Nzk2MFx1Nzk1N1x1Nzk1Zlx1Nzk1YVx1Nzk1NVx1Nzk1M1x1Nzk3YVx1Nzk3'@; put 'Zlx1Nzk4YVx1Nzk5ZFx1NzlhN1x1OWY0Ylx1NzlhYVx1NzlhZVx1NzliM1x1NzliOVx1NzliYVx1NzljOVx1NzlkNVx1NzllN1x1NzllY1x1NzllMVx1NzllM1x1N2EwOFx1N2EwZFx1N2ExOFx1N2ExOVx1N2EyMFx1N2ExZlx1Nzk4MFx1N2EzMVx1N2EzYlx1N2EzZVx1N2EzN1x1N2E0M1x1'@; put 'N2E1N1x1N2E0OVx1N2E2MVx1N2E2Mlx1N2E2OVx1OWY5ZFx1N2E3MFx1N2E3OVx1N2E3ZFx1N2E4OFx1N2E5N1x1N2E5NVx1N2E5OFx1N2E5Nlx1N2FhOVx1N2FjOFx1N2FiMFx1ZmZmZFx1N2FiNlx1N2FjNVx1N2FjNFx1N2FiZlx1OTA4M1x1N2FjN1x1N2FjYVx1N2FjZFx1N2FjZlx1N2Fk'@; put 'NVx1N2FkM1x1N2FkOVx1N2FkYVx1N2FkZFx1N2FlMVx1N2FlMlx1N2FlNlx1N2FlZFx1N2FmMFx1N2IwMlx1N2IwZlx1N2IwYVx1N2IwNlx1N2IzM1x1N2IxOFx1N2IxOVx1N2IxZVx1N2IzNVx1N2IyOFx1N2IzNlx1N2I1MFx1N2I3YVx1N2IwNFx1N2I0ZFx1N2IwYlx1N2I0Y1x1N2I0NVx1'@; put 'N2I3NVx1N2I2NVx1N2I3NFx1N2I2N1x1N2I3MFx1N2I3MVx1N2I2Y1x1N2I2ZVx1N2I5ZFx1N2I5OFx1N2I5Zlx1N2I4ZFx1N2I5Y1x1N2I5YVx1N2I4Ylx1N2I5Mlx1N2I4Zlx1N2I1ZFx1N2I5OVx1N2JjYlx1N2JjMVx1N2JjY1x1N2JjZlx1N2JiNFx1N2JjNlx1N2JkZFx1N2JlOVx1N2Mx'@; put 'MVx1N2MxNFx1N2JlNlx1N2JlNVx1N2M2MFx1N2MwMFx1N2MwN1x1N2MxM1x1N2JmM1x1N2JmN1x1N2MxN1x1N2MwZFx1N2JmNlx1N2MyM1x1N2MyN1x1N2MyYVx1N2MxZlx1N2MzN1x1N2MyYlx1N2MzZFx1N2M0Y1x1N2M0M1x1N2M1NFx1N2M0Zlx1N2M0MFx1N2M1MFx1N2M1OFx1N2M1Zlx1'@; put 'N2M2NFx1N2M1Nlx1N2M2NVx1N2M2Y1x1N2M3NVx1N2M4M1x1N2M5MFx1N2NhNFx1N2NhZFx1N2NhMlx1N2NhYlx1N2NhMVx1N2NhOFx1N2NiM1x1N2NiMlx1N2NiMVx1N2NhZVx1N2NiOVx1N2NiZFx1N2NjMFx1N2NjNVx1N2NjMlx1N2NkOFx1N2NkMlx1N2NkY1x1N2NlMlx1OWIzYlx1N2Nl'@; put 'Zlx1N2NmMlx1N2NmNFx1N2NmNlx1N2NmYVx1N2QwNlx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIyNl0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjI2XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIyNl1bcF1dPTU3ODU2K3AsYls1Nzg1NitwXT1fWzIyNl1bcF0pO2Zv'@; put 'cihfWzIyN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2QwMlx1N2QxY1x1N2QxNVx1N2QwYVx1N2Q0NVx1N2Q0Ylx1N2QyZVx1N2QzMlx1N2QzZlx1N2QzNVx1N2Q0Nlx1N2Q3M1x1N2Q1Nlx1N2Q0ZVx1N2Q3Mlx1N2Q2OFx1N2Q2'@; put 'ZVx1N2Q0Zlx1N2Q2M1x1N2Q5M1x1N2Q4OVx1N2Q1Ylx1N2Q4Zlx1N2Q3ZFx1N2Q5Ylx1N2RiYVx1N2RhZVx1N2RhM1x1N2RiNVx1N2RjN1x1N2RiZFx1N2RhYlx1N2UzZFx1N2RhMlx1N2RhZlx1N2RkY1x1N2RiOFx1N2Q5Zlx1N2RiMFx1N2RkOFx1N2RkZFx1N2RlNFx1N2RkZVx1N2RmYlx1'@; put 'N2RmMlx1N2RlMVx1N2UwNVx1N2UwYVx1N2UyM1x1N2UyMVx1N2UxMlx1N2UzMVx1N2UxZlx1N2UwOVx1N2UwYlx1N2UyMlx1N2U0Nlx1N2U2Nlx1N2UzYlx1N2UzNVx1N2UzOVx1N2U0M1x1N2UzN1x1ZmZmZFx1N2UzMlx1N2UzYVx1N2U2N1x1N2U1ZFx1N2U1Nlx1N2U1ZVx1N2U1OVx1N2U1'@; put 'YVx1N2U3OVx1N2U2YVx1N2U2OVx1N2U3Y1x1N2U3Ylx1N2U4M1x1N2RkNVx1N2U3ZFx1OGZhZVx1N2U3Zlx1N2U4OFx1N2U4OVx1N2U4Y1x1N2U5Mlx1N2U5MFx1N2U5M1x1N2U5NFx1N2U5Nlx1N2U4ZVx1N2U5Ylx1N2U5Y1x1N2YzOFx1N2YzYVx1N2Y0NVx1N2Y0Y1x1N2Y0ZFx1N2Y0ZVx1'@; put 'N2Y1MFx1N2Y1MVx1N2Y1NVx1N2Y1NFx1N2Y1OFx1N2Y1Zlx1N2Y2MFx1N2Y2OFx1N2Y2OVx1N2Y2N1x1N2Y3OFx1N2Y4Mlx1N2Y4Nlx1N2Y4M1x1N2Y4OFx1N2Y4N1x1N2Y4Y1x1N2Y5NFx1N2Y5ZVx1N2Y5ZFx1N2Y5YVx1N2ZhM1x1N2ZhZlx1N2ZiMlx1N2ZiOVx1N2ZhZVx1N2ZiNlx1N2Zi'@; put 'OFx1OGI3MVx1N2ZjNVx1N2ZjNlx1N2ZjYVx1N2ZkNVx1N2ZkNFx1N2ZlMVx1N2ZlNlx1N2ZlOVx1N2ZmM1x1N2ZmOVx1OThkY1x1ODAwNlx1ODAwNFx1ODAwYlx1ODAxMlx1ODAxOFx1ODAxOVx1ODAxY1x1ODAyMVx1ODAyOFx1ODAzZlx1ODAzYlx1ODA0YVx1ODA0Nlx1ODA1Mlx1ODA1OFx1'@; put 'ODA1YVx1ODA1Zlx1ODA2Mlx1ODA2OFx1ODA3M1x1ODA3Mlx1ODA3MFx1ODA3Nlx1ODA3OVx1ODA3ZFx1ODA3Zlx1ODA4NFx1ODA4Nlx1ODA4NVx1ODA5Ylx1ODA5M1x1ODA5YVx1ODBhZFx1NTE5MFx1ODBhY1x1ODBkYlx1ODBlNVx1ODBkOVx1ODBkZFx1ODBjNFx1ODBkYVx1ODBkNlx1ODEw'@; put 'OVx1ODBlZlx1ODBmMVx1ODExYlx1ODEyOVx1ODEyM1x1ODEyZlx1ODE0Ylx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIyN10ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjI3XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIyN11bcF1dPTU4MTEyK3AsYls1ODExMitwXT1f'@; put 'WzIyN11bcF0pO2ZvcihfWzIyOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTY4Ylx1ODE0Nlx1ODEzZVx1ODE1M1x1ODE1MVx1ODBmY1x1ODE3MVx1ODE2ZVx1ODE2NVx1ODE2Nlx1ODE3NFx1ODE4M1x1ODE4OFx1ODE4YVx1ODE4'@; put 'MFx1ODE4Mlx1ODFhMFx1ODE5NVx1ODFhNFx1ODFhM1x1ODE1Zlx1ODE5M1x1ODFhOVx1ODFiMFx1ODFiNVx1ODFiZVx1ODFiOFx1ODFiZFx1ODFjMFx1ODFjMlx1ODFiYVx1ODFjOVx1ODFjZFx1ODFkMVx1ODFkOVx1ODFkOFx1ODFjOFx1ODFkYVx1ODFkZlx1ODFlMFx1ODFlN1x1ODFmYVx1'@; put 'ODFmYlx1ODFmZVx1ODIwMVx1ODIwMlx1ODIwNVx1ODIwN1x1ODIwYVx1ODIwZFx1ODIxMFx1ODIxNlx1ODIyOVx1ODIyYlx1ODIzOFx1ODIzM1x1ODI0MFx1ODI1OVx1ODI1OFx1ODI1ZFx1ODI1YVx1ODI1Zlx1ODI2NFx1ZmZmZFx1ODI2Mlx1ODI2OFx1ODI2YVx1ODI2Ylx1ODIyZVx1ODI3'@; put 'MVx1ODI3N1x1ODI3OFx1ODI3ZVx1ODI4ZFx1ODI5Mlx1ODJhYlx1ODI5Zlx1ODJiYlx1ODJhY1x1ODJlMVx1ODJlM1x1ODJkZlx1ODJkMlx1ODJmNFx1ODJmM1x1ODJmYVx1ODM5M1x1ODMwM1x1ODJmYlx1ODJmOVx1ODJkZVx1ODMwNlx1ODJkY1x1ODMwOVx1ODJkOVx1ODMzNVx1ODMzNFx1'@; put 'ODMxNlx1ODMzMlx1ODMzMVx1ODM0MFx1ODMzOVx1ODM1MFx1ODM0NVx1ODMyZlx1ODMyYlx1ODMxN1x1ODMxOFx1ODM4NVx1ODM5YVx1ODNhYVx1ODM5Zlx1ODNhMlx1ODM5Nlx1ODMyM1x1ODM4ZVx1ODM4N1x1ODM4YVx1ODM3Y1x1ODNiNVx1ODM3M1x1ODM3NVx1ODNhMFx1ODM4OVx1ODNh'@; put 'OFx1ODNmNFx1ODQxM1x1ODNlYlx1ODNjZVx1ODNmZFx1ODQwM1x1ODNkOFx1ODQwYlx1ODNjMVx1ODNmN1x1ODQwN1x1ODNlMFx1ODNmMlx1ODQwZFx1ODQyMlx1ODQyMFx1ODNiZFx1ODQzOFx1ODUwNlx1ODNmYlx1ODQ2ZFx1ODQyYVx1ODQzY1x1ODU1YVx1ODQ4NFx1ODQ3N1x1ODQ2Ylx1'@; put 'ODRhZFx1ODQ2ZVx1ODQ4Mlx1ODQ2OVx1ODQ0Nlx1ODQyY1x1ODQ2Zlx1ODQ3OVx1ODQzNVx1ODRjYVx1ODQ2Mlx1ODRiOVx1ODRiZlx1ODQ5Zlx1ODRkOVx1ODRjZFx1ODRiYlx1ODRkYVx1ODRkMFx1ODRjMVx1ODRjNlx1ODRkNlx1ODRhMVx1ODUyMVx1ODRmZlx1ODRmNFx1ODUxN1x1ODUx'@; put 'OFx1ODUyY1x1ODUxZlx1ODUxNVx1ODUxNFx1ODRmY1x1ODU0MFx1ODU2M1x1ODU1OFx1ODU0OFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIyOF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjI4XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIyOF1bcF1dPTU4MzY4K3As'@; put 'Yls1ODM2OCtwXT1fWzIyOF1bcF0pO2ZvcihfWzIyOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODU0MVx1ODYwMlx1ODU0Ylx1ODU1NVx1ODU4MFx1ODVhNFx1ODU4OFx1ODU5MVx1ODU4YVx1ODVhOFx1ODU2ZFx1ODU5NFx1ODU5'@; put 'Ylx1ODVlYVx1ODU4N1x1ODU5Y1x1ODU3N1x1ODU3ZVx1ODU5MFx1ODVjOVx1ODViYVx1ODVjZlx1ODViOVx1ODVkMFx1ODVkNVx1ODVkZFx1ODVlNVx1ODVkY1x1ODVmOVx1ODYwYVx1ODYxM1x1ODYwYlx1ODVmZVx1ODVmYVx1ODYwNlx1ODYyMlx1ODYxYVx1ODYzMFx1ODYzZlx1ODY0ZFx1'@; put 'NGU1NVx1ODY1NFx1ODY1Zlx1ODY2N1x1ODY3MVx1ODY5M1x1ODZhM1x1ODZhOVx1ODZhYVx1ODY4Ylx1ODY4Y1x1ODZiNlx1ODZhZlx1ODZjNFx1ODZjNlx1ODZiMFx1ODZjOVx1ODgyM1x1ODZhYlx1ODZkNFx1ODZkZVx1ODZlOVx1ODZlY1x1ZmZmZFx1ODZkZlx1ODZkYlx1ODZlZlx1ODcx'@; put 'Mlx1ODcwNlx1ODcwOFx1ODcwMFx1ODcwM1x1ODZmYlx1ODcxMVx1ODcwOVx1ODcwZFx1ODZmOVx1ODcwYVx1ODczNFx1ODczZlx1ODczN1x1ODczYlx1ODcyNVx1ODcyOVx1ODcxYVx1ODc2MFx1ODc1Zlx1ODc3OFx1ODc0Y1x1ODc0ZVx1ODc3NFx1ODc1N1x1ODc2OFx1ODc2ZVx1ODc1OVx1'@; put 'ODc1M1x1ODc2M1x1ODc2YVx1ODgwNVx1ODdhMlx1ODc5Zlx1ODc4Mlx1ODdhZlx1ODdjYlx1ODdiZFx1ODdjMFx1ODdkMFx1OTZkNlx1ODdhYlx1ODdjNFx1ODdiM1x1ODdjN1x1ODdjNlx1ODdiYlx1ODdlZlx1ODdmMlx1ODdlMFx1ODgwZlx1ODgwZFx1ODdmZVx1ODdmNlx1ODdmN1x1ODgw'@; put 'ZVx1ODdkMlx1ODgxMVx1ODgxNlx1ODgxNVx1ODgyMlx1ODgyMVx1ODgzMVx1ODgzNlx1ODgzOVx1ODgyN1x1ODgzYlx1ODg0NFx1ODg0Mlx1ODg1Mlx1ODg1OVx1ODg1ZVx1ODg2Mlx1ODg2Ylx1ODg4MVx1ODg3ZVx1ODg5ZVx1ODg3NVx1ODg3ZFx1ODhiNVx1ODg3Mlx1ODg4Mlx1ODg5N1x1'@; put 'ODg5Mlx1ODhhZVx1ODg5OVx1ODhhMlx1ODg4ZFx1ODhhNFx1ODhiMFx1ODhiZlx1ODhiMVx1ODhjM1x1ODhjNFx1ODhkNFx1ODhkOFx1ODhkOVx1ODhkZFx1ODhmOVx1ODkwMlx1ODhmY1x1ODhmNFx1ODhlOFx1ODhmMlx1ODkwNFx1ODkwY1x1ODkwYVx1ODkxM1x1ODk0M1x1ODkxZVx1ODky'@; put 'NVx1ODkyYVx1ODkyYlx1ODk0MVx1ODk0NFx1ODkzYlx1ODkzNlx1ODkzOFx1ODk0Y1x1ODkxZFx1ODk2MFx1ODk1ZVx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIyOV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjI5XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIyOV1b'@; put 'cF1dPTU4NjI0K3AsYls1ODYyNCtwXT1fWzIyOV1bcF0pO2ZvcihfWzIzMF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODk2Nlx1ODk2NFx1ODk2ZFx1ODk2YVx1ODk2Zlx1ODk3NFx1ODk3N1x1ODk3ZVx1ODk4M1x1ODk4OFx1ODk4'@; put 'YVx1ODk5M1x1ODk5OFx1ODlhMVx1ODlhOVx1ODlhNlx1ODlhY1x1ODlhZlx1ODliMlx1ODliYVx1ODliZFx1ODliZlx1ODljMFx1ODlkYVx1ODlkY1x1ODlkZFx1ODllN1x1ODlmNFx1ODlmOFx1OGEwM1x1OGExNlx1OGExMFx1OGEwY1x1OGExYlx1OGExZFx1OGEyNVx1OGEzNlx1OGE0MVx1'@; put 'OGE1Ylx1OGE1Mlx1OGE0Nlx1OGE0OFx1OGE3Y1x1OGE2ZFx1OGE2Y1x1OGE2Mlx1OGE4NVx1OGE4Mlx1OGE4NFx1OGFhOFx1OGFhMVx1OGE5MVx1OGFhNVx1OGFhNlx1OGE5YVx1OGFhM1x1OGFjNFx1OGFjZFx1OGFjMlx1OGFkYVx1OGFlYlx1OGFmM1x1OGFlN1x1ZmZmZFx1OGFlNFx1OGFm'@; put 'MVx1OGIxNFx1OGFlMFx1OGFlMlx1OGFmN1x1OGFkZVx1OGFkYlx1OGIwY1x1OGIwN1x1OGIxYVx1OGFlMVx1OGIxNlx1OGIxMFx1OGIxN1x1OGIyMFx1OGIzM1x1OTdhYlx1OGIyNlx1OGIyYlx1OGIzZVx1OGIyOFx1OGI0MVx1OGI0Y1x1OGI0Zlx1OGI0ZVx1OGI0OVx1OGI1Nlx1OGI1Ylx1'@; put 'OGI1YVx1OGI2Ylx1OGI1Zlx1OGI2Y1x1OGI2Zlx1OGI3NFx1OGI3ZFx1OGI4MFx1OGI4Y1x1OGI4ZVx1OGI5Mlx1OGI5M1x1OGI5Nlx1OGI5OVx1OGI5YVx1OGMzYVx1OGM0MVx1OGMzZlx1OGM0OFx1OGM0Y1x1OGM0ZVx1OGM1MFx1OGM1NVx1OGM2Mlx1OGM2Y1x1OGM3OFx1OGM3YVx1OGM4'@; put 'Mlx1OGM4OVx1OGM4NVx1OGM4YVx1OGM4ZFx1OGM4ZVx1OGM5NFx1OGM3Y1x1OGM5OFx1NjIxZFx1OGNhZFx1OGNhYVx1OGNiZFx1OGNiMlx1OGNiM1x1OGNhZVx1OGNiNlx1OGNjOFx1OGNjMVx1OGNlNFx1OGNlM1x1OGNkYVx1OGNmZFx1OGNmYVx1OGNmYlx1OGQwNFx1OGQwNVx1OGQwYVx1'@; put 'OGQwN1x1OGQwZlx1OGQwZFx1OGQxMFx1OWY0ZVx1OGQxM1x1OGNjZFx1OGQxNFx1OGQxNlx1OGQ2N1x1OGQ2ZFx1OGQ3MVx1OGQ3M1x1OGQ4MVx1OGQ5OVx1OGRjMlx1OGRiZVx1OGRiYVx1OGRjZlx1OGRkYVx1OGRkNlx1OGRjY1x1OGRkYlx1OGRjYlx1OGRlYVx1OGRlYlx1OGRkZlx1OGRl'@; put 'M1x1OGRmY1x1OGUwOFx1OGUwOVx1OGRmZlx1OGUxZFx1OGUxZVx1OGUxMFx1OGUxZlx1OGU0Mlx1OGUzNVx1OGUzMFx1OGUzNFx1OGU0YVx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIzMF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjMwXVtwXS5jaGFyQ29kZUF0KDAp'@; put 'JiYoRFtfWzIzMF1bcF1dPTU4ODgwK3AsYls1ODg4MCtwXT1fWzIzMF1bcF0pO2ZvcihfWzIzMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGU0N1x1OGU0OVx1OGU0Y1x1OGU1MFx1OGU0OFx1OGU1OVx1OGU2NFx1OGU2MFx1OGUy'@; put 'YVx1OGU2M1x1OGU1NVx1OGU3Nlx1OGU3Mlx1OGU3Y1x1OGU4MVx1OGU4N1x1OGU4NVx1OGU4NFx1OGU4Ylx1OGU4YVx1OGU5M1x1OGU5MVx1OGU5NFx1OGU5OVx1OGVhYVx1OGVhMVx1OGVhY1x1OGViMFx1OGVjNlx1OGViMVx1OGViZVx1OGVjNVx1OGVjOFx1OGVjYlx1OGVkYlx1OGVlM1x1'@; put 'OGVmY1x1OGVmYlx1OGVlYlx1OGVmZVx1OGYwYVx1OGYwNVx1OGYxNVx1OGYxMlx1OGYxOVx1OGYxM1x1OGYxY1x1OGYxZlx1OGYxYlx1OGYwY1x1OGYyNlx1OGYzM1x1OGYzYlx1OGYzOVx1OGY0NVx1OGY0Mlx1OGYzZVx1OGY0Y1x1OGY0OVx1OGY0Nlx1OGY0ZVx1OGY1N1x1OGY1Y1x1ZmZm'@; put 'ZFx1OGY2Mlx1OGY2M1x1OGY2NFx1OGY5Y1x1OGY5Zlx1OGZhM1x1OGZhZFx1OGZhZlx1OGZiN1x1OGZkYVx1OGZlNVx1OGZlMlx1OGZlYVx1OGZlZlx1OTA4N1x1OGZmNFx1OTAwNVx1OGZmOVx1OGZmYVx1OTAxMVx1OTAxNVx1OTAyMVx1OTAwZFx1OTAxZVx1OTAxNlx1OTAwYlx1OTAyN1x1'@; put 'OTAzNlx1OTAzNVx1OTAzOVx1OGZmOFx1OTA0Zlx1OTA1MFx1OTA1MVx1OTA1Mlx1OTAwZVx1OTA0OVx1OTAzZVx1OTA1Nlx1OTA1OFx1OTA1ZVx1OTA2OFx1OTA2Zlx1OTA3Nlx1OTZhOFx1OTA3Mlx1OTA4Mlx1OTA3ZFx1OTA4MVx1OTA4MFx1OTA4YVx1OTA4OVx1OTA4Zlx1OTBhOFx1OTBh'@; put 'Zlx1OTBiMVx1OTBiNVx1OTBlMlx1OTBlNFx1NjI0OFx1OTBkYlx1OTEwMlx1OTExMlx1OTExOVx1OTEzMlx1OTEzMFx1OTE0YVx1OTE1Nlx1OTE1OFx1OTE2M1x1OTE2NVx1OTE2OVx1OTE3M1x1OTE3Mlx1OTE4Ylx1OTE4OVx1OTE4Mlx1OTFhMlx1OTFhYlx1OTFhZlx1OTFhYVx1OTFiNVx1'@; put 'OTFiNFx1OTFiYVx1OTFjMFx1OTFjMVx1OTFjOVx1OTFjYlx1OTFkMFx1OTFkNlx1OTFkZlx1OTFlMVx1OTFkYlx1OTFmY1x1OTFmNVx1OTFmNlx1OTIxZVx1OTFmZlx1OTIxNFx1OTIyY1x1OTIxNVx1OTIxMVx1OTI1ZVx1OTI1N1x1OTI0NVx1OTI0OVx1OTI2NFx1OTI0OFx1OTI5NVx1OTIz'@; put 'Zlx1OTI0Ylx1OTI1MFx1OTI5Y1x1OTI5Nlx1OTI5M1x1OTI5Ylx1OTI1YVx1OTJjZlx1OTJiOVx1OTJiN1x1OTJlOVx1OTMwZlx1OTJmYVx1OTM0NFx1OTMyZVx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIzMV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjMxXVtwXS5j'@; put 'aGFyQ29kZUF0KDApJiYoRFtfWzIzMV1bcF1dPTU5MTM2K3AsYls1OTEzNitwXT1fWzIzMV1bcF0pO2ZvcihfWzIzMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTMxOVx1OTMyMlx1OTMxYVx1OTMyM1x1OTMzYVx1OTMzNVx1OTMz'@; put 'Ylx1OTM1Y1x1OTM2MFx1OTM3Y1x1OTM2ZVx1OTM1Nlx1OTNiMFx1OTNhY1x1OTNhZFx1OTM5NFx1OTNiOVx1OTNkNlx1OTNkN1x1OTNlOFx1OTNlNVx1OTNkOFx1OTNjM1x1OTNkZFx1OTNkMFx1OTNjOFx1OTNlNFx1OTQxYVx1OTQxNFx1OTQxM1x1OTQwM1x1OTQwN1x1OTQxMFx1OTQzNlx1'@; put 'OTQyYlx1OTQzNVx1OTQyMVx1OTQzYVx1OTQ0MVx1OTQ1Mlx1OTQ0NFx1OTQ1Ylx1OTQ2MFx1OTQ2Mlx1OTQ1ZVx1OTQ2YVx1OTIyOVx1OTQ3MFx1OTQ3NVx1OTQ3N1x1OTQ3ZFx1OTQ1YVx1OTQ3Y1x1OTQ3ZVx1OTQ4MVx1OTQ3Zlx1OTU4Mlx1OTU4N1x1OTU4YVx1OTU5NFx1OTU5Nlx1OTU5'@; put 'OFx1OTU5OVx1ZmZmZFx1OTVhMFx1OTVhOFx1OTVhN1x1OTVhZFx1OTViY1x1OTViYlx1OTViOVx1OTViZVx1OTVjYVx1NmZmNlx1OTVjM1x1OTVjZFx1OTVjY1x1OTVkNVx1OTVkNFx1OTVkNlx1OTVkY1x1OTVlMVx1OTVlNVx1OTVlMlx1OTYyMVx1OTYyOFx1OTYyZVx1OTYyZlx1OTY0Mlx1'@; put 'OTY0Y1x1OTY0Zlx1OTY0Ylx1OTY3N1x1OTY1Y1x1OTY1ZVx1OTY1ZFx1OTY1Zlx1OTY2Nlx1OTY3Mlx1OTY2Y1x1OTY4ZFx1OTY5OFx1OTY5NVx1OTY5N1x1OTZhYVx1OTZhN1x1OTZiMVx1OTZiMlx1OTZiMFx1OTZiNFx1OTZiNlx1OTZiOFx1OTZiOVx1OTZjZVx1OTZjYlx1OTZjOVx1OTZj'@; put 'ZFx1ODk0ZFx1OTZkY1x1OTcwZFx1OTZkNVx1OTZmOVx1OTcwNFx1OTcwNlx1OTcwOFx1OTcxM1x1OTcwZVx1OTcxMVx1OTcwZlx1OTcxNlx1OTcxOVx1OTcyNFx1OTcyYVx1OTczMFx1OTczOVx1OTczZFx1OTczZVx1OTc0NFx1OTc0Nlx1OTc0OFx1OTc0Mlx1OTc0OVx1OTc1Y1x1OTc2MFx1'@; put 'OTc2NFx1OTc2Nlx1OTc2OFx1NTJkMlx1OTc2Ylx1OTc3MVx1OTc3OVx1OTc4NVx1OTc3Y1x1OTc4MVx1OTc3YVx1OTc4Nlx1OTc4Ylx1OTc4Zlx1OTc5MFx1OTc5Y1x1OTdhOFx1OTdhNlx1OTdhM1x1OTdiM1x1OTdiNFx1OTdjM1x1OTdjNlx1OTdjOFx1OTdjYlx1OTdkY1x1OTdlZFx1OWY0'@; put 'Zlx1OTdmMlx1N2FkZlx1OTdmNlx1OTdmNVx1OTgwZlx1OTgwY1x1OTgzOFx1OTgyNFx1OTgyMVx1OTgzN1x1OTgzZFx1OTg0Nlx1OTg0Zlx1OTg0Ylx1OTg2Ylx1OTg2Zlx1OTg3MFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIzMl0ubGVuZ3RoOysrcCk2NTUzMyE9'@; put 'PV9bMjMyXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIzMl1bcF1dPTU5MzkyK3AsYls1OTM5MitwXT1fWzIzMl1bcF0pO2ZvcihfWzIzM109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTg3MVx1OTg3NFx1OTg3M1x1OThhYVx1OThh'@; put 'Zlx1OThiMVx1OThiNlx1OThjNFx1OThjM1x1OThjNlx1OThlOVx1OThlYlx1OTkwM1x1OTkwOVx1OTkxMlx1OTkxNFx1OTkxOFx1OTkyMVx1OTkxZFx1OTkxZVx1OTkyNFx1OTkyMFx1OTkyY1x1OTkyZVx1OTkzZFx1OTkzZVx1OTk0Mlx1OTk0OVx1OTk0NVx1OTk1MFx1OTk0Ylx1OTk1MVx1'@; put 'OTk1Mlx1OTk0Y1x1OTk1NVx1OTk5N1x1OTk5OFx1OTlhNVx1OTlhZFx1OTlhZVx1OTliY1x1OTlkZlx1OTlkYlx1OTlkZFx1OTlkOFx1OTlkMVx1OTllZFx1OTllZVx1OTlmMVx1OTlmMlx1OTlmYlx1OTlmOFx1OWEwMVx1OWEwZlx1OWEwNVx1OTllMlx1OWExOVx1OWEyYlx1OWEzN1x1OWE0'@; put 'NVx1OWE0Mlx1OWE0MFx1OWE0M1x1ZmZmZFx1OWEzZVx1OWE1NVx1OWE0ZFx1OWE1Ylx1OWE1N1x1OWE1Zlx1OWE2Mlx1OWE2NVx1OWE2NFx1OWE2OVx1OWE2Ylx1OWE2YVx1OWFhZFx1OWFiMFx1OWFiY1x1OWFjMFx1OWFjZlx1OWFkMVx1OWFkM1x1OWFkNFx1OWFkZVx1OWFkZlx1OWFlMlx1'@; put 'OWFlM1x1OWFlNlx1OWFlZlx1OWFlYlx1OWFlZVx1OWFmNFx1OWFmMVx1OWFmN1x1OWFmYlx1OWIwNlx1OWIxOFx1OWIxYVx1OWIxZlx1OWIyMlx1OWIyM1x1OWIyNVx1OWIyN1x1OWIyOFx1OWIyOVx1OWIyYVx1OWIyZVx1OWIyZlx1OWIzMlx1OWI0NFx1OWI0M1x1OWI0Zlx1OWI0ZFx1OWI0'@; put 'ZVx1OWI1MVx1OWI1OFx1OWI3NFx1OWI5M1x1OWI4M1x1OWI5MVx1OWI5Nlx1OWI5N1x1OWI5Zlx1OWJhMFx1OWJhOFx1OWJiNFx1OWJjMFx1OWJjYVx1OWJiOVx1OWJjNlx1OWJjZlx1OWJkMVx1OWJkMlx1OWJlM1x1OWJlMlx1OWJlNFx1OWJkNFx1OWJlMVx1OWMzYVx1OWJmMlx1OWJmMVx1'@; put 'OWJmMFx1OWMxNVx1OWMxNFx1OWMwOVx1OWMxM1x1OWMwY1x1OWMwNlx1OWMwOFx1OWMxMlx1OWMwYVx1OWMwNFx1OWMyZVx1OWMxYlx1OWMyNVx1OWMyNFx1OWMyMVx1OWMzMFx1OWM0N1x1OWMzMlx1OWM0Nlx1OWMzZVx1OWM1YVx1OWM2MFx1OWM2N1x1OWM3Nlx1OWM3OFx1OWNlN1x1OWNl'@; put 'Y1x1OWNmMFx1OWQwOVx1OWQwOFx1OWNlYlx1OWQwM1x1OWQwNlx1OWQyYVx1OWQyNlx1OWRhZlx1OWQyM1x1OWQxZlx1OWQ0NFx1OWQxNVx1OWQxMlx1OWQ0MVx1OWQzZlx1OWQzZVx1OWQ0Nlx1OWQ0OFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIzM10ubGVuZ3Ro'@; put 'OysrcCk2NTUzMyE9PV9bMjMzXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIzM11bcF1dPTU5NjQ4K3AsYls1OTY0OCtwXT1fWzIzM11bcF0pO2ZvcihfWzIzNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWQ1ZFx1OWQ1ZVx1OWQ2'@; put 'NFx1OWQ1MVx1OWQ1MFx1OWQ1OVx1OWQ3Mlx1OWQ4OVx1OWQ4N1x1OWRhYlx1OWQ2Zlx1OWQ3YVx1OWQ5YVx1OWRhNFx1OWRhOVx1OWRiMlx1OWRjNFx1OWRjMVx1OWRiYlx1OWRiOFx1OWRiYVx1OWRjNlx1OWRjZlx1OWRjMlx1OWRkOVx1OWRkM1x1OWRmOFx1OWRlNlx1OWRlZFx1OWRlZlx1'@; put 'OWRmZFx1OWUxYVx1OWUxYlx1OWUxZVx1OWU3NVx1OWU3OVx1OWU3ZFx1OWU4MVx1OWU4OFx1OWU4Ylx1OWU4Y1x1OWU5Mlx1OWU5NVx1OWU5MVx1OWU5ZFx1OWVhNVx1OWVhOVx1OWViOFx1OWVhYVx1OWVhZFx1OTc2MVx1OWVjY1x1OWVjZVx1OWVjZlx1OWVkMFx1OWVkNFx1OWVkY1x1OWVk'@; put 'ZVx1OWVkZFx1OWVlMFx1OWVlNVx1OWVlOFx1OWVlZlx1ZmZmZFx1OWVmNFx1OWVmNlx1OWVmN1x1OWVmOVx1OWVmYlx1OWVmY1x1OWVmZFx1OWYwN1x1OWYwOFx1NzZiN1x1OWYxNVx1OWYyMVx1OWYyY1x1OWYzZVx1OWY0YVx1OWY1Mlx1OWY1NFx1OWY2M1x1OWY1Zlx1OWY2MFx1OWY2MVx1'@; put 'OWY2Nlx1OWY2N1x1OWY2Y1x1OWY2YVx1OWY3N1x1OWY3Mlx1OWY3Nlx1OWY5NVx1OWY5Y1x1OWZhMFx1NTgyZlx1NjljN1x1OTA1OVx1NzQ2NFx1NTFkY1x1NzE5OVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1f'@; put 'WzIzNF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjM0XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIzNF1bcF1dPTU5OTA0K3AsYls1OTkwNCtwXT1fWzIzNF1bcF0pO2ZvcihfWzIzN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2U4'@; put 'YVx1ODkxY1x1OTM0OFx1OTI4OFx1ODRkY1x1NGZjOVx1NzBiYlx1NjYzMVx1NjhjOFx1OTJmOVx1NjZmYlx1NWY0NVx1NGUyOFx1NGVlMVx1NGVmY1x1NGYwMFx1NGYwM1x1NGYzOVx1NGY1Nlx1NGY5Mlx1NGY4YVx1NGY5YVx1NGY5NFx1NGZjZFx1NTA0MFx1NTAyMlx1NGZmZlx1NTAxZVx1'@; put 'NTA0Nlx1NTA3MFx1NTA0Mlx1NTA5NFx1NTBmNFx1NTBkOFx1NTE0YVx1NTE2NFx1NTE5ZFx1NTFiZVx1NTFlY1x1NTIxNVx1NTI5Y1x1NTJhNlx1NTJjMFx1NTJkYlx1NTMwMFx1NTMwN1x1NTMyNFx1NTM3Mlx1NTM5M1x1NTNiMlx1NTNkZFx1ZmEwZVx1NTQ5Y1x1NTQ4YVx1NTRhOVx1NTRm'@; put 'Zlx1NTU4Nlx1NTc1OVx1NTc2NVx1NTdhY1x1NTdjOFx1NTdjN1x1ZmEwZlx1ZmZmZFx1ZmExMFx1NTg5ZVx1NThiMlx1NTkwYlx1NTk1M1x1NTk1Ylx1NTk1ZFx1NTk2M1x1NTlhNFx1NTliYVx1NWI1Nlx1NWJjMFx1NzUyZlx1NWJkOFx1NWJlY1x1NWMxZVx1NWNhNlx1NWNiYVx1NWNmNVx1'@; put 'NWQyN1x1NWQ1M1x1ZmExMVx1NWQ0Mlx1NWQ2ZFx1NWRiOFx1NWRiOVx1NWRkMFx1NWYyMVx1NWYzNFx1NWY2N1x1NWZiN1x1NWZkZVx1NjA1ZFx1NjA4NVx1NjA4YVx1NjBkZVx1NjBkNVx1NjEyMFx1NjBmMlx1NjExMVx1NjEzN1x1NjEzMFx1NjE5OFx1NjIxM1x1NjJhNlx1NjNmNVx1NjQ2'@; put 'MFx1NjQ5ZFx1NjRjZVx1NjU0ZVx1NjYwMFx1NjYxNVx1NjYzYlx1NjYwOVx1NjYyZVx1NjYxZVx1NjYyNFx1NjY2NVx1NjY1N1x1NjY1OVx1ZmExMlx1NjY3M1x1NjY5OVx1NjZhMFx1NjZiMlx1NjZiZlx1NjZmYVx1NjcwZVx1ZjkyOVx1Njc2Nlx1NjdiYlx1Njg1Mlx1NjdjMFx1NjgwMVx1'@; put 'Njg0NFx1NjhjZlx1ZmExM1x1Njk2OFx1ZmExNFx1Njk5OFx1NjllMlx1NmEzMFx1NmE2Ylx1NmE0Nlx1NmE3M1x1NmE3ZVx1NmFlMlx1NmFlNFx1NmJkNlx1NmMzZlx1NmM1Y1x1NmM4Nlx1NmM2Zlx1NmNkYVx1NmQwNFx1NmQ4N1x1NmQ2Zlx1NmQ5Nlx1NmRhY1x1NmRjZlx1NmRmOFx1NmRm'@; put 'Mlx1NmRmY1x1NmUzOVx1NmU1Y1x1NmUyN1x1NmUzY1x1NmViZlx1NmY4OFx1NmZiNVx1NmZmNVx1NzAwNVx1NzAwN1x1NzAyOFx1NzA4NVx1NzBhYlx1NzEwZlx1NzEwNFx1NzE1Y1x1NzE0Nlx1NzE0N1x1ZmExNVx1NzFjMVx1NzFmZVx1NzJiMVx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQo'@; put 'IiIpLHA9MDtwIT1fWzIzN10ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjM3XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIzN11bcF1dPTYwNjcyK3AsYls2MDY3MitwXT1fWzIzN11bcF0pO2ZvcihfWzIzOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1NzJiZVx1NzMyNFx1ZmExNlx1NzM3N1x1NzNiZFx1NzNjOVx1NzNkNlx1NzNlM1x1NzNkMlx1NzQwN1x1NzNmNVx1NzQyNlx1NzQyYVx1NzQyOVx1NzQyZVx1NzQ2Mlx1NzQ4OVx1NzQ5Zlx1NzUwMVx1NzU2Zlx1NzY4Mlx1NzY5Y1x1NzY5ZVx1NzY5Ylx1NzZhNlx1ZmExN1x1'@; put 'Nzc0Nlx1NTJhZlx1NzgyMVx1Nzg0ZVx1Nzg2NFx1Nzg3YVx1NzkzMFx1ZmExOFx1ZmExOVx1ZmExYVx1Nzk5NFx1ZmExYlx1Nzk5Ylx1N2FkMVx1N2FlN1x1ZmExY1x1N2FlYlx1N2I5ZVx1ZmExZFx1N2Q0OFx1N2Q1Y1x1N2RiN1x1N2RhMFx1N2RkNlx1N2U1Mlx1N2Y0N1x1N2ZhMVx1ZmEx'@; put 'ZVx1ODMwMVx1ODM2Mlx1ODM3Zlx1ODNjN1x1ODNmNlx1ODQ0OFx1ODRiNFx1ODU1M1x1ODU1OVx1ZmZmZFx1ODU2Ylx1ZmExZlx1ODViMFx1ZmEyMFx1ZmEyMVx1ODgwN1x1ODhmNVx1OGExMlx1OGEzN1x1OGE3OVx1OGFhN1x1OGFiZVx1OGFkZlx1ZmEyMlx1OGFmNlx1OGI1M1x1OGI3Zlx1'@; put 'OGNmMFx1OGNmNFx1OGQxMlx1OGQ3Nlx1ZmEyM1x1OGVjZlx1ZmEyNFx1ZmEyNVx1OTA2N1x1OTBkZVx1ZmEyNlx1OTExNVx1OTEyN1x1OTFkYVx1OTFkN1x1OTFkZVx1OTFlZFx1OTFlZVx1OTFlNFx1OTFlNVx1OTIwNlx1OTIxMFx1OTIwYVx1OTIzYVx1OTI0MFx1OTIzY1x1OTI0ZVx1OTI1'@; put 'OVx1OTI1MVx1OTIzOVx1OTI2N1x1OTJhN1x1OTI3N1x1OTI3OFx1OTJlN1x1OTJkN1x1OTJkOVx1OTJkMFx1ZmEyN1x1OTJkNVx1OTJlMFx1OTJkM1x1OTMyNVx1OTMyMVx1OTJmYlx1ZmEyOFx1OTMxZVx1OTJmZlx1OTMxZFx1OTMwMlx1OTM3MFx1OTM1N1x1OTNhNFx1OTNjNlx1OTNkZVx1'@; put 'OTNmOFx1OTQzMVx1OTQ0NVx1OTQ0OFx1OTU5Mlx1ZjlkY1x1ZmEyOVx1OTY5ZFx1OTZhZlx1OTczM1x1OTczYlx1OTc0M1x1OTc0ZFx1OTc0Zlx1OTc1MVx1OTc1NVx1OTg1N1x1OTg2NVx1ZmEyYVx1ZmEyYlx1OTkyN1x1ZmEyY1x1OTk5ZVx1OWE0ZVx1OWFkOVx1OWFkY1x1OWI3NVx1OWI3'@; put 'Mlx1OWI4Zlx1OWJiMVx1OWJiYlx1OWMwMFx1OWQ3MFx1OWQ2Ylx1ZmEyZFx1OWUxOVx1OWVkMVx1ZmZmZFx1ZmZmZFx1MjE3MFx1MjE3MVx1MjE3Mlx1MjE3M1x1MjE3NFx1MjE3NVx1MjE3Nlx1MjE3N1x1MjE3OFx1MjE3OVx1ZmZlMlx1ZmZlNFx1ZmYwN1x1ZmYwMlx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIzOF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjM4XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIzOF1bcF1dPTYwOTI4K3AsYls2MDkyOCtwXT1fWzIzOF1bcF0pO2ZvcihfWzI1MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjE3MFx1MjE3MVx1MjE3Mlx1MjE3M1x1MjE3NFx1MjE3NVx1MjE3Nlx1MjE3N1x1MjE3OFx1MjE3OVx1MjE2MFx1MjE2MVx1MjE2Mlx1MjE2M1x1MjE2NFx1MjE2NVx1MjE2Nlx1MjE2N1x1MjE2OFx1MjE2OVx1ZmZlMlx1ZmZlNFx1ZmYwN1x1ZmYwMlx1'@; put 'MzIzMVx1MjExNlx1MjEyMVx1MjIzNVx1N2U4YVx1ODkxY1x1OTM0OFx1OTI4OFx1ODRkY1x1NGZjOVx1NzBiYlx1NjYzMVx1NjhjOFx1OTJmOVx1NjZmYlx1NWY0NVx1NGUyOFx1NGVlMVx1NGVmY1x1NGYwMFx1NGYwM1x1NGYzOVx1NGY1Nlx1NGY5Mlx1NGY4YVx1NGY5YVx1NGY5NFx1NGZj'@; put 'ZFx1NTA0MFx1NTAyMlx1NGZmZlx1NTAxZVx1NTA0Nlx1NTA3MFx1NTA0Mlx1NTA5NFx1NTBmNFx1NTBkOFx1NTE0YVx1ZmZmZFx1NTE2NFx1NTE5ZFx1NTFiZVx1NTFlY1x1NTIxNVx1NTI5Y1x1NTJhNlx1NTJjMFx1NTJkYlx1NTMwMFx1NTMwN1x1NTMyNFx1NTM3Mlx1NTM5M1x1NTNiMlx1'@; put 'NTNkZFx1ZmEwZVx1NTQ5Y1x1NTQ4YVx1NTRhOVx1NTRmZlx1NTU4Nlx1NTc1OVx1NTc2NVx1NTdhY1x1NTdjOFx1NTdjN1x1ZmEwZlx1ZmExMFx1NTg5ZVx1NThiMlx1NTkwYlx1NTk1M1x1NTk1Ylx1NTk1ZFx1NTk2M1x1NTlhNFx1NTliYVx1NWI1Nlx1NWJjMFx1NzUyZlx1NWJkOFx1NWJl'@; put 'Y1x1NWMxZVx1NWNhNlx1NWNiYVx1NWNmNVx1NWQyN1x1NWQ1M1x1ZmExMVx1NWQ0Mlx1NWQ2ZFx1NWRiOFx1NWRiOVx1NWRkMFx1NWYyMVx1NWYzNFx1NWY2N1x1NWZiN1x1NWZkZVx1NjA1ZFx1NjA4NVx1NjA4YVx1NjBkZVx1NjBkNVx1NjEyMFx1NjBmMlx1NjExMVx1NjEzN1x1NjEzMFx1'@; put 'NjE5OFx1NjIxM1x1NjJhNlx1NjNmNVx1NjQ2MFx1NjQ5ZFx1NjRjZVx1NjU0ZVx1NjYwMFx1NjYxNVx1NjYzYlx1NjYwOVx1NjYyZVx1NjYxZVx1NjYyNFx1NjY2NVx1NjY1N1x1NjY1OVx1ZmExMlx1NjY3M1x1NjY5OVx1NjZhMFx1NjZiMlx1NjZiZlx1NjZmYVx1NjcwZVx1ZjkyOVx1Njc2'@; put 'Nlx1NjdiYlx1Njg1Mlx1NjdjMFx1NjgwMVx1Njg0NFx1NjhjZlx1ZmExM1x1Njk2OFx1ZmExNFx1Njk5OFx1NjllMlx1NmEzMFx1NmE2Ylx1NmE0Nlx1NmE3M1x1NmE3ZVx1NmFlMlx1NmFlNFx1NmJkNlx1NmMzZlx1NmM1Y1x1NmM4Nlx1NmM2Zlx1NmNkYVx1NmQwNFx1NmQ4N1x1NmQ2Zlx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzI1MF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjUwXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzI1MF1bcF1dPTY0ZTMrcCxiWzY0ZTMrcF09X1syNTBdW3BdKTtmb3IoX1syNTFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZkOTZcdTZkYWNcdTZkY2ZcdTZkZjhcdTZkZjJcdTZkZmNcdTZlMzlcdTZlNWNcdTZlMjdcdTZlM2NcdTZlYmZcdTZmODhcdTZmYjVcdTZmZjVcdTcwMDVcdTcwMDdcdTcwMjhcdTcwODVcdTcwYWJcdTcxMGZcdTcxMDRcdTcxNWNcdTcx'@; put 'NDZcdTcxNDdcdWZhMTVcdTcxYzFcdTcxZmVcdTcyYjFcdTcyYmVcdTczMjRcdWZhMTZcdTczNzdcdTczYmRcdTczYzlcdTczZDZcdTczZTNcdTczZDJcdTc0MDdcdTczZjVcdTc0MjZcdTc0MmFcdTc0MjlcdTc0MmVcdTc0NjJcdTc0ODlcdTc0OWZcdTc1MDFcdTc1NmZcdTc2ODJcdTc2OWNc'@; put 'dTc2OWVcdTc2OWJcdTc2YTZcdWZhMTdcdTc3NDZcdTUyYWZcdTc4MjFcdTc4NGVcdTc4NjRcdTc4N2FcdTc5MzBcdWZhMThcdWZhMTlcdWZmZmRcdWZhMWFcdTc5OTRcdWZhMWJcdTc5OWJcdTdhZDFcdTdhZTdcdWZhMWNcdTdhZWJcdTdiOWVcdWZhMWRcdTdkNDhcdTdkNWNcdTdkYjdcdTdk'@; put 'YTBcdTdkZDZcdTdlNTJcdTdmNDdcdTdmYTFcdWZhMWVcdTgzMDFcdTgzNjJcdTgzN2ZcdTgzYzdcdTgzZjZcdTg0NDhcdTg0YjRcdTg1NTNcdTg1NTlcdTg1NmJcdWZhMWZcdTg1YjBcdWZhMjBcdWZhMjFcdTg4MDdcdTg4ZjVcdThhMTJcdThhMzdcdThhNzlcdThhYTdcdThhYmVcdThhZGZc'@; put 'dWZhMjJcdThhZjZcdThiNTNcdThiN2ZcdThjZjBcdThjZjRcdThkMTJcdThkNzZcdWZhMjNcdThlY2ZcdWZhMjRcdWZhMjVcdTkwNjdcdTkwZGVcdWZhMjZcdTkxMTVcdTkxMjdcdTkxZGFcdTkxZDdcdTkxZGVcdTkxZWRcdTkxZWVcdTkxZTRcdTkxZTVcdTkyMDZcdTkyMTBcdTkyMGFcdTky'@; put 'M2FcdTkyNDBcdTkyM2NcdTkyNGVcdTkyNTlcdTkyNTFcdTkyMzlcdTkyNjdcdTkyYTdcdTkyNzdcdTkyNzhcdTkyZTdcdTkyZDdcdTkyZDlcdTkyZDBcdWZhMjdcdTkyZDVcdTkyZTBcdTkyZDNcdTkzMjVcdTkzMjFcdTkyZmJcdWZhMjhcdTkzMWVcdTkyZmZcdTkzMWRcdTkzMDJcdTkzNzBc'@; put 'dTkzNTdcdTkzYTRcdTkzYzZcdTkzZGVcdTkzZjhcdTk0MzFcdTk0NDVcdTk0NDhcdTk1OTJcdWY5ZGNcdWZhMjlcdTk2OWRcdTk2YWZcdTk3MzNcdTk3M2JcdTk3NDNcdTk3NGRcdTk3NGZcdTk3NTFcdTk3NTVcdTk4NTdcdTk4NjVcdWZhMmFcdWZhMmJcdTk5MjdcdWZhMmNcdTk5OWVcdTlh'@; put 'NGVcdTlhZDlcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syNTFdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzI1MV1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syNTFdW3BdXT02NDI1NitwLGJbNjQyNTYrcF09X1syNTFdW3BdKTtmb3IoX1syNTJdPSJcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTlhZGNcdTliNzVcdTliNzJcdTliOGZcdTliYjFcdTliYmJcdTljMDBcdTlkNzBcdTlkNmJcdWZhMmRcdTllMTlcdTllZDFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syNTJdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzI1Ml1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syNTJdW3BdXT02NDUxMitwLGJbNjQ1MTIrcF09X1syNTJdW3BdKTtyZXR1cm57ZW5jOkQs'@; put 'ZGVjOmJ9fSgpLEpbOTM2XT1mdW5jdGlvbigpe3ZhciBwLGI9W10sRD17fSxfPVtdO2ZvcihfWzBdPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFk'@; put 'XHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MjBhY1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzBdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzBdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMF1bcF1dPTArcCxiWzArcF09X1swXVtwXSk7Zm9yKF9bMTI5XT0iXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU0ZTAyXHU0ZTA0XHU0ZTA1XHU0ZTA2XHU0ZTBmXHU0ZTEyXHU0ZTE3XHU0ZTFmXHU0ZTIwXHU0ZTIxXHU0ZTIzXHU0ZTI2XHU0ZTI5XHU0ZTJlXHU0ZTJmXHU0ZTMxXHU0ZTMzXHU0ZTM1XHU0ZTM3'@; put 'XHU0ZTNjXHU0ZTQwXHU0ZTQxXHU0ZTQyXHU0ZTQ0XHU0ZTQ2XHU0ZTRhXHU0ZTUxXHU0ZTU1XHU0ZTU3XHU0ZTVhXHU0ZTViXHU0ZTYyXHU0ZTYzXHU0ZTY0XHU0ZTY1XHU0ZTY3XHU0ZTY4XHU0ZTZhXHU0ZTZiXHU0ZTZjXHU0ZTZkXHU0ZTZlXHU0ZTZmXHU0ZTcyXHU0ZTc0XHU0ZTc1XHU0'@; put 'ZTc2XHU0ZTc3XHU0ZTc4XHU0ZTc5XHU0ZTdhXHU0ZTdiXHU0ZTdjXHU0ZTdkXHU0ZTdmXHU0ZTgwXHU0ZTgxXHU0ZTgyXHU0ZTgzXHU0ZTg0XHU0ZTg1XHU0ZTg3XHU0ZThhXHVmZmZkXHU0ZTkwXHU0ZTk2XHU0ZTk3XHU0ZTk5XHU0ZTljXHU0ZTlkXHU0ZTllXHU0ZWEzXHU0ZWFhXHU0ZWFm'@; put 'XHU0ZWIwXHU0ZWIxXHU0ZWI0XHU0ZWI2XHU0ZWI3XHU0ZWI4XHU0ZWI5XHU0ZWJjXHU0ZWJkXHU0ZWJlXHU0ZWM4XHU0ZWNjXHU0ZWNmXHU0ZWQwXHU0ZWQyXHU0ZWRhXHU0ZWRiXHU0ZWRjXHU0ZWUwXHU0ZWUyXHU0ZWU2XHU0ZWU3XHU0ZWU5XHU0ZWVkXHU0ZWVlXHU0ZWVmXHU0ZWYxXHU0'@; put 'ZWY0XHU0ZWY4XHU0ZWY5XHU0ZWZhXHU0ZWZjXHU0ZWZlXHU0ZjAwXHU0ZjAyXHU0ZjAzXHU0ZjA0XHU0ZjA1XHU0ZjA2XHU0ZjA3XHU0ZjA4XHU0ZjBiXHU0ZjBjXHU0ZjEyXHU0ZjEzXHU0ZjE0XHU0ZjE1XHU0ZjE2XHU0ZjFjXHU0ZjFkXHU0ZjIxXHU0ZjIzXHU0ZjI4XHU0ZjI5XHU0ZjJj'@; put 'XHU0ZjJkXHU0ZjJlXHU0ZjMxXHU0ZjMzXHU0ZjM1XHU0ZjM3XHU0ZjM5XHU0ZjNiXHU0ZjNlXHU0ZjNmXHU0ZjQwXHU0ZjQxXHU0ZjQyXHU0ZjQ0XHU0ZjQ1XHU0ZjQ3XHU0ZjQ4XHU0ZjQ5XHU0ZjRhXHU0ZjRiXHU0ZjRjXHU0ZjUyXHU0ZjU0XHU0ZjU2XHU0ZjYxXHU0ZjYyXHU0ZjY2XHU0'@; put 'ZjY4XHU0ZjZhXHU0ZjZiXHU0ZjZkXHU0ZjZlXHU0ZjcxXHU0ZjcyXHU0Zjc1XHU0Zjc3XHU0Zjc4XHU0Zjc5XHU0ZjdhXHU0ZjdkXHU0ZjgwXHU0ZjgxXHU0ZjgyXHU0Zjg1XHU0Zjg2XHU0Zjg3XHU0ZjhhXHU0ZjhjXHU0ZjhlXHU0ZjkwXHU0ZjkyXHU0ZjkzXHU0Zjk1XHU0Zjk2XHU0Zjk4'@; put 'XHU0Zjk5XHU0ZjlhXHU0ZjljXHU0ZjllXHU0ZjlmXHU0ZmExXHU0ZmEyXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTI5XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxMjldW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTI5XVtwXV09MzMwMjQrcCxiWzMzMDI0K3BdPV9bMTI5XVtwXSk7Zm9y'@; put 'KF9bMTMwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU0ZmE0XHU0ZmFiXHU0ZmFkXHU0ZmIwXHU0ZmIxXHU0ZmIyXHU0ZmIzXHU0ZmI0XHU0ZmI2XHU0ZmI3XHU0ZmI4XHU0ZmI5XHU0ZmJhXHU0ZmJiXHU0ZmJjXHU0ZmJkXHU0ZmJl'@; put 'XHU0ZmMwXHU0ZmMxXHU0ZmMyXHU0ZmM2XHU0ZmM3XHU0ZmM4XHU0ZmM5XHU0ZmNiXHU0ZmNjXHU0ZmNkXHU0ZmQyXHU0ZmQzXHU0ZmQ0XHU0ZmQ1XHU0ZmQ2XHU0ZmQ5XHU0ZmRiXHU0ZmUwXHU0ZmUyXHU0ZmU0XHU0ZmU1XHU0ZmU3XHU0ZmViXHU0ZmVjXHU0ZmYwXHU0ZmYyXHU0ZmY0XHU0'@; put 'ZmY1XHU0ZmY2XHU0ZmY3XHU0ZmY5XHU0ZmZiXHU0ZmZjXHU0ZmZkXHU0ZmZmXHU1MDAwXHU1MDAxXHU1MDAyXHU1MDAzXHU1MDA0XHU1MDA1XHU1MDA2XHU1MDA3XHU1MDA4XHU1MDA5XHU1MDBhXHVmZmZkXHU1MDBiXHU1MDBlXHU1MDEwXHU1MDExXHU1MDEzXHU1MDE1XHU1MDE2XHU1MDE3'@; put 'XHU1MDFiXHU1MDFkXHU1MDFlXHU1MDIwXHU1MDIyXHU1MDIzXHU1MDI0XHU1MDI3XHU1MDJiXHU1MDJmXHU1MDMwXHU1MDMxXHU1MDMyXHU1MDMzXHU1MDM0XHU1MDM1XHU1MDM2XHU1MDM3XHU1MDM4XHU1MDM5XHU1MDNiXHU1MDNkXHU1MDNmXHU1MDQwXHU1MDQxXHU1MDQyXHU1MDQ0XHU1'@; put 'MDQ1XHU1MDQ2XHU1MDQ5XHU1MDRhXHU1MDRiXHU1MDRkXHU1MDUwXHU1MDUxXHU1MDUyXHU1MDUzXHU1MDU0XHU1MDU2XHU1MDU3XHU1MDU4XHU1MDU5XHU1MDViXHU1MDVkXHU1MDVlXHU1MDVmXHU1MDYwXHU1MDYxXHU1MDYyXHU1MDYzXHU1MDY0XHU1MDY2XHU1MDY3XHU1MDY4XHU1MDY5'@; put 'XHU1MDZhXHU1MDZiXHU1MDZkXHU1MDZlXHU1MDZmXHU1MDcwXHU1MDcxXHU1MDcyXHU1MDczXHU1MDc0XHU1MDc1XHU1MDc4XHU1MDc5XHU1MDdhXHU1MDdjXHU1MDdkXHU1MDgxXHU1MDgyXHU1MDgzXHU1MDg0XHU1MDg2XHU1MDg3XHU1MDg5XHU1MDhhXHU1MDhiXHU1MDhjXHU1MDhlXHU1'@; put 'MDhmXHU1MDkwXHU1MDkxXHU1MDkyXHU1MDkzXHU1MDk0XHU1MDk1XHU1MDk2XHU1MDk3XHU1MDk4XHU1MDk5XHU1MDlhXHU1MDliXHU1MDljXHU1MDlkXHU1MDllXHU1MDlmXHU1MGEwXHU1MGExXHU1MGEyXHU1MGE0XHU1MGE2XHU1MGFhXHU1MGFiXHU1MGFkXHU1MGFlXHU1MGFmXHU1MGIw'@; put 'XHU1MGIxXHU1MGIzXHU1MGI0XHU1MGI1XHU1MGI2XHU1MGI3XHU1MGI4XHU1MGI5XHU1MGJjXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTMwXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxMzBdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTMwXVtwXV09MzMyODArcCxiWzMzMjgwK3BdPV9b'@; put 'MTMwXVtwXSk7Zm9yKF9bMTMxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1MGJkXHU1MGJlXHU1MGJmXHU1MGMwXHU1MGMxXHU1MGMyXHU1MGMzXHU1MGM0XHU1MGM1XHU1MGM2XHU1MGM3XHU1MGM4XHU1MGM5XHU1MGNhXHU1MGNi'@; put 'XHU1MGNjXHU1MGNkXHU1MGNlXHU1MGQwXHU1MGQxXHU1MGQyXHU1MGQzXHU1MGQ0XHU1MGQ1XHU1MGQ3XHU1MGQ4XHU1MGQ5XHU1MGRiXHU1MGRjXHU1MGRkXHU1MGRlXHU1MGRmXHU1MGUwXHU1MGUxXHU1MGUyXHU1MGUzXHU1MGU0XHU1MGU1XHU1MGU4XHU1MGU5XHU1MGVhXHU1MGViXHU1'@; put 'MGVmXHU1MGYwXHU1MGYxXHU1MGYyXHU1MGY0XHU1MGY2XHU1MGY3XHU1MGY4XHU1MGY5XHU1MGZhXHU1MGZjXHU1MGZkXHU1MGZlXHU1MGZmXHU1MTAwXHU1MTAxXHU1MTAyXHU1MTAzXHU1MTA0XHU1MTA1XHU1MTA4XHVmZmZkXHU1MTA5XHU1MTBhXHU1MTBjXHU1MTBkXHU1MTBlXHU1MTBm'@; put 'XHU1MTEwXHU1MTExXHU1MTEzXHU1MTE0XHU1MTE1XHU1MTE2XHU1MTE3XHU1MTE4XHU1MTE5XHU1MTFhXHU1MTFiXHU1MTFjXHU1MTFkXHU1MTFlXHU1MTFmXHU1MTIwXHU1MTIyXHU1MTIzXHU1MTI0XHU1MTI1XHU1MTI2XHU1MTI3XHU1MTI4XHU1MTI5XHU1MTJhXHU1MTJiXHU1MTJjXHU1'@; put 'MTJkXHU1MTJlXHU1MTJmXHU1MTMwXHU1MTMxXHU1MTMyXHU1MTMzXHU1MTM0XHU1MTM1XHU1MTM2XHU1MTM3XHU1MTM4XHU1MTM5XHU1MTNhXHU1MTNiXHU1MTNjXHU1MTNkXHU1MTNlXHU1MTQyXHU1MTQ3XHU1MTRhXHU1MTRjXHU1MTRlXHU1MTRmXHU1MTUwXHU1MTUyXHU1MTUzXHU1MTU3'@; put 'XHU1MTU4XHU1MTU5XHU1MTViXHU1MTVkXHU1MTVlXHU1MTVmXHU1MTYwXHU1MTYxXHU1MTYzXHU1MTY0XHU1MTY2XHU1MTY3XHU1MTY5XHU1MTZhXHU1MTZmXHU1MTcyXHU1MTdhXHU1MTdlXHU1MTdmXHU1MTgzXHU1MTg0XHU1MTg2XHU1MTg3XHU1MThhXHU1MThiXHU1MThlXHU1MThmXHU1'@; put 'MTkwXHU1MTkxXHU1MTkzXHU1MTk0XHU1MTk4XHU1MTlhXHU1MTlkXHU1MTllXHU1MTlmXHU1MWExXHU1MWEzXHU1MWE2XHU1MWE3XHU1MWE4XHU1MWE5XHU1MWFhXHU1MWFkXHU1MWFlXHU1MWI0XHU1MWI4XHU1MWI5XHU1MWJhXHU1MWJlXHU1MWJmXHU1MWMxXHU1MWMyXHU1MWMzXHU1MWM1'@; put 'XHU1MWM4XHU1MWNhXHU1MWNkXHU1MWNlXHU1MWQwXHU1MWQyXHU1MWQzXHU1MWQ0XHU1MWQ1XHU1MWQ2XHU1MWQ3XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTMxXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxMzFdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTMxXVtwXV09MzM1MzYrcCxi'@; put 'WzMzNTM2K3BdPV9bMTMxXVtwXSk7Zm9yKF9bMTMyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1MWQ4XHU1MWQ5XHU1MWRhXHU1MWRjXHU1MWRlXHU1MWRmXHU1MWUyXHU1MWUzXHU1MWU1XHU1MWU2XHU1MWU3XHU1MWU4XHU1MWU5'@; put 'XHU1MWVhXHU1MWVjXHU1MWVlXHU1MWYxXHU1MWYyXHU1MWY0XHU1MWY3XHU1MWZlXHU1MjA0XHU1MjA1XHU1MjA5XHU1MjBiXHU1MjBjXHU1MjBmXHU1MjEwXHU1MjEzXHU1MjE0XHU1MjE1XHU1MjFjXHU1MjFlXHU1MjFmXHU1MjIxXHU1MjIyXHU1MjIzXHU1MjI1XHU1MjI2XHU1MjI3XHU1'@; put 'MjJhXHU1MjJjXHU1MjJmXHU1MjMxXHU1MjMyXHU1MjM0XHU1MjM1XHU1MjNjXHU1MjNlXHU1MjQ0XHU1MjQ1XHU1MjQ2XHU1MjQ3XHU1MjQ4XHU1MjQ5XHU1MjRiXHU1MjRlXHU1MjRmXHU1MjUyXHU1MjUzXHU1MjU1XHU1MjU3XHU1MjU4XHVmZmZkXHU1MjU5XHU1MjVhXHU1MjViXHU1MjVk'@; put 'XHU1MjVmXHU1MjYwXHU1MjYyXHU1MjYzXHU1MjY0XHU1MjY2XHU1MjY4XHU1MjZiXHU1MjZjXHU1MjZkXHU1MjZlXHU1MjcwXHU1MjcxXHU1MjczXHU1Mjc0XHU1Mjc1XHU1Mjc2XHU1Mjc3XHU1Mjc4XHU1Mjc5XHU1MjdhXHU1MjdiXHU1MjdjXHU1MjdlXHU1MjgwXHU1MjgzXHU1Mjg0XHU1'@; put 'Mjg1XHU1Mjg2XHU1Mjg3XHU1Mjg5XHU1MjhhXHU1MjhiXHU1MjhjXHU1MjhkXHU1MjhlXHU1MjhmXHU1MjkxXHU1MjkyXHU1Mjk0XHU1Mjk1XHU1Mjk2XHU1Mjk3XHU1Mjk4XHU1Mjk5XHU1MjlhXHU1MjljXHU1MmE0XHU1MmE1XHU1MmE2XHU1MmE3XHU1MmFlXHU1MmFmXHU1MmIwXHU1MmI0'@; put 'XHU1MmI1XHU1MmI2XHU1MmI3XHU1MmI4XHU1MmI5XHU1MmJhXHU1MmJiXHU1MmJjXHU1MmJkXHU1MmMwXHU1MmMxXHU1MmMyXHU1MmM0XHU1MmM1XHU1MmM2XHU1MmM4XHU1MmNhXHU1MmNjXHU1MmNkXHU1MmNlXHU1MmNmXHU1MmQxXHU1MmQzXHU1MmQ0XHU1MmQ1XHU1MmQ3XHU1MmQ5XHU1'@; put 'MmRhXHU1MmRiXHU1MmRjXHU1MmRkXHU1MmRlXHU1MmUwXHU1MmUxXHU1MmUyXHU1MmUzXHU1MmU1XHU1MmU2XHU1MmU3XHU1MmU4XHU1MmU5XHU1MmVhXHU1MmViXHU1MmVjXHU1MmVkXHU1MmVlXHU1MmVmXHU1MmYxXHU1MmYyXHU1MmYzXHU1MmY0XHU1MmY1XHU1MmY2XHU1MmY3XHU1MmY4'@; put 'XHU1MmZiXHU1MmZjXHU1MmZkXHU1MzAxXHU1MzAyXHU1MzAzXHU1MzA0XHU1MzA3XHU1MzA5XHU1MzBhXHU1MzBiXHU1MzBjXHU1MzBlXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTMyXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxMzJdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTMyXVtw'@; put 'XV09MzM3OTIrcCxiWzMzNzkyK3BdPV9bMTMyXVtwXSk7Zm9yKF9bMTMzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1MzExXHU1MzEyXHU1MzEzXHU1MzE0XHU1MzE4XHU1MzFiXHU1MzFjXHU1MzFlXHU1MzFmXHU1MzIyXHU1MzI0'@; put 'XHU1MzI1XHU1MzI3XHU1MzI4XHU1MzI5XHU1MzJiXHU1MzJjXHU1MzJkXHU1MzJmXHU1MzMwXHU1MzMxXHU1MzMyXHU1MzMzXHU1MzM0XHU1MzM1XHU1MzM2XHU1MzM3XHU1MzM4XHU1MzNjXHU1MzNkXHU1MzQwXHU1MzQyXHU1MzQ0XHU1MzQ2XHU1MzRiXHU1MzRjXHU1MzRkXHU1MzUwXHU1'@; put 'MzU0XHU1MzU4XHU1MzU5XHU1MzViXHU1MzVkXHU1MzY1XHU1MzY4XHU1MzZhXHU1MzZjXHU1MzZkXHU1MzcyXHU1Mzc2XHU1Mzc5XHU1MzdiXHU1MzdjXHU1MzdkXHU1MzdlXHU1MzgwXHU1MzgxXHU1MzgzXHU1Mzg3XHU1Mzg4XHU1MzhhXHU1MzhlXHU1MzhmXHVmZmZkXHU1MzkwXHU1Mzkx'@; put 'XHU1MzkyXHU1MzkzXHU1Mzk0XHU1Mzk2XHU1Mzk3XHU1Mzk5XHU1MzliXHU1MzljXHU1MzllXHU1M2EwXHU1M2ExXHU1M2E0XHU1M2E3XHU1M2FhXHU1M2FiXHU1M2FjXHU1M2FkXHU1M2FmXHU1M2IwXHU1M2IxXHU1M2IyXHU1M2IzXHU1M2I0XHU1M2I1XHU1M2I3XHU1M2I4XHU1M2I5XHU1'@; put 'M2JhXHU1M2JjXHU1M2JkXHU1M2JlXHU1M2MwXHU1M2MzXHU1M2M0XHU1M2M1XHU1M2M2XHU1M2M3XHU1M2NlXHU1M2NmXHU1M2QwXHU1M2QyXHU1M2QzXHU1M2Q1XHU1M2RhXHU1M2RjXHU1M2RkXHU1M2RlXHU1M2UxXHU1M2UyXHU1M2U3XHU1M2Y0XHU1M2ZhXHU1M2ZlXHU1M2ZmXHU1NDAw'@; put 'XHU1NDAyXHU1NDA1XHU1NDA3XHU1NDBiXHU1NDE0XHU1NDE4XHU1NDE5XHU1NDFhXHU1NDFjXHU1NDIyXHU1NDI0XHU1NDI1XHU1NDJhXHU1NDMwXHU1NDMzXHU1NDM2XHU1NDM3XHU1NDNhXHU1NDNkXHU1NDNmXHU1NDQxXHU1NDQyXHU1NDQ0XHU1NDQ1XHU1NDQ3XHU1NDQ5XHU1NDRjXHU1'@; put 'NDRkXHU1NDRlXHU1NDRmXHU1NDUxXHU1NDVhXHU1NDVkXHU1NDVlXHU1NDVmXHU1NDYwXHU1NDYxXHU1NDYzXHU1NDY1XHU1NDY3XHU1NDY5XHU1NDZhXHU1NDZiXHU1NDZjXHU1NDZkXHU1NDZlXHU1NDZmXHU1NDcwXHU1NDc0XHU1NDc5XHU1NDdhXHU1NDdlXHU1NDdmXHU1NDgxXHU1NDgz'@; put 'XHU1NDg1XHU1NDg3XHU1NDg4XHU1NDg5XHU1NDhhXHU1NDhkXHU1NDkxXHU1NDkzXHU1NDk3XHU1NDk4XHU1NDljXHU1NDllXHU1NDlmXHU1NGEwXHU1NGExXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTMzXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxMzNdW3BdLmNoYXJDb2RlQXQoMCkm'@; put 'JihEW19bMTMzXVtwXV09MzQwNDgrcCxiWzM0MDQ4K3BdPV9bMTMzXVtwXSk7Zm9yKF9bMTM0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NGEyXHU1NGE1XHU1NGFlXHU1NGIwXHU1NGIyXHU1NGI1XHU1NGI2XHU1NGI3XHU1NGI5'@; put 'XHU1NGJhXHU1NGJjXHU1NGJlXHU1NGMzXHU1NGM1XHU1NGNhXHU1NGNiXHU1NGQ2XHU1NGQ4XHU1NGRiXHU1NGUwXHU1NGUxXHU1NGUyXHU1NGUzXHU1NGU0XHU1NGViXHU1NGVjXHU1NGVmXHU1NGYwXHU1NGYxXHU1NGY0XHU1NGY1XHU1NGY2XHU1NGY3XHU1NGY4XHU1NGY5XHU1NGZiXHU1'@; put 'NGZlXHU1NTAwXHU1NTAyXHU1NTAzXHU1NTA0XHU1NTA1XHU1NTA4XHU1NTBhXHU1NTBiXHU1NTBjXHU1NTBkXHU1NTBlXHU1NTEyXHU1NTEzXHU1NTE1XHU1NTE2XHU1NTE3XHU1NTE4XHU1NTE5XHU1NTFhXHU1NTFjXHU1NTFkXHU1NTFlXHU1NTFmXHU1NTIxXHU1NTI1XHU1NTI2XHVmZmZk'@; put 'XHU1NTI4XHU1NTI5XHU1NTJiXHU1NTJkXHU1NTMyXHU1NTM0XHU1NTM1XHU1NTM2XHU1NTM4XHU1NTM5XHU1NTNhXHU1NTNiXHU1NTNkXHU1NTQwXHU1NTQyXHU1NTQ1XHU1NTQ3XHU1NTQ4XHU1NTRiXHU1NTRjXHU1NTRkXHU1NTRlXHU1NTRmXHU1NTUxXHU1NTUyXHU1NTUzXHU1NTU0XHU1'@; put 'NTU3XHU1NTU4XHU1NTU5XHU1NTVhXHU1NTViXHU1NTVkXHU1NTVlXHU1NTVmXHU1NTYwXHU1NTYyXHU1NTYzXHU1NTY4XHU1NTY5XHU1NTZiXHU1NTZmXHU1NTcwXHU1NTcxXHU1NTcyXHU1NTczXHU1NTc0XHU1NTc5XHU1NTdhXHU1NTdkXHU1NTdmXHU1NTg1XHU1NTg2XHU1NThjXHU1NThk'@; put 'XHU1NThlXHU1NTkwXHU1NTkyXHU1NTkzXHU1NTk1XHU1NTk2XHU1NTk3XHU1NTlhXHU1NTliXHU1NTllXHU1NWEwXHU1NWExXHU1NWEyXHU1NWEzXHU1NWE0XHU1NWE1XHU1NWE2XHU1NWE4XHU1NWE5XHU1NWFhXHU1NWFiXHU1NWFjXHU1NWFkXHU1NWFlXHU1NWFmXHU1NWIwXHU1NWIyXHU1'@; put 'NWI0XHU1NWI2XHU1NWI4XHU1NWJhXHU1NWJjXHU1NWJmXHU1NWMwXHU1NWMxXHU1NWMyXHU1NWMzXHU1NWM2XHU1NWM3XHU1NWM4XHU1NWNhXHU1NWNiXHU1NWNlXHU1NWNmXHU1NWQwXHU1NWQ1XHU1NWQ3XHU1NWQ4XHU1NWQ5XHU1NWRhXHU1NWRiXHU1NWRlXHU1NWUwXHU1NWUyXHU1NWU3'@; put 'XHU1NWU5XHU1NWVkXHU1NWVlXHU1NWYwXHU1NWYxXHU1NWY0XHU1NWY2XHU1NWY4XHU1NWY5XHU1NWZhXHU1NWZiXHU1NWZjXHU1NWZmXHU1NjAyXHU1NjAzXHU1NjA0XHU1NjA1XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTM0XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxMzRdW3BdLmNo'@; put 'YXJDb2RlQXQoMCkmJihEW19bMTM0XVtwXV09MzQzMDQrcCxiWzM0MzA0K3BdPV9bMTM0XVtwXSk7Zm9yKF9bMTM1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NjA2XHU1NjA3XHU1NjBhXHU1NjBiXHU1NjBkXHU1NjEwXHU1NjEx'@; put 'XHU1NjEyXHU1NjEzXHU1NjE0XHU1NjE1XHU1NjE2XHU1NjE3XHU1NjE5XHU1NjFhXHU1NjFjXHU1NjFkXHU1NjIwXHU1NjIxXHU1NjIyXHU1NjI1XHU1NjI2XHU1NjI4XHU1NjI5XHU1NjJhXHU1NjJiXHU1NjJlXHU1NjJmXHU1NjMwXHU1NjMzXHU1NjM1XHU1NjM3XHU1NjM4XHU1NjNhXHU1'@; put 'NjNjXHU1NjNkXHU1NjNlXHU1NjQwXHU1NjQxXHU1NjQyXHU1NjQzXHU1NjQ0XHU1NjQ1XHU1NjQ2XHU1NjQ3XHU1NjQ4XHU1NjQ5XHU1NjRhXHU1NjRiXHU1NjRmXHU1NjUwXHU1NjUxXHU1NjUyXHU1NjUzXHU1NjU1XHU1NjU2XHU1NjVhXHU1NjViXHU1NjVkXHU1NjVlXHU1NjVmXHU1NjYw'@; put 'XHU1NjYxXHVmZmZkXHU1NjYzXHU1NjY1XHU1NjY2XHU1NjY3XHU1NjZkXHU1NjZlXHU1NjZmXHU1NjcwXHU1NjcyXHU1NjczXHU1Njc0XHU1Njc1XHU1Njc3XHU1Njc4XHU1Njc5XHU1NjdhXHU1NjdkXHU1NjdlXHU1NjdmXHU1NjgwXHU1NjgxXHU1NjgyXHU1NjgzXHU1Njg0XHU1Njg3XHU1'@; put 'Njg4XHU1Njg5XHU1NjhhXHU1NjhiXHU1NjhjXHU1NjhkXHU1NjkwXHU1NjkxXHU1NjkyXHU1Njk0XHU1Njk1XHU1Njk2XHU1Njk3XHU1Njk4XHU1Njk5XHU1NjlhXHU1NjliXHU1NjljXHU1NjlkXHU1NjllXHU1NjlmXHU1NmEwXHU1NmExXHU1NmEyXHU1NmE0XHU1NmE1XHU1NmE2XHU1NmE3'@; put 'XHU1NmE4XHU1NmE5XHU1NmFhXHU1NmFiXHU1NmFjXHU1NmFkXHU1NmFlXHU1NmIwXHU1NmIxXHU1NmIyXHU1NmIzXHU1NmI0XHU1NmI1XHU1NmI2XHU1NmI4XHU1NmI5XHU1NmJhXHU1NmJiXHU1NmJkXHU1NmJlXHU1NmJmXHU1NmMwXHU1NmMxXHU1NmMyXHU1NmMzXHU1NmM0XHU1NmM1XHU1'@; put 'NmM2XHU1NmM3XHU1NmM4XHU1NmM5XHU1NmNiXHU1NmNjXHU1NmNkXHU1NmNlXHU1NmNmXHU1NmQwXHU1NmQxXHU1NmQyXHU1NmQzXHU1NmQ1XHU1NmQ2XHU1NmQ4XHU1NmQ5XHU1NmRjXHU1NmUzXHU1NmU1XHU1NmU2XHU1NmU3XHU1NmU4XHU1NmU5XHU1NmVhXHU1NmVjXHU1NmVlXHU1NmVm'@; put 'XHU1NmYyXHU1NmYzXHU1NmY2XHU1NmY3XHU1NmY4XHU1NmZiXHU1NmZjXHU1NzAwXHU1NzAxXHU1NzAyXHU1NzA1XHU1NzA3XHU1NzBiXHU1NzBjXHU1NzBkXHU1NzBlXHU1NzBmXHU1NzEwXHU1NzExXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTM1XS5sZW5ndGg7KytwKTY1NTMzIT09'@; put 'X1sxMzVdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTM1XVtwXV09MzQ1NjArcCxiWzM0NTYwK3BdPV9bMTM1XVtwXSk7Zm9yKF9bMTM2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NzEyXHU1NzEzXHU1NzE0XHU1NzE1XHU1NzE2'@; put 'XHU1NzE3XHU1NzE4XHU1NzE5XHU1NzFhXHU1NzFiXHU1NzFkXHU1NzFlXHU1NzIwXHU1NzIxXHU1NzIyXHU1NzI0XHU1NzI1XHU1NzI2XHU1NzI3XHU1NzJiXHU1NzMxXHU1NzMyXHU1NzM0XHU1NzM1XHU1NzM2XHU1NzM3XHU1NzM4XHU1NzNjXHU1NzNkXHU1NzNmXHU1NzQxXHU1NzQzXHU1'@; put 'NzQ0XHU1NzQ1XHU1NzQ2XHU1NzQ4XHU1NzQ5XHU1NzRiXHU1NzUyXHU1NzUzXHU1NzU0XHU1NzU1XHU1NzU2XHU1NzU4XHU1NzU5XHU1NzYyXHU1NzYzXHU1NzY1XHU1NzY3XHU1NzZjXHU1NzZlXHU1NzcwXHU1NzcxXHU1NzcyXHU1Nzc0XHU1Nzc1XHU1Nzc4XHU1Nzc5XHU1NzdhXHU1Nzdk'@; put 'XHU1NzdlXHU1NzdmXHU1NzgwXHVmZmZkXHU1NzgxXHU1Nzg3XHU1Nzg4XHU1Nzg5XHU1NzhhXHU1NzhkXHU1NzhlXHU1NzhmXHU1NzkwXHU1NzkxXHU1Nzk0XHU1Nzk1XHU1Nzk2XHU1Nzk3XHU1Nzk4XHU1Nzk5XHU1NzlhXHU1NzljXHU1NzlkXHU1NzllXHU1NzlmXHU1N2E1XHU1N2E4XHU1'@; put 'N2FhXHU1N2FjXHU1N2FmXHU1N2IwXHU1N2IxXHU1N2IzXHU1N2I1XHU1N2I2XHU1N2I3XHU1N2I5XHU1N2JhXHU1N2JiXHU1N2JjXHU1N2JkXHU1N2JlXHU1N2JmXHU1N2MwXHU1N2MxXHU1N2M0XHU1N2M1XHU1N2M2XHU1N2M3XHU1N2M4XHU1N2M5XHU1N2NhXHU1N2NjXHU1N2NkXHU1N2Qw'@; put 'XHU1N2QxXHU1N2QzXHU1N2Q2XHU1N2Q3XHU1N2RiXHU1N2RjXHU1N2RlXHU1N2UxXHU1N2UyXHU1N2UzXHU1N2U1XHU1N2U2XHU1N2U3XHU1N2U4XHU1N2U5XHU1N2VhXHU1N2ViXHU1N2VjXHU1N2VlXHU1N2YwXHU1N2YxXHU1N2YyXHU1N2YzXHU1N2Y1XHU1N2Y2XHU1N2Y3XHU1N2ZiXHU1'@; put 'N2ZjXHU1N2ZlXHU1N2ZmXHU1ODAxXHU1ODAzXHU1ODA0XHU1ODA1XHU1ODA4XHU1ODA5XHU1ODBhXHU1ODBjXHU1ODBlXHU1ODBmXHU1ODEwXHU1ODEyXHU1ODEzXHU1ODE0XHU1ODE2XHU1ODE3XHU1ODE4XHU1ODFhXHU1ODFiXHU1ODFjXHU1ODFkXHU1ODFmXHU1ODIyXHU1ODIzXHU1ODI1'@; put 'XHU1ODI2XHU1ODI3XHU1ODI4XHU1ODI5XHU1ODJiXHU1ODJjXHU1ODJkXHU1ODJlXHU1ODJmXHU1ODMxXHU1ODMyXHU1ODMzXHU1ODM0XHU1ODM2XHU1ODM3XHU1ODM4XHU1ODM5XHU1ODNhXHU1ODNiXHU1ODNjXHU1ODNkXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTM2XS5sZW5ndGg7'@; put 'KytwKTY1NTMzIT09X1sxMzZdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTM2XVtwXV09MzQ4MTYrcCxiWzM0ODE2K3BdPV9bMTM2XVtwXSk7Zm9yKF9bMTM3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1ODNlXHU1ODNmXHU1ODQw'@; put 'XHU1ODQxXHU1ODQyXHU1ODQzXHU1ODQ1XHU1ODQ2XHU1ODQ3XHU1ODQ4XHU1ODQ5XHU1ODRhXHU1ODRiXHU1ODRlXHU1ODRmXHU1ODUwXHU1ODUyXHU1ODUzXHU1ODU1XHU1ODU2XHU1ODU3XHU1ODU5XHU1ODVhXHU1ODViXHU1ODVjXHU1ODVkXHU1ODVmXHU1ODYwXHU1ODYxXHU1ODYyXHU1'@; put 'ODYzXHU1ODY0XHU1ODY2XHU1ODY3XHU1ODY4XHU1ODY5XHU1ODZhXHU1ODZkXHU1ODZlXHU1ODZmXHU1ODcwXHU1ODcxXHU1ODcyXHU1ODczXHU1ODc0XHU1ODc1XHU1ODc2XHU1ODc3XHU1ODc4XHU1ODc5XHU1ODdhXHU1ODdiXHU1ODdjXHU1ODdkXHU1ODdmXHU1ODgyXHU1ODg0XHU1ODg2'@; put 'XHU1ODg3XHU1ODg4XHU1ODhhXHU1ODhiXHU1ODhjXHVmZmZkXHU1ODhkXHU1ODhlXHU1ODhmXHU1ODkwXHU1ODkxXHU1ODk0XHU1ODk1XHU1ODk2XHU1ODk3XHU1ODk4XHU1ODliXHU1ODljXHU1ODlkXHU1OGEwXHU1OGExXHU1OGEyXHU1OGEzXHU1OGE0XHU1OGE1XHU1OGE2XHU1OGE3XHU1'@; put 'OGFhXHU1OGFiXHU1OGFjXHU1OGFkXHU1OGFlXHU1OGFmXHU1OGIwXHU1OGIxXHU1OGIyXHU1OGIzXHU1OGI0XHU1OGI1XHU1OGI2XHU1OGI3XHU1OGI4XHU1OGI5XHU1OGJhXHU1OGJiXHU1OGJkXHU1OGJlXHU1OGJmXHU1OGMwXHU1OGMyXHU1OGMzXHU1OGM0XHU1OGM2XHU1OGM3XHU1OGM4'@; put 'XHU1OGM5XHU1OGNhXHU1OGNiXHU1OGNjXHU1OGNkXHU1OGNlXHU1OGNmXHU1OGQwXHU1OGQyXHU1OGQzXHU1OGQ0XHU1OGQ2XHU1OGQ3XHU1OGQ4XHU1OGQ5XHU1OGRhXHU1OGRiXHU1OGRjXHU1OGRkXHU1OGRlXHU1OGRmXHU1OGUwXHU1OGUxXHU1OGUyXHU1OGUzXHU1OGU1XHU1OGU2XHU1'@; put 'OGU3XHU1OGU4XHU1OGU5XHU1OGVhXHU1OGVkXHU1OGVmXHU1OGYxXHU1OGYyXHU1OGY0XHU1OGY1XHU1OGY3XHU1OGY4XHU1OGZhXHU1OGZiXHU1OGZjXHU1OGZkXHU1OGZlXHU1OGZmXHU1OTAwXHU1OTAxXHU1OTAzXHU1OTA1XHU1OTA2XHU1OTA4XHU1OTA5XHU1OTBhXHU1OTBiXHU1OTBj'@; put 'XHU1OTBlXHU1OTEwXHU1OTExXHU1OTEyXHU1OTEzXHU1OTE3XHU1OTE4XHU1OTFiXHU1OTFkXHU1OTFlXHU1OTIwXHU1OTIxXHU1OTIyXHU1OTIzXHU1OTI2XHU1OTI4XHU1OTJjXHU1OTMwXHU1OTMyXHU1OTMzXHU1OTM1XHU1OTM2XHU1OTNiXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9b'@; put 'MTM3XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxMzddW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTM3XVtwXV09MzUwNzIrcCxiWzM1MDcyK3BdPV9bMTM3XVtwXSk7Zm9yKF9bMTM4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1OTNk'@; put 'XHU1OTNlXHU1OTNmXHU1OTQwXHU1OTQzXHU1OTQ1XHU1OTQ2XHU1OTRhXHU1OTRjXHU1OTRkXHU1OTUwXHU1OTUyXHU1OTUzXHU1OTU5XHU1OTViXHU1OTVjXHU1OTVkXHU1OTVlXHU1OTVmXHU1OTYxXHU1OTYzXHU1OTY0XHU1OTY2XHU1OTY3XHU1OTY4XHU1OTY5XHU1OTZhXHU1OTZiXHU1'@; put 'OTZjXHU1OTZkXHU1OTZlXHU1OTZmXHU1OTcwXHU1OTcxXHU1OTcyXHU1OTc1XHU1OTc3XHU1OTdhXHU1OTdiXHU1OTdjXHU1OTdlXHU1OTdmXHU1OTgwXHU1OTg1XHU1OTg5XHU1OThiXHU1OThjXHU1OThlXHU1OThmXHU1OTkwXHU1OTkxXHU1OTk0XHU1OTk1XHU1OTk4XHU1OTlhXHU1OTli'@; put 'XHU1OTljXHU1OTlkXHU1OTlmXHU1OWEwXHU1OWExXHU1OWEyXHU1OWE2XHVmZmZkXHU1OWE3XHU1OWFjXHU1OWFkXHU1OWIwXHU1OWIxXHU1OWIzXHU1OWI0XHU1OWI1XHU1OWI2XHU1OWI3XHU1OWI4XHU1OWJhXHU1OWJjXHU1OWJkXHU1OWJmXHU1OWMwXHU1OWMxXHU1OWMyXHU1OWMzXHU1'@; put 'OWM0XHU1OWM1XHU1OWM3XHU1OWM4XHU1OWM5XHU1OWNjXHU1OWNkXHU1OWNlXHU1OWNmXHU1OWQ1XHU1OWQ2XHU1OWQ5XHU1OWRiXHU1OWRlXHU1OWRmXHU1OWUwXHU1OWUxXHU1OWUyXHU1OWU0XHU1OWU2XHU1OWU3XHU1OWU5XHU1OWVhXHU1OWViXHU1OWVkXHU1OWVlXHU1OWVmXHU1OWYw'@; put 'XHU1OWYxXHU1OWYyXHU1OWYzXHU1OWY0XHU1OWY1XHU1OWY2XHU1OWY3XHU1OWY4XHU1OWZhXHU1OWZjXHU1OWZkXHU1OWZlXHU1YTAwXHU1YTAyXHU1YTBhXHU1YTBiXHU1YTBkXHU1YTBlXHU1YTBmXHU1YTEwXHU1YTEyXHU1YTE0XHU1YTE1XHU1YTE2XHU1YTE3XHU1YTE5XHU1YTFhXHU1'@; put 'YTFiXHU1YTFkXHU1YTFlXHU1YTIxXHU1YTIyXHU1YTI0XHU1YTI2XHU1YTI3XHU1YTI4XHU1YTJhXHU1YTJiXHU1YTJjXHU1YTJkXHU1YTJlXHU1YTJmXHU1YTMwXHU1YTMzXHU1YTM1XHU1YTM3XHU1YTM4XHU1YTM5XHU1YTNhXHU1YTNiXHU1YTNkXHU1YTNlXHU1YTNmXHU1YTQxXHU1YTQy'@; put 'XHU1YTQzXHU1YTQ0XHU1YTQ1XHU1YTQ3XHU1YTQ4XHU1YTRiXHU1YTRjXHU1YTRkXHU1YTRlXHU1YTRmXHU1YTUwXHU1YTUxXHU1YTUyXHU1YTUzXHU1YTU0XHU1YTU2XHU1YTU3XHU1YTU4XHU1YTU5XHU1YTViXHU1YTVjXHU1YTVkXHU1YTVlXHU1YTVmXHU1YTYwXHVmZmZkIi5zcGxpdCgi'@; put 'IikscD0wO3AhPV9bMTM4XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxMzhdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTM4XVtwXV09MzUzMjgrcCxiWzM1MzI4K3BdPV9bMTM4XVtwXSk7Zm9yKF9bMTM5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHU1YTYxXHU1YTYzXHU1YTY0XHU1YTY1XHU1YTY2XHU1YTY4XHU1YTY5XHU1YTZiXHU1YTZjXHU1YTZkXHU1YTZlXHU1YTZmXHU1YTcwXHU1YTcxXHU1YTcyXHU1YTczXHU1YTc4XHU1YTc5XHU1YTdiXHU1YTdjXHU1YTdkXHU1YTdlXHU1YTgwXHU1YTgxXHU1YTgyXHU1YTgzXHU1'@; put 'YTg0XHU1YTg1XHU1YTg2XHU1YTg3XHU1YTg4XHU1YTg5XHU1YThhXHU1YThiXHU1YThjXHU1YThkXHU1YThlXHU1YThmXHU1YTkwXHU1YTkxXHU1YTkzXHU1YTk0XHU1YTk1XHU1YTk2XHU1YTk3XHU1YTk4XHU1YTk5XHU1YTljXHU1YTlkXHU1YTllXHU1YTlmXHU1YWEwXHU1YWExXHU1YWEy'@; put 'XHU1YWEzXHU1YWE0XHU1YWE1XHU1YWE2XHU1YWE3XHU1YWE4XHU1YWE5XHU1YWFiXHU1YWFjXHVmZmZkXHU1YWFkXHU1YWFlXHU1YWFmXHU1YWIwXHU1YWIxXHU1YWI0XHU1YWI2XHU1YWI3XHU1YWI5XHU1YWJhXHU1YWJiXHU1YWJjXHU1YWJkXHU1YWJmXHU1YWMwXHU1YWMzXHU1YWM0XHU1'@; put 'YWM1XHU1YWM2XHU1YWM3XHU1YWM4XHU1YWNhXHU1YWNiXHU1YWNkXHU1YWNlXHU1YWNmXHU1YWQwXHU1YWQxXHU1YWQzXHU1YWQ1XHU1YWQ3XHU1YWQ5XHU1YWRhXHU1YWRiXHU1YWRkXHU1YWRlXHU1YWRmXHU1YWUyXHU1YWU0XHU1YWU1XHU1YWU3XHU1YWU4XHU1YWVhXHU1YWVjXHU1YWVk'@; put 'XHU1YWVlXHU1YWVmXHU1YWYwXHU1YWYyXHU1YWYzXHU1YWY0XHU1YWY1XHU1YWY2XHU1YWY3XHU1YWY4XHU1YWY5XHU1YWZhXHU1YWZiXHU1YWZjXHU1YWZkXHU1YWZlXHU1YWZmXHU1YjAwXHU1YjAxXHU1YjAyXHU1YjAzXHU1YjA0XHU1YjA1XHU1YjA2XHU1YjA3XHU1YjA4XHU1YjBhXHU1'@; put 'YjBiXHU1YjBjXHU1YjBkXHU1YjBlXHU1YjBmXHU1YjEwXHU1YjExXHU1YjEyXHU1YjEzXHU1YjE0XHU1YjE1XHU1YjE4XHU1YjE5XHU1YjFhXHU1YjFiXHU1YjFjXHU1YjFkXHU1YjFlXHU1YjFmXHU1YjIwXHU1YjIxXHU1YjIyXHU1YjIzXHU1YjI0XHU1YjI1XHU1YjI2XHU1YjI3XHU1YjI4'@; put 'XHU1YjI5XHU1YjJhXHU1YjJiXHU1YjJjXHU1YjJkXHU1YjJlXHU1YjJmXHU1YjMwXHU1YjMxXHU1YjMzXHU1YjM1XHU1YjM2XHU1YjM4XHU1YjM5XHU1YjNhXHU1YjNiXHU1YjNjXHU1YjNkXHU1YjNlXHU1YjNmXHU1YjQxXHU1YjQyXHU1YjQzXHU1YjQ0XHU1YjQ1XHU1YjQ2XHU1YjQ3XHVm'@; put 'ZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTM5XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxMzldW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTM5XVtwXV09MzU1ODQrcCxiWzM1NTg0K3BdPV9bMTM5XVtwXSk7Zm9yKF9bMTQwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHU1YjQ4XHU1YjQ5XHU1YjRhXHU1YjRiXHU1YjRjXHU1YjRkXHU1YjRlXHU1YjRmXHU1YjUyXHU1YjU2XHU1YjVlXHU1YjYwXHU1YjYxXHU1YjY3XHU1YjY4XHU1YjZiXHU1YjZkXHU1YjZlXHU1YjZmXHU1YjcyXHU1Yjc0XHU1Yjc2XHU1Yjc3XHU1Yjc4XHU1'@; put 'Yjc5XHU1YjdiXHU1YjdjXHU1YjdlXHU1YjdmXHU1YjgyXHU1Yjg2XHU1YjhhXHU1YjhkXHU1YjhlXHU1YjkwXHU1YjkxXHU1YjkyXHU1Yjk0XHU1Yjk2XHU1YjlmXHU1YmE3XHU1YmE4XHU1YmE5XHU1YmFjXHU1YmFkXHU1YmFlXHU1YmFmXHU1YmIxXHU1YmIyXHU1YmI3XHU1YmJhXHU1YmJi'@; put 'XHU1YmJjXHU1YmMwXHU1YmMxXHU1YmMzXHU1YmM4XHU1YmM5XHU1YmNhXHU1YmNiXHU1YmNkXHU1YmNlXHU1YmNmXHVmZmZkXHU1YmQxXHU1YmQ0XHU1YmQ1XHU1YmQ2XHU1YmQ3XHU1YmQ4XHU1YmQ5XHU1YmRhXHU1YmRiXHU1YmRjXHU1YmUwXHU1YmUyXHU1YmUzXHU1YmU2XHU1YmU3XHU1'@; put 'YmU5XHU1YmVhXHU1YmViXHU1YmVjXHU1YmVkXHU1YmVmXHU1YmYxXHU1YmYyXHU1YmYzXHU1YmY0XHU1YmY1XHU1YmY2XHU1YmY3XHU1YmZkXHU1YmZlXHU1YzAwXHU1YzAyXHU1YzAzXHU1YzA1XHU1YzA3XHU1YzA4XHU1YzBiXHU1YzBjXHU1YzBkXHU1YzBlXHU1YzEwXHU1YzEyXHU1YzEz'@; put 'XHU1YzE3XHU1YzE5XHU1YzFiXHU1YzFlXHU1YzFmXHU1YzIwXHU1YzIxXHU1YzIzXHU1YzI2XHU1YzI4XHU1YzI5XHU1YzJhXHU1YzJiXHU1YzJkXHU1YzJlXHU1YzJmXHU1YzMwXHU1YzMyXHU1YzMzXHU1YzM1XHU1YzM2XHU1YzM3XHU1YzQzXHU1YzQ0XHU1YzQ2XHU1YzQ3XHU1YzRjXHU1'@; put 'YzRkXHU1YzUyXHU1YzUzXHU1YzU0XHU1YzU2XHU1YzU3XHU1YzU4XHU1YzVhXHU1YzViXHU1YzVjXHU1YzVkXHU1YzVmXHU1YzYyXHU1YzY0XHU1YzY3XHU1YzY4XHU1YzY5XHU1YzZhXHU1YzZiXHU1YzZjXHU1YzZkXHU1YzcwXHU1YzcyXHU1YzczXHU1Yzc0XHU1Yzc1XHU1Yzc2XHU1Yzc3'@; put 'XHU1Yzc4XHU1YzdiXHU1YzdjXHU1YzdkXHU1YzdlXHU1YzgwXHU1YzgzXHU1Yzg0XHU1Yzg1XHU1Yzg2XHU1Yzg3XHU1Yzg5XHU1YzhhXHU1YzhiXHU1YzhlXHU1YzhmXHU1YzkyXHU1YzkzXHU1Yzk1XHU1YzlkXHU1YzllXHU1YzlmXHU1Y2EwXHU1Y2ExXHU1Y2E0XHU1Y2E1XHU1Y2E2XHU1'@; put 'Y2E3XHU1Y2E4XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTQwXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNDBdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTQwXVtwXV09MzU4NDArcCxiWzM1ODQwK3BdPV9bMTQwXVtwXSk7Zm9yKF9bMTQxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1Y2FhXHU1Y2FlXHU1Y2FmXHU1Y2IwXHU1Y2IyXHU1Y2I0XHU1Y2I2XHU1Y2I5XHU1Y2JhXHU1Y2JiXHU1Y2JjXHU1Y2JlXHU1Y2MwXHU1Y2MyXHU1Y2MzXHU1Y2M1XHU1Y2M2XHU1Y2M3XHU1Y2M4XHU1Y2M5XHU1Y2NhXHU1Y2NjXHU1'@; put 'Y2NkXHU1Y2NlXHU1Y2NmXHU1Y2QwXHU1Y2QxXHU1Y2QzXHU1Y2Q0XHU1Y2Q1XHU1Y2Q2XHU1Y2Q3XHU1Y2Q4XHU1Y2RhXHU1Y2RiXHU1Y2RjXHU1Y2RkXHU1Y2RlXHU1Y2RmXHU1Y2UwXHU1Y2UyXHU1Y2UzXHU1Y2U3XHU1Y2U5XHU1Y2ViXHU1Y2VjXHU1Y2VlXHU1Y2VmXHU1Y2YxXHU1Y2Yy'@; put 'XHU1Y2YzXHU1Y2Y0XHU1Y2Y1XHU1Y2Y2XHU1Y2Y3XHU1Y2Y4XHU1Y2Y5XHU1Y2ZhXHU1Y2ZjXHU1Y2ZkXHU1Y2ZlXHU1Y2ZmXHU1ZDAwXHVmZmZkXHU1ZDAxXHU1ZDA0XHU1ZDA1XHU1ZDA4XHU1ZDA5XHU1ZDBhXHU1ZDBiXHU1ZDBjXHU1ZDBkXHU1ZDBmXHU1ZDEwXHU1ZDExXHU1ZDEyXHU1'@; put 'ZDEzXHU1ZDE1XHU1ZDE3XHU1ZDE4XHU1ZDE5XHU1ZDFhXHU1ZDFjXHU1ZDFkXHU1ZDFmXHU1ZDIwXHU1ZDIxXHU1ZDIyXHU1ZDIzXHU1ZDI1XHU1ZDI4XHU1ZDJhXHU1ZDJiXHU1ZDJjXHU1ZDJmXHU1ZDMwXHU1ZDMxXHU1ZDMyXHU1ZDMzXHU1ZDM1XHU1ZDM2XHU1ZDM3XHU1ZDM4XHU1ZDM5'@; put 'XHU1ZDNhXHU1ZDNiXHU1ZDNjXHU1ZDNmXHU1ZDQwXHU1ZDQxXHU1ZDQyXHU1ZDQzXHU1ZDQ0XHU1ZDQ1XHU1ZDQ2XHU1ZDQ4XHU1ZDQ5XHU1ZDRkXHU1ZDRlXHU1ZDRmXHU1ZDUwXHU1ZDUxXHU1ZDUyXHU1ZDUzXHU1ZDU0XHU1ZDU1XHU1ZDU2XHU1ZDU3XHU1ZDU5XHU1ZDVhXHU1ZDVjXHU1'@; put 'ZDVlXHU1ZDVmXHU1ZDYwXHU1ZDYxXHU1ZDYyXHU1ZDYzXHU1ZDY0XHU1ZDY1XHU1ZDY2XHU1ZDY3XHU1ZDY4XHU1ZDZhXHU1ZDZkXHU1ZDZlXHU1ZDcwXHU1ZDcxXHU1ZDcyXHU1ZDczXHU1ZDc1XHU1ZDc2XHU1ZDc3XHU1ZDc4XHU1ZDc5XHU1ZDdhXHU1ZDdiXHU1ZDdjXHU1ZDdkXHU1ZDdl'@; put 'XHU1ZDdmXHU1ZDgwXHU1ZDgxXHU1ZDgzXHU1ZDg0XHU1ZDg1XHU1ZDg2XHU1ZDg3XHU1ZDg4XHU1ZDg5XHU1ZDhhXHU1ZDhiXHU1ZDhjXHU1ZDhkXHU1ZDhlXHU1ZDhmXHU1ZDkwXHU1ZDkxXHU1ZDkyXHU1ZDkzXHU1ZDk0XHU1ZDk1XHU1ZDk2XHU1ZDk3XHU1ZDk4XHU1ZDlhXHU1ZDliXHU1'@; put 'ZDljXHU1ZDllXHU1ZDlmXHU1ZGEwXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTQxXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNDFdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTQxXVtwXV09MzYwOTYrcCxiWzM2MDk2K3BdPV9bMTQxXVtwXSk7Zm9yKF9bMTQyXT0iXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1ZGExXHU1ZGEyXHU1ZGEzXHU1ZGE0XHU1ZGE1XHU1ZGE2XHU1ZGE3XHU1ZGE4XHU1ZGE5XHU1ZGFhXHU1ZGFiXHU1ZGFjXHU1ZGFkXHU1ZGFlXHU1ZGFmXHU1ZGIwXHU1ZGIxXHU1ZGIyXHU1ZGIzXHU1ZGI0XHU1'@; put 'ZGI1XHU1ZGI2XHU1ZGI4XHU1ZGI5XHU1ZGJhXHU1ZGJiXHU1ZGJjXHU1ZGJkXHU1ZGJlXHU1ZGJmXHU1ZGMwXHU1ZGMxXHU1ZGMyXHU1ZGMzXHU1ZGM0XHU1ZGM2XHU1ZGM3XHU1ZGM4XHU1ZGM5XHU1ZGNhXHU1ZGNiXHU1ZGNjXHU1ZGNlXHU1ZGNmXHU1ZGQwXHU1ZGQxXHU1ZGQyXHU1ZGQz'@; put 'XHU1ZGQ0XHU1ZGQ1XHU1ZGQ2XHU1ZGQ3XHU1ZGQ4XHU1ZGQ5XHU1ZGRhXHU1ZGRjXHU1ZGRmXHU1ZGUwXHU1ZGUzXHU1ZGU0XHU1ZGVhXHU1ZGVjXHU1ZGVkXHVmZmZkXHU1ZGYwXHU1ZGY1XHU1ZGY2XHU1ZGY4XHU1ZGY5XHU1ZGZhXHU1ZGZiXHU1ZGZjXHU1ZGZmXHU1ZTAwXHU1ZTA0XHU1'@; put 'ZTA3XHU1ZTA5XHU1ZTBhXHU1ZTBiXHU1ZTBkXHU1ZTBlXHU1ZTEyXHU1ZTEzXHU1ZTE3XHU1ZTFlXHU1ZTFmXHU1ZTIwXHU1ZTIxXHU1ZTIyXHU1ZTIzXHU1ZTI0XHU1ZTI1XHU1ZTI4XHU1ZTI5XHU1ZTJhXHU1ZTJiXHU1ZTJjXHU1ZTJmXHU1ZTMwXHU1ZTMyXHU1ZTMzXHU1ZTM0XHU1ZTM1'@; put 'XHU1ZTM2XHU1ZTM5XHU1ZTNhXHU1ZTNlXHU1ZTNmXHU1ZTQwXHU1ZTQxXHU1ZTQzXHU1ZTQ2XHU1ZTQ3XHU1ZTQ4XHU1ZTQ5XHU1ZTRhXHU1ZTRiXHU1ZTRkXHU1ZTRlXHU1ZTRmXHU1ZTUwXHU1ZTUxXHU1ZTUyXHU1ZTUzXHU1ZTU2XHU1ZTU3XHU1ZTU4XHU1ZTU5XHU1ZTVhXHU1ZTVjXHU1'@; put 'ZTVkXHU1ZTVmXHU1ZTYwXHU1ZTYzXHU1ZTY0XHU1ZTY1XHU1ZTY2XHU1ZTY3XHU1ZTY4XHU1ZTY5XHU1ZTZhXHU1ZTZiXHU1ZTZjXHU1ZTZkXHU1ZTZlXHU1ZTZmXHU1ZTcwXHU1ZTcxXHU1ZTc1XHU1ZTc3XHU1ZTc5XHU1ZTdlXHU1ZTgxXHU1ZTgyXHU1ZTgzXHU1ZTg1XHU1ZTg4XHU1ZTg5'@; put 'XHU1ZThjXHU1ZThkXHU1ZThlXHU1ZTkyXHU1ZTk4XHU1ZTliXHU1ZTlkXHU1ZWExXHU1ZWEyXHU1ZWEzXHU1ZWE0XHU1ZWE4XHU1ZWE5XHU1ZWFhXHU1ZWFiXHU1ZWFjXHU1ZWFlXHU1ZWFmXHU1ZWIwXHU1ZWIxXHU1ZWIyXHU1ZWI0XHU1ZWJhXHU1ZWJiXHU1ZWJjXHU1ZWJkXHU1ZWJmXHU1'@; put 'ZWMwXHU1ZWMxXHU1ZWMyXHU1ZWMzXHU1ZWM0XHU1ZWM1XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTQyXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNDJdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTQyXVtwXV09MzYzNTIrcCxiWzM2MzUyK3BdPV9bMTQyXVtwXSk7Zm9yKF9bMTQzXT0i'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1ZWM2XHU1ZWM3XHU1ZWM4XHU1ZWNiXHU1ZWNjXHU1ZWNkXHU1ZWNlXHU1ZWNmXHU1ZWQwXHU1ZWQ0XHU1ZWQ1XHU1ZWQ3XHU1ZWQ4XHU1ZWQ5XHU1ZWRhXHU1ZWRjXHU1ZWRkXHU1ZWRlXHU1'@; put 'ZWRmXHU1ZWUwXHU1ZWUxXHU1ZWUyXHU1ZWUzXHU1ZWU0XHU1ZWU1XHU1ZWU2XHU1ZWU3XHU1ZWU5XHU1ZWViXHU1ZWVjXHU1ZWVkXHU1ZWVlXHU1ZWVmXHU1ZWYwXHU1ZWYxXHU1ZWYyXHU1ZWYzXHU1ZWY1XHU1ZWY4XHU1ZWY5XHU1ZWZiXHU1ZWZjXHU1ZWZkXHU1ZjA1XHU1ZjA2XHU1ZjA3'@; put 'XHU1ZjA5XHU1ZjBjXHU1ZjBkXHU1ZjBlXHU1ZjEwXHU1ZjEyXHU1ZjE0XHU1ZjE2XHU1ZjE5XHU1ZjFhXHU1ZjFjXHU1ZjFkXHU1ZjFlXHU1ZjIxXHU1ZjIyXHU1ZjIzXHU1ZjI0XHVmZmZkXHU1ZjI4XHU1ZjJiXHU1ZjJjXHU1ZjJlXHU1ZjMwXHU1ZjMyXHU1ZjMzXHU1ZjM0XHU1ZjM1XHU1'@; put 'ZjM2XHU1ZjM3XHU1ZjM4XHU1ZjNiXHU1ZjNkXHU1ZjNlXHU1ZjNmXHU1ZjQxXHU1ZjQyXHU1ZjQzXHU1ZjQ0XHU1ZjQ1XHU1ZjQ2XHU1ZjQ3XHU1ZjQ4XHU1ZjQ5XHU1ZjRhXHU1ZjRiXHU1ZjRjXHU1ZjRkXHU1ZjRlXHU1ZjRmXHU1ZjUxXHU1ZjU0XHU1ZjU5XHU1ZjVhXHU1ZjViXHU1ZjVj'@; put 'XHU1ZjVlXHU1ZjVmXHU1ZjYwXHU1ZjYzXHU1ZjY1XHU1ZjY3XHU1ZjY4XHU1ZjZiXHU1ZjZlXHU1ZjZmXHU1ZjcyXHU1Zjc0XHU1Zjc1XHU1Zjc2XHU1Zjc4XHU1ZjdhXHU1ZjdkXHU1ZjdlXHU1ZjdmXHU1ZjgzXHU1Zjg2XHU1ZjhkXHU1ZjhlXHU1ZjhmXHU1ZjkxXHU1ZjkzXHU1Zjk0XHU1'@; put 'Zjk2XHU1ZjlhXHU1ZjliXHU1ZjlkXHU1ZjllXHU1ZjlmXHU1ZmEwXHU1ZmEyXHU1ZmEzXHU1ZmE0XHU1ZmE1XHU1ZmE2XHU1ZmE3XHU1ZmE5XHU1ZmFiXHU1ZmFjXHU1ZmFmXHU1ZmIwXHU1ZmIxXHU1ZmIyXHU1ZmIzXHU1ZmI0XHU1ZmI2XHU1ZmI4XHU1ZmI5XHU1ZmJhXHU1ZmJiXHU1ZmJl'@; put 'XHU1ZmJmXHU1ZmMwXHU1ZmMxXHU1ZmMyXHU1ZmM3XHU1ZmM4XHU1ZmNhXHU1ZmNiXHU1ZmNlXHU1ZmQzXHU1ZmQ0XHU1ZmQ1XHU1ZmRhXHU1ZmRiXHU1ZmRjXHU1ZmRlXHU1ZmRmXHU1ZmUyXHU1ZmUzXHU1ZmU1XHU1ZmU2XHU1ZmU4XHU1ZmU5XHU1ZmVjXHU1ZmVmXHU1ZmYwXHU1ZmYyXHU1'@; put 'ZmYzXHU1ZmY0XHU1ZmY2XHU1ZmY3XHU1ZmY5XHU1ZmZhXHU1ZmZjXHU2MDA3XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTQzXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNDNdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTQzXVtwXV09MzY2MDgrcCxiWzM2NjA4K3BdPV9bMTQzXVtwXSk7'@; put 'Zm9yKF9bMTQ0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MDA4XHU2MDA5XHU2MDBiXHU2MDBjXHU2MDEwXHU2MDExXHU2MDEzXHU2MDE3XHU2MDE4XHU2MDFhXHU2MDFlXHU2MDFmXHU2MDIyXHU2MDIzXHU2MDI0XHU2MDJjXHU2'@; put 'MDJkXHU2MDJlXHU2MDMwXHU2MDMxXHU2MDMyXHU2MDMzXHU2MDM0XHU2MDM2XHU2MDM3XHU2MDM4XHU2MDM5XHU2MDNhXHU2MDNkXHU2MDNlXHU2MDQwXHU2MDQ0XHU2MDQ1XHU2MDQ2XHU2MDQ3XHU2MDQ4XHU2MDQ5XHU2MDRhXHU2MDRjXHU2MDRlXHU2MDRmXHU2MDUxXHU2MDUzXHU2MDU0'@; put 'XHU2MDU2XHU2MDU3XHU2MDU4XHU2MDViXHU2MDVjXHU2MDVlXHU2MDVmXHU2MDYwXHU2MDYxXHU2MDY1XHU2MDY2XHU2MDZlXHU2MDcxXHU2MDcyXHU2MDc0XHU2MDc1XHU2MDc3XHU2MDdlXHU2MDgwXHVmZmZkXHU2MDgxXHU2MDgyXHU2MDg1XHU2MDg2XHU2MDg3XHU2MDg4XHU2MDhhXHU2'@; put 'MDhiXHU2MDhlXHU2MDhmXHU2MDkwXHU2MDkxXHU2MDkzXHU2MDk1XHU2MDk3XHU2MDk4XHU2MDk5XHU2MDljXHU2MDllXHU2MGExXHU2MGEyXHU2MGE0XHU2MGE1XHU2MGE3XHU2MGE5XHU2MGFhXHU2MGFlXHU2MGIwXHU2MGIzXHU2MGI1XHU2MGI2XHU2MGI3XHU2MGI5XHU2MGJhXHU2MGJk'@; put 'XHU2MGJlXHU2MGJmXHU2MGMwXHU2MGMxXHU2MGMyXHU2MGMzXHU2MGM0XHU2MGM3XHU2MGM4XHU2MGM5XHU2MGNjXHU2MGNkXHU2MGNlXHU2MGNmXHU2MGQwXHU2MGQyXHU2MGQzXHU2MGQ0XHU2MGQ2XHU2MGQ3XHU2MGQ5XHU2MGRiXHU2MGRlXHU2MGUxXHU2MGUyXHU2MGUzXHU2MGU0XHU2'@; put 'MGU1XHU2MGVhXHU2MGYxXHU2MGYyXHU2MGY1XHU2MGY3XHU2MGY4XHU2MGZiXHU2MGZjXHU2MGZkXHU2MGZlXHU2MGZmXHU2MTAyXHU2MTAzXHU2MTA0XHU2MTA1XHU2MTA3XHU2MTBhXHU2MTBiXHU2MTBjXHU2MTEwXHU2MTExXHU2MTEyXHU2MTEzXHU2MTE0XHU2MTE2XHU2MTE3XHU2MTE4'@; put 'XHU2MTE5XHU2MTFiXHU2MTFjXHU2MTFkXHU2MTFlXHU2MTIxXHU2MTIyXHU2MTI1XHU2MTI4XHU2MTI5XHU2MTJhXHU2MTJjXHU2MTJkXHU2MTJlXHU2MTJmXHU2MTMwXHU2MTMxXHU2MTMyXHU2MTMzXHU2MTM0XHU2MTM1XHU2MTM2XHU2MTM3XHU2MTM4XHU2MTM5XHU2MTNhXHU2MTNiXHU2'@; put 'MTNjXHU2MTNkXHU2MTNlXHU2MTQwXHU2MTQxXHU2MTQyXHU2MTQzXHU2MTQ0XHU2MTQ1XHU2MTQ2XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTQ0XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNDRdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTQ0XVtwXV09MzY4NjQrcCxiWzM2ODY0K3Bd'@; put 'PV9bMTQ0XVtwXSk7Zm9yKF9bMTQ1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MTQ3XHU2MTQ5XHU2MTRiXHU2MTRkXHU2MTRmXHU2MTUwXHU2MTUyXHU2MTUzXHU2MTU0XHU2MTU2XHU2MTU3XHU2MTU4XHU2MTU5XHU2MTVhXHU2'@; put 'MTViXHU2MTVjXHU2MTVlXHU2MTVmXHU2MTYwXHU2MTYxXHU2MTYzXHU2MTY0XHU2MTY1XHU2MTY2XHU2MTY5XHU2MTZhXHU2MTZiXHU2MTZjXHU2MTZkXHU2MTZlXHU2MTZmXHU2MTcxXHU2MTcyXHU2MTczXHU2MTc0XHU2MTc2XHU2MTc4XHU2MTc5XHU2MTdhXHU2MTdiXHU2MTdjXHU2MTdk'@; put 'XHU2MTdlXHU2MTdmXHU2MTgwXHU2MTgxXHU2MTgyXHU2MTgzXHU2MTg0XHU2MTg1XHU2MTg2XHU2MTg3XHU2MTg4XHU2MTg5XHU2MThhXHU2MThjXHU2MThkXHU2MThmXHU2MTkwXHU2MTkxXHU2MTkyXHU2MTkzXHU2MTk1XHVmZmZkXHU2MTk2XHU2MTk3XHU2MTk4XHU2MTk5XHU2MTlhXHU2'@; put 'MTliXHU2MTljXHU2MTllXHU2MTlmXHU2MWEwXHU2MWExXHU2MWEyXHU2MWEzXHU2MWE0XHU2MWE1XHU2MWE2XHU2MWFhXHU2MWFiXHU2MWFkXHU2MWFlXHU2MWFmXHU2MWIwXHU2MWIxXHU2MWIyXHU2MWIzXHU2MWI0XHU2MWI1XHU2MWI2XHU2MWI4XHU2MWI5XHU2MWJhXHU2MWJiXHU2MWJj'@; put 'XHU2MWJkXHU2MWJmXHU2MWMwXHU2MWMxXHU2MWMzXHU2MWM0XHU2MWM1XHU2MWM2XHU2MWM3XHU2MWM5XHU2MWNjXHU2MWNkXHU2MWNlXHU2MWNmXHU2MWQwXHU2MWQzXHU2MWQ1XHU2MWQ2XHU2MWQ3XHU2MWQ4XHU2MWQ5XHU2MWRhXHU2MWRiXHU2MWRjXHU2MWRkXHU2MWRlXHU2MWRmXHU2'@; put 'MWUwXHU2MWUxXHU2MWUyXHU2MWUzXHU2MWU0XHU2MWU1XHU2MWU3XHU2MWU4XHU2MWU5XHU2MWVhXHU2MWViXHU2MWVjXHU2MWVkXHU2MWVlXHU2MWVmXHU2MWYwXHU2MWYxXHU2MWYyXHU2MWYzXHU2MWY0XHU2MWY2XHU2MWY3XHU2MWY4XHU2MWY5XHU2MWZhXHU2MWZiXHU2MWZjXHU2MWZk'@; put 'XHU2MWZlXHU2MjAwXHU2MjAxXHU2MjAyXHU2MjAzXHU2MjA0XHU2MjA1XHU2MjA3XHU2MjA5XHU2MjEzXHU2MjE0XHU2MjE5XHU2MjFjXHU2MjFkXHU2MjFlXHU2MjIwXHU2MjIzXHU2MjI2XHU2MjI3XHU2MjI4XHU2MjI5XHU2MjJiXHU2MjJkXHU2MjJmXHU2MjMwXHU2MjMxXHU2MjMyXHU2'@; put 'MjM1XHU2MjM2XHU2MjM4XHU2MjM5XHU2MjNhXHU2MjNiXHU2MjNjXHU2MjQyXHU2MjQ0XHU2MjQ1XHU2MjQ2XHU2MjRhXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTQ1XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNDVdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTQ1XVtwXV09MzcxMjAr'@; put 'cCxiWzM3MTIwK3BdPV9bMTQ1XVtwXSk7Zm9yKF9bMTQ2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MjRmXHU2MjUwXHU2MjU1XHU2MjU2XHU2MjU3XHU2MjU5XHU2MjVhXHU2MjVjXHU2MjVkXHU2MjVlXHU2MjVmXHU2MjYwXHU2'@; put 'MjYxXHU2MjYyXHU2MjY0XHU2MjY1XHU2MjY4XHU2MjcxXHU2MjcyXHU2Mjc0XHU2Mjc1XHU2Mjc3XHU2Mjc4XHU2MjdhXHU2MjdiXHU2MjdkXHU2MjgxXHU2MjgyXHU2MjgzXHU2Mjg1XHU2Mjg2XHU2Mjg3XHU2Mjg4XHU2MjhiXHU2MjhjXHU2MjhkXHU2MjhlXHU2MjhmXHU2MjkwXHU2Mjk0'@; put 'XHU2Mjk5XHU2MjljXHU2MjlkXHU2MjllXHU2MmEzXHU2MmE2XHU2MmE3XHU2MmE5XHU2MmFhXHU2MmFkXHU2MmFlXHU2MmFmXHU2MmIwXHU2MmIyXHU2MmIzXHU2MmI0XHU2MmI2XHU2MmI3XHU2MmI4XHU2MmJhXHU2MmJlXHU2MmMwXHU2MmMxXHVmZmZkXHU2MmMzXHU2MmNiXHU2MmNmXHU2'@; put 'MmQxXHU2MmQ1XHU2MmRkXHU2MmRlXHU2MmUwXHU2MmUxXHU2MmU0XHU2MmVhXHU2MmViXHU2MmYwXHU2MmYyXHU2MmY1XHU2MmY4XHU2MmY5XHU2MmZhXHU2MmZiXHU2MzAwXHU2MzAzXHU2MzA0XHU2MzA1XHU2MzA2XHU2MzBhXHU2MzBiXHU2MzBjXHU2MzBkXHU2MzBmXHU2MzEwXHU2MzEy'@; put 'XHU2MzEzXHU2MzE0XHU2MzE1XHU2MzE3XHU2MzE4XHU2MzE5XHU2MzFjXHU2MzI2XHU2MzI3XHU2MzI5XHU2MzJjXHU2MzJkXHU2MzJlXHU2MzMwXHU2MzMxXHU2MzMzXHU2MzM0XHU2MzM1XHU2MzM2XHU2MzM3XHU2MzM4XHU2MzNiXHU2MzNjXHU2MzNlXHU2MzNmXHU2MzQwXHU2MzQxXHU2'@; put 'MzQ0XHU2MzQ3XHU2MzQ4XHU2MzRhXHU2MzUxXHU2MzUyXHU2MzUzXHU2MzU0XHU2MzU2XHU2MzU3XHU2MzU4XHU2MzU5XHU2MzVhXHU2MzViXHU2MzVjXHU2MzVkXHU2MzYwXHU2MzY0XHU2MzY1XHU2MzY2XHU2MzY4XHU2MzZhXHU2MzZiXHU2MzZjXHU2MzZmXHU2MzcwXHU2MzcyXHU2Mzcz'@; put 'XHU2Mzc0XHU2Mzc1XHU2Mzc4XHU2Mzc5XHU2MzdjXHU2MzdkXHU2MzdlXHU2MzdmXHU2MzgxXHU2MzgzXHU2Mzg0XHU2Mzg1XHU2Mzg2XHU2MzhiXHU2MzhkXHU2MzkxXHU2MzkzXHU2Mzk0XHU2Mzk1XHU2Mzk3XHU2Mzk5XHU2MzlhXHU2MzliXHU2MzljXHU2MzlkXHU2MzllXHU2MzlmXHU2'@; put 'M2ExXHU2M2E0XHU2M2E2XHU2M2FiXHU2M2FmXHU2M2IxXHU2M2IyXHU2M2I1XHU2M2I2XHU2M2I5XHU2M2JiXHU2M2JkXHU2M2JmXHU2M2MwXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTQ2XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNDZdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTQ2'@; put 'XVtwXV09MzczNzYrcCxiWzM3Mzc2K3BdPV9bMTQ2XVtwXSk7Zm9yKF9bMTQ3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2M2MxXHU2M2MyXHU2M2MzXHU2M2M1XHU2M2M3XHU2M2M4XHU2M2NhXHU2M2NiXHU2M2NjXHU2M2QxXHU2'@; put 'M2QzXHU2M2Q0XHU2M2Q1XHU2M2Q3XHU2M2Q4XHU2M2Q5XHU2M2RhXHU2M2RiXHU2M2RjXHU2M2RkXHU2M2RmXHU2M2UyXHU2M2U0XHU2M2U1XHU2M2U2XHU2M2U3XHU2M2U4XHU2M2ViXHU2M2VjXHU2M2VlXHU2M2VmXHU2M2YwXHU2M2YxXHU2M2YzXHU2M2Y1XHU2M2Y3XHU2M2Y5XHU2M2Zh'@; put 'XHU2M2ZiXHU2M2ZjXHU2M2ZlXHU2NDAzXHU2NDA0XHU2NDA2XHU2NDA3XHU2NDA4XHU2NDA5XHU2NDBhXHU2NDBkXHU2NDBlXHU2NDExXHU2NDEyXHU2NDE1XHU2NDE2XHU2NDE3XHU2NDE4XHU2NDE5XHU2NDFhXHU2NDFkXHU2NDFmXHU2NDIyXHU2NDIzXHU2NDI0XHVmZmZkXHU2NDI1XHU2'@; put 'NDI3XHU2NDI4XHU2NDI5XHU2NDJiXHU2NDJlXHU2NDJmXHU2NDMwXHU2NDMxXHU2NDMyXHU2NDMzXHU2NDM1XHU2NDM2XHU2NDM3XHU2NDM4XHU2NDM5XHU2NDNiXHU2NDNjXHU2NDNlXHU2NDQwXHU2NDQyXHU2NDQzXHU2NDQ5XHU2NDRiXHU2NDRjXHU2NDRkXHU2NDRlXHU2NDRmXHU2NDUw'@; put 'XHU2NDUxXHU2NDUzXHU2NDU1XHU2NDU2XHU2NDU3XHU2NDU5XHU2NDVhXHU2NDViXHU2NDVjXHU2NDVkXHU2NDVmXHU2NDYwXHU2NDYxXHU2NDYyXHU2NDYzXHU2NDY0XHU2NDY1XHU2NDY2XHU2NDY4XHU2NDZhXHU2NDZiXHU2NDZjXHU2NDZlXHU2NDZmXHU2NDcwXHU2NDcxXHU2NDcyXHU2'@; put 'NDczXHU2NDc0XHU2NDc1XHU2NDc2XHU2NDc3XHU2NDdiXHU2NDdjXHU2NDdkXHU2NDdlXHU2NDdmXHU2NDgwXHU2NDgxXHU2NDgzXHU2NDg2XHU2NDg4XHU2NDg5XHU2NDhhXHU2NDhiXHU2NDhjXHU2NDhkXHU2NDhlXHU2NDhmXHU2NDkwXHU2NDkzXHU2NDk0XHU2NDk3XHU2NDk4XHU2NDlh'@; put 'XHU2NDliXHU2NDljXHU2NDlkXHU2NDlmXHU2NGEwXHU2NGExXHU2NGEyXHU2NGEzXHU2NGE1XHU2NGE2XHU2NGE3XHU2NGE4XHU2NGFhXHU2NGFiXHU2NGFmXHU2NGIxXHU2NGIyXHU2NGIzXHU2NGI0XHU2NGI2XHU2NGI5XHU2NGJiXHU2NGJkXHU2NGJlXHU2NGJmXHU2NGMxXHU2NGMzXHU2'@; put 'NGM0XHU2NGM2XHU2NGM3XHU2NGM4XHU2NGM5XHU2NGNhXHU2NGNiXHU2NGNjXHU2NGNmXHU2NGQxXHU2NGQzXHU2NGQ0XHU2NGQ1XHU2NGQ2XHU2NGQ5XHU2NGRhXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTQ3XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNDddW3BdLmNoYXJDb2RlQXQo'@; put 'MCkmJihEW19bMTQ3XVtwXV09Mzc2MzIrcCxiWzM3NjMyK3BdPV9bMTQ3XVtwXSk7Zm9yKF9bMTQ4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2NGRiXHU2NGRjXHU2NGRkXHU2NGRmXHU2NGUwXHU2NGUxXHU2NGUzXHU2NGU1XHU2'@; put 'NGU3XHU2NGU4XHU2NGU5XHU2NGVhXHU2NGViXHU2NGVjXHU2NGVkXHU2NGVlXHU2NGVmXHU2NGYwXHU2NGYxXHU2NGYyXHU2NGYzXHU2NGY0XHU2NGY1XHU2NGY2XHU2NGY3XHU2NGY4XHU2NGY5XHU2NGZhXHU2NGZiXHU2NGZjXHU2NGZkXHU2NGZlXHU2NGZmXHU2NTAxXHU2NTAyXHU2NTAz'@; put 'XHU2NTA0XHU2NTA1XHU2NTA2XHU2NTA3XHU2NTA4XHU2NTBhXHU2NTBiXHU2NTBjXHU2NTBkXHU2NTBlXHU2NTBmXHU2NTEwXHU2NTExXHU2NTEzXHU2NTE0XHU2NTE1XHU2NTE2XHU2NTE3XHU2NTE5XHU2NTFhXHU2NTFiXHU2NTFjXHU2NTFkXHU2NTFlXHU2NTFmXHU2NTIwXHU2NTIxXHVm'@; put 'ZmZkXHU2NTIyXHU2NTIzXHU2NTI0XHU2NTI2XHU2NTI3XHU2NTI4XHU2NTI5XHU2NTJhXHU2NTJjXHU2NTJkXHU2NTMwXHU2NTMxXHU2NTMyXHU2NTMzXHU2NTM3XHU2NTNhXHU2NTNjXHU2NTNkXHU2NTQwXHU2NTQxXHU2NTQyXHU2NTQzXHU2NTQ0XHU2NTQ2XHU2NTQ3XHU2NTRhXHU2NTRi'@; put 'XHU2NTRkXHU2NTRlXHU2NTUwXHU2NTUyXHU2NTUzXHU2NTU0XHU2NTU3XHU2NTU4XHU2NTVhXHU2NTVjXHU2NTVmXHU2NTYwXHU2NTYxXHU2NTY0XHU2NTY1XHU2NTY3XHU2NTY4XHU2NTY5XHU2NTZhXHU2NTZkXHU2NTZlXHU2NTZmXHU2NTcxXHU2NTczXHU2NTc1XHU2NTc2XHU2NTc4XHU2'@; put 'NTc5XHU2NTdhXHU2NTdiXHU2NTdjXHU2NTdkXHU2NTdlXHU2NTdmXHU2NTgwXHU2NTgxXHU2NTgyXHU2NTgzXHU2NTg0XHU2NTg1XHU2NTg2XHU2NTg4XHU2NTg5XHU2NThhXHU2NThkXHU2NThlXHU2NThmXHU2NTkyXHU2NTk0XHU2NTk1XHU2NTk2XHU2NTk4XHU2NTlhXHU2NTlkXHU2NTll'@; put 'XHU2NWEwXHU2NWEyXHU2NWEzXHU2NWE2XHU2NWE4XHU2NWFhXHU2NWFjXHU2NWFlXHU2NWIxXHU2NWIyXHU2NWIzXHU2NWI0XHU2NWI1XHU2NWI2XHU2NWI3XHU2NWI4XHU2NWJhXHU2NWJiXHU2NWJlXHU2NWJmXHU2NWMwXHU2NWMyXHU2NWM3XHU2NWM4XHU2NWM5XHU2NWNhXHU2NWNkXHU2'@; put 'NWQwXHU2NWQxXHU2NWQzXHU2NWQ0XHU2NWQ1XHU2NWQ4XHU2NWQ5XHU2NWRhXHU2NWRiXHU2NWRjXHU2NWRkXHU2NWRlXHU2NWRmXHU2NWUxXHU2NWUzXHU2NWU0XHU2NWVhXHU2NWViXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTQ4XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNDhdW3Bd'@; put 'LmNoYXJDb2RlQXQoMCkmJihEW19bMTQ4XVtwXV09Mzc4ODgrcCxiWzM3ODg4K3BdPV9bMTQ4XVtwXSk7Zm9yKF9bMTQ5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2NWYyXHU2NWYzXHU2NWY0XHU2NWY1XHU2NWY4XHU2NWY5XHU2'@; put 'NWZiXHU2NWZjXHU2NWZkXHU2NWZlXHU2NWZmXHU2NjAxXHU2NjA0XHU2NjA1XHU2NjA3XHU2NjA4XHU2NjA5XHU2NjBiXHU2NjBkXHU2NjEwXHU2NjExXHU2NjEyXHU2NjE2XHU2NjE3XHU2NjE4XHU2NjFhXHU2NjFiXHU2NjFjXHU2NjFlXHU2NjIxXHU2NjIyXHU2NjIzXHU2NjI0XHU2NjI2'@; put 'XHU2NjI5XHU2NjJhXHU2NjJiXHU2NjJjXHU2NjJlXHU2NjMwXHU2NjMyXHU2NjMzXHU2NjM3XHU2NjM4XHU2NjM5XHU2NjNhXHU2NjNiXHU2NjNkXHU2NjNmXHU2NjQwXHU2NjQyXHU2NjQ0XHU2NjQ1XHU2NjQ2XHU2NjQ3XHU2NjQ4XHU2NjQ5XHU2NjRhXHU2NjRkXHU2NjRlXHU2NjUwXHU2'@; put 'NjUxXHU2NjU4XHVmZmZkXHU2NjU5XHU2NjViXHU2NjVjXHU2NjVkXHU2NjVlXHU2NjYwXHU2NjYyXHU2NjYzXHU2NjY1XHU2NjY3XHU2NjY5XHU2NjZhXHU2NjZiXHU2NjZjXHU2NjZkXHU2NjcxXHU2NjcyXHU2NjczXHU2Njc1XHU2Njc4XHU2Njc5XHU2NjdiXHU2NjdjXHU2NjdkXHU2Njdm'@; put 'XHU2NjgwXHU2NjgxXHU2NjgzXHU2Njg1XHU2Njg2XHU2Njg4XHU2Njg5XHU2NjhhXHU2NjhiXHU2NjhkXHU2NjhlXHU2NjhmXHU2NjkwXHU2NjkyXHU2NjkzXHU2Njk0XHU2Njk1XHU2Njk4XHU2Njk5XHU2NjlhXHU2NjliXHU2NjljXHU2NjllXHU2NjlmXHU2NmEwXHU2NmExXHU2NmEyXHU2'@; put 'NmEzXHU2NmE0XHU2NmE1XHU2NmE2XHU2NmE5XHU2NmFhXHU2NmFiXHU2NmFjXHU2NmFkXHU2NmFmXHU2NmIwXHU2NmIxXHU2NmIyXHU2NmIzXHU2NmI1XHU2NmI2XHU2NmI3XHU2NmI4XHU2NmJhXHU2NmJiXHU2NmJjXHU2NmJkXHU2NmJmXHU2NmMwXHU2NmMxXHU2NmMyXHU2NmMzXHU2NmM0'@; put 'XHU2NmM1XHU2NmM2XHU2NmM3XHU2NmM4XHU2NmM5XHU2NmNhXHU2NmNiXHU2NmNjXHU2NmNkXHU2NmNlXHU2NmNmXHU2NmQwXHU2NmQxXHU2NmQyXHU2NmQzXHU2NmQ0XHU2NmQ1XHU2NmQ2XHU2NmQ3XHU2NmQ4XHU2NmRhXHU2NmRlXHU2NmRmXHU2NmUwXHU2NmUxXHU2NmUyXHU2NmUzXHU2'@; put 'NmU0XHU2NmU1XHU2NmU3XHU2NmU4XHU2NmVhXHU2NmViXHU2NmVjXHU2NmVkXHU2NmVlXHU2NmVmXHU2NmYxXHU2NmY1XHU2NmY2XHU2NmY4XHU2NmZhXHU2NmZiXHU2NmZkXHU2NzAxXHU2NzAyXHU2NzAzXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTQ5XS5sZW5ndGg7KytwKTY1NTMz'@; put 'IT09X1sxNDldW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTQ5XVtwXV09MzgxNDQrcCxiWzM4MTQ0K3BdPV9bMTQ5XVtwXSk7Zm9yKF9bMTUwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2NzA0XHU2NzA1XHU2NzA2XHU2NzA3XHU2'@; put 'NzBjXHU2NzBlXHU2NzBmXHU2NzExXHU2NzEyXHU2NzEzXHU2NzE2XHU2NzE4XHU2NzE5XHU2NzFhXHU2NzFjXHU2NzFlXHU2NzIwXHU2NzIxXHU2NzIyXHU2NzIzXHU2NzI0XHU2NzI1XHU2NzI3XHU2NzI5XHU2NzJlXHU2NzMwXHU2NzMyXHU2NzMzXHU2NzM2XHU2NzM3XHU2NzM4XHU2NzM5'@; put 'XHU2NzNiXHU2NzNjXHU2NzNlXHU2NzNmXHU2NzQxXHU2NzQ0XHU2NzQ1XHU2NzQ3XHU2NzRhXHU2NzRiXHU2NzRkXHU2NzUyXHU2NzU0XHU2NzU1XHU2NzU3XHU2NzU4XHU2NzU5XHU2NzVhXHU2NzViXHU2NzVkXHU2NzYyXHU2NzYzXHU2NzY0XHU2NzY2XHU2NzY3XHU2NzZiXHU2NzZjXHU2'@; put 'NzZlXHU2NzcxXHU2Nzc0XHU2Nzc2XHVmZmZkXHU2Nzc4XHU2Nzc5XHU2NzdhXHU2NzdiXHU2NzdkXHU2NzgwXHU2NzgyXHU2NzgzXHU2Nzg1XHU2Nzg2XHU2Nzg4XHU2NzhhXHU2NzhjXHU2NzhkXHU2NzhlXHU2NzhmXHU2NzkxXHU2NzkyXHU2NzkzXHU2Nzk0XHU2Nzk2XHU2Nzk5XHU2Nzli'@; put 'XHU2NzlmXHU2N2EwXHU2N2ExXHU2N2E0XHU2N2E2XHU2N2E5XHU2N2FjXHU2N2FlXHU2N2IxXHU2N2IyXHU2N2I0XHU2N2I5XHU2N2JhXHU2N2JiXHU2N2JjXHU2N2JkXHU2N2JlXHU2N2JmXHU2N2MwXHU2N2MyXHU2N2M1XHU2N2M2XHU2N2M3XHU2N2M4XHU2N2M5XHU2N2NhXHU2N2NiXHU2'@; put 'N2NjXHU2N2NkXHU2N2NlXHU2N2Q1XHU2N2Q2XHU2N2Q3XHU2N2RiXHU2N2RmXHU2N2UxXHU2N2UzXHU2N2U0XHU2N2U2XHU2N2U3XHU2N2U4XHU2N2VhXHU2N2ViXHU2N2VkXHU2N2VlXHU2N2YyXHU2N2Y1XHU2N2Y2XHU2N2Y3XHU2N2Y4XHU2N2Y5XHU2N2ZhXHU2N2ZiXHU2N2ZjXHU2N2Zl'@; put 'XHU2ODAxXHU2ODAyXHU2ODAzXHU2ODA0XHU2ODA2XHU2ODBkXHU2ODEwXHU2ODEyXHU2ODE0XHU2ODE1XHU2ODE4XHU2ODE5XHU2ODFhXHU2ODFiXHU2ODFjXHU2ODFlXHU2ODFmXHU2ODIwXHU2ODIyXHU2ODIzXHU2ODI0XHU2ODI1XHU2ODI2XHU2ODI3XHU2ODI4XHU2ODJiXHU2ODJjXHU2'@; put 'ODJkXHU2ODJlXHU2ODJmXHU2ODMwXHU2ODMxXHU2ODM0XHU2ODM1XHU2ODM2XHU2ODNhXHU2ODNiXHU2ODNmXHU2ODQ3XHU2ODRiXHU2ODRkXHU2ODRmXHU2ODUyXHU2ODU2XHU2ODU3XHU2ODU4XHU2ODU5XHU2ODVhXHU2ODViXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTUwXS5sZW5n'@; put 'dGg7KytwKTY1NTMzIT09X1sxNTBdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTUwXVtwXV09Mzg0MDArcCxiWzM4NDAwK3BdPV9bMTUwXVtwXSk7Zm9yKF9bMTUxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ODVjXHU2ODVkXHU2'@; put 'ODVlXHU2ODVmXHU2ODZhXHU2ODZjXHU2ODZkXHU2ODZlXHU2ODZmXHU2ODcwXHU2ODcxXHU2ODcyXHU2ODczXHU2ODc1XHU2ODc4XHU2ODc5XHU2ODdhXHU2ODdiXHU2ODdjXHU2ODdkXHU2ODdlXHU2ODdmXHU2ODgwXHU2ODgyXHU2ODg0XHU2ODg3XHU2ODg4XHU2ODg5XHU2ODhhXHU2ODhi'@; put 'XHU2ODhjXHU2ODhkXHU2ODhlXHU2ODkwXHU2ODkxXHU2ODkyXHU2ODk0XHU2ODk1XHU2ODk2XHU2ODk4XHU2ODk5XHU2ODlhXHU2ODliXHU2ODljXHU2ODlkXHU2ODllXHU2ODlmXHU2OGEwXHU2OGExXHU2OGEzXHU2OGE0XHU2OGE1XHU2OGE5XHU2OGFhXHU2OGFiXHU2OGFjXHU2OGFlXHU2'@; put 'OGIxXHU2OGIyXHU2OGI0XHU2OGI2XHU2OGI3XHU2OGI4XHVmZmZkXHU2OGI5XHU2OGJhXHU2OGJiXHU2OGJjXHU2OGJkXHU2OGJlXHU2OGJmXHU2OGMxXHU2OGMzXHU2OGM0XHU2OGM1XHU2OGM2XHU2OGM3XHU2OGM4XHU2OGNhXHU2OGNjXHU2OGNlXHU2OGNmXHU2OGQwXHU2OGQxXHU2OGQz'@; put 'XHU2OGQ0XHU2OGQ2XHU2OGQ3XHU2OGQ5XHU2OGRiXHU2OGRjXHU2OGRkXHU2OGRlXHU2OGRmXHU2OGUxXHU2OGUyXHU2OGU0XHU2OGU1XHU2OGU2XHU2OGU3XHU2OGU4XHU2OGU5XHU2OGVhXHU2OGViXHU2OGVjXHU2OGVkXHU2OGVmXHU2OGYyXHU2OGYzXHU2OGY0XHU2OGY2XHU2OGY3XHU2'@; put 'OGY4XHU2OGZiXHU2OGZkXHU2OGZlXHU2OGZmXHU2OTAwXHU2OTAyXHU2OTAzXHU2OTA0XHU2OTA2XHU2OTA3XHU2OTA4XHU2OTA5XHU2OTBhXHU2OTBjXHU2OTBmXHU2OTExXHU2OTEzXHU2OTE0XHU2OTE1XHU2OTE2XHU2OTE3XHU2OTE4XHU2OTE5XHU2OTFhXHU2OTFiXHU2OTFjXHU2OTFk'@; put 'XHU2OTFlXHU2OTIxXHU2OTIyXHU2OTIzXHU2OTI1XHU2OTI2XHU2OTI3XHU2OTI4XHU2OTI5XHU2OTJhXHU2OTJiXHU2OTJjXHU2OTJlXHU2OTJmXHU2OTMxXHU2OTMyXHU2OTMzXHU2OTM1XHU2OTM2XHU2OTM3XHU2OTM4XHU2OTNhXHU2OTNiXHU2OTNjXHU2OTNlXHU2OTQwXHU2OTQxXHU2'@; put 'OTQzXHU2OTQ0XHU2OTQ1XHU2OTQ2XHU2OTQ3XHU2OTQ4XHU2OTQ5XHU2OTRhXHU2OTRiXHU2OTRjXHU2OTRkXHU2OTRlXHU2OTRmXHU2OTUwXHU2OTUxXHU2OTUyXHU2OTUzXHU2OTU1XHU2OTU2XHU2OTU4XHU2OTU5XHU2OTViXHU2OTVjXHU2OTVmXHVmZmZkIi5zcGxpdCgiIikscD0wO3Ah'@; put 'PV9bMTUxXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNTFdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTUxXVtwXV09Mzg2NTYrcCxiWzM4NjU2K3BdPV9bMTUxXVtwXSk7Zm9yKF9bMTUyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2'@; put 'OTYxXHU2OTYyXHU2OTY0XHU2OTY1XHU2OTY3XHU2OTY4XHU2OTY5XHU2OTZhXHU2OTZjXHU2OTZkXHU2OTZmXHU2OTcwXHU2OTcyXHU2OTczXHU2OTc0XHU2OTc1XHU2OTc2XHU2OTdhXHU2OTdiXHU2OTdkXHU2OTdlXHU2OTdmXHU2OTgxXHU2OTgzXHU2OTg1XHU2OThhXHU2OThiXHU2OThj'@; put 'XHU2OThlXHU2OThmXHU2OTkwXHU2OTkxXHU2OTkyXHU2OTkzXHU2OTk2XHU2OTk3XHU2OTk5XHU2OTlhXHU2OTlkXHU2OTllXHU2OTlmXHU2OWEwXHU2OWExXHU2OWEyXHU2OWEzXHU2OWE0XHU2OWE1XHU2OWE2XHU2OWE5XHU2OWFhXHU2OWFjXHU2OWFlXHU2OWFmXHU2OWIwXHU2OWIyXHU2'@; put 'OWIzXHU2OWI1XHU2OWI2XHU2OWI4XHU2OWI5XHU2OWJhXHU2OWJjXHU2OWJkXHVmZmZkXHU2OWJlXHU2OWJmXHU2OWMwXHU2OWMyXHU2OWMzXHU2OWM0XHU2OWM1XHU2OWM2XHU2OWM3XHU2OWM4XHU2OWM5XHU2OWNiXHU2OWNkXHU2OWNmXHU2OWQxXHU2OWQyXHU2OWQzXHU2OWQ1XHU2OWQ2'@; put 'XHU2OWQ3XHU2OWQ4XHU2OWQ5XHU2OWRhXHU2OWRjXHU2OWRkXHU2OWRlXHU2OWUxXHU2OWUyXHU2OWUzXHU2OWU0XHU2OWU1XHU2OWU2XHU2OWU3XHU2OWU4XHU2OWU5XHU2OWVhXHU2OWViXHU2OWVjXHU2OWVlXHU2OWVmXHU2OWYwXHU2OWYxXHU2OWYzXHU2OWY0XHU2OWY1XHU2OWY2XHU2'@; put 'OWY3XHU2OWY4XHU2OWY5XHU2OWZhXHU2OWZiXHU2OWZjXHU2OWZlXHU2YTAwXHU2YTAxXHU2YTAyXHU2YTAzXHU2YTA0XHU2YTA1XHU2YTA2XHU2YTA3XHU2YTA4XHU2YTA5XHU2YTBiXHU2YTBjXHU2YTBkXHU2YTBlXHU2YTBmXHU2YTEwXHU2YTExXHU2YTEyXHU2YTEzXHU2YTE0XHU2YTE1'@; put 'XHU2YTE2XHU2YTE5XHU2YTFhXHU2YTFiXHU2YTFjXHU2YTFkXHU2YTFlXHU2YTIwXHU2YTIyXHU2YTIzXHU2YTI0XHU2YTI1XHU2YTI2XHU2YTI3XHU2YTI5XHU2YTJiXHU2YTJjXHU2YTJkXHU2YTJlXHU2YTMwXHU2YTMyXHU2YTMzXHU2YTM0XHU2YTM2XHU2YTM3XHU2YTM4XHU2YTM5XHU2'@; put 'YTNhXHU2YTNiXHU2YTNjXHU2YTNmXHU2YTQwXHU2YTQxXHU2YTQyXHU2YTQzXHU2YTQ1XHU2YTQ2XHU2YTQ4XHU2YTQ5XHU2YTRhXHU2YTRiXHU2YTRjXHU2YTRkXHU2YTRlXHU2YTRmXHU2YTUxXHU2YTUyXHU2YTUzXHU2YTU0XHU2YTU1XHU2YTU2XHU2YTU3XHU2YTVhXHVmZmZkIi5zcGxp'@; put 'dCgiIikscD0wO3AhPV9bMTUyXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNTJdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTUyXVtwXV09Mzg5MTIrcCxiWzM4OTEyK3BdPV9bMTUyXVtwXSk7Zm9yKF9bMTUzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHU2YTVjXHU2YTVkXHU2YTVlXHU2YTVmXHU2YTYwXHU2YTYyXHU2YTYzXHU2YTY0XHU2YTY2XHU2YTY3XHU2YTY4XHU2YTY5XHU2YTZhXHU2YTZiXHU2YTZjXHU2YTZkXHU2YTZlXHU2YTZmXHU2YTcwXHU2YTcyXHU2YTczXHU2YTc0XHU2YTc1XHU2YTc2XHU2YTc3XHU2YTc4'@; put 'XHU2YTdhXHU2YTdiXHU2YTdkXHU2YTdlXHU2YTdmXHU2YTgxXHU2YTgyXHU2YTgzXHU2YTg1XHU2YTg2XHU2YTg3XHU2YTg4XHU2YTg5XHU2YThhXHU2YThiXHU2YThjXHU2YThkXHU2YThmXHU2YTkyXHU2YTkzXHU2YTk0XHU2YTk1XHU2YTk2XHU2YTk4XHU2YTk5XHU2YTlhXHU2YTliXHU2'@; put 'YTljXHU2YTlkXHU2YTllXHU2YTlmXHU2YWExXHU2YWEyXHU2YWEzXHU2YWE0XHU2YWE1XHU2YWE2XHVmZmZkXHU2YWE3XHU2YWE4XHU2YWFhXHU2YWFkXHU2YWFlXHU2YWFmXHU2YWIwXHU2YWIxXHU2YWIyXHU2YWIzXHU2YWI0XHU2YWI1XHU2YWI2XHU2YWI3XHU2YWI4XHU2YWI5XHU2YWJh'@; put 'XHU2YWJiXHU2YWJjXHU2YWJkXHU2YWJlXHU2YWJmXHU2YWMwXHU2YWMxXHU2YWMyXHU2YWMzXHU2YWM0XHU2YWM1XHU2YWM2XHU2YWM3XHU2YWM4XHU2YWM5XHU2YWNhXHU2YWNiXHU2YWNjXHU2YWNkXHU2YWNlXHU2YWNmXHU2YWQwXHU2YWQxXHU2YWQyXHU2YWQzXHU2YWQ0XHU2YWQ1XHU2'@; put 'YWQ2XHU2YWQ3XHU2YWQ4XHU2YWQ5XHU2YWRhXHU2YWRiXHU2YWRjXHU2YWRkXHU2YWRlXHU2YWRmXHU2YWUwXHU2YWUxXHU2YWUyXHU2YWUzXHU2YWU0XHU2YWU1XHU2YWU2XHU2YWU3XHU2YWU4XHU2YWU5XHU2YWVhXHU2YWViXHU2YWVjXHU2YWVkXHU2YWVlXHU2YWVmXHU2YWYwXHU2YWYx'@; put 'XHU2YWYyXHU2YWYzXHU2YWY0XHU2YWY1XHU2YWY2XHU2YWY3XHU2YWY4XHU2YWY5XHU2YWZhXHU2YWZiXHU2YWZjXHU2YWZkXHU2YWZlXHU2YWZmXHU2YjAwXHU2YjAxXHU2YjAyXHU2YjAzXHU2YjA0XHU2YjA1XHU2YjA2XHU2YjA3XHU2YjA4XHU2YjA5XHU2YjBhXHU2YjBiXHU2YjBjXHU2'@; put 'YjBkXHU2YjBlXHU2YjBmXHU2YjEwXHU2YjExXHU2YjEyXHU2YjEzXHU2YjE0XHU2YjE1XHU2YjE2XHU2YjE3XHU2YjE4XHU2YjE5XHU2YjFhXHU2YjFiXHU2YjFjXHU2YjFkXHU2YjFlXHU2YjFmXHU2YjI1XHU2YjI2XHU2YjI4XHU2YjI5XHU2YjJhXHU2YjJiXHU2YjJjXHU2YjJkXHU2YjJl'@; put 'XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTUzXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNTNdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTUzXVtwXV09MzkxNjgrcCxiWzM5MTY4K3BdPV9bMTUzXVtwXSk7Zm9yKF9bMTU0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2YjJmXHU2YjMwXHU2YjMxXHU2YjMzXHU2YjM0XHU2YjM1XHU2YjM2XHU2YjM4XHU2YjNiXHU2YjNjXHU2YjNkXHU2YjNmXHU2YjQwXHU2YjQxXHU2YjQyXHU2YjQ0XHU2YjQ1XHU2YjQ4XHU2YjRhXHU2YjRiXHU2YjRkXHU2YjRlXHU2YjRmXHU2YjUw'@; put 'XHU2YjUxXHU2YjUyXHU2YjUzXHU2YjU0XHU2YjU1XHU2YjU2XHU2YjU3XHU2YjU4XHU2YjVhXHU2YjViXHU2YjVjXHU2YjVkXHU2YjVlXHU2YjVmXHU2YjYwXHU2YjYxXHU2YjY4XHU2YjY5XHU2YjZiXHU2YjZjXHU2YjZkXHU2YjZlXHU2YjZmXHU2YjcwXHU2YjcxXHU2YjcyXHU2YjczXHU2'@; put 'Yjc0XHU2Yjc1XHU2Yjc2XHU2Yjc3XHU2Yjc4XHU2YjdhXHU2YjdkXHU2YjdlXHU2YjdmXHU2YjgwXHU2Yjg1XHU2Yjg4XHVmZmZkXHU2YjhjXHU2YjhlXHU2YjhmXHU2YjkwXHU2YjkxXHU2Yjk0XHU2Yjk1XHU2Yjk3XHU2Yjk4XHU2Yjk5XHU2YjljXHU2YjlkXHU2YjllXHU2YjlmXHU2YmEw'@; put 'XHU2YmEyXHU2YmEzXHU2YmE0XHU2YmE1XHU2YmE2XHU2YmE3XHU2YmE4XHU2YmE5XHU2YmFiXHU2YmFjXHU2YmFkXHU2YmFlXHU2YmFmXHU2YmIwXHU2YmIxXHU2YmIyXHU2YmI2XHU2YmI4XHU2YmI5XHU2YmJhXHU2YmJiXHU2YmJjXHU2YmJkXHU2YmJlXHU2YmMwXHU2YmMzXHU2YmM0XHU2'@; put 'YmM2XHU2YmM3XHU2YmM4XHU2YmM5XHU2YmNhXHU2YmNjXHU2YmNlXHU2YmQwXHU2YmQxXHU2YmQ4XHU2YmRhXHU2YmRjXHU2YmRkXHU2YmRlXHU2YmRmXHU2YmUwXHU2YmUyXHU2YmUzXHU2YmU0XHU2YmU1XHU2YmU2XHU2YmU3XHU2YmU4XHU2YmU5XHU2YmVjXHU2YmVkXHU2YmVlXHU2YmYw'@; put 'XHU2YmYxXHU2YmYyXHU2YmY0XHU2YmY2XHU2YmY3XHU2YmY4XHU2YmZhXHU2YmZiXHU2YmZjXHU2YmZlXHU2YmZmXHU2YzAwXHU2YzAxXHU2YzAyXHU2YzAzXHU2YzA0XHU2YzA4XHU2YzA5XHU2YzBhXHU2YzBiXHU2YzBjXHU2YzBlXHU2YzEyXHU2YzE3XHU2YzFjXHU2YzFkXHU2YzFlXHU2'@; put 'YzIwXHU2YzIzXHU2YzI1XHU2YzJiXHU2YzJjXHU2YzJkXHU2YzMxXHU2YzMzXHU2YzM2XHU2YzM3XHU2YzM5XHU2YzNhXHU2YzNiXHU2YzNjXHU2YzNlXHU2YzNmXHU2YzQzXHU2YzQ0XHU2YzQ1XHU2YzQ4XHU2YzRiXHU2YzRjXHU2YzRkXHU2YzRlXHU2YzRmXHU2YzUxXHU2YzUyXHU2YzUz'@; put 'XHU2YzU2XHU2YzU4XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTU0XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNTRdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTU0XVtwXV09Mzk0MjQrcCxiWzM5NDI0K3BdPV9bMTU0XVtwXSk7Zm9yKF9bMTU1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2YzU5XHU2YzVhXHU2YzYyXHU2YzYzXHU2YzY1XHU2YzY2XHU2YzY3XHU2YzZiXHU2YzZjXHU2YzZkXHU2YzZlXHU2YzZmXHU2YzcxXHU2YzczXHU2Yzc1XHU2Yzc3XHU2Yzc4XHU2YzdhXHU2YzdiXHU2YzdjXHU2YzdmXHU2Yzgw'@; put 'XHU2Yzg0XHU2Yzg3XHU2YzhhXHU2YzhiXHU2YzhkXHU2YzhlXHU2YzkxXHU2YzkyXHU2Yzk1XHU2Yzk2XHU2Yzk3XHU2Yzk4XHU2YzlhXHU2YzljXHU2YzlkXHU2YzllXHU2Y2EwXHU2Y2EyXHU2Y2E4XHU2Y2FjXHU2Y2FmXHU2Y2IwXHU2Y2I0XHU2Y2I1XHU2Y2I2XHU2Y2I3XHU2Y2JhXHU2'@; put 'Y2MwXHU2Y2MxXHU2Y2MyXHU2Y2MzXHU2Y2M2XHU2Y2M3XHU2Y2M4XHU2Y2NiXHU2Y2NkXHU2Y2NlXHU2Y2NmXHU2Y2QxXHU2Y2QyXHU2Y2Q4XHVmZmZkXHU2Y2Q5XHU2Y2RhXHU2Y2RjXHU2Y2RkXHU2Y2RmXHU2Y2U0XHU2Y2U2XHU2Y2U3XHU2Y2U5XHU2Y2VjXHU2Y2VkXHU2Y2YyXHU2Y2Y0'@; put 'XHU2Y2Y5XHU2Y2ZmXHU2ZDAwXHU2ZDAyXHU2ZDAzXHU2ZDA1XHU2ZDA2XHU2ZDA4XHU2ZDA5XHU2ZDBhXHU2ZDBkXHU2ZDBmXHU2ZDEwXHU2ZDExXHU2ZDEzXHU2ZDE0XHU2ZDE1XHU2ZDE2XHU2ZDE4XHU2ZDFjXHU2ZDFkXHU2ZDFmXHU2ZDIwXHU2ZDIxXHU2ZDIyXHU2ZDIzXHU2ZDI0XHU2'@; put 'ZDI2XHU2ZDI4XHU2ZDI5XHU2ZDJjXHU2ZDJkXHU2ZDJmXHU2ZDMwXHU2ZDM0XHU2ZDM2XHU2ZDM3XHU2ZDM4XHU2ZDNhXHU2ZDNmXHU2ZDQwXHU2ZDQyXHU2ZDQ0XHU2ZDQ5XHU2ZDRjXHU2ZDUwXHU2ZDU1XHU2ZDU2XHU2ZDU3XHU2ZDU4XHU2ZDViXHU2ZDVkXHU2ZDVmXHU2ZDYxXHU2ZDYy'@; put 'XHU2ZDY0XHU2ZDY1XHU2ZDY3XHU2ZDY4XHU2ZDZiXHU2ZDZjXHU2ZDZkXHU2ZDcwXHU2ZDcxXHU2ZDcyXHU2ZDczXHU2ZDc1XHU2ZDc2XHU2ZDc5XHU2ZDdhXHU2ZDdiXHU2ZDdkXHU2ZDdlXHU2ZDdmXHU2ZDgwXHU2ZDgxXHU2ZDgzXHU2ZDg0XHU2ZDg2XHU2ZDg3XHU2ZDhhXHU2ZDhiXHU2'@; put 'ZDhkXHU2ZDhmXHU2ZDkwXHU2ZDkyXHU2ZDk2XHU2ZDk3XHU2ZDk4XHU2ZDk5XHU2ZDlhXHU2ZDljXHU2ZGEyXHU2ZGE1XHU2ZGFjXHU2ZGFkXHU2ZGIwXHU2ZGIxXHU2ZGIzXHU2ZGI0XHU2ZGI2XHU2ZGI3XHU2ZGI5XHU2ZGJhXHU2ZGJiXHU2ZGJjXHU2ZGJkXHU2ZGJlXHU2ZGMxXHU2ZGMy'@; put 'XHU2ZGMzXHU2ZGM4XHU2ZGM5XHU2ZGNhXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTU1XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNTVdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTU1XVtwXV09Mzk2ODArcCxiWzM5NjgwK3BdPV9bMTU1XVtwXSk7Zm9yKF9bMTU2XT0iXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZGNkXHU2ZGNlXHU2ZGNmXHU2ZGQwXHU2ZGQyXHU2ZGQzXHU2ZGQ0XHU2ZGQ1XHU2ZGQ3XHU2ZGRhXHU2ZGRiXHU2ZGRjXHU2ZGRmXHU2ZGUyXHU2ZGUzXHU2ZGU1XHU2ZGU3XHU2ZGU4XHU2ZGU5XHU2ZGVh'@; put 'XHU2ZGVkXHU2ZGVmXHU2ZGYwXHU2ZGYyXHU2ZGY0XHU2ZGY1XHU2ZGY2XHU2ZGY4XHU2ZGZhXHU2ZGZkXHU2ZGZlXHU2ZGZmXHU2ZTAwXHU2ZTAxXHU2ZTAyXHU2ZTAzXHU2ZTA0XHU2ZTA2XHU2ZTA3XHU2ZTA4XHU2ZTA5XHU2ZTBiXHU2ZTBmXHU2ZTEyXHU2ZTEzXHU2ZTE1XHU2ZTE4XHU2'@; put 'ZTE5XHU2ZTFiXHU2ZTFjXHU2ZTFlXHU2ZTFmXHU2ZTIyXHU2ZTI2XHU2ZTI3XHU2ZTI4XHU2ZTJhXHU2ZTJjXHU2ZTJlXHU2ZTMwXHU2ZTMxXHU2ZTMzXHU2ZTM1XHVmZmZkXHU2ZTM2XHU2ZTM3XHU2ZTM5XHU2ZTNiXHU2ZTNjXHU2ZTNkXHU2ZTNlXHU2ZTNmXHU2ZTQwXHU2ZTQxXHU2ZTQy'@; put 'XHU2ZTQ1XHU2ZTQ2XHU2ZTQ3XHU2ZTQ4XHU2ZTQ5XHU2ZTRhXHU2ZTRiXHU2ZTRjXHU2ZTRmXHU2ZTUwXHU2ZTUxXHU2ZTUyXHU2ZTU1XHU2ZTU3XHU2ZTU5XHU2ZTVhXHU2ZTVjXHU2ZTVkXHU2ZTVlXHU2ZTYwXHU2ZTYxXHU2ZTYyXHU2ZTYzXHU2ZTY0XHU2ZTY1XHU2ZTY2XHU2ZTY3XHU2'@; put 'ZTY4XHU2ZTY5XHU2ZTZhXHU2ZTZjXHU2ZTZkXHU2ZTZmXHU2ZTcwXHU2ZTcxXHU2ZTcyXHU2ZTczXHU2ZTc0XHU2ZTc1XHU2ZTc2XHU2ZTc3XHU2ZTc4XHU2ZTc5XHU2ZTdhXHU2ZTdiXHU2ZTdjXHU2ZTdkXHU2ZTgwXHU2ZTgxXHU2ZTgyXHU2ZTg0XHU2ZTg3XHU2ZTg4XHU2ZThhXHU2ZThi'@; put 'XHU2ZThjXHU2ZThkXHU2ZThlXHU2ZTkxXHU2ZTkyXHU2ZTkzXHU2ZTk0XHU2ZTk1XHU2ZTk2XHU2ZTk3XHU2ZTk5XHU2ZTlhXHU2ZTliXHU2ZTlkXHU2ZTllXHU2ZWEwXHU2ZWExXHU2ZWEzXHU2ZWE0XHU2ZWE2XHU2ZWE4XHU2ZWE5XHU2ZWFiXHU2ZWFjXHU2ZWFkXHU2ZWFlXHU2ZWIwXHU2'@; put 'ZWIzXHU2ZWI1XHU2ZWI4XHU2ZWI5XHU2ZWJjXHU2ZWJlXHU2ZWJmXHU2ZWMwXHU2ZWMzXHU2ZWM0XHU2ZWM1XHU2ZWM2XHU2ZWM4XHU2ZWM5XHU2ZWNhXHU2ZWNjXHU2ZWNkXHU2ZWNlXHU2ZWQwXHU2ZWQyXHU2ZWQ2XHU2ZWQ4XHU2ZWQ5XHU2ZWRiXHU2ZWRjXHU2ZWRkXHU2ZWUzXHU2ZWU3'@; put 'XHU2ZWVhXHU2ZWViXHU2ZWVjXHU2ZWVkXHU2ZWVlXHU2ZWVmXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTU2XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNTZdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTU2XVtwXV09Mzk5MzYrcCxiWzM5OTM2K3BdPV9bMTU2XVtwXSk7Zm9yKF9bMTU3'@; put 'XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZWYwXHU2ZWYxXHU2ZWYyXHU2ZWYzXHU2ZWY1XHU2ZWY2XHU2ZWY3XHU2ZWY4XHU2ZWZhXHU2ZWZiXHU2ZWZjXHU2ZWZkXHU2ZWZlXHU2ZWZmXHU2ZjAwXHU2ZjAxXHU2ZjAzXHU2ZjA0'@; put 'XHU2ZjA1XHU2ZjA3XHU2ZjA4XHU2ZjBhXHU2ZjBiXHU2ZjBjXHU2ZjBkXHU2ZjBlXHU2ZjEwXHU2ZjExXHU2ZjEyXHU2ZjE2XHU2ZjE3XHU2ZjE4XHU2ZjE5XHU2ZjFhXHU2ZjFiXHU2ZjFjXHU2ZjFkXHU2ZjFlXHU2ZjFmXHU2ZjIxXHU2ZjIyXHU2ZjIzXHU2ZjI1XHU2ZjI2XHU2ZjI3XHU2'@; put 'ZjI4XHU2ZjJjXHU2ZjJlXHU2ZjMwXHU2ZjMyXHU2ZjM0XHU2ZjM1XHU2ZjM3XHU2ZjM4XHU2ZjM5XHU2ZjNhXHU2ZjNiXHU2ZjNjXHU2ZjNkXHU2ZjNmXHU2ZjQwXHU2ZjQxXHU2ZjQyXHVmZmZkXHU2ZjQzXHU2ZjQ0XHU2ZjQ1XHU2ZjQ4XHU2ZjQ5XHU2ZjRhXHU2ZjRjXHU2ZjRlXHU2ZjRm'@; put 'XHU2ZjUwXHU2ZjUxXHU2ZjUyXHU2ZjUzXHU2ZjU0XHU2ZjU1XHU2ZjU2XHU2ZjU3XHU2ZjU5XHU2ZjVhXHU2ZjViXHU2ZjVkXHU2ZjVmXHU2ZjYwXHU2ZjYxXHU2ZjYzXHU2ZjY0XHU2ZjY1XHU2ZjY3XHU2ZjY4XHU2ZjY5XHU2ZjZhXHU2ZjZiXHU2ZjZjXHU2ZjZmXHU2ZjcwXHU2ZjcxXHU2'@; put 'ZjczXHU2Zjc1XHU2Zjc2XHU2Zjc3XHU2Zjc5XHU2ZjdiXHU2ZjdkXHU2ZjdlXHU2ZjdmXHU2ZjgwXHU2ZjgxXHU2ZjgyXHU2ZjgzXHU2Zjg1XHU2Zjg2XHU2Zjg3XHU2ZjhhXHU2ZjhiXHU2ZjhmXHU2ZjkwXHU2ZjkxXHU2ZjkyXHU2ZjkzXHU2Zjk0XHU2Zjk1XHU2Zjk2XHU2Zjk3XHU2Zjk4'@; put 'XHU2Zjk5XHU2ZjlhXHU2ZjliXHU2ZjlkXHU2ZjllXHU2ZjlmXHU2ZmEwXHU2ZmEyXHU2ZmEzXHU2ZmE0XHU2ZmE1XHU2ZmE2XHU2ZmE4XHU2ZmE5XHU2ZmFhXHU2ZmFiXHU2ZmFjXHU2ZmFkXHU2ZmFlXHU2ZmFmXHU2ZmIwXHU2ZmIxXHU2ZmIyXHU2ZmI0XHU2ZmI1XHU2ZmI3XHU2ZmI4XHU2'@; put 'ZmJhXHU2ZmJiXHU2ZmJjXHU2ZmJkXHU2ZmJlXHU2ZmJmXHU2ZmMxXHU2ZmMzXHU2ZmM0XHU2ZmM1XHU2ZmM2XHU2ZmM3XHU2ZmM4XHU2ZmNhXHU2ZmNiXHU2ZmNjXHU2ZmNkXHU2ZmNlXHU2ZmNmXHU2ZmQwXHU2ZmQzXHU2ZmQ0XHU2ZmQ1XHU2ZmQ2XHU2ZmQ3XHU2ZmQ4XHU2ZmQ5XHU2ZmRh'@; put 'XHU2ZmRiXHU2ZmRjXHU2ZmRkXHU2ZmRmXHU2ZmUyXHU2ZmUzXHU2ZmU0XHU2ZmU1XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTU3XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNTddW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTU3XVtwXV09NDAxOTIrcCxiWzQwMTkyK3BdPV9bMTU3XVtw'@; put 'XSk7Zm9yKF9bMTU4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZmU2XHU2ZmU3XHU2ZmU4XHU2ZmU5XHU2ZmVhXHU2ZmViXHU2ZmVjXHU2ZmVkXHU2ZmYwXHU2ZmYxXHU2ZmYyXHU2ZmYzXHU2ZmY0XHU2ZmY1XHU2ZmY2XHU2ZmY3'@; put 'XHU2ZmY4XHU2ZmY5XHU2ZmZhXHU2ZmZiXHU2ZmZjXHU2ZmZkXHU2ZmZlXHU2ZmZmXHU3MDAwXHU3MDAxXHU3MDAyXHU3MDAzXHU3MDA0XHU3MDA1XHU3MDA2XHU3MDA3XHU3MDA4XHU3MDA5XHU3MDBhXHU3MDBiXHU3MDBjXHU3MDBkXHU3MDBlXHU3MDBmXHU3MDEwXHU3MDEyXHU3MDEzXHU3'@; put 'MDE0XHU3MDE1XHU3MDE2XHU3MDE3XHU3MDE4XHU3MDE5XHU3MDFjXHU3MDFkXHU3MDFlXHU3MDFmXHU3MDIwXHU3MDIxXHU3MDIyXHU3MDI0XHU3MDI1XHU3MDI2XHU3MDI3XHU3MDI4XHU3MDI5XHU3MDJhXHVmZmZkXHU3MDJiXHU3MDJjXHU3MDJkXHU3MDJlXHU3MDJmXHU3MDMwXHU3MDMx'@; put 'XHU3MDMyXHU3MDMzXHU3MDM0XHU3MDM2XHU3MDM3XHU3MDM4XHU3MDNhXHU3MDNiXHU3MDNjXHU3MDNkXHU3MDNlXHU3MDNmXHU3MDQwXHU3MDQxXHU3MDQyXHU3MDQzXHU3MDQ0XHU3MDQ1XHU3MDQ2XHU3MDQ3XHU3MDQ4XHU3MDQ5XHU3MDRhXHU3MDRiXHU3MDRkXHU3MDRlXHU3MDUwXHU3'@; put 'MDUxXHU3MDUyXHU3MDUzXHU3MDU0XHU3MDU1XHU3MDU2XHU3MDU3XHU3MDU4XHU3MDU5XHU3MDVhXHU3MDViXHU3MDVjXHU3MDVkXHU3MDVmXHU3MDYwXHU3MDYxXHU3MDYyXHU3MDYzXHU3MDY0XHU3MDY1XHU3MDY2XHU3MDY3XHU3MDY4XHU3MDY5XHU3MDZhXHU3MDZlXHU3MDcxXHU3MDcy'@; put 'XHU3MDczXHU3MDc0XHU3MDc3XHU3MDc5XHU3MDdhXHU3MDdiXHU3MDdkXHU3MDgxXHU3MDgyXHU3MDgzXHU3MDg0XHU3MDg2XHU3MDg3XHU3MDg4XHU3MDhiXHU3MDhjXHU3MDhkXHU3MDhmXHU3MDkwXHU3MDkxXHU3MDkzXHU3MDk3XHU3MDk4XHU3MDlhXHU3MDliXHU3MDllXHU3MDlmXHU3'@; put 'MGEwXHU3MGExXHU3MGEyXHU3MGEzXHU3MGE0XHU3MGE1XHU3MGE2XHU3MGE3XHU3MGE4XHU3MGE5XHU3MGFhXHU3MGIwXHU3MGIyXHU3MGI0XHU3MGI1XHU3MGI2XHU3MGJhXHU3MGJlXHU3MGJmXHU3MGM0XHU3MGM1XHU3MGM2XHU3MGM3XHU3MGM5XHU3MGNiXHU3MGNjXHU3MGNkXHU3MGNl'@; put 'XHU3MGNmXHU3MGQwXHU3MGQxXHU3MGQyXHU3MGQzXHU3MGQ0XHU3MGQ1XHU3MGQ2XHU3MGQ3XHU3MGRhXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTU4XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNThdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTU4XVtwXV09NDA0NDgrcCxiWzQwNDQ4'@; put 'K3BdPV9bMTU4XVtwXSk7Zm9yKF9bMTU5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3MGRjXHU3MGRkXHU3MGRlXHU3MGUwXHU3MGUxXHU3MGUyXHU3MGUzXHU3MGU1XHU3MGVhXHU3MGVlXHU3MGYwXHU3MGYxXHU3MGYyXHU3MGYz'@; put 'XHU3MGY0XHU3MGY1XHU3MGY2XHU3MGY4XHU3MGZhXHU3MGZiXHU3MGZjXHU3MGZlXHU3MGZmXHU3MTAwXHU3MTAxXHU3MTAyXHU3MTAzXHU3MTA0XHU3MTA1XHU3MTA2XHU3MTA3XHU3MTA4XHU3MTBiXHU3MTBjXHU3MTBkXHU3MTBlXHU3MTBmXHU3MTExXHU3MTEyXHU3MTE0XHU3MTE3XHU3'@; put 'MTFiXHU3MTFjXHU3MTFkXHU3MTFlXHU3MTFmXHU3MTIwXHU3MTIxXHU3MTIyXHU3MTIzXHU3MTI0XHU3MTI1XHU3MTI3XHU3MTI4XHU3MTI5XHU3MTJhXHU3MTJiXHU3MTJjXHU3MTJkXHU3MTJlXHU3MTMyXHU3MTMzXHU3MTM0XHVmZmZkXHU3MTM1XHU3MTM3XHU3MTM4XHU3MTM5XHU3MTNh'@; put 'XHU3MTNiXHU3MTNjXHU3MTNkXHU3MTNlXHU3MTNmXHU3MTQwXHU3MTQxXHU3MTQyXHU3MTQzXHU3MTQ0XHU3MTQ2XHU3MTQ3XHU3MTQ4XHU3MTQ5XHU3MTRiXHU3MTRkXHU3MTRmXHU3MTUwXHU3MTUxXHU3MTUyXHU3MTUzXHU3MTU0XHU3MTU1XHU3MTU2XHU3MTU3XHU3MTU4XHU3MTU5XHU3'@; put 'MTVhXHU3MTViXHU3MTVkXHU3MTVmXHU3MTYwXHU3MTYxXHU3MTYyXHU3MTYzXHU3MTY1XHU3MTY5XHU3MTZhXHU3MTZiXHU3MTZjXHU3MTZkXHU3MTZmXHU3MTcwXHU3MTcxXHU3MTc0XHU3MTc1XHU3MTc2XHU3MTc3XHU3MTc5XHU3MTdiXHU3MTdjXHU3MTdlXHU3MTdmXHU3MTgwXHU3MTgx'@; put 'XHU3MTgyXHU3MTgzXHU3MTg1XHU3MTg2XHU3MTg3XHU3MTg4XHU3MTg5XHU3MThiXHU3MThjXHU3MThkXHU3MThlXHU3MTkwXHU3MTkxXHU3MTkyXHU3MTkzXHU3MTk1XHU3MTk2XHU3MTk3XHU3MTlhXHU3MTliXHU3MTljXHU3MTlkXHU3MTllXHU3MWExXHU3MWEyXHU3MWEzXHU3MWE0XHU3'@; put 'MWE1XHU3MWE2XHU3MWE3XHU3MWE5XHU3MWFhXHU3MWFiXHU3MWFkXHU3MWFlXHU3MWFmXHU3MWIwXHU3MWIxXHU3MWIyXHU3MWI0XHU3MWI2XHU3MWI3XHU3MWI4XHU3MWJhXHU3MWJiXHU3MWJjXHU3MWJkXHU3MWJlXHU3MWJmXHU3MWMwXHU3MWMxXHU3MWMyXHU3MWM0XHU3MWM1XHU3MWM2'@; put 'XHU3MWM3XHU3MWM4XHU3MWM5XHU3MWNhXHU3MWNiXHU3MWNjXHU3MWNkXHU3MWNmXHU3MWQwXHU3MWQxXHU3MWQyXHU3MWQzXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTU5XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNTldW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTU5XVtwXV09NDA3'@; put 'MDQrcCxiWzQwNzA0K3BdPV9bMTU5XVtwXSk7Zm9yKF9bMTYwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3MWQ2XHU3MWQ3XHU3MWQ4XHU3MWQ5XHU3MWRhXHU3MWRiXHU3MWRjXHU3MWRkXHU3MWRlXHU3MWRmXHU3MWUxXHU3MWUy'@; put 'XHU3MWUzXHU3MWU0XHU3MWU2XHU3MWU4XHU3MWU5XHU3MWVhXHU3MWViXHU3MWVjXHU3MWVkXHU3MWVmXHU3MWYwXHU3MWYxXHU3MWYyXHU3MWYzXHU3MWY0XHU3MWY1XHU3MWY2XHU3MWY3XHU3MWY4XHU3MWZhXHU3MWZiXHU3MWZjXHU3MWZkXHU3MWZlXHU3MWZmXHU3MjAwXHU3MjAxXHU3'@; put 'MjAyXHU3MjAzXHU3MjA0XHU3MjA1XHU3MjA3XHU3MjA4XHU3MjA5XHU3MjBhXHU3MjBiXHU3MjBjXHU3MjBkXHU3MjBlXHU3MjBmXHU3MjEwXHU3MjExXHU3MjEyXHU3MjEzXHU3MjE0XHU3MjE1XHU3MjE2XHU3MjE3XHU3MjE4XHU3MjE5XHU3MjFhXHVmZmZkXHU3MjFiXHU3MjFjXHU3MjFl'@; put 'XHU3MjFmXHU3MjIwXHU3MjIxXHU3MjIyXHU3MjIzXHU3MjI0XHU3MjI1XHU3MjI2XHU3MjI3XHU3MjI5XHU3MjJiXHU3MjJkXHU3MjJlXHU3MjJmXHU3MjMyXHU3MjMzXHU3MjM0XHU3MjNhXHU3MjNjXHU3MjNlXHU3MjQwXHU3MjQxXHU3MjQyXHU3MjQzXHU3MjQ0XHU3MjQ1XHU3MjQ2XHU3'@; put 'MjQ5XHU3MjRhXHU3MjRiXHU3MjRlXHU3MjRmXHU3MjUwXHU3MjUxXHU3MjUzXHU3MjU0XHU3MjU1XHU3MjU3XHU3MjU4XHU3MjVhXHU3MjVjXHU3MjVlXHU3MjYwXHU3MjYzXHU3MjY0XHU3MjY1XHU3MjY4XHU3MjZhXHU3MjZiXHU3MjZjXHU3MjZkXHU3MjcwXHU3MjcxXHU3MjczXHU3Mjc0'@; put 'XHU3Mjc2XHU3Mjc3XHU3Mjc4XHU3MjdiXHU3MjdjXHU3MjdkXHU3MjgyXHU3MjgzXHU3Mjg1XHU3Mjg2XHU3Mjg3XHU3Mjg4XHU3Mjg5XHU3MjhjXHU3MjhlXHU3MjkwXHU3MjkxXHU3MjkzXHU3Mjk0XHU3Mjk1XHU3Mjk2XHU3Mjk3XHU3Mjk4XHU3Mjk5XHU3MjlhXHU3MjliXHU3MjljXHU3'@; put 'MjlkXHU3MjllXHU3MmEwXHU3MmExXHU3MmEyXHU3MmEzXHU3MmE0XHU3MmE1XHU3MmE2XHU3MmE3XHU3MmE4XHU3MmE5XHU3MmFhXHU3MmFiXHU3MmFlXHU3MmIxXHU3MmIyXHU3MmIzXHU3MmI1XHU3MmJhXHU3MmJiXHU3MmJjXHU3MmJkXHU3MmJlXHU3MmJmXHU3MmMwXHU3MmM1XHU3MmM2'@; put 'XHU3MmM3XHU3MmM5XHU3MmNhXHU3MmNiXHU3MmNjXHU3MmNmXHU3MmQxXHU3MmQzXHU3MmQ0XHU3MmQ1XHU3MmQ2XHU3MmQ4XHU3MmRhXHU3MmRiXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTYwXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNjBdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19b'@; put 'MTYwXVtwXV09NDA5NjArcCxiWzQwOTYwK3BdPV9bMTYwXVtwXSk7Zm9yKF9bMTYxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUzMDAwXHUzMDAxXHUzMDAyXHhiN1x1MDJjOVx1MDJjN1x4YThcdTMwMDNcdTMwMDVcdTIwMTRcdWZmNWVcdTIwMTZcdTIwMjZcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTMwMTRcdTMwMTVcdTMwMDhcdTMwMDlcdTMwMGFcdTMwMGJcdTMw'@; put 'MGNcdTMwMGRcdTMwMGVcdTMwMGZcdTMwMTZcdTMwMTdcdTMwMTBcdTMwMTFceGIxXHhkN1x4ZjdcdTIyMzZcdTIyMjdcdTIyMjhcdTIyMTFcdTIyMGZcdTIyMmFcdTIyMjlcdTIyMDhcdTIyMzdcdTIyMWFcdTIyYTVcdTIyMjVcdTIyMjBcdTIzMTJcdTIyOTlcdTIyMmJcdTIyMmVcdTIyNjFc'@; put 'dTIyNGNcdTIyNDhcdTIyM2RcdTIyMWRcdTIyNjBcdTIyNmVcdTIyNmZcdTIyNjRcdTIyNjVcdTIyMWVcdTIyMzVcdTIyMzRcdTI2NDJcdTI2NDBceGIwXHUyMDMyXHUyMDMzXHUyMTAzXHVmZjA0XHhhNFx1ZmZlMFx1ZmZlMVx1MjAzMFx4YTdcdTIxMTZcdTI2MDZcdTI2MDVcdTI1Y2JcdTI1'@; put 'Y2ZcdTI1Y2VcdTI1YzdcdTI1YzZcdTI1YTFcdTI1YTBcdTI1YjNcdTI1YjJcdTIwM2JcdTIxOTJcdTIxOTBcdTIxOTFcdTIxOTNcdTMwMTNcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxNjFdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE2MV1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxNjFd'@; put 'W3BdXT00MTIxNitwLGJbNDEyMTYrcF09X1sxNjFdW3BdKTtmb3IoX1sxNjJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTIxNzBcdTIxNzFcdTIxNzJcdTIxNzNcdTIxNzRcdTIxNzVcdTIxNzZcdTIxNzdcdTIxNzhcdTIxNzlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTI0ODhcdTI0ODlcdTI0OGFcdTI0OGJcdTI0OGNcdTI0OGRcdTI0OGVcdTI0'@; put 'OGZcdTI0OTBcdTI0OTFcdTI0OTJcdTI0OTNcdTI0OTRcdTI0OTVcdTI0OTZcdTI0OTdcdTI0OThcdTI0OTlcdTI0OWFcdTI0OWJcdTI0NzRcdTI0NzVcdTI0NzZcdTI0NzdcdTI0NzhcdTI0NzlcdTI0N2FcdTI0N2JcdTI0N2NcdTI0N2RcdTI0N2VcdTI0N2ZcdTI0ODBcdTI0ODFcdTI0ODJc'@; put 'dTI0ODNcdTI0ODRcdTI0ODVcdTI0ODZcdTI0ODdcdTI0NjBcdTI0NjFcdTI0NjJcdTI0NjNcdTI0NjRcdTI0NjVcdTI0NjZcdTI0NjdcdTI0NjhcdTI0NjlcdWZmZmRcdWZmZmRcdTMyMjBcdTMyMjFcdTMyMjJcdTMyMjNcdTMyMjRcdTMyMjVcdTMyMjZcdTMyMjdcdTMyMjhcdTMyMjlcdWZm'@; put 'ZmRcdWZmZmRcdTIxNjBcdTIxNjFcdTIxNjJcdTIxNjNcdTIxNjRcdTIxNjVcdTIxNjZcdTIxNjdcdTIxNjhcdTIxNjlcdTIxNmFcdTIxNmJcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxNjJdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE2Ml1bcF0uY2hhckNvZGVBdCgw'@; put 'KSYmKERbX1sxNjJdW3BdXT00MTQ3MitwLGJbNDE0NzIrcF09X1sxNjJdW3BdKTtmb3IoX1sxNjNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmMDFcdWZmMDJcdWZmMDNcdWZmZTVcdWZmMDVcdWZmMDZcdWZmMDdcdWZmMDhcdWZmMDlcdWZmMGFcdWZmMGJcdWZmMGNcdWZmMGRcdWZmMGVcdWZmMGZcdWZmMTBcdWZmMTFcdWZmMTJcdWZmMTNcdWZmMTRcdWZmMTVcdWZm'@; put 'MTZcdWZmMTdcdWZmMThcdWZmMTlcdWZmMWFcdWZmMWJcdWZmMWNcdWZmMWRcdWZmMWVcdWZmMWZcdWZmMjBcdWZmMjFcdWZmMjJcdWZmMjNcdWZmMjRcdWZmMjVcdWZmMjZcdWZmMjdcdWZmMjhcdWZmMjlcdWZmMmFcdWZmMmJcdWZmMmNcdWZmMmRcdWZmMmVcdWZmMmZcdWZmMzBcdWZmMzFc'@; put 'dWZmMzJcdWZmMzNcdWZmMzRcdWZmMzVcdWZmMzZcdWZmMzdcdWZmMzhcdWZmMzlcdWZmM2FcdWZmM2JcdWZmM2NcdWZmM2RcdWZmM2VcdWZmM2ZcdWZmNDBcdWZmNDFcdWZmNDJcdWZmNDNcdWZmNDRcdWZmNDVcdWZmNDZcdWZmNDdcdWZmNDhcdWZmNDlcdWZmNGFcdWZmNGJcdWZmNGNcdWZm'@; put 'NGRcdWZmNGVcdWZmNGZcdWZmNTBcdWZmNTFcdWZmNTJcdWZmNTNcdWZmNTRcdWZmNTVcdWZmNTZcdWZmNTdcdWZmNThcdWZmNTlcdWZmNWFcdWZmNWJcdWZmNWNcdWZmNWRcdWZmZTNcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxNjNdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE2M11bcF0u'@; put 'Y2hhckNvZGVBdCgwKSYmKERbX1sxNjNdW3BdXT00MTcyOCtwLGJbNDE3MjgrcF09X1sxNjNdW3BdKTtmb3IoX1sxNjRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTMwNDFcdTMwNDJcdTMwNDNcdTMwNDRcdTMwNDVcdTMwNDZcdTMwNDdcdTMwNDhcdTMwNDlcdTMwNGFcdTMwNGJcdTMwNGNcdTMwNGRcdTMwNGVcdTMwNGZcdTMwNTBcdTMwNTFcdTMwNTJcdTMwNTNcdTMw'@; put 'NTRcdTMwNTVcdTMwNTZcdTMwNTdcdTMwNThcdTMwNTlcdTMwNWFcdTMwNWJcdTMwNWNcdTMwNWRcdTMwNWVcdTMwNWZcdTMwNjBcdTMwNjFcdTMwNjJcdTMwNjNcdTMwNjRcdTMwNjVcdTMwNjZcdTMwNjdcdTMwNjhcdTMwNjlcdTMwNmFcdTMwNmJcdTMwNmNcdTMwNmRcdTMwNmVcdTMwNmZc'@; put 'dTMwNzBcdTMwNzFcdTMwNzJcdTMwNzNcdTMwNzRcdTMwNzVcdTMwNzZcdTMwNzdcdTMwNzhcdTMwNzlcdTMwN2FcdTMwN2JcdTMwN2NcdTMwN2RcdTMwN2VcdTMwN2ZcdTMwODBcdTMwODFcdTMwODJcdTMwODNcdTMwODRcdTMwODVcdTMwODZcdTMwODdcdTMwODhcdTMwODlcdTMwOGFcdTMw'@; put 'OGJcdTMwOGNcdTMwOGRcdTMwOGVcdTMwOGZcdTMwOTBcdTMwOTFcdTMwOTJcdTMwOTNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxNjRdLmxlbmd0aDsrK3ApNjU1MzMh'@; put 'PT1fWzE2NF1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxNjRdW3BdXT00MTk4NCtwLGJbNDE5ODQrcF09X1sxNjRdW3BdKTtmb3IoX1sxNjVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTMwYTFcdTMwYTJcdTMwYTNcdTMwYTRcdTMwYTVcdTMwYTZcdTMwYTdcdTMwYThcdTMwYTlcdTMwYWFcdTMwYWJcdTMwYWNcdTMwYWRcdTMwYWVcdTMwYWZcdTMwYjBcdTMwYjFcdTMw'@; put 'YjJcdTMwYjNcdTMwYjRcdTMwYjVcdTMwYjZcdTMwYjdcdTMwYjhcdTMwYjlcdTMwYmFcdTMwYmJcdTMwYmNcdTMwYmRcdTMwYmVcdTMwYmZcdTMwYzBcdTMwYzFcdTMwYzJcdTMwYzNcdTMwYzRcdTMwYzVcdTMwYzZcdTMwYzdcdTMwYzhcdTMwYzlcdTMwY2FcdTMwY2JcdTMwY2NcdTMwY2Rc'@; put 'dTMwY2VcdTMwY2ZcdTMwZDBcdTMwZDFcdTMwZDJcdTMwZDNcdTMwZDRcdTMwZDVcdTMwZDZcdTMwZDdcdTMwZDhcdTMwZDlcdTMwZGFcdTMwZGJcdTMwZGNcdTMwZGRcdTMwZGVcdTMwZGZcdTMwZTBcdTMwZTFcdTMwZTJcdTMwZTNcdTMwZTRcdTMwZTVcdTMwZTZcdTMwZTdcdTMwZThcdTMw'@; put 'ZTlcdTMwZWFcdTMwZWJcdTMwZWNcdTMwZWRcdTMwZWVcdTMwZWZcdTMwZjBcdTMwZjFcdTMwZjJcdTMwZjNcdTMwZjRcdTMwZjVcdTMwZjZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxNjVdLmxlbmd0'@; put 'aDsrK3ApNjU1MzMhPT1fWzE2NV1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxNjVdW3BdXT00MjI0MCtwLGJbNDIyNDArcF09X1sxNjVdW3BdKTtmb3IoX1sxNjZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTAzOTFcdTAzOTJcdTAzOTNcdTAzOTRcdTAzOTVcdTAzOTZcdTAzOTdcdTAzOThcdTAzOTlcdTAzOWFcdTAzOWJcdTAzOWNcdTAzOWRcdTAzOWVcdTAzOWZcdTAz'@; put 'YTBcdTAzYTFcdTAzYTNcdTAzYTRcdTAzYTVcdTAzYTZcdTAzYTdcdTAzYThcdTAzYTlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTAzYjFcdTAzYjJcdTAzYjNcdTAzYjRcdTAzYjVcdTAzYjZcdTAzYjdcdTAzYjhcdTAzYjlcdTAzYmFcdTAzYmJc'@; put 'dTAzYmNcdTAzYmRcdTAzYmVcdTAzYmZcdTAzYzBcdTAzYzFcdTAzYzNcdTAzYzRcdTAzYzVcdTAzYzZcdTAzYzdcdTAzYzhcdTAzYzlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZlMzVcdWZlMzZcdWZlMzlcdWZlM2FcdWZlM2ZcdWZlNDBcdWZlM2RcdWZl'@; put 'M2VcdWZlNDFcdWZlNDJcdWZlNDNcdWZlNDRcdWZmZmRcdWZmZmRcdWZlM2JcdWZlM2NcdWZlMzdcdWZlMzhcdWZlMzFcdWZmZmRcdWZlMzNcdWZlMzRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9'@; put 'X1sxNjZdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE2Nl1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxNjZdW3BdXT00MjQ5NitwLGJbNDI0OTYrcF09X1sxNjZdW3BdKTtmb3IoX1sxNjddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0MTRcdTA0MTVcdTA0MDFcdTA0MTZcdTA0MTdcdTA0MThcdTA0MTlcdTA0MWFcdTA0MWJcdTA0'@; put 'MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0MjZcdTA0MjdcdTA0MjhcdTA0MjlcdTA0MmFcdTA0MmJcdTA0MmNcdTA0MmRcdTA0MmVcdTA0MmZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTA0MzBcdTA0MzFcdTA0MzJcdTA0MzNcdTA0MzRcdTA0MzVcdTA0NTFcdTA0MzZcdTA0MzdcdTA0MzhcdTA0MzlcdTA0M2FcdTA0M2JcdTA0M2NcdTA0M2RcdTA0M2VcdTA0M2ZcdTA0NDBcdTA0NDFcdTA0NDJcdTA0'@; put 'NDNcdTA0NDRcdTA0NDVcdTA0NDZcdTA0NDdcdTA0NDhcdTA0NDlcdTA0NGFcdTA0NGJcdTA0NGNcdTA0NGRcdTA0NGVcdTA0NGZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0'@; put 'KCIiKSxwPTA7cCE9X1sxNjddLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE2N11bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxNjddW3BdXT00Mjc1MitwLGJbNDI3NTIrcF09X1sxNjddW3BdKTtmb3IoX1sxNjhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdTAyY2FcdTAyY2JcdTAyZDlcdTIwMTNcdTIwMTVcdTIwMjVcdTIwMzVcdTIxMDVcdTIxMDlcdTIxOTZcdTIxOTdcdTIxOThcdTIxOTlcdTIyMTVcdTIyMWZcdTIyMjNcdTIyNTJcdTIyNjZcdTIyNjdcdTIyYmZcdTI1NTBcdTI1NTFcdTI1NTJcdTI1NTNcdTI1NTRcdTI1NTVc'@; put 'dTI1NTZcdTI1NTdcdTI1NThcdTI1NTlcdTI1NWFcdTI1NWJcdTI1NWNcdTI1NWRcdTI1NWVcdTI1NWZcdTI1NjBcdTI1NjFcdTI1NjJcdTI1NjNcdTI1NjRcdTI1NjVcdTI1NjZcdTI1NjdcdTI1NjhcdTI1NjlcdTI1NmFcdTI1NmJcdTI1NmNcdTI1NmRcdTI1NmVcdTI1NmZcdTI1NzBcdTI1'@; put 'NzFcdTI1NzJcdTI1NzNcdTI1ODFcdTI1ODJcdTI1ODNcdTI1ODRcdTI1ODVcdTI1ODZcdTI1ODdcdWZmZmRcdTI1ODhcdTI1ODlcdTI1OGFcdTI1OGJcdTI1OGNcdTI1OGRcdTI1OGVcdTI1OGZcdTI1OTNcdTI1OTRcdTI1OTVcdTI1YmNcdTI1YmRcdTI1ZTJcdTI1ZTNcdTI1ZTRcdTI1ZTVc'@; put 'dTI2MDlcdTIyOTVcdTMwMTJcdTMwMWRcdTMwMWVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTAxMDFceGUxXHUwMWNlXHhlMFx1MDExM1x4ZTlcdTAxMWJceGU4XHUwMTJiXHhlZFx1MDFkMFx4ZWNcdTAxNGRceGYz'@; put 'XHUwMWQyXHhmMlx1MDE2Ylx4ZmFcdTAxZDRceGY5XHUwMWQ2XHUwMWQ4XHUwMWRhXHUwMWRjXHhmY1x4ZWFcdTAyNTFcdWZmZmRcdTAxNDRcdTAxNDhcdWZmZmRcdTAyNjFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTMxMDVcdTMxMDZcdTMxMDdcdTMxMDhcdTMxMDlcdTMxMGFcdTMxMGJc'@; put 'dTMxMGNcdTMxMGRcdTMxMGVcdTMxMGZcdTMxMTBcdTMxMTFcdTMxMTJcdTMxMTNcdTMxMTRcdTMxMTVcdTMxMTZcdTMxMTdcdTMxMThcdTMxMTlcdTMxMWFcdTMxMWJcdTMxMWNcdTMxMWRcdTMxMWVcdTMxMWZcdTMxMjBcdTMxMjFcdTMxMjJcdTMxMjNcdTMxMjRcdTMxMjVcdTMxMjZcdTMx'@; put 'MjdcdTMxMjhcdTMxMjlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9'@; put 'X1sxNjhdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE2OF1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxNjhdW3BdXT00MzAwOCtwLGJbNDMwMDgrcF09X1sxNjhdW3BdKTtmb3IoX1sxNjldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTMw'@; put 'MjFcdTMwMjJcdTMwMjNcdTMwMjRcdTMwMjVcdTMwMjZcdTMwMjdcdTMwMjhcdTMwMjlcdTMyYTNcdTMzOGVcdTMzOGZcdTMzOWNcdTMzOWRcdTMzOWVcdTMzYTFcdTMzYzRcdTMzY2VcdTMzZDFcdTMzZDJcdTMzZDVcdWZlMzBcdWZmZTJcdWZmZTRcdWZmZmRcdTIxMjFcdTMyMzFcdWZmZmRc'@; put 'dTIwMTBcdWZmZmRcdWZmZmRcdWZmZmRcdTMwZmNcdTMwOWJcdTMwOWNcdTMwZmRcdTMwZmVcdTMwMDZcdTMwOWRcdTMwOWVcdWZlNDlcdWZlNGFcdWZlNGJcdWZlNGNcdWZlNGRcdWZlNGVcdWZlNGZcdWZlNTBcdWZlNTFcdWZlNTJcdWZlNTRcdWZlNTVcdWZlNTZcdWZlNTdcdWZlNTlcdWZl'@; put 'NWFcdWZlNWJcdWZlNWNcdWZlNWRcdWZlNWVcdWZlNWZcdWZlNjBcdWZlNjFcdWZmZmRcdWZlNjJcdWZlNjNcdWZlNjRcdWZlNjVcdWZlNjZcdWZlNjhcdWZlNjlcdWZlNmFcdWZlNmJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdTMwMDdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTI1MDBcdTI1MDFcdTI1MDJcdTI1MDNcdTI1MDRcdTI1MDVcdTI1MDZcdTI1MDdcdTI1MDhcdTI1MDlcdTI1'@; put 'MGFcdTI1MGJcdTI1MGNcdTI1MGRcdTI1MGVcdTI1MGZcdTI1MTBcdTI1MTFcdTI1MTJcdTI1MTNcdTI1MTRcdTI1MTVcdTI1MTZcdTI1MTdcdTI1MThcdTI1MTlcdTI1MWFcdTI1MWJcdTI1MWNcdTI1MWRcdTI1MWVcdTI1MWZcdTI1MjBcdTI1MjFcdTI1MjJcdTI1MjNcdTI1MjRcdTI1MjVc'@; put 'dTI1MjZcdTI1MjdcdTI1MjhcdTI1MjlcdTI1MmFcdTI1MmJcdTI1MmNcdTI1MmRcdTI1MmVcdTI1MmZcdTI1MzBcdTI1MzFcdTI1MzJcdTI1MzNcdTI1MzRcdTI1MzVcdTI1MzZcdTI1MzdcdTI1MzhcdTI1MzlcdTI1M2FcdTI1M2JcdTI1M2NcdTI1M2RcdTI1M2VcdTI1M2ZcdTI1NDBcdTI1'@; put 'NDFcdTI1NDJcdTI1NDNcdTI1NDRcdTI1NDVcdTI1NDZcdTI1NDdcdTI1NDhcdTI1NDlcdTI1NGFcdTI1NGJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0'@; put 'KCIiKSxwPTA7cCE9X1sxNjldLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE2OV1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxNjldW3BdXT00MzI2NCtwLGJbNDMyNjQrcF09X1sxNjldW3BdKTtmb3IoX1sxNzBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdTcyZGNcdTcyZGRcdTcyZGZcdTcyZTJcdTcyZTNcdTcyZTRcdTcyZTVcdTcyZTZcdTcyZTdcdTcyZWFcdTcyZWJcdTcyZjVcdTcyZjZcdTcyZjlcdTcyZmRcdTcyZmVcdTcyZmZcdTczMDBcdTczMDJcdTczMDRcdTczMDVcdTczMDZcdTczMDdcdTczMDhcdTczMDlcdTczMGJc'@; put 'dTczMGNcdTczMGRcdTczMGZcdTczMTBcdTczMTFcdTczMTJcdTczMTRcdTczMThcdTczMTlcdTczMWFcdTczMWZcdTczMjBcdTczMjNcdTczMjRcdTczMjZcdTczMjdcdTczMjhcdTczMmRcdTczMmZcdTczMzBcdTczMzJcdTczMzNcdTczMzVcdTczMzZcdTczM2FcdTczM2JcdTczM2NcdTcz'@; put 'M2RcdTczNDBcdTczNDFcdTczNDJcdTczNDNcdTczNDRcdTczNDVcdTczNDZcdTczNDdcdTczNDhcdWZmZmRcdTczNDlcdTczNGFcdTczNGJcdTczNGNcdTczNGVcdTczNGZcdTczNTFcdTczNTNcdTczNTRcdTczNTVcdTczNTZcdTczNThcdTczNTlcdTczNWFcdTczNWJcdTczNWNcdTczNWRc'@; put 'dTczNWVcdTczNWZcdTczNjFcdTczNjJcdTczNjNcdTczNjRcdTczNjVcdTczNjZcdTczNjdcdTczNjhcdTczNjlcdTczNmFcdTczNmJcdTczNmVcdTczNzBcdTczNzFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxNzBdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE3MF1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxNzBdW3BdXT00MzUyMCtwLGJbNDM1MjArcF09X1sxNzBdW3BdKTtmb3IoX1sxNzFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTczNzJcdTczNzNcdTczNzRcdTczNzVcdTczNzZcdTczNzdcdTczNzhcdTczNzlcdTczN2FcdTczN2JcdTczN2NcdTczN2RcdTczN2ZcdTczODBcdTczODFcdTczODJcdTczODNcdTczODVcdTczODZcdTczODhcdTczOGFcdTczOGNcdTczOGRcdTczOGZc'@; put 'dTczOTBcdTczOTJcdTczOTNcdTczOTRcdTczOTVcdTczOTdcdTczOThcdTczOTlcdTczOWFcdTczOWNcdTczOWRcdTczOWVcdTczYTBcdTczYTFcdTczYTNcdTczYTRcdTczYTVcdTczYTZcdTczYTdcdTczYThcdTczYWFcdTczYWNcdTczYWRcdTczYjFcdTczYjRcdTczYjVcdTczYjZcdTcz'@; put 'YjhcdTczYjlcdTczYmNcdTczYmRcdTczYmVcdTczYmZcdTczYzFcdTczYzNcdTczYzRcdTczYzVcdTczYzZcdTczYzdcdWZmZmRcdTczY2JcdTczY2NcdTczY2VcdTczZDJcdTczZDNcdTczZDRcdTczZDVcdTczZDZcdTczZDdcdTczZDhcdTczZGFcdTczZGJcdTczZGNcdTczZGRcdTczZGZc'@; put 'dTczZTFcdTczZTJcdTczZTNcdTczZTRcdTczZTZcdTczZThcdTczZWFcdTczZWJcdTczZWNcdTczZWVcdTczZWZcdTczZjBcdTczZjFcdTczZjNcdTczZjRcdTczZjVcdTczZjZcdTczZjdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxNzFdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE3MV1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxNzFdW3BdXT00Mzc3NitwLGJbNDM3NzYrcF09X1sxNzFdW3BdKTtmb3IoX1sxNzJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTczZjhcdTczZjlcdTczZmFcdTczZmJcdTczZmNcdTczZmRcdTczZmVcdTczZmZcdTc0MDBcdTc0MDFcdTc0MDJcdTc0MDRcdTc0MDdcdTc0MDhcdTc0MGJcdTc0MGNcdTc0MGRcdTc0MGVcdTc0MTFcdTc0MTJcdTc0MTNcdTc0MTRc'@; put 'dTc0MTVcdTc0MTZcdTc0MTdcdTc0MThcdTc0MTlcdTc0MWNcdTc0MWRcdTc0MWVcdTc0MWZcdTc0MjBcdTc0MjFcdTc0MjNcdTc0MjRcdTc0MjdcdTc0MjlcdTc0MmJcdTc0MmRcdTc0MmZcdTc0MzFcdTc0MzJcdTc0MzdcdTc0MzhcdTc0MzlcdTc0M2FcdTc0M2JcdTc0M2RcdTc0M2VcdTc0'@; put 'M2ZcdTc0NDBcdTc0NDJcdTc0NDNcdTc0NDRcdTc0NDVcdTc0NDZcdTc0NDdcdTc0NDhcdTc0NDlcdTc0NGFcdTc0NGJcdTc0NGNcdTc0NGRcdWZmZmRcdTc0NGVcdTc0NGZcdTc0NTBcdTc0NTFcdTc0NTJcdTc0NTNcdTc0NTRcdTc0NTZcdTc0NThcdTc0NWRcdTc0NjBcdTc0NjFcdTc0NjJc'@; put 'dTc0NjNcdTc0NjRcdTc0NjVcdTc0NjZcdTc0NjdcdTc0NjhcdTc0NjlcdTc0NmFcdTc0NmJcdTc0NmNcdTc0NmVcdTc0NmZcdTc0NzFcdTc0NzJcdTc0NzNcdTc0NzRcdTc0NzVcdTc0NzhcdTc0NzlcdTc0N2FcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxNzJdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE3Ml1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxNzJdW3BdXT00NDAzMitwLGJbNDQwMzIrcF09X1sxNzJdW3BdKTtmb3IoX1sxNzNdPSJcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc0N2JcdTc0N2NcdTc0N2RcdTc0N2ZcdTc0ODJcdTc0ODRcdTc0ODVcdTc0ODZcdTc0ODhcdTc0ODlcdTc0OGFcdTc0OGNcdTc0OGRcdTc0OGZcdTc0OTFcdTc0OTJcdTc0OTNcdTc0OTRcdTc0OTVcdTc0OTZc'@; put 'dTc0OTdcdTc0OThcdTc0OTlcdTc0OWFcdTc0OWJcdTc0OWRcdTc0OWZcdTc0YTBcdTc0YTFcdTc0YTJcdTc0YTNcdTc0YTRcdTc0YTVcdTc0YTZcdTc0YWFcdTc0YWJcdTc0YWNcdTc0YWRcdTc0YWVcdTc0YWZcdTc0YjBcdTc0YjFcdTc0YjJcdTc0YjNcdTc0YjRcdTc0YjVcdTc0YjZcdTc0'@; put 'YjdcdTc0YjhcdTc0YjlcdTc0YmJcdTc0YmNcdTc0YmRcdTc0YmVcdTc0YmZcdTc0YzBcdTc0YzFcdTc0YzJcdTc0YzNcdTc0YzRcdTc0YzVcdTc0YzZcdTc0YzdcdWZmZmRcdTc0YzhcdTc0YzlcdTc0Y2FcdTc0Y2JcdTc0Y2NcdTc0Y2RcdTc0Y2VcdTc0Y2ZcdTc0ZDBcdTc0ZDFcdTc0ZDNc'@; put 'dTc0ZDRcdTc0ZDVcdTc0ZDZcdTc0ZDdcdTc0ZDhcdTc0ZDlcdTc0ZGFcdTc0ZGJcdTc0ZGRcdTc0ZGZcdTc0ZTFcdTc0ZTVcdTc0ZTdcdTc0ZThcdTc0ZTlcdTc0ZWFcdTc0ZWJcdTc0ZWNcdTc0ZWRcdTc0ZjBcdTc0ZjFcdTc0ZjJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxNzNdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE3M11bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxNzNdW3BdXT00NDI4OCtwLGJbNDQyODgrcF09X1sxNzNdW3BdKTtmb3IoX1sxNzRd'@; put 'PSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc0ZjNcdTc0ZjVcdTc0ZjhcdTc0ZjlcdTc0ZmFcdTc0ZmJcdTc0ZmNcdTc0ZmRcdTc0ZmVcdTc1MDBcdTc1MDFcdTc1MDJcdTc1MDNcdTc1MDVcdTc1MDZcdTc1MDdcdTc1MDhcdTc1MDlc'@; put 'dTc1MGFcdTc1MGJcdTc1MGNcdTc1MGVcdTc1MTBcdTc1MTJcdTc1MTRcdTc1MTVcdTc1MTZcdTc1MTdcdTc1MWJcdTc1MWRcdTc1MWVcdTc1MjBcdTc1MjFcdTc1MjJcdTc1MjNcdTc1MjRcdTc1MjZcdTc1MjdcdTc1MmFcdTc1MmVcdTc1MzRcdTc1MzZcdTc1MzlcdTc1M2NcdTc1M2RcdTc1'@; put 'M2ZcdTc1NDFcdTc1NDJcdTc1NDNcdTc1NDRcdTc1NDZcdTc1NDdcdTc1NDlcdTc1NGFcdTc1NGRcdTc1NTBcdTc1NTFcdTc1NTJcdTc1NTNcdTc1NTVcdTc1NTZcdTc1NTdcdTc1NThcdWZmZmRcdTc1NWRcdTc1NWVcdTc1NWZcdTc1NjBcdTc1NjFcdTc1NjJcdTc1NjNcdTc1NjRcdTc1Njdc'@; put 'dTc1NjhcdTc1NjlcdTc1NmJcdTc1NmNcdTc1NmRcdTc1NmVcdTc1NmZcdTc1NzBcdTc1NzFcdTc1NzNcdTc1NzVcdTc1NzZcdTc1NzdcdTc1N2FcdTc1N2JcdTc1N2NcdTc1N2RcdTc1N2VcdTc1ODBcdTc1ODFcdTc1ODJcdTc1ODRcdTc1ODVcdTc1ODdcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxNzRdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE3NF1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxNzRdW3BdXT00NDU0NCtwLGJbNDQ1NDQrcF09X1sxNzRdW3Bd'@; put 'KTtmb3IoX1sxNzVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc1ODhcdTc1ODlcdTc1OGFcdTc1OGNcdTc1OGRcdTc1OGVcdTc1OTBcdTc1OTNcdTc1OTVcdTc1OThcdTc1OWJcdTc1OWNcdTc1OWVcdTc1YTJcdTc1YTZcdTc1YTdc'@; put 'dTc1YThcdTc1YTlcdTc1YWFcdTc1YWRcdTc1YjZcdTc1YjdcdTc1YmFcdTc1YmJcdTc1YmZcdTc1YzBcdTc1YzFcdTc1YzZcdTc1Y2JcdTc1Y2NcdTc1Y2VcdTc1Y2ZcdTc1ZDBcdTc1ZDFcdTc1ZDNcdTc1ZDdcdTc1ZDlcdTc1ZGFcdTc1ZGNcdTc1ZGRcdTc1ZGZcdTc1ZTBcdTc1ZTFcdTc1'@; put 'ZTVcdTc1ZTlcdTc1ZWNcdTc1ZWRcdTc1ZWVcdTc1ZWZcdTc1ZjJcdTc1ZjNcdTc1ZjVcdTc1ZjZcdTc1ZjdcdTc1ZjhcdTc1ZmFcdTc1ZmJcdTc1ZmRcdTc1ZmVcdTc2MDJcdTc2MDRcdTc2MDZcdTc2MDdcdWZmZmRcdTc2MDhcdTc2MDlcdTc2MGJcdTc2MGRcdTc2MGVcdTc2MGZcdTc2MTFc'@; put 'dTc2MTJcdTc2MTNcdTc2MTRcdTc2MTZcdTc2MWFcdTc2MWNcdTc2MWRcdTc2MWVcdTc2MjFcdTc2MjNcdTc2MjdcdTc2MjhcdTc2MmNcdTc2MmVcdTc2MmZcdTc2MzFcdTc2MzJcdTc2MzZcdTc2MzdcdTc2MzlcdTc2M2FcdTc2M2JcdTc2M2RcdTc2NDFcdTc2NDJcdTc2NDRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxNzVdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE3NV1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxNzVdW3BdXT00NDgwMCtwLGJbNDQ4MDAr'@; put 'cF09X1sxNzVdW3BdKTtmb3IoX1sxNzZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc2NDVcdTc2NDZcdTc2NDdcdTc2NDhcdTc2NDlcdTc2NGFcdTc2NGJcdTc2NGVcdTc2NGZcdTc2NTBcdTc2NTFcdTc2NTJcdTc2NTNcdTc2NTVc'@; put 'dTc2NTdcdTc2NThcdTc2NTlcdTc2NWFcdTc2NWJcdTc2NWRcdTc2NWZcdTc2NjBcdTc2NjFcdTc2NjJcdTc2NjRcdTc2NjVcdTc2NjZcdTc2NjdcdTc2NjhcdTc2NjlcdTc2NmFcdTc2NmNcdTc2NmRcdTc2NmVcdTc2NzBcdTc2NzFcdTc2NzJcdTc2NzNcdTc2NzRcdTc2NzVcdTc2NzZcdTc2'@; put 'NzdcdTc2NzlcdTc2N2FcdTc2N2NcdTc2N2ZcdTc2ODBcdTc2ODFcdTc2ODNcdTc2ODVcdTc2ODlcdTc2OGFcdTc2OGNcdTc2OGRcdTc2OGZcdTc2OTBcdTc2OTJcdTc2OTRcdTc2OTVcdTc2OTdcdTc2OThcdTc2OWFcdTc2OWJcdWZmZmRcdTc2OWNcdTc2OWRcdTc2OWVcdTc2OWZcdTc2YTBc'@; put 'dTc2YTFcdTc2YTJcdTc2YTNcdTc2YTVcdTc2YTZcdTc2YTdcdTc2YThcdTc2YTlcdTc2YWFcdTc2YWJcdTc2YWNcdTc2YWRcdTc2YWZcdTc2YjBcdTc2YjNcdTc2YjVcdTc2YjZcdTc2YjdcdTc2YjhcdTc2YjlcdTc2YmFcdTc2YmJcdTc2YmNcdTc2YmRcdTc2YmVcdTc2YzBcdTc2YzFcdTc2'@; put 'YzNcdTU1NGFcdTk2M2ZcdTU3YzNcdTYzMjhcdTU0Y2VcdTU1MDlcdTU0YzBcdTc2OTFcdTc2NGNcdTg1M2NcdTc3ZWVcdTgyN2VcdTc4OGRcdTcyMzFcdTk2OThcdTk3OGRcdTZjMjhcdTViODlcdTRmZmFcdTYzMDlcdTY2OTdcdTVjYjhcdTgwZmFcdTY4NDhcdTgwYWVcdTY2MDJcdTc2Y2Vc'@; put 'dTUxZjlcdTY1NTZcdTcxYWNcdTdmZjFcdTg4ODRcdTUwYjJcdTU5NjVcdTYxY2FcdTZmYjNcdTgyYWRcdTYzNGNcdTYyNTJcdTUzZWRcdTU0MjdcdTdiMDZcdTUxNmJcdTc1YTRcdTVkZjRcdTYyZDRcdThkY2JcdTk3NzZcdTYyOGFcdTgwMTlcdTU3NWRcdTk3MzhcdTdmNjJcdTcyMzhcdTc2'@; put 'N2RcdTY3Y2ZcdTc2N2VcdTY0NDZcdTRmNzBcdThkMjVcdTYyZGNcdTdhMTdcdTY1OTFcdTczZWRcdTY0MmNcdTYyNzNcdTgyMmNcdTk4ODFcdTY3N2ZcdTcyNDhcdTYyNmVcdTYyY2NcdTRmMzRcdTc0ZTNcdTUzNGFcdTUyOWVcdTdlY2FcdTkwYTZcdTVlMmVcdTY4ODZcdTY5OWNcdTgxODBc'@; put 'dTdlZDFcdTY4ZDJcdTc4YzVcdTg2OGNcdTk1NTFcdTUwOGRcdThjMjRcdTgyZGVcdTgwZGVcdTUzMDVcdTg5MTJcdTUyNjVcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxNzZdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE3Nl1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxNzZdW3BdXT00NTA1'@; put 'NitwLGJbNDUwNTYrcF09X1sxNzZdW3BdKTtmb3IoX1sxNzddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc2YzRcdTc2YzdcdTc2YzlcdTc2Y2JcdTc2Y2NcdTc2ZDNcdTc2ZDVcdTc2ZDlcdTc2ZGFcdTc2ZGNcdTc2ZGRcdTc2ZGVc'@; put 'dTc2ZTBcdTc2ZTFcdTc2ZTJcdTc2ZTNcdTc2ZTRcdTc2ZTZcdTc2ZTdcdTc2ZThcdTc2ZTlcdTc2ZWFcdTc2ZWJcdTc2ZWNcdTc2ZWRcdTc2ZjBcdTc2ZjNcdTc2ZjVcdTc2ZjZcdTc2ZjdcdTc2ZmFcdTc2ZmJcdTc2ZmRcdTc2ZmZcdTc3MDBcdTc3MDJcdTc3MDNcdTc3MDVcdTc3MDZcdTc3'@; put 'MGFcdTc3MGNcdTc3MGVcdTc3MGZcdTc3MTBcdTc3MTFcdTc3MTJcdTc3MTNcdTc3MTRcdTc3MTVcdTc3MTZcdTc3MTdcdTc3MThcdTc3MWJcdTc3MWNcdTc3MWRcdTc3MWVcdTc3MjFcdTc3MjNcdTc3MjRcdTc3MjVcdTc3MjdcdTc3MmFcdTc3MmJcdWZmZmRcdTc3MmNcdTc3MmVcdTc3MzBc'@; put 'dTc3MzFcdTc3MzJcdTc3MzNcdTc3MzRcdTc3MzlcdTc3M2JcdTc3M2RcdTc3M2VcdTc3M2ZcdTc3NDJcdTc3NDRcdTc3NDVcdTc3NDZcdTc3NDhcdTc3NDlcdTc3NGFcdTc3NGJcdTc3NGNcdTc3NGRcdTc3NGVcdTc3NGZcdTc3NTJcdTc3NTNcdTc3NTRcdTc3NTVcdTc3NTZcdTc3NTdcdTc3'@; put 'NThcdTc3NTlcdTc3NWNcdTg1ODRcdTk2ZjlcdTRmZGRcdTU4MjFcdTk5NzFcdTViOWRcdTYyYjFcdTYyYTVcdTY2YjRcdThjNzlcdTljOGRcdTcyMDZcdTY3NmZcdTc4OTFcdTYwYjJcdTUzNTFcdTUzMTdcdThmODhcdTgwY2NcdThkMWRcdTk0YTFcdTUwMGRcdTcyYzhcdTU5MDdcdTYwZWJc'@; put 'dTcxMTlcdTg4YWJcdTU5NTRcdTgyZWZcdTY3MmNcdTdiMjhcdTVkMjlcdTdlZjdcdTc1MmRcdTZjZjVcdThlNjZcdThmZjhcdTkwM2NcdTlmM2JcdTZiZDRcdTkxMTlcdTdiMTRcdTVmN2NcdTc4YTdcdTg0ZDZcdTg1M2RcdTZiZDVcdTZiZDlcdTZiZDZcdTVlMDFcdTVlODdcdTc1ZjlcdTk1'@; put 'ZWRcdTY1NWRcdTVmMGFcdTVmYzVcdThmOWZcdTU4YzFcdTgxYzJcdTkwN2ZcdTk2NWJcdTk3YWRcdThmYjlcdTdmMTZcdThkMmNcdTYyNDFcdTRmYmZcdTUzZDhcdTUzNWVcdThmYThcdThmYTlcdThmYWJcdTkwNGRcdTY4MDdcdTVmNmFcdTgxOThcdTg4NjhcdTljZDZcdTYxOGJcdTUyMmJc'@; put 'dTc2MmFcdTVmNmNcdTY1OGNcdTZmZDJcdTZlZThcdTViYmVcdTY0NDhcdTUxNzVcdTUxYjBcdTY3YzRcdTRlMTlcdTc5YzlcdTk5N2NcdTcwYjNcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxNzddLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE3N11bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sx'@; put 'NzddW3BdXT00NTMxMitwLGJbNDUzMTIrcF09X1sxNzddW3BdKTtmb3IoX1sxNzhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc3NWRcdTc3NWVcdTc3NWZcdTc3NjBcdTc3NjRcdTc3NjdcdTc3NjlcdTc3NmFcdTc3NmRcdTc3NmVc'@; put 'dTc3NmZcdTc3NzBcdTc3NzFcdTc3NzJcdTc3NzNcdTc3NzRcdTc3NzVcdTc3NzZcdTc3NzdcdTc3NzhcdTc3N2FcdTc3N2JcdTc3N2NcdTc3ODFcdTc3ODJcdTc3ODNcdTc3ODZcdTc3ODdcdTc3ODhcdTc3ODlcdTc3OGFcdTc3OGJcdTc3OGZcdTc3OTBcdTc3OTNcdTc3OTRcdTc3OTVcdTc3'@; put 'OTZcdTc3OTdcdTc3OThcdTc3OTlcdTc3OWFcdTc3OWJcdTc3OWNcdTc3OWRcdTc3OWVcdTc3YTFcdTc3YTNcdTc3YTRcdTc3YTZcdTc3YThcdTc3YWJcdTc3YWRcdTc3YWVcdTc3YWZcdTc3YjFcdTc3YjJcdTc3YjRcdTc3YjZcdTc3YjdcdTc3YjhcdTc3YjlcdTc3YmFcdWZmZmRcdTc3YmNc'@; put 'dTc3YmVcdTc3YzBcdTc3YzFcdTc3YzJcdTc3YzNcdTc3YzRcdTc3YzVcdTc3YzZcdTc3YzdcdTc3YzhcdTc3YzlcdTc3Y2FcdTc3Y2JcdTc3Y2NcdTc3Y2VcdTc3Y2ZcdTc3ZDBcdTc3ZDFcdTc3ZDJcdTc3ZDNcdTc3ZDRcdTc3ZDVcdTc3ZDZcdTc3ZDhcdTc3ZDlcdTc3ZGFcdTc3ZGRcdTc3'@; put 'ZGVcdTc3ZGZcdTc3ZTBcdTc3ZTFcdTc3ZTRcdTc1YzVcdTVlNzZcdTczYmJcdTgzZTBcdTY0YWRcdTYyZThcdTk0YjVcdTZjZTJcdTUzNWFcdTUyYzNcdTY0MGZcdTk0YzJcdTdiOTRcdTRmMmZcdTVlMWJcdTgyMzZcdTgxMTZcdTgxOGFcdTZlMjRcdTZjY2FcdTlhNzNcdTYzNTVcdTUzNWNc'@; put 'dTU0ZmFcdTg4NjVcdTU3ZTBcdTRlMGRcdTVlMDNcdTZiNjVcdTdjM2ZcdTkwZThcdTYwMTZcdTY0ZTZcdTczMWNcdTg4YzFcdTY3NTBcdTYyNGRcdThkMjJcdTc3NmNcdThlMjlcdTkxYzdcdTVmNjlcdTgzZGNcdTg1MjFcdTk5MTBcdTUzYzJcdTg2OTVcdTZiOGJcdTYwZWRcdTYwZThcdTcw'@; put 'N2ZcdTgyY2RcdTgyMzFcdTRlZDNcdTZjYTdcdTg1Y2ZcdTY0Y2RcdTdjZDlcdTY5ZmRcdTY2ZjlcdTgzNDlcdTUzOTVcdTdiNTZcdTRmYTdcdTUxOGNcdTZkNGJcdTVjNDJcdThlNmRcdTYzZDJcdTUzYzlcdTgzMmNcdTgzMzZcdTY3ZTVcdTc4YjRcdTY0M2RcdTViZGZcdTVjOTRcdTVkZWVc'@; put 'dThiZTdcdTYyYzZcdTY3ZjRcdThjN2FcdTY0MDBcdTYzYmFcdTg3NDlcdTk5OGJcdThjMTdcdTdmMjBcdTk0ZjJcdTRlYTdcdTk2MTBcdTk4YTRcdTY2MGNcdTczMTZcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxNzhdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE3OF1bcF0uY2hhckNvZGVB'@; put 'dCgwKSYmKERbX1sxNzhdW3BdXT00NTU2OCtwLGJbNDU1NjgrcF09X1sxNzhdW3BdKTtmb3IoX1sxNzldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc3ZTZcdTc3ZThcdTc3ZWFcdTc3ZWZcdTc3ZjBcdTc3ZjFcdTc3ZjJcdTc3ZjRc'@; put 'dTc3ZjVcdTc3ZjdcdTc3ZjlcdTc3ZmFcdTc3ZmJcdTc3ZmNcdTc4MDNcdTc4MDRcdTc4MDVcdTc4MDZcdTc4MDdcdTc4MDhcdTc4MGFcdTc4MGJcdTc4MGVcdTc4MGZcdTc4MTBcdTc4MTNcdTc4MTVcdTc4MTlcdTc4MWJcdTc4MWVcdTc4MjBcdTc4MjFcdTc4MjJcdTc4MjRcdTc4MjhcdTc4'@; put 'MmFcdTc4MmJcdTc4MmVcdTc4MmZcdTc4MzFcdTc4MzJcdTc4MzNcdTc4MzVcdTc4MzZcdTc4M2RcdTc4M2ZcdTc4NDFcdTc4NDJcdTc4NDNcdTc4NDRcdTc4NDZcdTc4NDhcdTc4NDlcdTc4NGFcdTc4NGJcdTc4NGRcdTc4NGZcdTc4NTFcdTc4NTNcdTc4NTRcdTc4NThcdTc4NTlcdTc4NWFc'@; put 'dWZmZmRcdTc4NWJcdTc4NWNcdTc4NWVcdTc4NWZcdTc4NjBcdTc4NjFcdTc4NjJcdTc4NjNcdTc4NjRcdTc4NjVcdTc4NjZcdTc4NjdcdTc4NjhcdTc4NjlcdTc4NmZcdTc4NzBcdTc4NzFcdTc4NzJcdTc4NzNcdTc4NzRcdTc4NzVcdTc4NzZcdTc4NzhcdTc4NzlcdTc4N2FcdTc4N2JcdTc4'@; put 'N2RcdTc4N2VcdTc4N2ZcdTc4ODBcdTc4ODFcdTc4ODJcdTc4ODNcdTU3M2FcdTVjMWRcdTVlMzhcdTk1N2ZcdTUwN2ZcdTgwYTBcdTUzODJcdTY1NWVcdTc1NDVcdTU1MzFcdTUwMjFcdThkODVcdTYyODRcdTk0OWVcdTY3MWRcdTU2MzJcdTZmNmVcdTVkZTJcdTU0MzVcdTcwOTJcdThmNjZc'@; put 'dTYyNmZcdTY0YTRcdTYzYTNcdTVmN2JcdTZmODhcdTkwZjRcdTgxZTNcdThmYjBcdTVjMThcdTY2NjhcdTVmZjFcdTZjODlcdTk2NDhcdThkODFcdTg4NmNcdTY0OTFcdTc5ZjBcdTU3Y2VcdTZhNTlcdTYyMTBcdTU0NDhcdTRlNThcdTdhMGJcdTYwZTlcdTZmODRcdThiZGFcdTYyN2ZcdTkw'@; put 'MWVcdTlhOGJcdTc5ZTRcdTU0MDNcdTc1ZjRcdTYzMDFcdTUzMTlcdTZjNjBcdThmZGZcdTVmMWJcdTlhNzBcdTgwM2JcdTlmN2ZcdTRmODhcdTVjM2FcdThkNjRcdTdmYzVcdTY1YTVcdTcwYmRcdTUxNDVcdTUxYjJcdTg2NmJcdTVkMDdcdTViYTBcdTYyYmRcdTkxNmNcdTc1NzRcdThlMGNc'@; put 'dTdhMjBcdTYxMDFcdTdiNzlcdTRlYzdcdTdlZjhcdTc3ODVcdTRlMTFcdTgxZWRcdTUyMWRcdTUxZmFcdTZhNzFcdTUzYThcdThlODdcdTk1MDRcdTk2Y2ZcdTZlYzFcdTk2NjRcdTY5NWFcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxNzldLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE3OV1b'@; put 'cF0uY2hhckNvZGVBdCgwKSYmKERbX1sxNzldW3BdXT00NTgyNCtwLGJbNDU4MjQrcF09X1sxNzldW3BdKTtmb3IoX1sxODBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc4ODRcdTc4ODVcdTc4ODZcdTc4ODhcdTc4OGFcdTc4OGJc'@; put 'dTc4OGZcdTc4OTBcdTc4OTJcdTc4OTRcdTc4OTVcdTc4OTZcdTc4OTlcdTc4OWRcdTc4OWVcdTc4YTBcdTc4YTJcdTc4YTRcdTc4YTZcdTc4YThcdTc4YTlcdTc4YWFcdTc4YWJcdTc4YWNcdTc4YWRcdTc4YWVcdTc4YWZcdTc4YjVcdTc4YjZcdTc4YjdcdTc4YjhcdTc4YmFcdTc4YmJcdTc4'@; put 'YmNcdTc4YmRcdTc4YmZcdTc4YzBcdTc4YzJcdTc4YzNcdTc4YzRcdTc4YzZcdTc4YzdcdTc4YzhcdTc4Y2NcdTc4Y2RcdTc4Y2VcdTc4Y2ZcdTc4ZDFcdTc4ZDJcdTc4ZDNcdTc4ZDZcdTc4ZDdcdTc4ZDhcdTc4ZGFcdTc4ZGJcdTc4ZGNcdTc4ZGRcdTc4ZGVcdTc4ZGZcdTc4ZTBcdTc4ZTFc'@; put 'dTc4ZTJcdTc4ZTNcdWZmZmRcdTc4ZTRcdTc4ZTVcdTc4ZTZcdTc4ZTdcdTc4ZTlcdTc4ZWFcdTc4ZWJcdTc4ZWRcdTc4ZWVcdTc4ZWZcdTc4ZjBcdTc4ZjFcdTc4ZjNcdTc4ZjVcdTc4ZjZcdTc4ZjhcdTc4ZjlcdTc4ZmJcdTc4ZmNcdTc4ZmRcdTc4ZmVcdTc4ZmZcdTc5MDBcdTc5MDJcdTc5'@; put 'MDNcdTc5MDRcdTc5MDZcdTc5MDdcdTc5MDhcdTc5MDlcdTc5MGFcdTc5MGJcdTc5MGNcdTc4NDBcdTUwYThcdTc3ZDdcdTY0MTBcdTg5ZTZcdTU5MDRcdTYzZTNcdTVkZGRcdTdhN2ZcdTY5M2RcdTRmMjBcdTgyMzlcdTU1OThcdTRlMzJcdTc1YWVcdTdhOTdcdTVlNjJcdTVlOGFcdTk1ZWZc'@; put 'dTUyMWJcdTU0MzlcdTcwOGFcdTYzNzZcdTk1MjRcdTU3ODJcdTY2MjVcdTY5M2ZcdTkxODdcdTU1MDdcdTZkZjNcdTdlYWZcdTg4MjJcdTYyMzNcdTdlZjBcdTc1YjVcdTgzMjhcdTc4YzFcdTk2Y2NcdThmOWVcdTYxNDhcdTc0ZjdcdThiY2RcdTZiNjRcdTUyM2FcdThkNTBcdTZiMjFcdTgw'@; put 'NmFcdTg0NzFcdTU2ZjFcdTUzMDZcdTRlY2VcdTRlMWJcdTUxZDFcdTdjOTdcdTkxOGJcdTdjMDdcdTRmYzNcdThlN2ZcdTdiZTFcdTdhOWNcdTY0NjdcdTVkMTRcdTUwYWNcdTgxMDZcdTc2MDFcdTdjYjlcdTZkZWNcdTdmZTBcdTY3NTFcdTViNThcdTViZjhcdTc4Y2JcdTY0YWVcdTY0MTNc'@; put 'dTYzYWFcdTYzMmJcdTk1MTlcdTY0MmRcdThmYmVcdTdiNTRcdTc2MjlcdTYyNTNcdTU5MjdcdTU0NDZcdTZiNzlcdTUwYTNcdTYyMzRcdTVlMjZcdTZiODZcdTRlZTNcdThkMzdcdTg4OGJcdTVmODVcdTkwMmVcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxODBdLmxlbmd0aDsrK3ApNjU1'@; put 'MzMhPT1fWzE4MF1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxODBdW3BdXT00NjA4MCtwLGJbNDYwODArcF09X1sxODBdW3BdKTtmb3IoX1sxODFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc5MGRcdTc5MGVcdTc5MGZcdTc5MTBc'@; put 'dTc5MTFcdTc5MTJcdTc5MTRcdTc5MTVcdTc5MTZcdTc5MTdcdTc5MThcdTc5MTlcdTc5MWFcdTc5MWJcdTc5MWNcdTc5MWRcdTc5MWZcdTc5MjBcdTc5MjFcdTc5MjJcdTc5MjNcdTc5MjVcdTc5MjZcdTc5MjdcdTc5MjhcdTc5MjlcdTc5MmFcdTc5MmJcdTc5MmNcdTc5MmRcdTc5MmVcdTc5'@; put 'MmZcdTc5MzBcdTc5MzFcdTc5MzJcdTc5MzNcdTc5MzVcdTc5MzZcdTc5MzdcdTc5MzhcdTc5MzlcdTc5M2RcdTc5M2ZcdTc5NDJcdTc5NDNcdTc5NDRcdTc5NDVcdTc5NDdcdTc5NGFcdTc5NGJcdTc5NGNcdTc5NGRcdTc5NGVcdTc5NGZcdTc5NTBcdTc5NTFcdTc5NTJcdTc5NTRcdTc5NTVc'@; put 'dTc5NThcdTc5NTlcdTc5NjFcdTc5NjNcdWZmZmRcdTc5NjRcdTc5NjZcdTc5NjlcdTc5NmFcdTc5NmJcdTc5NmNcdTc5NmVcdTc5NzBcdTc5NzFcdTc5NzJcdTc5NzNcdTc5NzRcdTc5NzVcdTc5NzZcdTc5NzlcdTc5N2JcdTc5N2NcdTc5N2RcdTc5N2VcdTc5N2ZcdTc5ODJcdTc5ODNcdTc5'@; put 'ODZcdTc5ODdcdTc5ODhcdTc5ODlcdTc5OGJcdTc5OGNcdTc5OGRcdTc5OGVcdTc5OTBcdTc5OTFcdTc5OTJcdTYwMjBcdTgwM2RcdTYyYzVcdTRlMzlcdTUzNTVcdTkwZjhcdTYzYjhcdTgwYzZcdTY1ZTZcdTZjMmVcdTRmNDZcdTYwZWVcdTZkZTFcdThiZGVcdTVmMzlcdTg2Y2JcdTVmNTNc'@; put 'dTYzMjFcdTUxNWFcdTgzNjFcdTY4NjNcdTUyMDBcdTYzNjNcdThlNDhcdTUwMTJcdTVjOWJcdTc5NzdcdTViZmNcdTUyMzBcdTdhM2JcdTYwYmNcdTkwNTNcdTc2ZDdcdTVmYjdcdTVmOTdcdTc2ODRcdThlNmNcdTcwNmZcdTc2N2JcdTdiNDlcdTc3YWFcdTUxZjNcdTkwOTNcdTU4MjRcdTRm'@; put 'NGVcdTZlZjRcdThmZWFcdTY1NGNcdTdiMWJcdTcyYzRcdTZkYTRcdTdmZGZcdTVhZTFcdTYyYjVcdTVlOTVcdTU3MzBcdTg0ODJcdTdiMmNcdTVlMWRcdTVmMWZcdTkwMTJcdTdmMTRcdTk4YTBcdTYzODJcdTZlYzdcdTc4OThcdTcwYjlcdTUxNzhcdTk3NWJcdTU3YWJcdTc1MzVcdTRmNDNc'@; put 'dTc1MzhcdTVlOTdcdTYwZTZcdTU5NjBcdTZkYzBcdTZiYmZcdTc4ODlcdTUzZmNcdTk2ZDVcdTUxY2JcdTUyMDFcdTYzODlcdTU0MGFcdTk0OTNcdThjMDNcdThkY2NcdTcyMzlcdTc4OWZcdTg3NzZcdThmZWRcdThjMGRcdTUzZTBcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxODFdLmxl'@; put 'bmd0aDsrK3ApNjU1MzMhPT1fWzE4MV1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxODFdW3BdXT00NjMzNitwLGJbNDYzMzYrcF09X1sxODFdW3BdKTtmb3IoX1sxODJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc5OTNcdTc5OTRc'@; put 'dTc5OTVcdTc5OTZcdTc5OTdcdTc5OThcdTc5OTlcdTc5OWJcdTc5OWNcdTc5OWRcdTc5OWVcdTc5OWZcdTc5YTBcdTc5YTFcdTc5YTJcdTc5YTNcdTc5YTRcdTc5YTVcdTc5YTZcdTc5YThcdTc5YTlcdTc5YWFcdTc5YWJcdTc5YWNcdTc5YWRcdTc5YWVcdTc5YWZcdTc5YjBcdTc5YjFcdTc5'@; put 'YjJcdTc5YjRcdTc5YjVcdTc5YjZcdTc5YjdcdTc5YjhcdTc5YmNcdTc5YmZcdTc5YzJcdTc5YzRcdTc5YzVcdTc5YzdcdTc5YzhcdTc5Y2FcdTc5Y2NcdTc5Y2VcdTc5Y2ZcdTc5ZDBcdTc5ZDNcdTc5ZDRcdTc5ZDZcdTc5ZDdcdTc5ZDlcdTc5ZGFcdTc5ZGJcdTc5ZGNcdTc5ZGRcdTc5ZGVc'@; put 'dTc5ZTBcdTc5ZTFcdTc5ZTJcdTc5ZTVcdTc5ZThcdTc5ZWFcdWZmZmRcdTc5ZWNcdTc5ZWVcdTc5ZjFcdTc5ZjJcdTc5ZjNcdTc5ZjRcdTc5ZjVcdTc5ZjZcdTc5ZjdcdTc5ZjlcdTc5ZmFcdTc5ZmNcdTc5ZmVcdTc5ZmZcdTdhMDFcdTdhMDRcdTdhMDVcdTdhMDdcdTdhMDhcdTdhMDlcdTdh'@; put 'MGFcdTdhMGNcdTdhMGZcdTdhMTBcdTdhMTFcdTdhMTJcdTdhMTNcdTdhMTVcdTdhMTZcdTdhMThcdTdhMTlcdTdhMWJcdTdhMWNcdTRlMDFcdTc2ZWZcdTUzZWVcdTk0ODlcdTk4NzZcdTlmMGVcdTk1MmRcdTViOWFcdThiYTJcdTRlMjJcdTRlMWNcdTUxYWNcdTg0NjNcdTYxYzJcdTUyYThc'@; put 'dTY4MGJcdTRmOTdcdTYwNmJcdTUxYmJcdTZkMWVcdTUxNWNcdTYyOTZcdTY1OTdcdTk2NjFcdThjNDZcdTkwMTdcdTc1ZDhcdTkwZmRcdTc3NjNcdTZiZDJcdTcyOGFcdTcyZWNcdThiZmJcdTU4MzVcdTc3NzlcdThkNGNcdTY3NWNcdTk1NDBcdTgwOWFcdTVlYTZcdTZlMjFcdTU5OTJcdTdh'@; put 'ZWZcdTc3ZWRcdTk1M2JcdTZiYjVcdTY1YWRcdTdmMGVcdTU4MDZcdTUxNTFcdTk2MWZcdTViZjlcdTU4YTlcdTU0MjhcdThlNzJcdTY1NjZcdTk4N2ZcdTU2ZTRcdTk0OWRcdTc2ZmVcdTkwNDFcdTYzODdcdTU0YzZcdTU5MWFcdTU5M2FcdTU3OWJcdThlYjJcdTY3MzVcdThkZmFcdTgyMzVc'@; put 'dTUyNDFcdTYwZjBcdTU4MTVcdTg2ZmVcdTVjZThcdTllNDVcdTRmYzRcdTk4OWRcdThiYjlcdTVhMjVcdTYwNzZcdTUzODRcdTYyN2NcdTkwNGZcdTkxMDJcdTk5N2ZcdTYwNjlcdTgwMGNcdTUxM2ZcdTgwMzNcdTVjMTRcdTk5NzVcdTZkMzFcdTRlOGNcdWZmZmQiLnNwbGl0KCIiKSxwPTA7'@; put 'cCE9X1sxODJdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE4Ml1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxODJdW3BdXT00NjU5MitwLGJbNDY1OTIrcF09X1sxODJdW3BdKTtmb3IoX1sxODNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dTdhMWRcdTdhMWZcdTdhMjFcdTdhMjJcdTdhMjRcdTdhMjVcdTdhMjZcdTdhMjdcdTdhMjhcdTdhMjlcdTdhMmFcdTdhMmJcdTdhMmNcdTdhMmRcdTdhMmVcdTdhMmZcdTdhMzBcdTdhMzFcdTdhMzJcdTdhMzRcdTdhMzVcdTdhMzZcdTdhMzhcdTdhM2FcdTdhM2VcdTdhNDBcdTdhNDFcdTdh'@; put 'NDJcdTdhNDNcdTdhNDRcdTdhNDVcdTdhNDdcdTdhNDhcdTdhNDlcdTdhNGFcdTdhNGJcdTdhNGNcdTdhNGRcdTdhNGVcdTdhNGZcdTdhNTBcdTdhNTJcdTdhNTNcdTdhNTRcdTdhNTVcdTdhNTZcdTdhNThcdTdhNTlcdTdhNWFcdTdhNWJcdTdhNWNcdTdhNWRcdTdhNWVcdTdhNWZcdTdhNjBc'@; put 'dTdhNjFcdTdhNjJcdTdhNjNcdTdhNjRcdTdhNjVcdTdhNjZcdTdhNjdcdTdhNjhcdWZmZmRcdTdhNjlcdTdhNmFcdTdhNmJcdTdhNmNcdTdhNmRcdTdhNmVcdTdhNmZcdTdhNzFcdTdhNzJcdTdhNzNcdTdhNzVcdTdhN2JcdTdhN2NcdTdhN2RcdTdhN2VcdTdhODJcdTdhODVcdTdhODdcdTdh'@; put 'ODlcdTdhOGFcdTdhOGJcdTdhOGNcdTdhOGVcdTdhOGZcdTdhOTBcdTdhOTNcdTdhOTRcdTdhOTlcdTdhOWFcdTdhOWJcdTdhOWVcdTdhYTFcdTdhYTJcdThkMzBcdTUzZDFcdTdmNWFcdTdiNGZcdTRmMTBcdTRlNGZcdTk2MDBcdTZjZDVcdTczZDBcdTg1ZTlcdTVlMDZcdTc1NmFcdTdmZmJc'@; put 'dTZhMGFcdTc3ZmVcdTk0OTJcdTdlNDFcdTUxZTFcdTcwZTZcdTUzY2RcdThmZDRcdTgzMDNcdThkMjlcdTcyYWZcdTk5NmRcdTZjZGJcdTU3NGFcdTgyYjNcdTY1YjlcdTgwYWFcdTYyM2ZcdTk2MzJcdTU5YThcdTRlZmZcdThiYmZcdTdlYmFcdTY1M2VcdTgzZjJcdTk3NWVcdTU1NjFcdTk4'@; put 'ZGVcdTgwYTVcdTUzMmFcdThiZmRcdTU0MjBcdTgwYmFcdTVlOWZcdTZjYjhcdThkMzlcdTgyYWNcdTkxNWFcdTU0MjlcdTZjMWJcdTUyMDZcdTdlYjdcdTU3NWZcdTcxMWFcdTZjN2VcdTdjODlcdTU5NGJcdTRlZmRcdTVmZmZcdTYxMjRcdTdjYWFcdTRlMzBcdTVjMDFcdTY3YWJcdTg3MDJc'@; put 'dTVjZjBcdTk1MGJcdTk4Y2VcdTc1YWZcdTcwZmRcdTkwMjJcdTUxYWZcdTdmMWRcdThiYmRcdTU5NDlcdTUxZTRcdTRmNWJcdTU0MjZcdTU5MmJcdTY1NzdcdTgwYTRcdTViNzVcdTYyNzZcdTYyYzJcdThmOTBcdTVlNDVcdTZjMWZcdTdiMjZcdTRmMGZcdTRmZDhcdTY3MGRcdWZmZmQiLnNw'@; put 'bGl0KCIiKSxwPTA7cCE9X1sxODNdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE4M11bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxODNdW3BdXT00Njg0OCtwLGJbNDY4NDgrcF09X1sxODNdW3BdKTtmb3IoX1sxODRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdTdhYTNcdTdhYTRcdTdhYTdcdTdhYTlcdTdhYWFcdTdhYWJcdTdhYWVcdTdhYWZcdTdhYjBcdTdhYjFcdTdhYjJcdTdhYjRcdTdhYjVcdTdhYjZcdTdhYjdcdTdhYjhcdTdhYjlcdTdhYmFcdTdhYmJcdTdhYmNcdTdhYmRcdTdhYmVcdTdhYzBcdTdhYzFcdTdhYzJcdTdh'@; put 'YzNcdTdhYzRcdTdhYzVcdTdhYzZcdTdhYzdcdTdhYzhcdTdhYzlcdTdhY2FcdTdhY2NcdTdhY2RcdTdhY2VcdTdhY2ZcdTdhZDBcdTdhZDFcdTdhZDJcdTdhZDNcdTdhZDRcdTdhZDVcdTdhZDdcdTdhZDhcdTdhZGFcdTdhZGJcdTdhZGNcdTdhZGRcdTdhZTFcdTdhZTJcdTdhZTRcdTdhZTdc'@; put 'dTdhZThcdTdhZTlcdTdhZWFcdTdhZWJcdTdhZWNcdTdhZWVcdTdhZjBcdTdhZjFcdTdhZjJcdTdhZjNcdWZmZmRcdTdhZjRcdTdhZjVcdTdhZjZcdTdhZjdcdTdhZjhcdTdhZmJcdTdhZmNcdTdhZmVcdTdiMDBcdTdiMDFcdTdiMDJcdTdiMDVcdTdiMDdcdTdiMDlcdTdiMGNcdTdiMGRcdTdi'@; put 'MGVcdTdiMTBcdTdiMTJcdTdiMTNcdTdiMTZcdTdiMTdcdTdiMThcdTdiMWFcdTdiMWNcdTdiMWRcdTdiMWZcdTdiMjFcdTdiMjJcdTdiMjNcdTdiMjdcdTdiMjlcdTdiMmRcdTZkNmVcdTZkYWFcdTc5OGZcdTg4YjFcdTVmMTdcdTc1MmJcdTYyOWFcdThmODVcdTRmZWZcdTkxZGNcdTY1YTdc'@; put 'dTgxMmZcdTgxNTFcdTVlOWNcdTgxNTBcdThkNzRcdTUyNmZcdTg5ODZcdThkNGJcdTU5MGRcdTUwODVcdTRlZDhcdTk2MWNcdTcyMzZcdTgxNzlcdThkMWZcdTViY2NcdThiYTNcdTk2NDRcdTU5ODdcdTdmMWFcdTU0OTBcdTU2NzZcdTU2MGVcdThiZTVcdTY1MzlcdTY5ODJcdTk0OTlcdTc2'@; put 'ZDZcdTZlODlcdTVlNzJcdTc1MThcdTY3NDZcdTY3ZDFcdTdhZmZcdTgwOWRcdThkNzZcdTYxMWZcdTc5YzZcdTY1NjJcdThkNjNcdTUxODhcdTUyMWFcdTk0YTJcdTdmMzhcdTgwOWJcdTdlYjJcdTVjOTdcdTZlMmZcdTY3NjBcdTdiZDlcdTc2OGJcdTlhZDhcdTgxOGZcdTdmOTRcdTdjZDVc'@; put 'dTY0MWVcdTk1NTBcdTdhM2ZcdTU0NGFcdTU0ZTVcdTZiNGNcdTY0MDFcdTYyMDhcdTllM2RcdTgwZjNcdTc1OTlcdTUyNzJcdTk3NjlcdTg0NWJcdTY4M2NcdTg2ZTRcdTk2MDFcdTk2OTRcdTk0ZWNcdTRlMmFcdTU0MDRcdTdlZDlcdTY4MzlcdThkZGZcdTgwMTVcdTY2ZjRcdTVlOWFcdTdm'@; put 'YjlcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxODRdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE4NF1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxODRdW3BdXT00NzEwNCtwLGJbNDcxMDQrcF09X1sxODRdW3BdKTtmb3IoX1sxODVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdiMmZcdTdiMzBcdTdiMzJcdTdiMzRcdTdiMzVcdTdiMzZcdTdiMzdcdTdiMzlcdTdiM2JcdTdiM2RcdTdiM2ZcdTdiNDBcdTdiNDFcdTdiNDJcdTdiNDNcdTdiNDRcdTdiNDZcdTdiNDhcdTdiNGFcdTdiNGRcdTdiNGVcdTdiNTNcdTdiNTVcdTdi'@; put 'NTdcdTdiNTlcdTdiNWNcdTdiNWVcdTdiNWZcdTdiNjFcdTdiNjNcdTdiNjRcdTdiNjVcdTdiNjZcdTdiNjdcdTdiNjhcdTdiNjlcdTdiNmFcdTdiNmJcdTdiNmNcdTdiNmRcdTdiNmZcdTdiNzBcdTdiNzNcdTdiNzRcdTdiNzZcdTdiNzhcdTdiN2FcdTdiN2NcdTdiN2RcdTdiN2ZcdTdiODFc'@; put 'dTdiODJcdTdiODNcdTdiODRcdTdiODZcdTdiODdcdTdiODhcdTdiODlcdTdiOGFcdTdiOGJcdTdiOGNcdTdiOGVcdTdiOGZcdWZmZmRcdTdiOTFcdTdiOTJcdTdiOTNcdTdiOTZcdTdiOThcdTdiOTlcdTdiOWFcdTdiOWJcdTdiOWVcdTdiOWZcdTdiYTBcdTdiYTNcdTdiYTRcdTdiYTVcdTdi'@; put 'YWVcdTdiYWZcdTdiYjBcdTdiYjJcdTdiYjNcdTdiYjVcdTdiYjZcdTdiYjdcdTdiYjlcdTdiYmFcdTdiYmJcdTdiYmNcdTdiYmRcdTdiYmVcdTdiYmZcdTdiYzBcdTdiYzJcdTdiYzNcdTdiYzRcdTU3YzJcdTgwM2ZcdTY4OTdcdTVkZTVcdTY1M2JcdTUyOWZcdTYwNmRcdTlmOWFcdTRmOWJc'@; put 'dThlYWNcdTUxNmNcdTViYWJcdTVmMTNcdTVkZTlcdTZjNWVcdTYyZjFcdThkMjFcdTUxNzFcdTk0YTlcdTUyZmVcdTZjOWZcdTgyZGZcdTcyZDdcdTU3YTJcdTY3ODRcdThkMmRcdTU5MWZcdThmOWNcdTgzYzdcdTU0OTVcdTdiOGRcdTRmMzBcdTZjYmRcdTViNjRcdTU5ZDFcdTlmMTNcdTUz'@; put 'ZTRcdTg2Y2FcdTlhYThcdThjMzdcdTgwYTFcdTY1NDVcdTk4N2VcdTU2ZmFcdTk2YzdcdTUyMmVcdTc0ZGNcdTUyNTBcdTViZTFcdTYzMDJcdTg5MDJcdTRlNTZcdTYyZDBcdTYwMmFcdTY4ZmFcdTUxNzNcdTViOThcdTUxYTBcdTg5YzJcdTdiYTFcdTk5ODZcdTdmNTBcdTYwZWZcdTcwNGNc'@; put 'dThkMmZcdTUxNDlcdTVlN2ZcdTkwMWJcdTc0NzBcdTg5YzRcdTU3MmRcdTc4NDVcdTVmNTJcdTlmOWZcdTk1ZmFcdThmNjhcdTliM2NcdThiZTFcdTc2NzhcdTY4NDJcdTY3ZGNcdThkZWFcdThkMzVcdTUyM2RcdThmOGFcdTZlZGFcdTY4Y2RcdTk1MDVcdTkwZWRcdTU2ZmRcdTY3OWNcdTg4'@; put 'ZjlcdThmYzdcdTU0YzhcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxODVdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE4NV1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxODVdW3BdXT00NzM2MCtwLGJbNDczNjArcF09X1sxODVdW3BdKTtmb3IoX1sxODZdPSJcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdiYzVcdTdiYzhcdTdiYzlcdTdiY2FcdTdiY2JcdTdiY2RcdTdiY2VcdTdiY2ZcdTdiZDBcdTdiZDJcdTdiZDRcdTdiZDVcdTdiZDZcdTdiZDdcdTdiZDhcdTdiZGJcdTdiZGNcdTdiZGVcdTdiZGZcdTdiZTBcdTdiZTJcdTdi'@; put 'ZTNcdTdiZTRcdTdiZTdcdTdiZThcdTdiZTlcdTdiZWJcdTdiZWNcdTdiZWRcdTdiZWZcdTdiZjBcdTdiZjJcdTdiZjNcdTdiZjRcdTdiZjVcdTdiZjZcdTdiZjhcdTdiZjlcdTdiZmFcdTdiZmJcdTdiZmRcdTdiZmZcdTdjMDBcdTdjMDFcdTdjMDJcdTdjMDNcdTdjMDRcdTdjMDVcdTdjMDZc'@; put 'dTdjMDhcdTdjMDlcdTdjMGFcdTdjMGRcdTdjMGVcdTdjMTBcdTdjMTFcdTdjMTJcdTdjMTNcdTdjMTRcdTdjMTVcdTdjMTdcdTdjMThcdTdjMTlcdWZmZmRcdTdjMWFcdTdjMWJcdTdjMWNcdTdjMWRcdTdjMWVcdTdjMjBcdTdjMjFcdTdjMjJcdTdjMjNcdTdjMjRcdTdjMjVcdTdjMjhcdTdj'@; put 'MjlcdTdjMmJcdTdjMmNcdTdjMmRcdTdjMmVcdTdjMmZcdTdjMzBcdTdjMzFcdTdjMzJcdTdjMzNcdTdjMzRcdTdjMzVcdTdjMzZcdTdjMzdcdTdjMzlcdTdjM2FcdTdjM2JcdTdjM2NcdTdjM2RcdTdjM2VcdTdjNDJcdTlhYjhcdTViNjlcdTZkNzdcdTZjMjZcdTRlYTVcdTViYjNcdTlhODdc'@; put 'dTkxNjNcdTYxYThcdTkwYWZcdTk3ZTlcdTU0MmJcdTZkYjVcdTViZDJcdTUxZmRcdTU1OGFcdTdmNTVcdTdmZjBcdTY0YmNcdTYzNGRcdTY1ZjFcdTYxYmVcdTYwOGRcdTcxMGFcdTZjNTdcdTZjNDlcdTU5MmZcdTY3NmRcdTgyMmFcdTU4ZDVcdTU2OGVcdThjNmFcdTZiZWJcdTkwZGRcdTU5'@; put 'N2RcdTgwMTdcdTUzZjdcdTZkNjlcdTU0NzVcdTU1OWRcdTgzNzdcdTgzY2ZcdTY4MzhcdTc5YmVcdTU0OGNcdTRmNTVcdTU0MDhcdTc2ZDJcdThjODlcdTk2MDJcdTZjYjNcdTZkYjhcdThkNmJcdTg5MTBcdTllNjRcdThkM2FcdTU2M2ZcdTllZDFcdTc1ZDVcdTVmODhcdTcyZTBcdTYwNjhc'@; put 'dTU0ZmNcdTRlYThcdTZhMmFcdTg4NjFcdTYwNTJcdThmNzBcdTU0YzRcdTcwZDhcdTg2NzlcdTllM2ZcdTZkMmFcdTViOGZcdTVmMThcdTdlYTJcdTU1ODlcdTRmYWZcdTczMzRcdTU0M2NcdTUzOWFcdTUwMTlcdTU0MGVcdTU0N2NcdTRlNGVcdTVmZmRcdTc0NWFcdTU4ZjZcdTg0NmJcdTgw'@; put 'ZTFcdTg3NzRcdTcyZDBcdTdjY2FcdTZlNTZcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxODZdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE4Nl1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxODZdW3BdXT00NzYxNitwLGJbNDc2MTYrcF09X1sxODZdW3BdKTtmb3IoX1sxODddPSJcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdjNDNcdTdjNDRcdTdjNDVcdTdjNDZcdTdjNDdcdTdjNDhcdTdjNDlcdTdjNGFcdTdjNGJcdTdjNGNcdTdjNGVcdTdjNGZcdTdjNTBcdTdjNTFcdTdjNTJcdTdjNTNcdTdjNTRcdTdjNTVcdTdjNTZcdTdj'@; put 'NTdcdTdjNThcdTdjNTlcdTdjNWFcdTdjNWJcdTdjNWNcdTdjNWRcdTdjNWVcdTdjNWZcdTdjNjBcdTdjNjFcdTdjNjJcdTdjNjNcdTdjNjRcdTdjNjVcdTdjNjZcdTdjNjdcdTdjNjhcdTdjNjlcdTdjNmFcdTdjNmJcdTdjNmNcdTdjNmRcdTdjNmVcdTdjNmZcdTdjNzBcdTdjNzFcdTdjNzJc'@; put 'dTdjNzVcdTdjNzZcdTdjNzdcdTdjNzhcdTdjNzlcdTdjN2FcdTdjN2VcdTdjN2ZcdTdjODBcdTdjODFcdTdjODJcdTdjODNcdTdjODRcdTdjODVcdTdjODZcdTdjODdcdWZmZmRcdTdjODhcdTdjOGFcdTdjOGJcdTdjOGNcdTdjOGRcdTdjOGVcdTdjOGZcdTdjOTBcdTdjOTNcdTdjOTRcdTdj'@; put 'OTZcdTdjOTlcdTdjOWFcdTdjOWJcdTdjYTBcdTdjYTFcdTdjYTNcdTdjYTZcdTdjYTdcdTdjYThcdTdjYTlcdTdjYWJcdTdjYWNcdTdjYWRcdTdjYWZcdTdjYjBcdTdjYjRcdTdjYjVcdTdjYjZcdTdjYjdcdTdjYjhcdTdjYmFcdTdjYmJcdTVmMjdcdTg2NGVcdTU1MmNcdTYyYTRcdTRlOTJc'@; put 'dTZjYWFcdTYyMzdcdTgyYjFcdTU0ZDdcdTUzNGVcdTczM2VcdTZlZDFcdTc1M2JcdTUyMTJcdTUzMTZcdThiZGRcdTY5ZDBcdTVmOGFcdTYwMDBcdTZkZWVcdTU3NGZcdTZiMjJcdTczYWZcdTY4NTNcdThmZDhcdTdmMTNcdTYzNjJcdTYwYTNcdTU1MjRcdTc1ZWFcdThjNjJcdTcxMTVcdTZk'@; put 'YTNcdTViYTZcdTVlN2JcdTgzNTJcdTYxNGNcdTllYzRcdTc4ZmFcdTg3NTdcdTdjMjdcdTc2ODdcdTUxZjBcdTYwZjZcdTcxNGNcdTY2NDNcdTVlNGNcdTYwNGRcdThjMGVcdTcwNzBcdTYzMjVcdThmODlcdTVmYmRcdTYwNjJcdTg2ZDRcdTU2ZGVcdTZiYzFcdTYwOTRcdTYxNjdcdTUzNDlc'@; put 'dTYwZTBcdTY2NjZcdThkM2ZcdTc5ZmRcdTRmMWFcdTcwZTlcdTZjNDdcdThiYjNcdThiZjJcdTdlZDhcdTgzNjRcdTY2MGZcdTVhNWFcdTliNDJcdTZkNTFcdTZkZjdcdThjNDFcdTZkM2JcdTRmMTlcdTcwNmJcdTgzYjdcdTYyMTZcdTYwZDFcdTk3MGRcdThkMjdcdTc5NzhcdTUxZmJcdTU3'@; put 'M2VcdTU3ZmFcdTY3M2FcdTc1NzhcdTdhM2RcdTc5ZWZcdTdiOTVcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxODddLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE4N11bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxODddW3BdXT00Nzg3MitwLGJbNDc4NzIrcF09X1sxODddW3BdKTtmb3IoX1sx'@; put 'ODhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdjYmZcdTdjYzBcdTdjYzJcdTdjYzNcdTdjYzRcdTdjYzZcdTdjYzlcdTdjY2JcdTdjY2VcdTdjY2ZcdTdjZDBcdTdjZDFcdTdjZDJcdTdjZDNcdTdjZDRcdTdjZDhcdTdjZGFcdTdj'@; put 'ZGJcdTdjZGRcdTdjZGVcdTdjZTFcdTdjZTJcdTdjZTNcdTdjZTRcdTdjZTVcdTdjZTZcdTdjZTdcdTdjZTlcdTdjZWFcdTdjZWJcdTdjZWNcdTdjZWRcdTdjZWVcdTdjZjBcdTdjZjFcdTdjZjJcdTdjZjNcdTdjZjRcdTdjZjVcdTdjZjZcdTdjZjdcdTdjZjlcdTdjZmFcdTdjZmNcdTdjZmRc'@; put 'dTdjZmVcdTdjZmZcdTdkMDBcdTdkMDFcdTdkMDJcdTdkMDNcdTdkMDRcdTdkMDVcdTdkMDZcdTdkMDdcdTdkMDhcdTdkMDlcdTdkMGJcdTdkMGNcdTdkMGRcdTdkMGVcdTdkMGZcdTdkMTBcdWZmZmRcdTdkMTFcdTdkMTJcdTdkMTNcdTdkMTRcdTdkMTVcdTdkMTZcdTdkMTdcdTdkMThcdTdk'@; put 'MTlcdTdkMWFcdTdkMWJcdTdkMWNcdTdkMWRcdTdkMWVcdTdkMWZcdTdkMjFcdTdkMjNcdTdkMjRcdTdkMjVcdTdkMjZcdTdkMjhcdTdkMjlcdTdkMmFcdTdkMmNcdTdkMmRcdTdkMmVcdTdkMzBcdTdkMzFcdTdkMzJcdTdkMzNcdTdkMzRcdTdkMzVcdTdkMzZcdTgwOGNcdTk5NjVcdThmZjlc'@; put 'dTZmYzBcdThiYTVcdTllMjFcdTU5ZWNcdTdlZTlcdTdmMDlcdTU0MDlcdTY3ODFcdTY4ZDhcdThmOTFcdTdjNGRcdTk2YzZcdTUzY2FcdTYwMjVcdTc1YmVcdTZjNzJcdTUzNzNcdTVhYzlcdTdlYTdcdTYzMjRcdTUxZTBcdTgxMGFcdTVkZjFcdTg0ZGZcdTYyODBcdTUxODBcdTViNjNcdTRm'@; put 'MGVcdTc5NmRcdTUyNDJcdTYwYjhcdTZkNGVcdTViYzRcdTViYzJcdThiYTFcdThiYjBcdTY1ZTJcdTVmY2NcdTk2NDVcdTU5OTNcdTdlZTdcdTdlYWFcdTU2MDlcdTY3YjdcdTU5MzlcdTRmNzNcdTViYjZcdTUyYTBcdTgzNWFcdTk4OGFcdThkM2VcdTc1MzJcdTk0YmVcdTUwNDdcdTdhM2Nc'@; put 'dTRlZjdcdTY3YjZcdTlhN2VcdTVhYzFcdTZiN2NcdTc2ZDFcdTU3NWFcdTVjMTZcdTdiM2FcdTk1ZjRcdTcxNGVcdTUxN2NcdTgwYTlcdTgyNzBcdTU5NzhcdTdmMDRcdTgzMjdcdTY4YzBcdTY3ZWNcdTc4YjFcdTc4NzdcdTYyZTNcdTYzNjFcdTdiODBcdTRmZWRcdTUyNmFcdTUxY2ZcdTgz'@; put 'NTBcdTY5ZGJcdTkyNzRcdThkZjVcdThkMzFcdTg5YzFcdTk1MmVcdTdiYWRcdTRlZjZcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxODhdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE4OF1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxODhdW3BdXT00ODEyOCtwLGJbNDgxMjgrcF09X1sxODhd'@; put 'W3BdKTtmb3IoX1sxODldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdkMzdcdTdkMzhcdTdkMzlcdTdkM2FcdTdkM2JcdTdkM2NcdTdkM2RcdTdkM2VcdTdkM2ZcdTdkNDBcdTdkNDFcdTdkNDJcdTdkNDNcdTdkNDRcdTdkNDVcdTdk'@; put 'NDZcdTdkNDdcdTdkNDhcdTdkNDlcdTdkNGFcdTdkNGJcdTdkNGNcdTdkNGRcdTdkNGVcdTdkNGZcdTdkNTBcdTdkNTFcdTdkNTJcdTdkNTNcdTdkNTRcdTdkNTVcdTdkNTZcdTdkNTdcdTdkNThcdTdkNTlcdTdkNWFcdTdkNWJcdTdkNWNcdTdkNWRcdTdkNWVcdTdkNWZcdTdkNjBcdTdkNjFc'@; put 'dTdkNjJcdTdkNjNcdTdkNjRcdTdkNjVcdTdkNjZcdTdkNjdcdTdkNjhcdTdkNjlcdTdkNmFcdTdkNmJcdTdkNmNcdTdkNmRcdTdkNmZcdTdkNzBcdTdkNzFcdTdkNzJcdTdkNzNcdTdkNzRcdTdkNzVcdTdkNzZcdWZmZmRcdTdkNzhcdTdkNzlcdTdkN2FcdTdkN2JcdTdkN2NcdTdkN2RcdTdk'@; put 'N2VcdTdkN2ZcdTdkODBcdTdkODFcdTdkODJcdTdkODNcdTdkODRcdTdkODVcdTdkODZcdTdkODdcdTdkODhcdTdkODlcdTdkOGFcdTdkOGJcdTdkOGNcdTdkOGRcdTdkOGVcdTdkOGZcdTdkOTBcdTdkOTFcdTdkOTJcdTdkOTNcdTdkOTRcdTdkOTVcdTdkOTZcdTdkOTdcdTdkOThcdTUwNjVc'@; put 'dTgyMzBcdTUyNTFcdTk5NmZcdTZlMTBcdTZlODVcdTZkYTdcdTVlZmFcdTUwZjVcdTU5ZGNcdTVjMDZcdTZkNDZcdTZjNWZcdTc1ODZcdTg0OGJcdTY4NjhcdTU5NTZcdThiYjJcdTUzMjBcdTkxNzFcdTk2NGRcdTg1NDlcdTY5MTJcdTc5MDFcdTcxMjZcdTgwZjZcdTRlYTRcdTkwY2FcdTZk'@; put 'NDdcdTlhODRcdTVhMDdcdTU2YmNcdTY0MDVcdTk0ZjBcdTc3ZWJcdTRmYTVcdTgxMWFcdTcyZTFcdTg5ZDJcdTk5N2FcdTdmMzRcdTdlZGVcdTUyN2ZcdTY1NTlcdTkxNzVcdThmN2ZcdThmODNcdTUzZWJcdTdhOTZcdTYzZWRcdTYzYTVcdTc2ODZcdTc5ZjhcdTg4NTdcdTk2MzZcdTYyMmFc'@; put 'dTUyYWJcdTgyODJcdTY4NTRcdTY3NzBcdTYzNzdcdTc3NmJcdTdhZWRcdTZkMDFcdTdlZDNcdTg5ZTNcdTU5ZDBcdTYyMTJcdTg1YzlcdTgyYTVcdTc1NGNcdTUwMWZcdTRlY2JcdTc1YTVcdThiZWJcdTVjNGFcdTVkZmVcdTdiNGJcdTY1YTRcdTkxZDFcdTRlY2FcdTZkMjVcdTg5NWZcdTdk'@; put 'MjdcdTk1MjZcdTRlYzVcdThjMjhcdThmZGJcdTk3NzNcdTY2NGJcdTc5ODFcdThmZDFcdTcwZWNcdTZkNzhcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxODldLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE4OV1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxODldW3BdXT00ODM4NCtwLGJbNDgz'@; put 'ODQrcF09X1sxODldW3BdKTtmb3IoX1sxOTBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdkOTlcdTdkOWFcdTdkOWJcdTdkOWNcdTdkOWRcdTdkOWVcdTdkOWZcdTdkYTBcdTdkYTFcdTdkYTJcdTdkYTNcdTdkYTRcdTdkYTVcdTdk'@; put 'YTdcdTdkYThcdTdkYTlcdTdkYWFcdTdkYWJcdTdkYWNcdTdkYWRcdTdkYWZcdTdkYjBcdTdkYjFcdTdkYjJcdTdkYjNcdTdkYjRcdTdkYjVcdTdkYjZcdTdkYjdcdTdkYjhcdTdkYjlcdTdkYmFcdTdkYmJcdTdkYmNcdTdkYmRcdTdkYmVcdTdkYmZcdTdkYzBcdTdkYzFcdTdkYzJcdTdkYzNc'@; put 'dTdkYzRcdTdkYzVcdTdkYzZcdTdkYzdcdTdkYzhcdTdkYzlcdTdkY2FcdTdkY2JcdTdkY2NcdTdkY2RcdTdkY2VcdTdkY2ZcdTdkZDBcdTdkZDFcdTdkZDJcdTdkZDNcdTdkZDRcdTdkZDVcdTdkZDZcdTdkZDdcdTdkZDhcdTdkZDlcdWZmZmRcdTdkZGFcdTdkZGJcdTdkZGNcdTdkZGRcdTdk'@; put 'ZGVcdTdkZGZcdTdkZTBcdTdkZTFcdTdkZTJcdTdkZTNcdTdkZTRcdTdkZTVcdTdkZTZcdTdkZTdcdTdkZThcdTdkZTlcdTdkZWFcdTdkZWJcdTdkZWNcdTdkZWRcdTdkZWVcdTdkZWZcdTdkZjBcdTdkZjFcdTdkZjJcdTdkZjNcdTdkZjRcdTdkZjVcdTdkZjZcdTdkZjdcdTdkZjhcdTdkZjlc'@; put 'dTdkZmFcdTVjM2RcdTUyYjJcdTgzNDZcdTUxNjJcdTgzMGVcdTc3NWJcdTY2NzZcdTljYjhcdTRlYWNcdTYwY2FcdTdjYmVcdTdjYjNcdTdlY2ZcdTRlOTVcdThiNjZcdTY2NmZcdTk4ODhcdTk3NTlcdTU4ODNcdTY1NmNcdTk1NWNcdTVmODRcdTc1YzlcdTk3NTZcdTdhZGZcdTdhZGVcdTUx'@; put 'YzBcdTcwYWZcdTdhOThcdTYzZWFcdTdhNzZcdTdlYTBcdTczOTZcdTk3ZWRcdTRlNDVcdTcwNzhcdTRlNWRcdTkxNTJcdTUzYTlcdTY1NTFcdTY1ZTdcdTgxZmNcdTgyMDVcdTU0OGVcdTVjMzFcdTc1OWFcdTk3YTBcdTYyZDhcdTcyZDlcdTc1YmRcdTVjNDVcdTlhNzlcdTgzY2FcdTVjNDBc'@; put 'dTU0ODBcdTc3ZTlcdTRlM2VcdTZjYWVcdTgwNWFcdTYyZDJcdTYzNmVcdTVkZThcdTUxNzdcdThkZGRcdThlMWVcdTk1MmZcdTRmZjFcdTUzZTVcdTYwZTdcdTcwYWNcdTUyNjdcdTYzNTBcdTllNDNcdTVhMWZcdTUwMjZcdTc3MzdcdTUzNzdcdTdlZTJcdTY0ODVcdTY1MmJcdTYyODlcdTYz'@; put 'OThcdTUwMTRcdTcyMzVcdTg5YzlcdTUxYjNcdThiYzBcdTdlZGRcdTU3NDdcdTgzY2NcdTk0YTdcdTUxOWJcdTU0MWJcdTVjZmJcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxOTBdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE5MF1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxOTBdW3BdXT00'@; put 'ODY0MCtwLGJbNDg2NDArcF09X1sxOTBdW3BdKTtmb3IoX1sxOTFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdkZmJcdTdkZmNcdTdkZmRcdTdkZmVcdTdkZmZcdTdlMDBcdTdlMDFcdTdlMDJcdTdlMDNcdTdlMDRcdTdlMDVcdTdl'@; put 'MDZcdTdlMDdcdTdlMDhcdTdlMDlcdTdlMGFcdTdlMGJcdTdlMGNcdTdlMGRcdTdlMGVcdTdlMGZcdTdlMTBcdTdlMTFcdTdlMTJcdTdlMTNcdTdlMTRcdTdlMTVcdTdlMTZcdTdlMTdcdTdlMThcdTdlMTlcdTdlMWFcdTdlMWJcdTdlMWNcdTdlMWRcdTdlMWVcdTdlMWZcdTdlMjBcdTdlMjFc'@; put 'dTdlMjJcdTdlMjNcdTdlMjRcdTdlMjVcdTdlMjZcdTdlMjdcdTdlMjhcdTdlMjlcdTdlMmFcdTdlMmJcdTdlMmNcdTdlMmRcdTdlMmVcdTdlMmZcdTdlMzBcdTdlMzFcdTdlMzJcdTdlMzNcdTdlMzRcdTdlMzVcdTdlMzZcdTdlMzdcdTdlMzhcdTdlMzlcdWZmZmRcdTdlM2FcdTdlM2NcdTdl'@; put 'M2RcdTdlM2VcdTdlM2ZcdTdlNDBcdTdlNDJcdTdlNDNcdTdlNDRcdTdlNDVcdTdlNDZcdTdlNDhcdTdlNDlcdTdlNGFcdTdlNGJcdTdlNGNcdTdlNGRcdTdlNGVcdTdlNGZcdTdlNTBcdTdlNTFcdTdlNTJcdTdlNTNcdTdlNTRcdTdlNTVcdTdlNTZcdTdlNTdcdTdlNThcdTdlNTlcdTdlNWFc'@; put 'dTdlNWJcdTdlNWNcdTdlNWRcdTRmY2FcdTdhZTNcdTZkNWFcdTkwZTFcdTlhOGZcdTU1ODBcdTU0OTZcdTUzNjFcdTU0YWZcdTVmMDBcdTYzZTlcdTY5NzdcdTUxZWZcdTYxNjhcdTUyMGFcdTU4MmFcdTUyZDhcdTU3NGVcdTc4MGRcdTc3MGJcdTVlYjdcdTYxNzdcdTdjZTBcdTYyNWJcdTYy'@; put 'OTdcdTRlYTJcdTcwOTVcdTgwMDNcdTYyZjdcdTcwZTRcdTk3NjBcdTU3NzdcdTgyZGJcdTY3ZWZcdTY4ZjVcdTc4ZDVcdTk4OTdcdTc5ZDFcdTU4ZjNcdTU0YjNcdTUzZWZcdTZlMzRcdTUxNGJcdTUyM2JcdTViYTJcdThiZmVcdTgwYWZcdTU1NDNcdTU3YTZcdTYwNzNcdTU3NTFcdTU0MmRc'@; put 'dTdhN2FcdTYwNTBcdTViNTRcdTYzYTdcdTYyYTBcdTUzZTNcdTYyNjNcdTViYzdcdTY3YWZcdTU0ZWRcdTdhOWZcdTgyZTZcdTkxNzdcdTVlOTNcdTg4ZTRcdTU5MzhcdTU3YWVcdTYzMGVcdThkZThcdTgwZWZcdTU3NTdcdTdiNzdcdTRmYTlcdTVmZWJcdTViYmRcdTZiM2VcdTUzMjFcdTdi'@; put 'NTBcdTcyYzJcdTY4NDZcdTc3ZmZcdTc3MzZcdTY1ZjdcdTUxYjVcdTRlOGZcdTc2ZDRcdTVjYmZcdTdhYTVcdTg0NzVcdTU5NGVcdTliNDFcdTUwODBcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxOTFdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE5MV1bcF0uY2hhckNvZGVBdCgwKSYmKERb'@; put 'X1sxOTFdW3BdXT00ODg5NitwLGJbNDg4OTYrcF09X1sxOTFdW3BdKTtmb3IoX1sxOTJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdlNWVcdTdlNWZcdTdlNjBcdTdlNjFcdTdlNjJcdTdlNjNcdTdlNjRcdTdlNjVcdTdlNjZcdTdl'@; put 'NjdcdTdlNjhcdTdlNjlcdTdlNmFcdTdlNmJcdTdlNmNcdTdlNmRcdTdlNmVcdTdlNmZcdTdlNzBcdTdlNzFcdTdlNzJcdTdlNzNcdTdlNzRcdTdlNzVcdTdlNzZcdTdlNzdcdTdlNzhcdTdlNzlcdTdlN2FcdTdlN2JcdTdlN2NcdTdlN2RcdTdlN2VcdTdlN2ZcdTdlODBcdTdlODFcdTdlODNc'@; put 'dTdlODRcdTdlODVcdTdlODZcdTdlODdcdTdlODhcdTdlODlcdTdlOGFcdTdlOGJcdTdlOGNcdTdlOGRcdTdlOGVcdTdlOGZcdTdlOTBcdTdlOTFcdTdlOTJcdTdlOTNcdTdlOTRcdTdlOTVcdTdlOTZcdTdlOTdcdTdlOThcdTdlOTlcdTdlOWFcdTdlOWNcdTdlOWRcdTdlOWVcdWZmZmRcdTdl'@; put 'YWVcdTdlYjRcdTdlYmJcdTdlYmNcdTdlZDZcdTdlZTRcdTdlZWNcdTdlZjlcdTdmMGFcdTdmMTBcdTdmMWVcdTdmMzdcdTdmMzlcdTdmM2JcdTdmM2NcdTdmM2RcdTdmM2VcdTdmM2ZcdTdmNDBcdTdmNDFcdTdmNDNcdTdmNDZcdTdmNDdcdTdmNDhcdTdmNDlcdTdmNGFcdTdmNGJcdTdmNGNc'@; put 'dTdmNGRcdTdmNGVcdTdmNGZcdTdmNTJcdTdmNTNcdTk5ODhcdTYxMjdcdTZlODNcdTU3NjRcdTY2MDZcdTYzNDZcdTU2ZjBcdTYyZWNcdTYyNjlcdTVlZDNcdTk2MTRcdTU3ODNcdTYyYzlcdTU1ODdcdTg3MjFcdTgxNGFcdThmYTNcdTU1NjZcdTgzYjFcdTY3NjVcdThkNTZcdTg0ZGRcdTVh'@; put 'NmFcdTY4MGZcdTYyZTZcdTdiZWVcdTk2MTFcdTUxNzBcdTZmOWNcdThjMzBcdTYzZmRcdTg5YzhcdTYxZDJcdTdmMDZcdTcwYzJcdTZlZTVcdTc0MDVcdTY5OTRcdTcyZmNcdTVlY2FcdTkwY2VcdTY3MTdcdTZkNmFcdTYzNWVcdTUyYjNcdTcyNjJcdTgwMDFcdTRmNmNcdTU5ZTVcdTkxNmFc'@; put 'dTcwZDlcdTZkOWRcdTUyZDJcdTRlNTBcdTk2ZjdcdTk1NmRcdTg1N2VcdTc4Y2FcdTdkMmZcdTUxMjFcdTU3OTJcdTY0YzJcdTgwOGJcdTdjN2JcdTZjZWFcdTY4ZjFcdTY5NWVcdTUxYjdcdTUzOThcdTY4YThcdTcyODFcdTllY2VcdTdiZjFcdTcyZjhcdTc5YmJcdTZmMTNcdTc0MDZcdTY3'@; put 'NGVcdTkxY2NcdTljYTRcdTc5M2NcdTgzODlcdTgzNTRcdTU0MGZcdTY4MTdcdTRlM2RcdTUzODlcdTUyYjFcdTc4M2VcdTUzODZcdTUyMjlcdTUwODhcdTRmOGJcdTRmZDBcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxOTJdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE5Ml1bcF0uY2hhckNv'@; put 'ZGVBdCgwKSYmKERbX1sxOTJdW3BdXT00OTE1MitwLGJbNDkxNTIrcF09X1sxOTJdW3BdKTtmb3IoX1sxOTNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdmNTZcdTdmNTlcdTdmNWJcdTdmNWNcdTdmNWRcdTdmNWVcdTdmNjBcdTdm'@; put 'NjNcdTdmNjRcdTdmNjVcdTdmNjZcdTdmNjdcdTdmNmJcdTdmNmNcdTdmNmRcdTdmNmZcdTdmNzBcdTdmNzNcdTdmNzVcdTdmNzZcdTdmNzdcdTdmNzhcdTdmN2FcdTdmN2JcdTdmN2NcdTdmN2RcdTdmN2ZcdTdmODBcdTdmODJcdTdmODNcdTdmODRcdTdmODVcdTdmODZcdTdmODdcdTdmODhc'@; put 'dTdmODlcdTdmOGJcdTdmOGRcdTdmOGZcdTdmOTBcdTdmOTFcdTdmOTJcdTdmOTNcdTdmOTVcdTdmOTZcdTdmOTdcdTdmOThcdTdmOTlcdTdmOWJcdTdmOWNcdTdmYTBcdTdmYTJcdTdmYTNcdTdmYTVcdTdmYTZcdTdmYThcdTdmYTlcdTdmYWFcdTdmYWJcdTdmYWNcdTdmYWRcdTdmYWVcdTdm'@; put 'YjFcdWZmZmRcdTdmYjNcdTdmYjRcdTdmYjVcdTdmYjZcdTdmYjdcdTdmYmFcdTdmYmJcdTdmYmVcdTdmYzBcdTdmYzJcdTdmYzNcdTdmYzRcdTdmYzZcdTdmYzdcdTdmYzhcdTdmYzlcdTdmY2JcdTdmY2RcdTdmY2ZcdTdmZDBcdTdmZDFcdTdmZDJcdTdmZDNcdTdmZDZcdTdmZDdcdTdmZDlc'@; put 'dTdmZGFcdTdmZGJcdTdmZGNcdTdmZGRcdTdmZGVcdTdmZTJcdTdmZTNcdTc1ZTJcdTdhY2JcdTdjOTJcdTZjYTVcdTk2YjZcdTUyOWJcdTc0ODNcdTU0ZTlcdTRmZTlcdTgwNTRcdTgzYjJcdThmZGVcdTk1NzBcdTVlYzlcdTYwMWNcdTZkOWZcdTVlMThcdTY1NWJcdTgxMzhcdTk0ZmVcdTYw'@; put 'NGJcdTcwYmNcdTdlYzNcdTdjYWVcdTUxYzlcdTY4ODFcdTdjYjFcdTgyNmZcdTRlMjRcdThmODZcdTkxY2ZcdTY2N2VcdTRlYWVcdThjMDVcdTY0YTlcdTgwNGFcdTUwZGFcdTc1OTdcdTcxY2VcdTViZTVcdThmYmRcdTZmNjZcdTRlODZcdTY0ODJcdTk1NjNcdTVlZDZcdTY1OTlcdTUyMTdc'@; put 'dTg4YzJcdTcwYzhcdTUyYTNcdTczMGVcdTc0MzNcdTY3OTdcdTc4ZjdcdTk3MTZcdTRlMzRcdTkwYmJcdTljZGVcdTZkY2JcdTUxZGJcdThkNDFcdTU0MWRcdTYyY2VcdTczYjJcdTgzZjFcdTk2ZjZcdTlmODRcdTk0YzNcdTRmMzZcdTdmOWFcdTUxY2NcdTcwNzVcdTk2NzVcdTVjYWRcdTk4'@; put 'ODZcdTUzZTZcdTRlZTRcdTZlOWNcdTc0MDlcdTY5YjRcdTc4NmJcdTk5OGZcdTc1NTlcdTUyMThcdTc2MjRcdTZkNDFcdTY3ZjNcdTUxNmRcdTlmOTlcdTgwNGJcdTU0OTlcdTdiM2NcdTdhYmZcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxOTNdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE5'@; put 'M11bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxOTNdW3BdXT00OTQwOCtwLGJbNDk0MDgrcF09X1sxOTNdW3BdKTtmb3IoX1sxOTRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdmZTRcdTdmZTdcdTdmZThcdTdmZWFcdTdmZWJcdTdm'@; put 'ZWNcdTdmZWRcdTdmZWZcdTdmZjJcdTdmZjRcdTdmZjVcdTdmZjZcdTdmZjdcdTdmZjhcdTdmZjlcdTdmZmFcdTdmZmRcdTdmZmVcdTdmZmZcdTgwMDJcdTgwMDdcdTgwMDhcdTgwMDlcdTgwMGFcdTgwMGVcdTgwMGZcdTgwMTFcdTgwMTNcdTgwMWFcdTgwMWJcdTgwMWRcdTgwMWVcdTgwMWZc'@; put 'dTgwMjFcdTgwMjNcdTgwMjRcdTgwMmJcdTgwMmNcdTgwMmRcdTgwMmVcdTgwMmZcdTgwMzBcdTgwMzJcdTgwMzRcdTgwMzlcdTgwM2FcdTgwM2NcdTgwM2VcdTgwNDBcdTgwNDFcdTgwNDRcdTgwNDVcdTgwNDdcdTgwNDhcdTgwNDlcdTgwNGVcdTgwNGZcdTgwNTBcdTgwNTFcdTgwNTNcdTgw'@; put 'NTVcdTgwNTZcdTgwNTdcdWZmZmRcdTgwNTlcdTgwNWJcdTgwNWNcdTgwNWRcdTgwNWVcdTgwNWZcdTgwNjBcdTgwNjFcdTgwNjJcdTgwNjNcdTgwNjRcdTgwNjVcdTgwNjZcdTgwNjdcdTgwNjhcdTgwNmJcdTgwNmNcdTgwNmRcdTgwNmVcdTgwNmZcdTgwNzBcdTgwNzJcdTgwNzNcdTgwNzRc'@; put 'dTgwNzVcdTgwNzZcdTgwNzdcdTgwNzhcdTgwNzlcdTgwN2FcdTgwN2JcdTgwN2NcdTgwN2RcdTk2ODZcdTU3ODRcdTYyZTJcdTk2NDdcdTY5N2NcdTVhMDRcdTY0MDJcdTdiZDNcdTZmMGZcdTk2NGJcdTgyYTZcdTUzNjJcdTk4ODVcdTVlOTBcdTcwODlcdTYzYjNcdTUzNjRcdTg2NGZcdTlj'@; put 'ODFcdTllOTNcdTc4OGNcdTk3MzJcdThkZWZcdThkNDJcdTllN2ZcdTZmNWVcdTc5ODRcdTVmNTVcdTk2NDZcdTYyMmVcdTlhNzRcdTU0MTVcdTk0ZGRcdTRmYTNcdTY1YzVcdTVjNjVcdTVjNjFcdTdmMTVcdTg2NTFcdTZjMmZcdTVmOGJcdTczODdcdTZlZTRcdTdlZmZcdTVjZTZcdTYzMWJc'@; put 'dTViNmFcdTZlZTZcdTUzNzVcdTRlNzFcdTYzYTBcdTc1NjVcdTYyYTFcdThmNmVcdTRmMjZcdTRlZDFcdTZjYTZcdTdlYjZcdThiYmFcdTg0MWRcdTg3YmFcdTdmNTdcdTkwM2JcdTk1MjNcdTdiYTlcdTlhYTFcdTg4ZjhcdTg0M2RcdTZkMWJcdTlhODZcdTdlZGNcdTU5ODhcdTllYmJcdTcz'@; put 'OWJcdTc4MDFcdTg2ODJcdTlhNmNcdTlhODJcdTU2MWJcdTU0MTdcdTU3Y2JcdTRlNzBcdTllYTZcdTUzNTZcdThmYzhcdTgxMDlcdTc3OTJcdTk5OTJcdTg2ZWVcdTZlZTFcdTg1MTNcdTY2ZmNcdTYxNjJcdTZmMmJcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxOTRdLmxlbmd0aDsrK3Ap'@; put 'NjU1MzMhPT1fWzE5NF1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxOTRdW3BdXT00OTY2NCtwLGJbNDk2NjQrcF09X1sxOTRdW3BdKTtmb3IoX1sxOTVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgwN2VcdTgwODFcdTgwODJcdTgw'@; put 'ODVcdTgwODhcdTgwOGFcdTgwOGRcdTgwOGVcdTgwOGZcdTgwOTBcdTgwOTFcdTgwOTJcdTgwOTRcdTgwOTVcdTgwOTdcdTgwOTlcdTgwOWVcdTgwYTNcdTgwYTZcdTgwYTdcdTgwYThcdTgwYWNcdTgwYjBcdTgwYjNcdTgwYjVcdTgwYjZcdTgwYjhcdTgwYjlcdTgwYmJcdTgwYzVcdTgwYzdc'@; put 'dTgwYzhcdTgwYzlcdTgwY2FcdTgwY2JcdTgwY2ZcdTgwZDBcdTgwZDFcdTgwZDJcdTgwZDNcdTgwZDRcdTgwZDVcdTgwZDhcdTgwZGZcdTgwZTBcdTgwZTJcdTgwZTNcdTgwZTZcdTgwZWVcdTgwZjVcdTgwZjdcdTgwZjlcdTgwZmJcdTgwZmVcdTgwZmZcdTgxMDBcdTgxMDFcdTgxMDNcdTgx'@; put 'MDRcdTgxMDVcdTgxMDdcdTgxMDhcdTgxMGJcdWZmZmRcdTgxMGNcdTgxMTVcdTgxMTdcdTgxMTlcdTgxMWJcdTgxMWNcdTgxMWRcdTgxMWZcdTgxMjBcdTgxMjFcdTgxMjJcdTgxMjNcdTgxMjRcdTgxMjVcdTgxMjZcdTgxMjdcdTgxMjhcdTgxMjlcdTgxMmFcdTgxMmJcdTgxMmRcdTgxMmVc'@; put 'dTgxMzBcdTgxMzNcdTgxMzRcdTgxMzVcdTgxMzdcdTgxMzlcdTgxM2FcdTgxM2JcdTgxM2NcdTgxM2RcdTgxM2ZcdThjMjlcdTgyOTJcdTgzMmJcdTc2ZjJcdTZjMTNcdTVmZDlcdTgzYmRcdTczMmJcdTgzMDVcdTk1MWFcdTZiZGJcdTc3ZGJcdTk0YzZcdTUzNmZcdTgzMDJcdTUxOTJcdTVl'@; put 'M2RcdThjOGNcdThkMzhcdTRlNDhcdTczYWJcdTY3OWFcdTY4ODVcdTkxNzZcdTk3MDlcdTcxNjRcdTZjYTFcdTc3MDlcdTVhOTJcdTk1NDFcdTZiY2ZcdTdmOGVcdTY2MjdcdTViZDBcdTU5YjlcdTVhOWFcdTk1ZThcdTk1ZjdcdTRlZWNcdTg0MGNcdTg0OTlcdTZhYWNcdTc2ZGZcdTk1MzBc'@; put 'dTczMWJcdTY4YTZcdTViNWZcdTc3MmZcdTkxOWFcdTk3NjFcdTdjZGNcdThmZjdcdThjMWNcdTVmMjVcdTdjNzNcdTc5ZDhcdTg5YzVcdTZjY2NcdTg3MWNcdTViYzZcdTVlNDJcdTY4YzlcdTc3MjBcdTdlZjVcdTUxOTVcdTUxNGRcdTUyYzlcdTVhMjlcdTdmMDVcdTk3NjJcdTgyZDdcdTYz'@; put 'Y2ZcdTc3ODRcdTg1ZDBcdTc5ZDJcdTZlM2FcdTVlOTlcdTU5OTlcdTg1MTFcdTcwNmRcdTZjMTFcdTYyYmZcdTc2YmZcdTY1NGZcdTYwYWZcdTk1ZmRcdTY2MGVcdTg3OWZcdTllMjNcdTk0ZWRcdTU0MGRcdTU0N2RcdThjMmNcdTY0NzhcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxOTVd'@; put 'Lmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE5NV1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxOTVdW3BdXT00OTkyMCtwLGJbNDk5MjArcF09X1sxOTVdW3BdKTtmb3IoX1sxOTZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgxNDBcdTgx'@; put 'NDFcdTgxNDJcdTgxNDNcdTgxNDRcdTgxNDVcdTgxNDdcdTgxNDlcdTgxNGRcdTgxNGVcdTgxNGZcdTgxNTJcdTgxNTZcdTgxNTdcdTgxNThcdTgxNWJcdTgxNWNcdTgxNWRcdTgxNWVcdTgxNWZcdTgxNjFcdTgxNjJcdTgxNjNcdTgxNjRcdTgxNjZcdTgxNjhcdTgxNmFcdTgxNmJcdTgxNmNc'@; put 'dTgxNmZcdTgxNzJcdTgxNzNcdTgxNzVcdTgxNzZcdTgxNzdcdTgxNzhcdTgxODFcdTgxODNcdTgxODRcdTgxODVcdTgxODZcdTgxODdcdTgxODlcdTgxOGJcdTgxOGNcdTgxOGRcdTgxOGVcdTgxOTBcdTgxOTJcdTgxOTNcdTgxOTRcdTgxOTVcdTgxOTZcdTgxOTdcdTgxOTlcdTgxOWFcdTgx'@; put 'OWVcdTgxOWZcdTgxYTBcdTgxYTFcdTgxYTJcdTgxYTRcdTgxYTVcdWZmZmRcdTgxYTdcdTgxYTlcdTgxYWJcdTgxYWNcdTgxYWRcdTgxYWVcdTgxYWZcdTgxYjBcdTgxYjFcdTgxYjJcdTgxYjRcdTgxYjVcdTgxYjZcdTgxYjdcdTgxYjhcdTgxYjlcdTgxYmNcdTgxYmRcdTgxYmVcdTgxYmZc'@; put 'dTgxYzRcdTgxYzVcdTgxYzdcdTgxYzhcdTgxYzlcdTgxY2JcdTgxY2RcdTgxY2VcdTgxY2ZcdTgxZDBcdTgxZDFcdTgxZDJcdTgxZDNcdTY0NzlcdTg2MTFcdTZhMjFcdTgxOWNcdTc4ZThcdTY0NjlcdTliNTRcdTYyYjlcdTY3MmJcdTgzYWJcdTU4YThcdTllZDhcdTZjYWJcdTZmMjBcdTVi'@; put 'ZGVcdTk2NGNcdThjMGJcdTcyNWZcdTY3ZDBcdTYyYzdcdTcyNjFcdTRlYTlcdTU5YzZcdTZiY2RcdTU4OTNcdTY2YWVcdTVlNTVcdTUyZGZcdTYxNTVcdTY3MjhcdTc2ZWVcdTc3NjZcdTcyNjdcdTdhNDZcdTYyZmZcdTU0ZWFcdTU0NTBcdTk0YTBcdTkwYTNcdTVhMWNcdTdlYjNcdTZjMTZc'@; put 'dTRlNDNcdTU5NzZcdTgwMTBcdTU5NDhcdTUzNTdcdTc1MzdcdTk2YmVcdTU2Y2FcdTYzMjBcdTgxMTFcdTYwN2NcdTk1ZjlcdTZkZDZcdTU0NjJcdTk5ODFcdTUxODVcdTVhZTlcdTgwZmRcdTU5YWVcdTk3MTNcdTUwMmFcdTZjZTVcdTVjM2NcdTYyZGZcdTRmNjBcdTUzM2ZcdTgxN2JcdTkw'@; put 'MDZcdTZlYmFcdTg1MmJcdTYyYzhcdTVlNzRcdTc4YmVcdTY0YjVcdTYzN2JcdTVmZjVcdTVhMThcdTkxN2ZcdTllMWZcdTVjM2ZcdTYzNGZcdTgwNDJcdTViN2RcdTU1NmVcdTk1NGFcdTk1NGRcdTZkODVcdTYwYThcdTY3ZTBcdTcyZGVcdTUxZGRcdTViODFcdWZmZmQiLnNwbGl0KCIiKSxw'@; put 'PTA7cCE9X1sxOTZdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE5Nl1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxOTZdW3BdXT01MDE3NitwLGJbNTAxNzYrcF09X1sxOTZdW3BdKTtmb3IoX1sxOTddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdTgxZDRcdTgxZDVcdTgxZDZcdTgxZDdcdTgxZDhcdTgxZDlcdTgxZGFcdTgxZGJcdTgxZGNcdTgxZGRcdTgxZGVcdTgxZGZcdTgxZTBcdTgxZTFcdTgxZTJcdTgxZTRcdTgxZTVcdTgxZTZcdTgxZThcdTgxZTlcdTgxZWJcdTgxZWVcdTgxZWZcdTgxZjBcdTgxZjFcdTgxZjJcdTgxZjVc'@; put 'dTgxZjZcdTgxZjdcdTgxZjhcdTgxZjlcdTgxZmFcdTgxZmRcdTgxZmZcdTgyMDNcdTgyMDdcdTgyMDhcdTgyMDlcdTgyMGFcdTgyMGJcdTgyMGVcdTgyMGZcdTgyMTFcdTgyMTNcdTgyMTVcdTgyMTZcdTgyMTdcdTgyMThcdTgyMTlcdTgyMWFcdTgyMWRcdTgyMjBcdTgyMjRcdTgyMjVcdTgy'@; put 'MjZcdTgyMjdcdTgyMjlcdTgyMmVcdTgyMzJcdTgyM2FcdTgyM2NcdTgyM2RcdTgyM2ZcdWZmZmRcdTgyNDBcdTgyNDFcdTgyNDJcdTgyNDNcdTgyNDVcdTgyNDZcdTgyNDhcdTgyNGFcdTgyNGNcdTgyNGRcdTgyNGVcdTgyNTBcdTgyNTFcdTgyNTJcdTgyNTNcdTgyNTRcdTgyNTVcdTgyNTZc'@; put 'dTgyNTdcdTgyNTlcdTgyNWJcdTgyNWNcdTgyNWRcdTgyNWVcdTgyNjBcdTgyNjFcdTgyNjJcdTgyNjNcdTgyNjRcdTgyNjVcdTgyNjZcdTgyNjdcdTgyNjlcdTYyZTdcdTZjZGVcdTcyNWJcdTYyNmRcdTk0YWVcdTdlYmRcdTgxMTNcdTZkNTNcdTUxOWNcdTVmMDRcdTU5NzRcdTUyYWFcdTYw'@; put 'MTJcdTU5NzNcdTY2OTZcdTg2NTBcdTc1OWZcdTYzMmFcdTYxZTZcdTdjZWZcdThiZmFcdTU0ZTZcdTZiMjdcdTllMjVcdTZiYjRcdTg1ZDVcdTU0NTVcdTUwNzZcdTZjYTRcdTU1NmFcdThkYjRcdTcyMmNcdTVlMTVcdTYwMTVcdTc0MzZcdTYyY2RcdTYzOTJcdTcyNGNcdTVmOThcdTZlNDNc'@; put 'dTZkM2VcdTY1MDBcdTZmNThcdTc2ZDhcdTc4ZDBcdTc2ZmNcdTc1NTRcdTUyMjRcdTUzZGJcdTRlNTNcdTVlOWVcdTY1YzFcdTgwMmFcdTgwZDZcdTYyOWJcdTU0ODZcdTUyMjhcdTcwYWVcdTg4OGRcdThkZDFcdTZjZTFcdTU0NzhcdTgwZGFcdTU3ZjlcdTg4ZjRcdThkNTRcdTk2NmFcdTkx'@; put 'NGRcdTRmNjlcdTZjOWJcdTU1YjdcdTc2YzZcdTc4MzBcdTYyYThcdTcwZjlcdTZmOGVcdTVmNmRcdTg0ZWNcdTY4ZGFcdTc4N2NcdTdiZjdcdTgxYThcdTY3MGJcdTllNGZcdTYzNjdcdTc4YjBcdTU3NmZcdTc4MTJcdTk3MzlcdTYyNzlcdTYyYWJcdTUyODhcdTc0MzVcdTZiZDdcdWZmZmQi'@; put 'LnNwbGl0KCIiKSxwPTA7cCE9X1sxOTddLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE5N11bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxOTddW3BdXT01MDQzMitwLGJbNTA0MzIrcF09X1sxOTddW3BdKTtmb3IoX1sxOThdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdTgyNmFcdTgyNmJcdTgyNmNcdTgyNmRcdTgyNzFcdTgyNzVcdTgyNzZcdTgyNzdcdTgyNzhcdTgyN2JcdTgyN2NcdTgyODBcdTgyODFcdTgyODNcdTgyODVcdTgyODZcdTgyODdcdTgyODlcdTgyOGNcdTgyOTBcdTgyOTNcdTgyOTRcdTgyOTVcdTgyOTZcdTgyOWFc'@; put 'dTgyOWJcdTgyOWVcdTgyYTBcdTgyYTJcdTgyYTNcdTgyYTdcdTgyYjJcdTgyYjVcdTgyYjZcdTgyYmFcdTgyYmJcdTgyYmNcdTgyYmZcdTgyYzBcdTgyYzJcdTgyYzNcdTgyYzVcdTgyYzZcdTgyYzlcdTgyZDBcdTgyZDZcdTgyZDlcdTgyZGFcdTgyZGRcdTgyZTJcdTgyZTdcdTgyZThcdTgy'@; put 'ZTlcdTgyZWFcdTgyZWNcdTgyZWRcdTgyZWVcdTgyZjBcdTgyZjJcdTgyZjNcdTgyZjVcdTgyZjZcdTgyZjhcdWZmZmRcdTgyZmFcdTgyZmNcdTgyZmRcdTgyZmVcdTgyZmZcdTgzMDBcdTgzMGFcdTgzMGJcdTgzMGRcdTgzMTBcdTgzMTJcdTgzMTNcdTgzMTZcdTgzMThcdTgzMTlcdTgzMWRc'@; put 'dTgzMWVcdTgzMWZcdTgzMjBcdTgzMjFcdTgzMjJcdTgzMjNcdTgzMjRcdTgzMjVcdTgzMjZcdTgzMjlcdTgzMmFcdTgzMmVcdTgzMzBcdTgzMzJcdTgzMzdcdTgzM2JcdTgzM2RcdTU1NjRcdTgxM2VcdTc1YjJcdTc2YWVcdTUzMzlcdTc1ZGVcdTUwZmJcdTVjNDFcdThiNmNcdTdiYzdcdTUw'@; put 'NGZcdTcyNDdcdTlhOTdcdTk4ZDhcdTZmMDJcdTc0ZTJcdTc5NjhcdTY0ODdcdTc3YTVcdTYyZmNcdTk4OTFcdThkMmJcdTU0YzFcdTgwNThcdTRlNTJcdTU3NmFcdTgyZjlcdTg0MGRcdTVlNzNcdTUxZWRcdTc0ZjZcdThiYzRcdTVjNGZcdTU3NjFcdTZjZmNcdTk4ODdcdTVhNDZcdTc4MzRc'@; put 'dTliNDRcdThmZWJcdTdjOTVcdTUyNTZcdTYyNTFcdTk0ZmFcdTRlYzZcdTgzODZcdTg0NjFcdTgzZTlcdTg0YjJcdTU3ZDRcdTY3MzRcdTU3MDNcdTY2NmVcdTZkNjZcdThjMzFcdTY2ZGRcdTcwMTFcdTY3MWZcdTZiM2FcdTY4MTZcdTYyMWFcdTU5YmJcdTRlMDNcdTUxYzRcdTZmMDZcdTY3'@; put 'ZDJcdTZjOGZcdTUxNzZcdTY4Y2JcdTU5NDdcdTZiNjdcdTc1NjZcdTVkMGVcdTgxMTBcdTlmNTBcdTY1ZDdcdTc5NDhcdTc5NDFcdTlhOTFcdThkNzdcdTVjODJcdTRlNWVcdTRmMDFcdTU0MmZcdTU5NTFcdTc4MGNcdTU2NjhcdTZjMTRcdThmYzRcdTVmMDNcdTZjN2RcdTZjZTNcdThiYWJc'@; put 'dTYzOTBcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxOThdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE5OF1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxOThdW3BdXT01MDY4OCtwLGJbNTA2ODgrcF09X1sxOThdW3BdKTtmb3IoX1sxOTldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgzM2VcdTgzM2ZcdTgzNDFcdTgzNDJcdTgzNDRcdTgzNDVcdTgzNDhcdTgzNGFcdTgzNGJcdTgzNGNcdTgzNGRcdTgzNGVcdTgzNTNcdTgzNTVcdTgzNTZcdTgzNTdcdTgzNThcdTgzNTlcdTgzNWRcdTgzNjJcdTgzNzBcdTgzNzFcdTgzNzJc'@; put 'dTgzNzNcdTgzNzRcdTgzNzVcdTgzNzZcdTgzNzlcdTgzN2FcdTgzN2VcdTgzN2ZcdTgzODBcdTgzODFcdTgzODJcdTgzODNcdTgzODRcdTgzODdcdTgzODhcdTgzOGFcdTgzOGJcdTgzOGNcdTgzOGRcdTgzOGZcdTgzOTBcdTgzOTFcdTgzOTRcdTgzOTVcdTgzOTZcdTgzOTdcdTgzOTlcdTgz'@; put 'OWFcdTgzOWRcdTgzOWZcdTgzYTFcdTgzYTJcdTgzYTNcdTgzYTRcdTgzYTVcdTgzYTZcdTgzYTdcdTgzYWNcdTgzYWRcdTgzYWVcdWZmZmRcdTgzYWZcdTgzYjVcdTgzYmJcdTgzYmVcdTgzYmZcdTgzYzJcdTgzYzNcdTgzYzRcdTgzYzZcdTgzYzhcdTgzYzlcdTgzY2JcdTgzY2RcdTgzY2Vc'@; put 'dTgzZDBcdTgzZDFcdTgzZDJcdTgzZDNcdTgzZDVcdTgzZDdcdTgzZDlcdTgzZGFcdTgzZGJcdTgzZGVcdTgzZTJcdTgzZTNcdTgzZTRcdTgzZTZcdTgzZTdcdTgzZThcdTgzZWJcdTgzZWNcdTgzZWRcdTYwNzBcdTZkM2RcdTcyNzVcdTYyNjZcdTk0OGVcdTk0YzVcdTUzNDNcdThmYzFcdTdi'@; put 'N2VcdTRlZGZcdThjMjZcdTRlN2VcdTllZDRcdTk0YjFcdTk0YjNcdTUyNGRcdTZmNWNcdTkwNjNcdTZkNDVcdThjMzRcdTU4MTFcdTVkNGNcdTZiMjBcdTZiNDlcdTY3YWFcdTU0NWJcdTgxNTRcdTdmOGNcdTU4OTlcdTg1MzdcdTVmM2FcdTYyYTJcdTZhNDdcdTk1MzlcdTY1NzJcdTYwODRc'@; put 'dTY4NjVcdTc3YTdcdTRlNTRcdTRmYThcdTVkZTdcdTk3OThcdTY0YWNcdTdmZDhcdTVjZWRcdTRmY2ZcdTdhOGRcdTUyMDdcdTgzMDRcdTRlMTRcdTYwMmZcdTdhODNcdTk0YTZcdTRmYjVcdTRlYjJcdTc5ZTZcdTc0MzRcdTUyZTRcdTgyYjlcdTY0ZDJcdTc5YmRcdTViZGRcdTZjODFcdTk3'@; put 'NTJcdThmN2JcdTZjMjJcdTUwM2VcdTUzN2ZcdTZlMDVcdTY0Y2VcdTY2NzRcdTZjMzBcdTYwYzVcdTk4NzdcdThiZjdcdTVlODZcdTc0M2NcdTdhNzdcdTc5Y2JcdTRlMThcdTkwYjFcdTc0MDNcdTZjNDJcdTU2ZGFcdTkxNGJcdTZjYzVcdThkOGJcdTUzM2FcdTg2YzZcdTY2ZjJcdThlYWZc'@; put 'dTVjNDhcdTlhNzFcdTZlMjBcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxOTldLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzE5OV1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxOTldW3BdXT01MDk0NCtwLGJbNTA5NDQrcF09X1sxOTldW3BdKTtmb3IoX1syMDBdPSJcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgzZWVcdTgzZWZcdTgzZjNcdTgzZjRcdTgzZjVcdTgzZjZcdTgzZjdcdTgzZmFcdTgzZmJcdTgzZmNcdTgzZmVcdTgzZmZcdTg0MDBcdTg0MDJcdTg0MDVcdTg0MDdcdTg0MDhcdTg0MDlcdTg0MGFcdTg0MTBcdTg0MTJc'@; put 'dTg0MTNcdTg0MTRcdTg0MTVcdTg0MTZcdTg0MTdcdTg0MTlcdTg0MWFcdTg0MWJcdTg0MWVcdTg0MWZcdTg0MjBcdTg0MjFcdTg0MjJcdTg0MjNcdTg0MjlcdTg0MmFcdTg0MmJcdTg0MmNcdTg0MmRcdTg0MmVcdTg0MmZcdTg0MzBcdTg0MzJcdTg0MzNcdTg0MzRcdTg0MzVcdTg0MzZcdTg0'@; put 'MzdcdTg0MzlcdTg0M2FcdTg0M2JcdTg0M2VcdTg0M2ZcdTg0NDBcdTg0NDFcdTg0NDJcdTg0NDNcdTg0NDRcdTg0NDVcdTg0NDdcdTg0NDhcdTg0NDlcdWZmZmRcdTg0NGFcdTg0NGJcdTg0NGNcdTg0NGRcdTg0NGVcdTg0NGZcdTg0NTBcdTg0NTJcdTg0NTNcdTg0NTRcdTg0NTVcdTg0NTZc'@; put 'dTg0NThcdTg0NWRcdTg0NWVcdTg0NWZcdTg0NjBcdTg0NjJcdTg0NjRcdTg0NjVcdTg0NjZcdTg0NjdcdTg0NjhcdTg0NmFcdTg0NmVcdTg0NmZcdTg0NzBcdTg0NzJcdTg0NzRcdTg0NzdcdTg0NzlcdTg0N2JcdTg0N2NcdTUzZDZcdTVhMzZcdTlmOGJcdThkYTNcdTUzYmJcdTU3MDhcdTk4'@; put 'YTdcdTY3NDNcdTkxOWJcdTZjYzlcdTUxNjhcdTc1Y2FcdTYyZjNcdTcyYWNcdTUyMzhcdTUyOWRcdTdmM2FcdTcwOTRcdTc2MzhcdTUzNzRcdTllNGFcdTY5YjdcdTc4NmVcdTk2YzBcdTg4ZDlcdTdmYTRcdTcxMzZcdTcxYzNcdTUxODlcdTY3ZDNcdTc0ZTRcdTU4ZTRcdTY1MThcdTU2Yjdc'@; put 'dThiYTlcdTk5NzZcdTYyNzBcdTdlZDVcdTYwZjlcdTcwZWRcdTU4ZWNcdTRlYzFcdTRlYmFcdTVmY2RcdTk3ZTdcdTRlZmJcdThiYTRcdTUyMDNcdTU5OGFcdTdlYWJcdTYyNTRcdTRlY2RcdTY1ZTVcdTYyMGVcdTgzMzhcdTg0YzlcdTgzNjNcdTg3OGRcdTcxOTRcdTZlYjZcdTViYjlcdTdl'@; put 'ZDJcdTUxOTdcdTYzYzlcdTY3ZDRcdTgwODlcdTgzMzlcdTg4MTVcdTUxMTJcdTViN2FcdTU5ODJcdThmYjFcdTRlNzNcdTZjNWRcdTUxNjVcdTg5MjVcdThmNmZcdTk2MmVcdTg1NGFcdTc0NWVcdTk1MTBcdTk1ZjBcdTZkYTZcdTgyZTVcdTVmMzFcdTY0OTJcdTZkMTJcdTg0MjhcdTgxNmVc'@; put 'dTljYzNcdTU4NWVcdThkNWJcdTRlMDlcdTUzYzFcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMDBdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIwMF1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMDBdW3BdXT01MTIwMCtwLGJbNTEyMDArcF09X1syMDBdW3BdKTtmb3IoX1syMDFdPSJcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg0N2RcdTg0N2VcdTg0N2ZcdTg0ODBcdTg0ODFcdTg0ODNcdTg0ODRcdTg0ODVcdTg0ODZcdTg0OGFcdTg0OGRcdTg0OGZcdTg0OTBcdTg0OTFcdTg0OTJcdTg0OTNcdTg0OTRcdTg0OTVcdTg0OTZc'@; put 'dTg0OThcdTg0OWFcdTg0OWJcdTg0OWRcdTg0OWVcdTg0OWZcdTg0YTBcdTg0YTJcdTg0YTNcdTg0YTRcdTg0YTVcdTg0YTZcdTg0YTdcdTg0YThcdTg0YTlcdTg0YWFcdTg0YWJcdTg0YWNcdTg0YWRcdTg0YWVcdTg0YjBcdTg0YjFcdTg0YjNcdTg0YjVcdTg0YjZcdTg0YjdcdTg0YmJcdTg0'@; put 'YmNcdTg0YmVcdTg0YzBcdTg0YzJcdTg0YzNcdTg0YzVcdTg0YzZcdTg0YzdcdTg0YzhcdTg0Y2JcdTg0Y2NcdTg0Y2VcdTg0Y2ZcdTg0ZDJcdTg0ZDRcdTg0ZDVcdTg0ZDdcdWZmZmRcdTg0ZDhcdTg0ZDlcdTg0ZGFcdTg0ZGJcdTg0ZGNcdTg0ZGVcdTg0ZTFcdTg0ZTJcdTg0ZTRcdTg0ZTdc'@; put 'dTg0ZThcdTg0ZTlcdTg0ZWFcdTg0ZWJcdTg0ZWRcdTg0ZWVcdTg0ZWZcdTg0ZjFcdTg0ZjJcdTg0ZjNcdTg0ZjRcdTg0ZjVcdTg0ZjZcdTg0ZjdcdTg0ZjhcdTg0ZjlcdTg0ZmFcdTg0ZmJcdTg0ZmRcdTg0ZmVcdTg1MDBcdTg1MDFcdTg1MDJcdTRmMWVcdTY1NjNcdTY4NTFcdTU1ZDNcdTRl'@; put 'MjdcdTY0MTRcdTlhOWFcdTYyNmJcdTVhYzJcdTc0NWZcdTgyNzJcdTZkYTlcdTY4ZWVcdTUwZTdcdTgzOGVcdTc4MDJcdTY3NDBcdTUyMzlcdTZjOTlcdTdlYjFcdTUwYmJcdTU1NjVcdTcxNWVcdTdiNWJcdTY2NTJcdTczY2FcdTgyZWJcdTY3NDlcdTVjNzFcdTUyMjBcdTcxN2RcdTg4NmJc'@; put 'dTk1ZWFcdTk2NTVcdTY0YzVcdThkNjFcdTgxYjNcdTU1ODRcdTZjNTVcdTYyNDdcdTdmMmVcdTU4OTJcdTRmMjRcdTU1NDZcdThkNGZcdTY2NGNcdTRlMGFcdTVjMWFcdTg4ZjNcdTY4YTJcdTYzNGVcdTdhMGRcdTcwZTdcdTgyOGRcdTUyZmFcdTk3ZjZcdTVjMTFcdTU0ZThcdTkwYjVcdTdl'@; put 'Y2RcdTU5NjJcdThkNGFcdTg2YzdcdTgyMGNcdTgyMGRcdThkNjZcdTY0NDRcdTVjMDRcdTYxNTFcdTZkODlcdTc5M2VcdThiYmVcdTc4MzdcdTc1MzNcdTU0N2JcdTRmMzhcdThlYWJcdTZkZjFcdTVhMjBcdTdlYzVcdTc5NWVcdTZjODhcdTViYTFcdTVhNzZcdTc1MWFcdTgwYmVcdTYxNGVc'@; put 'dTZlMTdcdTU4ZjBcdTc1MWZcdTc1MjVcdTcyNzJcdTUzNDdcdTdlZjNcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMDFdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIwMV1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMDFdW3BdXT01MTQ1NitwLGJbNTE0NTYrcF09X1syMDFdW3BdKTtmb3Io'@; put 'X1syMDJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg1MDNcdTg1MDRcdTg1MDVcdTg1MDZcdTg1MDdcdTg1MDhcdTg1MDlcdTg1MGFcdTg1MGJcdTg1MGRcdTg1MGVcdTg1MGZcdTg1MTBcdTg1MTJcdTg1MTRcdTg1MTVcdTg1MTZc'@; put 'dTg1MThcdTg1MTlcdTg1MWJcdTg1MWNcdTg1MWRcdTg1MWVcdTg1MjBcdTg1MjJcdTg1MjNcdTg1MjRcdTg1MjVcdTg1MjZcdTg1MjdcdTg1MjhcdTg1MjlcdTg1MmFcdTg1MmRcdTg1MmVcdTg1MmZcdTg1MzBcdTg1MzFcdTg1MzJcdTg1MzNcdTg1MzRcdTg1MzVcdTg1MzZcdTg1M2VcdTg1'@; put 'M2ZcdTg1NDBcdTg1NDFcdTg1NDJcdTg1NDRcdTg1NDVcdTg1NDZcdTg1NDdcdTg1NGJcdTg1NGNcdTg1NGRcdTg1NGVcdTg1NGZcdTg1NTBcdTg1NTFcdTg1NTJcdTg1NTNcdTg1NTRcdTg1NTVcdWZmZmRcdTg1NTdcdTg1NThcdTg1NWFcdTg1NWJcdTg1NWNcdTg1NWRcdTg1NWZcdTg1NjBc'@; put 'dTg1NjFcdTg1NjJcdTg1NjNcdTg1NjVcdTg1NjZcdTg1NjdcdTg1NjlcdTg1NmFcdTg1NmJcdTg1NmNcdTg1NmRcdTg1NmVcdTg1NmZcdTg1NzBcdTg1NzFcdTg1NzNcdTg1NzVcdTg1NzZcdTg1NzdcdTg1NzhcdTg1N2NcdTg1N2RcdTg1N2ZcdTg1ODBcdTg1ODFcdTc3MDFcdTc2ZGJcdTUy'@; put 'NjlcdTgwZGNcdTU3MjNcdTVlMDhcdTU5MzFcdTcyZWVcdTY1YmRcdTZlN2ZcdThiZDdcdTVjMzhcdTg2NzFcdTUzNDFcdTc3ZjNcdTYyZmVcdTY1ZjZcdTRlYzBcdTk4ZGZcdTg2ODBcdTViOWVcdThiYzZcdTUzZjJcdTc3ZTJcdTRmN2ZcdTVjNGVcdTlhNzZcdTU5Y2JcdTVmMGZcdTc5M2Fc'@; put 'dTU4ZWJcdTRlMTZcdTY3ZmZcdTRlOGJcdTYyZWRcdThhOTNcdTkwMWRcdTUyYmZcdTY2MmZcdTU1ZGNcdTU2NmNcdTkwMDJcdTRlZDVcdTRmOGRcdTkxY2FcdTk5NzBcdTZjMGZcdTVlMDJcdTYwNDNcdTViYTRcdTg5YzZcdThiZDVcdTY1MzZcdTYyNGJcdTk5OTZcdTViODhcdTViZmZcdTYz'@; put 'ODhcdTU1MmVcdTUzZDdcdTc2MjZcdTUxN2RcdTg1MmNcdTY3YTJcdTY4YjNcdTZiOGFcdTYyOTJcdThmOTNcdTUzZDRcdTgyMTJcdTZkZDFcdTc1OGZcdTRlNjZcdThkNGVcdTViNzBcdTcxOWZcdTg1YWZcdTY2OTFcdTY2ZDlcdTdmNzJcdTg3MDBcdTllY2RcdTlmMjBcdTVjNWVcdTY3MmZc'@; put 'dThmZjBcdTY4MTFcdTY3NWZcdTYyMGRcdTdhZDZcdTU4ODVcdTVlYjZcdTY1NzBcdTZmMzFcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMDJdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIwMl1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMDJdW3BdXT01MTcxMitwLGJbNTE3MTIrcF09X1sy'@; put 'MDJdW3BdKTtmb3IoX1syMDNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg1ODJcdTg1ODNcdTg1ODZcdTg1ODhcdTg1ODlcdTg1OGFcdTg1OGJcdTg1OGNcdTg1OGRcdTg1OGVcdTg1OTBcdTg1OTFcdTg1OTJcdTg1OTNcdTg1OTRc'@; put 'dTg1OTVcdTg1OTZcdTg1OTdcdTg1OThcdTg1OTlcdTg1OWFcdTg1OWRcdTg1OWVcdTg1OWZcdTg1YTBcdTg1YTFcdTg1YTJcdTg1YTNcdTg1YTVcdTg1YTZcdTg1YTdcdTg1YTlcdTg1YWJcdTg1YWNcdTg1YWRcdTg1YjFcdTg1YjJcdTg1YjNcdTg1YjRcdTg1YjVcdTg1YjZcdTg1YjhcdTg1'@; put 'YmFcdTg1YmJcdTg1YmNcdTg1YmRcdTg1YmVcdTg1YmZcdTg1YzBcdTg1YzJcdTg1YzNcdTg1YzRcdTg1YzVcdTg1YzZcdTg1YzdcdTg1YzhcdTg1Y2FcdTg1Y2JcdTg1Y2NcdTg1Y2RcdTg1Y2VcdTg1ZDFcdTg1ZDJcdWZmZmRcdTg1ZDRcdTg1ZDZcdTg1ZDdcdTg1ZDhcdTg1ZDlcdTg1ZGFc'@; put 'dTg1ZGJcdTg1ZGRcdTg1ZGVcdTg1ZGZcdTg1ZTBcdTg1ZTFcdTg1ZTJcdTg1ZTNcdTg1ZTVcdTg1ZTZcdTg1ZTdcdTg1ZThcdTg1ZWFcdTg1ZWJcdTg1ZWNcdTg1ZWRcdTg1ZWVcdTg1ZWZcdTg1ZjBcdTg1ZjFcdTg1ZjJcdTg1ZjNcdTg1ZjRcdTg1ZjVcdTg1ZjZcdTg1ZjdcdTg1ZjhcdTYw'@; put 'NTVcdTUyMzdcdTgwMGRcdTY0NTRcdTg4NzBcdTc1MjlcdTVlMDVcdTY4MTNcdTYyZjRcdTk3MWNcdTUzY2NcdTcyM2RcdThjMDFcdTZjMzRcdTc3NjFcdTdhMGVcdTU0MmVcdTc3YWNcdTk4N2FcdTgyMWNcdThiZjRcdTc4NTVcdTY3MTRcdTcwYzFcdTY1YWZcdTY0OTVcdTU2MzZcdTYwMWRc'@; put 'dTc5YzFcdTUzZjhcdTRlMWRcdTZiN2JcdTgwODZcdTViZmFcdTU1ZTNcdTU2ZGJcdTRmM2FcdTRmM2NcdTk5NzJcdTVkZjNcdTY3N2VcdTgwMzhcdTYwMDJcdTk4ODJcdTkwMDFcdTViOGJcdThiYmNcdThiZjVcdTY0MWNcdTgyNThcdTY0ZGVcdTU1ZmRcdTgyY2ZcdTkxNjVcdTRmZDdcdTdk'@; put 'MjBcdTkwMWZcdTdjOWZcdTUwZjNcdTU4NTFcdTZlYWZcdTViYmZcdThiYzlcdTgwODNcdTkxNzhcdTg0OWNcdTdiOTdcdTg2N2RcdTk2OGJcdTk2OGZcdTdlZTVcdTlhZDNcdTc4OGVcdTVjODFcdTdhNTdcdTkwNDJcdTk2YTdcdTc5NWZcdTViNTlcdTYzNWZcdTdiMGJcdTg0ZDFcdTY4YWRc'@; put 'dTU1MDZcdTdmMjlcdTc0MTBcdTdkMjJcdTk1MDFcdTYyNDBcdTU4NGNcdTRlZDZcdTViODNcdTU5NzlcdTU4NTRcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMDNdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIwM11bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMDNdW3BdXT01MTk2OCtwLGJb'@; put 'NTE5NjgrcF09X1syMDNdW3BdKTtmb3IoX1syMDRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg1ZjlcdTg1ZmFcdTg1ZmNcdTg1ZmRcdTg1ZmVcdTg2MDBcdTg2MDFcdTg2MDJcdTg2MDNcdTg2MDRcdTg2MDZcdTg2MDdcdTg2MDhc'@; put 'dTg2MDlcdTg2MGFcdTg2MGJcdTg2MGNcdTg2MGRcdTg2MGVcdTg2MGZcdTg2MTBcdTg2MTJcdTg2MTNcdTg2MTRcdTg2MTVcdTg2MTdcdTg2MThcdTg2MTlcdTg2MWFcdTg2MWJcdTg2MWNcdTg2MWRcdTg2MWVcdTg2MWZcdTg2MjBcdTg2MjFcdTg2MjJcdTg2MjNcdTg2MjRcdTg2MjVcdTg2'@; put 'MjZcdTg2MjhcdTg2MmFcdTg2MmJcdTg2MmNcdTg2MmRcdTg2MmVcdTg2MmZcdTg2MzBcdTg2MzFcdTg2MzJcdTg2MzNcdTg2MzRcdTg2MzVcdTg2MzZcdTg2MzdcdTg2MzlcdTg2M2FcdTg2M2JcdTg2M2RcdTg2M2VcdTg2M2ZcdTg2NDBcdWZmZmRcdTg2NDFcdTg2NDJcdTg2NDNcdTg2NDRc'@; put 'dTg2NDVcdTg2NDZcdTg2NDdcdTg2NDhcdTg2NDlcdTg2NGFcdTg2NGJcdTg2NGNcdTg2NTJcdTg2NTNcdTg2NTVcdTg2NTZcdTg2NTdcdTg2NThcdTg2NTlcdTg2NWJcdTg2NWNcdTg2NWRcdTg2NWZcdTg2NjBcdTg2NjFcdTg2NjNcdTg2NjRcdTg2NjVcdTg2NjZcdTg2NjdcdTg2NjhcdTg2'@; put 'NjlcdTg2NmFcdTczNmRcdTYzMWVcdThlNGJcdThlMGZcdTgwY2VcdTgyZDRcdTYyYWNcdTUzZjBcdTZjZjBcdTkxNWVcdTU5MmFcdTYwMDFcdTZjNzBcdTU3NGRcdTY0NGFcdThkMmFcdTc2MmJcdTZlZTlcdTU3NWJcdTZhODBcdTc1ZjBcdTZmNmRcdThjMmRcdThjMDhcdTU3NjZcdTZiZWZc'@; put 'dTg4OTJcdTc4YjNcdTYzYTJcdTUzZjlcdTcwYWRcdTZjNjRcdTU4NThcdTY0MmFcdTU4MDJcdTY4ZTBcdTgxOWJcdTU1MTBcdTdjZDZcdTUwMThcdThlYmFcdTZkY2NcdThkOWZcdTcwZWJcdTYzOGZcdTZkOWJcdTZlZDRcdTdlZTZcdTg0MDRcdTY4NDNcdTkwMDNcdTZkZDhcdTk2NzZcdThi'@; put 'YThcdTU5NTdcdTcyNzlcdTg1ZTRcdTgxN2VcdTc1YmNcdThhOGFcdTY4YWZcdTUyNTRcdThlMjJcdTk1MTFcdTYzZDBcdTk4OThcdThlNDRcdTU1N2NcdTRmNTNcdTY2ZmZcdTU2OGZcdTYwZDVcdTZkOTVcdTUyNDNcdTVjNDlcdTU5MjlcdTZkZmJcdTU4NmJcdTc1MzBcdTc1MWNcdTYwNmNc'@; put 'dTgyMTRcdTgxNDZcdTYzMTFcdTY3NjFcdThmZTJcdTc3M2FcdThkZjNcdThkMzRcdTk0YzFcdTVlMTZcdTUzODVcdTU0MmNcdTcwYzNcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMDRdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIwNF1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMDRdW3Bd'@; put 'XT01MjIyNCtwLGJbNTIyMjQrcF09X1syMDRdW3BdKTtmb3IoX1syMDVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg2NmRcdTg2NmZcdTg2NzBcdTg2NzJcdTg2NzNcdTg2NzRcdTg2NzVcdTg2NzZcdTg2NzdcdTg2NzhcdTg2ODNc'@; put 'dTg2ODRcdTg2ODVcdTg2ODZcdTg2ODdcdTg2ODhcdTg2ODlcdTg2OGVcdTg2OGZcdTg2OTBcdTg2OTFcdTg2OTJcdTg2OTRcdTg2OTZcdTg2OTdcdTg2OThcdTg2OTlcdTg2OWFcdTg2OWJcdTg2OWVcdTg2OWZcdTg2YTBcdTg2YTFcdTg2YTJcdTg2YTVcdTg2YTZcdTg2YWJcdTg2YWRcdTg2'@; put 'YWVcdTg2YjJcdTg2YjNcdTg2YjdcdTg2YjhcdTg2YjlcdTg2YmJcdTg2YmNcdTg2YmRcdTg2YmVcdTg2YmZcdTg2YzFcdTg2YzJcdTg2YzNcdTg2YzVcdTg2YzhcdTg2Y2NcdTg2Y2RcdTg2ZDJcdTg2ZDNcdTg2ZDVcdTg2ZDZcdTg2ZDdcdTg2ZGFcdTg2ZGNcdWZmZmRcdTg2ZGRcdTg2ZTBc'@; put 'dTg2ZTFcdTg2ZTJcdTg2ZTNcdTg2ZTVcdTg2ZTZcdTg2ZTdcdTg2ZThcdTg2ZWFcdTg2ZWJcdTg2ZWNcdTg2ZWZcdTg2ZjVcdTg2ZjZcdTg2ZjdcdTg2ZmFcdTg2ZmJcdTg2ZmNcdTg2ZmRcdTg2ZmZcdTg3MDFcdTg3MDRcdTg3MDVcdTg3MDZcdTg3MGJcdTg3MGNcdTg3MGVcdTg3MGZcdTg3'@; put 'MTBcdTg3MTFcdTg3MTRcdTg3MTZcdTZjNDBcdTVlZjdcdTUwNWNcdTRlYWRcdTVlYWRcdTYzM2FcdTgyNDdcdTkwMWFcdTY4NTBcdTkxNmVcdTc3YjNcdTU0MGNcdTk0ZGNcdTVmNjRcdTdhZTVcdTY4NzZcdTYzNDVcdTdiNTJcdTdlZGZcdTc1ZGJcdTUwNzdcdTYyOTVcdTU5MzRcdTkwMGZc'@; put 'dTUxZjhcdTc5YzNcdTdhODFcdTU2ZmVcdTVmOTJcdTkwMTRcdTZkODJcdTVjNjBcdTU3MWZcdTU0MTBcdTUxNTRcdTZlNGRcdTU2ZTJcdTYzYThcdTk4OTNcdTgxN2ZcdTg3MTVcdTg5MmFcdTkwMDBcdTU0MWVcdTVjNmZcdTgxYzBcdTYyZDZcdTYyNThcdTgxMzFcdTllMzVcdTk2NDBcdTlh'@; put 'NmVcdTlhN2NcdTY5MmRcdTU5YTVcdTYyZDNcdTU1M2VcdTYzMTZcdTU0YzdcdTg2ZDlcdTZkM2NcdTVhMDNcdTc0ZTZcdTg4OWNcdTZiNmFcdTU5MTZcdThjNGNcdTVmMmZcdTZlN2VcdTczYTlcdTk4N2RcdTRlMzhcdTcwZjdcdTViOGNcdTc4OTdcdTYzM2RcdTY2NWFcdTc2OTZcdTYwY2Jc'@; put 'dTViOWJcdTVhNDlcdTRlMDdcdTgxNTVcdTZjNmFcdTczOGJcdTRlYTFcdTY3ODlcdTdmNTFcdTVmODBcdTY1ZmFcdTY3MWJcdTVmZDhcdTU5ODRcdTVhMDFcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMDVdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIwNV1bcF0uY2hhckNvZGVBdCgwKSYm'@; put 'KERbX1syMDVdW3BdXT01MjQ4MCtwLGJbNTI0ODArcF09X1syMDVdW3BdKTtmb3IoX1syMDZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg3MTlcdTg3MWJcdTg3MWRcdTg3MWZcdTg3MjBcdTg3MjRcdTg3MjZcdTg3MjdcdTg3Mjhc'@; put 'dTg3MmFcdTg3MmJcdTg3MmNcdTg3MmRcdTg3MmZcdTg3MzBcdTg3MzJcdTg3MzNcdTg3MzVcdTg3MzZcdTg3MzhcdTg3MzlcdTg3M2FcdTg3M2NcdTg3M2RcdTg3NDBcdTg3NDFcdTg3NDJcdTg3NDNcdTg3NDRcdTg3NDVcdTg3NDZcdTg3NGFcdTg3NGJcdTg3NGRcdTg3NGZcdTg3NTBcdTg3'@; put 'NTFcdTg3NTJcdTg3NTRcdTg3NTVcdTg3NTZcdTg3NThcdTg3NWFcdTg3NWJcdTg3NWNcdTg3NWRcdTg3NWVcdTg3NWZcdTg3NjFcdTg3NjJcdTg3NjZcdTg3NjdcdTg3NjhcdTg3NjlcdTg3NmFcdTg3NmJcdTg3NmNcdTg3NmRcdTg3NmZcdTg3NzFcdTg3NzJcdTg3NzNcdTg3NzVcdWZmZmRc'@; put 'dTg3NzdcdTg3NzhcdTg3NzlcdTg3N2FcdTg3N2ZcdTg3ODBcdTg3ODFcdTg3ODRcdTg3ODZcdTg3ODdcdTg3ODlcdTg3OGFcdTg3OGNcdTg3OGVcdTg3OGZcdTg3OTBcdTg3OTFcdTg3OTJcdTg3OTRcdTg3OTVcdTg3OTZcdTg3OThcdTg3OTlcdTg3OWFcdTg3OWJcdTg3OWNcdTg3OWRcdTg3'@; put 'OWVcdTg3YTBcdTg3YTFcdTg3YTJcdTg3YTNcdTg3YTRcdTVkY2RcdTVmYWVcdTUzNzFcdTk3ZTZcdThmZGRcdTY4NDVcdTU2ZjRcdTU1MmZcdTYwZGZcdTRlM2FcdTZmNGRcdTdlZjRcdTgyYzdcdTg0MGVcdTU5ZDRcdTRmMWZcdTRmMmFcdTVjM2VcdTdlYWNcdTY3MmFcdTg1MWFcdTU0NzNc'@; put 'dTc1NGZcdTgwYzNcdTU1ODJcdTliNGZcdTRmNGRcdTZlMmRcdThjMTNcdTVjMDlcdTYxNzBcdTUzNmJcdTc2MWZcdTZlMjlcdTg2OGFcdTY1ODdcdTk1ZmJcdTdlYjlcdTU0M2JcdTdhMzNcdTdkMGFcdTk1ZWVcdTU1ZTFcdTdmYzFcdTc0ZWVcdTYzMWRcdTg3MTdcdTZkYTFcdTdhOWRcdTYy'@; put 'MTFcdTY1YTFcdTUzNjdcdTYzZTFcdTZjODNcdTVkZWJcdTU0NWNcdTk0YThcdTRlNGNcdTZjNjFcdThiZWNcdTVjNGJcdTY1ZTBcdTgyOWNcdTY4YTdcdTU0M2VcdTU0MzRcdTZiY2JcdTZiNjZcdTRlOTRcdTYzNDJcdTUzNDhcdTgyMWVcdTRmMGRcdTRmYWVcdTU3NWVcdTYyMGFcdTk2ZmVc'@; put 'dTY2NjRcdTcyNjlcdTUyZmZcdTUyYTFcdTYwOWZcdThiZWZcdTY2MTRcdTcxOTlcdTY3OTBcdTg5N2ZcdTc4NTJcdTc3ZmRcdTY2NzBcdTU2M2JcdTU0MzhcdTk1MjFcdTcyN2FcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMDZdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIwNl1bcF0uY2hh'@; put 'ckNvZGVBdCgwKSYmKERbX1syMDZdW3BdXT01MjczNitwLGJbNTI3MzYrcF09X1syMDZdW3BdKTtmb3IoX1syMDddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg3YTVcdTg3YTZcdTg3YTdcdTg3YTlcdTg3YWFcdTg3YWVcdTg3YjBc'@; put 'dTg3YjFcdTg3YjJcdTg3YjRcdTg3YjZcdTg3YjdcdTg3YjhcdTg3YjlcdTg3YmJcdTg3YmNcdTg3YmVcdTg3YmZcdTg3YzFcdTg3YzJcdTg3YzNcdTg3YzRcdTg3YzVcdTg3YzdcdTg3YzhcdTg3YzlcdTg3Y2NcdTg3Y2RcdTg3Y2VcdTg3Y2ZcdTg3ZDBcdTg3ZDRcdTg3ZDVcdTg3ZDZcdTg3'@; put 'ZDdcdTg3ZDhcdTg3ZDlcdTg3ZGFcdTg3ZGNcdTg3ZGRcdTg3ZGVcdTg3ZGZcdTg3ZTFcdTg3ZTJcdTg3ZTNcdTg3ZTRcdTg3ZTZcdTg3ZTdcdTg3ZThcdTg3ZTlcdTg3ZWJcdTg3ZWNcdTg3ZWRcdTg3ZWZcdTg3ZjBcdTg3ZjFcdTg3ZjJcdTg3ZjNcdTg3ZjRcdTg3ZjVcdTg3ZjZcdTg3Zjdc'@; put 'dTg3ZjhcdWZmZmRcdTg3ZmFcdTg3ZmJcdTg3ZmNcdTg3ZmRcdTg3ZmZcdTg4MDBcdTg4MDFcdTg4MDJcdTg4MDRcdTg4MDVcdTg4MDZcdTg4MDdcdTg4MDhcdTg4MDlcdTg4MGJcdTg4MGNcdTg4MGRcdTg4MGVcdTg4MGZcdTg4MTBcdTg4MTFcdTg4MTJcdTg4MTRcdTg4MTdcdTg4MThcdTg4'@; put 'MTlcdTg4MWFcdTg4MWNcdTg4MWRcdTg4MWVcdTg4MWZcdTg4MjBcdTg4MjNcdTdhMDBcdTYwNmZcdTVlMGNcdTYwODlcdTgxOWRcdTU5MTVcdTYwZGNcdTcxODRcdTcwZWZcdTZlYWFcdTZjNTBcdTcyODBcdTZhODRcdTg4YWRcdTVlMmRcdTRlNjBcdTVhYjNcdTU1OWNcdTk0ZTNcdTZkMTdc'@; put 'dTdjZmJcdTk2OTlcdTYyMGZcdTdlYzZcdTc3OGVcdTg2N2VcdTUzMjNcdTk3MWVcdThmOTZcdTY2ODdcdTVjZTFcdTRmYTBcdTcyZWRcdTRlMGJcdTUzYTZcdTU5MGZcdTU0MTNcdTYzODBcdTk1MjhcdTUxNDhcdTRlZDlcdTljOWNcdTdlYTRcdTU0YjhcdThkMjRcdTg4NTRcdTgyMzdcdTk1'@; put 'ZjJcdTZkOGVcdTVmMjZcdTVhY2NcdTY2M2VcdTk2NjlcdTczYjBcdTczMmVcdTUzYmZcdTgxN2FcdTk5ODVcdTdmYTFcdTViYWFcdTk2NzdcdTk2NTBcdTdlYmZcdTc2ZjhcdTUzYTJcdTk1NzZcdTk5OTlcdTdiYjFcdTg5NDRcdTZlNThcdTRlNjFcdTdmZDRcdTc5NjVcdThiZTZcdTYwZjNc'@; put 'dTU0Y2RcdTRlYWJcdTk4NzlcdTVkZjdcdTZhNjFcdTUwY2ZcdTU0MTFcdThjNjFcdTg0MjdcdTc4NWRcdTk3MDRcdTUyNGFcdTU0ZWVcdTU2YTNcdTk1MDBcdTZkODhcdTViYjVcdTZkYzZcdTY2NTNcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMDddLmxlbmd0aDsrK3ApNjU1MzMhPT1f'@; put 'WzIwN11bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMDddW3BdXT01Mjk5MitwLGJbNTI5OTIrcF09X1syMDddW3BdKTtmb3IoX1syMDhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg4MjRcdTg4MjVcdTg4MjZcdTg4MjdcdTg4Mjhc'@; put 'dTg4MjlcdTg4MmFcdTg4MmJcdTg4MmNcdTg4MmRcdTg4MmVcdTg4MmZcdTg4MzBcdTg4MzFcdTg4MzNcdTg4MzRcdTg4MzVcdTg4MzZcdTg4MzdcdTg4MzhcdTg4M2FcdTg4M2JcdTg4M2RcdTg4M2VcdTg4M2ZcdTg4NDFcdTg4NDJcdTg4NDNcdTg4NDZcdTg4NDdcdTg4NDhcdTg4NDlcdTg4'@; put 'NGFcdTg4NGJcdTg4NGVcdTg4NGZcdTg4NTBcdTg4NTFcdTg4NTJcdTg4NTNcdTg4NTVcdTg4NTZcdTg4NThcdTg4NWFcdTg4NWJcdTg4NWNcdTg4NWRcdTg4NWVcdTg4NWZcdTg4NjBcdTg4NjZcdTg4NjdcdTg4NmFcdTg4NmRcdTg4NmZcdTg4NzFcdTg4NzNcdTg4NzRcdTg4NzVcdTg4NzZc'@; put 'dTg4NzhcdTg4NzlcdTg4N2FcdWZmZmRcdTg4N2JcdTg4N2NcdTg4ODBcdTg4ODNcdTg4ODZcdTg4ODdcdTg4ODlcdTg4OGFcdTg4OGNcdTg4OGVcdTg4OGZcdTg4OTBcdTg4OTFcdTg4OTNcdTg4OTRcdTg4OTVcdTg4OTdcdTg4OThcdTg4OTlcdTg4OWFcdTg4OWJcdTg4OWRcdTg4OWVcdTg4'@; put 'OWZcdTg4YTBcdTg4YTFcdTg4YTNcdTg4YTVcdTg4YTZcdTg4YTdcdTg4YThcdTg4YTlcdTg4YWFcdTVjMGZcdTViNWRcdTY4MjFcdTgwOTZcdTU1NzhcdTdiMTFcdTY1NDhcdTY5NTRcdTRlOWJcdTZiNDdcdTg3NGVcdTk3OGJcdTUzNGZcdTYzMWZcdTY0M2FcdTkwYWFcdTY1OWNcdTgwYzFc'@; put 'dThjMTBcdTUxOTlcdTY4YjBcdTUzNzhcdTg3ZjlcdTYxYzhcdTZjYzRcdTZjZmJcdThjMjJcdTVjNTFcdTg1YWFcdTgyYWZcdTk1MGNcdTZiMjNcdThmOWJcdTY1YjBcdTVmZmJcdTVmYzNcdTRmZTFcdTg4NDVcdTY2MWZcdTgxNjVcdTczMjlcdTYwZmFcdTUxNzRcdTUyMTFcdTU3OGJcdTVm'@; put 'NjJcdTkwYTJcdTg4NGNcdTkxOTJcdTVlNzhcdTY3NGZcdTYwMjdcdTU5ZDNcdTUxNDRcdTUxZjZcdTgwZjhcdTUzMDhcdTZjNzlcdTk2YzRcdTcxOGFcdTRmMTFcdTRmZWVcdTdmOWVcdTY3M2RcdTU1YzVcdTk1MDhcdTc5YzBcdTg4OTZcdTdlZTNcdTU4OWZcdTYyMGNcdTk3MDBcdTg2NWFc'@; put 'dTU2MThcdTk4N2JcdTVmOTBcdThiYjhcdTg0YzRcdTkxNTdcdTUzZDlcdTY1ZWRcdTVlOGZcdTc1NWNcdTYwNjRcdTdkNmVcdTVhN2ZcdTdlZWFcdTdlZWRcdThmNjlcdTU1YTdcdTViYTNcdTYwYWNcdTY1Y2JcdTczODRcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMDhdLmxlbmd0aDsr'@; put 'K3ApNjU1MzMhPT1fWzIwOF1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMDhdW3BdXT01MzI0OCtwLGJbNTMyNDgrcF09X1syMDhdW3BdKTtmb3IoX1syMDldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg4YWNcdTg4YWVcdTg4YWZc'@; put 'dTg4YjBcdTg4YjJcdTg4YjNcdTg4YjRcdTg4YjVcdTg4YjZcdTg4YjhcdTg4YjlcdTg4YmFcdTg4YmJcdTg4YmRcdTg4YmVcdTg4YmZcdTg4YzBcdTg4YzNcdTg4YzRcdTg4YzdcdTg4YzhcdTg4Y2FcdTg4Y2JcdTg4Y2NcdTg4Y2RcdTg4Y2ZcdTg4ZDBcdTg4ZDFcdTg4ZDNcdTg4ZDZcdTg4'@; put 'ZDdcdTg4ZGFcdTg4ZGJcdTg4ZGNcdTg4ZGRcdTg4ZGVcdTg4ZTBcdTg4ZTFcdTg4ZTZcdTg4ZTdcdTg4ZTlcdTg4ZWFcdTg4ZWJcdTg4ZWNcdTg4ZWRcdTg4ZWVcdTg4ZWZcdTg4ZjJcdTg4ZjVcdTg4ZjZcdTg4ZjdcdTg4ZmFcdTg4ZmJcdTg4ZmRcdTg4ZmZcdTg5MDBcdTg5MDFcdTg5MDNc'@; put 'dTg5MDRcdTg5MDVcdTg5MDZcdTg5MDdcdTg5MDhcdWZmZmRcdTg5MDlcdTg5MGJcdTg5MGNcdTg5MGRcdTg5MGVcdTg5MGZcdTg5MTFcdTg5MTRcdTg5MTVcdTg5MTZcdTg5MTdcdTg5MThcdTg5MWNcdTg5MWRcdTg5MWVcdTg5MWZcdTg5MjBcdTg5MjJcdTg5MjNcdTg5MjRcdTg5MjZcdTg5'@; put 'MjdcdTg5MjhcdTg5MjlcdTg5MmNcdTg5MmRcdTg5MmVcdTg5MmZcdTg5MzFcdTg5MzJcdTg5MzNcdTg5MzVcdTg5MzdcdTkwMDlcdTc2NjNcdTc3MjlcdTdlZGFcdTk3NzRcdTg1OWJcdTViNjZcdTdhNzRcdTk2ZWFcdTg4NDBcdTUyY2JcdTcxOGZcdTVmYWFcdTY1ZWNcdThiZTJcdTViZmJc'@; put 'dTlhNmZcdTVkZTFcdTZiODlcdTZjNWJcdThiYWRcdThiYWZcdTkwMGFcdThmYzVcdTUzOGJcdTYyYmNcdTllMjZcdTllMmRcdTU0NDBcdTRlMmJcdTgyYmRcdTcyNTlcdTg2OWNcdTVkMTZcdTg4NTlcdTZkYWZcdTk2YzVcdTU0ZDFcdTRlOWFcdThiYjZcdTcxMDlcdTU0YmRcdTk2MDlcdTcw'@; put 'ZGZcdTZkZjlcdTc2ZDBcdTRlMjVcdTc4MTRcdTg3MTJcdTVjYTlcdTVlZjZcdThhMDBcdTk4OWNcdTk2MGVcdTcwOGVcdTZjYmZcdTU5NDRcdTYzYTlcdTc3M2NcdTg4NGRcdTZmMTRcdTgyNzNcdTU4MzBcdTcxZDVcdTUzOGNcdTc4MWFcdTk2YzFcdTU1MDFcdTVmNjZcdTcxMzBcdTViYjRc'@; put 'dThjMWFcdTlhOGNcdTZiODNcdTU5MmVcdTllMmZcdTc5ZTdcdTY3NjhcdTYyNmNcdTRmNmZcdTc1YTFcdTdmOGFcdTZkMGJcdTk2MzNcdTZjMjdcdTRlZjBcdTc1ZDJcdTUxN2JcdTY4MzdcdTZmM2VcdTkwODBcdTgxNzBcdTU5OTZcdTc0NzZcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sy'@; put 'MDldLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIwOV1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMDldW3BdXT01MzUwNCtwLGJbNTM1MDQrcF09X1syMDldW3BdKTtmb3IoX1syMTBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg5Mzhc'@; put 'dTg5MzlcdTg5M2FcdTg5M2JcdTg5M2NcdTg5M2RcdTg5M2VcdTg5M2ZcdTg5NDBcdTg5NDJcdTg5NDNcdTg5NDVcdTg5NDZcdTg5NDdcdTg5NDhcdTg5NDlcdTg5NGFcdTg5NGJcdTg5NGNcdTg5NGRcdTg5NGVcdTg5NGZcdTg5NTBcdTg5NTFcdTg5NTJcdTg5NTNcdTg5NTRcdTg5NTVcdTg5'@; put 'NTZcdTg5NTdcdTg5NThcdTg5NTlcdTg5NWFcdTg5NWJcdTg5NWNcdTg5NWRcdTg5NjBcdTg5NjFcdTg5NjJcdTg5NjNcdTg5NjRcdTg5NjVcdTg5NjdcdTg5NjhcdTg5NjlcdTg5NmFcdTg5NmJcdTg5NmNcdTg5NmRcdTg5NmVcdTg5NmZcdTg5NzBcdTg5NzFcdTg5NzJcdTg5NzNcdTg5NzRc'@; put 'dTg5NzVcdTg5NzZcdTg5NzdcdTg5NzhcdTg5NzlcdTg5N2FcdTg5N2NcdWZmZmRcdTg5N2RcdTg5N2VcdTg5ODBcdTg5ODJcdTg5ODRcdTg5ODVcdTg5ODdcdTg5ODhcdTg5ODlcdTg5OGFcdTg5OGJcdTg5OGNcdTg5OGRcdTg5OGVcdTg5OGZcdTg5OTBcdTg5OTFcdTg5OTJcdTg5OTNcdTg5'@; put 'OTRcdTg5OTVcdTg5OTZcdTg5OTdcdTg5OThcdTg5OTlcdTg5OWFcdTg5OWJcdTg5OWNcdTg5OWRcdTg5OWVcdTg5OWZcdTg5YTBcdTg5YTFcdTY0NDdcdTVjMjdcdTkwNjVcdTdhOTFcdThjMjNcdTU5ZGFcdTU0YWNcdTgyMDBcdTgzNmZcdTg5ODFcdTgwMDBcdTY5MzBcdTU2NGVcdTgwMzZc'@; put 'dTcyMzdcdTkxY2VcdTUxYjZcdTRlNWZcdTk4NzVcdTYzOTZcdTRlMWFcdTUzZjZcdTY2ZjNcdTgxNGJcdTU5MWNcdTZkYjJcdTRlMDBcdTU4ZjlcdTUzM2JcdTYzZDZcdTk0ZjFcdTRmOWRcdTRmMGFcdTg4NjNcdTk4OTBcdTU5MzdcdTkwNTdcdTc5ZmJcdTRlZWFcdTgwZjBcdTc1OTFcdTZj'@; put 'ODJcdTViOWNcdTU5ZThcdTVmNWRcdTY5MDVcdTg2ODFcdTUwMWFcdTVkZjJcdTRlNTlcdTc3ZTNcdTRlZTVcdTgyN2FcdTYyOTFcdTY2MTNcdTkwOTFcdTVjNzlcdTRlYmZcdTVmNzlcdTgxYzZcdTkwMzhcdTgwODRcdTc1YWJcdTRlYTZcdTg4ZDRcdTYxMGZcdTZiYzVcdTVmYzZcdTRlNDlc'@; put 'dTc2Y2FcdTZlYTJcdThiZTNcdThiYWVcdThjMGFcdThiZDFcdTVmMDJcdTdmZmNcdTdmY2NcdTdlY2VcdTgzMzVcdTgzNmJcdTU2ZTBcdTZiYjdcdTk3ZjNcdTk2MzRcdTU5ZmJcdTU0MWZcdTk0ZjZcdTZkZWJcdTViYzVcdTk5NmVcdTVjMzlcdTVmMTVcdTk2OTBcdWZmZmQiLnNwbGl0KCIi'@; put 'KSxwPTA7cCE9X1syMTBdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIxMF1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMTBdW3BdXT01Mzc2MCtwLGJbNTM3NjArcF09X1syMTBdW3BdKTtmb3IoX1syMTFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdTg5YTJcdTg5YTNcdTg5YTRcdTg5YTVcdTg5YTZcdTg5YTdcdTg5YThcdTg5YTlcdTg5YWFcdTg5YWJcdTg5YWNcdTg5YWRcdTg5YWVcdTg5YWZcdTg5YjBcdTg5YjFcdTg5YjJcdTg5YjNcdTg5YjRcdTg5YjVcdTg5YjZcdTg5YjdcdTg5YjhcdTg5YjlcdTg5YmFcdTg5YmJcdTg5'@; put 'YmNcdTg5YmRcdTg5YmVcdTg5YmZcdTg5YzBcdTg5YzNcdTg5Y2RcdTg5ZDNcdTg5ZDRcdTg5ZDVcdTg5ZDdcdTg5ZDhcdTg5ZDlcdTg5ZGJcdTg5ZGRcdTg5ZGZcdTg5ZTBcdTg5ZTFcdTg5ZTJcdTg5ZTRcdTg5ZTdcdTg5ZThcdTg5ZTlcdTg5ZWFcdTg5ZWNcdTg5ZWRcdTg5ZWVcdTg5ZjBc'@; put 'dTg5ZjFcdTg5ZjJcdTg5ZjRcdTg5ZjVcdTg5ZjZcdTg5ZjdcdTg5ZjhcdTg5ZjlcdTg5ZmFcdWZmZmRcdTg5ZmJcdTg5ZmNcdTg5ZmRcdTg5ZmVcdTg5ZmZcdThhMDFcdThhMDJcdThhMDNcdThhMDRcdThhMDVcdThhMDZcdThhMDhcdThhMDlcdThhMGFcdThhMGJcdThhMGNcdThhMGRcdThh'@; put 'MGVcdThhMGZcdThhMTBcdThhMTFcdThhMTJcdThhMTNcdThhMTRcdThhMTVcdThhMTZcdThhMTdcdThhMThcdThhMTlcdThhMWFcdThhMWJcdThhMWNcdThhMWRcdTUzNzBcdTgyZjFcdTZhMzFcdTVhNzRcdTllNzBcdTVlOTRcdTdmMjhcdTgzYjlcdTg0MjRcdTg0MjVcdTgzNjdcdTg3NDdc'@; put 'dThmY2VcdThkNjJcdTc2YzhcdTVmNzFcdTk4OTZcdTc4NmNcdTY2MjBcdTU0ZGZcdTYyZTVcdTRmNjNcdTgxYzNcdTc1YzhcdTVlYjhcdTk2Y2RcdThlMGFcdTg2ZjlcdTU0OGZcdTZjZjNcdTZkOGNcdTZjMzhcdTYwN2ZcdTUyYzdcdTc1MjhcdTVlN2RcdTRmMThcdTYwYTBcdTVmZTdcdTVj'@; put 'MjRcdTc1MzFcdTkwYWVcdTk0YzBcdTcyYjlcdTZjYjlcdTZlMzhcdTkxNDlcdTY3MDlcdTUzY2JcdTUzZjNcdTRmNTFcdTkxYzlcdThiZjFcdTUzYzhcdTVlN2NcdThmYzJcdTZkZTRcdTRlOGVcdTc2YzJcdTY5ODZcdTg2NWVcdTYxMWFcdTgyMDZcdTRmNTlcdTRmZGVcdTkwM2VcdTljN2Nc'@; put 'dTYxMDlcdTZlMWRcdTZlMTRcdTk2ODVcdTRlODhcdTVhMzFcdTk2ZThcdTRlMGVcdTVjN2ZcdTc5YjlcdTViODdcdThiZWRcdTdmYmRcdTczODlcdTU3ZGZcdTgyOGJcdTkwYzFcdTU0MDFcdTkwNDdcdTU1YmJcdTVjZWFcdTVmYTFcdTYxMDhcdTZiMzJcdTcyZjFcdTgwYjJcdThhODlcdWZm'@; put 'ZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMTFdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIxMV1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMTFdW3BdXT01NDAxNitwLGJbNTQwMTYrcF09X1syMTFdW3BdKTtmb3IoX1syMTJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdThhMWVcdThhMWZcdThhMjBcdThhMjFcdThhMjJcdThhMjNcdThhMjRcdThhMjVcdThhMjZcdThhMjdcdThhMjhcdThhMjlcdThhMmFcdThhMmJcdThhMmNcdThhMmRcdThhMmVcdThhMmZcdThhMzBcdThhMzFcdThhMzJcdThhMzNcdThhMzRcdThhMzVcdThh'@; put 'MzZcdThhMzdcdThhMzhcdThhMzlcdThhM2FcdThhM2JcdThhM2NcdThhM2RcdThhM2ZcdThhNDBcdThhNDFcdThhNDJcdThhNDNcdThhNDRcdThhNDVcdThhNDZcdThhNDdcdThhNDlcdThhNGFcdThhNGJcdThhNGNcdThhNGRcdThhNGVcdThhNGZcdThhNTBcdThhNTFcdThhNTJcdThhNTNc'@; put 'dThhNTRcdThhNTVcdThhNTZcdThhNTdcdThhNThcdThhNTlcdThhNWFcdThhNWJcdThhNWNcdThhNWRcdThhNWVcdWZmZmRcdThhNWZcdThhNjBcdThhNjFcdThhNjJcdThhNjNcdThhNjRcdThhNjVcdThhNjZcdThhNjdcdThhNjhcdThhNjlcdThhNmFcdThhNmJcdThhNmNcdThhNmRcdThh'@; put 'NmVcdThhNmZcdThhNzBcdThhNzFcdThhNzJcdThhNzNcdThhNzRcdThhNzVcdThhNzZcdThhNzdcdThhNzhcdThhN2FcdThhN2JcdThhN2NcdThhN2RcdThhN2VcdThhN2ZcdThhODBcdTZkNzRcdTViZDNcdTg4ZDVcdTk4ODRcdThjNmJcdTlhNmRcdTllMzNcdTZlMGFcdTUxYTRcdTUxNDNc'@; put 'dTU3YTNcdTg4ODFcdTUzOWZcdTYzZjRcdThmOTVcdTU2ZWRcdTU0NThcdTU3MDZcdTczM2ZcdTZlOTBcdTdmMThcdThmZGNcdTgyZDFcdTYxM2ZcdTYwMjhcdTk2NjJcdTY2ZjBcdTdlYTZcdThkOGFcdThkYzNcdTk0YTVcdTVjYjNcdTdjYTRcdTY3MDhcdTYwYTZcdTk2MDVcdTgwMThcdTRl'@; put 'OTFcdTkwZTdcdTUzMDBcdTk2NjhcdTUxNDFcdThmZDBcdTg1NzRcdTkxNWRcdTY2NTVcdTk3ZjVcdTViNTVcdTUzMWRcdTc4MzhcdTY3NDJcdTY4M2RcdTU0YzlcdTcwN2VcdTViYjBcdThmN2RcdTUxOGRcdTU3MjhcdTU0YjFcdTY1MTJcdTY2ODJcdThkNWVcdThkNDNcdTgxMGZcdTg0NmNc'@; put 'dTkwNmRcdTdjZGZcdTUxZmZcdTg1ZmJcdTY3YTNcdTY1ZTlcdTZmYTFcdTg2YTRcdThlODFcdTU2NmFcdTkwMjBcdTc2ODJcdTcwNzZcdTcxZTVcdThkMjNcdTYyZTlcdTUyMTlcdTZjZmRcdThkM2NcdTYwMGVcdTU4OWVcdTYxOGVcdTY2ZmVcdThkNjBcdTYyNGVcdTU1YjNcdTZlMjNcdTY3'@; put 'MmRcdThmNjdcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMTJdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIxMl1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMTJdW3BdXT01NDI3MitwLGJbNTQyNzIrcF09X1syMTJdW3BdKTtmb3IoX1syMTNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThhODFcdThhODJcdThhODNcdThhODRcdThhODVcdThhODZcdThhODdcdThhODhcdThhOGJcdThhOGNcdThhOGRcdThhOGVcdThhOGZcdThhOTBcdThhOTFcdThhOTJcdThhOTRcdThhOTVcdThhOTZcdThhOTdcdThhOThcdThhOTlcdThh'@; put 'OWFcdThhOWJcdThhOWNcdThhOWRcdThhOWVcdThhOWZcdThhYTBcdThhYTFcdThhYTJcdThhYTNcdThhYTRcdThhYTVcdThhYTZcdThhYTdcdThhYThcdThhYTlcdThhYWFcdThhYWJcdThhYWNcdThhYWRcdThhYWVcdThhYWZcdThhYjBcdThhYjFcdThhYjJcdThhYjNcdThhYjRcdThhYjVc'@; put 'dThhYjZcdThhYjdcdThhYjhcdThhYjlcdThhYmFcdThhYmJcdThhYmNcdThhYmRcdThhYmVcdThhYmZcdThhYzBcdThhYzFcdThhYzJcdWZmZmRcdThhYzNcdThhYzRcdThhYzVcdThhYzZcdThhYzdcdThhYzhcdThhYzlcdThhY2FcdThhY2JcdThhY2NcdThhY2RcdThhY2VcdThhY2ZcdThh'@; put 'ZDBcdThhZDFcdThhZDJcdThhZDNcdThhZDRcdThhZDVcdThhZDZcdThhZDdcdThhZDhcdThhZDlcdThhZGFcdThhZGJcdThhZGNcdThhZGRcdThhZGVcdThhZGZcdThhZTBcdThhZTFcdThhZTJcdThhZTNcdTk0ZTFcdTk1ZjhcdTc3MjhcdTY4MDVcdTY5YThcdTU0OGJcdTRlNGRcdTcwYjhc'@; put 'dThiYzhcdTY0NThcdTY1OGJcdTViODVcdTdhODRcdTUwM2FcdTViZThcdTc3YmJcdTZiZTFcdThhNzlcdTdjOThcdTZjYmVcdTc2Y2ZcdTY1YTlcdThmOTdcdTVkMmRcdTVjNTVcdTg2MzhcdTY4MDhcdTUzNjBcdTYyMThcdTdhZDlcdTZlNWJcdTdlZmRcdTZhMWZcdTdhZTBcdTVmNzBcdTZm'@; put 'MzNcdTVmMjBcdTYzOGNcdTZkYThcdTY3NTZcdTRlMDhcdTVlMTBcdThkMjZcdTRlZDdcdTgwYzBcdTc2MzRcdTk2OWNcdTYyZGJcdTY2MmRcdTYyN2VcdTZjYmNcdThkNzVcdTcxNjdcdTdmNjlcdTUxNDZcdTgwODdcdTUzZWNcdTkwNmVcdTYyOThcdTU0ZjJcdTg2ZjBcdThmOTlcdTgwMDVc'@; put 'dTk1MTdcdTg1MTdcdThmZDlcdTZkNTlcdTczY2RcdTY1OWZcdTc3MWZcdTc1MDRcdTc4MjdcdTgxZmJcdThkMWVcdTk0ODhcdTRmYTZcdTY3OTVcdTc1YjlcdThiY2FcdTk3MDdcdTYzMmZcdTk1NDdcdTk2MzVcdTg0YjhcdTYzMjNcdTc3NDFcdTVmODFcdTcyZjBcdTRlODlcdTYwMTRcdTY1'@; put 'NzRcdTYyZWZcdTZiNjNcdTY1M2ZcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMTNdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIxM11bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMTNdW3BdXT01NDUyOCtwLGJbNTQ1MjgrcF09X1syMTNdW3BdKTtmb3IoX1syMTRdPSJcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThhZTRcdThhZTVcdThhZTZcdThhZTdcdThhZThcdThhZTlcdThhZWFcdThhZWJcdThhZWNcdThhZWRcdThhZWVcdThhZWZcdThhZjBcdThhZjFcdThhZjJcdThhZjNcdThhZjRcdThhZjVcdThhZjZcdThhZjdcdThh'@; put 'ZjhcdThhZjlcdThhZmFcdThhZmJcdThhZmNcdThhZmRcdThhZmVcdThhZmZcdThiMDBcdThiMDFcdThiMDJcdThiMDNcdThiMDRcdThiMDVcdThiMDZcdThiMDhcdThiMDlcdThiMGFcdThiMGJcdThiMGNcdThiMGRcdThiMGVcdThiMGZcdThiMTBcdThiMTFcdThiMTJcdThiMTNcdThiMTRc'@; put 'dThiMTVcdThiMTZcdThiMTdcdThiMThcdThiMTlcdThiMWFcdThiMWJcdThiMWNcdThiMWRcdThiMWVcdThiMWZcdThiMjBcdThiMjFcdThiMjJcdThiMjNcdWZmZmRcdThiMjRcdThiMjVcdThiMjdcdThiMjhcdThiMjlcdThiMmFcdThiMmJcdThiMmNcdThiMmRcdThiMmVcdThiMmZcdThi'@; put 'MzBcdThiMzFcdThiMzJcdThiMzNcdThiMzRcdThiMzVcdThiMzZcdThiMzdcdThiMzhcdThiMzlcdThiM2FcdThiM2JcdThiM2NcdThiM2RcdThiM2VcdThiM2ZcdThiNDBcdThiNDFcdThiNDJcdThiNDNcdThiNDRcdThiNDVcdTVlMjdcdTc1YzdcdTkwZDFcdThiYzFcdTgyOWRcdTY3OWRc'@; put 'dTY1MmZcdTU0MzFcdTg3MThcdTc3ZTVcdTgwYTJcdTgxMDJcdTZjNDFcdTRlNGJcdTdlYzdcdTgwNGNcdTc2ZjRcdTY5MGRcdTZiOTZcdTYyNjdcdTUwM2NcdTRmODRcdTU3NDBcdTYzMDdcdTZiNjJcdThkYmVcdTUzZWFcdTY1ZThcdTdlYjhcdTVmZDdcdTYzMWFcdTYzYjdcdTgxZjNcdTgx'@; put 'ZjRcdTdmNmVcdTVlMWNcdTVjZDlcdTUyMzZcdTY2N2FcdTc5ZTlcdTdhMWFcdThkMjhcdTcwOTlcdTc1ZDRcdTZlZGVcdTZjYmJcdTdhOTJcdTRlMmRcdTc2YzVcdTVmZTBcdTk0OWZcdTg4NzdcdTdlYzhcdTc5Y2RcdTgwYmZcdTkxY2RcdTRlZjJcdTRmMTdcdTgyMWZcdTU0NjhcdTVkZGVc'@; put 'dTZkMzJcdThiY2NcdTdjYTVcdThmNzRcdTgwOThcdTVlMWFcdTU0OTJcdTc2YjFcdTViOTlcdTY2M2NcdTlhYTRcdTczZTBcdTY4MmFcdTg2ZGJcdTY3MzFcdTczMmFcdThiZjhcdThiZGJcdTkwMTBcdTdhZjlcdTcwZGJcdTcxNmVcdTYyYzRcdTc3YTlcdTU2MzFcdTRlM2JcdTg0NTdcdTY3'@; put 'ZjFcdTUyYTlcdTg2YzBcdThkMmVcdTk0ZjhcdTdiNTFcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMTRdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIxNF1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMTRdW3BdXT01NDc4NCtwLGJbNTQ3ODQrcF09X1syMTRdW3BdKTtmb3IoX1syMTVdPSJc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThiNDZcdThiNDdcdThiNDhcdThiNDlcdThiNGFcdThiNGJcdThiNGNcdThiNGRcdThiNGVcdThiNGZcdThiNTBcdThiNTFcdThiNTJcdThiNTNcdThiNTRcdThiNTVcdThiNTZcdThiNTdcdThi'@; put 'NThcdThiNTlcdThiNWFcdThiNWJcdThiNWNcdThiNWRcdThiNWVcdThiNWZcdThiNjBcdThiNjFcdThiNjJcdThiNjNcdThiNjRcdThiNjVcdThiNjdcdThiNjhcdThiNjlcdThiNmFcdThiNmJcdThiNmRcdThiNmVcdThiNmZcdThiNzBcdThiNzFcdThiNzJcdThiNzNcdThiNzRcdThiNzVc'@; put 'dThiNzZcdThiNzdcdThiNzhcdThiNzlcdThiN2FcdThiN2JcdThiN2NcdThiN2RcdThiN2VcdThiN2ZcdThiODBcdThiODFcdThiODJcdThiODNcdThiODRcdThiODVcdThiODZcdWZmZmRcdThiODdcdThiODhcdThiODlcdThiOGFcdThiOGJcdThiOGNcdThiOGRcdThiOGVcdThiOGZcdThi'@; put 'OTBcdThiOTFcdThiOTJcdThiOTNcdThiOTRcdThiOTVcdThiOTZcdThiOTdcdThiOThcdThiOTlcdThiOWFcdThiOWJcdThiOWNcdThiOWRcdThiOWVcdThiOWZcdThiYWNcdThiYjFcdThiYmJcdThiYzdcdThiZDBcdThiZWFcdThjMDlcdThjMWVcdTRmNGZcdTZjZThcdTc5NWRcdTlhN2Jc'@; put 'dTYyOTNcdTcyMmFcdTYyZmRcdTRlMTNcdTc4MTZcdThmNmNcdTY0YjBcdThkNWFcdTdiYzZcdTY4NjlcdTVlODRcdTg4YzVcdTU5ODZcdTY0OWVcdTU4ZWVcdTcyYjZcdTY5MGVcdTk1MjVcdThmZmRcdThkNThcdTU3NjBcdTdmMDBcdThjMDZcdTUxYzZcdTYzNDlcdTYyZDlcdTUzNTNcdTY4'@; put 'NGNcdTc0MjJcdTgzMDFcdTkxNGNcdTU1NDRcdTc3NDBcdTcwN2NcdTZkNGFcdTUxNzlcdTU0YThcdThkNDRcdTU5ZmZcdTZlY2JcdTZkYzRcdTViNWNcdTdkMmJcdTRlZDRcdTdjN2RcdTZlZDNcdTViNTBcdTgxZWFcdTZlMGRcdTViNTdcdTliMDNcdTY4ZDVcdThlMmFcdTViOTdcdTdlZmNc'@; put 'dTYwM2JcdTdlYjVcdTkwYjlcdThkNzBcdTU5NGZcdTYzY2RcdTc5ZGZcdThkYjNcdTUzNTJcdTY1Y2ZcdTc5NTZcdThiYzVcdTk2M2JcdTdlYzRcdTk0YmJcdTdlODJcdTU2MzRcdTkxODlcdTY3MDBcdTdmNmFcdTVjMGFcdTkwNzVcdTY2MjhcdTVkZTZcdTRmNTBcdTY3ZGVcdTUwNWFcdTRm'@; put 'NWNcdTU3NTBcdTVlYTdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMTVdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIxNV1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMTVdW3BdXT01NTA0MCtwLGJbNTUwNDArcF09X1syMTVdW3BdKTtm'@; put 'b3IoX1syMTZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThjMzhcdThjMzlcdThjM2FcdThjM2JcdThjM2NcdThjM2RcdThjM2VcdThjM2ZcdThjNDBcdThjNDJcdThjNDNcdThjNDRcdThjNDVcdThjNDhcdThjNGFcdThjNGJcdThj'@; put 'NGRcdThjNGVcdThjNGZcdThjNTBcdThjNTFcdThjNTJcdThjNTNcdThjNTRcdThjNTZcdThjNTdcdThjNThcdThjNTlcdThjNWJcdThjNWNcdThjNWRcdThjNWVcdThjNWZcdThjNjBcdThjNjNcdThjNjRcdThjNjVcdThjNjZcdThjNjdcdThjNjhcdThjNjlcdThjNmNcdThjNmRcdThjNmVc'@; put 'dThjNmZcdThjNzBcdThjNzFcdThjNzJcdThjNzRcdThjNzVcdThjNzZcdThjNzdcdThjN2JcdThjN2NcdThjN2RcdThjN2VcdThjN2ZcdThjODBcdThjODFcdThjODNcdThjODRcdThjODZcdThjODdcdWZmZmRcdThjODhcdThjOGJcdThjOGRcdThjOGVcdThjOGZcdThjOTBcdThjOTFcdThj'@; put 'OTJcdThjOTNcdThjOTVcdThjOTZcdThjOTdcdThjOTlcdThjOWFcdThjOWJcdThjOWNcdThjOWRcdThjOWVcdThjOWZcdThjYTBcdThjYTFcdThjYTJcdThjYTNcdThjYTRcdThjYTVcdThjYTZcdThjYTdcdThjYThcdThjYTlcdThjYWFcdThjYWJcdThjYWNcdThjYWRcdTRlOGRcdTRlMGNc'@; put 'dTUxNDBcdTRlMTBcdTVlZmZcdTUzNDVcdTRlMTVcdTRlOThcdTRlMWVcdTliMzJcdTViNmNcdTU2NjlcdTRlMjhcdTc5YmFcdTRlM2ZcdTUzMTVcdTRlNDdcdTU5MmRcdTcyM2JcdTUzNmVcdTZjMTBcdTU2ZGZcdTgwZTRcdTk5OTdcdTZiZDNcdTc3N2VcdTlmMTdcdTRlMzZcdTRlOWZcdTlm'@; put 'MTBcdTRlNWNcdTRlNjlcdTRlOTNcdTgyODhcdTViNWJcdTU1NmNcdTU2MGZcdTRlYzRcdTUzOGRcdTUzOWRcdTUzYTNcdTUzYTVcdTUzYWVcdTk3NjVcdThkNWRcdTUzMWFcdTUzZjVcdTUzMjZcdTUzMmVcdTUzM2VcdThkNWNcdTUzNjZcdTUzNjNcdTUyMDJcdTUyMDhcdTUyMGVcdTUyMmRc'@; put 'dTUyMzNcdTUyM2ZcdTUyNDBcdTUyNGNcdTUyNWVcdTUyNjFcdTUyNWNcdTg0YWZcdTUyN2RcdTUyODJcdTUyODFcdTUyOTBcdTUyOTNcdTUxODJcdTdmNTRcdTRlYmJcdTRlYzNcdTRlYzlcdTRlYzJcdTRlZThcdTRlZTFcdTRlZWJcdTRlZGVcdTRmMWJcdTRlZjNcdTRmMjJcdTRmNjRcdTRl'@; put 'ZjVcdTRmMjVcdTRmMjdcdTRmMDlcdTRmMmJcdTRmNWVcdTRmNjdcdTY1MzhcdTRmNWFcdTRmNWRcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMTZdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIxNl1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMTZdW3BdXT01NTI5NitwLGJbNTUyOTYrcF09'@; put 'X1syMTZdW3BdKTtmb3IoX1syMTddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThjYWVcdThjYWZcdThjYjBcdThjYjFcdThjYjJcdThjYjNcdThjYjRcdThjYjVcdThjYjZcdThjYjdcdThjYjhcdThjYjlcdThjYmFcdThjYmJcdThj'@; put 'YmNcdThjYmRcdThjYmVcdThjYmZcdThjYzBcdThjYzFcdThjYzJcdThjYzNcdThjYzRcdThjYzVcdThjYzZcdThjYzdcdThjYzhcdThjYzlcdThjY2FcdThjY2JcdThjY2NcdThjY2RcdThjY2VcdThjY2ZcdThjZDBcdThjZDFcdThjZDJcdThjZDNcdThjZDRcdThjZDVcdThjZDZcdThjZDdc'@; put 'dThjZDhcdThjZDlcdThjZGFcdThjZGJcdThjZGNcdThjZGRcdThjZGVcdThjZGZcdThjZTBcdThjZTFcdThjZTJcdThjZTNcdThjZTRcdThjZTVcdThjZTZcdThjZTdcdThjZThcdThjZTlcdThjZWFcdThjZWJcdThjZWNcdWZmZmRcdThjZWRcdThjZWVcdThjZWZcdThjZjBcdThjZjFcdThj'@; put 'ZjJcdThjZjNcdThjZjRcdThjZjVcdThjZjZcdThjZjdcdThjZjhcdThjZjlcdThjZmFcdThjZmJcdThjZmNcdThjZmRcdThjZmVcdThjZmZcdThkMDBcdThkMDFcdThkMDJcdThkMDNcdThkMDRcdThkMDVcdThkMDZcdThkMDdcdThkMDhcdThkMDlcdThkMGFcdThkMGJcdThkMGNcdThkMGRc'@; put 'dTRmNWZcdTRmNTdcdTRmMzJcdTRmM2RcdTRmNzZcdTRmNzRcdTRmOTFcdTRmODlcdTRmODNcdTRmOGZcdTRmN2VcdTRmN2JcdTRmYWFcdTRmN2NcdTRmYWNcdTRmOTRcdTRmZTZcdTRmZThcdTRmZWFcdTRmYzVcdTRmZGFcdTRmZTNcdTRmZGNcdTRmZDFcdTRmZGZcdTRmZjhcdTUwMjlcdTUw'@; put 'NGNcdTRmZjNcdTUwMmNcdTUwMGZcdTUwMmVcdTUwMmRcdTRmZmVcdTUwMWNcdTUwMGNcdTUwMjVcdTUwMjhcdTUwN2VcdTUwNDNcdTUwNTVcdTUwNDhcdTUwNGVcdTUwNmNcdTUwN2JcdTUwYTVcdTUwYTdcdTUwYTlcdTUwYmFcdTUwZDZcdTUxMDZcdTUwZWRcdTUwZWNcdTUwZTZcdTUwZWVc'@; put 'dTUxMDdcdTUxMGJcdTRlZGRcdTZjM2RcdTRmNThcdTRmNjVcdTRmY2VcdTlmYTBcdTZjNDZcdTdjNzRcdTUxNmVcdTVkZmRcdTllYzlcdTk5OThcdTUxODFcdTU5MTRcdTUyZjlcdTUzMGRcdThhMDdcdTUzMTBcdTUxZWJcdTU5MTlcdTUxNTVcdTRlYTBcdTUxNTZcdTRlYjNcdTg4NmVcdTg4'@; put 'YTRcdTRlYjVcdTgxMTRcdTg4ZDJcdTc5ODBcdTViMzRcdTg4MDNcdTdmYjhcdTUxYWJcdTUxYjFcdTUxYmRcdTUxYmNcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMTddLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIxN11bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMTddW3BdXT01NTU1Mitw'@; put 'LGJbNTU1NTIrcF09X1syMTddW3BdKTtmb3IoX1syMThdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThkMGVcdThkMGZcdThkMTBcdThkMTFcdThkMTJcdThkMTNcdThkMTRcdThkMTVcdThkMTZcdThkMTdcdThkMThcdThkMTlcdThk'@; put 'MWFcdThkMWJcdThkMWNcdThkMjBcdThkNTFcdThkNTJcdThkNTdcdThkNWZcdThkNjVcdThkNjhcdThkNjlcdThkNmFcdThkNmNcdThkNmVcdThkNmZcdThkNzFcdThkNzJcdThkNzhcdThkNzlcdThkN2FcdThkN2JcdThkN2NcdThkN2RcdThkN2VcdThkN2ZcdThkODBcdThkODJcdThkODNc'@; put 'dThkODZcdThkODdcdThkODhcdThkODlcdThkOGNcdThkOGRcdThkOGVcdThkOGZcdThkOTBcdThkOTJcdThkOTNcdThkOTVcdThkOTZcdThkOTdcdThkOThcdThkOTlcdThkOWFcdThkOWJcdThkOWNcdThkOWRcdThkOWVcdThkYTBcdThkYTFcdWZmZmRcdThkYTJcdThkYTRcdThkYTVcdThk'@; put 'YTZcdThkYTdcdThkYThcdThkYTlcdThkYWFcdThkYWJcdThkYWNcdThkYWRcdThkYWVcdThkYWZcdThkYjBcdThkYjJcdThkYjZcdThkYjdcdThkYjlcdThkYmJcdThkYmRcdThkYzBcdThkYzFcdThkYzJcdThkYzVcdThkYzdcdThkYzhcdThkYzlcdThkY2FcdThkY2RcdThkZDBcdThkZDJc'@; put 'dThkZDNcdThkZDRcdTUxYzdcdTUxOTZcdTUxYTJcdTUxYTVcdThiYTBcdThiYTZcdThiYTdcdThiYWFcdThiYjRcdThiYjVcdThiYjdcdThiYzJcdThiYzNcdThiY2JcdThiY2ZcdThiY2VcdThiZDJcdThiZDNcdThiZDRcdThiZDZcdThiZDhcdThiZDlcdThiZGNcdThiZGZcdThiZTBcdThi'@; put 'ZTRcdThiZThcdThiZTlcdThiZWVcdThiZjBcdThiZjNcdThiZjZcdThiZjlcdThiZmNcdThiZmZcdThjMDBcdThjMDJcdThjMDRcdThjMDdcdThjMGNcdThjMGZcdThjMTFcdThjMTJcdThjMTRcdThjMTVcdThjMTZcdThjMTlcdThjMWJcdThjMThcdThjMWRcdThjMWZcdThjMjBcdThjMjFc'@; put 'dThjMjVcdThjMjdcdThjMmFcdThjMmJcdThjMmVcdThjMmZcdThjMzJcdThjMzNcdThjMzVcdThjMzZcdTUzNjlcdTUzN2FcdTk2MWRcdTk2MjJcdTk2MjFcdTk2MzFcdTk2MmFcdTk2M2RcdTk2M2NcdTk2NDJcdTk2NDlcdTk2NTRcdTk2NWZcdTk2NjdcdTk2NmNcdTk2NzJcdTk2NzRcdTk2'@; put 'ODhcdTk2OGRcdTk2OTdcdTk2YjBcdTkwOTdcdTkwOWJcdTkwOWRcdTkwOTlcdTkwYWNcdTkwYTFcdTkwYjRcdTkwYjNcdTkwYjZcdTkwYmFcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMThdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIxOF1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMThd'@; put 'W3BdXT01NTgwOCtwLGJbNTU4MDgrcF09X1syMThdW3BdKTtmb3IoX1syMTldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThkZDVcdThkZDhcdThkZDlcdThkZGNcdThkZTBcdThkZTFcdThkZTJcdThkZTVcdThkZTZcdThkZTdcdThk'@; put 'ZTlcdThkZWRcdThkZWVcdThkZjBcdThkZjFcdThkZjJcdThkZjRcdThkZjZcdThkZmNcdThkZmVcdThkZmZcdThlMDBcdThlMDFcdThlMDJcdThlMDNcdThlMDRcdThlMDZcdThlMDdcdThlMDhcdThlMGJcdThlMGRcdThlMGVcdThlMTBcdThlMTFcdThlMTJcdThlMTNcdThlMTVcdThlMTZc'@; put 'dThlMTdcdThlMThcdThlMTlcdThlMWFcdThlMWJcdThlMWNcdThlMjBcdThlMjFcdThlMjRcdThlMjVcdThlMjZcdThlMjdcdThlMjhcdThlMmJcdThlMmRcdThlMzBcdThlMzJcdThlMzNcdThlMzRcdThlMzZcdThlMzdcdThlMzhcdThlM2JcdThlM2NcdThlM2VcdWZmZmRcdThlM2ZcdThl'@; put 'NDNcdThlNDVcdThlNDZcdThlNGNcdThlNGRcdThlNGVcdThlNGZcdThlNTBcdThlNTNcdThlNTRcdThlNTVcdThlNTZcdThlNTdcdThlNThcdThlNWFcdThlNWJcdThlNWNcdThlNWRcdThlNWVcdThlNWZcdThlNjBcdThlNjFcdThlNjJcdThlNjNcdThlNjRcdThlNjVcdThlNjdcdThlNjhc'@; put 'dThlNmFcdThlNmJcdThlNmVcdThlNzFcdTkwYjhcdTkwYjBcdTkwY2ZcdTkwYzVcdTkwYmVcdTkwZDBcdTkwYzRcdTkwYzdcdTkwZDNcdTkwZTZcdTkwZTJcdTkwZGNcdTkwZDdcdTkwZGJcdTkwZWJcdTkwZWZcdTkwZmVcdTkxMDRcdTkxMjJcdTkxMWVcdTkxMjNcdTkxMzFcdTkxMmZcdTkx'@; put 'MzlcdTkxNDNcdTkxNDZcdTUyMGRcdTU5NDJcdTUyYTJcdTUyYWNcdTUyYWRcdTUyYmVcdTU0ZmZcdTUyZDBcdTUyZDZcdTUyZjBcdTUzZGZcdTcxZWVcdTc3Y2RcdTVlZjRcdTUxZjVcdTUxZmNcdTliMmZcdTUzYjZcdTVmMDFcdTc1NWFcdTVkZWZcdTU3NGNcdTU3YTlcdTU3YTFcdTU4N2Vc'@; put 'dTU4YmNcdTU4YzVcdTU4ZDFcdTU3MjlcdTU3MmNcdTU3MmFcdTU3MzNcdTU3MzlcdTU3MmVcdTU3MmZcdTU3NWNcdTU3M2JcdTU3NDJcdTU3NjlcdTU3ODVcdTU3NmJcdTU3ODZcdTU3N2NcdTU3N2JcdTU3NjhcdTU3NmRcdTU3NzZcdTU3NzNcdTU3YWRcdTU3YTRcdTU3OGNcdTU3YjJcdTU3'@; put 'Y2ZcdTU3YTdcdTU3YjRcdTU3OTNcdTU3YTBcdTU3ZDVcdTU3ZDhcdTU3ZGFcdTU3ZDlcdTU3ZDJcdTU3YjhcdTU3ZjRcdTU3ZWZcdTU3ZjhcdTU3ZTRcdTU3ZGRcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMTldLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIxOV1bcF0uY2hhckNvZGVBdCgw'@; put 'KSYmKERbX1syMTldW3BdXT01NjA2NCtwLGJbNTYwNjQrcF09X1syMTldW3BdKTtmb3IoX1syMjBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThlNzNcdThlNzVcdThlNzdcdThlNzhcdThlNzlcdThlN2FcdThlN2JcdThlN2RcdThl'@; put 'N2VcdThlODBcdThlODJcdThlODNcdThlODRcdThlODZcdThlODhcdThlODlcdThlOGFcdThlOGJcdThlOGNcdThlOGRcdThlOGVcdThlOTFcdThlOTJcdThlOTNcdThlOTVcdThlOTZcdThlOTdcdThlOThcdThlOTlcdThlOWFcdThlOWJcdThlOWRcdThlOWZcdThlYTBcdThlYTFcdThlYTJc'@; put 'dThlYTNcdThlYTRcdThlYTVcdThlYTZcdThlYTdcdThlYThcdThlYTlcdThlYWFcdThlYWRcdThlYWVcdThlYjBcdThlYjFcdThlYjNcdThlYjRcdThlYjVcdThlYjZcdThlYjdcdThlYjhcdThlYjlcdThlYmJcdThlYmNcdThlYmRcdThlYmVcdThlYmZcdThlYzBcdThlYzFcdThlYzJcdWZm'@; put 'ZmRcdThlYzNcdThlYzRcdThlYzVcdThlYzZcdThlYzdcdThlYzhcdThlYzlcdThlY2FcdThlY2JcdThlY2NcdThlY2RcdThlY2ZcdThlZDBcdThlZDFcdThlZDJcdThlZDNcdThlZDRcdThlZDVcdThlZDZcdThlZDdcdThlZDhcdThlZDlcdThlZGFcdThlZGJcdThlZGNcdThlZGRcdThlZGVc'@; put 'dThlZGZcdThlZTBcdThlZTFcdThlZTJcdThlZTNcdThlZTRcdTU4MGJcdTU4MGRcdTU3ZmRcdTU3ZWRcdTU4MDBcdTU4MWVcdTU4MTlcdTU4NDRcdTU4MjBcdTU4NjVcdTU4NmNcdTU4ODFcdTU4ODlcdTU4OWFcdTU4ODBcdTk5YThcdTlmMTlcdTYxZmZcdTgyNzlcdTgyN2RcdTgyN2ZcdTgy'@; put 'OGZcdTgyOGFcdTgyYThcdTgyODRcdTgyOGVcdTgyOTFcdTgyOTdcdTgyOTlcdTgyYWJcdTgyYjhcdTgyYmVcdTgyYjBcdTgyYzhcdTgyY2FcdTgyZTNcdTgyOThcdTgyYjdcdTgyYWVcdTgyY2JcdTgyY2NcdTgyYzFcdTgyYTlcdTgyYjRcdTgyYTFcdTgyYWFcdTgyOWZcdTgyYzRcdTgyY2Vc'@; put 'dTgyYTRcdTgyZTFcdTgzMDlcdTgyZjdcdTgyZTRcdTgzMGZcdTgzMDdcdTgyZGNcdTgyZjRcdTgyZDJcdTgyZDhcdTgzMGNcdTgyZmJcdTgyZDNcdTgzMTFcdTgzMWFcdTgzMDZcdTgzMTRcdTgzMTVcdTgyZTBcdTgyZDVcdTgzMWNcdTgzNTFcdTgzNWJcdTgzNWNcdTgzMDhcdTgzOTJcdTgz'@; put 'M2NcdTgzMzRcdTgzMzFcdTgzOWJcdTgzNWVcdTgzMmZcdTgzNGZcdTgzNDdcdTgzNDNcdTgzNWZcdTgzNDBcdTgzMTdcdTgzNjBcdTgzMmRcdTgzM2FcdTgzMzNcdTgzNjZcdTgzNjVcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMjBdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIyMF1bcF0u'@; put 'Y2hhckNvZGVBdCgwKSYmKERbX1syMjBdW3BdXT01NjMyMCtwLGJbNTYzMjArcF09X1syMjBdW3BdKTtmb3IoX1syMjFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThlZTVcdThlZTZcdThlZTdcdThlZThcdThlZTlcdThlZWFcdThl'@; put 'ZWJcdThlZWNcdThlZWRcdThlZWVcdThlZWZcdThlZjBcdThlZjFcdThlZjJcdThlZjNcdThlZjRcdThlZjVcdThlZjZcdThlZjdcdThlZjhcdThlZjlcdThlZmFcdThlZmJcdThlZmNcdThlZmRcdThlZmVcdThlZmZcdThmMDBcdThmMDFcdThmMDJcdThmMDNcdThmMDRcdThmMDVcdThmMDZc'@; put 'dThmMDdcdThmMDhcdThmMDlcdThmMGFcdThmMGJcdThmMGNcdThmMGRcdThmMGVcdThmMGZcdThmMTBcdThmMTFcdThmMTJcdThmMTNcdThmMTRcdThmMTVcdThmMTZcdThmMTdcdThmMThcdThmMTlcdThmMWFcdThmMWJcdThmMWNcdThmMWRcdThmMWVcdThmMWZcdThmMjBcdThmMjFcdThm'@; put 'MjJcdThmMjNcdWZmZmRcdThmMjRcdThmMjVcdThmMjZcdThmMjdcdThmMjhcdThmMjlcdThmMmFcdThmMmJcdThmMmNcdThmMmRcdThmMmVcdThmMmZcdThmMzBcdThmMzFcdThmMzJcdThmMzNcdThmMzRcdThmMzVcdThmMzZcdThmMzdcdThmMzhcdThmMzlcdThmM2FcdThmM2JcdThmM2Nc'@; put 'dThmM2RcdThmM2VcdThmM2ZcdThmNDBcdThmNDFcdThmNDJcdThmNDNcdThmNDRcdTgzNjhcdTgzMWJcdTgzNjlcdTgzNmNcdTgzNmFcdTgzNmRcdTgzNmVcdTgzYjBcdTgzNzhcdTgzYjNcdTgzYjRcdTgzYTBcdTgzYWFcdTgzOTNcdTgzOWNcdTgzODVcdTgzN2NcdTgzYjZcdTgzYTlcdTgz'@; put 'N2RcdTgzYjhcdTgzN2JcdTgzOThcdTgzOWVcdTgzYThcdTgzYmFcdTgzYmNcdTgzYzFcdTg0MDFcdTgzZTVcdTgzZDhcdTU4MDdcdTg0MThcdTg0MGJcdTgzZGRcdTgzZmRcdTgzZDZcdTg0MWNcdTg0MzhcdTg0MTFcdTg0MDZcdTgzZDRcdTgzZGZcdTg0MGZcdTg0MDNcdTgzZjhcdTgzZjlc'@; put 'dTgzZWFcdTgzYzVcdTgzYzBcdTg0MjZcdTgzZjBcdTgzZTFcdTg0NWNcdTg0NTFcdTg0NWFcdTg0NTlcdTg0NzNcdTg0ODdcdTg0ODhcdTg0N2FcdTg0ODlcdTg0NzhcdTg0M2NcdTg0NDZcdTg0NjlcdTg0NzZcdTg0OGNcdTg0OGVcdTg0MzFcdTg0NmRcdTg0YzFcdTg0Y2RcdTg0ZDBcdTg0'@; put 'ZTZcdTg0YmRcdTg0ZDNcdTg0Y2FcdTg0YmZcdTg0YmFcdTg0ZTBcdTg0YTFcdTg0YjlcdTg0YjRcdTg0OTdcdTg0ZTVcdTg0ZTNcdTg1MGNcdTc1MGRcdTg1MzhcdTg0ZjBcdTg1MzlcdTg1MWZcdTg1M2FcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMjFdLmxlbmd0aDsrK3ApNjU1MzMh'@; put 'PT1fWzIyMV1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMjFdW3BdXT01NjU3NitwLGJbNTY1NzYrcF09X1syMjFdW3BdKTtmb3IoX1syMjJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThmNDVcdThmNDZcdThmNDdcdThmNDhcdThm'@; put 'NDlcdThmNGFcdThmNGJcdThmNGNcdThmNGRcdThmNGVcdThmNGZcdThmNTBcdThmNTFcdThmNTJcdThmNTNcdThmNTRcdThmNTVcdThmNTZcdThmNTdcdThmNThcdThmNTlcdThmNWFcdThmNWJcdThmNWNcdThmNWRcdThmNWVcdThmNWZcdThmNjBcdThmNjFcdThmNjJcdThmNjNcdThmNjRc'@; put 'dThmNjVcdThmNmFcdThmODBcdThmOGNcdThmOTJcdThmOWRcdThmYTBcdThmYTFcdThmYTJcdThmYTRcdThmYTVcdThmYTZcdThmYTdcdThmYWFcdThmYWNcdThmYWRcdThmYWVcdThmYWZcdThmYjJcdThmYjNcdThmYjRcdThmYjVcdThmYjdcdThmYjhcdThmYmFcdThmYmJcdThmYmNcdThm'@; put 'YmZcdThmYzBcdThmYzNcdThmYzZcdWZmZmRcdThmYzlcdThmY2FcdThmY2JcdThmY2NcdThmY2RcdThmY2ZcdThmZDJcdThmZDZcdThmZDdcdThmZGFcdThmZTBcdThmZTFcdThmZTNcdThmZTdcdThmZWNcdThmZWZcdThmZjFcdThmZjJcdThmZjRcdThmZjVcdThmZjZcdThmZmFcdThmZmJc'@; put 'dThmZmNcdThmZmVcdThmZmZcdTkwMDdcdTkwMDhcdTkwMGNcdTkwMGVcdTkwMTNcdTkwMTVcdTkwMThcdTg1NTZcdTg1M2JcdTg0ZmZcdTg0ZmNcdTg1NTlcdTg1NDhcdTg1NjhcdTg1NjRcdTg1NWVcdTg1N2FcdTc3YTJcdTg1NDNcdTg1NzJcdTg1N2JcdTg1YTRcdTg1YThcdTg1ODdcdTg1'@; put 'OGZcdTg1NzlcdTg1YWVcdTg1OWNcdTg1ODVcdTg1YjlcdTg1YjdcdTg1YjBcdTg1ZDNcdTg1YzFcdTg1ZGNcdTg1ZmZcdTg2MjdcdTg2MDVcdTg2MjlcdTg2MTZcdTg2M2NcdTVlZmVcdTVmMDhcdTU5M2NcdTU5NDFcdTgwMzdcdTU5NTVcdTU5NWFcdTU5NThcdTUzMGZcdTVjMjJcdTVjMjVc'@; put 'dTVjMmNcdTVjMzRcdTYyNGNcdTYyNmFcdTYyOWZcdTYyYmJcdTYyY2FcdTYyZGFcdTYyZDdcdTYyZWVcdTYzMjJcdTYyZjZcdTYzMzlcdTYzNGJcdTYzNDNcdTYzYWRcdTYzZjZcdTYzNzFcdTYzN2FcdTYzOGVcdTYzYjRcdTYzNmRcdTYzYWNcdTYzOGFcdTYzNjlcdTYzYWVcdTYzYmNcdTYz'@; put 'ZjJcdTYzZjhcdTYzZTBcdTYzZmZcdTYzYzRcdTYzZGVcdTYzY2VcdTY0NTJcdTYzYzZcdTYzYmVcdTY0NDVcdTY0NDFcdTY0MGJcdTY0MWJcdTY0MjBcdTY0MGNcdTY0MjZcdTY0MjFcdTY0NWVcdTY0ODRcdTY0NmRcdTY0OTZcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMjJdLmxlbmd0'@; put 'aDsrK3ApNjU1MzMhPT1fWzIyMl1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMjJdW3BdXT01NjgzMitwLGJbNTY4MzIrcF09X1syMjJdW3BdKTtmb3IoX1syMjNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkwMTlcdTkwMWNcdTkw'@; put 'MjNcdTkwMjRcdTkwMjVcdTkwMjdcdTkwMjhcdTkwMjlcdTkwMmFcdTkwMmJcdTkwMmNcdTkwMzBcdTkwMzFcdTkwMzJcdTkwMzNcdTkwMzRcdTkwMzdcdTkwMzlcdTkwM2FcdTkwM2RcdTkwM2ZcdTkwNDBcdTkwNDNcdTkwNDVcdTkwNDZcdTkwNDhcdTkwNDlcdTkwNGFcdTkwNGJcdTkwNGNc'@; put 'dTkwNGVcdTkwNTRcdTkwNTVcdTkwNTZcdTkwNTlcdTkwNWFcdTkwNWNcdTkwNWRcdTkwNWVcdTkwNWZcdTkwNjBcdTkwNjFcdTkwNjRcdTkwNjZcdTkwNjdcdTkwNjlcdTkwNmFcdTkwNmJcdTkwNmNcdTkwNmZcdTkwNzBcdTkwNzFcdTkwNzJcdTkwNzNcdTkwNzZcdTkwNzdcdTkwNzhcdTkw'@; put 'NzlcdTkwN2FcdTkwN2JcdTkwN2NcdTkwN2VcdTkwODFcdWZmZmRcdTkwODRcdTkwODVcdTkwODZcdTkwODdcdTkwODlcdTkwOGFcdTkwOGNcdTkwOGRcdTkwOGVcdTkwOGZcdTkwOTBcdTkwOTJcdTkwOTRcdTkwOTZcdTkwOThcdTkwOWFcdTkwOWNcdTkwOWVcdTkwOWZcdTkwYTBcdTkwYTRc'@; put 'dTkwYTVcdTkwYTdcdTkwYThcdTkwYTlcdTkwYWJcdTkwYWRcdTkwYjJcdTkwYjdcdTkwYmNcdTkwYmRcdTkwYmZcdTkwYzBcdTY0N2FcdTY0YjdcdTY0YjhcdTY0OTlcdTY0YmFcdTY0YzBcdTY0ZDBcdTY0ZDdcdTY0ZTRcdTY0ZTJcdTY1MDlcdTY1MjVcdTY1MmVcdTVmMGJcdTVmZDJcdTc1'@; put 'MTlcdTVmMTFcdTUzNWZcdTUzZjFcdTUzZmRcdTUzZTlcdTUzZThcdTUzZmJcdTU0MTJcdTU0MTZcdTU0MDZcdTU0NGJcdTU0NTJcdTU0NTNcdTU0NTRcdTU0NTZcdTU0NDNcdTU0MjFcdTU0NTdcdTU0NTlcdTU0MjNcdTU0MzJcdTU0ODJcdTU0OTRcdTU0NzdcdTU0NzFcdTU0NjRcdTU0OWFc'@; put 'dTU0OWJcdTU0ODRcdTU0NzZcdTU0NjZcdTU0OWRcdTU0ZDBcdTU0YWRcdTU0YzJcdTU0YjRcdTU0ZDJcdTU0YTdcdTU0YTZcdTU0ZDNcdTU0ZDRcdTU0NzJcdTU0YTNcdTU0ZDVcdTU0YmJcdTU0YmZcdTU0Y2NcdTU0ZDlcdTU0ZGFcdTU0ZGNcdTU0YTlcdTU0YWFcdTU0YTRcdTU0ZGRcdTU0'@; put 'Y2ZcdTU0ZGVcdTU1MWJcdTU0ZTdcdTU1MjBcdTU0ZmRcdTU1MTRcdTU0ZjNcdTU1MjJcdTU1MjNcdTU1MGZcdTU1MTFcdTU1MjdcdTU1MmFcdTU1NjdcdTU1OGZcdTU1YjVcdTU1NDlcdTU1NmRcdTU1NDFcdTU1NTVcdTU1M2ZcdTU1NTBcdTU1M2NcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9'@; put 'X1syMjNdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIyM11bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMjNdW3BdXT01NzA4OCtwLGJbNTcwODgrcF09X1syMjNdW3BdKTtmb3IoX1syMjRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkw'@; put 'YzJcdTkwYzNcdTkwYzZcdTkwYzhcdTkwYzlcdTkwY2JcdTkwY2NcdTkwY2RcdTkwZDJcdTkwZDRcdTkwZDVcdTkwZDZcdTkwZDhcdTkwZDlcdTkwZGFcdTkwZGVcdTkwZGZcdTkwZTBcdTkwZTNcdTkwZTRcdTkwZTVcdTkwZTlcdTkwZWFcdTkwZWNcdTkwZWVcdTkwZjBcdTkwZjFcdTkwZjJc'@; put 'dTkwZjNcdTkwZjVcdTkwZjZcdTkwZjdcdTkwZjlcdTkwZmFcdTkwZmJcdTkwZmNcdTkwZmZcdTkxMDBcdTkxMDFcdTkxMDNcdTkxMDVcdTkxMDZcdTkxMDdcdTkxMDhcdTkxMDlcdTkxMGFcdTkxMGJcdTkxMGNcdTkxMGRcdTkxMGVcdTkxMGZcdTkxMTBcdTkxMTFcdTkxMTJcdTkxMTNcdTkx'@; put 'MTRcdTkxMTVcdTkxMTZcdTkxMTdcdTkxMThcdTkxMWFcdTkxMWJcdTkxMWNcdWZmZmRcdTkxMWRcdTkxMWZcdTkxMjBcdTkxMjFcdTkxMjRcdTkxMjVcdTkxMjZcdTkxMjdcdTkxMjhcdTkxMjlcdTkxMmFcdTkxMmJcdTkxMmNcdTkxMmRcdTkxMmVcdTkxMzBcdTkxMzJcdTkxMzNcdTkxMzRc'@; put 'dTkxMzVcdTkxMzZcdTkxMzdcdTkxMzhcdTkxM2FcdTkxM2JcdTkxM2NcdTkxM2RcdTkxM2VcdTkxM2ZcdTkxNDBcdTkxNDFcdTkxNDJcdTkxNDRcdTU1MzdcdTU1NTZcdTU1NzVcdTU1NzZcdTU1NzdcdTU1MzNcdTU1MzBcdTU1NWNcdTU1OGJcdTU1ZDJcdTU1ODNcdTU1YjFcdTU1YjlcdTU1'@; put 'ODhcdTU1ODFcdTU1OWZcdTU1N2VcdTU1ZDZcdTU1OTFcdTU1N2JcdTU1ZGZcdTU1YmRcdTU1YmVcdTU1OTRcdTU1OTlcdTU1ZWFcdTU1ZjdcdTU1YzlcdTU2MWZcdTU1ZDFcdTU1ZWJcdTU1ZWNcdTU1ZDRcdTU1ZTZcdTU1ZGRcdTU1YzRcdTU1ZWZcdTU1ZTVcdTU1ZjJcdTU1ZjNcdTU1Y2Nc'@; put 'dTU1Y2RcdTU1ZThcdTU1ZjVcdTU1ZTRcdThmOTRcdTU2MWVcdTU2MDhcdTU2MGNcdTU2MDFcdTU2MjRcdTU2MjNcdTU1ZmVcdTU2MDBcdTU2MjdcdTU2MmRcdTU2NThcdTU2MzlcdTU2NTdcdTU2MmNcdTU2NGRcdTU2NjJcdTU2NTlcdTU2NWNcdTU2NGNcdTU2NTRcdTU2ODZcdTU2NjRcdTU2'@; put 'NzFcdTU2NmJcdTU2N2JcdTU2N2NcdTU2ODVcdTU2OTNcdTU2YWZcdTU2ZDRcdTU2ZDdcdTU2ZGRcdTU2ZTFcdTU2ZjVcdTU2ZWJcdTU2ZjlcdTU2ZmZcdTU3MDRcdTU3MGFcdTU3MDlcdTU3MWNcdTVlMGZcdTVlMTlcdTVlMTRcdTVlMTFcdTVlMzFcdTVlM2JcdTVlM2NcdWZmZmQiLnNwbGl0'@; put 'KCIiKSxwPTA7cCE9X1syMjRdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIyNF1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMjRdW3BdXT01NzM0NCtwLGJbNTczNDQrcF09X1syMjRdW3BdKTtmb3IoX1syMjVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdTkxNDVcdTkxNDdcdTkxNDhcdTkxNTFcdTkxNTNcdTkxNTRcdTkxNTVcdTkxNTZcdTkxNThcdTkxNTlcdTkxNWJcdTkxNWNcdTkxNWZcdTkxNjBcdTkxNjZcdTkxNjdcdTkxNjhcdTkxNmJcdTkxNmRcdTkxNzNcdTkxN2FcdTkxN2JcdTkxN2NcdTkxODBcdTkxODFcdTkxODJc'@; put 'dTkxODNcdTkxODRcdTkxODZcdTkxODhcdTkxOGFcdTkxOGVcdTkxOGZcdTkxOTNcdTkxOTRcdTkxOTVcdTkxOTZcdTkxOTdcdTkxOThcdTkxOTlcdTkxOWNcdTkxOWRcdTkxOWVcdTkxOWZcdTkxYTBcdTkxYTFcdTkxYTRcdTkxYTVcdTkxYTZcdTkxYTdcdTkxYThcdTkxYTlcdTkxYWJcdTkx'@; put 'YWNcdTkxYjBcdTkxYjFcdTkxYjJcdTkxYjNcdTkxYjZcdTkxYjdcdTkxYjhcdTkxYjlcdTkxYmJcdWZmZmRcdTkxYmNcdTkxYmRcdTkxYmVcdTkxYmZcdTkxYzBcdTkxYzFcdTkxYzJcdTkxYzNcdTkxYzRcdTkxYzVcdTkxYzZcdTkxYzhcdTkxY2JcdTkxZDBcdTkxZDJcdTkxZDNcdTkxZDRc'@; put 'dTkxZDVcdTkxZDZcdTkxZDdcdTkxZDhcdTkxZDlcdTkxZGFcdTkxZGJcdTkxZGRcdTkxZGVcdTkxZGZcdTkxZTBcdTkxZTFcdTkxZTJcdTkxZTNcdTkxZTRcdTkxZTVcdTVlMzdcdTVlNDRcdTVlNTRcdTVlNWJcdTVlNWVcdTVlNjFcdTVjOGNcdTVjN2FcdTVjOGRcdTVjOTBcdTVjOTZcdTVj'@; put 'ODhcdTVjOThcdTVjOTlcdTVjOTFcdTVjOWFcdTVjOWNcdTVjYjVcdTVjYTJcdTVjYmRcdTVjYWNcdTVjYWJcdTVjYjFcdTVjYTNcdTVjYzFcdTVjYjdcdTVjYzRcdTVjZDJcdTVjZTRcdTVjY2JcdTVjZTVcdTVkMDJcdTVkMDNcdTVkMjdcdTVkMjZcdTVkMmVcdTVkMjRcdTVkMWVcdTVkMDZc'@; put 'dTVkMWJcdTVkNThcdTVkM2VcdTVkMzRcdTVkM2RcdTVkNmNcdTVkNWJcdTVkNmZcdTVkNWRcdTVkNmJcdTVkNGJcdTVkNGFcdTVkNjlcdTVkNzRcdTVkODJcdTVkOTlcdTVkOWRcdThjNzNcdTVkYjdcdTVkYzVcdTVmNzNcdTVmNzdcdTVmODJcdTVmODdcdTVmODlcdTVmOGNcdTVmOTVcdTVm'@; put 'OTlcdTVmOWNcdTVmYThcdTVmYWRcdTVmYjVcdTVmYmNcdTg4NjJcdTVmNjFcdTcyYWRcdTcyYjBcdTcyYjRcdTcyYjdcdTcyYjhcdTcyYzNcdTcyYzFcdTcyY2VcdTcyY2RcdTcyZDJcdTcyZThcdTcyZWZcdTcyZTlcdTcyZjJcdTcyZjRcdTcyZjdcdTczMDFcdTcyZjNcdTczMDNcdTcyZmFc'@; put 'dWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMjVdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIyNV1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMjVdW3BdXT01NzYwMCtwLGJbNTc2MDArcF09X1syMjVdW3BdKTtmb3IoX1syMjZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkxZTZcdTkxZTdcdTkxZThcdTkxZTlcdTkxZWFcdTkxZWJcdTkxZWNcdTkxZWRcdTkxZWVcdTkxZWZcdTkxZjBcdTkxZjFcdTkxZjJcdTkxZjNcdTkxZjRcdTkxZjVcdTkxZjZcdTkxZjdcdTkxZjhcdTkxZjlcdTkxZmFcdTkxZmJcdTkxZmNcdTkxZmRc'@; put 'dTkxZmVcdTkxZmZcdTkyMDBcdTkyMDFcdTkyMDJcdTkyMDNcdTkyMDRcdTkyMDVcdTkyMDZcdTkyMDdcdTkyMDhcdTkyMDlcdTkyMGFcdTkyMGJcdTkyMGNcdTkyMGRcdTkyMGVcdTkyMGZcdTkyMTBcdTkyMTFcdTkyMTJcdTkyMTNcdTkyMTRcdTkyMTVcdTkyMTZcdTkyMTdcdTkyMThcdTky'@; put 'MTlcdTkyMWFcdTkyMWJcdTkyMWNcdTkyMWRcdTkyMWVcdTkyMWZcdTkyMjBcdTkyMjFcdTkyMjJcdTkyMjNcdTkyMjRcdWZmZmRcdTkyMjVcdTkyMjZcdTkyMjdcdTkyMjhcdTkyMjlcdTkyMmFcdTkyMmJcdTkyMmNcdTkyMmRcdTkyMmVcdTkyMmZcdTkyMzBcdTkyMzFcdTkyMzJcdTkyMzNc'@; put 'dTkyMzRcdTkyMzVcdTkyMzZcdTkyMzdcdTkyMzhcdTkyMzlcdTkyM2FcdTkyM2JcdTkyM2NcdTkyM2RcdTkyM2VcdTkyM2ZcdTkyNDBcdTkyNDFcdTkyNDJcdTkyNDNcdTkyNDRcdTkyNDVcdTcyZmJcdTczMTdcdTczMTNcdTczMjFcdTczMGFcdTczMWVcdTczMWRcdTczMTVcdTczMjJcdTcz'@; put 'MzlcdTczMjVcdTczMmNcdTczMzhcdTczMzFcdTczNTBcdTczNGRcdTczNTdcdTczNjBcdTczNmNcdTczNmZcdTczN2VcdTgyMWJcdTU5MjVcdTk4ZTdcdTU5MjRcdTU5MDJcdTk5NjNcdTk5NjdcdTk5NjhcdTk5NjlcdTk5NmFcdTk5NmJcdTk5NmNcdTk5NzRcdTk5NzdcdTk5N2RcdTk5ODBc'@; put 'dTk5ODRcdTk5ODdcdTk5OGFcdTk5OGRcdTk5OTBcdTk5OTFcdTk5OTNcdTk5OTRcdTk5OTVcdTVlODBcdTVlOTFcdTVlOGJcdTVlOTZcdTVlYTVcdTVlYTBcdTVlYjlcdTVlYjVcdTVlYmVcdTVlYjNcdThkNTNcdTVlZDJcdTVlZDFcdTVlZGJcdTVlZThcdTVlZWFcdTgxYmFcdTVmYzRcdTVm'@; put 'YzlcdTVmZDZcdTVmY2ZcdTYwMDNcdTVmZWVcdTYwMDRcdTVmZTFcdTVmZTRcdTVmZmVcdTYwMDVcdTYwMDZcdTVmZWFcdTVmZWRcdTVmZjhcdTYwMTlcdTYwMzVcdTYwMjZcdTYwMWJcdTYwMGZcdTYwMGRcdTYwMjlcdTYwMmJcdTYwMGFcdTYwM2ZcdTYwMjFcdTYwNzhcdTYwNzlcdTYwN2Jc'@; put 'dTYwN2FcdTYwNDJcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMjZdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIyNl1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMjZdW3BdXT01Nzg1NitwLGJbNTc4NTYrcF09X1syMjZdW3BdKTtmb3IoX1syMjddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkyNDZcdTkyNDdcdTkyNDhcdTkyNDlcdTkyNGFcdTkyNGJcdTkyNGNcdTkyNGRcdTkyNGVcdTkyNGZcdTkyNTBcdTkyNTFcdTkyNTJcdTkyNTNcdTkyNTRcdTkyNTVcdTkyNTZcdTkyNTdcdTkyNThcdTkyNTlcdTkyNWFcdTkyNWJc'@; put 'dTkyNWNcdTkyNWRcdTkyNWVcdTkyNWZcdTkyNjBcdTkyNjFcdTkyNjJcdTkyNjNcdTkyNjRcdTkyNjVcdTkyNjZcdTkyNjdcdTkyNjhcdTkyNjlcdTkyNmFcdTkyNmJcdTkyNmNcdTkyNmRcdTkyNmVcdTkyNmZcdTkyNzBcdTkyNzFcdTkyNzJcdTkyNzNcdTkyNzVcdTkyNzZcdTkyNzdcdTky'@; put 'NzhcdTkyNzlcdTkyN2FcdTkyN2JcdTkyN2NcdTkyN2RcdTkyN2VcdTkyN2ZcdTkyODBcdTkyODFcdTkyODJcdTkyODNcdTkyODRcdTkyODVcdWZmZmRcdTkyODZcdTkyODdcdTkyODhcdTkyODlcdTkyOGFcdTkyOGJcdTkyOGNcdTkyOGRcdTkyOGZcdTkyOTBcdTkyOTFcdTkyOTJcdTkyOTNc'@; put 'dTkyOTRcdTkyOTVcdTkyOTZcdTkyOTdcdTkyOThcdTkyOTlcdTkyOWFcdTkyOWJcdTkyOWNcdTkyOWRcdTkyOWVcdTkyOWZcdTkyYTBcdTkyYTFcdTkyYTJcdTkyYTNcdTkyYTRcdTkyYTVcdTkyYTZcdTkyYTdcdTYwNmFcdTYwN2RcdTYwOTZcdTYwOWFcdTYwYWRcdTYwOWRcdTYwODNcdTYw'@; put 'OTJcdTYwOGNcdTYwOWJcdTYwZWNcdTYwYmJcdTYwYjFcdTYwZGRcdTYwZDhcdTYwYzZcdTYwZGFcdTYwYjRcdTYxMjBcdTYxMjZcdTYxMTVcdTYxMjNcdTYwZjRcdTYxMDBcdTYxMGVcdTYxMmJcdTYxNGFcdTYxNzVcdTYxYWNcdTYxOTRcdTYxYTdcdTYxYjdcdTYxZDRcdTYxZjVcdTVmZGRc'@; put 'dTk2YjNcdTk1ZTlcdTk1ZWJcdTk1ZjFcdTk1ZjNcdTk1ZjVcdTk1ZjZcdTk1ZmNcdTk1ZmVcdTk2MDNcdTk2MDRcdTk2MDZcdTk2MDhcdTk2MGFcdTk2MGJcdTk2MGNcdTk2MGRcdTk2MGZcdTk2MTJcdTk2MTVcdTk2MTZcdTk2MTdcdTk2MTlcdTk2MWFcdTRlMmNcdTcyM2ZcdTYyMTVcdTZj'@; put 'MzVcdTZjNTRcdTZjNWNcdTZjNGFcdTZjYTNcdTZjODVcdTZjOTBcdTZjOTRcdTZjOGNcdTZjNjhcdTZjNjlcdTZjNzRcdTZjNzZcdTZjODZcdTZjYTlcdTZjZDBcdTZjZDRcdTZjYWRcdTZjZjdcdTZjZjhcdTZjZjFcdTZjZDdcdTZjYjJcdTZjZTBcdTZjZDZcdTZjZmFcdTZjZWJcdTZjZWVc'@; put 'dTZjYjFcdTZjZDNcdTZjZWZcdTZjZmVcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMjddLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIyN11bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMjddW3BdXT01ODExMitwLGJbNTgxMTIrcF09X1syMjddW3BdKTtmb3IoX1syMjhdPSJcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkyYThcdTkyYTlcdTkyYWFcdTkyYWJcdTkyYWNcdTkyYWRcdTkyYWZcdTkyYjBcdTkyYjFcdTkyYjJcdTkyYjNcdTkyYjRcdTkyYjVcdTkyYjZcdTkyYjdcdTkyYjhcdTkyYjlcdTkyYmFcdTkyYmJcdTkyYmNc'@; put 'dTkyYmRcdTkyYmVcdTkyYmZcdTkyYzBcdTkyYzFcdTkyYzJcdTkyYzNcdTkyYzRcdTkyYzVcdTkyYzZcdTkyYzdcdTkyYzlcdTkyY2FcdTkyY2JcdTkyY2NcdTkyY2RcdTkyY2VcdTkyY2ZcdTkyZDBcdTkyZDFcdTkyZDJcdTkyZDNcdTkyZDRcdTkyZDVcdTkyZDZcdTkyZDdcdTkyZDhcdTky'@; put 'ZDlcdTkyZGFcdTkyZGJcdTkyZGNcdTkyZGRcdTkyZGVcdTkyZGZcdTkyZTBcdTkyZTFcdTkyZTJcdTkyZTNcdTkyZTRcdTkyZTVcdTkyZTZcdTkyZTdcdTkyZThcdWZmZmRcdTkyZTlcdTkyZWFcdTkyZWJcdTkyZWNcdTkyZWRcdTkyZWVcdTkyZWZcdTkyZjBcdTkyZjFcdTkyZjJcdTkyZjNc'@; put 'dTkyZjRcdTkyZjVcdTkyZjZcdTkyZjdcdTkyZjhcdTkyZjlcdTkyZmFcdTkyZmJcdTkyZmNcdTkyZmRcdTkyZmVcdTkyZmZcdTkzMDBcdTkzMDFcdTkzMDJcdTkzMDNcdTkzMDRcdTkzMDVcdTkzMDZcdTkzMDdcdTkzMDhcdTkzMDlcdTZkMzlcdTZkMjdcdTZkMGNcdTZkNDNcdTZkNDhcdTZk'@; put 'MDdcdTZkMDRcdTZkMTlcdTZkMGVcdTZkMmJcdTZkNGRcdTZkMmVcdTZkMzVcdTZkMWFcdTZkNGZcdTZkNTJcdTZkNTRcdTZkMzNcdTZkOTFcdTZkNmZcdTZkOWVcdTZkYTBcdTZkNWVcdTZkOTNcdTZkOTRcdTZkNWNcdTZkNjBcdTZkN2NcdTZkNjNcdTZlMWFcdTZkYzdcdTZkYzVcdTZkZGVc'@; put 'dTZlMGVcdTZkYmZcdTZkZTBcdTZlMTFcdTZkZTZcdTZkZGRcdTZkZDlcdTZlMTZcdTZkYWJcdTZlMGNcdTZkYWVcdTZlMmJcdTZlNmVcdTZlNGVcdTZlNmJcdTZlYjJcdTZlNWZcdTZlODZcdTZlNTNcdTZlNTRcdTZlMzJcdTZlMjVcdTZlNDRcdTZlZGZcdTZlYjFcdTZlOThcdTZlZTBcdTZm'@; put 'MmRcdTZlZTJcdTZlYTVcdTZlYTdcdTZlYmRcdTZlYmJcdTZlYjdcdTZlZDdcdTZlYjRcdTZlY2ZcdTZlOGZcdTZlYzJcdTZlOWZcdTZmNjJcdTZmNDZcdTZmNDdcdTZmMjRcdTZmMTVcdTZlZjlcdTZmMmZcdTZmMzZcdTZmNGJcdTZmNzRcdTZmMmFcdTZmMDlcdTZmMjlcdTZmODlcdTZmOGRc'@; put 'dTZmOGNcdTZmNzhcdTZmNzJcdTZmN2NcdTZmN2FcdTZmZDFcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMjhdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIyOF1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMjhdW3BdXT01ODM2OCtwLGJbNTgzNjgrcF09X1syMjhdW3BdKTtmb3IoX1syMjld'@; put 'PSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkzMGFcdTkzMGJcdTkzMGNcdTkzMGRcdTkzMGVcdTkzMGZcdTkzMTBcdTkzMTFcdTkzMTJcdTkzMTNcdTkzMTRcdTkzMTVcdTkzMTZcdTkzMTdcdTkzMThcdTkzMTlcdTkzMWFcdTkzMWJc'@; put 'dTkzMWNcdTkzMWRcdTkzMWVcdTkzMWZcdTkzMjBcdTkzMjFcdTkzMjJcdTkzMjNcdTkzMjRcdTkzMjVcdTkzMjZcdTkzMjdcdTkzMjhcdTkzMjlcdTkzMmFcdTkzMmJcdTkzMmNcdTkzMmRcdTkzMmVcdTkzMmZcdTkzMzBcdTkzMzFcdTkzMzJcdTkzMzNcdTkzMzRcdTkzMzVcdTkzMzZcdTkz'@; put 'MzdcdTkzMzhcdTkzMzlcdTkzM2FcdTkzM2JcdTkzM2NcdTkzM2RcdTkzM2ZcdTkzNDBcdTkzNDFcdTkzNDJcdTkzNDNcdTkzNDRcdTkzNDVcdTkzNDZcdTkzNDdcdTkzNDhcdTkzNDlcdWZmZmRcdTkzNGFcdTkzNGJcdTkzNGNcdTkzNGRcdTkzNGVcdTkzNGZcdTkzNTBcdTkzNTFcdTkzNTJc'@; put 'dTkzNTNcdTkzNTRcdTkzNTVcdTkzNTZcdTkzNTdcdTkzNThcdTkzNTlcdTkzNWFcdTkzNWJcdTkzNWNcdTkzNWRcdTkzNWVcdTkzNWZcdTkzNjBcdTkzNjFcdTkzNjJcdTkzNjNcdTkzNjRcdTkzNjVcdTkzNjZcdTkzNjdcdTkzNjhcdTkzNjlcdTkzNmJcdTZmYzlcdTZmYTdcdTZmYjlcdTZm'@; put 'YjZcdTZmYzJcdTZmZTFcdTZmZWVcdTZmZGVcdTZmZTBcdTZmZWZcdTcwMWFcdTcwMjNcdTcwMWJcdTcwMzlcdTcwMzVcdTcwNGZcdTcwNWVcdTViODBcdTViODRcdTViOTVcdTViOTNcdTViYTVcdTViYjhcdTc1MmZcdTlhOWVcdTY0MzRcdTViZTRcdTViZWVcdTg5MzBcdTViZjBcdThlNDdc'@; put 'dThiMDdcdThmYjZcdThmZDNcdThmZDVcdThmZTVcdThmZWVcdThmZTRcdThmZTlcdThmZTZcdThmZjNcdThmZThcdTkwMDVcdTkwMDRcdTkwMGJcdTkwMjZcdTkwMTFcdTkwMGRcdTkwMTZcdTkwMjFcdTkwMzVcdTkwMzZcdTkwMmRcdTkwMmZcdTkwNDRcdTkwNTFcdTkwNTJcdTkwNTBcdTkw'@; put 'NjhcdTkwNThcdTkwNjJcdTkwNWJcdTY2YjlcdTkwNzRcdTkwN2RcdTkwODJcdTkwODhcdTkwODNcdTkwOGJcdTVmNTBcdTVmNTdcdTVmNTZcdTVmNThcdTVjM2JcdTU0YWJcdTVjNTBcdTVjNTlcdTViNzFcdTVjNjNcdTVjNjZcdTdmYmNcdTVmMmFcdTVmMjlcdTVmMmRcdTgyNzRcdTVmM2Nc'@; put 'dTliM2JcdTVjNmVcdTU5ODFcdTU5ODNcdTU5OGRcdTU5YTlcdTU5YWFcdTU5YTNcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMjldLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIyOV1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMjldW3BdXT01ODYyNCtwLGJbNTg2MjQrcF09X1syMjldW3Bd'@; put 'KTtmb3IoX1syMzBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkzNmNcdTkzNmRcdTkzNmVcdTkzNmZcdTkzNzBcdTkzNzFcdTkzNzJcdTkzNzNcdTkzNzRcdTkzNzVcdTkzNzZcdTkzNzdcdTkzNzhcdTkzNzlcdTkzN2FcdTkzN2Jc'@; put 'dTkzN2NcdTkzN2RcdTkzN2VcdTkzN2ZcdTkzODBcdTkzODFcdTkzODJcdTkzODNcdTkzODRcdTkzODVcdTkzODZcdTkzODdcdTkzODhcdTkzODlcdTkzOGFcdTkzOGJcdTkzOGNcdTkzOGRcdTkzOGVcdTkzOTBcdTkzOTFcdTkzOTJcdTkzOTNcdTkzOTRcdTkzOTVcdTkzOTZcdTkzOTdcdTkz'@; put 'OThcdTkzOTlcdTkzOWFcdTkzOWJcdTkzOWNcdTkzOWRcdTkzOWVcdTkzOWZcdTkzYTBcdTkzYTFcdTkzYTJcdTkzYTNcdTkzYTRcdTkzYTVcdTkzYTZcdTkzYTdcdTkzYThcdTkzYTlcdTkzYWFcdTkzYWJcdWZmZmRcdTkzYWNcdTkzYWRcdTkzYWVcdTkzYWZcdTkzYjBcdTkzYjFcdTkzYjJc'@; put 'dTkzYjNcdTkzYjRcdTkzYjVcdTkzYjZcdTkzYjdcdTkzYjhcdTkzYjlcdTkzYmFcdTkzYmJcdTkzYmNcdTkzYmRcdTkzYmVcdTkzYmZcdTkzYzBcdTkzYzFcdTkzYzJcdTkzYzNcdTkzYzRcdTkzYzVcdTkzYzZcdTkzYzdcdTkzYzhcdTkzYzlcdTkzY2JcdTkzY2NcdTkzY2RcdTU5OTdcdTU5'@; put 'Y2FcdTU5YWJcdTU5OWVcdTU5YTRcdTU5ZDJcdTU5YjJcdTU5YWZcdTU5ZDdcdTU5YmVcdTVhMDVcdTVhMDZcdTU5ZGRcdTVhMDhcdTU5ZTNcdTU5ZDhcdTU5ZjlcdTVhMGNcdTVhMDlcdTVhMzJcdTVhMzRcdTVhMTFcdTVhMjNcdTVhMTNcdTVhNDBcdTVhNjdcdTVhNGFcdTVhNTVcdTVhM2Nc'@; put 'dTVhNjJcdTVhNzVcdTgwZWNcdTVhYWFcdTVhOWJcdTVhNzdcdTVhN2FcdTVhYmVcdTVhZWJcdTVhYjJcdTVhZDJcdTVhZDRcdTVhYjhcdTVhZTBcdTVhZTNcdTVhZjFcdTVhZDZcdTVhZTZcdTVhZDhcdTVhZGNcdTViMDlcdTViMTdcdTViMTZcdTViMzJcdTViMzdcdTViNDBcdTVjMTVcdTVj'@; put 'MWNcdTViNWFcdTViNjVcdTViNzNcdTViNTFcdTViNTNcdTViNjJcdTlhNzVcdTlhNzdcdTlhNzhcdTlhN2FcdTlhN2ZcdTlhN2RcdTlhODBcdTlhODFcdTlhODVcdTlhODhcdTlhOGFcdTlhOTBcdTlhOTJcdTlhOTNcdTlhOTZcdTlhOThcdTlhOWJcdTlhOWNcdTlhOWRcdTlhOWZcdTlhYTBc'@; put 'dTlhYTJcdTlhYTNcdTlhYTVcdTlhYTdcdTdlOWZcdTdlYTFcdTdlYTNcdTdlYTVcdTdlYThcdTdlYTlcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMzBdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIzMF1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMzBdW3BdXT01ODg4MCtwLGJbNTg4ODAr'@; put 'cF09X1syMzBdW3BdKTtmb3IoX1syMzFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkzY2VcdTkzY2ZcdTkzZDBcdTkzZDFcdTkzZDJcdTkzZDNcdTkzZDRcdTkzZDVcdTkzZDdcdTkzZDhcdTkzZDlcdTkzZGFcdTkzZGJcdTkzZGNc'@; put 'dTkzZGRcdTkzZGVcdTkzZGZcdTkzZTBcdTkzZTFcdTkzZTJcdTkzZTNcdTkzZTRcdTkzZTVcdTkzZTZcdTkzZTdcdTkzZThcdTkzZTlcdTkzZWFcdTkzZWJcdTkzZWNcdTkzZWRcdTkzZWVcdTkzZWZcdTkzZjBcdTkzZjFcdTkzZjJcdTkzZjNcdTkzZjRcdTkzZjVcdTkzZjZcdTkzZjdcdTkz'@; put 'ZjhcdTkzZjlcdTkzZmFcdTkzZmJcdTkzZmNcdTkzZmRcdTkzZmVcdTkzZmZcdTk0MDBcdTk0MDFcdTk0MDJcdTk0MDNcdTk0MDRcdTk0MDVcdTk0MDZcdTk0MDdcdTk0MDhcdTk0MDlcdTk0MGFcdTk0MGJcdTk0MGNcdTk0MGRcdWZmZmRcdTk0MGVcdTk0MGZcdTk0MTBcdTk0MTFcdTk0MTJc'@; put 'dTk0MTNcdTk0MTRcdTk0MTVcdTk0MTZcdTk0MTdcdTk0MThcdTk0MTlcdTk0MWFcdTk0MWJcdTk0MWNcdTk0MWRcdTk0MWVcdTk0MWZcdTk0MjBcdTk0MjFcdTk0MjJcdTk0MjNcdTk0MjRcdTk0MjVcdTk0MjZcdTk0MjdcdTk0MjhcdTk0MjlcdTk0MmFcdTk0MmJcdTk0MmNcdTk0MmRcdTk0'@; put 'MmVcdTdlYWRcdTdlYjBcdTdlYmVcdTdlYzBcdTdlYzFcdTdlYzJcdTdlYzlcdTdlY2JcdTdlY2NcdTdlZDBcdTdlZDRcdTdlZDdcdTdlZGJcdTdlZTBcdTdlZTFcdTdlZThcdTdlZWJcdTdlZWVcdTdlZWZcdTdlZjFcdTdlZjJcdTdmMGRcdTdlZjZcdTdlZmFcdTdlZmJcdTdlZmVcdTdmMDFc'@; put 'dTdmMDJcdTdmMDNcdTdmMDdcdTdmMDhcdTdmMGJcdTdmMGNcdTdmMGZcdTdmMTFcdTdmMTJcdTdmMTdcdTdmMTlcdTdmMWNcdTdmMWJcdTdmMWZcdTdmMjFcdTdmMjJcdTdmMjNcdTdmMjRcdTdmMjVcdTdmMjZcdTdmMjdcdTdmMmFcdTdmMmJcdTdmMmNcdTdmMmRcdTdmMmZcdTdmMzBcdTdm'@; put 'MzFcdTdmMzJcdTdmMzNcdTdmMzVcdTVlN2FcdTc1N2ZcdTVkZGJcdTc1M2VcdTkwOTVcdTczOGVcdTczOTFcdTczYWVcdTczYTJcdTczOWZcdTczY2ZcdTczYzJcdTczZDFcdTczYjdcdTczYjNcdTczYzBcdTczYzlcdTczYzhcdTczZTVcdTczZDlcdTk4N2NcdTc0MGFcdTczZTlcdTczZTdc'@; put 'dTczZGVcdTczYmFcdTczZjJcdTc0MGZcdTc0MmFcdTc0NWJcdTc0MjZcdTc0MjVcdTc0MjhcdTc0MzBcdTc0MmVcdTc0MmNcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMzFdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIzMV1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMzFdW3BdXT01OTEz'@; put 'NitwLGJbNTkxMzYrcF09X1syMzFdW3BdKTtmb3IoX1syMzJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk0MmZcdTk0MzBcdTk0MzFcdTk0MzJcdTk0MzNcdTk0MzRcdTk0MzVcdTk0MzZcdTk0MzdcdTk0MzhcdTk0MzlcdTk0M2Fc'@; put 'dTk0M2JcdTk0M2NcdTk0M2RcdTk0M2ZcdTk0NDBcdTk0NDFcdTk0NDJcdTk0NDNcdTk0NDRcdTk0NDVcdTk0NDZcdTk0NDdcdTk0NDhcdTk0NDlcdTk0NGFcdTk0NGJcdTk0NGNcdTk0NGRcdTk0NGVcdTk0NGZcdTk0NTBcdTk0NTFcdTk0NTJcdTk0NTNcdTk0NTRcdTk0NTVcdTk0NTZcdTk0'@; put 'NTdcdTk0NThcdTk0NTlcdTk0NWFcdTk0NWJcdTk0NWNcdTk0NWRcdTk0NWVcdTk0NWZcdTk0NjBcdTk0NjFcdTk0NjJcdTk0NjNcdTk0NjRcdTk0NjVcdTk0NjZcdTk0NjdcdTk0NjhcdTk0NjlcdTk0NmFcdTk0NmNcdTk0NmRcdTk0NmVcdTk0NmZcdWZmZmRcdTk0NzBcdTk0NzFcdTk0NzJc'@; put 'dTk0NzNcdTk0NzRcdTk0NzVcdTk0NzZcdTk0NzdcdTk0NzhcdTk0NzlcdTk0N2FcdTk0N2JcdTk0N2NcdTk0N2RcdTk0N2VcdTk0N2ZcdTk0ODBcdTk0ODFcdTk0ODJcdTk0ODNcdTk0ODRcdTk0OTFcdTk0OTZcdTk0OThcdTk0YzdcdTk0Y2ZcdTk0ZDNcdTk0ZDRcdTk0ZGFcdTk0ZTZcdTk0'@; put 'ZmJcdTk1MWNcdTk1MjBcdTc0MWJcdTc0MWFcdTc0NDFcdTc0NWNcdTc0NTdcdTc0NTVcdTc0NTlcdTc0NzdcdTc0NmRcdTc0N2VcdTc0OWNcdTc0OGVcdTc0ODBcdTc0ODFcdTc0ODdcdTc0OGJcdTc0OWVcdTc0YThcdTc0YTlcdTc0OTBcdTc0YTdcdTc0ZDJcdTc0YmFcdTk3ZWFcdTk3ZWJc'@; put 'dTk3ZWNcdTY3NGNcdTY3NTNcdTY3NWVcdTY3NDhcdTY3NjlcdTY3YTVcdTY3ODdcdTY3NmFcdTY3NzNcdTY3OThcdTY3YTdcdTY3NzVcdTY3YThcdTY3OWVcdTY3YWRcdTY3OGJcdTY3NzdcdTY3N2NcdTY3ZjBcdTY4MDlcdTY3ZDhcdTY4MGFcdTY3ZTlcdTY3YjBcdTY4MGNcdTY3ZDlcdTY3'@; put 'YjVcdTY3ZGFcdTY3YjNcdTY3ZGRcdTY4MDBcdTY3YzNcdTY3YjhcdTY3ZTJcdTY4MGVcdTY3YzFcdTY3ZmRcdTY4MzJcdTY4MzNcdTY4NjBcdTY4NjFcdTY4NGVcdTY4NjJcdTY4NDRcdTY4NjRcdTY4ODNcdTY4MWRcdTY4NTVcdTY4NjZcdTY4NDFcdTY4NjdcdTY4NDBcdTY4M2VcdTY4NGFc'@; put 'dTY4NDlcdTY4MjlcdTY4YjVcdTY4OGZcdTY4NzRcdTY4NzdcdTY4OTNcdTY4NmJcdTY4YzJcdTY5NmVcdTY4ZmNcdTY5MWZcdTY5MjBcdTY4ZjlcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMzJdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIzMl1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sy'@; put 'MzJdW3BdXT01OTM5MitwLGJbNTkzOTIrcF09X1syMzJdW3BdKTtmb3IoX1syMzNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk1MjdcdTk1MzNcdTk1M2RcdTk1NDNcdTk1NDhcdTk1NGJcdTk1NTVcdTk1NWFcdTk1NjBcdTk1NmVc'@; put 'dTk1NzRcdTk1NzVcdTk1NzdcdTk1NzhcdTk1NzlcdTk1N2FcdTk1N2JcdTk1N2NcdTk1N2RcdTk1N2VcdTk1ODBcdTk1ODFcdTk1ODJcdTk1ODNcdTk1ODRcdTk1ODVcdTk1ODZcdTk1ODdcdTk1ODhcdTk1ODlcdTk1OGFcdTk1OGJcdTk1OGNcdTk1OGRcdTk1OGVcdTk1OGZcdTk1OTBcdTk1'@; put 'OTFcdTk1OTJcdTk1OTNcdTk1OTRcdTk1OTVcdTk1OTZcdTk1OTdcdTk1OThcdTk1OTlcdTk1OWFcdTk1OWJcdTk1OWNcdTk1OWRcdTk1OWVcdTk1OWZcdTk1YTBcdTk1YTFcdTk1YTJcdTk1YTNcdTk1YTRcdTk1YTVcdTk1YTZcdTk1YTdcdTk1YThcdTk1YTlcdTk1YWFcdWZmZmRcdTk1YWJc'@; put 'dTk1YWNcdTk1YWRcdTk1YWVcdTk1YWZcdTk1YjBcdTk1YjFcdTk1YjJcdTk1YjNcdTk1YjRcdTk1YjVcdTk1YjZcdTk1YjdcdTk1YjhcdTk1YjlcdTk1YmFcdTk1YmJcdTk1YmNcdTk1YmRcdTk1YmVcdTk1YmZcdTk1YzBcdTk1YzFcdTk1YzJcdTk1YzNcdTk1YzRcdTk1YzVcdTk1YzZcdTk1'@; put 'YzdcdTk1YzhcdTk1YzlcdTk1Y2FcdTk1Y2JcdTY5MjRcdTY4ZjBcdTY5MGJcdTY5MDFcdTY5NTdcdTY4ZTNcdTY5MTBcdTY5NzFcdTY5MzlcdTY5NjBcdTY5NDJcdTY5NWRcdTY5ODRcdTY5NmJcdTY5ODBcdTY5OThcdTY5NzhcdTY5MzRcdTY5Y2NcdTY5ODdcdTY5ODhcdTY5Y2VcdTY5ODlc'@; put 'dTY5NjZcdTY5NjNcdTY5NzlcdTY5OWJcdTY5YTdcdTY5YmJcdTY5YWJcdTY5YWRcdTY5ZDRcdTY5YjFcdTY5YzFcdTY5Y2FcdTY5ZGZcdTY5OTVcdTY5ZTBcdTY5OGRcdTY5ZmZcdTZhMmZcdTY5ZWRcdTZhMTdcdTZhMThcdTZhNjVcdTY5ZjJcdTZhNDRcdTZhM2VcdTZhYTBcdTZhNTBcdTZh'@; put 'NWJcdTZhMzVcdTZhOGVcdTZhNzlcdTZhM2RcdTZhMjhcdTZhNThcdTZhN2NcdTZhOTFcdTZhOTBcdTZhYTlcdTZhOTdcdTZhYWJcdTczMzdcdTczNTJcdTZiODFcdTZiODJcdTZiODdcdTZiODRcdTZiOTJcdTZiOTNcdTZiOGRcdTZiOWFcdTZiOWJcdTZiYTFcdTZiYWFcdThmNmJcdThmNmRc'@; put 'dThmNzFcdThmNzJcdThmNzNcdThmNzVcdThmNzZcdThmNzhcdThmNzdcdThmNzlcdThmN2FcdThmN2NcdThmN2VcdThmODFcdThmODJcdThmODRcdThmODdcdThmOGJcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMzNdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIzM11bcF0uY2hhckNvZGVB'@; put 'dCgwKSYmKERbX1syMzNdW3BdXT01OTY0OCtwLGJbNTk2NDgrcF09X1syMzNdW3BdKTtmb3IoX1syMzRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk1Y2NcdTk1Y2RcdTk1Y2VcdTk1Y2ZcdTk1ZDBcdTk1ZDFcdTk1ZDJcdTk1ZDNc'@; put 'dTk1ZDRcdTk1ZDVcdTk1ZDZcdTk1ZDdcdTk1ZDhcdTk1ZDlcdTk1ZGFcdTk1ZGJcdTk1ZGNcdTk1ZGRcdTk1ZGVcdTk1ZGZcdTk1ZTBcdTk1ZTFcdTk1ZTJcdTk1ZTNcdTk1ZTRcdTk1ZTVcdTk1ZTZcdTk1ZTdcdTk1ZWNcdTk1ZmZcdTk2MDdcdTk2MTNcdTk2MThcdTk2MWJcdTk2MWVcdTk2'@; put 'MjBcdTk2MjNcdTk2MjRcdTk2MjVcdTk2MjZcdTk2MjdcdTk2MjhcdTk2MjlcdTk2MmJcdTk2MmNcdTk2MmRcdTk2MmZcdTk2MzBcdTk2MzdcdTk2MzhcdTk2MzlcdTk2M2FcdTk2M2VcdTk2NDFcdTk2NDNcdTk2NGFcdTk2NGVcdTk2NGZcdTk2NTFcdTk2NTJcdTk2NTNcdTk2NTZcdTk2NTdc'@; put 'dWZmZmRcdTk2NThcdTk2NTlcdTk2NWFcdTk2NWNcdTk2NWRcdTk2NWVcdTk2NjBcdTk2NjNcdTk2NjVcdTk2NjZcdTk2NmJcdTk2NmRcdTk2NmVcdTk2NmZcdTk2NzBcdTk2NzFcdTk2NzNcdTk2NzhcdTk2NzlcdTk2N2FcdTk2N2JcdTk2N2NcdTk2N2RcdTk2N2VcdTk2N2ZcdTk2ODBcdTk2'@; put 'ODFcdTk2ODJcdTk2ODNcdTk2ODRcdTk2ODdcdTk2ODlcdTk2OGFcdThmOGRcdThmOGVcdThmOGZcdThmOThcdThmOWFcdThlY2VcdTYyMGJcdTYyMTdcdTYyMWJcdTYyMWZcdTYyMjJcdTYyMjFcdTYyMjVcdTYyMjRcdTYyMmNcdTgxZTdcdTc0ZWZcdTc0ZjRcdTc0ZmZcdTc1MGZcdTc1MTFc'@; put 'dTc1MTNcdTY1MzRcdTY1ZWVcdTY1ZWZcdTY1ZjBcdTY2MGFcdTY2MTlcdTY3NzJcdTY2MDNcdTY2MTVcdTY2MDBcdTcwODVcdTY2ZjdcdTY2MWRcdTY2MzRcdTY2MzFcdTY2MzZcdTY2MzVcdTgwMDZcdTY2NWZcdTY2NTRcdTY2NDFcdTY2NGZcdTY2NTZcdTY2NjFcdTY2NTdcdTY2NzdcdTY2'@; put 'ODRcdTY2OGNcdTY2YTdcdTY2OWRcdTY2YmVcdTY2ZGJcdTY2ZGNcdTY2ZTZcdTY2ZTlcdThkMzJcdThkMzNcdThkMzZcdThkM2JcdThkM2RcdThkNDBcdThkNDVcdThkNDZcdThkNDhcdThkNDlcdThkNDdcdThkNGRcdThkNTVcdThkNTlcdTg5YzdcdTg5Y2FcdTg5Y2JcdTg5Y2NcdTg5Y2Vc'@; put 'dTg5Y2ZcdTg5ZDBcdTg5ZDFcdTcyNmVcdTcyOWZcdTcyNWRcdTcyNjZcdTcyNmZcdTcyN2VcdTcyN2ZcdTcyODRcdTcyOGJcdTcyOGRcdTcyOGZcdTcyOTJcdTYzMDhcdTYzMzJcdTYzYjBcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMzRdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIzNF1b'@; put 'cF0uY2hhckNvZGVBdCgwKSYmKERbX1syMzRdW3BdXT01OTkwNCtwLGJbNTk5MDQrcF09X1syMzRdW3BdKTtmb3IoX1syMzVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk2OGNcdTk2OGVcdTk2OTFcdTk2OTJcdTk2OTNcdTk2OTVc'@; put 'dTk2OTZcdTk2OWFcdTk2OWJcdTk2OWRcdTk2OWVcdTk2OWZcdTk2YTBcdTk2YTFcdTk2YTJcdTk2YTNcdTk2YTRcdTk2YTVcdTk2YTZcdTk2YThcdTk2YTlcdTk2YWFcdTk2YWJcdTk2YWNcdTk2YWRcdTk2YWVcdTk2YWZcdTk2YjFcdTk2YjJcdTk2YjRcdTk2YjVcdTk2YjdcdTk2YjhcdTk2'@; put 'YmFcdTk2YmJcdTk2YmZcdTk2YzJcdTk2YzNcdTk2YzhcdTk2Y2FcdTk2Y2JcdTk2ZDBcdTk2ZDFcdTk2ZDNcdTk2ZDRcdTk2ZDZcdTk2ZDdcdTk2ZDhcdTk2ZDlcdTk2ZGFcdTk2ZGJcdTk2ZGNcdTk2ZGRcdTk2ZGVcdTk2ZGZcdTk2ZTFcdTk2ZTJcdTk2ZTNcdTk2ZTRcdTk2ZTVcdTk2ZTZc'@; put 'dTk2ZTdcdTk2ZWJcdWZmZmRcdTk2ZWNcdTk2ZWRcdTk2ZWVcdTk2ZjBcdTk2ZjFcdTk2ZjJcdTk2ZjRcdTk2ZjVcdTk2ZjhcdTk2ZmFcdTk2ZmJcdTk2ZmNcdTk2ZmRcdTk2ZmZcdTk3MDJcdTk3MDNcdTk3MDVcdTk3MGFcdTk3MGJcdTk3MGNcdTk3MTBcdTk3MTFcdTk3MTJcdTk3MTRcdTk3'@; put 'MTVcdTk3MTdcdTk3MThcdTk3MTlcdTk3MWFcdTk3MWJcdTk3MWRcdTk3MWZcdTk3MjBcdTY0M2ZcdTY0ZDhcdTgwMDRcdTZiZWFcdTZiZjNcdTZiZmRcdTZiZjVcdTZiZjlcdTZjMDVcdTZjMDdcdTZjMDZcdTZjMGRcdTZjMTVcdTZjMThcdTZjMTlcdTZjMWFcdTZjMjFcdTZjMjlcdTZjMjRc'@; put 'dTZjMmFcdTZjMzJcdTY1MzVcdTY1NTVcdTY1NmJcdTcyNGRcdTcyNTJcdTcyNTZcdTcyMzBcdTg2NjJcdTUyMTZcdTgwOWZcdTgwOWNcdTgwOTNcdTgwYmNcdTY3MGFcdTgwYmRcdTgwYjFcdTgwYWJcdTgwYWRcdTgwYjRcdTgwYjdcdTgwZTdcdTgwZThcdTgwZTlcdTgwZWFcdTgwZGJcdTgw'@; put 'YzJcdTgwYzRcdTgwZDlcdTgwY2RcdTgwZDdcdTY3MTBcdTgwZGRcdTgwZWJcdTgwZjFcdTgwZjRcdTgwZWRcdTgxMGRcdTgxMGVcdTgwZjJcdTgwZmNcdTY3MTVcdTgxMTJcdThjNWFcdTgxMzZcdTgxMWVcdTgxMmNcdTgxMThcdTgxMzJcdTgxNDhcdTgxNGNcdTgxNTNcdTgxNzRcdTgxNTlc'@; put 'dTgxNWFcdTgxNzFcdTgxNjBcdTgxNjlcdTgxN2NcdTgxN2RcdTgxNmRcdTgxNjdcdTU4NGRcdTVhYjVcdTgxODhcdTgxODJcdTgxOTFcdTZlZDVcdTgxYTNcdTgxYWFcdTgxY2NcdTY3MjZcdTgxY2FcdTgxYmJcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMzVdLmxlbmd0aDsrK3ApNjU1'@; put 'MzMhPT1fWzIzNV1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMzVdW3BdXT02MDE2MCtwLGJbNjAxNjArcF09X1syMzVdW3BdKTtmb3IoX1syMzZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk3MjFcdTk3MjJcdTk3MjNcdTk3MjRc'@; put 'dTk3MjVcdTk3MjZcdTk3MjdcdTk3MjhcdTk3MjlcdTk3MmJcdTk3MmNcdTk3MmVcdTk3MmZcdTk3MzFcdTk3MzNcdTk3MzRcdTk3MzVcdTk3MzZcdTk3MzdcdTk3M2FcdTk3M2JcdTk3M2NcdTk3M2RcdTk3M2ZcdTk3NDBcdTk3NDFcdTk3NDJcdTk3NDNcdTk3NDRcdTk3NDVcdTk3NDZcdTk3'@; put 'NDdcdTk3NDhcdTk3NDlcdTk3NGFcdTk3NGJcdTk3NGNcdTk3NGRcdTk3NGVcdTk3NGZcdTk3NTBcdTk3NTFcdTk3NTRcdTk3NTVcdTk3NTdcdTk3NThcdTk3NWFcdTk3NWNcdTk3NWRcdTk3NWZcdTk3NjNcdTk3NjRcdTk3NjZcdTk3NjdcdTk3NjhcdTk3NmFcdTk3NmJcdTk3NmNcdTk3NmRc'@; put 'dTk3NmVcdTk3NmZcdTk3NzBcdTk3NzFcdWZmZmRcdTk3NzJcdTk3NzVcdTk3NzdcdTk3NzhcdTk3NzlcdTk3N2FcdTk3N2JcdTk3N2RcdTk3N2VcdTk3N2ZcdTk3ODBcdTk3ODFcdTk3ODJcdTk3ODNcdTk3ODRcdTk3ODZcdTk3ODdcdTk3ODhcdTk3ODlcdTk3OGFcdTk3OGNcdTk3OGVcdTk3'@; put 'OGZcdTk3OTBcdTk3OTNcdTk3OTVcdTk3OTZcdTk3OTdcdTk3OTlcdTk3OWFcdTk3OWJcdTk3OWNcdTk3OWRcdTgxYzFcdTgxYTZcdTZiMjRcdTZiMzdcdTZiMzlcdTZiNDNcdTZiNDZcdTZiNTlcdTk4ZDFcdTk4ZDJcdTk4ZDNcdTk4ZDVcdTk4ZDlcdTk4ZGFcdTZiYjNcdTVmNDBcdTZiYzJc'@; put 'dTg5ZjNcdTY1OTBcdTlmNTFcdTY1OTNcdTY1YmNcdTY1YzZcdTY1YzRcdTY1YzNcdTY1Y2NcdTY1Y2VcdTY1ZDJcdTY1ZDZcdTcwODBcdTcwOWNcdTcwOTZcdTcwOWRcdTcwYmJcdTcwYzBcdTcwYjdcdTcwYWJcdTcwYjFcdTcwZThcdTcwY2FcdTcxMTBcdTcxMTNcdTcxMTZcdTcxMmZcdTcx'@; put 'MzFcdTcxNzNcdTcxNWNcdTcxNjhcdTcxNDVcdTcxNzJcdTcxNGFcdTcxNzhcdTcxN2FcdTcxOThcdTcxYjNcdTcxYjVcdTcxYThcdTcxYTBcdTcxZTBcdTcxZDRcdTcxZTdcdTcxZjlcdTcyMWRcdTcyMjhcdTcwNmNcdTcxMThcdTcxNjZcdTcxYjlcdTYyM2VcdTYyM2RcdTYyNDNcdTYyNDhc'@; put 'dTYyNDlcdTc5M2JcdTc5NDBcdTc5NDZcdTc5NDlcdTc5NWJcdTc5NWNcdTc5NTNcdTc5NWFcdTc5NjJcdTc5NTdcdTc5NjBcdTc5NmZcdTc5NjdcdTc5N2FcdTc5ODVcdTc5OGFcdTc5OWFcdTc5YTdcdTc5YjNcdTVmZDFcdTVmZDBcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMzZdLmxl'@; put 'bmd0aDsrK3ApNjU1MzMhPT1fWzIzNl1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMzZdW3BdXT02MDQxNitwLGJbNjA0MTYrcF09X1syMzZdW3BdKTtmb3IoX1syMzddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk3OWVcdTk3OWZc'@; put 'dTk3YTFcdTk3YTJcdTk3YTRcdTk3YTVcdTk3YTZcdTk3YTdcdTk3YThcdTk3YTlcdTk3YWFcdTk3YWNcdTk3YWVcdTk3YjBcdTk3YjFcdTk3YjNcdTk3YjVcdTk3YjZcdTk3YjdcdTk3YjhcdTk3YjlcdTk3YmFcdTk3YmJcdTk3YmNcdTk3YmRcdTk3YmVcdTk3YmZcdTk3YzBcdTk3YzFcdTk3'@; put 'YzJcdTk3YzNcdTk3YzRcdTk3YzVcdTk3YzZcdTk3YzdcdTk3YzhcdTk3YzlcdTk3Y2FcdTk3Y2JcdTk3Y2NcdTk3Y2RcdTk3Y2VcdTk3Y2ZcdTk3ZDBcdTk3ZDFcdTk3ZDJcdTk3ZDNcdTk3ZDRcdTk3ZDVcdTk3ZDZcdTk3ZDdcdTk3ZDhcdTk3ZDlcdTk3ZGFcdTk3ZGJcdTk3ZGNcdTk3ZGRc'@; put 'dTk3ZGVcdTk3ZGZcdTk3ZTBcdTk3ZTFcdTk3ZTJcdTk3ZTNcdWZmZmRcdTk3ZTRcdTk3ZTVcdTk3ZThcdTk3ZWVcdTk3ZWZcdTk3ZjBcdTk3ZjFcdTk3ZjJcdTk3ZjRcdTk3ZjdcdTk3ZjhcdTk3ZjlcdTk3ZmFcdTk3ZmJcdTk3ZmNcdTk3ZmRcdTk3ZmVcdTk3ZmZcdTk4MDBcdTk4MDFcdTk4'@; put 'MDJcdTk4MDNcdTk4MDRcdTk4MDVcdTk4MDZcdTk4MDdcdTk4MDhcdTk4MDlcdTk4MGFcdTk4MGJcdTk4MGNcdTk4MGRcdTk4MGVcdTYwM2NcdTYwNWRcdTYwNWFcdTYwNjdcdTYwNDFcdTYwNTlcdTYwNjNcdTYwYWJcdTYxMDZcdTYxMGRcdTYxNWRcdTYxYTlcdTYxOWRcdTYxY2JcdTYxZDFc'@; put 'dTYyMDZcdTgwODBcdTgwN2ZcdTZjOTNcdTZjZjZcdTZkZmNcdTc3ZjZcdTc3ZjhcdTc4MDBcdTc4MDlcdTc4MTdcdTc4MThcdTc4MTFcdTY1YWJcdTc4MmRcdTc4MWNcdTc4MWRcdTc4MzlcdTc4M2FcdTc4M2JcdTc4MWZcdTc4M2NcdTc4MjVcdTc4MmNcdTc4MjNcdTc4MjlcdTc4NGVcdTc4'@; put 'NmRcdTc4NTZcdTc4NTdcdTc4MjZcdTc4NTBcdTc4NDdcdTc4NGNcdTc4NmFcdTc4OWJcdTc4OTNcdTc4OWFcdTc4ODdcdTc4OWNcdTc4YTFcdTc4YTNcdTc4YjJcdTc4YjlcdTc4YTVcdTc4ZDRcdTc4ZDlcdTc4YzlcdTc4ZWNcdTc4ZjJcdTc5MDVcdTc4ZjRcdTc5MTNcdTc5MjRcdTc5MWVc'@; put 'dTc5MzRcdTlmOWJcdTllZjlcdTllZmJcdTllZmNcdTc2ZjFcdTc3MDRcdTc3MGRcdTc2ZjlcdTc3MDdcdTc3MDhcdTc3MWFcdTc3MjJcdTc3MTlcdTc3MmRcdTc3MjZcdTc3MzVcdTc3MzhcdTc3NTBcdTc3NTFcdTc3NDdcdTc3NDNcdTc3NWFcdTc3NjhcdWZmZmQiLnNwbGl0KCIiKSxwPTA7'@; put 'cCE9X1syMzddLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIzN11bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMzddW3BdXT02MDY3MitwLGJbNjA2NzIrcF09X1syMzddW3BdKTtmb3IoX1syMzhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dTk4MGZcdTk4MTBcdTk4MTFcdTk4MTJcdTk4MTNcdTk4MTRcdTk4MTVcdTk4MTZcdTk4MTdcdTk4MThcdTk4MTlcdTk4MWFcdTk4MWJcdTk4MWNcdTk4MWRcdTk4MWVcdTk4MWZcdTk4MjBcdTk4MjFcdTk4MjJcdTk4MjNcdTk4MjRcdTk4MjVcdTk4MjZcdTk4MjdcdTk4MjhcdTk4MjlcdTk4'@; put 'MmFcdTk4MmJcdTk4MmNcdTk4MmRcdTk4MmVcdTk4MmZcdTk4MzBcdTk4MzFcdTk4MzJcdTk4MzNcdTk4MzRcdTk4MzVcdTk4MzZcdTk4MzdcdTk4MzhcdTk4MzlcdTk4M2FcdTk4M2JcdTk4M2NcdTk4M2RcdTk4M2VcdTk4M2ZcdTk4NDBcdTk4NDFcdTk4NDJcdTk4NDNcdTk4NDRcdTk4NDVc'@; put 'dTk4NDZcdTk4NDdcdTk4NDhcdTk4NDlcdTk4NGFcdTk4NGJcdTk4NGNcdTk4NGRcdWZmZmRcdTk4NGVcdTk4NGZcdTk4NTBcdTk4NTFcdTk4NTJcdTk4NTNcdTk4NTRcdTk4NTVcdTk4NTZcdTk4NTdcdTk4NThcdTk4NTlcdTk4NWFcdTk4NWJcdTk4NWNcdTk4NWRcdTk4NWVcdTk4NWZcdTk4'@; put 'NjBcdTk4NjFcdTk4NjJcdTk4NjNcdTk4NjRcdTk4NjVcdTk4NjZcdTk4NjdcdTk4NjhcdTk4NjlcdTk4NmFcdTk4NmJcdTk4NmNcdTk4NmRcdTk4NmVcdTc3NjJcdTc3NjVcdTc3N2ZcdTc3OGRcdTc3N2RcdTc3ODBcdTc3OGNcdTc3OTFcdTc3OWZcdTc3YTBcdTc3YjBcdTc3YjVcdTc3YmRc'@; put 'dTc1M2FcdTc1NDBcdTc1NGVcdTc1NGJcdTc1NDhcdTc1NWJcdTc1NzJcdTc1NzlcdTc1ODNcdTdmNThcdTdmNjFcdTdmNWZcdThhNDhcdTdmNjhcdTdmNzRcdTdmNzFcdTdmNzlcdTdmODFcdTdmN2VcdTc2Y2RcdTc2ZTVcdTg4MzJcdTk0ODVcdTk0ODZcdTk0ODdcdTk0OGJcdTk0OGFcdTk0'@; put 'OGNcdTk0OGRcdTk0OGZcdTk0OTBcdTk0OTRcdTk0OTdcdTk0OTVcdTk0OWFcdTk0OWJcdTk0OWNcdTk0YTNcdTk0YTRcdTk0YWJcdTk0YWFcdTk0YWRcdTk0YWNcdTk0YWZcdTk0YjBcdTk0YjJcdTk0YjRcdTk0YjZcdTk0YjdcdTk0YjhcdTk0YjlcdTk0YmFcdTk0YmNcdTk0YmRcdTk0YmZc'@; put 'dTk0YzRcdTk0YzhcdTk0YzlcdTk0Y2FcdTk0Y2JcdTk0Y2NcdTk0Y2RcdTk0Y2VcdTk0ZDBcdTk0ZDFcdTk0ZDJcdTk0ZDVcdTk0ZDZcdTk0ZDdcdTk0ZDlcdTk0ZDhcdTk0ZGJcdTk0ZGVcdTk0ZGZcdTk0ZTBcdTk0ZTJcdTk0ZTRcdTk0ZTVcdTk0ZTdcdTk0ZThcdTk0ZWFcdWZmZmQiLnNw'@; put 'bGl0KCIiKSxwPTA7cCE9X1syMzhdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIzOF1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMzhdW3BdXT02MDkyOCtwLGJbNjA5MjgrcF09X1syMzhdW3BdKTtmb3IoX1syMzldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdTk4NmZcdTk4NzBcdTk4NzFcdTk4NzJcdTk4NzNcdTk4NzRcdTk4OGJcdTk4OGVcdTk4OTJcdTk4OTVcdTk4OTlcdTk4YTNcdTk4YThcdTk4YTlcdTk4YWFcdTk4YWJcdTk4YWNcdTk4YWRcdTk4YWVcdTk4YWZcdTk4YjBcdTk4YjFcdTk4YjJcdTk4YjNcdTk4YjRcdTk4'@; put 'YjVcdTk4YjZcdTk4YjdcdTk4YjhcdTk4YjlcdTk4YmFcdTk4YmJcdTk4YmNcdTk4YmRcdTk4YmVcdTk4YmZcdTk4YzBcdTk4YzFcdTk4YzJcdTk4YzNcdTk4YzRcdTk4YzVcdTk4YzZcdTk4YzdcdTk4YzhcdTk4YzlcdTk4Y2FcdTk4Y2JcdTk4Y2NcdTk4Y2RcdTk4Y2ZcdTk4ZDBcdTk4ZDRc'@; put 'dTk4ZDZcdTk4ZDdcdTk4ZGJcdTk4ZGNcdTk4ZGRcdTk4ZTBcdTk4ZTFcdTk4ZTJcdTk4ZTNcdTk4ZTRcdWZmZmRcdTk4ZTVcdTk4ZTZcdTk4ZTlcdTk4ZWFcdTk4ZWJcdTk4ZWNcdTk4ZWRcdTk4ZWVcdTk4ZWZcdTk4ZjBcdTk4ZjFcdTk4ZjJcdTk4ZjNcdTk4ZjRcdTk4ZjVcdTk4ZjZcdTk4'@; put 'ZjdcdTk4ZjhcdTk4ZjlcdTk4ZmFcdTk4ZmJcdTk4ZmNcdTk4ZmRcdTk4ZmVcdTk4ZmZcdTk5MDBcdTk5MDFcdTk5MDJcdTk5MDNcdTk5MDRcdTk5MDVcdTk5MDZcdTk5MDdcdTk0ZTlcdTk0ZWJcdTk0ZWVcdTk0ZWZcdTk0ZjNcdTk0ZjRcdTk0ZjVcdTk0ZjdcdTk0ZjlcdTk0ZmNcdTk0ZmRc'@; put 'dTk0ZmZcdTk1MDNcdTk1MDJcdTk1MDZcdTk1MDdcdTk1MDlcdTk1MGFcdTk1MGRcdTk1MGVcdTk1MGZcdTk1MTJcdTk1MTNcdTk1MTRcdTk1MTVcdTk1MTZcdTk1MThcdTk1MWJcdTk1MWRcdTk1MWVcdTk1MWZcdTk1MjJcdTk1MmFcdTk1MmJcdTk1MjlcdTk1MmNcdTk1MzFcdTk1MzJcdTk1'@; put 'MzRcdTk1MzZcdTk1MzdcdTk1MzhcdTk1M2NcdTk1M2VcdTk1M2ZcdTk1NDJcdTk1MzVcdTk1NDRcdTk1NDVcdTk1NDZcdTk1NDlcdTk1NGNcdTk1NGVcdTk1NGZcdTk1NTJcdTk1NTNcdTk1NTRcdTk1NTZcdTk1NTdcdTk1NThcdTk1NTlcdTk1NWJcdTk1NWVcdTk1NWZcdTk1NWRcdTk1NjFc'@; put 'dTk1NjJcdTk1NjRcdTk1NjVcdTk1NjZcdTk1NjdcdTk1NjhcdTk1NjlcdTk1NmFcdTk1NmJcdTk1NmNcdTk1NmZcdTk1NzFcdTk1NzJcdTk1NzNcdTk1M2FcdTc3ZTdcdTc3ZWNcdTk2YzlcdTc5ZDVcdTc5ZWRcdTc5ZTNcdTc5ZWJcdTdhMDZcdTVkNDdcdTdhMDNcdTdhMDJcdTdhMWVcdTdh'@; put 'MTRcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syMzldLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzIzOV1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syMzldW3BdXT02MTE4NCtwLGJbNjExODQrcF09X1syMzldW3BdKTtmb3IoX1syNDBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk5MDhcdTk5MDlcdTk5MGFcdTk5MGJcdTk5MGNcdTk5MGVcdTk5MGZcdTk5MTFcdTk5MTJcdTk5MTNcdTk5MTRcdTk5MTVcdTk5MTZcdTk5MTdcdTk5MThcdTk5MTlcdTk5MWFcdTk5MWJcdTk5MWNcdTk5MWRcdTk5MWVcdTk5MWZcdTk5MjBcdTk5'@; put 'MjFcdTk5MjJcdTk5MjNcdTk5MjRcdTk5MjVcdTk5MjZcdTk5MjdcdTk5MjhcdTk5MjlcdTk5MmFcdTk5MmJcdTk5MmNcdTk5MmRcdTk5MmZcdTk5MzBcdTk5MzFcdTk5MzJcdTk5MzNcdTk5MzRcdTk5MzVcdTk5MzZcdTk5MzdcdTk5MzhcdTk5MzlcdTk5M2FcdTk5M2JcdTk5M2NcdTk5M2Rc'@; put 'dTk5M2VcdTk5M2ZcdTk5NDBcdTk5NDFcdTk5NDJcdTk5NDNcdTk5NDRcdTk5NDVcdTk5NDZcdTk5NDdcdTk5NDhcdTk5NDlcdWZmZmRcdTk5NGFcdTk5NGJcdTk5NGNcdTk5NGRcdTk5NGVcdTk5NGZcdTk5NTBcdTk5NTFcdTk5NTJcdTk5NTNcdTk5NTZcdTk5NTdcdTk5NThcdTk5NTlcdTk5'@; put 'NWFcdTk5NWJcdTk5NWNcdTk5NWRcdTk5NWVcdTk5NWZcdTk5NjBcdTk5NjFcdTk5NjJcdTk5NjRcdTk5NjZcdTk5NzNcdTk5NzhcdTk5NzlcdTk5N2JcdTk5N2VcdTk5ODJcdTk5ODNcdTk5ODlcdTdhMzlcdTdhMzdcdTdhNTFcdTllY2ZcdTk5YTVcdTdhNzBcdTc2ODhcdTc2OGVcdTc2OTNc'@; put 'dTc2OTlcdTc2YTRcdTc0ZGVcdTc0ZTBcdTc1MmNcdTllMjBcdTllMjJcdTllMjhcdTllMjlcdTllMmFcdTllMmJcdTllMmNcdTllMzJcdTllMzFcdTllMzZcdTllMzhcdTllMzdcdTllMzlcdTllM2FcdTllM2VcdTllNDFcdTllNDJcdTllNDRcdTllNDZcdTllNDdcdTllNDhcdTllNDlcdTll'@; put 'NGJcdTllNGNcdTllNGVcdTllNTFcdTllNTVcdTllNTdcdTllNWFcdTllNWJcdTllNWNcdTllNWVcdTllNjNcdTllNjZcdTllNjdcdTllNjhcdTllNjlcdTllNmFcdTllNmJcdTllNmNcdTllNzFcdTllNmRcdTllNzNcdTc1OTJcdTc1OTRcdTc1OTZcdTc1YTBcdTc1OWRcdTc1YWNcdTc1YTNc'@; put 'dTc1YjNcdTc1YjRcdTc1YjhcdTc1YzRcdTc1YjFcdTc1YjBcdTc1YzNcdTc1YzJcdTc1ZDZcdTc1Y2RcdTc1ZTNcdTc1ZThcdTc1ZTZcdTc1ZTRcdTc1ZWJcdTc1ZTdcdTc2MDNcdTc1ZjFcdTc1ZmNcdTc1ZmZcdTc2MTBcdTc2MDBcdTc2MDVcdTc2MGNcdTc2MTdcdTc2MGFcdTc2MjVcdTc2'@; put 'MThcdTc2MTVcdTc2MTlcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syNDBdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzI0MF1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syNDBdW3BdXT02MTQ0MCtwLGJbNjE0NDArcF09X1syNDBdW3BdKTtmb3IoX1syNDFdPSJcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk5OGNcdTk5OGVcdTk5OWFcdTk5OWJcdTk5OWNcdTk5OWRcdTk5OWVcdTk5OWZcdTk5YTBcdTk5YTFcdTk5YTJcdTk5YTNcdTk5YTRcdTk5YTZcdTk5YTdcdTk5YTlcdTk5YWFcdTk5YWJcdTk5YWNcdTk5YWRcdTk5YWVcdTk5'@; put 'YWZcdTk5YjBcdTk5YjFcdTk5YjJcdTk5YjNcdTk5YjRcdTk5YjVcdTk5YjZcdTk5YjdcdTk5YjhcdTk5YjlcdTk5YmFcdTk5YmJcdTk5YmNcdTk5YmRcdTk5YmVcdTk5YmZcdTk5YzBcdTk5YzFcdTk5YzJcdTk5YzNcdTk5YzRcdTk5YzVcdTk5YzZcdTk5YzdcdTk5YzhcdTk5YzlcdTk5Y2Fc'@; put 'dTk5Y2JcdTk5Y2NcdTk5Y2RcdTk5Y2VcdTk5Y2ZcdTk5ZDBcdTk5ZDFcdTk5ZDJcdTk5ZDNcdTk5ZDRcdTk5ZDVcdTk5ZDZcdTk5ZDdcdTk5ZDhcdWZmZmRcdTk5ZDlcdTk5ZGFcdTk5ZGJcdTk5ZGNcdTk5ZGRcdTk5ZGVcdTk5ZGZcdTk5ZTBcdTk5ZTFcdTk5ZTJcdTk5ZTNcdTk5ZTRcdTk5'@; put 'ZTVcdTk5ZTZcdTk5ZTdcdTk5ZThcdTk5ZTlcdTk5ZWFcdTk5ZWJcdTk5ZWNcdTk5ZWRcdTk5ZWVcdTk5ZWZcdTk5ZjBcdTk5ZjFcdTk5ZjJcdTk5ZjNcdTk5ZjRcdTk5ZjVcdTk5ZjZcdTk5ZjdcdTk5ZjhcdTk5ZjlcdTc2MWJcdTc2M2NcdTc2MjJcdTc2MjBcdTc2NDBcdTc2MmRcdTc2MzBc'@; put 'dTc2M2ZcdTc2MzVcdTc2NDNcdTc2M2VcdTc2MzNcdTc2NGRcdTc2NWVcdTc2NTRcdTc2NWNcdTc2NTZcdTc2NmJcdTc2NmZcdTdmY2FcdTdhZTZcdTdhNzhcdTdhNzlcdTdhODBcdTdhODZcdTdhODhcdTdhOTVcdTdhYTZcdTdhYTBcdTdhYWNcdTdhYThcdTdhYWRcdTdhYjNcdTg4NjRcdTg4'@; put 'NjlcdTg4NzJcdTg4N2RcdTg4N2ZcdTg4ODJcdTg4YTJcdTg4YzZcdTg4YjdcdTg4YmNcdTg4YzlcdTg4ZTJcdTg4Y2VcdTg4ZTNcdTg4ZTVcdTg4ZjFcdTg5MWFcdTg4ZmNcdTg4ZThcdTg4ZmVcdTg4ZjBcdTg5MjFcdTg5MTlcdTg5MTNcdTg5MWJcdTg5MGFcdTg5MzRcdTg5MmJcdTg5MzZc'@; put 'dTg5NDFcdTg5NjZcdTg5N2JcdTc1OGJcdTgwZTVcdTc2YjJcdTc2YjRcdTc3ZGNcdTgwMTJcdTgwMTRcdTgwMTZcdTgwMWNcdTgwMjBcdTgwMjJcdTgwMjVcdTgwMjZcdTgwMjdcdTgwMjlcdTgwMjhcdTgwMzFcdTgwMGJcdTgwMzVcdTgwNDNcdTgwNDZcdTgwNGRcdTgwNTJcdTgwNjlcdTgw'@; put 'NzFcdTg5ODNcdTk4NzhcdTk4ODBcdTk4ODNcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syNDFdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzI0MV1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syNDFdW3BdXT02MTY5NitwLGJbNjE2OTYrcF09X1syNDFdW3BdKTtmb3IoX1syNDJdPSJcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk5ZmFcdTk5ZmJcdTk5ZmNcdTk5ZmRcdTk5ZmVcdTk5ZmZcdTlhMDBcdTlhMDFcdTlhMDJcdTlhMDNcdTlhMDRcdTlhMDVcdTlhMDZcdTlhMDdcdTlhMDhcdTlhMDlcdTlhMGFcdTlhMGJcdTlhMGNcdTlh'@; put 'MGRcdTlhMGVcdTlhMGZcdTlhMTBcdTlhMTFcdTlhMTJcdTlhMTNcdTlhMTRcdTlhMTVcdTlhMTZcdTlhMTdcdTlhMThcdTlhMTlcdTlhMWFcdTlhMWJcdTlhMWNcdTlhMWRcdTlhMWVcdTlhMWZcdTlhMjBcdTlhMjFcdTlhMjJcdTlhMjNcdTlhMjRcdTlhMjVcdTlhMjZcdTlhMjdcdTlhMjhc'@; put 'dTlhMjlcdTlhMmFcdTlhMmJcdTlhMmNcdTlhMmRcdTlhMmVcdTlhMmZcdTlhMzBcdTlhMzFcdTlhMzJcdTlhMzNcdTlhMzRcdTlhMzVcdTlhMzZcdTlhMzdcdTlhMzhcdWZmZmRcdTlhMzlcdTlhM2FcdTlhM2JcdTlhM2NcdTlhM2RcdTlhM2VcdTlhM2ZcdTlhNDBcdTlhNDFcdTlhNDJcdTlh'@; put 'NDNcdTlhNDRcdTlhNDVcdTlhNDZcdTlhNDdcdTlhNDhcdTlhNDlcdTlhNGFcdTlhNGJcdTlhNGNcdTlhNGRcdTlhNGVcdTlhNGZcdTlhNTBcdTlhNTFcdTlhNTJcdTlhNTNcdTlhNTRcdTlhNTVcdTlhNTZcdTlhNTdcdTlhNThcdTlhNTlcdTk4ODlcdTk4OGNcdTk4OGRcdTk4OGZcdTk4OTRc'@; put 'dTk4OWFcdTk4OWJcdTk4OWVcdTk4OWZcdTk4YTFcdTk4YTJcdTk4YTVcdTk4YTZcdTg2NGRcdTg2NTRcdTg2NmNcdTg2NmVcdTg2N2ZcdTg2N2FcdTg2N2NcdTg2N2JcdTg2YThcdTg2OGRcdTg2OGJcdTg2YWNcdTg2OWRcdTg2YTdcdTg2YTNcdTg2YWFcdTg2OTNcdTg2YTlcdTg2YjZcdTg2'@; put 'YzRcdTg2YjVcdTg2Y2VcdTg2YjBcdTg2YmFcdTg2YjFcdTg2YWZcdTg2YzlcdTg2Y2ZcdTg2YjRcdTg2ZTlcdTg2ZjFcdTg2ZjJcdTg2ZWRcdTg2ZjNcdTg2ZDBcdTg3MTNcdTg2ZGVcdTg2ZjRcdTg2ZGZcdTg2ZDhcdTg2ZDFcdTg3MDNcdTg3MDdcdTg2ZjhcdTg3MDhcdTg3MGFcdTg3MGRc'@; put 'dTg3MDlcdTg3MjNcdTg3M2JcdTg3MWVcdTg3MjVcdTg3MmVcdTg3MWFcdTg3M2VcdTg3NDhcdTg3MzRcdTg3MzFcdTg3MjlcdTg3MzdcdTg3M2ZcdTg3ODJcdTg3MjJcdTg3N2RcdTg3N2VcdTg3N2JcdTg3NjBcdTg3NzBcdTg3NGNcdTg3NmVcdTg3OGJcdTg3NTNcdTg3NjNcdTg3N2NcdTg3'@; put 'NjRcdTg3NTlcdTg3NjVcdTg3OTNcdTg3YWZcdTg3YThcdTg3ZDJcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syNDJdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzI0Ml1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syNDJdW3BdXT02MTk1MitwLGJbNjE5NTIrcF09X1syNDJdW3BdKTtmb3IoX1sy'@; put 'NDNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTlhNWFcdTlhNWJcdTlhNWNcdTlhNWRcdTlhNWVcdTlhNWZcdTlhNjBcdTlhNjFcdTlhNjJcdTlhNjNcdTlhNjRcdTlhNjVcdTlhNjZcdTlhNjdcdTlhNjhcdTlhNjlcdTlhNmFcdTlh'@; put 'NmJcdTlhNzJcdTlhODNcdTlhODlcdTlhOGRcdTlhOGVcdTlhOTRcdTlhOTVcdTlhOTlcdTlhYTZcdTlhYTlcdTlhYWFcdTlhYWJcdTlhYWNcdTlhYWRcdTlhYWVcdTlhYWZcdTlhYjJcdTlhYjNcdTlhYjRcdTlhYjVcdTlhYjlcdTlhYmJcdTlhYmRcdTlhYmVcdTlhYmZcdTlhYzNcdTlhYzRc'@; put 'dTlhYzZcdTlhYzdcdTlhYzhcdTlhYzlcdTlhY2FcdTlhY2RcdTlhY2VcdTlhY2ZcdTlhZDBcdTlhZDJcdTlhZDRcdTlhZDVcdTlhZDZcdTlhZDdcdTlhZDlcdTlhZGFcdTlhZGJcdTlhZGNcdWZmZmRcdTlhZGRcdTlhZGVcdTlhZTBcdTlhZTJcdTlhZTNcdTlhZTRcdTlhZTVcdTlhZTdcdTlh'@; put 'ZThcdTlhZTlcdTlhZWFcdTlhZWNcdTlhZWVcdTlhZjBcdTlhZjFcdTlhZjJcdTlhZjNcdTlhZjRcdTlhZjVcdTlhZjZcdTlhZjdcdTlhZjhcdTlhZmFcdTlhZmNcdTlhZmRcdTlhZmVcdTlhZmZcdTliMDBcdTliMDFcdTliMDJcdTliMDRcdTliMDVcdTliMDZcdTg3YzZcdTg3ODhcdTg3ODVc'@; put 'dTg3YWRcdTg3OTdcdTg3ODNcdTg3YWJcdTg3ZTVcdTg3YWNcdTg3YjVcdTg3YjNcdTg3Y2JcdTg3ZDNcdTg3YmRcdTg3ZDFcdTg3YzBcdTg3Y2FcdTg3ZGJcdTg3ZWFcdTg3ZTBcdTg3ZWVcdTg4MTZcdTg4MTNcdTg3ZmVcdTg4MGFcdTg4MWJcdTg4MjFcdTg4MzlcdTg4M2NcdTdmMzZcdTdm'@; put 'NDJcdTdmNDRcdTdmNDVcdTgyMTBcdTdhZmFcdTdhZmRcdTdiMDhcdTdiMDNcdTdiMDRcdTdiMTVcdTdiMGFcdTdiMmJcdTdiMGZcdTdiNDdcdTdiMzhcdTdiMmFcdTdiMTlcdTdiMmVcdTdiMzFcdTdiMjBcdTdiMjVcdTdiMjRcdTdiMzNcdTdiM2VcdTdiMWVcdTdiNThcdTdiNWFcdTdiNDVc'@; put 'dTdiNzVcdTdiNGNcdTdiNWRcdTdiNjBcdTdiNmVcdTdiN2JcdTdiNjJcdTdiNzJcdTdiNzFcdTdiOTBcdTdiYTZcdTdiYTdcdTdiYjhcdTdiYWNcdTdiOWRcdTdiYThcdTdiODVcdTdiYWFcdTdiOWNcdTdiYTJcdTdiYWJcdTdiYjRcdTdiZDFcdTdiYzFcdTdiY2NcdTdiZGRcdTdiZGFcdTdi'@; put 'ZTVcdTdiZTZcdTdiZWFcdTdjMGNcdTdiZmVcdTdiZmNcdTdjMGZcdTdjMTZcdTdjMGJcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syNDNdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzI0M11bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syNDNdW3BdXT02MjIwOCtwLGJbNjIyMDgrcF09X1syNDNd'@; put 'W3BdKTtmb3IoX1syNDRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTliMDdcdTliMDlcdTliMGFcdTliMGJcdTliMGNcdTliMGRcdTliMGVcdTliMTBcdTliMTFcdTliMTJcdTliMTRcdTliMTVcdTliMTZcdTliMTdcdTliMThcdTli'@; put 'MTlcdTliMWFcdTliMWJcdTliMWNcdTliMWRcdTliMWVcdTliMjBcdTliMjFcdTliMjJcdTliMjRcdTliMjVcdTliMjZcdTliMjdcdTliMjhcdTliMjlcdTliMmFcdTliMmJcdTliMmNcdTliMmRcdTliMmVcdTliMzBcdTliMzFcdTliMzNcdTliMzRcdTliMzVcdTliMzZcdTliMzdcdTliMzhc'@; put 'dTliMzlcdTliM2FcdTliM2RcdTliM2VcdTliM2ZcdTliNDBcdTliNDZcdTliNGFcdTliNGJcdTliNGNcdTliNGVcdTliNTBcdTliNTJcdTliNTNcdTliNTVcdTliNTZcdTliNTdcdTliNThcdTliNTlcdTliNWFcdWZmZmRcdTliNWJcdTliNWNcdTliNWRcdTliNWVcdTliNWZcdTliNjBcdTli'@; put 'NjFcdTliNjJcdTliNjNcdTliNjRcdTliNjVcdTliNjZcdTliNjdcdTliNjhcdTliNjlcdTliNmFcdTliNmJcdTliNmNcdTliNmRcdTliNmVcdTliNmZcdTliNzBcdTliNzFcdTliNzJcdTliNzNcdTliNzRcdTliNzVcdTliNzZcdTliNzdcdTliNzhcdTliNzlcdTliN2FcdTliN2JcdTdjMWZc'@; put 'dTdjMmFcdTdjMjZcdTdjMzhcdTdjNDFcdTdjNDBcdTgxZmVcdTgyMDFcdTgyMDJcdTgyMDRcdTgxZWNcdTg4NDRcdTgyMjFcdTgyMjJcdTgyMjNcdTgyMmRcdTgyMmZcdTgyMjhcdTgyMmJcdTgyMzhcdTgyM2JcdTgyMzNcdTgyMzRcdTgyM2VcdTgyNDRcdTgyNDlcdTgyNGJcdTgyNGZcdTgy'@; put 'NWFcdTgyNWZcdTgyNjhcdTg4N2VcdTg4ODVcdTg4ODhcdTg4ZDhcdTg4ZGZcdTg5NWVcdTdmOWRcdTdmOWZcdTdmYTdcdTdmYWZcdTdmYjBcdTdmYjJcdTdjN2NcdTY1NDlcdTdjOTFcdTdjOWRcdTdjOWNcdTdjOWVcdTdjYTJcdTdjYjJcdTdjYmNcdTdjYmRcdTdjYzFcdTdjYzdcdTdjY2Nc'@; put 'dTdjY2RcdTdjYzhcdTdjYzVcdTdjZDdcdTdjZThcdTgyNmVcdTY2YThcdTdmYmZcdTdmY2VcdTdmZDVcdTdmZTVcdTdmZTFcdTdmZTZcdTdmZTlcdTdmZWVcdTdmZjNcdTdjZjhcdTdkNzdcdTdkYTZcdTdkYWVcdTdlNDdcdTdlOWJcdTllYjhcdTllYjRcdThkNzNcdThkODRcdThkOTRcdThk'@; put 'OTFcdThkYjFcdThkNjdcdThkNmRcdThjNDdcdThjNDlcdTkxNGFcdTkxNTBcdTkxNGVcdTkxNGZcdTkxNjRcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syNDRdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzI0NF1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syNDRdW3BdXT02MjQ2NCtwLGJbNjI0'@; put 'NjQrcF09X1syNDRdW3BdKTtmb3IoX1syNDVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTliN2NcdTliN2RcdTliN2VcdTliN2ZcdTliODBcdTliODFcdTliODJcdTliODNcdTliODRcdTliODVcdTliODZcdTliODdcdTliODhcdTli'@; put 'ODlcdTliOGFcdTliOGJcdTliOGNcdTliOGRcdTliOGVcdTliOGZcdTliOTBcdTliOTFcdTliOTJcdTliOTNcdTliOTRcdTliOTVcdTliOTZcdTliOTdcdTliOThcdTliOTlcdTliOWFcdTliOWJcdTliOWNcdTliOWRcdTliOWVcdTliOWZcdTliYTBcdTliYTFcdTliYTJcdTliYTNcdTliYTRc'@; put 'dTliYTVcdTliYTZcdTliYTdcdTliYThcdTliYTlcdTliYWFcdTliYWJcdTliYWNcdTliYWRcdTliYWVcdTliYWZcdTliYjBcdTliYjFcdTliYjJcdTliYjNcdTliYjRcdTliYjVcdTliYjZcdTliYjdcdTliYjhcdTliYjlcdTliYmFcdWZmZmRcdTliYmJcdTliYmNcdTliYmRcdTliYmVcdTli'@; put 'YmZcdTliYzBcdTliYzFcdTliYzJcdTliYzNcdTliYzRcdTliYzVcdTliYzZcdTliYzdcdTliYzhcdTliYzlcdTliY2FcdTliY2JcdTliY2NcdTliY2RcdTliY2VcdTliY2ZcdTliZDBcdTliZDFcdTliZDJcdTliZDNcdTliZDRcdTliZDVcdTliZDZcdTliZDdcdTliZDhcdTliZDlcdTliZGFc'@; put 'dTliZGJcdTkxNjJcdTkxNjFcdTkxNzBcdTkxNjlcdTkxNmZcdTkxN2RcdTkxN2VcdTkxNzJcdTkxNzRcdTkxNzlcdTkxOGNcdTkxODVcdTkxOTBcdTkxOGRcdTkxOTFcdTkxYTJcdTkxYTNcdTkxYWFcdTkxYWRcdTkxYWVcdTkxYWZcdTkxYjVcdTkxYjRcdTkxYmFcdThjNTVcdTllN2VcdThk'@; put 'YjhcdThkZWJcdThlMDVcdThlNTlcdThlNjlcdThkYjVcdThkYmZcdThkYmNcdThkYmFcdThkYzRcdThkZDZcdThkZDdcdThkZGFcdThkZGVcdThkY2VcdThkY2ZcdThkZGJcdThkYzZcdThkZWNcdThkZjdcdThkZjhcdThkZTNcdThkZjlcdThkZmJcdThkZTRcdThlMDlcdThkZmRcdThlMTRc'@; put 'dThlMWRcdThlMWZcdThlMmNcdThlMmVcdThlMjNcdThlMmZcdThlM2FcdThlNDBcdThlMzlcdThlMzVcdThlM2RcdThlMzFcdThlNDlcdThlNDFcdThlNDJcdThlNTFcdThlNTJcdThlNGFcdThlNzBcdThlNzZcdThlN2NcdThlNmZcdThlNzRcdThlODVcdThlOGZcdThlOTRcdThlOTBcdThl'@; put 'OWNcdThlOWVcdThjNzhcdThjODJcdThjOGFcdThjODVcdThjOThcdThjOTRcdTY1OWJcdTg5ZDZcdTg5ZGVcdTg5ZGFcdTg5ZGNcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syNDVdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzI0NV1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syNDVdW3BdXT02'@; put 'MjcyMCtwLGJbNjI3MjArcF09X1syNDVdW3BdKTtmb3IoX1syNDZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTliZGNcdTliZGRcdTliZGVcdTliZGZcdTliZTBcdTliZTFcdTliZTJcdTliZTNcdTliZTRcdTliZTVcdTliZTZcdTli'@; put 'ZTdcdTliZThcdTliZTlcdTliZWFcdTliZWJcdTliZWNcdTliZWRcdTliZWVcdTliZWZcdTliZjBcdTliZjFcdTliZjJcdTliZjNcdTliZjRcdTliZjVcdTliZjZcdTliZjdcdTliZjhcdTliZjlcdTliZmFcdTliZmJcdTliZmNcdTliZmRcdTliZmVcdTliZmZcdTljMDBcdTljMDFcdTljMDJc'@; put 'dTljMDNcdTljMDRcdTljMDVcdTljMDZcdTljMDdcdTljMDhcdTljMDlcdTljMGFcdTljMGJcdTljMGNcdTljMGRcdTljMGVcdTljMGZcdTljMTBcdTljMTFcdTljMTJcdTljMTNcdTljMTRcdTljMTVcdTljMTZcdTljMTdcdTljMThcdTljMTlcdTljMWFcdWZmZmRcdTljMWJcdTljMWNcdTlj'@; put 'MWRcdTljMWVcdTljMWZcdTljMjBcdTljMjFcdTljMjJcdTljMjNcdTljMjRcdTljMjVcdTljMjZcdTljMjdcdTljMjhcdTljMjlcdTljMmFcdTljMmJcdTljMmNcdTljMmRcdTljMmVcdTljMmZcdTljMzBcdTljMzFcdTljMzJcdTljMzNcdTljMzRcdTljMzVcdTljMzZcdTljMzdcdTljMzhc'@; put 'dTljMzlcdTljM2FcdTljM2JcdTg5ZTVcdTg5ZWJcdTg5ZWZcdThhM2VcdThiMjZcdTk3NTNcdTk2ZTlcdTk2ZjNcdTk2ZWZcdTk3MDZcdTk3MDFcdTk3MDhcdTk3MGZcdTk3MGVcdTk3MmFcdTk3MmRcdTk3MzBcdTk3M2VcdTlmODBcdTlmODNcdTlmODVcdTlmODZcdTlmODdcdTlmODhcdTlm'@; put 'ODlcdTlmOGFcdTlmOGNcdTllZmVcdTlmMGJcdTlmMGRcdTk2YjlcdTk2YmNcdTk2YmRcdTk2Y2VcdTk2ZDJcdTc3YmZcdTk2ZTBcdTkyOGVcdTkyYWVcdTkyYzhcdTkzM2VcdTkzNmFcdTkzY2FcdTkzOGZcdTk0M2VcdTk0NmJcdTljN2ZcdTljODJcdTljODVcdTljODZcdTljODdcdTljODhc'@; put 'dTdhMjNcdTljOGJcdTljOGVcdTljOTBcdTljOTFcdTljOTJcdTljOTRcdTljOTVcdTljOWFcdTljOWJcdTljOWVcdTljOWZcdTljYTBcdTljYTFcdTljYTJcdTljYTNcdTljYTVcdTljYTZcdTljYTdcdTljYThcdTljYTlcdTljYWJcdTljYWRcdTljYWVcdTljYjBcdTljYjFcdTljYjJcdTlj'@; put 'YjNcdTljYjRcdTljYjVcdTljYjZcdTljYjdcdTljYmFcdTljYmJcdTljYmNcdTljYmRcdTljYzRcdTljYzVcdTljYzZcdTljYzdcdTljY2FcdTljY2JcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syNDZdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzI0Nl1bcF0uY2hhckNvZGVBdCgwKSYmKERb'@; put 'X1syNDZdW3BdXT02Mjk3NitwLGJbNjI5NzYrcF09X1syNDZdW3BdKTtmb3IoX1syNDddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTljM2NcdTljM2RcdTljM2VcdTljM2ZcdTljNDBcdTljNDFcdTljNDJcdTljNDNcdTljNDRcdTlj'@; put 'NDVcdTljNDZcdTljNDdcdTljNDhcdTljNDlcdTljNGFcdTljNGJcdTljNGNcdTljNGRcdTljNGVcdTljNGZcdTljNTBcdTljNTFcdTljNTJcdTljNTNcdTljNTRcdTljNTVcdTljNTZcdTljNTdcdTljNThcdTljNTlcdTljNWFcdTljNWJcdTljNWNcdTljNWRcdTljNWVcdTljNWZcdTljNjBc'@; put 'dTljNjFcdTljNjJcdTljNjNcdTljNjRcdTljNjVcdTljNjZcdTljNjdcdTljNjhcdTljNjlcdTljNmFcdTljNmJcdTljNmNcdTljNmRcdTljNmVcdTljNmZcdTljNzBcdTljNzFcdTljNzJcdTljNzNcdTljNzRcdTljNzVcdTljNzZcdTljNzdcdTljNzhcdTljNzlcdTljN2FcdWZmZmRcdTlj'@; put 'N2JcdTljN2RcdTljN2VcdTljODBcdTljODNcdTljODRcdTljODlcdTljOGFcdTljOGNcdTljOGZcdTljOTNcdTljOTZcdTljOTdcdTljOThcdTljOTlcdTljOWRcdTljYWFcdTljYWNcdTljYWZcdTljYjlcdTljYmVcdTljYmZcdTljYzBcdTljYzFcdTljYzJcdTljYzhcdTljYzlcdTljZDFc'@; put 'dTljZDJcdTljZGFcdTljZGJcdTljZTBcdTljZTFcdTljY2NcdTljY2RcdTljY2VcdTljY2ZcdTljZDBcdTljZDNcdTljZDRcdTljZDVcdTljZDdcdTljZDhcdTljZDlcdTljZGNcdTljZGRcdTljZGZcdTljZTJcdTk3N2NcdTk3ODVcdTk3OTFcdTk3OTJcdTk3OTRcdTk3YWZcdTk3YWJcdTk3'@; put 'YTNcdTk3YjJcdTk3YjRcdTlhYjFcdTlhYjBcdTlhYjdcdTllNThcdTlhYjZcdTlhYmFcdTlhYmNcdTlhYzFcdTlhYzBcdTlhYzVcdTlhYzJcdTlhY2JcdTlhY2NcdTlhZDFcdTliNDVcdTliNDNcdTliNDdcdTliNDlcdTliNDhcdTliNGRcdTliNTFcdTk4ZThcdTk5MGRcdTk5MmVcdTk5NTVc'@; put 'dTk5NTRcdTlhZGZcdTlhZTFcdTlhZTZcdTlhZWZcdTlhZWJcdTlhZmJcdTlhZWRcdTlhZjlcdTliMDhcdTliMGZcdTliMTNcdTliMWZcdTliMjNcdTllYmRcdTllYmVcdTdlM2JcdTllODJcdTllODdcdTllODhcdTllOGJcdTllOTJcdTkzZDZcdTllOWRcdTllOWZcdTllZGJcdTllZGNcdTll'@; put 'ZGRcdTllZTBcdTllZGZcdTllZTJcdTllZTlcdTllZTdcdTllZTVcdTllZWFcdTllZWZcdTlmMjJcdTlmMmNcdTlmMmZcdTlmMzlcdTlmMzdcdTlmM2RcdTlmM2VcdTlmNDRcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syNDddLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzI0N11bcF0uY2hhckNv'@; put 'ZGVBdCgwKSYmKERbX1syNDddW3BdXT02MzIzMitwLGJbNjMyMzIrcF09X1syNDddW3BdKTtmb3IoX1syNDhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTljZTNcdTljZTRcdTljZTVcdTljZTZcdTljZTdcdTljZThcdTljZTlcdTlj'@; put 'ZWFcdTljZWJcdTljZWNcdTljZWRcdTljZWVcdTljZWZcdTljZjBcdTljZjFcdTljZjJcdTljZjNcdTljZjRcdTljZjVcdTljZjZcdTljZjdcdTljZjhcdTljZjlcdTljZmFcdTljZmJcdTljZmNcdTljZmRcdTljZmVcdTljZmZcdTlkMDBcdTlkMDFcdTlkMDJcdTlkMDNcdTlkMDRcdTlkMDVc'@; put 'dTlkMDZcdTlkMDdcdTlkMDhcdTlkMDlcdTlkMGFcdTlkMGJcdTlkMGNcdTlkMGRcdTlkMGVcdTlkMGZcdTlkMTBcdTlkMTFcdTlkMTJcdTlkMTNcdTlkMTRcdTlkMTVcdTlkMTZcdTlkMTdcdTlkMThcdTlkMTlcdTlkMWFcdTlkMWJcdTlkMWNcdTlkMWRcdTlkMWVcdTlkMWZcdTlkMjBcdTlk'@; put 'MjFcdWZmZmRcdTlkMjJcdTlkMjNcdTlkMjRcdTlkMjVcdTlkMjZcdTlkMjdcdTlkMjhcdTlkMjlcdTlkMmFcdTlkMmJcdTlkMmNcdTlkMmRcdTlkMmVcdTlkMmZcdTlkMzBcdTlkMzFcdTlkMzJcdTlkMzNcdTlkMzRcdTlkMzVcdTlkMzZcdTlkMzdcdTlkMzhcdTlkMzlcdTlkM2FcdTlkM2Jc'@; put 'dTlkM2NcdTlkM2RcdTlkM2VcdTlkM2ZcdTlkNDBcdTlkNDFcdTlkNDJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syNDhdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzI0'@; put 'OF1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syNDhdW3BdXT02MzQ4OCtwLGJbNjM0ODgrcF09X1syNDhdW3BdKTtmb3IoX1syNDldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTlkNDNcdTlkNDRcdTlkNDVcdTlkNDZcdTlkNDdcdTlk'@; put 'NDhcdTlkNDlcdTlkNGFcdTlkNGJcdTlkNGNcdTlkNGRcdTlkNGVcdTlkNGZcdTlkNTBcdTlkNTFcdTlkNTJcdTlkNTNcdTlkNTRcdTlkNTVcdTlkNTZcdTlkNTdcdTlkNThcdTlkNTlcdTlkNWFcdTlkNWJcdTlkNWNcdTlkNWRcdTlkNWVcdTlkNWZcdTlkNjBcdTlkNjFcdTlkNjJcdTlkNjNc'@; put 'dTlkNjRcdTlkNjVcdTlkNjZcdTlkNjdcdTlkNjhcdTlkNjlcdTlkNmFcdTlkNmJcdTlkNmNcdTlkNmRcdTlkNmVcdTlkNmZcdTlkNzBcdTlkNzFcdTlkNzJcdTlkNzNcdTlkNzRcdTlkNzVcdTlkNzZcdTlkNzdcdTlkNzhcdTlkNzlcdTlkN2FcdTlkN2JcdTlkN2NcdTlkN2RcdTlkN2VcdTlk'@; put 'N2ZcdTlkODBcdTlkODFcdWZmZmRcdTlkODJcdTlkODNcdTlkODRcdTlkODVcdTlkODZcdTlkODdcdTlkODhcdTlkODlcdTlkOGFcdTlkOGJcdTlkOGNcdTlkOGRcdTlkOGVcdTlkOGZcdTlkOTBcdTlkOTFcdTlkOTJcdTlkOTNcdTlkOTRcdTlkOTVcdTlkOTZcdTlkOTdcdTlkOThcdTlkOTlc'@; put 'dTlkOWFcdTlkOWJcdTlkOWNcdTlkOWRcdTlkOWVcdTlkOWZcdTlkYTBcdTlkYTFcdTlkYTJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syNDldLmxlbmd0aDsrK3Ap'@; put 'NjU1MzMhPT1fWzI0OV1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syNDldW3BdXT02Mzc0NCtwLGJbNjM3NDQrcF09X1syNDldW3BdKTtmb3IoX1syNTBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTlkYTNcdTlkYTRcdTlkYTVcdTlk'@; put 'YTZcdTlkYTdcdTlkYThcdTlkYTlcdTlkYWFcdTlkYWJcdTlkYWNcdTlkYWRcdTlkYWVcdTlkYWZcdTlkYjBcdTlkYjFcdTlkYjJcdTlkYjNcdTlkYjRcdTlkYjVcdTlkYjZcdTlkYjdcdTlkYjhcdTlkYjlcdTlkYmFcdTlkYmJcdTlkYmNcdTlkYmRcdTlkYmVcdTlkYmZcdTlkYzBcdTlkYzFc'@; put 'dTlkYzJcdTlkYzNcdTlkYzRcdTlkYzVcdTlkYzZcdTlkYzdcdTlkYzhcdTlkYzlcdTlkY2FcdTlkY2JcdTlkY2NcdTlkY2RcdTlkY2VcdTlkY2ZcdTlkZDBcdTlkZDFcdTlkZDJcdTlkZDNcdTlkZDRcdTlkZDVcdTlkZDZcdTlkZDdcdTlkZDhcdTlkZDlcdTlkZGFcdTlkZGJcdTlkZGNcdTlk'@; put 'ZGRcdTlkZGVcdTlkZGZcdTlkZTBcdTlkZTFcdWZmZmRcdTlkZTJcdTlkZTNcdTlkZTRcdTlkZTVcdTlkZTZcdTlkZTdcdTlkZThcdTlkZTlcdTlkZWFcdTlkZWJcdTlkZWNcdTlkZWRcdTlkZWVcdTlkZWZcdTlkZjBcdTlkZjFcdTlkZjJcdTlkZjNcdTlkZjRcdTlkZjVcdTlkZjZcdTlkZjdc'@; put 'dTlkZjhcdTlkZjlcdTlkZmFcdTlkZmJcdTlkZmNcdTlkZmRcdTlkZmVcdTlkZmZcdTllMDBcdTllMDFcdTllMDJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1syNTBd'@; put 'Lmxlbmd0aDsrK3ApNjU1MzMhPT1fWzI1MF1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1syNTBdW3BdXT02NGUzK3AsYls2NGUzK3BdPV9bMjUwXVtwXSk7Zm9yKF9bMjUxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ZTAzXHU5ZTA0'@; put 'XHU5ZTA1XHU5ZTA2XHU5ZTA3XHU5ZTA4XHU5ZTA5XHU5ZTBhXHU5ZTBiXHU5ZTBjXHU5ZTBkXHU5ZTBlXHU5ZTBmXHU5ZTEwXHU5ZTExXHU5ZTEyXHU5ZTEzXHU5ZTE0XHU5ZTE1XHU5ZTE2XHU5ZTE3XHU5ZTE4XHU5ZTE5XHU5ZTFhXHU5ZTFiXHU5ZTFjXHU5ZTFkXHU5ZTFlXHU5ZTI0XHU5'@; put 'ZTI3XHU5ZTJlXHU5ZTMwXHU5ZTM0XHU5ZTNiXHU5ZTNjXHU5ZTQwXHU5ZTRkXHU5ZTUwXHU5ZTUyXHU5ZTUzXHU5ZTU0XHU5ZTU2XHU5ZTU5XHU5ZTVkXHU5ZTVmXHU5ZTYwXHU5ZTYxXHU5ZTYyXHU5ZTY1XHU5ZTZlXHU5ZTZmXHU5ZTcyXHU5ZTc0XHU5ZTc1XHU5ZTc2XHU5ZTc3XHU5ZTc4'@; put 'XHU5ZTc5XHU5ZTdhXHU5ZTdiXHU5ZTdjXHU5ZTdkXHU5ZTgwXHVmZmZkXHU5ZTgxXHU5ZTgzXHU5ZTg0XHU5ZTg1XHU5ZTg2XHU5ZTg5XHU5ZThhXHU5ZThjXHU5ZThkXHU5ZThlXHU5ZThmXHU5ZTkwXHU5ZTkxXHU5ZTk0XHU5ZTk1XHU5ZTk2XHU5ZTk3XHU5ZTk4XHU5ZTk5XHU5ZTlhXHU5'@; put 'ZTliXHU5ZTljXHU5ZTllXHU5ZWEwXHU5ZWExXHU5ZWEyXHU5ZWEzXHU5ZWE0XHU5ZWE1XHU5ZWE3XHU5ZWE4XHU5ZWE5XHU5ZWFhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIikscD0w'@; put 'O3AhPV9bMjUxXS5sZW5ndGg7KytwKTY1NTMzIT09X1syNTFdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjUxXVtwXV09NjQyNTYrcCxiWzY0MjU2K3BdPV9bMjUxXVtwXSk7Zm9yKF9bMjUyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHU5ZWFiXHU5ZWFjXHU5ZWFkXHU5ZWFlXHU5ZWFmXHU5ZWIwXHU5ZWIxXHU5ZWIyXHU5ZWIzXHU5ZWI1XHU5ZWI2XHU5ZWI3XHU5ZWI5XHU5ZWJhXHU5ZWJjXHU5ZWJmXHU5ZWMwXHU5ZWMxXHU5ZWMyXHU5ZWMzXHU5ZWM1XHU5ZWM2XHU5ZWM3XHU5ZWM4XHU5ZWNhXHU5ZWNiXHU5ZWNjXHU5'@; put 'ZWQwXHU5ZWQyXHU5ZWQzXHU5ZWQ1XHU5ZWQ2XHU5ZWQ3XHU5ZWQ5XHU5ZWRhXHU5ZWRlXHU5ZWUxXHU5ZWUzXHU5ZWU0XHU5ZWU2XHU5ZWU4XHU5ZWViXHU5ZWVjXHU5ZWVkXHU5ZWVlXHU5ZWYwXHU5ZWYxXHU5ZWYyXHU5ZWYzXHU5ZWY0XHU5ZWY1XHU5ZWY2XHU5ZWY3XHU5ZWY4XHU5ZWZh'@; put 'XHU5ZWZkXHU5ZWZmXHU5ZjAwXHU5ZjAxXHU5ZjAyXHU5ZjAzXHU5ZjA0XHU5ZjA1XHVmZmZkXHU5ZjA2XHU5ZjA3XHU5ZjA4XHU5ZjA5XHU5ZjBhXHU5ZjBjXHU5ZjBmXHU5ZjExXHU5ZjEyXHU5ZjE0XHU5ZjE1XHU5ZjE2XHU5ZjE4XHU5ZjFhXHU5ZjFiXHU5ZjFjXHU5ZjFkXHU5ZjFlXHU5'@; put 'ZjFmXHU5ZjIxXHU5ZjIzXHU5ZjI0XHU5ZjI1XHU5ZjI2XHU5ZjI3XHU5ZjI4XHU5ZjI5XHU5ZjJhXHU5ZjJiXHU5ZjJkXHU5ZjJlXHU5ZjMwXHU5ZjMxXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5z'@; put 'cGxpdCgiIikscD0wO3AhPV9bMjUyXS5sZW5ndGg7KytwKTY1NTMzIT09X1syNTJdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjUyXVtwXV09NjQ1MTIrcCxiWzY0NTEyK3BdPV9bMjUyXVtwXSk7Zm9yKF9bMjUzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHU5ZjMyXHU5ZjMzXHU5ZjM0XHU5ZjM1XHU5ZjM2XHU5ZjM4XHU5ZjNhXHU5ZjNjXHU5ZjNmXHU5ZjQwXHU5ZjQxXHU5ZjQyXHU5ZjQzXHU5ZjQ1XHU5ZjQ2XHU5ZjQ3XHU5ZjQ4XHU5ZjQ5XHU5ZjRhXHU5ZjRiXHU5ZjRjXHU5ZjRkXHU5ZjRlXHU5ZjRmXHU5ZjUyXHU5'@; put 'ZjUzXHU5ZjU0XHU5ZjU1XHU5ZjU2XHU5ZjU3XHU5ZjU4XHU5ZjU5XHU5ZjVhXHU5ZjViXHU5ZjVjXHU5ZjVkXHU5ZjVlXHU5ZjVmXHU5ZjYwXHU5ZjYxXHU5ZjYyXHU5ZjYzXHU5ZjY0XHU5ZjY1XHU5ZjY2XHU5ZjY3XHU5ZjY4XHU5ZjY5XHU5ZjZhXHU5ZjZiXHU5ZjZjXHU5ZjZkXHU5ZjZl'@; put 'XHU5ZjZmXHU5ZjcwXHU5ZjcxXHU5ZjcyXHU5ZjczXHU5Zjc0XHU5Zjc1XHU5Zjc2XHU5Zjc3XHU5Zjc4XHVmZmZkXHU5Zjc5XHU5ZjdhXHU5ZjdiXHU5ZjdjXHU5ZjdkXHU5ZjdlXHU5ZjgxXHU5ZjgyXHU5ZjhkXHU5ZjhlXHU5ZjhmXHU5ZjkwXHU5ZjkxXHU5ZjkyXHU5ZjkzXHU5Zjk0XHU5'@; put 'Zjk1XHU5Zjk2XHU5Zjk3XHU5Zjk4XHU5ZjljXHU5ZjlkXHU5ZjllXHU5ZmExXHU5ZmEyXHU5ZmEzXHU5ZmE0XHU5ZmE1XHVmOTJjXHVmOTc5XHVmOTk1XHVmOWU3XHVmOWYxXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjUzXS5sZW5ndGg7KytwKTY1NTMzIT09X1syNTNdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjUzXVtwXV09NjQ3NjgrcCxiWzY0NzY4K3BdPV9bMjUzXVtwXSk7Zm9yKF9bMjU0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmYTBjXHVmYTBkXHVmYTBlXHVmYTBmXHVmYTExXHVmYTEzXHVmYTE0XHVmYTE4XHVmYTFmXHVmYTIwXHVmYTIxXHVmYTIzXHVmYTI0XHVmYTI3XHVmYTI4XHVmYTI5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjU0XS5sZW5ndGg7KytwKTY1NTMzIT09X1syNTRdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjU0XVtwXV09NjUwMjQrcCxiWzY1MDI0K3BdPV9bMjU0XVtwXSk7cmV0dXJue2VuYzpELGRlYzpifX0oKSxKWzk0OV09'@; put 'ZnVuY3Rpb24oKXt2YXIgcCxiPVtdLEQ9e30sXz1bXTtmb3IoX1swXT0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYn'@; put 'KCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1swXS5sZW5ndGg7KytwKTY1NTMzIT09X1swXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzBdW3BdXT0wK3AsYlswK3BdPV9bMF1bcF0pO2ZvcihfWzEyOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWMwMlx1YWMwM1x1YWMwNVx1YWMwNlx1YWMwYlx1YWMwY1x1YWMwZFx1YWMwZVx1YWMwZlx1YWMxOFx1YWMxZVx1YWMxZlx1YWMyMVx1YWMyMlx1YWMyM1x1YWMyNVx1YWMyNlx1YWMyN1x1YWMyOFx1YWMyOVx1YWMy'@; put 'YVx1YWMyYlx1YWMyZVx1YWMzMlx1YWMzM1x1YWMzNFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWMzNVx1YWMzNlx1YWMzN1x1YWMzYVx1YWMzYlx1YWMzZFx1YWMzZVx1YWMzZlx1YWM0MVx1YWM0Mlx1YWM0M1x1YWM0NFx1YWM0NVx1YWM0Nlx1YWM0N1x1YWM0OFx1'@; put 'YWM0OVx1YWM0YVx1YWM0Y1x1YWM0ZVx1YWM0Zlx1YWM1MFx1YWM1MVx1YWM1Mlx1YWM1M1x1YWM1NVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWM1Nlx1YWM1N1x1YWM1OVx1YWM1YVx1YWM1Ylx1YWM1ZFx1YWM1ZVx1YWM1Zlx1YWM2MFx1YWM2MVx1YWM2Mlx1YWM2'@; put 'M1x1YWM2NFx1YWM2NVx1YWM2Nlx1YWM2N1x1YWM2OFx1YWM2OVx1YWM2YVx1YWM2Ylx1YWM2Y1x1YWM2ZFx1YWM2ZVx1YWM2Zlx1YWM3Mlx1YWM3M1x1YWM3NVx1YWM3Nlx1YWM3OVx1YWM3Ylx1YWM3Y1x1YWM3ZFx1YWM3ZVx1YWM3Zlx1YWM4Mlx1YWM4N1x1YWM4OFx1YWM4ZFx1YWM4ZVx1'@; put 'YWM4Zlx1YWM5MVx1YWM5Mlx1YWM5M1x1YWM5NVx1YWM5Nlx1YWM5N1x1YWM5OFx1YWM5OVx1YWM5YVx1YWM5Ylx1YWM5ZVx1YWNhMlx1YWNhM1x1YWNhNFx1YWNhNVx1YWNhNlx1YWNhN1x1YWNhYlx1YWNhZFx1YWNhZVx1YWNiMVx1YWNiMlx1YWNiM1x1YWNiNFx1YWNiNVx1YWNiNlx1YWNi'@; put 'N1x1YWNiYVx1YWNiZVx1YWNiZlx1YWNjMFx1YWNjMlx1YWNjM1x1YWNjNVx1YWNjNlx1YWNjN1x1YWNjOVx1YWNjYVx1YWNjYlx1YWNjZFx1YWNjZVx1YWNjZlx1YWNkMFx1YWNkMVx1YWNkMlx1YWNkM1x1YWNkNFx1YWNkNlx1YWNkOFx1YWNkOVx1YWNkYVx1YWNkYlx1YWNkY1x1YWNkZFx1'@; put 'YWNkZVx1YWNkZlx1YWNlMlx1YWNlM1x1YWNlNVx1YWNlNlx1YWNlOVx1YWNlYlx1YWNlZFx1YWNlZVx1YWNmMlx1YWNmNFx1YWNmN1x1YWNmOFx1YWNmOVx1YWNmYVx1YWNmYlx1YWNmZVx1YWNmZlx1YWQwMVx1YWQwMlx1YWQwM1x1YWQwNVx1YWQwN1x1YWQwOFx1YWQwOVx1YWQwYVx1YWQw'@; put 'Ylx1YWQwZVx1YWQxMFx1YWQxMlx1YWQxM1x1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzEyOV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTI5XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzEyOV1bcF1dPTMzMDI0K3AsYlszMzAyNCtwXT1fWzEyOV1bcF0pO2ZvcihfWzEzMF09Ilx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWQxNFx1YWQxNVx1YWQxNlx1YWQxN1x1YWQxOVx1YWQxYVx1YWQxYlx1YWQxZFx1YWQxZVx1YWQxZlx1YWQyMVx1YWQyMlx1YWQyM1x1YWQyNFx1YWQyNVx1YWQyNlx1YWQyN1x1YWQyOFx1YWQy'@; put 'YVx1YWQyYlx1YWQyZVx1YWQyZlx1YWQzMFx1YWQzMVx1YWQzMlx1YWQzM1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWQzNlx1YWQzN1x1YWQzOVx1YWQzYVx1YWQzYlx1YWQzZFx1YWQzZVx1YWQzZlx1YWQ0MFx1YWQ0MVx1YWQ0Mlx1YWQ0M1x1YWQ0Nlx1YWQ0OFx1'@; put 'YWQ0YVx1YWQ0Ylx1YWQ0Y1x1YWQ0ZFx1YWQ0ZVx1YWQ0Zlx1YWQ1MVx1YWQ1Mlx1YWQ1M1x1YWQ1NVx1YWQ1Nlx1YWQ1N1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWQ1OVx1YWQ1YVx1YWQ1Ylx1YWQ1Y1x1YWQ1ZFx1YWQ1ZVx1YWQ1Zlx1YWQ2MFx1YWQ2Mlx1YWQ2'@; put 'NFx1YWQ2NVx1YWQ2Nlx1YWQ2N1x1YWQ2OFx1YWQ2OVx1YWQ2YVx1YWQ2Ylx1YWQ2ZVx1YWQ2Zlx1YWQ3MVx1YWQ3Mlx1YWQ3N1x1YWQ3OFx1YWQ3OVx1YWQ3YVx1YWQ3ZVx1YWQ4MFx1YWQ4M1x1YWQ4NFx1YWQ4NVx1YWQ4Nlx1YWQ4N1x1YWQ4YVx1YWQ4Ylx1YWQ4ZFx1YWQ4ZVx1YWQ4Zlx1'@; put 'YWQ5MVx1YWQ5Mlx1YWQ5M1x1YWQ5NFx1YWQ5NVx1YWQ5Nlx1YWQ5N1x1YWQ5OFx1YWQ5OVx1YWQ5YVx1YWQ5Ylx1YWQ5ZVx1YWQ5Zlx1YWRhMFx1YWRhMVx1YWRhMlx1YWRhM1x1YWRhNVx1YWRhNlx1YWRhN1x1YWRhOFx1YWRhOVx1YWRhYVx1YWRhYlx1YWRhY1x1YWRhZFx1YWRhZVx1YWRh'@; put 'Zlx1YWRiMFx1YWRiMVx1YWRiMlx1YWRiM1x1YWRiNFx1YWRiNVx1YWRiNlx1YWRiOFx1YWRiOVx1YWRiYVx1YWRiYlx1YWRiY1x1YWRiZFx1YWRiZVx1YWRiZlx1YWRjMlx1YWRjM1x1YWRjNVx1YWRjNlx1YWRjN1x1YWRjOVx1YWRjYVx1YWRjYlx1YWRjY1x1YWRjZFx1YWRjZVx1YWRjZlx1'@; put 'YWRkMlx1YWRkNFx1YWRkNVx1YWRkNlx1YWRkN1x1YWRkOFx1YWRkOVx1YWRkYVx1YWRkYlx1YWRkZFx1YWRkZVx1YWRkZlx1YWRlMVx1YWRlMlx1YWRlM1x1YWRlNVx1YWRlNlx1YWRlN1x1YWRlOFx1YWRlOVx1YWRlYVx1YWRlYlx1YWRlY1x1YWRlZFx1YWRlZVx1YWRlZlx1YWRmMFx1YWRm'@; put 'MVx1YWRmMlx1YWRmM1x1YWRmNFx1YWRmNVx1YWRmNlx1YWRmN1x1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzEzMF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTMwXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzEzMF1bcF1dPTMzMjgwK3AsYlszMzI4MCtwXT1fWzEzMF1bcF0pO2ZvcihfWzEz'@; put 'MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWRmYVx1YWRmYlx1YWRmZFx1YWRmZVx1YWUwMlx1YWUwM1x1YWUwNFx1YWUwNVx1YWUwNlx1YWUwN1x1YWUwYVx1YWUwY1x1YWUwZVx1YWUwZlx1YWUxMFx1YWUxMVx1YWUx'@; put 'Mlx1YWUxM1x1YWUxNVx1YWUxNlx1YWUxN1x1YWUxOFx1YWUxOVx1YWUxYVx1YWUxYlx1YWUxY1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWUxZFx1YWUxZVx1YWUxZlx1YWUyMFx1YWUyMVx1YWUyMlx1YWUyM1x1YWUyNFx1YWUyNVx1YWUyNlx1YWUyN1x1YWUyOFx1'@; put 'YWUyOVx1YWUyYVx1YWUyYlx1YWUyY1x1YWUyZFx1YWUyZVx1YWUyZlx1YWUzMlx1YWUzM1x1YWUzNVx1YWUzNlx1YWUzOVx1YWUzYlx1YWUzY1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWUzZFx1YWUzZVx1YWUzZlx1YWU0Mlx1YWU0NFx1YWU0N1x1YWU0OFx1YWU0'@; put 'OVx1YWU0Ylx1YWU0Zlx1YWU1MVx1YWU1Mlx1YWU1M1x1YWU1NVx1YWU1N1x1YWU1OFx1YWU1OVx1YWU1YVx1YWU1Ylx1YWU1ZVx1YWU2Mlx1YWU2M1x1YWU2NFx1YWU2Nlx1YWU2N1x1YWU2YVx1YWU2Ylx1YWU2ZFx1YWU2ZVx1YWU2Zlx1YWU3MVx1YWU3Mlx1YWU3M1x1YWU3NFx1YWU3NVx1'@; put 'YWU3Nlx1YWU3N1x1YWU3YVx1YWU3ZVx1YWU3Zlx1YWU4MFx1YWU4MVx1YWU4Mlx1YWU4M1x1YWU4Nlx1YWU4N1x1YWU4OFx1YWU4OVx1YWU4YVx1YWU4Ylx1YWU4ZFx1YWU4ZVx1YWU4Zlx1YWU5MFx1YWU5MVx1YWU5Mlx1YWU5M1x1YWU5NFx1YWU5NVx1YWU5Nlx1YWU5N1x1YWU5OFx1YWU5'@; put 'OVx1YWU5YVx1YWU5Ylx1YWU5Y1x1YWU5ZFx1YWU5ZVx1YWU5Zlx1YWVhMFx1YWVhMVx1YWVhMlx1YWVhM1x1YWVhNFx1YWVhNVx1YWVhNlx1YWVhN1x1YWVhOFx1YWVhOVx1YWVhYVx1YWVhYlx1YWVhY1x1YWVhZFx1YWVhZVx1YWVhZlx1YWViMFx1YWViMVx1YWViMlx1YWViM1x1YWViNFx1'@; put 'YWViNVx1YWViNlx1YWViN1x1YWViOFx1YWViOVx1YWViYVx1YWViYlx1YWViZlx1YWVjMVx1YWVjMlx1YWVjM1x1YWVjNVx1YWVjNlx1YWVjN1x1YWVjOFx1YWVjOVx1YWVjYVx1YWVjYlx1YWVjZVx1YWVkMlx1YWVkM1x1YWVkNFx1YWVkNVx1YWVkNlx1YWVkN1x1YWVkYVx1YWVkYlx1YWVk'@; put 'ZFx1YWVkZVx1YWVkZlx1YWVlMFx1YWVlMVx1YWVlMlx1YWVlM1x1YWVlNFx1YWVlNVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzEzMV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTMxXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzEzMV1bcF1dPTMzNTM2K3AsYlszMzUzNitwXT1fWzEzMV1b'@; put 'cF0pO2ZvcihfWzEzMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWVlNlx1YWVlN1x1YWVlOVx1YWVlYVx1YWVlY1x1YWVlZVx1YWVlZlx1YWVmMFx1YWVmMVx1YWVmMlx1YWVmM1x1YWVmNVx1YWVmNlx1YWVmN1x1YWVm'@; put 'OVx1YWVmYVx1YWVmYlx1YWVmZFx1YWVmZVx1YWVmZlx1YWYwMFx1YWYwMVx1YWYwMlx1YWYwM1x1YWYwNFx1YWYwNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWYwNlx1YWYwOVx1YWYwYVx1YWYwYlx1YWYwY1x1YWYwZVx1YWYwZlx1YWYxMVx1YWYxMlx1YWYxM1x1'@; put 'YWYxNFx1YWYxNVx1YWYxNlx1YWYxN1x1YWYxOFx1YWYxOVx1YWYxYVx1YWYxYlx1YWYxY1x1YWYxZFx1YWYxZVx1YWYxZlx1YWYyMFx1YWYyMVx1YWYyMlx1YWYyM1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWYyNFx1YWYyNVx1YWYyNlx1YWYyN1x1YWYyOFx1YWYy'@; put 'OVx1YWYyYVx1YWYyYlx1YWYyZVx1YWYyZlx1YWYzMVx1YWYzM1x1YWYzNVx1YWYzNlx1YWYzN1x1YWYzOFx1YWYzOVx1YWYzYVx1YWYzYlx1YWYzZVx1YWY0MFx1YWY0NFx1YWY0NVx1YWY0Nlx1YWY0N1x1YWY0YVx1YWY0Ylx1YWY0Y1x1YWY0ZFx1YWY0ZVx1YWY0Zlx1YWY1MVx1YWY1Mlx1'@; put 'YWY1M1x1YWY1NFx1YWY1NVx1YWY1Nlx1YWY1N1x1YWY1OFx1YWY1OVx1YWY1YVx1YWY1Ylx1YWY1ZVx1YWY1Zlx1YWY2MFx1YWY2MVx1YWY2Mlx1YWY2M1x1YWY2Nlx1YWY2N1x1YWY2OFx1YWY2OVx1YWY2YVx1YWY2Ylx1YWY2Y1x1YWY2ZFx1YWY2ZVx1YWY2Zlx1YWY3MFx1YWY3MVx1YWY3'@; put 'Mlx1YWY3M1x1YWY3NFx1YWY3NVx1YWY3Nlx1YWY3N1x1YWY3OFx1YWY3YVx1YWY3Ylx1YWY3Y1x1YWY3ZFx1YWY3ZVx1YWY3Zlx1YWY4MVx1YWY4Mlx1YWY4M1x1YWY4NVx1YWY4Nlx1YWY4N1x1YWY4OVx1YWY4YVx1YWY4Ylx1YWY4Y1x1YWY4ZFx1YWY4ZVx1YWY4Zlx1YWY5Mlx1YWY5M1x1'@; put 'YWY5NFx1YWY5Nlx1YWY5N1x1YWY5OFx1YWY5OVx1YWY5YVx1YWY5Ylx1YWY5ZFx1YWY5ZVx1YWY5Zlx1YWZhMFx1YWZhMVx1YWZhMlx1YWZhM1x1YWZhNFx1YWZhNVx1YWZhNlx1YWZhN1x1YWZhOFx1YWZhOVx1YWZhYVx1YWZhYlx1YWZhY1x1YWZhZFx1YWZhZVx1YWZhZlx1YWZiMFx1YWZi'@; put 'MVx1YWZiMlx1YWZiM1x1YWZiNFx1YWZiNVx1YWZiNlx1YWZiN1x1YWZiYVx1YWZiYlx1YWZiZFx1YWZiZVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzEzMl0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTMyXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzEzMl1bcF1dPTMzNzkyK3AsYlszMzc5'@; put 'MitwXT1fWzEzMl1bcF0pO2ZvcihfWzEzM109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWZiZlx1YWZjMVx1YWZjMlx1YWZjM1x1YWZjNFx1YWZjNVx1YWZjNlx1YWZjYVx1YWZjY1x1YWZjZlx1YWZkMFx1YWZkMVx1YWZk'@; put 'Mlx1YWZkM1x1YWZkNVx1YWZkNlx1YWZkN1x1YWZkOFx1YWZkOVx1YWZkYVx1YWZkYlx1YWZkZFx1YWZkZVx1YWZkZlx1YWZlMFx1YWZlMVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWZlMlx1YWZlM1x1YWZlNFx1YWZlNVx1YWZlNlx1YWZlN1x1YWZlYVx1YWZlYlx1'@; put 'YWZlY1x1YWZlZFx1YWZlZVx1YWZlZlx1YWZmMlx1YWZmM1x1YWZmNVx1YWZmNlx1YWZmN1x1YWZmOVx1YWZmYVx1YWZmYlx1YWZmY1x1YWZmZFx1YWZmZVx1YWZmZlx1YjAwMlx1YjAwM1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjAwNVx1YjAwNlx1YjAwN1x1YjAw'@; put 'OFx1YjAwOVx1YjAwYVx1YjAwYlx1YjAwZFx1YjAwZVx1YjAwZlx1YjAxMVx1YjAxMlx1YjAxM1x1YjAxNVx1YjAxNlx1YjAxN1x1YjAxOFx1YjAxOVx1YjAxYVx1YjAxYlx1YjAxZVx1YjAxZlx1YjAyMFx1YjAyMVx1YjAyMlx1YjAyM1x1YjAyNFx1YjAyNVx1YjAyNlx1YjAyN1x1YjAyOVx1'@; put 'YjAyYVx1YjAyYlx1YjAyY1x1YjAyZFx1YjAyZVx1YjAyZlx1YjAzMFx1YjAzMVx1YjAzMlx1YjAzM1x1YjAzNFx1YjAzNVx1YjAzNlx1YjAzN1x1YjAzOFx1YjAzOVx1YjAzYVx1YjAzYlx1YjAzY1x1YjAzZFx1YjAzZVx1YjAzZlx1YjA0MFx1YjA0MVx1YjA0Mlx1YjA0M1x1YjA0Nlx1YjA0'@; put 'N1x1YjA0OVx1YjA0Ylx1YjA0ZFx1YjA0Zlx1YjA1MFx1YjA1MVx1YjA1Mlx1YjA1Nlx1YjA1OFx1YjA1YVx1YjA1Ylx1YjA1Y1x1YjA1ZVx1YjA1Zlx1YjA2MFx1YjA2MVx1YjA2Mlx1YjA2M1x1YjA2NFx1YjA2NVx1YjA2Nlx1YjA2N1x1YjA2OFx1YjA2OVx1YjA2YVx1YjA2Ylx1YjA2Y1x1'@; put 'YjA2ZFx1YjA2ZVx1YjA2Zlx1YjA3MFx1YjA3MVx1YjA3Mlx1YjA3M1x1YjA3NFx1YjA3NVx1YjA3Nlx1YjA3N1x1YjA3OFx1YjA3OVx1YjA3YVx1YjA3Ylx1YjA3ZVx1YjA3Zlx1YjA4MVx1YjA4Mlx1YjA4M1x1YjA4NVx1YjA4Nlx1YjA4N1x1YjA4OFx1YjA4OVx1YjA4YVx1YjA4Ylx1YjA4'@; put 'ZVx1YjA5MFx1YjA5Mlx1YjA5M1x1YjA5NFx1YjA5NVx1YjA5Nlx1YjA5N1x1YjA5Ylx1YjA5ZFx1YjA5ZVx1YjBhM1x1YjBhNFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzEzM10ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTMzXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzEzM11bcF1dPTM0'@; put 'MDQ4K3AsYlszNDA0OCtwXT1fWzEzM11bcF0pO2ZvcihfWzEzNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjBhNVx1YjBhNlx1YjBhN1x1YjBhYVx1YjBiMFx1YjBiMlx1YjBiNlx1YjBiN1x1YjBiOVx1YjBiYVx1YjBi'@; put 'Ylx1YjBiZFx1YjBiZVx1YjBiZlx1YjBjMFx1YjBjMVx1YjBjMlx1YjBjM1x1YjBjNlx1YjBjYVx1YjBjYlx1YjBjY1x1YjBjZFx1YjBjZVx1YjBjZlx1YjBkMlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjBkM1x1YjBkNVx1YjBkNlx1YjBkN1x1YjBkOVx1YjBkYVx1'@; put 'YjBkYlx1YjBkY1x1YjBkZFx1YjBkZVx1YjBkZlx1YjBlMVx1YjBlMlx1YjBlM1x1YjBlNFx1YjBlNlx1YjBlN1x1YjBlOFx1YjBlOVx1YjBlYVx1YjBlYlx1YjBlY1x1YjBlZFx1YjBlZVx1YjBlZlx1YjBmMFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjBmMVx1YjBm'@; put 'Mlx1YjBmM1x1YjBmNFx1YjBmNVx1YjBmNlx1YjBmN1x1YjBmOFx1YjBmOVx1YjBmYVx1YjBmYlx1YjBmY1x1YjBmZFx1YjBmZVx1YjBmZlx1YjEwMFx1YjEwMVx1YjEwMlx1YjEwM1x1YjEwNFx1YjEwNVx1YjEwNlx1YjEwN1x1YjEwYVx1YjEwZFx1YjEwZVx1YjEwZlx1YjExMVx1YjExNFx1'@; put 'YjExNVx1YjExNlx1YjExN1x1YjExYVx1YjExZVx1YjExZlx1YjEyMFx1YjEyMVx1YjEyMlx1YjEyNlx1YjEyN1x1YjEyOVx1YjEyYVx1YjEyYlx1YjEyZFx1YjEyZVx1YjEyZlx1YjEzMFx1YjEzMVx1YjEzMlx1YjEzM1x1YjEzNlx1YjEzYVx1YjEzYlx1YjEzY1x1YjEzZFx1YjEzZVx1YjEz'@; put 'Zlx1YjE0Mlx1YjE0M1x1YjE0NVx1YjE0Nlx1YjE0N1x1YjE0OVx1YjE0YVx1YjE0Ylx1YjE0Y1x1YjE0ZFx1YjE0ZVx1YjE0Zlx1YjE1Mlx1YjE1M1x1YjE1Nlx1YjE1N1x1YjE1OVx1YjE1YVx1YjE1Ylx1YjE1ZFx1YjE1ZVx1YjE1Zlx1YjE2MVx1YjE2Mlx1YjE2M1x1YjE2NFx1YjE2NVx1'@; put 'YjE2Nlx1YjE2N1x1YjE2OFx1YjE2OVx1YjE2YVx1YjE2Ylx1YjE2Y1x1YjE2ZFx1YjE2ZVx1YjE2Zlx1YjE3MFx1YjE3MVx1YjE3Mlx1YjE3M1x1YjE3NFx1YjE3NVx1YjE3Nlx1YjE3N1x1YjE3YVx1YjE3Ylx1YjE3ZFx1YjE3ZVx1YjE3Zlx1YjE4MVx1YjE4M1x1YjE4NFx1YjE4NVx1YjE4'@; put 'Nlx1YjE4N1x1YjE4YVx1YjE4Y1x1YjE4ZVx1YjE4Zlx1YjE5MFx1YjE5MVx1YjE5NVx1YjE5Nlx1YjE5N1x1YjE5OVx1YjE5YVx1YjE5Ylx1YjE5ZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzEzNF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTM0XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtf'@; put 'WzEzNF1bcF1dPTM0MzA0K3AsYlszNDMwNCtwXT1fWzEzNF1bcF0pO2ZvcihfWzEzNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjE5ZVx1YjE5Zlx1YjFhMFx1YjFhMVx1YjFhMlx1YjFhM1x1YjFhNFx1YjFhNVx1YjFh'@; put 'Nlx1YjFhN1x1YjFhOVx1YjFhYVx1YjFhYlx1YjFhY1x1YjFhZFx1YjFhZVx1YjFhZlx1YjFiMFx1YjFiMVx1YjFiMlx1YjFiM1x1YjFiNFx1YjFiNVx1YjFiNlx1YjFiN1x1YjFiOFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjFiOVx1YjFiYVx1YjFiYlx1YjFiY1x1'@; put 'YjFiZFx1YjFiZVx1YjFiZlx1YjFjMFx1YjFjMVx1YjFjMlx1YjFjM1x1YjFjNFx1YjFjNVx1YjFjNlx1YjFjN1x1YjFjOFx1YjFjOVx1YjFjYVx1YjFjYlx1YjFjZFx1YjFjZVx1YjFjZlx1YjFkMVx1YjFkMlx1YjFkM1x1YjFkNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1YjFkNlx1YjFkN1x1YjFkOFx1YjFkOVx1YjFkYVx1YjFkYlx1YjFkZVx1YjFlMFx1YjFlMVx1YjFlMlx1YjFlM1x1YjFlNFx1YjFlNVx1YjFlNlx1YjFlN1x1YjFlYVx1YjFlYlx1YjFlZFx1YjFlZVx1YjFlZlx1YjFmMVx1YjFmMlx1YjFmM1x1YjFmNFx1YjFmNVx1YjFmNlx1YjFmN1x1'@; put 'YjFmOFx1YjFmYVx1YjFmY1x1YjFmZVx1YjFmZlx1YjIwMFx1YjIwMVx1YjIwMlx1YjIwM1x1YjIwNlx1YjIwN1x1YjIwOVx1YjIwYVx1YjIwZFx1YjIwZVx1YjIwZlx1YjIxMFx1YjIxMVx1YjIxMlx1YjIxM1x1YjIxNlx1YjIxOFx1YjIxYVx1YjIxYlx1YjIxY1x1YjIxZFx1YjIxZVx1YjIx'@; put 'Zlx1YjIyMVx1YjIyMlx1YjIyM1x1YjIyNFx1YjIyNVx1YjIyNlx1YjIyN1x1YjIyOFx1YjIyOVx1YjIyYVx1YjIyYlx1YjIyY1x1YjIyZFx1YjIyZVx1YjIyZlx1YjIzMFx1YjIzMVx1YjIzMlx1YjIzM1x1YjIzNVx1YjIzNlx1YjIzN1x1YjIzOFx1YjIzOVx1YjIzYVx1YjIzYlx1YjIzZFx1'@; put 'YjIzZVx1YjIzZlx1YjI0MFx1YjI0MVx1YjI0Mlx1YjI0M1x1YjI0NFx1YjI0NVx1YjI0Nlx1YjI0N1x1YjI0OFx1YjI0OVx1YjI0YVx1YjI0Ylx1YjI0Y1x1YjI0ZFx1YjI0ZVx1YjI0Zlx1YjI1MFx1YjI1MVx1YjI1Mlx1YjI1M1x1YjI1NFx1YjI1NVx1YjI1Nlx1YjI1N1x1YjI1OVx1YjI1'@; put 'YVx1YjI1Ylx1YjI1ZFx1YjI1ZVx1YjI1Zlx1YjI2MVx1YjI2Mlx1YjI2M1x1YjI2NFx1YjI2NVx1YjI2Nlx1YjI2N1x1YjI2YVx1YjI2Ylx1YjI2Y1x1YjI2ZFx1YjI2ZVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzEzNV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTM1XVtwXS5jaGFyQ29k'@; put 'ZUF0KDApJiYoRFtfWzEzNV1bcF1dPTM0NTYwK3AsYlszNDU2MCtwXT1fWzEzNV1bcF0pO2ZvcihfWzEzNl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjI2Zlx1YjI3MFx1YjI3MVx1YjI3Mlx1YjI3M1x1YjI3Nlx1YjI3'@; put 'N1x1YjI3OFx1YjI3OVx1YjI3YVx1YjI3Ylx1YjI3ZFx1YjI3ZVx1YjI3Zlx1YjI4MFx1YjI4MVx1YjI4Mlx1YjI4M1x1YjI4Nlx1YjI4N1x1YjI4OFx1YjI4YVx1YjI4Ylx1YjI4Y1x1YjI4ZFx1YjI4ZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjI4Zlx1YjI5Mlx1'@; put 'YjI5M1x1YjI5NVx1YjI5Nlx1YjI5N1x1YjI5Ylx1YjI5Y1x1YjI5ZFx1YjI5ZVx1YjI5Zlx1YjJhMlx1YjJhNFx1YjJhN1x1YjJhOFx1YjJhOVx1YjJhYlx1YjJhZFx1YjJhZVx1YjJhZlx1YjJiMVx1YjJiMlx1YjJiM1x1YjJiNVx1YjJiNlx1YjJiN1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1YjJiOFx1YjJiOVx1YjJiYVx1YjJiYlx1YjJiY1x1YjJiZFx1YjJiZVx1YjJiZlx1YjJjMFx1YjJjMVx1YjJjMlx1YjJjM1x1YjJjNFx1YjJjNVx1YjJjNlx1YjJjN1x1YjJjYVx1YjJjYlx1YjJjZFx1YjJjZVx1YjJjZlx1YjJkMVx1YjJkM1x1YjJkNFx1YjJkNVx1'@; put 'YjJkNlx1YjJkN1x1YjJkYVx1YjJkY1x1YjJkZVx1YjJkZlx1YjJlMFx1YjJlMVx1YjJlM1x1YjJlN1x1YjJlOVx1YjJlYVx1YjJmMFx1YjJmMVx1YjJmMlx1YjJmNlx1YjJmY1x1YjJmZFx1YjJmZVx1YjMwMlx1YjMwM1x1YjMwNVx1YjMwNlx1YjMwN1x1YjMwOVx1YjMwYVx1YjMwYlx1YjMw'@; put 'Y1x1YjMwZFx1YjMwZVx1YjMwZlx1YjMxMlx1YjMxNlx1YjMxN1x1YjMxOFx1YjMxOVx1YjMxYVx1YjMxYlx1YjMxZFx1YjMxZVx1YjMxZlx1YjMyMFx1YjMyMVx1YjMyMlx1YjMyM1x1YjMyNFx1YjMyNVx1YjMyNlx1YjMyN1x1YjMyOFx1YjMyOVx1YjMyYVx1YjMyYlx1YjMyY1x1YjMyZFx1'@; put 'YjMyZVx1YjMyZlx1YjMzMFx1YjMzMVx1YjMzMlx1YjMzM1x1YjMzNFx1YjMzNVx1YjMzNlx1YjMzN1x1YjMzOFx1YjMzOVx1YjMzYVx1YjMzYlx1YjMzY1x1YjMzZFx1YjMzZVx1YjMzZlx1YjM0MFx1YjM0MVx1YjM0Mlx1YjM0M1x1YjM0NFx1YjM0NVx1YjM0Nlx1YjM0N1x1YjM0OFx1YjM0'@; put 'OVx1YjM0YVx1YjM0Ylx1YjM0Y1x1YjM0ZFx1YjM0ZVx1YjM0Zlx1YjM1MFx1YjM1MVx1YjM1Mlx1YjM1M1x1YjM1N1x1YjM1OVx1YjM1YVx1YjM1ZFx1YjM2MFx1YjM2MVx1YjM2Mlx1YjM2M1x1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzEzNl0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTM2'@; put 'XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzEzNl1bcF1dPTM0ODE2K3AsYlszNDgxNitwXT1fWzEzNl1bcF0pO2ZvcihfWzEzN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjM2Nlx1YjM2OFx1YjM2YVx1YjM2Y1x1YjM2'@; put 'ZFx1YjM2Zlx1YjM3Mlx1YjM3M1x1YjM3NVx1YjM3Nlx1YjM3N1x1YjM3OVx1YjM3YVx1YjM3Ylx1YjM3Y1x1YjM3ZFx1YjM3ZVx1YjM3Zlx1YjM4Mlx1YjM4Nlx1YjM4N1x1YjM4OFx1YjM4OVx1YjM4YVx1YjM4Ylx1YjM4ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'YjM4ZVx1YjM4Zlx1YjM5MVx1YjM5Mlx1YjM5M1x1YjM5NVx1YjM5Nlx1YjM5N1x1YjM5OFx1YjM5OVx1YjM5YVx1YjM5Ylx1YjM5Y1x1YjM5ZFx1YjM5ZVx1YjM5Zlx1YjNhMlx1YjNhM1x1YjNhNFx1YjNhNVx1YjNhNlx1YjNhN1x1YjNhOVx1YjNhYVx1YjNhYlx1YjNhZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjNhZVx1YjNhZlx1YjNiMFx1YjNiMVx1YjNiMlx1YjNiM1x1YjNiNFx1YjNiNVx1YjNiNlx1YjNiN1x1YjNiOFx1YjNiOVx1YjNiYVx1YjNiYlx1YjNiY1x1YjNiZFx1YjNiZVx1YjNiZlx1YjNjMFx1YjNjMVx1YjNjMlx1YjNjM1x1YjNjNlx1'@; put 'YjNjN1x1YjNjOVx1YjNjYVx1YjNjZFx1YjNjZlx1YjNkMVx1YjNkMlx1YjNkM1x1YjNkNlx1YjNkOFx1YjNkYVx1YjNkY1x1YjNkZVx1YjNkZlx1YjNlMVx1YjNlMlx1YjNlM1x1YjNlNVx1YjNlNlx1YjNlN1x1YjNlOVx1YjNlYVx1YjNlYlx1YjNlY1x1YjNlZFx1YjNlZVx1YjNlZlx1YjNm'@; put 'MFx1YjNmMVx1YjNmMlx1YjNmM1x1YjNmNFx1YjNmNVx1YjNmNlx1YjNmN1x1YjNmOFx1YjNmOVx1YjNmYVx1YjNmYlx1YjNmZFx1YjNmZVx1YjNmZlx1YjQwMFx1YjQwMVx1YjQwMlx1YjQwM1x1YjQwNFx1YjQwNVx1YjQwNlx1YjQwN1x1YjQwOFx1YjQwOVx1YjQwYVx1YjQwYlx1YjQwY1x1'@; put 'YjQwZFx1YjQwZVx1YjQwZlx1YjQxMVx1YjQxMlx1YjQxM1x1YjQxNFx1YjQxNVx1YjQxNlx1YjQxN1x1YjQxOVx1YjQxYVx1YjQxYlx1YjQxZFx1YjQxZVx1YjQxZlx1YjQyMVx1YjQyMlx1YjQyM1x1YjQyNFx1YjQyNVx1YjQyNlx1YjQyN1x1YjQyYVx1YjQyY1x1YjQyZFx1YjQyZVx1YjQy'@; put 'Zlx1YjQzMFx1YjQzMVx1YjQzMlx1YjQzM1x1YjQzNVx1YjQzNlx1YjQzN1x1YjQzOFx1YjQzOVx1YjQzYVx1YjQzYlx1YjQzY1x1YjQzZFx1YjQzZVx1YjQzZlx1YjQ0MFx1YjQ0MVx1YjQ0Mlx1YjQ0M1x1YjQ0NFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzEzN10ubGVuZ3RoOysrcCk2'@; put 'NTUzMyE9PV9bMTM3XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzEzN11bcF1dPTM1MDcyK3AsYlszNTA3MitwXT1fWzEzN11bcF0pO2ZvcihfWzEzOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjQ0NVx1YjQ0Nlx1YjQ0'@; put 'N1x1YjQ0OFx1YjQ0OVx1YjQ0YVx1YjQ0Ylx1YjQ0Y1x1YjQ0ZFx1YjQ0ZVx1YjQ0Zlx1YjQ1Mlx1YjQ1M1x1YjQ1NVx1YjQ1Nlx1YjQ1N1x1YjQ1OVx1YjQ1YVx1YjQ1Ylx1YjQ1Y1x1YjQ1ZFx1YjQ1ZVx1YjQ1Zlx1YjQ2Mlx1YjQ2NFx1YjQ2Nlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1YjQ2N1x1YjQ2OFx1YjQ2OVx1YjQ2YVx1YjQ2Ylx1YjQ2ZFx1YjQ2ZVx1YjQ2Zlx1YjQ3MFx1YjQ3MVx1YjQ3Mlx1YjQ3M1x1YjQ3NFx1YjQ3NVx1YjQ3Nlx1YjQ3N1x1YjQ3OFx1YjQ3OVx1YjQ3YVx1YjQ3Ylx1YjQ3Y1x1YjQ3ZFx1YjQ3ZVx1YjQ3Zlx1YjQ4MVx1YjQ4'@; put 'Mlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjQ4M1x1YjQ4NFx1YjQ4NVx1YjQ4Nlx1YjQ4N1x1YjQ4OVx1YjQ4YVx1YjQ4Ylx1YjQ4Y1x1YjQ4ZFx1YjQ4ZVx1YjQ4Zlx1YjQ5MFx1YjQ5MVx1YjQ5Mlx1YjQ5M1x1YjQ5NFx1YjQ5NVx1YjQ5Nlx1YjQ5N1x1YjQ5OFx1'@; put 'YjQ5OVx1YjQ5YVx1YjQ5Ylx1YjQ5Y1x1YjQ5ZVx1YjQ5Zlx1YjRhMFx1YjRhMVx1YjRhMlx1YjRhM1x1YjRhNVx1YjRhNlx1YjRhN1x1YjRhOVx1YjRhYVx1YjRhYlx1YjRhZFx1YjRhZVx1YjRhZlx1YjRiMFx1YjRiMVx1YjRiMlx1YjRiM1x1YjRiNFx1YjRiNlx1YjRiOFx1YjRiYVx1YjRi'@; put 'Ylx1YjRiY1x1YjRiZFx1YjRiZVx1YjRiZlx1YjRjMVx1YjRjMlx1YjRjM1x1YjRjNVx1YjRjNlx1YjRjN1x1YjRjOVx1YjRjYVx1YjRjYlx1YjRjY1x1YjRjZFx1YjRjZVx1YjRjZlx1YjRkMVx1YjRkMlx1YjRkM1x1YjRkNFx1YjRkNlx1YjRkN1x1YjRkOFx1YjRkOVx1YjRkYVx1YjRkYlx1'@; put 'YjRkZVx1YjRkZlx1YjRlMVx1YjRlMlx1YjRlNVx1YjRlN1x1YjRlOFx1YjRlOVx1YjRlYVx1YjRlYlx1YjRlZVx1YjRmMFx1YjRmMlx1YjRmM1x1YjRmNFx1YjRmNVx1YjRmNlx1YjRmN1x1YjRmOVx1YjRmYVx1YjRmYlx1YjRmY1x1YjRmZFx1YjRmZVx1YjRmZlx1YjUwMFx1YjUwMVx1YjUw'@; put 'Mlx1YjUwM1x1YjUwNFx1YjUwNVx1YjUwNlx1YjUwN1x1YjUwOFx1YjUwOVx1YjUwYVx1YjUwYlx1YjUwY1x1YjUwZFx1YjUwZVx1YjUwZlx1YjUxMFx1YjUxMVx1YjUxMlx1YjUxM1x1YjUxNlx1YjUxN1x1YjUxOVx1YjUxYVx1YjUxZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzEzOF0u'@; put 'bGVuZ3RoOysrcCk2NTUzMyE9PV9bMTM4XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzEzOF1bcF1dPTM1MzI4K3AsYlszNTMyOCtwXT1fWzEzOF1bcF0pO2ZvcihfWzEzOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjUx'@; put 'ZVx1YjUxZlx1YjUyMFx1YjUyMVx1YjUyMlx1YjUyM1x1YjUyNlx1YjUyYlx1YjUyY1x1YjUyZFx1YjUyZVx1YjUyZlx1YjUzMlx1YjUzM1x1YjUzNVx1YjUzNlx1YjUzN1x1YjUzOVx1YjUzYVx1YjUzYlx1YjUzY1x1YjUzZFx1YjUzZVx1YjUzZlx1YjU0Mlx1YjU0Nlx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjU0N1x1YjU0OFx1YjU0OVx1YjU0YVx1YjU0ZVx1YjU0Zlx1YjU1MVx1YjU1Mlx1YjU1M1x1YjU1NVx1YjU1Nlx1YjU1N1x1YjU1OFx1YjU1OVx1YjU1YVx1YjU1Ylx1YjU1ZVx1YjU2Mlx1YjU2M1x1YjU2NFx1YjU2NVx1YjU2Nlx1YjU2N1x1YjU2'@; put 'OFx1YjU2OVx1YjU2YVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjU2Ylx1YjU2Y1x1YjU2ZFx1YjU2ZVx1YjU2Zlx1YjU3MFx1YjU3MVx1YjU3Mlx1YjU3M1x1YjU3NFx1YjU3NVx1YjU3Nlx1YjU3N1x1YjU3OFx1YjU3OVx1YjU3YVx1YjU3Ylx1YjU3Y1x1YjU3ZFx1'@; put 'YjU3ZVx1YjU3Zlx1YjU4MFx1YjU4MVx1YjU4Mlx1YjU4M1x1YjU4NFx1YjU4NVx1YjU4Nlx1YjU4N1x1YjU4OFx1YjU4OVx1YjU4YVx1YjU4Ylx1YjU4Y1x1YjU4ZFx1YjU4ZVx1YjU4Zlx1YjU5MFx1YjU5MVx1YjU5Mlx1YjU5M1x1YjU5NFx1YjU5NVx1YjU5Nlx1YjU5N1x1YjU5OFx1YjU5'@; put 'OVx1YjU5YVx1YjU5Ylx1YjU5Y1x1YjU5ZFx1YjU5ZVx1YjU5Zlx1YjVhMlx1YjVhM1x1YjVhNVx1YjVhNlx1YjVhN1x1YjVhOVx1YjVhY1x1YjVhZFx1YjVhZVx1YjVhZlx1YjViMlx1YjViNlx1YjViN1x1YjViOFx1YjViOVx1YjViYVx1YjViZVx1YjViZlx1YjVjMVx1YjVjMlx1YjVjM1x1'@; put 'YjVjNVx1YjVjNlx1YjVjN1x1YjVjOFx1YjVjOVx1YjVjYVx1YjVjYlx1YjVjZVx1YjVkMlx1YjVkM1x1YjVkNFx1YjVkNVx1YjVkNlx1YjVkN1x1YjVkOVx1YjVkYVx1YjVkYlx1YjVkY1x1YjVkZFx1YjVkZVx1YjVkZlx1YjVlMFx1YjVlMVx1YjVlMlx1YjVlM1x1YjVlNFx1YjVlNVx1YjVl'@; put 'Nlx1YjVlN1x1YjVlOFx1YjVlOVx1YjVlYVx1YjVlYlx1YjVlZFx1YjVlZVx1YjVlZlx1YjVmMFx1YjVmMVx1YjVmMlx1YjVmM1x1YjVmNFx1YjVmNVx1YjVmNlx1YjVmN1x1YjVmOFx1YjVmOVx1YjVmYVx1YjVmYlx1YjVmY1x1YjVmZFx1YjVmZVx1YjVmZlx1ZmZmZCIuc3BsaXQoIiIpLHA9'@; put 'MDtwIT1fWzEzOV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTM5XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzEzOV1bcF1dPTM1NTg0K3AsYlszNTU4NCtwXT1fWzEzOV1bcF0pO2ZvcihfWzE0MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1YjYwMFx1YjYwMVx1YjYwMlx1YjYwM1x1YjYwNFx1YjYwNVx1YjYwNlx1YjYwN1x1YjYwOFx1YjYwOVx1YjYwYVx1YjYwYlx1YjYwY1x1YjYwZFx1YjYwZVx1YjYwZlx1YjYxMlx1YjYxM1x1YjYxNVx1YjYxNlx1YjYxN1x1YjYxOVx1YjYxYVx1YjYxYlx1YjYxY1x1YjYxZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjYxZVx1YjYxZlx1YjYyMFx1YjYyMVx1YjYyMlx1YjYyM1x1YjYyNFx1YjYyNlx1YjYyN1x1YjYyOFx1YjYyOVx1YjYyYVx1YjYyYlx1YjYyZFx1YjYyZVx1YjYyZlx1YjYzMFx1YjYzMVx1YjYzMlx1YjYzM1x1YjYzNVx1YjYz'@; put 'Nlx1YjYzN1x1YjYzOFx1YjYzOVx1YjYzYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjYzYlx1YjYzY1x1YjYzZFx1YjYzZVx1YjYzZlx1YjY0MFx1YjY0MVx1YjY0Mlx1YjY0M1x1YjY0NFx1YjY0NVx1YjY0Nlx1YjY0N1x1YjY0OVx1YjY0YVx1YjY0Ylx1YjY0Y1x1'@; put 'YjY0ZFx1YjY0ZVx1YjY0Zlx1YjY1MFx1YjY1MVx1YjY1Mlx1YjY1M1x1YjY1NFx1YjY1NVx1YjY1Nlx1YjY1N1x1YjY1OFx1YjY1OVx1YjY1YVx1YjY1Ylx1YjY1Y1x1YjY1ZFx1YjY1ZVx1YjY1Zlx1YjY2MFx1YjY2MVx1YjY2Mlx1YjY2M1x1YjY2NVx1YjY2Nlx1YjY2N1x1YjY2OVx1YjY2'@; put 'YVx1YjY2Ylx1YjY2Y1x1YjY2ZFx1YjY2ZVx1YjY2Zlx1YjY3MFx1YjY3MVx1YjY3Mlx1YjY3M1x1YjY3NFx1YjY3NVx1YjY3Nlx1YjY3N1x1YjY3OFx1YjY3OVx1YjY3YVx1YjY3Ylx1YjY3Y1x1YjY3ZFx1YjY3ZVx1YjY3Zlx1YjY4MFx1YjY4MVx1YjY4Mlx1YjY4M1x1YjY4NFx1YjY4NVx1'@; put 'YjY4Nlx1YjY4N1x1YjY4OFx1YjY4OVx1YjY4YVx1YjY4Ylx1YjY4Y1x1YjY4ZFx1YjY4ZVx1YjY4Zlx1YjY5MFx1YjY5MVx1YjY5Mlx1YjY5M1x1YjY5NFx1YjY5NVx1YjY5Nlx1YjY5N1x1YjY5OFx1YjY5OVx1YjY5YVx1YjY5Ylx1YjY5ZVx1YjY5Zlx1YjZhMVx1YjZhMlx1YjZhM1x1YjZh'@; put 'NVx1YjZhNlx1YjZhN1x1YjZhOFx1YjZhOVx1YjZhYVx1YjZhZFx1YjZhZVx1YjZhZlx1YjZiMFx1YjZiMlx1YjZiM1x1YjZiNFx1YjZiNVx1YjZiNlx1YjZiN1x1YjZiOFx1YjZiOVx1YjZiYVx1YjZiYlx1YjZiY1x1YjZiZFx1YjZiZVx1YjZiZlx1YjZjMFx1YjZjMVx1YjZjMlx1ZmZmZCIu'@; put 'c3BsaXQoIiIpLHA9MDtwIT1fWzE0MF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTQwXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE0MF1bcF1dPTM1ODQwK3AsYlszNTg0MCtwXT1fWzE0MF1bcF0pO2ZvcihfWzE0MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjZjM1x1YjZjNFx1YjZjNVx1YjZjNlx1YjZjN1x1YjZjOFx1YjZjOVx1YjZjYVx1YjZjYlx1YjZjY1x1YjZjZFx1YjZjZVx1YjZjZlx1YjZkMFx1YjZkMVx1YjZkMlx1YjZkM1x1YjZkNVx1YjZkNlx1YjZkN1x1YjZkOFx1YjZkOVx1YjZkYVx1YjZkYlx1'@; put 'YjZkY1x1YjZkZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjZkZVx1YjZkZlx1YjZlMFx1YjZlMVx1YjZlMlx1YjZlM1x1YjZlNFx1YjZlNVx1YjZlNlx1YjZlN1x1YjZlOFx1YjZlOVx1YjZlYVx1YjZlYlx1YjZlY1x1YjZlZFx1YjZlZVx1YjZlZlx1YjZmMVx1YjZm'@; put 'Mlx1YjZmM1x1YjZmNVx1YjZmNlx1YjZmN1x1YjZmOVx1YjZmYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjZmYlx1YjZmY1x1YjZmZFx1YjZmZVx1YjZmZlx1YjcwMlx1YjcwM1x1YjcwNFx1YjcwNlx1YjcwN1x1YjcwOFx1YjcwOVx1YjcwYVx1YjcwYlx1YjcwY1x1'@; put 'YjcwZFx1YjcwZVx1YjcwZlx1YjcxMFx1YjcxMVx1YjcxMlx1YjcxM1x1YjcxNFx1YjcxNVx1YjcxNlx1YjcxN1x1YjcxOFx1YjcxOVx1YjcxYVx1YjcxYlx1YjcxY1x1YjcxZFx1YjcxZVx1YjcxZlx1YjcyMFx1YjcyMVx1YjcyMlx1YjcyM1x1YjcyNFx1YjcyNVx1YjcyNlx1YjcyN1x1Yjcy'@; put 'YVx1YjcyYlx1YjcyZFx1YjcyZVx1YjczMVx1YjczMlx1YjczM1x1YjczNFx1YjczNVx1YjczNlx1YjczN1x1YjczYVx1YjczY1x1YjczZFx1YjczZVx1YjczZlx1Yjc0MFx1Yjc0MVx1Yjc0Mlx1Yjc0M1x1Yjc0NVx1Yjc0Nlx1Yjc0N1x1Yjc0OVx1Yjc0YVx1Yjc0Ylx1Yjc0ZFx1Yjc0ZVx1'@; put 'Yjc0Zlx1Yjc1MFx1Yjc1MVx1Yjc1Mlx1Yjc1M1x1Yjc1Nlx1Yjc1N1x1Yjc1OFx1Yjc1OVx1Yjc1YVx1Yjc1Ylx1Yjc1Y1x1Yjc1ZFx1Yjc1ZVx1Yjc1Zlx1Yjc2MVx1Yjc2Mlx1Yjc2M1x1Yjc2NVx1Yjc2Nlx1Yjc2N1x1Yjc2OVx1Yjc2YVx1Yjc2Ylx1Yjc2Y1x1Yjc2ZFx1Yjc2ZVx1Yjc2'@; put 'Zlx1Yjc3Mlx1Yjc3NFx1Yjc3Nlx1Yjc3N1x1Yjc3OFx1Yjc3OVx1Yjc3YVx1Yjc3Ylx1Yjc3ZVx1Yjc3Zlx1Yjc4MVx1Yjc4Mlx1Yjc4M1x1Yjc4NVx1Yjc4Nlx1Yjc4N1x1Yjc4OFx1Yjc4OVx1Yjc4YVx1Yjc4Ylx1Yjc4ZVx1Yjc5M1x1Yjc5NFx1Yjc5NVx1Yjc5YVx1Yjc5Ylx1Yjc5ZFx1'@; put 'Yjc5ZVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE0MV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTQxXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE0MV1bcF1dPTM2MDk2K3AsYlszNjA5NitwXT1fWzE0MV1bcF0pO2ZvcihfWzE0Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Yjc5Zlx1YjdhMVx1YjdhMlx1YjdhM1x1YjdhNFx1YjdhNVx1YjdhNlx1YjdhN1x1YjdhYVx1YjdhZVx1YjdhZlx1YjdiMFx1YjdiMVx1YjdiMlx1YjdiM1x1YjdiNlx1YjdiN1x1YjdiOVx1YjdiYVx1YjdiYlx1YjdiY1x1YjdiZFx1'@; put 'YjdiZVx1YjdiZlx1YjdjMFx1YjdjMVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjdjMlx1YjdjM1x1YjdjNFx1YjdjNVx1YjdjNlx1YjdjOFx1YjdjYVx1YjdjYlx1YjdjY1x1YjdjZFx1YjdjZVx1YjdjZlx1YjdkMFx1YjdkMVx1YjdkMlx1YjdkM1x1YjdkNFx1Yjdk'@; put 'NVx1YjdkNlx1YjdkN1x1YjdkOFx1YjdkOVx1YjdkYVx1YjdkYlx1YjdkY1x1YjdkZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjdkZVx1YjdkZlx1YjdlMFx1YjdlMVx1YjdlMlx1YjdlM1x1YjdlNFx1YjdlNVx1YjdlNlx1YjdlN1x1YjdlOFx1YjdlOVx1YjdlYVx1'@; put 'YjdlYlx1YjdlZVx1YjdlZlx1YjdmMVx1YjdmMlx1YjdmM1x1YjdmNVx1YjdmNlx1YjdmN1x1YjdmOFx1YjdmOVx1YjdmYVx1YjdmYlx1YjdmZVx1YjgwMlx1YjgwM1x1YjgwNFx1YjgwNVx1YjgwNlx1YjgwYVx1YjgwYlx1YjgwZFx1YjgwZVx1YjgwZlx1YjgxMVx1YjgxMlx1YjgxM1x1Yjgx'@; put 'NFx1YjgxNVx1YjgxNlx1YjgxN1x1YjgxYVx1YjgxY1x1YjgxZVx1YjgxZlx1YjgyMFx1YjgyMVx1YjgyMlx1YjgyM1x1YjgyNlx1YjgyN1x1YjgyOVx1YjgyYVx1YjgyYlx1YjgyZFx1YjgyZVx1YjgyZlx1YjgzMFx1YjgzMVx1YjgzMlx1YjgzM1x1YjgzNlx1YjgzYVx1YjgzYlx1YjgzY1x1'@; put 'YjgzZFx1YjgzZVx1YjgzZlx1Yjg0MVx1Yjg0Mlx1Yjg0M1x1Yjg0NVx1Yjg0Nlx1Yjg0N1x1Yjg0OFx1Yjg0OVx1Yjg0YVx1Yjg0Ylx1Yjg0Y1x1Yjg0ZFx1Yjg0ZVx1Yjg0Zlx1Yjg1MFx1Yjg1Mlx1Yjg1NFx1Yjg1NVx1Yjg1Nlx1Yjg1N1x1Yjg1OFx1Yjg1OVx1Yjg1YVx1Yjg1Ylx1Yjg1'@; put 'ZVx1Yjg1Zlx1Yjg2MVx1Yjg2Mlx1Yjg2M1x1Yjg2NVx1Yjg2Nlx1Yjg2N1x1Yjg2OFx1Yjg2OVx1Yjg2YVx1Yjg2Ylx1Yjg2ZVx1Yjg3MFx1Yjg3Mlx1Yjg3M1x1Yjg3NFx1Yjg3NVx1Yjg3Nlx1Yjg3N1x1Yjg3OVx1Yjg3YVx1Yjg3Ylx1Yjg3ZFx1Yjg3ZVx1Yjg3Zlx1Yjg4MFx1Yjg4MVx1'@; put 'Yjg4Mlx1Yjg4M1x1Yjg4NFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE0Ml0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTQyXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE0Ml1bcF1dPTM2MzUyK3AsYlszNjM1MitwXT1fWzE0Ml1bcF0pO2ZvcihfWzE0M109Ilx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Yjg4NVx1Yjg4Nlx1Yjg4N1x1Yjg4OFx1Yjg4OVx1Yjg4YVx1Yjg4Ylx1Yjg4Y1x1Yjg4ZVx1Yjg4Zlx1Yjg5MFx1Yjg5MVx1Yjg5Mlx1Yjg5M1x1Yjg5NFx1Yjg5NVx1Yjg5Nlx1Yjg5N1x1Yjg5OFx1Yjg5OVx1'@; put 'Yjg5YVx1Yjg5Ylx1Yjg5Y1x1Yjg5ZFx1Yjg5ZVx1Yjg5Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjhhMFx1YjhhMVx1YjhhMlx1YjhhM1x1YjhhNFx1YjhhNVx1YjhhNlx1YjhhN1x1YjhhOVx1YjhhYVx1YjhhYlx1YjhhY1x1YjhhZFx1YjhhZVx1YjhhZlx1Yjhi'@; put 'MVx1YjhiMlx1YjhiM1x1YjhiNVx1YjhiNlx1YjhiN1x1YjhiOVx1YjhiYVx1YjhiYlx1YjhiY1x1YjhiZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjhiZVx1YjhiZlx1YjhjMlx1YjhjNFx1YjhjNlx1YjhjN1x1YjhjOFx1YjhjOVx1YjhjYVx1YjhjYlx1YjhjZFx1'@; put 'YjhjZVx1YjhjZlx1YjhkMVx1YjhkMlx1YjhkM1x1YjhkNVx1YjhkNlx1YjhkN1x1YjhkOFx1YjhkOVx1YjhkYVx1YjhkYlx1YjhkY1x1YjhkZVx1YjhlMFx1YjhlMlx1YjhlM1x1YjhlNFx1YjhlNVx1YjhlNlx1YjhlN1x1YjhlYVx1YjhlYlx1YjhlZFx1YjhlZVx1YjhlZlx1YjhmMVx1Yjhm'@; put 'Mlx1YjhmM1x1YjhmNFx1YjhmNVx1YjhmNlx1YjhmN1x1YjhmYVx1YjhmY1x1YjhmZVx1YjhmZlx1YjkwMFx1YjkwMVx1YjkwMlx1YjkwM1x1YjkwNVx1YjkwNlx1YjkwN1x1YjkwOFx1YjkwOVx1YjkwYVx1YjkwYlx1YjkwY1x1YjkwZFx1YjkwZVx1YjkwZlx1YjkxMFx1YjkxMVx1YjkxMlx1'@; put 'YjkxM1x1YjkxNFx1YjkxNVx1YjkxNlx1YjkxN1x1YjkxOVx1YjkxYVx1YjkxYlx1YjkxY1x1YjkxZFx1YjkxZVx1YjkxZlx1YjkyMVx1YjkyMlx1YjkyM1x1YjkyNFx1YjkyNVx1YjkyNlx1YjkyN1x1YjkyOFx1YjkyOVx1YjkyYVx1YjkyYlx1YjkyY1x1YjkyZFx1YjkyZVx1YjkyZlx1Yjkz'@; put 'MFx1YjkzMVx1YjkzMlx1YjkzM1x1YjkzNFx1YjkzNVx1YjkzNlx1YjkzN1x1YjkzOFx1YjkzOVx1YjkzYVx1YjkzYlx1YjkzZVx1YjkzZlx1Yjk0MVx1Yjk0Mlx1Yjk0M1x1Yjk0NVx1Yjk0Nlx1Yjk0N1x1Yjk0OFx1Yjk0OVx1Yjk0YVx1Yjk0Ylx1Yjk0ZFx1Yjk0ZVx1Yjk1MFx1Yjk1Mlx1'@; put 'Yjk1M1x1Yjk1NFx1Yjk1NVx1Yjk1Nlx1Yjk1N1x1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE0M10ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTQzXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE0M11bcF1dPTM2NjA4K3AsYlszNjYwOCtwXT1fWzE0M11bcF0pO2ZvcihfWzE0NF09Ilx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Yjk1YVx1Yjk1Ylx1Yjk1ZFx1Yjk1ZVx1Yjk1Zlx1Yjk2MVx1Yjk2Mlx1Yjk2M1x1Yjk2NFx1Yjk2NVx1Yjk2Nlx1Yjk2N1x1Yjk2YVx1Yjk2Y1x1Yjk2ZVx1Yjk2Zlx1Yjk3MFx1Yjk3MVx1'@; put 'Yjk3Mlx1Yjk3M1x1Yjk3Nlx1Yjk3N1x1Yjk3OVx1Yjk3YVx1Yjk3Ylx1Yjk3ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Yjk3ZVx1Yjk3Zlx1Yjk4MFx1Yjk4MVx1Yjk4Mlx1Yjk4M1x1Yjk4Nlx1Yjk4OFx1Yjk4Ylx1Yjk4Y1x1Yjk4Zlx1Yjk5MFx1Yjk5MVx1Yjk5'@; put 'Mlx1Yjk5M1x1Yjk5NFx1Yjk5NVx1Yjk5Nlx1Yjk5N1x1Yjk5OFx1Yjk5OVx1Yjk5YVx1Yjk5Ylx1Yjk5Y1x1Yjk5ZFx1Yjk5ZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Yjk5Zlx1YjlhMFx1YjlhMVx1YjlhMlx1YjlhM1x1YjlhNFx1YjlhNVx1YjlhNlx1YjlhN1x1'@; put 'YjlhOFx1YjlhOVx1YjlhYVx1YjlhYlx1YjlhZVx1YjlhZlx1YjliMVx1YjliMlx1YjliM1x1YjliNVx1YjliNlx1YjliN1x1YjliOFx1YjliOVx1YjliYVx1YjliYlx1YjliZVx1YjljMFx1YjljMlx1YjljM1x1YjljNFx1YjljNVx1YjljNlx1YjljN1x1YjljYVx1YjljYlx1YjljZFx1Yjlk'@; put 'M1x1YjlkNFx1YjlkNVx1YjlkNlx1YjlkN1x1YjlkYVx1YjlkY1x1YjlkZlx1YjllMFx1YjllMlx1YjllNlx1YjllN1x1YjllOVx1YjllYVx1YjllYlx1YjllZFx1YjllZVx1YjllZlx1YjlmMFx1YjlmMVx1YjlmMlx1YjlmM1x1YjlmNlx1YjlmYlx1YjlmY1x1YjlmZFx1YjlmZVx1YjlmZlx1'@; put 'YmEwMlx1YmEwM1x1YmEwNFx1YmEwNVx1YmEwNlx1YmEwN1x1YmEwOVx1YmEwYVx1YmEwYlx1YmEwY1x1YmEwZFx1YmEwZVx1YmEwZlx1YmExMFx1YmExMVx1YmExMlx1YmExM1x1YmExNFx1YmExNlx1YmExN1x1YmExOFx1YmExOVx1YmExYVx1YmExYlx1YmExY1x1YmExZFx1YmExZVx1YmEx'@; put 'Zlx1YmEyMFx1YmEyMVx1YmEyMlx1YmEyM1x1YmEyNFx1YmEyNVx1YmEyNlx1YmEyN1x1YmEyOFx1YmEyOVx1YmEyYVx1YmEyYlx1YmEyY1x1YmEyZFx1YmEyZVx1YmEyZlx1YmEzMFx1YmEzMVx1YmEzMlx1YmEzM1x1YmEzNFx1YmEzNVx1YmEzNlx1YmEzN1x1YmEzYVx1YmEzYlx1YmEzZFx1'@; put 'YmEzZVx1YmEzZlx1YmE0MVx1YmE0M1x1YmE0NFx1YmE0NVx1YmE0Nlx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE0NF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTQ0XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE0NF1bcF1dPTM2ODY0K3AsYlszNjg2NCtwXT1fWzE0NF1bcF0pO2Zvcihf'@; put 'WzE0NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmE0N1x1YmE0YVx1YmE0Y1x1YmE0Zlx1YmE1MFx1YmE1MVx1YmE1Mlx1YmE1Nlx1YmE1N1x1YmE1OVx1YmE1YVx1YmE1Ylx1YmE1ZFx1YmE1ZVx1YmE1Zlx1YmE2MFx1'@; put 'YmE2MVx1YmE2Mlx1YmE2M1x1YmE2Nlx1YmE2YVx1YmE2Ylx1YmE2Y1x1YmE2ZFx1YmE2ZVx1YmE2Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmE3Mlx1YmE3M1x1YmE3NVx1YmE3Nlx1YmE3N1x1YmE3OVx1YmE3YVx1YmE3Ylx1YmE3Y1x1YmE3ZFx1YmE3ZVx1YmE3'@; put 'Zlx1YmE4MFx1YmE4MVx1YmE4Mlx1YmE4Nlx1YmE4OFx1YmE4OVx1YmE4YVx1YmE4Ylx1YmE4ZFx1YmE4ZVx1YmE4Zlx1YmE5MFx1YmE5MVx1YmE5Mlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmE5M1x1YmE5NFx1YmE5NVx1YmE5Nlx1YmE5N1x1YmE5OFx1YmE5OVx1'@; put 'YmE5YVx1YmE5Ylx1YmE5Y1x1YmE5ZFx1YmE5ZVx1YmE5Zlx1YmFhMFx1YmFhMVx1YmFhMlx1YmFhM1x1YmFhNFx1YmFhNVx1YmFhNlx1YmFhN1x1YmFhYVx1YmFhZFx1YmFhZVx1YmFhZlx1YmFiMVx1YmFiM1x1YmFiNFx1YmFiNVx1YmFiNlx1YmFiN1x1YmFiYVx1YmFiY1x1YmFiZVx1YmFi'@; put 'Zlx1YmFjMFx1YmFjMVx1YmFjMlx1YmFjM1x1YmFjNVx1YmFjNlx1YmFjN1x1YmFjOVx1YmFjYVx1YmFjYlx1YmFjY1x1YmFjZFx1YmFjZVx1YmFjZlx1YmFkMFx1YmFkMVx1YmFkMlx1YmFkM1x1YmFkNFx1YmFkNVx1YmFkNlx1YmFkN1x1YmFkYVx1YmFkYlx1YmFkY1x1YmFkZFx1YmFkZVx1'@; put 'YmFkZlx1YmFlMFx1YmFlMVx1YmFlMlx1YmFlM1x1YmFlNFx1YmFlNVx1YmFlNlx1YmFlN1x1YmFlOFx1YmFlOVx1YmFlYVx1YmFlYlx1YmFlY1x1YmFlZFx1YmFlZVx1YmFlZlx1YmFmMFx1YmFmMVx1YmFmMlx1YmFmM1x1YmFmNFx1YmFmNVx1YmFmNlx1YmFmN1x1YmFmOFx1YmFmOVx1YmFm'@; put 'YVx1YmFmYlx1YmFmZFx1YmFmZVx1YmFmZlx1YmIwMVx1YmIwMlx1YmIwM1x1YmIwNVx1YmIwNlx1YmIwN1x1YmIwOFx1YmIwOVx1YmIwYVx1YmIwYlx1YmIwY1x1YmIwZVx1YmIxMFx1YmIxMlx1YmIxM1x1YmIxNFx1YmIxNVx1YmIxNlx1YmIxN1x1YmIxOVx1YmIxYVx1YmIxYlx1YmIxZFx1'@; put 'YmIxZVx1YmIxZlx1YmIyMVx1YmIyMlx1YmIyM1x1YmIyNFx1YmIyNVx1YmIyNlx1YmIyN1x1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE0NV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTQ1XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE0NV1bcF1dPTM3MTIwK3AsYlszNzEyMCtwXT1fWzE0'@; put 'NV1bcF0pO2ZvcihfWzE0Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmIyOFx1YmIyYVx1YmIyY1x1YmIyZFx1YmIyZVx1YmIyZlx1YmIzMFx1YmIzMVx1YmIzMlx1YmIzM1x1YmIzN1x1YmIzOVx1YmIzYVx1YmIzZlx1'@; put 'YmI0MFx1YmI0MVx1YmI0Mlx1YmI0M1x1YmI0Nlx1YmI0OFx1YmI0YVx1YmI0Ylx1YmI0Y1x1YmI0ZVx1YmI1MVx1YmI1Mlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmI1M1x1YmI1NVx1YmI1Nlx1YmI1N1x1YmI1OVx1YmI1YVx1YmI1Ylx1YmI1Y1x1YmI1ZFx1YmI1'@; put 'ZVx1YmI1Zlx1YmI2MFx1YmI2Mlx1YmI2NFx1YmI2NVx1YmI2Nlx1YmI2N1x1YmI2OFx1YmI2OVx1YmI2YVx1YmI2Ylx1YmI2ZFx1YmI2ZVx1YmI2Zlx1YmI3MFx1YmI3MVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmI3Mlx1YmI3M1x1YmI3NFx1YmI3NVx1YmI3Nlx1'@; put 'YmI3N1x1YmI3OFx1YmI3OVx1YmI3YVx1YmI3Ylx1YmI3Y1x1YmI3ZFx1YmI3ZVx1YmI3Zlx1YmI4MFx1YmI4MVx1YmI4Mlx1YmI4M1x1YmI4NFx1YmI4NVx1YmI4Nlx1YmI4N1x1YmI4OVx1YmI4YVx1YmI4Ylx1YmI4ZFx1YmI4ZVx1YmI4Zlx1YmI5MVx1YmI5Mlx1YmI5M1x1YmI5NFx1YmI5'@; put 'NVx1YmI5Nlx1YmI5N1x1YmI5OFx1YmI5OVx1YmI5YVx1YmI5Ylx1YmI5Y1x1YmI5ZFx1YmI5ZVx1YmI5Zlx1YmJhMFx1YmJhMVx1YmJhMlx1YmJhM1x1YmJhNVx1YmJhNlx1YmJhN1x1YmJhOVx1YmJhYVx1YmJhYlx1YmJhZFx1YmJhZVx1YmJhZlx1YmJiMFx1YmJiMVx1YmJiMlx1YmJiM1x1'@; put 'YmJiNVx1YmJiNlx1YmJiOFx1YmJiOVx1YmJiYVx1YmJiYlx1YmJiY1x1YmJiZFx1YmJiZVx1YmJiZlx1YmJjMVx1YmJjMlx1YmJjM1x1YmJjNVx1YmJjNlx1YmJjN1x1YmJjOVx1YmJjYVx1YmJjYlx1YmJjY1x1YmJjZFx1YmJjZVx1YmJjZlx1YmJkMVx1YmJkMlx1YmJkNFx1YmJkNVx1YmJk'@; put 'Nlx1YmJkN1x1YmJkOFx1YmJkOVx1YmJkYVx1YmJkYlx1YmJkY1x1YmJkZFx1YmJkZVx1YmJkZlx1YmJlMFx1YmJlMVx1YmJlMlx1YmJlM1x1YmJlNFx1YmJlNVx1YmJlNlx1YmJlN1x1YmJlOFx1YmJlOVx1YmJlYVx1YmJlYlx1YmJlY1x1YmJlZFx1YmJlZVx1YmJlZlx1YmJmMFx1YmJmMVx1'@; put 'YmJmMlx1YmJmM1x1YmJmNFx1YmJmNVx1YmJmNlx1YmJmN1x1YmJmYVx1YmJmYlx1YmJmZFx1YmJmZVx1YmMwMVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE0Nl0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTQ2XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE0Nl1bcF1dPTM3Mzc2K3AsYlsz'@; put 'NzM3NitwXT1fWzE0Nl1bcF0pO2ZvcihfWzE0N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmMwM1x1YmMwNFx1YmMwNVx1YmMwNlx1YmMwN1x1YmMwYVx1YmMwZVx1YmMxMFx1YmMxMlx1YmMxM1x1YmMxOVx1YmMxYVx1'@; put 'YmMyMFx1YmMyMVx1YmMyMlx1YmMyM1x1YmMyNlx1YmMyOFx1YmMyYVx1YmMyYlx1YmMyY1x1YmMyZVx1YmMyZlx1YmMzMlx1YmMzM1x1YmMzNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmMzNlx1YmMzN1x1YmMzOVx1YmMzYVx1YmMzYlx1YmMzY1x1YmMzZFx1YmMz'@; put 'ZVx1YmMzZlx1YmM0Mlx1YmM0Nlx1YmM0N1x1YmM0OFx1YmM0YVx1YmM0Ylx1YmM0ZVx1YmM0Zlx1YmM1MVx1YmM1Mlx1YmM1M1x1YmM1NFx1YmM1NVx1YmM1Nlx1YmM1N1x1YmM1OFx1YmM1OVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmM1YVx1YmM1Ylx1YmM1Y1x1'@; put 'YmM1ZVx1YmM1Zlx1YmM2MFx1YmM2MVx1YmM2Mlx1YmM2M1x1YmM2NFx1YmM2NVx1YmM2Nlx1YmM2N1x1YmM2OFx1YmM2OVx1YmM2YVx1YmM2Ylx1YmM2Y1x1YmM2ZFx1YmM2ZVx1YmM2Zlx1YmM3MFx1YmM3MVx1YmM3Mlx1YmM3M1x1YmM3NFx1YmM3NVx1YmM3Nlx1YmM3N1x1YmM3OFx1YmM3'@; put 'OVx1YmM3YVx1YmM3Ylx1YmM3Y1x1YmM3ZFx1YmM3ZVx1YmM3Zlx1YmM4MFx1YmM4MVx1YmM4Mlx1YmM4M1x1YmM4Nlx1YmM4N1x1YmM4OVx1YmM4YVx1YmM4ZFx1YmM4Zlx1YmM5MFx1YmM5MVx1YmM5Mlx1YmM5M1x1YmM5Nlx1YmM5OFx1YmM5Ylx1YmM5Y1x1YmM5ZFx1YmM5ZVx1YmM5Zlx1'@; put 'YmNhMlx1YmNhM1x1YmNhNVx1YmNhNlx1YmNhOVx1YmNhYVx1YmNhYlx1YmNhY1x1YmNhZFx1YmNhZVx1YmNhZlx1YmNiMlx1YmNiNlx1YmNiN1x1YmNiOFx1YmNiOVx1YmNiYVx1YmNiYlx1YmNiZVx1YmNiZlx1YmNjMVx1YmNjMlx1YmNjM1x1YmNjNVx1YmNjNlx1YmNjN1x1YmNjOFx1YmNj'@; put 'OVx1YmNjYVx1YmNjYlx1YmNjY1x1YmNjZVx1YmNkMlx1YmNkM1x1YmNkNFx1YmNkNlx1YmNkN1x1YmNkOVx1YmNkYVx1YmNkYlx1YmNkZFx1YmNkZVx1YmNkZlx1YmNlMFx1YmNlMVx1YmNlMlx1YmNlM1x1YmNlNFx1YmNlNVx1YmNlNlx1YmNlN1x1YmNlOFx1YmNlOVx1YmNlYVx1YmNlYlx1'@; put 'YmNlY1x1YmNlZFx1YmNlZVx1YmNlZlx1YmNmMFx1YmNmMVx1YmNmMlx1YmNmM1x1YmNmN1x1YmNmOVx1YmNmYVx1YmNmYlx1YmNmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE0N10ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTQ3XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE0N11bcF1d'@; put 'PTM3NjMyK3AsYlszNzYzMitwXT1fWzE0N11bcF0pO2ZvcihfWzE0OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmNmZVx1YmNmZlx1YmQwMFx1YmQwMVx1YmQwMlx1YmQwM1x1YmQwNlx1YmQwOFx1YmQwYVx1YmQwYlx1'@; put 'YmQwY1x1YmQwZFx1YmQwZVx1YmQwZlx1YmQxMVx1YmQxMlx1YmQxM1x1YmQxNVx1YmQxNlx1YmQxN1x1YmQxOFx1YmQxOVx1YmQxYVx1YmQxYlx1YmQxY1x1YmQxZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmQxZVx1YmQxZlx1YmQyMFx1YmQyMVx1YmQyMlx1YmQy'@; put 'M1x1YmQyNVx1YmQyNlx1YmQyN1x1YmQyOFx1YmQyOVx1YmQyYVx1YmQyYlx1YmQyZFx1YmQyZVx1YmQyZlx1YmQzMFx1YmQzMVx1YmQzMlx1YmQzM1x1YmQzNFx1YmQzNVx1YmQzNlx1YmQzN1x1YmQzOFx1YmQzOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmQzYVx1'@; put 'YmQzYlx1YmQzY1x1YmQzZFx1YmQzZVx1YmQzZlx1YmQ0MVx1YmQ0Mlx1YmQ0M1x1YmQ0NFx1YmQ0NVx1YmQ0Nlx1YmQ0N1x1YmQ0YVx1YmQ0Ylx1YmQ0ZFx1YmQ0ZVx1YmQ0Zlx1YmQ1MVx1YmQ1Mlx1YmQ1M1x1YmQ1NFx1YmQ1NVx1YmQ1Nlx1YmQ1N1x1YmQ1YVx1YmQ1Ylx1YmQ1Y1x1YmQ1'@; put 'ZFx1YmQ1ZVx1YmQ1Zlx1YmQ2MFx1YmQ2MVx1YmQ2Mlx1YmQ2M1x1YmQ2NVx1YmQ2Nlx1YmQ2N1x1YmQ2OVx1YmQ2YVx1YmQ2Ylx1YmQ2Y1x1YmQ2ZFx1YmQ2ZVx1YmQ2Zlx1YmQ3MFx1YmQ3MVx1YmQ3Mlx1YmQ3M1x1YmQ3NFx1YmQ3NVx1YmQ3Nlx1YmQ3N1x1YmQ3OFx1YmQ3OVx1YmQ3YVx1'@; put 'YmQ3Ylx1YmQ3Y1x1YmQ3ZFx1YmQ3ZVx1YmQ3Zlx1YmQ4Mlx1YmQ4M1x1YmQ4NVx1YmQ4Nlx1YmQ4Ylx1YmQ4Y1x1YmQ4ZFx1YmQ4ZVx1YmQ4Zlx1YmQ5Mlx1YmQ5NFx1YmQ5Nlx1YmQ5N1x1YmQ5OFx1YmQ5Ylx1YmQ5ZFx1YmQ5ZVx1YmQ5Zlx1YmRhMFx1YmRhMVx1YmRhMlx1YmRhM1x1YmRh'@; put 'NVx1YmRhNlx1YmRhN1x1YmRhOFx1YmRhOVx1YmRhYVx1YmRhYlx1YmRhY1x1YmRhZFx1YmRhZVx1YmRhZlx1YmRiMVx1YmRiMlx1YmRiM1x1YmRiNFx1YmRiNVx1YmRiNlx1YmRiN1x1YmRiOVx1YmRiYVx1YmRiYlx1YmRiY1x1YmRiZFx1YmRiZVx1YmRiZlx1YmRjMFx1YmRjMVx1YmRjMlx1'@; put 'YmRjM1x1YmRjNFx1YmRjNVx1YmRjNlx1YmRjN1x1YmRjOFx1YmRjOVx1YmRjYVx1YmRjYlx1YmRjY1x1YmRjZFx1YmRjZVx1YmRjZlx1YmRkMFx1YmRkMVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE0OF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTQ4XVtwXS5jaGFyQ29kZUF0KDApJiYo'@; put 'RFtfWzE0OF1bcF1dPTM3ODg4K3AsYlszNzg4OCtwXT1fWzE0OF1bcF0pO2ZvcihfWzE0OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmRkMlx1YmRkM1x1YmRkNlx1YmRkN1x1YmRkOVx1YmRkYVx1YmRkYlx1YmRkZFx1'@; put 'YmRkZVx1YmRkZlx1YmRlMFx1YmRlMVx1YmRlMlx1YmRlM1x1YmRlNFx1YmRlNVx1YmRlNlx1YmRlN1x1YmRlOFx1YmRlYVx1YmRlYlx1YmRlY1x1YmRlZFx1YmRlZVx1YmRlZlx1YmRmMVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmRmMlx1YmRmM1x1YmRmNVx1YmRm'@; put 'Nlx1YmRmN1x1YmRmOVx1YmRmYVx1YmRmYlx1YmRmY1x1YmRmZFx1YmRmZVx1YmRmZlx1YmUwMVx1YmUwMlx1YmUwNFx1YmUwNlx1YmUwN1x1YmUwOFx1YmUwOVx1YmUwYVx1YmUwYlx1YmUwZVx1YmUwZlx1YmUxMVx1YmUxMlx1YmUxM1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1YmUxNVx1YmUxNlx1YmUxN1x1YmUxOFx1YmUxOVx1YmUxYVx1YmUxYlx1YmUxZVx1YmUyMFx1YmUyMVx1YmUyMlx1YmUyM1x1YmUyNFx1YmUyNVx1YmUyNlx1YmUyN1x1YmUyOFx1YmUyOVx1YmUyYVx1YmUyYlx1YmUyY1x1YmUyZFx1YmUyZVx1YmUyZlx1YmUzMFx1YmUzMVx1YmUz'@; put 'Mlx1YmUzM1x1YmUzNFx1YmUzNVx1YmUzNlx1YmUzN1x1YmUzOFx1YmUzOVx1YmUzYVx1YmUzYlx1YmUzY1x1YmUzZFx1YmUzZVx1YmUzZlx1YmU0MFx1YmU0MVx1YmU0Mlx1YmU0M1x1YmU0Nlx1YmU0N1x1YmU0OVx1YmU0YVx1YmU0Ylx1YmU0ZFx1YmU0Zlx1YmU1MFx1YmU1MVx1YmU1Mlx1'@; put 'YmU1M1x1YmU1Nlx1YmU1OFx1YmU1Y1x1YmU1ZFx1YmU1ZVx1YmU1Zlx1YmU2Mlx1YmU2M1x1YmU2NVx1YmU2Nlx1YmU2N1x1YmU2OVx1YmU2Ylx1YmU2Y1x1YmU2ZFx1YmU2ZVx1YmU2Zlx1YmU3Mlx1YmU3Nlx1YmU3N1x1YmU3OFx1YmU3OVx1YmU3YVx1YmU3ZVx1YmU3Zlx1YmU4MVx1YmU4'@; put 'Mlx1YmU4M1x1YmU4NVx1YmU4Nlx1YmU4N1x1YmU4OFx1YmU4OVx1YmU4YVx1YmU4Ylx1YmU4ZVx1YmU5Mlx1YmU5M1x1YmU5NFx1YmU5NVx1YmU5Nlx1YmU5N1x1YmU5YVx1YmU5Ylx1YmU5Y1x1YmU5ZFx1YmU5ZVx1YmU5Zlx1YmVhMFx1YmVhMVx1YmVhMlx1YmVhM1x1YmVhNFx1YmVhNVx1'@; put 'YmVhNlx1YmVhN1x1YmVhOVx1YmVhYVx1YmVhYlx1YmVhY1x1YmVhZFx1YmVhZVx1YmVhZlx1YmViMFx1YmViMVx1YmViMlx1YmViM1x1YmViNFx1YmViNVx1YmViNlx1YmViN1x1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE0OV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTQ5XVtwXS5jaGFy'@; put 'Q29kZUF0KDApJiYoRFtfWzE0OV1bcF1dPTM4MTQ0K3AsYlszODE0NCtwXT1fWzE0OV1bcF0pO2ZvcihfWzE1MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmViOFx1YmViOVx1YmViYVx1YmViYlx1YmViY1x1YmViZFx1'@; put 'YmViZVx1YmViZlx1YmVjMFx1YmVjMVx1YmVjMlx1YmVjM1x1YmVjNFx1YmVjNVx1YmVjNlx1YmVjN1x1YmVjOFx1YmVjOVx1YmVjYVx1YmVjYlx1YmVjY1x1YmVjZFx1YmVjZVx1YmVjZlx1YmVkMlx1YmVkM1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmVkNVx1YmVk'@; put 'Nlx1YmVkOVx1YmVkYVx1YmVkYlx1YmVkY1x1YmVkZFx1YmVkZVx1YmVkZlx1YmVlMVx1YmVlMlx1YmVlNlx1YmVlN1x1YmVlOFx1YmVlOVx1YmVlYVx1YmVlYlx1YmVlZFx1YmVlZVx1YmVlZlx1YmVmMFx1YmVmMVx1YmVmMlx1YmVmM1x1YmVmNFx1YmVmNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1YmVmNlx1YmVmN1x1YmVmOFx1YmVmOVx1YmVmYVx1YmVmYlx1YmVmY1x1YmVmZFx1YmVmZVx1YmVmZlx1YmYwMFx1YmYwMlx1YmYwM1x1YmYwNFx1YmYwNVx1YmYwNlx1YmYwN1x1YmYwYVx1YmYwYlx1YmYwY1x1YmYwZFx1YmYwZVx1YmYwZlx1YmYxMFx1YmYx'@; put 'MVx1YmYxMlx1YmYxM1x1YmYxNFx1YmYxNVx1YmYxNlx1YmYxN1x1YmYxYVx1YmYxZVx1YmYxZlx1YmYyMFx1YmYyMVx1YmYyMlx1YmYyM1x1YmYyNFx1YmYyNVx1YmYyNlx1YmYyN1x1YmYyOFx1YmYyOVx1YmYyYVx1YmYyYlx1YmYyY1x1YmYyZFx1YmYyZVx1YmYyZlx1YmYzMFx1YmYzMVx1'@; put 'YmYzMlx1YmYzM1x1YmYzNFx1YmYzNVx1YmYzNlx1YmYzN1x1YmYzOFx1YmYzOVx1YmYzYVx1YmYzYlx1YmYzY1x1YmYzZFx1YmYzZVx1YmYzZlx1YmY0Mlx1YmY0M1x1YmY0NVx1YmY0Nlx1YmY0N1x1YmY0OVx1YmY0YVx1YmY0Ylx1YmY0Y1x1YmY0ZFx1YmY0ZVx1YmY0Zlx1YmY1Mlx1YmY1'@; put 'M1x1YmY1NFx1YmY1Nlx1YmY1N1x1YmY1OFx1YmY1OVx1YmY1YVx1YmY1Ylx1YmY1Y1x1YmY1ZFx1YmY1ZVx1YmY1Zlx1YmY2MFx1YmY2MVx1YmY2Mlx1YmY2M1x1YmY2NFx1YmY2NVx1YmY2Nlx1YmY2N1x1YmY2OFx1YmY2OVx1YmY2YVx1YmY2Ylx1YmY2Y1x1YmY2ZFx1YmY2ZVx1YmY2Zlx1'@; put 'YmY3MFx1YmY3MVx1YmY3Mlx1YmY3M1x1YmY3NFx1YmY3NVx1YmY3Nlx1YmY3N1x1YmY3OFx1YmY3OVx1YmY3YVx1YmY3Ylx1YmY3Y1x1YmY3ZFx1YmY3ZVx1YmY3Zlx1YmY4MFx1YmY4MVx1YmY4Mlx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE1MF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9b'@; put 'MTUwXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE1MF1bcF1dPTM4NDAwK3AsYlszODQwMCtwXT1fWzE1MF1bcF0pO2ZvcihfWzE1MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmY4M1x1YmY4NFx1YmY4NVx1YmY4Nlx1'@; put 'YmY4N1x1YmY4OFx1YmY4OVx1YmY4YVx1YmY4Ylx1YmY4Y1x1YmY4ZFx1YmY4ZVx1YmY4Zlx1YmY5MFx1YmY5MVx1YmY5Mlx1YmY5M1x1YmY5NVx1YmY5Nlx1YmY5N1x1YmY5OFx1YmY5OVx1YmY5YVx1YmY5Ylx1YmY5Y1x1YmY5ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1YmY5ZVx1YmY5Zlx1YmZhMFx1YmZhMVx1YmZhMlx1YmZhM1x1YmZhNFx1YmZhNVx1YmZhNlx1YmZhN1x1YmZhOFx1YmZhOVx1YmZhYVx1YmZhYlx1YmZhY1x1YmZhZFx1YmZhZVx1YmZhZlx1YmZiMVx1YmZiMlx1YmZiM1x1YmZiNFx1YmZiNVx1YmZiNlx1YmZiN1x1YmZiOFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmZiOVx1YmZiYVx1YmZiYlx1YmZiY1x1YmZiZFx1YmZiZVx1YmZiZlx1YmZjMFx1YmZjMVx1YmZjMlx1YmZjM1x1YmZjNFx1YmZjNlx1YmZjN1x1YmZjOFx1YmZjOVx1YmZjYVx1YmZjYlx1YmZjZVx1YmZjZlx1YmZkMVx1YmZkMlx1YmZk'@; put 'M1x1YmZkNVx1YmZkNlx1YmZkN1x1YmZkOFx1YmZkOVx1YmZkYVx1YmZkYlx1YmZkZFx1YmZkZVx1YmZlMFx1YmZlMlx1YmZlM1x1YmZlNFx1YmZlNVx1YmZlNlx1YmZlN1x1YmZlOFx1YmZlOVx1YmZlYVx1YmZlYlx1YmZlY1x1YmZlZFx1YmZlZVx1YmZlZlx1YmZmMFx1YmZmMVx1YmZmMlx1'@; put 'YmZmM1x1YmZmNFx1YmZmNVx1YmZmNlx1YmZmN1x1YmZmOFx1YmZmOVx1YmZmYVx1YmZmYlx1YmZmY1x1YmZmZFx1YmZmZVx1YmZmZlx1YzAwMFx1YzAwMVx1YzAwMlx1YzAwM1x1YzAwNFx1YzAwNVx1YzAwNlx1YzAwN1x1YzAwOFx1YzAwOVx1YzAwYVx1YzAwYlx1YzAwY1x1YzAwZFx1YzAw'@; put 'ZVx1YzAwZlx1YzAxMFx1YzAxMVx1YzAxMlx1YzAxM1x1YzAxNFx1YzAxNVx1YzAxNlx1YzAxN1x1YzAxOFx1YzAxOVx1YzAxYVx1YzAxYlx1YzAxY1x1YzAxZFx1YzAxZVx1YzAxZlx1YzAyMFx1YzAyMVx1YzAyMlx1YzAyM1x1YzAyNFx1YzAyNVx1YzAyNlx1YzAyN1x1YzAyOFx1YzAyOVx1'@; put 'YzAyYVx1YzAyYlx1YzAyY1x1YzAyZFx1YzAyZVx1YzAyZlx1YzAzMFx1YzAzMVx1YzAzMlx1YzAzM1x1YzAzNFx1YzAzNVx1YzAzNlx1YzAzN1x1YzAzOFx1YzAzOVx1YzAzYVx1YzAzYlx1YzAzZFx1YzAzZVx1YzAzZlx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE1MV0ubGVuZ3RoOysr'@; put 'cCk2NTUzMyE9PV9bMTUxXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE1MV1bcF1dPTM4NjU2K3AsYlszODY1NitwXT1fWzE1MV1bcF0pO2ZvcihfWzE1Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzA0MFx1YzA0MVx1'@; put 'YzA0Mlx1YzA0M1x1YzA0NFx1YzA0NVx1YzA0Nlx1YzA0N1x1YzA0OFx1YzA0OVx1YzA0YVx1YzA0Ylx1YzA0Y1x1YzA0ZFx1YzA0ZVx1YzA0Zlx1YzA1MFx1YzA1Mlx1YzA1M1x1YzA1NFx1YzA1NVx1YzA1Nlx1YzA1N1x1YzA1OVx1YzA1YVx1YzA1Ylx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1YzA1ZFx1YzA1ZVx1YzA1Zlx1YzA2MVx1YzA2Mlx1YzA2M1x1YzA2NFx1YzA2NVx1YzA2Nlx1YzA2N1x1YzA2YVx1YzA2Ylx1YzA2Y1x1YzA2ZFx1YzA2ZVx1YzA2Zlx1YzA3MFx1YzA3MVx1YzA3Mlx1YzA3M1x1YzA3NFx1YzA3NVx1YzA3Nlx1YzA3N1x1YzA3OFx1'@; put 'YzA3OVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzA3YVx1YzA3Ylx1YzA3Y1x1YzA3ZFx1YzA3ZVx1YzA3Zlx1YzA4MFx1YzA4MVx1YzA4Mlx1YzA4M1x1YzA4NFx1YzA4NVx1YzA4Nlx1YzA4N1x1YzA4OFx1YzA4OVx1YzA4YVx1YzA4Ylx1YzA4Y1x1YzA4ZFx1YzA4'@; put 'ZVx1YzA4Zlx1YzA5Mlx1YzA5M1x1YzA5NVx1YzA5Nlx1YzA5N1x1YzA5OVx1YzA5YVx1YzA5Ylx1YzA5Y1x1YzA5ZFx1YzA5ZVx1YzA5Zlx1YzBhMlx1YzBhNFx1YzBhNlx1YzBhN1x1YzBhOFx1YzBhOVx1YzBhYVx1YzBhYlx1YzBhZVx1YzBiMVx1YzBiMlx1YzBiN1x1YzBiOFx1YzBiOVx1'@; put 'YzBiYVx1YzBiYlx1YzBiZVx1YzBjMlx1YzBjM1x1YzBjNFx1YzBjNlx1YzBjN1x1YzBjYVx1YzBjYlx1YzBjZFx1YzBjZVx1YzBjZlx1YzBkMVx1YzBkMlx1YzBkM1x1YzBkNFx1YzBkNVx1YzBkNlx1YzBkN1x1YzBkYVx1YzBkZVx1YzBkZlx1YzBlMFx1YzBlMVx1YzBlMlx1YzBlM1x1YzBl'@; put 'Nlx1YzBlN1x1YzBlOVx1YzBlYVx1YzBlYlx1YzBlZFx1YzBlZVx1YzBlZlx1YzBmMFx1YzBmMVx1YzBmMlx1YzBmM1x1YzBmNlx1YzBmOFx1YzBmYVx1YzBmYlx1YzBmY1x1YzBmZFx1YzBmZVx1YzBmZlx1YzEwMVx1YzEwMlx1YzEwM1x1YzEwNVx1YzEwNlx1YzEwN1x1YzEwOVx1YzEwYVx1'@; put 'YzEwYlx1YzEwY1x1YzEwZFx1YzEwZVx1YzEwZlx1YzExMVx1YzExMlx1YzExM1x1YzExNFx1YzExNlx1YzExN1x1YzExOFx1YzExOVx1YzExYVx1YzExYlx1YzEyMVx1YzEyMlx1YzEyNVx1YzEyOFx1YzEyOVx1YzEyYVx1YzEyYlx1YzEyZVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE1'@; put 'Ml0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTUyXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE1Ml1bcF1dPTM4OTEyK3AsYlszODkxMitwXT1fWzE1Ml1bcF0pO2ZvcihfWzE1M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'YzEzMlx1YzEzM1x1YzEzNFx1YzEzNVx1YzEzN1x1YzEzYVx1YzEzYlx1YzEzZFx1YzEzZVx1YzEzZlx1YzE0MVx1YzE0Mlx1YzE0M1x1YzE0NFx1YzE0NVx1YzE0Nlx1YzE0N1x1YzE0YVx1YzE0ZVx1YzE0Zlx1YzE1MFx1YzE1MVx1YzE1Mlx1YzE1M1x1YzE1Nlx1YzE1N1x1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzE1OVx1YzE1YVx1YzE1Ylx1YzE1ZFx1YzE1ZVx1YzE1Zlx1YzE2MFx1YzE2MVx1YzE2Mlx1YzE2M1x1YzE2Nlx1YzE2YVx1YzE2Ylx1YzE2Y1x1YzE2ZFx1YzE2ZVx1YzE2Zlx1YzE3MVx1YzE3Mlx1YzE3M1x1YzE3NVx1YzE3Nlx1YzE3N1x1'@; put 'YzE3OVx1YzE3YVx1YzE3Ylx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzE3Y1x1YzE3ZFx1YzE3ZVx1YzE3Zlx1YzE4MFx1YzE4MVx1YzE4Mlx1YzE4M1x1YzE4NFx1YzE4Nlx1YzE4N1x1YzE4OFx1YzE4OVx1YzE4YVx1YzE4Ylx1YzE4Zlx1YzE5MVx1YzE5Mlx1YzE5'@; put 'M1x1YzE5NVx1YzE5N1x1YzE5OFx1YzE5OVx1YzE5YVx1YzE5Ylx1YzE5ZVx1YzFhMFx1YzFhMlx1YzFhM1x1YzFhNFx1YzFhNlx1YzFhN1x1YzFhYVx1YzFhYlx1YzFhZFx1YzFhZVx1YzFhZlx1YzFiMVx1YzFiMlx1YzFiM1x1YzFiNFx1YzFiNVx1YzFiNlx1YzFiN1x1YzFiOFx1YzFiOVx1'@; put 'YzFiYVx1YzFiYlx1YzFiY1x1YzFiZVx1YzFiZlx1YzFjMFx1YzFjMVx1YzFjMlx1YzFjM1x1YzFjNVx1YzFjNlx1YzFjN1x1YzFjOVx1YzFjYVx1YzFjYlx1YzFjZFx1YzFjZVx1YzFjZlx1YzFkMFx1YzFkMVx1YzFkMlx1YzFkM1x1YzFkNVx1YzFkNlx1YzFkOVx1YzFkYVx1YzFkYlx1YzFk'@; put 'Y1x1YzFkZFx1YzFkZVx1YzFkZlx1YzFlMVx1YzFlMlx1YzFlM1x1YzFlNVx1YzFlNlx1YzFlN1x1YzFlOVx1YzFlYVx1YzFlYlx1YzFlY1x1YzFlZFx1YzFlZVx1YzFlZlx1YzFmMlx1YzFmNFx1YzFmNVx1YzFmNlx1YzFmN1x1YzFmOFx1YzFmOVx1YzFmYVx1YzFmYlx1YzFmZVx1YzFmZlx1'@; put 'YzIwMVx1YzIwMlx1YzIwM1x1YzIwNVx1YzIwNlx1YzIwN1x1YzIwOFx1YzIwOVx1YzIwYVx1YzIwYlx1YzIwZVx1YzIxMFx1YzIxMlx1YzIxM1x1YzIxNFx1YzIxNVx1YzIxNlx1YzIxN1x1YzIxYVx1YzIxYlx1YzIxZFx1YzIxZVx1YzIyMVx1YzIyMlx1YzIyM1x1ZmZmZCIuc3BsaXQoIiIp'@; put 'LHA9MDtwIT1fWzE1M10ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTUzXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE1M11bcF1dPTM5MTY4K3AsYlszOTE2OCtwXT1fWzE1M11bcF0pO2ZvcihfWzE1NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1YzIyNFx1YzIyNVx1YzIyNlx1YzIyN1x1YzIyYVx1YzIyY1x1YzIyZVx1YzIzMFx1YzIzM1x1YzIzNVx1YzIzNlx1YzIzN1x1YzIzOFx1YzIzOVx1YzIzYVx1YzIzYlx1YzIzY1x1YzIzZFx1YzIzZVx1YzIzZlx1YzI0MFx1YzI0MVx1YzI0Mlx1YzI0M1x1YzI0NFx1YzI0'@; put 'NVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzI0Nlx1YzI0N1x1YzI0OVx1YzI0YVx1YzI0Ylx1YzI0Y1x1YzI0ZFx1YzI0ZVx1YzI0Zlx1YzI1Mlx1YzI1M1x1YzI1NVx1YzI1Nlx1YzI1N1x1YzI1OVx1YzI1YVx1YzI1Ylx1YzI1Y1x1YzI1ZFx1YzI1ZVx1YzI1Zlx1'@; put 'YzI2MVx1YzI2Mlx1YzI2M1x1YzI2NFx1YzI2Nlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzI2N1x1YzI2OFx1YzI2OVx1YzI2YVx1YzI2Ylx1YzI2ZVx1YzI2Zlx1YzI3MVx1YzI3Mlx1YzI3M1x1YzI3NVx1YzI3Nlx1YzI3N1x1YzI3OFx1YzI3OVx1YzI3YVx1YzI3'@; put 'Ylx1YzI3ZVx1YzI4MFx1YzI4Mlx1YzI4M1x1YzI4NFx1YzI4NVx1YzI4Nlx1YzI4N1x1YzI4YVx1YzI4Ylx1YzI4Y1x1YzI4ZFx1YzI4ZVx1YzI4Zlx1YzI5MVx1YzI5Mlx1YzI5M1x1YzI5NFx1YzI5NVx1YzI5Nlx1YzI5N1x1YzI5OVx1YzI5YVx1YzI5Y1x1YzI5ZVx1YzI5Zlx1YzJhMFx1'@; put 'YzJhMVx1YzJhMlx1YzJhM1x1YzJhNlx1YzJhN1x1YzJhOVx1YzJhYVx1YzJhYlx1YzJhZVx1YzJhZlx1YzJiMFx1YzJiMVx1YzJiMlx1YzJiM1x1YzJiNlx1YzJiOFx1YzJiYVx1YzJiYlx1YzJiY1x1YzJiZFx1YzJiZVx1YzJiZlx1YzJjMFx1YzJjMVx1YzJjMlx1YzJjM1x1YzJjNFx1YzJj'@; put 'NVx1YzJjNlx1YzJjN1x1YzJjOFx1YzJjOVx1YzJjYVx1YzJjYlx1YzJjY1x1YzJjZFx1YzJjZVx1YzJjZlx1YzJkMFx1YzJkMVx1YzJkMlx1YzJkM1x1YzJkNFx1YzJkNVx1YzJkNlx1YzJkN1x1YzJkOFx1YzJkOVx1YzJkYVx1YzJkYlx1YzJkZVx1YzJkZlx1YzJlMVx1YzJlMlx1YzJlNVx1'@; put 'YzJlNlx1YzJlN1x1YzJlOFx1YzJlOVx1YzJlYVx1YzJlZVx1YzJmMFx1YzJmMlx1YzJmM1x1YzJmNFx1YzJmNVx1YzJmN1x1YzJmYVx1YzJmZFx1YzJmZVx1YzJmZlx1YzMwMVx1YzMwMlx1YzMwM1x1YzMwNFx1YzMwNVx1YzMwNlx1YzMwN1x1YzMwYVx1YzMwYlx1YzMwZVx1YzMwZlx1ZmZm'@; put 'ZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE1NF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTU0XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE1NF1bcF1dPTM5NDI0K3AsYlszOTQyNCtwXT1fWzE1NF1bcF0pO2ZvcihfWzE1NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzMxMFx1YzMxMVx1YzMxMlx1YzMxNlx1YzMxN1x1YzMxOVx1YzMxYVx1YzMxYlx1YzMxZFx1YzMxZVx1YzMxZlx1YzMyMFx1YzMyMVx1YzMyMlx1YzMyM1x1YzMyNlx1YzMyN1x1YzMyYVx1YzMyYlx1YzMyY1x1YzMyZFx1YzMyZVx1YzMyZlx1YzMz'@; put 'MFx1YzMzMVx1YzMzMlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzMzM1x1YzMzNFx1YzMzNVx1YzMzNlx1YzMzN1x1YzMzOFx1YzMzOVx1YzMzYVx1YzMzYlx1YzMzY1x1YzMzZFx1YzMzZVx1YzMzZlx1YzM0MFx1YzM0MVx1YzM0Mlx1YzM0M1x1YzM0NFx1YzM0Nlx1'@; put 'YzM0N1x1YzM0OFx1YzM0OVx1YzM0YVx1YzM0Ylx1YzM0Y1x1YzM0ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzM0ZVx1YzM0Zlx1YzM1MFx1YzM1MVx1YzM1Mlx1YzM1M1x1YzM1NFx1YzM1NVx1YzM1Nlx1YzM1N1x1YzM1OFx1YzM1OVx1YzM1YVx1YzM1Ylx1YzM1'@; put 'Y1x1YzM1ZFx1YzM1ZVx1YzM1Zlx1YzM2MFx1YzM2MVx1YzM2Mlx1YzM2M1x1YzM2NFx1YzM2NVx1YzM2Nlx1YzM2N1x1YzM2YVx1YzM2Ylx1YzM2ZFx1YzM2ZVx1YzM2Zlx1YzM3MVx1YzM3M1x1YzM3NFx1YzM3NVx1YzM3Nlx1YzM3N1x1YzM3YVx1YzM3Ylx1YzM3ZVx1YzM3Zlx1YzM4MFx1'@; put 'YzM4MVx1YzM4Mlx1YzM4M1x1YzM4NVx1YzM4Nlx1YzM4N1x1YzM4OVx1YzM4YVx1YzM4Ylx1YzM4ZFx1YzM4ZVx1YzM4Zlx1YzM5MFx1YzM5MVx1YzM5Mlx1YzM5M1x1YzM5NFx1YzM5NVx1YzM5Nlx1YzM5N1x1YzM5OFx1YzM5OVx1YzM5YVx1YzM5Ylx1YzM5Y1x1YzM5ZFx1YzM5ZVx1YzM5'@; put 'Zlx1YzNhMFx1YzNhMVx1YzNhMlx1YzNhM1x1YzNhNFx1YzNhNVx1YzNhNlx1YzNhN1x1YzNhOFx1YzNhOVx1YzNhYVx1YzNhYlx1YzNhY1x1YzNhZFx1YzNhZVx1YzNhZlx1YzNiMFx1YzNiMVx1YzNiMlx1YzNiM1x1YzNiNFx1YzNiNVx1YzNiNlx1YzNiN1x1YzNiOFx1YzNiOVx1YzNiYVx1'@; put 'YzNiYlx1YzNiY1x1YzNiZFx1YzNiZVx1YzNiZlx1YzNjMVx1YzNjMlx1YzNjM1x1YzNjNFx1YzNjNVx1YzNjNlx1YzNjN1x1YzNjOFx1YzNjOVx1YzNjYVx1YzNjYlx1YzNjY1x1YzNjZFx1YzNjZVx1YzNjZlx1YzNkMFx1YzNkMVx1YzNkMlx1YzNkM1x1YzNkNFx1YzNkNVx1YzNkNlx1YzNk'@; put 'N1x1YzNkYVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE1NV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTU1XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE1NV1bcF1dPTM5NjgwK3AsYlszOTY4MCtwXT1fWzE1NV1bcF0pO2ZvcihfWzE1Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzNkYlx1YzNkZFx1YzNkZVx1YzNlMVx1YzNlM1x1YzNlNFx1YzNlNVx1YzNlNlx1YzNlN1x1YzNlYVx1YzNlYlx1YzNlY1x1YzNlZVx1YzNlZlx1YzNmMFx1YzNmMVx1YzNmMlx1YzNmM1x1YzNmNlx1YzNmN1x1YzNmOVx1YzNm'@; put 'YVx1YzNmYlx1YzNmY1x1YzNmZFx1YzNmZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzNmZlx1YzQwMFx1YzQwMVx1YzQwMlx1YzQwM1x1YzQwNFx1YzQwNVx1YzQwNlx1YzQwN1x1YzQwOVx1YzQwYVx1YzQwYlx1YzQwY1x1YzQwZFx1YzQwZVx1YzQwZlx1YzQxMVx1'@; put 'YzQxMlx1YzQxM1x1YzQxNFx1YzQxNVx1YzQxNlx1YzQxN1x1YzQxOFx1YzQxOVx1YzQxYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzQxYlx1YzQxY1x1YzQxZFx1YzQxZVx1YzQxZlx1YzQyMFx1YzQyMVx1YzQyMlx1YzQyM1x1YzQyNVx1YzQyNlx1YzQyN1x1YzQy'@; put 'OFx1YzQyOVx1YzQyYVx1YzQyYlx1YzQyZFx1YzQyZVx1YzQyZlx1YzQzMVx1YzQzMlx1YzQzM1x1YzQzNVx1YzQzNlx1YzQzN1x1YzQzOFx1YzQzOVx1YzQzYVx1YzQzYlx1YzQzZVx1YzQzZlx1YzQ0MFx1YzQ0MVx1YzQ0Mlx1YzQ0M1x1YzQ0NFx1YzQ0NVx1YzQ0Nlx1YzQ0N1x1YzQ0OVx1'@; put 'YzQ0YVx1YzQ0Ylx1YzQ0Y1x1YzQ0ZFx1YzQ0ZVx1YzQ0Zlx1YzQ1MFx1YzQ1MVx1YzQ1Mlx1YzQ1M1x1YzQ1NFx1YzQ1NVx1YzQ1Nlx1YzQ1N1x1YzQ1OFx1YzQ1OVx1YzQ1YVx1YzQ1Ylx1YzQ1Y1x1YzQ1ZFx1YzQ1ZVx1YzQ1Zlx1YzQ2MFx1YzQ2MVx1YzQ2Mlx1YzQ2M1x1YzQ2Nlx1YzQ2'@; put 'N1x1YzQ2OVx1YzQ2YVx1YzQ2Ylx1YzQ2ZFx1YzQ2ZVx1YzQ2Zlx1YzQ3MFx1YzQ3MVx1YzQ3Mlx1YzQ3M1x1YzQ3Nlx1YzQ3N1x1YzQ3OFx1YzQ3YVx1YzQ3Ylx1YzQ3Y1x1YzQ3ZFx1YzQ3ZVx1YzQ3Zlx1YzQ4MVx1YzQ4Mlx1YzQ4M1x1YzQ4NFx1YzQ4NVx1YzQ4Nlx1YzQ4N1x1YzQ4OFx1'@; put 'YzQ4OVx1YzQ4YVx1YzQ4Ylx1YzQ4Y1x1YzQ4ZFx1YzQ4ZVx1YzQ4Zlx1YzQ5MFx1YzQ5MVx1YzQ5Mlx1YzQ5M1x1YzQ5NVx1YzQ5Nlx1YzQ5N1x1YzQ5OFx1YzQ5OVx1YzQ5YVx1YzQ5Ylx1YzQ5ZFx1YzQ5ZVx1YzQ5Zlx1YzRhMFx1YzRhMVx1YzRhMlx1YzRhM1x1YzRhNFx1YzRhNVx1YzRh'@; put 'Nlx1YzRhN1x1YzRhOFx1YzRhOVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE1Nl0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTU2XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE1Nl1bcF1dPTM5OTM2K3AsYlszOTkzNitwXT1fWzE1Nl1bcF0pO2ZvcihfWzE1N109Ilx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzRhYVx1YzRhYlx1YzRhY1x1YzRhZFx1YzRhZVx1YzRhZlx1YzRiMFx1YzRiMVx1YzRiMlx1YzRiM1x1YzRiNFx1YzRiNVx1YzRiNlx1YzRiN1x1YzRiOVx1YzRiYVx1YzRiYlx1YzRiZFx1YzRiZVx1YzRi'@; put 'Zlx1YzRjMFx1YzRjMVx1YzRjMlx1YzRjM1x1YzRjNFx1YzRjNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzRjNlx1YzRjN1x1YzRjOFx1YzRjOVx1YzRjYVx1YzRjYlx1YzRjY1x1YzRjZFx1YzRjZVx1YzRjZlx1YzRkMFx1YzRkMVx1YzRkMlx1YzRkM1x1YzRkNFx1'@; put 'YzRkNVx1YzRkNlx1YzRkN1x1YzRkOFx1YzRkOVx1YzRkYVx1YzRkYlx1YzRkY1x1YzRkZFx1YzRkZVx1YzRkZlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzRlMFx1YzRlMVx1YzRlMlx1YzRlM1x1YzRlNFx1YzRlNVx1YzRlNlx1YzRlN1x1YzRlOFx1YzRlYVx1YzRl'@; put 'Ylx1YzRlY1x1YzRlZFx1YzRlZVx1YzRlZlx1YzRmMlx1YzRmM1x1YzRmNVx1YzRmNlx1YzRmN1x1YzRmOVx1YzRmYlx1YzRmY1x1YzRmZFx1YzRmZVx1YzUwMlx1YzUwM1x1YzUwNFx1YzUwNVx1YzUwNlx1YzUwN1x1YzUwOFx1YzUwOVx1YzUwYVx1YzUwYlx1YzUwZFx1YzUwZVx1YzUwZlx1'@; put 'YzUxMVx1YzUxMlx1YzUxM1x1YzUxNVx1YzUxNlx1YzUxN1x1YzUxOFx1YzUxOVx1YzUxYVx1YzUxYlx1YzUxZFx1YzUxZVx1YzUxZlx1YzUyMFx1YzUyMVx1YzUyMlx1YzUyM1x1YzUyNFx1YzUyNVx1YzUyNlx1YzUyN1x1YzUyYVx1YzUyYlx1YzUyZFx1YzUyZVx1YzUyZlx1YzUzMVx1YzUz'@; put 'Mlx1YzUzM1x1YzUzNFx1YzUzNVx1YzUzNlx1YzUzN1x1YzUzYVx1YzUzY1x1YzUzZVx1YzUzZlx1YzU0MFx1YzU0MVx1YzU0Mlx1YzU0M1x1YzU0Nlx1YzU0N1x1YzU0Ylx1YzU0Zlx1YzU1MFx1YzU1MVx1YzU1Mlx1YzU1Nlx1YzU1YVx1YzU1Ylx1YzU1Y1x1YzU1Zlx1YzU2Mlx1YzU2M1x1'@; put 'YzU2NVx1YzU2Nlx1YzU2N1x1YzU2OVx1YzU2YVx1YzU2Ylx1YzU2Y1x1YzU2ZFx1YzU2ZVx1YzU2Zlx1YzU3Mlx1YzU3Nlx1YzU3N1x1YzU3OFx1YzU3OVx1YzU3YVx1YzU3Ylx1YzU3ZVx1YzU3Zlx1YzU4MVx1YzU4Mlx1YzU4M1x1YzU4NVx1YzU4Nlx1YzU4OFx1YzU4OVx1YzU4YVx1YzU4'@; put 'Ylx1YzU4ZVx1YzU5MFx1YzU5Mlx1YzU5M1x1YzU5NFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE1N10ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTU3XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE1N11bcF1dPTQwMTkyK3AsYls0MDE5MitwXT1fWzE1N11bcF0pO2ZvcihfWzE1OF09Ilx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzU5Nlx1YzU5OVx1YzU5YVx1YzU5Ylx1YzU5ZFx1YzU5ZVx1YzU5Zlx1YzVhMVx1YzVhMlx1YzVhM1x1YzVhNFx1YzVhNVx1YzVhNlx1YzVhN1x1YzVhOFx1YzVhYVx1YzVhYlx1YzVh'@; put 'Y1x1YzVhZFx1YzVhZVx1YzVhZlx1YzViMFx1YzViMVx1YzViMlx1YzViM1x1YzViNlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzViN1x1YzViYVx1YzViZlx1YzVjMFx1YzVjMVx1YzVjMlx1YzVjM1x1YzVjYlx1YzVjZFx1YzVjZlx1YzVkMlx1YzVkM1x1YzVkNVx1'@; put 'YzVkNlx1YzVkN1x1YzVkOVx1YzVkYVx1YzVkYlx1YzVkY1x1YzVkZFx1YzVkZVx1YzVkZlx1YzVlMlx1YzVlNFx1YzVlNlx1YzVlN1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzVlOFx1YzVlOVx1YzVlYVx1YzVlYlx1YzVlZlx1YzVmMVx1YzVmMlx1YzVmM1x1YzVm'@; put 'NVx1YzVmOFx1YzVmOVx1YzVmYVx1YzVmYlx1YzYwMlx1YzYwM1x1YzYwNFx1YzYwOVx1YzYwYVx1YzYwYlx1YzYwZFx1YzYwZVx1YzYwZlx1YzYxMVx1YzYxMlx1YzYxM1x1YzYxNFx1YzYxNVx1YzYxNlx1YzYxN1x1YzYxYVx1YzYxZFx1YzYxZVx1YzYxZlx1YzYyMFx1YzYyMVx1YzYyMlx1'@; put 'YzYyM1x1YzYyNlx1YzYyN1x1YzYyOVx1YzYyYVx1YzYyYlx1YzYyZlx1YzYzMVx1YzYzMlx1YzYzNlx1YzYzOFx1YzYzYVx1YzYzY1x1YzYzZFx1YzYzZVx1YzYzZlx1YzY0Mlx1YzY0M1x1YzY0NVx1YzY0Nlx1YzY0N1x1YzY0OVx1YzY0YVx1YzY0Ylx1YzY0Y1x1YzY0ZFx1YzY0ZVx1YzY0'@; put 'Zlx1YzY1Mlx1YzY1Nlx1YzY1N1x1YzY1OFx1YzY1OVx1YzY1YVx1YzY1Ylx1YzY1ZVx1YzY1Zlx1YzY2MVx1YzY2Mlx1YzY2M1x1YzY2NFx1YzY2NVx1YzY2Nlx1YzY2N1x1YzY2OFx1YzY2OVx1YzY2YVx1YzY2Ylx1YzY2ZFx1YzY2ZVx1YzY3MFx1YzY3Mlx1YzY3M1x1YzY3NFx1YzY3NVx1'@; put 'YzY3Nlx1YzY3N1x1YzY3YVx1YzY3Ylx1YzY3ZFx1YzY3ZVx1YzY3Zlx1YzY4MVx1YzY4Mlx1YzY4M1x1YzY4NFx1YzY4NVx1YzY4Nlx1YzY4N1x1YzY4YVx1YzY4Y1x1YzY4ZVx1YzY4Zlx1YzY5MFx1YzY5MVx1YzY5Mlx1YzY5M1x1YzY5Nlx1YzY5N1x1YzY5OVx1YzY5YVx1YzY5Ylx1YzY5'@; put 'ZFx1YzY5ZVx1YzY5Zlx1YzZhMFx1YzZhMVx1YzZhMlx1YzZhM1x1YzZhNlx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE1OF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTU4XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE1OF1bcF1dPTQwNDQ4K3AsYls0MDQ0OCtwXT1fWzE1OF1bcF0pO2Zv'@; put 'cihfWzE1OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzZhOFx1YzZhYVx1YzZhYlx1YzZhY1x1YzZhZFx1YzZhZVx1YzZhZlx1YzZiMlx1YzZiM1x1YzZiNVx1YzZiNlx1YzZiN1x1YzZiYlx1YzZiY1x1YzZiZFx1YzZi'@; put 'ZVx1YzZiZlx1YzZjMlx1YzZjNFx1YzZjNlx1YzZjN1x1YzZjOFx1YzZjOVx1YzZjYVx1YzZjYlx1YzZjZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzZjZlx1YzZkMVx1YzZkMlx1YzZkM1x1YzZkNVx1YzZkNlx1YzZkN1x1YzZkOFx1YzZkOVx1YzZkYVx1YzZkYlx1'@; put 'YzZkZVx1YzZkZlx1YzZlMlx1YzZlM1x1YzZlNFx1YzZlNVx1YzZlNlx1YzZlN1x1YzZlYVx1YzZlYlx1YzZlZFx1YzZlZVx1YzZlZlx1YzZmMVx1YzZmMlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzZmM1x1YzZmNFx1YzZmNVx1YzZmNlx1YzZmN1x1YzZmYVx1YzZm'@; put 'Ylx1YzZmY1x1YzZmZVx1YzZmZlx1YzcwMFx1YzcwMVx1YzcwMlx1YzcwM1x1YzcwNlx1YzcwN1x1YzcwOVx1YzcwYVx1YzcwYlx1YzcwZFx1YzcwZVx1YzcwZlx1YzcxMFx1YzcxMVx1YzcxMlx1YzcxM1x1YzcxNlx1YzcxOFx1YzcxYVx1YzcxYlx1YzcxY1x1YzcxZFx1YzcxZVx1YzcxZlx1'@; put 'YzcyMlx1YzcyM1x1YzcyNVx1YzcyNlx1YzcyN1x1YzcyOVx1YzcyYVx1YzcyYlx1YzcyY1x1YzcyZFx1YzcyZVx1YzcyZlx1YzczMlx1YzczNFx1YzczNlx1YzczOFx1YzczOVx1YzczYVx1YzczYlx1YzczZVx1YzczZlx1Yzc0MVx1Yzc0Mlx1Yzc0M1x1Yzc0NVx1Yzc0Nlx1Yzc0N1x1Yzc0'@; put 'OFx1Yzc0OVx1Yzc0Ylx1Yzc0ZVx1Yzc1MFx1Yzc1OVx1Yzc1YVx1Yzc1Ylx1Yzc1ZFx1Yzc1ZVx1Yzc1Zlx1Yzc2MVx1Yzc2Mlx1Yzc2M1x1Yzc2NFx1Yzc2NVx1Yzc2Nlx1Yzc2N1x1Yzc2OVx1Yzc2YVx1Yzc2Y1x1Yzc2ZFx1Yzc2ZVx1Yzc2Zlx1Yzc3MFx1Yzc3MVx1Yzc3Mlx1Yzc3M1x1'@; put 'Yzc3Nlx1Yzc3N1x1Yzc3OVx1Yzc3YVx1Yzc3Ylx1Yzc3Zlx1Yzc4MFx1Yzc4MVx1Yzc4Mlx1Yzc4Nlx1Yzc4Ylx1Yzc4Y1x1Yzc4ZFx1Yzc4Zlx1Yzc5Mlx1Yzc5M1x1Yzc5NVx1Yzc5OVx1Yzc5Ylx1Yzc5Y1x1Yzc5ZFx1Yzc5ZVx1Yzc5Zlx1YzdhMlx1YzdhN1x1YzdhOFx1YzdhOVx1Yzdh'@; put 'YVx1YzdhYlx1YzdhZVx1YzdhZlx1YzdiMVx1YzdiMlx1YzdiM1x1YzdiNVx1YzdiNlx1YzdiN1x1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE1OV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTU5XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE1OV1bcF1dPTQwNzA0K3AsYls0MDcwNCtwXT1f'@; put 'WzE1OV1bcF0pO2ZvcihfWzE2MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzdiOFx1YzdiOVx1YzdiYVx1YzdiYlx1YzdiZVx1YzdjMlx1YzdjM1x1YzdjNFx1YzdjNVx1YzdjNlx1YzdjN1x1YzdjYVx1YzdjYlx1Yzdj'@; put 'ZFx1YzdjZlx1YzdkMVx1YzdkMlx1YzdkM1x1YzdkNFx1YzdkNVx1YzdkNlx1YzdkN1x1YzdkOVx1YzdkYVx1YzdkYlx1YzdkY1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzdkZVx1YzdkZlx1YzdlMFx1YzdlMVx1YzdlMlx1YzdlM1x1YzdlNVx1YzdlNlx1YzdlN1x1'@; put 'YzdlOVx1YzdlYVx1YzdlYlx1YzdlZFx1YzdlZVx1YzdlZlx1YzdmMFx1YzdmMVx1YzdmMlx1YzdmM1x1YzdmNFx1YzdmNVx1YzdmNlx1YzdmN1x1YzdmOFx1YzdmOVx1YzdmYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzdmYlx1YzdmY1x1YzdmZFx1YzdmZVx1Yzdm'@; put 'Zlx1YzgwMlx1YzgwM1x1YzgwNVx1YzgwNlx1YzgwN1x1YzgwOVx1YzgwYlx1YzgwY1x1YzgwZFx1YzgwZVx1YzgwZlx1YzgxMlx1YzgxNFx1YzgxN1x1YzgxOFx1YzgxOVx1YzgxYVx1YzgxYlx1YzgxZVx1YzgxZlx1YzgyMVx1YzgyMlx1YzgyM1x1YzgyNVx1YzgyNlx1YzgyN1x1YzgyOFx1'@; put 'YzgyOVx1YzgyYVx1YzgyYlx1YzgyZVx1YzgzMFx1YzgzMlx1YzgzM1x1YzgzNFx1YzgzNVx1YzgzNlx1YzgzN1x1YzgzOVx1YzgzYVx1YzgzYlx1YzgzZFx1YzgzZVx1YzgzZlx1Yzg0MVx1Yzg0Mlx1Yzg0M1x1Yzg0NFx1Yzg0NVx1Yzg0Nlx1Yzg0N1x1Yzg0YVx1Yzg0Ylx1Yzg0ZVx1Yzg0'@; put 'Zlx1Yzg1MFx1Yzg1MVx1Yzg1Mlx1Yzg1M1x1Yzg1NVx1Yzg1Nlx1Yzg1N1x1Yzg1OFx1Yzg1OVx1Yzg1YVx1Yzg1Ylx1Yzg1Y1x1Yzg1ZFx1Yzg1ZVx1Yzg1Zlx1Yzg2MFx1Yzg2MVx1Yzg2Mlx1Yzg2M1x1Yzg2NFx1Yzg2NVx1Yzg2Nlx1Yzg2N1x1Yzg2OFx1Yzg2OVx1Yzg2YVx1Yzg2Ylx1'@; put 'Yzg2Y1x1Yzg2ZFx1Yzg2ZVx1Yzg2Zlx1Yzg3Mlx1Yzg3M1x1Yzg3NVx1Yzg3Nlx1Yzg3N1x1Yzg3OVx1Yzg3Ylx1Yzg3Y1x1Yzg3ZFx1Yzg3ZVx1Yzg3Zlx1Yzg4Mlx1Yzg4NFx1Yzg4OFx1Yzg4OVx1Yzg4YVx1Yzg4ZVx1Yzg4Zlx1Yzg5MFx1Yzg5MVx1Yzg5Mlx1Yzg5M1x1Yzg5NVx1Yzg5'@; put 'Nlx1Yzg5N1x1Yzg5OFx1Yzg5OVx1Yzg5YVx1Yzg5Ylx1Yzg5Y1x1Yzg5ZVx1YzhhMFx1YzhhMlx1YzhhM1x1YzhhNFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE2MF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTYwXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE2MF1bcF1dPTQwOTYwK3As'@; put 'Yls0MDk2MCtwXT1fWzE2MF1bcF0pO2ZvcihfWzE2MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzhhNVx1YzhhNlx1YzhhN1x1YzhhOVx1YzhhYVx1YzhhYlx1YzhhY1x1YzhhZFx1YzhhZVx1YzhhZlx1YzhiMFx1Yzhi'@; put 'MVx1YzhiMlx1YzhiM1x1YzhiNFx1YzhiNVx1YzhiNlx1YzhiN1x1YzhiOFx1YzhiOVx1YzhiYVx1YzhiYlx1YzhiZVx1YzhiZlx1YzhjMFx1YzhjMVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzhjMlx1YzhjM1x1YzhjNVx1YzhjNlx1YzhjN1x1YzhjOVx1YzhjYVx1'@; put 'YzhjYlx1YzhjZFx1YzhjZVx1YzhjZlx1YzhkMFx1YzhkMVx1YzhkMlx1YzhkM1x1YzhkNlx1YzhkOFx1YzhkYVx1YzhkYlx1YzhkY1x1YzhkZFx1YzhkZVx1YzhkZlx1YzhlMlx1YzhlM1x1YzhlNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzhlNlx1YzhlN1x1Yzhl'@; put 'OFx1YzhlOVx1YzhlYVx1YzhlYlx1YzhlY1x1YzhlZFx1YzhlZVx1YzhlZlx1YzhmMFx1YzhmMVx1YzhmMlx1YzhmM1x1YzhmNFx1YzhmNlx1YzhmN1x1YzhmOFx1YzhmOVx1YzhmYVx1YzhmYlx1YzhmZVx1YzhmZlx1YzkwMVx1YzkwMlx1YzkwM1x1YzkwN1x1YzkwOFx1YzkwOVx1YzkwYVx1'@; put 'YzkwYlx1YzkwZVx1MzAwMFx1MzAwMVx1MzAwMlx4YjdcdTIwMjVcdTIwMjZceGE4XHUzMDAzXHhhZFx1MjAxNVx1MjIyNVx1ZmYzY1x1MjIzY1x1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MzAxNFx1MzAxNVx1MzAwOFx1MzAwOVx1MzAwYVx1MzAwYlx1MzAwY1x1MzAwZFx1MzAwZVx1MzAw'@; put 'Zlx1MzAxMFx1MzAxMVx4YjFceGQ3XHhmN1x1MjI2MFx1MjI2NFx1MjI2NVx1MjIxZVx1MjIzNFx4YjBcdTIwMzJcdTIwMzNcdTIxMDNcdTIxMmJcdWZmZTBcdWZmZTFcdWZmZTVcdTI2NDJcdTI2NDBcdTIyMjBcdTIyYTVcdTIzMTJcdTIyMDJcdTIyMDdcdTIyNjFcdTIyNTJceGE3XHUyMDNi'@; put 'XHUyNjA2XHUyNjA1XHUyNWNiXHUyNWNmXHUyNWNlXHUyNWM3XHUyNWM2XHUyNWExXHUyNWEwXHUyNWIzXHUyNWIyXHUyNWJkXHUyNWJjXHUyMTkyXHUyMTkwXHUyMTkxXHUyMTkzXHUyMTk0XHUzMDEzXHUyMjZhXHUyMjZiXHUyMjFhXHUyMjNkXHUyMjFkXHUyMjM1XHUyMjJiXHUyMjJjXHUy'@; put 'MjA4XHUyMjBiXHUyMjg2XHUyMjg3XHUyMjgyXHUyMjgzXHUyMjJhXHUyMjI5XHUyMjI3XHUyMjI4XHVmZmUyXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTYxXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNjFdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTYxXVtwXV09NDEyMTYrcCxiWzQx'@; put 'MjE2K3BdPV9bMTYxXVtwXSk7Zm9yKF9bMTYyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjOTEwXHVjOTEyXHVjOTEzXHVjOTE0XHVjOTE1XHVjOTE2XHVjOTE3XHVjOTE5XHVjOTFhXHVjOTFiXHVjOTFjXHVjOTFkXHVj'@; put 'OTFlXHVjOTFmXHVjOTIwXHVjOTIxXHVjOTIyXHVjOTIzXHVjOTI0XHVjOTI1XHVjOTI2XHVjOTI3XHVjOTI4XHVjOTI5XHVjOTJhXHVjOTJiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjOTJkXHVjOTJlXHVjOTJmXHVjOTMwXHVjOTMxXHVjOTMyXHVjOTMzXHVjOTM1'@; put 'XHVjOTM2XHVjOTM3XHVjOTM4XHVjOTM5XHVjOTNhXHVjOTNiXHVjOTNjXHVjOTNkXHVjOTNlXHVjOTNmXHVjOTQwXHVjOTQxXHVjOTQyXHVjOTQzXHVjOTQ0XHVjOTQ1XHVjOTQ2XHVjOTQ3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjOTQ4XHVjOTQ5XHVjOTRhXHVj'@; put 'OTRiXHVjOTRjXHVjOTRkXHVjOTRlXHVjOTRmXHVjOTUyXHVjOTUzXHVjOTU1XHVjOTU2XHVjOTU3XHVjOTU5XHVjOTVhXHVjOTViXHVjOTVjXHVjOTVkXHVjOTVlXHVjOTVmXHVjOTYyXHVjOTY0XHVjOTY1XHVjOTY2XHVjOTY3XHVjOTY4XHVjOTY5XHVjOTZhXHVjOTZiXHVjOTZkXHVjOTZl'@; put 'XHVjOTZmXHUyMWQyXHUyMWQ0XHUyMjAwXHUyMjAzXHhiNFx1ZmY1ZVx1MDJjN1x1MDJkOFx1MDJkZFx1MDJkYVx1MDJkOVx4YjhcdTAyZGJceGExXHhiZlx1MDJkMFx1MjIyZVx1MjIxMVx1MjIwZlx4YTRcdTIxMDlcdTIwMzBcdTI1YzFcdTI1YzBcdTI1YjdcdTI1YjZcdTI2NjRcdTI2NjBc'@; put 'dTI2NjFcdTI2NjVcdTI2NjdcdTI2NjNcdTIyOTlcdTI1YzhcdTI1YTNcdTI1ZDBcdTI1ZDFcdTI1OTJcdTI1YTRcdTI1YTVcdTI1YThcdTI1YTdcdTI1YTZcdTI1YTlcdTI2NjhcdTI2MGZcdTI2MGVcdTI2MWNcdTI2MWVceGI2XHUyMDIwXHUyMDIxXHUyMTk1XHUyMTk3XHUyMTk5XHUyMTk2'@; put 'XHUyMTk4XHUyNjZkXHUyNjY5XHUyNjZhXHUyNjZjXHUzMjdmXHUzMjFjXHUyMTE2XHUzM2M3XHUyMTIyXHUzM2MyXHUzM2Q4XHUyMTIxXHUyMGFjXHhhZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE2Ml0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTYyXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE2Ml1bcF1dPTQxNDcyK3AsYls0MTQ3'@; put 'MitwXT1fWzE2Ml1bcF0pO2ZvcihfWzE2M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Yzk3MVx1Yzk3Mlx1Yzk3M1x1Yzk3NVx1Yzk3Nlx1Yzk3N1x1Yzk3OFx1Yzk3OVx1Yzk3YVx1Yzk3Ylx1Yzk3ZFx1Yzk3ZVx1Yzk3'@; put 'Zlx1Yzk4MFx1Yzk4MVx1Yzk4Mlx1Yzk4M1x1Yzk4NFx1Yzk4NVx1Yzk4Nlx1Yzk4N1x1Yzk4YVx1Yzk4Ylx1Yzk4ZFx1Yzk4ZVx1Yzk4Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Yzk5MVx1Yzk5Mlx1Yzk5M1x1Yzk5NFx1Yzk5NVx1Yzk5Nlx1Yzk5N1x1Yzk5YVx1'@; put 'Yzk5Y1x1Yzk5ZVx1Yzk5Zlx1YzlhMFx1YzlhMVx1YzlhMlx1YzlhM1x1YzlhNFx1YzlhNVx1YzlhNlx1YzlhN1x1YzlhOFx1YzlhOVx1YzlhYVx1YzlhYlx1YzlhY1x1YzlhZFx1YzlhZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzlhZlx1YzliMFx1YzliMVx1Yzli'@; put 'Mlx1YzliM1x1YzliNFx1YzliNVx1YzliNlx1YzliN1x1YzliOFx1YzliOVx1YzliYVx1YzliYlx1YzliY1x1YzliZFx1YzliZVx1YzliZlx1YzljMlx1YzljM1x1YzljNVx1YzljNlx1YzljOVx1YzljYlx1YzljY1x1YzljZFx1YzljZVx1YzljZlx1YzlkMlx1YzlkNFx1YzlkN1x1YzlkOFx1'@; put 'YzlkYlx1ZmYwMVx1ZmYwMlx1ZmYwM1x1ZmYwNFx1ZmYwNVx1ZmYwNlx1ZmYwN1x1ZmYwOFx1ZmYwOVx1ZmYwYVx1ZmYwYlx1ZmYwY1x1ZmYwZFx1ZmYwZVx1ZmYwZlx1ZmYxMFx1ZmYxMVx1ZmYxMlx1ZmYxM1x1ZmYxNFx1ZmYxNVx1ZmYxNlx1ZmYxN1x1ZmYxOFx1ZmYxOVx1ZmYxYVx1ZmYx'@; put 'Ylx1ZmYxY1x1ZmYxZFx1ZmYxZVx1ZmYxZlx1ZmYyMFx1ZmYyMVx1ZmYyMlx1ZmYyM1x1ZmYyNFx1ZmYyNVx1ZmYyNlx1ZmYyN1x1ZmYyOFx1ZmYyOVx1ZmYyYVx1ZmYyYlx1ZmYyY1x1ZmYyZFx1ZmYyZVx1ZmYyZlx1ZmYzMFx1ZmYzMVx1ZmYzMlx1ZmYzM1x1ZmYzNFx1ZmYzNVx1ZmYzNlx1'@; put 'ZmYzN1x1ZmYzOFx1ZmYzOVx1ZmYzYVx1ZmYzYlx1ZmZlNlx1ZmYzZFx1ZmYzZVx1ZmYzZlx1ZmY0MFx1ZmY0MVx1ZmY0Mlx1ZmY0M1x1ZmY0NFx1ZmY0NVx1ZmY0Nlx1ZmY0N1x1ZmY0OFx1ZmY0OVx1ZmY0YVx1ZmY0Ylx1ZmY0Y1x1ZmY0ZFx1ZmY0ZVx1ZmY0Zlx1ZmY1MFx1ZmY1MVx1ZmY1'@; put 'Mlx1ZmY1M1x1ZmY1NFx1ZmY1NVx1ZmY1Nlx1ZmY1N1x1ZmY1OFx1ZmY1OVx1ZmY1YVx1ZmY1Ylx1ZmY1Y1x1ZmY1ZFx1ZmZlM1x1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE2M10ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTYzXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE2M11bcF1dPTQx'@; put 'NzI4K3AsYls0MTcyOCtwXT1fWzE2M11bcF0pO2ZvcihfWzE2NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzlkZVx1YzlkZlx1YzllMVx1YzllM1x1YzllNVx1YzllNlx1YzllOFx1YzllOVx1YzllYVx1YzllYlx1Yzll'@; put 'ZVx1YzlmMlx1YzlmM1x1YzlmNFx1YzlmNVx1YzlmNlx1YzlmN1x1YzlmYVx1YzlmYlx1YzlmZFx1YzlmZVx1YzlmZlx1Y2EwMVx1Y2EwMlx1Y2EwM1x1Y2EwNFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2EwNVx1Y2EwNlx1Y2EwN1x1Y2EwYVx1Y2EwZVx1Y2EwZlx1'@; put 'Y2ExMFx1Y2ExMVx1Y2ExMlx1Y2ExM1x1Y2ExNVx1Y2ExNlx1Y2ExN1x1Y2ExOVx1Y2ExYVx1Y2ExYlx1Y2ExY1x1Y2ExZFx1Y2ExZVx1Y2ExZlx1Y2EyMFx1Y2EyMVx1Y2EyMlx1Y2EyM1x1Y2EyNFx1Y2EyNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2EyNlx1Y2Ey'@; put 'N1x1Y2EyOFx1Y2EyYVx1Y2EyYlx1Y2EyY1x1Y2EyZFx1Y2EyZVx1Y2EyZlx1Y2EzMFx1Y2EzMVx1Y2EzMlx1Y2EzM1x1Y2EzNFx1Y2EzNVx1Y2EzNlx1Y2EzN1x1Y2EzOFx1Y2EzOVx1Y2EzYVx1Y2EzYlx1Y2EzY1x1Y2EzZFx1Y2EzZVx1Y2EzZlx1Y2E0MFx1Y2E0MVx1Y2E0Mlx1Y2E0M1x1'@; put 'Y2E0NFx1Y2E0NVx1Y2E0Nlx1MzEzMVx1MzEzMlx1MzEzM1x1MzEzNFx1MzEzNVx1MzEzNlx1MzEzN1x1MzEzOFx1MzEzOVx1MzEzYVx1MzEzYlx1MzEzY1x1MzEzZFx1MzEzZVx1MzEzZlx1MzE0MFx1MzE0MVx1MzE0Mlx1MzE0M1x1MzE0NFx1MzE0NVx1MzE0Nlx1MzE0N1x1MzE0OFx1MzE0'@; put 'OVx1MzE0YVx1MzE0Ylx1MzE0Y1x1MzE0ZFx1MzE0ZVx1MzE0Zlx1MzE1MFx1MzE1MVx1MzE1Mlx1MzE1M1x1MzE1NFx1MzE1NVx1MzE1Nlx1MzE1N1x1MzE1OFx1MzE1OVx1MzE1YVx1MzE1Ylx1MzE1Y1x1MzE1ZFx1MzE1ZVx1MzE1Zlx1MzE2MFx1MzE2MVx1MzE2Mlx1MzE2M1x1MzE2NFx1'@; put 'MzE2NVx1MzE2Nlx1MzE2N1x1MzE2OFx1MzE2OVx1MzE2YVx1MzE2Ylx1MzE2Y1x1MzE2ZFx1MzE2ZVx1MzE2Zlx1MzE3MFx1MzE3MVx1MzE3Mlx1MzE3M1x1MzE3NFx1MzE3NVx1MzE3Nlx1MzE3N1x1MzE3OFx1MzE3OVx1MzE3YVx1MzE3Ylx1MzE3Y1x1MzE3ZFx1MzE3ZVx1MzE3Zlx1MzE4'@; put 'MFx1MzE4MVx1MzE4Mlx1MzE4M1x1MzE4NFx1MzE4NVx1MzE4Nlx1MzE4N1x1MzE4OFx1MzE4OVx1MzE4YVx1MzE4Ylx1MzE4Y1x1MzE4ZFx1MzE4ZVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE2NF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTY0XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtf'@; put 'WzE2NF1bcF1dPTQxOTg0K3AsYls0MTk4NCtwXT1fWzE2NF1bcF0pO2ZvcihfWzE2NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2E0N1x1Y2E0OFx1Y2E0OVx1Y2E0YVx1Y2E0Ylx1Y2E0ZVx1Y2E0Zlx1Y2E1MVx1Y2E1'@; put 'Mlx1Y2E1M1x1Y2E1NVx1Y2E1Nlx1Y2E1N1x1Y2E1OFx1Y2E1OVx1Y2E1YVx1Y2E1Ylx1Y2E1ZVx1Y2E2Mlx1Y2E2M1x1Y2E2NFx1Y2E2NVx1Y2E2Nlx1Y2E2N1x1Y2E2OVx1Y2E2YVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2E2Ylx1Y2E2Y1x1Y2E2ZFx1Y2E2ZVx1'@; put 'Y2E2Zlx1Y2E3MFx1Y2E3MVx1Y2E3Mlx1Y2E3M1x1Y2E3NFx1Y2E3NVx1Y2E3Nlx1Y2E3N1x1Y2E3OFx1Y2E3OVx1Y2E3YVx1Y2E3Ylx1Y2E3Y1x1Y2E3ZVx1Y2E3Zlx1Y2E4MFx1Y2E4MVx1Y2E4Mlx1Y2E4M1x1Y2E4NVx1Y2E4Nlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1Y2E4N1x1Y2E4OFx1Y2E4OVx1Y2E4YVx1Y2E4Ylx1Y2E4Y1x1Y2E4ZFx1Y2E4ZVx1Y2E4Zlx1Y2E5MFx1Y2E5MVx1Y2E5Mlx1Y2E5M1x1Y2E5NFx1Y2E5NVx1Y2E5Nlx1Y2E5N1x1Y2E5OVx1Y2E5YVx1Y2E5Ylx1Y2E5Y1x1Y2E5ZFx1Y2E5ZVx1Y2E5Zlx1Y2FhMFx1Y2FhMVx1Y2FhMlx1'@; put 'Y2FhM1x1Y2FhNFx1Y2FhNVx1Y2FhNlx1Y2FhN1x1MjE3MFx1MjE3MVx1MjE3Mlx1MjE3M1x1MjE3NFx1MjE3NVx1MjE3Nlx1MjE3N1x1MjE3OFx1MjE3OVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjE2MFx1MjE2MVx1MjE2Mlx1MjE2M1x1MjE2NFx1MjE2NVx1MjE2Nlx1MjE2'@; put 'N1x1MjE2OFx1MjE2OVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDM5MVx1MDM5Mlx1MDM5M1x1MDM5NFx1MDM5NVx1MDM5Nlx1MDM5N1x1MDM5OFx1MDM5OVx1MDM5YVx1MDM5Ylx1MDM5Y1x1MDM5ZFx1MDM5ZVx1MDM5Zlx1MDNhMFx1MDNhMVx1MDNhM1x1'@; put 'MDNhNFx1MDNhNVx1MDNhNlx1MDNhN1x1MDNhOFx1MDNhOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDNiMVx1MDNiMlx1MDNiM1x1MDNiNFx1MDNiNVx1MDNiNlx1MDNiN1x1MDNiOFx1MDNiOVx1MDNiYVx1MDNiYlx1MDNiY1x1MDNiZFx1MDNi'@; put 'ZVx1MDNiZlx1MDNjMFx1MDNjMVx1MDNjM1x1MDNjNFx1MDNjNVx1MDNjNlx1MDNjN1x1MDNjOFx1MDNjOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE2NV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTY1XVtwXS5jaGFyQ29k'@; put 'ZUF0KDApJiYoRFtfWzE2NV1bcF1dPTQyMjQwK3AsYls0MjI0MCtwXT1fWzE2NV1bcF0pO2ZvcihfWzE2Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2FhOFx1Y2FhOVx1Y2FhYVx1Y2FhYlx1Y2FhY1x1Y2FhZFx1Y2Fh'@; put 'ZVx1Y2FhZlx1Y2FiMFx1Y2FiMVx1Y2FiMlx1Y2FiM1x1Y2FiNFx1Y2FiNVx1Y2FiNlx1Y2FiN1x1Y2FiOFx1Y2FiOVx1Y2FiYVx1Y2FiYlx1Y2FiZVx1Y2FiZlx1Y2FjMVx1Y2FjMlx1Y2FjM1x1Y2FjNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2FjNlx1Y2FjN1x1'@; put 'Y2FjOFx1Y2FjOVx1Y2FjYVx1Y2FjYlx1Y2FjZVx1Y2FkMFx1Y2FkMlx1Y2FkNFx1Y2FkNVx1Y2FkNlx1Y2FkN1x1Y2FkYVx1Y2FkYlx1Y2FkY1x1Y2FkZFx1Y2FkZVx1Y2FkZlx1Y2FlMVx1Y2FlMlx1Y2FlM1x1Y2FlNFx1Y2FlNVx1Y2FlNlx1Y2FlN1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1Y2FlOFx1Y2FlOVx1Y2FlYVx1Y2FlYlx1Y2FlZFx1Y2FlZVx1Y2FlZlx1Y2FmMFx1Y2FmMVx1Y2FmMlx1Y2FmM1x1Y2FmNVx1Y2FmNlx1Y2FmN1x1Y2FmOFx1Y2FmOVx1Y2FmYVx1Y2FmYlx1Y2FmY1x1Y2FmZFx1Y2FmZVx1Y2FmZlx1Y2IwMFx1Y2IwMVx1Y2IwMlx1'@; put 'Y2IwM1x1Y2IwNFx1Y2IwNVx1Y2IwNlx1Y2IwN1x1Y2IwOVx1Y2IwYVx1MjUwMFx1MjUwMlx1MjUwY1x1MjUxMFx1MjUxOFx1MjUxNFx1MjUxY1x1MjUyY1x1MjUyNFx1MjUzNFx1MjUzY1x1MjUwMVx1MjUwM1x1MjUwZlx1MjUxM1x1MjUxYlx1MjUxN1x1MjUyM1x1MjUzM1x1MjUyYlx1MjUz'@; put 'Ylx1MjU0Ylx1MjUyMFx1MjUyZlx1MjUyOFx1MjUzN1x1MjUzZlx1MjUxZFx1MjUzMFx1MjUyNVx1MjUzOFx1MjU0Mlx1MjUxMlx1MjUxMVx1MjUxYVx1MjUxOVx1MjUxNlx1MjUxNVx1MjUwZVx1MjUwZFx1MjUxZVx1MjUxZlx1MjUyMVx1MjUyMlx1MjUyNlx1MjUyN1x1MjUyOVx1MjUyYVx1'@; put 'MjUyZFx1MjUyZVx1MjUzMVx1MjUzMlx1MjUzNVx1MjUzNlx1MjUzOVx1MjUzYVx1MjUzZFx1MjUzZVx1MjU0MFx1MjU0MVx1MjU0M1x1MjU0NFx1MjU0NVx1MjU0Nlx1MjU0N1x1MjU0OFx1MjU0OVx1MjU0YVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE2Nl0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTY2'@; put 'XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE2Nl1bcF1dPTQyNDk2K3AsYls0MjQ5NitwXT1fWzE2Nl1bcF0pO2ZvcihfWzE2N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2IwYlx1Y2IwY1x1Y2IwZFx1Y2IwZVx1Y2Iw'@; put 'Zlx1Y2IxMVx1Y2IxMlx1Y2IxM1x1Y2IxNVx1Y2IxNlx1Y2IxN1x1Y2IxOVx1Y2IxYVx1Y2IxYlx1Y2IxY1x1Y2IxZFx1Y2IxZVx1Y2IxZlx1Y2IyMlx1Y2IyM1x1Y2IyNFx1Y2IyNVx1Y2IyNlx1Y2IyN1x1Y2IyOFx1Y2IyOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'Y2IyYVx1Y2IyYlx1Y2IyY1x1Y2IyZFx1Y2IyZVx1Y2IyZlx1Y2IzMFx1Y2IzMVx1Y2IzMlx1Y2IzM1x1Y2IzNFx1Y2IzNVx1Y2IzNlx1Y2IzN1x1Y2IzOFx1Y2IzOVx1Y2IzYVx1Y2IzYlx1Y2IzY1x1Y2IzZFx1Y2IzZVx1Y2IzZlx1Y2I0MFx1Y2I0Mlx1Y2I0M1x1Y2I0NFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2I0NVx1Y2I0Nlx1Y2I0N1x1Y2I0YVx1Y2I0Ylx1Y2I0ZFx1Y2I0ZVx1Y2I0Zlx1Y2I1MVx1Y2I1Mlx1Y2I1M1x1Y2I1NFx1Y2I1NVx1Y2I1Nlx1Y2I1N1x1Y2I1YVx1Y2I1Ylx1Y2I1Y1x1Y2I1ZVx1Y2I1Zlx1Y2I2MFx1Y2I2MVx1Y2I2Mlx1'@; put 'Y2I2M1x1Y2I2NVx1Y2I2Nlx1Y2I2N1x1Y2I2OFx1Y2I2OVx1Y2I2YVx1Y2I2Ylx1Y2I2Y1x1MzM5NVx1MzM5Nlx1MzM5N1x1MjExM1x1MzM5OFx1MzNjNFx1MzNhM1x1MzNhNFx1MzNhNVx1MzNhNlx1MzM5OVx1MzM5YVx1MzM5Ylx1MzM5Y1x1MzM5ZFx1MzM5ZVx1MzM5Zlx1MzNhMFx1MzNh'@; put 'MVx1MzNhMlx1MzNjYVx1MzM4ZFx1MzM4ZVx1MzM4Zlx1MzNjZlx1MzM4OFx1MzM4OVx1MzNjOFx1MzNhN1x1MzNhOFx1MzNiMFx1MzNiMVx1MzNiMlx1MzNiM1x1MzNiNFx1MzNiNVx1MzNiNlx1MzNiN1x1MzNiOFx1MzNiOVx1MzM4MFx1MzM4MVx1MzM4Mlx1MzM4M1x1MzM4NFx1MzNiYVx1'@; put 'MzNiYlx1MzNiY1x1MzNiZFx1MzNiZVx1MzNiZlx1MzM5MFx1MzM5MVx1MzM5Mlx1MzM5M1x1MzM5NFx1MjEyNlx1MzNjMFx1MzNjMVx1MzM4YVx1MzM4Ylx1MzM4Y1x1MzNkNlx1MzNjNVx1MzNhZFx1MzNhZVx1MzNhZlx1MzNkYlx1MzNhOVx1MzNhYVx1MzNhYlx1MzNhY1x1MzNkZFx1MzNk'@; put 'MFx1MzNkM1x1MzNjM1x1MzNjOVx1MzNkY1x1MzNjNlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE2N10ubGVuZ3RoOysrcCk2'@; put 'NTUzMyE9PV9bMTY3XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE2N11bcF1dPTQyNzUyK3AsYls0Mjc1MitwXT1fWzE2N11bcF0pO2ZvcihfWzE2OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2I2ZFx1Y2I2ZVx1Y2I2'@; put 'Zlx1Y2I3MFx1Y2I3MVx1Y2I3Mlx1Y2I3M1x1Y2I3NFx1Y2I3NVx1Y2I3Nlx1Y2I3N1x1Y2I3YVx1Y2I3Ylx1Y2I3Y1x1Y2I3ZFx1Y2I3ZVx1Y2I3Zlx1Y2I4MFx1Y2I4MVx1Y2I4Mlx1Y2I4M1x1Y2I4NFx1Y2I4NVx1Y2I4Nlx1Y2I4N1x1Y2I4OFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1Y2I4OVx1Y2I4YVx1Y2I4Ylx1Y2I4Y1x1Y2I4ZFx1Y2I4ZVx1Y2I4Zlx1Y2I5MFx1Y2I5MVx1Y2I5Mlx1Y2I5M1x1Y2I5NFx1Y2I5NVx1Y2I5Nlx1Y2I5N1x1Y2I5OFx1Y2I5OVx1Y2I5YVx1Y2I5Ylx1Y2I5ZFx1Y2I5ZVx1Y2I5Zlx1Y2JhMFx1Y2JhMVx1Y2JhMlx1Y2Jh'@; put 'M1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2JhNFx1Y2JhNVx1Y2JhNlx1Y2JhN1x1Y2JhOFx1Y2JhOVx1Y2JhYVx1Y2JhYlx1Y2JhY1x1Y2JhZFx1Y2JhZVx1Y2JhZlx1Y2JiMFx1Y2JiMVx1Y2JiMlx1Y2JiM1x1Y2JiNFx1Y2JiNVx1Y2JiNlx1Y2JiN1x1Y2JiOVx1'@; put 'Y2JiYVx1Y2JiYlx1Y2JiY1x1Y2JiZFx1Y2JiZVx1Y2JiZlx1Y2JjMFx1Y2JjMVx1Y2JjMlx1Y2JjM1x1Y2JjNFx4YzZceGQwXHhhYVx1MDEyNlx1ZmZmZFx1MDEzMlx1ZmZmZFx1MDEzZlx1MDE0MVx4ZDhcdTAxNTJceGJhXHhkZVx1MDE2Nlx1MDE0YVx1ZmZmZFx1MzI2MFx1MzI2MVx1MzI2'@; put 'Mlx1MzI2M1x1MzI2NFx1MzI2NVx1MzI2Nlx1MzI2N1x1MzI2OFx1MzI2OVx1MzI2YVx1MzI2Ylx1MzI2Y1x1MzI2ZFx1MzI2ZVx1MzI2Zlx1MzI3MFx1MzI3MVx1MzI3Mlx1MzI3M1x1MzI3NFx1MzI3NVx1MzI3Nlx1MzI3N1x1MzI3OFx1MzI3OVx1MzI3YVx1MzI3Ylx1MjRkMFx1MjRkMVx1'@; put 'MjRkMlx1MjRkM1x1MjRkNFx1MjRkNVx1MjRkNlx1MjRkN1x1MjRkOFx1MjRkOVx1MjRkYVx1MjRkYlx1MjRkY1x1MjRkZFx1MjRkZVx1MjRkZlx1MjRlMFx1MjRlMVx1MjRlMlx1MjRlM1x1MjRlNFx1MjRlNVx1MjRlNlx1MjRlN1x1MjRlOFx1MjRlOVx1MjQ2MFx1MjQ2MVx1MjQ2Mlx1MjQ2'@; put 'M1x1MjQ2NFx1MjQ2NVx1MjQ2Nlx1MjQ2N1x1MjQ2OFx1MjQ2OVx1MjQ2YVx1MjQ2Ylx1MjQ2Y1x1MjQ2ZFx1MjQ2ZVx4YmRcdTIxNTNcdTIxNTRceGJjXHhiZVx1MjE1Ylx1MjE1Y1x1MjE1ZFx1MjE1ZVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE2OF0ubGVuZ3RoOysrcCk2NTUzMyE9'@; put 'PV9bMTY4XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE2OF1bcF1dPTQzMDA4K3AsYls0MzAwOCtwXT1fWzE2OF1bcF0pO2ZvcihfWzE2OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2JjNVx1Y2JjNlx1Y2JjN1x1Y2Jj'@; put 'OFx1Y2JjOVx1Y2JjYVx1Y2JjYlx1Y2JjY1x1Y2JjZFx1Y2JjZVx1Y2JjZlx1Y2JkMFx1Y2JkMVx1Y2JkMlx1Y2JkM1x1Y2JkNVx1Y2JkNlx1Y2JkN1x1Y2JkOFx1Y2JkOVx1Y2JkYVx1Y2JkYlx1Y2JkY1x1Y2JkZFx1Y2JkZVx1Y2JkZlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1Y2JlMFx1Y2JlMVx1Y2JlMlx1Y2JlM1x1Y2JlNVx1Y2JlNlx1Y2JlOFx1Y2JlYVx1Y2JlYlx1Y2JlY1x1Y2JlZFx1Y2JlZVx1Y2JlZlx1Y2JmMFx1Y2JmMVx1Y2JmMlx1Y2JmM1x1Y2JmNFx1Y2JmNVx1Y2JmNlx1Y2JmN1x1Y2JmOFx1Y2JmOVx1Y2JmYVx1Y2JmYlx1Y2JmY1x1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2JmZFx1Y2JmZVx1Y2JmZlx1Y2MwMFx1Y2MwMVx1Y2MwMlx1Y2MwM1x1Y2MwNFx1Y2MwNVx1Y2MwNlx1Y2MwN1x1Y2MwOFx1Y2MwOVx1Y2MwYVx1Y2MwYlx1Y2MwZVx1Y2MwZlx1Y2MxMVx1Y2MxMlx1Y2MxM1x1Y2MxNVx1Y2MxNlx1'@; put 'Y2MxN1x1Y2MxOFx1Y2MxOVx1Y2MxYVx1Y2MxYlx1Y2MxZVx1Y2MxZlx1Y2MyMFx1Y2MyM1x1Y2MyNFx4ZTZcdTAxMTFceGYwXHUwMTI3XHUwMTMxXHUwMTMzXHUwMTM4XHUwMTQwXHUwMTQyXHhmOFx1MDE1M1x4ZGZceGZlXHUwMTY3XHUwMTRiXHUwMTQ5XHUzMjAwXHUzMjAxXHUzMjAyXHUz'@; put 'MjAzXHUzMjA0XHUzMjA1XHUzMjA2XHUzMjA3XHUzMjA4XHUzMjA5XHUzMjBhXHUzMjBiXHUzMjBjXHUzMjBkXHUzMjBlXHUzMjBmXHUzMjEwXHUzMjExXHUzMjEyXHUzMjEzXHUzMjE0XHUzMjE1XHUzMjE2XHUzMjE3XHUzMjE4XHUzMjE5XHUzMjFhXHUzMjFiXHUyNDljXHUyNDlkXHUyNDll'@; put 'XHUyNDlmXHUyNGEwXHUyNGExXHUyNGEyXHUyNGEzXHUyNGE0XHUyNGE1XHUyNGE2XHUyNGE3XHUyNGE4XHUyNGE5XHUyNGFhXHUyNGFiXHUyNGFjXHUyNGFkXHUyNGFlXHUyNGFmXHUyNGIwXHUyNGIxXHUyNGIyXHUyNGIzXHUyNGI0XHUyNGI1XHUyNDc0XHUyNDc1XHUyNDc2XHUyNDc3XHUy'@; put 'NDc4XHUyNDc5XHUyNDdhXHUyNDdiXHUyNDdjXHUyNDdkXHUyNDdlXHUyNDdmXHUyNDgwXHUyNDgxXHUyNDgyXHhiOVx4YjJceGIzXHUyMDc0XHUyMDdmXHUyMDgxXHUyMDgyXHUyMDgzXHUyMDg0XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTY5XS5sZW5ndGg7KytwKTY1NTMzIT09X1sx'@; put 'NjldW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTY5XVtwXV09NDMyNjQrcCxiWzQzMjY0K3BdPV9bMTY5XVtwXSk7Zm9yKF9bMTcwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjYzI1XHVjYzI2XHVjYzJhXHVjYzJiXHVj'@; put 'YzJkXHVjYzJmXHVjYzMxXHVjYzMyXHVjYzMzXHVjYzM0XHVjYzM1XHVjYzM2XHVjYzM3XHVjYzNhXHVjYzNmXHVjYzQwXHVjYzQxXHVjYzQyXHVjYzQzXHVjYzQ2XHVjYzQ3XHVjYzQ5XHVjYzRhXHVjYzRiXHVjYzRkXHVjYzRlXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVjYzRmXHVjYzUwXHVjYzUxXHVjYzUyXHVjYzUzXHVjYzU2XHVjYzVhXHVjYzViXHVjYzVjXHVjYzVkXHVjYzVlXHVjYzVmXHVjYzYxXHVjYzYyXHVjYzYzXHVjYzY1XHVjYzY3XHVjYzY5XHVjYzZhXHVjYzZiXHVjYzZjXHVjYzZkXHVjYzZlXHVjYzZmXHVjYzcxXHVjYzcyXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjYzczXHVjYzc0XHVjYzc2XHVjYzc3XHVjYzc4XHVjYzc5XHVjYzdhXHVjYzdiXHVjYzdjXHVjYzdkXHVjYzdlXHVjYzdmXHVjYzgwXHVjYzgxXHVjYzgyXHVjYzgzXHVjYzg0XHVjYzg1XHVjYzg2XHVjYzg3XHVjYzg4XHVjYzg5XHVjYzhh'@; put 'XHVjYzhiXHVjYzhjXHVjYzhkXHVjYzhlXHVjYzhmXHVjYzkwXHVjYzkxXHVjYzkyXHVjYzkzXHUzMDQxXHUzMDQyXHUzMDQzXHUzMDQ0XHUzMDQ1XHUzMDQ2XHUzMDQ3XHUzMDQ4XHUzMDQ5XHUzMDRhXHUzMDRiXHUzMDRjXHUzMDRkXHUzMDRlXHUzMDRmXHUzMDUwXHUzMDUxXHUzMDUyXHUz'@; put 'MDUzXHUzMDU0XHUzMDU1XHUzMDU2XHUzMDU3XHUzMDU4XHUzMDU5XHUzMDVhXHUzMDViXHUzMDVjXHUzMDVkXHUzMDVlXHUzMDVmXHUzMDYwXHUzMDYxXHUzMDYyXHUzMDYzXHUzMDY0XHUzMDY1XHUzMDY2XHUzMDY3XHUzMDY4XHUzMDY5XHUzMDZhXHUzMDZiXHUzMDZjXHUzMDZkXHUzMDZl'@; put 'XHUzMDZmXHUzMDcwXHUzMDcxXHUzMDcyXHUzMDczXHUzMDc0XHUzMDc1XHUzMDc2XHUzMDc3XHUzMDc4XHUzMDc5XHUzMDdhXHUzMDdiXHUzMDdjXHUzMDdkXHUzMDdlXHUzMDdmXHUzMDgwXHUzMDgxXHUzMDgyXHUzMDgzXHUzMDg0XHUzMDg1XHUzMDg2XHUzMDg3XHUzMDg4XHUzMDg5XHUz'@; put 'MDhhXHUzMDhiXHUzMDhjXHUzMDhkXHUzMDhlXHUzMDhmXHUzMDkwXHUzMDkxXHUzMDkyXHUzMDkzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTcwXS5sZW5ndGg7Kytw'@; put 'KTY1NTMzIT09X1sxNzBdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTcwXVtwXV09NDM1MjArcCxiWzQzNTIwK3BdPV9bMTcwXVtwXSk7Zm9yKF9bMTcxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjYzk0XHVjYzk1XHVj'@; put 'Yzk2XHVjYzk3XHVjYzlhXHVjYzliXHVjYzlkXHVjYzllXHVjYzlmXHVjY2ExXHVjY2EyXHVjY2EzXHVjY2E0XHVjY2E1XHVjY2E2XHVjY2E3XHVjY2FhXHVjY2FlXHVjY2FmXHVjY2IwXHVjY2IxXHVjY2IyXHVjY2IzXHVjY2I2XHVjY2I3XHVjY2I5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVjY2JhXHVjY2JiXHVjY2JkXHVjY2JlXHVjY2JmXHVjY2MwXHVjY2MxXHVjY2MyXHVjY2MzXHVjY2M2XHVjY2M4XHVjY2NhXHVjY2NiXHVjY2NjXHVjY2NkXHVjY2NlXHVjY2NmXHVjY2QxXHVjY2QyXHVjY2QzXHVjY2Q1XHVjY2Q2XHVjY2Q3XHVjY2Q4XHVjY2Q5XHVj'@; put 'Y2RhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjY2RiXHVjY2RjXHVjY2RkXHVjY2RlXHVjY2RmXHVjY2UwXHVjY2UxXHVjY2UyXHVjY2UzXHVjY2U1XHVjY2U2XHVjY2U3XHVjY2U4XHVjY2U5XHVjY2VhXHVjY2ViXHVjY2VkXHVjY2VlXHVjY2VmXHVjY2YxXHVjY2Yy'@; put 'XHVjY2YzXHVjY2Y0XHVjY2Y1XHVjY2Y2XHVjY2Y3XHVjY2Y4XHVjY2Y5XHVjY2ZhXHVjY2ZiXHVjY2ZjXHVjY2ZkXHUzMGExXHUzMGEyXHUzMGEzXHUzMGE0XHUzMGE1XHUzMGE2XHUzMGE3XHUzMGE4XHUzMGE5XHUzMGFhXHUzMGFiXHUzMGFjXHUzMGFkXHUzMGFlXHUzMGFmXHUzMGIwXHUz'@; put 'MGIxXHUzMGIyXHUzMGIzXHUzMGI0XHUzMGI1XHUzMGI2XHUzMGI3XHUzMGI4XHUzMGI5XHUzMGJhXHUzMGJiXHUzMGJjXHUzMGJkXHUzMGJlXHUzMGJmXHUzMGMwXHUzMGMxXHUzMGMyXHUzMGMzXHUzMGM0XHUzMGM1XHUzMGM2XHUzMGM3XHUzMGM4XHUzMGM5XHUzMGNhXHUzMGNiXHUzMGNj'@; put 'XHUzMGNkXHUzMGNlXHUzMGNmXHUzMGQwXHUzMGQxXHUzMGQyXHUzMGQzXHUzMGQ0XHUzMGQ1XHUzMGQ2XHUzMGQ3XHUzMGQ4XHUzMGQ5XHUzMGRhXHUzMGRiXHUzMGRjXHUzMGRkXHUzMGRlXHUzMGRmXHUzMGUwXHUzMGUxXHUzMGUyXHUzMGUzXHUzMGU0XHUzMGU1XHUzMGU2XHUzMGU3XHUz'@; put 'MGU4XHUzMGU5XHUzMGVhXHUzMGViXHUzMGVjXHUzMGVkXHUzMGVlXHUzMGVmXHUzMGYwXHUzMGYxXHUzMGYyXHUzMGYzXHUzMGY0XHUzMGY1XHUzMGY2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTcx'@; put 'XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNzFdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTcxXVtwXV09NDM3NzYrcCxiWzQzNzc2K3BdPV9bMTcxXVtwXSk7Zm9yKF9bMTcyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVj'@; put 'Y2ZlXHVjY2ZmXHVjZDAwXHVjZDAyXHVjZDAzXHVjZDA0XHVjZDA1XHVjZDA2XHVjZDA3XHVjZDBhXHVjZDBiXHVjZDBkXHVjZDBlXHVjZDBmXHVjZDExXHVjZDEyXHVjZDEzXHVjZDE0XHVjZDE1XHVjZDE2XHVjZDE3XHVjZDFhXHVjZDFjXHVjZDFlXHVjZDFmXHVjZDIwXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZDIxXHVjZDIyXHVjZDIzXHVjZDI1XHVjZDI2XHVjZDI3XHVjZDI5XHVjZDJhXHVjZDJiXHVjZDJkXHVjZDJlXHVjZDJmXHVjZDMwXHVjZDMxXHVjZDMyXHVjZDMzXHVjZDM0XHVjZDM1XHVjZDM2XHVjZDM3XHVjZDM4XHVjZDNhXHVjZDNiXHVj'@; put 'ZDNjXHVjZDNkXHVjZDNlXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZDNmXHVjZDQwXHVjZDQxXHVjZDQyXHVjZDQzXHVjZDQ0XHVjZDQ1XHVjZDQ2XHVjZDQ3XHVjZDQ4XHVjZDQ5XHVjZDRhXHVjZDRiXHVjZDRjXHVjZDRkXHVjZDRlXHVjZDRmXHVjZDUwXHVjZDUx'@; put 'XHVjZDUyXHVjZDUzXHVjZDU0XHVjZDU1XHVjZDU2XHVjZDU3XHVjZDU4XHVjZDU5XHVjZDVhXHVjZDViXHVjZDVkXHVjZDVlXHVjZDVmXHUwNDEwXHUwNDExXHUwNDEyXHUwNDEzXHUwNDE0XHUwNDE1XHUwNDAxXHUwNDE2XHUwNDE3XHUwNDE4XHUwNDE5XHUwNDFhXHUwNDFiXHUwNDFjXHUw'@; put 'NDFkXHUwNDFlXHUwNDFmXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5XHUwNDJhXHUwNDJiXHUwNDJjXHUwNDJkXHUwNDJlXHUwNDJmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDUxXHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUw'@; put 'NDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHUwNDRmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiks'@; put 'cD0wO3AhPV9bMTcyXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNzJdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTcyXVtwXV09NDQwMzIrcCxiWzQ0MDMyK3BdPV9bMTcyXVtwXSk7Zm9yKF9bMTczXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVjZDYxXHVjZDYyXHVjZDYzXHVjZDY1XHVjZDY2XHVjZDY3XHVjZDY4XHVjZDY5XHVjZDZhXHVjZDZiXHVjZDZlXHVjZDcwXHVjZDcyXHVjZDczXHVjZDc0XHVjZDc1XHVjZDc2XHVjZDc3XHVjZDc5XHVjZDdhXHVjZDdiXHVjZDdjXHVjZDdkXHVjZDdlXHVjZDdmXHVjZDgw'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZDgxXHVjZDgyXHVjZDgzXHVjZDg0XHVjZDg1XHVjZDg2XHVjZDg3XHVjZDg5XHVjZDhhXHVjZDhiXHVjZDhjXHVjZDhkXHVjZDhlXHVjZDhmXHVjZDkwXHVjZDkxXHVjZDkyXHVjZDkzXHVjZDk2XHVjZDk3XHVjZDk5XHVj'@; put 'ZDlhXHVjZDliXHVjZDlkXHVjZDllXHVjZDlmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZGEwXHVjZGExXHVjZGEyXHVjZGEzXHVjZGE2XHVjZGE4XHVjZGFhXHVjZGFiXHVjZGFjXHVjZGFkXHVjZGFlXHVjZGFmXHVjZGIxXHVjZGIyXHVjZGIzXHVjZGI0XHVjZGI1'@; put 'XHVjZGI2XHVjZGI3XHVjZGI4XHVjZGI5XHVjZGJhXHVjZGJiXHVjZGJjXHVjZGJkXHVjZGJlXHVjZGJmXHVjZGMwXHVjZGMxXHVjZGMyXHVjZGMzXHVjZGM1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'Ii5zcGxpdCgiIikscD0wO3AhPV9bMTczXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNzNdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTczXVtwXV09NDQyODgrcCxiWzQ0Mjg4K3BdPV9bMTczXVtwXSk7Zm9yKF9bMTc0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZGM2XHVjZGM3XHVjZGM4XHVjZGM5XHVjZGNhXHVjZGNiXHVjZGNkXHVjZGNlXHVjZGNmXHVjZGQxXHVjZGQyXHVjZGQzXHVjZGQ0XHVjZGQ1XHVjZGQ2XHVjZGQ3XHVjZGQ4XHVjZGQ5XHVjZGRhXHVjZGRiXHVjZGRjXHVjZGRkXHVjZGRlXHVjZGRm'@; put 'XHVjZGUwXHVjZGUxXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZGUyXHVjZGUzXHVjZGU0XHVjZGU1XHVjZGU2XHVjZGU3XHVjZGU5XHVjZGVhXHVjZGViXHVjZGVkXHVjZGVlXHVjZGVmXHVjZGYxXHVjZGYyXHVjZGYzXHVjZGY0XHVjZGY1XHVjZGY2XHVjZGY3XHVj'@; put 'ZGZhXHVjZGZjXHVjZGZlXHVjZGZmXHVjZTAwXHVjZTAxXHVjZTAyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZTAzXHVjZTA1XHVjZTA2XHVjZTA3XHVjZTA5XHVjZTBhXHVjZTBiXHVjZTBkXHVjZTBlXHVjZTBmXHVjZTEwXHVjZTExXHVjZTEyXHVjZTEzXHVjZTE1'@; put 'XHVjZTE2XHVjZTE3XHVjZTE4XHVjZTFhXHVjZTFiXHVjZTFjXHVjZTFkXHVjZTFlXHVjZTFmXHVjZTIyXHVjZTIzXHVjZTI1XHVjZTI2XHVjZTI3XHVjZTI5XHVjZTJhXHVjZTJiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTc0XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNzRdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTc0XVtwXV09NDQ1NDQrcCxiWzQ0NTQ0K3BdPV9bMTc0XVtwXSk7Zm9yKF9bMTc1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZTJjXHVjZTJkXHVjZTJlXHVjZTJmXHVjZTMyXHVjZTM0XHVjZTM2XHVjZTM3XHVjZTM4XHVjZTM5XHVjZTNhXHVjZTNiXHVjZTNjXHVjZTNkXHVjZTNlXHVjZTNmXHVjZTQwXHVjZTQxXHVjZTQyXHVjZTQzXHVjZTQ0XHVjZTQ1'@; put 'XHVjZTQ2XHVjZTQ3XHVjZTQ4XHVjZTQ5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZTRhXHVjZTRiXHVjZTRjXHVjZTRkXHVjZTRlXHVjZTRmXHVjZTUwXHVjZTUxXHVjZTUyXHVjZTUzXHVjZTU0XHVjZTU1XHVjZTU2XHVjZTU3XHVjZTVhXHVjZTViXHVjZTVkXHVj'@; put 'ZTVlXHVjZTYyXHVjZTYzXHVjZTY0XHVjZTY1XHVjZTY2XHVjZTY3XHVjZTZhXHVjZTZjXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZTZlXHVjZTZmXHVjZTcwXHVjZTcxXHVjZTcyXHVjZTczXHVjZTc2XHVjZTc3XHVjZTc5XHVjZTdhXHVjZTdiXHVjZTdkXHVjZTdl'@; put 'XHVjZTdmXHVjZTgwXHVjZTgxXHVjZTgyXHVjZTgzXHVjZTg2XHVjZTg4XHVjZThhXHVjZThiXHVjZThjXHVjZThkXHVjZThlXHVjZThmXHVjZTkyXHVjZTkzXHVjZTk1XHVjZTk2XHVjZTk3XHVjZTk5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTc1XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNzVdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTc1XVtwXV09NDQ4MDArcCxiWzQ0ODAwK3BdPV9bMTc1XVtwXSk7Zm9yKF9bMTc2XT0iXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZTlhXHVjZTliXHVjZTljXHVjZTlkXHVjZTllXHVjZTlmXHVjZWEyXHVjZWE2XHVjZWE3XHVjZWE4XHVjZWE5XHVjZWFhXHVjZWFiXHVjZWFlXHVjZWFmXHVjZWIwXHVjZWIxXHVjZWIyXHVjZWIzXHVjZWI0'@; put 'XHVjZWI1XHVjZWI2XHVjZWI3XHVjZWI4XHVjZWI5XHVjZWJhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZWJiXHVjZWJjXHVjZWJkXHVjZWJlXHVjZWJmXHVjZWMwXHVjZWMyXHVjZWMzXHVjZWM0XHVjZWM1XHVjZWM2XHVjZWM3XHVjZWM4XHVjZWM5XHVjZWNhXHVj'@; put 'ZWNiXHVjZWNjXHVjZWNkXHVjZWNlXHVjZWNmXHVjZWQwXHVjZWQxXHVjZWQyXHVjZWQzXHVjZWQ0XHVjZWQ1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZWQ2XHVjZWQ3XHVjZWQ4XHVjZWQ5XHVjZWRhXHVjZWRiXHVjZWRjXHVjZWRkXHVjZWRlXHVjZWRmXHVjZWUw'@; put 'XHVjZWUxXHVjZWUyXHVjZWUzXHVjZWU2XHVjZWU3XHVjZWU5XHVjZWVhXHVjZWVkXHVjZWVlXHVjZWVmXHVjZWYwXHVjZWYxXHVjZWYyXHVjZWYzXHVjZWY2XHVjZWZhXHVjZWZiXHVjZWZjXHVjZWZkXHVjZWZlXHVjZWZmXHVhYzAwXHVhYzAxXHVhYzA0XHVhYzA3XHVhYzA4XHVhYzA5XHVh'@; put 'YzBhXHVhYzEwXHVhYzExXHVhYzEyXHVhYzEzXHVhYzE0XHVhYzE1XHVhYzE2XHVhYzE3XHVhYzE5XHVhYzFhXHVhYzFiXHVhYzFjXHVhYzFkXHVhYzIwXHVhYzI0XHVhYzJjXHVhYzJkXHVhYzJmXHVhYzMwXHVhYzMxXHVhYzM4XHVhYzM5XHVhYzNjXHVhYzQwXHVhYzRiXHVhYzRkXHVhYzU0'@; put 'XHVhYzU4XHVhYzVjXHVhYzcwXHVhYzcxXHVhYzc0XHVhYzc3XHVhYzc4XHVhYzdhXHVhYzgwXHVhYzgxXHVhYzgzXHVhYzg0XHVhYzg1XHVhYzg2XHVhYzg5XHVhYzhhXHVhYzhiXHVhYzhjXHVhYzkwXHVhYzk0XHVhYzljXHVhYzlkXHVhYzlmXHVhY2EwXHVhY2ExXHVhY2E4XHVhY2E5XHVh'@; put 'Y2FhXHVhY2FjXHVhY2FmXHVhY2IwXHVhY2I4XHVhY2I5XHVhY2JiXHVhY2JjXHVhY2JkXHVhY2MxXHVhY2M0XHVhY2M4XHVhY2NjXHVhY2Q1XHVhY2Q3XHVhY2UwXHVhY2UxXHVhY2U0XHVhY2U3XHVhY2U4XHVhY2VhXHVhY2VjXHVhY2VmXHVhY2YwXHVhY2YxXHVhY2YzXHVhY2Y1XHVhY2Y2'@; put 'XHVhY2ZjXHVhY2ZkXHVhZDAwXHVhZDA0XHVhZDA2XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTc2XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNzZdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTc2XVtwXV09NDUwNTYrcCxiWzQ1MDU2K3BdPV9bMTc2XVtwXSk7Zm9yKF9bMTc3XT0iXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZjAyXHVjZjAzXHVjZjA1XHVjZjA2XHVjZjA3XHVjZjA5XHVjZjBhXHVjZjBiXHVjZjBjXHVjZjBkXHVjZjBlXHVjZjBmXHVjZjEyXHVjZjE0XHVjZjE2XHVjZjE3XHVjZjE4XHVjZjE5'@; put 'XHVjZjFhXHVjZjFiXHVjZjFkXHVjZjFlXHVjZjFmXHVjZjIxXHVjZjIyXHVjZjIzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZjI1XHVjZjI2XHVjZjI3XHVjZjI4XHVjZjI5XHVjZjJhXHVjZjJiXHVjZjJlXHVjZjMyXHVjZjMzXHVjZjM0XHVjZjM1XHVjZjM2XHVj'@; put 'ZjM3XHVjZjM5XHVjZjNhXHVjZjNiXHVjZjNjXHVjZjNkXHVjZjNlXHVjZjNmXHVjZjQwXHVjZjQxXHVjZjQyXHVjZjQzXHVjZjQ0XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZjQ1XHVjZjQ2XHVjZjQ3XHVjZjQ4XHVjZjQ5XHVjZjRhXHVjZjRiXHVjZjRjXHVjZjRk'@; put 'XHVjZjRlXHVjZjRmXHVjZjUwXHVjZjUxXHVjZjUyXHVjZjUzXHVjZjU2XHVjZjU3XHVjZjU5XHVjZjVhXHVjZjViXHVjZjVkXHVjZjVlXHVjZjVmXHVjZjYwXHVjZjYxXHVjZjYyXHVjZjYzXHVjZjY2XHVjZjY4XHVjZjZhXHVjZjZiXHVjZjZjXHVhZDBjXHVhZDBkXHVhZDBmXHVhZDExXHVh'@; put 'ZDE4XHVhZDFjXHVhZDIwXHVhZDI5XHVhZDJjXHVhZDJkXHVhZDM0XHVhZDM1XHVhZDM4XHVhZDNjXHVhZDQ0XHVhZDQ1XHVhZDQ3XHVhZDQ5XHVhZDUwXHVhZDU0XHVhZDU4XHVhZDYxXHVhZDYzXHVhZDZjXHVhZDZkXHVhZDcwXHVhZDczXHVhZDc0XHVhZDc1XHVhZDc2XHVhZDdiXHVhZDdj'@; put 'XHVhZDdkXHVhZDdmXHVhZDgxXHVhZDgyXHVhZDg4XHVhZDg5XHVhZDhjXHVhZDkwXHVhZDljXHVhZDlkXHVhZGE0XHVhZGI3XHVhZGMwXHVhZGMxXHVhZGM0XHVhZGM4XHVhZGQwXHVhZGQxXHVhZGQzXHVhZGRjXHVhZGUwXHVhZGU0XHVhZGY4XHVhZGY5XHVhZGZjXHVhZGZmXHVhZTAwXHVh'@; put 'ZTAxXHVhZTA4XHVhZTA5XHVhZTBiXHVhZTBkXHVhZTE0XHVhZTMwXHVhZTMxXHVhZTM0XHVhZTM3XHVhZTM4XHVhZTNhXHVhZTQwXHVhZTQxXHVhZTQzXHVhZTQ1XHVhZTQ2XHVhZTRhXHVhZTRjXHVhZTRkXHVhZTRlXHVhZTUwXHVhZTU0XHVhZTU2XHVhZTVjXHVhZTVkXHVhZTVmXHVhZTYw'@; put 'XHVhZTYxXHVhZTY1XHVhZTY4XHVhZTY5XHVhZTZjXHVhZTcwXHVhZTc4XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTc3XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNzddW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTc3XVtwXV09NDUzMTIrcCxiWzQ1MzEyK3BdPV9bMTc3XVtwXSk7Zm9y'@; put 'KF9bMTc4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZjZkXHVjZjZlXHVjZjZmXHVjZjcyXHVjZjczXHVjZjc1XHVjZjc2XHVjZjc3XHVjZjc5XHVjZjdhXHVjZjdiXHVjZjdjXHVjZjdkXHVjZjdlXHVjZjdmXHVjZjgx'@; put 'XHVjZjgyXHVjZjgzXHVjZjg0XHVjZjg2XHVjZjg3XHVjZjg4XHVjZjg5XHVjZjhhXHVjZjhiXHVjZjhkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZjhlXHVjZjhmXHVjZjkwXHVjZjkxXHVjZjkyXHVjZjkzXHVjZjk0XHVjZjk1XHVjZjk2XHVjZjk3XHVjZjk4XHVj'@; put 'Zjk5XHVjZjlhXHVjZjliXHVjZjljXHVjZjlkXHVjZjllXHVjZjlmXHVjZmEwXHVjZmEyXHVjZmEzXHVjZmE0XHVjZmE1XHVjZmE2XHVjZmE3XHVjZmE5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZmFhXHVjZmFiXHVjZmFjXHVjZmFkXHVjZmFlXHVjZmFmXHVjZmIx'@; put 'XHVjZmIyXHVjZmIzXHVjZmI0XHVjZmI1XHVjZmI2XHVjZmI3XHVjZmI4XHVjZmI5XHVjZmJhXHVjZmJiXHVjZmJjXHVjZmJkXHVjZmJlXHVjZmJmXHVjZmMwXHVjZmMxXHVjZmMyXHVjZmMzXHVjZmM1XHVjZmM2XHVjZmM3XHVjZmM4XHVjZmM5XHVjZmNhXHVjZmNiXHVhZTc5XHVhZTdiXHVh'@; put 'ZTdjXHVhZTdkXHVhZTg0XHVhZTg1XHVhZThjXHVhZWJjXHVhZWJkXHVhZWJlXHVhZWMwXHVhZWM0XHVhZWNjXHVhZWNkXHVhZWNmXHVhZWQwXHVhZWQxXHVhZWQ4XHVhZWQ5XHVhZWRjXHVhZWU4XHVhZWViXHVhZWVkXHVhZWY0XHVhZWY4XHVhZWZjXHVhZjA3XHVhZjA4XHVhZjBkXHVhZjEw'@; put 'XHVhZjJjXHVhZjJkXHVhZjMwXHVhZjMyXHVhZjM0XHVhZjNjXHVhZjNkXHVhZjNmXHVhZjQxXHVhZjQyXHVhZjQzXHVhZjQ4XHVhZjQ5XHVhZjUwXHVhZjVjXHVhZjVkXHVhZjY0XHVhZjY1XHVhZjc5XHVhZjgwXHVhZjg0XHVhZjg4XHVhZjkwXHVhZjkxXHVhZjk1XHVhZjljXHVhZmI4XHVh'@; put 'ZmI5XHVhZmJjXHVhZmMwXHVhZmM3XHVhZmM4XHVhZmM5XHVhZmNiXHVhZmNkXHVhZmNlXHVhZmQ0XHVhZmRjXHVhZmU4XHVhZmU5XHVhZmYwXHVhZmYxXHVhZmY0XHVhZmY4XHViMDAwXHViMDAxXHViMDA0XHViMDBjXHViMDEwXHViMDE0XHViMDFjXHViMDFkXHViMDI4XHViMDQ0XHViMDQ1'@; put 'XHViMDQ4XHViMDRhXHViMDRjXHViMDRlXHViMDUzXHViMDU0XHViMDU1XHViMDU3XHViMDU5XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTc4XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNzhdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTc4XVtwXV09NDU1NjgrcCxiWzQ1NTY4K3BdPV9b'@; put 'MTc4XVtwXSk7Zm9yKF9bMTc5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZmNjXHVjZmNkXHVjZmNlXHVjZmNmXHVjZmQwXHVjZmQxXHVjZmQyXHVjZmQzXHVjZmQ0XHVjZmQ1XHVjZmQ2XHVjZmQ3XHVjZmQ4XHVjZmQ5'@; put 'XHVjZmRhXHVjZmRiXHVjZmRjXHVjZmRkXHVjZmRlXHVjZmRmXHVjZmUyXHVjZmUzXHVjZmU1XHVjZmU2XHVjZmU3XHVjZmU5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZmVhXHVjZmViXHVjZmVjXHVjZmVkXHVjZmVlXHVjZmVmXHVjZmYyXHVjZmY0XHVjZmY2XHVj'@; put 'ZmY3XHVjZmY4XHVjZmY5XHVjZmZhXHVjZmZiXHVjZmZkXHVjZmZlXHVjZmZmXHVkMDAxXHVkMDAyXHVkMDAzXHVkMDA1XHVkMDA2XHVkMDA3XHVkMDA4XHVkMDA5XHVkMDBhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMDBiXHVkMDBjXHVkMDBkXHVkMDBlXHVkMDBm'@; put 'XHVkMDEwXHVkMDEyXHVkMDEzXHVkMDE0XHVkMDE1XHVkMDE2XHVkMDE3XHVkMDE5XHVkMDFhXHVkMDFiXHVkMDFjXHVkMDFkXHVkMDFlXHVkMDFmXHVkMDIwXHVkMDIxXHVkMDIyXHVkMDIzXHVkMDI0XHVkMDI1XHVkMDI2XHVkMDI3XHVkMDI4XHVkMDI5XHVkMDJhXHVkMDJiXHVkMDJjXHVi'@; put 'MDVkXHViMDdjXHViMDdkXHViMDgwXHViMDg0XHViMDhjXHViMDhkXHViMDhmXHViMDkxXHViMDk4XHViMDk5XHViMDlhXHViMDljXHViMDlmXHViMGEwXHViMGExXHViMGEyXHViMGE4XHViMGE5XHViMGFiXHViMGFjXHViMGFkXHViMGFlXHViMGFmXHViMGIxXHViMGIzXHViMGI0XHViMGI1'@; put 'XHViMGI4XHViMGJjXHViMGM0XHViMGM1XHViMGM3XHViMGM4XHViMGM5XHViMGQwXHViMGQxXHViMGQ0XHViMGQ4XHViMGUwXHViMGU1XHViMTA4XHViMTA5XHViMTBiXHViMTBjXHViMTEwXHViMTEyXHViMTEzXHViMTE4XHViMTE5XHViMTFiXHViMTFjXHViMTFkXHViMTIzXHViMTI0XHVi'@; put 'MTI1XHViMTI4XHViMTJjXHViMTM0XHViMTM1XHViMTM3XHViMTM4XHViMTM5XHViMTQwXHViMTQxXHViMTQ0XHViMTQ4XHViMTUwXHViMTUxXHViMTU0XHViMTU1XHViMTU4XHViMTVjXHViMTYwXHViMTc4XHViMTc5XHViMTdjXHViMTgwXHViMTgyXHViMTg4XHViMTg5XHViMThiXHViMThk'@; put 'XHViMTkyXHViMTkzXHViMTk0XHViMTk4XHViMTljXHViMWE4XHViMWNjXHViMWQwXHViMWQ0XHViMWRjXHViMWRkXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTc5XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNzldW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTc5XVtwXV09NDU4MjQrcCxi'@; put 'WzQ1ODI0K3BdPV9bMTc5XVtwXSk7Zm9yKF9bMTgwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMDJlXHVkMDJmXHVkMDMwXHVkMDMxXHVkMDMyXHVkMDMzXHVkMDM2XHVkMDM3XHVkMDM5XHVkMDNhXHVkMDNiXHVkMDNk'@; put 'XHVkMDNlXHVkMDNmXHVkMDQwXHVkMDQxXHVkMDQyXHVkMDQzXHVkMDQ2XHVkMDQ4XHVkMDRhXHVkMDRiXHVkMDRjXHVkMDRkXHVkMDRlXHVkMDRmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMDUxXHVkMDUyXHVkMDUzXHVkMDU1XHVkMDU2XHVkMDU3XHVkMDU5XHVk'@; put 'MDVhXHVkMDViXHVkMDVjXHVkMDVkXHVkMDVlXHVkMDVmXHVkMDYxXHVkMDYyXHVkMDYzXHVkMDY0XHVkMDY1XHVkMDY2XHVkMDY3XHVkMDY4XHVkMDY5XHVkMDZhXHVkMDZiXHVkMDZlXHVkMDZmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMDcxXHVkMDcyXHVkMDcz'@; put 'XHVkMDc1XHVkMDc2XHVkMDc3XHVkMDc4XHVkMDc5XHVkMDdhXHVkMDdiXHVkMDdlXHVkMDdmXHVkMDgwXHVkMDgyXHVkMDgzXHVkMDg0XHVkMDg1XHVkMDg2XHVkMDg3XHVkMDg4XHVkMDg5XHVkMDhhXHVkMDhiXHVkMDhjXHVkMDhkXHVkMDhlXHVkMDhmXHVkMDkwXHVkMDkxXHVkMDkyXHVk'@; put 'MDkzXHVkMDk0XHViMWRmXHViMWU4XHViMWU5XHViMWVjXHViMWYwXHViMWY5XHViMWZiXHViMWZkXHViMjA0XHViMjA1XHViMjA4XHViMjBiXHViMjBjXHViMjE0XHViMjE1XHViMjE3XHViMjE5XHViMjIwXHViMjM0XHViMjNjXHViMjU4XHViMjVjXHViMjYwXHViMjY4XHViMjY5XHViMjc0'@; put 'XHViMjc1XHViMjdjXHViMjg0XHViMjg1XHViMjg5XHViMjkwXHViMjkxXHViMjk0XHViMjk4XHViMjk5XHViMjlhXHViMmEwXHViMmExXHViMmEzXHViMmE1XHViMmE2XHViMmFhXHViMmFjXHViMmIwXHViMmI0XHViMmM4XHViMmM5XHViMmNjXHViMmQwXHViMmQyXHViMmQ4XHViMmQ5XHVi'@; put 'MmRiXHViMmRkXHViMmUyXHViMmU0XHViMmU1XHViMmU2XHViMmU4XHViMmViXHViMmVjXHViMmVkXHViMmVlXHViMmVmXHViMmYzXHViMmY0XHViMmY1XHViMmY3XHViMmY4XHViMmY5XHViMmZhXHViMmZiXHViMmZmXHViMzAwXHViMzAxXHViMzA0XHViMzA4XHViMzEwXHViMzExXHViMzEz'@; put 'XHViMzE0XHViMzE1XHViMzFjXHViMzU0XHViMzU1XHViMzU2XHViMzU4XHViMzViXHViMzVjXHViMzVlXHViMzVmXHViMzY0XHViMzY1XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTgwXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxODBdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTgwXVtw'@; put 'XV09NDYwODArcCxiWzQ2MDgwK3BdPV9bMTgwXVtwXSk7Zm9yKF9bMTgxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMDk1XHVkMDk2XHVkMDk3XHVkMDk4XHVkMDk5XHVkMDlhXHVkMDliXHVkMDljXHVkMDlkXHVkMDll'@; put 'XHVkMDlmXHVkMGEwXHVkMGExXHVkMGEyXHVkMGEzXHVkMGE2XHVkMGE3XHVkMGE5XHVkMGFhXHVkMGFiXHVkMGFkXHVkMGFlXHVkMGFmXHVkMGIwXHVkMGIxXHVkMGIyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMGIzXHVkMGI2XHVkMGI4XHVkMGJhXHVkMGJiXHVk'@; put 'MGJjXHVkMGJkXHVkMGJlXHVkMGJmXHVkMGMyXHVkMGMzXHVkMGM1XHVkMGM2XHVkMGM3XHVkMGNhXHVkMGNiXHVkMGNjXHVkMGNkXHVkMGNlXHVkMGNmXHVkMGQyXHVkMGQ2XHVkMGQ3XHVkMGQ4XHVkMGQ5XHVkMGRhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMGRi'@; put 'XHVkMGRlXHVkMGRmXHVkMGUxXHVkMGUyXHVkMGUzXHVkMGU1XHVkMGU2XHVkMGU3XHVkMGU4XHVkMGU5XHVkMGVhXHVkMGViXHVkMGVlXHVkMGYyXHVkMGYzXHVkMGY0XHVkMGY1XHVkMGY2XHVkMGY3XHVkMGY5XHVkMGZhXHVkMGZiXHVkMGZjXHVkMGZkXHVkMGZlXHVkMGZmXHVkMTAwXHVk'@; put 'MTAxXHVkMTAyXHVkMTAzXHVkMTA0XHViMzY3XHViMzY5XHViMzZiXHViMzZlXHViMzcwXHViMzcxXHViMzc0XHViMzc4XHViMzgwXHViMzgxXHViMzgzXHViMzg0XHViMzg1XHViMzhjXHViMzkwXHViMzk0XHViM2EwXHViM2ExXHViM2E4XHViM2FjXHViM2M0XHViM2M1XHViM2M4XHViM2Ni'@; put 'XHViM2NjXHViM2NlXHViM2QwXHViM2Q0XHViM2Q1XHViM2Q3XHViM2Q5XHViM2RiXHViM2RkXHViM2UwXHViM2U0XHViM2U4XHViM2ZjXHViNDEwXHViNDE4XHViNDFjXHViNDIwXHViNDI4XHViNDI5XHViNDJiXHViNDM0XHViNDUwXHViNDUxXHViNDU0XHViNDU4XHViNDYwXHViNDYxXHVi'@; put 'NDYzXHViNDY1XHViNDZjXHViNDgwXHViNDg4XHViNDlkXHViNGE0XHViNGE4XHViNGFjXHViNGI1XHViNGI3XHViNGI5XHViNGMwXHViNGM0XHViNGM4XHViNGQwXHViNGQ1XHViNGRjXHViNGRkXHViNGUwXHViNGUzXHViNGU0XHViNGU2XHViNGVjXHViNGVkXHViNGVmXHViNGYxXHViNGY4'@; put 'XHViNTE0XHViNTE1XHViNTE4XHViNTFiXHViNTFjXHViNTI0XHViNTI1XHViNTI3XHViNTI4XHViNTI5XHViNTJhXHViNTMwXHViNTMxXHViNTM0XHViNTM4XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTgxXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxODFdW3BdLmNoYXJDb2RlQXQoMCkm'@; put 'JihEW19bMTgxXVtwXV09NDYzMzYrcCxiWzQ2MzM2K3BdPV9bMTgxXVtwXSk7Zm9yKF9bMTgyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMTA1XHVkMTA2XHVkMTA3XHVkMTA4XHVkMTA5XHVkMTBhXHVkMTBiXHVkMTBj'@; put 'XHVkMTBlXHVkMTBmXHVkMTEwXHVkMTExXHVkMTEyXHVkMTEzXHVkMTE0XHVkMTE1XHVkMTE2XHVkMTE3XHVkMTE4XHVkMTE5XHVkMTFhXHVkMTFiXHVkMTFjXHVkMTFkXHVkMTFlXHVkMTFmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMTIwXHVkMTIxXHVkMTIyXHVk'@; put 'MTIzXHVkMTI0XHVkMTI1XHVkMTI2XHVkMTI3XHVkMTI4XHVkMTI5XHVkMTJhXHVkMTJiXHVkMTJjXHVkMTJkXHVkMTJlXHVkMTJmXHVkMTMyXHVkMTMzXHVkMTM1XHVkMTM2XHVkMTM3XHVkMTM5XHVkMTNiXHVkMTNjXHVkMTNkXHVkMTNlXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVkMTNmXHVkMTQyXHVkMTQ2XHVkMTQ3XHVkMTQ4XHVkMTQ5XHVkMTRhXHVkMTRiXHVkMTRlXHVkMTRmXHVkMTUxXHVkMTUyXHVkMTUzXHVkMTU1XHVkMTU2XHVkMTU3XHVkMTU4XHVkMTU5XHVkMTVhXHVkMTViXHVkMTVlXHVkMTYwXHVkMTYyXHVkMTYzXHVkMTY0XHVkMTY1XHVk'@; put 'MTY2XHVkMTY3XHVkMTY5XHVkMTZhXHVkMTZiXHVkMTZkXHViNTQwXHViNTQxXHViNTQzXHViNTQ0XHViNTQ1XHViNTRiXHViNTRjXHViNTRkXHViNTUwXHViNTU0XHViNTVjXHViNTVkXHViNTVmXHViNTYwXHViNTYxXHViNWEwXHViNWExXHViNWE0XHViNWE4XHViNWFhXHViNWFiXHViNWIw'@; put 'XHViNWIxXHViNWIzXHViNWI0XHViNWI1XHViNWJiXHViNWJjXHViNWJkXHViNWMwXHViNWM0XHViNWNjXHViNWNkXHViNWNmXHViNWQwXHViNWQxXHViNWQ4XHViNWVjXHViNjEwXHViNjExXHViNjE0XHViNjE4XHViNjI1XHViNjJjXHViNjM0XHViNjQ4XHViNjY0XHViNjY4XHViNjljXHVi'@; put 'NjlkXHViNmEwXHViNmE0XHViNmFiXHViNmFjXHViNmIxXHViNmQ0XHViNmYwXHViNmY0XHViNmY4XHViNzAwXHViNzAxXHViNzA1XHViNzI4XHViNzI5XHViNzJjXHViNzJmXHViNzMwXHViNzM4XHViNzM5XHViNzNiXHViNzQ0XHViNzQ4XHViNzRjXHViNzU0XHViNzU1XHViNzYwXHViNzY0'@; put 'XHViNzY4XHViNzcwXHViNzcxXHViNzczXHViNzc1XHViNzdjXHViNzdkXHViNzgwXHViNzg0XHViNzhjXHViNzhkXHViNzhmXHViNzkwXHViNzkxXHViNzkyXHViNzk2XHViNzk3XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTgyXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxODJdW3BdLmNo'@; put 'YXJDb2RlQXQoMCkmJihEW19bMTgyXVtwXV09NDY1OTIrcCxiWzQ2NTkyK3BdPV9bMTgyXVtwXSk7Zm9yKF9bMTgzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMTZlXHVkMTZmXHVkMTcwXHVkMTcxXHVkMTcyXHVkMTcz'@; put 'XHVkMTc0XHVkMTc1XHVkMTc2XHVkMTc3XHVkMTc4XHVkMTc5XHVkMTdhXHVkMTdiXHVkMTdkXHVkMTdlXHVkMTdmXHVkMTgwXHVkMTgxXHVkMTgyXHVkMTgzXHVkMTg1XHVkMTg2XHVkMTg3XHVkMTg5XHVkMThhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMThiXHVk'@; put 'MThjXHVkMThkXHVkMThlXHVkMThmXHVkMTkwXHVkMTkxXHVkMTkyXHVkMTkzXHVkMTk0XHVkMTk1XHVkMTk2XHVkMTk3XHVkMTk4XHVkMTk5XHVkMTlhXHVkMTliXHVkMTljXHVkMTlkXHVkMTllXHVkMTlmXHVkMWEyXHVkMWEzXHVkMWE1XHVkMWE2XHVkMWE3XHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVkMWE5XHVkMWFhXHVkMWFiXHVkMWFjXHVkMWFkXHVkMWFlXHVkMWFmXHVkMWIyXHVkMWI0XHVkMWI2XHVkMWI3XHVkMWI4XHVkMWI5XHVkMWJiXHVkMWJkXHVkMWJlXHVkMWJmXHVkMWMxXHVkMWMyXHVkMWMzXHVkMWM0XHVkMWM1XHVkMWM2XHVkMWM3XHVk'@; put 'MWM4XHVkMWM5XHVkMWNhXHVkMWNiXHVkMWNjXHVkMWNkXHVkMWNlXHVkMWNmXHViNzk4XHViNzk5XHViNzljXHViN2EwXHViN2E4XHViN2E5XHViN2FiXHViN2FjXHViN2FkXHViN2I0XHViN2I1XHViN2I4XHViN2M3XHViN2M5XHViN2VjXHViN2VkXHViN2YwXHViN2Y0XHViN2ZjXHViN2Zk'@; put 'XHViN2ZmXHViODAwXHViODAxXHViODA3XHViODA4XHViODA5XHViODBjXHViODEwXHViODE4XHViODE5XHViODFiXHViODFkXHViODI0XHViODI1XHViODI4XHViODJjXHViODM0XHViODM1XHViODM3XHViODM4XHViODM5XHViODQwXHViODQ0XHViODUxXHViODUzXHViODVjXHViODVkXHVi'@; put 'ODYwXHViODY0XHViODZjXHViODZkXHViODZmXHViODcxXHViODc4XHViODdjXHViODhkXHViOGE4XHViOGIwXHViOGI0XHViOGI4XHViOGMwXHViOGMxXHViOGMzXHViOGM1XHViOGNjXHViOGQwXHViOGQ0XHViOGRkXHViOGRmXHViOGUxXHViOGU4XHViOGU5XHViOGVjXHViOGYwXHViOGY4'@; put 'XHViOGY5XHViOGZiXHViOGZkXHViOTA0XHViOTE4XHViOTIwXHViOTNjXHViOTNkXHViOTQwXHViOTQ0XHViOTRjXHViOTRmXHViOTUxXHViOTU4XHViOTU5XHViOTVjXHViOTYwXHViOTY4XHViOTY5XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTgzXS5sZW5ndGg7KytwKTY1NTMzIT09'@; put 'X1sxODNdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTgzXVtwXV09NDY4NDgrcCxiWzQ2ODQ4K3BdPV9bMTgzXVtwXSk7Zm9yKF9bMTg0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMWQwXHVkMWQxXHVkMWQyXHVkMWQz'@; put 'XHVkMWQ0XHVkMWQ1XHVkMWQ2XHVkMWQ3XHVkMWQ5XHVkMWRhXHVkMWRiXHVkMWRjXHVkMWRkXHVkMWRlXHVkMWRmXHVkMWUwXHVkMWUxXHVkMWUyXHVkMWUzXHVkMWU0XHVkMWU1XHVkMWU2XHVkMWU3XHVkMWU4XHVkMWU5XHVkMWVhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVkMWViXHVkMWVjXHVkMWVkXHVkMWVlXHVkMWVmXHVkMWYwXHVkMWYxXHVkMWYyXHVkMWYzXHVkMWY1XHVkMWY2XHVkMWY3XHVkMWY5XHVkMWZhXHVkMWZiXHVkMWZjXHVkMWZkXHVkMWZlXHVkMWZmXHVkMjAwXHVkMjAxXHVkMjAyXHVkMjAzXHVkMjA0XHVkMjA1XHVkMjA2XHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMjA4XHVkMjBhXHVkMjBiXHVkMjBjXHVkMjBkXHVkMjBlXHVkMjBmXHVkMjExXHVkMjEyXHVkMjEzXHVkMjE0XHVkMjE1XHVkMjE2XHVkMjE3XHVkMjE4XHVkMjE5XHVkMjFhXHVkMjFiXHVkMjFjXHVkMjFkXHVkMjFlXHVkMjFmXHVk'@; put 'MjIwXHVkMjIxXHVkMjIyXHVkMjIzXHVkMjI0XHVkMjI1XHVkMjI2XHVkMjI3XHVkMjI4XHVkMjI5XHViOTZiXHViOTZkXHViOTc0XHViOTc1XHViOTc4XHViOTdjXHViOTg0XHViOTg1XHViOTg3XHViOTg5XHViOThhXHViOThkXHViOThlXHViOWFjXHViOWFkXHViOWIwXHViOWI0XHViOWJj'@; put 'XHViOWJkXHViOWJmXHViOWMxXHViOWM4XHViOWM5XHViOWNjXHViOWNlXHViOWNmXHViOWQwXHViOWQxXHViOWQyXHViOWQ4XHViOWQ5XHViOWRiXHViOWRkXHViOWRlXHViOWUxXHViOWUzXHViOWU0XHViOWU1XHViOWU4XHViOWVjXHViOWY0XHViOWY1XHViOWY3XHViOWY4XHViOWY5XHVi'@; put 'OWZhXHViYTAwXHViYTAxXHViYTA4XHViYTE1XHViYTM4XHViYTM5XHViYTNjXHViYTQwXHViYTQyXHViYTQ4XHViYTQ5XHViYTRiXHViYTRkXHViYTRlXHViYTUzXHViYTU0XHViYTU1XHViYTU4XHViYTVjXHViYTY0XHViYTY1XHViYTY3XHViYTY4XHViYTY5XHViYTcwXHViYTcxXHViYTc0'@; put 'XHViYTc4XHViYTgzXHViYTg0XHViYTg1XHViYTg3XHViYThjXHViYWE4XHViYWE5XHViYWFiXHViYWFjXHViYWIwXHViYWIyXHViYWI4XHViYWI5XHViYWJiXHViYWJkXHViYWM0XHViYWM4XHViYWQ4XHViYWQ5XHViYWZjXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTg0XS5sZW5ndGg7'@; put 'KytwKTY1NTMzIT09X1sxODRdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTg0XVtwXV09NDcxMDQrcCxiWzQ3MTA0K3BdPV9bMTg0XVtwXSk7Zm9yKF9bMTg1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMjJhXHVkMjJi'@; put 'XHVkMjJlXHVkMjJmXHVkMjMxXHVkMjMyXHVkMjMzXHVkMjM1XHVkMjM2XHVkMjM3XHVkMjM4XHVkMjM5XHVkMjNhXHVkMjNiXHVkMjNlXHVkMjQwXHVkMjQyXHVkMjQzXHVkMjQ0XHVkMjQ1XHVkMjQ2XHVkMjQ3XHVkMjQ5XHVkMjRhXHVkMjRiXHVkMjRjXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVkMjRkXHVkMjRlXHVkMjRmXHVkMjUwXHVkMjUxXHVkMjUyXHVkMjUzXHVkMjU0XHVkMjU1XHVkMjU2XHVkMjU3XHVkMjU4XHVkMjU5XHVkMjVhXHVkMjViXHVkMjVkXHVkMjVlXHVkMjVmXHVkMjYwXHVkMjYxXHVkMjYyXHVkMjYzXHVkMjY1XHVkMjY2XHVkMjY3'@; put 'XHVkMjY4XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMjY5XHVkMjZhXHVkMjZiXHVkMjZjXHVkMjZkXHVkMjZlXHVkMjZmXHVkMjcwXHVkMjcxXHVkMjcyXHVkMjczXHVkMjc0XHVkMjc1XHVkMjc2XHVkMjc3XHVkMjc4XHVkMjc5XHVkMjdhXHVkMjdiXHVkMjdjXHVk'@; put 'MjdkXHVkMjdlXHVkMjdmXHVkMjgyXHVkMjgzXHVkMjg1XHVkMjg2XHVkMjg3XHVkMjg5XHVkMjhhXHVkMjhiXHVkMjhjXHViYjAwXHViYjA0XHViYjBkXHViYjBmXHViYjExXHViYjE4XHViYjFjXHViYjIwXHViYjI5XHViYjJiXHViYjM0XHViYjM1XHViYjM2XHViYjM4XHViYjNiXHViYjNj'@; put 'XHViYjNkXHViYjNlXHViYjQ0XHViYjQ1XHViYjQ3XHViYjQ5XHViYjRkXHViYjRmXHViYjUwXHViYjU0XHViYjU4XHViYjYxXHViYjYzXHViYjZjXHViYjg4XHViYjhjXHViYjkwXHViYmE0XHViYmE4XHViYmFjXHViYmI0XHViYmI3XHViYmMwXHViYmM0XHViYmM4XHViYmQwXHViYmQzXHVi'@; put 'YmY4XHViYmY5XHViYmZjXHViYmZmXHViYzAwXHViYzAyXHViYzA4XHViYzA5XHViYzBiXHViYzBjXHViYzBkXHViYzBmXHViYzExXHViYzE0XHViYzE1XHViYzE2XHViYzE3XHViYzE4XHViYzFiXHViYzFjXHViYzFkXHViYzFlXHViYzFmXHViYzI0XHViYzI1XHViYzI3XHViYzI5XHViYzJk'@; put 'XHViYzMwXHViYzMxXHViYzM0XHViYzM4XHViYzQwXHViYzQxXHViYzQzXHViYzQ0XHViYzQ1XHViYzQ5XHViYzRjXHViYzRkXHViYzUwXHViYzVkXHViYzg0XHViYzg1XHViYzg4XHViYzhiXHViYzhjXHViYzhlXHViYzk0XHViYzk1XHViYzk3XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9b'@; put 'MTg1XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxODVdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTg1XVtwXV09NDczNjArcCxiWzQ3MzYwK3BdPV9bMTg1XVtwXSk7Zm9yKF9bMTg2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVkMjhkXHVkMjhlXHVkMjhmXHVkMjkyXHVkMjkzXHVkMjk0XHVkMjk2XHVkMjk3XHVkMjk4XHVkMjk5XHVkMjlhXHVkMjliXHVkMjlkXHVkMjllXHVkMjlmXHVkMmExXHVkMmEyXHVkMmEzXHVkMmE1XHVkMmE2XHVkMmE3XHVkMmE4XHVkMmE5XHVkMmFhXHVkMmFiXHVkMmFkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMmFlXHVkMmFmXHVkMmIwXHVkMmIyXHVkMmIzXHVkMmI0XHVkMmI1XHVkMmI2XHVkMmI3XHVkMmJhXHVkMmJiXHVkMmJkXHVkMmJlXHVkMmMxXHVkMmMzXHVkMmM0XHVkMmM1XHVkMmM2XHVkMmM3XHVkMmNhXHVkMmNjXHVkMmNkXHVkMmNl'@; put 'XHVkMmNmXHVkMmQwXHVkMmQxXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMmQyXHVkMmQzXHVkMmQ1XHVkMmQ2XHVkMmQ3XHVkMmQ5XHVkMmRhXHVkMmRiXHVkMmRkXHVkMmRlXHVkMmRmXHVkMmUwXHVkMmUxXHVkMmUyXHVkMmUzXHVkMmU2XHVkMmU3XHVkMmU4XHVk'@; put 'MmU5XHVkMmVhXHVkMmViXHVkMmVjXHVkMmVkXHVkMmVlXHVkMmVmXHVkMmYyXHVkMmYzXHVkMmY1XHVkMmY2XHVkMmY3XHVkMmY5XHVkMmZhXHViYzk5XHViYzlhXHViY2EwXHViY2ExXHViY2E0XHViY2E3XHViY2E4XHViY2IwXHViY2IxXHViY2IzXHViY2I0XHViY2I1XHViY2JjXHViY2Jk'@; put 'XHViY2MwXHViY2M0XHViY2NkXHViY2NmXHViY2QwXHViY2QxXHViY2Q1XHViY2Q4XHViY2RjXHViY2Y0XHViY2Y1XHViY2Y2XHViY2Y4XHViY2ZjXHViZDA0XHViZDA1XHViZDA3XHViZDA5XHViZDEwXHViZDE0XHViZDI0XHViZDJjXHViZDQwXHViZDQ4XHViZDQ5XHViZDRjXHViZDUwXHVi'@; put 'ZDU4XHViZDU5XHViZDY0XHViZDY4XHViZDgwXHViZDgxXHViZDg0XHViZDg3XHViZDg4XHViZDg5XHViZDhhXHViZDkwXHViZDkxXHViZDkzXHViZDk1XHViZDk5XHViZDlhXHViZDljXHViZGE0XHViZGIwXHViZGI4XHViZGQ0XHViZGQ1XHViZGQ4XHViZGRjXHViZGU5XHViZGYwXHViZGY0'@; put 'XHViZGY4XHViZTAwXHViZTAzXHViZTA1XHViZTBjXHViZTBkXHViZTEwXHViZTE0XHViZTFjXHViZTFkXHViZTFmXHViZTQ0XHViZTQ1XHViZTQ4XHViZTRjXHViZTRlXHViZTU0XHViZTU1XHViZTU3XHViZTU5XHViZTVhXHViZTViXHViZTYwXHViZTYxXHViZTY0XHVmZmZkIi5zcGxpdCgi'@; put 'IikscD0wO3AhPV9bMTg2XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxODZdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTg2XVtwXV09NDc2MTYrcCxiWzQ3NjE2K3BdPV9bMTg2XVtwXSk7Zm9yKF9bMTg3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVkMmZiXHVkMmZjXHVkMmZkXHVkMmZlXHVkMmZmXHVkMzAyXHVkMzA0XHVkMzA2XHVkMzA3XHVkMzA4XHVkMzA5XHVkMzBhXHVkMzBiXHVkMzBmXHVkMzExXHVkMzEyXHVkMzEzXHVkMzE1XHVkMzE3XHVkMzE4XHVkMzE5XHVkMzFhXHVkMzFiXHVkMzFlXHVkMzIyXHVk'@; put 'MzIzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMzI0XHVkMzI2XHVkMzI3XHVkMzJhXHVkMzJiXHVkMzJkXHVkMzJlXHVkMzJmXHVkMzMxXHVkMzMyXHVkMzMzXHVkMzM0XHVkMzM1XHVkMzM2XHVkMzM3XHVkMzNhXHVkMzNlXHVkMzNmXHVkMzQwXHVkMzQxXHVkMzQy'@; put 'XHVkMzQzXHVkMzQ2XHVkMzQ3XHVkMzQ4XHVkMzQ5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMzRhXHVkMzRiXHVkMzRjXHVkMzRkXHVkMzRlXHVkMzRmXHVkMzUwXHVkMzUxXHVkMzUyXHVkMzUzXHVkMzU0XHVkMzU1XHVkMzU2XHVkMzU3XHVkMzU4XHVkMzU5XHVk'@; put 'MzVhXHVkMzViXHVkMzVjXHVkMzVkXHVkMzVlXHVkMzVmXHVkMzYwXHVkMzYxXHVkMzYyXHVkMzYzXHVkMzY0XHVkMzY1XHVkMzY2XHVkMzY3XHVkMzY4XHVkMzY5XHViZTY4XHViZTZhXHViZTcwXHViZTcxXHViZTczXHViZTc0XHViZTc1XHViZTdiXHViZTdjXHViZTdkXHViZTgwXHViZTg0'@; put 'XHViZThjXHViZThkXHViZThmXHViZTkwXHViZTkxXHViZTk4XHViZTk5XHViZWE4XHViZWQwXHViZWQxXHViZWQ0XHViZWQ3XHViZWQ4XHViZWUwXHViZWUzXHViZWU0XHViZWU1XHViZWVjXHViZjAxXHViZjA4XHViZjA5XHViZjE4XHViZjE5XHViZjFiXHViZjFjXHViZjFkXHViZjQwXHVi'@; put 'ZjQxXHViZjQ0XHViZjQ4XHViZjUwXHViZjUxXHViZjU1XHViZjk0XHViZmIwXHViZmM1XHViZmNjXHViZmNkXHViZmQwXHViZmQ0XHViZmRjXHViZmRmXHViZmUxXHVjMDNjXHVjMDUxXHVjMDU4XHVjMDVjXHVjMDYwXHVjMDY4XHVjMDY5XHVjMDkwXHVjMDkxXHVjMDk0XHVjMDk4XHVjMGEw'@; put 'XHVjMGExXHVjMGEzXHVjMGE1XHVjMGFjXHVjMGFkXHVjMGFmXHVjMGIwXHVjMGIzXHVjMGI0XHVjMGI1XHVjMGI2XHVjMGJjXHVjMGJkXHVjMGJmXHVjMGMwXHVjMGMxXHVjMGM1XHVjMGM4XHVjMGM5XHVjMGNjXHVjMGQwXHVjMGQ4XHVjMGQ5XHVjMGRiXHVjMGRjXHVjMGRkXHVjMGU0XHVm'@; put 'ZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTg3XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxODddW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTg3XVtwXV09NDc4NzIrcCxiWzQ3ODcyK3BdPV9bMTg3XVtwXSk7Zm9yKF9bMTg4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMzZhXHVkMzZiXHVkMzZjXHVkMzZkXHVkMzZlXHVkMzZmXHVkMzcwXHVkMzcxXHVkMzcyXHVkMzczXHVkMzc0XHVkMzc1XHVkMzc2XHVkMzc3XHVkMzc4XHVkMzc5XHVkMzdhXHVkMzdiXHVkMzdlXHVkMzdmXHVkMzgxXHVkMzgyXHVkMzgzXHVk'@; put 'Mzg1XHVkMzg2XHVkMzg3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMzg4XHVkMzg5XHVkMzhhXHVkMzhiXHVkMzhlXHVkMzkyXHVkMzkzXHVkMzk0XHVkMzk1XHVkMzk2XHVkMzk3XHVkMzlhXHVkMzliXHVkMzlkXHVkMzllXHVkMzlmXHVkM2ExXHVkM2EyXHVkM2Ez'@; put 'XHVkM2E0XHVkM2E1XHVkM2E2XHVkM2E3XHVkM2FhXHVkM2FjXHVkM2FlXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkM2FmXHVkM2IwXHVkM2IxXHVkM2IyXHVkM2IzXHVkM2I1XHVkM2I2XHVkM2I3XHVkM2I5XHVkM2JhXHVkM2JiXHVkM2JkXHVkM2JlXHVkM2JmXHVk'@; put 'M2MwXHVkM2MxXHVkM2MyXHVkM2MzXHVkM2M2XHVkM2M3XHVkM2NhXHVkM2NiXHVkM2NjXHVkM2NkXHVkM2NlXHVkM2NmXHVkM2QxXHVkM2QyXHVkM2QzXHVkM2Q0XHVkM2Q1XHVkM2Q2XHVjMGU1XHVjMGU4XHVjMGVjXHVjMGY0XHVjMGY1XHVjMGY3XHVjMGY5XHVjMTAwXHVjMTA0XHVjMTA4'@; put 'XHVjMTEwXHVjMTE1XHVjMTFjXHVjMTFkXHVjMTFlXHVjMTFmXHVjMTIwXHVjMTIzXHVjMTI0XHVjMTI2XHVjMTI3XHVjMTJjXHVjMTJkXHVjMTJmXHVjMTMwXHVjMTMxXHVjMTM2XHVjMTM4XHVjMTM5XHVjMTNjXHVjMTQwXHVjMTQ4XHVjMTQ5XHVjMTRiXHVjMTRjXHVjMTRkXHVjMTU0XHVj'@; put 'MTU1XHVjMTU4XHVjMTVjXHVjMTY0XHVjMTY1XHVjMTY3XHVjMTY4XHVjMTY5XHVjMTcwXHVjMTc0XHVjMTc4XHVjMTg1XHVjMThjXHVjMThkXHVjMThlXHVjMTkwXHVjMTk0XHVjMTk2XHVjMTljXHVjMTlkXHVjMTlmXHVjMWExXHVjMWE1XHVjMWE4XHVjMWE5XHVjMWFjXHVjMWIwXHVjMWJk'@; put 'XHVjMWM0XHVjMWM4XHVjMWNjXHVjMWQ0XHVjMWQ3XHVjMWQ4XHVjMWUwXHVjMWU0XHVjMWU4XHVjMWYwXHVjMWYxXHVjMWYzXHVjMWZjXHVjMWZkXHVjMjAwXHVjMjA0XHVjMjBjXHVjMjBkXHVjMjBmXHVjMjExXHVjMjE4XHVjMjE5XHVjMjFjXHVjMjFmXHVjMjIwXHVjMjI4XHVjMjI5XHVj'@; put 'MjJiXHVjMjJkXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTg4XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxODhdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTg4XVtwXV09NDgxMjgrcCxiWzQ4MTI4K3BdPV9bMTg4XVtwXSk7Zm9yKF9bMTg5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkM2Q3XHVkM2Q5XHVkM2RhXHVkM2RiXHVkM2RjXHVkM2RkXHVkM2RlXHVkM2RmXHVkM2UwXHVkM2UyXHVkM2U0XHVkM2U1XHVkM2U2XHVkM2U3XHVkM2U4XHVkM2U5XHVkM2VhXHVkM2ViXHVkM2VlXHVkM2VmXHVkM2YxXHVk'@; put 'M2YyXHVkM2YzXHVkM2Y1XHVkM2Y2XHVkM2Y3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkM2Y4XHVkM2Y5XHVkM2ZhXHVkM2ZiXHVkM2ZlXHVkNDAwXHVkNDAyXHVkNDAzXHVkNDA0XHVkNDA1XHVkNDA2XHVkNDA3XHVkNDA5XHVkNDBhXHVkNDBiXHVkNDBjXHVkNDBk'@; put 'XHVkNDBlXHVkNDBmXHVkNDEwXHVkNDExXHVkNDEyXHVkNDEzXHVkNDE0XHVkNDE1XHVkNDE2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNDE3XHVkNDE4XHVkNDE5XHVkNDFhXHVkNDFiXHVkNDFjXHVkNDFlXHVkNDFmXHVkNDIwXHVkNDIxXHVkNDIyXHVkNDIzXHVk'@; put 'NDI0XHVkNDI1XHVkNDI2XHVkNDI3XHVkNDI4XHVkNDI5XHVkNDJhXHVkNDJiXHVkNDJjXHVkNDJkXHVkNDJlXHVkNDJmXHVkNDMwXHVkNDMxXHVkNDMyXHVkNDMzXHVkNDM0XHVkNDM1XHVkNDM2XHVkNDM3XHVjMjJmXHVjMjMxXHVjMjMyXHVjMjM0XHVjMjQ4XHVjMjUwXHVjMjUxXHVjMjU0'@; put 'XHVjMjU4XHVjMjYwXHVjMjY1XHVjMjZjXHVjMjZkXHVjMjcwXHVjMjc0XHVjMjdjXHVjMjdkXHVjMjdmXHVjMjgxXHVjMjg4XHVjMjg5XHVjMjkwXHVjMjk4XHVjMjliXHVjMjlkXHVjMmE0XHVjMmE1XHVjMmE4XHVjMmFjXHVjMmFkXHVjMmI0XHVjMmI1XHVjMmI3XHVjMmI5XHVjMmRjXHVj'@; put 'MmRkXHVjMmUwXHVjMmUzXHVjMmU0XHVjMmViXHVjMmVjXHVjMmVkXHVjMmVmXHVjMmYxXHVjMmY2XHVjMmY4XHVjMmY5XHVjMmZiXHVjMmZjXHVjMzAwXHVjMzA4XHVjMzA5XHVjMzBjXHVjMzBkXHVjMzEzXHVjMzE0XHVjMzE1XHVjMzE4XHVjMzFjXHVjMzI0XHVjMzI1XHVjMzI4XHVjMzI5'@; put 'XHVjMzQ1XHVjMzY4XHVjMzY5XHVjMzZjXHVjMzcwXHVjMzcyXHVjMzc4XHVjMzc5XHVjMzdjXHVjMzdkXHVjMzg0XHVjMzg4XHVjMzhjXHVjM2MwXHVjM2Q4XHVjM2Q5XHVjM2RjXHVjM2RmXHVjM2UwXHVjM2UyXHVjM2U4XHVjM2U5XHVjM2VkXHVjM2Y0XHVjM2Y1XHVjM2Y4XHVjNDA4XHVj'@; put 'NDEwXHVjNDI0XHVjNDJjXHVjNDMwXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTg5XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxODldW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTg5XVtwXV09NDgzODQrcCxiWzQ4Mzg0K3BdPV9bMTg5XVtwXSk7Zm9yKF9bMTkwXT0iXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNDM4XHVkNDM5XHVkNDNhXHVkNDNiXHVkNDNjXHVkNDNkXHVkNDNlXHVkNDNmXHVkNDQxXHVkNDQyXHVkNDQzXHVkNDQ1XHVkNDQ2XHVkNDQ3XHVkNDQ4XHVkNDQ5XHVkNDRhXHVkNDRiXHVkNDRjXHVk'@; put 'NDRkXHVkNDRlXHVkNDRmXHVkNDUwXHVkNDUxXHVkNDUyXHVkNDUzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNDU0XHVkNDU1XHVkNDU2XHVkNDU3XHVkNDU4XHVkNDU5XHVkNDVhXHVkNDViXHVkNDVkXHVkNDVlXHVkNDVmXHVkNDYxXHVkNDYyXHVkNDYzXHVkNDY1'@; put 'XHVkNDY2XHVkNDY3XHVkNDY4XHVkNDY5XHVkNDZhXHVkNDZiXHVkNDZjXHVkNDZlXHVkNDcwXHVkNDcxXHVkNDcyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNDczXHVkNDc0XHVkNDc1XHVkNDc2XHVkNDc3XHVkNDdhXHVkNDdiXHVkNDdkXHVkNDdlXHVkNDgxXHVk'@; put 'NDgzXHVkNDg0XHVkNDg1XHVkNDg2XHVkNDg3XHVkNDhhXHVkNDhjXHVkNDhlXHVkNDhmXHVkNDkwXHVkNDkxXHVkNDkyXHVkNDkzXHVkNDk1XHVkNDk2XHVkNDk3XHVkNDk4XHVkNDk5XHVkNDlhXHVkNDliXHVkNDljXHVkNDlkXHVjNDM0XHVjNDNjXHVjNDNkXHVjNDQ4XHVjNDY0XHVjNDY1'@; put 'XHVjNDY4XHVjNDZjXHVjNDc0XHVjNDc1XHVjNDc5XHVjNDgwXHVjNDk0XHVjNDljXHVjNGI4XHVjNGJjXHVjNGU5XHVjNGYwXHVjNGYxXHVjNGY0XHVjNGY4XHVjNGZhXHVjNGZmXHVjNTAwXHVjNTAxXHVjNTBjXHVjNTEwXHVjNTE0XHVjNTFjXHVjNTI4XHVjNTI5XHVjNTJjXHVjNTMwXHVj'@; put 'NTM4XHVjNTM5XHVjNTNiXHVjNTNkXHVjNTQ0XHVjNTQ1XHVjNTQ4XHVjNTQ5XHVjNTRhXHVjNTRjXHVjNTRkXHVjNTRlXHVjNTUzXHVjNTU0XHVjNTU1XHVjNTU3XHVjNTU4XHVjNTU5XHVjNTVkXHVjNTVlXHVjNTYwXHVjNTYxXHVjNTY0XHVjNTY4XHVjNTcwXHVjNTcxXHVjNTczXHVjNTc0'@; put 'XHVjNTc1XHVjNTdjXHVjNTdkXHVjNTgwXHVjNTg0XHVjNTg3XHVjNThjXHVjNThkXHVjNThmXHVjNTkxXHVjNTk1XHVjNTk3XHVjNTk4XHVjNTljXHVjNWEwXHVjNWE5XHVjNWI0XHVjNWI1XHVjNWI4XHVjNWI5XHVjNWJiXHVjNWJjXHVjNWJkXHVjNWJlXHVjNWM0XHVjNWM1XHVjNWM2XHVj'@; put 'NWM3XHVjNWM4XHVjNWM5XHVjNWNhXHVjNWNjXHVjNWNlXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTkwXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxOTBdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTkwXVtwXV09NDg2NDArcCxiWzQ4NjQwK3BdPV9bMTkwXVtwXSk7Zm9yKF9bMTkxXT0i'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNDllXHVkNDlmXHVkNGEwXHVkNGExXHVkNGEyXHVkNGEzXHVkNGE0XHVkNGE1XHVkNGE2XHVkNGE3XHVkNGE4XHVkNGFhXHVkNGFiXHVkNGFjXHVkNGFkXHVkNGFlXHVkNGFmXHVk'@; put 'NGIwXHVkNGIxXHVkNGIyXHVkNGIzXHVkNGI0XHVkNGI1XHVkNGI2XHVkNGI3XHVkNGI4XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNGI5XHVkNGJhXHVkNGJiXHVkNGJjXHVkNGJkXHVkNGJlXHVkNGJmXHVkNGMwXHVkNGMxXHVkNGMyXHVkNGMzXHVkNGM0XHVkNGM1'@; put 'XHVkNGM2XHVkNGM3XHVkNGM4XHVkNGM5XHVkNGNhXHVkNGNiXHVkNGNkXHVkNGNlXHVkNGNmXHVkNGQxXHVkNGQyXHVkNGQzXHVkNGQ1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNGQ2XHVkNGQ3XHVkNGQ4XHVkNGQ5XHVkNGRhXHVkNGRiXHVkNGRkXHVkNGRlXHVk'@; put 'NGUwXHVkNGUxXHVkNGUyXHVkNGUzXHVkNGU0XHVkNGU1XHVkNGU2XHVkNGU3XHVkNGU5XHVkNGVhXHVkNGViXHVkNGVkXHVkNGVlXHVkNGVmXHVkNGYxXHVkNGYyXHVkNGYzXHVkNGY0XHVkNGY1XHVkNGY2XHVkNGY3XHVkNGY5XHVkNGZhXHVkNGZjXHVjNWQwXHVjNWQxXHVjNWQ0XHVjNWQ4'@; put 'XHVjNWUwXHVjNWUxXHVjNWUzXHVjNWU1XHVjNWVjXHVjNWVkXHVjNWVlXHVjNWYwXHVjNWY0XHVjNWY2XHVjNWY3XHVjNWZjXHVjNWZkXHVjNWZlXHVjNWZmXHVjNjAwXHVjNjAxXHVjNjA1XHVjNjA2XHVjNjA3XHVjNjA4XHVjNjBjXHVjNjEwXHVjNjE4XHVjNjE5XHVjNjFiXHVjNjFjXHVj'@; put 'NjI0XHVjNjI1XHVjNjI4XHVjNjJjXHVjNjJkXHVjNjJlXHVjNjMwXHVjNjMzXHVjNjM0XHVjNjM1XHVjNjM3XHVjNjM5XHVjNjNiXHVjNjQwXHVjNjQxXHVjNjQ0XHVjNjQ4XHVjNjUwXHVjNjUxXHVjNjUzXHVjNjU0XHVjNjU1XHVjNjVjXHVjNjVkXHVjNjYwXHVjNjZjXHVjNjZmXHVjNjcx'@; put 'XHVjNjc4XHVjNjc5XHVjNjdjXHVjNjgwXHVjNjg4XHVjNjg5XHVjNjhiXHVjNjhkXHVjNjk0XHVjNjk1XHVjNjk4XHVjNjljXHVjNmE0XHVjNmE1XHVjNmE3XHVjNmE5XHVjNmIwXHVjNmIxXHVjNmI0XHVjNmI4XHVjNmI5XHVjNmJhXHVjNmMwXHVjNmMxXHVjNmMzXHVjNmM1XHVjNmNjXHVj'@; put 'NmNkXHVjNmQwXHVjNmQ0XHVjNmRjXHVjNmRkXHVjNmUwXHVjNmUxXHVjNmU4XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTkxXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxOTFdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTkxXVtwXV09NDg4OTYrcCxiWzQ4ODk2K3BdPV9bMTkxXVtwXSk7'@; put 'Zm9yKF9bMTkyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNGZlXHVkNGZmXHVkNTAwXHVkNTAxXHVkNTAyXHVkNTAzXHVkNTA1XHVkNTA2XHVkNTA3XHVkNTA5XHVkNTBhXHVkNTBiXHVkNTBkXHVkNTBlXHVkNTBmXHVk'@; put 'NTEwXHVkNTExXHVkNTEyXHVkNTEzXHVkNTE2XHVkNTE4XHVkNTE5XHVkNTFhXHVkNTFiXHVkNTFjXHVkNTFkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNTFlXHVkNTFmXHVkNTIwXHVkNTIxXHVkNTIyXHVkNTIzXHVkNTI0XHVkNTI1XHVkNTI2XHVkNTI3XHVkNTI4'@; put 'XHVkNTI5XHVkNTJhXHVkNTJiXHVkNTJjXHVkNTJkXHVkNTJlXHVkNTJmXHVkNTMwXHVkNTMxXHVkNTMyXHVkNTMzXHVkNTM0XHVkNTM1XHVkNTM2XHVkNTM3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNTM4XHVkNTM5XHVkNTNhXHVkNTNiXHVkNTNlXHVkNTNmXHVk'@; put 'NTQxXHVkNTQyXHVkNTQzXHVkNTQ1XHVkNTQ2XHVkNTQ3XHVkNTQ4XHVkNTQ5XHVkNTRhXHVkNTRiXHVkNTRlXHVkNTUwXHVkNTUyXHVkNTUzXHVkNTU0XHVkNTU1XHVkNTU2XHVkNTU3XHVkNTVhXHVkNTViXHVkNTVkXHVkNTVlXHVkNTVmXHVkNTYxXHVkNTYyXHVkNTYzXHVjNmU5XHVjNmVj'@; put 'XHVjNmYwXHVjNmY4XHVjNmY5XHVjNmZkXHVjNzA0XHVjNzA1XHVjNzA4XHVjNzBjXHVjNzE0XHVjNzE1XHVjNzE3XHVjNzE5XHVjNzIwXHVjNzIxXHVjNzI0XHVjNzI4XHVjNzMwXHVjNzMxXHVjNzMzXHVjNzM1XHVjNzM3XHVjNzNjXHVjNzNkXHVjNzQwXHVjNzQ0XHVjNzRhXHVjNzRjXHVj'@; put 'NzRkXHVjNzRmXHVjNzUxXHVjNzUyXHVjNzUzXHVjNzU0XHVjNzU1XHVjNzU2XHVjNzU3XHVjNzU4XHVjNzVjXHVjNzYwXHVjNzY4XHVjNzZiXHVjNzc0XHVjNzc1XHVjNzc4XHVjNzdjXHVjNzdkXHVjNzdlXHVjNzgzXHVjNzg0XHVjNzg1XHVjNzg3XHVjNzg4XHVjNzg5XHVjNzhhXHVjNzhl'@; put 'XHVjNzkwXHVjNzkxXHVjNzk0XHVjNzk2XHVjNzk3XHVjNzk4XHVjNzlhXHVjN2EwXHVjN2ExXHVjN2EzXHVjN2E0XHVjN2E1XHVjN2E2XHVjN2FjXHVjN2FkXHVjN2IwXHVjN2I0XHVjN2JjXHVjN2JkXHVjN2JmXHVjN2MwXHVjN2MxXHVjN2M4XHVjN2M5XHVjN2NjXHVjN2NlXHVjN2QwXHVj'@; put 'N2Q4XHVjN2RkXHVjN2U0XHVjN2U4XHVjN2VjXHVjODAwXHVjODAxXHVjODA0XHVjODA4XHVjODBhXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTkyXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxOTJdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTkyXVtwXV09NDkxNTIrcCxiWzQ5MTUyK3Bd'@; put 'PV9bMTkyXVtwXSk7Zm9yKF9bMTkzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNTY0XHVkNTY2XHVkNTY3XHVkNTZhXHVkNTZjXHVkNTZlXHVkNTZmXHVkNTcwXHVkNTcxXHVkNTcyXHVkNTczXHVkNTc2XHVkNTc3XHVk'@; put 'NTc5XHVkNTdhXHVkNTdiXHVkNTdkXHVkNTdlXHVkNTdmXHVkNTgwXHVkNTgxXHVkNTgyXHVkNTgzXHVkNTg2XHVkNThhXHVkNThiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNThjXHVkNThkXHVkNThlXHVkNThmXHVkNTkxXHVkNTkyXHVkNTkzXHVkNTk0XHVkNTk1'@; put 'XHVkNTk2XHVkNTk3XHVkNTk4XHVkNTk5XHVkNTlhXHVkNTliXHVkNTljXHVkNTlkXHVkNTllXHVkNTlmXHVkNWEwXHVkNWExXHVkNWEyXHVkNWEzXHVkNWE0XHVkNWE2XHVkNWE3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNWE4XHVkNWE5XHVkNWFhXHVkNWFiXHVk'@; put 'NWFjXHVkNWFkXHVkNWFlXHVkNWFmXHVkNWIwXHVkNWIxXHVkNWIyXHVkNWIzXHVkNWI0XHVkNWI1XHVkNWI2XHVkNWI3XHVkNWI4XHVkNWI5XHVkNWJhXHVkNWJiXHVkNWJjXHVkNWJkXHVkNWJlXHVkNWJmXHVkNWMwXHVkNWMxXHVkNWMyXHVkNWMzXHVkNWM0XHVkNWM1XHVkNWM2XHVkNWM3'@; put 'XHVjODEwXHVjODExXHVjODEzXHVjODE1XHVjODE2XHVjODFjXHVjODFkXHVjODIwXHVjODI0XHVjODJjXHVjODJkXHVjODJmXHVjODMxXHVjODM4XHVjODNjXHVjODQwXHVjODQ4XHVjODQ5XHVjODRjXHVjODRkXHVjODU0XHVjODcwXHVjODcxXHVjODc0XHVjODc4XHVjODdhXHVjODgwXHVj'@; put 'ODgxXHVjODgzXHVjODg1XHVjODg2XHVjODg3XHVjODhiXHVjODhjXHVjODhkXHVjODk0XHVjODlkXHVjODlmXHVjOGExXHVjOGE4XHVjOGJjXHVjOGJkXHVjOGM0XHVjOGM4XHVjOGNjXHVjOGQ0XHVjOGQ1XHVjOGQ3XHVjOGQ5XHVjOGUwXHVjOGUxXHVjOGU0XHVjOGY1XHVjOGZjXHVjOGZk'@; put 'XHVjOTAwXHVjOTA0XHVjOTA1XHVjOTA2XHVjOTBjXHVjOTBkXHVjOTBmXHVjOTExXHVjOTE4XHVjOTJjXHVjOTM0XHVjOTUwXHVjOTUxXHVjOTU0XHVjOTU4XHVjOTYwXHVjOTYxXHVjOTYzXHVjOTZjXHVjOTcwXHVjOTc0XHVjOTdjXHVjOTg4XHVjOTg5XHVjOThjXHVjOTkwXHVjOTk4XHVj'@; put 'OTk5XHVjOTliXHVjOTlkXHVjOWMwXHVjOWMxXHVjOWM0XHVjOWM3XHVjOWM4XHVjOWNhXHVjOWQwXHVjOWQxXHVjOWQzXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTkzXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxOTNdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTkzXVtwXV09NDk0MDgr'@; put 'cCxiWzQ5NDA4K3BdPV9bMTkzXVtwXSk7Zm9yKF9bMTk0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNWNhXHVkNWNiXHVkNWNkXHVkNWNlXHVkNWNmXHVkNWQxXHVkNWQzXHVkNWQ0XHVkNWQ1XHVkNWQ2XHVkNWQ3XHVk'@; put 'NWRhXHVkNWRjXHVkNWRlXHVkNWRmXHVkNWUwXHVkNWUxXHVkNWUyXHVkNWUzXHVkNWU2XHVkNWU3XHVkNWU5XHVkNWVhXHVkNWViXHVkNWVkXHVkNWVlXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNWVmXHVkNWYwXHVkNWYxXHVkNWYyXHVkNWYzXHVkNWY2XHVkNWY4'@; put 'XHVkNWZhXHVkNWZiXHVkNWZjXHVkNWZkXHVkNWZlXHVkNWZmXHVkNjAyXHVkNjAzXHVkNjA1XHVkNjA2XHVkNjA3XHVkNjA5XHVkNjBhXHVkNjBiXHVkNjBjXHVkNjBkXHVkNjBlXHVkNjBmXHVkNjEyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNjE2XHVkNjE3XHVk'@; put 'NjE4XHVkNjE5XHVkNjFhXHVkNjFiXHVkNjFkXHVkNjFlXHVkNjFmXHVkNjIxXHVkNjIyXHVkNjIzXHVkNjI1XHVkNjI2XHVkNjI3XHVkNjI4XHVkNjI5XHVkNjJhXHVkNjJiXHVkNjJjXHVkNjJlXHVkNjJmXHVkNjMwXHVkNjMxXHVkNjMyXHVkNjMzXHVkNjM0XHVkNjM1XHVkNjM2XHVkNjM3'@; put 'XHVkNjNhXHVkNjNiXHVjOWQ1XHVjOWQ2XHVjOWQ5XHVjOWRhXHVjOWRjXHVjOWRkXHVjOWUwXHVjOWUyXHVjOWU0XHVjOWU3XHVjOWVjXHVjOWVkXHVjOWVmXHVjOWYwXHVjOWYxXHVjOWY4XHVjOWY5XHVjOWZjXHVjYTAwXHVjYTA4XHVjYTA5XHVjYTBiXHVjYTBjXHVjYTBkXHVjYTE0XHVj'@; put 'YTE4XHVjYTI5XHVjYTRjXHVjYTRkXHVjYTUwXHVjYTU0XHVjYTVjXHVjYTVkXHVjYTVmXHVjYTYwXHVjYTYxXHVjYTY4XHVjYTdkXHVjYTg0XHVjYTk4XHVjYWJjXHVjYWJkXHVjYWMwXHVjYWM0XHVjYWNjXHVjYWNkXHVjYWNmXHVjYWQxXHVjYWQzXHVjYWQ4XHVjYWQ5XHVjYWUwXHVjYWVj'@; put 'XHVjYWY0XHVjYjA4XHVjYjEwXHVjYjE0XHVjYjE4XHVjYjIwXHVjYjIxXHVjYjQxXHVjYjQ4XHVjYjQ5XHVjYjRjXHVjYjUwXHVjYjU4XHVjYjU5XHVjYjVkXHVjYjY0XHVjYjc4XHVjYjc5XHVjYjljXHVjYmI4XHVjYmQ0XHVjYmU0XHVjYmU3XHVjYmU5XHVjYzBjXHVjYzBkXHVjYzEwXHVj'@; put 'YzE0XHVjYzFjXHVjYzFkXHVjYzIxXHVjYzIyXHVjYzI3XHVjYzI4XHVjYzI5XHVjYzJjXHVjYzJlXHVjYzMwXHVjYzM4XHVjYzM5XHVjYzNiXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTk0XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxOTRdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTk0'@; put 'XVtwXV09NDk2NjQrcCxiWzQ5NjY0K3BdPV9bMTk0XVtwXSk7Zm9yKF9bMTk1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNjNkXHVkNjNlXHVkNjNmXHVkNjQxXHVkNjQyXHVkNjQzXHVkNjQ0XHVkNjQ2XHVkNjQ3XHVk'@; put 'NjRhXHVkNjRjXHVkNjRlXHVkNjRmXHVkNjUwXHVkNjUyXHVkNjUzXHVkNjU2XHVkNjU3XHVkNjU5XHVkNjVhXHVkNjViXHVkNjVkXHVkNjVlXHVkNjVmXHVkNjYwXHVkNjYxXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNjYyXHVkNjYzXHVkNjY0XHVkNjY1XHVkNjY2'@; put 'XHVkNjY4XHVkNjZhXHVkNjZiXHVkNjZjXHVkNjZkXHVkNjZlXHVkNjZmXHVkNjcyXHVkNjczXHVkNjc1XHVkNjc2XHVkNjc3XHVkNjc4XHVkNjc5XHVkNjdhXHVkNjdiXHVkNjdjXHVkNjdkXHVkNjdlXHVkNjdmXHVkNjgwXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVk'@; put 'NjgxXHVkNjgyXHVkNjg0XHVkNjg2XHVkNjg3XHVkNjg4XHVkNjg5XHVkNjhhXHVkNjhiXHVkNjhlXHVkNjhmXHVkNjkxXHVkNjkyXHVkNjkzXHVkNjk1XHVkNjk2XHVkNjk3XHVkNjk4XHVkNjk5XHVkNjlhXHVkNjliXHVkNjljXHVkNjllXHVkNmEwXHVkNmEyXHVkNmEzXHVkNmE0XHVkNmE1'@; put 'XHVkNmE2XHVkNmE3XHVkNmE5XHVkNmFhXHVjYzNjXHVjYzNkXHVjYzNlXHVjYzQ0XHVjYzQ1XHVjYzQ4XHVjYzRjXHVjYzU0XHVjYzU1XHVjYzU3XHVjYzU4XHVjYzU5XHVjYzYwXHVjYzY0XHVjYzY2XHVjYzY4XHVjYzcwXHVjYzc1XHVjYzk4XHVjYzk5XHVjYzljXHVjY2EwXHVjY2E4XHVj'@; put 'Y2E5XHVjY2FiXHVjY2FjXHVjY2FkXHVjY2I0XHVjY2I1XHVjY2I4XHVjY2JjXHVjY2M0XHVjY2M1XHVjY2M3XHVjY2M5XHVjY2QwXHVjY2Q0XHVjY2U0XHVjY2VjXHVjY2YwXHVjZDAxXHVjZDA4XHVjZDA5XHVjZDBjXHVjZDEwXHVjZDE4XHVjZDE5XHVjZDFiXHVjZDFkXHVjZDI0XHVjZDI4'@; put 'XHVjZDJjXHVjZDM5XHVjZDVjXHVjZDYwXHVjZDY0XHVjZDZjXHVjZDZkXHVjZDZmXHVjZDcxXHVjZDc4XHVjZDg4XHVjZDk0XHVjZDk1XHVjZDk4XHVjZDljXHVjZGE0XHVjZGE1XHVjZGE3XHVjZGE5XHVjZGIwXHVjZGM0XHVjZGNjXHVjZGQwXHVjZGU4XHVjZGVjXHVjZGYwXHVjZGY4XHVj'@; put 'ZGY5XHVjZGZiXHVjZGZkXHVjZTA0XHVjZTA4XHVjZTBjXHVjZTE0XHVjZTE5XHVjZTIwXHVjZTIxXHVjZTI0XHVjZTI4XHVjZTMwXHVjZTMxXHVjZTMzXHVjZTM1XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTk1XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxOTVdW3BdLmNoYXJDb2RlQXQo'@; put 'MCkmJihEW19bMTk1XVtwXV09NDk5MjArcCxiWzQ5OTIwK3BdPV9bMTk1XVtwXSk7Zm9yKF9bMTk2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNmFiXHVkNmFkXHVkNmFlXHVkNmFmXHVkNmIxXHVkNmIyXHVkNmIzXHVk'@; put 'NmI0XHVkNmI1XHVkNmI2XHVkNmI3XHVkNmI4XHVkNmJhXHVkNmJjXHVkNmJkXHVkNmJlXHVkNmJmXHVkNmMwXHVkNmMxXHVkNmMyXHVkNmMzXHVkNmM2XHVkNmM3XHVkNmM5XHVkNmNhXHVkNmNiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNmNkXHVkNmNlXHVkNmNm'@; put 'XHVkNmQwXHVkNmQyXHVkNmQzXHVkNmQ1XHVkNmQ2XHVkNmQ4XHVkNmRhXHVkNmRiXHVkNmRjXHVkNmRkXHVkNmRlXHVkNmRmXHVkNmUxXHVkNmUyXHVkNmUzXHVkNmU1XHVkNmU2XHVkNmU3XHVkNmU5XHVkNmVhXHVkNmViXHVkNmVjXHVkNmVkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVkNmVlXHVkNmVmXHVkNmYxXHVkNmYyXHVkNmYzXHVkNmY0XHVkNmY2XHVkNmY3XHVkNmY4XHVkNmY5XHVkNmZhXHVkNmZiXHVkNmZlXHVkNmZmXHVkNzAxXHVkNzAyXHVkNzAzXHVkNzA1XHVkNzA2XHVkNzA3XHVkNzA4XHVkNzA5XHVkNzBhXHVkNzBiXHVkNzBjXHVkNzBk'@; put 'XHVkNzBlXHVkNzBmXHVkNzEwXHVkNzEyXHVkNzEzXHVkNzE0XHVjZTU4XHVjZTU5XHVjZTVjXHVjZTVmXHVjZTYwXHVjZTYxXHVjZTY4XHVjZTY5XHVjZTZiXHVjZTZkXHVjZTc0XHVjZTc1XHVjZTc4XHVjZTdjXHVjZTg0XHVjZTg1XHVjZTg3XHVjZTg5XHVjZTkwXHVjZTkxXHVjZTk0XHVj'@; put 'ZTk4XHVjZWEwXHVjZWExXHVjZWEzXHVjZWE0XHVjZWE1XHVjZWFjXHVjZWFkXHVjZWMxXHVjZWU0XHVjZWU1XHVjZWU4XHVjZWViXHVjZWVjXHVjZWY0XHVjZWY1XHVjZWY3XHVjZWY4XHVjZWY5XHVjZjAwXHVjZjAxXHVjZjA0XHVjZjA4XHVjZjEwXHVjZjExXHVjZjEzXHVjZjE1XHVjZjFj'@; put 'XHVjZjIwXHVjZjI0XHVjZjJjXHVjZjJkXHVjZjJmXHVjZjMwXHVjZjMxXHVjZjM4XHVjZjU0XHVjZjU1XHVjZjU4XHVjZjVjXHVjZjY0XHVjZjY1XHVjZjY3XHVjZjY5XHVjZjcwXHVjZjcxXHVjZjc0XHVjZjc4XHVjZjgwXHVjZjg1XHVjZjhjXHVjZmExXHVjZmE4XHVjZmIwXHVjZmM0XHVj'@; put 'ZmUwXHVjZmUxXHVjZmU0XHVjZmU4XHVjZmYwXHVjZmYxXHVjZmYzXHVjZmY1XHVjZmZjXHVkMDAwXHVkMDA0XHVkMDExXHVkMDE4XHVkMDJkXHVkMDM0XHVkMDM1XHVkMDM4XHVkMDNjXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTk2XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxOTZdW3Bd'@; put 'LmNoYXJDb2RlQXQoMCkmJihEW19bMTk2XVtwXV09NTAxNzYrcCxiWzUwMTc2K3BdPV9bMTk2XVtwXSk7Zm9yKF9bMTk3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNzE1XHVkNzE2XHVkNzE3XHVkNzFhXHVkNzFiXHVk'@; put 'NzFkXHVkNzFlXHVkNzFmXHVkNzIxXHVkNzIyXHVkNzIzXHVkNzI0XHVkNzI1XHVkNzI2XHVkNzI3XHVkNzJhXHVkNzJjXHVkNzJlXHVkNzJmXHVkNzMwXHVkNzMxXHVkNzMyXHVkNzMzXHVkNzM2XHVkNzM3XHVkNzM5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNzNh'@; put 'XHVkNzNiXHVkNzNkXHVkNzNlXHVkNzNmXHVkNzQwXHVkNzQxXHVkNzQyXHVkNzQzXHVkNzQ1XHVkNzQ2XHVkNzQ4XHVkNzRhXHVkNzRiXHVkNzRjXHVkNzRkXHVkNzRlXHVkNzRmXHVkNzUyXHVkNzUzXHVkNzU1XHVkNzVhXHVkNzViXHVkNzVjXHVkNzVkXHVkNzVlXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNzVmXHVkNzYyXHVkNzY0XHVkNzY2XHVkNzY3XHVkNzY4XHVkNzZhXHVkNzZiXHVkNzZkXHVkNzZlXHVkNzZmXHVkNzcxXHVkNzcyXHVkNzczXHVkNzc1XHVkNzc2XHVkNzc3XHVkNzc4XHVkNzc5XHVkNzdhXHVkNzdiXHVkNzdlXHVkNzdmXHVkNzgw'@; put 'XHVkNzgyXHVkNzgzXHVkNzg0XHVkNzg1XHVkNzg2XHVkNzg3XHVkNzhhXHVkNzhiXHVkMDQ0XHVkMDQ1XHVkMDQ3XHVkMDQ5XHVkMDUwXHVkMDU0XHVkMDU4XHVkMDYwXHVkMDZjXHVkMDZkXHVkMDcwXHVkMDc0XHVkMDdjXHVkMDdkXHVkMDgxXHVkMGE0XHVkMGE1XHVkMGE4XHVkMGFjXHVk'@; put 'MGI0XHVkMGI1XHVkMGI3XHVkMGI5XHVkMGMwXHVkMGMxXHVkMGM0XHVkMGM4XHVkMGM5XHVkMGQwXHVkMGQxXHVkMGQzXHVkMGQ0XHVkMGQ1XHVkMGRjXHVkMGRkXHVkMGUwXHVkMGU0XHVkMGVjXHVkMGVkXHVkMGVmXHVkMGYwXHVkMGYxXHVkMGY4XHVkMTBkXHVkMTMwXHVkMTMxXHVkMTM0'@; put 'XHVkMTM4XHVkMTNhXHVkMTQwXHVkMTQxXHVkMTQzXHVkMTQ0XHVkMTQ1XHVkMTRjXHVkMTRkXHVkMTUwXHVkMTU0XHVkMTVjXHVkMTVkXHVkMTVmXHVkMTYxXHVkMTY4XHVkMTZjXHVkMTdjXHVkMTg0XHVkMTg4XHVkMWEwXHVkMWExXHVkMWE0XHVkMWE4XHVkMWIwXHVkMWIxXHVkMWIzXHVk'@; put 'MWI1XHVkMWJhXHVkMWJjXHVkMWMwXHVkMWQ4XHVkMWY0XHVkMWY4XHVkMjA3XHVkMjA5XHVkMjEwXHVkMjJjXHVkMjJkXHVkMjMwXHVkMjM0XHVkMjNjXHVkMjNkXHVkMjNmXHVkMjQxXHVkMjQ4XHVkMjVjXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTk3XS5sZW5ndGg7KytwKTY1NTMz'@; put 'IT09X1sxOTddW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTk3XVtwXV09NTA0MzIrcCxiWzUwNDMyK3BdPV9bMTk3XVtwXSk7Zm9yKF9bMTk4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNzhkXHVkNzhlXHVkNzhmXHVk'@; put 'NzkxXHVkNzkyXHVkNzkzXHVkNzk0XHVkNzk1XHVkNzk2XHVkNzk3XHVkNzlhXHVkNzljXHVkNzllXHVkNzlmXHVkN2EwXHVkN2ExXHVkN2EyXHVkN2EzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMjY0XHVkMjgwXHVkMjgxXHVkMjg0XHVkMjg4XHVkMjkwXHVkMjkxXHVkMjk1XHVkMjljXHVkMmEwXHVkMmE0XHVkMmFjXHVkMmIxXHVkMmI4XHVkMmI5XHVkMmJjXHVkMmJmXHVk'@; put 'MmMwXHVkMmMyXHVkMmM4XHVkMmM5XHVkMmNiXHVkMmQ0XHVkMmQ4XHVkMmRjXHVkMmU0XHVkMmU1XHVkMmYwXHVkMmYxXHVkMmY0XHVkMmY4XHVkMzAwXHVkMzAxXHVkMzAzXHVkMzA1XHVkMzBjXHVkMzBkXHVkMzBlXHVkMzEwXHVkMzE0XHVkMzE2XHVkMzFjXHVkMzFkXHVkMzFmXHVkMzIw'@; put 'XHVkMzIxXHVkMzI1XHVkMzI4XHVkMzI5XHVkMzJjXHVkMzMwXHVkMzM4XHVkMzM5XHVkMzNiXHVkMzNjXHVkMzNkXHVkMzQ0XHVkMzQ1XHVkMzdjXHVkMzdkXHVkMzgwXHVkMzg0XHVkMzhjXHVkMzhkXHVkMzhmXHVkMzkwXHVkMzkxXHVkMzk4XHVkMzk5XHVkMzljXHVkM2EwXHVkM2E4XHVk'@; put 'M2E5XHVkM2FiXHVkM2FkXHVkM2I0XHVkM2I4XHVkM2JjXHVkM2M0XHVkM2M1XHVkM2M4XHVkM2M5XHVkM2QwXHVkM2Q4XHVkM2UxXHVkM2UzXHVkM2VjXHVkM2VkXHVkM2YwXHVkM2Y0XHVkM2ZjXHVkM2ZkXHVkM2ZmXHVkNDAxXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTk4XS5sZW5n'@; put 'dGg7KytwKTY1NTMzIT09X1sxOThdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTk4XVtwXV09NTA2ODgrcCxiWzUwNjg4K3BdPV9bMTk4XVtwXSk7Zm9yKF9bMTk5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNDA4XHVkNDFkXHVkNDQwXHVkNDQ0XHVkNDVjXHVkNDYwXHVkNDY0XHVkNDZkXHVkNDZmXHVkNDc4XHVkNDc5XHVkNDdjXHVkNDdmXHVkNDgwXHVkNDgyXHVk'@; put 'NDg4XHVkNDg5XHVkNDhiXHVkNDhkXHVkNDk0XHVkNGE5XHVkNGNjXHVkNGQwXHVkNGQ0XHVkNGRjXHVkNGRmXHVkNGU4XHVkNGVjXHVkNGYwXHVkNGY4XHVkNGZiXHVkNGZkXHVkNTA0XHVkNTA4XHVkNTBjXHVkNTE0XHVkNTE1XHVkNTE3XHVkNTNjXHVkNTNkXHVkNTQwXHVkNTQ0XHVkNTRj'@; put 'XHVkNTRkXHVkNTRmXHVkNTUxXHVkNTU4XHVkNTU5XHVkNTVjXHVkNTYwXHVkNTY1XHVkNTY4XHVkNTY5XHVkNTZiXHVkNTZkXHVkNTc0XHVkNTc1XHVkNTc4XHVkNTdjXHVkNTg0XHVkNTg1XHVkNTg3XHVkNTg4XHVkNTg5XHVkNTkwXHVkNWE1XHVkNWM4XHVkNWM5XHVkNWNjXHVkNWQwXHVk'@; put 'NWQyXHVkNWQ4XHVkNWQ5XHVkNWRiXHVkNWRkXHVkNWU0XHVkNWU1XHVkNWU4XHVkNWVjXHVkNWY0XHVkNWY1XHVkNWY3XHVkNWY5XHVkNjAwXHVkNjAxXHVkNjA0XHVkNjA4XHVkNjEwXHVkNjExXHVkNjEzXHVkNjE0XHVkNjE1XHVkNjFjXHVkNjIwXHVmZmZkIi5zcGxpdCgiIikscD0wO3Ah'@; put 'PV9bMTk5XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxOTldW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTk5XVtwXV09NTA5NDQrcCxiWzUwOTQ0K3BdPV9bMTk5XVtwXSk7Zm9yKF9bMjAwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNjI0XHVkNjJkXHVkNjM4XHVkNjM5XHVkNjNjXHVkNjQwXHVkNjQ1XHVkNjQ4XHVkNjQ5XHVkNjRiXHVkNjRkXHVkNjUxXHVkNjU0XHVk'@; put 'NjU1XHVkNjU4XHVkNjVjXHVkNjY3XHVkNjY5XHVkNjcwXHVkNjcxXHVkNjc0XHVkNjgzXHVkNjg1XHVkNjhjXHVkNjhkXHVkNjkwXHVkNjk0XHVkNjlkXHVkNjlmXHVkNmExXHVkNmE4XHVkNmFjXHVkNmIwXHVkNmI5XHVkNmJiXHVkNmM0XHVkNmM1XHVkNmM4XHVkNmNjXHVkNmQxXHVkNmQ0'@; put 'XHVkNmQ3XHVkNmQ5XHVkNmUwXHVkNmU0XHVkNmU4XHVkNmYwXHVkNmY1XHVkNmZjXHVkNmZkXHVkNzAwXHVkNzA0XHVkNzExXHVkNzE4XHVkNzE5XHVkNzFjXHVkNzIwXHVkNzI4XHVkNzI5XHVkNzJiXHVkNzJkXHVkNzM0XHVkNzM1XHVkNzM4XHVkNzNjXHVkNzQ0XHVkNzQ3XHVkNzQ5XHVk'@; put 'NzUwXHVkNzUxXHVkNzU0XHVkNzU2XHVkNzU3XHVkNzU4XHVkNzU5XHVkNzYwXHVkNzYxXHVkNzYzXHVkNzY1XHVkNzY5XHVkNzZjXHVkNzcwXHVkNzc0XHVkNzdjXHVkNzdkXHVkNzgxXHVkNzg4XHVkNzg5XHVkNzhjXHVkNzkwXHVkNzk4XHVkNzk5XHVkNzliXHVkNzlkXHVmZmZkIi5zcGxp'@; put 'dCgiIikscD0wO3AhPV9bMjAwXS5sZW5ndGg7KytwKTY1NTMzIT09X1syMDBdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjAwXVtwXV09NTEyMDArcCxiWzUxMjAwK3BdPV9bMjAwXVtwXSk7Zm9yKF9bMjAyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU0ZjNkXHU0ZjczXHU1MDQ3XHU1MGY5XHU1MmEwXHU1M2VmXHU1NDc1XHU1NGU1XHU1NjA5XHU1YWMxXHU1YmI2XHU2'@; put 'Njg3XHU2N2I2XHU2N2I3XHU2N2VmXHU2YjRjXHU3M2MyXHU3NWMyXHU3YTNjXHU4MmRiXHU4MzA0XHU4ODU3XHU4ODg4XHU4YTM2XHU4Y2M4XHU4ZGNmXHU4ZWZiXHU4ZmU2XHU5OWQ1XHU1MjNiXHU1Mzc0XHU1NDA0XHU2MDZhXHU2MTY0XHU2YmJjXHU3M2NmXHU4MTFhXHU4OWJhXHU4OWQy'@; put 'XHU5NWEzXHU0ZjgzXHU1MjBhXHU1OGJlXHU1OTc4XHU1OWU2XHU1ZTcyXHU1ZTc5XHU2MWM3XHU2M2MwXHU2NzQ2XHU2N2VjXHU2ODdmXHU2Zjk3XHU3NjRlXHU3NzBiXHU3OGY1XHU3YTA4XHU3YWZmXHU3YzIxXHU4MDlkXHU4MjZlXHU4MjcxXHU4YWViXHU5NTkzXHU0ZTZiXHU1NTlkXHU2'@; put 'NmY3XHU2ZTM0XHU3OGEzXHU3YWVkXHU4NDViXHU4OTEwXHU4NzRlXHU5N2E4XHU1MmQ4XHU1NzRlXHU1ODJhXHU1ZDRjXHU2MTFmXHU2MWJlXHU2MjIxXHU2NTYyXHU2N2QxXHU2YTQ0XHU2ZTFiXHU3NTE4XHU3NWIzXHU3NmUzXHU3N2IwXHU3ZDNhXHU5MGFmXHU5NDUxXHU5NDUyXHU5Zjk1'@; put 'XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjAyXS5sZW5ndGg7KytwKTY1NTMzIT09X1syMDJdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjAyXVtwXV09NTE3MTIrcCxiWzUxNzEyK3BdPV9bMjAyXVtwXSk7Zm9yKF9bMjAzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1MzIzXHU1Y2FjXHU3NTMyXHU4MGRiXHU5MjQwXHU5NTk4XHU1MjViXHU1ODA4XHU1OWRjXHU1'@; put 'Y2ExXHU1ZDE3XHU1ZWI3XHU1ZjNhXHU1ZjRhXHU2MTc3XHU2YzVmXHU3NTdhXHU3NTg2XHU3Y2UwXHU3ZDczXHU3ZGIxXHU3ZjhjXHU4MTU0XHU4MjIxXHU4NTkxXHU4OTQxXHU4YjFiXHU5MmZjXHU5NjRkXHU5YzQ3XHU0ZWNiXHU0ZWY3XHU1MDBiXHU1MWYxXHU1ODRmXHU2MTM3XHU2MTNl'@; put 'XHU2MTY4XHU2NTM5XHU2OWVhXHU2ZjExXHU3NWE1XHU3Njg2XHU3NmQ2XHU3Yjg3XHU4MmE1XHU4NGNiXHVmOTAwXHU5M2E3XHU5NThiXHU1NTgwXHU1YmEyXHU1NzUxXHVmOTAxXHU3Y2IzXHU3ZmI5XHU5MWI1XHU1MDI4XHU1M2JiXHU1YzQ1XHU1ZGU4XHU2MmQyXHU2MzZlXHU2NGRhXHU2'@; put 'NGU3XHU2ZTIwXHU3MGFjXHU3OTViXHU4ZGRkXHU4ZTFlXHVmOTAyXHU5MDdkXHU5MjQ1XHU5MmY4XHU0ZTdlXHU0ZWY2XHU1MDY1XHU1ZGZlXHU1ZWZhXHU2MTA2XHU2OTU3XHU4MTcxXHU4NjU0XHU4ZTQ3XHU5Mzc1XHU5YTJiXHU0ZTVlXHU1MDkxXHU2NzcwXHU2ODQwXHU1MTA5XHU1Mjhk'@; put 'XHU1MjkyXHU2YWEyXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjAzXS5sZW5ndGg7KytwKTY1NTMzIT09X1syMDNdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjAzXVtwXV09NTE5NjgrcCxiWzUxOTY4K3BdPV9bMjAzXVtwXSk7Zm9yKF9bMjA0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3N2JjXHU5MjEwXHU5ZWQ0XHU1MmFiXHU2MDJmXHU4ZmYyXHU1MDQ4XHU2'@; put 'MWE5XHU2M2VkXHU2NGNhXHU2ODNjXHU2YTg0XHU2ZmMwXHU4MTg4XHU4OWExXHU5Njk0XHU1ODA1XHU3MjdkXHU3MmFjXHU3NTA0XHU3ZDc5XHU3ZTZkXHU4MGE5XHU4OThiXHU4Yjc0XHU5MDYzXHU5ZDUxXHU2Mjg5XHU2YzdhXHU2ZjU0XHU3ZDUwXHU3ZjNhXHU4YTIzXHU1MTdjXHU2MTRh'@; put 'XHU3YjlkXHU4YjE5XHU5MjU3XHU5MzhjXHU0ZWFjXHU0ZmQzXHU1MDFlXHU1MGJlXHU1MTA2XHU1MmMxXHU1MmNkXHU1MzdmXHU1NzcwXHU1ODgzXHU1ZTlhXHU1ZjkxXHU2MTc2XHU2MWFjXHU2NGNlXHU2NTZjXHU2NjZmXHU2NmJiXHU2NmY0XHU2ODk3XHU2ZDg3XHU3MDg1XHU3MGYxXHU3'@; put 'NDlmXHU3NGE1XHU3NGNhXHU3NWQ5XHU3ODZjXHU3OGVjXHU3YWRmXHU3YWY2XHU3ZDQ1XHU3ZDkzXHU4MDE1XHU4MDNmXHU4MTFiXHU4Mzk2XHU4YjY2XHU4ZjE1XHU5MDE1XHU5M2UxXHU5ODAzXHU5ODM4XHU5YTVhXHU5YmU4XHU0ZmMyXHU1NTUzXHU1ODNhXHU1OTUxXHU1YjYzXHU1YzQ2'@; put 'XHU2MGI4XHU2MjEyXHU2ODQyXHU2OGIwXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjA0XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMDRdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjA0XVtwXV09NTIyMjQrcCxiWzUyMjI0K3BdPV9bMjA0XVtwXSk7Zm9yKF9bMjA1XT0iXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2OGU4XHU2ZWFhXHU3NTRjXHU3Njc4XHU3OGNlXHU3'@; put 'YTNkXHU3Y2ZiXHU3ZTZiXHU3ZTdjXHU4YTA4XHU4YWExXHU4YzNmXHU5NjhlXHU5ZGM0XHU1M2U0XHU1M2U5XHU1NDRhXHU1NDcxXHU1NmZhXHU1OWQxXHU1YjY0XHU1YzNiXHU1ZWFiXHU2MmY3XHU2NTM3XHU2NTQ1XHU2NTcyXHU2NmEwXHU2N2FmXHU2OWMxXHU2Y2JkXHU3NWZjXHU3Njkw'@; put 'XHU3NzdlXHU3YTNmXHU3Zjk0XHU4MDAzXHU4MGExXHU4MThmXHU4MmU2XHU4MmZkXHU4M2YwXHU4NWMxXHU4ODMxXHU4OGI0XHU4YWE1XHVmOTAzXHU4ZjljXHU5MzJlXHU5NmM3XHU5ODY3XHU5YWQ4XHU5ZjEzXHU1NGVkXHU2NTliXHU2NmYyXHU2ODhmXHU3YTQwXHU4YzM3XHU5ZDYwXHU1'@; put 'NmYwXHU1NzY0XHU1ZDExXHU2NjA2XHU2OGIxXHU2OGNkXHU2ZWZlXHU3NDI4XHU4ODllXHU5YmU0XHU2YzY4XHVmOTA0XHU5YWE4XHU0ZjliXHU1MTZjXHU1MTcxXHU1MjlmXHU1YjU0XHU1ZGU1XHU2MDUwXHU2MDZkXHU2MmYxXHU2M2E3XHU2NTNiXHU3M2Q5XHU3YTdhXHU4NmEzXHU4Y2Ey'@; put 'XHU5NzhmXHU0ZTMyXHU1YmUxXHU2MjA4XHU2NzljXHU3NGRjXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjA1XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMDVdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjA1XVtwXV09NTI0ODArcCxiWzUyNDgwK3BdPV9bMjA1XVtwXSk7Zm9yKF9bMjA2'@; put 'XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3OWQxXHU4M2QzXHU4YTg3XHU4'@; put 'YWIyXHU4ZGU4XHU5MDRlXHU5MzRiXHU5ODQ2XHU1ZWQzXHU2OWU4XHU4NWZmXHU5MGVkXHVmOTA1XHU1MWEwXHU1Yjk4XHU1YmVjXHU2MTYzXHU2OGZhXHU2YjNlXHU3MDRjXHU3NDJmXHU3NGQ4XHU3YmExXHU3ZjUwXHU4M2M1XHU4OWMwXHU4Y2FiXHU5NWRjXHU5OTI4XHU1MjJlXHU2MDVk'@; put 'XHU2MmVjXHU5MDAyXHU0ZjhhXHU1MTQ5XHU1MzIxXHU1OGQ5XHU1ZWUzXHU2NmUwXHU2ZDM4XHU3MDlhXHU3MmMyXHU3M2Q2XHU3YjUwXHU4MGYxXHU5NDViXHU1MzY2XHU2MzliXHU3ZjZiXHU0ZTU2XHU1MDgwXHU1ODRhXHU1OGRlXHU2MDJhXHU2MTI3XHU2MmQwXHU2OWQwXHU5YjQxXHU1'@; put 'YjhmXHU3ZDE4XHU4MGIxXHU4ZjVmXHU0ZWE0XHU1MGQxXHU1NGFjXHU1NWFjXHU1YjBjXHU1ZGEwXHU1ZGU3XHU2NTJhXHU2NTRlXHU2ODIxXHU2YTRiXHU3MmUxXHU3NjhlXHU3N2VmXHU3ZDVlXHU3ZmY5XHU4MWEwXHU4NTRlXHU4NmRmXHU4ZjAzXHU4ZjRlXHU5MGNhXHU5OTAzXHU5YTU1'@; put 'XHU5YmFiXHU0ZTE4XHU0ZTQ1XHU0ZTVkXHU0ZWM3XHU0ZmYxXHU1MTc3XHU1MmZlXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjA2XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMDZdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjA2XVtwXV09NTI3MzYrcCxiWzUyNzM2K3BdPV9bMjA2XVtw'@; put 'XSk7Zm9yKF9bMjA3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1MzQwXHU1'@; put 'M2UzXHU1M2U1XHU1NDhlXHU1NjE0XHU1Nzc1XHU1N2EyXHU1YmM3XHU1ZDg3XHU1ZWQwXHU2MWZjXHU2MmQ4XHU2NTUxXHU2N2I4XHU2N2U5XHU2OWNiXHU2YjUwXHU2YmM2XHU2YmVjXHU2YzQyXHU2ZTlkXHU3MDc4XHU3MmQ3XHU3Mzk2XHU3NDAzXHU3N2JmXHU3N2U5XHU3YTc2XHU3ZDdm'@; put 'XHU4MDA5XHU4MWZjXHU4MjA1XHU4MjBhXHU4MmRmXHU4ODYyXHU4YjMzXHU4Y2ZjXHU4ZWMwXHU5MDExXHU5MGIxXHU5MjY0XHU5MmI2XHU5OWQyXHU5YTQ1XHU5Y2U5XHU5ZGQ3XHU5ZjljXHU1NzBiXHU1YzQwXHU4M2NhXHU5N2EwXHU5N2FiXHU5ZWI0XHU1NDFiXHU3YTk4XHU3ZmE0XHU4'@; put 'OGQ5XHU4ZWNkXHU5MGUxXHU1ODAwXHU1YzQ4XHU2Mzk4XHU3YTlmXHU1YmFlXHU1ZjEzXHU3YTc5XHU3YWFlXHU4MjhlXHU4ZWFjXHU1MDI2XHU1MjM4XHU1MmY4XHU1Mzc3XHU1NzA4XHU2MmYzXHU2MzcyXHU2YjBhXHU2ZGMzXHU3NzM3XHU1M2E1XHU3MzU3XHU4NTY4XHU4ZTc2XHU5NWQ1'@; put 'XHU2NzNhXHU2YWMzXHU2ZjcwXHU4YTZkXHU4ZWNjXHU5OTRiXHVmOTA2XHU2Njc3XHU2Yjc4XHU4Y2I0XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjA3XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMDddW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjA3XVtwXV09NTI5OTIrcCxiWzUyOTky'@; put 'K3BdPV9bMjA3XVtwXSk7Zm9yKF9bMjA4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHU5YjNjXHVmOTA3XHU1M2ViXHU1NzJkXHU1OTRlXHU2M2M2XHU2OWZiXHU3M2VhXHU3ODQ1XHU3YWJhXHU3YWM1XHU3Y2ZlXHU4NDc1XHU4OThmXHU4ZDczXHU5MDM1XHU5NWE4XHU1MmZiXHU1NzQ3XHU3NTQ3XHU3YjYwXHU4M2NjXHU5MjFlXHVmOTA4XHU2YTU4XHU1MTRiXHU1MjRi'@; put 'XHU1Mjg3XHU2MjFmXHU2OGQ4XHU2OTc1XHU5Njk5XHU1MGM1XHU1MmE0XHU1MmU0XHU2MWMzXHU2NWE0XHU2ODM5XHU2OWZmXHU3NDdlXHU3YjRiXHU4MmI5XHU4M2ViXHU4OWIyXHU4YjM5XHU4ZmQxXHU5OTQ5XHVmOTA5XHU0ZWNhXHU1OTk3XHU2NGQyXHU2NjExXHU2YThlXHU3NDM0XHU3'@; put 'OTgxXHU3OWJkXHU4MmE5XHU4ODdlXHU4ODdmXHU4OTVmXHVmOTBhXHU5MzI2XHU0ZjBiXHU1M2NhXHU2MDI1XHU2MjcxXHU2YzcyXHU3ZDFhXHU3ZDY2XHU0ZTk4XHU1MTYyXHU3N2RjXHU4MGFmXHU0ZjAxXHU0ZjBlXHU1MTc2XHU1MTgwXHU1NWRjXHU1NjY4XHU1NzNiXHU1N2ZhXHU1N2Zj'@; put 'XHU1OTE0XHU1OTQ3XHU1OTkzXHU1YmM0XHU1YzkwXHU1ZDBlXHU1ZGYxXHU1ZTdlXHU1ZmNjXHU2MjgwXHU2NWQ3XHU2NWUzXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjA4XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMDhdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjA4XVtwXV09NTMy'@; put 'NDgrcCxiWzUzMjQ4K3BdPV9bMjA4XVtwXSk7Zm9yKF9bMjA5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHU2NzFlXHU2NzFmXHU2NzVlXHU2OGNiXHU2OGM0XHU2YTVmXHU2YjNhXHU2YzIzXHU2YzdkXHU2YzgyXHU2ZGM3XHU3Mzk4XHU3NDI2XHU3NDJhXHU3NDgyXHU3NGEzXHU3NTc4XHU3NTdmXHU3ODgxXHU3OGVmXHU3OTQxXHU3OTQ3XHU3OTQ4XHU3OTdhXHU3Yjk1'@; put 'XHU3ZDAwXHU3ZGJhXHU3Zjg4XHU4MDA2XHU4MDJkXHU4MDhjXHU4YTE4XHU4YjRmXHU4YzQ4XHU4ZDc3XHU5MzIxXHU5MzI0XHU5OGUyXHU5OTUxXHU5YTBlXHU5YTBmXHU5YTY1XHU5ZTkyXHU3ZGNhXHU0Zjc2XHU1NDA5XHU2MmVlXHU2ODU0XHU5MWQxXHU1NWFiXHU1MTNhXHVmOTBiXHVm'@; put 'OTBjXHU1YTFjXHU2MWU2XHVmOTBkXHU2MmNmXHU2MmZmXHVmOTBlXHVmOTBmXHVmOTEwXHVmOTExXHVmOTEyXHVmOTEzXHU5MGEzXHVmOTE0XHVmOTE1XHVmOTE2XHVmOTE3XHVmOTE4XHU4YWZlXHVmOTE5XHVmOTFhXHVmOTFiXHVmOTFjXHU2Njk2XHVmOTFkXHU3MTU2XHVmOTFlXHVmOTFm'@; put 'XHU5NmUzXHVmOTIwXHU2MzRmXHU2MzdhXHU1MzU3XHVmOTIxXHU2NzhmXHU2OTYwXHU2ZTczXHVmOTIyXHU3NTM3XHVmOTIzXHVmOTI0XHVmOTI1XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjA5XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMDldW3BdLmNoYXJDb2RlQXQoMCkmJihEW19b'@; put 'MjA5XVtwXV09NTM1MDQrcCxiWzUzNTA0K3BdPV9bMjA5XVtwXSk7Zm9yKF9bMjEwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZDBkXHVmOTI2XHVmOTI3XHU4ODcyXHU1NmNhXHU1YTE4XHVmOTI4XHVmOTI5XHVmOTJhXHVmOTJiXHVmOTJjXHU0ZTQzXHVmOTJkXHU1MTY3XHU1OTQ4XHU2N2YwXHU4MDEwXHVmOTJlXHU1OTczXHU1ZTc0XHU2NDlhXHU3OWNhXHU1ZmY1'@; put 'XHU2MDZjXHU2MmM4XHU2MzdiXHU1YmU3XHU1YmQ3XHU1MmFhXHVmOTJmXHU1OTc0XHU1ZjI5XHU2MDEyXHVmOTMwXHVmOTMxXHVmOTMyXHU3NDU5XHVmOTMzXHVmOTM0XHVmOTM1XHVmOTM2XHVmOTM3XHVmOTM4XHU5OWQxXHVmOTM5XHVmOTNhXHVmOTNiXHVmOTNjXHVmOTNkXHVmOTNlXHVm'@; put 'OTNmXHVmOTQwXHVmOTQxXHVmOTQyXHVmOTQzXHU2ZmMzXHVmOTQ0XHVmOTQ1XHU4MWJmXHU4ZmIyXHU2MGYxXHVmOTQ2XHVmOTQ3XHU4MTY2XHVmOTQ4XHVmOTQ5XHU1YzNmXHVmOTRhXHVmOTRiXHVmOTRjXHVmOTRkXHVmOTRlXHVmOTRmXHVmOTUwXHVmOTUxXHU1YWU5XHU4YTI1XHU2Nzdi'@; put 'XHU3ZDEwXHVmOTUyXHVmOTUzXHVmOTU0XHVmOTU1XHVmOTU2XHVmOTU3XHU4MGZkXHVmOTU4XHVmOTU5XHU1YzNjXHU2Y2U1XHU1MzNmXHU2ZWJhXHU1OTFhXHU4MzM2XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjEwXS5sZW5ndGg7KytwKTY1NTMzIT09X1syMTBdW3BdLmNoYXJDb2Rl'@; put 'QXQoMCkmJihEW19bMjEwXVtwXV09NTM3NjArcCxiWzUzNzYwK3BdPV9bMjEwXVtwXSk7Zm9yKF9bMjExXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU0ZTM5XHU0ZWI2XHU0ZjQ2XHU1NWFlXHU1NzE4XHU1OGM3XHU1ZjU2XHU2NWI3XHU2NWU2XHU2YTgwXHU2YmI1XHU2ZTRkXHU3N2VkXHU3YWVmXHU3YzFlXHU3ZGRlXHU4NmNiXHU4ODkyXHU5MTMyXHU5MzViXHU2NGJi'@; put 'XHU2ZmJlXHU3MzdhXHU3NWI4XHU5MDU0XHU1NTU2XHU1NzRkXHU2MWJhXHU2NGQ0XHU2NmM3XHU2ZGUxXHU2ZTViXHU2ZjZkXHU2ZmI5XHU3NWYwXHU4MDQzXHU4MWJkXHU4NTQxXHU4OTgzXHU4YWM3XHU4YjVhXHU5MzFmXHU2YzkzXHU3NTUzXHU3YjU0XHU4ZTBmXHU5MDVkXHU1NTEwXHU1'@; put 'ODAyXHU1ODU4XHU1ZTYyXHU2MjA3XHU2NDllXHU2OGUwXHU3NTc2XHU3Y2Q2XHU4N2IzXHU5ZWU4XHU0ZWUzXHU1Nzg4XHU1NzZlXHU1OTI3XHU1YzBkXHU1Y2IxXHU1ZTM2XHU1Zjg1XHU2MjM0XHU2NGUxXHU3M2IzXHU4MWZhXHU4ODhiXHU4Y2I4XHU5NjhhXHU5ZWRiXHU1Yjg1XHU1ZmI3'@; put 'XHU2MGIzXHU1MDEyXHU1MjAwXHU1MjMwXHU1NzE2XHU1ODM1XHU1ODU3XHU1YzBlXHU1YzYwXHU1Y2Y2XHU1ZDhiXHU1ZWE2XHU1ZjkyXHU2MGJjXHU2MzExXHU2Mzg5XHU2NDE3XHU2ODQzXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjExXS5sZW5ndGg7KytwKTY1NTMzIT09X1syMTFd'@; put 'W3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjExXVtwXV09NTQwMTYrcCxiWzU0MDE2K3BdPV9bMjExXVtwXSk7Zm9yKF9bMjEyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2OGY5XHU2YWMyXHU2ZGQ4XHU2ZTIxXHU2ZWQ0XHU2ZmU0XHU3MWZlXHU3NmRjXHU3Nzc5XHU3OWIxXHU3YTNiXHU4NDA0XHU4OWE5XHU4Y2VkXHU4ZGYzXHU4ZTQ4XHU5MDAzXHU5MDE0XHU5MDUz'@; put 'XHU5MGZkXHU5MzRkXHU5Njc2XHU5N2RjXHU2YmQyXHU3MDA2XHU3MjU4XHU3MmEyXHU3MzY4XHU3NzYzXHU3OWJmXHU3YmU0XHU3ZTliXHU4YjgwXHU1OGE5XHU2MGM3XHU2NTY2XHU2NWZkXHU2NmJlXHU2YzhjXHU3MTFlXHU3MWM5XHU4YzVhXHU5ODEzXHU0ZTZkXHU3YTgxXHU0ZWRkXHU1'@; put 'MWFjXHU1MWNkXHU1MmQ1XHU1NDBjXHU2MWE3XHU2NzcxXHU2ODUwXHU2OGRmXHU2ZDFlXHU2ZjdjXHU3NWJjXHU3N2IzXHU3YWU1XHU4MGY0XHU4NDYzXHU5Mjg1XHU1MTVjXHU2NTk3XHU2NzVjXHU2NzkzXHU3NWQ4XHU3YWM3XHU4MzczXHVmOTVhXHU4YzQ2XHU5MDE3XHU5ODJkXHU1YzZm'@; put 'XHU4MWMwXHU4MjlhXHU5MDQxXHU5MDZmXHU5MjBkXHU1Zjk3XHU1ZDlkXHU2YTU5XHU3MWM4XHU3NjdiXHU3YjQ5XHU4NWU0XHU4YjA0XHU5MTI3XHU5YTMwXHU1NTg3XHU2MWY2XHVmOTViXHU3NjY5XHU3Zjg1XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjEyXS5sZW5ndGg7KytwKTY1'@; put 'NTMzIT09X1syMTJdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjEyXVtwXV09NTQyNzIrcCxiWzU0MjcyK3BdPV9bMjEyXVtwXSk7Zm9yKF9bMjEzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4NjNmXHU4N2JhXHU4OGY4XHU5MDhmXHVmOTVjXHU2ZDFiXHU3MGQ5XHU3M2RlXHU3ZDYxXHU4NDNkXHVmOTVkXHU5MTZhXHU5OWYxXHVmOTVlXHU0ZTgyXHU1Mzc1XHU2YjA0'@; put 'XHU2YjEyXHU3MDNlXHU3MjFiXHU4NjJkXHU5ZTFlXHU1MjRjXHU4ZmEzXHU1ZDUwXHU2NGU1XHU2NTJjXHU2YjE2XHU2ZmViXHU3YzQzXHU3ZTljXHU4NWNkXHU4OTY0XHU4OWJkXHU2MmM5XHU4MWQ4XHU4ODFmXHU1ZWNhXHU2NzE3XHU2ZDZhXHU3MmZjXHU3NDA1XHU3NDZmXHU4NzgyXHU5'@; put 'MGRlXHU0Zjg2XHU1ZDBkXHU1ZmEwXHU4NDBhXHU1MWI3XHU2M2EwXHU3NTY1XHU0ZWFlXHU1MDA2XHU1MTY5XHU1MWM5XHU2ODgxXHU2YTExXHU3Y2FlXHU3Y2IxXHU3Y2U3XHU4MjZmXHU4YWQyXHU4ZjFiXHU5MWNmXHU0ZmI2XHU1MTM3XHU1MmY1XHU1NDQyXHU1ZWVjXHU2MTZlXHU2MjNl'@; put 'XHU2NWM1XHU2YWRhXHU2ZmZlXHU3OTJhXHU4NWRjXHU4ODIzXHU5NWFkXHU5YTYyXHU5YTZhXHU5ZTk3XHU5ZWNlXHU1MjliXHU2NmM2XHU2Yjc3XHU3MDFkXHU3OTJiXHU4ZjYyXHU5NzQyXHU2MTkwXHU2MjAwXHU2NTIzXHU2ZjIzXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjEzXS5s'@; put 'ZW5ndGg7KytwKTY1NTMzIT09X1syMTNdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjEzXVtwXV09NTQ1MjgrcCxiWzU0NTI4K3BdPV9bMjEzXVtwXSk7Zm9yKF9bMjE0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3MTQ5XHU3NDg5XHU3ZGY0XHU4MDZmXHU4NGVlXHU4ZjI2XHU5MDIzXHU5MzRhXHU1MWJkXHU1MjE3XHU1MmEzXHU2ZDBjXHU3MGM4XHU4OGMyXHU1ZWM5'@; put 'XHU2NTgyXHU2YmFlXHU2ZmMyXHU3YzNlXHU3Mzc1XHU0ZWU0XHU0ZjM2XHU1NmY5XHVmOTVmXHU1Y2JhXHU1ZGJhXHU2MDFjXHU3M2IyXHU3YjJkXHU3ZjlhXHU3ZmNlXHU4MDQ2XHU5MDFlXHU5MjM0XHU5NmY2XHU5NzQ4XHU5ODE4XHU5ZjYxXHU0ZjhiXHU2ZmE3XHU3OWFlXHU5MWI0XHU5'@; put 'NmI3XHU1MmRlXHVmOTYwXHU2NDg4XHU2NGM0XHU2YWQzXHU2ZjVlXHU3MDE4XHU3MjEwXHU3NmU3XHU4MDAxXHU4NjA2XHU4NjVjXHU4ZGVmXHU4ZjA1XHU5NzMyXHU5YjZmXHU5ZGZhXHU5ZTc1XHU3ODhjXHU3OTdmXHU3ZGEwXHU4M2M5XHU5MzA0XHU5ZTdmXHU5ZTkzXHU4YWQ2XHU1OGRm'@; put 'XHU1ZjA0XHU2NzI3XHU3MDI3XHU3NGNmXHU3YzYwXHU4MDdlXHU1MTIxXHU3MDI4XHU3MjYyXHU3OGNhXHU4Y2MyXHU4Y2RhXHU4Y2Y0XHU5NmY3XHU0ZTg2XHU1MGRhXHU1YmVlXHU1ZWQ2XHU2NTk5XHU3MWNlXHU3NjQyXHU3N2FkXHU4MDRhXHU4NGZjXHVmZmZkIi5zcGxpdCgiIikscD0w'@; put 'O3AhPV9bMjE0XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMTRdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjE0XVtwXV09NTQ3ODQrcCxiWzU0Nzg0K3BdPV9bMjE0XVtwXSk7Zm9yKF9bMjE1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MDdjXHU5YjI3XHU5ZjhkXHU1OGQ4XHU1YTQxXHU1YzYyXHU2YTEzXHU2ZGRhXHU2ZjBmXHU3NjNiXHU3ZDJmXHU3ZTM3XHU4NTFl'@; put 'XHU4OTM4XHU5M2U0XHU5NjRiXHU1Mjg5XHU2NWQyXHU2N2YzXHU2OWI0XHU2ZDQxXHU2ZTljXHU3MDBmXHU3NDA5XHU3NDYwXHU3NTU5XHU3NjI0XHU3ODZiXHU4YjJjXHU5ODVlXHU1MTZkXHU2MjJlXHU5Njc4XHU0Zjk2XHU1MDJiXHU1ZDE5XHU2ZGVhXHU3ZGI4XHU4ZjJhXHU1ZjhiXHU2'@; put 'MTQ0XHU2ODE3XHVmOTYxXHU5Njg2XHU1MmQyXHU4MDhiXHU1MWRjXHU1MWNjXHU2OTVlXHU3YTFjXHU3ZGJlXHU4M2YxXHU5Njc1XHU0ZmRhXHU1MjI5XHU1Mzk4XHU1NDBmXHU1NTBlXHU1YzY1XHU2MGE3XHU2NzRlXHU2OGE4XHU2ZDZjXHU3MjgxXHU3MmY4XHU3NDA2XHU3NDgzXHVmOTYy'@; put 'XHU3NWUyXHU3YzZjXHU3Zjc5XHU3ZmI4XHU4Mzg5XHU4OGNmXHU4OGUxXHU5MWNjXHU5MWQwXHU5NmUyXHU5YmM5XHU1NDFkXHU2ZjdlXHU3MWQwXHU3NDk4XHU4NWZhXHU4ZWFhXHU5NmEzXHU5YzU3XHU5ZTlmXHU2Nzk3XHU2ZGNiXHU3NDMzXHU4MWU4XHU5NzE2XHU3ODJjXHVmZmZkIi5z'@; put 'cGxpdCgiIikscD0wO3AhPV9bMjE1XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMTVdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjE1XVtwXV09NTUwNDArcCxiWzU1MDQwK3BdPV9bMjE1XVtwXSk7Zm9yKF9bMjE2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3YWNiXHU3YjIwXHU3YzkyXHU2NDY5XHU3NDZhXHU3NWYyXHU3OGJjXHU3OGU4XHU5OWFjXHU5YjU0XHU5ZWJi'@; put 'XHU1YmRlXHU1ZTU1XHU2ZjIwXHU4MTljXHU4M2FiXHU5MDg4XHU0ZTA3XHU1MzRkXHU1YTI5XHU1ZGQyXHU1ZjRlXHU2MTYyXHU2MzNkXHU2NjY5XHU2NmZjXHU2ZWZmXHU2ZjJiXHU3MDYzXHU3NzllXHU4NDJjXHU4NTEzXHU4ODNiXHU4ZjEzXHU5OTQ1XHU5YzNiXHU1NTFjXHU2MmI5XHU2'@; put 'NzJiXHU2Y2FiXHU4MzA5XHU4OTZhXHU5NzdhXHU0ZWExXHU1OTg0XHU1ZmQ4XHU1ZmQ5XHU2NzFiXHU3ZGIyXHU3ZjU0XHU4MjkyXHU4MzJiXHU4M2JkXHU4ZjFlXHU5MDk5XHU1N2NiXHU1OWI5XHU1YTkyXHU1YmQwXHU2NjI3XHU2NzlhXHU2ODg1XHU2YmNmXHU3MTY0XHU3Zjc1XHU4Y2I3'@; put 'XHU4Y2UzXHU5MDgxXHU5YjQ1XHU4MTA4XHU4YzhhXHU5NjRjXHU5YTQwXHU5ZWE1XHU1YjVmXHU2YzEzXHU3MzFiXHU3NmYyXHU3NmRmXHU4NDBjXHU1MWFhXHU4OTkzXHU1MTRkXHU1MTk1XHU1MmM5XHU2OGM5XHU2Yzk0XHU3NzA0XHU3NzIwXHU3ZGJmXHU3ZGVjXHU5NzYyXHU5ZWI1XHU2'@; put 'ZWM1XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjE2XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMTZdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjE2XVtwXV09NTUyOTYrcCxiWzU1Mjk2K3BdPV9bMjE2XVtwXSk7Zm9yKF9bMjE3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4NTExXHU1MWE1XHU1NDBkXHU1NDdkXHU2NjBlXHU2NjlkXHU2OTI3XHU2ZTlmXHU3NmJm'@; put 'XHU3NzkxXHU4MzE3XHU4NGMyXHU4NzlmXHU5MTY5XHU5Mjk4XHU5Y2Y0XHU4ODgyXHU0ZmFlXHU1MTkyXHU1MmRmXHU1OWM2XHU1ZTNkXHU2MTU1XHU2NDc4XHU2NDc5XHU2NmFlXHU2N2QwXHU2YTIxXHU2YmNkXHU2YmRiXHU3MjVmXHU3MjYxXHU3NDQxXHU3NzM4XHU3N2RiXHU4MDE3XHU4'@; put 'MmJjXHU4MzA1XHU4YjAwXHU4YjI4XHU4YzhjXHU2NzI4XHU2YzkwXHU3MjY3XHU3NmVlXHU3NzY2XHU3YTQ2XHU5ZGE5XHU2YjdmXHU2YzkyXHU1OTIyXHU2NzI2XHU4NDk5XHU1MzZmXHU1ODkzXHU1OTk5XHU1ZWRmXHU2M2NmXHU2NjM0XHU2NzczXHU2ZTNhXHU3MzJiXHU3YWQ3XHU4MmQ3'@; put 'XHU5MzI4XHU1MmQ5XHU1ZGViXHU2MWFlXHU2MWNiXHU2MjBhXHU2MmM3XHU2NGFiXHU2NWUwXHU2OTU5XHU2YjY2XHU2YmNiXHU3MTIxXHU3M2Y3XHU3NTVkXHU3ZTQ2XHU4MjFlXHU4MzAyXHU4NTZhXHU4YWEzXHU4Y2JmXHU5NzI3XHU5ZDYxXHU1OGE4XHU5ZWQ4XHU1MDExXHU1MjBlXHU1'@; put 'NDNiXHU1NTRmXHU2NTg3XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjE3XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMTddW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjE3XVtwXV09NTU1NTIrcCxiWzU1NTUyK3BdPV9bMjE3XVtwXSk7Zm9yKF9bMjE4XT0iXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2Yzc2XHU3ZDBhXHU3ZDBiXHU4MDVlXHU4NjhhXHU5NTgwXHU5NmVm'@; put 'XHU1MmZmXHU2Yzk1XHU3MjY5XHU1NDczXHU1YTlhXHU1YzNlXHU1ZDRiXHU1ZjRjXHU1ZmFlXHU2NzJhXHU2OGI2XHU2OTYzXHU2ZTNjXHU2ZTQ0XHU3NzA5XHU3YzczXHU3ZjhlXHU4NTg3XHU4YjBlXHU4ZmY3XHU5NzYxXHU5ZWY0XHU1Y2I3XHU2MGI2XHU2MTBkXHU2MWFiXHU2NTRmXHU2'@; put 'NWZiXHU2NWZjXHU2YzExXHU2Y2VmXHU3MzlmXHU3M2M5XHU3ZGUxXHU5NTk0XHU1YmM2XHU4NzFjXHU4YjEwXHU1MjVkXHU1MzVhXHU2MmNkXHU2NDBmXHU2NGIyXHU2NzM0XHU2YTM4XHU2Y2NhXHU3M2MwXHU3NDllXHU3Yjk0XHU3Yzk1XHU3ZTFiXHU4MThhXHU4MjM2XHU4NTg0XHU4ZmVi'@; put 'XHU5NmY5XHU5OWMxXHU0ZjM0XHU1MzRhXHU1M2NkXHU1M2RiXHU2MmNjXHU2NDJjXHU2NTAwXHU2NTkxXHU2OWMzXHU2Y2VlXHU2ZjU4XHU3M2VkXHU3NTU0XHU3NjIyXHU3NmU0XHU3NmZjXHU3OGQwXHU3OGZiXHU3OTJjXHU3ZDQ2XHU4MjJjXHU4N2UwXHU4ZmQ0XHU5ODEyXHU5OGVmXHU1'@; put 'MmMzXHU2MmQ0XHU2NGE1XHU2ZTI0XHU2ZjUxXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjE4XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMThdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjE4XVtwXV09NTU4MDgrcCxiWzU1ODA4K3BdPV9bMjE4XVtwXSk7Zm9yKF9bMjE5XT0iXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3NjdjXHU4ZGNiXHU5MWIxXHU5MjYyXHU5YWVl'@; put 'XHU5YjQzXHU1MDIzXHU1MDhkXHU1NzRhXHU1OWE4XHU1YzI4XHU1ZTQ3XHU1Zjc3XHU2MjNmXHU2NTNlXHU2NWI5XHU2NWMxXHU2NjA5XHU2NzhiXHU2OTljXHU2ZWMyXHU3OGM1XHU3ZDIxXHU4MGFhXHU4MTgwXHU4MjJiXHU4MmIzXHU4NGExXHU4NjhjXHU4YTJhXHU4YjE3XHU5MGE2XHU5'@; put 'NjMyXHU5ZjkwXHU1MDBkXHU0ZmYzXHVmOTYzXHU1N2Y5XHU1Zjk4XHU2MmRjXHU2MzkyXHU2NzZmXHU2ZTQzXHU3MTE5XHU3NmMzXHU4MGNjXHU4MGRhXHU4OGY0XHU4OGY1XHU4OTE5XHU4Y2UwXHU4ZjI5XHU5MTRkXHU5NjZhXHU0ZjJmXHU0ZjcwXHU1ZTFiXHU2N2NmXHU2ODIyXHU3Njdk'@; put 'XHU3NjdlXHU5YjQ0XHU1ZTYxXHU2YTBhXHU3MTY5XHU3MWQ0XHU3NTZhXHVmOTY0XHU3ZTQxXHU4NTQzXHU4NWU5XHU5OGRjXHU0ZjEwXHU3YjRmXHU3ZjcwXHU5NWE1XHU1MWUxXHU1ZTA2XHU2OGI1XHU2YzNlXHU2YzRlXHU2Y2RiXHU3MmFmXHU3YmM0XHU4MzAzXHU2Y2Q1XHU3NDNhXHU1'@; put 'MGZiXHU1Mjg4XHU1OGMxXHU2NGQ4XHU2YTk3XHU3NGE3XHU3NjU2XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjE5XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMTldW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjE5XVtwXV09NTYwNjQrcCxiWzU2MDY0K3BdPV9bMjE5XVtwXSk7Zm9yKF9b'@; put 'MjIwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3OGE3XHU4NjE3XHU5NWUy'@; put 'XHU5NzM5XHVmOTY1XHU1MzVlXHU1ZjAxXHU4YjhhXHU4ZmE4XHU4ZmFmXHU5MDhhXHU1MjI1XHU3N2E1XHU5YzQ5XHU5ZjA4XHU0ZTE5XHU1MDAyXHU1MTc1XHU1YzViXHU1ZTc3XHU2NjFlXHU2NjNhXHU2N2M0XHU2OGM1XHU3MGIzXHU3NTAxXHU3NWM1XHU3OWM5XHU3YWRkXHU4ZjI3XHU5'@; put 'OTIwXHU5YTA4XHU0ZmRkXHU1ODIxXHU1ODMxXHU1YmY2XHU2NjZlXHU2YjY1XHU2ZDExXHU2ZTdhXHU2ZjdkXHU3M2U0XHU3NTJiXHU4M2U5XHU4OGRjXHU4OTEzXHU4YjVjXHU4ZjE0XHU0ZjBmXHU1MGQ1XHU1MzEwXHU1MzVjXHU1YjkzXHU1ZmE5XHU2NzBkXHU3OThmXHU4MTc5XHU4MzJm'@; put 'XHU4NTE0XHU4OTA3XHU4OTg2XHU4ZjM5XHU4ZjNiXHU5OWE1XHU5YzEyXHU2NzJjXHU0ZTc2XHU0ZmY4XHU1OTQ5XHU1YzAxXHU1Y2VmXHU1Y2YwXHU2MzY3XHU2OGQyXHU3MGZkXHU3MWEyXHU3NDJiXHU3ZTJiXHU4NGVjXHU4NzAyXHU5MDIyXHU5MmQyXHU5Y2YzXHU0ZTBkXHU0ZWQ4XHU0'@; put 'ZmVmXHU1MDg1XHU1MjU2XHU1MjZmXHU1NDI2XHU1NDkwXHU1N2UwXHU1OTJiXHU1YTY2XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjIwXS5sZW5ndGg7KytwKTY1NTMzIT09X1syMjBdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjIwXVtwXV09NTYzMjArcCxiWzU2MzIwK3BdPV9bMjIw'@; put 'XVtwXSk7Zm9yKF9bMjIxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1YjVh'@; put 'XHU1Yjc1XHU1YmNjXHU1ZTljXHVmOTY2XHU2Mjc2XHU2NTc3XHU2NWE3XHU2ZDZlXHU2ZWE1XHU3MjM2XHU3YjI2XHU3YzNmXHU3ZjM2XHU4MTUwXHU4MTUxXHU4MTlhXHU4MjQwXHU4Mjk5XHU4M2E5XHU4YTAzXHU4Y2EwXHU4Y2U2XHU4Y2ZiXHU4ZDc0XHU4ZGJhXHU5MGU4XHU5MWRjXHU5'@; put 'NjFjXHU5NjQ0XHU5OWQ5XHU5Y2U3XHU1MzE3XHU1MjA2XHU1NDI5XHU1Njc0XHU1OGIzXHU1OTU0XHU1OTZlXHU1ZmZmXHU2MWE0XHU2MjZlXHU2NjEwXHU2YzdlXHU3MTFhXHU3NmM2XHU3Yzg5XHU3Y2RlXHU3ZDFiXHU4MmFjXHU4Y2MxXHU5NmYwXHVmOTY3XHU0ZjViXHU1ZjE3XHU1Zjdm'@; put 'XHU2MmMyXHU1ZDI5XHU2NzBiXHU2OGRhXHU3ODdjXHU3ZTQzXHU5ZDZjXHU0ZTE1XHU1MDk5XHU1MzE1XHU1MzJhXHU1MzUxXHU1OTgzXHU1YTYyXHU1ZTg3XHU2MGIyXHU2MThhXHU2MjQ5XHU2Mjc5XHU2NTkwXHU2Nzg3XHU2OWE3XHU2YmQ0XHU2YmQ2XHU2YmQ3XHU2YmQ4XHU2Y2I4XHVm'@; put 'OTY4XHU3NDM1XHU3NWZhXHU3ODEyXHU3ODkxXHU3OWQ1XHU3OWQ4XHU3YzgzXHU3ZGNiXHU3ZmUxXHU4MGE1XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjIxXS5sZW5ndGg7KytwKTY1NTMzIT09X1syMjFdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjIxXVtwXV09NTY1NzYrcCxiWzU2'@; put 'NTc2K3BdPV9bMjIxXVtwXSk7Zm9yKF9bMjIyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHU4MTNlXHU4MWMyXHU4M2YyXHU4NzFhXHU4OGU4XHU4YWI5XHU4YjZjXHU4Y2JiXHU5MTE5XHU5NzVlXHU5OGRiXHU5ZjNiXHU1NmFjXHU1YjJhXHU1ZjZjXHU2NThjXHU2YWIzXHU2YmFmXHU2ZDVjXHU2ZmYxXHU3MDE1XHU3MjVkXHU3M2FkXHU4Y2E3XHU4Y2QzXHU5ODNiXHU2'@; put 'MTkxXHU2YzM3XHU4MDU4XHU5YTAxXHU0ZTRkXHU0ZThiXHU0ZTliXHU0ZWQ1XHU0ZjNhXHU0ZjNjXHU0ZjdmXHU0ZmRmXHU1MGZmXHU1M2YyXHU1M2Y4XHU1NTA2XHU1NWUzXHU1NmRiXHU1OGViXHU1OTYyXHU1YTExXHU1YmViXHU1YmZhXHU1YzA0XHU1ZGYzXHU1ZTJiXHU1Zjk5XHU2MDFk'@; put 'XHU2MzY4XHU2NTljXHU2NWFmXHU2N2Y2XHU2N2ZiXHU2OGFkXHU2YjdiXHU2Yzk5XHU2Y2Q3XHU2ZTIzXHU3MDA5XHU3MzQ1XHU3ODAyXHU3OTNlXHU3OTQwXHU3OTYwXHU3OWMxXHU3YmU5XHU3ZDE3XHU3ZDcyXHU4MDg2XHU4MjBkXHU4MzhlXHU4NGQxXHU4NmM3XHU4OGRmXHU4YTUwXHU4'@; put 'YTVlXHU4YjFkXHU4Y2RjXHU4ZDY2XHU4ZmFkXHU5MGFhXHU5OGZjXHU5OWRmXHU5ZTlkXHU1MjRhXHVmOTY5XHU2NzE0XHVmOTZhXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjIyXS5sZW5ndGg7KytwKTY1NTMzIT09X1syMjJdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjIyXVtwXV09'@; put 'NTY4MzIrcCxiWzU2ODMyK3BdPV9bMjIyXVtwXSk7Zm9yKF9bMjIzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHU1MDk4XHU1MjJhXHU1YzcxXHU2NTYzXHU2YzU1XHU3M2NhXHU3NTIzXHU3NTlkXHU3Yjk3XHU4NDljXHU5MTc4XHU5NzMwXHU0ZTc3XHU2NDkyXHU2YmJhXHU3MTVlXHU4NWE5XHU0ZTA5XHVmOTZiXHU2NzQ5XHU2OGVlXHU2ZTE3XHU4MjlmXHU4NTE4XHU4'@; put 'ODZiXHU2M2Y3XHU2ZjgxXHU5MjEyXHU5OGFmXHU0ZTBhXHU1MGI3XHU1MGNmXHU1MTFmXHU1NTQ2XHU1NWFhXHU1NjE3XHU1YjQwXHU1YzE5XHU1Y2UwXHU1ZTM4XHU1ZThhXHU1ZWEwXHU1ZWMyXHU2MGYzXHU2ODUxXHU2YTYxXHU2ZTU4XHU3MjNkXHU3MjQwXHU3MmMwXHU3NmY4XHU3OTY1'@; put 'XHU3YmIxXHU3ZmQ0XHU4OGYzXHU4OWY0XHU4YTczXHU4YzYxXHU4Y2RlXHU5NzFjXHU1ODVlXHU3NGJkXHU4Y2ZkXHU1NWM3XHVmOTZjXHU3YTYxXHU3ZDIyXHU4MjcyXHU3MjcyXHU3NTFmXHU3NTI1XHVmOTZkXHU3YjE5XHU1ODg1XHU1OGZiXHU1ZGJjXHU1ZThmXHU1ZWI2XHU1ZjkwXHU2'@; put 'MDU1XHU2MjkyXHU2MzdmXHU2NTRkXHU2NjkxXHU2NmQ5XHU2NmY4XHU2ODE2XHU2OGYyXHU3MjgwXHU3NDVlXHU3YjZlXHU3ZDZlXHU3ZGQ2XHU3ZjcyXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjIzXS5sZW5ndGg7KytwKTY1NTMzIT09X1syMjNdW3BdLmNoYXJDb2RlQXQoMCkmJihE'@; put 'W19bMjIzXVtwXV09NTcwODgrcCxiWzU3MDg4K3BdPV9bMjIzXVtwXSk7Zm9yKF9bMjI0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MGU1XHU4MjEyXHU4NWFmXHU4OTdmXHU4YTkzXHU5MDFkXHU5MmU0XHU5ZWNkXHU5ZjIwXHU1OTE1XHU1OTZkXHU1ZTJkXHU2MGRjXHU2NjE0XHU2NjczXHU2NzkwXHU2YzUwXHU2ZGM1XHU2ZjVmXHU3N2YzXHU3OGE5XHU4NGM2XHU5'@; put 'MWNiXHU5MzJiXHU0ZWQ5XHU1MGNhXHU1MTQ4XHU1NTg0XHU1YjBiXHU1YmEzXHU2MjQ3XHU2NTdlXHU2NWNiXHU2ZTMyXHU3MTdkXHU3NDAxXHU3NDQ0XHU3NDg3XHU3NGJmXHU3NjZjXHU3OWFhXHU3ZGRhXHU3ZTU1XHU3ZmE4XHU4MTdhXHU4MWIzXHU4MjM5XHU4NjFhXHU4N2VjXHU4YTc1'@; put 'XHU4ZGUzXHU5MDc4XHU5MjkxXHU5NDI1XHU5OTRkXHU5YmFlXHU1MzY4XHU1YzUxXHU2OTU0XHU2Y2M0XHU2ZDI5XHU2ZTJiXHU4MjBjXHU4NTliXHU4OTNiXHU4YTJkXHU4YWFhXHU5NmVhXHU5ZjY3XHU1MjYxXHU2NmI5XHU2YmIyXHU3ZTk2XHU4N2ZlXHU4ZDBkXHU5NTgzXHU5NjVkXHU2'@; put 'NTFkXHU2ZDg5XHU3MWVlXHVmOTZlXHU1N2NlXHU1OWQzXHU1YmFjXHU2MDI3XHU2MGZhXHU2MjEwXHU2NjFmXHU2NjVmXHU3MzI5XHU3M2Y5XHU3NmRiXHU3NzAxXHU3YjZjXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjI0XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMjRdW3BdLmNoYXJD'@; put 'b2RlQXQoMCkmJihEW19bMjI0XVtwXV09NTczNDQrcCxiWzU3MzQ0K3BdPV9bMjI0XVtwXSk7Zm9yKF9bMjI1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MDU2XHU4MDcyXHU4MTY1XHU4YWEwXHU5MTkyXHU0ZTE2XHU1MmUyXHU2YjcyXHU2ZDE3XHU3YTA1XHU3YjM5XHU3ZDMwXHVmOTZmXHU4Y2IwXHU1M2VjXHU1NjJmXHU1ODUxXHU1YmI1XHU1YzBmXHU1YzExXHU1'@; put 'ZGUyXHU2MjQwXHU2MzgzXHU2NDE0XHU2NjJkXHU2OGIzXHU2Y2JjXHU2ZDg4XHU2ZWFmXHU3MDFmXHU3MGE0XHU3MWQyXHU3NTI2XHU3NThmXHU3NThlXHU3NjE5XHU3YjExXHU3YmUwXHU3YzJiXHU3ZDIwXHU3ZDM5XHU4NTJjXHU4NTZkXHU4NjA3XHU4YTM0XHU5MDBkXHU5MDYxXHU5MGI1'@; put 'XHU5MmI3XHU5N2Y2XHU5YTM3XHU0ZmQ3XHU1YzZjXHU2NzVmXHU2ZDkxXHU3YzlmXHU3ZThjXHU4YjE2XHU4ZDE2XHU5MDFmXHU1YjZiXHU1ZGZkXHU2NDBkXHU4NGMwXHU5MDVjXHU5OGUxXHU3Mzg3XHU1YjhiXHU2MDlhXHU2NzdlXHU2ZGRlXHU4YTFmXHU4YWE2XHU5MDAxXHU5ODBjXHU1'@; put 'MjM3XHVmOTcwXHU3MDUxXHU3ODhlXHU5Mzk2XHU4ODcwXHU5MWQ3XHU0ZmVlXHU1M2Q3XHU1NWZkXHU1NmRhXHU1NzgyXHU1OGZkXHU1YWMyXHU1Yjg4XHU1Y2FiXHU1Y2MwXHU1ZTI1XHU2MTAxXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjI1XS5sZW5ndGg7KytwKTY1NTMzIT09X1sy'@; put 'MjVdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjI1XVtwXV09NTc2MDArcCxiWzU3NjAwK3BdPV9bMjI1XVtwXSk7Zm9yKF9bMjI2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MjBkXHU2MjRiXHU2Mzg4XHU2NDFjXHU2NTM2XHU2NTc4XHU2YTM5XHU2YjhhXHU2YzM0XHU2ZDE5XHU2ZjMxXHU3MWU3XHU3MmU5XHU3Mzc4XHU3NDA3XHU3NGIyXHU3NjI2XHU3NzYxXHU3'@; put 'OWMwXHU3YTU3XHU3YWVhXHU3Y2I5XHU3ZDhmXHU3ZGFjXHU3ZTYxXHU3ZjllXHU4MTI5XHU4MzMxXHU4NDkwXHU4NGRhXHU4NWVhXHU4ODk2XHU4YWIwXHU4YjkwXHU4ZjM4XHU5MDQyXHU5MDgzXHU5MTZjXHU5Mjk2XHU5MmI5XHU5NjhiXHU5NmE3XHU5NmE4XHU5NmQ2XHU5NzAwXHU5ODA4'@; put 'XHU5OTk2XHU5YWQzXHU5YjFhXHU1M2Q0XHU1ODdlXHU1OTE5XHU1YjcwXHU1YmJmXHU2ZGQxXHU2ZjVhXHU3MTlmXHU3NDIxXHU3NGI5XHU4MDg1XHU4M2ZkXHU1ZGUxXHU1Zjg3XHU1ZmFhXHU2MDQyXHU2NWVjXHU2ODEyXHU2OTZmXHU2YTUzXHU2Yjg5XHU2ZDM1XHU2ZGYzXHU3M2UzXHU3'@; put 'NmZlXHU3N2FjXHU3YjRkXHU3ZDE0XHU4MTIzXHU4MjFjXHU4MzQwXHU4NGY0XHU4NTYzXHU4YTYyXHU4YWM0XHU5MTg3XHU5MzFlXHU5ODA2XHU5OWI0XHU2MjBjXHU4ODUzXHU4ZmYwXHU5MjY1XHU1ZDA3XHU1ZDI3XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjI2XS5sZW5ndGg7Kytw'@; put 'KTY1NTMzIT09X1syMjZdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjI2XVtwXV09NTc4NTYrcCxiWzU3ODU2K3BdPV9bMjI2XVtwXSk7Zm9yKF9bMjI3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1ZDY5XHU3NDVmXHU4MTlkXHU4NzY4XHU2ZmQ1XHU2MmZlXHU3ZmQyXHU4OTM2XHU4OTcyXHU0ZTFlXHU0ZTU4XHU1MGU3XHU1MmRkXHU1MzQ3XHU2MjdmXHU2NjA3XHU3'@; put 'ZTY5XHU4ODA1XHU5NjVlXHU0ZjhkXHU1MzE5XHU1NjM2XHU1OWNiXHU1YWE0XHU1YzM4XHU1YzRlXHU1YzRkXHU1ZTAyXHU1ZjExXHU2MDQzXHU2NWJkXHU2NjJmXHU2NjQyXHU2N2JlXHU2N2Y0XHU3MzFjXHU3N2UyXHU3OTNhXHU3ZmM1XHU4NDk0XHU4NGNkXHU4OTk2XHU4YTY2XHU4YTY5'@; put 'XHU4YWUxXHU4YzU1XHU4YzdhXHU1N2Y0XHU1YmQ0XHU1ZjBmXHU2MDZmXHU2MmVkXHU2OTBkXHU2Yjk2XHU2ZTVjXHU3MTg0XHU3YmQyXHU4NzU1XHU4YjU4XHU4ZWZlXHU5OGRmXHU5OGZlXHU0ZjM4XHU0ZjgxXHU0ZmUxXHU1NDdiXHU1YTIwXHU1YmI4XHU2MTNjXHU2NWIwXHU2NjY4XHU3'@; put 'MWZjXHU3NTMzXHU3OTVlXHU3ZDMzXHU4MTRlXHU4MWUzXHU4Mzk4XHU4NWFhXHU4NWNlXHU4NzAzXHU4YTBhXHU4ZWFiXHU4ZjliXHVmOTcxXHU4ZmM1XHU1OTMxXHU1YmE0XHU1YmU2XHU2MDg5XHU1YmU5XHU1YzBiXHU1ZmMzXHU2YzgxXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjI3'@; put 'XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMjddW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjI3XVtwXV09NTgxMTIrcCxiWzU4MTEyK3BdPV9bMjI3XVtwXSk7Zm9yKF9bMjI4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmOTcyXHU2ZGYxXHU3MDBiXHU3NTFhXHU4MmFmXHU4YWY2XHU0ZWMwXHU1MzQxXHVmOTczXHU5NmQ5XHU2YzBmXHU0ZTllXHU0ZmM0XHU1MTUyXHU1'@; put 'NTVlXHU1YTI1XHU1Y2U4XHU2MjExXHU3MjU5XHU4MmJkXHU4M2FhXHU4NmZlXHU4ODU5XHU4YTFkXHU5NjNmXHU5NmM1XHU5OTEzXHU5ZDA5XHU5ZDVkXHU1ODBhXHU1Y2IzXHU1ZGJkXHU1ZTQ0XHU2MGUxXHU2MTE1XHU2M2UxXHU2YTAyXHU2ZTI1XHU5MTAyXHU5MzU0XHU5ODRlXHU5YzEw'@; put 'XHU5Zjc3XHU1Yjg5XHU1Y2I4XHU2MzA5XHU2NjRmXHU2ODQ4XHU3NzNjXHU5NmMxXHU5NzhkXHU5ODU0XHU5YjlmXHU2NWExXHU4YjAxXHU4ZWNiXHU5NWJjXHU1NTM1XHU1Y2E5XHU1ZGQ2XHU1ZWI1XHU2Njk3XHU3NjRjXHU4M2Y0XHU5NWM3XHU1OGQzXHU2MmJjXHU3MmNlXHU5ZDI4XHU0'@; put 'ZWYwXHU1OTJlXHU2MDBmXHU2NjNiXHU2YjgzXHU3OWU3XHU5ZDI2XHU1MzkzXHU1NGMwXHU1N2MzXHU1ZDE2XHU2MTFiXHU2NmQ2XHU2ZGFmXHU3ODhkXHU4MjdlXHU5Njk4XHU5NzQ0XHU1Mzg0XHU2MjdjXHU2Mzk2XHU2ZGIyXHU3ZTBhXHU4MTRiXHU5ODRkXHVmZmZkIi5zcGxpdCgiIiks'@; put 'cD0wO3AhPV9bMjI4XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMjhdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjI4XVtwXV09NTgzNjgrcCxiWzU4MzY4K3BdPV9bMjI4XVtwXSk7Zm9yKF9bMjI5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2YWZiXHU3ZjRjXHU5ZGFmXHU5ZTFhXHU0ZTVmXHU1MDNiXHU1MWI2XHU1OTFjXHU2MGY5XHU2M2Y2XHU2OTMwXHU3MjNhXHU4'@; put 'MDM2XHVmOTc0XHU5MWNlXHU1ZjMxXHVmOTc1XHVmOTc2XHU3ZDA0XHU4MmU1XHU4NDZmXHU4NGJiXHU4NWU1XHU4ZThkXHVmOTc3XHU0ZjZmXHVmOTc4XHVmOTc5XHU1OGU0XHU1YjQzXHU2MDU5XHU2M2RhXHU2NTE4XHU2NTZkXHU2Njk4XHVmOTdhXHU2OTRhXHU2YTIzXHU2ZDBiXHU3MDAx'@; put 'XHU3MTZjXHU3NWQyXHU3NjBkXHU3OWIzXHU3YTcwXHVmOTdiXHU3ZjhhXHVmOTdjXHU4OTQ0XHVmOTdkXHU4YjkzXHU5MWMwXHU5NjdkXHVmOTdlXHU5OTBhXHU1NzA0XHU1ZmExXHU2NWJjXHU2ZjAxXHU3NjAwXHU3OWE2XHU4YTllXHU5OWFkXHU5YjVhXHU5ZjZjXHU1MTA0XHU2MWI2XHU2'@; put 'MjkxXHU2YThkXHU4MWM2XHU1MDQzXHU1ODMwXHU1ZjY2XHU3MTA5XHU4YTAwXHU4YWZhXHU1YjdjXHU4NjE2XHU0ZmZhXHU1MTNjXHU1NmI0XHU1OTQ0XHU2M2E5XHU2ZGY5XHU1ZGFhXHU2OTZkXHU1MTg2XHU0ZTg4XHU0ZjU5XHVmOTdmXHVmOTgwXHVmOTgxXHU1OTgyXHVmOTgyXHVmZmZk'@; put 'Ii5zcGxpdCgiIikscD0wO3AhPV9bMjI5XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMjldW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjI5XVtwXV09NTg2MjQrcCxiWzU4NjI0K3BdPV9bMjI5XVtwXSk7Zm9yKF9bMjMwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmOTgzXHU2YjVmXHU2YzVkXHVmOTg0XHU3NGI1XHU3OTE2XHVmOTg1XHU4MjA3XHU4MjQ1XHU4MzM5XHU4'@; put 'ZjNmXHU4ZjVkXHVmOTg2XHU5OTE4XHVmOTg3XHVmOTg4XHVmOTg5XHU0ZWE2XHVmOThhXHU1N2RmXHU1Zjc5XHU2NjEzXHVmOThiXHVmOThjXHU3NWFiXHU3ZTc5XHU4YjZmXHVmOThkXHU5MDA2XHU5YTViXHU1NmE1XHU1ODI3XHU1OWY4XHU1YTFmXHU1YmI0XHVmOThlXHU1ZWY2XHVmOThm'@; put 'XHVmOTkwXHU2MzUwXHU2MzNiXHVmOTkxXHU2OTNkXHU2Yzg3XHU2Y2JmXHU2ZDhlXHU2ZDkzXHU2ZGY1XHU2ZjE0XHVmOTkyXHU3MGRmXHU3MTM2XHU3MTU5XHVmOTkzXHU3MWMzXHU3MWQ1XHVmOTk0XHU3ODRmXHU3ODZmXHVmOTk1XHU3Yjc1XHU3ZGUzXHVmOTk2XHU3ZTJmXHVmOTk3XHU4'@; put 'ODRkXHU4ZWRmXHVmOTk4XHVmOTk5XHVmOTlhXHU5MjViXHVmOTliXHU5Y2Y2XHVmOTljXHVmOTlkXHVmOTllXHU2MDg1XHU2ZDg1XHVmOTlmXHU3MWIxXHVmOWEwXHVmOWExXHU5NWIxXHU1M2FkXHVmOWEyXHVmOWEzXHVmOWE0XHU2N2QzXHVmOWE1XHU3MDhlXHU3MTMwXHU3NDMwXHU4Mjc2'@; put 'XHU4MmQyXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjMwXS5sZW5ndGg7KytwKTY1NTMzIT09X1syMzBdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjMwXVtwXV09NTg4ODArcCxiWzU4ODgwK3BdPV9bMjMwXVtwXSk7Zm9yKF9bMjMxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmOWE2XHU5NWJiXHU5YWU1XHU5ZTdkXHU2NmM0XHVmOWE3XHU3MWMxXHU4NDQ5XHVm'@; put 'OWE4XHVmOWE5XHU1ODRiXHVmOWFhXHVmOWFiXHU1ZGI4XHU1ZjcxXHVmOWFjXHU2NjIwXHU2NjhlXHU2OTc5XHU2OWFlXHU2YzM4XHU2Y2YzXHU2ZTM2XHU2ZjQxXHU2ZmRhXHU3MDFiXHU3MDJmXHU3MTUwXHU3MWRmXHU3MzcwXHVmOWFkXHU3NDViXHVmOWFlXHU3NGQ0XHU3NmM4XHU3YTRl'@; put 'XHU3ZTkzXHVmOWFmXHVmOWIwXHU4MmYxXHU4YTYwXHU4ZmNlXHVmOWIxXHU5MzQ4XHVmOWIyXHU5NzE5XHVmOWIzXHVmOWI0XHU0ZTQyXHU1MDJhXHVmOWI1XHU1MjA4XHU1M2UxXHU2NmYzXHU2YzZkXHU2ZmNhXHU3MzBhXHU3NzdmXHU3YTYyXHU4MmFlXHU4NWRkXHU4NjAyXHVmOWI2XHU4'@; put 'OGQ0XHU4YTYzXHU4YjdkXHU4YzZiXHVmOWI3XHU5MmIzXHVmOWI4XHU5NzEzXHU5ODEwXHU0ZTk0XHU0ZjBkXHU0ZmM5XHU1MGIyXHU1MzQ4XHU1NDNlXHU1NDMzXHU1NWRhXHU1ODYyXHU1OGJhXHU1OTY3XHU1YTFiXHU1YmU0XHU2MDlmXHVmOWI5XHU2MWNhXHU2NTU2XHU2NWZmXHU2NjY0'@; put 'XHU2OGE3XHU2YzVhXHU2ZmIzXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjMxXS5sZW5ndGg7KytwKTY1NTMzIT09X1syMzFdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjMxXVtwXV09NTkxMzYrcCxiWzU5MTM2K3BdPV9bMjMxXVtwXSk7Zm9yKF9bMjMyXT0iXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3MGNmXHU3MWFjXHU3MzUyXHU3YjdkXHU4NzA4XHU4YWE0XHU5'@; put 'YzMyXHU5ZjA3XHU1YzRiXHU2YzgzXHU3MzQ0XHU3Mzg5XHU5MjNhXHU2ZWFiXHU3NDY1XHU3NjFmXHU3YTY5XHU3ZTE1XHU4NjBhXHU1MTQwXHU1OGM1XHU2NGMxXHU3NGVlXHU3NTE1XHU3NjcwXHU3ZmMxXHU5MDk1XHU5NmNkXHU5OTU0XHU2ZTI2XHU3NGU2XHU3YWE5XHU3YWFhXHU4MWU1'@; put 'XHU4NmQ5XHU4Nzc4XHU4YTFiXHU1YTQ5XHU1YjhjXHU1YjliXHU2OGExXHU2OTAwXHU2ZDYzXHU3M2E5XHU3NDEzXHU3NDJjXHU3ODk3XHU3ZGU5XHU3ZmViXHU4MTE4XHU4MTU1XHU4MzllXHU4YzRjXHU5NjJlXHU5ODExXHU2NmYwXHU1ZjgwXHU2NWZhXHU2Nzg5XHU2YzZhXHU3MzhiXHU1'@; put 'MDJkXHU1YTAzXHU2YjZhXHU3N2VlXHU1OTE2XHU1ZDZjXHU1ZGNkXHU3MzI1XHU3NTRmXHVmOWJhXHVmOWJiXHU1MGU1XHU1MWY5XHU1ODJmXHU1OTJkXHU1OTk2XHU1OWRhXHU1YmU1XHVmOWJjXHVmOWJkXHU1ZGEyXHU2MmQ3XHU2NDE2XHU2NDkzXHU2NGZlXHVmOWJlXHU2NmRjXHVmOWJm'@; put 'XHU2YTQ4XHVmOWMwXHU3MWZmXHU3NDY0XHVmOWMxXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjMyXS5sZW5ndGg7KytwKTY1NTMzIT09X1syMzJdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjMyXVtwXV09NTkzOTIrcCxiWzU5MzkyK3BdPV9bMjMyXVtwXSk7Zm9yKF9bMjMzXT0iXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3YTg4XHU3YWFmXHU3ZTQ3XHU3ZTVlXHU4'@; put 'MDAwXHU4MTcwXHVmOWMyXHU4N2VmXHU4OTgxXHU4YjIwXHU5MDU5XHVmOWMzXHU5MDgwXHU5OTUyXHU2MTdlXHU2YjMyXHU2ZDc0XHU3ZTFmXHU4OTI1XHU4ZmIxXHU0ZmQxXHU1MGFkXHU1MTk3XHU1MmM3XHU1N2M3XHU1ODg5XHU1YmI5XHU1ZWI4XHU2MTQyXHU2OTk1XHU2ZDhjXHU2ZTY3'@; put 'XHU2ZWI2XHU3MTk0XHU3NDYyXHU3NTI4XHU3NTJjXHU4MDczXHU4MzM4XHU4NGM5XHU4ZTBhXHU5Mzk0XHU5M2RlXHVmOWM0XHU0ZThlXHU0ZjUxXHU1MDc2XHU1MTJhXHU1M2M4XHU1M2NiXHU1M2YzXHU1Yjg3XHU1YmQzXHU1YzI0XHU2MTFhXHU2MTgyXHU2NWY0XHU3MjViXHU3Mzk3XHU3'@; put 'NDQwXHU3NmMyXHU3OTUwXHU3OTkxXHU3OWI5XHU3ZDA2XHU3ZmJkXHU4MjhiXHU4NWQ1XHU4NjVlXHU4ZmMyXHU5MDQ3XHU5MGY1XHU5MWVhXHU5Njg1XHU5NmU4XHU5NmU5XHU1MmQ2XHU1ZjY3XHU2NWVkXHU2NjMxXHU2ODJmXHU3MTVjXHU3YTM2XHU5MGMxXHU5ODBhXHU0ZTkxXHVmOWM1'@; put 'XHU2YTUyXHU2YjllXHU2ZjkwXHU3MTg5XHU4MDE4XHU4MmI4XHU4NTUzXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjMzXS5sZW5ndGg7KytwKTY1NTMzIT09X1syMzNdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjMzXVtwXV09NTk2NDgrcCxiWzU5NjQ4K3BdPV9bMjMzXVtwXSk7Zm9y'@; put 'KF9bMjM0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MDRiXHU5Njk1XHU5'@; put 'NmYyXHU5N2ZiXHU4NTFhXHU5YjMxXHU0ZTkwXHU3MThhXHU5NmM0XHU1MTQzXHU1MzlmXHU1NGUxXHU1NzEzXHU1NzEyXHU1N2EzXHU1YTliXHU1YWM0XHU1YmMzXHU2MDI4XHU2MTNmXHU2M2Y0XHU2Yzg1XHU2ZDM5XHU2ZTcyXHU2ZTkwXHU3MjMwXHU3MzNmXHU3NDU3XHU4MmQxXHU4ODgx'@; put 'XHU4ZjQ1XHU5MDYwXHVmOWM2XHU5NjYyXHU5ODU4XHU5ZDFiXHU2NzA4XHU4ZDhhXHU5MjVlXHU0ZjRkXHU1MDQ5XHU1MGRlXHU1MzcxXHU1NzBkXHU1OWQ0XHU1YTAxXHU1YzA5XHU2MTcwXHU2NjkwXHU2ZTJkXHU3MjMyXHU3NDRiXHU3ZGVmXHU4MGMzXHU4NDBlXHU4NDY2XHU4NTNmXHU4'@; put 'NzVmXHU4ODViXHU4OTE4XHU4YjAyXHU5MDU1XHU5N2NiXHU5YjRmXHU0ZTczXHU0ZjkxXHU1MTEyXHU1MTZhXHVmOWM3XHU1NTJmXHU1NWE5XHU1YjdhXHU1YmE1XHU1ZTdjXHU1ZTdkXHU1ZWJlXHU2MGEwXHU2MGRmXHU2MTA4XHU2MTA5XHU2M2M0XHU2NTM4XHU2NzA5XHVmOWM4XHU2N2Q0'@; put 'XHU2N2RhXHVmOWM5XHU2OTYxXHU2OTYyXHU2Y2I5XHU2ZDI3XHVmOWNhXHU2ZTM4XHVmOWNiXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjM0XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMzRdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjM0XVtwXV09NTk5MDQrcCxiWzU5OTA0K3BdPV9b'@; put 'MjM0XVtwXSk7Zm9yKF9bMjM1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2'@; put 'ZmUxXHU3MzM2XHU3MzM3XHVmOWNjXHU3NDVjXHU3NTMxXHVmOWNkXHU3NjUyXHVmOWNlXHVmOWNmXHU3ZGFkXHU4MWZlXHU4NDM4XHU4OGQ1XHU4YTk4XHU4YWRiXHU4YWVkXHU4ZTMwXHU4ZTQyXHU5MDRhXHU5MDNlXHU5MDdhXHU5MTQ5XHU5MWM5XHU5MzZlXHVmOWQwXHVmOWQxXHU1ODA5'@; put 'XHVmOWQyXHU2YmQzXHU4MDg5XHU4MGIyXHVmOWQzXHVmOWQ0XHU1MTQxXHU1OTZiXHU1YzM5XHVmOWQ1XHVmOWQ2XHU2ZjY0XHU3M2E3XHU4MGU0XHU4ZDA3XHVmOWQ3XHU5MjE3XHU5NThmXHVmOWQ4XHVmOWQ5XHVmOWRhXHVmOWRiXHU4MDdmXHU2MjBlXHU3MDFjXHU3ZDY4XHU4NzhkXHVm'@; put 'OWRjXHU1N2EwXHU2MDY5XHU2MTQ3XHU2YmI3XHU4YWJlXHU5MjgwXHU5NmIxXHU0ZTU5XHU1NDFmXHU2ZGViXHU4NTJkXHU5NjcwXHU5N2YzXHU5OGVlXHU2M2Q2XHU2Y2UzXHU5MDkxXHU1MWRkXHU2MWM5XHU4MWJhXHU5ZGY5XHU0ZjlkXHU1MDFhXHU1MTAwXHU1YjljXHU2MTBmXHU2MWZm'@; put 'XHU2NGVjXHU2OTA1XHU2YmM1XHU3NTkxXHU3N2UzXHU3ZmE5XHU4MjY0XHU4NThmXHU4N2ZiXHU4ODYzXHU4YWJjXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjM1XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMzVdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjM1XVtwXV09NjAxNjArcCxi'@; put 'WzYwMTYwK3BdPV9bMjM1XVtwXSk7Zm9yKF9bMjM2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHU4YjcwXHU5MWFiXHU0ZThjXHU0ZWU1XHU0ZjBhXHVmOWRkXHVmOWRlXHU1OTM3XHU1OWU4XHVmOWRmXHU1ZGYyXHU1ZjFiXHU1ZjViXHU2MDIxXHVmOWUwXHVmOWUxXHVmOWUyXHVmOWUzXHU3MjNlXHU3M2U1XHVmOWU0XHU3NTcwXHU3NWNkXHVmOWU1XHU3OWZiXHVmOWU2'@; put 'XHU4MDBjXHU4MDMzXHU4MDg0XHU4MmUxXHU4MzUxXHVmOWU3XHVmOWU4XHU4Y2JkXHU4Y2IzXHU5MDg3XHVmOWU5XHVmOWVhXHU5OGY0XHU5OTBjXHVmOWViXHVmOWVjXHU3MDM3XHU3NmNhXHU3ZmNhXHU3ZmNjXHU3ZmZjXHU4YjFhXHU0ZWJhXHU0ZWMxXHU1MjAzXHU1MzcwXHVmOWVkXHU1'@; put 'NGJkXHU1NmUwXHU1OWZiXHU1YmM1XHU1ZjE1XHU1ZmNkXHU2ZTZlXHVmOWVlXHVmOWVmXHU3ZDZhXHU4MzM1XHVmOWYwXHU4NjkzXHU4YThkXHVmOWYxXHU5NzZkXHU5Nzc3XHVmOWYyXHVmOWYzXHU0ZTAwXHU0ZjVhXHU0ZjdlXHU1OGY5XHU2NWU1XHU2ZWEyXHU5MDM4XHU5M2IwXHU5OWI5'@; put 'XHU0ZWZiXHU1OGVjXHU1OThhXHU1OWQ5XHU2MDQxXHVmOWY0XHVmOWY1XHU3YTE0XHVmOWY2XHU4MzRmXHU4Y2MzXHU1MTY1XHU1MzQ0XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjM2XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMzZdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjM2XVtw'@; put 'XV09NjA0MTYrcCxiWzYwNDE2K3BdPV9bMjM2XVtwXSk7Zm9yKF9bMjM3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmOWY3XHVmOWY4XHVmOWY5XHU0ZWNkXHU1MjY5XHU1YjU1XHU4MmJmXHU0ZWQ0XHU1MjNhXHU1NGE4XHU1OWM5XHU1OWZmXHU1YjUwXHU1YjU3XHU1YjVjXHU2MDYzXHU2MTQ4XHU2ZWNiXHU3MDk5XHU3MTZlXHU3Mzg2XHU3NGY3XHU3NWI1XHU3OGMx'@; put 'XHU3ZDJiXHU4MDA1XHU4MWVhXHU4MzI4XHU4NTE3XHU4NWM5XHU4YWVlXHU4Y2M3XHU5NmNjXHU0ZjVjXHU1MmZhXHU1NmJjXHU2NWFiXHU2NjI4XHU3MDdjXHU3MGI4XHU3MjM1XHU3ZGJkXHU4MjhkXHU5MTRjXHU5NmMwXHU5ZDcyXHU1YjcxXHU2OGU3XHU2Yjk4XHU2ZjdhXHU3NmRlXHU1'@; put 'YzkxXHU2NmFiXHU2ZjViXHU3YmI0XHU3YzJhXHU4ODM2XHU5NmRjXHU0ZTA4XHU0ZWQ3XHU1MzIwXHU1ODM0XHU1OGJiXHU1OGVmXHU1OTZjXHU1YzA3XHU1ZTMzXHU1ZTg0XHU1ZjM1XHU2MzhjXHU2NmIyXHU2NzU2XHU2YTFmXHU2YWEzXHU2YjBjXHU2ZjNmXHU3MjQ2XHVmOWZhXHU3MzUw'@; put 'XHU3NDhiXHU3YWUwXHU3Y2E3XHU4MTc4XHU4MWRmXHU4MWU3XHU4MzhhXHU4NDZjXHU4NTIzXHU4NTk0XHU4NWNmXHU4OGRkXHU4ZDEzXHU5MWFjXHU5NTc3XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjM3XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMzddW3BdLmNoYXJDb2RlQXQoMCkm'@; put 'JihEW19bMjM3XVtwXV09NjA2NzIrcCxiWzYwNjcyK3BdPV9bMjM3XVtwXSk7Zm9yKF9bMjM4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5NjljXHU1MThkXHU1NGM5XHU1NzI4XHU1YmIwXHU2MjRkXHU2NzUwXHU2ODNkXHU2ODkzXHU2ZTNkXHU2ZWQzXHU3MDdkXHU3ZTIxXHU4OGMxXHU4Y2ExXHU4ZjA5XHU5ZjRiXHU5ZjRlXHU3MjJkXHU3YjhmXHU4YWNkXHU5MzFh'@; put 'XHU0ZjQ3XHU0ZjRlXHU1MTMyXHU1NDgwXHU1OWQwXHU1ZTk1XHU2MmI1XHU2Nzc1XHU2OTZlXHU2YTE3XHU2Y2FlXHU2ZTFhXHU3MmQ5XHU3MzJhXHU3NWJkXHU3YmI4XHU3ZDM1XHU4MmU3XHU4M2Y5XHU4NDU3XHU4NWY3XHU4YTViXHU4Y2FmXHU4ZTg3XHU5MDE5XHU5MGI4XHU5NmNlXHU5'@; put 'ZjVmXHU1MmUzXHU1NDBhXHU1YWUxXHU1YmMyXHU2NDU4XHU2NTc1XHU2ZWY0XHU3MmM0XHVmOWZiXHU3Njg0XHU3YTRkXHU3YjFiXHU3YzRkXHU3ZTNlXHU3ZmRmXHU4MzdiXHU4YjJiXHU4Y2NhXHU4ZDY0XHU4ZGUxXHU4ZTVmXHU4ZmVhXHU4ZmY5XHU5MDY5XHU5M2QxXHU0ZjQzXHU0Zjdh'@; put 'XHU1MGIzXHU1MTY4XHU1MTc4XHU1MjRkXHU1MjZhXHU1ODYxXHU1ODdjXHU1OTYwXHU1YzA4XHU1YzU1XHU1ZWRiXHU2MDliXHU2MjMwXHU2ODEzXHU2YmJmXHU2YzA4XHU2ZmIxXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjM4XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMzhdW3BdLmNo'@; put 'YXJDb2RlQXQoMCkmJihEW19bMjM4XVtwXV09NjA5MjgrcCxiWzYwOTI4K3BdPV9bMjM4XVtwXSk7Zm9yKF9bMjM5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3MTRlXHU3NDIwXHU3NTMwXHU3NTM4XHU3NTUxXHU3NjcyXHU3YjRjXHU3YjhiXHU3YmFkXHU3YmM2XHU3ZThmXHU4YTZlXHU4ZjNlXHU4ZjQ5XHU5MjNmXHU5MjkzXHU5MzIyXHU5NDJiXHU5NmZiXHU5ODVh'@; put 'XHU5ODZiXHU5OTFlXHU1MjA3XHU2MjJhXHU2Mjk4XHU2ZDU5XHU3NjY0XHU3YWNhXHU3YmMwXHU3ZDc2XHU1MzYwXHU1Y2JlXHU1ZTk3XHU2ZjM4XHU3MGI5XHU3Yzk4XHU5NzExXHU5YjhlXHU5ZWRlXHU2M2E1XHU2NDdhXHU4Nzc2XHU0ZTAxXHU0ZTk1XHU0ZWFkXHU1MDVjXHU1MDc1XHU1'@; put 'NDQ4XHU1OWMzXHU1YjlhXHU1ZTQwXHU1ZWFkXHU1ZWY3XHU1ZjgxXHU2MGM1XHU2MzNhXHU2NTNmXHU2NTc0XHU2NWNjXHU2Njc2XHU2Njc4XHU2N2ZlXHU2OTY4XHU2YTg5XHU2YjYzXHU2YzQwXHU2ZGMwXHU2ZGU4XHU2ZTFmXHU2ZTVlXHU3MDFlXHU3MGExXHU3MzhlXHU3M2ZkXHU3NTNh'@; put 'XHU3NzViXHU3ODg3XHU3OThlXHU3YTBiXHU3YTdkXHU3Y2JlXHU3ZDhlXHU4MjQ3XHU4YTAyXHU4YWVhXHU4YzllXHU5MTJkXHU5MTRhXHU5MWQ4XHU5MjY2XHU5MmNjXHU5MzIwXHU5NzA2XHU5NzU2XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjM5XS5sZW5ndGg7KytwKTY1NTMzIT09'@; put 'X1syMzldW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjM5XVtwXV09NjExODQrcCxiWzYxMTg0K3BdPV9bMjM5XVtwXSk7Zm9yKF9bMjQwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5NzVjXHU5ODAyXHU5ZjBlXHU1MjM2XHU1MjkxXHU1NTdjXHU1ODI0XHU1ZTFkXHU1ZjFmXHU2MDhjXHU2M2QwXHU2OGFmXHU2ZmRmXHU3OTZkXHU3YjJjXHU4MWNkXHU4NWJhXHU4OGZk'@; put 'XHU4YWY4XHU4ZTQ0XHU5MThkXHU5NjY0XHU5NjliXHU5NzNkXHU5ODRjXHU5ZjRhXHU0ZmNlXHU1MTQ2XHU1MWNiXHU1MmE5XHU1NjMyXHU1ZjE0XHU1ZjZiXHU2M2FhXHU2NGNkXHU2NWU5XHU2NjQxXHU2NmZhXHU2NmY5XHU2NzFkXHU2ODlkXHU2OGQ3XHU2OWZkXHU2ZjE1XHU2ZjZlXHU3'@; put 'MTY3XHU3MWU1XHU3MjJhXHU3NGFhXHU3NzNhXHU3OTU2XHU3OTVhXHU3OWRmXHU3YTIwXHU3YTk1XHU3Yzk3XHU3Y2RmXHU3ZDQ0XHU3ZTcwXHU4MDg3XHU4NWZiXHU4NmE0XHU4YTU0XHU4YWJmXHU4ZDk5XHU4ZTgxXHU5MDIwXHU5MDZkXHU5MWUzXHU5NjNiXHU5NmQ1XHU5Y2U1XHU2NWNm'@; put 'XHU3YzA3XHU4ZGIzXHU5M2MzXHU1YjU4XHU1YzBhXHU1MzUyXHU2MmQ5XHU3MzFkXHU1MDI3XHU1Yjk3XHU1ZjllXHU2MGIwXHU2MTZiXHU2OGQ1XHU2ZGQ5XHU3NDJlXHU3YTJlXHU3ZDQyXHU3ZDljXHU3ZTMxXHU4MTZiXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjQwXS5sZW5ndGg7'@; put 'KytwKTY1NTMzIT09X1syNDBdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjQwXVtwXV09NjE0NDArcCxiWzYxNDQwK3BdPV9bMjQwXVtwXSk7Zm9yKF9bMjQxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4ZTJhXHU4ZTM1XHU5MzdlXHU5NDE4XHU0ZjUwXHU1NzUwXHU1ZGU2XHU1ZWE3XHU2MzJiXHU3ZjZhXHU0ZTNiXHU0ZjRmXHU0ZjhmXHU1MDVhXHU1OWRkXHU4MGM0'@; put 'XHU1NDZhXHU1NDY4XHU1NWZlXHU1OTRmXHU1Yjk5XHU1ZGRlXHU1ZWRhXHU2NjVkXHU2NzMxXHU2N2YxXHU2ODJhXHU2Y2U4XHU2ZDMyXHU2ZTRhXHU2ZjhkXHU3MGI3XHU3M2UwXHU3NTg3XHU3YzRjXHU3ZDAyXHU3ZDJjXHU3ZGEyXHU4MjFmXHU4NmRiXHU4YTNiXHU4YTg1XHU4ZDcwXHU4'@; put 'ZThhXHU4ZjMzXHU5MDMxXHU5MTRlXHU5MTUyXHU5NDQ0XHU5OWQwXHU3YWY5XHU3Y2E1XHU0ZmNhXHU1MTAxXHU1MWM2XHU1N2M4XHU1YmVmXHU1Y2ZiXHU2NjU5XHU2YTNkXHU2ZDVhXHU2ZTk2XHU2ZmVjXHU3MTBjXHU3NTZmXHU3YWUzXHU4ODIyXHU5MDIxXHU5MDc1XHU5NmNiXHU5OWZm'@; put 'XHU4MzAxXHU0ZTJkXHU0ZWYyXHU4ODQ2XHU5MWNkXHU1MzdkXHU2YWRiXHU2OTZiXHU2YzQxXHU4NDdhXHU1ODllXHU2MThlXHU2NmZlXHU2MmVmXHU3MGRkXHU3NTExXHU3NWM3XHU3ZTUyXHU4NGI4XHU4YjQ5XHU4ZDA4XHU0ZTRiXHU1M2VhXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9b'@; put 'MjQxXS5sZW5ndGg7KytwKTY1NTMzIT09X1syNDFdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjQxXVtwXV09NjE2OTYrcCxiWzYxNjk2K3BdPV9bMjQxXVtwXSk7Zm9yKF9bMjQyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NGFiXHU1NzMwXHU1NzQwXHU1ZmQ3XHU2MzAxXHU2MzA3XHU2NDZmXHU2NTJmXHU2NWU4XHU2NjdhXHU2NzlkXHU2N2IzXHU2YjYyXHU2YzYw'@; put 'XHU2YzlhXHU2ZjJjXHU3N2U1XHU3ODI1XHU3OTQ5XHU3OTU3XHU3ZDE5XHU4MGEyXHU4MTAyXHU4MWYzXHU4MjlkXHU4MmI3XHU4NzE4XHU4YThjXHVmOWZjXHU4ZDA0XHU4ZGJlXHU5MDcyXHU3NmY0XHU3YTE5XHU3YTM3XHU3ZTU0XHU4MDc3XHU1NTA3XHU1NWQ0XHU1ODc1XHU2MzJmXHU2'@; put 'NDIyXHU2NjQ5XHU2NjRiXHU2ODZkXHU2OTliXHU2Yjg0XHU2ZDI1XHU2ZWIxXHU3M2NkXHU3NDY4XHU3NGExXHU3NTViXHU3NWI5XHU3NmUxXHU3NzFlXHU3NzhiXHU3OWU2XHU3ZTA5XHU3ZTFkXHU4MWZiXHU4NTJmXHU4ODk3XHU4YTNhXHU4Y2QxXHU4ZWViXHU4ZmIwXHU5MDMyXHU5M2Fk'@; put 'XHU5NjYzXHU5NjczXHU5NzA3XHU0Zjg0XHU1M2YxXHU1OWVhXHU1YWM5XHU1ZTE5XHU2ODRlXHU3NGM2XHU3NWJlXHU3OWU5XHU3YTkyXHU4MWEzXHU4NmVkXHU4Y2VhXHU4ZGNjXHU4ZmVkXHU2NTlmXHU2NzE1XHVmOWZkXHU1N2Y3XHU2ZjU3XHU3ZGRkXHU4ZjJmXHVmZmZkIi5zcGxpdCgi'@; put 'IikscD0wO3AhPV9bMjQyXS5sZW5ndGg7KytwKTY1NTMzIT09X1syNDJdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjQyXVtwXV09NjE5NTIrcCxiWzYxOTUyK3BdPV9bMjQyXVtwXSk7Zm9yKF9bMjQzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5M2Y2XHU5NmM2XHU1ZmI1XHU2MWYyXHU2Zjg0XHU0ZTE0XHU0Zjk4XHU1MDFmXHU1M2M5XHU1NWRmXHU1ZDZmXHU1ZGVl'@; put 'XHU2YjIxXHU2YjY0XHU3OGNiXHU3YjlhXHVmOWZlXHU4ZTQ5XHU4ZWNhXHU5MDZlXHU2MzQ5XHU2NDNlXHU3NzQwXHU3YTg0XHU5MzJmXHU5NDdmXHU5ZjZhXHU2NGIwXHU2ZmFmXHU3MWU2XHU3NGE4XHU3NGRhXHU3YWM0XHU3YzEyXHU3ZTgyXHU3Y2IyXHU3ZTk4XHU4YjlhXHU4ZDBhXHU5'@; put 'NDdkXHU5OTEwXHU5OTRjXHU1MjM5XHU1YmRmXHU2NGU2XHU2NzJkXHU3ZDJlXHU1MGVkXHU1M2MzXHU1ODc5XHU2MTU4XHU2MTU5XHU2MWZhXHU2NWFjXHU3YWQ5XHU4YjkyXHU4Yjk2XHU1MDA5XHU1MDIxXHU1Mjc1XHU1NTMxXHU1YTNjXHU1ZWUwXHU1ZjcwXHU2MTM0XHU2NTVlXHU2NjBj'@; put 'XHU2NjM2XHU2NmEyXHU2OWNkXHU2ZWM0XHU2ZjMyXHU3MzE2XHU3NjIxXHU3YTkzXHU4MTM5XHU4MjU5XHU4M2Q2XHU4NGJjXHU1MGI1XHU1N2YwXHU1YmMwXHU1YmU4XHU1ZjY5XHU2M2ExXHU3ODI2XHU3ZGI1XHU4M2RjXHU4NTIxXHU5MWM3XHU5MWY1XHU1MThhXHU2N2Y1XHU3YjU2XHVm'@; put 'ZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjQzXS5sZW5ndGg7KytwKTY1NTMzIT09X1syNDNdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjQzXVtwXV09NjIyMDgrcCxiWzYyMjA4K3BdPV9bMjQzXVtwXSk7Zm9yKF9bMjQ0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4Y2FjXHU1MWM0XHU1OWJiXHU2MGJkXHU4NjU1XHU1MDFjXHVmOWZmXHU1MjU0XHU1YzNhXHU2MTdk'@; put 'XHU2MjFhXHU2MmQzXHU2NGYyXHU2NWE1XHU2ZWNjXHU3NjIwXHU4MTBhXHU4ZTYwXHU5NjVmXHU5NmJiXHU0ZWRmXHU1MzQzXHU1NTk4XHU1OTI5XHU1ZGRkXHU2NGM1XHU2Y2M5XHU2ZGZhXHU3Mzk0XHU3YTdmXHU4MjFiXHU4NWE2XHU4Y2U0XHU4ZTEwXHU5MDc3XHU5MWU3XHU5NWUxXHU5'@; put 'NjIxXHU5N2M2XHU1MWY4XHU1NGYyXHU1NTg2XHU1ZmI5XHU2NGE0XHU2Zjg4XHU3ZGI0XHU4ZjFmXHU4ZjRkXHU5NDM1XHU1MGM5XHU1YzE2XHU2Y2JlXHU2ZGZiXHU3NTFiXHU3N2JiXHU3YzNkXHU3YzY0XHU4YTc5XHU4YWMyXHU1ODFlXHU1OWJlXHU1ZTE2XHU2Mzc3XHU3MjUyXHU3NThh'@; put 'XHU3NzZiXHU4YWRjXHU4Y2JjXHU4ZjEyXHU1ZWYzXHU2Njc0XHU2ZGY4XHU4MDdkXHU4M2MxXHU4YWNiXHU5NzUxXHU5YmQ2XHVmYTAwXHU1MjQzXHU2NmZmXHU2ZDk1XHU2ZWVmXHU3ZGUwXHU4YWU2XHU5MDJlXHU5MDVlXHU5YWQ0XHU1MjFkXHU1MjdmXHU1NGU4XHU2MTk0XHU2Mjg0XHU2'@; put 'MmRiXHU2OGEyXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjQ0XS5sZW5ndGg7KytwKTY1NTMzIT09X1syNDRdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjQ0XVtwXV09NjI0NjQrcCxiWzYyNDY0K3BdPV9bMjQ0XVtwXSk7Zm9yKF9bMjQ1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2OTEyXHU2OTVhXHU2YTM1XHU3MDkyXHU3MTI2XHU3ODVkXHU3OTAxXHU3OTBl'@; put 'XHU3OWQyXHU3YTBkXHU4MDk2XHU4Mjc4XHU4MmQ1XHU4MzQ5XHU4NTQ5XHU4YzgyXHU4ZDg1XHU5MTYyXHU5MThiXHU5MWFlXHU0ZmMzXHU1NmQxXHU3MWVkXHU3N2Q3XHU4NzAwXHU4OWY4XHU1YmY4XHU1ZmQ2XHU2NzUxXHU5MGE4XHU1M2UyXHU1ODVhXHU1YmY1XHU2MGE0XHU2MTgxXHU2'@; put 'NDYwXHU3ZTNkXHU4MDcwXHU4NTI1XHU5MjgzXHU2NGFlXHU1MGFjXHU1ZDE0XHU2NzAwXHU1ODljXHU2MmJkXHU2M2E4XHU2OTBlXHU2OTc4XHU2YTFlXHU2ZTZiXHU3NmJhXHU3OWNiXHU4MmJiXHU4NDI5XHU4YWNmXHU4ZGE4XHU4ZmZkXHU5MTEyXHU5MTRiXHU5MTljXHU5MzEwXHU5MzE4'@; put 'XHU5MzlhXHU5NmRiXHU5YTM2XHU5YzBkXHU0ZTExXHU3NTVjXHU3OTVkXHU3YWZhXHU3YjUxXHU3YmM5XHU3ZTJlXHU4NGM0XHU4ZTU5XHU4ZTc0XHU4ZWY4XHU5MDEwXHU2NjI1XHU2OTNmXHU3NDQzXHU1MWZhXHU2NzJlXHU5ZWRjXHU1MTQ1XHU1ZmUwXHU2Yzk2XHU4N2YyXHU4ODVkXHU4'@; put 'ODc3XHU2MGI0XHU4MWI1XHU4NDAzXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjQ1XS5sZW5ndGg7KytwKTY1NTMzIT09X1syNDVdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjQ1XVtwXV09NjI3MjArcCxiWzYyNzIwK3BdPV9bMjQ1XVtwXSk7Zm9yKF9bMjQ2XT0iXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4ZDA1XHU1M2Q2XHU1NDM5XHU1NjM0XHU1YTM2XHU1YzMx'@; put 'XHU3MDhhXHU3ZmUwXHU4MDVhXHU4MTA2XHU4MWVkXHU4ZGEzXHU5MTg5XHU5YTVmXHU5ZGYyXHU1MDc0XHU0ZWM0XHU1M2EwXHU2MGZiXHU2ZTJjXHU1YzY0XHU0Zjg4XHU1MDI0XHU1NWU0XHU1Y2Q5XHU1ZTVmXHU2MDY1XHU2ODk0XHU2Y2JiXHU2ZGM0XHU3MWJlXHU3NWQ0XHU3NWY0XHU3'@; put 'NjYxXHU3YTFhXHU3YTQ5XHU3ZGM3XHU3ZGZiXHU3ZjZlXHU4MWY0XHU4NmE5XHU4ZjFjXHU5NmM5XHU5OWIzXHU5ZjUyXHU1MjQ3XHU1MmM1XHU5OGVkXHU4OWFhXHU0ZTAzXHU2N2QyXHU2ZjA2XHU0ZmI1XHU1YmUyXHU2Nzk1XHU2Yzg4XHU2ZDc4XHU3NDFiXHU3ODI3XHU5MWRkXHU5Mzdj'@; put 'XHU4N2M0XHU3OWU0XHU3YTMxXHU1ZmViXHU0ZWQ2XHU1NGE0XHU1NTNlXHU1OGFlXHU1OWE1XHU2MGYwXHU2MjUzXHU2MmQ2XHU2NzM2XHU2OTU1XHU4MjM1XHU5NjQwXHU5OWIxXHU5OWRkXHU1MDJjXHU1MzUzXHU1NTQ0XHU1NzdjXHVmYTAxXHU2MjU4XHVmYTAyXHU2NGUyXHU2NjZiXHU2'@; put 'N2RkXHU2ZmMxXHU2ZmVmXHU3NDIyXHU3NDM4XHU4YTE3XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjQ2XS5sZW5ndGg7KytwKTY1NTMzIT09X1syNDZdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjQ2XVtwXV09NjI5NzYrcCxiWzYyOTc2K3BdPV9bMjQ2XVtwXSk7Zm9yKF9bMjQ3XT0i'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5NDM4XHU1NDUxXHU1NjA2XHU1NzY2'@; put 'XHU1ZjQ4XHU2MTlhXHU2YjRlXHU3MDU4XHU3MGFkXHU3ZGJiXHU4YTk1XHU1OTZhXHU4MTJiXHU2M2EyXHU3NzA4XHU4MDNkXHU4Y2FhXHU1ODU0XHU2NDJkXHU2OWJiXHU1Yjk1XHU1ZTExXHU2ZTZmXHVmYTAzXHU4NTY5XHU1MTRjXHU1M2YwXHU1OTJhXHU2MDIwXHU2MTRiXHU2Yjg2XHU2'@; put 'YzcwXHU2Y2YwXHU3YjFlXHU4MGNlXHU4MmQ0XHU4ZGM2XHU5MGIwXHU5OGIxXHVmYTA0XHU2NGM3XHU2ZmE0XHU2NDkxXHU2NTA0XHU1MTRlXHU1NDEwXHU1NzFmXHU4YTBlXHU2MTVmXHU2ODc2XHVmYTA1XHU3NWRiXHU3YjUyXHU3ZDcxXHU5MDFhXHU1ODA2XHU2OWNjXHU4MTdmXHU4OTJh'@; put 'XHU5MDAwXHU5ODM5XHU1MDc4XHU1OTU3XHU1OWFjXHU2Mjk1XHU5MDBmXHU5YjJhXHU2MTVkXHU3Mjc5XHU5NWQ2XHU1NzYxXHU1YTQ2XHU1ZGY0XHU2MjhhXHU2NGFkXHU2NGZhXHU2Nzc3XHU2Y2UyXHU2ZDNlXHU3MjJjXHU3NDM2XHU3ODM0XHU3Zjc3XHU4MmFkXHU4ZGRiXHU5ODE3XHU1'@; put 'MjI0XHU1NzQyXHU2NzdmXHU3MjQ4XHU3NGUzXHU4Y2E5XHU4ZmE2XHU5MjExXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjQ3XS5sZW5ndGg7KytwKTY1NTMzIT09X1syNDddW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjQ3XVtwXV09NjMyMzIrcCxiWzYzMjMyK3BdPV9bMjQ3XVtwXSk7'@; put 'Zm9yKF9bMjQ4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5NjJhXHU1MTZi'@; put 'XHU1M2VkXHU2MzRjXHU0ZjY5XHU1NTA0XHU2MDk2XHU2NTU3XHU2YzliXHU2ZDdmXHU3MjRjXHU3MmZkXHU3YTE3XHU4OTg3XHU4YzlkXHU1ZjZkXHU2ZjhlXHU3MGY5XHU4MWE4XHU2MTBlXHU0ZmJmXHU1MDRmXHU2MjQxXHU3MjQ3XHU3YmM3XHU3ZGU4XHU3ZmU5XHU5MDRkXHU5N2FkXHU5'@; put 'YTE5XHU4Y2I2XHU1NzZhXHU1ZTczXHU2N2IwXHU4NDBkXHU4YTU1XHU1NDIwXHU1YjE2XHU1ZTYzXHU1ZWUyXHU1ZjBhXHU2NTgzXHU4MGJhXHU4NTNkXHU5NTg5XHU5NjViXHU0ZjQ4XHU1MzA1XHU1MzBkXHU1MzBmXHU1NDg2XHU1NGZhXHU1NzAzXHU1ZTAzXHU2MDE2XHU2MjliXHU2MmIx'@; put 'XHU2MzU1XHVmYTA2XHU2Y2UxXHU2ZDY2XHU3NWIxXHU3ODMyXHU4MGRlXHU4MTJmXHU4MmRlXHU4NDYxXHU4NGIyXHU4ODhkXHU4OTEyXHU5MDBiXHU5MmVhXHU5OGZkXHU5YjkxXHU1ZTQ1XHU2NmI0XHU2NmRkXHU3MDExXHU3MjA2XHVmYTA3XHU0ZmY1XHU1MjdkXHU1ZjZhXHU2MTUzXHU2'@; put 'NzUzXHU2YTE5XHU2ZjAyXHU3NGUyXHU3OTY4XHU4ODY4XHU4Yzc5XHU5OGM3XHU5OGM0XHU5YTQzXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjQ4XS5sZW5ndGg7KytwKTY1NTMzIT09X1syNDhdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjQ4XVtwXV09NjM0ODgrcCxiWzYzNDg4K3Bd'@; put 'PV9bMjQ4XVtwXSk7Zm9yKF9bMjQ5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHU1NGMxXHU3YTFmXHU2OTUzXHU4YWY3XHU4YzRhXHU5OGE4XHU5OWFlXHU1ZjdjXHU2MmFiXHU3NWIyXHU3NmFlXHU4OGFiXHU5MDdmXHU5NjQyXHU1MzM5XHU1ZjNjXHU1ZmM1XHU2Y2NjXHU3M2NjXHU3NTYyXHU3NThiXHU3YjQ2XHU4MmZlXHU5OTlkXHU0ZTRmXHU5MDNjXHU0ZTBiXHU0'@; put 'ZjU1XHU1M2E2XHU1OTBmXHU1ZWM4XHU2NjMwXHU2Y2IzXHU3NDU1XHU4Mzc3XHU4NzY2XHU4Y2MwXHU5MDUwXHU5NzFlXHU5YzE1XHU1OGQxXHU1Yjc4XHU4NjUwXHU4YjE0XHU5ZGI0XHU1YmQyXHU2MDY4XHU2MDhkXHU2NWYxXHU2YzU3XHU2ZjIyXHU2ZmEzXHU3MDFhXHU3ZjU1XHU3ZmYw'@; put 'XHU5NTkxXHU5NTkyXHU5NjUwXHU5N2QzXHU1MjcyXHU4ZjQ0XHU1MWZkXHU1NDJiXHU1NGI4XHU1NTYzXHU1NThhXHU2YWJiXHU2ZGI1XHU3ZGQ4XHU4MjY2XHU5MjljXHU5Njc3XHU5ZTc5XHU1NDA4XHU1NGM4XHU3NmQyXHU4NmU0XHU5NWE0XHU5NWQ0XHU5NjVjXHU0ZWEyXHU0ZjA5XHU1'@; put 'OWVlXHU1YWU2XHU1ZGY3XHU2MDUyXHU2Mjk3XHU2NzZkXHU2ODQxXHU2Yzg2XHU2ZTJmXHU3ZjM4XHU4MDliXHU4MjJhXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjQ5XS5sZW5ndGg7KytwKTY1NTMzIT09X1syNDldW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjQ5XVtwXV09NjM3NDQr'@; put 'cCxiWzYzNzQ0K3BdPV9bMjQ5XVtwXSk7Zm9yKF9bMjUwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmYTA4XHVmYTA5XHU5ODA1XHU0ZWE1XHU1MDU1XHU1NGIzXHU1NzkzXHU1OTVhXHU1YjY5XHU1YmIzXHU2MWM4XHU2OTc3XHU2ZDc3XHU3MDIzXHU4N2Y5XHU4OWUzXHU4YTcyXHU4YWU3XHU5MDgyXHU5OWVkXHU5YWI4XHU1MmJlXHU2ODM4XHU1MDE2XHU1ZTc4XHU2'@; put 'NzRmXHU4MzQ3XHU4ODRjXHU0ZWFiXHU1NDExXHU1NmFlXHU3M2U2XHU5MTE1XHU5N2ZmXHU5OTA5XHU5OTU3XHU5OTk5XHU1NjUzXHU1ODlmXHU4NjViXHU4YTMxXHU2MWIyXHU2YWY2XHU3MzdiXHU4ZWQyXHU2YjQ3XHU5NmFhXHU5YTU3XHU1OTU1XHU3MjAwXHU4ZDZiXHU5NzY5XHU0ZmQ0'@; put 'XHU1Y2Y0XHU1ZjI2XHU2MWY4XHU2NjViXHU2Y2ViXHU3MGFiXHU3Mzg0XHU3M2I5XHU3M2ZlXHU3NzI5XHU3NzRkXHU3ZDQzXHU3ZDYyXHU3ZTIzXHU4MjM3XHU4ODUyXHVmYTBhXHU4Y2UyXHU5MjQ5XHU5ODZmXHU1YjUxXHU3YTc0XHU4ODQwXHU5ODAxXHU1YWNjXHU0ZmUwXHU1MzU0XHU1'@; put 'OTNlXHU1Y2ZkXHU2MzNlXHU2ZDc5XHU3MmY5XHU4MTA1XHU4MTA3XHU4M2EyXHU5MmNmXHU5ODMwXHU0ZWE4XHU1MTQ0XHU1MjExXHU1NzhiXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjUwXS5sZW5ndGg7KytwKTY1NTMzIT09X1syNTBdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjUw'@; put 'XVtwXV09NjRlMytwLGJbNjRlMytwXT1fWzI1MF1bcF0pO2ZvcihfWzI1MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWY2Mlx1NmNjMlx1NmVjZVx1NzAwNVx1NzA1MFx1NzBhZlx1NzE5Mlx1NzNlOVx1NzQ2OVx1ODM0YVx1ODdhMlx1ODg2MVx1OTAwOFx1OTBhMlx1OTNhM1x1OTlhOFx1NTE2ZVx1NWY1N1x1NjBlMFx1NjE2N1x1NjZiM1x1ODU1OVx1OGU0YVx1OTFh'@; put 'Zlx1OTc4Ylx1NGU0ZVx1NGU5Mlx1NTQ3Y1x1NThkNVx1NThmYVx1NTk3ZFx1NWNiNVx1NWYyN1x1NjIzNlx1NjI0OFx1NjYwYVx1NjY2N1x1NmJlYlx1NmQ2OVx1NmRjZlx1NmU1Nlx1NmVmOFx1NmY5NFx1NmZlMFx1NmZlOVx1NzA1ZFx1NzJkMFx1NzQyNVx1NzQ1YVx1NzRlMFx1NzY5M1x1'@; put 'Nzk1Y1x1N2NjYVx1N2UxZVx1ODBlMVx1ODJhNlx1ODQ2Ylx1ODRiZlx1ODY0ZVx1ODY1Zlx1ODc3NFx1OGI3N1x1OGM2YVx1OTNhY1x1OTgwMFx1OTg2NVx1NjBkMVx1NjIxNlx1OTE3N1x1NWE1YVx1NjYwZlx1NmRmN1x1NmUzZVx1NzQzZlx1OWI0Mlx1NWZmZFx1NjBkYVx1N2IwZlx1NTRj'@; put 'NFx1NWYxOFx1NmM1ZVx1NmNkM1x1NmQyYVx1NzBkOFx1N2QwNVx1ODY3OVx1OGEwY1x1OWQzYlx1NTMxNlx1NTQ4Y1x1NWIwNVx1NmEzYVx1NzA2Ylx1NzU3NVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzI1MV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjUxXVtwXS5jaGFyQ29kZUF0KDAp'@; put 'JiYoRFtfWzI1MV1bcF1dPTY0MjU2K3AsYls2NDI1NitwXT1fWzI1MV1bcF0pO2ZvcihfWzI1Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Nzk4ZFx1NzliZVx1ODJiMVx1ODNlZlx1OGE3MVx1OGI0MVx1OGNhOFx1OTc3NFx1ZmEwYlx1NjRmNFx1NjUyYlx1NzhiYVx1NzhiYlx1N2E2Ylx1NGUzOFx1NTU5YVx1NTk1MFx1NWJhNlx1NWU3Ylx1NjBhM1x1NjNkYlx1NmI2'@; put 'MVx1NjY2NVx1Njg1M1x1NmUxOVx1NzE2NVx1NzRiMFx1N2QwOFx1OTA4NFx1OWE2OVx1OWMyNVx1NmQzYlx1NmVkMVx1NzMzZVx1OGM0MVx1OTVjYVx1NTFmMFx1NWU0Y1x1NWZhOFx1NjA0ZFx1NjBmNlx1NjEzMFx1NjE0Y1x1NjY0M1x1NjY0NFx1NjlhNVx1NmNjMVx1NmU1Zlx1NmVjOVx1'@; put 'NmY2Mlx1NzE0Y1x1NzQ5Y1x1NzY4N1x1N2JjMVx1N2MyN1x1ODM1Mlx1ODc1N1x1OTA1MVx1OTY4ZFx1OWVjM1x1NTMyZlx1NTZkZVx1NWVmYlx1NWY4YVx1NjA2Mlx1NjA5NFx1NjFmN1x1NjY2Nlx1NjcwM1x1NmE5Y1x1NmRlZVx1NmZhZVx1NzA3MFx1NzM2YVx1N2U2YVx1ODFiZVx1ODMz'@; put 'NFx1ODZkNFx1OGFhOFx1OGNjNFx1NTI4M1x1NzM3Mlx1NWI5Nlx1NmE2Ylx1OTQwNFx1NTRlZVx1NTY4Nlx1NWI1ZFx1NjU0OFx1NjU4NVx1NjZjOVx1Njg5Zlx1NmQ4ZFx1NmRjNlx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzI1Ml0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjUyXVtwXS5j'@; put 'aGFyQ29kZUF0KDApJiYoRFtfWzI1Ml1bcF1dPTY0NTEyK3AsYls2NDUxMitwXT1fWzI1Ml1bcF0pO2ZvcihfWzI1M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzIzYlx1ODBiNFx1OTE3NVx1OWE0ZFx1NGZhZlx1NTAxOVx1NTM5YVx1NTQwZVx1NTQzY1x1NTU4OVx1NTVjNVx1NWUzZlx1NWY4Y1x1NjczZFx1NzE2Nlx1NzNkZFx1OTAwNVx1NTJkYlx1NTJmM1x1NTg2'@; put 'NFx1NThjZVx1NzEwNFx1NzE4Zlx1NzFmYlx1ODViMFx1OGExM1x1NjY4OFx1ODVhOFx1NTVhN1x1NjY4NFx1NzE0YVx1ODQzMVx1NTM0OVx1NTU5OVx1NmJjMVx1NWY1OVx1NWZiZFx1NjNlZVx1NjY4OVx1NzE0N1x1OGFmMVx1OGYxZFx1OWViZVx1NGYxMVx1NjQzYVx1NzBjYlx1NzU2Nlx1'@; put 'ODY2N1x1NjA2NFx1OGI0ZVx1OWRmOFx1NTE0N1x1NTFmNlx1NTMwOFx1NmQzNlx1ODBmOFx1OWVkMVx1NjYxNVx1NmIyM1x1NzA5OFx1NzVkNVx1NTQwM1x1NWM3OVx1N2QwN1x1OGExNlx1NmIyMFx1NmIzZFx1NmI0Nlx1NTQzOFx1NjA3MFx1NmQzZFx1N2ZkNVx1ODIwOFx1NTBkNlx1NTFk'@; put 'ZVx1NTU5Y1x1NTY2Ylx1NTZjZFx1NTllY1x1NWIwOVx1NWUwY1x1NjE5OVx1NjE5OFx1NjIzMVx1NjY1ZVx1NjZlNlx1NzE5OVx1NzFiOVx1NzFiYVx1NzJhN1x1NzlhN1x1N2EwMFx1N2ZiMlx1OGE3MFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzI1M10ubGVuZ3RoOysrcCk2NTUzMyE9'@; put 'PV9bMjUzXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzI1M11bcF1dPTY0NzY4K3AsYls2NDc2OCtwXT1fWzI1M11bcF0pO3JldHVybntlbmM6RCxkZWM6Yn19KCksSls5NTBdPWZ1bmN0aW9uKCl7dmFyIHAsYj1bXSxEPXt9LF89W107Zm9yKF9bMF09IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVc'@; put 'eDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZn'@; put 'aGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMF0ubGVuZ3Ro'@; put 'OysrcCk2NTUzMyE9PV9bMF1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1swXVtwXV09MCtwLGJbMCtwXT1fWzBdW3BdKTtmb3IoX1sxNjFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTMwMDBcdWZmMGNcdTMwMDFcdTMwMDJcdWZmMGVc'@; put 'dTIwMjdcdWZmMWJcdWZmMWFcdWZmMWZcdWZmMDFcdWZlMzBcdTIwMjZcdTIwMjVcdWZlNTBcdWZlNTFcdWZlNTJceGI3XHVmZTU0XHVmZTU1XHVmZTU2XHVmZTU3XHVmZjVjXHUyMDEzXHVmZTMxXHUyMDE0XHVmZTMzXHUyNTc0XHVmZTM0XHVmZTRmXHVmZjA4XHVmZjA5XHVmZTM1XHVmZTM2'@; put 'XHVmZjViXHVmZjVkXHVmZTM3XHVmZTM4XHUzMDE0XHUzMDE1XHVmZTM5XHVmZTNhXHUzMDEwXHUzMDExXHVmZTNiXHVmZTNjXHUzMDBhXHUzMDBiXHVmZTNkXHVmZTNlXHUzMDA4XHUzMDA5XHVmZTNmXHVmZTQwXHUzMDBjXHUzMDBkXHVmZTQxXHVmZTQyXHUzMDBlXHUzMDBmXHVmZTQzXHVm'@; put 'ZTQ0XHVmZTU5XHVmZTVhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZTViXHVmZTVjXHVmZTVkXHVmZTVlXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUzMDFkXHUzMDFlXHUyMDM1XHUyMDMyXHVmZjAzXHVmZjA2XHVmZjBhXHUyMDNiXHhhN1x1MzAwM1x1MjVj'@; put 'Ylx1MjVjZlx1MjViM1x1MjViMlx1MjVjZVx1MjYwNlx1MjYwNVx1MjVjN1x1MjVjNlx1MjVhMVx1MjVhMFx1MjViZFx1MjViY1x1MzJhM1x1MjEwNVx4YWZcdWZmZTNcdWZmM2ZcdTAyY2RcdWZlNDlcdWZlNGFcdWZlNGRcdWZlNGVcdWZlNGJcdWZlNGNcdWZlNWZcdWZlNjBcdWZlNjFcdWZm'@; put 'MGJcdWZmMGRceGQ3XHhmN1x4YjFcdTIyMWFcdWZmMWNcdWZmMWVcdWZmMWRcdTIyNjZcdTIyNjdcdTIyNjBcdTIyMWVcdTIyNTJcdTIyNjFcdWZlNjJcdWZlNjNcdWZlNjRcdWZlNjVcdWZlNjZcdWZmNWVcdTIyMjlcdTIyMmFcdTIyYTVcdTIyMjBcdTIyMWZcdTIyYmZcdTMzZDJcdTMzZDFc'@; put 'dTIyMmJcdTIyMmVcdTIyMzVcdTIyMzRcdTI2NDBcdTI2NDJcdTIyOTVcdTIyOTlcdTIxOTFcdTIxOTNcdTIxOTBcdTIxOTJcdTIxOTZcdTIxOTdcdTIxOTlcdTIxOThcdTIyMjVcdTIyMjNcdWZmMGZcdWZmZmQiLnNwbGl0KCIiKSxwPTA7cCE9X1sxNjFdLmxlbmd0aDsrK3ApNjU1MzMhPT1f'@; put 'WzE2MV1bcF0uY2hhckNvZGVBdCgwKSYmKERbX1sxNjFdW3BdXT00MTIxNitwLGJbNDEyMTYrcF09X1sxNjFdW3BdKTtmb3IoX1sxNjJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmM2NcdTIyMTVcdWZlNjhcdWZmMDRcdWZmZTVc'@; put 'dTMwMTJcdWZmZTBcdWZmZTFcdWZmMDVcdWZmMjBcdTIxMDNcdTIxMDlcdWZlNjlcdWZlNmFcdWZlNmJcdTMzZDVcdTMzOWNcdTMzOWRcdTMzOWVcdTMzY2VcdTMzYTFcdTMzOGVcdTMzOGZcdTMzYzRceGIwXHU1MTU5XHU1MTViXHU1MTVlXHU1MTVkXHU1MTYxXHU1MTYzXHU1NWU3XHU3NGU5'@; put 'XHU3Y2NlXHUyNTgxXHUyNTgyXHUyNTgzXHUyNTg0XHUyNTg1XHUyNTg2XHUyNTg3XHUyNTg4XHUyNThmXHUyNThlXHUyNThkXHUyNThjXHUyNThiXHUyNThhXHUyNTg5XHUyNTNjXHUyNTM0XHUyNTJjXHUyNTI0XHUyNTFjXHUyNTk0XHUyNTAwXHUyNTAyXHUyNTk1XHUyNTBjXHUyNTEwXHUy'@; put 'NTE0XHUyNTE4XHUyNTZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyNTZlXHUyNTcwXHUyNTZmXHUyNTUwXHUyNTVlXHUyNTZhXHUyNTYxXHUyNWUyXHUyNWUzXHUyNWU1XHUyNWU0XHUyNTcxXHUyNTcyXHUyNTczXHVmZjEwXHVmZjExXHVmZjEyXHVmZjEzXHVm'@; put 'ZjE0XHVmZjE1XHVmZjE2XHVmZjE3XHVmZjE4XHVmZjE5XHUyMTYwXHUyMTYxXHUyMTYyXHUyMTYzXHUyMTY0XHUyMTY1XHUyMTY2XHUyMTY3XHUyMTY4XHUyMTY5XHUzMDIxXHUzMDIyXHUzMDIzXHUzMDI0XHUzMDI1XHUzMDI2XHUzMDI3XHUzMDI4XHUzMDI5XHU1MzQxXHU1MzQ0XHU1MzQ1'@; put 'XHVmZjIxXHVmZjIyXHVmZjIzXHVmZjI0XHVmZjI1XHVmZjI2XHVmZjI3XHVmZjI4XHVmZjI5XHVmZjJhXHVmZjJiXHVmZjJjXHVmZjJkXHVmZjJlXHVmZjJmXHVmZjMwXHVmZjMxXHVmZjMyXHVmZjMzXHVmZjM0XHVmZjM1XHVmZjM2XHVmZjM3XHVmZjM4XHVmZjM5XHVmZjNhXHVmZjQxXHVm'@; put 'ZjQyXHVmZjQzXHVmZjQ0XHVmZjQ1XHVmZjQ2XHVmZjQ3XHVmZjQ4XHVmZjQ5XHVmZjRhXHVmZjRiXHVmZjRjXHVmZjRkXHVmZjRlXHVmZjRmXHVmZjUwXHVmZjUxXHVmZjUyXHVmZjUzXHVmZjU0XHVmZjU1XHVmZjU2XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTYyXS5sZW5ndGg7Kytw'@; put 'KTY1NTMzIT09X1sxNjJdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTYyXVtwXV09NDE0NzIrcCxiWzQxNDcyK3BdPV9bMTYyXVtwXSk7Zm9yKF9bMTYzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZjU3XHVmZjU4XHVmZjU5XHVm'@; put 'ZjVhXHUwMzkxXHUwMzkyXHUwMzkzXHUwMzk0XHUwMzk1XHUwMzk2XHUwMzk3XHUwMzk4XHUwMzk5XHUwMzlhXHUwMzliXHUwMzljXHUwMzlkXHUwMzllXHUwMzlmXHUwM2EwXHUwM2ExXHUwM2EzXHUwM2E0XHUwM2E1XHUwM2E2XHUwM2E3XHUwM2E4XHUwM2E5XHUwM2IxXHUwM2IyXHUwM2Iz'@; put 'XHUwM2I0XHUwM2I1XHUwM2I2XHUwM2I3XHUwM2I4XHUwM2I5XHUwM2JhXHUwM2JiXHUwM2JjXHUwM2JkXHUwM2JlXHUwM2JmXHUwM2MwXHUwM2MxXHUwM2MzXHUwM2M0XHUwM2M1XHUwM2M2XHUwM2M3XHUwM2M4XHUwM2M5XHUzMTA1XHUzMTA2XHUzMTA3XHUzMTA4XHUzMTA5XHUzMTBhXHUz'@; put 'MTBiXHUzMTBjXHUzMTBkXHUzMTBlXHUzMTBmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUzMTEwXHUzMTExXHUzMTEyXHUzMTEzXHUzMTE0XHUzMTE1XHUzMTE2XHUzMTE3XHUzMTE4XHUzMTE5XHUzMTFhXHUzMTFiXHUzMTFjXHUzMTFkXHUzMTFlXHUzMTFmXHUz'@; put 'MTIwXHUzMTIxXHUzMTIyXHUzMTIzXHUzMTI0XHUzMTI1XHUzMTI2XHUzMTI3XHUzMTI4XHUzMTI5XHUwMmQ5XHUwMmM5XHUwMmNhXHUwMmM3XHUwMmNiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMGFjXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTYz'@; put 'XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNjNdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTYzXVtwXV09NDE3MjgrcCxiWzQxNzI4K3BdPV9bMTYzXVtwXSk7Zm9yKF9bMTY0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU0ZTAwXHU0'@; put 'ZTU5XHU0ZTAxXHU0ZTAzXHU0ZTQzXHU0ZTVkXHU0ZTg2XHU0ZThjXHU0ZWJhXHU1MTNmXHU1MTY1XHU1MTZiXHU1MWUwXHU1MjAwXHU1MjAxXHU1MjliXHU1MzE1XHU1MzQxXHU1MzVjXHU1M2M4XHU0ZTA5XHU0ZTBiXHU0ZTA4XHU0ZTBhXHU0ZTJiXHU0ZTM4XHU1MWUxXHU0ZTQ1XHU0ZTQ4'@; put 'XHU0ZTVmXHU0ZTVlXHU0ZThlXHU0ZWExXHU1MTQwXHU1MjAzXHU1MmZhXHU1MzQzXHU1M2M5XHU1M2UzXHU1NzFmXHU1OGViXHU1OTE1XHU1OTI3XHU1OTczXHU1YjUwXHU1YjUxXHU1YjUzXHU1YmY4XHU1YzBmXHU1YzIyXHU1YzM4XHU1YzcxXHU1ZGRkXHU1ZGU1XHU1ZGYxXHU1ZGYyXHU1'@; put 'ZGYzXHU1ZGZlXHU1ZTcyXHU1ZWZlXHU1ZjBiXHU1ZjEzXHU2MjRkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU0ZTExXHU0ZTEwXHU0ZTBkXHU0ZTJkXHU0ZTMwXHU0ZTM5XHU0ZTRiXHU1YzM5XHU0ZTg4XHU0ZTkxXHU0ZTk1XHU0ZTkyXHU0ZTk0XHU0ZWEyXHU0'@; put 'ZWMxXHU0ZWMwXHU0ZWMzXHU0ZWM2XHU0ZWM3XHU0ZWNkXHU0ZWNhXHU0ZWNiXHU0ZWM0XHU1MTQzXHU1MTQxXHU1MTY3XHU1MTZkXHU1MTZlXHU1MTZjXHU1MTk3XHU1MWY2XHU1MjA2XHU1MjA3XHU1MjA4XHU1MmZiXHU1MmZlXHU1MmZmXHU1MzE2XHU1MzM5XHU1MzQ4XHU1MzQ3XHU1MzQ1'@; put 'XHU1MzVlXHU1Mzg0XHU1M2NiXHU1M2NhXHU1M2NkXHU1OGVjXHU1OTI5XHU1OTJiXHU1OTJhXHU1OTJkXHU1YjU0XHU1YzExXHU1YzI0XHU1YzNhXHU1YzZmXHU1ZGY0XHU1ZTdiXHU1ZWZmXHU1ZjE0XHU1ZjE1XHU1ZmMzXHU2MjA4XHU2MjM2XHU2MjRiXHU2MjRlXHU2NTJmXHU2NTg3XHU2'@; put 'NTk3XHU2NWE0XHU2NWI5XHU2NWU1XHU2NmYwXHU2NzA4XHU2NzI4XHU2YjIwXHU2YjYyXHU2Yjc5XHU2YmNiXHU2YmQ0XHU2YmRiXHU2YzBmXHU2YzM0XHU3MDZiXHU3MjJhXHU3MjM2XHU3MjNiXHU3MjQ3XHU3MjU5XHU3MjViXHU3MmFjXHU3MzhiXHU0ZTE5XHVmZmZkIi5zcGxpdCgiIiks'@; put 'cD0wO3AhPV9bMTY0XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNjRdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTY0XVtwXV09NDE5ODQrcCxiWzQxOTg0K3BdPV9bMTY0XVtwXSk7Zm9yKF9bMTY1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHU0ZTE2XHU0ZTE1XHU0ZTE0XHU0ZTE4XHU0ZTNiXHU0ZTRkXHU0ZTRmXHU0ZTRlXHU0ZWU1XHU0ZWQ4XHU0ZWQ0XHU0ZWQ1XHU0ZWQ2XHU0ZWQ3XHU0ZWUzXHU0ZWU0XHU0ZWQ5XHU0ZWRlXHU1MTQ1XHU1MTQ0XHU1MTg5XHU1MThhXHU1MWFjXHU1MWY5XHU1MWZhXHU1MWY4XHU1MjBh'@; put 'XHU1MmEwXHU1MjlmXHU1MzA1XHU1MzA2XHU1MzE3XHU1MzFkXHU0ZWRmXHU1MzRhXHU1MzQ5XHU1MzYxXHU1MzYwXHU1MzZmXHU1MzZlXHU1M2JiXHU1M2VmXHU1M2U0XHU1M2YzXHU1M2VjXHU1M2VlXHU1M2U5XHU1M2U4XHU1M2ZjXHU1M2Y4XHU1M2Y1XHU1M2ViXHU1M2U2XHU1M2VhXHU1'@; put 'M2YyXHU1M2YxXHU1M2YwXHU1M2U1XHU1M2VkXHU1M2ZiXHU1NmRiXHU1NmRhXHU1OTE2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1OTJlXHU1OTMxXHU1OTc0XHU1OTc2XHU1YjU1XHU1YjgzXHU1YzNjXHU1ZGU4XHU1ZGU3XHU1ZGU2XHU1ZTAyXHU1ZTAzXHU1'@; put 'ZTczXHU1ZTdjXHU1ZjAxXHU1ZjE4XHU1ZjE3XHU1ZmM1XHU2MjBhXHU2MjUzXHU2MjU0XHU2MjUyXHU2MjUxXHU2NWE1XHU2NWU2XHU2NzJlXHU2NzJjXHU2NzJhXHU2NzJiXHU2NzJkXHU2YjYzXHU2YmNkXHU2YzExXHU2YzEwXHU2YzM4XHU2YzQxXHU2YzQwXHU2YzNlXHU3MmFmXHU3Mzg0'@; put 'XHU3Mzg5XHU3NGRjXHU3NGU2XHU3NTE4XHU3NTFmXHU3NTI4XHU3NTI5XHU3NTMwXHU3NTMxXHU3NTMyXHU3NTMzXHU3NThiXHU3NjdkXHU3NmFlXHU3NmJmXHU3NmVlXHU3N2RiXHU3N2UyXHU3N2YzXHU3OTNhXHU3OWJlXHU3YTc0XHU3YWNiXHU0ZTFlXHU0ZTFmXHU0ZTUyXHU0ZTUzXHU0'@; put 'ZTY5XHU0ZTk5XHU0ZWE0XHU0ZWE2XHU0ZWE1XHU0ZWZmXHU0ZjA5XHU0ZjE5XHU0ZjBhXHU0ZjE1XHU0ZjBkXHU0ZjEwXHU0ZjExXHU0ZjBmXHU0ZWYyXHU0ZWY2XHU0ZWZiXHU0ZWYwXHU0ZWYzXHU0ZWZkXHU0ZjAxXHU0ZjBiXHU1MTQ5XHU1MTQ3XHU1MTQ2XHU1MTQ4XHU1MTY4XHVmZmZk'@; put 'Ii5zcGxpdCgiIikscD0wO3AhPV9bMTY1XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNjVdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTY1XVtwXV09NDIyNDArcCxiWzQyMjQwK3BdPV9bMTY1XVtwXSk7Zm9yKF9bMTY2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHU1MTcxXHU1MThkXHU1MWIwXHU1MjE3XHU1MjExXHU1MjEyXHU1MjBlXHU1MjE2XHU1MmEzXHU1MzA4XHU1MzIxXHU1MzIwXHU1MzcwXHU1MzcxXHU1NDA5XHU1NDBmXHU1NDBjXHU1NDBhXHU1NDEwXHU1NDAxXHU1NDBiXHU1NDA0XHU1NDExXHU1NDBkXHU1NDA4'@; put 'XHU1NDAzXHU1NDBlXHU1NDA2XHU1NDEyXHU1NmUwXHU1NmRlXHU1NmRkXHU1NzMzXHU1NzMwXHU1NzI4XHU1NzJkXHU1NzJjXHU1NzJmXHU1NzI5XHU1OTE5XHU1OTFhXHU1OTM3XHU1OTM4XHU1OTg0XHU1OTc4XHU1OTgzXHU1OTdkXHU1OTc5XHU1OTgyXHU1OTgxXHU1YjU3XHU1YjU4XHU1'@; put 'Yjg3XHU1Yjg4XHU1Yjg1XHU1Yjg5XHU1YmZhXHU1YzE2XHU1Yzc5XHU1ZGRlXHU1ZTA2XHU1ZTc2XHU1ZTc0XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1ZjBmXHU1ZjFiXHU1ZmQ5XHU1ZmQ2XHU2MjBlXHU2MjBjXHU2MjBkXHU2MjEwXHU2MjYzXHU2MjViXHU2'@; put 'MjU4XHU2NTM2XHU2NWU5XHU2NWU4XHU2NWVjXHU2NWVkXHU2NmYyXHU2NmYzXHU2NzA5XHU2NzNkXHU2NzM0XHU2NzMxXHU2NzM1XHU2YjIxXHU2YjY0XHU2YjdiXHU2YzE2XHU2YzVkXHU2YzU3XHU2YzU5XHU2YzVmXHU2YzYwXHU2YzUwXHU2YzU1XHU2YzYxXHU2YzViXHU2YzRkXHU2YzRl'@; put 'XHU3MDcwXHU3MjVmXHU3MjVkXHU3NjdlXHU3YWY5XHU3YzczXHU3Y2Y4XHU3ZjM2XHU3ZjhhXHU3ZmJkXHU4MDAxXHU4MDAzXHU4MDBjXHU4MDEyXHU4MDMzXHU4MDdmXHU4MDg5XHU4MDhiXHU4MDhjXHU4MWUzXHU4MWVhXHU4MWYzXHU4MWZjXHU4MjBjXHU4MjFiXHU4MjFmXHU4MjZlXHU4'@; put 'MjcyXHU4MjdlXHU4NjZiXHU4ODQwXHU4ODRjXHU4ODYzXHU4OTdmXHU5NjIxXHU0ZTMyXHU0ZWE4XHU0ZjRkXHU0ZjRmXHU0ZjQ3XHU0ZjU3XHU0ZjVlXHU0ZjM0XHU0ZjViXHU0ZjU1XHU0ZjMwXHU0ZjUwXHU0ZjUxXHU0ZjNkXHU0ZjNhXHU0ZjM4XHU0ZjQzXHU0ZjU0XHU0ZjNjXHU0ZjQ2'@; put 'XHU0ZjYzXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTY2XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNjZdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTY2XVtwXV09NDI0OTYrcCxiWzQyNDk2K3BdPV9bMTY2XVtwXSk7Zm9yKF9bMTY3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU0ZjVjXHU0ZjYwXHU0ZjJmXHU0ZjRlXHU0ZjM2XHU0ZjU5XHU0ZjVkXHU0ZjQ4XHU0ZjVhXHU1MTRjXHU1MTRiXHU1MTRkXHU1MTc1XHU1MWI2XHU1MWI3XHU1MjI1XHU1MjI0XHU1MjI5XHU1MjJhXHU1MjI4XHU1MmFiXHU1MmE5XHU1MmFh'@; put 'XHU1MmFjXHU1MzIzXHU1MzczXHU1Mzc1XHU1NDFkXHU1NDJkXHU1NDFlXHU1NDNlXHU1NDI2XHU1NDRlXHU1NDI3XHU1NDQ2XHU1NDQzXHU1NDMzXHU1NDQ4XHU1NDQyXHU1NDFiXHU1NDI5XHU1NDRhXHU1NDM5XHU1NDNiXHU1NDM4XHU1NDJlXHU1NDM1XHU1NDM2XHU1NDIwXHU1NDNjXHU1'@; put 'NDQwXHU1NDMxXHU1NDJiXHU1NDFmXHU1NDJjXHU1NmVhXHU1NmYwXHU1NmU0XHU1NmViXHU1NzRhXHU1NzUxXHU1NzQwXHU1NzRkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NzQ3XHU1NzRlXHU1NzNlXHU1NzUwXHU1NzRmXHU1NzNiXHU1OGVmXHU1OTNlXHU1'@; put 'OTlkXHU1OTkyXHU1OWE4XHU1OTllXHU1OWEzXHU1OTk5XHU1OTk2XHU1OThkXHU1OWE0XHU1OTkzXHU1OThhXHU1OWE1XHU1YjVkXHU1YjVjXHU1YjVhXHU1YjViXHU1YjhjXHU1YjhiXHU1YjhmXHU1YzJjXHU1YzQwXHU1YzQxXHU1YzNmXHU1YzNlXHU1YzkwXHU1YzkxXHU1Yzk0XHU1Yzhj'@; put 'XHU1ZGViXHU1ZTBjXHU1ZThmXHU1ZTg3XHU1ZThhXHU1ZWY3XHU1ZjA0XHU1ZjFmXHU1ZjY0XHU1ZjYyXHU1Zjc3XHU1Zjc5XHU1ZmQ4XHU1ZmNjXHU1ZmQ3XHU1ZmNkXHU1ZmYxXHU1ZmViXHU1ZmY4XHU1ZmVhXHU2MjEyXHU2MjExXHU2Mjg0XHU2Mjk3XHU2Mjk2XHU2MjgwXHU2Mjc2XHU2'@; put 'Mjg5XHU2MjZkXHU2MjhhXHU2MjdjXHU2MjdlXHU2Mjc5XHU2MjczXHU2MjkyXHU2MjZmXHU2Mjk4XHU2MjZlXHU2Mjk1XHU2MjkzXHU2MjkxXHU2Mjg2XHU2NTM5XHU2NTNiXHU2NTM4XHU2NWYxXHU2NmY0XHU2NzVmXHU2NzRlXHU2NzRmXHU2NzUwXHU2NzUxXHU2NzVjXHU2NzU2XHU2NzVl'@; put 'XHU2NzQ5XHU2NzQ2XHU2NzYwXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTY3XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNjddW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTY3XVtwXV09NDI3NTIrcCxiWzQyNzUyK3BdPV9bMTY3XVtwXSk7Zm9yKF9bMTY4XT0iXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2NzUzXHU2NzU3XHU2YjY1XHU2YmNmXHU2YzQyXHU2YzVlXHU2Yzk5XHU2YzgxXHU2Yzg4XHU2Yzg5XHU2Yzg1XHU2YzliXHU2YzZhXHU2YzdhXHU2YzkwXHU2YzcwXHU2YzhjXHU2YzY4XHU2Yzk2XHU2YzkyXHU2Yzdk'@; put 'XHU2YzgzXHU2YzcyXHU2YzdlXHU2Yzc0XHU2Yzg2XHU2Yzc2XHU2YzhkXHU2Yzk0XHU2Yzk4XHU2YzgyXHU3MDc2XHU3MDdjXHU3MDdkXHU3MDc4XHU3MjYyXHU3MjYxXHU3MjYwXHU3MmM0XHU3MmMyXHU3Mzk2XHU3NTJjXHU3NTJiXHU3NTM3XHU3NTM4XHU3NjgyXHU3NmVmXHU3N2UzXHU3'@; put 'OWMxXHU3OWMwXHU3OWJmXHU3YTc2XHU3Y2ZiXHU3ZjU1XHU4MDk2XHU4MDkzXHU4MDlkXHU4MDk4XHU4MDliXHU4MDlhXHU4MGIyXHU4MjZmXHU4MjkyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MjhiXHU4MjhkXHU4OThiXHU4OWQyXHU4YTAwXHU4YzM3XHU4'@; put 'YzQ2XHU4YzU1XHU4YzlkXHU4ZDY0XHU4ZDcwXHU4ZGIzXHU4ZWFiXHU4ZWNhXHU4ZjliXHU4ZmIwXHU4ZmMyXHU4ZmM2XHU4ZmM1XHU4ZmM0XHU1ZGUxXHU5MDkxXHU5MGEyXHU5MGFhXHU5MGE2XHU5MGEzXHU5MTQ5XHU5MWM2XHU5MWNjXHU5NjMyXHU5NjJlXHU5NjMxXHU5NjJhXHU5NjJj'@; put 'XHU0ZTI2XHU0ZTU2XHU0ZTczXHU0ZThiXHU0ZTliXHU0ZTllXHU0ZWFiXHU0ZWFjXHU0ZjZmXHU0ZjlkXHU0ZjhkXHU0ZjczXHU0ZjdmXHU0ZjZjXHU0ZjliXHU0ZjhiXHU0Zjg2XHU0ZjgzXHU0ZjcwXHU0Zjc1XHU0Zjg4XHU0ZjY5XHU0ZjdiXHU0Zjk2XHU0ZjdlXHU0ZjhmXHU0ZjkxXHU0'@; put 'ZjdhXHU1MTU0XHU1MTUyXHU1MTU1XHU1MTY5XHU1MTc3XHU1MTc2XHU1MTc4XHU1MWJkXHU1MWZkXHU1MjNiXHU1MjM4XHU1MjM3XHU1MjNhXHU1MjMwXHU1MjJlXHU1MjM2XHU1MjQxXHU1MmJlXHU1MmJiXHU1MzUyXHU1MzU0XHU1MzUzXHU1MzUxXHU1MzY2XHU1Mzc3XHU1Mzc4XHU1Mzc5'@; put 'XHU1M2Q2XHU1M2Q0XHU1M2Q3XHU1NDczXHU1NDc1XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTY4XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNjhdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTY4XVtwXV09NDMwMDgrcCxiWzQzMDA4K3BdPV9bMTY4XVtwXSk7Zm9yKF9bMTY5XT0iXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NDk2XHU1NDc4XHU1NDk1XHU1NDgwXHU1NDdiXHU1NDc3XHU1NDg0XHU1NDkyXHU1NDg2XHU1NDdjXHU1NDkwXHU1NDcxXHU1NDc2XHU1NDhjXHU1NDlhXHU1NDYyXHU1NDY4XHU1NDhiXHU1NDdk'@; put 'XHU1NDhlXHU1NmZhXHU1NzgzXHU1Nzc3XHU1NzZhXHU1NzY5XHU1NzYxXHU1NzY2XHU1NzY0XHU1NzdjXHU1OTFjXHU1OTQ5XHU1OTQ3XHU1OTQ4XHU1OTQ0XHU1OTU0XHU1OWJlXHU1OWJiXHU1OWQ0XHU1OWI5XHU1OWFlXHU1OWQxXHU1OWM2XHU1OWQwXHU1OWNkXHU1OWNiXHU1OWQzXHU1'@; put 'OWNhXHU1OWFmXHU1OWIzXHU1OWQyXHU1OWM1XHU1YjVmXHU1YjY0XHU1YjYzXHU1Yjk3XHU1YjlhXHU1Yjk4XHU1YjljXHU1Yjk5XHU1YjliXHU1YzFhXHU1YzQ4XHU1YzQ1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1YzQ2XHU1Y2I3XHU1Y2ExXHU1Y2I4XHU1'@; put 'Y2E5XHU1Y2FiXHU1Y2IxXHU1Y2IzXHU1ZTE4XHU1ZTFhXHU1ZTE2XHU1ZTE1XHU1ZTFiXHU1ZTExXHU1ZTc4XHU1ZTlhXHU1ZTk3XHU1ZTljXHU1ZTk1XHU1ZTk2XHU1ZWY2XHU1ZjI2XHU1ZjI3XHU1ZjI5XHU1ZjgwXHU1ZjgxXHU1ZjdmXHU1ZjdjXHU1ZmRkXHU1ZmUwXHU1ZmZkXHU1ZmY1'@; put 'XHU1ZmZmXHU2MDBmXHU2MDE0XHU2MDJmXHU2MDM1XHU2MDE2XHU2MDJhXHU2MDE1XHU2MDIxXHU2MDI3XHU2MDI5XHU2MDJiXHU2MDFiXHU2MjE2XHU2MjE1XHU2MjNmXHU2MjNlXHU2MjQwXHU2MjdmXHU2MmM5XHU2MmNjXHU2MmM0XHU2MmJmXHU2MmMyXHU2MmI5XHU2MmQyXHU2MmRiXHU2'@; put 'MmFiXHU2MmQzXHU2MmQ0XHU2MmNiXHU2MmM4XHU2MmE4XHU2MmJkXHU2MmJjXHU2MmQwXHU2MmQ5XHU2MmM3XHU2MmNkXHU2MmI1XHU2MmRhXHU2MmIxXHU2MmQ4XHU2MmQ2XHU2MmQ3XHU2MmM2XHU2MmFjXHU2MmNlXHU2NTNlXHU2NWE3XHU2NWJjXHU2NWZhXHU2NjE0XHU2NjEzXHU2NjBj'@; put 'XHU2NjA2XHU2NjAyXHU2NjBlXHU2NjAwXHU2NjBmXHU2NjE1XHU2NjBhXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTY5XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNjldW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTY5XVtwXV09NDMyNjQrcCxiWzQzMjY0K3BdPV9bMTY5XVtwXSk7Zm9y'@; put 'KF9bMTcwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2NjA3XHU2NzBkXHU2NzBiXHU2NzZkXHU2NzhiXHU2Nzk1XHU2NzcxXHU2NzljXHU2NzczXHU2Nzc3XHU2Nzg3XHU2NzlkXHU2Nzk3XHU2NzZmXHU2NzcwXHU2NzdmXHU2Nzg5'@; put 'XHU2NzdlXHU2NzkwXHU2Nzc1XHU2NzlhXHU2NzkzXHU2NzdjXHU2NzZhXHU2NzcyXHU2YjIzXHU2YjY2XHU2YjY3XHU2YjdmXHU2YzEzXHU2YzFiXHU2Y2UzXHU2Y2U4XHU2Y2YzXHU2Y2IxXHU2Y2NjXHU2Y2U1XHU2Y2IzXHU2Y2JkXHU2Y2JlXHU2Y2JjXHU2Y2UyXHU2Y2FiXHU2Y2Q1XHU2'@; put 'Y2QzXHU2Y2I4XHU2Y2M0XHU2Y2I5XHU2Y2MxXHU2Y2FlXHU2Y2Q3XHU2Y2M1XHU2Y2YxXHU2Y2JmXHU2Y2JiXHU2Y2UxXHU2Y2RiXHU2Y2NhXHU2Y2FjXHU2Y2VmXHU2Y2RjXHU2Y2Q2XHU2Y2UwXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3MDk1XHU3MDhlXHU3'@; put 'MDkyXHU3MDhhXHU3MDk5XHU3MjJjXHU3MjJkXHU3MjM4XHU3MjQ4XHU3MjY3XHU3MjY5XHU3MmMwXHU3MmNlXHU3MmQ5XHU3MmQ3XHU3MmQwXHU3M2E5XHU3M2E4XHU3MzlmXHU3M2FiXHU3M2E1XHU3NTNkXHU3NTlkXHU3NTk5XHU3NTlhXHU3Njg0XHU3NmMyXHU3NmYyXHU3NmY0XHU3N2U1'@; put 'XHU3N2ZkXHU3OTNlXHU3OTQwXHU3OTQxXHU3OWM5XHU3OWM4XHU3YTdhXHU3YTc5XHU3YWZhXHU3Y2ZlXHU3ZjU0XHU3ZjhjXHU3ZjhiXHU4MDA1XHU4MGJhXHU4MGE1XHU4MGEyXHU4MGIxXHU4MGExXHU4MGFiXHU4MGE5XHU4MGI0XHU4MGFhXHU4MGFmXHU4MWU1XHU4MWZlXHU4MjBkXHU4'@; put 'MmIzXHU4MjlkXHU4Mjk5XHU4MmFkXHU4MmJkXHU4MjlmXHU4MmI5XHU4MmIxXHU4MmFjXHU4MmE1XHU4MmFmXHU4MmI4XHU4MmEzXHU4MmIwXHU4MmJlXHU4MmI3XHU4NjRlXHU4NjcxXHU1MjFkXHU4ODY4XHU4ZWNiXHU4ZmNlXHU4ZmQ0XHU4ZmQxXHU5MGI1XHU5MGI4XHU5MGIxXHU5MGI2'@; put 'XHU5MWM3XHU5MWQxXHU5NTc3XHU5NTgwXHU5NjFjXHU5NjQwXHU5NjNmXHU5NjNiXHU5NjQ0XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTcwXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNzBdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTcwXVtwXV09NDM1MjArcCxiWzQzNTIwK3BdPV9b'@; put 'MTcwXVtwXSk7Zm9yKF9bMTcxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5NjQyXHU5NmI5XHU5NmU4XHU5NzUyXHU5NzVlXHU0ZTlmXHU0ZWFkXHU0ZWFlXHU0ZmUxXHU0ZmI1XHU0ZmFmXHU0ZmJmXHU0ZmUwXHU0ZmQxXHU0ZmNm'@; put 'XHU0ZmRkXHU0ZmMzXHU0ZmI2XHU0ZmQ4XHU0ZmRmXHU0ZmNhXHU0ZmQ3XHU0ZmFlXHU0ZmQwXHU0ZmM0XHU0ZmMyXHU0ZmRhXHU0ZmNlXHU0ZmRlXHU0ZmI3XHU1MTU3XHU1MTkyXHU1MTkxXHU1MWEwXHU1MjRlXHU1MjQzXHU1MjRhXHU1MjRkXHU1MjRjXHU1MjRiXHU1MjQ3XHU1MmM3XHU1'@; put 'MmM5XHU1MmMzXHU1MmMxXHU1MzBkXHU1MzU3XHU1MzdiXHU1MzlhXHU1M2RiXHU1NGFjXHU1NGMwXHU1NGE4XHU1NGNlXHU1NGM5XHU1NGI4XHU1NGE2XHU1NGIzXHU1NGM3XHU1NGMyXHU1NGJkXHU1NGFhXHU1NGMxXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1'@; put 'NGM0XHU1NGM4XHU1NGFmXHU1NGFiXHU1NGIxXHU1NGJiXHU1NGE5XHU1NGE3XHU1NGJmXHU1NmZmXHU1NzgyXHU1NzhiXHU1N2EwXHU1N2EzXHU1N2EyXHU1N2NlXHU1N2FlXHU1NzkzXHU1OTU1XHU1OTUxXHU1OTRmXHU1OTRlXHU1OTUwXHU1OWRjXHU1OWQ4XHU1OWZmXHU1OWUzXHU1OWU4'@; put 'XHU1YTAzXHU1OWU1XHU1OWVhXHU1OWRhXHU1OWU2XHU1YTAxXHU1OWZiXHU1YjY5XHU1YmEzXHU1YmE2XHU1YmE0XHU1YmEyXHU1YmE1XHU1YzAxXHU1YzRlXHU1YzRmXHU1YzRkXHU1YzRiXHU1Y2Q5XHU1Y2QyXHU1ZGY3XHU1ZTFkXHU1ZTI1XHU1ZTFmXHU1ZTdkXHU1ZWEwXHU1ZWE2XHU1'@; put 'ZWZhXHU1ZjA4XHU1ZjJkXHU1ZjY1XHU1Zjg4XHU1Zjg1XHU1ZjhhXHU1ZjhiXHU1Zjg3XHU1ZjhjXHU1Zjg5XHU2MDEyXHU2MDFkXHU2MDIwXHU2MDI1XHU2MDBlXHU2MDI4XHU2MDRkXHU2MDcwXHU2MDY4XHU2MDYyXHU2MDQ2XHU2MDQzXHU2MDZjXHU2MDZiXHU2MDZhXHU2MDY0XHU2MjQx'@; put 'XHU2MmRjXHU2MzE2XHU2MzA5XHU2MmZjXHU2MmVkXHU2MzAxXHU2MmVlXHU2MmZkXHU2MzA3XHU2MmYxXHU2MmY3XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTcxXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNzFdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTcxXVtwXV09NDM3NzYrcCxi'@; put 'WzQzNzc2K3BdPV9bMTcxXVtwXSk7Zm9yKF9bMTcyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MmVmXHU2MmVjXHU2MmZlXHU2MmY0XHU2MzExXHU2MzAyXHU2NTNmXHU2NTQ1XHU2NWFiXHU2NWJkXHU2NWUyXHU2NjI1XHU2NjJk'@; put 'XHU2NjIwXHU2NjI3XHU2NjJmXHU2NjFmXHU2NjI4XHU2NjMxXHU2NjI0XHU2NmY3XHU2N2ZmXHU2N2QzXHU2N2YxXHU2N2Q0XHU2N2QwXHU2N2VjXHU2N2I2XHU2N2FmXHU2N2Y1XHU2N2U5XHU2N2VmXHU2N2M0XHU2N2QxXHU2N2I0XHU2N2RhXHU2N2U1XHU2N2I4XHU2N2NmXHU2N2RlXHU2'@; put 'N2YzXHU2N2IwXHU2N2Q5XHU2N2UyXHU2N2RkXHU2N2QyXHU2YjZhXHU2YjgzXHU2Yjg2XHU2YmI1XHU2YmQyXHU2YmQ3XHU2YzFmXHU2Y2M5XHU2ZDBiXHU2ZDMyXHU2ZDJhXHU2ZDQxXHU2ZDI1XHU2ZDBjXHU2ZDMxXHU2ZDFlXHU2ZDE3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHU2ZDNiXHU2ZDNkXHU2ZDNlXHU2ZDM2XHU2ZDFiXHU2Y2Y1XHU2ZDM5XHU2ZDI3XHU2ZDM4XHU2ZDI5XHU2ZDJlXHU2ZDM1XHU2ZDBlXHU2ZDJiXHU3MGFiXHU3MGJhXHU3MGIzXHU3MGFjXHU3MGFmXHU3MGFkXHU3MGI4XHU3MGFlXHU3MGE0XHU3MjMwXHU3MjcyXHU3MjZm'@; put 'XHU3Mjc0XHU3MmU5XHU3MmUwXHU3MmUxXHU3M2I3XHU3M2NhXHU3M2JiXHU3M2IyXHU3M2NkXHU3M2MwXHU3M2IzXHU3NTFhXHU3NTJkXHU3NTRmXHU3NTRjXHU3NTRlXHU3NTRiXHU3NWFiXHU3NWE0XHU3NWE1XHU3NWEyXHU3NWEzXHU3Njc4XHU3Njg2XHU3Njg3XHU3Njg4XHU3NmM4XHU3'@; put 'NmM2XHU3NmMzXHU3NmM1XHU3NzAxXHU3NmY5XHU3NmY4XHU3NzA5XHU3NzBiXHU3NmZlXHU3NmZjXHU3NzA3XHU3N2RjXHU3ODAyXHU3ODE0XHU3ODBjXHU3ODBkXHU3OTQ2XHU3OTQ5XHU3OTQ4XHU3OTQ3XHU3OWI5XHU3OWJhXHU3OWQxXHU3OWQyXHU3OWNiXHU3YTdmXHU3YTgxXHU3YWZm'@; put 'XHU3YWZkXHU3YzdkXHU3ZDAyXHU3ZDA1XHU3ZDAwXHU3ZDA5XHU3ZDA3XHU3ZDA0XHU3ZDA2XHU3ZjM4XHU3ZjhlXHU3ZmJmXHU4MDA0XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTcyXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNzJdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTcyXVtw'@; put 'XV09NDQwMzIrcCxiWzQ0MDMyK3BdPV9bMTcyXVtwXSk7Zm9yKF9bMTczXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MDEwXHU4MDBkXHU4MDExXHU4MDM2XHU4MGQ2XHU4MGU1XHU4MGRhXHU4MGMzXHU4MGM0XHU4MGNjXHU4MGUx'@; put 'XHU4MGRiXHU4MGNlXHU4MGRlXHU4MGU0XHU4MGRkXHU4MWY0XHU4MjIyXHU4MmU3XHU4MzAzXHU4MzA1XHU4MmUzXHU4MmRiXHU4MmU2XHU4MzA0XHU4MmU1XHU4MzAyXHU4MzA5XHU4MmQyXHU4MmQ3XHU4MmYxXHU4MzAxXHU4MmRjXHU4MmQ0XHU4MmQxXHU4MmRlXHU4MmQzXHU4MmRmXHU4'@; put 'MmVmXHU4MzA2XHU4NjUwXHU4Njc5XHU4NjdiXHU4NjdhXHU4ODRkXHU4ODZiXHU4OTgxXHU4OWQ0XHU4YTA4XHU4YTAyXHU4YTAzXHU4YzllXHU4Y2EwXHU4ZDc0XHU4ZDczXHU4ZGI0XHU4ZWNkXHU4ZWNjXHU4ZmYwXHU4ZmU2XHU4ZmUyXHU4ZmVhXHU4ZmU1XHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4ZmVkXHU4ZmViXHU4ZmU0XHU4ZmU4XHU5MGNhXHU5MGNlXHU5MGMxXHU5MGMzXHU5MTRiXHU5MTRhXHU5MWNkXHU5NTgyXHU5NjUwXHU5NjRiXHU5NjRjXHU5NjRkXHU5NzYyXHU5NzY5XHU5N2NiXHU5N2VkXHU5N2YzXHU5ODAxXHU5OGE4XHU5OGRi'@; put 'XHU5OGRmXHU5OTk2XHU5OTk5XHU0ZTU4XHU0ZWIzXHU1MDBjXHU1MDBkXHU1MDIzXHU0ZmVmXHU1MDI2XHU1MDI1XHU0ZmY4XHU1MDI5XHU1MDE2XHU1MDA2XHU1MDNjXHU1MDFmXHU1MDFhXHU1MDEyXHU1MDExXHU0ZmZhXHU1MDAwXHU1MDE0XHU1MDI4XHU0ZmYxXHU1MDIxXHU1MDBiXHU1'@; put 'MDE5XHU1MDE4XHU0ZmYzXHU0ZmVlXHU1MDJkXHU1MDJhXHU0ZmZlXHU1MDJiXHU1MDA5XHU1MTdjXHU1MWE0XHU1MWE1XHU1MWEyXHU1MWNkXHU1MWNjXHU1MWM2XHU1MWNiXHU1MjU2XHU1MjVjXHU1MjU0XHU1MjViXHU1MjVkXHU1MzJhXHU1MzdmXHU1MzlmXHU1MzlkXHU1M2RmXHU1NGU4'@; put 'XHU1NTEwXHU1NTAxXHU1NTM3XHU1NGZjXHU1NGU1XHU1NGYyXHU1NTA2XHU1NGZhXHU1NTE0XHU1NGU5XHU1NGVkXHU1NGUxXHU1NTA5XHU1NGVlXHU1NGVhXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTczXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNzNdW3BdLmNoYXJDb2RlQXQoMCkm'@; put 'JihEW19bMTczXVtwXV09NDQyODgrcCxiWzQ0Mjg4K3BdPV9bMTczXVtwXSk7Zm9yKF9bMTc0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NGU2XHU1NTI3XHU1NTA3XHU1NGZkXHU1NTBmXHU1NzAzXHU1NzA0XHU1N2MyXHU1N2Q0'@; put 'XHU1N2NiXHU1N2MzXHU1ODA5XHU1OTBmXHU1OTU3XHU1OTU4XHU1OTVhXHU1YTExXHU1YTE4XHU1YTFjXHU1YTFmXHU1YTFiXHU1YTEzXHU1OWVjXHU1YTIwXHU1YTIzXHU1YTI5XHU1YTI1XHU1YTBjXHU1YTA5XHU1YjZiXHU1YzU4XHU1YmIwXHU1YmIzXHU1YmI2XHU1YmI0XHU1YmFlXHU1'@; put 'YmI1XHU1YmI5XHU1YmI4XHU1YzA0XHU1YzUxXHU1YzU1XHU1YzUwXHU1Y2VkXHU1Y2ZkXHU1Y2ZiXHU1Y2VhXHU1Y2U4XHU1Y2YwXHU1Y2Y2XHU1ZDAxXHU1Y2Y0XHU1ZGVlXHU1ZTJkXHU1ZTJiXHU1ZWFiXHU1ZWFkXHU1ZWE3XHU1ZjMxXHU1ZjkyXHU1ZjkxXHU1ZjkwXHU2MDU5XHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MDYzXHU2MDY1XHU2MDUwXHU2MDU1XHU2MDZkXHU2MDY5XHU2MDZmXHU2MDg0XHU2MDlmXHU2MDlhXHU2MDhkXHU2MDk0XHU2MDhjXHU2MDg1XHU2MDk2XHU2MjQ3XHU2MmYzXHU2MzA4XHU2MmZmXHU2MzRlXHU2MzNlXHU2MzJm'@; put 'XHU2MzU1XHU2MzQyXHU2MzQ2XHU2MzRmXHU2MzQ5XHU2MzNhXHU2MzUwXHU2MzNkXHU2MzJhXHU2MzJiXHU2MzI4XHU2MzRkXHU2MzRjXHU2NTQ4XHU2NTQ5XHU2NTk5XHU2NWMxXHU2NWM1XHU2NjQyXHU2NjQ5XHU2NjRmXHU2NjQzXHU2NjUyXHU2NjRjXHU2NjQ1XHU2NjQxXHU2NmY4XHU2'@; put 'NzE0XHU2NzE1XHU2NzE3XHU2ODIxXHU2ODM4XHU2ODQ4XHU2ODQ2XHU2ODUzXHU2ODM5XHU2ODQyXHU2ODU0XHU2ODI5XHU2OGIzXHU2ODE3XHU2ODRjXHU2ODUxXHU2ODNkXHU2N2Y0XHU2ODUwXHU2ODQwXHU2ODNjXHU2ODQzXHU2ODJhXHU2ODQ1XHU2ODEzXHU2ODE4XHU2ODQxXHU2Yjhh'@; put 'XHU2Yjg5XHU2YmI3XHU2YzIzXHU2YzI3XHU2YzI4XHU2YzI2XHU2YzI0XHU2Y2YwXHU2ZDZhXHU2ZDk1XHU2ZDg4XHU2ZDg3XHU2ZDY2XHU2ZDc4XHU2ZDc3XHU2ZDU5XHU2ZDkzXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTc0XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNzRdW3BdLmNo'@; put 'YXJDb2RlQXQoMCkmJihEW19bMTc0XVtwXV09NDQ1NDQrcCxiWzQ0NTQ0K3BdPV9bMTc0XVtwXSk7Zm9yKF9bMTc1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZDZjXHU2ZDg5XHU2ZDZlXHU2ZDVhXHU2ZDc0XHU2ZDY5XHU2ZDhj'@; put 'XHU2ZDhhXHU2ZDc5XHU2ZDg1XHU2ZDY1XHU2ZDk0XHU3MGNhXHU3MGQ4XHU3MGU0XHU3MGQ5XHU3MGM4XHU3MGNmXHU3MjM5XHU3Mjc5XHU3MmZjXHU3MmY5XHU3MmZkXHU3MmY4XHU3MmY3XHU3Mzg2XHU3M2VkXHU3NDA5XHU3M2VlXHU3M2UwXHU3M2VhXHU3M2RlXHU3NTU0XHU3NTVkXHU3'@; put 'NTVjXHU3NTVhXHU3NTU5XHU3NWJlXHU3NWM1XHU3NWM3XHU3NWIyXHU3NWIzXHU3NWJkXHU3NWJjXHU3NWI5XHU3NWMyXHU3NWI4XHU3NjhiXHU3NmIwXHU3NmNhXHU3NmNkXHU3NmNlXHU3NzI5XHU3NzFmXHU3NzIwXHU3NzI4XHU3N2U5XHU3ODMwXHU3ODI3XHU3ODM4XHU3ODFkXHU3ODM0'@; put 'XHU3ODM3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ODI1XHU3ODJkXHU3ODIwXHU3ODFmXHU3ODMyXHU3OTU1XHU3OTUwXHU3OTYwXHU3OTVmXHU3OTU2XHU3OTVlXHU3OTVkXHU3OTU3XHU3OTVhXHU3OWU0XHU3OWUzXHU3OWU3XHU3OWRmXHU3OWU2XHU3OWU5'@; put 'XHU3OWQ4XHU3YTg0XHU3YTg4XHU3YWQ5XHU3YjA2XHU3YjExXHU3Yzg5XHU3ZDIxXHU3ZDE3XHU3ZDBiXHU3ZDBhXHU3ZDIwXHU3ZDIyXHU3ZDE0XHU3ZDEwXHU3ZDE1XHU3ZDFhXHU3ZDFjXHU3ZDBkXHU3ZDE5XHU3ZDFiXHU3ZjNhXHU3ZjVmXHU3Zjk0XHU3ZmM1XHU3ZmMxXHU4MDA2XHU4'@; put 'MDE4XHU4MDE1XHU4MDE5XHU4MDE3XHU4MDNkXHU4MDNmXHU4MGYxXHU4MTAyXHU4MGYwXHU4MTA1XHU4MGVkXHU4MGY0XHU4MTA2XHU4MGY4XHU4MGYzXHU4MTA4XHU4MGZkXHU4MTBhXHU4MGZjXHU4MGVmXHU4MWVkXHU4MWVjXHU4MjAwXHU4MjEwXHU4MjJhXHU4MjJiXHU4MjI4XHU4MjJj'@; put 'XHU4MmJiXHU4MzJiXHU4MzUyXHU4MzU0XHU4MzRhXHU4MzM4XHU4MzUwXHU4MzQ5XHU4MzM1XHU4MzM0XHU4MzRmXHU4MzMyXHU4MzM5XHU4MzM2XHU4MzE3XHU4MzQwXHU4MzMxXHU4MzI4XHU4MzQzXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTc1XS5sZW5ndGg7KytwKTY1NTMzIT09'@; put 'X1sxNzVdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTc1XVtwXV09NDQ4MDArcCxiWzQ0ODAwK3BdPV9bMTc1XVtwXSk7Zm9yKF9bMTc2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4NjU0XHU4NjhhXHU4NmFhXHU4NjkzXHU4NmE0'@; put 'XHU4NmE5XHU4NjhjXHU4NmEzXHU4NjljXHU4ODcwXHU4ODc3XHU4ODgxXHU4ODgyXHU4ODdkXHU4ODc5XHU4YTE4XHU4YTEwXHU4YTBlXHU4YTBjXHU4YTE1XHU4YTBhXHU4YTE3XHU4YTEzXHU4YTE2XHU4YTBmXHU4YTExXHU4YzQ4XHU4YzdhXHU4Yzc5XHU4Y2ExXHU4Y2EyXHU4ZDc3XHU4'@; put 'ZWFjXHU4ZWQyXHU4ZWQ0XHU4ZWNmXHU4ZmIxXHU5MDAxXHU5MDA2XHU4ZmY3XHU5MDAwXHU4ZmZhXHU4ZmY0XHU5MDAzXHU4ZmZkXHU5MDA1XHU4ZmY4XHU5MDk1XHU5MGUxXHU5MGRkXHU5MGUyXHU5MTUyXHU5MTRkXHU5MTRjXHU5MWQ4XHU5MWRkXHU5MWQ3XHU5MWRjXHU5MWQ5XHU5NTgz'@; put 'XHU5NjYyXHU5NjYzXHU5NjYxXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5NjViXHU5NjVkXHU5NjY0XHU5NjU4XHU5NjVlXHU5NmJiXHU5OGUyXHU5OWFjXHU5YWE4XHU5YWQ4XHU5YjI1XHU5YjMyXHU5YjNjXHU0ZTdlXHU1MDdhXHU1MDdkXHU1MDVjXHU1MDQ3'@; put 'XHU1MDQzXHU1MDRjXHU1MDVhXHU1MDQ5XHU1MDY1XHU1MDc2XHU1MDRlXHU1MDU1XHU1MDc1XHU1MDc0XHU1MDc3XHU1MDRmXHU1MDBmXHU1MDZmXHU1MDZkXHU1MTVjXHU1MTk1XHU1MWYwXHU1MjZhXHU1MjZmXHU1MmQyXHU1MmQ5XHU1MmQ4XHU1MmQ1XHU1MzEwXHU1MzBmXHU1MzE5XHU1'@; put 'MzNmXHU1MzQwXHU1MzNlXHU1M2MzXHU2NmZjXHU1NTQ2XHU1NTZhXHU1NTY2XHU1NTQ0XHU1NTVlXHU1NTYxXHU1NTQzXHU1NTRhXHU1NTMxXHU1NTU2XHU1NTRmXHU1NTU1XHU1NTJmXHU1NTY0XHU1NTM4XHU1NTJlXHU1NTVjXHU1NTJjXHU1NTYzXHU1NTMzXHU1NTQxXHU1NTU3XHU1NzA4'@; put 'XHU1NzBiXHU1NzA5XHU1N2RmXHU1ODA1XHU1ODBhXHU1ODA2XHU1N2UwXHU1N2U0XHU1N2ZhXHU1ODAyXHU1ODM1XHU1N2Y3XHU1N2Y5XHU1OTIwXHU1OTYyXHU1YTM2XHU1YTQxXHU1YTQ5XHU1YTY2XHU1YTZhXHU1YTQwXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTc2XS5sZW5ndGg7'@; put 'KytwKTY1NTMzIT09X1sxNzZdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTc2XVtwXV09NDUwNTYrcCxiWzQ1MDU2K3BdPV9bMTc2XVtwXSk7Zm9yKF9bMTc3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1YTNjXHU1YTYyXHU1YTVh'@; put 'XHU1YTQ2XHU1YTRhXHU1YjcwXHU1YmM3XHU1YmM1XHU1YmM0XHU1YmMyXHU1YmJmXHU1YmM2XHU1YzA5XHU1YzA4XHU1YzA3XHU1YzYwXHU1YzVjXHU1YzVkXHU1ZDA3XHU1ZDA2XHU1ZDBlXHU1ZDFiXHU1ZDE2XHU1ZDIyXHU1ZDExXHU1ZDI5XHU1ZDE0XHU1ZDE5XHU1ZDI0XHU1ZDI3XHU1'@; put 'ZDE3XHU1ZGUyXHU1ZTM4XHU1ZTM2XHU1ZTMzXHU1ZTM3XHU1ZWI3XHU1ZWI4XHU1ZWI2XHU1ZWI1XHU1ZWJlXHU1ZjM1XHU1ZjM3XHU1ZjU3XHU1ZjZjXHU1ZjY5XHU1ZjZiXHU1Zjk3XHU1Zjk5XHU1ZjllXHU1Zjk4XHU1ZmExXHU1ZmEwXHU1ZjljXHU2MDdmXHU2MGEzXHU2MDg5XHU2MGEw'@; put 'XHU2MGE4XHU2MGNiXHU2MGI0XHU2MGU2XHU2MGJkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MGM1XHU2MGJiXHU2MGI1XHU2MGRjXHU2MGJjXHU2MGQ4XHU2MGQ1XHU2MGM2XHU2MGRmXHU2MGI4XHU2MGRhXHU2MGM3XHU2MjFhXHU2MjFiXHU2MjQ4XHU2M2Ew'@; put 'XHU2M2E3XHU2MzcyXHU2Mzk2XHU2M2EyXHU2M2E1XHU2Mzc3XHU2MzY3XHU2Mzk4XHU2M2FhXHU2MzcxXHU2M2E5XHU2Mzg5XHU2MzgzXHU2MzliXHU2MzZiXHU2M2E4XHU2Mzg0XHU2Mzg4XHU2Mzk5XHU2M2ExXHU2M2FjXHU2MzkyXHU2MzhmXHU2MzgwXHU2MzdiXHU2MzY5XHU2MzY4XHU2'@; put 'MzdhXHU2NTVkXHU2NTU2XHU2NTUxXHU2NTU5XHU2NTU3XHU1NTVmXHU2NTRmXHU2NTU4XHU2NTU1XHU2NTU0XHU2NTljXHU2NTliXHU2NWFjXHU2NWNmXHU2NWNiXHU2NWNjXHU2NWNlXHU2NjVkXHU2NjVhXHU2NjY0XHU2NjY4XHU2NjY2XHU2NjVlXHU2NmY5XHU1MmQ3XHU2NzFiXHU2ODgx'@; put 'XHU2OGFmXHU2OGEyXHU2ODkzXHU2OGI1XHU2ODdmXHU2ODc2XHU2OGIxXHU2OGE3XHU2ODk3XHU2OGIwXHU2ODgzXHU2OGM0XHU2OGFkXHU2ODg2XHU2ODg1XHU2ODk0XHU2ODlkXHU2OGE4XHU2ODlmXHU2OGExXHU2ODgyXHU2YjMyXHU2YmJhXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9b'@; put 'MTc3XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNzddW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTc3XVtwXV09NDUzMTIrcCxiWzQ1MzEyK3BdPV9bMTc3XVtwXSk7Zm9yKF9bMTc4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2YmVi'@; put 'XHU2YmVjXHU2YzJiXHU2ZDhlXHU2ZGJjXHU2ZGYzXHU2ZGQ5XHU2ZGIyXHU2ZGUxXHU2ZGNjXHU2ZGU0XHU2ZGZiXHU2ZGZhXHU2ZTA1XHU2ZGM3XHU2ZGNiXHU2ZGFmXHU2ZGQxXHU2ZGFlXHU2ZGRlXHU2ZGY5XHU2ZGI4XHU2ZGY3XHU2ZGY1XHU2ZGM1XHU2ZGQyXHU2ZTFhXHU2ZGI1XHU2'@; put 'ZGRhXHU2ZGViXHU2ZGQ4XHU2ZGVhXHU2ZGYxXHU2ZGVlXHU2ZGU4XHU2ZGM2XHU2ZGM0XHU2ZGFhXHU2ZGVjXHU2ZGJmXHU2ZGU2XHU3MGY5XHU3MTA5XHU3MTBhXHU3MGZkXHU3MGVmXHU3MjNkXHU3MjdkXHU3MjgxXHU3MzFjXHU3MzFiXHU3MzE2XHU3MzEzXHU3MzE5XHU3Mzg3XHU3NDA1'@; put 'XHU3NDBhXHU3NDAzXHU3NDA2XHU3M2ZlXHU3NDBkXHU3NGUwXHU3NGY2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3NGY3XHU3NTFjXHU3NTIyXHU3NTY1XHU3NTY2XHU3NTYyXHU3NTcwXHU3NThmXHU3NWQ0XHU3NWQ1XHU3NWI1XHU3NWNhXHU3NWNkXHU3Njhl'@; put 'XHU3NmQ0XHU3NmQyXHU3NmRiXHU3NzM3XHU3NzNlXHU3NzNjXHU3NzM2XHU3NzM4XHU3NzNhXHU3ODZiXHU3ODQzXHU3ODRlXHU3OTY1XHU3OTY4XHU3OTZkXHU3OWZiXHU3YTkyXHU3YTk1XHU3YjIwXHU3YjI4XHU3YjFiXHU3YjJjXHU3YjI2XHU3YjE5XHU3YjFlXHU3YjJlXHU3YzkyXHU3'@; put 'Yzk3XHU3Yzk1XHU3ZDQ2XHU3ZDQzXHU3ZDcxXHU3ZDJlXHU3ZDM5XHU3ZDNjXHU3ZDQwXHU3ZDMwXHU3ZDMzXHU3ZDQ0XHU3ZDJmXHU3ZDQyXHU3ZDMyXHU3ZDMxXHU3ZjNkXHU3ZjllXHU3ZjlhXHU3ZmNjXHU3ZmNlXHU3ZmQyXHU4MDFjXHU4MDRhXHU4MDQ2XHU4MTJmXHU4MTE2XHU4MTIz'@; put 'XHU4MTJiXHU4MTI5XHU4MTMwXHU4MTI0XHU4MjAyXHU4MjM1XHU4MjM3XHU4MjM2XHU4MjM5XHU4MzhlXHU4MzllXHU4Mzk4XHU4Mzc4XHU4M2EyXHU4Mzk2XHU4M2JkXHU4M2FiXHU4MzkyXHU4MzhhXHU4MzkzXHU4Mzg5XHU4M2EwXHU4Mzc3XHU4MzdiXHU4MzdjXHVmZmZkIi5zcGxpdCgi'@; put 'IikscD0wO3AhPV9bMTc4XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNzhdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTc4XVtwXV09NDU1NjgrcCxiWzQ1NTY4K3BdPV9bMTc4XVtwXSk7Zm9yKF9bMTc5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHU4Mzg2XHU4M2E3XHU4NjU1XHU1ZjZhXHU4NmM3XHU4NmMwXHU4NmI2XHU4NmM0XHU4NmI1XHU4NmM2XHU4NmNiXHU4NmIxXHU4NmFmXHU4NmM5XHU4ODUzXHU4ODllXHU4ODg4XHU4OGFiXHU4ODkyXHU4ODk2XHU4ODhkXHU4ODhiXHU4OTkzXHU4OThmXHU4YTJhXHU4YTFkXHU4'@; put 'YTIzXHU4YTI1XHU4YTMxXHU4YTJkXHU4YTFmXHU4YTFiXHU4YTIyXHU4YzQ5XHU4YzVhXHU4Y2E5XHU4Y2FjXHU4Y2FiXHU4Y2E4XHU4Y2FhXHU4Y2E3XHU4ZDY3XHU4ZDY2XHU4ZGJlXHU4ZGJhXHU4ZWRiXHU4ZWRmXHU5MDE5XHU5MDBkXHU5MDFhXHU5MDE3XHU5MDIzXHU5MDFmXHU5MDFk'@; put 'XHU5MDEwXHU5MDE1XHU5MDFlXHU5MDIwXHU5MDBmXHU5MDIyXHU5MDE2XHU5MDFiXHU5MDE0XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MGU4XHU5MGVkXHU5MGZkXHU5MTU3XHU5MWNlXHU5MWY1XHU5MWU2XHU5MWUzXHU5MWU3XHU5MWVkXHU5MWU5XHU5NTg5'@; put 'XHU5NjZhXHU5Njc1XHU5NjczXHU5Njc4XHU5NjcwXHU5Njc0XHU5Njc2XHU5Njc3XHU5NjZjXHU5NmMwXHU5NmVhXHU5NmU5XHU3YWUwXHU3YWRmXHU5ODAyXHU5ODAzXHU5YjVhXHU5Y2U1XHU5ZTc1XHU5ZTdmXHU5ZWE1XHU5ZWJiXHU1MGEyXHU1MDhkXHU1MDg1XHU1MDk5XHU1MDkxXHU1'@; put 'MDgwXHU1MDk2XHU1MDk4XHU1MDlhXHU2NzAwXHU1MWYxXHU1MjcyXHU1Mjc0XHU1Mjc1XHU1MjY5XHU1MmRlXHU1MmRkXHU1MmRiXHU1MzVhXHU1M2E1XHU1NTdiXHU1NTgwXHU1NWE3XHU1NTdjXHU1NThhXHU1NTlkXHU1NTk4XHU1NTgyXHU1NTljXHU1NWFhXHU1NTk0XHU1NTg3XHU1NThi'@; put 'XHU1NTgzXHU1NWIzXHU1NWFlXHU1NTlmXHU1NTNlXHU1NWIyXHU1NTlhXHU1NWJiXHU1NWFjXHU1NWIxXHU1NTdlXHU1NTg5XHU1NWFiXHU1NTk5XHU1NzBkXHU1ODJmXHU1ODJhXHU1ODM0XHU1ODI0XHU1ODMwXHU1ODMxXHU1ODIxXHU1ODFkXHU1ODIwXHU1OGY5XHU1OGZhXHU1OTYwXHVm'@; put 'ZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTc5XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxNzldW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTc5XVtwXV09NDU4MjQrcCxiWzQ1ODI0K3BdPV9bMTc5XVtwXSk7Zm9yKF9bMTgwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHU1YTc3XHU1YTlhXHU1YTdmXHU1YTkyXHU1YTliXHU1YWE3XHU1YjczXHU1YjcxXHU1YmQyXHU1YmNjXHU1YmQzXHU1YmQwXHU1YzBhXHU1YzBiXHU1YzMxXHU1ZDRjXHU1ZDUwXHU1ZDM0XHU1ZDQ3XHU1ZGZkXHU1ZTQ1XHU1ZTNkXHU1ZTQwXHU1ZTQzXHU1'@; put 'ZTdlXHU1ZWNhXHU1ZWMxXHU1ZWMyXHU1ZWM0XHU1ZjNjXHU1ZjZkXHU1ZmE5XHU1ZmFhXHU1ZmE4XHU2MGQxXHU2MGUxXHU2MGIyXHU2MGI2XHU2MGUwXHU2MTFjXHU2MTIzXHU2MGZhXHU2MTE1XHU2MGYwXHU2MGZiXHU2MGY0XHU2MTY4XHU2MGYxXHU2MTBlXHU2MGY2XHU2MTA5XHU2MTAw'@; put 'XHU2MTEyXHU2MjFmXHU2MjQ5XHU2M2EzXHU2MzhjXHU2M2NmXHU2M2MwXHU2M2U5XHU2M2M5XHU2M2M2XHU2M2NkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2M2QyXHU2M2UzXHU2M2QwXHU2M2UxXHU2M2Q2XHU2M2VkXHU2M2VlXHU2Mzc2XHU2M2Y0XHU2M2Vh'@; put 'XHU2M2RiXHU2NDUyXHU2M2RhXHU2M2Y5XHU2NTVlXHU2NTY2XHU2NTYyXHU2NTYzXHU2NTkxXHU2NTkwXHU2NWFmXHU2NjZlXHU2NjcwXHU2Njc0XHU2Njc2XHU2NjZmXHU2NjkxXHU2NjdhXHU2NjdlXHU2Njc3XHU2NmZlXHU2NmZmXHU2NzFmXHU2NzFkXHU2OGZhXHU2OGQ1XHU2OGUwXHU2'@; put 'OGQ4XHU2OGQ3XHU2OTA1XHU2OGRmXHU2OGY1XHU2OGVlXHU2OGU3XHU2OGY5XHU2OGQyXHU2OGYyXHU2OGUzXHU2OGNiXHU2OGNkXHU2OTBkXHU2OTEyXHU2OTBlXHU2OGM5XHU2OGRhXHU2OTZlXHU2OGZiXHU2YjNlXHU2YjNhXHU2YjNkXHU2Yjk4XHU2Yjk2XHU2YmJjXHU2YmVmXHU2YzJl'@; put 'XHU2YzJmXHU2YzJjXHU2ZTJmXHU2ZTM4XHU2ZTU0XHU2ZTIxXHU2ZTMyXHU2ZTY3XHU2ZTRhXHU2ZTIwXHU2ZTI1XHU2ZTIzXHU2ZTFiXHU2ZTViXHU2ZTU4XHU2ZTI0XHU2ZTU2XHU2ZTZlXHU2ZTJkXHU2ZTI2XHU2ZTZmXHU2ZTM0XHU2ZTRkXHU2ZTNhXHU2ZTJjXHU2ZTQzXHU2ZTFkXHU2'@; put 'ZTNlXHU2ZWNiXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTgwXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxODBdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTgwXVtwXV09NDYwODArcCxiWzQ2MDgwK3BdPV9bMTgwXVtwXSk7Zm9yKF9bMTgxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZTg5XHU2ZTE5XHU2ZTRlXHU2ZTYzXHU2ZTQ0XHU2ZTcyXHU2ZTY5XHU2ZTVmXHU3MTE5XHU3MTFhXHU3MTI2XHU3MTMwXHU3MTIxXHU3MTM2XHU3MTZlXHU3MTFjXHU3MjRjXHU3Mjg0XHU3MjgwXHU3MzM2XHU3MzI1XHU3MzM0XHU3'@; put 'MzI5XHU3NDNhXHU3NDJhXHU3NDMzXHU3NDIyXHU3NDI1XHU3NDM1XHU3NDM2XHU3NDM0XHU3NDJmXHU3NDFiXHU3NDI2XHU3NDI4XHU3NTI1XHU3NTI2XHU3NTZiXHU3NTZhXHU3NWUyXHU3NWRiXHU3NWUzXHU3NWQ5XHU3NWQ4XHU3NWRlXHU3NWUwXHU3NjdiXHU3NjdjXHU3Njk2XHU3Njkz'@; put 'XHU3NmI0XHU3NmRjXHU3NzRmXHU3N2VkXHU3ODVkXHU3ODZjXHU3ODZmXHU3YTBkXHU3YTA4XHU3YTBiXHU3YTA1XHU3YTAwXHU3YTk4XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3YTk3XHU3YTk2XHU3YWU1XHU3YWUzXHU3YjQ5XHU3YjU2XHU3YjQ2XHU3YjUw'@; put 'XHU3YjUyXHU3YjU0XHU3YjRkXHU3YjRiXHU3YjRmXHU3YjUxXHU3YzlmXHU3Y2E1XHU3ZDVlXHU3ZDUwXHU3ZDY4XHU3ZDU1XHU3ZDJiXHU3ZDZlXHU3ZDcyXHU3ZDYxXHU3ZDY2XHU3ZDYyXHU3ZDcwXHU3ZDczXHU1NTg0XHU3ZmQ0XHU3ZmQ1XHU4MDBiXHU4MDUyXHU4MDg1XHU4MTU1XHU4'@; put 'MTU0XHU4MTRiXHU4MTUxXHU4MTRlXHU4MTM5XHU4MTQ2XHU4MTNlXHU4MTRjXHU4MTUzXHU4MTc0XHU4MjEyXHU4MjFjXHU4M2U5XHU4NDAzXHU4M2Y4XHU4NDBkXHU4M2UwXHU4M2M1XHU4NDBiXHU4M2MxXHU4M2VmXHU4M2YxXHU4M2Y0XHU4NDU3XHU4NDBhXHU4M2YwXHU4NDBjXHU4M2Nj'@; put 'XHU4M2ZkXHU4M2YyXHU4M2NhXHU4NDM4XHU4NDBlXHU4NDA0XHU4M2RjXHU4NDA3XHU4M2Q0XHU4M2RmXHU4NjViXHU4NmRmXHU4NmQ5XHU4NmVkXHU4NmQ0XHU4NmRiXHU4NmU0XHU4NmQwXHU4NmRlXHU4ODU3XHU4OGMxXHU4OGMyXHU4OGIxXHU4OTgzXHU4OTk2XHU4YTNiXHU4YTYwXHU4'@; put 'YTU1XHU4YTVlXHU4YTNjXHU4YTQxXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTgxXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxODFdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTgxXVtwXV09NDYzMzYrcCxiWzQ2MzM2K3BdPV9bMTgxXVtwXSk7Zm9yKF9bMTgyXT0iXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4YTU0XHU4YTViXHU4YTUwXHU4YTQ2XHU4YTM0XHU4YTNhXHU4YTM2XHU4YTU2XHU4YzYxXHU4YzgyXHU4Y2FmXHU4Y2JjXHU4Y2IzXHU4Y2JkXHU4Y2MxXHU4Y2JiXHU4Y2MwXHU4Y2I0XHU4Y2I3XHU4Y2I2XHU4'@; put 'Y2JmXHU4Y2I4XHU4ZDhhXHU4ZDg1XHU4ZDgxXHU4ZGNlXHU4ZGRkXHU4ZGNiXHU4ZGRhXHU4ZGQxXHU4ZGNjXHU4ZGRiXHU4ZGM2XHU4ZWZiXHU4ZWY4XHU4ZWZjXHU4ZjljXHU5MDJlXHU5MDM1XHU5MDMxXHU5MDM4XHU5MDMyXHU5MDM2XHU5MTAyXHU5MGY1XHU5MTA5XHU5MGZlXHU5MTYz'@; put 'XHU5MTY1XHU5MWNmXHU5MjE0XHU5MjE1XHU5MjIzXHU5MjA5XHU5MjFlXHU5MjBkXHU5MjEwXHU5MjA3XHU5MjExXHU5NTk0XHU5NThmXHU5NThiXHU5NTkxXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5NTkzXHU5NTkyXHU5NThlXHU5NjhhXHU5NjhlXHU5Njhi'@; put 'XHU5NjdkXHU5Njg1XHU5Njg2XHU5NjhkXHU5NjcyXHU5Njg0XHU5NmMxXHU5NmM1XHU5NmM0XHU5NmM2XHU5NmM3XHU5NmVmXHU5NmYyXHU5N2NjXHU5ODA1XHU5ODA2XHU5ODA4XHU5OGU3XHU5OGVhXHU5OGVmXHU5OGU5XHU5OGYyXHU5OGVkXHU5OWFlXHU5OWFkXHU5ZWMzXHU5ZWNkXHU5'@; put 'ZWQxXHU0ZTgyXHU1MGFkXHU1MGI1XHU1MGIyXHU1MGIzXHU1MGM1XHU1MGJlXHU1MGFjXHU1MGI3XHU1MGJiXHU1MGFmXHU1MGM3XHU1MjdmXHU1Mjc3XHU1MjdkXHU1MmRmXHU1MmU2XHU1MmU0XHU1MmUyXHU1MmUzXHU1MzJmXHU1NWRmXHU1NWU4XHU1NWQzXHU1NWU2XHU1NWNlXHU1NWRj'@; put 'XHU1NWM3XHU1NWQxXHU1NWUzXHU1NWU0XHU1NWVmXHU1NWRhXHU1NWUxXHU1NWM1XHU1NWM2XHU1NWU1XHU1NWM5XHU1NzEyXHU1NzEzXHU1ODVlXHU1ODUxXHU1ODU4XHU1ODU3XHU1ODVhXHU1ODU0XHU1ODZiXHU1ODRjXHU1ODZkXHU1ODRhXHU1ODYyXHU1ODUyXHU1ODRiXHU1OTY3XHU1'@; put 'YWMxXHU1YWM5XHU1YWNjXHU1YWJlXHU1YWJkXHU1YWJjXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTgyXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxODJdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTgyXVtwXV09NDY1OTIrcCxiWzQ2NTkyK3BdPV9bMTgyXVtwXSk7Zm9yKF9bMTgzXT0i'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1YWIzXHU1YWMyXHU1YWIyXHU1ZDY5XHU1ZDZmXHU1ZTRjXHU1ZTc5XHU1ZWM5XHU1ZWM4XHU1ZjEyXHU1ZjU5XHU1ZmFjXHU1ZmFlXHU2MTFhXHU2MTBmXHU2MTQ4XHU2MTFmXHU2MGYzXHU2'@; put 'MTFiXHU2MGY5XHU2MTAxXHU2MTA4XHU2MTRlXHU2MTRjXHU2MTQ0XHU2MTRkXHU2MTNlXHU2MTM0XHU2MTI3XHU2MTBkXHU2MTA2XHU2MTM3XHU2MjIxXHU2MjIyXHU2NDEzXHU2NDNlXHU2NDFlXHU2NDJhXHU2NDJkXHU2NDNkXHU2NDJjXHU2NDBmXHU2NDFjXHU2NDE0XHU2NDBkXHU2NDM2'@; put 'XHU2NDE2XHU2NDE3XHU2NDA2XHU2NTZjXHU2NTlmXHU2NWIwXHU2Njk3XHU2Njg5XHU2Njg3XHU2Njg4XHU2Njk2XHU2Njg0XHU2Njk4XHU2NjhkXHU2NzAzXHU2OTk0XHU2OTZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2OTVhXHU2OTc3XHU2OTYwXHU2OTU0'@; put 'XHU2OTc1XHU2OTMwXHU2OTgyXHU2OTRhXHU2OTY4XHU2OTZiXHU2OTVlXHU2OTUzXHU2OTc5XHU2OTg2XHU2OTVkXHU2OTYzXHU2OTViXHU2YjQ3XHU2YjcyXHU2YmMwXHU2YmJmXHU2YmQzXHU2YmZkXHU2ZWEyXHU2ZWFmXHU2ZWQzXHU2ZWI2XHU2ZWMyXHU2ZTkwXHU2ZTlkXHU2ZWM3XHU2'@; put 'ZWM1XHU2ZWE1XHU2ZTk4XHU2ZWJjXHU2ZWJhXHU2ZWFiXHU2ZWQxXHU2ZTk2XHU2ZTljXHU2ZWM0XHU2ZWQ0XHU2ZWFhXHU2ZWE3XHU2ZWI0XHU3MTRlXHU3MTU5XHU3MTY5XHU3MTY0XHU3MTQ5XHU3MTY3XHU3MTVjXHU3MTZjXHU3MTY2XHU3MTRjXHU3MTY1XHU3MTVlXHU3MTQ2XHU3MTY4'@; put 'XHU3MTU2XHU3MjNhXHU3MjUyXHU3MzM3XHU3MzQ1XHU3MzNmXHU3MzNlXHU3NDZmXHU3NDVhXHU3NDU1XHU3NDVmXHU3NDVlXHU3NDQxXHU3NDNmXHU3NDU5XHU3NDViXHU3NDVjXHU3NTc2XHU3NTc4XHU3NjAwXHU3NWYwXHU3NjAxXHU3NWYyXHU3NWYxXHU3NWZhXHU3NWZmXHU3NWY0XHU3'@; put 'NWYzXHU3NmRlXHU3NmRmXHU3NzViXHU3NzZiXHU3NzY2XHU3NzVlXHU3NzYzXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTgzXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxODNdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTgzXVtwXV09NDY4NDgrcCxiWzQ2ODQ4K3BdPV9bMTgzXVtwXSk7'@; put 'Zm9yKF9bMTg0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3Nzc5XHU3NzZhXHU3NzZjXHU3NzVjXHU3NzY1XHU3NzY4XHU3NzYyXHU3N2VlXHU3ODhlXHU3OGIwXHU3ODk3XHU3ODk4XHU3ODhjXHU3ODg5XHU3ODdjXHU3ODkxXHU3'@; put 'ODkzXHU3ODdmXHU3OTdhXHU3OTdmXHU3OTgxXHU4NDJjXHU3OWJkXHU3YTFjXHU3YTFhXHU3YTIwXHU3YTE0XHU3YTFmXHU3YTFlXHU3YTlmXHU3YWEwXHU3Yjc3XHU3YmMwXHU3YjYwXHU3YjZlXHU3YjY3XHU3Y2IxXHU3Y2IzXHU3Y2I1XHU3ZDkzXHU3ZDc5XHU3ZDkxXHU3ZDgxXHU3ZDhm'@; put 'XHU3ZDViXHU3ZjZlXHU3ZjY5XHU3ZjZhXHU3ZjcyXHU3ZmE5XHU3ZmE4XHU3ZmE0XHU4MDU2XHU4MDU4XHU4MDg2XHU4MDg0XHU4MTcxXHU4MTcwXHU4MTc4XHU4MTY1XHU4MTZlXHU4MTczXHU4MTZiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MTc5XHU4MTdh'@; put 'XHU4MTY2XHU4MjA1XHU4MjQ3XHU4NDgyXHU4NDc3XHU4NDNkXHU4NDMxXHU4NDc1XHU4NDY2XHU4NDZiXHU4NDQ5XHU4NDZjXHU4NDViXHU4NDNjXHU4NDM1XHU4NDYxXHU4NDYzXHU4NDY5XHU4NDZkXHU4NDQ2XHU4NjVlXHU4NjVjXHU4NjVmXHU4NmY5XHU4NzEzXHU4NzA4XHU4NzA3XHU4'@; put 'NzAwXHU4NmZlXHU4NmZiXHU4NzAyXHU4NzAzXHU4NzA2XHU4NzBhXHU4ODU5XHU4OGRmXHU4OGQ0XHU4OGQ5XHU4OGRjXHU4OGQ4XHU4OGRkXHU4OGUxXHU4OGNhXHU4OGQ1XHU4OGQyXHU4OTljXHU4OWUzXHU4YTZiXHU4YTcyXHU4YTczXHU4YTY2XHU4YTY5XHU4YTcwXHU4YTg3XHU4YTdj'@; put 'XHU4YTYzXHU4YWEwXHU4YTcxXHU4YTg1XHU4YTZkXHU4YTYyXHU4YTZlXHU4YTZjXHU4YTc5XHU4YTdiXHU4YTNlXHU4YTY4XHU4YzYyXHU4YzhhXHU4Yzg5XHU4Y2NhXHU4Y2M3XHU4Y2M4XHU4Y2M0XHU4Y2IyXHU4Y2MzXHU4Y2MyXHU4Y2M1XHU4ZGUxXHU4ZGRmXHU4ZGU4XHU4ZGVmXHU4'@; put 'ZGYzXHU4ZGZhXHU4ZGVhXHU4ZGU0XHU4ZGU2XHU4ZWIyXHU4ZjAzXHU4ZjA5XHU4ZWZlXHU4ZjBhXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTg0XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxODRdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTg0XVtwXV09NDcxMDQrcCxiWzQ3MTA0K3Bd'@; put 'PV9bMTg0XVtwXSk7Zm9yKF9bMTg1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4ZjlmXHU4ZmIyXHU5MDRiXHU5MDRhXHU5MDUzXHU5MDQyXHU5MDU0XHU5MDNjXHU5MDU1XHU5MDUwXHU5MDQ3XHU5MDRmXHU5MDRlXHU5MDRkXHU5'@; put 'MDUxXHU5MDNlXHU5MDQxXHU5MTEyXHU5MTE3XHU5MTZjXHU5MTZhXHU5MTY5XHU5MWM5XHU5MjM3XHU5MjU3XHU5MjM4XHU5MjNkXHU5MjQwXHU5MjNlXHU5MjViXHU5MjRiXHU5MjY0XHU5MjUxXHU5MjM0XHU5MjQ5XHU5MjRkXHU5MjQ1XHU5MjM5XHU5MjNmXHU5MjVhXHU5NTk4XHU5Njk4'@; put 'XHU5Njk0XHU5Njk1XHU5NmNkXHU5NmNiXHU5NmM5XHU5NmNhXHU5NmY3XHU5NmZiXHU5NmY5XHU5NmY2XHU5NzU2XHU5Nzc0XHU5Nzc2XHU5ODEwXHU5ODExXHU5ODEzXHU5ODBhXHU5ODEyXHU5ODBjXHU5OGZjXHU5OGY0XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHU5OGZkXHU5OGZlXHU5OWIzXHU5OWIxXHU5OWI0XHU5YWUxXHU5Y2U5XHU5ZTgyXHU5ZjBlXHU5ZjEzXHU5ZjIwXHU1MGU3XHU1MGVlXHU1MGU1XHU1MGQ2XHU1MGVkXHU1MGRhXHU1MGQ1XHU1MGNmXHU1MGQxXHU1MGYxXHU1MGNlXHU1MGU5XHU1MTYyXHU1MWYzXHU1MjgzXHU1MjgyXHU1'@; put 'MzMxXHU1M2FkXHU1NWZlXHU1NjAwXHU1NjFiXHU1NjE3XHU1NWZkXHU1NjE0XHU1NjA2XHU1NjA5XHU1NjBkXHU1NjBlXHU1NWY3XHU1NjE2XHU1NjFmXHU1NjA4XHU1NjEwXHU1NWY2XHU1NzE4XHU1NzE2XHU1ODc1XHU1ODdlXHU1ODgzXHU1ODkzXHU1ODhhXHU1ODc5XHU1ODg1XHU1ODdk'@; put 'XHU1OGZkXHU1OTI1XHU1OTIyXHU1OTI0XHU1OTZhXHU1OTY5XHU1YWUxXHU1YWU2XHU1YWU5XHU1YWQ3XHU1YWQ2XHU1YWQ4XHU1YWUzXHU1Yjc1XHU1YmRlXHU1YmU3XHU1YmUxXHU1YmU1XHU1YmU2XHU1YmU4XHU1YmUyXHU1YmU0XHU1YmRmXHU1YzBkXHU1YzYyXHU1ZDg0XHU1ZDg3XHU1'@; put 'ZTViXHU1ZTYzXHU1ZTU1XHU1ZTU3XHU1ZTU0XHU1ZWQzXHU1ZWQ2XHU1ZjBhXHU1ZjQ2XHU1ZjcwXHU1ZmI5XHU2MTQ3XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTg1XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxODVdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTg1XVtwXV09NDczNjAr'@; put 'cCxiWzQ3MzYwK3BdPV9bMTg1XVtwXSk7Zm9yKF9bMTg2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MTNmXHU2MTRiXHU2MTc3XHU2MTYyXHU2MTYzXHU2MTVmXHU2MTVhXHU2MTU4XHU2MTc1XHU2MjJhXHU2NDg3XHU2NDU4XHU2'@; put 'NDU0XHU2NGE0XHU2NDc4XHU2NDVmXHU2NDdhXHU2NDUxXHU2NDY3XHU2NDM0XHU2NDZkXHU2NDdiXHU2NTcyXHU2NWExXHU2NWQ3XHU2NWQ2XHU2NmEyXHU2NmE4XHU2NjlkXHU2OTljXHU2OWE4XHU2OTk1XHU2OWMxXHU2OWFlXHU2OWQzXHU2OWNiXHU2OTliXHU2OWI3XHU2OWJiXHU2OWFi'@; put 'XHU2OWI0XHU2OWQwXHU2OWNkXHU2OWFkXHU2OWNjXHU2OWE2XHU2OWMzXHU2OWEzXHU2YjQ5XHU2YjRjXHU2YzMzXHU2ZjMzXHU2ZjE0XHU2ZWZlXHU2ZjEzXHU2ZWY0XHU2ZjI5XHU2ZjNlXHU2ZjIwXHU2ZjJjXHU2ZjBmXHU2ZjAyXHU2ZjIyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHU2ZWZmXHU2ZWVmXHU2ZjA2XHU2ZjMxXHU2ZjM4XHU2ZjMyXHU2ZjIzXHU2ZjE1XHU2ZjJiXHU2ZjJmXHU2Zjg4XHU2ZjJhXHU2ZWVjXHU2ZjAxXHU2ZWYyXHU2ZWNjXHU2ZWY3XHU3MTk0XHU3MTk5XHU3MTdkXHU3MThhXHU3MTg0XHU3MTkyXHU3MjNlXHU3MjkyXHU3'@; put 'Mjk2XHU3MzQ0XHU3MzUwXHU3NDY0XHU3NDYzXHU3NDZhXHU3NDcwXHU3NDZkXHU3NTA0XHU3NTkxXHU3NjI3XHU3NjBkXHU3NjBiXHU3NjA5XHU3NjEzXHU3NmUxXHU3NmUzXHU3Nzg0XHU3NzdkXHU3NzdmXHU3NzYxXHU3OGMxXHU3ODlmXHU3OGE3XHU3OGIzXHU3OGE5XHU3OGEzXHU3OThl'@; put 'XHU3OThmXHU3OThkXHU3YTJlXHU3YTMxXHU3YWFhXHU3YWE5XHU3YWVkXHU3YWVmXHU3YmExXHU3Yjk1XHU3YjhiXHU3Yjc1XHU3Yjk3XHU3YjlkXHU3Yjk0XHU3YjhmXHU3YmI4XHU3Yjg3XHU3Yjg0XHU3Y2I5XHU3Y2JkXHU3Y2JlXHU3ZGJiXHU3ZGIwXHU3ZDljXHU3ZGJkXHU3ZGJlXHU3'@; put 'ZGEwXHU3ZGNhXHU3ZGI0XHU3ZGIyXHU3ZGIxXHU3ZGJhXHU3ZGEyXHU3ZGJmXHU3ZGI1XHU3ZGI4XHU3ZGFkXHU3ZGQyXHU3ZGM3XHU3ZGFjXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTg2XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxODZdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTg2'@; put 'XVtwXV09NDc2MTYrcCxiWzQ3NjE2K3BdPV9bMTg2XVtwXSk7Zm9yKF9bMTg3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZjcwXHU3ZmUwXHU3ZmUxXHU3ZmRmXHU4MDVlXHU4MDVhXHU4MDg3XHU4MTUwXHU4MTgwXHU4MThmXHU4'@; put 'MTg4XHU4MThhXHU4MTdmXHU4MTgyXHU4MWU3XHU4MWZhXHU4MjA3XHU4MjE0XHU4MjFlXHU4MjRiXHU4NGM5XHU4NGJmXHU4NGM2XHU4NGM0XHU4NDk5XHU4NDllXHU4NGIyXHU4NDljXHU4NGNiXHU4NGI4XHU4NGMwXHU4NGQzXHU4NDkwXHU4NGJjXHU4NGQxXHU4NGNhXHU4NzNmXHU4NzFj'@; put 'XHU4NzNiXHU4NzIyXHU4NzI1XHU4NzM0XHU4NzE4XHU4NzU1XHU4NzM3XHU4NzI5XHU4OGYzXHU4OTAyXHU4OGY0XHU4OGY5XHU4OGY4XHU4OGZkXHU4OGU4XHU4OTFhXHU4OGVmXHU4YWE2XHU4YThjXHU4YTllXHU4YWEzXHU4YThkXHU4YWExXHU4YTkzXHU4YWE0XHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4YWFhXHU4YWE1XHU4YWE4XHU4YTk4XHU4YTkxXHU4YTlhXHU4YWE3XHU4YzZhXHU4YzhkXHU4YzhjXHU4Y2QzXHU4Y2QxXHU4Y2QyXHU4ZDZiXHU4ZDk5XHU4ZDk1XHU4ZGZjXHU4ZjE0XHU4ZjEyXHU4ZjE1XHU4ZjEzXHU4ZmEzXHU5MDYwXHU5'@; put 'MDU4XHU5MDVjXHU5MDYzXHU5MDU5XHU5MDVlXHU5MDYyXHU5MDVkXHU5MDViXHU5MTE5XHU5MTE4XHU5MTFlXHU5MTc1XHU5MTc4XHU5MTc3XHU5MTc0XHU5Mjc4XHU5MjgwXHU5Mjg1XHU5Mjk4XHU5Mjk2XHU5MjdiXHU5MjkzXHU5MjljXHU5MmE4XHU5MjdjXHU5MjkxXHU5NWExXHU5NWE4'@; put 'XHU5NWE5XHU5NWEzXHU5NWE1XHU5NWE0XHU5Njk5XHU5NjljXHU5NjliXHU5NmNjXHU5NmQyXHU5NzAwXHU5NzdjXHU5Nzg1XHU5N2Y2XHU5ODE3XHU5ODE4XHU5OGFmXHU5OGIxXHU5OTAzXHU5OTA1XHU5OTBjXHU5OTA5XHU5OWMxXHU5YWFmXHU5YWIwXHU5YWU2XHU5YjQxXHU5YjQyXHU5'@; put 'Y2Y0XHU5Y2Y2XHU5Y2YzXHU5ZWJjXHU5ZjNiXHU5ZjRhXHU1MTA0XHU1MTAwXHU1MGZiXHU1MGY1XHU1MGY5XHU1MTAyXHU1MTA4XHU1MTA5XHU1MTA1XHU1MWRjXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTg3XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxODddW3BdLmNoYXJDb2RlQXQo'@; put 'MCkmJihEW19bMTg3XVtwXV09NDc4NzIrcCxiWzQ3ODcyK3BdPV9bMTg3XVtwXSk7Zm9yKF9bMTg4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1Mjg3XHU1Mjg4XHU1Mjg5XHU1MjhkXHU1MjhhXHU1MmYwXHU1M2IyXHU1NjJlXHU1'@; put 'NjNiXHU1NjM5XHU1NjMyXHU1NjNmXHU1NjM0XHU1NjI5XHU1NjUzXHU1NjRlXHU1NjU3XHU1Njc0XHU1NjM2XHU1NjJmXHU1NjMwXHU1ODgwXHU1ODlmXHU1ODllXHU1OGIzXHU1ODljXHU1OGFlXHU1OGE5XHU1OGE2XHU1OTZkXHU1YjA5XHU1YWZiXHU1YjBiXHU1YWY1XHU1YjBjXHU1YjA4'@; put 'XHU1YmVlXHU1YmVjXHU1YmU5XHU1YmViXHU1YzY0XHU1YzY1XHU1ZDlkXHU1ZDk0XHU1ZTYyXHU1ZTVmXHU1ZTYxXHU1ZWUyXHU1ZWRhXHU1ZWRmXHU1ZWRkXHU1ZWUzXHU1ZWUwXHU1ZjQ4XHU1ZjcxXHU1ZmI3XHU1ZmI1XHU2MTc2XHU2MTY3XHU2MTZlXHU2MTVkXHU2MTU1XHU2MTgyXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MTdjXHU2MTcwXHU2MTZiXHU2MTdlXHU2MWE3XHU2MTkwXHU2MWFiXHU2MThlXHU2MWFjXHU2MTlhXHU2MWE0XHU2MTk0XHU2MWFlXHU2MjJlXHU2NDY5XHU2NDZmXHU2NDc5XHU2NDllXHU2NGIyXHU2NDg4XHU2NDkwXHU2'@; put 'NGIwXHU2NGE1XHU2NDkzXHU2NDk1XHU2NGE5XHU2NDkyXHU2NGFlXHU2NGFkXHU2NGFiXHU2NDlhXHU2NGFjXHU2NDk5XHU2NGEyXHU2NGIzXHU2NTc1XHU2NTc3XHU2NTc4XHU2NmFlXHU2NmFiXHU2NmI0XHU2NmIxXHU2YTIzXHU2YTFmXHU2OWU4XHU2YTAxXHU2YTFlXHU2YTE5XHU2OWZk'@; put 'XHU2YTIxXHU2YTEzXHU2YTBhXHU2OWYzXHU2YTAyXHU2YTA1XHU2OWVkXHU2YTExXHU2YjUwXHU2YjRlXHU2YmE0XHU2YmM1XHU2YmM2XHU2ZjNmXHU2ZjdjXHU2Zjg0XHU2ZjUxXHU2ZjY2XHU2ZjU0XHU2Zjg2XHU2ZjZkXHU2ZjViXHU2Zjc4XHU2ZjZlXHU2ZjhlXHU2ZjdhXHU2ZjcwXHU2'@; put 'ZjY0XHU2Zjk3XHU2ZjU4XHU2ZWQ1XHU2ZjZmXHU2ZjYwXHU2ZjVmXHU3MTlmXHU3MWFjXHU3MWIxXHU3MWE4XHU3MjU2XHU3MjliXHU3MzRlXHU3MzU3XHU3NDY5XHU3NDhiXHU3NDgzXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTg4XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxODhdW3Bd'@; put 'LmNoYXJDb2RlQXQoMCkmJihEW19bMTg4XVtwXV09NDgxMjgrcCxiWzQ4MTI4K3BdPV9bMTg4XVtwXSk7Zm9yKF9bMTg5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3NDdlXHU3NDgwXHU3NTdmXHU3NjIwXHU3NjI5XHU3NjFmXHU3'@; put 'NjI0XHU3NjI2XHU3NjIxXHU3NjIyXHU3NjlhXHU3NmJhXHU3NmU0XHU3NzhlXHU3Nzg3XHU3NzhjXHU3NzkxXHU3NzhiXHU3OGNiXHU3OGM1XHU3OGJhXHU3OGNhXHU3OGJlXHU3OGQ1XHU3OGJjXHU3OGQwXHU3YTNmXHU3YTNjXHU3YTQwXHU3YTNkXHU3YTM3XHU3YTNiXHU3YWFmXHU3YWFl'@; put 'XHU3YmFkXHU3YmIxXHU3YmM0XHU3YmI0XHU3YmM2XHU3YmM3XHU3YmMxXHU3YmEwXHU3YmNjXHU3Y2NhXHU3ZGUwXHU3ZGY0XHU3ZGVmXHU3ZGZiXHU3ZGQ4XHU3ZGVjXHU3ZGRkXHU3ZGU4XHU3ZGUzXHU3ZGRhXHU3ZGRlXHU3ZGU5XHU3ZDllXHU3ZGQ5XHU3ZGYyXHU3ZGY5XHU3Zjc1XHU3'@; put 'Zjc3XHU3ZmFmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZmU5XHU4MDI2XHU4MTliXHU4MTljXHU4MTlkXHU4MWEwXHU4MTlhXHU4MTk4XHU4NTE3XHU4NTNkXHU4NTFhXHU4NGVlXHU4NTJjXHU4NTJkXHU4NTEzXHU4NTExXHU4NTIzXHU4NTIxXHU4NTE0XHU4'@; put 'NGVjXHU4NTI1XHU4NGZmXHU4NTA2XHU4NzgyXHU4Nzc0XHU4Nzc2XHU4NzYwXHU4NzY2XHU4Nzc4XHU4NzY4XHU4NzU5XHU4NzU3XHU4NzRjXHU4NzUzXHU4ODViXHU4ODVkXHU4OTEwXHU4OTA3XHU4OTEyXHU4OTEzXHU4OTE1XHU4OTBhXHU4YWJjXHU4YWQyXHU4YWM3XHU4YWM0XHU4YTk1'@; put 'XHU4YWNiXHU4YWY4XHU4YWIyXHU4YWM5XHU4YWMyXHU4YWJmXHU4YWIwXHU4YWQ2XHU4YWNkXHU4YWI2XHU4YWI5XHU4YWRiXHU4YzRjXHU4YzRlXHU4YzZjXHU4Y2UwXHU4Y2RlXHU4Y2U2XHU4Y2U0XHU4Y2VjXHU4Y2VkXHU4Y2UyXHU4Y2UzXHU4Y2RjXHU4Y2VhXHU4Y2UxXHU4ZDZkXHU4'@; put 'ZDlmXHU4ZGEzXHU4ZTJiXHU4ZTEwXHU4ZTFkXHU4ZTIyXHU4ZTBmXHU4ZTI5XHU4ZTFmXHU4ZTIxXHU4ZTFlXHU4ZWJhXHU4ZjFkXHU4ZjFiXHU4ZjFmXHU4ZjI5XHU4ZjI2XHU4ZjJhXHU4ZjFjXHU4ZjFlXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTg5XS5sZW5ndGg7KytwKTY1NTMz'@; put 'IT09X1sxODldW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTg5XVtwXV09NDgzODQrcCxiWzQ4Mzg0K3BdPV9bMTg5XVtwXSk7Zm9yKF9bMTkwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4ZjI1XHU5MDY5XHU5MDZlXHU5MDY4XHU5'@; put 'MDZkXHU5MDc3XHU5MTMwXHU5MTJkXHU5MTI3XHU5MTMxXHU5MTg3XHU5MTg5XHU5MThiXHU5MTgzXHU5MmM1XHU5MmJiXHU5MmI3XHU5MmVhXHU5MmFjXHU5MmU0XHU5MmMxXHU5MmIzXHU5MmJjXHU5MmQyXHU5MmM3XHU5MmYwXHU5MmIyXHU5NWFkXHU5NWIxXHU5NzA0XHU5NzA2XHU5NzA3'@; put 'XHU5NzA5XHU5NzYwXHU5NzhkXHU5NzhiXHU5NzhmXHU5ODIxXHU5ODJiXHU5ODFjXHU5OGIzXHU5OTBhXHU5OTEzXHU5OTEyXHU5OTE4XHU5OWRkXHU5OWQwXHU5OWRmXHU5OWRiXHU5OWQxXHU5OWQ1XHU5OWQyXHU5OWQ5XHU5YWI3XHU5YWVlXHU5YWVmXHU5YjI3XHU5YjQ1XHU5YjQ0XHU5'@; put 'Yjc3XHU5YjZmXHU5ZDA2XHU5ZDA5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ZDAzXHU5ZWE5XHU5ZWJlXHU5ZWNlXHU1OGE4XHU5ZjUyXHU1MTEyXHU1MTE4XHU1MTE0XHU1MTEwXHU1MTE1XHU1MTgwXHU1MWFhXHU1MWRkXHU1MjkxXHU1MjkzXHU1MmYzXHU1'@; put 'NjU5XHU1NjZiXHU1Njc5XHU1NjY5XHU1NjY0XHU1Njc4XHU1NjZhXHU1NjY4XHU1NjY1XHU1NjcxXHU1NjZmXHU1NjZjXHU1NjYyXHU1Njc2XHU1OGMxXHU1OGJlXHU1OGM3XHU1OGM1XHU1OTZlXHU1YjFkXHU1YjM0XHU1Yjc4XHU1YmYwXHU1YzBlXHU1ZjRhXHU2MWIyXHU2MTkxXHU2MWE5'@; put 'XHU2MThhXHU2MWNkXHU2MWI2XHU2MWJlXHU2MWNhXHU2MWM4XHU2MjMwXHU2NGM1XHU2NGMxXHU2NGNiXHU2NGJiXHU2NGJjXHU2NGRhXHU2NGM0XHU2NGM3XHU2NGMyXHU2NGNkXHU2NGJmXHU2NGQyXHU2NGQ0XHU2NGJlXHU2NTc0XHU2NmM2XHU2NmM5XHU2NmI5XHU2NmM0XHU2NmM3XHU2'@; put 'NmI4XHU2YTNkXHU2YTM4XHU2YTNhXHU2YTU5XHU2YTZiXHU2YTU4XHU2YTM5XHU2YTQ0XHU2YTYyXHU2YTYxXHU2YTRiXHU2YTQ3XHU2YTM1XHU2YTVmXHU2YTQ4XHU2YjU5XHU2Yjc3XHU2YzA1XHU2ZmMyXHU2ZmIxXHU2ZmExXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTkwXS5sZW5n'@; put 'dGg7KytwKTY1NTMzIT09X1sxOTBdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTkwXVtwXV09NDg2NDArcCxiWzQ4NjQwK3BdPV9bMTkwXVtwXSk7Zm9yKF9bMTkxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZmMzXHU2ZmE0XHU2'@; put 'ZmMxXHU2ZmE3XHU2ZmIzXHU2ZmMwXHU2ZmI5XHU2ZmI2XHU2ZmE2XHU2ZmEwXHU2ZmI0XHU3MWJlXHU3MWM5XHU3MWQwXHU3MWQyXHU3MWM4XHU3MWQ1XHU3MWI5XHU3MWNlXHU3MWQ5XHU3MWRjXHU3MWMzXHU3MWM0XHU3MzY4XHU3NDljXHU3NGEzXHU3NDk4XHU3NDlmXHU3NDllXHU3NGUy'@; put 'XHU3NTBjXHU3NTBkXHU3NjM0XHU3NjM4XHU3NjNhXHU3NmU3XHU3NmU1XHU3N2EwXHU3NzllXHU3NzlmXHU3N2E1XHU3OGU4XHU3OGRhXHU3OGVjXHU3OGU3XHU3OWE2XHU3YTRkXHU3YTRlXHU3YTQ2XHU3YTRjXHU3YTRiXHU3YWJhXHU3YmQ5XHU3YzExXHU3YmM5XHU3YmU0XHU3YmRiXHU3'@; put 'YmUxXHU3YmU5XHU3YmU2XHU3Y2Q1XHU3Y2Q2XHU3ZTBhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZTExXHU3ZTA4XHU3ZTFiXHU3ZTIzXHU3ZTFlXHU3ZTFkXHU3ZTA5XHU3ZTEwXHU3Zjc5XHU3ZmIyXHU3ZmYwXHU3ZmYxXHU3ZmVlXHU4MDI4XHU4MWIzXHU4'@; put 'MWE5XHU4MWE4XHU4MWZiXHU4MjA4XHU4MjU4XHU4MjU5XHU4NTRhXHU4NTU5XHU4NTQ4XHU4NTY4XHU4NTY5XHU4NTQzXHU4NTQ5XHU4NTZkXHU4NTZhXHU4NTVlXHU4NzgzXHU4NzlmXHU4NzllXHU4N2EyXHU4NzhkXHU4ODYxXHU4OTJhXHU4OTMyXHU4OTI1XHU4OTJiXHU4OTIxXHU4OWFh'@; put 'XHU4OWE2XHU4YWU2XHU4YWZhXHU4YWViXHU4YWYxXHU4YjAwXHU4YWRjXHU4YWU3XHU4YWVlXHU4YWZlXHU4YjAxXHU4YjAyXHU4YWY3XHU4YWVkXHU4YWYzXHU4YWY2XHU4YWZjXHU4YzZiXHU4YzZkXHU4YzkzXHU4Y2Y0XHU4ZTQ0XHU4ZTMxXHU4ZTM0XHU4ZTQyXHU4ZTM5XHU4ZTM1XHU4'@; put 'ZjNiXHU4ZjJmXHU4ZjM4XHU4ZjMzXHU4ZmE4XHU4ZmE2XHU5MDc1XHU5MDc0XHU5MDc4XHU5MDcyXHU5MDdjXHU5MDdhXHU5MTM0XHU5MTkyXHU5MzIwXHU5MzM2XHU5MmY4XHU5MzMzXHU5MzJmXHU5MzIyXHU5MmZjXHU5MzJiXHU5MzA0XHU5MzFhXHVmZmZkIi5zcGxpdCgiIikscD0wO3Ah'@; put 'PV9bMTkxXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxOTFdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTkxXVtwXV09NDg4OTYrcCxiWzQ4ODk2K3BdPV9bMTkxXVtwXSk7Zm9yKF9bMTkyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5'@; put 'MzEwXHU5MzI2XHU5MzIxXHU5MzE1XHU5MzJlXHU5MzE5XHU5NWJiXHU5NmE3XHU5NmE4XHU5NmFhXHU5NmQ1XHU5NzBlXHU5NzExXHU5NzE2XHU5NzBkXHU5NzEzXHU5NzBmXHU5NzViXHU5NzVjXHU5NzY2XHU5Nzk4XHU5ODMwXHU5ODM4XHU5ODNiXHU5ODM3XHU5ODJkXHU5ODM5XHU5ODI0'@; put 'XHU5OTEwXHU5OTI4XHU5OTFlXHU5OTFiXHU5OTIxXHU5OTFhXHU5OWVkXHU5OWUyXHU5OWYxXHU5YWI4XHU5YWJjXHU5YWZiXHU5YWVkXHU5YjI4XHU5YjkxXHU5ZDE1XHU5ZDIzXHU5ZDI2XHU5ZDI4XHU5ZDEyXHU5ZDFiXHU5ZWQ4XHU5ZWQ0XHU5ZjhkXHU5ZjljXHU1MTJhXHU1MTFmXHU1'@; put 'MTIxXHU1MTMyXHU1MmY1XHU1NjhlXHU1NjgwXHU1NjkwXHU1Njg1XHU1Njg3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NjhmXHU1OGQ1XHU1OGQzXHU1OGQxXHU1OGNlXHU1YjMwXHU1YjJhXHU1YjI0XHU1YjdhXHU1YzM3XHU1YzY4XHU1ZGJjXHU1ZGJhXHU1'@; put 'ZGJkXHU1ZGI4XHU1ZTZiXHU1ZjRjXHU1ZmJkXHU2MWM5XHU2MWMyXHU2MWM3XHU2MWU2XHU2MWNiXHU2MjMyXHU2MjM0XHU2NGNlXHU2NGNhXHU2NGQ4XHU2NGUwXHU2NGYwXHU2NGU2XHU2NGVjXHU2NGYxXHU2NGUyXHU2NGVkXHU2NTgyXHU2NTgzXHU2NmQ5XHU2NmQ2XHU2YTgwXHU2YTk0'@; put 'XHU2YTg0XHU2YWEyXHU2YTljXHU2YWRiXHU2YWEzXHU2YTdlXHU2YTk3XHU2YTkwXHU2YWEwXHU2YjVjXHU2YmFlXHU2YmRhXHU2YzA4XHU2ZmQ4XHU2ZmYxXHU2ZmRmXHU2ZmUwXHU2ZmRiXHU2ZmU0XHU2ZmViXHU2ZmVmXHU2ZjgwXHU2ZmVjXHU2ZmUxXHU2ZmU5XHU2ZmQ1XHU2ZmVlXHU2'@; put 'ZmYwXHU3MWU3XHU3MWRmXHU3MWVlXHU3MWU2XHU3MWU1XHU3MWVkXHU3MWVjXHU3MWY0XHU3MWUwXHU3MjM1XHU3MjQ2XHU3MzcwXHU3MzcyXHU3NGE5XHU3NGIwXHU3NGE2XHU3NGE4XHU3NjQ2XHU3NjQyXHU3NjRjXHU3NmVhXHU3N2IzXHU3N2FhXHU3N2IwXHU3N2FjXHVmZmZkIi5zcGxp'@; put 'dCgiIikscD0wO3AhPV9bMTkyXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxOTJdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTkyXVtwXV09NDkxNTIrcCxiWzQ5MTUyK3BdPV9bMTkyXVtwXSk7Zm9yKF9bMTkzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHU3N2E3XHU3N2FkXHU3N2VmXHU3OGY3XHU3OGZhXHU3OGY0XHU3OGVmXHU3OTAxXHU3OWE3XHU3OWFhXHU3YTU3XHU3YWJmXHU3YzA3XHU3YzBkXHU3YmZlXHU3YmY3XHU3YzBjXHU3YmUwXHU3Y2UwXHU3Y2RjXHU3Y2RlXHU3Y2UyXHU3Y2RmXHU3Y2Q5XHU3Y2RkXHU3ZTJl'@; put 'XHU3ZTNlXHU3ZTQ2XHU3ZTM3XHU3ZTMyXHU3ZTQzXHU3ZTJiXHU3ZTNkXHU3ZTMxXHU3ZTQ1XHU3ZTQxXHU3ZTM0XHU3ZTM5XHU3ZTQ4XHU3ZTM1XHU3ZTNmXHU3ZTJmXHU3ZjQ0XHU3ZmYzXHU3ZmZjXHU4MDcxXHU4MDcyXHU4MDcwXHU4MDZmXHU4MDczXHU4MWM2XHU4MWMzXHU4MWJhXHU4'@; put 'MWMyXHU4MWMwXHU4MWJmXHU4MWJkXHU4MWM5XHU4MWJlXHU4MWU4XHU4MjA5XHU4MjcxXHU4NWFhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4NTg0XHU4NTdlXHU4NTljXHU4NTkxXHU4NTk0XHU4NWFmXHU4NTliXHU4NTg3XHU4NWE4XHU4NThhXHU4NjY3XHU4'@; put 'N2MwXHU4N2QxXHU4N2IzXHU4N2QyXHU4N2M2XHU4N2FiXHU4N2JiXHU4N2JhXHU4N2M4XHU4N2NiXHU4OTNiXHU4OTM2XHU4OTQ0XHU4OTM4XHU4OTNkXHU4OWFjXHU4YjBlXHU4YjE3XHU4YjE5XHU4YjFiXHU4YjBhXHU4YjIwXHU4YjFkXHU4YjA0XHU4YjEwXHU4YzQxXHU4YzNmXHU4Yzcz'@; put 'XHU4Y2ZhXHU4Y2ZkXHU4Y2ZjXHU4Y2Y4XHU4Y2ZiXHU4ZGE4XHU4ZTQ5XHU4ZTRiXHU4ZTQ4XHU4ZTRhXHU4ZjQ0XHU4ZjNlXHU4ZjQyXHU4ZjQ1XHU4ZjNmXHU5MDdmXHU5MDdkXHU5MDg0XHU5MDgxXHU5MDgyXHU5MDgwXHU5MTM5XHU5MWEzXHU5MTllXHU5MTljXHU5MzRkXHU5MzgyXHU5'@; put 'MzI4XHU5Mzc1XHU5MzRhXHU5MzY1XHU5MzRiXHU5MzE4XHU5MzdlXHU5MzZjXHU5MzViXHU5MzcwXHU5MzVhXHU5MzU0XHU5NWNhXHU5NWNiXHU5NWNjXHU5NWM4XHU5NWM2XHU5NmIxXHU5NmI4XHU5NmQ2XHU5NzFjXHU5NzFlXHU5N2EwXHU5N2QzXHU5ODQ2XHU5OGI2XHU5OTM1XHU5YTAx'@; put 'XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTkzXS5sZW5ndGg7KytwKTY1NTMzIT09X1sxOTNdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTkzXVtwXV09NDk0MDgrcCxiWzQ5NDA4K3BdPV9bMTkzXVtwXSk7Zm9yKF9bMTk0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5OWZmXHU5YmFlXHU5YmFiXHU5YmFhXHU5YmFkXHU5ZDNiXHU5ZDNmXHU5ZThiXHU5ZWNmXHU5ZWRlXHU5ZWRjXHU5ZWRkXHU5ZWRiXHU5ZjNlXHU5ZjRiXHU1M2UyXHU1Njk1XHU1NmFlXHU1OGQ5XHU1OGQ4XHU1YjM4XHU1ZjVkXHU2MWUzXHU2MjMz'@; put 'XHU2NGY0XHU2NGYyXHU2NGZlXHU2NTA2XHU2NGZhXHU2NGZiXHU2NGY3XHU2NWI3XHU2NmRjXHU2NzI2XHU2YWIzXHU2YWFjXHU2YWMzXHU2YWJiXHU2YWI4XHU2YWMyXHU2YWFlXHU2YWFmXHU2YjVmXHU2Yjc4XHU2YmFmXHU3MDA5XHU3MDBiXHU2ZmZlXHU3MDA2XHU2ZmZhXHU3MDExXHU3'@; put 'MDBmXHU3MWZiXHU3MWZjXHU3MWZlXHU3MWY4XHU3Mzc3XHU3Mzc1XHU3NGE3XHU3NGJmXHU3NTE1XHU3NjU2XHU3NjU4XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3NjUyXHU3N2JkXHU3N2JmXHU3N2JiXHU3N2JjXHU3OTBlXHU3OWFlXHU3YTYxXHU3YTYyXHU3'@; put 'YTYwXHU3YWM0XHU3YWM1XHU3YzJiXHU3YzI3XHU3YzJhXHU3YzFlXHU3YzIzXHU3YzIxXHU3Y2U3XHU3ZTU0XHU3ZTU1XHU3ZTVlXHU3ZTVhXHU3ZTYxXHU3ZTUyXHU3ZTU5XHU3ZjQ4XHU3ZmY5XHU3ZmZiXHU4MDc3XHU4MDc2XHU4MWNkXHU4MWNmXHU4MjBhXHU4NWNmXHU4NWE5XHU4NWNk'@; put 'XHU4NWQwXHU4NWM5XHU4NWIwXHU4NWJhXHU4NWI5XHU4NWE2XHU4N2VmXHU4N2VjXHU4N2YyXHU4N2UwXHU4OTg2XHU4OWIyXHU4OWY0XHU4YjI4XHU4YjM5XHU4YjJjXHU4YjJiXHU4YzUwXHU4ZDA1XHU4ZTU5XHU4ZTYzXHU4ZTY2XHU4ZTY0XHU4ZTVmXHU4ZTU1XHU4ZWMwXHU4ZjQ5XHU4'@; put 'ZjRkXHU5MDg3XHU5MDgzXHU5MDg4XHU5MWFiXHU5MWFjXHU5MWQwXHU5Mzk0XHU5MzhhXHU5Mzk2XHU5M2EyXHU5M2IzXHU5M2FlXHU5M2FjXHU5M2IwXHU5Mzk4XHU5MzlhXHU5Mzk3XHU5NWQ0XHU5NWQ2XHU5NWQwXHU5NWQ1XHU5NmUyXHU5NmRjXHU5NmQ5XHU5NmRiXHU5NmRlXHU5NzI0'@; put 'XHU5N2EzXHU5N2E2XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTk0XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxOTRdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTk0XVtwXV09NDk2NjQrcCxiWzQ5NjY0K3BdPV9bMTk0XVtwXSk7Zm9yKF9bMTk1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5N2FkXHU5N2Y5XHU5ODRkXHU5ODRmXHU5ODRjXHU5ODRlXHU5ODUzXHU5OGJhXHU5OTNlXHU5OTNmXHU5OTNkXHU5OTJlXHU5OWE1XHU5YTBlXHU5YWMxXHU5YjAzXHU5YjA2XHU5YjRmXHU5YjRlXHU5YjRkXHU5YmNhXHU5YmM5'@; put 'XHU5YmZkXHU5YmM4XHU5YmMwXHU5ZDUxXHU5ZDVkXHU5ZDYwXHU5ZWUwXHU5ZjE1XHU5ZjJjXHU1MTMzXHU1NmE1XHU1OGRlXHU1OGRmXHU1OGUyXHU1YmY1XHU5ZjkwXHU1ZWVjXHU2MWYyXHU2MWY3XHU2MWY2XHU2MWY1XHU2NTAwXHU2NTBmXHU2NmUwXHU2NmRkXHU2YWU1XHU2YWRkXHU2'@; put 'YWRhXHU2YWQzXHU3MDFiXHU3MDFmXHU3MDI4XHU3MDFhXHU3MDFkXHU3MDE1XHU3MDE4XHU3MjA2XHU3MjBkXHU3MjU4XHU3MmEyXHU3Mzc4XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3MzdhXHU3NGJkXHU3NGNhXHU3NGUzXHU3NTg3XHU3NTg2XHU3NjVmXHU3'@; put 'NjYxXHU3N2M3XHU3OTE5XHU3OWIxXHU3YTZiXHU3YTY5XHU3YzNlXHU3YzNmXHU3YzM4XHU3YzNkXHU3YzM3XHU3YzQwXHU3ZTZiXHU3ZTZkXHU3ZTc5XHU3ZTY5XHU3ZTZhXHU3Zjg1XHU3ZTczXHU3ZmI2XHU3ZmI5XHU3ZmI4XHU4MWQ4XHU4NWU5XHU4NWRkXHU4NWVhXHU4NWQ1XHU4NWU0'@; put 'XHU4NWU1XHU4NWY3XHU4N2ZiXHU4ODA1XHU4ODBkXHU4N2Y5XHU4N2ZlXHU4OTYwXHU4OTVmXHU4OTU2XHU4OTVlXHU4YjQxXHU4YjVjXHU4YjU4XHU4YjQ5XHU4YjVhXHU4YjRlXHU4YjRmXHU4YjQ2XHU4YjU5XHU4ZDA4XHU4ZDBhXHU4ZTdjXHU4ZTcyXHU4ZTg3XHU4ZTc2XHU4ZTZjXHU4'@; put 'ZTdhXHU4ZTc0XHU4ZjU0XHU4ZjRlXHU4ZmFkXHU5MDhhXHU5MDhiXHU5MWIxXHU5MWFlXHU5M2UxXHU5M2QxXHU5M2RmXHU5M2MzXHU5M2M4XHU5M2RjXHU5M2RkXHU5M2Q2XHU5M2UyXHU5M2NkXHU5M2Q4XHU5M2U0XHU5M2Q3XHU5M2U4XHU5NWRjXHU5NmI0XHU5NmUzXHU5NzJhXHU5NzI3'@; put 'XHU5NzYxXHU5N2RjXHU5N2ZiXHU5ODVlXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTk1XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxOTVdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTk1XVtwXV09NDk5MjArcCxiWzQ5OTIwK3BdPV9bMTk1XVtwXSk7Zm9yKF9bMTk2XT0iXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ODU4XHU5ODViXHU5OGJjXHU5OTQ1XHU5OTQ5XHU5YTE2XHU5YTE5XHU5YjBkXHU5YmU4XHU5YmU3XHU5YmQ2XHU5YmRiXHU5ZDg5XHU5ZDYxXHU5ZDcyXHU5ZDZhXHU5ZDZjXHU5ZTkyXHU5ZTk3XHU5ZTkz'@; put 'XHU5ZWI0XHU1MmY4XHU1NmE4XHU1NmI3XHU1NmI2XHU1NmI0XHU1NmJjXHU1OGU0XHU1YjQwXHU1YjQzXHU1YjdkXHU1YmY2XHU1ZGM5XHU2MWY4XHU2MWZhXHU2NTE4XHU2NTE0XHU2NTE5XHU2NmU2XHU2NzI3XHU2YWVjXHU3MDNlXHU3MDMwXHU3MDMyXHU3MjEwXHU3MzdiXHU3NGNmXHU3'@; put 'NjYyXHU3NjY1XHU3OTI2XHU3OTJhXHU3OTJjXHU3OTJiXHU3YWM3XHU3YWY2XHU3YzRjXHU3YzQzXHU3YzRkXHU3Y2VmXHU3Y2YwXHU4ZmFlXHU3ZTdkXHU3ZTdjXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZTgyXHU3ZjRjXHU4MDAwXHU4MWRhXHU4MjY2XHU4'@; put 'NWZiXHU4NWY5XHU4NjExXHU4NWZhXHU4NjA2XHU4NjBiXHU4NjA3XHU4NjBhXHU4ODE0XHU4ODE1XHU4OTY0XHU4OWJhXHU4OWY4XHU4YjcwXHU4YjZjXHU4YjY2XHU4YjZmXHU4YjVmXHU4YjZiXHU4ZDBmXHU4ZDBkXHU4ZTg5XHU4ZTgxXHU4ZTg1XHU4ZTgyXHU5MWI0XHU5MWNiXHU5NDE4'@; put 'XHU5NDAzXHU5M2ZkXHU5NWUxXHU5NzMwXHU5OGM0XHU5OTUyXHU5OTUxXHU5OWE4XHU5YTJiXHU5YTMwXHU5YTM3XHU5YTM1XHU5YzEzXHU5YzBkXHU5ZTc5XHU5ZWI1XHU5ZWU4XHU5ZjJmXHU5ZjVmXHU5ZjYzXHU5ZjYxXHU1MTM3XHU1MTM4XHU1NmMxXHU1NmMwXHU1NmMyXHU1OTE0XHU1'@; put 'YzZjXHU1ZGNkXHU2MWZjXHU2MWZlXHU2NTFkXHU2NTFjXHU2NTk1XHU2NmU5XHU2YWZiXHU2YjA0XHU2YWZhXHU2YmIyXHU3MDRjXHU3MjFiXHU3MmE3XHU3NGQ2XHU3NGQ0XHU3NjY5XHU3N2QzXHU3YzUwXHU3ZThmXHU3ZThjXHU3ZmJjXHU4NjE3XHU4NjJkXHU4NjFhXHU4ODIzXHU4ODIy'@; put 'XHU4ODIxXHU4ODFmXHU4OTZhXHU4OTZjXHU4OWJkXHU4Yjc0XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTk2XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxOTZdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTk2XVtwXV09NTAxNzYrcCxiWzUwMTc2K3BdPV9bMTk2XVtwXSk7Zm9yKF9bMTk3'@; put 'XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4Yjc3XHU4YjdkXHU4ZDEzXHU4ZThhXHU4ZThkXHU4ZThiXHU4ZjVmXHU4ZmFmXHU5MWJhXHU5NDJlXHU5NDMzXHU5NDM1XHU5NDNhXHU5NDM4XHU5NDMyXHU5NDJiXHU5NWUyXHU5NzM4'@; put 'XHU5NzM5XHU5NzMyXHU5N2ZmXHU5ODY3XHU5ODY1XHU5OTU3XHU5YTQ1XHU5YTQzXHU5YTQwXHU5YTNlXHU5YWNmXHU5YjU0XHU5YjUxXHU5YzJkXHU5YzI1XHU5ZGFmXHU5ZGI0XHU5ZGMyXHU5ZGI4XHU5ZTlkXHU5ZWVmXHU5ZjE5XHU5ZjVjXHU5ZjY2XHU5ZjY3XHU1MTNjXHU1MTNiXHU1'@; put 'NmM4XHU1NmNhXHU1NmM5XHU1YjdmXHU1ZGQ0XHU1ZGQyXHU1ZjRlXHU2MWZmXHU2NTI0XHU2YjBhXHU2YjYxXHU3MDUxXHU3MDU4XHU3MzgwXHU3NGU0XHU3NThhXHU3NjZlXHU3NjZjXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3OWIzXHU3YzYwXHU3YzVmXHU4'@; put 'MDdlXHU4MDdkXHU4MWRmXHU4OTcyXHU4OTZmXHU4OWZjXHU4YjgwXHU4ZDE2XHU4ZDE3XHU4ZTkxXHU4ZTkzXHU4ZjYxXHU5MTQ4XHU5NDQ0XHU5NDUxXHU5NDUyXHU5NzNkXHU5NzNlXHU5N2MzXHU5N2MxXHU5ODZiXHU5OTU1XHU5YTU1XHU5YTRkXHU5YWQyXHU5YjFhXHU5YzQ5XHU5YzMx'@; put 'XHU5YzNlXHU5YzNiXHU5ZGQzXHU5ZGQ3XHU5ZjM0XHU5ZjZjXHU5ZjZhXHU5Zjk0XHU1NmNjXHU1ZGQ2XHU2MjAwXHU2NTIzXHU2NTJiXHU2NTJhXHU2NmVjXHU2YjEwXHU3NGRhXHU3YWNhXHU3YzY0XHU3YzYzXHU3YzY1XHU3ZTkzXHU3ZTk2XHU3ZTk0XHU4MWUyXHU4NjM4XHU4NjNmXHU4'@; put 'ODMxXHU4YjhhXHU5MDkwXHU5MDhmXHU5NDYzXHU5NDYwXHU5NDY0XHU5NzY4XHU5ODZmXHU5OTVjXHU5YTVhXHU5YTViXHU5YTU3XHU5YWQzXHU5YWQ0XHU5YWQxXHU5YzU0XHU5YzU3XHU5YzU2XHU5ZGU1XHU5ZTlmXHU5ZWY0XHU1NmQxXHU1OGU5XHU2NTJjXHU3MDVlXHU3NjcxXHU3Njcy'@; put 'XHU3N2Q3XHU3ZjUwXHU3Zjg4XHU4ODM2XHU4ODM5XHU4ODYyXHU4YjkzXHU4YjkyXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTk3XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxOTddW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTk3XVtwXV09NTA0MzIrcCxiWzUwNDMyK3BdPV9bMTk3XVtw'@; put 'XSk7Zm9yKF9bMTk4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4Yjk2XHU4Mjc3XHU4ZDFiXHU5MWMwXHU5NDZhXHU5NzQyXHU5NzQ4XHU5NzQ0XHU5N2M2XHU5ODcwXHU5YTVmXHU5YjIyXHU5YjU4XHU5YzVmXHU5ZGY5XHU5ZGZh'@; put 'XHU5ZTdjXHU5ZTdkXHU5ZjA3XHU5Zjc3XHU5ZjcyXHU1ZWYzXHU2YjE2XHU3MDYzXHU3YzZjXHU3YzZlXHU4ODNiXHU4OWMwXHU4ZWExXHU5MWMxXHU5NDcyXHU5NDcwXHU5ODcxXHU5OTVlXHU5YWQ2XHU5YjIzXHU5ZWNjXHU3MDY0XHU3N2RhXHU4YjlhXHU5NDc3XHU5N2M5XHU5YTYyXHU5'@; put 'YTY1XHU3ZTljXHU4YjljXHU4ZWFhXHU5MWM1XHU5NDdkXHU5NDdlXHU5NDdjXHU5Yzc3XHU5Yzc4XHU5ZWY3XHU4YzU0XHU5NDdmXHU5ZTFhXHU3MjI4XHU5YTZhXHU5YjMxXHU5ZTFiXHU5ZTFlXHU3YzcyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMTk4XS5sZW5ndGg7KytwKTY1NTMzIT09X1sxOThdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMTk4XVtwXV09NTA2ODgrcCxiWzUwNjg4'@; put 'K3BdPV9bMTk4XVtwXSk7Zm9yKF9bMjAxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU0ZTQyXHU0ZTVjXHU1MWY1XHU1MzFhXHU1MzgyXHU0ZTA3XHU0ZTBjXHU0ZTQ3XHU0ZThkXHU1NmQ3XHVmYTBjXHU1YzZlXHU1ZjczXHU0ZTBm'@; put 'XHU1MTg3XHU0ZTBlXHU0ZTJlXHU0ZTkzXHU0ZWMyXHU0ZWM5XHU0ZWM4XHU1MTk4XHU1MmZjXHU1MzZjXHU1M2I5XHU1NzIwXHU1OTAzXHU1OTJjXHU1YzEwXHU1ZGZmXHU2NWUxXHU2YmIzXHU2YmNjXHU2YzE0XHU3MjNmXHU0ZTMxXHU0ZTNjXHU0ZWU4XHU0ZWRjXHU0ZWU5XHU0ZWUxXHU0'@; put 'ZWRkXHU0ZWRhXHU1MjBjXHU1MzFjXHU1MzRjXHU1NzIyXHU1NzIzXHU1OTE3XHU1OTJmXHU1YjgxXHU1Yjg0XHU1YzEyXHU1YzNiXHU1Yzc0XHU1YzczXHU1ZTA0XHU1ZTgwXHU1ZTgyXHU1ZmM5XHU2MjA5XHU2MjUwXHU2YzE1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHU2YzM2XHU2YzQzXHU2YzNmXHU2YzNiXHU3MmFlXHU3MmIwXHU3MzhhXHU3OWI4XHU4MDhhXHU5NjFlXHU0ZjBlXHU0ZjE4XHU0ZjJjXHU0ZWY1XHU0ZjE0XHU0ZWYxXHU0ZjAwXHU0ZWY3XHU0ZjA4XHU0ZjFkXHU0ZjAyXHU0ZjA1XHU0ZjIyXHU0ZjEzXHU0ZjA0XHU0ZWY0XHU0ZjEy'@; put 'XHU1MWIxXHU1MjEzXHU1MjA5XHU1MjEwXHU1MmE2XHU1MzIyXHU1MzFmXHU1MzRkXHU1MzhhXHU1NDA3XHU1NmUxXHU1NmRmXHU1NzJlXHU1NzJhXHU1NzM0XHU1OTNjXHU1OTgwXHU1OTdjXHU1OTg1XHU1OTdiXHU1OTdlXHU1OTc3XHU1OTdmXHU1YjU2XHU1YzE1XHU1YzI1XHU1YzdjXHU1'@; put 'YzdhXHU1YzdiXHU1YzdlXHU1ZGRmXHU1ZTc1XHU1ZTg0XHU1ZjAyXHU1ZjFhXHU1Zjc0XHU1ZmQ1XHU1ZmQ0XHU1ZmNmXHU2MjVjXHU2MjVlXHU2MjY0XHU2MjYxXHU2MjY2XHU2MjYyXHU2MjU5XHU2MjYwXHU2MjVhXHU2MjY1XHU2NWVmXHU2NWVlXHU2NzNlXHU2NzM5XHU2NzM4XHU2NzNi'@; put 'XHU2NzNhXHU2NzNmXHU2NzNjXHU2NzMzXHU2YzE4XHU2YzQ2XHU2YzUyXHU2YzVjXHU2YzRmXHU2YzRhXHU2YzU0XHU2YzRiXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjAxXS5sZW5ndGg7KytwKTY1NTMzIT09X1syMDFdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjAxXVtwXV09NTE0'@; put 'NTYrcCxiWzUxNDU2K3BdPV9bMjAxXVtwXSk7Zm9yKF9bMjAyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2YzRjXHU3MDcxXHU3MjVlXHU3MmI0XHU3MmI1XHU3MzhlXHU3NTJhXHU3NjdmXHU3YTc1XHU3ZjUxXHU4Mjc4XHU4Mjdj'@; put 'XHU4MjgwXHU4MjdkXHU4MjdmXHU4NjRkXHU4OTdlXHU5MDk5XHU5MDk3XHU5MDk4XHU5MDliXHU5MDk0XHU5NjIyXHU5NjI0XHU5NjIwXHU5NjIzXHU0ZjU2XHU0ZjNiXHU0ZjYyXHU0ZjQ5XHU0ZjUzXHU0ZjY0XHU0ZjNlXHU0ZjY3XHU0ZjUyXHU0ZjVmXHU0ZjQxXHU0ZjU4XHU0ZjJkXHU0'@; put 'ZjMzXHU0ZjNmXHU0ZjYxXHU1MThmXHU1MWI5XHU1MjFjXHU1MjFlXHU1MjIxXHU1MmFkXHU1MmFlXHU1MzA5XHU1MzYzXHU1MzcyXHU1MzhlXHU1MzhmXHU1NDMwXHU1NDM3XHU1NDJhXHU1NDU0XHU1NDQ1XHU1NDE5XHU1NDFjXHU1NDI1XHU1NDE4XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHU1NDNkXHU1NDRmXHU1NDQxXHU1NDI4XHU1NDI0XHU1NDQ3XHU1NmVlXHU1NmU3XHU1NmU1XHU1NzQxXHU1NzQ1XHU1NzRjXHU1NzQ5XHU1NzRiXHU1NzUyXHU1OTA2XHU1OTQwXHU1OWE2XHU1OTk4XHU1OWEwXHU1OTk3XHU1OThlXHU1OWEyXHU1OTkwXHU1OThm'@; put 'XHU1OWE3XHU1OWExXHU1YjhlXHU1YjkyXHU1YzI4XHU1YzJhXHU1YzhkXHU1YzhmXHU1Yzg4XHU1YzhiXHU1Yzg5XHU1YzkyXHU1YzhhXHU1Yzg2XHU1YzkzXHU1Yzk1XHU1ZGUwXHU1ZTBhXHU1ZTBlXHU1ZThiXHU1ZTg5XHU1ZThjXHU1ZTg4XHU1ZThkXHU1ZjA1XHU1ZjFkXHU1Zjc4XHU1'@; put 'Zjc2XHU1ZmQyXHU1ZmQxXHU1ZmQwXHU1ZmVkXHU1ZmU4XHU1ZmVlXHU1ZmYzXHU1ZmUxXHU1ZmU0XHU1ZmUzXHU1ZmZhXHU1ZmVmXHU1ZmY3XHU1ZmZiXHU2MDAwXHU1ZmY0XHU2MjNhXHU2MjgzXHU2MjhjXHU2MjhlXHU2MjhmXHU2Mjk0XHU2Mjg3XHU2MjcxXHU2MjdiXHU2MjdhXHU2Mjcw'@; put 'XHU2MjgxXHU2Mjg4XHU2Mjc3XHU2MjdkXHU2MjcyXHU2Mjc0XHU2NTM3XHU2NWYwXHU2NWY0XHU2NWYzXHU2NWYyXHU2NWY1XHU2NzQ1XHU2NzQ3XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjAyXS5sZW5ndGg7KytwKTY1NTMzIT09X1syMDJdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19b'@; put 'MjAyXVtwXV09NTE3MTIrcCxiWzUxNzEyK3BdPV9bMjAyXVtwXSk7Zm9yKF9bMjAzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2NzU5XHU2NzU1XHU2NzRjXHU2NzQ4XHU2NzVkXHU2NzRkXHU2NzVhXHU2NzRiXHU2YmQwXHU2YzE5'@; put 'XHU2YzFhXHU2Yzc4XHU2YzY3XHU2YzZiXHU2Yzg0XHU2YzhiXHU2YzhmXHU2YzcxXHU2YzZmXHU2YzY5XHU2YzlhXHU2YzZkXHU2Yzg3XHU2Yzk1XHU2YzljXHU2YzY2XHU2YzczXHU2YzY1XHU2YzdiXHU2YzhlXHU3MDc0XHU3MDdhXHU3MjYzXHU3MmJmXHU3MmJkXHU3MmMzXHU3MmM2XHU3'@; put 'MmMxXHU3MmJhXHU3MmM1XHU3Mzk1XHU3Mzk3XHU3MzkzXHU3Mzk0XHU3MzkyXHU3NTNhXHU3NTM5XHU3NTk0XHU3NTk1XHU3NjgxXHU3OTNkXHU4MDM0XHU4MDk1XHU4MDk5XHU4MDkwXHU4MDkyXHU4MDljXHU4MjkwXHU4MjhmXHU4Mjg1XHU4MjhlXHU4MjkxXHU4MjkzXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MjhhXHU4MjgzXHU4Mjg0XHU4Yzc4XHU4ZmM5XHU4ZmJmXHU5MDlmXHU5MGExXHU5MGE1XHU5MDllXHU5MGE3XHU5MGEwXHU5NjMwXHU5NjI4XHU5NjJmXHU5NjJkXHU0ZTMzXHU0Zjk4XHU0ZjdjXHU0Zjg1XHU0ZjdkXHU0ZjgwXHU0Zjg3'@; put 'XHU0Zjc2XHU0Zjc0XHU0Zjg5XHU0Zjg0XHU0Zjc3XHU0ZjRjXHU0Zjk3XHU0ZjZhXHU0ZjlhXHU0Zjc5XHU0ZjgxXHU0Zjc4XHU0ZjkwXHU0ZjljXHU0Zjk0XHU0ZjllXHU0ZjkyXHU0ZjgyXHU0Zjk1XHU0ZjZiXHU0ZjZlXHU1MTllXHU1MWJjXHU1MWJlXHU1MjM1XHU1MjMyXHU1MjMzXHU1'@; put 'MjQ2XHU1MjMxXHU1MmJjXHU1MzBhXHU1MzBiXHU1MzNjXHU1MzkyXHU1Mzk0XHU1NDg3XHU1NDdmXHU1NDgxXHU1NDkxXHU1NDgyXHU1NDg4XHU1NDZiXHU1NDdhXHU1NDdlXHU1NDY1XHU1NDZjXHU1NDc0XHU1NDY2XHU1NDhkXHU1NDZmXHU1NDYxXHU1NDYwXHU1NDk4XHU1NDYzXHU1NDY3'@; put 'XHU1NDY0XHU1NmY3XHU1NmY5XHU1NzZmXHU1NzcyXHU1NzZkXHU1NzZiXHU1NzcxXHU1NzcwXHU1Nzc2XHU1NzgwXHU1Nzc1XHU1NzdiXHU1NzczXHU1Nzc0XHU1NzYyXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjAzXS5sZW5ndGg7KytwKTY1NTMzIT09X1syMDNdW3BdLmNoYXJDb2Rl'@; put 'QXQoMCkmJihEW19bMjAzXVtwXV09NTE5NjgrcCxiWzUxOTY4K3BdPV9bMjAzXVtwXSk7Zm9yKF9bMjA0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NzY4XHU1NzdkXHU1OTBjXHU1OTQ1XHU1OWI1XHU1OWJhXHU1OWNmXHU1OWNl'@; put 'XHU1OWIyXHU1OWNjXHU1OWMxXHU1OWI2XHU1OWJjXHU1OWMzXHU1OWQ2XHU1OWIxXHU1OWJkXHU1OWMwXHU1OWM4XHU1OWI0XHU1OWM3XHU1YjYyXHU1YjY1XHU1YjkzXHU1Yjk1XHU1YzQ0XHU1YzQ3XHU1Y2FlXHU1Y2E0XHU1Y2EwXHU1Y2I1XHU1Y2FmXHU1Y2E4XHU1Y2FjXHU1YzlmXHU1'@; put 'Y2EzXHU1Y2FkXHU1Y2EyXHU1Y2FhXHU1Y2E3XHU1YzlkXHU1Y2E1XHU1Y2I2XHU1Y2IwXHU1Y2E2XHU1ZTE3XHU1ZTE0XHU1ZTE5XHU1ZjI4XHU1ZjIyXHU1ZjIzXHU1ZjI0XHU1ZjU0XHU1ZjgyXHU1ZjdlXHU1ZjdkXHU1ZmRlXHU1ZmU1XHU2MDJkXHU2MDI2XHU2MDE5XHU2MDMyXHU2MDBi'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MDM0XHU2MDBhXHU2MDE3XHU2MDMzXHU2MDFhXHU2MDFlXHU2MDJjXHU2MDIyXHU2MDBkXHU2MDEwXHU2MDJlXHU2MDEzXHU2MDExXHU2MDBjXHU2MDA5XHU2MDFjXHU2MjE0XHU2MjNkXHU2MmFkXHU2MmI0XHU2MmQx'@; put 'XHU2MmJlXHU2MmFhXHU2MmI2XHU2MmNhXHU2MmFlXHU2MmIzXHU2MmFmXHU2MmJiXHU2MmE5XHU2MmIwXHU2MmI4XHU2NTNkXHU2NWE4XHU2NWJiXHU2NjA5XHU2NWZjXHU2NjA0XHU2NjEyXHU2NjA4XHU2NWZiXHU2NjAzXHU2NjBiXHU2NjBkXHU2NjA1XHU2NWZkXHU2NjExXHU2NjEwXHU2'@; put 'NmY2XHU2NzBhXHU2Nzg1XHU2NzZjXHU2NzhlXHU2NzkyXHU2Nzc2XHU2NzdiXHU2Nzk4XHU2Nzg2XHU2Nzg0XHU2Nzc0XHU2NzhkXHU2NzhjXHU2NzdhXHU2NzlmXHU2NzkxXHU2Nzk5XHU2NzgzXHU2NzdkXHU2NzgxXHU2Nzc4XHU2Nzc5XHU2Nzk0XHU2YjI1XHU2YjgwXHU2YjdlXHU2YmRl'@; put 'XHU2YzFkXHU2YzkzXHU2Y2VjXHU2Y2ViXHU2Y2VlXHU2Y2Q5XHU2Y2I2XHU2Y2Q0XHU2Y2FkXHU2Y2U3XHU2Y2I3XHU2Y2QwXHU2Y2MyXHU2Y2JhXHU2Y2MzXHU2Y2M2XHU2Y2VkXHU2Y2YyXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjA0XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMDRd'@; put 'W3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjA0XVtwXV09NTIyMjQrcCxiWzUyMjI0K3BdPV9bMjA0XVtwXSk7Zm9yKF9bMjA1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2Y2QyXHU2Y2RkXHU2Y2I0XHU2YzhhXHU2YzlkXHU2Yzgw'@; put 'XHU2Y2RlXHU2Y2MwXHU2ZDMwXHU2Y2NkXHU2Y2M3XHU2Y2IwXHU2Y2Y5XHU2Y2NmXHU2Y2U5XHU2Y2QxXHU3MDk0XHU3MDk4XHU3MDg1XHU3MDkzXHU3MDg2XHU3MDg0XHU3MDkxXHU3MDk2XHU3MDgyXHU3MDlhXHU3MDgzXHU3MjZhXHU3MmQ2XHU3MmNiXHU3MmQ4XHU3MmM5XHU3MmRjXHU3'@; put 'MmQyXHU3MmQ0XHU3MmRhXHU3MmNjXHU3MmQxXHU3M2E0XHU3M2ExXHU3M2FkXHU3M2E2XHU3M2EyXHU3M2EwXHU3M2FjXHU3MzlkXHU3NGRkXHU3NGU4XHU3NTNmXHU3NTQwXHU3NTNlXHU3NThjXHU3NTk4XHU3NmFmXHU3NmYzXHU3NmYxXHU3NmYwXHU3NmY1XHU3N2Y4XHU3N2ZjXHU3N2Y5'@; put 'XHU3N2ZiXHU3N2ZhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3N2Y3XHU3OTQyXHU3OTNmXHU3OWM1XHU3YTc4XHU3YTdiXHU3YWZiXHU3Yzc1XHU3Y2ZkXHU4MDM1XHU4MDhmXHU4MGFlXHU4MGEzXHU4MGI4XHU4MGI1XHU4MGFkXHU4MjIwXHU4MmEwXHU4MmMw'@; put 'XHU4MmFiXHU4MjlhXHU4Mjk4XHU4MjliXHU4MmI1XHU4MmE3XHU4MmFlXHU4MmJjXHU4MjllXHU4MmJhXHU4MmI0XHU4MmE4XHU4MmExXHU4MmE5XHU4MmMyXHU4MmE0XHU4MmMzXHU4MmI2XHU4MmEyXHU4NjcwXHU4NjZmXHU4NjZkXHU4NjZlXHU4YzU2XHU4ZmQyXHU4ZmNiXHU4ZmQzXHU4'@; put 'ZmNkXHU4ZmQ2XHU4ZmQ1XHU4ZmQ3XHU5MGIyXHU5MGI0XHU5MGFmXHU5MGIzXHU5MGIwXHU5NjM5XHU5NjNkXHU5NjNjXHU5NjNhXHU5NjQzXHU0ZmNkXHU0ZmM1XHU0ZmQzXHU0ZmIyXHU0ZmM5XHU0ZmNiXHU0ZmMxXHU0ZmQ0XHU0ZmRjXHU0ZmQ5XHU0ZmJiXHU0ZmIzXHU0ZmRiXHU0ZmM3'@; put 'XHU0ZmQ2XHU0ZmJhXHU0ZmMwXHU0ZmI5XHU0ZmVjXHU1MjQ0XHU1MjQ5XHU1MmMwXHU1MmMyXHU1MzNkXHU1MzdjXHU1Mzk3XHU1Mzk2XHU1Mzk5XHU1Mzk4XHU1NGJhXHU1NGExXHU1NGFkXHU1NGE1XHU1NGNmXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjA1XS5sZW5ndGg7KytwKTY1'@; put 'NTMzIT09X1syMDVdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjA1XVtwXV09NTI0ODArcCxiWzUyNDgwK3BdPV9bMjA1XVtwXSk7Zm9yKF9bMjA2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NGMzXHU4MzBkXHU1NGI3XHU1NGFl'@; put 'XHU1NGQ2XHU1NGI2XHU1NGM1XHU1NGM2XHU1NGEwXHU1NDcwXHU1NGJjXHU1NGEyXHU1NGJlXHU1NDcyXHU1NGRlXHU1NGIwXHU1N2I1XHU1NzllXHU1NzlmXHU1N2E0XHU1NzhjXHU1Nzk3XHU1NzlkXHU1NzliXHU1Nzk0XHU1Nzk4XHU1NzhmXHU1Nzk5XHU1N2E1XHU1NzlhXHU1Nzk1XHU1'@; put 'OGY0XHU1OTBkXHU1OTUzXHU1OWUxXHU1OWRlXHU1OWVlXHU1YTAwXHU1OWYxXHU1OWRkXHU1OWZhXHU1OWZkXHU1OWZjXHU1OWY2XHU1OWU0XHU1OWYyXHU1OWY3XHU1OWRiXHU1OWU5XHU1OWYzXHU1OWY1XHU1OWUwXHU1OWZlXHU1OWY0XHU1OWVkXHU1YmE4XHU1YzRjXHU1Y2QwXHU1Y2Q4'@; put 'XHU1Y2NjXHU1Y2Q3XHU1Y2NiXHU1Y2RiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1Y2RlXHU1Y2RhXHU1Y2M5XHU1Y2M3XHU1Y2NhXHU1Y2Q2XHU1Y2QzXHU1Y2Q0XHU1Y2NmXHU1Y2M4XHU1Y2M2XHU1Y2NlXHU1Y2RmXHU1Y2Y4XHU1ZGY5XHU1ZTIxXHU1ZTIy'@; put 'XHU1ZTIzXHU1ZTIwXHU1ZTI0XHU1ZWIwXHU1ZWE0XHU1ZWEyXHU1ZTliXHU1ZWEzXHU1ZWE1XHU1ZjA3XHU1ZjJlXHU1ZjU2XHU1Zjg2XHU2MDM3XHU2MDM5XHU2MDU0XHU2MDcyXHU2MDVlXHU2MDQ1XHU2MDUzXHU2MDQ3XHU2MDQ5XHU2MDViXHU2MDRjXHU2MDQwXHU2MDQyXHU2MDVmXHU2'@; put 'MDI0XHU2MDQ0XHU2MDU4XHU2MDY2XHU2MDZlXHU2MjQyXHU2MjQzXHU2MmNmXHU2MzBkXHU2MzBiXHU2MmY1XHU2MzBlXHU2MzAzXHU2MmViXHU2MmY5XHU2MzBmXHU2MzBjXHU2MmY4XHU2MmY2XHU2MzAwXHU2MzEzXHU2MzE0XHU2MmZhXHU2MzE1XHU2MmZiXHU2MmYwXHU2NTQxXHU2NTQz'@; put 'XHU2NWFhXHU2NWJmXHU2NjM2XHU2NjIxXHU2NjMyXHU2NjM1XHU2NjFjXHU2NjI2XHU2NjIyXHU2NjMzXHU2NjJiXHU2NjNhXHU2NjFkXHU2NjM0XHU2NjM5XHU2NjJlXHU2NzBmXHU2NzEwXHU2N2MxXHU2N2YyXHU2N2M4XHU2N2JhXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjA2XS5s'@; put 'ZW5ndGg7KytwKTY1NTMzIT09X1syMDZdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjA2XVtwXV09NTI3MzYrcCxiWzUyNzM2K3BdPV9bMjA2XVtwXSk7Zm9yKF9bMjA3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2N2RjXHU2N2Ji'@; put 'XHU2N2Y4XHU2N2Q4XHU2N2MwXHU2N2I3XHU2N2M1XHU2N2ViXHU2N2U0XHU2N2RmXHU2N2I1XHU2N2NkXHU2N2IzXHU2N2Y3XHU2N2Y2XHU2N2VlXHU2N2UzXHU2N2MyXHU2N2I5XHU2N2NlXHU2N2U3XHU2N2YwXHU2N2IyXHU2N2ZjXHU2N2M2XHU2N2VkXHU2N2NjXHU2N2FlXHU2N2U2XHU2'@; put 'N2RiXHU2N2ZhXHU2N2M5XHU2N2NhXHU2N2MzXHU2N2VhXHU2N2NiXHU2YjI4XHU2YjgyXHU2Yjg0XHU2YmI2XHU2YmQ2XHU2YmQ4XHU2YmUwXHU2YzIwXHU2YzIxXHU2ZDI4XHU2ZDM0XHU2ZDJkXHU2ZDFmXHU2ZDNjXHU2ZDNmXHU2ZDEyXHU2ZDBhXHU2Y2RhXHU2ZDMzXHU2ZDA0XHU2ZDE5'@; put 'XHU2ZDNhXHU2ZDFhXHU2ZDExXHU2ZDAwXHU2ZDFkXHU2ZDQyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZDAxXHU2ZDE4XHU2ZDM3XHU2ZDAzXHU2ZDBmXHU2ZDQwXHU2ZDA3XHU2ZDIwXHU2ZDJjXHU2ZDA4XHU2ZDIyXHU2ZDA5XHU2ZDEwXHU3MGI3XHU3MDlm'@; put 'XHU3MGJlXHU3MGIxXHU3MGIwXHU3MGExXHU3MGI0XHU3MGI1XHU3MGE5XHU3MjQxXHU3MjQ5XHU3MjRhXHU3MjZjXHU3MjcwXHU3MjczXHU3MjZlXHU3MmNhXHU3MmU0XHU3MmU4XHU3MmViXHU3MmRmXHU3MmVhXHU3MmU2XHU3MmUzXHU3Mzg1XHU3M2NjXHU3M2MyXHU3M2M4XHU3M2M1XHU3'@; put 'M2I5XHU3M2I2XHU3M2I1XHU3M2I0XHU3M2ViXHU3M2JmXHU3M2M3XHU3M2JlXHU3M2MzXHU3M2M2XHU3M2I4XHU3M2NiXHU3NGVjXHU3NGVlXHU3NTJlXHU3NTQ3XHU3NTQ4XHU3NWE3XHU3NWFhXHU3Njc5XHU3NmM0XHU3NzA4XHU3NzAzXHU3NzA0XHU3NzA1XHU3NzBhXHU3NmY3XHU3NmZi'@; put 'XHU3NmZhXHU3N2U3XHU3N2U4XHU3ODA2XHU3ODExXHU3ODEyXHU3ODA1XHU3ODEwXHU3ODBmXHU3ODBlXHU3ODA5XHU3ODAzXHU3ODEzXHU3OTRhXHU3OTRjXHU3OTRiXHU3OTQ1XHU3OTQ0XHU3OWQ1XHU3OWNkXHU3OWNmXHU3OWQ2XHU3OWNlXHU3YTgwXHVmZmZkIi5zcGxpdCgiIikscD0w'@; put 'O3AhPV9bMjA3XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMDddW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjA3XVtwXV09NTI5OTIrcCxiWzUyOTkyK3BdPV9bMjA3XVtwXSk7Zm9yKF9bMjA4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHU3YTdlXHU3YWQxXHU3YjAwXHU3YjAxXHU3YzdhXHU3Yzc4XHU3Yzc5XHU3YzdmXHU3YzgwXHU3YzgxXHU3ZDAzXHU3ZDA4XHU3ZDAxXHU3ZjU4XHU3ZjkxXHU3ZjhkXHU3ZmJlXHU4MDA3XHU4MDBlXHU4MDBmXHU4MDE0XHU4MDM3XHU4MGQ4XHU4MGM3XHU4MGUwXHU4MGQxXHU4MGM4XHU4'@; put 'MGMyXHU4MGQwXHU4MGM1XHU4MGUzXHU4MGQ5XHU4MGRjXHU4MGNhXHU4MGQ1XHU4MGM5XHU4MGNmXHU4MGQ3XHU4MGU2XHU4MGNkXHU4MWZmXHU4MjIxXHU4Mjk0XHU4MmQ5XHU4MmZlXHU4MmY5XHU4MzA3XHU4MmU4XHU4MzAwXHU4MmQ1XHU4MzNhXHU4MmViXHU4MmQ2XHU4MmY0XHU4MmVj'@; put 'XHU4MmUxXHU4MmYyXHU4MmY1XHU4MzBjXHU4MmZiXHU4MmY2XHU4MmYwXHU4MmVhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MmU0XHU4MmUwXHU4MmZhXHU4MmYzXHU4MmVkXHU4Njc3XHU4Njc0XHU4NjdjXHU4NjczXHU4ODQxXHU4ODRlXHU4ODY3XHU4ODZh'@; put 'XHU4ODY5XHU4OWQzXHU4YTA0XHU4YTA3XHU4ZDcyXHU4ZmUzXHU4ZmUxXHU4ZmVlXHU4ZmUwXHU5MGYxXHU5MGJkXHU5MGJmXHU5MGQ1XHU5MGM1XHU5MGJlXHU5MGM3XHU5MGNiXHU5MGM4XHU5MWQ0XHU5MWQzXHU5NjU0XHU5NjRmXHU5NjUxXHU5NjUzXHU5NjRhXHU5NjRlXHU1MDFlXHU1'@; put 'MDA1XHU1MDA3XHU1MDEzXHU1MDIyXHU1MDMwXHU1MDFiXHU0ZmY1XHU0ZmY0XHU1MDMzXHU1MDM3XHU1MDJjXHU0ZmY2XHU0ZmY3XHU1MDE3XHU1MDFjXHU1MDIwXHU1MDI3XHU1MDM1XHU1MDJmXHU1MDMxXHU1MDBlXHU1MTVhXHU1MTk0XHU1MTkzXHU1MWNhXHU1MWM0XHU1MWM1XHU1MWM4'@; put 'XHU1MWNlXHU1MjYxXHU1MjVhXHU1MjUyXHU1MjVlXHU1MjVmXHU1MjU1XHU1MjYyXHU1MmNkXHU1MzBlXHU1MzllXHU1NTI2XHU1NGUyXHU1NTE3XHU1NTEyXHU1NGU3XHU1NGYzXHU1NGU0XHU1NTFhXHU1NGZmXHU1NTA0XHU1NTA4XHU1NGViXHU1NTExXHU1NTA1XHU1NGYxXHVmZmZkIi5z'@; put 'cGxpdCgiIikscD0wO3AhPV9bMjA4XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMDhdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjA4XVtwXV09NTMyNDgrcCxiWzUzMjQ4K3BdPV9bMjA4XVtwXSk7Zm9yKF9bMjA5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHU1NTBhXHU1NGZiXHU1NGY3XHU1NGY4XHU1NGUwXHU1NTBlXHU1NTAzXHU1NTBiXHU1NzAxXHU1NzAyXHU1N2NjXHU1ODMyXHU1N2Q1XHU1N2QyXHU1N2JhXHU1N2M2XHU1N2JkXHU1N2JjXHU1N2I4XHU1N2I2XHU1N2JmXHU1N2M3XHU1N2QwXHU1N2I5XHU1N2MxXHU1'@; put 'OTBlXHU1OTRhXHU1YTE5XHU1YTE2XHU1YTJkXHU1YTJlXHU1YTE1XHU1YTBmXHU1YTE3XHU1YTBhXHU1YTFlXHU1YTMzXHU1YjZjXHU1YmE3XHU1YmFkXHU1YmFjXHU1YzAzXHU1YzU2XHU1YzU0XHU1Y2VjXHU1Y2ZmXHU1Y2VlXHU1Y2YxXHU1Y2Y3XHU1ZDAwXHU1Y2Y5XHU1ZTI5XHU1ZTI4'@; put 'XHU1ZWE4XHU1ZWFlXHU1ZWFhXHU1ZWFjXHU1ZjMzXHU1ZjMwXHU1ZjY3XHU2MDVkXHU2MDVhXHU2MDY3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MDQxXHU2MGEyXHU2MDg4XHU2MDgwXHU2MDkyXHU2MDgxXHU2MDlkXHU2MDgzXHU2MDk1XHU2MDliXHU2MDk3'@; put 'XHU2MDg3XHU2MDljXHU2MDhlXHU2MjE5XHU2MjQ2XHU2MmYyXHU2MzEwXHU2MzU2XHU2MzJjXHU2MzQ0XHU2MzQ1XHU2MzM2XHU2MzQzXHU2M2U0XHU2MzM5XHU2MzRiXHU2MzRhXHU2MzNjXHU2MzI5XHU2MzQxXHU2MzM0XHU2MzU4XHU2MzU0XHU2MzU5XHU2MzJkXHU2MzQ3XHU2MzMzXHU2'@; put 'MzVhXHU2MzUxXHU2MzM4XHU2MzU3XHU2MzQwXHU2MzQ4XHU2NTRhXHU2NTQ2XHU2NWM2XHU2NWMzXHU2NWM0XHU2NWMyXHU2NjRhXHU2NjVmXHU2NjQ3XHU2NjUxXHU2NzEyXHU2NzEzXHU2ODFmXHU2ODFhXHU2ODQ5XHU2ODMyXHU2ODMzXHU2ODNiXHU2ODRiXHU2ODRmXHU2ODE2XHU2ODMx'@; put 'XHU2ODFjXHU2ODM1XHU2ODJiXHU2ODJkXHU2ODJmXHU2ODRlXHU2ODQ0XHU2ODM0XHU2ODFkXHU2ODEyXHU2ODE0XHU2ODI2XHU2ODI4XHU2ODJlXHU2ODRkXHU2ODNhXHU2ODI1XHU2ODIwXHU2YjJjXHU2YjJmXHU2YjJkXHU2YjMxXHU2YjM0XHU2YjZkXHU4MDgyXHU2Yjg4XHU2YmU2XHU2'@; put 'YmU0XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjA5XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMDldW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjA5XVtwXV09NTM1MDQrcCxiWzUzNTA0K3BdPV9bMjA5XVtwXSk7Zm9yKF9bMjEwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2YmU4XHU2YmUzXHU2YmUyXHU2YmU3XHU2YzI1XHU2ZDdhXHU2ZDYzXHU2ZDY0XHU2ZDc2XHU2ZDBkXHU2ZDYxXHU2ZDkyXHU2ZDU4XHU2ZDYyXHU2ZDZkXHU2ZDZmXHU2ZDkxXHU2ZDhkXHU2ZGVmXHU2ZDdmXHU2ZDg2XHU2ZDVlXHU2ZDY3XHU2'@; put 'ZDYwXHU2ZDk3XHU2ZDcwXHU2ZDdjXHU2ZDVmXHU2ZDgyXHU2ZDk4XHU2ZDJmXHU2ZDY4XHU2ZDhiXHU2ZDdlXHU2ZDgwXHU2ZDg0XHU2ZDE2XHU2ZDgzXHU2ZDdiXHU2ZDdkXHU2ZDc1XHU2ZDkwXHU3MGRjXHU3MGQzXHU3MGQxXHU3MGRkXHU3MGNiXHU3ZjM5XHU3MGUyXHU3MGQ3XHU3MGQy'@; put 'XHU3MGRlXHU3MGUwXHU3MGQ0XHU3MGNkXHU3MGM1XHU3MGM2XHU3MGM3XHU3MGRhXHU3MGNlXHU3MGUxXHU3MjQyXHU3Mjc4XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3Mjc3XHU3Mjc2XHU3MzAwXHU3MmZhXHU3MmY0XHU3MmZlXHU3MmY2XHU3MmYzXHU3MmZi'@; put 'XHU3MzAxXHU3M2QzXHU3M2Q5XHU3M2U1XHU3M2Q2XHU3M2JjXHU3M2U3XHU3M2UzXHU3M2U5XHU3M2RjXHU3M2QyXHU3M2RiXHU3M2Q0XHU3M2RkXHU3M2RhXHU3M2Q3XHU3M2Q4XHU3M2U4XHU3NGRlXHU3NGRmXHU3NGY0XHU3NGY1XHU3NTIxXHU3NTViXHU3NTVmXHU3NWIwXHU3NWMxXHU3'@; put 'NWJiXHU3NWM0XHU3NWMwXHU3NWJmXHU3NWI2XHU3NWJhXHU3NjhhXHU3NmM5XHU3NzFkXHU3NzFiXHU3NzEwXHU3NzEzXHU3NzEyXHU3NzIzXHU3NzExXHU3NzE1XHU3NzE5XHU3NzFhXHU3NzIyXHU3NzI3XHU3ODIzXHU3ODJjXHU3ODIyXHU3ODM1XHU3ODJmXHU3ODI4XHU3ODJlXHU3ODJi'@; put 'XHU3ODIxXHU3ODI5XHU3ODMzXHU3ODJhXHU3ODMxXHU3OTU0XHU3OTViXHU3OTRmXHU3OTVjXHU3OTUzXHU3OTUyXHU3OTUxXHU3OWViXHU3OWVjXHU3OWUwXHU3OWVlXHU3OWVkXHU3OWVhXHU3OWRjXHU3OWRlXHU3OWRkXHU3YTg2XHU3YTg5XHU3YTg1XHU3YThiXHU3YThjXHU3YThhXHU3'@; put 'YTg3XHU3YWQ4XHU3YjEwXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjEwXS5sZW5ndGg7KytwKTY1NTMzIT09X1syMTBdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjEwXVtwXV09NTM3NjArcCxiWzUzNzYwK3BdPV9bMjEwXVtwXSk7Zm9yKF9bMjExXT0iXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3YjA0XHU3YjEzXHU3YjA1XHU3YjBmXHU3YjA4XHU3YjBhXHU3YjBlXHU3YjA5XHU3YjEyXHU3Yzg0XHU3YzkxXHU3YzhhXHU3YzhjXHU3Yzg4XHU3YzhkXHU3Yzg1XHU3ZDFlXHU3ZDFkXHU3ZDExXHU3ZDBlXHU3ZDE4XHU3'@; put 'ZDE2XHU3ZDEzXHU3ZDFmXHU3ZDEyXHU3ZDBmXHU3ZDBjXHU3ZjVjXHU3ZjYxXHU3ZjVlXHU3ZjYwXHU3ZjVkXHU3ZjViXHU3Zjk2XHU3ZjkyXHU3ZmMzXHU3ZmMyXHU3ZmMwXHU4MDE2XHU4MDNlXHU4MDM5XHU4MGZhXHU4MGYyXHU4MGY5XHU4MGY1XHU4MTAxXHU4MGZiXHU4MTAwXHU4MjAx'@; put 'XHU4MjJmXHU4MjI1XHU4MzMzXHU4MzJkXHU4MzQ0XHU4MzE5XHU4MzUxXHU4MzI1XHU4MzU2XHU4MzNmXHU4MzQxXHU4MzI2XHU4MzFjXHU4MzIyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MzQyXHU4MzRlXHU4MzFiXHU4MzJhXHU4MzA4XHU4MzNjXHU4MzRk'@; put 'XHU4MzE2XHU4MzI0XHU4MzIwXHU4MzM3XHU4MzJmXHU4MzI5XHU4MzQ3XHU4MzQ1XHU4MzRjXHU4MzUzXHU4MzFlXHU4MzJjXHU4MzRiXHU4MzI3XHU4MzQ4XHU4NjUzXHU4NjUyXHU4NmEyXHU4NmE4XHU4Njk2XHU4NjhkXHU4NjkxXHU4NjllXHU4Njg3XHU4Njk3XHU4Njg2XHU4NjhiXHU4'@; put 'NjlhXHU4Njg1XHU4NmE1XHU4Njk5XHU4NmExXHU4NmE3XHU4Njk1XHU4Njk4XHU4NjhlXHU4NjlkXHU4NjkwXHU4Njk0XHU4ODQzXHU4ODQ0XHU4ODZkXHU4ODc1XHU4ODc2XHU4ODcyXHU4ODgwXHU4ODcxXHU4ODdmXHU4ODZmXHU4ODgzXHU4ODdlXHU4ODc0XHU4ODdjXHU4YTEyXHU4YzQ3'@; put 'XHU4YzU3XHU4YzdiXHU4Y2E0XHU4Y2EzXHU4ZDc2XHU4ZDc4XHU4ZGI1XHU4ZGI3XHU4ZGI2XHU4ZWQxXHU4ZWQzXHU4ZmZlXHU4ZmY1XHU5MDAyXHU4ZmZmXHU4ZmZiXHU5MDA0XHU4ZmZjXHU4ZmY2XHU5MGQ2XHU5MGUwXHU5MGQ5XHU5MGRhXHU5MGUzXHU5MGRmXHU5MGU1XHU5MGQ4XHU5'@; put 'MGRiXHU5MGQ3XHU5MGRjXHU5MGU0XHU5MTUwXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjExXS5sZW5ndGg7KytwKTY1NTMzIT09X1syMTFdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjExXVtwXV09NTQwMTYrcCxiWzU0MDE2K3BdPV9bMjExXVtwXSk7Zm9yKF9bMjEyXT0iXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MTRlXHU5MTRmXHU5MWQ1XHU5MWUyXHU5MWRhXHU5NjVjXHU5NjVmXHU5NmJjXHU5OGUzXHU5YWRmXHU5YjJmXHU0ZTdmXHU1MDcwXHU1MDZhXHU1MDYxXHU1MDVlXHU1MDYwXHU1MDUzXHU1MDRiXHU1'@; put 'MDVkXHU1MDcyXHU1MDQ4XHU1MDRkXHU1MDQxXHU1MDViXHU1MDRhXHU1MDYyXHU1MDE1XHU1MDQ1XHU1MDVmXHU1MDY5XHU1MDZiXHU1MDYzXHU1MDY0XHU1MDQ2XHU1MDQwXHU1MDZlXHU1MDczXHU1MDU3XHU1MDUxXHU1MWQwXHU1MjZiXHU1MjZkXHU1MjZjXHU1MjZlXHU1MmQ2XHU1MmQz'@; put 'XHU1MzJkXHU1MzljXHU1NTc1XHU1NTc2XHU1NTNjXHU1NTRkXHU1NTUwXHU1NTM0XHU1NTJhXHU1NTUxXHU1NTYyXHU1NTM2XHU1NTM1XHU1NTMwXHU1NTUyXHU1NTQ1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NTBjXHU1NTMyXHU1NTY1XHU1NTRlXHU1NTM5'@; put 'XHU1NTQ4XHU1NTJkXHU1NTNiXHU1NTQwXHU1NTRiXHU1NzBhXHU1NzA3XHU1N2ZiXHU1ODE0XHU1N2UyXHU1N2Y2XHU1N2RjXHU1N2Y0XHU1ODAwXHU1N2VkXHU1N2ZkXHU1ODA4XHU1N2Y4XHU1ODBiXHU1N2YzXHU1N2NmXHU1ODA3XHU1N2VlXHU1N2UzXHU1N2YyXHU1N2U1XHU1N2VjXHU1'@; put 'N2UxXHU1ODBlXHU1N2ZjXHU1ODEwXHU1N2U3XHU1ODAxXHU1ODBjXHU1N2YxXHU1N2U5XHU1N2YwXHU1ODBkXHU1ODA0XHU1OTVjXHU1YTYwXHU1YTU4XHU1YTU1XHU1YTY3XHU1YTVlXHU1YTM4XHU1YTM1XHU1YTZkXHU1YTUwXHU1YTVmXHU1YTY1XHU1YTZjXHU1YTUzXHU1YTY0XHU1YTU3'@; put 'XHU1YTQzXHU1YTVkXHU1YTUyXHU1YTQ0XHU1YTViXHU1YTQ4XHU1YThlXHU1YTNlXHU1YTRkXHU1YTM5XHU1YTRjXHU1YTcwXHU1YTY5XHU1YTQ3XHU1YTUxXHU1YTU2XHU1YTQyXHU1YTVjXHU1YjcyXHU1YjZlXHU1YmMxXHU1YmMwXHU1YzU5XHU1ZDFlXHU1ZDBiXHU1ZDFkXHU1ZDFhXHU1'@; put 'ZDIwXHU1ZDBjXHU1ZDI4XHU1ZDBkXHU1ZDI2XHU1ZDI1XHU1ZDBmXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjEyXS5sZW5ndGg7KytwKTY1NTMzIT09X1syMTJdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjEyXVtwXV09NTQyNzIrcCxiWzU0MjcyK3BdPV9bMjEyXVtwXSk7Zm9yKF9b'@; put 'MjEzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1ZDMwXHU1ZDEyXHU1ZDIzXHU1ZDFmXHU1ZDJlXHU1ZTNlXHU1ZTM0XHU1ZWIxXHU1ZWI0XHU1ZWI5XHU1ZWIyXHU1ZWIzXHU1ZjM2XHU1ZjM4XHU1ZjliXHU1Zjk2XHU1ZjlmXHU2'@; put 'MDhhXHU2MDkwXHU2MDg2XHU2MGJlXHU2MGIwXHU2MGJhXHU2MGQzXHU2MGQ0XHU2MGNmXHU2MGU0XHU2MGQ5XHU2MGRkXHU2MGM4XHU2MGIxXHU2MGRiXHU2MGI3XHU2MGNhXHU2MGJmXHU2MGMzXHU2MGNkXHU2MGMwXHU2MzMyXHU2MzY1XHU2MzhhXHU2MzgyXHU2MzdkXHU2M2JkXHU2Mzll'@; put 'XHU2M2FkXHU2MzlkXHU2Mzk3XHU2M2FiXHU2MzhlXHU2MzZmXHU2Mzg3XHU2MzkwXHU2MzZlXHU2M2FmXHU2Mzc1XHU2MzljXHU2MzZkXHU2M2FlXHU2MzdjXHU2M2E0XHU2MzNiXHU2MzlmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2Mzc4XHU2Mzg1XHU2Mzgx'@; put 'XHU2MzkxXHU2MzhkXHU2MzcwXHU2NTUzXHU2NWNkXHU2NjY1XHU2NjYxXHU2NjViXHU2NjU5XHU2NjVjXHU2NjYyXHU2NzE4XHU2ODc5XHU2ODg3XHU2ODkwXHU2ODljXHU2ODZkXHU2ODZlXHU2OGFlXHU2OGFiXHU2OTU2XHU2ODZmXHU2OGEzXHU2OGFjXHU2OGE5XHU2ODc1XHU2ODc0XHU2'@; put 'OGIyXHU2ODhmXHU2ODc3XHU2ODkyXHU2ODdjXHU2ODZiXHU2ODcyXHU2OGFhXHU2ODgwXHU2ODcxXHU2ODdlXHU2ODliXHU2ODk2XHU2ODhiXHU2OGEwXHU2ODg5XHU2OGE0XHU2ODc4XHU2ODdiXHU2ODkxXHU2ODhjXHU2ODhhXHU2ODdkXHU2YjM2XHU2YjMzXHU2YjM3XHU2YjM4XHU2Yjkx'@; put 'XHU2YjhmXHU2YjhkXHU2YjhlXHU2YjhjXHU2YzJhXHU2ZGMwXHU2ZGFiXHU2ZGI0XHU2ZGIzXHU2ZTc0XHU2ZGFjXHU2ZGU5XHU2ZGUyXHU2ZGI3XHU2ZGY2XHU2ZGQ0XHU2ZTAwXHU2ZGM4XHU2ZGUwXHU2ZGRmXHU2ZGQ2XHU2ZGJlXHU2ZGU1XHU2ZGRjXHU2ZGRkXHU2ZGRiXHU2ZGY0XHU2'@; put 'ZGNhXHU2ZGJkXHU2ZGVkXHU2ZGYwXHU2ZGJhXHU2ZGQ1XHU2ZGMyXHU2ZGNmXHU2ZGM5XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjEzXS5sZW5ndGg7KytwKTY1NTMzIT09X1syMTNdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjEzXVtwXV09NTQ1MjgrcCxiWzU0NTI4K3BdPV9bMjEz'@; put 'XVtwXSk7Zm9yKF9bMjE0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZGQwXHU2ZGYyXHU2ZGQzXHU2ZGZkXHU2ZGQ3XHU2ZGNkXHU2ZGUzXHU2ZGJiXHU3MGZhXHU3MTBkXHU3MGY3XHU3MTE3XHU3MGY0XHU3MTBjXHU3MGYwXHU3'@; put 'MTA0XHU3MGYzXHU3MTEwXHU3MGZjXHU3MGZmXHU3MTA2XHU3MTEzXHU3MTAwXHU3MGY4XHU3MGY2XHU3MTBiXHU3MTAyXHU3MTBlXHU3MjdlXHU3MjdiXHU3MjdjXHU3MjdmXHU3MzFkXHU3MzE3XHU3MzA3XHU3MzExXHU3MzE4XHU3MzBhXHU3MzA4XHU3MmZmXHU3MzBmXHU3MzFlXHU3Mzg4'@; put 'XHU3M2Y2XHU3M2Y4XHU3M2Y1XHU3NDA0XHU3NDAxXHU3M2ZkXHU3NDA3XHU3NDAwXHU3M2ZhXHU3M2ZjXHU3M2ZmXHU3NDBjXHU3NDBiXHU3M2Y0XHU3NDA4XHU3NTY0XHU3NTYzXHU3NWNlXHU3NWQyXHU3NWNmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3NWNi'@; put 'XHU3NWNjXHU3NWQxXHU3NWQwXHU3NjhmXHU3Njg5XHU3NmQzXHU3NzM5XHU3NzJmXHU3NzJkXHU3NzMxXHU3NzMyXHU3NzM0XHU3NzMzXHU3NzNkXHU3NzI1XHU3NzNiXHU3NzM1XHU3ODQ4XHU3ODUyXHU3ODQ5XHU3ODRkXHU3ODRhXHU3ODRjXHU3ODI2XHU3ODQ1XHU3ODUwXHU3OTY0XHU3'@; put 'OTY3XHU3OTY5XHU3OTZhXHU3OTYzXHU3OTZiXHU3OTYxXHU3OWJiXHU3OWZhXHU3OWY4XHU3OWY2XHU3OWY3XHU3YThmXHU3YTk0XHU3YTkwXHU3YjM1XHU3YjQ3XHU3YjM0XHU3YjI1XHU3YjMwXHU3YjIyXHU3YjI0XHU3YjMzXHU3YjE4XHU3YjJhXHU3YjFkXHU3YjMxXHU3YjJiXHU3YjJk'@; put 'XHU3YjJmXHU3YjMyXHU3YjM4XHU3YjFhXHU3YjIzXHU3Yzk0XHU3Yzk4XHU3Yzk2XHU3Y2EzXHU3ZDM1XHU3ZDNkXHU3ZDM4XHU3ZDM2XHU3ZDNhXHU3ZDQ1XHU3ZDJjXHU3ZDI5XHU3ZDQxXHU3ZDQ3XHU3ZDNlXHU3ZDNmXHU3ZDRhXHU3ZDNiXHU3ZDI4XHU3ZjYzXHU3Zjk1XHU3ZjljXHU3'@; put 'ZjlkXHU3ZjliXHU3ZmNhXHU3ZmNiXHU3ZmNkXHU3ZmQwXHU3ZmQxXHU3ZmM3XHU3ZmNmXHU3ZmM5XHU4MDFmXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjE0XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMTRdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjE0XVtwXV09NTQ3ODQrcCxiWzU0'@; put 'Nzg0K3BdPV9bMjE0XVtwXSk7Zm9yKF9bMjE1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MDFlXHU4MDFiXHU4MDQ3XHU4MDQzXHU4MDQ4XHU4MTE4XHU4MTI1XHU4MTE5XHU4MTFiXHU4MTJkXHU4MTFmXHU4MTJjXHU4MTFlXHU4'@; put 'MTIxXHU4MTE1XHU4MTI3XHU4MTFkXHU4MTIyXHU4MjExXHU4MjM4XHU4MjMzXHU4MjNhXHU4MjM0XHU4MjMyXHU4Mjc0XHU4MzkwXHU4M2EzXHU4M2E4XHU4MzhkXHU4MzdhXHU4MzczXHU4M2E0XHU4Mzc0XHU4MzhmXHU4MzgxXHU4Mzk1XHU4Mzk5XHU4Mzc1XHU4Mzk0XHU4M2E5XHU4Mzdk'@; put 'XHU4MzgzXHU4MzhjXHU4MzlkXHU4MzliXHU4M2FhXHU4MzhiXHU4MzdlXHU4M2E1XHU4M2FmXHU4Mzg4XHU4Mzk3XHU4M2IwXHU4MzdmXHU4M2E2XHU4Mzg3XHU4M2FlXHU4Mzc2XHU4MzlhXHU4NjU5XHU4NjU2XHU4NmJmXHU4NmI3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHU4NmMyXHU4NmMxXHU4NmM1XHU4NmJhXHU4NmIwXHU4NmM4XHU4NmI5XHU4NmIzXHU4NmI4XHU4NmNjXHU4NmI0XHU4NmJiXHU4NmJjXHU4NmMzXHU4NmJkXHU4NmJlXHU4ODUyXHU4ODg5XHU4ODk1XHU4OGE4XHU4OGEyXHU4OGFhXHU4ODlhXHU4ODkxXHU4OGExXHU4ODlmXHU4'@; put 'ODk4XHU4OGE3XHU4ODk5XHU4ODliXHU4ODk3XHU4OGE0XHU4OGFjXHU4ODhjXHU4ODkzXHU4ODhlXHU4OTgyXHU4OWQ2XHU4OWQ5XHU4OWQ1XHU4YTMwXHU4YTI3XHU4YTJjXHU4YTFlXHU4YzM5XHU4YzNiXHU4YzVjXHU4YzVkXHU4YzdkXHU4Y2E1XHU4ZDdkXHU4ZDdiXHU4ZDc5XHU4ZGJj'@; put 'XHU4ZGMyXHU4ZGI5XHU4ZGJmXHU4ZGMxXHU4ZWQ4XHU4ZWRlXHU4ZWRkXHU4ZWRjXHU4ZWQ3XHU4ZWUwXHU4ZWUxXHU5MDI0XHU5MDBiXHU5MDExXHU5MDFjXHU5MDBjXHU5MDIxXHU5MGVmXHU5MGVhXHU5MGYwXHU5MGY0XHU5MGYyXHU5MGYzXHU5MGQ0XHU5MGViXHU5MGVjXHU5MGU5XHU5'@; put 'MTU2XHU5MTU4XHU5MTVhXHU5MTUzXHU5MTU1XHU5MWVjXHU5MWY0XHU5MWYxXHU5MWYzXHU5MWY4XHU5MWU0XHU5MWY5XHU5MWVhXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjE1XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMTVdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjE1XVtwXV09'@; put 'NTUwNDArcCxiWzU1MDQwK3BdPV9bMjE1XVtwXSk7Zm9yKF9bMjE2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MWViXHU5MWY3XHU5MWU4XHU5MWVlXHU5NTdhXHU5NTg2XHU5NTg4XHU5NjdjXHU5NjZkXHU5NjZiXHU5NjcxXHU5'@; put 'NjZmXHU5NmJmXHU5NzZhXHU5ODA0XHU5OGU1XHU5OTk3XHU1MDliXHU1MDk1XHU1MDk0XHU1MDllXHU1MDhiXHU1MGEzXHU1MDgzXHU1MDhjXHU1MDhlXHU1MDlkXHU1MDY4XHU1MDljXHU1MDkyXHU1MDgyXHU1MDg3XHU1MTVmXHU1MWQ0XHU1MzEyXHU1MzExXHU1M2E0XHU1M2E3XHU1NTkx'@; put 'XHU1NWE4XHU1NWE1XHU1NWFkXHU1NTc3XHU1NjQ1XHU1NWEyXHU1NTkzXHU1NTg4XHU1NThmXHU1NWI1XHU1NTgxXHU1NWEzXHU1NTkyXHU1NWE0XHU1NTdkXHU1NThjXHU1NWE2XHU1NTdmXHU1NTk1XHU1NWExXHU1NThlXHU1NzBjXHU1ODI5XHU1ODM3XHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHU1ODE5XHU1ODFlXHU1ODI3XHU1ODIzXHU1ODI4XHU1N2Y1XHU1ODQ4XHU1ODI1XHU1ODFjXHU1ODFiXHU1ODMzXHU1ODNmXHU1ODM2XHU1ODJlXHU1ODM5XHU1ODM4XHU1ODJkXHU1ODJjXHU1ODNiXHU1OTYxXHU1YWFmXHU1YTk0XHU1YTlmXHU1YTdhXHU1'@; put 'YWEyXHU1YTllXHU1YTc4XHU1YWE2XHU1YTdjXHU1YWE1XHU1YWFjXHU1YTk1XHU1YWFlXHU1YTM3XHU1YTg0XHU1YThhXHU1YTk3XHU1YTgzXHU1YThiXHU1YWE5XHU1YTdiXHU1YTdkXHU1YThjXHU1YTljXHU1YThmXHU1YTkzXHU1YTlkXHU1YmVhXHU1YmNkXHU1YmNiXHU1YmQ0XHU1YmQx'@; put 'XHU1YmNhXHU1YmNlXHU1YzBjXHU1YzMwXHU1ZDM3XHU1ZDQzXHU1ZDZiXHU1ZDQxXHU1ZDRiXHU1ZDNmXHU1ZDM1XHU1ZDUxXHU1ZDRlXHU1ZDU1XHU1ZDMzXHU1ZDNhXHU1ZDUyXHU1ZDNkXHU1ZDMxXHU1ZDU5XHU1ZDQyXHU1ZDM5XHU1ZDQ5XHU1ZDM4XHU1ZDNjXHU1ZDMyXHU1ZDM2XHU1'@; put 'ZDQwXHU1ZDQ1XHU1ZTQ0XHU1ZTQxXHU1ZjU4XHU1ZmE2XHU1ZmE1XHU1ZmFiXHU2MGM5XHU2MGI5XHU2MGNjXHU2MGUyXHU2MGNlXHU2MGM0XHU2MTE0XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjE2XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMTZdW3BdLmNoYXJDb2RlQXQoMCkmJihE'@; put 'W19bMjE2XVtwXV09NTUyOTYrcCxiWzU1Mjk2K3BdPV9bMjE2XVtwXSk7Zm9yKF9bMjE3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MGYyXHU2MTBhXHU2MTE2XHU2MTA1XHU2MGY1XHU2MTEzXHU2MGY4XHU2MGZjXHU2MGZlXHU2'@; put 'MGMxXHU2MTAzXHU2MTE4XHU2MTFkXHU2MTEwXHU2MGZmXHU2MTA0XHU2MTBiXHU2MjRhXHU2Mzk0XHU2M2IxXHU2M2IwXHU2M2NlXHU2M2U1XHU2M2U4XHU2M2VmXHU2M2MzXHU2NDlkXHU2M2YzXHU2M2NhXHU2M2UwXHU2M2Y2XHU2M2Q1XHU2M2YyXHU2M2Y1XHU2NDYxXHU2M2RmXHU2M2Jl'@; put 'XHU2M2RkXHU2M2RjXHU2M2M0XHU2M2Q4XHU2M2QzXHU2M2MyXHU2M2M3XHU2M2NjXHU2M2NiXHU2M2M4XHU2M2YwXHU2M2Q3XHU2M2Q5XHU2NTMyXHU2NTY3XHU2NTZhXHU2NTY0XHU2NTVjXHU2NTY4XHU2NTY1XHU2NThjXHU2NTlkXHU2NTllXHU2NWFlXHU2NWQwXHU2NWQyXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2NjdjXHU2NjZjXHU2NjdiXHU2NjgwXHU2NjcxXHU2Njc5XHU2NjZhXHU2NjcyXHU2NzAxXHU2OTBjXHU2OGQzXHU2OTA0XHU2OGRjXHU2OTJhXHU2OGVjXHU2OGVhXHU2OGYxXHU2OTBmXHU2OGQ2XHU2OGY3XHU2OGViXHU2OGU0XHU2'@; put 'OGY2XHU2OTEzXHU2OTEwXHU2OGYzXHU2OGUxXHU2OTA3XHU2OGNjXHU2OTA4XHU2OTcwXHU2OGI0XHU2OTExXHU2OGVmXHU2OGM2XHU2OTE0XHU2OGY4XHU2OGQwXHU2OGZkXHU2OGZjXHU2OGU4XHU2OTBiXHU2OTBhXHU2OTE3XHU2OGNlXHU2OGM4XHU2OGRkXHU2OGRlXHU2OGU2XHU2OGY0'@; put 'XHU2OGQxXHU2OTA2XHU2OGQ0XHU2OGU5XHU2OTE1XHU2OTI1XHU2OGM3XHU2YjM5XHU2YjNiXHU2YjNmXHU2YjNjXHU2Yjk0XHU2Yjk3XHU2Yjk5XHU2Yjk1XHU2YmJkXHU2YmYwXHU2YmYyXHU2YmYzXHU2YzMwXHU2ZGZjXHU2ZTQ2XHU2ZTQ3XHU2ZTFmXHU2ZTQ5XHU2ZTg4XHU2ZTNjXHU2'@; put 'ZTNkXHU2ZTQ1XHU2ZTYyXHU2ZTJiXHU2ZTNmXHU2ZTQxXHU2ZTVkXHU2ZTczXHU2ZTFjXHU2ZTMzXHU2ZTRiXHU2ZTQwXHU2ZTUxXHU2ZTNiXHU2ZTAzXHU2ZTJlXHU2ZTVlXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjE3XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMTddW3BdLmNoYXJD'@; put 'b2RlQXQoMCkmJihEW19bMjE3XVtwXV09NTU1NTIrcCxiWzU1NTUyK3BdPV9bMjE3XVtwXSk7Zm9yKF9bMjE4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZTY4XHU2ZTVjXHU2ZTYxXHU2ZTMxXHU2ZTI4XHU2ZTYwXHU2ZTcxXHU2'@; put 'ZTZiXHU2ZTM5XHU2ZTIyXHU2ZTMwXHU2ZTUzXHU2ZTY1XHU2ZTI3XHU2ZTc4XHU2ZTY0XHU2ZTc3XHU2ZTU1XHU2ZTc5XHU2ZTUyXHU2ZTY2XHU2ZTM1XHU2ZTM2XHU2ZTVhXHU3MTIwXHU3MTFlXHU3MTJmXHU3MGZiXHU3MTJlXHU3MTMxXHU3MTIzXHU3MTI1XHU3MTIyXHU3MTMyXHU3MTFm'@; put 'XHU3MTI4XHU3MTNhXHU3MTFiXHU3MjRiXHU3MjVhXHU3Mjg4XHU3Mjg5XHU3Mjg2XHU3Mjg1XHU3MjhiXHU3MzEyXHU3MzBiXHU3MzMwXHU3MzIyXHU3MzMxXHU3MzMzXHU3MzI3XHU3MzMyXHU3MzJkXHU3MzI2XHU3MzIzXHU3MzM1XHU3MzBjXHU3NDJlXHU3NDJjXHU3NDMwXHU3NDJiXHU3'@; put 'NDE2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3NDFhXHU3NDIxXHU3NDJkXHU3NDMxXHU3NDI0XHU3NDIzXHU3NDFkXHU3NDI5XHU3NDIwXHU3NDMyXHU3NGZiXHU3NTJmXHU3NTZmXHU3NTZjXHU3NWU3XHU3NWRhXHU3NWUxXHU3NWU2XHU3NWRkXHU3NWRmXHU3'@; put 'NWU0XHU3NWQ3XHU3Njk1XHU3NjkyXHU3NmRhXHU3NzQ2XHU3NzQ3XHU3NzQ0XHU3NzRkXHU3NzQ1XHU3NzRhXHU3NzRlXHU3NzRiXHU3NzRjXHU3N2RlXHU3N2VjXHU3ODYwXHU3ODY0XHU3ODY1XHU3ODVjXHU3ODZkXHU3ODcxXHU3ODZhXHU3ODZlXHU3ODcwXHU3ODY5XHU3ODY4XHU3ODVl'@; put 'XHU3ODYyXHU3OTc0XHU3OTczXHU3OTcyXHU3OTcwXHU3YTAyXHU3YTBhXHU3YTAzXHU3YTBjXHU3YTA0XHU3YTk5XHU3YWU2XHU3YWU0XHU3YjRhXHU3YjNiXHU3YjQ0XHU3YjQ4XHU3YjRjXHU3YjRlXHU3YjQwXHU3YjU4XHU3YjQ1XHU3Y2EyXHU3YzllXHU3Y2E4XHU3Y2ExXHU3ZDU4XHU3'@; put 'ZDZmXHU3ZDYzXHU3ZDUzXHU3ZDU2XHU3ZDY3XHU3ZDZhXHU3ZDRmXHU3ZDZkXHU3ZDVjXHU3ZDZiXHU3ZDUyXHU3ZDU0XHU3ZDY5XHU3ZDUxXHU3ZDVmXHU3ZDRlXHU3ZjNlXHU3ZjNmXHU3ZjY1XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjE4XS5sZW5ndGg7KytwKTY1NTMzIT09X1sy'@; put 'MThdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjE4XVtwXV09NTU4MDgrcCxiWzU1ODA4K3BdPV9bMjE4XVtwXSk7Zm9yKF9bMjE5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZjY2XHU3ZmEyXHU3ZmEwXHU3ZmExXHU3ZmQ3XHU4'@; put 'MDUxXHU4MDRmXHU4MDUwXHU4MGZlXHU4MGQ0XHU4MTQzXHU4MTRhXHU4MTUyXHU4MTRmXHU4MTQ3XHU4MTNkXHU4MTRkXHU4MTNhXHU4MWU2XHU4MWVlXHU4MWY3XHU4MWY4XHU4MWY5XHU4MjA0XHU4MjNjXHU4MjNkXHU4MjNmXHU4Mjc1XHU4MzNiXHU4M2NmXHU4M2Y5XHU4NDIzXHU4M2Mw'@; put 'XHU4M2U4XHU4NDEyXHU4M2U3XHU4M2U0XHU4M2ZjXHU4M2Y2XHU4NDEwXHU4M2M2XHU4M2M4XHU4M2ViXHU4M2UzXHU4M2JmXHU4NDAxXHU4M2RkXHU4M2U1XHU4M2Q4XHU4M2ZmXHU4M2UxXHU4M2NiXHU4M2NlXHU4M2Q2XHU4M2Y1XHU4M2M5XHU4NDA5XHU4NDBmXHU4M2RlXHU4NDExXHU4'@; put 'NDA2XHU4M2MyXHU4M2YzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4M2Q1XHU4M2ZhXHU4M2M3XHU4M2QxXHU4M2VhXHU4NDEzXHU4M2MzXHU4M2VjXHU4M2VlXHU4M2M0XHU4M2ZiXHU4M2Q3XHU4M2UyXHU4NDFiXHU4M2RiXHU4M2ZlXHU4NmQ4XHU4NmUyXHU4'@; put 'NmU2XHU4NmQzXHU4NmUzXHU4NmRhXHU4NmVhXHU4NmRkXHU4NmViXHU4NmRjXHU4NmVjXHU4NmU5XHU4NmQ3XHU4NmU4XHU4NmQxXHU4ODQ4XHU4ODU2XHU4ODU1XHU4OGJhXHU4OGQ3XHU4OGI5XHU4OGI4XHU4OGMwXHU4OGJlXHU4OGI2XHU4OGJjXHU4OGI3XHU4OGJkXHU4OGIyXHU4OTAx'@; put 'XHU4OGM5XHU4OTk1XHU4OTk4XHU4OTk3XHU4OWRkXHU4OWRhXHU4OWRiXHU4YTRlXHU4YTRkXHU4YTM5XHU4YTU5XHU4YTQwXHU4YTU3XHU4YTU4XHU4YTQ0XHU4YTQ1XHU4YTUyXHU4YTQ4XHU4YTUxXHU4YTRhXHU4YTRjXHU4YTRmXHU4YzVmXHU4YzgxXHU4YzgwXHU4Y2JhXHU4Y2JlXHU4'@; put 'Y2IwXHU4Y2I5XHU4Y2I1XHU4ZDg0XHU4ZDgwXHU4ZDg5XHU4ZGQ4XHU4ZGQzXHU4ZGNkXHU4ZGM3XHU4ZGQ2XHU4ZGRjXHU4ZGNmXHU4ZGQ1XHU4ZGQ5XHU4ZGM4XHU4ZGQ3XHU4ZGM1XHU4ZWVmXHU4ZWY3XHU4ZWZhXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjE5XS5sZW5ndGg7Kytw'@; put 'KTY1NTMzIT09X1syMTldW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjE5XVtwXV09NTYwNjQrcCxiWzU2MDY0K3BdPV9bMjE5XVtwXSk7Zm9yKF9bMjIwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4ZWY5XHU4ZWU2XHU4ZWVlXHU4'@; put 'ZWU1XHU4ZWY1XHU4ZWU3XHU4ZWU4XHU4ZWY2XHU4ZWViXHU4ZWYxXHU4ZWVjXHU4ZWY0XHU4ZWU5XHU5MDJkXHU5MDM0XHU5MDJmXHU5MTA2XHU5MTJjXHU5MTA0XHU5MGZmXHU5MGZjXHU5MTA4XHU5MGY5XHU5MGZiXHU5MTAxXHU5MTAwXHU5MTA3XHU5MTA1XHU5MTAzXHU5MTYxXHU5MTY0'@; put 'XHU5MTVmXHU5MTYyXHU5MTYwXHU5MjAxXHU5MjBhXHU5MjI1XHU5MjAzXHU5MjFhXHU5MjI2XHU5MjBmXHU5MjBjXHU5MjAwXHU5MjEyXHU5MWZmXHU5MWZkXHU5MjA2XHU5MjA0XHU5MjI3XHU5MjAyXHU5MjFjXHU5MjI0XHU5MjE5XHU5MjE3XHU5MjA1XHU5MjE2XHU5NTdiXHU5NThkXHU5'@; put 'NThjXHU5NTkwXHU5Njg3XHU5NjdlXHU5Njg4XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5Njg5XHU5NjgzXHU5NjgwXHU5NmMyXHU5NmM4XHU5NmMzXHU5NmYxXHU5NmYwXHU5NzZjXHU5NzcwXHU5NzZlXHU5ODA3XHU5OGE5XHU5OGViXHU5Y2U2XHU5ZWY5XHU0'@; put 'ZTgzXHU0ZTg0XHU0ZWI2XHU1MGJkXHU1MGJmXHU1MGM2XHU1MGFlXHU1MGM0XHU1MGNhXHU1MGI0XHU1MGM4XHU1MGMyXHU1MGIwXHU1MGMxXHU1MGJhXHU1MGIxXHU1MGNiXHU1MGM5XHU1MGI2XHU1MGI4XHU1MWQ3XHU1MjdhXHU1Mjc4XHU1MjdiXHU1MjdjXHU1NWMzXHU1NWRiXHU1NWNj'@; put 'XHU1NWQwXHU1NWNiXHU1NWNhXHU1NWRkXHU1NWMwXHU1NWQ0XHU1NWM0XHU1NWU5XHU1NWJmXHU1NWQyXHU1NThkXHU1NWNmXHU1NWQ1XHU1NWUyXHU1NWQ2XHU1NWM4XHU1NWYyXHU1NWNkXHU1NWQ5XHU1NWMyXHU1NzE0XHU1ODUzXHU1ODY4XHU1ODY0XHU1ODRmXHU1ODRkXHU1ODQ5XHU1'@; put 'ODZmXHU1ODU1XHU1ODRlXHU1ODVkXHU1ODU5XHU1ODY1XHU1ODViXHU1ODNkXHU1ODYzXHU1ODcxXHU1OGZjXHU1YWM3XHU1YWM0XHU1YWNiXHU1YWJhXHU1YWI4XHU1YWIxXHU1YWI1XHU1YWIwXHU1YWJmXHU1YWM4XHU1YWJiXHU1YWM2XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjIw'@; put 'XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMjBdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjIwXVtwXV09NTYzMjArcCxiWzU2MzIwK3BdPV9bMjIwXVtwXSk7Zm9yKF9bMjIxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1YWI3XHU1'@; put 'YWMwXHU1YWNhXHU1YWI0XHU1YWI2XHU1YWNkXHU1YWI5XHU1YTkwXHU1YmQ2XHU1YmQ4XHU1YmQ5XHU1YzFmXHU1YzMzXHU1ZDcxXHU1ZDYzXHU1ZDRhXHU1ZDY1XHU1ZDcyXHU1ZDZjXHU1ZDVlXHU1ZDY4XHU1ZDY3XHU1ZDYyXHU1ZGYwXHU1ZTRmXHU1ZTRlXHU1ZTRhXHU1ZTRkXHU1ZTRi'@; put 'XHU1ZWM1XHU1ZWNjXHU1ZWM2XHU1ZWNiXHU1ZWM3XHU1ZjQwXHU1ZmFmXHU1ZmFkXHU2MGY3XHU2MTQ5XHU2MTRhXHU2MTJiXHU2MTQ1XHU2MTM2XHU2MTMyXHU2MTJlXHU2MTQ2XHU2MTJmXHU2MTRmXHU2MTI5XHU2MTQwXHU2MjIwXHU5MTY4XHU2MjIzXHU2MjI1XHU2MjI0XHU2M2M1XHU2'@; put 'M2YxXHU2M2ViXHU2NDEwXHU2NDEyXHU2NDA5XHU2NDIwXHU2NDI0XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2NDMzXHU2NDQzXHU2NDFmXHU2NDE1XHU2NDE4XHU2NDM5XHU2NDM3XHU2NDIyXHU2NDIzXHU2NDBjXHU2NDI2XHU2NDMwXHU2NDI4XHU2NDQxXHU2'@; put 'NDM1XHU2NDJmXHU2NDBhXHU2NDFhXHU2NDQwXHU2NDI1XHU2NDI3XHU2NDBiXHU2M2U3XHU2NDFiXHU2NDJlXHU2NDIxXHU2NDBlXHU2NTZmXHU2NTkyXHU2NWQzXHU2Njg2XHU2NjhjXHU2Njk1XHU2NjkwXHU2NjhiXHU2NjhhXHU2Njk5XHU2Njk0XHU2Njc4XHU2NzIwXHU2OTY2XHU2OTVm'@; put 'XHU2OTM4XHU2OTRlXHU2OTYyXHU2OTcxXHU2OTNmXHU2OTQ1XHU2OTZhXHU2OTM5XHU2OTQyXHU2OTU3XHU2OTU5XHU2OTdhXHU2OTQ4XHU2OTQ5XHU2OTM1XHU2OTZjXHU2OTMzXHU2OTNkXHU2OTY1XHU2OGYwXHU2OTc4XHU2OTM0XHU2OTY5XHU2OTQwXHU2OTZmXHU2OTQ0XHU2OTc2XHU2'@; put 'OTU4XHU2OTQxXHU2OTc0XHU2OTRjXHU2OTNiXHU2OTRiXHU2OTM3XHU2OTVjXHU2OTRmXHU2OTUxXHU2OTMyXHU2OTUyXHU2OTJmXHU2OTdiXHU2OTNjXHU2YjQ2XHU2YjQ1XHU2YjQzXHU2YjQyXHU2YjQ4XHU2YjQxXHU2YjliXHVmYTBkXHU2YmZiXHU2YmZjXHVmZmZkIi5zcGxpdCgiIiks'@; put 'cD0wO3AhPV9bMjIxXS5sZW5ndGg7KytwKTY1NTMzIT09X1syMjFdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjIxXVtwXV09NTY1NzYrcCxiWzU2NTc2K3BdPV9bMjIxXVtwXSk7Zm9yKF9bMjIyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHU2YmY5XHU2YmY3XHU2YmY4XHU2ZTliXHU2ZWQ2XHU2ZWM4XHU2ZThmXHU2ZWMwXHU2ZTlmXHU2ZTkzXHU2ZTk0XHU2ZWEwXHU2ZWIxXHU2ZWI5XHU2ZWM2XHU2ZWQyXHU2ZWJkXHU2ZWMxXHU2ZTllXHU2ZWM5XHU2ZWI3XHU2ZWIwXHU2ZWNkXHU2ZWE2XHU2ZWNmXHU2ZWIyXHU2ZWJl'@; put 'XHU2ZWMzXHU2ZWRjXHU2ZWQ4XHU2ZTk5XHU2ZTkyXHU2ZThlXHU2ZThkXHU2ZWE0XHU2ZWExXHU2ZWJmXHU2ZWIzXHU2ZWQwXHU2ZWNhXHU2ZTk3XHU2ZWFlXHU2ZWEzXHU3MTQ3XHU3MTU0XHU3MTUyXHU3MTYzXHU3MTYwXHU3MTQxXHU3MTVkXHU3MTYyXHU3MTcyXHU3MTc4XHU3MTZhXHU3'@; put 'MTYxXHU3MTQyXHU3MTU4XHU3MTQzXHU3MTRiXHU3MTcwXHU3MTVmXHU3MTUwXHU3MTUzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3MTQ0XHU3MTRkXHU3MTVhXHU3MjRmXHU3MjhkXHU3MjhjXHU3MjkxXHU3MjkwXHU3MjhlXHU3MzNjXHU3MzQyXHU3MzNiXHU3'@; put 'MzNhXHU3MzQwXHU3MzRhXHU3MzQ5XHU3NDQ0XHU3NDRhXHU3NDRiXHU3NDUyXHU3NDUxXHU3NDU3XHU3NDQwXHU3NDRmXHU3NDUwXHU3NDRlXHU3NDQyXHU3NDQ2XHU3NDRkXHU3NDU0XHU3NGUxXHU3NGZmXHU3NGZlXHU3NGZkXHU3NTFkXHU3NTc5XHU3NTc3XHU2OTgzXHU3NWVmXHU3NjBm'@; put 'XHU3NjAzXHU3NWY3XHU3NWZlXHU3NWZjXHU3NWY5XHU3NWY4XHU3NjEwXHU3NWZiXHU3NWY2XHU3NWVkXHU3NWY1XHU3NWZkXHU3Njk5XHU3NmI1XHU3NmRkXHU3NzU1XHU3NzVmXHU3NzYwXHU3NzUyXHU3NzU2XHU3NzVhXHU3NzY5XHU3NzY3XHU3NzU0XHU3NzU5XHU3NzZkXHU3N2UwXHU3'@; put 'ODg3XHU3ODlhXHU3ODk0XHU3ODhmXHU3ODg0XHU3ODk1XHU3ODg1XHU3ODg2XHU3OGExXHU3ODgzXHU3ODc5XHU3ODk5XHU3ODgwXHU3ODk2XHU3ODdiXHU3OTdjXHU3OTgyXHU3OTdkXHU3OTc5XHU3YTExXHU3YTE4XHU3YTE5XHU3YTEyXHU3YTE3XHU3YTE1XHU3YTIyXHU3YTEzXHVmZmZk'@; put 'Ii5zcGxpdCgiIikscD0wO3AhPV9bMjIyXS5sZW5ndGg7KytwKTY1NTMzIT09X1syMjJdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjIyXVtwXV09NTY4MzIrcCxiWzU2ODMyK3BdPV9bMjIyXVtwXSk7Zm9yKF9bMjIzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHU3YTFiXHU3YTEwXHU3YWEzXHU3YWEyXHU3YTllXHU3YWViXHU3YjY2XHU3YjY0XHU3YjZkXHU3Yjc0XHU3YjY5XHU3YjcyXHU3YjY1XHU3YjczXHU3YjcxXHU3YjcwXHU3YjYxXHU3Yjc4XHU3Yjc2XHU3YjYzXHU3Y2IyXHU3Y2I0XHU3Y2FmXHU3ZDg4XHU3ZDg2'@; put 'XHU3ZDgwXHU3ZDhkXHU3ZDdmXHU3ZDg1XHU3ZDdhXHU3ZDhlXHU3ZDdiXHU3ZDgzXHU3ZDdjXHU3ZDhjXHU3ZDk0XHU3ZDg0XHU3ZDdkXHU3ZDkyXHU3ZjZkXHU3ZjZiXHU3ZjY3XHU3ZjY4XHU3ZjZjXHU3ZmE2XHU3ZmE1XHU3ZmE3XHU3ZmRiXHU3ZmRjXHU4MDIxXHU4MTY0XHU4MTYwXHU4'@; put 'MTc3XHU4MTVjXHU4MTY5XHU4MTViXHU4MTYyXHU4MTcyXHU2NzIxXHU4MTVlXHU4MTc2XHU4MTY3XHU4MTZmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MTQ0XHU4MTYxXHU4MjFkXHU4MjQ5XHU4MjQ0XHU4MjQwXHU4MjQyXHU4MjQ1XHU4NGYxXHU4NDNmXHU4'@; put 'NDU2XHU4NDc2XHU4NDc5XHU4NDhmXHU4NDhkXHU4NDY1XHU4NDUxXHU4NDQwXHU4NDg2XHU4NDY3XHU4NDMwXHU4NDRkXHU4NDdkXHU4NDVhXHU4NDU5XHU4NDc0XHU4NDczXHU4NDVkXHU4NTA3XHU4NDVlXHU4NDM3XHU4NDNhXHU4NDM0XHU4NDdhXHU4NDQzXHU4NDc4XHU4NDMyXHU4NDQ1'@; put 'XHU4NDI5XHU4M2Q5XHU4NDRiXHU4NDJmXHU4NDQyXHU4NDJkXHU4NDVmXHU4NDcwXHU4NDM5XHU4NDRlXHU4NDRjXHU4NDUyXHU4NDZmXHU4NGM1XHU4NDhlXHU4NDNiXHU4NDQ3XHU4NDM2XHU4NDMzXHU4NDY4XHU4NDdlXHU4NDQ0XHU4NDJiXHU4NDYwXHU4NDU0XHU4NDZlXHU4NDUwXHU4'@; put 'NzBiXHU4NzA0XHU4NmY3XHU4NzBjXHU4NmZhXHU4NmQ2XHU4NmY1XHU4NzRkXHU4NmY4XHU4NzBlXHU4NzA5XHU4NzAxXHU4NmY2XHU4NzBkXHU4NzA1XHU4OGQ2XHU4OGNiXHU4OGNkXHU4OGNlXHU4OGRlXHU4OGRiXHU4OGRhXHU4OGNjXHU4OGQwXHU4OTg1XHU4OTliXHU4OWRmXHU4OWU1'@; put 'XHU4OWU0XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjIzXS5sZW5ndGg7KytwKTY1NTMzIT09X1syMjNdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjIzXVtwXV09NTcwODgrcCxiWzU3MDg4K3BdPV9bMjIzXVtwXSk7Zm9yKF9bMjI0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4OWUxXHU4OWUwXHU4OWUyXHU4OWRjXHU4OWU2XHU4YTc2XHU4YTg2XHU4YTdmXHU4YTYxXHU4YTNmXHU4YTc3XHU4YTgyXHU4YTg0XHU4YTc1XHU4YTgzXHU4YTgxXHU4YTc0XHU4YTdhXHU4YzNjXHU4YzRiXHU4YzRhXHU4YzY1XHU4YzY0'@; put 'XHU4YzY2XHU4Yzg2XHU4Yzg0XHU4Yzg1XHU4Y2NjXHU4ZDY4XHU4ZDY5XHU4ZDkxXHU4ZDhjXHU4ZDhlXHU4ZDhmXHU4ZDhkXHU4ZDkzXHU4ZDk0XHU4ZDkwXHU4ZDkyXHU4ZGYwXHU4ZGUwXHU4ZGVjXHU4ZGYxXHU4ZGVlXHU4ZGQwXHU4ZGU5XHU4ZGUzXHU4ZGUyXHU4ZGU3XHU4ZGYyXHU4'@; put 'ZGViXHU4ZGY0XHU4ZjA2XHU4ZWZmXHU4ZjAxXHU4ZjAwXHU4ZjA1XHU4ZjA3XHU4ZjA4XHU4ZjAyXHU4ZjBiXHU5MDUyXHU5MDNmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MDQ0XHU5MDQ5XHU5MDNkXHU5MTEwXHU5MTBkXHU5MTBmXHU5MTExXHU5MTE2XHU5'@; put 'MTE0XHU5MTBiXHU5MTBlXHU5MTZlXHU5MTZmXHU5MjQ4XHU5MjUyXHU5MjMwXHU5MjNhXHU5MjY2XHU5MjMzXHU5MjY1XHU5MjVlXHU5MjgzXHU5MjJlXHU5MjRhXHU5MjQ2XHU5MjZkXHU5MjZjXHU5MjRmXHU5MjYwXHU5MjY3XHU5MjZmXHU5MjM2XHU5MjYxXHU5MjcwXHU5MjMxXHU5MjU0'@; put 'XHU5MjYzXHU5MjUwXHU5MjcyXHU5MjRlXHU5MjUzXHU5MjRjXHU5MjU2XHU5MjMyXHU5NTlmXHU5NTljXHU5NTllXHU5NTliXHU5NjkyXHU5NjkzXHU5NjkxXHU5Njk3XHU5NmNlXHU5NmZhXHU5NmZkXHU5NmY4XHU5NmY1XHU5NzczXHU5Nzc3XHU5Nzc4XHU5NzcyXHU5ODBmXHU5ODBkXHU5'@; put 'ODBlXHU5OGFjXHU5OGY2XHU5OGY5XHU5OWFmXHU5OWIyXHU5OWIwXHU5OWI1XHU5YWFkXHU5YWFiXHU5YjViXHU5Y2VhXHU5Y2VkXHU5Y2U3XHU5ZTgwXHU5ZWZkXHU1MGU2XHU1MGQ0XHU1MGQ3XHU1MGU4XHU1MGYzXHU1MGRiXHU1MGVhXHU1MGRkXHU1MGU0XHU1MGQzXHU1MGVjXHU1MGYw'@; put 'XHU1MGVmXHU1MGUzXHU1MGUwXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjI0XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMjRdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjI0XVtwXV09NTczNDQrcCxiWzU3MzQ0K3BdPV9bMjI0XVtwXSk7Zm9yKF9bMjI1XT0iXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1MWQ4XHU1MjgwXHU1MjgxXHU1MmU5XHU1MmViXHU1MzMwXHU1M2FjXHU1NjI3XHU1NjE1XHU1NjBjXHU1NjEyXHU1NWZjXHU1NjBmXHU1NjFjXHU1NjAxXHU1NjEzXHU1NjAyXHU1NWZhXHU1NjFkXHU1NjA0XHU1NWZm'@; put 'XHU1NWY5XHU1ODg5XHU1ODdjXHU1ODkwXHU1ODk4XHU1ODg2XHU1ODgxXHU1ODdmXHU1ODc0XHU1ODhiXHU1ODdhXHU1ODg3XHU1ODkxXHU1ODhlXHU1ODc2XHU1ODgyXHU1ODg4XHU1ODdiXHU1ODk0XHU1ODhmXHU1OGZlXHU1OTZiXHU1YWRjXHU1YWVlXHU1YWU1XHU1YWQ1XHU1YWVhXHU1'@; put 'YWRhXHU1YWVkXHU1YWViXHU1YWYzXHU1YWUyXHU1YWUwXHU1YWRiXHU1YWVjXHU1YWRlXHU1YWRkXHU1YWQ5XHU1YWU4XHU1YWRmXHU1Yjc3XHU1YmUwXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1YmUzXHU1YzYzXHU1ZDgyXHU1ZDgwXHU1ZDdkXHU1ZDg2XHU1'@; put 'ZDdhXHU1ZDgxXHU1ZDc3XHU1ZDhhXHU1ZDg5XHU1ZDg4XHU1ZDdlXHU1ZDdjXHU1ZDhkXHU1ZDc5XHU1ZDdmXHU1ZTU4XHU1ZTU5XHU1ZTUzXHU1ZWQ4XHU1ZWQxXHU1ZWQ3XHU1ZWNlXHU1ZWRjXHU1ZWQ1XHU1ZWQ5XHU1ZWQyXHU1ZWQ0XHU1ZjQ0XHU1ZjQzXHU1ZjZmXHU1ZmI2XHU2MTJj'@; put 'XHU2MTI4XHU2MTQxXHU2MTVlXHU2MTcxXHU2MTczXHU2MTUyXHU2MTUzXHU2MTcyXHU2MTZjXHU2MTgwXHU2MTc0XHU2MTU0XHU2MTdhXHU2MTViXHU2MTY1XHU2MTNiXHU2MTZhXHU2MTYxXHU2MTU2XHU2MjI5XHU2MjI3XHU2MjJiXHU2NDJiXHU2NDRkXHU2NDViXHU2NDVkXHU2NDc0XHU2'@; put 'NDc2XHU2NDcyXHU2NDczXHU2NDdkXHU2NDc1XHU2NDY2XHU2NGE2XHU2NDRlXHU2NDgyXHU2NDVlXHU2NDVjXHU2NDRiXHU2NDUzXHU2NDYwXHU2NDUwXHU2NDdmXHU2NDNmXHU2NDZjXHU2NDZiXHU2NDU5XHU2NDY1XHU2NDc3XHU2NTczXHU2NWEwXHU2NmExXHU2NmEwXHU2NjlmXHU2NzA1'@; put 'XHU2NzA0XHU2NzIyXHU2OWIxXHU2OWI2XHU2OWM5XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjI1XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMjVdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjI1XVtwXV09NTc2MDArcCxiWzU3NjAwK3BdPV9bMjI1XVtwXSk7Zm9yKF9bMjI2XT0iXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2OWEwXHU2OWNlXHU2OTk2XHU2OWIwXHU2OWFjXHU2OWJjXHU2OTkxXHU2OTk5XHU2OThlXHU2OWE3XHU2OThkXHU2OWE5XHU2OWJlXHU2OWFmXHU2OWJmXHU2OWM0XHU2OWJkXHU2OWE0XHU2OWQ0'@; put 'XHU2OWI5XHU2OWNhXHU2OTlhXHU2OWNmXHU2OWIzXHU2OTkzXHU2OWFhXHU2OWExXHU2OTllXHU2OWQ5XHU2OTk3XHU2OTkwXHU2OWMyXHU2OWI1XHU2OWE1XHU2OWM2XHU2YjRhXHU2YjRkXHU2YjRiXHU2YjllXHU2YjlmXHU2YmEwXHU2YmMzXHU2YmM0XHU2YmZlXHU2ZWNlXHU2ZWY1XHU2'@; put 'ZWYxXHU2ZjAzXHU2ZjI1XHU2ZWY4XHU2ZjM3XHU2ZWZiXHU2ZjJlXHU2ZjA5XHU2ZjRlXHU2ZjE5XHU2ZjFhXHU2ZjI3XHU2ZjE4XHU2ZjNiXHU2ZjEyXHU2ZWVkXHU2ZjBhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZjM2XHU2ZjczXHU2ZWY5XHU2ZWVlXHU2'@; put 'ZjJkXHU2ZjQwXHU2ZjMwXHU2ZjNjXHU2ZjM1XHU2ZWViXHU2ZjA3XHU2ZjBlXHU2ZjQzXHU2ZjA1XHU2ZWZkXHU2ZWY2XHU2ZjM5XHU2ZjFjXHU2ZWZjXHU2ZjNhXHU2ZjFmXHU2ZjBkXHU2ZjFlXHU2ZjA4XHU2ZjIxXHU3MTg3XHU3MTkwXHU3MTg5XHU3MTgwXHU3MTg1XHU3MTgyXHU3MThm'@; put 'XHU3MTdiXHU3MTg2XHU3MTgxXHU3MTk3XHU3MjQ0XHU3MjUzXHU3Mjk3XHU3Mjk1XHU3MjkzXHU3MzQzXHU3MzRkXHU3MzUxXHU3MzRjXHU3NDYyXHU3NDczXHU3NDcxXHU3NDc1XHU3NDcyXHU3NDY3XHU3NDZlXHU3NTAwXHU3NTAyXHU3NTAzXHU3NTdkXHU3NTkwXHU3NjE2XHU3NjA4XHU3'@; put 'NjBjXHU3NjE1XHU3NjExXHU3NjBhXHU3NjE0XHU3NmI4XHU3NzgxXHU3NzdjXHU3Nzg1XHU3NzgyXHU3NzZlXHU3NzgwXHU3NzZmXHU3NzdlXHU3NzgzXHU3OGIyXHU3OGFhXHU3OGI0XHU3OGFkXHU3OGE4XHU3ODdlXHU3OGFiXHU3ODllXHU3OGE1XHU3OGEwXHU3OGFjXHU3OGEyXHU3OGE0'@; put 'XHU3OTk4XHU3OThhXHU3OThiXHU3OTk2XHU3OTk1XHU3OTk0XHU3OTkzXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjI2XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMjZdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjI2XVtwXV09NTc4NTYrcCxiWzU3ODU2K3BdPV9bMjI2XVtwXSk7Zm9y'@; put 'KF9bMjI3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3OTk3XHU3OTg4XHU3OTkyXHU3OTkwXHU3YTJiXHU3YTRhXHU3YTMwXHU3YTJmXHU3YTI4XHU3YTI2XHU3YWE4XHU3YWFiXHU3YWFjXHU3YWVlXHU3Yjg4XHU3YjljXHU3Yjhh'@; put 'XHU3YjkxXHU3YjkwXHU3Yjk2XHU3YjhkXHU3YjhjXHU3YjliXHU3YjhlXHU3Yjg1XHU3Yjk4XHU1Mjg0XHU3Yjk5XHU3YmE0XHU3YjgyXHU3Y2JiXHU3Y2JmXHU3Y2JjXHU3Y2JhXHU3ZGE3XHU3ZGI3XHU3ZGMyXHU3ZGEzXHU3ZGFhXHU3ZGMxXHU3ZGMwXHU3ZGM1XHU3ZDlkXHU3ZGNlXHU3'@; put 'ZGM0XHU3ZGM2XHU3ZGNiXHU3ZGNjXHU3ZGFmXHU3ZGI5XHU3ZDk2XHU3ZGJjXHU3ZDlmXHU3ZGE2XHU3ZGFlXHU3ZGE5XHU3ZGExXHU3ZGM5XHU3ZjczXHU3ZmUyXHU3ZmUzXHU3ZmU1XHU3ZmRlXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MDI0XHU4MDVkXHU4'@; put 'MDVjXHU4MTg5XHU4MTg2XHU4MTgzXHU4MTg3XHU4MThkXHU4MThjXHU4MThiXHU4MjE1XHU4NDk3XHU4NGE0XHU4NGExXHU4NDlmXHU4NGJhXHU4NGNlXHU4NGMyXHU4NGFjXHU4NGFlXHU4NGFiXHU4NGI5XHU4NGI0XHU4NGMxXHU4NGNkXHU4NGFhXHU4NDlhXHU4NGIxXHU4NGQwXHU4NDlk'@; put 'XHU4NGE3XHU4NGJiXHU4NGEyXHU4NDk0XHU4NGM3XHU4NGNjXHU4NDliXHU4NGE5XHU4NGFmXHU4NGE4XHU4NGQ2XHU4NDk4XHU4NGI2XHU4NGNmXHU4NGEwXHU4NGQ3XHU4NGQ0XHU4NGQyXHU4NGRiXHU4NGIwXHU4NDkxXHU4NjYxXHU4NzMzXHU4NzIzXHU4NzI4XHU4NzZiXHU4NzQwXHU4'@; put 'NzJlXHU4NzFlXHU4NzIxXHU4NzE5XHU4NzFiXHU4NzQzXHU4NzJjXHU4NzQxXHU4NzNlXHU4NzQ2XHU4NzIwXHU4NzMyXHU4NzJhXHU4NzJkXHU4NzNjXHU4NzEyXHU4NzNhXHU4NzMxXHU4NzM1XHU4NzQyXHU4NzI2XHU4NzI3XHU4NzM4XHU4NzI0XHU4NzFhXHU4NzMwXHU4NzExXHU4OGY3'@; put 'XHU4OGU3XHU4OGYxXHU4OGYyXHU4OGZhXHU4OGZlXHU4OGVlXHU4OGZjXHU4OGY2XHU4OGZiXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjI3XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMjddW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjI3XVtwXV09NTgxMTIrcCxiWzU4MTEyK3BdPV9b'@; put 'MjI3XVtwXSk7Zm9yKF9bMjI4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4OGYwXHU4OGVjXHU4OGViXHU4OTlkXHU4OWExXHU4OTlmXHU4OTllXHU4OWU5XHU4OWViXHU4OWU4XHU4YWFiXHU4YTk5XHU4YThiXHU4YTkyXHU4YThm'@; put 'XHU4YTk2XHU4YzNkXHU4YzY4XHU4YzY5XHU4Y2Q1XHU4Y2NmXHU4Y2Q3XHU4ZDk2XHU4ZTA5XHU4ZTAyXHU4ZGZmXHU4ZTBkXHU4ZGZkXHU4ZTBhXHU4ZTAzXHU4ZTA3XHU4ZTA2XHU4ZTA1XHU4ZGZlXHU4ZTAwXHU4ZTA0XHU4ZjEwXHU4ZjExXHU4ZjBlXHU4ZjBkXHU5MTIzXHU5MTFjXHU5'@; put 'MTIwXHU5MTIyXHU5MTFmXHU5MTFkXHU5MTFhXHU5MTI0XHU5MTIxXHU5MTFiXHU5MTdhXHU5MTcyXHU5MTc5XHU5MTczXHU5MmE1XHU5MmE0XHU5Mjc2XHU5MjliXHU5MjdhXHU5MmEwXHU5Mjk0XHU5MmFhXHU5MjhkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5'@; put 'MmE2XHU5MjlhXHU5MmFiXHU5Mjc5XHU5Mjk3XHU5MjdmXHU5MmEzXHU5MmVlXHU5MjhlXHU5MjgyXHU5Mjk1XHU5MmEyXHU5MjdkXHU5Mjg4XHU5MmExXHU5MjhhXHU5Mjg2XHU5MjhjXHU5Mjk5XHU5MmE3XHU5MjdlXHU5Mjg3XHU5MmE5XHU5MjlkXHU5MjhiXHU5MjJkXHU5NjllXHU5NmEx'@; put 'XHU5NmZmXHU5NzU4XHU5NzdkXHU5NzdhXHU5NzdlXHU5NzgzXHU5NzgwXHU5NzgyXHU5NzdiXHU5Nzg0XHU5NzgxXHU5NzdmXHU5N2NlXHU5N2NkXHU5ODE2XHU5OGFkXHU5OGFlXHU5OTAyXHU5OTAwXHU5OTA3XHU5OTlkXHU5OTljXHU5OWMzXHU5OWI5XHU5OWJiXHU5OWJhXHU5OWMyXHU5'@; put 'OWJkXHU5OWM3XHU5YWIxXHU5YWUzXHU5YWU3XHU5YjNlXHU5YjNmXHU5YjYwXHU5YjYxXHU5YjVmXHU5Y2YxXHU5Y2YyXHU5Y2Y1XHU5ZWE3XHU1MGZmXHU1MTAzXHU1MTMwXHU1MGY4XHU1MTA2XHU1MTA3XHU1MGY2XHU1MGZlXHU1MTBiXHU1MTBjXHU1MGZkXHU1MTBhXHU1MjhiXHU1Mjhj'@; put 'XHU1MmYxXHU1MmVmXHU1NjQ4XHU1NjQyXHU1NjRjXHU1NjM1XHU1NjQxXHU1NjRhXHU1NjQ5XHU1NjQ2XHU1NjU4XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjI4XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMjhdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjI4XVtwXV09NTgzNjgrcCxi'@; put 'WzU4MzY4K3BdPV9bMjI4XVtwXSk7Zm9yKF9bMjI5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NjVhXHU1NjQwXHU1NjMzXHU1NjNkXHU1NjJjXHU1NjNlXHU1NjM4XHU1NjJhXHU1NjNhXHU1NzFhXHU1OGFiXHU1ODlkXHU1OGIx'@; put 'XHU1OGEwXHU1OGEzXHU1OGFmXHU1OGFjXHU1OGE1XHU1OGExXHU1OGZmXHU1YWZmXHU1YWY0XHU1YWZkXHU1YWY3XHU1YWY2XHU1YjAzXHU1YWY4XHU1YjAyXHU1YWY5XHU1YjAxXHU1YjA3XHU1YjA1XHU1YjBmXHU1YzY3XHU1ZDk5XHU1ZDk3XHU1ZDlmXHU1ZDkyXHU1ZGEyXHU1ZDkzXHU1'@; put 'ZDk1XHU1ZGEwXHU1ZDljXHU1ZGExXHU1ZDlhXHU1ZDllXHU1ZTY5XHU1ZTVkXHU1ZTYwXHU1ZTVjXHU3ZGYzXHU1ZWRiXHU1ZWRlXHU1ZWUxXHU1ZjQ5XHU1ZmIyXHU2MThiXHU2MTgzXHU2MTc5XHU2MWIxXHU2MWIwXHU2MWEyXHU2MTg5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHU2MTliXHU2MTkzXHU2MWFmXHU2MWFkXHU2MTlmXHU2MTkyXHU2MWFhXHU2MWExXHU2MThkXHU2MTY2XHU2MWIzXHU2MjJkXHU2NDZlXHU2NDcwXHU2NDk2XHU2NGEwXHU2NDg1XHU2NDk3XHU2NDljXHU2NDhmXHU2NDhiXHU2NDhhXHU2NDhjXHU2NGEzXHU2NDlmXHU2NDY4'@; put 'XHU2NGIxXHU2NDk4XHU2NTc2XHU2NTdhXHU2NTc5XHU2NTdiXHU2NWIyXHU2NWIzXHU2NmI1XHU2NmIwXHU2NmE5XHU2NmIyXHU2NmI3XHU2NmFhXHU2NmFmXHU2YTAwXHU2YTA2XHU2YTE3XHU2OWU1XHU2OWY4XHU2YTE1XHU2OWYxXHU2OWU0XHU2YTIwXHU2OWZmXHU2OWVjXHU2OWUyXHU2'@; put 'YTFiXHU2YTFkXHU2OWZlXHU2YTI3XHU2OWYyXHU2OWVlXHU2YTE0XHU2OWY3XHU2OWU3XHU2YTQwXHU2YTA4XHU2OWU2XHU2OWZiXHU2YTBkXHU2OWZjXHU2OWViXHU2YTA5XHU2YTA0XHU2YTE4XHU2YTI1XHU2YTBmXHU2OWY2XHU2YTI2XHU2YTA3XHU2OWY0XHU2YTE2XHU2YjUxXHU2YmE1'@; put 'XHU2YmEzXHU2YmEyXHU2YmE2XHU2YzAxXHU2YzAwXHU2YmZmXHU2YzAyXHU2ZjQxXHU2ZjI2XHU2ZjdlXHU2Zjg3XHU2ZmM2XHU2ZjkyXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjI5XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMjldW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjI5XVtw'@; put 'XV09NTg2MjQrcCxiWzU4NjI0K3BdPV9bMjI5XVtwXSk7Zm9yKF9bMjMwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZjhkXHU2Zjg5XHU2ZjhjXHU2ZjYyXHU2ZjRmXHU2Zjg1XHU2ZjVhXHU2Zjk2XHU2Zjc2XHU2ZjZjXHU2Zjgy'@; put 'XHU2ZjU1XHU2ZjcyXHU2ZjUyXHU2ZjUwXHU2ZjU3XHU2Zjk0XHU2ZjkzXHU2ZjVkXHU2ZjAwXHU2ZjYxXHU2ZjZiXHU2ZjdkXHU2ZjY3XHU2ZjkwXHU2ZjUzXHU2ZjhiXHU2ZjY5XHU2ZjdmXHU2Zjk1XHU2ZjYzXHU2Zjc3XHU2ZjZhXHU2ZjdiXHU3MWIyXHU3MWFmXHU3MTliXHU3MWIwXHU3'@; put 'MWEwXHU3MTlhXHU3MWE5XHU3MWI1XHU3MTlkXHU3MWE1XHU3MTllXHU3MWE0XHU3MWExXHU3MWFhXHU3MTljXHU3MWE3XHU3MWIzXHU3Mjk4XHU3MjlhXHU3MzU4XHU3MzUyXHU3MzVlXHU3MzVmXHU3MzYwXHU3MzVkXHU3MzViXHU3MzYxXHU3MzVhXHU3MzU5XHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3MzYyXHU3NDg3XHU3NDg5XHU3NDhhXHU3NDg2XHU3NDgxXHU3NDdkXHU3NDg1XHU3NDg4XHU3NDdjXHU3NDc5XHU3NTA4XHU3NTA3XHU3NTdlXHU3NjI1XHU3NjFlXHU3NjE5XHU3NjFkXHU3NjFjXHU3NjIzXHU3NjFhXHU3NjI4XHU3NjFiXHU3Njlj'@; put 'XHU3NjlkXHU3NjllXHU3NjliXHU3NzhkXHU3NzhmXHU3Nzg5XHU3Nzg4XHU3OGNkXHU3OGJiXHU3OGNmXHU3OGNjXHU3OGQxXHU3OGNlXHU3OGQ0XHU3OGM4XHU3OGMzXHU3OGM0XHU3OGM5XHU3OTlhXHU3OWExXHU3OWEwXHU3OTljXHU3OWEyXHU3OTliXHU2Yjc2XHU3YTM5XHU3YWIyXHU3'@; put 'YWI0XHU3YWIzXHU3YmI3XHU3YmNiXHU3YmJlXHU3YmFjXHU3YmNlXHU3YmFmXHU3YmI5XHU3YmNhXHU3YmI1XHU3Y2M1XHU3Y2M4XHU3Y2NjXHU3Y2NiXHU3ZGY3XHU3ZGRiXHU3ZGVhXHU3ZGU3XHU3ZGQ3XHU3ZGUxXHU3ZTAzXHU3ZGZhXHU3ZGU2XHU3ZGY2XHU3ZGYxXHU3ZGYwXHU3ZGVl'@; put 'XHU3ZGRmXHU3Zjc2XHU3ZmFjXHU3ZmIwXHU3ZmFkXHU3ZmVkXHU3ZmViXHU3ZmVhXHU3ZmVjXHU3ZmU2XHU3ZmU4XHU4MDY0XHU4MDY3XHU4MWEzXHU4MTlmXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjMwXS5sZW5ndGg7KytwKTY1NTMzIT09X1syMzBdW3BdLmNoYXJDb2RlQXQoMCkm'@; put 'JihEW19bMjMwXVtwXV09NTg4ODArcCxiWzU4ODgwK3BdPV9bMjMwXVtwXSk7Zm9yKF9bMjMxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MTllXHU4MTk1XHU4MWEyXHU4MTk5XHU4MTk3XHU4MjE2XHU4MjRmXHU4MjUzXHU4MjUy'@; put 'XHU4MjUwXHU4MjRlXHU4MjUxXHU4NTI0XHU4NTNiXHU4NTBmXHU4NTAwXHU4NTI5XHU4NTBlXHU4NTA5XHU4NTBkXHU4NTFmXHU4NTBhXHU4NTI3XHU4NTFjXHU4NGZiXHU4NTJiXHU4NGZhXHU4NTA4XHU4NTBjXHU4NGY0XHU4NTJhXHU4NGYyXHU4NTE1XHU4NGY3XHU4NGViXHU4NGYzXHU4'@; put 'NGZjXHU4NTEyXHU4NGVhXHU4NGU5XHU4NTE2XHU4NGZlXHU4NTI4XHU4NTFkXHU4NTJlXHU4NTAyXHU4NGZkXHU4NTFlXHU4NGY2XHU4NTMxXHU4NTI2XHU4NGU3XHU4NGU4XHU4NGYwXHU4NGVmXHU4NGY5XHU4NTE4XHU4NTIwXHU4NTMwXHU4NTBiXHU4NTE5XHU4NTJmXHU4NjYyXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4NzU2XHU4NzYzXHU4NzY0XHU4Nzc3XHU4N2UxXHU4NzczXHU4NzU4XHU4NzU0XHU4NzViXHU4NzUyXHU4NzYxXHU4NzVhXHU4NzUxXHU4NzVlXHU4NzZkXHU4NzZhXHU4NzUwXHU4NzRlXHU4NzVmXHU4NzVkXHU4NzZmXHU4NzZj'@; put 'XHU4NzdhXHU4NzZlXHU4NzVjXHU4NzY1XHU4NzRmXHU4NzdiXHU4Nzc1XHU4NzYyXHU4NzY3XHU4NzY5XHU4ODVhXHU4OTA1XHU4OTBjXHU4OTE0XHU4OTBiXHU4OTE3XHU4OTE4XHU4OTE5XHU4OTA2XHU4OTE2XHU4OTExXHU4OTBlXHU4OTA5XHU4OWEyXHU4OWE0XHU4OWEzXHU4OWVkXHU4'@; put 'OWYwXHU4OWVjXHU4YWNmXHU4YWM2XHU4YWI4XHU4YWQzXHU4YWQxXHU4YWQ0XHU4YWQ1XHU4YWJiXHU4YWQ3XHU4YWJlXHU4YWMwXHU4YWM1XHU4YWQ4XHU4YWMzXHU4YWJhXHU4YWJkXHU4YWQ5XHU4YzNlXHU4YzRkXHU4YzhmXHU4Y2U1XHU4Y2RmXHU4Y2Q5XHU4Y2U4XHU4Y2RhXHU4Y2Rk'@; put 'XHU4Y2U3XHU4ZGEwXHU4ZDljXHU4ZGExXHU4ZDliXHU4ZTIwXHU4ZTIzXHU4ZTI1XHU4ZTI0XHU4ZTJlXHU4ZTE1XHU4ZTFiXHU4ZTE2XHU4ZTExXHU4ZTE5XHU4ZTI2XHU4ZTI3XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjMxXS5sZW5ndGg7KytwKTY1NTMzIT09X1syMzFdW3BdLmNo'@; put 'YXJDb2RlQXQoMCkmJihEW19bMjMxXVtwXV09NTkxMzYrcCxiWzU5MTM2K3BdPV9bMjMxXVtwXSk7Zm9yKF9bMjMyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4ZTE0XHU4ZTEyXHU4ZTE4XHU4ZTEzXHU4ZTFjXHU4ZTE3XHU4ZTFh'@; put 'XHU4ZjJjXHU4ZjI0XHU4ZjE4XHU4ZjFhXHU4ZjIwXHU4ZjIzXHU4ZjE2XHU4ZjE3XHU5MDczXHU5MDcwXHU5MDZmXHU5MDY3XHU5MDZiXHU5MTJmXHU5MTJiXHU5MTI5XHU5MTJhXHU5MTMyXHU5MTI2XHU5MTJlXHU5MTg1XHU5MTg2XHU5MThhXHU5MTgxXHU5MTgyXHU5MTg0XHU5MTgwXHU5'@; put 'MmQwXHU5MmMzXHU5MmM0XHU5MmMwXHU5MmQ5XHU5MmI2XHU5MmNmXHU5MmYxXHU5MmRmXHU5MmQ4XHU5MmU5XHU5MmQ3XHU5MmRkXHU5MmNjXHU5MmVmXHU5MmMyXHU5MmU4XHU5MmNhXHU5MmM4XHU5MmNlXHU5MmU2XHU5MmNkXHU5MmQ1XHU5MmM5XHU5MmUwXHU5MmRlXHU5MmU3XHU5MmQx'@; put 'XHU5MmQzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MmI1XHU5MmUxXHU5MmM2XHU5MmI0XHU5NTdjXHU5NWFjXHU5NWFiXHU5NWFlXHU5NWIwXHU5NmE0XHU5NmEyXHU5NmQzXHU5NzA1XHU5NzA4XHU5NzAyXHU5NzVhXHU5NzhhXHU5NzhlXHU5Nzg4XHU5N2Qw'@; put 'XHU5N2NmXHU5ODFlXHU5ODFkXHU5ODI2XHU5ODI5XHU5ODI4XHU5ODIwXHU5ODFiXHU5ODI3XHU5OGIyXHU5OTA4XHU5OGZhXHU5OTExXHU5OTE0XHU5OTE2XHU5OTE3XHU5OTE1XHU5OWRjXHU5OWNkXHU5OWNmXHU5OWQzXHU5OWQ0XHU5OWNlXHU5OWM5XHU5OWQ2XHU5OWQ4XHU5OWNiXHU5'@; put 'OWQ3XHU5OWNjXHU5YWIzXHU5YWVjXHU5YWViXHU5YWYzXHU5YWYyXHU5YWYxXHU5YjQ2XHU5YjQzXHU5YjY3XHU5Yjc0XHU5YjcxXHU5YjY2XHU5Yjc2XHU5Yjc1XHU5YjcwXHU5YjY4XHU5YjY0XHU5YjZjXHU5Y2ZjXHU5Y2ZhXHU5Y2ZkXHU5Y2ZmXHU5Y2Y3XHU5ZDA3XHU5ZDAwXHU5Y2Y5'@; put 'XHU5Y2ZiXHU5ZDA4XHU5ZDA1XHU5ZDA0XHU5ZTgzXHU5ZWQzXHU5ZjBmXHU5ZjEwXHU1MTFjXHU1MTEzXHU1MTE3XHU1MTFhXHU1MTExXHU1MWRlXHU1MzM0XHU1M2UxXHU1NjcwXHU1NjYwXHU1NjZlXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjMyXS5sZW5ndGg7KytwKTY1NTMzIT09'@; put 'X1syMzJdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjMyXVtwXV09NTkzOTIrcCxiWzU5MzkyK3BdPV9bMjMyXVtwXSk7Zm9yKF9bMjMzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NjczXHU1NjY2XHU1NjYzXHU1NjZkXHU1Njcy'@; put 'XHU1NjVlXHU1Njc3XHU1NzFjXHU1NzFiXHU1OGM4XHU1OGJkXHU1OGM5XHU1OGJmXHU1OGJhXHU1OGMyXHU1OGJjXHU1OGM2XHU1YjE3XHU1YjE5XHU1YjFiXHU1YjIxXHU1YjE0XHU1YjEzXHU1YjEwXHU1YjE2XHU1YjI4XHU1YjFhXHU1YjIwXHU1YjFlXHU1YmVmXHU1ZGFjXHU1ZGIxXHU1'@; put 'ZGE5XHU1ZGE3XHU1ZGI1XHU1ZGIwXHU1ZGFlXHU1ZGFhXHU1ZGE4XHU1ZGIyXHU1ZGFkXHU1ZGFmXHU1ZGI0XHU1ZTY3XHU1ZTY4XHU1ZTY2XHU1ZTZmXHU1ZWU5XHU1ZWU3XHU1ZWU2XHU1ZWU4XHU1ZWU1XHU1ZjRiXHU1ZmJjXHU2MTlkXHU2MWE4XHU2MTk2XHU2MWM1XHU2MWI0XHU2MWM2'@; put 'XHU2MWMxXHU2MWNjXHU2MWJhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MWJmXHU2MWI4XHU2MThjXHU2NGQ3XHU2NGQ2XHU2NGQwXHU2NGNmXHU2NGM5XHU2NGJkXHU2NDg5XHU2NGMzXHU2NGRiXHU2NGYzXHU2NGQ5XHU2NTMzXHU2NTdmXHU2NTdjXHU2NWEy'@; put 'XHU2NmM4XHU2NmJlXHU2NmMwXHU2NmNhXHU2NmNiXHU2NmNmXHU2NmJkXHU2NmJiXHU2NmJhXHU2NmNjXHU2NzIzXHU2YTM0XHU2YTY2XHU2YTQ5XHU2YTY3XHU2YTMyXHU2YTY4XHU2YTNlXHU2YTVkXHU2YTZkXHU2YTc2XHU2YTViXHU2YTUxXHU2YTI4XHU2YTVhXHU2YTNiXHU2YTNmXHU2'@; put 'YTQxXHU2YTZhXHU2YTY0XHU2YTUwXHU2YTRmXHU2YTU0XHU2YTZmXHU2YTY5XHU2YTYwXHU2YTNjXHU2YTVlXHU2YTU2XHU2YTU1XHU2YTRkXHU2YTRlXHU2YTQ2XHU2YjU1XHU2YjU0XHU2YjU2XHU2YmE3XHU2YmFhXHU2YmFiXHU2YmM4XHU2YmM3XHU2YzA0XHU2YzAzXHU2YzA2XHU2ZmFk'@; put 'XHU2ZmNiXHU2ZmEzXHU2ZmM3XHU2ZmJjXHU2ZmNlXHU2ZmM4XHU2ZjVlXHU2ZmM0XHU2ZmJkXHU2ZjllXHU2ZmNhXHU2ZmE4XHU3MDA0XHU2ZmE1XHU2ZmFlXHU2ZmJhXHU2ZmFjXHU2ZmFhXHU2ZmNmXHU2ZmJmXHU2ZmI4XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjMzXS5sZW5ndGg7'@; put 'KytwKTY1NTMzIT09X1syMzNdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjMzXVtwXV09NTk2NDgrcCxiWzU5NjQ4K3BdPV9bMjMzXVtwXSk7Zm9yKF9bMjM0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZmEyXHU2ZmM5XHU2ZmFi'@; put 'XHU2ZmNkXHU2ZmFmXHU2ZmIyXHU2ZmIwXHU3MWM1XHU3MWMyXHU3MWJmXHU3MWI4XHU3MWQ2XHU3MWMwXHU3MWMxXHU3MWNiXHU3MWQ0XHU3MWNhXHU3MWM3XHU3MWNmXHU3MWJkXHU3MWQ4XHU3MWJjXHU3MWM2XHU3MWRhXHU3MWRiXHU3MjlkXHU3MjllXHU3MzY5XHU3MzY2XHU3MzY3XHU3'@; put 'MzZjXHU3MzY1XHU3MzZiXHU3MzZhXHU3NDdmXHU3NDlhXHU3NGEwXHU3NDk0XHU3NDkyXHU3NDk1XHU3NGExXHU3NTBiXHU3NTgwXHU3NjJmXHU3NjJkXHU3NjMxXHU3NjNkXHU3NjMzXHU3NjNjXHU3NjM1XHU3NjMyXHU3NjMwXHU3NmJiXHU3NmU2XHU3NzlhXHU3NzlkXHU3N2ExXHU3Nzlj'@; put 'XHU3NzliXHU3N2EyXHU3N2EzXHU3Nzk1XHU3Nzk5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3Nzk3XHU3OGRkXHU3OGU5XHU3OGU1XHU3OGVhXHU3OGRlXHU3OGUzXHU3OGRiXHU3OGUxXHU3OGUyXHU3OGVkXHU3OGRmXHU3OGUwXHU3OWE0XHU3YTQ0XHU3YTQ4'@; put 'XHU3YTQ3XHU3YWI2XHU3YWI4XHU3YWI1XHU3YWIxXHU3YWI3XHU3YmRlXHU3YmUzXHU3YmU3XHU3YmRkXHU3YmQ1XHU3YmU1XHU3YmRhXHU3YmU4XHU3YmY5XHU3YmQ0XHU3YmVhXHU3YmUyXHU3YmRjXHU3YmViXHU3YmQ4XHU3YmRmXHU3Y2QyXHU3Y2Q0XHU3Y2Q3XHU3Y2QwXHU3Y2QxXHU3'@; put 'ZTEyXHU3ZTIxXHU3ZTE3XHU3ZTBjXHU3ZTFmXHU3ZTIwXHU3ZTEzXHU3ZTBlXHU3ZTFjXHU3ZTE1XHU3ZTFhXHU3ZTIyXHU3ZTBiXHU3ZTBmXHU3ZTE2XHU3ZTBkXHU3ZTE0XHU3ZTI1XHU3ZTI0XHU3ZjQzXHU3ZjdiXHU3ZjdjXHU3ZjdhXHU3ZmIxXHU3ZmVmXHU4MDJhXHU4MDI5XHU4MDZj'@; put 'XHU4MWIxXHU4MWE2XHU4MWFlXHU4MWI5XHU4MWI1XHU4MWFiXHU4MWIwXHU4MWFjXHU4MWI0XHU4MWIyXHU4MWI3XHU4MWE3XHU4MWYyXHU4MjU1XHU4MjU2XHU4MjU3XHU4NTU2XHU4NTQ1XHU4NTZiXHU4NTRkXHU4NTUzXHU4NTYxXHU4NTU4XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9b'@; put 'MjM0XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMzRdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjM0XVtwXV09NTk5MDQrcCxiWzU5OTA0K3BdPV9bMjM0XVtwXSk7Zm9yKF9bMjM1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4NTQw'@; put 'XHU4NTQ2XHU4NTY0XHU4NTQxXHU4NTYyXHU4NTQ0XHU4NTUxXHU4NTQ3XHU4NTYzXHU4NTNlXHU4NTViXHU4NTcxXHU4NTRlXHU4NTZlXHU4NTc1XHU4NTU1XHU4NTY3XHU4NTYwXHU4NThjXHU4NTY2XHU4NTVkXHU4NTU0XHU4NTY1XHU4NTZjXHU4NjYzXHU4NjY1XHU4NjY0XHU4NzliXHU4'@; put 'NzhmXHU4Nzk3XHU4NzkzXHU4NzkyXHU4Nzg4XHU4NzgxXHU4Nzk2XHU4Nzk4XHU4Nzc5XHU4Nzg3XHU4N2EzXHU4Nzg1XHU4NzkwXHU4NzkxXHU4NzlkXHU4Nzg0XHU4Nzk0XHU4NzljXHU4NzlhXHU4Nzg5XHU4OTFlXHU4OTI2XHU4OTMwXHU4OTJkXHU4OTJlXHU4OTI3XHU4OTMxXHU4OTIy'@; put 'XHU4OTI5XHU4OTIzXHU4OTJmXHU4OTJjXHU4OTFmXHU4OWYxXHU4YWUwXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4YWUyXHU4YWYyXHU4YWY0XHU4YWY1XHU4YWRkXHU4YjE0XHU4YWU0XHU4YWRmXHU4YWYwXHU4YWM4XHU4YWRlXHU4YWUxXHU4YWU4XHU4YWZm'@; put 'XHU4YWVmXHU4YWZiXHU4YzkxXHU4YzkyXHU4YzkwXHU4Y2Y1XHU4Y2VlXHU4Y2YxXHU4Y2YwXHU4Y2YzXHU4ZDZjXHU4ZDZlXHU4ZGE1XHU4ZGE3XHU4ZTMzXHU4ZTNlXHU4ZTM4XHU4ZTQwXHU4ZTQ1XHU4ZTM2XHU4ZTNjXHU4ZTNkXHU4ZTQxXHU4ZTMwXHU4ZTNmXHU4ZWJkXHU4ZjM2XHU4'@; put 'ZjJlXHU4ZjM1XHU4ZjMyXHU4ZjM5XHU4ZjM3XHU4ZjM0XHU5MDc2XHU5MDc5XHU5MDdiXHU5MDg2XHU5MGZhXHU5MTMzXHU5MTM1XHU5MTM2XHU5MTkzXHU5MTkwXHU5MTkxXHU5MThkXHU5MThmXHU5MzI3XHU5MzFlXHU5MzA4XHU5MzFmXHU5MzA2XHU5MzBmXHU5MzdhXHU5MzM4XHU5MzNj'@; put 'XHU5MzFiXHU5MzIzXHU5MzEyXHU5MzAxXHU5MzQ2XHU5MzJkXHU5MzBlXHU5MzBkXHU5MmNiXHU5MzFkXHU5MmZhXHU5MzI1XHU5MzEzXHU5MmY5XHU5MmY3XHU5MzM0XHU5MzAyXHU5MzI0XHU5MmZmXHU5MzI5XHU5MzM5XHU5MzM1XHU5MzJhXHU5MzE0XHU5MzBjXHVmZmZkIi5zcGxpdCgi'@; put 'IikscD0wO3AhPV9bMjM1XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMzVdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjM1XVtwXV09NjAxNjArcCxiWzYwMTYwK3BdPV9bMjM1XVtwXSk7Zm9yKF9bMjM2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHU5MzBiXHU5MmZlXHU5MzA5XHU5MzAwXHU5MmZiXHU5MzE2XHU5NWJjXHU5NWNkXHU5NWJlXHU5NWI5XHU5NWJhXHU5NWI2XHU5NWJmXHU5NWI1XHU5NWJkXHU5NmE5XHU5NmQ0XHU5NzBiXHU5NzEyXHU5NzEwXHU5Nzk5XHU5Nzk3XHU5Nzk0XHU5N2YwXHU5N2Y4XHU5ODM1XHU5'@; put 'ODJmXHU5ODMyXHU5OTI0XHU5OTFmXHU5OTI3XHU5OTI5XHU5OTllXHU5OWVlXHU5OWVjXHU5OWU1XHU5OWU0XHU5OWYwXHU5OWUzXHU5OWVhXHU5OWU5XHU5OWU3XHU5YWI5XHU5YWJmXHU5YWI0XHU5YWJiXHU5YWY2XHU5YWZhXHU5YWY5XHU5YWY3XHU5YjMzXHU5YjgwXHU5Yjg1XHU5Yjg3'@; put 'XHU5YjdjXHU5YjdlXHU5YjdiXHU5YjgyXHU5YjkzXHU5YjkyXHU5YjkwXHU5YjdhXHU5Yjk1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5YjdkXHU5Yjg4XHU5ZDI1XHU5ZDE3XHU5ZDIwXHU5ZDFlXHU5ZDE0XHU5ZDI5XHU5ZDFkXHU5ZDE4XHU5ZDIyXHU5ZDEw'@; put 'XHU5ZDE5XHU5ZDFmXHU5ZTg4XHU5ZTg2XHU5ZTg3XHU5ZWFlXHU5ZWFkXHU5ZWQ1XHU5ZWQ2XHU5ZWZhXHU5ZjEyXHU5ZjNkXHU1MTI2XHU1MTI1XHU1MTIyXHU1MTI0XHU1MTIwXHU1MTI5XHU1MmY0XHU1NjkzXHU1NjhjXHU1NjhkXHU1Njg2XHU1Njg0XHU1NjgzXHU1NjdlXHU1NjgyXHU1'@; put 'NjdmXHU1NjgxXHU1OGQ2XHU1OGQ0XHU1OGNmXHU1OGQyXHU1YjJkXHU1YjI1XHU1YjMyXHU1YjIzXHU1YjJjXHU1YjI3XHU1YjI2XHU1YjJmXHU1YjJlXHU1YjdiXHU1YmYxXHU1YmYyXHU1ZGI3XHU1ZTZjXHU1ZTZhXHU1ZmJlXHU1ZmJiXHU2MWMzXHU2MWI1XHU2MWJjXHU2MWU3XHU2MWUw'@; put 'XHU2MWU1XHU2MWU0XHU2MWU4XHU2MWRlXHU2NGVmXHU2NGU5XHU2NGUzXHU2NGViXHU2NGU0XHU2NGU4XHU2NTgxXHU2NTgwXHU2NWI2XHU2NWRhXHU2NmQyXHU2YThkXHU2YTk2XHU2YTgxXHU2YWE1XHU2YTg5XHU2YTlmXHU2YTliXHU2YWExXHU2YTllXHU2YTg3XHU2YTkzXHU2YThlXHVm'@; put 'ZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjM2XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMzZdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjM2XVtwXV09NjA0MTYrcCxiWzYwNDE2K3BdPV9bMjM2XVtwXSk7Zm9yKF9bMjM3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHU2YTk1XHU2YTgzXHU2YWE4XHU2YWE0XHU2YTkxXHU2YTdmXHU2YWE2XHU2YTlhXHU2YTg1XHU2YThjXHU2YTkyXHU2YjViXHU2YmFkXHU2YzA5XHU2ZmNjXHU2ZmE5XHU2ZmY0XHU2ZmQ0XHU2ZmUzXHU2ZmRjXHU2ZmVkXHU2ZmU3XHU2ZmU2XHU2ZmRlXHU2'@; put 'ZmYyXHU2ZmRkXHU2ZmUyXHU2ZmU4XHU3MWUxXHU3MWYxXHU3MWU4XHU3MWYyXHU3MWU0XHU3MWYwXHU3MWUyXHU3MzczXHU3MzZlXHU3MzZmXHU3NDk3XHU3NGIyXHU3NGFiXHU3NDkwXHU3NGFhXHU3NGFkXHU3NGIxXHU3NGE1XHU3NGFmXHU3NTEwXHU3NTExXHU3NTEyXHU3NTBmXHU3NTg0'@; put 'XHU3NjQzXHU3NjQ4XHU3NjQ5XHU3NjQ3XHU3NmE0XHU3NmU5XHU3N2I1XHU3N2FiXHU3N2IyXHU3N2I3XHU3N2I2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3N2I0XHU3N2IxXHU3N2E4XHU3N2YwXHU3OGYzXHU3OGZkXHU3OTAyXHU3OGZiXHU3OGZjXHU3OGYy'@; put 'XHU3OTA1XHU3OGY5XHU3OGZlXHU3OTA0XHU3OWFiXHU3OWE4XHU3YTVjXHU3YTViXHU3YTU2XHU3YTU4XHU3YTU0XHU3YTVhXHU3YWJlXHU3YWMwXHU3YWMxXHU3YzA1XHU3YzBmXHU3YmYyXHU3YzAwXHU3YmZmXHU3YmZiXHU3YzBlXHU3YmY0XHU3YzBiXHU3YmYzXHU3YzAyXHU3YzA5XHU3'@; put 'YzAzXHU3YzAxXHU3YmY4XHU3YmZkXHU3YzA2XHU3YmYwXHU3YmYxXHU3YzEwXHU3YzBhXHU3Y2U4XHU3ZTJkXHU3ZTNjXHU3ZTQyXHU3ZTMzXHU5ODQ4XHU3ZTM4XHU3ZTJhXHU3ZTQ5XHU3ZTQwXHU3ZTQ3XHU3ZTI5XHU3ZTRjXHU3ZTMwXHU3ZTNiXHU3ZTM2XHU3ZTQ0XHU3ZTNhXHU3ZjQ1'@; put 'XHU3ZjdmXHU3ZjdlXHU3ZjdkXHU3ZmY0XHU3ZmYyXHU4MDJjXHU4MWJiXHU4MWM0XHU4MWNjXHU4MWNhXHU4MWM1XHU4MWM3XHU4MWJjXHU4MWU5XHU4MjViXHU4MjVhXHU4MjVjXHU4NTgzXHU4NTgwXHU4NThmXHU4NWE3XHU4NTk1XHU4NWEwXHU4NThiXHU4NWEzXHU4NTdiXHU4NWE0XHU4'@; put 'NTlhXHU4NTllXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjM3XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMzddW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjM3XVtwXV09NjA2NzIrcCxiWzYwNjcyK3BdPV9bMjM3XVtwXSk7Zm9yKF9bMjM4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4NTc3XHU4NTdjXHU4NTg5XHU4NWExXHU4NTdhXHU4NTc4XHU4NTU3XHU4NThlXHU4NTk2XHU4NTg2XHU4NThkXHU4NTk5XHU4NTlkXHU4NTgxXHU4NWEyXHU4NTgyXHU4NTg4XHU4NTg1XHU4NTc5XHU4NTc2XHU4NTk4XHU4NTkwXHU4'@; put 'NTlmXHU4NjY4XHU4N2JlXHU4N2FhXHU4N2FkXHU4N2M1XHU4N2IwXHU4N2FjXHU4N2I5XHU4N2I1XHU4N2JjXHU4N2FlXHU4N2M5XHU4N2MzXHU4N2MyXHU4N2NjXHU4N2I3XHU4N2FmXHU4N2M0XHU4N2NhXHU4N2I0XHU4N2I2XHU4N2JmXHU4N2I4XHU4N2JkXHU4N2RlXHU4N2IyXHU4OTM1'@; put 'XHU4OTMzXHU4OTNjXHU4OTNlXHU4OTQxXHU4OTUyXHU4OTM3XHU4OTQyXHU4OWFkXHU4OWFmXHU4OWFlXHU4OWYyXHU4OWYzXHU4YjFlXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4YjE4XHU4YjE2XHU4YjExXHU4YjA1XHU4YjBiXHU4YjIyXHU4YjBmXHU4YjEy'@; put 'XHU4YjE1XHU4YjA3XHU4YjBkXHU4YjA4XHU4YjA2XHU4YjFjXHU4YjEzXHU4YjFhXHU4YzRmXHU4YzcwXHU4YzcyXHU4YzcxXHU4YzZmXHU4Yzk1XHU4Yzk0XHU4Y2Y5XHU4ZDZmXHU4ZTRlXHU4ZTRkXHU4ZTUzXHU4ZTUwXHU4ZTRjXHU4ZTQ3XHU4ZjQzXHU4ZjQwXHU5MDg1XHU5MDdlXHU5'@; put 'MTM4XHU5MTlhXHU5MWEyXHU5MTliXHU5MTk5XHU5MTlmXHU5MWExXHU5MTlkXHU5MWEwXHU5M2ExXHU5MzgzXHU5M2FmXHU5MzY0XHU5MzU2XHU5MzQ3XHU5MzdjXHU5MzU4XHU5MzVjXHU5Mzc2XHU5MzQ5XHU5MzUwXHU5MzUxXHU5MzYwXHU5MzZkXHU5MzhmXHU5MzRjXHU5MzZhXHU5Mzc5'@; put 'XHU5MzU3XHU5MzU1XHU5MzUyXHU5MzRmXHU5MzcxXHU5Mzc3XHU5MzdiXHU5MzYxXHU5MzVlXHU5MzYzXHU5MzY3XHU5MzgwXHU5MzRlXHU5MzU5XHU5NWM3XHU5NWMwXHU5NWM5XHU5NWMzXHU5NWM1XHU5NWI3XHU5NmFlXHU5NmIwXHU5NmFjXHU5NzIwXHU5NzFmXHU5NzE4XHU5NzFkXHU5'@; put 'NzE5XHU5NzlhXHU5N2ExXHU5NzljXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjM4XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMzhdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjM4XVtwXV09NjA5MjgrcCxiWzYwOTI4K3BdPV9bMjM4XVtwXSk7Zm9yKF9bMjM5XT0iXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5NzllXHU5NzlkXHU5N2Q1XHU5N2Q0XHU5N2YxXHU5ODQxXHU5ODQ0XHU5ODRhXHU5ODQ5XHU5ODQ1XHU5ODQzXHU5OTI1XHU5OTJiXHU5OTJjXHU5OTJhXHU5OTMzXHU5OTMyXHU5OTJmXHU5OTJkXHU5OTMxXHU5'@; put 'OTMwXHU5OTk4XHU5OWEzXHU5OWExXHU5YTAyXHU5OWZhXHU5OWY0XHU5OWY3XHU5OWY5XHU5OWY4XHU5OWY2XHU5OWZiXHU5OWZkXHU5OWZlXHU5OWZjXHU5YTAzXHU5YWJlXHU5YWZlXHU5YWZkXHU5YjAxXHU5YWZjXHU5YjQ4XHU5YjlhXHU5YmE4XHU5YjllXHU5YjliXHU5YmE2XHU5YmEx'@; put 'XHU5YmE1XHU5YmE0XHU5Yjg2XHU5YmEyXHU5YmEwXHU5YmFmXHU5ZDMzXHU5ZDQxXHU5ZDY3XHU5ZDM2XHU5ZDJlXHU5ZDJmXHU5ZDMxXHU5ZDM4XHU5ZDMwXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ZDQ1XHU5ZDQyXHU5ZDQzXHU5ZDNlXHU5ZDM3XHU5ZDQw'@; put 'XHU5ZDNkXHU3ZmY1XHU5ZDJkXHU5ZThhXHU5ZTg5XHU5ZThkXHU5ZWIwXHU5ZWM4XHU5ZWRhXHU5ZWZiXHU5ZWZmXHU5ZjI0XHU5ZjIzXHU5ZjIyXHU5ZjU0XHU5ZmEwXHU1MTMxXHU1MTJkXHU1MTJlXHU1Njk4XHU1NjljXHU1Njk3XHU1NjlhXHU1NjlkXHU1Njk5XHU1OTcwXHU1YjNjXHU1'@; put 'YzY5XHU1YzZhXHU1ZGMwXHU1ZTZkXHU1ZTZlXHU2MWQ4XHU2MWRmXHU2MWVkXHU2MWVlXHU2MWYxXHU2MWVhXHU2MWYwXHU2MWViXHU2MWQ2XHU2MWU5XHU2NGZmXHU2NTA0XHU2NGZkXHU2NGY4XHU2NTAxXHU2NTAzXHU2NGZjXHU2NTk0XHU2NWRiXHU2NmRhXHU2NmRiXHU2NmQ4XHU2YWM1'@; put 'XHU2YWI5XHU2YWJkXHU2YWUxXHU2YWM2XHU2YWJhXHU2YWI2XHU2YWI3XHU2YWM3XHU2YWI0XHU2YWFkXHU2YjVlXHU2YmM5XHU2YzBiXHU3MDA3XHU3MDBjXHU3MDBkXHU3MDAxXHU3MDA1XHU3MDE0XHU3MDBlXHU2ZmZmXHU3MDAwXHU2ZmZiXHU3MDI2XHU2ZmZjXHU2ZmY3XHU3MDBhXHU3'@; put 'MjAxXHU3MWZmXHU3MWY5XHU3MjAzXHU3MWZkXHU3Mzc2XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjM5XS5sZW5ndGg7KytwKTY1NTMzIT09X1syMzldW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjM5XVtwXV09NjExODQrcCxiWzYxMTg0K3BdPV9bMjM5XVtwXSk7Zm9yKF9bMjQwXT0i'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3NGI4XHU3NGMwXHU3NGI1XHU3NGMxXHU3NGJlXHU3NGI2XHU3NGJiXHU3NGMyXHU3NTE0XHU3NTEzXHU3NjVjXHU3NjY0XHU3NjU5XHU3NjUwXHU3NjUzXHU3NjU3XHU3NjVhXHU3NmE2XHU3'@; put 'NmJkXHU3NmVjXHU3N2MyXHU3N2JhXHU3OGZmXHU3OTBjXHU3OTEzXHU3OTE0XHU3OTA5XHU3OTEwXHU3OTEyXHU3OTExXHU3OWFkXHU3OWFjXHU3YTVmXHU3YzFjXHU3YzI5XHU3YzE5XHU3YzIwXHU3YzFmXHU3YzJkXHU3YzFkXHU3YzI2XHU3YzI4XHU3YzIyXHU3YzI1XHU3YzMwXHU3ZTVj'@; put 'XHU3ZTUwXHU3ZTU2XHU3ZTYzXHU3ZTU4XHU3ZTYyXHU3ZTVmXHU3ZTUxXHU3ZTYwXHU3ZTU3XHU3ZTUzXHU3ZmI1XHU3ZmIzXHU3ZmY3XHU3ZmY4XHU4MDc1XHU4MWQxXHU4MWQyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MWQwXHU4MjVmXHU4MjVlXHU4NWI0'@; put 'XHU4NWM2XHU4NWMwXHU4NWMzXHU4NWMyXHU4NWIzXHU4NWI1XHU4NWJkXHU4NWM3XHU4NWM0XHU4NWJmXHU4NWNiXHU4NWNlXHU4NWM4XHU4NWM1XHU4NWIxXHU4NWI2XHU4NWQyXHU4NjI0XHU4NWI4XHU4NWI3XHU4NWJlXHU4NjY5XHU4N2U3XHU4N2U2XHU4N2UyXHU4N2RiXHU4N2ViXHU4'@; put 'N2VhXHU4N2U1XHU4N2RmXHU4N2YzXHU4N2U0XHU4N2Q0XHU4N2RjXHU4N2QzXHU4N2VkXHU4N2Q4XHU4N2UzXHU4N2E0XHU4N2Q3XHU4N2Q5XHU4ODAxXHU4N2Y0XHU4N2U4XHU4N2RkXHU4OTUzXHU4OTRiXHU4OTRmXHU4OTRjXHU4OTQ2XHU4OTUwXHU4OTUxXHU4OTQ5XHU4YjJhXHU4YjI3'@; put 'XHU4YjIzXHU4YjMzXHU4YjMwXHU4YjM1XHU4YjQ3XHU4YjJmXHU4YjNjXHU4YjNlXHU4YjMxXHU4YjI1XHU4YjM3XHU4YjI2XHU4YjM2XHU4YjJlXHU4YjI0XHU4YjNiXHU4YjNkXHU4YjNhXHU4YzQyXHU4Yzc1XHU4Yzk5XHU4Yzk4XHU4Yzk3XHU4Y2ZlXHU4ZDA0XHU4ZDAyXHU4ZDAwXHU4'@; put 'ZTVjXHU4ZTYyXHU4ZTYwXHU4ZTU3XHU4ZTU2XHU4ZTVlXHU4ZTY1XHU4ZTY3XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjQwXS5sZW5ndGg7KytwKTY1NTMzIT09X1syNDBdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjQwXVtwXV09NjE0NDArcCxiWzYxNDQwK3BdPV9bMjQwXVtwXSk7'@; put 'Zm9yKF9bMjQxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4ZTViXHU4ZTVhXHU4ZTYxXHU4ZTVkXHU4ZTY5XHU4ZTU0XHU4ZjQ2XHU4ZjQ3XHU4ZjQ4XHU4ZjRiXHU5MTI4XHU5MTNhXHU5MTNiXHU5MTNlXHU5MWE4XHU5MWE1XHU5'@; put 'MWE3XHU5MWFmXHU5MWFhXHU5M2I1XHU5MzhjXHU5MzkyXHU5M2I3XHU5MzliXHU5MzlkXHU5Mzg5XHU5M2E3XHU5MzhlXHU5M2FhXHU5MzllXHU5M2E2XHU5Mzk1XHU5Mzg4XHU5Mzk5XHU5MzlmXHU5MzhkXHU5M2IxXHU5MzkxXHU5M2IyXHU5M2E0XHU5M2E4XHU5M2I0XHU5M2EzXHU5M2E1'@; put 'XHU5NWQyXHU5NWQzXHU5NWQxXHU5NmIzXHU5NmQ3XHU5NmRhXHU1ZGMyXHU5NmRmXHU5NmQ4XHU5NmRkXHU5NzIzXHU5NzIyXHU5NzI1XHU5N2FjXHU5N2FlXHU5N2E4XHU5N2FiXHU5N2E0XHU5N2FhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5N2EyXHU5N2E1'@; put 'XHU5N2Q3XHU5N2Q5XHU5N2Q2XHU5N2Q4XHU5N2ZhXHU5ODUwXHU5ODUxXHU5ODUyXHU5OGI4XHU5OTQxXHU5OTNjXHU5OTNhXHU5YTBmXHU5YTBiXHU5YTA5XHU5YTBkXHU5YTA0XHU5YTExXHU5YTBhXHU5YTA1XHU5YTA3XHU5YTA2XHU5YWMwXHU5YWRjXHU5YjA4XHU5YjA0XHU5YjA1XHU5'@; put 'YjI5XHU5YjM1XHU5YjRhXHU5YjRjXHU5YjRiXHU5YmM3XHU5YmM2XHU5YmMzXHU5YmJmXHU5YmMxXHU5YmI1XHU5YmI4XHU5YmQzXHU5YmI2XHU5YmM0XHU5YmI5XHU5YmJkXHU5ZDVjXHU5ZDUzXHU5ZDRmXHU5ZDRhXHU5ZDViXHU5ZDRiXHU5ZDU5XHU5ZDU2XHU5ZDRjXHU5ZDU3XHU5ZDUy'@; put 'XHU5ZDU0XHU5ZDVmXHU5ZDU4XHU5ZDVhXHU5ZThlXHU5ZThjXHU5ZWRmXHU5ZjAxXHU5ZjAwXHU5ZjE2XHU5ZjI1XHU5ZjJiXHU5ZjJhXHU5ZjI5XHU5ZjI4XHU5ZjRjXHU5ZjU1XHU1MTM0XHU1MTM1XHU1Mjk2XHU1MmY3XHU1M2I0XHU1NmFiXHU1NmFkXHU1NmE2XHU1NmE3XHU1NmFhXHU1'@; put 'NmFjXHU1OGRhXHU1OGRkXHU1OGRiXHU1OTEyXHU1YjNkXHU1YjNlXHU1YjNmXHU1ZGMzXHU1ZTcwXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjQxXS5sZW5ndGg7KytwKTY1NTMzIT09X1syNDFdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjQxXVtwXV09NjE2OTYrcCxiWzYxNjk2K3Bd'@; put 'PV9bMjQxXVtwXSk7Zm9yKF9bMjQyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1ZmJmXHU2MWZiXHU2NTA3XHU2NTEwXHU2NTBkXHU2NTA5XHU2NTBjXHU2NTBlXHU2NTg0XHU2NWRlXHU2NWRkXHU2NmRlXHU2YWU3XHU2YWUwXHU2'@; put 'YWNjXHU2YWQxXHU2YWQ5XHU2YWNiXHU2YWRmXHU2YWRjXHU2YWQwXHU2YWViXHU2YWNmXHU2YWNkXHU2YWRlXHU2YjYwXHU2YmIwXHU2YzBjXHU3MDE5XHU3MDI3XHU3MDIwXHU3MDE2XHU3MDJiXHU3MDIxXHU3MDIyXHU3MDIzXHU3MDI5XHU3MDE3XHU3MDI0XHU3MDFjXHU3MDJhXHU3MjBj'@; put 'XHU3MjBhXHU3MjA3XHU3MjAyXHU3MjA1XHU3MmE1XHU3MmE2XHU3MmE0XHU3MmEzXHU3MmExXHU3NGNiXHU3NGM1XHU3NGI3XHU3NGMzXHU3NTE2XHU3NjYwXHU3N2M5XHU3N2NhXHU3N2M0XHU3N2YxXHU3OTFkXHU3OTFiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHU3OTIxXHU3OTFjXHU3OTE3XHU3OTFlXHU3OWIwXHU3YTY3XHU3YTY4XHU3YzMzXHU3YzNjXHU3YzM5XHU3YzJjXHU3YzNiXHU3Y2VjXHU3Y2VhXHU3ZTc2XHU3ZTc1XHU3ZTc4XHU3ZTcwXHU3ZTc3XHU3ZTZmXHU3ZTdhXHU3ZTcyXHU3ZTc0XHU3ZTY4XHU3ZjRiXHU3ZjRhXHU3ZjgzXHU3'@; put 'Zjg2XHU3ZmI3XHU3ZmZkXHU3ZmZlXHU4MDc4XHU4MWQ3XHU4MWQ1XHU4MjY0XHU4MjYxXHU4MjYzXHU4NWViXHU4NWYxXHU4NWVkXHU4NWQ5XHU4NWUxXHU4NWU4XHU4NWRhXHU4NWQ3XHU4NWVjXHU4NWYyXHU4NWY4XHU4NWQ4XHU4NWRmXHU4NWUzXHU4NWRjXHU4NWQxXHU4NWYwXHU4NWU2'@; put 'XHU4NWVmXHU4NWRlXHU4NWUyXHU4ODAwXHU4N2ZhXHU4ODAzXHU4N2Y2XHU4N2Y3XHU4ODA5XHU4ODBjXHU4ODBiXHU4ODA2XHU4N2ZjXHU4ODA4XHU4N2ZmXHU4ODBhXHU4ODAyXHU4OTYyXHU4OTVhXHU4OTViXHU4OTU3XHU4OTYxXHU4OTVjXHU4OTU4XHU4OTVkXHU4OTU5XHU4OTg4XHU4'@; put 'OWI3XHU4OWI2XHU4OWY2XHU4YjUwXHU4YjQ4XHU4YjRhXHU4YjQwXHU4YjUzXHU4YjU2XHU4YjU0XHU4YjRiXHU4YjU1XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjQyXS5sZW5ndGg7KytwKTY1NTMzIT09X1syNDJdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjQyXVtwXV09NjE5NTIr'@; put 'cCxiWzYxOTUyK3BdPV9bMjQyXVtwXSk7Zm9yKF9bMjQzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4YjUxXHU4YjQyXHU4YjUyXHU4YjU3XHU4YzQzXHU4Yzc3XHU4Yzc2XHU4YzlhXHU4ZDA2XHU4ZDA3XHU4ZDA5XHU4ZGFjXHU4'@; put 'ZGFhXHU4ZGFkXHU4ZGFiXHU4ZTZkXHU4ZTc4XHU4ZTczXHU4ZTZhXHU4ZTZmXHU4ZTdiXHU4ZWMyXHU4ZjUyXHU4ZjUxXHU4ZjRmXHU4ZjUwXHU4ZjUzXHU4ZmI0XHU5MTQwXHU5MTNmXHU5MWIwXHU5MWFkXHU5M2RlXHU5M2M3XHU5M2NmXHU5M2MyXHU5M2RhXHU5M2QwXHU5M2Y5XHU5M2Vj'@; put 'XHU5M2NjXHU5M2Q5XHU5M2E5XHU5M2U2XHU5M2NhXHU5M2Q0XHU5M2VlXHU5M2UzXHU5M2Q1XHU5M2M0XHU5M2NlXHU5M2MwXHU5M2QyXHU5M2U3XHU5NTdkXHU5NWRhXHU5NWRiXHU5NmUxXHU5NzI5XHU5NzJiXHU5NzJjXHU5NzI4XHU5NzI2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHU5N2IzXHU5N2I3XHU5N2I2XHU5N2RkXHU5N2RlXHU5N2RmXHU5ODVjXHU5ODU5XHU5ODVkXHU5ODU3XHU5OGJmXHU5OGJkXHU5OGJiXHU5OGJlXHU5OTQ4XHU5OTQ3XHU5OTQzXHU5OWE2XHU5OWE3XHU5YTFhXHU5YTE1XHU5YTI1XHU5YTFkXHU5YTI0XHU5YTFiXHU5'@; put 'YTIyXHU5YTIwXHU5YTI3XHU5YTIzXHU5YTFlXHU5YTFjXHU5YTE0XHU5YWMyXHU5YjBiXHU5YjBhXHU5YjBlXHU5YjBjXHU5YjM3XHU5YmVhXHU5YmViXHU5YmUwXHU5YmRlXHU5YmU0XHU5YmU2XHU5YmUyXHU5YmYwXHU5YmQ0XHU5YmQ3XHU5YmVjXHU5YmRjXHU5YmQ5XHU5YmU1XHU5YmQ1'@; put 'XHU5YmUxXHU5YmRhXHU5ZDc3XHU5ZDgxXHU5ZDhhXHU5ZDg0XHU5ZDg4XHU5ZDcxXHU5ZDgwXHU5ZDc4XHU5ZDg2XHU5ZDhiXHU5ZDhjXHU5ZDdkXHU5ZDZiXHU5ZDc0XHU5ZDc1XHU5ZDcwXHU5ZDY5XHU5ZDg1XHU5ZDczXHU5ZDdiXHU5ZDgyXHU5ZDZmXHU5ZDc5XHU5ZDdmXHU5ZDg3XHU5'@; put 'ZDY4XHU5ZTk0XHU5ZTkxXHU5ZWMwXHU5ZWZjXHU5ZjJkXHU5ZjQwXHU5ZjQxXHU5ZjRkXHU5ZjU2XHU5ZjU3XHU5ZjU4XHU1MzM3XHU1NmIyXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjQzXS5sZW5ndGg7KytwKTY1NTMzIT09X1syNDNdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjQz'@; put 'XVtwXV09NjIyMDgrcCxiWzYyMjA4K3BdPV9bMjQzXVtwXSk7Zm9yKF9bMjQ0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NmI1XHU1NmIzXHU1OGUzXHU1YjQ1XHU1ZGM2XHU1ZGM3XHU1ZWVlXHU1ZWVmXHU1ZmMwXHU1ZmMxXHU2'@; put 'MWY5XHU2NTE3XHU2NTE2XHU2NTE1XHU2NTEzXHU2NWRmXHU2NmU4XHU2NmUzXHU2NmU0XHU2YWYzXHU2YWYwXHU2YWVhXHU2YWU4XHU2YWY5XHU2YWYxXHU2YWVlXHU2YWVmXHU3MDNjXHU3MDM1XHU3MDJmXHU3MDM3XHU3MDM0XHU3MDMxXHU3MDQyXHU3MDM4XHU3MDNmXHU3MDNhXHU3MDM5'@; put 'XHU3MDQwXHU3MDNiXHU3MDMzXHU3MDQxXHU3MjEzXHU3MjE0XHU3MmE4XHU3MzdkXHU3MzdjXHU3NGJhXHU3NmFiXHU3NmFhXHU3NmJlXHU3NmVkXHU3N2NjXHU3N2NlXHU3N2NmXHU3N2NkXHU3N2YyXHU3OTI1XHU3OTIzXHU3OTI3XHU3OTI4XHU3OTI0XHU3OTI5XHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3OWIyXHU3YTZlXHU3YTZjXHU3YTZkXHU3YWY3XHU3YzQ5XHU3YzQ4XHU3YzRhXHU3YzQ3XHU3YzQ1XHU3Y2VlXHU3ZTdiXHU3ZTdlXHU3ZTgxXHU3ZTgwXHU3ZmJhXHU3ZmZmXHU4MDc5XHU4MWRiXHU4MWQ5XHU4MjBiXHU4MjY4XHU4MjY5XHU4'@; put 'NjIyXHU4NWZmXHU4NjAxXHU4NWZlXHU4NjFiXHU4NjAwXHU4NWY2XHU4NjA0XHU4NjA5XHU4NjA1XHU4NjBjXHU4NWZkXHU4ODE5XHU4ODEwXHU4ODExXHU4ODE3XHU4ODEzXHU4ODE2XHU4OTYzXHU4OTY2XHU4OWI5XHU4OWY3XHU4YjYwXHU4YjZhXHU4YjVkXHU4YjY4XHU4YjYzXHU4YjY1'@; put 'XHU4YjY3XHU4YjZkXHU4ZGFlXHU4ZTg2XHU4ZTg4XHU4ZTg0XHU4ZjU5XHU4ZjU2XHU4ZjU3XHU4ZjU1XHU4ZjU4XHU4ZjVhXHU5MDhkXHU5MTQzXHU5MTQxXHU5MWI3XHU5MWI1XHU5MWIyXHU5MWIzXHU5NDBiXHU5NDEzXHU5M2ZiXHU5NDIwXHU5NDBmXHU5NDE0XHU5M2ZlXHU5NDE1XHU5'@; put 'NDEwXHU5NDI4XHU5NDE5XHU5NDBkXHU5M2Y1XHU5NDAwXHU5M2Y3XHU5NDA3XHU5NDBlXHU5NDE2XHU5NDEyXHU5M2ZhXHU5NDA5XHU5M2Y4XHU5NDBhXHU5M2ZmXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjQ0XS5sZW5ndGg7KytwKTY1NTMzIT09X1syNDRdW3BdLmNoYXJDb2RlQXQo'@; put 'MCkmJihEW19bMjQ0XVtwXV09NjI0NjQrcCxiWzYyNDY0K3BdPV9bMjQ0XVtwXSk7Zm9yKF9bMjQ1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5M2ZjXHU5NDBjXHU5M2Y2XHU5NDExXHU5NDA2XHU5NWRlXHU5NWUwXHU5NWRmXHU5'@; put 'NzJlXHU5NzJmXHU5N2I5XHU5N2JiXHU5N2ZkXHU5N2ZlXHU5ODYwXHU5ODYyXHU5ODYzXHU5ODVmXHU5OGMxXHU5OGMyXHU5OTUwXHU5OTRlXHU5OTU5XHU5OTRjXHU5OTRiXHU5OTUzXHU5YTMyXHU5YTM0XHU5YTMxXHU5YTJjXHU5YTJhXHU5YTM2XHU5YTI5XHU5YTJlXHU5YTM4XHU5YTJk'@; put 'XHU5YWM3XHU5YWNhXHU5YWM2XHU5YjEwXHU5YjEyXHU5YjExXHU5YzBiXHU5YzA4XHU5YmY3XHU5YzA1XHU5YzEyXHU5YmY4XHU5YzQwXHU5YzA3XHU5YzBlXHU5YzA2XHU5YzE3XHU5YzE0XHU5YzA5XHU5ZDlmXHU5ZDk5XHU5ZGE0XHU5ZDlkXHU5ZDkyXHU5ZDk4XHU5ZDkwXHU5ZDliXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ZGEwXHU5ZDk0XHU5ZDljXHU5ZGFhXHU5ZDk3XHU5ZGExXHU5ZDlhXHU5ZGEyXHU5ZGE4XHU5ZDllXHU5ZGEzXHU5ZGJmXHU5ZGE5XHU5ZDk2XHU5ZGE2XHU5ZGE3XHU5ZTk5XHU5ZTliXHU5ZTlhXHU5ZWU1XHU5ZWU0XHU5'@; put 'ZWU3XHU5ZWU2XHU5ZjMwXHU5ZjJlXHU5ZjViXHU5ZjYwXHU5ZjVlXHU5ZjVkXHU5ZjU5XHU5ZjkxXHU1MTNhXHU1MTM5XHU1Mjk4XHU1Mjk3XHU1NmMzXHU1NmJkXHU1NmJlXHU1YjQ4XHU1YjQ3XHU1ZGNiXHU1ZGNmXHU1ZWYxXHU2MWZkXHU2NTFiXHU2YjAyXHU2YWZjXHU2YjAzXHU2YWY4'@; put 'XHU2YjAwXHU3MDQzXHU3MDQ0XHU3MDRhXHU3MDQ4XHU3MDQ5XHU3MDQ1XHU3MDQ2XHU3MjFkXHU3MjFhXHU3MjE5XHU3MzdlXHU3NTE3XHU3NjZhXHU3N2QwXHU3OTJkXHU3OTMxXHU3OTJmXHU3YzU0XHU3YzUzXHU3Y2YyXHU3ZThhXHU3ZTg3XHU3ZTg4XHU3ZThiXHU3ZTg2XHU3ZThkXHU3'@; put 'ZjRkXHU3ZmJiXHU4MDMwXHU4MWRkXHU4NjE4XHU4NjJhXHU4NjI2XHU4NjFmXHU4NjIzXHU4NjFjXHU4NjE5XHU4NjI3XHU4NjJlXHU4NjIxXHU4NjIwXHU4NjI5XHU4NjFlXHU4NjI1XHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjQ1XS5sZW5ndGg7KytwKTY1NTMzIT09X1syNDVdW3Bd'@; put 'LmNoYXJDb2RlQXQoMCkmJihEW19bMjQ1XVtwXV09NjI3MjArcCxiWzYyNzIwK3BdPV9bMjQ1XVtwXSk7Zm9yKF9bMjQ2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4ODI5XHU4ODFkXHU4ODFiXHU4ODIwXHU4ODI0XHU4ODFjXHU4'@; put 'ODJiXHU4ODRhXHU4OTZkXHU4OTY5XHU4OTZlXHU4OTZiXHU4OWZhXHU4Yjc5XHU4Yjc4XHU4YjQ1XHU4YjdhXHU4YjdiXHU4ZDEwXHU4ZDE0XHU4ZGFmXHU4ZThlXHU4ZThjXHU4ZjVlXHU4ZjViXHU4ZjVkXHU5MTQ2XHU5MTQ0XHU5MTQ1XHU5MWI5XHU5NDNmXHU5NDNiXHU5NDM2XHU5NDI5'@; put 'XHU5NDNkXHU5NDNjXHU5NDMwXHU5NDM5XHU5NDJhXHU5NDM3XHU5NDJjXHU5NDQwXHU5NDMxXHU5NWU1XHU5NWU0XHU5NWUzXHU5NzM1XHU5NzNhXHU5N2JmXHU5N2UxXHU5ODY0XHU5OGM5XHU5OGM2XHU5OGMwXHU5OTU4XHU5OTU2XHU5YTM5XHU5YTNkXHU5YTQ2XHU5YTQ0XHU5YTQyXHU5'@; put 'YTQxXHU5YTNhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5YTNmXHU5YWNkXHU5YjE1XHU5YjE3XHU5YjE4XHU5YjE2XHU5YjNhXHU5YjUyXHU5YzJiXHU5YzFkXHU5YzFjXHU5YzJjXHU5YzIzXHU5YzI4XHU5YzI5XHU5YzI0XHU5YzIxXHU5ZGI3XHU5ZGI2XHU5'@; put 'ZGJjXHU5ZGMxXHU5ZGM3XHU5ZGNhXHU5ZGNmXHU5ZGJlXHU5ZGM1XHU5ZGMzXHU5ZGJiXHU5ZGI1XHU5ZGNlXHU5ZGI5XHU5ZGJhXHU5ZGFjXHU5ZGM4XHU5ZGIxXHU5ZGFkXHU5ZGNjXHU5ZGIzXHU5ZGNkXHU5ZGIyXHU5ZTdhXHU5ZTljXHU5ZWViXHU5ZWVlXHU5ZWVkXHU5ZjFiXHU5ZjE4'@; put 'XHU5ZjFhXHU5ZjMxXHU5ZjRlXHU5ZjY1XHU5ZjY0XHU5ZjkyXHU0ZWI5XHU1NmM2XHU1NmM1XHU1NmNiXHU1OTcxXHU1YjRiXHU1YjRjXHU1ZGQ1XHU1ZGQxXHU1ZWYyXHU2NTIxXHU2NTIwXHU2NTI2XHU2NTIyXHU2YjBiXHU2YjA4XHU2YjA5XHU2YzBkXHU3MDU1XHU3MDU2XHU3MDU3XHU3'@; put 'MDUyXHU3MjFlXHU3MjFmXHU3MmE5XHU3MzdmXHU3NGQ4XHU3NGQ1XHU3NGQ5XHU3NGQ3XHU3NjZkXHU3NmFkXHU3OTM1XHU3OWI0XHU3YTcwXHU3YTcxXHU3YzU3XHU3YzVjXHU3YzU5XHU3YzViXHU3YzVhXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjQ2XS5sZW5ndGg7KytwKTY1NTMz'@; put 'IT09X1syNDZdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjQ2XVtwXV09NjI5NzYrcCxiWzYyOTc2K3BdPV9bMjQ2XVtwXSk7Zm9yKF9bMjQ3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3Y2Y0XHU3Y2YxXHU3ZTkxXHU3ZjRmXHU3'@; put 'Zjg3XHU4MWRlXHU4MjZiXHU4NjM0XHU4NjM1XHU4NjMzXHU4NjJjXHU4NjMyXHU4NjM2XHU4ODJjXHU4ODI4XHU4ODI2XHU4ODJhXHU4ODI1XHU4OTcxXHU4OWJmXHU4OWJlXHU4OWZiXHU4YjdlXHU4Yjg0XHU4YjgyXHU4Yjg2XHU4Yjg1XHU4YjdmXHU4ZDE1XHU4ZTk1XHU4ZTk0XHU4ZTlh'@; put 'XHU4ZTkyXHU4ZTkwXHU4ZTk2XHU4ZTk3XHU4ZjYwXHU4ZjYyXHU5MTQ3XHU5NDRjXHU5NDUwXHU5NDRhXHU5NDRiXHU5NDRmXHU5NDQ3XHU5NDQ1XHU5NDQ4XHU5NDQ5XHU5NDQ2XHU5NzNmXHU5N2UzXHU5ODZhXHU5ODY5XHU5OGNiXHU5OTU0XHU5OTViXHU5YTRlXHU5YTUzXHU5YTU0XHU5'@; put 'YTRjXHU5YTRmXHU5YTQ4XHU5YTRhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5YTQ5XHU5YTUyXHU5YTUwXHU5YWQwXHU5YjE5XHU5YjJiXHU5YjNiXHU5YjU2XHU5YjU1XHU5YzQ2XHU5YzQ4XHU5YzNmXHU5YzQ0XHU5YzM5XHU5YzMzXHU5YzQxXHU5YzNjXHU5'@; put 'YzM3XHU5YzM0XHU5YzMyXHU5YzNkXHU5YzM2XHU5ZGRiXHU5ZGQyXHU5ZGRlXHU5ZGRhXHU5ZGNiXHU5ZGQwXHU5ZGRjXHU5ZGQxXHU5ZGRmXHU5ZGU5XHU5ZGQ5XHU5ZGQ4XHU5ZGQ2XHU5ZGY1XHU5ZGQ1XHU5ZGRkXHU5ZWI2XHU5ZWYwXHU5ZjM1XHU5ZjMzXHU5ZjMyXHU5ZjQyXHU5ZjZi'@; put 'XHU5Zjk1XHU5ZmEyXHU1MTNkXHU1Mjk5XHU1OGU4XHU1OGU3XHU1OTcyXHU1YjRkXHU1ZGQ4XHU4ODJmXHU1ZjRmXHU2MjAxXHU2MjAzXHU2MjA0XHU2NTI5XHU2NTI1XHU2NTk2XHU2NmViXHU2YjExXHU2YjEyXHU2YjBmXHU2YmNhXHU3MDViXHU3MDVhXHU3MjIyXHU3MzgyXHU3MzgxXHU3'@; put 'MzgzXHU3NjcwXHU3N2Q0XHU3YzY3XHU3YzY2XHU3ZTk1XHU4MjZjXHU4NjNhXHU4NjQwXHU4NjM5XHU4NjNjXHU4NjMxXHU4NjNiXHU4NjNlXHU4ODMwXHU4ODMyXHU4ODJlXHU4ODMzXHU4OTc2XHU4OTc0XHU4OTczXHU4OWZlXHVmZmZkIi5zcGxpdCgiIikscD0wO3AhPV9bMjQ3XS5sZW5n'@; put 'dGg7KytwKTY1NTMzIT09X1syNDddW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjQ3XVtwXV09NjMyMzIrcCxiWzYzMjMyK3BdPV9bMjQ3XVtwXSk7Zm9yKF9bMjQ4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4YjhjXHU4YjhlXHU4'@; put 'YjhiXHU4Yjg4XHU4YzQ1XHU4ZDE5XHU4ZTk4XHU4ZjY0XHU4ZjYzXHU5MWJjXHU5NDYyXHU5NDU1XHU5NDVkXHU5NDU3XHU5NDVlXHU5N2M0XHU5N2M1XHU5ODAwXHU5YTU2XHU5YTU5XHU5YjFlXHU5YjFmXHU5YjIwXHU5YzUyXHU5YzU4XHU5YzUwXHU5YzRhXHU5YzRkXHU5YzRiXHU5YzU1'@; put 'XHU5YzU5XHU5YzRjXHU5YzRlXHU5ZGZiXHU5ZGY3XHU5ZGVmXHU5ZGUzXHU5ZGViXHU5ZGY4XHU5ZGU0XHU5ZGY2XHU5ZGUxXHU5ZGVlXHU5ZGU2XHU5ZGYyXHU5ZGYwXHU5ZGUyXHU5ZGVjXHU5ZGY0XHU5ZGYzXHU5ZGU4XHU5ZGVkXHU5ZWMyXHU5ZWQwXHU5ZWYyXHU5ZWYzXHU5ZjA2XHU5'@; put 'ZjFjXHU5ZjM4XHU5ZjM3XHU5ZjM2XHU5ZjQzXHU5ZjRmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ZjcxXHU5ZjcwXHU5ZjZlXHU5ZjZmXHU1NmQzXHU1NmNkXHU1YjRlXHU1YzZkXHU2NTJkXHU2NmVkXHU2NmVlXHU2YjEzXHU3MDVmXHU3MDYxXHU3MDVkXHU3'@; put 'MDYwXHU3MjIzXHU3NGRiXHU3NGU1XHU3N2Q1XHU3OTM4XHU3OWI3XHU3OWI2XHU3YzZhXHU3ZTk3XHU3Zjg5XHU4MjZkXHU4NjQzXHU4ODM4XHU4ODM3XHU4ODM1XHU4ODRiXHU4Yjk0XHU4Yjk1XHU4ZTllXHU4ZTlmXHU4ZWEwXHU4ZTlkXHU5MWJlXHU5MWJkXHU5MWMyXHU5NDZiXHU5NDY4'@; put 'XHU5NDY5XHU5NmU1XHU5NzQ2XHU5NzQzXHU5NzQ3XHU5N2M3XHU5N2U1XHU5YTVlXHU5YWQ1XHU5YjU5XHU5YzYzXHU5YzY3XHU5YzY2XHU5YzYyXHU5YzVlXHU5YzYwXHU5ZTAyXHU5ZGZlXHU5ZTA3XHU5ZTAzXHU5ZTA2XHU5ZTA1XHU5ZTAwXHU5ZTAxXHU5ZTA5XHU5ZGZmXHU5ZGZkXHU5'@; put 'ZTA0XHU5ZWEwXHU5ZjFlXHU5ZjQ2XHU5Zjc0XHU5Zjc1XHU5Zjc2XHU1NmQ0XHU2NTJlXHU2NWI4XHU2YjE4XHU2YjE5XHU2YjE3XHU2YjFhXHU3MDYyXHU3MjI2XHU3MmFhXHU3N2Q4XHU3N2Q5XHU3OTM5XHU3YzY5XHU3YzZiXHU3Y2Y2XHU3ZTlhXHVmZmZkIi5zcGxpdCgiIikscD0wO3Ah'@; put 'PV9bMjQ4XS5sZW5ndGg7KytwKTY1NTMzIT09X1syNDhdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjQ4XVtwXV09NjM0ODgrcCxiWzYzNDg4K3BdPV9bMjQ4XVtwXSk7Zm9yKF9bMjQ5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3'@; put 'ZTk4XHU3ZTliXHU3ZTk5XHU4MWUwXHU4MWUxXHU4NjQ2XHU4NjQ3XHU4NjQ4XHU4OTc5XHU4OTdhXHU4OTdjXHU4OTdiXHU4OWZmXHU4Yjk4XHU4Yjk5XHU4ZWE1XHU4ZWE0XHU4ZWEzXHU5NDZlXHU5NDZkXHU5NDZmXHU5NDcxXHU5NDczXHU5NzQ5XHU5ODcyXHU5OTVmXHU5YzY4XHU5YzZl'@; put 'XHU5YzZkXHU5ZTBiXHU5ZTBkXHU5ZTEwXHU5ZTBmXHU5ZTEyXHU5ZTExXHU5ZWExXHU5ZWY1XHU5ZjA5XHU5ZjQ3XHU5Zjc4XHU5ZjdiXHU5ZjdhXHU5Zjc5XHU1NzFlXHU3MDY2XHU3YzZmXHU4ODNjXHU4ZGIyXHU4ZWE2XHU5MWMzXHU5NDc0XHU5NDc4XHU5NDc2XHU5NDc1XHU5YTYwXHU5'@; put 'Yzc0XHU5YzczXHU5YzcxXHU5Yzc1XHU5ZTE0XHU5ZTEzXHU5ZWY2XHU5ZjBhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ZmE0XHU3MDY4XHU3MDY1XHU3Y2Y3XHU4NjZhXHU4ODNlXHU4ODNkXHU4ODNmXHU4YjllXHU4YzljXHU4ZWE5XHU4ZWM5XHU5NzRiXHU5'@; put 'ODczXHU5ODc0XHU5OGNjXHU5OTYxXHU5OWFiXHU5YTY0XHU5YTY2XHU5YTY3XHU5YjI0XHU5ZTE1XHU5ZTE3XHU5ZjQ4XHU2MjA3XHU2YjFlXHU3MjI3XHU4NjRjXHU4ZWE4XHU5NDgyXHU5NDgwXHU5NDgxXHU5YTY5XHU5YTY4XHU5YjJlXHU5ZTE5XHU3MjI5XHU4NjRiXHU4YjlmXHU5NDgz'@; put 'XHU5Yzc5XHU5ZWI3XHU3Njc1XHU5YTZiXHU5YzdhXHU5ZTFkXHU3MDY5XHU3MDZhXHU5ZWE0XHU5ZjdlXHU5ZjQ5XHU5Zjk4XHU3ODgxXHU5MmI5XHU4OGNmXHU1OGJiXHU2MDUyXHU3Y2E3XHU1YWZhXHUyNTU0XHUyNTY2XHUyNTU3XHUyNTYwXHUyNTZjXHUyNTYzXHUyNTVhXHUyNTY5XHUy'@; put 'NTVkXHUyNTUyXHUyNTY0XHUyNTU1XHUyNTVlXHUyNTZhXHUyNTYxXHUyNTU4XHUyNTY3XHUyNTViXHUyNTUzXHUyNTY1XHUyNTU2XHUyNTVmXHUyNTZiXHUyNTYyXHUyNTU5XHUyNTY4XHUyNTVjXHUyNTUxXHUyNTUwXHUyNTZkXHUyNTZlXHUyNTcwXHUyNTZmXHUyNTkzXHVmZmZkIi5zcGxp'@; put 'dCgiIikscD0wO3AhPV9bMjQ5XS5sZW5ndGg7KytwKTY1NTMzIT09X1syNDldW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMjQ5XVtwXV09NjM3NDQrcCxiWzYzNzQ0K3BdPV9bMjQ5XVtwXSk7cmV0dXJue2VuYzpELGRlYzpifX0oKSxKWzEyNTBdPWZ1bmN0aW9uKCl7Zm9yKHZhciBiPSJcMFx4'@; put 'MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RV'@; put 'VldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MjBhY1x1ZmZmZFx1MjAxYVx1ZmZmZFx1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1ZmZmZFx1MjAzMFx1MDE2MFx1MjAzOVx1MDE1YVx1MDE2NFx1MDE3ZFx1MDE3OVx1ZmZmZFx1MjAxOFx1MjAxOVx1MjAx'@; put 'Y1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1ZmZmZFx1MjEyMlx1MDE2MVx1MjAzYVx1MDE1Ylx1MDE2NVx1MDE3ZVx1MDE3YVx4YTBcdTAyYzdcdTAyZDhcdTAxNDFceGE0XHUwMTA0XHhhNlx4YTdceGE4XHhhOVx1MDE1ZVx4YWJceGFjXHhhZFx4YWVcdTAxN2JceGIwXHhiMVx1MDJkYlx1'@; put 'MDE0Mlx4YjRceGI1XHhiNlx4YjdceGI4XHUwMTA1XHUwMTVmXHhiYlx1MDEzZFx1MDJkZFx1MDEzZVx1MDE3Y1x1MDE1NFx4YzFceGMyXHUwMTAyXHhjNFx1MDEzOVx1MDEwNlx4YzdcdTAxMGNceGM5XHUwMTE4XHhjYlx1MDExYVx4Y2RceGNlXHUwMTBlXHUwMTEwXHUwMTQzXHUwMTQ3XHhk'@; put 'M1x4ZDRcdTAxNTBceGQ2XHhkN1x1MDE1OFx1MDE2ZVx4ZGFcdTAxNzBceGRjXHhkZFx1MDE2Mlx4ZGZcdTAxNTVceGUxXHhlMlx1MDEwM1x4ZTRcdTAxM2FcdTAxMDdceGU3XHUwMTBkXHhlOVx1MDExOVx4ZWJcdTAxMWJceGVkXHhlZVx1MDEwZlx1MDExMVx1MDE0NFx1MDE0OFx4ZjNceGY0'@; put 'XHUwMTUxXHhmNlx4ZjdcdTAxNTlcdTAxNmZceGZhXHUwMTcxXHhmY1x4ZmRcdTAxNjNcdTAyZDkiLEQ9W10sXz17fSxwPTA7MjU2IT1wOysrcCk2NTUzMyE9PWIuY2hhckNvZGVBdChwKSYmKF9bYi5jaGFyQXQocCldPXApLERbcF09Yi5jaGFyQXQocCk7cmV0dXJue2VuYzpfLGRlYzpEfX0o'@; put 'KSxKWzEyNTFdPWZ1bmN0aW9uKCl7Zm9yKHZhciBiPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAx'@; put 'MjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MDQwMlx1MDQwM1x1MjAxYVx1MDQ1M1x1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1MjBhY1x1MjAzMFx1MDQwOVx1MjAzOVx1MDQwYVx1MDQw'@; put 'Y1x1MDQwYlx1MDQwZlx1MDQ1Mlx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1ZmZmZFx1MjEyMlx1MDQ1OVx1MjAzYVx1MDQ1YVx1MDQ1Y1x1MDQ1Ylx1MDQ1Zlx4YTBcdTA0MGVcdTA0NWVcdTA0MDhceGE0XHUwNDkwXHhhNlx4YTdcdTA0MDFceGE5XHUwNDA0'@; put 'XHhhYlx4YWNceGFkXHhhZVx1MDQwN1x4YjBceGIxXHUwNDA2XHUwNDU2XHUwNDkxXHhiNVx4YjZceGI3XHUwNDUxXHUyMTE2XHUwNDU0XHhiYlx1MDQ1OFx1MDQwNVx1MDQ1NVx1MDQ1N1x1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQx'@; put 'OVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1MDQyZVx1MDQyZlx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1'@; put 'MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0ZFx1MDQ0ZVx1MDQ0ZiIsRD1b'@; put 'XSxfPXt9LHA9MDsyNTYhPXA7KytwKTY1NTMzIT09Yi5jaGFyQ29kZUF0KHApJiYoX1tiLmNoYXJBdChwKV09cCksRFtwXT1iLmNoYXJBdChwKTtyZXR1cm57ZW5jOl8sZGVjOkR9fSgpLEpbMTI1Ml09ZnVuY3Rpb24oKXtmb3IodmFyIGI9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgw'@; put 'N1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xt'@; put 'bm9wcXJzdHV2d3h5ent8fX5ceDdmXHUyMGFjXHVmZmZkXHUyMDFhXHUwMTkyXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUwMmM2XHUyMDMwXHUwMTYwXHUyMDM5XHUwMTUyXHVmZmZkXHUwMTdkXHVmZmZkXHVmZmZkXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0'@; put 'XHUwMmRjXHUyMTIyXHUwMTYxXHUyMDNhXHUwMTUzXHVmZmZkXHUwMTdlXHUwMTc4XHhhMFx4YTFceGEyXHhhM1x4YTRceGE1XHhhNlx4YTdceGE4XHhhOVx4YWFceGFiXHhhY1x4YWRceGFlXHhhZlx4YjBceGIxXHhiMlx4YjNceGI0XHhiNVx4YjZceGI3XHhiOFx4YjlceGJhXHhiYlx4YmNc'@; put 'eGJkXHhiZVx4YmZceGMwXHhjMVx4YzJceGMzXHhjNFx4YzVceGM2XHhjN1x4YzhceGM5XHhjYVx4Y2JceGNjXHhjZFx4Y2VceGNmXHhkMFx4ZDFceGQyXHhkM1x4ZDRceGQ1XHhkNlx4ZDdceGQ4XHhkOVx4ZGFceGRiXHhkY1x4ZGRceGRlXHhkZlx4ZTBceGUxXHhlMlx4ZTNceGU0XHhlNVx4'@; put 'ZTZceGU3XHhlOFx4ZTlceGVhXHhlYlx4ZWNceGVkXHhlZVx4ZWZceGYwXHhmMVx4ZjJceGYzXHhmNFx4ZjVceGY2XHhmN1x4ZjhceGY5XHhmYVx4ZmJceGZjXHhmZFx4ZmVceGZmIixEPVtdLF89e30scD0wOzI1NiE9cDsrK3ApNjU1MzMhPT1iLmNoYXJDb2RlQXQocCkmJihfW2IuY2hhckF0'@; put 'KHApXT1wKSxEW3BdPWIuY2hhckF0KHApO3JldHVybntlbmM6XyxkZWM6RH19KCksSlsxMjUzXT1mdW5jdGlvbigpe2Zvcih2YXIgYj0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThc'@; put 'eDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZcdTIwYWNcdWZmZmRcdTIwMWFcdTAxOTJcdTIwMWVcdTIwMjZc'@; put 'dTIwMjBcdTIwMjFcdWZmZmRcdTIwMzBcdWZmZmRcdTIwMzlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdWZmZmRcdTIxMjJcdWZmZmRcdTIwM2FcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRceGEwXHUwMzg1'@; put 'XHUwMzg2XHhhM1x4YTRceGE1XHhhNlx4YTdceGE4XHhhOVx1ZmZmZFx4YWJceGFjXHhhZFx4YWVcdTIwMTVceGIwXHhiMVx4YjJceGIzXHUwMzg0XHhiNVx4YjZceGI3XHUwMzg4XHUwMzg5XHUwMzhhXHhiYlx1MDM4Y1x4YmRcdTAzOGVcdTAzOGZcdTAzOTBcdTAzOTFcdTAzOTJcdTAzOTNc'@; put 'dTAzOTRcdTAzOTVcdTAzOTZcdTAzOTdcdTAzOThcdTAzOTlcdTAzOWFcdTAzOWJcdTAzOWNcdTAzOWRcdTAzOWVcdTAzOWZcdTAzYTBcdTAzYTFcdWZmZmRcdTAzYTNcdTAzYTRcdTAzYTVcdTAzYTZcdTAzYTdcdTAzYThcdTAzYTlcdTAzYWFcdTAzYWJcdTAzYWNcdTAzYWRcdTAzYWVcdTAz'@; put 'YWZcdTAzYjBcdTAzYjFcdTAzYjJcdTAzYjNcdTAzYjRcdTAzYjVcdTAzYjZcdTAzYjdcdTAzYjhcdTAzYjlcdTAzYmFcdTAzYmJcdTAzYmNcdTAzYmRcdTAzYmVcdTAzYmZcdTAzYzBcdTAzYzFcdTAzYzJcdTAzYzNcdTAzYzRcdTAzYzVcdTAzYzZcdTAzYzdcdTAzYzhcdTAzYzlcdTAzY2Fc'@; put 'dTAzY2JcdTAzY2NcdTAzY2RcdTAzY2VcdWZmZmQiLEQ9W10sXz17fSxwPTA7MjU2IT1wOysrcCk2NTUzMyE9PWIuY2hhckNvZGVBdChwKSYmKF9bYi5jaGFyQXQocCldPXApLERbcF09Yi5jaGFyQXQocCk7cmV0dXJue2VuYzpfLGRlYzpEfX0oKSxKWzEyNTRdPWZ1bmN0aW9uKCl7Zm9yKHZh'@; put 'ciBiPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktM'@; put 'TU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MjBhY1x1ZmZmZFx1MjAxYVx1MDE5Mlx1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1MDJjNlx1MjAzMFx1MDE2MFx1MjAzOVx1MDE1Mlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjAxOFx1'@; put 'MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1MDJkY1x1MjEyMlx1MDE2MVx1MjAzYVx1MDE1M1x1ZmZmZFx1ZmZmZFx1MDE3OFx4YTBceGExXHhhMlx4YTNceGE0XHhhNVx4YTZceGE3XHhhOFx4YTlceGFhXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhi'@; put 'NFx4YjVceGI2XHhiN1x4YjhceGI5XHhiYVx4YmJceGJjXHhiZFx4YmVceGJmXHhjMFx4YzFceGMyXHhjM1x4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHhjY1x4Y2RceGNlXHhjZlx1MDExZVx4ZDFceGQyXHhkM1x4ZDRceGQ1XHhkNlx4ZDdceGQ4XHhkOVx4ZGFceGRiXHhkY1x1'@; put 'MDEzMFx1MDE1ZVx4ZGZceGUwXHhlMVx4ZTJceGUzXHhlNFx4ZTVceGU2XHhlN1x4ZThceGU5XHhlYVx4ZWJceGVjXHhlZFx4ZWVceGVmXHUwMTFmXHhmMVx4ZjJceGYzXHhmNFx4ZjVceGY2XHhmN1x4ZjhceGY5XHhmYVx4ZmJceGZjXHUwMTMxXHUwMTVmXHhmZiIsRD1bXSxfPXt9LHA9MDsy'@; put 'NTYhPXA7KytwKTY1NTMzIT09Yi5jaGFyQ29kZUF0KHApJiYoX1tiLmNoYXJBdChwKV09cCksRFtwXT1iLmNoYXJBdChwKTtyZXR1cm57ZW5jOl8sZGVjOkR9fSgpLEpbMTI1NV09ZnVuY3Rpb24oKXtmb3IodmFyIGI9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZc'@; put 'clx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5'@; put 'ent8fX5ceDdmXHUyMGFjXHVmZmZkXHUyMDFhXHUwMTkyXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUwMmM2XHUyMDMwXHVmZmZkXHUyMDM5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHUwMmRjXHUyMTIy'@; put 'XHVmZmZkXHUyMDNhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHhhMFx4YTFceGEyXHhhM1x1MjBhYVx4YTVceGE2XHhhN1x4YThceGE5XHhkN1x4YWJceGFjXHhhZFx4YWVceGFmXHhiMFx4YjFceGIyXHhiM1x4YjRceGI1XHhiNlx4YjdceGI4XHhiOVx4ZjdceGJiXHhiY1x4YmRceGJlXHhi'@; put 'Zlx1MDViMFx1MDViMVx1MDViMlx1MDViM1x1MDViNFx1MDViNVx1MDViNlx1MDViN1x1MDViOFx1MDViOVx1ZmZmZFx1MDViYlx1MDViY1x1MDViZFx1MDViZVx1MDViZlx1MDVjMFx1MDVjMVx1MDVjMlx1MDVjM1x1MDVmMFx1MDVmMVx1MDVmMlx1MDVmM1x1MDVmNFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDVkMFx1MDVkMVx1MDVkMlx1MDVkM1x1MDVkNFx1MDVkNVx1MDVkNlx1MDVkN1x1MDVkOFx1MDVkOVx1MDVkYVx1MDVkYlx1MDVkY1x1MDVkZFx1MDVkZVx1MDVkZlx1MDVlMFx1MDVlMVx1MDVlMlx1MDVlM1x1MDVlNFx1MDVlNVx1MDVl'@; put 'Nlx1MDVlN1x1MDVlOFx1MDVlOVx1MDVlYVx1ZmZmZFx1ZmZmZFx1MjAwZVx1MjAwZlx1ZmZmZCIsRD1bXSxfPXt9LHA9MDsyNTYhPXA7KytwKTY1NTMzIT09Yi5jaGFyQ29kZUF0KHApJiYoX1tiLmNoYXJBdChwKV09cCksRFtwXT1iLmNoYXJBdChwKTtyZXR1cm57ZW5jOl8sZGVjOkR9fSgp'@; put 'LEpbMTI1Nl09ZnVuY3Rpb24oKXtmb3IodmFyIGI9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEy'@; put 'MzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHUyMGFjXHUwNjdlXHUyMDFhXHUwMTkyXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUwMmM2XHUyMDMwXHUwNjc5XHUyMDM5XHUwMTUyXHUwNjg2'@; put 'XHUwNjk4XHUwNjg4XHUwNmFmXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHUwNmE5XHUyMTIyXHUwNjkxXHUyMDNhXHUwMTUzXHUyMDBjXHUyMDBkXHUwNmJhXHhhMFx1MDYwY1x4YTJceGEzXHhhNFx4YTVceGE2XHhhN1x4YThceGE5XHUwNmJlXHhhYlx4YWNc'@; put 'eGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHUwNjFiXHhiYlx4YmNceGJkXHhiZVx1MDYxZlx1MDZjMVx1MDYyMVx1MDYyMlx1MDYyM1x1MDYyNFx1MDYyNVx1MDYyNlx1MDYyN1x1MDYyOFx1MDYyOVx1MDYyYVx1MDYyYlx1MDYyY1x1MDYyZFx1'@; put 'MDYyZVx1MDYyZlx1MDYzMFx1MDYzMVx1MDYzMlx1MDYzM1x1MDYzNFx1MDYzNVx1MDYzNlx4ZDdcdTA2MzdcdTA2MzhcdTA2MzlcdTA2M2FcdTA2NDBcdTA2NDFcdTA2NDJcdTA2NDNceGUwXHUwNjQ0XHhlMlx1MDY0NVx1MDY0Nlx1MDY0N1x1MDY0OFx4ZTdceGU4XHhlOVx4ZWFceGViXHUw'@; put 'NjQ5XHUwNjRhXHhlZVx4ZWZcdTA2NGJcdTA2NGNcdTA2NGRcdTA2NGVceGY0XHUwNjRmXHUwNjUwXHhmN1x1MDY1MVx4ZjlcdTA2NTJceGZiXHhmY1x1MjAwZVx1MjAwZlx1MDZkMiIsRD1bXSxfPXt9LHA9MDsyNTYhPXA7KytwKTY1NTMzIT09Yi5jaGFyQ29kZUF0KHApJiYoX1tiLmNoYXJB'@; put 'dChwKV09cCksRFtwXT1iLmNoYXJBdChwKTtyZXR1cm57ZW5jOl8sZGVjOkR9fSgpLEpbMTI1N109ZnVuY3Rpb24oKXtmb3IodmFyIGI9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4'@; put 'XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHUyMGFjXHVmZmZkXHUyMDFhXHVmZmZkXHUyMDFlXHUyMDI2'@; put 'XHUyMDIwXHUyMDIxXHVmZmZkXHUyMDMwXHVmZmZkXHUyMDM5XHVmZmZkXHhhOFx1MDJjN1x4YjhcdWZmZmRcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdWZmZmRcdTIxMjJcdWZmZmRcdTIwM2FcdWZmZmRceGFmXHUwMmRiXHVmZmZkXHhhMFx1ZmZmZFx4YTJc'@; put 'eGEzXHhhNFx1ZmZmZFx4YTZceGE3XHhkOFx4YTlcdTAxNTZceGFiXHhhY1x4YWRceGFlXHhjNlx4YjBceGIxXHhiMlx4YjNceGI0XHhiNVx4YjZceGI3XHhmOFx4YjlcdTAxNTdceGJiXHhiY1x4YmRceGJlXHhlNlx1MDEwNFx1MDEyZVx1MDEwMFx1MDEwNlx4YzRceGM1XHUwMTE4XHUwMTEy'@; put 'XHUwMTBjXHhjOVx1MDE3OVx1MDExNlx1MDEyMlx1MDEzNlx1MDEyYVx1MDEzYlx1MDE2MFx1MDE0M1x1MDE0NVx4ZDNcdTAxNGNceGQ1XHhkNlx4ZDdcdTAxNzJcdTAxNDFcdTAxNWFcdTAxNmFceGRjXHUwMTdiXHUwMTdkXHhkZlx1MDEwNVx1MDEyZlx1MDEwMVx1MDEwN1x4ZTRceGU1XHUw'@; put 'MTE5XHUwMTEzXHUwMTBkXHhlOVx1MDE3YVx1MDExN1x1MDEyM1x1MDEzN1x1MDEyYlx1MDEzY1x1MDE2MVx1MDE0NFx1MDE0Nlx4ZjNcdTAxNGRceGY1XHhmNlx4ZjdcdTAxNzNcdTAxNDJcdTAxNWJcdTAxNmJceGZjXHUwMTdjXHUwMTdlXHUwMmQ5IixEPVtdLF89e30scD0wOzI1NiE9cDsr'@; put 'K3ApNjU1MzMhPT1iLmNoYXJDb2RlQXQocCkmJihfW2IuY2hhckF0KHApXT1wKSxEW3BdPWIuY2hhckF0KHApO3JldHVybntlbmM6XyxkZWM6RH19KCksSlsxMjU4XT1mdW5jdGlvbigpe2Zvcih2YXIgYj0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4'@; put 'MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4'@; put 'N2ZcdTIwYWNcdWZmZmRcdTIwMWFcdTAxOTJcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdTAyYzZcdTIwMzBcdWZmZmRcdTIwMzlcdTAxNTJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdTAyZGNcdTIxMjJcdWZmZmRc'@; put 'dTIwM2FcdTAxNTNcdWZmZmRcdWZmZmRcdTAxNzhceGEwXHhhMVx4YTJceGEzXHhhNFx4YTVceGE2XHhhN1x4YThceGE5XHhhYVx4YWJceGFjXHhhZFx4YWVceGFmXHhiMFx4YjFceGIyXHhiM1x4YjRceGI1XHhiNlx4YjdceGI4XHhiOVx4YmFceGJiXHhiY1x4YmRceGJlXHhiZlx4YzBceGMx'@; put 'XHhjMlx1MDEwMlx4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHUwMzAwXHhjZFx4Y2VceGNmXHUwMTEwXHhkMVx1MDMwOVx4ZDNceGQ0XHUwMWEwXHhkNlx4ZDdceGQ4XHhkOVx4ZGFceGRiXHhkY1x1MDFhZlx1MDMwM1x4ZGZceGUwXHhlMVx4ZTJcdTAxMDNceGU0XHhlNVx4ZTZc'@; put 'eGU3XHhlOFx4ZTlceGVhXHhlYlx1MDMwMVx4ZWRceGVlXHhlZlx1MDExMVx4ZjFcdTAzMjNceGYzXHhmNFx1MDFhMVx4ZjZceGY3XHhmOFx4ZjlceGZhXHhmYlx4ZmNcdTAxYjBcdTIwYWJceGZmIixEPVtdLF89e30scD0wOzI1NiE9cDsrK3ApNjU1MzMhPT1iLmNoYXJDb2RlQXQocCkmJihf'@; put 'W2IuY2hhckF0KHApXT1wKSxEW3BdPWIuY2hhckF0KHApO3JldHVybntlbmM6XyxkZWM6RH19KCksSlsxZTRdPWZ1bmN0aW9uKCl7Zm9yKHZhciBiPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZc'@; put 'eDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx4YzRceGM1XHhjN1x4YzlceGQxXHhkNlx4ZGNc'@; put 'eGUxXHhlMFx4ZTJceGU0XHhlM1x4ZTVceGU3XHhlOVx4ZThceGVhXHhlYlx4ZWRceGVjXHhlZVx4ZWZceGYxXHhmM1x4ZjJceGY0XHhmNlx4ZjVceGZhXHhmOVx4ZmJceGZjXHUyMDIwXHhiMFx4YTJceGEzXHhhN1x1MjAyMlx4YjZceGRmXHhhZVx4YTlcdTIxMjJceGI0XHhhOFx1MjI2MFx4'@; put 'YzZceGQ4XHUyMjFlXHhiMVx1MjI2NFx1MjI2NVx4YTVceGI1XHUyMjAyXHUyMjExXHUyMjBmXHUwM2MwXHUyMjJiXHhhYVx4YmFcdTIxMjZceGU2XHhmOFx4YmZceGExXHhhY1x1MjIxYVx1MDE5Mlx1MjI0OFx1MjIwNlx4YWJceGJiXHUyMDI2XHhhMFx4YzBceGMzXHhkNVx1MDE1Mlx1MDE1'@; put 'M1x1MjAxM1x1MjAxNFx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTI1Y2FceGZmXHUwMTc4XHUyMDQ0XHhhNFx1MjAzOVx1MjAzYVx1ZmIwMVx1ZmIwMlx1MjAyMVx4YjdcdTIwMWFcdTIwMWVcdTIwMzBceGMyXHhjYVx4YzFceGNiXHhjOFx4Y2RceGNlXHhjZlx4Y2NceGQzXHhkNFx1'@; put 'ZmZmZFx4ZDJceGRhXHhkYlx4ZDlcdTAxMzFcdTAyYzZcdTAyZGNceGFmXHUwMmQ4XHUwMmQ5XHUwMmRhXHhiOFx1MDJkZFx1MDJkYlx1MDJjNyIsRD1bXSxfPXt9LHA9MDsyNTYhPXA7KytwKTY1NTMzIT09Yi5jaGFyQ29kZUF0KHApJiYoX1tiLmNoYXJBdChwKV09cCksRFtwXT1iLmNoYXJB'@; put 'dChwKTtyZXR1cm57ZW5jOl8sZGVjOkR9fSgpLEpbMTAwMDZdPWZ1bmN0aW9uKCl7Zm9yKHZhciBiPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFk'@; put 'XHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx4YzRceGI5XHhiMlx4YzlceGIzXHhkNlx4ZGNcdTAzODVceGUwXHhlMlx4ZTRcdTAzODRceGE4'@; put 'XHhlN1x4ZTlceGU4XHhlYVx4ZWJceGEzXHUyMTIyXHhlZVx4ZWZcdTIwMjJceGJkXHUyMDMwXHhmNFx4ZjZceGE2XHhhZFx4ZjlceGZiXHhmY1x1MjAyMFx1MDM5M1x1MDM5NFx1MDM5OFx1MDM5Ylx1MDM5ZVx1MDNhMFx4ZGZceGFlXHhhOVx1MDNhM1x1MDNhYVx4YTdcdTIyNjBceGIwXHUw'@; put 'Mzg3XHUwMzkxXHhiMVx1MjI2NFx1MjI2NVx4YTVcdTAzOTJcdTAzOTVcdTAzOTZcdTAzOTdcdTAzOTlcdTAzOWFcdTAzOWNcdTAzYTZcdTAzYWJcdTAzYThcdTAzYTlcdTAzYWNcdTAzOWRceGFjXHUwMzlmXHUwM2ExXHUyMjQ4XHUwM2E0XHhhYlx4YmJcdTIwMjZceGEwXHUwM2E1XHUwM2E3'@; put 'XHUwMzg2XHUwMzg4XHUwMTUzXHUyMDEzXHUyMDE1XHUyMDFjXHUyMDFkXHUyMDE4XHUyMDE5XHhmN1x1MDM4OVx1MDM4YVx1MDM4Y1x1MDM4ZVx1MDNhZFx1MDNhZVx1MDNhZlx1MDNjY1x1MDM4Zlx1MDNjZFx1MDNiMVx1MDNiMlx1MDNjOFx1MDNiNFx1MDNiNVx1MDNjNlx1MDNiM1x1MDNi'@; put 'N1x1MDNiOVx1MDNiZVx1MDNiYVx1MDNiYlx1MDNiY1x1MDNiZFx1MDNiZlx1MDNjMFx1MDNjZVx1MDNjMVx1MDNjM1x1MDNjNFx1MDNiOFx1MDNjOVx1MDNjMlx1MDNjN1x1MDNjNVx1MDNiNlx1MDNjYVx1MDNjYlx1MDM5MFx1MDNiMFx1ZmZmZCIsRD1bXSxfPXt9LHA9MDsyNTYhPXA7Kytw'@; put 'KTY1NTMzIT09Yi5jaGFyQ29kZUF0KHApJiYoX1tiLmNoYXJBdChwKV09cCksRFtwXT1iLmNoYXJBdChwKTtyZXR1cm57ZW5jOl8sZGVjOkR9fSgpLEpbMTAwMDddPWZ1bmN0aW9uKCl7Zm9yKHZhciBiPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgw'@; put 'Zlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3'@; put 'Zlx1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1'@; put 'MDQyYlx1MDQyY1x1MDQyZFx1MDQyZVx1MDQyZlx1MjAyMFx4YjBceGEyXHhhM1x4YTdcdTIwMjJceGI2XHUwNDA2XHhhZVx4YTlcdTIxMjJcdTA0MDJcdTA0NTJcdTIyNjBcdTA0MDNcdTA0NTNcdTIyMWVceGIxXHUyMjY0XHUyMjY1XHUwNDU2XHhiNVx1MjIwMlx1MDQwOFx1MDQwNFx1MDQ1'@; put 'NFx1MDQwN1x1MDQ1N1x1MDQwOVx1MDQ1OVx1MDQwYVx1MDQ1YVx1MDQ1OFx1MDQwNVx4YWNcdTIyMWFcdTAxOTJcdTIyNDhcdTIyMDZceGFiXHhiYlx1MjAyNlx4YTBcdTA0MGJcdTA0NWJcdTA0MGNcdTA0NWNcdTA0NTVcdTIwMTNcdTIwMTRcdTIwMWNcdTIwMWRcdTIwMThcdTIwMTlceGY3'@; put 'XHUyMDFlXHUwNDBlXHUwNDVlXHUwNDBmXHUwNDVmXHUyMTE2XHUwNDAxXHUwNDUxXHUwNDRmXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDQxXHUw'@; put 'NDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHhhNCIsRD1bXSxfPXt9LHA9MDsyNTYhPXA7KytwKTY1NTMzIT09Yi5jaGFyQ29kZUF0KHApJiYoX1tiLmNoYXJBdChwKV09cCksRFtwXT1iLmNoYXJBdChw'@; put 'KTtyZXR1cm57ZW5jOl8sZGVjOkR9fSgpLEpbMTAwMDhdPWZ1bmN0aW9uKCl7dmFyIHAsYj1bXSxEPXt9LF89W107Zm9yKF9bMF09IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgx'@; put 'OVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHg4MFx1ZjhkOFx1ZjhkOVx1ZjhkYVx1ZjhkYlx1ZjhkY1x1Zjhk'@; put 'ZFx1ZjhkZVx1ZjhkZlx1ZjhlMFx1ZjhlMVx1ZjhlMlx1ZjhlM1x1ZjhlNFx1ZjhlNVx1ZjhlNlx1ZjhlN1x1ZjhlOFx1ZjhlOVx1ZjhlYVx1ZjhlYlx1ZjhlY1x1ZjhlZFx1ZjhlZVx1ZjhlZlx1ZjhmMFx1ZjhmMVx1ZjhmMlx1ZjhmM1x1ZjhmNFx1ZjhmNVx1ZjhmNlx1ZjhmN1x1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZjhmOFx1ZjhmOVx1ZjhmYVx1ZjhmYlx1ZjhmY1x1ZjhmZFx1ZjhmZVx1ZjhmZiIuc3BsaXQoIiIpLHA9MDtwIT1fWzBdLmxlbmd0aDsrK3ApNjU1MzMhPT1fWzBdW3BdLmNoYXJDb2RlQXQoMCkmJihEW19bMF1bcF1dPTArcCxiWzArcF09X1swXVtwXSk7'@; put 'Zm9yKF9bMTYxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUzMDAwXHUzMDAx'@; put 'XHUzMDAyXHUzMGZiXHUwMmM5XHUwMmM3XHhhOFx1MzAwM1x1MzAwNVx1MjAxNVx1ZmY1ZVx1ZmZmZFx1MjAyNlx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MzAxNFx1MzAxNVx1MzAwOFx1MzAwOVx1MzAwYVx1MzAwYlx1MzAwY1x1MzAwZFx1MzAwZVx1MzAwZlx1MzAxNlx1MzAxN1x1MzAx'@; put 'MFx1MzAxMVx4YjFceGQ3XHhmN1x1MjIzNlx1MjIyN1x1MjIyOFx1MjIxMVx1MjIwZlx1MjIyYVx1MjIyOVx1MjIwOFx1MjIzN1x1MjIxYVx1MjJhNVx1MjIyNVx1MjIyMFx1MjMxMlx1MjI5OVx1MjIyYlx1MjIyZVx1MjI2MVx1MjI0Y1x1MjI0OFx1MjIzZFx1MjIxZFx1MjI2MFx1MjI2ZVx1'@; put 'MjI2Zlx1MjI2NFx1MjI2NVx1MjIxZVx1MjIzNVx1MjIzNFx1MjY0Mlx1MjY0MFx4YjBcdTIwMzJcdTIwMzNcdTIxMDNcdWZmMDRceGE0XHVmZmUwXHVmZmUxXHUyMDMwXHhhN1x1MjExNlx1MjYwNlx1MjYwNVx1MjVjYlx1MjVjZlx1MjVjZVx1MjVjN1x1MjVjNlx1MjVhMVx1MjVhMFx1MjVi'@; put 'M1x1MjViMlx1MjAzYlx1MjE5Mlx1MjE5MFx1MjE5MVx1MjE5M1x1MzAxM1x1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE2MV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTYxXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE2MV1bcF1dPTQxMjE2K3AsYls0MTIxNitwXT1fWzE2MV1bcF0pO2Zv'@; put 'cihfWzE2Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjQ4OFx1MjQ4OVx1MjQ4YVx1MjQ4Ylx1MjQ4Y1x1MjQ4ZFx1MjQ4ZVx1MjQ4Zlx1MjQ5MFx1MjQ5MVx1MjQ5Mlx1MjQ5M1x1MjQ5NFx1MjQ5'@; put 'NVx1MjQ5Nlx1MjQ5N1x1MjQ5OFx1MjQ5OVx1MjQ5YVx1MjQ5Ylx1MjQ3NFx1MjQ3NVx1MjQ3Nlx1MjQ3N1x1MjQ3OFx1MjQ3OVx1MjQ3YVx1MjQ3Ylx1MjQ3Y1x1MjQ3ZFx1MjQ3ZVx1MjQ3Zlx1MjQ4MFx1MjQ4MVx1MjQ4Mlx1MjQ4M1x1MjQ4NFx1MjQ4NVx1MjQ4Nlx1MjQ4N1x1MjQ2MFx1'@; put 'MjQ2MVx1MjQ2Mlx1MjQ2M1x1MjQ2NFx1MjQ2NVx1MjQ2Nlx1MjQ2N1x1MjQ2OFx1MjQ2OVx1ZmZmZFx1ZmZmZFx1MzIyMFx1MzIyMVx1MzIyMlx1MzIyM1x1MzIyNFx1MzIyNVx1MzIyNlx1MzIyN1x1MzIyOFx1MzIyOVx1ZmZmZFx1ZmZmZFx1MjE2MFx1MjE2MVx1MjE2Mlx1MjE2M1x1MjE2'@; put 'NFx1MjE2NVx1MjE2Nlx1MjE2N1x1MjE2OFx1MjE2OVx1MjE2YVx1MjE2Ylx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE2Ml0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTYyXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE2Ml1bcF1dPTQxNDcyK3AsYls0MTQ3MitwXT1f'@; put 'WzE2Ml1bcF0pO2ZvcihfWzE2M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmYwMVx1ZmYwMlx1ZmYwM1x1ZmZlNVx1ZmYwNVx1ZmYwNlx1ZmYwN1x1ZmYwOFx1ZmYwOVx1ZmYwYVx1ZmYwYlx1ZmYwY1x1ZmYwZFx1ZmYwZVx1ZmYwZlx1ZmYxMFx1ZmYxMVx1ZmYxMlx1ZmYxM1x1ZmYxNFx1ZmYxNVx1ZmYxNlx1ZmYxN1x1ZmYxOFx1ZmYxOVx1ZmYxYVx1ZmYxYlx1ZmYx'@; put 'Y1x1ZmYxZFx1ZmYxZVx1ZmYxZlx1ZmYyMFx1ZmYyMVx1ZmYyMlx1ZmYyM1x1ZmYyNFx1ZmYyNVx1ZmYyNlx1ZmYyN1x1ZmYyOFx1ZmYyOVx1ZmYyYVx1ZmYyYlx1ZmYyY1x1ZmYyZFx1ZmYyZVx1ZmYyZlx1ZmYzMFx1ZmYzMVx1ZmYzMlx1ZmYzM1x1ZmYzNFx1ZmYzNVx1ZmYzNlx1ZmYzN1x1'@; put 'ZmYzOFx1ZmYzOVx1ZmYzYVx1ZmYzYlx1ZmYzY1x1ZmYzZFx1ZmYzZVx1ZmYzZlx1ZmY0MFx1ZmY0MVx1ZmY0Mlx1ZmY0M1x1ZmY0NFx1ZmY0NVx1ZmY0Nlx1ZmY0N1x1ZmY0OFx1ZmY0OVx1ZmY0YVx1ZmY0Ylx1ZmY0Y1x1ZmY0ZFx1ZmY0ZVx1ZmY0Zlx1ZmY1MFx1ZmY1MVx1ZmY1Mlx1ZmY1'@; put 'M1x1ZmY1NFx1ZmY1NVx1ZmY1Nlx1ZmY1N1x1ZmY1OFx1ZmY1OVx1ZmY1YVx1ZmY1Ylx1ZmY1Y1x1ZmY1ZFx1ZmZlM1x1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE2M10ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTYzXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE2M11bcF1dPTQxNzI4K3As'@; put 'Yls0MTcyOCtwXT1fWzE2M11bcF0pO2ZvcihfWzE2NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1MzA0MVx1MzA0Mlx1MzA0M1x1MzA0NFx1MzA0NVx1MzA0Nlx1MzA0N1x1MzA0OFx1MzA0OVx1MzA0YVx1MzA0Ylx1MzA0Y1x1MzA0ZFx1MzA0ZVx1MzA0Zlx1MzA1MFx1MzA1MVx1MzA1Mlx1MzA1M1x1MzA1NFx1MzA1NVx1MzA1Nlx1MzA1N1x1MzA1OFx1MzA1OVx1MzA1'@; put 'YVx1MzA1Ylx1MzA1Y1x1MzA1ZFx1MzA1ZVx1MzA1Zlx1MzA2MFx1MzA2MVx1MzA2Mlx1MzA2M1x1MzA2NFx1MzA2NVx1MzA2Nlx1MzA2N1x1MzA2OFx1MzA2OVx1MzA2YVx1MzA2Ylx1MzA2Y1x1MzA2ZFx1MzA2ZVx1MzA2Zlx1MzA3MFx1MzA3MVx1MzA3Mlx1MzA3M1x1MzA3NFx1MzA3NVx1'@; put 'MzA3Nlx1MzA3N1x1MzA3OFx1MzA3OVx1MzA3YVx1MzA3Ylx1MzA3Y1x1MzA3ZFx1MzA3ZVx1MzA3Zlx1MzA4MFx1MzA4MVx1MzA4Mlx1MzA4M1x1MzA4NFx1MzA4NVx1MzA4Nlx1MzA4N1x1MzA4OFx1MzA4OVx1MzA4YVx1MzA4Ylx1MzA4Y1x1MzA4ZFx1MzA4ZVx1MzA4Zlx1MzA5MFx1MzA5'@; put 'MVx1MzA5Mlx1MzA5M1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE2NF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTY0XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE2NF1b'@; put 'cF1dPTQxOTg0K3AsYls0MTk4NCtwXT1fWzE2NF1bcF0pO2ZvcihfWzE2NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MzBhMVx1MzBhMlx1MzBhM1x1MzBhNFx1MzBhNVx1MzBhNlx1MzBhN1x1MzBhOFx1MzBhOVx1MzBhYVx1MzBhYlx1MzBhY1x1MzBhZFx1MzBhZVx1MzBhZlx1MzBiMFx1MzBiMVx1MzBiMlx1MzBiM1x1MzBiNFx1MzBiNVx1MzBiNlx1MzBiN1x1MzBi'@; put 'OFx1MzBiOVx1MzBiYVx1MzBiYlx1MzBiY1x1MzBiZFx1MzBiZVx1MzBiZlx1MzBjMFx1MzBjMVx1MzBjMlx1MzBjM1x1MzBjNFx1MzBjNVx1MzBjNlx1MzBjN1x1MzBjOFx1MzBjOVx1MzBjYVx1MzBjYlx1MzBjY1x1MzBjZFx1MzBjZVx1MzBjZlx1MzBkMFx1MzBkMVx1MzBkMlx1MzBkM1x1'@; put 'MzBkNFx1MzBkNVx1MzBkNlx1MzBkN1x1MzBkOFx1MzBkOVx1MzBkYVx1MzBkYlx1MzBkY1x1MzBkZFx1MzBkZVx1MzBkZlx1MzBlMFx1MzBlMVx1MzBlMlx1MzBlM1x1MzBlNFx1MzBlNVx1MzBlNlx1MzBlN1x1MzBlOFx1MzBlOVx1MzBlYVx1MzBlYlx1MzBlY1x1MzBlZFx1MzBlZVx1MzBl'@; put 'Zlx1MzBmMFx1MzBmMVx1MzBmMlx1MzBmM1x1MzBmNFx1MzBmNVx1MzBmNlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE2NV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTY1XVtwXS5jaGFyQ29kZUF0KDAp'@; put 'JiYoRFtfWzE2NV1bcF1dPTQyMjQwK3AsYls0MjI0MCtwXT1fWzE2NV1bcF0pO2ZvcihfWzE2Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDM5MVx1MDM5Mlx1MDM5M1x1MDM5NFx1MDM5NVx1MDM5Nlx1MDM5N1x1MDM5OFx1MDM5OVx1MDM5YVx1MDM5Ylx1MDM5Y1x1MDM5ZFx1MDM5ZVx1MDM5Zlx1MDNhMFx1MDNhMVx1MDNhM1x1MDNhNFx1MDNhNVx1MDNhNlx1MDNh'@; put 'N1x1MDNhOFx1MDNhOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDNiMVx1MDNiMlx1MDNiM1x1MDNiNFx1MDNiNVx1MDNiNlx1MDNiN1x1MDNiOFx1MDNiOVx1MDNiYVx1MDNiYlx1MDNiY1x1MDNiZFx1MDNiZVx1MDNiZlx1MDNjMFx1MDNjMVx1'@; put 'MDNjM1x1MDNjNFx1MDNjNVx1MDNjNlx1MDNjN1x1MDNjOFx1MDNjOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE2Nl0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTY2XVtwXS5j'@; put 'aGFyQ29kZUF0KDApJiYoRFtfWzE2Nl1bcF1dPTQyNDk2K3AsYls0MjQ5NitwXT1fWzE2Nl1bcF0pO2ZvcihfWzE2N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQwMVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQy'@; put 'Mlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1MDQyZVx1MDQyZlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQ1MVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0'@; put 'OVx1MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0ZFx1MDQ0ZVx1MDQ0Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE2N10ubGVuZ3RoOysrcCk2NTUzMyE9'@; put 'PV9bMTY3XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE2N11bcF1dPTQyNzUyK3AsYls0Mjc1MitwXT1fWzE2N11bcF0pO2ZvcihfWzE2OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDEwMVx4ZTFcdTAxY2VceGUwXHUwMTEzXHhlOVx1MDExYlx4ZThcdTAxMmJceGVkXHUwMWQwXHhlY1x1MDE0ZFx4ZjNcdTAxZDJceGYyXHUwMTZiXHhmYVx1MDFkNFx4ZjlcdTAxZDZc'@; put 'dTAxZDhcdTAxZGFcdTAxZGNceGZjXHhlYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MzEwNVx1MzEwNlx1MzEwN1x1MzEwOFx1MzEwOVx1MzEwYVx1MzEwYlx1MzEwY1x1MzEwZFx1MzEwZVx1MzEwZlx1MzExMFx1MzExMVx1'@; put 'MzExMlx1MzExM1x1MzExNFx1MzExNVx1MzExNlx1MzExN1x1MzExOFx1MzExOVx1MzExYVx1MzExYlx1MzExY1x1MzExZFx1MzExZVx1MzExZlx1MzEyMFx1MzEyMVx1MzEyMlx1MzEyM1x1MzEyNFx1MzEyNVx1MzEyNlx1MzEyN1x1MzEyOFx1MzEyOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE2OF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTY4XVtwXS5j'@; put 'aGFyQ29kZUF0KDApJiYoRFtfWzE2OF1bcF1dPTQzMDA4K3AsYls0MzAwOCtwXT1fWzE2OF1bcF0pO2ZvcihfWzE2OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjUwMFx1MjUwMVx1MjUwMlx1MjUwM1x1MjUwNFx1MjUwNVx1MjUwNlx1MjUwN1x1MjUwOFx1MjUwOVx1MjUwYVx1MjUwYlx1MjUwY1x1MjUwZFx1MjUwZVx1MjUwZlx1MjUx'@; put 'MFx1MjUxMVx1MjUxMlx1MjUxM1x1MjUxNFx1MjUxNVx1MjUxNlx1MjUxN1x1MjUxOFx1MjUxOVx1MjUxYVx1MjUxYlx1MjUxY1x1MjUxZFx1MjUxZVx1MjUxZlx1MjUyMFx1MjUyMVx1MjUyMlx1MjUyM1x1MjUyNFx1MjUyNVx1MjUyNlx1MjUyN1x1MjUyOFx1MjUyOVx1MjUyYVx1MjUyYlx1'@; put 'MjUyY1x1MjUyZFx1MjUyZVx1MjUyZlx1MjUzMFx1MjUzMVx1MjUzMlx1MjUzM1x1MjUzNFx1MjUzNVx1MjUzNlx1MjUzN1x1MjUzOFx1MjUzOVx1MjUzYVx1MjUzYlx1MjUzY1x1MjUzZFx1MjUzZVx1MjUzZlx1MjU0MFx1MjU0MVx1MjU0Mlx1MjU0M1x1MjU0NFx1MjU0NVx1MjU0Nlx1MjU0'@; put 'N1x1MjU0OFx1MjU0OVx1MjU0YVx1MjU0Ylx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE2OV0ubGVuZ3RoOysrcCk2NTUzMyE9'@; put 'PV9bMTY5XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE2OV1bcF1dPTQzMjY0K3AsYls0MzI2NCtwXT1fWzE2OV1bcF0pO2ZvcihfWzE3Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTU0YVx1OTYzZlx1NTdjM1x1NjMyOFx1NTRjZVx1NTUwOVx1NTRjMFx1NzY5MVx1NzY0Y1x1ODUzY1x1NzdlZVx1ODI3ZVx1Nzg4ZFx1NzIzMVx1OTY5OFx1OTc4ZFx1NmMyOFx1NWI4'@; put 'OVx1NGZmYVx1NjMwOVx1NjY5N1x1NWNiOFx1ODBmYVx1Njg0OFx1ODBhZVx1NjYwMlx1NzZjZVx1NTFmOVx1NjU1Nlx1NzFhY1x1N2ZmMVx1ODg4NFx1NTBiMlx1NTk2NVx1NjFjYVx1NmZiM1x1ODJhZFx1NjM0Y1x1NjI1Mlx1NTNlZFx1NTQyN1x1N2IwNlx1NTE2Ylx1NzVhNFx1NWRmNFx1'@; put 'NjJkNFx1OGRjYlx1OTc3Nlx1NjI4YVx1ODAxOVx1NTc1ZFx1OTczOFx1N2Y2Mlx1NzIzOFx1NzY3ZFx1NjdjZlx1NzY3ZVx1NjQ0Nlx1NGY3MFx1OGQyNVx1NjJkY1x1N2ExN1x1NjU5MVx1NzNlZFx1NjQyY1x1NjI3M1x1ODIyY1x1OTg4MVx1Njc3Zlx1NzI0OFx1NjI2ZVx1NjJjY1x1NGYz'@; put 'NFx1NzRlM1x1NTM0YVx1NTI5ZVx1N2VjYVx1OTBhNlx1NWUyZVx1Njg4Nlx1Njk5Y1x1ODE4MFx1N2VkMVx1NjhkMlx1NzhjNVx1ODY4Y1x1OTU1MVx1NTA4ZFx1OGMyNFx1ODJkZVx1ODBkZVx1NTMwNVx1ODkxMlx1NTI2NVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE3Nl0ubGVuZ3Ro'@; put 'OysrcCk2NTUzMyE9PV9bMTc2XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE3Nl1bcF1dPTQ1MDU2K3AsYls0NTA1NitwXT1fWzE3Nl1bcF0pO2ZvcihfWzE3N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODU4NFx1OTZmOVx1NGZkZFx1NTgyMVx1OTk3MVx1NWI5ZFx1NjJiMVx1NjJhNVx1NjZiNFx1OGM3OVx1OWM4ZFx1NzIwNlx1Njc2Zlx1Nzg5MVx1NjBiMlx1NTM1'@; put 'MVx1NTMxN1x1OGY4OFx1ODBjY1x1OGQxZFx1OTRhMVx1NTAwZFx1NzJjOFx1NTkwN1x1NjBlYlx1NzExOVx1ODhhYlx1NTk1NFx1ODJlZlx1NjcyY1x1N2IyOFx1NWQyOVx1N2VmN1x1NzUyZFx1NmNmNVx1OGU2Nlx1OGZmOFx1OTAzY1x1OWYzYlx1NmJkNFx1OTExOVx1N2IxNFx1NWY3Y1x1'@; put 'NzhhN1x1ODRkNlx1ODUzZFx1NmJkNVx1NmJkOVx1NmJkNlx1NWUwMVx1NWU4N1x1NzVmOVx1OTVlZFx1NjU1ZFx1NWYwYVx1NWZjNVx1OGY5Zlx1NThjMVx1ODFjMlx1OTA3Zlx1OTY1Ylx1OTdhZFx1OGZiOVx1N2YxNlx1OGQyY1x1NjI0MVx1NGZiZlx1NTNkOFx1NTM1ZVx1OGZhOFx1OGZh'@; put 'OVx1OGZhYlx1OTA0ZFx1NjgwN1x1NWY2YVx1ODE5OFx1ODg2OFx1OWNkNlx1NjE4Ylx1NTIyYlx1NzYyYVx1NWY2Y1x1NjU4Y1x1NmZkMlx1NmVlOFx1NWJiZVx1NjQ0OFx1NTE3NVx1NTFiMFx1NjdjNFx1NGUxOVx1NzljOVx1OTk3Y1x1NzBiM1x1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1f'@; put 'WzE3N10ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTc3XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE3N11bcF1dPTQ1MzEyK3AsYls0NTMxMitwXT1fWzE3N11bcF0pO2ZvcihfWzE3OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzVjNVx1NWU3Nlx1NzNiYlx1ODNlMFx1NjRhZFx1NjJlOFx1OTRiNVx1NmNlMlx1NTM1YVx1NTJjM1x1NjQwZlx1OTRjMlx1N2I5NFx1NGYy'@; put 'Zlx1NWUxYlx1ODIzNlx1ODExNlx1ODE4YVx1NmUyNFx1NmNjYVx1OWE3M1x1NjM1NVx1NTM1Y1x1NTRmYVx1ODg2NVx1NTdlMFx1NGUwZFx1NWUwM1x1NmI2NVx1N2MzZlx1OTBlOFx1NjAxNlx1NjRlNlx1NzMxY1x1ODhjMVx1Njc1MFx1NjI0ZFx1OGQyMlx1Nzc2Y1x1OGUyOVx1OTFjN1x1'@; put 'NWY2OVx1ODNkY1x1ODUyMVx1OTkxMFx1NTNjMlx1ODY5NVx1NmI4Ylx1NjBlZFx1NjBlOFx1NzA3Zlx1ODJjZFx1ODIzMVx1NGVkM1x1NmNhN1x1ODVjZlx1NjRjZFx1N2NkOVx1NjlmZFx1NjZmOVx1ODM0OVx1NTM5NVx1N2I1Nlx1NGZhN1x1NTE4Y1x1NmQ0Ylx1NWM0Mlx1OGU2ZFx1NjNk'@; put 'Mlx1NTNjOVx1ODMyY1x1ODMzNlx1NjdlNVx1NzhiNFx1NjQzZFx1NWJkZlx1NWM5NFx1NWRlZVx1OGJlN1x1NjJjNlx1NjdmNFx1OGM3YVx1NjQwMFx1NjNiYVx1ODc0OVx1OTk4Ylx1OGMxN1x1N2YyMFx1OTRmMlx1NGVhN1x1OTYxMFx1OThhNFx1NjYwY1x1NzMxNlx1ZmZmZCIuc3BsaXQo'@; put 'IiIpLHA9MDtwIT1fWzE3OF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTc4XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE3OF1bcF1dPTQ1NTY4K3AsYls0NTU2OCtwXT1fWzE3OF1bcF0pO2ZvcihfWzE3OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTczYVx1NWMxZFx1NWUzOFx1OTU3Zlx1NTA3Zlx1ODBhMFx1NTM4Mlx1NjU1ZVx1NzU0NVx1NTUzMVx1NTAyMVx1OGQ4'@; put 'NVx1NjI4NFx1OTQ5ZVx1NjcxZFx1NTYzMlx1NmY2ZVx1NWRlMlx1NTQzNVx1NzA5Mlx1OGY2Nlx1NjI2Zlx1NjRhNFx1NjNhM1x1NWY3Ylx1NmY4OFx1OTBmNFx1ODFlM1x1OGZiMFx1NWMxOFx1NjY2OFx1NWZmMVx1NmM4OVx1OTY0OFx1OGQ4MVx1ODg2Y1x1NjQ5MVx1NzlmMFx1NTdjZVx1'@; put 'NmE1OVx1NjIxMFx1NTQ0OFx1NGU1OFx1N2EwYlx1NjBlOVx1NmY4NFx1OGJkYVx1NjI3Zlx1OTAxZVx1OWE4Ylx1NzllNFx1NTQwM1x1NzVmNFx1NjMwMVx1NTMxOVx1NmM2MFx1OGZkZlx1NWYxYlx1OWE3MFx1ODAzYlx1OWY3Zlx1NGY4OFx1NWMzYVx1OGQ2NFx1N2ZjNVx1NjVhNVx1NzBi'@; put 'ZFx1NTE0NVx1NTFiMlx1ODY2Ylx1NWQwN1x1NWJhMFx1NjJiZFx1OTE2Y1x1NzU3NFx1OGUwY1x1N2EyMFx1NjEwMVx1N2I3OVx1NGVjN1x1N2VmOFx1Nzc4NVx1NGUxMVx1ODFlZFx1NTIxZFx1NTFmYVx1NmE3MVx1NTNhOFx1OGU4N1x1OTUwNFx1OTZjZlx1NmVjMVx1OTY2NFx1Njk1YVx1'@; put 'ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE3OV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTc5XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE3OV1bcF1dPTQ1ODI0K3AsYls0NTgyNCtwXT1fWzE3OV1bcF0pO2ZvcihfWzE4MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Nzg0MFx1NTBhOFx1NzdkN1x1NjQxMFx1ODllNlx1NTkwNFx1NjNlM1x1NWRkZFx1N2E3Zlx1Njkz'@; put 'ZFx1NGYyMFx1ODIzOVx1NTU5OFx1NGUzMlx1NzVhZVx1N2E5N1x1NWU2Mlx1NWU4YVx1OTVlZlx1NTIxYlx1NTQzOVx1NzA4YVx1NjM3Nlx1OTUyNFx1NTc4Mlx1NjYyNVx1NjkzZlx1OTE4N1x1NTUwN1x1NmRmM1x1N2VhZlx1ODgyMlx1NjIzM1x1N2VmMFx1NzViNVx1ODMyOFx1NzhjMVx1'@; put 'OTZjY1x1OGY5ZVx1NjE0OFx1NzRmN1x1OGJjZFx1NmI2NFx1NTIzYVx1OGQ1MFx1NmIyMVx1ODA2YVx1ODQ3MVx1NTZmMVx1NTMwNlx1NGVjZVx1NGUxYlx1NTFkMVx1N2M5N1x1OTE4Ylx1N2MwN1x1NGZjM1x1OGU3Zlx1N2JlMVx1N2E5Y1x1NjQ2N1x1NWQxNFx1NTBhY1x1ODEwNlx1NzYw'@; put 'MVx1N2NiOVx1NmRlY1x1N2ZlMFx1Njc1MVx1NWI1OFx1NWJmOFx1NzhjYlx1NjRhZVx1NjQxM1x1NjNhYVx1NjMyYlx1OTUxOVx1NjQyZFx1OGZiZVx1N2I1NFx1NzYyOVx1NjI1M1x1NTkyN1x1NTQ0Nlx1NmI3OVx1NTBhM1x1NjIzNFx1NWUyNlx1NmI4Nlx1NGVlM1x1OGQzN1x1ODg4Ylx1'@; put 'NWY4NVx1OTAyZVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE4MF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTgwXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE4MF1bcF1dPTQ2MDgwK3AsYls0NjA4MCtwXT1fWzE4MF1bcF0pO2ZvcihfWzE4MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjAyMFx1ODAzZFx1NjJjNVx1NGUzOVx1NTM1NVx1OTBmOFx1NjNiOFx1ODBj'@; put 'Nlx1NjVlNlx1NmMyZVx1NGY0Nlx1NjBlZVx1NmRlMVx1OGJkZVx1NWYzOVx1ODZjYlx1NWY1M1x1NjMyMVx1NTE1YVx1ODM2MVx1Njg2M1x1NTIwMFx1NjM2M1x1OGU0OFx1NTAxMlx1NWM5Ylx1Nzk3N1x1NWJmY1x1NTIzMFx1N2EzYlx1NjBiY1x1OTA1M1x1NzZkN1x1NWZiN1x1NWY5N1x1'@; put 'NzY4NFx1OGU2Y1x1NzA2Zlx1NzY3Ylx1N2I0OVx1NzdhYVx1NTFmM1x1OTA5M1x1NTgyNFx1NGY0ZVx1NmVmNFx1OGZlYVx1NjU0Y1x1N2IxYlx1NzJjNFx1NmRhNFx1N2ZkZlx1NWFlMVx1NjJiNVx1NWU5NVx1NTczMFx1ODQ4Mlx1N2IyY1x1NWUxZFx1NWYxZlx1OTAxMlx1N2YxNFx1OThh'@; put 'MFx1NjM4Mlx1NmVjN1x1Nzg5OFx1NzBiOVx1NTE3OFx1OTc1Ylx1NTdhYlx1NzUzNVx1NGY0M1x1NzUzOFx1NWU5N1x1NjBlNlx1NTk2MFx1NmRjMFx1NmJiZlx1Nzg4OVx1NTNmY1x1OTZkNVx1NTFjYlx1NTIwMVx1NjM4OVx1NTQwYVx1OTQ5M1x1OGMwM1x1OGRjY1x1NzIzOVx1Nzg5Zlx1'@; put 'ODc3Nlx1OGZlZFx1OGMwZFx1NTNlMFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE4MV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTgxXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE4MV1bcF1dPTQ2MzM2K3AsYls0NjMzNitwXT1fWzE4MV1bcF0pO2ZvcihfWzE4Ml09Ilx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NGUwMVx1NzZlZlx1NTNlZVx1OTQ4OVx1OTg3Nlx1OWYw'@; put 'ZVx1OTUyZFx1NWI5YVx1OGJhMlx1NGUyMlx1NGUxY1x1NTFhY1x1ODQ2M1x1NjFjMlx1NTJhOFx1NjgwYlx1NGY5N1x1NjA2Ylx1NTFiYlx1NmQxZVx1NTE1Y1x1NjI5Nlx1NjU5N1x1OTY2MVx1OGM0Nlx1OTAxN1x1NzVkOFx1OTBmZFx1Nzc2M1x1NmJkMlx1NzI4YVx1NzJlY1x1OGJmYlx1'@; put 'NTgzNVx1Nzc3OVx1OGQ0Y1x1Njc1Y1x1OTU0MFx1ODA5YVx1NWVhNlx1NmUyMVx1NTk5Mlx1N2FlZlx1NzdlZFx1OTUzYlx1NmJiNVx1NjVhZFx1N2YwZVx1NTgwNlx1NTE1MVx1OTYxZlx1NWJmOVx1NThhOVx1NTQyOFx1OGU3Mlx1NjU2Nlx1OTg3Zlx1NTZlNFx1OTQ5ZFx1NzZmZVx1OTA0'@; put 'MVx1NjM4N1x1NTRjNlx1NTkxYVx1NTkzYVx1NTc5Ylx1OGViMlx1NjczNVx1OGRmYVx1ODIzNVx1NTI0MVx1NjBmMFx1NTgxNVx1ODZmZVx1NWNlOFx1OWU0NVx1NGZjNFx1OTg5ZFx1OGJiOVx1NWEyNVx1NjA3Nlx1NTM4NFx1NjI3Y1x1OTA0Zlx1OTEwMlx1OTk3Zlx1NjA2OVx1ODAwY1x1'@; put 'NTEzZlx1ODAzM1x1NWMxNFx1OTk3NVx1NmQzMVx1NGU4Y1x1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE4Ml0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTgyXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE4Ml1bcF1dPTQ2NTkyK3AsYls0NjU5MitwXT1fWzE4Ml1bcF0pO2ZvcihfWzE4M109'@; put 'Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGQzMFx1NTNkMVx1N2Y1YVx1N2I0'@; put 'Zlx1NGYxMFx1NGU0Zlx1OTYwMFx1NmNkNVx1NzNkMFx1ODVlOVx1NWUwNlx1NzU2YVx1N2ZmYlx1NmEwYVx1NzdmZVx1OTQ5Mlx1N2U0MVx1NTFlMVx1NzBlNlx1NTNjZFx1OGZkNFx1ODMwM1x1OGQyOVx1NzJhZlx1OTk2ZFx1NmNkYlx1NTc0YVx1ODJiM1x1NjViOVx1ODBhYVx1NjIzZlx1'@; put 'OTYzMlx1NTlhOFx1NGVmZlx1OGJiZlx1N2ViYVx1NjUzZVx1ODNmMlx1OTc1ZVx1NTU2MVx1OThkZVx1ODBhNVx1NTMyYVx1OGJmZFx1NTQyMFx1ODBiYVx1NWU5Zlx1NmNiOFx1OGQzOVx1ODJhY1x1OTE1YVx1NTQyOVx1NmMxYlx1NTIwNlx1N2ViN1x1NTc1Zlx1NzExYVx1NmM3ZVx1N2M4'@; put 'OVx1NTk0Ylx1NGVmZFx1NWZmZlx1NjEyNFx1N2NhYVx1NGUzMFx1NWMwMVx1NjdhYlx1ODcwMlx1NWNmMFx1OTUwYlx1OThjZVx1NzVhZlx1NzBmZFx1OTAyMlx1NTFhZlx1N2YxZFx1OGJiZFx1NTk0OVx1NTFlNFx1NGY1Ylx1NTQyNlx1NTkyYlx1NjU3N1x1ODBhNFx1NWI3NVx1NjI3Nlx1'@; put 'NjJjMlx1OGY5MFx1NWU0NVx1NmMxZlx1N2IyNlx1NGYwZlx1NGZkOFx1NjcwZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE4M10ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTgzXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE4M11bcF1dPTQ2ODQ4K3AsYls0Njg0OCtwXT1fWzE4M11bcF0p'@; put 'O2ZvcihfWzE4NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmQ2ZVx1NmRh'@; put 'YVx1Nzk4Zlx1ODhiMVx1NWYxN1x1NzUyYlx1NjI5YVx1OGY4NVx1NGZlZlx1OTFkY1x1NjVhN1x1ODEyZlx1ODE1MVx1NWU5Y1x1ODE1MFx1OGQ3NFx1NTI2Zlx1ODk4Nlx1OGQ0Ylx1NTkwZFx1NTA4NVx1NGVkOFx1OTYxY1x1NzIzNlx1ODE3OVx1OGQxZlx1NWJjY1x1OGJhM1x1OTY0NFx1'@; put 'NTk4N1x1N2YxYVx1NTQ5MFx1NTY3Nlx1NTYwZVx1OGJlNVx1NjUzOVx1Njk4Mlx1OTQ5OVx1NzZkNlx1NmU4OVx1NWU3Mlx1NzUxOFx1Njc0Nlx1NjdkMVx1N2FmZlx1ODA5ZFx1OGQ3Nlx1NjExZlx1NzljNlx1NjU2Mlx1OGQ2M1x1NTE4OFx1NTIxYVx1OTRhMlx1N2YzOFx1ODA5Ylx1N2Vi'@; put 'Mlx1NWM5N1x1NmUyZlx1Njc2MFx1N2JkOVx1NzY4Ylx1OWFkOFx1ODE4Zlx1N2Y5NFx1N2NkNVx1NjQxZVx1OTU1MFx1N2EzZlx1NTQ0YVx1NTRlNVx1NmI0Y1x1NjQwMVx1NjIwOFx1OWUzZFx1ODBmM1x1NzU5OVx1NTI3Mlx1OTc2OVx1ODQ1Ylx1NjgzY1x1ODZlNFx1OTYwMVx1OTY5NFx1'@; put 'OTRlY1x1NGUyYVx1NTQwNFx1N2VkOVx1NjgzOVx1OGRkZlx1ODAxNVx1NjZmNFx1NWU5YVx1N2ZiOVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE4NF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTg0XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE4NF1bcF1dPTQ3MTA0K3AsYls0NzEwNCtw'@; put 'XT1fWzE4NF1bcF0pO2ZvcihfWzE4NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1NTdjMlx1ODAzZlx1Njg5N1x1NWRlNVx1NjUzYlx1NTI5Zlx1NjA2ZFx1OWY5YVx1NGY5Ylx1OGVhY1x1NTE2Y1x1NWJhYlx1NWYxM1x1NWRlOVx1NmM1ZVx1NjJmMVx1OGQyMVx1NTE3MVx1OTRhOVx1NTJmZVx1NmM5Zlx1ODJkZlx1NzJkN1x1NTdhMlx1Njc4NFx1OGQyZFx1NTkxZlx1'@; put 'OGY5Y1x1ODNjN1x1NTQ5NVx1N2I4ZFx1NGYzMFx1NmNiZFx1NWI2NFx1NTlkMVx1OWYxM1x1NTNlNFx1ODZjYVx1OWFhOFx1OGMzN1x1ODBhMVx1NjU0NVx1OTg3ZVx1NTZmYVx1OTZjN1x1NTIyZVx1NzRkY1x1NTI1MFx1NWJlMVx1NjMwMlx1ODkwMlx1NGU1Nlx1NjJkMFx1NjAyYVx1Njhm'@; put 'YVx1NTE3M1x1NWI5OFx1NTFhMFx1ODljMlx1N2JhMVx1OTk4Nlx1N2Y1MFx1NjBlZlx1NzA0Y1x1OGQyZlx1NTE0OVx1NWU3Zlx1OTAxYlx1NzQ3MFx1ODljNFx1NTcyZFx1Nzg0NVx1NWY1Mlx1OWY5Zlx1OTVmYVx1OGY2OFx1OWIzY1x1OGJlMVx1NzY3OFx1Njg0Mlx1NjdkY1x1OGRlYVx1'@; put 'OGQzNVx1NTIzZFx1OGY4YVx1NmVkYVx1NjhjZFx1OTUwNVx1OTBlZFx1NTZmZFx1Njc5Y1x1ODhmOVx1OGZjN1x1NTRjOFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE4NV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTg1XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE4NV1bcF1dPTQ3MzYw'@; put 'K3AsYls0NzM2MCtwXT1fWzE4NV1bcF0pO2ZvcihfWzE4Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1OWFiOFx1NWI2OVx1NmQ3N1x1NmMyNlx1NGVhNVx1NWJiM1x1OWE4N1x1OTE2M1x1NjFhOFx1OTBhZlx1OTdlOVx1NTQyYlx1NmRiNVx1NWJkMlx1NTFmZFx1NTU4YVx1N2Y1NVx1N2ZmMFx1NjRiY1x1NjM0ZFx1NjVmMVx1NjFiZVx1NjA4ZFx1NzEwYVx1NmM1N1x1'@; put 'NmM0OVx1NTkyZlx1Njc2ZFx1ODIyYVx1NThkNVx1NTY4ZVx1OGM2YVx1NmJlYlx1OTBkZFx1NTk3ZFx1ODAxN1x1NTNmN1x1NmQ2OVx1NTQ3NVx1NTU5ZFx1ODM3N1x1ODNjZlx1NjgzOFx1NzliZVx1NTQ4Y1x1NGY1NVx1NTQwOFx1NzZkMlx1OGM4OVx1OTYwMlx1NmNiM1x1NmRiOFx1OGQ2'@; put 'Ylx1ODkxMFx1OWU2NFx1OGQzYVx1NTYzZlx1OWVkMVx1NzVkNVx1NWY4OFx1NzJlMFx1NjA2OFx1NTRmY1x1NGVhOFx1NmEyYVx1ODg2MVx1NjA1Mlx1OGY3MFx1NTRjNFx1NzBkOFx1ODY3OVx1OWUzZlx1NmQyYVx1NWI4Zlx1NWYxOFx1N2VhMlx1NTU4OVx1NGZhZlx1NzMzNFx1NTQzY1x1'@; put 'NTM5YVx1NTAxOVx1NTQwZVx1NTQ3Y1x1NGU0ZVx1NWZmZFx1NzQ1YVx1NThmNlx1ODQ2Ylx1ODBlMVx1ODc3NFx1NzJkMFx1N2NjYVx1NmU1Nlx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE4Nl0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTg2XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE4'@; put 'Nl1bcF1dPTQ3NjE2K3AsYls0NzYxNitwXT1fWzE4Nl1bcF0pO2ZvcihfWzE4N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWYyN1x1ODY0ZVx1NTUyY1x1NjJhNFx1NGU5Mlx1NmNhYVx1NjIzN1x1ODJiMVx1NTRkN1x1NTM0ZVx1NzMzZVx1NmVkMVx1NzUzYlx1NTIxMlx1NTMxNlx1OGJkZFx1NjlkMFx1NWY4YVx1NjAwMFx1NmRlZVx1NTc0Zlx1NmIyMlx1NzNhZlx1'@; put 'Njg1M1x1OGZkOFx1N2YxM1x1NjM2Mlx1NjBhM1x1NTUyNFx1NzVlYVx1OGM2Mlx1NzExNVx1NmRhM1x1NWJhNlx1NWU3Ylx1ODM1Mlx1NjE0Y1x1OWVjNFx1NzhmYVx1ODc1N1x1N2MyN1x1NzY4N1x1NTFmMFx1NjBmNlx1NzE0Y1x1NjY0M1x1NWU0Y1x1NjA0ZFx1OGMwZVx1NzA3MFx1NjMy'@; put 'NVx1OGY4OVx1NWZiZFx1NjA2Mlx1ODZkNFx1NTZkZVx1NmJjMVx1NjA5NFx1NjE2N1x1NTM0OVx1NjBlMFx1NjY2Nlx1OGQzZlx1NzlmZFx1NGYxYVx1NzBlOVx1NmM0N1x1OGJiM1x1OGJmMlx1N2VkOFx1ODM2NFx1NjYwZlx1NWE1YVx1OWI0Mlx1NmQ1MVx1NmRmN1x1OGM0MVx1NmQzYlx1'@; put 'NGYxOVx1NzA2Ylx1ODNiN1x1NjIxNlx1NjBkMVx1OTcwZFx1OGQyN1x1Nzk3OFx1NTFmYlx1NTczZVx1NTdmYVx1NjczYVx1NzU3OFx1N2EzZFx1NzllZlx1N2I5NVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE4N10ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTg3XVtwXS5jaGFyQ29kZUF0'@; put 'KDApJiYoRFtfWzE4N11bcF1dPTQ3ODcyK3AsYls0Nzg3MitwXT1fWzE4N11bcF0pO2ZvcihfWzE4OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODA4Y1x1OTk2NVx1OGZmOVx1NmZjMFx1OGJhNVx1OWUyMVx1NTllY1x1N2VlOVx1N2YwOVx1NTQwOVx1Njc4MVx1NjhkOFx1OGY5MVx1N2M0ZFx1OTZjNlx1NTNjYVx1NjAyNVx1NzViZVx1NmM3Mlx1NTM3M1x1NWFjOVx1'@; put 'N2VhN1x1NjMyNFx1NTFlMFx1ODEwYVx1NWRmMVx1ODRkZlx1NjI4MFx1NTE4MFx1NWI2M1x1NGYwZVx1Nzk2ZFx1NTI0Mlx1NjBiOFx1NmQ0ZVx1NWJjNFx1NWJjMlx1OGJhMVx1OGJiMFx1NjVlMlx1NWZjY1x1OTY0NVx1NTk5M1x1N2VlN1x1N2VhYVx1NTYwOVx1NjdiN1x1NTkzOVx1NGY3'@; put 'M1x1NWJiNlx1NTJhMFx1ODM1YVx1OTg4YVx1OGQzZVx1NzUzMlx1OTRiZVx1NTA0N1x1N2EzY1x1NGVmN1x1NjdiNlx1OWE3ZVx1NWFjMVx1NmI3Y1x1NzZkMVx1NTc1YVx1NWMxNlx1N2IzYVx1OTVmNFx1NzE0ZVx1NTE3Y1x1ODBhOVx1ODI3MFx1NTk3OFx1N2YwNFx1ODMyN1x1NjhjMFx1'@; put 'NjdlY1x1NzhiMVx1Nzg3N1x1NjJlM1x1NjM2MVx1N2I4MFx1NGZlZFx1NTI2YVx1NTFjZlx1ODM1MFx1NjlkYlx1OTI3NFx1OGRmNVx1OGQzMVx1ODljMVx1OTUyZVx1N2JhZFx1NGVmNlx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE4OF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTg4XVtw'@; put 'XS5jaGFyQ29kZUF0KDApJiYoRFtfWzE4OF1bcF1dPTQ4MTI4K3AsYls0ODEyOCtwXT1fWzE4OF1bcF0pO2ZvcihfWzE4OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTA2NVx1ODIzMFx1NTI1MVx1OTk2Zlx1NmUxMFx1NmU4NVx1NmRhN1x1NWVmYVx1NTBmNVx1NTlkY1x1NWMwNlx1NmQ0Nlx1NmM1Zlx1NzU4Nlx1ODQ4Ylx1Njg2OFx1NTk1Nlx1OGJiMlx1NTMyMFx1'@; put 'OTE3MVx1OTY0ZFx1ODU0OVx1NjkxMlx1NzkwMVx1NzEyNlx1ODBmNlx1NGVhNFx1OTBjYVx1NmQ0N1x1OWE4NFx1NWEwN1x1NTZiY1x1NjQwNVx1OTRmMFx1NzdlYlx1NGZhNVx1ODExYVx1NzJlMVx1ODlkMlx1OTk3YVx1N2YzNFx1N2VkZVx1NTI3Zlx1NjU1OVx1OTE3NVx1OGY3Zlx1OGY4'@; put 'M1x1NTNlYlx1N2E5Nlx1NjNlZFx1NjNhNVx1NzY4Nlx1NzlmOFx1ODg1N1x1OTYzNlx1NjIyYVx1NTJhYlx1ODI4Mlx1Njg1NFx1Njc3MFx1NjM3N1x1Nzc2Ylx1N2FlZFx1NmQwMVx1N2VkM1x1ODllM1x1NTlkMFx1NjIxMlx1ODVjOVx1ODJhNVx1NzU0Y1x1NTAxZlx1NGVjYlx1NzVhNVx1'@; put 'OGJlYlx1NWM0YVx1NWRmZVx1N2I0Ylx1NjVhNFx1OTFkMVx1NGVjYVx1NmQyNVx1ODk1Zlx1N2QyN1x1OTUyNlx1NGVjNVx1OGMyOFx1OGZkYlx1OTc3M1x1NjY0Ylx1Nzk4MVx1OGZkMVx1NzBlY1x1NmQ3OFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE4OV0ubGVuZ3RoOysrcCk2NTUz'@; put 'MyE9PV9bMTg5XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE4OV1bcF1dPTQ4Mzg0K3AsYls0ODM4NCtwXT1fWzE4OV1bcF0pO2ZvcihfWzE5MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWMzZFx1NTJiMlx1ODM0Nlx1NTE2Mlx1ODMwZVx1Nzc1Ylx1NjY3Nlx1OWNiOFx1NGVhY1x1NjBjYVx1N2NiZVx1N2NiM1x1N2VjZlx1NGU5NVx1OGI2Nlx1NjY2Zlx1OTg4OFx1'@; put 'OTc1OVx1NTg4M1x1NjU2Y1x1OTU1Y1x1NWY4NFx1NzVjOVx1OTc1Nlx1N2FkZlx1N2FkZVx1NTFjMFx1NzBhZlx1N2E5OFx1NjNlYVx1N2E3Nlx1N2VhMFx1NzM5Nlx1OTdlZFx1NGU0NVx1NzA3OFx1NGU1ZFx1OTE1Mlx1NTNhOVx1NjU1MVx1NjVlN1x1ODFmY1x1ODIwNVx1NTQ4ZVx1NWMz'@; put 'MVx1NzU5YVx1OTdhMFx1NjJkOFx1NzJkOVx1NzViZFx1NWM0NVx1OWE3OVx1ODNjYVx1NWM0MFx1NTQ4MFx1NzdlOVx1NGUzZVx1NmNhZVx1ODA1YVx1NjJkMlx1NjM2ZVx1NWRlOFx1NTE3N1x1OGRkZFx1OGUxZVx1OTUyZlx1NGZmMVx1NTNlNVx1NjBlN1x1NzBhY1x1NTI2N1x1NjM1MFx1'@; put 'OWU0M1x1NWExZlx1NTAyNlx1NzczN1x1NTM3N1x1N2VlMlx1NjQ4NVx1NjUyYlx1NjI4OVx1NjM5OFx1NTAxNFx1NzIzNVx1ODljOVx1NTFiM1x1OGJjMFx1N2VkZFx1NTc0N1x1ODNjY1x1OTRhN1x1NTE5Ylx1NTQxYlx1NWNmYlx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE5MF0ubGVu'@; put 'Z3RoOysrcCk2NTUzMyE9PV9bMTkwXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE5MF1bcF1dPTQ4NjQwK3AsYls0ODY0MCtwXT1fWzE5MF1bcF0pO2ZvcihfWzE5MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NGZjYVx1N2FlM1x1NmQ1YVx1OTBlMVx1OWE4Zlx1NTU4MFx1NTQ5Nlx1NTM2MVx1NTRhZlx1NWYwMFx1NjNlOVx1Njk3N1x1NTFlZlx1NjE2OFx1NTIwYVx1'@; put 'NTgyYVx1NTJkOFx1NTc0ZVx1NzgwZFx1NzcwYlx1NWViN1x1NjE3N1x1N2NlMFx1NjI1Ylx1NjI5N1x1NGVhMlx1NzA5NVx1ODAwM1x1NjJmN1x1NzBlNFx1OTc2MFx1NTc3N1x1ODJkYlx1NjdlZlx1NjhmNVx1NzhkNVx1OTg5N1x1NzlkMVx1NThmM1x1NTRiM1x1NTNlZlx1NmUzNFx1NTE0'@; put 'Ylx1NTIzYlx1NWJhMlx1OGJmZVx1ODBhZlx1NTU0M1x1NTdhNlx1NjA3M1x1NTc1MVx1NTQyZFx1N2E3YVx1NjA1MFx1NWI1NFx1NjNhN1x1NjJhMFx1NTNlM1x1NjI2M1x1NWJjN1x1NjdhZlx1NTRlZFx1N2E5Zlx1ODJlNlx1OTE3N1x1NWU5M1x1ODhlNFx1NTkzOFx1NTdhZVx1NjMwZVx1'@; put 'OGRlOFx1ODBlZlx1NTc1N1x1N2I3N1x1NGZhOVx1NWZlYlx1NWJiZFx1NmIzZVx1NTMyMVx1N2I1MFx1NzJjMlx1Njg0Nlx1NzdmZlx1NzczNlx1NjVmN1x1NTFiNVx1NGU4Zlx1NzZkNFx1NWNiZlx1N2FhNVx1ODQ3NVx1NTk0ZVx1OWI0MVx1NTA4MFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtw'@; put 'IT1fWzE5MV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTkxXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE5MV1bcF1dPTQ4ODk2K3AsYls0ODg5NitwXT1fWzE5MV1bcF0pO2ZvcihfWzE5Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTk4OFx1NjEyN1x1NmU4M1x1NTc2NFx1NjYwNlx1NjM0Nlx1NTZmMFx1NjJlY1x1NjI2OVx1NWVkM1x1OTYxNFx1NTc4M1x1NjJjOVx1'@; put 'NTU4N1x1ODcyMVx1ODE0YVx1OGZhM1x1NTU2Nlx1ODNiMVx1Njc2NVx1OGQ1Nlx1ODRkZFx1NWE2YVx1NjgwZlx1NjJlNlx1N2JlZVx1OTYxMVx1NTE3MFx1NmY5Y1x1OGMzMFx1NjNmZFx1ODljOFx1NjFkMlx1N2YwNlx1NzBjMlx1NmVlNVx1NzQwNVx1Njk5NFx1NzJmY1x1NWVjYVx1OTBj'@; put 'ZVx1NjcxN1x1NmQ2YVx1NjM1ZVx1NTJiM1x1NzI2Mlx1ODAwMVx1NGY2Y1x1NTllNVx1OTE2YVx1NzBkOVx1NmQ5ZFx1NTJkMlx1NGU1MFx1OTZmN1x1OTU2ZFx1ODU3ZVx1NzhjYVx1N2QyZlx1NTEyMVx1NTc5Mlx1NjRjMlx1ODA4Ylx1N2M3Ylx1NmNlYVx1NjhmMVx1Njk1ZVx1NTFiN1x1'@; put 'NTM5OFx1NjhhOFx1NzI4MVx1OWVjZVx1N2JmMVx1NzJmOFx1NzliYlx1NmYxM1x1NzQwNlx1Njc0ZVx1OTFjY1x1OWNhNFx1NzkzY1x1ODM4OVx1ODM1NFx1NTQwZlx1NjgxN1x1NGUzZFx1NTM4OVx1NTJiMVx1NzgzZVx1NTM4Nlx1NTIyOVx1NTA4OFx1NGY4Ylx1NGZkMFx1ZmZmZCIuc3Bs'@; put 'aXQoIiIpLHA9MDtwIT1fWzE5Ml0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTkyXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE5Ml1bcF1dPTQ5MTUyK3AsYls0OTE1MitwXT1fWzE5Ml1bcF0pO2ZvcihfWzE5M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzVlMlx1N2FjYlx1N2M5Mlx1NmNhNVx1OTZiNlx1NTI5Ylx1NzQ4M1x1NTRlOVx1NGZlOVx1ODA1NFx1ODNiMlx1'@; put 'OGZkZVx1OTU3MFx1NWVjOVx1NjAxY1x1NmQ5Zlx1NWUxOFx1NjU1Ylx1ODEzOFx1OTRmZVx1NjA0Ylx1NzBiY1x1N2VjM1x1N2NhZVx1NTFjOVx1Njg4MVx1N2NiMVx1ODI2Zlx1NGUyNFx1OGY4Nlx1OTFjZlx1NjY3ZVx1NGVhZVx1OGMwNVx1NjRhOVx1ODA0YVx1NTBkYVx1NzU5N1x1NzFj'@; put 'ZVx1NWJlNVx1OGZiZFx1NmY2Nlx1NGU4Nlx1NjQ4Mlx1OTU2M1x1NWVkNlx1NjU5OVx1NTIxN1x1ODhjMlx1NzBjOFx1NTJhM1x1NzMwZVx1NzQzM1x1Njc5N1x1NzhmN1x1OTcxNlx1NGUzNFx1OTBiYlx1OWNkZVx1NmRjYlx1NTFkYlx1OGQ0MVx1NTQxZFx1NjJjZVx1NzNiMlx1ODNmMVx1'@; put 'OTZmNlx1OWY4NFx1OTRjM1x1NGYzNlx1N2Y5YVx1NTFjY1x1NzA3NVx1OTY3NVx1NWNhZFx1OTg4Nlx1NTNlNlx1NGVlNFx1NmU5Y1x1NzQwOVx1NjliNFx1Nzg2Ylx1OTk4Zlx1NzU1OVx1NTIxOFx1NzYyNFx1NmQ0MVx1NjdmM1x1NTE2ZFx1OWY5OVx1ODA0Ylx1NTQ5OVx1N2IzY1x1N2Fi'@; put 'Zlx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE5M10ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTkzXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE5M11bcF1dPTQ5NDA4K3AsYls0OTQwOCtwXT1fWzE5M11bcF0pO2ZvcihfWzE5NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTY4Nlx1NTc4NFx1NjJlMlx1OTY0N1x1Njk3Y1x1NWEwNFx1NjQwMlx1N2JkM1x1NmYwZlx1'@; put 'OTY0Ylx1ODJhNlx1NTM2Mlx1OTg4NVx1NWU5MFx1NzA4OVx1NjNiM1x1NTM2NFx1ODY0Zlx1OWM4MVx1OWU5M1x1Nzg4Y1x1OTczMlx1OGRlZlx1OGQ0Mlx1OWU3Zlx1NmY1ZVx1Nzk4NFx1NWY1NVx1OTY0Nlx1NjIyZVx1OWE3NFx1NTQxNVx1OTRkZFx1NGZhM1x1NjVjNVx1NWM2NVx1NWM2'@; put 'MVx1N2YxNVx1ODY1MVx1NmMyZlx1NWY4Ylx1NzM4N1x1NmVlNFx1N2VmZlx1NWNlNlx1NjMxYlx1NWI2YVx1NmVlNlx1NTM3NVx1NGU3MVx1NjNhMFx1NzU2NVx1NjJhMVx1OGY2ZVx1NGYyNlx1NGVkMVx1NmNhNlx1N2ViNlx1OGJiYVx1ODQxZFx1ODdiYVx1N2Y1N1x1OTAzYlx1OTUyM1x1'@; put 'N2JhOVx1OWFhMVx1ODhmOFx1ODQzZFx1NmQxYlx1OWE4Nlx1N2VkY1x1NTk4OFx1OWViYlx1NzM5Ylx1NzgwMVx1ODY4Mlx1OWE2Y1x1OWE4Mlx1NTYxYlx1NTQxN1x1NTdjYlx1NGU3MFx1OWVhNlx1NTM1Nlx1OGZjOFx1ODEwOVx1Nzc5Mlx1OTk5Mlx1ODZlZVx1NmVlMVx1ODUxM1x1NjZm'@; put 'Y1x1NjE2Mlx1NmYyYlx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE5NF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTk0XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE5NF1bcF1dPTQ5NjY0K3AsYls0OTY2NCtwXT1fWzE5NF1bcF0pO2ZvcihfWzE5NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGMyOVx1ODI5Mlx1ODMyYlx1NzZmMlx1NmMxM1x1NWZkOVx1ODNiZFx1'@; put 'NzMyYlx1ODMwNVx1OTUxYVx1NmJkYlx1NzdkYlx1OTRjNlx1NTM2Zlx1ODMwMlx1NTE5Mlx1NWUzZFx1OGM4Y1x1OGQzOFx1NGU0OFx1NzNhYlx1Njc5YVx1Njg4NVx1OTE3Nlx1OTcwOVx1NzE2NFx1NmNhMVx1NzcwOVx1NWE5Mlx1OTU0MVx1NmJjZlx1N2Y4ZVx1NjYyN1x1NWJkMFx1NTli'@; put 'OVx1NWE5YVx1OTVlOFx1OTVmN1x1NGVlY1x1ODQwY1x1ODQ5OVx1NmFhY1x1NzZkZlx1OTUzMFx1NzMxYlx1NjhhNlx1NWI1Zlx1NzcyZlx1OTE5YVx1OTc2MVx1N2NkY1x1OGZmN1x1OGMxY1x1NWYyNVx1N2M3M1x1NzlkOFx1ODljNVx1NmNjY1x1ODcxY1x1NWJjNlx1NWU0Mlx1NjhjOVx1'@; put 'NzcyMFx1N2VmNVx1NTE5NVx1NTE0ZFx1NTJjOVx1NWEyOVx1N2YwNVx1OTc2Mlx1ODJkN1x1NjNjZlx1Nzc4NFx1ODVkMFx1NzlkMlx1NmUzYVx1NWU5OVx1NTk5OVx1ODUxMVx1NzA2ZFx1NmMxMVx1NjJiZlx1NzZiZlx1NjU0Zlx1NjBhZlx1OTVmZFx1NjYwZVx1ODc5Zlx1OWUyM1x1OTRl'@; put 'ZFx1NTQwZFx1NTQ3ZFx1OGMyY1x1NjQ3OFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE5NV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTk1XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE5NV1bcF1dPTQ5OTIwK3AsYls0OTkyMCtwXT1fWzE5NV1bcF0pO2ZvcihfWzE5Nl09Ilx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjQ3OVx1ODYxMVx1NmEyMVx1ODE5Y1x1NzhlOFx1'@; put 'NjQ2OVx1OWI1NFx1NjJiOVx1NjcyYlx1ODNhYlx1NThhOFx1OWVkOFx1NmNhYlx1NmYyMFx1NWJkZVx1OTY0Y1x1OGMwYlx1NzI1Zlx1NjdkMFx1NjJjN1x1NzI2MVx1NGVhOVx1NTljNlx1NmJjZFx1NTg5M1x1NjZhZVx1NWU1NVx1NTJkZlx1NjE1NVx1NjcyOFx1NzZlZVx1Nzc2Nlx1NzI2'@; put 'N1x1N2E0Nlx1NjJmZlx1NTRlYVx1NTQ1MFx1OTRhMFx1OTBhM1x1NWExY1x1N2ViM1x1NmMxNlx1NGU0M1x1NTk3Nlx1ODAxMFx1NTk0OFx1NTM1N1x1NzUzN1x1OTZiZVx1NTZjYVx1NjMyMFx1ODExMVx1NjA3Y1x1OTVmOVx1NmRkNlx1NTQ2Mlx1OTk4MVx1NTE4NVx1NWFlOVx1ODBmZFx1'@; put 'NTlhZVx1OTcxM1x1NTAyYVx1NmNlNVx1NWMzY1x1NjJkZlx1NGY2MFx1NTMzZlx1ODE3Ylx1OTAwNlx1NmViYVx1ODUyYlx1NjJjOFx1NWU3NFx1NzhiZVx1NjRiNVx1NjM3Ylx1NWZmNVx1NWExOFx1OTE3Zlx1OWUxZlx1NWMzZlx1NjM0Zlx1ODA0Mlx1NWI3ZFx1NTU2ZVx1OTU0YVx1OTU0'@; put 'ZFx1NmQ4NVx1NjBhOFx1NjdlMFx1NzJkZVx1NTFkZFx1NWI4MVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE5Nl0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTk2XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE5Nl1bcF1dPTUwMTc2K3AsYls1MDE3NitwXT1fWzE5Nl1bcF0pO2ZvcihfWzE5'@; put 'N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjJlN1x1NmNkZVx1NzI1Ylx1'@; put 'NjI2ZFx1OTRhZVx1N2ViZFx1ODExM1x1NmQ1M1x1NTE5Y1x1NWYwNFx1NTk3NFx1NTJhYVx1NjAxMlx1NTk3M1x1NjY5Nlx1ODY1MFx1NzU5Zlx1NjMyYVx1NjFlNlx1N2NlZlx1OGJmYVx1NTRlNlx1NmIyN1x1OWUyNVx1NmJiNFx1ODVkNVx1NTQ1NVx1NTA3Nlx1NmNhNFx1NTU2YVx1OGRi'@; put 'NFx1NzIyY1x1NWUxNVx1NjAxNVx1NzQzNlx1NjJjZFx1NjM5Mlx1NzI0Y1x1NWY5OFx1NmU0M1x1NmQzZVx1NjUwMFx1NmY1OFx1NzZkOFx1NzhkMFx1NzZmY1x1NzU1NFx1NTIyNFx1NTNkYlx1NGU1M1x1NWU5ZVx1NjVjMVx1ODAyYVx1ODBkNlx1NjI5Ylx1NTQ4Nlx1NTIyOFx1NzBhZVx1'@; put 'ODg4ZFx1OGRkMVx1NmNlMVx1NTQ3OFx1ODBkYVx1NTdmOVx1ODhmNFx1OGQ1NFx1OTY2YVx1OTE0ZFx1NGY2OVx1NmM5Ylx1NTViN1x1NzZjNlx1NzgzMFx1NjJhOFx1NzBmOVx1NmY4ZVx1NWY2ZFx1ODRlY1x1NjhkYVx1Nzg3Y1x1N2JmN1x1ODFhOFx1NjcwYlx1OWU0Zlx1NjM2N1x1Nzhi'@; put 'MFx1NTc2Zlx1NzgxMlx1OTczOVx1NjI3OVx1NjJhYlx1NTI4OFx1NzQzNVx1NmJkN1x1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE5N10ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTk3XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE5N11bcF1dPTUwNDMyK3AsYls1MDQzMitwXT1fWzE5N11b'@; put 'cF0pO2ZvcihfWzE5OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTU2NFx1'@; put 'ODEzZVx1NzViMlx1NzZhZVx1NTMzOVx1NzVkZVx1NTBmYlx1NWM0MVx1OGI2Y1x1N2JjN1x1NTA0Zlx1NzI0N1x1OWE5N1x1OThkOFx1NmYwMlx1NzRlMlx1Nzk2OFx1NjQ4N1x1NzdhNVx1NjJmY1x1OTg5MVx1OGQyYlx1NTRjMVx1ODA1OFx1NGU1Mlx1NTc2YVx1ODJmOVx1ODQwZFx1NWU3'@; put 'M1x1NTFlZFx1NzRmNlx1OGJjNFx1NWM0Zlx1NTc2MVx1NmNmY1x1OTg4N1x1NWE0Nlx1NzgzNFx1OWI0NFx1OGZlYlx1N2M5NVx1NTI1Nlx1NjI1MVx1OTRmYVx1NGVjNlx1ODM4Nlx1ODQ2MVx1ODNlOVx1ODRiMlx1NTdkNFx1NjczNFx1NTcwM1x1NjY2ZVx1NmQ2Nlx1OGMzMVx1NjZkZFx1'@; put 'NzAxMVx1NjcxZlx1NmIzYVx1NjgxNlx1NjIxYVx1NTliYlx1NGUwM1x1NTFjNFx1NmYwNlx1NjdkMlx1NmM4Zlx1NTE3Nlx1NjhjYlx1NTk0N1x1NmI2N1x1NzU2Nlx1NWQwZVx1ODExMFx1OWY1MFx1NjVkN1x1Nzk0OFx1Nzk0MVx1OWE5MVx1OGQ3N1x1NWM4Mlx1NGU1ZVx1NGYwMVx1NTQy'@; put 'Zlx1NTk1MVx1NzgwY1x1NTY2OFx1NmMxNFx1OGZjNFx1NWYwM1x1NmM3ZFx1NmNlM1x1OGJhYlx1NjM5MFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE5OF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTk4XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE5OF1bcF1dPTUwNjg4K3AsYls1MDY4'@; put 'OCtwXT1fWzE5OF1bcF0pO2ZvcihfWzE5OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1NjA3MFx1NmQzZFx1NzI3NVx1NjI2Nlx1OTQ4ZVx1OTRjNVx1NTM0M1x1OGZjMVx1N2I3ZVx1NGVkZlx1OGMyNlx1NGU3ZVx1OWVkNFx1OTRiMVx1OTRiM1x1NTI0ZFx1NmY1Y1x1OTA2M1x1NmQ0NVx1OGMzNFx1NTgxMVx1NWQ0Y1x1NmIyMFx1NmI0OVx1NjdhYVx1NTQ1Ylx1ODE1'@; put 'NFx1N2Y4Y1x1NTg5OVx1ODUzN1x1NWYzYVx1NjJhMlx1NmE0N1x1OTUzOVx1NjU3Mlx1NjA4NFx1Njg2NVx1NzdhN1x1NGU1NFx1NGZhOFx1NWRlN1x1OTc5OFx1NjRhY1x1N2ZkOFx1NWNlZFx1NGZjZlx1N2E4ZFx1NTIwN1x1ODMwNFx1NGUxNFx1NjAyZlx1N2E4M1x1OTRhNlx1NGZiNVx1'@; put 'NGViMlx1NzllNlx1NzQzNFx1NTJlNFx1ODJiOVx1NjRkMlx1NzliZFx1NWJkZFx1NmM4MVx1OTc1Mlx1OGY3Ylx1NmMyMlx1NTAzZVx1NTM3Zlx1NmUwNVx1NjRjZVx1NjY3NFx1NmMzMFx1NjBjNVx1OTg3N1x1OGJmN1x1NWU4Nlx1NzQzY1x1N2E3N1x1NzljYlx1NGUxOFx1OTBiMVx1NzQw'@; put 'M1x1NmM0Mlx1NTZkYVx1OTE0Ylx1NmNjNVx1OGQ4Ylx1NTMzYVx1ODZjNlx1NjZmMlx1OGVhZlx1NWM0OFx1OWE3MVx1NmUyMFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzE5OV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMTk5XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzE5OV1bcF1dPTUw'@; put 'OTQ0K3AsYls1MDk0NCtwXT1fWzE5OV1bcF0pO2ZvcihfWzIwMF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1NTNkNlx1NWEzNlx1OWY4Ylx1OGRhM1x1NTNiYlx1NTcwOFx1OThhN1x1Njc0M1x1OTE5Ylx1NmNjOVx1NTE2OFx1NzVjYVx1NjJmM1x1NzJhY1x1NTIzOFx1NTI5ZFx1N2YzYVx1NzA5NFx1NzYzOFx1NTM3NFx1OWU0YVx1NjliN1x1Nzg2ZVx1OTZjMFx1ODhk'@; put 'OVx1N2ZhNFx1NzEzNlx1NzFjM1x1NTE4OVx1NjdkM1x1NzRlNFx1NThlNFx1NjUxOFx1NTZiN1x1OGJhOVx1OTk3Nlx1NjI3MFx1N2VkNVx1NjBmOVx1NzBlZFx1NThlY1x1NGVjMVx1NGViYVx1NWZjZFx1OTdlN1x1NGVmYlx1OGJhNFx1NTIwM1x1NTk4YVx1N2VhYlx1NjI1NFx1NGVjZFx1'@; put 'NjVlNVx1NjIwZVx1ODMzOFx1ODRjOVx1ODM2M1x1ODc4ZFx1NzE5NFx1NmViNlx1NWJiOVx1N2VkMlx1NTE5N1x1NjNjOVx1NjdkNFx1ODA4OVx1ODMzOVx1ODgxNVx1NTExMlx1NWI3YVx1NTk4Mlx1OGZiMVx1NGU3M1x1NmM1ZFx1NTE2NVx1ODkyNVx1OGY2Zlx1OTYyZVx1ODU0YVx1NzQ1'@; put 'ZVx1OTUxMFx1OTVmMFx1NmRhNlx1ODJlNVx1NWYzMVx1NjQ5Mlx1NmQxMlx1ODQyOFx1ODE2ZVx1OWNjM1x1NTg1ZVx1OGQ1Ylx1NGUwOVx1NTNjMVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIwMF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjAwXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtf'@; put 'WzIwMF1bcF1dPTUxMjAwK3AsYls1MTIwMCtwXT1fWzIwMF1bcF0pO2ZvcihfWzIwMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NGYxZVx1NjU2M1x1Njg1MVx1NTVkM1x1NGUyN1x1NjQxNFx1OWE5YVx1NjI2Ylx1NWFjMlx1NzQ1Zlx1ODI3Mlx1NmRhOVx1NjhlZVx1NTBlN1x1ODM4ZVx1NzgwMlx1Njc0MFx1NTIzOVx1NmM5OVx1N2ViMVx1NTBiYlx1NTU2NVx1NzE1'@; put 'ZVx1N2I1Ylx1NjY1Mlx1NzNjYVx1ODJlYlx1Njc0OVx1NWM3MVx1NTIyMFx1NzE3ZFx1ODg2Ylx1OTVlYVx1OTY1NVx1NjRjNVx1OGQ2MVx1ODFiM1x1NTU4NFx1NmM1NVx1NjI0N1x1N2YyZVx1NTg5Mlx1NGYyNFx1NTU0Nlx1OGQ0Zlx1NjY0Y1x1NGUwYVx1NWMxYVx1ODhmM1x1NjhhMlx1'@; put 'NjM0ZVx1N2EwZFx1NzBlN1x1ODI4ZFx1NTJmYVx1OTdmNlx1NWMxMVx1NTRlOFx1OTBiNVx1N2VjZFx1NTk2Mlx1OGQ0YVx1ODZjN1x1ODIwY1x1ODIwZFx1OGQ2Nlx1NjQ0NFx1NWMwNFx1NjE1MVx1NmQ4OVx1NzkzZVx1OGJiZVx1NzgzN1x1NzUzM1x1NTQ3Ylx1NGYzOFx1OGVhYlx1NmRm'@; put 'MVx1NWEyMFx1N2VjNVx1Nzk1ZVx1NmM4OFx1NWJhMVx1NWE3Nlx1NzUxYVx1ODBiZVx1NjE0ZVx1NmUxN1x1NThmMFx1NzUxZlx1NzUyNVx1NzI3Mlx1NTM0N1x1N2VmM1x1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIwMV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjAxXVtwXS5jaGFyQ29k'@; put 'ZUF0KDApJiYoRFtfWzIwMV1bcF1dPTUxNDU2K3AsYls1MTQ1NitwXT1fWzIwMV1bcF0pO2ZvcihfWzIwMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzcwMVx1NzZkYlx1NTI2OVx1ODBkY1x1NTcyM1x1NWUwOFx1NTkzMVx1NzJlZVx1NjViZFx1NmU3Zlx1OGJkN1x1NWMzOFx1ODY3MVx1NTM0MVx1NzdmM1x1NjJmZVx1NjVmNlx1NGVjMFx1OThkZlx1ODY4MFx1NWI5'@; put 'ZVx1OGJjNlx1NTNmMlx1NzdlMlx1NGY3Zlx1NWM0ZVx1OWE3Nlx1NTljYlx1NWYwZlx1NzkzYVx1NThlYlx1NGUxNlx1NjdmZlx1NGU4Ylx1NjJlZFx1OGE5M1x1OTAxZFx1NTJiZlx1NjYyZlx1NTVkY1x1NTY2Y1x1OTAwMlx1NGVkNVx1NGY4ZFx1OTFjYVx1OTk3MFx1NmMwZlx1NWUwMlx1'@; put 'NjA0M1x1NWJhNFx1ODljNlx1OGJkNVx1NjUzNlx1NjI0Ylx1OTk5Nlx1NWI4OFx1NWJmZlx1NjM4OFx1NTUyZVx1NTNkN1x1NzYyNlx1NTE3ZFx1ODUyY1x1NjdhMlx1NjhiM1x1NmI4YVx1NjI5Mlx1OGY5M1x1NTNkNFx1ODIxMlx1NmRkMVx1NzU4Zlx1NGU2Nlx1OGQ0ZVx1NWI3MFx1NzE5'@; put 'Zlx1ODVhZlx1NjY5MVx1NjZkOVx1N2Y3Mlx1ODcwMFx1OWVjZFx1OWYyMFx1NWM1ZVx1NjcyZlx1OGZmMFx1NjgxMVx1Njc1Zlx1NjIwZFx1N2FkNlx1NTg4NVx1NWViNlx1NjU3MFx1NmYzMVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIwMl0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjAy'@; put 'XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIwMl1bcF1dPTUxNzEyK3AsYls1MTcxMitwXT1fWzIwMl1bcF0pO2ZvcihfWzIwM109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjA1NVx1NTIzN1x1ODAwZFx1NjQ1NFx1ODg3MFx1NzUyOVx1NWUwNVx1NjgxM1x1NjJmNFx1OTcxY1x1NTNjY1x1NzIzZFx1OGMwMVx1NmMzNFx1Nzc2MVx1N2EwZVx1NTQyZVx1NzdhY1x1OTg3'@; put 'YVx1ODIxY1x1OGJmNFx1Nzg1NVx1NjcxNFx1NzBjMVx1NjVhZlx1NjQ5NVx1NTYzNlx1NjAxZFx1NzljMVx1NTNmOFx1NGUxZFx1NmI3Ylx1ODA4Nlx1NWJmYVx1NTVlM1x1NTZkYlx1NGYzYVx1NGYzY1x1OTk3Mlx1NWRmM1x1Njc3ZVx1ODAzOFx1NjAwMlx1OTg4Mlx1OTAwMVx1NWI4Ylx1'@; put 'OGJiY1x1OGJmNVx1NjQxY1x1ODI1OFx1NjRkZVx1NTVmZFx1ODJjZlx1OTE2NVx1NGZkN1x1N2QyMFx1OTAxZlx1N2M5Zlx1NTBmM1x1NTg1MVx1NmVhZlx1NWJiZlx1OGJjOVx1ODA4M1x1OTE3OFx1ODQ5Y1x1N2I5N1x1ODY3ZFx1OTY4Ylx1OTY4Zlx1N2VlNVx1OWFkM1x1Nzg4ZVx1NWM4'@; put 'MVx1N2E1N1x1OTA0Mlx1OTZhN1x1Nzk1Zlx1NWI1OVx1NjM1Zlx1N2IwYlx1ODRkMVx1NjhhZFx1NTUwNlx1N2YyOVx1NzQxMFx1N2QyMlx1OTUwMVx1NjI0MFx1NTg0Y1x1NGVkNlx1NWI4M1x1NTk3OVx1NTg1NFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIwM10ubGVuZ3RoOysrcCk2'@; put 'NTUzMyE9PV9bMjAzXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIwM11bcF1dPTUxOTY4K3AsYls1MTk2OCtwXT1fWzIwM11bcF0pO2ZvcihfWzIwNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzM2ZFx1NjMxZVx1OGU0Ylx1OGUwZlx1ODBjZVx1ODJkNFx1NjJhY1x1NTNmMFx1NmNmMFx1OTE1ZVx1NTkyYVx1NjAwMVx1NmM3MFx1NTc0ZFx1NjQ0YVx1OGQyYVx1NzYy'@; put 'Ylx1NmVlOVx1NTc1Ylx1NmE4MFx1NzVmMFx1NmY2ZFx1OGMyZFx1OGMwOFx1NTc2Nlx1NmJlZlx1ODg5Mlx1NzhiM1x1NjNhMlx1NTNmOVx1NzBhZFx1NmM2NFx1NTg1OFx1NjQyYVx1NTgwMlx1NjhlMFx1ODE5Ylx1NTUxMFx1N2NkNlx1NTAxOFx1OGViYVx1NmRjY1x1OGQ5Zlx1NzBlYlx1'@; put 'NjM4Zlx1NmQ5Ylx1NmVkNFx1N2VlNlx1ODQwNFx1Njg0M1x1OTAwM1x1NmRkOFx1OTY3Nlx1OGJhOFx1NTk1N1x1NzI3OVx1ODVlNFx1ODE3ZVx1NzViY1x1OGE4YVx1NjhhZlx1NTI1NFx1OGUyMlx1OTUxMVx1NjNkMFx1OTg5OFx1OGU0NFx1NTU3Y1x1NGY1M1x1NjZmZlx1NTY4Zlx1NjBk'@; put 'NVx1NmQ5NVx1NTI0M1x1NWM0OVx1NTkyOVx1NmRmYlx1NTg2Ylx1NzUzMFx1NzUxY1x1NjA2Y1x1ODIxNFx1ODE0Nlx1NjMxMVx1Njc2MVx1OGZlMlx1NzczYVx1OGRmM1x1OGQzNFx1OTRjMVx1NWUxNlx1NTM4NVx1NTQyY1x1NzBjM1x1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIwNF0u'@; put 'bGVuZ3RoOysrcCk2NTUzMyE9PV9bMjA0XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIwNF1bcF1dPTUyMjI0K3AsYls1MjIyNCtwXT1fWzIwNF1bcF0pO2ZvcihfWzIwNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmM0MFx1NWVmN1x1NTA1Y1x1NGVhZFx1NWVhZFx1NjMzYVx1ODI0N1x1OTAxYVx1Njg1MFx1OTE2ZVx1NzdiM1x1NTQwY1x1OTRkY1x1NWY2NFx1N2Fl'@; put 'NVx1Njg3Nlx1NjM0NVx1N2I1Mlx1N2VkZlx1NzVkYlx1NTA3N1x1NjI5NVx1NTkzNFx1OTAwZlx1NTFmOFx1NzljM1x1N2E4MVx1NTZmZVx1NWY5Mlx1OTAxNFx1NmQ4Mlx1NWM2MFx1NTcxZlx1NTQxMFx1NTE1NFx1NmU0ZFx1NTZlMlx1NjNhOFx1OTg5M1x1ODE3Zlx1ODcxNVx1ODkyYVx1'@; put 'OTAwMFx1NTQxZVx1NWM2Zlx1ODFjMFx1NjJkNlx1NjI1OFx1ODEzMVx1OWUzNVx1OTY0MFx1OWE2ZVx1OWE3Y1x1NjkyZFx1NTlhNVx1NjJkM1x1NTUzZVx1NjMxNlx1NTRjN1x1ODZkOVx1NmQzY1x1NWEwM1x1NzRlNlx1ODg5Y1x1NmI2YVx1NTkxNlx1OGM0Y1x1NWYyZlx1NmU3ZVx1NzNh'@; put 'OVx1OTg3ZFx1NGUzOFx1NzBmN1x1NWI4Y1x1Nzg5N1x1NjMzZFx1NjY1YVx1NzY5Nlx1NjBjYlx1NWI5Ylx1NWE0OVx1NGUwN1x1ODE1NVx1NmM2YVx1NzM4Ylx1NGVhMVx1Njc4OVx1N2Y1MVx1NWY4MFx1NjVmYVx1NjcxYlx1NWZkOFx1NTk4NFx1NWEwMVx1ZmZmZCIuc3BsaXQoIiIpLHA9'@; put 'MDtwIT1fWzIwNV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjA1XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIwNV1bcF1dPTUyNDgwK3AsYls1MjQ4MCtwXT1fWzIwNV1bcF0pO2ZvcihfWzIwNl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWRjZFx1NWZhZVx1NTM3MVx1OTdlNlx1OGZkZFx1Njg0NVx1NTZmNFx1NTUyZlx1NjBkZlx1NGUzYVx1NmY0ZFx1N2VmNFx1ODJj'@; put 'N1x1ODQwZVx1NTlkNFx1NGYxZlx1NGYyYVx1NWMzZVx1N2VhY1x1NjcyYVx1ODUxYVx1NTQ3M1x1NzU0Zlx1ODBjM1x1NTU4Mlx1OWI0Zlx1NGY0ZFx1NmUyZFx1OGMxM1x1NWMwOVx1NjE3MFx1NTM2Ylx1NzYxZlx1NmUyOVx1ODY4YVx1NjU4N1x1OTVmYlx1N2ViOVx1NTQzYlx1N2EzM1x1'@; put 'N2QwYVx1OTVlZVx1NTVlMVx1N2ZjMVx1NzRlZVx1NjMxZFx1ODcxN1x1NmRhMVx1N2E5ZFx1NjIxMVx1NjVhMVx1NTM2N1x1NjNlMVx1NmM4M1x1NWRlYlx1NTQ1Y1x1OTRhOFx1NGU0Y1x1NmM2MVx1OGJlY1x1NWM0Ylx1NjVlMFx1ODI5Y1x1NjhhN1x1NTQzZVx1NTQzNFx1NmJjYlx1NmI2'@; put 'Nlx1NGU5NFx1NjM0Mlx1NTM0OFx1ODIxZVx1NGYwZFx1NGZhZVx1NTc1ZVx1NjIwYVx1OTZmZVx1NjY2NFx1NzI2OVx1NTJmZlx1NTJhMVx1NjA5Zlx1OGJlZlx1NjYxNFx1NzE5OVx1Njc5MFx1ODk3Zlx1Nzg1Mlx1NzdmZFx1NjY3MFx1NTYzYlx1NTQzOFx1OTUyMVx1NzI3YVx1ZmZmZCIu'@; put 'c3BsaXQoIiIpLHA9MDtwIT1fWzIwNl0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjA2XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIwNl1bcF1dPTUyNzM2K3AsYls1MjczNitwXT1fWzIwNl1bcF0pO2ZvcihfWzIwN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2EwMFx1NjA2Zlx1NWUwY1x1NjA4OVx1ODE5ZFx1NTkxNVx1NjBkY1x1NzE4NFx1NzBlZlx1NmVhYVx1NmM1'@; put 'MFx1NzI4MFx1NmE4NFx1ODhhZFx1NWUyZFx1NGU2MFx1NWFiM1x1NTU5Y1x1OTRlM1x1NmQxN1x1N2NmYlx1OTY5OVx1NjIwZlx1N2VjNlx1Nzc4ZVx1ODY3ZVx1NTMyM1x1OTcxZVx1OGY5Nlx1NjY4N1x1NWNlMVx1NGZhMFx1NzJlZFx1NGUwYlx1NTNhNlx1NTkwZlx1NTQxM1x1NjM4MFx1'@; put 'OTUyOFx1NTE0OFx1NGVkOVx1OWM5Y1x1N2VhNFx1NTRiOFx1OGQyNFx1ODg1NFx1ODIzN1x1OTVmMlx1NmQ4ZVx1NWYyNlx1NWFjY1x1NjYzZVx1OTY2OVx1NzNiMFx1NzMyZVx1NTNiZlx1ODE3YVx1OTk4NVx1N2ZhMVx1NWJhYVx1OTY3N1x1OTY1MFx1N2ViZlx1NzZmOFx1NTNhMlx1OTU3'@; put 'Nlx1OTk5OVx1N2JiMVx1ODk0NFx1NmU1OFx1NGU2MVx1N2ZkNFx1Nzk2NVx1OGJlNlx1NjBmM1x1NTRjZFx1NGVhYlx1OTg3OVx1NWRmN1x1NmE2MVx1NTBjZlx1NTQxMVx1OGM2MVx1ODQyN1x1Nzg1ZFx1OTcwNFx1NTI0YVx1NTRlZVx1NTZhM1x1OTUwMFx1NmQ4OFx1NWJiNVx1NmRjNlx1'@; put 'NjY1M1x1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIwN10ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjA3XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIwN11bcF1dPTUyOTkyK3AsYls1Mjk5MitwXT1fWzIwN11bcF0pO2ZvcihfWzIwOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWMwZlx1NWI1ZFx1NjgyMVx1ODA5Nlx1NTU3OFx1N2IxMVx1NjU0OFx1Njk1NFx1NGU5'@; put 'Ylx1NmI0N1x1ODc0ZVx1OTc4Ylx1NTM0Zlx1NjMxZlx1NjQzYVx1OTBhYVx1NjU5Y1x1ODBjMVx1OGMxMFx1NTE5OVx1NjhiMFx1NTM3OFx1ODdmOVx1NjFjOFx1NmNjNFx1NmNmYlx1OGMyMlx1NWM1MVx1ODVhYVx1ODJhZlx1OTUwY1x1NmIyM1x1OGY5Ylx1NjViMFx1NWZmYlx1NWZjM1x1'@; put 'NGZlMVx1ODg0NVx1NjYxZlx1ODE2NVx1NzMyOVx1NjBmYVx1NTE3NFx1NTIxMVx1NTc4Ylx1NWY2Mlx1OTBhMlx1ODg0Y1x1OTE5Mlx1NWU3OFx1Njc0Zlx1NjAyN1x1NTlkM1x1NTE0NFx1NTFmNlx1ODBmOFx1NTMwOFx1NmM3OVx1OTZjNFx1NzE4YVx1NGYxMVx1NGZlZVx1N2Y5ZVx1Njcz'@; put 'ZFx1NTVjNVx1OTUwOFx1NzljMFx1ODg5Nlx1N2VlM1x1NTg5Zlx1NjIwY1x1OTcwMFx1ODY1YVx1NTYxOFx1OTg3Ylx1NWY5MFx1OGJiOFx1ODRjNFx1OTE1N1x1NTNkOVx1NjVlZFx1NWU4Zlx1NzU1Y1x1NjA2NFx1N2Q2ZVx1NWE3Zlx1N2VlYVx1N2VlZFx1OGY2OVx1NTVhN1x1NWJhM1x1'@; put 'NjBhY1x1NjVjYlx1NzM4NFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIwOF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjA4XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIwOF1bcF1dPTUzMjQ4K3AsYls1MzI0OCtwXT1fWzIwOF1bcF0pO2ZvcihfWzIwOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTAwOVx1NzY2M1x1NzcyOVx1N2VkYVx1OTc3NFx1ODU5Ylx1NWI2'@; put 'Nlx1N2E3NFx1OTZlYVx1ODg0MFx1NTJjYlx1NzE4Zlx1NWZhYVx1NjVlY1x1OGJlMlx1NWJmYlx1OWE2Zlx1NWRlMVx1NmI4OVx1NmM1Ylx1OGJhZFx1OGJhZlx1OTAwYVx1OGZjNVx1NTM4Ylx1NjJiY1x1OWUyNlx1OWUyZFx1NTQ0MFx1NGUyYlx1ODJiZFx1NzI1OVx1ODY5Y1x1NWQxNlx1'@; put 'ODg1OVx1NmRhZlx1OTZjNVx1NTRkMVx1NGU5YVx1OGJiNlx1NzEwOVx1NTRiZFx1OTYwOVx1NzBkZlx1NmRmOVx1NzZkMFx1NGUyNVx1NzgxNFx1ODcxMlx1NWNhOVx1NWVmNlx1OGEwMFx1OTg5Y1x1OTYwZVx1NzA4ZVx1NmNiZlx1NTk0NFx1NjNhOVx1NzczY1x1ODg0ZFx1NmYxNFx1ODI3'@; put 'M1x1NTgzMFx1NzFkNVx1NTM4Y1x1NzgxYVx1OTZjMVx1NTUwMVx1NWY2Nlx1NzEzMFx1NWJiNFx1OGMxYVx1OWE4Y1x1NmI4M1x1NTkyZVx1OWUyZlx1NzllN1x1Njc2OFx1NjI2Y1x1NGY2Zlx1NzVhMVx1N2Y4YVx1NmQwYlx1OTYzM1x1NmMyN1x1NGVmMFx1NzVkMlx1NTE3Ylx1NjgzN1x1'@; put 'NmYzZVx1OTA4MFx1ODE3MFx1NTk5Nlx1NzQ3Nlx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIwOV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjA5XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIwOV1bcF1dPTUzNTA0K3AsYls1MzUwNCtwXT1fWzIwOV1bcF0pO2ZvcihfWzIxMF09Ilx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjQ0N1x1NWMyN1x1OTA2NVx1N2E5MVx1OGMy'@; put 'M1x1NTlkYVx1NTRhY1x1ODIwMFx1ODM2Zlx1ODk4MVx1ODAwMFx1NjkzMFx1NTY0ZVx1ODAzNlx1NzIzN1x1OTFjZVx1NTFiNlx1NGU1Zlx1OTg3NVx1NjM5Nlx1NGUxYVx1NTNmNlx1NjZmM1x1ODE0Ylx1NTkxY1x1NmRiMlx1NGUwMFx1NThmOVx1NTMzYlx1NjNkNlx1OTRmMVx1NGY5ZFx1'@; put 'NGYwYVx1ODg2M1x1OTg5MFx1NTkzN1x1OTA1N1x1NzlmYlx1NGVlYVx1ODBmMFx1NzU5MVx1NmM4Mlx1NWI5Y1x1NTllOFx1NWY1ZFx1NjkwNVx1ODY4MVx1NTAxYVx1NWRmMlx1NGU1OVx1NzdlM1x1NGVlNVx1ODI3YVx1NjI5MVx1NjYxM1x1OTA5MVx1NWM3OVx1NGViZlx1NWY3OVx1ODFj'@; put 'Nlx1OTAzOFx1ODA4NFx1NzVhYlx1NGVhNlx1ODhkNFx1NjEwZlx1NmJjNVx1NWZjNlx1NGU0OVx1NzZjYVx1NmVhMlx1OGJlM1x1OGJhZVx1OGMwYVx1OGJkMVx1NWYwMlx1N2ZmY1x1N2ZjY1x1N2VjZVx1ODMzNVx1ODM2Ylx1NTZlMFx1NmJiN1x1OTdmM1x1OTYzNFx1NTlmYlx1NTQxZlx1'@; put 'OTRmNlx1NmRlYlx1NWJjNVx1OTk2ZVx1NWMzOVx1NWYxNVx1OTY5MFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIxMF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjEwXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIxMF1bcF1dPTUzNzYwK3AsYls1Mzc2MCtwXT1fWzIxMF1bcF0pO2Zvcihf'@; put 'WzIxMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTM3MFx1ODJmMVx1NmEz'@; put 'MVx1NWE3NFx1OWU3MFx1NWU5NFx1N2YyOFx1ODNiOVx1ODQyNFx1ODQyNVx1ODM2N1x1ODc0N1x1OGZjZVx1OGQ2Mlx1NzZjOFx1NWY3MVx1OTg5Nlx1Nzg2Y1x1NjYyMFx1NTRkZlx1NjJlNVx1NGY2M1x1ODFjM1x1NzVjOFx1NWViOFx1OTZjZFx1OGUwYVx1ODZmOVx1NTQ4Zlx1NmNmM1x1'@; put 'NmQ4Y1x1NmMzOFx1NjA3Zlx1NTJjN1x1NzUyOFx1NWU3ZFx1NGYxOFx1NjBhMFx1NWZlN1x1NWMyNFx1NzUzMVx1OTBhZVx1OTRjMFx1NzJiOVx1NmNiOVx1NmUzOFx1OTE0OVx1NjcwOVx1NTNjYlx1NTNmM1x1NGY1MVx1OTFjOVx1OGJmMVx1NTNjOFx1NWU3Y1x1OGZjMlx1NmRlNFx1NGU4'@; put 'ZVx1NzZjMlx1Njk4Nlx1ODY1ZVx1NjExYVx1ODIwNlx1NGY1OVx1NGZkZVx1OTAzZVx1OWM3Y1x1NjEwOVx1NmUxZFx1NmUxNFx1OTY4NVx1NGU4OFx1NWEzMVx1OTZlOFx1NGUwZVx1NWM3Zlx1NzliOVx1NWI4N1x1OGJlZFx1N2ZiZFx1NzM4OVx1NTdkZlx1ODI4Ylx1OTBjMVx1NTQwMVx1'@; put 'OTA0N1x1NTViYlx1NWNlYVx1NWZhMVx1NjEwOFx1NmIzMlx1NzJmMVx1ODBiMlx1OGE4OVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIxMV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjExXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIxMV1bcF1dPTU0MDE2K3AsYls1NDAxNitwXT1fWzIx'@; put 'MV1bcF0pO2ZvcihfWzIxMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmQ3'@; put 'NFx1NWJkM1x1ODhkNVx1OTg4NFx1OGM2Ylx1OWE2ZFx1OWUzM1x1NmUwYVx1NTFhNFx1NTE0M1x1NTdhM1x1ODg4MVx1NTM5Zlx1NjNmNFx1OGY5NVx1NTZlZFx1NTQ1OFx1NTcwNlx1NzMzZlx1NmU5MFx1N2YxOFx1OGZkY1x1ODJkMVx1NjEzZlx1NjAyOFx1OTY2Mlx1NjZmMFx1N2VhNlx1'@; put 'OGQ4YVx1OGRjM1x1OTRhNVx1NWNiM1x1N2NhNFx1NjcwOFx1NjBhNlx1OTYwNVx1ODAxOFx1NGU5MVx1OTBlN1x1NTMwMFx1OTY2OFx1NTE0MVx1OGZkMFx1ODU3NFx1OTE1ZFx1NjY1NVx1OTdmNVx1NWI1NVx1NTMxZFx1NzgzOFx1Njc0Mlx1NjgzZFx1NTRjOVx1NzA3ZVx1NWJiMFx1OGY3'@; put 'ZFx1NTE4ZFx1NTcyOFx1NTRiMVx1NjUxMlx1NjY4Mlx1OGQ1ZVx1OGQ0M1x1ODEwZlx1ODQ2Y1x1OTA2ZFx1N2NkZlx1NTFmZlx1ODVmYlx1NjdhM1x1NjVlOVx1NmZhMVx1ODZhNFx1OGU4MVx1NTY2YVx1OTAyMFx1NzY4Mlx1NzA3Nlx1NzFlNVx1OGQyM1x1NjJlOVx1NTIxOVx1NmNmZFx1'@; put 'OGQzY1x1NjAwZVx1NTg5ZVx1NjE4ZVx1NjZmZVx1OGQ2MFx1NjI0ZVx1NTViM1x1NmUyM1x1NjcyZFx1OGY2N1x1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIxMl0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjEyXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIxMl1bcF1dPTU0MjcyK3AsYls1'@; put 'NDI3MitwXT1fWzIxMl1bcF0pO2ZvcihfWzIxM109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1OTRlMVx1OTVmOFx1NzcyOFx1NjgwNVx1NjlhOFx1NTQ4Ylx1NGU0ZFx1NzBiOFx1OGJjOFx1NjQ1OFx1NjU4Ylx1NWI4NVx1N2E4NFx1NTAzYVx1NWJlOFx1NzdiYlx1NmJlMVx1OGE3OVx1N2M5OFx1NmNiZVx1NzZjZlx1NjVhOVx1OGY5N1x1NWQyZFx1NWM1NVx1ODYzOFx1'@; put 'NjgwOFx1NTM2MFx1NjIxOFx1N2FkOVx1NmU1Ylx1N2VmZFx1NmExZlx1N2FlMFx1NWY3MFx1NmYzM1x1NWYyMFx1NjM4Y1x1NmRhOFx1Njc1Nlx1NGUwOFx1NWUxMFx1OGQyNlx1NGVkN1x1ODBjMFx1NzYzNFx1OTY5Y1x1NjJkYlx1NjYyZFx1NjI3ZVx1NmNiY1x1OGQ3NVx1NzE2N1x1N2Y2'@; put 'OVx1NTE0Nlx1ODA4N1x1NTNlY1x1OTA2ZVx1NjI5OFx1NTRmMlx1ODZmMFx1OGY5OVx1ODAwNVx1OTUxN1x1ODUxN1x1OGZkOVx1NmQ1OVx1NzNjZFx1NjU5Zlx1NzcxZlx1NzUwNFx1NzgyN1x1ODFmYlx1OGQxZVx1OTQ4OFx1NGZhNlx1Njc5NVx1NzViOVx1OGJjYVx1OTcwN1x1NjMyZlx1'@; put 'OTU0N1x1OTYzNVx1ODRiOFx1NjMyM1x1Nzc0MVx1NWY4MVx1NzJmMFx1NGU4OVx1NjAxNFx1NjU3NFx1NjJlZlx1NmI2M1x1NjUzZlx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIxM10ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjEzXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIxM11bcF1d'@; put 'PTU0NTI4K3AsYls1NDUyOCtwXT1fWzIxM11bcF0pO2ZvcihfWzIxNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWUyN1x1NzVjN1x1OTBkMVx1OGJjMVx1ODI5ZFx1Njc5ZFx1NjUyZlx1NTQzMVx1ODcxOFx1NzdlNVx1ODBhMlx1ODEwMlx1NmM0MVx1NGU0Ylx1N2VjN1x1ODA0Y1x1NzZmNFx1NjkwZFx1NmI5Nlx1NjI2N1x1NTAzY1x1NGY4NFx1NTc0MFx1NjMwN1x1'@; put 'NmI2Mlx1OGRiZVx1NTNlYVx1NjVlOFx1N2ViOFx1NWZkN1x1NjMxYVx1NjNiN1x1ODFmM1x1ODFmNFx1N2Y2ZVx1NWUxY1x1NWNkOVx1NTIzNlx1NjY3YVx1NzllOVx1N2ExYVx1OGQyOFx1NzA5OVx1NzVkNFx1NmVkZVx1NmNiYlx1N2E5Mlx1NGUyZFx1NzZjNVx1NWZlMFx1OTQ5Zlx1ODg3'@; put 'N1x1N2VjOFx1NzljZFx1ODBiZlx1OTFjZFx1NGVmMlx1NGYxN1x1ODIxZlx1NTQ2OFx1NWRkZVx1NmQzMlx1OGJjY1x1N2NhNVx1OGY3NFx1ODA5OFx1NWUxYVx1NTQ5Mlx1NzZiMVx1NWI5OVx1NjYzY1x1OWFhNFx1NzNlMFx1NjgyYVx1ODZkYlx1NjczMVx1NzMyYVx1OGJmOFx1OGJkYlx1'@; put 'OTAxMFx1N2FmOVx1NzBkYlx1NzE2ZVx1NjJjNFx1NzdhOVx1NTYzMVx1NGUzYlx1ODQ1N1x1NjdmMVx1NTJhOVx1ODZjMFx1OGQyZVx1OTRmOFx1N2I1MVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIxNF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjE0XVtwXS5jaGFyQ29kZUF0KDApJiYo'@; put 'RFtfWzIxNF1bcF1dPTU0Nzg0K3AsYls1NDc4NCtwXT1fWzIxNF1bcF0pO2ZvcihfWzIxNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NGY0Zlx1NmNlOFx1Nzk1ZFx1OWE3Ylx1NjI5M1x1NzIyYVx1NjJmZFx1NGUxM1x1NzgxNlx1OGY2Y1x1NjRiMFx1OGQ1YVx1N2JjNlx1Njg2OVx1NWU4NFx1ODhjNVx1NTk4Nlx1NjQ5ZVx1NThlZVx1NzJiNlx1NjkwZVx1OTUyNVx1'@; put 'OGZmZFx1OGQ1OFx1NTc2MFx1N2YwMFx1OGMwNlx1NTFjNlx1NjM0OVx1NjJkOVx1NTM1M1x1Njg0Y1x1NzQyMlx1ODMwMVx1OTE0Y1x1NTU0NFx1Nzc0MFx1NzA3Y1x1NmQ0YVx1NTE3OVx1NTRhOFx1OGQ0NFx1NTlmZlx1NmVjYlx1NmRjNFx1NWI1Y1x1N2QyYlx1NGVkNFx1N2M3ZFx1NmVk'@; put 'M1x1NWI1MFx1ODFlYVx1NmUwZFx1NWI1N1x1OWIwM1x1NjhkNVx1OGUyYVx1NWI5N1x1N2VmY1x1NjAzYlx1N2ViNVx1OTBiOVx1OGQ3MFx1NTk0Zlx1NjNjZFx1NzlkZlx1OGRiM1x1NTM1Mlx1NjVjZlx1Nzk1Nlx1OGJjNVx1OTYzYlx1N2VjNFx1OTRiYlx1N2U4Mlx1NTYzNFx1OTE4OVx1'@; put 'NjcwMFx1N2Y2YVx1NWMwYVx1OTA3NVx1NjYyOFx1NWRlNlx1NGY1MFx1NjdkZVx1NTA1YVx1NGY1Y1x1NTc1MFx1NWVhN1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIxNV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjE1XVtwXS5jaGFy'@; put 'Q29kZUF0KDApJiYoRFtfWzIxNV1bcF1dPTU1MDQwK3AsYls1NTA0MCtwXT1fWzIxNV1bcF0pO2ZvcihfWzIxNl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NGU4ZFx1NGUwY1x1NTE0MFx1NGUxMFx1NWVmZlx1NTM0NVx1NGUxNVx1NGU5OFx1NGUxZVx1OWIzMlx1NWI2Y1x1NTY2OVx1NGUyOFx1NzliYVx1NGUzZlx1NTMxNVx1NGU0N1x1NTkyZFx1NzIzYlx1NTM2ZVx1'@; put 'NmMxMFx1NTZkZlx1ODBlNFx1OTk5N1x1NmJkM1x1Nzc3ZVx1OWYxN1x1NGUzNlx1NGU5Zlx1OWYxMFx1NGU1Y1x1NGU2OVx1NGU5M1x1ODI4OFx1NWI1Ylx1NTU2Y1x1NTYwZlx1NGVjNFx1NTM4ZFx1NTM5ZFx1NTNhM1x1NTNhNVx1NTNhZVx1OTc2NVx1OGQ1ZFx1NTMxYVx1NTNmNVx1NTMy'@; put 'Nlx1NTMyZVx1NTMzZVx1OGQ1Y1x1NTM2Nlx1NTM2M1x1NTIwMlx1NTIwOFx1NTIwZVx1NTIyZFx1NTIzM1x1NTIzZlx1NTI0MFx1NTI0Y1x1NTI1ZVx1NTI2MVx1NTI1Y1x1ODRhZlx1NTI3ZFx1NTI4Mlx1NTI4MVx1NTI5MFx1NTI5M1x1NTE4Mlx1N2Y1NFx1NGViYlx1NGVjM1x1NGVjOVx1'@; put 'NGVjMlx1NGVlOFx1NGVlMVx1NGVlYlx1NGVkZVx1NGYxYlx1NGVmM1x1NGYyMlx1NGY2NFx1NGVmNVx1NGYyNVx1NGYyN1x1NGYwOVx1NGYyYlx1NGY1ZVx1NGY2N1x1NjUzOFx1NGY1YVx1NGY1ZFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIxNl0ubGVuZ3RoOysrcCk2NTUzMyE9PV9b'@; put 'MjE2XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIxNl1bcF1dPTU1Mjk2K3AsYls1NTI5NitwXT1fWzIxNl1bcF0pO2ZvcihfWzIxN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NGY1Zlx1NGY1N1x1NGYzMlx1NGYzZFx1NGY3Nlx1NGY3NFx1NGY5MVx1NGY4OVx1NGY4M1x1NGY4Zlx1NGY3ZVx1NGY3Ylx1NGZhYVx1NGY3Y1x1NGZhY1x1NGY5NFx1NGZlNlx1NGZlOFx1'@; put 'NGZlYVx1NGZjNVx1NGZkYVx1NGZlM1x1NGZkY1x1NGZkMVx1NGZkZlx1NGZmOFx1NTAyOVx1NTA0Y1x1NGZmM1x1NTAyY1x1NTAwZlx1NTAyZVx1NTAyZFx1NGZmZVx1NTAxY1x1NTAwY1x1NTAyNVx1NTAyOFx1NTA3ZVx1NTA0M1x1NTA1NVx1NTA0OFx1NTA0ZVx1NTA2Y1x1NTA3Ylx1NTBh'@; put 'NVx1NTBhN1x1NTBhOVx1NTBiYVx1NTBkNlx1NTEwNlx1NTBlZFx1NTBlY1x1NTBlNlx1NTBlZVx1NTEwN1x1NTEwYlx1NGVkZFx1NmMzZFx1NGY1OFx1NGY2NVx1NGZjZVx1OWZhMFx1NmM0Nlx1N2M3NFx1NTE2ZVx1NWRmZFx1OWVjOVx1OTk5OFx1NTE4MVx1NTkxNFx1NTJmOVx1NTMwZFx1'@; put 'OGEwN1x1NTMxMFx1NTFlYlx1NTkxOVx1NTE1NVx1NGVhMFx1NTE1Nlx1NGViM1x1ODg2ZVx1ODhhNFx1NGViNVx1ODExNFx1ODhkMlx1Nzk4MFx1NWIzNFx1ODgwM1x1N2ZiOFx1NTFhYlx1NTFiMVx1NTFiZFx1NTFiY1x1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIxN10ubGVuZ3RoOysr'@; put 'cCk2NTUzMyE9PV9bMjE3XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIxN11bcF1dPTU1NTUyK3AsYls1NTU1MitwXT1fWzIxN11bcF0pO2ZvcihfWzIxOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTFjN1x1NTE5Nlx1NTFhMlx1NTFhNVx1OGJhMFx1OGJhNlx1OGJhN1x1OGJhYVx1OGJiNFx1OGJiNVx1OGJiN1x1OGJjMlx1OGJjM1x1OGJjYlx1OGJjZlx1OGJjZVx1'@; put 'OGJkMlx1OGJkM1x1OGJkNFx1OGJkNlx1OGJkOFx1OGJkOVx1OGJkY1x1OGJkZlx1OGJlMFx1OGJlNFx1OGJlOFx1OGJlOVx1OGJlZVx1OGJmMFx1OGJmM1x1OGJmNlx1OGJmOVx1OGJmY1x1OGJmZlx1OGMwMFx1OGMwMlx1OGMwNFx1OGMwN1x1OGMwY1x1OGMwZlx1OGMxMVx1OGMxMlx1OGMx'@; put 'NFx1OGMxNVx1OGMxNlx1OGMxOVx1OGMxYlx1OGMxOFx1OGMxZFx1OGMxZlx1OGMyMFx1OGMyMVx1OGMyNVx1OGMyN1x1OGMyYVx1OGMyYlx1OGMyZVx1OGMyZlx1OGMzMlx1OGMzM1x1OGMzNVx1OGMzNlx1NTM2OVx1NTM3YVx1OTYxZFx1OTYyMlx1OTYyMVx1OTYzMVx1OTYyYVx1OTYzZFx1'@; put 'OTYzY1x1OTY0Mlx1OTY0OVx1OTY1NFx1OTY1Zlx1OTY2N1x1OTY2Y1x1OTY3Mlx1OTY3NFx1OTY4OFx1OTY4ZFx1OTY5N1x1OTZiMFx1OTA5N1x1OTA5Ylx1OTA5ZFx1OTA5OVx1OTBhY1x1OTBhMVx1OTBiNFx1OTBiM1x1OTBiNlx1OTBiYVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIx'@; put 'OF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjE4XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIxOF1bcF1dPTU1ODA4K3AsYls1NTgwOCtwXT1fWzIxOF1bcF0pO2ZvcihfWzIxOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTBiOFx1OTBiMFx1OTBjZlx1OTBjNVx1OTBiZVx1OTBkMFx1OTBjNFx1OTBjN1x1OTBkM1x1OTBlNlx1OTBlMlx1OTBkY1x1OTBkN1x1OTBkYlx1'@; put 'OTBlYlx1OTBlZlx1OTBmZVx1OTEwNFx1OTEyMlx1OTExZVx1OTEyM1x1OTEzMVx1OTEyZlx1OTEzOVx1OTE0M1x1OTE0Nlx1NTIwZFx1NTk0Mlx1NTJhMlx1NTJhY1x1NTJhZFx1NTJiZVx1NTRmZlx1NTJkMFx1NTJkNlx1NTJmMFx1NTNkZlx1NzFlZVx1NzdjZFx1NWVmNFx1NTFmNVx1NTFm'@; put 'Y1x1OWIyZlx1NTNiNlx1NWYwMVx1NzU1YVx1NWRlZlx1NTc0Y1x1NTdhOVx1NTdhMVx1NTg3ZVx1NThiY1x1NThjNVx1NThkMVx1NTcyOVx1NTcyY1x1NTcyYVx1NTczM1x1NTczOVx1NTcyZVx1NTcyZlx1NTc1Y1x1NTczYlx1NTc0Mlx1NTc2OVx1NTc4NVx1NTc2Ylx1NTc4Nlx1NTc3Y1x1'@; put 'NTc3Ylx1NTc2OFx1NTc2ZFx1NTc3Nlx1NTc3M1x1NTdhZFx1NTdhNFx1NTc4Y1x1NTdiMlx1NTdjZlx1NTdhN1x1NTdiNFx1NTc5M1x1NTdhMFx1NTdkNVx1NTdkOFx1NTdkYVx1NTdkOVx1NTdkMlx1NTdiOFx1NTdmNFx1NTdlZlx1NTdmOFx1NTdlNFx1NTdkZFx1ZmZmZCIuc3BsaXQoIiIp'@; put 'LHA9MDtwIT1fWzIxOV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjE5XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIxOV1bcF1dPTU2MDY0K3AsYls1NjA2NCtwXT1fWzIxOV1bcF0pO2ZvcihfWzIyMF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTgwYlx1NTgwZFx1NTdmZFx1NTdlZFx1NTgwMFx1NTgxZVx1NTgxOVx1NTg0NFx1NTgyMFx1NTg2NVx1NTg2Y1x1NTg4MVx1'@; put 'NTg4OVx1NTg5YVx1NTg4MFx1OTlhOFx1OWYxOVx1NjFmZlx1ODI3OVx1ODI3ZFx1ODI3Zlx1ODI4Zlx1ODI4YVx1ODJhOFx1ODI4NFx1ODI4ZVx1ODI5MVx1ODI5N1x1ODI5OVx1ODJhYlx1ODJiOFx1ODJiZVx1ODJiMFx1ODJjOFx1ODJjYVx1ODJlM1x1ODI5OFx1ODJiN1x1ODJhZVx1ODJj'@; put 'Ylx1ODJjY1x1ODJjMVx1ODJhOVx1ODJiNFx1ODJhMVx1ODJhYVx1ODI5Zlx1ODJjNFx1ODJjZVx1ODJhNFx1ODJlMVx1ODMwOVx1ODJmN1x1ODJlNFx1ODMwZlx1ODMwN1x1ODJkY1x1ODJmNFx1ODJkMlx1ODJkOFx1ODMwY1x1ODJmYlx1ODJkM1x1ODMxMVx1ODMxYVx1ODMwNlx1ODMxNFx1'@; put 'ODMxNVx1ODJlMFx1ODJkNVx1ODMxY1x1ODM1MVx1ODM1Ylx1ODM1Y1x1ODMwOFx1ODM5Mlx1ODMzY1x1ODMzNFx1ODMzMVx1ODM5Ylx1ODM1ZVx1ODMyZlx1ODM0Zlx1ODM0N1x1ODM0M1x1ODM1Zlx1ODM0MFx1ODMxN1x1ODM2MFx1ODMyZFx1ODMzYVx1ODMzM1x1ODM2Nlx1ODM2NVx1ZmZm'@; put 'ZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIyMF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjIwXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIyMF1bcF1dPTU2MzIwK3AsYls1NjMyMCtwXT1fWzIyMF1bcF0pO2ZvcihfWzIyMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODM2OFx1ODMxYlx1ODM2OVx1ODM2Y1x1ODM2YVx1ODM2ZFx1ODM2ZVx1ODNiMFx1ODM3OFx1ODNiM1x1'@; put 'ODNiNFx1ODNhMFx1ODNhYVx1ODM5M1x1ODM5Y1x1ODM4NVx1ODM3Y1x1ODNiNlx1ODNhOVx1ODM3ZFx1ODNiOFx1ODM3Ylx1ODM5OFx1ODM5ZVx1ODNhOFx1ODNiYVx1ODNiY1x1ODNjMVx1ODQwMVx1ODNlNVx1ODNkOFx1NTgwN1x1ODQxOFx1ODQwYlx1ODNkZFx1ODNmZFx1ODNkNlx1ODQx'@; put 'Y1x1ODQzOFx1ODQxMVx1ODQwNlx1ODNkNFx1ODNkZlx1ODQwZlx1ODQwM1x1ODNmOFx1ODNmOVx1ODNlYVx1ODNjNVx1ODNjMFx1ODQyNlx1ODNmMFx1ODNlMVx1ODQ1Y1x1ODQ1MVx1ODQ1YVx1ODQ1OVx1ODQ3M1x1ODQ4N1x1ODQ4OFx1ODQ3YVx1ODQ4OVx1ODQ3OFx1ODQzY1x1ODQ0Nlx1'@; put 'ODQ2OVx1ODQ3Nlx1ODQ4Y1x1ODQ4ZVx1ODQzMVx1ODQ2ZFx1ODRjMVx1ODRjZFx1ODRkMFx1ODRlNlx1ODRiZFx1ODRkM1x1ODRjYVx1ODRiZlx1ODRiYVx1ODRlMFx1ODRhMVx1ODRiOVx1ODRiNFx1ODQ5N1x1ODRlNVx1ODRlM1x1ODUwY1x1NzUwZFx1ODUzOFx1ODRmMFx1ODUzOVx1ODUx'@; put 'Zlx1ODUzYVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIyMV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjIxXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIyMV1bcF1dPTU2NTc2K3AsYls1NjU3NitwXT1fWzIyMV1bcF0pO2ZvcihfWzIyMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODU1Nlx1ODUzYlx1ODRmZlx1ODRmY1x1ODU1OVx1ODU0OFx1ODU2OFx1ODU2NFx1'@; put 'ODU1ZVx1ODU3YVx1NzdhMlx1ODU0M1x1ODU3Mlx1ODU3Ylx1ODVhNFx1ODVhOFx1ODU4N1x1ODU4Zlx1ODU3OVx1ODVhZVx1ODU5Y1x1ODU4NVx1ODViOVx1ODViN1x1ODViMFx1ODVkM1x1ODVjMVx1ODVkY1x1ODVmZlx1ODYyN1x1ODYwNVx1ODYyOVx1ODYxNlx1ODYzY1x1NWVmZVx1NWYw'@; put 'OFx1NTkzY1x1NTk0MVx1ODAzN1x1NTk1NVx1NTk1YVx1NTk1OFx1NTMwZlx1NWMyMlx1NWMyNVx1NWMyY1x1NWMzNFx1NjI0Y1x1NjI2YVx1NjI5Zlx1NjJiYlx1NjJjYVx1NjJkYVx1NjJkN1x1NjJlZVx1NjMyMlx1NjJmNlx1NjMzOVx1NjM0Ylx1NjM0M1x1NjNhZFx1NjNmNlx1NjM3MVx1'@; put 'NjM3YVx1NjM4ZVx1NjNiNFx1NjM2ZFx1NjNhY1x1NjM4YVx1NjM2OVx1NjNhZVx1NjNiY1x1NjNmMlx1NjNmOFx1NjNlMFx1NjNmZlx1NjNjNFx1NjNkZVx1NjNjZVx1NjQ1Mlx1NjNjNlx1NjNiZVx1NjQ0NVx1NjQ0MVx1NjQwYlx1NjQxYlx1NjQyMFx1NjQwY1x1NjQyNlx1NjQyMVx1NjQ1'@; put 'ZVx1NjQ4NFx1NjQ2ZFx1NjQ5Nlx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIyMl0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjIyXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIyMl1bcF1dPTU2ODMyK3AsYls1NjgzMitwXT1fWzIyMl1bcF0pO2ZvcihfWzIyM109Ilx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjQ3YVx1NjRiN1x1NjRiOFx1NjQ5OVx1NjRiYVx1NjRjMFx1'@; put 'NjRkMFx1NjRkN1x1NjRlNFx1NjRlMlx1NjUwOVx1NjUyNVx1NjUyZVx1NWYwYlx1NWZkMlx1NzUxOVx1NWYxMVx1NTM1Zlx1NTNmMVx1NTNmZFx1NTNlOVx1NTNlOFx1NTNmYlx1NTQxMlx1NTQxNlx1NTQwNlx1NTQ0Ylx1NTQ1Mlx1NTQ1M1x1NTQ1NFx1NTQ1Nlx1NTQ0M1x1NTQyMVx1NTQ1'@; put 'N1x1NTQ1OVx1NTQyM1x1NTQzMlx1NTQ4Mlx1NTQ5NFx1NTQ3N1x1NTQ3MVx1NTQ2NFx1NTQ5YVx1NTQ5Ylx1NTQ4NFx1NTQ3Nlx1NTQ2Nlx1NTQ5ZFx1NTRkMFx1NTRhZFx1NTRjMlx1NTRiNFx1NTRkMlx1NTRhN1x1NTRhNlx1NTRkM1x1NTRkNFx1NTQ3Mlx1NTRhM1x1NTRkNVx1NTRiYlx1'@; put 'NTRiZlx1NTRjY1x1NTRkOVx1NTRkYVx1NTRkY1x1NTRhOVx1NTRhYVx1NTRhNFx1NTRkZFx1NTRjZlx1NTRkZVx1NTUxYlx1NTRlN1x1NTUyMFx1NTRmZFx1NTUxNFx1NTRmM1x1NTUyMlx1NTUyM1x1NTUwZlx1NTUxMVx1NTUyN1x1NTUyYVx1NTU2N1x1NTU4Zlx1NTViNVx1NTU0OVx1NTU2'@; put 'ZFx1NTU0MVx1NTU1NVx1NTUzZlx1NTU1MFx1NTUzY1x1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIyM10ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjIzXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIyM11bcF1dPTU3MDg4K3AsYls1NzA4OCtwXT1fWzIyM11bcF0pO2ZvcihfWzIyNF09Ilx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTUzN1x1NTU1Nlx1NTU3NVx1NTU3Nlx1'@; put 'NTU3N1x1NTUzM1x1NTUzMFx1NTU1Y1x1NTU4Ylx1NTVkMlx1NTU4M1x1NTViMVx1NTViOVx1NTU4OFx1NTU4MVx1NTU5Zlx1NTU3ZVx1NTVkNlx1NTU5MVx1NTU3Ylx1NTVkZlx1NTViZFx1NTViZVx1NTU5NFx1NTU5OVx1NTVlYVx1NTVmN1x1NTVjOVx1NTYxZlx1NTVkMVx1NTVlYlx1NTVl'@; put 'Y1x1NTVkNFx1NTVlNlx1NTVkZFx1NTVjNFx1NTVlZlx1NTVlNVx1NTVmMlx1NTVmM1x1NTVjY1x1NTVjZFx1NTVlOFx1NTVmNVx1NTVlNFx1OGY5NFx1NTYxZVx1NTYwOFx1NTYwY1x1NTYwMVx1NTYyNFx1NTYyM1x1NTVmZVx1NTYwMFx1NTYyN1x1NTYyZFx1NTY1OFx1NTYzOVx1NTY1N1x1'@; put 'NTYyY1x1NTY0ZFx1NTY2Mlx1NTY1OVx1NTY1Y1x1NTY0Y1x1NTY1NFx1NTY4Nlx1NTY2NFx1NTY3MVx1NTY2Ylx1NTY3Ylx1NTY3Y1x1NTY4NVx1NTY5M1x1NTZhZlx1NTZkNFx1NTZkN1x1NTZkZFx1NTZlMVx1NTZmNVx1NTZlYlx1NTZmOVx1NTZmZlx1NTcwNFx1NTcwYVx1NTcwOVx1NTcx'@; put 'Y1x1NWUwZlx1NWUxOVx1NWUxNFx1NWUxMVx1NWUzMVx1NWUzYlx1NWUzY1x1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIyNF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjI0XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIyNF1bcF1dPTU3MzQ0K3AsYls1NzM0NCtwXT1fWzIyNF1bcF0pO2Zv'@; put 'cihfWzIyNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWUzN1x1NWU0NFx1'@; put 'NWU1NFx1NWU1Ylx1NWU1ZVx1NWU2MVx1NWM4Y1x1NWM3YVx1NWM4ZFx1NWM5MFx1NWM5Nlx1NWM4OFx1NWM5OFx1NWM5OVx1NWM5MVx1NWM5YVx1NWM5Y1x1NWNiNVx1NWNhMlx1NWNiZFx1NWNhY1x1NWNhYlx1NWNiMVx1NWNhM1x1NWNjMVx1NWNiN1x1NWNjNFx1NWNkMlx1NWNlNFx1NWNj'@; put 'Ylx1NWNlNVx1NWQwMlx1NWQwM1x1NWQyN1x1NWQyNlx1NWQyZVx1NWQyNFx1NWQxZVx1NWQwNlx1NWQxYlx1NWQ1OFx1NWQzZVx1NWQzNFx1NWQzZFx1NWQ2Y1x1NWQ1Ylx1NWQ2Zlx1NWQ1ZFx1NWQ2Ylx1NWQ0Ylx1NWQ0YVx1NWQ2OVx1NWQ3NFx1NWQ4Mlx1NWQ5OVx1NWQ5ZFx1OGM3M1x1'@; put 'NWRiN1x1NWRjNVx1NWY3M1x1NWY3N1x1NWY4Mlx1NWY4N1x1NWY4OVx1NWY4Y1x1NWY5NVx1NWY5OVx1NWY5Y1x1NWZhOFx1NWZhZFx1NWZiNVx1NWZiY1x1ODg2Mlx1NWY2MVx1NzJhZFx1NzJiMFx1NzJiNFx1NzJiN1x1NzJiOFx1NzJjM1x1NzJjMVx1NzJjZVx1NzJjZFx1NzJkMlx1NzJl'@; put 'OFx1NzJlZlx1NzJlOVx1NzJmMlx1NzJmNFx1NzJmN1x1NzMwMVx1NzJmM1x1NzMwM1x1NzJmYVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIyNV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjI1XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIyNV1bcF1dPTU3NjAwK3AsYls1NzYwMCtwXT1f'@; put 'WzIyNV1bcF0pO2ZvcihfWzIyNl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'NzJmYlx1NzMxN1x1NzMxM1x1NzMyMVx1NzMwYVx1NzMxZVx1NzMxZFx1NzMxNVx1NzMyMlx1NzMzOVx1NzMyNVx1NzMyY1x1NzMzOFx1NzMzMVx1NzM1MFx1NzM0ZFx1NzM1N1x1NzM2MFx1NzM2Y1x1NzM2Zlx1NzM3ZVx1ODIxYlx1NTkyNVx1OThlN1x1NTkyNFx1NTkwMlx1OTk2M1x1OTk2'@; put 'N1x1OTk2OFx1OTk2OVx1OTk2YVx1OTk2Ylx1OTk2Y1x1OTk3NFx1OTk3N1x1OTk3ZFx1OTk4MFx1OTk4NFx1OTk4N1x1OTk4YVx1OTk4ZFx1OTk5MFx1OTk5MVx1OTk5M1x1OTk5NFx1OTk5NVx1NWU4MFx1NWU5MVx1NWU4Ylx1NWU5Nlx1NWVhNVx1NWVhMFx1NWViOVx1NWViNVx1NWViZVx1'@; put 'NWViM1x1OGQ1M1x1NWVkMlx1NWVkMVx1NWVkYlx1NWVlOFx1NWVlYVx1ODFiYVx1NWZjNFx1NWZjOVx1NWZkNlx1NWZjZlx1NjAwM1x1NWZlZVx1NjAwNFx1NWZlMVx1NWZlNFx1NWZmZVx1NjAwNVx1NjAwNlx1NWZlYVx1NWZlZFx1NWZmOFx1NjAxOVx1NjAzNVx1NjAyNlx1NjAxYlx1NjAw'@; put 'Zlx1NjAwZFx1NjAyOVx1NjAyYlx1NjAwYVx1NjAzZlx1NjAyMVx1NjA3OFx1NjA3OVx1NjA3Ylx1NjA3YVx1NjA0Mlx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIyNl0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjI2XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIyNl1bcF1dPTU3ODU2K3As'@; put 'Yls1Nzg1NitwXT1fWzIyNl1bcF0pO2ZvcihfWzIyN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1NjA2YVx1NjA3ZFx1NjA5Nlx1NjA5YVx1NjBhZFx1NjA5ZFx1NjA4M1x1NjA5Mlx1NjA4Y1x1NjA5Ylx1NjBlY1x1NjBiYlx1NjBiMVx1NjBkZFx1NjBkOFx1NjBjNlx1NjBkYVx1NjBiNFx1NjEyMFx1NjEyNlx1NjExNVx1NjEyM1x1NjBmNFx1NjEwMFx1NjEwZVx1NjEy'@; put 'Ylx1NjE0YVx1NjE3NVx1NjFhY1x1NjE5NFx1NjFhN1x1NjFiN1x1NjFkNFx1NjFmNVx1NWZkZFx1OTZiM1x1OTVlOVx1OTVlYlx1OTVmMVx1OTVmM1x1OTVmNVx1OTVmNlx1OTVmY1x1OTVmZVx1OTYwM1x1OTYwNFx1OTYwNlx1OTYwOFx1OTYwYVx1OTYwYlx1OTYwY1x1OTYwZFx1OTYwZlx1'@; put 'OTYxMlx1OTYxNVx1OTYxNlx1OTYxN1x1OTYxOVx1OTYxYVx1NGUyY1x1NzIzZlx1NjIxNVx1NmMzNVx1NmM1NFx1NmM1Y1x1NmM0YVx1NmNhM1x1NmM4NVx1NmM5MFx1NmM5NFx1NmM4Y1x1NmM2OFx1NmM2OVx1NmM3NFx1NmM3Nlx1NmM4Nlx1NmNhOVx1NmNkMFx1NmNkNFx1NmNhZFx1NmNm'@; put 'N1x1NmNmOFx1NmNmMVx1NmNkN1x1NmNiMlx1NmNlMFx1NmNkNlx1NmNmYVx1NmNlYlx1NmNlZVx1NmNiMVx1NmNkM1x1NmNlZlx1NmNmZVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIyN10ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjI3XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIyN11b'@; put 'cF1dPTU4MTEyK3AsYls1ODExMitwXT1fWzIyN11bcF0pO2ZvcihfWzIyOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmQzOVx1NmQyN1x1NmQwY1x1NmQ0M1x1NmQ0OFx1NmQwN1x1NmQwNFx1NmQxOVx1NmQwZVx1NmQyYlx1NmQ0ZFx1NmQyZVx1NmQzNVx1NmQxYVx1NmQ0Zlx1NmQ1Mlx1NmQ1NFx1NmQzM1x1NmQ5MVx1NmQ2Zlx1NmQ5ZVx1NmRhMFx1NmQ1ZVx1NmQ5'@; put 'M1x1NmQ5NFx1NmQ1Y1x1NmQ2MFx1NmQ3Y1x1NmQ2M1x1NmUxYVx1NmRjN1x1NmRjNVx1NmRkZVx1NmUwZVx1NmRiZlx1NmRlMFx1NmUxMVx1NmRlNlx1NmRkZFx1NmRkOVx1NmUxNlx1NmRhYlx1NmUwY1x1NmRhZVx1NmUyYlx1NmU2ZVx1NmU0ZVx1NmU2Ylx1NmViMlx1NmU1Zlx1NmU4Nlx1'@; put 'NmU1M1x1NmU1NFx1NmUzMlx1NmUyNVx1NmU0NFx1NmVkZlx1NmViMVx1NmU5OFx1NmVlMFx1NmYyZFx1NmVlMlx1NmVhNVx1NmVhN1x1NmViZFx1NmViYlx1NmViN1x1NmVkN1x1NmViNFx1NmVjZlx1NmU4Zlx1NmVjMlx1NmU5Zlx1NmY2Mlx1NmY0Nlx1NmY0N1x1NmYyNFx1NmYxNVx1NmVm'@; put 'OVx1NmYyZlx1NmYzNlx1NmY0Ylx1NmY3NFx1NmYyYVx1NmYwOVx1NmYyOVx1NmY4OVx1NmY4ZFx1NmY4Y1x1NmY3OFx1NmY3Mlx1NmY3Y1x1NmY3YVx1NmZkMVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIyOF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjI4XVtwXS5jaGFyQ29kZUF0KDAp'@; put 'JiYoRFtfWzIyOF1bcF1dPTU4MzY4K3AsYls1ODM2OCtwXT1fWzIyOF1bcF0pO2ZvcihfWzIyOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmZjOVx1NmZhN1x1NmZiOVx1NmZiNlx1NmZjMlx1NmZlMVx1NmZlZVx1NmZkZVx1NmZlMFx1NmZlZlx1NzAxYVx1NzAyM1x1NzAxYlx1NzAzOVx1NzAzNVx1NzA0Zlx1NzA1ZVx1NWI4MFx1NWI4NFx1NWI5NVx1NWI5M1x1NWJh'@; put 'NVx1NWJiOFx1NzUyZlx1OWE5ZVx1NjQzNFx1NWJlNFx1NWJlZVx1ODkzMFx1NWJmMFx1OGU0N1x1OGIwN1x1OGZiNlx1OGZkM1x1OGZkNVx1OGZlNVx1OGZlZVx1OGZlNFx1OGZlOVx1OGZlNlx1OGZmM1x1OGZlOFx1OTAwNVx1OTAwNFx1OTAwYlx1OTAyNlx1OTAxMVx1OTAwZFx1OTAxNlx1'@; put 'OTAyMVx1OTAzNVx1OTAzNlx1OTAyZFx1OTAyZlx1OTA0NFx1OTA1MVx1OTA1Mlx1OTA1MFx1OTA2OFx1OTA1OFx1OTA2Mlx1OTA1Ylx1NjZiOVx1OTA3NFx1OTA3ZFx1OTA4Mlx1OTA4OFx1OTA4M1x1OTA4Ylx1NWY1MFx1NWY1N1x1NWY1Nlx1NWY1OFx1NWMzYlx1NTRhYlx1NWM1MFx1NWM1'@; put 'OVx1NWI3MVx1NWM2M1x1NWM2Nlx1N2ZiY1x1NWYyYVx1NWYyOVx1NWYyZFx1ODI3NFx1NWYzY1x1OWIzYlx1NWM2ZVx1NTk4MVx1NTk4M1x1NTk4ZFx1NTlhOVx1NTlhYVx1NTlhM1x1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIyOV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjI5XVtwXS5j'@; put 'aGFyQ29kZUF0KDApJiYoRFtfWzIyOV1bcF1dPTU4NjI0K3AsYls1ODYyNCtwXT1fWzIyOV1bcF0pO2ZvcihfWzIzMF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTk5N1x1NTljYVx1NTlhYlx1NTk5ZVx1NTlhNFx1NTlkMlx1NTliMlx1NTlhZlx1NTlkN1x1NTliZVx1NWEwNVx1NWEwNlx1NTlkZFx1NWEwOFx1NTllM1x1NTlkOFx1NTlmOVx1NWEwY1x1NWEwOVx1NWEz'@; put 'Mlx1NWEzNFx1NWExMVx1NWEyM1x1NWExM1x1NWE0MFx1NWE2N1x1NWE0YVx1NWE1NVx1NWEzY1x1NWE2Mlx1NWE3NVx1ODBlY1x1NWFhYVx1NWE5Ylx1NWE3N1x1NWE3YVx1NWFiZVx1NWFlYlx1NWFiMlx1NWFkMlx1NWFkNFx1NWFiOFx1NWFlMFx1NWFlM1x1NWFmMVx1NWFkNlx1NWFlNlx1'@; put 'NWFkOFx1NWFkY1x1NWIwOVx1NWIxN1x1NWIxNlx1NWIzMlx1NWIzN1x1NWI0MFx1NWMxNVx1NWMxY1x1NWI1YVx1NWI2NVx1NWI3M1x1NWI1MVx1NWI1M1x1NWI2Mlx1OWE3NVx1OWE3N1x1OWE3OFx1OWE3YVx1OWE3Zlx1OWE3ZFx1OWE4MFx1OWE4MVx1OWE4NVx1OWE4OFx1OWE4YVx1OWE5'@; put 'MFx1OWE5Mlx1OWE5M1x1OWE5Nlx1OWE5OFx1OWE5Ylx1OWE5Y1x1OWE5ZFx1OWE5Zlx1OWFhMFx1OWFhMlx1OWFhM1x1OWFhNVx1OWFhN1x1N2U5Zlx1N2VhMVx1N2VhM1x1N2VhNVx1N2VhOFx1N2VhOVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIzMF0ubGVuZ3RoOysrcCk2NTUzMyE9'@; put 'PV9bMjMwXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIzMF1bcF1dPTU4ODgwK3AsYls1ODg4MCtwXT1fWzIzMF1bcF0pO2ZvcihfWzIzMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2VhZFx1N2ViMFx1N2ViZVx1N2VjMFx1N2VjMVx1N2VjMlx1N2VjOVx1N2VjYlx1N2VjY1x1N2VkMFx1N2VkNFx1N2VkN1x1N2VkYlx1N2VlMFx1N2VlMVx1N2VlOFx1N2VlYlx1N2Vl'@; put 'ZVx1N2VlZlx1N2VmMVx1N2VmMlx1N2YwZFx1N2VmNlx1N2VmYVx1N2VmYlx1N2VmZVx1N2YwMVx1N2YwMlx1N2YwM1x1N2YwN1x1N2YwOFx1N2YwYlx1N2YwY1x1N2YwZlx1N2YxMVx1N2YxMlx1N2YxN1x1N2YxOVx1N2YxY1x1N2YxYlx1N2YxZlx1N2YyMVx1N2YyMlx1N2YyM1x1N2YyNFx1'@; put 'N2YyNVx1N2YyNlx1N2YyN1x1N2YyYVx1N2YyYlx1N2YyY1x1N2YyZFx1N2YyZlx1N2YzMFx1N2YzMVx1N2YzMlx1N2YzM1x1N2YzNVx1NWU3YVx1NzU3Zlx1NWRkYlx1NzUzZVx1OTA5NVx1NzM4ZVx1NzM5MVx1NzNhZVx1NzNhMlx1NzM5Zlx1NzNjZlx1NzNjMlx1NzNkMVx1NzNiN1x1NzNi'@; put 'M1x1NzNjMFx1NzNjOVx1NzNjOFx1NzNlNVx1NzNkOVx1OTg3Y1x1NzQwYVx1NzNlOVx1NzNlN1x1NzNkZVx1NzNiYVx1NzNmMlx1NzQwZlx1NzQyYVx1NzQ1Ylx1NzQyNlx1NzQyNVx1NzQyOFx1NzQzMFx1NzQyZVx1NzQyY1x1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIzMV0ubGVuZ3Ro'@; put 'OysrcCk2NTUzMyE9PV9bMjMxXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIzMV1bcF1dPTU5MTM2K3AsYls1OTEzNitwXT1fWzIzMV1bcF0pO2ZvcihfWzIzMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzQxYlx1NzQxYVx1NzQ0MVx1NzQ1Y1x1NzQ1N1x1NzQ1NVx1NzQ1OVx1NzQ3N1x1NzQ2ZFx1NzQ3ZVx1NzQ5Y1x1NzQ4ZVx1NzQ4MFx1NzQ4MVx1NzQ4N1x1NzQ4'@; put 'Ylx1NzQ5ZVx1NzRhOFx1NzRhOVx1NzQ5MFx1NzRhN1x1NzRkMlx1NzRiYVx1OTdlYVx1OTdlYlx1OTdlY1x1Njc0Y1x1Njc1M1x1Njc1ZVx1Njc0OFx1Njc2OVx1NjdhNVx1Njc4N1x1Njc2YVx1Njc3M1x1Njc5OFx1NjdhN1x1Njc3NVx1NjdhOFx1Njc5ZVx1NjdhZFx1Njc4Ylx1Njc3N1x1'@; put 'Njc3Y1x1NjdmMFx1NjgwOVx1NjdkOFx1NjgwYVx1NjdlOVx1NjdiMFx1NjgwY1x1NjdkOVx1NjdiNVx1NjdkYVx1NjdiM1x1NjdkZFx1NjgwMFx1NjdjM1x1NjdiOFx1NjdlMlx1NjgwZVx1NjdjMVx1NjdmZFx1NjgzMlx1NjgzM1x1Njg2MFx1Njg2MVx1Njg0ZVx1Njg2Mlx1Njg0NFx1Njg2'@; put 'NFx1Njg4M1x1NjgxZFx1Njg1NVx1Njg2Nlx1Njg0MVx1Njg2N1x1Njg0MFx1NjgzZVx1Njg0YVx1Njg0OVx1NjgyOVx1NjhiNVx1Njg4Zlx1Njg3NFx1Njg3N1x1Njg5M1x1Njg2Ylx1NjhjMlx1Njk2ZVx1NjhmY1x1NjkxZlx1NjkyMFx1NjhmOVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1f'@; put 'WzIzMl0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjMyXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIzMl1bcF1dPTU5MzkyK3AsYls1OTM5MitwXT1fWzIzMl1bcF0pO2ZvcihfWzIzM109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjkyNFx1NjhmMFx1NjkwYlx1NjkwMVx1Njk1N1x1NjhlM1x1NjkxMFx1Njk3MVx1NjkzOVx1Njk2MFx1Njk0Mlx1Njk1ZFx1Njk4NFx1Njk2'@; put 'Ylx1Njk4MFx1Njk5OFx1Njk3OFx1NjkzNFx1NjljY1x1Njk4N1x1Njk4OFx1NjljZVx1Njk4OVx1Njk2Nlx1Njk2M1x1Njk3OVx1Njk5Ylx1NjlhN1x1NjliYlx1NjlhYlx1NjlhZFx1NjlkNFx1NjliMVx1NjljMVx1NjljYVx1NjlkZlx1Njk5NVx1NjllMFx1Njk4ZFx1NjlmZlx1NmEyZlx1'@; put 'NjllZFx1NmExN1x1NmExOFx1NmE2NVx1NjlmMlx1NmE0NFx1NmEzZVx1NmFhMFx1NmE1MFx1NmE1Ylx1NmEzNVx1NmE4ZVx1NmE3OVx1NmEzZFx1NmEyOFx1NmE1OFx1NmE3Y1x1NmE5MVx1NmE5MFx1NmFhOVx1NmE5N1x1NmFhYlx1NzMzN1x1NzM1Mlx1NmI4MVx1NmI4Mlx1NmI4N1x1NmI4'@; put 'NFx1NmI5Mlx1NmI5M1x1NmI4ZFx1NmI5YVx1NmI5Ylx1NmJhMVx1NmJhYVx1OGY2Ylx1OGY2ZFx1OGY3MVx1OGY3Mlx1OGY3M1x1OGY3NVx1OGY3Nlx1OGY3OFx1OGY3N1x1OGY3OVx1OGY3YVx1OGY3Y1x1OGY3ZVx1OGY4MVx1OGY4Mlx1OGY4NFx1OGY4N1x1OGY4Ylx1ZmZmZCIuc3BsaXQo'@; put 'IiIpLHA9MDtwIT1fWzIzM10ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjMzXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIzM11bcF1dPTU5NjQ4K3AsYls1OTY0OCtwXT1fWzIzM11bcF0pO2ZvcihfWzIzNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGY4ZFx1OGY4ZVx1OGY4Zlx1OGY5OFx1OGY5YVx1OGVjZVx1NjIwYlx1NjIxN1x1NjIxYlx1NjIxZlx1NjIyMlx1NjIy'@; put 'MVx1NjIyNVx1NjIyNFx1NjIyY1x1ODFlN1x1NzRlZlx1NzRmNFx1NzRmZlx1NzUwZlx1NzUxMVx1NzUxM1x1NjUzNFx1NjVlZVx1NjVlZlx1NjVmMFx1NjYwYVx1NjYxOVx1Njc3Mlx1NjYwM1x1NjYxNVx1NjYwMFx1NzA4NVx1NjZmN1x1NjYxZFx1NjYzNFx1NjYzMVx1NjYzNlx1NjYzNVx1'@; put 'ODAwNlx1NjY1Zlx1NjY1NFx1NjY0MVx1NjY0Zlx1NjY1Nlx1NjY2MVx1NjY1N1x1NjY3N1x1NjY4NFx1NjY4Y1x1NjZhN1x1NjY5ZFx1NjZiZVx1NjZkYlx1NjZkY1x1NjZlNlx1NjZlOVx1OGQzMlx1OGQzM1x1OGQzNlx1OGQzYlx1OGQzZFx1OGQ0MFx1OGQ0NVx1OGQ0Nlx1OGQ0OFx1OGQ0'@; put 'OVx1OGQ0N1x1OGQ0ZFx1OGQ1NVx1OGQ1OVx1ODljN1x1ODljYVx1ODljYlx1ODljY1x1ODljZVx1ODljZlx1ODlkMFx1ODlkMVx1NzI2ZVx1NzI5Zlx1NzI1ZFx1NzI2Nlx1NzI2Zlx1NzI3ZVx1NzI3Zlx1NzI4NFx1NzI4Ylx1NzI4ZFx1NzI4Zlx1NzI5Mlx1NjMwOFx1NjMzMlx1NjNiMFx1'@; put 'ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIzNF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjM0XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIzNF1bcF1dPTU5OTA0K3AsYls1OTkwNCtwXT1fWzIzNF1bcF0pO2ZvcihfWzIzNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjQzZlx1NjRkOFx1ODAwNFx1NmJlYVx1NmJmM1x1NmJmZFx1NmJmNVx1NmJmOVx1NmMwNVx1NmMw'@; put 'N1x1NmMwNlx1NmMwZFx1NmMxNVx1NmMxOFx1NmMxOVx1NmMxYVx1NmMyMVx1NmMyOVx1NmMyNFx1NmMyYVx1NmMzMlx1NjUzNVx1NjU1NVx1NjU2Ylx1NzI0ZFx1NzI1Mlx1NzI1Nlx1NzIzMFx1ODY2Mlx1NTIxNlx1ODA5Zlx1ODA5Y1x1ODA5M1x1ODBiY1x1NjcwYVx1ODBiZFx1ODBiMVx1'@; put 'ODBhYlx1ODBhZFx1ODBiNFx1ODBiN1x1ODBlN1x1ODBlOFx1ODBlOVx1ODBlYVx1ODBkYlx1ODBjMlx1ODBjNFx1ODBkOVx1ODBjZFx1ODBkN1x1NjcxMFx1ODBkZFx1ODBlYlx1ODBmMVx1ODBmNFx1ODBlZFx1ODEwZFx1ODEwZVx1ODBmMlx1ODBmY1x1NjcxNVx1ODExMlx1OGM1YVx1ODEz'@; put 'Nlx1ODExZVx1ODEyY1x1ODExOFx1ODEzMlx1ODE0OFx1ODE0Y1x1ODE1M1x1ODE3NFx1ODE1OVx1ODE1YVx1ODE3MVx1ODE2MFx1ODE2OVx1ODE3Y1x1ODE3ZFx1ODE2ZFx1ODE2N1x1NTg0ZFx1NWFiNVx1ODE4OFx1ODE4Mlx1ODE5MVx1NmVkNVx1ODFhM1x1ODFhYVx1ODFjY1x1NjcyNlx1'@; put 'ODFjYVx1ODFiYlx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIzNV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjM1XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIzNV1bcF1dPTYwMTYwK3AsYls2MDE2MCtwXT1fWzIzNV1bcF0pO2ZvcihfWzIzNl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODFjMVx1ODFhNlx1NmIyNFx1NmIzN1x1NmIzOVx1NmI0M1x1NmI0Nlx1NmI1'@; put 'OVx1OThkMVx1OThkMlx1OThkM1x1OThkNVx1OThkOVx1OThkYVx1NmJiM1x1NWY0MFx1NmJjMlx1ODlmM1x1NjU5MFx1OWY1MVx1NjU5M1x1NjViY1x1NjVjNlx1NjVjNFx1NjVjM1x1NjVjY1x1NjVjZVx1NjVkMlx1NjVkNlx1NzA4MFx1NzA5Y1x1NzA5Nlx1NzA5ZFx1NzBiYlx1NzBjMFx1'@; put 'NzBiN1x1NzBhYlx1NzBiMVx1NzBlOFx1NzBjYVx1NzExMFx1NzExM1x1NzExNlx1NzEyZlx1NzEzMVx1NzE3M1x1NzE1Y1x1NzE2OFx1NzE0NVx1NzE3Mlx1NzE0YVx1NzE3OFx1NzE3YVx1NzE5OFx1NzFiM1x1NzFiNVx1NzFhOFx1NzFhMFx1NzFlMFx1NzFkNFx1NzFlN1x1NzFmOVx1NzIx'@; put 'ZFx1NzIyOFx1NzA2Y1x1NzExOFx1NzE2Nlx1NzFiOVx1NjIzZVx1NjIzZFx1NjI0M1x1NjI0OFx1NjI0OVx1NzkzYlx1Nzk0MFx1Nzk0Nlx1Nzk0OVx1Nzk1Ylx1Nzk1Y1x1Nzk1M1x1Nzk1YVx1Nzk2Mlx1Nzk1N1x1Nzk2MFx1Nzk2Zlx1Nzk2N1x1Nzk3YVx1Nzk4NVx1Nzk4YVx1Nzk5YVx1'@; put 'NzlhN1x1NzliM1x1NWZkMVx1NWZkMFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIzNl0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjM2XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIzNl1bcF1dPTYwNDE2K3AsYls2MDQxNitwXT1fWzIzNl1bcF0pO2ZvcihfWzIzN109Ilx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjAzY1x1NjA1ZFx1NjA1YVx1NjA2N1x1NjA0MVx1NjA1'@; put 'OVx1NjA2M1x1NjBhYlx1NjEwNlx1NjEwZFx1NjE1ZFx1NjFhOVx1NjE5ZFx1NjFjYlx1NjFkMVx1NjIwNlx1ODA4MFx1ODA3Zlx1NmM5M1x1NmNmNlx1NmRmY1x1NzdmNlx1NzdmOFx1NzgwMFx1NzgwOVx1NzgxN1x1NzgxOFx1NzgxMVx1NjVhYlx1NzgyZFx1NzgxY1x1NzgxZFx1NzgzOVx1'@; put 'NzgzYVx1NzgzYlx1NzgxZlx1NzgzY1x1NzgyNVx1NzgyY1x1NzgyM1x1NzgyOVx1Nzg0ZVx1Nzg2ZFx1Nzg1Nlx1Nzg1N1x1NzgyNlx1Nzg1MFx1Nzg0N1x1Nzg0Y1x1Nzg2YVx1Nzg5Ylx1Nzg5M1x1Nzg5YVx1Nzg4N1x1Nzg5Y1x1NzhhMVx1NzhhM1x1NzhiMlx1NzhiOVx1NzhhNVx1Nzhk'@; put 'NFx1NzhkOVx1NzhjOVx1NzhlY1x1NzhmMlx1NzkwNVx1NzhmNFx1NzkxM1x1NzkyNFx1NzkxZVx1NzkzNFx1OWY5Ylx1OWVmOVx1OWVmYlx1OWVmY1x1NzZmMVx1NzcwNFx1NzcwZFx1NzZmOVx1NzcwN1x1NzcwOFx1NzcxYVx1NzcyMlx1NzcxOVx1NzcyZFx1NzcyNlx1NzczNVx1NzczOFx1'@; put 'Nzc1MFx1Nzc1MVx1Nzc0N1x1Nzc0M1x1Nzc1YVx1Nzc2OFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIzN10ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjM3XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIzN11bcF1dPTYwNjcyK3AsYls2MDY3MitwXT1fWzIzN11bcF0pO2ZvcihfWzIzOF09'@; put 'Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Nzc2Mlx1Nzc2NVx1Nzc3Zlx1Nzc4'@; put 'ZFx1Nzc3ZFx1Nzc4MFx1Nzc4Y1x1Nzc5MVx1Nzc5Zlx1NzdhMFx1NzdiMFx1NzdiNVx1NzdiZFx1NzUzYVx1NzU0MFx1NzU0ZVx1NzU0Ylx1NzU0OFx1NzU1Ylx1NzU3Mlx1NzU3OVx1NzU4M1x1N2Y1OFx1N2Y2MVx1N2Y1Zlx1OGE0OFx1N2Y2OFx1N2Y3NFx1N2Y3MVx1N2Y3OVx1N2Y4MVx1'@; put 'N2Y3ZVx1NzZjZFx1NzZlNVx1ODgzMlx1OTQ4NVx1OTQ4Nlx1OTQ4N1x1OTQ4Ylx1OTQ4YVx1OTQ4Y1x1OTQ4ZFx1OTQ4Zlx1OTQ5MFx1OTQ5NFx1OTQ5N1x1OTQ5NVx1OTQ5YVx1OTQ5Ylx1OTQ5Y1x1OTRhM1x1OTRhNFx1OTRhYlx1OTRhYVx1OTRhZFx1OTRhY1x1OTRhZlx1OTRiMFx1OTRi'@; put 'Mlx1OTRiNFx1OTRiNlx1OTRiN1x1OTRiOFx1OTRiOVx1OTRiYVx1OTRiY1x1OTRiZFx1OTRiZlx1OTRjNFx1OTRjOFx1OTRjOVx1OTRjYVx1OTRjYlx1OTRjY1x1OTRjZFx1OTRjZVx1OTRkMFx1OTRkMVx1OTRkMlx1OTRkNVx1OTRkNlx1OTRkN1x1OTRkOVx1OTRkOFx1OTRkYlx1OTRkZVx1'@; put 'OTRkZlx1OTRlMFx1OTRlMlx1OTRlNFx1OTRlNVx1OTRlN1x1OTRlOFx1OTRlYVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIzOF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjM4XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIzOF1bcF1dPTYwOTI4K3AsYls2MDkyOCtwXT1fWzIzOF1bcF0p'@; put 'O2ZvcihfWzIzOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTRlOVx1OTRl'@; put 'Ylx1OTRlZVx1OTRlZlx1OTRmM1x1OTRmNFx1OTRmNVx1OTRmN1x1OTRmOVx1OTRmY1x1OTRmZFx1OTRmZlx1OTUwM1x1OTUwMlx1OTUwNlx1OTUwN1x1OTUwOVx1OTUwYVx1OTUwZFx1OTUwZVx1OTUwZlx1OTUxMlx1OTUxM1x1OTUxNFx1OTUxNVx1OTUxNlx1OTUxOFx1OTUxYlx1OTUxZFx1'@; put 'OTUxZVx1OTUxZlx1OTUyMlx1OTUyYVx1OTUyYlx1OTUyOVx1OTUyY1x1OTUzMVx1OTUzMlx1OTUzNFx1OTUzNlx1OTUzN1x1OTUzOFx1OTUzY1x1OTUzZVx1OTUzZlx1OTU0Mlx1OTUzNVx1OTU0NFx1OTU0NVx1OTU0Nlx1OTU0OVx1OTU0Y1x1OTU0ZVx1OTU0Zlx1OTU1Mlx1OTU1M1x1OTU1'@; put 'NFx1OTU1Nlx1OTU1N1x1OTU1OFx1OTU1OVx1OTU1Ylx1OTU1ZVx1OTU1Zlx1OTU1ZFx1OTU2MVx1OTU2Mlx1OTU2NFx1OTU2NVx1OTU2Nlx1OTU2N1x1OTU2OFx1OTU2OVx1OTU2YVx1OTU2Ylx1OTU2Y1x1OTU2Zlx1OTU3MVx1OTU3Mlx1OTU3M1x1OTUzYVx1NzdlN1x1NzdlY1x1OTZjOVx1'@; put 'NzlkNVx1NzllZFx1NzllM1x1NzllYlx1N2EwNlx1NWQ0N1x1N2EwM1x1N2EwMlx1N2ExZVx1N2ExNFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzIzOV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjM5XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzIzOV1bcF1dPTYxMTg0K3AsYls2MTE4NCtw'@; put 'XT1fWzIzOV1bcF0pO2ZvcihfWzI0MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1N2EzOVx1N2EzN1x1N2E1MVx1OWVjZlx1OTlhNVx1N2E3MFx1NzY4OFx1NzY4ZVx1NzY5M1x1NzY5OVx1NzZhNFx1NzRkZVx1NzRlMFx1NzUyY1x1OWUyMFx1OWUyMlx1OWUyOFx1OWUyOVx1OWUyYVx1OWUyYlx1OWUyY1x1OWUzMlx1OWUzMVx1OWUzNlx1OWUzOFx1OWUzN1x1OWUzOVx1'@; put 'OWUzYVx1OWUzZVx1OWU0MVx1OWU0Mlx1OWU0NFx1OWU0Nlx1OWU0N1x1OWU0OFx1OWU0OVx1OWU0Ylx1OWU0Y1x1OWU0ZVx1OWU1MVx1OWU1NVx1OWU1N1x1OWU1YVx1OWU1Ylx1OWU1Y1x1OWU1ZVx1OWU2M1x1OWU2Nlx1OWU2N1x1OWU2OFx1OWU2OVx1OWU2YVx1OWU2Ylx1OWU2Y1x1OWU3'@; put 'MVx1OWU2ZFx1OWU3M1x1NzU5Mlx1NzU5NFx1NzU5Nlx1NzVhMFx1NzU5ZFx1NzVhY1x1NzVhM1x1NzViM1x1NzViNFx1NzViOFx1NzVjNFx1NzViMVx1NzViMFx1NzVjM1x1NzVjMlx1NzVkNlx1NzVjZFx1NzVlM1x1NzVlOFx1NzVlNlx1NzVlNFx1NzVlYlx1NzVlN1x1NzYwM1x1NzVmMVx1'@; put 'NzVmY1x1NzVmZlx1NzYxMFx1NzYwMFx1NzYwNVx1NzYwY1x1NzYxN1x1NzYwYVx1NzYyNVx1NzYxOFx1NzYxNVx1NzYxOVx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzI0MF0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjQwXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzI0MF1bcF1dPTYxNDQw'@; put 'K3AsYls2MTQ0MCtwXT1fWzI0MF1bcF0pO2ZvcihfWzI0MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1NzYxYlx1NzYzY1x1NzYyMlx1NzYyMFx1NzY0MFx1NzYyZFx1NzYzMFx1NzYzZlx1NzYzNVx1NzY0M1x1NzYzZVx1NzYzM1x1NzY0ZFx1NzY1ZVx1NzY1NFx1NzY1Y1x1NzY1Nlx1NzY2Ylx1NzY2Zlx1N2ZjYVx1N2FlNlx1N2E3OFx1N2E3OVx1N2E4MFx1N2E4Nlx1'@; put 'N2E4OFx1N2E5NVx1N2FhNlx1N2FhMFx1N2FhY1x1N2FhOFx1N2FhZFx1N2FiM1x1ODg2NFx1ODg2OVx1ODg3Mlx1ODg3ZFx1ODg3Zlx1ODg4Mlx1ODhhMlx1ODhjNlx1ODhiN1x1ODhiY1x1ODhjOVx1ODhlMlx1ODhjZVx1ODhlM1x1ODhlNVx1ODhmMVx1ODkxYVx1ODhmY1x1ODhlOFx1ODhm'@; put 'ZVx1ODhmMFx1ODkyMVx1ODkxOVx1ODkxM1x1ODkxYlx1ODkwYVx1ODkzNFx1ODkyYlx1ODkzNlx1ODk0MVx1ODk2Nlx1ODk3Ylx1NzU4Ylx1ODBlNVx1NzZiMlx1NzZiNFx1NzdkY1x1ODAxMlx1ODAxNFx1ODAxNlx1ODAxY1x1ODAyMFx1ODAyMlx1ODAyNVx1ODAyNlx1ODAyN1x1ODAyOVx1'@; put 'ODAyOFx1ODAzMVx1ODAwYlx1ODAzNVx1ODA0M1x1ODA0Nlx1ODA0ZFx1ODA1Mlx1ODA2OVx1ODA3MVx1ODk4M1x1OTg3OFx1OTg4MFx1OTg4M1x1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzI0MV0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjQxXVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzI0'@; put 'MV1bcF1dPTYxNjk2K3AsYls2MTY5NitwXT1fWzI0MV1bcF0pO2ZvcihfWzI0Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTg4OVx1OTg4Y1x1OTg4ZFx1OTg4Zlx1OTg5NFx1OTg5YVx1OTg5Ylx1OTg5ZVx1OTg5Zlx1OThhMVx1OThhMlx1OThhNVx1OThhNlx1ODY0ZFx1ODY1NFx1ODY2Y1x1ODY2ZVx1ODY3Zlx1ODY3YVx1ODY3Y1x1ODY3Ylx1ODZhOFx1ODY4ZFx1'@; put 'ODY4Ylx1ODZhY1x1ODY5ZFx1ODZhN1x1ODZhM1x1ODZhYVx1ODY5M1x1ODZhOVx1ODZiNlx1ODZjNFx1ODZiNVx1ODZjZVx1ODZiMFx1ODZiYVx1ODZiMVx1ODZhZlx1ODZjOVx1ODZjZlx1ODZiNFx1ODZlOVx1ODZmMVx1ODZmMlx1ODZlZFx1ODZmM1x1ODZkMFx1ODcxM1x1ODZkZVx1ODZm'@; put 'NFx1ODZkZlx1ODZkOFx1ODZkMVx1ODcwM1x1ODcwN1x1ODZmOFx1ODcwOFx1ODcwYVx1ODcwZFx1ODcwOVx1ODcyM1x1ODczYlx1ODcxZVx1ODcyNVx1ODcyZVx1ODcxYVx1ODczZVx1ODc0OFx1ODczNFx1ODczMVx1ODcyOVx1ODczN1x1ODczZlx1ODc4Mlx1ODcyMlx1ODc3ZFx1ODc3ZVx1'@; put 'ODc3Ylx1ODc2MFx1ODc3MFx1ODc0Y1x1ODc2ZVx1ODc4Ylx1ODc1M1x1ODc2M1x1ODc3Y1x1ODc2NFx1ODc1OVx1ODc2NVx1ODc5M1x1ODdhZlx1ODdhOFx1ODdkMlx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzI0Ml0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjQyXVtwXS5jaGFyQ29kZUF0'@; put 'KDApJiYoRFtfWzI0Ml1bcF1dPTYxOTUyK3AsYls2MTk1MitwXT1fWzI0Ml1bcF0pO2ZvcihfWzI0M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODdjNlx1ODc4OFx1ODc4NVx1ODdhZFx1ODc5N1x1ODc4M1x1ODdhYlx1ODdlNVx1ODdhY1x1ODdiNVx1ODdiM1x1ODdjYlx1ODdkM1x1ODdiZFx1ODdkMVx1ODdjMFx1ODdjYVx1ODdkYlx1ODdlYVx1ODdlMFx1ODdlZVx1'@; put 'ODgxNlx1ODgxM1x1ODdmZVx1ODgwYVx1ODgxYlx1ODgyMVx1ODgzOVx1ODgzY1x1N2YzNlx1N2Y0Mlx1N2Y0NFx1N2Y0NVx1ODIxMFx1N2FmYVx1N2FmZFx1N2IwOFx1N2IwM1x1N2IwNFx1N2IxNVx1N2IwYVx1N2IyYlx1N2IwZlx1N2I0N1x1N2IzOFx1N2IyYVx1N2IxOVx1N2IyZVx1N2Iz'@; put 'MVx1N2IyMFx1N2IyNVx1N2IyNFx1N2IzM1x1N2IzZVx1N2IxZVx1N2I1OFx1N2I1YVx1N2I0NVx1N2I3NVx1N2I0Y1x1N2I1ZFx1N2I2MFx1N2I2ZVx1N2I3Ylx1N2I2Mlx1N2I3Mlx1N2I3MVx1N2I5MFx1N2JhNlx1N2JhN1x1N2JiOFx1N2JhY1x1N2I5ZFx1N2JhOFx1N2I4NVx1N2JhYVx1'@; put 'N2I5Y1x1N2JhMlx1N2JhYlx1N2JiNFx1N2JkMVx1N2JjMVx1N2JjY1x1N2JkZFx1N2JkYVx1N2JlNVx1N2JlNlx1N2JlYVx1N2MwY1x1N2JmZVx1N2JmY1x1N2MwZlx1N2MxNlx1N2MwYlx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzI0M10ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjQzXVtw'@; put 'XS5jaGFyQ29kZUF0KDApJiYoRFtfWzI0M11bcF1dPTYyMjA4K3AsYls2MjIwOCtwXT1fWzI0M11bcF0pO2ZvcihfWzI0NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2MxZlx1N2MyYVx1N2MyNlx1N2MzOFx1N2M0MVx1N2M0MFx1ODFmZVx1ODIwMVx1ODIwMlx1ODIwNFx1ODFlY1x1ODg0NFx1ODIyMVx1ODIyMlx1ODIyM1x1ODIyZFx1ODIyZlx1ODIyOFx1ODIyYlx1'@; put 'ODIzOFx1ODIzYlx1ODIzM1x1ODIzNFx1ODIzZVx1ODI0NFx1ODI0OVx1ODI0Ylx1ODI0Zlx1ODI1YVx1ODI1Zlx1ODI2OFx1ODg3ZVx1ODg4NVx1ODg4OFx1ODhkOFx1ODhkZlx1ODk1ZVx1N2Y5ZFx1N2Y5Zlx1N2ZhN1x1N2ZhZlx1N2ZiMFx1N2ZiMlx1N2M3Y1x1NjU0OVx1N2M5MVx1N2M5'@; put 'ZFx1N2M5Y1x1N2M5ZVx1N2NhMlx1N2NiMlx1N2NiY1x1N2NiZFx1N2NjMVx1N2NjN1x1N2NjY1x1N2NjZFx1N2NjOFx1N2NjNVx1N2NkN1x1N2NlOFx1ODI2ZVx1NjZhOFx1N2ZiZlx1N2ZjZVx1N2ZkNVx1N2ZlNVx1N2ZlMVx1N2ZlNlx1N2ZlOVx1N2ZlZVx1N2ZmM1x1N2NmOFx1N2Q3N1x1'@; put 'N2RhNlx1N2RhZVx1N2U0N1x1N2U5Ylx1OWViOFx1OWViNFx1OGQ3M1x1OGQ4NFx1OGQ5NFx1OGQ5MVx1OGRiMVx1OGQ2N1x1OGQ2ZFx1OGM0N1x1OGM0OVx1OTE0YVx1OTE1MFx1OTE0ZVx1OTE0Zlx1OTE2NFx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzI0NF0ubGVuZ3RoOysrcCk2NTUz'@; put 'MyE9PV9bMjQ0XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzI0NF1bcF1dPTYyNDY0K3AsYls2MjQ2NCtwXT1fWzI0NF1bcF0pO2ZvcihfWzI0NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTE2Mlx1OTE2MVx1OTE3MFx1OTE2OVx1OTE2Zlx1OTE3ZFx1OTE3ZVx1OTE3Mlx1OTE3NFx1OTE3OVx1OTE4Y1x1OTE4NVx1OTE5MFx1OTE4ZFx1OTE5MVx1OTFhMlx1OTFhM1x1'@; put 'OTFhYVx1OTFhZFx1OTFhZVx1OTFhZlx1OTFiNVx1OTFiNFx1OTFiYVx1OGM1NVx1OWU3ZVx1OGRiOFx1OGRlYlx1OGUwNVx1OGU1OVx1OGU2OVx1OGRiNVx1OGRiZlx1OGRiY1x1OGRiYVx1OGRjNFx1OGRkNlx1OGRkN1x1OGRkYVx1OGRkZVx1OGRjZVx1OGRjZlx1OGRkYlx1OGRjNlx1OGRl'@; put 'Y1x1OGRmN1x1OGRmOFx1OGRlM1x1OGRmOVx1OGRmYlx1OGRlNFx1OGUwOVx1OGRmZFx1OGUxNFx1OGUxZFx1OGUxZlx1OGUyY1x1OGUyZVx1OGUyM1x1OGUyZlx1OGUzYVx1OGU0MFx1OGUzOVx1OGUzNVx1OGUzZFx1OGUzMVx1OGU0OVx1OGU0MVx1OGU0Mlx1OGU1MVx1OGU1Mlx1OGU0YVx1'@; put 'OGU3MFx1OGU3Nlx1OGU3Y1x1OGU2Zlx1OGU3NFx1OGU4NVx1OGU4Zlx1OGU5NFx1OGU5MFx1OGU5Y1x1OGU5ZVx1OGM3OFx1OGM4Mlx1OGM4YVx1OGM4NVx1OGM5OFx1OGM5NFx1NjU5Ylx1ODlkNlx1ODlkZVx1ODlkYVx1ODlkY1x1ZmZmZCIuc3BsaXQoIiIpLHA9MDtwIT1fWzI0NV0ubGVu'@; put 'Z3RoOysrcCk2NTUzMyE9PV9bMjQ1XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzI0NV1bcF1dPTYyNzIwK3AsYls2MjcyMCtwXT1fWzI0NV1bcF0pO2ZvcihfWzI0Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODllNVx1ODllYlx1ODllZlx1OGEzZVx1OGIyNlx1OTc1M1x1OTZlOVx1OTZmM1x1OTZlZlx1OTcwNlx1OTcwMVx1OTcwOFx1OTcwZlx1OTcwZVx1OTcyYVx1'@; put 'OTcyZFx1OTczMFx1OTczZVx1OWY4MFx1OWY4M1x1OWY4NVx1OWY4Nlx1OWY4N1x1OWY4OFx1OWY4OVx1OWY4YVx1OWY4Y1x1OWVmZVx1OWYwYlx1OWYwZFx1OTZiOVx1OTZiY1x1OTZiZFx1OTZjZVx1OTZkMlx1NzdiZlx1OTZlMFx1OTI4ZVx1OTJhZVx1OTJjOFx1OTMzZVx1OTM2YVx1OTNj'@; put 'YVx1OTM4Zlx1OTQzZVx1OTQ2Ylx1OWM3Zlx1OWM4Mlx1OWM4NVx1OWM4Nlx1OWM4N1x1OWM4OFx1N2EyM1x1OWM4Ylx1OWM4ZVx1OWM5MFx1OWM5MVx1OWM5Mlx1OWM5NFx1OWM5NVx1OWM5YVx1OWM5Ylx1OWM5ZVx1OWM5Zlx1OWNhMFx1OWNhMVx1OWNhMlx1OWNhM1x1OWNhNVx1OWNhNlx1'@; put 'OWNhN1x1OWNhOFx1OWNhOVx1OWNhYlx1OWNhZFx1OWNhZVx1OWNiMFx1OWNiMVx1OWNiMlx1OWNiM1x1OWNiNFx1OWNiNVx1OWNiNlx1OWNiN1x1OWNiYVx1OWNiYlx1OWNiY1x1OWNiZFx1OWNjNFx1OWNjNVx1OWNjNlx1OWNjN1x1OWNjYVx1OWNjYlx1ZmZmZCIuc3BsaXQoIiIpLHA9MDtw'@; put 'IT1fWzI0Nl0ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjQ2XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzI0Nl1bcF1dPTYyOTc2K3AsYls2Mjk3NitwXT1fWzI0Nl1bcF0pO2ZvcihfWzI0N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWNjY1x1OWNjZFx1OWNjZVx1OWNjZlx1OWNkMFx1OWNkM1x1OWNkNFx1OWNkNVx1OWNkN1x1OWNkOFx1OWNkOVx1OWNkY1x1OWNkZFx1'@; put 'OWNkZlx1OWNlMlx1OTc3Y1x1OTc4NVx1OTc5MVx1OTc5Mlx1OTc5NFx1OTdhZlx1OTdhYlx1OTdhM1x1OTdiMlx1OTdiNFx1OWFiMVx1OWFiMFx1OWFiN1x1OWU1OFx1OWFiNlx1OWFiYVx1OWFiY1x1OWFjMVx1OWFjMFx1OWFjNVx1OWFjMlx1OWFjYlx1OWFjY1x1OWFkMVx1OWI0NVx1OWI0'@; put 'M1x1OWI0N1x1OWI0OVx1OWI0OFx1OWI0ZFx1OWI1MVx1OThlOFx1OTkwZFx1OTkyZVx1OTk1NVx1OTk1NFx1OWFkZlx1OWFlMVx1OWFlNlx1OWFlZlx1OWFlYlx1OWFmYlx1OWFlZFx1OWFmOVx1OWIwOFx1OWIwZlx1OWIxM1x1OWIxZlx1OWIyM1x1OWViZFx1OWViZVx1N2UzYlx1OWU4Mlx1'@; put 'OWU4N1x1OWU4OFx1OWU4Ylx1OWU5Mlx1OTNkNlx1OWU5ZFx1OWU5Zlx1OWVkYlx1OWVkY1x1OWVkZFx1OWVlMFx1OWVkZlx1OWVlMlx1OWVlOVx1OWVlN1x1OWVlNVx1OWVlYVx1OWVlZlx1OWYyMlx1OWYyY1x1OWYyZlx1OWYzOVx1OWYzN1x1OWYzZFx1OWYzZVx1OWY0NFx1ZmZmZCIuc3Bs'@; put 'aXQoIiIpLHA9MDtwIT1fWzI0N10ubGVuZ3RoOysrcCk2NTUzMyE9PV9bMjQ3XVtwXS5jaGFyQ29kZUF0KDApJiYoRFtfWzI0N11bcF1dPTYzMjMyK3AsYls2MzIzMitwXT1fWzI0N11bcF0pO3JldHVybntlbmM6RCxkZWM6Yn19KCksSlsxMDAyOV09ZnVuY3Rpb24oKXtmb3IodmFyIGI9Ilww'@; put 'XHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJT'@; put 'VFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHhjNFx1MDEwMFx1MDEwMVx4YzlcdTAxMDRceGQ2XHhkY1x4ZTFcdTAxMDVcdTAxMGNceGU0XHUwMTBkXHUwMTA2XHUwMTA3XHhlOVx1MDE3OVx1MDE3YVx1MDEwZVx4ZWRcdTAxMGZcdTAxMTJcdTAxMTNc'@; put 'dTAxMTZceGYzXHUwMTE3XHhmNFx4ZjZceGY1XHhmYVx1MDExYVx1MDExYlx4ZmNcdTIwMjBceGIwXHUwMTE4XHhhM1x4YTdcdTIwMjJceGI2XHhkZlx4YWVceGE5XHUyMTIyXHUwMTE5XHhhOFx1MjI2MFx1MDEyM1x1MDEyZVx1MDEyZlx1MDEyYVx1MjI2NFx1MjI2NVx1MDEyYlx1MDEzNlx1'@; put 'MjIwMlx1MjIxMVx1MDE0Mlx1MDEzYlx1MDEzY1x1MDEzZFx1MDEzZVx1MDEzOVx1MDEzYVx1MDE0NVx1MDE0Nlx1MDE0M1x4YWNcdTIyMWFcdTAxNDRcdTAxNDdcdTIyMDZceGFiXHhiYlx1MjAyNlx4YTBcdTAxNDhcdTAxNTBceGQ1XHUwMTUxXHUwMTRjXHUyMDEzXHUyMDE0XHUyMDFjXHUy'@; put 'MDFkXHUyMDE4XHUyMDE5XHhmN1x1MjVjYVx1MDE0ZFx1MDE1NFx1MDE1NVx1MDE1OFx1MjAzOVx1MjAzYVx1MDE1OVx1MDE1Nlx1MDE1N1x1MDE2MFx1MjAxYVx1MjAxZVx1MDE2MVx1MDE1YVx1MDE1Ylx4YzFcdTAxNjRcdTAxNjVceGNkXHUwMTdkXHUwMTdlXHUwMTZhXHhkM1x4ZDRcdTAx'@; put 'NmJcdTAxNmVceGRhXHUwMTZmXHUwMTcwXHUwMTcxXHUwMTcyXHUwMTczXHhkZFx4ZmRcdTAxMzdcdTAxN2JcdTAxNDFcdTAxN2NcdTAxMjJcdTAyYzciLEQ9W10sXz17fSxwPTA7MjU2IT1wOysrcCk2NTUzMyE9PWIuY2hhckNvZGVBdChwKSYmKF9bYi5jaGFyQXQocCldPXApLERbcF09Yi5j'@; put 'aGFyQXQocCk7cmV0dXJue2VuYzpfLGRlYzpEfX0oKSxKWzEwMDc5XT1mdW5jdGlvbigpe2Zvcih2YXIgYj0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFj'@; put 'XHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZceGM0XHhjNVx4YzdceGM5XHhkMVx4ZDZceGRjXHhlMVx4ZTBceGUyXHhlNFx4ZTNceGU1'@; put 'XHhlN1x4ZTlceGU4XHhlYVx4ZWJceGVkXHhlY1x4ZWVceGVmXHhmMVx4ZjNceGYyXHhmNFx4ZjZceGY1XHhmYVx4ZjlceGZiXHhmY1x4ZGRceGIwXHhhMlx4YTNceGE3XHUyMDIyXHhiNlx4ZGZceGFlXHhhOVx1MjEyMlx4YjRceGE4XHUyMjYwXHhjNlx4ZDhcdTIyMWVceGIxXHUyMjY0XHUy'@; put 'MjY1XHhhNVx4YjVcdTIyMDJcdTIyMTFcdTIyMGZcdTAzYzBcdTIyMmJceGFhXHhiYVx1MjEyNlx4ZTZceGY4XHhiZlx4YTFceGFjXHUyMjFhXHUwMTkyXHUyMjQ4XHUyMjA2XHhhYlx4YmJcdTIwMjZceGEwXHhjMFx4YzNceGQ1XHUwMTUyXHUwMTUzXHUyMDEzXHUyMDE0XHUyMDFjXHUyMDFk'@; put 'XHUyMDE4XHUyMDE5XHhmN1x1MjVjYVx4ZmZcdTAxNzhcdTIwNDRceGE0XHhkMFx4ZjBceGRlXHhmZVx4ZmRceGI3XHUyMDFhXHUyMDFlXHUyMDMwXHhjMlx4Y2FceGMxXHhjYlx4YzhceGNkXHhjZVx4Y2ZceGNjXHhkM1x4ZDRcdWZmZmRceGQyXHhkYVx4ZGJceGQ5XHUwMTMxXHUwMmM2XHUw'@; put 'MmRjXHhhZlx1MDJkOFx1MDJkOVx1MDJkYVx4YjhcdTAyZGRcdTAyZGJcdTAyYzciLEQ9W10sXz17fSxwPTA7MjU2IT1wOysrcCk2NTUzMyE9PWIuY2hhckNvZGVBdChwKSYmKF9bYi5jaGFyQXQocCldPXApLERbcF09Yi5jaGFyQXQocCk7cmV0dXJue2VuYzpfLGRlYzpEfX0oKSxKWzEwMDgx'@; put 'XT1mdW5jdGlvbigpe2Zvcih2YXIgYj0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5'@; put 'Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZceGM0XHhjNVx4YzdceGM5XHhkMVx4ZDZceGRjXHhlMVx4ZTBceGUyXHhlNFx4ZTNceGU1XHhlN1x4ZTlceGU4XHhlYVx4ZWJceGVkXHhlY1x4ZWVceGVmXHhm'@; put 'MVx4ZjNceGYyXHhmNFx4ZjZceGY1XHhmYVx4ZjlceGZiXHhmY1x1MjAyMFx4YjBceGEyXHhhM1x4YTdcdTIwMjJceGI2XHhkZlx4YWVceGE5XHUyMTIyXHhiNFx4YThcdTIyNjBceGM2XHhkOFx1MjIxZVx4YjFcdTIyNjRcdTIyNjVceGE1XHhiNVx1MjIwMlx1MjIxMVx1MjIwZlx1MDNjMFx1'@; put 'MjIyYlx4YWFceGJhXHUyMTI2XHhlNlx4ZjhceGJmXHhhMVx4YWNcdTIyMWFcdTAxOTJcdTIyNDhcdTIyMDZceGFiXHhiYlx1MjAyNlx4YTBceGMwXHhjM1x4ZDVcdTAxNTJcdTAxNTNcdTIwMTNcdTIwMTRcdTIwMWNcdTIwMWRcdTIwMThcdTIwMTlceGY3XHUyNWNhXHhmZlx1MDE3OFx1MDEx'@; put 'ZVx1MDExZlx1MDEzMFx1MDEzMVx1MDE1ZVx1MDE1Zlx1MjAyMVx4YjdcdTIwMWFcdTIwMWVcdTIwMzBceGMyXHhjYVx4YzFceGNiXHhjOFx4Y2RceGNlXHhjZlx4Y2NceGQzXHhkNFx1ZmZmZFx4ZDJceGRhXHhkYlx4ZDlcdWZmZmRcdTAyYzZcdTAyZGNceGFmXHUwMmQ4XHUwMmQ5XHUwMmRh'@; put 'XHhiOFx1MDJkZFx1MDJkYlx1MDJjNyIsRD1bXSxfPXt9LHA9MDsyNTYhPXA7KytwKTY1NTMzIT09Yi5jaGFyQ29kZUF0KHApJiYoX1tiLmNoYXJBdChwKV09cCksRFtwXT1iLmNoYXJBdChwKTtyZXR1cm57ZW5jOl8sZGVjOkR9fSgpLEpbMjg1OTFdPWZ1bmN0aW9uKCl7Zm9yKHZhciBiPSJc'@; put 'MFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFS'@; put 'U1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDlj'@; put 'XHg5ZFx4OWVceDlmXHhhMFx4YTFceGEyXHhhM1x4YTRceGE1XHhhNlx4YTdceGE4XHhhOVx4YWFceGFiXHhhY1x4YWRceGFlXHhhZlx4YjBceGIxXHhiMlx4YjNceGI0XHhiNVx4YjZceGI3XHhiOFx4YjlceGJhXHhiYlx4YmNceGJkXHhiZVx4YmZceGMwXHhjMVx4YzJceGMzXHhjNFx4YzVc'@; put 'eGM2XHhjN1x4YzhceGM5XHhjYVx4Y2JceGNjXHhjZFx4Y2VceGNmXHhkMFx4ZDFceGQyXHhkM1x4ZDRceGQ1XHhkNlx4ZDdceGQ4XHhkOVx4ZGFceGRiXHhkY1x4ZGRceGRlXHhkZlx4ZTBceGUxXHhlMlx4ZTNceGU0XHhlNVx4ZTZceGU3XHhlOFx4ZTlceGVhXHhlYlx4ZWNceGVkXHhlZVx4'@; put 'ZWZceGYwXHhmMVx4ZjJceGYzXHhmNFx4ZjVceGY2XHhmN1x4ZjhceGY5XHhmYVx4ZmJceGZjXHhmZFx4ZmVceGZmIixEPVtdLF89e30scD0wOzI1NiE9cDsrK3ApNjU1MzMhPT1iLmNoYXJDb2RlQXQocCkmJihfW2IuY2hhckF0KHApXT1wKSxEW3BdPWIuY2hhckF0KHApO3JldHVybntlbmM6'@; put 'XyxkZWM6RH19KCksY2UuZXhwb3J0cyYmdHlwZW9mIERPX05PVF9FWFBPUlRfQ09ERVBBR0U+InUiJiYoY2UuZXhwb3J0cz1KKSxmdW5jdGlvbihiLEQpeyJ1c2Ugc3RyaWN0IjtpZih0eXBlb2YgSj4idSIpe3ZhciBfPUo7Y2UuZXhwb3J0cyYmdHlwZW9mIERPX05PVF9FWFBPUlRfQ09ERVBB'@; put 'R0U+InUiP2NlLmV4cG9ydHM9RChfKTpiLmNwdGFibGU9RChfKX1lbHNlIEo9RChKKX0odGhpcyxmdW5jdGlvbihiKXsidXNlIHN0cmljdCI7dmFyIEQ9ezEyMDA6InV0ZjE2bGUiLDEyMDE6InV0ZjE2YmUiLDEyZTM6InV0ZjMybGUiLDEyMDAxOiJ1dGYzMmJlIiwxNjk2OToidXRmNjRsZSIs'@; put 'MjAxMjc6ImFzY2lpIiw2NWUzOiJ1dGY3Iiw2NTAwMToidXRmOCJ9LF89Wzg3NCwxMjUwLDEyNTEsMTI1MiwxMjUzLDEyNTQsMTI1NSwxMjU2LDFlNF0scD1bOTMyLDkzNiw5NDksOTUwXSxOPVs2NTAwMV0sdz17fSxGPXt9LEg9e30sUj17fSxqPWZ1bmN0aW9uKFUpe3JldHVybiBTdHJpbmcu'@; put 'ZnJvbUNoYXJDb2RlKFUpfSxQPWZ1bmN0aW9uKFUpe3JldHVybiBVLmNoYXJDb2RlQXQoMCl9LEw9dHlwZW9mIEJ1ZmZlcjwidSIsWT1mdW5jdGlvbigpe307aWYoTCl7dmFyIEI9IUJ1ZmZlci5mcm9tO2lmKCFCKXRyeXtCdWZmZXIuZnJvbSgiZm9vIiwidXRmOCIpfWNhdGNoe0I9ITB9WT1C'@; put 'P2Z1bmN0aW9uKFYsVSl7cmV0dXJuIFU/bmV3IEJ1ZmZlcihWLFUpOm5ldyBCdWZmZXIoVil9OkJ1ZmZlci5mcm9tLmJpbmQoQnVmZmVyKSxCdWZmZXIuYWxsb2NVbnNhZmV8fChCdWZmZXIuYWxsb2NVbnNhZmU9ZnVuY3Rpb24oVil7cmV0dXJuIG5ldyBCdWZmZXIoVil9KTt2YXIgVz0xMDI0'@; put 'LFo9QnVmZmVyLmFsbG9jVW5zYWZlKFcpLFE9ZnVuY3Rpb24oVSl7dmFyIEU9ZnVuY3Rpb24oVSl7Zm9yKHZhciBFPUJ1ZmZlci5hbGxvY1Vuc2FmZSg2NTUzNiksbT0wO208NjU1MzY7KyttKUVbbV09MDtmb3IodmFyIEE9T2JqZWN0LmtleXMoVSksYWU9QS5sZW5ndGgsbmU9MCxsZT1BW25l'@; put 'XTtuZTxhZTsrK25lKShsZT1BW25lXSkmJihFW2xlLmNoYXJDb2RlQXQoMCldPVVbbGVdKTtyZXR1cm4gRX0oYltVXS5lbmMpO3JldHVybiBmdW5jdGlvbihBLGFlKXt2YXIgbGUsbmU9QS5sZW5ndGgsd2U9MCxaZT0wLFFlPTAsYXQ9MDtpZigic3RyaW5nIj09dHlwZW9mIEEpZm9yKGxlPUJ1'@; put 'ZmZlci5hbGxvY1Vuc2FmZShuZSksd2U9MDt3ZTxuZTsrK3dlKWxlW3dlXT1FW0EuY2hhckNvZGVBdCh3ZSldO2Vsc2UgaWYoQnVmZmVyLmlzQnVmZmVyKEEpKXtmb3IobGU9QnVmZmVyLmFsbG9jVW5zYWZlKDIqbmUpLFplPTAsd2U9MDt3ZTxuZTsrK3dlKShRZT1BW3dlXSk8MTI4P2xlW1pl'@; put 'KytdPUVbUWVdOlFlPDIyND8obGVbWmUrK109RVsoKDMxJlFlKTw8NikrKDYzJkFbd2UrMV0pXSwrK3dlKTpRZTwyNDA/KGxlW1plKytdPUVbKCgxNSZRZSk8PDEyKSsoKDYzJkFbd2UrMV0pPDw2KSsoNjMmQVt3ZSsyXSldLHdlKz0yKTooYXQ9KCg3JlFlKTw8MTgpKygoNjMmQVt3ZSsxXSk8'@; put 'PDEyKSsoKDYzJkFbd2UrMl0pPDw2KSsoNjMmQVt3ZSszXSksd2UrPTMsYXQ8NjU1MzY/bGVbWmUrK109RVthdF06KGxlW1plKytdPUVbNTUyOTYrKChhdC09NjU1MzYpPj4xMCYxMDIzKV0sbGVbWmUrK109RVs1NjMyMCsoMTAyMyZhdCldKSk7bGU9bGUuc2xpY2UoMCxaZSl9ZWxzZSBmb3Io'@; put 'bGU9QnVmZmVyLmFsbG9jVW5zYWZlKG5lKSx3ZT0wO3dlPG5lOysrd2UpbGVbd2VdPUVbQVt3ZV0uY2hhckNvZGVBdCgwKV07cmV0dXJuIGFlJiYiYnVmIiE9PWFlPyJhcnIiIT09YWU/bGUudG9TdHJpbmcoImJpbmFyeSIpOltdLnNsaWNlLmNhbGwobGUpOmxlfX0scT1mdW5jdGlvbihVKXt2'@; put 'YXIgRT1iW1VdLmRlYyxtPUJ1ZmZlci5hbGxvY1Vuc2FmZSgxMzEwNzIpLEE9MCxhZT0iIjtmb3IoQT0wO0E8RS5sZW5ndGg7KytBKWlmKGFlPUVbQV0pe3ZhciBuZT1hZS5jaGFyQ29kZUF0KDApO21bMipBXT0yNTUmbmUsbVsyKkErMV09bmU+Pjh9cmV0dXJuIGZ1bmN0aW9uKHdlKXt2YXIg'@; put 'WmU9d2UubGVuZ3RoLFFlPTAsYXQ9MDtpZigyKlplPlcmJihXPTIqWmUsWj1CdWZmZXIuYWxsb2NVbnNhZmUoVykpLEJ1ZmZlci5pc0J1ZmZlcih3ZSkpZm9yKFFlPTA7UWU8WmU7UWUrKylaWzIqUWVdPW1bYXQ9Mip3ZVtRZV1dLFpbMipRZSsxXT1tW2F0KzFdO2Vsc2UgaWYoInN0cmluZyI9'@; put 'PXR5cGVvZiB3ZSlmb3IoUWU9MDtRZTxaZTtRZSsrKWF0PTIqd2UuY2hhckNvZGVBdChRZSksWlsyKlFlXT1tW2F0XSxaWzIqUWUrMV09bVthdCsxXTtlbHNlIGZvcihRZT0wO1FlPFplO1FlKyspWlsyKlFlXT1tW2F0PTIqd2VbUWVdXSxaWzIqUWUrMV09bVthdCsxXTtyZXR1cm4gWi5zbGlj'@; put 'ZSgwLDIqWmUpLnRvU3RyaW5nKCJ1Y3MyIil9fSx0ZT1mdW5jdGlvbihVKXtmb3IodmFyIEU9YltVXS5lbmMsbT1CdWZmZXIuYWxsb2NVbnNhZmUoMTMxMDcyKSxBPTA7QTwxMzEwNzI7KytBKW1bQV09MDtmb3IodmFyIGFlPU9iamVjdC5rZXlzKEUpLG5lPTAsbGU9YWVbbmVdO25lPGFlLmxl'@; put 'bmd0aDsrK25lKWlmKGxlPWFlW25lXSl7dmFyIHdlPWxlLmNoYXJDb2RlQXQoMCk7bVsyKndlXT0yNTUmRVtsZV0sbVsyKndlKzFdPUVbbGVdPj44fXJldHVybiBmdW5jdGlvbihRZSxhdCl7dmFyIHhlPVFlLmxlbmd0aCx2ZT1CdWZmZXIuYWxsb2NVbnNhZmUoMip4ZSkscWU9MCxqZT0wLEFl'@; put 'PTAsRmU9MCxSZT0wO2lmKCJzdHJpbmciPT10eXBlb2YgUWUpe2ZvcihxZT1GZT0wO3FlPHhlOysrcWUpamU9MipRZS5jaGFyQ29kZUF0KHFlKSx2ZVtGZSsrXT1tW2plKzFdfHxtW2plXSxtW2plKzFdPjAmJih2ZVtGZSsrXT1tW2plXSk7dmU9dmUuc2xpY2UoMCxGZSl9ZWxzZSBpZihCdWZm'@; put 'ZXIuaXNCdWZmZXIoUWUpKXtmb3IocWU9RmU9MDtxZTx4ZTsrK3FlKShSZT1RZVtxZV0pPDEyOD9qZT1SZTpSZTwyMjQ/KGplPSgoMzEmUmUpPDw2KSsoNjMmUWVbcWUrMV0pLCsrcWUpOlJlPDI0MD8oamU9KCgxNSZSZSk8PDEyKSsoKDYzJlFlW3FlKzFdKTw8NikrKDYzJlFlW3FlKzJdKSxx'@; put 'ZSs9Mik6KGplPSgoNyZSZSk8PDE4KSsoKDYzJlFlW3FlKzFdKTw8MTIpKygoNjMmUWVbcWUrMl0pPDw2KSsoNjMmUWVbcWUrM10pLHFlKz0zKSxqZTw2NTUzNj8odmVbRmUrK109bVsxKyhqZSo9MildfHxtW2plXSxtW2plKzFdPjAmJih2ZVtGZSsrXT1tW2plXSkpOih2ZVtGZSsrXT1tWzEr'@; put 'KGplPTIqKDU1Mjk2KygoQWU9amUtNjU1MzYpPj4xMCYxMDIzKSkpXXx8bVtqZV0sbVtqZSsxXT4wJiYodmVbRmUrK109bVtqZV0pLHZlW0ZlKytdPW1bMSsoamU9MiooNTYzMjArKDEwMjMmQWUpKSldfHxtW2plXSxtW2plKzFdPjAmJih2ZVtGZSsrXT1tW2plXSkpO3ZlPXZlLnNsaWNlKDAs'@; put 'RmUpfWVsc2UgZm9yKHFlPUZlPTA7cWU8eGU7cWUrKylqZT0yKlFlW3FlXS5jaGFyQ29kZUF0KDApLHZlW0ZlKytdPW1bamUrMV18fG1bamVdLG1bamUrMV0+MCYmKHZlW0ZlKytdPW1bamVdKTtyZXR1cm4gYXQmJiJidWYiIT09YXQ/ImFyciIhPT1hdD92ZS50b1N0cmluZygiYmluYXJ5Iik6'@; put 'W10uc2xpY2UuY2FsbCh2ZSk6dmV9fSxpZT1mdW5jdGlvbihVKXt2YXIgYWUsRT1iW1VdLmRlYyxtPUJ1ZmZlci5hbGxvY1Vuc2FmZSgxMzEwNzIpLEE9MCxuZT0wLGxlPTAsd2U9MDtmb3Iod2U9MDt3ZTw2NTUzNjsrK3dlKW1bMip3ZV09MjU1LG1bMip3ZSsxXT0yNTM7Zm9yKEE9MDtBPEUu'@; put 'bGVuZ3RoOysrQSkoYWU9RVtBXSkmJihuZT1hZS5jaGFyQ29kZUF0KDApLG1bbGU9MipBXT0yNTUmbmUsbVtsZSsxXT1uZT4+OCk7cmV0dXJuIGZ1bmN0aW9uKFFlKXt2YXIgYXQ9UWUubGVuZ3RoLHhlPUJ1ZmZlci5hbGxvY1Vuc2FmZSgyKmF0KSx2ZT0wLHFlPTAsamU9MDtpZihCdWZmZXIu'@; put 'aXNCdWZmZXIoUWUpKWZvcih2ZT0wO3ZlPGF0O3ZlKyspMjU1PT09bVtxZT0yKlFlW3ZlXV0mJjI1Mz09PW1bcWUrMV0mJihxZT0yKigoUWVbdmVdPDw4KStRZVt2ZSsxXSksKyt2ZSkseGVbamUrK109bVtxZV0seGVbamUrK109bVtxZSsxXTtlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgUWUp'@; put 'Zm9yKHZlPTA7dmU8YXQ7dmUrKylxZT0yKlFlLmNoYXJDb2RlQXQodmUpLDI1NT09PW1bcWVdJiYyNTM9PT1tW3FlKzFdJiYocWU9MiooKFFlLmNoYXJDb2RlQXQodmUpPDw4KStRZS5jaGFyQ29kZUF0KHZlKzEpKSwrK3ZlKSx4ZVtqZSsrXT1tW3FlXSx4ZVtqZSsrXT1tW3FlKzFdO2Vsc2Ug'@; put 'Zm9yKHZlPTA7dmU8YXQ7dmUrKykyNTU9PT1tW3FlPTIqUWVbdmVdXSYmMjUzPT09bVtxZSsxXSYmKHFlPTIqKChRZVt2ZV08PDgpK1FlW3ZlKzFdKSwrK3ZlKSx4ZVtqZSsrXT1tW3FlXSx4ZVtqZSsrXT1tW3FlKzFdO3JldHVybiB4ZS5zbGljZSgwLGplKS50b1N0cmluZygidWNzMiIpfX07'@; put 'd1s2NTAwMV09ZnVuY3Rpb24gVihVKXtpZigic3RyaW5nIj09dHlwZW9mIFUpcmV0dXJuIFYoVS5zcGxpdCgiIikubWFwKFApKTt2YXIgRT1VLmxlbmd0aCxtPTAsQT0wOzQqRT5XJiYoVz00KkUsWj1CdWZmZXIuYWxsb2NVbnNhZmUoVykpO3ZhciBhZT0wO0U+PTMmJjIzOT09VVswXSYmMTg3'@; put 'PT1VWzFdJiYxOTE9PVVbMl0mJihhZT0zKTtmb3IodmFyIG5lPTEsbGU9MCx3ZT0wO2FlPEU7YWUrPW5lKW5lPTEsKHdlPVVbYWVdKTwxMjg/bT13ZTp3ZTwyMjQ/KG09NjQqKDMxJndlKSsoNjMmVVthZSsxXSksbmU9Mik6d2U8MjQwPyhtPSgoMTUmd2UpPDwxMikrNjQqKDYzJlVbYWUrMV0p'@; put 'Kyg2MyZVW2FlKzJdKSxuZT0zKToobT0yNjIxNDQqKDcmd2UpKygoNjMmVVthZSsxXSk8PDEyKSs2NCooNjMmVVthZSsyXSkrKDYzJlVbYWUrM10pLG5lPTQpLG08NjU1MzY/KFpbbGUrK109MjU1Jm0sWltsZSsrXT1tPj44KTooQT01NTI5NisoKG0tPTY1NTM2KT4+MTAmMTAyMyksbT01NjMy'@; put 'MCsoMTAyMyZtKSxaW2xlKytdPTI1NSZBLFpbbGUrK109QT4+PjgsWltsZSsrXT0yNTUmbSxaW2xlKytdPW0+Pj44JjI1NSk7cmV0dXJuIFouc2xpY2UoMCxsZSkudG9TdHJpbmcoInVjczIiKX0sRls2NTAwMV09ZnVuY3Rpb24oVSxFKXtpZihMJiZCdWZmZXIuaXNCdWZmZXIoVSkpcmV0dXJu'@; put 'IEUmJiJidWYiIT09RT8iYXJyIiE9PUU/VS50b1N0cmluZygiYmluYXJ5Iik6W10uc2xpY2UuY2FsbChVKTpVO3ZhciBtPVUubGVuZ3RoLEE9MCxhZT0wLG5lPTAsbGU9InN0cmluZyI9PXR5cGVvZiBVOzQqbT5XJiYoVz00Km0sWj1CdWZmZXIuYWxsb2NVbnNhZmUoVykpO2Zvcih2YXIgd2U9'@; put 'MDt3ZTxtOysrd2UpKEE9bGU/VS5jaGFyQ29kZUF0KHdlKTpVW3dlXS5jaGFyQ29kZUF0KDApKTw9MTI3P1pbbmUrK109QTpBPD0yMDQ3PyhaW25lKytdPTE5MisoQT4+NiksWltuZSsrXT0xMjgrKDYzJkEpKTpBPj01NTI5NiYmQTw9NTczNDM/KEEtPTU1Mjk2LCsrd2UsYWU9KGxlP1UuY2hh'@; put 'ckNvZGVBdCh3ZSk6VVt3ZV0uY2hhckNvZGVBdCgwKSktNTYzMjArKEE8PDEwKSxaW25lKytdPTI0MCsoYWU+Pj4xOCY3KSxaW25lKytdPTE0NCsoYWU+Pj4xMiY2MyksWltuZSsrXT0xMjgrKGFlPj4+NiY2MyksWltuZSsrXT0xMjgrKDYzJmFlKSk6KFpbbmUrK109MjI0KyhBPj4xMiksWltu'@; put 'ZSsrXT0xMjgrKEE+PjYmNjMpLFpbbmUrK109MTI4Kyg2MyZBKSk7cmV0dXJuIEUmJiJidWYiIT09RT8iYXJyIiE9PUU/Wi5zbGljZSgwLG5lKS50b1N0cmluZygiYmluYXJ5Iik6W10uc2xpY2UuY2FsbChaLDAsbmUpOlouc2xpY2UoMCxuZSl9fXZhciBzZT1mdW5jdGlvbigpe2lmKEwpe2lm'@; put 'KEhbX1swXV0pcmV0dXJuO3ZhciBVPTAsRT0wO2ZvcihVPTA7VTxfLmxlbmd0aDsrK1UpYltFPV9bVV1dJiYoSFtFXT1xKEUpLFJbRV09UShFKSk7Zm9yKFU9MDtVPHAubGVuZ3RoOysrVSliW0U9cFtVXV0mJihIW0VdPWllKEUpLFJbRV09dGUoRSkpO2ZvcihVPTA7VTxOLmxlbmd0aDsrK1Up'@; put 'd1tFPU5bVV1dJiYoSFtFXT13W0VdKSxGW0VdJiYoUltFXT1GW0VdKX19LGdlPWZ1bmN0aW9uKFYsVSl7cmV0dXJuIiJ9LF9lPWZ1bmN0aW9uKFUpe2RlbGV0ZSBIW1VdLGRlbGV0ZSBSW1VdfSxTZT17ZW5jYWNoZTpzZSxkZWNhY2hlOmZ1bmN0aW9uKCl7aWYoTCl7aWYoIUhbX1swXV0pcmV0'@; put 'dXJuO18uZm9yRWFjaChfZSkscC5mb3JFYWNoKF9lKSxOLmZvckVhY2goX2UpfWc9Z2UseT0wfSxzYmNzOl8sZGJjczpwfTtzZSgpO3ZhciB6ZT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIsZz1nZSx5PTA7cmV0dXJu'@; put 'IGIudXRpbHM9e2RlY29kZTpmdW5jdGlvbiBWKFUsRSl7dmFyIG07aWYobT1IW1VdKXJldHVybiBtKEUpO2lmKCJzdHJpbmciPT10eXBlb2YgRSlyZXR1cm4gVihVLEUuc3BsaXQoIiIpLm1hcChQKSk7dmFyIHZlLEE9RS5sZW5ndGgsYWU9bmV3IEFycmF5KEEpLG5lPSIiLGxlPTAsd2U9MCxa'@; put 'ZT0xLFFlPTAsYXQ9MCx4ZT1iW1VdLHFlPSIiO2lmKHhlJiYodmU9eGUuZGVjKSlmb3Iod2U9MDt3ZTxBO3dlKz1aZSl7aWYoWmU9MiwobmU9dmVbKEVbd2VdPDw4KStFW3dlKzFdXSl8fChaZT0xLG5lPXZlW0Vbd2VdXSksIW5lKXRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIGNvZGU6'@; put 'ICIrRVt3ZV0rIiAiK0Vbd2UrWmUtMV0rIiAiK3dlKyIgIitaZSsiICIrdmVbRVt3ZV1dKTthZVtRZSsrXT1uZX1lbHNle2lmKCEocWU9RFtVXSkpdGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgQ1A6ICIrVSk7c3dpdGNoKHFlKXtjYXNlInV0ZjgiOmZvcihBPj0zJiYyMzk9PUVbMF0m'@; put 'JjE4Nz09RVsxXSYmMTkxPT1FWzJdJiYod2U9Myk7d2U8QTt3ZSs9WmUpWmU9MSxFW3dlXTwxMjg/bGU9RVt3ZV06RVt3ZV08MjI0PyhsZT02NCooMzEmRVt3ZV0pKyg2MyZFW3dlKzFdKSxaZT0yKTpFW3dlXTwyNDA/KGxlPSgoMTUmRVt3ZV0pPDwxMikrNjQqKDYzJkVbd2UrMV0pKyg2MyZF'@; put 'W3dlKzJdKSxaZT0zKToobGU9MjYyMTQ0Kig3JkVbd2VdKSsoKDYzJkVbd2UrMV0pPDwxMikrNjQqKDYzJkVbd2UrMl0pKyg2MyZFW3dlKzNdKSxaZT00KSxsZTw2NTUzNnx8KGF0PTU1Mjk2KygobGUtPTY1NTM2KT4+MTAmMTAyMyksbGU9NTYzMjArKDEwMjMmbGUpLGFlW1FlKytdPVN0cmlu'@; put 'Zy5mcm9tQ2hhckNvZGUoYXQpKSxhZVtRZSsrXT1TdHJpbmcuZnJvbUNoYXJDb2RlKGxlKTticmVhaztjYXNlImFzY2lpIjppZihMJiZCdWZmZXIuaXNCdWZmZXIoRSkpcmV0dXJuIEUudG9TdHJpbmcocWUpO2Zvcih3ZT0wO3dlPEE7d2UrKylhZVt3ZV09U3RyaW5nLmZyb21DaGFyQ29kZShF'@; put 'W3dlXSk7UWU9QTticmVhaztjYXNlInV0ZjE2bGUiOmlmKEE+PTImJjI1NT09RVswXSYmMjU0PT1FWzFdJiYod2U9MiksTCYmQnVmZmVyLmlzQnVmZmVyKEUpKXJldHVybiBFLnRvU3RyaW5nKHFlKTtmb3IoWmU9Mjt3ZSsxPEE7d2UrPVplKWFlW1FlKytdPVN0cmluZy5mcm9tQ2hhckNvZGUo'@; put 'KEVbd2UrMV08PDgpK0Vbd2VdKTticmVhaztjYXNlInV0ZjE2YmUiOmZvcihBPj0yJiYyNTQ9PUVbMF0mJjI1NT09RVsxXSYmKHdlPTIpLFplPTI7d2UrMTxBO3dlKz1aZSlhZVtRZSsrXT1TdHJpbmcuZnJvbUNoYXJDb2RlKChFW3dlXTw8OCkrRVt3ZSsxXSk7YnJlYWs7Y2FzZSJ1dGYzMmxl'@; put 'Ijpmb3IoQT49NCYmMjU1PT1FWzBdJiYyNTQ9PUVbMV0mJjA9PT1FWzJdJiYwPT09RVszXSYmKHdlPTQpLFplPTQ7d2U8QTt3ZSs9WmUpKGxlPShFW3dlKzNdPDwyNCkrKEVbd2UrMl08PDE2KSsoRVt3ZSsxXTw8OCkrRVt3ZV0pPjY1NTM1PyhsZS09NjU1MzYsYWVbUWUrK109U3RyaW5nLmZy'@; put 'b21DaGFyQ29kZSg1NTI5NisobGU+PjEwJjEwMjMpKSxhZVtRZSsrXT1TdHJpbmcuZnJvbUNoYXJDb2RlKDU2MzIwKygxMDIzJmxlKSkpOmFlW1FlKytdPVN0cmluZy5mcm9tQ2hhckNvZGUobGUpO2JyZWFrO2Nhc2UidXRmMzJiZSI6Zm9yKEE+PTQmJjI1NT09RVszXSYmMjU0PT1FWzJdJiYw'@; put 'PT09RVsxXSYmMD09PUVbMF0mJih3ZT00KSxaZT00O3dlPEE7d2UrPVplKShsZT0oRVt3ZV08PDI0KSsoRVt3ZSsxXTw8MTYpKyhFW3dlKzJdPDw4KStFW3dlKzNdKT42NTUzNT8obGUtPTY1NTM2LGFlW1FlKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTYrKGxlPj4xMCYxMDIzKSksYWVb'@; put 'UWUrK109U3RyaW5nLmZyb21DaGFyQ29kZSg1NjMyMCsoMTAyMyZsZSkpKTphZVtRZSsrXT1TdHJpbmcuZnJvbUNoYXJDb2RlKGxlKTticmVhaztjYXNlInV0ZjciOmZvcihBPj00JiY0Mz09RVswXSYmNDc9PUVbMV0mJjExOD09RVsyXSYmKEE+PTUmJjU2PT1FWzNdJiY0NT09RVs0XT93ZT01'@; put 'Oig1Nj09RVszXXx8NTc9PUVbM118fDQzPT1FWzNdfHw0Nz09RVszXSkmJih3ZT00KSk7d2U8QTt3ZSs9WmUpaWYoNDM9PT1FW3dlXSlpZihaZT0xLDQ1IT09RVt3ZSsxXSl7Zm9yKDtTdHJpbmcuZnJvbUNoYXJDb2RlKEVbd2UrWmVdKS5tYXRjaCgvW0EtWmEtejAtOStcL10vKTspWmUrKzt2'@; put 'YXIgamU9MDs0NT09PUVbd2UrWmVdJiYoKytaZSxqZT0xKTtmb3IodmFyIEFlPVtdLEZlPSIiLERlPTAsa2U9MCxfdD0wLG50PTAsSmU9MTtKZTxaZS1qZSYmKERlPXplLmluZGV4T2YoU3RyaW5nLmZyb21DaGFyQ29kZShFW3dlK0plKytdKSksa2U9emUuaW5kZXhPZihTdHJpbmcuZnJvbUNo'@; put 'YXJDb2RlKEVbd2UrSmUrK10pKSxBZS5wdXNoKERlPDwyfGtlPj40KSwtMSE9PShfdD16ZS5pbmRleE9mKFN0cmluZy5mcm9tQ2hhckNvZGUoRVt3ZStKZSsrXSkpKSYmKEFlLnB1c2goKDE1JmtlKTw8NHxfdD4+MiksLTEhPT0obnQ9emUuaW5kZXhPZihTdHJpbmcuZnJvbUNoYXJDb2RlKEVb'@; put 'd2UrSmUrK10pKSkpKTspbnQ8NjQmJkFlLnB1c2goKDMmX3QpPDw2fG50KTtmb3IoRmU9VigxMjAxLEFlKSxKZT0wO0plPEZlLmxlbmd0aDsrK0plKWFlW1FlKytdPUZlLmNoYXJBdChKZSl9ZWxzZSBaZT0yLGFlW1FlKytdPSIrIjtlbHNlIFplPTEsYWVbUWUrK109U3RyaW5nLmZyb21DaGFy'@; put 'Q29kZShFW3dlXSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIG1hZ2ljOiAiK1UrIiAiK0RbVV0pfX1yZXR1cm4gYWUuc2xpY2UoMCxRZSkuam9pbigiIil9LGVuY29kZTpmdW5jdGlvbiBWKFUsRSxtKXtpZihVPT09eSYmZylyZXR1cm4gZyhFLG0pO2lmKFJb'@; put 'VV0pcmV0dXJuKGc9Ult5PVVdKShFLG0pO0wmJkJ1ZmZlci5pc0J1ZmZlcihFKSYmKEU9RS50b1N0cmluZygidXRmOCIpKTt2YXIgYXQsQT1FLmxlbmd0aCxhZT1MP0J1ZmZlci5hbGxvY1Vuc2FmZSg0KkEpOltdLG5lPTAsbGU9MCx3ZT0wLFplPTAsUWU9YltVXSx4ZT0iIix2ZT0ic3RyaW5n'@; put 'Ij09dHlwZW9mIEU7aWYoUWUmJihhdD1RZS5lbmMpKWZvcihsZT0wO2xlPEE7KytsZSwrK3dlKShuZT1hdFt2ZT9FLmNoYXJBdChsZSk6RVtsZV1dKT4yNTU/KGFlW3dlXT1uZT4+OCxhZVsrK3dlXT0yNTUmbmUpOmFlW3dlXT0yNTUmbmU7ZWxzZXtpZighKHhlPURbVV0pKXRocm93IG5ldyBF'@; put 'cnJvcigiVW5yZWNvZ25pemVkIENQOiAiK1UpO3N3aXRjaCh4ZSl7Y2FzZSJ1dGY4IjppZihMJiZ2ZSl7d2U9KGFlPVkoRSx4ZSkpLmxlbmd0aDticmVha31mb3IobGU9MDtsZTxBOysrbGUsKyt3ZSkobmU9dmU/RS5jaGFyQ29kZUF0KGxlKTpFW2xlXS5jaGFyQ29kZUF0KDApKTw9MTI3P2Fl'@; put 'W3dlXT1uZTpuZTw9MjA0Nz8oYWVbd2VdPTE5MisobmU+PjYpLGFlWysrd2VdPTEyOCsoNjMmbmUpKTpuZT49NTUyOTYmJm5lPD01NzM0Mz8obmUtPTU1Mjk2LFplPSh2ZT9FLmNoYXJDb2RlQXQoKytsZSk6RVsrK2xlXS5jaGFyQ29kZUF0KDApKS01NjMyMCsobmU8PDEwKSxhZVt3ZV09MjQw'@; put 'KyhaZT4+PjE4JjcpLGFlWysrd2VdPTE0NCsoWmU+Pj4xMiY2MyksYWVbKyt3ZV09MTI4KyhaZT4+PjYmNjMpLGFlWysrd2VdPTEyOCsoNjMmWmUpKTooYWVbd2VdPTIyNCsobmU+PjEyKSxhZVsrK3dlXT0xMjgrKG5lPj42JjYzKSxhZVsrK3dlXT0xMjgrKDYzJm5lKSk7YnJlYWs7Y2FzZSJh'@; put 'c2NpaSI6aWYoTCYmInN0cmluZyI9PXR5cGVvZiBFKXt3ZT0oYWU9WShFLHhlKSkubGVuZ3RoO2JyZWFrfWZvcihsZT0wO2xlPEE7KytsZSwrK3dlKXtpZighKChuZT12ZT9FLmNoYXJDb2RlQXQobGUpOkVbbGVdLmNoYXJDb2RlQXQoMCkpPD0xMjcpKXRocm93IG5ldyBFcnJvcigiYmFkIGFz'@; put 'Y2lpICIrbmUpO2FlW3dlXT1uZX1icmVhaztjYXNlInV0ZjE2bGUiOmlmKEwmJiJzdHJpbmciPT10eXBlb2YgRSl7d2U9KGFlPVkoRSx4ZSkpLmxlbmd0aDticmVha31mb3IobGU9MDtsZTxBOysrbGUpbmU9dmU/RS5jaGFyQ29kZUF0KGxlKTpFW2xlXS5jaGFyQ29kZUF0KDApLGFlW3dlKytd'@; put 'PTI1NSZuZSxhZVt3ZSsrXT1uZT4+ODticmVhaztjYXNlInV0ZjE2YmUiOmZvcihsZT0wO2xlPEE7KytsZSluZT12ZT9FLmNoYXJDb2RlQXQobGUpOkVbbGVdLmNoYXJDb2RlQXQoMCksYWVbd2UrK109bmU+PjgsYWVbd2UrK109MjU1Jm5lO2JyZWFrO2Nhc2UidXRmMzJsZSI6Zm9yKGxlPTA7'@; put 'bGU8QTsrK2xlKShuZT12ZT9FLmNoYXJDb2RlQXQobGUpOkVbbGVdLmNoYXJDb2RlQXQoMCkpPj01NTI5NiYmbmU8PTU3MzQzJiYobmU9NjU1MzYrKG5lLTU1Mjk2PDwxMCkrKEVbKytsZV0uY2hhckNvZGVBdCgwKS01NjMyMCkpLGFlW3dlKytdPTI1NSZuZSxhZVt3ZSsrXT0yNTUmKG5lPj49'@; put 'OCksYWVbd2UrK109MjU1JihuZT4+PTgpLGFlW3dlKytdPTI1NSYobmU+Pj04KTticmVhaztjYXNlInV0ZjMyYmUiOmZvcihsZT0wO2xlPEE7KytsZSkobmU9dmU/RS5jaGFyQ29kZUF0KGxlKTpFW2xlXS5jaGFyQ29kZUF0KDApKT49NTUyOTYmJm5lPD01NzM0MyYmKG5lPTY1NTM2KyhuZS01'@; put 'NTI5Njw8MTApKyhFWysrbGVdLmNoYXJDb2RlQXQoMCktNTYzMjApKSxhZVt3ZSszXT0yNTUmbmUsYWVbd2UrMl09MjU1JihuZT4+PTgpLGFlW3dlKzFdPTI1NSYobmU+Pj04KSxhZVt3ZV09MjU1JihuZT4+PTgpLHdlKz00O2JyZWFrO2Nhc2UidXRmNyI6Zm9yKGxlPTA7bGU8QTtsZSsrKXt2'@; put 'YXIgcWU9dmU/RS5jaGFyQXQobGUpOkVbbGVdLmNoYXJBdCgwKTtpZigiKyIhPT1xZSlpZigiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODknKCksLS4vOj8iLmluZGV4T2YocWUpPi0xKWFlW3dlKytdPXFlLmNoYXJDb2RlQXQo'@; put 'MCk7ZWxzZXt2YXIgamU9VigxMjAxLHFlKTthZVt3ZSsrXT00MyxhZVt3ZSsrXT16ZS5jaGFyQ29kZUF0KGplWzBdPj4yKSxhZVt3ZSsrXT16ZS5jaGFyQ29kZUF0KCgoMyZqZVswXSk8PDQpKygoamVbMV18fDApPj40KSksYWVbd2UrK109emUuY2hhckNvZGVBdCgoKDE1JmplWzFdKTw8Mikr'@; put 'KChqZVsyXXx8MCk+PjYpKSxhZVt3ZSsrXT00NX1lbHNlIGFlW3dlKytdPTQzLGFlW3dlKytdPTQ1fWJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBtYWdpYzogIitVKyIgIitEW1VdKX19cmV0dXJuIGFlPWFlLnNsaWNlKDAsd2UpLEw/bSYmImJ1ZiIhPT1tPyJh'@; put 'cnIiIT09bT9hZS50b1N0cmluZygiYmluYXJ5Iik6W10uc2xpY2UuY2FsbChhZSk6YWU6InN0ciI9PW0/YWUubWFwKGopLmpvaW4oIiIpOmFlfSxoYXNjcDpmdW5jdGlvbihVKXtyZXR1cm4hKCFiW1VdJiYhRFtVXSl9LG1hZ2ljOkQsY2FjaGU6U2V9LGJ9KX0sMzE3OTooY2UsSik9Pnt2YXIg'@; put 'YixELF87IWZ1bmN0aW9uKHApe2lmKHR5cGVvZiBET19OT1RfRVhQT1JUX0pTWklQPiJ1IiljZS5leHBvcnRzPXAoKTtlbHNlIGlmKHR5cGVvZiBET19OT1RfRVhQT1JUX0pTWklQPiJ1IilKU1ppcFN5bmM9cCgpLEQ9W10sdm9pZCAwIT09KF89ImZ1bmN0aW9uIj09dHlwZW9mKGI9cCk/Yi5h'@; put 'cHBseShKLEQpOmIpJiYoY2UuZXhwb3J0cz1fKTtlbHNle3ZhciBOO3R5cGVvZiBnbG9iYWxUaGlzPCJ1Ij9OPWdsb2JhbFRoaXM6dHlwZW9mIHdpbmRvdzwidSI/Tj13aW5kb3c6dHlwZW9mIGdsb2JhbDwidSI/Tj1nbG9iYWw6dHlwZW9mICQ8InUiJiYkLmdsb2JhbD9OPSQuZ2xvYmFsOnR5'@; put 'cGVvZiBzZWxmPCJ1IiYmKE49c2VsZiksTi5KU1ppcFN5bmM9cCgpfX0oZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gRihILFIsail7ZnVuY3Rpb24gUChCLFcpe2lmKCFSW0JdKXtpZighSFtCXSl7aWYoTClyZXR1cm4gTChCLCEwKTt0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1v'@; put 'ZHVsZSAnIitCKyInIil9dmFyIFg9UltCXT17ZXhwb3J0czp7fX07SFtCXVswXS5jYWxsKFguZXhwb3J0cyxmdW5jdGlvbihRKXtyZXR1cm4gUChIW0JdWzFdW1FdfHxRKX0sWCxYLmV4cG9ydHMsRixILFIsail9cmV0dXJuIFJbQl0uZXhwb3J0c31mb3IodmFyIEw9dm9pZCAwLFk9MDtZPGou'@; put 'bGVuZ3RoO1krKylQKGpbWV0pO3JldHVybiBQfSh7MTpbZnVuY3Rpb24oRixILFIpeyJ1c2Ugc3RyaWN0Ijt2YXIgaj0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iO1IuZW5jb2RlPWZ1bmN0aW9uKFAsTCl7Zm9yKHZh'@; put 'ciBCLFcsWixYLFEscSx0ZSxZPSIiLGllPTA7aWU8UC5sZW5ndGg7KVg9KEI9UC5jaGFyQ29kZUF0KGllKyspKT4+MixRPSgzJkIpPDw0fChXPVAuY2hhckNvZGVBdChpZSsrKSk+PjQscT0oMTUmVyk8PDJ8KFo9UC5jaGFyQ29kZUF0KGllKyspKT4+Nix0ZT02MyZaLGlzTmFOKFcpP3E9dGU9'@; put 'NjQ6aXNOYU4oWikmJih0ZT02NCksWT1ZK2ouY2hhckF0KFgpK2ouY2hhckF0KFEpK2ouY2hhckF0KHEpK2ouY2hhckF0KHRlKTtyZXR1cm4gWX0sUi5kZWNvZGU9ZnVuY3Rpb24oUCxMKXt2YXIgVyxaLFgsUSxxLHRlLFk9IiIsaWU9MDtmb3IoUD1QLnJlcGxhY2UoL1teQS1aYS16MC05XCtc'@; put 'L1w9XS9nLCIiKTtpZTxQLmxlbmd0aDspWD1qLmluZGV4T2YoUC5jaGFyQXQoaWUrKykpLFc9KDE1JihRPWouaW5kZXhPZihQLmNoYXJBdChpZSsrKSkpKTw8NHwocT1qLmluZGV4T2YoUC5jaGFyQXQoaWUrKykpKT4+MixaPSgzJnEpPDw2fCh0ZT1qLmluZGV4T2YoUC5jaGFyQXQoaWUrKykp'@; put 'KSxZKz1TdHJpbmcuZnJvbUNoYXJDb2RlKFg8PDJ8UT4+NCksNjQhPXEmJihZKz1TdHJpbmcuZnJvbUNoYXJDb2RlKFcpKSw2NCE9dGUmJihZKz1TdHJpbmcuZnJvbUNoYXJDb2RlKFopKTtyZXR1cm4gWX19LHt9XSwyOltmdW5jdGlvbihGLEgsUil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGoo'@; put 'KXt0aGlzLmNvbXByZXNzZWRTaXplPTAsdGhpcy51bmNvbXByZXNzZWRTaXplPTAsdGhpcy5jcmMzMj0wLHRoaXMuY29tcHJlc3Npb25NZXRob2Q9bnVsbCx0aGlzLmNvbXByZXNzZWRDb250ZW50PW51bGx9ai5wcm90b3R5cGU9e2dldENvbnRlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0s'@; put 'Z2V0Q29tcHJlc3NlZENvbnRlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH19LEguZXhwb3J0cz1qfSx7fV0sMzpbZnVuY3Rpb24oRixILFIpeyJ1c2Ugc3RyaWN0IjtSLlNUT1JFPXttYWdpYzoiXDBcMCIsY29tcHJlc3M6ZnVuY3Rpb24oail7cmV0dXJuIGp9LHVuY29tcHJlc3M6ZnVuY3Rp'@; put 'b24oail7cmV0dXJuIGp9LGNvbXByZXNzSW5wdXRUeXBlOm51bGwsdW5jb21wcmVzc0lucHV0VHlwZTpudWxsfSxSLkRFRkxBVEU9RigiLi9mbGF0ZSIpfSx7Ii4vZmxhdGUiOjh9XSw0OltmdW5jdGlvbihGLEgsUil7InVzZSBzdHJpY3QiO3ZhciBqPUYoIi4vdXRpbHMiKSxQPVswLDE5OTY5'@; put 'NTk4OTQsMzk5MzkxOTc4OCwyNTY3NTI0Nzk0LDEyNDYzNDEzNywxODg2MDU3NjE1LDM5MTU2MjE2ODUsMjY1NzM5MjAzNSwyNDkyNjgyNzQsMjA0NDUwODMyNCwzNzcyMTE1MjMwLDI1NDcxNzc4NjQsMTYyOTQxOTk1LDIxMjU1NjEwMjEsMzg4NzYwNzA0NywyNDI4NDQ0MDQ5LDQ5ODUzNjU0'@; put 'OCwxNzg5OTI3NjY2LDQwODkwMTY2NDgsMjIyNzA2MTIxNCw0NTA1NDg4NjEsMTg0MzI1ODYwMyw0MTA3NTgwNzUzLDIyMTE2Nzc2MzksMzI1ODgzOTkwLDE2ODQ3NzcxNTIsNDI1MTEyMjA0MiwyMzIxOTI2NjM2LDMzNTYzMzQ4NywxNjYxMzY1NDY1LDQxOTUzMDI3NTUsMjM2NjExNTMxNyw5'@; put 'OTcwNzMwOTYsMTI4MTk1Mzg4NiwzNTc5ODU1MzMyLDI3MjQ2ODgyNDIsMTAwNjg4ODE0NSwxMjU4NjA3Njg3LDM1MjQxMDE2MjksMjc2ODk0MjQ0Myw5MDEwOTc3MjIsMTExOTAwMDY4NCwzNjg2NTE3MjA2LDI4OTgwNjU3MjgsODUzMDQ0NDUxLDExNzIyNjYxMDEsMzcwNTAxNTc1OSwyODgy'@; put 'NjE2NjY1LDY1MTc2Nzk4MCwxMzczNTAzNTQ2LDMzNjk1NTQzMDQsMzIxODEwNDU5OCw1NjU1MDcyNTMsMTQ1NDYyMTczMSwzNDg1MTExNzA1LDMwOTk0MzYzMDMsNjcxMjY2OTc0LDE1OTQxOTgwMjQsMzMyMjczMDkzMCwyOTcwMzQ3ODEyLDc5NTgzNTUyNywxNDgzMjMwMjI1LDMyNDQzNjcy'@; put 'NzUsMzA2MDE0OTU2NSwxOTk0MTQ2MTkyLDMxMTU4NTM0LDI1NjM5MDc3NzIsNDAyMzcxNzkzMCwxOTA3NDU5NDY1LDExMjYzNzIxNSwyNjgwMTUzMjUzLDM5MDQ0MjcwNTksMjAxMzc3NjI5MCwyNTE3MjIwMzYsMjUxNzIxNTM3NCwzNzc1ODMwMDQwLDIxMzc2NTY3NjMsMTQxMzc2ODEzLDI0'@; put 'MzkyNzc3MTksMzg2NTI3MTI5NywxODAyMTk1NDQ0LDQ3Njg2NDg2NiwyMjM4MDAxMzY4LDQwNjY1MDg4NzgsMTgxMjM3MDkyNSw0NTMwOTI3MzEsMjE4MTYyNTAyNSw0MTExNDUxMjIzLDE3MDYwODg5MDIsMzE0MDQyNzA0LDIzNDQ1MzIyMDIsNDI0MDAxNzUzMiwxNjU4NjU4MjcxLDM2NjYx'@; put 'OTk3NywyMzYyNjcwMzIzLDQyMjQ5OTQ0MDUsMTMwMzUzNTk2MCw5ODQ5NjE0ODYsMjc0NzAwNzA5MiwzNTY5MDM3NTM4LDEyNTYxNzA4MTcsMTAzNzYwNDMxMSwyNzY1MjEwNzMzLDM1NTQwNzk5OTUsMTEzMTAxNDUwNiw4Nzk2Nzk5OTYsMjkwOTI0MzQ2MiwzNjYzNzcxODU2LDExNDExMjQ0'@; put 'NjcsODU1ODQyMjc3LDI4NTI4MDE2MzEsMzcwODY0ODY0OSwxMzQyNTMzOTQ4LDY1NDQ1OTMwNiwzMTg4Mzk2MDQ4LDMzNzMwMTUxNzQsMTQ2NjQ3OTkwOSw1NDQxNzk2MzUsMzExMDUyMzkxMywzNDYyNTIyMDE1LDE1OTE2NzEwNTQsNzAyMTM4Nzc2LDI5NjY0NjA0NTAsMzM1Mjc5OTQxMiwx'@; put 'NTA0OTE4ODA3LDc4MzU1MTg3MywzMDgyNjQwNDQzLDMyMzM0NDI5ODksMzk4ODI5MjM4NCwyNTk2MjU0NjQ2LDYyMzE3MDY4LDE5NTc4MTA4NDIsMzkzOTg0NTk0NSwyNjQ3ODE2MTExLDgxNDcwOTk3LDE5NDM4MDM1MjMsMzgxNDkxODkzMCwyNDg5NTk2ODA0LDIyNTI3NDQzMCwyMDUzNzkw'@; put 'Mzc2LDM4MjYxNzU3NTUsMjQ2NjkwNjAxMywxNjc4MTY3NDMsMjA5NzY1MTM3Nyw0MDI3NTUyNTgwLDIyNjU0OTAzODYsNTAzNDQ0MDcyLDE3NjIwNTA4MTQsNDE1MDQxNzI0NSwyMTU0MTI5MzU1LDQyNjUyMjIyNSwxODUyNTA3ODc5LDQyNzUzMTM1MjYsMjMxMjMxNzkyMCwyODI3NTM2MjYs'@; put 'MTc0MjU1NTg1Miw0MTg5NzA4MTQzLDIzOTQ4Nzc5NDUsMzk3OTE3NzYzLDE2MjIxODM2MzcsMzYwNDM5MDg4OCwyNzE0ODY2NTU4LDk1MzcyOTczMiwxMzQwMDc2NjI2LDM1MTg3MTk5ODUsMjc5NzM2MDk5OSwxMDY4ODI4MzgxLDEyMTk2Mzg4NTksMzYyNDc0MTg1MCwyOTM2Njc1MTQ4LDkw'@; put 'NjE4NTQ2MiwxMDkwODEyNTEyLDM3NDc2NzIwMDMsMjgyNTM3OTY2OSw4MjkzMjkxMzUsMTE4MTMzNTE2MSwzNDEyMTc3ODA0LDMxNjA4MzQ4NDIsNjI4MDg1NDA4LDEzODI2MDUzNjYsMzQyMzM2OTEwOSwzMTM4MDc4NDY3LDU3MDU2MjIzMywxNDI2NDAwODE1LDMzMTczMTY1NDIsMjk5ODcz'@; put 'MzYwOCw3MzMyMzk5NTQsMTU1NTI2MTk1NiwzMjY4OTM1NTkxLDMwNTAzNjA2MjUsNzUyNDU5NDAzLDE1NDEzMjAyMjEsMjYwNzA3MTkyMCwzOTY1OTczMDMwLDE5Njk5MjI5NzIsNDA3MzU0OTgsMjYxNzgzNzIyNSwzOTQzNTc3MTUxLDE5MTMwODc4NzcsODM5MDgzNzEsMjUxMjM0MTYzNCwz'@; put 'ODAzNzQwNjkyLDIwNzUyMDg2MjIsMjEzMjYxMTEyLDI0NjMyNzI2MDMsMzg1NTk5MDI4NSwyMDk0ODU0MDcxLDE5ODk1ODg4MSwyMjYyMDI5MDEyLDQwNTcyNjA2MTAsMTc1OTM1OTk5Miw1MzQ0MTQxOTAsMjE3NjcxODU0MSw0MTM5MzI5MTE1LDE4NzM4MzYwMDEsNDE0NjY0NTY3LDIyODIy'@; put 'NDg5MzQsNDI3OTIwMDM2OCwxNzExNjg0NTU0LDI4NTI4MTExNiwyNDA1ODAxNzI3LDQxNjcyMTY3NDUsMTYzNDQ2Nzc5NSwzNzYyMjk3MDEsMjY4NTA2Nzg5NiwzNjA4MDA3NDA2LDEzMDg5MTg2MTIsOTU2NTQzOTM4LDI4MDg1NTUxMDUsMzQ5NTk1ODI2MywxMjMxNjM2MzAxLDEwNDc0Mjcw'@; put 'MzUsMjkzMjk1OTgxOCwzNjU0NzAzODM2LDEwODgzNTkyNzAsOTM2OTE4ZTMsMjg0NzcxNDg5OSwzNzM2ODM3ODI5LDEyMDI5MDA4NjMsODE3MjMzODk3LDMxODMzNDIxMDgsMzQwMTIzNzEzMCwxNDA0Mjc3NTUyLDYxNTgxODE1MCwzMTM0MjA3NDkzLDM0NTM0MjEyMDMsMTQyMzg1NzQ0OSw2'@; put 'MDE0NTA0MzEsMzAwOTgzNzYxNCwzMjk0NzEwNDU2LDE1NjcxMDM3NDYsNzExOTI4NzI0LDMwMjA2Njg0NzEsMzI3MjM4MDA2NSwxNTEwMzM0MjM1LDc1NTE2NzExN107SC5leHBvcnRzPWZ1bmN0aW9uKFksQil7aWYodHlwZW9mIFk+InUifHwhWS5sZW5ndGgpcmV0dXJuIDA7dmFyIFc9InN0'@; put 'cmluZyIhPT1qLmdldFR5cGVPZihZKTt0eXBlb2YgQj4idSImJihCPTApO3ZhciBRPTA7Qj1+Qjtmb3IodmFyIHE9MCx0ZT1ZLmxlbmd0aDtxPHRlO3ErKylRPVc/WVtxXTpZLmNoYXJDb2RlQXQocSksQj1CPj4+OF5QWzI1NSYoQl5RKV07cmV0dXJufkJ9fSx7Ii4vdXRpbHMiOjIxfV0sNTpb'@; put 'ZnVuY3Rpb24oRixILFIpeyJ1c2Ugc3RyaWN0Ijt2YXIgaj1GKCIuL3V0aWxzIik7ZnVuY3Rpb24gUChMKXt0aGlzLmRhdGE9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMuaW5kZXg9MH1QLnByb3RvdHlwZT17Y2hlY2tPZmZzZXQ6ZnVuY3Rpb24oTCl7dGhpcy5jaGVja0luZGV4KHRoaXMuaW5k'@; put 'ZXgrTCl9LGNoZWNrSW5kZXg6ZnVuY3Rpb24oTCl7aWYodGhpcy5sZW5ndGg8THx8TDwwKXRocm93IG5ldyBFcnJvcigiRW5kIG9mIGRhdGEgcmVhY2hlZCAoZGF0YSBsZW5ndGggPSAiK3RoaXMubGVuZ3RoKyIsIGFza2VkIGluZGV4ID0gIitMKyIpLiBDb3JydXB0ZWQgemlwID8iKX0sc2V0'@; put 'SW5kZXg6ZnVuY3Rpb24oTCl7dGhpcy5jaGVja0luZGV4KEwpLHRoaXMuaW5kZXg9TH0sc2tpcDpmdW5jdGlvbihMKXt0aGlzLnNldEluZGV4KHRoaXMuaW5kZXgrTCl9LGJ5dGVBdDpmdW5jdGlvbihMKXt9LHJlYWRJbnQ6ZnVuY3Rpb24oTCl7dmFyIEIsWT0wO2Zvcih0aGlzLmNoZWNrT2Zm'@; put 'c2V0KEwpLEI9dGhpcy5pbmRleCtMLTE7Qj49dGhpcy5pbmRleDtCLS0pWT0oWTw8OCkrdGhpcy5ieXRlQXQoQik7cmV0dXJuIHRoaXMuaW5kZXgrPUwsWX0scmVhZFN0cmluZzpmdW5jdGlvbihMKXtyZXR1cm4gai50cmFuc2Zvcm1Ubygic3RyaW5nIix0aGlzLnJlYWREYXRhKEwpKX0scmVh'@; put 'ZERhdGE6ZnVuY3Rpb24oTCl7fSxsYXN0SW5kZXhPZlNpZ25hdHVyZTpmdW5jdGlvbihMKXt9LHJlYWREYXRlOmZ1bmN0aW9uKCl7dmFyIEw9dGhpcy5yZWFkSW50KDQpO3JldHVybiBuZXcgRGF0ZSgxOTgwKyhMPj4yNSYxMjcpLChMPj4yMSYxNSktMSxMPj4xNiYzMSxMPj4xMSYzMSxMPj41'@; put 'JjYzLCgzMSZMKTw8MSl9fSxILmV4cG9ydHM9UH0seyIuL3V0aWxzIjoyMX1dLDY6W2Z1bmN0aW9uKEYsSCxSKXsidXNlIHN0cmljdCI7Ui5iYXNlNjQ9ITEsUi5iaW5hcnk9ITEsUi5kaXI9ITEsUi5jcmVhdGVGb2xkZXJzPSExLFIuZGF0ZT1udWxsLFIuY29tcHJlc3Npb249bnVsbCxSLmNv'@; put 'bW1lbnQ9bnVsbH0se31dLDc6W2Z1bmN0aW9uKEYsSCxSKXsidXNlIHN0cmljdCI7dmFyIGo9RigiLi91dGlscyIpO1Iuc3RyaW5nMmJpbmFyeT1mdW5jdGlvbihQKXtyZXR1cm4gai5zdHJpbmcyYmluYXJ5KFApfSxSLnN0cmluZzJVaW50OEFycmF5PWZ1bmN0aW9uKFApe3JldHVybiBqLnRy'@; put 'YW5zZm9ybVRvKCJ1aW50OGFycmF5IixQKX0sUi51aW50OEFycmF5MlN0cmluZz1mdW5jdGlvbihQKXtyZXR1cm4gai50cmFuc2Zvcm1Ubygic3RyaW5nIixQKX0sUi5zdHJpbmcyQmxvYj1mdW5jdGlvbihQKXt2YXIgTD1qLnRyYW5zZm9ybVRvKCJhcnJheWJ1ZmZlciIsUCk7cmV0dXJuIGou'@; put 'YXJyYXlCdWZmZXIyQmxvYihMKX0sUi5hcnJheUJ1ZmZlcjJCbG9iPWZ1bmN0aW9uKFApe3JldHVybiBqLmFycmF5QnVmZmVyMkJsb2IoUCl9LFIudHJhbnNmb3JtVG89ZnVuY3Rpb24oUCxMKXtyZXR1cm4gai50cmFuc2Zvcm1UbyhQLEwpfSxSLmdldFR5cGVPZj1mdW5jdGlvbihQKXtyZXR1'@; put 'cm4gai5nZXRUeXBlT2YoUCl9LFIuY2hlY2tTdXBwb3J0PWZ1bmN0aW9uKFApe3JldHVybiBqLmNoZWNrU3VwcG9ydChQKX0sUi5NQVhfVkFMVUVfMTZCSVRTPWouTUFYX1ZBTFVFXzE2QklUUyxSLk1BWF9WQUxVRV8zMkJJVFM9ai5NQVhfVkFMVUVfMzJCSVRTLFIucHJldHR5PWZ1bmN0aW9u'@; put 'KFApe3JldHVybiBqLnByZXR0eShQKX0sUi5maW5kQ29tcHJlc3Npb249ZnVuY3Rpb24oUCl7cmV0dXJuIGouZmluZENvbXByZXNzaW9uKFApfSxSLmlzUmVnRXhwPWZ1bmN0aW9uKFApe3JldHVybiBqLmlzUmVnRXhwKFApfX0seyIuL3V0aWxzIjoyMX1dLDg6W2Z1bmN0aW9uKEYsSCxSKXsi'@; put 'dXNlIHN0cmljdCI7dmFyIGo9dHlwZW9mIFVpbnQ4QXJyYXk8InUiJiZ0eXBlb2YgVWludDE2QXJyYXk8InUiJiZ0eXBlb2YgVWludDMyQXJyYXk8InUiLFA9RigicGFrbyIpO1IudW5jb21wcmVzc0lucHV0VHlwZT1qPyJ1aW50OGFycmF5IjoiYXJyYXkiLFIuY29tcHJlc3NJbnB1dFR5cGU9'@; put 'aj8idWludDhhcnJheSI6ImFycmF5IixSLm1hZ2ljPSJcYlwwIixSLmNvbXByZXNzPWZ1bmN0aW9uKEwpe3JldHVybiBQLmRlZmxhdGVSYXcoTCl9LFIudW5jb21wcmVzcz1mdW5jdGlvbihMKXtyZXR1cm4gUC5pbmZsYXRlUmF3KEwpfX0se3Bha286MjR9XSw5OltmdW5jdGlvbihGLEgsUil7'@; put 'InVzZSBzdHJpY3QiO3ZhciBqPUYoIi4vYmFzZTY0Iik7ZnVuY3Rpb24gUChMLFkpe2lmKCEodGhpcyBpbnN0YW5jZW9mIFApKXJldHVybiBuZXcgUChMLFkpO3RoaXMuZmlsZXM9e30sdGhpcy5jb21tZW50PW51bGwsdGhpcy5yb290PSIiLEwmJnRoaXMubG9hZChMLFkpLHRoaXMuY2xvbmU9'@; put 'ZnVuY3Rpb24oKXt2YXIgQj1uZXcgUDtmb3IodmFyIFcgaW4gdGhpcykiZnVuY3Rpb24iIT10eXBlb2YgdGhpc1tXXSYmKEJbV109dGhpc1tXXSk7cmV0dXJuIEJ9fShQLnByb3RvdHlwZT1GKCIuL29iamVjdCIpKS5sb2FkPUYoIi4vbG9hZCIpLFAuc3VwcG9ydD1GKCIuL3N1cHBvcnQiKSxQ'@; put 'LmRlZmF1bHRzPUYoIi4vZGVmYXVsdHMiKSxQLnV0aWxzPUYoIi4vZGVwcmVjYXRlZFB1YmxpY1V0aWxzIiksUC5iYXNlNjQ9e2VuY29kZTpmdW5jdGlvbihMKXtyZXR1cm4gai5lbmNvZGUoTCl9LGRlY29kZTpmdW5jdGlvbihMKXtyZXR1cm4gai5kZWNvZGUoTCl9fSxQLmNvbXByZXNzaW9u'@; put 'cz1GKCIuL2NvbXByZXNzaW9ucyIpLEguZXhwb3J0cz1QfSx7Ii4vYmFzZTY0IjoxLCIuL2NvbXByZXNzaW9ucyI6MywiLi9kZWZhdWx0cyI6NiwiLi9kZXByZWNhdGVkUHVibGljVXRpbHMiOjcsIi4vbG9hZCI6MTAsIi4vb2JqZWN0IjoxMywiLi9zdXBwb3J0IjoxN31dLDEwOltmdW5jdGlv'@; put 'bihGLEgsUil7InVzZSBzdHJpY3QiO3ZhciBqPUYoIi4vYmFzZTY0IiksUD1GKCIuL3ppcEVudHJpZXMiKTtILmV4cG9ydHM9ZnVuY3Rpb24oTCxZKXt2YXIgQixXLFosWDtmb3IoKFk9WXx8e30pLmJhc2U2NCYmKEw9ai5kZWNvZGUoTCkpLEI9KFc9bmV3IFAoTCxZKSkuZmlsZXMsWj0wO1o8'@; put 'Qi5sZW5ndGg7WisrKXRoaXMuZmlsZSgoWD1CW1pdKS5maWxlTmFtZSxYLmRlY29tcHJlc3NlZCx7YmluYXJ5OiEwLG9wdGltaXplZEJpbmFyeVN0cmluZzohMCxkYXRlOlguZGF0ZSxkaXI6WC5kaXIsY29tbWVudDpYLmZpbGVDb21tZW50Lmxlbmd0aD9YLmZpbGVDb21tZW50Om51bGwsY3Jl'@; put 'YXRlRm9sZGVyczpZLmNyZWF0ZUZvbGRlcnN9KTtyZXR1cm4gVy56aXBDb21tZW50Lmxlbmd0aCYmKHRoaXMuY29tbWVudD1XLnppcENvbW1lbnQpLHRoaXN9fSx7Ii4vYmFzZTY0IjoxLCIuL3ppcEVudHJpZXMiOjIyfV0sMTE6W2Z1bmN0aW9uKEYsSCxSKXsoZnVuY3Rpb24oail7InVzZSBz'@; put 'dHJpY3QiO3ZhciBQPWZ1bmN0aW9uKCl7fTtpZih0eXBlb2YgajwidSIpe3ZhciBMPSFqLmZyb207aWYoIUwpdHJ5e2ouZnJvbSgiZm9vIiwidXRmOCIpfWNhdGNoe0w9ITB9UD1MP2Z1bmN0aW9uKFksQil7cmV0dXJuIEI/bmV3IGooWSxCKTpuZXcgaihZKX06ai5mcm9tLmJpbmQoaiksai5h'@; put 'bGxvY3x8KGouYWxsb2M9ZnVuY3Rpb24oWSl7cmV0dXJuIG5ldyBqKFkpfSl9SC5leHBvcnRzPWZ1bmN0aW9uKFksQil7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBZP2ouYWxsb2MoWSk6UChZLEIpfSxILmV4cG9ydHMudGVzdD1mdW5jdGlvbihZKXtyZXR1cm4gai5pc0J1ZmZlcihZKX19KS5j'@; put 'YWxsKHRoaXMsdHlwZW9mIEJ1ZmZlcjwidSI/QnVmZmVyOnZvaWQgMCl9LHt9XSwxMjpbZnVuY3Rpb24oRixILFIpeyJ1c2Ugc3RyaWN0Ijt2YXIgaj1GKCIuL3VpbnQ4QXJyYXlSZWFkZXIiKTtmdW5jdGlvbiBQKEwpe3RoaXMuZGF0YT1MLHRoaXMubGVuZ3RoPXRoaXMuZGF0YS5sZW5ndGgs'@; put 'dGhpcy5pbmRleD0wfShQLnByb3RvdHlwZT1uZXcgaikucmVhZERhdGE9ZnVuY3Rpb24oTCl7dGhpcy5jaGVja09mZnNldChMKTt2YXIgWT10aGlzLmRhdGEuc2xpY2UodGhpcy5pbmRleCx0aGlzLmluZGV4K0wpO3JldHVybiB0aGlzLmluZGV4Kz1MLFl9LEguZXhwb3J0cz1QfSx7Ii4vdWlu'@; put 'dDhBcnJheVJlYWRlciI6MTh9XSwxMzpbZnVuY3Rpb24oRixILFIpeyJ1c2Ugc3RyaWN0Ijt2YXIgaj1GKCIuL3N1cHBvcnQiKSxQPUYoIi4vdXRpbHMiKSxMPUYoIi4vY3JjMzIiKSxZPUYoIi4vc2lnbmF0dXJlIiksQj1GKCIuL2RlZmF1bHRzIiksVz1GKCIuL2Jhc2U2NCIpLFo9RigiLi9j'@; put 'b21wcmVzc2lvbnMiKSxYPUYoIi4vY29tcHJlc3NlZE9iamVjdCIpLFE9RigiLi9ub2RlQnVmZmVyIikscT1GKCIuL3V0ZjgiKSx0ZT1GKCIuL3N0cmluZ1dyaXRlciIpLGllPUYoIi4vdWludDhBcnJheVdyaXRlciIpLHNlPWZ1bmN0aW9uKFUpe2lmKFUuX2RhdGEgaW5zdGFuY2VvZiBYJiYo'@; put 'VS5fZGF0YT1VLl9kYXRhLmdldENvbnRlbnQoKSxVLm9wdGlvbnMuYmluYXJ5PSEwLFUub3B0aW9ucy5iYXNlNjQ9ITEsInVpbnQ4YXJyYXkiPT09UC5nZXRUeXBlT2YoVS5fZGF0YSkpKXt2YXIgRT1VLl9kYXRhO1UuX2RhdGE9bmV3IFVpbnQ4QXJyYXkoRS5sZW5ndGgpLDAhPT1FLmxlbmd0'@; put 'aCYmVS5fZGF0YS5zZXQoRSwwKX1yZXR1cm4gVS5fZGF0YX0sZ2U9ZnVuY3Rpb24oVSl7dmFyIEU9c2UoVSk7cmV0dXJuInN0cmluZyI9PT1QLmdldFR5cGVPZihFKT8hVS5vcHRpb25zLmJpbmFyeSYmai5ub2RlYnVmZmVyP1EoRSwidXRmLTgiKTpVLmFzQmluYXJ5KCk6RX0sX2U9ZnVuY3Rp'@; put 'b24oVSl7dmFyIEU9c2UodGhpcyk7cmV0dXJuIG51bGw9PT1FfHx0eXBlb2YgRT4idSI/IiI6KHRoaXMub3B0aW9ucy5iYXNlNjQmJihFPVcuZGVjb2RlKEUpKSxFPVUmJnRoaXMub3B0aW9ucy5iaW5hcnk/Vi51dGY4ZGVjb2RlKEUpOlAudHJhbnNmb3JtVG8oInN0cmluZyIsRSksIVUmJiF0'@; put 'aGlzLm9wdGlvbnMuYmluYXJ5JiYoRT1QLnRyYW5zZm9ybVRvKCJzdHJpbmciLFYudXRmOGVuY29kZShFKSkpLEUpfSxUZT1mdW5jdGlvbihVLEUsbSl7dGhpcy5uYW1lPVUsdGhpcy5kaXI9bS5kaXIsdGhpcy5kYXRlPW0uZGF0ZSx0aGlzLmNvbW1lbnQ9bS5jb21tZW50LHRoaXMuX2RhdGE9'@; put 'RSx0aGlzLm9wdGlvbnM9bSx0aGlzLl9pbml0aWFsTWV0YWRhdGE9e2RpcjptLmRpcixkYXRlOm0uZGF0ZX19O1RlLnByb3RvdHlwZT17YXNUZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIF9lLmNhbGwodGhpcywhMCl9LGFzQmluYXJ5OmZ1bmN0aW9uKCl7cmV0dXJuIF9lLmNhbGwodGhpcywhMSl9'@; put 'LGFzTm9kZUJ1ZmZlcjpmdW5jdGlvbigpe3ZhciBVPWdlKHRoaXMpO3JldHVybiBQLnRyYW5zZm9ybVRvKCJub2RlYnVmZmVyIixVKX0sYXNVaW50OEFycmF5OmZ1bmN0aW9uKCl7dmFyIFU9Z2UodGhpcyk7cmV0dXJuIFAudHJhbnNmb3JtVG8oInVpbnQ4YXJyYXkiLFUpfSxhc0FycmF5QnVm'@; put 'ZmVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXNVaW50OEFycmF5KCkuYnVmZmVyfX07dmFyIFNlPWZ1bmN0aW9uKFUsRSl7dmFyIEEsbT0iIjtmb3IoQT0wO0E8RTtBKyspbSs9U3RyaW5nLmZyb21DaGFyQ29kZSgyNTUmVSksVT4+Pj04O3JldHVybiBtfSx6ZT1mdW5jdGlvbigpe3ZhciBF'@; put 'LG0sVT17fTtmb3IoRT0wO0U8YXJndW1lbnRzLmxlbmd0aDtFKyspZm9yKG0gaW4gYXJndW1lbnRzW0VdKWFyZ3VtZW50c1tFXS5oYXNPd25Qcm9wZXJ0eShtKSYmdHlwZW9mIFVbbV0+InUiJiYoVVttXT1hcmd1bWVudHNbRV1bbV0pO3JldHVybiBVfSxnPWZ1bmN0aW9uKFUsRSxtKXt2YXIg'@; put 'YWUsQT1QLmdldFR5cGVPZihFKTtpZihtPWZ1bmN0aW9uKFUpe3JldHVybiEwPT09KFU9VXx8e30pLmJhc2U2NCYmbnVsbD09VS5iaW5hcnkmJihVLmJpbmFyeT0hMCksKFU9emUoVSxCKSkuZGF0ZT1VLmRhdGV8fG5ldyBEYXRlLG51bGwhPT1VLmNvbXByZXNzaW9uJiYoVS5jb21wcmVzc2lv'@; put 'bj1VLmNvbXByZXNzaW9uLnRvVXBwZXJDYXNlKCkpLFV9KG0pLG0uY3JlYXRlRm9sZGVycyYmKGFlPXkoVSkpJiZ4LmNhbGwodGhpcyxhZSwhMCksbS5kaXJ8fG51bGw9PT1FfHx0eXBlb2YgRT4idSIpbS5iYXNlNjQ9ITEsbS5iaW5hcnk9ITEsRT1udWxsO2Vsc2UgaWYoInN0cmluZyI9PT1B'@; put 'KW0uYmluYXJ5JiYhbS5iYXNlNjQmJiEwIT09bS5vcHRpbWl6ZWRCaW5hcnlTdHJpbmcmJihFPVAuc3RyaW5nMmJpbmFyeShFKSk7ZWxzZXtpZihtLmJhc2U2ND0hMSxtLmJpbmFyeT0hMCwhKEF8fEUgaW5zdGFuY2VvZiBYKSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBkYXRhIG9mICciK1UrIicg'@; put 'aXMgaW4gYW4gdW5zdXBwb3J0ZWQgZm9ybWF0ICEiKTsiYXJyYXlidWZmZXIiPT09QSYmKEU9UC50cmFuc2Zvcm1UbygidWludDhhcnJheSIsRSkpfXZhciBuZT1uZXcgVGUoVSxFLG0pO3JldHVybiB0aGlzLmZpbGVzW1VdPW5lLG5lfSx5PWZ1bmN0aW9uKFUpeyIvIj09VS5zbGljZSgtMSkm'@; put 'JihVPVUuc3Vic3RyaW5nKDAsVS5sZW5ndGgtMSkpO3ZhciBFPVUubGFzdEluZGV4T2YoIi8iKTtyZXR1cm4gRT4wP1Uuc3Vic3RyaW5nKDAsRSk6IiJ9LHg9ZnVuY3Rpb24oVSxFKXtyZXR1cm4iLyIhPVUuc2xpY2UoLTEpJiYoVSs9Ii8iKSxFPXR5cGVvZiBFPCJ1IiYmRSx0aGlzLmZpbGVz'@; put 'W1VdfHxnLmNhbGwodGhpcyxVLG51bGwse2RpcjohMCxjcmVhdGVGb2xkZXJzOkV9KSx0aGlzLmZpbGVzW1VdfSxDPWZ1bmN0aW9uKFUsRSl7dmFyIEEsbT1uZXcgWDtyZXR1cm4gVS5fZGF0YSBpbnN0YW5jZW9mIFg/KG0udW5jb21wcmVzc2VkU2l6ZT1VLl9kYXRhLnVuY29tcHJlc3NlZFNp'@; put 'emUsbS5jcmMzMj1VLl9kYXRhLmNyYzMyLDA9PT1tLnVuY29tcHJlc3NlZFNpemV8fFUuZGlyPyhFPVouU1RPUkUsbS5jb21wcmVzc2VkQ29udGVudD0iIixtLmNyYzMyPTApOlUuX2RhdGEuY29tcHJlc3Npb25NZXRob2Q9PT1FLm1hZ2ljP20uY29tcHJlc3NlZENvbnRlbnQ9VS5fZGF0YS5n'@; put 'ZXRDb21wcmVzc2VkQ29udGVudCgpOihBPVUuX2RhdGEuZ2V0Q29udGVudCgpLG0uY29tcHJlc3NlZENvbnRlbnQ9RS5jb21wcmVzcyhQLnRyYW5zZm9ybVRvKEUuY29tcHJlc3NJbnB1dFR5cGUsQSkpKSk6KCghKEE9Z2UoVSkpfHwwPT09QS5sZW5ndGh8fFUuZGlyKSYmKEU9Wi5TVE9SRSxB'@; put 'PSIiKSxtLnVuY29tcHJlc3NlZFNpemU9QS5sZW5ndGgsbS5jcmMzMj1MKEEpLG0uY29tcHJlc3NlZENvbnRlbnQ9RS5jb21wcmVzcyhQLnRyYW5zZm9ybVRvKEUuY29tcHJlc3NJbnB1dFR5cGUsQSkpKSxtLmNvbXByZXNzZWRTaXplPW0uY29tcHJlc3NlZENvbnRlbnQubGVuZ3RoLG0uY29t'@; put 'cHJlc3Npb25NZXRob2Q9RS5tYWdpYyxtfSxUPWZ1bmN0aW9uKFUsRSxtLEEpe3ZhciB4ZSx2ZSxGZSxSZSxuZT1QLnRyYW5zZm9ybVRvKCJzdHJpbmciLHEudXRmOGVuY29kZShFLm5hbWUpKSxsZT1FLmNvbW1lbnR8fCIiLHdlPVAudHJhbnNmb3JtVG8oInN0cmluZyIscS51dGY4ZW5jb2Rl'@; put 'KGxlKSksWmU9bmUubGVuZ3RoIT09RS5uYW1lLmxlbmd0aCxRZT13ZS5sZW5ndGghPT1sZS5sZW5ndGgsYXQ9RS5vcHRpb25zLHFlPSIiLGplPSIiLEFlPSIiO0ZlPUUuX2luaXRpYWxNZXRhZGF0YS5kaXIhPT1FLmRpcj9FLmRpcjphdC5kaXIseGU9KFJlPUUuX2luaXRpYWxNZXRhZGF0YS5k'@; put 'YXRlIT09RS5kYXRlP0UuZGF0ZTphdC5kYXRlKS5nZXRIb3VycygpLHhlPDw9Nix4ZXw9UmUuZ2V0TWludXRlcygpLHhlPDw9NSx4ZXw9UmUuZ2V0U2Vjb25kcygpLzIsdmU9UmUuZ2V0RnVsbFllYXIoKS0xOTgwLHZlPDw9NCx2ZXw9UmUuZ2V0TW9udGgoKSsxLHZlPDw9NSx2ZXw9UmUuZ2V0'@; put 'RGF0ZSgpLFplJiYoamU9U2UoMSwxKStTZShMKG5lKSw0KStuZSxxZSs9InVwIitTZShqZS5sZW5ndGgsMikramUpLFFlJiYoQWU9U2UoMSwxKStTZSh0aGlzLmNyYzMyKHdlKSw0KSt3ZSxxZSs9InVjIitTZShBZS5sZW5ndGgsMikrQWUpO3ZhciBJZT0iIjtyZXR1cm4gSWUrPSJcblwwIixJ'@; put 'ZSs9WmV8fFFlPyJcMFxiIjoiXDBcMCIsSWUrPW0uY29tcHJlc3Npb25NZXRob2QsSWUrPVNlKHhlLDIpLEllKz1TZSh2ZSwyKSxJZSs9U2UobS5jcmMzMiw0KSxJZSs9U2UobS5jb21wcmVzc2VkU2l6ZSw0KSxJZSs9U2UobS51bmNvbXByZXNzZWRTaXplLDQpLEllKz1TZShuZS5sZW5ndGgs'@; put 'MiksSWUrPVNlKHFlLmxlbmd0aCwyKSx7ZmlsZVJlY29yZDpZLkxPQ0FMX0ZJTEVfSEVBREVSK0llK25lK3FlLGRpclJlY29yZDpZLkNFTlRSQUxfRklMRV9IRUFERVIrIlx4MTRcMCIrSWUrU2Uod2UubGVuZ3RoLDIpKyJcMFwwXDBcMCIrKCEwPT09RmU/Ilx4MTBcMFwwXDAiOiJcMFwwXDBc'@; put 'MCIpK1NlKEEsNCkrbmUrcWUrd2UsY29tcHJlc3NlZE9iamVjdDptfX0sVj17bG9hZDpmdW5jdGlvbihVLEUpe3Rocm93IG5ldyBFcnJvcigiTG9hZCBtZXRob2QgaXMgbm90IGRlZmluZWQuIElzIHRoZSBmaWxlIGpzemlwLWxvYWQuanMgaW5jbHVkZWQgPyIpfSxmaWx0ZXI6ZnVuY3Rpb24o'@; put 'VSl7dmFyIG0sQSxhZSxuZSxFPVtdO2ZvcihtIGluIHRoaXMuZmlsZXMpdGhpcy5maWxlcy5oYXNPd25Qcm9wZXJ0eShtKSYmKG5lPW5ldyBUZSgoYWU9dGhpcy5maWxlc1ttXSkubmFtZSxhZS5fZGF0YSx6ZShhZS5vcHRpb25zKSksQT1tLnNsaWNlKHRoaXMucm9vdC5sZW5ndGgsbS5sZW5n'@; put 'dGgpLG0uc2xpY2UoMCx0aGlzLnJvb3QubGVuZ3RoKT09PXRoaXMucm9vdCYmVShBLG5lKSYmRS5wdXNoKG5lKSk7cmV0dXJuIEV9LGZpbGU6ZnVuY3Rpb24oVSxFLG0pe2lmKDE9PT1hcmd1bWVudHMubGVuZ3RoKXtpZihQLmlzUmVnRXhwKFUpKXt2YXIgQT1VO3JldHVybiB0aGlzLmZpbHRl'@; put 'cihmdW5jdGlvbihhZSxuZSl7cmV0dXJuIW5lLmRpciYmQS50ZXN0KGFlKX0pfXJldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbihhZSxuZSl7cmV0dXJuIW5lLmRpciYmYWU9PT1VfSlbMF18fG51bGx9cmV0dXJuIGcuY2FsbCh0aGlzLFU9dGhpcy5yb290K1UsRSxtKSx0aGlzfSxmb2xkZXI6'@; put 'ZnVuY3Rpb24oVSl7aWYoIVUpcmV0dXJuIHRoaXM7aWYoUC5pc1JlZ0V4cChVKSlyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oYWUsbmUpe3JldHVybiBuZS5kaXImJlUudGVzdChhZSl9KTt2YXIgbT14LmNhbGwodGhpcyx0aGlzLnJvb3QrVSksQT10aGlzLmNsb25lKCk7cmV0dXJuIEEu'@; put 'cm9vdD1tLm5hbWUsQX0scmVtb3ZlOmZ1bmN0aW9uKFUpe3ZhciBFPXRoaXMuZmlsZXNbVT10aGlzLnJvb3QrVV07aWYoRXx8KCIvIiE9VS5zbGljZSgtMSkmJihVKz0iLyIpLEU9dGhpcy5maWxlc1tVXSksRSYmIUUuZGlyKWRlbGV0ZSB0aGlzLmZpbGVzW1VdO2Vsc2UgZm9yKHZhciBtPXRo'@; put 'aXMuZmlsdGVyKGZ1bmN0aW9uKGFlLG5lKXtyZXR1cm4gbmUubmFtZS5zbGljZSgwLFUubGVuZ3RoKT09PVV9KSxBPTA7QTxtLmxlbmd0aDtBKyspZGVsZXRlIHRoaXMuZmlsZXNbbVtBXS5uYW1lXTtyZXR1cm4gdGhpc30sZ2VuZXJhdGU6ZnVuY3Rpb24oVSl7VT16ZShVfHx7fSx7YmFzZTY0'@; put 'OiEwLGNvbXByZXNzaW9uOiJTVE9SRSIsdHlwZToiYmFzZTY0Iixjb21tZW50Om51bGx9KSxQLmNoZWNrU3VwcG9ydChVLnR5cGUpO3ZhciBhZSxuZSxxZSxFPVtdLG09MCxBPTAsbGU9UC50cmFuc2Zvcm1Ubygic3RyaW5nIix0aGlzLnV0ZjhlbmNvZGUoVS5jb21tZW50fHx0aGlzLmNvbW1l'@; put 'bnR8fCIiKSk7Zm9yKHZhciB3ZSBpbiB0aGlzLmZpbGVzKWlmKHRoaXMuZmlsZXMuaGFzT3duUHJvcGVydHkod2UpKXt2YXIgWmU9dGhpcy5maWxlc1t3ZV0sUWU9WmUub3B0aW9ucy5jb21wcmVzc2lvbnx8VS5jb21wcmVzc2lvbi50b1VwcGVyQ2FzZSgpLGF0PVpbUWVdO2lmKCFhdCl0aHJv'@; put 'dyBuZXcgRXJyb3IoUWUrIiBpcyBub3QgYSB2YWxpZCBjb21wcmVzc2lvbiBtZXRob2QgISIpO3ZhciB4ZT1DLmNhbGwodGhpcyxaZSxhdCksdmU9VC5jYWxsKHRoaXMsd2UsWmUseGUsbSk7bSs9dmUuZmlsZVJlY29yZC5sZW5ndGgreGUuY29tcHJlc3NlZFNpemUsQSs9dmUuZGlyUmVjb3Jk'@; put 'Lmxlbmd0aCxFLnB1c2godmUpfXFlPVkuQ0VOVFJBTF9ESVJFQ1RPUllfRU5EKyJcMFwwXDBcMCIrU2UoRS5sZW5ndGgsMikrU2UoRS5sZW5ndGgsMikrU2UoQSw0KStTZShtLDQpK1NlKGxlLmxlbmd0aCwyKStsZTt2YXIgamU9VS50eXBlLnRvTG93ZXJDYXNlKCk7Zm9yKGFlPSJ1aW50OGFy'@; put 'cmF5Ij09PWplfHwiYXJyYXlidWZmZXIiPT09amV8fCJibG9iIj09PWplfHwibm9kZWJ1ZmZlciI9PT1qZT9uZXcgaWUobStBK3FlLmxlbmd0aCk6bmV3IHRlKG0rQStxZS5sZW5ndGgpLG5lPTA7bmU8RS5sZW5ndGg7bmUrKylhZS5hcHBlbmQoRVtuZV0uZmlsZVJlY29yZCksYWUuYXBwZW5k'@; put 'KEVbbmVdLmNvbXByZXNzZWRPYmplY3QuY29tcHJlc3NlZENvbnRlbnQpO2ZvcihuZT0wO25lPEUubGVuZ3RoO25lKyspYWUuYXBwZW5kKEVbbmVdLmRpclJlY29yZCk7YWUuYXBwZW5kKHFlKTt2YXIgQWU9YWUuZmluYWxpemUoKTtzd2l0Y2goVS50eXBlLnRvTG93ZXJDYXNlKCkpe2Nhc2Ui'@; put 'dWludDhhcnJheSI6Y2FzZSJhcnJheWJ1ZmZlciI6Y2FzZSJub2RlYnVmZmVyIjpyZXR1cm4gUC50cmFuc2Zvcm1UbyhVLnR5cGUudG9Mb3dlckNhc2UoKSxBZSk7Y2FzZSJibG9iIjpyZXR1cm4gUC5hcnJheUJ1ZmZlcjJCbG9iKFAudHJhbnNmb3JtVG8oImFycmF5YnVmZmVyIixBZSkpO2Nh'@; put 'c2UiYmFzZTY0IjpyZXR1cm4gVS5iYXNlNjQ/Vy5lbmNvZGUoQWUpOkFlO2RlZmF1bHQ6cmV0dXJuIEFlfX0sY3JjMzI6ZnVuY3Rpb24oVSxFKXtyZXR1cm4gTChVLEUpfSx1dGY4ZW5jb2RlOmZ1bmN0aW9uKFUpe3JldHVybiBQLnRyYW5zZm9ybVRvKCJzdHJpbmciLHEudXRmOGVuY29kZShV'@; put 'KSl9LHV0ZjhkZWNvZGU6ZnVuY3Rpb24oVSl7cmV0dXJuIHEudXRmOGRlY29kZShVKX19O0guZXhwb3J0cz1WfSx7Ii4vYmFzZTY0IjoxLCIuL2NvbXByZXNzZWRPYmplY3QiOjIsIi4vY29tcHJlc3Npb25zIjozLCIuL2NyYzMyIjo0LCIuL2RlZmF1bHRzIjo2LCIuL25vZGVCdWZmZXIiOjEx'@; put 'LCIuL3NpZ25hdHVyZSI6MTQsIi4vc3RyaW5nV3JpdGVyIjoxNiwiLi9zdXBwb3J0IjoxNywiLi91aW50OEFycmF5V3JpdGVyIjoxOSwiLi91dGY4IjoyMCwiLi91dGlscyI6MjF9XSwxNDpbZnVuY3Rpb24oRixILFIpeyJ1c2Ugc3RyaWN0IjtSLkxPQ0FMX0ZJTEVfSEVBREVSPSJQS1x4MDNc'@; put 'eDA0IixSLkNFTlRSQUxfRklMRV9IRUFERVI9IlBLXHgwMVx4MDIiLFIuQ0VOVFJBTF9ESVJFQ1RPUllfRU5EPSJQS1x4MDVceDA2IixSLlpJUDY0X0NFTlRSQUxfRElSRUNUT1JZX0xPQ0FUT1I9IlBLXHgwNlx4MDciLFIuWklQNjRfQ0VOVFJBTF9ESVJFQ1RPUllfRU5EPSJQS1x4MDZceDA2'@; put 'IixSLkRBVEFfREVTQ1JJUFRPUj0iUEtceDA3XGIifSx7fV0sMTU6W2Z1bmN0aW9uKEYsSCxSKXsidXNlIHN0cmljdCI7dmFyIGo9RigiLi9kYXRhUmVhZGVyIiksUD1GKCIuL3V0aWxzIik7ZnVuY3Rpb24gTChZLEIpe3RoaXMuZGF0YT1ZLEJ8fCh0aGlzLmRhdGE9UC5zdHJpbmcyYmluYXJ5'@; put 'KHRoaXMuZGF0YSkpLHRoaXMubGVuZ3RoPXRoaXMuZGF0YS5sZW5ndGgsdGhpcy5pbmRleD0wfShMLnByb3RvdHlwZT1uZXcgaikuYnl0ZUF0PWZ1bmN0aW9uKFkpe3JldHVybiB0aGlzLmRhdGEuY2hhckNvZGVBdChZKX0sTC5wcm90b3R5cGUubGFzdEluZGV4T2ZTaWduYXR1cmU9ZnVuY3Rp'@; put 'b24oWSl7cmV0dXJuIHRoaXMuZGF0YS5sYXN0SW5kZXhPZihZKX0sTC5wcm90b3R5cGUucmVhZERhdGE9ZnVuY3Rpb24oWSl7dGhpcy5jaGVja09mZnNldChZKTt2YXIgQj10aGlzLmRhdGEuc2xpY2UodGhpcy5pbmRleCx0aGlzLmluZGV4K1kpO3JldHVybiB0aGlzLmluZGV4Kz1ZLEJ9LEgu'@; put 'ZXhwb3J0cz1MfSx7Ii4vZGF0YVJlYWRlciI6NSwiLi91dGlscyI6MjF9XSwxNjpbZnVuY3Rpb24oRixILFIpeyJ1c2Ugc3RyaWN0Ijt2YXIgaj1GKCIuL3V0aWxzIiksUD1mdW5jdGlvbigpe3RoaXMuZGF0YT1bXX07UC5wcm90b3R5cGU9e2FwcGVuZDpmdW5jdGlvbihMKXtMPWoudHJhbnNm'@; put 'b3JtVG8oInN0cmluZyIsTCksdGhpcy5kYXRhLnB1c2goTCl9LGZpbmFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YS5qb2luKCIiKX19LEguZXhwb3J0cz1QfSx7Ii4vdXRpbHMiOjIxfV0sMTc6W2Z1bmN0aW9uKEYsSCxSKXsoZnVuY3Rpb24oail7InVzZSBzdHJpY3QiO2lmKFIu'@; put 'YmFzZTY0PSEwLFIuYXJyYXk9ITAsUi5zdHJpbmc9ITAsUi5hcnJheWJ1ZmZlcj10eXBlb2YgQXJyYXlCdWZmZXI8InUiJiZ0eXBlb2YgVWludDhBcnJheTwidSIsUi5ub2RlYnVmZmVyPXR5cGVvZiBqPCJ1IixSLnVpbnQ4YXJyYXk9dHlwZW9mIFVpbnQ4QXJyYXk8InUiLHR5cGVvZiBBcnJh'@; put 'eUJ1ZmZlcj4idSIpUi5ibG9iPSExO2Vsc2V7dmFyIFA9bmV3IEFycmF5QnVmZmVyKDApO3RyeXtSLmJsb2I9MD09PW5ldyBCbG9iKFtQXSx7dHlwZToiYXBwbGljYXRpb24vemlwIn0pLnNpemV9Y2F0Y2h7dHJ5e3ZhciBZPW5ldyh3aW5kb3cuQmxvYkJ1aWxkZXJ8fHdpbmRvdy5XZWJLaXRC'@; put 'bG9iQnVpbGRlcnx8d2luZG93Lk1vekJsb2JCdWlsZGVyfHx3aW5kb3cuTVNCbG9iQnVpbGRlcik7WS5hcHBlbmQoUCksUi5ibG9iPTA9PT1ZLmdldEJsb2IoImFwcGxpY2F0aW9uL3ppcCIpLnNpemV9Y2F0Y2h7Ui5ibG9iPSExfX19fSkuY2FsbCh0aGlzLHR5cGVvZiBCdWZmZXI8InUiP0J1'@; put 'ZmZlcjp2b2lkIDApfSx7fV0sMTg6W2Z1bmN0aW9uKEYsSCxSKXsidXNlIHN0cmljdCI7dmFyIGo9RigiLi9kYXRhUmVhZGVyIik7ZnVuY3Rpb24gUChMKXtMJiYodGhpcy5kYXRhPUwsdGhpcy5sZW5ndGg9dGhpcy5kYXRhLmxlbmd0aCx0aGlzLmluZGV4PTApfShQLnByb3RvdHlwZT1uZXcg'@; put 'aikuYnl0ZUF0PWZ1bmN0aW9uKEwpe3JldHVybiB0aGlzLmRhdGFbTF19LFAucHJvdG90eXBlLmxhc3RJbmRleE9mU2lnbmF0dXJlPWZ1bmN0aW9uKEwpe2Zvcih2YXIgWT1MLmNoYXJDb2RlQXQoMCksQj1MLmNoYXJDb2RlQXQoMSksVz1MLmNoYXJDb2RlQXQoMiksWj1MLmNoYXJDb2RlQXQo'@; put 'MyksWD10aGlzLmxlbmd0aC00O1g+PTA7LS1YKWlmKHRoaXMuZGF0YVtYXT09PVkmJnRoaXMuZGF0YVtYKzFdPT09QiYmdGhpcy5kYXRhW1grMl09PT1XJiZ0aGlzLmRhdGFbWCszXT09PVopcmV0dXJuIFg7cmV0dXJuLTF9LFAucHJvdG90eXBlLnJlYWREYXRhPWZ1bmN0aW9uKEwpe2lmKHRo'@; put 'aXMuY2hlY2tPZmZzZXQoTCksMD09PUwpcmV0dXJuIG5ldyBVaW50OEFycmF5KDApO3ZhciBZPXRoaXMuZGF0YS5zdWJhcnJheSh0aGlzLmluZGV4LHRoaXMuaW5kZXgrTCk7cmV0dXJuIHRoaXMuaW5kZXgrPUwsWX0sSC5leHBvcnRzPVB9LHsiLi9kYXRhUmVhZGVyIjo1fV0sMTk6W2Z1bmN0'@; put 'aW9uKEYsSCxSKXsidXNlIHN0cmljdCI7dmFyIGo9RigiLi91dGlscyIpLFA9ZnVuY3Rpb24oTCl7dGhpcy5kYXRhPW5ldyBVaW50OEFycmF5KEwpLHRoaXMuaW5kZXg9MH07UC5wcm90b3R5cGU9e2FwcGVuZDpmdW5jdGlvbihMKXswIT09TC5sZW5ndGgmJihMPWoudHJhbnNmb3JtVG8oInVp'@; put 'bnQ4YXJyYXkiLEwpLHRoaXMuZGF0YS5zZXQoTCx0aGlzLmluZGV4KSx0aGlzLmluZGV4Kz1MLmxlbmd0aCl9LGZpbmFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YX19LEguZXhwb3J0cz1QfSx7Ii4vdXRpbHMiOjIxfV0sMjA6W2Z1bmN0aW9uKEYsSCxSKXsidXNlIHN0cmljdCI7'@; put 'Zm9yKHZhciBqPUYoIi4vdXRpbHMiKSxQPUYoIi4vc3VwcG9ydCIpLEw9RigiLi9ub2RlQnVmZmVyIiksWT1uZXcgQXJyYXkoMjU2KSxCPTA7QjwyNTY7QisrKVlbQl09Qj49MjUyPzY6Qj49MjQ4PzU6Qj49MjQwPzQ6Qj49MjI0PzM6Qj49MTkyPzI6MTtZWzI1NF09WVsyNTRdPTE7dmFyIFo9'@; put 'ZnVuY3Rpb24oUSxxKXt2YXIgdGU7Zm9yKChxPXF8fFEubGVuZ3RoKT5RLmxlbmd0aCYmKHE9US5sZW5ndGgpLHRlPXEtMTt0ZT49MCYmMTI4PT0oMTkyJlFbdGVdKTspdGUtLTtyZXR1cm4gdGU8MHx8MD09PXRlP3E6dGUrWVtRW3RlXV0+cT90ZTpxfSxYPWZ1bmN0aW9uKFEpe3ZhciB0ZSxp'@; put 'ZSxzZSxnZSxfZT1RLmxlbmd0aCxUZT1uZXcgQXJyYXkoMipfZSk7Zm9yKGllPTAsdGU9MDt0ZTxfZTspaWYoKHNlPVFbdGUrK10pPDEyOClUZVtpZSsrXT1zZTtlbHNlIGlmKChnZT1ZW3NlXSk+NClUZVtpZSsrXT02NTUzMyx0ZSs9Z2UtMTtlbHNle2ZvcihzZSY9Mj09PWdlPzMxOjM9PT1n'@; put 'ZT8xNTo3O2dlPjEmJnRlPF9lOylzZT1zZTw8Nnw2MyZRW3RlKytdLGdlLS07Z2U+MT9UZVtpZSsrXT02NTUzMzpzZTw2NTUzNj9UZVtpZSsrXT1zZTooVGVbaWUrK109NTUyOTZ8KHNlLT02NTUzNik+PjEwJjEwMjMsVGVbaWUrK109NTYzMjB8MTAyMyZzZSl9cmV0dXJuIFRlLmxlbmd0aCE9'@; put 'PWllJiYoVGUuc3ViYXJyYXk/VGU9VGUuc3ViYXJyYXkoMCxpZSk6VGUubGVuZ3RoPWllKSxqLmFwcGx5RnJvbUNoYXJDb2RlKFRlKX07Ui51dGY4ZW5jb2RlPWZ1bmN0aW9uKHEpe3JldHVybiBQLm5vZGVidWZmZXI/TChxLCJ1dGYtOCIpOmZ1bmN0aW9uKFEpe3ZhciBxLHRlLGllLHNlLGdl'@; put 'LF9lPVEubGVuZ3RoLFRlPTA7Zm9yKHNlPTA7c2U8X2U7c2UrKyk1NTI5Nj09KDY0NTEyJih0ZT1RLmNoYXJDb2RlQXQoc2UpKSkmJnNlKzE8X2UmJjU2MzIwPT0oNjQ1MTImKGllPVEuY2hhckNvZGVBdChzZSsxKSkpJiYodGU9NjU1MzYrKHRlLTU1Mjk2PDwxMCkrKGllLTU2MzIwKSxzZSsr'@; put 'KSxUZSs9dGU8MTI4PzE6dGU8MjA0OD8yOnRlPDY1NTM2PzM6NDtmb3IocT1QLnVpbnQ4YXJyYXk/bmV3IFVpbnQ4QXJyYXkoVGUpOm5ldyBBcnJheShUZSksZ2U9MCxzZT0wO2dlPFRlO3NlKyspNTUyOTY9PSg2NDUxMiYodGU9US5jaGFyQ29kZUF0KHNlKSkpJiZzZSsxPF9lJiY1NjMyMD09'@; put 'KDY0NTEyJihpZT1RLmNoYXJDb2RlQXQoc2UrMSkpKSYmKHRlPTY1NTM2Kyh0ZS01NTI5Njw8MTApKyhpZS01NjMyMCksc2UrKyksdGU8MTI4P3FbZ2UrK109dGU6dGU8MjA0OD8ocVtnZSsrXT0xOTJ8dGU+Pj42LHFbZ2UrK109MTI4fDYzJnRlKTp0ZTw2NTUzNj8ocVtnZSsrXT0yMjR8dGU+'@; put 'Pj4xMixxW2dlKytdPTEyOHx0ZT4+PjYmNjMscVtnZSsrXT0xMjh8NjMmdGUpOihxW2dlKytdPTI0MHx0ZT4+PjE4LHFbZ2UrK109MTI4fHRlPj4+MTImNjMscVtnZSsrXT0xMjh8dGU+Pj42JjYzLHFbZ2UrK109MTI4fDYzJnRlKTtyZXR1cm4gcX0ocSl9LFIudXRmOGRlY29kZT1mdW5jdGlv'@; put 'bihxKXtpZihQLm5vZGVidWZmZXIpcmV0dXJuIGoudHJhbnNmb3JtVG8oIm5vZGVidWZmZXIiLHEpLnRvU3RyaW5nKCJ1dGYtOCIpO2Zvcih2YXIgdGU9W10saWU9MCxzZT0ocT1qLnRyYW5zZm9ybVRvKFAudWludDhhcnJheT8idWludDhhcnJheSI6ImFycmF5IixxKSkubGVuZ3RoO2llPHNl'@; put 'Oyl7dmFyIF9lPVoocSxNYXRoLm1pbihpZSs2NTUzNixzZSkpO3RlLnB1c2goWChQLnVpbnQ4YXJyYXk/cS5zdWJhcnJheShpZSxfZSk6cS5zbGljZShpZSxfZSkpKSxpZT1fZX1yZXR1cm4gdGUuam9pbigiIil9fSx7Ii4vbm9kZUJ1ZmZlciI6MTEsIi4vc3VwcG9ydCI6MTcsIi4vdXRpbHMi'@; put 'OjIxfV0sMjE6W2Z1bmN0aW9uKEYsSCxSKXsidXNlIHN0cmljdCI7dmFyIGo9RigiLi9zdXBwb3J0IiksUD1GKCIuL2NvbXByZXNzaW9ucyIpLEw9RigiLi9ub2RlQnVmZmVyIik7ZnVuY3Rpb24gWShRKXtyZXR1cm4gUX1mdW5jdGlvbiBCKFEscSl7Zm9yKHZhciB0ZT0wO3RlPFEubGVuZ3Ro'@; put 'OysrdGUpcVt0ZV09MjU1JlEuY2hhckNvZGVBdCh0ZSk7cmV0dXJuIHF9ZnVuY3Rpb24gVyhRKXt2YXIgcT02NTUzNix0ZT1bXSxpZT1RLmxlbmd0aCxzZT1SLmdldFR5cGVPZihRKSxnZT0wLF9lPSEwO3RyeXtzd2l0Y2goc2Upe2Nhc2UidWludDhhcnJheSI6U3RyaW5nLmZyb21DaGFyQ29k'@; put 'ZS5hcHBseShudWxsLG5ldyBVaW50OEFycmF5KDApKTticmVhaztjYXNlIm5vZGVidWZmZXIiOlN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxMKDApKX19Y2F0Y2h7X2U9ITF9aWYoIV9lKXtmb3IodmFyIFRlPSIiLFNlPTA7U2U8US5sZW5ndGg7U2UrKylUZSs9U3RyaW5nLmZyb21D'@; put 'aGFyQ29kZShRW1NlXSk7cmV0dXJuIFRlfWZvcig7Z2U8aWUmJnE+MTspdHJ5e3RlLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLCJhcnJheSI9PT1zZXx8Im5vZGVidWZmZXIiPT09c2U/US5zbGljZShnZSxNYXRoLm1pbihnZStxLGllKSk6US5zdWJhcnJheShnZSxNYXRo'@; put 'Lm1pbihnZStxLGllKSkpKSxnZSs9cX1jYXRjaHtxPU1hdGguZmxvb3IocS8yKX1yZXR1cm4gdGUuam9pbigiIil9ZnVuY3Rpb24gWihRLHEpe2Zvcih2YXIgdGU9MDt0ZTxRLmxlbmd0aDt0ZSsrKXFbdGVdPVFbdGVdO3JldHVybiBxfVIuc3RyaW5nMmJpbmFyeT1mdW5jdGlvbihRKXtmb3Io'@; put 'dmFyIHE9IiIsdGU9MDt0ZTxRLmxlbmd0aDt0ZSsrKXErPVN0cmluZy5mcm9tQ2hhckNvZGUoMjU1JlEuY2hhckNvZGVBdCh0ZSkpO3JldHVybiBxfSxSLmFycmF5QnVmZmVyMkJsb2I9ZnVuY3Rpb24oUSl7Ui5jaGVja1N1cHBvcnQoImJsb2IiKTt0cnl7cmV0dXJuIG5ldyBCbG9iKFtRXSx7'@; put 'dHlwZToiYXBwbGljYXRpb24vemlwIn0pfWNhdGNoe3RyeXt2YXIgdGU9bmV3KHdpbmRvdy5CbG9iQnVpbGRlcnx8d2luZG93LldlYktpdEJsb2JCdWlsZGVyfHx3aW5kb3cuTW96QmxvYkJ1aWxkZXJ8fHdpbmRvdy5NU0Jsb2JCdWlsZGVyKTtyZXR1cm4gdGUuYXBwZW5kKFEpLHRlLmdldEJs'@; put 'b2IoImFwcGxpY2F0aW9uL3ppcCIpfWNhdGNoe3Rocm93IG5ldyBFcnJvcigiQnVnIDogY2FuJ3QgY29uc3RydWN0IHRoZSBCbG9iLiIpfX19LFIuYXBwbHlGcm9tQ2hhckNvZGU9Vzt2YXIgWD17fTtYLnN0cmluZz17c3RyaW5nOlksYXJyYXk6ZnVuY3Rpb24oUSl7cmV0dXJuIEIoUSxuZXcg'@; put 'QXJyYXkoUS5sZW5ndGgpKX0sYXJyYXlidWZmZXI6ZnVuY3Rpb24oUSl7cmV0dXJuIFguc3RyaW5nLnVpbnQ4YXJyYXkoUSkuYnVmZmVyfSx1aW50OGFycmF5OmZ1bmN0aW9uKFEpe3JldHVybiBCKFEsbmV3IFVpbnQ4QXJyYXkoUS5sZW5ndGgpKX0sbm9kZWJ1ZmZlcjpmdW5jdGlvbihRKXty'@; put 'ZXR1cm4gQihRLEwoUS5sZW5ndGgpKX19LFguYXJyYXk9e3N0cmluZzpXLGFycmF5OlksYXJyYXlidWZmZXI6ZnVuY3Rpb24oUSl7cmV0dXJuIG5ldyBVaW50OEFycmF5KFEpLmJ1ZmZlcn0sdWludDhhcnJheTpmdW5jdGlvbihRKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoUSl9LG5vZGVidWZm'@; put 'ZXI6ZnVuY3Rpb24oUSl7cmV0dXJuIEwoUSl9fSxYLmFycmF5YnVmZmVyPXtzdHJpbmc6ZnVuY3Rpb24oUSl7cmV0dXJuIFcobmV3IFVpbnQ4QXJyYXkoUSkpfSxhcnJheTpmdW5jdGlvbihRKXtyZXR1cm4gWihuZXcgVWludDhBcnJheShRKSxuZXcgQXJyYXkoUS5ieXRlTGVuZ3RoKSl9LGFy'@; put 'cmF5YnVmZmVyOlksdWludDhhcnJheTpmdW5jdGlvbihRKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoUSl9LG5vZGVidWZmZXI6ZnVuY3Rpb24oUSl7cmV0dXJuIEwobmV3IFVpbnQ4QXJyYXkoUSkpfX0sWC51aW50OGFycmF5PXtzdHJpbmc6VyxhcnJheTpmdW5jdGlvbihRKXtyZXR1cm4gWihR'@; put 'LG5ldyBBcnJheShRLmxlbmd0aCkpfSxhcnJheWJ1ZmZlcjpmdW5jdGlvbihRKXtyZXR1cm4gUS5idWZmZXJ9LHVpbnQ4YXJyYXk6WSxub2RlYnVmZmVyOmZ1bmN0aW9uKFEpe3JldHVybiBMKFEpfX0sWC5ub2RlYnVmZmVyPXtzdHJpbmc6VyxhcnJheTpmdW5jdGlvbihRKXtyZXR1cm4gWihR'@; put 'LG5ldyBBcnJheShRLmxlbmd0aCkpfSxhcnJheWJ1ZmZlcjpmdW5jdGlvbihRKXtyZXR1cm4gWC5ub2RlYnVmZmVyLnVpbnQ4YXJyYXkoUSkuYnVmZmVyfSx1aW50OGFycmF5OmZ1bmN0aW9uKFEpe3JldHVybiBaKFEsbmV3IFVpbnQ4QXJyYXkoUS5sZW5ndGgpKX0sbm9kZWJ1ZmZlcjpZfSxS'@; put 'LnRyYW5zZm9ybVRvPWZ1bmN0aW9uKFEscSl7aWYocXx8KHE9IiIpLCFRKXJldHVybiBxO1IuY2hlY2tTdXBwb3J0KFEpO3ZhciB0ZT1SLmdldFR5cGVPZihxKTtyZXR1cm4gWFt0ZV1bUV0ocSl9LFIuZ2V0VHlwZU9mPWZ1bmN0aW9uKFEpe3JldHVybiJzdHJpbmciPT10eXBlb2YgUT8ic3Ry'@; put 'aW5nIjoiW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFEpPyJhcnJheSI6ai5ub2RlYnVmZmVyJiZMLnRlc3QoUSk/Im5vZGVidWZmZXIiOmoudWludDhhcnJheSYmUSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/InVpbnQ4YXJyYXkiOmouYXJyYXlidWZm'@; put 'ZXImJlEgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj8iYXJyYXlidWZmZXIiOnZvaWQgMH0sUi5jaGVja1N1cHBvcnQ9ZnVuY3Rpb24oUSl7aWYoIWpbUS50b0xvd2VyQ2FzZSgpXSl0aHJvdyBuZXcgRXJyb3IoUSsiIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBicm93c2VyIil9LFIuTUFYX1ZB'@; put 'TFVFXzE2QklUUz02NTUzNSxSLk1BWF9WQUxVRV8zMkJJVFM9LTEsUi5wcmV0dHk9ZnVuY3Rpb24oUSl7dmFyIHRlLGllLHE9IiI7Zm9yKGllPTA7aWU8KFF8fCIiKS5sZW5ndGg7aWUrKylxKz0iXFx4IisoKHRlPVEuY2hhckNvZGVBdChpZSkpPDE2PyIwIjoiIikrdGUudG9TdHJpbmcoMTYp'@; put 'LnRvVXBwZXJDYXNlKCk7cmV0dXJuIHF9LFIuZmluZENvbXByZXNzaW9uPWZ1bmN0aW9uKFEpe2Zvcih2YXIgcSBpbiBQKWlmKFAuaGFzT3duUHJvcGVydHkocSkmJlBbcV0ubWFnaWM9PT1RKXJldHVybiBQW3FdO3JldHVybiBudWxsfSxSLmlzUmVnRXhwPWZ1bmN0aW9uKFEpe3JldHVybiJb'@; put 'b2JqZWN0IFJlZ0V4cF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFEpfX0seyIuL2NvbXByZXNzaW9ucyI6MywiLi9ub2RlQnVmZmVyIjoxMSwiLi9zdXBwb3J0IjoxN31dLDIyOltmdW5jdGlvbihGLEgsUil7InVzZSBzdHJpY3QiO3ZhciBqPUYoIi4vc3RyaW5nUmVhZGVy'@; put 'IiksUD1GKCIuL25vZGVCdWZmZXJSZWFkZXIiKSxMPUYoIi4vdWludDhBcnJheVJlYWRlciIpLFk9RigiLi91dGlscyIpLEI9RigiLi9zaWduYXR1cmUiKSxXPUYoIi4vemlwRW50cnkiKSxaPUYoIi4vc3VwcG9ydCIpLFg9RigiLi9vYmplY3QiKTtmdW5jdGlvbiBRKHEsdGUpe3RoaXMuZmls'@; put 'ZXM9W10sdGhpcy5sb2FkT3B0aW9ucz10ZSxxJiZ0aGlzLmxvYWQocSl9US5wcm90b3R5cGU9e2NoZWNrU2lnbmF0dXJlOmZ1bmN0aW9uKHEpe3ZhciB0ZT10aGlzLnJlYWRlci5yZWFkU3RyaW5nKDQpO2lmKHRlIT09cSl0aHJvdyBuZXcgRXJyb3IoIkNvcnJ1cHRlZCB6aXAgb3IgYnVnIDog'@; put 'dW5leHBlY3RlZCBzaWduYXR1cmUgKCIrWS5wcmV0dHkodGUpKyIsIGV4cGVjdGVkICIrWS5wcmV0dHkocSkrIikiKX0scmVhZEJsb2NrRW5kT2ZDZW50cmFsOmZ1bmN0aW9uKCl7dGhpcy5kaXNrTnVtYmVyPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksdGhpcy5kaXNrV2l0aENlbnRyYWxEaXJT'@; put 'dGFydD10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuY2VudHJhbERpclJlY29yZHNPblRoaXNEaXNrPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksdGhpcy5jZW50cmFsRGlyUmVjb3Jkcz10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuY2VudHJhbERpclNpemU9dGhpcy5yZWFkZXIucmVh'@; put 'ZEludCg0KSx0aGlzLmNlbnRyYWxEaXJPZmZzZXQ9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0aGlzLnppcENvbW1lbnRMZW5ndGg9dGhpcy5yZWFkZXIucmVhZEludCgyKSx0aGlzLnppcENvbW1lbnQ9dGhpcy5yZWFkZXIucmVhZFN0cmluZyh0aGlzLnppcENvbW1lbnRMZW5ndGgpLHRoaXMu'@; put 'emlwQ29tbWVudD1YLnV0ZjhkZWNvZGUodGhpcy56aXBDb21tZW50KX0scmVhZEJsb2NrWmlwNjRFbmRPZkNlbnRyYWw6ZnVuY3Rpb24oKXt0aGlzLnppcDY0RW5kT2ZDZW50cmFsU2l6ZT10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMudmVyc2lvbk1hZGVCeT10aGlzLnJlYWRlci5yZWFk'@; put 'U3RyaW5nKDIpLHRoaXMudmVyc2lvbk5lZWRlZD10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuZGlza051bWJlcj10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMuZGlza1dpdGhDZW50cmFsRGlyU3RhcnQ9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0aGlzLmNlbnRyYWxEaXJSZWNvcmRz'@; put 'T25UaGlzRGlzaz10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMuY2VudHJhbERpclJlY29yZHM9dGhpcy5yZWFkZXIucmVhZEludCg4KSx0aGlzLmNlbnRyYWxEaXJTaXplPXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhpcy5jZW50cmFsRGlyT2Zmc2V0PXRoaXMucmVhZGVyLnJlYWRJbnQo'@; put 'OCksdGhpcy56aXA2NEV4dGVuc2libGVEYXRhPXt9O2Zvcih2YXIgaWUsc2UsZ2UscT10aGlzLnppcDY0RW5kT2ZDZW50cmFsU2l6ZS00NDswPHE7KWllPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksc2U9dGhpcy5yZWFkZXIucmVhZEludCg0KSxnZT10aGlzLnJlYWRlci5yZWFkU3RyaW5nKHNl'@; put 'KSx0aGlzLnppcDY0RXh0ZW5zaWJsZURhdGFbaWVdPXtpZDppZSxsZW5ndGg6c2UsdmFsdWU6Z2V9fSxyZWFkQmxvY2taaXA2NEVuZE9mQ2VudHJhbExvY2F0b3I6ZnVuY3Rpb24oKXtpZih0aGlzLmRpc2tXaXRoWmlwNjRDZW50cmFsRGlyU3RhcnQ9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0'@; put 'aGlzLnJlbGF0aXZlT2Zmc2V0RW5kT2ZaaXA2NENlbnRyYWxEaXI9dGhpcy5yZWFkZXIucmVhZEludCg4KSx0aGlzLmRpc2tzQ291bnQ9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0aGlzLmRpc2tzQ291bnQ+MSl0aHJvdyBuZXcgRXJyb3IoIk11bHRpLXZvbHVtZXMgemlwIGFyZSBub3Qgc3Vw'@; put 'cG9ydGVkIil9LHJlYWRMb2NhbEZpbGVzOmZ1bmN0aW9uKCl7dmFyIHEsdGU7Zm9yKHE9MDtxPHRoaXMuZmlsZXMubGVuZ3RoO3ErKyl0aGlzLnJlYWRlci5zZXRJbmRleCgodGU9dGhpcy5maWxlc1txXSkubG9jYWxIZWFkZXJPZmZzZXQpLHRoaXMuY2hlY2tTaWduYXR1cmUoQi5MT0NBTF9G'@; put 'SUxFX0hFQURFUiksdGUucmVhZExvY2FsUGFydCh0aGlzLnJlYWRlciksdGUuaGFuZGxlVVRGOCgpfSxyZWFkQ2VudHJhbERpcjpmdW5jdGlvbigpe3ZhciBxO2Zvcih0aGlzLnJlYWRlci5zZXRJbmRleCh0aGlzLmNlbnRyYWxEaXJPZmZzZXQpO3RoaXMucmVhZGVyLnJlYWRTdHJpbmcoNCk9'@; put 'PT1CLkNFTlRSQUxfRklMRV9IRUFERVI7KShxPW5ldyBXKHt6aXA2NDp0aGlzLnppcDY0fSx0aGlzLmxvYWRPcHRpb25zKSkucmVhZENlbnRyYWxQYXJ0KHRoaXMucmVhZGVyKSx0aGlzLmZpbGVzLnB1c2gocSl9LHJlYWRFbmRPZkNlbnRyYWw6ZnVuY3Rpb24oKXt2YXIgcT10aGlzLnJlYWRl'@; put 'ci5sYXN0SW5kZXhPZlNpZ25hdHVyZShCLkNFTlRSQUxfRElSRUNUT1JZX0VORCk7aWYoLTE9PT1xKXRocm93IG5ldyBFcnJvcigiQ29ycnVwdGVkIHppcCA6IGNhbid0IGZpbmQgZW5kIG9mIGNlbnRyYWwgZGlyZWN0b3J5Iik7aWYodGhpcy5yZWFkZXIuc2V0SW5kZXgocSksdGhpcy5jaGVj'@; put 'a1NpZ25hdHVyZShCLkNFTlRSQUxfRElSRUNUT1JZX0VORCksdGhpcy5yZWFkQmxvY2tFbmRPZkNlbnRyYWwoKSx0aGlzLmRpc2tOdW1iZXI9PT1ZLk1BWF9WQUxVRV8xNkJJVFN8fHRoaXMuZGlza1dpdGhDZW50cmFsRGlyU3RhcnQ9PT1ZLk1BWF9WQUxVRV8xNkJJVFN8fHRoaXMuY2VudHJh'@; put 'bERpclJlY29yZHNPblRoaXNEaXNrPT09WS5NQVhfVkFMVUVfMTZCSVRTfHx0aGlzLmNlbnRyYWxEaXJSZWNvcmRzPT09WS5NQVhfVkFMVUVfMTZCSVRTfHx0aGlzLmNlbnRyYWxEaXJTaXplPT09WS5NQVhfVkFMVUVfMzJCSVRTfHx0aGlzLmNlbnRyYWxEaXJPZmZzZXQ9PT1ZLk1BWF9WQUxV'@; put 'RV8zMkJJVFMpe2lmKHRoaXMuemlwNjQ9ITAsLTE9PT0ocT10aGlzLnJlYWRlci5sYXN0SW5kZXhPZlNpZ25hdHVyZShCLlpJUDY0X0NFTlRSQUxfRElSRUNUT1JZX0xPQ0FUT1IpKSl0aHJvdyBuZXcgRXJyb3IoIkNvcnJ1cHRlZCB6aXAgOiBjYW4ndCBmaW5kIHRoZSBaSVA2NCBlbmQgb2Yg'@; put 'Y2VudHJhbCBkaXJlY3RvcnkgbG9jYXRvciIpO3RoaXMucmVhZGVyLnNldEluZGV4KHEpLHRoaXMuY2hlY2tTaWduYXR1cmUoQi5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9MT0NBVE9SKSx0aGlzLnJlYWRCbG9ja1ppcDY0RW5kT2ZDZW50cmFsTG9jYXRvcigpLHRoaXMucmVhZGVyLnNldElu'@; put 'ZGV4KHRoaXMucmVsYXRpdmVPZmZzZXRFbmRPZlppcDY0Q2VudHJhbERpciksdGhpcy5jaGVja1NpZ25hdHVyZShCLlpJUDY0X0NFTlRSQUxfRElSRUNUT1JZX0VORCksdGhpcy5yZWFkQmxvY2taaXA2NEVuZE9mQ2VudHJhbCgpfX0scHJlcGFyZVJlYWRlcjpmdW5jdGlvbihxKXt2YXIgdGU9'@; put 'WS5nZXRUeXBlT2YocSk7dGhpcy5yZWFkZXI9InN0cmluZyIhPT10ZXx8Wi51aW50OGFycmF5PyJub2RlYnVmZmVyIj09PXRlP25ldyBQKHEpOm5ldyBMKFkudHJhbnNmb3JtVG8oInVpbnQ4YXJyYXkiLHEpKTpuZXcgaihxLHRoaXMubG9hZE9wdGlvbnMub3B0aW1pemVkQmluYXJ5U3RyaW5n'@; put 'KX0sbG9hZDpmdW5jdGlvbihxKXt0aGlzLnByZXBhcmVSZWFkZXIocSksdGhpcy5yZWFkRW5kT2ZDZW50cmFsKCksdGhpcy5yZWFkQ2VudHJhbERpcigpLHRoaXMucmVhZExvY2FsRmlsZXMoKX19LEguZXhwb3J0cz1RfSx7Ii4vbm9kZUJ1ZmZlclJlYWRlciI6MTIsIi4vb2JqZWN0IjoxMywi'@; put 'Li9zaWduYXR1cmUiOjE0LCIuL3N0cmluZ1JlYWRlciI6MTUsIi4vc3VwcG9ydCI6MTcsIi4vdWludDhBcnJheVJlYWRlciI6MTgsIi4vdXRpbHMiOjIxLCIuL3ppcEVudHJ5IjoyM31dLDIzOltmdW5jdGlvbihGLEgsUil7InVzZSBzdHJpY3QiO3ZhciBqPUYoIi4vc3RyaW5nUmVhZGVyIiks'@; put 'UD1GKCIuL3V0aWxzIiksTD1GKCIuL2NvbXByZXNzZWRPYmplY3QiKSxZPUYoIi4vb2JqZWN0Iik7ZnVuY3Rpb24gQihXLFope3RoaXMub3B0aW9ucz1XLHRoaXMubG9hZE9wdGlvbnM9Wn1CLnByb3RvdHlwZT17aXNFbmNyeXB0ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hKDEmfnRoaXMuYml0Rmxh'@; put 'Zyl9LHVzZVVURjg6ZnVuY3Rpb24oKXtyZXR1cm4hKDIwNDgmfnRoaXMuYml0RmxhZyl9LHByZXBhcmVDb21wcmVzc2VkQ29udGVudDpmdW5jdGlvbihXLFosWCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIFE9Vy5pbmRleDtXLnNldEluZGV4KFopO3ZhciBxPVcucmVhZERhdGEoWCk7cmV0dXJu'@; put 'IFcuc2V0SW5kZXgoUSkscX19LHByZXBhcmVDb250ZW50OmZ1bmN0aW9uKFcsWixYLFEscSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHRlPVAudHJhbnNmb3JtVG8oUS51bmNvbXByZXNzSW5wdXRUeXBlLHRoaXMuZ2V0Q29tcHJlc3NlZENvbnRlbnQoKSksaWU9US51bmNvbXByZXNzKHRlKTtp'@; put 'ZihpZS5sZW5ndGghPT1xKXRocm93IG5ldyBFcnJvcigiQnVnIDogdW5jb21wcmVzc2VkIGRhdGEgc2l6ZSBtaXNtYXRjaCIpO3JldHVybiBpZX19LHJlYWRMb2NhbFBhcnQ6ZnVuY3Rpb24oVyl7dmFyIFosWDtpZihXLnNraXAoMjIpLHRoaXMuZmlsZU5hbWVMZW5ndGg9Vy5yZWFkSW50KDIp'@; put 'LFg9Vy5yZWFkSW50KDIpLHRoaXMuZmlsZU5hbWU9Vy5yZWFkU3RyaW5nKHRoaXMuZmlsZU5hbWVMZW5ndGgpLFcuc2tpcChYKSwtMT09dGhpcy5jb21wcmVzc2VkU2l6ZXx8LTE9PXRoaXMudW5jb21wcmVzc2VkU2l6ZSl0aHJvdyBuZXcgRXJyb3IoIkJ1ZyBvciBjb3JydXB0ZWQgemlwIDog'@; put 'ZGlkbid0IGdldCBlbm91Z2ggaW5mb3JtYXRpb25zIGZyb20gdGhlIGNlbnRyYWwgZGlyZWN0b3J5IChjb21wcmVzc2VkU2l6ZSA9PSAtMSB8fCB1bmNvbXByZXNzZWRTaXplID09IC0xKSIpO2lmKG51bGw9PT0oWj1QLmZpbmRDb21wcmVzc2lvbih0aGlzLmNvbXByZXNzaW9uTWV0aG9kKSkp'@; put 'dGhyb3cgbmV3IEVycm9yKCJDb3JydXB0ZWQgemlwIDogY29tcHJlc3Npb24gIitQLnByZXR0eSh0aGlzLmNvbXByZXNzaW9uTWV0aG9kKSsiIHVua25vd24gKGlubmVyIGZpbGUgOiAiK3RoaXMuZmlsZU5hbWUrIikiKTtpZih0aGlzLmRlY29tcHJlc3NlZD1uZXcgTCx0aGlzLmRlY29tcHJl'@; put 'c3NlZC5jb21wcmVzc2VkU2l6ZT10aGlzLmNvbXByZXNzZWRTaXplLHRoaXMuZGVjb21wcmVzc2VkLnVuY29tcHJlc3NlZFNpemU9dGhpcy51bmNvbXByZXNzZWRTaXplLHRoaXMuZGVjb21wcmVzc2VkLmNyYzMyPXRoaXMuY3JjMzIsdGhpcy5kZWNvbXByZXNzZWQuY29tcHJlc3Npb25NZXRo'@; put 'b2Q9dGhpcy5jb21wcmVzc2lvbk1ldGhvZCx0aGlzLmRlY29tcHJlc3NlZC5nZXRDb21wcmVzc2VkQ29udGVudD10aGlzLnByZXBhcmVDb21wcmVzc2VkQ29udGVudChXLFcuaW5kZXgsdGhpcy5jb21wcmVzc2VkU2l6ZSxaKSx0aGlzLmRlY29tcHJlc3NlZC5nZXRDb250ZW50PXRoaXMucHJl'@; put 'cGFyZUNvbnRlbnQoVyxXLmluZGV4LHRoaXMuY29tcHJlc3NlZFNpemUsWix0aGlzLnVuY29tcHJlc3NlZFNpemUpLHRoaXMubG9hZE9wdGlvbnMuY2hlY2tDUkMzMiYmKHRoaXMuZGVjb21wcmVzc2VkPVAudHJhbnNmb3JtVG8oInN0cmluZyIsdGhpcy5kZWNvbXByZXNzZWQuZ2V0Q29udGVu'@; put 'dCgpKSxZLmNyYzMyKHRoaXMuZGVjb21wcmVzc2VkKSE9PXRoaXMuY3JjMzIpKXRocm93IG5ldyBFcnJvcigiQ29ycnVwdGVkIHppcCA6IENSQzMyIG1pc21hdGNoIil9LHJlYWRDZW50cmFsUGFydDpmdW5jdGlvbihXKXtpZih0aGlzLnZlcnNpb25NYWRlQnk9Vy5yZWFkU3RyaW5nKDIpLHRo'@; put 'aXMudmVyc2lvbk5lZWRlZD1XLnJlYWRJbnQoMiksdGhpcy5iaXRGbGFnPVcucmVhZEludCgyKSx0aGlzLmNvbXByZXNzaW9uTWV0aG9kPVcucmVhZFN0cmluZygyKSx0aGlzLmRhdGU9Vy5yZWFkRGF0ZSgpLHRoaXMuY3JjMzI9Vy5yZWFkSW50KDQpLHRoaXMuY29tcHJlc3NlZFNpemU9Vy5y'@; put 'ZWFkSW50KDQpLHRoaXMudW5jb21wcmVzc2VkU2l6ZT1XLnJlYWRJbnQoNCksdGhpcy5maWxlTmFtZUxlbmd0aD1XLnJlYWRJbnQoMiksdGhpcy5leHRyYUZpZWxkc0xlbmd0aD1XLnJlYWRJbnQoMiksdGhpcy5maWxlQ29tbWVudExlbmd0aD1XLnJlYWRJbnQoMiksdGhpcy5kaXNrTnVtYmVy'@; put 'U3RhcnQ9Vy5yZWFkSW50KDIpLHRoaXMuaW50ZXJuYWxGaWxlQXR0cmlidXRlcz1XLnJlYWRJbnQoMiksdGhpcy5leHRlcm5hbEZpbGVBdHRyaWJ1dGVzPVcucmVhZEludCg0KSx0aGlzLmxvY2FsSGVhZGVyT2Zmc2V0PVcucmVhZEludCg0KSx0aGlzLmlzRW5jcnlwdGVkKCkpdGhyb3cgbmV3'@; put 'IEVycm9yKCJFbmNyeXB0ZWQgemlwIGFyZSBub3Qgc3VwcG9ydGVkIik7dGhpcy5maWxlTmFtZT1XLnJlYWRTdHJpbmcodGhpcy5maWxlTmFtZUxlbmd0aCksdGhpcy5yZWFkRXh0cmFGaWVsZHMoVyksdGhpcy5wYXJzZVpJUDY0RXh0cmFGaWVsZChXKSx0aGlzLmZpbGVDb21tZW50PVcucmVh'@; put 'ZFN0cmluZyh0aGlzLmZpbGVDb21tZW50TGVuZ3RoKSx0aGlzLmRpcj0hISgxNiZ0aGlzLmV4dGVybmFsRmlsZUF0dHJpYnV0ZXMpfSxwYXJzZVpJUDY0RXh0cmFGaWVsZDpmdW5jdGlvbihXKXtpZih0aGlzLmV4dHJhRmllbGRzWzFdKXt2YXIgWj1uZXcgaih0aGlzLmV4dHJhRmllbGRzWzFd'@; put 'LnZhbHVlKTt0aGlzLnVuY29tcHJlc3NlZFNpemU9PT1QLk1BWF9WQUxVRV8zMkJJVFMmJih0aGlzLnVuY29tcHJlc3NlZFNpemU9Wi5yZWFkSW50KDgpKSx0aGlzLmNvbXByZXNzZWRTaXplPT09UC5NQVhfVkFMVUVfMzJCSVRTJiYodGhpcy5jb21wcmVzc2VkU2l6ZT1aLnJlYWRJbnQoOCkp'@; put 'LHRoaXMubG9jYWxIZWFkZXJPZmZzZXQ9PT1QLk1BWF9WQUxVRV8zMkJJVFMmJih0aGlzLmxvY2FsSGVhZGVyT2Zmc2V0PVoucmVhZEludCg4KSksdGhpcy5kaXNrTnVtYmVyU3RhcnQ9PT1QLk1BWF9WQUxVRV8zMkJJVFMmJih0aGlzLmRpc2tOdW1iZXJTdGFydD1aLnJlYWRJbnQoNCkpfX0s'@; put 'cmVhZEV4dHJhRmllbGRzOmZ1bmN0aW9uKFcpe3ZhciBYLFEscSxaPVcuaW5kZXg7Zm9yKHRoaXMuZXh0cmFGaWVsZHM9dGhpcy5leHRyYUZpZWxkc3x8e307Vy5pbmRleDxaK3RoaXMuZXh0cmFGaWVsZHNMZW5ndGg7KVg9Vy5yZWFkSW50KDIpLFE9Vy5yZWFkSW50KDIpLHE9Vy5yZWFkU3Ry'@; put 'aW5nKFEpLHRoaXMuZXh0cmFGaWVsZHNbWF09e2lkOlgsbGVuZ3RoOlEsdmFsdWU6cX19LGhhbmRsZVVURjg6ZnVuY3Rpb24oKXtpZih0aGlzLnVzZVVURjgoKSl0aGlzLmZpbGVOYW1lPVkudXRmOGRlY29kZSh0aGlzLmZpbGVOYW1lKSx0aGlzLmZpbGVDb21tZW50PVkudXRmOGRlY29kZSh0'@; put 'aGlzLmZpbGVDb21tZW50KTtlbHNle3ZhciBXPXRoaXMuZmluZEV4dHJhRmllbGRVbmljb2RlUGF0aCgpO251bGwhPT1XJiYodGhpcy5maWxlTmFtZT1XKTt2YXIgWj10aGlzLmZpbmRFeHRyYUZpZWxkVW5pY29kZUNvbW1lbnQoKTtudWxsIT09WiYmKHRoaXMuZmlsZUNvbW1lbnQ9Wil9fSxm'@; put 'aW5kRXh0cmFGaWVsZFVuaWNvZGVQYXRoOmZ1bmN0aW9uKCl7dmFyIFc9dGhpcy5leHRyYUZpZWxkc1syODc4OV07aWYoVyl7dmFyIFo9bmV3IGooVy52YWx1ZSk7cmV0dXJuIDEhPT1aLnJlYWRJbnQoMSl8fFkuY3JjMzIodGhpcy5maWxlTmFtZSkhPT1aLnJlYWRJbnQoNCk/bnVsbDpZLnV0'@; put 'ZjhkZWNvZGUoWi5yZWFkU3RyaW5nKFcubGVuZ3RoLTUpKX1yZXR1cm4gbnVsbH0sZmluZEV4dHJhRmllbGRVbmljb2RlQ29tbWVudDpmdW5jdGlvbigpe3ZhciBXPXRoaXMuZXh0cmFGaWVsZHNbMjU0NjFdO2lmKFcpe3ZhciBaPW5ldyBqKFcudmFsdWUpO3JldHVybiAxIT09Wi5yZWFkSW50'@; put 'KDEpfHxZLmNyYzMyKHRoaXMuZmlsZUNvbW1lbnQpIT09Wi5yZWFkSW50KDQpP251bGw6WS51dGY4ZGVjb2RlKFoucmVhZFN0cmluZyhXLmxlbmd0aC01KSl9cmV0dXJuIG51bGx9fSxILmV4cG9ydHM9Qn0seyIuL2NvbXByZXNzZWRPYmplY3QiOjIsIi4vb2JqZWN0IjoxMywiLi9zdHJpbmdS'@; put 'ZWFkZXIiOjE1LCIuL3V0aWxzIjoyMX1dLDI0OltmdW5jdGlvbihGLEgsUil7InVzZSBzdHJpY3QiO3ZhciBCPXt9OygwLEYoIi4vbGliL3V0aWxzL2NvbW1vbiIpLmFzc2lnbikoQixGKCIuL2xpYi9kZWZsYXRlIiksRigiLi9saWIvaW5mbGF0ZSIpLEYoIi4vbGliL3psaWIvY29uc3RhbnRz'@; put 'IikpLEguZXhwb3J0cz1CfSx7Ii4vbGliL2RlZmxhdGUiOjI1LCIuL2xpYi9pbmZsYXRlIjoyNiwiLi9saWIvdXRpbHMvY29tbW9uIjoyNywiLi9saWIvemxpYi9jb25zdGFudHMiOjMwfV0sMjU6W2Z1bmN0aW9uKEYsSCxSKXsidXNlIHN0cmljdCI7dmFyIGo9RigiLi96bGliL2RlZmxhdGUu'@; put 'anMiKSxQPUYoIi4vdXRpbHMvY29tbW9uIiksTD1GKCIuL3V0aWxzL3N0cmluZ3MiKSxZPUYoIi4vemxpYi9tZXNzYWdlcyIpLEI9RigiLi96bGliL3pzdHJlYW0iKSxzZT1mdW5jdGlvbihTZSl7dGhpcy5vcHRpb25zPVAuYXNzaWduKHtsZXZlbDotMSxtZXRob2Q6OCxjaHVua1NpemU6MTYz'@; put 'ODQsd2luZG93Qml0czoxNSxtZW1MZXZlbDo4LHN0cmF0ZWd5OjAsdG86IiJ9LFNlfHx7fSk7dmFyIHplPXRoaXMub3B0aW9uczt6ZS5yYXcmJnplLndpbmRvd0JpdHM+MD96ZS53aW5kb3dCaXRzPS16ZS53aW5kb3dCaXRzOnplLmd6aXAmJnplLndpbmRvd0JpdHM+MCYmemUud2luZG93Qml0'@; put 'czwxNiYmKHplLndpbmRvd0JpdHMrPTE2KSx0aGlzLmVycj0wLHRoaXMubXNnPSIiLHRoaXMuZW5kZWQ9ITEsdGhpcy5jaHVua3M9W10sdGhpcy5zdHJtPW5ldyBCLHRoaXMuc3RybS5hdmFpbF9vdXQ9MDt2YXIgej1qLmRlZmxhdGVJbml0Mih0aGlzLnN0cm0semUubGV2ZWwsemUubWV0aG9k'@; put 'LHplLndpbmRvd0JpdHMsemUubWVtTGV2ZWwsemUuc3RyYXRlZ3kpO2lmKDAhPT16KXRocm93IG5ldyBFcnJvcihZW3pdKTt6ZS5oZWFkZXImJmouZGVmbGF0ZVNldEhlYWRlcih0aGlzLnN0cm0semUuaGVhZGVyKX07ZnVuY3Rpb24gZ2UoU2UsemUpe3ZhciB6PW5ldyBzZSh6ZSk7aWYoei5w'@; put 'dXNoKFNlLCEwKSx6LmVycil0aHJvdyB6Lm1zZztyZXR1cm4gei5yZXN1bHR9c2UucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oU2UsemUpe3ZhciB5LHgsej10aGlzLnN0cm0sZz10aGlzLm9wdGlvbnMuY2h1bmtTaXplO2lmKHRoaXMuZW5kZWQpcmV0dXJuITE7eD16ZT09PX5+emU/emU6ITA9'@; put 'PT16ZT80OjAsei5pbnB1dD0ic3RyaW5nIj09dHlwZW9mIFNlP0wuc3RyaW5nMmJ1ZihTZSk6U2Usei5uZXh0X2luPTAsei5hdmFpbF9pbj16LmlucHV0Lmxlbmd0aDtkb3tpZigwPT09ei5hdmFpbF9vdXQmJih6Lm91dHB1dD1uZXcgUC5CdWY4KGcpLHoubmV4dF9vdXQ9MCx6LmF2YWlsX291'@; put 'dD1nKSwxIT09KHk9ai5kZWZsYXRlKHoseCkpJiYwIT09eSlyZXR1cm4gdGhpcy5vbkVuZCh5KSx0aGlzLmVuZGVkPSEwLCExOygwPT09ei5hdmFpbF9vdXR8fDA9PT16LmF2YWlsX2luJiY0PT09eCkmJnRoaXMub25EYXRhKCJzdHJpbmciPT09dGhpcy5vcHRpb25zLnRvP0wuYnVmMmJpbnN0'@; put 'cmluZyhQLnNocmlua0J1Zih6Lm91dHB1dCx6Lm5leHRfb3V0KSk6UC5zaHJpbmtCdWYoei5vdXRwdXQsei5uZXh0X291dCkpfXdoaWxlKCh6LmF2YWlsX2luPjB8fDA9PT16LmF2YWlsX291dCkmJjEhPT15KTtyZXR1cm4gNCE9PXh8fCh5PWouZGVmbGF0ZUVuZCh0aGlzLnN0cm0pLHRoaXMu'@; put 'b25FbmQoeSksdGhpcy5lbmRlZD0hMCwwPT09eSl9LHNlLnByb3RvdHlwZS5vbkRhdGE9ZnVuY3Rpb24oU2Upe3RoaXMuY2h1bmtzLnB1c2goU2UpfSxzZS5wcm90b3R5cGUub25FbmQ9ZnVuY3Rpb24oU2UpezA9PT1TZSYmKHRoaXMucmVzdWx0PSJzdHJpbmciPT09dGhpcy5vcHRpb25zLnRv'@; put 'P3RoaXMuY2h1bmtzLmpvaW4oIiIpOlAuZmxhdHRlbkNodW5rcyh0aGlzLmNodW5rcykpLHRoaXMuY2h1bmtzPVtdLHRoaXMuZXJyPVNlLHRoaXMubXNnPXRoaXMuc3RybS5tc2d9LFIuRGVmbGF0ZT1zZSxSLmRlZmxhdGU9Z2UsUi5kZWZsYXRlUmF3PWZ1bmN0aW9uIF9lKFNlLHplKXtyZXR1'@; put 'cm4oemU9emV8fHt9KS5yYXc9ITAsZ2UoU2UsemUpfSxSLmd6aXA9ZnVuY3Rpb24gVGUoU2UsemUpe3JldHVybih6ZT16ZXx8e30pLmd6aXA9ITAsZ2UoU2UsemUpfX0seyIuL3V0aWxzL2NvbW1vbiI6MjcsIi4vdXRpbHMvc3RyaW5ncyI6MjgsIi4vemxpYi9kZWZsYXRlLmpzIjozMiwiLi96'@; put 'bGliL21lc3NhZ2VzIjozNywiLi96bGliL3pzdHJlYW0iOjM5fV0sMjY6W2Z1bmN0aW9uKEYsSCxSKXsidXNlIHN0cmljdCI7dmFyIGo9RigiLi96bGliL2luZmxhdGUuanMiKSxQPUYoIi4vdXRpbHMvY29tbW9uIiksTD1GKCIuL3V0aWxzL3N0cmluZ3MiKSxZPUYoIi4vemxpYi9jb25zdGFu'@; put 'dHMiKSxCPUYoIi4vemxpYi9tZXNzYWdlcyIpLFc9RigiLi96bGliL3pzdHJlYW0iKSxaPUYoIi4vemxpYi9nemhlYWRlciIpLFg9ZnVuY3Rpb24odGUpe3RoaXMub3B0aW9ucz1QLmFzc2lnbih7Y2h1bmtTaXplOjE2Mzg0LHdpbmRvd0JpdHM6MCx0bzoiIn0sdGV8fHt9KTt2YXIgaWU9dGhp'@; put 'cy5vcHRpb25zO2llLnJhdyYmaWUud2luZG93Qml0cz49MCYmaWUud2luZG93Qml0czwxNiYmKGllLndpbmRvd0JpdHM9LWllLndpbmRvd0JpdHMsMD09PWllLndpbmRvd0JpdHMmJihpZS53aW5kb3dCaXRzPS0xNSkpLGllLndpbmRvd0JpdHM+PTAmJmllLndpbmRvd0JpdHM8MTYmJiEodGUm'@; put 'JnRlLndpbmRvd0JpdHMpJiYoaWUud2luZG93Qml0cys9MzIpLGllLndpbmRvd0JpdHM+MTUmJmllLndpbmRvd0JpdHM8NDgmJigxNSZpZS53aW5kb3dCaXRzfHwoaWUud2luZG93Qml0c3w9MTUpKSx0aGlzLmVycj0wLHRoaXMubXNnPSIiLHRoaXMuZW5kZWQ9ITEsdGhpcy5jaHVua3M9W10s'@; put 'dGhpcy5zdHJtPW5ldyBXLHRoaXMuc3RybS5hdmFpbF9vdXQ9MDt2YXIgc2U9ai5pbmZsYXRlSW5pdDIodGhpcy5zdHJtLGllLndpbmRvd0JpdHMpO2lmKHNlIT09WS5aX09LKXRocm93IG5ldyBFcnJvcihCW3NlXSk7dGhpcy5oZWFkZXI9bmV3IFosai5pbmZsYXRlR2V0SGVhZGVyKHRoaXMu'@; put 'c3RybSx0aGlzLmhlYWRlcil9O2Z1bmN0aW9uIFEodGUsaWUpe3ZhciBzZT1uZXcgWChpZSk7aWYoc2UucHVzaCh0ZSwhMCksc2UuZXJyKXRocm93IHNlLm1zZztyZXR1cm4gc2UucmVzdWx0fVgucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24odGUsaWUpe3ZhciBfZSxUZSxTZSx6ZSx6LHNlPXRo'@; put 'aXMuc3RybSxnZT10aGlzLm9wdGlvbnMuY2h1bmtTaXplO2lmKHRoaXMuZW5kZWQpcmV0dXJuITE7VGU9aWU9PT1+fmllP2llOiEwPT09aWU/WS5aX0ZJTklTSDpZLlpfTk9fRkxVU0gsc2UuaW5wdXQ9InN0cmluZyI9PXR5cGVvZiB0ZT9MLmJpbnN0cmluZzJidWYodGUpOnRlLHNlLm5leHRf'@; put 'aW49MCxzZS5hdmFpbF9pbj1zZS5pbnB1dC5sZW5ndGg7ZG97aWYoMD09PXNlLmF2YWlsX291dCYmKHNlLm91dHB1dD1uZXcgUC5CdWY4KGdlKSxzZS5uZXh0X291dD0wLHNlLmF2YWlsX291dD1nZSksKF9lPWouaW5mbGF0ZShzZSxZLlpfTk9fRkxVU0gpKSE9PVkuWl9TVFJFQU1fRU5EJiZf'@; put 'ZSE9PVkuWl9PSylyZXR1cm4gdGhpcy5vbkVuZChfZSksdGhpcy5lbmRlZD0hMCwhMTtzZS5uZXh0X291dCYmKDA9PT1zZS5hdmFpbF9vdXR8fF9lPT09WS5aX1NUUkVBTV9FTkR8fDA9PT1zZS5hdmFpbF9pbiYmVGU9PT1ZLlpfRklOSVNIKSYmKCJzdHJpbmciPT09dGhpcy5vcHRpb25zLnRv'@; put 'PyhTZT1MLnV0Zjhib3JkZXIoc2Uub3V0cHV0LHNlLm5leHRfb3V0KSx6ZT1zZS5uZXh0X291dC1TZSx6PUwuYnVmMnN0cmluZyhzZS5vdXRwdXQsU2UpLHNlLm5leHRfb3V0PXplLHNlLmF2YWlsX291dD1nZS16ZSx6ZSYmUC5hcnJheVNldChzZS5vdXRwdXQsc2Uub3V0cHV0LFNlLHplLDAp'@; put 'LHRoaXMub25EYXRhKHopKTp0aGlzLm9uRGF0YShQLnNocmlua0J1ZihzZS5vdXRwdXQsc2UubmV4dF9vdXQpKSl9d2hpbGUoc2UuYXZhaWxfaW4+MCYmX2UhPT1ZLlpfU1RSRUFNX0VORCk7cmV0dXJuIF9lPT09WS5aX1NUUkVBTV9FTkQmJihUZT1ZLlpfRklOSVNIKSxUZSE9PVkuWl9GSU5J'@; put 'U0h8fChfZT1qLmluZmxhdGVFbmQodGhpcy5zdHJtKSx0aGlzLm9uRW5kKF9lKSx0aGlzLmVuZGVkPSEwLF9lPT09WS5aX09LKX0sWC5wcm90b3R5cGUub25EYXRhPWZ1bmN0aW9uKHRlKXt0aGlzLmNodW5rcy5wdXNoKHRlKX0sWC5wcm90b3R5cGUub25FbmQ9ZnVuY3Rpb24odGUpe3RlPT09'@; put 'WS5aX09LJiYodGhpcy5yZXN1bHQ9InN0cmluZyI9PT10aGlzLm9wdGlvbnMudG8/dGhpcy5jaHVua3Muam9pbigiIik6UC5mbGF0dGVuQ2h1bmtzKHRoaXMuY2h1bmtzKSksdGhpcy5jaHVua3M9W10sdGhpcy5lcnI9dGUsdGhpcy5tc2c9dGhpcy5zdHJtLm1zZ30sUi5JbmZsYXRlPVgsUi5p'@; put 'bmZsYXRlPVEsUi5pbmZsYXRlUmF3PWZ1bmN0aW9uIHEodGUsaWUpe3JldHVybihpZT1pZXx8e30pLnJhdz0hMCxRKHRlLGllKX0sUi51bmd6aXA9UX0seyIuL3V0aWxzL2NvbW1vbiI6MjcsIi4vdXRpbHMvc3RyaW5ncyI6MjgsIi4vemxpYi9jb25zdGFudHMiOjMwLCIuL3psaWIvZ3poZWFk'@; put 'ZXIiOjMzLCIuL3psaWIvaW5mbGF0ZS5qcyI6MzUsIi4vemxpYi9tZXNzYWdlcyI6MzcsIi4vemxpYi96c3RyZWFtIjozOX1dLDI3OltmdW5jdGlvbihGLEgsUil7InVzZSBzdHJpY3QiO3ZhciBqPXR5cGVvZiBVaW50OEFycmF5PCJ1IiYmdHlwZW9mIFVpbnQxNkFycmF5PCJ1IiYmdHlwZW9m'@; put 'IEludDMyQXJyYXk8InUiO1IuYXNzaWduPWZ1bmN0aW9uKFkpe2Zvcih2YXIgQj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSk7Qi5sZW5ndGg7KXt2YXIgVz1CLnNoaWZ0KCk7aWYoVyl7aWYoIm9iamVjdCIhPXR5cGVvZiBXKXRocm93IG5ldyBUeXBlRXJyb3IoVysi'@; put 'bXVzdCBiZSBub24tb2JqZWN0Iik7Zm9yKHZhciBaIGluIFcpVy5oYXNPd25Qcm9wZXJ0eShaKSYmKFlbWl09V1taXSl9fXJldHVybiBZfSxSLnNocmlua0J1Zj1mdW5jdGlvbihZLEIpe3JldHVybiBZLmxlbmd0aD09PUI/WTpZLnN1YmFycmF5P1kuc3ViYXJyYXkoMCxCKTooWS5sZW5ndGg9'@; put 'QixZKX07dmFyIFA9e2FycmF5U2V0OmZ1bmN0aW9uKFksQixXLFosWCl7aWYoQi5zdWJhcnJheSYmWS5zdWJhcnJheSlZLnNldChCLnN1YmFycmF5KFcsVytaKSxYKTtlbHNlIGZvcih2YXIgUT0wO1E8WjtRKyspWVtYK1FdPUJbVytRXX0sZmxhdHRlbkNodW5rczpmdW5jdGlvbihZKXt2YXIg'@; put 'QixXLFosWCxRLHE7Zm9yKFo9MCxCPTAsVz1ZLmxlbmd0aDtCPFc7QisrKVorPVlbQl0ubGVuZ3RoO2ZvcihxPW5ldyBVaW50OEFycmF5KFopLFg9MCxCPTAsVz1ZLmxlbmd0aDtCPFc7QisrKXEuc2V0KFE9WVtCXSxYKSxYKz1RLmxlbmd0aDtyZXR1cm4gcX19LEw9e2FycmF5U2V0OmZ1bmN0'@; put 'aW9uKFksQixXLFosWCl7Zm9yKHZhciBRPTA7UTxaO1ErKylZW1grUV09QltXK1FdfSxmbGF0dGVuQ2h1bmtzOmZ1bmN0aW9uKFkpe3JldHVybltdLmNvbmNhdC5hcHBseShbXSxZKX19O1Iuc2V0VHlwZWQ9ZnVuY3Rpb24oWSl7WT8oUi5CdWY4PVVpbnQ4QXJyYXksUi5CdWYxNj1VaW50MTZB'@; put 'cnJheSxSLkJ1ZjMyPUludDMyQXJyYXksUi5hc3NpZ24oUixQKSk6KFIuQnVmOD1BcnJheSxSLkJ1ZjE2PUFycmF5LFIuQnVmMzI9QXJyYXksUi5hc3NpZ24oUixMKSl9LFIuc2V0VHlwZWQoail9LHt9XSwyODpbZnVuY3Rpb24oRixILFIpeyJ1c2Ugc3RyaWN0Ijt2YXIgaj1GKCIuL2NvbW1v'@; put 'biIpLFA9ITAsTD0hMDt0cnl7U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLFswXSl9Y2F0Y2h7UD0hMX10cnl7U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLG5ldyBVaW50OEFycmF5KDEpKX1jYXRjaHtMPSExfWZvcih2YXIgWT1uZXcgai5CdWY4KDI1NiksQj0wO0I8MjU2'@; put 'O0IrKylZW0JdPUI+PTI1Mj82OkI+PTI0OD81OkI+PTI0MD80OkI+PTIyND8zOkI+PTE5Mj8yOjE7ZnVuY3Rpb24gVyhaLFgpe2lmKFg8NjU1MzcmJihaLnN1YmFycmF5JiZMfHwhWi5zdWJhcnJheSYmUCkpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxqLnNocmlua0J1'@; put 'ZihaLFgpKTtmb3IodmFyIFE9IiIscT0wO3E8WDtxKyspUSs9U3RyaW5nLmZyb21DaGFyQ29kZShaW3FdKTtyZXR1cm4gUX1ZWzI1NF09WVsyNTRdPTEsUi5zdHJpbmcyYnVmPWZ1bmN0aW9uKFope3ZhciBYLFEscSx0ZSxpZSxzZT1aLmxlbmd0aCxnZT0wO2Zvcih0ZT0wO3RlPHNlO3RlKysp'@; put 'NTUyOTY9PSg2NDUxMiYoUT1aLmNoYXJDb2RlQXQodGUpKSkmJnRlKzE8c2UmJjU2MzIwPT0oNjQ1MTImKHE9Wi5jaGFyQ29kZUF0KHRlKzEpKSkmJihRPTY1NTM2KyhRLTU1Mjk2PDwxMCkrKHEtNTYzMjApLHRlKyspLGdlKz1RPDEyOD8xOlE8MjA0OD8yOlE8NjU1MzY/Mzo0O2ZvcihYPW5l'@; put 'dyBqLkJ1ZjgoZ2UpLGllPTAsdGU9MDtpZTxnZTt0ZSsrKTU1Mjk2PT0oNjQ1MTImKFE9Wi5jaGFyQ29kZUF0KHRlKSkpJiZ0ZSsxPHNlJiY1NjMyMD09KDY0NTEyJihxPVouY2hhckNvZGVBdCh0ZSsxKSkpJiYoUT02NTUzNisoUS01NTI5Njw8MTApKyhxLTU2MzIwKSx0ZSsrKSxRPDEyOD9Y'@; put 'W2llKytdPVE6UTwyMDQ4PyhYW2llKytdPTE5MnxRPj4+NixYW2llKytdPTEyOHw2MyZRKTpRPDY1NTM2PyhYW2llKytdPTIyNHxRPj4+MTIsWFtpZSsrXT0xMjh8UT4+PjYmNjMsWFtpZSsrXT0xMjh8NjMmUSk6KFhbaWUrK109MjQwfFE+Pj4xOCxYW2llKytdPTEyOHxRPj4+MTImNjMsWFtp'@; put 'ZSsrXT0xMjh8UT4+PjYmNjMsWFtpZSsrXT0xMjh8NjMmUSk7cmV0dXJuIFh9LFIuYnVmMmJpbnN0cmluZz1mdW5jdGlvbihaKXtyZXR1cm4gVyhaLFoubGVuZ3RoKX0sUi5iaW5zdHJpbmcyYnVmPWZ1bmN0aW9uKFope2Zvcih2YXIgWD1uZXcgai5CdWY4KFoubGVuZ3RoKSxRPTAscT1YLmxl'@; put 'bmd0aDtRPHE7USsrKVhbUV09Wi5jaGFyQ29kZUF0KFEpO3JldHVybiBYfSxSLmJ1ZjJzdHJpbmc9ZnVuY3Rpb24oWixYKXt2YXIgUSxxLHRlLGllLHNlPVh8fFoubGVuZ3RoLGdlPW5ldyBBcnJheSgyKnNlKTtmb3IocT0wLFE9MDtRPHNlOylpZigodGU9WltRKytdKTwxMjgpZ2VbcSsrXT10'@; put 'ZTtlbHNlIGlmKChpZT1ZW3RlXSk+NClnZVtxKytdPTY1NTMzLFErPWllLTE7ZWxzZXtmb3IodGUmPTI9PT1pZT8zMTozPT09aWU/MTU6NztpZT4xJiZRPHNlOyl0ZT10ZTw8Nnw2MyZaW1ErK10saWUtLTtpZT4xP2dlW3ErK109NjU1MzM6dGU8NjU1MzY/Z2VbcSsrXT10ZTooZ2VbcSsrXT01'@; put 'NTI5NnwodGUtPTY1NTM2KT4+MTAmMTAyMyxnZVtxKytdPTU2MzIwfDEwMjMmdGUpfXJldHVybiBXKGdlLHEpfSxSLnV0Zjhib3JkZXI9ZnVuY3Rpb24oWixYKXt2YXIgUTtmb3IoKFg9WHx8Wi5sZW5ndGgpPloubGVuZ3RoJiYoWD1aLmxlbmd0aCksUT1YLTE7UT49MCYmMTI4PT0oMTkyJlpb'@; put 'UV0pOylRLS07cmV0dXJuIFE8MHx8MD09PVE/WDpRK1lbWltRXV0+WD9ROlh9fSx7Ii4vY29tbW9uIjoyN31dLDI5OltmdW5jdGlvbihGLEgsUil7InVzZSBzdHJpY3QiO0guZXhwb3J0cz1mdW5jdGlvbiBqKFAsTCxZLEIpe2Zvcih2YXIgVz02NTUzNSZQLFo9UD4+PjE2JjY1NTM1LFg9MDsw'@; put 'IT09WTspe1ktPVg9WT4yZTM/MmUzOlk7ZG97Wj1aKyhXPVcrTFtCKytdfDApfDB9d2hpbGUoLS1YKTtXJT02NTUyMSxaJT02NTUyMX1yZXR1cm4gV3xaPDwxNn19LHt9XSwzMDpbZnVuY3Rpb24oRixILFIpe0guZXhwb3J0cz17Wl9OT19GTFVTSDowLFpfUEFSVElBTF9GTFVTSDoxLFpfU1lO'@; put 'Q19GTFVTSDoyLFpfRlVMTF9GTFVTSDozLFpfRklOSVNIOjQsWl9CTE9DSzo1LFpfVFJFRVM6NixaX09LOjAsWl9TVFJFQU1fRU5EOjEsWl9ORUVEX0RJQ1Q6MixaX0VSUk5POi0xLFpfU1RSRUFNX0VSUk9SOi0yLFpfREFUQV9FUlJPUjotMyxaX0JVRl9FUlJPUjotNSxaX05PX0NPTVBSRVNT'@; put 'SU9OOjAsWl9CRVNUX1NQRUVEOjEsWl9CRVNUX0NPTVBSRVNTSU9OOjksWl9ERUZBVUxUX0NPTVBSRVNTSU9OOi0xLFpfRklMVEVSRUQ6MSxaX0hVRkZNQU5fT05MWToyLFpfUkxFOjMsWl9GSVhFRDo0LFpfREVGQVVMVF9TVFJBVEVHWTowLFpfQklOQVJZOjAsWl9URVhUOjEsWl9VTktOT1dO'@; put 'OjIsWl9ERUZMQVRFRDo4fX0se31dLDMxOltmdW5jdGlvbihGLEgsUil7InVzZSBzdHJpY3QiO3ZhciBQPWZ1bmN0aW9uIGooKXtmb3IodmFyIFksQj1bXSxXPTA7VzwyNTY7VysrKXtZPVc7Zm9yKHZhciBaPTA7Wjw4O1orKylZPTEmWT8zOTg4MjkyMzg0Xlk+Pj4xOlk+Pj4xO0JbV109WX1y'@; put 'ZXR1cm4gQn0oKTtILmV4cG9ydHM9ZnVuY3Rpb24gTChZLEIsVyxaKXt2YXIgWD1QLFE9WitXO1k9flk7Zm9yKHZhciBxPVo7cTxRO3ErKylZPVk+Pj44XlhbMjU1JihZXkJbcV0pXTtyZXR1cm5+WX19LHt9XSwzMjpbZnVuY3Rpb24oRixILFIpeyJ1c2Ugc3RyaWN0Ijt2YXIgaj1GKCIuLi91'@; put 'dGlscy9jb21tb24iKSxQPUYoIi4vdHJlZXMiKSxMPUYoIi4vYWRsZXIzMiIpLFk9RigiLi9jcmMzMiIpLEI9RigiLi9tZXNzYWdlcyIpLFc9MCx0ZT0wLHNlPS0yLHg9MixDPTgsQT0yODYsYWU9MzAsbmU9MTksbGU9MipBKzEsd2U9MTUsWmU9MyxRZT0yNTgsYXQ9UWUrWmUrMSx2ZT00MixS'@; put 'ZT0xMTM7ZnVuY3Rpb24gSmUoV2UsQXQpe3JldHVybiBXZS5tc2c9QltBdF0sQXR9ZnVuY3Rpb24gb24oV2Upe3JldHVybihXZTw8MSktKFdlPjQ/OTowKX1mdW5jdGlvbiB5dChXZSl7Zm9yKHZhciBBdD1XZS5sZW5ndGg7LS1BdD49MDspV2VbQXRdPTB9ZnVuY3Rpb24gTXQoV2Upe3ZhciBB'@; put 'dD1XZS5zdGF0ZSxpcj1BdC5wZW5kaW5nO2lyPldlLmF2YWlsX291dCYmKGlyPVdlLmF2YWlsX291dCksMCE9PWlyJiYoai5hcnJheVNldChXZS5vdXRwdXQsQXQucGVuZGluZ19idWYsQXQucGVuZGluZ19vdXQsaXIsV2UubmV4dF9vdXQpLFdlLm5leHRfb3V0Kz1pcixBdC5wZW5kaW5nX291'@; put 'dCs9aXIsV2UudG90YWxfb3V0Kz1pcixXZS5hdmFpbF9vdXQtPWlyLEF0LnBlbmRpbmctPWlyLDA9PT1BdC5wZW5kaW5nJiYoQXQucGVuZGluZ19vdXQ9MCkpfWZ1bmN0aW9uIEl0KFdlLEF0KXtQLl90cl9mbHVzaF9ibG9jayhXZSxXZS5ibG9ja19zdGFydD49MD9XZS5ibG9ja19zdGFydDot'@; put 'MSxXZS5zdHJzdGFydC1XZS5ibG9ja19zdGFydCxBdCksV2UuYmxvY2tfc3RhcnQ9V2Uuc3Ryc3RhcnQsTXQoV2Uuc3RybSl9ZnVuY3Rpb24gcnQoV2UsQXQpe1dlLnBlbmRpbmdfYnVmW1dlLnBlbmRpbmcrK109QXR9ZnVuY3Rpb24gS2UoV2UsQXQpe1dlLnBlbmRpbmdfYnVmW1dlLnBlbmRp'@; put 'bmcrK109QXQ+Pj44JjI1NSxXZS5wZW5kaW5nX2J1ZltXZS5wZW5kaW5nKytdPTI1NSZBdH1mdW5jdGlvbiB0dChXZSxBdCxpcixodCl7dmFyIEV0PVdlLmF2YWlsX2luO3JldHVybiBFdD5odCYmKEV0PWh0KSwwPT09RXQ/MDooV2UuYXZhaWxfaW4tPUV0LGouYXJyYXlTZXQoQXQsV2UuaW5w'@; put 'dXQsV2UubmV4dF9pbixFdCxpciksMT09PVdlLnN0YXRlLndyYXA/V2UuYWRsZXI9TChXZS5hZGxlcixBdCxFdCxpcik6Mj09PVdlLnN0YXRlLndyYXAmJihXZS5hZGxlcj1ZKFdlLmFkbGVyLEF0LEV0LGlyKSksV2UubmV4dF9pbis9RXQsV2UudG90YWxfaW4rPUV0LEV0KX1mdW5jdGlvbiBO'@; put 'ZShXZSxBdCl7dmFyIEV0LHpuLGlyPVdlLm1heF9jaGFpbl9sZW5ndGgsaHQ9V2Uuc3Ryc3RhcnQsYW49V2UucHJldl9sZW5ndGgsanQ9V2UubmljZV9tYXRjaCxkaT1XZS5zdHJzdGFydD5XZS53X3NpemUtYXQ/V2Uuc3Ryc3RhcnQtKFdlLndfc2l6ZS1hdCk6MCxjbj1XZS53aW5kb3csZm49'@; put 'V2Uud19tYXNrLERpPVdlLnByZXYsUXQ9V2Uuc3Ryc3RhcnQrUWUsdG49Y25baHQrYW4tMV0sY2E9Y25baHQrYW5dO1dlLnByZXZfbGVuZ3RoPj1XZS5nb29kX21hdGNoJiYoaXI+Pj0yKSxqdD5XZS5sb29rYWhlYWQmJihqdD1XZS5sb29rYWhlYWQpO2Rve2lmKGNuWyhFdD1BdCkrYW5dPT09'@; put 'Y2EmJmNuW0V0K2FuLTFdPT09dG4mJmNuW0V0XT09PWNuW2h0XSYmY25bKytFdF09PT1jbltodCsxXSl7aHQrPTIsRXQrKztkb3t9d2hpbGUoY25bKytodF09PT1jblsrK0V0XSYmY25bKytodF09PT1jblsrK0V0XSYmY25bKytodF09PT1jblsrK0V0XSYmY25bKytodF09PT1jblsrK0V0XSYm'@; put 'Y25bKytodF09PT1jblsrK0V0XSYmY25bKytodF09PT1jblsrK0V0XSYmY25bKytodF09PT1jblsrK0V0XSYmY25bKytodF09PT1jblsrK0V0XSYmaHQ8UXQpO2lmKHpuPVFlLShRdC1odCksaHQ9UXQtUWUsem4+YW4pe2lmKFdlLm1hdGNoX3N0YXJ0PUF0LGFuPXpuLHpuPj1qdClicmVhazt0'@; put 'bj1jbltodCthbi0xXSxjYT1jbltodCthbl19fX13aGlsZSgoQXQ9RGlbQXQmZm5dKT5kaSYmMCE9LS1pcik7cmV0dXJuIGFuPD1XZS5sb29rYWhlYWQ/YW46V2UubG9va2FoZWFkfWZ1bmN0aW9uIHV0KFdlKXt2YXIgaXIsaHQsRXQsem4sYW4sQXQ9V2Uud19zaXplO2Rve2lmKHpuPVdlLndp'@; put 'bmRvd19zaXplLVdlLmxvb2thaGVhZC1XZS5zdHJzdGFydCxXZS5zdHJzdGFydD49QXQrKEF0LWF0KSl7ai5hcnJheVNldChXZS53aW5kb3csV2Uud2luZG93LEF0LEF0LDApLFdlLm1hdGNoX3N0YXJ0LT1BdCxXZS5zdHJzdGFydC09QXQsV2UuYmxvY2tfc3RhcnQtPUF0LGlyPWh0PVdlLmhh'@; put 'c2hfc2l6ZTtkb3tFdD1XZS5oZWFkWy0taXJdLFdlLmhlYWRbaXJdPUV0Pj1BdD9FdC1BdDowfXdoaWxlKC0taHQpO2lyPWh0PUF0O2Rve0V0PVdlLnByZXZbLS1pcl0sV2UucHJldltpcl09RXQ+PUF0P0V0LUF0OjB9d2hpbGUoLS1odCk7em4rPUF0fWlmKDA9PT1XZS5zdHJtLmF2YWlsX2lu'@; put 'KWJyZWFrO2lmKGh0PXR0KFdlLnN0cm0sV2Uud2luZG93LFdlLnN0cnN0YXJ0K1dlLmxvb2thaGVhZCx6biksV2UubG9va2FoZWFkKz1odCxXZS5sb29rYWhlYWQrV2UuaW5zZXJ0Pj1aZSlmb3IoV2UuaW5zX2g9V2Uud2luZG93W2FuPVdlLnN0cnN0YXJ0LVdlLmluc2VydF0sV2UuaW5zX2g9'@; put 'KFdlLmluc19oPDxXZS5oYXNoX3NoaWZ0XldlLndpbmRvd1thbisxXSkmV2UuaGFzaF9tYXNrO1dlLmluc2VydCYmKFdlLmluc19oPShXZS5pbnNfaDw8V2UuaGFzaF9zaGlmdF5XZS53aW5kb3dbYW4rWmUtMV0pJldlLmhhc2hfbWFzayxXZS5wcmV2W2FuJldlLndfbWFza109V2UuaGVhZFtX'@; put 'ZS5pbnNfaF0sV2UuaGVhZFtXZS5pbnNfaF09YW4sYW4rKyxXZS5pbnNlcnQtLSwhKFdlLmxvb2thaGVhZCtXZS5pbnNlcnQ8WmUpKTspO313aGlsZShXZS5sb29rYWhlYWQ8YXQmJjAhPT1XZS5zdHJtLmF2YWlsX2luKX1mdW5jdGlvbiBMdChXZSxBdCl7Zm9yKHZhciBpcixodDs7KXtpZihX'@; put 'ZS5sb29rYWhlYWQ8YXQpe2lmKHV0KFdlKSxXZS5sb29rYWhlYWQ8YXQmJkF0PT09VylyZXR1cm4gMTtpZigwPT09V2UubG9va2FoZWFkKWJyZWFrfWlmKGlyPTAsV2UubG9va2FoZWFkPj1aZSYmKFdlLmluc19oPShXZS5pbnNfaDw8V2UuaGFzaF9zaGlmdF5XZS53aW5kb3dbV2Uuc3Ryc3Rh'@; put 'cnQrWmUtMV0pJldlLmhhc2hfbWFzayxpcj1XZS5wcmV2W1dlLnN0cnN0YXJ0JldlLndfbWFza109V2UuaGVhZFtXZS5pbnNfaF0sV2UuaGVhZFtXZS5pbnNfaF09V2Uuc3Ryc3RhcnQpLDAhPT1pciYmV2Uuc3Ryc3RhcnQtaXI8PVdlLndfc2l6ZS1hdCYmKFdlLm1hdGNoX2xlbmd0aD1OZShX'@; put 'ZSxpcikpLFdlLm1hdGNoX2xlbmd0aD49WmUpaWYoaHQ9UC5fdHJfdGFsbHkoV2UsV2Uuc3Ryc3RhcnQtV2UubWF0Y2hfc3RhcnQsV2UubWF0Y2hfbGVuZ3RoLVplKSxXZS5sb29rYWhlYWQtPVdlLm1hdGNoX2xlbmd0aCxXZS5tYXRjaF9sZW5ndGg8PVdlLm1heF9sYXp5X21hdGNoJiZXZS5s'@; put 'b29rYWhlYWQ+PVplKXtXZS5tYXRjaF9sZW5ndGgtLTtkb3tXZS5zdHJzdGFydCsrLFdlLmluc19oPShXZS5pbnNfaDw8V2UuaGFzaF9zaGlmdF5XZS53aW5kb3dbV2Uuc3Ryc3RhcnQrWmUtMV0pJldlLmhhc2hfbWFzayxpcj1XZS5wcmV2W1dlLnN0cnN0YXJ0JldlLndfbWFza109V2UuaGVh'@; put 'ZFtXZS5pbnNfaF0sV2UuaGVhZFtXZS5pbnNfaF09V2Uuc3Ryc3RhcnR9d2hpbGUoMCE9LS1XZS5tYXRjaF9sZW5ndGgpO1dlLnN0cnN0YXJ0Kyt9ZWxzZSBXZS5zdHJzdGFydCs9V2UubWF0Y2hfbGVuZ3RoLFdlLm1hdGNoX2xlbmd0aD0wLFdlLmluc19oPVdlLndpbmRvd1tXZS5zdHJzdGFy'@; put 'dF0sV2UuaW5zX2g9KFdlLmluc19oPDxXZS5oYXNoX3NoaWZ0XldlLndpbmRvd1tXZS5zdHJzdGFydCsxXSkmV2UuaGFzaF9tYXNrO2Vsc2UgaHQ9UC5fdHJfdGFsbHkoV2UsMCxXZS53aW5kb3dbV2Uuc3Ryc3RhcnRdKSxXZS5sb29rYWhlYWQtLSxXZS5zdHJzdGFydCsrO2lmKGh0JiYoSXQo'@; put 'V2UsITEpLDA9PT1XZS5zdHJtLmF2YWlsX291dCkpcmV0dXJuIDF9cmV0dXJuIFdlLmluc2VydD1XZS5zdHJzdGFydDxaZS0xP1dlLnN0cnN0YXJ0OlplLTEsND09PUF0PyhJdChXZSwhMCksMD09PVdlLnN0cm0uYXZhaWxfb3V0PzM6NCk6V2UubGFzdF9saXQmJihJdChXZSwhMSksMD09PVdl'@; put 'LnN0cm0uYXZhaWxfb3V0KT8xOjJ9ZnVuY3Rpb24gUHQoV2UsQXQpe2Zvcih2YXIgaXIsaHQsRXQ7Oyl7aWYoV2UubG9va2FoZWFkPGF0KXtpZih1dChXZSksV2UubG9va2FoZWFkPGF0JiZBdD09PVcpcmV0dXJuIDE7aWYoMD09PVdlLmxvb2thaGVhZClicmVha31pZihpcj0wLFdlLmxvb2th'@; put 'aGVhZD49WmUmJihXZS5pbnNfaD0oV2UuaW5zX2g8PFdlLmhhc2hfc2hpZnReV2Uud2luZG93W1dlLnN0cnN0YXJ0K1plLTFdKSZXZS5oYXNoX21hc2ssaXI9V2UucHJldltXZS5zdHJzdGFydCZXZS53X21hc2tdPVdlLmhlYWRbV2UuaW5zX2hdLFdlLmhlYWRbV2UuaW5zX2hdPVdlLnN0cnN0'@; put 'YXJ0KSxXZS5wcmV2X2xlbmd0aD1XZS5tYXRjaF9sZW5ndGgsV2UucHJldl9tYXRjaD1XZS5tYXRjaF9zdGFydCxXZS5tYXRjaF9sZW5ndGg9WmUtMSwwIT09aXImJldlLnByZXZfbGVuZ3RoPFdlLm1heF9sYXp5X21hdGNoJiZXZS5zdHJzdGFydC1pcjw9V2Uud19zaXplLWF0JiYoV2UubWF0'@; put 'Y2hfbGVuZ3RoPU5lKFdlLGlyKSxXZS5tYXRjaF9sZW5ndGg8PTUmJigxPT09V2Uuc3RyYXRlZ3l8fFdlLm1hdGNoX2xlbmd0aD09PVplJiZXZS5zdHJzdGFydC1XZS5tYXRjaF9zdGFydD40MDk2KSYmKFdlLm1hdGNoX2xlbmd0aD1aZS0xKSksV2UucHJldl9sZW5ndGg+PVplJiZXZS5tYXRj'@; put 'aF9sZW5ndGg8PVdlLnByZXZfbGVuZ3RoKXtFdD1XZS5zdHJzdGFydCtXZS5sb29rYWhlYWQtWmUsaHQ9UC5fdHJfdGFsbHkoV2UsV2Uuc3Ryc3RhcnQtMS1XZS5wcmV2X21hdGNoLFdlLnByZXZfbGVuZ3RoLVplKSxXZS5sb29rYWhlYWQtPVdlLnByZXZfbGVuZ3RoLTEsV2UucHJldl9sZW5n'@; put 'dGgtPTI7ZG97KytXZS5zdHJzdGFydDw9RXQmJihXZS5pbnNfaD0oV2UuaW5zX2g8PFdlLmhhc2hfc2hpZnReV2Uud2luZG93W1dlLnN0cnN0YXJ0K1plLTFdKSZXZS5oYXNoX21hc2ssaXI9V2UucHJldltXZS5zdHJzdGFydCZXZS53X21hc2tdPVdlLmhlYWRbV2UuaW5zX2hdLFdlLmhlYWRb'@; put 'V2UuaW5zX2hdPVdlLnN0cnN0YXJ0KX13aGlsZSgwIT0tLVdlLnByZXZfbGVuZ3RoKTtpZihXZS5tYXRjaF9hdmFpbGFibGU9MCxXZS5tYXRjaF9sZW5ndGg9WmUtMSxXZS5zdHJzdGFydCsrLGh0JiYoSXQoV2UsITEpLDA9PT1XZS5zdHJtLmF2YWlsX291dCkpcmV0dXJuIDF9ZWxzZSBpZihX'@; put 'ZS5tYXRjaF9hdmFpbGFibGUpe2lmKChodD1QLl90cl90YWxseShXZSwwLFdlLndpbmRvd1tXZS5zdHJzdGFydC0xXSkpJiZJdChXZSwhMSksV2Uuc3Ryc3RhcnQrKyxXZS5sb29rYWhlYWQtLSwwPT09V2Uuc3RybS5hdmFpbF9vdXQpcmV0dXJuIDF9ZWxzZSBXZS5tYXRjaF9hdmFpbGFibGU9'@; put 'MSxXZS5zdHJzdGFydCsrLFdlLmxvb2thaGVhZC0tfXJldHVybiBXZS5tYXRjaF9hdmFpbGFibGUmJihodD1QLl90cl90YWxseShXZSwwLFdlLndpbmRvd1tXZS5zdHJzdGFydC0xXSksV2UubWF0Y2hfYXZhaWxhYmxlPTApLFdlLmluc2VydD1XZS5zdHJzdGFydDxaZS0xP1dlLnN0cnN0YXJ0'@; put 'OlplLTEsND09PUF0PyhJdChXZSwhMCksMD09PVdlLnN0cm0uYXZhaWxfb3V0PzM6NCk6V2UubGFzdF9saXQmJihJdChXZSwhMSksMD09PVdlLnN0cm0uYXZhaWxfb3V0KT8xOjJ9dmFyIElpLHNuPWZ1bmN0aW9uKFdlLEF0LGlyLGh0LEV0KXt0aGlzLmdvb2RfbGVuZ3RoPVdlLHRoaXMubWF4'@; put 'X2xhenk9QXQsdGhpcy5uaWNlX2xlbmd0aD1pcix0aGlzLm1heF9jaGFpbj1odCx0aGlzLmZ1bmM9RXR9O2Z1bmN0aW9uIGZ0KCl7dGhpcy5zdHJtPW51bGwsdGhpcy5zdGF0dXM9MCx0aGlzLnBlbmRpbmdfYnVmPW51bGwsdGhpcy5wZW5kaW5nX2J1Zl9zaXplPTAsdGhpcy5wZW5kaW5nX291'@; put 'dD0wLHRoaXMucGVuZGluZz0wLHRoaXMud3JhcD0wLHRoaXMuZ3poZWFkPW51bGwsdGhpcy5nemluZGV4PTAsdGhpcy5tZXRob2Q9Qyx0aGlzLmxhc3RfZmx1c2g9LTEsdGhpcy53X3NpemU9MCx0aGlzLndfYml0cz0wLHRoaXMud19tYXNrPTAsdGhpcy53aW5kb3c9bnVsbCx0aGlzLndpbmRv'@; put 'd19zaXplPTAsdGhpcy5wcmV2PW51bGwsdGhpcy5oZWFkPW51bGwsdGhpcy5pbnNfaD0wLHRoaXMuaGFzaF9zaXplPTAsdGhpcy5oYXNoX2JpdHM9MCx0aGlzLmhhc2hfbWFzaz0wLHRoaXMuaGFzaF9zaGlmdD0wLHRoaXMuYmxvY2tfc3RhcnQ9MCx0aGlzLm1hdGNoX2xlbmd0aD0wLHRoaXMu'@; put 'cHJldl9tYXRjaD0wLHRoaXMubWF0Y2hfYXZhaWxhYmxlPTAsdGhpcy5zdHJzdGFydD0wLHRoaXMubWF0Y2hfc3RhcnQ9MCx0aGlzLmxvb2thaGVhZD0wLHRoaXMucHJldl9sZW5ndGg9MCx0aGlzLm1heF9jaGFpbl9sZW5ndGg9MCx0aGlzLm1heF9sYXp5X21hdGNoPTAsdGhpcy5sZXZlbD0w'@; put 'LHRoaXMuc3RyYXRlZ3k9MCx0aGlzLmdvb2RfbWF0Y2g9MCx0aGlzLm5pY2VfbWF0Y2g9MCx0aGlzLmR5bl9sdHJlZT1uZXcgai5CdWYxNigyKmxlKSx0aGlzLmR5bl9kdHJlZT1uZXcgai5CdWYxNigyKigyKmFlKzEpKSx0aGlzLmJsX3RyZWU9bmV3IGouQnVmMTYoMiooMipuZSsxKSkseXQo'@; put 'dGhpcy5keW5fbHRyZWUpLHl0KHRoaXMuZHluX2R0cmVlKSx5dCh0aGlzLmJsX3RyZWUpLHRoaXMubF9kZXNjPW51bGwsdGhpcy5kX2Rlc2M9bnVsbCx0aGlzLmJsX2Rlc2M9bnVsbCx0aGlzLmJsX2NvdW50PW5ldyBqLkJ1ZjE2KHdlKzEpLHRoaXMuaGVhcD1uZXcgai5CdWYxNigyKkErMSks'@; put 'eXQodGhpcy5oZWFwKSx0aGlzLmhlYXBfbGVuPTAsdGhpcy5oZWFwX21heD0wLHRoaXMuZGVwdGg9bmV3IGouQnVmMTYoMipBKzEpLHl0KHRoaXMuZGVwdGgpLHRoaXMubF9idWY9MCx0aGlzLmxpdF9idWZzaXplPTAsdGhpcy5sYXN0X2xpdD0wLHRoaXMuZF9idWY9MCx0aGlzLm9wdF9sZW49'@; put 'MCx0aGlzLnN0YXRpY19sZW49MCx0aGlzLm1hdGNoZXM9MCx0aGlzLmluc2VydD0wLHRoaXMuYmlfYnVmPTAsdGhpcy5iaV92YWxpZD0wfWZ1bmN0aW9uIEZyKFdlKXt2YXIgQXQ7cmV0dXJuIFdlJiZXZS5zdGF0ZT8oV2UudG90YWxfaW49V2UudG90YWxfb3V0PTAsV2UuZGF0YV90eXBlPXgs'@; put 'KEF0PVdlLnN0YXRlKS5wZW5kaW5nPTAsQXQucGVuZGluZ19vdXQ9MCxBdC53cmFwPDAmJihBdC53cmFwPS1BdC53cmFwKSxBdC5zdGF0dXM9QXQud3JhcD92ZTpSZSxXZS5hZGxlcj0yPT09QXQud3JhcD8wOjEsQXQubGFzdF9mbHVzaD1XLFAuX3RyX2luaXQoQXQpLHRlKTpKZShXZSxzZSl9'@; put 'ZnVuY3Rpb24gWnQoV2Upe3ZhciBBdD1GcihXZSk7cmV0dXJuIEF0PT09dGUmJmZ1bmN0aW9uIGRuKFdlKXtXZS53aW5kb3dfc2l6ZT0yKldlLndfc2l6ZSx5dChXZS5oZWFkKSxXZS5tYXhfbGF6eV9tYXRjaD1JaVtXZS5sZXZlbF0ubWF4X2xhenksV2UuZ29vZF9tYXRjaD1JaVtXZS5sZXZl'@; put 'bF0uZ29vZF9sZW5ndGgsV2UubmljZV9tYXRjaD1JaVtXZS5sZXZlbF0ubmljZV9sZW5ndGgsV2UubWF4X2NoYWluX2xlbmd0aD1JaVtXZS5sZXZlbF0ubWF4X2NoYWluLFdlLnN0cnN0YXJ0PTAsV2UuYmxvY2tfc3RhcnQ9MCxXZS5sb29rYWhlYWQ9MCxXZS5pbnNlcnQ9MCxXZS5tYXRjaF9s'@; put 'ZW5ndGg9V2UucHJldl9sZW5ndGg9WmUtMSxXZS5tYXRjaF9hdmFpbGFibGU9MCxXZS5pbnNfaD0wfShXZS5zdGF0ZSksQXR9ZnVuY3Rpb24gTG4oV2UsQXQsaXIsaHQsRXQsem4pe2lmKCFXZSlyZXR1cm4gc2U7dmFyIGFuPTE7aWYoLTE9PT1BdCYmKEF0PTYpLGh0PDA/KGFuPTAsaHQ9LWh0'@; put 'KTpodD4xNSYmKGFuPTIsaHQtPTE2KSxFdDwxfHxFdD45fHxpciE9PUN8fGh0PDh8fGh0PjE1fHxBdDwwfHxBdD45fHx6bjwwfHx6bj40KXJldHVybiBKZShXZSxzZSk7OD09PWh0JiYoaHQ9OSk7dmFyIGp0PW5ldyBmdDtyZXR1cm4gV2Uuc3RhdGU9anQsanQuc3RybT1XZSxqdC53cmFwPWFu'@; put 'LGp0Lmd6aGVhZD1udWxsLGp0LndfYml0cz1odCxqdC53X3NpemU9MTw8anQud19iaXRzLGp0LndfbWFzaz1qdC53X3NpemUtMSxqdC5oYXNoX2JpdHM9RXQrNyxqdC5oYXNoX3NpemU9MTw8anQuaGFzaF9iaXRzLGp0Lmhhc2hfbWFzaz1qdC5oYXNoX3NpemUtMSxqdC5oYXNoX3NoaWZ0PX5+'@; put 'KChqdC5oYXNoX2JpdHMrWmUtMSkvWmUpLGp0LndpbmRvdz1uZXcgai5CdWY4KDIqanQud19zaXplKSxqdC5oZWFkPW5ldyBqLkJ1ZjE2KGp0Lmhhc2hfc2l6ZSksanQucHJldj1uZXcgai5CdWYxNihqdC53X3NpemUpLGp0LmxpdF9idWZzaXplPTE8PEV0KzYsanQucGVuZGluZ19idWZfc2l6'@; put 'ZT00Kmp0LmxpdF9idWZzaXplLGp0LnBlbmRpbmdfYnVmPW5ldyBqLkJ1ZjgoanQucGVuZGluZ19idWZfc2l6ZSksanQuZF9idWY9anQubGl0X2J1ZnNpemU+PjEsanQubF9idWY9MypqdC5saXRfYnVmc2l6ZSxqdC5sZXZlbD1BdCxqdC5zdHJhdGVneT16bixqdC5tZXRob2Q9aXIsWnQoV2Up'@; put 'fUlpPVtuZXcgc24oMCwwLDAsMCxmdW5jdGlvbiBKdChXZSxBdCl7dmFyIGlyPTY1NTM1O2Zvcihpcj5XZS5wZW5kaW5nX2J1Zl9zaXplLTUmJihpcj1XZS5wZW5kaW5nX2J1Zl9zaXplLTUpOzspe2lmKFdlLmxvb2thaGVhZDw9MSl7aWYodXQoV2UpLDA9PT1XZS5sb29rYWhlYWQmJkF0PT09'@; put 'VylyZXR1cm4gMTtpZigwPT09V2UubG9va2FoZWFkKWJyZWFrfVdlLnN0cnN0YXJ0Kz1XZS5sb29rYWhlYWQsV2UubG9va2FoZWFkPTA7dmFyIGh0PVdlLmJsb2NrX3N0YXJ0K2lyO2lmKCgwPT09V2Uuc3Ryc3RhcnR8fFdlLnN0cnN0YXJ0Pj1odCkmJihXZS5sb29rYWhlYWQ9V2Uuc3Ryc3Rh'@; put 'cnQtaHQsV2Uuc3Ryc3RhcnQ9aHQsSXQoV2UsITEpLDA9PT1XZS5zdHJtLmF2YWlsX291dCl8fFdlLnN0cnN0YXJ0LVdlLmJsb2NrX3N0YXJ0Pj1XZS53X3NpemUtYXQmJihJdChXZSwhMSksMD09PVdlLnN0cm0uYXZhaWxfb3V0KSlyZXR1cm4gMX1yZXR1cm4gV2UuaW5zZXJ0PTAsND09PUF0'@; put 'PyhJdChXZSwhMCksMD09PVdlLnN0cm0uYXZhaWxfb3V0PzM6NCk6KFdlLnN0cnN0YXJ0PldlLmJsb2NrX3N0YXJ0JiZJdChXZSwhMSksMSl9KSxuZXcgc24oNCw0LDgsNCxMdCksbmV3IHNuKDQsNSwxNiw4LEx0KSxuZXcgc24oNCw2LDMyLDMyLEx0KSxuZXcgc24oNCw0LDE2LDE2LFB0KSxu'@; put 'ZXcgc24oOCwxNiwzMiwzMixQdCksbmV3IHNuKDgsMTYsMTI4LDEyOCxQdCksbmV3IHNuKDgsMzIsMTI4LDI1NixQdCksbmV3IHNuKDMyLDEyOCwyNTgsMTAyNCxQdCksbmV3IHNuKDMyLDI1OCwyNTgsNDA5NixQdCldLFIuZGVmbGF0ZUluaXQ9ZnVuY3Rpb24gb3QoV2UsQXQpe3JldHVybiBM'@; put 'bihXZSxBdCxDLDE1LDgsMCl9LFIuZGVmbGF0ZUluaXQyPUxuLFIuZGVmbGF0ZVJlc2V0PVp0LFIuZGVmbGF0ZVJlc2V0S2VlcD1GcixSLmRlZmxhdGVTZXRIZWFkZXI9ZnVuY3Rpb24ga3QoV2UsQXQpe3JldHVybiBXZSYmV2Uuc3RhdGUmJjI9PT1XZS5zdGF0ZS53cmFwPyhXZS5zdGF0ZS5n'@; put 'emhlYWQ9QXQsdGUpOnNlfSxSLmRlZmxhdGU9ZnVuY3Rpb24genQoV2UsQXQpe3ZhciBpcixodCxFdCx6bjtpZighV2V8fCFXZS5zdGF0ZXx8QXQ+NXx8QXQ8MClyZXR1cm4gV2U/SmUoV2Usc2UpOnNlO2lmKGh0PVdlLnN0YXRlLCFXZS5vdXRwdXR8fCFXZS5pbnB1dCYmMCE9PVdlLmF2YWls'@; put 'X2lufHw2NjY9PT1odC5zdGF0dXMmJjQhPT1BdClyZXR1cm4gSmUoV2UsMD09PVdlLmF2YWlsX291dD8tNTpzZSk7aWYoaHQuc3RybT1XZSxpcj1odC5sYXN0X2ZsdXNoLGh0Lmxhc3RfZmx1c2g9QXQsaHQuc3RhdHVzPT09dmUpaWYoMj09PWh0LndyYXApV2UuYWRsZXI9MCxydChodCwzMSks'@; put 'cnQoaHQsMTM5KSxydChodCw4KSxodC5nemhlYWQ/KHJ0KGh0LChodC5nemhlYWQudGV4dD8xOjApKyhodC5nemhlYWQuaGNyYz8yOjApKyhodC5nemhlYWQuZXh0cmE/NDowKSsoaHQuZ3poZWFkLm5hbWU/ODowKSsoaHQuZ3poZWFkLmNvbW1lbnQ/MTY6MCkpLHJ0KGh0LDI1NSZodC5nemhl'@; put 'YWQudGltZSkscnQoaHQsaHQuZ3poZWFkLnRpbWU+PjgmMjU1KSxydChodCxodC5nemhlYWQudGltZT4+MTYmMjU1KSxydChodCxodC5nemhlYWQudGltZT4+MjQmMjU1KSxydChodCw5PT09aHQubGV2ZWw/MjpodC5zdHJhdGVneT49Mnx8aHQubGV2ZWw8Mj80OjApLHJ0KGh0LDI1NSZodC5n'@; put 'emhlYWQub3MpLGh0Lmd6aGVhZC5leHRyYSYmaHQuZ3poZWFkLmV4dHJhLmxlbmd0aCYmKHJ0KGh0LDI1NSZodC5nemhlYWQuZXh0cmEubGVuZ3RoKSxydChodCxodC5nemhlYWQuZXh0cmEubGVuZ3RoPj44JjI1NSkpLGh0Lmd6aGVhZC5oY3JjJiYoV2UuYWRsZXI9WShXZS5hZGxlcixodC5w'@; put 'ZW5kaW5nX2J1ZixodC5wZW5kaW5nLDApKSxodC5nemluZGV4PTAsaHQuc3RhdHVzPTY5KToocnQoaHQsMCkscnQoaHQsMCkscnQoaHQsMCkscnQoaHQsMCkscnQoaHQsMCkscnQoaHQsOT09PWh0LmxldmVsPzI6aHQuc3RyYXRlZ3k+PTJ8fGh0LmxldmVsPDI/NDowKSxydChodCwzKSxodC5z'@; put 'dGF0dXM9UmUpO2Vsc2V7dmFyIGFuPUMrKGh0LndfYml0cy04PDw0KTw8ODthbnw9KGh0LnN0cmF0ZWd5Pj0yfHxodC5sZXZlbDwyPzA6aHQubGV2ZWw8Nj8xOjY9PT1odC5sZXZlbD8yOjMpPDw2LDAhPT1odC5zdHJzdGFydCYmKGFufD0zMiksYW4rPTMxLWFuJTMxLGh0LnN0YXR1cz1SZSxL'@; put 'ZShodCxhbiksMCE9PWh0LnN0cnN0YXJ0JiYoS2UoaHQsV2UuYWRsZXI+Pj4xNiksS2UoaHQsNjU1MzUmV2UuYWRsZXIpKSxXZS5hZGxlcj0xfWlmKDY5PT09aHQuc3RhdHVzKWlmKGh0Lmd6aGVhZC5leHRyYSl7Zm9yKEV0PWh0LnBlbmRpbmc7aHQuZ3ppbmRleDwoNjU1MzUmaHQuZ3poZWFk'@; put 'LmV4dHJhLmxlbmd0aCkmJihodC5wZW5kaW5nIT09aHQucGVuZGluZ19idWZfc2l6ZXx8KGh0Lmd6aGVhZC5oY3JjJiZodC5wZW5kaW5nPkV0JiYoV2UuYWRsZXI9WShXZS5hZGxlcixodC5wZW5kaW5nX2J1ZixodC5wZW5kaW5nLUV0LEV0KSksTXQoV2UpLEV0PWh0LnBlbmRpbmcsaHQucGVu'@; put 'ZGluZyE9PWh0LnBlbmRpbmdfYnVmX3NpemUpKTspcnQoaHQsMjU1Jmh0Lmd6aGVhZC5leHRyYVtodC5nemluZGV4XSksaHQuZ3ppbmRleCsrO2h0Lmd6aGVhZC5oY3JjJiZodC5wZW5kaW5nPkV0JiYoV2UuYWRsZXI9WShXZS5hZGxlcixodC5wZW5kaW5nX2J1ZixodC5wZW5kaW5nLUV0LEV0'@; put 'KSksaHQuZ3ppbmRleD09PWh0Lmd6aGVhZC5leHRyYS5sZW5ndGgmJihodC5nemluZGV4PTAsaHQuc3RhdHVzPTczKX1lbHNlIGh0LnN0YXR1cz03MztpZig3Mz09PWh0LnN0YXR1cylpZihodC5nemhlYWQubmFtZSl7RXQ9aHQucGVuZGluZztkb3tpZihodC5wZW5kaW5nPT09aHQucGVuZGlu'@; put 'Z19idWZfc2l6ZSYmKGh0Lmd6aGVhZC5oY3JjJiZodC5wZW5kaW5nPkV0JiYoV2UuYWRsZXI9WShXZS5hZGxlcixodC5wZW5kaW5nX2J1ZixodC5wZW5kaW5nLUV0LEV0KSksTXQoV2UpLEV0PWh0LnBlbmRpbmcsaHQucGVuZGluZz09PWh0LnBlbmRpbmdfYnVmX3NpemUpKXt6bj0xO2JyZWFr'@; put 'fXpuPWh0Lmd6aW5kZXg8aHQuZ3poZWFkLm5hbWUubGVuZ3RoPzI1NSZodC5nemhlYWQubmFtZS5jaGFyQ29kZUF0KGh0Lmd6aW5kZXgrKyk6MCxydChodCx6bil9d2hpbGUoMCE9PXpuKTtodC5nemhlYWQuaGNyYyYmaHQucGVuZGluZz5FdCYmKFdlLmFkbGVyPVkoV2UuYWRsZXIsaHQucGVu'@; put 'ZGluZ19idWYsaHQucGVuZGluZy1FdCxFdCkpLDA9PT16biYmKGh0Lmd6aW5kZXg9MCxodC5zdGF0dXM9OTEpfWVsc2UgaHQuc3RhdHVzPTkxO2lmKDkxPT09aHQuc3RhdHVzKWlmKGh0Lmd6aGVhZC5jb21tZW50KXtFdD1odC5wZW5kaW5nO2Rve2lmKGh0LnBlbmRpbmc9PT1odC5wZW5kaW5n'@; put 'X2J1Zl9zaXplJiYoaHQuZ3poZWFkLmhjcmMmJmh0LnBlbmRpbmc+RXQmJihXZS5hZGxlcj1ZKFdlLmFkbGVyLGh0LnBlbmRpbmdfYnVmLGh0LnBlbmRpbmctRXQsRXQpKSxNdChXZSksRXQ9aHQucGVuZGluZyxodC5wZW5kaW5nPT09aHQucGVuZGluZ19idWZfc2l6ZSkpe3puPTE7YnJlYWt9'@; put 'em49aHQuZ3ppbmRleDxodC5nemhlYWQuY29tbWVudC5sZW5ndGg/MjU1Jmh0Lmd6aGVhZC5jb21tZW50LmNoYXJDb2RlQXQoaHQuZ3ppbmRleCsrKTowLHJ0KGh0LHpuKX13aGlsZSgwIT09em4pO2h0Lmd6aGVhZC5oY3JjJiZodC5wZW5kaW5nPkV0JiYoV2UuYWRsZXI9WShXZS5hZGxlcixo'@; put 'dC5wZW5kaW5nX2J1ZixodC5wZW5kaW5nLUV0LEV0KSksMD09PXpuJiYoaHQuc3RhdHVzPTEwMyl9ZWxzZSBodC5zdGF0dXM9MTAzO2lmKDEwMz09PWh0LnN0YXR1cyYmKGh0Lmd6aGVhZC5oY3JjPyhodC5wZW5kaW5nKzI+aHQucGVuZGluZ19idWZfc2l6ZSYmTXQoV2UpLGh0LnBlbmRpbmcr'@; put 'Mjw9aHQucGVuZGluZ19idWZfc2l6ZSYmKHJ0KGh0LDI1NSZXZS5hZGxlcikscnQoaHQsV2UuYWRsZXI+PjgmMjU1KSxXZS5hZGxlcj0wLGh0LnN0YXR1cz1SZSkpOmh0LnN0YXR1cz1SZSksMCE9PWh0LnBlbmRpbmcpe2lmKE10KFdlKSwwPT09V2UuYXZhaWxfb3V0KXJldHVybiBodC5sYXN0'@; put 'X2ZsdXNoPS0xLHRlfWVsc2UgaWYoMD09PVdlLmF2YWlsX2luJiZvbihBdCk8PW9uKGlyKSYmNCE9PUF0KXJldHVybiBKZShXZSwtNSk7aWYoNjY2PT09aHQuc3RhdHVzJiYwIT09V2UuYXZhaWxfaW4pcmV0dXJuIEplKFdlLC01KTtpZigwIT09V2UuYXZhaWxfaW58fDAhPT1odC5sb29rYWhl'@; put 'YWR8fEF0IT09VyYmNjY2IT09aHQuc3RhdHVzKXt2YXIgZGk9Mj09PWh0LnN0cmF0ZWd5P2Z1bmN0aW9uIGVuKFdlLEF0KXtmb3IodmFyIGlyOzspe2lmKDA9PT1XZS5sb29rYWhlYWQmJih1dChXZSksMD09PVdlLmxvb2thaGVhZCkpe2lmKEF0PT09VylyZXR1cm4gMTticmVha31pZihXZS5t'@; put 'YXRjaF9sZW5ndGg9MCxpcj1QLl90cl90YWxseShXZSwwLFdlLndpbmRvd1tXZS5zdHJzdGFydF0pLFdlLmxvb2thaGVhZC0tLFdlLnN0cnN0YXJ0KyssaXImJihJdChXZSwhMSksMD09PVdlLnN0cm0uYXZhaWxfb3V0KSlyZXR1cm4gMX1yZXR1cm4gV2UuaW5zZXJ0PTAsND09PUF0PyhJdChX'@; put 'ZSwhMCksMD09PVdlLnN0cm0uYXZhaWxfb3V0PzM6NCk6V2UubGFzdF9saXQmJihJdChXZSwhMSksMD09PVdlLnN0cm0uYXZhaWxfb3V0KT8xOjJ9KGh0LEF0KTozPT09aHQuc3RyYXRlZ3k/ZnVuY3Rpb24gb2koV2UsQXQpe2Zvcih2YXIgaXIsaHQsRXQsem4sYW49V2Uud2luZG93Ozspe2lm'@; put 'KFdlLmxvb2thaGVhZDw9UWUpe2lmKHV0KFdlKSxXZS5sb29rYWhlYWQ8PVFlJiZBdD09PVcpcmV0dXJuIDE7aWYoMD09PVdlLmxvb2thaGVhZClicmVha31pZihXZS5tYXRjaF9sZW5ndGg9MCxXZS5sb29rYWhlYWQ+PVplJiZXZS5zdHJzdGFydD4wJiYoaHQ9YW5bRXQ9V2Uuc3Ryc3RhcnQt'@; put 'MV0pPT09YW5bKytFdF0mJmh0PT09YW5bKytFdF0mJmh0PT09YW5bKytFdF0pe3puPVdlLnN0cnN0YXJ0K1FlO2Rve313aGlsZShodD09PWFuWysrRXRdJiZodD09PWFuWysrRXRdJiZodD09PWFuWysrRXRdJiZodD09PWFuWysrRXRdJiZodD09PWFuWysrRXRdJiZodD09PWFuWysrRXRdJiZo'@; put 'dD09PWFuWysrRXRdJiZodD09PWFuWysrRXRdJiZFdDx6bik7V2UubWF0Y2hfbGVuZ3RoPVFlLSh6bi1FdCksV2UubWF0Y2hfbGVuZ3RoPldlLmxvb2thaGVhZCYmKFdlLm1hdGNoX2xlbmd0aD1XZS5sb29rYWhlYWQpfWlmKFdlLm1hdGNoX2xlbmd0aD49WmU/KGlyPVAuX3RyX3RhbGx5KFdl'@; put 'LDEsV2UubWF0Y2hfbGVuZ3RoLVplKSxXZS5sb29rYWhlYWQtPVdlLm1hdGNoX2xlbmd0aCxXZS5zdHJzdGFydCs9V2UubWF0Y2hfbGVuZ3RoLFdlLm1hdGNoX2xlbmd0aD0wKTooaXI9UC5fdHJfdGFsbHkoV2UsMCxXZS53aW5kb3dbV2Uuc3Ryc3RhcnRdKSxXZS5sb29rYWhlYWQtLSxXZS5z'@; put 'dHJzdGFydCsrKSxpciYmKEl0KFdlLCExKSwwPT09V2Uuc3RybS5hdmFpbF9vdXQpKXJldHVybiAxfXJldHVybiBXZS5pbnNlcnQ9MCw0PT09QXQ/KEl0KFdlLCEwKSwwPT09V2Uuc3RybS5hdmFpbF9vdXQ/Mzo0KTpXZS5sYXN0X2xpdCYmKEl0KFdlLCExKSwwPT09V2Uuc3RybS5hdmFpbF9v'@; put 'dXQpPzE6Mn0oaHQsQXQpOklpW2h0LmxldmVsXS5mdW5jKGh0LEF0KTtpZigoMz09PWRpfHw0PT09ZGkpJiYoaHQuc3RhdHVzPTY2NiksMT09PWRpfHwzPT09ZGkpcmV0dXJuIDA9PT1XZS5hdmFpbF9vdXQmJihodC5sYXN0X2ZsdXNoPS0xKSx0ZTtpZigyPT09ZGkmJigxPT09QXQ/UC5fdHJf'@; put 'YWxpZ24oaHQpOjUhPT1BdCYmKFAuX3RyX3N0b3JlZF9ibG9jayhodCwwLDAsITEpLDM9PT1BdCYmKHl0KGh0LmhlYWQpLDA9PT1odC5sb29rYWhlYWQmJihodC5zdHJzdGFydD0wLGh0LmJsb2NrX3N0YXJ0PTAsaHQuaW5zZXJ0PTApKSksTXQoV2UpLDA9PT1XZS5hdmFpbF9vdXQpKXJldHVy'@; put 'biBodC5sYXN0X2ZsdXNoPS0xLHRlfXJldHVybiA0IT09QXQ/dGU6aHQud3JhcDw9MD8xOigyPT09aHQud3JhcD8ocnQoaHQsMjU1JldlLmFkbGVyKSxydChodCxXZS5hZGxlcj4+OCYyNTUpLHJ0KGh0LFdlLmFkbGVyPj4xNiYyNTUpLHJ0KGh0LFdlLmFkbGVyPj4yNCYyNTUpLHJ0KGh0LDI1'@; put 'NSZXZS50b3RhbF9pbikscnQoaHQsV2UudG90YWxfaW4+PjgmMjU1KSxydChodCxXZS50b3RhbF9pbj4+MTYmMjU1KSxydChodCxXZS50b3RhbF9pbj4+MjQmMjU1KSk6KEtlKGh0LFdlLmFkbGVyPj4+MTYpLEtlKGh0LDY1NTM1JldlLmFkbGVyKSksTXQoV2UpLGh0LndyYXA+MCYmKGh0Lndy'@; put 'YXA9LWh0LndyYXApLDAhPT1odC5wZW5kaW5nP3RlOjEpfSxSLmRlZmxhdGVFbmQ9ZnVuY3Rpb24gbmkoV2Upe3ZhciBBdDtyZXR1cm4gV2UmJldlLnN0YXRlPyhBdD1XZS5zdGF0ZS5zdGF0dXMpIT09dmUmJjY5IT09QXQmJjczIT09QXQmJjkxIT09QXQmJjEwMyE9PUF0JiZBdCE9PVJlJiY2'@; put 'NjYhPT1BdD9KZShXZSxzZSk6KFdlLnN0YXRlPW51bGwsQXQ9PT1SZT9KZShXZSwtMyk6dGUpOnNlfSxSLmRlZmxhdGVJbmZvPSJwYWtvIGRlZmxhdGUgKGZyb20gTm9kZWNhIHByb2plY3QpIn0seyIuLi91dGlscy9jb21tb24iOjI3LCIuL2FkbGVyMzIiOjI5LCIuL2NyYzMyIjozMSwiLi9t'@; put 'ZXNzYWdlcyI6MzcsIi4vdHJlZXMiOjM4fV0sMzM6W2Z1bmN0aW9uKEYsSCxSKXsidXNlIHN0cmljdCI7SC5leHBvcnRzPWZ1bmN0aW9uIGooKXt0aGlzLnRleHQ9MCx0aGlzLnRpbWU9MCx0aGlzLnhmbGFncz0wLHRoaXMub3M9MCx0aGlzLmV4dHJhPW51bGwsdGhpcy5leHRyYV9sZW49MCx0'@; put 'aGlzLm5hbWU9IiIsdGhpcy5jb21tZW50PSIiLHRoaXMuaGNyYz0wLHRoaXMuZG9uZT0hMX19LHt9XSwzNDpbZnVuY3Rpb24oRixILFIpeyJ1c2Ugc3RyaWN0IjtILmV4cG9ydHM9ZnVuY3Rpb24oWSxCKXt2YXIgVyxaLFgsUSxxLHRlLGllLHNlLGdlLF9lLFRlLFNlLHplLHosZyx5LHgsQyxU'@; put 'LFYsVSxFLG0sQSxhZTtBPVkuaW5wdXQsWD0oWj1ZLm5leHRfaW4pKyhZLmF2YWlsX2luLTUpLGFlPVkub3V0cHV0LHE9KFE9WS5uZXh0X291dCktKEItWS5hdmFpbF9vdXQpLHRlPVErKFkuYXZhaWxfb3V0LTI1NyksaWU9KFc9WS5zdGF0ZSkuZG1heCxzZT1XLndzaXplLGdlPVcud2hhdmUs'@; put 'X2U9Vy53bmV4dCxUZT1XLndpbmRvdyxTZT1XLmhvbGQsemU9Vy5iaXRzLHo9Vy5sZW5jb2RlLGc9Vy5kaXN0Y29kZSx5PSgxPDxXLmxlbmJpdHMpLTEseD0oMTw8Vy5kaXN0Yml0cyktMTtlOmRve3plPDE1JiYoU2UrPUFbWisrXTw8emUsU2UrPUFbWisrXTw8KHplKz04KSx6ZSs9OCksQz16'@; put 'W1NlJnldO3Q6Zm9yKDs7KXtpZihTZT4+Pj1UPUM+Pj4yNCx6ZS09VCwwPT0oVD1DPj4+MTYmMjU1KSlhZVtRKytdPTY1NTM1JkM7ZWxzZXtpZighKDE2JlQpKXtpZig2NCZUKXtpZigzMiZUKXtXLm1vZGU9MTI7YnJlYWsgZX1ZLm1zZz0iaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlIixX'@; put 'Lm1vZGU9MzA7YnJlYWsgZX1DPXpbKDY1NTM1JkMpKyhTZSYoMTw8VCktMSldO2NvbnRpbnVlIHR9Zm9yKFY9NjU1MzUmQywoVCY9MTUpJiYoemU8VCYmKFNlKz1BW1orK108PHplLHplKz04KSxWKz1TZSYoMTw8VCktMSxTZT4+Pj1ULHplLT1UKSx6ZTwxNSYmKFNlKz1BW1orK108PHplLFNl'@; put 'Kz1BW1orK108PCh6ZSs9OCksemUrPTgpLEM9Z1tTZSZ4XTs7KXtpZihTZT4+Pj1UPUM+Pj4yNCx6ZS09VCwxNiYoVD1DPj4+MTYmMjU1KSl7aWYoVT02NTUzNSZDLHplPChUJj0xNSkmJihTZSs9QVtaKytdPDx6ZSwoemUrPTgpPFQmJihTZSs9QVtaKytdPDx6ZSx6ZSs9OCkpLChVKz1TZSYo'@; put 'MTw8VCktMSk+aWUpe1kubXNnPSJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayIsVy5tb2RlPTMwO2JyZWFrIGV9aWYoU2U+Pj49VCx6ZS09VCxVPihUPVEtcSkpe2lmKChUPVUtVCk+Z2UmJlcuc2FuZSl7WS5tc2c9ImludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrIixXLm1vZGU9'@; put 'MzA7YnJlYWsgZX1pZihFPTAsbT1UZSwwPT09X2Upe2lmKEUrPXNlLVQsVDxWKXtWLT1UO2Rve2FlW1ErK109VGVbRSsrXX13aGlsZSgtLVQpO0U9US1VLG09YWV9fWVsc2UgaWYoX2U8VCl7aWYoRSs9c2UrX2UtVCwoVC09X2UpPFYpe1YtPVQ7ZG97YWVbUSsrXT1UZVtFKytdfXdoaWxlKC0t'@; put 'VCk7aWYoRT0wLF9lPFYpe1YtPVQ9X2U7ZG97YWVbUSsrXT1UZVtFKytdfXdoaWxlKC0tVCk7RT1RLVUsbT1hZX19fWVsc2UgaWYoRSs9X2UtVCxUPFYpe1YtPVQ7ZG97YWVbUSsrXT1UZVtFKytdfXdoaWxlKC0tVCk7RT1RLVUsbT1hZX1mb3IoO1Y+MjspYWVbUSsrXT1tW0UrK10sYWVbUSsr'@; put 'XT1tW0UrK10sYWVbUSsrXT1tW0UrK10sVi09MztWJiYoYWVbUSsrXT1tW0UrK10sVj4xJiYoYWVbUSsrXT1tW0UrK10pKX1lbHNle0U9US1VO2Rve2FlW1ErK109YWVbRSsrXSxhZVtRKytdPWFlW0UrK10sYWVbUSsrXT1hZVtFKytdLFYtPTN9d2hpbGUoVj4yKTtWJiYoYWVbUSsrXT1hZVtF'@; put 'KytdLFY+MSYmKGFlW1ErK109YWVbRSsrXSkpfWJyZWFrfWlmKDY0JlQpe1kubXNnPSJpbnZhbGlkIGRpc3RhbmNlIGNvZGUiLFcubW9kZT0zMDticmVhayBlfUM9Z1soNjU1MzUmQykrKFNlJigxPDxUKS0xKV19fWJyZWFrfX13aGlsZShaPFgmJlE8dGUpO1NlJj0oMTw8KHplLT0oVj16ZT4+'@; put 'Myk8PDMpKS0xLFkubmV4dF9pbj1aLT1WLFkubmV4dF9vdXQ9USxZLmF2YWlsX2luPVo8WD9YLVorNTo1LShaLVgpLFkuYXZhaWxfb3V0PVE8dGU/dGUtUSsyNTc6MjU3LShRLXRlKSxXLmhvbGQ9U2UsVy5iaXRzPXplfX0se31dLDM1OltmdW5jdGlvbihGLEgsUil7InVzZSBzdHJpY3QiO3Zh'@; put 'ciBqPUYoIi4uL3V0aWxzL2NvbW1vbiIpLFA9RigiLi9hZGxlcjMyIiksTD1GKCIuL2NyYzMyIiksWT1GKCIuL2luZmZhc3QiKSxCPUYoIi4vaW5mdHJlZXMiKSxpZT0wLF9lPS0yLGc9MSx5dD04NTIsTXQ9NTkyO2Z1bmN0aW9uIEtlKGt0KXtyZXR1cm4oa3Q+Pj4yNCYyNTUpKyhrdD4+Pjgm'@; put 'NjUyODApKygoNjUyODAma3QpPDw4KSsoKDI1NSZrdCk8PDI0KX1mdW5jdGlvbiB0dCgpe3RoaXMubW9kZT0wLHRoaXMubGFzdD0hMSx0aGlzLndyYXA9MCx0aGlzLmhhdmVkaWN0PSExLHRoaXMuZmxhZ3M9MCx0aGlzLmRtYXg9MCx0aGlzLmNoZWNrPTAsdGhpcy50b3RhbD0wLHRoaXMuaGVh'@; put 'ZD1udWxsLHRoaXMud2JpdHM9MCx0aGlzLndzaXplPTAsdGhpcy53aGF2ZT0wLHRoaXMud25leHQ9MCx0aGlzLndpbmRvdz1udWxsLHRoaXMuaG9sZD0wLHRoaXMuYml0cz0wLHRoaXMubGVuZ3RoPTAsdGhpcy5vZmZzZXQ9MCx0aGlzLmV4dHJhPTAsdGhpcy5sZW5jb2RlPW51bGwsdGhpcy5k'@; put 'aXN0Y29kZT1udWxsLHRoaXMubGVuYml0cz0wLHRoaXMuZGlzdGJpdHM9MCx0aGlzLm5jb2RlPTAsdGhpcy5ubGVuPTAsdGhpcy5uZGlzdD0wLHRoaXMuaGF2ZT0wLHRoaXMubmV4dD1udWxsLHRoaXMubGVucz1uZXcgai5CdWYxNigzMjApLHRoaXMud29yaz1uZXcgai5CdWYxNigyODgpLHRo'@; put 'aXMubGVuZHluPW51bGwsdGhpcy5kaXN0ZHluPW51bGwsdGhpcy5zYW5lPTAsdGhpcy5iYWNrPTAsdGhpcy53YXM9MH1mdW5jdGlvbiBOZShrdCl7dmFyIExuO3JldHVybiBrdCYma3Quc3RhdGU/KGt0LnRvdGFsX2luPWt0LnRvdGFsX291dD0oTG49a3Quc3RhdGUpLnRvdGFsPTAsa3QubXNn'@; put 'PSIiLExuLndyYXAmJihrdC5hZGxlcj0xJkxuLndyYXApLExuLm1vZGU9ZyxMbi5sYXN0PTAsTG4uaGF2ZWRpY3Q9MCxMbi5kbWF4PTMyNzY4LExuLmhlYWQ9bnVsbCxMbi5ob2xkPTAsTG4uYml0cz0wLExuLmxlbmNvZGU9TG4ubGVuZHluPW5ldyBqLkJ1ZjMyKHl0KSxMbi5kaXN0Y29kZT1M'@; put 'bi5kaXN0ZHluPW5ldyBqLkJ1ZjMyKE10KSxMbi5zYW5lPTEsTG4uYmFjaz0tMSxpZSk6X2V9ZnVuY3Rpb24gdXQoa3Qpe3ZhciBMbjtyZXR1cm4ga3QmJmt0LnN0YXRlPygoTG49a3Quc3RhdGUpLndzaXplPTAsTG4ud2hhdmU9MCxMbi53bmV4dD0wLE5lKGt0KSk6X2V9ZnVuY3Rpb24gSnQo'@; put 'a3QsTG4pe3ZhciBvdCx6dDtyZXR1cm4ha3R8fCFrdC5zdGF0ZXx8KHp0PWt0LnN0YXRlLExuPDA/KG90PTAsTG49LUxuKToob3Q9MSsoTG4+PjQpLExuPDQ4JiYoTG4mPTE1KSksTG4mJihMbjw4fHxMbj4xNSkpP19lOihudWxsIT09enQud2luZG93JiZ6dC53Yml0cyE9PUxuJiYoenQud2lu'@; put 'ZG93PW51bGwpLHp0LndyYXA9b3QsenQud2JpdHM9TG4sdXQoa3QpKX1mdW5jdGlvbiBMdChrdCxMbil7dmFyIG90LHp0O3JldHVybiBrdD8oenQ9bmV3IHR0LGt0LnN0YXRlPXp0LHp0LndpbmRvdz1udWxsLChvdD1KdChrdCxMbikpIT09aWUmJihrdC5zdGF0ZT1udWxsKSxvdCk6X2V9dmFy'@; put 'IGVuLHNuLG9pPSEwO2Z1bmN0aW9uIElpKGt0KXtpZihvaSl7dmFyIExuO2Zvcihlbj1uZXcgai5CdWYzMig1MTIpLHNuPW5ldyBqLkJ1ZjMyKDMyKSxMbj0wO0xuPDE0NDspa3QubGVuc1tMbisrXT04O2Zvcig7TG48MjU2OylrdC5sZW5zW0xuKytdPTk7Zm9yKDtMbjwyODA7KWt0LmxlbnNb'@; put 'TG4rK109Nztmb3IoO0xuPDI4ODspa3QubGVuc1tMbisrXT04O2ZvcihCKDEsa3QubGVucywwLDI4OCxlbiwwLGt0Lndvcmsse2JpdHM6OX0pLExuPTA7TG48MzI7KWt0LmxlbnNbTG4rK109NTtCKDIsa3QubGVucywwLDMyLHNuLDAsa3Qud29yayx7Yml0czo1fSksb2k9ITF9a3QubGVuY29k'@; put 'ZT1lbixrdC5sZW5iaXRzPTksa3QuZGlzdGNvZGU9c24sa3QuZGlzdGJpdHM9NX1SLmluZmxhdGVSZXNldD11dCxSLmluZmxhdGVSZXNldDI9SnQsUi5pbmZsYXRlUmVzZXRLZWVwPU5lLFIuaW5mbGF0ZUluaXQ9ZnVuY3Rpb24gUHQoa3Qpe3JldHVybiBMdChrdCwxNSl9LFIuaW5mbGF0ZUlu'@; put 'aXQyPUx0LFIuaW5mbGF0ZT1mdW5jdGlvbiBmdChrdCxMbil7dmFyIG90LHp0LG5pLFdlLEF0LGlyLGh0LEV0LHpuLGFuLGp0LGRpLGNuLGZuLFF0LHRuLGNhLHhpLHlyLEduLEtpLEpyLE5pLEhpLERpPTAsUXI9bmV3IGouQnVmOCg0KSxJYT1bMTYsMTcsMTgsMCw4LDcsOSw2LDEwLDUsMTEs'@; put 'NCwxMiwzLDEzLDIsMTQsMSwxNV07aWYoIWt0fHwha3Quc3RhdGV8fCFrdC5vdXRwdXR8fCFrdC5pbnB1dCYmMCE9PWt0LmF2YWlsX2luKXJldHVybiBfZTsxMj09PShvdD1rdC5zdGF0ZSkubW9kZSYmKG90Lm1vZGU9MTMpLEF0PWt0Lm5leHRfb3V0LG5pPWt0Lm91dHB1dCxXZT1rdC5uZXh0'@; put 'X2luLHp0PWt0LmlucHV0LEV0PW90LmhvbGQsem49b3QuYml0cyxhbj1pcj1rdC5hdmFpbF9pbixqdD1odD1rdC5hdmFpbF9vdXQsSnI9aWU7ZTpmb3IoOzspc3dpdGNoKG90Lm1vZGUpe2Nhc2UgZzppZigwPT09b3Qud3JhcCl7b3QubW9kZT0xMzticmVha31mb3IoO3puPDE2Oyl7aWYoMD09'@; put 'PWlyKWJyZWFrIGU7aXItLSxFdCs9enRbV2UrK108PHpuLHpuKz04fWlmKDImb3Qud3JhcCYmMzU2MTU9PT1FdCl7b3QuY2hlY2s9MCxRclswXT0yNTUmRXQsUXJbMV09RXQ+Pj44JjI1NSxvdC5jaGVjaz1MKG90LmNoZWNrLFFyLDIsMCksRXQ9MCx6bj0wLG90Lm1vZGU9MjticmVha31pZihv'@; put 'dC5mbGFncz0wLG90LmhlYWQmJihvdC5oZWFkLmRvbmU9ITEpLCEoMSZvdC53cmFwKXx8KCgoMjU1JkV0KTw8OCkrKEV0Pj44KSklMzEpe2t0Lm1zZz0iaW5jb3JyZWN0IGhlYWRlciBjaGVjayIsb3QubW9kZT0zMDticmVha31pZig4IT0oMTUmRXQpKXtrdC5tc2c9InVua25vd24gY29tcHJl'@; put 'c3Npb24gbWV0aG9kIixvdC5tb2RlPTMwO2JyZWFrfWlmKHpuLT00LEtpPTgrKDE1JihFdD4+Pj00KSksMD09PW90LndiaXRzKW90LndiaXRzPUtpO2Vsc2UgaWYoS2k+b3Qud2JpdHMpe2t0Lm1zZz0iaW52YWxpZCB3aW5kb3cgc2l6ZSIsb3QubW9kZT0zMDticmVha31vdC5kbWF4PTE8PEtp'@; put 'LGt0LmFkbGVyPW90LmNoZWNrPTEsb3QubW9kZT01MTImRXQ/MTA6MTIsRXQ9MCx6bj0wO2JyZWFrO2Nhc2UgMjpmb3IoO3puPDE2Oyl7aWYoMD09PWlyKWJyZWFrIGU7aXItLSxFdCs9enRbV2UrK108PHpuLHpuKz04fWlmKG90LmZsYWdzPUV0LDghPSgyNTUmb3QuZmxhZ3MpKXtrdC5tc2c9'@; put 'InVua25vd24gY29tcHJlc3Npb24gbWV0aG9kIixvdC5tb2RlPTMwO2JyZWFrfWlmKDU3MzQ0Jm90LmZsYWdzKXtrdC5tc2c9InVua25vd24gaGVhZGVyIGZsYWdzIHNldCIsb3QubW9kZT0zMDticmVha31vdC5oZWFkJiYob3QuaGVhZC50ZXh0PUV0Pj44JjEpLDUxMiZvdC5mbGFncyYmKFFy'@; put 'WzBdPTI1NSZFdCxRclsxXT1FdD4+PjgmMjU1LG90LmNoZWNrPUwob3QuY2hlY2ssUXIsMiwwKSksRXQ9MCx6bj0wLG90Lm1vZGU9MztjYXNlIDM6Zm9yKDt6bjwzMjspe2lmKDA9PT1pcilicmVhayBlO2lyLS0sRXQrPXp0W1dlKytdPDx6bix6bis9OH1vdC5oZWFkJiYob3QuaGVhZC50aW1l'@; put 'PUV0KSw1MTImb3QuZmxhZ3MmJihRclswXT0yNTUmRXQsUXJbMV09RXQ+Pj44JjI1NSxRclsyXT1FdD4+PjE2JjI1NSxRclszXT1FdD4+PjI0JjI1NSxvdC5jaGVjaz1MKG90LmNoZWNrLFFyLDQsMCkpLEV0PTAsem49MCxvdC5tb2RlPTQ7Y2FzZSA0OmZvcig7em48MTY7KXtpZigwPT09aXIp'@; put 'YnJlYWsgZTtpci0tLEV0Kz16dFtXZSsrXTw8em4sem4rPTh9b3QuaGVhZCYmKG90LmhlYWQueGZsYWdzPTI1NSZFdCxvdC5oZWFkLm9zPUV0Pj44KSw1MTImb3QuZmxhZ3MmJihRclswXT0yNTUmRXQsUXJbMV09RXQ+Pj44JjI1NSxvdC5jaGVjaz1MKG90LmNoZWNrLFFyLDIsMCkpLEV0PTAs'@; put 'em49MCxvdC5tb2RlPTU7Y2FzZSA1OmlmKDEwMjQmb3QuZmxhZ3Mpe2Zvcig7em48MTY7KXtpZigwPT09aXIpYnJlYWsgZTtpci0tLEV0Kz16dFtXZSsrXTw8em4sem4rPTh9b3QubGVuZ3RoPUV0LG90LmhlYWQmJihvdC5oZWFkLmV4dHJhX2xlbj1FdCksNTEyJm90LmZsYWdzJiYoUXJbMF09'@; put 'MjU1JkV0LFFyWzFdPUV0Pj4+OCYyNTUsb3QuY2hlY2s9TChvdC5jaGVjayxRciwyLDApKSxFdD0wLHpuPTB9ZWxzZSBvdC5oZWFkJiYob3QuaGVhZC5leHRyYT1udWxsKTtvdC5tb2RlPTY7Y2FzZSA2OmlmKDEwMjQmb3QuZmxhZ3MmJigoZGk9b3QubGVuZ3RoKT5pciYmKGRpPWlyKSxkaSYm'@; put 'KG90LmhlYWQmJihLaT1vdC5oZWFkLmV4dHJhX2xlbi1vdC5sZW5ndGgsb3QuaGVhZC5leHRyYXx8KG90LmhlYWQuZXh0cmE9bmV3IEFycmF5KG90LmhlYWQuZXh0cmFfbGVuKSksai5hcnJheVNldChvdC5oZWFkLmV4dHJhLHp0LFdlLGRpLEtpKSksNTEyJm90LmZsYWdzJiYob3QuY2hlY2s9'@; put 'TChvdC5jaGVjayx6dCxkaSxXZSkpLGlyLT1kaSxXZSs9ZGksb3QubGVuZ3RoLT1kaSksb3QubGVuZ3RoKSlicmVhayBlO290Lmxlbmd0aD0wLG90Lm1vZGU9NztjYXNlIDc6aWYoMjA0OCZvdC5mbGFncyl7aWYoMD09PWlyKWJyZWFrIGU7ZGk9MDtkb3tLaT16dFtXZStkaSsrXSxvdC5oZWFk'@; put 'JiZLaSYmb3QubGVuZ3RoPDY1NTM2JiYob3QuaGVhZC5uYW1lKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEtpKSl9d2hpbGUoS2kmJmRpPGlyKTtpZig1MTImb3QuZmxhZ3MmJihvdC5jaGVjaz1MKG90LmNoZWNrLHp0LGRpLFdlKSksaXItPWRpLFdlKz1kaSxLaSlicmVhayBlfWVsc2Ugb3QuaGVh'@; put 'ZCYmKG90LmhlYWQubmFtZT1udWxsKTtvdC5sZW5ndGg9MCxvdC5tb2RlPTg7Y2FzZSA4OmlmKDQwOTYmb3QuZmxhZ3Mpe2lmKDA9PT1pcilicmVhayBlO2RpPTA7ZG97S2k9enRbV2UrZGkrK10sb3QuaGVhZCYmS2kmJm90Lmxlbmd0aDw2NTUzNiYmKG90LmhlYWQuY29tbWVudCs9U3RyaW5n'@; put 'LmZyb21DaGFyQ29kZShLaSkpfXdoaWxlKEtpJiZkaTxpcik7aWYoNTEyJm90LmZsYWdzJiYob3QuY2hlY2s9TChvdC5jaGVjayx6dCxkaSxXZSkpLGlyLT1kaSxXZSs9ZGksS2kpYnJlYWsgZX1lbHNlIG90LmhlYWQmJihvdC5oZWFkLmNvbW1lbnQ9bnVsbCk7b3QubW9kZT05O2Nhc2UgOTpp'@; put 'Zig1MTImb3QuZmxhZ3Mpe2Zvcig7em48MTY7KXtpZigwPT09aXIpYnJlYWsgZTtpci0tLEV0Kz16dFtXZSsrXTw8em4sem4rPTh9aWYoRXQhPT0oNjU1MzUmb3QuY2hlY2spKXtrdC5tc2c9ImhlYWRlciBjcmMgbWlzbWF0Y2giLG90Lm1vZGU9MzA7YnJlYWt9RXQ9MCx6bj0wfW90LmhlYWQm'@; put 'JihvdC5oZWFkLmhjcmM9b3QuZmxhZ3M+PjkmMSxvdC5oZWFkLmRvbmU9ITApLGt0LmFkbGVyPW90LmNoZWNrPTAsb3QubW9kZT0xMjticmVhaztjYXNlIDEwOmZvcig7em48MzI7KXtpZigwPT09aXIpYnJlYWsgZTtpci0tLEV0Kz16dFtXZSsrXTw8em4sem4rPTh9a3QuYWRsZXI9b3QuY2hl'@; put 'Y2s9S2UoRXQpLEV0PTAsem49MCxvdC5tb2RlPTExO2Nhc2UgMTE6aWYoMD09PW90LmhhdmVkaWN0KXJldHVybiBrdC5uZXh0X291dD1BdCxrdC5hdmFpbF9vdXQ9aHQsa3QubmV4dF9pbj1XZSxrdC5hdmFpbF9pbj1pcixvdC5ob2xkPUV0LG90LmJpdHM9em4sMjtrdC5hZGxlcj1vdC5jaGVj'@; put 'az0xLG90Lm1vZGU9MTI7Y2FzZSAxMjppZig1PT09TG58fDY9PT1MbilicmVhayBlO2Nhc2UgMTM6aWYob3QubGFzdCl7RXQ+Pj49NyZ6bix6bi09NyZ6bixvdC5tb2RlPTI3O2JyZWFrfWZvcig7em48Mzspe2lmKDA9PT1pcilicmVhayBlO2lyLS0sRXQrPXp0W1dlKytdPDx6bix6bis9OH1z'@; put 'd2l0Y2gob3QubGFzdD0xJkV0LHpuLT0xLDMmKEV0Pj4+PTEpKXtjYXNlIDA6b3QubW9kZT0xNDticmVhaztjYXNlIDE6aWYoSWkob3QpLG90Lm1vZGU9MjAsNj09PUxuKXtFdD4+Pj0yLHpuLT0yO2JyZWFrIGV9YnJlYWs7Y2FzZSAyOm90Lm1vZGU9MTc7YnJlYWs7Y2FzZSAzOmt0Lm1zZz0i'@; put 'aW52YWxpZCBibG9jayB0eXBlIixvdC5tb2RlPTMwfUV0Pj4+PTIsem4tPTI7YnJlYWs7Y2FzZSAxNDpmb3IoRXQ+Pj49NyZ6bix6bi09NyZ6bjt6bjwzMjspe2lmKDA9PT1pcilicmVhayBlO2lyLS0sRXQrPXp0W1dlKytdPDx6bix6bis9OH1pZigoNjU1MzUmRXQpIT0oRXQ+Pj4xNl42NTUz'@; put 'NSkpe2t0Lm1zZz0iaW52YWxpZCBzdG9yZWQgYmxvY2sgbGVuZ3RocyIsb3QubW9kZT0zMDticmVha31pZihvdC5sZW5ndGg9NjU1MzUmRXQsRXQ9MCx6bj0wLG90Lm1vZGU9MTUsNj09PUxuKWJyZWFrIGU7Y2FzZSAxNTpvdC5tb2RlPTE2O2Nhc2UgMTY6aWYoZGk9b3QubGVuZ3RoKXtpZihk'@; put 'aT5pciYmKGRpPWlyKSxkaT5odCYmKGRpPWh0KSwwPT09ZGkpYnJlYWsgZTtqLmFycmF5U2V0KG5pLHp0LFdlLGRpLEF0KSxpci09ZGksV2UrPWRpLGh0LT1kaSxBdCs9ZGksb3QubGVuZ3RoLT1kaTticmVha31vdC5tb2RlPTEyO2JyZWFrO2Nhc2UgMTc6Zm9yKDt6bjwxNDspe2lmKDA9PT1p'@; put 'cilicmVhayBlO2lyLS0sRXQrPXp0W1dlKytdPDx6bix6bis9OH1pZihvdC5ubGVuPTI1NysoMzEmRXQpLHpuLT01LG90Lm5kaXN0PTErKDMxJihFdD4+Pj01KSksem4tPTUsb3QubmNvZGU9NCsoMTUmKEV0Pj4+PTUpKSxFdD4+Pj00LHpuLT00LG90Lm5sZW4+Mjg2fHxvdC5uZGlzdD4zMCl7'@; put 'a3QubXNnPSJ0b28gbWFueSBsZW5ndGggb3IgZGlzdGFuY2Ugc3ltYm9scyIsb3QubW9kZT0zMDticmVha31vdC5oYXZlPTAsb3QubW9kZT0xODtjYXNlIDE4OmZvcig7b3QuaGF2ZTxvdC5uY29kZTspe2Zvcig7em48Mzspe2lmKDA9PT1pcilicmVhayBlO2lyLS0sRXQrPXp0W1dlKytdPDx6'@; put 'bix6bis9OH1vdC5sZW5zW0lhW290LmhhdmUrK11dPTcmRXQsRXQ+Pj49Myx6bi09M31mb3IoO290LmhhdmU8MTk7KW90LmxlbnNbSWFbb3QuaGF2ZSsrXV09MDtpZihvdC5sZW5jb2RlPW90LmxlbmR5bixvdC5sZW5iaXRzPTcsSnI9QigwLG90LmxlbnMsMCwxOSxvdC5sZW5jb2RlLDAsb3Qu'@; put 'd29yayxOaT17Yml0czpvdC5sZW5iaXRzfSksb3QubGVuYml0cz1OaS5iaXRzLEpyKXtrdC5tc2c9ImludmFsaWQgY29kZSBsZW5ndGhzIHNldCIsb3QubW9kZT0zMDticmVha31vdC5oYXZlPTAsb3QubW9kZT0xOTtjYXNlIDE5OmZvcig7b3QuaGF2ZTxvdC5ubGVuK290Lm5kaXN0Oyl7Zm9y'@; put 'KDt0bj0oRGk9b3QubGVuY29kZVtFdCYoMTw8b3QubGVuYml0cyktMV0pPj4+MTYmMjU1LGNhPTY1NTM1JkRpLCEoKFF0PURpPj4+MjQpPD16bik7KXtpZigwPT09aXIpYnJlYWsgZTtpci0tLEV0Kz16dFtXZSsrXTw8em4sem4rPTh9aWYoY2E8MTYpRXQ+Pj49UXQsem4tPVF0LG90LmxlbnNb'@; put 'b3QuaGF2ZSsrXT1jYTtlbHNle2lmKDE2PT09Y2Epe2ZvcihIaT1RdCsyO3puPEhpOyl7aWYoMD09PWlyKWJyZWFrIGU7aXItLSxFdCs9enRbV2UrK108PHpuLHpuKz04fWlmKEV0Pj4+PVF0LHpuLT1RdCwwPT09b3QuaGF2ZSl7a3QubXNnPSJpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0Iixv'@; put 'dC5tb2RlPTMwO2JyZWFrfUtpPW90LmxlbnNbb3QuaGF2ZS0xXSxkaT0zKygzJkV0KSxFdD4+Pj0yLHpuLT0yfWVsc2UgaWYoMTc9PT1jYSl7Zm9yKEhpPVF0KzM7em48SGk7KXtpZigwPT09aXIpYnJlYWsgZTtpci0tLEV0Kz16dFtXZSsrXTw8em4sem4rPTh9em4tPVF0LEtpPTAsZGk9Myso'@; put 'NyYoRXQ+Pj49UXQpKSxFdD4+Pj0zLHpuLT0zfWVsc2V7Zm9yKEhpPVF0Kzc7em48SGk7KXtpZigwPT09aXIpYnJlYWsgZTtpci0tLEV0Kz16dFtXZSsrXTw8em4sem4rPTh9em4tPVF0LEtpPTAsZGk9MTErKDEyNyYoRXQ+Pj49UXQpKSxFdD4+Pj03LHpuLT03fWlmKG90LmhhdmUrZGk+b3Qu'@; put 'bmxlbitvdC5uZGlzdCl7a3QubXNnPSJpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0IixvdC5tb2RlPTMwO2JyZWFrfWZvcig7ZGktLTspb3QubGVuc1tvdC5oYXZlKytdPUtpfX1pZigzMD09PW90Lm1vZGUpYnJlYWs7aWYoMD09PW90LmxlbnNbMjU2XSl7a3QubXNnPSJpbnZhbGlkIGNvZGUg'@; put 'LS0gbWlzc2luZyBlbmQtb2YtYmxvY2siLG90Lm1vZGU9MzA7YnJlYWt9aWYob3QubGVuYml0cz05LEpyPUIoMSxvdC5sZW5zLDAsb3QubmxlbixvdC5sZW5jb2RlLDAsb3Qud29yayxOaT17Yml0czpvdC5sZW5iaXRzfSksb3QubGVuYml0cz1OaS5iaXRzLEpyKXtrdC5tc2c9ImludmFsaWQg'@; put 'bGl0ZXJhbC9sZW5ndGhzIHNldCIsb3QubW9kZT0zMDticmVha31pZihvdC5kaXN0Yml0cz02LG90LmRpc3Rjb2RlPW90LmRpc3RkeW4sSnI9QigyLG90LmxlbnMsb3QubmxlbixvdC5uZGlzdCxvdC5kaXN0Y29kZSwwLG90LndvcmssTmk9e2JpdHM6b3QuZGlzdGJpdHN9KSxvdC5kaXN0Yml0'@; put 'cz1OaS5iaXRzLEpyKXtrdC5tc2c9ImludmFsaWQgZGlzdGFuY2VzIHNldCIsb3QubW9kZT0zMDticmVha31pZihvdC5tb2RlPTIwLDY9PT1MbilicmVhayBlO2Nhc2UgMjA6b3QubW9kZT0yMTtjYXNlIDIxOmlmKGlyPj02JiZodD49MjU4KXtrdC5uZXh0X291dD1BdCxrdC5hdmFpbF9vdXQ9'@; put 'aHQsa3QubmV4dF9pbj1XZSxrdC5hdmFpbF9pbj1pcixvdC5ob2xkPUV0LG90LmJpdHM9em4sWShrdCxqdCksQXQ9a3QubmV4dF9vdXQsbmk9a3Qub3V0cHV0LGh0PWt0LmF2YWlsX291dCxXZT1rdC5uZXh0X2luLHp0PWt0LmlucHV0LGlyPWt0LmF2YWlsX2luLEV0PW90LmhvbGQsem49b3Qu'@; put 'Yml0cywxMj09PW90Lm1vZGUmJihvdC5iYWNrPS0xKTticmVha31mb3Iob3QuYmFjaz0wO3RuPShEaT1vdC5sZW5jb2RlW0V0JigxPDxvdC5sZW5iaXRzKS0xXSk+Pj4xNiYyNTUsY2E9NjU1MzUmRGksISgoUXQ9RGk+Pj4yNCk8PXpuKTspe2lmKDA9PT1pcilicmVhayBlO2lyLS0sRXQrPXp0'@; put 'W1dlKytdPDx6bix6bis9OH1pZih0biYmISgyNDAmdG4pKXtmb3IoeGk9UXQseXI9dG4sR249Y2E7dG49KERpPW90LmxlbmNvZGVbR24rKChFdCYoMTw8eGkreXIpLTEpPj54aSldKT4+PjE2JjI1NSxjYT02NTUzNSZEaSwhKHhpKyhRdD1EaT4+PjI0KTw9em4pOyl7aWYoMD09PWlyKWJyZWFr'@; put 'IGU7aXItLSxFdCs9enRbV2UrK108PHpuLHpuKz04fUV0Pj4+PXhpLHpuLT14aSxvdC5iYWNrKz14aX1pZihFdD4+Pj1RdCx6bi09UXQsb3QuYmFjays9UXQsb3QubGVuZ3RoPWNhLDA9PT10bil7b3QubW9kZT0yNjticmVha31pZigzMiZ0bil7b3QuYmFjaz0tMSxvdC5tb2RlPTEyO2JyZWFr'@; put 'fWlmKDY0JnRuKXtrdC5tc2c9ImludmFsaWQgbGl0ZXJhbC9sZW5ndGggY29kZSIsb3QubW9kZT0zMDticmVha31vdC5leHRyYT0xNSZ0bixvdC5tb2RlPTIyO2Nhc2UgMjI6aWYob3QuZXh0cmEpe2ZvcihIaT1vdC5leHRyYTt6bjxIaTspe2lmKDA9PT1pcilicmVhayBlO2lyLS0sRXQrPXp0'@; put 'W1dlKytdPDx6bix6bis9OH1vdC5sZW5ndGgrPUV0JigxPDxvdC5leHRyYSktMSxFdD4+Pj1vdC5leHRyYSx6bi09b3QuZXh0cmEsb3QuYmFjays9b3QuZXh0cmF9b3Qud2FzPW90Lmxlbmd0aCxvdC5tb2RlPTIzO2Nhc2UgMjM6Zm9yKDt0bj0oRGk9b3QuZGlzdGNvZGVbRXQmKDE8PG90LmRp'@; put 'c3RiaXRzKS0xXSk+Pj4xNiYyNTUsY2E9NjU1MzUmRGksISgoUXQ9RGk+Pj4yNCk8PXpuKTspe2lmKDA9PT1pcilicmVhayBlO2lyLS0sRXQrPXp0W1dlKytdPDx6bix6bis9OH1pZighKDI0MCZ0bikpe2Zvcih4aT1RdCx5cj10bixHbj1jYTt0bj0oRGk9b3QuZGlzdGNvZGVbR24rKChFdCYo'@; put 'MTw8eGkreXIpLTEpPj54aSldKT4+PjE2JjI1NSxjYT02NTUzNSZEaSwhKHhpKyhRdD1EaT4+PjI0KTw9em4pOyl7aWYoMD09PWlyKWJyZWFrIGU7aXItLSxFdCs9enRbV2UrK108PHpuLHpuKz04fUV0Pj4+PXhpLHpuLT14aSxvdC5iYWNrKz14aX1pZihFdD4+Pj1RdCx6bi09UXQsb3QuYmFj'@; put 'ays9UXQsNjQmdG4pe2t0Lm1zZz0iaW52YWxpZCBkaXN0YW5jZSBjb2RlIixvdC5tb2RlPTMwO2JyZWFrfW90Lm9mZnNldD1jYSxvdC5leHRyYT0xNSZ0bixvdC5tb2RlPTI0O2Nhc2UgMjQ6aWYob3QuZXh0cmEpe2ZvcihIaT1vdC5leHRyYTt6bjxIaTspe2lmKDA9PT1pcilicmVhayBlO2ly'@; put 'LS0sRXQrPXp0W1dlKytdPDx6bix6bis9OH1vdC5vZmZzZXQrPUV0JigxPDxvdC5leHRyYSktMSxFdD4+Pj1vdC5leHRyYSx6bi09b3QuZXh0cmEsb3QuYmFjays9b3QuZXh0cmF9aWYob3Qub2Zmc2V0Pm90LmRtYXgpe2t0Lm1zZz0iaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2siLG90'@; put 'Lm1vZGU9MzA7YnJlYWt9b3QubW9kZT0yNTtjYXNlIDI1OmlmKDA9PT1odClicmVhayBlO2lmKG90Lm9mZnNldD4oZGk9anQtaHQpKXtpZigoZGk9b3Qub2Zmc2V0LWRpKT5vdC53aGF2ZSYmb3Quc2FuZSl7a3QubXNnPSJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayIsb3QubW9kZT0z'@; put 'MDticmVha31jbj1kaT5vdC53bmV4dD9vdC53c2l6ZS0oZGktPW90LnduZXh0KTpvdC53bmV4dC1kaSxkaT5vdC5sZW5ndGgmJihkaT1vdC5sZW5ndGgpLGZuPW90LndpbmRvd31lbHNlIGZuPW5pLGNuPUF0LW90Lm9mZnNldCxkaT1vdC5sZW5ndGg7ZGk+aHQmJihkaT1odCksaHQtPWRpLG90'@; put 'Lmxlbmd0aC09ZGk7ZG97bmlbQXQrK109Zm5bY24rK119d2hpbGUoLS1kaSk7MD09PW90Lmxlbmd0aCYmKG90Lm1vZGU9MjEpO2JyZWFrO2Nhc2UgMjY6aWYoMD09PWh0KWJyZWFrIGU7bmlbQXQrK109b3QubGVuZ3RoLGh0LS0sb3QubW9kZT0yMTticmVhaztjYXNlIDI3OmlmKG90LndyYXAp'@; put 'e2Zvcig7em48MzI7KXtpZigwPT09aXIpYnJlYWsgZTtpci0tLEV0fD16dFtXZSsrXTw8em4sem4rPTh9aWYoa3QudG90YWxfb3V0Kz1qdC09aHQsb3QudG90YWwrPWp0LGp0JiYoa3QuYWRsZXI9b3QuY2hlY2s9b3QuZmxhZ3M/TChvdC5jaGVjayxuaSxqdCxBdC1qdCk6UChvdC5jaGVjayxu'@; put 'aSxqdCxBdC1qdCkpLGp0PWh0LChvdC5mbGFncz9FdDpLZShFdCkpIT09b3QuY2hlY2spe2t0Lm1zZz0iaW5jb3JyZWN0IGRhdGEgY2hlY2siLG90Lm1vZGU9MzA7YnJlYWt9RXQ9MCx6bj0wfW90Lm1vZGU9Mjg7Y2FzZSAyODppZihvdC53cmFwJiZvdC5mbGFncyl7Zm9yKDt6bjwzMjspe2lm'@; put 'KDA9PT1pcilicmVhayBlO2lyLS0sRXQrPXp0W1dlKytdPDx6bix6bis9OH1pZihFdCE9PSg0Mjk0OTY3Mjk1Jm90LnRvdGFsKSl7a3QubXNnPSJpbmNvcnJlY3QgbGVuZ3RoIGNoZWNrIixvdC5tb2RlPTMwO2JyZWFrfUV0PTAsem49MH1vdC5tb2RlPTI5O2Nhc2UgMjk6SnI9MTticmVhayBl'@; put 'O2Nhc2UgMzA6SnI9LTM7YnJlYWsgZTtjYXNlIDMxOnJldHVybi00O2RlZmF1bHQ6cmV0dXJuIF9lfXJldHVybiBrdC5uZXh0X291dD1BdCxrdC5hdmFpbF9vdXQ9aHQsa3QubmV4dF9pbj1XZSxrdC5hdmFpbF9pbj1pcixvdC5ob2xkPUV0LG90LmJpdHM9em4sKG90LndzaXplfHxqdCE9PWt0'@; put 'LmF2YWlsX291dCYmb3QubW9kZTwzMCYmKG90Lm1vZGU8Mjd8fDQhPT1MbikpJiZmdW5jdGlvbiBkbihrdCxMbixvdCx6dCl7dmFyIG5pLFdlPWt0LnN0YXRlO3JldHVybiBudWxsPT09V2Uud2luZG93JiYoV2Uud3NpemU9MTw8V2Uud2JpdHMsV2Uud25leHQ9MCxXZS53aGF2ZT0wLFdlLndp'@; put 'bmRvdz1uZXcgai5CdWY4KFdlLndzaXplKSksenQ+PVdlLndzaXplPyhqLmFycmF5U2V0KFdlLndpbmRvdyxMbixvdC1XZS53c2l6ZSxXZS53c2l6ZSwwKSxXZS53bmV4dD0wLFdlLndoYXZlPVdlLndzaXplKTooKG5pPVdlLndzaXplLVdlLnduZXh0KT56dCYmKG5pPXp0KSxqLmFycmF5U2V0'@; put 'KFdlLndpbmRvdyxMbixvdC16dCxuaSxXZS53bmV4dCksKHp0LT1uaSk/KGouYXJyYXlTZXQoV2Uud2luZG93LExuLG90LXp0LHp0LDApLFdlLnduZXh0PXp0LFdlLndoYXZlPVdlLndzaXplKTooV2Uud25leHQrPW5pLFdlLnduZXh0PT09V2Uud3NpemUmJihXZS53bmV4dD0wKSxXZS53aGF2'@; put 'ZTxXZS53c2l6ZSYmKFdlLndoYXZlKz1uaSkpKSwwfShrdCxrdC5vdXRwdXQsa3QubmV4dF9vdXQsanQta3QuYXZhaWxfb3V0KT8ob3QubW9kZT0zMSwtNCk6KGp0LT1rdC5hdmFpbF9vdXQsa3QudG90YWxfaW4rPWFuLT1rdC5hdmFpbF9pbixrdC50b3RhbF9vdXQrPWp0LG90LnRvdGFsKz1q'@; put 'dCxvdC53cmFwJiZqdCYmKGt0LmFkbGVyPW90LmNoZWNrPW90LmZsYWdzP0wob3QuY2hlY2ssbmksanQsa3QubmV4dF9vdXQtanQpOlAob3QuY2hlY2ssbmksanQsa3QubmV4dF9vdXQtanQpKSxrdC5kYXRhX3R5cGU9b3QuYml0cysob3QubGFzdD82NDowKSsoMTI9PT1vdC5tb2RlPzEyODow'@; put 'KSsoMjA9PT1vdC5tb2RlfHwxNT09PW90Lm1vZGU/MjU2OjApLCgwPT09YW4mJjA9PT1qdHx8ND09PUxuKSYmSnI9PT1pZSYmKEpyPS01KSxKcil9LFIuaW5mbGF0ZUVuZD1mdW5jdGlvbiBGcihrdCl7aWYoIWt0fHwha3Quc3RhdGUpcmV0dXJuIF9lO3ZhciBMbj1rdC5zdGF0ZTtyZXR1cm4g'@; put 'TG4ud2luZG93JiYoTG4ud2luZG93PW51bGwpLGt0LnN0YXRlPW51bGwsaWV9LFIuaW5mbGF0ZUdldEhlYWRlcj1mdW5jdGlvbiBadChrdCxMbil7dmFyIG90O3JldHVybiBrdCYma3Quc3RhdGUmJjImKG90PWt0LnN0YXRlKS53cmFwPyhvdC5oZWFkPUxuLExuLmRvbmU9ITEsaWUpOl9lfSxS'@; put 'LmluZmxhdGVJbmZvPSJwYWtvIGluZmxhdGUgKGZyb20gTm9kZWNhIHByb2plY3QpIn0seyIuLi91dGlscy9jb21tb24iOjI3LCIuL2FkbGVyMzIiOjI5LCIuL2NyYzMyIjozMSwiLi9pbmZmYXN0IjozNCwiLi9pbmZ0cmVlcyI6MzZ9XSwzNjpbZnVuY3Rpb24oRixILFIpeyJ1c2Ugc3RyaWN0'@; put 'Ijt2YXIgaj1GKCIuLi91dGlscy9jb21tb24iKSxYPVszLDQsNSw2LDcsOCw5LDEwLDExLDEzLDE1LDE3LDE5LDIzLDI3LDMxLDM1LDQzLDUxLDU5LDY3LDgzLDk5LDExNSwxMzEsMTYzLDE5NSwyMjcsMjU4LDAsMF0sUT1bMTYsMTYsMTYsMTYsMTYsMTYsMTYsMTYsMTcsMTcsMTcsMTcsMTgs'@; put 'MTgsMTgsMTgsMTksMTksMTksMTksMjAsMjAsMjAsMjAsMjEsMjEsMjEsMjEsMTYsNzIsNzhdLHE9WzEsMiwzLDQsNSw3LDksMTMsMTcsMjUsMzMsNDksNjUsOTcsMTI5LDE5MywyNTcsMzg1LDUxMyw3NjksMTAyNSwxNTM3LDIwNDksMzA3Myw0MDk3LDYxNDUsODE5MywxMjI4OSwxNjM4NSwy'@; put 'NDU3NywwLDBdLHRlPVsxNiwxNiwxNiwxNiwxNywxNywxOCwxOCwxOSwxOSwyMCwyMCwyMSwyMSwyMiwyMiwyMywyMywyNCwyNCwyNSwyNSwyNiwyNiwyNywyNywyOCwyOCwyOSwyOSw2NCw2NF07SC5leHBvcnRzPWZ1bmN0aW9uKHNlLGdlLF9lLFRlLFNlLHplLHosZyl7dmFyIGxlLHdlLFpl'@; put 'LFFlLGF0LHFlLEllLEhlLERlLHk9Zy5iaXRzLHg9MCxDPTAsVD0wLFY9MCxVPTAsRT0wLG09MCxBPTAsYWU9MCxuZT0wLHhlPW51bGwsdmU9MCxqZT1uZXcgai5CdWYxNigxNiksQWU9bmV3IGouQnVmMTYoMTYpLEZlPW51bGwsUmU9MDtmb3IoeD0wO3g8PTE1O3grKylqZVt4XT0wO2ZvcihD'@; put 'PTA7QzxUZTtDKyspamVbZ2VbX2UrQ11dKys7Zm9yKFU9eSxWPTE1O1Y+PTEmJjA9PT1qZVtWXTtWLS0pO2lmKFU+ViYmKFU9ViksMD09PVYpcmV0dXJuIFNlW3plKytdPTIwOTcxNTIwLFNlW3plKytdPTIwOTcxNTIwLGcuYml0cz0xLDA7Zm9yKFQ9MTtUPFYmJjA9PT1qZVtUXTtUKyspO2Zv'@; put 'cihVPFQmJihVPVQpLEE9MSx4PTE7eDw9MTU7eCsrKWlmKEE8PD0xLChBLT1qZVt4XSk8MClyZXR1cm4tMTtpZihBPjAmJigwPT09c2V8fDEhPT1WKSlyZXR1cm4tMTtmb3IoQWVbMV09MCx4PTE7eDwxNTt4KyspQWVbeCsxXT1BZVt4XStqZVt4XTtmb3IoQz0wO0M8VGU7QysrKTAhPT1nZVtf'@; put 'ZStDXSYmKHpbQWVbZ2VbX2UrQ11dKytdPUMpO2lmKDA9PT1zZT8oeGU9RmU9eixxZT0xOSk6MT09PXNlPyh4ZT1YLHZlLT0yNTcsRmU9USxSZS09MjU3LHFlPTI1Nik6KHhlPXEsRmU9dGUscWU9LTEpLG5lPTAsQz0wLHg9VCxhdD16ZSxFPVUsbT0wLFplPS0xLFFlPShhZT0xPDxVKS0xLDE9'@; put 'PT1zZSYmYWU+ODUyfHwyPT09c2UmJmFlPjU5MilyZXR1cm4gMTtmb3IoOzspe0llPXgtbSx6W0NdPHFlPyhIZT0wLERlPXpbQ10pOnpbQ10+cWU/KEhlPUZlW1JlK3pbQ11dLERlPXhlW3ZlK3pbQ11dKTooSGU9OTYsRGU9MCksbGU9MTw8eC1tLFQ9d2U9MTw8RTtkb3tTZVthdCsobmU+Pm0p'@; put 'Kyh3ZS09bGUpXT1JZTw8MjR8SGU8PDE2fERlfXdoaWxlKDAhPT13ZSk7Zm9yKGxlPTE8PHgtMTtuZSZsZTspbGU+Pj0xO2lmKDAhPT1sZT8obmUmPWxlLTEsbmUrPWxlKTpuZT0wLEMrKywwPT0tLWplW3hdKXtpZih4PT09VilicmVhazt4PWdlW19lK3pbQ11dfWlmKHg+VSYmKG5lJlFlKSE9'@; put 'PVplKXtmb3IoMD09PW0mJihtPVUpLGF0Kz1ULEE9MTw8KEU9eC1tKTtFK208ViYmISgoQS09amVbRSttXSk8PTApOylFKyssQTw8PTE7aWYoYWUrPTE8PEUsMT09PXNlJiZhZT44NTJ8fDI9PT1zZSYmYWU+NTkyKXJldHVybiAxO1NlW1plPW5lJlFlXT1VPDwyNHxFPDwxNnxhdC16ZX19cmV0'@; put 'dXJuIDAhPT1uZSYmKFNlW2F0K25lXT14LW08PDI0fDY0PDwxNiksZy5iaXRzPVUsMH19LHsiLi4vdXRpbHMvY29tbW9uIjoyN31dLDM3OltmdW5jdGlvbihGLEgsUil7InVzZSBzdHJpY3QiO0guZXhwb3J0cz17MjoibmVlZCBkaWN0aW9uYXJ5IiwxOiJzdHJlYW0gZW5kIiwwOiIiLCItMSI6'@; put 'ImZpbGUgZXJyb3IiLCItMiI6InN0cmVhbSBlcnJvciIsIi0zIjoiZGF0YSBlcnJvciIsIi00IjoiaW5zdWZmaWNpZW50IG1lbW9yeSIsIi01IjoiYnVmZmVyIGVycm9yIiwiLTYiOiJpbmNvbXBhdGlibGUgdmVyc2lvbiJ9fSx7fV0sMzg6W2Z1bmN0aW9uKEYsSCxSKXsidXNlIHN0cmljdCI7'@; put 'dmFyIGo9RigiLi4vdXRpbHMvY29tbW9uIik7ZnVuY3Rpb24gVyhmdCl7Zm9yKHZhciBGcj1mdC5sZW5ndGg7LS1Gcj49MDspZnRbRnJdPTB9dmFyIHplPTE1LHo9MTYsVj1bMCwwLDAsMCwwLDAsMCwwLDEsMSwxLDEsMiwyLDIsMiwzLDMsMywzLDQsNCw0LDQsNSw1LDUsNSwwXSxVPVswLDAs'@; put 'MCwwLDEsMSwyLDIsMywzLDQsNCw1LDUsNiw2LDcsNyw4LDgsOSw5LDEwLDEwLDExLDExLDEyLDEyLDEzLDEzXSxFPVswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIsMyw3XSxtPVsxNiwxNywxOCwwLDgsNyw5LDYsMTAsNSwxMSw0LDEyLDMsMTMsMiwxNCwxLDE1XSxhZT1uZXcg'@; put 'QXJyYXkoNTc2KTtXKGFlKTt2YXIgbmU9bmV3IEFycmF5KDYwKTtXKG5lKTt2YXIgbGU9bmV3IEFycmF5KDUxMik7VyhsZSk7dmFyIHdlPW5ldyBBcnJheSgyNTYpO1cod2UpO3ZhciBaZT1uZXcgQXJyYXkoMjkpO1coWmUpO3ZhciBRZT1uZXcgQXJyYXkoMzApO1coUWUpO3ZhciB4ZSx2ZSxx'@; put 'ZSxhdD1mdW5jdGlvbihmdCxGcixadCxrdCxMbil7dGhpcy5zdGF0aWNfdHJlZT1mdCx0aGlzLmV4dHJhX2JpdHM9RnIsdGhpcy5leHRyYV9iYXNlPVp0LHRoaXMuZWxlbXM9a3QsdGhpcy5tYXhfbGVuZ3RoPUxuLHRoaXMuaGFzX3N0cmVlPWZ0JiZmdC5sZW5ndGh9LGplPWZ1bmN0aW9uKGZ0'@; put 'LEZyKXt0aGlzLmR5bl90cmVlPWZ0LHRoaXMubWF4X2NvZGU9MCx0aGlzLnN0YXRfZGVzYz1Gcn07ZnVuY3Rpb24gQWUoZnQpe3JldHVybiBmdDwyNTY/bGVbZnRdOmxlWzI1NisoZnQ+Pj43KV19ZnVuY3Rpb24gRmUoZnQsRnIpe2Z0LnBlbmRpbmdfYnVmW2Z0LnBlbmRpbmcrK109MjU1JkZy'@; put 'LGZ0LnBlbmRpbmdfYnVmW2Z0LnBlbmRpbmcrK109RnI+Pj44JjI1NX1mdW5jdGlvbiBSZShmdCxGcixadCl7ZnQuYmlfdmFsaWQ+ei1adD8oZnQuYmlfYnVmfD1Gcjw8ZnQuYmlfdmFsaWQmNjU1MzUsRmUoZnQsZnQuYmlfYnVmKSxmdC5iaV9idWY9RnI+PnotZnQuYmlfdmFsaWQsZnQuYmlf'@; put 'dmFsaWQrPVp0LXopOihmdC5iaV9idWZ8PUZyPDxmdC5iaV92YWxpZCY2NTUzNSxmdC5iaV92YWxpZCs9WnQpfWZ1bmN0aW9uIEllKGZ0LEZyLFp0KXtSZShmdCxadFsyKkZyXSxadFsyKkZyKzFdKX1mdW5jdGlvbiBIZShmdCxGcil7dmFyIFp0PTA7ZG97WnR8PTEmZnQsZnQ+Pj49MSxadDw8'@; put 'PTF9d2hpbGUoLS1Gcj4wKTtyZXR1cm4gWnQ+Pj4xfWZ1bmN0aW9uIF90KGZ0LEZyLFp0KXt2YXIgb3QsenQsa3Q9bmV3IEFycmF5KHplKzEpLExuPTA7Zm9yKG90PTE7b3Q8PXplO290Kyspa3Rbb3RdPUxuPUxuK1p0W290LTFdPDwxO2Zvcih6dD0wO3p0PD1Gcjt6dCsrKXt2YXIgbmk9ZnRb'@; put 'Mip6dCsxXTswIT09bmkmJihmdFsyKnp0XT1IZShrdFtuaV0rKyxuaSkpfX1mdW5jdGlvbiBKZShmdCl7dmFyIEZyO2ZvcihGcj0wO0ZyPDI4NjtGcisrKWZ0LmR5bl9sdHJlZVsyKkZyXT0wO2ZvcihGcj0wO0ZyPDMwO0ZyKyspZnQuZHluX2R0cmVlWzIqRnJdPTA7Zm9yKEZyPTA7RnI8MTk7'@; put 'RnIrKylmdC5ibF90cmVlWzIqRnJdPTA7ZnQuZHluX2x0cmVlWzUxMl09MSxmdC5vcHRfbGVuPWZ0LnN0YXRpY19sZW49MCxmdC5sYXN0X2xpdD1mdC5tYXRjaGVzPTB9ZnVuY3Rpb24gb24oZnQpe2Z0LmJpX3ZhbGlkPjg/RmUoZnQsZnQuYmlfYnVmKTpmdC5iaV92YWxpZD4wJiYoZnQucGVu'@; put 'ZGluZ19idWZbZnQucGVuZGluZysrXT1mdC5iaV9idWYpLGZ0LmJpX2J1Zj0wLGZ0LmJpX3ZhbGlkPTB9ZnVuY3Rpb24gTXQoZnQsRnIsWnQsa3Qpe3ZhciBMbj0yKkZyLG90PTIqWnQ7cmV0dXJuIGZ0W0xuXTxmdFtvdF18fGZ0W0xuXT09PWZ0W290XSYma3RbRnJdPD1rdFtadF19ZnVuY3Rp'@; put 'b24gSXQoZnQsRnIsWnQpe2Zvcih2YXIga3Q9ZnQuaGVhcFtadF0sTG49WnQ8PDE7TG48PWZ0LmhlYXBfbGVuJiYoTG48ZnQuaGVhcF9sZW4mJk10KEZyLGZ0LmhlYXBbTG4rMV0sZnQuaGVhcFtMbl0sZnQuZGVwdGgpJiZMbisrLCFNdChGcixrdCxmdC5oZWFwW0xuXSxmdC5kZXB0aCkpOylm'@; put 'dC5oZWFwW1p0XT1mdC5oZWFwW0xuXSxadD1MbixMbjw8PTE7ZnQuaGVhcFtadF09a3R9ZnVuY3Rpb24gcnQoZnQsRnIsWnQpe3ZhciBrdCxMbix6dCxuaSxvdD0wO2lmKDAhPT1mdC5sYXN0X2xpdClkb3trdD1mdC5wZW5kaW5nX2J1ZltmdC5kX2J1ZisyKm90XTw8OHxmdC5wZW5kaW5nX2J1'@; put 'ZltmdC5kX2J1ZisyKm90KzFdLExuPWZ0LnBlbmRpbmdfYnVmW2Z0LmxfYnVmK290XSxvdCsrLDA9PT1rdD9JZShmdCxMbixGcik6KEllKGZ0LCh6dD13ZVtMbl0pKzI1NisxLEZyKSwwIT09KG5pPVZbenRdKSYmUmUoZnQsTG4tPVplW3p0XSxuaSksSWUoZnQsenQ9QWUoLS1rdCksWnQpLDAh'@; put 'PT0obmk9VVt6dF0pJiZSZShmdCxrdC09UWVbenRdLG5pKSl9d2hpbGUob3Q8ZnQubGFzdF9saXQpO0llKGZ0LDI1NixGcil9ZnVuY3Rpb24gS2UoZnQsRnIpe3ZhciB6dCxuaSxBdCxadD1Gci5keW5fdHJlZSxrdD1Gci5zdGF0X2Rlc2Muc3RhdGljX3RyZWUsTG49RnIuc3RhdF9kZXNjLmhh'@; put 'c19zdHJlZSxvdD1Gci5zdGF0X2Rlc2MuZWxlbXMsV2U9LTE7Zm9yKGZ0LmhlYXBfbGVuPTAsZnQuaGVhcF9tYXg9NTczLHp0PTA7enQ8b3Q7enQrKykwIT09WnRbMip6dF0/KGZ0LmhlYXBbKytmdC5oZWFwX2xlbl09V2U9enQsZnQuZGVwdGhbenRdPTApOlp0WzIqenQrMV09MDtmb3IoO2Z0'@; put 'LmhlYXBfbGVuPDI7KVp0WzIqKEF0PWZ0LmhlYXBbKytmdC5oZWFwX2xlbl09V2U8Mj8rK1dlOjApXT0xLGZ0LmRlcHRoW0F0XT0wLGZ0Lm9wdF9sZW4tLSxMbiYmKGZ0LnN0YXRpY19sZW4tPWt0WzIqQXQrMV0pO2ZvcihGci5tYXhfY29kZT1XZSx6dD1mdC5oZWFwX2xlbj4+MTt6dD49MTt6'@; put 'dC0tKUl0KGZ0LFp0LHp0KTtBdD1vdDtkb3t6dD1mdC5oZWFwWzFdLGZ0LmhlYXBbMV09ZnQuaGVhcFtmdC5oZWFwX2xlbi0tXSxJdChmdCxadCwxKSxuaT1mdC5oZWFwWzFdLGZ0LmhlYXBbLS1mdC5oZWFwX21heF09enQsZnQuaGVhcFstLWZ0LmhlYXBfbWF4XT1uaSxadFsyKkF0XT1adFsy'@; put 'Knp0XStadFsyKm5pXSxmdC5kZXB0aFtBdF09KGZ0LmRlcHRoW3p0XT49ZnQuZGVwdGhbbmldP2Z0LmRlcHRoW3p0XTpmdC5kZXB0aFtuaV0pKzEsWnRbMip6dCsxXT1adFsyKm5pKzFdPUF0LGZ0LmhlYXBbMV09QXQrKyxJdChmdCxadCwxKX13aGlsZShmdC5oZWFwX2xlbj49Mik7ZnQuaGVh'@; put 'cFstLWZ0LmhlYXBfbWF4XT1mdC5oZWFwWzFdLGZ1bmN0aW9uIGtlKGZ0LEZyKXt2YXIgQXQsaXIsaHQsRXQsem4sYW4sWnQ9RnIuZHluX3RyZWUsa3Q9RnIubWF4X2NvZGUsTG49RnIuc3RhdF9kZXNjLnN0YXRpY190cmVlLG90PUZyLnN0YXRfZGVzYy5oYXNfc3RyZWUsenQ9RnIuc3RhdF9k'@; put 'ZXNjLmV4dHJhX2JpdHMsbmk9RnIuc3RhdF9kZXNjLmV4dHJhX2Jhc2UsV2U9RnIuc3RhdF9kZXNjLm1heF9sZW5ndGgsanQ9MDtmb3IoRXQ9MDtFdDw9emU7RXQrKylmdC5ibF9jb3VudFtFdF09MDtmb3IoWnRbMipmdC5oZWFwW2Z0LmhlYXBfbWF4XSsxXT0wLEF0PWZ0LmhlYXBfbWF4KzE7'@; put 'QXQ8NTczO0F0KyspKEV0PVp0WzIqWnRbMiooaXI9ZnQuaGVhcFtBdF0pKzFdKzFdKzEpPldlJiYoRXQ9V2UsanQrKyksWnRbMippcisxXT1FdCwhKGlyPmt0KSYmKGZ0LmJsX2NvdW50W0V0XSsrLHpuPTAsaXI+PW5pJiYoem49enRbaXItbmldKSxmdC5vcHRfbGVuKz0oYW49WnRbMippcl0p'@; put 'KihFdCt6biksb3QmJihmdC5zdGF0aWNfbGVuKz1hbiooTG5bMippcisxXSt6bikpKTtpZigwIT09anQpe2Rve2ZvcihFdD1XZS0xOzA9PT1mdC5ibF9jb3VudFtFdF07KUV0LS07ZnQuYmxfY291bnRbRXRdLS0sZnQuYmxfY291bnRbRXQrMV0rPTIsZnQuYmxfY291bnRbV2VdLS0sanQtPTJ9'@; put 'd2hpbGUoanQ+MCk7Zm9yKEV0PVdlOzAhPT1FdDtFdC0tKWZvcihpcj1mdC5ibF9jb3VudFtFdF07MCE9PWlyOykhKChodD1mdC5oZWFwWy0tQXRdKT5rdCkmJihadFsyKmh0KzFdIT09RXQmJihmdC5vcHRfbGVuKz0oRXQtWnRbMipodCsxXSkqWnRbMipodF0sWnRbMipodCsxXT1FdCksaXIt'@; put 'LSl9fShmdCxGciksX3QoWnQsV2UsZnQuYmxfY291bnQpfWZ1bmN0aW9uIHR0KGZ0LEZyLFp0KXt2YXIga3Qsb3QsTG49LTEsenQ9RnJbMV0sbmk9MCxXZT03LEF0PTQ7Zm9yKDA9PT16dCYmKFdlPTEzOCxBdD0zKSxGclsyKihadCsxKSsxXT02NTUzNSxrdD0wO2t0PD1adDtrdCsrKW90PXp0'@; put 'LHp0PUZyWzIqKGt0KzEpKzFdLCEoKytuaTxXZSYmb3Q9PT16dCkmJihuaTxBdD9mdC5ibF90cmVlWzIqb3RdKz1uaTowIT09b3Q/KG90IT09TG4mJmZ0LmJsX3RyZWVbMipvdF0rKyxmdC5ibF90cmVlWzMyXSsrKTpuaTw9MTA/ZnQuYmxfdHJlZVszNF0rKzpmdC5ibF90cmVlWzM2XSsrLG5p'@; put 'PTAsTG49b3QsMD09PXp0PyhXZT0xMzgsQXQ9Myk6b3Q9PT16dD8oV2U9NixBdD0zKTooV2U9NyxBdD00KSl9ZnVuY3Rpb24gTmUoZnQsRnIsWnQpe3ZhciBrdCxvdCxMbj0tMSx6dD1GclsxXSxuaT0wLFdlPTcsQXQ9NDtmb3IoMD09PXp0JiYoV2U9MTM4LEF0PTMpLGt0PTA7a3Q8PVp0O2t0'@; put 'KyspaWYob3Q9enQsenQ9RnJbMiooa3QrMSkrMV0sISgrK25pPFdlJiZvdD09PXp0KSl7aWYobmk8QXQpZG97SWUoZnQsb3QsZnQuYmxfdHJlZSl9d2hpbGUoMCE9LS1uaSk7ZWxzZSAwIT09b3Q/KG90IT09TG4mJihJZShmdCxvdCxmdC5ibF90cmVlKSxuaS0tKSxJZShmdCwxNixmdC5ibF90'@; put 'cmVlKSxSZShmdCxuaS0zLDIpKTpuaTw9MTA/KEllKGZ0LDE3LGZ0LmJsX3RyZWUpLFJlKGZ0LG5pLTMsMykpOihJZShmdCwxOCxmdC5ibF90cmVlKSxSZShmdCxuaS0xMSw3KSk7bmk9MCxMbj1vdCwwPT09enQ/KFdlPTEzOCxBdD0zKTpvdD09PXp0PyhXZT02LEF0PTMpOihXZT03LEF0PTQp'@; put 'fX12YXIgUHQ9ITE7ZnVuY3Rpb24gZW4oZnQsRnIsWnQsa3Qpe1JlKGZ0LDArKGt0PzE6MCksMyksZnVuY3Rpb24geXQoZnQsRnIsWnQsa3Qpe29uKGZ0KSxrdCYmKEZlKGZ0LFp0KSxGZShmdCx+WnQpKSxqLmFycmF5U2V0KGZ0LnBlbmRpbmdfYnVmLGZ0LndpbmRvdyxGcixadCxmdC5wZW5k'@; put 'aW5nKSxmdC5wZW5kaW5nKz1adH0oZnQsRnIsWnQsITApfVIuX3RyX2luaXQ9ZnVuY3Rpb24gb2koZnQpe1B0fHwoZnVuY3Rpb24gbnQoKXt2YXIgZnQsRnIsWnQsa3QsTG4sb3Q9bmV3IEFycmF5KHplKzEpO2ZvcihadD0wLGt0PTA7a3Q8Mjg7a3QrKylmb3IoWmVba3RdPVp0LGZ0PTA7ZnQ8'@; put 'MTw8VltrdF07ZnQrKyl3ZVtadCsrXT1rdDtmb3Iod2VbWnQtMV09a3QsTG49MCxrdD0wO2t0PDE2O2t0KyspZm9yKFFlW2t0XT1MbixmdD0wO2Z0PDE8PFVba3RdO2Z0KyspbGVbTG4rK109a3Q7Zm9yKExuPj49NztrdDwzMDtrdCsrKWZvcihRZVtrdF09TG48PDcsZnQ9MDtmdDwxPDxVW2t0'@; put 'XS03O2Z0KyspbGVbMjU2K0xuKytdPWt0O2ZvcihGcj0wO0ZyPD16ZTtGcisrKW90W0ZyXT0wO2ZvcihmdD0wO2Z0PD0xNDM7KWFlWzIqZnQrMV09OCxmdCsrLG90WzhdKys7Zm9yKDtmdDw9MjU1OylhZVsyKmZ0KzFdPTksZnQrKyxvdFs5XSsrO2Zvcig7ZnQ8PTI3OTspYWVbMipmdCsxXT03'@; put 'LGZ0Kyssb3RbN10rKztmb3IoO2Z0PD0yODc7KWFlWzIqZnQrMV09OCxmdCsrLG90WzhdKys7Zm9yKF90KGFlLDI4NyxvdCksZnQ9MDtmdDwzMDtmdCsrKW5lWzIqZnQrMV09NSxuZVsyKmZ0XT1IZShmdCw1KTt4ZT1uZXcgYXQoYWUsViwyNTcsMjg2LHplKSx2ZT1uZXcgYXQobmUsVSwwLDMw'@; put 'LHplKSxxZT1uZXcgYXQobmV3IEFycmF5KDApLEUsMCwxOSw3KX0oKSxQdD0hMCksZnQubF9kZXNjPW5ldyBqZShmdC5keW5fbHRyZWUseGUpLGZ0LmRfZGVzYz1uZXcgamUoZnQuZHluX2R0cmVlLHZlKSxmdC5ibF9kZXNjPW5ldyBqZShmdC5ibF90cmVlLHFlKSxmdC5iaV9idWY9MCxmdC5i'@; put 'aV92YWxpZD0wLEplKGZ0KX0sUi5fdHJfc3RvcmVkX2Jsb2NrPWVuLFIuX3RyX2ZsdXNoX2Jsb2NrPWZ1bmN0aW9uIElpKGZ0LEZyLFp0LGt0KXt2YXIgTG4sb3QsenQ9MDtmdC5sZXZlbD4wPygyPT09ZnQuc3RybS5kYXRhX3R5cGUmJihmdC5zdHJtLmRhdGFfdHlwZT1mdW5jdGlvbiBMdChm'@; put 'dCl7dmFyIFp0LEZyPTQwOTM2MjQ0NDc7Zm9yKFp0PTA7WnQ8PTMxO1p0KyssRnI+Pj49MSlpZigxJkZyJiYwIT09ZnQuZHluX2x0cmVlWzIqWnRdKXJldHVybiAwO2lmKDAhPT1mdC5keW5fbHRyZWVbMThdfHwwIT09ZnQuZHluX2x0cmVlWzIwXXx8MCE9PWZ0LmR5bl9sdHJlZVsyNl0pcmV0'@; put 'dXJuIDE7Zm9yKFp0PTMyO1p0PDI1NjtadCsrKWlmKDAhPT1mdC5keW5fbHRyZWVbMipadF0pcmV0dXJuIDE7cmV0dXJuIDB9KGZ0KSksS2UoZnQsZnQubF9kZXNjKSxLZShmdCxmdC5kX2Rlc2MpLHp0PWZ1bmN0aW9uIHV0KGZ0KXt2YXIgRnI7Zm9yKHR0KGZ0LGZ0LmR5bl9sdHJlZSxmdC5s'@; put 'X2Rlc2MubWF4X2NvZGUpLHR0KGZ0LGZ0LmR5bl9kdHJlZSxmdC5kX2Rlc2MubWF4X2NvZGUpLEtlKGZ0LGZ0LmJsX2Rlc2MpLEZyPTE4O0ZyPj0zJiYwPT09ZnQuYmxfdHJlZVsyKm1bRnJdKzFdO0ZyLS0pO3JldHVybiBmdC5vcHRfbGVuKz0zKihGcisxKSs1KzUrNCxGcn0oZnQpLChvdD1m'@; put 'dC5zdGF0aWNfbGVuKzMrNz4+PjMpPD0oTG49ZnQub3B0X2xlbiszKzc+Pj4zKSYmKExuPW90KSk6TG49b3Q9WnQrNSxadCs0PD1MbiYmLTEhPT1Gcj9lbihmdCxGcixadCxrdCk6ND09PWZ0LnN0cmF0ZWd5fHxvdD09PUxuPyhSZShmdCwyKyhrdD8xOjApLDMpLHJ0KGZ0LGFlLG5lKSk6KFJl'@; put 'KGZ0LDQrKGt0PzE6MCksMyksZnVuY3Rpb24gSnQoZnQsRnIsWnQsa3Qpe3ZhciBMbjtmb3IoUmUoZnQsRnItMjU3LDUpLFJlKGZ0LFp0LTEsNSksUmUoZnQsa3QtNCw0KSxMbj0wO0xuPGt0O0xuKyspUmUoZnQsZnQuYmxfdHJlZVsyKm1bTG5dKzFdLDMpO05lKGZ0LGZ0LmR5bl9sdHJlZSxG'@; put 'ci0xKSxOZShmdCxmdC5keW5fZHRyZWUsWnQtMSl9KGZ0LGZ0LmxfZGVzYy5tYXhfY29kZSsxLGZ0LmRfZGVzYy5tYXhfY29kZSsxLHp0KzEpLHJ0KGZ0LGZ0LmR5bl9sdHJlZSxmdC5keW5fZHRyZWUpKSxKZShmdCksa3QmJm9uKGZ0KX0sUi5fdHJfdGFsbHk9ZnVuY3Rpb24gZG4oZnQsRnIs'@; put 'WnQpe3JldHVybiBmdC5wZW5kaW5nX2J1ZltmdC5kX2J1ZisyKmZ0Lmxhc3RfbGl0XT1Gcj4+PjgmMjU1LGZ0LnBlbmRpbmdfYnVmW2Z0LmRfYnVmKzIqZnQubGFzdF9saXQrMV09MjU1JkZyLGZ0LnBlbmRpbmdfYnVmW2Z0LmxfYnVmK2Z0Lmxhc3RfbGl0XT0yNTUmWnQsZnQubGFzdF9saXQr'@; put 'KywwPT09RnI/ZnQuZHluX2x0cmVlWzIqWnRdKys6KGZ0Lm1hdGNoZXMrKyxGci0tLGZ0LmR5bl9sdHJlZVsyKih3ZVtadF0rMjU2KzEpXSsrLGZ0LmR5bl9kdHJlZVsyKkFlKEZyKV0rKyksZnQubGFzdF9saXQ9PT1mdC5saXRfYnVmc2l6ZS0xfSxSLl90cl9hbGlnbj1mdW5jdGlvbiBzbihm'@; put 'dCl7UmUoZnQsMiwzKSxJZShmdCwyNTYsYWUpLGZ1bmN0aW9uIERlKGZ0KXsxNj09PWZ0LmJpX3ZhbGlkPyhGZShmdCxmdC5iaV9idWYpLGZ0LmJpX2J1Zj0wLGZ0LmJpX3ZhbGlkPTApOmZ0LmJpX3ZhbGlkPj04JiYoZnQucGVuZGluZ19idWZbZnQucGVuZGluZysrXT0yNTUmZnQuYmlfYnVm'@; put 'LGZ0LmJpX2J1Zj4+PTgsZnQuYmlfdmFsaWQtPTgpfShmdCl9fSx7Ii4uL3V0aWxzL2NvbW1vbiI6Mjd9XSwzOTpbZnVuY3Rpb24oRixILFIpeyJ1c2Ugc3RyaWN0IjtILmV4cG9ydHM9ZnVuY3Rpb24gaigpe3RoaXMuaW5wdXQ9bnVsbCx0aGlzLm5leHRfaW49MCx0aGlzLmF2YWlsX2luPTAs'@; put 'dGhpcy50b3RhbF9pbj0wLHRoaXMub3V0cHV0PW51bGwsdGhpcy5uZXh0X291dD0wLHRoaXMuYXZhaWxfb3V0PTAsdGhpcy50b3RhbF9vdXQ9MCx0aGlzLm1zZz0iIix0aGlzLnN0YXRlPW51bGwsdGhpcy5kYXRhX3R5cGU9Mix0aGlzLmFkbGVyPTB9fSx7fV19LHt9LFs5XSkoOSl9KX0sNjM1'@; put 'Nzg6KGNlLEosYik9PnshZnVuY3Rpb24gXyh3KXt3LnZlcnNpb249IjEuMjAyMTExMjIuMSI7dmFyIEY9MTIwMCxIPTEyNTI7dHlwZW9mIGNwdGFibGU+InUiJiYodHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsLmNwdGFibGU9Yig0MjkyNCk6dHlwZW9mIHdpbmRvdzwidSImJih3aW5kb3cuY3B0'@; put 'YWJsZT1iKDQyOTI0KSkpO2Zvcih2YXIgUj1bODc0LDkzMiw5MzYsOTQ5LDk1MCwxZTRdLGo9MDtqPD04OysrailSLnB1c2goMTI1MCtqKTt2YXIgUD17MDoxMjUyLDE6NjUwMDEsMjo2NTAwMSw3NzoxZTQsMTI4OjkzMiwxMjk6OTQ5LDEzMDoxMzYxLDEzNDo5MzYsMTM2Ojk1MCwxNjE6MTI1'@; put 'MywxNjI6MTI1NCwxNjM6MTI1OCwxNzc6MTI1NSwxNzg6MTI1NiwxODY6MTI1NywyMDQ6MTI1MSwyMjI6ODc0LDIzODoxMjUwLDI1NToxMjUyLDY5OjY5Njl9LEw9ZnVuY3Rpb24oUyl7LTEhPVIuaW5kZXhPZihTKSYmKEg9UFswXT1TKX0sQj1mdW5jdGlvbihTKXtGPVMsTChTKX07ZnVuY3Rp'@; put 'b24gVygpe0IoMTIwMCksZnVuY3Rpb24gWSgpe0woMTI1Mil9KCl9ZnVuY3Rpb24gWihTKXtmb3IodmFyIE89W10saz0wLEs9Uy5sZW5ndGg7azxLOysraylPW2tdPVMuY2hhckNvZGVBdChrKTtyZXR1cm4gT312YXIgcT1mdW5jdGlvbihTKXt2YXIgTz1TLmNoYXJDb2RlQXQoMCksaz1TLmNo'@; put 'YXJDb2RlQXQoMSk7cmV0dXJuIDI1NT09TyYmMjU0PT1rP2Z1bmN0aW9uIFgoUyl7Zm9yKHZhciBPPVtdLGs9MDtrPFMubGVuZ3RoPj4xOysraylPW2tdPVN0cmluZy5mcm9tQ2hhckNvZGUoUy5jaGFyQ29kZUF0KDIqaykrKFMuY2hhckNvZGVBdCgyKmsrMSk8PDgpKTtyZXR1cm4gTy5qb2lu'@; put 'KCIiKX0oUy5zbGljZSgyKSk6MjU0PT1PJiYyNTU9PWs/ZnVuY3Rpb24gUShTKXtmb3IodmFyIE89W10saz0wO2s8Uy5sZW5ndGg+PjE7KytrKU9ba109U3RyaW5nLmZyb21DaGFyQ29kZShTLmNoYXJDb2RlQXQoMiprKzEpKyhTLmNoYXJDb2RlQXQoMiprKTw8OCkpO3JldHVybiBPLmpvaW4o'@; put 'IiIpfShTLnNsaWNlKDIpKTo2NTI3OT09Tz9TLnNsaWNlKDEpOlN9LHRlPWZ1bmN0aW9uKE8pe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKE8pfSxpZT1mdW5jdGlvbihPKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShPKX07dHlwZW9mIGNwdGFibGU8InUiJiYoQj1mdW5jdGlvbihT'@; put 'KXtGPVMsTChTKX0scT1mdW5jdGlvbihTKXtyZXR1cm4gMjU1PT09Uy5jaGFyQ29kZUF0KDApJiYyNTQ9PT1TLmNoYXJDb2RlQXQoMSk/Y3B0YWJsZS51dGlscy5kZWNvZGUoMTIwMCxaKFMuc2xpY2UoMikpKTpTfSx0ZT1mdW5jdGlvbihPKXtyZXR1cm4gMTIwMD09PUY/U3RyaW5nLmZyb21D'@; put 'aGFyQ29kZShPKTpjcHRhYmxlLnV0aWxzLmRlY29kZShGLFsyNTUmTyxPPj44XSlbMF19LGllPWZ1bmN0aW9uKE8pe3JldHVybiBjcHRhYmxlLnV0aWxzLmRlY29kZShILFtPXSlbMF19KTt2YXIgc2U9bnVsbCxfZT1mdW5jdGlvbigpe3ZhciBPPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZ'@; put 'WmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSI7cmV0dXJue2VuY29kZTpmdW5jdGlvbihrKXtmb3IodmFyIEs9IiIsZWU9MCxvZT0wLG1lPTAscGU9MCxiZT0wLFBlPTAsVmU9MCxZZT0wO1llPGsubGVuZ3RoOylwZT0oZWU9ay5jaGFyQ29kZUF0KFllKyspKT4+Mixi'@; put 'ZT0oMyZlZSk8PDR8KG9lPWsuY2hhckNvZGVBdChZZSsrKSk+PjQsUGU9KDE1Jm9lKTw8MnwobWU9ay5jaGFyQ29kZUF0KFllKyspKT4+NixWZT02MyZtZSxpc05hTihvZSk/UGU9VmU9NjQ6aXNOYU4obWUpJiYoVmU9NjQpLEsrPU8uY2hhckF0KHBlKStPLmNoYXJBdChiZSkrTy5jaGFyQXQo'@; put 'UGUpK08uY2hhckF0KFZlKTtyZXR1cm4gS30sZGVjb2RlOmZ1bmN0aW9uKEspe3ZhciBlZT0iIixiZT0wLFBlPTAsVmU9MCxZZT0wO0s9Sy5yZXBsYWNlKC9bXlx3XCtcL1w9XS9nLCIiKTtmb3IodmFyIGV0PTA7ZXQ8Sy5sZW5ndGg7KWJlPU8uaW5kZXhPZihLLmNoYXJBdChldCsrKSksUGU9'@; put 'Ty5pbmRleE9mKEsuY2hhckF0KGV0KyspKSxlZSs9U3RyaW5nLmZyb21DaGFyQ29kZShiZTw8MnxQZT4+NCksNjQhPT0oVmU9Ty5pbmRleE9mKEsuY2hhckF0KGV0KyspKSkmJihlZSs9U3RyaW5nLmZyb21DaGFyQ29kZSgoMTUmUGUpPDw0fFZlPj4yKSksNjQhPT0oWWU9Ty5pbmRleE9mKEsu'@; put 'Y2hhckF0KGV0KyspKSkmJihlZSs9U3RyaW5nLmZyb21DaGFyQ29kZSgoMyZWZSk8PDZ8WWUpKTtyZXR1cm4gZWV9fX0oKSxUZT10eXBlb2YgQnVmZmVyPCJ1IiYmdHlwZW9mIHByb2Nlc3M8InUiJiZ0eXBlb2YgcHJvY2Vzcy52ZXJzaW9uczwidSImJiEhcHJvY2Vzcy52ZXJzaW9ucy5ub2Rl'@; put 'LFNlPWZ1bmN0aW9uKCl7fTtpZih0eXBlb2YgQnVmZmVyPCJ1Iil7dmFyIHplPSFCdWZmZXIuZnJvbTtpZighemUpdHJ5e0J1ZmZlci5mcm9tKCJmb28iLCJ1dGY4Iil9Y2F0Y2h7emU9ITB9U2U9emU/ZnVuY3Rpb24oUyxPKXtyZXR1cm4gTz9uZXcgQnVmZmVyKFMsTyk6bmV3IEJ1ZmZlcihT'@; put 'KX06QnVmZmVyLmZyb20uYmluZChCdWZmZXIpLEJ1ZmZlci5hbGxvY3x8KEJ1ZmZlci5hbGxvYz1mdW5jdGlvbihTKXtyZXR1cm4gbmV3IEJ1ZmZlcihTKX0pLEJ1ZmZlci5hbGxvY1Vuc2FmZXx8KEJ1ZmZlci5hbGxvY1Vuc2FmZT1mdW5jdGlvbihTKXtyZXR1cm4gbmV3IEJ1ZmZlcihTKX0p'@; put 'fWZ1bmN0aW9uIHooUyl7cmV0dXJuIFRlP0J1ZmZlci5hbGxvYyhTKTpuZXcgQXJyYXkoUyl9ZnVuY3Rpb24gZyhTKXtyZXR1cm4gVGU/QnVmZmVyLmFsbG9jVW5zYWZlKFMpOm5ldyBBcnJheShTKX12YXIgeT1mdW5jdGlvbihPKXtyZXR1cm4gVGU/U2UoTywiYmluYXJ5Iik6Ty5zcGxpdCgi'@; put 'IikubWFwKGZ1bmN0aW9uKGspe3JldHVybiAyNTUmay5jaGFyQ29kZUF0KDApfSl9O2Z1bmN0aW9uIHgoUyl7aWYodHlwZW9mIEFycmF5QnVmZmVyPiJ1IilyZXR1cm4geShTKTtmb3IodmFyIE89bmV3IEFycmF5QnVmZmVyKFMubGVuZ3RoKSxrPW5ldyBVaW50OEFycmF5KE8pLEs9MDtLIT1T'@; put 'Lmxlbmd0aDsrK0spa1tLXT0yNTUmUy5jaGFyQ29kZUF0KEspO3JldHVybiBPfWZ1bmN0aW9uIEMoUyl7aWYoQXJyYXkuaXNBcnJheShTKSlyZXR1cm4gUy5tYXAoZnVuY3Rpb24oSyl7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoSyl9KS5qb2luKCIiKTtmb3IodmFyIE89W10saz0wO2s8'@; put 'Uy5sZW5ndGg7KytrKU9ba109U3RyaW5nLmZyb21DaGFyQ29kZShTW2tdKTtyZXR1cm4gTy5qb2luKCIiKX1mdW5jdGlvbiBWKFMpe2lmKHR5cGVvZiBBcnJheUJ1ZmZlcj4idSIpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCIpO2lmKFMgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcilyZXR1'@; put 'cm4gVihuZXcgVWludDhBcnJheShTKSk7Zm9yKHZhciBPPW5ldyBBcnJheShTLmxlbmd0aCksaz0wO2s8Uy5sZW5ndGg7KytrKU9ba109U1trXTtyZXR1cm4gT312YXIgVT1mdW5jdGlvbihTKXt2YXIgTz1bXTtyZXR1cm4gUy5mb3JFYWNoKGZ1bmN0aW9uKGspe0FycmF5LmlzQXJyYXkoayk/'@; put 'Tz1PLmNvbmNhdChrKToodHlwZW9mIFVpbnQ4QXJyYXk8InUiJiZrIGluc3RhbmNlb2YgVWludDhBcnJheXx8dHlwZW9mIEFycmF5QnVmZmVyPCJ1IiYmayBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSYmKE89Ty5jb25jYXQoVihrKSkpfSksT30sRT0vXHUwMDAwL2csbT0vW1x1MDAwMS1cdTAw'@; put 'MDZdL2csQT17fSxhZT1mdW5jdGlvbihPKXtmdW5jdGlvbiBrKGxuKXtmb3IodmFyIEVuPSIiLFpuPWxuLmxlbmd0aC0xO1puPj0wOylFbis9bG4uY2hhckF0KFpuLS0pO3JldHVybiBFbn1mdW5jdGlvbiBLKGxuLEVuKXtmb3IodmFyIFpuPSIiO1puLmxlbmd0aDxFbjspWm4rPWxuO3JldHVy'@; put 'biBabn1mdW5jdGlvbiBlZShsbixFbil7dmFyIFpuPSIiK2xuO3JldHVybiBabi5sZW5ndGg+PUVuP1puOksoIjAiLEVuLVpuLmxlbmd0aCkrWm59ZnVuY3Rpb24gb2UobG4sRW4pe3ZhciBabj0iIitsbjtyZXR1cm4gWm4ubGVuZ3RoPj1Fbj9abjpLKCIgIixFbi1abi5sZW5ndGgpK1pufWZ1'@; put 'bmN0aW9uIG1lKGxuLEVuKXt2YXIgWm49IiIrbG47cmV0dXJuIFpuLmxlbmd0aD49RW4/Wm46Wm4rSygiICIsRW4tWm4ubGVuZ3RoKX1PLnZlcnNpb249IjEuMjAyMTA3MjYuMSI7dmFyIFBlPU1hdGgucG93KDIsMzIpO2Z1bmN0aW9uIFZlKGxuLEVuKXtyZXR1cm4gbG4+UGV8fGxuPC1QZT9m'@; put 'dW5jdGlvbiBwZShsbixFbil7dmFyIFpuPSIiK01hdGgucm91bmQobG4pO3JldHVybiBabi5sZW5ndGg+PUVuP1puOksoIjAiLEVuLVpuLmxlbmd0aCkrWm59KGxuLEVuKTpmdW5jdGlvbiBiZShsbixFbil7dmFyIFpuPSIiK2xuO3JldHVybiBabi5sZW5ndGg+PUVuP1puOksoIjAiLEVuLVpu'@; put 'Lmxlbmd0aCkrWm59KE1hdGgucm91bmQobG4pLEVuKX1mdW5jdGlvbiBZZShsbixFbil7cmV0dXJuIGxuLmxlbmd0aD49NysoRW49RW58fDApJiYxMDM9PSgzMnxsbi5jaGFyQ29kZUF0KEVuKSkmJjEwMT09KDMyfGxuLmNoYXJDb2RlQXQoRW4rMSkpJiYxMTA9PSgzMnxsbi5jaGFyQ29kZUF0'@; put 'KEVuKzIpKSYmMTAxPT0oMzJ8bG4uY2hhckNvZGVBdChFbiszKSkmJjExND09KDMyfGxuLmNoYXJDb2RlQXQoRW4rNCkpJiY5Nz09KDMyfGxuLmNoYXJDb2RlQXQoRW4rNSkpJiYxMDg9PSgzMnxsbi5jaGFyQ29kZUF0KEVuKzYpKX1mdW5jdGlvbiBldChsbil7Zm9yKHZhciBFbj1bXSxabj1P'@; put 'YmplY3Qua2V5cyhsbiksTWk9MDtNaSE9PVpuLmxlbmd0aDsrK01pKUVuW2xuW1puW01pXV1dPVpuW01pXTtyZXR1cm4gRW59dmFyIGN0PVtbIlN1biIsIlN1bmRheSJdLFsiTW9uIiwiTW9uZGF5Il0sWyJUdWUiLCJUdWVzZGF5Il0sWyJXZWQiLCJXZWRuZXNkYXkiXSxbIlRodSIsIlRodXJz'@; put 'ZGF5Il0sWyJGcmkiLCJGcmlkYXkiXSxbIlNhdCIsIlNhdHVyZGF5Il1dLFR0PVtbIkoiLCJKYW4iLCJKYW51YXJ5Il0sWyJGIiwiRmViIiwiRmVicnVhcnkiXSxbIk0iLCJNYXIiLCJNYXJjaCJdLFsiQSIsIkFwciIsIkFwcmlsIl0sWyJNIiwiTWF5IiwiTWF5Il0sWyJKIiwiSnVuIiwiSnVu'@; put 'ZSJdLFsiSiIsIkp1bCIsIkp1bHkiXSxbIkEiLCJBdWciLCJBdWd1c3QiXSxbIlMiLCJTZXAiLCJTZXB0ZW1iZXIiXSxbIk8iLCJPY3QiLCJPY3RvYmVyIl0sWyJOIiwiTm92IiwiTm92ZW1iZXIiXSxbIkQiLCJEZWMiLCJEZWNlbWJlciJdXTtmdW5jdGlvbiBpdChsbil7bG5bMF09IkdlbmVy'@; put 'YWwiLGxuWzFdPSIwIixsblsyXT0iMC4wMCIsbG5bM109IiMsIyMwIixsbls0XT0iIywjIzAuMDAiLGxuWzldPSIwJSIsbG5bMTBdPSIwLjAwJSIsbG5bMTFdPSIwLjAwRSswMCIsbG5bMTJdPSIjID8vPyIsbG5bMTNdPSIjID8/Lz8/IixsblsxNF09Im0vZC95eSIsbG5bMTVdPSJkLW1tbS15'@; put 'eSIsbG5bMTZdPSJkLW1tbSIsbG5bMTddPSJtbW0teXkiLGxuWzE4XT0iaDptbSBBTS9QTSIsbG5bMTldPSJoOm1tOnNzIEFNL1BNIixsblsyMF09Img6bW0iLGxuWzIxXT0iaDptbTpzcyIsbG5bMjJdPSJtL2QveXkgaDptbSIsbG5bMzddPSIjLCMjMCA7KCMsIyMwKSIsbG5bMzhdPSIjLCMj'@; put 'MCA7W1JlZF0oIywjIzApIixsblszOV09IiMsIyMwLjAwOygjLCMjMC4wMCkiLGxuWzQwXT0iIywjIzAuMDA7W1JlZF0oIywjIzAuMDApIixsbls0NV09Im1tOnNzIixsbls0Nl09IltoXTptbTpzcyIsbG5bNDddPSJtbXNzLjAiLGxuWzQ4XT0iIyMwLjBFKzAiLGxuWzQ5XT0iQCIsbG5bNTZd'@; put 'PSciXHU0ZTBhXHU1MzQ4L1x1NGUwYlx1NTM0OCAiaGgiXHU2NjQyIm1tIlx1NTIwNiJzcyJcdTc5ZDIgIicsSG4obG4pfXZhciBidD17fTtpdChidCk7dmFyIEJ0PVtdLER0PTA7Zm9yKER0PTU7RHQ8PTg7KytEdClCdFtEdF09MzIrRHQ7Zm9yKER0PTIzO0R0PD0yNjsrK0R0KUJ0W0R0XT0w'@; put 'O2ZvcihEdD0yNztEdDw9MzE7KytEdClCdFtEdF09MTQ7Zm9yKER0PTUwO0R0PD01ODsrK0R0KUJ0W0R0XT0xNDtmb3IoRHQ9NTk7RHQ8PTYyOysrRHQpQnRbRHRdPUR0LTU4O2ZvcihEdD02NztEdDw9Njg7KytEdClCdFtEdF09RHQtNTg7Zm9yKER0PTcyO0R0PD03NTsrK0R0KUJ0W0R0XT1E'@; put 'dC01ODtmb3IoRHQ9Njc7RHQ8PTY4OysrRHQpQnRbRHRdPUR0LTU3O2ZvcihEdD03NjtEdDw9Nzg7KytEdClCdFtEdF09RHQtNTY7Zm9yKER0PTc5O0R0PD04MTsrK0R0KUJ0W0R0XT1EdC0zNDt2YXIgT3Q9W107ZnVuY3Rpb24gS3QobG4sRW4sWm4pe2Zvcih2YXIgTWk9bG48MD8tMToxLGNy'@; put 'PWxuKk1pLExpPTAseHI9MSxPaT0wLFlhPTEsRmk9MCxnYT0wLGtpPU1hdGguZmxvb3IoY3IpO0ZpPEVuJiYoT2k9KGtpPU1hdGguZmxvb3IoY3IpKSp4citMaSxnYT1raSpGaStZYSwhKGNyLWtpPDVlLTgpKTspY3I9MS8oY3Ita2kpLExpPXhyLHhyPU9pLFlhPUZpLEZpPWdhO2lmKGdhPkVu'@; put 'JiYoRmk+RW4/KGdhPVlhLE9pPUxpKTooZ2E9RmksT2k9eHIpKSwhWm4pcmV0dXJuWzAsTWkqT2ksZ2FdO3ZhciBvbz1NYXRoLmZsb29yKE1pKk9pL2dhKTtyZXR1cm5bb28sTWkqT2ktb28qZ2EsZ2FdfWZ1bmN0aW9uIFRuKGxuLEVuLFpuKXtpZihsbj4yOTU4NDY1fHxsbjwwKXJldHVybiBu'@; put 'dWxsO3ZhciBNaT0wfGxuLGNyPU1hdGguZmxvb3IoODY0MDAqKGxuLU1pKSksTGk9MCx4cj1bXSxPaT17RDpNaSxUOmNyLHU6ODY0MDAqKGxuLU1pKS1jcix5OjAsbTowLGQ6MCxIOjAsTTowLFM6MCxxOjB9O2lmKE1hdGguYWJzKE9pLnUpPDFlLTYmJihPaS51PTApLEVuJiZFbi5kYXRlMTkw'@; put 'NCYmKE1pKz0xNDYyKSxPaS51Pi45OTk5JiYoT2kudT0wLDg2NDAwPT0rK2NyJiYoT2kuVD1jcj0wLCsrTWksKytPaS5EKSksNjA9PT1NaSl4cj1abj9bMTMxNywxMCwyOV06WzE5MDAsMiwyOV0sTGk9MztlbHNlIGlmKDA9PT1NaSl4cj1abj9bMTMxNyw4LDI5XTpbMTkwMCwxLDBdLExpPTY7'@; put 'ZWxzZXtNaT42MCYmLS1NaTt2YXIgWWE9bmV3IERhdGUoMTkwMCwwLDEpO1lhLnNldERhdGUoWWEuZ2V0RGF0ZSgpK01pLTEpLHhyPVtZYS5nZXRGdWxsWWVhcigpLFlhLmdldE1vbnRoKCkrMSxZYS5nZXREYXRlKCldLExpPVlhLmdldERheSgpLE1pPDYwJiYoTGk9KExpKzYpJTcpLFpuJiYo'@; put 'TGk9ZnVuY3Rpb24gb3MobG4sRW4pe0VuWzBdLT01ODE7dmFyIFpuPWxuLmdldERheSgpO3JldHVybiBsbjw2MCYmKFpuPShabis2KSU3KSxabn0oWWEseHIpKX1yZXR1cm4gT2kueT14clswXSxPaS5tPXhyWzFdLE9pLmQ9eHJbMl0sT2kuUz1jciU2MCxjcj1NYXRoLmZsb29yKGNyLzYwKSxP'@; put 'aS5NPWNyJTYwLGNyPU1hdGguZmxvb3IoY3IvNjApLE9pLkg9Y3IsT2kucT1MaSxPaX1PdFs1XT1PdFs2M109JyIkIiMsIyMwXyk7XFwoIiQiIywjIzBcXCknLE90WzZdPU90WzY0XT0nIiQiIywjIzBfKTtbUmVkXVxcKCIkIiMsIyMwXFwpJyxPdFs3XT1PdFs2NV09JyIkIiMsIyMwLjAwXyk7'@; put 'XFwoIiQiIywjIzAuMDBcXCknLE90WzhdPU90WzY2XT0nIiQiIywjIzAuMDBfKTtbUmVkXVxcKCIkIiMsIyMwLjAwXFwpJyxPdFs0MV09J18oKiAjLCMjMF8pO18oKiBcXCgjLCMjMFxcKTtfKCogIi0iXyk7XyhAXyknLE90WzQyXT0nXygiJCIqICMsIyMwXyk7XygiJCIqIFxcKCMsIyMwXFwp'@; put 'O18oIiQiKiAiLSJfKTtfKEBfKScsT3RbNDNdPSdfKCogIywjIzAuMDBfKTtfKCogXFwoIywjIzAuMDBcXCk7XygqICItIj8/Xyk7XyhAXyknLE90WzQ0XT0nXygiJCIqICMsIyMwLjAwXyk7XygiJCIqIFxcKCMsIyMwLjAwXFwpO18oIiQiKiAiLSI/P18pO18oQF8pJyxPLnBhcnNlX2RhdGVf'@; put 'Y29kZT1Ubjt2YXIgc3I9bmV3IERhdGUoMTg5OSwxMSwzMSwwLDAsMCksQ249c3IuZ2V0VGltZSgpLHVyPW5ldyBEYXRlKDE5MDAsMiwxLDAsMCwwKTtmdW5jdGlvbiBlcihsbixFbil7dmFyIFpuPWxuLmdldFRpbWUoKTtyZXR1cm4gRW4/Wm4tPTEyNjIzMDRlNTpsbj49dXImJihabis9ODY0'@; put 'ZTUpLChabi0oQ24rNmU0Kihsbi5nZXRUaW1lem9uZU9mZnNldCgpLXNyLmdldFRpbWV6b25lT2Zmc2V0KCkpKSkvODY0ZTV9dmFyIGpuPSIiLHByPXsiZW4tdXMiOnt5OiJ5IixkOiJkIiwiLCI6IiwiLCIuIjoiLiIsZGF0ZToiXy8ifSwiZGUtZGUiOnt5OiJqIixkOiJ0IiwiLCI6Ii4iLCIu'@; put 'IjoiLCIsZGF0ZToiXy4ifSwiaXQtaXQiOnt5OiJ5IixkOiJkIiwiLCI6Ii4iLCIuIjoiLCIsZGF0ZToiXy8ifX0sYnI9cHJbam4udG9Mb3dlckNhc2UoKV18fHByWyJlbi11cyJdLHJyPWV0KGJyKSxTaT0iJCIsUGk9IiIsUmk9IiwiLFJyPSIuIixCbj0iLyI7ZnVuY3Rpb24gSG4obG4pe3N3'@; put 'aXRjaCgoam58fCIiKS50b0xvd2VyQ2FzZSgpKXtjYXNlInpoLXR3IjpsblsyN109IlskLTQwNF1lL20vZCIsbG5bMjhdPSdbJC00MDRdZSJcdTVlNzQibSJcdTY3MDgiZCJcdTY1ZTUiJyxsblsyOV09J1skLTQwNF1lIlx1NWU3NCJtIlx1NjcwOCJkIlx1NjVlNSInLGxuWzMwXT0nbSIvImQi'@; put 'LyJ5eScsbG5bMzFdPSd5eXl5Ilx1NWU3NCJtIlx1NjcwOCJkIlx1NjVlNSInLGxuWzMyXT0naGgiXHU2NjQyIm1tIlx1NTIwNiInLGxuWzMzXT0naGgiXHU2NjQyIm1tIlx1NTIwNiJzcyJcdTc5ZDIiJyxsblszNF09J1x1NGUwYVx1NTM0OC9cdTRlMGJcdTUzNDggaGgiXHU2NjQyIm1tIlx1'@; put 'NTIwNiInLGxuWzM1XT0nXHU0ZTBhXHU1MzQ4L1x1NGUwYlx1NTM0OCBoaCJcdTY2NDIibW0iXHU1MjA2InNzIlx1NzlkMiInLGxuWzM2XT0iWyQtNDA0XWUvbS9kIixsbls1MF09IlskLTQwNF1lL20vZCIsbG5bNTFdPSdbJC00MDRdZSJcdTVlNzQibSJcdTY3MDgiZCJcdTY1ZTUiJyxsbls1'@; put 'Ml09J1x1NGUwYVx1NTM0OC9cdTRlMGJcdTUzNDggaGgiXHU2NjQyIm1tIlx1NTIwNiInLGxuWzUzXT0nXHU0ZTBhXHU1MzQ4L1x1NGUwYlx1NTM0OCBoaCJcdTY2NDIibW0iXHU1MjA2InNzIlx1NzlkMiInLGxuWzU0XT0nWyQtNDA0XWUiXHU1ZTc0Im0iXHU2NzA4ImQiXHU2NWU1IicsbG5b'@; put 'NTVdPSdcdTRlMGFcdTUzNDgvXHU0ZTBiXHU1MzQ4IGhoIlx1NjY0MiJtbSJcdTUyMDYiJyxsbls1Nl09J1x1NGUwYVx1NTM0OC9cdTRlMGJcdTUzNDggaGgiXHU2NjQyIm1tIlx1NTIwNiJzcyJcdTc5ZDIiJyxsbls1N109IlskLTQwNF1lL20vZCIsbG5bNThdPSdbJC00MDRdZSJcdTVlNzQi'@; put 'bSJcdTY3MDgiZCJcdTY1ZTUiJzticmVhaztjYXNlInpoLWNuIjpsblsyN109J3l5eXkiXHU1ZTc0Im0iXHU2NzA4IicsbG5bMjhdPSdtIlx1NjcwOCJkIlx1NjVlNSInLGxuWzI5XT0nbSJcdTY3MDgiZCJcdTY1ZTUiJyxsblszMF09J20iLSJkIi0ieXknLGxuWzMxXT0neXl5eSJcdTVlNzQi'@; put 'bSJcdTY3MDgiZCJcdTY1ZTUiJyxsblszMl09J2giXHU2NWY2Im1tIlx1NTIwNiInLGxuWzMzXT0naCJcdTY1ZjYibW0iXHU1MjA2InNzIlx1NzlkMiInLGxuWzM0XT0nXHU0ZTBhXHU1MzQ4L1x1NGUwYlx1NTM0OCBoIlx1NjVmNiJtbSJcdTUyMDYiJyxsblszNV09J1x1NGUwYVx1NTM0OC9c'@; put 'dTRlMGJcdTUzNDggaCJcdTY1ZjYibW0iXHU1MjA2InNzIlx1NzlkMiInLGxuWzM2XT0neXl5eSJcdTVlNzQibSJcdTY3MDgiJyxsbls1MF09J3l5eXkiXHU1ZTc0Im0iXHU2NzA4IicsbG5bNTFdPSdtIlx1NjcwOCJkIlx1NjVlNSInLGxuWzUyXT0neXl5eSJcdTVlNzQibSJcdTY3MDgiJyxs'@; put 'bls1M109J20iXHU2NzA4ImQiXHU2NWU1IicsbG5bNTRdPSdtIlx1NjcwOCJkIlx1NjVlNSInLGxuWzU1XT0nXHU0ZTBhXHU1MzQ4L1x1NGUwYlx1NTM0OCBoIlx1NjVmNiJtbSJcdTUyMDYiJyxsbls1Nl09J1x1NGUwYVx1NTM0OC9cdTRlMGJcdTUzNDggaCJcdTY1ZjYibW0iXHU1MjA2InNz'@; put 'Ilx1NzlkMiInLGxuWzU3XT0neXl5eSJcdTVlNzQibSJcdTY3MDgiJyxsbls1OF09J20iXHU2NzA4ImQiXHU2NWU1Iic7YnJlYWs7Y2FzZSJqYS1qcCI6bG5bMjddPSdbJC00MTFdZ2UiLiJtIi4iZCcsbG5bMjhdPSdbJC00MTFdZ2dnZSJcdTVlNzQibSJcdTY3MDgiZCJcdTY1ZTUiJyxsblsy'@; put 'OV09J1skLTQxMV1nZ2dlIlx1NWU3NCJtIlx1NjcwOCJkIlx1NjVlNSInLGxuWzMwXT0nbSIvImQiLyJ5eScsbG5bMzFdPSd5eXl5Ilx1NWU3NCJtIlx1NjcwOCJkIlx1NjVlNSInLGxuWzMyXT0naCJcdTY2NDIibW0iXHU1MjA2IicsbG5bMzNdPSdoIlx1NjY0MiJtbSJcdTUyMDYic3MiXHU3'@; put 'OWQyIicsbG5bMzRdPSd5eXl5Ilx1NWU3NCJtIlx1NjcwOCInLGxuWzM1XT0nbSJcdTY3MDgiZCJcdTY1ZTUiJyxsblszNl09J1skLTQxMV1nZSIuIm0iLiJkJyxsbls1MF09J1skLTQxMV1nZSIuIm0iLiJkJyxsbls1MV09J1skLTQxMV1nZ2dlIlx1NWU3NCJtIlx1NjcwOCJkIlx1NjVlNSIn'@; put 'LGxuWzUyXT0neXl5eSJcdTVlNzQibSJcdTY3MDgiJyxsbls1M109J20iXHU2NzA4ImQiXHU2NWU1IicsbG5bNTRdPSdbJC00MTFdZ2dnZSJcdTVlNzQibSJcdTY3MDgiZCJcdTY1ZTUiJyxsbls1NV09J3l5eXkiXHU1ZTc0Im0iXHU2NzA4IicsbG5bNTZdPSdtIlx1NjcwOCJkIlx1NjVlNSIn'@; put 'LGxuWzU3XT0nWyQtNDExXWdlIi4ibSIuImQnLGxuWzU4XT0nWyQtNDExXWdnZ2UiXHU1ZTc0Im0iXHU2NzA4ImQiXHU2NWU1Iic7YnJlYWs7Y2FzZSJrby1rciI6bG5bMjddPSd5eXl5Ilx1NWU3NCIgbW0iXHU2NzA4IiBkZCJcdTY1ZTUiJyxsblsyOF09Im1tLWRkIixsblsyOV09Im1tLWRk'@; put 'IixsblszMF09Im1tLWRkLXl5IixsblszMV09J3l5eXkiXHViMTQ0IiBtbSJcdWM2ZDQiIGRkIlx1Yzc3YyInLGxuWzMyXT0naCJcdWMyZGMiIG1tIlx1YmQ4NCInLGxuWzMzXT0naCJcdWMyZGMiIG1tIlx1YmQ4NCIgc3MiXHVjZDA4IicsbG5bMzRdPSJ5eXl5LW1tLWRkIixsblszNV09Inl5'@; put 'eXktbW0tZGQiLGxuWzM2XT0neXl5eSJcdTVlNzQiIG1tIlx1NjcwOCIgZGQiXHU2NWU1IicsbG5bNTBdPSd5eXl5Ilx1NWU3NCIgbW0iXHU2NzA4IiBkZCJcdTY1ZTUiJyxsbls1MV09Im1tLWRkIixsbls1Ml09Inl5eXktbW0tZGQiLGxuWzUzXT0ieXl5eS1tbS1kZCIsbG5bNTRdPSJtbS1k'@; put 'ZCIsbG5bNTVdPSJ5eXl5LW1tLWRkIixsbls1Nl09Inl5eXktbW0tZGQiLGxuWzU3XT0neXl5eSJcdTVlNzQiIG1tIlx1NjcwOCIgZGQiXHU2NWU1IicsbG5bNThdPSJtbS1kZCI7YnJlYWs7Y2FzZSJ0aC10aCI6bG5bNTldPScidCIwJyxsbls2MF09JyJ0IjAuMDAnLGxuWzYxXT0nInQiIywj'@; put 'IzAnLGxuWzYyXT0nInQiIywjIzAuMDAnLGxuWzY3XT0idDAlIixsbls2OF09InQwLjAwJSIsbG5bNjldPSJ0IyA/Lz8iLGxuWzcwXT0idCMgPz8vPz8iLGxuWzcxXT0nXHUwZTI3Ii8iXHUwZTE0Ii8iXHUwZTFiXHUwZTFiXHUwZTFiXHUwZTFiJyxsbls3Ml09J1x1MGUyNyItIlx1MGUxNFx1'@; put 'MGUxNFx1MGUxNCItIlx1MGUxYlx1MGUxYicsbG5bNzNdPSdcdTBlMjciLSJcdTBlMTRcdTBlMTRcdTBlMTQnLGxuWzc0XT0nXHUwZTE0XHUwZTE0XHUwZTE0Ii0iXHUwZTFiXHUwZTFiJyxsbls3NV09J1x1MGUwYSI6Ilx1MGUxOVx1MGUxOScsbG5bNzZdPSdcdTBlMGEiOiJcdTBlMTlcdTBl'@; put 'MTkiOiJcdTBlMTdcdTBlMTcnLGxuWzc3XT0nXHUwZTI3Ii8iXHUwZTE0Ii8iXHUwZTFiXHUwZTFiXHUwZTFiXHUwZTFiIFx1MGUwYSI6Ilx1MGUxOVx1MGUxOScsbG5bNzhdPSdcdTBlMTlcdTBlMTkiOiJcdTBlMTdcdTBlMTcnLGxuWzc5XT0nW1x1MGUwYV1cdTBlMTlcdTBlMTkiOiJcdTBl'@; put 'MTdcdTBlMTcnLGxuWzgwXT0nXHUwZTE5XHUwZTE5IjoiXHUwZTE3XHUwZTE3LjAnLGxuWzgxXT0iZC9tL2JiIn19Ty5fZ2VuZXJhbF9pbnQ9ZnVuY3Rpb24gV2kobG4pe3JldHVybiBsbi50b1N0cmluZygxMCl9O3ZhciBDaT1mdW5jdGlvbigpe3ZhciBFbj0vKD86XC4wKnwoXC5cZCpbMS05'@; put 'XSkwKykkLztmdW5jdGlvbiBabihGaSl7cmV0dXJuLTE9PUZpLmluZGV4T2YoIi4iKT9GaTpGaS5yZXBsYWNlKEVuLCIkMSIpfXZhciBNaT0vKD86XC4wKnwoXC5cZCpbMS05XSkwKylbRWVdLyxjcj0vKEVbKy1dKShcZCkkLztyZXR1cm4gZnVuY3Rpb24oZ2Epe3ZhciBraT1mdW5jdGlvbiBZ'@; put 'YShGaSl7dmFyIGtpLGdhPU1hdGguZmxvb3IoTWF0aC5sb2coTWF0aC5hYnMoRmkpKSpNYXRoLkxPRzEwRSk7cmV0dXJuIGtpPWdhPj0tNCYmZ2E8PS0xP0ZpLnRvUHJlY2lzaW9uKDEwK2dhKTpNYXRoLmFicyhnYSk8PTk/ZnVuY3Rpb24geHIoRmkpe3ZhciBnYT1GaTwwPzEyOjExLGtpPVpu'@; put 'KEZpLnRvRml4ZWQoMTIpKTtyZXR1cm4ga2kubGVuZ3RoPD1nYXx8KGtpPUZpLnRvUHJlY2lzaW9uKDEwKSkubGVuZ3RoPD1nYT9raTpGaS50b0V4cG9uZW50aWFsKDUpfShGaSk6MTA9PT1nYT9GaS50b0ZpeGVkKDEwKS5zdWJzdHIoMCwxMik6ZnVuY3Rpb24gT2koRmkpe3ZhciBnYT1abihG'@; put 'aS50b0ZpeGVkKDExKSk7cmV0dXJuIGdhLmxlbmd0aD4oRmk8MD8xMjoxMSl8fCIwIj09PWdhfHwiLTAiPT09Z2E/RmkudG9QcmVjaXNpb24oNik6Z2F9KEZpKSxabihmdW5jdGlvbiBMaShGaSl7cmV0dXJuLTE9PUZpLmluZGV4T2YoIkUiKT9GaTpGaS5yZXBsYWNlKE1pLCIkMUUiKS5yZXBs'@; put 'YWNlKGNyLCIkMTAkMiIpfShraS50b1VwcGVyQ2FzZSgpKSl9KGdhKTtyZXR1cm4iLCI9PT1SaSYmIi4iPT09UnI/a2k6a2kucmVwbGFjZSgvWywuXS9nLGZ1bmN0aW9uKG9vKXtyZXR1cm4iLCI9PW9vP1JpOlJyfSl9fSgpO2Z1bmN0aW9uIHdhKGxuLEVuKXtzd2l0Y2godHlwZW9mIGxuKXtj'@; put 'YXNlInN0cmluZyI6cmV0dXJuIGxuO2Nhc2UiYm9vbGVhbiI6cmV0dXJuIGxuPyJUUlVFIjoiRkFMU0UiO2Nhc2UibnVtYmVyIjpyZXR1cm4oMHxsbik9PT1sbj9sbi50b1N0cmluZygxMCk6Q2kobG4pO2Nhc2UidW5kZWZpbmVkIjpyZXR1cm4iIjtjYXNlIm9iamVjdCI6aWYobnVsbD09bG4p'@; put 'cmV0dXJuIiI7aWYobG4gaW5zdGFuY2VvZiBEYXRlKXJldHVybiBndSgxNCxlcihsbixFbiYmRW4uZGF0ZTE5MDQpLEVuKX10aHJvdyBuZXcgRXJyb3IoInVuc3VwcG9ydGVkIHZhbHVlIGluIEdlbmVyYWwgZm9ybWF0OiAiK2xuKX1PLl9nZW5lcmFsX251bT1DaSxPLl9nZW5lcmFsPXdhO3Zh'@; put 'ciBpYT0iXHUwZTUwXHUwZTUxXHUwZTUyXHUwZTUzXHUwZTU0XHUwZTU1XHUwZTU2XHUwZTU3XHUwZTU4XHUwZTU5Ii5zcGxpdCgiIik7ZnVuY3Rpb24gT3MobG4sRW4sWm4sTWkpe3ZhciBZYSxjcj0iIixMaT0wLHhyPTAsT2k9Wm4ueSxGaT0wO3N3aXRjaChsbil7Y2FzZSA5ODpPaT1abi55'@; put 'KzU0MztjYXNlIDEyMTpzd2l0Y2goRW4ubGVuZ3RoKXtjYXNlIDE6Y2FzZSAyOllhPU9pJTEwMCxGaT0yO2JyZWFrO2RlZmF1bHQ6WWE9T2klMWU0LEZpPTR9YnJlYWs7Y2FzZSAxMDk6c3dpdGNoKEVuLmxlbmd0aCl7Y2FzZSAxOmNhc2UgMjpZYT1abi5tLEZpPUVuLmxlbmd0aDticmVhaztj'@; put 'YXNlIDM6cmV0dXJuIFR0W1puLm0tMV1bMV07Y2FzZSA1OnJldHVybiBUdFtabi5tLTFdWzBdO2RlZmF1bHQ6cmV0dXJuIFR0W1puLm0tMV1bMl19YnJlYWs7Y2FzZSAxMDA6c3dpdGNoKEVuLmxlbmd0aCl7Y2FzZSAxOmNhc2UgMjpZYT1abi5kLEZpPUVuLmxlbmd0aDticmVhaztjYXNlIDM6'@; put 'cmV0dXJuIGN0W1puLnFdWzBdO2RlZmF1bHQ6cmV0dXJuIGN0W1puLnFdWzFdfWJyZWFrO2Nhc2UgMTA0OnN3aXRjaChFbi5sZW5ndGgpe2Nhc2UgMTpjYXNlIDI6WWE9MSsoWm4uSCsxMSklMTIsRmk9RW4ubGVuZ3RoO2JyZWFrO2RlZmF1bHQ6dGhyb3ciYmFkIGhvdXIgZm9ybWF0OiAiK0Vu'@; put 'fWJyZWFrO2Nhc2UgNzI6c3dpdGNoKEVuLmxlbmd0aCl7Y2FzZSAxOmNhc2UgMjpZYT1abi5ILEZpPUVuLmxlbmd0aDticmVhaztkZWZhdWx0OnRocm93ImJhZCBob3VyIGZvcm1hdDogIitFbn1icmVhaztjYXNlIDc3OnN3aXRjaChFbi5sZW5ndGgpe2Nhc2UgMTpjYXNlIDI6WWE9Wm4uTSxG'@; put 'aT1Fbi5sZW5ndGg7YnJlYWs7ZGVmYXVsdDp0aHJvdyJiYWQgbWludXRlIGZvcm1hdDogIitFbn1icmVhaztjYXNlIDExNTppZigicyIhPUVuJiYic3MiIT1FbiYmIi4wIiE9RW4mJiIuMDAiIT1FbiYmIi4wMDAiIT1Fbil0aHJvdyJiYWQgc2Vjb25kIGZvcm1hdDogIitFbjtyZXR1cm4gMCE9'@; put 'PVpuLnV8fCJzIiE9RW4mJiJzcyIhPUVuPyh4cj1NaT49Mj8zPT09TWk/MWUzOjEwMDoxPT09TWk/MTA6MSwoTGk9TWF0aC5yb3VuZCh4ciooWm4uUytabi51KSkpPj02MCp4ciYmKExpPTApLCJzIj09PUVuPzA9PT1MaT8iMCI6IiIrTGkveHI6KGNyPWVlKExpLDIrTWkpLCJzcyI9PT1Fbj9j'@; put 'ci5zdWJzdHIoMCwyKToiLiIrY3Iuc3Vic3RyKDIsRW4ubGVuZ3RoLTEpKSk6ZWUoWm4uUyxFbi5sZW5ndGgpO2Nhc2UgOTA6c3dpdGNoKEVuKXtjYXNlIltoXSI6Y2FzZSJbaGhdIjpjYXNlIltcdTBlMGFdIjpjYXNlIltcdTBlMGFcdTBlMGFdIjpZYT0yNCpabi5EK1puLkg7YnJlYWs7Y2Fz'@; put 'ZSJbbV0iOmNhc2UiW21tXSI6Y2FzZSJbXHUwZTE5XSI6Y2FzZSJbXHUwZTE5XHUwZTE5XSI6WWE9NjAqKDI0KlpuLkQrWm4uSCkrWm4uTTticmVhaztjYXNlIltzXSI6Y2FzZSJbc3NdIjpjYXNlIltcdTBlMTddIjpjYXNlIltcdTBlMTdcdTBlMTddIjpZYT02MCooNjAqKDI0KlpuLkQrWm4u'@; put 'SCkrWm4uTSkrTWF0aC5yb3VuZChabi5TK1puLnUpO2JyZWFrO2RlZmF1bHQ6dGhyb3ciYmFkIGFic3RpbWUgZm9ybWF0OiAiK0VufUZpPTM9PT1Fbi5sZW5ndGg/MToyO2JyZWFrO2Nhc2UgMTAxOllhPU9pLEZpPTE7YnJlYWs7Y2FzZSAzNjIzOllhPVpuLmQsRmk9RW4ubGVuZ3RoO2JyZWFr'@; put 'O2Nhc2UgMzYwNDpzd2l0Y2goRW4ubGVuZ3RoKXtjYXNlIDE6Y2FzZSAyOllhPVpuLm0sRmk9RW4ubGVuZ3RoO2JyZWFrO2Nhc2UgMzpyZXR1cm4gVHRbWm4ubS0xXVsxXTtjYXNlIDU6cmV0dXJuIFR0W1puLm0tMV1bMF07ZGVmYXVsdDpyZXR1cm4gVHRbWm4ubS0xXVsyXX1icmVhaztjYXNl'@; put 'IDM2MTE6c3dpdGNoKE9pPVpuLnkrNTQzLEVuLmxlbmd0aCl7Y2FzZSAxOmNhc2UgMjpZYT1PaSUxMDAsRmk9MjticmVhaztkZWZhdWx0OllhPU9pJTFlNCxGaT00fWJyZWFrO2Nhc2UgMzU5NDpZYT1abi5ILEZpPUVuLmxlbmd0aDticmVhaztjYXNlIDM2MDk6WWE9Wm4uTSxGaT1Fbi5sZW5n'@; put 'dGg7YnJlYWs7Y2FzZSAzNjA3OllhPVpuLlMsRmk9RW4ubGVuZ3RoO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbG4udG9TdHJpbmcoMTYpfXZhciBnYT1GaT4wP2VlKFlhLEZpKToiIjtyZXR1cm4oOTA9PWxuP0VuLmNoYXJDb2RlQXQoMSk8MzU4NDpsbjwzNTg0KT9nYTpnYS5yZXBsYWNlKC9bMC05'@; put 'XS9nLGZ1bmN0aW9uKGtpKXtyZXR1cm4gaWFbK2tpXX0pfWZ1bmN0aW9uIFBhKGxuKXtpZihsbi5sZW5ndGg8PTMpcmV0dXJuIGxuO2Zvcih2YXIgWm49bG4ubGVuZ3RoJTMsTWk9bG4uc3Vic3RyKDAsWm4pO1puIT1sbi5sZW5ndGg7Wm4rPTMpTWkrPShNaS5sZW5ndGg+MD8iLCI6IiIpK2xu'@; put 'LnN1YnN0cihabiwzKTtyZXR1cm4gTWl9dmFyIHVzPWZ1bmN0aW9uKCl7dmFyIEVuPS8lL2c7ZnVuY3Rpb24gY3IoX24sVXQpe3ZhciBubixTbj1fbi5pbmRleE9mKCJFIiktX24uaW5kZXhPZigiLiIpLTE7aWYoX24ubWF0Y2goL14jKzAuMEVcKzAkLykpe2lmKDA9PVV0KXJldHVybiIwLjBF'@; put 'KzAiO2lmKFV0PDApcmV0dXJuIi0iK2NyKF9uLC1VdCk7dmFyIFVuPV9uLmluZGV4T2YoIi4iKTstMT09PVVuJiYoVW49X24uaW5kZXhPZigiRSIpKTt2YXIgX3I9TWF0aC5mbG9vcihNYXRoLmxvZyhVdCkqTWF0aC5MT0cxMEUpJVVuO2lmKF9yPDAmJihfcis9VW4pLC0xPT09KG5uPShVdC9N'@; put 'YXRoLnBvdygxMCxfcikpLnRvUHJlY2lzaW9uKFNuKzErKFVuK19yKSVVbikpLmluZGV4T2YoImUiKSl7dmFyIFpyPU1hdGguZmxvb3IoTWF0aC5sb2coVXQpKk1hdGguTE9HMTBFKTtmb3IoLTE9PT1ubi5pbmRleE9mKCIuIik/bm49bm4uY2hhckF0KDApKyIuIitubi5zdWJzdHIoMSkrIkUr'@; put 'IisoWnItbm4ubGVuZ3RoK19yKTpubis9IkUrIisoWnItX3IpOyIwLiI9PT1ubi5zdWJzdHIoMCwyKTspbm49KG5uPW5uLmNoYXJBdCgwKStubi5zdWJzdHIoMixVbikrIi4iK25uLnN1YnN0cigyK1VuKSkucmVwbGFjZSgvXjArKFsxLTldKS8sIiQxIikucmVwbGFjZSgvXjArXC4vLCIwLiIp'@; put 'O25uPW5uLnJlcGxhY2UoL1wrLS8sIi0iKX1ubj1ubi5yZXBsYWNlKC9eKFsrLV0/KShcZCopXC4oXGQqKVtFZV0vLGZ1bmN0aW9uKGlpLHRpLEppLFVpKXtyZXR1cm4gdGkrSmkrVWkuc3Vic3RyKDAsKFVuK19yKSVVbikrIi4iK1VpLnN1YnN0cihfcikrIkUifSl9ZWxzZSBubj1VdC50b0V4'@; put 'cG9uZW50aWFsKFNuKTtyZXR1cm4gX24ubWF0Y2goL0VcKzAwJC8pJiZubi5tYXRjaCgvZVsrLV1cZCQvKSYmKG5uPW5uLnN1YnN0cigwLG5uLmxlbmd0aC0xKSsiMCIrbm4uY2hhckF0KG5uLmxlbmd0aC0xKSksX24ubWF0Y2goL0VcLS8pJiZubi5tYXRjaCgvZVwrLykmJihubj1ubi5yZXBs'@; put 'YWNlKC9lXCsvLCJlIikpLG5uLnJlcGxhY2UoImUiLCJFIil9dmFyIExpPS8jIChcPyspKCA/KVwvKCA/KShcZCspLyxZYT0vXiMqMCpcLihbMCNdKykvLEZpPS9cKS4qWzAjXS8sZ2E9L1woIyMjXCkgIyMjXFw/LSMjIyMvO2Z1bmN0aW9uIGtpKF9uKXtmb3IodmFyIG5uLFV0PSIiLFNuPTA7'@; put 'U24hPV9uLmxlbmd0aDsrK1NuKXN3aXRjaChubj1fbi5jaGFyQ29kZUF0KFNuKSl7Y2FzZSAzNTpicmVhaztjYXNlIDYzOlV0Kz0iICI7YnJlYWs7Y2FzZSA0ODpVdCs9IjAiO2JyZWFrO2RlZmF1bHQ6VXQrPVN0cmluZy5mcm9tQ2hhckNvZGUobm4pfXJldHVybiBVdH1mdW5jdGlvbiBvbyhf'@; put 'bixVdCl7dmFyIG5uPU1hdGgucG93KDEwLFV0KTtyZXR1cm4iIitNYXRoLnJvdW5kKF9uKm5uKS9ubn1mdW5jdGlvbiBHcyhfbixVdCl7aWYoVXQ+MTEpcmV0dXJuIEdzKF9uLDExKSpNYXRoLnBvdygxMCxVdC0xMSk7dmFyIG5uPV9uLU1hdGguZmxvb3IoX24pLFNuPU1hdGgucG93KDEwLFV0'@; put 'KTtyZXR1cm4gVXQ8KCIiK01hdGgucm91bmQobm4qU24pKS5sZW5ndGg/MDpNYXRoLnJvdW5kKG5uKlNuKX1mdW5jdGlvbiBNbChfbixVdCxubil7aWYoNDA9PT1fbi5jaGFyQ29kZUF0KDApJiYhVXQubWF0Y2goRmkpKXt2YXIgU249VXQucmVwbGFjZSgvXCggKi8sIiIpLnJlcGxhY2UoLyBc'@; put 'KS8sIiIpLnJlcGxhY2UoL1wpLywiIik7cmV0dXJuIG5uPj0wP01sKCJuIixTbixubik6IigiK01sKCJuIixTbiwtbm4pKyIpIn1pZig0ND09PVV0LmNoYXJDb2RlQXQoVXQubGVuZ3RoLTEpKXJldHVybiBmdW5jdGlvbiBNaShfbixVdCxubil7Zm9yKHZhciBTbj1VdC5sZW5ndGgtMTs0ND09'@; put 'PVV0LmNoYXJDb2RlQXQoU24tMSk7KS0tU247cmV0dXJuIHVzKF9uLFV0LnN1YnN0cigwLFNuKSxubi9NYXRoLnBvdygxMCwzKihVdC5sZW5ndGgtU24pKSl9KF9uLFV0LG5uKTtpZigtMSE9PVV0LmluZGV4T2YoIiUiKSlyZXR1cm4gZnVuY3Rpb24gWm4oX24sVXQsbm4pe3ZhciBTbj1VdC5y'@; put 'ZXBsYWNlKEVuLCIiKSxVbj1VdC5sZW5ndGgtU24ubGVuZ3RoO3JldHVybiB1cyhfbixTbixubipNYXRoLnBvdygxMCwyKlVuKSkrSygiJSIsVW4pfShfbixVdCxubik7aWYoLTEhPT1VdC5pbmRleE9mKCJFIikpcmV0dXJuIGNyKFV0LG5uKTtpZigzNj09PVV0LmNoYXJDb2RlQXQoMCkpcmV0'@; put 'dXJuIiQiK01sKF9uLFV0LnN1YnN0cigiICI9PVV0LmNoYXJBdCgxKT8yOjEpLG5uKTt2YXIgVW4sX3IsWnIsaWksdGk9TWF0aC5hYnMobm4pLEppPW5uPDA/Ii0iOiIiO2lmKFV0Lm1hdGNoKC9eMDArJC8pKXJldHVybiBKaStWZSh0aSxVdC5sZW5ndGgpO2lmKFV0Lm1hdGNoKC9eWyM/XSsk'@; put 'LykpcmV0dXJuIjAiPT09KFVuPVZlKG5uLDApKSYmKFVuPSIiKSxVbi5sZW5ndGg+VXQubGVuZ3RoP1VuOmtpKFV0LnN1YnN0cigwLFV0Lmxlbmd0aC1Vbi5sZW5ndGgpKStVbjtpZihfcj1VdC5tYXRjaChMaSkpcmV0dXJuIGZ1bmN0aW9uIHhyKF9uLFV0LG5uKXt2YXIgU249cGFyc2VJbnQo'@; put 'X25bNF0sMTApLFVuPU1hdGgucm91bmQoVXQqU24pLF9yPU1hdGguZmxvb3IoVW4vU24pLFpyPVVuLV9yKlNuLGlpPVNuO3JldHVybiBubisoMD09PV9yPyIiOiIiK19yKSsiICIrKDA9PT1acj9LKCIgIixfblsxXS5sZW5ndGgrMStfbls0XS5sZW5ndGgpOm9lKFpyLF9uWzFdLmxlbmd0aCkr'@; put 'X25bMl0rIi8iK19uWzNdK2VlKGlpLF9uWzRdLmxlbmd0aCkpfShfcix0aSxKaSk7aWYoVXQubWF0Y2goL14jKzArJC8pKXJldHVybiBKaStWZSh0aSxVdC5sZW5ndGgtVXQuaW5kZXhPZigiMCIpKTtpZihfcj1VdC5tYXRjaChZYSkpcmV0dXJuIFVuPW9vKG5uLF9yWzFdLmxlbmd0aCkucmVw'@; put 'bGFjZSgvXihbXlwuXSspJC8sIiQxLiIra2koX3JbMV0pKS5yZXBsYWNlKC9cLiQvLCIuIitraShfclsxXSkpLnJlcGxhY2UoL1wuKFxkKikkLyxmdW5jdGlvbihBcyxNbyl7cmV0dXJuIi4iK01vK0soIjAiLGtpKF9yWzFdKS5sZW5ndGgtTW8ubGVuZ3RoKX0pLC0xIT09VXQuaW5kZXhPZigi'@; put 'MC4iKT9VbjpVbi5yZXBsYWNlKC9eMFwuLywiLiIpO2lmKFV0PVV0LnJlcGxhY2UoL14jKyhbMC5dKS8sIiQxIiksX3I9VXQubWF0Y2goL14oMCopXC4oIyopJC8pKXJldHVybiBKaStvbyh0aSxfclsyXS5sZW5ndGgpLnJlcGxhY2UoL1wuKFxkKlsxLTldKTAqJC8sIi4kMSIpLnJlcGxhY2Uo'@; put 'L14oLT9cZCopJC8sIiQxLiIpLnJlcGxhY2UoL14wXC4vLF9yWzFdLmxlbmd0aD8iMC4iOiIuIik7aWYoX3I9VXQubWF0Y2goL14jezEsM30sIyMwKFwuPykkLykpcmV0dXJuIEppK1BhKFZlKHRpLDApKTtpZihfcj1VdC5tYXRjaCgvXiMsIyMwXC4oWyMwXSowKSQvKSlyZXR1cm4gbm48MD8i'@; put 'LSIrTWwoX24sVXQsLW5uKTpQYSgiIisoTWF0aC5mbG9vcihubikrZnVuY3Rpb24gU2woX24sVXQpe3JldHVybiBVdDwoIiIrTWF0aC5yb3VuZCgoX24tTWF0aC5mbG9vcihfbikpKk1hdGgucG93KDEwLFV0KSkpLmxlbmd0aD8xOjB9KG5uLF9yWzFdLmxlbmd0aCkpKSsiLiIrZWUoR3Mobm4s'@; put 'X3JbMV0ubGVuZ3RoKSxfclsxXS5sZW5ndGgpO2lmKF9yPVV0Lm1hdGNoKC9eIywjKiwjMC8pKXJldHVybiBNbChfbixVdC5yZXBsYWNlKC9eIywjKiwvLCIiKSxubik7aWYoX3I9VXQubWF0Y2goL14oWzAjXSspKFxcPy0oWzAjXSspKSskLykpcmV0dXJuIFVuPWsoTWwoX24sVXQucmVwbGFj'@; put 'ZSgvW1xcLV0vZywiIiksbm4pKSxacj0wLGsoayhVdC5yZXBsYWNlKC9cXC9nLCIiKSkucmVwbGFjZSgvWzAjXS9nLGZ1bmN0aW9uKEFzKXtyZXR1cm4gWnI8VW4ubGVuZ3RoP1VuLmNoYXJBdChacisrKToiMCI9PT1Bcz8iMCI6IiJ9KSk7aWYoVXQubWF0Y2goZ2EpKXJldHVybiIoIisoVW49'@; put 'TWwoX24sIiMjIyMjIyMjIyMiLG5uKSkuc3Vic3RyKDAsMykrIikgIitVbi5zdWJzdHIoMywzKSsiLSIrVW4uc3Vic3RyKDYpO3ZhciBVaT0iIjtpZihfcj1VdC5tYXRjaCgvXihbIzA/XSspKCA/KVwvKCA/KShbIzA/XSspLykpcmV0dXJuIFpyPU1hdGgubWluKF9yWzRdLmxlbmd0aCw3KSxp'@; put 'aT1LdCh0aSxNYXRoLnBvdygxMCxaciktMSwhMSksVW49IiIrSmksIiAiPT0oVWk9dXMoIm4iLF9yWzFdLGlpWzFdKSkuY2hhckF0KFVpLmxlbmd0aC0xKSYmKFVpPVVpLnN1YnN0cigwLFVpLmxlbmd0aC0xKSsiMCIpLFVuKz1VaStfclsyXSsiLyIrX3JbM10sKFVpPW1lKGlpWzJdLFpyKSku'@; put 'bGVuZ3RoPF9yWzRdLmxlbmd0aCYmKFVpPWtpKF9yWzRdLnN1YnN0cihfcls0XS5sZW5ndGgtVWkubGVuZ3RoKSkrVWkpLFVuKz1VaTtpZihfcj1VdC5tYXRjaCgvXiMgKFsjMD9dKykoID8pXC8oID8pKFsjMD9dKykvKSlyZXR1cm4gWnI9TWF0aC5taW4oTWF0aC5tYXgoX3JbMV0ubGVuZ3Ro'@; put 'LF9yWzRdLmxlbmd0aCksNyksSmkrKChpaT1LdCh0aSxNYXRoLnBvdygxMCxaciktMSwhMCkpWzBdfHwoaWlbMV0/IiI6IjAiKSkrIiAiKyhpaVsxXT9vZShpaVsxXSxacikrX3JbMl0rIi8iK19yWzNdK21lKGlpWzJdLFpyKTpLKCIgIiwyKlpyKzErX3JbMl0ubGVuZ3RoK19yWzNdLmxlbmd0'@; put 'aCkpO2lmKF9yPVV0Lm1hdGNoKC9eWyMwP10rJC8pKXJldHVybiBVbj1WZShubiwwKSxVdC5sZW5ndGg8PVVuLmxlbmd0aD9VbjpraShVdC5zdWJzdHIoMCxVdC5sZW5ndGgtVW4ubGVuZ3RoKSkrVW47aWYoX3I9VXQubWF0Y2goL14oWyMwP10rKVwuKFsjMF0rKSQvKSl7VW49IiIrbm4udG9G'@; put 'aXhlZChNYXRoLm1pbihfclsyXS5sZW5ndGgsMTApKS5yZXBsYWNlKC8oW14wXSkwKyQvLCIkMSIpLFpyPVVuLmluZGV4T2YoIi4iKTt2YXIgbnM9VXQuaW5kZXhPZigiLiIpLVpyLFVhPVV0Lmxlbmd0aC1Vbi5sZW5ndGgtbnM7cmV0dXJuIGtpKFV0LnN1YnN0cigwLG5zKStVbitVdC5zdWJz'@; put 'dHIoVXQubGVuZ3RoLVVhKSl9aWYoX3I9VXQubWF0Y2goL14wMCwwMDBcLihbIzBdKjApJC8pKXJldHVybiBacj1HcyhubixfclsxXS5sZW5ndGgpLG5uPDA/Ii0iK01sKF9uLFV0LC1ubik6UGEoZnVuY3Rpb24gbXUoX24pe3JldHVybiBfbjwyMTQ3NDgzNjQ3JiZfbj4tMjE0NzQ4MzY0OD8i'@; put 'IisoX24+PTA/MHxfbjpfbi0xfDApOiIiK01hdGguZmxvb3IoX24pfShubikpLnJlcGxhY2UoL15cZCxcZHszfSQvLCIwJCYiKS5yZXBsYWNlKC9eXGQqJC8sZnVuY3Rpb24oQXMpe3JldHVybiIwMCwiKyhBcy5sZW5ndGg8Mz9lZSgwLDMtQXMubGVuZ3RoKToiIikrQXN9KSsiLiIrZWUoWnIs'@; put 'X3JbMV0ubGVuZ3RoKTtzd2l0Y2goVXQpe2Nhc2UiIyMjLCMjMC4wMCI6cmV0dXJuIE1sKF9uLCIjLCMjMC4wMCIsbm4pO2Nhc2UiIyMjLCMjIyI6Y2FzZSIjIywjIyMiOmNhc2UiIywjIyMiOnZhciB5YT1QYShWZSh0aSwwKSk7cmV0dXJuIjAiIT09eWE/SmkreWE6IiI7Y2FzZSIjIyMsIyMj'@; put 'LjAwIjpyZXR1cm4gTWwoX24sIiMjIywjIzAuMDAiLG5uKS5yZXBsYWNlKC9eMFwuLywiLiIpO2Nhc2UiIywjIyMuMDAiOnJldHVybiBNbChfbiwiIywjIzAuMDAiLG5uKS5yZXBsYWNlKC9eMFwuLywiLiIpfXRocm93IG5ldyBFcnJvcigidW5zdXBwb3J0ZWQgZm9ybWF0IHwiK1V0KyJ8Iil9'@; put 'ZnVuY3Rpb24gcG4oX24sVXQpe3ZhciBubixTbj1fbi5pbmRleE9mKCJFIiktX24uaW5kZXhPZigiLiIpLTE7aWYoX24ubWF0Y2goL14jKzAuMEVcKzAkLykpe2lmKDA9PVV0KXJldHVybiIwLjBFKzAiO2lmKFV0PDApcmV0dXJuIi0iK3BuKF9uLC1VdCk7dmFyIFVuPV9uLmluZGV4T2YoIi4i'@; put 'KTstMT09PVVuJiYoVW49X24uaW5kZXhPZigiRSIpKTt2YXIgX3I9TWF0aC5mbG9vcihNYXRoLmxvZyhVdCkqTWF0aC5MT0cxMEUpJVVuO2lmKF9yPDAmJihfcis9VW4pLCEobm49KFV0L01hdGgucG93KDEwLF9yKSkudG9QcmVjaXNpb24oU24rMSsoVW4rX3IpJVVuKSkubWF0Y2goL1tFZV0v'@; put 'KSl7dmFyIFpyPU1hdGguZmxvb3IoTWF0aC5sb2coVXQpKk1hdGguTE9HMTBFKTstMT09PW5uLmluZGV4T2YoIi4iKT9ubj1ubi5jaGFyQXQoMCkrIi4iK25uLnN1YnN0cigxKSsiRSsiKyhaci1ubi5sZW5ndGgrX3IpOm5uKz0iRSsiKyhaci1fciksbm49bm4ucmVwbGFjZSgvXCstLywiLSIp'@; put 'fW5uPW5uLnJlcGxhY2UoL14oWystXT8pKFxkKilcLihcZCopW0VlXS8sZnVuY3Rpb24oaWksdGksSmksVWkpe3JldHVybiB0aStKaStVaS5zdWJzdHIoMCwoVW4rX3IpJVVuKSsiLiIrVWkuc3Vic3RyKF9yKSsiRSJ9KX1lbHNlIG5uPVV0LnRvRXhwb25lbnRpYWwoU24pO3JldHVybiBfbi5t'@; put 'YXRjaCgvRVwrMDAkLykmJm5uLm1hdGNoKC9lWystXVxkJC8pJiYobm49bm4uc3Vic3RyKDAsbm4ubGVuZ3RoLTEpKyIwIitubi5jaGFyQXQobm4ubGVuZ3RoLTEpKSxfbi5tYXRjaCgvRVwtLykmJm5uLm1hdGNoKC9lXCsvKSYmKG5uPW5uLnJlcGxhY2UoL2VcKy8sImUiKSksbm4ucmVwbGFj'@; put 'ZSgiZSIsIkUiKX1mdW5jdGlvbiBEbihfbixVdCxubil7aWYoNDA9PT1fbi5jaGFyQ29kZUF0KDApJiYhVXQubWF0Y2goRmkpKXt2YXIgU249VXQucmVwbGFjZSgvXCggKi8sIiIpLnJlcGxhY2UoLyBcKS8sIiIpLnJlcGxhY2UoL1wpLywiIik7cmV0dXJuIG5uPj0wP0RuKCJuIixTbixubik6'@; put 'IigiK0RuKCJuIixTbiwtbm4pKyIpIn1pZig0ND09PVV0LmNoYXJDb2RlQXQoVXQubGVuZ3RoLTEpKXJldHVybiBmdW5jdGlvbiBqZihfbixVdCxubil7Zm9yKHZhciBTbj1VdC5sZW5ndGgtMTs0ND09PVV0LmNoYXJDb2RlQXQoU24tMSk7KS0tU247cmV0dXJuIHVzKF9uLFV0LnN1YnN0cigw'@; put 'LFNuKSxubi9NYXRoLnBvdygxMCwzKihVdC5sZW5ndGgtU24pKSl9KF9uLFV0LG5uKTtpZigtMSE9PVV0LmluZGV4T2YoIiUiKSlyZXR1cm4gZnVuY3Rpb24gX2QoX24sVXQsbm4pe3ZhciBTbj1VdC5yZXBsYWNlKEVuLCIiKSxVbj1VdC5sZW5ndGgtU24ubGVuZ3RoO3JldHVybiB1cyhfbixT'@; put 'bixubipNYXRoLnBvdygxMCwyKlVuKSkrSygiJSIsVW4pfShfbixVdCxubik7aWYoLTEhPT1VdC5pbmRleE9mKCJFIikpcmV0dXJuIHBuKFV0LG5uKTtpZigzNj09PVV0LmNoYXJDb2RlQXQoMCkpcmV0dXJuIiQiK0RuKF9uLFV0LnN1YnN0cigiICI9PVV0LmNoYXJBdCgxKT8yOjEpLG5uKTt2'@; put 'YXIgVW4sX3IsWnIsaWksdGk9TWF0aC5hYnMobm4pLEppPW5uPDA/Ii0iOiIiO2lmKFV0Lm1hdGNoKC9eMDArJC8pKXJldHVybiBKaStlZSh0aSxVdC5sZW5ndGgpO2lmKFV0Lm1hdGNoKC9eWyM/XSskLykpcmV0dXJuIFVuPSIiK25uLDA9PT1ubiYmKFVuPSIiKSxVbi5sZW5ndGg+VXQubGVu'@; put 'Z3RoP1VuOmtpKFV0LnN1YnN0cigwLFV0Lmxlbmd0aC1Vbi5sZW5ndGgpKStVbjtpZihfcj1VdC5tYXRjaChMaSkpcmV0dXJuIGZ1bmN0aW9uIE9pKF9uLFV0LG5uKXtyZXR1cm4gbm4rKDA9PT1VdD8iIjoiIitVdCkrSygiICIsX25bMV0ubGVuZ3RoKzIrX25bNF0ubGVuZ3RoKX0oX3IsdGks'@; put 'SmkpO2lmKFV0Lm1hdGNoKC9eIyswKyQvKSlyZXR1cm4gSmkrZWUodGksVXQubGVuZ3RoLVV0LmluZGV4T2YoIjAiKSk7aWYoX3I9VXQubWF0Y2goWWEpKXJldHVybiBVbj0oVW49KCIiK25uKS5yZXBsYWNlKC9eKFteXC5dKykkLywiJDEuIitraShfclsxXSkpLnJlcGxhY2UoL1wuJC8sIi4i'@; put 'K2tpKF9yWzFdKSkpLnJlcGxhY2UoL1wuKFxkKikkLyxmdW5jdGlvbihBcyxNbyl7cmV0dXJuIi4iK01vK0soIjAiLGtpKF9yWzFdKS5sZW5ndGgtTW8ubGVuZ3RoKX0pLC0xIT09VXQuaW5kZXhPZigiMC4iKT9VbjpVbi5yZXBsYWNlKC9eMFwuLywiLiIpO2lmKFV0PVV0LnJlcGxhY2UoL14j'@; put 'KyhbMC5dKS8sIiQxIiksX3I9VXQubWF0Y2goL14oMCopXC4oIyopJC8pKXJldHVybiBKaSsoIiIrdGkpLnJlcGxhY2UoL1wuKFxkKlsxLTldKTAqJC8sIi4kMSIpLnJlcGxhY2UoL14oLT9cZCopJC8sIiQxLiIpLnJlcGxhY2UoL14wXC4vLF9yWzFdLmxlbmd0aD8iMC4iOiIuIik7aWYoX3I9'@; put 'VXQubWF0Y2goL14jezEsM30sIyMwKFwuPykkLykpcmV0dXJuIEppK1BhKCIiK3RpKTtpZihfcj1VdC5tYXRjaCgvXiMsIyMwXC4oWyMwXSowKSQvKSlyZXR1cm4gbm48MD8iLSIrRG4oX24sVXQsLW5uKTpQYSgiIitubikrIi4iK0soIjAiLF9yWzFdLmxlbmd0aCk7aWYoX3I9VXQubWF0Y2go'@; put 'L14jLCMqLCMwLykpcmV0dXJuIERuKF9uLFV0LnJlcGxhY2UoL14jLCMqLC8sIiIpLG5uKTtpZihfcj1VdC5tYXRjaCgvXihbMCNdKykoXFw/LShbMCNdKykpKyQvKSlyZXR1cm4gVW49ayhEbihfbixVdC5yZXBsYWNlKC9bXFwtXS9nLCIiKSxubikpLFpyPTAsayhrKFV0LnJlcGxhY2UoL1xc'@; put 'L2csIiIpKS5yZXBsYWNlKC9bMCNdL2csZnVuY3Rpb24oQXMpe3JldHVybiBacjxVbi5sZW5ndGg/VW4uY2hhckF0KFpyKyspOiIwIj09PUFzPyIwIjoiIn0pKTtpZihVdC5tYXRjaChnYSkpcmV0dXJuIigiKyhVbj1EbihfbiwiIyMjIyMjIyMjIyIsbm4pKS5zdWJzdHIoMCwzKSsiKSAiK1Vu'@; put 'LnN1YnN0cigzLDMpKyItIitVbi5zdWJzdHIoNik7dmFyIFVpPSIiO2lmKF9yPVV0Lm1hdGNoKC9eKFsjMD9dKykoID8pXC8oID8pKFsjMD9dKykvKSlyZXR1cm4gWnI9TWF0aC5taW4oX3JbNF0ubGVuZ3RoLDcpLGlpPUt0KHRpLE1hdGgucG93KDEwLFpyKS0xLCExKSxVbj0iIitKaSwiICI9'@; put 'PShVaT11cygibiIsX3JbMV0saWlbMV0pKS5jaGFyQXQoVWkubGVuZ3RoLTEpJiYoVWk9VWkuc3Vic3RyKDAsVWkubGVuZ3RoLTEpKyIwIiksVW4rPVVpK19yWzJdKyIvIitfclszXSwoVWk9bWUoaWlbMl0sWnIpKS5sZW5ndGg8X3JbNF0ubGVuZ3RoJiYoVWk9a2koX3JbNF0uc3Vic3RyKF9y'@; put 'WzRdLmxlbmd0aC1VaS5sZW5ndGgpKStVaSksVW4rPVVpO2lmKF9yPVV0Lm1hdGNoKC9eIyAoWyMwP10rKSggPylcLyggPykoWyMwP10rKS8pKXJldHVybiBacj1NYXRoLm1pbihNYXRoLm1heChfclsxXS5sZW5ndGgsX3JbNF0ubGVuZ3RoKSw3KSxKaSsoKGlpPUt0KHRpLE1hdGgucG93KDEw'@; put 'LFpyKS0xLCEwKSlbMF18fChpaVsxXT8iIjoiMCIpKSsiICIrKGlpWzFdP29lKGlpWzFdLFpyKStfclsyXSsiLyIrX3JbM10rbWUoaWlbMl0sWnIpOksoIiAiLDIqWnIrMStfclsyXS5sZW5ndGgrX3JbM10ubGVuZ3RoKSk7aWYoX3I9VXQubWF0Y2goL15bIzA/XSskLykpcmV0dXJuIFV0Lmxl'@; put 'bmd0aDw9KFVuPSIiK25uKS5sZW5ndGg/VW46a2koVXQuc3Vic3RyKDAsVXQubGVuZ3RoLVVuLmxlbmd0aCkpK1VuO2lmKF9yPVV0Lm1hdGNoKC9eKFsjMF0rKVwuKFsjMF0rKSQvKSl7VW49IiIrbm4udG9GaXhlZChNYXRoLm1pbihfclsyXS5sZW5ndGgsMTApKS5yZXBsYWNlKC8oW14wXSkw'@; put 'KyQvLCIkMSIpLFpyPVVuLmluZGV4T2YoIi4iKTt2YXIgbnM9VXQuaW5kZXhPZigiLiIpLVpyLFVhPVV0Lmxlbmd0aC1Vbi5sZW5ndGgtbnM7cmV0dXJuIGtpKFV0LnN1YnN0cigwLG5zKStVbitVdC5zdWJzdHIoVXQubGVuZ3RoLVVhKSl9aWYoX3I9VXQubWF0Y2goL14wMCwwMDBcLihbIzBd'@; put 'KjApJC8pKXJldHVybiBubjwwPyItIitEbihfbixVdCwtbm4pOlBhKCIiK25uKS5yZXBsYWNlKC9eXGQsXGR7M30kLywiMCQmIikucmVwbGFjZSgvXlxkKiQvLGZ1bmN0aW9uKEFzKXtyZXR1cm4iMDAsIisoQXMubGVuZ3RoPDM/ZWUoMCwzLUFzLmxlbmd0aCk6IiIpK0FzfSkrIi4iK2VlKDAs'@; put 'X3JbMV0ubGVuZ3RoKTt2YXIgeWE9UGEoIiIrdGkpO3N3aXRjaChVdCl7Y2FzZSIjIyMsIyMjIjpjYXNlIiMjLCMjIyI6Y2FzZSIjLCMjIyI6cmV0dXJuIjAiIT09eWE/SmkreWE6IiI7Y2FzZSIjLCMwMCI6cmV0dXJuIjAwIiE9PSh5YT1lZSh5YSwyKSk/SmkreWE6IiI7ZGVmYXVsdDppZihV'@; put 'dC5tYXRjaCgvXC5bMCM/XSokLykpcmV0dXJuIERuKF9uLFV0LnNsaWNlKDAsVXQubGFzdEluZGV4T2YoIi4iKSksbm4pK2tpKFV0LnNsaWNlKFV0Lmxhc3RJbmRleE9mKCIuIikpKX10aHJvdyBuZXcgRXJyb3IoInVuc3VwcG9ydGVkIGZvcm1hdCB8IitVdCsifCIpfXJldHVybiBmdW5jdGlv'@; put 'bihVdCxubixTbil7cmV0dXJuIjAsMCI9PW5uJiYobm49IiMsIzAwIiksKDB8U24pPT09U24/RG4oVXQsbm4sU24pOk1sKFV0LG5uLFNuKX19KCk7ZnVuY3Rpb24gcWEobG4pe2Zvcih2YXIgRW49W10sWm49ITEsTWk9MCxjcj0wO01pPGxuLmxlbmd0aDsrK01pKXN3aXRjaChsbi5jaGFyQ29k'@; put 'ZUF0KE1pKSl7Y2FzZSAzNDpabj0hWm47YnJlYWs7Y2FzZSA5NTpjYXNlIDQyOmNhc2UgOTI6KytNaTticmVhaztjYXNlIDU5OkVuW0VuLmxlbmd0aF09bG4uc3Vic3RyKGNyLE1pLWNyKSxjcj1NaSsxfWlmKEVuW0VuLmxlbmd0aF09bG4uc3Vic3RyKGNyKSwhMD09PVpuKXRocm93IG5ldyBF'@; put 'cnJvcigiRm9ybWF0IHwiK2xuKyJ8IHVudGVybWluYXRlZCBzdHJpbmcgIik7cmV0dXJuIEVufU8uX3NwbGl0PXFhO3ZhciBWaT0vXFtbSGhNbVNzXHUwRTBBXHUwRTE5XHUwRTE3XSpcXS87ZnVuY3Rpb24gSW8obG4pe2Zvcih2YXIgRW49MCxabj0iIixNaT0iIjtFbjxsbi5sZW5ndGg7KXN3'@; put 'aXRjaChabj1sbi5jaGFyQXQoRW4pKXtjYXNlIkciOlllKGxuLEVuKSYmKEVuKz02KSxFbisrO2JyZWFrO2Nhc2UnIic6Zm9yKDszNCE9PWxuLmNoYXJDb2RlQXQoKytFbikmJkVuPGxuLmxlbmd0aDspOysrRW47YnJlYWs7Y2FzZSJcXCI6Y2FzZSJfIjpFbis9MjticmVhaztjYXNlIkAiOisr'@; put 'RW47YnJlYWs7Y2FzZSJCIjpjYXNlImIiOmlmKCIxIj09PWxuLmNoYXJBdChFbisxKXx8IjIiPT09bG4uY2hhckF0KEVuKzEpKXJldHVybiEwO2Nhc2UiTSI6Y2FzZSJEIjpjYXNlIlkiOmNhc2UiSCI6Y2FzZSJTIjpjYXNlIkUiOmNhc2UibSI6Y2FzZSJkIjpjYXNlInkiOmNhc2UiaCI6Y2Fz'@; put 'ZSJzIjpjYXNlImUiOmNhc2UiZyI6cmV0dXJuITA7Y2FzZSJBIjpjYXNlImEiOmNhc2UiXHU0ZTBhIjppZigiQS9QIj09PWxuLnN1YnN0cihFbiwzKS50b1VwcGVyQ2FzZSgpfHwiQU0vUE0iPT09bG4uc3Vic3RyKEVuLDUpLnRvVXBwZXJDYXNlKCl8fCJcdTRlMGFcdTUzNDgvXHU0ZTBiXHU1'@; put 'MzQ4Ij09PWxuLnN1YnN0cihFbiw1KS50b1VwcGVyQ2FzZSgpKXJldHVybiEwOysrRW47YnJlYWs7Y2FzZSJbIjpmb3IoTWk9Wm47Il0iIT09bG4uY2hhckF0KEVuKyspJiZFbjxsbi5sZW5ndGg7KU1pKz1sbi5jaGFyQXQoRW4pO2lmKE1pLm1hdGNoKFZpKSlyZXR1cm4hMDticmVhaztjYXNl'@; put 'Ii4iOmNhc2UiMCI6Y2FzZSIjIjpmb3IoO0VuPGxuLmxlbmd0aCYmKCIwIz8uLEUrLSUiLmluZGV4T2YoWm49bG4uY2hhckF0KCsrRW4pKT4tMXx8IlxcIj09Wm4mJiItIj09bG4uY2hhckF0KEVuKzEpJiYiMCMiLmluZGV4T2YobG4uY2hhckF0KEVuKzIpKT4tMSk7KTticmVhaztjYXNlIj8i'@; put 'OmZvcig7bG4uY2hhckF0KCsrRW4pPT09Wm47KTticmVhaztjYXNlIioiOisrRW4sKCIgIj09bG4uY2hhckF0KEVuKXx8IioiPT1sbi5jaGFyQXQoRW4pKSYmKytFbjticmVhaztjYXNlIigiOmNhc2UiKSI6KytFbjticmVhaztjYXNlIjEiOmNhc2UiMiI6Y2FzZSIzIjpjYXNlIjQiOmNhc2Ui'@; put 'NSI6Y2FzZSI2IjpjYXNlIjciOmNhc2UiOCI6Y2FzZSI5Ijpmb3IoO0VuPGxuLmxlbmd0aCYmIjAxMjM0NTY3ODkiLmluZGV4T2YobG4uY2hhckF0KCsrRW4pKT4tMTspO2JyZWFrO2RlZmF1bHQ6KytFbn1yZXR1cm4hMX1mdW5jdGlvbiBGbihsbixFbixabixNaSl7Zm9yKHZhciBGaSxnYSxr'@; put 'aSxjcj1bXSxMaT0iIix4cj0wLE9pPSIiLFlhPSJ0Iixvbz0iSCI7eHI8bG4ubGVuZ3RoOylzd2l0Y2goT2k9bG4uY2hhckF0KHhyKSl7Y2FzZSJHIjppZighWWUobG4seHIpKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkIGNoYXJhY3RlciAiK09pKyIgaW4gIitsbik7Y3JbY3IubGVu'@; put 'Z3RoXT17dDoiRyIsdjoiR2VuZXJhbCJ9LHhyKz03O2JyZWFrO2Nhc2UnIic6Zm9yKExpPSIiOzM0IT09KGtpPWxuLmNoYXJDb2RlQXQoKyt4cikpJiZ4cjxsbi5sZW5ndGg7KUxpKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGtpKTtjcltjci5sZW5ndGhdPXt0OiJ0Iix2OkxpfSwrK3hyO2JyZWFr'@; put 'O2Nhc2UiXFwiOnZhciBHcz1sbi5jaGFyQXQoKyt4cik7Y3JbY3IubGVuZ3RoXT17dDoiKCI9PT1Hc3x8IikiPT09R3M/R3M6InQiLHY6R3N9LCsreHI7YnJlYWs7Y2FzZSJfIjpjcltjci5sZW5ndGhdPXt0OiJ0Iix2OiIgIn0seHIrPTI7YnJlYWs7Y2FzZSJAIjpjcltjci5sZW5ndGhdPXt0'@; put 'OiJUIix2OkVufSwrK3hyO2JyZWFrO2Nhc2UiQiI6Y2FzZSJiIjppZigiMSI9PT1sbi5jaGFyQXQoeHIrMSl8fCIyIj09PWxuLmNoYXJBdCh4cisxKSl7aWYobnVsbD09RmkmJm51bGw9PShGaT1UbihFbixabiwiMiI9PT1sbi5jaGFyQXQoeHIrMSkpKSlyZXR1cm4iIjtjcltjci5sZW5ndGhd'@; put 'PXt0OiJYIix2OmxuLnN1YnN0cih4ciwyKX0sWWE9T2kseHIrPTI7YnJlYWt9Y2FzZSJNIjpjYXNlIkQiOmNhc2UiWSI6Y2FzZSJIIjpjYXNlIlMiOmNhc2UiRSI6T2k9T2kudG9Mb3dlckNhc2UoKTtjYXNlIm0iOmNhc2UiZCI6Y2FzZSJ5IjpjYXNlImgiOmNhc2UicyI6Y2FzZSJlIjpjYXNl'@; put 'ImciOmNhc2UiXHUwZTI3IjpjYXNlIlx1MGUxNCI6Y2FzZSJcdTBlMWIiOmNhc2UiXHUwZTBhIjpjYXNlIlx1MGUxOSI6Y2FzZSJcdTBlMTciOmlmKEVuPDB8fG51bGw9PUZpJiZudWxsPT0oRmk9VG4oRW4sWm4pKSlyZXR1cm4iIjtmb3IoTGk9T2k7Kyt4cjxsbi5sZW5ndGgmJmxuLmNoYXJB'@; put 'dCh4cikudG9Mb3dlckNhc2UoKT09PU9pOylMaSs9T2k7Im0iPT09T2kmJiJoIj09PVlhLnRvTG93ZXJDYXNlKCkmJihPaT0iTSIpLCJoIj09PU9pJiYoT2k9b28pLGNyW2NyLmxlbmd0aF09e3Q6T2ksdjpMaX0sWWE9T2k7YnJlYWs7Y2FzZSJBIjpjYXNlImEiOmNhc2UiXHU0ZTBhIjp2YXIg'@; put 'bXU9e3Q6T2ksdjpPaX07aWYobnVsbD09RmkmJihGaT1UbihFbixabikpLCJBL1AiPT09bG4uc3Vic3RyKHhyLDMpLnRvVXBwZXJDYXNlKCk/KG51bGwhPUZpJiYobXUudj1GaS5IPj0xMj8iUCI6IkEiKSxtdS50PSJUIixvbz0iaCIseHIrPTMpOiJBTS9QTSI9PT1sbi5zdWJzdHIoeHIsNSku'@; put 'dG9VcHBlckNhc2UoKT8obnVsbCE9RmkmJihtdS52PUZpLkg+PTEyPyJQTSI6IkFNIiksbXUudD0iVCIseHIrPTUsb289ImgiKToiXHU0ZTBhXHU1MzQ4L1x1NGUwYlx1NTM0OCI9PT1sbi5zdWJzdHIoeHIsNSkudG9VcHBlckNhc2UoKT8obnVsbCE9RmkmJihtdS52PUZpLkg+PTEyPyJcdTRl'@; put 'MGJcdTUzNDgiOiJcdTRlMGFcdTUzNDgiKSxtdS50PSJUIix4cis9NSxvbz0iaCIpOihtdS50PSJ0IiwrK3hyKSxudWxsPT1GaSYmIlQiPT09bXUudClyZXR1cm4iIjtjcltjci5sZW5ndGhdPW11LFlhPU9pO2JyZWFrO2Nhc2UiWyI6Zm9yKExpPU9pOyJdIiE9PWxuLmNoYXJBdCh4cisrKSYm'@; put 'eHI8bG4ubGVuZ3RoOylMaSs9bG4uY2hhckF0KHhyKTtpZigiXSIhPT1MaS5zbGljZSgtMSkpdGhyb3cndW50ZXJtaW5hdGVkICJbIiBibG9jazogfCcrTGkrInwiO2lmKExpLm1hdGNoKFZpKSl7aWYobnVsbD09RmkmJm51bGw9PShGaT1UbihFbixabikpKXJldHVybiIiO2NyW2NyLmxlbmd0'@; put 'aF09e3Q6IloiLHY6TGkudG9Mb3dlckNhc2UoKX0sWWE9TGkuY2hhckF0KDEpfWVsc2UgTGkuaW5kZXhPZigiJCIpPi0xJiYoTGk9KExpLm1hdGNoKC9cJChbXi1cW1xdXSopLyl8fFtdKVsxXXx8IiQiLElvKGxuKXx8KGNyW2NyLmxlbmd0aF09e3Q6InQiLHY6TGl9KSk7YnJlYWs7Y2FzZSIu'@; put 'IjppZihudWxsIT1GaSl7Zm9yKExpPU9pOysreHI8bG4ubGVuZ3RoJiYiMCI9PT0oT2k9bG4uY2hhckF0KHhyKSk7KUxpKz1PaTtjcltjci5sZW5ndGhdPXt0OiJzIix2OkxpfTticmVha31jYXNlIjAiOmNhc2UiIyI6Zm9yKExpPU9pOysreHI8bG4ubGVuZ3RoJiYiMCM/LixFKy0lIi5pbmRl'@; put 'eE9mKE9pPWxuLmNoYXJBdCh4cikpPi0xOylMaSs9T2k7Y3JbY3IubGVuZ3RoXT17dDoibiIsdjpMaX07YnJlYWs7Y2FzZSI/Ijpmb3IoTGk9T2k7bG4uY2hhckF0KCsreHIpPT09T2k7KUxpKz1PaTtjcltjci5sZW5ndGhdPXt0Ok9pLHY6TGl9LFlhPU9pO2JyZWFrO2Nhc2UiKiI6Kyt4ciwo'@; put 'IiAiPT1sbi5jaGFyQXQoeHIpfHwiKiI9PWxuLmNoYXJBdCh4cikpJiYrK3hyO2JyZWFrO2Nhc2UiKCI6Y2FzZSIpIjpjcltjci5sZW5ndGhdPXt0OjE9PT1NaT8idCI6T2ksdjpPaX0sKyt4cjticmVhaztjYXNlIjEiOmNhc2UiMiI6Y2FzZSIzIjpjYXNlIjQiOmNhc2UiNSI6Y2FzZSI2Ijpj'@; put 'YXNlIjciOmNhc2UiOCI6Y2FzZSI5Ijpmb3IoTGk9T2k7eHI8bG4ubGVuZ3RoJiYiMDEyMzQ1Njc4OSIuaW5kZXhPZihsbi5jaGFyQXQoKyt4cikpPi0xOylMaSs9bG4uY2hhckF0KHhyKTtjcltjci5sZW5ndGhdPXt0OiJEIix2OkxpfTticmVhaztjYXNlIiAiOmNyW2NyLmxlbmd0aF09e3Q6'@; put 'T2ksdjpPaX0sKyt4cjticmVhaztjYXNlIiQiOmNyW2NyLmxlbmd0aF09e3Q6InQiLHY6U2l9LCsreHI7YnJlYWs7Y2FzZSIvIjpjcltjci5sZW5ndGhdPWNyLmxlbmd0aD4wJiZJbyhjcltjci5sZW5ndGgtMV0udik/e3Q6InQiLHY6Qm59Ont0OiJ0Iix2OiIvIn0sKyt4cjticmVhaztkZWZh'@; put 'dWx0OmlmKC0xPT09IiwkLSsvKCk6IV4mJ357fTw+PVx1MjBhY2FjZmlqa2xvcHFydHV2d3h6UCIuaW5kZXhPZihPaSkpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgY2hhcmFjdGVyICIrT2krIiBpbiAiK2xuKTtjcltjci5sZW5ndGhdPXt0OiJ0Iix2Ok9pfSwrK3hyfXZhciBfZCxN'@; put 'bD0wLGpmPTA7Zm9yKHhyPWNyLmxlbmd0aC0xLFlhPSJ0Ijt4cj49MDstLXhyKXN3aXRjaChjclt4cl0udCl7Y2FzZSJoIjpjYXNlIkgiOmNyW3hyXS50PW9vLFlhPSJoIixNbDwxJiYoTWw9MSk7YnJlYWs7Y2FzZSJzIjooX2Q9Y3JbeHJdLnYubWF0Y2goL1wuMCskLykpJiYoamY9TWF0aC5t'@; put 'YXgoamYsX2RbMF0ubGVuZ3RoLTEpKSxNbDwzJiYoTWw9Myk7Y2FzZSJkIjpjYXNlInkiOmNhc2UiTSI6Y2FzZSJlIjpZYT1jclt4cl0udDticmVhaztjYXNlIm0iOiJzIj09PVlhJiYoY3JbeHJdLnQ9Ik0iLE1sPDImJihNbD0yKSk7YnJlYWs7Y2FzZSJYIjpicmVhaztjYXNlIloiOk1sPDEm'@; put 'JmNyW3hyXS52Lm1hdGNoKC9bSGhdLykmJihNbD0xKSxNbDwyJiZjclt4cl0udi5tYXRjaCgvW01tXS8pJiYoTWw9MiksTWw8MyYmY3JbeHJdLnYubWF0Y2goL1tTc10vKSYmKE1sPTMpfXN3aXRjaChNbCl7Y2FzZSAwOmJyZWFrO2Nhc2UgMTpGaS51Pj0uNSYmKEZpLnU9MCwrK0ZpLlMpLEZp'@; put 'LlM+PTYwJiYoRmkuUz0wLCsrRmkuTSksRmkuTT49NjAmJihGaS5NPTAsKytGaS5IKTticmVhaztjYXNlIDI6RmkudT49LjUmJihGaS51PTAsKytGaS5TKSxGaS5TPj02MCYmKEZpLlM9MCwrK0ZpLk0pfXZhciBEbixwbj0iIjtmb3IoeHI9MDt4cjxjci5sZW5ndGg7Kyt4cilzd2l0Y2goY3Jb'@; put 'eHJdLnQpe2Nhc2UidCI6Y2FzZSJUIjpjYXNlIiAiOmNhc2UiRCI6YnJlYWs7Y2FzZSJYIjpjclt4cl0udj0iIixjclt4cl0udD0iOyI7YnJlYWs7Y2FzZSJkIjpjYXNlIm0iOmNhc2UieSI6Y2FzZSJoIjpjYXNlIkgiOmNhc2UiTSI6Y2FzZSJzIjpjYXNlImUiOmNhc2UiYiI6Y2FzZSJaIjpj'@; put 'YXNlIlx1MGUyNyI6Y2FzZSJcdTBlMTQiOmNhc2UiXHUwZTFiIjpjYXNlIlx1MGUwYSI6Y2FzZSJcdTBlMTkiOmNhc2UiXHUwZTE3Ijpjclt4cl0udj1Pcyhjclt4cl0udC5jaGFyQ29kZUF0KDApLGNyW3hyXS52LEZpLGpmKSxjclt4cl0udD0idCI7YnJlYWs7Y2FzZSJuIjpjYXNlIj8iOmZv'@; put 'cihEbj14cisxO251bGwhPWNyW0RuXSYmKCI/Ij09PShPaT1jcltEbl0udCl8fCJEIj09PU9pfHwoIiAiPT09T2l8fCJ0Ij09PU9pKSYmbnVsbCE9Y3JbRG4rMV0mJigiPyI9PT1jcltEbisxXS50fHwidCI9PT1jcltEbisxXS50JiYiLyI9PT1jcltEbisxXS52KXx8IigiPT09Y3JbeHJdLnQm'@; put 'JigiICI9PT1PaXx8Im4iPT09T2l8fCIpIj09PU9pKXx8InQiPT09T2kmJigiLyI9PT1jcltEbl0udnx8IiAiPT09Y3JbRG5dLnYmJm51bGwhPWNyW0RuKzFdJiYiPyI9PWNyW0RuKzFdLnQpKTspY3JbeHJdLnYrPWNyW0RuXS52LGNyW0RuXT17djoiIix0OiI7In0sKytEbjtwbis9Y3JbeHJd'@; put 'LnYseHI9RG4tMTticmVhaztjYXNlIkciOmNyW3hyXS50PSJ0Iixjclt4cl0udj13YShFbixabil9dmFyIFV0LG5uLF9uPSIiO2lmKHBuLmxlbmd0aD4wKXs0MD09cG4uY2hhckNvZGVBdCgwKT8oVXQ9RW48MCYmNDU9PT1wbi5jaGFyQ29kZUF0KDApPy1FbjpFbixubj11cygibiIscG4sVXQp'@; put 'KToobm49dXMoIm4iLHBuLFV0PUVuPDAmJk1pPjE/LUVuOkVuKSxVdDwwJiZjclswXSYmInQiPT1jclswXS50JiYobm49bm4uc3Vic3RyKDEpLGNyWzBdLnY9Ii0iK2NyWzBdLnYpKSxEbj0obm49bm4ucmVwbGFjZSgvWyxcLl0vZyxmdW5jdGlvbihacil7cmV0dXJuIi4iPT1acj9ScjpSaX0p'@; put 'KS5sZW5ndGgtMTt2YXIgU249Y3IubGVuZ3RoO2Zvcih4cj0wO3hyPGNyLmxlbmd0aDsrK3hyKWlmKG51bGwhPWNyW3hyXSYmInQiIT1jclt4cl0udCYmY3JbeHJdLnYuaW5kZXhPZigiLiIpPi0xKXtTbj14cjticmVha312YXIgVW49Y3IubGVuZ3RoO2lmKFNuPT09Y3IubGVuZ3RoJiYtMT09'@; put 'PW5uLmluZGV4T2YoIkUiKSl7Zm9yKHhyPWNyLmxlbmd0aC0xO3hyPj0wOy0teHIpbnVsbD09Y3JbeHJdfHwtMT09PSJuPyIuaW5kZXhPZihjclt4cl0udCl8fChEbj49Y3JbeHJdLnYubGVuZ3RoLTE/Y3JbeHJdLnY9bm4uc3Vic3RyKDErKERuLT1jclt4cl0udi5sZW5ndGgpLGNyW3hyXS52'@; put 'Lmxlbmd0aCk6RG48MD9jclt4cl0udj0iIjooY3JbeHJdLnY9bm4uc3Vic3RyKDAsRG4rMSksRG49LTEpLGNyW3hyXS50PSJ0IixVbj14cik7RG4+PTAmJlVuPGNyLmxlbmd0aCYmKGNyW1VuXS52PW5uLnN1YnN0cigwLERuKzEpK2NyW1VuXS52KX1lbHNlIGlmKFNuIT09Y3IubGVuZ3RoJiYt'@; put 'MT09PW5uLmluZGV4T2YoIkUiKSl7Zm9yKERuPW5uLmluZGV4T2YoUnIpLTEseHI9U247eHI+PTA7LS14cilpZihudWxsIT1jclt4cl0mJi0xIT09Im4/Ii5pbmRleE9mKGNyW3hyXS50KSl7Zm9yKGdhPWNyW3hyXS52LmluZGV4T2YoIi4iKT4tMSYmeHI9PT1Tbj9jclt4cl0udi5pbmRleE9m'@; put 'KCIuIiktMTpjclt4cl0udi5sZW5ndGgtMSxfbj1jclt4cl0udi5zdWJzdHIoZ2ErMSk7Z2E+PTA7LS1nYSlEbj49MCYmKCIwIj09PWNyW3hyXS52LmNoYXJBdChnYSl8fCIjIj09PWNyW3hyXS52LmNoYXJBdChnYSkpJiYoX249bm4uY2hhckF0KERuLS0pK19uKTtjclt4cl0udj1fbixjclt4'@; put 'cl0udD0idCIsVW49eHJ9Zm9yKERuPj0wJiZVbjxjci5sZW5ndGgmJihjcltVbl0udj1ubi5zdWJzdHIoMCxEbisxKStjcltVbl0udiksRG49bm4uaW5kZXhPZihScikrMSx4cj1Tbjt4cjxjci5sZW5ndGg7Kyt4cilpZihudWxsIT1jclt4cl0mJigtMSE9PSJuPygiLmluZGV4T2YoY3JbeHJd'@; put 'LnQpfHx4cj09PVNuKSl7Zm9yKGdhPWNyW3hyXS52LmluZGV4T2YoUnIpPi0xJiZ4cj09PVNuP2NyW3hyXS52LmluZGV4T2YoUnIpKzE6MCxfbj1jclt4cl0udi5zdWJzdHIoMCxnYSk7Z2E8Y3JbeHJdLnYubGVuZ3RoOysrZ2EpRG48bm4ubGVuZ3RoJiYoX24rPW5uLmNoYXJBdChEbisrKSk7'@; put 'Y3JbeHJdLnY9X24sY3JbeHJdLnQ9InQiLFVuPXhyfX19Zm9yKHhyPTA7eHI8Y3IubGVuZ3RoOysreHIpbnVsbCE9Y3JbeHJdJiYibj8iLmluZGV4T2YoY3JbeHJdLnQpPi0xJiYoY3JbeHJdLnY9dXMoY3JbeHJdLnQsY3JbeHJdLnYsVXQ9TWk+MSYmRW48MCYmeHI+MCYmIi0iPT09Y3JbeHIt'@; put 'MV0udj8tRW46RW4pLnJlcGxhY2UoL1wuL2csUnIpLnJlcGxhY2UoLywvLFJpKSxjclt4cl0udD0idCIpO3ZhciBfcj0iIjtmb3IoeHI9MDt4ciE9PWNyLmxlbmd0aDsrK3hyKW51bGwhPWNyW3hyXSYmKF9yKz1jclt4cl0udik7cmV0dXJuIF9yfU8uaXNfZGF0ZT1JbyxPLl9ldmFsPUZuO3Zh'@; put 'ciBocj0vXFtbPTw+XS8sSmw9L1xbKD18Pls9XT98PFs+PV0/KSgtP1xkKyg/OlwuXGQqKT8pXF0vO2Z1bmN0aW9uIFVsKGxuLEVuKXtpZihudWxsPT1FbilyZXR1cm4hMTt2YXIgWm49cGFyc2VGbG9hdChFblsyXSk7c3dpdGNoKEVuWzFdKXtjYXNlIj0iOmlmKGxuPT1abilyZXR1cm4hMDti'@; put 'cmVhaztjYXNlIj4iOmlmKGxuPlpuKXJldHVybiEwO2JyZWFrO2Nhc2UiPCI6aWYobG48Wm4pcmV0dXJuITA7YnJlYWs7Y2FzZSI8PiI6aWYobG4hPVpuKXJldHVybiEwO2JyZWFrO2Nhc2UiPj0iOmlmKGxuPj1abilyZXR1cm4hMDticmVhaztjYXNlIjw9IjppZihsbjw9Wm4pcmV0dXJuITB9'@; put 'cmV0dXJuITF9ZnVuY3Rpb24gZ3UobG4sRW4sWm4pe251bGw9PVpuJiYoWm49e30pO3ZhciBNaT0iIjtzd2l0Y2godHlwZW9mIGxuKXtjYXNlInN0cmluZyI6TWk9Im0vZC95eSI9PWxuJiZabi5kYXRlTkY/Wm4uZGF0ZU5GOmxuO2JyZWFrO2Nhc2UibnVtYmVyIjpudWxsPT0oTWk9MTQ9PWxu'@; put 'JiZabi5kYXRlTkY/Wm4uZGF0ZU5GOihudWxsIT1abi50YWJsZT9abi50YWJsZTpidClbbG5dKSYmKE1pPVpuLnRhYmxlJiZabi50YWJsZVtCdFtsbl1dfHxidFtCdFtsbl1dKSxudWxsPT1NaSYmKE1pPU90W2xuXXx8IkdlbmVyYWwiKX1pZihZZShNaSwwKSlyZXR1cm4gd2EoRW4sWm4pO0Vu'@; put 'IGluc3RhbmNlb2YgRGF0ZSYmKEVuPWVyKEVuLFpuLmRhdGUxOTA0KSk7dmFyIGNyPWZ1bmN0aW9uIFpsKGxuLEVuKXt2YXIgWm49cWEobG4pLE1pPVpuLmxlbmd0aCxjcj1abltNaS0xXS5pbmRleE9mKCJAIik7aWYoTWk8NCYmY3I+LTEmJi0tTWksWm4ubGVuZ3RoPjQpdGhyb3cgbmV3IEVy'@; put 'cm9yKCJjYW5ub3QgZmluZCByaWdodCBmb3JtYXQgZm9yIHwiK1puLmpvaW4oInwiKSsifCIpO2lmKCJudW1iZXIiIT10eXBlb2YgRW4pcmV0dXJuWzQsND09PVpuLmxlbmd0aHx8Y3I+LTE/Wm5bWm4ubGVuZ3RoLTFdOiJAIl07c3dpdGNoKFpuLmxlbmd0aCl7Y2FzZSAxOlpuPWNyPi0xP1si'@; put 'R2VuZXJhbCIsIkdlbmVyYWwiLCJHZW5lcmFsIixablswXV06W1puWzBdLFpuWzBdLFpuWzBdLCJAIl07YnJlYWs7Y2FzZSAyOlpuPWNyPi0xP1tablswXSxablswXSxablswXSxablsxXV06W1puWzBdLFpuWzFdLFpuWzBdLCJAIl07YnJlYWs7Y2FzZSAzOlpuPWNyPi0xP1tablswXSxablsx'@; put 'XSxablswXSxablsyXV06W1puWzBdLFpuWzFdLFpuWzJdLCJAIl19dmFyIExpPUVuPjA/Wm5bMF06RW48MD9ablsxXTpablsyXTtpZigtMT09PVpuWzBdLmluZGV4T2YoIlsiKSYmLTE9PT1ablsxXS5pbmRleE9mKCJbIikpcmV0dXJuW01pLExpXTtpZihudWxsIT1ablswXS5tYXRjaChocil8'@; put 'fG51bGwhPVpuWzFdLm1hdGNoKGhyKSl7dmFyIHhyPVpuWzBdLm1hdGNoKEpsKSxPaT1ablsxXS5tYXRjaChKbCk7cmV0dXJuIFVsKEVuLHhyKT9bTWksWm5bMF1dOlVsKEVuLE9pKT9bTWksWm5bMV1dOltNaSxabltudWxsIT14ciYmbnVsbCE9T2k/MjoxXV19cmV0dXJuW01pLExpXX0oTWks'@; put 'RW4pO2lmKFllKGNyWzFdKSlyZXR1cm4gd2EoRW4sWm4pO2lmKCEwPT09RW4pRW49IlRSVUUiO2Vsc2UgaWYoITE9PT1FbilFbj0iRkFMU0UiO2Vsc2UgaWYoIiI9PT1Fbnx8bnVsbD09RW4pcmV0dXJuIiI7cmV0dXJuIEZuKGNyWzFdLEVuLFpuLGNyWzBdKX1mdW5jdGlvbiBDbChsbixFbil7'@; put 'aWYoIm51bWJlciIhPXR5cGVvZiBFbil7RW49K0VufHwtMTtmb3IodmFyIFpuPTA7Wm48MzkyOysrWm4paWYobnVsbCE9YnRbWm5dKXtpZihidFtabl09PWxuKXtFbj1abjticmVha319ZWxzZSBFbjwwJiYoRW49Wm4pO0VuPDAmJihFbj0zOTEpfXJldHVybiBidFtFbl09bG4sRW59Ty5sb2Fk'@; put 'PUNsLE8uX3RhYmxlPWJ0LE8uZ2V0X3RhYmxlPWZ1bmN0aW9uKCl7cmV0dXJuIGJ0fSxPLmxvYWRfdGFibGU9ZnVuY3Rpb24oRW4pe2Zvcih2YXIgWm49MDszOTIhPVpuOysrWm4pdm9pZCAwIT09RW5bWm5dJiZDbChFbltabl0sWm4pfSxPLmluaXRfdGFibGU9aXQsTy5mb3JtYXQ9Z3UsTy5n'@; put 'ZXRsb2NhbGU9ZnVuY3Rpb24ganIoKXtyZXR1cm4gam58fCJlbi1VUyJ9LE8uc2V0bG9jYWxlPWZ1bmN0aW9uIHdyKGxuKXtpZihmdW5jdGlvbiB6cihsbil7dmFyIEVuPTA7c3dpdGNoKChqbnx8IiIpLnRvTG93ZXJDYXNlKCkpe2Nhc2UiemgtdHciOmNhc2UiemgtY24iOmNhc2UiamEtanAi'@; put 'OmNhc2Uia28ta3IiOmZvcihFbj0yNztFbjw9MzY7KytFbilkZWxldGUgbG5bRW5dO2ZvcihFbj01MDtFbjw9NTg7KytFbilkZWxldGUgbG5bRW5dO2JyZWFrO2Nhc2UidGgtdGgiOmZvcihFbj01OTtFbjw9NjI7KytFbilkZWxldGUgbG5bRW5dO2ZvcihFbj02NztFbjw9ODE7KytFbilkZWxl'@; put 'dGUgbG5bRW5dfX0oYnQpLGpuPWxuLEhuKGJ0KSx0eXBlb2YgSW50bDwidSIpe3ZhciBFbj1JbnRsLkRhdGVUaW1lRm9ybWF0KGxuKTtpZihFbi5mb3JtYXRUb1BhcnRzKXtmb3IodmFyIFpuPUVuLmZvcm1hdFRvUGFydHMobmV3IERhdGUoMjAyMCwwLDUsMCwwLDApKSxNaT0wO01pPDc7KytN'@; put 'aSljdFtNaV1bMV09SW50bC5EYXRlVGltZUZvcm1hdChsbix7d2Vla2RheToibG9uZyJ9KS5mb3JtYXRUb1BhcnRzKG5ldyBEYXRlKDIwMjAsMCw1K01pLDAsMCwwKSlbMF0udmFsdWUsY3RbTWldWzBdPUludGwuRGF0ZVRpbWVGb3JtYXQobG4se3dlZWtkYXk6InNob3J0In0pLmZvcm1hdFRv'@; put 'UGFydHMobmV3IERhdGUoMjAyMCwwLDUrTWksMCwwLDApKVswXS52YWx1ZTtmb3IodmFyIGNyPTA7Y3I8MTI7KytjcilUdFtjcl1bMl09SW50bC5EYXRlVGltZUZvcm1hdChsbix7bW9udGg6ImxvbmcifSkuZm9ybWF0VG9QYXJ0cyhuZXcgRGF0ZSgyMDIwLGNyLDIsMCwwLDApKVswXS52YWx1'@; put 'ZSxUdFtjcl1bMV09SW50bC5EYXRlVGltZUZvcm1hdChsbix7bW9udGg6InNob3J0In0pLmZvcm1hdFRvUGFydHMobmV3IERhdGUoMjAyMCxjciwyLDAsMCwwKSlbMF0udmFsdWUsVHRbY3JdWzBdPVR0W2NyXVsxXS5zbGljZSgwLDEpO2Zvcih2YXIgTGk9IiIseHI9MDt4cjxabi5sZW5ndGg7'@; put 'Kyt4cil7dmFyIE9pPVpuW3hyXS52YWx1ZTtzd2l0Y2goWm5beHJdLnR5cGUpe2Nhc2UieWVhciI6TGkrPTI9PU9pLmxlbmd0aD8ieXkiOiJ5eXl5IjticmVhaztjYXNlIm1vbnRoIjpMaSs9IjEiPT1PaT8ibSI6IjAxIj09T2k/Im1tIjpPaT09VHRbMF1bMV0/Im1tbSI6T2k9PVR0WzBdWzJd'@; put 'PyJtbW1tIjpPaT09VHRbMF1bMF0/Im1tbW1tIjoibW0iO2JyZWFrO2Nhc2UiZGF5IjpMaSs9IjUiPT1PaT8iZCI6IjA1Ij09T2k/ImRkIjpPaT09Y3RbMF1bMF0/ImRkZCI6T2k9PWN0WzBdWzFdPyJkZGRkIjoiZGQiO2JyZWFrO2Nhc2UibGl0ZXJhbCI6TGkrPU9pLnJlcGxhY2UoLy4vZywi'@; put 'XFwkJiIpLDE9PU9pLmxlbmd0aCYmKEJuPU9pKX19KGxuLm1hdGNoKC9lbi9pKSYmbG4ubWF0Y2goL3VzL2kpfHwhbG4pJiYoTGk9Im0vZC95eSIpLGJ0WzE0XT1MaX1lbHNlImphLWpwIj09bG4udG9Mb3dlckNhc2UoKSYmKGJ0WzE0XT0ieXl5eVxcL21cXC9kIik7dmFyIFlhPUludGwuTnVt'@; put 'YmVyRm9ybWF0KGxuLHt9KS5mb3JtYXQoMTIzNDU2Ny44OSk7WWEmJihSaT0oWWEubWF0Y2goLzEoLiopMi8pfHxbXSlbMV0sUnI9KFlhLm1hdGNoKC83KC4qKTgvKXx8W10pWzFdKX1wcltsbi50b0xvd2VyQ2FzZSgpXXx8KHByW2xuLnRvTG93ZXJDYXNlKCldPXsiLiI6UnIsIiwiOlJpfSks'@; put 'cnI9ZXQoYnI9cHJbbG4udG9Mb3dlckNhc2UoKV18fHByWyJlbi11cyJdKX0sTy5ub3JtYWxpemU9ZnVuY3Rpb24gWXMobG4pe2Zvcih2YXIgRW49MCxabj0wLE1pPSIiLGNyPSIiLExpPSIiLHhyPWJyLnl8fCJ5IixPaT14ci50b1VwcGVyQ2FzZSgpLFlhPWJyLmR8fCJkIixGaT1ZYS50b1Vw'@; put 'cGVyQ2FzZSgpLGdhPWJyWyIuIl0sa2k9YnJbIiwiXSxvbz0iMCM/RSstJSIrYnJbIiwiXStnYTtFbjxsbi5sZW5ndGg7KXN3aXRjaChNaT1sbi5jaGFyQXQoRW4pKXtjYXNlIkciOkVuKyssTGkrPU1pO2JyZWFrO2Nhc2UnIic6Zm9yKExpKz1NaTszNCE9PShabj1sbi5jaGFyQ29kZUF0KCsr'@; put 'RW4pKSYmRW48bG4ubGVuZ3RoOylMaSs9U3RyaW5nLmZyb21DaGFyQ29kZShabik7TGkrPSciJywrK0VuO2JyZWFrO2Nhc2UiXFwiOmNhc2UiXyI6TGkrPWxuLnNsaWNlKEVuLEVuKzIpLEVuKz0yO2JyZWFrO2Nhc2UiQCI6TGkrPU1pLCsrRW47YnJlYWs7Y2FzZSJCIjpjYXNlImIiOisrRW4s'@; put 'TGkrPU1pO2JyZWFrO2Nhc2UgeHI6Y2FzZSBPaTpjYXNlIFlhOmNhc2UgRmk6TGkrPXJyW01pLnRvTG93ZXJDYXNlKCldLCsrRW47YnJlYWs7Y2FzZSJNIjpjYXNlIkgiOmNhc2UiUyI6Y2FzZSJFIjpjYXNlIm0iOmNhc2UiaCI6Y2FzZSJzIjpjYXNlImUiOmNhc2UiZyI6Y2FzZSJBIjpjYXNl'@; put 'ImEiOkxpKz1NaSwrK0VuO2JyZWFrO2Nhc2UiWyI6Zm9yKGNyPU1pOyJdIiE9PWxuLmNoYXJBdChFbisrKSYmRW48bG4ubGVuZ3RoOyljcis9bG4uY2hhckF0KEVuKTtMaSs9Y3I7YnJlYWs7Y2FzZSBraTpMaSs9JyInK01pKyciJywrK0VuO2JyZWFrO2Nhc2UgZ2E6aWYoIShFbjxsbi5sZW5n'@; put 'dGgmJihvby5pbmRleE9mKE1pPWxuLmNoYXJBdCgrK0VuKSk+LTF8fCJcXCI9PU1pJiYiLSI9PWxuLmNoYXJBdChFbisxKSYmIjAjIi5pbmRleE9mKGxuLmNoYXJBdChFbisyKSk+LTEpKSl7TGkrPSciJytnYSsnIic7YnJlYWt9TWk9Z2EsLS1FbjtjYXNlIjAiOmNhc2UiIyI6Zm9yKExpKz1y'@; put 'cltNaS50b0xvd2VyQ2FzZSgpXXx8TWk7RW48bG4ubGVuZ3RoJiYob28uaW5kZXhPZihNaT1sbi5jaGFyQXQoKytFbikpPi0xfHwiXFwiPT1NaSYmIi0iPT1sbi5jaGFyQXQoRW4rMSkmJiIwIyIuaW5kZXhPZihsbi5jaGFyQXQoRW4rMikpPi0xKTspTGkrPXJyW01pLnRvTG93ZXJDYXNlKCld'@; put 'fHxNaTticmVhaztjYXNlIj8iOmZvcihMaSs9TWk7bG4uY2hhckF0KCsrRW4pPT09TWk7KUxpKz1NaTticmVhaztjYXNlIioiOkxpKz1NaSwrK0VuLCgiICI9PWxuLmNoYXJBdChFbil8fCIqIj09bG4uY2hhckF0KEVuKSkmJihMaSs9bG4uY2hhckF0KEVuKSwrK0VuKTticmVhaztjYXNlIigi'@; put 'OmNhc2UiKSI6TGkrPU1pLCsrRW47YnJlYWs7Y2FzZSIxIjpjYXNlIjIiOmNhc2UiMyI6Y2FzZSI0IjpjYXNlIjUiOmNhc2UiNiI6Y2FzZSI3IjpjYXNlIjgiOmNhc2UiOSI6Zm9yKExpKz1NaTtFbjxsbi5sZW5ndGgmJiIwMTIzNDU2Nzg5Ii5pbmRleE9mKGxuLmNoYXJBdCgrK0VuKSk+LTE7'@; put 'KUxpKz1sbi5jaGFyQXQoRW4pO2JyZWFrO2RlZmF1bHQ6TGkrPU1pLCsrRW59cmV0dXJuIExpfSxPLmdldGN1cnJlbmN5PWZ1bmN0aW9uIG5hKCl7cmV0dXJuIFBpfHwiVVNEIn0sTy5zZXRjdXJyZW5jeT1mdW5jdGlvbiBsYShsbil7UGk9bG4sU2k9dHlwZW9mIEludGw8InUiP0ludGwuTnVt'@; put 'YmVyRm9ybWF0KGpuLHtzdHlsZToiY3VycmVuY3kiLGN1cnJlbmN5RGlzcGxheToic3ltYm9sIixjdXJyZW5jeTpsbn0pLmZvcm1hdCgwKS5yZXBsYWNlKC9bMFwuXCxcc10vZywiIik6IiQifX07YWUoQSk7dmFyIHhlLG5lPXsiR2VuZXJhbCBOdW1iZXIiOiJHZW5lcmFsIiwiR2VuZXJhbCBE'@; put 'YXRlIjpBLl90YWJsZVsyMl0sIkxvbmcgRGF0ZSI6ImRkZGQsIG1tbW0gZGQsIHl5eXkiLCJNZWRpdW0gRGF0ZSI6QS5fdGFibGVbMTVdLCJTaG9ydCBEYXRlIjpBLl90YWJsZVsxNF0sIkxvbmcgVGltZSI6QS5fdGFibGVbMTldLCJNZWRpdW0gVGltZSI6QS5fdGFibGVbMThdLCJTaG9ydCBU'@; put 'aW1lIjpBLl90YWJsZVsyMF0sQ3VycmVuY3k6JyIkIiMsIyMwLjAwXyk7W1JlZF1cXCgiJCIjLCMjMC4wMFxcKScsRml4ZWQ6QS5fdGFibGVbMl0sU3RhbmRhcmQ6QS5fdGFibGVbNF0sUGVyY2VudDpBLl90YWJsZVsxMF0sU2NpZW50aWZpYzpBLl90YWJsZVsxMV0sIlllcy9ObyI6JyJZZXMi'@; put 'OyJZZXMiOyJObyI7QCcsIlRydWUvRmFsc2UiOiciVHJ1ZSI7IlRydWUiOyJGYWxzZSI7QCcsIk9uL09mZiI6JyJZZXMiOyJZZXMiOyJObyI7QCd9LGxlPXs1OiciJCIjLCMjMF8pO1xcKCIkIiMsIyMwXFwpJyw2OiciJCIjLCMjMF8pO1tSZWRdXFwoIiQiIywjIzBcXCknLDc6JyIkIiMsIyMw'@; put 'LjAwXyk7XFwoIiQiIywjIzAuMDBcXCknLDg6JyIkIiMsIyMwLjAwXyk7W1JlZF1cXCgiJCIjLCMjMC4wMFxcKScsMjM6IkdlbmVyYWwiLDI0OiJHZW5lcmFsIiwyNToiR2VuZXJhbCIsMjY6IkdlbmVyYWwiLDI3OiJtL2QveXkiLDI4OiJtL2QveXkiLDI5OiJtL2QveXkiLDMwOiJtL2QveXki'@; put 'LDMxOiJtL2QveXkiLDMyOiJoOm1tOnNzIiwzMzoiaDptbTpzcyIsMzQ6Img6bW06c3MiLDM1OiJoOm1tOnNzIiwzNjoibS9kL3l5Iiw0MTonXygqICMsIyMwXyk7XygqICgjLCMjMCk7XygqICItIl8pO18oQF8pJyw0MjonXygiJCIqICMsIyMwXyk7XygiJCIqICgjLCMjMCk7XygiJCIqICIt'@; put 'Il8pO18oQF8pJyw0MzonXygqICMsIyMwLjAwXyk7XygqICgjLCMjMC4wMCk7XygqICItIj8/Xyk7XyhAXyknLDQ0OidfKCIkIiogIywjIzAuMDBfKTtfKCIkIiogKCMsIyMwLjAwKTtfKCIkIiogIi0iPz9fKTtfKEBfKScsNTA6Im0vZC95eSIsNTE6Im0vZC95eSIsNTI6Im0vZC95eSIsNTM6'@; put 'Im0vZC95eSIsNTQ6Im0vZC95eSIsNTU6Im0vZC95eSIsNTY6Im0vZC95eSIsNTc6Im0vZC95eSIsNTg6Im0vZC95eSIsNTk6IjAiLDYwOiIwLjAwIiw2MToiIywjIzAiLDYyOiIjLCMjMC4wMCIsNjM6JyIkIiMsIyMwXyk7XFwoIiQiIywjIzBcXCknLDY0OiciJCIjLCMjMF8pO1tSZWRdXFwo'@; put 'IiQiIywjIzBcXCknLDY1OiciJCIjLCMjMC4wMF8pO1xcKCIkIiMsIyMwLjAwXFwpJyw2NjonIiQiIywjIzAuMDBfKTtbUmVkXVxcKCIkIiMsIyMwLjAwXFwpJyw2NzoiMCUiLDY4OiIwLjAwJSIsNjk6IiMgPy8/Iiw3MDoiIyA/Py8/PyIsNzE6Im0vZC95eSIsNzI6Im0vZC95eSIsNzM6ImQt'@; put 'bW1tLXl5Iiw3NDoiZC1tbW0iLDc1OiJtbW0teXkiLDc2OiJoOm1tIiw3NzoiaDptbTpzcyIsNzg6Im0vZC95eSBoOm1tIiw3OToibW06c3MiLDgwOiJbaF06bW06c3MiLDgxOiJtbXNzLjAifSx3ZT0vW2REXSt8W21NXSt8W3lZZUVdK3xbSGhdK3xbU3NdKy9nOyFmdW5jdGlvbihTKXtTLnZl'@; put 'cnNpb249IjEuMi4wIjt2YXIgaz1mdW5jdGlvbiBPKCl7Zm9yKHZhciBwZT0wLGJlPW5ldyBBcnJheSgyNTYpLFBlPTA7MjU2IT1QZTsrK1BlKWJlW1BlXT1wZT0xJihwZT0xJihwZT0xJihwZT0xJihwZT0xJihwZT0xJihwZT0xJihwZT0xJihwZT1QZSk/LTMwNjY3NDkxMl5wZT4+PjE6cGU+'@; put 'Pj4xKT8tMzA2Njc0OTEyXnBlPj4+MTpwZT4+PjEpPy0zMDY2NzQ5MTJecGU+Pj4xOnBlPj4+MSk/LTMwNjY3NDkxMl5wZT4+PjE6cGU+Pj4xKT8tMzA2Njc0OTEyXnBlPj4+MTpwZT4+PjEpPy0zMDY2NzQ5MTJecGU+Pj4xOnBlPj4+MSk/LTMwNjY3NDkxMl5wZT4+PjE6cGU+Pj4xKT8tMzA2'@; put 'Njc0OTEyXnBlPj4+MTpwZT4+PjE7cmV0dXJuIHR5cGVvZiBJbnQzMkFycmF5PCJ1Ij9uZXcgSW50MzJBcnJheShiZSk6YmV9KCk7Uy50YWJsZT1rLFMuYnN0cj1mdW5jdGlvbiBLKHBlLGJlKXtmb3IodmFyIFBlPX5iZSxWZT1wZS5sZW5ndGgtMSxZZT0wO1llPFZlOylQZT0oUGU9UGU+Pj44'@; put 'XmtbMjU1JihQZV5wZS5jaGFyQ29kZUF0KFllKyspKV0pPj4+OF5rWzI1NSYoUGVecGUuY2hhckNvZGVBdChZZSsrKSldO3JldHVybiBZZT09PVZlJiYoUGU9UGU+Pj44XmtbMjU1JihQZV5wZS5jaGFyQ29kZUF0KFllKSldKSx+UGV9LFMuYnVmPWZ1bmN0aW9uIGVlKHBlLGJlKXtpZihwZS5s'@; put 'ZW5ndGg+MWU0KXJldHVybiBmdW5jdGlvbiBvZShwZSxiZSl7Zm9yKHZhciBQZT1+YmUsVmU9cGUubGVuZ3RoLTcsWWU9MDtZZTxWZTspUGU9KFBlPShQZT0oUGU9KFBlPShQZT0oUGU9KFBlPVBlPj4+OF5rWzI1NSYoUGVecGVbWWUrK10pXSk+Pj44XmtbMjU1JihQZV5wZVtZZSsrXSldKT4+'@; put 'Pjhea1syNTUmKFBlXnBlW1llKytdKV0pPj4+OF5rWzI1NSYoUGVecGVbWWUrK10pXSk+Pj44XmtbMjU1JihQZV5wZVtZZSsrXSldKT4+Pjhea1syNTUmKFBlXnBlW1llKytdKV0pPj4+OF5rWzI1NSYoUGVecGVbWWUrK10pXSk+Pj44XmtbMjU1JihQZV5wZVtZZSsrXSldO2Zvcig7WWU8VmUr'@; put 'NzspUGU9UGU+Pj44XmtbMjU1JihQZV5wZVtZZSsrXSldO3JldHVybn5QZX0ocGUsYmUpO2Zvcih2YXIgUGU9fmJlLFZlPXBlLmxlbmd0aC0zLFllPTA7WWU8VmU7KVBlPShQZT0oUGU9KFBlPVBlPj4+OF5rWzI1NSYoUGVecGVbWWUrK10pXSk+Pj44XmtbMjU1JihQZV5wZVtZZSsrXSldKT4+'@; put 'Pjhea1syNTUmKFBlXnBlW1llKytdKV0pPj4+OF5rWzI1NSYoUGVecGVbWWUrK10pXTtmb3IoO1llPFZlKzM7KVBlPVBlPj4+OF5rWzI1NSYoUGVecGVbWWUrK10pXTtyZXR1cm5+UGV9LFMuc3RyPWZ1bmN0aW9uIG1lKHBlLGJlKXtmb3IodmFyIGV0LGN0LFBlPX5iZSxWZT0wLFllPXBlLmxl'@; put 'bmd0aDtWZTxZZTspKGV0PXBlLmNoYXJDb2RlQXQoVmUrKykpPDEyOD9QZT1QZT4+Pjhea1syNTUmKFBlXmV0KV06ZXQ8MjA0OD9QZT0oUGU9UGU+Pj44XmtbMjU1JihQZV4oMTkyfGV0Pj42JjMxKSldKT4+Pjhea1syNTUmKFBlXigxMjh8NjMmZXQpKV06ZXQ+PTU1Mjk2JiZldDw1NzM0ND8o'@; put 'ZXQ9NjQrKDEwMjMmZXQpLGN0PTEwMjMmcGUuY2hhckNvZGVBdChWZSsrKSxQZT0oUGU9KFBlPShQZT1QZT4+Pjhea1syNTUmKFBlXigyNDB8ZXQ+PjgmNykpXSk+Pj44XmtbMjU1JihQZV4oMTI4fGV0Pj4yJjYzKSldKT4+Pjhea1syNTUmKFBlXigxMjh8Y3Q+PjYmMTV8KDMmZXQpPDw0KSld'@; put 'KT4+Pjhea1syNTUmKFBlXigxMjh8NjMmY3QpKV0pOlBlPShQZT0oUGU9UGU+Pj44XmtbMjU1JihQZV4oMjI0fGV0Pj4xMiYxNSkpXSk+Pj44XmtbMjU1JihQZV4oMTI4fGV0Pj42JjYzKSldKT4+Pjhea1syNTUmKFBlXigxMjh8NjMmZXQpKV07cmV0dXJuflBlfX0oeGU9e30pO3ZhciBxZSx2'@; put 'ZT1mdW5jdGlvbigpe3ZhciBiZSxPPXt9O2Z1bmN0aW9uIEsocG4pe2lmKCIvIj09cG4uY2hhckF0KHBuLmxlbmd0aC0xKSlyZXR1cm4tMT09PXBuLnNsaWNlKDAsLTEpLmluZGV4T2YoIi8iKT9wbjpLKHBuLnNsaWNlKDAsLTEpKTt2YXIgRG49cG4ubGFzdEluZGV4T2YoIi8iKTtyZXR1cm4t'@; put 'MT09PURuP3BuOnBuLnNsaWNlKDAsRG4rMSl9ZnVuY3Rpb24gZWUocG4pe2lmKCIvIj09cG4uY2hhckF0KHBuLmxlbmd0aC0xKSlyZXR1cm4gZWUocG4uc2xpY2UoMCwtMSkpO3ZhciBEbj1wbi5sYXN0SW5kZXhPZigiLyIpO3JldHVybi0xPT09RG4/cG46cG4uc2xpY2UoRG4rMSl9ZnVuY3Rp'@; put 'b24gb2UocG4sRG4peyJzdHJpbmciPT10eXBlb2YgRG4mJihEbj1uZXcgRGF0ZShEbikpO3ZhciBfbj1Ebi5nZXRIb3VycygpO19uPShfbj1fbjw8NnxEbi5nZXRNaW51dGVzKCkpPDw1fERuLmdldFNlY29uZHMoKT4+PjEscG4ud3JpdGVfc2hpZnQoMixfbik7dmFyIFV0PURuLmdldEZ1bGxZ'@; put 'ZWFyKCktMTk4MDtVdD0oVXQ9VXQ8PDR8RG4uZ2V0TW9udGgoKSsxKTw8NXxEbi5nZXREYXRlKCkscG4ud3JpdGVfc2hpZnQoMixVdCl9ZnVuY3Rpb24gcGUocG4pe2duKHBuLDApO2Zvcih2YXIgRG49e30sX249MDtwbi5sPD1wbi5sZW5ndGgtNDspe3ZhciBVdD1wbi5yZWFkX3NoaWZ0KDIp'@; put 'LG5uPXBuLnJlYWRfc2hpZnQoMiksU249cG4ubCtubixVbj17fTsyMTU4OT09PVV0JiYoMSYoX249cG4ucmVhZF9zaGlmdCgxKSkmJihVbi5tdGltZT1wbi5yZWFkX3NoaWZ0KDQpKSxubj41JiYoMiZfbiYmKFVuLmF0aW1lPXBuLnJlYWRfc2hpZnQoNCkpLDQmX24mJihVbi5jdGltZT1wbi5y'@; put 'ZWFkX3NoaWZ0KDQpKSksVW4ubXRpbWUmJihVbi5tdD1uZXcgRGF0ZSgxZTMqVW4ubXRpbWUpKSkscG4ubD1TbixEbltVdF09VW59cmV0dXJuIERufWZ1bmN0aW9uIFBlKCl7cmV0dXJuIGJlfHwoYmU9Yig4MzMzNykpfWZ1bmN0aW9uIFZlKHBuLERuKXtpZig4MD09cG5bMF0mJjc1PT1wblsx'@; put 'XSlyZXR1cm4ga2kocG4sRG4pO2lmKHBuLmxlbmd0aDw1MTIpdGhyb3cgbmV3IEVycm9yKCJDRkIgZmlsZSBzaXplICIrcG4ubGVuZ3RoKyIgPCA1MTIiKTt2YXIgX24sbm4sU24sVW4sX3IsWnIsVXQ9NTEyLGlpPVtdLHRpPXBuLnNsaWNlKDAsNTEyKTtnbih0aSwwKTt2YXIgSmk9ZnVuY3Rp'@; put 'b24gWWUocG4pe2lmKDgwPT1wbltwbi5sXSYmNzU9PXBuW3BuLmwrMV0pcmV0dXJuWzAsMF07cG4uY2hrKFNpLCJIZWFkZXIgU2lnbmF0dXJlOiAiKSxwbi5sKz0xNjt2YXIgRG49cG4ucmVhZF9zaGlmdCgyLCJ1Iik7cmV0dXJuW3BuLnJlYWRfc2hpZnQoMiwidSIpLERuXX0odGkpO3N3aXRj'@; put 'aChfbj1KaVswXSl7Y2FzZSAzOlV0PTUxMjticmVhaztjYXNlIDQ6VXQ9NDA5NjticmVhaztjYXNlIDA6aWYoMD09SmlbMV0pcmV0dXJuIGtpKHBuLERuKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiTWFqb3IgVmVyc2lvbjogRXhwZWN0ZWQgMyBvciA0IHNhdyAiK19uKX01MTIhPT1VdCYm'@; put 'Z24odGk9cG4uc2xpY2UoMCxVdCksMjgpO3ZhciBVaT1wbi5zbGljZSgwLFV0KTshZnVuY3Rpb24gZXQocG4sRG4pe3ZhciBfbjtzd2l0Y2gocG4ubCs9Mixfbj1wbi5yZWFkX3NoaWZ0KDIpKXtjYXNlIDk6aWYoMyE9RG4pdGhyb3cgbmV3IEVycm9yKCJTZWN0b3IgU2hpZnQ6IEV4cGVjdGVk'@; put 'IDkgc2F3ICIrX24pO2JyZWFrO2Nhc2UgMTI6aWYoNCE9RG4pdGhyb3cgbmV3IEVycm9yKCJTZWN0b3IgU2hpZnQ6IEV4cGVjdGVkIDEyIHNhdyAiK19uKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiU2VjdG9yIFNoaWZ0OiBFeHBlY3RlZCA5IG9yIDEyIHNhdyAiK19uKX1wbi5j'@; put 'aGsoIjA2MDAiLCJNaW5pIFNlY3RvciBTaGlmdDogIikscG4uY2hrKCIwMDAwMDAwMDAwMDAiLCJSZXNlcnZlZDogIil9KHRpLF9uKTt2YXIgbnM9dGkucmVhZF9zaGlmdCg0LCJpIik7aWYoMz09PV9uJiYwIT09bnMpdGhyb3cgbmV3IEVycm9yKCIjIERpcmVjdG9yeSBTZWN0b3JzOiBFeHBl'@; put 'Y3RlZCAwIHNhdyAiK25zKTt0aS5sKz00LFVuPXRpLnJlYWRfc2hpZnQoNCwiaSIpLHRpLmwrPTQsdGkuY2hrKCIwMDEwMDAwMCIsIk1pbmkgU3RyZWFtIEN1dG9mZiBTaXplOiAiKSxfcj10aS5yZWFkX3NoaWZ0KDQsImkiKSxubj10aS5yZWFkX3NoaWZ0KDQsImkiKSxacj10aS5yZWFkX3No'@; put 'aWZ0KDQsImkiKSxTbj10aS5yZWFkX3NoaWZ0KDQsImkiKTtmb3IodmFyIFVhPS0xLHlhPTA7eWE8MTA5JiYhKChVYT10aS5yZWFkX3NoaWZ0KDQsImkiKSk8MCk7Kyt5YSlpaVt5YV09VWE7dmFyIEFzPWZ1bmN0aW9uIGN0KHBuLERuKXtmb3IodmFyIF9uPU1hdGguY2VpbChwbi5sZW5ndGgv'@; put 'RG4pLTEsVXQ9W10sbm49MTtubjxfbjsrK25uKVV0W25uLTFdPXBuLnNsaWNlKG5uKkRuLChubisxKSpEbik7cmV0dXJuIFV0W19uLTFdPXBuLnNsaWNlKF9uKkRuKSxVdH0ocG4sVXQpO2J0KFpyLFNuLEFzLFV0LGlpKTt2YXIgTW89ZnVuY3Rpb24gRHQocG4sRG4sX24sVXQpe3ZhciBubj1w'@; put 'bi5sZW5ndGgsU249W10sVW49W10sX3I9W10sWnI9W10saWk9VXQtMSx0aT0wLEppPTAsVWk9MCxucz0wO2Zvcih0aT0wO3RpPG5uOysrdGkpaWYoX3I9W10sKFVpPXRpK0RuKT49bm4mJihVaS09bm4pLCFVbltVaV0pe1pyPVtdO3ZhciBVYT1bXTtmb3IoSmk9VWk7Smk+PTA7KXtVYVtKaV09'@; put 'ITAsVW5bSmldPSEwLF9yW19yLmxlbmd0aF09SmksWnIucHVzaChwbltKaV0pO3ZhciB5YT1fbltNYXRoLmZsb29yKDQqSmkvVXQpXTtpZihVdDw0Kyhucz00KkppJmlpKSl0aHJvdyBuZXcgRXJyb3IoIkZBVCBib3VuZGFyeSBjcm9zc2VkOiAiK0ppKyIgNCAiK1V0KTtpZighcG5beWFdfHxV'@; put 'YVtKaT1Obyhwblt5YV0sbnMpXSlicmVha31TbltVaV09e25vZGVzOl9yLGRhdGE6bTAoW1pyXSl9fXJldHVybiBTbn0oQXMsVW4saWksVXQpO01vW1VuXS5uYW1lPSIhRGlyZWN0b3J5Iixubj4wJiZfciE9PXJyJiYoTW9bX3JdLm5hbWU9IiFNaW5pRkFUIiksTW9baWlbMF1dLm5hbWU9IiFG'@; put 'QVQiLE1vLmZhdF9hZGRycz1paSxNby5zc3o9VXQ7dmFyIG8wPVtdLHIxPVtdLEI4PVtdOyhmdW5jdGlvbiBPdChwbixEbixfbixVdCxubixTbixVbixfcil7Zm9yKHZhciBucyxacj0wLGlpPVV0Lmxlbmd0aD8yOjAsdGk9RG5bcG5dLmRhdGEsSmk9MCxVaT0wO0ppPHRpLmxlbmd0aDtKaSs9'@; put 'MTI4KXt2YXIgVWE9dGkuc2xpY2UoSmksSmkrMTI4KTtnbihVYSw2NCksVWk9VWEucmVhZF9zaGlmdCgyKSxucz1JbChVYSwwLFVpLWlpKSxVdC5wdXNoKG5zKTt2YXIgeWE9e25hbWU6bnMsdHlwZTpVYS5yZWFkX3NoaWZ0KDEpLGNvbG9yOlVhLnJlYWRfc2hpZnQoMSksTDpVYS5yZWFkX3No'@; put 'aWZ0KDQsImkiKSxSOlVhLnJlYWRfc2hpZnQoNCwiaSIpLEM6VWEucmVhZF9zaGlmdCg0LCJpIiksY2xzaWQ6VWEucmVhZF9zaGlmdCgxNiksc3RhdGU6VWEucmVhZF9zaGlmdCg0LCJpIiksc3RhcnQ6MCxzaXplOjB9OzAhPT1VYS5yZWFkX3NoaWZ0KDIpK1VhLnJlYWRfc2hpZnQoMikrVWEu'@; put 'cmVhZF9zaGlmdCgyKStVYS5yZWFkX3NoaWZ0KDIpJiYoeWEuY3Q9S3QoVWEsVWEubC04KSksMCE9PVVhLnJlYWRfc2hpZnQoMikrVWEucmVhZF9zaGlmdCgyKStVYS5yZWFkX3NoaWZ0KDIpK1VhLnJlYWRfc2hpZnQoMikmJih5YS5tdD1LdChVYSxVYS5sLTgpKSx5YS5zdGFydD1VYS5yZWFk'@; put 'X3NoaWZ0KDQsImkiKSx5YS5zaXplPVVhLnJlYWRfc2hpZnQoNCwiaSIpLHlhLnNpemU8MCYmeWEuc3RhcnQ8MCYmKHlhLnNpemU9eWEudHlwZT0wLHlhLnN0YXJ0PXJyLHlhLm5hbWU9IiIpLDU9PT15YS50eXBlPyhacj15YS5zdGFydCxubj4wJiZaciE9PXJyJiYoRG5bWnJdLm5hbWU9IiFT'@; put 'dHJlYW1EYXRhIikpOnlhLnNpemU+PTQwOTY/KHlhLnN0b3JhZ2U9ImZhdCIsdm9pZCAwPT09RG5beWEuc3RhcnRdJiYoRG5beWEuc3RhcnRdPUJ0KF9uLHlhLnN0YXJ0LERuLmZhdF9hZGRycyxEbi5zc3opKSxEblt5YS5zdGFydF0ubmFtZT15YS5uYW1lLHlhLmNvbnRlbnQ9RG5beWEuc3Rh'@; put 'cnRdLmRhdGEuc2xpY2UoMCx5YS5zaXplKSk6KHlhLnN0b3JhZ2U9Im1pbmlmYXQiLHlhLnNpemU8MD95YS5zaXplPTA6WnIhPT1yciYmeWEuc3RhcnQhPT1yciYmRG5bWnJdJiYoeWEuY29udGVudD1pdCh5YSxEbltacl0uZGF0YSwoRG5bX3JdfHx7fSkuZGF0YSkpKSx5YS5jb250ZW50JiZn'@; put 'bih5YS5jb250ZW50LDApLFNuW25zXT15YSxVbi5wdXNoKHlhKX19KShVbixNbyxBcyxvMCxubix7fSxyMSxfciksZnVuY3Rpb24gVHQocG4sRG4sX24pe2Zvcih2YXIgVXQ9MCxubj0wLFNuPTAsVW49MCxfcj0wLFpyPV9uLmxlbmd0aCxpaT1bXSx0aT1bXTtVdDxacjsrK1V0KWlpW1V0XT10'@; put 'aVtVdF09VXQsRG5bVXRdPV9uW1V0XTtmb3IoO19yPHRpLmxlbmd0aDsrK19yKW5uPXBuW1V0PXRpW19yXV0uTCxTbj1wbltVdF0uUixVbj1wbltVdF0uQyxpaVtVdF09PT1VdCYmKC0xIT09bm4mJmlpW25uXSE9PW5uJiYoaWlbVXRdPWlpW25uXSksLTEhPT1TbiYmaWlbU25dIT09U24mJihp'@; put 'aVtVdF09aWlbU25dKSksLTEhPT1VbiYmKGlpW1VuXT1VdCksLTEhPT1ubiYmVXQhPWlpW1V0XSYmKGlpW25uXT1paVtVdF0sdGkubGFzdEluZGV4T2Yobm4pPF9yJiZ0aS5wdXNoKG5uKSksLTEhPT1TbiYmVXQhPWlpW1V0XSYmKGlpW1NuXT1paVtVdF0sdGkubGFzdEluZGV4T2YoU24pPF9y'@; put 'JiZ0aS5wdXNoKFNuKSk7Zm9yKFV0PTE7VXQ8WnI7KytVdClpaVtVdF09PT1VdCYmKC0xIT09U24mJmlpW1NuXSE9PVNuP2lpW1V0XT1paVtTbl06LTEhPT1ubiYmaWlbbm5dIT09bm4mJihpaVtVdF09aWlbbm5dKSk7Zm9yKFV0PTE7VXQ8WnI7KytVdClpZigwIT09cG5bVXRdLnR5cGUpe2lm'@; put 'KChfcj1VdCkhPWlpW19yXSlkb3tEbltVdF09RG5bX3I9aWlbX3JdXSsiLyIrRG5bVXRdfXdoaWxlKDAhPT1fciYmLTEhPT1paVtfcl0mJl9yIT1paVtfcl0pO2lpW1V0XT0tMX1mb3IoRG5bMF0rPSIvIixVdD0xO1V0PFpyOysrVXQpMiE9PXBuW1V0XS50eXBlJiYoRG5bVXRdKz0iLyIpfShy'@; put 'MSxCOCxvMCksbzAuc2hpZnQoKTt2YXIgJDU9e0ZpbGVJbmRleDpyMSxGdWxsUGF0aHM6Qjh9O3JldHVybiBEbiYmRG4ucmF3JiYoJDUucmF3PXtoZWFkZXI6VWksc2VjdG9yczpBc30pLCQ1fWZ1bmN0aW9uIGl0KHBuLERuLF9uKXtmb3IodmFyIG5uPXBuLnNpemUsU249W10sVW49cG4uc3Rh'@; put 'cnQ7X24mJm5uPjAmJlVuPj0wOylTbi5wdXNoKERuLnNsaWNlKFVuKmJyLFVuKmJyK2JyKSksbm4tPWJyLFVuPU5vKF9uLDQqVW4pO3JldHVybiAwPT09U24ubGVuZ3RoP3ZuKDApOlUoU24pLnNsaWNlKDAscG4uc2l6ZSl9ZnVuY3Rpb24gYnQocG4sRG4sX24sVXQsbm4pe3ZhciBTbj1ycjtp'@; put 'Zihwbj09PXJyKXtpZigwIT09RG4pdGhyb3cgbmV3IEVycm9yKCJESUZBVCBjaGFpbiBzaG9ydGVyIHRoYW4gZXhwZWN0ZWQiKX1lbHNlIGlmKC0xIT09cG4pe3ZhciBVbj1fbltwbl0sX3I9KFV0Pj4+MiktMTtpZighVW4pcmV0dXJuO2Zvcih2YXIgWnI9MDtacjxfciYmKFNuPU5vKFVuLDQq'@; put 'WnIpKSE9PXJyOysrWnIpbm4ucHVzaChTbik7YnQoTm8oVW4sVXQtNCksRG4tMSxfbixVdCxubil9fWZ1bmN0aW9uIEJ0KHBuLERuLF9uLFV0LG5uKXt2YXIgU249W10sVW49W107bm58fChubj1bXSk7dmFyIF9yPVV0LTEsWnI9MCxpaT0wO2Zvcihacj1Ebjtacj49MDspe25uW1pyXT0hMCxT'@; put 'bltTbi5sZW5ndGhdPVpyLFVuLnB1c2gocG5bWnJdKTt2YXIgdGk9X25bTWF0aC5mbG9vcig0KlpyL1V0KV07aWYoVXQ8NCsoaWk9NCpaciZfcikpdGhyb3cgbmV3IEVycm9yKCJGQVQgYm91bmRhcnkgY3Jvc3NlZDogIitacisiIDQgIitVdCk7aWYoIXBuW3RpXSlicmVhaztacj1Obyhwblt0'@; put 'aV0saWkpfXJldHVybntub2RlczpTbixkYXRhOm0wKFtVbl0pfX1mdW5jdGlvbiBLdChwbixEbil7cmV0dXJuIG5ldyBEYXRlKDFlMyooenMocG4sRG4rNCkvMWU3Kk1hdGgucG93KDIsMzIpK3pzKHBuLERuKS8xZTctMTE2NDQ0NzM2MDApKX1mdW5jdGlvbiBDbihwbixEbil7dmFyIF9uPURu'@; put 'fHx7fSxVdD1fbi5yb290fHwiUm9vdCBFbnRyeSI7aWYocG4uRnVsbFBhdGhzfHwocG4uRnVsbFBhdGhzPVtdKSxwbi5GaWxlSW5kZXh8fChwbi5GaWxlSW5kZXg9W10pLHBuLkZ1bGxQYXRocy5sZW5ndGghPT1wbi5GaWxlSW5kZXgubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiaW5jb25zaXN0'@; put 'ZW50IENGQiBzdHJ1Y3R1cmUiKTswPT09cG4uRnVsbFBhdGhzLmxlbmd0aCYmKHBuLkZ1bGxQYXRoc1swXT1VdCsiLyIscG4uRmlsZUluZGV4WzBdPXtuYW1lOlV0LHR5cGU6NX0pLF9uLkNMU0lEJiYocG4uRmlsZUluZGV4WzBdLmNsc2lkPV9uLkNMU0lEKSxmdW5jdGlvbiB1cihwbil7dmFy'@; put 'IERuPSJceDAxU2gzM3RKNSI7aWYoIXZlLmZpbmQocG4sIi8iK0RuKSl7dmFyIF9uPXZuKDQpO19uWzBdPTU1LF9uWzFdPV9uWzNdPTUwLF9uWzJdPTU0LHBuLkZpbGVJbmRleC5wdXNoKHtuYW1lOkRuLHR5cGU6Mixjb250ZW50Ol9uLHNpemU6NCxMOjY5LFI6NjksQzo2OX0pLHBuLkZ1bGxQ'@; put 'YXRocy5wdXNoKHBuLkZ1bGxQYXRoc1swXStEbiksZXIocG4pfX0ocG4pfWZ1bmN0aW9uIGVyKHBuLERuKXtDbihwbik7Zm9yKHZhciBfbj0hMSxVdD0hMSxubj1wbi5GdWxsUGF0aHMubGVuZ3RoLTE7bm4+PTA7LS1ubil7dmFyIFNuPXBuLkZpbGVJbmRleFtubl07c3dpdGNoKFNuLnR5cGUp'@; put 'e2Nhc2UgMDpVdD9fbj0hMDoocG4uRmlsZUluZGV4LnBvcCgpLHBuLkZ1bGxQYXRocy5wb3AoKSk7YnJlYWs7Y2FzZSAxOmNhc2UgMjpjYXNlIDU6VXQ9ITAsaXNOYU4oU24uUipTbi5MKlNuLkMpJiYoX249ITApLFNuLlI+LTEmJlNuLkw+LTEmJlNuLlI9PVNuLkwmJihfbj0hMCk7YnJlYWs7'@; put 'ZGVmYXVsdDpfbj0hMH19aWYoX258fERuKXt2YXIgVW49bmV3IERhdGUoMTk4NywxLDE5KSxfcj0wLFpyPVtdO2Zvcihubj0wO25uPHBuLkZ1bGxQYXRocy5sZW5ndGg7KytubikwIT09cG4uRmlsZUluZGV4W25uXS50eXBlJiZaci5wdXNoKFtwbi5GdWxsUGF0aHNbbm5dLHBuLkZpbGVJbmRl'@; put 'eFtubl1dKTtmb3Iobm49MDtubjxaci5sZW5ndGg7Kytubil7dmFyIGlpPUsoWnJbbm5dWzBdKTtmb3IoVXQ9ITEsX3I9MDtfcjxaci5sZW5ndGg7Kytfcilacltfcl1bMF09PT1paSYmKFV0PSEwKTtVdHx8WnIucHVzaChbaWkse25hbWU6ZWUoaWkpLnJlcGxhY2UoIi8iLCIiKSx0eXBlOjEs'@; put 'Y2xzaWQ6bmEsY3Q6VW4sbXQ6VW4sY29udGVudDpudWxsfV0pfWZvcihaci5zb3J0KGZ1bmN0aW9uKFVpLG5zKXtyZXR1cm4gZnVuY3Rpb24gayhwbixEbil7Zm9yKHZhciBfbj1wbi5zcGxpdCgiLyIpLFV0PURuLnNwbGl0KCIvIiksbm49MCxTbj0wLFVuPU1hdGgubWluKF9uLmxlbmd0aCxV'@; put 'dC5sZW5ndGgpO25uPFVuOysrbm4pe2lmKFNuPV9uW25uXS5sZW5ndGgtVXRbbm5dLmxlbmd0aClyZXR1cm4gU247aWYoX25bbm5dIT1VdFtubl0pcmV0dXJuIF9uW25uXTxVdFtubl0/LTE6MX1yZXR1cm4gX24ubGVuZ3RoLVV0Lmxlbmd0aH0oVWlbMF0sbnNbMF0pfSkscG4uRnVsbFBhdGhz'@; put 'PVtdLHBuLkZpbGVJbmRleD1bXSxubj0wO25uPFpyLmxlbmd0aDsrK25uKXBuLkZ1bGxQYXRoc1tubl09WnJbbm5dWzBdLHBuLkZpbGVJbmRleFtubl09WnJbbm5dWzFdO2Zvcihubj0wO25uPFpyLmxlbmd0aDsrK25uKXt2YXIgdGk9cG4uRmlsZUluZGV4W25uXSxKaT1wbi5GdWxsUGF0aHNb'@; put 'bm5dO2lmKHRpLm5hbWU9ZWUoSmkpLnJlcGxhY2UoIi8iLCIiKSx0aS5MPXRpLlI9dGkuQz0tKHRpLmNvbG9yPTEpLHRpLnNpemU9dGkuY29udGVudD90aS5jb250ZW50Lmxlbmd0aDowLHRpLnN0YXJ0PTAsdGkuY2xzaWQ9dGkuY2xzaWR8fG5hLDA9PT1ubil0aS5DPVpyLmxlbmd0aD4xPzE6'@; put 'LTEsdGkuc2l6ZT0wLHRpLnR5cGU9NTtlbHNlIGlmKCIvIj09Smkuc2xpY2UoLTEpKXtmb3IoX3I9bm4rMTtfcjxaci5sZW5ndGgmJksocG4uRnVsbFBhdGhzW19yXSkhPUppOysrX3IpO2Zvcih0aS5DPV9yPj1aci5sZW5ndGg/LTE6X3IsX3I9bm4rMTtfcjxaci5sZW5ndGgmJksocG4uRnVs'@; put 'bFBhdGhzW19yXSkhPUsoSmkpOysrX3IpO3RpLlI9X3I+PVpyLmxlbmd0aD8tMTpfcix0aS50eXBlPTF9ZWxzZSBLKHBuLkZ1bGxQYXRoc1tubisxXXx8IiIpPT1LKEppKSYmKHRpLlI9bm4rMSksdGkudHlwZT0yfX19ZnVuY3Rpb24gam4ocG4sRG4pe3ZhciBfbj1Ebnx8e307aWYoZXIocG4p'@; put 'LCJ6aXAiPT1fbi5maWxlVHlwZSlyZXR1cm4gZnVuY3Rpb24gR3MocG4sRG4pe3ZhciBfbj1Ebnx8e30sVXQ9W10sbm49W10sU249dm4oMSksVW49X24uY29tcHJlc3Npb24/ODowLF9yPTAsaWk9MCx0aT0wLEppPTAsVWk9MCxucz1wbi5GdWxsUGF0aHNbMF0sVWE9bnMseWE9cG4uRmlsZUlu'@; put 'ZGV4WzBdLEFzPVtdLE1vPTA7Zm9yKGlpPTE7aWk8cG4uRnVsbFBhdGhzLmxlbmd0aDsrK2lpKWlmKFVhPXBuLkZ1bGxQYXRoc1tpaV0uc2xpY2UobnMubGVuZ3RoKSwoeWE9cG4uRmlsZUluZGV4W2lpXSkuc2l6ZSYmeWEuY29udGVudCYmIlx4MDFTaDMzdEo1IiE9VWEpe3ZhciBuMT1KaSxv'@; put 'MD12bihVYS5sZW5ndGgpO2Zvcih0aT0wO3RpPFVhLmxlbmd0aDsrK3RpKW8wLndyaXRlX3NoaWZ0KDEsMTI3JlVhLmNoYXJDb2RlQXQodGkpKTtvMD1vMC5zbGljZSgwLG8wLmwpLEFzW1VpXT14ZS5idWYoeWEuY29udGVudCwwKTt2YXIgcjE9eWEuY29udGVudDs4PT1VbiYmKHIxPXpyKHIx'@; put 'KSksKFNuPXZuKDMwKSkud3JpdGVfc2hpZnQoNCw2NzMyNDc1MiksU24ud3JpdGVfc2hpZnQoMiwyMCksU24ud3JpdGVfc2hpZnQoMixfciksU24ud3JpdGVfc2hpZnQoMixVbikseWEubXQ/b2UoU24seWEubXQpOlNuLndyaXRlX3NoaWZ0KDQsMCksU24ud3JpdGVfc2hpZnQoLTQsOCZfcj8w'@; put 'OkFzW1VpXSksU24ud3JpdGVfc2hpZnQoNCw4Jl9yPzA6cjEubGVuZ3RoKSxTbi53cml0ZV9zaGlmdCg0LDgmX3I/MDp5YS5jb250ZW50Lmxlbmd0aCksU24ud3JpdGVfc2hpZnQoMixvMC5sZW5ndGgpLFNuLndyaXRlX3NoaWZ0KDIsMCksSmkrPVNuLmxlbmd0aCxVdC5wdXNoKFNuKSxKaSs9'@; put 'bzAubGVuZ3RoLFV0LnB1c2gobzApLEppKz1yMS5sZW5ndGgsVXQucHVzaChyMSksOCZfciYmKChTbj12bigxMikpLndyaXRlX3NoaWZ0KC00LEFzW1VpXSksU24ud3JpdGVfc2hpZnQoNCxyMS5sZW5ndGgpLFNuLndyaXRlX3NoaWZ0KDQseWEuY29udGVudC5sZW5ndGgpLEppKz1Tbi5sLFV0'@; put 'LnB1c2goU24pKSwoU249dm4oNDYpKS53cml0ZV9zaGlmdCg0LDMzNjM5MjQ4KSxTbi53cml0ZV9zaGlmdCgyLDApLFNuLndyaXRlX3NoaWZ0KDIsMjApLFNuLndyaXRlX3NoaWZ0KDIsX3IpLFNuLndyaXRlX3NoaWZ0KDIsVW4pLFNuLndyaXRlX3NoaWZ0KDQsMCksU24ud3JpdGVfc2hpZnQo'@; put 'LTQsQXNbVWldKSxTbi53cml0ZV9zaGlmdCg0LHIxLmxlbmd0aCksU24ud3JpdGVfc2hpZnQoNCx5YS5jb250ZW50Lmxlbmd0aCksU24ud3JpdGVfc2hpZnQoMixvMC5sZW5ndGgpLFNuLndyaXRlX3NoaWZ0KDIsMCksU24ud3JpdGVfc2hpZnQoMiwwKSxTbi53cml0ZV9zaGlmdCgyLDApLFNu'@; put 'LndyaXRlX3NoaWZ0KDIsMCksU24ud3JpdGVfc2hpZnQoNCwwKSxTbi53cml0ZV9zaGlmdCg0LG4xKSxNbys9U24ubCxubi5wdXNoKFNuKSxNbys9bzAubGVuZ3RoLG5uLnB1c2gobzApLCsrVWl9cmV0dXJuKFNuPXZuKDIyKSkud3JpdGVfc2hpZnQoNCwxMDEwMTAyNTYpLFNuLndyaXRlX3No'@; put 'aWZ0KDIsMCksU24ud3JpdGVfc2hpZnQoMiwwKSxTbi53cml0ZV9zaGlmdCgyLFVpKSxTbi53cml0ZV9zaGlmdCgyLFVpKSxTbi53cml0ZV9zaGlmdCg0LE1vKSxTbi53cml0ZV9zaGlmdCg0LEppKSxTbi53cml0ZV9zaGlmdCgyLDApLFUoW1UoVXQpLFUobm4pLFNuXSl9KHBuLF9uKTt2YXIg'@; put 'VXQ9ZnVuY3Rpb24obnMpe2Zvcih2YXIgVWE9MCx5YT0wLEFzPTA7QXM8bnMuRmlsZUluZGV4Lmxlbmd0aDsrK0FzKXt2YXIgTW89bnMuRmlsZUluZGV4W0FzXTtpZihNby5jb250ZW50KXt2YXIgbjE9TW8uY29udGVudC5sZW5ndGg7bjE+MCYmKG4xPDQwOTY/VWErPW4xKzYzPj42OnlhKz1u'@; put 'MSs1MTE+PjkpfX1mb3IodmFyIG8wPW5zLkZ1bGxQYXRocy5sZW5ndGgrMz4+MixCOD1VYSsxMjc+PjcsJDU9KFVhKzc+PjMpK3lhK28wK0I4LEs1PSQ1KzEyNz4+NyxNZT1LNTw9MTA5PzA6TWF0aC5jZWlsKChLNS0xMDkpLzEyNyk7JDUrSzUrTWUrMTI3Pj43Pks1OylNZT0rK0s1PD0xMDk/'@; put 'MDpNYXRoLmNlaWwoKEs1LTEwOSkvMTI3KTt2YXIgZmg9WzEsTWUsSzUsQjgsbzAseWEsVWEsMF07cmV0dXJuIG5zLkZpbGVJbmRleFswXS5zaXplPVVhPDw2LGZoWzddPShucy5GaWxlSW5kZXhbMF0uc3RhcnQ9ZmhbMF0rZmhbMV0rZmhbMl0rZmhbM10rZmhbNF0rZmhbNV0pKyhmaFs2XSs3'@; put 'Pj4zKSxmaH0ocG4pLG5uPXZuKFV0WzddPDw5KSxTbj0wLFVuPTA7Zm9yKFNuPTA7U248ODsrK1NuKW5uLndyaXRlX3NoaWZ0KDEsUGlbU25dKTtmb3IoU249MDtTbjw4OysrU24pbm4ud3JpdGVfc2hpZnQoMiwwKTtmb3Iobm4ud3JpdGVfc2hpZnQoMiw2Miksbm4ud3JpdGVfc2hpZnQoMiwz'@; put 'KSxubi53cml0ZV9zaGlmdCgyLDY1NTM0KSxubi53cml0ZV9zaGlmdCgyLDkpLG5uLndyaXRlX3NoaWZ0KDIsNiksU249MDtTbjwzOysrU24pbm4ud3JpdGVfc2hpZnQoMiwwKTtmb3Iobm4ud3JpdGVfc2hpZnQoNCwwKSxubi53cml0ZV9zaGlmdCg0LFV0WzJdKSxubi53cml0ZV9zaGlmdCg0'@; put 'LFV0WzBdK1V0WzFdK1V0WzJdK1V0WzNdLTEpLG5uLndyaXRlX3NoaWZ0KDQsMCksbm4ud3JpdGVfc2hpZnQoNCw0MDk2KSxubi53cml0ZV9zaGlmdCg0LFV0WzNdP1V0WzBdK1V0WzFdK1V0WzJdLTE6cnIpLG5uLndyaXRlX3NoaWZ0KDQsVXRbM10pLG5uLndyaXRlX3NoaWZ0KC00LFV0WzFd'@; put 'P1V0WzBdLTE6cnIpLG5uLndyaXRlX3NoaWZ0KDQsVXRbMV0pLFNuPTA7U248MTA5OysrU24pbm4ud3JpdGVfc2hpZnQoLTQsU248VXRbMl0/VXRbMV0rU246LTEpO2lmKFV0WzFdKWZvcihVbj0wO1VuPFV0WzFdOysrVW4pe2Zvcig7U248MjM2KzEyNypVbjsrK1NuKW5uLndyaXRlX3NoaWZ0'@; put 'KC00LFNuPFV0WzJdP1V0WzFdK1NuOi0xKTtubi53cml0ZV9zaGlmdCgtNCxVbj09PVV0WzFdLTE/cnI6VW4rMSl9dmFyIF9yPWZ1bmN0aW9uKG5zKXtmb3IoVW4rPW5zO1NuPFVuLTE7KytTbilubi53cml0ZV9zaGlmdCgtNCxTbisxKTtucyYmKCsrU24sbm4ud3JpdGVfc2hpZnQoLTQscnIp'@; put 'KX07Zm9yKFVuPVNuPTAsVW4rPVV0WzFdO1NuPFVuOysrU24pbm4ud3JpdGVfc2hpZnQoLTQsbGEuRElGU0VDVCk7Zm9yKFVuKz1VdFsyXTtTbjxVbjsrK1NuKW5uLndyaXRlX3NoaWZ0KC00LGxhLkZBVFNFQ1QpO19yKFV0WzNdKSxfcihVdFs0XSk7Zm9yKHZhciBacj0wLGlpPTAsdGk9cG4u'@; put 'RmlsZUluZGV4WzBdO1pyPHBuLkZpbGVJbmRleC5sZW5ndGg7KytacikodGk9cG4uRmlsZUluZGV4W1pyXSkuY29udGVudCYmISgoaWk9dGkuY29udGVudC5sZW5ndGgpPDQwOTYpJiYodGkuc3RhcnQ9VW4sX3IoaWkrNTExPj45KSk7Zm9yKF9yKFV0WzZdKzc+PjMpOzUxMSZubi5sOylubi53'@; put 'cml0ZV9zaGlmdCgtNCxsYS5FTkRPRkNIQUlOKTtmb3IoVW49U249MCxacj0wO1pyPHBuLkZpbGVJbmRleC5sZW5ndGg7KytacikodGk9cG4uRmlsZUluZGV4W1pyXSkuY29udGVudCYmKGlpPXRpLmNvbnRlbnQubGVuZ3RoKSYmIShpaT49NDA5NikmJih0aS5zdGFydD1VbixfcihpaSs2Mz4+'@; put 'NikpO2Zvcig7NTExJm5uLmw7KW5uLndyaXRlX3NoaWZ0KC00LGxhLkVORE9GQ0hBSU4pO2ZvcihTbj0wO1NuPFV0WzRdPDwyOysrU24pe3ZhciBKaT1wbi5GdWxsUGF0aHNbU25dO2lmKEppJiYwIT09SmkubGVuZ3RoKXt0aT1wbi5GaWxlSW5kZXhbU25dLDA9PT1TbiYmKHRpLnN0YXJ0PXRp'@; put 'LnNpemU/dGkuc3RhcnQtMTpycik7dmFyIFVpPTA9PT1TbiYmX24ucm9vdHx8dGkubmFtZTtpZihpaT0yKihVaS5sZW5ndGgrMSksbm4ud3JpdGVfc2hpZnQoNjQsVWksInV0ZjE2bGUiKSxubi53cml0ZV9zaGlmdCgyLGlpKSxubi53cml0ZV9zaGlmdCgxLHRpLnR5cGUpLG5uLndyaXRlX3No'@; put 'aWZ0KDEsdGkuY29sb3IpLG5uLndyaXRlX3NoaWZ0KC00LHRpLkwpLG5uLndyaXRlX3NoaWZ0KC00LHRpLlIpLG5uLndyaXRlX3NoaWZ0KC00LHRpLkMpLHRpLmNsc2lkKW5uLndyaXRlX3NoaWZ0KDE2LHRpLmNsc2lkLCJoZXgiKTtlbHNlIGZvcihacj0wO1pyPDQ7Kytacilubi53cml0ZV9z'@; put 'aGlmdCg0LDApO25uLndyaXRlX3NoaWZ0KDQsdGkuc3RhdGV8fDApLG5uLndyaXRlX3NoaWZ0KDQsMCksbm4ud3JpdGVfc2hpZnQoNCwwKSxubi53cml0ZV9zaGlmdCg0LDApLG5uLndyaXRlX3NoaWZ0KDQsMCksbm4ud3JpdGVfc2hpZnQoNCx0aS5zdGFydCksbm4ud3JpdGVfc2hpZnQoNCx0'@; put 'aS5zaXplKSxubi53cml0ZV9zaGlmdCg0LDApfWVsc2V7Zm9yKFpyPTA7WnI8MTc7Kytacilubi53cml0ZV9zaGlmdCg0LDApO2Zvcihacj0wO1pyPDM7Kytacilubi53cml0ZV9zaGlmdCg0LC0xKTtmb3IoWnI9MDtacjwxMjsrK1pyKW5uLndyaXRlX3NoaWZ0KDQsMCl9fWZvcihTbj0xO1Nu'@; put 'PHBuLkZpbGVJbmRleC5sZW5ndGg7KytTbilpZigodGk9cG4uRmlsZUluZGV4W1NuXSkuc2l6ZT49NDA5Nil7Zm9yKG5uLmw9dGkuc3RhcnQrMTw8OSxacj0wO1pyPHRpLnNpemU7Kytacilubi53cml0ZV9zaGlmdCgxLHRpLmNvbnRlbnRbWnJdKTtmb3IoOzUxMSZacjsrK1pyKW5uLndyaXRl'@; put 'X3NoaWZ0KDEsMCl9Zm9yKFNuPTE7U248cG4uRmlsZUluZGV4Lmxlbmd0aDsrK1NuKWlmKCh0aT1wbi5GaWxlSW5kZXhbU25dKS5zaXplPjAmJnRpLnNpemU8NDA5Nil7Zm9yKFpyPTA7WnI8dGkuc2l6ZTsrK1pyKW5uLndyaXRlX3NoaWZ0KDEsdGkuY29udGVudFtacl0pO2Zvcig7NjMmWnI7'@; put 'Kytacilubi53cml0ZV9zaGlmdCgxLDApfWZvcig7bm4ubDxubi5sZW5ndGg7KW5uLndyaXRlX3NoaWZ0KDEsMCk7cmV0dXJuIG5ufU8udmVyc2lvbj0iMS4xLjQiO3ZhciBqcixicj02NCxycj0tMixTaT0iZDBjZjExZTBhMWIxMWFlMSIsUGk9WzIwOCwyMDcsMTcsMjI0LDE2MSwxNzcsMjYs'@; put 'MjI1XSxuYT0iMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLGxhPXtNQVhSRUdTRUNUOi02LERJRlNFQ1Q6LTQsRkFUU0VDVDotMyxFTkRPRkNIQUlOOnJyLEZSRUVTRUNUOi0xLEhFQURFUl9TSUdOQVRVUkU6U2ksSEVBREVSX01JTk9SX1ZFUlNJT046IjNlMDAiLE1BWFJFR1NJ'@; put 'RDotNixOT1NUUkVBTTotMSxIRUFERVJfQ0xTSUQ6bmEsRW50cnlUeXBlczpbInVua25vd24iLCJzdG9yYWdlIiwic3RyZWFtIiwibG9ja2J5dGVzIiwicHJvcGVydHkiLCJyb290Il19O2Z1bmN0aW9uIFJyKHBuKXtmb3IodmFyIERuPW5ldyBBcnJheShwbi5sZW5ndGgpLF9uPTA7X248cG4u'@; put 'bGVuZ3RoOysrX24pRG5bX25dPVN0cmluZy5mcm9tQ2hhckNvZGUocG5bX25dKTtyZXR1cm4gRG4uam9pbigiIil9ZnVuY3Rpb24genIocG4pe3JldHVybiBqcj9qci5kZWZsYXRlUmF3U3luYyhwbik6WmwocG4pfWZvcih2YXIgcG4sRG4sV2k9WzE2LDE3LDE4LDAsOCw3LDksNiwxMCw1LDEx'@; put 'LDQsMTIsMywxMywyLDE0LDEsMTVdLENpPVszLDQsNSw2LDcsOCw5LDEwLDExLDEzLDE1LDE3LDE5LDIzLDI3LDMxLDM1LDQzLDUxLDU5LDY3LDgzLDk5LDExNSwxMzEsMTYzLDE5NSwyMjcsMjU4XSx3YT1bMSwyLDMsNCw1LDcsOSwxMywxNywyNSwzMyw0OSw2NSw5NywxMjksMTkzLDI1Nywz'@; put 'ODUsNTEzLDc2OSwxMDI1LDE1MzcsMjA0OSwzMDczLDQwOTcsNjE0NSw4MTkzLDEyMjg5LDE2Mzg1LDI0NTc3XSxpYT10eXBlb2YgVWludDhBcnJheTwidSIsT3M9aWE/bmV3IFVpbnQ4QXJyYXkoMjU2KTpbXSxQYT0wO1BhPDI1NjsrK1BhKU9zW1BhXT0odm9pZCAwLDI1NSYoKERuPTEzOTUz'@; put 'NiYoKHBuPVBhKTw8MXxwbjw8MTEpfDU1ODE0NCYocG48PDV8cG48PDE1KSk+PjE2fERuPj44fERuKSk7ZnVuY3Rpb24gdXMocG4sRG4pe3ZhciBfbj1Pc1syNTUmcG5dO3JldHVybiBEbjw9OD9fbj4+PjgtRG46KF9uPV9uPDw4fE9zW3BuPj44JjI1NV0sRG48PTE2P19uPj4+MTYtRG46KF9u'@; put 'PV9uPDw4fE9zW3BuPj4xNiYyNTVdKT4+PjI0LURuKX1mdW5jdGlvbiBxYShwbixEbil7dmFyIF9uPTcmRG4sVXQ9RG4+Pj4zO3JldHVybihwbltVdF18KF9uPD02PzA6cG5bVXQrMV08PDgpKT4+Pl9uJjN9ZnVuY3Rpb24gVmkocG4sRG4pe3ZhciBfbj03JkRuLFV0PURuPj4+MztyZXR1cm4o'@; put 'cG5bVXRdfChfbjw9NT8wOnBuW1V0KzFdPDw4KSk+Pj5fbiY3fWZ1bmN0aW9uIEZuKHBuLERuKXt2YXIgX249NyZEbixVdD1Ebj4+PjM7cmV0dXJuKHBuW1V0XXwoX248PTM/MDpwbltVdCsxXTw8OCkpPj4+X24mMzF9ZnVuY3Rpb24gWXMocG4sRG4pe3ZhciBfbj03JkRuLFV0PURuPj4+Mzty'@; put 'ZXR1cm4ocG5bVXRdfChfbjw9MT8wOnBuW1V0KzFdPDw4KSk+Pj5fbiYxMjd9ZnVuY3Rpb24gaHIocG4sRG4sX24pe3ZhciBVdD03JkRuLG5uPURuPj4+MyxVbj1wbltubl0+Pj5VdDtyZXR1cm4gX248OC1VdHx8KFVufD1wbltubisxXTw8OC1VdCxfbjwxNi1VdCl8fChVbnw9cG5bbm4rMl08'@; put 'PDE2LVV0LF9uPDI0LVV0KXx8KFVufD1wbltubiszXTw8MjQtVXQpLFVuJigxPDxfbiktMX1mdW5jdGlvbiBKbChwbixEbil7dmFyIF9uPXBuLmxlbmd0aCxVdD0yKl9uPkRuPzIqX246RG4rNSxubj0wO2lmKF9uPj1EbilyZXR1cm4gcG47aWYoVGUpe3ZhciBTbj1nKFV0KTtpZihwbi5jb3B5'@; put 'KXBuLmNvcHkoU24pO2Vsc2UgZm9yKDtubjxwbi5sZW5ndGg7KytubilTbltubl09cG5bbm5dO3JldHVybiBTbn1pZihpYSl7dmFyIFVuPW5ldyBVaW50OEFycmF5KFV0KTtpZihVbi5zZXQpVW4uc2V0KHBuKTtlbHNlIGZvcig7bm48cG4ubGVuZ3RoOysrbm4pVW5bbm5dPXBuW25uXTtyZXR1'@; put 'cm4gVW59cmV0dXJuIHBuLmxlbmd0aD1VdCxwbn1mdW5jdGlvbiBVbChwbil7Zm9yKHZhciBEbj1uZXcgQXJyYXkocG4pLF9uPTA7X248cG47KytfbilEbltfbl09MDtyZXR1cm4gRG59dmFyIFpsPWZ1bmN0aW9uKCl7dmFyIHBuPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKF9uLFV0KXtm'@; put 'b3IodmFyIG5uPTA7bm48X24ubGVuZ3RoOyl7dmFyIFNuPU1hdGgubWluKDY1NTM1LF9uLmxlbmd0aC1ubik7Zm9yKFV0LndyaXRlX3NoaWZ0KDEsKyhubitTbj09X24ubGVuZ3RoKSksVXQud3JpdGVfc2hpZnQoMixTbiksVXQud3JpdGVfc2hpZnQoMiw2NTUzNSZ+U24pO1NuLS0gPjA7KVV0'@; put 'W1V0LmwrK109X25bbm4rK119cmV0dXJuIFV0Lmx9fSgpO3JldHVybiBmdW5jdGlvbihEbil7dmFyIF9uPXZuKDUwK01hdGguZmxvb3IoMS4xKkRuLmxlbmd0aCkpLFV0PXBuKERuLF9uKTtyZXR1cm4gX24uc2xpY2UoMCxVdCl9fSgpO2Z1bmN0aW9uIGd1KHBuLERuLF9uKXt2YXIgVXQ9MSxu'@; put 'bj0wLFNuPTAsVW49MCxfcj0wLFpyPXBuLmxlbmd0aCxpaT1pYT9uZXcgVWludDE2QXJyYXkoMzIpOlVsKDMyKTtmb3IoU249MDtTbjwzMjsrK1NuKWlpW1NuXT0wO2ZvcihTbj1acjtTbjxfbjsrK1NuKXBuW1NuXT0wO1pyPXBuLmxlbmd0aDt2YXIgdGk9aWE/bmV3IFVpbnQxNkFycmF5KFpy'@; put 'KTpVbChacik7Zm9yKFNuPTA7U248WnI7KytTbilpaVtubj1wbltTbl1dKyssVXQ8bm4mJihVdD1ubiksdGlbU25dPTA7Zm9yKGlpWzBdPTAsU249MTtTbjw9VXQ7KytTbilpaVtTbisxNl09X3I9X3IraWlbU24tMV08PDE7Zm9yKFNuPTA7U248WnI7KytTbikwIT0oX3I9cG5bU25dKSYmKHRp'@; put 'W1NuXT1paVtfcisxNl0rKyk7dmFyIEppPTA7Zm9yKFNuPTA7U248WnI7KytTbilpZigwIT0oSmk9cG5bU25dKSlmb3IoX3I9dXModGlbU25dLFV0KT4+VXQtSmksVW49KDE8PFV0KzQtSmkpLTE7VW4+PTA7LS1VbilEbltfcnxVbjw8SmldPTE1JkppfFNuPDw0O3JldHVybiBVdH12YXIgQ2w9'@; put 'aWE/bmV3IFVpbnQxNkFycmF5KDUxMik6VWwoNTEyKSxsbj1pYT9uZXcgVWludDE2QXJyYXkoMzIpOlVsKDMyKTtpZighaWEpe2Zvcih2YXIgRW49MDtFbjw1MTI7KytFbilDbFtFbl09MDtmb3IoRW49MDtFbjwzMjsrK0VuKWxuW0VuXT0wfSFmdW5jdGlvbigpe2Zvcih2YXIgcG49W10sRG49'@; put 'MDtEbjwzMjtEbisrKXBuLnB1c2goNSk7Z3UocG4sbG4sMzIpO3ZhciBfbj1bXTtmb3IoRG49MDtEbjw9MTQzO0RuKyspX24ucHVzaCg4KTtmb3IoO0RuPD0yNTU7RG4rKylfbi5wdXNoKDkpO2Zvcig7RG48PTI3OTtEbisrKV9uLnB1c2goNyk7Zm9yKDtEbjw9Mjg3O0RuKyspX24ucHVzaCg4'@; put 'KTtndShfbixDbCwyODgpfSgpO3ZhciBabj1pYT9uZXcgVWludDE2QXJyYXkoMzI3NjgpOlVsKDMyNzY4KSxNaT1pYT9uZXcgVWludDE2QXJyYXkoMzI3NjgpOlVsKDMyNzY4KSxjcj1pYT9uZXcgVWludDE2QXJyYXkoMTI4KTpVbCgxMjgpLExpPTEseHI9MTtmdW5jdGlvbiBPaShwbixEbil7'@; put 'dmFyIF9uPUZuKHBuLERuKSsyNTcsVXQ9Rm4ocG4sRG4rPTUpKzEsbm49ZnVuY3Rpb24gSW8ocG4sRG4pe3ZhciBfbj03JkRuLFV0PURuPj4+MztyZXR1cm4ocG5bVXRdfChfbjw9ND8wOnBuW1V0KzFdPDw4KSk+Pj5fbiYxNX0ocG4sRG4rPTUpKzQ7RG4rPTQ7Zm9yKHZhciBTbj0wLFVuPWlh'@; put 'P25ldyBVaW50OEFycmF5KDE5KTpVbCgxOSksX3I9WzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDBdLFpyPTEsaWk9aWE/bmV3IFVpbnQ4QXJyYXkoOCk6VWwoOCksdGk9aWE/bmV3IFVpbnQ4QXJyYXkoOCk6VWwoOCksSmk9VW4ubGVuZ3RoLFVpPTA7VWk8bm47KytVaSlV'@; put 'bltXaVtVaV1dPVNuPVZpKHBuLERuKSxacjxTbiYmKFpyPVNuKSxpaVtTbl0rKyxEbis9Mzt2YXIgbnM9MDtmb3IoaWlbMF09MCxVaT0xO1VpPD1acjsrK1VpKXRpW1VpXT1ucz1ucytpaVtVaS0xXTw8MTtmb3IoVWk9MDtVaTxKaTsrK1VpKTAhPShucz1VbltVaV0pJiYoX3JbVWldPXRpW25z'@; put 'XSsrKTt2YXIgVWE9MDtmb3IoVWk9MDtVaTxKaTsrK1VpKWlmKDAhPShVYT1VbltVaV0pKXtucz1Pc1tfcltVaV1dPj44LVVhO2Zvcih2YXIgeWE9KDE8PDctVWEpLTE7eWE+PTA7LS15YSljcltuc3x5YTw8VWFdPTcmVWF8VWk8PDN9dmFyIEFzPVtdO2Zvcihacj0xO0FzLmxlbmd0aDxfbitV'@; put 'dDspc3dpdGNoKG5zPWNyW1lzKHBuLERuKV0sRG4rPTcmbnMsbnM+Pj49Myl7Y2FzZSAxNjpmb3IoU249MytxYShwbixEbiksRG4rPTIsbnM9QXNbQXMubGVuZ3RoLTFdO1NuLS0gPjA7KUFzLnB1c2gobnMpO2JyZWFrO2Nhc2UgMTc6Zm9yKFNuPTMrVmkocG4sRG4pLERuKz0zO1NuLS0gPjA7'@; put 'KUFzLnB1c2goMCk7YnJlYWs7Y2FzZSAxODpmb3IoU249MTErWXMocG4sRG4pLERuKz03O1NuLS0gPjA7KUFzLnB1c2goMCk7YnJlYWs7ZGVmYXVsdDpBcy5wdXNoKG5zKSxacjxucyYmKFpyPW5zKX12YXIgTW89QXMuc2xpY2UoMCxfbiksbjE9QXMuc2xpY2UoX24pO2ZvcihVaT1fbjtVaTwy'@; put 'ODY7KytVaSlNb1tVaV09MDtmb3IoVWk9VXQ7VWk8MzA7KytVaSluMVtVaV09MDtyZXR1cm4gTGk9Z3UoTW8sWm4sMjg2KSx4cj1ndShuMSxNaSwzMCksRG59ZnVuY3Rpb24gRmkocG4sRG4pe3ZhciBVdD1mdW5jdGlvbiBZYShwbixEbil7aWYoMz09cG5bMF0mJiEoMyZwblsxXSkpcmV0dXJu'@; put 'W3ooRG4pLDJdO2Zvcih2YXIgX249MCxVdD0wLG5uPWcoRG58fDE8PDE4KSxTbj0wLFVuPW5uLmxlbmd0aD4+PjAsX3I9MCxacj0wOyEoMSZVdCk7KWlmKFV0PVZpKHBuLF9uKSxfbis9MyxVdD4+PjEpZm9yKFV0Pj4+MT09MT8oX3I9OSxacj01KTooX249T2kocG4sX24pLF9yPUxpLFpyPXhy'@; put 'KSwhRG4mJlVuPFNuKzMyNzY3JiYoVW49KG5uPUpsKG5uLFNuKzMyNzY3KSkubGVuZ3RoKTs7KXt2YXIgdGk9aHIocG4sX24sX3IpLEppPVV0Pj4+MT09MT9DbFt0aV06Wm5bdGldO2lmKF9uKz0xNSZKaSwoSmk+Pj49NCk+Pj44JjI1NSl7aWYoMjU2PT1KaSlicmVhazt2YXIgVWk9KEppLT0y'@; put 'NTcpPDg/MDpKaS00Pj4yO1VpPjUmJihVaT0wKTt2YXIgbnM9U24rQ2lbSmldO1VpPjAmJihucys9aHIocG4sX24sVWkpLF9uKz1VaSksdGk9aHIocG4sX24sWnIpLF9uKz0xNSYoSmk9VXQ+Pj4xPT0xP2xuW3RpXTpNaVt0aV0pO3ZhciBVYT0oSmk+Pj49NCk8ND8wOkppLTI+PjEseWE9d2Fb'@; put 'SmldO2ZvcihVYT4wJiYoeWErPWhyKHBuLF9uLFVhKSxfbis9VWEpLCFEbiYmVW48bnMmJihVbj0obm49Smwobm4sbnMpKS5sZW5ndGgpO1NuPG5zOylubltTbl09bm5bU24teWFdLCsrU259ZWxzZSBubltTbisrXT1KaX1lbHNlezcmX24mJihfbis9OC0oNyZfbikpO3ZhciBpaT1wbltfbj4+'@; put 'PjNdfHBuWzErKF9uPj4+MyldPDw4O2lmKF9uKz0zMiwhRG4mJlVuPFNuK2lpJiYoVW49KG5uPUpsKG5uLFNuK2lpKSkubGVuZ3RoKSwiZnVuY3Rpb24iPT10eXBlb2YgcG4uY29weSlwbi5jb3B5KG5uLFNuLF9uPj4+MywoX24+Pj4zKStpaSksU24rPWlpLF9uKz04KmlpO2Vsc2UgZm9yKDtp'@; put 'aS0tID4wOylubltTbisrXT1wbltfbj4+PjNdLF9uKz04fXJldHVybltEbj9ubjpubi5zbGljZSgwLFNuKSxfbis3Pj4+M119KHBuLnNsaWNlKHBuLmx8fDApLERuKTtyZXR1cm4gcG4ubCs9VXRbMV0sVXRbMF19ZnVuY3Rpb24gZ2EocG4sRG4pe2lmKCFwbil0aHJvdyBuZXcgRXJyb3IoRG4p'@; put 'O3R5cGVvZiBjb25zb2xlPCJ1IiYmY29uc29sZS5lcnJvcihEbil9ZnVuY3Rpb24ga2kocG4sRG4pe3ZhciBfbj1wbjtnbihfbiwwKTt2YXIgU249e0ZpbGVJbmRleDpbXSxGdWxsUGF0aHM6W119O0NuKFNuLHtyb290OkRuLnJvb3R9KTtmb3IodmFyIFVuPV9uLmxlbmd0aC00Oyg4MCE9X25b'@; put 'VW5dfHw3NSE9X25bVW4rMV18fDUhPV9uW1VuKzJdfHw2IT1fbltVbiszXSkmJlVuPj0wOyktLVVuO19uLmw9VW4rNCxfbi5sKz00O3ZhciBfcj1fbi5yZWFkX3NoaWZ0KDIpO19uLmwrPTY7dmFyIFpyPV9uLnJlYWRfc2hpZnQoNCk7Zm9yKF9uLmw9WnIsVW49MDtVbjxfcjsrK1VuKXtfbi5s'@; put 'Kz0yMDt2YXIgaWk9X24ucmVhZF9zaGlmdCg0KSx0aT1fbi5yZWFkX3NoaWZ0KDQpLEppPV9uLnJlYWRfc2hpZnQoMiksVWk9X24ucmVhZF9zaGlmdCgyKSxucz1fbi5yZWFkX3NoaWZ0KDIpO19uLmwrPTg7dmFyIFVhPV9uLnJlYWRfc2hpZnQoNCkseWE9cGUoX24uc2xpY2UoX24ubCtKaSxf'@; put 'bi5sK0ppK1VpKSk7X24ubCs9SmkrVWkrbnM7dmFyIEFzPV9uLmw7X24ubD1VYSs0LG9vKF9uLGlpLHRpLFNuLHlhKSxfbi5sPUFzfXJldHVybiBTbn1mdW5jdGlvbiBvbyhwbixEbixfbixVdCxubil7cG4ubCs9Mjt2YXIgU249cG4ucmVhZF9zaGlmdCgyKSxVbj1wbi5yZWFkX3NoaWZ0KDIp'@; put 'LF9yPWZ1bmN0aW9uIG1lKHBuKXt2YXIgRG49NjU1MzUmcG4ucmVhZF9zaGlmdCgyKSxfbj02NTUzNSZwbi5yZWFkX3NoaWZ0KDIpLFV0PW5ldyBEYXRlLG5uPTMxJl9uLFNuPTE1Jihfbj4+Pj01KTtfbj4+Pj00LFV0LnNldE1pbGxpc2Vjb25kcygwKSxVdC5zZXRGdWxsWWVhcihfbisxOTgw'@; put 'KSxVdC5zZXRNb250aChTbi0xKSxVdC5zZXREYXRlKG5uKTt2YXIgVW49MzEmRG4sX3I9NjMmKERuPj4+PTUpO3JldHVybiBVdC5zZXRIb3VycyhEbj4+Pj02KSxVdC5zZXRNaW51dGVzKF9yKSxVdC5zZXRTZWNvbmRzKFVuPDwxKSxVdH0ocG4pO2lmKDgyNTcmU24pdGhyb3cgbmV3IEVycm9y'@; put 'KCJVbnN1cHBvcnRlZCBaSVAgZW5jcnlwdGlvbiIpO2Zvcih2YXIgWnI9cG4ucmVhZF9zaGlmdCg0KSxpaT1wbi5yZWFkX3NoaWZ0KDQpLHRpPXBuLnJlYWRfc2hpZnQoNCksSmk9cG4ucmVhZF9zaGlmdCgyKSxVaT1wbi5yZWFkX3NoaWZ0KDIpLG5zPSIiLFVhPTA7VWE8Smk7KytVYSlucys9'@; put 'U3RyaW5nLmZyb21DaGFyQ29kZShwbltwbi5sKytdKTtpZihVaSl7dmFyIHlhPXBlKHBuLnNsaWNlKHBuLmwscG4ubCtVaSkpOyh5YVsyMTU4OV18fHt9KS5tdCYmKF9yPXlhWzIxNTg5XS5tdCksKChubnx8e30pWzIxNTg5XXx8e30pLm10JiYoX3I9bm5bMjE1ODldLm10KX1wbi5sKz1VaTt2'@; put 'YXIgQXM9cG4uc2xpY2UocG4ubCxwbi5sK2lpKTtzd2l0Y2goVW4pe2Nhc2UgODpBcz1mdW5jdGlvbiBIbihwbixEbil7aWYoIWpyKXJldHVybiBGaShwbixEbik7dmFyIFV0PW5ldygwLGpyLkluZmxhdGVSYXcpLG5uPVV0Ll9wcm9jZXNzQ2h1bmsocG4uc2xpY2UocG4ubCksVXQuX2Zpbmlz'@; put 'aEZsdXNoRmxhZyk7cmV0dXJuIHBuLmwrPVV0LmJ5dGVzUmVhZCxubn0ocG4sdGkpO2JyZWFrO2Nhc2UgMDpicmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgWklQIENvbXByZXNzaW9uIG1ldGhvZCAiK1VuKX12YXIgTW89ITE7OCZTbiYmKDEzNDY5NTc2MD09KFpy'@; put 'PXBuLnJlYWRfc2hpZnQoNCkpJiYoWnI9cG4ucmVhZF9zaGlmdCg0KSxNbz0hMCksaWk9cG4ucmVhZF9zaGlmdCg0KSx0aT1wbi5yZWFkX3NoaWZ0KDQpKSxpaSE9RG4mJmdhKE1vLCJCYWQgY29tcHJlc3NlZCBzaXplOiAiK0RuKyIgIT0gIitpaSksdGkhPV9uJiZnYShNbywiQmFkIHVuY29t'@; put 'cHJlc3NlZCBzaXplOiAiK19uKyIgIT0gIit0aSk7dmFyIG4xPXhlLmJ1ZihBcywwKTsoMHxacikhPSgwfG4xKSYmZ2EoTW8sIkJhZCBDUkMzMiBjaGVja3N1bTogIitacisiICE9ICIrbjEpLG11KFV0LG5zLEFzLHt1bnNhZmU6ITAsbXQ6X3J9KX1mdW5jdGlvbiBtdShwbixEbixfbixVdCl7'@; put 'dmFyIG5uPVV0JiZVdC51bnNhZmU7bm58fENuKHBuKTt2YXIgU249IW5uJiZ2ZS5maW5kKHBuLERuKTtpZighU24pe3ZhciBVbj1wbi5GdWxsUGF0aHNbMF07RG4uc2xpY2UoMCxVbi5sZW5ndGgpPT1Vbj9Vbj1EbjooIi8iIT1Vbi5zbGljZSgtMSkmJihVbis9Ii8iKSxVbj0oVW4rRG4pLnJl'@; put 'cGxhY2UoIi8vIiwiLyIpKSxTbj17bmFtZTplZShEbiksdHlwZToyfSxwbi5GaWxlSW5kZXgucHVzaChTbikscG4uRnVsbFBhdGhzLnB1c2goVW4pLG5ufHx2ZS51dGlscy5jZmJfZ2MocG4pfXJldHVybiBTbi5jb250ZW50PV9uLFNuLnNpemU9X24/X24ubGVuZ3RoOjAsVXQmJihVdC5DTFNJ'@; put 'RCYmKFNuLmNsc2lkPVV0LkNMU0lEKSxVdC5tdCYmKFNuLm10PVV0Lm10KSxVdC5jdCYmKFNuLmN0PVV0LmN0KSksU259cmV0dXJuIE8uZmluZD1mdW5jdGlvbiBwcihwbixEbil7dmFyIF9uPXBuLkZ1bGxQYXRocy5tYXAoZnVuY3Rpb24oWnIpe3JldHVybiBaci50b1VwcGVyQ2FzZSgpfSks'@; put 'VXQ9X24ubWFwKGZ1bmN0aW9uKFpyKXt2YXIgaWk9WnIuc3BsaXQoIi8iKTtyZXR1cm4gaWlbaWkubGVuZ3RoLSgiLyI9PVpyLnNsaWNlKC0xKT8yOjEpXX0pLG5uPSExOzQ3PT09RG4uY2hhckNvZGVBdCgwKT8obm49ITAsRG49X25bMF0uc2xpY2UoMCwtMSkrRG4pOm5uPS0xIT09RG4uaW5k'@; put 'ZXhPZigiLyIpO3ZhciBTbj1Ebi50b1VwcGVyQ2FzZSgpLFVuPSEwPT09bm4/X24uaW5kZXhPZihTbik6VXQuaW5kZXhPZihTbik7aWYoLTEhPT1VbilyZXR1cm4gcG4uRmlsZUluZGV4W1VuXTt2YXIgX3I9IVNuLm1hdGNoKG0pO2ZvcihTbj1Tbi5yZXBsYWNlKEUsIiIpLF9yJiYoU249U24u'@; put 'cmVwbGFjZShtLCIhIikpLFVuPTA7VW48X24ubGVuZ3RoOysrVW4paWYoKF9yP19uW1VuXS5yZXBsYWNlKG0sIiEiKTpfbltVbl0pLnJlcGxhY2UoRSwiIik9PVNufHwoX3I/VXRbVW5dLnJlcGxhY2UobSwiISIpOlV0W1VuXSkucmVwbGFjZShFLCIiKT09U24pcmV0dXJuIHBuLkZpbGVJbmRl'@; put 'eFtVbl07cmV0dXJuIG51bGx9LE8ucmVhZD1mdW5jdGlvbiBzcihwbixEbil7c3dpdGNoKERuJiZEbi50eXBlfHwiYmFzZTY0Iil7Y2FzZSJmaWxlIjpyZXR1cm4gZnVuY3Rpb24gVG4ocG4sRG4pe3JldHVybiBQZSgpLFZlKGJlLnJlYWRGaWxlU3luYyhwbiksRG4pfShwbixEbik7Y2FzZSJi'@; put 'YXNlNjQiOnJldHVybiBWZSh5KF9lLmRlY29kZShwbikpLERuKTtjYXNlImJpbmFyeSI6cmV0dXJuIFZlKHkocG4pLERuKX1yZXR1cm4gVmUocG4sRG4pfSxPLnBhcnNlPVZlLE8ud3JpdGU9ZnVuY3Rpb24gQm4ocG4sRG4pe3ZhciBfbj1qbihwbixEbik7c3dpdGNoKERuJiZEbi50eXBlKXtj'@; put 'YXNlImZpbGUiOnJldHVybiBQZSgpLGJlLndyaXRlRmlsZVN5bmMoRG4uZmlsZW5hbWUsX24pLF9uO2Nhc2UiYmluYXJ5IjpyZXR1cm4gUnIoX24pO2Nhc2UiYmFzZTY0IjpyZXR1cm4gX2UuZW5jb2RlKFJyKF9uKSl9cmV0dXJuIF9ufSxPLndyaXRlRmlsZT1mdW5jdGlvbiBSaShwbixEbixf'@; put 'bil7UGUoKTt2YXIgVXQ9am4ocG4sX24pO2JlLndyaXRlRmlsZVN5bmMoRG4sVXQpfSxPLnV0aWxzPXtjZmJfbmV3OmZ1bmN0aW9uIFNsKHBuKXt2YXIgRG49e307cmV0dXJuIENuKERuLHBuKSxEbn0sY2ZiX2FkZDptdSxjZmJfZGVsOmZ1bmN0aW9uIE1sKHBuLERuKXtDbihwbik7dmFyIF9u'@; put 'PXZlLmZpbmQocG4sRG4pO2lmKF9uKWZvcih2YXIgVXQ9MDtVdDxwbi5GaWxlSW5kZXgubGVuZ3RoOysrVXQpaWYocG4uRmlsZUluZGV4W1V0XT09X24pcmV0dXJuIHBuLkZpbGVJbmRleC5zcGxpY2UoVXQsMSkscG4uRnVsbFBhdGhzLnNwbGljZShVdCwxKSwhMDtyZXR1cm4hMX0sY2ZiX21v'@; put 'djpmdW5jdGlvbiBqZihwbixEbixfbil7Q24ocG4pO3ZhciBVdD12ZS5maW5kKHBuLERuKTtpZihVdClmb3IodmFyIG5uPTA7bm48cG4uRmlsZUluZGV4Lmxlbmd0aDsrK25uKWlmKHBuLkZpbGVJbmRleFtubl09PVV0KXJldHVybiBwbi5GaWxlSW5kZXhbbm5dLm5hbWU9ZWUoX24pLHBuLkZ1'@; put 'bGxQYXRoc1tubl09X24sITA7cmV0dXJuITF9LGNmYl9nYzpmdW5jdGlvbiBfZChwbil7ZXIocG4sITApfSxSZWFkU2hpZnQ6TmwsQ2hlY2tGaWVsZDp5bixwcmVwX2Jsb2I6Z24sYmNvbmNhdDpVLHVzZV96bGliOmZ1bmN0aW9uIHdyKHBuKXt0cnl7dmFyIF9uPW5ldygwLHBuLkluZmxhdGVS'@; put 'YXcpO2lmKF9uLl9wcm9jZXNzQ2h1bmsobmV3IFVpbnQ4QXJyYXkoWzMsMF0pLF9uLl9maW5pc2hGbHVzaEZsYWcpLCFfbi5ieXRlc1JlYWQpdGhyb3cgbmV3IEVycm9yKCJ6bGliIGRvZXMgbm90IGV4cG9zZSBieXRlc1JlYWQiKTtqcj1wbn1jYXRjaChVdCl7Y29uc29sZS5lcnJvcigiY2Fu'@; put 'bm90IHVzZSBuYXRpdmUgemxpYjogIisoVXQubWVzc2FnZXx8VXQpKX19LF9kZWZsYXRlUmF3OlpsLF9pbmZsYXRlUmF3OkZpLGNvbnN0czpsYX0sT30oKTt0cnl7cWU9Yig4MzMzNyl9Y2F0Y2h7fWZ1bmN0aW9uIGplKFMpe3JldHVybiJzdHJpbmciPT10eXBlb2YgUz94KFMpOkFycmF5Lmlz'@; put 'QXJyYXkoUyk/ZnVuY3Rpb24gVChTKXtpZih0eXBlb2YgVWludDhBcnJheT4idSIpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCIpO3JldHVybiBuZXcgVWludDhBcnJheShTKX0oUyk6U31mdW5jdGlvbiBBZShTLE8sayl7aWYodHlwZW9mIHFlPCJ1IiYmcWUud3JpdGVGaWxlU3luYyly'@; put 'ZXR1cm4gaz9xZS53cml0ZUZpbGVTeW5jKFMsTyxrKTpxZS53cml0ZUZpbGVTeW5jKFMsTyk7dmFyIEs9InV0ZjgiPT1rP0hvKE8pOk87aWYodHlwZW9mIElFX1NhdmVGaWxlPCJ1IilyZXR1cm4gSUVfU2F2ZUZpbGUoSyxTKTtpZih0eXBlb2YgQmxvYjwidSIpe3ZhciBlZT1uZXcgQmxvYihb'@; put 'amUoSyldLHt0eXBlOiJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0ifSk7aWYodHlwZW9mIG5hdmlnYXRvcjwidSImJm5hdmlnYXRvci5tc1NhdmVCbG9iKXJldHVybiBuYXZpZ2F0b3IubXNTYXZlQmxvYihlZSxTKTtpZih0eXBlb2Ygc2F2ZUFzPCJ1IilyZXR1cm4gc2F2ZUFzKGVlLFMpO2lm'@; put 'KHR5cGVvZiBVUkw8InUiJiZ0eXBlb2YgZG9jdW1lbnQ8InUiJiZkb2N1bWVudC5jcmVhdGVFbGVtZW50JiZVUkwuY3JlYXRlT2JqZWN0VVJMKXt2YXIgb2U9VVJMLmNyZWF0ZU9iamVjdFVSTChlZSk7aWYoIm9iamVjdCI9PXR5cGVvZiBjaHJvbWUmJiJmdW5jdGlvbiI9PXR5cGVvZihjaHJv'@; put 'bWUuZG93bmxvYWRzfHx7fSkuZG93bmxvYWQpcmV0dXJuIFVSTC5yZXZva2VPYmplY3RVUkwmJnR5cGVvZiBzZXRUaW1lb3V0PCJ1IiYmc2V0VGltZW91dChmdW5jdGlvbigpe1VSTC5yZXZva2VPYmplY3RVUkwob2UpfSw2ZTQpLGNocm9tZS5kb3dubG9hZHMuZG93bmxvYWQoe3VybDpvZSxm'@; put 'aWxlbmFtZTpTLHNhdmVBczohMH0pO3ZhciBtZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7aWYobnVsbCE9bWUuZG93bmxvYWQpcmV0dXJuIG1lLmRvd25sb2FkPVMsbWUuaHJlZj1vZSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG1lKSxtZS5jbGljaygpLGRvY3VtZW50LmJvZHku'@; put 'cmVtb3ZlQ2hpbGQobWUpLFVSTC5yZXZva2VPYmplY3RVUkwmJnR5cGVvZiBzZXRUaW1lb3V0PCJ1IiYmc2V0VGltZW91dChmdW5jdGlvbigpe1VSTC5yZXZva2VPYmplY3RVUkwob2UpfSw2ZTQpLG9lfX1pZih0eXBlb2YgJDwidSImJnR5cGVvZiBGaWxlPCJ1IiYmdHlwZW9mIEZvbGRlcjwi'@; put 'dSIpdHJ5e3ZhciBwZT1GaWxlKFMpO3JldHVybiBwZS5vcGVuKCJ3IikscGUuZW5jb2Rpbmc9ImJpbmFyeSIsQXJyYXkuaXNBcnJheShPKSYmKE89QyhPKSkscGUud3JpdGUoTykscGUuY2xvc2UoKSxPfWNhdGNoKGJlKXtpZighYmUubWVzc2FnZXx8IWJlLm1lc3NhZ2UubWF0Y2goL29uc3Ry'@; put 'dWN0LykpdGhyb3cgYmV9dGhyb3cgbmV3IEVycm9yKCJjYW5ub3Qgc2F2ZSBmaWxlICIrUyl9ZnVuY3Rpb24gUmUoUyl7Zm9yKHZhciBPPU9iamVjdC5rZXlzKFMpLGs9W10sSz0wO0s8Ty5sZW5ndGg7KytLKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChTLE9bS10pJiZr'@; put 'LnB1c2goT1tLXSk7cmV0dXJuIGt9ZnVuY3Rpb24gSWUoUyxPKXtmb3IodmFyIGs9W10sSz1SZShTKSxlZT0wO2VlIT09Sy5sZW5ndGg7KytlZSludWxsPT1rW1NbS1tlZV1dW09dXSYmKGtbU1tLW2VlXV1bT11dPUtbZWVdKTtyZXR1cm4ga31mdW5jdGlvbiBIZShTKXtmb3IodmFyIE89W10s'@; put 'az1SZShTKSxLPTA7SyE9PWsubGVuZ3RoOysrSylPW1Nba1tLXV1dPWtbS107cmV0dXJuIE99ZnVuY3Rpb24gRGUoUyl7Zm9yKHZhciBPPVtdLGs9UmUoUyksSz0wO0shPT1rLmxlbmd0aDsrK0spT1tTW2tbS11dXT1wYXJzZUludChrW0tdLDEwKTtyZXR1cm4gT312YXIgSmUsb24sX3Q9bmV3'@; put 'IERhdGUoMTg5OSwxMSwzMCwwLDAsMCksbnQ9MDtmdW5jdGlvbiB5dCgpe250PV90LmdldFRpbWUoKSs2ZTQqKChuZXcgRGF0ZSkuZ2V0VGltZXpvbmVPZmZzZXQoKS1fdC5nZXRUaW1lem9uZU9mZnNldCgpKSxKZT1mdW5jdGlvbihPLGspe3ZhciBLPU8uZ2V0VGltZSgpO3JldHVybiBrJiYo'@; put 'Sy09MTI2MzE2OGU1KSwoSy1udCkvODY0ZTV9LG9uPWZ1bmN0aW9uKE8pe3ZhciBrPW5ldyBEYXRlO3JldHVybiBrLnNldFRpbWUoMjQqTyo2MCo2MCoxZTMrbnQpLGt9fWZ1bmN0aW9uIHJ0KFMpe3ZhciBPPTAsaz0wLEs9ITEsZWU9Uy5tYXRjaCgvUChbMC05XC5dK1kpPyhbMC05XC5dK00p'@; put 'PyhbMC05XC5dK0QpP1QoWzAtOVwuXStIKT8oWzAtOVwuXStNKT8oWzAtOVwuXStTKT8vKTtpZighZWUpdGhyb3cgbmV3IEVycm9yKCJ8IitTKyJ8IGlzIG5vdCBhbiBJU084NjAxIER1cmF0aW9uIik7Zm9yKHZhciBvZT0xO29lIT1lZS5sZW5ndGg7KytvZSlpZihlZVtvZV0pe3N3aXRjaChr'@; put 'PTEsb2U+MyYmKEs9ITApLGVlW29lXS5zbGljZShlZVtvZV0ubGVuZ3RoLTEpKXtjYXNlIlkiOnRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgSVNPIER1cmF0aW9uIEZpZWxkOiAiK2VlW29lXS5zbGljZShlZVtvZV0ubGVuZ3RoLTEpKTtjYXNlIkQiOmsqPTI0O2Nhc2UiSCI6ayo9NjA7'@; put 'Y2FzZSJNIjppZighSyl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIElTTyBEdXJhdGlvbiBGaWVsZDogTSIpO2sqPTYwfU8rPWsqcGFyc2VJbnQoZWVbb2VdLDEwKX1yZXR1cm4gT315dCgpO3ZhciBLZT1uZXcgRGF0ZSgiMjAxNy0wMi0xOVQxOTowNjowOS4wMDBaIik7aXNOYU4oS2Uu'@; put 'Z2V0RnVsbFllYXIoKSkmJihLZT1uZXcgRGF0ZSgiMi8xOS8xNyIpKTt2YXIgdHQ9MjAxNz09S2UuZ2V0RnVsbFllYXIoKTtmdW5jdGlvbiBOZShTLE8pe3ZhciBrPW5ldyBEYXRlKFMpO2lmKHR0KXJldHVybiBPPjA/ay5zZXRUaW1lKGsuZ2V0VGltZSgpKzYwKmsuZ2V0VGltZXpvbmVPZmZz'@; put 'ZXQoKSoxZTMpOk88MCYmay5zZXRUaW1lKGsuZ2V0VGltZSgpLTYwKmsuZ2V0VGltZXpvbmVPZmZzZXQoKSoxZTMpLGs7aWYoUyBpbnN0YW5jZW9mIERhdGUpcmV0dXJuIFM7aWYoMTkxNz09S2UuZ2V0RnVsbFllYXIoKSYmIWlzTmFOKGsuZ2V0RnVsbFllYXIoKSkpe3ZhciBLPWsuZ2V0RnVs'@; put 'bFllYXIoKTtyZXR1cm4gUy5pbmRleE9mKCIiK0spPi0xfHxrLnNldEZ1bGxZZWFyKGsuZ2V0RnVsbFllYXIoKSsxMDApLGt9dmFyIGVlPVMubWF0Y2goL1xkKy9nKXx8WyIyMDE3IiwiMiIsIjE5IiwiMCIsIjAiLCIwIl0sb2U9bmV3IERhdGUoK2VlWzBdLCtlZVsxXS0xLCtlZVsyXSwrZWVb'@; put 'M118fDAsK2VlWzRdfHwwLCtlZVs1XXx8MCk7cmV0dXJuIFMuaW5kZXhPZigiWiIpPi0xJiYob2U9bmV3IERhdGUob2UuZ2V0VGltZSgpLTYwKm9lLmdldFRpbWV6b25lT2Zmc2V0KCkqMWUzKSksb2V9ZnVuY3Rpb24gdXQoUyl7Zm9yKHZhciBPPSIiLGs9MDtrIT1TLmxlbmd0aDsrK2spTys9'@; put 'U3RyaW5nLmZyb21DaGFyQ29kZShTW2tdKTtyZXR1cm4gT31mdW5jdGlvbiBKdChTKXtpZigib2JqZWN0IiE9dHlwZW9mIFN8fG51bGw9PVMpcmV0dXJuIFM7aWYoUyBpbnN0YW5jZW9mIERhdGUpcmV0dXJuIG5ldyBEYXRlKFMuZ2V0VGltZSgpKTtpZihBcnJheS5pc0FycmF5KFMpKXJldHVy'@; put 'biBmdW5jdGlvbiBMdChTKXtmb3IodmFyIE89W10saz0wO2s8Uy5sZW5ndGg7KytrKXt2YXIgSz1TW2tdOyJvYmplY3QiPT10eXBlb2YgSz9PW2tdPUp0KEspOm51bGwhPUsmJihPW2tdPUspfXJldHVybiBPfShTKTt2YXIgTz17fTtmb3IodmFyIGsgaW4gUylPYmplY3QucHJvdG90eXBlLmhh'@; put 'c093blByb3BlcnR5LmNhbGwoUyxrKSYmKE9ba109SnQoU1trXSkpO3JldHVybiBPfWZ1bmN0aW9uIFB0KFMsTyl7aWYoIm9iamVjdCIhPXR5cGVvZiBPfHxudWxsPT1PKXJldHVybiBTO2Zvcih2YXIgayBpbiBPKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChPLGspJiYo'@; put 'U1trXT1KdChPW2tdKSk7cmV0dXJuIFN9ZnVuY3Rpb24gb2koUyxPKXtmb3IodmFyIGs9IiI7ay5sZW5ndGg8Tzspays9UztyZXR1cm4ga31mdW5jdGlvbiBlbihTKXt2YXIgTz1OdW1iZXIoUyk7aWYoIWlzTmFOKE8pKXJldHVybiBpc0Zpbml0ZShPKT9POk5hTjtpZighL1xkLy50ZXN0KFMp'@; put 'KXJldHVybiBPO3ZhciBrPTEsSz1TLnJlcGxhY2UoLyhbXGRdKSwoW1xkXSkvZywiJDEkMiIpLnJlcGxhY2UoL1skXS9nLCIiKS5yZXBsYWNlKC9bJV0vZyxmdW5jdGlvbigpe3JldHVybiBrKj0xMDAsIiJ9KTtyZXR1cm4gaXNOYU4oTz1OdW1iZXIoSykpJiYoSz1LLnJlcGxhY2UoL1soXSgu'@; put 'KilbKV0vLGZ1bmN0aW9uKGVlLG9lKXtyZXR1cm4gaz0tayxvZX0pLGlzTmFOKE89TnVtYmVyKEspKSk/TzpPL2t9ZnVuY3Rpb24gc24oUyl7dmFyIE89bmV3IERhdGUoUyksaz1uZXcgRGF0ZShOYU4pLEs9Ty5nZXRZZWFyKCksZWU9Ty5nZXRNb250aCgpLG9lPU8uZ2V0RGF0ZSgpO3JldHVy'@; put 'biBpc05hTihvZSl8fEs8MHx8Sz44MDk5P2s6KGVlPjB8fG9lPjEpJiYxMDEhPUt8fFMudG9Mb3dlckNhc2UoKS5tYXRjaCgvamFufGZlYnxtYXJ8YXByfG1heXxqdW58anVsfGF1Z3xzZXB8b2N0fG5vdnxkZWMvKT9POlMubWF0Y2goL1teLTAtOTosXC9cXF0vKT9rOk99ZnVuY3Rpb24gSWko'@; put 'UyxPKXtpZihPJiZPLnJhdylyZXR1cm57dDoicyIsdjpTfTtpZighUylyZXR1cm57dDoieiJ9O2lmKCJUUlVFIj09PVMpcmV0dXJue3Q6ImIiLHY6ITB9O2lmKCJGQUxTRSI9PT1TKXJldHVybnt0OiJiIix2OiExfTt2YXIgaz0iIixLPU51bWJlcihTKTtpZihpc0Zpbml0ZShLKSlyZXR1cm57'@; put 'dDoibiIsdjpLfTtpZihpc05hTihLKSYmL1xkLy50ZXN0KFMpKXt2YXIgZWU9MSxvZT1TLnJlcGxhY2UoLyhbXGRdKSwoW1xkXSkvZyxmdW5jdGlvbihldCxjdCxUdCl7cmV0dXJuIGt8fChrPSIjLCMjMCIpLGN0K1R0fSkucmVwbGFjZSgvWyRdL2csIiIpLnJlcGxhY2UoL1wuXGQqLyxmdW5j'@; put 'dGlvbihldCl7a3x8KGs9IjAiKSxrKz0iLiI7Zm9yKHZhciBjdD0yO2N0PD1ldC5sZW5ndGg7KytjdClrKz0iMCI7cmV0dXJuIGV0fSkucmVwbGFjZSgvWyVdL2csZnVuY3Rpb24oKXtyZXR1cm4gZWUqPTEwMCxrfHwoaz0iMCIpLGsrPSIlIiwiIn0pO2lmKCFpc05hTihLPU51bWJlcihvZSkp'@; put 'KXJldHVybnt0OiJuIix2OksvZWUsejprfTtpZihvZT1vZS5yZXBsYWNlKC9bKF0oLiopWyldLyxmdW5jdGlvbihldCxjdCl7cmV0dXJuIGVlPS1lZSxjdH0pLCFpc05hTihLPU51bWJlcihvZSkpKXJldHVybnt0OiJuIix2OksvZWUsejooa3x8IjAiKSsiXyk7KCIrKGt8fCIwIikrIik7QCJ9'@; put 'fWU6aWYoIU98fCFPLnJhd0RhdGVzKXt2YXIgbWU9TyYmTy5jZWxsRGF0ZXMscGU9bmV3IERhdGUoUyksUGU9cGUuZ2V0WWVhcigpLFZlPXBlLmdldE1vbnRoKCksWWU9cGUuZ2V0RGF0ZSgpO2lmKGlzTmFOKFllKXx8UGU8MHx8UGU+ODA5OSlicmVhayBlO2lmKChWZT4wfHxZZT4xKSYmMTAx'@; put 'IT1QZSlyZXR1cm57dDptZT8iZCI6Im4iLHY6bWU/cGU6SmUocGUpLHo6Ty5kYXRlTkZ8fEEuX3RhYmxlWzE0XX07aWYoUy50b0xvd2VyQ2FzZSgpLm1hdGNoKC9qYW58ZmVifG1hcnxhcHJ8bWF5fGp1bnxqdWx8YXVnfHNlcHxvY3R8bm92fGRlYy8pKXJldHVybnt0Om1lPyJkIjoibiIsdjpt'@; put 'ZT9wZTpKZShwZSksejpPLmRhdGVORnx8QS5fdGFibGVbMTRdfTtpZihTLm1hdGNoKC9bXi0wLTk6LFwvXFxdLykpYnJlYWsgZTtyZXR1cm4gcGV9cmV0dXJue3Q6InMiLHY6U319dmFyIGp0LGRuPTU9PSJhYmFjYWJhIi5zcGxpdCgvKDo/YikvaSkubGVuZ3RoO2Z1bmN0aW9uIFp0KFMpe3Jl'@; put 'dHVybiBudWxsIT1TJiYhU31mdW5jdGlvbiBrdChTKXtyZXR1cm4gUy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStTLnNsaWNlKDEpfWZ1bmN0aW9uIExuKFMpe3JldHVybiBTP1MuZGF0YT9xKFMuZGF0YSk6Uy5hc05vZGVCdWZmZXImJlRlP3EoUy5hc05vZGVCdWZmZXIoKS50b1N0cmluZygi'@; put 'YmluYXJ5IikpOlMuYXNCaW5hcnk/cShTLmFzQmluYXJ5KCkpOlMuX2RhdGEmJlMuX2RhdGEuZ2V0Q29udGVudD9xKHV0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKFMuX2RhdGEuZ2V0Q29udGVudCgpLDApKSk6Uy5jb250ZW50JiZTLnR5cGU/cSh1dChTLmNvbnRlbnQpKTpudWxsOm51'@; put 'bGx9ZnVuY3Rpb24gb3QoUyl7aWYoIVMpcmV0dXJuIG51bGw7aWYoUy5kYXRhKXJldHVybiBaKFMuZGF0YSk7aWYoUy5hc05vZGVCdWZmZXImJlRlKXJldHVybiBTLmFzTm9kZUJ1ZmZlcigpO2lmKFMuX2RhdGEmJlMuX2RhdGEuZ2V0Q29udGVudCl7dmFyIE89Uy5fZGF0YS5nZXRDb250ZW50'@; put 'KCk7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBPP1ooTyk6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoTyl9cmV0dXJuIFMuY29udGVudCYmUy50eXBlP1MuY29udGVudDpudWxsfWZ1bmN0aW9uIG5pKFMsTyl7Zm9yKHZhciBrPVMuRnVsbFBhdGhzfHxSZShTLmZpbGVzKSxLPU8udG9Mb3dl'@; put 'ckNhc2UoKSxlZT1LLnJlcGxhY2UoL1wvL2csIlxcIiksb2U9MDtvZTxrLmxlbmd0aDsrK29lKXt2YXIgbWU9a1tvZV0udG9Mb3dlckNhc2UoKTtpZihLPT1tZXx8ZWU9PW1lKXJldHVybiBTLmZpbGVzW2tbb2VdXX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBXZShTLE8pe3ZhciBrPW5pKFMsTyk7'@; put 'aWYobnVsbD09ayl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIGZpbGUgIitPKyIgaW4gemlwIik7cmV0dXJuIGt9ZnVuY3Rpb24gQXQoUyxPLGspe2lmKCFrKXJldHVybiBmdW5jdGlvbiB6dChTKXtyZXR1cm4gUyYmIi5iaW4iPT09Uy5uYW1lLnNsaWNlKC00KT9vdChTKTpMbihTKX0o'@; put 'V2UoUyxPKSk7aWYoIU8pcmV0dXJuIG51bGw7dHJ5e3JldHVybiBBdChTLE8pfWNhdGNoe3JldHVybiBudWxsfX1mdW5jdGlvbiBpcihTLE8sayl7aWYoIWspcmV0dXJuIExuKFdlKFMsTykpO2lmKCFPKXJldHVybiBudWxsO3RyeXtyZXR1cm4gaXIoUyxPKX1jYXRjaHtyZXR1cm4gbnVsbH19'@; put 'ZnVuY3Rpb24gaHQoUyxPLGspe2lmKCFrKXJldHVybiBvdChXZShTLE8pKTtpZighTylyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIGh0KFMsTyl9Y2F0Y2h7cmV0dXJuIG51bGx9fWZ1bmN0aW9uIHpuKFMsTyxrKXtTLkZ1bGxQYXRocz92ZS51dGlscy5jZmJfYWRkKFMsTyxrKTpTLmZpbGUoTyxr'@; put 'KX1mdW5jdGlvbiBkaSgpe3JldHVybiBqdD9uZXcganQ6dmUudXRpbHMuY2ZiX25ldygpfWZ1bmN0aW9uIGNuKFMsTyl7dmFyIGs7aWYoanQpc3dpdGNoKE8udHlwZSl7Y2FzZSJiYXNlNjQiOms9bmV3IGp0KFMse2Jhc2U2NDohMH0pO2JyZWFrO2Nhc2UiYmluYXJ5IjpjYXNlImFycmF5Ijpr'@; put 'PW5ldyBqdChTLHtiYXNlNjQ6ITF9KTticmVhaztjYXNlImJ1ZmZlciI6az1uZXcganQoUyk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCB0eXBlICIrTy50eXBlKX1lbHNlIHN3aXRjaChPLnR5cGUpe2Nhc2UiYmFzZTY0IjprPXZlLnJlYWQoUyx7dHlwZToi'@; put 'YmFzZTY0In0pO2JyZWFrO2Nhc2UiYmluYXJ5IjprPXZlLnJlYWQoUyx7dHlwZToiYmluYXJ5In0pO2JyZWFrO2Nhc2UiYnVmZmVyIjpjYXNlImFycmF5IjprPXZlLnJlYWQoUyx7dHlwZToiYnVmZmVyIn0pO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgdHlw'@; put 'ZSAiK08udHlwZSl9cmV0dXJuIGt9ZnVuY3Rpb24gZm4oUyxPKXtpZigiLyI9PVMuY2hhckF0KDApKXJldHVybiBTLnNsaWNlKDEpO3ZhciBrPU8uc3BsaXQoIi8iKTsiLyIhPU8uc2xpY2UoLTEpJiZrLnBvcCgpO2Zvcih2YXIgSz1TLnNwbGl0KCIvIik7MCE9PUsubGVuZ3RoOyl7dmFyIGVl'@; put 'PUsuc2hpZnQoKTsiLi4iPT09ZWU/ay5wb3AoKToiLiIhPT1lZSYmay5wdXNoKGVlKX1yZXR1cm4gay5qb2luKCIvIil9dHlwZW9mIEpTWmlwU3luYzwidSImJihqdD1KU1ppcFN5bmMpLGNlLmV4cG9ydHMmJnR5cGVvZiBqdD4idSImJihqdD1iKDMxNzkpKTt2YXIgRGk9Jzw/eG1sIHZlcnNp'@; put 'b249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz5cclxuJyxRdD0vKD86W14iXHM/PlwvXSspXHMqPVxzKigoPzoiKSg/OlteIl0qPykoPzoiKXwoPzonKSg/OlteJ10qPykoPzonKXwoPzpbXiciPlxzXSspKS9nLHRuPS88W1wvXD9dP1thLXpBLVowLTk6Xy1dKyg/'@; put 'OlxzK1teIlxzPz5cL10rXHMqPVxzKig/OiJbXiJdKiJ8J1teJ10qJ3xbXiciPlxzPV0rKSkqXHM/W1wvXD9dPz4vZztEaS5tYXRjaCh0bil8fCh0bj0vPFtePl0qPi9nKTt2YXIgY2E9Lzxcdyo6Lyx4aT0vPChcLz8pXHcrOi87ZnVuY3Rpb24geXIoUyxPLGspe2Zvcih2YXIgSz17fSxlZT0w'@; put 'LG9lPTA7ZWUhPT1TLmxlbmd0aCYmMzIhPT0ob2U9Uy5jaGFyQ29kZUF0KGVlKSkmJjEwIT09b2UmJjEzIT09b2U7KytlZSk7aWYoT3x8KEtbMF09Uy5zbGljZSgwLGVlKSksZWU9PT1TLmxlbmd0aClyZXR1cm4gSzt2YXIgbWU9Uy5tYXRjaChRdCkscGU9MCxiZT0iIixQZT0wLFZlPSIiLFll'@; put 'PSIiLGV0PTE7aWYobWUpZm9yKFBlPTA7UGUhPW1lLmxlbmd0aDsrK1BlKXtmb3IoWWU9bWVbUGVdLG9lPTA7b2UhPVllLmxlbmd0aCYmNjEhPT1ZZS5jaGFyQ29kZUF0KG9lKTsrK29lKTtmb3IoVmU9WWUuc2xpY2UoMCxvZSkudHJpbSgpOzMyPT1ZZS5jaGFyQ29kZUF0KG9lKzEpOykrK29l'@; put 'O2ZvcihldD0zND09KGVlPVllLmNoYXJDb2RlQXQob2UrMSkpfHwzOT09ZWU/MTowLGJlPVllLnNsaWNlKG9lKzErZXQsWWUubGVuZ3RoLWV0KSxwZT0wO3BlIT1WZS5sZW5ndGgmJjU4IT09VmUuY2hhckNvZGVBdChwZSk7KytwZSk7aWYocGU9PT1WZS5sZW5ndGgpVmUuaW5kZXhPZigiXyIp'@; put 'PjAmJihWZT1WZS5zbGljZSgwLFZlLmluZGV4T2YoIl8iKSkpLEtbVmVdPWJlLGt8fChLW1ZlLnRvTG93ZXJDYXNlKCldPWJlKTtlbHNle3ZhciBjdD0oNT09PXBlJiYieG1sbnMiPT09VmUuc2xpY2UoMCw1KT8ieG1sbnMiOiIiKStWZS5zbGljZShwZSsxKTtpZihLW2N0XSYmImV4dCI9PVZl'@; put 'LnNsaWNlKHBlLTMscGUpKWNvbnRpbnVlO0tbY3RdPWJlLGt8fChLW2N0LnRvTG93ZXJDYXNlKCldPWJlKX19cmV0dXJuIEt9ZnVuY3Rpb24gR24oUyl7cmV0dXJuIFMucmVwbGFjZSh4aSwiPCQxIil9dmFyIEtpPXsiJnF1b3Q7IjonIicsIiZhcG9zOyI6IiciLCImZ3Q7IjoiPiIsIiZsdDsi'@; put 'OiI8IiwiJmFtcDsiOiImIn0sSnI9SGUoS2kpLFFyPWZ1bmN0aW9uKCl7dmFyIFM9LyYoPzpxdW90fGFwb3N8Z3R8bHR8YW1wfCN4PyhbXGRhLWZBLUZdKykpOy9naSxPPS9feChbXGRhLWZBLUZdezR9KV8vZ2k7cmV0dXJuIGZ1bmN0aW9uIGsoSyl7dmFyIGVlPUsrIiIsb2U9ZWUuaW5kZXhP'@; put 'ZigiPCFbQ0RBVEFbIik7aWYoLTE9PW9lKXJldHVybiBlZS5yZXBsYWNlKFMsZnVuY3Rpb24ocGUsYmUpe3JldHVybiBLaVtwZV18fFN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoYmUscGUuaW5kZXhPZigieCIpPi0xPzE2OjEwKSl8fHBlfSkucmVwbGFjZShPLGZ1bmN0aW9uKHBlLGJl'@; put 'KXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChiZSwxNikpfSk7dmFyIG1lPWVlLmluZGV4T2YoIl1dPiIpO3JldHVybiBrKGVlLnNsaWNlKDAsb2UpKStlZS5zbGljZShvZSs5LG1lKStrKGVlLnNsaWNlKG1lKzMpKX19KCksTmk9L1smPD4nIl0vZyxIaT0vW1x1MDAwMC1c'@; put 'dTAwMDhcdTAwMGItXHUwMDFmXS9nLElhPS9feFswLTlhLWZBLUZdezR9Xy9nO2Z1bmN0aW9uIFByKFMpe3JldHVybihTKyIiKS5yZXBsYWNlKElhLCJfeDAwNUYkJiIpLnJlcGxhY2UoTmksZnVuY3Rpb24oayl7cmV0dXJuIEpyW2tdfSkucmVwbGFjZShIaSxmdW5jdGlvbihrKXtyZXR1cm4i'@; put 'X3giKygiMDAwIitrLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpKS5zbGljZSgtNCkrIl8ifSl9ZnVuY3Rpb24gWWkoUyl7cmV0dXJuIFByKFMpLnJlcGxhY2UoL1xuL2csIl94MDAwYV8iKX1mdW5jdGlvbiBmYShTKXtyZXR1cm4gUHIoUykucmVwbGFjZSgvIC9nLCJfeDAwMjBfIil9dmFy'@; put 'IG5yPS9bXHUwMDAwLVx1MDAxZl0vZztmdW5jdGlvbiBvYShTKXtyZXR1cm4oUysiIikucmVwbGFjZShOaSxmdW5jdGlvbihrKXtyZXR1cm4gSnJba119KS5yZXBsYWNlKC9cbi9nLCI8YnIvPiIpLnJlcGxhY2UobnIsZnVuY3Rpb24oayl7cmV0dXJuIiYjeCIrKCIwMDAiK2suY2hhckNvZGVB'@; put 'dCgwKS50b1N0cmluZygxNikpLnNsaWNlKC00KSsiOyJ9KX1mdW5jdGlvbiBfYShTKXtyZXR1cm4oUysiIikucmVwbGFjZShOaSxmdW5jdGlvbihrKXtyZXR1cm4gSnJba119KS5yZXBsYWNlKG5yLGZ1bmN0aW9uKGspe3JldHVybiImI3giK2suY2hhckNvZGVBdCgwKS50b1N0cmluZygxNiku'@; put 'dG9VcHBlckNhc2UoKSsiOyJ9KX12YXIgT2E9ZnVuY3Rpb24oKXt2YXIgUz0vJiMoXGQrKTsvZztmdW5jdGlvbiBPKGssSyl7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoSywxMCkpfXJldHVybiBmdW5jdGlvbihLKXtyZXR1cm4gSy5yZXBsYWNlKFMsTyl9fSgpLE5hPWZ1'@; put 'bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKE8pe3JldHVybiBPLnJlcGxhY2UoLyhcclxufFtcclxuXSkvZywiJiMxMDsiKX19KCk7ZnVuY3Rpb24gZWkoUyl7c3dpdGNoKFMpe2Nhc2UgMTpjYXNlITA6Y2FzZSIxIjpjYXNlInRydWUiOmNhc2UiVFJVRSI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1'@; put 'cm4hMX19dmFyIGZzPWZ1bmN0aW9uKE8pe2Zvcih2YXIgaz0iIixLPTAsZWU9MCxvZT0wLG1lPTAscGU9MCxiZT0wO0s8Ty5sZW5ndGg7KShlZT1PLmNoYXJDb2RlQXQoSysrKSk8MTI4P2srPVN0cmluZy5mcm9tQ2hhckNvZGUoZWUpOihvZT1PLmNoYXJDb2RlQXQoSysrKSxlZT4xOTEmJmVl'@; put 'PDIyND8ocGU9KDMxJmVlKTw8NixwZXw9NjMmb2Usays9U3RyaW5nLmZyb21DaGFyQ29kZShwZSkpOihtZT1PLmNoYXJDb2RlQXQoSysrKSxlZTwyNDA/ays9U3RyaW5nLmZyb21DaGFyQ29kZSgoMTUmZWUpPDwxMnwoNjMmb2UpPDw2fDYzJm1lKTooYmU9KCg3JmVlKTw8MTh8KDYzJm9lKTw8'@; put 'MTJ8KDYzJm1lKTw8Nnw2MyYocGU9Ty5jaGFyQ29kZUF0KEsrKykpKS02NTUzNixrKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDU1Mjk2KyhiZT4+PjEwJjEwMjMpKSxrKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDU2MzIwKygxMDIzJmJlKSkpKSk7cmV0dXJuIGt9LEhvPWZ1bmN0aW9uKFMpe2Zvcih2'@; put 'YXIgTz1bXSxrPTAsSz0wLGVlPTA7azxTLmxlbmd0aDspc3dpdGNoKEs9Uy5jaGFyQ29kZUF0KGsrKyksITApe2Nhc2UgSzwxMjg6Ty5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoSykpO2JyZWFrO2Nhc2UgSzwyMDQ4Ok8ucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKDE5MisoSz4+NikpKSxP'@; put 'LnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZSgxMjgrKDYzJkspKSk7YnJlYWs7Y2FzZSBLPj01NTI5NiYmSzw1NzM0NDpLLT01NTI5NixlZT1TLmNoYXJDb2RlQXQoaysrKS01NjMyMCsoSzw8MTApLE8ucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKDI0MCsoZWU+PjE4JjcpKSksTy5wdXNoKFN0'@; put 'cmluZy5mcm9tQ2hhckNvZGUoMTQ0KyhlZT4+MTImNjMpKSksTy5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMTI4KyhlZT4+NiY2MykpKSxPLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZSgxMjgrKDYzJmVlKSkpO2JyZWFrO2RlZmF1bHQ6Ty5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMjI0'@; put 'KyhLPj4xMikpKSxPLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZSgxMjgrKEs+PjYmNjMpKSksTy5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMTI4Kyg2MyZLKSkpfXJldHVybiBPLmpvaW4oIiIpfTtpZihUZSl7dmFyIG1sPWZ1bmN0aW9uKE8pe3ZhciBLLGVlLGJlLGs9QnVmZmVyLmFsbG9j'@; put 'KDIqTy5sZW5ndGgpLG9lPTEsbWU9MCxwZT0wO2ZvcihlZT0wO2VlPE8ubGVuZ3RoO2VlKz1vZSlvZT0xLChiZT1PLmNoYXJDb2RlQXQoZWUpKTwxMjg/Sz1iZTpiZTwyMjQ/KEs9NjQqKDMxJmJlKSsoNjMmTy5jaGFyQ29kZUF0KGVlKzEpKSxvZT0yKTpiZTwyNDA/KEs9NDA5NiooMTUmYmUp'@; put 'KzY0Kig2MyZPLmNoYXJDb2RlQXQoZWUrMSkpKyg2MyZPLmNoYXJDb2RlQXQoZWUrMikpLG9lPTMpOihvZT00LEs9MjYyMTQ0Kig3JmJlKSs0MDk2Kig2MyZPLmNoYXJDb2RlQXQoZWUrMSkpKzY0Kig2MyZPLmNoYXJDb2RlQXQoZWUrMikpKyg2MyZPLmNoYXJDb2RlQXQoZWUrMykpLHBlPTU1'@; put 'Mjk2KygoSy09NjU1MzYpPj4+MTAmMTAyMyksSz01NjMyMCsoMTAyMyZLKSksMCE9PXBlJiYoa1ttZSsrXT0yNTUmcGUsa1ttZSsrXT1wZT4+PjgscGU9MCksa1ttZSsrXT1LJTI1NixrW21lKytdPUs+Pj44O3JldHVybiBrLnNsaWNlKDAsbWUpLnRvU3RyaW5nKCJ1Y3MyIil9LHV1PSJmb28g'@; put 'YmFyIGJhelx4ZTJceDk4XHg4M1x4ZjBceDlmXHg4ZFx4YTMiO2ZzKHV1KT09bWwodXUpJiYoZnM9bWwpO3ZhciBJYz1mdW5jdGlvbihPKXtyZXR1cm4gU2UoTywiYmluYXJ5IikudG9TdHJpbmcoInV0ZjgiKX07ZnModXUpPT1JYyh1dSkmJihmcz1JYyksSG89ZnVuY3Rpb24oUyl7cmV0dXJu'@; put 'IFNlKFMsInV0ZjgiKS50b1N0cmluZygiYmluYXJ5Iil9fXZhciBTLEEwPWZ1bmN0aW9uKCl7dmFyIFM9e307cmV0dXJuIGZ1bmN0aW9uKGssSyl7dmFyIGVlPWsrInwiKyhLfHwiIik7cmV0dXJuIFNbZWVdP1NbZWVdOlNbZWVdPW5ldyBSZWdFeHAoIjwoPzpcXHcrOik/IitrKycoPzogeG1s'@; put 'OnNwYWNlPSJwcmVzZXJ2ZSIpPyg/OltePl0qKT4oW1xcc1xcU10qPyk8Lyg/Olxcdys6KT8nK2srIj4iLEt8fCIiKX19KCksb3I9KFM9W1sibmJzcCIsIiAiXSxbIm1pZGRvdCIsIlx4YjciXSxbInF1b3QiLCciJ10sWyJhcG9zIiwiJyJdLFsiZ3QiLCI+Il0sWyJsdCIsIjwiXSxbImFtcCIs'@; put 'IiYiXV0ubWFwKGZ1bmN0aW9uKE8pe3JldHVybltuZXcgUmVnRXhwKCImIitPWzBdKyI7IiwiaWciKSxPWzFdXX0pLGZ1bmN0aW9uKGspe2Zvcih2YXIgSz1rLnJlcGxhY2UoL15bXHRcblxyIF0rLywiIikucmVwbGFjZSgvW1x0XG5cciBdKyQvLCIiKS5yZXBsYWNlKC9bXHRcblxyIF0rL2cs'@; put 'IiAiKS5yZXBsYWNlKC88XHMqW2JCXVtyUl1ccypcLz8+L2csIlxuIikucmVwbGFjZSgvPFtePl0qPi9nLCIiKSxlZT0wO2VlPFMubGVuZ3RoOysrZWUpSz1LLnJlcGxhY2UoU1tlZV1bMF0sU1tlZV1bMV0pO3JldHVybiBLfSksVGE9ZnVuY3Rpb24oKXt2YXIgUz17fTtyZXR1cm4gZnVuY3Rp'@; put 'b24oayl7cmV0dXJuIHZvaWQgMCE9PVNba10/U1trXTpTW2tdPW5ldyBSZWdFeHAoIjwoPzp2dDopPyIraysiPihbXFxzXFxTXSo/KTwvKD86dnQ6KT8iK2srIj4iLCJnIil9fSgpLGxpPS88XC8/KD86dnQ6KT92YXJpYW50Pi9nLE50PS88KD86dnQ6KShbXj5dKik+KFtcc1xTXSopPC87ZnVu'@; put 'Y3Rpb24gWHIoUyxPKXt2YXIgaz15cihTKSxLPVMubWF0Y2goVGEoay5iYXNlVHlwZSkpfHxbXSxlZT1bXTtpZihLLmxlbmd0aCE9ay5zaXplKXtpZihPLldURil0aHJvdyBuZXcgRXJyb3IoInVuZXhwZWN0ZWQgdmVjdG9yIGxlbmd0aCAiK0subGVuZ3RoKyIgIT0gIitrLnNpemUpO3JldHVy'@; put 'biBlZX1yZXR1cm4gSy5mb3JFYWNoKGZ1bmN0aW9uKG9lKXt2YXIgbWU9b2UucmVwbGFjZShsaSwiIikubWF0Y2goTnQpO21lJiZlZS5wdXNoKHt2OmZzKG1lWzJdKSx0Om1lWzFdfSl9KSxlZX12YXIgZzA9LyheXHN8XHMkfFxuKS87ZnVuY3Rpb24gVmEoUyxPKXtyZXR1cm4iPCIrUysoTy5t'@; put 'YXRjaChnMCk/JyB4bWw6c3BhY2U9InByZXNlcnZlIic6IiIpKyI+IitPKyI8LyIrUysiPiJ9ZnVuY3Rpb24gRHUoUyl7cmV0dXJuIFJlKFMpLm1hcChmdW5jdGlvbihPKXtyZXR1cm4iICIrTysnPSInK1NbT10rJyInfSkuam9pbigiIil9ZnVuY3Rpb24gSHIoUyxPLGspe3JldHVybiI8IitT'@; put 'KyhudWxsIT1rP0R1KGspOiIiKSsobnVsbCE9Tz8oTy5tYXRjaChnMCk/JyB4bWw6c3BhY2U9InByZXNlcnZlIic6IiIpKyI+IitPKyI8LyIrUzoiLyIpKyI+In1mdW5jdGlvbiBwZihTLE8pe3RyeXtyZXR1cm4gUy50b0lTT1N0cmluZygpLnJlcGxhY2UoL1wuXGQqLywiIil9Y2F0Y2goayl7'@; put 'aWYoTyl0aHJvdyBrfXJldHVybiIifXZhciBYaCxxaCxHaT17ZGM6Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIixkY3Rlcm1zOiJodHRwOi8vcHVybC5vcmcvZGMvdGVybXMvIixkY21pdHlwZToiaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlLyIsbXg6Imh0dHA6Ly9zY2hl'@; put 'bWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL21hYy9leGNlbC8yMDA4L21haW4iLHI6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMiLHNqczoiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2Uv'@; put 'MjAwNi9zaGVldGpzL2NvcmUtcHJvcGVydGllcyIsdnQ6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L2RvY1Byb3BzVlR5cGVzIix4c2k6Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIix4c2Q6Imh0dHA6Ly93'@; put 'd3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIixtYWluOlsiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluIiwiaHR0cDovL3B1cmwub2NsYy5vcmcvb294bWwvc3ByZWFkc2hlZXRtbC9tYWluIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0'@; put 'LmNvbS9vZmZpY2UvZXhjZWwvMjAwNi9tYWluIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvZXhjZWwvMjAwNi8yIl19LHZsPXtvOiJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTpvZmZpY2UiLHg6InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNl'@; put 'OmV4Y2VsIixzczoidXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6c3ByZWFkc2hlZXQiLGR0OiJ1dWlkOkMyRjQxMDEwLTY1QjMtMTFkMS1BMjlGLTAwQUEwMEMxNDg4MiIsbXY6Imh0dHA6Ly9tYWNWbWxTY2hlbWFVcmkiLHY6InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206dm1s'@; put 'IixodG1sOiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIn0sbTA9ZnVuY3Rpb24oUyl7Zm9yKHZhciBPPVtdLEs9MDtLPFNbMF0ubGVuZ3RoOysrSylpZihTWzBdW0tdKWZvcih2YXIgZWU9MCxvZT1TWzBdW0tdLmxlbmd0aDtlZTxvZTtlZSs9MTAyNDApTy5wdXNoLmFwcGx5KE8s'@; put 'U1swXVtLXS5zbGljZShlZSxlZSsxMDI0MCkpO3JldHVybiBPfSxlNT1tMCxJbD1mdW5jdGlvbihTLE8sayl7Zm9yKHZhciBLPVtdLGVlPU87ZWU8aztlZSs9MilLLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShRYShTLGVlKSkpO3JldHVybiBLLmpvaW4oIiIpLnJlcGxhY2UoRSwiIil9LGdm'@; put 'PUlsLGNkPWZ1bmN0aW9uKFMsTyxrKXtmb3IodmFyIEs9W10sZWU9TztlZTxPK2s7KytlZSlLLnB1c2goKCIwIitTW2VlXS50b1N0cmluZygxNikpLnNsaWNlKC0yKSk7cmV0dXJuIEsuam9pbigiIil9LG1mPWNkLEQxPWZ1bmN0aW9uKFMsTyxrKXtmb3IodmFyIEs9W10sZWU9TztlZTxrO2Vl'@; put 'KyspSy5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoRnMoUyxlZSkpKTtyZXR1cm4gSy5qb2luKCIiKX0sdmY9RDEsZWg9ZnVuY3Rpb24oUyxPKXt2YXIgaz16cyhTLE8pO3JldHVybiBrPjA/RDEoUyxPKzQsTys0K2stMSk6IiJ9LHlmPWVoLEtoPWZ1bmN0aW9uKFMsTyl7dmFyIGs9enMoUyxP'@; put 'KTtyZXR1cm4gaz4wP0QxKFMsTys0LE8rNCtrLTEpOiIifSxSYz1LaCxCYT1mdW5jdGlvbihTLE8pe3ZhciBrPTIqenMoUyxPKTtyZXR1cm4gaz4wP0QxKFMsTys0LE8rNCtrLTEpOiIifSxJMz1CYTtYaD1xaD1mdW5jdGlvbihPLGspe3ZhciBLPXpzKE8sayk7cmV0dXJuIEs+MD9JbChPLGsr'@; put 'NCxrKzQrSyk6IiJ9O3ZhciBybixtaSxKaD1mdW5jdGlvbihTLE8pe3ZhciBrPXpzKFMsTyk7cmV0dXJuIGs+MD9EMShTLE8rNCxPKzQrayk6IiJ9LEFuPUpoO3JuPW1pPWZ1bmN0aW9uKFMsTyl7cmV0dXJuIGZ1bmN0aW9uIFhjKFMsTyl7Zm9yKHZhciBrPTEtMiooU1tPKzddPj4+NyksSz0o'@; put 'KDEyNyZTW08rN10pPDw0KSsoU1tPKzZdPj4+NCYxNSksZWU9MTUmU1tPKzZdLG9lPTU7b2U+PTA7LS1vZSllZT0yNTYqZWUrU1tPK29lXTtyZXR1cm4gMjA0Nz09Sz8wPT1lZT9rKigxLzApOk5hTjooMD09Sz9LPS0xMDIyOihLLT0xMDIzLGVlKz1NYXRoLnBvdygyLDUyKSksaypNYXRoLnBv'@; put 'dygyLEstNTIpKmVlKX0oUyxPKX07dmFyIEFyPWZ1bmN0aW9uKE8pe3JldHVybiBBcnJheS5pc0FycmF5KE8pfTtUZSYmKElsPWZ1bmN0aW9uKFMsTyxrKXtyZXR1cm4gQnVmZmVyLmlzQnVmZmVyKFMpP1MudG9TdHJpbmcoInV0ZjE2bGUiLE8saykucmVwbGFjZShFLCIiKTpnZihTLE8sayl9'@; put 'LGNkPWZ1bmN0aW9uKFMsTyxrKXtyZXR1cm4gQnVmZmVyLmlzQnVmZmVyKFMpP1MudG9TdHJpbmcoImhleCIsTyxPK2spOm1mKFMsTyxrKX0sZWg9ZnVuY3Rpb24oTyxrKXtpZighQnVmZmVyLmlzQnVmZmVyKE8pKXJldHVybiB5ZihPLGspO3ZhciBLPU8ucmVhZFVJbnQzMkxFKGspO3JldHVy'@; put 'biBLPjA/Ty50b1N0cmluZygidXRmOCIsays0LGsrNCtLLTEpOiIifSxLaD1mdW5jdGlvbihPLGspe2lmKCFCdWZmZXIuaXNCdWZmZXIoTykpcmV0dXJuIFJjKE8sayk7dmFyIEs9Ty5yZWFkVUludDMyTEUoayk7cmV0dXJuIEs+MD9PLnRvU3RyaW5nKCJ1dGY4IixrKzQsays0K0stMSk6IiJ9'@; put 'LEJhPWZ1bmN0aW9uKE8sayl7aWYoIUJ1ZmZlci5pc0J1ZmZlcihPKSlyZXR1cm4gSTMoTyxrKTt2YXIgSz0yKk8ucmVhZFVJbnQzMkxFKGspO3JldHVybiBPLnRvU3RyaW5nKCJ1dGYxNmxlIixrKzQsays0K0stMSl9LFhoPWZ1bmN0aW9uKE8sayl7aWYoIUJ1ZmZlci5pc0J1ZmZlcihPKSly'@; put 'ZXR1cm4gcWgoTyxrKTt2YXIgSz1PLnJlYWRVSW50MzJMRShrKTtyZXR1cm4gTy50b1N0cmluZygidXRmMTZsZSIsays0LGsrNCtLKX0sSmg9ZnVuY3Rpb24oTyxrKXtpZighQnVmZmVyLmlzQnVmZmVyKE8pKXJldHVybiBBbihPLGspO3ZhciBLPU8ucmVhZFVJbnQzMkxFKGspO3JldHVybiBP'@; put 'LnRvU3RyaW5nKCJ1dGY4IixrKzQsays0K0spfSxEMT1mdW5jdGlvbihPLGssSyl7cmV0dXJuIEJ1ZmZlci5pc0J1ZmZlcihPKT9PLnRvU3RyaW5nKCJ1dGY4IixrLEspOnZmKE8sayxLKX0sbTA9ZnVuY3Rpb24oUyl7cmV0dXJuIFNbMF0ubGVuZ3RoPjAmJkJ1ZmZlci5pc0J1ZmZlcihTWzBd'@; put 'WzBdKT9CdWZmZXIuY29uY2F0KFNbMF0pOmU1KFMpfSxVPWZ1bmN0aW9uKFMpe3JldHVybiBCdWZmZXIuaXNCdWZmZXIoU1swXSk/QnVmZmVyLmNvbmNhdChTKTpbXS5jb25jYXQuYXBwbHkoW10sUyl9LHJuPWZ1bmN0aW9uKE8sayl7cmV0dXJuIEJ1ZmZlci5pc0J1ZmZlcihPKT9PLnJlYWRE'@; put 'b3VibGVMRShrKTptaShPLGspfSxBcj1mdW5jdGlvbihPKXtyZXR1cm4gQnVmZmVyLmlzQnVmZmVyKE8pfHxBcnJheS5pc0FycmF5KE8pfSksdHlwZW9mIGNwdGFibGU8InUiJiYoSWw9ZnVuY3Rpb24oUyxPLGspe3JldHVybiBjcHRhYmxlLnV0aWxzLmRlY29kZSgxMjAwLFMuc2xpY2UoTyxr'@; put 'KSkucmVwbGFjZShFLCIiKX0sRDE9ZnVuY3Rpb24oUyxPLGspe3JldHVybiBjcHRhYmxlLnV0aWxzLmRlY29kZSg2NTAwMSxTLnNsaWNlKE8saykpfSxlaD1mdW5jdGlvbihTLE8pe3ZhciBrPXpzKFMsTyk7cmV0dXJuIGs+MD9jcHRhYmxlLnV0aWxzLmRlY29kZShILFMuc2xpY2UoTys0LE8r'@; put 'NCtrLTEpKToiIn0sS2g9ZnVuY3Rpb24oUyxPKXt2YXIgaz16cyhTLE8pO3JldHVybiBrPjA/Y3B0YWJsZS51dGlscy5kZWNvZGUoRixTLnNsaWNlKE8rNCxPKzQray0xKSk6IiJ9LEJhPWZ1bmN0aW9uKFMsTyl7dmFyIGs9Mip6cyhTLE8pO3JldHVybiBrPjA/Y3B0YWJsZS51dGlscy5kZWNv'@; put 'ZGUoMTIwMCxTLnNsaWNlKE8rNCxPKzQray0xKSk6IiJ9LFhoPWZ1bmN0aW9uKFMsTyl7dmFyIGs9enMoUyxPKTtyZXR1cm4gaz4wP2NwdGFibGUudXRpbHMuZGVjb2RlKDEyMDAsUy5zbGljZShPKzQsTys0K2spKToiIn0sSmg9ZnVuY3Rpb24oUyxPKXt2YXIgaz16cyhTLE8pO3JldHVybiBr'@; put 'PjA/Y3B0YWJsZS51dGlscy5kZWNvZGUoNjUwMDEsUy5zbGljZShPKzQsTys0K2spKToiIn0pO3ZhciBGcz1mdW5jdGlvbihTLE8pe3JldHVybiBTW09dfSxRYT1mdW5jdGlvbihTLE8pe3JldHVybiAyNTYqU1tPKzFdK1NbT119LHJsPWZ1bmN0aW9uKFMsTyl7dmFyIGs9MjU2KlNbTysxXStT'@; put 'W09dO3JldHVybiBrPDMyNzY4P2s6LTEqKDY1NTM1LWsrMSl9LHpzPWZ1bmN0aW9uKFMsTyl7cmV0dXJuIFNbTyszXSooMTw8MjQpKyhTW08rMl08PDE2KSsoU1tPKzFdPDw4KStTW09dfSxObz1mdW5jdGlvbihTLE8pe3JldHVybiBTW08rM108PDI0fFNbTysyXTw8MTZ8U1tPKzFdPDw4fFNb'@; put 'T119LENvPWZ1bmN0aW9uKFMsTyl7cmV0dXJuIFNbT108PDI0fFNbTysxXTw8MTZ8U1tPKzJdPDw4fFNbTyszXX07ZnVuY3Rpb24gTmwoUyxPKXt2YXIgSyxlZSxtZSxwZSxiZSxQZSxrPSIiLG9lPVtdO3N3aXRjaChPKXtjYXNlImRiY3MiOmlmKFBlPXRoaXMubCxUZSYmQnVmZmVyLmlzQnVm'@; put 'ZmVyKHRoaXMpKWs9dGhpcy5zbGljZSh0aGlzLmwsdGhpcy5sKzIqUykudG9TdHJpbmcoInV0ZjE2bGUiKTtlbHNlIGZvcihiZT0wO2JlPFM7KytiZSlrKz1TdHJpbmcuZnJvbUNoYXJDb2RlKFFhKHRoaXMsUGUpKSxQZSs9MjtTKj0yO2JyZWFrO2Nhc2UidXRmOCI6az1EMSh0aGlzLHRoaXMu'@; put 'bCx0aGlzLmwrUyk7YnJlYWs7Y2FzZSJ1dGYxNmxlIjprPUlsKHRoaXMsdGhpcy5sLHRoaXMubCsoUyo9MikpO2JyZWFrO2Nhc2Uid3N0ciI6aWYoISh0eXBlb2YgY3B0YWJsZTwidSIpKXJldHVybiBObC5jYWxsKHRoaXMsUywiZGJjcyIpO2s9Y3B0YWJsZS51dGlscy5kZWNvZGUoRix0aGlz'@; put 'LnNsaWNlKHRoaXMubCx0aGlzLmwrMipTKSksUyo9MjticmVhaztjYXNlImxwc3RyLWFuc2kiOms9ZWgodGhpcyx0aGlzLmwpLFM9NCt6cyh0aGlzLHRoaXMubCk7YnJlYWs7Y2FzZSJscHN0ci1jcCI6az1LaCh0aGlzLHRoaXMubCksUz00K3pzKHRoaXMsdGhpcy5sKTticmVhaztjYXNlImxw'@; put 'd3N0ciI6az1CYSh0aGlzLHRoaXMubCksUz00KzIqenModGhpcyx0aGlzLmwpO2JyZWFrO2Nhc2UibHBwNCI6Uz00K3pzKHRoaXMsdGhpcy5sKSxrPVhoKHRoaXMsdGhpcy5sKSwyJlMmJihTKz0yKTticmVhaztjYXNlIjhscHA0IjpTPTQrenModGhpcyx0aGlzLmwpLGs9SmgodGhpcyx0aGlz'@; put 'LmwpLDMmUyYmKFMrPTQtKDMmUykpO2JyZWFrO2Nhc2UiY3N0ciI6Zm9yKFM9MCxrPSIiOzAhPT0obWU9RnModGhpcyx0aGlzLmwrUysrKSk7KW9lLnB1c2godGUobWUpKTtrPW9lLmpvaW4oIiIpO2JyZWFrO2Nhc2UiX3dzdHIiOmZvcihTPTAsaz0iIjswIT09KG1lPVFhKHRoaXMsdGhpcy5s'@; put 'K1MpKTspb2UucHVzaCh0ZShtZSkpLFMrPTI7Uys9MixrPW9lLmpvaW4oIiIpO2JyZWFrO2Nhc2UiZGJjcy1jb250Ijpmb3Ioaz0iIixQZT10aGlzLmwsYmU9MDtiZTxTOysrYmUpe2lmKHRoaXMubGVucyYmLTEhPT10aGlzLmxlbnMuaW5kZXhPZihQZSkpcmV0dXJuIG1lPUZzKHRoaXMsUGUp'@; put 'LHRoaXMubD1QZSsxLHBlPU5sLmNhbGwodGhpcyxTLWJlLG1lPyJkYmNzLWNvbnQiOiJzYmNzLWNvbnQiKSxvZS5qb2luKCIiKStwZTtvZS5wdXNoKHRlKFFhKHRoaXMsUGUpKSksUGUrPTJ9az1vZS5qb2luKCIiKSxTKj0yO2JyZWFrO2Nhc2UiY3BzdHIiOmlmKHR5cGVvZiBjcHRhYmxlPCJ1'@; put 'Iil7az1jcHRhYmxlLnV0aWxzLmRlY29kZShGLHRoaXMuc2xpY2UodGhpcy5sLHRoaXMubCtTKSk7YnJlYWt9Y2FzZSJzYmNzLWNvbnQiOmZvcihrPSIiLFBlPXRoaXMubCxiZT0wO2JlIT1TOysrYmUpe2lmKHRoaXMubGVucyYmLTEhPT10aGlzLmxlbnMuaW5kZXhPZihQZSkpcmV0dXJuIG1l'@; put 'PUZzKHRoaXMsUGUpLHRoaXMubD1QZSsxLHBlPU5sLmNhbGwodGhpcyxTLWJlLG1lPyJkYmNzLWNvbnQiOiJzYmNzLWNvbnQiKSxvZS5qb2luKCIiKStwZTtvZS5wdXNoKHRlKEZzKHRoaXMsUGUpKSksUGUrPTF9az1vZS5qb2luKCIiKTticmVhaztkZWZhdWx0OnN3aXRjaChTKXtjYXNlIDE6'@; put 'cmV0dXJuIEs9RnModGhpcyx0aGlzLmwpLHRoaXMubCsrLEs7Y2FzZSAyOnJldHVybiBLPSgiaSI9PT1PP3JsOlFhKSh0aGlzLHRoaXMubCksdGhpcy5sKz0yLEs7Y2FzZSA0OmNhc2UtNDpyZXR1cm4iaSIhPT1PJiYxMjgmdGhpc1t0aGlzLmwrM10/KGVlPXpzKHRoaXMsdGhpcy5sKSx0aGlz'@; put 'LmwrPTQsZWUpOihLPShTPjA/Tm86Q28pKHRoaXMsdGhpcy5sKSx0aGlzLmwrPTQsSyk7Y2FzZSA4OmNhc2UtODppZigiZiI9PT1PKXJldHVybiBlZT04PT1TP3JuKHRoaXMsdGhpcy5sKTpybihbdGhpc1t0aGlzLmwrN10sdGhpc1t0aGlzLmwrNl0sdGhpc1t0aGlzLmwrNV0sdGhpc1t0aGlz'@; put 'LmwrNF0sdGhpc1t0aGlzLmwrM10sdGhpc1t0aGlzLmwrMl0sdGhpc1t0aGlzLmwrMV0sdGhpc1t0aGlzLmwrMF1dLDApLHRoaXMubCs9OCxlZTtTPTg7Y2FzZSAxNjprPWNkKHRoaXMsdGhpcy5sLFMpfX1yZXR1cm4gdGhpcy5sKz1TLGt9dmFyIE5zPWZ1bmN0aW9uKFMsTyxrKXtTW2tdPTI1'@; put 'NSZPLFNbaysxXT1PPj4+OCYyNTUsU1trKzJdPU8+Pj4xNiYyNTUsU1trKzNdPU8+Pj4yNCYyNTV9LElzPWZ1bmN0aW9uKFMsTyxrKXtTW2tdPTI1NSZPLFNbaysxXT1PPj44JjI1NSxTW2srMl09Tz4+MTYmMjU1LFNbayszXT1PPj4yNCYyNTV9LFN0PWZ1bmN0aW9uKFMsTyxrKXtTW2tdPTI1'@; put 'NSZPLFNbaysxXT1PPj4+OCYyNTV9O2Z1bmN0aW9uIFZ0KFMsTyxrKXt2YXIgSz0wLGVlPTA7aWYoImRiY3MiPT09ayl7Zm9yKGVlPTA7ZWUhPU8ubGVuZ3RoOysrZWUpU3QodGhpcyxPLmNoYXJDb2RlQXQoZWUpLHRoaXMubCsyKmVlKTtLPTIqTy5sZW5ndGh9ZWxzZSBpZigic2JjcyI9PT1r'@; put 'KXtpZih0eXBlb2YgY3B0YWJsZTwidSImJjg3ND09SClmb3IoZWU9MDtlZSE9Ty5sZW5ndGg7KytlZSl7dmFyIG9lPWNwdGFibGUudXRpbHMuZW5jb2RlKEgsTy5jaGFyQXQoZWUpKTt0aGlzW3RoaXMubCtlZV09b2VbMF19ZWxzZSBmb3IoTz1PLnJlcGxhY2UoL1teXHgwMC1ceDdGXS9nLCJf'@; put 'IiksZWU9MDtlZSE9Ty5sZW5ndGg7KytlZSl0aGlzW3RoaXMubCtlZV09MjU1Jk8uY2hhckNvZGVBdChlZSk7Sz1PLmxlbmd0aH1lbHNle2lmKCJoZXgiPT09ayl7Zm9yKDtlZTxTOysrZWUpdGhpc1t0aGlzLmwrK109cGFyc2VJbnQoTy5zbGljZSgyKmVlLDIqZWUrMiksMTYpfHwwO3JldHVy'@; put 'biB0aGlzfWlmKCJ1dGYxNmxlIj09PWspe3ZhciBtZT1NYXRoLm1pbih0aGlzLmwrUyx0aGlzLmxlbmd0aCk7Zm9yKGVlPTA7ZWU8TWF0aC5taW4oTy5sZW5ndGgsUyk7KytlZSl7dmFyIHBlPU8uY2hhckNvZGVBdChlZSk7dGhpc1t0aGlzLmwrK109MjU1JnBlLHRoaXNbdGhpcy5sKytdPXBl'@; put 'Pj44fWZvcig7dGhpcy5sPG1lOyl0aGlzW3RoaXMubCsrXT0wO3JldHVybiB0aGlzfXN3aXRjaChTKXtjYXNlIDE6Sz0xLHRoaXNbdGhpcy5sXT0yNTUmTzticmVhaztjYXNlIDI6Sz0yLHRoaXNbdGhpcy5sXT0yNTUmTyx0aGlzW3RoaXMubCsxXT0yNTUmKE8+Pj49OCk7YnJlYWs7Y2FzZSAz'@; put 'Oks9Myx0aGlzW3RoaXMubF09MjU1Jk8sdGhpc1t0aGlzLmwrMV09MjU1JihPPj4+PTgpLHRoaXNbdGhpcy5sKzJdPTI1NSYoTz4+Pj04KTticmVhaztjYXNlIDQ6Sz00LE5zKHRoaXMsTyx0aGlzLmwpO2JyZWFrO2Nhc2UgODppZihLPTgsImYiPT09ayl7IWZ1bmN0aW9uIFFnKFMsTyxrKXt2'@; put 'YXIgSz0oTzwwfHwxL089PS0xLzA/MTowKTw8NyxlZT0wLG9lPTAsbWU9Sz8tTzpPO2lzRmluaXRlKG1lKT8wPT1tZT9lZT1vZT0wOihlZT1NYXRoLmZsb29yKE1hdGgubG9nKG1lKS9NYXRoLkxOMiksb2U9bWUqTWF0aC5wb3coMiw1Mi1lZSksZWU8PS0xMDIzJiYoIWlzRmluaXRlKG9lKXx8'@; put 'b2U8TWF0aC5wb3coMiw1MikpP2VlPS0xMDIyOihvZS09TWF0aC5wb3coMiw1MiksZWUrPTEwMjMpKTooZWU9MjA0NyxvZT1pc05hTihPKT8yNjk4NTowKTtmb3IodmFyIHBlPTA7cGU8PTU7KytwZSxvZS89MjU2KVNbaytwZV09MjU1Jm9lO1Nbays2XT0oMTUmZWUpPDw0fDE1Jm9lLFNbays3'@; put 'XT1lZT4+NHxLfSh0aGlzLE8sdGhpcy5sKTticmVha31jYXNlIDE2OmJyZWFrO2Nhc2UtNDpLPTQsSXModGhpcyxPLHRoaXMubCl9fXJldHVybiB0aGlzLmwrPUssdGhpc31mdW5jdGlvbiB5bihTLE8pe3ZhciBrPWNkKHRoaXMsdGhpcy5sLFMubGVuZ3RoPj4xKTtpZihrIT09Uyl0aHJvdyBu'@; put 'ZXcgRXJyb3IoTysiRXhwZWN0ZWQgIitTKyIgc2F3ICIrayk7dGhpcy5sKz1TLmxlbmd0aD4+MX1mdW5jdGlvbiBnbihTLE8pe1MubD1PLFMucmVhZF9zaGlmdD1ObCxTLmNoaz15bixTLndyaXRlX3NoaWZ0PVZ0fWZ1bmN0aW9uIFJuKFMsTyl7Uy5sKz1PfWZ1bmN0aW9uIHZuKFMpe3ZhciBP'@; put 'PXooUyk7cmV0dXJuIGduKE8sMCksT31mdW5jdGlvbiBkcihTLE8sayl7aWYoUyl7dmFyIEssZWUsb2U7Z24oUyxTLmx8fDApO2Zvcih2YXIgbWU9Uy5sZW5ndGgscGU9MCxiZT0wO1MubDxtZTspezEyOCYocGU9Uy5yZWFkX3NoaWZ0KDEpKSYmKHBlPSgxMjcmcGUpKygoMTI3JlMucmVhZF9z'@; put 'aGlmdCgxKSk8PDcpKTt2YXIgUGU9TDhbcGVdfHxMOFs2NTUzNV07Zm9yKG9lPTEyNyYoSz1TLnJlYWRfc2hpZnQoMSkpLGVlPTE7ZWU8NCYmMTI4Jks7KytlZSlvZSs9KDEyNyYoSz1TLnJlYWRfc2hpZnQoMSkpKTw8NyplZTtiZT1TLmwrb2U7dmFyIFZlPShQZS5mfHxSbikoUyxvZSxrKTtp'@; put 'ZihTLmw9YmUsTyhWZSxQZS5uLHBlKSlyZXR1cm59fX1mdW5jdGlvbiB2aSgpe3ZhciBTPVtdLE89VGU/MjU2OjIwNDgsaz1mdW5jdGlvbihQZSl7dmFyIFZlPXZuKFBlKTtyZXR1cm4gZ24oVmUsMCksVmV9LEs9ayhPKSxlZT1mdW5jdGlvbigpe0smJihLLmxlbmd0aD5LLmwmJigoSz1LLnNs'@; put 'aWNlKDAsSy5sKSkubD1LLmxlbmd0aCksSy5sZW5ndGg+MCYmUy5wdXNoKEspLEs9bnVsbCl9LG9lPWZ1bmN0aW9uKFBlKXtyZXR1cm4gSyYmUGU8Sy5sZW5ndGgtSy5sP0s6KGVlKCksSz1rKE1hdGgubWF4KFBlKzEsTykpKX07cmV0dXJue25leHQ6b2UscHVzaDpmdW5jdGlvbihQZSl7ZWUo'@; put 'KSxudWxsPT0oSz1QZSkubCYmKEsubD1LLmxlbmd0aCksb2UoTyl9LGVuZDpmdW5jdGlvbigpe3JldHVybiBlZSgpLG0wKFtTXSl9LF9idWZzOlN9fWZ1bmN0aW9uIFZyKFMsTyxrLEspe3ZhciBvZSxlZT0ranpbT107aWYoIWlzTmFOKGVlKSl7S3x8KEs9TDhbZWVdLnB8fChrfHxbXSkubGVu'@; put 'Z3RofHwwKSxvZT0xKyhlZT49MTI4PzE6MCkrMSxLPj0xMjgmJisrb2UsSz49MTYzODQmJisrb2UsSz49MjA5NzE1MiYmKytvZTt2YXIgbWU9Uy5uZXh0KG9lKTtlZTw9MTI3P21lLndyaXRlX3NoaWZ0KDEsZWUpOihtZS53cml0ZV9zaGlmdCgxLDEyOCsoMTI3JmVlKSksbWUud3JpdGVfc2hp'@; put 'ZnQoMSxlZT4+NykpO2Zvcih2YXIgcGU9MDs0IT1wZTsrK3BlKXtpZighKEs+PTEyOCkpe21lLndyaXRlX3NoaWZ0KDEsSyk7YnJlYWt9bWUud3JpdGVfc2hpZnQoMSwxMjgrKDEyNyZLKSksSz4+PTd9Sz4wJiZBcihrKSYmUy5wdXNoKGspfX1mdW5jdGlvbiB0YShTLE8sayl7dmFyIEs9SnQo'@; put 'Uyk7aWYoTy5zPyhLLmNSZWwmJihLLmMrPU8ucy5jKSxLLnJSZWwmJihLLnIrPU8ucy5yKSk6KEsuY1JlbCYmKEsuYys9Ty5jKSxLLnJSZWwmJihLLnIrPU8ucikpLCFrfHxrLmJpZmY8MTIpe2Zvcig7Sy5jPj0yNTY7KUsuYy09MjU2O2Zvcig7Sy5yPj02NTUzNjspSy5yLT02NTUzNn1yZXR1'@; put 'cm4gS31mdW5jdGlvbiBhYShTLE8sayl7dmFyIEs9SnQoUyk7cmV0dXJuIEsucz10YShLLnMsTy5zLGspLEsuZT10YShLLmUsTy5zLGspLEt9ZnVuY3Rpb24gamEoUyxPKXtpZihTLmNSZWwmJlMuYzwwKWZvcihTPUp0KFMpO1MuYzwwOylTLmMrPU8+OD8xNjM4NDoyNTY7aWYoUy5yUmVsJiZT'@; put 'LnI8MClmb3IoUz1KdChTKTtTLnI8MDspUy5yKz1PPjg/MTA0ODU3NjpPPjU/NjU1MzY6MTYzODQ7aWYoUy5jUmVsJiZTLmM+PShPPjg/MTYzODQ6MjU2KSlmb3IoUz1KdChTKTtTLmM+PShPPjg/MTYzODQ6MjU2KTspUy5jLT1PPjg/MTYzODQ6MjU2O2lmKFMuclJlbCYmUy5yPj0xMDQ4NTc2'@; put 'KWZvcihTPUp0KFMpO1Mucj49MTA0ODU3NjspUy5yLT0xMDQ4NTc2O3ZhciBrPXFpKFMpO3JldHVybiFTLmNSZWwmJm51bGwhPVMuY1JlbCYmKGs9ZnVuY3Rpb24gUWgoUyl7cmV0dXJuIFMucmVwbGFjZSgvXihbQS1aXSkvLCIkJCQxIil9KGspKSwhUy5yUmVsJiZudWxsIT1TLnJSZWwmJihr'@; put 'PWZ1bmN0aW9uIExjKFMpe3JldHVybiBTLnJlcGxhY2UoLyhbQS1aXXxeKShcZCspJC8sIiQxJCQkMiIpfShrKSksa31mdW5jdGlvbiAkcyhTLE8pe3JldHVybiAwIT1TLnMucnx8Uy5zLnJSZWx8fFMuZS5yIT0oTy5iaWZmPj0xMj8xMDQ4NTc1Ok8uYmlmZj49OD82NTUzNjoxNjM4NCl8fFMu'@; put 'ZS5yUmVsPzAhPVMucy5jfHxTLnMuY1JlbHx8Uy5lLmMhPShPLmJpZmY+PTEyPzE2MzgzOjI1NSl8fFMuZS5jUmVsP2phKFMucyxPLmJpZmYpKyI6IitqYShTLmUsTy5iaWZmKTooUy5zLnJSZWw/IiI6IiQiKStqaShTLnMucikrIjoiKyhTLmUuclJlbD8iIjoiJCIpK2ppKFMuZS5yKTooUy5z'@; put 'LmNSZWw/IiI6IiQiKStrYShTLnMuYykrIjoiKyhTLmUuY1JlbD8iIjoiJCIpK2thKFMuZS5jKX12YXIgS2w9e307ZnVuY3Rpb24gYnMoUyl7cmV0dXJuIHBhcnNlSW50KGZ1bmN0aW9uIFZsKFMpe3JldHVybiBTLnJlcGxhY2UoL1wkKFxkKykkLywiJDEiKX0oUyksMTApLTF9ZnVuY3Rpb24g'@; put 'amkoUyl7cmV0dXJuIiIrKFMrMSl9ZnVuY3Rpb24gU2EoUyl7Zm9yKHZhciBPPWZ1bmN0aW9uIFkwKFMpe3JldHVybiBTLnJlcGxhY2UoL15cJChbQS1aXSkvLCIkMSIpfShTKSxrPTAsSz0wO0shPT1PLmxlbmd0aDsrK0spaz0yNiprK08uY2hhckNvZGVBdChLKS02NDtyZXR1cm4gay0xfWZ1'@; put 'bmN0aW9uIGthKFMpe2lmKFM8MCl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY29sdW1uICIrUyk7dmFyIE89IiI7Zm9yKCsrUztTO1M9TWF0aC5mbG9vcigoUy0xKS8yNikpTz1TdHJpbmcuZnJvbUNoYXJDb2RlKChTLTEpJTI2KzY1KStPO3JldHVybiBPfWZ1bmN0aW9uIFZzKFMpe2Zvcih2'@; put 'YXIgTz0wLGs9MCxLPTA7SzxTLmxlbmd0aDsrK0spe3ZhciBlZT1TLmNoYXJDb2RlQXQoSyk7ZWU+PTQ4JiZlZTw9NTc/Tz0xMCpPKyhlZS00OCk6ZWU+PTY1JiZlZTw9OTAmJihrPTI2KmsrKGVlLTY0KSl9cmV0dXJue2M6ay0xLHI6Ty0xfX1mdW5jdGlvbiBxaShTKXtmb3IodmFyIE89Uy5j'@; put 'KzEsaz0iIjtPO089KE8tMSkvMjZ8MClrPVN0cmluZy5mcm9tQ2hhckNvZGUoKE8tMSklMjYrNjUpK2s7cmV0dXJuIGsrKFMucisxKX1mdW5jdGlvbiBTbyhTKXt2YXIgTz1TLmluZGV4T2YoIjoiKTtyZXR1cm4tMT09Tz97czpWcyhTKSxlOlZzKFMpfTp7czpWcyhTLnNsaWNlKDAsTykpLGU6'@; put 'VnMoUy5zbGljZShPKzEpKX19ZnVuY3Rpb24gcmEoUyxPKXtyZXR1cm4gdHlwZW9mIE8+InUifHwibnVtYmVyIj09dHlwZW9mIE8/cmEoUy5zLFMuZSk6KCJzdHJpbmciIT10eXBlb2YgUyYmKFM9cWkoUykpLCJzdHJpbmciIT10eXBlb2YgTyYmKE89cWkoTykpLFM9PU8/UzpTKyI6IitPKX1m'@; put 'dW5jdGlvbiBzcyhTKXt2YXIgTz1KU09OLnBhcnNlKCd7InMiOnsiYyI6MCwiciI6MH0sImUiOnsiYyI6MCwiciI6MH19Jyksaz0wLEs9MCxlZT0wLG9lPVMubGVuZ3RoO2ZvcihrPTA7SzxvZSYmISgoZWU9Uy5jaGFyQ29kZUF0KEspLTY0KTwxfHxlZT4yNik7KytLKWs9MjYqaytlZTtmb3Io'@; put 'Ty5zLmM9LS1rLGs9MDtLPG9lJiYhKChlZT1TLmNoYXJDb2RlQXQoSyktNDgpPDB8fGVlPjkpOysrSylrPTEwKmsrZWU7aWYoTy5zLnI9LS1rLEs9PT1vZXx8NTg9PT1TLmNoYXJDb2RlQXQoKytLKSlyZXR1cm4gTy5lLmM9Ty5zLmMsTy5lLnI9Ty5zLnIsTztmb3Ioaz0wO0shPW9lJiYhKChl'@; put 'ZT1TLmNoYXJDb2RlQXQoSyktNjQpPDF8fGVlPjI2KTsrK0spaz0yNiprK2VlO2ZvcihPLmUuYz0tLWssaz0wO0shPW9lJiYhKChlZT1TLmNoYXJDb2RlQXQoSyktNDgpPDB8fGVlPjkpOysrSylrPTEwKmsrZWU7cmV0dXJuIE8uZS5yPS0tayxPfWZ1bmN0aW9uIHQ1KFMsTyl7dmFyIGs9ImQi'@; put 'PT1TLnQmJk8gaW5zdGFuY2VvZiBEYXRlO2lmKG51bGwhPVMueil0cnl7cmV0dXJuIFMudz1BLmZvcm1hdChTLnosaz9KZShPKTpPKX1jYXRjaHt9dHJ5e3JldHVybiBTLnc9QS5mb3JtYXQoKFMuWEZ8fHt9KS5udW1GbXRJZHx8KGs/MTQ6MCksaz9KZShPKTpPKX1jYXRjaHtyZXR1cm4iIitP'@; put 'fX1mdW5jdGlvbiB5bChTLE8sayl7cmV0dXJuIG51bGw9PVN8fG51bGw9PVMudHx8InoiPT1TLnQ/IiI6dm9pZCAwIT09Uy53P1MudzooImQiPT1TLnQmJiFTLnomJmsmJmsuZGF0ZU5GJiYoUy56PWsuZGF0ZU5GKSwiZSI9PVMudD9DY1tTLnZdfHxTLnY6dDUoUyxudWxsPT1PP1MudjpPKSl9'@; put 'ZnVuY3Rpb24gdGgoUyxPKXt2YXIgaz1PJiZPLnNoZWV0P08uc2hlZXQ6IlNoZWV0MSIsSz17fTtyZXR1cm4gS1trXT1TLHtTaGVldE5hbWVzOltrXSxTaGVldHM6S319ZnVuY3Rpb24gZjQoUyxPLGspe3ZhciBLPWt8fHt9LGVlPVM/QXJyYXkuaXNBcnJheShTKTpLLmRlbnNlO251bGwhPXNl'@; put 'JiZudWxsPT1lZSYmKGVlPXNlKTt2YXIgb2U9U3x8KGVlP1tdOnt9KSxtZT0wLHBlPTA7aWYob2UmJm51bGwhPUsub3JpZ2luKXtpZigibnVtYmVyIj09dHlwZW9mIEsub3JpZ2luKW1lPUsub3JpZ2luO2Vsc2V7dmFyIGJlPSJzdHJpbmciPT10eXBlb2YgSy5vcmlnaW4/VnMoSy5vcmlnaW4p'@; put 'Oksub3JpZ2luO21lPWJlLnIscGU9YmUuY31vZVsiIXJlZiJdfHwob2VbIiFyZWYiXT0iQTE6QTEiKX12YXIgUGU9e3M6e2M6MWU3LHI6MWU3fSxlOntjOjAscjowfX07aWYob2VbIiFyZWYiXSl7dmFyIFZlPXNzKG9lWyIhcmVmIl0pO1BlLnMuYz1WZS5zLmMsUGUucy5yPVZlLnMucixQZS5l'@; put 'LmM9TWF0aC5tYXgoUGUuZS5jLFZlLmUuYyksUGUuZS5yPU1hdGgubWF4KFBlLmUucixWZS5lLnIpLC0xPT1tZSYmKFBlLmUucj1tZT1WZS5lLnIrMSl9Zm9yKHZhciBZZT0wO1llIT1PLmxlbmd0aDsrK1llKWlmKE9bWWVdKXtpZighQXJyYXkuaXNBcnJheShPW1llXSkpdGhyb3cgbmV3IEVy'@; put 'cm9yKCJhb2FfdG9fc2hlZXQgZXhwZWN0cyBhbiBhcnJheSBvZiBhcnJheXMiKTtmb3IodmFyIGV0PTA7ZXQhPU9bWWVdLmxlbmd0aDsrK2V0KWlmKCEodHlwZW9mIE9bWWVdW2V0XT4idSIpKXt2YXIgY3Q9e3Y6T1tZZV1bZXRdfSxUdD1tZStZZSxpdD1wZStldDtpZihQZS5zLnI+VHQmJihQ'@; put 'ZS5zLnI9VHQpLFBlLnMuYz5pdCYmKFBlLnMuYz1pdCksUGUuZS5yPFR0JiYoUGUuZS5yPVR0KSxQZS5lLmM8aXQmJihQZS5lLmM9aXQpLCFPW1llXVtldF18fCJvYmplY3QiIT10eXBlb2YgT1tZZV1bZXRdfHxBcnJheS5pc0FycmF5KE9bWWVdW2V0XSl8fE9bWWVdW2V0XWluc3RhbmNlb2Yg'@; put 'RGF0ZSlpZihBcnJheS5pc0FycmF5KGN0LnYpJiYoY3QuZj1PW1llXVtldF1bMV0sY3Qudj1jdC52WzBdKSxudWxsPT09Y3QudilpZihjdC5mKWN0LnQ9Im4iO2Vsc2UgaWYoSy5udWxsRXJyb3IpY3QudD0iZSIsY3Qudj0wO2Vsc2V7aWYoIUsuc2hlZXRTdHVicyljb250aW51ZTtjdC50PSJ6'@; put 'In1lbHNlIm51bWJlciI9PXR5cGVvZiBjdC52P2N0LnQ9Im4iOiJib29sZWFuIj09dHlwZW9mIGN0LnY/Y3QudD0iYiI6Y3QudiBpbnN0YW5jZW9mIERhdGU/KGN0Lno9Sy5kYXRlTkZ8fEEuX3RhYmxlWzE0XSxLLmNlbGxEYXRlcz8oY3QudD0iZCIsY3Qudz1BLmZvcm1hdChjdC56LEplKGN0'@; put 'LnYpKSk6KGN0LnQ9Im4iLGN0LnY9SmUoY3QudiksY3Qudz1BLmZvcm1hdChjdC56LGN0LnYpKSk6Y3QudD0icyI7ZWxzZSBjdD1PW1llXVtldF07aWYoY3QmJmN0LmgpdHJ5e2N0LlI9dmQuaHRtbF90b19ycyhjdC5oKSxjdC52PSIiO2Zvcih2YXIgYnQ9MDtidDxjdC5SLmxlbmd0aDsrK2J0'@; put 'KWN0LnYrPWN0LlJbYnRdLnZ8fCIifWNhdGNoe31pZihlZSlvZVtUdF18fChvZVtUdF09W10pLG9lW1R0XVtpdF0mJm9lW1R0XVtpdF0ucyYmKGN0LnM9b2VbVHRdW2l0XS5zKSxvZVtUdF1baXRdJiZvZVtUdF1baXRdLnomJihjdC56PW9lW1R0XVtpdF0ueiksb2VbVHRdW2l0XT1jdDtlbHNl'@; put 'e3ZhciBCdD1xaSh7YzppdCxyOlR0fSk7b2VbQnRdJiZvZVtCdF0ucyYmKGN0LnM9b2VbQnRdLnMpLG9lW0J0XSYmb2VbQnRdLnomJihjdC56PW9lW0J0XS56KSxvZVtCdF09Y3R9fX1yZXR1cm4gUGUucy5jPDFlNyYmKG9lWyIhcmVmIl09cmEoUGUpKSxvZX1mdW5jdGlvbiBwNChTLE8pe3Jl'@; put 'dHVybiBmNChudWxsLFMsTyl9ZnVuY3Rpb24gJDAoUyxPKXtyZXR1cm4gT3x8KE89dm4oNCkpLE8ud3JpdGVfc2hpZnQoNCxTKSxPfWZ1bmN0aW9uIGR1KFMpe3ZhciBPPVMucmVhZF9zaGlmdCg0KTtyZXR1cm4gMD09PU8/IiI6Uy5yZWFkX3NoaWZ0KE8sImRiY3MiKX1mdW5jdGlvbiBPYyhT'@; put 'LE8pe3ZhciBrPSExO3JldHVybiBudWxsPT1PJiYoaz0hMCxPPXZuKDQrMipTLmxlbmd0aCkpLE8ud3JpdGVfc2hpZnQoNCxTLmxlbmd0aCksUy5sZW5ndGg+MCYmTy53cml0ZV9zaGlmdCgwLFMsImRiY3MiKSxrP08uc2xpY2UoMCxPLmwpOk99ZnVuY3Rpb24gSHcoUyl7cmV0dXJue2ljaDpT'@; put 'LnJlYWRfc2hpZnQoMiksaWZudDpTLnJlYWRfc2hpZnQoMil9fWZ1bmN0aW9uIGlsKFMsTyl7dmFyIGs9Uy5sLEs9Uy5yZWFkX3NoaWZ0KDEpLGVlPWR1KFMpLG9lPVtdLG1lPXt0OmVlLGg6ZWV9O2lmKDEmSyl7Zm9yKHZhciBwZT1TLnJlYWRfc2hpZnQoNCksYmU9MDtiZSE9cGU7KytiZSlv'@; put 'ZS5wdXNoKEh3KFMpKTttZS5yPW9lfWVsc2UgbWUucj1be2ljaDowLGlmbnQ6MH1dO3JldHVybiBTLmw9aytPLG1lfSFmdW5jdGlvbihTLE8pe3ZhciBrO2lmKHR5cGVvZiBjcnlwdG9Ccm93c2VyaWZ5PCJ1IilrPWNyeXB0b0Jyb3dzZXJpZnk7ZWxzZSBpZih0eXBlb2YgTzwidSIpaz1PO2Vs'@; put 'c2UgdHJ5e2s9Yig5MTQyNil9Y2F0Y2h7az1udWxsfVMucmM0PWZ1bmN0aW9uKEssZWUpe3ZhciBvZT1uZXcgQXJyYXkoMjU2KSxtZT0wLHBlPTAsYmU9MCxQZT0wO2ZvcihwZT0wOzI1NiE9cGU7KytwZSlvZVtwZV09cGU7Zm9yKHBlPTA7MjU2IT1wZTsrK3BlKWJlPWJlK29lW3BlXStLW3Bl'@; put 'JUsubGVuZ3RoXS5jaGFyQ29kZUF0KDApJjI1NSxQZT1vZVtwZV0sb2VbcGVdPW9lW2JlXSxvZVtiZV09UGU7cGU9YmU9MDt2YXIgVmU9eihlZS5sZW5ndGgpO2ZvcihtZT0wO21lIT1lZS5sZW5ndGg7KyttZSlQZT1vZVtwZT1wZSsxJjI1NV0sb2VbcGVdPW9lW2JlPShiZStvZVtwZV0pJTI1'@; put 'Nl0sb2VbYmVdPVBlLFZlW21lXT1lZVttZV1eb2Vbb2VbcGVdK29lW2JlXSYyNTVdO3JldHVybiBWZX0sUy5tZDU9ZnVuY3Rpb24oSyl7aWYoIWspdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBjcnlwdG8iKTtyZXR1cm4gay5jcmVhdGVIYXNoKCJtZDUiKS51cGRhdGUoQnVmZmVyLmZy'@; put 'b20oSykpLmRpZ2VzdCgiaGV4Iil9fShLbCx0eXBlb2YgY3J5cHRvPCJ1Ij9jcnlwdG86dm9pZCAwKTt2YXIgTnc9aWw7ZnVuY3Rpb24gSTEoUyl7dmFyIE89Uy5yZWFkX3NoaWZ0KDQpLGs9Uy5yZWFkX3NoaWZ0KDIpO3JldHVybiBrKz1TLnJlYWRfc2hpZnQoMSk8PDE2LFMubCsrLHtjOk8s'@; put 'aVN0eWxlUmVmOmt9fWZ1bmN0aW9uIENyKFMsTyl7cmV0dXJuIG51bGw9PU8mJihPPXZuKDgpKSxPLndyaXRlX3NoaWZ0KC00LFMuYyksTy53cml0ZV9zaGlmdCgzLFMuaVN0eWxlUmVmfHxTLnMpLE8ud3JpdGVfc2hpZnQoMSwwKSxPfWZ1bmN0aW9uIGUyKFMpe3ZhciBPPVMucmVhZF9zaGlm'@; put 'dCgyKTtyZXR1cm4gTys9Uy5yZWFkX3NoaWZ0KDEpPDwxNixTLmwrKyx7YzotMSxpU3R5bGVSZWY6T319ZnVuY3Rpb24gaGkoUyxPKXtyZXR1cm4gbnVsbD09TyYmKE89dm4oNCkpLE8ud3JpdGVfc2hpZnQoMyxTLmlTdHlsZVJlZnx8Uy5zKSxPLndyaXRlX3NoaWZ0KDEsMCksT312YXIgbjU9'@; put 'ZHUscjU9T2M7ZnVuY3Rpb24gUXUoUyl7dmFyIE89Uy5yZWFkX3NoaWZ0KDQpO3JldHVybiAwPT09T3x8NDI5NDk2NzI5NT09PU8/IiI6Uy5yZWFkX3NoaWZ0KE8sImRiY3MiKX1mdW5jdGlvbiBiZihTLE8pe3ZhciBrPSExO3JldHVybiBudWxsPT1PJiYoaz0hMCxPPXZuKDEyNykpLE8ud3Jp'@; put 'dGVfc2hpZnQoNCxTLmxlbmd0aD4wP1MubGVuZ3RoOjQyOTQ5NjcyOTUpLFMubGVuZ3RoPjAmJk8ud3JpdGVfc2hpZnQoMCxTLCJkYmNzIiksaz9PLnNsaWNlKDAsTy5sKTpPfXZhciBhNT1kdSxnND1RdSxzNT1iZjtmdW5jdGlvbiBSMShTKXt2YXIgTz1TLnNsaWNlKFMubCxTLmwrNCksaz0x'@; put 'Jk9bMF0sSz0yJk9bMF07Uy5sKz00LE9bMF0mPTI1Mjt2YXIgZWU9MD09PUs/cm4oWzAsMCwwLDAsT1swXSxPWzFdLE9bMl0sT1szXV0sMCk6Tm8oTywwKT4+MjtyZXR1cm4gaz9lZS8xMDA6ZWV9ZnVuY3Rpb24gc3YoUyxPKXtudWxsPT1PJiYoTz12big0KSk7dmFyIGs9MCxLPTAsZWU9MTAw'@; put 'KlM7aWYoUz09KDB8UykmJlM+PS0oMTw8MjkpJiZTPDE8PDI5P0s9MTplZT09KDB8ZWUpJiZlZT49LSgxPDwyOSkmJmVlPDE8PDI5JiYoSz0xLGs9MSksIUspdGhyb3cgbmV3IEVycm9yKCJ1bnN1cHBvcnRlZCBSa051bWJlciAiK1MpO08ud3JpdGVfc2hpZnQoLTQsKChrP2VlOlMpPDwyKSso'@; put 'aysyKSl9ZnVuY3Rpb24gdWQoUyl7dmFyIE89e3M6e30sZTp7fX07cmV0dXJuIE8ucy5yPVMucmVhZF9zaGlmdCg0KSxPLmUucj1TLnJlYWRfc2hpZnQoNCksTy5zLmM9Uy5yZWFkX3NoaWZ0KDQpLE8uZS5jPVMucmVhZF9zaGlmdCg0KSxPfXZhciBodT11ZCxfZj1mdW5jdGlvbiBUNihTLE8p'@; put 'e3JldHVybiBPfHwoTz12bigxNikpLE8ud3JpdGVfc2hpZnQoNCxTLnMuciksTy53cml0ZV9zaGlmdCg0LFMuZS5yKSxPLndyaXRlX3NoaWZ0KDQsUy5zLmMpLE8ud3JpdGVfc2hpZnQoNCxTLmUuYyksT307ZnVuY3Rpb24gZTAoUyl7Zm9yKHZhciBPPVMucmVhZF9zaGlmdCg0KSxrPVtdLEs9'@; put 'MDtLPE87KytLKXt2YXIgZWU9aHUoUyk7ay5wdXNoKHJhKGVlKSl9cmV0dXJuIGsuam9pbigiLCIpfWZ1bmN0aW9uIFJsKFMpe2lmKFMubGVuZ3RoLVMubDw4KXRocm93IlhMUyBYbnVtIEJ1ZmZlciB1bmRlcmZsb3ciO3JldHVybiBTLnJlYWRfc2hpZnQoOCwiZiIpfWZ1bmN0aW9uIEl1KFMs'@; put 'Tyl7cmV0dXJuKE98fHZuKDgpKS53cml0ZV9zaGlmdCg4LFMsImYiKX1mdW5jdGlvbiB0MihTKXt2YXIgTz17fSxLPVMucmVhZF9zaGlmdCgxKT4+PjEsZWU9Uy5yZWFkX3NoaWZ0KDEpLG9lPVMucmVhZF9zaGlmdCgyLCJpIiksbWU9Uy5yZWFkX3NoaWZ0KDEpLHBlPVMucmVhZF9zaGlmdCgx'@; put 'KSxiZT1TLnJlYWRfc2hpZnQoMSk7c3dpdGNoKFMubCsrLEspe2Nhc2UgMDpPLmF1dG89MTticmVhaztjYXNlIDE6Ty5pbmRleD1lZTt2YXIgUGU9dDBbZWVdO1BlJiYoTy5yZ2I9cGQoUGUpKTticmVhaztjYXNlIDI6Ty5yZ2I9cGQoW21lLHBlLGJlXSk7YnJlYWs7Y2FzZSAzOk8udGhlbWU9'@; put 'ZWV9cmV0dXJuIDAhPW9lJiYoTy50aW50PW9lPjA/b2UvMzI3Njc6b2UvMzI3NjgpLE99ZnVuY3Rpb24gd2YoUyxPKXtpZihPfHwoTz12big4KSksIVN8fFMuYXV0bylyZXR1cm4gTy53cml0ZV9zaGlmdCg0LDApLE8ud3JpdGVfc2hpZnQoNCwwKSxPO251bGwhPVMuaW5kZXg/KE8ud3JpdGVf'@; put 'c2hpZnQoMSwyKSxPLndyaXRlX3NoaWZ0KDEsUy5pbmRleCkpOm51bGwhPVMudGhlbWU/KE8ud3JpdGVfc2hpZnQoMSw2KSxPLndyaXRlX3NoaWZ0KDEsUy50aGVtZSkpOihPLndyaXRlX3NoaWZ0KDEsNSksTy53cml0ZV9zaGlmdCgxLDApKTt2YXIgaz1TLnRpbnR8fDA7aWYoaz4wP2sqPTMy'@; put 'NzY3Oms8MCYmKGsqPTMyNzY4KSxPLndyaXRlX3NoaWZ0KDIsayksUy5yZ2ImJm51bGw9PVMudGhlbWUpe3ZhciBLPVMucmdifHwiRkZGRkZGIjsibnVtYmVyIj09dHlwZW9mIEsmJihLPSgiMDAwMDAwIitLLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTYpKSxPLndyaXRlX3NoaWZ0KDEscGFyc2VJ'@; put 'bnQoSy5zbGljZSgwLDIpLDE2KSksTy53cml0ZV9zaGlmdCgxLHBhcnNlSW50KEsuc2xpY2UoMiw0KSwxNikpLE8ud3JpdGVfc2hpZnQoMSxwYXJzZUludChLLnNsaWNlKDQsNiksMTYpKSxPLndyaXRlX3NoaWZ0KDEsMjU1KX1lbHNlIE8ud3JpdGVfc2hpZnQoMiwwKSxPLndyaXRlX3NoaWZ0'@; put 'KDEsMCksTy53cml0ZV9zaGlmdCgxLDApO3JldHVybiBPfWZ1bmN0aW9uIFZ3KFMpe3ZhciBPPVMucmVhZF9zaGlmdCgxKTtyZXR1cm4gUy5sKysse2ZCb2xkOjEmTyxmSXRhbGljOjImTyxmVW5kZXJsaW5lOjQmTyxmU3RyaWtlb3V0OjgmTyxmT3V0bGluZToxNiZPLGZTaGFkb3c6MzImTyxm'@; put 'Q29uZGVuc2U6NjQmTyxmRXh0ZW5kOjEyOCZPfX1mdW5jdGlvbiBCdyhTLE8pe3ZhciBLPVMucmVhZF9zaGlmdCg0KTtzd2l0Y2goSyl7Y2FzZSAwOnJldHVybiIiO2Nhc2UgNDI5NDk2NzI5NTpjYXNlIDQyOTQ5NjcyOTQ6cmV0dXJuezI6IkJJVE1BUCIsMzoiTUVUQUZJTEVQSUNUIiw4OiJE'@; put 'SUIiLDE0OiJFTkhNRVRBRklMRSJ9W1MucmVhZF9zaGlmdCg0KV18fCIifWlmKEs+NDAwKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgQ2xpcGJvYXJkOiAiK0sudG9TdHJpbmcoMTYpKTtyZXR1cm4gUy5sLT00LFMucmVhZF9zaGlmdCgwLDE9PU8/Imxwc3RyIjoibHB3c3RyIil9dmFy'@; put 'IG4yPTIsWGw9MyxrMD0xMixWbj04MSxqdz1bODAsVm5dLG00PXsxOntuOiJDb2RlUGFnZSIsdDpuMn0sMjp7bjoiQ2F0ZWdvcnkiLHQ6ODB9LDM6e246IlByZXNlbnRhdGlvbkZvcm1hdCIsdDo4MH0sNDp7bjoiQnl0ZUNvdW50Iix0OlhsfSw1OntuOiJMaW5lQ291bnQiLHQ6WGx9LDY6e246'@; put 'IlBhcmFncmFwaENvdW50Iix0OlhsfSw3OntuOiJTbGlkZUNvdW50Iix0OlhsfSw4OntuOiJOb3RlQ291bnQiLHQ6WGx9LDk6e246IkhpZGRlbkNvdW50Iix0OlhsfSwxMDp7bjoiTXVsdGltZWRpYUNsaXBDb3VudCIsdDpYbH0sMTE6e246IlNjYWxlQ3JvcCIsdDoxMX0sMTI6e246IkhlYWRp'@; put 'bmdQYWlycyIsdDo0MDk2fGswfSwxMzp7bjoiVGl0bGVzT2ZQYXJ0cyIsdDo0MTI2fSwxNDp7bjoiTWFuYWdlciIsdDo4MH0sMTU6e246IkNvbXBhbnkiLHQ6ODB9LDE2OntuOiJMaW5rc1VwVG9EYXRlIix0OjExfSwxNzp7bjoiQ2hhcmFjdGVyQ291bnQiLHQ6WGx9LDE5OntuOiJTaGFyZWRE'@; put 'b2MiLHQ6MTF9LDIyOntuOiJIeXBlcmxpbmtzQ2hhbmdlZCIsdDoxMX0sMjM6e246IkFwcFZlcnNpb24iLHQ6WGwscDoidmVyc2lvbiJ9LDI0OntuOiJEaWdTaWciLHQ6NjV9LDI2OntuOiJDb250ZW50VHlwZSIsdDo4MH0sMjc6e246IkNvbnRlbnRTdGF0dXMiLHQ6ODB9LDI4OntuOiJMYW5n'@; put 'dWFnZSIsdDo4MH0sMjk6e246IlZlcnNpb24iLHQ6ODB9LDI1NTp7fSwyMTQ3NDgzNjQ4OntuOiJMb2NhbGUiLHQ6MTl9LDIxNDc0ODM2NTE6e246IkJlaGF2aW9yIix0OjE5fSwxOTE5MDU0NDM0Ont9fSxsNT17MTp7bjoiQ29kZVBhZ2UiLHQ6bjJ9LDI6e246IlRpdGxlIix0OjgwfSwzOntu'@; put 'OiJTdWJqZWN0Iix0OjgwfSw0OntuOiJBdXRob3IiLHQ6ODB9LDU6e246IktleXdvcmRzIix0OjgwfSw2OntuOiJDb21tZW50cyIsdDo4MH0sNzp7bjoiVGVtcGxhdGUiLHQ6ODB9LDg6e246Ikxhc3RBdXRob3IiLHQ6ODB9LDk6e246IlJldk51bWJlciIsdDo4MH0sMTA6e246IkVkaXRUaW1l'@; put 'Iix0OjY0fSwxMTp7bjoiTGFzdFByaW50ZWQiLHQ6NjR9LDEyOntuOiJDcmVhdGVkRGF0ZSIsdDo2NH0sMTM6e246Ik1vZGlmaWVkRGF0ZSIsdDo2NH0sMTQ6e246IlBhZ2VDb3VudCIsdDpYbH0sMTU6e246IldvcmRDb3VudCIsdDpYbH0sMTY6e246IkNoYXJDb3VudCIsdDpYbH0sMTc6e246'@; put 'IlRodW1ibmFpbCIsdDo3MX0sMTg6e246IkFwcGxpY2F0aW9uIix0OjgwfSwxOTp7bjoiRG9jU2VjdXJpdHkiLHQ6WGx9LDI1NTp7fSwyMTQ3NDgzNjQ4OntuOiJMb2NhbGUiLHQ6MTl9LDIxNDc0ODM2NTE6e246IkJlaGF2aW9yIix0OjE5fSwxOTE5MDU0NDM0Ont9fSxjNT1JZShtNCwibiIp'@; put 'LENmPUllKGw1LCJuIiksRDY9ezE6IlVTIiwyOiJDQSIsMzoiIiw3OiJSVSIsMjA6IkVHIiwzMDoiR1IiLDMxOiJOTCIsMzI6IkJFIiwzMzoiRlIiLDM0OiJFUyIsMzY6IkhVIiwzOToiSVQiLDQxOiJDSCIsNDM6IkFUIiw0NDoiR0IiLDQ1OiJESyIsNDY6IlNFIiw0NzoiTk8iLDQ4OiJQTCIs'@; put 'NDk6IkRFIiw1MjoiTVgiLDU1OiJCUiIsNjE6IkFVIiw2NDoiTloiLDY2OiJUSCIsODE6IkpQIiw4MjoiS1IiLDg0OiJWTiIsODY6IkNOIiw5MDoiVFIiLDEwNToiSlMiLDIxMzoiRFoiLDIxNjoiTUEiLDIxODoiTFkiLDM1MToiUFQiLDM1NDoiSVMiLDM1ODoiRkkiLDQyMDoiQ1oiLDg4Njoi'@; put 'VFciLDk2MToiTEIiLDk2MjoiSk8iLDk2MzoiU1kiLDk2NDoiSVEiLDk2NToiS1ciLDk2NjoiU0EiLDk3MToiQUUiLDk3MjoiSUwiLDk3NDoiUUEiLDk4MToiSVIiLDY1NTM1OiJVUyJ9LGx2PVtudWxsLCJzb2xpZCIsIm1lZGl1bUdyYXkiLCJkYXJrR3JheSIsImxpZ2h0R3JheSIsImRhcmtI'@; put 'b3Jpem9udGFsIiwiZGFya1ZlcnRpY2FsIiwiZGFya0Rvd24iLCJkYXJrVXAiLCJkYXJrR3JpZCIsImRhcmtUcmVsbGlzIiwibGlnaHRIb3Jpem9udGFsIiwibGlnaHRWZXJ0aWNhbCIsImxpZ2h0RG93biIsImxpZ2h0VXAiLCJsaWdodEdyaWQiLCJsaWdodFRyZWxsaXMiLCJncmF5MTI1Iiwi'@; put 'Z3JheTA2MjUiXTtmdW5jdGlvbiBJNihTKXtyZXR1cm4gUy5tYXAoZnVuY3Rpb24oTyl7cmV0dXJuW08+PjE2JjI1NSxPPj44JjI1NSwyNTUmT119KX12YXIgdjQ9STYoWzAsMTY3NzcyMTUsMTY3MTE2ODAsNjUyODAsMjU1LDE2Nzc2OTYwLDE2NzExOTM1LDY1NTM1LDAsMTY3NzcyMTUsMTY3'@; put 'MTE2ODAsNjUyODAsMjU1LDE2Nzc2OTYwLDE2NzExOTM1LDY1NTM1LDgzODg2MDgsMzI3NjgsMTI4LDg0MjEzNzYsODM4ODczNiwzMjg5NiwxMjYzMjI1Niw4NDIxNTA0LDEwMDY2NDMxLDEwMDQwMTY2LDE2Nzc3MTY0LDEzNDM0ODc5LDY2ODQ3NzQsMTY3NDQ1NzYsMjYzMTYsMTM0MjE4MjMs'@; put 'MTI4LDE2NzExOTM1LDE2Nzc2OTYwLDY1NTM1LDgzODg3MzYsODM4ODYwOCwzMjg5NiwyNTUsNTI0NzksMTM0MzQ4NzksMTM0MzQ4MjgsMTY3NzcxMTMsMTAwNzk0ODcsMTY3NTEwNTIsMTM0MDg3NjcsMTY3NjQwNTcsMzM2ODcwMywzMzk0NzY0LDEwMDc5MjMyLDE2NzYzOTA0LDE2NzUwODQ4'@; put 'LDE2NzM3NzkyLDY3MTA5MzcsOTg2ODk1MCwxMzE1OCwzMzgxNjA2LDEzMDU2LDMzNTUzOTIsMTAwNDAwNjQsMTAwNDAxNjYsMzM1NTU0NSwzMzU1NDQzLDAsMTY3NzcyMTUsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF0pLHQwPUp0KHY0KSx6dz1JNihbMTI2MzIyNTYsOTg2ODk1'@; put 'MCw4NDIxNTA0LDY3MTA4ODYsMzM1NTQ0MywxNjcxMTY4MCwzMjc2OCwxMzM2OTQ5NywxMjgsMzM5NDU2MCwyNjM2NywxMDAyNzIxMiwxMDA1MzE3MSwxMjgsMzI3NjgsODM4ODYwOCwzMjg5Niw4Mzg4NzM2LDg0MjEzNzYsMTM2MzE0ODgsMTQ1Mzk5OTQsMTMwNjg4NTAsMTM5MjQzNTIsOTk2'@; put 'NzQ5Niw5MTc1MjY3LDkxOTUwMDgsMzY4MzUzNywxMDY5MjU4LDg4ODA4OTksNzQ5NDY0LDI4OTM0NzYsMTE3NDU3MzAsMzc1MDIwMSwxNTU1OTUwMywxODM3OTQxLDEyMDg0MzU5LDc2MzIyNTAsNzM2MzMyOCw5NTE0NTg4LDgyODg2MTcsMzAzNjgxNCwxMTE4NDgxMF0pLENjPXswOiIjTlVM'@; put 'TCEiLDc6IiNESVYvMCEiLDE1OiIjVkFMVUUhIiwyMzoiI1JFRiEiLDI5OiIjTkFNRT8iLDM2OiIjTlVNISIsNDI6IiNOL0EiLDQzOiIjR0VUVElOR19EQVRBIiwyNTU6IiNXVEY/In0sRjM9RGUoQ2MpLHk0PXsiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50'@; put 'LnNwcmVhZHNoZWV0bWwuc2hlZXQubWFpbit4bWwiOiJ3b3JrYm9va3MiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuYmluSW5kZXhXcyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuaW50bG1hY3Jvc2hlZXQiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmJp'@; put 'bkluZGV4TXMiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLXBhY2thZ2UuY29yZS1wcm9wZXJ0aWVzK3htbCI6ImNvcmVwcm9wcyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5jdXN0b20tcHJvcGVydGllcyt4bWwiOiJjdXN0'@; put 'cHJvcHMiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZXh0ZW5kZWQtcHJvcGVydGllcyt4bWwiOiJleHRwcm9wcyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5jdXN0b21YbWxQcm9wZXJ0aWVzK3htbCI6ImN1'@; put 'c3RvbXhtbHByb3BzIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY3VzdG9tUHJvcGVydHkiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnBpdm90VGFibGUiOiJwaXZvdHMiLCJhcHBsaWNhdGlvbi92bmQub3Bl'@; put 'bnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5waXZvdFRhYmxlK3htbCI6InBpdm90cyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuY2hhcnQreG1sIjoiY2hhcnRvYmpzIiwiYXBwbGljYXRpb24vdm5kLm1z'@; put 'LW9mZmljZS5jaGFydGNvbG9yc3R5bGUreG1sIjoiY2hhcnRjb2xvcnMiLCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNlLmNoYXJ0c3R5bGUreG1sIjoiY2hhcnRzdHlsZXMiLCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNlLmNoYXJ0ZXgreG1sIjoiY2hhcnRleHMiLCJhcHBsaWNhdGlvbi92'@; put 'bmQubXMtZXhjZWwuY2FsY0NoYWluIjoiY2FsY2NoYWlucyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmNhbGNDaGFpbit4bWwiOiJjYWxjY2hhaW5zIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRv'@; put 'Y3VtZW50LnNwcmVhZHNoZWV0bWwucHJpbnRlclNldHRpbmdzIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2UuYWN0aXZlWCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNlLmFjdGl2ZVgreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5hdHRh'@; put 'Y2hlZFRvb2xiYXJzIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5jb25uZWN0aW9ucyI6ImNvbm5zIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY29ubmVjdGlvbnMreG1sIjoiY29ubnMiLCJhcHBsaWNhdGlv'@; put 'bi92bmQubXMtZXhjZWwuZXh0ZXJuYWxMaW5rIjoibGlua3MiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5leHRlcm5hbExpbmsreG1sIjoibGlua3MiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc2hlZXRNZXRhZGF0YSI6'@; put 'IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldE1ldGFkYXRhK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwucGl2b3RDYWNoZURlZmluaXRpb24iOiJwaXZvdGNhY2hlcyIsImFwcGxpY2F0'@; put 'aW9uL3ZuZC5tcy1leGNlbC5waXZvdENhY2hlUmVjb3JkcyI6InBpdm90cmVjb3JkcyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnBpdm90Q2FjaGVEZWZpbml0aW9uK3htbCI6InBpdm90Y2FjaGVzIiwiYXBwbGljYXRpb24v'@; put 'dm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucGl2b3RDYWNoZVJlY29yZHMreG1sIjoicGl2b3RyZWNvcmRzIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnF1ZXJ5VGFibGUiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9m'@; put 'ZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucXVlcnlUYWJsZSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnVzZXJOYW1lcyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwucmV2aXNpb25IZWFkZXJzIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1l'@; put 'eGNlbC5yZXZpc2lvbkxvZyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5yZXZpc2lvbkhlYWRlcnMreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJl'@; put 'YWRzaGVldG1sLnJldmlzaW9uTG9nK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC51c2VyTmFtZXMreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC50YWJsZVNpbmdsZUNlbGxzIjoiVE9E'@; put 'TyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnRhYmxlU2luZ2xlQ2VsbHMreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zbGljZXIiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNsaWNl'@; put 'ckNhY2hlIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zbGljZXIreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zbGljZXJDYWNoZSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLndzU29ydE1hcCI6IlRPRE8iLCJhcHBsaWNhdGlv'@; put 'bi92bmQubXMtZXhjZWwudGFibGUiOiJ0YWJsZXMiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC50YWJsZSt4bWwiOiJ0YWJsZXMiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQudGhlbWUr'@; put 'eG1sIjoidGhlbWVzIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnRoZW1lT3ZlcnJpZGUreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5UaW1lbGluZSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLlRpbWVs'@; put 'aW5lQ2FjaGUreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2UudmJhUHJvamVjdCI6InZiYSIsImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2UudmJhUHJvamVjdFNpZ25hdHVyZSI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNlLnZvbGF0aWxlRGVwZW5kZW5j'@; put 'aWVzIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnZvbGF0aWxlRGVwZW5kZW5jaWVzK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuY29udHJvbHByb3BlcnRpZXMreG1sIjoiY3RybHByb3Bz'@; put 'IiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50Lm1vZGVsK2RhdGEiOiJkYXRhbW9kZWxzIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLlN1cnZleSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50'@; put 'LmRyYXdpbmcreG1sIjoiZHJhd2luZ3MiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmNoYXJ0c2hhcGVzK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmRp'@; put 'YWdyYW1Db2xvcnMreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuZGlhZ3JhbURhdGEreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuZGlh'@; put 'Z3JhbUxheW91dCt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5kaWFncmFtU3R5bGUreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC52bWxEcmF3aW5nIjoi'@; put 'VE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLnJlbGF0aW9uc2hpcHMreG1sIjoicmVscyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5vbGVPYmplY3QiOiJUT0RPIiwiaW1hZ2UvcG5nIjoiVE9ETyIsc2hlZXQ6Impz'@; put 'In0sY3Y9ZnVuY3Rpb24oKXt2YXIgUz17d29ya2Jvb2tzOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldC5tYWluK3htbCIseGxzbToiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNoZWV0Lm1hY3JvRW5hYmxl'@; put 'ZC5tYWluK3htbCIseGxzYjoiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNoZWV0LmJpbmFyeS5tYWNyb0VuYWJsZWQubWFpbiIseGxhbToiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmFkZGluLm1hY3JvRW5hYmxlZC5tYWluK3htbCIseGx0eDoiYXBwbGljYXRpb24vdm5kLm9wZW54bWxm'@; put 'b3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudGVtcGxhdGUubWFpbit4bWwifSxzdHJzOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGFyZWRTdHJpbmdzK3htbCIseGxzYjoiYXBwbGljYXRpb24v'@; put 'dm5kLm1zLWV4Y2VsLnNoYXJlZFN0cmluZ3MifSxjb21tZW50czp7eGxzeDoiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY29tbWVudHMreG1sIix4bHNiOiJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuY29tbWVudHMifSxzaGVl'@; put 'dHM6e3hsc3g6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLndvcmtzaGVldCt4bWwiLHhsc2I6ImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC53b3Jrc2hlZXQifSxjaGFydHM6e3hsc3g6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1s'@; put 'Zm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmNoYXJ0c2hlZXQreG1sIix4bHNiOiJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuY2hhcnRzaGVldCJ9LGRpYWxvZ3M6e3hsc3g6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRz'@; put 'aGVldG1sLmRpYWxvZ3NoZWV0K3htbCIseGxzYjoiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmRpYWxvZ3NoZWV0In0sbWFjcm9zOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwubWFjcm9zaGVldCt4bWwiLHhsc2I6ImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5tYWNyb3NoZWV0'@; put 'In0sdGFibGVzOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC50YWJsZSt4bWwiLHhsc2I6ImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC50YWJsZSJ9LHBpdm90czp7eGxzeDoiYXBwbGljYXRpb24vdm5kLm9wZW54bWxm'@; put 'b3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucGl2b3RUYWJsZSt4bWwiLHhsc2I6ImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5waXZvdFRhYmxlIn0scGl2b3RjYWNoZXM6e3hsc3g6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJl'@; put 'YWRzaGVldG1sLnBpdm90Q2FjaGVEZWZpbml0aW9uK3htbCIseGxzYjoiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnBpdm90Q2FjaGVEZWZpbml0aW9uIn0scGl2b3RyZWNvcmRzOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hl'@; put 'ZXRtbC5waXZvdENhY2hlUmVjb3Jkcyt4bWwiLHhsc2I6ImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5waXZvdENhY2hlUmVjb3JkcyJ9LGNvbm5zOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jb25uZWN0aW9ucyt4'@; put 'bWwiLHhsc2I6ImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5jb25uZWN0aW9ucyJ9LGxpbmtzOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5leHRlcm5hbExpbmsreG1sIix4bHNiOiJhcHBsaWNhdGlvbi92bmQubXMt'@; put 'ZXhjZWwuZXh0ZXJuYWxMaW5rIn0sc3R5bGVzOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zdHlsZXMreG1sIix4bHNiOiJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc3R5bGVzIn19O3JldHVybiBSZShTKS5mb3JF'@; put 'YWNoKGZ1bmN0aW9uKE8pe1sieGxzbSIsInhsYW0iXS5mb3JFYWNoKGZ1bmN0aW9uKGspe1NbT11ba118fChTW09dW2tdPVNbT10ueGxzeCl9KX0pLFJlKFMpLmZvckVhY2goZnVuY3Rpb24oTyl7UmUoU1tPXSkuZm9yRWFjaChmdW5jdGlvbihrKXt5NFtTW09dW2tdXT1PfSl9KSxTfSgpLHV2'@; put 'PWZ1bmN0aW9uIGtlKFMpe2Zvcih2YXIgTz1bXSxrPVJlKFMpLEs9MDtLIT09ay5sZW5ndGg7KytLKW51bGw9PU9bU1trW0tdXV0mJihPW1Nba1tLXV1dPVtdKSxPW1Nba1tLXV1dLnB1c2goa1tLXSk7cmV0dXJuIE99KHk0KTtHaS5DVD0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMu'@; put 'b3JnL3BhY2thZ2UvMjAwNi9jb250ZW50LXR5cGVzIjt2YXIgaHY9SHIoIlR5cGVzIixudWxsLHt4bWxuczpHaS5DVCwieG1sbnM6eHNkIjpHaS54c2QsInhtbG5zOnhzaSI6R2kueHNpfSksWnc9W1sieG1sIiwiYXBwbGljYXRpb24veG1sIl0sWyJiaW4iLCJhcHBsaWNhdGlvbi92bmQubXMt'@; put 'ZXhjZWwuc2hlZXQuYmluYXJ5Lm1hY3JvRW5hYmxlZC5tYWluIl0sWyJ2bWwiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQudm1sRHJhd2luZyJdLFsiZGF0YSIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5tb2Rl'@; put 'bCtkYXRhIl0sWyJibXAiLCJpbWFnZS9ibXAiXSxbInBuZyIsImltYWdlL3BuZyJdLFsiZ2lmIiwiaW1hZ2UvZ2lmIl0sWyJlbWYiLCJpbWFnZS94LWVtZiJdLFsid21mIiwiaW1hZ2UveC13bWYiXSxbImpwZyIsImltYWdlL2pwZWciXSxbImpwZWciLCJpbWFnZS9qcGVnIl0sWyJ0aWYiLCJp'@; put 'bWFnZS90aWZmIl0sWyJ0aWZmIiwiaW1hZ2UvdGlmZiJdLFsicGRmIiwiYXBwbGljYXRpb24vcGRmIl0sWyJyZWxzIix1di5yZWxzWzBdXV0ubWFwKGZ1bmN0aW9uKFMpe3JldHVybiBIcigiRGVmYXVsdCIsbnVsbCx7RXh0ZW5zaW9uOlNbMF0sQ29udGVudFR5cGU6U1sxXX0pfSksWGE9e1dC'@; put 'OiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL29mZmljZURvY3VtZW50IixTSEVFVDoiaHR0cDovL3NoZWV0anMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9vZmZp'@; put 'Y2VEb2N1bWVudCIsSExJTks6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvaHlwZXJsaW5rIixWTUw6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9u'@; put 'c2hpcHMvdm1sRHJhd2luZyIsWFBBVEg6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvZXh0ZXJuYWxMaW5rUGF0aCIsWE1JU1M6Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlLzIwMDYvcmVsYXRp'@; put 'b25zaGlwcy94bEV4dGVybmFsTGlua1BhdGgveGxQYXRoTWlzc2luZyIsWExJTks6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvZXh0ZXJuYWxMaW5rIixDWE1MOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0'@; put 'cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL2N1c3RvbVhtbCIsQ1hNTFA6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvY3VzdG9tWG1sUHJvcHMiLFZCQToiaHR0cDovL3NjaGVtYXMubWlj'@; put 'cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNi9yZWxhdGlvbnNoaXBzL3ZiYVByb2plY3QifTtmdW5jdGlvbiBOcihTKXt2YXIgTz1TLmxhc3RJbmRleE9mKCIvIik7cmV0dXJuIFMuc2xpY2UoMCxPKzEpKyJfcmVscy8iK1Muc2xpY2UoTysxKSsiLnJlbHMifWZ1bmN0aW9uIFNmKFMsTyl7dmFyIGs9'@; put 'eyIhaWQiOnt9fTtpZighUylyZXR1cm4gazsiLyIhPT1PLmNoYXJBdCgwKSYmKE89Ii8iK08pO3ZhciBLPXt9O3JldHVybihTLm1hdGNoKHRuKXx8W10pLmZvckVhY2goZnVuY3Rpb24oZWUpe3ZhciBvZT15cihlZSk7aWYoIjxSZWxhdGlvbnNoaXAiPT09b2VbMF0pe3ZhciBtZT17fTttZS5U'@; put 'eXBlPW9lLlR5cGUsbWUuVGFyZ2V0PW9lLlRhcmdldCxtZS5JZD1vZS5JZCxtZS5UYXJnZXRNb2RlPW9lLlRhcmdldE1vZGU7dmFyIHBlPSJFeHRlcm5hbCI9PT1vZS5UYXJnZXRNb2RlP29lLlRhcmdldDpmbihvZS5UYXJnZXQsTyk7a1twZV09bWUsS1tvZS5JZF09bWV9fSksa1siIWlkIl09'@; put 'SyxrfUdpLlJFTFM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvcmVsYXRpb25zaGlwcyI7dmFyIHU1PUhyKCJSZWxhdGlvbnNoaXBzIixudWxsLHt4bWxuczpHaS5SRUxTfSk7ZnVuY3Rpb24gQWkoUyl7dmFyIE89W0RpLHU1XTtyZXR1cm4gUmUoU1si'@; put 'IWlkIl0pLmZvckVhY2goZnVuY3Rpb24oayl7T1tPLmxlbmd0aF09SHIoIlJlbGF0aW9uc2hpcCIsbnVsbCxTWyIhaWQiXVtrXSl9KSxPLmxlbmd0aD4yJiYoT1tPLmxlbmd0aF09IjwvUmVsYXRpb25zaGlwcz4iLE9bMV09T1sxXS5yZXBsYWNlKCIvPiIsIj4iKSksTy5qb2luKCIiKX12YXIg'@; put 'YjQ9W1hhLkhMSU5LLFhhLlhQQVRILFhhLlhNSVNTXTtmdW5jdGlvbiBFcihTLE8sayxLLGVlLG9lKXtpZihlZXx8KGVlPXt9KSxTWyIhaWQiXXx8KFNbIiFpZCJdPXt9KSxPPDApZm9yKE89MTtTWyIhaWQiXVsicklkIitPXTsrK08pO2lmKGVlLklkPSJySWQiK08sZWUuVHlwZT1LLGVlLlRh'@; put 'cmdldD1rLG9lP2VlLlRhcmdldE1vZGU9b2U6YjQuaW5kZXhPZihlZS5UeXBlKT4tMSYmKGVlLlRhcmdldE1vZGU9IkV4dGVybmFsIiksU1siIWlkIl1bZWUuSWRdKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHJld3JpdGUgcklkICIrTyk7cmV0dXJuIFNbIiFpZCJdW2VlLklkXT1lZSxTWygi'@; put 'LyIrZWUuVGFyZ2V0KS5yZXBsYWNlKCIvLyIsIi8iKV09ZWUsT312YXIgYWw9ImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuc3ByZWFkc2hlZXQiO2Z1bmN0aW9uIHFjKFMsTyxrKXtyZXR1cm5bJyAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IicrUysnIj5cbicsJyAg'@; put 'ICA8cmRmOnR5cGUgcmRmOnJlc291cmNlPSJodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy9ucy9vZmZpY2UvMS4yL21ldGEvJysoa3x8Im9kZiIpKyIjIitPKyciLz5cbicsIiAgPC9yZGY6RGVzY3JpcHRpb24+XG4iXS5qb2luKCIiKX1mdW5jdGlvbiBhMihTLE8pe3JldHVyblsnICA8cmRm'@; put 'OkRlc2NyaXB0aW9uIHJkZjphYm91dD0iJytTKyciPlxuJywnICAgIDxuczA6aGFzUGFydCB4bWxuczpuczA9Imh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL25zL29mZmljZS8xLjIvbWV0YS9wa2cjIiByZGY6cmVzb3VyY2U9IicrTysnIi8+XG4nLCIgIDwvcmRmOkRlc2NyaXB0aW9uPlxu'@; put 'Il0uam9pbigiIil9dmFyIFI2PWZ1bmN0aW9uKCl7dmFyIFM9JzxvZmZpY2U6ZG9jdW1lbnQtbWV0YSB4bWxuczpvZmZpY2U9InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6b2ZmaWNlOjEuMCIgeG1sbnM6bWV0YT0idXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVu'@; put 'dDp4bWxuczptZXRhOjEuMCIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgb2ZmaWNlOnZlcnNpb249IjEuMiI+PG9mZmljZTptZXRhPjxtZXRhOmdlbmVyYXRvcj5TaGVldEpTICcr'@; put 'dy52ZXJzaW9uKyI8L21ldGE6Z2VuZXJhdG9yPjwvb2ZmaWNlOm1ldGE+PC9vZmZpY2U6ZG9jdW1lbnQtbWV0YT4iO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBTfX0oKSxEMD1bWyJjcDpjYXRlZ29yeSIsIkNhdGVnb3J5Il0sWyJjcDpjb250ZW50U3RhdHVzIiwiQ29udGVudFN0YXR1cyJd'@; put 'LFsiY3A6a2V5d29yZHMiLCJLZXl3b3JkcyJdLFsiY3A6bGFzdE1vZGlmaWVkQnkiLCJMYXN0QXV0aG9yIl0sWyJjcDpsYXN0UHJpbnRlZCIsIkxhc3RQcmludGVkIl0sWyJjcDpyZXZpc2lvbiIsIlJldk51bWJlciJdLFsiY3A6dmVyc2lvbiIsIlZlcnNpb24iXSxbImRjOmNyZWF0b3IiLCJB'@; put 'dXRob3IiXSxbImRjOmRlc2NyaXB0aW9uIiwiQ29tbWVudHMiXSxbImRjOmlkZW50aWZpZXIiLCJJZGVudGlmaWVyIl0sWyJkYzpsYW5ndWFnZSIsIkxhbmd1YWdlIl0sWyJkYzpzdWJqZWN0IiwiU3ViamVjdCJdLFsiZGM6dGl0bGUiLCJUaXRsZSJdLFsiZGN0ZXJtczpjcmVhdGVkIiwiQ3Jl'@; put 'YXRlZERhdGUiLCJkYXRlIl0sWyJkY3Rlcm1zOm1vZGlmaWVkIiwiTW9kaWZpZWREYXRlIiwiZGF0ZSJdXTtHaS5DT1JFX1BST1BTPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L21ldGFkYXRhL2NvcmUtcHJvcGVydGllcyIsWGEuQ09SRV9QUk9QUz0i'@; put 'aHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9yZWxhdGlvbnNoaXBzL21ldGFkYXRhL2NvcmUtcHJvcGVydGllcyI7dmFyIGQ1PWZ1bmN0aW9uKCl7Zm9yKHZhciBTPW5ldyBBcnJheShEMC5sZW5ndGgpLE89MDtPPEQwLmxlbmd0aDsrK08pe3ZhciBrPUQw'@; put 'W09dLEs9Iig/OiIra1swXS5zbGljZSgwLGtbMF0uaW5kZXhPZigiOiIpKSsiOikiK2tbMF0uc2xpY2Uoa1swXS5pbmRleE9mKCI6IikrMSk7U1tPXT1uZXcgUmVnRXhwKCI8IitLKyJbXj5dKj4oW1xcc1xcU10qPyk8LyIrSysiPiIpfXJldHVybiBTfSgpO2Z1bmN0aW9uIGZ2KFMpe3ZhciBP'@; put 'PXt9O1M9ZnMoUyk7Zm9yKHZhciBrPTA7azxEMC5sZW5ndGg7KytrKXt2YXIgSz1EMFtrXSxlZT1TLm1hdGNoKGQ1W2tdKTtudWxsIT1lZSYmZWUubGVuZ3RoPjAmJihPW0tbMV1dPVFyKGVlWzFdKSksImRhdGUiPT09S1syXSYmT1tLWzFdXSYmKE9bS1sxXV09TmUoT1tLWzFdXSkpfXJldHVy'@; put 'biBPfXZhciBZdz1IcigiY3A6Y29yZVByb3BlcnRpZXMiLG51bGwseyJ4bWxuczpjcCI6R2kuQ09SRV9QUk9QUywieG1sbnM6ZGMiOkdpLmRjLCJ4bWxuczpkY3Rlcm1zIjpHaS5kY3Rlcm1zLCJ4bWxuczpkY21pdHlwZSI6R2kuZGNtaXR5cGUsInhtbG5zOnhzaSI6R2kueHNpfSk7ZnVuY3Rp'@; put 'b24gTWYoUyxPLGssSyxlZSl7bnVsbCE9ZWVbU118fG51bGw9PU98fCIiPT09T3x8KGVlW1NdPU8sTz1QcihPKSxLW0subGVuZ3RoXT1rP0hyKFMsTyxrKTpWYShTLE8pKX12YXIgcmg9W1siQXBwbGljYXRpb24iLCJBcHBsaWNhdGlvbiIsInN0cmluZyJdLFsiQXBwVmVyc2lvbiIsIkFwcFZl'@; put 'cnNpb24iLCJzdHJpbmciXSxbIkNvbXBhbnkiLCJDb21wYW55Iiwic3RyaW5nIl0sWyJEb2NTZWN1cml0eSIsIkRvY1NlY3VyaXR5Iiwic3RyaW5nIl0sWyJNYW5hZ2VyIiwiTWFuYWdlciIsInN0cmluZyJdLFsiSHlwZXJsaW5rc0NoYW5nZWQiLCJIeXBlcmxpbmtzQ2hhbmdlZCIsImJvb2wi'@; put 'XSxbIlNoYXJlZERvYyIsIlNoYXJlZERvYyIsImJvb2wiXSxbIkxpbmtzVXBUb0RhdGUiLCJMaW5rc1VwVG9EYXRlIiwiYm9vbCJdLFsiU2NhbGVDcm9wIiwiU2NhbGVDcm9wIiwiYm9vbCJdLFsiSGVhZGluZ1BhaXJzIiwiSGVhZGluZ1BhaXJzIiwicmF3Il0sWyJUaXRsZXNPZlBhcnRzIiwi'@; put 'VGl0bGVzT2ZQYXJ0cyIsInJhdyJdXTtmdW5jdGlvbiBfNChTLE8sayxLKXt2YXIgZWU9W107aWYoInN0cmluZyI9PXR5cGVvZiBTKWVlPVhyKFMsSyk7ZWxzZSBmb3IodmFyIG9lPTA7b2U8Uy5sZW5ndGg7KytvZSllZT1lZS5jb25jYXQoU1tvZV0ubWFwKGZ1bmN0aW9uKFZlKXtyZXR1cm57'@; put 'djpWZX19KSk7dmFyIG1lPSJzdHJpbmciPT10eXBlb2YgTz9YcihPLEspLm1hcChmdW5jdGlvbihWZSl7cmV0dXJuIFZlLnZ9KTpPLHBlPTAsYmU9MDtpZihtZS5sZW5ndGg+MClmb3IodmFyIFBlPTA7UGUhPT1lZS5sZW5ndGg7UGUrPTIpe3N3aXRjaChiZT0rZWVbUGUrMV0udixlZVtQZV0u'@; put 'dil7Y2FzZSJXb3Jrc2hlZXRzIjpjYXNlIlx1NWRlNVx1NGY1Y1x1ODg2OCI6Y2FzZSJcdTA0MWJcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NGIiOmNhc2UiXHUwNjIzXHUwNjQ4XHUwNjMxXHUwNjI3XHUwNjQyIFx1MDYyN1x1MDY0NFx1MDYzOVx1MDY0NVx1MDY0NCI6Y2FzZSJcdTMwZWZcdTMw'@; put 'ZmNcdTMwYWZcdTMwYjdcdTMwZmNcdTMwYzgiOmNhc2UiXHUwNWQyXHUwNWRjXHUwNWQ5XHUwNWQ1XHUwNWUwXHUwNWQ1XHUwNWVhIFx1MDVlMlx1MDVkMVx1MDVkNVx1MDVkM1x1MDVkNCI6Y2FzZSJBcmJlaXRzYmxceGU0dHRlciI6Y2FzZSJceGM3YWxcdTAxMzFcdTAxNWZtYSBTYXlmYWxh'@; put 'clx1MDEzMSI6Y2FzZSJGZXVpbGxlcyBkZSBjYWxjdWwiOmNhc2UiRm9nbGkgZGkgbGF2b3JvIjpjYXNlIkZvbGhhcyBkZSBjXHhlMWxjdWxvIjpjYXNlIlBsYW5pbGhhcyI6Y2FzZSJSZWduZWFyayI6Y2FzZSJIb2phcyBkZSBjXHhlMWxjdWxvIjpjYXNlIldlcmtibGFkZW4iOmsuV29ya3No'@; put 'ZWV0cz1iZSxrLlNoZWV0TmFtZXM9bWUuc2xpY2UocGUscGUrYmUpO2JyZWFrO2Nhc2UiTmFtZWQgUmFuZ2VzIjpjYXNlIlJhbmdvcyBjb24gbm9tYnJlIjpjYXNlIlx1NTQwZFx1NTI0ZFx1NGVkOFx1MzA0ZFx1NGUwMFx1ODlhNyI6Y2FzZSJCZW5hbm50ZSBCZXJlaWNoZSI6Y2FzZSJOYXZu'@; put 'Z2l2bmUgb21yXHhlNWRlciI6ay5OYW1lZFJhbmdlcz1iZSxrLkRlZmluZWROYW1lcz1tZS5zbGljZShwZSxwZStiZSk7YnJlYWs7Y2FzZSJDaGFydHMiOmNhc2UiRGlhZ3JhbW1lIjprLkNoYXJ0c2hlZXRzPWJlLGsuQ2hhcnROYW1lcz1tZS5zbGljZShwZSxwZStiZSl9cGUrPWJlfX1HaS5F'@; put 'WFRfUFJPUFM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L2V4dGVuZGVkLXByb3BlcnRpZXMiLFhhLkVYVF9QUk9QUz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlw'@; put 'cy9leHRlbmRlZC1wcm9wZXJ0aWVzIjt2YXIgTDY9SHIoIlByb3BlcnRpZXMiLG51bGwse3htbG5zOkdpLkVYVF9QUk9QUywieG1sbnM6dnQiOkdpLnZ0fSk7R2kuQ1VTVF9QUk9QUz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvY3VzdG9t'@; put 'LXByb3BlcnRpZXMiLFhhLkNVU1RfUFJPUFM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvY3VzdG9tLXByb3BlcnRpZXMiO3ZhciBPNj0vPFtePl0rPltePF0qL2csbXY9SHIoIlByb3BlcnRpZXMiLG51bGwse3ht'@; put 'bG5zOkdpLkNVU1RfUFJPUFMsInhtbG5zOnZ0IjpHaS52dH0pO3ZhciBQNj17VGl0bGU6IlRpdGxlIixTdWJqZWN0OiJTdWJqZWN0IixBdXRob3I6IkF1dGhvciIsS2V5d29yZHM6IktleXdvcmRzIixDb21tZW50czoiRGVzY3JpcHRpb24iLExhc3RBdXRob3I6Ikxhc3RBdXRob3IiLFJldk51'@; put 'bWJlcjoiUmV2aXNpb24iLEFwcGxpY2F0aW9uOiJBcHBOYW1lIixMYXN0UHJpbnRlZDoiTGFzdFByaW50ZWQiLENyZWF0ZWREYXRlOiJDcmVhdGVkIixNb2RpZmllZERhdGU6Ikxhc3RTYXZlZCIsQ2F0ZWdvcnk6IkNhdGVnb3J5IixNYW5hZ2VyOiJNYW5hZ2VyIixDb21wYW55OiJDb21wYW55'@; put 'IixBcHBWZXJzaW9uOiJWZXJzaW9uIixDb250ZW50U3RhdHVzOiJDb250ZW50U3RhdHVzIixJZGVudGlmaWVyOiJJZGVudGlmaWVyIixMYW5ndWFnZToiTGFuZ3VhZ2UifSxGNj1IZShQNik7ZnVuY3Rpb24gSDMoUyxPLGspe1NbTz1GNltPXXx8T109a31mdW5jdGlvbiBOMyhTKXt2YXIgTz1T'@; put 'LnJlYWRfc2hpZnQoNCksaz1TLnJlYWRfc2hpZnQoNCk7cmV0dXJuIG5ldyBEYXRlKDFlMyooay8xZTcqTWF0aC5wb3coMiwzMikrTy8xZTctMTE2NDQ0NzM2MDApKS50b0lTT1N0cmluZygpLnJlcGxhY2UoL1wuMDAwLywiIil9ZnVuY3Rpb24gZGQoUyxPLGspe3ZhciBLPVMubCxlZT1TLnJl'@; put 'YWRfc2hpZnQoMCwibHBzdHItY3AiKTtpZihrKWZvcig7Uy5sLUsmMzspKytTLmw7cmV0dXJuIGVlfWZ1bmN0aW9uIGg1KFMsTyxrKXt2YXIgSz1TLnJlYWRfc2hpZnQoMCwibHB3c3RyIik7cmV0dXJuIGsmJihTLmwrPTQtKEsubGVuZ3RoKzEmMykmMyksS31mdW5jdGlvbiB2dihTLE8sayl7'@; put 'cmV0dXJuIDMxPT09Tz9oNShTKTpkZChTLDAsayl9ZnVuY3Rpb24gTjYoUyxPLGspe3JldHVybiB2dihTLE8sITE9PT1rPzA6NCl9ZnVuY3Rpb24gYnYoUyl7dmFyIE89Uy5sLGs9RWYoUyxWbik7cmV0dXJuIDA9PVNbUy5sXSYmMD09U1tTLmwrMV0mJlMubC1PJjImJihTLmwrPTIpLFtrLEVm'@; put 'KFMsWGwpXX1mdW5jdGlvbiBmNShTLE8pe2Zvcih2YXIgaz1TLnJlYWRfc2hpZnQoNCksSz17fSxlZT0wO2VlIT1rOysrZWUpe3ZhciBvZT1TLnJlYWRfc2hpZnQoNCksbWU9Uy5yZWFkX3NoaWZ0KDQpO0tbb2VdPVMucmVhZF9zaGlmdChtZSwxMjAwPT09Tz8idXRmMTZsZSI6InV0ZjgiKS5y'@; put 'ZXBsYWNlKEUsIiIpLnJlcGxhY2UobSwiISIpLDEyMDA9PT1PJiZtZSUyJiYoUy5sKz0yKX1yZXR1cm4gMyZTLmwmJihTLmw9Uy5sPj4zPDwyKSxLfWZ1bmN0aW9uIEswKFMpe3ZhciBPPVMucmVhZF9zaGlmdCg0KSxrPVMuc2xpY2UoUy5sLFMubCtPKTtyZXR1cm4gUy5sKz1PLCgzJk8pPjAm'@; put 'JihTLmwrPTQtKDMmTykmMyksa31mdW5jdGlvbiBFZihTLE8sayl7dmFyIGVlLEs9Uy5yZWFkX3NoaWZ0KDIpLG9lPWt8fHt9O2lmKFMubCs9MixPIT09azAmJkshPT1PJiYtMT09PWp3LmluZGV4T2YoTykmJig0MTI2IT0oNjU1MzQmTyl8fDQxMjYhPSg2NTUzNCZLKSkpdGhyb3cgbmV3IEVy'@; put 'cm9yKCJFeHBlY3RlZCB0eXBlICIrTysiIHNhdyAiK0spO3N3aXRjaChPPT09azA/SzpPKXtjYXNlIDI6cmV0dXJuIGVlPVMucmVhZF9zaGlmdCgyLCJpIiksb2UucmF3fHwoUy5sKz0yKSxlZTtjYXNlIDM6cmV0dXJuIFMucmVhZF9zaGlmdCg0LCJpIik7Y2FzZSAxMTpyZXR1cm4gMCE9PVMu'@; put 'cmVhZF9zaGlmdCg0KTtjYXNlIDE5OnJldHVybiBTLnJlYWRfc2hpZnQoNCk7Y2FzZSAzMDpyZXR1cm4gZGQoUywwLDQpLnJlcGxhY2UoRSwiIik7Y2FzZSAzMTpyZXR1cm4gaDUoUyk7Y2FzZSA2NDpyZXR1cm4gTjMoUyk7Y2FzZSA2NTpyZXR1cm4gSzAoUyk7Y2FzZSA3MTpyZXR1cm4gZnVu'@; put 'Y3Rpb24gX3YoUyl7dmFyIE89e307cmV0dXJuIE8uU2l6ZT1TLnJlYWRfc2hpZnQoNCksUy5sKz1PLlNpemUrMy0oTy5TaXplLTEpJTQsT30oUyk7Y2FzZSA4MDpyZXR1cm4gTjYoUyxLLCFvZS5yYXcpLnJlcGxhY2UoRSwiIik7Y2FzZSA4MTpyZXR1cm4gZnVuY3Rpb24geXYoUyxPKXtpZigh'@; put 'Tyl0aHJvdyBuZXcgRXJyb3IoIlZ0VW5hbGlnbmVkU3RyaW5nIG11c3QgaGF2ZSBwb3NpdGl2ZSBsZW5ndGgiKTtyZXR1cm4gdnYoUyxPLDApfShTLEspLnJlcGxhY2UoRSwiIik7Y2FzZSA0MTA4OnJldHVybiBmdW5jdGlvbiBxdyhTKXtmb3IodmFyIE89Uy5yZWFkX3NoaWZ0KDQpLGs9W10s'@; put 'Sz0wO0s8Ty8yOysrSylrLnB1c2goYnYoUykpO3JldHVybiBrfShTKTtjYXNlIDQxMjY6Y2FzZSA0MTI3OnJldHVybiA0MTI3PT1LP2Z1bmN0aW9uIFYzKFMpe2Zvcih2YXIgTz1TLnJlYWRfc2hpZnQoNCksaz1bXSxLPTA7SyE9TzsrK0spe3ZhciBlZT1TLmw7a1tLXT1TLnJlYWRfc2hpZnQo'@; put 'MCwibHB3c3RyIikucmVwbGFjZShFLCIiKSxTLmwtZWUmMiYmKFMubCs9Mil9cmV0dXJuIGt9KFMpOmZ1bmN0aW9uIFh3KFMpe2Zvcih2YXIgTz1TLnJlYWRfc2hpZnQoNCksaz1bXSxLPTA7SyE9TzsrK0spa1tLXT1TLnJlYWRfc2hpZnQoMCwibHBzdHItY3AiKS5yZXBsYWNlKEUsIiIpO3Jl'@; put 'dHVybiBrfShTKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVHlwZWRQcm9wZXJ0eVZhbHVlIHVucmVjb2duaXplZCB0eXBlICIrTysiICIrSyl9fWZ1bmN0aW9uIFRmKFMsTyl7dmFyIGs9dm4oNCksSz12big0KTtzd2l0Y2goay53cml0ZV9zaGlmdCg0LDgwPT1TPzMxOlMpLFMpe2Nhc2Ug'@; put 'MzpLLndyaXRlX3NoaWZ0KC00LE8pO2JyZWFrO2Nhc2UgNTooSz12big4KSkud3JpdGVfc2hpZnQoOCxPLCJmIik7YnJlYWs7Y2FzZSAxMTpLLndyaXRlX3NoaWZ0KDQsTz8xOjApO2JyZWFrO2Nhc2UgNjQ6Sz1mdW5jdGlvbiBxbChTKXt2YXIgaz0oInN0cmluZyI9PXR5cGVvZiBTP25ldyBE'@; put 'YXRlKERhdGUucGFyc2UoUykpOlMpLmdldFRpbWUoKS8xZTMrMTE2NDQ0NzM2MDAsSz1rJU1hdGgucG93KDIsMzIpLGVlPShrLUspL01hdGgucG93KDIsMzIpO2VlKj0xZTc7dmFyIG9lPShLKj0xZTcpL01hdGgucG93KDIsMzIpfDA7b2U+MCYmKEslPU1hdGgucG93KDIsMzIpLGVlKz1vZSk7'@; put 'dmFyIG1lPXZuKDgpO3JldHVybiBtZS53cml0ZV9zaGlmdCg0LEspLG1lLndyaXRlX3NoaWZ0KDQsZWUpLG1lfShPKTticmVhaztjYXNlIDMxOmNhc2UgODA6Zm9yKChLPXZuKDQrMiooTy5sZW5ndGgrMSkrKE8ubGVuZ3RoJTI/MDoyKSkpLndyaXRlX3NoaWZ0KDQsTy5sZW5ndGgrMSksSy53'@; put 'cml0ZV9zaGlmdCgwLE8sImRiY3MiKTtLLmwhPUsubGVuZ3RoOylLLndyaXRlX3NoaWZ0KDEsMCk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlR5cGVkUHJvcGVydHlWYWx1ZSB1bnJlY29nbml6ZWQgdHlwZSAiK1MrIiAiK08pfXJldHVybiBVKFtrLEtdKX1mdW5jdGlvbiBpaChT'@; put 'LE8pe3ZhciBrPVMubCxLPVMucmVhZF9zaGlmdCg0KSxlZT1TLnJlYWRfc2hpZnQoNCksb2U9W10sbWU9MCxwZT0wLGJlPS0xLFBlPXt9O2ZvcihtZT0wO21lIT1lZTsrK21lKXt2YXIgVmU9Uy5yZWFkX3NoaWZ0KDQpLFllPVMucmVhZF9zaGlmdCg0KTtvZVttZV09W1ZlLFllK2tdfW9lLnNv'@; put 'cnQoZnVuY3Rpb24oRHQsT3Qpe3JldHVybiBEdFsxXS1PdFsxXX0pO3ZhciBldD17fTtmb3IobWU9MDttZSE9ZWU7KyttZSl7aWYoUy5sIT09b2VbbWVdWzFdKXt2YXIgY3Q9ITA7aWYobWU+MCYmTylzd2l0Y2goT1tvZVttZS0xXVswXV0udCl7Y2FzZSAyOlMubCsyPT09b2VbbWVdWzFdJiYo'@; put 'Uy5sKz0yLGN0PSExKTticmVhaztjYXNlIDgwOmNhc2UgNDEwODpTLmw8PW9lW21lXVsxXSYmKFMubD1vZVttZV1bMV0sY3Q9ITEpfWlmKCghT3x8MD09bWUpJiZTLmw8PW9lW21lXVsxXSYmKGN0PSExLFMubD1vZVttZV1bMV0pLGN0KXRocm93IG5ldyBFcnJvcigiUmVhZCBFcnJvcjogRXhw'@; put 'ZWN0ZWQgYWRkcmVzcyAiK29lW21lXVsxXSsiIGF0ICIrUy5sKyIgOiIrbWUpfWlmKE8pe3ZhciBUdD1PW29lW21lXVswXV07aWYoZXRbVHQubl09RWYoUyxUdC50LHtyYXc6ITB9KSwidmVyc2lvbiI9PT1UdC5wJiYoZXRbVHQubl09U3RyaW5nKGV0W1R0Lm5dPj4xNikrIi4iKygiMDAwMCIr'@; put 'U3RyaW5nKDY1NTM1JmV0W1R0Lm5dKSkuc2xpY2UoLTQpKSwiQ29kZVBhZ2UiPT1UdC5uKXN3aXRjaChldFtUdC5uXSl7Y2FzZSAwOmV0W1R0Lm5dPTEyNTI7Y2FzZSA4NzQ6Y2FzZSA5MzI6Y2FzZSA5MzY6Y2FzZSA5NDk6Y2FzZSA5NTA6Y2FzZSAxMjUwOmNhc2UgMTI1MTpjYXNlIDEyNTM6'@; put 'Y2FzZSAxMjU0OmNhc2UgMTI1NTpjYXNlIDEyNTY6Y2FzZSAxMjU3OmNhc2UgMTI1ODpjYXNlIDFlNDpjYXNlIDEyMDA6Y2FzZSAxMjAxOmNhc2UgMTI1MjpjYXNlIDY1ZTM6Y2FzZS01MzY6Y2FzZSA2NTAwMTpjYXNlLTUzNTpCKHBlPWV0W1R0Lm5dPj4+MCY2NTUzNSk7YnJlYWs7ZGVmYXVs'@; put 'dDp0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIENvZGVQYWdlOiAiK2V0W1R0Lm5dKX19ZWxzZSBpZigxPT09b2VbbWVdWzBdKXtpZihwZT1ldC5Db2RlUGFnZT1FZihTLG4yKSxCKHBlKSwtMSE9PWJlKXt2YXIgaXQ9Uy5sO1MubD1vZVtiZV1bMV0sUGU9ZjUoUyxwZSksUy5sPWl0fX1l'@; put 'bHNlIGlmKDA9PT1vZVttZV1bMF0pe2lmKDA9PT1wZSl7YmU9bWUsUy5sPW9lW21lKzFdWzFdO2NvbnRpbnVlfVBlPWY1KFMscGUpfWVsc2V7dmFyIEJ0LGJ0PVBlW29lW21lXVswXV07c3dpdGNoKFNbUy5sXSl7Y2FzZSA2NTpTLmwrPTQsQnQ9SzAoUyk7YnJlYWs7Y2FzZSAzMDpjYXNlIDMx'@; put 'OlMubCs9NCxCdD1ONihTLFNbUy5sLTRdKS5yZXBsYWNlKC9cdTAwMDArJC8sIiIpO2JyZWFrO2Nhc2UgMzpTLmwrPTQsQnQ9Uy5yZWFkX3NoaWZ0KDQsImkiKTticmVhaztjYXNlIDE5OlMubCs9NCxCdD1TLnJlYWRfc2hpZnQoNCk7YnJlYWs7Y2FzZSA1OlMubCs9NCxCdD1TLnJlYWRfc2hp'@; put 'ZnQoOCwiZiIpO2JyZWFrO2Nhc2UgMTE6Uy5sKz00LEJ0PWNzKFMsNCk7YnJlYWs7Y2FzZSA2NDpTLmwrPTQsQnQ9TmUoTjMoUykpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJ1bnBhcnNlZCB2YWx1ZTogIitTW1MubF0pfWV0W2J0XT1CdH19cmV0dXJuIFMubD1rK0ssZXR9dmFy'@; put 'IFY2PVsiQ29kZVBhZ2UiLCJUaHVtYm5haWwiLCJfUElEX0xJTktCQVNFIiwiX1BJRF9ITElOS1MiLCJTeXN0ZW1JZGVudGlmaWVyIiwiRk1USUQiXS5jb25jYXQoWyJXb3Jrc2hlZXRzIiwiU2hlZXROYW1lcyIsIk5hbWVkUmFuZ2VzIiwiRGVmaW5lZE5hbWVzIiwiQ2hhcnRzaGVldHMiLCJD'@; put 'aGFydE5hbWVzIl0pO2Z1bmN0aW9uIFBjKFMpe3N3aXRjaCh0eXBlb2YgUyl7Y2FzZSJib29sZWFuIjpyZXR1cm4gMTE7Y2FzZSJudW1iZXIiOnJldHVybigwfFMpPT1TPzM6NTtjYXNlInN0cmluZyI6cmV0dXJuIDMxO2Nhc2Uib2JqZWN0IjppZihTIGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4g'@; put 'NjR9cmV0dXJuLTF9ZnVuY3Rpb24gQjYoUyxPLGspe3ZhciBLPXZuKDgpLGVlPVtdLG9lPVtdLG1lPTgscGU9MCxiZT12big4KSxQZT12big4KTtpZihiZS53cml0ZV9zaGlmdCg0LDIpLGJlLndyaXRlX3NoaWZ0KDQsMTIwMCksUGUud3JpdGVfc2hpZnQoNCwxKSxvZS5wdXNoKGJlKSxlZS5w'@; put 'dXNoKFBlKSxtZSs9OCtiZS5sZW5ndGgsIU8peyhQZT12big4KSkud3JpdGVfc2hpZnQoNCwwKSxlZS51bnNoaWZ0KFBlKTt2YXIgVmU9W3ZuKDQpXTtmb3IoVmVbMF0ud3JpdGVfc2hpZnQoNCxTLmxlbmd0aCkscGU9MDtwZTxTLmxlbmd0aDsrK3BlKXt2YXIgWWU9U1twZV1bMF07Zm9yKChi'@; put 'ZT12big4KzIqKFllLmxlbmd0aCsxKSsoWWUubGVuZ3RoJTI/MDoyKSkpLndyaXRlX3NoaWZ0KDQscGUrMiksYmUud3JpdGVfc2hpZnQoNCxZZS5sZW5ndGgrMSksYmUud3JpdGVfc2hpZnQoMCxZZSwiZGJjcyIpO2JlLmwhPWJlLmxlbmd0aDspYmUud3JpdGVfc2hpZnQoMSwwKTtWZS5wdXNo'@; put 'KGJlKX1iZT1VKFZlKSxvZS51bnNoaWZ0KGJlKSxtZSs9OCtiZS5sZW5ndGh9Zm9yKHBlPTA7cGU8Uy5sZW5ndGg7KytwZSlpZigoIU98fE9bU1twZV1bMF1dKSYmIShWNi5pbmRleE9mKFNbcGVdWzBdKT4tMSkmJm51bGwhPVNbcGVdWzFdKXt2YXIgZXQ9U1twZV1bMV0sY3Q9MDtpZihPKXt2'@; put 'YXIgVHQ9a1tjdD0rT1tTW3BlXVswXV1dO2lmKCJ2ZXJzaW9uIj09VHQucCYmInN0cmluZyI9PXR5cGVvZiBldCl7dmFyIGl0PWV0LnNwbGl0KCIuIik7ZXQ9KCtpdFswXTw8MTYpKygraXRbMV18fDApfWJlPVRmKFR0LnQsZXQpfWVsc2V7dmFyIGJ0PVBjKGV0KTstMT09YnQmJihidD0zMSxl'@; put 'dD1TdHJpbmcoZXQpKSxiZT1UZihidCxldCl9b2UucHVzaChiZSksKFBlPXZuKDgpKS53cml0ZV9zaGlmdCg0LE8/Y3Q6MitwZSksZWUucHVzaChQZSksbWUrPTgrYmUubGVuZ3RofXZhciBCdD04KihvZS5sZW5ndGgrMSk7Zm9yKHBlPTA7cGU8b2UubGVuZ3RoOysrcGUpZWVbcGVdLndyaXRl'@; put 'X3NoaWZ0KDQsQnQpLEJ0Kz1vZVtwZV0ubGVuZ3RoO3JldHVybiBLLndyaXRlX3NoaWZ0KDQsbWUpLEsud3JpdGVfc2hpZnQoNCxvZS5sZW5ndGgpLFUoW0tdLmNvbmNhdChlZSkuY29uY2F0KG9lKSl9ZnVuY3Rpb24gajYoUyxPLGspe3ZhciBLPVMuY29udGVudDtpZighSylyZXR1cm57fTtn'@; put 'bihLLDApO3ZhciBlZSxvZSxtZSxwZSxiZT0wO0suY2hrKCJmZWZmIiwiQnl0ZSBPcmRlcjogIiksSy5yZWFkX3NoaWZ0KDIpO3ZhciBQZT1LLnJlYWRfc2hpZnQoNCksVmU9Sy5yZWFkX3NoaWZ0KDE2KTtpZihWZSE9PXZlLnV0aWxzLmNvbnN0cy5IRUFERVJfQ0xTSUQmJlZlIT09ayl0aHJv'@; put 'dyBuZXcgRXJyb3IoIkJhZCBQcm9wZXJ0eVNldCBDTFNJRCAiK1ZlKTtpZigxIT09KGVlPUsucmVhZF9zaGlmdCg0KSkmJjIhPT1lZSl0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCAjU2V0czogIitlZSk7aWYob2U9Sy5yZWFkX3NoaWZ0KDE2KSxwZT1LLnJlYWRfc2hpZnQoNCksMT09'@; put 'PWVlJiZwZSE9PUsubCl0aHJvdyBuZXcgRXJyb3IoIkxlbmd0aCBtaXNtYXRjaDogIitwZSsiICE9PSAiK0subCk7Mj09PWVlJiYobWU9Sy5yZWFkX3NoaWZ0KDE2KSxiZT1LLnJlYWRfc2hpZnQoNCkpO3ZhciBUdCxZZT1paChLLE8pLGV0PXtTeXN0ZW1JZGVudGlmaWVyOlBlfTtmb3IodmFy'@; put 'IGN0IGluIFllKWV0W2N0XT1ZZVtjdF07aWYoZXQuRk1USUQ9b2UsMT09PWVlKXJldHVybiBldDtpZihiZS1LLmw9PTImJihLLmwrPTIpLEsubCE9PWJlKXRocm93IG5ldyBFcnJvcigiTGVuZ3RoIG1pc21hdGNoIDI6ICIrSy5sKyIgIT09ICIrYmUpO3RyeXtUdD1paChLLG51bGwpfWNhdGNo'@; put 'e31mb3IoY3QgaW4gVHQpZXRbY3RdPVR0W2N0XTtyZXR1cm4gZXQuRk1USUQ9W29lLG1lXSxldH1mdW5jdGlvbiB6aShTLE8sayxLLGVlLG9lKXt2YXIgbWU9dm4oZWU/Njg6NDgpLHBlPVttZV07bWUud3JpdGVfc2hpZnQoMiw2NTUzNCksbWUud3JpdGVfc2hpZnQoMiwwKSxtZS53cml0ZV9z'@; put 'aGlmdCg0LDg0MjQxMjU5OSksbWUud3JpdGVfc2hpZnQoMTYsdmUudXRpbHMuY29uc3RzLkhFQURFUl9DTFNJRCwiaGV4IiksbWUud3JpdGVfc2hpZnQoNCxlZT8yOjEpLG1lLndyaXRlX3NoaWZ0KDE2LE8sImhleCIpLG1lLndyaXRlX3NoaWZ0KDQsZWU/Njg6NDgpO3ZhciBiZT1CNihTLGss'@; put 'Syk7aWYocGUucHVzaChiZSksZWUpe3ZhciBQZT1CNihlZSxudWxsLG51bGwpO21lLndyaXRlX3NoaWZ0KDE2LG9lLCJoZXgiKSxtZS53cml0ZV9zaGlmdCg0LDY4K2JlLmxlbmd0aCkscGUucHVzaChQZSl9cmV0dXJuIFUocGUpfWZ1bmN0aW9uIHMyKFMsTyl7cmV0dXJuIFMucmVhZF9zaGlm'@; put 'dChPKSxudWxsfWZ1bmN0aW9uIGNzKFMsTyl7cmV0dXJuIDE9PT1TLnJlYWRfc2hpZnQoTyl9ZnVuY3Rpb24gSmMoUyxPKXtyZXR1cm4gT3x8KE89dm4oMikpLE8ud3JpdGVfc2hpZnQoMiwrISFTKSxPfWZ1bmN0aW9uIE1jKFMpe3JldHVybiBTLnJlYWRfc2hpZnQoMiwidSIpfWZ1bmN0aW9u'@; put 'IG4wKFMsTyl7cmV0dXJuIE98fChPPXZuKDIpKSxPLndyaXRlX3NoaWZ0KDIsUyksT31mdW5jdGlvbiB3NChTLE8pe3JldHVybiBmdW5jdGlvbiB3dihTLE8sayl7Zm9yKHZhciBLPVtdLGVlPVMubCtPO1MubDxlZTspSy5wdXNoKGsoUyxlZS1TLmwpKTtpZihlZSE9PVMubCl0aHJvdyBuZXcg'@; put 'RXJyb3IoIlNsdXJwIGVycm9yIik7cmV0dXJuIEt9KFMsTyxNYyl9ZnVuY3Rpb24gWGkoUyxPLGspe3JldHVybiBrfHwoaz12bigyKSksay53cml0ZV9zaGlmdCgxLCJlIj09Tz8rUzorISFTKSxrLndyaXRlX3NoaWZ0KDEsImUiPT1PPzE6MCksa31mdW5jdGlvbiBXYShTLE8sayl7dmFyIEs9'@; put 'Uy5yZWFkX3NoaWZ0KGsmJmsuYmlmZj49MTI/MjoxKSxlZT0ic2Jjcy1jb250IixvZT1GO2smJmsuYmlmZj49OCYmKEY9MTIwMCksayYmOCE9ay5iaWZmPzEyPT1rLmJpZmYmJihlZT0id3N0ciIpOlMucmVhZF9zaGlmdCgxKSYmKGVlPSJkYmNzLWNvbnQiKSxrLmJpZmY+PTImJmsuYmlmZjw9'@; put 'NSYmKGVlPSJjcHN0ciIpO3ZhciBwZT1LP1MucmVhZF9zaGlmdChLLGVlKToiIjtyZXR1cm4gRj1vZSxwZX1mdW5jdGlvbiBkYyhTKXt2YXIgTz1GO0Y9MTIwMDt2YXIgYmUsaz1TLnJlYWRfc2hpZnQoMiksSz1TLnJlYWRfc2hpZnQoMSksZWU9NCZLLG9lPTgmSyxtZT0xKygxJkspLHBlPTAs'@; put 'UGU9e307b2UmJihwZT1TLnJlYWRfc2hpZnQoMikpLGVlJiYoYmU9Uy5yZWFkX3NoaWZ0KDQpKTt2YXIgWWU9MD09PWs/IiI6Uy5yZWFkX3NoaWZ0KGssMj09bWU/ImRiY3MtY29udCI6InNiY3MtY29udCIpO2lmKG9lKWZvcihQZS5fUj1bXTtwZS0tID4wOylQZS5fUi5wdXNoKHtpZHg6Uy5y'@; put 'ZWFkX3NoaWZ0KDIpLGlmbnQ6Uy5yZWFkX3NoaWZ0KDIpfSk7cmV0dXJuIGVlJiYoUy5sKz1iZSksUGUudD1ZZSxvZXx8KFBlLnI9Ijx0PiIrUGUudCsiPC90PiIpLEY9TyxQZX1mdW5jdGlvbiBGYyhTLE8pe3ZhciBrPVMuUiYmUy5SLmxlbmd0aHx8Uy5yO1MuciYmKFMuUj15NShTLnIpKTt2'@; put 'YXIgSz0iIixlZT0wO2s/Uy5SLmZvckVhY2goZnVuY3Rpb24oVHQpe2VlKyssSys9VHQudnx8IiJ9KTooSz1TLnR8fCIiLGVlPTEpO3ZhciBvZT12bigzKyhlZT4xPzI6MCkpO29lLndyaXRlX3NoaWZ0KDIsSy5sZW5ndGgpLG9lLndyaXRlX3NoaWZ0KDEsMXwoZWU+MT84OjApKSxlZT4xJiZv'@; put 'ZS53cml0ZV9zaGlmdCgyLGVlKTt2YXIgbWU9dm4oMipLLmxlbmd0aCk7bWUud3JpdGVfc2hpZnQoMipLLmxlbmd0aCxLLCJ1dGYxNmxlIik7dmFyIHBlPVtvZSxtZV07aWYoayl7dmFyIGJlPXZuKDQqUy5SLmxlbmd0aCksUGU9MDtwZS5wdXNoKGJlKTtmb3IodmFyIFZlPTA7VmU8Uy5SLmxl'@; put 'bmd0aDsrK1ZlKXt2YXIgWWU9Uy5SW1ZlXTtiZS53cml0ZV9zaGlmdCgyLFBlKSxQZSs9KFllLnZ8fCIiKS5sZW5ndGg7dmFyIGV0PVllLnM/czAoTy5jZWxsWGZzLE8uY2VsbFN0eWxlWGZzLHt0OiJuIix2OjAsczpZZS5zfSxPKTowLGN0PU8uY2VsbFhmc1tldF0uZm9udElkO2JlLndyaXRl'@; put 'X3NoaWZ0KDIsY3Q8ND9jdDpjdCsxKX19cmV0dXJuIFUocGUpfWZ1bmN0aW9uIG5jKFMsTyxrKXtpZihrKXtpZihrLmJpZmY+PTImJmsuYmlmZjw9NSlyZXR1cm4gUy5yZWFkX3NoaWZ0KE8sImNwc3RyIik7aWYoay5iaWZmPj0xMilyZXR1cm4gUy5yZWFkX3NoaWZ0KE8sImRiY3MtY29udCIp'@; put 'fXZhciBlZT1TLnJlYWRfc2hpZnQoMSk7cmV0dXJuIFMucmVhZF9zaGlmdChPLDA9PT1lZT8ic2Jjcy1jb250IjoiZGJjcy1jb250Iil9ZnVuY3Rpb24gUWMoUyxPLGspe3ZhciBLPVMucmVhZF9zaGlmdChrJiYyPT1rLmJpZmY/MToyKTtyZXR1cm4gMD09PUs/KFMubCsrLCIiKTpuYyhTLEss'@; put 'ayl9ZnVuY3Rpb24gWDAoUyxPLGspe2lmKGsuYmlmZj41KXJldHVybiBRYyhTLDAsayk7dmFyIEs9Uy5yZWFkX3NoaWZ0KDEpO3JldHVybiAwPT09Sz8oUy5sKyssIiIpOlMucmVhZF9zaGlmdChLLGsuYmlmZjw9NHx8IVMubGVucz8iY3BzdHIiOiJzYmNzLWNvbnQiKX1mdW5jdGlvbiBzbChT'@; put 'LE8sayl7cmV0dXJuIGt8fChrPXZuKDMrMipTLmxlbmd0aCkpLGsud3JpdGVfc2hpZnQoMixTLmxlbmd0aCksay53cml0ZV9zaGlmdCgxLDEpLGsud3JpdGVfc2hpZnQoMzEsUywidXRmMTZsZSIpLGt9ZnVuY3Rpb24gQzQoUyl7dmFyIE89Uy5yZWFkX3NoaWZ0KDQpO3JldHVybiBPPjA/Uy5y'@; put 'ZWFkX3NoaWZ0KE8sInV0ZjE2bGUiKS5yZXBsYWNlKEUsIiIpOiIifWZ1bmN0aW9uIHIwKFMsTyl7T3x8KE89dm4oNisyKlMubGVuZ3RoKSksTy53cml0ZV9zaGlmdCg0LDErUy5sZW5ndGgpO2Zvcih2YXIgaz0wO2s8Uy5sZW5ndGg7KytrKU8ud3JpdGVfc2hpZnQoMixTLmNoYXJDb2RlQXQo'@; put 'aykpO3JldHVybiBPLndyaXRlX3NoaWZ0KDIsMCksT31mdW5jdGlvbiBTNChTKXt2YXIgTz12big1MTIpLGs9MCxLPVMuVGFyZ2V0OyJmaWxlOi8vIj09Sy5zbGljZSgwLDcpJiYoSz1LLnNsaWNlKDcpKTt2YXIgZWU9Sy5pbmRleE9mKCIjIiksb2U9ZWU+LTE/MzE6MjM7c3dpdGNoKEsuY2hh'@; put 'ckF0KDApKXtjYXNlIiMiOm9lPTI4O2JyZWFrO2Nhc2UiLiI6b2UmPS0zfU8ud3JpdGVfc2hpZnQoNCwyKSxPLndyaXRlX3NoaWZ0KDQsb2UpO3ZhciBtZT1bOCw2ODE1ODI3LDY2MTkyMzcsNDg0OTc4MCw4M107Zm9yKGs9MDtrPG1lLmxlbmd0aDsrK2spTy53cml0ZV9zaGlmdCg0LG1lW2td'@; put 'KTtpZigyOD09b2UpcjAoSz1LLnNsaWNlKDEpLE8pO2Vsc2UgaWYoMiZvZSl7Zm9yKG1lPSJlMCBjOSBlYSA3OSBmOSBiYSBjZSAxMSA4YyA4MiAwMCBhYSAwMCA0YiBhOSAwYiIuc3BsaXQoIiAiKSxrPTA7azxtZS5sZW5ndGg7KytrKU8ud3JpdGVfc2hpZnQoMSxwYXJzZUludChtZVtrXSwx'@; put 'NikpO3ZhciBwZT1lZT4tMT9LLnNsaWNlKDAsZWUpOks7Zm9yKE8ud3JpdGVfc2hpZnQoNCwyKihwZS5sZW5ndGgrMSkpLGs9MDtrPHBlLmxlbmd0aDsrK2spTy53cml0ZV9zaGlmdCgyLHBlLmNoYXJDb2RlQXQoaykpO08ud3JpdGVfc2hpZnQoMiwwKSw4Jm9lJiZyMChlZT4tMT9LLnNsaWNl'@; put 'KGVlKzEpOiIiLE8pfWVsc2V7Zm9yKG1lPSIwMyAwMyAwMCAwMCAwMCAwMCAwMCAwMCBjMCAwMCAwMCAwMCAwMCAwMCAwMCA0NiIuc3BsaXQoIiAiKSxrPTA7azxtZS5sZW5ndGg7KytrKU8ud3JpdGVfc2hpZnQoMSxwYXJzZUludChtZVtrXSwxNikpO2Zvcih2YXIgYmU9MDsiLi4vIj09Sy5z'@; put 'bGljZSgzKmJlLDMqYmUrMyl8fCIuLlxcIj09Sy5zbGljZSgzKmJlLDMqYmUrMyk7KSsrYmU7Zm9yKE8ud3JpdGVfc2hpZnQoMixiZSksTy53cml0ZV9zaGlmdCg0LEsubGVuZ3RoLTMqYmUrMSksaz0wO2s8Sy5sZW5ndGgtMypiZTsrK2spTy53cml0ZV9zaGlmdCgxLDI1NSZLLmNoYXJDb2Rl'@; put 'QXQoayszKmJlKSk7Zm9yKE8ud3JpdGVfc2hpZnQoMSwwKSxPLndyaXRlX3NoaWZ0KDIsNjU1MzUpLE8ud3JpdGVfc2hpZnQoMiw1NzAwNSksaz0wO2s8NjsrK2spTy53cml0ZV9zaGlmdCg0LDApfXJldHVybiBPLnNsaWNlKDAsTy5sKX1mdW5jdGlvbiBrZihTKXtyZXR1cm5bUy5yZWFkX3No'@; put 'aWZ0KDEpLFMucmVhZF9zaGlmdCgxKSxTLnJlYWRfc2hpZnQoMSksUy5yZWFkX3NoaWZ0KDEpXX1mdW5jdGlvbiBoZChTLE8pe3ZhciBrPWtmKFMpO3JldHVybiBrWzNdPTAsa31mdW5jdGlvbiB5MChTKXtyZXR1cm57cjpTLnJlYWRfc2hpZnQoMiksYzpTLnJlYWRfc2hpZnQoMiksaXhmZTpT'@; put 'LnJlYWRfc2hpZnQoMil9fWZ1bmN0aW9uIG8yKFMsTyxrLEspe3JldHVybiBLfHwoSz12big2KSksSy53cml0ZV9zaGlmdCgyLFMpLEsud3JpdGVfc2hpZnQoMixPKSxLLndyaXRlX3NoaWZ0KDIsa3x8MCksS31mdW5jdGlvbiBEZihTLE8sayl7dmFyIEs9ay5iaWZmPjg/NDoyO3JldHVybltT'@; put 'LnJlYWRfc2hpZnQoSyksUy5yZWFkX3NoaWZ0KEssImkiKSxTLnJlYWRfc2hpZnQoSywiaSIpXX1mdW5jdGlvbiBfcyhTKXtyZXR1cm5bUy5yZWFkX3NoaWZ0KDIpLFIxKFMpXX1mdW5jdGlvbiBjMihTKXt2YXIgTz1TLnJlYWRfc2hpZnQoMiksaz1TLnJlYWRfc2hpZnQoMik7cmV0dXJue3M6'@; put 'e2M6Uy5yZWFkX3NoaWZ0KDIpLHI6T30sZTp7YzpTLnJlYWRfc2hpZnQoMikscjprfX19ZnVuY3Rpb24gZnUoUyxPKXtyZXR1cm4gT3x8KE89dm4oOCkpLE8ud3JpdGVfc2hpZnQoMixTLnMuciksTy53cml0ZV9zaGlmdCgyLFMuZS5yKSxPLndyaXRlX3NoaWZ0KDIsUy5zLmMpLE8ud3JpdGVf'@; put 'c2hpZnQoMixTLmUuYyksT31mdW5jdGlvbiBNNChTKXt2YXIgTz1TLnJlYWRfc2hpZnQoMiksaz1TLnJlYWRfc2hpZnQoMik7cmV0dXJue3M6e2M6Uy5yZWFkX3NoaWZ0KDEpLHI6T30sZTp7YzpTLnJlYWRfc2hpZnQoMSkscjprfX19dmFyIGZjPU00O2Z1bmN0aW9uIGc1KFMpe1MubCs9NDt2'@; put 'YXIgTz1TLnJlYWRfc2hpZnQoMiksaz1TLnJlYWRfc2hpZnQoMiksSz1TLnJlYWRfc2hpZnQoMik7cmV0dXJuIFMubCs9MTIsW2ssTyxLXX1mdW5jdGlvbiBldShTKXtTLmwrPTIsUy5sKz1TLnJlYWRfc2hpZnQoMil9dmFyIElmPXswOmV1LDQ6ZXUsNTpldSw2OmV1LDc6ZnVuY3Rpb24gT3Uo'@; put 'Uyl7cmV0dXJuIFMubCs9NCxTLmNmPVMucmVhZF9zaGlmdCgyKSx7fX0sODpldSw5OmV1LDEwOmV1LDExOmV1LDEyOmV1LDEzOmZ1bmN0aW9uIEx1KFMpe3ZhciBPPXt9O3JldHVybiBTLmwrPTQsUy5sKz0xNixPLmZTaGFyZWROb3RlPVMucmVhZF9zaGlmdCgyKSxTLmwrPTQsT30sMTQ6ZXUs'@; put 'MTU6ZXUsMTY6ZXUsMTc6ZXUsMTg6ZXUsMTk6ZXUsMjA6ZXUsMjE6ZzV9O2Z1bmN0aW9uIEhjKFMsTyl7dmFyIGs9e0JJRkZWZXI6MCxkdDowfTtzd2l0Y2goay5CSUZGVmVyPVMucmVhZF9zaGlmdCgyKSwoTy09Mik+PTImJihrLmR0PVMucmVhZF9zaGlmdCgyKSxTLmwtPTIpLGsuQklGRlZl'@; put 'cil7Y2FzZSAxNTM2OmNhc2UgMTI4MDpjYXNlIDEwMjQ6Y2FzZSA3Njg6Y2FzZSA1MTI6Y2FzZSAyOmNhc2UgNzpicmVhaztkZWZhdWx0OmlmKE8+Nil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgQklGRiBWZXIgIitrLkJJRkZWZXIpfXJldHVybiBTLnJlYWRfc2hpZnQoTyksa31mdW5j'@; put 'dGlvbiB4NChTLE8sayl7dmFyIEs9MTUzNixlZT0xNjtzd2l0Y2goay5ib29rVHlwZSl7Y2FzZSJiaWZmOCI6Y2FzZSJ4bGEiOmJyZWFrO2Nhc2UiYmlmZjUiOks9MTI4MCxlZT04O2JyZWFrO2Nhc2UiYmlmZjQiOks9NCxlZT02O2JyZWFrO2Nhc2UiYmlmZjMiOks9MyxlZT02O2JyZWFrO2Nh'@; put 'c2UiYmlmZjIiOks9MixlZT00O2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJ1bnN1cHBvcnRlZCBCSUZGIHZlcnNpb24iKX12YXIgb2U9dm4oZWUpO3JldHVybiBvZS53cml0ZV9zaGlmdCgyLEspLG9lLndyaXRlX3NoaWZ0KDIsTyksZWU+NCYmb2Uud3JpdGVfc2hpZnQoMiwyOTI4'@; put 'MiksZWU+NiYmb2Uud3JpdGVfc2hpZnQoMiwxOTk3KSxlZT44JiYob2Uud3JpdGVfc2hpZnQoMiw0OTE2MSksb2Uud3JpdGVfc2hpZnQoMiwxKSxvZS53cml0ZV9zaGlmdCgyLDE3OTgpLG9lLndyaXRlX3NoaWZ0KDIsMCkpLG9lfWZ1bmN0aW9uIHUyKFMsTyl7dmFyIGs9IU98fE8uYmlmZj49'@; put 'OD8yOjEsSz12big4K2sqUy5uYW1lLmxlbmd0aCk7Sy53cml0ZV9zaGlmdCg0LFMucG9zKSxLLndyaXRlX3NoaWZ0KDEsUy5oc3x8MCksSy53cml0ZV9zaGlmdCgxLFMuZHQpLEsud3JpdGVfc2hpZnQoMSxTLm5hbWUubGVuZ3RoKSxPLmJpZmY+PTgmJksud3JpdGVfc2hpZnQoMSwxKSxLLndy'@; put 'aXRlX3NoaWZ0KGsqUy5uYW1lLmxlbmd0aCxTLm5hbWUsTy5iaWZmPDg/InNiY3MiOiJ1dGYxNmxlIik7dmFyIGVlPUsuc2xpY2UoMCxLLmwpO3JldHVybiBlZS5sPUsubCxlZX1mdW5jdGlvbiByaShTKXtyZXR1cm4gUy5yZWFkX3NoaWZ0KDQpLGh1KFMpfWZ1bmN0aW9uIENzKFMpe3JldHVy'@; put 'biBTLnJlYWRfc2hpZnQoNCksZTAoUyl9ZnVuY3Rpb24gUHUoUyxPLGspe3JldHVybiBTLnJlYWRfc2hpZnQoNCksdGooUywwLGspfWZ1bmN0aW9uIGQyKFMsTyxrKXt2YXIgSz0wO2smJjI9PWsuYmlmZnx8KEs9Uy5yZWFkX3NoaWZ0KDIpKTt2YXIgZWU9Uy5yZWFkX3NoaWZ0KDIpO3JldHVy'@; put 'biBrJiYyPT1rLmJpZmYmJihLPTEtKGVlPj4xNSksZWUmPTMyNzY3KSxbe1Vuc3luY2VkOjEmSyxEeVplcm86KDImSyk+PjEsRXhBc2M6KDQmSyk+PjIsRXhEc2M6KDgmSyk+PjN9LGVlXX1mdW5jdGlvbiBjVihTLE8sayxLKXt2YXIgZWU9ayYmNT09ay5iaWZmO0t8fChLPXZuKGVlPzMrTy5s'@; put 'ZW5ndGg6NSsyKk8ubGVuZ3RoKSksSy53cml0ZV9zaGlmdCgyLFMpLEsud3JpdGVfc2hpZnQoZWU/MToyLE8ubGVuZ3RoKSxlZXx8Sy53cml0ZV9zaGlmdCgxLDEpLEsud3JpdGVfc2hpZnQoKGVlPzE6MikqTy5sZW5ndGgsTyxlZT8ic2JjcyI6InV0ZjE2bGUiKTt2YXIgb2U9Sy5sZW5ndGg+'@; put 'Sy5sP0suc2xpY2UoMCxLLmwpOks7cmV0dXJuIG51bGw9PW9lLmwmJihvZS5sPW9lLmxlbmd0aCksb2V9dmFyIGgyPVgwO2Z1bmN0aW9uIG5DKFMsTyxrKXt2YXIgSz1TLmwrTyxlZT04IT1rLmJpZmYmJmsuYmlmZj8yOjQsb2U9Uy5yZWFkX3NoaWZ0KGVlKSxtZT1TLnJlYWRfc2hpZnQoZWUp'@; put 'LHBlPVMucmVhZF9zaGlmdCgyKSxiZT1TLnJlYWRfc2hpZnQoMik7cmV0dXJuIFMubD1LLHtzOntyOm9lLGM6cGV9LGU6e3I6bWUsYzpiZX19fWZ1bmN0aW9uIG01KFMsTyxrLEspe3ZhciBvZT0ha3x8IWsuYmlmZnx8OD09ay5iaWZmO0t8fChLPXZuKGsmJjU9PWsuYmlmZj8xNjoyMCkpLEsu'@; put 'd3JpdGVfc2hpZnQoMixvZSYmay5jZWxsU3R5bGVzJiZTLmZvbnRJZCYmKFMuZm9udElkPDQ/Uy5mb250SWQ6Uy5mb250SWQrMSl8fDApO3ZhciBtZT0xO1MucHJvdGVjdGlvbiYmKFMucHJvdGVjdGlvbi5lZGl0YWJsZSYmKG1lJj0tMiksUy5wcm90ZWN0aW9uLmhpZGRlbiYmKG1lfD0yKSks'@; put 'Uy5zdHlsZT8oSy53cml0ZV9zaGlmdCgyLFMubnVtRm10SWR8fDApLEsud3JpdGVfc2hpZnQoMiw2NTUyNHxtZSkpOihLLndyaXRlX3NoaWZ0KDIsUy5udW1GbXRJZHx8MCksSy53cml0ZV9zaGlmdCgyLE88PDR8bWUpKTt2YXIgcGU9Uy5hbGlnbm1lbnR8fHt9O2lmKG9lKXt2YXIgYmU9MCxQ'@; put 'ZT0wO1Q1LmluZGV4T2YocGUuaG9yaXpvbnRhbCk+LTEmJihiZXw9VDUuaW5kZXhPZihwZS5ob3Jpem9udGFsKSkscGUud3JhcFRleHQmJihiZXw9OCksdDguaW5kZXhPZihwZS52ZXJ0aWNhbCk+LTE/YmV8PXQ4LmluZGV4T2YocGUudmVydGljYWwpPDw0Om51bGw9PXBlLnZlcnRpY2FsJiYo'@; put 'YmV8PTMyKSxLLndyaXRlX3NoaWZ0KDEsYmUpLEsud3JpdGVfc2hpZnQoMSwwKSxwZS5zaHJpbmtUb0ZpdCYmKFBlfD0xNiksSy53cml0ZV9zaGlmdCgyLFBlKTt2YXIgVmU9bnVsbDtudWxsIT1TLmJvcmRlcklkJiYoVmU9ay5Cb3JkZXJzJiZrLkJvcmRlcnNbUy5ib3JkZXJJZHx8MF18fHt9'@; put 'KTt2YXIgWWU9MCxldD0wLGN0PTA7VmUmJihudWxsIT1WZS5sZWZ0JiZWZS5sZWZ0LnN0eWxlJiYoWWV8PShjdD1nZC5pbmRleE9mKFZlLmxlZnQuc3R5bGUpKT4tMT9jdDowKSxudWxsIT1WZS5yaWdodCYmVmUucmlnaHQuc3R5bGUmJihZZXw9KChjdD1nZC5pbmRleE9mKFZlLnJpZ2h0LnN0'@; put 'eWxlKSk+LTE/Y3Q6MCk8PDQpLG51bGwhPVZlLnRvcCYmVmUudG9wLnN0eWxlJiYoZXR8PShjdD1nZC5pbmRleE9mKFZlLnRvcC5zdHlsZSkpPi0xP2N0OjApLG51bGwhPVZlLmJvdHRvbSYmVmUuYm90dG9tLnN0eWxlJiYoZXR8PSgoY3Q9Z2QuaW5kZXhPZihWZS5ib3R0b20uc3R5bGUpKT4t'@; put 'MT9jdDowKTw8NCkpLEsud3JpdGVfc2hpZnQoMSxZZSksSy53cml0ZV9zaGlmdCgxLGV0KSxLLndyaXRlX3NoaWZ0KDIsMCksSy53cml0ZV9zaGlmdCgyLDApLEsud3JpdGVfc2hpZnQoMSwwKTt2YXIgVHQ9MCxpdD1rLkZpbGxzJiZrLkZpbGxzW1MuZmlsbElkfHwwXXx8e307KGl0LmZnQ29s'@; put 'b3J8fGl0LmJnQ29sb3IpJiYoVHR8PTQpLEsud3JpdGVfc2hpZnQoMSxUdCk7dmFyIGJ0PTA7YnR8PVA0KGl0LmZnQ29sb3IsNjUpLGJ0fD1QNChpdC5iZ0NvbG9yLDY1KTw8NyxLLndyaXRlX3NoaWZ0KDIsYnQpfWVsc2UgSy53cml0ZV9zaGlmdCg0LDApLEsud3JpdGVfc2hpZnQoNCwwKSxL'@; put 'LndyaXRlX3NoaWZ0KDIsMCk7cmV0dXJuIEt9ZnVuY3Rpb24gRTQoUyxPLGspe3ZhciBLPXkwKFMpOygyPT1rLmJpZmZ8fDk9PU8pJiYrK1MubDt2YXIgZWU9ZnVuY3Rpb24gQmwoUyl7dmFyIE89Uy5yZWFkX3NoaWZ0KDEpO3JldHVybiAxPT09Uy5yZWFkX3NoaWZ0KDEpP086MT09PU99KFMp'@; put 'O3JldHVybiBLLnZhbD1lZSxLLnQ9ITA9PT1lZXx8ITE9PT1lZT8iYiI6ImUiLEt9dmFyIHRrPWZ1bmN0aW9uIHA1KFMsTyxrKXtyZXR1cm4gMD09PU8/IiI6WDAoUywwLGspfTtmdW5jdGlvbiBhQyhTLE8sayl7dmFyIGVlLEs9Uy5yZWFkX3NoaWZ0KDIpLG9lPXtmQnVpbHRJbjoxJkssZldh'@; put 'bnRBZHZpc2U6Sz4+PjEmMSxmV2FudFBpY3Q6Sz4+PjImMSxmT2xlOks+Pj4zJjEsZk9sZUxpbms6Sz4+PjQmMSxjZjpLPj4+NSYxMDIzLGZJY29uOks+Pj4xNSYxfTtyZXR1cm4gMTQ4NDk9PT1rLnNiY2NoJiYoZWU9ZnVuY3Rpb24gejYoUyxPLGspe1MubCs9NDt2YXIgSz1TLmwrKE8tPTQp'@; put 'LGVlPVdhKFMsMCxrKSxvZT1TLnJlYWRfc2hpZnQoMik7aWYob2UhPT0oSy09Uy5sKSl0aHJvdyBuZXcgRXJyb3IoIk1hbGZvcm1lZCBBZGRpblVkZjogcGFkZGluZyA9ICIrSysiICE9ICIrb2UpO3JldHVybiBTLmwrPW9lLGVlfShTLE8tMixrKSksb2UuYm9keT1lZXx8Uy5yZWFkX3NoaWZ0'@; put 'KE8tMiksInN0cmluZyI9PXR5cGVvZiBlZSYmKG9lLk5hbWU9ZWUpLG9lfXZhciBmVj1bIl94bG5tLkNvbnNvbGlkYXRlX0FyZWEiLCJfeGxubS5BdXRvX09wZW4iLCJfeGxubS5BdXRvX0Nsb3NlIiwiX3hsbm0uRXh0cmFjdCIsIl94bG5tLkRhdGFiYXNlIiwiX3hsbm0uQ3JpdGVyaWEiLCJf'@; put 'eGxubS5QcmludF9BcmVhIiwiX3hsbm0uUHJpbnRfVGl0bGVzIiwiX3hsbm0uUmVjb3JkZXIiLCJfeGxubS5EYXRhX0Zvcm0iLCJfeGxubS5BdXRvX0FjdGl2YXRlIiwiX3hsbm0uQXV0b19EZWFjdGl2YXRlIiwiX3hsbm0uU2hlZXRfVGl0bGUiLCJfeGxubS5fRmlsdGVyRGF0YWJhc2UiXTtm'@; put 'dW5jdGlvbiBzQyhTLE8sayl7dmFyIEs9Uy5sK08sZWU9Uy5yZWFkX3NoaWZ0KDIpLG9lPVMucmVhZF9zaGlmdCgxKSxtZT1TLnJlYWRfc2hpZnQoMSkscGU9Uy5yZWFkX3NoaWZ0KGsmJjI9PWsuYmlmZj8xOjIpLGJlPTA7KCFrfHxrLmJpZmY+PTUpJiYoNSE9ay5iaWZmJiYoUy5sKz0yKSxi'@; put 'ZT1TLnJlYWRfc2hpZnQoMiksNT09ay5iaWZmJiYoUy5sKz0yKSxTLmwrPTQpO3ZhciBQZT1uYyhTLG1lLGspOzMyJmVlJiYoUGU9ZlZbUGUuY2hhckNvZGVBdCgwKV0pO3ZhciBWZT1LLVMubDtrJiYyPT1rLmJpZmYmJi0tVmU7dmFyIFllPUshPVMubCYmMCE9PXBlJiZWZT4wP2Z1bmN0aW9u'@; put 'IE5uZShTLE8sayxLKXt2YXIgbWUsZWU9Uy5sK08sb2U9Y2goUyxLLGspO3JldHVybiBlZSE9PVMubCYmKG1lPUI0KFMsZWUtUy5sLG9lLGspKSxbb2UsbWVdfShTLFZlLGsscGUpOltdO3JldHVybntjaEtleTpvZSxOYW1lOlBlLGl0YWI6YmUscmdjZTpZZX19ZnVuY3Rpb24gU3YoUyxPLGsp'@; put 'e2lmKGsuYmlmZjw4KXJldHVybiBmdW5jdGlvbiBvQyhTLE8sayl7Mz09U1tTLmwrMV0mJlNbUy5sXSsrO3ZhciBLPVdhKFMsMCxrKTtyZXR1cm4gMz09Sy5jaGFyQ29kZUF0KDApP0suc2xpY2UoMSk6S30oUywwLGspO2Zvcih2YXIgSz1bXSxlZT1TLmwrTyxvZT1TLnJlYWRfc2hpZnQoay5i'@; put 'aWZmPjg/NDoyKTswIT1vZS0tOylLLnB1c2goRGYoUywwLGspKTtpZihTLmwhPWVlKXRocm93IG5ldyBFcnJvcigiQmFkIEV4dGVyblNoZWV0OiAiK1MubCsiICE9ICIrZWUpO3JldHVybiBLfWZ1bmN0aW9uIHh2KFMsTyxrKXt2YXIgSz1mYyhTLDYpO3N3aXRjaChrLmJpZmYpe2Nhc2UgMjpT'@; put 'LmwrKyxPLT03O2JyZWFrO2Nhc2UgMzpjYXNlIDQ6Uy5sKz0yLE8tPTg7YnJlYWs7ZGVmYXVsdDpTLmwrPTYsTy09MTJ9cmV0dXJuW0ssaEQoUyxPLGspXX12YXIgcms9W107ZnVuY3Rpb24gdlYoUyl7dmFyIE89dm4oMjQpLGs9VnMoU1swXSk7Ty53cml0ZV9zaGlmdCgyLGsuciksTy53cml0'@; put 'ZV9zaGlmdCgyLGsuciksTy53cml0ZV9zaGlmdCgyLGsuYyksTy53cml0ZV9zaGlmdCgyLGsuYyk7Zm9yKHZhciBLPSJkMCBjOSBlYSA3OSBmOSBiYSBjZSAxMSA4YyA4MiAwMCBhYSAwMCA0YiBhOSAwYiIuc3BsaXQoIiAiKSxlZT0wO2VlPDE2OysrZWUpTy53cml0ZV9zaGlmdCgxLHBhcnNl'@; put 'SW50KEtbZWVdLDE2KSk7cmV0dXJuIFUoW08sUzQoU1sxXSldKX1mdW5jdGlvbiBiVihTKXt2YXIgTz1TWzFdLlRvb2x0aXAsaz12bigxMCsyKihPLmxlbmd0aCsxKSk7ay53cml0ZV9zaGlmdCgyLDIwNDgpO3ZhciBLPVZzKFNbMF0pO2sud3JpdGVfc2hpZnQoMixLLnIpLGsud3JpdGVfc2hp'@; put 'ZnQoMixLLnIpLGsud3JpdGVfc2hpZnQoMixLLmMpLGsud3JpdGVfc2hpZnQoMixLLmMpO2Zvcih2YXIgZWU9MDtlZTxPLmxlbmd0aDsrK2VlKWsud3JpdGVfc2hpZnQoMixPLmNoYXJDb2RlQXQoZWUpKTtyZXR1cm4gay53cml0ZV9zaGlmdCgyLDApLGt9ZnVuY3Rpb24gbEMoUyxPLGspe2lm'@; put 'KCFrLmNlbGxTdHlsZXMpcmV0dXJuIFJuKFMsTyk7dmFyIEs9ayYmay5iaWZmPj0xMj80OjIsZWU9Uy5yZWFkX3NoaWZ0KEspLG9lPVMucmVhZF9zaGlmdChLKSxtZT1TLnJlYWRfc2hpZnQoSykscGU9Uy5yZWFkX3NoaWZ0KEspLGJlPVMucmVhZF9zaGlmdCgyKTsyPT1LJiYoUy5sKz0yKTt2'@; put 'YXIgUGU9e3M6ZWUsZTpvZSx3Om1lLGl4ZmU6cGUsZmxhZ3M6YmV9O3JldHVybihrLmJpZmY+PTV8fCFrLmJpZmYpJiYoUGUubGV2ZWw9YmU+PjgmNyksUGV9cmtbOF09ZnVuY3Rpb24oUyxPKXt2YXIgaz1TLmwrTztTLmwrPTEwO3ZhciBLPVMucmVhZF9zaGlmdCgyKTtTLmwrPTQsUy5sKz0y'@; put 'LFMubCs9MixTLmwrPTIsUy5sKz00O3ZhciBlZT1TLnJlYWRfc2hpZnQoMSk7cmV0dXJuIFMubCs9ZWUsUy5sPWsse2ZtdDpLfX07dmFyIGNuZT15MCxhaz13NCxSMD1RYzt2YXIgajM9ZnVuY3Rpb24oKXt2YXIgUz17MTo0MzcsMjo4NTAsMzoxMjUyLDQ6MWU0LDEwMDo4NTIsMTAxOjg2Niwx'@; put 'MDI6ODY1LDEwMzo4NjEsMTA0Ojg5NSwxMDU6NjIwLDEwNjo3MzcsMTA3Ojg1NywxMjA6OTUwLDEyMTo5NDksMTIyOjkzNiwxMjM6OTMyLDEyNDo4NzQsMTI1OjEyNTUsMTI2OjEyNTYsMTUwOjEwMDA3LDE1MToxMDAyOSwxNTI6MTAwMDYsMjAwOjEyNTAsMjAxOjEyNTEsMjAyOjEyNTQsMjAz'@; put 'OjEyNTMsMDoyMDEyNyw4Ojg2NSw5OjQzNywxMDo4NTAsMTE6NDM3LDEzOjQzNywxNDo4NTAsMTU6NDM3LDE2Ojg1MCwxNzo0MzcsMTg6ODUwLDE5OjkzMiwyMDo4NTAsMjE6NDM3LDIyOjg1MCwyMzo4NjUsMjQ6NDM3LDI1OjQzNywyNjo4NTAsMjc6NDM3LDI4Ojg2MywyOTo4NTAsMzE6ODUy'@; put 'LDM0Ojg1MiwzNTo4NTIsMzY6ODYwLDM3Ojg1MCwzODo4NjYsNTU6ODUwLDY0Ojg1Miw3Nzo5MzYsNzg6OTQ5LDc5Ojk1MCw4MDo4NzQsODc6MTI1Miw4ODoxMjUyLDg5OjEyNTIsMTA4Ojg2MywxMzQ6NzM3LDEzNTo4NTIsMTM2Ojg1NywyMDQ6MTI1NywyNTU6MTY5Njl9LE89SGUoezE6NDM3'@; put 'LDI6ODUwLDM6MTI1Miw0OjFlNCwxMDA6ODUyLDEwMTo4NjYsMTAyOjg2NSwxMDM6ODYxLDEwNDo4OTUsMTA1OjYyMCwxMDY6NzM3LDEwNzo4NTcsMTIwOjk1MCwxMjE6OTQ5LDEyMjo5MzYsMTIzOjkzMiwxMjQ6ODc0LDEyNToxMjU1LDEyNjoxMjU2LDE1MDoxMDAwNywxNTE6MTAwMjksMTUy'@; put 'OjEwMDA2LDIwMDoxMjUwLDIwMToxMjUxLDIwMjoxMjU0LDIwMzoxMjUzLDA6MjAxMjd9KTtmdW5jdGlvbiBlZShiZSxQZSl7dmFyIFZlPVBlfHx7fTtyZXR1cm4gVmUuZGF0ZU5GfHwoVmUuZGF0ZU5GPSJ5eXl5bW1kZCIpLHA0KGZ1bmN0aW9uIEsoYmUsUGUpe3ZhciBWZT1bXSxZZT16KDEp'@; put 'O3N3aXRjaChQZS50eXBlKXtjYXNlImJhc2U2NCI6WWU9eShfZS5kZWNvZGUoYmUpKTticmVhaztjYXNlImJpbmFyeSI6WWU9eShiZSk7YnJlYWs7Y2FzZSJidWZmZXIiOmNhc2UiYXJyYXkiOlllPWJlfWduKFllLDApO3ZhciBldD1ZZS5yZWFkX3NoaWZ0KDEpLGN0PSEhKDEzNiZldCksVHQ9'@; put 'ITEsaXQ9ITE7c3dpdGNoKGV0KXtjYXNlIDI6Y2FzZSAzOmNhc2UgMTMxOmNhc2UgMTM5OmNhc2UgMjQ1OmJyZWFrO2Nhc2UgNDg6Y2FzZSA0OTpUdD0hMCxjdD0hMDticmVhaztjYXNlIDE0MDppdD0hMDticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiREJGIFVuc3VwcG9ydGVkIFZl'@; put 'cnNpb246ICIrZXQudG9TdHJpbmcoMTYpKX12YXIgYnQ9MCxCdD01MjE7Mj09ZXQmJihidD1ZZS5yZWFkX3NoaWZ0KDIpKSxZZS5sKz0zLDIhPWV0JiYoYnQ9WWUucmVhZF9zaGlmdCg0KSksYnQ+MTA0ODU3NiYmKGJ0PTFlNiksMiE9ZXQmJihCdD1ZZS5yZWFkX3NoaWZ0KDIpKTt2YXIgRHQ9'@; put 'WWUucmVhZF9zaGlmdCgyKSxPdD1QZS5jb2RlcGFnZXx8MTI1MjsyIT1ldCYmKFllLmwrPTE2LFllLnJlYWRfc2hpZnQoMSksMCE9PVllW1llLmxdJiYoT3Q9U1tZZVtZZS5sXV0pLFllLmwrPTEsWWUubCs9MiksaXQmJihZZS5sKz0zNik7Zm9yKHZhciBLdD1bXSxUbj17fSxzcj1NYXRoLm1p'@; put 'bihZZS5sZW5ndGgsMj09ZXQ/NTIxOkJ0LTEwLShUdD8yNjQ6MCkpLENuPWl0PzMyOjExO1llLmw8c3ImJjEzIT1ZZVtZZS5sXTspc3dpdGNoKFRuPXt9LFRuLm5hbWU9Y3B0YWJsZS51dGlscy5kZWNvZGUoT3QsWWUuc2xpY2UoWWUubCxZZS5sK0NuKSkucmVwbGFjZSgvW1x1MDAwMFxyXG5d'@; put 'LiokL2csIiIpLFllLmwrPUNuLFRuLnR5cGU9U3RyaW5nLmZyb21DaGFyQ29kZShZZS5yZWFkX3NoaWZ0KDEpKSwyIT1ldCYmIWl0JiYoVG4ub2Zmc2V0PVllLnJlYWRfc2hpZnQoNCkpLFRuLmxlbj1ZZS5yZWFkX3NoaWZ0KDEpLDI9PWV0JiYoVG4ub2Zmc2V0PVllLnJlYWRfc2hpZnQoMikp'@; put 'LFRuLmRlYz1ZZS5yZWFkX3NoaWZ0KDEpLFRuLm5hbWUubGVuZ3RoJiZLdC5wdXNoKFRuKSwyIT1ldCYmKFllLmwrPWl0PzEzOjE0KSxUbi50eXBlKXtjYXNlIkIiOighVHR8fDghPVRuLmxlbikmJlBlLldURiYmY29uc29sZS5sb2coIlNraXBwaW5nICIrVG4ubmFtZSsiOiIrVG4udHlwZSk7'@; put 'YnJlYWs7Y2FzZSJHIjpjYXNlIlAiOlBlLldURiYmY29uc29sZS5sb2coIlNraXBwaW5nICIrVG4ubmFtZSsiOiIrVG4udHlwZSk7YnJlYWs7Y2FzZSIrIjpjYXNlIjAiOmNhc2UiQCI6Y2FzZSJDIjpjYXNlIkQiOmNhc2UiRiI6Y2FzZSJJIjpjYXNlIkwiOmNhc2UiTSI6Y2FzZSJOIjpjYXNl'@; put 'Ik8iOmNhc2UiVCI6Y2FzZSJZIjpicmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5rbm93biBGaWVsZCBUeXBlOiAiK1RuLnR5cGUpfWlmKDEzIT09WWVbWWUubF0mJihZZS5sPUJ0LTEpLDEzIT09WWUucmVhZF9zaGlmdCgxKSl0aHJvdyBuZXcgRXJyb3IoIkRCRiBUZXJtaW5hdG9y'@; put 'IG5vdCBmb3VuZCAiK1llLmwrIiAiK1llW1llLmxdKTtZZS5sPUJ0O3ZhciB1cj0wLGVyPTA7Zm9yKFZlWzBdPVtdLGVyPTA7ZXIhPUt0Lmxlbmd0aDsrK2VyKVZlWzBdW2VyXT1LdFtlcl0ubmFtZTtmb3IoO2J0LS0gPjA7KWlmKDQyIT09WWVbWWUubF0pZm9yKCsrWWUubCxWZVsrK3VyXT1b'@; put 'XSxlcj0wLGVyPTA7ZXIhPUt0Lmxlbmd0aDsrK2VyKXt2YXIgam49WWUuc2xpY2UoWWUubCxZZS5sK0t0W2VyXS5sZW4pO1llLmwrPUt0W2VyXS5sZW4sZ24oam4sMCk7dmFyIHByPWNwdGFibGUudXRpbHMuZGVjb2RlKE90LGpuKTtzd2l0Y2goS3RbZXJdLnR5cGUpe2Nhc2UiQyI6cHIudHJp'@; put 'bSgpLmxlbmd0aCYmKFZlW3VyXVtlcl09cHIucmVwbGFjZSgvXHMrJC8sIiIpKTticmVhaztjYXNlIkQiOlZlW3VyXVtlcl09OD09PXByLmxlbmd0aD9uZXcgRGF0ZSgrcHIuc2xpY2UoMCw0KSwrcHIuc2xpY2UoNCw2KS0xLCtwci5zbGljZSg2LDgpKTpwcjticmVhaztjYXNlIkYiOlZlW3Vy'@; put 'XVtlcl09cGFyc2VGbG9hdChwci50cmltKCkpO2JyZWFrO2Nhc2UiKyI6Y2FzZSJJIjpWZVt1cl1bZXJdPWl0PzIxNDc0ODM2NDheam4ucmVhZF9zaGlmdCgtNCwiaSIpOmpuLnJlYWRfc2hpZnQoNCwiaSIpO2JyZWFrO2Nhc2UiTCI6c3dpdGNoKHByLnRyaW0oKS50b1VwcGVyQ2FzZSgpKXtj'@; put 'YXNlIlkiOmNhc2UiVCI6VmVbdXJdW2VyXT0hMDticmVhaztjYXNlIk4iOmNhc2UiRiI6VmVbdXJdW2VyXT0hMTticmVhaztjYXNlIiI6Y2FzZSI/IjpicmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiREJGIFVucmVjb2duaXplZCBMOnwiK3ByKyJ8Iil9YnJlYWs7Y2FzZSJNIjppZigh'@; put 'Y3QpdGhyb3cgbmV3IEVycm9yKCJEQkYgVW5leHBlY3RlZCBNRU1PIGZvciB0eXBlICIrZXQudG9TdHJpbmcoMTYpKTtWZVt1cl1bZXJdPSIjI01FTU8jIyIrKGl0P3BhcnNlSW50KHByLnRyaW0oKSwxMCk6am4ucmVhZF9zaGlmdCg0KSk7YnJlYWs7Y2FzZSJOIjoocHI9cHIucmVwbGFjZSgv'@; put 'XHUwMDAwL2csIiIpLnRyaW0oKSkmJiIuIiE9cHImJihWZVt1cl1bZXJdPStwcnx8MCk7YnJlYWs7Y2FzZSJAIjpWZVt1cl1bZXJdPW5ldyBEYXRlKGpuLnJlYWRfc2hpZnQoLTgsImYiKS02MjEzNTY4MzJlNSk7YnJlYWs7Y2FzZSJUIjpWZVt1cl1bZXJdPW5ldyBEYXRlKDg2NGU1Kihqbi5y'@; put 'ZWFkX3NoaWZ0KDQpLTI0NDA1ODgpK2puLnJlYWRfc2hpZnQoNCkpO2JyZWFrO2Nhc2UiWSI6VmVbdXJdW2VyXT1qbi5yZWFkX3NoaWZ0KDQsImkiKS8xZTQ7YnJlYWs7Y2FzZSJPIjpWZVt1cl1bZXJdPS1qbi5yZWFkX3NoaWZ0KC04LCJmIik7YnJlYWs7Y2FzZSJCIjppZihUdCYmOD09S3Rb'@; put 'ZXJdLmxlbil7VmVbdXJdW2VyXT1qbi5yZWFkX3NoaWZ0KDgsImYiKTticmVha31jYXNlIkciOmNhc2UiUCI6am4ubCs9S3RbZXJdLmxlbjticmVhaztjYXNlIjAiOmlmKCJfTnVsbEZsYWdzIj09PUt0W2VyXS5uYW1lKWJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJEQkYgVW5zdXBw'@; put 'b3J0ZWQgZGF0YSB0eXBlICIrS3RbZXJdLnR5cGUpfX1lbHNlIFllLmwrPUR0O2lmKDIhPWV0JiZZZS5sPFllLmxlbmd0aCYmMjYhPVllW1llLmwrK10pdGhyb3cgbmV3IEVycm9yKCJEQkYgRU9GIE1hcmtlciBtaXNzaW5nICIrKFllLmwtMSkrIiBvZiAiK1llLmxlbmd0aCsiICIrWWVbWWUu'@; put 'bC0xXS50b1N0cmluZygxNikpO3JldHVybiBQZSYmUGUuc2hlZXRSb3dzJiYoVmU9VmUuc2xpY2UoMCxQZS5zaGVldFJvd3MpKSxWZX0oYmUsVmUpLFZlKX12YXIgbWU9e0I6OCxDOjI1MCxMOjEsRDo4LCI/IjowLCIiOjB9O3JldHVybnt2ZXJzaW9uczpbMiwzLDQ4LDQ5LDEzMSwxMzksMTQw'@; put 'LDI0NV0sdG9fd29ya2Jvb2s6ZnVuY3Rpb24gb2UoYmUsUGUpe3RyeXtyZXR1cm4gdGgoZWUoYmUsUGUpLFBlKX1jYXRjaChWZSl7aWYoUGUmJlBlLldURil0aHJvdyBWZX1yZXR1cm57U2hlZXROYW1lczpbXSxTaGVldHM6e319fSx0b19zaGVldDplZSxmcm9tX3NoZWV0OmZ1bmN0aW9uIHBl'@; put 'KGJlLFBlKXt2YXIgVmU9UGV8fHt9O2lmKCtWZS5jb2RlcGFnZT49MCYmQigrVmUuY29kZXBhZ2UpLCJzdHJpbmciPT1WZS50eXBlKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHdyaXRlIERCRiB0byBKUyBzdHJpbmciKTt2YXIgWWU9dmkoKSxldD1LNChiZSx7aGVhZGVyOjEscmF3OiEwLGNl'@; put 'bGxEYXRlczohMH0pLGN0PWV0WzBdLFR0PWV0LnNsaWNlKDEpLGl0PTAsYnQ9MCxCdD0wLER0PTE7Zm9yKGl0PTA7aXQ8Y3QubGVuZ3RoOysraXQpaWYobnVsbCE9aXQpe2lmKCsrQnQsIm51bWJlciI9PXR5cGVvZiBjdFtpdF0mJihjdFtpdF09Y3RbaXRdLnRvU3RyaW5nKDEwKSksInN0cmlu'@; put 'ZyIhPXR5cGVvZiBjdFtpdF0pdGhyb3cgbmV3IEVycm9yKCJEQkYgSW52YWxpZCBjb2x1bW4gbmFtZSAiK2N0W2l0XSsiIHwiK3R5cGVvZiBjdFtpdF0rInwiKTtpZihjdC5pbmRleE9mKGN0W2l0XSkhPT1pdClmb3IoYnQ9MDtidDwxMDI0OysrYnQpaWYoLTE9PWN0LmluZGV4T2YoY3RbaXRd'@; put 'KyJfIitidCkpe2N0W2l0XSs9Il8iK2J0O2JyZWFrfX12YXIgT3Q9c3MoYmVbIiFyZWYiXSksS3Q9W107Zm9yKGl0PTA7aXQ8PU90LmUuYy1PdC5zLmM7KytpdCl7dmFyIFRuPVtdO2ZvcihidD0wO2J0PFR0Lmxlbmd0aDsrK2J0KW51bGwhPVR0W2J0XVtpdF0mJlRuLnB1c2goVHRbYnRdW2l0'@; put 'XSk7aWYoMCE9VG4ubGVuZ3RoJiZudWxsIT1jdFtpdF0pe3ZhciBzcj0iIixDbj0iIjtmb3IoYnQ9MDtidDxUbi5sZW5ndGg7KytidCl7c3dpdGNoKHR5cGVvZiBUbltidF0pe2Nhc2UibnVtYmVyIjpDbj0iQiI7YnJlYWs7Y2FzZSJzdHJpbmciOmRlZmF1bHQ6Q249IkMiO2JyZWFrO2Nhc2Ui'@; put 'Ym9vbGVhbiI6Q249IkwiO2JyZWFrO2Nhc2Uib2JqZWN0IjpDbj1UbltidF1pbnN0YW5jZW9mIERhdGU/IkQiOiJDIn1pZigiQyI9PShzcj1zciYmc3IhPUNuPyJDIjpDbikpYnJlYWt9RHQrPW1lW3NyXXx8MCxLdFtpdF09c3J9ZWxzZSBLdFtpdF09Ij8ifXZhciB1cj1ZZS5uZXh0KDMyKTtm'@; put 'b3IodXIud3JpdGVfc2hpZnQoNCwzMTg5MDI1NzYpLHVyLndyaXRlX3NoaWZ0KDQsVHQubGVuZ3RoKSx1ci53cml0ZV9zaGlmdCgyLDI5NiszMipCdCksdXIud3JpdGVfc2hpZnQoMixEdCksaXQ9MDtpdDw0OysraXQpdXIud3JpdGVfc2hpZnQoNCwwKTtmb3IodXIud3JpdGVfc2hpZnQoNCwo'@; put 'K09bSF18fDMpPDw4KSxpdD0wLGJ0PTA7aXQ8Y3QubGVuZ3RoOysraXQpaWYobnVsbCE9Y3RbaXRdKXt2YXIgZXI9WWUubmV4dCgzMiksam49KGN0W2l0XS5zbGljZSgtMTApKyJcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIikuc2xpY2UoMCwxMSk7ZXIud3JpdGVfc2hpZnQoMSxqbiwic2JjcyIp'@; put 'LGVyLndyaXRlX3NoaWZ0KDEsIj8iPT1LdFtpdF0/IkMiOkt0W2l0XSwic2JjcyIpLGVyLndyaXRlX3NoaWZ0KDQsYnQpLGVyLndyaXRlX3NoaWZ0KDEsbWVbS3RbaXRdXXx8MCksZXIud3JpdGVfc2hpZnQoMSwwKSxlci53cml0ZV9zaGlmdCgxLDIpLGVyLndyaXRlX3NoaWZ0KDQsMCksZXIu'@; put 'd3JpdGVfc2hpZnQoMSwwKSxlci53cml0ZV9zaGlmdCg0LDApLGVyLndyaXRlX3NoaWZ0KDQsMCksYnQrPW1lW0t0W2l0XV18fDB9dmFyIHByPVllLm5leHQoMjY0KTtmb3IocHIud3JpdGVfc2hpZnQoNCwxMyksaXQ9MDtpdDw2NTsrK2l0KXByLndyaXRlX3NoaWZ0KDQsMCk7Zm9yKGl0PTA7'@; put 'aXQ8VHQubGVuZ3RoOysraXQpe3ZhciBicj1ZZS5uZXh0KER0KTtmb3IoYnIud3JpdGVfc2hpZnQoMSwwKSxidD0wO2J0PGN0Lmxlbmd0aDsrK2J0KWlmKG51bGwhPWN0W2J0XSlzd2l0Y2goS3RbYnRdKXtjYXNlIkwiOmJyLndyaXRlX3NoaWZ0KDEsbnVsbD09VHRbaXRdW2J0XT82MzpUdFtp'@; put 'dF1bYnRdPzg0OjcwKTticmVhaztjYXNlIkIiOmJyLndyaXRlX3NoaWZ0KDgsVHRbaXRdW2J0XXx8MCwiZiIpO2JyZWFrO2Nhc2UiRCI6VHRbaXRdW2J0XT8oYnIud3JpdGVfc2hpZnQoNCwoIjAwMDAiK1R0W2l0XVtidF0uZ2V0RnVsbFllYXIoKSkuc2xpY2UoLTQpLCJzYmNzIiksYnIud3Jp'@; put 'dGVfc2hpZnQoMiwoIjAwIisoVHRbaXRdW2J0XS5nZXRNb250aCgpKzEpKS5zbGljZSgtMiksInNiY3MiKSxici53cml0ZV9zaGlmdCgyLCgiMDAiK1R0W2l0XVtidF0uZ2V0RGF0ZSgpKS5zbGljZSgtMiksInNiY3MiKSk6YnIud3JpdGVfc2hpZnQoOCwiMDAwMDAwMDAiLCJzYmNzIik7YnJl'@; put 'YWs7Y2FzZSJDIjp2YXIgcnI9U3RyaW5nKFR0W2l0XVtidF18fCIiKTtmb3IoYnIud3JpdGVfc2hpZnQoMSxyciwic2JjcyIpLEJ0PTA7QnQ8MjUwLXJyLmxlbmd0aDsrK0J0KWJyLndyaXRlX3NoaWZ0KDEsMzIpfX1yZXR1cm4gWWUubmV4dCgxKS53cml0ZV9zaGlmdCgxLDI2KSxZZS5lbmQo'@; put 'KX19fSgpLHBDPWZ1bmN0aW9uKCl7dmFyIFM9e0FBOiJceGMwIixCQToiXHhjMSIsQ0E6Ilx4YzIiLERBOjE5NSxIQToiXHhjNCIsSkE6MTk3LEFFOiJceGM4IixCRToiXHhjOSIsQ0U6Ilx4Y2EiLEhFOiJceGNiIixBSToiXHhjYyIsQkk6Ilx4Y2QiLENJOiJceGNlIixISToiXHhjZiIsQU86'@; put 'Ilx4ZDIiLEJPOiJceGQzIixDTzoiXHhkNCIsRE86MjEzLEhPOiJceGQ2IixBVToiXHhkOSIsQlU6Ilx4ZGEiLENVOiJceGRiIixIVToiXHhkYyIsQWE6Ilx4ZTAiLEJhOiJceGUxIixDYToiXHhlMiIsRGE6MjI3LEhhOiJceGU0IixKYToyMjksQWU6Ilx4ZTgiLEJlOiJceGU5IixDZToiXHhl'@; put 'YSIsSGU6Ilx4ZWIiLEFpOiJceGVjIixCaToiXHhlZCIsQ2k6Ilx4ZWUiLEhpOiJceGVmIixBbzoiXHhmMiIsQm86Ilx4ZjMiLENvOiJceGY0IixEbzoyNDUsSG86Ilx4ZjYiLEF1OiJceGY5IixCdToiXHhmYSIsQ3U6Ilx4ZmIiLEh1OiJceGZjIixLQzoiXHhjNyIsS2M6Ilx4ZTciLHE6Ilx4'@; put 'ZTYiLHo6Ilx1MDE1MyIsYToiXHhjNiIsajoiXHUwMTUyIixETjoyMDksRG46MjQxLEh5OjI1NSxTOjE2OSxjOjE3MCxSOjE3NCwiQiAiOjE4MCwwOjE3NiwxOjE3NywyOjE3OCwzOjE3OSw1OjE4MSw2OjE4Miw3OjE4MyxROjE4NSxrOjE4NixiOjIwOCxpOjIxNixsOjIyMixzOjI0MCx5OjI0'@; put 'OCwiISI6MTYxLCciJzoxNjIsIiMiOjE2MywiKCI6MTY0LCIlIjoxNjUsIiciOjE2NywiSCAiOjE2OCwiKyI6MTcxLCI7IjoxODcsIjwiOjE4OCwiPSI6MTg5LCI+IjoxOTAsIj8iOjE5MSwieyI6MjIzfSxPPW5ldyBSZWdFeHAoIlx4MWJOKCIrUmUoUykuam9pbigifCIpLnJlcGxhY2UoL1x8'@; put 'XHxcfC8sInxcXHx8IikucmVwbGFjZSgvKFs/KCkrXSkvZywiXFwkMSIpKyJ8XFx8KSIsImdtIiksaz1mdW5jdGlvbihldCxjdCl7dmFyIFR0PVNbY3RdO3JldHVybiJudW1iZXIiPT10eXBlb2YgVHQ/aWUoVHQpOlR0fSxLPWZ1bmN0aW9uKGV0LGN0LFR0KXt2YXIgaXQ9Y3QuY2hhckNvZGVB'@; put 'dCgwKS0zMjw8NHxUdC5jaGFyQ29kZUF0KDApLTQ4O3JldHVybiA1OT09aXQ/ZXQ6aWUoaXQpfTtmdW5jdGlvbiBvZShldCxjdCl7dmFyIHByLFR0PWV0LnNwbGl0KC9bXG5ccl0rLyksaXQ9LTEsYnQ9LTEsQnQ9MCxEdD0wLE90PVtdLEt0PVtdLFRuPW51bGwsc3I9e30sQ249W10sdXI9W10s'@; put 'ZXI9W10sam49MDtmb3IoK2N0LmNvZGVwYWdlPj0wJiZCKCtjdC5jb2RlcGFnZSk7QnQhPT1UdC5sZW5ndGg7KytCdCl7am49MDt2YXIgUGksYnI9VHRbQnRdLnRyaW0oKS5yZXBsYWNlKC9ceDFCKFtceDIwLVx4MkZdKShbXHgzMC1ceDNGXSkvZyxLKS5yZXBsYWNlKE8saykscnI9YnIucmVw'@; put 'bGFjZSgvOzsvZywiXDAiKS5zcGxpdCgiOyIpLm1hcChmdW5jdGlvbihXaSl7cmV0dXJuIFdpLnJlcGxhY2UoL1x1MDAwMC9nLCI7Iil9KTtpZihici5sZW5ndGg+MClzd2l0Y2gocnJbMF0pe2Nhc2UiSUQiOmNhc2UiRSI6Y2FzZSJCIjpjYXNlIk8iOmNhc2UiVyI6YnJlYWs7Y2FzZSJQIjoi'@; put 'UCI9PXJyWzFdLmNoYXJBdCgwKSYmS3QucHVzaChici5zbGljZSgzKS5yZXBsYWNlKC87Oy9nLCI7IikpO2JyZWFrO2Nhc2UiQyI6dmFyIG5hPSExLGxhPSExLFJpPSExLFJyPSExLEJuPS0xLGpyPS0xO2ZvcihEdD0xO0R0PHJyLmxlbmd0aDsrK0R0KXN3aXRjaChycltEdF0uY2hhckF0KDAp'@; put 'KXtjYXNlIkEiOmNhc2UiRyI6YnJlYWs7Y2FzZSJYIjpidD1wYXJzZUludChycltEdF0uc2xpY2UoMSkpLTEsbGE9ITA7YnJlYWs7Y2FzZSJZIjpmb3IoaXQ9cGFyc2VJbnQocnJbRHRdLnNsaWNlKDEpKS0xLGxhfHwoYnQ9MCkscHI9T3QubGVuZ3RoO3ByPD1pdDsrK3ByKU90W3ByXT1bXTti'@; put 'cmVhaztjYXNlIksiOiciJz09PShQaT1ycltEdF0uc2xpY2UoMSkpLmNoYXJBdCgwKT9QaT1QaS5zbGljZSgxLFBpLmxlbmd0aC0xKToiVFJVRSI9PT1QaT9QaT0hMDoiRkFMU0UiPT09UGk/UGk9ITE6aXNOYU4oZW4oUGkpKT9pc05hTihzbihQaSkuZ2V0RGF0ZSgpKXx8KFBpPU5lKFBpKSk6'@; put 'KFBpPWVuKFBpKSxudWxsIT09VG4mJkEuaXNfZGF0ZShUbikmJihQaT1vbihQaSkpKSx0eXBlb2YgY3B0YWJsZTwidSImJiJzdHJpbmciPT10eXBlb2YgUGkmJiJzdHJpbmciIT0oY3R8fHt9KS50eXBlJiYoY3R8fHt9KS5jb2RlcGFnZSYmKFBpPWNwdGFibGUudXRpbHMuZGVjb2RlKGN0LmNv'@; put 'ZGVwYWdlLFBpKSksbmE9ITA7YnJlYWs7Y2FzZSJFIjpScj0hMDt2YXIgd3I9TzUocnJbRHRdLnNsaWNlKDEpLHtyOml0LGM6YnR9KTtPdFtpdF1bYnRdPVtPdFtpdF1bYnRdLHdyXTticmVhaztjYXNlIlMiOlJpPSEwLE90W2l0XVtidF09W090W2l0XVtidF0sIlM1UyJdO2JyZWFrO2Nhc2Ui'@; put 'UiI6Qm49cGFyc2VJbnQocnJbRHRdLnNsaWNlKDEpKS0xO2JyZWFrO2Nhc2UiQyI6anI9cGFyc2VJbnQocnJbRHRdLnNsaWNlKDEpKS0xO2JyZWFrO2RlZmF1bHQ6aWYoY3QmJmN0LldURil0aHJvdyBuZXcgRXJyb3IoIlNZTEsgYmFkIHJlY29yZCAiK2JyKX1pZihuYSYmKE90W2l0XVtidF0m'@; put 'JjI9PU90W2l0XVtidF0ubGVuZ3RoP090W2l0XVtidF1bMF09UGk6T3RbaXRdW2J0XT1QaSxUbj1udWxsKSxSaSl7aWYoUnIpdGhyb3cgbmV3IEVycm9yKCJTWUxLIHNoYXJlZCBmb3JtdWxhIGNhbm5vdCBoYXZlIG93biBmb3JtdWxhIik7dmFyIEhuPUJuPi0xJiZPdFtCbl1banJdO2lmKCFI'@; put 'bnx8IUhuWzFdKXRocm93IG5ldyBFcnJvcigiU1lMSyBzaGFyZWQgZm9ybXVsYSBjYW5ub3QgZmluZCBiYXNlIik7T3RbaXRdW2J0XVsxXT1YayhIblsxXSx7cjppdC1CbixjOmJ0LWpyfSl9YnJlYWs7Y2FzZSJGIjp2YXIgenI9MDtmb3IoRHQ9MTtEdDxyci5sZW5ndGg7KytEdClzd2l0Y2go'@; put 'cnJbRHRdLmNoYXJBdCgwKSl7Y2FzZSJYIjpidD1wYXJzZUludChycltEdF0uc2xpY2UoMSkpLTEsKyt6cjticmVhaztjYXNlIlkiOmZvcihpdD1wYXJzZUludChycltEdF0uc2xpY2UoMSkpLTEscHI9T3QubGVuZ3RoO3ByPD1pdDsrK3ByKU90W3ByXT1bXTticmVhaztjYXNlIk0iOmpuPXBh'@; put 'cnNlSW50KHJyW0R0XS5zbGljZSgxKSkvMjA7YnJlYWs7Y2FzZSJGIjpjYXNlIkciOmNhc2UiUyI6Y2FzZSJEIjpjYXNlIk4iOmJyZWFrO2Nhc2UiUCI6VG49S3RbcGFyc2VJbnQocnJbRHRdLnNsaWNlKDEpKV07YnJlYWs7Y2FzZSJXIjpmb3IoZXI9cnJbRHRdLnNsaWNlKDEpLnNwbGl0KCIg'@; put 'IikscHI9cGFyc2VJbnQoZXJbMF0sMTApO3ByPD1wYXJzZUludChlclsxXSwxMCk7Kytwcilqbj1wYXJzZUludChlclsyXSwxMCksdXJbcHItMV09MD09PWpuP3toaWRkZW46ITB9Ont3Y2g6am59LEowKHVyW3ByLTFdKTticmVhaztjYXNlIkMiOnVyW2J0PXBhcnNlSW50KHJyW0R0XS5zbGlj'@; put 'ZSgxKSktMV18fCh1cltidF09e30pO2JyZWFrO2Nhc2UiUiI6Q25baXQ9cGFyc2VJbnQocnJbRHRdLnNsaWNlKDEpKS0xXXx8KENuW2l0XT17fSksam4+MD8oQ25baXRdLmhwdD1qbixDbltpdF0uaHB4PW9oKGpuKSk6MD09PWpuJiYoQ25baXRdLmhpZGRlbj0hMCk7YnJlYWs7ZGVmYXVsdDpp'@; put 'ZihjdCYmY3QuV1RGKXRocm93IG5ldyBFcnJvcigiU1lMSyBiYWQgcmVjb3JkICIrYnIpfXpyPDEmJihUbj1udWxsKTticmVhaztkZWZhdWx0OmlmKGN0JiZjdC5XVEYpdGhyb3cgbmV3IEVycm9yKCJTWUxLIGJhZCByZWNvcmQgIiticil9fXJldHVybiBDbi5sZW5ndGg+MCYmKHNyWyIhcm93'@; put 'cyJdPUNuKSx1ci5sZW5ndGg+MCYmKHNyWyIhY29scyJdPXVyKSxjdCYmY3Quc2hlZXRSb3dzJiYoT3Q9T3Quc2xpY2UoMCxjdC5zaGVldFJvd3MpKSxbT3Qsc3JdfWZ1bmN0aW9uIG1lKGV0LGN0KXt2YXIgVHQ9ZnVuY3Rpb24gZWUoZXQsY3Qpe3N3aXRjaChjdC50eXBlKXtjYXNlImJhc2U2'@; put 'NCI6cmV0dXJuIG9lKF9lLmRlY29kZShldCksY3QpO2Nhc2UiYmluYXJ5IjpyZXR1cm4gb2UoZXQsY3QpO2Nhc2UiYnVmZmVyIjpyZXR1cm4gb2UoZXQudG9TdHJpbmcoImJpbmFyeSIpLGN0KTtjYXNlImFycmF5IjpyZXR1cm4gb2UodXQoZXQpLGN0KX10aHJvdyBuZXcgRXJyb3IoIlVucmVj'@; put 'b2duaXplZCB0eXBlICIrY3QudHlwZSl9KGV0LGN0KSxidD1UdFsxXSxCdD1wNChUdFswXSxjdCk7cmV0dXJuIFJlKGJ0KS5mb3JFYWNoKGZ1bmN0aW9uKER0KXtCdFtEdF09YnRbRHRdfSksQnR9ZnVuY3Rpb24gYmUoZXQsY3QsVHQsaXQpe3ZhciBidD0iQztZIisoVHQrMSkrIjtYIisoaXQr'@; put 'MSkrIjtLIjtzd2l0Y2goZXQudCl7Y2FzZSJuIjpidCs9ZXQudnx8MCxldC5mJiYhZXQuRiYmKGJ0Kz0iO0UiK0g0KGV0LmYse3I6VHQsYzppdH0pKTticmVhaztjYXNlImIiOmJ0Kz1ldC52PyJUUlVFIjoiRkFMU0UiO2JyZWFrO2Nhc2UiZSI6YnQrPWV0Lnd8fGV0LnY7YnJlYWs7Y2FzZSJk'@; put 'IjpidCs9JyInKyhldC53fHxldC52KSsnIic7YnJlYWs7Y2FzZSJzIjpidCs9JyInK2V0LnYucmVwbGFjZSgvIi9nLCIiKSsnIid9cmV0dXJuIGJ0fXJldHVybiBTWyJ8Il09MjU0LHt0b193b3JrYm9vazpmdW5jdGlvbiBwZShldCxjdCl7cmV0dXJuIHRoKG1lKGV0LGN0KSxjdCl9LHRvX3No'@; put 'ZWV0Om1lLGZyb21fc2hlZXQ6ZnVuY3Rpb24gWWUoZXQsY3Qpe3ZhciBCdCxUdD1bIklEO1BTaGVldEpTO047RSJdLGl0PVtdLGJ0PXNzKGV0WyIhcmVmIl0pLER0PUFycmF5LmlzQXJyYXkoZXQpLE90PSJcclxuIjtUdC5wdXNoKCJQO1BHZW5lcmFsIiksVHQucHVzaCgiRjtQMDtERzBHODtN'@; put 'MjU1IiksZXRbIiFjb2xzIl0mJmZ1bmN0aW9uIFBlKGV0LGN0KXtjdC5mb3JFYWNoKGZ1bmN0aW9uKFR0LGl0KXt2YXIgYnQ9IkY7VyIrKGl0KzEpKyIgIisoaXQrMSkrIiAiO1R0LmhpZGRlbj9idCs9IjAiOigibnVtYmVyIj09dHlwZW9mIFR0LndpZHRoJiYhVHQud3B4JiYoVHQud3B4PXc1'@; put 'KFR0LndpZHRoKSksIm51bWJlciI9PXR5cGVvZiBUdC53cHgmJiFUdC53Y2gmJihUdC53Y2g9QzUoVHQud3B4KSksIm51bWJlciI9PXR5cGVvZiBUdC53Y2gmJihidCs9TWF0aC5yb3VuZChUdC53Y2gpKSksIiAiIT1idC5jaGFyQXQoYnQubGVuZ3RoLTEpJiZldC5wdXNoKGJ0KX0pfShUdCxl'@; put 'dFsiIWNvbHMiXSksZXRbIiFyb3dzIl0mJmZ1bmN0aW9uIFZlKGV0LGN0KXtjdC5mb3JFYWNoKGZ1bmN0aW9uKFR0LGl0KXt2YXIgYnQ9IkY7IjtUdC5oaWRkZW4/YnQrPSJNMDsiOlR0LmhwdD9idCs9Ik0iKzIwKlR0LmhwdCsiOyI6VHQuaHB4JiYoYnQrPSJNIisyMCpaMyhUdC5ocHgpKyI7'@; put 'IiksYnQubGVuZ3RoPjImJmV0LnB1c2goYnQrIlIiKyhpdCsxKSl9KX0oVHQsZXRbIiFyb3dzIl0pLFR0LnB1c2goIkI7WSIrKGJ0LmUuci1idC5zLnIrMSkrIjtYIisoYnQuZS5jLWJ0LnMuYysxKSsiO0QiK1tidC5zLmMsYnQucy5yLGJ0LmUuYyxidC5lLnJdLmpvaW4oIiAiKSk7Zm9yKHZh'@; put 'ciBLdD1idC5zLnI7S3Q8PWJ0LmUucjsrK0t0KWZvcih2YXIgVG49YnQucy5jO1RuPD1idC5lLmM7KytUbil7dmFyIHNyPXFpKHtyOkt0LGM6VG59KTsoQnQ9RHQ/KGV0W0t0XXx8W10pW1RuXTpldFtzcl0pJiYobnVsbCE9QnQudnx8QnQuZiYmIUJ0LkYpJiZpdC5wdXNoKGJlKEJ0LDAsS3Qs'@; put 'VG4pKX1yZXR1cm4gVHQuam9pbihPdCkrT3QraXQuam9pbihPdCkrT3QrIkUiK090fX19KCksRXY9ZnVuY3Rpb24oKXtmdW5jdGlvbiBPKG9lLG1lKXtmb3IodmFyIHBlPW9lLnNwbGl0KCJcbiIpLGJlPS0xLFBlPS0xLFZlPTAsWWU9W107VmUhPT1wZS5sZW5ndGg7KytWZSlpZigiQk9UIiE9'@; put 'PXBlW1ZlXS50cmltKCkpe2lmKCEoYmU8MCkpe2Zvcih2YXIgZXQ9cGVbVmVdLnRyaW0oKS5zcGxpdCgiLCIpLGN0PWV0WzBdLFR0PWV0WzFdLGl0PXBlWysrVmVdfHwiIjsxJihpdC5tYXRjaCgvWyJdL2cpfHxbXSkubGVuZ3RoJiZWZTxwZS5sZW5ndGgtMTspaXQrPSJcbiIrcGVbKytWZV07'@; put 'c3dpdGNoKGl0PWl0LnRyaW0oKSwrY3Qpe2Nhc2UtMTppZigiQk9UIj09PWl0KXtZZVsrK2JlXT1bXSxQZT0wO2NvbnRpbnVlfWlmKCJFT0QiIT09aXQpdGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgRElGIHNwZWNpYWwgY29tbWFuZCAiK2l0KTticmVhaztjYXNlIDA6WWVbYmVdW1Bl'@; put 'XT0iVFJVRSI9PT1pdHx8IkZBTFNFIiE9PWl0JiYoaXNOYU4oZW4oVHQpKT9pc05hTihzbihUdCkuZ2V0RGF0ZSgpKT9UdDpOZShUdCk6ZW4oVHQpKSwrK1BlO2JyZWFrO2Nhc2UgMTooaXQ9KGl0PWl0LnNsaWNlKDEsaXQubGVuZ3RoLTEpKS5yZXBsYWNlKC8iIi9nLCciJykpJiZpdC5tYXRj'@; put 'aCgvXj0iLioiJC8pJiYoaXQ9aXQuc2xpY2UoMiwtMSkpLFllW2JlXVtQZSsrXT0iIiE9PWl0P2l0Om51bGx9aWYoIkVPRCI9PT1pdClicmVha319ZWxzZSBZZVsrK2JlXT1bXSxQZT0wO3JldHVybiBtZSYmbWUuc2hlZXRSb3dzJiYoWWU9WWUuc2xpY2UoMCxtZS5zaGVldFJvd3MpKSxZZX1m'@; put 'dW5jdGlvbiBrKG9lLG1lKXtyZXR1cm4gcDQoZnVuY3Rpb24gUyhvZSxtZSl7c3dpdGNoKG1lLnR5cGUpe2Nhc2UiYmFzZTY0IjpyZXR1cm4gTyhfZS5kZWNvZGUob2UpLG1lKTtjYXNlImJpbmFyeSI6cmV0dXJuIE8ob2UsbWUpO2Nhc2UiYnVmZmVyIjpyZXR1cm4gTyhvZS50b1N0cmluZygi'@; put 'YmluYXJ5IiksbWUpO2Nhc2UiYXJyYXkiOnJldHVybiBPKHV0KG9lKSxtZSl9dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgdHlwZSAiK21lLnR5cGUpfShvZSxtZSksbWUpfXJldHVybnt0b193b3JrYm9vazpmdW5jdGlvbiBLKG9lLG1lKXtyZXR1cm4gdGgoayhvZSxtZSksbWUpfSx0'@; put 'b19zaGVldDprLGZyb21fc2hlZXQ6ZnVuY3Rpb24oKXt2YXIgb2U9ZnVuY3Rpb24oYmUsUGUsVmUsWWUsZXQpe2JlLnB1c2goUGUpLGJlLnB1c2goVmUrIiwiK1llKSxiZS5wdXNoKCciJytldC5yZXBsYWNlKC8iL2csJyIiJykrJyInKX0sbWU9ZnVuY3Rpb24oYmUsUGUsVmUsWWUpe2JlLnB1'@; put 'c2goUGUrIiwiK1ZlKSxiZS5wdXNoKDE9PVBlPyciJytZZS5yZXBsYWNlKC8iL2csJyIiJykrJyInOlllKX07cmV0dXJuIGZ1bmN0aW9uKGJlKXt2YXIgWWUsUGU9W10sVmU9c3MoYmVbIiFyZWYiXSksZXQ9QXJyYXkuaXNBcnJheShiZSk7b2UoUGUsIlRBQkxFIiwwLDEsInNoZWV0anMiKSxv'@; put 'ZShQZSwiVkVDVE9SUyIsMCxWZS5lLnItVmUucy5yKzEsIiIpLG9lKFBlLCJUVVBMRVMiLDAsVmUuZS5jLVZlLnMuYysxLCIiKSxvZShQZSwiREFUQSIsMCwwLCIiKTtmb3IodmFyIGN0PVZlLnMucjtjdDw9VmUuZS5yOysrY3Qpe21lKFBlLC0xLDAsIkJPVCIpO2Zvcih2YXIgVHQ9VmUucy5j'@; put 'O1R0PD1WZS5lLmM7KytUdCl7dmFyIGl0PXFpKHtyOmN0LGM6VHR9KTtpZihZZT1ldD8oYmVbY3RdfHxbXSlbVHRdOmJlW2l0XSlzd2l0Y2goWWUudCl7Y2FzZSJuIjp2YXIgYnQ9WWUudzshYnQmJm51bGwhPVllLnYmJihidD1ZZS52KSxudWxsPT1idD9tZShQZSwxLDAsWWUuZiYmIVllLkY/'@; put 'Ij0iK1llLmY6IiIpOm1lKFBlLDAsYnQsIlYiKTticmVhaztjYXNlImIiOm1lKFBlLDAsWWUudj8xOjAsWWUudj8iVFJVRSI6IkZBTFNFIik7YnJlYWs7Y2FzZSJzIjptZShQZSwxLDAsaXNOYU4oWWUudik/WWUudjonPSInK1llLnYrJyInKTticmVhaztjYXNlImQiOlllLnd8fChZZS53PUEu'@; put 'Zm9ybWF0KFllLnp8fEEuX3RhYmxlWzE0XSxKZShOZShZZS52KSkpKSxtZShQZSwwLFllLncsIlYiKTticmVhaztkZWZhdWx0Om1lKFBlLDEsMCwiIil9ZWxzZSBtZShQZSwxLDAsIiIpfX1yZXR1cm4gbWUoUGUsLTEsMCwiRU9EIiksUGUuam9pbigiXHJcbiIpfX0oKX19KCksSzY9ZnVuY3Rp'@; put 'b24oKXtmdW5jdGlvbiBTKFllKXtyZXR1cm4gWWUucmVwbGFjZSgvXFxiL2csIlxcIikucmVwbGFjZSgvXFxjL2csIjoiKS5yZXBsYWNlKC9cXG4vZywiXG4iKX1mdW5jdGlvbiBPKFllKXtyZXR1cm4gWWUucmVwbGFjZSgvXFwvZywiXFxiIikucmVwbGFjZSgvOi9nLCJcXGMiKS5yZXBsYWNl'@; put 'KC9cbi9nLCJcXG4iKX1mdW5jdGlvbiBLKFllLGV0KXtyZXR1cm4gcDQoZnVuY3Rpb24gayhZZSxldCl7Zm9yKHZhciBjdD1ZZS5zcGxpdCgiXG4iKSxUdD0tMSxpdD0tMSxidD0wLEJ0PVtdO2J0IT09Y3QubGVuZ3RoOysrYnQpe3ZhciBEdD1jdFtidF0udHJpbSgpLnNwbGl0KCI6Iik7aWYo'@; put 'ImNlbGwiPT09RHRbMF0pe3ZhciBPdD1WcyhEdFsxXSk7aWYoQnQubGVuZ3RoPD1PdC5yKWZvcihUdD1CdC5sZW5ndGg7VHQ8PU90LnI7KytUdClCdFtUdF18fChCdFtUdF09W10pO3N3aXRjaChUdD1PdC5yLGl0PU90LmMsRHRbMl0pe2Nhc2UidCI6QnRbVHRdW2l0XT1TKER0WzNdKTticmVh'@; put 'aztjYXNlInYiOkJ0W1R0XVtpdF09K0R0WzNdO2JyZWFrO2Nhc2UidnRmIjp2YXIgS3Q9RHRbRHQubGVuZ3RoLTFdO2Nhc2UidnRjIjpCdFtUdF1baXRdPSJubCI9PT1EdFszXT8hIStEdFs0XTorRHRbNF0sInZ0ZiI9PUR0WzJdJiYoQnRbVHRdW2l0XT1bQnRbVHRdW2l0XSxLdF0pfX19cmV0'@; put 'dXJuIGV0JiZldC5zaGVldFJvd3MmJihCdD1CdC5zbGljZSgwLGV0LnNoZWV0Um93cykpLEJ0fShZZSxldCksZXQpfXZhciBvZT1bInNvY2lhbGNhbGM6dmVyc2lvbjoxLjUiLCJNSU1FLVZlcnNpb246IDEuMCIsIkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L21peGVkOyBib3VuZGFyeT1Tb2Np'@; put 'YWxDYWxjU3ByZWFkc2hlZXRDb250cm9sU2F2ZSJdLmpvaW4oIlxuIiksbWU9WyItLVNvY2lhbENhbGNTcHJlYWRzaGVldENvbnRyb2xTYXZlIiwiQ29udGVudC10eXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04Il0uam9pbigiXG4iKSsiXG4iLHBlPVsiIyBTb2NpYWxDYWxjIFNwcmVh'@; put 'ZHNoZWV0IENvbnRyb2wgU2F2ZSIsInBhcnQ6c2hlZXQiXS5qb2luKCJcbiIpLGJlPSItLVNvY2lhbENhbGNTcHJlYWRzaGVldENvbnRyb2xTYXZlLS0iO2Z1bmN0aW9uIFBlKFllKXtpZighWWV8fCFZZVsiIXJlZiJdKXJldHVybiIiO2Zvcih2YXIgVHQsZXQ9W10sY3Q9W10saXQ9IiIsYnQ9'@; put 'U28oWWVbIiFyZWYiXSksQnQ9QXJyYXkuaXNBcnJheShZZSksRHQ9YnQucy5yO0R0PD1idC5lLnI7KytEdClmb3IodmFyIE90PWJ0LnMuYztPdDw9YnQuZS5jOysrT3QpaWYoaXQ9cWkoe3I6RHQsYzpPdH0pLChUdD1CdD8oWWVbRHRdfHxbXSlbT3RdOlllW2l0XSkmJm51bGwhPVR0LnYmJiJ6'@; put 'IiE9PVR0LnQpe3N3aXRjaChjdD1bImNlbGwiLGl0LCJ0Il0sVHQudCl7Y2FzZSJzIjpjYXNlInN0ciI6Y3QucHVzaChPKFR0LnYpKTticmVhaztjYXNlIm4iOlR0LmY/KGN0WzJdPSJ2dGYiLGN0WzNdPSJuIixjdFs0XT1UdC52LGN0WzVdPU8oVHQuZikpOihjdFsyXT0idiIsY3RbM109VHQu'@; put 'dik7YnJlYWs7Y2FzZSJiIjpjdFsyXT0idnQiKyhUdC5mPyJmIjoiYyIpLGN0WzNdPSJubCIsY3RbNF09VHQudj8iMSI6IjAiLGN0WzVdPU8oVHQuZnx8KFR0LnY/IlRSVUUiOiJGQUxTRSIpKTticmVhaztjYXNlImQiOnZhciBLdD1KZShOZShUdC52KSk7Y3RbMl09InZ0YyIsY3RbM109Im5k'@; put 'IixjdFs0XT0iIitLdCxjdFs1XT1UdC53fHxBLmZvcm1hdChUdC56fHxBLl90YWJsZVsxNF0sS3QpO2JyZWFrO2Nhc2UiZSI6Y29udGludWV9ZXQucHVzaChjdC5qb2luKCI6IikpfXJldHVybiBldC5wdXNoKCJzaGVldDpjOiIrKGJ0LmUuYy1idC5zLmMrMSkrIjpyOiIrKGJ0LmUuci1idC5z'@; put 'LnIrMSkrIjp0dmY6MSIpLGV0LnB1c2goInZhbHVlZm9ybWF0OjE6dGV4dC13aWtpIiksZXQuam9pbigiXG4iKX1yZXR1cm57dG9fd29ya2Jvb2s6ZnVuY3Rpb24gZWUoWWUsZXQpe3JldHVybiB0aChLKFllLGV0KSxldCl9LHRvX3NoZWV0OkssZnJvbV9zaGVldDpmdW5jdGlvbiBWZShZZSl7'@; put 'cmV0dXJuW29lLG1lLHBlLG1lLFBlKFllKSxiZV0uam9pbigiXG4iKX19fSgpLHozPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gUyhWZSxZZSxldCxjdCxUdCl7VHQucmF3P1llW2V0XVtjdF09VmU6IiI9PT1WZXx8KFllW2V0XVtjdF09SWkoVmUsVHQpP0lpKFZlLFR0KS52OlZlKX12YXIgaz17NDQ6'@; put 'IiwiLDk6Ilx0Iiw1OToiOyJ9LEs9ezQ0OjMsOToyLDU5OjF9O2Z1bmN0aW9uIGVlKFZlKXtmb3IodmFyIFllPXt9LGV0PSExLGN0PTAsVHQ9MDtjdDxWZS5sZW5ndGg7KytjdCkzND09KFR0PVZlLmNoYXJDb2RlQXQoY3QpKT9ldD0hZXQ6IWV0JiZUdCBpbiBrJiYoWWVbVHRdPShZZVtUdF18'@; put 'fDApKzEpO2ZvcihjdCBpbiBUdD1bXSxZZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoWWUsY3QpJiZUdC5wdXNoKFtZZVtjdF0sY3RdKTtpZighVHQubGVuZ3RoKWZvcihjdCBpbiBZZT1LKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChZZSxjdCkm'@; put 'JlR0LnB1c2goW1llW2N0XSxjdF0pO3JldHVybiBUdC5zb3J0KGZ1bmN0aW9uKGl0LGJ0KXtyZXR1cm4gaXRbMF0tYnRbMF18fEtbaXRbMV1dLUtbYnRbMV1dfSksa1tUdC5wb3AoKVsxXV19ZnVuY3Rpb24gbWUoVmUsWWUpe3JldHVybiFZZXx8IVllLlBSTnx8InNlcD0iPT1WZS5zbGljZSgw'@; put 'LDQpfHxWZS5pbmRleE9mKCJcdCIpPj0wfHxWZS5pbmRleE9mKCIsIik+PTB8fFZlLmluZGV4T2YoIjsiKT49MD9mdW5jdGlvbiBvZShWZSxZZSl7dmFyIGV0PVllfHx7fSxjdD0iIjtudWxsIT1zZSYmbnVsbD09ZXQuZGVuc2UmJihldC5kZW5zZT1zZSk7dmFyIFR0PWV0LmRlbnNlP1tdOnt9'@; put 'LGl0PXtzOntjOjAscjowfSxlOntjOjAscjowfX07InNlcD0iPT1WZS5zbGljZSgwLDQpPzEzPT1WZS5jaGFyQ29kZUF0KDUpJiYxMD09VmUuY2hhckNvZGVBdCg2KT8oY3Q9VmUuY2hhckF0KDQpLFZlPVZlLnNsaWNlKDcpKToxMz09VmUuY2hhckNvZGVBdCg1KXx8MTA9PVZlLmNoYXJDb2Rl'@; put 'QXQoNSk/KGN0PVZlLmNoYXJBdCg0KSxWZT1WZS5zbGljZSg2KSk6Y3Q9ZWUoVmUuc2xpY2UoMCwxMDI0KSk6Y3Q9ZWUoVmUuc2xpY2UoMCwxMDI0KSk7dmFyIGJ0PTAsQnQ9MCxEdD0wLE90PTAsS3Q9MCxUbj1jdC5jaGFyQ29kZUF0KDApLHNyPSExLENuPTAsdXI9VmUuY2hhckNvZGVBdCgw'@; put 'KTtWZT1WZS5yZXBsYWNlKC9cclxuL2dtLCJcbiIpO3ZhciBlcj1udWxsIT1ldC5kYXRlTkY/ZnVuY3Rpb24gWmUoUyl7dmFyIE89Im51bWJlciI9PXR5cGVvZiBTP0EuX3RhYmxlW1NdOlM7cmV0dXJuIE89Ty5yZXBsYWNlKHdlLCIoXFxkKykiKSxuZXcgUmVnRXhwKCJeIitPKyIkIil9KGV0'@; put 'LmRhdGVORik6bnVsbDtmdW5jdGlvbiBqbigpe3ZhciBwcj1WZS5zbGljZShPdCxLdCksYnI9e307aWYoJyInPT1wci5jaGFyQXQoMCkmJiciJz09cHIuY2hhckF0KHByLmxlbmd0aC0xKSYmKHByPXByLnNsaWNlKDEsLTEpLnJlcGxhY2UoLyIiL2csJyInKSksMD09PXByLmxlbmd0aClici50'@; put 'PSJ6IjtlbHNlIGlmKGV0LnJhdylici50PSJzIixici52PXByO2Vsc2UgaWYoMD09PXByLnRyaW0oKS5sZW5ndGgpYnIudD0icyIsYnIudj1wcjtlbHNlIGlmKDYxPT1wci5jaGFyQ29kZUF0KDApKTM0PT1wci5jaGFyQ29kZUF0KDEpJiYzND09cHIuY2hhckNvZGVBdChwci5sZW5ndGgtMSk/'@; put 'KGJyLnQ9InMiLGJyLnY9cHIuc2xpY2UoMiwtMSkucmVwbGFjZSgvIiIvZywnIicpKTpmdW5jdGlvbiBDbmUoUyl7cmV0dXJuIDEhPVMubGVuZ3RofShwcik/KGJyLnQ9Im4iLGJyLmY9cHIuc2xpY2UoMSkpOihici50PSJzIixici52PXByKTtlbHNlIGlmKCJUUlVFIj09cHIpYnIudD0iYiIs'@; put 'YnIudj0hMDtlbHNlIGlmKCJGQUxTRSI9PXByKWJyLnQ9ImIiLGJyLnY9ITE7ZWxzZSBpZihpc05hTihEdD1lbihwcikpKWlmKCFpc05hTihzbihwcikuZ2V0RGF0ZSgpKXx8ZXImJnByLm1hdGNoKGVyKSl7YnIuej1ldC5kYXRlTkZ8fEEuX3RhYmxlWzE0XTt2YXIgcnI9MDtlciYmcHIubWF0'@; put 'Y2goZXIpJiYocHI9ZnVuY3Rpb24gUWUoUyxPLGspe3ZhciBLPS0xLGVlPS0xLG9lPS0xLG1lPS0xLHBlPS0xLGJlPS0xOyhPLm1hdGNoKHdlKXx8W10pLmZvckVhY2goZnVuY3Rpb24oWWUsZXQpe3ZhciBjdD1wYXJzZUludChrW2V0KzFdLDEwKTtzd2l0Y2goWWUudG9Mb3dlckNhc2UoKS5j'@; put 'aGFyQXQoMCkpe2Nhc2UieSI6Sz1jdDticmVhaztjYXNlImQiOm9lPWN0O2JyZWFrO2Nhc2UiaCI6bWU9Y3Q7YnJlYWs7Y2FzZSJzIjpiZT1jdDticmVhaztjYXNlIm0iOm1lPj0wP3BlPWN0OmVlPWN0fX0pLGJlPj0wJiYtMT09cGUmJmVlPj0wJiYocGU9ZWUsZWU9LTEpO3ZhciBQZT0oIiIr'@; put 'KEs+PTA/SzoobmV3IERhdGUpLmdldEZ1bGxZZWFyKCkpKS5zbGljZSgtNCkrIi0iKygiMDAiKyhlZT49MT9lZToxKSkuc2xpY2UoLTIpKyItIisoIjAwIisob2U+PTE/b2U6MSkpLnNsaWNlKC0yKTs3PT1QZS5sZW5ndGgmJihQZT0iMCIrUGUpLDg9PVBlLmxlbmd0aCYmKFBlPSIyMCIrUGUp'@; put 'O3ZhciBWZT0oIjAwIisobWU+PTA/bWU6MCkpLnNsaWNlKC0yKSsiOiIrKCIwMCIrKHBlPj0wP3BlOjApKS5zbGljZSgtMikrIjoiKygiMDAiKyhiZT49MD9iZTowKSkuc2xpY2UoLTIpO3JldHVybi0xPT1tZSYmLTE9PXBlJiYtMT09YmU/UGU6LTE9PUsmJi0xPT1lZSYmLTE9PW9lP1ZlOlBl'@; put 'KyJUIitWZX0oMCxldC5kYXRlTkYscHIubWF0Y2goZXIpfHxbXSkscnI9MSksZXQuY2VsbERhdGVzPyhici50PSJkIixici52PU5lKHByLHJyKSk6KGJyLnQ9Im4iLGJyLnY9SmUoTmUocHIscnIpKSksITEhPT1ldC5jZWxsVGV4dCYmKGJyLnc9QS5mb3JtYXQoYnIueixici52IGluc3RhbmNl'@; put 'b2YgRGF0ZT9KZShici52KTpici52KSksZXQuY2VsbE5GfHxkZWxldGUgYnIuen1lbHNlIGJyLnQ9InMiLGJyLnY9cHI7ZWxzZSBici50PSJuIiwhMSE9PWV0LmNlbGxUZXh0JiYoYnIudz1wciksYnIudj1EdDtpZigieiI9PWJyLnR8fChldC5kZW5zZT8oVHRbYnRdfHwoVHRbYnRdPVtdKSxU'@; put 'dFtidF1bQnRdPWJyKTpUdFtxaSh7YzpCdCxyOmJ0fSldPWJyKSx1cj1WZS5jaGFyQ29kZUF0KE90PUt0KzEpLGl0LmUuYzxCdCYmKGl0LmUuYz1CdCksaXQuZS5yPGJ0JiYoaXQuZS5yPWJ0KSxDbj09VG4pKytCdDtlbHNlIGlmKEJ0PTAsKytidCxldC5zaGVldFJvd3MmJmV0LnNoZWV0Um93'@; put 'czw9YnQpcmV0dXJuITB9ZTpmb3IoO0t0PFZlLmxlbmd0aDsrK0t0KXN3aXRjaChDbj1WZS5jaGFyQ29kZUF0KEt0KSl7Y2FzZSAzNDozND09PXVyJiYoc3I9IXNyKTticmVhaztjYXNlIFRuOmNhc2UgMTA6Y2FzZSAxMzppZighc3ImJmpuKCkpYnJlYWsgZX1yZXR1cm4gS3QtT3Q+MCYmam4o'@; put 'KSxUdFsiIXJlZiJdPXJhKGl0KSxUdH0oVmUsWWUpOnA0KGZ1bmN0aW9uIE8oVmUsWWUpe3ZhciBldD1ZZXx8e30sY3Q9W107aWYoIVZlfHwwPT09VmUubGVuZ3RoKXJldHVybiBjdDtmb3IodmFyIFR0PVZlLnNwbGl0KC9bXHJcbl0vKSxpdD1UdC5sZW5ndGgtMTtpdD49MCYmMD09PVR0W2l0'@; put 'XS5sZW5ndGg7KS0taXQ7Zm9yKHZhciBidD0xMCxCdD0wLER0PTA7RHQ8PWl0OysrRHQpLTE9PShCdD1UdFtEdF0uaW5kZXhPZigiICIpKT9CdD1UdFtEdF0ubGVuZ3RoOkJ0KyssYnQ9TWF0aC5tYXgoYnQsQnQpO2ZvcihEdD0wO0R0PD1pdDsrK0R0KXtjdFtEdF09W107dmFyIE90PTA7Zm9y'@; put 'KFMoVHRbRHRdLnNsaWNlKDAsYnQpLnRyaW0oKSxjdCxEdCxPdCxldCksT3Q9MTtPdDw9KFR0W0R0XS5sZW5ndGgtYnQpLzEwKzE7KytPdClTKFR0W0R0XS5zbGljZShidCsxMCooT3QtMSksYnQrMTAqT3QpLnRyaW0oKSxjdCxEdCxPdCxldCl9cmV0dXJuIGV0LnNoZWV0Um93cyYmKGN0PWN0'@; put 'LnNsaWNlKDAsZXQuc2hlZXRSb3dzKSksY3R9KFZlLFllKSxZZSl9ZnVuY3Rpb24gcGUoVmUsWWUpe3ZhciBldD0iIixjdD0ic3RyaW5nIj09WWUudHlwZT9bMCwwLDAsMF06aU0oVmUsWWUpO3N3aXRjaChZZS50eXBlKXtjYXNlImJhc2U2NCI6ZXQ9X2UuZGVjb2RlKFZlKTticmVhaztjYXNl'@; put 'ImJpbmFyeSI6Y2FzZSJzdHJpbmciOmV0PVZlO2JyZWFrO2Nhc2UiYnVmZmVyIjpldD02NTAwMT09WWUuY29kZXBhZ2U/VmUudG9TdHJpbmcoInV0ZjgiKTpZZS5jb2RlcGFnZSYmdHlwZW9mIGNwdGFibGU8InUiP2NwdGFibGUudXRpbHMuZGVjb2RlKFllLmNvZGVwYWdlLFZlKTpWZS50b1N0'@; put 'cmluZygiYmluYXJ5Iik7YnJlYWs7Y2FzZSJhcnJheSI6ZXQ9dXQoVmUpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgdHlwZSAiK1llLnR5cGUpfXJldHVybiAyMzk9PWN0WzBdJiYxODc9PWN0WzFdJiYxOTE9PWN0WzJdP2V0PWZzKGV0LnNsaWNlKDMpKToi'@; put 'YmluYXJ5Ij09WWUudHlwZSYmdHlwZW9mIGNwdGFibGU8InUiJiZZZS5jb2RlcGFnZSYmKGV0PWNwdGFibGUudXRpbHMuZGVjb2RlKFllLmNvZGVwYWdlLGNwdGFibGUudXRpbHMuZW5jb2RlKDI4NTkxLGV0KSkpLCJzb2NpYWxjYWxjOnZlcnNpb246Ij09ZXQuc2xpY2UoMCwxOSk/SzYudG9f'@; put 'c2hlZXQoInN0cmluZyI9PVllLnR5cGU/ZXQ6ZnMoZXQpLFllKTptZShldCxZZSl9cmV0dXJue3RvX3dvcmtib29rOmZ1bmN0aW9uIGJlKFZlLFllKXtyZXR1cm4gdGgocGUoVmUsWWUpLFllKX0sdG9fc2hlZXQ6cGUsZnJvbV9zaGVldDpmdW5jdGlvbiBQZShWZSl7Zm9yKHZhciBjdCxZZT1b'@; put 'XSxldD1zcyhWZVsiIXJlZiJdKSxUdD1BcnJheS5pc0FycmF5KFZlKSxpdD1ldC5zLnI7aXQ8PWV0LmUucjsrK2l0KXtmb3IodmFyIGJ0PVtdLEJ0PWV0LnMuYztCdDw9ZXQuZS5jOysrQnQpe3ZhciBEdD1xaSh7cjppdCxjOkJ0fSk7aWYoKGN0PVR0PyhWZVtpdF18fFtdKVtCdF06VmVbRHRd'@; put 'KSYmbnVsbCE9Y3Qudil7Zm9yKHZhciBPdD0oY3Qud3x8KHlsKGN0KSxjdC53KXx8IiIpLnNsaWNlKDAsMTApO090Lmxlbmd0aDwxMDspT3QrPSIgIjtidC5wdXNoKE90KygwPT09QnQ/IiAiOiIiKSl9ZWxzZSBidC5wdXNoKCIgICAgICAgICAgIil9WWUucHVzaChidC5qb2luKCIiKSl9cmV0'@; put 'dXJuIFllLmpvaW4oIlxuIil9fX0oKSxUdj1mdW5jdGlvbigpe2Z1bmN0aW9uIFMoQm4sanIsd3Ipe2lmKEJuKXtnbihCbixCbi5sfHwwKTtmb3IodmFyIEhuPXdyLkVudW18fFJpO0JuLmw8Qm4ubGVuZ3RoOyl7dmFyIHpyPUJuLnJlYWRfc2hpZnQoMiksV2k9SG5benJdfHxIbls2NTUzNV0s'@; put 'Q2k9Qm4ucmVhZF9zaGlmdCgyKSx3YT1Cbi5sK0NpLG9zPVdpLmYmJldpLmYoQm4sQ2ksd3IpO2lmKEJuLmw9d2EsanIob3MsV2ksenIpKXJldHVybn19fWZ1bmN0aW9uIGsoQm4sanIpe2lmKCFCbilyZXR1cm4gQm47dmFyIHdyPWpyfHx7fTtudWxsIT1zZSYmbnVsbD09d3IuZGVuc2UmJih3'@; put 'ci5kZW5zZT1zZSk7dmFyIEhuPXdyLmRlbnNlP1tdOnt9LHpyPSJTaGVldDEiLFdpPTAsQ2k9e30sd2E9W3pyXSxvcz1bXSxpYT17czp7cjowLGM6MH0sZTp7cjowLGM6MH19LE9zPXdyLnNoZWV0Um93c3x8MDtpZigyPT1CblsyXSl3ci5FbnVtPVJpLFMoQm4sZnVuY3Rpb24oVmksSW8sRm4p'@; put 'e3N3aXRjaChGbil7Y2FzZSAwOndyLnZlcnM9VmksVmk+PTQwOTYmJih3ci5xcHJvPSEwKTticmVhaztjYXNlIDY6aWE9Vmk7YnJlYWs7Y2FzZSAxNTpjYXNlIDUxOndyLnFwcm98fChWaVsxXS52PVZpWzFdLnYuc2xpY2UoMSkpO2Nhc2UgMTM6Y2FzZSAxNDpjYXNlIDE2OjE0PT1GbiYmISgx'@; put 'MTImflZpWzJdKSYmKDE1JlZpWzJdKT4xJiYoMTUmVmlbMl0pPDE1JiYoVmlbMV0uej13ci5kYXRlTkZ8fEEuX3RhYmxlWzE0XSx3ci5jZWxsRGF0ZXMmJihWaVsxXS50PSJkIixWaVsxXS52PW9uKFZpWzFdLnYpKSk7dmFyIFlzPXdyLmRlbnNlPyhIbltWaVswXS5yXXx8W10pW1ZpWzBdLmNd'@; put 'OkhuW3FpKFZpWzBdKV07aWYoWXMpe1lzLnQ9VmlbMV0udCxZcy52PVZpWzFdLnYsbnVsbCE9VmlbMV0ueiYmKFlzLno9VmlbMV0ueiksbnVsbCE9VmlbMV0uZiYmKFlzLmY9VmlbMV0uZik7YnJlYWt9d3IuZGVuc2U/KEhuW1ZpWzBdLnJdfHwoSG5bVmlbMF0ucl09W10pLEhuW1ZpWzBdLnJd'@; put 'W1ZpWzBdLmNdPVZpWzFdKTpIbltxaShWaVswXSldPVZpWzFdfX0sd3IpO2Vsc2V7aWYoMjYhPUJuWzJdJiYxNCE9Qm5bMl0pdGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgTE9UVVMgQk9GICIrQm5bMl0pO3dyLkVudW09UnIsMTQ9PUJuWzJdJiYod3IucXBybz0hMCxCbi5sPTApLFMo'@; put 'Qm4sZnVuY3Rpb24oVmksSW8sRm4pe3N3aXRjaChGbil7Y2FzZSAyMjpWaVsxXS52PVZpWzFdLnYuc2xpY2UoMSk7Y2FzZSAyMzpjYXNlIDI0OmNhc2UgMjU6Y2FzZSAzNzpjYXNlIDM5OmNhc2UgNDA6aWYoVmlbM10+V2kmJihIblsiIXJlZiJdPXJhKGlhKSxDaVt6cl09SG4sSG49d3IuZGVu'@; put 'c2U/W106e30saWE9e3M6e3I6MCxjOjB9LGU6e3I6MCxjOjB9fSx3YS5wdXNoKHpyPSJTaGVldCIrKChXaT1WaVszXSkrMSkpKSxPcz4wJiZWaVswXS5yPj1PcylicmVhazt3ci5kZW5zZT8oSG5bVmlbMF0ucl18fChIbltWaVswXS5yXT1bXSksSG5bVmlbMF0ucl1bVmlbMF0uY109VmlbMV0p'@; put 'OkhuW3FpKFZpWzBdKV09VmlbMV0saWEuZS5jPFZpWzBdLmMmJihpYS5lLmM9VmlbMF0uYyksaWEuZS5yPFZpWzBdLnImJihpYS5lLnI9VmlbMF0ucik7YnJlYWs7Y2FzZSAyNzpWaVsxNGUzXSYmKG9zW1ZpWzE0ZTNdWzBdXT1WaVsxNGUzXVsxXSl9fSx3cil9aWYoSG5bIiFyZWYiXT1yYShp'@; put 'YSksQ2lbenJdPUhuLCFvcy5sZW5ndGgpcmV0dXJue1NoZWV0TmFtZXM6d2EsU2hlZXRzOkNpfTtmb3IodmFyIFBhPXt9LHVzPVtdLHFhPTA7cWE8b3MubGVuZ3RoOysrcWEpQ2lbd2FbcWFdXSYmKHVzLnB1c2gob3NbcWFdKSxQYVtvc1txYV1dPUNpW3dhW3FhXV0pO3JldHVybntTaGVldE5h'@; put 'bWVzOnVzLFNoZWV0czpQYX19ZnVuY3Rpb24gUGUoQm4sanIsd3Ipe3ZhciBIbj1be2M6MCxyOjB9LHt0OiJuIix2OjB9LDBdO3JldHVybiB3ci5xcHJvJiYyMDc2OCE9d3IudmVycz8oSG5bMF0uYz1Cbi5yZWFkX3NoaWZ0KDEpLEJuLmwrKyxIblswXS5yPUJuLnJlYWRfc2hpZnQoMiksQm4u'@; put 'bCs9Mik6KEhuWzJdPUJuLnJlYWRfc2hpZnQoMSksSG5bMF0uYz1Cbi5yZWFkX3NoaWZ0KDIpLEhuWzBdLnI9Qm4ucmVhZF9zaGlmdCgyKSksSG59ZnVuY3Rpb24gVmUoQm4sanIsd3Ipe3ZhciBIbj1Cbi5sK2pyLHpyPVBlKEJuLDAsd3IpO2lmKHpyWzFdLnQ9InMiLDIwNzY4PT13ci52ZXJz'@; put 'KXtCbi5sKys7dmFyIFdpPUJuLnJlYWRfc2hpZnQoMSk7cmV0dXJuIHpyWzFdLnY9Qm4ucmVhZF9zaGlmdChXaSwidXRmOCIpLHpyfXJldHVybiB3ci5xcHJvJiZCbi5sKyssenJbMV0udj1Cbi5yZWFkX3NoaWZ0KEhuLUJuLmwsImNzdHIiKSx6cn1mdW5jdGlvbiBZZShCbixqcix3cil7dmFy'@; put 'IEhuPXZuKDcrd3IubGVuZ3RoKTtIbi53cml0ZV9zaGlmdCgxLDI1NSksSG4ud3JpdGVfc2hpZnQoMixqciksSG4ud3JpdGVfc2hpZnQoMixCbiksSG4ud3JpdGVfc2hpZnQoMSwzOSk7Zm9yKHZhciB6cj0wO3pyPEhuLmxlbmd0aDsrK3pyKXt2YXIgV2k9d3IuY2hhckNvZGVBdCh6cik7SG4u'@; put 'd3JpdGVfc2hpZnQoMSxXaT49MTI4Pzk1OldpKX1yZXR1cm4gSG4ud3JpdGVfc2hpZnQoMSwwKSxIbn1mdW5jdGlvbiBjdChCbixqcix3cil7dmFyIEhuPXZuKDcpO3JldHVybiBIbi53cml0ZV9zaGlmdCgxLDI1NSksSG4ud3JpdGVfc2hpZnQoMixqciksSG4ud3JpdGVfc2hpZnQoMixCbiks'@; put 'SG4ud3JpdGVfc2hpZnQoMix3ciwiaSIpLEhufWZ1bmN0aW9uIGl0KEJuLGpyLHdyKXt2YXIgSG49dm4oMTMpO3JldHVybiBIbi53cml0ZV9zaGlmdCgxLDI1NSksSG4ud3JpdGVfc2hpZnQoMixqciksSG4ud3JpdGVfc2hpZnQoMixCbiksSG4ud3JpdGVfc2hpZnQoOCx3ciwiZiIpLEhufWZ1'@; put 'bmN0aW9uIEJ0KEJuLGpyLHdyKXt2YXIgSG49MzI3NjgmanI7cmV0dXJuIGpyPShIbj9CbjowKSsoKGpyJj0tMzI3NjkpPj04MTkyP2pyLTE2Mzg0OmpyKSwoSG4/IiI6IiQiKSsod3I/a2EoanIpOmppKGpyKSl9dmFyIE90PXs1MTpbIkZBTFNFIiwwXSw1MjpbIlRSVUUiLDBdLDcwOlsiTEVO'@; put 'IiwxXSw4MDpbIlNVTSIsNjldLDgxOlsiQVZFUkFHRUEiLDY5XSw4MjpbIkNPVU5UQSIsNjldLDgzOlsiTUlOQSIsNjldLDg0OlsiTUFYQSIsNjldLDExMTpbIlQiLDFdfSxLdD1bIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIisiLCItIiwiKiIsIi8iLCJeIiwiPSIsIjw+IiwiPD0iLCI+'@; put 'PSIsIjwiLCI+IiwiIiwiIiwiIiwiIiwiJiIsIiIsIiIsIiIsIiIsIiIsIiIsIiJdO2Z1bmN0aW9uIHNyKEJuKXt2YXIganI9W3tjOjAscjowfSx7dDoibiIsdjowfSwwXTtyZXR1cm4ganJbMF0ucj1Cbi5yZWFkX3NoaWZ0KDIpLGpyWzNdPUJuW0JuLmwrK10sanJbMF0uYz1CbltCbi5sKytd'@; put 'LGpyfWZ1bmN0aW9uIHVyKEJuLGpyLHdyLEhuKXt2YXIgenI9dm4oNitIbi5sZW5ndGgpO3pyLndyaXRlX3NoaWZ0KDIsQm4pLHpyLndyaXRlX3NoaWZ0KDEsd3IpLHpyLndyaXRlX3NoaWZ0KDEsanIpLHpyLndyaXRlX3NoaWZ0KDEsMzkpO2Zvcih2YXIgV2k9MDtXaTxIbi5sZW5ndGg7KytX'@; put 'aSl7dmFyIENpPUhuLmNoYXJDb2RlQXQoV2kpO3pyLndyaXRlX3NoaWZ0KDEsQ2k+PTEyOD85NTpDaSl9cmV0dXJuIHpyLndyaXRlX3NoaWZ0KDEsMCksenJ9ZnVuY3Rpb24gam4oQm4sanIpe3ZhciB3cj1zcihCbiksSG49Qm4ucmVhZF9zaGlmdCg0KSx6cj1Cbi5yZWFkX3NoaWZ0KDQpLFdp'@; put 'PUJuLnJlYWRfc2hpZnQoMik7aWYoNjU1MzU9PVdpKXJldHVybiAwPT09SG4mJjMyMjEyMjU0NzI9PT16cj8od3JbMV0udD0iZSIsd3JbMV0udj0xNSk6MD09PUhuJiYzNDg5NjYwOTI4PT09enI/KHdyWzFdLnQ9ImUiLHdyWzFdLnY9NDIpOndyWzFdLnY9MCx3cjt2YXIgQ2k9MzI3NjgmV2k7'@; put 'cmV0dXJuIFdpPSgzMjc2NyZXaSktMTY0NDYsd3JbMV0udj0oMS0yKkNpKSooenIqTWF0aC5wb3coMixXaSszMikrSG4qTWF0aC5wb3coMixXaSkpLHdyfWZ1bmN0aW9uIHByKEJuLGpyLHdyLEhuKXt2YXIgenI9dm4oMTQpO2lmKHpyLndyaXRlX3NoaWZ0KDIsQm4pLHpyLndyaXRlX3NoaWZ0'@; put 'KDEsd3IpLHpyLndyaXRlX3NoaWZ0KDEsanIpLDA9PUhuKXJldHVybiB6ci53cml0ZV9zaGlmdCg0LDApLHpyLndyaXRlX3NoaWZ0KDQsMCksenIud3JpdGVfc2hpZnQoMiw2NTUzNSksenI7dmFyIFdpPTAsQ2k9MCxvcz0wO3JldHVybiBIbjwwJiYoV2k9MSxIbj0tSG4pLENpPTB8TWF0aC5s'@; put 'b2cyKEhuKSwyMTQ3NDgzNjQ4Jihvcz0oSG4vPU1hdGgucG93KDIsQ2ktMzEpKT4+PjApfHwoKytDaSxvcz0oSG4vPTIpPj4+MCksSG4tPW9zLG9zfD0yMTQ3NDgzNjQ4LG9zPj4+PTAsSG4qPU1hdGgucG93KDIsMzIpLHpyLndyaXRlX3NoaWZ0KDQsSG4+Pj4wKSx6ci53cml0ZV9zaGlmdCg0'@; put 'LG9zKSx6ci53cml0ZV9zaGlmdCgyLENpKz0xNjM4MysoV2k/MzI3Njg6MCkpLHpyfWZ1bmN0aW9uIFNpKEJuLGpyKXt2YXIgd3I9c3IoQm4pLEhuPUJuLnJlYWRfc2hpZnQoOCwiZiIpO3JldHVybiB3clsxXS52PUhuLHdyfWZ1bmN0aW9uIGxhKEJuLGpyKXt2YXIgd3I9dm4oNStCbi5sZW5n'@; put 'dGgpO3dyLndyaXRlX3NoaWZ0KDIsMTRlMyksd3Iud3JpdGVfc2hpZnQoMixqcik7Zm9yKHZhciBIbj0wO0huPEJuLmxlbmd0aDsrK0huKXt2YXIgenI9Qm4uY2hhckNvZGVBdChIbik7d3Jbd3IubCsrXT16cj4xMjc/OTU6enJ9cmV0dXJuIHdyW3dyLmwrK109MCx3cn12YXIgUmk9ezA6e246'@; put 'IkJPRiIsZjpNY30sMTp7bjoiRU9GIn0sMjp7bjoiQ0FMQ01PREUifSwzOntuOiJDQUxDT1JERVIifSw0OntuOiJTUExJVCJ9LDU6e246IlNZTkMifSw2OntuOiJSQU5HRSIsZjpmdW5jdGlvbiBwZShCbil7dmFyIGpyPXtzOntjOjAscjowfSxlOntjOjAscjowfX07cmV0dXJuIGpyLnMuYz1C'@; put 'bi5yZWFkX3NoaWZ0KDIpLGpyLnMucj1Cbi5yZWFkX3NoaWZ0KDIpLGpyLmUuYz1Cbi5yZWFkX3NoaWZ0KDIpLGpyLmUucj1Cbi5yZWFkX3NoaWZ0KDIpLDY1NTM1PT1qci5zLmMmJihqci5zLmM9anIuZS5jPWpyLnMucj1qci5lLnI9MCksanJ9fSw3OntuOiJXSU5ET1cxIn0sODp7bjoiQ09M'@; put 'VzEifSw5OntuOiJXSU5UV08ifSwxMDp7bjoiQ09MVzIifSwxMTp7bjoiTkFNRSJ9LDEyOntuOiJCTEFOSyJ9LDEzOntuOiJJTlRFR0VSIixmOmZ1bmN0aW9uIGV0KEJuLGpyLHdyKXt2YXIgSG49UGUoQm4sMCx3cik7cmV0dXJuIEhuWzFdLnY9Qm4ucmVhZF9zaGlmdCgyLCJpIiksSG59fSwx'@; put 'NDp7bjoiTlVNQkVSIixmOmZ1bmN0aW9uIFR0KEJuLGpyLHdyKXt2YXIgSG49UGUoQm4sMCx3cik7cmV0dXJuIEhuWzFdLnY9Qm4ucmVhZF9zaGlmdCg4LCJmIiksSG59fSwxNTp7bjoiTEFCRUwiLGY6VmV9LDE2OntuOiJGT1JNVUxBIixmOmZ1bmN0aW9uIGJ0KEJuLGpyLHdyKXt2YXIgSG49'@; put 'Qm4ubCtqcix6cj1QZShCbiwwLHdyKTtpZih6clsxXS52PUJuLnJlYWRfc2hpZnQoOCwiZiIpLHdyLnFwcm8pQm4ubD1IbjtlbHNle3ZhciBXaT1Cbi5yZWFkX3NoaWZ0KDIpOyhmdW5jdGlvbiBUbihCbixqcil7Z24oQm4sMCk7Zm9yKHZhciB3cj1bXSxIbj0wLHpyPSIiLFdpPSIiO0JuLmw8'@; put 'Qm4ubGVuZ3RoOyl7dmFyIENpPUJuW0JuLmwrK107c3dpdGNoKENpKXtjYXNlIDA6d3IucHVzaChCbi5yZWFkX3NoaWZ0KDgsImYiKSk7YnJlYWs7Y2FzZSAxOldpPUJ0KGpyWzBdLmMsQm4ucmVhZF9zaGlmdCgyKSwhMCksenI9QnQoanJbMF0ucixCbi5yZWFkX3NoaWZ0KDIpLCExKSx3ci5w'@; put 'dXNoKFdpK3pyKTticmVhaztjYXNlIDI6dmFyIHdhPUJ0KGpyWzBdLmMsQm4ucmVhZF9zaGlmdCgyKSwhMCksb3M9QnQoanJbMF0ucixCbi5yZWFkX3NoaWZ0KDIpLCExKTtXaT1CdChqclswXS5jLEJuLnJlYWRfc2hpZnQoMiksITApLHpyPUJ0KGpyWzBdLnIsQm4ucmVhZF9zaGlmdCgyKSwh'@; put 'MSksd3IucHVzaCh3YStvcysiOiIrV2krenIpO2JyZWFrO2Nhc2UgMzppZihCbi5sPEJuLmxlbmd0aClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJXSzEgcHJlbWF0dXJlIGZvcm11bGEgZW5kIik7YnJlYWs7Y2FzZSA0OndyLnB1c2goIigiK3dyLnBvcCgpKyIpIik7YnJlYWs7Y2FzZSA1'@; put 'OndyLnB1c2goQm4ucmVhZF9zaGlmdCgyKSk7YnJlYWs7Y2FzZSA2OmZvcih2YXIgaWE9IiI7Q2k9Qm5bQm4ubCsrXTspaWErPVN0cmluZy5mcm9tQ2hhckNvZGUoQ2kpO3dyLnB1c2goJyInK2lhLnJlcGxhY2UoLyIvZywnIiInKSsnIicpO2JyZWFrO2Nhc2UgODp3ci5wdXNoKCItIit3ci5w'@; put 'b3AoKSk7YnJlYWs7Y2FzZSAyMzp3ci5wdXNoKCIrIit3ci5wb3AoKSk7YnJlYWs7Y2FzZSAyMjp3ci5wdXNoKCJOT1QoIit3ci5wb3AoKSsiKSIpO2JyZWFrO2Nhc2UgMjA6Y2FzZSAyMTp2YXIgT3M9d3IucG9wKCksUGE9d3IucG9wKCk7d3IucHVzaChbIkFORCIsIk9SIl1bQ2ktMjBdKyIo'@; put 'IitQYSsiLCIrT3MrIikiKTticmVhaztkZWZhdWx0OmlmKENpPDMyJiZLdFtDaV0pT3M9d3IucG9wKCksUGE9d3IucG9wKCksd3IucHVzaChQYStLdFtDaV0rT3MpO2Vsc2V7aWYoIU90W0NpXSlyZXR1cm4gQ2k8PTc/Y29uc29sZS5lcnJvcigiV0sxIGludmFsaWQgb3Bjb2RlICIrQ2kudG9T'@; put 'dHJpbmcoMTYpKTpDaTw9MjQ/Y29uc29sZS5lcnJvcigiV0sxIHVuc3VwcG9ydGVkIG9wICIrQ2kudG9TdHJpbmcoMTYpKTpDaTw9MzA/Y29uc29sZS5lcnJvcigiV0sxIGludmFsaWQgb3Bjb2RlICIrQ2kudG9TdHJpbmcoMTYpKTpDaTw9MTE1P2NvbnNvbGUuZXJyb3IoIldLMSB1bnN1cHBv'@; put 'cnRlZCBmdW5jdGlvbiBvcGNvZGUgIitDaS50b1N0cmluZygxNikpOmNvbnNvbGUuZXJyb3IoIldLMSB1bnJlY29nbml6ZWQgb3Bjb2RlICIrQ2kudG9TdHJpbmcoMTYpKTtpZig2OT09KEhuPU90W0NpXVsxXSkmJihIbj1CbltCbi5sKytdKSxIbj53ci5sZW5ndGgpcmV0dXJuIHZvaWQgY29u'@; put 'c29sZS5lcnJvcigiV0sxIGJhZCBmb3JtdWxhIHBhcnNlIDB4IitDaS50b1N0cmluZygxNikrIjp8Iit3ci5qb2luKCJ8IikrInwiKTt2YXIgdXM9d3Iuc2xpY2UoLUhuKTt3ci5sZW5ndGgtPUhuLHdyLnB1c2goT3RbQ2ldWzBdKyIoIit1cy5qb2luKCIsIikrIikiKX19fTE9PXdyLmxlbmd0'@; put 'aD9qclsxXS5mPSIiK3dyWzBdOmNvbnNvbGUuZXJyb3IoIldLMSBiYWQgZm9ybXVsYSBwYXJzZSB8Iit3ci5qb2luKCJ8IikrInwiKX0pKEJuLnNsaWNlKEJuLmwsQm4ubCtXaSksenIpLEJuLmwrPVdpfXJldHVybiB6cn19LDI0OntuOiJUQUJMRSJ9LDI1OntuOiJPUkFOR0UifSwyNjp7bjoi'@; put 'UFJBTkdFIn0sMjc6e246IlNSQU5HRSJ9LDI4OntuOiJGUkFOR0UifSwyOTp7bjoiS1JBTkdFMSJ9LDMyOntuOiJIUkFOR0UifSwzNTp7bjoiS1JBTkdFMiJ9LDM2OntuOiJQUk9URUMifSwzNzp7bjoiRk9PVEVSIn0sMzg6e246IkhFQURFUiJ9LDM5OntuOiJTRVRVUCJ9LDQwOntuOiJNQVJH'@; put 'SU5TIn0sNDE6e246IkxBQkVMRk1UIn0sNDI6e246IlRJVExFUyJ9LDQzOntuOiJTSEVFVEpTIn0sNDU6e246IkdSQVBIIn0sNDY6e246Ik5HUkFQSCJ9LDQ3OntuOiJDQUxDQ09VTlQifSw0ODp7bjoiVU5GT1JNQVRURUQifSw0OTp7bjoiQ1VSU09SVzEyIn0sNTA6e246IldJTkRPVyJ9LDUx'@; put 'OntuOiJTVFJJTkciLGY6VmV9LDU1OntuOiJQQVNTV09SRCJ9LDU2OntuOiJMT0NLRUQifSw2MDp7bjoiUVVFUlkifSw2MTp7bjoiUVVFUllOQU1FIn0sNjI6e246IlBSSU5UIn0sNjM6e246IlBSSU5UTkFNRSJ9LDY0OntuOiJHUkFQSDIifSw2NTp7bjoiR1JBUEhOQU1FIn0sNjY6e246IlpP'@; put 'T00ifSw2Nzp7bjoiU1lNU1BMSVQifSw2ODp7bjoiTlNST1dTIn0sNjk6e246Ik5TQ09MUyJ9LDcwOntuOiJSVUxFUiJ9LDcxOntuOiJOTkFNRSJ9LDcyOntuOiJBQ09NTSJ9LDczOntuOiJBTUFDUk8ifSw3NDp7bjoiUEFSU0UifSwxMDI6e246IlBSQU5HRVM/PyJ9LDEwMzp7bjoiUlJBTkdF'@; put 'Uz8/In0sMTA0OntuOiJGTkFNRT8/In0sMTA1OntuOiJNUkFOR0VTPz8ifSw2NTUzNTp7bjoiIn19LFJyPXswOntuOiJCT0YifSwxOntuOiJFT0YifSwyOntuOiJQQVNTV09SRCJ9LDM6e246IkNBTENTRVQifSw0OntuOiJXSU5ET1dTRVQifSw1OntuOiJTSEVFVENFTExQVFIifSw2OntuOiJT'@; put 'SEVFVExBWU9VVCJ9LDc6e246IkNPTFVNTldJRFRIIn0sODp7bjoiSElEREVOQ09MVU1OIn0sOTp7bjoiVVNFUlJBTkdFIn0sMTA6e246IlNZU1RFTVJBTkdFIn0sMTE6e246IlpFUk9GT1JDRSJ9LDEyOntuOiJTT1JUS0VZRElSIn0sMTM6e246IkZJTEVTRUFMIn0sMTQ6e246IkRBVEFGSUxM'@; put 'TlVNUyJ9LDE1OntuOiJQUklOVE1BSU4ifSwxNjp7bjoiUFJJTlRTVFJJTkcifSwxNzp7bjoiR1JBUEhNQUlOIn0sMTg6e246IkdSQVBIU1RSSU5HIn0sMTk6e246Ij8/In0sMjA6e246IkVSUkNFTEwifSwyMTp7bjoiTkFDRUxMIn0sMjI6e246IkxBQkVMMTYiLGY6ZnVuY3Rpb24gQ24oQm4s'@; put 'anIpe3ZhciB3cj1zcihCbik7cmV0dXJuIHdyWzFdLnQ9InMiLHdyWzFdLnY9Qm4ucmVhZF9zaGlmdChqci00LCJjc3RyIiksd3J9fSwyMzp7bjoiTlVNQkVSMTciLGY6am59LDI0OntuOiJOVU1CRVIxOCIsZjpmdW5jdGlvbiBlcihCbixqcil7dmFyIHdyPXNyKEJuKTt3clsxXS52PUJuLnJl'@; put 'YWRfc2hpZnQoMik7dmFyIEhuPXdyWzFdLnY+PjE7aWYoMSZ3clsxXS52KXN3aXRjaCg3JkhuKXtjYXNlIDA6SG49NWUzKihIbj4+Myk7YnJlYWs7Y2FzZSAxOkhuPTUwMCooSG4+PjMpO2JyZWFrO2Nhc2UgMjpIbj0oSG4+PjMpLzIwO2JyZWFrO2Nhc2UgMzpIbj0oSG4+PjMpLzIwMDticmVh'@; put 'aztjYXNlIDQ6SG49KEhuPj4zKS8yZTM7YnJlYWs7Y2FzZSA1OkhuPShIbj4+MykvMmU0O2JyZWFrO2Nhc2UgNjpIbj0oSG4+PjMpLzE2O2JyZWFrO2Nhc2UgNzpIbj0oSG4+PjMpLzY0fXJldHVybiB3clsxXS52PUhuLHdyfX0sMjU6e246IkZPUk1VTEExOSIsZjpmdW5jdGlvbiBicihCbixq'@; put 'cil7dmFyIHdyPWpuKEJuKTtyZXR1cm4gQm4ubCs9anItMTQsd3J9fSwyNjp7bjoiRk9STVVMQTFBIn0sMjc6e246IlhGT1JNQVQiLGY6ZnVuY3Rpb24gbmEoQm4sanIpe2Zvcih2YXIgd3I9e30sSG49Qm4ubCtqcjtCbi5sPEhuOyl7dmFyIHpyPUJuLnJlYWRfc2hpZnQoMik7aWYoMTRlMz09'@; put 'enIpe2Zvcih3clt6cl09WzAsIiJdLHdyW3pyXVswXT1Cbi5yZWFkX3NoaWZ0KDIpO0JuW0JuLmxdOyl3clt6cl1bMV0rPVN0cmluZy5mcm9tQ2hhckNvZGUoQm5bQm4ubF0pLEJuLmwrKztCbi5sKyt9fXJldHVybiB3cn19LDI4OntuOiJEVExBQkVMTUlTQyJ9LDI5OntuOiJEVExBQkVMQ0VM'@; put 'TCJ9LDMwOntuOiJHUkFQSFdJTkRPVyJ9LDMxOntuOiJDUEEifSwzMjp7bjoiTFBMQVVUTyJ9LDMzOntuOiJRVUVSWSJ9LDM0OntuOiJISURERU5TSEVFVCJ9LDM1OntuOiI/PyJ9LDM3OntuOiJOVU1CRVIyNSIsZjpmdW5jdGlvbiBycihCbixqcil7dmFyIHdyPXNyKEJuKSxIbj1Cbi5yZWFk'@; put 'X3NoaWZ0KDQpO3JldHVybiB3clsxXS52PUhuPj42LHdyfX0sMzg6e246Ij8/In0sMzk6e246Ik5VTUJFUjI3IixmOlNpfSw0MDp7bjoiRk9STVVMQTI4IixmOmZ1bmN0aW9uIFBpKEJuLGpyKXt2YXIgd3I9U2koQm4pO3JldHVybiBCbi5sKz1qci0xMCx3cn19LDE0Mjp7bjoiPz8ifSwxNDc6'@; put 'e246Ij8/In0sMTUwOntuOiI/PyJ9LDE1MTp7bjoiPz8ifSwxNTI6e246Ij8/In0sMTUzOntuOiI/PyJ9LDE1NDp7bjoiPz8ifSwxNTU6e246Ij8/In0sMTU2OntuOiI/PyJ9LDE2Mzp7bjoiPz8ifSwxNzQ6e246Ij8/In0sMTc1OntuOiI/PyJ9LDE3Njp7bjoiPz8ifSwxNzc6e246Ij8/In0s'@; put 'MTg0OntuOiI/PyJ9LDE4NTp7bjoiPz8ifSwxODY6e246Ij8/In0sMTg3OntuOiI/PyJ9LDE4ODp7bjoiPz8ifSwxOTU6e246Ij8/In0sMjAxOntuOiI/PyJ9LDIwNTp7bjoiPz8ifSwyMDY6e246Ij8/In0sMjA3OntuOiI/PyJ9LDIwODp7bjoiPz8ifSwyNTY6e246Ij8/In0sMjU5OntuOiI/'@; put 'PyJ9LDI2MDp7bjoiPz8ifSwyNjE6e246Ij8/In0sMjYyOntuOiI/PyJ9LDI2Mzp7bjoiPz8ifSwyNjU6e246Ij8/In0sMjY2OntuOiI/PyJ9LDI2Nzp7bjoiPz8ifSwyNjg6e246Ij8/In0sMjcwOntuOiI/PyJ9LDI3MTp7bjoiPz8ifSwzODQ6e246Ij8/In0sMzg5OntuOiI/PyJ9LDM5MDp7'@; put 'bjoiPz8ifSwzOTM6e246Ij8/In0sMzk2OntuOiI/PyJ9LDUxMjp7bjoiPz8ifSw1MTQ6e246Ij8/In0sNTEzOntuOiI/PyJ9LDUxNjp7bjoiPz8ifSw1MTc6e246Ij8/In0sNjQwOntuOiI/PyJ9LDY0MTp7bjoiPz8ifSw2NDI6e246Ij8/In0sNjQzOntuOiI/PyJ9LDY0NDp7bjoiPz8ifSw2'@; put 'NDU6e246Ij8/In0sNjQ2OntuOiI/PyJ9LDY0Nzp7bjoiPz8ifSw2NDg6e246Ij8/In0sNjU4OntuOiI/PyJ9LDY1OTp7bjoiPz8ifSw2NjA6e246Ij8/In0sNjYxOntuOiI/PyJ9LDY2Mjp7bjoiPz8ifSw2NjU6e246Ij8/In0sNjY2OntuOiI/PyJ9LDc2ODp7bjoiPz8ifSw3NzI6e246Ij8/'@; put 'In0sMTYwMDp7bjoiPz8ifSwxNjAyOntuOiI/PyJ9LDE3OTM6e246Ij8/In0sMTc5NDp7bjoiPz8ifSwxNzk1OntuOiI/PyJ9LDE3OTY6e246Ij8/In0sMTkyMDp7bjoiPz8ifSwyMDQ4OntuOiI/PyJ9LDIwNDk6e246Ij8/In0sMjA1Mjp7bjoiPz8ifSwyNjg4OntuOiI/PyJ9LDEwOTk4Ontu'@; put 'OiI/PyJ9LDEyODQ5OntuOiI/PyJ9LDI4MjMzOntuOiI/PyJ9LDI4NDg0OntuOiI/PyJ9LDY1NTM1OntuOiIifX07cmV0dXJue3NoZWV0X3RvX3drMTpmdW5jdGlvbiBLKEJuLGpyKXt2YXIgd3I9anJ8fHt9O2lmKCt3ci5jb2RlcGFnZT49MCYmQigrd3IuY29kZXBhZ2UpLCJzdHJpbmciPT13'@; put 'ci50eXBlKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHdyaXRlIFdLMSB0byBKUyBzdHJpbmciKTt2YXIgSG49dmkoKSx6cj1zcyhCblsiIXJlZiJdKSxXaT1BcnJheS5pc0FycmF5KEJuKSxDaT1bXTskaShIbiwwLGZ1bmN0aW9uIG9lKEJuKXt2YXIganI9dm4oMik7cmV0dXJuIGpyLndyaXRl'@; put 'X3NoaWZ0KDIsQm4pLGpyfSgxMDMwKSksJGkoSG4sNixmdW5jdGlvbiBiZShCbil7dmFyIGpyPXZuKDgpO3JldHVybiBqci53cml0ZV9zaGlmdCgyLEJuLnMuYyksanIud3JpdGVfc2hpZnQoMixCbi5zLnIpLGpyLndyaXRlX3NoaWZ0KDIsQm4uZS5jKSxqci53cml0ZV9zaGlmdCgyLEJuLmUu'@; put 'ciksanJ9KHpyKSk7Zm9yKHZhciB3YT16ci5zLnI7d2E8PXpyLmUucjsrK3dhKWZvcih2YXIgb3M9amkod2EpLGlhPXpyLnMuYztpYTw9enIuZS5jOysraWEpe3dhPT09enIucy5yJiYoQ2lbaWFdPWthKGlhKSk7dmFyIFBhPVdpPyhCblt3YV18fFtdKVtpYV06Qm5bQ2lbaWFdK29zXTtQYSYm'@; put 'InoiIT1QYS50JiYoIm4iPT1QYS50PygwfFBhLnYpPT1QYS52JiZQYS52Pj0tMzI3NjgmJlBhLnY8PTMyNzY3PyRpKEhuLDEzLGN0KHdhLGlhLFBhLnYpKTokaShIbiwxNCxpdCh3YSxpYSxQYS52KSk6JGkoSG4sMTUsWWUod2EsaWEseWwoUGEpLnNsaWNlKDAsMjM5KSkpKX1yZXR1cm4gJGko'@; put 'SG4sMSksSG4uZW5kKCl9LGJvb2tfdG9fd2szOmZ1bmN0aW9uIGVlKEJuLGpyKXt2YXIgd3I9anJ8fHt9O2lmKCt3ci5jb2RlcGFnZT49MCYmQigrd3IuY29kZXBhZ2UpLCJzdHJpbmciPT13ci50eXBlKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHdyaXRlIFdLMyB0byBKUyBzdHJpbmciKTt2'@; put 'YXIgSG49dmkoKTskaShIbiwwLGZ1bmN0aW9uIG1lKEJuKXt2YXIganI9dm4oMjYpO2pyLndyaXRlX3NoaWZ0KDIsNDA5NiksanIud3JpdGVfc2hpZnQoMiw0KSxqci53cml0ZV9zaGlmdCg0LDApO2Zvcih2YXIgd3I9MCxIbj0wLHpyPTAsV2k9MDtXaTxCbi5TaGVldE5hbWVzLmxlbmd0aDsr'@; put 'K1dpKXt2YXIgd2E9Qm4uU2hlZXRzW0JuLlNoZWV0TmFtZXNbV2ldXTtpZih3YSYmd2FbIiFyZWYiXSl7Kyt6cjt2YXIgb3M9U28od2FbIiFyZWYiXSk7d3I8b3MuZS5yJiYod3I9b3MuZS5yKSxIbjxvcy5lLmMmJihIbj1vcy5lLmMpfX1yZXR1cm4ganIud3JpdGVfc2hpZnQoMix3ciksanIu'@; put 'd3JpdGVfc2hpZnQoMSx6ciksanIud3JpdGVfc2hpZnQoMSxIbiksanIud3JpdGVfc2hpZnQoMiwwKSxqci53cml0ZV9zaGlmdCgyLDApLGpyLndyaXRlX3NoaWZ0KDEsMSksanIud3JpdGVfc2hpZnQoMSwyKSxqci53cml0ZV9zaGlmdCg0LDApLGpyLndyaXRlX3NoaWZ0KDQsMCksanJ9KEJu'@; put 'KSk7Zm9yKHZhciB6cj0wLFdpPTA7enI8Qm4uU2hlZXROYW1lcy5sZW5ndGg7Kyt6cikoQm4uU2hlZXRzW0JuLlNoZWV0TmFtZXNbenJdXXx8e30pWyIhcmVmIl0mJiRpKEhuLDI3LGxhKEJuLlNoZWV0TmFtZXNbenJdLFdpKyspKTt2YXIgQ2k9MDtmb3IoenI9MDt6cjxCbi5TaGVldE5hbWVz'@; put 'Lmxlbmd0aDsrK3pyKXt2YXIgd2E9Qm4uU2hlZXRzW0JuLlNoZWV0TmFtZXNbenJdXTtpZih3YSYmd2FbIiFyZWYiXSl7Zm9yKHZhciBvcz1zcyh3YVsiIXJlZiJdKSxpYT1BcnJheS5pc0FycmF5KHdhKSxPcz1bXSxQYT1vcy5zLnI7UGE8PW9zLmUucjsrK1BhKWZvcih2YXIgdXM9amkoUGEp'@; put 'LHFhPW9zLnMuYztxYTw9b3MuZS5jOysrcWEpe1BhPT09b3Mucy5yJiYoT3NbcWFdPWthKHFhKSk7dmFyIElvPWlhPyh3YVtQYV18fFtdKVtxYV06d2FbT3NbcWFdK3VzXTtJbyYmInoiIT1Jby50JiYoIm4iPT1Jby50PyRpKEhuLDIzLHByKFBhLHFhLENpLElvLnYpKTokaShIbiwyMix1cihQ'@; put 'YSxxYSxDaSx5bChJbykuc2xpY2UoMCwyMzkpKSkpfSsrQ2l9fXJldHVybiAkaShIbiwxKSxIbi5lbmQoKX0sdG9fd29ya2Jvb2s6ZnVuY3Rpb24gTyhCbixqcil7c3dpdGNoKGpyLnR5cGUpe2Nhc2UiYmFzZTY0IjpyZXR1cm4gayh5KF9lLmRlY29kZShCbikpLGpyKTtjYXNlImJpbmFyeSI6'@; put 'cmV0dXJuIGsoeShCbiksanIpO2Nhc2UiYnVmZmVyIjpjYXNlImFycmF5IjpyZXR1cm4gayhCbixqcil9dGhyb3ciVW5zdXBwb3J0ZWQgdHlwZSAiK2pyLnR5cGV9fX0oKSx5NT1mdW5jdGlvbigpe3ZhciBTPUEwKCJ0IiksTz1BMCgiclByIik7ZnVuY3Rpb24gayhvZSl7dmFyIG1lPW9lLm1h'@; put 'dGNoKFMpO2lmKCFtZSlyZXR1cm57dDoicyIsdjoiIn07dmFyIHBlPXt0OiJzIix2OlFyKG1lWzFdKX0sYmU9b2UubWF0Y2goTyk7cmV0dXJuIGJlJiYocGUucz1mdW5jdGlvbiBjayhTKXt2YXIgTz17fSxrPVMubWF0Y2godG4pLEs9MCxlZT0hMTtpZihrKWZvcig7SyE9ay5sZW5ndGg7KytL'@; put 'KXt2YXIgb2U9eXIoa1tLXSk7c3dpdGNoKG9lWzBdLnJlcGxhY2UoL1x3KjovZywiIikpe2Nhc2UiPGNvbmRlbnNlIjpjYXNlIjxleHRlbmQiOmJyZWFrO2Nhc2UiPHNoYWRvdyI6aWYoIW9lLnZhbClicmVhaztjYXNlIjxzaGFkb3c+IjpjYXNlIjxzaGFkb3cvPiI6Ty5zaGFkb3c9MTticmVh'@; put 'aztjYXNlIjwvc2hhZG93PiI6YnJlYWs7Y2FzZSI8Y2hhcnNldCI6aWYoIjEiPT1vZS52YWwpYnJlYWs7Ty5jcD1QW3BhcnNlSW50KG9lLnZhbCwxMCldO2JyZWFrO2Nhc2UiPG91dGxpbmUiOmlmKCFvZS52YWwpYnJlYWs7Y2FzZSI8b3V0bGluZT4iOmNhc2UiPG91dGxpbmUvPiI6Ty5vdXRs'@; put 'aW5lPTE7YnJlYWs7Y2FzZSI8L291dGxpbmU+IjpicmVhaztjYXNlIjxyRm9udCI6Ty5uYW1lPW9lLnZhbDticmVhaztjYXNlIjxzeiI6Ty5zej1vZS52YWw7YnJlYWs7Y2FzZSI8c3RyaWtlIjppZighb2UudmFsKWJyZWFrO2Nhc2UiPHN0cmlrZT4iOmNhc2UiPHN0cmlrZS8+IjpPLnN0cmlr'@; put 'ZT0xO2JyZWFrO2Nhc2UiPC9zdHJpa2U+IjpicmVhaztjYXNlIjx1IjppZighb2UudmFsKWJyZWFrO3N3aXRjaChvZS52YWwpe2Nhc2UiZG91YmxlIjpPLnVuZGVybGluZT0yO2JyZWFrO2Nhc2Uic2luZ2xlQWNjb3VudGluZyI6Ty51bmRlcmxpbmU9MzM7YnJlYWs7Y2FzZSJkb3VibGVBY2Nv'@; put 'dW50aW5nIjpPLnVuZGVybGluZT0zNH1jYXNlIjx1PiI6Y2FzZSI8dS8+IjpPLnVuZGVybGluZXx8KE8udW5kZXJsaW5lPTEpO2JyZWFrO2Nhc2UiPC91PiI6YnJlYWs7Y2FzZSI8YiI6aWYoIjAiPT1vZS52YWwpYnJlYWs7Y2FzZSI8Yj4iOmNhc2UiPGIvPiI6Ty5ib2xkPTE7YnJlYWs7Y2Fz'@; put 'ZSI8L2I+IjpicmVhaztjYXNlIjxpIjppZigiMCI9PW9lLnZhbClicmVhaztjYXNlIjxpPiI6Y2FzZSI8aS8+IjpPLml0YWxpYz0xO2JyZWFrO2Nhc2UiPC9pPiI6YnJlYWs7Y2FzZSI8Y29sb3IiOm9lLnJnYiYmKE8uY29sb3I9e3JnYjo4PT1vZS5yZ2IubGVuZ3RoP29lLnJnYi5zbGljZSgy'@; put 'LDgpOigiMDAwMDAwIitvZS5yZ2IpLnNsaWNlKC02KX0pO2JyZWFrO2Nhc2UiPGZhbWlseSI6Ty5mYW1pbHk9b2UudmFsO2JyZWFrO2Nhc2UiPHZlcnRBbGlnbiI6Im5vbmUiIT0ob2UudmFsfHwibm9uZSIpJiYoTy52YWxpZ249b2UudmFsLnJlcGxhY2UoInNjcmlwdCIsIiIpKTticmVhaztj'@; put 'YXNlIjxzY2hlbWUiOmNhc2UiPGV4dExzdCI6Y2FzZSI8ZXh0THN0PiI6Y2FzZSI8L2V4dExzdD4iOmJyZWFrO2Nhc2UiPGV4dCI6ZWU9ITA7YnJlYWs7Y2FzZSI8L2V4dD4iOmVlPSExO2JyZWFrO2RlZmF1bHQ6aWYoNDchPT1vZVswXS5jaGFyQ29kZUF0KDEpJiYhZWUpdGhyb3cgbmV3IEVy'@; put 'cm9yKCJVbnJlY29nbml6ZWQgcmljaCBmb3JtYXQgIitvZVswXSl9fXJldHVybiBPfShiZVsxXSkpLHBlfXZhciBLPS88KD86XHcrOik/cj4vZyxlZT0vPFwvKD86XHcrOik/cj4vO3JldHVybiBmdW5jdGlvbihtZSl7cmV0dXJuIG1lLnJlcGxhY2UoSywiIikuc3BsaXQoZWUpLm1hcChrKS5m'@; put 'aWx0ZXIoZnVuY3Rpb24ocGUpe3JldHVybiBwZS52fSl9fSgpLHhWPXsxOiJzaW5nbGUiLDI6ImRvdWJsZSIsMzM6InNpbmdsZS1hY2NvdW50aW5nIiwzNDoiZG91YmxlLWFjY291bnRpbmcifSxGdT1mdW5jdGlvbigpe3ZhciBPPS8oXHJcbnxcbikvZztmdW5jdGlvbiBLKGVlKXt2YXIgb2U9'@; put 'W1tdLGVlLnYsW11dO3JldHVybiBlZS52PyhlZS5zJiZmdW5jdGlvbiBrKGVlLG9lLG1lKXt2YXIgcGU9W107ZWUudW5kZXJsaW5lJiZwZS5wdXNoKCJ0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsiKSxlZS51bmRlcmxpbmU+MSYmcGUucHVzaCgidGV4dC11bmRlcmxpbmUtc3R5bGU6Iit4'@; put 'VltlZS51bmRlcmxpbmVdKyI7IiksZWUuc3omJnBlLnB1c2goImZvbnQtc2l6ZToiK2VlLnN6KyJwdDsiKSxlZS5vdXRsaW5lJiZwZS5wdXNoKCJ0ZXh0LWVmZmVjdDogb3V0bGluZTsiKSxlZS5zaGFkb3cmJnBlLnB1c2goInRleHQtc2hhZG93OiBhdXRvOyIpLGVlLmNvbG9yJiZlZS5jb2xv'@; put 'ci5yZ2ImJnBlLnB1c2goImNvbG9yOiAjIitMMChlZS5jb2xvci5yZ2IpKyI7Iiksb2UucHVzaCgnPHNwYW4gc3R5bGU9IicrcGUuam9pbigiIikrJyI+JyksZWUuYm9sZCYmKG9lLnB1c2goIjxiPiIpLG1lLnB1c2goIjwvYj4iKSksZWUuaXRhbGljJiYob2UucHVzaCgiPGk+IiksbWUucHVz'@; put 'aCgiPC9pPiIpKSxlZS5zdHJpa2UmJihvZS5wdXNoKCI8cz4iKSxtZS5wdXNoKCI8L3M+IikpO3ZhciBiZT1lZS52YWxpZ258fCIiOyJzdXBlcnNjcmlwdCI9PWJlfHwic3VwZXIiPT1iZT9iZT0ic3VwIjoic3Vic2NyaXB0Ij09YmUmJihiZT0ic3ViIiksIiIhPWJlJiYob2UucHVzaCgiPCIr'@; put 'YmUrIj4iKSxtZS5wdXNoKCI8LyIrYmUrIj4iKSksbWUucHVzaCgiPC9zcGFuPiIpfShlZS5zLG9lWzBdLG9lWzJdKSxvZVswXS5qb2luKCIiKStvZVsxXS5yZXBsYWNlKE8sIjxici8+Iikrb2VbMl0uam9pbigiIikpOiIifXJldHVybiBmdW5jdGlvbihvZSl7cmV0dXJuIG9lLm1hcChLKS5q'@; put 'b2luKCIiKX19KCk7ZnVuY3Rpb24gSm8oUyl7cmV0dXJuIFMubWFwKGZ1bmN0aW9uKGspe3JldHVybiBmdW5jdGlvbiBBNChTKXt2YXIgTz0iIixrPVtdO3JldHVybiBTLnMmJihTLnMuYm9sZCYmay5wdXNoKCI8Yi8+IiksUy5zLml0YWxpYyYmay5wdXNoKCI8aS8+IiksUy5zLnN0cmlrZSYm'@; put 'ay5wdXNoKCI8c3RyaWtlLz4iKSxTLnMudW5kZXJsaW5lJiZrLnB1c2goJzx1IHZhbD0iJysoeDVbUy5zLnVuZGVybGluZV18fCJzaW5nbGUiKSsnIi8+JyksUy5zLmNvbG9yJiZrLnB1c2gobWQoUy5zLmNvbG9yKSksUy5zLnN6JiZrLnB1c2goJzxzeiB2YWw9IicrUy5zLnN6KyciLz4nKSxT'@; put 'LnMubmFtZSYmay5wdXNoKCc8ckZvbnQgdmFsPSInK1Mucy5uYW1lKyciLz4nKSwoInN1cGVyIj09Uy5zLnZhbGlnbnx8InN1YiI9PVMucy52YWxpZ24pJiZrLnB1c2goJzx2ZXJ0QWxpZ24gdmFsPSInK1Mucy52YWxpZ24rJ3NjcmlwdCIvPicpKSxrLmxlbmd0aCYmKE8rPSI8clByPiIray5q'@; put 'b2luKCIiKSsiPC9yUHI+IiksIjxyPiIrKE8rPUhyKCJ0IixQcihTLnYpLG51bGwpKSsiPC9yPiJ9KGspfSkuam9pbigiIil9dmFyIEVWPS88KD86XHcrOik/dFtePl0qPihbXjxdKik8XC8oPzpcdys6KT90Pi9nLFRWPS88KD86XHcrOik/clxiW14+XSo+LyxBVj0vPCg/Olx3KzopP3JQaC4q'@; put 'Pz4oW1xzXFNdKj8pPFwvKD86XHcrOik/clBoPi9nO2Z1bmN0aW9uIGdDKFMsTyl7dmFyIGs9IU98fE8uY2VsbEhUTUwsSz17fTtyZXR1cm4gUz8oUy5tYXRjaCgvXlxzKjwoPzpcdys6KT90W14+XSo+Lyk/KEsudD1RcihmcyhTLnNsaWNlKFMuaW5kZXhPZigiPiIpKzEpLnNwbGl0KC88XC8o'@; put 'Pzpcdys6KT90Pi8pWzBdfHwiIikpLEsucj1mcyhTKSxrJiYoSy5oPW9hKEsudCkpKTpTLm1hdGNoKFRWKSYmKEsucj1mcyhTKSxLLnQ9UXIoZnMoKFMucmVwbGFjZShBViwiIikubWF0Y2goRVYpfHxbXSkuam9pbigiIikucmVwbGFjZSh0biwiIikpKSxLLlI9eTUoSy5yKSxrJiYoSy5oPUZ1'@; put 'KEsuUikpKSxLKTp7dDoiIn19dmFyIHVrPS88KD86XHcrOik/c3N0KFtePl0qKT4oW1xzXFNdKik8XC8oPzpcdys6KT9zc3Q+Lyxkaz0vPCg/Olx3KzopPyg/OnNpfHNzdEl0ZW0pPi9nLFg2PS88XC8oPzpcdys6KT8oPzpzaXxzc3RJdGVtKT4vO1hhLlNTVD0iaHR0cDovL3NjaGVtYXMub3Bl'@; put 'bnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9zaGFyZWRTdHJpbmdzIjt2YXIga1Y9L15cc3xccyR8W1x0XG5ccl0vO2Z1bmN0aW9uIEF2KFMsTyl7aWYoIU8uYm9va1NTVClyZXR1cm4iIjt2YXIgaz1bRGldO2tbay5sZW5ndGhdPUhyKCJzc3QiLG51'@; put 'bGwse3htbG5zOkdpLm1haW5bMF0sY291bnQ6Uy5Db3VudCx1bmlxdWVDb3VudDpTLlVuaXF1ZX0pO2Zvcih2YXIgSz0wO0shPVMubGVuZ3RoOysrSylpZihudWxsIT1TW0tdKXt2YXIgZWU9U1tLXSxvZT0iPHNpPiI7ZWUucj9vZSs9ZWUucjoob2UrPSI8dCIsZWUudHx8KGVlLnQ9IiIpLGVl'@; put 'LnQubWF0Y2goa1YpJiYob2UrPScgeG1sOnNwYWNlPSJwcmVzZXJ2ZSInKSxvZSs9Ij4iK1ByKGVlLnQpKyI8L3Q+Iiksa1trLmxlbmd0aF09b2UrPSI8L3NpPiJ9cmV0dXJuIGsubGVuZ3RoPjImJihrW2subGVuZ3RoXT0iPC9zc3Q+IixrWzFdPWtbMV0ucmVwbGFjZSgiLz4iLCI+IikpLGsu'@; put 'am9pbigiIil9dmFyIGhrPWZ1bmN0aW9uIFIzKFMsTyxrKXt2YXIgSz0xMys0KlMudC5sZW5ndGgsZWU9Uy5SJiZTLlIubGVuZ3RofHxTLnI7Uy5yJiYoUy5SPXk1KFMucikpLGVlJiYoSys9NCs0KlMuUi5sZW5ndGgpO3ZhciBvZT0hMTtpZihudWxsPT1rJiYob2U9ITAsaz12bihLKSksay53'@; put 'cml0ZV9zaGlmdCgxLGVlPzE6MCksT2MoUy50LGspLGVlKXtrLndyaXRlX3NoaWZ0KDQsUy5SLmxlbmd0aCk7Zm9yKHZhciBtZT0wLHBlPTA7cGU8Uy5SLmxlbmd0aDsrK3BlKXt2YXIgYmU9Uy5SW3BlXTtrLndyaXRlX3NoaWZ0KDIsbWUpLG1lKz0oYmUudnx8IiIpLmxlbmd0aDt2YXIgUGU9'@; put 'YmUucz9zMChPLmNlbGxYZnMsTy5jZWxsU3R5bGVYZnMse3Q6Im4iLHY6MCxzOmJlLnN9LE8pOjA7ay53cml0ZV9zaGlmdCgyLE8uY2VsbFhmc1tQZV0uZm9udElkKX19cmV0dXJuIG9lP2suc2xpY2UoMCxrLmwpOmt9O2Z1bmN0aW9uIGZrKFMsTyl7dmFyIGs9dmkoKTtWcihrLCJCcnRCZWdp'@; put 'blNzdCIsZnVuY3Rpb24gbUMoUyxPKXtyZXR1cm4gT3x8KE89dm4oOCkpLE8ud3JpdGVfc2hpZnQoNCxTLkNvdW50KSxPLndyaXRlX3NoaWZ0KDQsUy5VbmlxdWUpLE99KFMpKTtmb3IodmFyIEs9MDtLPFMubGVuZ3RoOysrSylWcihrLCJCcnRTU1RJdGVtIixoayhTW0tdLE8pKTtyZXR1cm4g'@; put 'VnIoaywiQnJ0RW5kU3N0Iiksay5lbmQoKX1mdW5jdGlvbiBrNChTKXtpZih0eXBlb2YgY3B0YWJsZTwidSIpcmV0dXJuIGNwdGFibGUudXRpbHMuZW5jb2RlKEgsUyk7Zm9yKHZhciBPPVtdLGs9Uy5zcGxpdCgiIiksSz0wO0s8ay5sZW5ndGg7KytLKU9bS109a1tLXS5jaGFyQ29kZUF0KDAp'@; put 'O3JldHVybiBPfWZ1bmN0aW9uIEYxKFMsTyl7dmFyIGs9e307cmV0dXJuIGsuTWFqb3I9Uy5yZWFkX3NoaWZ0KDIpLGsuTWlub3I9Uy5yZWFkX3NoaWZ0KDIpLE8+PTQmJihTLmwrPU8tNCksa31mdW5jdGlvbiB2QyhTKXtmb3IodmFyIE89Uy5yZWFkX3NoaWZ0KDQpLGs9Uy5sK08tNCxLPXt9'@; put 'LGVlPVMucmVhZF9zaGlmdCg0KSxvZT1bXTtlZS0tID4wOylvZS5wdXNoKHt0OlMucmVhZF9zaGlmdCg0KSx2OlMucmVhZF9zaGlmdCgwLCJscHA0Iil9KTtpZihLLm5hbWU9Uy5yZWFkX3NoaWZ0KDAsImxwcDQiKSxLLmNvbXBzPW9lLFMubCE9ayl0aHJvdyBuZXcgRXJyb3IoIkJhZCBEYXRh'@; put 'U3BhY2VNYXBFbnRyeTogIitTLmwrIiAhPSAiK2spO3JldHVybiBLfWZ1bmN0aW9uIFBWKFMsTyl7dmFyIGs9Uy5sK08sSz17fTtLLkZsYWdzPTYzJlMucmVhZF9zaGlmdCg0KSxTLmwrPTQsSy5BbGdJRD1TLnJlYWRfc2hpZnQoNCk7dmFyIGVlPSExO3N3aXRjaChLLkFsZ0lEKXtjYXNlIDI2'@; put 'MTI2OmNhc2UgMjYxMjc6Y2FzZSAyNjEyODplZT0zNj09Sy5GbGFnczticmVhaztjYXNlIDI2NjI1OmVlPTQ9PSg1MiZLLkZsYWdzKTticmVhaztjYXNlIDA6ZWU9MTY9PUsuRmxhZ3N8fDQ9PUsuRmxhZ3N8fDM2PT1LLkZsYWdzO2JyZWFrO2RlZmF1bHQ6dGhyb3ciVW5yZWNvZ25pemVkIGVu'@; put 'Y3J5cHRpb24gYWxnb3JpdGhtOiAiK0suQWxnSUR9aWYoIWVlKXRocm93IG5ldyBFcnJvcigiRW5jcnlwdGlvbiBGbGFncy9BbGdJRCBtaXNtYXRjaCIpO3JldHVybiBLLkFsZ0lESGFzaD1TLnJlYWRfc2hpZnQoNCksSy5LZXlTaXplPVMucmVhZF9zaGlmdCg0KSxLLlByb3ZpZGVyVHlwZT1T'@; put 'LnJlYWRfc2hpZnQoNCksUy5sKz04LEsuQ1NQTmFtZT1TLnJlYWRfc2hpZnQoay1TLmw+PjEsInV0ZjE2bGUiKSxTLmw9ayxLfWZ1bmN0aW9uIEl2KFMsTyl7dmFyIGs9e30sSz1TLmwrTztyZXR1cm4gUy5sKz00LGsuU2FsdD1TLnNsaWNlKFMubCxTLmwrMTYpLFMubCs9MTYsay5WZXJpZmll'@; put 'cj1TLnNsaWNlKFMubCxTLmwrMTYpLFMubCs9MTYsUy5yZWFkX3NoaWZ0KDQpLGsuVmVyaWZpZXJIYXNoPVMuc2xpY2UoUy5sLEspLFMubD1LLGt9ZnVuY3Rpb24gRlYoUyl7aWYoMzYhPSg2MyZTLnJlYWRfc2hpZnQoNCkpKXRocm93IG5ldyBFcnJvcigiRW5jcnlwdGlvbkluZm8gbWlzbWF0'@; put 'Y2giKTt2YXIgaz1TLnJlYWRfc2hpZnQoNCk7cmV0dXJue3Q6IlN0ZCIsaDpQVihTLGspLHY6SXYoUyxTLmxlbmd0aC1TLmwpfX1mdW5jdGlvbiBKNigpe3Rocm93IG5ldyBFcnJvcigiRmlsZSBpcyBwYXNzd29yZC1wcm90ZWN0ZWQ6IEVDTUEtMzc2IEV4dGVuc2libGUiKX1mdW5jdGlvbiB5'@; put 'QyhTKXt2YXIgTz1bInNhbHRTaXplIiwiYmxvY2tTaXplIiwia2V5Qml0cyIsImhhc2hTaXplIiwiY2lwaGVyQWxnb3JpdGhtIiwiY2lwaGVyQ2hhaW5pbmciLCJoYXNoQWxnb3JpdGhtIiwic2FsdFZhbHVlIl07Uy5sKz00O3ZhciBrPVMucmVhZF9zaGlmdChTLmxlbmd0aC1TLmwsInV0Zjgi'@; put 'KSxLPXt9O3JldHVybiBrLnJlcGxhY2UodG4sZnVuY3Rpb24ob2Upe3ZhciBtZT15cihvZSk7c3dpdGNoKEduKG1lWzBdKSl7Y2FzZSI8P3htbCI6Y2FzZSI8ZW5jcnlwdGlvbiI6Y2FzZSI8L2VuY3J5cHRpb24+IjpjYXNlIjwva2V5RW5jcnlwdG9ycz4iOmNhc2UiPC9rZXlFbmNyeXB0b3I+'@; put 'IjpicmVhaztjYXNlIjxrZXlEYXRhIjpPLmZvckVhY2goZnVuY3Rpb24ocGUpe0tbcGVdPW1lW3BlXX0pO2JyZWFrO2Nhc2UiPGRhdGFJbnRlZ3JpdHkiOksuZW5jcnlwdGVkSG1hY0tleT1tZS5lbmNyeXB0ZWRIbWFjS2V5LEsuZW5jcnlwdGVkSG1hY1ZhbHVlPW1lLmVuY3J5cHRlZEhtYWNW'@; put 'YWx1ZTticmVhaztjYXNlIjxrZXlFbmNyeXB0b3JzPiI6Y2FzZSI8a2V5RW5jcnlwdG9ycyI6Sy5lbmNzPVtdO2JyZWFrO2Nhc2UiPGtleUVuY3J5cHRvciI6Sy51cmk9bWUudXJpO2JyZWFrO2Nhc2UiPGVuY3J5cHRlZEtleSI6Sy5lbmNzLnB1c2gobWUpO2JyZWFrO2RlZmF1bHQ6dGhyb3cg'@; put 'bWVbMF19fSksS31mdW5jdGlvbiBMdihTKXt2YXIgayxvZSxPPTAsSz1rNChTKSxlZT1LLmxlbmd0aCsxO2Zvcigoaz16KGVlKSlbMF09Sy5sZW5ndGgsb2U9MTtvZSE9ZWU7KytvZSlrW29lXT1LW29lLTFdO2ZvcihvZT1lZS0xO29lPj0wOy0tb2UpTz0oKDE2Mzg0Jk8/MTowKXxPPDwxJjMy'@; put 'NzY3KV5rW29lXTtyZXR1cm4gNTI4MTFeT312YXIgYkM9ZnVuY3Rpb24oKXt2YXIgUz1bMTg3LDI1NSwyNTUsMTg2LDI1NSwyNTUsMTg1LDEyOCwwLDE5MCwxNSwwLDE5MSwxNSwwXSxPPVs1Nzg0MCw3NDM5LDUyMzgwLDMzOTg0LDQzNjQsMzYwMCw2MTkwMiwxMjYwNiw2MjU4LDU3NjU3LDU0'@; put 'Mjg3LDM0MDQxLDEwMjUyLDQzMzcwLDIwMTYzXSxrPVs0NDc5NiwxOTkyOSwzOTg1OCwxMDA1MywyMDEwNiw0MDIxMiwxMDc2MSwzMTU4NSw2MzE3MCw2NDkzMyw2MDI2Nyw1MDkzNSw0MDM5OSwxMTE5OSwxNzc2MywzNTUyNiwxNDUzLDI5MDYsNTgxMiwxMTYyNCwyMzI0OCw4ODUsMTc3MCwz'@; put 'NTQwLDcwODAsMTQxNjAsMjgzMjAsNTY2NDAsNTUzNjksNDExMzksMjA4MDcsNDE2MTQsMjE4MjEsNDM2NDIsMTc2MjEsMjg0ODUsNTY5NzAsNDQzNDEsMTkwMTksMzgwMzgsMTQ2MDUsMjkyMTAsNjAxOTUsNTA3OTEsNDAxNzUsMTA3NTEsMjE1MDIsNDMwMDQsMjQ1MzcsMTgzODcsMzY3NzQs'@; put 'Mzk0OSw3ODk4LDE1Nzk2LDMxNTkyLDYzMTg0LDQ3MjAxLDI0ODAzLDQ5NjA2LDM3ODA1LDE0MjAzLDI4NDA2LDU2ODEyLDE3ODI0LDM1NjQ4LDE2OTcsMzM5NCw2Nzg4LDEzNTc2LDI3MTUyLDQzNjAxLDE3NTM5LDM1MDc4LDU1NywxMTE0LDIyMjgsNDQ1NiwzMDM4OCw2MDc3Niw1MTk1Mywz'@; put 'NDI0Myw3MDc5LDE0MTU4LDI4MzE2LDE0MTI4LDI4MjU2LDU2NTEyLDQzNDI1LDE3MjUxLDM0NTAyLDc1OTcsMTMxMDUsMjYyMTAsNTI0MjAsMzUyNDEsODgzLDE3NjYsMzUzMiw0MTI5LDgyNTgsMTY1MTYsMzMwMzIsNDY1Nyw5MzE0LDE4NjI4XSxlZT1mdW5jdGlvbihtZSxwZSl7cmV0dXJu'@; put 'IGZ1bmN0aW9uKG1lKXtyZXR1cm4gMjU1JihtZT4+MXxtZTw8Nyl9KG1lXnBlKX07cmV0dXJuIGZ1bmN0aW9uKHBlKXtmb3IodmFyIGJlPWs0KHBlKSxQZT1mdW5jdGlvbihtZSl7Zm9yKHZhciBwZT1PW21lLmxlbmd0aC0xXSxiZT0xMDQsUGU9bWUubGVuZ3RoLTE7UGU+PTA7LS1QZSlmb3Io'@; put 'dmFyIFZlPW1lW1BlXSxZZT0wOzchPVllOysrWWUpNjQmVmUmJihwZV49a1tiZV0pLFZlKj0yLC0tYmU7cmV0dXJuIHBlfShiZSksVmU9YmUubGVuZ3RoLFllPXooMTYpLGV0PTA7MTYhPWV0OysrZXQpWWVbZXRdPTA7dmFyIGl0O2ZvcighKDEmflZlKSYmKFllW1ZlXT1lZShTWzBdLFBlPj44'@; put 'KSxZZVstLVZlXT1lZShiZVtiZS5sZW5ndGgtMV0sMjU1JlBlKSk7VmU+MDspWWVbLS1WZV09ZWUoYmVbVmVdLFBlPj44KSxZZVstLVZlXT1lZShiZVtWZV0sMjU1JlBlKTtmb3IoVmU9MTUsaXQ9MTUtYmUubGVuZ3RoO2l0PjA7KVllW1ZlXT1lZShTW2l0XSxQZT4+OCksLS1pdCxZZVstLVZl'@; put 'XT1lZShiZVtWZV0sMjU1JlBlKSwtLVZlLC0taXQ7cmV0dXJuIFllfX0oKTt2YXIgUHY9ZnVuY3Rpb24oKXtmdW5jdGlvbiBTKGVlLG9lKXtzd2l0Y2gob2UudHlwZSl7Y2FzZSJiYXNlNjQiOnJldHVybiBPKF9lLmRlY29kZShlZSksb2UpO2Nhc2UiYmluYXJ5IjpyZXR1cm4gTyhlZSxvZSk7'@; put 'Y2FzZSJidWZmZXIiOnJldHVybiBPKGVlLnRvU3RyaW5nKCJiaW5hcnkiKSxvZSk7Y2FzZSJhcnJheSI6cmV0dXJuIE8odXQoZWUpLG9lKX10aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCB0eXBlICIrb2UudHlwZSl9ZnVuY3Rpb24gTyhlZSxvZSl7dmFyIHBlPShvZXx8e30pLmRlbnNl'@; put 'P1tdOnt9O2lmKCFlZS5tYXRjaCgvXFx0cm93ZC8pKXRocm93IG5ldyBFcnJvcigiUlRGIG1pc3NpbmcgdGFibGUiKTtyZXR1cm4gcGVbIiFyZWYiXT1yYSh7czp7YzowLHI6MH0sZTp7YzowLHI6MH19KSxwZX1yZXR1cm57dG9fd29ya2Jvb2s6ZnVuY3Rpb24gayhlZSxvZSl7cmV0dXJuIHRo'@; put 'KFMoZWUsb2UpLG9lKX0sdG9fc2hlZXQ6Uyxmcm9tX3NoZWV0OmZ1bmN0aW9uIEsoZWUpe2Zvcih2YXIgcGUsb2U9WyJ7XFxydGYxXFxhbnNpIl0sbWU9c3MoZWVbIiFyZWYiXSksYmU9QXJyYXkuaXNBcnJheShlZSksUGU9bWUucy5yO1BlPD1tZS5lLnI7KytQZSl7b2UucHVzaCgiXFx0cm93'@; put 'ZFxcdHJhdXRvZml0MSIpO2Zvcih2YXIgVmU9bWUucy5jO1ZlPD1tZS5lLmM7KytWZSlvZS5wdXNoKCJcXGNlbGx4IisoVmUrMSkpO2ZvcihvZS5wdXNoKCJcXHBhcmRcXGludGJsIiksVmU9bWUucy5jO1ZlPD1tZS5lLmM7KytWZSl7dmFyIFllPXFpKHtyOlBlLGM6VmV9KTsocGU9YmU/KGVl'@; put 'W1BlXXx8W10pW1ZlXTplZVtZZV0pJiYobnVsbCE9cGUudnx8cGUuZiYmIXBlLkYpJiYob2UucHVzaCgiICIrKHBlLnd8fCh5bChwZSkscGUudykpKSxvZS5wdXNoKCJcXGNlbGwiKSl9b2UucHVzaCgiXFxwYXJkXFxpbnRibFxccm93Iil9cmV0dXJuIG9lLmpvaW4oIiIpKyJ9In19fSgpO2Z1'@; put 'bmN0aW9uIGI1KFMpe3ZhciBPPVMuc2xpY2UoIiMiPT09U1swXT8xOjApLnNsaWNlKDAsNik7cmV0dXJuW3BhcnNlSW50KE8uc2xpY2UoMCwyKSwxNikscGFyc2VJbnQoTy5zbGljZSgyLDQpLDE2KSxwYXJzZUludChPLnNsaWNlKDQsNiksMTYpXX1mdW5jdGlvbiBwZChTKXtmb3IodmFyIE89'@; put 'MCxrPTE7MyE9TzsrK08paz0yNTYqaysoU1tPXT4yNTU/MjU1OlNbT108MD8wOlNbT10pO3JldHVybiBrLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpLnNsaWNlKDEpfWZ1bmN0aW9uIHNoKFMsTyl7aWYobnVsbD09UylyZXR1cm4gbnVsbCE9TztpZihudWxsPT1PKXJldHVybiEwO2lmKDE9'@; put 'PVMuYXV0byYmMT09Ty5hdXRvKXJldHVybiExO2lmKCEhUy5hdXRvIT0hIU8uYXV0b3x8bnVsbD09Uy50aGVtZSE9KG51bGw9PU8udGhlbWUpKXJldHVybiEwO2lmKG51bGwhPVMudGhlbWUpcmV0dXJuIFMudGhlbWUhPU8udGhlbWV8fFMudGludCE9Ty50aW50O2lmKG51bGw9PVMucmdiJiZu'@; put 'dWxsPT1PLnJnYilyZXR1cm4hMTt2YXIgaz1TLnJnYjsibnVtYmVyIj09dHlwZW9mIGsmJihrPWsudG9TdHJpbmcoMTYpKSxrPWsuc2xpY2UoLTYpO3ZhciBLPU8ucmdiO3JldHVybiJudW1iZXIiPT10eXBlb2YgSyYmKEs9Sy50b1N0cmluZygxNikpLEs9Sy5zbGljZSgtNiksay50b0xvd2Vy'@; put 'Q2FzZSgpIT1LLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gZ2soUyxPKXtyZXR1cm4gbnVsbD09Uz9udWxsIT1POm51bGw9PU8/bnVsbCE9UzpTLnN0eWxlIT1PLnN0eWxlfHxzaChTLmNvbG9yLE8uY29sb3IpfWZ1bmN0aW9uIF81KFMsTyl7aWYoMD09PU8pcmV0dXJuIFM7dmFyIGs9ZnVuY3Rp'@; put 'b24gVlYoUyl7dmFyIE89U1swXS8yNTUsaz1TWzFdLzI1NSxLPVNbMl0vMjU1LGVlPU1hdGgubWF4KE8sayxLKSxvZT1NYXRoLm1pbihPLGssSyksbWU9ZWUtb2U7aWYoMD09PW1lKXJldHVyblswLDAsT107dmFyIGJlLHBlPTAsUGU9ZWUrb2U7c3dpdGNoKGJlPW1lLyhQZT4xPzItUGU6UGUp'@; put 'LGVlKXtjYXNlIE86cGU9KChrLUspL21lKzYpJTY7YnJlYWs7Y2FzZSBrOnBlPShLLU8pL21lKzI7YnJlYWs7Y2FzZSBLOnBlPShPLWspL21lKzR9cmV0dXJuW3BlLzYsYmUsUGUvMl19KGI1KFMpKTtyZXR1cm4ga1syXT1PPDA/a1syXSooMStPKToxLSgxLWtbMl0pKigxLU8pLHBkKGZ1bmN0'@; put 'aW9uIHBrKFMpe3ZhciBiZSxrPVNbMV0sSz1TWzJdLGVlPTIqayooSzwuNT9LOjEtSyksb2U9Sy1lZS8yLG1lPVtvZSxvZSxvZV0scGU9NipTWzBdO2lmKDAhPT1rKXN3aXRjaCgwfHBlKXtjYXNlIDA6Y2FzZSA2OmJlPWVlKnBlLG1lWzBdKz1lZSxtZVsxXSs9YmU7YnJlYWs7Y2FzZSAxOm1l'@; put 'WzBdKz1iZT1lZSooMi1wZSksbWVbMV0rPWVlO2JyZWFrO2Nhc2UgMjpiZT1lZSoocGUtMiksbWVbMV0rPWVlLG1lWzJdKz1iZTticmVhaztjYXNlIDM6bWVbMV0rPWJlPWVlKig0LXBlKSxtZVsyXSs9ZWU7YnJlYWs7Y2FzZSA0OmJlPWVlKihwZS00KSxtZVsyXSs9ZWUsbWVbMF0rPWJlO2Jy'@; put 'ZWFrO2Nhc2UgNTptZVsyXSs9YmU9ZWUqKDYtcGUpLG1lWzBdKz1lZX1mb3IodmFyIFBlPTA7MyE9UGU7KytQZSltZVtQZV09TWF0aC5yb3VuZCgyNTUqbWVbUGVdKTtyZXR1cm4gbWV9KGspKX12YXIgbWs9Nix4Yz1taztmdW5jdGlvbiB3NShTKXtyZXR1cm4gTWF0aC5mbG9vcigoUytNYXRo'@; put 'LnJvdW5kKDEyOC94YykvMjU2KSp4Yyl9ZnVuY3Rpb24gQzUoUyl7cmV0dXJuIE1hdGguZmxvb3IoKFMtNSkveGMqMTAwKy41KS8xMDB9ZnVuY3Rpb24gT2YoUyl7cmV0dXJuIE1hdGgucm91bmQoKFMqeGMrNSkveGMqMjU2KS8yNTZ9ZnVuY3Rpb24gSjAoUyl7Uy5iZXN0Rml0JiZkZWxldGUg'@; put 'Uy5iZXN0Rml0LFMud2lkdGg/KFMud3B4PXc1KFMud2lkdGgpLFMud2NoPUM1KFMud3B4KSxTLk1EVz14Yyk6Uy53cHg/KFMud2NoPUM1KFMud3B4KSxTLndpZHRoPU9mKFMud2NoKSxTLk1EVz14Yyk6Im51bWJlciI9PXR5cGVvZiBTLndjaCYmKFMud2lkdGg9T2YoUy53Y2gpLFMud3B4PXc1'@; put 'KFMud2lkdGgpLFMuTURXPXhjKSxTLmN1c3RvbVdpZHRoJiZkZWxldGUgUy5jdXN0b21XaWR0aH12YXIgVW89OTYsUGY9VW87ZnVuY3Rpb24gWjMoUyl7cmV0dXJuIDcyKlMvUGZ9ZnVuY3Rpb24gb2goUyl7cmV0dXJuIFMqUGYvNzJ9ZnVuY3Rpb24gRmYoUyl7UGY9Uz17b3N4OjcyLHdpbjo5'@; put 'Nix3aW4xMDA6OTYsd2luMTI1OjEyMCx3aW4xNTA6MTQ0fVtTXXx8U3x8VW8sU0M9TTVbU119ZnVuY3Rpb24gSHYoUyl7Uy5ocHg/Uy5ocHQ9WjMoUy5ocHgpOlMuaHB0JiYoUy5ocHg9b2goUy5ocHQpKX12YXIgd0M9e05vbmU6Im5vbmUiLFNvbGlkOiJzb2xpZCIsR3JheTUwOiJtZWRpdW1H'@; put 'cmF5IixHcmF5NzU6ImRhcmtHcmF5IixHcmF5MjU6ImxpZ2h0R3JheSIsSG9yelN0cmlwZToiZGFya0hvcml6b250YWwiLFZlcnRTdHJpcGU6ImRhcmtWZXJ0aWNhbCIsUmV2ZXJzZURpYWdTdHJpcGU6ImRhcmtEb3duIixEaWFnU3RyaXBlOiJkYXJrVXAiLERpYWdDcm9zczoiZGFya0dyaWQi'@; put 'LFRoaWNrRGlhZ0Nyb3NzOiJkYXJrVHJlbGxpcyIsVGhpbkhvcnpTdHJpcGU6ImxpZ2h0SG9yaXpvbnRhbCIsVGhpblZlcnRTdHJpcGU6ImxpZ2h0VmVydGljYWwiLFRoaW5SZXZlcnNlRGlhZ1N0cmlwZToibGlnaHREb3duIixUaGluSG9yekNyb3NzOiJsaWdodEdyaWQifSxDQz1IZSh3Qyks'@; put 'UTY9e29yYW5nZToxNjc1MzkyMCxibGFjazowLG5hdnk6MTI4LGJsdWU6MjU1LGdyZWVuOjMyNzY4LHRlYWw6MzI4OTYsbGltZTo2NTI4MCxhcXVhOjY1NTM1LHNpbHZlcjoxMjYzMjI1NixtYXJvb246ODM4ODYwOCxwdXJwbGU6ODM4ODczNixvbGl2ZTo4NDIxMzc2LGdyYXk6ODQyMTUwNCxy'@; put 'ZWQ6MTY3MTE2ODAsZnVjaHNpYToxNjcxMTkzNSx5ZWxsb3c6MTY3NzY5NjAsd2hpdGU6MTY3NzcyMTV9O2Z1bmN0aW9uIFM1KFMsTyl7aWYoUy5yZXBsYWNlKCIjIiwiIikubWF0Y2goL15bMC05YS1mQS1GXXs2fSQvKSlyZXR1cm4gcGFyc2VJbnQoUy5yZXBsYWNlKCIjIiwiIiksMTYpO2lm'@; put 'KFE2W1NdKXJldHVybiBRNltTXTt2YXIgaz1TLm1hdGNoKC9yZ2JcKFxzKihcZCopXHMqLFxzKihcZCopXHMqLFxzKihcZCopXHMqXCkvKTtpZihrKXJldHVybigra1sxXTw8MTYpKygra1syXTw8OCkrICtrWzNdO2lmKGs9Uy5tYXRjaCgvcmdiYVwoXHMqKFxkKilccyosXHMqKFxkKilccyos'@; put 'XHMqKFxkKilccyooXGQqKS8pKXJldHVybiAwIT0oa1s0XSYma1s0XS5sZW5ndGg+MCYmK2tbNF18fDApfHwra1sxXT4wfHwra1syXT4wfHwra1szXT4wPygra1sxXTw8MTYpKygra1syXTw8OCkrICtrWzNdOk8/LTE6MTY3NzcyMTU7dGhyb3cgbmV3IEVycm9yKCJVbmtub3duIEhUTUwgY29s'@; put 'b3IgIitTKX12YXIgTTU9e307ZnVuY3Rpb24gTnYoUyl7Uz1TfHw5Njt2YXIgTz17Q2FsaWJyaTpbXSxBcmlhbDpbXSwiU3Bhcmthc3NlIFJnIjpbXSxcdTViOGJcdTRmNTM6W10sXHU2ZTM4XHUzMGI0XHUzMGI3XHUzMGMzXHUzMGFmOltdLCJDZW50dXJ5IEdvdGhpYyI6W119O3JldHVybiBP'@; put 'LkNhbGlicmlbMTFdPTcsTy5DYWxpYnJpWzEyXT17NzI6Niw5Njo4LDEyMDoxMCwxNDQ6MTJ9W1NdfHw4LE8uQ2FsaWJyaVsxM109MTAsTy5DYWxpYnJpWzE0XT0xMSxPLkNhbGlicmlbMTZdPTEyLE8uQ2FsaWJyaVsxOF09MTQsTy5DYWxpYnJpWzIwXT0xNixPLlx1NWI4Ylx1NGY1M1sxMV09'@; put 'OCxPLlx1NmUzOFx1MzBiNFx1MzBiN1x1MzBjM1x1MzBhZlsxMV09OCxPWyJTcGFya2Fzc2UgUmciXVsxMV09NyxPLkFyaWFsWzEwXT03LE9bIkNlbnR1cnkgR290aGljIl1bMTJdPTksT31NNVs3Ml09TnYoNzIpLE01Wzk2XT1Odig5NiksTTVbMTIwXT1OdigxMjApLE01WzE0NF09TnYoMTQ0'@; put 'KTt2YXIgU0M9TTVbOTZdO2Z1bmN0aW9uIE1DKFMpe3JldHVybihTQ1tTLm5hbWV8fFMuRm9udE5hbWVdfHxbXSlbUy5zenx8Uy5TaXplXX1mdW5jdGlvbiBJNChTKXtpZihTKXt2YXIgTz1NQyhTKTtpZihPKXJldHVybiB4Yz1PfXJldHVybiB4Yz02fWZ1bmN0aW9uIHhDKFMsTyxrKXtyZXR1'@; put 'cm4gcGQoZnVuY3Rpb24gdmsoUyxPLGspe3JldHVybltNYXRoLnJvdW5kKE9bMF0qaytTWzBdKigxLWspKSxNYXRoLnJvdW5kKE9bMV0qaytTWzFdKigxLWspKSxNYXRoLnJvdW5kKE9bMl0qaytTWzJdKigxLWspKV19KGI1KCJudW1iZXIiPT10eXBlb2YgUy5yZ2I/KCIwMDAwMCIrUy50b1N0'@; put 'cmluZygxNikpLnNsaWNlKC02KTpTLnJnYiksYjUoIm51bWJlciI9PXR5cGVvZiBPLnJnYj8oIjAwMDAwIitPLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTYpOk8ucmdiKSxrKSl9ZnVuY3Rpb24gVnYoUyxPLGspe2lmKGspc3dpdGNoKCtTKXtjYXNlIDY0OlM9NjU7YnJlYWs7Y2FzZSA2NTpTPTY0'@; put 'fXZhciBLPU8mJk9bK1NdfHx0MFsrU118fHp3WytTLTIwMF07aWYoODE9PStTJiYoSz10MFsxXSksS3x8KEs9dDBbMV0pLCFLKXRocm93IG5ldyBFcnJvcigiYmFkIElDViBpbmRleCAiK1MpO3JldHVybiBwZChLKX1mdW5jdGlvbiB5ayhTLE8sayl7dmFyIEs9e307cmV0dXJuIG51bGwhPVMu'@; put 'aW5kZXhlZCYmKEsuaW5kZXg9cGFyc2VJbnQoUy5pbmRleGVkLDEwKSxLLnJnYj1WdihLLmluZGV4LE8uSW5kZXhlZCkpLG51bGwhPVMudGhlbWUmJihLLnRoZW1lPXBhcnNlSW50KFMudGhlbWUsMTApKSxudWxsIT1TLnRpbnQmJihLLnRpbnQ9cGFyc2VGbG9hdChTLnRpbnQpKSxudWxsIT1T'@; put 'LnJnYiYmKEsucmdiPVMucmdiLnNsaWNlKC02KSksbnVsbCE9Sy50aGVtZSYmIUsucmdiJiZrLnRoZW1lRWxlbWVudHMmJihLLnJnYj1fNShrLnRoZW1lRWxlbWVudHMuY2xyU2NoZW1lW0sudGhlbWVdLnJnYixLLnRpbnR8fDApLEsucmF3X3JnYj1rLnRoZW1lRWxlbWVudHMuY2xyU2NoZW1l'@; put 'W0sudGhlbWVdLnJnYiksS31mdW5jdGlvbiBFQyhTLE8sayxLKXtPLkJvcmRlcnM9W107dmFyIGVlPXt9LG9lPXt9LG1lPSExOyhTWzBdLm1hdGNoKHRuKXx8W10pLmZvckVhY2goZnVuY3Rpb24ocGUpe3ZhciBiZT15cihwZSk7c3dpdGNoKEduKGJlWzBdKSl7Y2FzZSI8Ym9yZGVycyI6Y2Fz'@; put 'ZSI8Ym9yZGVycz4iOmNhc2UiPC9ib3JkZXJzPiI6Y2FzZSI8L2JvcmRlcj4iOmNhc2UiPGxlZnQvPiI6Y2FzZSI8L2xlZnQ+IjpjYXNlIjxyaWdodC8+IjpjYXNlIjwvcmlnaHQ+IjpjYXNlIjx0b3AvPiI6Y2FzZSI8L3RvcD4iOmNhc2UiPGJvdHRvbS8+IjpjYXNlIjwvYm90dG9tPiI6Y2Fz'@; put 'ZSI8ZGlhZ29uYWwiOmNhc2UiPGRpYWdvbmFsPiI6Y2FzZSI8ZGlhZ29uYWwvPiI6Y2FzZSI8aG9yaXpvbnRhbCI6Y2FzZSI8aG9yaXpvbnRhbD4iOmNhc2UiPGhvcml6b250YWwvPiI6Y2FzZSI8dmVydGljYWwiOmNhc2UiPHZlcnRpY2FsPiI6Y2FzZSI8dmVydGljYWwvPiI6Y2FzZSI8c3Rh'@; put 'cnQiOmNhc2UiPHN0YXJ0PiI6Y2FzZSI8c3RhcnQvPiI6Y2FzZSI8L3N0YXJ0PiI6Y2FzZSI8ZW5kIjpjYXNlIjxlbmQ+IjpjYXNlIjxlbmQvPiI6Y2FzZSI8L2VuZD4iOmNhc2UiPGNvbG9yLz4iOmNhc2UiPC9jb2xvcj4iOmNhc2UiPGV4dExzdCI6Y2FzZSI8ZXh0THN0PiI6Y2FzZSI8L2V4'@; put 'dExzdD4iOmJyZWFrO2Nhc2UiPGJvcmRlciI6Y2FzZSI8Ym9yZGVyPiI6Y2FzZSI8Ym9yZGVyLz4iOmVlPXt9LGJlLmRpYWdvbmFsVXAmJihlZS5kaWFnb25hbFVwPWVpKGJlLmRpYWdvbmFsVXApKSxiZS5kaWFnb25hbERvd24mJihlZS5kaWFnb25hbERvd249ZWkoYmUuZGlhZ29uYWxEb3du'@; put 'KSksTy5Cb3JkZXJzLnB1c2goZWUpO2JyZWFrO2Nhc2UiPGxlZnQiOmNhc2UiPGxlZnQ+IjpvZT1lZS5sZWZ0PXt9LGJlLnN0eWxlJiYob2Uuc3R5bGU9YmUuc3R5bGUpO2JyZWFrO2Nhc2UiPHJpZ2h0IjpjYXNlIjxyaWdodD4iOm9lPWVlLnJpZ2h0PXt9LGJlLnN0eWxlJiYob2Uuc3R5bGU9'@; put 'YmUuc3R5bGUpO2JyZWFrO2Nhc2UiPHRvcCI6Y2FzZSI8dG9wPiI6b2U9ZWUudG9wPXt9LGJlLnN0eWxlJiYob2Uuc3R5bGU9YmUuc3R5bGUpO2JyZWFrO2Nhc2UiPGJvdHRvbSI6Y2FzZSI8Ym90dG9tPiI6b2U9ZWUuYm90dG9tPXt9LGJlLnN0eWxlJiYob2Uuc3R5bGU9YmUuc3R5bGUpO2Jy'@; put 'ZWFrO2Nhc2UiPC9kaWFnb25hbD4iOmVlLmRpYWdvbmFsPW9lLG9lPXt9O2JyZWFrO2Nhc2UiPC9ob3Jpem9udGFsPiI6ZWUuaG9yaXpvbnRhbD1vZSxvZT17fTticmVhaztjYXNlIjwvdmVydGljYWw+IjplZS52ZXJ0aWNhbD1vZSxvZT17fTticmVhaztjYXNlIjxjb2xvciI6Y2FzZSI8Y29s'@; put 'b3I+IjpvZS5jb2xvcnx8KG9lLmNvbG9yPXt9KSxiZS5hdXRvJiYob2UuY29sb3IuYXV0bz1laShiZS5hdXRvKSksbnVsbCE9YmUucmdiP29lLmNvbG9yLnJnYj1iZS5yZ2Iuc2xpY2UoLTYpOmJlLmluZGV4ZWQ/KG9lLmNvbG9yLmluZGV4PXBhcnNlSW50KGJlLmluZGV4ZWQsMTApLG9lLmNv'@; put 'bG9yLnJnYj1WdihvZS5jb2xvci5pbmRleCxPLkluZGV4ZWQsITEpKTpiZS50aGVtZSYmKG9lLmNvbG9yLnRoZW1lPXBhcnNlSW50KGJlLnRoZW1lLDEwKSxiZS50aW50JiYob2UuY29sb3IudGludD1wYXJzZUZsb2F0KGJlLnRpbnQpKSxiZS50aGVtZSYmay50aGVtZUVsZW1lbnRzJiZrLnRo'@; put 'ZW1lRWxlbWVudHMuY2xyU2NoZW1lJiYob2UuY29sb3IucmdiPV81KGsudGhlbWVFbGVtZW50cy5jbHJTY2hlbWVbb2UuY29sb3IudGhlbWVdLnJnYixvZS5jb2xvci50aW50fHwwKSkpLCFiZS5hdXRvJiZudWxsPT1iZS5yZ2ImJiFiZS5pbmRleGVkJiZkZWxldGUgb2UuY29sb3I7YnJlYWs7'@; put 'Y2FzZSI8ZXh0IjptZT0hMDticmVhaztjYXNlIjwvZXh0PiI6bWU9ITE7YnJlYWs7ZGVmYXVsdDppZihLJiZLLldURiYmIW1lKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkICIrYmVbMF0rIiBpbiBib3JkZXJzIil9fSl9ZnVuY3Rpb24gUjQoUyxPKXt2YXIgaz1bIjwiK09dO3JldHVy'@; put 'biBTJiZTLnN0eWxlPyhrLnB1c2goJyBzdHlsZT0iJytTLnN0eWxlKyciJyksUy5jb2xvcj8oay5wdXNoKCI+Iiksay5wdXNoKG1kKFMuY29sb3IsITApKSxrLmpvaW4oIiIpKyI8LyIrTysiPiIpOmsuam9pbigiIikrIi8+Iik6a1swXSsiLz4ifWZ1bmN0aW9uIEJWKFMsTyxrLEspe08uRmls'@; put 'bHM9W107dmFyIGVlPXt9LG9lPXt9LG1lPSExLHBlPSExOyhTWzBdLm1hdGNoKHRuKXx8W10pLmZvckVhY2goZnVuY3Rpb24oYmUpe3ZhciBQZT15cihiZSk7c3dpdGNoKEduKFBlWzBdKSl7Y2FzZSI8ZmlsbHMiOmNhc2UiPGZpbGxzPiI6Y2FzZSI8L2ZpbGxzPiI6Y2FzZSI8L2ZpbGw+Ijpj'@; put 'YXNlIjwvZ3JhZGllbnRGaWxsPiI6Y2FzZSI8YmdDb2xvci8+IjpjYXNlIjwvYmdDb2xvcj4iOmNhc2UiPGZnQ29sb3IvPiI6Y2FzZSI8L2ZnQ29sb3I+IjpjYXNlIjxjb2xvci8+IjpjYXNlIjwvY29sb3I+IjpjYXNlIjxzdG9wLz4iOmNhc2UiPGV4dExzdCI6Y2FzZSI8ZXh0THN0PiI6Y2Fz'@; put 'ZSI8L2V4dExzdD4iOmJyZWFrO2Nhc2UiPGZpbGw+IjpjYXNlIjxmaWxsIjpjYXNlIjxmaWxsLz4iOk8uRmlsbHMucHVzaChlZT17fSk7YnJlYWs7Y2FzZSI8Z3JhZGllbnRGaWxsPiI6ZWUuc3RvcHM9W107YnJlYWs7Y2FzZSI8Z3JhZGllbnRGaWxsIjplZS5zdG9wcz1bXSxQZS5kZWdyZWUm'@; put 'JihlZS5hbmdsZT0rUGUuZGVncmVlKTticmVhaztjYXNlIjxwYXR0ZXJuRmlsbCI6Y2FzZSI8cGF0dGVybkZpbGw+IjpQZS5wYXR0ZXJuVHlwZSYmKGVlLnBhdHRlcm5UeXBlPVBlLnBhdHRlcm5UeXBlKTticmVhaztjYXNlIjxwYXR0ZXJuRmlsbC8+IjpjYXNlIjwvcGF0dGVybkZpbGw+Ijpp'@; put 'ZihtZSl0aHJvdyBuZXcgRXJyb3IoImJhZCBzdG9wIik7YnJlYWs7Y2FzZSI8Y29sb3IiOmNhc2UiPGJnQ29sb3IiOmNhc2UiPGZnQ29sb3IiOnZhciBWZT1HbihQZVswXSkuc2xpY2UoMSk7ImNvbG9yIiE9VmUmJiFlZVtWZV0mJihlZVtWZV09e30pO3ZhciBZZT1tZT9vZTplZVtWZV07bnVs'@; put 'bCE9UGUuaW5kZXhlZCYmKFllLmluZGV4PXBhcnNlSW50KFBlLmluZGV4ZWQsMTApLFllLnJnYj1WdihZZS5pbmRleCxPLkluZGV4ZWQpKSxudWxsIT1QZS50aGVtZSYmKFllLnRoZW1lPXBhcnNlSW50KFBlLnRoZW1lLDEwKSksbnVsbCE9UGUudGludCYmKFllLnRpbnQ9cGFyc2VGbG9hdChQ'@; put 'ZS50aW50KSksbnVsbCE9UGUucmdiJiYoWWUucmdiPVBlLnJnYi5zbGljZSgtNikpLG51bGwhPVBlLmF1dG8mJmRlbGV0ZSBlZVtWZV0sbnVsbCE9WWUudGhlbWUmJiFZZS5yZ2ImJmsudGhlbWVFbGVtZW50cyYmKFllLnJnYj1fNShrLnRoZW1lRWxlbWVudHMuY2xyU2NoZW1lW1llLnRoZW1l'@; put 'XS5yZ2IsWWUudGludHx8MCksSy5XVEYmJihZZS5yYXdfcmdiPWsudGhlbWVFbGVtZW50cy5jbHJTY2hlbWVbWWUudGhlbWVdLnJnYikpO2JyZWFrO2Nhc2UiPHN0b3A+IjptZT0hMCxvZT17fTticmVhaztjYXNlIjxzdG9wIjptZT0hMCxvZT17fSxudWxsIT1QZS5wb3NpdGlvbiYmKG9lLnY9'@; put 'cGFyc2VGbG9hdChQZS5wb3NpdGlvbikpO2JyZWFrO2Nhc2UiPC9zdG9wPiI6bWU9ITEsZWUuc3RvcHMucHVzaChvZSk7YnJlYWs7Y2FzZSI8ZXh0IjpwZT0hMDticmVhaztjYXNlIjwvZXh0PiI6cGU9ITE7YnJlYWs7ZGVmYXVsdDppZihLJiZLLldURiYmIXBlKXRocm93IG5ldyBFcnJvcigi'@; put 'dW5yZWNvZ25pemVkICIrUGVbMF0rIiBpbiBmaWxscyIpfX0pfWZ1bmN0aW9uIGpWKFMsTyxrLEspe08uRm9udHM9W107dmFyIGVlPXt9LG9lPSExOyhTWzBdLm1hdGNoKHRuKXx8W10pLmZvckVhY2goZnVuY3Rpb24obWUpe3ZhciBwZT15cihtZSk7c3dpdGNoKEduKHBlWzBdKSl7Y2FzZSI8'@; put 'Zm9udHMiOmNhc2UiPGZvbnRzPiI6Y2FzZSI8L2ZvbnRzPiI6YnJlYWs7Y2FzZSI8Zm9udCI6Y2FzZSI8Zm9udD4iOmlmKCIvPiIhPW1lLnNsaWNlKC0yKSlicmVhaztjYXNlIjwvZm9udD4iOmNhc2UiPGZvbnQvPiI6Ty5Gb250cy5wdXNoKGVlKSxlZT17fTticmVhaztjYXNlIjxuYW1lIjpw'@; put 'ZS52YWwmJihlZS5uYW1lPWZzKHBlLnZhbCkpO2JyZWFrO2Nhc2UiPG5hbWUvPiI6Y2FzZSI8L25hbWU+IjpicmVhaztjYXNlIjxiIjplZS5ib2xkPXBlLnZhbD9laShwZS52YWwpOjE7YnJlYWs7Y2FzZSI8Yi8+IjpjYXNlIjxiPiI6ZWUuYm9sZD0xO2JyZWFrO2Nhc2UiPC9iPiI6YnJlYWs7'@; put 'Y2FzZSI8aSI6ZWUuaXRhbGljPXBlLnZhbD9laShwZS52YWwpOjE7YnJlYWs7Y2FzZSI8aS8+IjpjYXNlIjxpPiI6ZWUuaXRhbGljPTE7YnJlYWs7Y2FzZSI8L2k+IjpicmVhaztjYXNlIjx1Ijpzd2l0Y2gocGUudmFsKXtjYXNlIm5vbmUiOmVlLnVuZGVybGluZT0wO2JyZWFrO2Nhc2Uic2lu'@; put 'Z2xlIjplZS51bmRlcmxpbmU9MTticmVhaztjYXNlImRvdWJsZSI6ZWUudW5kZXJsaW5lPTI7YnJlYWs7Y2FzZSJzaW5nbGVBY2NvdW50aW5nIjplZS51bmRlcmxpbmU9MzM7YnJlYWs7Y2FzZSJkb3VibGVBY2NvdW50aW5nIjplZS51bmRlcmxpbmU9MzR9YnJlYWs7Y2FzZSI8dS8+IjpjYXNl'@; put 'Ijx1PiI6ZWUudW5kZXJsaW5lPTE7YnJlYWs7Y2FzZSI8L3U+IjpicmVhaztjYXNlIjxzdHJpa2UiOmVlLnN0cmlrZT1wZS52YWw/ZWkocGUudmFsKToxO2JyZWFrO2Nhc2UiPHN0cmlrZS8+IjplZS5zdHJpa2U9MTticmVhaztjYXNlIjxvdXRsaW5lIjplZS5vdXRsaW5lPXBlLnZhbD9laShw'@; put 'ZS52YWwpOjE7YnJlYWs7Y2FzZSI8b3V0bGluZS8+IjplZS5vdXRsaW5lPTE7YnJlYWs7Y2FzZSI8c2hhZG93IjplZS5zaGFkb3c9cGUudmFsP2VpKHBlLnZhbCk6MTticmVhaztjYXNlIjxzaGFkb3cvPiI6ZWUuc2hhZG93PTE7YnJlYWs7Y2FzZSI8Y29uZGVuc2UiOmVlLmNvbmRlbnNlPXBl'@; put 'LnZhbD9laShwZS52YWwpOjE7YnJlYWs7Y2FzZSI8Y29uZGVuc2UvPiI6ZWUuY29uZGVuc2U9MTticmVhaztjYXNlIjxleHRlbmQiOmVlLmV4dGVuZD1wZS52YWw/ZWkocGUudmFsKToxO2JyZWFrO2Nhc2UiPGV4dGVuZC8+IjplZS5leHRlbmQ9MTticmVhaztjYXNlIjxzeiI6cGUudmFsJiYo'@; put 'ZWUuc3o9K3BlLnZhbCk7YnJlYWs7Y2FzZSI8c3ovPiI6Y2FzZSI8L3N6PiI6YnJlYWs7Y2FzZSI8dmVydEFsaWduIjoibm9uZSIhPShwZS52YWx8fCJub25lIikmJihlZS52YWxpZ249cGUudmFsLnJlcGxhY2UoInNjcmlwdCIsIiIpKTticmVhaztjYXNlIjx2ZXJ0QWxpZ24vPiI6Y2FzZSI8'@; put 'L3ZlcnRBbGlnbj4iOmJyZWFrO2Nhc2UiPGZhbWlseSI6cGUudmFsJiYoZWUuZmFtaWx5PXBhcnNlSW50KHBlLnZhbCwxMCkpO2JyZWFrO2Nhc2UiPGZhbWlseS8+IjpjYXNlIjwvZmFtaWx5PiI6YnJlYWs7Y2FzZSI8c2NoZW1lIjpwZS52YWwmJihlZS5zY2hlbWU9cGUudmFsKTticmVhaztj'@; put 'YXNlIjxzY2hlbWUvPiI6Y2FzZSI8L3NjaGVtZT4iOmJyZWFrO2Nhc2UiPGNoYXJzZXQiOmlmKCIxIj09cGUudmFsKWJyZWFrO3BlLmNvZGVwYWdlPVBbcGFyc2VJbnQocGUudmFsLDEwKV07YnJlYWs7Y2FzZSI8Y29sb3IiOmVlLmNvbG9yfHwoZWUuY29sb3I9e30pLHBlLmF1dG8mJihlZS5j'@; put 'b2xvci5hdXRvPWVpKHBlLmF1dG8pKSxwZS5yZ2I/ZWUuY29sb3IucmdiPXBlLnJnYi5zbGljZSgtNik6cGUuaW5kZXhlZD8oZWUuY29sb3IuaW5kZXg9cGFyc2VJbnQocGUuaW5kZXhlZCwxMCksZWUuY29sb3IucmdiPVZ2KGVlLmNvbG9yLmluZGV4LE8uSW5kZXhlZCkpOnBlLnRoZW1lJiYo'@; put 'ZWUuY29sb3IudGhlbWU9cGFyc2VJbnQocGUudGhlbWUsMTApLHBlLnRpbnQmJihlZS5jb2xvci50aW50PXBhcnNlRmxvYXQocGUudGludCkpLHBlLnRoZW1lJiZrLnRoZW1lRWxlbWVudHMmJmsudGhlbWVFbGVtZW50cy5jbHJTY2hlbWUmJihlZS5jb2xvci5yZ2I9XzUoay50aGVtZUVsZW1l'@; put 'bnRzLmNsclNjaGVtZVtlZS5jb2xvci50aGVtZV0ucmdiLGVlLmNvbG9yLnRpbnR8fDApKSk7YnJlYWs7Y2FzZSI8Y29sb3IvPiI6Y2FzZSI8L2NvbG9yPiI6YnJlYWs7Y2FzZSI8QWx0ZXJuYXRlQ29udGVudCI6b2U9ITA7YnJlYWs7Y2FzZSI8L0FsdGVybmF0ZUNvbnRlbnQ+IjpvZT0hMTti'@; put 'cmVhaztjYXNlIjxleHRMc3QiOmNhc2UiPGV4dExzdD4iOmNhc2UiPC9leHRMc3Q+IjpicmVhaztjYXNlIjxleHQiOm9lPSEwO2JyZWFrO2Nhc2UiPC9leHQ+IjpvZT0hMTticmVhaztkZWZhdWx0OmlmKEsmJksuV1RGJiYhb2UpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitwZVsw'@; put 'XSsiIGluIGZvbnRzIil9fSl9dmFyIHg1PXswOiJub25lIiwxOiJzaW5nbGUiLDI6ImRvdWJsZSIsMzM6InNpbmdsZUFjY291bnRpbmciLDM0OiJkb3VibGVBY2NvdW50aW5nIn0sVzM9WyJudW1GbXRJZCIsImZpbGxJZCIsImZvbnRJZCIsImJvcmRlcklkIiwieGZJZCJdLFkzPVsiYXBwbHlB'@; put 'bGlnbm1lbnQiLCJhcHBseUJvcmRlciIsImFwcGx5RmlsbCIsImFwcGx5Rm9udCIsImFwcGx5TnVtYmVyRm9ybWF0IiwiYXBwbHlQcm90ZWN0aW9uIiwicGl2b3RCdXR0b24iLCJxdW90ZVByZWZpeCJdLEw0PWZ1bmN0aW9uKCl7dmFyIFM9LzwoPzpcdys6KT9mb250KFtePl0qKT5bXFNcc10q'@; put 'PzxcLyg/Olx3KzopP2ZvbnQ+LyxPPS88KD86XHcrOik/bnVtRm10KFtePl0qKVwvPi8saz0vPCg/Olx3KzopP2ZpbGwoW14+XSopPltcU1xzXSo/PFwvKD86XHcrOik/ZmlsbD4vLGVlPS88KD86XHcrOik/Ym9yZGVyKFtePl0qKT5bXFNcc10qPzxcLyg/Olx3KzopP2JvcmRlcj4vO3JldHVy'@; put 'biBmdW5jdGlvbihwZSxiZSxQZSxWZSl7dmFyIGN0LFR0LFllPXt9LGV0PXt9O3JldHVybihjdD1wZS5tYXRjaChTKSkmJihqVihjdCxZZSxQZSxWZSksKFllLkZvbnRzfHxbXSlbMF0mJlB0KGV0LFllLkZvbnRzWzBdKSksKGN0PXBlLm1hdGNoKE8pKSYmKFR0PXlyKGZzKGN0WzBdKSksZXQu'@; put 'ej1UdC5mb3JtYXRDb2RlP1FyKFR0LmZvcm1hdENvZGUpOihiZS5OdW1iZXJGbXR8fFtdKVsrVHQubnVtRm10SWRdfHwiR2VuZXJhbCIpLChjdD1wZS5tYXRjaChrKSkmJihCVihjdCxZZSxQZSxWZSksKFllLkZpbGxzfHxbXSlbMF0mJlB0KGV0LFllLkZpbGxzWzBdKSksKGN0PXBlLm1hdGNo'@; put 'KGVlKSkmJihFQyhjdCxZZSxQZSxWZSksKFllLkJvcmRlcnN8fFtdKVswXSYmUHQoZXQsWWUuQm9yZGVyc1swXSkpLGV0fX0oKSxRaT0vPCg/Olx3KzopP2R4Zj5bXFNcc10qPzxcLyg/Olx3KzopP2R4Zj4vZyxLcj0vPCg/Olx3KzopP3RhYmxlU3R5bGVcYi4qPz5bXFNcc10qPzxcLyg/Olx3'@; put 'KzopP3RhYmxlU3R5bGU+L2c7dmFyIFNrPWZ1bmN0aW9uKCl7dmFyIE89LzwoPzpcdys6KT9udW1GbXRzKFtePl0qKT5bXFNcc10qPzxcLyg/Olx3KzopP251bUZtdHM+LyxrPS88KD86XHcrOik/Y2VsbFN0eWxlWGZzKFtePl0qKT5bXFNcc10qPzxcLyg/Olx3KzopP2NlbGxTdHlsZVhmcz4v'@; put 'LEs9LzwoPzpcdys6KT9jZWxsU3R5bGVzKFtePl0qKT5bXFNcc10qPzxcLyg/Olx3KzopP2NlbGxTdHlsZXM+LyxlZT0vPCg/Olx3KzopP2NlbGxYZnMoW14+XSopPltcU1xzXSo/PFwvKD86XHcrOik/Y2VsbFhmcz4vLG9lPS88KD86XHcrOik/ZmlsbHMoW14+XSopPltcU1xzXSo/PFwvKD86'@; put 'XHcrOik/ZmlsbHM+LyxtZT0vPCg/Olx3KzopP2ZvbnRzKFtePl0qKT5bXFNcc10qPzxcLyg/Olx3KzopP2ZvbnRzPi8scGU9LzwoPzpcdys6KT9ib3JkZXJzKFtePl0qKT5bXFNcc10qPzxcLyg/Olx3KzopP2JvcmRlcnM+LyxiZT0vPCg/Olx3KzopP2luZGV4ZWRDb2xvcnMoW14+XSopPltc'@; put 'U1xzXSo/PFwvKD86XHcrOik/aW5kZXhlZENvbG9ycz4vLFBlPS88KD86XHcrOik/dGFibGVTdHlsZXMoW14+XSopPltcU1xzXSo/PFwvKD86XHcrOik/dGFibGVTdHlsZXM+LyxWZT0vPCg/Olx3KzopP2R4ZnMoW14+XSopPltcU1xzXSo/PFwvKD86XHcrOik/ZHhmcz4vO3JldHVybiBmdW5j'@; put 'dGlvbihldCxjdCxUdCl7dmFyIGJ0LGl0PXt9O3JldHVybiBldD8oKGJ0PShldD1ldC5yZXBsYWNlKC88IS0tKFtcc1xTXSo/KS0tPi9nbSwiIikucmVwbGFjZSgvPCFET0NUWVBFW15cW10qXFtbXlxdXSpcXT4vZ20sIiIpKS5tYXRjaChiZSkpJiZmdW5jdGlvbiB6VihTLE8sayl7Ty5JbmRl'@; put 'eGVkfHwoTy5JbmRleGVkPVtdKTt2YXIgSz0hMTsoU1swXS5tYXRjaCh0bil8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGVlKXt2YXIgb2U9eXIoZWUpO3N3aXRjaChHbihvZVswXSkpe2Nhc2UiPGluZGV4ZWRDb2xvcnM+IjpjYXNlIjxpbmRleGVkQ29sb3JzIjpjYXNlIjxpbmRleGVkQ29sb3Jz'@; put 'Lz4iOmNhc2UiPC9pbmRleGVkQ29sb3JzPiI6Y2FzZSI8L3JnYkNvbG9yPiI6Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6YnJlYWs7Y2FzZSI8cmdiQ29sb3IiOmRlbGV0ZSBvZVswXTt2YXIgbWU9cGFyc2VJbnQob2UucmdiLnNsaWNlKC02KSwxNik7Ty5J'@; put 'bmRleGVkLnB1c2goW21lPj4xNiYyNTUsbWU+PjgmMjU1LDI1NSZtZV0pO2JyZWFrO2Nhc2UiPGV4dCI6Sz0hMDticmVhaztjYXNlIjwvZXh0PiI6Sz0hMTticmVhaztkZWZhdWx0OmlmKGsmJmsuV1RGJiYhSyl0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCAiK29lWzBdKyIgaW4gY2Vs'@; put 'bFN0eWxlcyIpfX0pfShidCxpdCxUdCksKGJ0PWV0Lm1hdGNoKE8pKSYmZnVuY3Rpb24gX2soUyxPLGspe08uTnVtYmVyRm10PVtdO2Zvcih2YXIgSz1SZShBLl90YWJsZSksZWU9MDtlZTxLLmxlbmd0aDsrK2VlKU8uTnVtYmVyRm10W0tbZWVdXT1BLl90YWJsZVtLW2VlXV07dmFyIG9lPVNb'@; put 'MF0ubWF0Y2godG4pO2lmKG9lKWZvcihlZT0wO2VlPG9lLmxlbmd0aDsrK2VlKXt2YXIgbWU9eXIob2VbZWVdKTtzd2l0Y2goR24obWVbMF0pKXtjYXNlIjxudW1GbXRzIjpjYXNlIjwvbnVtRm10cz4iOmNhc2UiPG51bUZtdHMvPiI6Y2FzZSI8bnVtRm10cz4iOmNhc2UiPC9udW1GbXQ+Ijpi'@; put 'cmVhaztjYXNlIjxudW1GbXQiOnZhciBwZT1RcihmcyhtZS5mb3JtYXRDb2RlKSksYmU9cGFyc2VJbnQobWUubnVtRm10SWQsMTApO2lmKE8uTnVtYmVyRm10W2JlXT1wZSxiZT4wKXtpZihiZT4zOTIpe2ZvcihiZT0zOTI7YmU+NjAmJm51bGwhPU8uTnVtYmVyRm10W2JlXTstLWJlKTtPLk51'@; put 'bWJlckZtdFtiZV09cGV9QS5sb2FkKHBlLGJlKX1icmVhaztkZWZhdWx0OmlmKGsuV1RGKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkICIrbWVbMF0rIiBpbiBudW1GbXRzIil9fX0oYnQsaXQsVHQpLChidD1ldC5tYXRjaChtZSkpJiZqVihidCxpdCxjdCxUdCksKGJ0PWV0Lm1hdGNo'@; put 'KG9lKSkmJkJWKGJ0LGl0LGN0LFR0KSwoYnQ9ZXQubWF0Y2gocGUpKSYmRUMoYnQsaXQsY3QsVHQpLChidD1ldC5tYXRjaChrKSkmJmZ1bmN0aW9uIGZuZShTLE8sayl7Ty5DZWxsU3R5bGVYZj1bXTt2YXIgSyxlZT0hMTsoU1swXS5tYXRjaCh0bil8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKG9l'@; put 'KXt2YXIgbWU9eXIob2UpLHBlPTA7c3dpdGNoKEduKG1lWzBdKSl7Y2FzZSI8Y2VsbFN0eWxlWGZzIjpjYXNlIjxjZWxsU3R5bGVYZnM+IjpjYXNlIjxjZWxsU3R5bGVYZnMvPiI6Y2FzZSI8L2NlbGxTdHlsZVhmcz4iOmNhc2UiPC94Zj4iOmNhc2UiPC9hbGlnbm1lbnQ+IjpjYXNlIjwvcHJv'@; put 'dGVjdGlvbj4iOmNhc2UiPHByb3RlY3Rpb24vPiI6Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6YnJlYWs7Y2FzZSI8eGYiOmNhc2UiPHhmLz4iOmZvcihkZWxldGUoSz1tZSlbMF0scGU9MDtwZTxXMy5sZW5ndGg7KytwZSlLW1czW3BlXV0mJihLW1czW3Bl'@; put 'XV09cGFyc2VJbnQoS1tXM1twZV1dLDEwKSk7Zm9yKHBlPTA7cGU8WTMubGVuZ3RoOysrcGUpS1tZM1twZV1dJiYoS1tZM1twZV1dPWVpKEtbWTNbcGVdXSkpO2lmKE8uTnVtYmVyRm10JiZLLm51bUZtdElkPjM5Milmb3IocGU9MzkyO3BlPjYwOy0tcGUpaWYoTy5OdW1iZXJGbXRbSy5udW1G'@; put 'bXRJZF09PU8uTnVtYmVyRm10W3BlXSl7Sy5udW1GbXRJZD1wZTticmVha31PLkNlbGxTdHlsZVhmLnB1c2goSyk7YnJlYWs7Y2FzZSI8YWxpZ25tZW50IjpjYXNlIjxhbGlnbm1lbnQvPiI6dmFyIGJlPXt9O21lLnZlcnRpY2FsJiYoYmUudmVydGljYWw9bWUudmVydGljYWwpLG1lLmhvcml6'@; put 'b250YWwmJihiZS5ob3Jpem9udGFsPW1lLmhvcml6b250YWwpLG51bGwhPW1lLnRleHRSb3RhdGlvbiYmKGJlLnRleHRSb3RhdGlvbj1tZS50ZXh0Um90YXRpb24pLG1lLmluZGVudCYmKGJlLmluZGVudD1tZS5pbmRlbnQpLG1lLndyYXBUZXh0JiYoYmUud3JhcFRleHQ9bWUud3JhcFRleHQp'@; put 'LG1lLnNocmlua1RvRml0JiYoYmUuc2hyaW5rVG9GaXQ9ZWkobWUuc2hyaW5rVG9GaXQpKSxLLmFsaWdubWVudD1iZTticmVhaztjYXNlIjxwcm90ZWN0aW9uIjpLLnByb3RlY3Rpb249e30sZWkobWUuaGlkZGVuKSYmKEsucHJvdGVjdGlvbi5oaWRkZW49ITApLG51bGwhPW1lLmxvY2tlZCYm'@; put 'KEsucHJvdGVjdGlvbi5lZGl0YWJsZT0hZWkobWUubG9ja2VkKSk7YnJlYWs7Y2FzZSI8ZXh0IjplZT0hMDticmVhaztjYXNlIjwvZXh0PiI6ZWU9ITE7YnJlYWs7ZGVmYXVsdDppZihrJiZrLldURiYmIWVlKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkICIrbWVbMF0rIiBpbiBjZWxs'@; put 'U3R5bGVYZnMiKX19KX0oYnQsaXQsVHQpLChidD1ldC5tYXRjaChLKSkmJmZ1bmN0aW9uIGduZShTLE8sayl7Ty5DZWxsU3R5bGVYZnx8KE8uQ2VsbFN0eWxlWGY9W10pO3ZhciBLPSExOyhTWzBdLm1hdGNoKHRuKXx8W10pLmZvckVhY2goZnVuY3Rpb24oZWUpe3ZhciBvZT15cihlZSk7c3dp'@; put 'dGNoKEduKG9lWzBdKSl7Y2FzZSI8Y2VsbFN0eWxlcyI6Y2FzZSI8Y2VsbFN0eWxlcz4iOmNhc2UiPGNlbGxTdHlsZXMvPiI6Y2FzZSI8L2NlbGxTdHlsZXM+IjpjYXNlIjwveGY+IjpjYXNlIjwvY2VsbFN0eWxlPiI6Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0'@; put 'PiI6YnJlYWs7Y2FzZSI8Y2VsbFN0eWxlIjpjYXNlIjxjZWxsU3R5bGUvPiI6ZGVsZXRlIG9lWzBdO3ZhciBtZT0rb2UueGZJZDtpZihPLkNlbGxTdHlsZVhmW21lXSlPLkNlbGxTdHlsZVhmW21lXS5zdHlsZT1mcyhvZS5uYW1lKTtlbHNlIGlmKCFvZS5idWlsdGluSWQpdGhyb3cgbmV3IEVy'@; put 'cm9yKCJDb3VsZCBub3QgZmluZCBDZWxsU3R5bGUgIittZSk7YnJlYWs7Y2FzZSI8ZXh0IjpLPSEwO2JyZWFrO2Nhc2UiPC9leHQ+IjpLPSExO2JyZWFrO2RlZmF1bHQ6aWYoayYmay5XVEYmJiFLKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkICIrb2VbMF0rIiBpbiBjZWxsU3R5bGVz'@; put 'Iil9fSl9KGJ0LGl0LFR0KSwoYnQ9ZXQubWF0Y2goZWUpKSYmZnVuY3Rpb24gd2soUyxPLGspe08uQ2VsbFhmPVtdO3ZhciBLLGVlPSExOyhTWzBdLm1hdGNoKHRuKXx8W10pLmZvckVhY2goZnVuY3Rpb24ob2Upe3ZhciBtZT15cihvZSkscGU9MDtzd2l0Y2goR24obWVbMF0pKXtjYXNlIjxj'@; put 'ZWxsWGZzIjpjYXNlIjxjZWxsWGZzPiI6Y2FzZSI8Y2VsbFhmcy8+IjpjYXNlIjwvY2VsbFhmcz4iOmNhc2UiPC94Zj4iOmNhc2UiPC9hbGlnbm1lbnQ+IjpjYXNlIjwvcHJvdGVjdGlvbj4iOmNhc2UiPHByb3RlY3Rpb24vPiI6Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwv'@; put 'ZXh0THN0PiI6YnJlYWs7Y2FzZSI8eGYiOmNhc2UiPHhmLz4iOmZvcihkZWxldGUoSz1tZSlbMF0scGU9MDtwZTxXMy5sZW5ndGg7KytwZSlLW1czW3BlXV0mJihLW1czW3BlXV09cGFyc2VJbnQoS1tXM1twZV1dLDEwKSk7Zm9yKHBlPTA7cGU8WTMubGVuZ3RoOysrcGUpS1tZM1twZV1dJiYo'@; put 'S1tZM1twZV1dPWVpKEtbWTNbcGVdXSkpO2lmKE8uTnVtYmVyRm10JiZLLm51bUZtdElkPjM5Milmb3IocGU9MzkyO3BlPjYwOy0tcGUpaWYoTy5OdW1iZXJGbXRbSy5udW1GbXRJZF09PU8uTnVtYmVyRm10W3BlXSl7Sy5udW1GbXRJZD1wZTticmVha31PLkNlbGxTdHlsZVhmJiZLLnhmSWQm'@; put 'Jk8uQ2VsbFN0eWxlWGZbSy54ZklkXSYmTy5DZWxsU3R5bGVYZltLLnhmSWRdLnN0eWxlJiYoSy5zdHlsZT1PLkNlbGxTdHlsZVhmW0sueGZJZF0uc3R5bGUpLE8uQ2VsbFhmLnB1c2goSyk7YnJlYWs7Y2FzZSI8YWxpZ25tZW50IjpjYXNlIjxhbGlnbm1lbnQvPiI6dmFyIGJlPXt9O21lLnZl'@; put 'cnRpY2FsJiYoYmUudmVydGljYWw9bWUudmVydGljYWwpLG1lLmhvcml6b250YWwmJihiZS5ob3Jpem9udGFsPW1lLmhvcml6b250YWwpLG51bGwhPW1lLnRleHRSb3RhdGlvbiYmKGJlLnRleHRSb3RhdGlvbj1tZS50ZXh0Um90YXRpb24pLG1lLmluZGVudCYmKGJlLmluZGVudD1tZS5pbmRl'@; put 'bnQpLG1lLndyYXBUZXh0JiYoYmUud3JhcFRleHQ9ZWkobWUud3JhcFRleHQpKSxtZS5zaHJpbmtUb0ZpdCYmKGJlLnNocmlua1RvRml0PWVpKG1lLnNocmlua1RvRml0KSksSy5hbGlnbm1lbnQ9YmU7YnJlYWs7Y2FzZSI8cHJvdGVjdGlvbiI6Sy5wcm90ZWN0aW9uPXt9LGVpKG1lLmhpZGRl'@; put 'bikmJihLLnByb3RlY3Rpb24uaGlkZGVuPSEwKSxudWxsIT1tZS5sb2NrZWQmJihLLnByb3RlY3Rpb24uZWRpdGFibGU9IWVpKG1lLmxvY2tlZCkpO2JyZWFrO2Nhc2UiPEFsdGVybmF0ZUNvbnRlbnQiOmNhc2UiPGV4dCI6ZWU9ITA7YnJlYWs7Y2FzZSI8L0FsdGVybmF0ZUNvbnRlbnQ+Ijpj'@; put 'YXNlIjwvZXh0PiI6ZWU9ITE7YnJlYWs7ZGVmYXVsdDppZihrJiZrLldURiYmIWVlKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkICIrbWVbMF0rIiBpbiBjZWxsWGZzIil9fSl9KGJ0LGl0LFR0KSwoYnQ9ZXQubWF0Y2goVmUpKSYmZnVuY3Rpb24gQ2soUyxPLGssSyl7Ty5EWEZ8fChP'@; put 'LkRYRj1bXSksKFNbMF0ubWF0Y2goUWkpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihlZSl7Ty5EWEYucHVzaChMNChlZSxPLGssSykpfSl9KGJ0LGl0LGN0LFR0KSwoYnQ9ZXQubWF0Y2goUGUpKSYmZnVuY3Rpb24gWlYoUyxPLGssSyl7Ty5UYWJsZXx8KE8uVGFibGU9W10pLChTWzBdLm1hdGNo'@; put 'KEtyKXx8W10pLmZvckVhY2goZnVuY3Rpb24oZWUpe08uVGFibGUucHVzaChmdW5jdGlvbiBVVihTLE8sayxLKXt2YXIgZWU9ITEsb2U9e307cmV0dXJuKFMubWF0Y2godG4pfHxbXSkuZm9yRWFjaChmdW5jdGlvbihtZSl7dmFyIHBlPXlyKG1lKTtzd2l0Y2goR24ocGVbMF0pKXtjYXNlIjx0'@; put 'YWJsZVN0eWxlPiI6Y2FzZSI8dGFibGVTdHlsZSI6b2UubmFtZT1wZS5uYW1lLnJlcGxhY2UoL14oVGFibGV8UGl2b3QpU3R5bGUvLCIiKSxvZS5yYXduYW1lPXBlLm5hbWUsb2UucGl2b3Q9IXBlLnBpdm90fHxlaShwZS5waXZvdCksb2UudGFibGU9IXBlLnRhYmxlfHxlaShwZS50YWJsZSk7'@; put 'YnJlYWs7Y2FzZSI8dGFibGVTdHlsZS8+IjpjYXNlIjwvdGFibGVTdHlsZT4iOmNhc2UiPGV4dExzdCI6Y2FzZSI8ZXh0THN0PiI6Y2FzZSI8L2V4dExzdD4iOmJyZWFrO2Nhc2UiPHRhYmxlU3R5bGVFbGVtZW50IjppZihwZS50eXBlJiZwZS5keGZJZCl7aWYoIU8uRFhGfHwhTy5EWEZbK3Bl'@; put 'LmR4ZklkXSl0aHJvdyBuZXcgRXJyb3IobWUrIiBjYW5ub3QgZmluZCBEWEYiKTtvZVtwZS50eXBlXT1PLkRYRlsrcGUuZHhmSWRdfWJyZWFrO2Nhc2UiPGV4dCI6ZWU9ITA7YnJlYWs7Y2FzZSI8L2V4dD4iOmVlPSExO2JyZWFrO2RlZmF1bHQ6aWYoSyYmSy5XVEYmJiFlZSl0aHJvdyBuZXcg'@; put 'RXJyb3IoInVucmVjb2duaXplZCAiK3BlWzBdKyIgaW4gdGFibGVTdHlsZSIpfX0pLG9lfShlZSxPLDAsSykpfSl9KGJ0LGl0LDAsVHQpLChpdC5Gb250c3x8W10pWzBdJiZJNChpdC5Gb250c1swXSksaXQpOml0fX0oKSxNaz1Icigic3R5bGVTaGVldCIsbnVsbCx7eG1sbnM6R2kubWFpblsw'@; put 'XSwieG1sbnM6dnQiOkdpLnZ0fSk7ZnVuY3Rpb24gQnYoUyxPKXt2YXIgSyxrPVtEaSxNa107Uy5TU0YmJm51bGwhPShLPWZ1bmN0aW9uIEU1KFMpe3ZhciBPPVsiPG51bUZtdHM+Il07cmV0dXJuW1s1LDhdLFsyMywyNl0sWzQxLDQ0XSxbNTAsMzkyXV0uZm9yRWFjaChmdW5jdGlvbihrKXtm'@; put 'b3IodmFyIEs9a1swXTtLPD1rWzFdOysrSyludWxsIT1TW0tdJiYoT1tPLmxlbmd0aF09SHIoIm51bUZtdCIsbnVsbCx7bnVtRm10SWQ6Syxmb3JtYXRDb2RlOlByKFNbS10pfSkpfSksMT09PU8ubGVuZ3RoPyIiOihPW08ubGVuZ3RoXT0iPC9udW1GbXRzPiIsT1swXT1IcigibnVtRm10cyIs'@; put 'bnVsbCx7Y291bnQ6Ty5sZW5ndGgtMn0pLnJlcGxhY2UoIi8+IiwiPiIpLE8uam9pbigiIikpfShTLlNTRikpJiYoa1trLmxlbmd0aF09Syksa1trLmxlbmd0aF09ZnVuY3Rpb24gdjIoUyl7dmFyIE89W107cmV0dXJuIFMuZm9yRWFjaChmdW5jdGlvbihrKXt2YXIgSz1bIjxmb250PiJdO2su'@; put 'Ym9sZCYmSy5wdXNoKCI8Yi8+Iiksay5pdGFsaWMmJksucHVzaCgiPGkvPiIpLGsuc3RyaWtlJiZLLnB1c2goIjxzdHJpa2UvPiIpLGsuc2hhZG93JiZLLnB1c2goIjxzaGFkb3cvPiIpLHg1WytrLnVuZGVybGluZV0mJksucHVzaCgnPHUgdmFsPSInK3g1WytrLnVuZGVybGluZV0rJyIvPicp'@; put 'LGsuc3omJksucHVzaCgnPHN6IHZhbD0iJytrLnN6KyciLz4nKSxrLmNvbG9yJiZLLnB1c2gobWQoay5jb2xvciwhMCkpLGsubmFtZSYmSy5wdXNoKCc8bmFtZSB2YWw9Iicray5uYW1lKyciLz4nKSxrLmZhbWlseSYmSy5wdXNoKCc8ZmFtaWx5IHZhbD0iJytrLmZhbWlseSsnIi8+Jyksay5z'@; put 'Y2hlbWUmJksucHVzaCgnPHNjaGVtZSB2YWw9Iicray5zY2hlbWUrJyIvPicpLGsudmFsaWduJiZLLnB1c2goJzx2ZXJ0QWxpZ24gdmFsPSInK2sudmFsaWduKygic3ViIj09ay52YWxpZ258fCJzdXBlciI9PWsudmFsaWduPyJzY3JpcHQiOiIiKSsnIi8+JyksTy5wdXNoKEsuam9pbigiIikr'@; put 'IjwvZm9udD4iKX0pLCc8Zm9udHMgY291bnQ9IicrTy5sZW5ndGgrJyI+JytPLmpvaW4oIiIpKyI8L2ZvbnRzPiJ9KChTLlN0eWxlc3x8e30pLkZvbnRzfHxbXSksa1trLmxlbmd0aF09ZnVuY3Rpb24gYmsoUyl7dmFyIE89W107cmV0dXJuIFMuZm9yRWFjaChmdW5jdGlvbihrKXt2YXIgSz1u'@; put 'dWxsO2lmKGsuc3RvcHMmJmsuc3RvcHMubGVuZ3RoKXt2YXIgZWU9e307ay5hbmdsZSYmKGVlLmRlZ3JlZT1NYXRoLnJvdW5kKGsuYW5nbGUpKSxLPWsuc3RvcHMubWFwKGZ1bmN0aW9uKG9lKXtyZXR1cm4gSHIoInN0b3AiLG1kKG9lLCJjb2xvciIsITApLG51bGwhPW9lLnY/e3Bvc2l0aW9u'@; put 'Om9lLnZ9Ont9KX0pLE8ucHVzaCgiPGZpbGw+IitIcigiZ3JhZGllbnRGaWxsIixLLmpvaW4oIiIpLGVlKSsiPC9maWxsPiIpfWVsc2V7aWYoay5mZ0NvbG9yKXtpZihLPShLfHwiIikrIjxmZ0NvbG9yICIsay5mZ0NvbG9yLnRoZW1lKUsrPSd0aGVtZT0iJytrLmZnQ29sb3IudGhlbWUrJyIn'@; put 'KyhrLmZnQ29sb3IudGludD8nIHRpbnQ9Iicray5mZ0NvbG9yLnRpbnQrJyInOiIiKSsiLz4iO2Vsc2UgaWYobnVsbCE9ay5mZ0NvbG9yLmluZGV4JiZudWxsPT1rLmZnQ29sb3IucmdiKUsrPSdpbmRleGVkPSInK2suZmdDb2xvci5pbmRleCsnIi8+JztlbHNlIGlmKGsuZmdDb2xvci5hdXRv'@; put 'KUsrPSdhdXRvPSIxIi8+JztlbHNle2lmKG51bGw9PWsuZmdDb2xvci5yZ2IpdGhyb3cgbmV3IEVycm9yKCJCYWQgY29sb3IgIitSZShrLmZnQ29sb3IpLmpvaW4oInwiKSk7Sys9J3JnYj0iRkYnK0wwKGsuZmdDb2xvci5yZ2IpKyciLz4nfSJzb2xpZCI9PWsucGF0dGVyblR5cGUmJiFrLmJn'@; put 'Q29sb3ImJihrLmJnQ29sb3I9e2luZGV4OjY0fSl9aWYoay5iZ0NvbG9yKWlmKEs9KEt8fCIiKSsiPGJnQ29sb3IgIixrLmJnQ29sb3IudGhlbWUpSys9J3RoZW1lPSInK2suYmdDb2xvci50aGVtZSsnIi8+JztlbHNlIGlmKG51bGwhPWsuYmdDb2xvci5pbmRleCYmbnVsbD09ay5iZ0NvbG9y'@; put 'LnJnYilLKz0naW5kZXhlZD0iJytrLmJnQ29sb3IuaW5kZXgrJyIvPic7ZWxzZSBpZihrLmJnQ29sb3IuYXV0bylLKz0nYXV0bz0iMSIvPic7ZWxzZXtpZihudWxsPT1rLmJnQ29sb3IucmdiKXRocm93IG5ldyBFcnJvcigiQmFkIGNvbG9yICIrUmUoay5iZ0NvbG9yKS5qb2luKCJ8IikpO0sr'@; put 'PSdyZ2I9IkZGJytMMChrLmJnQ29sb3IucmdiKSsnIi8+J31PLnB1c2goIjxmaWxsPiIrSHIoInBhdHRlcm5GaWxsIixLLHtwYXR0ZXJuVHlwZTprLnBhdHRlcm5UeXBlfSkrIjwvZmlsbD4iKX19KSwnPGZpbGxzIGNvdW50PSInK08ubGVuZ3RoKyciPicrTy5qb2luKCIiKSsiPC9maWxscz4i'@; put 'fSgoUy5TdHlsZXN8fHt9KS5GaWxsc3x8W10pLGtbay5sZW5ndGhdPWZ1bmN0aW9uIERvKFMpe3ZhciBPPVtdO3JldHVybiBTLmZvckVhY2goZnVuY3Rpb24oayl7dmFyIEs9W107Sy5wdXNoKFI0KGsubGVmdCwibGVmdCIpKSxLLnB1c2goUjQoay5yaWdodCwicmlnaHQiKSksSy5wdXNoKFI0'@; put 'KGsudG9wLCJ0b3AiKSksSy5wdXNoKFI0KGsuYm90dG9tLCJib3R0b20iKSksSy5wdXNoKFI0KGsuZGlhZ29uYWwsImRpYWdvbmFsIikpLE8ucHVzaCgiPGJvcmRlcj4iK0suam9pbigiIikrIjwvYm9yZGVyPiIpfSksJzxib3JkZXJzIGNvdW50PSInK08ubGVuZ3RoKyciPicrTy5qb2luKCIi'@; put 'KSsiPC9ib3JkZXJzPiJ9KChTLlN0eWxlc3x8e30pLkJvcmRlcnN8fFtdKSxrW2subGVuZ3RoXT1mdW5jdGlvbiBwbmUoUyl7dmFyIE89Wyc8eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIvPiddO2lmKFMpZm9yKHZhciBrPTE7azxTLmxlbmd0aDsr'@; put 'K2spTy5wdXNoKEhyKCJ4ZiIsbnVsbCx7bnVtRm10SWQ6U1trXS5udW1GbXRJZHx8MCxmb250SWQ6U1trXS5mb250SWR8fDAsZmlsbElkOlNba10uZmlsbElkfHwwLGJvcmRlcklkOlNba10uYm9yZGVySWR8fDB9KSk7cmV0dXJuJzxjZWxsU3R5bGVYZnMgY291bnQ9IicrTy5sZW5ndGgrJyI+'@; put 'JytPLmpvaW4oIiIpKyI8L2NlbGxTdHlsZVhmcz4ifShPLmNlbGxTdHlsZVhmcyksKEs9ZnVuY3Rpb24gaG5lKFMpe3ZhciBPPVtdO3JldHVybiBPW08ubGVuZ3RoXT1IcigiY2VsbFhmcyIsbnVsbCksUy5mb3JFYWNoKGZ1bmN0aW9uKGspe3ZhciBLPWsuYWxpZ25tZW50O2RlbGV0ZSBrLmFs'@; put 'aWdubWVudDt2YXIgZWU9ay5wcm90ZWN0aW9uO2RlbGV0ZSBrLnByb3RlY3Rpb247dmFyIG9lPUs/SHIoImFsaWdubWVudCIsbnVsbCxLKToiIjtvZSs9ZWU/SHIoInByb3RlY3Rpb24iLG51bGwse2hpZGRlbjplZS5oaWRkZW4/MTowLGxvY2tlZDplZS5lZGl0YWJsZT8wOjF9KToiIixPW08u'@; put 'bGVuZ3RoXT1IcigieGYiLG9lfHxudWxsLGspLEsmJihrLmFsaWdubWVudD1LKSxlZSYmKGsucHJvdGVjdGlvbj1lZSl9KSxPW08ubGVuZ3RoXT0iPC9jZWxsWGZzPiIsMj09PU8ubGVuZ3RoPyIiOihPWzBdPUhyKCJjZWxsWGZzIixudWxsLHtjb3VudDpPLmxlbmd0aC0yfSkucmVwbGFjZSgi'@; put 'Lz4iLCI+IiksTy5qb2luKCIiKSl9KE8uY2VsbFhmcykpJiYoa1trLmxlbmd0aF09Syksa1trLmxlbmd0aF09ZnVuY3Rpb24gbW5lKFMpe3ZhciBPPVsnPGNlbGxTdHlsZSBuYW1lPSJOb3JtYWwiIHhmSWQ9IjAiIGJ1aWx0aW5JZD0iMCIvPiddO2lmKFMpZm9yKHZhciBrPTE7azxTLmxlbmd0'@; put 'aDsrK2spTy5wdXNoKEhyKCJjZWxsU3R5bGUiLG51bGwse25hbWU6U1trXS5uYW1lLHhmSWQ6a30pKTtyZXR1cm4nPGNlbGxTdHlsZXMgY291bnQ9IicrTy5sZW5ndGgrJyI+JytPLmpvaW4oIiIpKyI8L2NlbGxTdHlsZXM+In0oTy5jZWxsU3R5bGVYZnMpLFMuU3R5bGVzLkRYRnx8KFMuU3R5'@; put 'bGVzLkRYRj1bXSk7dmFyIGVlPWZ1bmN0aW9uIGxoKFMsTyxrKXt2YXIgSz1bJzx0YWJsZVN0eWxlcyBjb3VudD0iJysoU3x8W10pLmxlbmd0aCsnIiBkZWZhdWx0VGFibGVTdHlsZT0iVGFibGVTdHlsZU1lZGl1bTkiIGRlZmF1bHRQaXZvdFN0eWxlPSJQaXZvdFN0eWxlTWVkaXVtNCInXTty'@; put 'ZXR1cm4gUyYmUy5sZW5ndGg/KEtbMF0rPSI+IixTLmZvckVhY2goZnVuY3Rpb24oZWUpe0sucHVzaChmdW5jdGlvbiBUQyhTLE8sayl7dmFyIEs9W107WyJ3aG9sZVRhYmxlIiwiaGVhZGVyUm93IiwidG90YWxSb3ciLCJmaXJzdENvbHVtbiIsImxhc3RDb2x1bW4iLCJmaXJzdFJvd1N0cmlw'@; put 'ZSIsInNlY29uZFJvd1N0cmlwZSIsImZpcnN0Q29sdW1uU3RyaXBlIiwic2Vjb25kQ29sdW1uU3RyaXBlIiwiZmlyc3RIZWFkZXJDZWxsIiwibGFzdEhlYWRlckNlbGwiLCJmaXJzdFRvdGFsQ2VsbCIsImxhc3RUb3RhbENlbGwiLCJmaXJzdFN1YnRvdGFsQ29sdW1uIiwic2Vjb25kU3VidG90'@; put 'YWxDb2x1bW4iLCJ0aGlyZFN1YnRvdGFsQ29sdW1uIiwiZmlyc3RTdWJ0b3RhbFJvdyIsInNlY29uZFN1YnRvdGFsUm93IiwidGhpcmRTdWJ0b3RhbFJvdyIsImJsYW5rUm93IiwiZmlyc3RDb2x1bW5TdWJoZWFkaW5nIiwic2Vjb25kQ29sdW1uU3ViaGVhZGluZyIsInRoaXJkQ29sdW1uU3Vi'@; put 'aGVhZGluZyIsImZpcnN0Um93U3ViaGVhZGluZyIsInNlY29uZFJvd1N1YmhlYWRpbmciLCJ0aGlyZFJvd1N1YmhlYWRpbmciLCJwYWdlRmllbGRMYWJlbHMiLCJwYWdlRmllbGRWYWx1ZXMiXS5mb3JFYWNoKGZ1bmN0aW9uKG9lKXtpZihTW29lXSl7dmFyIG1lPWZTKE8sU1tvZV0pO0sucHVz'@; put 'aCgnPHRhYmxlU3R5bGVFbGVtZW50IGR4ZklkPSInK21lKyciIHR5cGU9Iicrb2UrJyIvPicpfX0pO3ZhciBlZT0nPHRhYmxlU3R5bGUgY291bnQ9IicrSy5sZW5ndGgrJyIgcGl2b3Q9IicrICshIVMucGl2b3QrJyIgbmFtZT0iJytTLm5hbWUrJyInO3JldHVybiBLLmxlbmd0aD9lZSsiPiIr'@; put 'Sy5qb2luKCIiKSsiPC90YWJsZVN0eWxlPiI6ZWUrIi8+In0oZWUsTykpfSksSy5qb2luKCIiKSsiPC90YWJsZVN0eWxlcz4iKTpLWzBdKyIvPiJ9KChTLlN0eWxlc3x8e30pLlRhYmxlfHxbXSxTLlN0eWxlcy5EWEYpO3JldHVybiBrW2subGVuZ3RoXT1mdW5jdGlvbiBXVihTLE8pe2lmKCFT'@; put 'Lmxlbmd0aClyZXR1cm4nPGR4ZnMgY291bnQ9IjAiLz4nO3ZhciBrPVsnPGR4ZnMgY291bnQ9IicrUy5sZW5ndGgrJyI+J107cmV0dXJuIFMuZm9yRWFjaChmdW5jdGlvbihLKXtrLnB1c2goZnVuY3Rpb24gZTgoUyxPKXt2YXIgaz17Ym9sZDoiYiIsaXRhbGljOiJpIix2YWxpZ246InZlcnRB'@; put 'bGlnbiJ9LEs9WyI8ZHhmPiJdLGVlPVtdLG9lPVtdLG1lPVtdLGJlPVtdO3JldHVybiBSZShTKS5mb3JFYWNoKGZ1bmN0aW9uKFZlKXtzd2l0Y2goVmUpe2Nhc2UiYm9sZCI6Y2FzZSJpdGFsaWMiOmNhc2Uic3RyaWtlIjpjYXNlInVuZGVybGluZSI6Y2FzZSJjb2xvciI6Y2FzZSJ2YWxpZ24i'@; put 'OmNhc2Uic3oiOmNhc2UibmFtZSI6Y2FzZSJvdXRsaW5lIjpjYXNlInNoYWRvdyI6Y2FzZSJjaGFyc2V0IjpjYXNlImZhbWlseSI6Y2FzZSJjb25kZW5zZSI6Y2FzZSJleHRlbmQiOmNhc2Uic2NoZW1lIjplZS5wdXNoKFZlKTticmVhaztjYXNlImJnQ29sb3IiOmNhc2UiZmdDb2xvciI6bWUu'@; put 'cHVzaChWZSk7YnJlYWs7Y2FzZSJ6IjpvZS5wdXNoKFZlKTticmVhaztjYXNlInRvcCI6Y2FzZSJib3R0b20iOmNhc2UibGVmdCI6Y2FzZSJyaWdodCI6Y2FzZSJkaWFnb25hbCI6Y2FzZSJ2ZXJ0aWNhbCI6Y2FzZSJob3Jpem9udGFsIjpiZS5wdXNoKFZlKTticmVhaztjYXNlInBhdHRlcm5U'@; put 'eXBlIjpjYXNlImRpYWdvbmFsRG93biI6Y2FzZSJkaWFnb25hbFVwIjpjYXNlInN0b3BzIjpjYXNlImRlZ3JlZSI6YnJlYWs7ZGVmYXVsdDp0aHJvdyJVbnJlY29nbml6ZWQgIitWZSsiIGluIERYRiJ9fSksZWUubGVuZ3RoPjAmJihLLnB1c2goIjxmb250PiIpLGVlLmZvckVhY2goZnVuY3Rp'@; put 'b24oVmUpe3N3aXRjaChWZSl7Y2FzZSJib2xkIjpjYXNlIml0YWxpYyI6Y2FzZSJzdHJpa2UiOmNhc2Uib3V0bGluZSI6Y2FzZSJzaGFkb3ciOmNhc2UiY29uZGVuc2UiOmNhc2UiZXh0ZW5kIjpLLnB1c2goIjwiKyhrW1ZlXXx8VmUpKycgdmFsPSInKyhTW1ZlXT8iMSI6IjAiKSsnIi8+Jyk7'@; put 'YnJlYWs7Y2FzZSJjb2xvciI6Sy5wdXNoKG1kKFNbVmVdLFZlLCEwKSk7YnJlYWs7Y2FzZSJmYW1pbHkiOmNhc2UibmFtZSI6Y2FzZSJzeiI6Y2FzZSJzY2hlbWUiOksucHVzaCgiPCIrKGtbVmVdfHxWZSkrJyB2YWw9IicrU1tWZV0rJyIvPicpO2JyZWFrO2Nhc2UidW5kZXJsaW5lIjpLLnB1'@; put 'c2goJzx1IHZhbD0iJyt4NVtTW1ZlXXx8MF0rJyIvPicpO2JyZWFrO2Nhc2UidmFsaWduIjpLLnB1c2goJzx2ZXJ0QWxpZ24gdmFsPSInK1MudmFsaWduKygic3ViIj09Uy52YWxpZ258fCJzdXBlciI9PVMudmFsaWduPyJzY3JpcHQiOiIiKSsnIi8+Jyk7YnJlYWs7ZGVmYXVsdDp0aHJvdyJV'@; put 'bnN1cHBvcnRlZCAiK1ZlKyIgOiBmb250IERYRiJ9fSksSy5wdXNoKCI8L2ZvbnQ+IikpLG9lLmxlbmd0aD4wJiZLLnB1c2goJzxudW1GbXQgZm9ybWF0Q29kZT0iJytQcihTLnopKyciIG51bUZtdElkPSInK2Z1bmN0aW9uIGhTKFMsTyl7aWYoIm51bWJlciI9PXR5cGVvZiBTKXJldHVybiBT'@; put 'O3ZhciBrPU8ucmV2c3NmW1M/PyJHZW5lcmFsIl0sSz02MDtpZihudWxsPT1rKWZvcig7SzwzOTI7KytLKWlmKG51bGw9PU8uc3NmW0tdKXJldHVybiBBLmxvYWQoUyxLKSxPLnNzZltLXT1TLE8ucmV2c3NmW1NdPUssSztyZXR1cm4ga30oUy56LE8pKyciLz4nKSxtZS5sZW5ndGg+MCYmKEsu'@; put 'cHVzaCgiPGZpbGw+IiksSy5wdXNoKCI8cGF0dGVybkZpbGwiKyhTLnBhdHRlcm5UeXBlPycgcGF0dGVyblR5cGU9IicrUy5wYXR0ZXJuVHlwZSsnIj4nOiI+IikpLG1lLmZvckVhY2goZnVuY3Rpb24oVmUpe3N3aXRjaChWZSl7Y2FzZSJwYXR0ZXJuVHlwZSI6YnJlYWs7Y2FzZSJmZ0NvbG9y'@; put 'IjpjYXNlImJnQ29sb3IiOksucHVzaChtZChTW1ZlXSxWZSwhMCkpO2JyZWFrO2RlZmF1bHQ6dGhyb3ciVW5zdXBwb3J0ZWQgIitWZSsiIDogZmlsbCBEWEYifX0pLEsucHVzaCgiPC9wYXR0ZXJuRmlsbD4iKSxLLnB1c2goIjwvZmlsbD4iKSksYmUubGVuZ3RoPjA/KEsucHVzaChbIjxib3Jk'@; put 'ZXIiLG51bGwhPVMuZGlhZ29uYWxEb3duPycgZGlhZ29uYWxEb3duPSInKyArISFTLmRpYWdvbmFsRG93bisnIic6IiIsbnVsbCE9Uy5kaWFnb25hbFVwPycgZGlhZ29uYWxVcD0iJysgKyEhUy5kaWFnb25hbFVwKyciJzoiIiwiPiJdLmpvaW4oIiIpKSxiZS5mb3JFYWNoKGZ1bmN0aW9uKFZl'@; put 'KXtLLnB1c2goUjQoU1tWZV0sVmUpKX0pLEsucHVzaCgiPC9ib3JkZXI+IikpOihudWxsIT1TLmRpYWdvbmFsRG93bnx8bnVsbCE9Uy5kaWFnb25hbFVwKSYmSy5wdXNoKFsiPGJvcmRlciIsbnVsbCE9Uy5kaWFnb25hbERvd24/JyBkaWFnb25hbERvd249IicrICshIVMuZGlhZ29uYWxEb3du'@; put 'KyciJzoiIixudWxsIT1TLmRpYWdvbmFsVXA/JyBkaWFnb25hbFVwPSInKyArISFTLmRpYWdvbmFsVXArJyInOiIiLCIvPiJdLmpvaW4oIiIpKSwxPT1LLmxlbmd0aD8iPGR4Zi8+IjpLLmpvaW4oIiIpKyI8L2R4Zj4ifShLLE8pKX0pLGsuam9pbigiIikrIjwvZHhmcz4ifShTLlN0eWxlcy5E'@; put 'WEYsTyksa1trLmxlbmd0aF09ZWUsay5sZW5ndGg+MiYmKGtbay5sZW5ndGhdPSI8L3N0eWxlU2hlZXQ+IixrWzFdPWtbMV0ucmVwbGFjZSgiLz4iLCI+IikpLGsuam9pbigiIil9ZnVuY3Rpb24gQUMoUyxPLGspe2t8fChrPXZuKDYrNCpPLmxlbmd0aCkpLGsud3JpdGVfc2hpZnQoMixTKSxP'@; put 'YyhPLGspO3ZhciBLPWsubGVuZ3RoPmsubD9rLnNsaWNlKDAsay5sKTprO3JldHVybiBudWxsPT1rLmwmJihrLmw9ay5sZW5ndGgpLEt9ZnVuY3Rpb24gJFYoUyl7cmV0dXJue2NvbG9yOnQyKFMpLHBvczpSbChTKX19WGEuU1RZPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcv'@; put 'b2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3N0eWxlcyI7dmFyIGtDPVsibm9uZSIsInNvbGlkIiwibWVkaXVtR3JheSIsImRhcmtHcmF5IiwibGlnaHRHcmF5IiwiZGFya0hvcml6b250YWwiLCJkYXJrVmVydGljYWwiLCJkYXJrRG93biIsImRhcmtVcCIsImRhcmtHcmlkIiwi'@; put 'ZGFya1RyZWxsaXMiLCJsaWdodEhvcml6b250YWwiLCJsaWdodFZlcnRpY2FsIiwibGlnaHREb3duIiwibGlnaHRVcCIsImxpZ2h0R3JpZCIsImxpZ2h0VHJlbGxpcyIsImdyYXkxMjUiLCJncmF5MDYyNSJdLEtWPUhlKGtDKSxUNT1bImdlbmVyYWwiLCJsZWZ0IiwiY2VudGVyIiwicmlnaHQi'@; put 'LCJmaWxsIiwianVzdGlmeSIsImNlbnRlckNvbnRpbnVvdXMiLCJkaXN0cmlidXRlZCJdLHQ4PVsidG9wIiwiY2VudGVyIiwiYm90dG9tIiwianVzdGlmeSIsImRpc3RyaWJ1dGVkIl07ZnVuY3Rpb24gTnUoUyxPLGspe2t8fChrPXZuKDE2KSksay53cml0ZV9zaGlmdCgyLE98fDApLGsud3Jp'@; put 'dGVfc2hpZnQoMixTLm51bUZtdElkfHwwKSxrLndyaXRlX3NoaWZ0KDIsUy5mb250SWR8fDApLGsud3JpdGVfc2hpZnQoMixTLmZpbGxJZHx8MCksay53cml0ZV9zaGlmdCgyLFMuYm9yZGVySWR8fDApLGsud3JpdGVfc2hpZnQoMSxTLmFsaWdubWVudCYmUy5hbGlnbm1lbnQudGV4dFJvdGF0'@; put 'aW9ufHwwKSxrLndyaXRlX3NoaWZ0KDEsUy5hbGlnbm1lbnQmJlMuYWxpZ25tZW50LmluZGVudHx8MCk7dmFyIEs9MCxlZT0wO2lmKFMuYWxpZ25tZW50KXtpZihTLmFsaWdubWVudC5ob3Jpem9udGFsKXt2YXIgb2U9VDUuaW5kZXhPZihTLmFsaWdubWVudC5ob3Jpem9udGFsKTtvZTwwJiYo'@; put 'b2U9MCksS3w9b2V9aWYoUy5hbGlnbm1lbnQudmVydGljYWwpe3ZhciBtZT10OC5pbmRleE9mKFMuYWxpZ25tZW50LnZlcnRpY2FsKTttZTwwJiYobWU9MiksS3w9bWU8PDN9Uy5hbGlnbm1lbnQud3JhcFRleHQmJihLfD02NCksUy5hbGlnbm1lbnQuc2hyaW5rVG9GaXQmJihlZXw9MSl9cmV0'@; put 'dXJuIGsud3JpdGVfc2hpZnQoMSxLKSxrLndyaXRlX3NoaWZ0KDEsZWUpLGsud3JpdGVfc2hpZnQoMSwwKSxrLndyaXRlX3NoaWZ0KDEsMCksa312YXIgZ2Q9WyJub25lIiwidGhpbiIsIm1lZGl1bSIsImRhc2hlZCIsImRvdHRlZCIsInRoaWNrIiwiZG91YmxlIiwiaGFpciIsIm1lZGl1bURh'@; put 'c2hlZCIsImRhc2hEb3QiLCJtZWRpdW1EYXNoRG90IiwiZGFzaERvdERvdCIsIm1lZGl1bURhc2hEb3REb3QiLCJzbGFudERhc2hEb3QiXTtmdW5jdGlvbiBBNShTKXt2YXIgTz1TLnJlYWRfc2hpZnQoMSk7Uy5sKz0xO3ZhciBrPXQyKFMpO3JldHVybntzdHlsZTpnZFtPXSxjb2xvcjprfX1m'@; put 'dW5jdGlvbiBrNShTLE8pe3JldHVybiBPfHwoTz12bigxMCkpLFMmJlMuc3R5bGUmJiIiIT1TLnN0eWxlJiYibm9uZSIhPVMuc3R5bGUmJi0xIT09Z2QuaW5kZXhPZihTLnN0eWxlKT8oTy53cml0ZV9zaGlmdCgxLGdkLmluZGV4T2YoUy5zdHlsZSkpLE8ud3JpdGVfc2hpZnQoMSwwKSxTLmNv'@; put 'bG9yP3dmKFMuY29sb3IsTyk6KE8ud3JpdGVfc2hpZnQoNCwwKSxPLndyaXRlX3NoaWZ0KDQsMCkpKTooTy53cml0ZV9zaGlmdCgxLDApLE8ud3JpdGVfc2hpZnQoMSwwKSxPLndyaXRlX3NoaWZ0KDQsMCksTy53cml0ZV9zaGlmdCg0LDApKSxPfWZ1bmN0aW9uIEVrKFMsTyl7cmV0dXJuIE98'@; put 'fChPPXZuKDUyKSksTy53cml0ZV9zaGlmdCg0LFMueGZJZCksTy53cml0ZV9zaGlmdCgyLDEpLE8ud3JpdGVfc2hpZnQoMSwrUy5idWlsdGluSWQpLE8ud3JpdGVfc2hpZnQoMSwwKSxiZihTLm5hbWV8fCIiLE8pLE8ubGVuZ3RoPk8ubD9PLnNsaWNlKDAsTy5sKTpPfWZ1bmN0aW9uIHp2KFMs'@; put 'Tyl7IU98fCFPLnRoZW1lRWxlbWVudHN8fCFPLnRoZW1lRWxlbWVudHMuY2xyU2NoZW1lfHxudWxsIT1TLnRoZW1lJiYoUy5yZ2I9XzUoTy50aGVtZUVsZW1lbnRzLmNsclNjaGVtZVtTLnRoZW1lXS5yZ2IsUy50aW50fHwwKSl9ZnVuY3Rpb24gTGsoUyxPKXt2YXIgaz12aSgpO3JldHVybiBW'@; put 'cihrLCJCcnRCZWdpblN0eWxlU2hlZXQiKSxmdW5jdGlvbiBKVihTLE8pe2lmKE8pe3ZhciBrPTA7W1s1LDhdLFsyMywyNl0sWzQxLDQ0XSxbNTAsMzkyXV0uZm9yRWFjaChmdW5jdGlvbihLKXtmb3IodmFyIGVlPUtbMF07ZWU8PUtbMV07KytlZSludWxsIT1PW2VlXSYmKytrfSksMCE9ayYm'@; put 'KFZyKFMsIkJydEJlZ2luRm10cyIsJDAoaykpLFtbNSw4XSxbMjMsMjZdLFs0MSw0NF0sWzUwLDM5Ml1dLmZvckVhY2goZnVuY3Rpb24oSyl7Zm9yKHZhciBlZT1LWzBdO2VlPD1LWzFdOysrZWUpbnVsbCE9T1tlZV0mJlZyKFMsIkJydEZtdCIsQUMoZWUsT1tlZV0pKX0pLFZyKFMsIkJydEVu'@; put 'ZEZtdHMiKSl9fShrLFMuU1NGKSxmdW5jdGlvbiBRVihTLE8pe3ZhciBrPU8ubGVuZ3RoOzAhPWsmJihWcihTLCJCcnRCZWdpbkZvbnRzIiwkMChrKSksTy5mb3JFYWNoKGZ1bmN0aW9uKEspe1ZyKFMsIkJydEZvbnQiLGZ1bmN0aW9uIEdWKFMsTyl7T3x8KE89dm4oMTUzKSksTy53cml0ZV9z'@; put 'aGlmdCgyLDIwKlMuc3opLGZ1bmN0aW9uIG92KFMsTyl7T3x8KE89dm4oMikpLE8ud3JpdGVfc2hpZnQoMSwoUy5pdGFsaWM/MjowKXwoUy5zdHJpa2U/ODowKXwoUy5vdXRsaW5lPzE2OjApfChTLnNoYWRvdz8zMjowKXwoUy5jb25kZW5zZT82NDowKXwoUy5leHRlbmQ/MTI4OjApKSxPLndy'@; put 'aXRlX3NoaWZ0KDEsMCl9KFMsTyksTy53cml0ZV9zaGlmdCgyLFMuYm9sZD83MDA6NDAwKTt2YXIgaz0wOyJzdXBlciI9PVMudmFsaWduP2s9MToic3ViIj09Uy52YWxpZ24mJihrPTIpLE8ud3JpdGVfc2hpZnQoMixrKSxPLndyaXRlX3NoaWZ0KDEsUy51bmRlcmxpbmV8fDApLE8ud3JpdGVf'@; put 'c2hpZnQoMSxTLmZhbWlseXx8MCksTy53cml0ZV9zaGlmdCgxLFMuY2hhcnNldHx8MCksTy53cml0ZV9zaGlmdCgxLDApLHdmKFMuY29sb3IsTyk7dmFyIEs9MDtyZXR1cm4ibWFqb3IiPT1TLnNjaGVtZSYmKEs9MSksIm1pbm9yIj09Uy5zY2hlbWUmJihLPTIpLE8ud3JpdGVfc2hpZnQoMSxL'@; put 'KSxPYyhTLm5hbWUsTyksTy5sZW5ndGg+Ty5sP08uc2xpY2UoMCxPLmwpOk99KEspKX0pLFZyKFMsIkJydEVuZEZvbnRzIikpfShrLChTLlN0eWxlc3x8e30pLkZvbnRzfHxbXSksZnVuY3Rpb24gZUIoUyxPKXt2YXIgaz1PLmxlbmd0aDswIT1rJiYoVnIoUywiQnJ0QmVnaW5GaWxscyIsJDAo'@; put 'aykpLE8uZm9yRWFjaChmdW5jdGlvbihLKXtWcihTLCJCcnRGaWxsIixmdW5jdGlvbiBRMChTLE8pe098fChPPXZuKDg0KSk7dmFyIGs9S1ZbUy5wYXR0ZXJuVHlwZV07bnVsbD09ayYmKGs9NDApLE8ud3JpdGVfc2hpZnQoNCxrPStrKTt2YXIgSz0wO2lmKDQwIT1rKWZvcih3ZihTLmZnQ29s'@; put 'b3J8fHtpbmRleDo2NH0sTyksd2YoUy5iZ0NvbG9yfHx7aW5kZXg6NjV9LE8pO0s8MTI7KytLKU8ud3JpdGVfc2hpZnQoNCwwKTtlbHNle2Zvcig7Szw0OysrSylPLndyaXRlX3NoaWZ0KDQsMCk7Zm9yKDtLPDEyOysrSylPLndyaXRlX3NoaWZ0KDQsMCl9cmV0dXJuIE8ubGVuZ3RoPk8ubD9P'@; put 'LnNsaWNlKDAsTy5sKTpPfShLKSl9KSxWcihTLCJCcnRFbmRGaWxscyIpKX0oaywoUy5TdHlsZXN8fHt9KS5GaWxsc3x8W10pLGZ1bmN0aW9uIHRCKFMsTyl7dmFyIGs9Ty5sZW5ndGg7MCE9ayYmKFZyKFMsIkJydEJlZ2luQm9yZGVycyIsJDAoaykpLE8uZm9yRWFjaChmdW5jdGlvbihLKXtW'@; put 'cihTLCJCcnRCb3JkZXIiLGZ1bmN0aW9uIHhrKFMsTyl7cmV0dXJuIE98fChPPXZuKDUxKSksTy53cml0ZV9zaGlmdCgxLDApLGs1KFMudG9wLE8pLGs1KFMuYm90dG9tLE8pLGs1KFMubGVmdCxPKSxrNShTLnJpZ2h0LE8pLGs1KG51bGwsTyksTy5sZW5ndGg+Ty5sP08uc2xpY2UoMCxPLmwp'@; put 'Ok99KEspKX0pLFZyKFMsIkJydEVuZEJvcmRlcnMiKSl9KGssKFMuU3R5bGVzfHx7fSkuQm9yZGVyc3x8W10pLGZ1bmN0aW9uIGtrKFMsTyl7dmFyIGs9MTtpZihPJiYoaz1PLmxlbmd0aCksVnIoUywiQnJ0QmVnaW5DZWxsU3R5bGVYRnMiLCQwKGspKSxWcihTLCJCcnRYRiIsTnUoe251bUZt'@; put 'dElkOjAsZm9udElkOjAsZmlsbElkOjAsYm9yZGVySWQ6MH0sNjU1MzUpKSxPKWZvcih2YXIgSz0xO0s8Ty5sZW5ndGg7KytLKVZyKFMsIkJydFhGIixOdSh7bnVtRm10SWQ6T1tLXS5udW1GbXRJZHx8MCxmb250SWQ6T1tLXS5mb250SWR8fDAsZmlsbElkOk9bS10uZmlsbElkfHwwLGJvcmRl'@; put 'cklkOk9bS10uYm9yZGVySWR8fDB9LDY1NTM1KSk7VnIoUywiQnJ0RW5kQ2VsbFN0eWxlWEZzIil9KGssTy5jZWxsU3R5bGVYZnMpLGZ1bmN0aW9uIERrKFMsTyl7VnIoUywiQnJ0QmVnaW5DZWxsWEZzIiwkMChPLmxlbmd0aCkpLE8uZm9yRWFjaChmdW5jdGlvbihrKXtWcihTLCJCcnRYRiIs'@; put 'TnUoaywwKSl9KSxWcihTLCJCcnRFbmRDZWxsWEZzIil9KGssTy5jZWxsWGZzKSxmdW5jdGlvbiBJayhTLE8pe3ZhciBrPTE7aWYoTyYmKGs9Ty5sZW5ndGgpLFZyKFMsIkJydEJlZ2luU3R5bGVzIiwkMChrKSksVnIoUywiQnJ0U3R5bGUiLEVrKHt4ZklkOjAsYnVpbHRpbklkOjAsbmFtZToi'@; put 'Tm9ybWFsIn0pKSxPKWZvcih2YXIgSz0xO0s8Ty5sZW5ndGg7KytLKVZyKFMsIkJydFN0eWxlIixFayh7eGZJZDpLLGJ1aWx0aW5JZDowLG5hbWU6T1tLXS5uYW1lfSkpO1ZyKFMsIkJydEVuZFN0eWxlcyIpfShrLE8uY2VsbFN0eWxlWGZzKSxmdW5jdGlvbiBVdihTKXtWcihTLCJCcnRCZWdp'@; put 'bkRYRnMiLCQwKDApKSxWcihTLCJCcnRFbmREWEZzIil9KGspLGZ1bmN0aW9uIFJrKFMpe1ZyKFMsIkJydEJlZ2luVGFibGVTdHlsZXMiLGZ1bmN0aW9uIFRrKFMsTyxrKXt2YXIgSz12bigyMDUyKTtyZXR1cm4gSy53cml0ZV9zaGlmdCg0LFMpLGJmKE8sSyksYmYoayxLKSxLLmxlbmd0aD5L'@; put 'Lmw/Sy5zbGljZSgwLEsubCk6S30oMCwiVGFibGVTdHlsZU1lZGl1bTkiLCJQaXZvdFN0eWxlTWVkaXVtNCIpKSxWcihTLCJCcnRFbmRUYWJsZVN0eWxlcyIpfShrKSxWcihrLCJCcnRFbmRTdHlsZVNoZWV0Iiksay5lbmQoKX1YYS5USEVNRT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1h'@; put 'dHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy90aGVtZSI7dmFyIE9rPVsiPC9hOmx0MT4iLCI8L2E6ZGsxPiIsIjwvYTpsdDI+IiwiPC9hOmRrMj4iLCI8L2E6YWNjZW50MT4iLCI8L2E6YWNjZW50Mj4iLCI8L2E6YWNjZW50Mz4iLCI8L2E6YWNjZW50ND4iLCI8L2E6'@; put 'YWNjZW50NT4iLCI8L2E6YWNjZW50Nj4iLCI8L2E6aGxpbms+IiwiPC9hOmZvbEhsaW5rPiJdO2Z1bmN0aW9uIHJCKFMsTyxrKXtPLnRoZW1lRWxlbWVudHMuY2xyU2NoZW1lPVtdO3ZhciBLPXt9OyhTWzBdLm1hdGNoKHRuKXx8W10pLmZvckVhY2goZnVuY3Rpb24oZWUpe3ZhciBvZT15cihl'@; put 'ZSk7c3dpdGNoKG9lWzBdKXtjYXNlIjxhOmNsclNjaGVtZSI6Y2FzZSI8L2E6Y2xyU2NoZW1lPiI6Y2FzZSI8L2E6c3JnYkNscj4iOmNhc2UiPC9hOnN5c0Nscj4iOmJyZWFrO2Nhc2UiPGE6c3JnYkNsciI6Sy5yZ2I9b2UudmFsO2JyZWFrO2Nhc2UiPGE6c3lzQ2xyIjpLLnJnYj1vZS5sYXN0'@; put 'Q2xyO2JyZWFrO2Nhc2UiPGE6ZGsxPiI6Y2FzZSI8L2E6ZGsxPiI6Y2FzZSI8YTpsdDE+IjpjYXNlIjwvYTpsdDE+IjpjYXNlIjxhOmRrMj4iOmNhc2UiPC9hOmRrMj4iOmNhc2UiPGE6bHQyPiI6Y2FzZSI8L2E6bHQyPiI6Y2FzZSI8YTphY2NlbnQxPiI6Y2FzZSI8L2E6YWNjZW50MT4iOmNh'@; put 'c2UiPGE6YWNjZW50Mj4iOmNhc2UiPC9hOmFjY2VudDI+IjpjYXNlIjxhOmFjY2VudDM+IjpjYXNlIjwvYTphY2NlbnQzPiI6Y2FzZSI8YTphY2NlbnQ0PiI6Y2FzZSI8L2E6YWNjZW50ND4iOmNhc2UiPGE6YWNjZW50NT4iOmNhc2UiPC9hOmFjY2VudDU+IjpjYXNlIjxhOmFjY2VudDY+Ijpj'@; put 'YXNlIjwvYTphY2NlbnQ2PiI6Y2FzZSI8YTpobGluaz4iOmNhc2UiPC9hOmhsaW5rPiI6Y2FzZSI8YTpmb2xIbGluaz4iOmNhc2UiPC9hOmZvbEhsaW5rPiI6Ii8iPT09b2VbMF0uY2hhckF0KDEpPyhPLnRoZW1lRWxlbWVudHMuY2xyU2NoZW1lW09rLmluZGV4T2Yob2VbMF0pXT1LLEs9e30p'@; put 'OksubmFtZT1vZVswXS5zbGljZSgzLG9lWzBdLmxlbmd0aC0xKTticmVhaztkZWZhdWx0OmlmKGsmJmsuV1RGKXRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkICIrb2VbMF0rIiBpbiBjbHJTY2hlbWUiKX19KX1mdW5jdGlvbiBpQigpe31mdW5jdGlvbiBhQigpe312YXIgc0I9LzxhOmNs'@; put 'clNjaGVtZShbXj5dKik+W1xzXFNdKjxcL2E6Y2xyU2NoZW1lPi8sUGs9LzxhOmZvbnRTY2hlbWUoW14+XSopPltcc1xTXSo8XC9hOmZvbnRTY2hlbWU+Lyx2bmU9LzxhOmZtdFNjaGVtZShbXj5dKik+W1xzXFNdKjxcL2E6Zm10U2NoZW1lPi8sb0I9LzxhOnRoZW1lRWxlbWVudHMoW14+XSop'@; put 'Pltcc1xTXSo8XC9hOnRoZW1lRWxlbWVudHM+LztmdW5jdGlvbiBJQyhTLE8pe2lmKCFTfHwwPT09Uy5sZW5ndGgpcmV0dXJuIElDKGxCKCkpO3ZhciBrLEs9e307aWYoIShrPVMubWF0Y2gob0IpKSl0aHJvdyBuZXcgRXJyb3IoInRoZW1lRWxlbWVudHMgbm90IGZvdW5kIGluIHRoZW1lIik7'@; put 'cmV0dXJuIGZ1bmN0aW9uIEZrKFMsTyxrKXt2YXIgSztPLnRoZW1lRWxlbWVudHM9e30sW1siY2xyU2NoZW1lIixzQixyQl0sWyJmb250U2NoZW1lIixQayxpQl0sWyJmbXRTY2hlbWUiLHZuZSxhQl1dLmZvckVhY2goZnVuY3Rpb24oZWUpe2lmKCEoSz1TLm1hdGNoKGVlWzFdKSkpdGhyb3cg'@; put 'bmV3IEVycm9yKGVlWzBdKyIgbm90IGZvdW5kIGluIHRoZW1lRWxlbWVudHMiKTtlZVsyXShLLE8sayl9KX0oa1swXSxLLE8pLEsucmF3PVMsS31mdW5jdGlvbiBsQihTLE8pe2lmKE8mJk8udGhlbWVYTFNYKXJldHVybiBPLnRoZW1lWExTWDtpZihTJiYic3RyaW5nIj09dHlwZW9mIFMucmF3'@; put 'KXJldHVybiBTLnJhdzt2YXIgaz1bRGldO3JldHVybiBrW2subGVuZ3RoXT0nPGE6dGhlbWUgeG1sbnM6YT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL2RyYXdpbmdtbC8yMDA2L21haW4iIG5hbWU9Ik9mZmljZSBUaGVtZSI+JyxrW2subGVuZ3RoXT0iPGE6dGhlbWVFbGVt'@; put 'ZW50cz4iLGtbay5sZW5ndGhdPSc8YTpjbHJTY2hlbWUgbmFtZT0iT2ZmaWNlIj4nLGtbay5sZW5ndGhdPSc8YTpkazE+PGE6c3lzQ2xyIHZhbD0id2luZG93VGV4dCIgbGFzdENscj0iMDAwMDAwIi8+PC9hOmRrMT4nLGtbay5sZW5ndGhdPSc8YTpsdDE+PGE6c3lzQ2xyIHZhbD0id2luZG93'@; put 'IiBsYXN0Q2xyPSJGRkZGRkYiLz48L2E6bHQxPicsa1trLmxlbmd0aF09JzxhOmRrMj48YTpzcmdiQ2xyIHZhbD0iMUY0OTdEIi8+PC9hOmRrMj4nLGtbay5sZW5ndGhdPSc8YTpsdDI+PGE6c3JnYkNsciB2YWw9IkVFRUNFMSIvPjwvYTpsdDI+JyxrW2subGVuZ3RoXT0nPGE6YWNjZW50MT48'@; put 'YTpzcmdiQ2xyIHZhbD0iNEY4MUJEIi8+PC9hOmFjY2VudDE+JyxrW2subGVuZ3RoXT0nPGE6YWNjZW50Mj48YTpzcmdiQ2xyIHZhbD0iQzA1MDREIi8+PC9hOmFjY2VudDI+JyxrW2subGVuZ3RoXT0nPGE6YWNjZW50Mz48YTpzcmdiQ2xyIHZhbD0iOUJCQjU5Ii8+PC9hOmFjY2VudDM+Jyxr'@; put 'W2subGVuZ3RoXT0nPGE6YWNjZW50ND48YTpzcmdiQ2xyIHZhbD0iODA2NEEyIi8+PC9hOmFjY2VudDQ+JyxrW2subGVuZ3RoXT0nPGE6YWNjZW50NT48YTpzcmdiQ2xyIHZhbD0iNEJBQ0M2Ii8+PC9hOmFjY2VudDU+JyxrW2subGVuZ3RoXT0nPGE6YWNjZW50Nj48YTpzcmdiQ2xyIHZhbD0i'@; put 'Rjc5NjQ2Ii8+PC9hOmFjY2VudDY+JyxrW2subGVuZ3RoXT0nPGE6aGxpbms+PGE6c3JnYkNsciB2YWw9IjAwMDBGRiIvPjwvYTpobGluaz4nLGtbay5sZW5ndGhdPSc8YTpmb2xIbGluaz48YTpzcmdiQ2xyIHZhbD0iODAwMDgwIi8+PC9hOmZvbEhsaW5rPicsa1trLmxlbmd0aF09IjwvYTpj'@; put 'bHJTY2hlbWU+IixrW2subGVuZ3RoXT0nPGE6Zm9udFNjaGVtZSBuYW1lPSJPZmZpY2UiPicsa1trLmxlbmd0aF09IjxhOm1ham9yRm9udD4iLGtbay5sZW5ndGhdPSc8YTpsYXRpbiB0eXBlZmFjZT0iQ2FtYnJpYSIvPicsa1trLmxlbmd0aF09JzxhOmVhIHR5cGVmYWNlPSIiLz4nLGtbay5s'@; put 'ZW5ndGhdPSc8YTpjcyB0eXBlZmFjZT0iIi8+JyxrW2subGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkpwYW4iIHR5cGVmYWNlPSJcdWZmMmRcdWZmMzMgXHVmZjMwXHUzMGI0XHUzMGI3XHUzMGMzXHUzMGFmIi8+JyxrW2subGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkhhbmciIHR5cGVmYWNl'@; put 'PSJcdWI5ZDFcdWM3NDAgXHVhY2UwXHViNTE1Ii8+JyxrW2subGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkhhbnMiIHR5cGVmYWNlPSJcdTViOGJcdTRmNTMiLz4nLGtbay5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iSGFudCIgdHlwZWZhY2U9Ilx1NjViMFx1N2QzMFx1NjYwZVx1OWFkNCIv'@; put 'Picsa1trLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJBcmFiIiB0eXBlZmFjZT0iVGltZXMgTmV3IFJvbWFuIi8+JyxrW2subGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkhlYnIiIHR5cGVmYWNlPSJUaW1lcyBOZXcgUm9tYW4iLz4nLGtbay5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVGhh'@; put 'aSIgdHlwZWZhY2U9IlRhaG9tYSIvPicsa1trLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJFdGhpIiB0eXBlZmFjZT0iTnlhbGEiLz4nLGtbay5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iQmVuZyIgdHlwZWZhY2U9IlZyaW5kYSIvPicsa1trLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJH'@; put 'dWpyIiB0eXBlZmFjZT0iU2hydXRpIi8+JyxrW2subGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IktobXIiIHR5cGVmYWNlPSJNb29sQm9yYW4iLz4nLGtbay5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iS25kYSIgdHlwZWZhY2U9IlR1bmdhIi8+JyxrW2subGVuZ3RoXT0nPGE6Zm9udCBzY3Jp'@; put 'cHQ9Ikd1cnUiIHR5cGVmYWNlPSJSYWF2aSIvPicsa1trLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJDYW5zIiB0eXBlZmFjZT0iRXVwaGVtaWEiLz4nLGtbay5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iQ2hlciIgdHlwZWZhY2U9IlBsYW50YWdlbmV0IENoZXJva2VlIi8+JyxrW2subGVu'@; put 'Z3RoXT0nPGE6Zm9udCBzY3JpcHQ9IllpaWkiIHR5cGVmYWNlPSJNaWNyb3NvZnQgWWkgQmFpdGkiLz4nLGtbay5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVGlidCIgdHlwZWZhY2U9Ik1pY3Jvc29mdCBIaW1hbGF5YSIvPicsa1trLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJUaGFhIiB0'@; put 'eXBlZmFjZT0iTVYgQm9saSIvPicsa1trLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJEZXZhIiB0eXBlZmFjZT0iTWFuZ2FsIi8+JyxrW2subGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlRlbHUiIHR5cGVmYWNlPSJHYXV0YW1pIi8+JyxrW2subGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlRh'@; put 'bWwiIHR5cGVmYWNlPSJMYXRoYSIvPicsa1trLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJTeXJjIiB0eXBlZmFjZT0iRXN0cmFuZ2VsbyBFZGVzc2EiLz4nLGtbay5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iT3J5YSIgdHlwZWZhY2U9IkthbGluZ2EiLz4nLGtbay5sZW5ndGhdPSc8YTpm'@; put 'b250IHNjcmlwdD0iTWx5bSIgdHlwZWZhY2U9IkthcnRpa2EiLz4nLGtbay5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iTGFvbyIgdHlwZWZhY2U9IkRva0NoYW1wYSIvPicsa1trLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJTaW5oIiB0eXBlZmFjZT0iSXNrb29sYSBQb3RhIi8+JyxrW2su'@; put 'bGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ik1vbmciIHR5cGVmYWNlPSJNb25nb2xpYW4gQmFpdGkiLz4nLGtbay5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVmlldCIgdHlwZWZhY2U9IlRpbWVzIE5ldyBSb21hbiIvPicsa1trLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJVaWdoIiB0eXBl'@; put 'ZmFjZT0iTWljcm9zb2Z0IFVpZ2h1ciIvPicsa1trLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJHZW9yIiB0eXBlZmFjZT0iU3lsZmFlbiIvPicsa1trLmxlbmd0aF09IjwvYTptYWpvckZvbnQ+IixrW2subGVuZ3RoXT0iPGE6bWlub3JGb250PiIsa1trLmxlbmd0aF09JzxhOmxhdGluIHR5'@; put 'cGVmYWNlPSJDYWxpYnJpIi8+JyxrW2subGVuZ3RoXT0nPGE6ZWEgdHlwZWZhY2U9IiIvPicsa1trLmxlbmd0aF09JzxhOmNzIHR5cGVmYWNlPSIiLz4nLGtbay5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iSnBhbiIgdHlwZWZhY2U9Ilx1ZmYyZFx1ZmYzMyBcdWZmMzBcdTMwYjRcdTMwYjdc'@; put 'dTMwYzNcdTMwYWYiLz4nLGtbay5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iSGFuZyIgdHlwZWZhY2U9Ilx1YjlkMVx1Yzc0MCBcdWFjZTBcdWI1MTUiLz4nLGtbay5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iSGFucyIgdHlwZWZhY2U9Ilx1NWI4Ylx1NGY1MyIvPicsa1trLmxlbmd0aF09'@; put 'JzxhOmZvbnQgc2NyaXB0PSJIYW50IiB0eXBlZmFjZT0iXHU2NWIwXHU3ZDMwXHU2NjBlXHU5YWQ0Ii8+JyxrW2subGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkFyYWIiIHR5cGVmYWNlPSJBcmlhbCIvPicsa1trLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJIZWJyIiB0eXBlZmFjZT0iQXJp'@; put 'YWwiLz4nLGtbay5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVGhhaSIgdHlwZWZhY2U9IlRhaG9tYSIvPicsa1trLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJFdGhpIiB0eXBlZmFjZT0iTnlhbGEiLz4nLGtbay5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iQmVuZyIgdHlwZWZhY2U9IlZy'@; put 'aW5kYSIvPicsa1trLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJHdWpyIiB0eXBlZmFjZT0iU2hydXRpIi8+JyxrW2subGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IktobXIiIHR5cGVmYWNlPSJEYXVuUGVuaCIvPicsa1trLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJLbmRhIiB0eXBlZmFj'@; put 'ZT0iVHVuZ2EiLz4nLGtbay5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iR3VydSIgdHlwZWZhY2U9IlJhYXZpIi8+JyxrW2subGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkNhbnMiIHR5cGVmYWNlPSJFdXBoZW1pYSIvPicsa1trLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJDaGVyIiB0eXBl'@; put 'ZmFjZT0iUGxhbnRhZ2VuZXQgQ2hlcm9rZWUiLz4nLGtbay5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iWWlpaSIgdHlwZWZhY2U9Ik1pY3Jvc29mdCBZaSBCYWl0aSIvPicsa1trLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJUaWJ0IiB0eXBlZmFjZT0iTWljcm9zb2Z0IEhpbWFsYXlhIi8+'@; put 'JyxrW2subGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlRoYWEiIHR5cGVmYWNlPSJNViBCb2xpIi8+JyxrW2subGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkRldmEiIHR5cGVmYWNlPSJNYW5nYWwiLz4nLGtbay5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVGVsdSIgdHlwZWZhY2U9IkdhdXRh'@; put 'bWkiLz4nLGtbay5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVGFtbCIgdHlwZWZhY2U9IkxhdGhhIi8+JyxrW2subGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlN5cmMiIHR5cGVmYWNlPSJFc3RyYW5nZWxvIEVkZXNzYSIvPicsa1trLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJPcnlhIiB0'@; put 'eXBlZmFjZT0iS2FsaW5nYSIvPicsa1trLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJNbHltIiB0eXBlZmFjZT0iS2FydGlrYSIvPicsa1trLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJMYW9vIiB0eXBlZmFjZT0iRG9rQ2hhbXBhIi8+JyxrW2subGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9'@; put 'IlNpbmgiIHR5cGVmYWNlPSJJc2tvb2xhIFBvdGEiLz4nLGtbay5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iTW9uZyIgdHlwZWZhY2U9Ik1vbmdvbGlhbiBCYWl0aSIvPicsa1trLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJWaWV0IiB0eXBlZmFjZT0iQXJpYWwiLz4nLGtbay5sZW5ndGhd'@; put 'PSc8YTpmb250IHNjcmlwdD0iVWlnaCIgdHlwZWZhY2U9Ik1pY3Jvc29mdCBVaWdodXIiLz4nLGtbay5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iR2VvciIgdHlwZWZhY2U9IlN5bGZhZW4iLz4nLGtbay5sZW5ndGhdPSI8L2E6bWlub3JGb250PiIsa1trLmxlbmd0aF09IjwvYTpmb250U2No'@; put 'ZW1lPiIsa1trLmxlbmd0aF09JzxhOmZtdFNjaGVtZSBuYW1lPSJPZmZpY2UiPicsa1trLmxlbmd0aF09IjxhOmZpbGxTdHlsZUxzdD4iLGtbay5sZW5ndGhdPSc8YTpzb2xpZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiLz48L2E6c29saWRGaWxsPicsa1trLmxlbmd0aF09JzxhOmdy'@; put 'YWRGaWxsIHJvdFdpdGhTaGFwZT0iMSI+JyxrW2subGVuZ3RoXT0iPGE6Z3NMc3Q+IixrW2subGVuZ3RoXT0nPGE6Z3MgcG9zPSIwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6dGludCB2YWw9IjUwMDAwIi8+PGE6c2F0TW9kIHZhbD0iMzAwMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6'@; put 'Z3M+JyxrW2subGVuZ3RoXT0nPGE6Z3MgcG9zPSIzNTAwMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRpbnQgdmFsPSIzNzAwMCIvPjxhOnNhdE1vZCB2YWw9IjMwMDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPicsa1trLmxlbmd0aF09JzxhOmdzIHBvcz0iMTAwMDAwIj48YTpz'@; put 'Y2hlbWVDbHIgdmFsPSJwaENsciI+PGE6dGludCB2YWw9IjE1MDAwIi8+PGE6c2F0TW9kIHZhbD0iMzUwMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+JyxrW2subGVuZ3RoXT0iPC9hOmdzTHN0PiIsa1trLmxlbmd0aF09JzxhOmxpbiBhbmc9IjE2MjAwMDAwIiBzY2FsZWQ9IjEiLz4nLGtb'@; put 'ay5sZW5ndGhdPSI8L2E6Z3JhZEZpbGw+IixrW2subGVuZ3RoXT0nPGE6Z3JhZEZpbGwgcm90V2l0aFNoYXBlPSIxIj4nLGtbay5sZW5ndGhdPSI8YTpnc0xzdD4iLGtbay5sZW5ndGhdPSc8YTpncyBwb3M9IjAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTp0aW50IHZhbD0iMTAwMDAw'@; put 'Ii8+PGE6c2hhZGUgdmFsPSIxMDAwMDAiLz48YTpzYXRNb2QgdmFsPSIxMzAwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz4nLGtbay5sZW5ndGhdPSc8YTpncyBwb3M9IjEwMDAwMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRpbnQgdmFsPSI1MDAwMCIvPjxhOnNoYWRlIHZhbD0i'@; put 'MTAwMDAwIi8+PGE6c2F0TW9kIHZhbD0iMzUwMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+JyxrW2subGVuZ3RoXT0iPC9hOmdzTHN0PiIsa1trLmxlbmd0aF09JzxhOmxpbiBhbmc9IjE2MjAwMDAwIiBzY2FsZWQ9IjAiLz4nLGtbay5sZW5ndGhdPSI8L2E6Z3JhZEZpbGw+IixrW2subGVu'@; put 'Z3RoXT0iPC9hOmZpbGxTdHlsZUxzdD4iLGtbay5sZW5ndGhdPSI8YTpsblN0eWxlTHN0PiIsa1trLmxlbmd0aF09JzxhOmxuIHc9Ijk1MjUiIGNhcD0iZmxhdCIgY21wZD0ic25nIiBhbGduPSJjdHIiPjxhOnNvbGlkRmlsbD48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6c2hhZGUgdmFs'@; put 'PSI5NTAwMCIvPjxhOnNhdE1vZCB2YWw9IjEwNTAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOnNvbGlkRmlsbD48YTpwcnN0RGFzaCB2YWw9InNvbGlkIi8+PC9hOmxuPicsa1trLmxlbmd0aF09JzxhOmxuIHc9IjI1NDAwIiBjYXA9ImZsYXQiIGNtcGQ9InNuZyIgYWxnbj0iY3RyIj48YTpzb2xp'@; put 'ZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiLz48L2E6c29saWRGaWxsPjxhOnByc3REYXNoIHZhbD0ic29saWQiLz48L2E6bG4+JyxrW2subGVuZ3RoXT0nPGE6bG4gdz0iMzgxMDAiIGNhcD0iZmxhdCIgY21wZD0ic25nIiBhbGduPSJjdHIiPjxhOnNvbGlkRmlsbD48YTpzY2hlbWVD'@; put 'bHIgdmFsPSJwaENsciIvPjwvYTpzb2xpZEZpbGw+PGE6cHJzdERhc2ggdmFsPSJzb2xpZCIvPjwvYTpsbj4nLGtbay5sZW5ndGhdPSI8L2E6bG5TdHlsZUxzdD4iLGtbay5sZW5ndGhdPSI8YTplZmZlY3RTdHlsZUxzdD4iLGtbay5sZW5ndGhdPSI8YTplZmZlY3RTdHlsZT4iLGtbay5sZW5n'@; put 'dGhdPSI8YTplZmZlY3RMc3Q+IixrW2subGVuZ3RoXT0nPGE6b3V0ZXJTaGR3IGJsdXJSYWQ9IjQwMDAwIiBkaXN0PSIyMDAwMCIgZGlyPSI1NDAwMDAwIiByb3RXaXRoU2hhcGU9IjAiPjxhOnNyZ2JDbHIgdmFsPSIwMDAwMDAiPjxhOmFscGhhIHZhbD0iMzgwMDAiLz48L2E6c3JnYkNscj48'@; put 'L2E6b3V0ZXJTaGR3Picsa1trLmxlbmd0aF09IjwvYTplZmZlY3RMc3Q+IixrW2subGVuZ3RoXT0iPC9hOmVmZmVjdFN0eWxlPiIsa1trLmxlbmd0aF09IjxhOmVmZmVjdFN0eWxlPiIsa1trLmxlbmd0aF09IjxhOmVmZmVjdExzdD4iLGtbay5sZW5ndGhdPSc8YTpvdXRlclNoZHcgYmx1clJh'@; put 'ZD0iNDAwMDAiIGRpc3Q9IjIzMDAwIiBkaXI9IjU0MDAwMDAiIHJvdFdpdGhTaGFwZT0iMCI+PGE6c3JnYkNsciB2YWw9IjAwMDAwMCI+PGE6YWxwaGEgdmFsPSIzNTAwMCIvPjwvYTpzcmdiQ2xyPjwvYTpvdXRlclNoZHc+JyxrW2subGVuZ3RoXT0iPC9hOmVmZmVjdExzdD4iLGtbay5sZW5n'@; put 'dGhdPSI8L2E6ZWZmZWN0U3R5bGU+IixrW2subGVuZ3RoXT0iPGE6ZWZmZWN0U3R5bGU+IixrW2subGVuZ3RoXT0iPGE6ZWZmZWN0THN0PiIsa1trLmxlbmd0aF09JzxhOm91dGVyU2hkdyBibHVyUmFkPSI0MDAwMCIgZGlzdD0iMjMwMDAiIGRpcj0iNTQwMDAwMCIgcm90V2l0aFNoYXBlPSIw'@; put 'Ij48YTpzcmdiQ2xyIHZhbD0iMDAwMDAwIj48YTphbHBoYSB2YWw9IjM1MDAwIi8+PC9hOnNyZ2JDbHI+PC9hOm91dGVyU2hkdz4nLGtbay5sZW5ndGhdPSI8L2E6ZWZmZWN0THN0PiIsa1trLmxlbmd0aF09JzxhOnNjZW5lM2Q+PGE6Y2FtZXJhIHByc3Q9Im9ydGhvZ3JhcGhpY0Zyb250Ij48'@; put 'YTpyb3QgbGF0PSIwIiBsb249IjAiIHJldj0iMCIvPjwvYTpjYW1lcmE+PGE6bGlnaHRSaWcgcmlnPSJ0aHJlZVB0IiBkaXI9InQiPjxhOnJvdCBsYXQ9IjAiIGxvbj0iMCIgcmV2PSIxMjAwMDAwIi8+PC9hOmxpZ2h0UmlnPjwvYTpzY2VuZTNkPicsa1trLmxlbmd0aF09JzxhOnNwM2Q+PGE6'@; put 'YmV2ZWxUIHc9IjYzNTAwIiBoPSIyNTQwMCIvPjwvYTpzcDNkPicsa1trLmxlbmd0aF09IjwvYTplZmZlY3RTdHlsZT4iLGtbay5sZW5ndGhdPSI8L2E6ZWZmZWN0U3R5bGVMc3Q+IixrW2subGVuZ3RoXT0iPGE6YmdGaWxsU3R5bGVMc3Q+IixrW2subGVuZ3RoXT0nPGE6c29saWRGaWxsPjxh'@; put 'OnNjaGVtZUNsciB2YWw9InBoQ2xyIi8+PC9hOnNvbGlkRmlsbD4nLGtbay5sZW5ndGhdPSc8YTpncmFkRmlsbCByb3RXaXRoU2hhcGU9IjEiPicsa1trLmxlbmd0aF09IjxhOmdzTHN0PiIsa1trLmxlbmd0aF09JzxhOmdzIHBvcz0iMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRp'@; put 'bnQgdmFsPSI0MDAwMCIvPjxhOnNhdE1vZCB2YWw9IjM1MDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPicsa1trLmxlbmd0aF09JzxhOmdzIHBvcz0iNDAwMDAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTp0aW50IHZhbD0iNDUwMDAiLz48YTpzaGFkZSB2YWw9Ijk5MDAwIi8+PGE6'@; put 'c2F0TW9kIHZhbD0iMzUwMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+JyxrW2subGVuZ3RoXT0nPGE6Z3MgcG9zPSIxMDAwMDAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTpzaGFkZSB2YWw9IjIwMDAwIi8+PGE6c2F0TW9kIHZhbD0iMjU1MDAwIi8+PC9hOnNjaGVtZUNscj48L2E6'@; put 'Z3M+JyxrW2subGVuZ3RoXT0iPC9hOmdzTHN0PiIsa1trLmxlbmd0aF09JzxhOnBhdGggcGF0aD0iY2lyY2xlIj48YTpmaWxsVG9SZWN0IGw9IjUwMDAwIiB0PSItODAwMDAiIHI9IjUwMDAwIiBiPSIxODAwMDAiLz48L2E6cGF0aD4nLGtbay5sZW5ndGhdPSI8L2E6Z3JhZEZpbGw+IixrW2su'@; put 'bGVuZ3RoXT0nPGE6Z3JhZEZpbGwgcm90V2l0aFNoYXBlPSIxIj4nLGtbay5sZW5ndGhdPSI8YTpnc0xzdD4iLGtbay5sZW5ndGhdPSc8YTpncyBwb3M9IjAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTp0aW50IHZhbD0iODAwMDAiLz48YTpzYXRNb2QgdmFsPSIzMDAwMDAiLz48L2E6'@; put 'c2NoZW1lQ2xyPjwvYTpncz4nLGtbay5sZW5ndGhdPSc8YTpncyBwb3M9IjEwMDAwMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnNoYWRlIHZhbD0iMzAwMDAiLz48YTpzYXRNb2QgdmFsPSIyMDAwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz4nLGtbay5sZW5ndGhdPSI8L2E6Z3NM'@; put 'c3Q+IixrW2subGVuZ3RoXT0nPGE6cGF0aCBwYXRoPSJjaXJjbGUiPjxhOmZpbGxUb1JlY3QgbD0iNTAwMDAiIHQ9IjUwMDAwIiByPSI1MDAwMCIgYj0iNTAwMDAiLz48L2E6cGF0aD4nLGtbay5sZW5ndGhdPSI8L2E6Z3JhZEZpbGw+IixrW2subGVuZ3RoXT0iPC9hOmJnRmlsbFN0eWxlTHN0'@; put 'PiIsa1trLmxlbmd0aF09IjwvYTpmbXRTY2hlbWU+IixrW2subGVuZ3RoXT0iPC9hOnRoZW1lRWxlbWVudHM+IixrW2subGVuZ3RoXT0iPGE6b2JqZWN0RGVmYXVsdHM+IixrW2subGVuZ3RoXT0iPGE6c3BEZWY+IixrW2subGVuZ3RoXT0nPGE6c3BQci8+PGE6Ym9keVByLz48YTpsc3RTdHls'@; put 'ZS8+PGE6c3R5bGU+PGE6bG5SZWYgaWR4PSIxIj48YTpzY2hlbWVDbHIgdmFsPSJhY2NlbnQxIi8+PC9hOmxuUmVmPjxhOmZpbGxSZWYgaWR4PSIzIj48YTpzY2hlbWVDbHIgdmFsPSJhY2NlbnQxIi8+PC9hOmZpbGxSZWY+PGE6ZWZmZWN0UmVmIGlkeD0iMiI+PGE6c2NoZW1lQ2xyIHZhbD0i'@; put 'YWNjZW50MSIvPjwvYTplZmZlY3RSZWY+PGE6Zm9udFJlZiBpZHg9Im1pbm9yIj48YTpzY2hlbWVDbHIgdmFsPSJsdDEiLz48L2E6Zm9udFJlZj48L2E6c3R5bGU+JyxrW2subGVuZ3RoXT0iPC9hOnNwRGVmPiIsa1trLmxlbmd0aF09IjxhOmxuRGVmPiIsa1trLmxlbmd0aF09JzxhOnNwUHIv'@; put 'PjxhOmJvZHlQci8+PGE6bHN0U3R5bGUvPjxhOnN0eWxlPjxhOmxuUmVmIGlkeD0iMiI+PGE6c2NoZW1lQ2xyIHZhbD0iYWNjZW50MSIvPjwvYTpsblJlZj48YTpmaWxsUmVmIGlkeD0iMCI+PGE6c2NoZW1lQ2xyIHZhbD0iYWNjZW50MSIvPjwvYTpmaWxsUmVmPjxhOmVmZmVjdFJlZiBpZHg9'@; put 'IjEiPjxhOnNjaGVtZUNsciB2YWw9ImFjY2VudDEiLz48L2E6ZWZmZWN0UmVmPjxhOmZvbnRSZWYgaWR4PSJtaW5vciI+PGE6c2NoZW1lQ2xyIHZhbD0idHgxIi8+PC9hOmZvbnRSZWY+PC9hOnN0eWxlPicsa1trLmxlbmd0aF09IjwvYTpsbkRlZj4iLGtbay5sZW5ndGhdPSI8L2E6b2JqZWN0'@; put 'RGVmYXVsdHM+IixrW2subGVuZ3RoXT0iPGE6ZXh0cmFDbHJTY2hlbWVMc3QvPiIsa1trLmxlbmd0aF09IjwvYTp0aGVtZT4iLGsuam9pbigiIil9ZnVuY3Rpb24gWnYoUyl7dmFyIE89Uy5yZWFkX3NoaWZ0KDIpLGs9Uy5yZWFkX3NoaWZ0KDIpLTQsSz1bT107c3dpdGNoKE8pe2Nhc2UgNDpj'@; put 'YXNlIDU6Y2FzZSA3OmNhc2UgODpjYXNlIDk6Y2FzZSAxMDpjYXNlIDExOmNhc2UgMTM6S1sxXT1mdW5jdGlvbiBSQyhTKXt2YXIgTz17fTtzd2l0Y2goTy54Y2xyVHlwZT1TLnJlYWRfc2hpZnQoMiksTy5uVGludFNoYWRlPVMucmVhZF9zaGlmdCgyKSxPLnhjbHJUeXBlKXtjYXNlIDA6Y2Fz'@; put 'ZSA0OlMubCs9NDticmVhaztjYXNlIDE6Ty54Y2xyVmFsdWU9ZnVuY3Rpb24gdUIoUyxPKXtyZXR1cm4gUm4oUyxPKX0oUyw0KTticmVhaztjYXNlIDI6Ty54Y2xyVmFsdWU9a2YoUyk7YnJlYWs7Y2FzZSAzOk8ueGNsclZhbHVlPWZ1bmN0aW9uIEhrKFMpe3JldHVybiBTLnJlYWRfc2hpZnQo'@; put 'NCl9KFMpfXJldHVybiBTLmwrPTgsT30oUyk7YnJlYWs7Y2FzZSA2OktbMV09ZnVuY3Rpb24gRzMoUyxPKXtyZXR1cm4gUm4oUyxPKX0oUyxrKTticmVhaztjYXNlIDE0OmNhc2UgMTU6S1sxXT1TLnJlYWRfc2hpZnQoMT09PWs/MToyKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigi'@; put 'VW5yZWNvZ25pemVkIEV4dFByb3AgdHlwZTogIitPKyIgIitrKX1yZXR1cm4gS31mdW5jdGlvbiBOayhTLE8pe08uZm9yRWFjaChmdW5jdGlvbihrKXtzd2l0Y2goa1swXSl7Y2FzZSA0OmNhc2UgNTpjYXNlIDY6Y2FzZSA3OmNhc2UgODpjYXNlIDk6Y2FzZSAxMDpjYXNlIDExOmNhc2UgMTQ6'@; put 'Y2FzZSAxNTpicmVhaztjYXNlIDEzOlMuZm9udCYmUy5mb250LmNvbG9yJiZBcnJheS5pc0FycmF5KGtbMV0ueGNsclZhbHVlKSYmKFMuZm9udC5jb2xvci5yZ2I9cGQoa1sxXS54Y2xyVmFsdWUpKX19KX1mdW5jdGlvbiBpcyhTKXtyZXR1cm4gUy85MTQ0MDAqUGZ9ZnVuY3Rpb24gVmsoUyxP'@; put 'KXt2YXIgaz17fTtpZihTLnBvcylrLng9aXMoUy5wb3MueCksay55PWlzKFMucG9zLnkpO2Vsc2V7aWYoIVMuZnJvbSl0aHJvdyJiYWQgYW5jaG9yIHN0YXJ0IjtrLnI9Uy5mcm9tLnJ8fDAsay5jPVMuZnJvbS5jfHwwLFMuZnJvbS5jT2ZmJiYoay54PWlzKFMuZnJvbS5jT2ZmKSksUy5mcm9t'@; put 'LnJPZmYmJihrLnk9aXMoUy5mcm9tLnJPZmYpKX1pZihTLmV4dClrLnc9aXMoUy5leHQueCksay5oPWlzKFMuZXh0LnkpO2Vsc2V7aWYoIVMudG8pdGhyb3ciYmFkIGFuY2hvciBlbmQiO2suQz1TLnRvLmMsay5SPVMudG8ucixTLnRvLmNPZmYmJihrLlg9aXMoUy50by5jT2ZmKSksUy50by5y'@; put 'T2ZmJiYoay5ZPWlzKFMudG8uck9mZikpfXJldHVybiBrfWZ1bmN0aW9uIEQ1KFMsTyl7dmFyIGs9e3g6LTEseTotMSx3Oi0xLGg6LTF9O2lmKFMucG9zKWsueD1pcyhTLnBvcy54KSxrLnk9aXMoUy5wb3MueSk7ZWxzZXtpZighUy5mcm9tKXRocm93ImJhZCBhbmNob3Igc3RhcnQiO2sueD1J'@; put 'NShPLFMuZnJvbS5jLCJDIikraXMoUy5mcm9tLmNPZmYpLGsueT1JNShPLFMuZnJvbS5yLCJSIikraXMoUy5mcm9tLnJPZmYpfWlmKFMuZXh0KWsudz1pcyhTLmV4dC54KSxrLmg9aXMoUy5leHQueSk7ZWxzZXtpZighUy50byl0aHJvdyJiYWQgYW5jaG9yIGVuZCI7ay53PUk1KE8sUy50by5j'@; put 'LCJDIikraXMoUy50by5jT2ZmKS1rLngsay5oPUk1KE8sUy50by5yLCJSIikraXMoUy50by5yT2ZmKS1rLnl9cmV0dXJuIGt9ZnVuY3Rpb24gTEMoUyxPKXt2YXIgaz17cjotMSxjOi0xLHg6LTEseTotMSxSOi0xLEM6LTEsWDotMSxZOi0xfTtzd2l0Y2goUy50eXBlKXtjYXNlInR3b0NlbGxB'@; put 'bmNob3IiOmsucj1TLmZyb20ucixrLnk9aXMoUy5mcm9tLnJPZmYpLGsuUj1TLnRvLnIsay5ZPWlzKFMudG8uck9mZiksay5jPVMuZnJvbS5jLGsueD1pcyhTLmZyb20uY09mZiksay5DPVMudG8uYyxrLlg9aXMoUy50by5jT2ZmKTticmVhaztjYXNlIm9uZUNlbGxBbmNob3IiOmsucj1TLmZy'@; put 'b20ucixrLnk9aXMoUy5mcm9tLnJPZmYpO3ZhciBLPUhmKE8say5yLGsueStpcyhTLmV4dC55KSk7ay5SPUtbMF0say5ZPUtbMV0say5jPVMuZnJvbS5jLGsueD1pcyhTLmZyb20uY09mZik7dmFyIGVlPSQzKE8say5jLGsueCtpcyhTLmV4dC54KSk7ay5DPWVlWzBdLGsuWD1lZVsxXTticmVh'@; put 'aztjYXNlImFic29sdXRlQW5jaG9yIjp2YXIgb2U9SGYoTywwLGlzKFMucG9zLnkpKTtrLnI9b2VbMF0say55PW9lWzFdO3ZhciBtZT1IZihPLGsucixrLnkraXMoUy5leHQueSkpO2suUj1tZVswXSxrLlk9bWVbMV07dmFyIHBlPUhmKE8sMCxpcyhTLnBvcy54KSk7ay5jPXBlWzBdLGsueD1w'@; put 'ZVsxXTt2YXIgYmU9SGYoTyxrLmMsay54K2lzKFMuZXh0LngpKTtrLkM9YmVbMF0say5YPWJlWzFdO2JyZWFrO2RlZmF1bHQ6dGhyb3ciYmFkIGFuY2hvciB0eXBlICIrUy50eXBlfXJldHVybiBrfWZ1bmN0aW9uIEJrKFMsTyl7dmFyIGs9Uy50cmltKCkuc3BsaXQoL1xzKixccyovKTtPWyIh'@; put 'cG9zIl09e2M6K2tbMF0seDora1sxXSxyOitrWzJdLHk6K2tbM10sQzora1s0XSxYOitrWzVdLFI6K2tbNl0sWTora1s3XX19ZnVuY3Rpb24gaEIoUyxPLGspe3ZhciBLPS0xO2lmKG51bGwhPVMuUnx8bnVsbCE9Uy5DKUs9MDtlbHNle2lmKG51bGw9PVMueHx8bnVsbD09Uy55fHxudWxsPT1T'@; put 'Lnd8fG51bGw9PVMuaCl0aHJvdyJjYW5ub3QgcGFyc2UgYW5jaG9yICIrSlNPTi5zdHJpbmdpZnkoUyk7Sz0xKzIqIShTLmN8fFMucil9aWYoSyE9Tyl7c3dpdGNoKE8pe2Nhc2UgMDpjYXNlIDE6aWYoMyE9SylicmVhazt2YXIgZWU9JDMoayxTLmN8fDAsUy54fHwwKTtTLmM9ZWVbMF0sUy54'@; put 'PWVlWzFdO3ZhciBvZT1IZihrLFMucnx8MCxTLnl8fDApO1Mucj1vZVswXSxTLnk9b2VbMV07YnJlYWs7Y2FzZSAzOmlmKDM9PUspYnJlYWs7dmFyIG1lPVMuY3x8MCxwZT1TLnh8fDA7ZGVsZXRlIFMuYyxkZWxldGUgUy54LFMueD0obWU/V3YoayxtZSk6MCkrcGU7dmFyIGJlPVMucnx8MCxQ'@; put 'ZT1TLnl8fDA7ZGVsZXRlIFMucixkZWxldGUgUy55LFMueT0oYmU/TzQoayxiZSk6MCkrUGU7YnJlYWs7ZGVmYXVsdDp0aHJvdyJjb252ZXJ0X2FuY2hvciB1bnJlY29nbml6ZWQgdHlwZSAiK099c3dpdGNoKE8pe2Nhc2UgMDppZigwPT1LKWJyZWFrO3ZhciBWZT0kMyhrLFMuY3x8MCwoUy54'@; put 'fHwwKStTLncpO2RlbGV0ZSBTLncsUy5DPVZlWzBdLFMuWD1WZVsxXTt2YXIgWWU9SGYoayxTLnJ8fDAsKFMueXx8MCkrUy5oKTtkZWxldGUgUy5oLFMuUj1ZZVswXSxTLlk9WWVbMV07YnJlYWs7Y2FzZSAxOmNhc2UgMzppZigwIT1LKWJyZWFrO3ZhciBldD1TLkN8fDAsY3Q9Uy5YfHwwO2Rl'@; put 'bGV0ZSBTLkMsZGVsZXRlIFMuWCxTLnc9V3YoayxldCkrY3QtKFMuYz9XdihrLFMuYyk6MCktKFMueHx8MCk7dmFyIFR0PVMuUnx8MCxpdD1TLll8fDA7ZGVsZXRlIFMuUixkZWxldGUgUy5ZLFMuaD1PNChrLFR0KStpdC0oUy5yP080KGssUy5yKTowKS0oUy55fHwwKTticmVhaztkZWZhdWx0'@; put 'OnRocm93ImNvbnZlcnRfYW5jaG9yIHVucmVjb2duaXplZCB0eXBlICIrT319fWZ1bmN0aW9uIGZCKFMpe3ZhciBPPVtTLmN8fDAsTWF0aC5yb3VuZChTLnh8fDApLFMucnx8MCxNYXRoLnJvdW5kKFMueXx8MCldO3JldHVybihPPU8uY29uY2F0KFMuaCYmUy53P1tPWzBdLE1hdGgucm91bmQo'@; put 'T1sxXStTLncpLE9bMl0sTWF0aC5yb3VuZChPWzNdK1MuaCldOltTLkN8fDAsTWF0aC5yb3VuZChTLlh8fDApLFMuUnx8MCxNYXRoLnJvdW5kKFMuWXx8MCldKSkuam9pbigiLCAiKX1mdW5jdGlvbiBPNChTLE8pe2lmKCFTKXJldHVybiAwO2Zvcih2YXIgaz0wOy0tTz49MDspe3ZhciBLPSgo'@; put 'U1siIXJvd3MiXXx8W10pW09dfHx7fSkuaHB4O251bGw9PUsmJihLPSgoU1siIXNoZWV0Rm9ybWF0Il18fHt9KS5yb3d8fHt9KS5ocHgpLG51bGw9PUsmJihLPTI0KSxrKz1LfXJldHVybiBrfWZ1bmN0aW9uIFd2KFMsTyl7aWYoIVMpcmV0dXJuIDA7Zm9yKHZhciBrPTA7LS1PPj0wOyl7dmFy'@; put 'IEs9KChTWyIhY29scyJdfHxbXSlbT118fHt9KS53cHg7aWYobnVsbD09SyYmKEs9KChTWyIhc2hlZXRGb3JtYXQiXXx8e30pLmNvbHx8e30pLndweCksbnVsbD09Syl7dmFyIGVlPXt3Y2g6OC40M307SjAoZWUpLFNbIiFjb2xzIl0mJihTWyIhY29scyJdW09dPWVlKSxLPWVlLndweH1rKz1L'@; put 'fXJldHVybiBrfWZ1bmN0aW9uIEk1KFMsTyxrKXtyZXR1cm4iQyI9PWs/V3YoUyxPKTpPNChTLE8pfWZ1bmN0aW9uIEhmKFMsTyxrKXt2YXIgSz1bTyxrXTtpZighUylyZXR1cm4gSztmb3IoOzspe3ZhciBlZT0oU1siIXJvd3MiXXx8W10pW0tbMF1dfHx7fTtpZihlZS5oaWRkZW4pKytLWzBd'@; put 'O2Vsc2V7dmFyIG9lPWVlLmhweDtpZihudWxsPT1vZSYmKG9lPSgoU1siIXNoZWV0Rm9ybWF0Il18fHt9KS5yb3d8fHt9KS5ocHgpLG51bGw9PW9lJiYob2U9b2goMTUpKSxLWzFdPG9lKWJyZWFrO0tbMF0rKyxLWzFdLT1vZX19cmV0dXJuIEt9ZnVuY3Rpb24gJDMoUyxPLGspe3ZhciBLPVtP'@; put 'LGtdO2lmKCFTKXJldHVybiBLO2Zvcig7Oyl7dmFyIGVlPShTWyIhY29scyJdfHxbXSlbS1swXV18fHt9O2lmKGVlLmhpZGRlbnx8MD09PWVlLndweCkrK0tbMF07ZWxzZXt2YXIgb2U9ZWUud3B4O2lmKG51bGw9PW9lJiYob2U9KChTWyIhc2hlZXRGb3JtYXQiXXx8e30pLmNvbHx8e30pLndw'@; put 'eCksbnVsbD09b2Upe3ZhciBtZT17d2NoOjguNDN9O0owKG1lKSxTWyIhY29scyJdJiYoU1siIWNvbHMiXVtLWzBdXT1tZSksb2U9bWUud3B4fWlmKEtbMV08b2UpYnJlYWs7S1swXSsrLEtbMV0tPW9lfX1yZXR1cm4gS31mdW5jdGlvbiBMMChTKXtyZXR1cm4oIjAwMDAwMCIrKCJudW1iZXIi'@; put 'PT10eXBlb2YgUz9TLnRvU3RyaW5nKDE2KTpTKSkuc2xpY2UoLTYpfWZ1bmN0aW9uIG1kKFMsTyxrKXt2YXIgSz0ic3RyaW5nIj09dHlwZW9mIE8/ISFrOiEhTzsic3RyaW5nIiE9dHlwZW9mIE8mJihPPSJjb2xvciIpO3ZhciBlZT0iPCIrTysiICI7cmV0dXJuIFMuYXV0bz9lZSsnYXV0bz0i'@; put 'MSIvPic6Uy5pbmRleCYmbnVsbD09Uy5yZ2I/ZWUrJ2luZGV4ZWQ9IicrUy5pbmRleCsnIi8+JzpudWxsIT1TLnRoZW1lP2VlKyd0aGVtZT0iJytTLnRoZW1lKyciJysoUy50aW50PycgdGludD0iJytTLnRpbnQrJyInOiIiKSsiLz4iOm51bGwhPVMucmdiP2VlKydyZ2I9IicrKEs/IkZGIjoi'@; put 'IikrTDAoUy5yZ2IpKyciLz4nOmVlKyIvPiJ9ZnVuY3Rpb24gUDQoUyxPKXtpZighU3x8bnVsbD09Uy5yZ2IpcmV0dXJuIE87Zm9yKHZhciBrPSgiMDAwMDAwIitTLnJnYi50b1N0cmluZygxNikpLnNsaWNlKC02KSxLPVtrLnNsaWNlKDAsMiksay5zbGljZSgyLDQpLGsuc2xpY2UoNCw2KV0u'@; put 'bWFwKGZ1bmN0aW9uKG1lKXtyZXR1cm4gcGFyc2VJbnQobWUsMTYpfSksZWU9MDtlZTx0MC5sZW5ndGg7KytlZSl7dmFyIG9lPXQwW2VlXTtpZihvZVswXT09S1swXSYmb2VbMV09PUtbMV0mJm9lWzJdPT1LWzJdKXJldHVybiBlZX1yZXR1cm4gdDAubGVuZ3RoPDY0Pyh0MC5wdXNoKFtLWzBd'@; put 'LEtbMV0sS1syXV0pLHQwLmxlbmd0aC0xKTpPfWZ1bmN0aW9uIGUxKFMpe3ZhciBPPVsiIiwiIiwiIl07aWYoIVMpcmV0dXJuW107dmFyIGs9IiIsSz1TJiZTLnM/ZnVuY3Rpb24gWXYoUyl7dmFyIE89WyIiLCIiXTtpZighUylyZXR1cm4gTztpZihTLnN6JiYoT1swXSs9IiYiK1Muc3osT1sx'@; put 'XT0iJjEyIitPWzFdKSxTLm5hbWUmJihPWzBdKz0nJiInK1MubmFtZSsnLFJlZ3VsYXIiJyxPWzFdPScmIi0sUmVndWxhciInK09bMV0pLFMuYm9sZCYmKE9bMF0rPSImQiIsT1sxXT0iJkIiK09bMV0pLFMudW5kZXJsaW5lKXt2YXIgaz0yPT1TLnVuZGVybGluZT8iJkUiOiImVSI7T1swXSs9'@; put 'ayxPWzFdPWsrT1sxXX1yZXR1cm4gUy5pdGFsaWMmJihPWzBdKz0iJkkiLE9bMV09IiZJIitPWzFdKSxTLmNvbG9yJiZudWxsIT1TLmNvbG9yLnJnYiYmKE9bMF0rPSImSyIrTDAoUy5jb2xvci5yZ2IpLE9bMV0rPSImSzAwMDAwMCIpLFMuc3RyaWtlJiYoT1swXSs9IiZTIixPWzFdPSImUyIr'@; put 'T1sxXSksInN1cGVyIj09Uy52YWxpZ24mJihPWzBdKz0iJlgiLE9bMV09IiZYIitPWzFdKSwic3ViIj09Uy52YWxpZ24mJihPWzBdKz0iJlkiLE9bMV09IiZZIitPWzFdKSxPfShTLnMpOlsiIiwiIl07cmV0dXJuInN0cmluZyI9PXR5cGVvZiBTP1tTLFMsU106bnVsbCE9Uy5maXJzdHx8bnVs'@; put 'bCE9Uy5ldmVufHxudWxsIT1TLm9kZD8obnVsbCE9Uy5vZGQmJihPWzBdPWUxKFMub2RkKVswXSksdm9pZCAwPT09Uy5maXJzdCYmT1swXSYmKE9bMV09T1swXSksbnVsbCE9Uy5maXJzdCYmKE9bMV09ZTEoUy5maXJzdClbMF0pLG51bGwhPVMuZXZlbiYmKE9bMl09ZTEoUy5ldmVuKVswXSks'@; put 'Tyk6Uy5sZWZ0fHxTLmNlbnRlcnx8Uy5yaWdodD8oUy5sZWZ0JiYoays9IiZMIitlMShTLmxlZnQpWzBdKSxTLmNlbnRlciYmKGsrPSImQyIrZTEoUy5jZW50ZXIpWzBdKSxTLnJpZ2h0JiYoays9IiZSIitlMShTLnJpZ2h0KVswXSksW2ssayxrXSk6bnVsbCE9Uy52P1trPUtbMF0rUy52LnJl'@; put 'cGxhY2UoLyYvZywiJiYiKStLWzFdLGssa106bnVsbCE9Uy53P1trPUtbMF0rUy53K0tbMV0sayxrXTpBcnJheS5pc0FycmF5KFMuUik/KFMuUi5mb3JFYWNoKGZ1bmN0aW9uKGVlKXtrKz1lMShlZSlbMF19KSxbayxrLGtdKTpbXX12YXIgbjg9ezE6IkxldHRlciIsMzoiVGFibG9pZCIsNToi'@; put 'TGVnYWwiLDc6IkV4ZWN1dGl2ZSIsODoiQTMiLDk6IkE0IiwxMToiQTUiLDEyOiJCNCIsMTM6IkI1IiwxNDoiRm9saW8iLDIwOiJFbnZlbG9wZSIsMzc6Ik1vbmFyY2giLDcwOiJBNiJ9LHBCPUhlKG44KTtYYS5DT05OPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNl'@; put 'RG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL2Nvbm5lY3Rpb25zIjt2YXIgbUI9SHIoImV4dGVybmFsTGluayIsbnVsbCx7eG1sbnM6R2kubWFpblswXX0pO1hhLklNRz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlw'@; put 'cy9pbWFnZSIsWGEuRFJBVz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9kcmF3aW5nIjt2YXIgeUI9e3Q6InRvcCIsY3RyOiJjZW50ZXIiLGI6ImJvdHRvbSIsanVzdDoidG9wIixkaXN0OiJ0b3AifSxSNT17Y3Ry'@; put 'OiJjZW50ZXIiLGRpc3Q6ImNlbnRlciIsanVzdDoiY2VudGVyIixqdXN0TG93OiJjZW50ZXIiLGw6ImxlZnQiLHI6InJpZ2h0Iix0aGFpRGlzdDoiY2VudGVyIn07ZnVuY3Rpb24gX0IoKXt2YXIgUz1bRGldO3JldHVybiBTLnB1c2goJzx4ZHI6d3NEciB4bWxuczp4ZHI9Imh0dHA6Ly9zY2hl'@; put 'bWFzLm9wZW54bWxmb3JtYXRzLm9yZy9kcmF3aW5nbWwvMjAwNi9zcHJlYWRzaGVldERyYXdpbmciIHhtbG5zOmE9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9kcmF3aW5nbWwvMjAwNi9tYWluIi8+JyksUy5qb2luKCIiKX1mdW5jdGlvbiBibmUoUyl7dmFyIGssTz1TWyIh'@; put 'ZGF0YSJdO3JldHVybiJiYXNlNjQiPT09U1siIWRhdGF0eXBlIl0/KChrPU8ubWF0Y2goL15kYXRhOi4qLC8pKSYmKE89Ty5zbGljZShrWzBdLmxlbmd0aCkpLF9lLmRlY29kZShPKSk6T31YYS5UQUJMRT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50'@; put 'LzIwMDYvcmVsYXRpb25zaGlwcy90YWJsZSI7dmFyIENCPS88KD86XHcrOik/c2hhcGUoPzpbXlx3XVtePl0qKT8+KFtcc1xTXSo/KTxcLyg/Olx3KzopP3NoYXBlPi9nO2Z1bmN0aW9uIFZDKFMsTyxrLEspe3ZhciBlZT1bMjE2MDAsMjE2MDBdLG9lPVsibTAsMGwwIixlZVsxXSxlZVswXSxl'@; put 'ZVsxXSxlZVswXSwiMHhlIl0uam9pbigiLCIpLG1lPVtIcigieG1sIixudWxsLHsieG1sbnM6diI6dmwudiwieG1sbnM6byI6dmwubywieG1sbnM6eCI6dmwueCwieG1sbnM6bXYiOnZsLm12fSkucmVwbGFjZSgvXC8+LywiPiIpLEhyKCJvOnNoYXBlbGF5b3V0IixIcigibzppZG1hcCIsbnVs'@; put 'bCx7InY6ZXh0IjoiZWRpdCJ9KSx7InY6ZXh0IjoiZWRpdCJ9KV0scGU9MTAyNCpTLGJlPWt8fFtdO2JlLmxlbmd0aD4wJiZtZS5wdXNoKEhyKCJ2OnNoYXBldHlwZSIsW0hyKCJ2OnN0cm9rZSIsbnVsbCx7am9pbnN0eWxlOiJtaXRlciJ9KSxIcigidjpwYXRoIixudWxsLHtzaGFkb3dvazoi'@; put 'ZiIsZXh0cnVzaW9ub2s6ImYiLHN0cm9rZW9rOiJmIixmaWxsb2s6ImYiLCJvOmNvbm5lY3R0eXBlIjoicmVjdCJ9KSxIcigibzpsb2NrIixudWxsLHsidjpleHQiOiJlZGl0IixzaGFwZXR5cGU6InQifSldLmpvaW4oIiIpLHtpZDoiX3gwMDAwX3QyMDEiLGNvb3Jkc2l6ZTplZS5qb2luKCIs'@; put 'IiksIm86c3B0IjoyMDEscGF0aDpvZX0pKSxiZS5mb3JFYWNoKGZ1bmN0aW9uKFZlKXsrK3BlLG1lPW1lLmNvbmNhdChmdW5jdGlvbiBpOChTLE8pe3ZhciBrPXtpZDoiX3gwMDAwX3MiK08sdHlwZToiI194MDAwMF90MjAxIixzdHlsZToibXNvLXdyYXAtc3R5bGU6dGlnaHQifTsoIlJhZGlv'@; put 'Ij09U1siIXR5cGUiXXx8IkNoZWNrYm94Ij09U1siIXR5cGUiXXx8Ikxpc3QiPT1TWyIhdHlwZSJdfHwiRHJvcCI9PVNbIiF0eXBlIl0pJiYoay5zdHJva2VkPSJmIiksIkxhYmVsIj09U1siIXR5cGUiXSYmKGsuZmlsbGVkPSJmIik7dmFyIEs9IiI7Uy50JiZCQ1tTWyIhdHlwZSJdXSYmKEs9'@; put 'QkNbU1siIXR5cGUiXV0ucmVwbGFjZSgvIyMjIy8sUHIoUy50KSkpO3ZhciBlZT1bXTtyZXR1cm4gUy5tYWNybyYmZWUucHVzaChWYSgieDpGbWxhTWFjcm8iLFMubWFjcm8pKSxTLmxpbmsmJmVlLnB1c2goVmEoIng6Rm1sYUxpbmsiLFMubGluaykpLFMudmFsJiZlZS5wdXNoKFZhKCJSYWRp'@; put 'byI9PVNbIiF0eXBlIl18fCJDaGVja2JveCI9PVNbIiF0eXBlIl0/Ing6Q2hlY2tlZCI6Ing6VmFsIixTdHJpbmcoUy52YWwpKSksUy5yZWYmJmVlLnB1c2goVmEoIng6Rm1sYVJhbmdlIixTLnJlZikpLFMuc2VsJiYiTGlzdCI9PVNbIiF0eXBlIl0mJmVlLnB1c2goVmEoIng6U2VsVHlwZSIs'@; put 'Uy5zZWwpKSxTLm1pbiYmZWUucHVzaChWYSgieDpNaW4iLFN0cmluZyhTLm1pbikpKSxTLm1heCYmZWUucHVzaChWYSgieDpNYXgiLFN0cmluZyhTLm1heCkpKSxTLnN0ZXAmJmVlLnB1c2goVmEoIng6SW5jIixTdHJpbmcoUy5zdGVwKSkpLFMucGFnZSYmZWUucHVzaChWYSgieDpQYWdlIixT'@; put 'dHJpbmcoUy5wYWdlKSkpLFtdLmNvbmNhdChbIjx2OnNoYXBlIitEdShrKSsiPiJdKS5jb25jYXQoakNbU1siIXR5cGUiXV18fFtdKS5jb25jYXQoW0tdKS5jb25jYXQoWyc8eDpDbGllbnREYXRhIE9iamVjdFR5cGU9IicrU1siIXR5cGUiXSsnIj4nLFZhKCJ4OkFuY2hvciIsZkIoU1siIXBv'@; put 'cyJdKSksVmEoIng6UHJpbnRPYmplY3QiLCJGYWxzZSIpXSkuY29uY2F0KGVlKS5jb25jYXQoU0JbU1siIXR5cGUiXV18fFtdKS5jb25jYXQoWyI8L3g6Q2xpZW50RGF0YT4iLCI8L3Y6c2hhcGU+Il0pfShWZSxwZSkpfSk7dmFyIFBlPU98fFtdO3JldHVybiBQZS5sZW5ndGg+MCYmbWUucHVz'@; put 'aChIcigidjpzaGFwZXR5cGUiLFtIcigidjpzdHJva2UiLG51bGwse2pvaW5zdHlsZToibWl0ZXIifSksSHIoInY6cGF0aCIsbnVsbCx7Z3JhZGllbnRzaGFwZW9rOiJ0Iiwibzpjb25uZWN0dHlwZSI6InJlY3QifSldLmpvaW4oIiIpLHtpZDoiX3gwMDAwX3QyMDIiLGNvb3Jkc2l6ZTplZS5q'@; put 'b2luKCIsIiksIm86c3B0IjoyMDIscGF0aDpvZX0pKSxQZS5mb3JFYWNoKGZ1bmN0aW9uKFZlKXsrK3BlLG1lPW1lLmNvbmNhdChmdW5jdGlvbiAkdihTLE8sayl7dmFyIEs9VnMoU1swXSksZWU9U1sxXS5maWxsfHx7fTtTWzFdLnMmJihlZT17dHlwZTpTWzFdLnMucGF0dGVyblR5cGV8fCJz'@; put 'b2xpZCJ9LFNbMV0ucy5mZ0NvbG9yJiYoZWUuY29sb3IyPWVlLmNvbG9yMT0iIyIrTDAoU1sxXS5zLmZnQ29sb3IucmdiKSksU1sxXS5zLmJnQ29sb3ImJihlZS5jb2xvcjI9IiMiK0wwKFNbMV0ucy5iZ0NvbG9yLnJnYikpKTt2YXIgb2U9e2NvbG9yMjplZS5jb2xvcjJ8fCIjQkVGRjgyIix0'@; put 'eXBlOmVlLnR5cGV8fCJncmFkaWVudCJ9OyJncmFkaWVudCI9PW9lLnR5cGUmJihvZS5hbmdsZT0iLTE4MCIpO3ZhciBtZT0iZ3JhZGllbnQiPT1vZS50eXBlP0hyKCJvOmZpbGwiLG51bGwse3R5cGU6ImdyYWRpZW50VW5zY2FsZWQiLCJ2OmV4dCI6InZpZXcifSk6bnVsbCxwZT1Icigidjpm'@; put 'aWxsIixtZSxvZSksYmU9e307U1sxXS5zaGFkb3cmJihTWzFdLnNoYWRvdy5jb2xvciYmKGJlLmNvbG9yPVNbMV0uc2hhZG93LmNvbG9yKSxTWzFdLnNoYWRvdy5vbiYmKGJlLm9uPVNbMV0uc2hhZG93Lm9uKSksYmUub2JzY3VyZWQ9InQiO3ZhciBQZT0hMCxWZT0hMCxZZT1TWzFdWyIhcG9z'@; put 'Il0/SnQoU1sxXVsiIXBvcyJdKTpudWxsO3JldHVybiBZZSYmKFZlPW51bGw9PVllLlImJm51bGw9PVllLkMmJm51bGw9PVllLlgmJm51bGw9PVllLlksUGU9IVllLnImJiFZZS5jLGhCKFllLDAsaykpLFsiPHY6c2hhcGUiK0R1KHtpZDoiX3gwMDAwX3MiK08sdHlwZToiI194MDAwMF90MjAy'@; put 'IixzdHlsZToicG9zaXRpb246YWJzb2x1dGU7IG1hcmdpbi1sZWZ0OjgwcHQ7bWFyZ2luLXRvcDo1cHQ7d2lkdGg6MTA0cHQ7aGVpZ2h0OjY0cHQ7ei1pbmRleDoxMCIrKFNbMV0uaGlkZGVuPyI7dmlzaWJpbGl0eTpoaWRkZW4iOiIiKSxmaWxsY29sb3I6ZWUuY29sb3IxfHwiI0VDRkFENCIs'@; put 'c3Ryb2tlY29sb3I6KFNbMV0uc3Ryb2tlfHx7fSkuY29sb3J8fCIjZWRlYWExIn0pKyI+IixwZSxIcigidjpzaGFkb3ciLG51bGwsYmUpLEhyKCJ2OnBhdGgiLG51bGwseyJvOmNvbm5lY3R0eXBlIjoibm9uZSJ9KSwnPHY6dGV4dGJveD48ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQiPjwv'@; put 'ZGl2Pjwvdjp0ZXh0Ym94PicsJzx4OkNsaWVudERhdGEgT2JqZWN0VHlwZT0iTm90ZSI+JyxQZT8iPHg6TW92ZVdpdGhDZWxscy8+IjoiIixWZT8iPHg6U2l6ZVdpdGhDZWxscy8+IjoiIixWYSgieDpBbmNob3IiLFllP2ZCKFllKTpTWzFdLnJhd2FuY2hvcnx8W0suYysxLDAsSy5yKzEsMCxL'@; put 'LmMrMywyMCxLLnIrNSwyMF0uam9pbigiLCIpKSxWYSgieDpBdXRvRmlsbCIsIkZhbHNlIiksVmEoIng6Um93IixTdHJpbmcoSy5yKSksVmEoIng6Q29sdW1uIixTdHJpbmcoSy5jKSksU1sxXS5oaWRkZW4/IiI6Ijx4OlZpc2libGUvPiIsIjwveDpDbGllbnREYXRhPiIsIjwvdjpzaGFwZT4i'@; put 'XX0oVmUscGUsSykpfSksbWUucHVzaCgiPC94bWw+IiksbWUuam9pbigiIil9dmFyIFNCPXtCdXR0b246WyI8eDpBdXRvRmlsbD5GYWxzZTwveDpBdXRvRmlsbD4iLCI8eDpUZXh0SEFsaWduPkNlbnRlcjwveDpUZXh0SEFsaWduPiIsIjx4OlRleHRWQWxpZ24+Q2VudGVyPC94OlRleHRWQWxp'@; put 'Z24+Il0sR0JveDpbIjx4OlNpemVXaXRoQ2VsbHMvPiIsIjx4OkF1dG9GaWxsPkZhbHNlPC94OkF1dG9GaWxsPiIsIjx4Ok5vVGhyZWVELz4iXSxMYWJlbDpbIjx4OkF1dG9GaWxsPkZhbHNlPC94OkF1dG9GaWxsPiIsIjx4OkF1dG9MaW5lPkZhbHNlPC94OkF1dG9MaW5lPiJdLFJhZGlvOlsi'@; put 'PHg6U2l6ZVdpdGhDZWxscy8+IiwiPHg6QXV0b0ZpbGw+RmFsc2U8L3g6QXV0b0ZpbGw+IiwiPHg6QXV0b0xpbmU+RmFsc2U8L3g6QXV0b0xpbmU+IiwiPHg6VGV4dFZBbGlnbj5DZW50ZXI8L3g6VGV4dFZBbGlnbj4iLCI8eDpOb1RocmVlRC8+Il0sQ2hlY2tib3g6WyI8eDpTaXplV2l0aENl'@; put 'bGxzLz4iLCI8eDpBdXRvRmlsbD5GYWxzZTwveDpBdXRvRmlsbD4iLCI8eDpBdXRvTGluZT5GYWxzZTwveDpBdXRvTGluZT4iLCI8eDpUZXh0VkFsaWduPkNlbnRlcjwveDpUZXh0VkFsaWduPiIsIjx4Ok5vVGhyZWVELz4iXSxEcm9wOlsiPHg6U2l6ZVdpdGhDZWxscy8+IiwiPHg6QXV0b0xp'@; put 'bmU+RmFsc2U8L3g6QXV0b0xpbmU+IiwiPHg6Tm9UaHJlZUQyLz4iLCI8eDpTZWxUeXBlPlNpbmdsZTwveDpTZWxUeXBlPiIsIjx4OkRyb3BTdHlsZT5Db21ibzwveDpEcm9wU3R5bGU+IiwiPHg6TENUPk5vcm1hbDwveDpMQ1Q+IiwiPHg6RHJvcExpbmVzPjQ8L3g6RHJvcExpbmVzPiJdLExp'@; put 'c3Q6WyI8eDpTaXplV2l0aENlbGxzLz4iLCI8eDpBdXRvTGluZT5GYWxzZTwveDpBdXRvTGluZT4iLCI8eDpOb1RocmVlRDIvPiIsIjx4OkxDVD5Ob3JtYWw8L3g6TENUPiIsIjx4OlZhbD4wPC94OlZhbD4iLCI8eDpNaW4+MDwveDpNaW4+IiwiPHg6TWF4PjU8L3g6TWF4PiIsIjx4OkluYz4x'@; put 'PC94OkluYz4iLCI8eDpQYWdlPjQ8L3g6UGFnZT4iLCI8eDpEeD4xNTwveDpEeD4iXSxTY3JvbGw6WyI8eDpTaXplV2l0aENlbGxzLz4iLCI8eDpIb3Jpei8+IiwiPHg6RHg+MTU8L3g6RHg+Il0sU3BpbjpbIjx4OkR4PjE1PC94OkR4PiJdfSxCQz17QnV0dG9uOiI8djp0ZXh0Ym94IHN0eWxl'@; put 'PSdtc28tZGlyZWN0aW9uLWFsdDphdXRvJyBvOnNpbmdsZWNsaWNrPSdmJz48ZGl2IHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcic+PGZvbnQgZmFjZT0nQ2FsaWJyaScgc2l6ZT0nMjQwJyBjb2xvcj0nIzAwMDAwMCc+IyMjIzwvZm9udD48L2Rpdj48L3Y6dGV4dGJveD4iLEdCb3g6Ijx2OnRl'@; put 'eHRib3ggc3R5bGU9J21zby1kaXJlY3Rpb24tYWx0OmF1dG8nIG86c2luZ2xlY2xpY2s9J2YnPjxkaXYgc3R5bGU9J3RleHQtYWxpZ246bGVmdCc+PGZvbnQgZmFjZT0nTHVjaWRhIEdyYW5kZScgc2l6ZT0nMjYwJyBjb2xvcj0nIzAwMDAwMCc+IyMjIzwvZm9udD48L2Rpdj48L3Y6dGV4dGJv'@; put 'eD4iLFJhZGlvOiI8djp0ZXh0Ym94IHN0eWxlPSdtc28tZGlyZWN0aW9uLWFsdDphdXRvJyBvOnNpbmdsZWNsaWNrPSdmJz48ZGl2IHN0eWxlPSd0ZXh0LWFsaWduOmxlZnQnPjxmb250IGZhY2U9J0x1Y2lkYSBHcmFuZGUnIHNpemU9JzI2MCcgY29sb3I9J2F1dG8nPiMjIyM8L2ZvbnQ+PC9k'@; put 'aXY+PC92OnRleHRib3g+IixMYWJlbDoiPHY6dGV4dGJveCBzdHlsZT0nbXNvLWRpcmVjdGlvbi1hbHQ6YXV0bycgbzpzaW5nbGVjbGljaz0nZic+PGRpdiBzdHlsZT0ndGV4dC1hbGlnbjpsZWZ0Jz48Zm9udCBmYWNlPSdMdWNpZGEgR3JhbmRlJyBzaXplPScyNjAnIGNvbG9yPScjMDAwMDAw'@; put 'Jz4jIyMjPC9mb250PjwvZGl2Pjwvdjp0ZXh0Ym94PiIsQ2hlY2tib3g6Ijx2OnRleHRib3ggc3R5bGU9J21zby1kaXJlY3Rpb24tYWx0OmF1dG8nIG86c2luZ2xlY2xpY2s9J2YnPjxkaXYgc3R5bGU9J3RleHQtYWxpZ246bGVmdCc+PGZvbnQgZmFjZT0nTHVjaWRhIEdyYW5kZScgc2l6ZT0n'@; put 'MjYwJyBjb2xvcj0nIzAwMDAwMCc+IyMjIzwvZm9udD48L2Rpdj48L3Y6dGV4dGJveD4iLHNoZWV0anM6ImRhZnVxIn0sakM9e0J1dHRvbjpbJzx2OmZpbGwgY29sb3IyPSIjZjBmMGYwIFs2N10iIG86ZGV0ZWN0bW91c2VjbGljaz0idCIvPicsJzxvOmxvY2sgdjpleHQ9ImVkaXQiIHJvdGF0'@; put 'aW9uPSJ0Ii8+J10sR0JveDpbJzxvOmxvY2sgdjpleHQ9ImVkaXQiIHJvdGF0aW9uPSJ0Ii8+J10sRHJvcDpbJzxvOmxvY2sgdjpleHQ9ImVkaXQiIHJvdGF0aW9uPSJ0IiB0ZXh0PSJ0Ii8+J10sTGlzdDpbJzxvOmxvY2sgdjpleHQ9ImVkaXQiIHJvdGF0aW9uPSJ0IiB0ZXh0PSJ0Ii8+J10s'@; put 'U3BpbjpbJzxvOmxvY2sgdjpleHQ9ImVkaXQiIHJvdGF0aW9uPSJ0IiB0ZXh0PSJ0Ii8+J10sU2Nyb2xsOlsnPG86bG9jayB2OmV4dD0iZWRpdCIgcm90YXRpb249InQiIHRleHQ9InQiLz4nXSxMYWJlbDpbJzxvOmxvY2sgdjpleHQ9ImVkaXQiIHJvdGF0aW9uPSJ0Ii8+J10sUmFkaW86Wyc8'@; put 'djpwYXRoIHNoYWRvd29rPSJ0IiBzdHJva2Vvaz0idCIgZmlsbG9rPSJ0Ii8+JywnPG86bG9jayB2OmV4dD0iZWRpdCIgcm90YXRpb249InQiLz4nXSxDaGVja2JveDpbJzx2OnBhdGggc2hhZG93b2s9InQiIHN0cm9rZW9rPSJ0IiBmaWxsb2s9InQiLz4nLCc8bzpsb2NrIHY6ZXh0PSJlZGl0'@; put 'IiByb3RhdGlvbj0idCIvPiddLHNoZWV0anM6W119O2Z1bmN0aW9uIFVrKFMsTyxrLEspe3ZhciBlZT17IiFpZCI6e319LG9lPVtIcigieG1sIixudWxsLHsieG1sbnM6diI6dmwudiwieG1sbnM6byI6dmwubywieG1sbnM6eCI6dmwueH0pLnJlcGxhY2UoL1wvPi8sIj4iKSxIcigibzpzaGFw'@; put 'ZWxheW91dCIsSHIoIm86aWRtYXAiLG51bGwseyJ2OmV4dCI6ImVkaXQiLGRhdGE6MX0pLHsidjpleHQiOiJlZGl0In0pLCc8djpzaGFwZXR5cGUgaWQ9Il94MDAwMF90NzUiIGNvb3Jkc2l6ZT0iMjE2MDAsMjE2MDAiIG86c3B0PSI3NSIgbzpwcmVmZXJyZWxhdGl2ZT0idCIgcGF0aD0ibUA0'@; put 'QDVsQDRAMTFAOUAxMUA5QDV4ZSIgZmlsbGVkPSJmIiBzdHJva2VkPSJmIj4nLCc8djpzdHJva2Ugam9pbnN0eWxlPSJtaXRlciIvPicsIjx2OmZvcm11bGFzPiIsJzx2OmYgZXFuPSJpZiBsaW5lRHJhd24gcGl4ZWxMaW5lV2lkdGggMCIvPicsJzx2OmYgZXFuPSJzdW0gQDAgMSAwIi8+Jywn'@; put 'PHY6ZiBlcW49InN1bSAwIDAgQDEiLz4nLCc8djpmIGVxbj0icHJvZCBAMiAxIDIiLz4nLCc8djpmIGVxbj0icHJvZCBAMyAyMTYwMCBwaXhlbFdpZHRoIi8+JywnPHY6ZiBlcW49InByb2QgQDMgMjE2MDAgcGl4ZWxIZWlnaHQiLz4nLCc8djpmIGVxbj0ic3VtIEAwIDAgMSIvPicsJzx2OmYg'@; put 'ZXFuPSJwcm9kIEA2IDEgMiIvPicsJzx2OmYgZXFuPSJwcm9kIEA3IDIxNjAwIHBpeGVsV2lkdGgiLz4nLCc8djpmIGVxbj0ic3VtIEA4IDIxNjAwIDAiLz4nLCc8djpmIGVxbj0icHJvZCBANyAyMTYwMCBwaXhlbEhlaWdodCIvPicsJzx2OmYgZXFuPSJzdW0gQDEwIDIxNjAwIDAiLz4nLCI8'@; put 'L3Y6Zm9ybXVsYXM+IiwnPHY6cGF0aCBvOmV4dHJ1c2lvbm9rPSJmIiBncmFkaWVudHNoYXBlb2s9InQiIG86Y29ubmVjdHR5cGU9InJlY3QiLz4nLCc8bzpsb2NrIHY6ZXh0PSJlZGl0IiBhc3BlY3RyYXRpbz0idCIvPicsIjwvdjpzaGFwZXR5cGU+Il0sbWU9MTtbImhlYWRlciIsImZvb3Rl'@; put 'ciJdLmZvckVhY2goZnVuY3Rpb24ocGUpe0tbcGVdJiZbIm9kZCIsImV2ZW4iLCJmaXJzdCJdLmZvckVhY2goZnVuY3Rpb24oYmUpe0tbcGVdW2JlXSYmWyJsZWZ0IiwicmlnaHQiLCJjZW50ZXIiXS5mb3JFYWNoKGZ1bmN0aW9uKFBlKXtpZihBcnJheS5pc0FycmF5KEtbcGVdW2JlXVtQZV0p'@; put 'KWZvcih2YXIgVmU9MDtWZTxLW3BlXVtiZV1bUGVdLmxlbmd0aDsrK1ZlKWlmKEtbcGVdW2JlXVtQZV1bVmVdKXt2YXIgWWU9S1twZV1bYmVdW1BlXVtWZV07aWYoInJlbW90ZSI9PVllWyIhZGF0YXR5cGUiXSl0aHJvdyJDYW5ub3QgdXNlIGxpbmtlZCBpbWFnZSBpbiBoZWFkZXIgb3IgZm9v'@; put 'dGVyIjtmb3IoO25pKFMsInhsL21lZGlhL2ltYWdlIittZSsiLmpwZyIpOykrK21lO1MuZmlsZSgieGwvbWVkaWEvaW1hZ2UiK21lKyIuanBnIixibmUoWWUpLHtiaW5hcnk6ITB9KSxFcihlZSwtMSwiLi4vbWVkaWEvaW1hZ2UiK21lKyIuanBnIixYYS5JTUcpO3ZhciBldD0iX3gwMDAwX3Mi'@; put 'KygxMDI1K1llLl9jbnQpLGN0PSJwb3NpdGlvbjphYnNvbHV0ZTttYXJnaW4tbGVmdDowO21hcmdpbi10b3A6MDt6LWluZGV4OiIrKFllLl9jbnQrMSkrIjsiO2N0Kz0id2lkdGg6IitZZVsiIXBvcyJdLncrInB4OyIsY3QrPSJoZWlnaHQ6IitZZVsiIXBvcyJdLmgrInB4OyI7dmFyIFR0PVBl'@; put 'LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3BlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpOyJvZGQiIT09YmUmJihUdCs9YmUudG9VcHBlckNhc2UoKSksS1twZV1bYmVdW1BlXS5sZW5ndGg+MSYmKFR0Kz1WZSksb2UucHVzaChIcigidjpzaGFwZSIsWyc8djppbWFnZWRhdGEgbzpyZWxpZD0i'@; put 'cklkJysoWWUuX2NudCsxKSsnIiBvOnRpdGxlPSJzaGVldGpzIi8+JywnPG86bG9jayB2OmV4dD0iZWRpdCIgcm90YXRpb249InQiLz4nXS5qb2luKCIiKSx7aWQ6VHQsIm86c3BpZCI6ZXQsdHlwZToiI194MDAwMF90NzUiLHN0eWxlOmN0fSkpfX0pfSl9KSxvZS5wdXNoKCI8L3htbD4iKSxT'@; put 'LmZpbGUoInhsL2RyYXdpbmdzL3ZtbERyYXdpbmciK2srIkhGLnZtbCIsb2Uuam9pbigiIikpLFMuZmlsZSgieGwvZHJhd2luZ3MvX3JlbHMvdm1sRHJhd2luZyIraysiSEYudm1sLnJlbHMiLEFpKGVlKSl9WGEuQ01OVD0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmlj'@; put 'ZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9jb21tZW50cyI7dmFyIEt2PUhyKCJjb21tZW50cyIsbnVsbCx7eG1sbnM6R2kubWFpblswXX0pO2Z1bmN0aW9uIHpDKFMpe3ZhciBPPVtEaSxLdl0saz1bXTtyZXR1cm4gTy5wdXNoKCI8YXV0aG9ycz4iKSxTLmZvckVhY2goZnVuY3Rpb24o'@; put 'Syl7S1sxXS5mb3JFYWNoKGZ1bmN0aW9uKGVlKXt2YXIgb2U9UHIoZWUuYSk7ay5pbmRleE9mKG9lKT4tMXx8KGsucHVzaChvZSksTy5wdXNoKCI8YXV0aG9yPiIrb2UrIjwvYXV0aG9yPiIpKX0pfSksTy5wdXNoKCI8L2F1dGhvcnM+IiksTy5wdXNoKCI8Y29tbWVudExpc3Q+IiksUy5mb3JF'@; put 'YWNoKGZ1bmN0aW9uKEspe0tbMV0uZm9yRWFjaChmdW5jdGlvbihlZSl7Ty5wdXNoKCc8Y29tbWVudCByZWY9IicrS1swXSsnIiBhdXRob3JJZD0iJytrLmluZGV4T2YoUHIoZWUuYSkpKyciPjx0ZXh0PicpLE8ucHVzaChlZS5SP0pvKGVlLlIpOlZhKCJ0IixudWxsPT1lZS50PyIiOlByKGVl'@; put 'LnQpKSksTy5wdXNoKCI8L3RleHQ+PC9jb21tZW50PiIpfSl9KSxPLnB1c2goIjwvY29tbWVudExpc3Q+IiksTy5sZW5ndGg+MiYmKE9bTy5sZW5ndGhdPSI8L2NvbW1lbnRzPiIsT1sxXT1PWzFdLnJlcGxhY2UoIi8+IiwiPiIpKSxPLmpvaW4oIiIpfXZhciB4Qj1kdTtmdW5jdGlvbiBVQyhT'@; put 'KXt2YXIgTz12aSgpLGs9W107cmV0dXJuIFZyKE8sIkJydEJlZ2luQ29tbWVudHMiKSxWcihPLCJCcnRCZWdpbkNvbW1lbnRBdXRob3JzIiksUy5mb3JFYWNoKGZ1bmN0aW9uKEspe0tbMV0uZm9yRWFjaChmdW5jdGlvbihlZSl7ay5pbmRleE9mKGVlLmEpPi0xfHwoay5wdXNoKGVlLmEuc2xp'@; put 'Y2UoMCw1NCkpLFZyKE8sIkJydENvbW1lbnRBdXRob3IiLGZ1bmN0aW9uIF9uZShTKXtyZXR1cm4gT2MoUy5zbGljZSgwLDU0KSl9KGVlLmEpKSl9KX0pLFZyKE8sIkJydEVuZENvbW1lbnRBdXRob3JzIiksVnIoTywiQnJ0QmVnaW5Db21tZW50TGlzdCIpLFMuZm9yRWFjaChmdW5jdGlvbihL'@; put 'KXtLWzFdLmZvckVhY2goZnVuY3Rpb24oZWUpe2VlLmlhdXRob3I9ay5pbmRleE9mKGVlLmEpO3ZhciBvZT17czpWcyhLWzBdKSxlOlZzKEtbMF0pfTtWcihPLCJCcnRCZWdpbkNvbW1lbnQiLGZ1bmN0aW9uIE1CKFMsTyl7cmV0dXJuIG51bGw9PU8mJihPPXZuKDM2KSksTy53cml0ZV9zaGlm'@; put 'dCg0LFNbMV0uaWF1dGhvciksX2YoU1swXSxPKSxPLndyaXRlX3NoaWZ0KDQsMCksTy53cml0ZV9zaGlmdCg0LDApLE8ud3JpdGVfc2hpZnQoNCwwKSxPLndyaXRlX3NoaWZ0KDQsMCksT30oW29lLGVlXSkpLGVlLnQmJmVlLnQubGVuZ3RoPjAmJlZyKE8sIkJydENvbW1lbnRUZXh0IixmdW5j'@; put 'dGlvbiBuaChTLE8pe3ZhciBrPSExO3JldHVybiBudWxsPT1PJiYoaz0hMCxPPXZuKDIzKzQqUy50Lmxlbmd0aCkpLE8ud3JpdGVfc2hpZnQoMSwxKSxPYyhTLnQsTyksTy53cml0ZV9zaGlmdCg0LDEpLGZ1bmN0aW9uIGF2KFMsTyl7T3x8KE89dm4oNCkpLE8ud3JpdGVfc2hpZnQoMixTLmlj'@; put 'aHx8MCksTy53cml0ZV9zaGlmdCgyLFMuaWZudHx8MCl9KHtpY2g6MCxpZm50OjB9LE8pLGs/Ty5zbGljZSgwLE8ubCk6T30oZWUpKSxWcihPLCJCcnRFbmRDb21tZW50IiksZGVsZXRlIGVlLmlhdXRob3J9KX0pLFZyKE8sIkJydEVuZENvbW1lbnRMaXN0IiksVnIoTywiQnJ0RW5kQ29tbWVu'@; put 'dHMiKSxPLmVuZCgpfXZhciBZaz0iYXBwbGljYXRpb24vdm5kLm1zLW9mZmljZS52YmFQcm9qZWN0IixLaz1bInhsc2IiLCJ4bHNtIiwieGxhbSIsImJpZmY4IiwieGxhIl07WGEuRFM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0'@; put 'aW9uc2hpcHMvZGlhbG9nc2hlZXQiLFhhLk1TPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA2L3JlbGF0aW9uc2hpcHMveGxNYWNyb3NoZWV0Ijt2YXIgTzU9ZnVuY3Rpb24oKXt2YXIgUz0vKF58W15BLVphLXpfXSlSKFxbPy0/XGQrXF18WzEtOV1cZCp8KUMoXFs/'@; put 'LT9cZCtcXXxbMS05XVxkKnwpKD8hW0EtWmEtejAtOV9dKS9nLE89e3I6MCxjOjB9O2Z1bmN0aW9uIGsoSyxlZSxvZSxtZSl7dmFyIHBlPSExLGJlPSExOzA9PW9lLmxlbmd0aD9iZT0hMDoiWyI9PW9lLmNoYXJBdCgwKSYmKGJlPSEwLG9lPW9lLnNsaWNlKDEsLTEpKSwwPT1tZS5sZW5ndGg/'@; put 'cGU9ITA6IlsiPT1tZS5jaGFyQXQoMCkmJihwZT0hMCxtZT1tZS5zbGljZSgxLC0xKSk7dmFyIFBlPW9lLmxlbmd0aD4wPzB8cGFyc2VJbnQob2UsMTApOjAsVmU9bWUubGVuZ3RoPjA/MHxwYXJzZUludChtZSwxMCk6MDtyZXR1cm4gcGU/VmUrPU8uYzotLVZlLGJlP1BlKz1PLnI6LS1QZSxl'@; put 'ZSsocGU/IiI6IiQiKStrYShWZSkrKGJlPyIiOiIkIikramkoUGUpfXJldHVybiBmdW5jdGlvbihlZSxvZSl7cmV0dXJuIE89b2UsZWUucmVwbGFjZShTLGspfX0oKSx5Mj0vKF58W14uX0EtWjAtOV0pKFskXT8pKFtBLVpdezEsMn18W0EtV11bQS1aXXsyfXxYW0EtRV1bQS1aXXxYRltBLURd'@; put 'KShbJF0/KSgxMFswLTNdXGR7NH18MTA0WzAtN11cZHszfXwxMDQ4WzAtNF1cZHsyfXwxMDQ4NVswLTZdXGR8MTA0ODU3WzAtNl18WzEtOV1cZHswLDV9KSg/IVtfLlwoQS1aYS16MC05XSkvZyxIND1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihPLGspe3JldHVybiBPLnJlcGxhY2UoeTIs'@; put 'ZnVuY3Rpb24oSyxlZSxvZSxtZSxwZSxiZSl7dmFyIFBlPVNhKG1lKS0ob2U/MDprLmMpLFZlPWJzKGJlKS0ocGU/MDprLnIpO3JldHVybiBlZSsiUiIrKDA9PVZlPyIiOnBlP1ZlKzE6IlsiK1ZlKyJdIikrIkMiKygwPT1QZT8iIjpvZT9QZSsxOiJbIitQZSsiXSIpfSl9fSgpO2Z1bmN0aW9u'@; put 'IFhrKFMsTyl7cmV0dXJuIFMucmVwbGFjZSh5MixmdW5jdGlvbihrLEssZWUsb2UsbWUscGUpe3JldHVybiBLKygiJCI9PWVlP2VlK29lOmthKFNhKG9lKStPLmMpKSsoIiQiPT1tZT9tZStwZTpqaShicyhwZSkrTy5yKSl9KS5yZXBsYWNlKC8oXGQrKTooXGQrKS9nLGZ1bmN0aW9uKGssSyxl'@; put 'ZSl7cmV0dXJuIGppKGJzKEspK08ucikrIjoiK2ppKGJzKGVlKStPLnIpfSl9ZnVuY3Rpb24gd25lKFMsTyxrKXt2YXIgZWU9U28oTykucyxvZT1WcyhrKTtyZXR1cm4gWGsoUyx7cjpvZS5yLWVlLnIsYzpvZS5jLWVlLmN9KX1mdW5jdGlvbiBEQihTKXtyZXR1cm4gUy5yZXBsYWNlKC9feGxm'@; put 'blwuL2csIiIpfWZ1bmN0aW9uIHB1KFMpe1MubCs9MX1mdW5jdGlvbiBONChTLE8pe3ZhciBrPVMucmVhZF9zaGlmdCgxPT1PPzE6Mik7cmV0dXJuWzE2MzgzJmssaz4+MTQmMSxrPj4xNSYxXX1mdW5jdGlvbiBaQyhTLE8sayl7dmFyIEs9MjtpZihrKXtpZihrLmJpZmY+PTImJmsuYmlmZjw9'@; put 'NSlyZXR1cm4gcWsoUyk7MTI9PWsuYmlmZiYmKEs9NCl9dmFyIGVlPVMucmVhZF9zaGlmdChLKSxvZT1TLnJlYWRfc2hpZnQoSyksbWU9TjQoUywyKSxwZT1ONChTLDIpO3JldHVybntzOntyOmVlLGM6bWVbMF0sY1JlbDptZVsxXSxyUmVsOm1lWzJdfSxlOntyOm9lLGM6cGVbMF0sY1JlbDpw'@; put 'ZVsxXSxyUmVsOnBlWzJdfX19ZnVuY3Rpb24gcWsoUyl7dmFyIE89TjQoUywyKSxrPU40KFMsMiksSz1TLnJlYWRfc2hpZnQoMSksZWU9Uy5yZWFkX3NoaWZ0KDEpO3JldHVybntzOntyOk9bMF0sYzpLLGNSZWw6T1sxXSxyUmVsOk9bMl19LGU6e3I6a1swXSxjOmVlLGNSZWw6a1sxXSxyUmVs'@; put 'OmtbMl19fX1mdW5jdGlvbiBKayhTLE8sayl7aWYoayYmay5iaWZmPj0yJiZrLmJpZmY8PTUpcmV0dXJuIGZ1bmN0aW9uIFJCKFMpe3ZhciBPPU40KFMsMiksaz1TLnJlYWRfc2hpZnQoMSk7cmV0dXJue3I6T1swXSxjOmssY1JlbDpPWzFdLHJSZWw6T1syXX19KFMpO3ZhciBLPVMucmVhZF9z'@; put 'aGlmdChrJiYxMj09ay5iaWZmPzQ6MiksZWU9TjQoUywyKTtyZXR1cm57cjpLLGM6ZWVbMF0sY1JlbDplZVsxXSxyUmVsOmVlWzJdfX1mdW5jdGlvbiBXQyhTKXt2YXIgTz1TLnJlYWRfc2hpZnQoMiksaz1TLnJlYWRfc2hpZnQoMik7cmV0dXJue3I6TyxjOjI1NSZrLGZRdW90ZWQ6ISEoMTYz'@; put 'ODQmayksY1JlbDprPj4xNSxyUmVsOms+PjE1fX1mdW5jdGlvbiByRChTKXtyZXR1cm5bUy5yZWFkX3NoaWZ0KDEpLFMucmVhZF9zaGlmdCgxKV19ZnVuY3Rpb24gS0MoUyxPKXt2YXIgaz1bUy5yZWFkX3NoaWZ0KDEpXTtpZigxMj09Tylzd2l0Y2goa1swXSl7Y2FzZSAyOmtbMF09NDticmVh'@; put 'aztjYXNlIDQ6a1swXT0xNjticmVhaztjYXNlIDA6a1swXT0xO2JyZWFrO2Nhc2UgMTprWzBdPTJ9c3dpdGNoKGtbMF0pe2Nhc2UgNDprWzFdPWNzKFMsMSk/IlRSVUUiOiJGQUxTRSIsMTIhPU8mJihTLmwrPTcpO2JyZWFrO2Nhc2UgMzc6Y2FzZSAxNjprWzFdPUNjW1NbUy5sXV0sUy5sKz0x'@; put 'Mj09Tz80Ojg7YnJlYWs7Y2FzZSAwOlMubCs9ODticmVhaztjYXNlIDE6a1sxXT1SbChTKTticmVhaztjYXNlIDI6a1sxXT1YMChTLDAse2JpZmY6Tz4wJiZPPDg/MjpPfSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkJhZCBTZXJBcjogIitrWzBdKX1yZXR1cm4ga31mdW5jdGlv'@; put 'biBvRChTLE8sayl7Zm9yKHZhciBLPVMucmVhZF9zaGlmdCgxMj09ay5iaWZmPzQ6MiksZWU9W10sb2U9MDtvZSE9SzsrK29lKWVlLnB1c2goKDEyPT1rLmJpZmY/aHU6YzIpKFMsOCkpO3JldHVybiBlZX1mdW5jdGlvbiB6QihTLE8sayl7dmFyIEs9MCxlZT0wOzEyPT1rLmJpZmY/KEs9Uy5y'@; put 'ZWFkX3NoaWZ0KDQpLGVlPVMucmVhZF9zaGlmdCg0KSk6KGVlPTErUy5yZWFkX3NoaWZ0KDEpLEs9MStTLnJlYWRfc2hpZnQoMikpLGsuYmlmZj49MiYmay5iaWZmPDgmJigtLUssMD09LS1lZSYmKGVlPTI1NikpO2Zvcih2YXIgb2U9MCxtZT1bXTtvZSE9SyYmKG1lW29lXT1bXSk7KytvZSlm'@; put 'b3IodmFyIHBlPTA7cGUhPWVlOysrcGUpbWVbb2VdW3BlXT1LQyhTLGsuYmlmZik7cmV0dXJuIG1lfWZ1bmN0aW9uIEY1KFMsTyxrKXtyZXR1cm4gUy5sKz0yLFtXQyhTKV19ZnVuY3Rpb24gWEMoUyl7cmV0dXJuIFMubCs9NixbXX12YXIgS0I9RjUsWEI9WEMscUI9WEMsSkI9RjU7ZnVuY3Rp'@; put 'b24gY0QoUyl7cmV0dXJuIFMubCs9MixbTWMoUyksMSZTLnJlYWRfc2hpZnQoMildfXZhciBxQz1GNSxEbmU9Y0QsSW5lPVhDLEpDPUY1LFJuZT1GNSxMbmU9WyJEYXRhIiwiQWxsIiwiSGVhZGVycyIsIj8/IiwiP0RhdGEyIiwiPz8iLCI/RGF0YUhlYWRlcnMiLCI/PyIsIlRvdGFscyIsIj8/'@; put 'IiwiPz8iLCI/PyIsIj9EYXRhVG90YWxzIiwiPz8iLCI/PyIsIj8/IiwiP0N1cnJlbnQiXSxleT17MTp7bjoiUHRnRXhwIixmOmZ1bmN0aW9uIFZCKFMsTyxrKXtyZXR1cm4gUy5sKyssayYmMTI9PWsuYmlmZj9bUy5yZWFkX3NoaWZ0KDQsImkiKSwwXTpbUy5yZWFkX3NoaWZ0KDIpLFMucmVh'@; put 'ZF9zaGlmdChrJiYyPT1rLmJpZmY/MToyKV19fSwyOntuOiJQdGdUYmwiLGY6Um59LDM6e246IlB0Z0FkZCIsZjpwdX0sNDp7bjoiUHRnU3ViIixmOnB1fSw1OntuOiJQdGdNdWwiLGY6cHV9LDY6e246IlB0Z0RpdiIsZjpwdX0sNzp7bjoiUHRnUG93ZXIiLGY6cHV9LDg6e246IlB0Z0NvbmNh'@; put 'dCIsZjpwdX0sOTp7bjoiUHRnTHQiLGY6cHV9LDEwOntuOiJQdGdMZSIsZjpwdX0sMTE6e246IlB0Z0VxIixmOnB1fSwxMjp7bjoiUHRnR2UiLGY6cHV9LDEzOntuOiJQdGdHdCIsZjpwdX0sMTQ6e246IlB0Z05lIixmOnB1fSwxNTp7bjoiUHRnSXNlY3QiLGY6cHV9LDE2OntuOiJQdGdVbmlv'@; put 'biIsZjpwdX0sMTc6e246IlB0Z1JhbmdlIixmOnB1fSwxODp7bjoiUHRnVXBsdXMiLGY6cHV9LDE5OntuOiJQdGdVbWludXMiLGY6cHV9LDIwOntuOiJQdGdQZXJjZW50IixmOnB1fSwyMTp7bjoiUHRnUGFyZW4iLGY6cHV9LDIyOntuOiJQdGdNaXNzQXJnIixmOnB1fSwyMzp7bjoiUHRnU3Ry'@; put 'IixmOmZ1bmN0aW9uIGpCKFMsTyxrKXtyZXR1cm4gUy5sKyssV2EoUywwLGspfX0sMjY6e246IlB0Z1NoZWV0IixmOmZ1bmN0aW9uIEZuZShTLE8sayl7cmV0dXJuIFMubCs9NSxTLmwrPTIsUy5sKz0yPT1rLmJpZmY/MTo0LFsiUFRHU0hFRVQiXX19LDI3OntuOiJQdGdFbmRTaGVldCIsZjpm'@; put 'dW5jdGlvbiBRQihTLE8sayl7cmV0dXJuIFMubCs9Mj09ay5iaWZmPzQ6NSxbIlBUR0VORFNIRUVUIl19fSwyODp7bjoiUHRnRXJyIixmOmZ1bmN0aW9uICRDKFMpe3JldHVybiBTLmwrKyxDY1tTLnJlYWRfc2hpZnQoMSldfX0sMjk6e246IlB0Z0Jvb2wiLGY6ZnVuY3Rpb24gUDUoUyl7cmV0'@; put 'dXJuIFMubCsrLDAhPT1TLnJlYWRfc2hpZnQoMSl9fSwzMDp7bjoiUHRnSW50IixmOmZ1bmN0aW9uIEJCKFMpe3JldHVybiBTLmwrKyxTLnJlYWRfc2hpZnQoMil9fSwzMTp7bjoiUHRnTnVtIixmOmZ1bmN0aW9uIFY0KFMpe3JldHVybiBTLmwrKyxSbChTKX19LDMyOntuOiJQdGdBcnJheSIs'@; put 'ZjpmdW5jdGlvbiB4bmUoUyxPLGspe3ZhciBLPSg5NiZTW1MubCsrXSk+PjU7cmV0dXJuIFMubCs9Mj09ay5iaWZmPzY6MTI9PWsuYmlmZj8xNDo3LFtLXX19LDMzOntuOiJQdGdGdW5jIixmOmZ1bmN0aW9uIEhCKFMsTyxrKXt2YXIgSz0oOTYmU1tTLmxdKT4+NTtTLmwrPTE7dmFyIGVlPVMu'@; put 'cmVhZF9zaGlmdChrJiZrLmJpZmY8PTM/MToyKTtyZXR1cm5baWpbZWVdLHZEW2VlXSxLXX19LDM0OntuOiJQdGdGdW5jVmFyIixmOmZ1bmN0aW9uIE5CKFMsTyxrKXt2YXIgSz1TW1MubCsrXSxlZT1TLnJlYWRfc2hpZnQoMSksb2U9ayYmay5iaWZmPD0zP1s4OD09Sz8tMTowLFMucmVhZF9z'@; put 'aGlmdCgxKV06ZnVuY3Rpb24gc0QoUyl7cmV0dXJuW1NbUy5sKzFdPj43LDMyNzY3JlMucmVhZF9zaGlmdCgyKV19KFMpO3JldHVybltlZSwoMD09PW9lWzBdP3ZEOmxTKVtvZVsxXV1dfX0sMzU6e246IlB0Z05hbWUiLGY6ZnVuY3Rpb24gVUIoUyxPLGspe3ZhciBLPVMucmVhZF9zaGlmdCgx'@; put 'KT4+PjUmMyxvZT1TLnJlYWRfc2hpZnQoIWt8fGsuYmlmZj49OD80OjIpO3N3aXRjaChrLmJpZmYpe2Nhc2UgMjpTLmwrPTU7YnJlYWs7Y2FzZSAzOmNhc2UgNDpTLmwrPTg7YnJlYWs7Y2FzZSA1OlMubCs9MTJ9cmV0dXJuW0ssMCxvZV19fSwzNjp7bjoiUHRnUmVmIixmOmZ1bmN0aW9uIEZC'@; put 'KFMsTyxrKXt2YXIgSz0oOTYmU1tTLmxdKT4+NTtyZXR1cm4gUy5sKz0xLFtLLEprKFMsMCxrKV19fSwzNzp7bjoiUHRnQXJlYSIsZjpmdW5jdGlvbiBRayhTLE8sayl7cmV0dXJuWyg5NiZTW1MubCsrXSk+PjUsWkMoUywwLGspXX19LDM4OntuOiJQdGdNZW1BcmVhIixmOmZ1bmN0aW9uIGxE'@; put 'KFMsTyxrKXt2YXIgSz1TLnJlYWRfc2hpZnQoMSk+Pj41JjM7cmV0dXJuIFMubCs9ayYmMj09ay5iaWZmPzM6NCxbSyxTLnJlYWRfc2hpZnQoayYmMj09ay5iaWZmPzE6MildfX0sMzk6e246IlB0Z01lbUVyciIsZjpSbn0sNDA6e246IlB0Z01lbU5vTWVtIixmOlJufSw0MTp7bjoiUHRnTWVt'@; put 'RnVuYyIsZjpmdW5jdGlvbiBBbmUoUyxPLGspe3JldHVybltTLnJlYWRfc2hpZnQoMSk+Pj41JjMsUy5yZWFkX3NoaWZ0KGsmJjI9PWsuYmlmZj8xOjIpXX19LDQyOntuOiJQdGdSZWZFcnIiLGY6ZnVuY3Rpb24ga25lKFMsTyxrKXt2YXIgSz1TLnJlYWRfc2hpZnQoMSk+Pj41JjM7cmV0dXJu'@; put 'IFMubCs9NCxrLmJpZmY8OCYmUy5sLS0sMTI9PWsuYmlmZiYmKFMubCs9MiksW0tdfX0sNDM6e246IlB0Z0FyZWFFcnIiLGY6ZnVuY3Rpb24gdEQoUyxPLGspe3ZhciBLPSg5NiZTW1MubCsrXSk+PjU7cmV0dXJuIFMubCs9ayYmay5iaWZmPjg/MTI6ay5iaWZmPDg/Njo4LFtLXX19LDQ0Ontu'@; put 'OiJQdGdSZWZOIixmOmZ1bmN0aW9uIGlEKFMsTyxrKXt2YXIgSz0oOTYmU1tTLmxdKT4+NTtTLmwrPTE7dmFyIGVlPWZ1bmN0aW9uIE5mKFMsTyxrKXt2YXIgSz1rJiZrLmJpZmY/ay5iaWZmOjg7aWYoSz49MiYmSzw9NSlyZXR1cm4gZnVuY3Rpb24gYTgoUyl7dmFyIE89Uy5yZWFkX3NoaWZ0'@; put 'KDIpLGs9Uy5yZWFkX3NoaWZ0KDEpLEs9KDMyNzY4Jk8pPj4xNSxlZT0oMTYzODQmTyk+PjE0O3JldHVybiBPJj0xNjM4MywxPT1LJiZPPj04MTkyJiYoTy09MTYzODQpLDE9PWVlJiZrPj0xMjgmJihrLT0yNTYpLHtyOk8sYzprLGNSZWw6ZWUsclJlbDpLfX0oUyk7dmFyIGVlPVMucmVhZF9z'@; put 'aGlmdChLPj0xMj80OjIpLG9lPVMucmVhZF9zaGlmdCgyKSxtZT0oMTYzODQmb2UpPj4xNCxwZT0oMzI3Njgmb2UpPj4xNTtpZihvZSY9MTYzODMsMT09cGUpZm9yKDtlZT41MjQyODc7KWVlLT0xMDQ4NTc2O2lmKDE9PW1lKWZvcig7b2U+ODE5MTspb2UtPTE2Mzg0O3JldHVybntyOmVlLGM6'@; put 'b2UsY1JlbDptZSxyUmVsOnBlfX0oUywwLGspO3JldHVybltLLGVlXX19LDQ1OntuOiJQdGdBcmVhTiIsZjpmdW5jdGlvbiBNbmUoUyxPLGspe3ZhciBLPSg5NiZTW1MubCsrXSk+PjUsZWU9ZnVuY3Rpb24gSUIoUyxPLGspe2lmKGsuYmlmZjw4KXJldHVybiBxayhTKTt2YXIgSz1TLnJlYWRf'@; put 'c2hpZnQoMTI9PWsuYmlmZj80OjIpLGVlPVMucmVhZF9zaGlmdCgxMj09ay5iaWZmPzQ6Miksb2U9TjQoUywyKSxtZT1ONChTLDIpO3JldHVybntzOntyOkssYzpvZVswXSxjUmVsOm9lWzFdLHJSZWw6b2VbMl19LGU6e3I6ZWUsYzptZVswXSxjUmVsOm1lWzFdLHJSZWw6bWVbMl19fX0oUyww'@; put 'LGspO3JldHVybltLLGVlXX19LDQ2OntuOiJQdGdNZW1BcmVhTiIsZjpmdW5jdGlvbiBKdihTKXtyZXR1cm5bUy5yZWFkX3NoaWZ0KDEpPj4+NSYzLFMucmVhZF9zaGlmdCgyKV19fSw0Nzp7bjoiUHRnTWVtTm9NZW1OIixmOmZ1bmN0aW9uIFF2KFMpe3JldHVybltTLnJlYWRfc2hpZnQoMSk+'@; put 'Pj41JjMsUy5yZWFkX3NoaWZ0KDIpXX19LDU3OntuOiJQdGdOYW1lWCIsZjpmdW5jdGlvbiBaQihTLE8sayl7cmV0dXJuIDU9PWsuYmlmZj9mdW5jdGlvbiBXQihTKXt2YXIgTz1TLnJlYWRfc2hpZnQoMSk+Pj41JjMsaz1TLnJlYWRfc2hpZnQoMiwiaSIpO1MubCs9ODt2YXIgSz1TLnJlYWRf'@; put 'c2hpZnQoMik7cmV0dXJuIFMubCs9MTIsW08sayxLXX0oUyk6W1MucmVhZF9zaGlmdCgxKT4+PjUmMyxTLnJlYWRfc2hpZnQoMiksUy5yZWFkX3NoaWZ0KDQpXX19LDU4OntuOiJQdGdSZWYzZCIsZjpmdW5jdGlvbiBhRChTLE8sayl7dmFyIEs9KDk2JlNbUy5sXSk+PjU7Uy5sKz0xO3ZhciBl'@; put 'ZT1TLnJlYWRfc2hpZnQoMik7cmV0dXJuIGsmJjU9PWsuYmlmZiYmKFMubCs9MTIpLFtLLGVlLEprKFMsMCxrKV19fSw1OTp7bjoiUHRnQXJlYTNkIixmOmZ1bmN0aW9uIGVEKFMsTyxrKXt2YXIgSz0oOTYmU1tTLmwrK10pPj41LGVlPVMucmVhZF9zaGlmdCgyLCJpIik7aWYoayYmNT09PWsu'@; put 'YmlmZilTLmwrPTEyO3JldHVybltLLGVlLFpDKFMsMCxrKV19fSw2MDp7bjoiUHRnUmVmRXJyM2QiLGY6ZnVuY3Rpb24gczgoUyxPLGspe3ZhciBLPSg5NiZTW1MubCsrXSk+PjUsZWU9Uy5yZWFkX3NoaWZ0KDIpLG9lPTQ7aWYoaylzd2l0Y2goay5iaWZmKXtjYXNlIDU6b2U9MTU7YnJlYWs7'@; put 'Y2FzZSAxMjpvZT02fXJldHVybiBTLmwrPW9lLFtLLGVlXX19LDYxOntuOiJQdGdBcmVhRXJyM2QiLGY6ZnVuY3Rpb24gU25lKFMsTyxrKXt2YXIgSz0oOTYmU1tTLmwrK10pPj41LGVlPVMucmVhZF9zaGlmdCgyKSxvZT04O2lmKGspc3dpdGNoKGsuYmlmZil7Y2FzZSA1OlMubCs9MTIsb2U9'@; put 'NjticmVhaztjYXNlIDEyOm9lPTEyfXJldHVybiBTLmwrPW9lLFtLLGVlXX19LDI1NTp7fX0sZVM9ezY0OjMyLDk2OjMyLDY1OjMzLDk3OjMzLDY2OjM0LDk4OjM0LDY3OjM1LDk5OjM1LDY4OjM2LDEwMDozNiw2OTozNywxMDE6MzcsNzA6MzgsMTAyOjM4LDcxOjM5LDEwMzozOSw3Mjo0MCwx'@; put 'MDQ6NDAsNzM6NDEsMTA1OjQxLDc0OjQyLDEwNjo0Miw3NTo0MywxMDc6NDMsNzY6NDQsMTA4OjQ0LDc3OjQ1LDEwOTo0NSw3ODo0NiwxMTA6NDYsNzk6NDcsMTExOjQ3LDg4OjM0LDEyMDozNCw4OTo1NywxMjE6NTcsOTA6NTgsMTIyOjU4LDkxOjU5LDEyMzo1OSw5Mjo2MCwxMjQ6NjAsOTM6'@; put 'NjEsMTI1OjYxfTshZnVuY3Rpb24oKXtmb3IodmFyIFMgaW4gZVMpZXlbU109ZXlbZVNbU11dfSgpO3ZhciB0Uz17MTp7bjoiUHRnRWxmTGVsIixmOmNEfSwyOntuOiJQdGdFbGZSdyIsZjpKQ30sMzp7bjoiUHRnRWxmQ29sIixmOktCfSw2OntuOiJQdGdFbGZSd1YiLGY6Um5lfSw3OntuOiJQ'@; put 'dGdFbGZDb2xWIixmOkpCfSwxMDp7bjoiUHRnRWxmUmFkaWNhbCIsZjpxQ30sMTE6e246IlB0Z0VsZlJhZGljYWxTIixmOkluZX0sMTM6e246IlB0Z0VsZkNvbFMiLGY6WEJ9LDE1OntuOiJQdGdFbGZDb2xTViIsZjpxQn0sMTY6e246IlB0Z0VsZlJhZGljYWxMZWwiLGY6RG5lfSwyNTp7bjoi'@; put 'UHRnTGlzdCIsZjpmdW5jdGlvbiBPbmUoUyl7Uy5sKz0yO3ZhciBPPVMucmVhZF9zaGlmdCgyKSxrPVMucmVhZF9zaGlmdCgyKSxLPVMucmVhZF9zaGlmdCg0KSxlZT1TLnJlYWRfc2hpZnQoMiksb2U9Uy5yZWFkX3NoaWZ0KDIpO3JldHVybntpeHRpOk8sY29sdHlwZTozJmsscnQ6TG5lW2s+'@; put 'PjImMzFdLGlkeDpLLGM6ZWUsQzpvZX19fSwyOTp7bjoiUHRnU3hOYW1lIixmOmZ1bmN0aW9uIFBuZShTKXtyZXR1cm4gUy5sKz0yLFtTLnJlYWRfc2hpZnQoNCldfX0sMjU1Ont9fSxLMz17MDp7bjoiUHRnQXR0ck5vb3AiLGY6ZnVuY3Rpb24gUUMoUyl7cmV0dXJuIFMubCs9NCxbMCwwXX19'@; put 'LDE6e246IlB0Z0F0dHJTZW1pIixmOmZ1bmN0aW9uIExCKFMsTyxrKXt2YXIgSz0yNTUmU1tTLmwrMV0/MTowO3JldHVybiBTLmwrPWsmJjI9PWsuYmlmZj8zOjQsW0tdfX0sMjp7bjoiUHRnQXR0cklmIixmOmZ1bmN0aW9uIFRuZShTLE8sayl7dmFyIEs9MjU1JlNbUy5sKzFdPzE6MDtyZXR1'@; put 'cm4gUy5sKz0yLFtLLFMucmVhZF9zaGlmdChrJiYyPT1rLmJpZmY/MToyKV19fSw0OntuOiJQdGdBdHRyQ2hvb3NlIixmOmZ1bmN0aW9uIEdDKFMsTyxrKXtTLmwrPTI7Zm9yKHZhciBLPVMucmVhZF9zaGlmdChrJiYyPT1rLmJpZmY/MToyKSxlZT1bXSxvZT0wO29lPD1LOysrb2UpZWUucHVz'@; put 'aChTLnJlYWRfc2hpZnQoayYmMj09ay5iaWZmPzE6MikpO3JldHVybiBlZX19LDg6e246IlB0Z0F0dHJHb3RvIixmOmZ1bmN0aW9uIEVuZShTLE8sayl7dmFyIEs9MjU1JlNbUy5sKzFdPzE6MDtyZXR1cm4gUy5sKz0yLFtLLFMucmVhZF9zaGlmdChrJiYyPT1rLmJpZmY/MToyKV19fSwxNjp7'@; put 'bjoiUHRnQXR0clN1bSIsZjpmdW5jdGlvbiBxdihTLE8sayl7Uy5sKz1rJiYyPT1rLmJpZmY/Mzo0fX0sMzI6e246IlB0Z0F0dHJCYXhjZWwiLGY6ZnVuY3Rpb24gWUMoUyl7dmFyIE89MSZTW1MubCsxXTtyZXR1cm4gUy5sKz00LFtPLDFdfX0sNjQ6e246IlB0Z0F0dHJTcGFjZSIsZjpmdW5j'@; put 'dGlvbiBPQihTKXtyZXR1cm4gUy5yZWFkX3NoaWZ0KDIpLHJEKFMpfX0sNjU6e246IlB0Z0F0dHJTcGFjZVNlbWkiLGY6ZnVuY3Rpb24gUEIoUyl7cmV0dXJuIFMucmVhZF9zaGlmdCgyKSxyRChTKX19LDEyODp7bjoiUHRnQXR0cklmRXJyb3IiLGY6ZnVuY3Rpb24gbkQoUyl7dmFyIE89MjU1'@; put 'JlNbUy5sKzFdPzE6MDtyZXR1cm4gUy5sKz0yLFtPLFMucmVhZF9zaGlmdCgyKV19fSwyNTU6e319O2Z1bmN0aW9uIEI0KFMsTyxrLEssZWUpe2lmKEsuYmlmZjw4KXJldHVybiBSbihTLE8pO2Zvcih2YXIgb2U9Uy5sK08sbWU9W10scGU9MDtwZSE9PWsubGVuZ3RoOysrcGUpc3dpdGNoKGtb'@; put 'cGVdWzBdKXtjYXNlIlB0Z0FycmF5IjprW3BlXVsxXT16QihTLDAsSyksbWUucHVzaChrW3BlXVsxXSk7YnJlYWs7Y2FzZSJQdGdNZW1BcmVhIjprW3BlXVsyXT1vRChTLDAsSyksbWUucHVzaChrW3BlXVsyXSk7YnJlYWs7Y2FzZSJQdGdFeHAiOksmJjEyPT1LLmJpZmYmJihrW3BlXVsxXVsx'@; put 'XT1TLnJlYWRfc2hpZnQoNCksbWUucHVzaChrW3BlXVsxXSkpO2JyZWFrO2Nhc2UiUHRnTGlzdCI6Y2FzZSJQdGdFbGZSYWRpY2FsUyI6Y2FzZSJQdGdFbGZDb2xTIjpjYXNlIlB0Z0VsZkNvbFNWIjp0aHJvdyJVbnN1cHBvcnRlZCAiK2tbcGVdWzBdfXJldHVybiBPPW9lLVMubCwhZWUmJjAh'@; put 'PT1PJiZtZS5wdXNoKFJuKFMsTykpLG1lfWZ1bmN0aW9uIGNoKFMsTyxrKXtmb3IodmFyIGVlLG9lLEs9Uy5sK08sbWU9W107SyE9Uy5sOylPPUstUy5sLGVlPWV5W29lPVNbUy5sXV0sKDI0PT09b2V8fDI1PT09b2UpJiYoZWU9KDI0PT09b2U/dFM6SzMpW1NbUy5sKzFdXSksZWUmJmVlLmY/'@; put 'bWUucHVzaChbZWUubixlZS5mKFMsTyxrKV0pOlJuKFMsTyk7cmV0dXJuIG1lfWZ1bmN0aW9uIEgxKFMpe2Zvcih2YXIgTz1bXSxrPTA7azxTLmxlbmd0aDsrK2spe2Zvcih2YXIgSz1TW2tdLGVlPVtdLG9lPTA7b2U8Sy5sZW5ndGg7KytvZSl7dmFyIG1lPUtbb2VdO2VlLnB1c2gobWU/Mj09'@; put 'PW1lWzBdPyciJyttZVsxXS5yZXBsYWNlKC8iL2csJyIiJykrJyInOm1lWzFdOiIiKX1PLnB1c2goZWUuam9pbigiLCIpKX1yZXR1cm4gTy5qb2luKCI7Iil9SzNbMzNdPUszWzMyXTt2YXIgdWg9e1B0Z0FkZDoiKyIsUHRnQ29uY2F0OiImIixQdGdEaXY6Ii8iLFB0Z0VxOiI9IixQdGdHZToi'@; put 'Pj0iLFB0Z0d0OiI+IixQdGdMZToiPD0iLFB0Z0x0OiI8IixQdGdNdWw6IioiLFB0Z05lOiI8PiIsUHRnUG93ZXI6Il4iLFB0Z1N1YjoiLSJ9LHVEPW5ldyBSZWdFeHAoL1teXHdcdTRFMDAtXHU5RkZGXHUzMDQwLVx1MzBGRl0vKTtmdW5jdGlvbiBkRChTLE8sayl7aWYoIVMpcmV0dXJuIlNI'@; put 'MzNUSlNFUlIwIjtpZihrLmJpZmY+OCYmKCFTLlhUSXx8IVMuWFRJW09dKSlyZXR1cm4gUy5TaGVldE5hbWVzW09dO2lmKCFTLlhUSSlyZXR1cm4iU0gzM1RKU0VSUjYiO3ZhciBLPVMuWFRJW09dO2lmKGsuYmlmZjw4KXJldHVybiBPPjFlNCYmKE8tPTY1NTM2KSxPPDAmJihPPS1PKSwwPT1P'@; put 'PyIiOlMuWFRJW08tMV07aWYoIUspcmV0dXJuIlNIMzNUSlNFUlIxIjt2YXIgZWU9IiI7aWYoay5iaWZmPjgpc3dpdGNoKFNbS1swXV1bMF0pe2Nhc2UgMzU3OnJldHVybiBlZT0tMT09S1sxXT8iI1JFRiI6Uy5TaGVldE5hbWVzW0tbMV1dLEtbMV09PUtbMl0/ZWU6ZWUrIjoiK1MuU2hlZXRO'@; put 'YW1lc1tLWzJdXTtjYXNlIDM1ODpyZXR1cm4gbnVsbCE9ay5TSUQ/Uy5TaGVldE5hbWVzW2suU0lEXToiU0gzM1RKU1NBTUUiK1NbS1swXV1bMF07ZGVmYXVsdDpyZXR1cm4iU0gzM1RKU1NSQyIrU1tLWzBdXVswXX1zd2l0Y2goU1tLWzBdXVswXVswXSl7Y2FzZSAxMDI1OnJldHVybiBlZT0t'@; put 'MT09S1sxXT8iI1JFRiI6Uy5TaGVldE5hbWVzW0tbMV1dfHwiU0gzM1RKU0VSUjMiLEtbMV09PUtbMl0/ZWU6ZWUrIjoiK1MuU2hlZXROYW1lc1tLWzJdXTtjYXNlIDE0ODQ5OnJldHVybiBTW0tbMF1dLnNsaWNlKDEpLm1hcChmdW5jdGlvbihvZSl7cmV0dXJuIG9lLk5hbWV9KS5qb2luKCI7'@; put 'OyIpO2RlZmF1bHQ6cmV0dXJuIFNbS1swXV1bMF1bM10/KGVlPS0xPT1LWzFdPyIjUkVGIjpTW0tbMF1dWzBdWzNdW0tbMV1dfHwiU0gzM1RKU0VSUjQiLEtbMV09PUtbMl0/ZWU6ZWUrIjoiK1NbS1swXV1bMF1bM11bS1syXV0pOiJTSDMzVEpTRVJSMiJ9fWZ1bmN0aW9uIGVqKFMsTyxrKXty'@; put 'ZXR1cm4gZnVuY3Rpb24gSG5lKFMsTyl7aWYoIShTfHxPJiZPLmJpZmY8PTUmJk8uYmlmZj49MikpdGhyb3cgbmV3IEVycm9yKCJlbXB0eSBzaGVldCBuYW1lIik7cmV0dXJuLyNSRUYvLnRlc3QoUyk/Uzp1RC50ZXN0KFMpPyInIitTKyInIjpTfShkRChTLE8sayksayl9ZnVuY3Rpb24gYTAo'@; put 'UyxPLGssSyxlZSxvZSl7dmFyIFBlLFZlLFllLFR0LG1lPWVlJiZlZS5iaWZmfHw4LHBlPW9lJiZudWxsIT1PP086e3M6e2M6MCxyOjB9LGU6e2M6MCxyOjB9fSxiZT1bXSxldD0wLGN0PTAsaXQ9IiI7aWYoIVNbMF18fCFTWzBdWzBdKXJldHVybiIiO2Zvcih2YXIgYnQ9LTEsQnQ9IiIsRHQ9'@; put 'MCxPdD1TWzBdLmxlbmd0aDtEdDxPdDsrK0R0KXt2YXIgS3Q9U1swXVtEdF07c3dpdGNoKEt0WzBdKXtjYXNlIlB0Z1VtaW51cyI6YmUucHVzaCgiLSIrYmUucG9wKCkpO2JyZWFrO2Nhc2UiUHRnVXBsdXMiOmJlLnB1c2goIisiK2JlLnBvcCgpKTticmVhaztjYXNlIlB0Z1BlcmNlbnQiOmJl'@; put 'LnB1c2goYmUucG9wKCkrIiUiKTticmVhaztjYXNlIlB0Z0FkZCI6Y2FzZSJQdGdDb25jYXQiOmNhc2UiUHRnRGl2IjpjYXNlIlB0Z0VxIjpjYXNlIlB0Z0dlIjpjYXNlIlB0Z0d0IjpjYXNlIlB0Z0xlIjpjYXNlIlB0Z0x0IjpjYXNlIlB0Z011bCI6Y2FzZSJQdGdOZSI6Y2FzZSJQdGdQb3dl'@; put 'ciI6Y2FzZSJQdGdTdWIiOmlmKFBlPWJlLnBvcCgpLFZlPWJlLnBvcCgpLGJ0Pj0wKXtzd2l0Y2goU1swXVtidF1bMV1bMF0pe2Nhc2UgMDpCdD1vaSgiICIsU1swXVtidF1bMV1bMV0pO2JyZWFrO2Nhc2UgMTpCdD1vaSgiXHIiLFNbMF1bYnRdWzFdWzFdKTticmVhaztkZWZhdWx0OmlmKEJ0'@; put 'PSIiLGVlLldURil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgUHRnQXR0clNwYWNlVHlwZSAiK1NbMF1bYnRdWzFdWzBdKX1WZSs9QnQsYnQ9LTF9YmUucHVzaChWZSt1aFtLdFswXV0rUGUpO2JyZWFrO2Nhc2UiUHRnSXNlY3QiOlBlPWJlLnBvcCgpLFZlPWJlLnBvcCgpLGJlLnB1c2go'@; put 'VmUrIiAiK1BlKTticmVhaztjYXNlIlB0Z1VuaW9uIjpQZT1iZS5wb3AoKSxWZT1iZS5wb3AoKSxiZS5wdXNoKFZlKyIsIitQZSk7YnJlYWs7Y2FzZSJQdGdSYW5nZSI6UGU9YmUucG9wKCksVmU9YmUucG9wKCksYmUucHVzaChWZSsiOiIrUGUpO2JyZWFrO2Nhc2UiUHRnQXR0ckNob29zZSI6'@; put 'Y2FzZSJQdGdBdHRyR290byI6Y2FzZSJQdGdBdHRySWYiOmNhc2UiUHRnQXR0cklmRXJyb3IiOmNhc2UiUHRnQXR0ckJheGNlbCI6Y2FzZSJQdGdBdHRyU2VtaSI6Y2FzZSJQdGdNZW1BcmVhIjpjYXNlIlB0Z1RibCI6Y2FzZSJQdGdNZW1FcnIiOmNhc2UiUHRnTWVtQXJlYU4iOmNhc2UiUHRn'@; put 'TWVtTm9NZW1OIjpjYXNlIlB0Z0F0dHJOb29wIjpjYXNlIlB0Z1NoZWV0IjpjYXNlIlB0Z0VuZFNoZWV0IjpjYXNlIlB0Z01lbUZ1bmMiOmNhc2UiUHRnTWVtTm9NZW0iOmJyZWFrO2Nhc2UiUHRnUmVmIjpZZT10YShLdFsxXVsxXSxwZSxlZSksYmUucHVzaChqYShZZSxtZSkpO2JyZWFrO2Nh'@; put 'c2UiUHRnUmVmTiI6WWU9az90YShLdFsxXVsxXSxrLGVlKTpLdFsxXVsxXSxiZS5wdXNoKGphKFllLG1lKSk7YnJlYWs7Y2FzZSJQdGdSZWYzZCI6ZXQ9S3RbMV1bMV0sWWU9dGEoS3RbMV1bMl0scGUsZWUpLGl0PWVqKEssZXQsZWUpLGJlLnB1c2goaXQrIiEiK2phKFllLG1lKSk7YnJlYWs7'@; put 'Y2FzZSJQdGdGdW5jIjpjYXNlIlB0Z0Z1bmNWYXIiOnZhciBzcj1LdFsxXVswXSxDbj1LdFsxXVsxXTtzcnx8KHNyPTApO3ZhciB1cj0wPT0oc3ImPTEyNyk/W106YmUuc2xpY2UoLXNyKTtiZS5sZW5ndGgtPXNyLCJVc2VyIj09PUNuJiYoQ249dXIuc2hpZnQoKSksYmUucHVzaChDbisiKCIr'@; put 'dXIuam9pbigiLCIpKyIpIik7YnJlYWs7Y2FzZSJQdGdCb29sIjpiZS5wdXNoKEt0WzFdPyJUUlVFIjoiRkFMU0UiKTticmVhaztjYXNlIlB0Z0ludCI6Y2FzZSJQdGdOdW0iOmJlLnB1c2goU3RyaW5nKEt0WzFdKSk7YnJlYWs7Y2FzZSJQdGdTdHIiOmJlLnB1c2goJyInK0t0WzFdLnJlcGxh'@; put 'Y2UoLyIvZywnIiInKSsnIicpO2JyZWFrO2Nhc2UiUHRnRXJyIjpiZS5wdXNoKEt0WzFdKTticmVhaztjYXNlIlB0Z0FyZWFOIjpUdD1hYShLdFsxXVsxXSxrP3tzOmt9OnBlLGVlKSxiZS5wdXNoKCRzKFR0LGVlKSk7YnJlYWs7Y2FzZSJQdGdBcmVhIjpUdD1hYShLdFsxXVsxXSxwZSxlZSks'@; put 'YmUucHVzaCgkcyhUdCxlZSkpO2JyZWFrO2Nhc2UiUHRnQXJlYTNkIjpldD1LdFsxXVsxXSxUdD1hYShLdFsxXVsyXSxwZSxlZSksaXQ9ZWooSyxldCxlZSksYmUucHVzaChpdCsiISIrJHMoVHQsZWUpKTticmVhaztjYXNlIlB0Z0F0dHJTdW0iOmJlLnB1c2goIlNVTSgiK2JlLnBvcCgpKyIp'@; put 'Iik7YnJlYWs7Y2FzZSJQdGdOYW1lIjp2YXIgZXI9KEsubmFtZXN8fFtdKVsoY3Q9S3RbMV1bMl0pLTFdfHwoS1swXXx8W10pW2N0XSxqbj1lcj9lci5OYW1lOiJTSDMzVEpTTkFNRSIrU3RyaW5nKGN0KTtqbiBpbiB0eSYmKGpuPXR5W2puXSksYmUucHVzaChqbik7YnJlYWs7Y2FzZSJQdGdO'@; put 'YW1lWCI6dmFyIGJyLHByPUt0WzFdWzFdO2lmKGN0PUt0WzFdWzJdLCEoZWUuYmlmZjw9NSkpe3ZhciBycj0iIjtpZigxNDg0OT09KChLW3ByXXx8W10pWzBdfHxbXSlbMF18fCgxMDI1PT0oKEtbcHJdfHxbXSlbMF18fFtdKVswXT9LW3ByXVtjdF0mJktbcHJdW2N0XS5pdGFiPjAmJihycj1L'@; put 'LlNoZWV0TmFtZXNbS1twcl1bY3RdLml0YWItMV0rIiEiKTpycj1LLlNoZWV0TmFtZXNbY3QtMV0rIiEiKSxLW3ByXSYmS1twcl1bY3RdKXJyKz1LW3ByXVtjdF0uTmFtZTtlbHNlIGlmKEtbMF0mJktbMF1bY3RdKXJyKz1LWzBdW2N0XS5OYW1lO2Vsc2V7dmFyIFBpPShkRChLLHByLGVlKXx8'@; put 'IiIpLnNwbGl0KCI7OyIpO1BpW2N0LTFdP3JyPVBpW2N0LTFdOnJyKz0iU0gzM1RKU0VSUlgifWJlLnB1c2gocnIpO2JyZWFrfXByPDAmJihwcj0tcHIpLEtbcHJdJiYoYnI9S1twcl1bY3RdKSxicnx8KGJyPXtOYW1lOiJTSDMzVEpTRVJSWSJ9KSxiZS5wdXNoKGJyLk5hbWUpO2JyZWFrO2Nh'@; put 'c2UiUHRnUGFyZW4iOnZhciBuYT0iKCIsbGE9IikiO2lmKGJ0Pj0wKXtzd2l0Y2goQnQ9IiIsU1swXVtidF1bMV1bMF0pe2Nhc2UgMjpuYT1vaSgiICIsU1swXVtidF1bMV1bMV0pK25hO2JyZWFrO2Nhc2UgMzpuYT1vaSgiXHIiLFNbMF1bYnRdWzFdWzFdKStuYTticmVhaztjYXNlIDQ6bGE9'@; put 'b2koIiAiLFNbMF1bYnRdWzFdWzFdKStsYTticmVhaztjYXNlIDU6bGE9b2koIlxyIixTWzBdW2J0XVsxXVsxXSkrbGE7YnJlYWs7ZGVmYXVsdDppZihlZS5XVEYpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIFB0Z0F0dHJTcGFjZVR5cGUgIitTWzBdW2J0XVsxXVswXSl9YnQ9LTF9YmUu'@; put 'cHVzaChuYStiZS5wb3AoKStsYSk7YnJlYWs7Y2FzZSJQdGdSZWZFcnIiOmNhc2UiUHRnQXJlYUVyciI6Y2FzZSJQdGdBcmVhRXJyM2QiOmNhc2UiUHRnUmVmRXJyM2QiOmJlLnB1c2goIiNSRUYhIik7YnJlYWs7Y2FzZSJQdGdFeHAiOnZhciBScj17YzprLmMscjprLnJ9O2lmKEsuc2hhcmVk'@; put 'ZltxaShZZT17YzpLdFsxXVsxXSxyOkt0WzFdWzBdfSldKXt2YXIgQm49Sy5zaGFyZWRmW3FpKFllKV07YmUucHVzaChhMChCbixwZSxScixLLGVlKSl9ZWxzZXt2YXIganI9ITE7Zm9yKFBlPTA7UGUhPUsuYXJyYXlmLmxlbmd0aDsrK1BlKWlmKCEoWWUuYzwoVmU9Sy5hcnJheWZbUGVdKVsw'@; put 'XS5zLmN8fFllLmM+VmVbMF0uZS5jfHxZZS5yPFZlWzBdLnMucnx8WWUucj5WZVswXS5lLnIpKXtiZS5wdXNoKGEwKFZlWzFdLHBlLFJyLEssZWUpKSxqcj0hMDticmVha31qcnx8YmUucHVzaChLdFsxXSl9YnJlYWs7Y2FzZSJQdGdBcnJheSI6YmUucHVzaCgieyIrSDEoS3RbMV0pKyJ9Iik7'@; put 'YnJlYWs7Y2FzZSJQdGdBdHRyU3BhY2UiOmNhc2UiUHRnQXR0clNwYWNlU2VtaSI6YnQ9RHQ7YnJlYWs7Y2FzZSJQdGdNaXNzQXJnIjpiZS5wdXNoKCIiKTticmVhaztjYXNlIlB0Z0xpc3QiOmJlLnB1c2goIlRhYmxlIitLdFsxXS5pZHgrIlsjIitLdFsxXS5ydCsiXSIpO2JyZWFrO2Nhc2Ui'@; put 'UHRnRWxmQ29sIjpjYXNlIlB0Z0VsZkNvbFMiOmNhc2UiUHRnRWxmQ29sU1YiOmNhc2UiUHRnRWxmQ29sViI6Y2FzZSJQdGdFbGZMZWwiOmNhc2UiUHRnRWxmUmFkaWNhbCI6Y2FzZSJQdGdFbGZSYWRpY2FsTGVsIjpjYXNlIlB0Z0VsZlJhZGljYWxTIjpjYXNlIlB0Z0VsZlJ3IjpjYXNlIlB0'@; put 'Z0VsZlJ3ViI6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBFTEZzIik7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBGb3JtdWxhIFRva2VuOiAiK1N0cmluZyhLdCkpfWlmKDMhPWVlLmJpZmYmJmJ0Pj0wJiYtMT09WyJQdGdBdHRyU3BhY2UiLCJQdGdBdHRyU3Bh'@; put 'Y2VTZW1pIiwiUHRnQXR0ckdvdG8iXS5pbmRleE9mKFNbMF1bRHRdWzBdKSl7dmFyIEhuPSEwO3N3aXRjaCgoS3Q9U1swXVtidF0pWzFdWzBdKXtjYXNlIDQ6SG49ITE7Y2FzZSAwOkJ0PW9pKCIgIixLdFsxXVsxXSk7YnJlYWs7Y2FzZSA1OkhuPSExO2Nhc2UgMTpCdD1vaSgiXHIiLEt0WzFd'@; put 'WzFdKTticmVhaztkZWZhdWx0OmlmKEJ0PSIiLGVlLldURil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgUHRnQXR0clNwYWNlVHlwZSAiK0t0WzFdWzBdKX1iZS5wdXNoKChIbj9CdDoiIikrYmUucG9wKCkrKEhuPyIiOkJ0KSksYnQ9LTF9fWlmKGJlLmxlbmd0aD4xJiZlZS5XVEYpdGhy'@; put 'b3cgbmV3IEVycm9yKCJiYWQgZm9ybXVsYSBzdGFjayIpO3JldHVybiBiZVswXX1mdW5jdGlvbiBoRChTLE8sayl7dmFyIG9lLEs9Uy5sK08sZWU9Mj09ay5iaWZmPzE6MixtZT1TLnJlYWRfc2hpZnQoZWUpO2lmKDY1NTM1PT1tZSlyZXR1cm5bW10sUm4oUyxPLTIpXTt2YXIgcGU9Y2goUyxt'@; put 'ZSxrKTtyZXR1cm4gTyE9PW1lK2VlJiYob2U9QjQoUyxPLW1lLWVlLHBlLGspKSxTLmw9SyxbcGUsb2VdfWZ1bmN0aW9uIFgzKFMsTyxrKXt2YXIgZWUsSz1TLmwrTyxvZT1TLnJlYWRfc2hpZnQoMiksbWU9Y2goUyxvZSxrKTtyZXR1cm4gNjU1MzU9PW9lP1tbXSxSbihTLE8tMildOihPIT09'@; put 'b2UrMiYmKGVlPUI0KFMsSy1vZS0yLG1lLGspKSxbbWUsZWVdKX1mdW5jdGlvbiBpUyhTLE8sayl7dmFyIEs9Uy5sK08sZWU9eTAoUyk7Mj09ay5iaWZmJiYrK1MubDt2YXIgb2U9ZnVuY3Rpb24gblMoUyl7dmFyIE87aWYoNjU1MzUhPT1RYShTLFMubCs2KSlyZXR1cm5bUmwoUyksIm4iXTtz'@; put 'd2l0Y2goU1tTLmxdKXtjYXNlIDA6cmV0dXJuIFMubCs9OCxbIlN0cmluZyIsInMiXTtjYXNlIDE6cmV0dXJuIE89MT09PVNbUy5sKzJdLFMubCs9OCxbTywiYiJdO2Nhc2UgMjpyZXR1cm4gTz1TW1MubCsyXSxTLmwrPTgsW08sImUiXTtjYXNlIDM6cmV0dXJuIFMubCs9OCxbIiIsInMiXX1y'@; put 'ZXR1cm5bXX0oUyksbWU9Uy5yZWFkX3NoaWZ0KDEpOzIhPWsuYmlmZiYmKFMucmVhZF9zaGlmdCgxKSxrLmJpZmY+PTUmJlMucmVhZF9zaGlmdCg0KSk7dmFyIHBlPWZ1bmN0aW9uIGZEKFMsTyxrKXt2YXIgb2UsSz1TLmwrTyxlZT0yPT1rLmJpZmY/MToyLG1lPVMucmVhZF9zaGlmdChlZSk7'@; put 'aWYoNjU1MzU9PW1lKXJldHVybltbXSxSbihTLE8tMildO3ZhciBwZT1jaChTLG1lLGspO3JldHVybiBPIT09bWUrZWUmJihvZT1CNChTLE8tbWUtZWUscGUsaykpLFMubD1LLFtwZSxvZV19KFMsSy1TLmwsayk7cmV0dXJue2NlbGw6ZWUsdmFsOm9lWzBdLGZvcm11bGE6cGUsc2hhcmVkOm1l'@; put 'Pj4zJjEsdHQ6b2VbMV19fWZ1bmN0aW9uIGo0KFMsTyxrKXt2YXIgSz1TLnJlYWRfc2hpZnQoNCksZWU9Y2goUyxLLGspLG9lPVMucmVhZF9zaGlmdCg0KTtyZXR1cm5bZWUsb2U+MD9CNChTLG9lLGVlLGssITApOm51bGxdfXZhciBhUz1qNCx6ND1qNCxnRD1qNCx0aj1mdW5jdGlvbiBwRChT'@; put 'LE8sayl7dmFyIEs9Uy5yZWFkX3NoaWZ0KDQpLGVlPVMucmVhZF9zaGlmdCg0KSxvZT1jaChTLEssayk7cmV0dXJuW29lLGVlPjA/QjQoUyxlZSxvZSxrLCEwKTpudWxsXX0sbUQ9ajQsbmo9ajQ7ZnVuY3Rpb24gc1MoUyl7aWYoKDB8Uyk9PVMmJlM8TWF0aC5wb3coMiwxNikmJlM+PTApe3Zh'@; put 'ciBPPXZuKDExKTtyZXR1cm4gTy53cml0ZV9zaGlmdCg0LDMpLE8ud3JpdGVfc2hpZnQoMSwzMCksTy53cml0ZV9zaGlmdCgyLFMpLE8ud3JpdGVfc2hpZnQoNCwwKSxPfXZhciBrPXZuKDE3KTtyZXR1cm4gay53cml0ZV9zaGlmdCg0LDExKSxrLndyaXRlX3NoaWZ0KDEsMzEpLGsud3JpdGVf'@; put 'c2hpZnQoOCxTKSxrLndyaXRlX3NoaWZ0KDQsMCksa31mdW5jdGlvbiBvUyhTKXt2YXIgTz12big3KTtPLndyaXRlX3NoaWZ0KDQsMysyKlMubGVuZ3RoKSxPLndyaXRlX3NoaWZ0KDEsMjMpLE8ud3JpdGVfc2hpZnQoMixTLmxlbmd0aCk7dmFyIGs9dm4oMipTLmxlbmd0aCk7ay53cml0ZV9z'@; put 'aGlmdCgyKlMubGVuZ3RoLFMsInV0ZjE2bGUiKTt2YXIgSz12big0KTtyZXR1cm4gSy53cml0ZV9zaGlmdCg0LDApLFUoW08sayxLXSl9ZnVuY3Rpb24gVTQoUyl7aWYoUy5tYXRjaCgvXiMoRElWXC8wIXxHRVRUSU5HX0RBVEF8TlwvQXxOQU1FXD98TlVMTCF8TlVNIXxSRUYhfFZBTFVFISkk'@; put 'LykpcmV0dXJuIGZ1bmN0aW9uIHJqKFMpe3ZhciBPPXZuKDEwKTtyZXR1cm4gTy53cml0ZV9zaGlmdCg0LDIpLE8ud3JpdGVfc2hpZnQoMSwyOCksTy53cml0ZV9zaGlmdCgxLFMpLE8ud3JpdGVfc2hpZnQoNCwwKSxPfSgrRjNbU10pO2lmKFMubWF0Y2goL15cJD8oPzpbQS1XXVtBLVpdezJ9'@; put 'fFhbQS1FXVtBLVpdfFhGW0EtRF18W0EtWl17MSwyfSlcJD8oPzoxMFswLTNdXGR7NH18MTA0WzAtN11cZHszfXwxMDQ4WzAtNF1cZHsyfXwxMDQ4NVswLTZdXGR8MTA0ODU3WzAtNl18WzEtOV1cZHswLDV9KSQvKSlyZXR1cm4gZnVuY3Rpb24gbzgoUyl7dmFyIE89VnMoUyksaz12bigxNSk7'@; put 'cmV0dXJuIGsud3JpdGVfc2hpZnQoNCw3KSxrLndyaXRlX3NoaWZ0KDEsMzYpLGsud3JpdGVfc2hpZnQoNCxPLnIpLGsud3JpdGVfc2hpZnQoMixPLmN8KCIkIj09Uy5jaGFyQXQoMCk/MDoxKTw8MTR8KFMubWF0Y2goL1wkXGQvKT8wOjEpPDwxNSksay53cml0ZV9zaGlmdCg0LDApLGt9KFMp'@; put 'O2lmKFMubWF0Y2goL14iLioiJC8pKXJldHVybiBvUyhTKTt0aHJvdyJGb3JtdWxhIHwiK1MrInwgbm90IHN1cHBvcnRlZCBmb3IgWExTQiJ9dmFyIGxTPXswOiJCRUVQIiwxOiJPUEVOIiwyOiJPUEVOLkxJTktTIiwzOiJDTE9TRS5BTEwiLDQ6IlNBVkUiLDU6IlNBVkUuQVMiLDY6IkZJTEUu'@; put 'REVMRVRFIiw3OiJQQUdFLlNFVFVQIiw4OiJQUklOVCIsOToiUFJJTlRFUi5TRVRVUCIsMTA6IlFVSVQiLDExOiJORVcuV0lORE9XIiwxMjoiQVJSQU5HRS5BTEwiLDEzOiJXSU5ET1cuU0laRSIsMTQ6IldJTkRPVy5NT1ZFIiwxNToiRlVMTCIsMTY6IkNMT1NFIiwxNzoiUlVOIiwyMjoiU0VU'@; put 'LlBSSU5ULkFSRUEiLDIzOiJTRVQuUFJJTlQuVElUTEVTIiwyNDoiU0VULlBBR0UuQlJFQUsiLDI1OiJSRU1PVkUuUEFHRS5CUkVBSyIsMjY6IkZPTlQiLDI3OiJESVNQTEFZIiwyODoiUFJPVEVDVC5ET0NVTUVOVCIsMjk6IlBSRUNJU0lPTiIsMzA6IkExLlIxQzEiLDMxOiJDQUxDVUxBVEUu'@; put 'Tk9XIiwzMjoiQ0FMQ1VMQVRJT04iLDM0OiJEQVRBLkZJTkQiLDM1OiJFWFRSQUNUIiwzNjoiREFUQS5ERUxFVEUiLDM3OiJTRVQuREFUQUJBU0UiLDM4OiJTRVQuQ1JJVEVSSUEiLDM5OiJTT1JUIiw0MDoiREFUQS5TRVJJRVMiLDQxOiJUQUJMRSIsNDI6IkZPUk1BVC5OVU1CRVIiLDQzOiJB'@; put 'TElHTk1FTlQiLDQ0OiJTVFlMRSIsNDU6IkJPUkRFUiIsNDY6IkNFTEwuUFJPVEVDVElPTiIsNDc6IkNPTFVNTi5XSURUSCIsNDg6IlVORE8iLDQ5OiJDVVQiLDUwOiJDT1BZIiw1MToiUEFTVEUiLDUyOiJDTEVBUiIsNTM6IlBBU1RFLlNQRUNJQUwiLDU0OiJFRElULkRFTEVURSIsNTU6IklO'@; put 'U0VSVCIsNTY6IkZJTEwuUklHSFQiLDU3OiJGSUxMLkRPV04iLDYxOiJERUZJTkUuTkFNRSIsNjI6IkNSRUFURS5OQU1FUyIsNjM6IkZPUk1VTEEuR09UTyIsNjQ6IkZPUk1VTEEuRklORCIsNjU6IlNFTEVDVC5MQVNULkNFTEwiLDY2OiJTSE9XLkFDVElWRS5DRUxMIiw2NzoiR0FMTEVSWS5B'@; put 'UkVBIiw2ODoiR0FMTEVSWS5CQVIiLDY5OiJHQUxMRVJZLkNPTFVNTiIsNzA6IkdBTExFUlkuTElORSIsNzE6IkdBTExFUlkuUElFIiw3MjoiR0FMTEVSWS5TQ0FUVEVSIiw3MzoiQ09NQklOQVRJT04iLDc0OiJQUkVGRVJSRUQiLDc1OiJBREQuT1ZFUkxBWSIsNzY6IkdSSURMSU5FUyIsNzc6'@; put 'IlNFVC5QUkVGRVJSRUQiLDc4OiJBWEVTIiw3OToiTEVHRU5EIiw4MDoiQVRUQUNILlRFWFQiLDgxOiJBREQuQVJST1ciLDgyOiJTRUxFQ1QuQ0hBUlQiLDgzOiJTRUxFQ1QuUExPVC5BUkVBIiw4NDoiUEFUVEVSTlMiLDg1OiJNQUlOLkNIQVJUIiw4NjoiT1ZFUkxBWSIsODc6IlNDQUxFIiw4'@; put 'ODoiRk9STUFULkxFR0VORCIsODk6IkZPUk1BVC5URVhUIiw5MDoiRURJVC5SRVBFQVQiLDkxOiJQQVJTRSIsOTI6IkpVU1RJRlkiLDkzOiJISURFIiw5NDoiVU5ISURFIiw5NToiV09SS1NQQUNFIiw5NjoiRk9STVVMQSIsOTc6IkZPUk1VTEEuRklMTCIsOTg6IkZPUk1VTEEuQVJSQVkiLDk5'@; put 'OiJEQVRBLkZJTkQuTkVYVCIsMTAwOiJEQVRBLkZJTkQuUFJFViIsMTAxOiJGT1JNVUxBLkZJTkQuTkVYVCIsMTAyOiJGT1JNVUxBLkZJTkQuUFJFViIsMTAzOiJBQ1RJVkFURSIsMTA0OiJBQ1RJVkFURS5ORVhUIiwxMDU6IkFDVElWQVRFLlBSRVYiLDEwNjoiVU5MT0NLRUQuTkVYVCIsMTA3'@; put 'OiJVTkxPQ0tFRC5QUkVWIiwxMDg6IkNPUFkuUElDVFVSRSIsMTA5OiJTRUxFQ1QiLDExMDoiREVMRVRFLk5BTUUiLDExMToiREVMRVRFLkZPUk1BVCIsMTEyOiJWTElORSIsMTEzOiJITElORSIsMTE0OiJWUEFHRSIsMTE1OiJIUEFHRSIsMTE2OiJWU0NST0xMIiwxMTc6IkhTQ1JPTEwiLDEx'@; put 'ODoiQUxFUlQiLDExOToiTkVXIiwxMjA6IkNBTkNFTC5DT1BZIiwxMjE6IlNIT1cuQ0xJUEJPQVJEIiwxMjI6Ik1FU1NBR0UiLDEyNDoiUEFTVEUuTElOSyIsMTI1OiJBUFAuQUNUSVZBVEUiLDEyNjoiREVMRVRFLkFSUk9XIiwxMjc6IlJPVy5IRUlHSFQiLDEyODoiRk9STUFULk1PVkUiLDEy'@; put 'OToiRk9STUFULlNJWkUiLDEzMDoiRk9STVVMQS5SRVBMQUNFIiwxMzE6IlNFTkQuS0VZUyIsMTMyOiJTRUxFQ1QuU1BFQ0lBTCIsMTMzOiJBUFBMWS5OQU1FUyIsMTM0OiJSRVBMQUNFLkZPTlQiLDEzNToiRlJFRVpFLlBBTkVTIiwxMzY6IlNIT1cuSU5GTyIsMTM3OiJTUExJVCIsMTM4OiJP'@; put 'Ti5XSU5ET1ciLDEzOToiT04uREFUQSIsMTQwOiJESVNBQkxFLklOUFVUIiwxNDI6Ik9VVExJTkUiLDE0MzoiTElTVC5OQU1FUyIsMTQ0OiJGSUxFLkNMT1NFIiwxNDU6IlNBVkUuV09SS0JPT0siLDE0NjoiREFUQS5GT1JNIiwxNDc6IkNPUFkuQ0hBUlQiLDE0ODoiT04uVElNRSIsMTQ5OiJX'@; put 'QUlUIiwxNTA6IkZPUk1BVC5GT05UIiwxNTE6IkZJTEwuVVAiLDE1MjoiRklMTC5MRUZUIiwxNTM6IkRFTEVURS5PVkVSTEFZIiwxNTU6IlNIT1JULk1FTlVTIiwxNTk6IlNFVC5VUERBVEUuU1RBVFVTIiwxNjE6IkNPTE9SLlBBTEVUVEUiLDE2MjoiREVMRVRFLlNUWUxFIiwxNjM6IldJTkRP'@; put 'Vy5SRVNUT1JFIiwxNjQ6IldJTkRPVy5NQVhJTUlaRSIsMTY2OiJDSEFOR0UuTElOSyIsMTY3OiJDQUxDVUxBVEUuRE9DVU1FTlQiLDE2ODoiT04uS0VZIiwxNjk6IkFQUC5SRVNUT1JFIiwxNzA6IkFQUC5NT1ZFIiwxNzE6IkFQUC5TSVpFIiwxNzI6IkFQUC5NSU5JTUlaRSIsMTczOiJBUFAu'@; put 'TUFYSU1JWkUiLDE3NDoiQlJJTkcuVE8uRlJPTlQiLDE3NToiU0VORC5UTy5CQUNLIiwxODU6Ik1BSU4uQ0hBUlQuVFlQRSIsMTg2OiJPVkVSTEFZLkNIQVJULlRZUEUiLDE4NzoiU0VMRUNULkVORCIsMTg4OiJPUEVOLk1BSUwiLDE4OToiU0VORC5NQUlMIiwxOTA6IlNUQU5EQVJELkZPTlQi'@; put 'LDE5MToiQ09OU09MSURBVEUiLDE5MjoiU09SVC5TUEVDSUFMIiwxOTM6IkdBTExFUlkuM0QuQVJFQSIsMTk0OiJHQUxMRVJZLjNELkNPTFVNTiIsMTk1OiJHQUxMRVJZLjNELkxJTkUiLDE5NjoiR0FMTEVSWS4zRC5QSUUiLDE5NzoiVklFVy4zRCIsMTk4OiJHT0FMLlNFRUsiLDE5OToiV09S'@; put 'S0dST1VQIiwyMDA6IkZJTEwuR1JPVVAiLDIwMToiVVBEQVRFLkxJTksiLDIwMjoiUFJPTU9URSIsMjAzOiJERU1PVEUiLDIwNDoiU0hPVy5ERVRBSUwiLDIwNjoiVU5HUk9VUCIsMjA3OiJPQkpFQ1QuUFJPUEVSVElFUyIsMjA4OiJTQVZFLk5FVy5PQkpFQ1QiLDIwOToiU0hBUkUiLDIxMDoi'@; put 'U0hBUkUuTkFNRSIsMjExOiJEVVBMSUNBVEUiLDIxMjoiQVBQTFkuU1RZTEUiLDIxMzoiQVNTSUdOLlRPLk9CSkVDVCIsMjE0OiJPQkpFQ1QuUFJPVEVDVElPTiIsMjE1OiJISURFLk9CSkVDVCIsMjE2OiJTRVQuRVhUUkFDVCIsMjE3OiJDUkVBVEUuUFVCTElTSEVSIiwyMTg6IlNVQlNDUklC'@; put 'RS5UTyIsMjE5OiJBVFRSSUJVVEVTIiwyMjA6IlNIT1cuVE9PTEJBUiIsMjIyOiJQUklOVC5QUkVWSUVXIiwyMjM6IkVESVQuQ09MT1IiLDIyNDoiU0hPVy5MRVZFTFMiLDIyNToiRk9STUFULk1BSU4iLDIyNjoiRk9STUFULk9WRVJMQVkiLDIyNzoiT04uUkVDQUxDIiwyMjg6IkVESVQuU0VS'@; put 'SUVTIiwyMjk6IkRFRklORS5TVFlMRSIsMjQwOiJMSU5FLlBSSU5UIiwyNDM6IkVOVEVSLkRBVEEiLDI0OToiR0FMTEVSWS5SQURBUiIsMjUwOiJNRVJHRS5TVFlMRVMiLDI1MToiRURJVElPTi5PUFRJT05TIiwyNTI6IlBBU1RFLlBJQ1RVUkUiLDI1MzoiUEFTVEUuUElDVFVSRS5MSU5LIiwy'@; put 'NTQ6IlNQRUxMSU5HIiwyNTY6IlpPT00iLDI1OToiSU5TRVJULk9CSkVDVCIsMjYwOiJXSU5ET1cuTUlOSU1JWkUiLDI2NToiU09VTkQuTk9URSIsMjY2OiJTT1VORC5QTEFZIiwyNjc6IkZPUk1BVC5TSEFQRSIsMjY4OiJFWFRFTkQuUE9MWUdPTiIsMjY5OiJGT1JNQVQuQVVUTyIsMjcyOiJH'@; put 'QUxMRVJZLjNELkJBUiIsMjczOiJHQUxMRVJZLjNELlNVUkZBQ0UiLDI3NDoiRklMTC5BVVRPIiwyNzY6IkNVU1RPTUlaRS5UT09MQkFSIiwyNzc6IkFERC5UT09MIiwyNzg6IkVESVQuT0JKRUNUIiwyNzk6Ik9OLkRPVUJMRUNMSUNLIiwyODA6Ik9OLkVOVFJZIiwyODE6IldPUktCT09LLkFE'@; put 'RCIsMjgyOiJXT1JLQk9PSy5NT1ZFIiwyODM6IldPUktCT09LLkNPUFkiLDI4NDoiV09SS0JPT0suT1BUSU9OUyIsMjg1OiJTQVZFLldPUktTUEFDRSIsMjg4OiJDSEFSVC5XSVpBUkQiLDI4OToiREVMRVRFLlRPT0wiLDI5MDoiTU9WRS5UT09MIiwyOTE6IldPUktCT09LLlNFTEVDVCIsMjky'@; put 'OiJXT1JLQk9PSy5BQ1RJVkFURSIsMjkzOiJBU1NJR04uVE8uVE9PTCIsMjk1OiJDT1BZLlRPT0wiLDI5NjoiUkVTRVQuVE9PTCIsMjk3OiJDT05TVFJBSU4uTlVNRVJJQyIsMjk4OiJQQVNURS5UT09MIiwzMDI6IldPUktCT09LLk5FVyIsMzA1OiJTQ0VOQVJJTy5DRUxMUyIsMzA2OiJTQ0VO'@; put 'QVJJTy5ERUxFVEUiLDMwNzoiU0NFTkFSSU8uQUREIiwzMDg6IlNDRU5BUklPLkVESVQiLDMwOToiU0NFTkFSSU8uU0hPVyIsMzEwOiJTQ0VOQVJJTy5TSE9XLk5FWFQiLDMxMToiU0NFTkFSSU8uU1VNTUFSWSIsMzEyOiJQSVZPVC5UQUJMRS5XSVpBUkQiLDMxMzoiUElWT1QuRklFTEQuUFJP'@; put 'UEVSVElFUyIsMzE0OiJQSVZPVC5GSUVMRCIsMzE1OiJQSVZPVC5JVEVNIiwzMTY6IlBJVk9ULkFERC5GSUVMRFMiLDMxODoiT1BUSU9OUy5DQUxDVUxBVElPTiIsMzE5OiJPUFRJT05TLkVESVQiLDMyMDoiT1BUSU9OUy5WSUVXIiwzMjE6IkFERElOLk1BTkFHRVIiLDMyMjoiTUVOVS5FRElU'@; put 'T1IiLDMyMzoiQVRUQUNILlRPT0xCQVJTIiwzMjQ6IlZCQUFjdGl2YXRlIiwzMjU6Ik9QVElPTlMuQ0hBUlQiLDMyODoiVkJBLklOU0VSVC5GSUxFIiwzMzA6IlZCQS5QUk9DRURVUkUuREVGSU5JVElPTiIsMzM2OiJST1VUSU5HLlNMSVAiLDMzODoiUk9VVEUuRE9DVU1FTlQiLDMzOToiTUFJ'@; put 'TC5MT0dPTiIsMzQyOiJJTlNFUlQuUElDVFVSRSIsMzQzOiJFRElULlRPT0wiLDM0NDoiR0FMTEVSWS5ET1VHSE5VVCIsMzUwOiJDSEFSVC5UUkVORCIsMzUyOiJQSVZPVC5JVEVNLlBST1BFUlRJRVMiLDM1NDoiV09SS0JPT0suSU5TRVJUIiwzNTU6Ik9QVElPTlMuVFJBTlNJVElPTiIsMzU2'@; put 'OiJPUFRJT05TLkdFTkVSQUwiLDM3MDoiRklMVEVSLkFEVkFOQ0VEIiwzNzM6Ik1BSUwuQURELk1BSUxFUiIsMzc0OiJNQUlMLkRFTEVURS5NQUlMRVIiLDM3NToiTUFJTC5SRVBMWSIsMzc2OiJNQUlMLlJFUExZLkFMTCIsMzc3OiJNQUlMLkZPUldBUkQiLDM3ODoiTUFJTC5ORVhULkxFVFRF'@; put 'UiIsMzc5OiJEQVRBLkxBQkVMIiwzODA6IklOU0VSVC5USVRMRSIsMzgxOiJGT05ULlBST1BFUlRJRVMiLDM4MjoiTUFDUk8uT1BUSU9OUyIsMzgzOiJXT1JLQk9PSy5ISURFIiwzODQ6IldPUktCT09LLlVOSElERSIsMzg1OiJXT1JLQk9PSy5ERUxFVEUiLDM4NjoiV09SS0JPT0suTkFNRSIs'@; put 'Mzg4OiJHQUxMRVJZLkNVU1RPTSIsMzkwOiJBREQuQ0hBUlQuQVVUT0ZPUk1BVCIsMzkxOiJERUxFVEUuQ0hBUlQuQVVUT0ZPUk1BVCIsMzkyOiJDSEFSVC5BREQuREFUQSIsMzkzOiJBVVRPLk9VVExJTkUiLDM5NDoiVEFCLk9SREVSIiwzOTU6IlNIT1cuRElBTE9HIiwzOTY6IlNFTEVDVC5B'@; put 'TEwiLDM5NzoiVU5HUk9VUC5TSEVFVFMiLDM5ODoiU1VCVE9UQUwuQ1JFQVRFIiwzOTk6IlNVQlRPVEFMLlJFTU9WRSIsNDAwOiJSRU5BTUUuT0JKRUNUIiw0MTI6IldPUktCT09LLlNDUk9MTCIsNDEzOiJXT1JLQk9PSy5ORVhUIiw0MTQ6IldPUktCT09LLlBSRVYiLDQxNToiV09SS0JPT0su'@; put 'VEFCLlNQTElUIiw0MTY6IkZVTEwuU0NSRUVOIiw0MTc6IldPUktCT09LLlBST1RFQ1QiLDQyMDoiU0NST0xMQkFSLlBST1BFUlRJRVMiLDQyMToiUElWT1QuU0hPVy5QQUdFUyIsNDIyOiJURVhULlRPLkNPTFVNTlMiLDQyMzoiRk9STUFULkNIQVJUVFlQRSIsNDI0OiJMSU5LLkZPUk1BVCIs'@; put 'NDI1OiJUUkFDRVIuRElTUExBWSIsNDMwOiJUUkFDRVIuTkFWSUdBVEUiLDQzMToiVFJBQ0VSLkNMRUFSIiw0MzI6IlRSQUNFUi5FUlJPUiIsNDMzOiJQSVZPVC5GSUVMRC5HUk9VUCIsNDM0OiJQSVZPVC5GSUVMRC5VTkdST1VQIiw0MzU6IkNIRUNLQk9YLlBST1BFUlRJRVMiLDQzNjoiTEFC'@; put 'RUwuUFJPUEVSVElFUyIsNDM3OiJMSVNUQk9YLlBST1BFUlRJRVMiLDQzODoiRURJVEJPWC5QUk9QRVJUSUVTIiw0Mzk6IlBJVk9ULlJFRlJFU0giLDQ0MDoiTElOSy5DT01CTyIsNDQxOiJPUEVOLlRFWFQiLDQ0MjoiSElERS5ESUFMT0ciLDQ0MzoiU0VULkRJQUxPRy5GT0NVUyIsNDQ0OiJF'@; put 'TkFCTEUuT0JKRUNUIiw0NDU6IlBVU0hCVVRUT04uUFJPUEVSVElFUyIsNDQ2OiJTRVQuRElBTE9HLkRFRkFVTFQiLDQ0NzoiRklMVEVSIiw0NDg6IkZJTFRFUi5TSE9XLkFMTCIsNDQ5OiJDTEVBUi5PVVRMSU5FIiw0NTA6IkZVTkNUSU9OLldJWkFSRCIsNDUxOiJBREQuTElTVC5JVEVNIiw0'@; put 'NTI6IlNFVC5MSVNULklURU0iLDQ1MzoiUkVNT1ZFLkxJU1QuSVRFTSIsNDU0OiJTRUxFQ1QuTElTVC5JVEVNIiw0NTU6IlNFVC5DT05UUk9MLlZBTFVFIiw0NTY6IlNBVkUuQ09QWS5BUyIsNDU4OiJPUFRJT05TLkxJU1RTLkFERCIsNDU5OiJPUFRJT05TLkxJU1RTLkRFTEVURSIsNDYwOiJT'@; put 'RVJJRVMuQVhFUyIsNDYxOiJTRVJJRVMuWCIsNDYyOiJTRVJJRVMuWSIsNDYzOiJFUlJPUkJBUi5YIiw0NjQ6IkVSUk9SQkFSLlkiLDQ2NToiRk9STUFULkNIQVJUIiw0NjY6IlNFUklFUy5PUkRFUiIsNDY3OiJNQUlMLkxPR09GRiIsNDY4OiJDTEVBUi5ST1VUSU5HLlNMSVAiLDQ2OToiQVBQ'@; put 'LkFDVElWQVRFLk1JQ1JPU09GVCIsNDcwOiJNQUlMLkVESVQuTUFJTEVSIiw0NzE6Ik9OLlNIRUVUIiw0NzI6IlNUQU5EQVJELldJRFRIIiw0NzM6IlNDRU5BUklPLk1FUkdFIiw0NzQ6IlNVTU1BUlkuSU5GTyIsNDc1OiJGSU5ELkZJTEUiLDQ3NjoiQUNUSVZFLkNFTEwuRk9OVCIsNDc3OiJF'@; put 'TkFCTEUuVElQV0laQVJEIiw0Nzg6IlZCQS5NQUtFLkFERElOIiw0ODA6IklOU0VSVERBVEFUQUJMRSIsNDgxOiJXT1JLR1JPVVAuT1BUSU9OUyIsNDgyOiJNQUlMLlNFTkQuTUFJTEVSIiw0ODU6IkFVVE9DT1JSRUNUIiw0ODk6IlBPU1QuRE9DVU1FTlQiLDQ5MToiUElDS0xJU1QiLDQ5Mzoi'@; put 'VklFVy5TSE9XIiw0OTQ6IlZJRVcuREVGSU5FIiw0OTU6IlZJRVcuREVMRVRFIiw1MDk6IlNIRUVULkJBQ0tHUk9VTkQiLDUxMDoiSU5TRVJULk1BUC5PQkpFQ1QiLDUxMToiT1BUSU9OUy5NRU5PTk8iLDUxNzoiTVNPQ0hFQ0tTIiw1MTg6Ik5PUk1BTCIsNTE5OiJMQVlPVVQiLDUyMDoiUk0u'@; put 'UFJJTlQuQVJFQSIsNTIxOiJDTEVBUi5QUklOVC5BUkVBIiw1MjI6IkFERC5QUklOVC5BUkVBIiw1MjM6Ik1PVkUuQlJLIiw1NDU6IkhJREVDVVJSLk5PVEUiLDU0NjoiSElERUFMTC5OT1RFUyIsNTQ3OiJERUxFVEUuTk9URSIsNTQ4OiJUUkFWRVJTRS5OT1RFUyIsNTQ5OiJBQ1RJVkFURS5O'@; put 'T1RFUyIsNjIwOiJQUk9URUNULlJFVklTSU9OUyIsNjIxOiJVTlBST1RFQ1QuUkVWSVNJT05TIiw2NDc6Ik9QVElPTlMuTUUiLDY1MzoiV0VCLlBVQkxJU0giLDY2NzoiTkVXV0VCUVVFUlkiLDY3MzoiUElWT1QuVEFCTEUuQ0hBUlQiLDc1MzoiT1BUSU9OUy5TQVZFIiw3NTU6Ik9QVElPTlMu'@; put 'U1BFTEwiLDgwODoiSElERUFMTC5JTktBTk5PVFMifSx2RD17MDoiQ09VTlQiLDE6IklGIiwyOiJJU05BIiwzOiJJU0VSUk9SIiw0OiJTVU0iLDU6IkFWRVJBR0UiLDY6Ik1JTiIsNzoiTUFYIiw4OiJST1ciLDk6IkNPTFVNTiIsMTA6Ik5BIiwxMToiTlBWIiwxMjoiU1RERVYiLDEzOiJET0xM'@; put 'QVIiLDE0OiJGSVhFRCIsMTU6IlNJTiIsMTY6IkNPUyIsMTc6IlRBTiIsMTg6IkFUQU4iLDE5OiJQSSIsMjA6IlNRUlQiLDIxOiJFWFAiLDIyOiJMTiIsMjM6IkxPRzEwIiwyNDoiQUJTIiwyNToiSU5UIiwyNjoiU0lHTiIsMjc6IlJPVU5EIiwyODoiTE9PS1VQIiwyOToiSU5ERVgiLDMwOiJS'@; put 'RVBUIiwzMToiTUlEIiwzMjoiTEVOIiwzMzoiVkFMVUUiLDM0OiJUUlVFIiwzNToiRkFMU0UiLDM2OiJBTkQiLDM3OiJPUiIsMzg6Ik5PVCIsMzk6Ik1PRCIsNDA6IkRDT1VOVCIsNDE6IkRTVU0iLDQyOiJEQVZFUkFHRSIsNDM6IkRNSU4iLDQ0OiJETUFYIiw0NToiRFNUREVWIiw0NjoiVkFS'@; put 'Iiw0NzoiRFZBUiIsNDg6IlRFWFQiLDQ5OiJMSU5FU1QiLDUwOiJUUkVORCIsNTE6IkxPR0VTVCIsNTI6IkdST1dUSCIsNTM6IkdPVE8iLDU0OiJIQUxUIiw1NToiUkVUVVJOIiw1NjoiUFYiLDU3OiJGViIsNTg6Ik5QRVIiLDU5OiJQTVQiLDYwOiJSQVRFIiw2MToiTUlSUiIsNjI6IklSUiIs'@; put 'NjM6IlJBTkQiLDY0OiJNQVRDSCIsNjU6IkRBVEUiLDY2OiJUSU1FIiw2NzoiREFZIiw2ODoiTU9OVEgiLDY5OiJZRUFSIiw3MDoiV0VFS0RBWSIsNzE6IkhPVVIiLDcyOiJNSU5VVEUiLDczOiJTRUNPTkQiLDc0OiJOT1ciLDc1OiJBUkVBUyIsNzY6IlJPV1MiLDc3OiJDT0xVTU5TIiw3ODoi'@; put 'T0ZGU0VUIiw3OToiQUJTUkVGIiw4MDoiUkVMUkVGIiw4MToiQVJHVU1FTlQiLDgyOiJTRUFSQ0giLDgzOiJUUkFOU1BPU0UiLDg0OiJFUlJPUiIsODU6IlNURVAiLDg2OiJUWVBFIiw4NzoiRUNITyIsODg6IlNFVC5OQU1FIiw4OToiQ0FMTEVSIiw5MDoiREVSRUYiLDkxOiJXSU5ET1dTIiw5'@; put 'MjoiU0VSSUVTIiw5MzoiRE9DVU1FTlRTIiw5NDoiQUNUSVZFLkNFTEwiLDk1OiJTRUxFQ1RJT04iLDk2OiJSRVNVTFQiLDk3OiJBVEFOMiIsOTg6IkFTSU4iLDk5OiJBQ09TIiwxMDA6IkNIT09TRSIsMTAxOiJITE9PS1VQIiwxMDI6IlZMT09LVVAiLDEwMzoiTElOS1MiLDEwNDoiSU5QVVQi'@; put 'LDEwNToiSVNSRUYiLDEwNjoiR0VULkZPUk1VTEEiLDEwNzoiR0VULk5BTUUiLDEwODoiU0VULlZBTFVFIiwxMDk6IkxPRyIsMTEwOiJFWEVDIiwxMTE6IkNIQVIiLDExMjoiTE9XRVIiLDExMzoiVVBQRVIiLDExNDoiUFJPUEVSIiwxMTU6IkxFRlQiLDExNjoiUklHSFQiLDExNzoiRVhBQ1Qi'@; put 'LDExODoiVFJJTSIsMTE5OiJSRVBMQUNFIiwxMjA6IlNVQlNUSVRVVEUiLDEyMToiQ09ERSIsMTIyOiJOQU1FUyIsMTIzOiJESVJFQ1RPUlkiLDEyNDoiRklORCIsMTI1OiJDRUxMIiwxMjY6IklTRVJSIiwxMjc6IklTVEVYVCIsMTI4OiJJU05VTUJFUiIsMTI5OiJJU0JMQU5LIiwxMzA6IlQi'@; put 'LDEzMToiTiIsMTMyOiJGT1BFTiIsMTMzOiJGQ0xPU0UiLDEzNDoiRlNJWkUiLDEzNToiRlJFQURMTiIsMTM2OiJGUkVBRCIsMTM3OiJGV1JJVEVMTiIsMTM4OiJGV1JJVEUiLDEzOToiRlBPUyIsMTQwOiJEQVRFVkFMVUUiLDE0MToiVElNRVZBTFVFIiwxNDI6IlNMTiIsMTQzOiJTWUQiLDE0'@; put 'NDoiRERCIiwxNDU6IkdFVC5ERUYiLDE0NjoiUkVGVEVYVCIsMTQ3OiJURVhUUkVGIiwxNDg6IklORElSRUNUIiwxNDk6IlJFR0lTVEVSIiwxNTA6IkNBTEwiLDE1MToiQURELkJBUiIsMTUyOiJBREQuTUVOVSIsMTUzOiJBREQuQ09NTUFORCIsMTU0OiJFTkFCTEUuQ09NTUFORCIsMTU1OiJD'@; put 'SEVDSy5DT01NQU5EIiwxNTY6IlJFTkFNRS5DT01NQU5EIiwxNTc6IlNIT1cuQkFSIiwxNTg6IkRFTEVURS5NRU5VIiwxNTk6IkRFTEVURS5DT01NQU5EIiwxNjA6IkdFVC5DSEFSVC5JVEVNIiwxNjE6IkRJQUxPRy5CT1giLDE2MjoiQ0xFQU4iLDE2MzoiTURFVEVSTSIsMTY0OiJNSU5WRVJT'@; put 'RSIsMTY1OiJNTVVMVCIsMTY2OiJGSUxFUyIsMTY3OiJJUE1UIiwxNjg6IlBQTVQiLDE2OToiQ09VTlRBIiwxNzA6IkNBTkNFTC5LRVkiLDE3MToiRk9SIiwxNzI6IldISUxFIiwxNzM6IkJSRUFLIiwxNzQ6Ik5FWFQiLDE3NToiSU5JVElBVEUiLDE3NjoiUkVRVUVTVCIsMTc3OiJQT0tFIiwx'@; put 'Nzg6IkVYRUNVVEUiLDE3OToiVEVSTUlOQVRFIiwxODA6IlJFU1RBUlQiLDE4MToiSEVMUCIsMTgyOiJHRVQuQkFSIiwxODM6IlBST0RVQ1QiLDE4NDoiRkFDVCIsMTg1OiJHRVQuQ0VMTCIsMTg2OiJHRVQuV09SS1NQQUNFIiwxODc6IkdFVC5XSU5ET1ciLDE4ODoiR0VULkRPQ1VNRU5UIiwx'@; put 'ODk6IkRQUk9EVUNUIiwxOTA6IklTTk9OVEVYVCIsMTkxOiJHRVQuTk9URSIsMTkyOiJOT1RFIiwxOTM6IlNUREVWUCIsMTk0OiJWQVJQIiwxOTU6IkRTVERFVlAiLDE5NjoiRFZBUlAiLDE5NzoiVFJVTkMiLDE5ODoiSVNMT0dJQ0FMIiwxOTk6IkRDT1VOVEEiLDIwMDoiREVMRVRFLkJBUiIs'@; put 'MjAxOiJVTlJFR0lTVEVSIiwyMDQ6IlVTRE9MTEFSIiwyMDU6IkZJTkRCIiwyMDY6IlNFQVJDSEIiLDIwNzoiUkVQTEFDRUIiLDIwODoiTEVGVEIiLDIwOToiUklHSFRCIiwyMTA6Ik1JREIiLDIxMToiTEVOQiIsMjEyOiJST1VORFVQIiwyMTM6IlJPVU5ERE9XTiIsMjE0OiJBU0MiLDIxNToi'@; put 'REJDUyIsMjE2OiJSQU5LIiwyMTk6IkFERFJFU1MiLDIyMDoiREFZUzM2MCIsMjIxOiJUT0RBWSIsMjIyOiJWREIiLDIyMzoiRUxTRSIsMjI0OiJFTFNFLklGIiwyMjU6IkVORC5JRiIsMjI2OiJGT1IuQ0VMTCIsMjI3OiJNRURJQU4iLDIyODoiU1VNUFJPRFVDVCIsMjI5OiJTSU5IIiwyMzA6'@; put 'IkNPU0giLDIzMToiVEFOSCIsMjMyOiJBU0lOSCIsMjMzOiJBQ09TSCIsMjM0OiJBVEFOSCIsMjM1OiJER0VUIiwyMzY6IkNSRUFURS5PQkpFQ1QiLDIzNzoiVk9MQVRJTEUiLDIzODoiTEFTVC5FUlJPUiIsMjM5OiJDVVNUT00uVU5ETyIsMjQwOiJDVVNUT00uUkVQRUFUIiwyNDE6IkZPUk1V'@; put 'TEEuQ09OVkVSVCIsMjQyOiJHRVQuTElOSy5JTkZPIiwyNDM6IlRFWFQuQk9YIiwyNDQ6IklORk8iLDI0NToiR1JPVVAiLDI0NjoiR0VULk9CSkVDVCIsMjQ3OiJEQiIsMjQ4OiJQQVVTRSIsMjUxOiJSRVNVTUUiLDI1MjoiRlJFUVVFTkNZIiwyNTM6IkFERC5UT09MQkFSIiwyNTQ6IkRFTEVU'@; put 'RS5UT09MQkFSIiwyNTU6IlVzZXIiLDI1NjoiUkVTRVQuVE9PTEJBUiIsMjU3OiJFVkFMVUFURSIsMjU4OiJHRVQuVE9PTEJBUiIsMjU5OiJHRVQuVE9PTCIsMjYwOiJTUEVMTElORy5DSEVDSyIsMjYxOiJFUlJPUi5UWVBFIiwyNjI6IkFQUC5USVRMRSIsMjYzOiJXSU5ET1cuVElUTEUiLDI2'@; put 'NDoiU0FWRS5UT09MQkFSIiwyNjU6IkVOQUJMRS5UT09MIiwyNjY6IlBSRVNTLlRPT0wiLDI2NzoiUkVHSVNURVIuSUQiLDI2ODoiR0VULldPUktCT09LIiwyNjk6IkFWRURFViIsMjcwOiJCRVRBRElTVCIsMjcxOiJHQU1NQUxOIiwyNzI6IkJFVEFJTlYiLDI3MzoiQklOT01ESVNUIiwyNzQ6'@; put 'IkNISURJU1QiLDI3NToiQ0hJSU5WIiwyNzY6IkNPTUJJTiIsMjc3OiJDT05GSURFTkNFIiwyNzg6IkNSSVRCSU5PTSIsMjc5OiJFVkVOIiwyODA6IkVYUE9ORElTVCIsMjgxOiJGRElTVCIsMjgyOiJGSU5WIiwyODM6IkZJU0hFUiIsMjg0OiJGSVNIRVJJTlYiLDI4NToiRkxPT1IiLDI4Njoi'@; put 'R0FNTUFESVNUIiwyODc6IkdBTU1BSU5WIiwyODg6IkNFSUxJTkciLDI4OToiSFlQR0VPTURJU1QiLDI5MDoiTE9HTk9STURJU1QiLDI5MToiTE9HSU5WIiwyOTI6Ik5FR0JJTk9NRElTVCIsMjkzOiJOT1JNRElTVCIsMjk0OiJOT1JNU0RJU1QiLDI5NToiTk9STUlOViIsMjk2OiJOT1JNU0lO'@; put 'ViIsMjk3OiJTVEFOREFSRElaRSIsMjk4OiJPREQiLDI5OToiUEVSTVVUIiwzMDA6IlBPSVNTT04iLDMwMToiVERJU1QiLDMwMjoiV0VJQlVMTCIsMzAzOiJTVU1YTVkyIiwzMDQ6IlNVTVgyTVkyIiwzMDU6IlNVTVgyUFkyIiwzMDY6IkNISVRFU1QiLDMwNzoiQ09SUkVMIiwzMDg6IkNPVkFS'@; put 'IiwzMDk6IkZPUkVDQVNUIiwzMTA6IkZURVNUIiwzMTE6IklOVEVSQ0VQVCIsMzEyOiJQRUFSU09OIiwzMTM6IlJTUSIsMzE0OiJTVEVZWCIsMzE1OiJTTE9QRSIsMzE2OiJUVEVTVCIsMzE3OiJQUk9CIiwzMTg6IkRFVlNRIiwzMTk6IkdFT01FQU4iLDMyMDoiSEFSTUVBTiIsMzIxOiJTVU1T'@; put 'USIsMzIyOiJLVVJUIiwzMjM6IlNLRVciLDMyNDoiWlRFU1QiLDMyNToiTEFSR0UiLDMyNjoiU01BTEwiLDMyNzoiUVVBUlRJTEUiLDMyODoiUEVSQ0VOVElMRSIsMzI5OiJQRVJDRU5UUkFOSyIsMzMwOiJNT0RFIiwzMzE6IlRSSU1NRUFOIiwzMzI6IlRJTlYiLDMzNDoiTU9WSUUuQ09NTUFO'@; put 'RCIsMzM1OiJHRVQuTU9WSUUiLDMzNjoiQ09OQ0FURU5BVEUiLDMzNzoiUE9XRVIiLDMzODoiUElWT1QuQURELkRBVEEiLDMzOToiR0VULlBJVk9ULlRBQkxFIiwzNDA6IkdFVC5QSVZPVC5GSUVMRCIsMzQxOiJHRVQuUElWT1QuSVRFTSIsMzQyOiJSQURJQU5TIiwzNDM6IkRFR1JFRVMiLDM0'@; put 'NDoiU1VCVE9UQUwiLDM0NToiU1VNSUYiLDM0NjoiQ09VTlRJRiIsMzQ3OiJDT1VOVEJMQU5LIiwzNDg6IlNDRU5BUklPLkdFVCIsMzQ5OiJPUFRJT05TLkxJU1RTLkdFVCIsMzUwOiJJU1BNVCIsMzUxOiJEQVRFRElGIiwzNTI6IkRBVEVTVFJJTkciLDM1MzoiTlVNQkVSU1RSSU5HIiwzNTQ6'@; put 'IlJPTUFOIiwzNTU6Ik9QRU4uRElBTE9HIiwzNTY6IlNBVkUuRElBTE9HIiwzNTc6IlZJRVcuR0VUIiwzNTg6IkdFVFBJVk9UREFUQSIsMzU5OiJIWVBFUkxJTksiLDM2MDoiUEhPTkVUSUMiLDM2MToiQVZFUkFHRUEiLDM2MjoiTUFYQSIsMzYzOiJNSU5BIiwzNjQ6IlNUREVWUEEiLDM2NToi'@; put 'VkFSUEEiLDM2NjoiU1RERVZBIiwzNjc6IlZBUkEiLDM2ODoiQkFIVFRFWFQiLDM2OToiVEhBSURBWU9GV0VFSyIsMzcwOiJUSEFJRElHSVQiLDM3MToiVEhBSU1PTlRIT0ZZRUFSIiwzNzI6IlRIQUlOVU1TT1VORCIsMzczOiJUSEFJTlVNU1RSSU5HIiwzNzQ6IlRIQUlTVFJJTkdMRU5HVEgi'@; put 'LDM3NToiSVNUSEFJRElHSVQiLDM3NjoiUk9VTkRCQUhURE9XTiIsMzc3OiJST1VOREJBSFRVUCIsMzc4OiJUSEFJWUVBUiIsMzc5OiJSVEQiLDM4MDoiQ1VCRVZBTFVFIiwzODE6IkNVQkVNRU1CRVIiLDM4MjoiQ1VCRU1FTUJFUlBST1BFUlRZIiwzODM6IkNVQkVSQU5LRURNRU1CRVIiLDM4'@; put 'NDoiSEVYMkJJTiIsMzg1OiJIRVgyREVDIiwzODY6IkhFWDJPQ1QiLDM4NzoiREVDMkJJTiIsMzg4OiJERUMySEVYIiwzODk6IkRFQzJPQ1QiLDM5MDoiT0NUMkJJTiIsMzkxOiJPQ1QySEVYIiwzOTI6Ik9DVDJERUMiLDM5MzoiQklOMkRFQyIsMzk0OiJCSU4yT0NUIiwzOTU6IkJJTjJIRVgi'@; put 'LDM5NjoiSU1TVUIiLDM5NzoiSU1ESVYiLDM5ODoiSU1QT1dFUiIsMzk5OiJJTUFCUyIsNDAwOiJJTVNRUlQiLDQwMToiSU1MTiIsNDAyOiJJTUxPRzIiLDQwMzoiSU1MT0cxMCIsNDA0OiJJTVNJTiIsNDA1OiJJTUNPUyIsNDA2OiJJTUVYUCIsNDA3OiJJTUFSR1VNRU5UIiw0MDg6IklNQ09O'@; put 'SlVHQVRFIiw0MDk6IklNQUdJTkFSWSIsNDEwOiJJTVJFQUwiLDQxMToiQ09NUExFWCIsNDEyOiJJTVNVTSIsNDEzOiJJTVBST0RVQ1QiLDQxNDoiU0VSSUVTU1VNIiw0MTU6IkZBQ1RET1VCTEUiLDQxNjoiU1FSVFBJIiw0MTc6IlFVT1RJRU5UIiw0MTg6IkRFTFRBIiw0MTk6IkdFU1RFUCIs'@; put 'NDIwOiJJU0VWRU4iLDQyMToiSVNPREQiLDQyMjoiTVJPVU5EIiw0MjM6IkVSRiIsNDI0OiJFUkZDIiw0MjU6IkJFU1NFTEoiLDQyNjoiQkVTU0VMSyIsNDI3OiJCRVNTRUxZIiw0Mjg6IkJFU1NFTEkiLDQyOToiWElSUiIsNDMwOiJYTlBWIiw0MzE6IlBSSUNFTUFUIiw0MzI6IllJRUxETUFU'@; put 'Iiw0MzM6IklOVFJBVEUiLDQzNDoiUkVDRUlWRUQiLDQzNToiRElTQyIsNDM2OiJQUklDRURJU0MiLDQzNzoiWUlFTERESVNDIiw0Mzg6IlRCSUxMRVEiLDQzOToiVEJJTExQUklDRSIsNDQwOiJUQklMTFlJRUxEIiw0NDE6IlBSSUNFIiw0NDI6IllJRUxEIiw0NDM6IkRPTExBUkRFIiw0NDQ6'@; put 'IkRPTExBUkZSIiw0NDU6Ik5PTUlOQUwiLDQ0NjoiRUZGRUNUIiw0NDc6IkNVTVBSSU5DIiw0NDg6IkNVTUlQTVQiLDQ0OToiRURBVEUiLDQ1MDoiRU9NT05USCIsNDUxOiJZRUFSRlJBQyIsNDUyOiJDT1VQREFZQlMiLDQ1MzoiQ09VUERBWVMiLDQ1NDoiQ09VUERBWVNOQyIsNDU1OiJDT1VQ'@; put 'TkNEIiw0NTY6IkNPVVBOVU0iLDQ1NzoiQ09VUFBDRCIsNDU4OiJEVVJBVElPTiIsNDU5OiJNRFVSQVRJT04iLDQ2MDoiT0RETFBSSUNFIiw0NjE6Ik9ERExZSUVMRCIsNDYyOiJPRERGUFJJQ0UiLDQ2MzoiT0RERllJRUxEIiw0NjQ6IlJBTkRCRVRXRUVOIiw0NjU6IldFRUtOVU0iLDQ2Njoi'@; put 'QU1PUkRFR1JDIiw0Njc6IkFNT1JMSU5DIiw0Njg6IkNPTlZFUlQiLDcyNDoiU0hFRVRKUyIsNDY5OiJBQ0NSSU5UIiw0NzA6IkFDQ1JJTlRNIiw0NzE6IldPUktEQVkiLDQ3MjoiTkVUV09SS0RBWVMiLDQ3MzoiR0NEIiw0NzQ6Ik1VTFRJTk9NSUFMIiw0NzU6IkxDTSIsNDc2OiJGVlNDSEVE'@; put 'VUxFIiw0Nzc6IkNVQkVLUElNRU1CRVIiLDQ3ODoiQ1VCRVNFVCIsNDc5OiJDVUJFU0VUQ09VTlQiLDQ4MDoiSUZFUlJPUiIsNDgxOiJDT1VOVElGUyIsNDgyOiJTVU1JRlMiLDQ4MzoiQVZFUkFHRUlGIiw0ODQ6IkFWRVJBR0VJRlMifSxpaj17MjoxLDM6MSwxMDowLDE1OjEsMTY6MSwxNzox'@; put 'LDE4OjEsMTk6MCwyMDoxLDIxOjEsMjI6MSwyMzoxLDI0OjEsMjU6MSwyNjoxLDI3OjIsMzA6MiwzMTozLDMyOjEsMzM6MSwzNDowLDM1OjAsMzg6MSwzOToyLDQwOjMsNDE6Myw0MjozLDQzOjMsNDQ6Myw0NTozLDQ3OjMsNDg6Miw1MzoxLDYxOjMsNjM6MCw2NTozLDY2OjMsNjc6MSw2ODox'@; put 'LDY5OjEsNzA6MSw3MToxLDcyOjEsNzM6MSw3NDowLDc1OjEsNzY6MSw3NzoxLDc5OjIsODA6Miw4MzoxLDg1OjAsODY6MSw4OTowLDkwOjEsOTQ6MCw5NTowLDk3OjIsOTg6MSw5OToxLDEwMTozLDEwMjozLDEwNToxLDEwNjoxLDEwODoyLDExMToxLDExMjoxLDExMzoxLDExNDoxLDExNzoy'@; put 'LDExODoxLDExOTo0LDEyMToxLDEyNjoxLDEyNzoxLDEyODoxLDEyOToxLDEzMDoxLDEzMToxLDEzMzoxLDEzNDoxLDEzNToxLDEzNjoyLDEzNzoyLDEzODoyLDE0MDoxLDE0MToxLDE0MjozLDE0Mzo0LDE0NDo0LDE2MToxLDE2MjoxLDE2MzoxLDE2NDoxLDE2NToyLDE3MjoxLDE3NToyLDE3'@; put 'NjoyLDE3NzozLDE3ODoyLDE3OToxLDE4NDoxLDE4NjoxLDE4OTozLDE5MDoxLDE5NTozLDE5NjozLDE5NzoxLDE5ODoxLDE5OTozLDIwMToxLDIwNzo0LDIxMDozLDIxMToxLDIxMjoyLDIxMzoyLDIxNDoxLDIxNToxLDIyNTowLDIyOToxLDIzMDoxLDIzMToxLDIzMjoxLDIzMzoxLDIzNDox'@; put 'LDIzNTozLDI0NDoxLDI0Nzo0LDI1MjoyLDI1NzoxLDI2MToxLDI3MToxLDI3Mzo0LDI3NDoyLDI3NToyLDI3NjoyLDI3NzozLDI3ODozLDI3OToxLDI4MDozLDI4MTozLDI4MjozLDI4MzoxLDI4NDoxLDI4NToyLDI4Njo0LDI4NzozLDI4ODoyLDI4OTo0LDI5MDozLDI5MTozLDI5MjozLDI5'@; put 'Mzo0LDI5NDoxLDI5NTozLDI5NjoxLDI5NzozLDI5ODoxLDI5OToyLDMwMDozLDMwMTozLDMwMjo0LDMwMzoyLDMwNDoyLDMwNToyLDMwNjoyLDMwNzoyLDMwODoyLDMwOTozLDMxMDoyLDMxMToyLDMxMjoyLDMxMzoyLDMxNDoyLDMxNToyLDMxNjo0LDMyNToyLDMyNjoyLDMyNzoyLDMyODoy'@; put 'LDMzMToyLDMzMjoyLDMzNzoyLDM0MjoxLDM0MzoxLDM0NjoyLDM0NzoxLDM1MDo0LDM1MTozLDM1MjoxLDM1MzoyLDM2MDoxLDM2ODoxLDM2OToxLDM3MDoxLDM3MToxLDM3MjoxLDM3MzoxLDM3NDoxLDM3NToxLDM3NjoxLDM3NzoxLDM3ODoxLDM4MjozLDM4NToxLDM5MjoxLDM5MzoxLDM5'@; put 'NjoyLDM5NzoyLDM5ODoyLDM5OToxLDQwMDoxLDQwMToxLDQwMjoxLDQwMzoxLDQwNDoxLDQwNToxLDQwNjoxLDQwNzoxLDQwODoxLDQwOToxLDQxMDoxLDQxNDo0LDQxNToxLDQxNjoxLDQxNzoyLDQyMDoxLDQyMToxLDQyMjoyLDQyNDoxLDQyNToyLDQyNjoyLDQyNzoyLDQyODoyLDQzMDoz'@; put 'LDQzODozLDQzOTozLDQ0MDozLDQ0MzoyLDQ0NDoyLDQ0NToyLDQ0NjoyLDQ0Nzo2LDQ0ODo2LDQ0OToyLDQ1MDoyLDQ2NDoyLDQ2ODozLDQ3NjoyLDQ3OToxLDQ4MDoyLDY1NTM1OjB9LHR5PXsiX3hsZm4uQUNPVCI6IkFDT1QiLCJfeGxmbi5BQ09USCI6IkFDT1RIIiwiX3hsZm4uQUdHUkVH'@; put 'QVRFIjoiQUdHUkVHQVRFIiwiX3hsZm4uQVJBQklDIjoiQVJBQklDIiwiX3hsZm4uQVZFUkFHRUlGIjoiQVZFUkFHRUlGIiwiX3hsZm4uQVZFUkFHRUlGUyI6IkFWRVJBR0VJRlMiLCJfeGxmbi5CQVNFIjoiQkFTRSIsIl94bGZuLkJFVEEuRElTVCI6IkJFVEEuRElTVCIsIl94bGZuLkJFVEEu'@; put 'SU5WIjoiQkVUQS5JTlYiLCJfeGxmbi5CSU5PTS5ESVNUIjoiQklOT00uRElTVCIsIl94bGZuLkJJTk9NLkRJU1QuUkFOR0UiOiJCSU5PTS5ESVNULlJBTkdFIiwiX3hsZm4uQklOT00uSU5WIjoiQklOT00uSU5WIiwiX3hsZm4uQklUQU5EIjoiQklUQU5EIiwiX3hsZm4uQklUTFNISUZUIjoi'@; put 'QklUTFNISUZUIiwiX3hsZm4uQklUT1IiOiJCSVRPUiIsIl94bGZuLkJJVFJTSElGVCI6IkJJVFJTSElGVCIsIl94bGZuLkJJVFhPUiI6IkJJVFhPUiIsIl94bGZuLkNFSUxJTkcuTUFUSCI6IkNFSUxJTkcuTUFUSCIsIl94bGZuLkNFSUxJTkcuUFJFQ0lTRSI6IkNFSUxJTkcuUFJFQ0lTRSIs'@; put 'Il94bGZuLkNISVNRLkRJU1QiOiJDSElTUS5ESVNUIiwiX3hsZm4uQ0hJU1EuRElTVC5SVCI6IkNISVNRLkRJU1QuUlQiLCJfeGxmbi5DSElTUS5JTlYiOiJDSElTUS5JTlYiLCJfeGxmbi5DSElTUS5JTlYuUlQiOiJDSElTUS5JTlYuUlQiLCJfeGxmbi5DSElTUS5URVNUIjoiQ0hJU1EuVEVT'@; put 'VCIsIl94bGZuLkNPTUJJTkEiOiJDT01CSU5BIiwiX3hsZm4uQ09OQ0FUIjoiQ09OQ0FUIiwiX3hsZm4uQ09ORklERU5DRS5OT1JNIjoiQ09ORklERU5DRS5OT1JNIiwiX3hsZm4uQ09ORklERU5DRS5UIjoiQ09ORklERU5DRS5UIiwiX3hsZm4uQ09UIjoiQ09UIiwiX3hsZm4uQ09USCI6IkNP'@; put 'VEgiLCJfeGxmbi5DT1VOVElGUyI6IkNPVU5USUZTIiwiX3hsZm4uQ09WQVJJQU5DRS5QIjoiQ09WQVJJQU5DRS5QIiwiX3hsZm4uQ09WQVJJQU5DRS5TIjoiQ09WQVJJQU5DRS5TIiwiX3hsZm4uQ1NDIjoiQ1NDIiwiX3hsZm4uQ1NDSCI6IkNTQ0giLCJfeGxmbi5EQVlTIjoiREFZUyIsIl94'@; put 'bGZuLkRFQ0lNQUwiOiJERUNJTUFMIiwiX3hsZm4uRUNNQS5DRUlMSU5HIjoiRUNNQS5DRUlMSU5HIiwiX3hsZm4uRVJGLlBSRUNJU0UiOiJFUkYuUFJFQ0lTRSIsIl94bGZuLkVSRkMuUFJFQ0lTRSI6IkVSRkMuUFJFQ0lTRSIsIl94bGZuLkVYUE9OLkRJU1QiOiJFWFBPTi5ESVNUIiwiX3hs'@; put 'Zm4uRi5ESVNUIjoiRi5ESVNUIiwiX3hsZm4uRi5ESVNULlJUIjoiRi5ESVNULlJUIiwiX3hsZm4uRi5JTlYiOiJGLklOViIsIl94bGZuLkYuSU5WLlJUIjoiRi5JTlYuUlQiLCJfeGxmbi5GLlRFU1QiOiJGLlRFU1QiLCJfeGxmbi5GSUxURVJYTUwiOiJGSUxURVJYTUwiLCJfeGxmbi5GTE9P'@; put 'Ui5NQVRIIjoiRkxPT1IuTUFUSCIsIl94bGZuLkZMT09SLlBSRUNJU0UiOiJGTE9PUi5QUkVDSVNFIiwiX3hsZm4uRk9SRUNBU1QuRVRTIjoiRk9SRUNBU1QuRVRTIiwiX3hsZm4uRk9SRUNBU1QuRVRTLkNPTkZJTlQiOiJGT1JFQ0FTVC5FVFMuQ09ORklOVCIsIl94bGZuLkZPUkVDQVNULkVU'@; put 'Uy5TRUFTT05BTElUWSI6IkZPUkVDQVNULkVUUy5TRUFTT05BTElUWSIsIl94bGZuLkZPUkVDQVNULkVUUy5TVEFUIjoiRk9SRUNBU1QuRVRTLlNUQVQiLCJfeGxmbi5GT1JFQ0FTVC5MSU5FQVIiOiJGT1JFQ0FTVC5MSU5FQVIiLCJfeGxmbi5GT1JNVUxBVEVYVCI6IkZPUk1VTEFURVhUIiwi'@; put 'X3hsZm4uR0FNTUEiOiJHQU1NQSIsIl94bGZuLkdBTU1BLkRJU1QiOiJHQU1NQS5ESVNUIiwiX3hsZm4uR0FNTUEuSU5WIjoiR0FNTUEuSU5WIiwiX3hsZm4uR0FNTUFMTi5QUkVDSVNFIjoiR0FNTUFMTi5QUkVDSVNFIiwiX3hsZm4uR0FVU1MiOiJHQVVTUyIsIl94bGZuLkhZUEdFT00uRElT'@; put 'VCI6IkhZUEdFT00uRElTVCIsIl94bGZuLklGRVJST1IiOiJJRkVSUk9SIiwiX3hsZm4uSUZOQSI6IklGTkEiLCJfeGxmbi5JRlMiOiJJRlMiLCJfeGxmbi5JTUNPU0giOiJJTUNPU0giLCJfeGxmbi5JTUNPVCI6IklNQ09UIiwiX3hsZm4uSU1DU0MiOiJJTUNTQyIsIl94bGZuLklNQ1NDSCI6'@; put 'IklNQ1NDSCIsIl94bGZuLklNU0VDIjoiSU1TRUMiLCJfeGxmbi5JTVNFQ0giOiJJTVNFQ0giLCJfeGxmbi5JTVNJTkgiOiJJTVNJTkgiLCJfeGxmbi5JTVRBTiI6IklNVEFOIiwiX3hsZm4uSVNGT1JNVUxBIjoiSVNGT1JNVUxBIiwiX3hsZm4uSVNPLkNFSUxJTkciOiJJU08uQ0VJTElORyIs'@; put 'Il94bGZuLklTT1dFRUtOVU0iOiJJU09XRUVLTlVNIiwiX3hsZm4uTE9HTk9STS5ESVNUIjoiTE9HTk9STS5ESVNUIiwiX3hsZm4uTE9HTk9STS5JTlYiOiJMT0dOT1JNLklOViIsIl94bGZuLk1BWElGUyI6Ik1BWElGUyIsIl94bGZuLk1JTklGUyI6Ik1JTklGUyIsIl94bGZuLk1PREUuTVVM'@; put 'VCI6Ik1PREUuTVVMVCIsIl94bGZuLk1PREUuU05HTCI6Ik1PREUuU05HTCIsIl94bGZuLk1VTklUIjoiTVVOSVQiLCJfeGxmbi5ORUdCSU5PTS5ESVNUIjoiTkVHQklOT00uRElTVCIsIl94bGZuLk5FVFdPUktEQVlTLklOVEwiOiJORVRXT1JLREFZUy5JTlRMIiwiX3hsZm4uTklHQklOT00i'@; put 'OiJOSUdCSU5PTSIsIl94bGZuLk5PUk0uRElTVCI6Ik5PUk0uRElTVCIsIl94bGZuLk5PUk0uSU5WIjoiTk9STS5JTlYiLCJfeGxmbi5OT1JNLlMuRElTVCI6Ik5PUk0uUy5ESVNUIiwiX3hsZm4uTk9STS5TLklOViI6Ik5PUk0uUy5JTlYiLCJfeGxmbi5OVU1CRVJWQUxVRSI6Ik5VTUJFUlZB'@; put 'TFVFIiwiX3hsZm4uUERVUkFUSU9OIjoiUERVUkFUSU9OIiwiX3hsZm4uUEVSQ0VOVElMRS5FWEMiOiJQRVJDRU5USUxFLkVYQyIsIl94bGZuLlBFUkNFTlRJTEUuSU5DIjoiUEVSQ0VOVElMRS5JTkMiLCJfeGxmbi5QRVJDRU5UUkFOSy5FWEMiOiJQRVJDRU5UUkFOSy5FWEMiLCJfeGxmbi5Q'@; put 'RVJDRU5UUkFOSy5JTkMiOiJQRVJDRU5UUkFOSy5JTkMiLCJfeGxmbi5QRVJNVVRBVElPTkEiOiJQRVJNVVRBVElPTkEiLCJfeGxmbi5QSEkiOiJQSEkiLCJfeGxmbi5QT0lTU09OLkRJU1QiOiJQT0lTU09OLkRJU1QiLCJfeGxmbi5RVUFSVElMRS5FWEMiOiJRVUFSVElMRS5FWEMiLCJfeGxm'@; put 'bi5RVUFSVElMRS5JTkMiOiJRVUFSVElMRS5JTkMiLCJfeGxmbi5RVUVSWVNUUklORyI6IlFVRVJZU1RSSU5HIiwiX3hsZm4uUkFOSy5BVkciOiJSQU5LLkFWRyIsIl94bGZuLlJBTksuRVEiOiJSQU5LLkVRIiwiX3hsZm4uUlJJIjoiUlJJIiwiX3hsZm4uU0VDIjoiU0VDIiwiX3hsZm4uU0VD'@; put 'SCI6IlNFQ0giLCJfeGxmbi5TSEVFVCI6IlNIRUVUIiwiX3hsZm4uU0hFRVRTIjoiU0hFRVRTIiwiX3hsZm4uU0tFVy5QIjoiU0tFVy5QIiwiX3hsZm4uU1RERVYuUCI6IlNUREVWLlAiLCJfeGxmbi5TVERFVi5TIjoiU1RERVYuUyIsIl94bGZuLlNVTUlGUyI6IlNVTUlGUyIsIl94bGZuLlNX'@; put 'SVRDSCI6IlNXSVRDSCIsIl94bGZuLlQuRElTVCI6IlQuRElTVCIsIl94bGZuLlQuRElTVC4yVCI6IlQuRElTVC4yVCIsIl94bGZuLlQuRElTVC5SVCI6IlQuRElTVC5SVCIsIl94bGZuLlQuSU5WIjoiVC5JTlYiLCJfeGxmbi5ULklOVi4yVCI6IlQuSU5WLjJUIiwiX3hsZm4uVC5URVNUIjoi'@; put 'VC5URVNUIiwiX3hsZm4uVEVYVEpPSU4iOiJURVhUSk9JTiIsIl94bGZuLlVOSUNIQVIiOiJVTklDSEFSIiwiX3hsZm4uVU5JQ09ERSI6IlVOSUNPREUiLCJfeGxmbi5WQVIuUCI6IlZBUi5QIiwiX3hsZm4uVkFSLlMiOiJWQVIuUyIsIl94bGZuLldFQlNFUlZJQ0UiOiJXRUJTRVJWSUNFIiwi'@; put 'X3hsZm4uV0VJQlVMTC5ESVNUIjoiV0VJQlVMTC5ESVNUIiwiX3hsZm4uV09SS0RBWS5JTlRMIjoiV09SS0RBWS5JTlRMIiwiX3hsZm4uWE9SIjoiWE9SIiwiX3hsZm4uWi5URVNUIjoiWi5URVNUIn07ZnVuY3Rpb24gY1MoUyl7cmV0dXJuIm9mOiI9PVMuc2xpY2UoMCwzKSYmKFM9Uy5zbGlj'@; put 'ZSgzKSksNjE9PVMuY2hhckNvZGVBdCgwKSYmNjE9PShTPVMuc2xpY2UoMSkpLmNoYXJDb2RlQXQoMCkmJihTPVMuc2xpY2UoMSkpLChTPShTPShTPVMucmVwbGFjZSgvQ09NXC5NSUNST1NPRlRcLi9nLCIiKSkucmVwbGFjZSgvXFsoKD86XC5bQS1aXStbMC05XSspKD86OlwuW0EtWl0rWzAt'@; put 'OV0rKT8pXF0vZyxmdW5jdGlvbihPLGspe3JldHVybiBrLnJlcGxhY2UoL1wuL2csIiIpfSkpLnJlcGxhY2UoL1xbLigjW0EtWl0qWz8hXSlcXS9nLCIkMSIpKS5yZXBsYWNlKC9bO35dL2csIiwiKS5yZXBsYWNlKC9cfC9nLCI7Iil9ZnVuY3Rpb24gWjQoUyl7cmV0dXJuKCJvZjo9IitTLnJl'@; put 'cGxhY2UoeTIsIiQxWy4kMiQzJDQkNV0iKS5yZXBsYWNlKC9cXTpcWy9nLCI6IikpLnJlcGxhY2UoLzsvZywifCIpLnJlcGxhY2UoLywvZywiOyIpfWZ1bmN0aW9uIG55KFMpe3ZhciBPPVMuc3BsaXQoIjoiKTtyZXR1cm5bT1swXS5zcGxpdCgiLiIpWzBdLE9bMF0uc3BsaXQoIi4iKVsxXSso'@; put 'Ty5sZW5ndGg+MT8iOiIrKE9bMV0uc3BsaXQoIi4iKVsxXXx8T1sxXS5zcGxpdCgiLiIpWzBdKToiIildfWZ1bmN0aW9uIHlEKFMpe3JldHVybiBTLnJlcGxhY2UoL1wuLywiISIpfXZhciBsOD17fSxjOD17fTtYYS5XUz1bImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZp'@; put 'Y2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvd29ya3NoZWV0IiwiaHR0cDovL3B1cmwub2NsYy5vcmcvb294bWwvb2ZmaWNlRG9jdW1lbnQvcmVsYXRpb25zaGlwcy93b3Jrc2hlZXQiXTt2YXIgcTM9dHlwZW9mIE1hcDwidSI7ZnVuY3Rpb24gdVMoUyxPLGssSyl7dmFyIGVlPTAsb2U9'@; put 'Uy5sZW5ndGg7aWYoSyl7aWYocTM/Sy5oYXMoTyk6T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEssTykpZm9yKHZhciBtZT1xMz9LLmdldChPKTpLW09dO2VlPG1lLmxlbmd0aDsrK2VlKWlmKFNbbWVbZWVdXS50PT09TyYmKCFTW21lW2VlXV0uciYmIWt8fFNbbWVbZWVd'@; put 'XS5yPT1rKSlyZXR1cm4gUy5Db3VudCsrLG1lW2VlXX1lbHNlIGZvcig7ZWU8b2U7KytlZSlpZihTW2VlXS50PT09TyYmKCFTW2VlXS5yJiYha3x8U1tlZV0ucj09aykpcmV0dXJuIFMuQ291bnQrKyxlZTtyZXR1cm4gU1tvZV09e3Q6TyxyOmt9LFMuQ291bnQrKyxTLlVuaXF1ZSsrLEsmJihx'@; put 'Mz8oSy5oYXMoTyl8fEsuc2V0KE8sW10pLEsuZ2V0KE8pLnB1c2gob2UpKTooT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEssTyl8fChLW09dPVtdKSxLW09dLnB1c2gob2UpKSksb2V9ZnVuY3Rpb24gdTgoUyxPKXt2YXIgaz17bWluOlMrMSxtYXg6UysxfSxLPXhjO2lm'@; put 'KCFPKXJldHVybiBPO3ZhciBlZT0tMTtyZXR1cm4gTy5hdXRvJiYoay5iZXN0Rml0PTEsTy5iZXN0d2lkdGgmJihlZT1PLmJlc3R3aWR0aCksZGVsZXRlIE8uYmVzdHdpZHRoKSxudWxsIT1PLndweD9lZT1DNShPLndweCk6bnVsbCE9Ty53Y2g/ZWU9Ty53Y2g6bnVsbCE9Ty53aWR0aCYmKGsu'@; put 'Y3VzdG9tV2lkdGg9MSksZWU+LTE/KGsud2lkdGg9T2YoZWUpLGsuY3VzdG9tV2lkdGg9MSk6bnVsbCE9Ty53aWR0aCYmKGsud2lkdGg9Ty53aWR0aCksTy5oaWRkZW4mJihrLmhpZGRlbj0hMCksay5iZXN0Rml0JiZkZWxldGUgay5jdXN0b21XaWR0aCx4Yz1LLG51bGwhPU8ubGV2ZWwmJihr'@; put 'Lm91dGxpbmVMZXZlbD1rLmxldmVsPU8ubGV2ZWwpLG51bGwhPU8uc3R5bGUmJihrLnN0eWxlPU8uc3R5bGUpLGt9ZnVuY3Rpb24gZFMoUyxPLGspe3ZhciBLPVNvKFNbIiFyZWYiXSksZWU9MCxvZT1TWyIhbWVyZ2VzIl18fFtdLG1lPUFycmF5LmlzQXJyYXkoUyk7ZTpmb3IodmFyIHBlPTA7'@; put 'cGU8PUsuZS5yOysrcGUpe2Zvcih2YXIgYmU9MDtiZTxvZS5sZW5ndGg7KytiZSlpZihvZVtiZV0ucy5yPD1wZSYmcGU8PW9lW2JlXS5lLnImJm9lW2JlXS5zLmM8PWsmJms8PW9lW2JlXS5lLmMpY29udGludWUgZTt2YXIgUGU9bWU/KFNbcGVdfHxbXSlba106U1txaSh7cjpwZSxjOmt9KV07'@; put 'aWYoUGUpe3ZhciBWZT0xO2lmKFBlLnMmJihWZT1NQyhQZS5zKS9TQy5DYWxpYnJpWzEyXXx8MSksUGUudyllZT1NYXRoLm1heChlZSxQZS53Lmxlbmd0aCpWZSk7ZWxzZSBzd2l0Y2goUGUudCl7Y2FzZSJiIjpjYXNlImUiOmVlPU1hdGgubWF4KGVlLDUqVmUpO2JyZWFrO2Nhc2UicyI6ZWU9'@; put 'TWF0aC5tYXgoZWUsUGUudi5sZW5ndGgqVmUqMS4yfDApO2JyZWFrO2Nhc2UibiI6dDUoUGUsUGUudiksZWU9TWF0aC5tYXgoZWUsU3RyaW5nKFBlLnd8fFBlLnYpLmxlbmd0aCpWZSk7YnJlYWs7Y2FzZSJkIjplZT1NYXRoLm1heChlZSw4KlZlKX19fWVlPDEmJihlZT0xKSxPLmJlc3R3aWR0'@; put 'aD1lZX1mdW5jdGlvbiBKMyhTLE8pe2lmKFMpe3ZhciBrPVsuNywuNywuNzUsLjc1LC4zLC4zXTsieGxtbCI9PU8mJihrPVsxLDEsMSwxLC41LC41XSksbnVsbD09Uy5sZWZ0JiYoUy5sZWZ0PWtbMF0pLG51bGw9PVMucmlnaHQmJihTLnJpZ2h0PWtbMV0pLG51bGw9PVMudG9wJiYoUy50b3A9'@; put 'a1syXSksbnVsbD09Uy5ib3R0b20mJihTLmJvdHRvbT1rWzNdKSxudWxsPT1TLmhlYWRlciYmKFMuaGVhZGVyPWtbNF0pLG51bGw9PVMuZm9vdGVyJiYoUy5mb290ZXI9a1s1XSl9fWZ1bmN0aW9uIGZTKFMsTyl7Zm9yKHZhciBrPVJlKE8pLEs9MDtLPFMubGVuZ3RoOysrSyl7dmFyIGVlPSEw'@; put 'LG9lPVNbS107aWYob2UmJmsubGVuZ3RoPT1SZShvZSkubGVuZ3RoJiYoay5mb3JFYWNoKGZ1bmN0aW9uKG1lKXtpZihlZSl7aWYobnVsbD09PU9bbWVdIT0obnVsbD09PW9lW21lXSkpcmV0dXJuIHZvaWQoZWU9ITEpO2lmKCJvYmplY3QiPT10eXBlb2YgT1ttZV0paWYoWyJjb2xvciIsImZn'@; put 'Q29sb3IiLCJiZ0NvbG9yIl0uaW5kZXhPZihtZSk+LTEpe2lmKHNoKE9bbWVdLG9lW21lXSkpcmV0dXJuIHZvaWQoZWU9ITEpfWVsc2V7aWYoIShbImxlZnQiLCJyaWdodCIsInRvcCIsImJvdHRvbSJdLmluZGV4T2YobWUpPi0xKSlyZXR1cm4gdm9pZChlZT0hMSk7aWYoZ2soT1ttZV0sb2Vb'@; put 'bWVdKSlyZXR1cm4gdm9pZChlZT0hMSl9aWYoT1ttZV0hPW9lW21lXSlyZXR1cm4gdm9pZChlZT0hMSl9fSksZWUpKXJldHVybiBLfXJldHVybiBTW1MubGVuZ3RoXT1KdChPKSxTLmxlbmd0aC0xfWZ1bmN0aW9uIHMwKFMsTyxrLEspe3ZhciBlZT1LLnJldnNzZltudWxsIT1rLno/ay56OiJH'@; put 'ZW5lcmFsIl0sb2U9NjAsbWU9Uy5sZW5ndGg7aWYobnVsbD09ZWUmJksuc3NmKWZvcig7b2U8MzkyOysrb2UpaWYobnVsbD09Sy5zc2Zbb2VdKXtBLmxvYWQoay56LG9lKSxLLnNzZltvZV09ay56LEsucmV2c3NmW2suel09ZWU9b2U7YnJlYWt9dmFyIHBlPTAsYmU9MCxQZT0wLFZlPTA7aWYo'@; put 'Sy5jZWxsU3R5bGVzKXtpZihrLnMpe2lmKEsuRm9udHMpe2sucy5jb2xvcnx8KGsucy5jb2xvcj17dGhlbWU6MSxyZ2I6IjAwMDAwMCJ9KTtmb3IodmFyIFllPShrLnMuYm9sZD8xOjApfChrLnMuaXRhbGljPzI6MCl8KGsucy5zdHJpa2U/NDowKXwoay5zLnNoYWRvdz84OjApO3BlPEsuRm9u'@; put 'dHMubGVuZ3RoOysrcGUpe3ZhciBldD1LLkZvbnRzW3BlXTtpZihudWxsPT1ldC5mb250aGFzaCYmKGV0LmZvbnRoYXNoPShldC5ib2xkPzE6MCl8KGV0Lml0YWxpYz8yOjApfChldC5zdHJpa2U/NDowKXwoZXQuc2hhZG93Pzg6MCkpLCEoWWUhPWV0LmZvbnRoYXNofHwhIWsucy5jb2xvciE9'@; put 'ISFldC5jb2xvcnx8ay5zLnZhbGlnbiE9ZXQudmFsaWdufHwoay5zLnN6fHxldC5zeikmJihrLnMuc3p8fDEyKSE9KGV0LnN6fHwxMil8fGsucy5uYW1lJiZrLnMubmFtZSE9ZXQubmFtZXx8KGsucy51bmRlcmxpbmV8fDApIT0oZXQudW5kZXJsaW5lfHwwKXx8ay5zLmNvbG9yJiZzaChrLnMu'@; put 'Y29sb3IsZXQuY29sb3IpKSlicmVha31wZT09Sy5Gb250cy5sZW5ndGgmJihLLkZvbnRzLnB1c2goe3N6Omsucy5zenx8MTIsY29sb3I6ay5zLmNvbG9yfHx7dGhlbWU6MSxyZ2I6IjAwMDAwMCJ9LG5hbWU6ay5zLm5hbWV8fCJDYWxpYnJpIixmYW1pbHk6ay5zLmZhbWlseXx8MixzY2hlbWU6'@; put 'ay5zLnNjaGVtZSxib2xkOmsucy5ib2xkLGl0YWxpYzprLnMuaXRhbGljLHN0cmlrZTprLnMuc3RyaWtlLHNoYWRvdzprLnMuc2hhZG93LHZhbGlnbjprLnMudmFsaWduLHVuZGVybGluZTprLnMudW5kZXJsaW5lfSksMT09Sy5Gb250cy5sZW5ndGgmJkk0KEsuRm9udHNbMF0pKX1pZihLLkZp'@; put 'bGxzKXtmb3IoO2JlPEsuRmlsbHMubGVuZ3RoOysrYmUpe3ZhciBjdD1LLkZpbGxzW2JlXTtpZighIWsucy5zdG9wcz09ISFjdC5zdG9wcyl7aWYoay5zLnN0b3BzKXtpZihrLnMuYW5nbGUhPWN0LmFuZ2xlKWNvbnRpbnVlO3ZhciBUdD0hMDtpZihrLnMuc3RvcHMuZm9yRWFjaChmdW5jdGlv'@; put 'bihEdCxPdCl7c2goRHQsY3Quc3RvcHNbT3RdKSYmKFR0PSExKSxEdC52IT1jdC5zdG9wc1tPdF0udiYmKFR0PSExKX0pLCFUdCljb250aW51ZX1lbHNle2lmKG51bGw9PWsucy5wYXR0ZXJuVHlwZSYmay5zLmZnQ29sb3ImJihrLnMucGF0dGVyblR5cGU9InNvbGlkIiksbnVsbD09ay5zLnBh'@; put 'dHRlcm5UeXBlKWJyZWFrO2lmKGsucy5wYXR0ZXJuVHlwZSE9Y3QucGF0dGVyblR5cGV8fHNoKGsucy5mZ0NvbG9yLGN0LmZnQ29sb3IpfHxzaChrLnMuYmdDb2xvcixjdC5iZ0NvbG9yKSljb250aW51ZX1icmVha319aWYoYmU9PUsuRmlsbHMubGVuZ3RoKXt2YXIgaXQ9e307ay5zLnN0b3Bz'@; put 'PyhudWxsIT1rLnMuYW5nbGUmJihpdC5hbmdsZT1rLnMuYW5nbGUpLGl0LnN0b3BzPVtdLGsucy5zdG9wcy5mb3JFYWNoKGZ1bmN0aW9uKER0KXtpdC5zdG9wcy5wdXNoKEp0KER0KSl9KSk6aXQ9e3BhdHRlcm5UeXBlOmsucy5wYXR0ZXJuVHlwZSxmZ0NvbG9yOmsucy5mZ0NvbG9yLGJnQ29s'@; put 'b3I6ay5zLmJnQ29sb3J9LEsuRmlsbHMucHVzaChpdCl9fWlmKEsuQm9yZGVycyl7Zm9yKDtQZTxLLkJvcmRlcnMubGVuZ3RoOysrUGUpe3ZhciBidD1LLkJvcmRlcnNbUGVdLEJ0PSJ0b3AiO2lmKGsuc1tCdF0pe2lmKCFidFtCdF18fGsuc1tCdF0uc3R5bGUhPWJ0W0J0XS5zdHlsZXx8c2go'@; put 'ay5zW0J0XS5jb2xvcixidFtCdF0uY29sb3IpKWNvbnRpbnVlfWVsc2UgaWYobnVsbCE9YnRbQnRdKWNvbnRpbnVlO2lmKGsuc1tCdD0iYm90dG9tIl0pe2lmKCFidFtCdF18fGsuc1tCdF0uc3R5bGUhPWJ0W0J0XS5zdHlsZXx8c2goay5zW0J0XS5jb2xvcixidFtCdF0uY29sb3IpKWNvbnRp'@; put 'bnVlfWVsc2UgaWYobnVsbCE9YnRbQnRdKWNvbnRpbnVlO2lmKGsuc1tCdD0ibGVmdCJdKXtpZighYnRbQnRdfHxrLnNbQnRdLnN0eWxlIT1idFtCdF0uc3R5bGV8fHNoKGsuc1tCdF0uY29sb3IsYnRbQnRdLmNvbG9yKSljb250aW51ZX1lbHNlIGlmKG51bGwhPWJ0W0J0XSljb250aW51ZTtp'@; put 'ZihrLnNbQnQ9InJpZ2h0Il0pe2lmKCFidFtCdF18fGsuc1tCdF0uc3R5bGUhPWJ0W0J0XS5zdHlsZXx8c2goay5zW0J0XS5jb2xvcixidFtCdF0uY29sb3IpKWNvbnRpbnVlfWVsc2UgaWYobnVsbCE9YnRbQnRdKWNvbnRpbnVlO2JyZWFrfVBlPT1LLkJvcmRlcnMubGVuZ3RoJiZLLkJvcmRl'@; put 'cnMucHVzaCh7dG9wOmsucy50b3AmJkp0KGsucy50b3ApfHx2b2lkIDAsYm90dG9tOmsucy5ib3R0b20mJkp0KGsucy5ib3R0b20pfHx2b2lkIDAsbGVmdDprLnMubGVmdCYmSnQoay5zLmxlZnQpfHx2b2lkIDAscmlnaHQ6ay5zLnJpZ2h0JiZKdChrLnMucmlnaHQpfHx2b2lkIDB9KX1pZihP'@; put 'JiZrLnMuc3R5bGUmJiJOb3JtYWwiIT09ay5zLnN0eWxlKXtmb3IoVmU9MTtWZTxPLmxlbmd0aCYmT1tWZV0ubmFtZSE9ay5zLnN0eWxlOysrVmUpO1ZlPT1PLmxlbmd0aCYmTy5wdXNoKHtuYW1lOmsucy5zdHlsZSxudW1GbXRJZDplZSxmb250SWQ6cGUsZmlsbElkOmJlLGJvcmRlcklkOlBl'@; put 'fSl9fWZvcihvZT0wO29lIT1tZTsrK29lKWlmKFNbb2VdLm51bUZtdElkPT1lZSYmU1tvZV0uZm9udElkPT1wZSYmU1tvZV0uZmlsbElkPT1iZSYmU1tvZV0uYm9yZGVySWQ9PVBlJiZTW29lXS54ZklkPT1WZSl7aWYoay5zJiZrLnMuYWxpZ25tZW50KXtpZighU1tvZV0uYWxpZ25tZW50KWNv'@; put 'bnRpbnVlO2lmKGsucy5hbGlnbm1lbnQuaG9yaXpvbnRhbCE9U1tvZV0uYWxpZ25tZW50Lmhvcml6b250YWx8fGsucy5hbGlnbm1lbnQudmVydGljYWwhPVNbb2VdLmFsaWdubWVudC52ZXJ0aWNhbHx8ay5zLmFsaWdubWVudC53cmFwVGV4dCE9U1tvZV0uYWxpZ25tZW50LndyYXBUZXh0fHxr'@; put 'LnMuYWxpZ25tZW50LnNocmlua1RvRml0IT1TW29lXS5hbGlnbm1lbnQuc2hyaW5rVG9GaXR8fGsucy5hbGlnbm1lbnQudGV4dFJvdGF0aW9uIT1TW29lXS5hbGlnbm1lbnQudGV4dFJvdGF0aW9ufHxrLnMuYWxpZ25tZW50LmluZGVudCE9U1tvZV0uYWxpZ25tZW50LmluZGVudCljb250aW51'@; put 'ZX1lbHNlIGlmKFNbb2VdLmFsaWdubWVudCljb250aW51ZTtpZihrLnMpe2lmKCEhay5zLmhpZGRlbj09KCFTW29lXS5wcm90ZWN0aW9ufHwhU1tvZV0ucHJvdGVjdGlvbi5oaWRkZW4pfHwhIWsucy5lZGl0YWJsZT09KCFTW29lXS5wcm90ZWN0aW9ufHwhU1tvZV0ucHJvdGVjdGlvbi5lZGl0'@; put 'YWJsZSkpY29udGludWV9ZWxzZSBpZihTW29lXS5wcm90ZWN0aW9uKWNvbnRpbnVlO3JldHVybiBvZX19ZWxzZSBmb3Iob2U9MDtvZSE9bWU7KytvZSlpZihTW29lXS5udW1GbXRJZD09PWVlKXJldHVybiBvZTtyZXR1cm4gU1ttZV09e251bUZtdElkOmVlLGZvbnRJZDpwZSxmaWxsSWQ6YmUs'@; put 'Ym9yZGVySWQ6UGUseGZJZDpWZSxhcHBseU51bWJlckZvcm1hdDoxfSxwZT4wJiYoU1ttZV0uYXBwbHlGb250PTEpLGJlPjAmJihTW21lXS5hcHBseUZpbGw9MSksUGU+MCYmKFNbbWVdLmFwcGx5Qm9yZGVyPTEpLCFPJiZrLnMmJmsucy5zdHlsZSYmIk5vcm1hbCIhPWsucy5zdHlsZSYmKFNb'@; put 'bWVdLnN0eWxlPWsucy5zdHlsZSksay5zJiZrLnMuYWxpZ25tZW50JiYoU1ttZV0uYWxpZ25tZW50PXt9LFsiaG9yaXpvbnRhbCIsInZlcnRpY2FsIiwid3JhcFRleHQiLCJzaHJpbmtUb0ZpdCIsImluZGVudCIsInRleHRSb3RhdGlvbiJdLmZvckVhY2goZnVuY3Rpb24oRHQpe251bGwhPWsu'@; put 'cy5hbGlnbm1lbnRbRHRdJiYoU1ttZV0uYWxpZ25tZW50W0R0XT1rLnMuYWxpZ25tZW50W0R0XSl9KSksay5zJiZrLnMuaGlkZGVuJiYoU1ttZV0ucHJvdGVjdGlvbnx8KFNbbWVdLnByb3RlY3Rpb249e30pLFNbbWVdLnByb3RlY3Rpb24uaGlkZGVuPSEwKSxrLnMmJmsucy5lZGl0YWJsZSYm'@; put 'KFNbbWVdLnByb3RlY3Rpb258fChTW21lXS5wcm90ZWN0aW9uPXt9KSxTW21lXS5wcm90ZWN0aW9uLmVkaXRhYmxlPSEwKSxtZX1mdW5jdGlvbiBRMyhTLE8sayxLLGVlLG9lLG1lLHBlKXsiZCI9PT1TLnQmJiJzdHJpbmciPT10eXBlb2YgUy52JiYoUy52PU5lKFMudikpO3RyeXtvZS5jZWxs'@; put 'TkYmJihTLno9QS5fdGFibGVbT10pfWNhdGNoKFBlKXtpZihvZS5XVEYpdGhyb3cgUGV9aWYoKCFvZXx8ITEhPT1vZS5jZWxsVGV4dCkmJiJ6IiE9Uy50KXRyeXtpZihudWxsPT1BLl90YWJsZVtPXSYmQS5sb2FkKGxlW09dfHwiR2VuZXJhbCIsTyksImUiPT09Uy50KVMudz1TLnd8fENjW1Mu'@; put 'dl07ZWxzZSBpZigwPT09TylpZigibiI9PT1TLnQpUy53PSgwfFMudik9PT1TLnY/QS5fZ2VuZXJhbF9pbnQoUy52KTpBLl9nZW5lcmFsX251bShTLnYpO2Vsc2UgaWYoImQiPT09Uy50KXt2YXIgYmU9SmUoUy52KTtTLnc9KDB8YmUpPT09YmU/QS5fZ2VuZXJhbF9pbnQoYmUpOkEuX2dlbmVy'@; put 'YWxfbnVtKGJlKX1lbHNle2lmKHZvaWQgMD09PVMudilyZXR1cm4iIjtTLnc9QS5fZ2VuZXJhbChTLnYsYzgpfWVsc2UgUy53PUEuZm9ybWF0KE8sImQiPT09Uy50P0plKFMudik6Uy52LGM4KX1jYXRjaChQZSl7aWYob2UuV1RGKXRocm93IFBlfWlmKG9lLmNlbGxTdHlsZXMmJnBlKXtpZihT'@; put 'LnM9e30sbnVsbCE9ayYmcGUuRmlsbHMpdHJ5e1B0KFMucyxwZS5GaWxsc1trXSl9Y2F0Y2goUGUpe2lmKG9lLldURil0aHJvdyBQZX1pZihudWxsIT1LJiZwZS5Gb250cyl0cnl7UHQoUy5zLHBlLkZvbnRzW0tdKX1jYXRjaChQZSl7aWYob2UuV1RGKXRocm93IFBlfWlmKG51bGwhPWVlJiZw'@; put 'ZS5Cb3JkZXJzKXRyeXtQdChTLnMscGUuQm9yZGVyc1tlZV0pfWNhdGNoKFBlKXtpZihvZS5XVEYpdGhyb3cgUGV9fX1mdW5jdGlvbiBiRChTLE8sayl7aWYoUyYmU1siIXJlZiJdKXt2YXIgSz1zcyhTWyIhcmVmIl0pO2lmKEsuZS5jPEsucy5jfHxLLmUucjxLLnMucil0aHJvdyBuZXcgRXJy'@; put 'b3IoIkJhZCByYW5nZSAoIitrKyIpOiAiK1NbIiFyZWYiXSl9fXZhciBkOD0vPCg/Olx3Oik/bWVyZ2VDZWxsIHJlZj0iW0EtWjAtOTpdKyJccypbXC9dPz4vZyxfRD0vPCg/Olx3KzopP3NoZWV0RGF0YVtePl0qPihbXHNcU10qKTxcLyg/Olx3KzopP3NoZWV0RGF0YT4vLGdTPS88KD86XHc6'@; put 'KT9oeXBlcmxpbmsgW14+XSo+L2dtLHJ5PS8iKFx3KjpcdyopIi8sYWo9LzwoPzpcdzopP2NvbFxiW14+XSpbXC9dPz4vZyx3RD0vPCg/Olx3Oik/Y29udHJvbFxiW14+XSpbXC9dPz4vZyxzaj0vPCg/Olx3Oik/YXV0b0ZpbHRlcltePl0qKFtcL118PihbXHNcU10qKTxcLyg/Olx3Oik/YXV0'@; put 'b0ZpbHRlcik+L2csQ0Q9LzwoPzpcdzopP3BhZ2VNYXJnaW5zW14+XSpcLz4vZyxTRD0vPCg/Olx3Oik/c2hlZXRQclxiKD86W14+YS16XVtePl0qKT9cLz4vLE1EPS88KD86XHc6KT9zaGVldFByb3RlY3Rpb25cYig/OltePmEtel1bXj5dKik/XC8+Lyx4RD0vPCg/Olx3Oik/c2hlZXRQclte'@; put 'Pl0qKD86W1wvXXw+KFtcc1xTXSopPFwvKD86XHc6KT9zaGVldFByKT4vLExzPS88KD86XHc6KT9zaGVldFZpZXdzW14+XSooPzpbXC9dfD4oW1xzXFNdKik8XC8oPzpcdzopP3NoZWV0Vmlld3MpPi8sZmU9LzwoPzpcdys6KT9kYXRhVmFsaWRhdGlvbnNbXj5dKig/OltcL118PihbXHNcU10q'@; put 'Pyk8XC8oPzpcdys6KT9kYXRhVmFsaWRhdGlvbnMpPi8sbVM9LzwoPzpcdys6KT9jb25kaXRpb25hbEZvcm1hdHRpbmdcYltePl0qKD86W1wvXXw+KFtcc1xTXSo/KTxcLyg/Olx3KzopP2NvbmRpdGlvbmFsRm9ybWF0dGluZyk+L2csJGU9LzwoPzpcdzopP3NoZWV0Rm9ybWF0UHJbXj5dKlwv'@; put 'Pi8sRUQ9LzwoPzpcdys6KT90YWJsZVBhcnRzLio/PihbXHNcU10qPyk8XC8oPzpcdys6KT90YWJsZVBhcnRzPi8sVEQ9LzwoPzpcdzopP3BhZ2VTZXR1cFtePl0qXC8+Lyxvaj0vPCg/Olx3Oik/cm93QnJlYWtzW14+XSooPzpbXC9dfD4oW1xzXFNdKik8XC8oPzpcdzopP3Jvd0JyZWFrcyk+'@; put 'LyxpeT0vPCg/Olx3Oik/Y29sQnJlYWtzW14+XSooPzpbXC9dfD4oW1xzXFNdKik8XC8oPzpcdzopP2NvbEJyZWFrcyk+LyxONT0vPCg/Olx3Oik/aGVhZGVyRm9vdGVyW14+XSooPzpbXC9dfD4oW1xzXFNdKik8XC8oPzpcdzopP2hlYWRlckZvb3Rlcik+Lyx2Uz0vPCg/Olx3Oik/cHJpbnRP'@; put 'cHRpb25zXGJbXj5cL10qXC8+Lzt2YXIgeVM9LzwoPzpcdzopP3RhYmxlUGFydFxiW15cLz5dKltcL10/Pi9nO2Z1bmN0aW9uIGF5KFMsTyxrLEspe3ZhciBlZT15cihTKTtrLlNoZWV0c1tLXXx8KGsuU2hlZXRzW0tdPXt9KSxlZS5jb2RlTmFtZSYmKGsuU2hlZXRzW0tdLkNvZGVOYW1lPWVl'@; put 'LmNvZGVOYW1lKX12YXIgd1M9LzwoPzpcdzopP3RhYkNvbG9yW14+XSpbXC9dPz4vLGxqPS88KD86XHc6KT9wYWdlU2V0VXBQcltePl0qW1wvXT8+Lyxjaj0vPCg/Olx3Oik/b3V0bGluZVByW14+XSpbXC9dPz4vLEREPXtkaXNwbGF5ZWQ6ImFzRGlzcGxheWVkIixlbmQ6ImF0RW5kIixub25l'@; put 'OiJub25lIn0sSUQ9SGUoREQpLFJEPXtkaXNwbGF5ZWQ6ImRpc3BsYXllZCIsbm9uZToiYmxhbmsiLGRhc2g6ImRhc2giLCJuL2EiOiJOQSJ9LExEPUhlKFJEKSxPMD0vPCg/Olx3Oik/YnJrW14+XSpcLz4vZyxTUz1bIm9iamVjdHMiLCJzY2VuYXJpb3MiLCJzZWxlY3RMb2NrZWRDZWxscyIs'@; put 'InNlbGVjdFVubG9ja2VkQ2VsbHMiXSxGRD1bImZvcm1hdENvbHVtbnMiLCJmb3JtYXRSb3dzIiwiZm9ybWF0Q2VsbHMiLCJpbnNlcnRDb2x1bW5zIiwiaW5zZXJ0Um93cyIsImluc2VydEh5cGVybGlua3MiLCJkZWxldGVDb2x1bW5zIiwiZGVsZXRlUm93cyIsInNvcnQiLCJhdXRvRmlsdGVy'@; put 'IiwicGl2b3RUYWJsZXMiXTtmdW5jdGlvbiBORChTKXt2YXIgTz17fTtyZXR1cm5bImxlZnQiLCJyaWdodCIsInRvcCIsImJvdHRvbSIsImhlYWRlciIsImZvb3RlciJdLmZvckVhY2goZnVuY3Rpb24oayl7U1trXSYmKE9ba109cGFyc2VGbG9hdChTW2tdKSl9KSxPfXZhciBkaD17Q3VzdG9t'@; put 'OiJjdXN0b20iLERhdGU6ImRhdGUiLFRpbWU6InRpbWUiLExlbmd0aDoidGV4dExlbmd0aCIsTGlzdDoibGlzdCIsRGVjaW1hbDoiZGVjaW1hbCIsV2hvbGU6Indob2xlIixBbnk6Im5vbmUifSx4Uz1IZShkaCksc3k9e0lOOiJiZXR3ZWVuIixPVDoibm90QmV0d2VlbiIsRVE6ImVxdWFsIixO'@; put 'RToibm90RXF1YWwiLEdUOiJncmVhdGVyVGhhbiIsTFQ6Imxlc3NUaGFuIixHRToiZ3JlYXRlclRoYW5PckVxdWFsIixMRToibGVzc1RoYW5PckVxdWFsIn0sVkQ9SGUoc3kpO2Z1bmN0aW9uIEVTKFMsTyxrKXt2YXIgSz1bXSxlZT17fSxvZT0iIixtZT0hMSxwZT0wLGJlPTA7cmV0dXJuIFMu'@; put 'cmVwbGFjZSh0bixmdW5jdGlvbihQZSxWZSl7dmFyIFllPXlyKFBlKTtzd2l0Y2goR24oWWVbMF0pKXtjYXNlIjxkYXRhVmFsaWRhdGlvbnMiOmNhc2UiPGRhdGFWYWxpZGF0aW9ucz4iOmNhc2UiPC9kYXRhVmFsaWRhdGlvbnM+IjpicmVhaztjYXNlIjxkYXRhVmFsaWRhdGlvbiI6ZWU9e3Q6'@; put 'eFNbWWUudHlwZXx8Im5vbmUiXSxyZWY6KG9lPVllLnNxcmVmKT9vZS5pbmRleE9mKCIgIik+LTE/b2U6c3Mob2UpOiIifSxZZS5vcGVyYXRvciYmKGVlLm9wPVZEW1llLm9wZXJhdG9yXSksZWUuYmxhbms9ISFZZS5hbGxvd0JsYW5rJiZlaShZZS5hbGxvd0JsYW5rKSwoIVllLnNob3dJbnB1'@; put 'dE1lc3NhZ2V8fCFlaShZZS5zaG93SW5wdXRNZXNzYWdlKSkmJihlZS5pbnB1dD0hMSksWWUucHJvbXB0VGl0bGUmJigoZWUuaW5wdXR8fChlZS5pbnB1dD17fSkpLnRpdGxlPVFyKFllLnByb21wdFRpdGxlKSksWWUucHJvbXB0JiYoKGVlLmlucHV0fHwoZWUuaW5wdXQ9e30pKS5tZXNzYWdl'@; put 'PVFyKFllLnByb21wdCkpLCghWWUuc2hvd0Vycm9yTWVzc2FnZXx8IWVpKFllLnNob3dFcnJvck1lc3NhZ2UpKSYmKGVlLmVycm9yPSExKSxZZS5lcnJvclRpdGxlJiYoKGVlLmVycm9yfHwoZWUuZXJyb3I9e30pKS50aXRsZT1RcihZZS5lcnJvclRpdGxlKSksWWUuZXJyb3ImJigoZWUuZXJy'@; put 'b3J8fChlZS5lcnJvcj17fSkpLm1lc3NhZ2U9UXIoWWUuZXJyb3IpKSxlZS5lcnJvcj9lZS5lcnJvci5zdHlsZT1ZZS5lcnJvclN0eWxlfHwic3RvcCI6WWUuZXJyb3JTdHlsZSYmKGVlLmVycm9yPXtzdHlsZTpZZS5lcnJvclN0eWxlfSksZWUudCYmSy5wdXNoKGVlKTticmVhaztjYXNlIjxk'@; put 'YXRhVmFsaWRhdGlvbi8+IjpjYXNlIjwvZGF0YVZhbGlkYXRpb24+IjpicmVhaztjYXNlIjxzcXJlZj4iOmJlPVZlK1BlLmxlbmd0aDticmVhaztjYXNlIjwvc3FyZWY+IjpvZT1TLnNsaWNlKGJlLFZlKSxlZS5yZWY9b2U/b2UuaW5kZXhPZigiICIpPi0xP29lOnNzKG9lKToiIjticmVhaztj'@; put 'YXNlIjxmPiI6Y2FzZSI8Zm9ybXVsYTEiOmNhc2UiPGZvcm11bGExPiI6Y2FzZSI8Zm9ybXVsYTIiOmNhc2UiPGZvcm11bGEyPiI6cGU9VmUrUGUubGVuZ3RoO2JyZWFrO2Nhc2UiPC9mb3JtdWxhMT4iOmNhc2UiPC9mb3JtdWxhMj4iOmlmKGspYnJlYWs7Y2FzZSI8L2Y+Ijp2YXIgZXQ9UXIo'@; put 'ZnMoUy5zbGljZShwZSxWZSkpKTtzd2l0Y2goZWUudCl7Y2FzZSJMaXN0IjppZihlZS5sfHxlZS5mKWJyZWFrO2lmKDM0PT1ldC5jaGFyQ29kZUF0KDApKXtlZS5sPWV0LnNsaWNlKDEsLTEpLnNwbGl0KCIsIik7YnJlYWt9Y2FzZSJDdXN0b20iOm51bGw9PWVlLmYmJihlZS5mPWV0KTticmVh'@; put 'aztjYXNlIkRhdGUiOmNhc2UiRGVjaW1hbCI6Y2FzZSJMZW5ndGgiOmNhc2UiVGltZSI6Y2FzZSJXaG9sZSI6ZWUub3B8fChlZS5vcD0iSU4iKSxudWxsPT1lZS52P2VlLnY9aXNOYU4oK2V0KT9ldDorZXQ6KGVlLm1pbj1lZS52LGVlLm1heD1pc05hTigrZXQpP2V0OitldCxkZWxldGUgZWUu'@; put 'dil9YnJlYWs7Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6YnJlYWs7Y2FzZSI8ZXh0IjptZT0hMDticmVhaztjYXNlIjwvZXh0PiI6bWU9ITE7YnJlYWs7ZGVmYXVsdDppZihPJiZPLldURiYmIW1lKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkICIr'@; put 'WWVbMF0rIiBpbiBkYXRhIHZhbGlkYXRpb24iKX1yZXR1cm4gUGV9KSxLfXZhciBmOD17SU46ImNvbnRhaW5zVGV4dCIsT1Q6Im5vdENvbnRhaW5zVGV4dCIsU1Q6ImJlZ2luc1dpdGgiLE5EOiJlbmRzV2l0aCJ9LG95PUhlKGY4KSxTaj17TE06Imxhc3RNb250aCIsTFM6Imxhc3Q3RGF5cyIs'@; put 'TFc6Imxhc3RXZWVrIixOTToibmV4dE1vbnRoIixOVzoibmV4dFdlZWsiLFRNOiJ0aGlzTW9udGgiLFRXOiJ0aGlzV2VlayIsVEQ6InRvZGF5IixUTzoidG9tb3Jyb3ciLFlTOiJ5ZXN0ZXJkYXkifSxqRD1IZShTaik7ZnVuY3Rpb24gcDgoUyl7dmFyIE89e307cmV0dXJuIG51bGwhPVMudmFs'@; put 'JiYoaXNOYU4oK1MudmFsKT9PLmY9Uy52YWw6Ty52PStTLnZhbCksTy50PVMudHlwZSxPfWZ1bmN0aW9uIFc0KFMpe3JldHVybiBIcigiY2Z2byIsbnVsbCx7dHlwZTpTLnQsdmFsOm51bGwhPVMudj9TLnY6UHIoUy5mKX0pfWZ1bmN0aW9uIFY1KFMsTyxrLEspe3ZhciBlZT1wOChTKTtyZXR1'@; put 'cm4gZWUuY29sb3I9eWsoTyxrLEspLGVlfWZ1bmN0aW9uIGIyKFMsTyxrLEssZWUpe3ZhciBvZT0oUy5tYXRjaCgvc3FyZWY9IihbXHc6JCBdKikiLyl8fFtdKVsxXTtyZXR1cm4gZnVuY3Rpb24gVFMoUyxPLGssSyxlZSxvZSl7dmFyIG1lPSExLHBlPVtdLGJlPXtmOltdfSxQZT0wLFZlPTAs'@; put 'WWU9e2Nmdm9zOltdLGNvbG9yczpbXX0sZXQ9e30sY3Q9LTEsVHQ9MCxpdD0iIjtyZXR1cm4gUy5yZXBsYWNlKHRuLGZ1bmN0aW9uKGJ0LEJ0KXt2YXIgRHQ9eXIoYnQpO3N3aXRjaChHbihEdFswXSkpe2Nhc2UiPGNvbmRpdGlvbmFsRm9ybWF0dGluZyI6Y2FzZSI8L2NvbmRpdGlvbmFsRm9y'@; put 'bWF0dGluZz4iOmJyZWFrO2Nhc2UiPGNmUnVsZSI6Y2FzZSI8Y2ZSdWxlPiI6aWYoVmU9QnQsZXQ9RHQsYmU9e3JlZjpPLGY6W119LCFidC5tYXRjaCgvXC8+LykpYnJlYWs7Y2FzZSI8L2NmUnVsZT4iOnN3aXRjaChldC5keGZJZCYmZWUmJmVlLkRYRiYmKGJlLnM9ZWUuRFhGWytldC5keGZJ'@; put 'ZF0pLGV0LnR5cGUpe2Nhc2UiZHVwbGljYXRlVmFsdWVzIjpiZS50PSJkdXAiO2JyZWFrO2Nhc2UidW5pcXVlVmFsdWVzIjpiZS50PSJ1bmlxdWUiO2JyZWFrO2Nhc2UiY29udGFpbnNCbGFua3MiOmJlLnQ9ImJsYW5rIixiZS52PSEwO2JyZWFrO2Nhc2Uibm90Q29udGFpbnNCbGFua3MiOmJl'@; put 'LnQ9ImJsYW5rIixiZS52PSExO2JyZWFrO2Nhc2UiY29udGFpbnNFcnJvcnMiOmJlLnQ9ImVycm9yIixiZS52PSEwO2JyZWFrO2Nhc2Uibm90Q29udGFpbnNFcnJvcnMiOmJlLnQ9ImVycm9yIixiZS52PSExO2JyZWFrO2Nhc2UiY2VsbElzIjpzd2l0Y2goZXQub3BlcmF0b3Ipe2Nhc2UiY29u'@; put 'dGFpbnNUZXh0IjpjYXNlIm5vdENvbnRhaW5zIjpjYXNlImJlZ2luc1dpdGgiOmNhc2UiZW5kc1dpdGgiOmlmKGJlLnQ9InRleHQiLGJlLm9wPW95W2V0Lm9wZXJhdG9yXSxudWxsPT1ldC50ZXh0KXRocm93IG5ldyBFcnJvcigiQ0YgVGV4dCBSdWxlICIrYmUub3ArIiBtaXNzaW5nIHRleHQi'@; put 'KTtiZS52PWV0LnRleHQsYmUuZj1iZS5mWzBdLG51bGw9PWJlLmYmJmRlbGV0ZSBiZS5mO2JyZWFrO2RlZmF1bHQ6YmUudD0idmFsIixiZS5vcD1WRFtldC5vcGVyYXRvcl0sMT09YmUuZi5sZW5ndGg/aXNOYU4oK2JlLmZbMF0pP2JlLmY9YmUuZlswXTooYmUudj0rYmUuZlswXSxkZWxldGUg'@; put 'YmUuZik6KGJlLm1pbj1pc05hTigrYmUuZlswXSk/YmUuZlswXTorYmUuZlswXSxiZS5tYXg9aXNOYU4oK2JlLmZbMV0pP2JlLmZbMV06K2JlLmZbMV0sZGVsZXRlIGJlLmYpfWJyZWFrO2Nhc2UiZXhwcmVzc2lvbiI6YmUudD0iZm9ybXVsYSIsYmUuZj1iZS5mWzBdO2JyZWFrO2Nhc2UiY29u'@; put 'dGFpbnNUZXh0IjpjYXNlIm5vdENvbnRhaW5zVGV4dCI6Y2FzZSJiZWdpbnNXaXRoIjpjYXNlImVuZHNXaXRoIjppZihiZS50PSJ0ZXh0IixiZS5vcD1veVtldC50eXBlXSxudWxsPT1ldC50ZXh0JiZiZS5mLmxlbmd0aDwyKXRocm93IG5ldyBFcnJvcigiQ0YgVGV4dCBSdWxlICIrYmUub3Ar'@; put 'IiBtaXNzaW5nIHRleHQiKTtiZS52PW51bGwhPWV0LnRleHQ/ZXQudGV4dDpiZS5mWzFdLm1hdGNoKC8iLioiLyk/YmUuZlsxXS5zbGljZSgxLC0xKTpiZS5mWzFdLGJlLmY9YmUuZlswXSxudWxsPT1iZS5mJiZkZWxldGUgYmUuZjticmVhaztjYXNlImNvbG9yU2NhbGUiOmlmKGJlLnQ9InNj'@; put 'YWxlIiwhYmUuY29sb3JTY2FsZSl0aHJvdyBuZXcgRXJyb3IoIm1pc3NpbmcgY29sb3JTY2FsZSIpO2JlLmNtaW49VjUoKFllPWJlLmNvbG9yU2NhbGUpLmNmdm9zWzBdLFllLmNvbG9yc1swXSxlZSxLKSwzPT1ZZS5jZnZvcy5sZW5ndGgmJihiZS5jbWlkPVY1KFllLmNmdm9zWzFdLFllLmNv'@; put 'bG9yc1sxXSxlZSxLKSksYmUuY21heD1WNShZZS5jZnZvc1tZZS5jZnZvcy5sZW5ndGgtMV0sWWUuY29sb3JzW1llLmNmdm9zLmxlbmd0aC0xXSxlZSxLKTticmVhaztjYXNlImRhdGFCYXIiOmlmKGJlLnQ9ImJhciIsIWJlLmRhdGFCYXIpdGhyb3cgbmV3IEVycm9yKCJtaXNzaW5nIGRhdGFC'@; put 'YXIiKTsoWWU9YmUuZGF0YUJhcikuY29sb3JzWzBdJiYoYmUuY29sb3I9eWsoWWUuY29sb3JzWzBdLGVlLEspKSxiZS5jbWluPXA4KFllLmNmdm9zWzBdKSxiZS5jbWF4PXA4KFllLmNmdm9zWzFdKTticmVhaztjYXNlImljb25TZXQiOmlmKGJlLnQ9Imljb24iLCFiZS5pY29uU2V0KXRocm93'@; put 'IG5ldyBFcnJvcigibWlzc2luZyBpY29uU2V0Iik7YmUudGhyZXNoPShZZT1iZS5pY29uU2V0KS5jZnZvcy5tYXAoZnVuY3Rpb24oT3Qpe3JldHVybiBwOChPdCl9KSxiZS52PVllLnRhZyYmWWUudGFnLmljb25TZXR8fCIzVHJhZmZpY0xpZ2h0czEiLGJlLnJldj1laShZZS50YWcucmV2ZXJz'@; put 'ZXx8ImZhbHNlIiksYmUucGN0PWVpKFllLnRhZy5wZXJjZW50fHwidHJ1ZSIpLGJlLmhpZGRlbj0hZWkoWWUudGFnLnNob3dWYWx1ZXx8InRydWUiKTticmVhaztjYXNlInRpbWVQZXJpb2QiOmJlLnQ9ImRhdGUiLGJlLm9wPWpEW2V0LnRpbWVQZXJpb2RdO2JyZWFrO2Nhc2UiYWJvdmVBdmVy'@; put 'YWdlIjpiZS50PSJhdmciLGJlLm9wPSIwIj09ZXQuYWJvdmVBdmVyYWdlPyJMIjoiRyIsYmUub3ArPWV0LnN0ZERldj9ldC5zdGREZXY6ZWkoZXQuZXF1YWxBdmVyYWdlfHwiMCIpPyJFIjoiVCI7YnJlYWs7Y2FzZSJ0b3AxMCI6YmUudD0icmFuayIsYmUub3A9KGVpKGV0LmJvdHRvbXx8IjAi'@; put 'KT8iQiI6IlQiKSsoZWkoZXQucGVyY2VudHx8IjAiKT8iUCI6IlYiKSxiZS52PStldC5yYW5rO2JyZWFrO2RlZmF1bHQ6dGhyb3ciVW5zdXBwb3J0ZWQgQ0YgVHlwZSAiK2V0LnR5cGV9aWYoZGVsZXRlIGJlLmNvbG9yU2NhbGUsZGVsZXRlIGJlLmRhdGFCYXIsZGVsZXRlIGJlLmljb25TZXQs'@; put 'IWJlLnQpdGhyb3cgY29uc29sZS5sb2coUy5zbGljZShWZSxCdCtidC5sZW5ndGgpKSwiYmFkIENGIHJ1bGUiO251bGwhPWJlLmYmJiFiZS5mLmxlbmd0aCYmZGVsZXRlIGJlLmYsYmUuZGVsfHxwZS5wdXNoKGJlKTticmVhaztjYXNlIjxmb3JtdWxhIjpjYXNlIjxmb3JtdWxhPiI6UGU9QnQr'@; put 'YnQubGVuZ3RoO2JyZWFrO2Nhc2UiPC9mb3JtdWxhPiI6YmUuZi5wdXNoKFFyKFMuc2xpY2UoUGUsQnQpKSk7YnJlYWs7Y2FzZSI8ZiI6Y2FzZSI8Zj4iOlBlPUJ0K2J0Lmxlbmd0aDticmVhaztjYXNlIjwvZj4iOmJlLmYucHVzaChRcihTLnNsaWNlKFBlLEJ0KSkpO2JyZWFrO2Nhc2UiPHNx'@; put 'cmVmPiI6VHQ9QnQrYnQubGVuZ3RoO2JyZWFrO2Nhc2UiPC9zcXJlZj4iOml0PVMuc2xpY2UoVHQsQnQpLE89aXQ/aXQuaW5kZXhPZigiICIpPi0xP2l0OnNzKGl0KToiIixiZS5yZWY9TyxwZS5mb3JFYWNoKGZ1bmN0aW9uKE90KXtPdC5yZWY9T30pO2JyZWFrO2Nhc2UiPGNvbG9yU2NhbGUi'@; put 'OmNhc2UiPGNvbG9yU2NhbGU+IjpjYXNlIjxkYXRhQmFyIjpjYXNlIjxkYXRhQmFyPiI6Y2FzZSI8aWNvblNldCI6Y2FzZSI8aWNvblNldD4iOlllPXtjZnZvczpbXSxjb2xvcnM6W10sdGFnOkR0fSxQZT1CdCtidC5sZW5ndGg7YnJlYWs7Y2FzZSI8L2NvbG9yU2NhbGU+IjpiZS5jb2xvclNj'@; put 'YWxlPVllO2JyZWFrO2Nhc2UiPC9kYXRhQmFyPiI6YmUuZGF0YUJhcj1ZZTticmVhaztjYXNlIjwvaWNvblNldD4iOmJlLmljb25TZXQ9WWU7YnJlYWs7Y2FzZSI8Y2Z2byI6Y2FzZSI8Y2Z2by8+IjpZZS5jZnZvcy5wdXNoKER0KTticmVhaztjYXNlIjwvY2Z2bz4iOmJyZWFrO2Nhc2UiPGNv'@; put 'bG9yIjpZZS5jb2xvcnMucHVzaChEdCk7YnJlYWs7Y2FzZSI8L2NvbG9yPiI6Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6YnJlYWs7Y2FzZSI8ZXh0IjptZT0hMDticmVhaztjYXNlIjwvZXh0PiI6bWU9ITE7YnJlYWs7Y2FzZSI8bmVnYXRpdmVGaWxsQ29s'@; put 'b3IiOmNhc2UiPGF4aXNDb2xvciI6Y2FzZSI8Ym9yZGVyQ29sb3IiOmNhc2UiPG5lZ2F0aXZlQm9yZGVyQ29sb3IiOmNhc2UiPGNmSWNvbiI6YmUuZGVsPSEwO2JyZWFrO2Nhc2UiPGR4Zj4iOm1lPSEwLGN0PUJ0O2JyZWFrO2Nhc2UiPC9keGY+IjptZT0hMSxiZS5zPUw0KFMuc2xpY2UoY3Qs'@; put 'QnQrYnQubGVuZ3RoKSxlZSxLLGspO2JyZWFrO2RlZmF1bHQ6aWYoayYmay5XVEYpe2lmKG9lKWJyZWFrO2lmKCFtZSl0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCAiK0R0WzBdKyIgaW4gY29uZGZtdCIpfX1yZXR1cm4gYnR9KSxwZX0oUyxvZSxPLGssSyxlZSl9dmFyIEFTPS88KD86'@; put 'XHc6KT9zaGVldFZpZXcoPzpbXj5hLXpdW14+XSopP1wvPz4vZztmdW5jdGlvbiBtOChTLE8pe3ZhciBrPTAsSz0wLGVlPTAsb2U9MDtpZighT3x8IU8uQ2VsbFhmKXJldHVybiBudWxsO3ZhciBtZT1PLkNlbGxYZltTXTtudWxsIT1tZSYmKG51bGwhPW1lLm51bUZtdElkJiYoaz1tZS5udW1G'@; put 'bXRJZCksbnVsbCE9bWUuZmlsbElkJiYoSz1tZS5maWxsSWQpLG51bGwhPW1lLmZvbnRJZCYmKGVlPW1lLmZvbnRJZCksbnVsbCE9bWUuYm9yZGVySWQmJihvZT1tZS5ib3JkZXJJZCkpO3ZhciBwZT17dDoieiJ9O3RyeXtRMyhwZSxrLEssZWUsb2Use1dURjoxLGNlbGxTdHlsZXM6ITB9LDAs'@; put 'Tyl9Y2F0Y2h7fXJldHVybiBwZS5zfWZ1bmN0aW9uIEI1KFMsTyxrLEspe2lmKHZvaWQgMD09PVMudiYmdm9pZCAwPT09Uy5mJiZudWxsPT1TLnMmJiFTLmN8fCJ6Ij09PVMudCYmIVMuYyYmIUsuc2hlZXRTdHVicylyZXR1cm4iIjt2YXIgZWU9IiIsb2U9Uy50LG1lPVMudjtpZigieiIhPT1T'@; put 'LnQpc3dpdGNoKFMudCl7Y2FzZSJiIjplZT1TLnY/IjEiOiIwIjticmVhaztjYXNlIm4iOmVlPSIiK1MudjticmVhaztjYXNlImUiOmVlPUNjW1Mudl07YnJlYWs7Y2FzZSJkIjpLJiZLLmNlbGxEYXRlcz9lZT1OZShTLnYsLTEpLnRvSVNPU3RyaW5nKCk6KChTPUp0KFMpKS50PSJuIixlZT0i'@; put 'IisoUy52PUplKE5lKFMudikpKSksdHlwZW9mIFMuej4idSImJihTLno9QS5fdGFibGVbMTRdKTticmVhaztkZWZhdWx0OmVlPVMudn12YXIgcGU9InoiPT1TLnQ/IiI6VmEoInYiLFByKGVlKSksYmU9e3I6T30sUGU9Sz9zMChLLmNlbGxYZnMsSy5jZWxsU3R5bGVYZnMsUyxLKTowO3N3aXRj'@; put 'aCgwIT09UGUmJihiZS5zPVBlKSxTLnQpe2Nhc2UibiI6Y2FzZSJ6IjpicmVhaztjYXNlImQiOmJlLnQ9ImQiO2JyZWFrO2Nhc2UiYiI6YmUudD0iYiI7YnJlYWs7Y2FzZSJlIjpiZS50PSJlIjticmVhaztkZWZhdWx0OmlmKG51bGw9PVMudil7ZGVsZXRlIFMudDticmVha31pZihLJiZLLmJv'@; put 'b2tTU1Qpe3BlPVZhKCJ2IiwiIit1UyhLLlN0cmluZ3MsUy52LFMuUj9TLnI9Sm8oUy5SKTpudWxsLEsucmV2U3RyaW5ncykpLGJlLnQ9InMiO2JyZWFrfUFycmF5LmlzQXJyYXkoUy5SKT8ocGU9Ijxpcz4iK0pvKFMuUikrIjwvaXM+IixiZS50PSJpbmxpbmVTdHIiKTpiZS50PSJzdHIifWlm'@; put 'KFMudCE9b2UmJihTLnQ9b2UsUy52PW1lKSxTLmYpe3ZhciBWZT1TLkYmJlMuRi5zbGljZSgwLE8ubGVuZ3RoKT09Tz97dDoiYXJyYXkiLHJlZjpTLkZ9Om51bGw7cGU9SHIoImYiLFByKFMuZiksVmUpKyhudWxsIT1TLnY/cGU6IiIpfXJldHVybiBTLmwmJmtbIiFsaW5rcyJdLnB1c2goW08s'@; put 'Uy5sXSksUy5jJiZrWyIhY29tbWVudHMiXS5wdXNoKFtPLFMuY10pLEhyKCJjIixwZSxiZSl9dmFyIHY4PWZ1bmN0aW9uKCl7dmFyIFM9LzwoPzpcdys6KT9jWyBcLz5dLyxPPS88XC8oPzpcdys6KT9yb3c+LyxrPS9yPVsiJ10oW14iJ10qKVsiJ10vLEs9LzwoPzpcdys6KT9pcz4oW1xTXHNd'@; put 'Kj8pPFwvKD86XHcrOik/aXM+LyxlZT0vcmVmPVsiJ10oW14iJ10qKVsiJ10vLG9lPUEwKCJ2IiksbWU9QTAoImYiKTtyZXR1cm4gZnVuY3Rpb24oYmUsUGUsVmUsWWUsZXQsY3QsVHQpe2Zvcih2YXIgQ24sdXIscHIsYnIsUmksaXQ9MCxidD0iIixCdD1bXSxEdD1bXSxPdD0wLEt0PTAsVG49'@; put 'MCxzcj0iIixlcj0wLGpuPTAscnI9MCxTaT0wLFBpPTAsbmE9MCxsYT1BcnJheS5pc0FycmF5KFR0LkNlbGxYZiksUnI9W10sQm49W10sanI9QXJyYXkuaXNBcnJheShWZSksd3I9W10sSG49e30senI9ITEsV2k9YmUuc3BsaXQoTyksQ2k9ISFZZS5zaGVldFN0dWJzLHdhPSEhWWUuY2VsbEhU'@; put 'TUwsb3M9ISghMT09PVllLmNlbGxUZXh0JiYhWWUuY2VsbE5GJiYhWWUuY2VsbFN0eWxlcyksaWE9MCxPcz1XaS5sZW5ndGg7aWEhPU9zOysraWEpe3ZhciBQYT0oYnQ9V2lbaWFdLnRyaW0oKSkubGVuZ3RoO2lmKDAhPT1QYSl7dmFyIHVzPTA7ZTpmb3IoaXQ9MDtpdDxQYTsrK2l0KXN3aXRj'@; put 'aChidFtpdF0pe2Nhc2UiPiI6aWYoIi8iIT1idFtpdC0xXSl7KytpdDticmVhayBlfVllLmNlbGxTdHlsZXMmJm51bGwhPSh1cj15cihidC5zbGljZSh1cyxpdCksITApKS5yJiZwYXJzZUludCh1ci5yLDEwKSYmKGVyPXBhcnNlSW50KHVyLnIsMTApLEhuPXt9LHpyPSExLHVyLmh0JiYoenI9'@; put 'ITAsSG4uaHB0PXBhcnNlRmxvYXQodXIuaHQpLEhuLmhweD1vaChIbi5ocHQpKSx1ci5keURlc2NlbnQmJih6cj0hMCxIbi5keURlc2NlbnQ9dXIuZHlEZXNjZW50KSwiMSI9PXVyLmhpZGRlbiYmKHpyPSEwLEhuLmhpZGRlbj0hMCksbnVsbCE9dXIub3V0bGluZUxldmVsJiYoenI9ITAsSG4u'@; put 'bGV2ZWw9K3VyLm91dGxpbmVMZXZlbCksdXIucyYmVHQmJlR0LkNlbGxYZiYmKHpyPSEwLEhuLnM9bTgodXIucyxUdCkpLHpyJiYod3JbZXItMV09SG4pKTticmVhaztjYXNlIjwiOnVzPWl0fWlmKHVzPj1pdClicmVhaztpZihlcj1udWxsIT0odXI9eXIoYnQuc2xpY2UodXMsaXQpLCEwKSku'@; put 'cj9wYXJzZUludCh1ci5yLDEwKTplcisxLGpuPS0xLCEoWWUuc2hlZXRSb3dzJiZZZS5zaGVldFJvd3M8ZXIpKXtZZS5ub2RpbXx8KGV0LnMucj5lci0xJiYoZXQucy5yPWVyLTEpLGV0LmUucjxlci0xJiYoZXQuZS5yPWVyLTEpKTt2YXIgcWE9e3Q6InJvdyIscm93OltdLFI6ZXItMSxpZHg6'@; put 'UGV9O1llLmNlbGxTdHlsZXMmJihIbj17fSx6cj0hMSx1ci5odCYmKHpyPSEwLEhuLmhwdD1wYXJzZUZsb2F0KHVyLmh0KSxIbi5ocHg9b2goSG4uaHB0KSksdXIuZHlEZXNjZW50JiYoenI9ITAsSG4uZHlEZXNjZW50PXVyLmR5RGVzY2VudCksIjEiPT11ci5oaWRkZW4mJih6cj0hMCxIbi5o'@; put 'aWRkZW49ITApLG51bGwhPXVyLm91dGxpbmVMZXZlbCYmKHpyPSEwLEhuLmxldmVsPSt1ci5vdXRsaW5lTGV2ZWwpLHVyLnMmJih6cj0hMCxIbi5zPW04KHVyLnMsVHQpKSx6ciYmKFllLmNhbGxiYWNrP3FhLnByb3BzPUhuOndyW2VyLTFdPUhuKSksQnQ9YnQuc2xpY2UoaXQpLnNwbGl0KFMp'@; put 'O2Zvcih2YXIgVmk9MDtWaSE9QnQubGVuZ3RoJiYiPCI9PUJ0W1ZpXS50cmltKCkuY2hhckF0KDApOysrVmkpO2ZvcihCdD1CdC5zbGljZShWaSksaXQ9MDtpdCE9QnQubGVuZ3RoOysraXQpaWYoMCE9PShidD1CdFtpdF0udHJpbSgpKS5sZW5ndGgpe2lmKER0PWJ0Lm1hdGNoKGspLE90PWl0'@; put 'LEt0PTAsVG49MCxidD0iPGMgIisoIjwiPT1idC5zbGljZSgwLDEpPyI+IjoiIikrYnQsbnVsbCE9RHQmJjI9PT1EdC5sZW5ndGgpe2ZvcihPdD0wLHNyPUR0WzFdLEt0PTA7S3QhPXNyLmxlbmd0aCYmISgoVG49c3IuY2hhckNvZGVBdChLdCktNjQpPDF8fFRuPjI2KTsrK0t0KU90PTI2Kk90'@; put 'K1RuO2puPS0tT3R9ZWxzZSsram47Zm9yKEt0PTA7S3QhPWJ0Lmxlbmd0aCYmNjIhPT1idC5jaGFyQ29kZUF0KEt0KTsrK0t0KTtpZigrK0t0LCh1cj15cihidC5zbGljZSgwLEt0KSwhMCkpLnJ8fCh1ci5yPXFpKHtyOmVyLTEsYzpqbn0pKSxDbj17dDoiIn0sbnVsbCE9KER0PShzcj1idC5z'@; put 'bGljZShLdCkpLm1hdGNoKG9lKSkmJiIiIT09RHRbMV0mJihDbi52PVFyKER0WzFdKSksWWUuY2VsbEZvcm11bGEpe2lmKG51bGwhPShEdD1zci5tYXRjaChtZSkpJiYiIiE9PUR0WzFdKXtpZihDbi5mPVFyKGZzKER0WzFdKSkucmVwbGFjZSgvXHJcbi9nLCJcbiIpLFllLnhsZm58fChDbi5m'@; put 'PURCKENuLmYpKSxEdFswXS5pbmRleE9mKCd0PSJhcnJheSInKT4tMSlDbi5GPShzci5tYXRjaChlZSl8fFtdKVsxXSxDbi5GLmluZGV4T2YoIjoiKT4tMSYmUnIucHVzaChbc3MoQ24uRiksQ24uRl0pO2Vsc2UgaWYoRHRbMF0uaW5kZXhPZigndD0ic2hhcmVkIicpPi0xKXticj15cihEdFsw'@; put 'XSk7dmFyIElvPVFyKGZzKER0WzFdKSk7WWUueGxmbnx8KElvPURCKElvKSksQm5bcGFyc2VJbnQoYnIuc2ksMTApXT1bYnIsSW8sdXIucl19fWVsc2UoRHQ9c3IubWF0Y2goLzxmW14+XSpcLz4vKSkmJkJuWyhicj15cihEdFswXSkpLnNpXSYmKENuLmY9d25lKEJuW2JyLnNpXVsxXSxCblti'@; put 'ci5zaV1bMl0sdXIucikpO3ZhciBGbj1Wcyh1ci5yKTtmb3IoS3Q9MDtLdDxSci5sZW5ndGg7KytLdClGbi5yPj1ScltLdF1bMF0ucy5yJiZGbi5yPD1ScltLdF1bMF0uZS5yJiZGbi5jPj1ScltLdF1bMF0ucy5jJiZGbi5jPD1ScltLdF1bMF0uZS5jJiYoQ24uRj1ScltLdF1bMV0pfWlmKG51'@; put 'bGw9PXVyLnQmJnZvaWQgMD09PUNuLnYpaWYoQ24uZnx8Q24uRilDbi52PTAsQ24udD0ibiI7ZWxzZXtpZighQ2kpY29udGludWU7Q24udD0ieiJ9ZWxzZSBDbi50PXVyLnR8fCJuIjtzd2l0Y2goZXQucy5jPmpuJiYoZXQucy5jPWpuKSxldC5lLmM8am4mJihldC5lLmM9am4pLENuLnQpe2Nh'@; put 'c2UibiI6aWYoIiI9PUNuLnZ8fG51bGw9PUNuLnYpe2lmKCFDaSljb250aW51ZTtDbi50PSJ6In1lbHNlIENuLnY9cGFyc2VGbG9hdChDbi52KTticmVhaztjYXNlInMiOmlmKHR5cGVvZiBDbi52PiJ1Iil7aWYoIUNpKWNvbnRpbnVlO0NuLnQ9InoifWVsc2UgcHI9bDhbcGFyc2VJbnQoQ24u'@; put 'diwxMCldLENuLnY9cHIudCxDbi5yPXByLnIscHIuUiYmKENuLlI9cHIuUiksd2EmJihDbi5oPXByLmgpO2JyZWFrO2Nhc2Uic3RyIjpDbi50PSJzIixDbi52PW51bGwhPUNuLnY/ZnMoQ24udik6IiIsd2EmJihDbi5oPW9hKENuLnYpKTticmVhaztjYXNlImlubGluZVN0ciI6RHQ9c3IubWF0'@; put 'Y2goSyksQ24udD0icyIsbnVsbCE9RHQmJihwcj1nQyhEdFsxXSkpPyhDbi52PXByLnQscHIuUiYmKENuLlI9cHIuUiksd2EmJihDbi5oPXByLmgpKTpDbi52PSIiO2JyZWFrO2Nhc2UiYiI6Q24udj1laShDbi52KTticmVhaztjYXNlImQiOlllLmNlbGxEYXRlcz9Dbi52PU5lKENuLnYsMSk6'@; put 'KENuLnY9SmUoTmUoQ24udiwxKSksQ24udD0ibiIpO2JyZWFrO2Nhc2UiZSI6ITEhPT1ZZS5jZWxsVGV4dCYmKENuLnc9Q24udiksQ24udj1GM1tDbi52XX1pZihvcyl7cnI9U2k9UGk9bmE9MCxSaT1udWxsLGxhJiZ2b2lkIDAhPT11ci5zJiZudWxsIT0oUmk9VHQuQ2VsbFhmW3VyLnNdKSYm'@; put 'KG51bGwhPVJpLm51bUZtdElkJiYocnI9UmkubnVtRm10SWQpLFllLmNlbGxTdHlsZXMmJihudWxsIT1SaS5maWxsSWQmJihTaT1SaS5maWxsSWQpLG51bGwhPVJpLmZvbnRJZCYmKFBpPVJpLmZvbnRJZCksbnVsbCE9UmkuYm9yZGVySWQmJihuYT1SaS5ib3JkZXJJZCkpKTt0cnl7UTMoQ24s'@; put 'cnIsU2ksUGksbmEsWWUsMCxUdCl9Y2F0Y2h7fVllLmNlbGxTdHlsZXMmJkNuLnMmJihSaSYmUmkuYWxpZ25tZW50JiYoQ24ucy5hbGlnbm1lbnQ9SnQoUmkuYWxpZ25tZW50KSksUmkmJlJpLnByb3RlY3Rpb24mJihudWxsIT1SaS5wcm90ZWN0aW9uLmhpZGRlbiYmKENuLnMuaGlkZGVuPVJp'@; put 'LnByb3RlY3Rpb24uaGlkZGVuKSxudWxsIT1SaS5wcm90ZWN0aW9uLmVkaXRhYmxlJiYoQ24ucy5lZGl0YWJsZT1SaS5wcm90ZWN0aW9uLmVkaXRhYmxlKSksUmkmJlJpLnN0eWxlJiYoQ24ucy5zdHlsZT1SaS5zdHlsZSkpLFllLmNlbGxEYXRlcyYmbGEmJiJuIj09Q24udCYmQS5pc19kYXRl'@; put 'KEEuX3RhYmxlW3JyXSkmJihDbi50PSJkIixDbi52PW9uKENuLnYpKX12YXIgWXM7WWUubm9kaW0mJihZcz1Wcyh1ci5yKSxldC5zLnI+WXMuciYmKGV0LnMucj1Zcy5yKSxldC5lLnI8WXMuciYmKGV0LmUucj1Zcy5yKSksWWUuY2FsbGJhY2s/KFlzPVZzKHVyLnIpLHFhLnJvd1tZcy5jXT1D'@; put 'bik6anI/KFZlWyhZcz1Wcyh1ci5yKSkucl18fChWZVtZcy5yXT1bXSksVmVbWXMucl1bWXMuY109Q24pOlZlW3VyLnJdPUNufVllLmNhbGxiYWNrJiZZZS5jYWxsYmFjayhxYSl9fX1DaSYmIVllLmNhbGxiYWNrJiZtOCgwLFR0KSx3ci5sZW5ndGg+MCYmKFZlWyIhcm93cyJdPXdyKX19KCks'@; put 'eTg9SHIoIndvcmtzaGVldCIsbnVsbCx7eG1sbnM6R2kubWFpblswXSwieG1sbnM6ciI6R2kuciwieG1sbnM6eDE0YWMiOiJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMDkvOS9hYyIsInhtbG5zOm1jIjoiaHR0cDovL3NjaGVtYXMub3Blbnht'@; put 'bGZvcm1hdHMub3JnL21hcmt1cC1jb21wYXRpYmlsaXR5LzIwMDYiLCJtYzpJZ25vcmFibGUiOiJ4MTRhYyJ9KTtmdW5jdGlvbiB6RChTLE8sayxLKXt2YXIgbWUsZWU9W0RpLHk4XSxwZT0iIixiZT1rLlNoZWV0c1trLlNoZWV0TmFtZXNbU11dO251bGw9PWJlJiYoYmU9e30pO3ZhciBQZT1i'@; put 'ZVsiIXJlZiJdfHwiQTEiLFZlPXNzKFBlKTtpZihWZS5lLmM+MTYzODN8fFZlLmUucj4xMDQ4NTc1KXtpZihPLldURil0aHJvdyBuZXcgRXJyb3IoIlJhbmdlICIrUGUrIiBleGNlZWRzIGZvcm1hdCBsaW1pdCBBMTpYRkQxMDQ4NTc2Iik7VmUuZS5jPU1hdGgubWluKFZlLmUuYywxNjM4Myks'@; put 'VmUuZS5yPU1hdGgubWluKFZlLmUuYywxMDQ4NTc1KSxQZT1yYShWZSl9S3x8KEs9e30pLGJlWyIhY29tbWVudHMiXT1bXTt2YXIgWWU9W10sZXQ9YmVbIiFwcmludCJdO2lmKGZ1bmN0aW9uIGtEKFMsTyxrLEssZWUpe3ZhciBvZT0hMSxtZT17fSxwZT1udWxsO2lmKCJ4bHN4IiE9PUsuYm9v'@; put 'a1R5cGUmJk8udmJhcmF3KXt2YXIgYmU9Ty5TaGVldE5hbWVzW2tdO3RyeXtPLldvcmtib29rJiYoYmU9Ty5Xb3JrYm9vay5TaGVldHNba10uQ29kZU5hbWV8fGJlKX1jYXRjaHt9b2U9ITAsbWUuY29kZU5hbWU9UHIoYmUpfVMmJlNbIiFjb25kZm10Il0mJihtZS5lbmFibGVGb3JtYXRDb25k'@; put 'aXRpb25zQ2FsY3VsYXRpb249IjEiKSxTJiZTWyIhdGFiY29sb3IiXSYmKHBlPShwZXx8IiIpKyc8dGFiQ29sb3IgcmdiPSJGRicrTDAoU1siIXRhYmNvbG9yIl0ucmdiKSsnIi8+Jyk7dmFyIFBlPSExLFZlPXt9O2lmKCgoKFN8fHt9KVsiIXByaW50Il18fHt9KS5wcm9wc3x8e30pLmZpdCYm'@; put 'KFBlPSEwLFZlLmZpdFRvUGFnZT0xKSxQZSYmKHBlPShwZXx8IiIpK0hyKCJwYWdlU2V0VXBQciIsbnVsbCxWZSkpLFMmJlNbIiFvdXRsaW5lIl0pe3ZhciBZZT17c3VtbWFyeUJlbG93OjEsc3VtbWFyeVJpZ2h0OjF9O1NbIiFvdXRsaW5lIl0uYWJvdmUmJihZZS5zdW1tYXJ5QmVsb3c9MCks'@; put 'U1siIW91dGxpbmUiXS5sZWZ0JiYoWWUuc3VtbWFyeVJpZ2h0PTApLHBlPShwZXx8IiIpK0hyKCJvdXRsaW5lUHIiLG51bGwsWWUpfSFvZSYmIXBlfHwoZWVbZWUubGVuZ3RoXT1Icigic2hlZXRQciIscGUsbWUpKX0oYmUsayxTLE8sZWUpLGVlW2VlLmxlbmd0aF09SHIoImRpbWVuc2lvbiIs'@; put 'bnVsbCx7cmVmOlBlfSksZWVbZWUubGVuZ3RoXT1mdW5jdGlvbiBnOChTLE8sayxLKXt2YXIgZWU9e3dvcmtib29rVmlld0lkOiIwIn07aWYoKCgoS3x8e30pLldvcmtib29rfHx7fSkuVmlld3N8fFtdKS5sZW5ndGgpe3ZhciBvZT1LLldvcmtib29rLlZpZXdzLG1lPW9lW2tdfHxvZVswXTtl'@; put 'ZS5yaWdodFRvTGVmdD1tZS5SVEw/IjEiOiIwIixtZS56b29tJiYoZWUuem9vbVNjYWxlPW1lLnpvb20pLG51bGwhPW1lLmdyaWQmJihlZS5zaG93R3JpZExpbmVzPW1lLmdyaWQpLG1lLnZpZXcmJihlZS52aWV3PW1lLnZpZXcpfW51bGwhPVNbIiFncmlkbGluZXMiXSYmKGVlLnNob3dHcmlk'@; put 'TGluZXM9ISFTWyIhZ3JpZGxpbmVzIl0pO3ZhciBwZT0iIixiZT17cjowLGM6MH07aWYoU1siIXNlbCJdKXtpZighKGJlPVNbIiFzZWwiXS5jZWxsKSl7aWYoIVNbIiFzZWwiXS5yYW5nZSl0aHJvdyBuZXcgRXJyb3IoIk11c3Qgc3BlY2lmeSBhIHNlbGVjdGlvbiBjZWxsIG9yIHJhbmdlIik7'@; put 'YmU9U28oU1siIXNlbCJdLnJhbmdlLnJlcGxhY2UoL1xzLiokLywiIikpLnN9InN0cmluZyI9PXR5cGVvZiBiZSYmKGJlPVZzKGJlKSl9dmFyIFZlPVNbIiFmcmVlemUiXT8ic3RyaW5nIj09dHlwZW9mIFNbIiFmcmVlemUiXT9WcyhTWyIhZnJlZXplIl0pOlNbIiFmcmVlemUiXTp7YzowLHI6'@; put 'MH07aWYoU1siIWZyZWV6ZSJdKXt2YXIgWWU9cWkoVmUpLGV0PXtzdGF0ZToiZnJvemVuIix4U3BsaXQ6VmUuYyx5U3BsaXQ6VmUucix0b3BMZWZ0Q2VsbDpZZX07U1siIXNlbCJdJiYoZXQuYWN0aXZlUGFuZT0oYmUucj49VmUuciYmVmUucj4wPyJib3R0b20iOiJ0b3AiKSsoYmUuYz49VmUu'@; put 'YyYmVmUuYz4wPyJSaWdodCI6IkxlZnQiKSkscGU9SHIoInBhbmUiLG51bGwsZXQpfWlmKFNbIiFzZWwiXSl7dmFyIGN0PXthY3RpdmVDZWxsOiJzdHJpbmciPT10eXBlb2YgYmU/YmU6cWkoYmUpfTtjdC5zcXJlZj1TWyIhc2VsIl0ucmFuZ2U/U1siIXNlbCJdLnJhbmdlOmN0LmFjdGl2ZUNl'@; put 'bGwrIjoiK2N0LmFjdGl2ZUNlbGwscGUrPUhyKCJzZWxlY3Rpb24iLG51bGwsY3QpLFNbIiFmcmVlemUiXSYmKFZlLmM+MCYmKGN0LnBhbmU9InRvcFJpZ2h0IixwZSs9SHIoInNlbGVjdGlvbiIsbnVsbCxjdCkpLFZlLnI+MCYmKGN0LnBhbmU9ImJvdHRvbUxlZnQiLHBlKz1Icigic2VsZWN0'@; put 'aW9uIixudWxsLGN0KSksVmUuYz4wJiZWZS5yPjAmJihjdC5wYW5lPSJib3R0b21SaWdodCIscGUrPUhyKCJzZWxlY3Rpb24iLG51bGwsY3QpKSl9cmV0dXJuIEhyKCJzaGVldFZpZXdzIixIcigic2hlZXRWaWV3IixwZXx8bnVsbCxlZSkse30pfShiZSwwLFMsayksTy5zaGVldEZvcm1hdCl7'@; put 'dmFyIGN0PXtkZWZhdWx0Um93SGVpZ2h0Ok8uc2hlZXRGb3JtYXQuZGVmYXVsdFJvd0hlaWdodHx8IjE2IixiYXNlQ29sV2lkdGg6Ty5zaGVldEZvcm1hdC5iYXNlQ29sV2lkdGh8fCIxMCJ9O251bGwhPU8uc2hlZXRGb3JtYXQub3V0bGluZUxldmVsUm93JiYoY3Qub3V0bGluZUxldmVsUm93'@; put 'PU8uc2hlZXRGb3JtYXQub3V0bGluZUxldmVsUm93KSxlZVtlZS5sZW5ndGhdPUhyKCJzaGVldEZvcm1hdFByIixudWxsLGN0KX1lbHNlIGlmKGJlWyIhc2hlZXRGb3JtYXQiXSl7dmFyIFR0PXt9LGl0PSExO2JlWyIhc2hlZXRGb3JtYXQiXS5yb3cmJihiZVsiIXNoZWV0Rm9ybWF0Il0ucm93'@; put 'LmhwdD8oaXQ9ITAsVHQuZGVmYXVsdFJvd0hlaWdodD1iZVsiIXNoZWV0Rm9ybWF0Il0ucm93LmhwdCxUdC5jdXN0b21IZWlnaHQ9MSk6YmVbIiFzaGVldEZvcm1hdCJdLnJvdy5ocHg/KGl0PSEwLFR0LmRlZmF1bHRSb3dIZWlnaHQ9WjMoYmVbIiFzaGVldEZvcm1hdCJdLnJvdy5ocHgpLFR0'@; put 'LmN1c3RvbUhlaWdodD0xKTooMD09PWJlWyIhc2hlZXRGb3JtYXQiXS5yb3cuaHB0fHwwPT09YmVbIiFzaGVldEZvcm1hdCJdLnJvdy5ocHh8fGJlWyIhc2hlZXRGb3JtYXQiXS5yb3cuaGlkZGVuKSYmKGl0PSEwLFR0LmRlZmF1bHRSb3dIZWlnaHQ9VHQuZGVmYXVsdFJvd0hlaWdodHx8MTYs'@; put 'VHQuY3VzdG9tSGVpZ2h0PTEsVHQuemVyb0hlaWdodD0xKSxiZVsiIXNoZWV0Rm9ybWF0Il0uZHlEZXNjZW50JiYoVHRbIngxNGFjOmR5RGVzY2VudCJdPWJlWyIhc2hlZXRGb3JtYXQiXS5keURlc2NlbnQpKSxiZVsiIXNoZWV0Rm9ybWF0Il0uY29sJiYoYmVbIiFzaGVldEZvcm1hdCJdLmNv'@; put 'bC53Y2h8fEowKGJlWyIhc2hlZXRGb3JtYXQiXS5jb2wpLFR0LmRlZmF1bHRDb2xXaWR0aD1iZVsiIXNoZWV0Rm9ybWF0Il0uY29sLndjaCs1L3hjfHwwLGl0PSEwKSxudWxsPT1UdC5kZWZhdWx0Um93SGVpZ2h0JiYoVHQuZGVmYXVsdFJvd0hlaWdodD0xNiksbnVsbD09VHQuZGVmYXVsdENv'@; put 'bFdpZHRoJiYoVHQuZGVmYXVsdENvbFdpZHRoPTEwKSxUdC5vdXRsaW5lTGV2ZWxSb3c9VHQub3V0bGluZUxldmVsUm93fHw3LGl0JiYoZWVbZWUubGVuZ3RoXT1Icigic2hlZXRGb3JtYXRQciIsbnVsbCxUdCkpfW51bGwhPWJlWyIhY29scyJdJiZiZVsiIWNvbHMiXS5sZW5ndGg+MCYmKGVl'@; put 'W2VlLmxlbmd0aF09ZnVuY3Rpb24geWooUyxPLGspe2Zvcih2YXIgZWUsSz1bIjxjb2xzPiJdLG9lPTA7b2UhPU8ubGVuZ3RoOysrb2UpaWYoZWU9T1tvZV0pe2lmKGVlLmF1dG8mJmRTKFMsZWUsb2UpLGVlLnN8fGVlLnope3ZhciBtZT17dDoieiJ9O251bGwhPWVlLnMmJihtZS5zPWVlLnMp'@; put 'LG51bGwhPWVlLnomJihtZS56PWVlLnopLGVlLnN0eWxlPXMwKGsuY2VsbFhmcyxrLmNlbGxTdHlsZVhmcyxtZSxrKX1LW0subGVuZ3RoXT1IcigiY29sIixudWxsLHU4KG9lLGVlKSl9cmV0dXJuIEtbSy5sZW5ndGhdPSI8L2NvbHM+IixLLmpvaW4oIiIpfShiZSxiZVsiIWNvbHMiXSxPKSks'@; put 'ZWVbbWU9ZWUubGVuZ3RoXT0iPHNoZWV0RGF0YS8+IixiZVsiIWxpbmtzIl09W10sbnVsbCE9YmVbIiFyZWYiXSYmKHBlPWZ1bmN0aW9uIGtTKFMsTyxrLEspe3ZhciBiZSxidCxlZT1bXSxvZT1bXSxtZT1zcyhTWyIhcmVmIl0pLHBlPSIiLFBlPSIiLFZlPVtdLFllPTAsZXQ9MCxjdD1TWyIh'@; put 'cm93cyJdLFR0PUFycmF5LmlzQXJyYXkoUyksaXQ9e3I6UGV9LEJ0PS0xO2ZvcihldD1tZS5zLmM7ZXQ8PW1lLmUuYzsrK2V0KVZlW2V0XT1rYShldCk7Zm9yKFllPW1lLnMucjtZZTw9bWUuZS5yOysrWWUpe2ZvcihvZT1bXSxQZT1qaShZZSksZXQ9bWUucy5jO2V0PD1tZS5lLmM7KytldCl7'@; put 'YmU9VmVbZXRdK1BlO3ZhciBEdD1UdD8oU1tZZV18fFtdKVtldF06U1tiZV07dm9pZCAwIT09RHQmJm51bGwhPShwZT1CNShEdCxiZSxTLE8pKSYmb2UucHVzaChwZSl9KG9lLmxlbmd0aD4wfHxjdCYmY3RbWWVdKSYmKGl0PXtyOlBlfSxjdCYmY3RbWWVdJiYoKGJ0PWN0W1llXSkuaGlkZGVu'@; put 'JiYoaXQuaGlkZGVuPTEpLEJ0PS0xLGJ0LmhweD9CdD1aMyhidC5ocHgpOmJ0LmhwdCYmKEJ0PWJ0LmhwdCksQnQ+LTEmJihpdC5odD1CdCxpdC5jdXN0b21IZWlnaHQ9MSksYnQubGV2ZWwmJihpdC5vdXRsaW5lTGV2ZWw9YnQubGV2ZWwpLGJ0LmR5RGVzY2VudCYmKGl0WyJ4MTRhYzpkeURl'@; put 'c2NlbnQiXT1idC5keURlc2NlbnQpLGJ0LnMmJihpdC5zPXMwKE8uY2VsbFhmcyxPLmNlbGxTdHlsZVhmcyx7dDoieiIsczpidC5zfSxPKSxpdC5jdXN0b21Gb3JtYXQ9MSkpLGVlW2VlLmxlbmd0aF09SHIoInJvdyIsb2Uuam9pbigiIiksaXQpKX1pZihjdClmb3IoO1llPGN0Lmxlbmd0aDsr'@; put 'K1llKWN0JiZjdFtZZV0mJihpdD17cjpZZSsxfSwoYnQ9Y3RbWWVdKS5oaWRkZW4mJihpdC5oaWRkZW49MSksQnQ9LTEsYnQuaHB4P0J0PVozKGJ0LmhweCk6YnQuaHB0JiYoQnQ9YnQuaHB0KSxCdD4tMSYmKGl0Lmh0PUJ0LGl0LmN1c3RvbUhlaWdodD0xKSxidC5sZXZlbCYmKGl0Lm91dGxp'@; put 'bmVMZXZlbD1idC5sZXZlbCksZWVbZWUubGVuZ3RoXT1Icigicm93IiwiIixpdCkpO3JldHVybiBlZS5qb2luKCIiKX0oYmUsTykscGUubGVuZ3RoPjAmJihlZVtlZS5sZW5ndGhdPXBlKSksZWUubGVuZ3RoPm1lKzEmJihlZVtlZS5sZW5ndGhdPSI8L3NoZWV0RGF0YT4iLGVlW21lXT1lZVtt'@; put 'ZV0ucmVwbGFjZSgiLz4iLCI+IikpLGJlWyIhcHJvdGVjdCJdJiYoZWVbZWUubGVuZ3RoXT1mdW5jdGlvbiBnaihTKXt2YXIgTz17c2hlZXQ6MX07cmV0dXJuIFNTLmZvckVhY2goZnVuY3Rpb24oayl7bnVsbCE9U1trXSYmU1trXSYmKE9ba109IjEiKX0pLEZELmZvckVhY2goZnVuY3Rpb24o'@; put 'ayl7bnVsbCE9U1trXSYmIVNba10mJihPW2tdPSIwIil9KSxTLnBhc3N3b3JkP08ucGFzc3dvcmQ9THYoUy5wYXNzd29yZCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk6Uy5lbmNyeXB0aW9uJiYoTy5hbGdvcml0aG1OYW1lPVMuZW5jcnlwdGlvbi5hbGdvLE8uaGFzaFZhbHVlPVMuZW5j'@; put 'cnlwdGlvbi5oYXNoLE8uc2FsdFZhbHVlPVMuZW5jcnlwdGlvbi5zYWx0LE8uc3BpbkNvdW50PVMuZW5jcnlwdGlvbi5zcGluKSxIcigic2hlZXRQcm90ZWN0aW9uIixudWxsLE8pfShiZVsiIXByb3RlY3QiXSkpLG51bGwhPWJlWyIhYXV0b2ZpbHRlciJdJiYoZWVbZWUubGVuZ3RoXT1mdW5j'@; put 'dGlvbiBfaihTLE8sayxLKXt2YXIgZWU9InN0cmluZyI9PXR5cGVvZiBTLnJlZj9TLnJlZjpyYShTLnJlZik7ay5Xb3JrYm9va3x8KGsuV29ya2Jvb2s9e1NoZWV0czpbXX0pLGsuV29ya2Jvb2suTmFtZXN8fChrLldvcmtib29rLk5hbWVzPVtdKTt2YXIgb2U9ay5Xb3JrYm9vay5OYW1lcyxt'@; put 'ZT1TbyhlZSk7bWUucy5yPT1tZS5lLnImJihtZS5lLnI9U28oT1siIXJlZiJdKS5lLnIsZWU9cmEobWUpKTtmb3IodmFyIHBlPTA7cGU8b2UubGVuZ3RoOysrcGUpe3ZhciBiZT1vZVtwZV07aWYoIl94bG5tLl9GaWx0ZXJEYXRhYmFzZSI9PWJlLk5hbWUmJmJlLlNoZWV0PT1LKXtiZS5SZWY9'@; put 'IiciK2suU2hlZXROYW1lc1tLXSsiJyEiK2VlO2JyZWFrfX1yZXR1cm4gcGU9PW9lLmxlbmd0aCYmb2UucHVzaCh7TmFtZToiX3hsbm0uX0ZpbHRlckRhdGFiYXNlIixTaGVldDpLLFJlZjoiJyIray5TaGVldE5hbWVzW0tdKyInISIrZWV9KSxIcigiYXV0b0ZpbHRlciIsbnVsbCx7cmVmOmVl'@; put 'fSl9KGJlWyIhYXV0b2ZpbHRlciJdLGJlLGssUykpLG51bGwhPWJlWyIhbWVyZ2VzIl0mJmJlWyIhbWVyZ2VzIl0ubGVuZ3RoPjAmJihlZVtlZS5sZW5ndGhdPWZ1bmN0aW9uIF9TKFMpe2lmKDA9PT1TLmxlbmd0aClyZXR1cm4iIjtmb3IodmFyIE89JzxtZXJnZUNlbGxzIGNvdW50PSInK1Mu'@; put 'bGVuZ3RoKyciPicsaz0wO2shPVMubGVuZ3RoOysraylPKz0nPG1lcmdlQ2VsbCByZWY9IicrcmEoU1trXSkrJyIvPic7cmV0dXJuIE8rIjwvbWVyZ2VDZWxscz4ifShiZVsiIW1lcmdlcyJdKSksYmVbIiFjb25kZm10Il0mJihlZVtlZS5sZW5ndGhdPWZ1bmN0aW9uIHhqKFMsTyl7cmV0dXJu'@; put 'IFMubWFwKGZ1bmN0aW9uKGssSyl7cmV0dXJuIGZ1bmN0aW9uIE1qKFMsTyxrKXt2YXIgSz1TLnM/ZlMoay5EWEYsUy5zKTotMSxlZT0ic3RyaW5nIj09dHlwZW9mIFMucmVmP1MucmVmOnJhKFMucmVmKSxtZT1zcyhlZS5yZXBsYWNlKC9ccy4qJC8sIiIpKS5zO21lLnI8MCYmKG1lLnI9MCks'@; put 'bWUuYzwwJiYobWUuYz0wKTt2YXIgcGU9IiIsYmU9e3ByaW9yaXR5Ok8rMX07c3dpdGNoKEs+LTEmJihiZS5keGZJZD1LKSxTLnQpe2Nhc2UidW5pcXVlIjpiZS50eXBlPSJ1bmlxdWVWYWx1ZXMiO2JyZWFrO2Nhc2UiZHVwIjpiZS50eXBlPSJkdXBsaWNhdGVWYWx1ZXMiO2JyZWFrO2Nhc2Ui'@; put 'YmxhbmsiOmJlLnR5cGU9KFMudj8iYyI6Im5vdEMiKSsib250YWluc0JsYW5rcyIscGU9Ijxmb3JtdWxhPkxFTihUUklNKCIrcWkobWUpKyIpKSIrKFMudj8iPSI6IiZndDsiKSsiMDwvZm9ybXVsYT4iO2JyZWFrO2Nhc2UiZXJyb3IiOmJlLnR5cGU9KFMudj8iYyI6Im5vdEMiKSsib250YWlu'@; put 'c0Vycm9ycyI7YnJlYWs7Y2FzZSJmb3JtdWxhIjpiZS50eXBlPSJleHByZXNzaW9uIixwZT1IcigiZm9ybXVsYSIsUHIoUy5mKSx7fSk7YnJlYWs7Y2FzZSJkYXRlIjpiZS50eXBlPSJ0aW1lUGVyaW9kIixiZS50aW1lUGVyaW9kPVNqW1Mub3BdO2JyZWFrO2Nhc2UidGV4dCI6c3dpdGNoKGJl'@; put 'LnR5cGU9YmUub3BlcmF0b3I9ZjhbUy5vcF0sYmUudGV4dD1TLnYsUy5vcCl7Y2FzZSJJTiI6cGU9Jzxmb3JtdWxhPk5PVChJU0VSUk9SKFNFQVJDSCgiJytQcihTLnYpKyciLCcrcWkobWUpKyIpKSk8L2Zvcm11bGE+IjticmVhaztjYXNlIk9UIjpwZT0nPGZvcm11bGE+SVNFUlJPUihTRUFS'@; put 'Q0goIicrUHIoUy52KSsnIiwnK3FpKG1lKSsiKSk8L2Zvcm11bGE+IjticmVhaztjYXNlIlNUIjpwZT0iPGZvcm11bGE+TEVGVCgiK3FpKG1lKSsnLExFTigiJytQcihTLnYpKyciKSk9IicrUHIoUy52KSsnIjwvZm9ybXVsYT4nO2JyZWFrO2Nhc2UiTkQiOnBlPSI8Zm9ybXVsYT5SSUdIVCgi'@; put 'K3FpKG1lKSsnLExFTigiJytQcihTLnYpKyciKSk9IicrUHIoUy52KSsnIjwvZm9ybXVsYT4nfWJyZWFrO2Nhc2UidmFsIjpiZS50eXBlPSJjZWxsSXMiLGJlLm9wZXJhdG9yPXN5W1Mub3BdLHBlPW51bGwhPVMubWluP0hyKCJmb3JtdWxhIixQcihTdHJpbmcoUy5taW4pKSx7fSkrSHIoImZv'@; put 'cm11bGEiLFByKFN0cmluZyhTLm1heCkpLHt9KTpIcigiZm9ybXVsYSIsUHIobnVsbCE9Uy52P1N0cmluZygic3RyaW5nIj09dHlwZW9mIFMudj8nIicrUy52LnJlcGxhY2UoLyIvZywnIiInKSsnIic6Uy52KTpTLmYpLHt9KTticmVhaztjYXNlImF2ZyI6c3dpdGNoKGJlLnR5cGU9ImFib3Zl'@; put 'QXZlcmFnZSIsYmUuYWJvdmVBdmVyYWdlPSJMIj09Uy5vcC5jaGFyQXQoMCk/IjAiOiIxIixTLm9wLmNoYXJBdCgxKSl7Y2FzZSJUIjpiZS5lcXVhbEF2ZXJhZ2U9IjAiO2JyZWFrO2Nhc2UiRSI6YmUuZXF1YWxBdmVyYWdlPSIxIjticmVhaztkZWZhdWx0OmJlLnN0ZERldj1TLm9wLmNoYXJB'@; put 'dCgxKX1icmVhaztjYXNlInJhbmsiOmJlLnR5cGU9InRvcDEwIixiZS5ib3R0b209IkIiPT1TLm9wLmNoYXJBdCgwKT8iMSI6IjAiLGJlLnBlcmNlbnQ9IlAiPT1TLm9wLmNoYXJBdCgxKT8iMSI6IjAiLGJlLnJhbms9Uy52O2JyZWFrO2Nhc2UiaWNvbiI6YmUudHlwZT0iaWNvblNldCI7dmFy'@; put 'IFBlPXtpY29uU2V0OlMudixwZXJjZW50OlMucGN0PyJ0cnVlIjoiZmFsc2UifTtTLnJldiYmKFBlLnJldmVyc2U9InRydWUiKSxTLmhpZGRlbiYmKFBlLnNob3dWYWx1ZT0iZmFsc2UiKSxwZT1IcigiaWNvblNldCIsUy50aHJlc2gubWFwKFc0KS5qb2luKCIiKSxQZSk7YnJlYWs7Y2FzZSJz'@; put 'Y2FsZSI6YmUudHlwZT0iY29sb3JTY2FsZSIscGUrPVc0KFMuY21pbiksUy5jbWlkJiYocGUrPVc0KFMuY21pZCkpLHBlKz1XNChTLmNtYXgpLHBlKz1tZChTLmNtaW4uY29sb3IpLFMuY21pZCYmKHBlKz1tZChTLmNtaWQuY29sb3IpKSxwZT1IcigiY29sb3JTY2FsZSIscGUrPW1kKFMuY21h'@; put 'eC5jb2xvcikse30pO2JyZWFrO2Nhc2UiYmFyIjpiZS50eXBlPSJkYXRhQmFyIixwZSs9VzQoUy5jbWluKSxwZSs9VzQoUy5jbWF4KSxwZT1IcigiZGF0YUJhciIscGUrPW1kKFMuY29sb3IpLHt9KTticmVhaztkZWZhdWx0OnRocm93IGNvbnNvbGUubG9nKFMpLCJDRiBtaXNzaW5nIHR5cGUg'@; put 'IitTLnR9cmV0dXJuJzxjb25kaXRpb25hbEZvcm1hdHRpbmcgc3FyZWY9IicrZWUrJyI+JytIcigiY2ZSdWxlIiwiIj09cGU/bnVsbDpwZSxiZSkrIjwvY29uZGl0aW9uYWxGb3JtYXR0aW5nPiJ9KGssSyxPKX0pLmpvaW4oIiIpfShiZVsiIWNvbmRmbXQiXSxPKSksYmVbIiF2YWxpZGF0aW9u'@; put 'cyJdJiYoZWVbZWUubGVuZ3RoXT1mdW5jdGlvbiBCRChTKXtpZighU3x8MD09Uy5sZW5ndGgpcmV0dXJuIiI7Zm9yKHZhciBPPVtdLGs9MCxLPTA7SzxTLmxlbmd0aDsrK0spe3ZhciBlZT1TW0tdLG9lPWRoW2VlLnRdO2lmKGVlLnJlZiYmKCJzdHJpbmciIT10eXBlb2YgZWUucmVmfHwtMSE9'@; put 'ZWUucmVmLmluZGV4T2YoIiAiKXx8KGVlLnJlZj1zcyhlZS5yZWYpLGVlLnJlZi5zJiYhKGVlLnJlZi5zLmM8MCkpKSl7KytrO3ZhciBtZT17dHlwZTpvZSxhbGxvd0JsYW5rOisoMCE9ZWUuYmxhbmspLHNob3dJbnB1dE1lc3NhZ2U6KygwIT1lZS5pbnB1dCksc2hvd0Vycm9yTWVzc2FnZTor'@; put 'KDAhPWVlLmVycm9yKSxzcXJlZjoic3RyaW5nIj09dHlwZW9mIGVlLnJlZj9lZS5yZWY6cmEoZWUucmVmKX07aWYoZWUuaW5wdXQmJihlZS5pbnB1dC50aXRsZSYmKG1lLnByb21wdFRpdGxlPVlpKGVlLmlucHV0LnRpdGxlKSksZWUuaW5wdXQubWVzc2FnZSYmKG1lLnByb21wdD1ZaShlZS5p'@; put 'bnB1dC5tZXNzYWdlKSkpLGVlLmVycm9yJiYoZWUuZXJyb3IudGl0bGUmJihtZS5lcnJvclRpdGxlPVlpKGVlLmVycm9yLnRpdGxlKSksZWUuZXJyb3IubWVzc2FnZSYmKG1lLmVycm9yPVlpKGVlLmVycm9yLm1lc3NhZ2UpKSxlZS5lcnJvci5zdHlsZSYmKG1lLmVycm9yU3R5bGU9ZWUuZXJy'@; put 'b3Iuc3R5bGUpKSwhb2UpdGhyb3cgbmV3IEVycm9yKCJCYWQgdmFsaWRhdGlvbjogdW5yZWNvZ25pemVkIHR5cGUgIitlZS50KTt2YXIgcGU9IiI7c3dpdGNoKGVlLnQpe2Nhc2UiQW55IjpicmVhaztjYXNlIkxpc3QiOmNhc2UiQ3VzdG9tIjppZihlZS5sKXtpZihlZS5sLmpvaW4oIiwiKS5s'@; put 'ZW5ndGg+MjUwKXRocm93IG5ldyBFcnJvcigiRFYgbGVuZ3RoID4gMjUwIHRyaWdnZXJzIGNvcnJ1cHRpb24gZXJyb3JzIGluIEV4Y2VsLiAgVXNlIGEgbG9va3VwIHRhYmxlIik7cGU9Jzxmb3JtdWxhMT4iJytQcihlZS5sLmpvaW4oIiwiKSkrJyI8L2Zvcm11bGExPid9ZWxzZSBwZT0iPGZv'@; put 'cm11bGExPiIrUHIoZWUuZikrIjwvZm9ybXVsYTE+IjticmVhaztjYXNlIkRhdGUiOmNhc2UiVGltZSI6Y2FzZSJEZWNpbWFsIjpjYXNlIkxlbmd0aCI6Y2FzZSJXaG9sZSI6aWYoIXN5W2VlLm9wXSl0aHJvdyBuZXcgRXJyb3IoIkJhZCBEYXRhIFZhbGlkYXRpb24gdHlwZSAiK2VlLm9wKyIg'@; put 'Zm9yICIrZWUudCk7aWYobWUub3BlcmF0b3I9c3lbZWUub3BdLG51bGwhPWVlLnYpcGU9Ijxmb3JtdWxhMT4iK1ByKFN0cmluZyhlZS52IGluc3RhbmNlb2YgRGF0ZT9KZShlZS52KTplZS52KSkrIjwvZm9ybXVsYTE+IjtlbHNle2lmKG51bGw9PWVlLm1pbnx8bnVsbD09ZWUubWF4KXRocm93'@; put 'IG5ldyBFcnJvcigiQmFkIERhdGEgVmFsaWRhdGlvbjogYHZgIG9yIGBtaW5gK2BtYXhgIHJlcXVpcmVkIGZvciBUeXBlICIrZWUudCk7cGU9Ijxmb3JtdWxhMT4iK1ByKFN0cmluZyhlZS5taW4gaW5zdGFuY2VvZiBEYXRlP0plKGVlLm1pbik6ZWUubWluKSkrIjwvZm9ybXVsYTE+PGZvcm11'@; put 'bGEyPiIrUHIoU3RyaW5nKGVlLm1heCBpbnN0YW5jZW9mIERhdGU/SmUoZWUubWF4KTplZS5tYXgpKSsiPC9mb3JtdWxhMj4ifX1PLnB1c2goSHIoImRhdGFWYWxpZGF0aW9uIixwZXx8bnVsbCxtZSkpfX1yZXR1cm4gaz4wPyc8ZGF0YVZhbGlkYXRpb25zIGNvdW50PSInK2srJyI+JytPLmpv'@; put 'aW4oIiIpKyI8L2RhdGFWYWxpZGF0aW9ucz4iOiIifShiZVsiIXZhbGlkYXRpb25zIl0pKTt2YXIgQnQsYnQ9LTEsRHQ9LTE7aWYoYmVbIiFsaW5rcyJdLmxlbmd0aD4wJiYoZWVbZWUubGVuZ3RoXT0iPGh5cGVybGlua3M+IixiZVsiIWxpbmtzIl0uZm9yRWFjaChmdW5jdGlvbihDbil7Q25b'@; put 'MV0uVGFyZ2V0JiYoQnQ9e3JlZjpDblswXX0sIiMiIT1DblsxXS5UYXJnZXQuY2hhckF0KDApJiYoRHQ9RXIoSywtMSxQcihDblsxXS5UYXJnZXQpLnJlcGxhY2UoLyMuKiQvLCIiKSxYYS5ITElOSyksQnRbInI6aWQiXT0icklkIitEdCksKGJ0PUNuWzFdLlRhcmdldC5pbmRleE9mKCIjIikp'@; put 'Pi0xJiYoQnQubG9jYXRpb249UHIoQ25bMV0uVGFyZ2V0LnNsaWNlKGJ0KzEpKSksQ25bMV0uVG9vbHRpcCYmKEJ0LnRvb2x0aXA9UHIoQ25bMV0uVG9vbHRpcCkpLGVlW2VlLmxlbmd0aF09SHIoImh5cGVybGluayIsbnVsbCxCdCkpfSksZWVbZWUubGVuZ3RoXT0iPC9oeXBlcmxpbmtzPiIp'@; put 'LGRlbGV0ZSBiZVsiIWxpbmtzIl0sZXQpe3ZhciBPdD1mdW5jdGlvbiBoaihTKXtpZihTLnByb3BzKXt2YXIgTz17fSxrPVMucHJvcHM7cmV0dXJuIGsuZ3JpZGxpbmVzJiYoTy5ncmlkTGluZXM9Ty5ncmlkTGluZXNTZXQ9MSksay5oZWFkaW5ncyYmKE8uaGVhZGluZ3M9MSksay5jZW50ZXJY'@; put 'JiYoTy5ob3Jpem9udGFsQ2VudGVyZWQ9MSksay5jZW50ZXJZJiYoTy52ZXJ0aWNhbENlbnRlcmVkPTEpLEhyKCJwcmludE9wdGlvbnMiLG51bGwsTyl9cmV0dXJuIiJ9KGV0KTtPdC5sZW5ndGgmJihlZVtlZS5sZW5ndGhdPU90KX1pZigobnVsbCE9YmVbIiFtYXJnaW5zIl18fGV0JiZldC5t'@; put 'YXJnaW5zKSYmKGVlW2VlLmxlbmd0aF09ZnVuY3Rpb24gdmooUyl7cmV0dXJuIEozKFMpLEhyKCJwYWdlTWFyZ2lucyIsbnVsbCxTKX0oYmVbIiFtYXJnaW5zIl18fGV0Lm1hcmdpbnMpKSxldCl7dmFyIEt0PWZ1bmN0aW9uIFBEKFMpe2lmKFMucHJvcHMpe3ZhciBPPXt9LGs9Uy5wcm9wcztp'@; put 'ZihrLm9yaWVudGF0aW9uJiYoTy5vcmllbnRhdGlvbj1rLm9yaWVudGF0aW9uKSxrLnNjYWxlJiYoTy5zY2FsZT1rLnNjYWxlKSxrLmZpdCYmKG51bGwhPWsuZml0LmhlaWdodCYmKE8uZml0VG9IZWlnaHQ9ay5maXQuaGVpZ2h0KSxudWxsIT1rLmZpdC53aWR0aCYmKE8uZml0VG9XaWR0aD1r'@; put 'LmZpdC53aWR0aCkpLGsuZHBpJiYoTy5ob3Jpem9udGFsRHBpPU8udmVydGljYWxEcGk9ay5kcGkpLG51bGwhPWsuZmlyc3QmJihPLmZpcnN0UGFnZU51bWJlcj1rLmZpcnN0LE8udXNlRmlyc3RQYWdlTnVtYmVyPTEpLGsuYncmJihPLmJsYWNrQW5kV2hpdGU9MSksay5kcmFmdCYmKE8uZHJh'@; put 'ZnQ9MSksay5jb21tZW50cyYmKE8uY2VsbENvbW1lbnRzPUREW2suY29tbWVudHNdfHwibm9uZSIpLGsuZXJyb3JzJiYoTy5lcnJvcnM9UkRbay5lcnJvcnNdfHwibm9uZSIpLGsucGFwZXIpc3dpdGNoKHR5cGVvZiBrLnBhcGVyKXtjYXNlIm51bWJlciI6Ty5wYXBlclNpemU9ay5wYXBlcjti'@; put 'cmVhaztjYXNlInN0cmluZyI6cEJbay5wYXBlcl0/Ty5wYXBlclNpemU9cEJbay5wYXBlcl06K2sucGFwZXImJihPLnBhcGVyU2l6ZT0ray5wYXBlcik7YnJlYWs7Y2FzZSJvYmplY3QiOmlmKCFrLnBhcGVyLmhlaWdodHx8IWsucGFwZXIud2lkdGgpdGhyb3ciQ3VzdG9tIFBhcGVyIFNpemUg'@; put 'bXVzdCBpbmNsdWRlIHdpZHRoIGFuZCBoZWlnaHQhIjtPLnBhcGVySGVpZ2h0PWsucGFwZXIuaGVpZ2h0LE8ucGFwZXJXaWR0aD1rLnBhcGVyLndpZHRofXJldHVyblsxLCEwLCJ0cnVlIiwib3ZlciJdLmluZGV4T2Yoay5vcmRlcik+LTEmJihPLnBhZ2VPcmRlcj0ib3ZlclRoZW5Eb3duIiks'@; put 'SHIoInBhZ2VTZXR1cCIsbnVsbCxPKX1yZXR1cm4iIn0oZXQpO0t0Lmxlbmd0aCYmKGVlW2VlLmxlbmd0aF09S3QpLEt0PWZ1bmN0aW9uIENqKFMpe3ZhciBPPVtdLGs9IiIsSz0iIixlZT0iIixvZT0iIixtZT0iIixwZT0iIixiZT0iIixQZT1lMShTLmhlYWRlcik7UGUubGVuZ3RoJiYoSz1Q'@; put 'ZVswXSxwZT1QZVsxXSxvZT1QZVsyXSk7dmFyIFZlPWUxKFMuZm9vdGVyKTtyZXR1cm4gVmUubGVuZ3RoJiYoZWU9VmVbMF0sYmU9VmVbMV0sbWU9VmVbMl0pLEsmJk8ucHVzaCgiPG9kZEhlYWRlcj4iK1ByKEspKyI8L29kZEhlYWRlcj4iKSxlZSYmTy5wdXNoKCI8b2RkRm9vdGVyPiIrUHIo'@; put 'ZWUpKyI8L29kZEZvb3Rlcj4iKSwobWUhPWVlfHxvZSE9SykmJihrKz0nIGRpZmZlcmVudE9kZEV2ZW49IjEiJyxPLnB1c2goIjxldmVuSGVhZGVyPiIrUHIob2UpKyI8L2V2ZW5IZWFkZXI+IiksTy5wdXNoKCI8ZXZlbkZvb3Rlcj4iK1ByKG1lKSsiPC9ldmVuRm9vdGVyPiIpKSwoYmUhPWVl'@; put 'fHxwZSE9SykmJihrKz0nIGRpZmZlcmVudEZpcnN0PSIxIicsTy5wdXNoKCI8Zmlyc3RIZWFkZXI+IitQcihwZSkrIjwvZmlyc3RIZWFkZXI+IiksTy5wdXNoKCI8Zmlyc3RGb290ZXI+IitQcihiZSkrIjwvZmlyc3RGb290ZXI+IikpLE8ubGVuZ3RoPyI8aGVhZGVyRm9vdGVyIitrKyI+IitP'@; put 'LmpvaW4oIiIpKyI8L2hlYWRlckZvb3Rlcj4iOiIifShldCksS3QubGVuZ3RoJiYoZWVbZWUubGVuZ3RoXT1LdCl9aWYoKG51bGwhPWJlWyIhcm93QnJlYWtzIl18fGV0JiZldC5yb3dCcmVha3MpJiYoZWVbZWUubGVuZ3RoXT1mdW5jdGlvbiBwaihTKXtpZigwPT1TLmxlbmd0aClyZXR1cm4i'@; put 'Ijtmb3IodmFyIE89Wyc8cm93QnJlYWtzIGNvdW50PSInK1MubGVuZ3RoKyciIG1hbnVhbEJyZWFrQ291bnQ9IicrUy5sZW5ndGgrJyI+J10saz0wO2s8Uy5sZW5ndGg7KytrKU8ucHVzaCgnPGJyayBpZD0iJytTW2tdLlIrJyIgbWFuPSIxIi8+Jyk7cmV0dXJuIE8uam9pbigiIikrIjwvcm93'@; put 'QnJlYWtzPiJ9KGJlWyIhcm93QnJlYWtzIl18fGV0LnJvd0JyZWFrcykpLChudWxsIT1iZVsiIWNvbEJyZWFrcyJdfHxldCYmZXQuY29sQnJlYWtzKSYmKGVlW2VlLmxlbmd0aF09ZnVuY3Rpb24gQ1MoUyl7aWYoMD09Uy5sZW5ndGgpcmV0dXJuIiI7Zm9yKHZhciBPPVsnPGNvbEJyZWFrcyBj'@; put 'b3VudD0iJytTLmxlbmd0aCsnIiBtYW51YWxCcmVha0NvdW50PSInK1MubGVuZ3RoKyciPiddLGs9MDtrPFMubGVuZ3RoOysraylPLnB1c2goJzxicmsgaWQ9IicrU1trXS5DKyciIG1hbj0iMSIvPicpO3JldHVybiBPLmpvaW4oIiIpKyI8L2NvbEJyZWFrcz4ifShiZVsiIWNvbEJyZWFrcyJd'@; put 'fHxldC5jb2xCcmVha3MpKSwoIU98fE8uaWdub3JlRUN8fG51bGw9PU8uaWdub3JlRUMpJiYoZWVbZWUubGVuZ3RoXT1WYSgiaWdub3JlZEVycm9ycyIsSHIoImlnbm9yZWRFcnJvciIsbnVsbCx7bnVtYmVyU3RvcmVkQXNUZXh0OjEsc3FyZWY6UGV9KSkpLGJlWyIhY2hhcnRzIl0mJlllLnB1'@; put 'c2guYXBwbHkoWWUsYmVbIiFjaGFydHMiXSksYmVbIiFpbWFnZXMiXSYmWWUucHVzaC5hcHBseShZZSxiZVsiIWltYWdlcyJdKSxiZVsiIXNoYXBlcyJdJiZZZS5wdXNoLmFwcGx5KFllLGJlWyIhc2hhcGVzIl0pLFllLmxlbmd0aD4wJiYoRHQ9RXIoSywtMSwiLi4vZHJhd2luZ3MvZHJhd2lu'@; put 'ZyIrKFMrMSkrIi54bWwiLFhhLkRSQVcpLGVlW2VlLmxlbmd0aF09SHIoImRyYXdpbmciLG51bGwseyJyOmlkIjoicklkIitEdH0pLGJlWyIhZHJhd2luZyJdPVllKSwoYmVbIiFjb21tZW50cyJdLmxlbmd0aD4wfHwoYmVbIiFjb250cm9scyJdfHxbXSkubGVuZ3RoPjApJiYoRHQ9RXIoSywt'@; put 'MSwiLi4vZHJhd2luZ3Mvdm1sRHJhd2luZyIrKFMrMSkrIi52bWwiLFhhLlZNTCksZWVbZWUubGVuZ3RoXT1IcigibGVnYWN5RHJhd2luZyIsbnVsbCx7InI6aWQiOiJySWQiK0R0fSksYmVbIiFsZWdhY3kiXT1EdCksYmVbIiFwcmludCJdJiZiZVsiIXByaW50Il0uaW1hZ2VzKXt2YXIgVG49'@; put 'YmVbIiFwcmludCJdLmltYWdlcyxzcj0wO1siaGVhZGVyIiwiZm9vdGVyIl0uZm9yRWFjaChmdW5jdGlvbihDbil7VG5bQ25dJiZbIm9kZCIsImV2ZW4iLCJmaXJzdCJdLmZvckVhY2goZnVuY3Rpb24odXIpe1RuW0NuXVt1cl0mJlsibGVmdCIsInJpZ2h0IiwiY2VudGVyIl0uZm9yRWFjaChm'@; put 'dW5jdGlvbihlcil7aWYoQXJyYXkuaXNBcnJheShUbltDbl1bdXJdW2VyXSkpZm9yKHZhciBqbj0wO2puPFRuW0NuXVt1cl1bZXJdLmxlbmd0aDsrK2puKVRuW0NuXVt1cl1bZXJdW2puXSYmKFRuW0NuXVt1cl1bZXJdW2puXS5fY250PXNyKyspfSl9KX0pLHNyPjAmJihEdD1FcihLLC0xLCIu'@; put 'Li9kcmF3aW5ncy92bWxEcmF3aW5nIisoUysxKSsiSEYudm1sIixYYS5WTUwpLGVlW2VlLmxlbmd0aF09SHIoImxlZ2FjeURyYXdpbmdIRiIsbnVsbCx7InI6aWQiOiJySWQiK0R0fSksYmVbIiFsZWdhY3lIRiJdPUR0KX1yZXR1cm4oYmVbIiF0YWJsZXMiXXx8W10pLmxlbmd0aD4wJiYoZWVb'@; put 'ZWUubGVuZ3RoXT0nPHRhYmxlUGFydHMgY291bnQ9IicrYmVbIiF0YWJsZXMiXS5sZW5ndGgrJyI+JyxiZVsiIXRhYmxlcyJdLmZvckVhY2goZnVuY3Rpb24oQ24sdXIpe0R0PUVyKEssLTEsIi4uL3RhYmxlcy90YWJsZSIrKFMrMSkrIl8iK3VyKyIueG1sIixYYS5UQUJMRSksZWVbZWUubGVu'@; put 'Z3RoXT0nPHRhYmxlUGFydCByOmlkPSJySWQnK0R0KyciLz4nfSksZWVbZWUubGVuZ3RoXT0iPC90YWJsZVBhcnRzPiIpLGVlLmxlbmd0aD4xJiYoZWVbZWUubGVuZ3RoXT0iPC93b3Jrc2hlZXQ+IixlZVsxXT1lZVsxXS5yZXBsYWNlKCIvPiIsIj4iKSksZWUuam9pbigiIil9ZnVuY3Rpb24g'@; put 'QWooUyxPLGssSyl7dmFyIGVlPWZ1bmN0aW9uIFRqKFMsTyxrKXt2YXIgSz12bigxNDUpLGVlPShrWyIhcm93cyJdfHxbXSlbU118fHt9O0sud3JpdGVfc2hpZnQoNCxTKSxLLndyaXRlX3NoaWZ0KDQsMCk7dmFyIG9lPTMyMDtlZS5ocHg/b2U9MjAqWjMoZWUuaHB4KTplZS5ocHQmJihvZT0y'@; put 'MCplZS5ocHQpLEsud3JpdGVfc2hpZnQoMixvZSksSy53cml0ZV9zaGlmdCgxLDApO3ZhciBtZT0wO2VlLmxldmVsJiYobWV8PWVlLmxldmVsKSxlZS5oaWRkZW4mJihtZXw9MTYpLChlZS5ocHh8fGVlLmhwdCkmJihtZXw9MzIpLEsud3JpdGVfc2hpZnQoMSxtZSksSy53cml0ZV9zaGlmdCgx'@; put 'LDApO3ZhciBwZT0wLGJlPUsubDtLLmwrPTQ7Zm9yKHZhciBQZT17cjpTLGM6MH0sVmU9MDtWZTwxNjsrK1ZlKWlmKCEoTy5zLmM+VmUrMTw8MTB8fE8uZS5jPFZlPDwxMCkpe2Zvcih2YXIgWWU9LTEsZXQ9LTEsY3Q9VmU8PDEwO2N0PFZlKzE8PDEwOysrY3QpUGUuYz1jdCwoQXJyYXkuaXNB'@; put 'cnJheShrKT8oa1tQZS5yXXx8W10pW1BlLmNdOmtbcWkoUGUpXSkmJihZZTwwJiYoWWU9Y3QpLGV0PWN0KTtZZTwwfHwoKytwZSxLLndyaXRlX3NoaWZ0KDQsWWUpLEsud3JpdGVfc2hpZnQoNCxldCkpfXZhciBpdD1LLmw7cmV0dXJuIEsubD1iZSxLLndyaXRlX3NoaWZ0KDQscGUpLEsubD1p'@; put 'dCxLLmxlbmd0aD5LLmw/Sy5zbGljZSgwLEsubCk6S30oSyxrLE8pOyhlZS5sZW5ndGg+MTd8fChPWyIhcm93cyJdfHxbXSlbS10pJiZWcihTLCJCcnRSb3dIZHIiLGVlKX12YXIga2o9aHUsRGo9X2Y7ZnVuY3Rpb24gQmooUyl7cmV0dXJuW2UyKFMpLFJsKFMpLCJuIl19dmFyICREPWh1LEM4'@; put 'PV9mLEpEPVsibGVmdCIsInJpZ2h0IiwidG9wIiwiYm90dG9tIiwiaGVhZGVyIiwiZm9vdGVyIl0sUUQ9WyJBbnkiLCJXaG9sZSIsIkRlY2ltYWwiLCJMaXN0IiwiRGF0ZSIsIlRpbWUiLCJMZW5ndGgiLCJDdXN0b20iXSxQUz1bIklOIiwiT1QiLCJFUSIsIk5FIiwiR1QiLCJMVCIsIkdFIiwi'@; put 'TEUiXTtmdW5jdGlvbiBlSShTKXt2YXIgTz12big0KSxrPVtPXSxLPVFELmluZGV4T2YoUy50KTtpZihLPDApdGhyb3cgbmV3IEVycm9yKCJCYWQgdmFsaWRhdGlvbjogdW5yZWNvZ25pemVkIHR5cGUgIitTLnQpO3ZhciBvZT1QUy5pbmRleE9mKFMub3ApO3N3aXRjaChLKXtjYXNlIDA6Y2Fz'@; put 'ZSAzOmNhc2UgNzpvZT0wO2JyZWFrO2RlZmF1bHQ6aWYoLTE9PW9lKXRocm93IG5ldyBFcnJvcigiQmFkIERhdGEgVmFsaWRhdGlvbiB0eXBlICIrUy5vcCsiIGZvciAiK1MudCl9Ty53cml0ZV9zaGlmdCgxLDB8SyksTy53cml0ZV9zaGlmdCgxLDEpLE8ud3JpdGVfc2hpZnQoMSwxMnxvZTw8'@; put 'NCksTy53cml0ZV9zaGlmdCgxLDApLGsucHVzaChmdW5jdGlvbiBMMyhTKXt2YXIgTz1TLnNwbGl0KC9ccyosXHMqLyksaz12big0KTtrLndyaXRlX3NoaWZ0KDQsTy5sZW5ndGgpO3ZhciBLPVtrXTtyZXR1cm4gTy5mb3JFYWNoKGZ1bmN0aW9uKGVlKXtLLnB1c2goX2Yoc3MoZWUpKSl9KSxV'@; put 'KEspfSgic3RyaW5nIj09dHlwZW9mIFMucmVmP1MucmVmOnJhKFMucmVmKSkpO3ZhciBtZT12bigxNik7bWUud3JpdGVfc2hpZnQoNCw0Mjk0OTY3Mjk1KSxtZS53cml0ZV9zaGlmdCg0LDQyOTQ5NjcyOTUpLG1lLndyaXRlX3NoaWZ0KDQsNDI5NDk2NzI5NSksbWUud3JpdGVfc2hpZnQoNCw0'@; put 'Mjk0OTY3Mjk1KSxrLnB1c2gobWUpO3ZhciBwZT12big4KTtwZS53cml0ZV9zaGlmdCg0LDApLHBlLndyaXRlX3NoaWZ0KDQsMCk7dmFyIGJlPTE7c3dpdGNoKFMudCl7Y2FzZSJBbnkiOmsucHVzaChwZSksay5wdXNoKHBlKTticmVhaztjYXNlIkRlY2ltYWwiOmNhc2UiTGVuZ3RoIjpjYXNl'@; put 'Ildob2xlIjppZihudWxsIT1TLnZ8fG51bGwhPVMuZilrLnB1c2goIm51bWJlciI9PXR5cGVvZiBTLnY/c1MoUy52KTpVNChudWxsPT1TLnY/Uy5mOlMudikpO2Vsc2V7aWYobnVsbD09Uy5taW58fG51bGw9PVMubWF4KXRocm93IlVuc3VwcG9ydGVkIERhdGEgVmFsaWRhdGlvbjogYHZgIG9y'@; put 'IGBtaW5gK2BtYXhgIHJlcXVpcmVkIGZvciBUeXBlICIrUy50O2sucHVzaCgibnVtYmVyIj09dHlwZW9mIFMubWluP3NTKFMubWluKTpVNChTLm1pbikpLGsucHVzaCgibnVtYmVyIj09dHlwZW9mIFMubWF4P3NTKFMubWF4KTpVNChTLm1heCkpLGJlPTJ9YnJlYWs7Y2FzZSJMaXN0IjppZihu'@; put 'dWxsIT1TLmwpe2sucHVzaChvUyhTLmwuam9pbigiLCIpKSk7YnJlYWt9Y2FzZSJDdXN0b20iOmlmKCJudWxsIiE9Uy5mKXtrLnB1c2goVTQoUy5mKSk7YnJlYWt9dGhyb3ciVW5zdXBwb3J0ZWQgRGF0YSBWYWxpZGF0aW9uOiBgZmAiKygiTGlzdCI9PVMudD8iIG9yIGBsYCI6IiIpKyIgcmVx'@; put 'dWlyZWQgZm9yIFR5cGUgIitTLnQ7ZGVmYXVsdDp0aHJvdyJYTFNCIGRvZXMgbm90IHN1cHBvcnQgRGF0YSBWYWxpZGF0aW9uIHR5cGUgIitTLnR9cmV0dXJuIDE9PWJlJiZrLnB1c2gocGUpLFUoayl9ZnVuY3Rpb24gaXooUyxPLGssSyxlZSxvZSxtZSl7aWYodm9pZCAwPT09Ty52JiZudWxs'@; put 'PT1PLnN8fCJ6Ij09PU8udCYmIWVlLnNoZWV0U3R1YnMpcmV0dXJuITE7dmFyIHBlPSIiO3N3aXRjaChPLnQpe2Nhc2UiYiI6cGU9Ty52PyIxIjoiMCI7YnJlYWs7Y2FzZSJkIjooTz1KdChPKSkuej1PLnp8fEEuX3RhYmxlWzE0XSxPLnY9SmUoTmUoTy52KSksTy50PSJuIjticmVhaztjYXNl'@; put 'Im4iOmNhc2UiZSI6cGU9IiIrTy52O2JyZWFrO2RlZmF1bHQ6cGU9Ty52fXZhciBiZT17cjprLGM6S307c3dpdGNoKGJlLnM9czAoZWUuY2VsbFhmcyxlZS5jZWxsU3R5bGVYZnMsTyxlZSksTy5sJiZvZVsiIWxpbmtzIl0ucHVzaChbcWkoYmUpLE8ubF0pLE8uYyYmb2VbIiFjb21tZW50cyJd'@; put 'LnB1c2goW3FpKGJlKSxPLmNdKSxPLnQpe2Nhc2UicyI6Y2FzZSJzdHIiOmlmKGVlLmJvb2tTU1Qpe2lmKHBlPXVTKGVlLlN0cmluZ3MsTy52LE8uUj9PLnI9Sm8oTy5SKTpudWxsLGVlLnJldlN0cmluZ3MpLE8uUilmb3IodmFyIFBlPTA7UGU8Ty5SLmxlbmd0aDsrK1BlKU8uUltQZV0ucyYm'@; put 'czAoZWUuY2VsbFhmcyxlZS5jZWxsU3R5bGVYZnMse3Q6Im4iLHY6MCxzOk8uUltQZV0uc30sZWUpO2JlLnQ9InMiLGJlLnY9cGUsbWU/VnIoUywiQnJ0U2hvcnRJc3N0IixmdW5jdGlvbiBjeShTLE8sayl7cmV0dXJuIG51bGw9PWsmJihrPXZuKDgpKSxoaShPLGspLGsud3JpdGVfc2hpZnQo'@; put 'NCxPLnYpLGt9KDAsYmUpKTpWcihTLCJCcnRDZWxsSXNzdCIsZnVuY3Rpb24gSGooUyxPLGspe3JldHVybiBudWxsPT1rJiYoaz12bigxMikpLENyKE8sayksay53cml0ZV9zaGlmdCg0LE8udiksa30oMCxiZSkpfWVsc2UgYmUudD0ic3RyIixtZT9WcihTLCJCcnRTaG9ydFN0IixmdW5jdGlv'@; put 'biBZaihTLE8sayl7cmV0dXJuIG51bGw9PWsmJihrPXZuKDgrNCpTLnYubGVuZ3RoKSksaGkoTyxrKSxPYyhTLnYsayksay5sZW5ndGg+ay5sP2suc2xpY2UoMCxrLmwpOmt9KE8sYmUpKTpWcihTLCJCcnRDZWxsU3QiLGZ1bmN0aW9uIFpqKFMsTyxrKXtyZXR1cm4gbnVsbD09ayYmKGs9dm4o'@; put 'MTIrNCpTLnYubGVuZ3RoKSksQ3IoTyxrKSxPYyhTLnYsayksay5sZW5ndGg+ay5sP2suc2xpY2UoMCxrLmwpOmt9KE8sYmUpKTtyZXR1cm4hMDtjYXNlIm4iOnJldHVybiBPLnY9PSgwfE8udikmJk8udj4tMWUzJiZPLnY8MWUzP21lP1ZyKFMsIkJydFNob3J0UmsiLGZ1bmN0aW9uIFVqKFMs'@; put 'TyxrKXtyZXR1cm4gbnVsbD09ayYmKGs9dm4oOCkpLGhpKE8sayksc3YoUy52LGspLGt9KE8sYmUpKTpWcihTLCJCcnRDZWxsUmsiLGZ1bmN0aW9uIHpqKFMsTyxrKXtyZXR1cm4gbnVsbD09ayYmKGs9dm4oMTIpKSxDcihPLGspLHN2KFMudixrKSxrfShPLGJlKSk6bWU/VnIoUywiQnJ0U2hv'@; put 'cnRSZWFsIixmdW5jdGlvbiBqbmUoUyxPLGspe3JldHVybiBudWxsPT1rJiYoaz12bigxMikpLGhpKE8sayksSXUoUy52LGspLGt9KE8sYmUpKTpWcihTLCJCcnRDZWxsUmVhbCIsZnVuY3Rpb24gVmooUyxPLGspe3JldHVybiBudWxsPT1rJiYoaz12bigxNikpLENyKE8sayksSXUoUy52LGsp'@; put 'LGt9KE8sYmUpKSwhMDtjYXNlImIiOnJldHVybiBiZS50PSJiIixtZT9WcihTLCJCcnRTaG9ydEJvb2wiLGZ1bmN0aW9uIERTKFMsTyxrKXtyZXR1cm4gbnVsbD09ayYmKGs9dm4oNSkpLGhpKE8sayksay53cml0ZV9zaGlmdCgxLFMudj8xOjApLGt9KE8sYmUpKTpWcihTLCJCcnRDZWxsQm9v'@; put 'bCIsZnVuY3Rpb24gUGooUyxPLGspe3JldHVybiBudWxsPT1rJiYoaz12big5KSksQ3IoTyxrKSxrLndyaXRlX3NoaWZ0KDEsUy52PzE6MCksa30oTyxiZSkpLCEwO2Nhc2UiZSI6cmV0dXJuIGJlLnQ9ImUiLG1lP1ZyKFMsIkJydFNob3J0RXJyb3IiLGZ1bmN0aW9uIHdsKFMsTyxrKXtyZXR1'@; put 'cm4gbnVsbD09ayYmKGs9dm4oOCkpLGhpKE8sayksay53cml0ZV9zaGlmdCgxLFMudiksay53cml0ZV9zaGlmdCgyLDApLGsud3JpdGVfc2hpZnQoMSwwKSxrfShPLGJlKSk6VnIoUywiQnJ0Q2VsbEVycm9yIixmdW5jdGlvbiBiOChTLE8sayl7cmV0dXJuIG51bGw9PWsmJihrPXZuKDkpKSxD'@; put 'cihPLGspLGsud3JpdGVfc2hpZnQoMSxTLnYpLGt9KE8sYmUpKSwhMH1yZXR1cm4gbWU/VnIoUywiQnJ0U2hvcnRCbGFuayIsZnVuY3Rpb24gV0QoUyxPLGspe3JldHVybiBudWxsPT1rJiYoaz12big0KSksaGkoTyxrKX0oMCxiZSkpOlZyKFMsIkJydENlbGxCbGFuayIsZnVuY3Rpb24gUmoo'@; put 'UyxPLGspe3JldHVybiBudWxsPT1rJiYoaz12big4KSksQ3IoTyxrKX0oMCxiZSkpLCEwfWZ1bmN0aW9uIHo1KFMsTyxrLEspe3ZhciBlZT12aSgpLG9lPWsuU2hlZXROYW1lc1tTXSxtZT1rLlNoZWV0c1tvZV18fHt9LHBlPW9lO3RyeXtrJiZrLldvcmtib29rJiYocGU9ay5Xb3JrYm9vay5T'@; put 'aGVldHNbU10uQ29kZU5hbWV8fHBlKX1jYXRjaHt9dmFyIGJlPXNzKG1lWyIhcmVmIl18fCJBMSIpO2lmKGJlLmUuYz4xNjM4M3x8YmUuZS5yPjEwNDg1NzUpe2lmKE8uV1RGKXRocm93IG5ldyBFcnJvcigiUmFuZ2UgIisobWVbIiFyZWYiXXx8IkExIikrIiBleGNlZWRzIGZvcm1hdCBsaW1p'@; put 'dCBBMTpYRkQxMDQ4NTc2Iik7YmUuZS5jPU1hdGgubWluKGJlLmUuYywxNjM4MyksYmUuZS5yPU1hdGgubWluKGJlLmUuYywxMDQ4NTc1KX1yZXR1cm4gbWVbIiFsaW5rcyJdPVtdLG1lWyIhY29tbWVudHMiXT1bXSxWcihlZSwiQnJ0QmVnaW5TaGVldCIpLChrLnZiYXJhd3x8bWVbIiFvdXRs'@; put 'aW5lIl0pJiZWcihlZSwiQnJ0V3NQcm9wIixmdW5jdGlvbiBJaihTLE8sayl7bnVsbD09ayYmKGs9dm4oODQrNCpTLmxlbmd0aCkpO3ZhciBLPTE5MjtPJiYoTy5hYm92ZSYmKEsmPS02NSksTy5sZWZ0JiYoSyY9LTEyOSkpLGsud3JpdGVfc2hpZnQoMSxLKTtmb3IodmFyIGVlPTE7ZWU8Mzsr'@; put 'K2VlKWsud3JpdGVfc2hpZnQoMSwwKTtyZXR1cm4gd2Yoe2F1dG86MX0sayksay53cml0ZV9zaGlmdCgtNCwtMSksay53cml0ZV9zaGlmdCgtNCwtMSkscjUoUyxrKSxrLnNsaWNlKDAsay5sKX0ocGUsbWVbIiFvdXRsaW5lIl0pKSxWcihlZSwiQnJ0V3NEaW0iLERqKGJlKSksZnVuY3Rpb24g'@; put 'bHooUyxPLGspe1ZyKFMsIkJydEJlZ2luV3NWaWV3cyIpLFZyKFMsIkJydEJlZ2luV3NWaWV3IixmdW5jdGlvbiBNOChTLE8sayl7bnVsbD09ayYmKGs9dm4oMzApKTt2YXIgSz05MjQ7cmV0dXJuKCgoT3x8e30pLlZpZXdzfHxbXSlbMF18fHt9KS5SVEwmJihLfD0zMiksWnQoU1siIWdyaWRs'@; put 'aW5lcyJdKSYmKEsmPS01KSxadCgoKChPfHx7fSkuVmlld3N8fFtdKVswXXx8e30pLmdyaWQpJiYoSyY9LTUpLGsud3JpdGVfc2hpZnQoMixLKSxrLndyaXRlX3NoaWZ0KDQsMCksay53cml0ZV9zaGlmdCg0LDApLGsud3JpdGVfc2hpZnQoNCwwKSxrLndyaXRlX3NoaWZ0KDEsMCksay53cml0'@; put 'ZV9zaGlmdCgxLDApLGsud3JpdGVfc2hpZnQoMiwwKSxrLndyaXRlX3NoaWZ0KDIsMTAwKSxrLndyaXRlX3NoaWZ0KDIsMCksay53cml0ZV9zaGlmdCgyLDApLGsud3JpdGVfc2hpZnQoMiwwKSxrLndyaXRlX3NoaWZ0KDQsMCksa30oTyxrKSksT1siIWZyZWV6ZSJdJiZWcihTLCJCcnRQYW5l'@; put 'IixmdW5jdGlvbiAkaihTKXt2YXIgTz1WcyhTWyIhZnJlZXplIl0pLGs9dm4oMjkpO3JldHVybiBrLndyaXRlX3NoaWZ0KDgsTy5jLCJmIiksay53cml0ZV9zaGlmdCg4LE8uciwiZiIpLGsud3JpdGVfc2hpZnQoNCxPLnIpLGsud3JpdGVfc2hpZnQoNCxPLmMpLGsud3JpdGVfc2hpZnQoNCww'@; put 'KSxrLndyaXRlX3NoaWZ0KDEsMyksa30oTykpLE9bIiFzZWwiXSYmVnIoUywiQnJ0U2VsIixmdW5jdGlvbiBLaihTLE8pe3ZhciBrPXZuKDM2KSxLPVMuY2VsbDtpZighSyl7aWYoIVMucmFuZ2UpdGhyb3cgbmV3IEVycm9yKCJNdXN0IHNwZWNpZnkgYSBzZWxlY3Rpb24gY2VsbCBvciByYW5n'@; put 'ZSIpO0s9cWkoU28oUy5yYW5nZS5yZXBsYWNlKC9ccy4qJC8sIiIpKS5zKX12YXIgZWU9InN0cmluZyI9PXR5cGVvZiBLP1ZzKEspOks7aWYoTyl7dmFyIG9lPSJzdHJpbmciPT10eXBlb2YgTz9WcyhPKTpPO2sud3JpdGVfc2hpZnQoNCxlZS5yPj1vZS5yJiZlZS5jPj1vZS5jPzA6ZWUucj49'@; put 'b2UuciYmZWUuYzxvZS5jPzI6ZWUucjxvZS5yJiZlZS5jPj1vZS5jPzE6Myl9ZWxzZSBrLndyaXRlX3NoaWZ0KDQsMyk7cmV0dXJuIGsud3JpdGVfc2hpZnQoNCxlZS5yKSxrLndyaXRlX3NoaWZ0KDQsZWUuYyksay53cml0ZV9zaGlmdCg0LDApLGsud3JpdGVfc2hpZnQoNCwxKSxrLndyaXRl'@; put 'X3NoaWZ0KDQsZWUuciksay53cml0ZV9zaGlmdCg0LGVlLnIpLGsud3JpdGVfc2hpZnQoNCxlZS5jKSxrLndyaXRlX3NoaWZ0KDQsZWUuYyksa30oT1siIXNlbCJdLE9bIiFmcmVlemUiXSkpLFZyKFMsIkJydEVuZFdzVmlldyIpLFZyKFMsIkJydEVuZFdzVmlld3MiKX0oZWUsbWUsay5Xb3Jr'@; put 'Ym9vayksZnVuY3Rpb24gc3ooUyxPKXshT3x8IU9bIiFjb2xzIl18fChWcihTLCJCcnRCZWdpbkNvbEluZm9zIiksT1siIWNvbHMiXS5mb3JFYWNoKGZ1bmN0aW9uKGssSyl7ayYmVnIoUywiQnJ0Q29sSW5mbyIsZnVuY3Rpb24gcWooUyxPLGspe251bGw9PWsmJihrPXZuKDE4KSk7dmFyIEs9'@; put 'dTgoUyxPKTtrLndyaXRlX3NoaWZ0KC00LFMpLGsud3JpdGVfc2hpZnQoLTQsUyksay53cml0ZV9zaGlmdCg0LDI1NiooSy53aWR0aHx8MTApKSxrLndyaXRlX3NoaWZ0KDQsMCk7dmFyIGVlPTA7cmV0dXJuIE8uaGlkZGVuJiYoZWV8PTEpLCJudW1iZXIiPT10eXBlb2YgSy53aWR0aCYmKGVl'@; put 'fD0yKSxPLmxldmVsJiYoZWV8PU8ubGV2ZWw8PDgpLGsud3JpdGVfc2hpZnQoMixlZSksa30oSyxrKSl9KSxWcihTLCJCcnRFbmRDb2xJbmZvcyIpKX0oZWUsbWUpLGZ1bmN0aW9uIHRJKFMsTyxrLEspe3ZhciBlZT1zcyhPWyIhcmVmIl18fCJBMSIpLG1lPSIiLHBlPVtdO1ZyKFMsIkJydEJl'@; put 'Z2luU2hlZXREYXRhIik7dmFyIGJlPUFycmF5LmlzQXJyYXkoTyksUGU9ZWUuZS5yO09bIiFyb3dzIl0mJihQZT1NYXRoLm1heChlZS5lLnIsT1siIXJvd3MiXS5sZW5ndGgtMSkpO2Zvcih2YXIgVmU9ZWUucy5yO1ZlPD1QZTsrK1ZlKXttZT1qaShWZSksQWooUyxPLGVlLFZlKTt2YXIgWWU9'@; put 'ITE7aWYoVmU8PWVlLmUucilmb3IodmFyIGV0PWVlLnMuYztldDw9ZWUuZS5jOysrZXQpe1ZlPT09ZWUucy5yJiYocGVbZXRdPWthKGV0KSk7dmFyIGN0PWJlPyhPW1ZlXXx8W10pW2V0XTpPW3BlW2V0XSttZV07WWU9ISFjdCYmaXooUyxjdCxWZSxldCxLLE8sWWUpfX1WcihTLCJCcnRFbmRT'@; put 'aGVldERhdGEiKX0oZWUsbWUsMCxPKSxmdW5jdGlvbiBabmUoUyxPKXtPWyIhcHJvdGVjdCJdJiZWcihTLCJCcnRTaGVldFByb3RlY3Rpb24iLGZ1bmN0aW9uIGh5KFMsTyl7cmV0dXJuIG51bGw9PU8mJihPPXZuKDY2KSksTy53cml0ZV9zaGlmdCgyLFMucGFzc3dvcmQ/THYoUy5wYXNzd29y'@; put 'ZCk6MCksTy53cml0ZV9zaGlmdCg0LDEpLFtbIm9iamVjdHMiLCExXSxbInNjZW5hcmlvcyIsITFdLFsiZm9ybWF0Q2VsbHMiLCEwXSxbImZvcm1hdENvbHVtbnMiLCEwXSxbImZvcm1hdFJvd3MiLCEwXSxbImluc2VydENvbHVtbnMiLCEwXSxbImluc2VydFJvd3MiLCEwXSxbImluc2VydEh5'@; put 'cGVybGlua3MiLCEwXSxbImRlbGV0ZUNvbHVtbnMiLCEwXSxbImRlbGV0ZVJvd3MiLCEwXSxbInNlbGVjdExvY2tlZENlbGxzIiwhMV0sWyJzb3J0IiwhMF0sWyJhdXRvRmlsdGVyIiwhMF0sWyJwaXZvdFRhYmxlcyIsITBdLFsic2VsZWN0VW5sb2NrZWRDZWxscyIsITFdXS5mb3JFYWNoKGZ1'@; put 'bmN0aW9uKGspe08ud3JpdGVfc2hpZnQoNCxrWzFdP251bGw9PVNba1swXV18fFNba1swXV0/MDoxOm51bGwhPVNba1swXV0mJlNba1swXV0/MDoxKX0pLE99KE9bIiFwcm90ZWN0Il0pKX0oZWUsbWUpLGZ1bmN0aW9uIG5JKFMsTyxrLEspe2lmKE9bIiFhdXRvZmlsdGVyIl0pe3ZhciBlZT1P'@; put 'WyIhYXV0b2ZpbHRlciJdLG9lPSJzdHJpbmciPT10eXBlb2YgZWUucmVmP2VlLnJlZjpyYShlZS5yZWYpO2suV29ya2Jvb2t8fChrLldvcmtib29rPXtTaGVldHM6W119KSxrLldvcmtib29rLk5hbWVzfHwoay5Xb3JrYm9vay5OYW1lcz1bXSk7dmFyIG1lPWsuV29ya2Jvb2suTmFtZXMscGU9'@; put 'U28ob2UpO3BlLnMucj09cGUuZS5yJiYocGUuZS5yPVNvKE9bIiFyZWYiXSkuZS5yLG9lPXJhKHBlKSk7Zm9yKHZhciBiZT0wO2JlPG1lLmxlbmd0aDsrK2JlKXt2YXIgUGU9bWVbYmVdO2lmKCJfeGxubS5fRmlsdGVyRGF0YWJhc2UiPT1QZS5OYW1lJiZQZS5TaGVldD09Syl7UGUuUmVmPSIn'@; put 'IitrLlNoZWV0TmFtZXNbS10rIichIitvZTticmVha319YmU9PW1lLmxlbmd0aCYmbWUucHVzaCh7TmFtZToiX3hsbm0uX0ZpbHRlckRhdGFiYXNlIixTaGVldDpLLFJlZjoiJyIray5TaGVldE5hbWVzW0tdKyInISIrb2V9KSxWcihTLCJCcnRCZWdpbkFGaWx0ZXIiLF9mKHNzKG9lKSkpLFZy'@; put 'KFMsIkJydEVuZEFGaWx0ZXIiKX19KGVlLG1lLGssUyksZnVuY3Rpb24gYXooUyxPKXshT3x8IU9bIiFtZXJnZXMiXXx8KFZyKFMsIkJydEJlZ2luTWVyZ2VDZWxscyIsZnVuY3Rpb24gS0QoUyxPKXtyZXR1cm4gbnVsbD09TyYmKE89dm4oNCkpLE8ud3JpdGVfc2hpZnQoNCxTKSxPfShPWyIh'@; put 'bWVyZ2VzIl0ubGVuZ3RoKSksT1siIW1lcmdlcyJdLmZvckVhY2goZnVuY3Rpb24oayl7VnIoUywiQnJ0TWVyZ2VDZWxsIixDOChrKSl9KSxWcihTLCJCcnRFbmRNZXJnZUNlbGxzIikpfShlZSxtZSksZnVuY3Rpb24gdXooUyxPKXtpZihPKXtWcihTLCJCcnRCZWdpbkRWYWxzIixmdW5jdGlv'@; put 'biBmeShTLE8pe251bGw9PU8mJihPPXZuKDE4KSksTy53cml0ZV9zaGlmdCgyLDApLE8ud3JpdGVfc2hpZnQoNCwwKSxPLndyaXRlX3NoaWZ0KDQsMCksTy53cml0ZV9zaGlmdCg0LDApO2Zvcih2YXIgaz0wLEs9MDtLPFMubGVuZ3RoOysrSykoKFNbS118fHt9KS5yZWZ8fHt9KS5zJiZTW0td'@; put 'LnJlZi5zLmM8MHx8KytrO3JldHVybiBPLndyaXRlX3NoaWZ0KDQsayksT30oTykpO2Zvcih2YXIgaz0wO2s8Ty5sZW5ndGg7KytrKSgoT1trXXx8e30pLnJlZnx8e30pLnMmJk9ba10ucmVmLnMuYzwwfHxWcihTLCJCcnREVmFsIixlSShPW2tdKSk7VnIoUywiQnJ0RW5kRFZhbHMiKX19KGVl'@; put 'LG1lWyIhdmFsaWRhdGlvbnMiXSksZnVuY3Rpb24gcHkoUyxPLGspe09bIiFsaW5rcyJdLmZvckVhY2goZnVuY3Rpb24oSyl7aWYoS1sxXS5UYXJnZXQpe3ZhciBlZT1FcihrLC0xLEtbMV0uVGFyZ2V0LnJlcGxhY2UoLyMuKiQvLCIiKSxYYS5ITElOSyk7VnIoUywiQnJ0SExpbmsiLGZ1bmN0'@; put 'aW9uIFM4KFMsTyl7dmFyIGs9dm4oNTArNCooU1sxXS5UYXJnZXQubGVuZ3RoKyhTWzFdLlRvb2x0aXB8fCIiKS5sZW5ndGgpKTtfZih7czpWcyhTWzBdKSxlOlZzKFNbMF0pfSxrKSxzNSgicklkIitPLGspO3ZhciBLPVNbMV0uVGFyZ2V0LmluZGV4T2YoIiMiKTtyZXR1cm4gT2MoKC0xPT1L'@; put 'PyIiOlNbMV0uVGFyZ2V0LnNsaWNlKEsrMSkpfHwiIixrKSxPYyhTWzFdLlRvb2x0aXB8fCIiLGspLE9jKCIiLGspLGsuc2xpY2UoMCxrLmwpfShLLGVlKSl9fSksZGVsZXRlIE9bIiFsaW5rcyJdfShlZSxtZSxLKSxtZVsiIW1hcmdpbnMiXSYmVnIoZWUsIkJydE1hcmdpbnMiLGZ1bmN0aW9u'@; put 'IFFqKFMsTyl7cmV0dXJuIG51bGw9PU8mJihPPXZuKDQ4KSksSjMoUyksSkQuZm9yRWFjaChmdW5jdGlvbihrKXtJdShTW2tdLE8pfSksT30obWVbIiFtYXJnaW5zIl0pKSwoIU98fE8uaWdub3JlRUN8fG51bGw9PU8uaWdub3JlRUMpJiZmdW5jdGlvbiBqNShTLE8peyFPfHwhT1siIXJlZiJd'@; put 'fHwoVnIoUywiQnJ0QmVnaW5DZWxsSWdub3JlRUNzIiksVnIoUywiQnJ0Q2VsbElnbm9yZUVDIixmdW5jdGlvbiBleihTKXt2YXIgTz12bigyNCk7cmV0dXJuIE8ud3JpdGVfc2hpZnQoNCw0KSxPLndyaXRlX3NoaWZ0KDQsMSksX2YoUyxPKSxPfShzcyhPWyIhcmVmIl0pKSksVnIoUywiQnJ0'@; put 'RW5kQ2VsbElnbm9yZUVDcyIpKX0oZWUsbWUpLGZ1bmN0aW9uIG96KFMsTyxrLEspe2lmKE9bIiFjb21tZW50cyJdLmxlbmd0aD4wKXt2YXIgZWU9RXIoSywtMSwiLi4vZHJhd2luZ3Mvdm1sRHJhd2luZyIrKGsrMSkrIi52bWwiLFhhLlZNTCk7VnIoUywiQnJ0TGVnYWN5RHJhd2luZyIsczUo'@; put 'InJJZCIrZWUpKSxPWyIhbGVnYWN5Il09ZWV9fShlZSxtZSxTLEspLFZyKGVlLCJCcnRFbmRTaGVldCIpLGVlLmVuZCgpfWZ1bmN0aW9uIHg4KFMpe3ZhciBLLE89W10saz1TLm1hdGNoKC9ePGM6bnVtQ2FjaGU+Lyk7KFMubWF0Y2goLzxjOnB0IGlkeD0iKFxkKikiPiguKj8pPFwvYzpwdD4v'@; put 'Z20pfHxbXSkuZm9yRWFjaChmdW5jdGlvbihvZSl7dmFyIG1lPW9lLm1hdGNoKC88YzpwdCBpZHg9IihcZCo/KSI+PGM6dj4oLiopPFwvYzp2PjxcL2M6cHQ+Lyk7bWUmJihPWyttZVsxXV09az8rbWVbMl06bWVbMl0pfSk7dmFyIGVlPVFyKChTLm1hdGNoKC88Yzpmb3JtYXRDb2RlPihbXHNc'@; put 'U10qPyk8XC9jOmZvcm1hdENvZGU+Lyl8fFsiIiwiR2VuZXJhbCJdKVsxXSk7cmV0dXJuKFMubWF0Y2goLzxjOmY+KC4qPyk8XC9jOmY+L2dtKXx8W10pLmZvckVhY2goZnVuY3Rpb24ob2Upe0s9b2UucmVwbGFjZSgvPC4qPz4vZywiIil9KSxbTyxlZSxLXX1YYS5DSEFSVD0iaHR0cDovL3Nj'@; put 'aGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9jaGFydCIsWGEuQ0hBUlRFWD0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvMjAxNC9yZWxhdGlvbnNoaXBzL2NoYXJ0RXgiO3ZhciBoej0vPCg/Olx3KzopP2NoYXJ0'@; put 'PihbXHNcU10qPyk8XC8oPzpcdys6KT9jaGFydD4vLEhTPS88KD86XHcrOik/cGxvdEFyZWE+KFtcc1xTXSo/KTxcLyg/Olx3KzopP3Bsb3RBcmVhPi8sV25lPS88KD86XHcrOik/bGVnZW5kPihbXHNcU10qPyk8XC8oPzpcdys6KT9sZWdlbmQ+LyxyST0vPCg/Olx3KzopP3RpdGxlPihbXHNc'@; put 'U10qPyk8XC8oPzpcdys6KT90aXRsZT4vO2Z1bmN0aW9uIF8yKFMsTyxrLEssZWUsb2UsbWUscGUpe3ZhciBiZT1vZXx8eyIhdHlwZSI6ImNoYXJ0In07aWYoIVMpcmV0dXJuIG9lO21lJiZtZS5BbmNob3ImJihiZVsiIXBvcyJdPUQ1KG1lLkFuY2hvcixwZSksYmVbIiFwb3NUeXBlIl09bWUu'@; put 'QW5jaG9yLnR5cGUucmVwbGFjZSgvQW5jaG9yLywiIiksYmVbIiFhYnNwb3MiXT1ENShtZS5BbmNob3IscGUpLGJlWyIhcmVscG9zIl09TEMobWUuQW5jaG9yLHBlKSksYmVbIiFwbG90Il09W107dmFyIFBlPSIiLFZlPSIiLFllPVMubWF0Y2goaHopO1llPyhQZT1TLnNsaWNlKDAsWWUuaW5k'@; put 'ZXgpLFZlPVMuc2xpY2UoWWUuaW5kZXgrWWVbMF0ubGVuZ3RoKSk6UGU9VmU9Uzt2YXIgZXQ9W10sY3Q9UGUubWF0Y2goLzxjOmxhbmcuKj8+Lyl8fFMubWF0Y2goLzxjOmxhbmcuKj8+Lyl8fFZlLm1hdGNoKC88YzpsYW5nLio/Pi8pO3JldHVybiBjdCYmKGJlWyIhbGFuZyJdPSh5cihjdFsw'@; put 'XSl8fHt9KS52YWx8fCJlbi1VUyIpLFllJiYoKGV0PVllWzFdLm1hdGNoKHJJKSkmJmZ1bmN0aW9uIGR6KFMsTyl7dmFyIGs9IiI7Uy5tYXRjaCgvPGM6cmljaD4vKSYmUy5yZXBsYWNlKC88YTp0PihbXHNcU10qPyk8XC9hOnQ+L2csZnVuY3Rpb24oSyxlZSl7ays9ZWV9KSxPWyIhdGl0bGUi'@; put 'XT1rfHwiQ2hhcnQgVGl0bGUifShldFsxXSxiZSksZnVuY3Rpb24gWW5lKFMsTyl7aWYoUyl7dmFyIGs9MCxLPTAsZWU9IkEiLG9lPXtzOntyOjJlNixjOjJlNn0sZTp7cjowLGM6MH19O1MucmVwbGFjZShpSSxmdW5jdGlvbihtZSxwZSl7dmFyIGJlPXt0OnBlLGM6ayx3OjAsc2VyOltdfSxQ'@; put 'ZT1bXSxWZT0obWUubWF0Y2goLzxjOnNlci8pfHxbXSkuaW5kZXgsWWU9VmU/bWUuc2xpY2UoMCxWZSk6bWU7InNjYXR0ZXIiPT1wZSYmKFBlPW1lLm1hdGNoKC88YzpzY2F0dGVyU3R5bGUoW15cLz5dKilcLz4vbSkpJiZ5cihQZVswXSksImJhciI9PXBlJiYoUGU9bWUubWF0Y2goLzxjOmJh'@; put 'ckRpcihbXlwvPl0qKVwvPi9tKSkmJihiZS5iYXJEaXI9ImJhciI9PXlyKFBlWzBdKS52YWw/ImgiOiJ2IiksKFBlPVllLm1hdGNoKC88Yzpncm91cGluZyhbXlwvPl0qKVwvPi9tKSkmJihiZS5ncm91cGluZz15cihQZVswXSkudmFsfHwic3RhbmRhcmQiKSwobWUubWF0Y2goZnopfHxbXSku'@; put 'Zm9yRWFjaChmdW5jdGlvbihjdCl7dmFyIFR0PVtdLGl0PXt9LGJ0PVtdO2lmKGN0Lm1hdGNoKC88Yzp0eD4vKSl7dmFyIEJ0PXg4KChjdC5tYXRjaCgvPGM6dHg+KFtcc1xTXSo/KTxcL2M6dHg+Lyl8fFtdKVsxXXx8IiIpfHxbXTtCdFswXSYmQnRbMF1bMF0mJihpdC5uYW1lPUJ0WzBdWzBd'@; put 'KSxCdFsyXSYmKGl0Lm5hbWVyZWY9QnRbMl0pfVsieFZhbCIsInlWYWwiLCJjYXQiLCJ2YWwiLCJidWJibGVTaXplIl0uZm9yRWFjaChmdW5jdGlvbihEdCl7dmFyIEt0LE90PWN0Lm1hdGNoKG5ldyBSZWdFeHAoIjxjOiIrRHQrIj5bXFxzXFxTXSo/PFxcL2M6IitEdCsiPiIsImdtIikpO090'@; put 'JiYoKE90WzBdLm1hdGNoKC88YzpmPiguKj8pPFwvYzpmPi9nbSl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKFRuKXtLdD1Ubi5yZXBsYWNlKC88Lio/Pi9nLCIiKX0pLChPdFswXS5tYXRjaCgvPGM6KD86XHcqKUNhY2hlPltcc1xTXSo/PFwvYzooPzpcdyopQ2FjaGU+L2dtKXx8W10pLmZvckVh'@; put 'Y2goZnVuY3Rpb24oVG4pe3ZhciBzcj14OChUbik7b2Uucy5yPW9lLnMuYz0wLG9lLmUuYz1rLGVlPWthKGspLHNyWzBdLmZvckVhY2goZnVuY3Rpb24oQ24sdXIpe09bZWUramkodXIpXT17dDoibnVtYmVyIj09dHlwZW9mIENuPyJuIjoicyIsdjpDbix6OnNyWzFdfSxLPXVyfSksb2UuZS5y'@; put 'PEsmJihvZS5lLnI9SyksKytrLGJlLncrKyxUdC5wdXNoKER0KSwoc3JbMl18fEt0KSYmYnQucHVzaChzclsyXXx8S3QpLCJ2YWwiPT1EdCYmKGl0Lno9c3JbMV18fCJHZW5lcmFsIil9KSl9KSwoUGU9bWUubWF0Y2goLzxjOnNtb290aChbXlwvPl0qKVwvPi9tKSkmJihpdC5zbW9vdGg9bnVs'@; put 'bD09eXIoUGVbMF0pLnZhbHx8ZWkoeXIoUGVbMF0pLnZhbCkpLGl0LmNvbHM9VHQsaXQucmFuZ2VzPWJ0LGJlLnNlci5wdXNoKGl0KX0pLCJkb3VnaG51dCI9PXBlJiYoUGU9bWUubWF0Y2goLzxjOmhvbGVTaXplKFteXC8+XSopXC8+L20pKSYmKGJlLmhvbGU9KHlyKFBlWzBdKS52YWx8fDEw'@; put 'KS8xMDApLE9bIiFwbG90Il0ucHVzaChiZSl9KSxrPjAmJihPWyIhcmVmIl09cmEob2UpKX19KChZZVsxXS5tYXRjaChIUyl8fFtdKVsxXSxiZSksbnVsbCE9KGV0PVllWzFdLm1hdGNoKFduZSkpJiZmdW5jdGlvbiBFcyhTLE8pe3ZhciBrO09bIiFsZWdlbmQiXT17cG9zOiJyIn0sKGs9Uy5t'@; put 'YXRjaCgvPGM6bGVnZW5kUG9zKFteXC8+XSopXC8+L20pKSYmKE9bIiFsZWdlbmQiXS5wb3M9eXIoa1swXSkudmFsfHwiciIpfShldFswXSxiZSkpLGJlfXZhciBpST0vPGM6KCg/OmFyZWF8bGluZXxzdG9ja3xyYWRhcnxzY2F0dGVyfHBpZXxkb3VnaG51dHxiYXJ8b2ZQaWV8c3VyZmFjZXxi'@; put 'dWJibGUpKD86M0QpPylDaGFydFtePl0qPihbXHNcU10qPyk8XC9jOig/OmFyZWF8bGluZXxzdG9ja3xyYWRhcnxzY2F0dGVyfHBpZXxkb3VnaG51dHxiYXJ8b2ZQaWV8c3VyZmFjZXxidWJibGUpKD86M0QpP0NoYXJ0Pi9nbSxmej0vPGM6c2VyPihbXHNcU10qPyk8XC9jOnNlcj4vZ207WGEu'@; put 'Q1M9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvY2hhcnRzaGVldCI7dmFyIEdhPUhyKCJjaGFydHNoZWV0IixudWxsLHt4bWxuczpHaS5tYWluWzBdLCJ4bWxuczpyIjpHaS5yfSk7ZnVuY3Rpb24gTlMoUyxPLGss'@; put 'Syl7dmFyIGVlPVtEaSxHYV07cmV0dXJuIGVlLnB1c2goIjxzaGVldFByLz4iKSxlZS5wdXNoKCc8c2hlZXRWaWV3cz48c2hlZXRWaWV3IHpvb21TY2FsZT0iMTAwIiB3b3JrYm9va1ZpZXdJZD0iMCIgem9vbVRvRml0PSIxIi8+PC9zaGVldFZpZXdzPicpLGVlW2VlLmxlbmd0aF09SHIoImRy'@; put 'YXdpbmciLG51bGwseyJyOmlkIjoicklkMSJ9KSxFcihLLC0xLCIuLi9kcmF3aW5ncy9kcmF3aW5nIisoUysxKSsiLnhtbCIsWGEuRFJBVyksZWUubGVuZ3RoPjImJihlZVtlZS5sZW5ndGhdPSI8L2NoYXJ0c2hlZXQ+IixlZVsxXT1lZVsxXS5yZXBsYWNlKCIvPiIsIj4iKSksZWUuam9pbigi'@; put 'Iil9ZnVuY3Rpb24gVlMoKXt2YXIgUz12aSgpO3JldHVybiBWcihTLCJCcnRCZWdpblNoZWV0IiksVnIoUywiQnJ0RW5kU2hlZXQiKSxTLmVuZCgpfXZhciBneT1bWyJhbGxvd1JlZnJlc2hRdWVyeSIsITEsImJvb2wiXSxbImF1dG9Db21wcmVzc1BpY3R1cmVzIiwhMCwiYm9vbCJdLFsiYmFj'@; put 'a3VwRmlsZSIsITEsImJvb2wiXSxbImNoZWNrQ29tcGF0aWJpbGl0eSIsITEsImJvb2wiXSxbIkNvZGVOYW1lIiwiIl0sWyJkYXRlMTkwNCIsITEsImJvb2wiXSxbImRlZmF1bHRUaGVtZVZlcnNpb24iLDAsImludCJdLFsiZmlsdGVyUHJpdmFjeSIsITEsImJvb2wiXSxbImhpZGVQaXZvdEZp'@; put 'ZWxkTGlzdCIsITEsImJvb2wiXSxbInByb21wdGVkU29sdXRpb25zIiwhMSwiYm9vbCJdLFsicHVibGlzaEl0ZW1zIiwhMSwiYm9vbCJdLFsicmVmcmVzaEFsbENvbm5lY3Rpb25zIiwhMSwiYm9vbCJdLFsic2F2ZUV4dGVybmFsTGlua1ZhbHVlcyIsITAsImJvb2wiXSxbInNob3dCb3JkZXJV'@; put 'bnNlbGVjdGVkVGFibGVzIiwhMCwiYm9vbCJdLFsic2hvd0lua0Fubm90YXRpb24iLCEwLCJib29sIl0sWyJzaG93T2JqZWN0cyIsImFsbCJdLFsic2hvd1Bpdm90Q2hhcnRGaWx0ZXIiLCExLCJib29sIl0sWyJ1cGRhdGVMaW5rcyIsInVzZXJTZXQiXV0sYUk9W1siYWN0aXZlVGFiIiwwLCJp'@; put 'bnQiXSxbImF1dG9GaWx0ZXJEYXRlR3JvdXBpbmciLCEwLCJib29sIl0sWyJmaXJzdFNoZWV0IiwwLCJpbnQiXSxbIm1pbmltaXplZCIsITEsImJvb2wiXSxbInNob3dIb3Jpem9udGFsU2Nyb2xsIiwhMCwiYm9vbCJdLFsic2hvd1NoZWV0VGFicyIsITAsImJvb2wiXSxbInNob3dWZXJ0aWNh'@; put 'bFNjcm9sbCIsITAsImJvb2wiXSxbInRhYlJhdGlvIiw2MDAsImludCJdLFsidmlzaWJpbGl0eSIsInZpc2libGUiXV0sc0k9W10sdno9W1siY2FsY0NvbXBsZXRlZCIsInRydWUiXSxbImNhbGNNb2RlIiwiYXV0byJdLFsiY2FsY09uU2F2ZSIsInRydWUiXSxbImNvbmN1cnJlbnRDYWxjIiwi'@; put 'dHJ1ZSJdLFsiZnVsbENhbGNPbkxvYWQiLCJmYWxzZSJdLFsiZnVsbFByZWNpc2lvbiIsInRydWUiXSxbIml0ZXJhdGUiLCJmYWxzZSJdLFsiaXRlcmF0ZUNvdW50IiwiMTAwIl0sWyJpdGVyYXRlRGVsdGEiLCIwLjAwMSJdLFsicmVmTW9kZSIsIkExIl1dO2Z1bmN0aW9uIG9JKFMsTyl7Zm9y'@; put 'KHZhciBrPTA7ayE9Uy5sZW5ndGg7KytrKWZvcih2YXIgSz1TW2tdLGVlPTA7ZWUhPU8ubGVuZ3RoOysrZWUpe3ZhciBvZT1PW2VlXTtpZihudWxsPT1LW29lWzBdXSlLW29lWzBdXT1vZVsxXTtlbHNlIHN3aXRjaChvZVsyXSl7Y2FzZSJib29sIjoic3RyaW5nIj09dHlwZW9mIEtbb2VbMF1d'@; put 'JiYoS1tvZVswXV09ZWkoS1tvZVswXV0pKTticmVhaztjYXNlImludCI6InN0cmluZyI9PXR5cGVvZiBLW29lWzBdXSYmKEtbb2VbMF1dPXBhcnNlSW50KEtbb2VbMF1dLDEwKSl9fX1mdW5jdGlvbiBlcChTLE8pe2Zvcih2YXIgaz0wO2shPU8ubGVuZ3RoOysrayl7dmFyIEs9T1trXTtpZihu'@; put 'dWxsPT1TW0tbMF1dKVNbS1swXV09S1sxXTtlbHNlIHN3aXRjaChLWzJdKXtjYXNlImJvb2wiOiJzdHJpbmciPT10eXBlb2YgU1tLWzBdXSYmKFNbS1swXV09ZWkoU1tLWzBdXSkpO2JyZWFrO2Nhc2UiaW50Ijoic3RyaW5nIj09dHlwZW9mIFNbS1swXV0mJihTW0tbMF1dPXBhcnNlSW50KFNb'@; put 'S1swXV0sMTApKX19fWZ1bmN0aW9uIEJTKFMpe2VwKFMuV0JQcm9wcyxneSksZXAoUy5DYWxjUHIsdnopLG9JKFMuV0JWaWV3LGFJKSxvSShTLlNoZWV0cyxzSSksYzguZGF0ZTE5MDQ9ZWkoUy5XQlByb3BzLmRhdGUxOTA0KX12YXIgeXo9Il1bKj8vXFwiLnNwbGl0KCIiKTtmdW5jdGlvbiBt'@; put 'eShTLE8pe2lmKFMubGVuZ3RoPjMxKXtpZihPKXJldHVybiExO3Rocm93IG5ldyBFcnJvcigiU2hlZXQgbmFtZXMgY2Fubm90IGV4Y2VlZCAzMSBjaGFycyIpfXZhciBrPSEwO3JldHVybiB5ei5mb3JFYWNoKGZ1bmN0aW9uKEspe2lmKC0xIT1TLmluZGV4T2YoSykpe2lmKCFPKXRocm93IG5l'@; put 'dyBFcnJvcigiU2hlZXQgbmFtZSBjYW5ub3QgY29udGFpbiA6IFxcIC8gPyAqIFsgXSIpO2s9ITF9fSksa312YXIgRTg9Lzxcdys6d29ya2Jvb2svLHVJPUhyKCJ3b3JrYm9vayIsbnVsbCx7eG1sbnM6R2kubWFpblswXSwieG1sbnM6ciI6R2kucn0pO2Z1bmN0aW9uIFQ4KFMsTyl7dmFyIGs9'@; put 'T3x8e30sSz1bRGldO0tbSy5sZW5ndGhdPXVJO3ZhciBlZT1TLldvcmtib29rJiYoUy5Xb3JrYm9vay5OYW1lc3x8W10pLmxlbmd0aD4wO1MuV29ya2Jvb2smJlMuV29ya2Jvb2suTW9kaWZ5JiYoS1tLLmxlbmd0aF09ZnVuY3Rpb24gdHAoUyl7dmFyIE89e307cmV0dXJuIFMud2FybiYmKE8u'@; put 'cmVhZE9ubHlSZWNvbW1lbmRlZD0xKSxPLnVzZXJOYW1lPVMudXNlcnx8IlNoZWV0IEpTIixTLmVuY3J5cHRpb24mJihTLmVuY3J5cHRpb24uYWxnbyYmKE8uYWxnb3JpdGhtTmFtZT1TLmVuY3J5cHRpb24uYWxnbyksUy5lbmNyeXB0aW9uLmhhc2gmJihPLmhhc2hWYWx1ZT1TLmVuY3J5cHRp'@; put 'b24uaGFzaCksUy5lbmNyeXB0aW9uLnNhbHQmJihPLnNhbHRWYWx1ZT1TLmVuY3J5cHRpb24uc2FsdCksUy5lbmNyeXB0aW9uLnNwaW4mJihPLnNwaW5Db3VudD1TLmVuY3J5cHRpb24uc3BpbikpLEhyKCJmaWxlU2hhcmluZyIsbnVsbCxPKX0oUy5Xb3JrYm9vay5Nb2RpZnkpKTt2YXIgb2U9'@; put 'e2NvZGVOYW1lOiJUaGlzV29ya2Jvb2sifTtTLldvcmtib29rJiZTLldvcmtib29rLldCUHJvcHMmJihneS5mb3JFYWNoKGZ1bmN0aW9uKFBlKXtudWxsIT1TLldvcmtib29rLldCUHJvcHNbUGVbMF1dJiZTLldvcmtib29rLldCUHJvcHNbUGVbMF1dIT1QZVsxXSYmKG9lW1BlWzBdXT1TLldv'@; put 'cmtib29rLldCUHJvcHNbUGVbMF1dKX0pLFMuV29ya2Jvb2suV0JQcm9wcy5Db2RlTmFtZSYmKG9lLmNvZGVOYW1lPVMuV29ya2Jvb2suV0JQcm9wcy5Db2RlTmFtZSxkZWxldGUgb2UuQ29kZU5hbWUpKSxLW0subGVuZ3RoXT1Icigid29ya2Jvb2tQciIsbnVsbCxvZSksUy5Xb3JrYm9vayYm'@; put 'Uy5Xb3JrYm9vay5Qcm90ZWN0aW9uJiYoS1tLLmxlbmd0aF09ZnVuY3Rpb24gdnkoUyl7dmFyIE89e307cmV0dXJuIFMubG9ja1N0cnVjdHVyZSYmKE8ubG9ja1N0cnVjdHVyZT0xKSxTLmxvY2tXaW5kb3dzJiYoTy5sb2NrV2luZG93cz0xKSxTLmVuY3J5cHRpb24mJihTLmVuY3J5cHRpb24u'@; put 'YWxnbyYmKE8ud29ya2Jvb2tBbGdvcml0aG1OYW1lPVMuZW5jcnlwdGlvbi5hbGdvKSxTLmVuY3J5cHRpb24uaGFzaCYmKE8ud29ya2Jvb2tIYXNoVmFsdWU9Uy5lbmNyeXB0aW9uLmhhc2gpLFMuZW5jcnlwdGlvbi5zYWx0JiYoTy53b3JrYm9va1NhbHRWYWx1ZT1TLmVuY3J5cHRpb24uc2Fs'@; put 'dCksUy5lbmNyeXB0aW9uLnNwaW4mJihPLndvcmtib29rU3BpbkNvdW50PVMuZW5jcnlwdGlvbi5zcGluKSksSHIoIndvcmtib29rUHJvdGVjdGlvbiIsbnVsbCxPKX0oUy5Xb3JrYm9vay5Qcm90ZWN0aW9uKSk7dmFyIG1lPVMuV29ya2Jvb2smJlMuV29ya2Jvb2suU2hlZXRzfHxbXSxwZT0w'@; put 'O2lmKG1lJiZtZVswXSYmbWVbMF0uSGlkZGVuKXtmb3IoS1tLLmxlbmd0aF09Ijxib29rVmlld3M+IixwZT0wO3BlIT1TLlNoZWV0TmFtZXMubGVuZ3RoJiZtZVtwZV0mJm1lW3BlXS5IaWRkZW47KytwZSk7cGU9PVMuU2hlZXROYW1lcy5sZW5ndGgmJihwZT0wKSxLW0subGVuZ3RoXT0nPHdv'@; put 'cmtib29rVmlldyBmaXJzdFNoZWV0PSInK3BlKyciIGFjdGl2ZVRhYj0iJytwZSsnIi8+JyxLW0subGVuZ3RoXT0iPC9ib29rVmlld3M+In1mb3IoS1tLLmxlbmd0aF09IjxzaGVldHM+IixwZT0wO3BlIT1TLlNoZWV0TmFtZXMubGVuZ3RoOysrcGUpe3ZhciBiZT17bmFtZTpQcihTLlNoZWV0'@; put 'TmFtZXNbcGVdLnNsaWNlKDAsMzEpKX07aWYoYmUuc2hlZXRJZD0iIisocGUrMSksYmVbInI6aWQiXT0icklkIisocGUrMSksbWVbcGVdKXN3aXRjaChtZVtwZV0uSGlkZGVuKXtjYXNlIDE6YmUuc3RhdGU9ImhpZGRlbiI7YnJlYWs7Y2FzZSAyOmJlLnN0YXRlPSJ2ZXJ5SGlkZGVuIn1LW0su'@; put 'bGVuZ3RoXT1Icigic2hlZXQiLG51bGwsYmUpfXJldHVybiBLW0subGVuZ3RoXT0iPC9zaGVldHM+IixTLkV4dGVybmFsV0ImJlMuRXh0ZXJuYWxXQi5sZW5ndGgmJihLW0subGVuZ3RoXT0iPGV4dGVybmFsUmVmZXJlbmNlcz4iLChTLkV4dGVybmFsV0J8fFtdKS5mb3JFYWNoKGZ1bmN0aW9u'@; put 'KFBlLFZlKXt2YXIgWWU9RXIoay53YnJlbHMsLTEsImV4dGVybmFsTGlua3MvZXh0ZXJuYWxMaW5rIisoVmUrMSkrIi54bWwiLFhhLlhMSU5LKTtLW0subGVuZ3RoXT0nPGV4dGVybmFsUmVmZXJlbmNlIHI6aWQ9InJJZCcrWWUrJyIvPid9KSxLW0subGVuZ3RoXT0iPC9leHRlcm5hbFJlZmVy'@; put 'ZW5jZXM+IiksZWUmJihLW0subGVuZ3RoXT0iPGRlZmluZWROYW1lcz4iLFMuV29ya2Jvb2smJlMuV29ya2Jvb2suTmFtZXMmJlMuV29ya2Jvb2suTmFtZXMuZm9yRWFjaChmdW5jdGlvbihQZSl7dmFyIFZlPXtuYW1lOlBlLk5hbWV9O1BlLkNvbW1lbnQmJihWZS5jb21tZW50PVBlLkNvbW1l'@; put 'bnQpLG51bGwhPVBlLlNoZWV0JiYoVmUubG9jYWxTaGVldElkPSIiK1BlLlNoZWV0KSxQZS5IaWRkZW4mJihWZS5oaWRkZW49IjEiKSxQZS5SZWYmJihLW0subGVuZ3RoXT1IcigiZGVmaW5lZE5hbWUiLFByKFBlLlJlZiksVmUpKX0pLEtbSy5sZW5ndGhdPSI8L2RlZmluZWROYW1lcz4iKSxr'@; put 'JiZrLnBpdm90cyYmay5waXZvdHMubGVuZ3RoPjAmJihLLnB1c2goIjxwaXZvdENhY2hlcz4iKSxrLnBpdm90cy5mb3JFYWNoKGZ1bmN0aW9uKFBlLFZlKXtLLnB1c2goJzxwaXZvdENhY2hlIGNhY2hlSWQ9IicrKFZlKzEpKyciIHI6aWQ9InJJZCcrUGVbMl0rJyIvPicpfSksSy5wdXNoKCI8'@; put 'L3Bpdm90Q2FjaGVzPiIpKSxLLmxlbmd0aD4yJiYoS1tLLmxlbmd0aF09Ijwvd29ya2Jvb2s+IixLWzFdPUtbMV0ucmVwbGFjZSgiLz4iLCI+IikpLEsuam9pbigiIil9ZnVuY3Rpb24gX3ooUyxPKXtyZXR1cm4gT3x8KE89dm4oMTI3KSksTy53cml0ZV9zaGlmdCg0LFMuSGlkZGVuKSxPLndy'@; put 'aXRlX3NoaWZ0KDQsUy5pVGFiSUQpLHM1KFMuc3RyUmVsSUQsTyksT2MoUy5uYW1lLnNsaWNlKDAsMzEpLE8pLE8ubGVuZ3RoPk8ubD9PLnNsaWNlKDAsTy5sKTpPfWZ1bmN0aW9uIG5wKFMsTyl7dmFyIGs9e307cmV0dXJuIFMucmVhZF9zaGlmdCg0KSxrLkFyY2hJRD1TLnJlYWRfc2hpZnQo'@; put 'NCksUy5sKz1PLTgsa31mdW5jdGlvbiBieShTLE8pe3ZhciBrPXZpKCk7cmV0dXJuIFZyKGssIkJydEJlZ2luQm9vayIpLFZyKGssIkJydEZpbGVWZXJzaW9uIixmdW5jdGlvbiBoSShTLE8pe098fChPPXZuKDEyNykpO2Zvcih2YXIgaz0wOzQhPWs7KytrKU8ud3JpdGVfc2hpZnQoNCwwKTty'@; put 'ZXR1cm4gT2MoIlNoZWV0SlMiLE8pLE9jKHcudmVyc2lvbixPKSxPYyh3LnZlcnNpb24sTyksT2MoIjcyNjIiLE8pLE8ubGVuZ3RoPk8ubD9PLnNsaWNlKDAsTy5sKTpPfSgpKSxWcihrLCJCcnRXYlByb3AiLGZ1bmN0aW9uIGRJKFMsTyl7T3x8KE89dm4oNzIpKTt2YXIgaz0wO3JldHVybiBT'@; put 'JiZTLmZpbHRlclByaXZhY3kmJihrfD04KSxPLndyaXRlX3NoaWZ0KDQsayksTy53cml0ZV9zaGlmdCg0LDApLHI1KFMmJlMuQ29kZU5hbWV8fCJUaGlzV29ya2Jvb2siLE8pLE8uc2xpY2UoMCxPLmwpfShTLldvcmtib29rJiZTLldvcmtib29rLldCUHJvcHN8fG51bGwpKSxmdW5jdGlvbiB3'@; put 'eihTLE8pe2lmKE8uV29ya2Jvb2smJk8uV29ya2Jvb2suU2hlZXRzKXtmb3IodmFyIGs9Ty5Xb3JrYm9vay5TaGVldHMsSz0wLGVlPS0xLG9lPS0xO0s8ay5sZW5ndGg7KytLKSFrW0tdfHwha1tLXS5IaWRkZW4mJi0xPT1lZT9lZT1LOjE9PWtbS10uSGlkZGVuJiYtMT09b2UmJihvZT1LKTtv'@; put 'ZT5lZXx8KFZyKFMsIkJydEJlZ2luQm9va1ZpZXdzIiksVnIoUywiQnJ0Qm9va1ZpZXciLGZ1bmN0aW9uIGZJKFMsTyl7cmV0dXJuIE98fChPPXZuKDI5KSksTy53cml0ZV9zaGlmdCgtNCwwKSxPLndyaXRlX3NoaWZ0KC00LDQ2MCksTy53cml0ZV9zaGlmdCg0LDI4ODAwKSxPLndyaXRlX3No'@; put 'aWZ0KDQsMTc2MDApLE8ud3JpdGVfc2hpZnQoNCw1MDApLE8ud3JpdGVfc2hpZnQoNCxTKSxPLndyaXRlX3NoaWZ0KDQsUyksTy53cml0ZV9zaGlmdCgxLDEyMCksTy5sZW5ndGg+Ty5sP08uc2xpY2UoMCxPLmwpOk99KGVlKSksVnIoUywiQnJ0RW5kQm9va1ZpZXdzIikpfX0oayxTKSxmdW5j'@; put 'dGlvbiB5eShTLE8pe1ZyKFMsIkJydEJlZ2luQnVuZGxlU2hzIik7Zm9yKHZhciBrPTA7ayE9Ty5TaGVldE5hbWVzLmxlbmd0aDsrK2spVnIoUywiQnJ0QnVuZGxlU2giLF96KHtIaWRkZW46Ty5Xb3JrYm9vayYmTy5Xb3JrYm9vay5TaGVldHMmJk8uV29ya2Jvb2suU2hlZXRzW2tdJiZPLldv'@; put 'cmtib29rLlNoZWV0c1trXS5IaWRkZW58fDAsaVRhYklEOmsrMSxzdHJSZWxJRDoicklkIisoaysxKSxuYW1lOk8uU2hlZXROYW1lc1trXX0pKTtWcihTLCJCcnRFbmRCdW5kbGVTaHMiKX0oayxTKSxWcihrLCJCcnRFbmRCb29rIiksay5lbmQoKX1mdW5jdGlvbiBwSShTLE8sayxLLGVlKXty'@; put 'ZXR1cm4oIi5iaW4iPT09Ty5zbGljZSgtNCk/ejU6ekQpKFMsayxLLGVlKX1mdW5jdGlvbiBnSShTLE8sayxLLGVlKXtyZXR1cm4oIi5iaW4iPT09Ty5zbGljZSgtNCk/VlM6TlMpKFMsayxLLGVlKX1mdW5jdGlvbiBtSShTLE8sayl7cmV0dXJuKCIuYmluIj09PU8uc2xpY2UoLTQpP2ZrOkF2'@; put 'KShTLGspfWZ1bmN0aW9uIFJ6KFMsTyxrKXtyZXR1cm4oIi5iaW4iPT09Ty5zbGljZSgtNCk/VUM6ekMpKFMsayl9dmFyIFdTPS8oW1x3Ol0rKT0oKD86IikoW14iXSopKD86Iil8KD86JykoW14nXSopKD86JykpL2csX3k9LyhbXHc6XSspPSgoPzoiKSg/OlteIl0qKSg/OiIpfCg/OicpKD86'@; put 'W14nXSopKD86JykpLztmdW5jdGlvbiBQMChTLE8pe3ZhciBrPVMuc3BsaXQoL1xzKy8pLEs9W107aWYoT3x8KEtbMF09a1swXSksMT09PWsubGVuZ3RoKXJldHVybiBLO3ZhciBvZSxtZSxiZSxlZT1TLm1hdGNoKFdTKTtpZihlZSlmb3IoYmU9MDtiZSE9ZWUubGVuZ3RoOysrYmUpLTE9PT0o'@; put 'bWU9KG9lPWVlW2JlXS5tYXRjaChfeSkpWzFdLmluZGV4T2YoIjoiKSk/S1tvZVsxXV09b2VbMl0uc2xpY2UoMSxvZVsyXS5sZW5ndGgtMSk6S1sieG1sbnM6Ij09PW9lWzFdLnNsaWNlKDAsNik/InhtbG5zIitvZVsxXS5zbGljZSg2KTpvZVsxXS5zbGljZShtZSsxKV09b2VbMl0uc2xpY2Uo'@; put 'MSxvZVsyXS5sZW5ndGgtMSk7cmV0dXJuIEt9ZnVuY3Rpb24gWVMoUyl7dmFyIGs9e307aWYoMT09PVMuc3BsaXQoL1xzKy8pLmxlbmd0aClyZXR1cm4gazt2YXIgZWUsb2UscGUsSz1TLm1hdGNoKFdTKTtpZihLKWZvcihwZT0wO3BlIT1LLmxlbmd0aDsrK3BlKS0xPT09KG9lPShlZT1LW3Bl'@; put 'XS5tYXRjaChfeSkpWzFdLmluZGV4T2YoIjoiKSk/a1tlZVsxXV09ZWVbMl0uc2xpY2UoMSxlZVsyXS5sZW5ndGgtMSk6a1sieG1sbnM6Ij09PWVlWzFdLnNsaWNlKDAsNik/InhtbG5zIitlZVsxXS5zbGljZSg2KTplZVsxXS5zbGljZShvZSsxKV09ZWVbMl0uc2xpY2UoMSxlZVsyXS5sZW5n'@; put 'dGgtMSk7cmV0dXJuIGt9ZnVuY3Rpb24gTHooUyl7dmFyIE89e307aWYoUy5EZWZhdWx0Um93SGVpZ2h0KXt2YXIgaz17aHB4OjQqcGFyc2VJbnQoUy5EZWZhdWx0Um93SGVpZ2h0KS8zfTtIdihrKSxPLnJvdz1rfWlmKFMuRGVmYXVsdENvbFdpZHRoKXt2YXIgSz17d3B4OjQqcGFyc2VJbnQo'@; put 'Uy5EZWZhdWx0Q29sV2lkdGgpLzN9O0owKEspLE8uY29sPUt9cmV0dXJuIE99ZnVuY3Rpb24gUHooUyxPLGssSyl7dmFyIGVlPUs7c3dpdGNoKChrWzBdLm1hdGNoKC9kdDpkdD0iKFtcdy5dKykiLyl8fFsiIiwiIl0pWzFdKXtjYXNlImJvb2xlYW4iOmVlPWVpKEspO2JyZWFrO2Nhc2UiaTIi'@; put 'OmNhc2UiaW50IjplZT1wYXJzZUludChLLDEwKTticmVhaztjYXNlInI0IjpjYXNlImZsb2F0IjplZT1wYXJzZUZsb2F0KEspO2JyZWFrO2Nhc2UiZGF0ZSI6Y2FzZSJkYXRlVGltZS50eiI6ZWU9TmUoSyk7YnJlYWs7Y2FzZSJpOCI6Y2FzZSJzdHJpbmciOmNhc2UiZml4ZWQiOmNhc2UidXVp'@; put 'ZCI6Y2FzZSJiaW4uYmFzZTY0IjpicmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiYmFkIGN1c3Rwcm9wOiIra1swXSl9U1tRcihPKV09ZWV9dmFyIHd5PXswOiJOb25lIiwxOiJTaW5nbGUiLDI6IkRvdWJsZSIsMzM6IlNpbmdsZUFjY291bnRpbmciLDM0OiJEb3VibGVBY2NvdW50aW5n'@; put 'In0sdkk9RGUod3kpO2Z1bmN0aW9uICRTKFMsTyxrLEspe2lmKEsuY2VsbFN0eWxlcyl7aWYoaz1rLnJlcGxhY2UoL1xzKy9nLCIgIiksTy5JbnRlcmlvcil7dmFyIGVlPU8uSW50ZXJpb3I7ZWUuUGF0dGVybiYmKGVlLnBhdHRlcm5UeXBlPXdDW2VlLlBhdHRlcm5dfHxlZS5QYXR0ZXJuKSxl'@; put 'ZS5Db2xvciYmZWUuQ29sb3IubWF0Y2goLyNbMC05QS1GYS1mXSovKSYmKGVlLmZnQ29sb3I9e3JnYjplZS5Db2xvci5zbGljZSgxKX0pfSFmdW5jdGlvbiBGeihTKXtTLkJvcmRlcnMmJihTLkJvcmRlcnMuZm9yRWFjaChmdW5jdGlvbihPKXt2YXIgaz1PLlBvc2l0aW9uLnRvTG93ZXJDYXNl'@; put 'KCk7U1trXT17c3R5bGU6S1MoTy5MaW5lU3R5bGUsK08uV2VpZ2h0KSxjb2xvcjp7cmdiOihPLkNvbG9yfHwiIzAwMDAwMCIpLnNsaWNlKDEpfX19KSxkZWxldGUgUy5Cb3JkZXJzKX0oTyk7dmFyIG1lLG9lPWsubWF0Y2goLzwoPzpcdys6KT9Gb250XHNbXj5dKj4vKTtvZSYmKGVpKChtZT15'@; put 'cihvZVswXSkpLkJvbGQpJiYoTy5Cb2xkPSEwKSxlaShtZS5JdGFsaWMpJiYoTy5JdGFsaWM9ITApLGVpKG1lLlN0cmlrZVRocm91Z2gpJiYoTy5TdHJpa2U9ITApLG1lLlNpemUmJihPLlNpemU9K21lLlNpemUpLE8uRm9udE5hbWU9bWUuRm9udE5hbWU/bWUuRm9udE5hbWU6IkFyaWFsIixt'@; put 'ZS5VbmRlcmxpbmUmJihPLlVuZGVybGluZT12SVttZS5VbmRlcmxpbmVdKSxtZS5Db2xvciYmKE8uUkdCPW1lLkNvbG9yLnNsaWNlKC02KSkpLE8uQWxpZ25tZW50JiYoTy5hbGlnbm1lbnQ9e30sTy5BbGlnbm1lbnQuVmVydGljYWwmJihPLmFsaWdubWVudC52ZXJ0aWNhbD1PLkFsaWdubWVu'@; put 'dC5WZXJ0aWNhbC50b0xvd2VyQ2FzZSgpKSxPLkFsaWdubWVudC5Ib3Jpem9udGFsJiYoTy5hbGlnbm1lbnQuaG9yaXpvbnRhbD1PLkFsaWdubWVudC5Ib3Jpem9udGFsLnRvTG93ZXJDYXNlKCkpLGVpKE8uQWxpZ25tZW50LldyYXBUZXh0fHwiMCIpP08uYWxpZ25tZW50LndyYXBUZXh0PSEw'@; put 'Om51bGw9PU8uQWxpZ25tZW50LldyYXBUZXh0JiZkZWxldGUgTy5hbGlnbm1lbnQud3JhcFRleHQsZWkoTy5BbGlnbm1lbnQuU2hyaW5rVG9GaXR8fCIwIikmJihPLmFsaWdubWVudC5zaHJpbmtUb0ZpdD0hMCksK08uQWxpZ25tZW50LkluZGVudCYmKE8uYWxpZ25tZW50LmluZGVudD0rTy5B'@; put 'bGlnbm1lbnQuSW5kZW50fHwwKSwrTy5BbGlnbm1lbnQuUm90YXRlJiYoTy5hbGlnbm1lbnQudGV4dFJvdGF0aW9uPStPLkFsaWdubWVudC5Sb3RhdGV8fDApKX1TW08uSURdPU8sKCJEZWZhdWx0Ij09Ty5JRHx8Ik5vcm1hbCI9PU8uTmFtZSkmJkk0KE8pfWZ1bmN0aW9uIEtTKFMsTyl7c3dp'@; put 'dGNoKFMpe2Nhc2UiTm9uZSI6cmV0dXJuIm5vbmUiO2Nhc2UiRGFzaCI6cmV0dXJuImRhc2hlZCI7Y2FzZSJEb3QiOnJldHVybiJkb3R0ZWQiO2Nhc2UiRGFzaERvdCI6cmV0dXJuImRhc2hEb3QiO2Nhc2UiRGFzaERvdERvdCI6cmV0dXJuImRhc2hEb3REb3QiO2Nhc2UiU2xhbnREYXNoRG90'@; put 'IjpyZXR1cm4ic2xhbnREYXNoRG90IjtjYXNlIkRvdWJsZSI6cmV0dXJuImRvdWJsZSI7Y2FzZSJDb250aW51b3VzIjpzd2l0Y2goK098fDApe2Nhc2UgMDpyZXR1cm4iaGFpciI7Y2FzZSAxOnJldHVybiJ0aGluIjtjYXNlIDI6cmV0dXJuIm1lZGl1bSI7Y2FzZSAzOnJldHVybiJ0aGljayJ9'@; put 'cmV0dXJuInRoaW4ifXJldHVybiBTfWZ1bmN0aW9uIHlJKFMsTyxrLEssZWUsb2UsbWUscGUsYmUsUGUpe3ZhciBWZT0iR2VuZXJhbCIsWWU9Sy5TdHlsZUlELGV0PXt9O1BlPVBlfHx7fTt2YXIgY3Q9W10sVHQ9MDtmb3Iodm9pZCAwPT09WWUmJnBlJiYoWWU9cGUuU3R5bGVJRCksdm9pZCAw'@; put 'PT09WWUmJm1lJiYoWWU9bWUuU3R5bGVJRCk7dm9pZCAwIT09b2VbWWVdOyl7dmFyIGl0PW9lW1llXTtpZigiR2VuZXJhbCI9PVZlJiZpdC5uZiYmKFZlPW9lW1llXS5uZiksaXQuSW50ZXJpb3ImJmN0LnB1c2gob2VbWWVdLkludGVyaW9yKSxpdC5hbGlnbm1lbnQmJihldC5hbGlnbm1lbnR8'@; put 'fChldC5hbGlnbm1lbnQ9SnQoaXQuYWxpZ25tZW50KSkpLG51bGw9PWV0LmJvbGQmJml0LkJvbGQmJihldC5ib2xkPSEwKSxudWxsPT1ldC5pdGFsaWMmJml0Lkl0YWxpYyYmKGV0Lml0YWxpYz0hMCksbnVsbD09ZXQuc3RyaWtlJiZpdC5TdHJpa2UmJihldC5zdHJpa2U9ITApLG51bGw9PWV0'@; put 'LnN6JiZpdC5TaXplJiYoZXQuc3o9aXQuU2l6ZSksbnVsbD09ZXQubmFtZSYmaXQuRm9udE5hbWUmJihldC5uYW1lPWl0LkZvbnROYW1lKSxudWxsPT1ldC51bmRlcmxpbmUmJml0LlVuZGVybGluZSYmKGV0LnVuZGVybGluZT1pdC5VbmRlcmxpbmUpLG51bGw9PWV0LmNvbG9yJiZpdC5SR0Im'@; put 'JihldC5jb2xvcj17cmdiOml0LlJHQn0pLFsidG9wIiwiYm90dG9tIiwibGVmdCIsInJpZ2h0Il0uZm9yRWFjaChmdW5jdGlvbihPdCl7bnVsbD09ZXRbT3RdJiZpdFtPdF0mJihldFtPdF09SnQoaXRbT3RdKSl9KSwiRGVmYXVsdCI9PVllKWJyZWFrO1llPWl0LlBhcmVudHx8IkRlZmF1bHQi'@; put 'fWV0Lm5hbWV8fChldC5uYW1lPW9lLkRlZmF1bHQmJm9lLkRlZmF1bHQuRm9udE5hbWV8fCJBcmlhbCIpLGV0LnN6fHwoZXQuc3o9b2UuRGVmYXVsdCYmb2UuRGVmYXVsdC5TaXplfHwxMik7dmFyIGJ0PSIiO2lmKFN8fEsuRm9ybXVsYXx8IlN0cmluZyI9PWsuVHlwZXx8Ik51bWJlciI9PWsu'@; put 'VHlwZSlzd2l0Y2goay5UeXBlKXtjYXNlIkJvb2xlYW4iOksudD0iYiIsSy52PWVpKFMpO2JyZWFrO2Nhc2UiU3RyaW5nIjpLLnQ9InMiLGJ0PU9hKFFyKFMpKSxLLnY9Uy5pbmRleE9mKCI8Iik+LTE/UXIoT3x8UykucmVwbGFjZSgvPFteXSo/Pi9nLCIiKTpidCxTLmluZGV4T2YoIjwiKT4t'@; put 'MSYmKEsuUj12ZC5odG1sX3RvX3JzKFFyKFMpKSk7YnJlYWs7Y2FzZSJEYXRlVGltZSI6IloiIT1TLnNsaWNlKC0xKSYmKFMrPSJaIiksSy52PShOZShTKS1uZXcgRGF0ZShEYXRlLlVUQygxODk5LDExLDMwKSkpLzg2NGU1LEsudiE9Sy52P0sudj1RcihTKTpLLnY8NjAmJihLLnY9Sy52LTEp'@; put 'LCghVmV8fCJHZW5lcmFsIj09VmUpJiYoVmU9Inl5eXktbW0tZGQiKTtjYXNlIk51bWJlciI6dm9pZCAwPT09Sy52JiYoSy52PStTKSxLLnR8fChLLnQ9Im4iKTticmVhaztjYXNlIkVycm9yIjpLLnQ9ImUiLEsudj1GM1tTXSwhMSE9PVBlLmNlbGxUZXh0JiYoSy53PVMpO2JyZWFrO2RlZmF1'@; put 'bHQ6IiI9PVMmJiIiPT1PP0sudD0ieiI6KEsudD0icyIsYnQ9T2EoUXIoUykpLEsudj1TLmluZGV4T2YoIjwiKT4tMT9RcihPfHxTKS5yZXBsYWNlKC88W15dKj8+L2csIiIpOmJ0LFMuaW5kZXhPZigiPCIpPi0xJiYoSy5SPXZkLmh0bWxfdG9fcnMoUXIoUykpKSl9ZWxzZSBLLnQ9InoiLGRl'@; put 'bGV0ZSBLLnY7aWYoZnVuY3Rpb24gR1MoUyxPLGspe2lmKCJ6IiE9PVMudCl7aWYoIWt8fCExIT09ay5jZWxsVGV4dCl0cnl7Uy53PSJlIj09PVMudD9TLnd8fENjW1Mudl06IkdlbmVyYWwiPT09Tz8ibiI9PT1TLnQ/KDB8Uy52KT09PVMudj9BLl9nZW5lcmFsX2ludChTLnYpOkEuX2dlbmVy'@; put 'YWxfbnVtKFMudik6QS5fZ2VuZXJhbChTLnYpOmZ1bmN0aW9uIE96KFMsTyl7dmFyIGs9bmVbU118fFFyKFMpO3JldHVybiJHZW5lcmFsIj09PWs/QS5fZ2VuZXJhbChPKTpBLmZvcm1hdChrLE8pfShPfHwiR2VuZXJhbCIsUy52KX1jYXRjaChvZSl7aWYoay5XVEYpdGhyb3cgb2V9dHJ5e3Zh'@; put 'ciBLPW5lW09dfHxPfHwiR2VuZXJhbCI7aWYoay5jZWxsTkYmJihTLno9Syksay5jZWxsRGF0ZXMmJiJuIj09Uy50JiZBLmlzX2RhdGUoSykpe3ZhciBlZT1BLnBhcnNlX2RhdGVfY29kZShTLnYpO2VlJiYoUy50PSJkIixTLnY9bmV3IERhdGUoZWUueSxlZS5tLTEsZWUuZCxlZS5ILGVlLk0s'@; put 'ZWUuUyxlZS51KSl9fWNhdGNoKG9lKXtpZihrLldURil0aHJvdyBvZX19fShLLFZlLFBlKSwhMSE9PVBlLmNlbGxGb3JtdWxhKWlmKEsuRm9ybXVsYSl7dmFyIEJ0PVFyKEsuRm9ybXVsYSk7NjE9PUJ0LmNoYXJDb2RlQXQoMCkmJihCdD1CdC5zbGljZSgxKSksSy5mPU81KEJ0LGVlKSxkZWxl'@; put 'dGUgSy5Gb3JtdWxhLCJSQyI9PUsuQXJyYXlSYW5nZT9LLkY9TzUoIlJDOlJDIixlZSk6Sy5BcnJheVJhbmdlJiYoSy5GPU81KEsuQXJyYXlSYW5nZSxlZSksYmUucHVzaChbc3MoSy5GKSxLLkZdKSl9ZWxzZSBmb3IoVHQ9MDtUdDxiZS5sZW5ndGg7KytUdCllZS5yPj1iZVtUdF1bMF0ucy5y'@; put 'JiZlZS5yPD1iZVtUdF1bMF0uZS5yJiZlZS5jPj1iZVtUdF1bMF0ucy5jJiZlZS5jPD1iZVtUdF1bMF0uZS5jJiYoSy5GPWJlW1R0XVsxXSk7aWYoUGUuY2VsbFN0eWxlcyYmKGN0LmZvckVhY2goZnVuY3Rpb24oT3QpeyFldC5wYXR0ZXJuVHlwZSYmT3QucGF0dGVyblR5cGUmJihldC5wYXR0'@; put 'ZXJuVHlwZT1PdC5wYXR0ZXJuVHlwZSksIWV0LmZnQ29sb3ImJk90LmZnQ29sb3ImJihldC5mZ0NvbG9yPU90LmZnQ29sb3IpfSksSy5zPWV0KSx2b2lkIDAhPT1LLlN0eWxlSUQmJihLLml4ZmU9Sy5TdHlsZUlEKSxLLlImJksucyl7dmFyIER0PUp0KEsucyk7ZGVsZXRlIER0LmJvbGQsZGVs'@; put 'ZXRlIER0Lml0YWxpYyxkZWxldGUgRHQudW5kZXJsaW5lLGRlbGV0ZSBEdC5zdHJpa2UsSy5SLmZvckVhY2goZnVuY3Rpb24oT3Qpe090LnM9UHQoSnQoRHQpLE90LnMpfSl9fWZ1bmN0aW9uIEh6KFMpe1MudD1TLnZ8fCIiLFMudD1TLnQucmVwbGFjZSgvXHJcbi9nLCJcbiIpLnJlcGxhY2Uo'@; put 'L1xyL2csIlxuIiksUy52PVMudz1TLml4ZmU9dm9pZCAwfWZ1bmN0aW9uIFhTKFMpe2lmKFRlJiZCdWZmZXIuaXNCdWZmZXIoUykpcmV0dXJuIFMudG9TdHJpbmcoInV0ZjgiKTtpZigic3RyaW5nIj09dHlwZW9mIFMpcmV0dXJuIFM7aWYodHlwZW9mIFVpbnQ4QXJyYXk8InUiJiZTIGluc3Rh'@; put 'bmNlb2YgVWludDhBcnJheSlyZXR1cm4gZnMoQyhWKFMpKSk7dGhyb3cgbmV3IEVycm9yKCJCYWQgaW5wdXQgZm9ybWF0OiBleHBlY3RlZCBCdWZmZXIgb3Igc3RyaW5nIil9dmFyIFU1PS88KFwvPykoW15ccz8+PCFcLzpdKjp8KShbXlxzPzw+OlwvXFtdKykoPzpbXHM/OjxcL11bXj5dKik/'@; put 'Pi9nbTtmdW5jdGlvbiBEOChTLE8pe3ZhciBrPU98fHt9LEs9cShYUyhTKSk7KCJiaW5hcnkiPT1rLnR5cGV8fCJhcnJheSI9PWsudHlwZXx8ImJhc2U2NCI9PWsudHlwZSkmJihLPXR5cGVvZiBjcHRhYmxlPCJ1Ij9jcHRhYmxlLnV0aWxzLmRlY29kZSg2NTAwMSxaKEspKTpmcyhLKSk7dmFy'@; put 'IGVlPUsuc2xpY2UoMCwxMDI0KS50b0xvd2VyQ2FzZSgpLG9lPSExO2lmKCgxMDIzJmVlLmluZGV4T2YoIj4iKSk+TWF0aC5taW4oMTAyMyZlZS5pbmRleE9mKCIsIiksMTAyMyZlZS5pbmRleE9mKCI7IikpKXt2YXIgbWU9SnQoayk7cmV0dXJuIG1lLnR5cGU9InN0cmluZyIsejMudG9fd29y'@; put 'a2Jvb2soSyxtZSl9aWYoLTE9PWVlLmluZGV4T2YoIjw/eG1sIikmJlsiaHRtbCIsInRhYmxlIiwiaGVhZCIsIm1ldGEiLCJzY3JpcHQiLCJzdHlsZSIsImRpdiJdLmZvckVhY2goZnVuY3Rpb24oZ3Upe2VlLmluZGV4T2YoIjwiK2d1KT49MCYmKG9lPSEwKX0pLG9lKXJldHVybiB2ZC50b193'@; put 'b3JrYm9vayhLLGspO3ZhciBwZSxQZSxiZT1bXTtudWxsIT1zZSYmbnVsbD09ay5kZW5zZSYmKGsuZGVuc2U9c2UpO3ZhciBScixWZT17fSxZZT1bXSxldD1rLmRlbnNlP1tdOnt9LGN0PSIiLFR0PXt9LGl0PXt9LGJ0PXt9LEJ0PVAwKCc8RGF0YSBzczpUeXBlPSJTdHJpbmciPicpLER0PTAs'@; put 'T3Q9MCxLdD0wLFRuPXtzOntyOjJlNixjOjJlNn0sZTp7cjowLGM6MH19LHNyPXt9LENuPXt9LHVyPSIiLGVyPTAsam49W10scHI9e30sYnI9e30scnI9MCxTaT1bXSxQaT17fSxuYT1bXSxsYT17fSxSaT1bXSxCbj0hMSxqcj1bXSx3cj1bXSxIbj17fSx6cj0wLFdpPTAsQ2k9e1NoZWV0czpb'@; put 'XSxXQlByb3BzOntkYXRlMTkwNDohMX19LHdhPXt9O1U1Lmxhc3RJbmRleD0wLEs9Sy5yZXBsYWNlKC88IS0tKFtcc1xTXSo/KS0tPi9nbSwiIik7Zm9yKHZhciBvcz0iIjtwZT1VNS5leGVjKEspOylzd2l0Y2gocGVbM109KG9zPXBlWzNdKS50b0xvd2VyQ2FzZSgpKXtjYXNlImRhdGEiOmlm'@; put 'KCJkYXRhIj09b3Mpe2lmKCIvIj09PXBlWzFdKXtpZigoUGU9YmUucG9wKCkpWzBdIT09cGVbM10pdGhyb3cgbmV3IEVycm9yKCJCYWQgc3RhdGU6ICIrUGUuam9pbigifCIpKX1lbHNlIi8iIT09cGVbMF0uY2hhckF0KHBlWzBdLmxlbmd0aC0yKSYmYmUucHVzaChbcGVbM10sITBdKTticmVh'@; put 'a31pZihiZVtiZS5sZW5ndGgtMV1bMV0pYnJlYWs7Ii8iPT09cGVbMV0/eUkoSy5zbGljZShEdCxwZS5pbmRleCksdXIsQnQsImNvbW1lbnQiPT1iZVtiZS5sZW5ndGgtMV1bMF0/bGE6aXQse2M6T3QscjpLdH0sc3IsUmlbT3RdLGJ0LGpyLGspOih1cj0iIixCdD1QMChwZVswXSksRHQ9cGUu'@; put 'aW5kZXgrcGVbMF0ubGVuZ3RoKTticmVhaztjYXNlImNlbGwiOmlmKCIvIj09PXBlWzFdfHwiLz4iPT09cGVbMF0uc2xpY2UoLTIpKXtpZigiLz4iPT09cGVbMF0uc2xpY2UoLTIpKXtpZigoaXQ9WVMocGVbMF0pKS5JbmRleCYmKE90PStpdC5JbmRleC0xKSxPdDxUbi5zLmMmJihUbi5zLmM9'@; put 'T3QpLE90PlRuLmUuYyYmKFRuLmUuYz1PdCksbmE9W10sIWsuc2hlZXRTdHVicyl7KytPdDticmVha315SSgiIiwiIix7fSwiY29tbWVudCI9PWJlW2JlLmxlbmd0aC0xXVswXT9sYTppdCx7YzpPdCxyOkt0fSxzcixSaVtPdF0sYnQsanIsayl9aWYobmEubGVuZ3RoPjAmJihpdC5jPW5hKSwo'@; put 'IWsuc2hlZXRSb3dzfHxrLnNoZWV0Um93cz5LdCkmJih2b2lkIDAhPT1pdC52fHxrLnNoZWV0U3R1YnMpJiYoay5kZW5zZT8oZXRbS3RdfHwoZXRbS3RdPVtdKSxldFtLdF1bT3RdPWl0KTpldFtrYShPdCkramkoS3QpXT1pdCksaXQuSFJlZiYmKGl0Lmw9e1RhcmdldDpRcihpdC5IUmVmKX0s'@; put 'aXQuSFJlZlNjcmVlblRpcCYmKGl0LmwuVG9vbHRpcD1pdC5IUmVmU2NyZWVuVGlwKSxkZWxldGUgaXQuSFJlZixkZWxldGUgaXQuSFJlZlNjcmVlblRpcCksKGl0Lk1lcmdlQWNyb3NzfHxpdC5NZXJnZURvd24pJiYoenI9T3QrKDB8cGFyc2VJbnQoaXQuTWVyZ2VBY3Jvc3MsMTApKSxXaT1L'@; put 'dCsoMHxwYXJzZUludChpdC5NZXJnZURvd24sMTApKSwoenI+T3R8fFdpPkt0KSYmam4ucHVzaCh7czp7YzpPdCxyOkt0fSxlOntjOnpyLHI6V2l9fSkpLGsuc2hlZXRTdHVicylpZihpdC5NZXJnZUFjcm9zc3x8aXQuTWVyZ2VEb3duKXtmb3IodmFyIGlhPU90O2lhPD16cjsrK2lhKWZvcih2'@; put 'YXIgT3M9S3Q7T3M8PVdpOysrT3MpKGlhPk90fHxPcz5LdCkmJihrLmRlbnNlPyhldFtPc118fChldFtPc109W10pLGV0W09zXVtpYV09e3Q6InoifSk6ZXRba2EoaWEpK2ppKE9zKV09e3Q6InoifSk7T3Q9enIrMX1lbHNlKytPdDtlbHNlIGl0Lk1lcmdlQWNyb3NzP090PXpyKzE6KytPdH1l'@; put 'bHNlKGl0PVlTKHBlWzBdKSkuSW5kZXgmJihPdD0raXQuSW5kZXgtMSksT3Q8VG4ucy5jJiYoVG4ucy5jPU90KSxPdD5Ubi5lLmMmJihUbi5lLmM9T3QpLCIvPiI9PT1wZVswXS5zbGljZSgtMikmJisrT3QsbmE9W107YnJlYWs7Y2FzZSJyb3ciOiIvIj09PXBlWzFdfHwiLz4iPT09cGVbMF0u'@; put 'c2xpY2UoLTIpPyhLdDxUbi5zLnImJihUbi5zLnI9S3QpLEt0PlRuLmUuciYmKFRuLmUucj1LdCksIi8+Ij09PXBlWzBdLnNsaWNlKC0yKSYmKGJ0PVAwKHBlWzBdKSkuSW5kZXgmJihLdD0rYnQuSW5kZXgtMSksT3Q9MCwrK0t0KTooKGJ0PVAwKHBlWzBdKSkuSW5kZXgmJihLdD0rYnQuSW5k'@; put 'ZXgtMSksSG49e30sKCIwIj09YnQuQXV0b0ZpdEhlaWdodHx8YnQuSGVpZ2h0KSYmKEhuLmhwdD1wYXJzZUZsb2F0KGJ0LkhlaWdodCksSG4uaHB4PW9oKEhuLmhwdCksd3JbS3RdPUhuKSwiMSI9PWJ0LkhpZGRlbiYmKEhuLmhpZGRlbj0hMCx3cltLdF09SG4pKTticmVhaztjYXNlIndvcmtz'@; put 'aGVldCI6aWYoIi8iPT09cGVbMV0pe2lmKChQZT1iZS5wb3AoKSlbMF0hPT1wZVszXSl0aHJvdyBuZXcgRXJyb3IoIkJhZCBzdGF0ZTogIitQZS5qb2luKCJ8IikpO1llLnB1c2goY3QpLFRuLnMucjw9VG4uZS5yJiZUbi5zLmM8PVRuLmUuYyYmKGV0WyIhcmVmIl09cmEoVG4pLGsuc2hlZXRS'@; put 'b3dzJiZrLnNoZWV0Um93czw9VG4uZS5yJiYoZXRbIiFmdWxscmVmIl09ZXRbIiFyZWYiXSxUbi5lLnI9ay5zaGVldFJvd3MtMSxldFsiIXJlZiJdPXJhKFRuKSkpLGpuLmxlbmd0aCYmKGV0WyIhbWVyZ2VzIl09am4pLFJpLmxlbmd0aD4wJiYoZXRbIiFjb2xzIl09UmkpLHdyLmxlbmd0aD4w'@; put 'JiYoZXRbIiFyb3dzIl09d3IpLFR0JiYoZXRbIiFzaGVldEZvcm1hdCJdPUx6KFR0KSksVmVbY3RdPWV0fWVsc2UgVG49e3M6e3I6MmU2LGM6MmU2fSxlOntyOjAsYzowfX0sS3Q9T3Q9MCxiZS5wdXNoKFtwZVszXSwhMV0pLFBlPVAwKHBlWzBdKSxjdD1RcihQZS5OYW1lKSxldD1rLmRlbnNl'@; put 'P1tdOnt9LGpuPVtdLGpyPVtdLHdyPVtdLENpLlNoZWV0cy5wdXNoKHdhPXtuYW1lOmN0LEhpZGRlbjowfSk7YnJlYWs7Y2FzZSJ0YWJsZSI6aWYoIi8iPT09cGVbMV0pe2lmKChQZT1iZS5wb3AoKSlbMF0hPT1wZVszXSl0aHJvdyBuZXcgRXJyb3IoIkJhZCBzdGF0ZTogIitQZS5qb2luKCJ8'@; put 'IikpfWVsc2V7aWYoIi8+Ij09cGVbMF0uc2xpY2UoLTIpKWJyZWFrO1R0PVAwKHBlWzBdKSxiZS5wdXNoKFtwZVszXSwhMV0pLFJpPVtdLEJuPSExfWJyZWFrO2Nhc2Uic3R5bGUiOiIvIj09PXBlWzFdPyRTKHNyLENuLHVyLGspOihDbj1QMChwZVswXSksdXI9IiIpO2JyZWFrO2Nhc2UibnVt'@; put 'YmVyZm9ybWF0IjpDbi5uZj1RcihQMChwZVswXSkuRm9ybWF0fHwiR2VuZXJhbCIpLG5lW0NuLm5mXSYmKENuLm5mPW5lW0NuLm5mXSk7Zm9yKHZhciBQYT0wOzM5MiE9UGEmJkEuX3RhYmxlW1BhXSE9Q24ubmY7KytQYSk7aWYoMzkyPT1QYSlmb3IoUGE9NTc7MzkyIT1QYTsrK1BhKWlmKG51'@; put 'bGw9PUEuX3RhYmxlW1BhXSl7QS5sb2FkKENuLm5mLFBhKTticmVha31icmVhaztjYXNlImNvbHVtbiI6aWYoInRhYmxlIiE9PWJlW2JlLmxlbmd0aC0xXVswXXx8Ii8iPT09cGVbMV0pYnJlYWs7aWYoKFJyPVAwKHBlWzBdKSkuSGlkZGVuJiYoUnIuaGlkZGVuPSEwLGRlbGV0ZSBSci5IaWRk'@; put 'ZW4pLFJyLldpZHRoP1JyLndweD00KnBhcnNlSW50KFJyLldpZHRoLDEwKS8zOitSci5BdXRvRml0V2lkdGgmJihSci5hdXRvPTEpLCFCbiYmUnIud3B4PjEwKXtCbj0hMCx4Yz1taztmb3IodmFyIHVzPTA7dXM8UmkubGVuZ3RoOysrdXMpUmlbdXNdJiZKMChSaVt1c10pfUJuJiZKMChSciks'@; put 'UmlbUnIuSW5kZXgtMXx8UmkubGVuZ3RoXT1Scjtmb3IodmFyIHFhPTA7cWE8K1JyLlNwYW47KytxYSlSaVtSaS5sZW5ndGhdPUp0KFJyKTticmVhaztjYXNlIm5hbWVkcmFuZ2UiOmlmKCIvIj09PXBlWzFdKWJyZWFrO0NpLk5hbWVzfHwoQ2kuTmFtZXM9W10pO3ZhciBWaT15cihwZVswXSks'@; put 'SW89e05hbWU6VmkuTmFtZSxSZWY6TzUoVmkuUmVmZXJzVG8uc2xpY2UoMSkse3I6MCxjOjB9KX07Q2kuU2hlZXRzLmxlbmd0aD4wJiYoSW8uU2hlZXQ9Q2kuU2hlZXRzLmxlbmd0aC0xKSxDaS5OYW1lcy5wdXNoKElvKTticmVhaztjYXNlIm5hbWVkY2VsbCI6Y2FzZSJiIjpjYXNlImkiOmNh'@; put 'c2UidSI6Y2FzZSJzIjpjYXNlImVtIjpjYXNlImgyIjpjYXNlImgzIjpjYXNlInN1YiI6Y2FzZSJzdXAiOmNhc2Uic3BhbiI6Y2FzZSJwcm90ZWN0aW9uIjpjYXNlInBhcmFncmFwaHMiOmNhc2UibmFtZSI6YnJlYWs7Y2FzZSJhbGlnbm1lbnQiOmlmKCFrLmNlbGxTdHlsZXN8fCIvIj09PXBl'@; put 'WzFdKWJyZWFrO0NuLkFsaWdubWVudD1QMChwZVswXSk7YnJlYWs7Y2FzZSJib3JkZXJzIjoiLyIhPT1wZVsxXSYmKENuLkJvcmRlcnM9W10pO2JyZWFrO2Nhc2UiYm9yZGVyIjppZigiLyI9PT1wZVsxXSlicmVhaztDbi5Cb3JkZXJzfHwoQ24uQm9yZGVycz1bXSksQ24uQm9yZGVycy5wdXNo'@; put 'KFAwKHBlWzBdKSk7YnJlYWs7Y2FzZSJmb250IjppZigiLz4iPT09cGVbMF0uc2xpY2UoLTIpKXt1cis9cGVbMF07YnJlYWt9Ii8iPT09cGVbMV0/dXIrPUsuc2xpY2UoZXIscGUuaW5kZXgrcGVbMF0ubGVuZ3RoKTplcj1wZS5pbmRleDticmVhaztjYXNlImludGVyaW9yIjppZighay5jZWxs'@; put 'U3R5bGVzfHwiLyI9PT1wZVsxXSlicmVhaztDbi5JbnRlcmlvcj1QMChwZVswXSk7YnJlYWs7Y2FzZSJhdXRob3IiOmNhc2UidGl0bGUiOmNhc2UiZGVzY3JpcHRpb24iOmNhc2UiY3JlYXRlZCI6Y2FzZSJrZXl3b3JkcyI6Y2FzZSJzdWJqZWN0IjpjYXNlImNhdGVnb3J5IjpjYXNlImNvbXBh'@; put 'bnkiOmNhc2UibGFzdGF1dGhvciI6Y2FzZSJsYXN0c2F2ZWQiOmNhc2UibGFzdHByaW50ZWQiOmNhc2UidmVyc2lvbiI6Y2FzZSJyZXZpc2lvbiI6Y2FzZSJ0b3RhbHRpbWUiOmNhc2UiaHlwZXJsaW5rYmFzZSI6Y2FzZSJtYW5hZ2VyIjpjYXNlImNvbnRlbnRzdGF0dXMiOmNhc2UiaWRlbnRp'@; put 'ZmllciI6Y2FzZSJsYW5ndWFnZSI6Y2FzZSJhcHBuYW1lIjppZigiLz4iPT09cGVbMF0uc2xpY2UoLTIpKWJyZWFrOyIvIj09PXBlWzFdP0gzKHByLG9zLEsuc2xpY2UocnIscGUuaW5kZXgpKTpycj1wZS5pbmRleCtwZVswXS5sZW5ndGg7YnJlYWs7Y2FzZSJzdHlsZXMiOmNhc2Uid29ya2Jv'@; put 'b2siOmlmKCIvIj09PXBlWzFdKXtpZigoUGU9YmUucG9wKCkpWzBdIT09cGVbM10pdGhyb3cgbmV3IEVycm9yKCJCYWQgc3RhdGU6ICIrUGUuam9pbigifCIpKX1lbHNlIGJlLnB1c2goW3BlWzNdLCExXSk7YnJlYWs7Y2FzZSJjb21tZW50IjppZigiLyI9PT1wZVsxXSl7aWYoKFBlPWJlLnBv'@; put 'cCgpKVswXSE9PXBlWzNdKXRocm93IG5ldyBFcnJvcigiQmFkIHN0YXRlOiAiK1BlLmpvaW4oInwiKSk7SHoobGEpLG5hLnB1c2gobGEpfWVsc2UgYmUucHVzaChbcGVbM10sITFdKSxsYT17YTooUGU9UDAocGVbMF0pKS5BdXRob3J9O2JyZWFrO2Nhc2UiYXV0b2ZpbHRlciI6aWYoIi8iPT09'@; put 'cGVbMV0pe2lmKChQZT1iZS5wb3AoKSlbMF0hPT1wZVszXSl0aHJvdyBuZXcgRXJyb3IoIkJhZCBzdGF0ZTogIitQZS5qb2luKCJ8IikpfWVsc2UgaWYoIi8iIT09cGVbMF0uY2hhckF0KHBlWzBdLmxlbmd0aC0yKSl7dmFyIEZuPVAwKHBlWzBdKTtldFsiIWF1dG9maWx0ZXIiXT17cmVmOk81'@; put 'KEZuLlJhbmdlKS5yZXBsYWNlKC9cJC9nLCIiKX0sYmUucHVzaChbcGVbM10sITBdKX1icmVhaztjYXNlImRhdGF2YWxpZGF0aW9uIjppZihldFsiIXZhbGlkYXRpb25zIl18fChldFsiIXZhbGlkYXRpb25zIl09W10pLCIvIj09PXBlWzFdKXtpZigoUGU9YmUucG9wKCkpWzBdIT09cGVbM10p'@; put 'dGhyb3cgbmV3IEVycm9yKCJCYWQgc3RhdGU6ICIrUGUuam9pbigifCIpKX1lbHNlIi8iIT09cGVbMF0uY2hhckF0KHBlWzBdLmxlbmd0aC0yKSYmYmUucHVzaChbcGVbM10sITBdKSxQaT17fTticmVhaztjYXNlInBpeGVsc3BlcmluY2giOmlmKCIvIj09PXBlWzFdKXt2YXIgWXM9K0suc2xp'@; put 'Y2UoRHQscGUuaW5kZXgpOyg3Mj09WXN8fDk2PT1ZcykmJkZmKFlzKX1lbHNlIER0PXBlLmluZGV4K3BlWzBdLmxlbmd0aDticmVhaztjYXNlImNvbXBvbmVudG9wdGlvbnMiOmNhc2UiZG9jdW1lbnRwcm9wZXJ0aWVzIjpjYXNlImN1c3RvbWRvY3VtZW50cHJvcGVydGllcyI6Y2FzZSJvZmZp'@; put 'Y2Vkb2N1bWVudHNldHRpbmdzIjpjYXNlInBpdm90dGFibGUiOmNhc2UicGl2b3RjYWNoZSI6Y2FzZSJuYW1lcyI6Y2FzZSJtYXBpbmZvIjpjYXNlInBhZ2VicmVha3MiOmNhc2UicXVlcnl0YWJsZSI6Y2FzZSJzb3J0aW5nIjpjYXNlInNjaGVtYSI6Y2FzZSJjb25kaXRpb25hbGZvcm1hdHRp'@; put 'bmciOmNhc2Uic21hcnR0YWd0eXBlIjpjYXNlInNtYXJ0dGFncyI6Y2FzZSJleGNlbHdvcmtib29rIjpjYXNlIndvcmtib29rb3B0aW9ucyI6Y2FzZSJ3b3Jrc2hlZXRvcHRpb25zIjppZigiLyI9PT1wZVsxXSl7aWYoKFBlPWJlLnBvcCgpKVswXSE9PXBlWzNdKXRocm93IG5ldyBFcnJvcigi'@; put 'QmFkIHN0YXRlOiAiK1BlLmpvaW4oInwiKSl9ZWxzZSIvIiE9PXBlWzBdLmNoYXJBdChwZVswXS5sZW5ndGgtMikmJmJlLnB1c2goW3BlWzNdLCEwXSk7YnJlYWs7ZGVmYXVsdDppZigwPT1iZS5sZW5ndGgmJiJkb2N1bWVudCI9PXBlWzNdfHwwPT1iZS5sZW5ndGgmJiJ1b2YiPT1wZVszXSly'@; put 'ZXR1cm4gT0koSyxrKTt2YXIgaHI9ITA7c3dpdGNoKGJlW2JlLmxlbmd0aC0xXVswXSl7Y2FzZSJvZmZpY2Vkb2N1bWVudHNldHRpbmdzIjpzd2l0Y2gocGVbM10pe2Nhc2UiYWxsb3dwbmciOmNhc2UicmVtb3ZlcGVyc29uYWxpbmZvcm1hdGlvbiI6Y2FzZSJkb3dubG9hZGNvbXBvbmVudHMi'@; put 'OmNhc2UibG9jYXRpb25vZmNvbXBvbmVudHMiOmNhc2UiY29sb3JzIjpjYXNlImNvbG9yIjpjYXNlImluZGV4IjpjYXNlInJnYiI6Y2FzZSJ0YXJnZXRzY3JlZW5zaXplIjpjYXNlInJlYWRvbmx5cmVjb21tZW5kZWQiOmJyZWFrO2RlZmF1bHQ6aHI9ITF9YnJlYWs7Y2FzZSJjb21wb25lbnRv'@; put 'cHRpb25zIjpzd2l0Y2gocGVbM10pe2Nhc2UidG9vbGJhciI6Y2FzZSJoaWRlb2ZmaWNlbG9nbyI6Y2FzZSJzcHJlYWRzaGVldGF1dG9maXQiOmNhc2UibGFiZWwiOmNhc2UiY2FwdGlvbiI6Y2FzZSJtYXhoZWlnaHQiOmNhc2UibWF4d2lkdGgiOmNhc2UibmV4dHNoZWV0bnVtYmVyIjpicmVh'@; put 'aztkZWZhdWx0OmhyPSExfWJyZWFrO2Nhc2UiZXhjZWx3b3JrYm9vayI6c3dpdGNoKHBlWzNdKXtjYXNlImRhdGUxOTA0IjpDaS5XQlByb3BzLmRhdGUxOTA0PSEwO2JyZWFrO2Nhc2Uid2luZG93aGVpZ2h0IjpjYXNlIndpbmRvd3dpZHRoIjpjYXNlIndpbmRvd3RvcHgiOmNhc2Uid2luZG93'@; put 'dG9weSI6Y2FzZSJ0YWJyYXRpbyI6Y2FzZSJwcm90ZWN0c3RydWN0dXJlIjpjYXNlInByb3RlY3R3aW5kb3ciOmNhc2UicHJvdGVjdHdpbmRvd3MiOmNhc2UiYWN0aXZlc2hlZXQiOmNhc2UiZGlzcGxheWlua25vdGVzIjpjYXNlImZpcnN0dmlzaWJsZXNoZWV0IjpjYXNlInN1cGJvb2siOmNh'@; put 'c2Uic2hlZXRuYW1lIjpjYXNlInNoZWV0aW5kZXgiOmNhc2Uic2hlZXRpbmRleGZpcnN0IjpjYXNlInNoZWV0aW5kZXhsYXN0IjpjYXNlImRsbCI6Y2FzZSJhY2NlcHRsYWJlbHNpbmZvcm11bGFzIjpjYXNlImRvbm90c2F2ZWxpbmt2YWx1ZXMiOmNhc2UiaXRlcmF0aW9uIjpjYXNlIm1heGl0'@; put 'ZXJhdGlvbnMiOmNhc2UibWF4Y2hhbmdlIjpjYXNlInBhdGgiOmNhc2UieGN0IjpjYXNlImNvdW50IjpjYXNlInNlbGVjdGVkc2hlZXRzIjpjYXNlImNhbGN1bGF0aW9uIjpjYXNlInVuY2FsY2VkIjpjYXNlInN0YXJ0dXBwcm9tcHQiOmNhc2UiY3JuIjpjYXNlImV4dGVybm5hbWUiOmNhc2Ui'@; put 'Zm9ybXVsYSI6Y2FzZSJjb2xmaXJzdCI6Y2FzZSJjb2xsYXN0IjpjYXNlIndhbnRhZHZpc2UiOmNhc2UiYm9vbGVhbiI6Y2FzZSJlcnJvciI6Y2FzZSJ0ZXh0IjpjYXNlIm9sZSI6Y2FzZSJub2F1dG9yZWNvdmVyIjpjYXNlInB1Ymxpc2hvYmplY3RzIjpjYXNlImRvbm90Y2FsY3VsYXRlYmVm'@; put 'b3Jlc2F2ZSI6Y2FzZSJudW1iZXIiOmNhc2UicmVmbW9kZXIxYzEiOmNhc2UiZW1iZWRzYXZlc21hcnR0YWdzIjpicmVhaztkZWZhdWx0OmhyPSExfWJyZWFrO2Nhc2Uid29ya2Jvb2tvcHRpb25zIjpzd2l0Y2gocGVbM10pe2Nhc2Uib3djdmVyc2lvbiI6Y2FzZSJoZWlnaHQiOmNhc2Uid2lk'@; put 'dGgiOmJyZWFrO2RlZmF1bHQ6aHI9ITF9YnJlYWs7Y2FzZSJ3b3Jrc2hlZXRvcHRpb25zIjpzd2l0Y2gocGVbM10pe2Nhc2UidmlzaWJsZSI6aWYoIi8+IiE9PXBlWzBdLnNsaWNlKC0yKSlpZigiLyI9PT1wZVsxXSlzd2l0Y2goSy5zbGljZShycixwZS5pbmRleCkpe2Nhc2UiU2hlZXRIaWRk'@; put 'ZW4iOndhLkhpZGRlbj0xO2JyZWFrO2Nhc2UiU2hlZXRWZXJ5SGlkZGVuIjp3YS5IaWRkZW49Mn1lbHNlIHJyPXBlLmluZGV4K3BlWzBdLmxlbmd0aDticmVhaztjYXNlImhlYWRlciI6ZXRbIiFtYXJnaW5zIl18fEozKGV0WyIhbWFyZ2lucyJdPXt9LCJ4bG1sIiksZXRbIiFtYXJnaW5zIl0u'@; put 'aGVhZGVyPXlyKHBlWzBdKS5NYXJnaW47YnJlYWs7Y2FzZSJmb290ZXIiOmV0WyIhbWFyZ2lucyJdfHxKMyhldFsiIW1hcmdpbnMiXT17fSwieGxtbCIpLGV0WyIhbWFyZ2lucyJdLmZvb3Rlcj15cihwZVswXSkuTWFyZ2luO2JyZWFrO2Nhc2UicGFnZW1hcmdpbnMiOnZhciBKbD15cihwZVsw'@; put 'XSk7ZXRbIiFtYXJnaW5zIl18fEozKGV0WyIhbWFyZ2lucyJdPXt9LCJ4bG1sIiksSmwuVG9wJiYoZXRbIiFtYXJnaW5zIl0udG9wPUpsLlRvcCksSmwuTGVmdCYmKGV0WyIhbWFyZ2lucyJdLmxlZnQ9SmwuTGVmdCksSmwuUmlnaHQmJihldFsiIW1hcmdpbnMiXS5yaWdodD1KbC5SaWdodCks'@; put 'SmwuQm90dG9tJiYoZXRbIiFtYXJnaW5zIl0uYm90dG9tPUpsLkJvdHRvbSk7YnJlYWs7Y2FzZSJkaXNwbGF5cmlnaHR0b2xlZnQiOkNpLlZpZXdzfHwoQ2kuVmlld3M9W10pLENpLlZpZXdzWzBdfHwoQ2kuVmlld3NbMF09e30pLENpLlZpZXdzWzBdLlJUTD0hMDticmVhaztjYXNlImZyZWV6'@; put 'ZXBhbmVzIjpjYXNlImZyb3plbm5vc3BsaXQiOmNhc2UiYWN0aXZlcm93IjpjYXNlImFjdGl2ZWNvbCI6Y2FzZSJ0b3Byb3dib3R0b21wYW5lIjpjYXNlImxlZnRjb2x1bW5yaWdodHBhbmUiOmNhc2UidW5zeW5jZWQiOmNhc2UicHJpbnQiOmNhc2UicHJpbnRlcnJvcnMiOmNhc2UicGFuZXMi'@; put 'OmNhc2Uic2NhbGUiOmNhc2UicGFuZSI6Y2FzZSJudW1iZXIiOmNhc2UibGF5b3V0IjpjYXNlInBhZ2VzZXR1cCI6Y2FzZSJzZWxlY3RlZCI6Y2FzZSJwcm90ZWN0b2JqZWN0cyI6Y2FzZSJlbmFibGVzZWxlY3Rpb24iOmNhc2UicHJvdGVjdHNjZW5hcmlvcyI6Y2FzZSJ2YWxpZHByaW50ZXJp'@; put 'bmZvIjpjYXNlImhvcml6b250YWxyZXNvbHV0aW9uIjpjYXNlInZlcnRpY2FscmVzb2x1dGlvbiI6Y2FzZSJudW1iZXJvZmNvcGllcyI6Y2FzZSJhY3RpdmVwYW5lIjpjYXNlInRvcHJvd3Zpc2libGUiOmNhc2UibGVmdGNvbHVtbnZpc2libGUiOmNhc2UiZml0dG9wYWdlIjpjYXNlInJhbmdl'@; put 'c2VsZWN0aW9uIjpjYXNlInBhcGVyc2l6ZWluZGV4IjpjYXNlInBhZ2VsYXlvdXR6b29tIjpjYXNlInBhZ2VicmVha3pvb20iOmNhc2UiZmlsdGVyb24iOmNhc2UiZml0d2lkdGgiOmNhc2UiZml0aGVpZ2h0IjpjYXNlImNvbW1lbnRzbGF5b3V0IjpjYXNlInpvb20iOmNhc2UibGVmdHRvcmln'@; put 'aHQiOmNhc2UiZ3JpZGxpbmVzIjpjYXNlImFsbG93c29ydCI6Y2FzZSJhbGxvd2ZpbHRlciI6Y2FzZSJhbGxvd2luc2VydHJvd3MiOmNhc2UiYWxsb3dkZWxldGVyb3dzIjpjYXNlImFsbG93aW5zZXJ0Y29scyI6Y2FzZSJhbGxvd2RlbGV0ZWNvbHMiOmNhc2UiYWxsb3dpbnNlcnRoeXBlcmxp'@; put 'bmtzIjpjYXNlImFsbG93Zm9ybWF0Y2VsbHMiOmNhc2UiYWxsb3dzaXplY29scyI6Y2FzZSJhbGxvd3NpemVyb3dzIjpjYXNlInRhYmNvbG9yaW5kZXgiOmNhc2UiZG9ub3RkaXNwbGF5aGVhZGluZ3MiOmNhc2Uic2hvd3BhZ2VsYXlvdXR6b29tIjpjYXNlImJsYWNrYW5kd2hpdGUiOmNhc2Ui'@; put 'ZG9ub3RkaXNwbGF5emVyb3MiOmNhc2UiZGlzcGxheXBhZ2VicmVhayI6Y2FzZSJyb3djb2xoZWFkaW5ncyI6Y2FzZSJkb25vdGRpc3BsYXlvdXRsaW5lIjpjYXNlIm5vb3JpZW50YXRpb24iOmNhc2UiYWxsb3d1c2VwaXZvdHRhYmxlcyI6Y2FzZSJ6ZXJvaGVpZ2h0IjpjYXNlInZpZXdhYmxl'@; put 'cmFuZ2UiOmNhc2Uic2VsZWN0aW9uIjpjYXNlInByb3RlY3Rjb250ZW50cyI6YnJlYWs7Y2FzZSJzcGxpdGhvcml6b250YWwiOmNhc2Uic3BsaXR2ZXJ0aWNhbCI6aWYoIi8+IiE9PXBlWzBdLnNsaWNlKC0yKSlpZigiLyI9PXBlWzFdKXtldFsiIWZyZWV6ZSJdfHwoZXRbIiFmcmVlemUiXT0i'@; put 'QTEiKTt2YXIgVWw9VnMoZXRbIiFmcmVlemUiXSk7InNwbGl0aG9yaXpvbnRhbCI9PXBlWzNdP1VsLnI9K0suc2xpY2UocnIscGUuaW5kZXgpOlVsLmM9K0suc2xpY2UocnIscGUuaW5kZXgpLGV0WyIhZnJlZXplIl09cWkoVWwpfWVsc2UgcnI9cGUuaW5kZXgrcGVbMF0ubGVuZ3RoO2JyZWFr'@; put 'O2Nhc2UiZG9ub3RkaXNwbGF5Z3JpZGxpbmVzIjpldFsiIWdyaWRsaW5lcyJdPSExO2JyZWFrO2Nhc2Uibm9zdW1tYXJ5cm93c2JlbG93ZGV0YWlsIjpldFsiIW91dGxpbmUiXXx8KGV0WyIhb3V0bGluZSJdPXt9KSxldFsiIW91dGxpbmUiXS5hYm92ZT0hMDticmVhaztjYXNlIm5vc3VtbWFy'@; put 'eWNvbHVtbnNyaWdodGRldGFpbCI6ZXRbIiFvdXRsaW5lIl18fChldFsiIW91dGxpbmUiXT17fSksZXRbIiFvdXRsaW5lIl0ubGVmdD0hMDticmVhaztkZWZhdWx0OmhyPSExfWJyZWFrO2Nhc2UicGl2b3R0YWJsZSI6Y2FzZSJwaXZvdGNhY2hlIjpzd2l0Y2gocGVbM10pe2Nhc2UiaW1tZWRp'@; put 'YXRlaXRlbXNvbmRyb3AiOmNhc2Uic2hvd3BhZ2VtdWx0aXBsZWl0ZW1sYWJlbCI6Y2FzZSJjb21wYWN0cm93aW5kZW50IjpjYXNlImxvY2F0aW9uIjpjYXNlInBpdm90ZmllbGQiOmNhc2Uib3JpZW50YXRpb24iOmNhc2UibGF5b3V0Zm9ybSI6Y2FzZSJsYXlvdXRzdWJ0b3RhbGxvY2F0aW9u'@; put 'IjpjYXNlImxheW91dGNvbXBhY3Ryb3ciOmNhc2UicG9zaXRpb24iOmNhc2UicGl2b3RpdGVtIjpjYXNlImRhdGF0eXBlIjpjYXNlImRhdGFmaWVsZCI6Y2FzZSJzb3VyY2VuYW1lIjpjYXNlInBhcmVudGZpZWxkIjpjYXNlInB0bGluZWl0ZW1zIjpjYXNlInB0bGluZWl0ZW0iOmNhc2UiY291'@; put 'bnRvZnNhbWVpdGVtcyI6Y2FzZSJpdGVtIjpjYXNlIml0ZW10eXBlIjpjYXNlInB0c291cmNlIjpjYXNlImNhY2hlaW5kZXgiOmNhc2UiY29uc29saWRhdGlvbnJlZmVyZW5jZSI6Y2FzZSJmaWxlbmFtZSI6Y2FzZSJyZWZlcmVuY2UiOmNhc2Uibm9jb2x1bW5ncmFuZCI6Y2FzZSJub3Jvd2dy'@; put 'YW5kIjpjYXNlImJsYW5rbGluZWFmdGVyaXRlbXMiOmNhc2UiaGlkZGVuIjpjYXNlInN1YnRvdGFsIjpjYXNlImJhc2VmaWVsZCI6Y2FzZSJtYXBjaGlsZGl0ZW1zIjpjYXNlImZ1bmN0aW9uIjpjYXNlInJlZnJlc2hvbmZpbGVvcGVuIjpjYXNlInByaW50c2V0dGl0bGVzIjpjYXNlIm1lcmdl'@; put 'bGFiZWxzIjpjYXNlImRlZmF1bHR2ZXJzaW9uIjpjYXNlInJlZnJlc2huYW1lIjpjYXNlInJlZnJlc2hkYXRlIjpjYXNlInJlZnJlc2hkYXRlY29weSI6Y2FzZSJ2ZXJzaW9ubGFzdHJlZnJlc2giOmNhc2UidmVyc2lvbmxhc3R1cGRhdGUiOmNhc2UidmVyc2lvbnVwZGF0ZWFibGVtaW4iOmNh'@; put 'c2UidmVyc2lvbnJlZnJlc2hhYmxlbWluIjpjYXNlImNhbGN1bGF0aW9uIjpicmVhaztkZWZhdWx0OmhyPSExfWJyZWFrO2Nhc2UicGFnZWJyZWFrcyI6c3dpdGNoKHBlWzNdKXtjYXNlImNvbGJyZWFrcyI6Y2FzZSJjb2xicmVhayI6Y2FzZSJyb3dicmVha3MiOmNhc2Uicm93YnJlYWsiOmNh'@; put 'c2UiY29sc3RhcnQiOmNhc2UiY29sZW5kIjpjYXNlInJvd2VuZCI6YnJlYWs7ZGVmYXVsdDpocj0hMX1icmVhaztjYXNlImF1dG9maWx0ZXIiOnN3aXRjaChwZVszXSl7Y2FzZSJhdXRvZmlsdGVyY29sdW1uIjpjYXNlImF1dG9maWx0ZXJjb25kaXRpb24iOmNhc2UiYXV0b2ZpbHRlcmFuZCI6'@; put 'Y2FzZSJhdXRvZmlsdGVyb3IiOmJyZWFrO2RlZmF1bHQ6aHI9ITF9YnJlYWs7Y2FzZSJxdWVyeXRhYmxlIjpzd2l0Y2gocGVbM10pe2Nhc2UiaWQiOmNhc2UiYXV0b2Zvcm1hdGZvbnQiOmNhc2UiYXV0b2Zvcm1hdHBhdHRlcm4iOmNhc2UicXVlcnlzb3VyY2UiOmNhc2UicXVlcnl0eXBlIjpj'@; put 'YXNlImVuYWJsZXJlZGlyZWN0aW9ucyI6Y2FzZSJyZWZyZXNoZWRpbnhsOSI6Y2FzZSJ1cmxzdHJpbmciOmNhc2UiaHRtbHRhYmxlcyI6Y2FzZSJjb25uZWN0aW9uIjpjYXNlImNvbW1hbmR0ZXh0IjpjYXNlInJlZnJlc2hpbmZvIjpjYXNlIm5vdGl0bGVzIjpjYXNlIm5leHRpZCI6Y2FzZSJj'@; put 'b2x1bW5pbmZvIjpjYXNlIm92ZXJ3cml0ZWNlbGxzIjpjYXNlImRvbm90cHJvbXB0Zm9yZmlsZSI6Y2FzZSJ0ZXh0d2l6YXJkc2V0dGluZ3MiOmNhc2Uic291cmNlIjpjYXNlIm51bWJlciI6Y2FzZSJkZWNpbWFsIjpjYXNlInRob3VzYW5kc2VwYXJhdG9yIjpjYXNlInRyYWlsaW5nbWludXNu'@; put 'dW1iZXJzIjpjYXNlImZvcm1hdHNldHRpbmdzIjpjYXNlImZpZWxkdHlwZSI6Y2FzZSJkZWxpbWl0ZXJzIjpjYXNlInRhYiI6Y2FzZSJjb21tYSI6Y2FzZSJhdXRvZm9ybWF0bmFtZSI6Y2FzZSJ2ZXJzaW9ubGFzdGVkaXQiOmNhc2UidmVyc2lvbmxhc3RyZWZyZXNoIjpicmVhaztkZWZhdWx0'@; put 'OmhyPSExfWJyZWFrO2Nhc2UiZGF0YXZhbGlkYXRpb24iOnN3aXRjaChwZVszXSl7Y2FzZSJyYW5nZSI6UGkucmVmPXBlO2JyZWFrO2Nhc2UidHlwZSI6Y2FzZSJtaW4iOmNhc2UibWF4IjpjYXNlInNvcnQiOmNhc2UiZGVzY2VuZGluZyI6Y2FzZSJvcmRlciI6Y2FzZSJjYXNlc2Vuc2l0aXZl'@; put 'IjpjYXNlInZhbHVlIjpjYXNlImVycm9yc3R5bGUiOmNhc2UiZXJyb3JtZXNzYWdlIjpjYXNlImVycm9ydGl0bGUiOmNhc2UiaW5wdXRtZXNzYWdlIjpjYXNlImlucHV0dGl0bGUiOmNhc2UiY29tYm9oaWRlIjpjYXNlImlucHV0aGlkZSI6Y2FzZSJjb25kaXRpb24iOmNhc2UicXVhbGlmaWVy'@; put 'IjpjYXNlInVzZWJsYW5rIjpjYXNlInZhbHVlMSI6Y2FzZSJ2YWx1ZTIiOmNhc2UiZm9ybWF0IjpjYXNlImNlbGxyYW5nZWxpc3QiOmJyZWFrO2RlZmF1bHQ6aHI9ITF9YnJlYWs7Y2FzZSJzb3J0aW5nIjpjYXNlImNvbmRpdGlvbmFsZm9ybWF0dGluZyI6c3dpdGNoKHBlWzNdKXtjYXNlInJh'@; put 'bmdlIjpjYXNlInR5cGUiOmNhc2UibWluIjpjYXNlIm1heCI6Y2FzZSJzb3J0IjpjYXNlImRlc2NlbmRpbmciOmNhc2Uib3JkZXIiOmNhc2UiY2FzZXNlbnNpdGl2ZSI6Y2FzZSJ2YWx1ZSI6Y2FzZSJlcnJvcnN0eWxlIjpjYXNlImVycm9ybWVzc2FnZSI6Y2FzZSJlcnJvcnRpdGxlIjpjYXNl'@; put 'ImNlbGxyYW5nZWxpc3QiOmNhc2UiaW5wdXRtZXNzYWdlIjpjYXNlImlucHV0dGl0bGUiOmNhc2UiY29tYm9oaWRlIjpjYXNlImlucHV0aGlkZSI6Y2FzZSJjb25kaXRpb24iOmNhc2UicXVhbGlmaWVyIjpjYXNlInVzZWJsYW5rIjpjYXNlInZhbHVlMSI6Y2FzZSJ2YWx1ZTIiOmNhc2UiZm9y'@; put 'bWF0IjpicmVhaztkZWZhdWx0OmhyPSExfWJyZWFrO2Nhc2UibWFwaW5mbyI6Y2FzZSJzY2hlbWEiOmNhc2UiZGF0YSI6c3dpdGNoKHBlWzNdKXtjYXNlIm1hcCI6Y2FzZSJlbnRyeSI6Y2FzZSJyYW5nZSI6Y2FzZSJ4cGF0aCI6Y2FzZSJmaWVsZCI6Y2FzZSJ4c2R0eXBlIjpjYXNlImZpbHRl'@; put 'cm9uIjpjYXNlImFnZ3JlZ2F0ZSI6Y2FzZSJlbGVtZW50dHlwZSI6Y2FzZSJhdHRyaWJ1dGV0eXBlIjpjYXNlInNjaGVtYSI6Y2FzZSJlbGVtZW50IjpjYXNlImNvbXBsZXh0eXBlIjpjYXNlImRhdGF0eXBlIjpjYXNlImFsbCI6Y2FzZSJhdHRyaWJ1dGUiOmNhc2UiZXh0ZW5kcyI6Y2FzZSJy'@; put 'b3ciOmJyZWFrO2RlZmF1bHQ6aHI9ITF9YnJlYWs7Y2FzZSJzbWFydHRhZ3MiOmJyZWFrO2RlZmF1bHQ6aHI9ITF9aWYoaHJ8fHBlWzNdLm1hdGNoKC8hXFtDREFUQS8pKWJyZWFrO2lmKCFiZVtiZS5sZW5ndGgtMV1bMV0pdGhyb3ciVW5yZWNvZ25pemVkIHRhZzogIitwZVszXSsifCIrYmUu'@; put 'am9pbigifCIpO2lmKCJjdXN0b21kb2N1bWVudHByb3BlcnRpZXMiPT09YmVbYmUubGVuZ3RoLTFdWzBdKXtpZigiLz4iPT09cGVbMF0uc2xpY2UoLTIpKWJyZWFrOyIvIj09PXBlWzFdP1B6KGJyLG9zLFNpLEsuc2xpY2UocnIscGUuaW5kZXgpKTooU2k9cGUscnI9cGUuaW5kZXgrcGVbMF0u'@; put 'bGVuZ3RoKTticmVha31pZihrLldURil0aHJvdyJVbnJlY29nbml6ZWQgdGFnOiAiK3BlWzNdKyJ8IitiZS5qb2luKCJ8Iil9dmFyIFpsPXt9O3JldHVybiFrLmJvb2tTaGVldHMmJiFrLmJvb2tQcm9wcyYmKFpsLlNoZWV0cz1WZSksWmwuU2hlZXROYW1lcz1ZZSxabC5Xb3JrYm9vaz1DaSxa'@; put 'bC5TU0Y9QS5nZXRfdGFibGUoKSxabC5Qcm9wcz1wcixabC5DdXN0cHJvcHM9YnIsWmwuU2hlZXRzJiZabC5TaGVldE5hbWVzLmZvckVhY2goZnVuY3Rpb24oZ3Upe3ZhciBDbD1abC5TaGVldHNbZ3VdO0NsWyIhbWVyZ2VzIl0mJkNsWyIhbWVyZ2VzIl0uZm9yRWFjaChmdW5jdGlvbihsbil7'@; put 'InN0cmluZyI9PXR5cGVvZiBsbiYmKGxuPXcudXRpbHMuZGVjb2RlX3JhbmdlKGxuKSk7dmFyIEVuPXcudXRpbHMuZW5jb2RlX2NlbGwobG4ucyksWm49QXJyYXkuaXNBcnJheShDbCk/KENsW2xuLnMucl18fFtdKVtsbi5zLmNdOkNsW0VuXTtabiYmWm4ucyYmKG51bGwhPVpuLnMudG9wJiZW'@; put 'dS5zaGVldF9zZXRfcmFuZ2Vfc3R5bGUoQ2wsbG4se3RvcDpabi5zLnRvcH0pLG51bGwhPVpuLnMuYm90dG9tJiZWdS5zaGVldF9zZXRfcmFuZ2Vfc3R5bGUoQ2wsbG4se2JvdHRvbTpabi5zLmJvdHRvbX0pLG51bGwhPVpuLnMubGVmdCYmVnUuc2hlZXRfc2V0X3JhbmdlX3N0eWxlKENsLGxu'@; put 'LHtsZWZ0OlpuLnMubGVmdH0pLG51bGwhPVpuLnMucmlnaHQmJlZ1LnNoZWV0X3NldF9yYW5nZV9zdHlsZShDbCxsbix7cmlnaHQ6Wm4ucy5yaWdodH0pKX0pfSksWmx9ZnVuY3Rpb24gSTgoUyxPKXtzd2l0Y2goakkoTz1PfHx7fSksTy50eXBlfHwiYmFzZTY0Iil7Y2FzZSJiYXNlNjQiOnJl'@; put 'dHVybiBEOChfZS5kZWNvZGUoUyksTyk7Y2FzZSJiaW5hcnkiOmNhc2UiYnVmZmVyIjpjYXNlImZpbGUiOnJldHVybiBEOChTLE8pO2Nhc2UiYXJyYXkiOnJldHVybiBEOChDKFMpLE8pfX1mdW5jdGlvbiBDSShTKXtyZXR1cm4gSHIoIk5hbWVkUmFuZ2UiLG51bGwseyJzczpOYW1lIjpTLk5h'@; put 'bWUsInNzOlJlZmVyc1RvIjoiPSIrSDQoUy5SZWYse3I6MCxjOjB9KX0pfWZ1bmN0aW9uICRuZShTLE8sayxLLGVlLG9lLG1lKXtpZighU3x8bnVsbD09Uy52JiZudWxsPT1TLmYmJiFLLnNoZWV0U3R1YnMpcmV0dXJuIiI7dmFyIHBlPXt9O2lmKFMuZiYmKHBlWyJzczpGb3JtdWxhIl09Ij0i'@; put 'K1ByKEg0KFMuZixtZSkpKSxTLkYmJlMuRi5zbGljZSgwLE8ubGVuZ3RoKT09Tyl7dmFyIGJlPVZzKFMuRi5zbGljZShPLmxlbmd0aCsxKSk7cGVbInNzOkFycmF5UmFuZ2UiXT0iUkM6UiIrKGJlLnI9PW1lLnI/IiI6IlsiKyhiZS5yLW1lLnIpKyJdIikrIkMiKyhiZS5jPT1tZS5jPyIiOiJb'@; put 'IisoYmUuYy1tZS5jKSsiXSIpfWlmKFMubCYmUy5sLlRhcmdldCYmKHBlWyJzczpIUmVmIl09UHIoUy5sLlRhcmdldCksUy5sLlRvb2x0aXAmJihwZVsieDpIUmVmU2NyZWVuVGlwIl09UHIoUy5sLlRvb2x0aXApKSksa1siIW1lcmdlcyJdKWZvcih2YXIgUGU9a1siIW1lcmdlcyJdLFZlPTA7'@; put 'VmUhPVBlLmxlbmd0aDsrK1ZlKVBlW1ZlXS5zLmMhPW1lLmN8fFBlW1ZlXS5zLnIhPW1lLnJ8fChQZVtWZV0uZS5jPlBlW1ZlXS5zLmMmJihwZVsic3M6TWVyZ2VBY3Jvc3MiXT1QZVtWZV0uZS5jLVBlW1ZlXS5zLmMpLFBlW1ZlXS5lLnI+UGVbVmVdLnMuciYmKHBlWyJzczpNZXJnZURvd24i'@; put 'XT1QZVtWZV0uZS5yLVBlW1ZlXS5zLnIpKTt2YXIgWWU9IiIsZXQ9IiI7c3dpdGNoKFMudCl7Y2FzZSJ6IjppZighSy5zaGVldFN0dWJzKXJldHVybiIiO2JyZWFrO2Nhc2UibiI6WWU9Ik51bWJlciIsZXQ9U3RyaW5nKFMudik7YnJlYWs7Y2FzZSJiIjpZZT0iQm9vbGVhbiIsZXQ9Uy52PyIx'@; put 'IjoiMCI7YnJlYWs7Y2FzZSJlIjpZZT0iRXJyb3IiLGV0PUNjW1Mudl07YnJlYWs7Y2FzZSJkIjpZZT0iRGF0ZVRpbWUiLGV0PW5ldyBEYXRlKFMudikudG9JU09TdHJpbmcoKSxudWxsPT1TLnomJihTLno9Uy56fHxBLl90YWJsZVsxNF0pO2JyZWFrO2Nhc2UicyI6WWU9IlN0cmluZyIsZXQ9'@; put 'X2EoUy52fHwiIil9dmFyIGN0PXMwKEsuY2VsbFhmcyxudWxsLFMsSyk7cGVbInNzOlN0eWxlSUQiXT0icyIrKDIxK2N0KSxwZVsic3M6SW5kZXgiXT1tZS5jKzE7dmFyIFR0PW51bGwhPVMudj9ldDoiIixpdD0ieiI9PVMudD8iIjpTLlI/ZnVuY3Rpb24gQ3koUyl7cmV0dXJuJzxzczpEYXRh'@; put 'IHNzOlR5cGU9IlN0cmluZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAiPicrUy5tYXAoZnVuY3Rpb24oayl7dmFyIEs9X2Eoay52KTtyZXR1cm4gay5zJiYoay5zLmJvbGQmJihLPSI8Qj4iK0srIjwvQj4iKSxrLnMuaXRhbGljJiYoSz0iPEk+IitLKyI8L0k+Iiks'@; put 'ay5zLnN0cmlrZSYmKEs9IjxTPiIrSysiPC9TPiIpLGsucy51bmRlcmxpbmUmJihLPSI8VT4iK0srIjwvVT4iKSwic3VwZXIiPT1rLnMudmFsaWduJiYoSz0iPFN1cD4iK0srIjwvU3VwPiIpLCJzdWIiPT1rLnMudmFsaWduJiYoSz0iPFN1Yj4iK0srIjwvU3ViPiIpLChrLnMubmFtZXx8ay5z'@; put 'LnN6fHxrLnMuY29sb3ImJm51bGwhPWsucy5jb2xvci5yZ2IpJiYoSz1bIjxGb250IixrLnMubmFtZT8nIGh0bWw6RmFjZT0iJytrLnMubmFtZSsnIic6IiIsay5zLnN6PycgaHRtbDpTaXplPSInK2sucy5zeisnIic6IiIsay5zLmNvbG9yPycgaHRtbDpDb2xvcj0iIycrKCIwMDAwMDAiKygi'@; put 'bnVtYmVyIj09dHlwZW9mIGsucy5jb2xvci5yZ2I/ay5zLmNvbG9yLnJnYi50b1N0cmluZygxNik6ay5zLmNvbG9yLnJnYikpLnNsaWNlKC02KSsnIic6IiIsIj4iLEssIjwvRm9udD4iXS5qb2luKCIiKSkpLEt9KS5qb2luKCIiKSsiPC9EYXRhPiJ9KFMuUik6JzxEYXRhIHNzOlR5cGU9Iicr'@; put 'WWUrJyI+JytUdCsiPC9EYXRhPiI7cmV0dXJuKFMuY3x8W10pLmxlbmd0aD4wJiYoaXQrPWZ1bmN0aW9uIE1JKFMpe3JldHVybiBTLm1hcChmdW5jdGlvbihPKXt2YXIgSz1Icigic3M6RGF0YSIsTmEoTy50fHwiIikse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIn0p'@; put 'O3JldHVybiBIcigiQ29tbWVudCIsSyx7InNzOkF1dGhvciI6Ty5hfSl9KS5qb2luKCIiKX0oUy5jKSksSHIoIkNlbGwiLGl0LHBlKX1mdW5jdGlvbiBLbmUoUyxPKXt2YXIgaz0nPFJvdyBzczpJbmRleD0iJysoUysxKSsnIic7cmV0dXJuIE8mJihPLmhweCYmIU8uaHB0JiYoTy5ocHQ9WjMo'@; put 'Ty5ocHgpKSxPLmhwdCYmKGsrPScgc3M6QXV0b0ZpdEhlaWdodD0iMCIgc3M6SGVpZ2h0PSInK08uaHB0KyciJyksTy5oaWRkZW4mJihrKz0nIHNzOkhpZGRlbj0iMSInKSksaysiPiJ9ZnVuY3Rpb24geEkoUyxPLGspe3ZhciBLPVtdLG9lPWsuU2hlZXRzW2suU2hlZXROYW1lc1tTXV0sbWU9'@; put 'b2U/ZnVuY3Rpb24gTnooUyxPLGssSyl7aWYoIVN8fCEoKEt8fHt9KS5Xb3JrYm9va3x8e30pLk5hbWVzKXJldHVybiIiO2Zvcih2YXIgZWU9Sy5Xb3JrYm9vay5OYW1lcyxvZT1bXSxtZT0wO21lPGVlLmxlbmd0aDsrK21lKXt2YXIgcGU9ZWVbbWVdO3BlLlNoZWV0PT1rJiYocGUuTmFtZS5t'@; put 'YXRjaCgvXl94bGZuXC4vKXx8b2UucHVzaChDSShwZSkpKX1yZXR1cm4gb2Uuam9pbigiIil9KG9lLDAsUyxrKToiIjtyZXR1cm4gbWUubGVuZ3RoPjAmJksucHVzaCgiPE5hbWVzPiIrbWUrIjwvTmFtZXM+IiksbWU9b2U/ZnVuY3Rpb24gVnooUyxPLGssSyl7aWYoIVNbIiFyZWYiXSlyZXR1'@; put 'cm4iIjt2YXIgZWU9c3MoU1siIXJlZiJdKSxvZT1TWyIhbWVyZ2VzIl18fFtdLG1lPTAscGU9W107U1siIWNvbHMiXSYmU1siIWNvbHMiXS5mb3JFYWNoKGZ1bmN0aW9uKGJ0LEJ0KXtKMChidCk7dmFyIER0PSEhYnQud2lkdGgsT3Q9dTgoQnQsYnQpLEt0PXsic3M6SW5kZXgiOkJ0KzF9O0R0'@; put 'JiYoS3RbInNzOldpZHRoIl09dzUoT3Qud2lkdGgpKSxidC5oaWRkZW4mJihLdFsic3M6SGlkZGVuIl09IjEiKSxwZS5wdXNoKEhyKCJDb2x1bW4iLG51bGwsS3QpKX0pO2Zvcih2YXIgYmU9QXJyYXkuaXNBcnJheShTKSxQZT1lZS5zLnI7UGU8PWVlLmUucjsrK1BlKXtmb3IodmFyIFZlPVtL'@; put 'bmUoUGUsKFNbIiFyb3dzIl18fFtdKVtQZV0pXSxZZT1lZS5zLmM7WWU8PWVlLmUuYzsrK1llKXt2YXIgZXQ9ITE7Zm9yKG1lPTA7bWUhPW9lLmxlbmd0aDsrK21lKWlmKCEob2VbbWVdLnMuYz5ZZXx8b2VbbWVdLnMucj5QZXx8b2VbbWVdLmUuYzxZZXx8b2VbbWVdLmUucjxQZSkpeyhvZVtt'@; put 'ZV0ucy5jIT1ZZXx8b2VbbWVdLnMuciE9UGUpJiYoZXQ9ITApO2JyZWFrfWlmKCFldCl7dmFyIGN0PXtyOlBlLGM6WWV9LFR0PXFpKGN0KTtWZS5wdXNoKCRuZShiZT8oU1tQZV18fFtdKVtZZV06U1tUdF0sVHQsUyxPLDAsMCxjdCkpfX1WZS5wdXNoKCI8L1Jvdz4iKSxWZS5sZW5ndGg+MiYm'@; put 'cGUucHVzaChWZS5qb2luKCIiKSl9cmV0dXJuIHBlLmpvaW4oIiIpfShvZSxPKToiIixtZS5sZW5ndGg+MCYmSy5wdXNoKCI8VGFibGU+IittZSsiPC9UYWJsZT4iKSxLLnB1c2goZnVuY3Rpb24gcVMoUyxPLGssSyl7aWYoIVMpcmV0dXJuIiI7dmFyIGVlPVtdO2lmKFNbIiFtYXJnaW5zIl0m'@; put 'JihlZS5wdXNoKCI8UGFnZVNldHVwPiIpLFNbIiFtYXJnaW5zIl0uaGVhZGVyJiZlZS5wdXNoKEhyKCJIZWFkZXIiLG51bGwseyJ4Ok1hcmdpbiI6U1siIW1hcmdpbnMiXS5oZWFkZXJ9KSksU1siIW1hcmdpbnMiXS5mb290ZXImJmVlLnB1c2goSHIoIkZvb3RlciIsbnVsbCx7Ing6TWFyZ2lu'@; put 'IjpTWyIhbWFyZ2lucyJdLmZvb3Rlcn0pKSxlZS5wdXNoKEhyKCJQYWdlTWFyZ2lucyIsbnVsbCx7Ing6Qm90dG9tIjpTWyIhbWFyZ2lucyJdLmJvdHRvbXx8IjAuNzUiLCJ4OkxlZnQiOlNbIiFtYXJnaW5zIl0ubGVmdHx8IjAuNyIsIng6UmlnaHQiOlNbIiFtYXJnaW5zIl0ucmlnaHR8fCIw'@; put 'LjciLCJ4OlRvcCI6U1siIW1hcmdpbnMiXS50b3B8fCIwLjc1In0pKSxlZS5wdXNoKCI8L1BhZ2VTZXR1cD4iKSksSyYmSy5Xb3JrYm9vayYmSy5Xb3JrYm9vay5TaGVldHMmJksuV29ya2Jvb2suU2hlZXRzW2tdKWlmKEsuV29ya2Jvb2suU2hlZXRzW2tdLkhpZGRlbillZS5wdXNoKEhyKCJW'@; put 'aXNpYmxlIiwxPT1LLldvcmtib29rLlNoZWV0c1trXS5IaWRkZW4/IlNoZWV0SGlkZGVuIjoiU2hlZXRWZXJ5SGlkZGVuIix7fSkpO2Vsc2V7Zm9yKHZhciBvZT0wO29lPGsmJighSy5Xb3JrYm9vay5TaGVldHNbb2VdfHxLLldvcmtib29rLlNoZWV0c1tvZV0uSGlkZGVuKTsrK29lKTtvZT09'@; put 'ayYmZWUucHVzaCgiPFNlbGVjdGVkLz4iKX1pZigoKCgoS3x8e30pLldvcmtib29rfHx7fSkuVmlld3N8fFtdKVswXXx8e30pLlJUTCYmZWUucHVzaCgiPERpc3BsYXlSaWdodFRvTGVmdC8+IiksWnQoU1siIWdyaWRsaW5lcyJdKSYmZWUucHVzaCgiPERvTm90RGlzcGxheUdyaWRsaW5lcy8+'@; put 'IiksU1siIWZyZWV6ZSJdKXtlZS5wdXNoKCI8RnJlZXplUGFuZXMvPiIpLGVlLnB1c2goIjxGcm96ZW5Ob1NwbGl0Lz4iKTt2YXIgbWU9VnMoU1siIWZyZWV6ZSJdKTttZS5yPjAmJihlZS5wdXNoKFZhKCJTcGxpdEhvcml6b250YWwiLCIiK21lLnIpKSxlZS5wdXNoKFZhKCJUb3BSb3dCb3R0'@; put 'b21QYW5lIiwiIittZS5yKSkpLG1lLmM+MCYmKGVlLnB1c2goVmEoIlNwbGl0VmVydGljYWwiLCIiK21lLmMpKSxlZS5wdXNoKFZhKCJMZWZ0Q29sdW1uUmlnaHRQYW5lIiwiIittZS5jKSkpfXJldHVybiBTWyIhcHJvdGVjdCJdJiYoZWUucHVzaChWYSgiUHJvdGVjdENvbnRlbnRzIiwiVHJ1'@; put 'ZSIpKSxTWyIhcHJvdGVjdCJdLm9iamVjdHMmJmVlLnB1c2goVmEoIlByb3RlY3RPYmplY3RzIiwiVHJ1ZSIpKSxTWyIhcHJvdGVjdCJdLnNjZW5hcmlvcyYmZWUucHVzaChWYSgiUHJvdGVjdFNjZW5hcmlvcyIsIlRydWUiKSksbnVsbD09U1siIXByb3RlY3QiXS5zZWxlY3RMb2NrZWRDZWxs'@; put 'c3x8U1siIXByb3RlY3QiXS5zZWxlY3RMb2NrZWRDZWxscz9udWxsIT1TWyIhcHJvdGVjdCJdLnNlbGVjdFVubG9ja2VkQ2VsbHMmJiFTWyIhcHJvdGVjdCJdLnNlbGVjdFVubG9ja2VkQ2VsbHMmJmVlLnB1c2goVmEoIkVuYWJsZVNlbGVjdGlvbiIsIlVubG9ja2VkQ2VsbHMiKSk6ZWUucHVz'@; put 'aChWYSgiRW5hYmxlU2VsZWN0aW9uIiwiTm9TZWxlY3Rpb24iKSksW1siZm9ybWF0Q2VsbHMiLCJBbGxvd0Zvcm1hdENlbGxzIl0sWyJmb3JtYXRDb2x1bW5zIiwiQWxsb3dTaXplQ29scyJdLFsiZm9ybWF0Um93cyIsIkFsbG93U2l6ZVJvd3MiXSxbImluc2VydENvbHVtbnMiLCJBbGxvd0lu'@; put 'c2VydENvbHMiXSxbImluc2VydFJvd3MiLCJBbGxvd0luc2VydFJvd3MiXSxbImluc2VydEh5cGVybGlua3MiLCJBbGxvd0luc2VydEh5cGVybGlua3MiXSxbImRlbGV0ZUNvbHVtbnMiLCJBbGxvd0RlbGV0ZUNvbHMiXSxbImRlbGV0ZVJvd3MiLCJBbGxvd0RlbGV0ZVJvd3MiXSxbInNvcnQi'@; put 'LCJBbGxvd1NvcnQiXSxbImF1dG9GaWx0ZXIiLCJBbGxvd0ZpbHRlciJdLFsicGl2b3RUYWJsZXMiLCJBbGxvd1VzZVBpdm90VGFibGVzIl1dLmZvckVhY2goZnVuY3Rpb24ocGUpe1NbIiFwcm90ZWN0Il1bcGVbMF1dJiZlZS5wdXNoKCI8IitwZVsxXSsiLz4iKX0pKSwwPT1lZS5sZW5ndGg/'@; put 'IiI6SHIoIldvcmtzaGVldE9wdGlvbnMiLGVlLmpvaW4oIiIpLHt4bWxuczp2bC54fSl9KG9lLDAsUyxrKSksSy5qb2luKCIiKX1mdW5jdGlvbiBFSShTLE8pe098fChPPXt9KSxTLlNTRnx8KFMuU1NGPUEuZ2V0X3RhYmxlKCkpLFMuU1NGJiYoYWUoQSksQS5sb2FkX3RhYmxlKFMuU1NGKSxP'@; put 'LnJldnNzZj1EZShTLlNTRiksTy5yZXZzc2ZbUy5TU0ZbNjU1MzVdXT0wLE8uc3NmPVMuU1NGLFMuU3R5bGVzPXtGb250czpPLkZvbnRzPVt7c3o6MTIsY29sb3I6e3RoZW1lOjEscmdiOiIwMDAwMDAifSxuYW1lOiJDYWxpYnJpIixmYW1pbHk6MixzY2hlbWU6Im1pbm9yIn1dLEZpbGxzOk8u'@; put 'RmlsbHM9W3twYXR0ZXJuVHlwZToibm9uZSJ9LHtwYXR0ZXJuVHlwZToiZ3JheTEyNSJ9XSxCb3JkZXJzOk8uQm9yZGVycz1be31dfSxPLmNlbGxYZnM9W10sTy5jZWxsU3R5bGVYZnM9W3tuYW1lOiJOb3JtYWwifV0sczAoTy5jZWxsWGZzLG51bGwse30se3JldnNzZjp7R2VuZXJhbDowfX0p'@; put 'KTt2YXIgaz1bXTtrLnB1c2goZnVuY3Rpb24gYkkoUyxPKXt2YXIgaz1bXTtyZXR1cm4gUy5Qcm9wcyYmay5wdXNoKGZ1bmN0aW9uIEt3KFMsTyl7dmFyIGs9W107cmV0dXJuIFJlKFA2KS5tYXAoZnVuY3Rpb24oSyl7Zm9yKHZhciBlZT0wO2VlPEQwLmxlbmd0aDsrK2VlKWlmKEQwW2VlXVsx'@; put 'XT09SylyZXR1cm4gRDBbZWVdO2ZvcihlZT0wO2VlPHJoLmxlbmd0aDsrK2VlKWlmKHJoW2VlXVsxXT09SylyZXR1cm4gcmhbZWVdO3Rocm93IEt9KS5mb3JFYWNoKGZ1bmN0aW9uKEspe2lmKG51bGwhPVNbS1sxXV0pe3ZhciBlZT1PJiZPLlByb3BzJiZudWxsIT1PLlByb3BzW0tbMV1dP08u'@; put 'UHJvcHNbS1sxXV06U1tLWzFdXTsiZGF0ZSI9PT1LWzJdJiYoZWU9bmV3IERhdGUoZWUpLnRvSVNPU3RyaW5nKCkucmVwbGFjZSgvXC5cZCpaLywiWiIpKSwibnVtYmVyIj09dHlwZW9mIGVlP2VlPVN0cmluZyhlZSk6ITA9PT1lZXx8ITE9PT1lZT9lZT1lZT8iMSI6IjAiOmVlIGluc3RhbmNl'@; put 'b2YgRGF0ZSYmKGVlPW5ldyBEYXRlKGVlKS50b0lTT1N0cmluZygpLnJlcGxhY2UoL1wuXGQqWi8sIiIpKSxrLnB1c2goVmEoUDZbS1sxXV18fEtbMV0sZWUpKX19KSxIcigiRG9jdW1lbnRQcm9wZXJ0aWVzIixrLmpvaW4oIiIpLHt4bWxuczp2bC5vfSl9KFMuUHJvcHMsTykpLFMuQ3VzdHBy'@; put 'b3BzJiZrLnB1c2goZnVuY3Rpb24gSDYoUyxPKXt2YXIgaz1bIldvcmtzaGVldHMiLCJTaGVldE5hbWVzIl0sSz0iQ3VzdG9tRG9jdW1lbnRQcm9wZXJ0aWVzIixlZT1bXTtyZXR1cm4gUyYmUmUoUykuZm9yRWFjaChmdW5jdGlvbihvZSl7aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9w'@; put 'ZXJ0eS5jYWxsKFMsb2UpKXtmb3IodmFyIG1lPTA7bWU8RDAubGVuZ3RoOysrbWUpaWYob2U9PUQwW21lXVsxXSlyZXR1cm47Zm9yKG1lPTA7bWU8cmgubGVuZ3RoOysrbWUpaWYob2U9PXJoW21lXVsxXSlyZXR1cm47Zm9yKG1lPTA7bWU8ay5sZW5ndGg7KyttZSlpZihvZT09a1ttZV0pcmV0'@; put 'dXJuO3ZhciBwZT1TW29lXSxiZT0ic3RyaW5nIjsibnVtYmVyIj09dHlwZW9mIHBlPyhiZT0iZmxvYXQiLHBlPVN0cmluZyhwZSkpOiEwPT09cGV8fCExPT09cGU/KGJlPSJib29sZWFuIixwZT1wZT8iMSI6IjAiKTpwZT1TdHJpbmcocGUpLGVlLnB1c2goSHIoZmEob2UpLHBlLHsiZHQ6ZHQi'@; put 'OmJlfSkpfX0pLE8mJlJlKE8pLmZvckVhY2goZnVuY3Rpb24ob2Upe2lmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChPLG9lKSYmKCFTfHwhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFMsb2UpKSl7dmFyIG1lPU9bb2VdLHBlPSJzdHJpbmciOyJu'@; put 'dW1iZXIiPT10eXBlb2YgbWU/KHBlPSJmbG9hdCIsbWU9U3RyaW5nKG1lKSk6ITA9PT1tZXx8ITE9PT1tZT8ocGU9ImJvb2xlYW4iLG1lPW1lPyIxIjoiMCIpOm1lIGluc3RhbmNlb2YgRGF0ZT8ocGU9ImRhdGVUaW1lLnR6IixtZT1tZS50b0lTT1N0cmluZygpKTptZT1TdHJpbmcobWUpLGVl'@; put 'LnB1c2goSHIoZmEob2UpLG1lLHsiZHQ6ZHQiOnBlfSkpfX0pLCI8IitLKycgeG1sbnM9IicrdmwubysnIj4nK2VlLmpvaW4oIiIpKyI8LyIrSysiPiJ9KFMuUHJvcHMsUy5DdXN0cHJvcHMpKSxrLmpvaW4oIiIpfShTLE8pKSxrLnB1c2goIiIpLGsucHVzaCgiIiksay5wdXNoKCIiKTtmb3Io'@; put 'dmFyIEs9MDtLPFMuU2hlZXROYW1lcy5sZW5ndGg7KytLKWsucHVzaChIcigiV29ya3NoZWV0Iix4SShLLE8sUykseyJzczpOYW1lIjpQcihTLlNoZWV0TmFtZXNbS10pfSkpO3JldHVybiBrWzJdPWZ1bmN0aW9uIHdJKFMsTyl7dmFyIEs9W1snPFN0eWxlIHNzOklEPSJEZWZhdWx0IiBzczpO'@; put 'YW1lPSJOb3JtYWwiPicsJzxBbGlnbm1lbnQgc3M6VmVydGljYWw9IkJvdHRvbSIvPicsIjxCb3JkZXJzLz4iLCc8Rm9udCBzczpGb250TmFtZT0iQ2FsaWJyaSIgeDpGYW1pbHk9IlN3aXNzIiBzczpTaXplPSIxMiIgc3M6Q29sb3I9IiMwMDAwMDAiLz4nLCI8SW50ZXJpb3IvPiIsIjxOdW1i'@; put 'ZXJGb3JtYXQvPiIsIjxQcm90ZWN0aW9uLz4iLCI8L1N0eWxlPiJdLmpvaW4oIiIpXTtyZXR1cm4gTy5jZWxsWGZzLmZvckVhY2goZnVuY3Rpb24oZWUsb2Upe3ZhciBtZT1bXTtpZihlZS5hbGlnbm1lbnQpe3ZhciBwZT17fTtlZS5hbGlnbm1lbnQuc2hyaW5rVG9GaXQmJihwZVsic3M6U2hy'@; put 'aW5rVG9GaXQiXT0iMSIpLGVlLmFsaWdubWVudC53cmFwVGV4dCYmKHBlWyJzczpXcmFwVGV4dCJdPSIxIiksZWUuYWxpZ25tZW50LnZlcnRpY2FsJiYocGVbInNzOlZlcnRpY2FsIl09a3QoZWUuYWxpZ25tZW50LnZlcnRpY2FsKSksZWUuYWxpZ25tZW50Lmhvcml6b250YWwmJihwZVsic3M6'@; put 'SG9yaXpvbnRhbCJdPWt0KGVlLmFsaWdubWVudC5ob3Jpem9udGFsKSksZWUuYWxpZ25tZW50LmluZGVudCYmKHBlWyJzczpJbmRlbnQiXT1lZS5hbGlnbm1lbnQuaW5kZW50KSxlZS5hbGlnbm1lbnQudGV4dFJvdGF0aW9uJiYocGVbInNzOlJvdGF0ZSJdPWVlLmFsaWdubWVudC50ZXh0Um90'@; put 'YXRpb24pLG1lLnB1c2goSHIoIkFsaWdubWVudCIsbnVsbCxwZSkpfWU6aWYobnVsbCE9ZWUuZm9udElkKXt2YXIgYmU9Ty5Gb250c1tlZS5mb250SWRdO2lmKCFiZSlicmVhayBlO3ZhciBQZT17InNzOkZvbnROYW1lIjoiQ2FsaWJyaSIsInNzOlNpemUiOiIxMiJ9LFZlPSExO2JlLmJvbGQm'@; put 'JihWZT0hMCxQZVsic3M6Qm9sZCJdPSIxIiksYmUuaXRhbGljJiYoVmU9ITAsUGVbInNzOkl0YWxpYyJdPSIxIiksYmUuc3RyaWtlJiYoVmU9ITAsUGVbInNzOlN0cmlrZVRocm91Z2giXT0iMSIpLG51bGwhPWJlLnVuZGVybGluZSYmKFZlPSEwLFBlWyJzczpVbmRlcmxpbmUiXT13eVtiZS51'@; put 'bmRlcmxpbmVdfHwoYmUudW5kZXJsaW5lPyJTaW5nbGUiOiJOb25lIikpLG51bGwhPWJlLnN6JiYoVmU9ITAsUGVbInNzOlNpemUiXT1iZS5zeiksbnVsbCE9YmUubmFtZSYmKFZlPSEwLFBlWyJzczpGb250TmFtZSJdPWJlLm5hbWUpLGJlLmNvbG9yJiZudWxsIT1iZS5jb2xvci5yZ2ImJihW'@; put 'ZT0hMCxQZVsic3M6Q29sb3IiXT0iIyIrKCJudW1iZXIiPT10eXBlb2YgYmUuY29sb3IucmdiPyIwMDAwMDAiK2JlLmNvbG9yLnJnYi50b1N0cmluZygxNik6YmUuY29sb3IucmdiKS5zbGljZSgtNikpLFsic3ViIiwic3VwZXIiXS5pbmRleE9mKGJlLnZhbGlnbik+LTEmJihQZVsic3M6VmVy'@; put 'dGljYWxBbGlnbiJdPWt0KGJlLnZhbGlnbikrInNjcmlwdCIpLFZlJiZtZS5wdXNoKEhyKCJGb250IixudWxsLFBlKSl9ZTppZihlZS5maWxsSWQ+MCl7dmFyIFllPU8uRmlsbHNbZWUuZmlsbElkXTtpZighWWV8fCFZZS5mZ0NvbG9yfHxudWxsPT1ZZS5mZ0NvbG9yLnJnYilicmVhayBlO21l'@; put 'LnB1c2goSHIoIkludGVyaW9yIixudWxsLHsic3M6UGF0dGVybiI6Q0NbWWUucGF0dGVyblR5cGVdfHwiU29saWQiLCJzczpDb2xvciI6IiMiKygibnVtYmVyIj09dHlwZW9mIFllLmZnQ29sb3IucmdiPyIwMCIrWWUuZmdDb2xvci5yZ2IudG9TdHJpbmcoMTYpOlllLmZnQ29sb3IucmdiKS5z'@; put 'bGljZSgtNil9KSl9bWUucHVzaChIcigiTnVtYmVyRm9ybWF0IixudWxsLHsic3M6Rm9ybWF0IjpQcihBLl90YWJsZVtlZS5udW1GbXRJZF0pfSkpO3ZhciBldD17InNzOklEIjoicyIrKDIxK29lKX07ZWUuc3R5bGUmJihldFsic3M6TmFtZSJdPWVlLnN0eWxlKSxLLnB1c2goSHIoIlN0eWxl'@; put 'IixtZS5qb2luKCIiKSxldCkpfSksSHIoIlN0eWxlcyIsSy5qb2luKCIiKSl9KDAsTyksa1szXT1mdW5jdGlvbiBTSShTKXtpZighKChTfHx7fSkuV29ya2Jvb2t8fHt9KS5OYW1lcylyZXR1cm4iIjtmb3IodmFyIE89Uy5Xb3JrYm9vay5OYW1lcyxrPVtdLEs9MDtLPE8ubGVuZ3RoOysrSyl7'@; put 'dmFyIGVlPU9bS107bnVsbD09ZWUuU2hlZXQmJihlZS5OYW1lLm1hdGNoKC9eX3hsZm5cLi8pfHxrLnB1c2goQ0koZWUpKSl9cmV0dXJuIEhyKCJOYW1lcyIsay5qb2luKCIiKSl9KFMpLERpK0hyKCJXb3JrYm9vayIsay5qb2luKCIiKSx7eG1sbnM6dmwuc3MsInhtbG5zOm8iOnZsLm8sInht'@; put 'bG5zOngiOnZsLngsInhtbG5zOnNzIjp2bC5zcywieG1sbnM6ZHQiOnZsLmR0LCJ4bWxuczpodG1sIjp2bC5odG1sfSl9ZnVuY3Rpb24gVEkoUyxPLGssSyl7dmFyIGVlPWssb2U9W10sbWU9Ty5zbGljZShPLmwsTy5sK2VlKTtpZihLJiZLLmVuYyYmSy5lbmMuaW5zaXR1JiZtZS5sZW5ndGg+'@; put 'MClzd2l0Y2goUy5uKXtjYXNlIkJPRiI6Y2FzZSJGaWxlUGFzcyI6Y2FzZSJGaWxlTG9jayI6Y2FzZSJJbnRlcmZhY2VIZHIiOmNhc2UiUlJESW5mbyI6Y2FzZSJSUkRIZWFkIjpjYXNlIlVzckV4Y2wiOmNhc2UiRU9GIjpLLmVuYy5pbnNpdHUoU2Uoe2xlbmd0aDptZS5sZW5ndGh9KSwic2tp'@; put 'cCIpO2JyZWFrO2Nhc2UiQm91bmRTaGVldDgiOksuZW5jLmluc2l0dShTZSh7bGVuZ3RoOjR9KSwic2tpcCIpLG1lPUJ1ZmZlci5jb25jYXQoW0J1ZmZlci5mcm9tKG1lLnNsaWNlKDAsNCkpLEJ1ZmZlci5mcm9tKEsuZW5jLmluc2l0dShtZS5zbGljZSg0KSkpXSk7YnJlYWs7ZGVmYXVsdDpt'@; put 'ZT1LLmVuYy5pbnNpdHUobWUpfUFycmF5LmlzQXJyYXkoTykmJiFBcnJheS5pc0FycmF5KG1lKSYmKG1lPUFycmF5LmZyb20obWUpKSxvZS5wdXNoKG1lKSxPLmwrPWVlO2Zvcih2YXIgcGU9ZU1bUWEoTyxPLmwpXSxiZT0wO251bGwhPXBlJiYiQ29udGludWUiPT09cGUubi5zbGljZSgwLDgp'@; put 'OyllZT1RYShPLE8ubCsyKSxiZT1PLmwrNCxLJiZLLmVuYyYmSy5lbmMuaW5zaXR1JiZLLmVuYy5pbnNpdHUoU2Uoe2xlbmd0aDo0fSksInNraXAiKSwiQ29udGludWVGcnQiPT1wZS5uP2JlKz00OiJDb250aW51ZUZydCI9PXBlLm4uc2xpY2UoMCwxMSkmJihiZSs9MTIsSyYmSy5lbmMmJksu'@; put 'ZW5jLmluc2l0dSYmSy5lbmMuaW5zaXR1KFNlKHtsZW5ndGg6OH0pLCJza2lwIikpLG1lPU8uc2xpY2UoYmUsTy5sKzQrZWUpLEsmJksuZW5jJiZLLmVuYy5pbnNpdHUmJm1lLmxlbmd0aD4wJiYobWU9Sy5lbmMuaW5zaXR1KG1lKSksb2UucHVzaChtZSksTy5sKz00K2VlLHBlPWVNW1FhKE8s'@; put 'Ty5sKV07dmFyIFBlPVUob2UpO2duKFBlLDApO3ZhciBWZT0wO1BlLmxlbnM9W107Zm9yKHZhciBZZT0wO1llPG9lLmxlbmd0aDsrK1llKVBlLmxlbnMucHVzaChWZSksVmUrPW9lW1llXS5sZW5ndGg7aWYoUGUubGVuZ3RoPGspdGhyb3ciWExTIFJlY29yZCAiKyhTJiZTLm58fCI/PyIpKyIg'@; put 'VHJ1bmNhdGVkOiAiK1BlLmxlbmd0aCsiIDwgIitrO3JldHVybiBTLmYoUGUsUGUubGVuZ3RoLEspfWZ1bmN0aW9uIGhoKFMsTyxrKXtpZigieiIhPT1TLnQmJlMuWEYpe3ZhciBLPTA7dHJ5e0s9Uy56fHxTLlhGLm51bUZtdElkfHwwLE8uY2VsbE5GJiYoUy56PUEuX3RhYmxlW0tdKX1jYXRj'@; put 'aChvZSl7aWYoTy5XVEYpdGhyb3cgb2V9aWYoIU98fCExIT09Ty5jZWxsVGV4dCl0cnl7Uy53PSJlIj09PVMudD9TLnd8fENjW1Mudl06MD09PUt8fCJHZW5lcmFsIj09Sz8ibiI9PT1TLnQ/KDB8Uy52KT09PVMudj9BLl9nZW5lcmFsX2ludChTLnYpOkEuX2dlbmVyYWxfbnVtKFMudik6QS5f'@; put 'Z2VuZXJhbChTLnYpOkEuZm9ybWF0KEssUy52LHtkYXRlMTkwNDohIWssZGF0ZU5GOk8mJk8uZGF0ZU5GfSl9Y2F0Y2gob2Upe2lmKE8uV1RGKXRocm93IG9lfWlmKE8uY2VsbERhdGVzJiZLJiYibiI9PVMudCYmQS5pc19kYXRlKEEuX3RhYmxlW0tdfHxTdHJpbmcoSykpKXt2YXIgZWU9QS5w'@; put 'YXJzZV9kYXRlX2NvZGUoUy52KTtlZSYmKFMudD0iZCIsUy52PW5ldyBEYXRlKGVlLnksZWUubS0xLGVlLmQsZWUuSCxlZS5NLGVlLlMsZWUudSkpfX19ZnVuY3Rpb24gUjgoUyxPLGspe3JldHVybnt2OlMsaXhmZTpPLHQ6a319dmFyIEFJPWZ1bmN0aW9uKFMsTyxrKXtPWyIhb2JqZWN0cyJd'@; put 'PVN9LFN5PXtTSToiZTA4NTlmZjJmOTRmNjgxMGFiOTEwODAwMmIyN2IzZDkiLERTSToiMDJkNWNkZDU5YzJlMWIxMDkzOTcwODAwMmIyY2Y5YWUiLFVESToiMDVkNWNkZDU5YzJlMWIxMDkzOTcwODAwMmIyY2Y5YWUifTtmdW5jdGlvbiBRUyhTLE8pe3ZhciBrLEssZWUsb2U7aWYoT3x8KE89'@; put 'e30pLGpJKE8pLFcoKSxPLmNvZGVwYWdlJiZMKE8uY29kZXBhZ2UpLFMuRnVsbFBhdGhzKXtpZih2ZS5maW5kKFMsIi9lbmNyeXB0aW9uIikpdGhyb3cgbmV3IEVycm9yKCJGaWxlIGlzIHBhc3N3b3JkLXByb3RlY3RlZCIpO2s9dmUuZmluZChTLCIhQ29tcE9iaiIpLEs9dmUuZmluZChTLCIv'@; put 'V29ya2Jvb2siKXx8dmUuZmluZChTLCIvQm9vayIpfWVsc2V7c3dpdGNoKE8udHlwZSl7Y2FzZSJiYXNlNjQiOlM9eShfZS5kZWNvZGUoUykpO2JyZWFrO2Nhc2UiYmluYXJ5IjpTPXkoUyk7YnJlYWs7Y2FzZSJidWZmZXIiOmJyZWFrO2Nhc2UiYXJyYXkiOkFycmF5LmlzQXJyYXkoUyl8fChT'@; put 'PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKFMpKX1nbihTLDApLEs9e2NvbnRlbnQ6U319aWYoayYmZnVuY3Rpb24gSlMoUyl7dmFyIE89e30saz1TLmNvbnRlbnQ7aWYoay5sPTI4LE8uQW5zaVVzZXJUeXBlPWsucmVhZF9zaGlmdCgwLCJscHN0ci1hbnNpIiksTy5BbnNpQ2xpcGJvYXJk'@; put 'Rm9ybWF0PWZ1bmN0aW9uIHYwKFMpe3JldHVybiBCdyhTLDEpfShrKSxrLmxlbmd0aC1rLmw8PTQpcmV0dXJuIE87dmFyIEs9ay5yZWFkX3NoaWZ0KDQpO2lmKDA9PUt8fEs+NDB8fChrLmwtPTQsTy5SZXNlcnZlZDE9ay5yZWFkX3NoaWZ0KDAsImxwc3RyLWFuc2kiKSxrLmxlbmd0aC1rLmw8'@; put 'PTQpfHwxOTA3NTA1NjUyIT09KEs9ay5yZWFkX3NoaWZ0KDQpKXx8KE8uVW5pY29kZUNsaXBib2FyZEZvcm1hdD1mdW5jdGlvbiBBNihTKXtyZXR1cm4gQncoUywyKX0oayksMD09KEs9ay5yZWFkX3NoaWZ0KDQpKXx8Sz40MCkpcmV0dXJuIE87ay5sLT00LE8uUmVzZXJ2ZWQyPWsucmVhZF9z'@; put 'aGlmdCgwLCJscHdzdHIiKX0oayksTy5ib29rUHJvcHMmJiFPLmJvb2tTaGVldHMpZWU9e307ZWxzZXt2YXIgbWU9VGU/ImJ1ZmZlciI6ImFycmF5IjtpZihLJiZLLmNvbnRlbnQpZWU9ZnVuY3Rpb24gQnooUyxPKXt2YXIgaz17b3B0czp7fX0sSz17fTtudWxsIT1zZSYmbnVsbD09Ty5kZW5z'@; put 'ZSYmKE8uZGVuc2U9c2UpO3ZhciBZZSxjdCxpdCxidCxPdCxLdCxlZT1PLmRlbnNlP1tdOnt9LG9lPXt9LG1lPXt9LHBlPW51bGwsYmU9W10sUGU9IiIsVmU9e30sZXQ9IiIsQnQ9e30sRHQ9W10sVG49W10sc3I9W10sQ249e1NoZWV0czpbXSxXQlByb3BzOntkYXRlMTkwNDohMX0sVmlld3M6'@; put 'W3t9XX0sdXI9e30sZXI9e0ZvbnRzOltdfSxqbj1mdW5jdGlvbihraSl7cmV0dXJuIGtpPDg/dDBba2ldOmtpPDY0JiZzcltraS04XXx8dDBba2ldfSxwcj1mdW5jdGlvbihraSxvbyl7dmFyIFNsLEdzPWtpLlhGLmRhdGE7R3MmJihHcy5wYXR0ZXJuVHlwZXx8bnVsbCE9R3MuaWN2Rm9yZSkm'@; put 'Jm9vJiZvby5jZWxsU3R5bGVzJiYoa2kucz17fSxraS5zLnBhdHRlcm5UeXBlPUdzLnBhdHRlcm5UeXBlLGtpLlhGLmZvbnQmJlB0KGtpLnMsa2kuWEYuZm9udCksR3MuZldyYXAmJigoa2kucy5hbGlnbm1lbnR8fChraS5zLmFsaWdubWVudD17fSkpLndyYXBUZXh0PSEwKSxHcy5mU2hyaW5r'@; put 'VG9GaXQmJigoa2kucy5hbGlnbm1lbnR8fChraS5zLmFsaWdubWVudD17fSkpLnNocmlua1RvRml0PSEwKSxHcy5oYWxpZ24mJigoa2kucy5hbGlnbm1lbnR8fChraS5zLmFsaWdubWVudD17fSkpLmhvcml6b250YWw9R3MuaGFsaWduKSxHcy52YWxpZ24mJigoa2kucy5hbGlnbm1lbnR8fChr'@; put 'aS5zLmFsaWdubWVudD17fSkpLnZlcnRpY2FsPUdzLnZhbGlnbiksR3MuY0luZGVudCYmKChraS5zLmFsaWdubWVudHx8KGtpLnMuYWxpZ25tZW50PXt9KSkuaW5kZW50PUdzLmNJbmRlbnQpLDY0IT1Hcy5pY3ZGb3JlJiY2NSE9R3MuaWN2QmFjayYmKChTbD1wZChqbihHcy5pY3ZGb3JlKSkp'@; put 'JiYoa2kucy5mZ0NvbG9yPXtyZ2I6U2x9KSwoU2w9cGQoam4oR3MuaWN2QmFjaykpKSYmKGtpLnMuYmdDb2xvcj17cmdiOlNsfSkpLFsiTGVmdCIsIlJpZ2h0IiwiVG9wIiwiQm90dG9tIl0uZm9yRWFjaChmdW5jdGlvbihtdSl7R3NbImRnIittdV0mJihraS5zW211LnRvTG93ZXJDYXNlKCld'@; put 'PXtzdHlsZTpnZFtHc1siZGciK211XV0sY29sb3I6e3JnYjpwZChqbihHc1siaWN2IittdV0pKX19KX0pKX0sYnI9ZnVuY3Rpb24oa2ksb28sR3Mpe2lmKCEoV2k+MXx8R3Muc2hlZXRSb3dzJiZraS5yPj1Hcy5zaGVldFJvd3MpKXtpZihHcy5jZWxsU3R5bGVzJiZvby5YRiYmb28uWEYuZGF0'@; put 'YSYmcHIob28sR3MpLGRlbGV0ZSBvby5peGZlLGRlbGV0ZSBvby5YRixZZT1raSxldD1xaShraSksKCFtZXx8IW1lLnN8fCFtZS5lKSYmKG1lPXtzOntyOjAsYzowfSxlOntyOjAsYzowfX0pLGtpLnI8bWUucy5yJiYobWUucy5yPWtpLnIpLGtpLmM8bWUucy5jJiYobWUucy5jPWtpLmMpLGtp'@; put 'LnIrMT5tZS5lLnImJihtZS5lLnI9a2kucisxKSxraS5jKzE+bWUuZS5jJiYobWUuZS5jPWtpLmMrMSksR3MuY2VsbEZvcm11bGEmJm9vLmYpZm9yKHZhciBTbD0wO1NsPER0Lmxlbmd0aDsrK1NsKWlmKCEoRHRbU2xdWzBdLnMuYz5raS5jfHxEdFtTbF1bMF0ucy5yPmtpLnJ8fER0W1NsXVsw'@; put 'XS5lLmM8a2kuY3x8RHRbU2xdWzBdLmUucjxraS5yKSl7b28uRj1yYShEdFtTbF1bMF0pLChEdFtTbF1bMF0ucy5jIT1raS5jfHxEdFtTbF1bMF0ucy5yIT1raS5yKSYmZGVsZXRlIG9vLmYsb28uZiYmKG9vLmY9IiIrYTAoRHRbU2xdWzFdLG1lLGtpLEhuLHJyKSk7YnJlYWt9R3MuZGVuc2U/'@; put 'KGVlW2tpLnJdfHwoZWVba2kucl09W10pLGVlW2tpLnJdW2tpLmNdPW9vKTplZVtldF09b299fSxycj17ZW5jOiExLHNiY2NoOjAsc25hbWVzOltdLHNoYXJlZGY6QnQsYXJyYXlmOkR0LHJydGFiaWQ6W10sbGFzdHVzZXI6IiIsYmlmZjo4LGNvZGVwYWdlOjAsd2lubG9ja2VkOjAsY2VsbFN0'@; put 'eWxlczohIU8mJiEhTy5jZWxsU3R5bGVzLFdURjohIU8mJiEhTy53dGZ9O3JyLnBhc3N3b3JkPU8ucGFzc3dvcmQ/Ty5wYXNzd29yZDoiVmVsdmV0U3dlYXRzaG9wIjt2YXIgUGksU2k9bnVsbCxuYT1bXSxsYT1bXSxSaT1bXSxScj1bXSx3cj0hMSxIbj1bXTtIbi5TaGVldE5hbWVzPXJyLnNu'@; put 'YW1lcyxIbi5zaGFyZWRmPXJyLnNoYXJlZGYsSG4uYXJyYXlmPXJyLmFycmF5ZixIbi5uYW1lcz1bXSxIbi5YVEk9W107dmFyIGlhLHpyPSIiLFdpPTAsQ2k9MCx3YT1bXSxvcz1bXTtyci5jb2RlcGFnZT0xMjAwLEIoMTIwMCk7Zm9yKHZhciBPcz0hMTtTLmw8Uy5sZW5ndGgtMTspe3ZhciBQ'@; put 'YT1TLmwsdXM9Uy5yZWFkX3NoaWZ0KDIpO2lmKHJyJiZyci5lbmMmJnJyLmVuYy5pbnNpdHUmJnJyLmVuYy5pbnNpdHUoU2UoWzAsMF0pLCJoZWFkZXItMCIpLDA9PT11cyYmIkVPRiI9PT16cilicmVhazt2YXIgcWE9Uy5sPT09Uy5sZW5ndGg/MDpTLnJlYWRfc2hpZnQoMik7cnImJnJyLmVu'@; put 'YyYmcnIuZW5jLmluc2l0dSYmcnIuZW5jLmluc2l0dShTZShbMCwwXSksImxlbmd0aC0wIik7dmFyIFZpPWVNW3VzXTtpZihWaSYmVmkuZil7aWYoTy5ib29rU2hlZXRzJiYiQm91bmRTaGVldDgiPT09enImJiJCb3VuZFNoZWV0OCIhPT1WaS5uKWJyZWFrO2lmKHpyPVZpLm4sMj09PVZpLnJ8'@; put 'fDEyPT1WaS5yKXt2YXIgSW89Uy5yZWFkX3NoaWZ0KDIpO2lmKHFhLT0yLHJyJiZyci5lbmMmJnJyLmVuYy5pbnNpdHUmJnJyLmVuYy5pbnNpdHUoU2UoWzAsMF0pKSwhcnIuZW5jJiZJbyE9PXVzJiYoKDI1NSZJbyk8PDh8SW8+PjgpIT09dXMpdGhyb3cgbmV3IEVycm9yKCJydCBtaXNtYXRj'@; put 'aDogIitJbysiIT0iK3VzKTsxMj09VmkuciYmKFMubCs9MTAscWEtPTEwLHJyJiZyci5lbmMmJnJyLmVuYy5pbnNpdHUmJnJyLmVuYy5pbnNpdHUoU2UoWzAsMCwwLDAsMCwwLDAsMCwwLDBdKSkpfXZhciBGbj1USShWaSxTLHFhLHJyKSxZcz1WaS5uO2lmKDA9PVdpJiYiQk9GIiE9WXMpY29u'@; put 'dGludWU7c3dpdGNoKFlzKXtjYXNlIkRhdGUxOTA0IjprLm9wdHMuRGF0ZTE5MDQ9Q24uV0JQcm9wcy5kYXRlMTkwND1GbjticmVhaztjYXNlIldyaXRlUHJvdGVjdCI6ay5vcHRzLldyaXRlUHJvdGVjdD0hMDticmVhaztjYXNlIkZpbGVQYXNzIjppZihyci5lbmN8fChTLmw9MCxXaT0wKSxy'@; put 'ci5lbmM9Rm4sIU8ucGFzc3dvcmQmJm51bGw9PUZuLnZhbGlkKXRocm93IG5ldyBFcnJvcigiRmlsZSBpcyBwYXNzd29yZC1wcm90ZWN0ZWQiKTtpZihudWxsPT1Gbi52YWxpZCl0aHJvdyBuZXcgRXJyb3IoIkVuY3J5cHRpb24gc2NoZW1lIHVuc3VwcG9ydGVkIik7aWYoIUZuLnZhbGlkKXRo'@; put 'cm93IG5ldyBFcnJvcigiUGFzc3dvcmQgaXMgaW5jb3JyZWN0Iik7YnJlYWs7Y2FzZSJXcml0ZUFjY2VzcyI6cnIubGFzdHVzZXI9Rm47YnJlYWs7Y2FzZSJGaWxlU2hhcmluZyI6Y2FzZSJUZW1wbGF0ZSI6Y2FzZSJCb29rQm9vbCI6Y2FzZSJVc2VzRUxGcyI6Y2FzZSJNVFJTZXR0aW5ncyI6'@; put 'Y2FzZSJVbmNhbGNlZCI6Y2FzZSJFeHRTU1QiOmNhc2UiQm9va0V4dCI6Y2FzZSJSaWNoVGV4dFN0cmVhbSI6Y2FzZSJCa0hpbSI6Y2FzZSJJbmRleCI6Y2FzZSJQcm90NFJldiI6Y2FzZSJQcm90NFJldlBhc3MiOmJyZWFrO2Nhc2UiQ29kZVBhZ2UiOnZhciBocj1OdW1iZXIoRm4pO3N3aXRj'@; put 'aChocil7Y2FzZSAyMTAxMDpocj0xMjAwO2JyZWFrO2Nhc2UgMzI3Njg6aHI9MWU0O2JyZWFrO2Nhc2UgMzI3Njk6aHI9MTI1Mn1CKHJyLmNvZGVwYWdlPWhyKSxPcz0hMDticmVhaztjYXNlIlJSVGFiSWQiOnJyLnJydGFiaWQ9Rm47YnJlYWs7Y2FzZSJXaW5Qcm90ZWN0Ijpyci53aW5sb2Nr'@; put 'ZWQ9Rm47YnJlYWs7Y2FzZSJSZWZyZXNoQWxsIjpjYXNlIkNhbGNDb3VudCI6Y2FzZSJDYWxjRGVsdGEiOmNhc2UiQ2FsY0l0ZXIiOmNhc2UiQ2FsY01vZGUiOmNhc2UiQ2FsY1ByZWNpc2lvbiI6Y2FzZSJDYWxjU2F2ZVJlY2FsYyI6ay5vcHRzW1lzXT1GbjticmVhaztjYXNlIkNhbGNSZWZN'@; put 'b2RlIjpyci5DYWxjUmVmTW9kZT1GbjticmVhaztjYXNlIkZvcmNlRnVsbENhbGN1bGF0aW9uIjprLm9wdHMuRnVsbENhbGM9Rm47YnJlYWs7Y2FzZSJXc0Jvb2wiOkZuLmZEaWFsb2cmJihlZVsiIXR5cGUiXT0iZGlhbG9nIiksRm4uZkJlbG93fHwoKGVlWyIhb3V0bGluZSJdfHwoZWVbIiFv'@; put 'dXRsaW5lIl09e30pKS5hYm92ZT0hMCksRm4uZlJpZ2h0fHwoKGVlWyIhb3V0bGluZSJdfHwoZWVbIiFvdXRsaW5lIl09e30pKS5sZWZ0PSEwKTticmVhaztjYXNlIlhGIjpGbi5mb250PWVyLkZvbnRzW0ZuLmlmbnQ8ND9Gbi5pZm50OkZuLmlmbnQtMV0sVG4ucHVzaChGbik7YnJlYWs7Y2Fz'@; put 'ZSJTdXBCb29rIjpIbi5wdXNoKFtGbl0pLEhuW0huLmxlbmd0aC0xXS5YVEk9W107YnJlYWs7Y2FzZSJFeHRlcm5OYW1lIjpIbltIbi5sZW5ndGgtMV0ucHVzaChGbik7YnJlYWs7Y2FzZSJMYmwiOmlhPXtOYW1lOkZuLk5hbWUsUmVmOmEwKEZuLnJnY2UsbWUsbnVsbCxIbixycil9LEZuLml0'@; put 'YWI+MCYmKGlhLlNoZWV0PUZuLml0YWItMSksSG4ubmFtZXMucHVzaChpYSksSG5bMF18fChIblswXT1bXSxIblswXS5YVEk9W10pLEhuW0huLmxlbmd0aC0xXS5wdXNoKEZuKSwiX3hsbm0uX0ZpbHRlckRhdGFiYXNlIj09Rm4uTmFtZSYmRm4uaXRhYj4wJiZGbi5yZ2NlJiZGbi5yZ2NlWzBd'@; put 'JiZGbi5yZ2NlWzBdWzBdJiYiUHRnQXJlYTNkIj09Rm4ucmdjZVswXVswXVswXSYmKG9zW0ZuLml0YWItMV09e3JlZjpyYShGbi5yZ2NlWzBdWzBdWzFdWzJdKX0pO2JyZWFrO2Nhc2UiRXh0ZXJuQ291bnQiOnJyLkV4dGVybkNvdW50PUZuO2JyZWFrO2Nhc2UiRXh0ZXJuU2hlZXQiOjA9PUhu'@; put 'Lmxlbmd0aCYmKEhuWzBdPVtdLEhuWzBdLlhUST1bXSksSG5bSG4ubGVuZ3RoLTFdLlhUST1IbltIbi5sZW5ndGgtMV0uWFRJLmNvbmNhdChGbiksSG4uWFRJPUhuLlhUSS5jb25jYXQoRm4pO2JyZWFrO2Nhc2UiTmFtZUNtdCI6aWYocnIuYmlmZjw4KWJyZWFrO251bGwhPWlhJiYoaWEuQ29t'@; put 'bWVudD1GblsxXSk7YnJlYWs7Y2FzZSJQcm90ZWN0IjplZVsiIXByb3RlY3QiXT1GbjticmVhaztjYXNlIlBhc3N3b3JkIjowIT09Rm4mJnJyLldURiYmY29uc29sZS5lcnJvcigiUGFzc3dvcmQgdmVyaWZpZXI6ICIrRm4pO2JyZWFrO2Nhc2UiQm91bmRTaGVldDgiOm9lW0ZuLnBvc109Rm4s'@; put 'cnIuc25hbWVzLnB1c2goRm4ubmFtZSk7YnJlYWs7Y2FzZSJFT0YiOmlmKGVlWyIhZ3JpZGxpbmVzIl09IVNpfHxTaS5ncmlkLFNpPW51bGwsLS1XaSlicmVhaztpZihtZS5lKXtpZihtZS5lLnI+MCYmbWUuZS5jPjApe2lmKG1lLmUuci0tLG1lLmUuYy0tLGVlWyIhcmVmIl09cmEobWUpLE8u'@; put 'c2hlZXRSb3dzJiZPLnNoZWV0Um93czw9bWUuZS5yKXt2YXIgSmw9bWUuZS5yO21lLmUucj1PLnNoZWV0Um93cy0xLGVlWyIhZnVsbHJlZiJdPWVlWyIhcmVmIl0sZWVbIiFyZWYiXT1yYShtZSksbWUuZS5yPUpsfW1lLmUucisrLG1lLmUuYysrfW5hLmxlbmd0aD4wJiYoZWVbIiFtZXJnZXMi'@; put 'XT1uYSksbGEubGVuZ3RoPjAmJkFJKGxhLGVlLGVyKSxSaS5sZW5ndGg+MCYmKGVlWyIhY29scyJdPVJpKSxSci5sZW5ndGg+MCYmKGVlWyIhcm93cyJdPVJyKSxDbi5TaGVldHMucHVzaCh1cil9IiI9PT1QZT9WZT1lZTpLW1BlXT1lZSxlZT1PLmRlbnNlP1tdOnt9O2JyZWFrO2Nhc2UiQk9G'@; put 'IjppZig4PT09cnIuYmlmZiYmKHJyLmJpZmY9ezk6Miw1MjE6MywxMDMzOjR9W3VzXXx8ezUxMjoyLDc2ODozLDEwMjQ6NCwxMjgwOjUsMTUzNjo4LDI6Miw3OjJ9W0ZuLkJJRkZWZXJdfHw4KSxyci5iaWZmZ3Vlc3M9MD09Rm4uQklGRlZlciwwPT1Gbi5CSUZGVmVyJiY0MDk2PT1Gbi5kdCYm'@; put 'KHJyLmJpZmY9NSxPcz0hMCxCKHJyLmNvZGVwYWdlPTI4NTkxKSksOD09cnIuYmlmZiYmMD09Rm4uQklGRlZlciYmMTY9PUZuLmR0JiYocnIuYmlmZj0yKSxXaSsrKWJyZWFrO2lmKGVlPU8uZGVuc2U/W106e30scnIuYmlmZjw4JiYhT3MmJihPcz0hMCxCKHJyLmNvZGVwYWdlPU8uY29kZXBh'@; put 'Z2V8fDEyNTIpKSxyci5iaWZmPDV8fDA9PUZuLkJJRkZWZXImJjQwOTY9PUZuLmR0KXsiIj09PVBlJiYoUGU9IlNoZWV0MSIpLG1lPXtzOntyOjAsYzowfSxlOntyOjAsYzowfX07dmFyIFVsPXtwb3M6Uy5sLXFhLG5hbWU6UGV9O29lW1VsLnBvc109VWwscnIuc25hbWVzLnB1c2goUGUpfWVs'@; put 'c2UgUGU9KG9lW1BhXXx8e25hbWU6IiJ9KS5uYW1lOzMyPT1Gbi5kdCYmKGVlWyIhdHlwZSJdPSJjaGFydCIpLDY0PT1Gbi5kdCYmKGVlWyIhdHlwZSJdPSJtYWNybyIpLG5hPVtdLGxhPVtdLHJyLmFycmF5Zj1EdD1bXSxSaT1bXSxScj1bXSx3cj0hMSx1cj17SGlkZGVuOihvZVtQYV18fHto'@; put 'czowfSkuaHMsbmFtZTpQZX07YnJlYWs7Y2FzZSJOdW1iZXIiOmNhc2UiQklGRjJOVU0iOmNhc2UiQklGRjJJTlQiOiJjaGFydCI9PWVlWyIhdHlwZSJdJiYoTy5kZW5zZT8oZWVbRm4ucl18fFtdKVtGbi5jXTplZVtxaSh7YzpGbi5jLHI6Rm4ucn0pXSkmJisrRm4uYyxPdD17aXhmZTpGbi5p'@; put 'eGZlLFhGOlRuW0ZuLml4ZmVdfHx7fSx2OkZuLnZhbCx0OiJuIn0sQ2k+MCYmKE90Lno9d2FbT3QuaXhmZT4+OCY2M10pLGhoKE90LE8say5vcHRzLkRhdGUxOTA0KSxicih7YzpGbi5jLHI6Rm4ucn0sT3QsTyk7YnJlYWs7Y2FzZSJCb29sRXJyIjpPdD17aXhmZTpGbi5peGZlLFhGOlRuW0Zu'@; put 'Lml4ZmVdLHY6Rm4udmFsLHQ6Rm4udH0sQ2k+MCYmKE90Lno9d2FbT3QuaXhmZT4+OCY2M10pLGhoKE90LE8say5vcHRzLkRhdGUxOTA0KSxicih7YzpGbi5jLHI6Rm4ucn0sT3QsTyk7YnJlYWs7Y2FzZSJSSyI6T3Q9e2l4ZmU6Rm4uaXhmZSxYRjpUbltGbi5peGZlXSx2OkZuLnJrbnVtLHQ6'@; put 'Im4ifSxDaT4wJiYoT3Quej13YVtPdC5peGZlPj44JjYzXSksaGgoT3QsTyxrLm9wdHMuRGF0ZTE5MDQpLGJyKHtjOkZuLmMscjpGbi5yfSxPdCxPKTticmVhaztjYXNlIk11bFJrIjpmb3IodmFyIFpsPUZuLmM7Wmw8PUZuLkM7KytabCl7dmFyIGd1PUZuLnJrcmVjW1psLUZuLmNdWzBdO090'@; put 'PXtpeGZlOmd1LFhGOlRuW2d1XSx2OkZuLnJrcmVjW1psLUZuLmNdWzFdLHQ6Im4ifSxDaT4wJiYoT3Quej13YVtPdC5peGZlPj44JjYzXSksaGgoT3QsTyxrLm9wdHMuRGF0ZTE5MDQpLGJyKHtjOlpsLHI6Rm4ucn0sT3QsTyl9YnJlYWs7Y2FzZSJGb3JtdWxhIjppZigiU3RyaW5nIj09Rm4u'@; put 'dmFsKXtwZT1GbjticmVha31pZigoT3Q9UjgoRm4udmFsLEZuLmNlbGwuaXhmZSxGbi50dCkpLlhGPVRuW090Lml4ZmVdLE8uY2VsbEZvcm11bGEpe3ZhciBDbD1Gbi5mb3JtdWxhO2lmKENsJiZDbFswXSYmQ2xbMF1bMF0mJiJQdGdFeHAiPT1DbFswXVswXVswXSl7dmFyIGxuPUNsWzBdWzBd'@; put 'WzFdWzBdLEVuPUNsWzBdWzBdWzFdWzFdLFpuPXFpKHtyOmxuLGM6RW59KTtCdFtabl0/T3QuZj0iIithMChGbi5mb3JtdWxhLG1lLEZuLmNlbGwsSG4scnIpOk90LkY9KChPLmRlbnNlPyhlZVtsbl18fFtdKVtFbl06ZWVbWm5dKXx8e30pLkZ9ZWxzZSBPdC5mPSIiK2EwKEZuLmZvcm11bGEs'@; put 'bWUsRm4uY2VsbCxIbixycil9Q2k+MCYmKE90Lno9d2FbT3QuaXhmZT4+OCY2M10pLGhoKE90LE8say5vcHRzLkRhdGUxOTA0KSxicihGbi5jZWxsLE90LE8pLHBlPUZuO2JyZWFrO2Nhc2UiU3RyaW5nIjppZighcGUpdGhyb3cgbmV3IEVycm9yKCJTdHJpbmcgcmVjb3JkIGV4cGVjdHMgRm9y'@; put 'bXVsYSIpO3BlLnZhbD1GbiwoT3Q9UjgoRm4scGUuY2VsbC5peGZlLCJzIikpLlhGPVRuW090Lml4ZmVdLE8uY2VsbEZvcm11bGEmJihPdC5mPSIiK2EwKHBlLmZvcm11bGEsbWUscGUuY2VsbCxIbixycikpLENpPjAmJihPdC56PXdhW090Lml4ZmU+PjgmNjNdKSxoaChPdCxPLGsub3B0cy5E'@; put 'YXRlMTkwNCksYnIocGUuY2VsbCxPdCxPKSxwZT1udWxsO2JyZWFrO2Nhc2UiQXJyYXkiOkR0LnB1c2goRm4pO3ZhciBNaT1xaShGblswXS5zKTtpZihjdD1PLmRlbnNlPyhlZVtGblswXS5zLnJdfHxbXSlbRm5bMF0ucy5jXTplZVtNaV0sTy5jZWxsRm9ybXVsYSYmY3Qpe2lmKCFwZXx8IU1p'@; put 'fHwhY3QpYnJlYWs7Y3QuZj0iIithMChGblsxXSxtZSxGblswXSxIbixyciksY3QuRj1yYShGblswXSl9YnJlYWs7Y2FzZSJTaHJGbWxhIjppZighTy5jZWxsRm9ybXVsYSlicmVhaztpZihldCl7aWYoIXBlKWJyZWFrO0J0W3FpKHBlLmNlbGwpXT1GblswXSwoKGN0PU8uZGVuc2U/KGVlW3Bl'@; put 'LmNlbGwucl18fFtdKVtwZS5jZWxsLmNdOmVlW3FpKHBlLmNlbGwpXSl8fHt9KS5mPSIiK2EwKEZuWzBdLG1lLFllLEhuLHJyKX1icmVhaztjYXNlIkxhYmVsU3N0IjpPdD1SOChiZVtGbi5pc3N0XS50LEZuLml4ZmUsInMiKSxiZVtGbi5pc3N0XS5oJiYoT3QuaD1iZVtGbi5pc3N0XS5oKSxP'@; put 'dC5YRj1UbltPdC5peGZlXSxDaT4wJiYoT3Quej13YVtPdC5peGZlPj44JjYzXSksaGgoT3QsTyxrLm9wdHMuRGF0ZTE5MDQpLGJyKHtjOkZuLmMscjpGbi5yfSxPdCxPKSxiZVtGbi5pc3N0XS5SJiYoT3QuUj1iZVtGbi5pc3N0XS5SLm1hcChmdW5jdGlvbihnYSl7dmFyIGtpPUp0KGdhKTty'@; put 'ZXR1cm4gZ2Eucz09ZXIuRm9udHNbMF0mJihraS5zPU90LnMpLGtpfSkpO2JyZWFrO2Nhc2UiQmxhbmsiOk8uc2hlZXRTdHVicyYmKE90PXtpeGZlOkZuLml4ZmUsWEY6VG5bRm4uaXhmZV0sdDoieiJ9LENpPjAmJihPdC56PXdhW090Lml4ZmU+PjgmNjNdKSxoaChPdCxPLGsub3B0cy5EYXRl'@; put 'MTkwNCksYnIoe2M6Rm4uYyxyOkZuLnJ9LE90LE8pKTticmVhaztjYXNlIk11bEJsYW5rIjppZihPLnNoZWV0U3R1YnMpZm9yKHZhciBjcj1Gbi5jO2NyPD1Gbi5DOysrY3Ipe3ZhciBMaT1Gbi5peGZlW2NyLUZuLmNdO090PXtpeGZlOkxpLFhGOlRuW0xpXSx0OiJ6In0sQ2k+MCYmKE90Lno9'@; put 'd2FbT3QuaXhmZT4+OCY2M10pLGhoKE90LE8say5vcHRzLkRhdGUxOTA0KSxicih7YzpjcixyOkZuLnJ9LE90LE8pfWJyZWFrO2Nhc2UiUlN0cmluZyI6Y2FzZSJMYWJlbCI6Y2FzZSJCSUZGMlNUUiI6KE90PVI4KEZuLnZhbCxGbi5peGZlLCJzIikpLlhGPVRuW090Lml4ZmVdLENpPjAmJihP'@; put 'dC56PXdhW090Lml4ZmU+PjgmNjNdKSxoaChPdCxPLGsub3B0cy5EYXRlMTkwNCksYnIoe2M6Rm4uYyxyOkZuLnJ9LE90LE8pO2JyZWFrO2Nhc2UiRGltZW5zaW9ucyI6MT09PVdpJiYobWU9Rm4pO2JyZWFrO2Nhc2UiU1NUIjooYmU9Rm4pLmZvckVhY2goZnVuY3Rpb24oZ2Epe2dhLl9SPyhn'@; put 'YS5fUlswXSYmZ2EuX1JbMF0uaWR4PjAmJmdhLl9SLnVuc2hpZnQoe2lkeDowLGlmbnQ6MH0pLGdhLlI9Z2EuX1IubWFwKGZ1bmN0aW9uKGtpLG9vKXtyZXR1cm57dDoicyIsdjpnYS50LnNsaWNlKGtpLmlkeCwoZ2EuX1Jbb28rMV18fHt9KS5pZHgpLHM6ZXIuRm9udHNba2kuaWZudDw0P2tp'@; put 'LmlmbnQ6a2kuaWZudC0xXX19KSxPLmNlbGxIVE1MJiYoZ2EuaD1GdShnYS5SKSkpOk8uY2VsbEhUTUwmJihnYS5oPW9hKGdhLnQpKSxkZWxldGUgZ2EuX1J9KTticmVhaztjYXNlIkZvcm1hdCI6aWYoND09cnIuYmlmZil7d2FbQ2krK109Rm5bMV07Zm9yKHZhciB4cj0wO3hyPENpKzE2MyYm'@; put 'QS5fdGFibGVbeHJdIT1GblsxXTsrK3hyKTt4cj49MTYzJiZBLmxvYWQoRm5bMV0sQ2krMTYzKX1lbHNlIEEubG9hZChGblsxXSxGblswXSk7YnJlYWs7Y2FzZSJCSUZGMkZPUk1BVCI6d2FbQ2krK109Rm47Zm9yKHZhciBPaT0wO09pPENpKzE2MyYmQS5fdGFibGVbT2ldIT1GbjsrK09pKTtP'@; put 'aT49MTYzJiZBLmxvYWQoRm4sQ2krMTYzKTticmVhaztjYXNlIk1lcmdlQ2VsbHMiOm5hPW5hLmNvbmNhdChGbik7YnJlYWs7Y2FzZSJPYmoiOmxhW0ZuLmNtb1swXV09cnIubGFzdG9iaj1GbjticmVhaztjYXNlIlR4TyI6cnIubGFzdG9iai5UeE89Rm47YnJlYWs7Y2FzZSJJbURhdGEiOnJy'@; put 'Lmxhc3RvYmouSW1EYXRhPUZuO2JyZWFrO2Nhc2UiSExpbmsiOmZvcihidD1GblswXS5zLnI7YnQ8PUZuWzBdLmUucjsrK2J0KWZvcihpdD1GblswXS5zLmM7aXQ8PUZuWzBdLmUuYzsrK2l0KShjdD1PLmRlbnNlPyhlZVtidF18fFtdKVtpdF06ZWVbcWkoe2M6aXQscjpidH0pXSkmJihjdC5s'@; put 'PUZuWzFdKTticmVhaztjYXNlIkhMaW5rVG9vbHRpcCI6Zm9yKGJ0PUZuWzBdLnMucjtidDw9Rm5bMF0uZS5yOysrYnQpZm9yKGl0PUZuWzBdLnMuYztpdDw9Rm5bMF0uZS5jOysraXQpKGN0PU8uZGVuc2U/KGVlW2J0XXx8W10pW2l0XTplZVtxaSh7YzppdCxyOmJ0fSldKSYmY3QubCYmKGN0'@; put 'LmwuVG9vbHRpcD1GblsxXSk7YnJlYWs7Y2FzZSJOb3RlIjppZihyci5iaWZmPD01JiZyci5iaWZmPj0yKWJyZWFrO2N0PU8uZGVuc2U/KGVlW0ZuWzBdLnJdfHxbXSlbRm5bMF0uY106ZWVbcWkoRm5bMF0pXTt2YXIgWWE9bGFbRm5bMl1dO2N0fHwoTy5kZW5zZT8oZWVbRm5bMF0ucl18fChl'@; put 'ZVtGblswXS5yXT1bXSksY3Q9ZWVbRm5bMF0ucl1bRm5bMF0uY109e3Q6InoifSk6Y3Q9ZWVbcWkoRm5bMF0pXT17dDoieiJ9LG1lLmUucj1NYXRoLm1heChtZS5lLnIsRm5bMF0uciksbWUucy5yPU1hdGgubWluKG1lLnMucixGblswXS5yKSxtZS5lLmM9TWF0aC5tYXgobWUuZS5jLEZuWzBd'@; put 'LmMpLG1lLnMuYz1NYXRoLm1pbihtZS5zLmMsRm5bMF0uYykpLGN0LmN8fChjdC5jPVtdKSxjdC5jLnB1c2goe2E6Rm5bMV0sdDpZYS5UeE8udH0pO2JyZWFrO2RlZmF1bHQ6c3dpdGNoKFZpLm4pe2Nhc2UiQ2xydENsaWVudCI6Y2FzZSJIZWFkZXIiOmNhc2UiRm9vdGVyIjpjYXNlIkhDZW50'@; put 'ZXIiOmNhc2UiVkNlbnRlciI6Y2FzZSJQbHMiOmNhc2UiR0NXIjpjYXNlIkxIUmVjb3JkIjpjYXNlIkRCQ2VsbCI6Y2FzZSJFbnRFeFUyIjpjYXNlIlN4VmlldyI6Y2FzZSJTeHZkIjpjYXNlIlNYVkkiOmNhc2UiU1hWREV4IjpjYXNlIlN4SXZkIjpjYXNlIlNYU3RyaW5nIjpjYXNlIlN5bmMi'@; put 'OmNhc2UiQWRkaW4iOmNhc2UiU1hESSI6Y2FzZSJTWExJIjpjYXNlIlNYRXgiOmNhc2UiUXNpU1hUYWciOmNhc2UiRmVhdCI6Y2FzZSJGZWF0SGRyIjpjYXNlIkZlYXRIZHIxMSI6Y2FzZSJGZWF0dXJlMTEiOmNhc2UiRmVhdHVyZTEyIjpjYXNlIkxpc3QxMiI6Y2FzZSJSZWNhbGNJZCI6Y2Fz'@; put 'ZSJEeEdDb2wiOmNhc2UiRmJpIjpjYXNlIkZiaTIiOmNhc2UiR2VsRnJhbWUiOmNhc2UiWEZDUkMiOmNhc2UiU3R5bGUiOmNhc2UiU3R5bGVFeHQiOmNhc2UiU2NlbmFyaW9Qcm90ZWN0IjpjYXNlIk9ialByb3RlY3QiOmNhc2UiQ29uZEZtdDEyIjpjYXNlIlRhYmxlIjpjYXNlIlRhYmxlU3R5'@; put 'bGVzIjpjYXNlIlRhYmxlU3R5bGUiOmNhc2UiVGFibGVTdHlsZUVsZW1lbnQiOmNhc2UiU1hTdHJlYW1JRCI6Y2FzZSJTWFZTIjpjYXNlIkRDb25SZWYiOmNhc2UiU1hBZGRsIjpjYXNlIkRDb25CaW4iOmNhc2UiRENvbk5hbWUiOmNhc2UiU1hQSSI6Y2FzZSJTeEZvcm1hdCI6Y2FzZSJTeFNl'@; put 'bGVjdCI6Y2FzZSJTeFJ1bGUiOmNhc2UiU3hGaWx0IjpjYXNlIlN4SXRtIjpjYXNlIlN4RFhGIjpjYXNlIlNjZW5NYW4iOmNhc2UiRENvbiI6Y2FzZSJDZWxsV2F0Y2giOmNhc2UiUHJpbnRSb3dDb2wiOmNhc2UiUHJpbnRHcmlkIjpjYXNlIlByaW50U2l6ZSI6Y2FzZSJYQ1QiOmNhc2UiQ1JO'@; put 'IjpjYXNlIlNjbCI6Y2FzZSJTaGVldEV4dCI6Y2FzZSJTaGVldEV4dE9wdGlvbmFsIjpjYXNlIk9iTm9NYWNyb3MiOmNhc2UiT2JQcm9qIjpjYXNlIkdVSURUeXBlTGliIjpjYXNlIldPcHQiOmNhc2UiUGhvbmV0aWNJbmZvIjpjYXNlIk9sZU9iamVjdFNpemUiOmNhc2UiRFhGIjpjYXNlIkRY'@; put 'Rk4iOmNhc2UiRFhGTjEyIjpjYXNlIkRYRk4xMkxpc3QiOmNhc2UiRFhGTjEyTm9DQiI6Y2FzZSJEdiI6Y2FzZSJEVmFsIjpjYXNlIkJSQUkiOmNhc2UiU2VyaWVzIjpjYXNlIlNlcmllc1RleHQiOmNhc2UiRENvbm4iOmNhc2UiRGJPclBhcmFtUXJ5IjpjYXNlIkRCUXVlcnlFeHQiOmNhc2Ui'@; put 'T2xlRGJDb25uIjpjYXNlIkV4dFN0cmluZyI6Y2FzZSJJRm10UmVjb3JkIjpjYXNlIkNvbmRGbXQiOmNhc2UiQ0YiOmNhc2UiQ0YxMiI6Y2FzZSJDRkV4IjpjYXNlIkV4Y2VsOUZpbGUiOmNhc2UiVW5pdHMiOmNhc2UiSW50ZXJmYWNlSGRyIjpjYXNlIk1tcyI6Y2FzZSJJbnRlcmZhY2VFbmQi'@; put 'OmNhc2UiRFNGIjpjYXNlIkJ1aWx0SW5Gbkdyb3VwQ291bnQiOmNhc2UiV2luZG93MSI6Y2FzZSJIaWRlT2JqIjpjYXNlIkdyaWRTZXQiOmNhc2UiR3V0cyI6Y2FzZSJVc2VyQlZpZXciOmNhc2UiVXNlclNWaWV3QmVnaW4iOmNhc2UiVXNlclNWaWV3RW5kIjpjYXNlIkRlZkNvbFdpZHRoIjpj'@; put 'YXNlIkRlZmF1bHRSb3dIZWlnaHQiOmJyZWFrO2Nhc2UiWEZFeHQiOk5rKFRuW0ZuLml4ZmVdLEZuLmV4dCk7YnJlYWs7Y2FzZSJDb2xJbmZvIjppZighcnIuY2VsbFN0eWxlcylicmVhaztmb3IoO0ZuLmU+PUZuLnM7KVJpW0ZuLmUtLV09e3dpZHRoOkZuLncvMjU2LGxldmVsOkZuLmxldmVs'@; put 'fHwwLGhpZGRlbjohISgxJkZuLmZsYWdzKX0sd3J8fCh3cj0hMCksSjAoUmlbRm4uZSsxXSk7YnJlYWs7Y2FzZSJSb3ciOnZhciBGaT17fTtudWxsIT1Gbi5sZXZlbCYmKFJyW0ZuLnJdPUZpLEZpLmxldmVsPUZuLmxldmVsKSxGbi5oaWRkZW4mJihScltGbi5yXT1GaSxGaS5oaWRkZW49ITAp'@; put 'LEZuLmhwdCYmKFJyW0ZuLnJdPUZpLEZpLmhwdD1Gbi5ocHQsRmkuaHB4PW9oKEZuLmhwdCkpLEZuLml4ZmUmJihScltGbi5yXT1GaSxwcihPdD17aXhmZTpGbi5peGZlLFhGOlRuW0ZuLml4ZmVdfHx7fSx2OjAsdDoibiJ9LE8pLEZpLnM9T3Qucyk7YnJlYWs7Y2FzZSJMZWZ0TWFyZ2luIjpj'@; put 'YXNlIlJpZ2h0TWFyZ2luIjpjYXNlIlRvcE1hcmdpbiI6Y2FzZSJCb3R0b21NYXJnaW4iOmVlWyIhbWFyZ2lucyJdfHxKMyhlZVsiIW1hcmdpbnMiXT17fSksZWVbIiFtYXJnaW5zIl1bWXMuc2xpY2UoMCwtNikudG9Mb3dlckNhc2UoKV09Rm47YnJlYWs7Y2FzZSJTZWxlY3Rpb24iOmVlWyIh'@; put 'c2VsIl09Rm47YnJlYWs7Y2FzZSJTZXR1cCI6ZWVbIiFtYXJnaW5zIl18fEozKGVlWyIhbWFyZ2lucyJdPXt9KSxlZVsiIW1hcmdpbnMiXS5oZWFkZXI9Rm4uaGVhZGVyLGVlWyIhbWFyZ2lucyJdLmZvb3Rlcj1Gbi5mb290ZXI7YnJlYWs7Y2FzZSJXaW5kb3cyIjpGbi5SVEwmJihDbi5WaWV3'@; put 'c1swXS5SVEw9ITApLFNpPUZuO2JyZWFrO2Nhc2UiQ291bnRyeSI6S3Q9Rm47YnJlYWs7Y2FzZSJGb250IjpGbi5pY3YmJmpuKEZuLmljdikmJihGbi5jb2xvcj17cmdiOnBkKGpuKEZuLmljdikpfSksZGVsZXRlIEZuLmljdiwwPT1lci5Gb250cy5sZW5ndGgmJkk0KEZuKSxlci5Gb250cy5w'@; put 'dXNoKEZuKTticmVhaztjYXNlIlBhbGV0dGUiOnNyPUZuO2JyZWFrO2Nhc2UiVGhlbWUiOlBpPUZuO2JyZWFrO2Nhc2UiQ29kZU5hbWUiOlBlP3VyLkNvZGVOYW1lPUZufHx1ci5uYW1lOkNuLldCUHJvcHMuQ29kZU5hbWU9Rm58fCJUaGlzV29ya2Jvb2siO2JyZWFrO2Nhc2UiUGFuZSI6KFNp'@; put 'fHx7fSkuZnJvemVuJiYoZWVbIiFmcmVlemUiXT1xaSh7cjpGbi55fHwwLGM6Rm4ueHx8MH0pKTticmVhaztkZWZhdWx0OnN3aXRjaChWaS5uKXtjYXNlIkRhdCI6Y2FzZSJCZWdpbiI6Y2FzZSJFbmQiOmNhc2UiU3RhcnRCbG9jayI6Y2FzZSJFbmRCbG9jayI6Y2FzZSJGcmFtZSI6Y2FzZSJB'@; put 'cmVhIjpjYXNlIkF4aXMiOmNhc2UiQXhpc0xpbmUiOmNhc2UiVGljayI6Y2FzZSJBeGVzVXNlZCI6Y2FzZSJDcnRMYXlvdXQxMiI6Y2FzZSJDcnRMYXlvdXQxMkEiOmNhc2UiQ3J0TGluayI6Y2FzZSJDcnRMaW5lIjpjYXNlIkNydE1sRnJ0IjpjYXNlIkNydE1sRnJ0Q29udGludWUiOmNhc2Ui'@; put 'TGluZUZvcm1hdCI6Y2FzZSJBcmVhRm9ybWF0IjpjYXNlIkNoYXJ0IjpjYXNlIkNoYXJ0M2QiOmNhc2UiQ2hhcnQzREJhclNoYXBlIjpjYXNlIkNoYXJ0Rm9ybWF0IjpjYXNlIkNoYXJ0RnJ0SW5mbyI6Y2FzZSJQbG90QXJlYSI6Y2FzZSJQbG90R3Jvd3RoIjpjYXNlIlNlcmllc0xpc3QiOmNh'@; put 'c2UiU2VyUGFyZW50IjpjYXNlIlNlckF1eFRyZW5kIjpjYXNlIkRhdGFGb3JtYXQiOmNhc2UiU2VyVG9DcnQiOmNhc2UiRm9udFgiOmNhc2UiQ2F0U2VyUmFuZ2UiOmNhc2UiQXhjRXh0IjpjYXNlIlNlckZtdCI6Y2FzZSJTaHRQcm9wcyI6Y2FzZSJEZWZhdWx0VGV4dCI6Y2FzZSJUZXh0Ijpj'@; put 'YXNlIkNhdExhYiI6Y2FzZSJEYXRhTGFiRXh0Q29udGVudHMiOmNhc2UiTGVnZW5kIjpjYXNlIkxlZ2VuZEV4Y2VwdGlvbiI6Y2FzZSJQaWUiOmNhc2UiU2NhdHRlciI6Y2FzZSJQaWVGb3JtYXQiOmNhc2UiTWFya2VyRm9ybWF0IjpjYXNlIlN0YXJ0T2JqZWN0IjpjYXNlIkVuZE9iamVjdCI6'@; put 'Y2FzZSJBbFJ1bnMiOmNhc2UiT2JqZWN0TGluayI6Y2FzZSJTSUluZGV4IjpjYXNlIkF0dGFjaGVkTGFiZWwiOmNhc2UiWU11bHQiOmNhc2UiTGluZSI6Y2FzZSJCYXIiOmNhc2UiU3VyZiI6Y2FzZSJBeGlzUGFyZW50IjpjYXNlIlBvcyI6Y2FzZSJWYWx1ZVJhbmdlIjpjYXNlIlNYVmlld0V4'@; put 'OSI6Y2FzZSJTWFZpZXdMaW5rIjpjYXNlIlBpdm90Q2hhcnRCaXRzIjpjYXNlIlNCYXNlUmVmIjpjYXNlIlRleHRQcm9wc1N0cmVhbSI6Y2FzZSJMbkV4dCI6Y2FzZSJNa3JFeHQiOmNhc2UiQ3J0Q29vcHQiOmNhc2UiUXNpIjpjYXNlIlFzaWYiOmNhc2UiUXNpciI6Y2FzZSJRc2lTWFRhZyI6'@; put 'Y2FzZSJUeHRRcnkiOmNhc2UiRmlsdGVyTW9kZSI6Y2FzZSJBdXRvRmlsdGVyIjpjYXNlIkF1dG9GaWx0ZXJJbmZvIjpjYXNlIkF1dG9GaWx0ZXIxMiI6Y2FzZSJEcm9wRG93bk9iaklkcyI6Y2FzZSJTb3J0IjpjYXNlIlNvcnREYXRhIjpjYXNlIlNoYXBlUHJvcHNTdHJlYW0iOmNhc2UiTXNv'@; put 'RHJhd2luZyI6Y2FzZSJNc29EcmF3aW5nR3JvdXAiOmNhc2UiTXNvRHJhd2luZ1NlbGVjdGlvbiI6Y2FzZSJXZWJQdWIiOmNhc2UiQXV0b1dlYlB1YiI6Y2FzZSJIZWFkZXJGb290ZXIiOmNhc2UiSEZQaWN0dXJlIjpjYXNlIlBMViI6Y2FzZSJIb3Jpem9udGFsUGFnZUJyZWFrcyI6Y2FzZSJW'@; put 'ZXJ0aWNhbFBhZ2VCcmVha3MiOmNhc2UiQmFja3VwIjpjYXNlIkNvbXByZXNzUGljdHVyZXMiOmNhc2UiQ29tcGF0MTIiOmNhc2UiQ29udGludWUiOmNhc2UiQ29udGludWVGcnQxMiI6Y2FzZSJGcnRGb250TGlzdCI6Y2FzZSJGcnRXcmFwcGVyIjpicmVhaztkZWZhdWx0OnN3aXRjaChWaS5u'@; put 'KXtjYXNlIlRhYklkQ29uZiI6Y2FzZSJSYWRhciI6Y2FzZSJSYWRhckFyZWEiOmNhc2UiRHJvcEJhciI6Y2FzZSJJbnRsIjpjYXNlIkNvb3JkTGlzdCI6Y2FzZSJTZXJBdXhFcnJCYXIiOmNhc2UiQklGRjJGT05UQ0xSIjpjYXNlIkJJRkYyRk1UQ05UIjpjYXNlIkJJRkYyRk9OVFhUUkEiOmNh'@; put 'c2UiQklGRjJYRiI6Y2FzZSJCSUZGM1hGIjpjYXNlIkJJRkY0WEYiOmNhc2UiQklGRjJYRklOREVYIjpjYXNlIkJJRkY0Rk1UQ05UIjpjYXNlIkJJRkYyUk9XIjpjYXNlIkJJRkYyV0lORE9XMiI6Y2FzZSJTQ0VOQVJJTyI6Y2FzZSJEQ29uQmluIjpjYXNlIlBpY0YiOmNhc2UiRGF0YUxhYkV4'@; put 'dCI6Y2FzZSJMZWwiOmNhc2UiQm9wUG9wIjpjYXNlIkJvcFBvcEN1c3RvbSI6Y2FzZSJSZWFsVGltZURhdGEiOmNhc2UiTmFtZSI6Y2FzZSJMSE5HcmFwaCI6Y2FzZSJGbkdyb3VwTmFtZSI6Y2FzZSJBZGRNZW51IjpjYXNlIkxQciI6Y2FzZSJMaXN0T2JqIjpjYXNlIkxpc3RGaWVsZCI6Y2Fz'@; put 'ZSJSUlNvcnQiOmNhc2UiQmlnTmFtZSI6Y2FzZSJUb29sYmFySGRyIjpjYXNlIlRvb2xiYXJFbmQiOmNhc2UiRERFT2JqTmFtZSI6Y2FzZSJGUlRBcmNoSWQkIjpicmVhaztkZWZhdWx0OmlmKE8uV1RGKXRocm93IlVucmVjb2duaXplZCBSZWNvcmQgIitWaS5ufX19fX1lbHNlIFMubCs9cWEs'@; put 'cnImJnJyLmVuYyYmcnIuZW5jLmluc2l0dSYmcnIuZW5jLmluc2l0dShTZSh7bGVuZ3RoOnFhfSkpfXJldHVybiBrLlNoZWV0TmFtZXM9UmUob2UpLnNvcnQoZnVuY3Rpb24oZ2Esa2kpe3JldHVybiBOdW1iZXIoZ2EpLU51bWJlcihraSl9KS5tYXAoZnVuY3Rpb24oZ2Epe3JldHVybiBvZVtn'@; put 'YV0ubmFtZX0pLE8uYm9va1NoZWV0c3x8KGsuU2hlZXRzPUspLCFrLlNoZWV0TmFtZXMubGVuZ3RoJiZWZVsiIXJlZiJdPyhrLlNoZWV0TmFtZXMucHVzaCgiU2hlZXQxIiksay5TaGVldHMmJihrLlNoZWV0cy5TaGVldDE9VmUpKTprLlByZWFtYmxlPVZlLGsuU2hlZXRzJiZvcy5mb3JFYWNo'@; put 'KGZ1bmN0aW9uKGdhLGtpKXtrLlNoZWV0c1trLlNoZWV0TmFtZXNba2ldXVsiIWF1dG9maWx0ZXIiXT1nYX0pLGsuU3RyaW5ncz1iZSxrLlNTRj1BLmdldF90YWJsZSgpLHJyLmVuYyYmKGsuRW5jcnlwdGlvbj1yci5lbmMpLFBpJiYoay5UaGVtZXM9UGkpLGsuTWV0YWRhdGE9e30sdm9pZCAw'@; put 'IT09S3QmJihrLk1ldGFkYXRhLkNvdW50cnk9S3QpLEhuLm5hbWVzLmxlbmd0aD4wJiYoQ24uTmFtZXM9SG4ubmFtZXMpLGsuV29ya2Jvb2s9Q24sa30oSy5jb250ZW50LE8pO2Vsc2UgaWYoKG9lPXZlLmZpbmQoUywiUGVyZmVjdE9mZmljZV9NQUlOIikpJiZvZS5jb250ZW50KWVlPVR2LnRv'@; put 'X3dvcmtib29rKG9lLmNvbnRlbnQsKE8udHlwZT1tZSxPKSk7ZWxzZXtpZighKG9lPXZlLmZpbmQoUywiTmF0aXZlQ29udGVudF9NQUlOIikpfHwhb2UuY29udGVudCl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIFdvcmtib29rIHN0cmVhbSIpO2VlPVR2LnRvX3dvcmtib29rKG9lLmNv'@; put 'bnRlbnQsKE8udHlwZT1tZSxPKSl9Ty5ib29rVkJBJiZTLkZ1bGxQYXRocyYmdmUuZmluZChTLCIvX1ZCQV9QUk9KRUNUX0NVUi9WQkEvZGlyIikmJihlZS52YmFyYXc9ZnVuY3Rpb24gR2soUyl7dmFyIE89dmUudXRpbHMuY2ZiX25ldyh7cm9vdDoiUiJ9KTtyZXR1cm4gUy5GdWxsUGF0aHMu'@; put 'Zm9yRWFjaChmdW5jdGlvbihrLEspe2lmKCIvIiE9PWsuc2xpY2UoLTEpJiZrLm1hdGNoKC9fVkJBX1BST0pFQ1RfQ1VSLykpe3ZhciBlZT1rLnJlcGxhY2UoL15bXlwvXSovLCJSIikucmVwbGFjZSgvXC9fVkJBX1BST0pFQ1RfQ1VSXHUwMDAwKi8sIiIpO3ZlLnV0aWxzLmNmYl9hZGQoTyxl'@; put 'ZSxTLkZpbGVJbmRleFtLXS5jb250ZW50KX19KSx2ZS53cml0ZShPKX0oUykpfXZhciBwZT17fTtyZXR1cm4gUy5GdWxsUGF0aHMmJmZ1bmN0aW9uIFhuZShTLE8sayl7dmFyIEs9dmUuZmluZChTLCIhRG9jdW1lbnRTdW1tYXJ5SW5mb3JtYXRpb24iKTtpZihLJiZLLnNpemU+MCl0cnl7dmFy'@; put 'IGVlPWo2KEssbTQsU3kuRFNJKTtmb3IodmFyIG9lIGluIGVlKU9bb2VdPWVlW29lXX1jYXRjaChQZSl7aWYoay5XVEYpdGhyb3cgUGV9dmFyIG1lPXZlLmZpbmQoUywiIVN1bW1hcnlJbmZvcm1hdGlvbiIpO2lmKG1lJiZtZS5zaXplPjApdHJ5e3ZhciBwZT1qNihtZSxsNSxTeS5TSSk7Zm9y'@; put 'KHZhciBiZSBpbiBwZSludWxsPT1PW2JlXSYmKE9bYmVdPXBlW2JlXSl9Y2F0Y2goUGUpe2lmKGsuV1RGKXRocm93IFBlfU8uSGVhZGluZ1BhaXJzJiZPLlRpdGxlc09mUGFydHMmJihfNChPLkhlYWRpbmdQYWlycyxPLlRpdGxlc09mUGFydHMsTyxrKSxkZWxldGUgTy5IZWFkaW5nUGFpcnMs'@; put 'ZGVsZXRlIE8uVGl0bGVzT2ZQYXJ0cyl9KFMscGUsTyksZWUuUHJvcHM9ZWUuQ3VzdHByb3BzPXBlLE8uYm9va0ZpbGVzJiYoZWUuY2ZiPVMpLGVlfXZhciBMOD17MDp7bjoiQnJ0Um93SGRyIixmOmZ1bmN0aW9uIFVEKFMsTyl7dmFyIGs9e30sSz1TLmwrTztrLnI9Uy5yZWFkX3NoaWZ0KDQp'@; put 'LFMubCs9NDt2YXIgZWU9Uy5yZWFkX3NoaWZ0KDIpO1MubCs9MTt2YXIgb2U9Uy5yZWFkX3NoaWZ0KDEpO3JldHVybiBTLmw9Syw3Jm9lJiYoay5sZXZlbD03Jm9lKSwxNiZvZSYmKGsuaGlkZGVuPSEwKSwzMiZvZSYmKGsuaHB0PWVlLzIwKSxrfX0sMTp7bjoiQnJ0Q2VsbEJsYW5rIixmOmZ1'@; put 'bmN0aW9uIEJuZShTKXtyZXR1cm5bSTEoUyldfX0sMjp7bjoiQnJ0Q2VsbFJrIixmOmZ1bmN0aW9uIGpqKFMpe3JldHVybltJMShTKSxSMShTKSwibiJdfX0sMzp7bjoiQnJ0Q2VsbEVycm9yIixmOmZ1bmN0aW9uIEdEKFMpe3JldHVybltJMShTKSxTLnJlYWRfc2hpZnQoMSksImUiXX19LDQ6'@; put 'e246IkJydENlbGxCb29sIixmOmZ1bmN0aW9uIE9qKFMpe3JldHVybltJMShTKSxTLnJlYWRfc2hpZnQoMSksImIiXX19LDU6e246IkJydENlbGxSZWFsIixmOmZ1bmN0aW9uIElTKFMpe3JldHVybltJMShTKSxSbChTKSwibiJdfX0sNjp7bjoiQnJ0Q2VsbFN0IixmOmZ1bmN0aW9uIFVuZShT'@; put 'KXtyZXR1cm5bSTEoUyksZHUoUyksInN0ciJdfX0sNzp7bjoiQnJ0Q2VsbElzc3QiLGY6ZnVuY3Rpb24gRmooUyl7cmV0dXJuW0kxKFMpLFMucmVhZF9zaGlmdCg0KSwicyJdfX0sODp7bjoiQnJ0Rm1sYVN0cmluZyIsZjpmdW5jdGlvbiB1eShTLE8sayl7dmFyIEs9Uy5sK08sZWU9STEoUyk7'@; put 'ZWUucj1rWyIhcm93Il07dmFyIG1lPVtlZSxkdShTKSwic3RyIl07aWYoay5jZWxsRm9ybXVsYSl7Uy5sKz0yO3ZhciBwZT16NChTLEstUy5sLGspO21lWzNdPWEwKHBlLG51bGwsZWUsay5zdXBib29rcyxrKX1lbHNlIFMubD1LO3JldHVybiBtZX19LDk6e246IkJydEZtbGFOdW0iLGY6ZnVu'@; put 'Y3Rpb24gTFMoUyxPLGspe3ZhciBLPVMubCtPLGVlPUkxKFMpO2VlLnI9a1siIXJvdyJdO3ZhciBtZT1bZWUsUmwoUyksIm4iXTtpZihrLmNlbGxGb3JtdWxhKXtTLmwrPTI7dmFyIHBlPXo0KFMsSy1TLmwsayk7bWVbM109YTAocGUsbnVsbCxlZSxrLnN1cGJvb2tzLGspfWVsc2UgUy5sPUs7'@; put 'cmV0dXJuIG1lfX0sMTA6e246IkJydEZtbGFCb29sIixmOmZ1bmN0aW9uIFJTKFMsTyxrKXt2YXIgSz1TLmwrTyxlZT1JMShTKTtlZS5yPWtbIiFyb3ciXTt2YXIgbWU9W2VlLFMucmVhZF9zaGlmdCgxKSwiYiJdO2lmKGsuY2VsbEZvcm11bGEpe1MubCs9Mjt2YXIgcGU9ejQoUyxLLVMubCxr'@; put 'KTttZVszXT1hMChwZSxudWxsLGVlLGsuc3VwYm9va3Msayl9ZWxzZSBTLmw9SztyZXR1cm4gbWV9fSwxMTp7bjoiQnJ0Rm1sYUVycm9yIixmOmZ1bmN0aW9uIHc4KFMsTyxrKXt2YXIgSz1TLmwrTyxlZT1JMShTKTtlZS5yPWtbIiFyb3ciXTt2YXIgbWU9W2VlLFMucmVhZF9zaGlmdCgxKSwi'@; put 'ZSJdO2lmKGsuY2VsbEZvcm11bGEpe1MubCs9Mjt2YXIgcGU9ejQoUyxLLVMubCxrKTttZVszXT1hMChwZSxudWxsLGVlLGsuc3VwYm9va3Msayl9ZWxzZSBTLmw9SztyZXR1cm4gbWV9fSwxMjp7bjoiQnJ0U2hvcnRCbGFuayIsZjpmdW5jdGlvbiBMaihTKXtyZXR1cm5bZTIoUyldfX0sMTM6'@; put 'e246IkJydFNob3J0UmsiLGY6ZnVuY3Rpb24gem5lKFMpe3JldHVybltlMihTKSxSMShTKSwibiJdfX0sMTQ6e246IkJydFNob3J0RXJyb3IiLGY6ZnVuY3Rpb24gXzgoUyl7cmV0dXJuW2UyKFMpLFMucmVhZF9zaGlmdCgxKSwiZSJdfX0sMTU6e246IkJydFNob3J0Qm9vbCIsZjpmdW5jdGlv'@; put 'biBZRChTKXtyZXR1cm5bZTIoUyksUy5yZWFkX3NoaWZ0KDEpLCJiIl19fSwxNjp7bjoiQnJ0U2hvcnRSZWFsIixmOkJqfSwxNzp7bjoiQnJ0U2hvcnRTdCIsZjpmdW5jdGlvbiBXaihTKXtyZXR1cm5bZTIoUyksZHUoUyksInN0ciJdfX0sMTg6e246IkJydFNob3J0SXNzdCIsZjpmdW5jdGlv'@; put 'biBOaihTKXtyZXR1cm5bZTIoUyksUy5yZWFkX3NoaWZ0KDQpLCJzIl19fSwxOTp7bjoiQnJ0U1NUSXRlbSIsZjppbH0sMjA6e246IkJydFBDRElNaXNzaW5nIn0sMjE6e246IkJydFBDRElOdW1iZXIifSwyMjp7bjoiQnJ0UENESUJvb2xlYW4ifSwyMzp7bjoiQnJ0UENESUVycm9yIn0sMjQ6'@; put 'e246IkJydFBDRElTdHJpbmcifSwyNTp7bjoiQnJ0UENESURhdGV0aW1lIn0sMjY6e246IkJydFBDRElJbmRleCJ9LDI3OntuOiJCcnRQQ0RJQU1pc3NpbmcifSwyODp7bjoiQnJ0UENESUFOdW1iZXIifSwyOTp7bjoiQnJ0UENESUFCb29sZWFuIn0sMzA6e246IkJydFBDRElBRXJyb3IifSwz'@; put 'MTp7bjoiQnJ0UENESUFTdHJpbmcifSwzMjp7bjoiQnJ0UENESUFEYXRldGltZSJ9LDMzOntuOiJCcnRQQ1JSZWNvcmQifSwzNDp7bjoiQnJ0UENSUmVjb3JkRHQifSwzNTp7bjoiQnJ0RlJUQmVnaW4ifSwzNjp7bjoiQnJ0RlJURW5kIn0sMzc6e246IkJydEFDQmVnaW4ifSwzODp7bjoiQnJ0'@; put 'QUNFbmQifSwzOTp7bjoiQnJ0TmFtZSIsZjpmdW5jdGlvbiBBOChTLE8sayl7dmFyIEs9Uy5sK087Uy5sKz00LFMubCs9MTt2YXIgZWU9Uy5yZWFkX3NoaWZ0KDQpLG9lPWE1KFMpLG1lPW1EKFMsMCxrKSxwZT1RdShTKTtTLmw9Szt2YXIgYmU9e05hbWU6b2UsUHRnOm1lfTtyZXR1cm4gZWU8'@; put 'MjY4NDM1NDU1JiYoYmUuU2hlZXQ9ZWUpLHBlJiYoYmUuQ29tbWVudD1wZSksYmV9fSw0MDp7bjoiQnJ0SW5kZXhSb3dCbG9jayJ9LDQyOntuOiJCcnRJbmRleEJsb2NrIn0sNDM6e246IkJydEZvbnQiLGY6ZnVuY3Rpb24gWVYoUyxPLGspe3ZhciBLPXt9O0suc3o9Uy5yZWFkX3NoaWZ0KDIp'@; put 'LzIwO3ZhciBlZT1WdyhTKTtzd2l0Y2goZWUuZkJvbGQmJihLLmJvbGQ9MSksZWUuZkl0YWxpYyYmKEsuaXRhbGljPTEpLGVlLmZVbmRlcmxpbmUmJihLLnVuZGVybGluZT0xKSxlZS5mQ29uZGVuc2UmJihLLmNvbmRlbnNlPTEpLGVlLmZFeHRlbmQmJihLLmV4dGVuZD0xKSxlZS5mU2hhZG93'@; put 'JiYoSy5zaGFkb3c9MSksZWUuZk91dGxpbmUmJihLLm91dGxpbmU9MSksZWUuZlN0cmlrZW91dCYmKEsuc3RyaWtlPTEpLDcwMD09PVMucmVhZF9zaGlmdCgyKSYmKEsuYm9sZD0xKSxTLnJlYWRfc2hpZnQoMikpe2Nhc2UgMTpLLnZhbGlnbj0ic3VwZXIiO2JyZWFrO2Nhc2UgMjpLLnZhbGln'@; put 'bj0ic3ViIn12YXIgbWU9Uy5yZWFkX3NoaWZ0KDEpOzAhPW1lJiYoSy51bmRlcmxpbmU9bWUpO3ZhciBwZT1TLnJlYWRfc2hpZnQoMSk7cGU+MCYmKEsuZmFtaWx5PXBlKTt2YXIgYmU9Uy5yZWFkX3NoaWZ0KDEpO3N3aXRjaChiZT4wJiYoSy5jaGFyc2V0PWJlKSxTLmwrKyxLLmNvbG9yPXQy'@; put 'KFMpLFMucmVhZF9zaGlmdCgxKSl7Y2FzZSAxOksuc2NoZW1lPSJtYWpvciI7YnJlYWs7Y2FzZSAyOksuc2NoZW1lPSJtaW5vciJ9cmV0dXJuIEsubmFtZT1kdShTKSxLfX0sNDQ6e246IkJydEZtdCIsZjpmdW5jdGlvbiBqdihTLE8pe3JldHVybltTLnJlYWRfc2hpZnQoMiksZHUoUyldfX0s'@; put 'NDU6e246IkJydEZpbGwiLGY6ZnVuY3Rpb24gWFYoUyxPKXt2YXIgaz1TLmwrTyxLPXt9LGVlPVMucmVhZF9zaGlmdCg0KTtpZig0MCE9ZWUpe0sucGF0dGVyblR5cGU9a0NbZWVdO3ZhciBvZT10MihTKTs2NCE9b2UuaW5kZXgmJihLLmZnQ29sb3I9b2UpO3ZhciBtZT10MihTKTs2NSE9bWUu'@; put 'aW5kZXgmJihLLmJnQ29sb3I9bWUpfWVsc2V7Uy5sKz0xNixTLnJlYWRfc2hpZnQoNCksUmwoUyksUmwoUyksUmwoUyksUmwoUyksUmwoUyk7Zm9yKHZhciBwZT1TLnJlYWRfc2hpZnQoNCksYmU9W10sUGU9MDtQZTxwZTsrK1BlKWJlLnB1c2goJFYoUykpfXJldHVybiBTLmw9ayxLfX0sNDY6'@; put 'e246IkJydEJvcmRlciIsZjpmdW5jdGlvbiBxVihTKXt2YXIgTz17fTtTLnJlYWRfc2hpZnQoMSk7dmFyIGs9QTUoUyk7Im5vbmUiIT1rLnN0eWxlJiYoTy50b3A9ayk7dmFyIEs9QTUoUyk7Im5vbmUiIT1LLnN0eWxlJiYoTy5ib3R0b209Syk7dmFyIGVlPUE1KFMpOyJub25lIiE9ZWUuc3R5'@; put 'bGUmJihPLmxlZnQ9ZWUpO3ZhciBvZT1BNShTKTsibm9uZSIhPW9lLnN0eWxlJiYoTy5yaWdodD1vZSk7dmFyIG1lPUE1KFMpO3JldHVybiJub25lIiE9bWUuc3R5bGUmJihPLmRpYWc9bWUpLE99fSw0Nzp7bjoiQnJ0WEYiLGY6ZnVuY3Rpb24gREMoUyxPKXt2YXIgaz1TLmwrTyxLPXt9LGVl'@; put 'PVMucmVhZF9zaGlmdCgyKSxvZT1TLnJlYWRfc2hpZnQoMiksbWU9Uy5yZWFkX3NoaWZ0KDIpLHBlPVMucmVhZF9zaGlmdCgyKSxiZT1TLnJlYWRfc2hpZnQoMiksUGU9Uy5yZWFkX3NoaWZ0KDEpO1MucmVhZF9zaGlmdCgxKTt2YXIgVmU9Uy5yZWFkX3NoaWZ0KDIpLFllPVMucmVhZF9zaGlm'@; put 'dCgxKTtTLmw9ayxLLnhmSWQ9ZWUsSy5udW1GbXRJZD1vZSxLLmZvbnRJZD1tZSxLLmZpbGxJZD1wZSxLLmJvcmRlcklkPWJlLDEmWWUmJjAhPUsubnVtRm10SWQmJihLLmFwcGx5TnVtYmVyRm9ybWF0PSEwKSxLLmFsaWdubWVudD17fSxQZT4wJiYoSy5hbGlnbm1lbnQudGV4dFJvdGF0aW9u'@; put 'PVBlKTt2YXIgZXQ9ITE7cmV0dXJuIDcmVmUmJihldD0hMCxLLmFsaWdubWVudC5ob3Jpem9udGFsPVQ1WzcmVmVdKSxLLmFsaWdubWVudC52ZXJ0aWNhbD10OFtWZT4+PjMmN10sSy5hbGlnbm1lbnQudmVydGljYWwmJihldD0hMCksVmU+Pj42JjEmJihLLmFsaWdubWVudC53cmFwVGV4dD0h'@; put 'MCksVmU+Pj44JjEmJihLLmFsaWdubWVudC5zaHJpbmtUb0ZpdD0hMCksZXR8fGRlbGV0ZSBLLmFsaWdubWVudCw0JlllJiZldCYmKEsuYXBwbHlBbGlnbm1lbnQ9ITApLEt9fSw0ODp7bjoiQnJ0U3R5bGUifSw0OTp7bjoiQnJ0Q2VsbE1ldGEifSw1MDp7bjoiQnJ0VmFsdWVNZXRhIn0sNTE6'@; put 'e246IkJydE1kYiJ9LDUyOntuOiJCcnRCZWdpbkZtZCJ9LDUzOntuOiJCcnRFbmRGbWQifSw1NDp7bjoiQnJ0QmVnaW5NZHgifSw1NTp7bjoiQnJ0RW5kTWR4In0sNTY6e246IkJydEJlZ2luTWR4VHVwbGUifSw1Nzp7bjoiQnJ0RW5kTWR4VHVwbGUifSw1ODp7bjoiQnJ0TWR4TWJySXN0ciJ9'@; put 'LDU5OntuOiJCcnRTdHIifSw2MDp7bjoiQnJ0Q29sSW5mbyIsZjpsQ30sNjI6e246IkJydENlbGxSU3RyaW5nIn0sNjM6e246IkJydENhbGNDaGFpbkl0ZW0kIixmOmZ1bmN0aW9uIHI4KFMpe3ZhciBPPXt9O08uaT1TLnJlYWRfc2hpZnQoNCk7dmFyIGs9e307ay5yPVMucmVhZF9zaGlmdCg0'@; put 'KSxrLmM9Uy5yZWFkX3NoaWZ0KDQpLE8ucj1xaShrKTt2YXIgSz1TLnJlYWRfc2hpZnQoMSk7cmV0dXJuIDImSyYmKE8ubD0iMSIpLDgmSyYmKE8uYT0iMSIpLE99fSw2NDp7bjoiQnJ0RFZhbCIsZjpmdW5jdGlvbiB0eihTLE8sayl7dmFyIEs9Uy5sK08sZWU9Uy5yZWFkX3NoaWZ0KDQpLG9l'@; put 'PWUwKFMpLG1lPVF1KFMpLHBlPVF1KFMpLGJlPVF1KFMpLFBlPVF1KFMpLFZlPWdEKFMsTyxrKSxZZT1TLmw8Sz9nRChTLE8sayk6bnVsbCxldD0xNSZlZSxjdD17dDpRRFtldF0sc3FyZng6b2UsczpbbWUscGUsYmUsUGVdfTtyZXR1cm4gVmUmJihjdC5mMT1WZSksWWUmJihjdC5mMj1ZZSks'@; put 'MD09ZXR8fDM9PWV0fHw3PT1ldHx8KGN0Lm9wPVBTW2VlPj4yMCYxNV0pLGN0fX0sNjU6e246IkJydFN4dmNlbGxOdW0ifSw2Njp7bjoiQnJ0U3h2Y2VsbFN0ciJ9LDY3OntuOiJCcnRTeHZjZWxsQm9vbCJ9LDY4OntuOiJCcnRTeHZjZWxsRXJyIn0sNjk6e246IkJydFN4dmNlbGxEYXRlIn0s'@; put 'NzA6e246IkJydFN4dmNlbGxOaWwifSwxMjg6e246IkJydEZpbGVWZXJzaW9uIn0sMTI5OntuOiJCcnRCZWdpblNoZWV0In0sMTMwOntuOiJCcnRFbmRTaGVldCJ9LDEzMTp7bjoiQnJ0QmVnaW5Cb29rIixmOlJuLHA6MH0sMTMyOntuOiJCcnRFbmRCb29rIn0sMTMzOntuOiJCcnRCZWdpbldz'@; put 'Vmlld3MifSwxMzQ6e246IkJydEVuZFdzVmlld3MifSwxMzU6e246IkJydEJlZ2luQm9va1ZpZXdzIn0sMTM2OntuOiJCcnRFbmRCb29rVmlld3MifSwxMzc6e246IkJydEJlZ2luV3NWaWV3IixmOmZ1bmN0aW9uIE9TKFMpe3ZhciBPPVMucmVhZF9zaGlmdCgyKTtyZXR1cm4gUy5sKz0yOCx7'@; put 'UlRMOjMyJk8sZ3JpZDohISg0Jk8pfX19LDEzODp7bjoiQnJ0RW5kV3NWaWV3In0sMTM5OntuOiJCcnRCZWdpbkNzVmlld3MifSwxNDA6e246IkJydEVuZENzVmlld3MifSwxNDE6e246IkJydEJlZ2luQ3NWaWV3In0sMTQyOntuOiJCcnRFbmRDc1ZpZXcifSwxNDM6e246IkJydEJlZ2luQnVu'@; put 'ZGxlU2hzIn0sMTQ0OntuOiJCcnRFbmRCdW5kbGVTaHMifSwxNDU6e246IkJydEJlZ2luU2hlZXREYXRhIn0sMTQ2OntuOiJCcnRFbmRTaGVldERhdGEifSwxNDc6e246IkJydFdzUHJvcCIsZjpmdW5jdGlvbiBseShTLE8pe3ZhciBrPXt9LEs9U1tTLmxdO3JldHVybisrUy5sLGsuYWJvdmU9'@; put 'ISg2NCZLKSxrLmxlZnQ9ISgxMjgmSyksUy5sKz0xOCxrLm5hbWU9bjUoUyxPLTE5KSxrfX0sMTQ4OntuOiJCcnRXc0RpbSIsZjpraixwOjE2fSwxNTE6e246IkJydFBhbmUiLGY6ZnVuY3Rpb24gWEQoUyxPKXt2YXIgaz1TLmwrTztSbChTKSxSbChTKTt2YXIgSz1TLnJlYWRfc2hpZnQoNCwi'@; put 'aSIpLGVlPVMucmVhZF9zaGlmdCg0LCJpIik7aWYoUy5yZWFkX3NoaWZ0KDQpLFMucmVhZF9zaGlmdCgxKSxrIT1TLmwpdGhyb3cgbmV3IEVycm9yKCJCYWQgQnJ0UGFuZTogIitrKyIgIT0gIitTLmwpO3JldHVybltxaSh7cjpLLGM6ZWV9KV19fSwxNTI6e246IkJydFNlbCIsZjpmdW5jdGlv'@; put 'biBxRChTLE8pe3JldHVybiBTLnJlYWRfc2hpZnQoNCkse2NlbGw6cWkoe3I6Uy5yZWFkX3NoaWZ0KDQpLGM6Uy5yZWFkX3NoaWZ0KDQpfSl9fX0sMTUzOntuOiJCcnRXYlByb3AiLGY6ZnVuY3Rpb24gVVMoUyxPKXt2YXIgaz17fSxLPVMucmVhZF9zaGlmdCg0KTtrLmRlZmF1bHRUaGVtZVZl'@; put 'cnNpb249Uy5yZWFkX3NoaWZ0KDQpO3ZhciBlZT1PPjg/ZHUoUyk6IiI7cmV0dXJuIGVlLmxlbmd0aD4wJiYoay5Db2RlTmFtZT1lZSksay5hdXRvQ29tcHJlc3NQaWN0dXJlcz0hISg2NTUzNiZLKSxrLmJhY2t1cEZpbGU9ISEoNjQmSyksay5jaGVja0NvbXBhdGliaWxpdHk9ISEoNDA5NiZL'@; put 'KSxrLmRhdGUxOTA0PSEhKDEmSyksay5maWx0ZXJQcml2YWN5PSEhKDgmSyksay5oaWRlUGl2b3RGaWVsZExpc3Q9ISEoMTAyNCZLKSxrLnByb21wdGVkU29sdXRpb25zPSEhKDE2JkspLGsucHVibGlzaEl0ZW1zPSEhKDIwNDgmSyksay5yZWZyZXNoQWxsQ29ubmVjdGlvbnM9ISEoMjYyMTQ0'@; put 'JkspLGsuc2F2ZUV4dGVybmFsTGlua1ZhbHVlcz0hISgxMjgmSyksay5zaG93Qm9yZGVyVW5zZWxlY3RlZFRhYmxlcz0hISg0JkspLGsuc2hvd0lua0Fubm90YXRpb249ISEoMzImSyksay5zaG93T2JqZWN0cz1bImFsbCIsInBsYWNlaG9sZGVycyIsIm5vbmUiXVtLPj4xMyYzXSxrLnNob3dQ'@; put 'aXZvdENoYXJ0RmlsdGVyPSEhKDMyNzY4JkspLGsudXBkYXRlTGlua3M9WyJ1c2VyU2V0IiwibmV2ZXIiLCJhbHdheXMiXVtLPj44JjNdLGt9fSwxNTQ6e246IkJydFdiRmFjdG9pZCJ9LDE1NTp7bjoiQnJ0RmlsZVJlY292ZXIifSwxNTY6e246IkJydEJ1bmRsZVNoIixmOmZ1bmN0aW9uIGJ6'@; put 'KFMsTyl7dmFyIGs9e307cmV0dXJuIGsuSGlkZGVuPVMucmVhZF9zaGlmdCg0KSxrLmlUYWJJRD1TLnJlYWRfc2hpZnQoNCksay5zdHJSZWxJRD1nNChTLE8tOCksay5uYW1lPWR1KFMpLGt9fSwxNTc6e246IkJydENhbGNQcm9wIn0sMTU4OntuOiJCcnRCb29rVmlldyJ9LDE1OTp7bjoiQnJ0'@; put 'QmVnaW5Tc3QiLGY6ZnVuY3Rpb24ga3YoUyl7cmV0dXJuW1MucmVhZF9zaGlmdCg0KSxTLnJlYWRfc2hpZnQoNCldfX0sMTYwOntuOiJCcnRFbmRTc3QifSwxNjE6e246IkJydEJlZ2luQUZpbHRlciIsZjpodX0sMTYyOntuOiJCcnRFbmRBRmlsdGVyIn0sMTYzOntuOiJCcnRCZWdpbkZpbHRl'@; put 'ckNvbHVtbiJ9LDE2NDp7bjoiQnJ0RW5kRmlsdGVyQ29sdW1uIn0sMTY1OntuOiJCcnRCZWdpbkZpbHRlcnMifSwxNjY6e246IkJydEVuZEZpbHRlcnMifSwxNjc6e246IkJydEZpbHRlciJ9LDE2ODp7bjoiQnJ0Q29sb3JGaWx0ZXIifSwxNjk6e246IkJydEljb25GaWx0ZXIifSwxNzA6e246'@; put 'IkJydFRvcDEwRmlsdGVyIn0sMTcxOntuOiJCcnREeW5hbWljRmlsdGVyIn0sMTcyOntuOiJCcnRCZWdpbkN1c3RvbUZpbHRlcnMifSwxNzM6e246IkJydEVuZEN1c3RvbUZpbHRlcnMifSwxNzQ6e246IkJydEN1c3RvbUZpbHRlciJ9LDE3NTp7bjoiQnJ0QUZpbHRlckRhdGVHcm91cEl0ZW0i'@; put 'fSwxNzY6e246IkJydE1lcmdlQ2VsbCIsZjokRH0sMTc3OntuOiJCcnRCZWdpbk1lcmdlQ2VsbHMifSwxNzg6e246IkJydEVuZE1lcmdlQ2VsbHMifSwxNzk6e246IkJydEJlZ2luUGl2b3RDYWNoZURlZiJ9LDE4MDp7bjoiQnJ0RW5kUGl2b3RDYWNoZURlZiJ9LDE4MTp7bjoiQnJ0QmVnaW5Q'@; put 'Q0RGaWVsZHMifSwxODI6e246IkJydEVuZFBDREZpZWxkcyJ9LDE4Mzp7bjoiQnJ0QmVnaW5QQ0RGaWVsZCJ9LDE4NDp7bjoiQnJ0RW5kUENERmllbGQifSwxODU6e246IkJydEJlZ2luUENEU291cmNlIn0sMTg2OntuOiJCcnRFbmRQQ0RTb3VyY2UifSwxODc6e246IkJydEJlZ2luUENEU1Jh'@; put 'bmdlIn0sMTg4OntuOiJCcnRFbmRQQ0RTUmFuZ2UifSwxODk6e246IkJydEJlZ2luUENERkF0YmwifSwxOTA6e246IkJydEVuZFBDREZBdGJsIn0sMTkxOntuOiJCcnRCZWdpblBDRElSdW4ifSwxOTI6e246IkJydEVuZFBDRElSdW4ifSwxOTM6e246IkJydEJlZ2luUGl2b3RDYWNoZVJlY29y'@; put 'ZHMifSwxOTQ6e246IkJydEVuZFBpdm90Q2FjaGVSZWNvcmRzIn0sMTk1OntuOiJCcnRCZWdpblBDREhpZXJhcmNoaWVzIn0sMTk2OntuOiJCcnRFbmRQQ0RIaWVyYXJjaGllcyJ9LDE5Nzp7bjoiQnJ0QmVnaW5QQ0RIaWVyYXJjaHkifSwxOTg6e246IkJydEVuZFBDREhpZXJhcmNoeSJ9LDE5'@; put 'OTp7bjoiQnJ0QmVnaW5QQ0RIRmllbGRzVXNhZ2UifSwyMDA6e246IkJydEVuZFBDREhGaWVsZHNVc2FnZSJ9LDIwMTp7bjoiQnJ0QmVnaW5FeHRDb25uZWN0aW9uIn0sMjAyOntuOiJCcnRFbmRFeHRDb25uZWN0aW9uIn0sMjAzOntuOiJCcnRCZWdpbkVDRGJQcm9wcyJ9LDIwNDp7bjoiQnJ0'@; put 'RW5kRUNEYlByb3BzIn0sMjA1OntuOiJCcnRCZWdpbkVDT2xhcFByb3BzIn0sMjA2OntuOiJCcnRFbmRFQ09sYXBQcm9wcyJ9LDIwNzp7bjoiQnJ0QmVnaW5QQ0RTQ29uc29sIn0sMjA4OntuOiJCcnRFbmRQQ0RTQ29uc29sIn0sMjA5OntuOiJCcnRCZWdpblBDRFNDUGFnZXMifSwyMTA6e246'@; put 'IkJydEVuZFBDRFNDUGFnZXMifSwyMTE6e246IkJydEJlZ2luUENEU0NQYWdlIn0sMjEyOntuOiJCcnRFbmRQQ0RTQ1BhZ2UifSwyMTM6e246IkJydEJlZ2luUENEU0NQSXRlbSJ9LDIxNDp7bjoiQnJ0RW5kUENEU0NQSXRlbSJ9LDIxNTp7bjoiQnJ0QmVnaW5QQ0RTQ1NldHMifSwyMTY6e246'@; put 'IkJydEVuZFBDRFNDU2V0cyJ9LDIxNzp7bjoiQnJ0QmVnaW5QQ0RTQ1NldCJ9LDIxODp7bjoiQnJ0RW5kUENEU0NTZXQifSwyMTk6e246IkJydEJlZ2luUENERkdyb3VwIn0sMjIwOntuOiJCcnRFbmRQQ0RGR3JvdXAifSwyMjE6e246IkJydEJlZ2luUENERkdJdGVtcyJ9LDIyMjp7bjoiQnJ0'@; put 'RW5kUENERkdJdGVtcyJ9LDIyMzp7bjoiQnJ0QmVnaW5QQ0RGR1JhbmdlIn0sMjI0OntuOiJCcnRFbmRQQ0RGR1JhbmdlIn0sMjI1OntuOiJCcnRCZWdpblBDREZHRGlzY3JldGUifSwyMjY6e246IkJydEVuZFBDREZHRGlzY3JldGUifSwyMjc6e246IkJydEJlZ2luUENEU0RUdXBsZUNhY2hl'@; put 'In0sMjI4OntuOiJCcnRFbmRQQ0RTRFR1cGxlQ2FjaGUifSwyMjk6e246IkJydEJlZ2luUENEU0RUQ0VudHJpZXMifSwyMzA6e246IkJydEVuZFBDRFNEVENFbnRyaWVzIn0sMjMxOntuOiJCcnRCZWdpblBDRFNEVENFTWVtYmVycyJ9LDIzMjp7bjoiQnJ0RW5kUENEU0RUQ0VNZW1iZXJzIn0s'@; put 'MjMzOntuOiJCcnRCZWdpblBDRFNEVENFTWVtYmVyIn0sMjM0OntuOiJCcnRFbmRQQ0RTRFRDRU1lbWJlciJ9LDIzNTp7bjoiQnJ0QmVnaW5QQ0RTRFRDUXVlcmllcyJ9LDIzNjp7bjoiQnJ0RW5kUENEU0RUQ1F1ZXJpZXMifSwyMzc6e246IkJydEJlZ2luUENEU0RUQ1F1ZXJ5In0sMjM4Ontu'@; put 'OiJCcnRFbmRQQ0RTRFRDUXVlcnkifSwyMzk6e246IkJydEJlZ2luUENEU0RUQ1NldHMifSwyNDA6e246IkJydEVuZFBDRFNEVENTZXRzIn0sMjQxOntuOiJCcnRCZWdpblBDRFNEVENTZXQifSwyNDI6e246IkJydEVuZFBDRFNEVENTZXQifSwyNDM6e246IkJydEJlZ2luUENEQ2FsY0l0ZW1z'@; put 'In0sMjQ0OntuOiJCcnRFbmRQQ0RDYWxjSXRlbXMifSwyNDU6e246IkJydEJlZ2luUENEQ2FsY0l0ZW0ifSwyNDY6e246IkJydEVuZFBDRENhbGNJdGVtIn0sMjQ3OntuOiJCcnRCZWdpblBSdWxlIn0sMjQ4OntuOiJCcnRFbmRQUnVsZSJ9LDI0OTp7bjoiQnJ0QmVnaW5QUkZpbHRlcnMifSwy'@; put 'NTA6e246IkJydEVuZFBSRmlsdGVycyJ9LDI1MTp7bjoiQnJ0QmVnaW5QUkZpbHRlciJ9LDI1Mjp7bjoiQnJ0RW5kUFJGaWx0ZXIifSwyNTM6e246IkJydEJlZ2luUE5hbWVzIn0sMjU0OntuOiJCcnRFbmRQTmFtZXMifSwyNTU6e246IkJydEJlZ2luUE5hbWUifSwyNTY6e246IkJydEVuZFBO'@; put 'YW1lIn0sMjU3OntuOiJCcnRCZWdpblBOUGFpcnMifSwyNTg6e246IkJydEVuZFBOUGFpcnMifSwyNTk6e246IkJydEJlZ2luUE5QYWlyIn0sMjYwOntuOiJCcnRFbmRQTlBhaXIifSwyNjE6e246IkJydEJlZ2luRUNXZWJQcm9wcyJ9LDI2Mjp7bjoiQnJ0RW5kRUNXZWJQcm9wcyJ9LDI2Mzp7'@; put 'bjoiQnJ0QmVnaW5FY1dwVGFibGVzIn0sMjY0OntuOiJCcnRFbmRFQ1dQVGFibGVzIn0sMjY1OntuOiJCcnRCZWdpbkVDUGFyYW1zIn0sMjY2OntuOiJCcnRFbmRFQ1BhcmFtcyJ9LDI2Nzp7bjoiQnJ0QmVnaW5FQ1BhcmFtIn0sMjY4OntuOiJCcnRFbmRFQ1BhcmFtIn0sMjY5OntuOiJCcnRC'@; put 'ZWdpblBDREtQSXMifSwyNzA6e246IkJydEVuZFBDREtQSXMifSwyNzE6e246IkJydEJlZ2luUENES1BJIn0sMjcyOntuOiJCcnRFbmRQQ0RLUEkifSwyNzM6e246IkJydEJlZ2luRGltcyJ9LDI3NDp7bjoiQnJ0RW5kRGltcyJ9LDI3NTp7bjoiQnJ0QmVnaW5EaW0ifSwyNzY6e246IkJydEVu'@; put 'ZERpbSJ9LDI3Nzp7bjoiQnJ0SW5kZXhQYXJ0RW5kIn0sMjc4OntuOiJCcnRCZWdpblN0eWxlU2hlZXQifSwyNzk6e246IkJydEVuZFN0eWxlU2hlZXQifSwyODA6e246IkJydEJlZ2luU1hWaWV3In0sMjgxOntuOiJCcnRFbmRTWFZJIn0sMjgyOntuOiJCcnRCZWdpblNYVkkifSwyODM6e246'@; put 'IkJydEJlZ2luU1hWSXMifSwyODQ6e246IkJydEVuZFNYVklzIn0sMjg1OntuOiJCcnRCZWdpblNYVkQifSwyODY6e246IkJydEVuZFNYVkQifSwyODc6e246IkJydEJlZ2luU1hWRHMifSwyODg6e246IkJydEVuZFNYVkRzIn0sMjg5OntuOiJCcnRCZWdpblNYUEkifSwyOTA6e246IkJydEVu'@; put 'ZFNYUEkifSwyOTE6e246IkJydEJlZ2luU1hQSXMifSwyOTI6e246IkJydEVuZFNYUElzIn0sMjkzOntuOiJCcnRCZWdpblNYREkifSwyOTQ6e246IkJydEVuZFNYREkifSwyOTU6e246IkJydEJlZ2luU1hESXMifSwyOTY6e246IkJydEVuZFNYRElzIn0sMjk3OntuOiJCcnRCZWdpblNYTEki'@; put 'fSwyOTg6e246IkJydEVuZFNYTEkifSwyOTk6e246IkJydEJlZ2luU1hMSVJ3cyJ9LDMwMDp7bjoiQnJ0RW5kU1hMSVJ3cyJ9LDMwMTp7bjoiQnJ0QmVnaW5TWExJQ29scyJ9LDMwMjp7bjoiQnJ0RW5kU1hMSUNvbHMifSwzMDM6e246IkJydEJlZ2luU1hGb3JtYXQifSwzMDQ6e246IkJydEVu'@; put 'ZFNYRm9ybWF0In0sMzA1OntuOiJCcnRCZWdpblNYRm9ybWF0cyJ9LDMwNjp7bjoiQnJ0RW5kU3hGb3JtYXRzIn0sMzA3OntuOiJCcnRCZWdpblN4U2VsZWN0In0sMzA4OntuOiJCcnRFbmRTeFNlbGVjdCJ9LDMwOTp7bjoiQnJ0QmVnaW5JU1hWRFJ3cyJ9LDMxMDp7bjoiQnJ0RW5kSVNYVkRS'@; put 'd3MifSwzMTE6e246IkJydEJlZ2luSVNYVkRDb2xzIn0sMzEyOntuOiJCcnRFbmRJU1hWRENvbHMifSwzMTM6e246IkJydEVuZFNYTG9jYXRpb24ifSwzMTQ6e246IkJydEJlZ2luU1hMb2NhdGlvbiJ9LDMxNTp7bjoiQnJ0RW5kU1hWaWV3In0sMzE2OntuOiJCcnRCZWdpblNYVEhzIn0sMzE3'@; put 'OntuOiJCcnRFbmRTWFRIcyJ9LDMxODp7bjoiQnJ0QmVnaW5TWFRIIn0sMzE5OntuOiJCcnRFbmRTWFRIIn0sMzIwOntuOiJCcnRCZWdpbklTWFRIUndzIn0sMzIxOntuOiJCcnRFbmRJU1hUSFJ3cyJ9LDMyMjp7bjoiQnJ0QmVnaW5JU1hUSENvbHMifSwzMjM6e246IkJydEVuZElTWFRIQ29s'@; put 'cyJ9LDMyNDp7bjoiQnJ0QmVnaW5TWFRETVBTIn0sMzI1OntuOiJCcnRFbmRTWFRETVBzIn0sMzI2OntuOiJCcnRCZWdpblNYVERNUCJ9LDMyNzp7bjoiQnJ0RW5kU1hURE1QIn0sMzI4OntuOiJCcnRCZWdpblNYVEhJdGVtcyJ9LDMyOTp7bjoiQnJ0RW5kU1hUSEl0ZW1zIn0sMzMwOntuOiJC'@; put 'cnRCZWdpblNYVEhJdGVtIn0sMzMxOntuOiJCcnRFbmRTWFRISXRlbSJ9LDMzMjp7bjoiQnJ0QmVnaW5NZXRhZGF0YSJ9LDMzMzp7bjoiQnJ0RW5kTWV0YWRhdGEifSwzMzQ6e246IkJydEJlZ2luRXNtZHRpbmZvIn0sMzM1OntuOiJCcnRNZHRpbmZvIn0sMzM2OntuOiJCcnRFbmRFc21kdGlu'@; put 'Zm8ifSwzMzc6e246IkJydEJlZ2luRXNtZGIifSwzMzg6e246IkJydEVuZEVzbWRiIn0sMzM5OntuOiJCcnRCZWdpbkVzZm1kIn0sMzQwOntuOiJCcnRFbmRFc2ZtZCJ9LDM0MTp7bjoiQnJ0QmVnaW5TaW5nbGVDZWxscyJ9LDM0Mjp7bjoiQnJ0RW5kU2luZ2xlQ2VsbHMifSwzNDM6e246IkJy'@; put 'dEJlZ2luTGlzdCJ9LDM0NDp7bjoiQnJ0RW5kTGlzdCJ9LDM0NTp7bjoiQnJ0QmVnaW5MaXN0Q29scyJ9LDM0Njp7bjoiQnJ0RW5kTGlzdENvbHMifSwzNDc6e246IkJydEJlZ2luTGlzdENvbCJ9LDM0ODp7bjoiQnJ0RW5kTGlzdENvbCJ9LDM0OTp7bjoiQnJ0QmVnaW5MaXN0WG1sQ1ByIn0s'@; put 'MzUwOntuOiJCcnRFbmRMaXN0WG1sQ1ByIn0sMzUxOntuOiJCcnRMaXN0Q0NGbWxhIn0sMzUyOntuOiJCcnRMaXN0VHJGbWxhIn0sMzUzOntuOiJCcnRCZWdpbkV4dGVybmFscyJ9LDM1NDp7bjoiQnJ0RW5kRXh0ZXJuYWxzIn0sMzU1OntuOiJCcnRTdXBCb29rU3JjIixmOmc0fSwzNTc6e246'@; put 'IkJydFN1cFNlbGYifSwzNTg6e246IkJydFN1cFNhbWUifSwzNTk6e246IkJydFN1cFRhYnMifSwzNjA6e246IkJydEJlZ2luU3VwQm9vayJ9LDM2MTp7bjoiQnJ0UGxhY2Vob2xkZXJOYW1lIn0sMzYyOntuOiJCcnRFeHRlcm5TaGVldCIsZjpTdn0sMzYzOntuOiJCcnRFeHRlcm5UYWJsZVN0'@; put 'YXJ0In0sMzY0OntuOiJCcnRFeHRlcm5UYWJsZUVuZCJ9LDM2Njp7bjoiQnJ0RXh0ZXJuUm93SGRyIn0sMzY3OntuOiJCcnRFeHRlcm5DZWxsQmxhbmsifSwzNjg6e246IkJydEV4dGVybkNlbGxSZWFsIn0sMzY5OntuOiJCcnRFeHRlcm5DZWxsQm9vbCJ9LDM3MDp7bjoiQnJ0RXh0ZXJuQ2Vs'@; put 'bEVycm9yIn0sMzcxOntuOiJCcnRFeHRlcm5DZWxsU3RyaW5nIn0sMzcyOntuOiJCcnRCZWdpbkVzbWR4In0sMzczOntuOiJCcnRFbmRFc21keCJ9LDM3NDp7bjoiQnJ0QmVnaW5NZHhTZXQifSwzNzU6e246IkJydEVuZE1keFNldCJ9LDM3Njp7bjoiQnJ0QmVnaW5NZHhNYnJQcm9wIn0sMzc3'@; put 'OntuOiJCcnRFbmRNZHhNYnJQcm9wIn0sMzc4OntuOiJCcnRCZWdpbk1keEtQSSJ9LDM3OTp7bjoiQnJ0RW5kTWR4S1BJIn0sMzgwOntuOiJCcnRCZWdpbkVzc3RyIn0sMzgxOntuOiJCcnRFbmRFc3N0ciJ9LDM4Mjp7bjoiQnJ0QmVnaW5QUkZJdGVtIn0sMzgzOntuOiJCcnRFbmRQUkZJdGVt'@; put 'In0sMzg0OntuOiJCcnRCZWdpblBpdm90Q2FjaGVJRHMifSwzODU6e246IkJydEVuZFBpdm90Q2FjaGVJRHMifSwzODY6e246IkJydEJlZ2luUGl2b3RDYWNoZUlEIn0sMzg3OntuOiJCcnRFbmRQaXZvdENhY2hlSUQifSwzODg6e246IkJydEJlZ2luSVNYVklzIn0sMzg5OntuOiJCcnRFbmRJ'@; put 'U1hWSXMifSwzOTA6e246IkJydEJlZ2luQ29sSW5mb3MifSwzOTE6e246IkJydEVuZENvbEluZm9zIn0sMzkyOntuOiJCcnRCZWdpblJ3QnJrIn0sMzkzOntuOiJCcnRFbmRSd0JyayJ9LDM5NDp7bjoiQnJ0QmVnaW5Db2xCcmsifSwzOTU6e246IkJydEVuZENvbEJyayJ9LDM5Njp7bjoiQnJ0'@; put 'QnJrIn0sMzk3OntuOiJCcnRVc2VyQm9va1ZpZXcifSwzOTg6e246IkJydEluZm8ifSwzOTk6e246IkJydENVc3IifSw0MDA6e246IkJydFVzciJ9LDQwMTp7bjoiQnJ0QmVnaW5Vc2VycyJ9LDQwMzp7bjoiQnJ0RU9GIn0sNDA0OntuOiJCcnRVQ1IifSw0MDU6e246IkJydFJSSW5zRGVsIn0s'@; put 'NDA2OntuOiJCcnRSUkVuZEluc0RlbCJ9LDQwNzp7bjoiQnJ0UlJNb3ZlIn0sNDA4OntuOiJCcnRSUkVuZE1vdmUifSw0MDk6e246IkJydFJSQ2hnQ2VsbCJ9LDQxMDp7bjoiQnJ0UlJFbmRDaGdDZWxsIn0sNDExOntuOiJCcnRSUkhlYWRlciJ9LDQxMjp7bjoiQnJ0UlJVc2VyVmlldyJ9LDQx'@; put 'Mzp7bjoiQnJ0UlJSZW5TaGVldCJ9LDQxNDp7bjoiQnJ0UlJJbnNlcnRTaCJ9LDQxNTp7bjoiQnJ0UlJEZWZOYW1lIn0sNDE2OntuOiJCcnRSUk5vdGUifSw0MTc6e246IkJydFJSQ29uZmxpY3QifSw0MTg6e246IkJydFJSVFFTSUYifSw0MTk6e246IkJydFJSRm9ybWF0In0sNDIwOntuOiJC'@; put 'cnRSUkVuZEZvcm1hdCJ9LDQyMTp7bjoiQnJ0UlJBdXRvRm10In0sNDIyOntuOiJCcnRCZWdpblVzZXJTaFZpZXdzIn0sNDIzOntuOiJCcnRCZWdpblVzZXJTaFZpZXcifSw0MjQ6e246IkJydEVuZFVzZXJTaFZpZXcifSw0MjU6e246IkJydEVuZFVzZXJTaFZpZXdzIn0sNDI2OntuOiJCcnRB'@; put 'cnJGbWxhIixmOmZ1bmN0aW9uIGR5KFMsTyxrKXt2YXIgSz1TLmwrTyxlZT11ZChTKSxvZT1TLnJlYWRfc2hpZnQoMSksbWU9W2VlXTtpZihtZVsyXT1vZSxrLmNlbGxGb3JtdWxhKXt2YXIgcGU9YVMoUyxLLVMubCxrKTttZVsxXT1wZX1lbHNlIFMubD1LO3JldHVybiBtZX19LDQyNzp7bjoi'@; put 'QnJ0U2hyRm1sYSIsZjpmdW5jdGlvbiBYaihTLE8sayl7dmFyIEs9Uy5sK08sb2U9W2h1KFMsMTYpXTtpZihrLmNlbGxGb3JtdWxhKXt2YXIgbWU9bmooUyxLLVMubCxrKTtvZVsxXT1tZSxTLmw9S31lbHNlIFMubD1LO3JldHVybiBvZX19LDQyODp7bjoiQnJ0VGFibGUifSw0Mjk6e246IkJy'@; put 'dEJlZ2luRXh0Q29ubmVjdGlvbnMifSw0MzA6e246IkJydEVuZEV4dENvbm5lY3Rpb25zIn0sNDMxOntuOiJCcnRCZWdpblBDRENhbGNNZW1zIn0sNDMyOntuOiJCcnRFbmRQQ0RDYWxjTWVtcyJ9LDQzMzp7bjoiQnJ0QmVnaW5QQ0RDYWxjTWVtIn0sNDM0OntuOiJCcnRFbmRQQ0RDYWxjTWVt'@; put 'In0sNDM1OntuOiJCcnRCZWdpblBDREhHTGV2ZWxzIn0sNDM2OntuOiJCcnRFbmRQQ0RIR0xldmVscyJ9LDQzNzp7bjoiQnJ0QmVnaW5QQ0RIR0xldmVsIn0sNDM4OntuOiJCcnRFbmRQQ0RIR0xldmVsIn0sNDM5OntuOiJCcnRCZWdpblBDREhHTEdyb3VwcyJ9LDQ0MDp7bjoiQnJ0RW5kUENE'@; put 'SEdMR3JvdXBzIn0sNDQxOntuOiJCcnRCZWdpblBDREhHTEdyb3VwIn0sNDQyOntuOiJCcnRFbmRQQ0RIR0xHcm91cCJ9LDQ0Mzp7bjoiQnJ0QmVnaW5QQ0RIR0xHTWVtYmVycyJ9LDQ0NDp7bjoiQnJ0RW5kUENESEdMR01lbWJlcnMifSw0NDU6e246IkJydEJlZ2luUENESEdMR01lbWJlciJ9'@; put 'LDQ0Njp7bjoiQnJ0RW5kUENESEdMR01lbWJlciJ9LDQ0Nzp7bjoiQnJ0QmVnaW5RU0kifSw0NDg6e246IkJydEVuZFFTSSJ9LDQ0OTp7bjoiQnJ0QmVnaW5RU0lSIn0sNDUwOntuOiJCcnRFbmRRU0lSIn0sNDUxOntuOiJCcnRCZWdpbkRlbGV0ZWROYW1lcyJ9LDQ1Mjp7bjoiQnJ0RW5kRGVs'@; put 'ZXRlZE5hbWVzIn0sNDUzOntuOiJCcnRCZWdpbkRlbGV0ZWROYW1lIn0sNDU0OntuOiJCcnRFbmREZWxldGVkTmFtZSJ9LDQ1NTp7bjoiQnJ0QmVnaW5RU0lGcyJ9LDQ1Njp7bjoiQnJ0RW5kUVNJRnMifSw0NTc6e246IkJydEJlZ2luUVNJRiJ9LDQ1ODp7bjoiQnJ0RW5kUVNJRiJ9LDQ1OTp7'@; put 'bjoiQnJ0QmVnaW5BdXRvU29ydFNjb3BlIn0sNDYwOntuOiJCcnRFbmRBdXRvU29ydFNjb3BlIn0sNDYxOntuOiJCcnRCZWdpbkNvbmRpdGlvbmFsRm9ybWF0dGluZyJ9LDQ2Mjp7bjoiQnJ0RW5kQ29uZGl0aW9uYWxGb3JtYXR0aW5nIn0sNDYzOntuOiJCcnRCZWdpbkNGUnVsZSJ9LDQ2NDp7'@; put 'bjoiQnJ0RW5kQ0ZSdWxlIn0sNDY1OntuOiJCcnRCZWdpbkljb25TZXQifSw0NjY6e246IkJydEVuZEljb25TZXQifSw0Njc6e246IkJydEJlZ2luRGF0YWJhciJ9LDQ2ODp7bjoiQnJ0RW5kRGF0YWJhciJ9LDQ2OTp7bjoiQnJ0QmVnaW5Db2xvclNjYWxlIn0sNDcwOntuOiJCcnRFbmRDb2xv'@; put 'clNjYWxlIn0sNDcxOntuOiJCcnRDRlZPIn0sNDcyOntuOiJCcnRFeHRlcm5WYWx1ZU1ldGEifSw0NzM6e246IkJydEJlZ2luQ29sb3JQYWxldHRlIn0sNDc0OntuOiJCcnRFbmRDb2xvclBhbGV0dGUifSw0NzU6e246IkJydEluZGV4ZWRDb2xvciJ9LDQ3Njp7bjoiQnJ0TWFyZ2lucyIsZjpm'@; put 'dW5jdGlvbiBKaihTKXt2YXIgTz17fTtyZXR1cm4gSkQuZm9yRWFjaChmdW5jdGlvbihrKXtPW2tdPVJsKFMpfSksT319LDQ3Nzp7bjoiQnJ0UHJpbnRPcHRpb25zIn0sNDc4OntuOiJCcnRQYWdlU2V0dXAifSw0Nzk6e246IkJydEJlZ2luSGVhZGVyRm9vdGVyIn0sNDgwOntuOiJCcnRFbmRI'@; put 'ZWFkZXJGb290ZXIifSw0ODE6e246IkJydEJlZ2luU1hDcnRGb3JtYXQifSw0ODI6e246IkJydEVuZFNYQ3J0Rm9ybWF0In0sNDgzOntuOiJCcnRCZWdpblNYQ3J0Rm9ybWF0cyJ9LDQ4NDp7bjoiQnJ0RW5kU1hDcnRGb3JtYXRzIn0sNDg1OntuOiJCcnRXc0ZtdEluZm8iLGY6ZnVuY3Rpb24g'@; put 'WkQoUyl7dmFyIE89e30saz17fSxLPXt9LGVlPVMucmVhZF9zaGlmdCg0KSxvZT1TLnJlYWRfc2hpZnQoMik7Sy53Y2g9ZWU8PTY1NTM2P2VlLzI1NjpvZTt2YXIgbWU9Uy5yZWFkX3NoaWZ0KDIpO2suaHB0PW1lLzIwO3ZhciBwZT1TLnJlYWRfc2hpZnQoMik7cmV0dXJuIDImcGUmJihrLmhp'@; put 'ZGRlbj0hMCksNCZwZSYmKE8udG9wdGhpY2s9ITApLDgmcGUmJihPLmJvdHRoaWNrPSEwKSxPLnJvd291dGxpbmU9Uy5yZWFkX3NoaWZ0KDEpLE8uY29sb3V0bGluZT1TLnJlYWRfc2hpZnQoMSksSHYoayksTy5yb3c9ayxKMChLKSxPLmNvbD1LLE99fSw0ODY6e246IkJydEJlZ2luTWdzIn0s'@; put 'NDg3OntuOiJCcnRFbmRNR3MifSw0ODg6e246IkJydEJlZ2luTUdNYXBzIn0sNDg5OntuOiJCcnRFbmRNR01hcHMifSw0OTA6e246IkJydEJlZ2luTUcifSw0OTE6e246IkJydEVuZE1HIn0sNDkyOntuOiJCcnRCZWdpbk1hcCJ9LDQ5Mzp7bjoiQnJ0RW5kTWFwIn0sNDk0OntuOiJCcnRITGlu'@; put 'ayIsZjpmdW5jdGlvbiBHaihTLE8pe3ZhciBrPVMubCtPLEs9aHUoUywxNiksZWU9UXUoUyksb2U9ZHUoUyksbWU9ZHUoUykscGU9ZHUoUyk7Uy5sPWs7dmFyIGJlPXtyZng6SyxyZWxJZDplZSxsb2M6b2UsZGlzcGxheTpwZX07cmV0dXJuIG1lJiYoYmUuVG9vbHRpcD1tZSksYmV9fSw0OTU6'@; put 'e246IkJydEJlZ2luRENvbiJ9LDQ5Njp7bjoiQnJ0RW5kRENvbiJ9LDQ5Nzp7bjoiQnJ0QmVnaW5EUmVmcyJ9LDQ5ODp7bjoiQnJ0RW5kRFJlZnMifSw0OTk6e246IkJydERSZWYifSw1MDA6e246IkJydEJlZ2luU2Nlbk1hbiJ9LDUwMTp7bjoiQnJ0RW5kU2Nlbk1hbiJ9LDUwMjp7bjoiQnJ0'@; put 'QmVnaW5TY3QifSw1MDM6e246IkJydEVuZFNjdCJ9LDUwNDp7bjoiQnJ0U2xjIn0sNTA1OntuOiJCcnRCZWdpbkRYRnMifSw1MDY6e246IkJydEVuZERYRnMifSw1MDc6e246IkJydERYRiJ9LDUwODp7bjoiQnJ0QmVnaW5UYWJsZVN0eWxlcyJ9LDUwOTp7bjoiQnJ0RW5kVGFibGVTdHlsZXMi'@; put 'fSw1MTA6e246IkJydEJlZ2luVGFibGVTdHlsZSJ9LDUxMTp7bjoiQnJ0RW5kVGFibGVTdHlsZSJ9LDUxMjp7bjoiQnJ0VGFibGVTdHlsZUVsZW1lbnQifSw1MTM6e246IkJydFRhYmxlU3R5bGVDbGllbnQifSw1MTQ6e246IkJydEJlZ2luVm9sRGVwcyJ9LDUxNTp7bjoiQnJ0RW5kVm9sRGVw'@; put 'cyJ9LDUxNjp7bjoiQnJ0QmVnaW5Wb2xUeXBlIn0sNTE3OntuOiJCcnRFbmRWb2xUeXBlIn0sNTE4OntuOiJCcnRCZWdpblZvbE1haW4ifSw1MTk6e246IkJydEVuZFZvbE1haW4ifSw1MjA6e246IkJydEJlZ2luVm9sVG9waWMifSw1MjE6e246IkJydEVuZFZvbFRvcGljIn0sNTIyOntuOiJC'@; put 'cnRWb2xTdWJ0b3BpYyJ9LDUyMzp7bjoiQnJ0Vm9sUmVmIn0sNTI0OntuOiJCcnRWb2xOdW0ifSw1MjU6e246IkJydFZvbEVyciJ9LDUyNjp7bjoiQnJ0Vm9sU3RyIn0sNTI3OntuOiJCcnRWb2xCb29sIn0sNTI4OntuOiJCcnRCZWdpbkNhbGNDaGFpbiQifSw1Mjk6e246IkJydEVuZENhbGND'@; put 'aGFpbiQifSw1MzA6e246IkJydEJlZ2luU29ydFN0YXRlIn0sNTMxOntuOiJCcnRFbmRTb3J0U3RhdGUifSw1MzI6e246IkJydEJlZ2luU29ydENvbmQifSw1MzM6e246IkJydEVuZFNvcnRDb25kIn0sNTM0OntuOiJCcnRCb29rUHJvdGVjdGlvbiJ9LDUzNTp7bjoiQnJ0U2hlZXRQcm90ZWN0'@; put 'aW9uIn0sNTM2OntuOiJCcnRSYW5nZVByb3RlY3Rpb24ifSw1Mzc6e246IkJydFBob25ldGljSW5mbyJ9LDUzODp7bjoiQnJ0QmVnaW5FQ1R4dFdpeiJ9LDUzOTp7bjoiQnJ0RW5kRUNUeHRXaXoifSw1NDA6e246IkJydEJlZ2luRUNUV0ZsZEluZm9Mc3QifSw1NDE6e246IkJydEVuZEVDVFdG'@; put 'bGRJbmZvTHN0In0sNTQyOntuOiJCcnRCZWdpbkVDVHdGbGRJbmZvIn0sNTQ4OntuOiJCcnRGaWxlU2hhcmluZyJ9LDU0OTp7bjoiQnJ0T2xlU2l6ZSJ9LDU1MDp7bjoiQnJ0RHJhd2luZyIsZjpnNH0sNTUxOntuOiJCcnRMZWdhY3lEcmF3aW5nIn0sNTUyOntuOiJCcnRMZWdhY3lEcmF3aW5n'@; put 'SEYifSw1NTM6e246IkJydFdlYk9wdCJ9LDU1NDp7bjoiQnJ0QmVnaW5XZWJQdWJJdGVtcyJ9LDU1NTp7bjoiQnJ0RW5kV2ViUHViSXRlbXMifSw1NTY6e246IkJydEJlZ2luV2ViUHViSXRlbSJ9LDU1Nzp7bjoiQnJ0RW5kV2ViUHViSXRlbSJ9LDU1ODp7bjoiQnJ0QmVnaW5TWENvbmRGbXQi'@; put 'fSw1NTk6e246IkJydEVuZFNYQ29uZEZtdCJ9LDU2MDp7bjoiQnJ0QmVnaW5TWENvbmRGbXRzIn0sNTYxOntuOiJCcnRFbmRTWENvbmRGbXRzIn0sNTYyOntuOiJCcnRCa0hpbSJ9LDU2NDp7bjoiQnJ0Q29sb3IifSw1NjU6e246IkJydEJlZ2luSW5kZXhlZENvbG9ycyJ9LDU2Njp7bjoiQnJ0'@; put 'RW5kSW5kZXhlZENvbG9ycyJ9LDU2OTp7bjoiQnJ0QmVnaW5NUlVDb2xvcnMifSw1NzA6e246IkJydEVuZE1SVUNvbG9ycyJ9LDU3Mjp7bjoiQnJ0TVJVQ29sb3IifSw1NzM6e246IkJydEJlZ2luRFZhbHMifSw1NzQ6e246IkJydEVuZERWYWxzIn0sNTc3OntuOiJCcnRTdXBOYW1lU3RhcnQi'@; put 'fSw1Nzg6e246IkJydFN1cE5hbWVWYWx1ZVN0YXJ0In0sNTc5OntuOiJCcnRTdXBOYW1lVmFsdWVFbmQifSw1ODA6e246IkJydFN1cE5hbWVOdW0ifSw1ODE6e246IkJydFN1cE5hbWVFcnIifSw1ODI6e246IkJydFN1cE5hbWVTdCJ9LDU4Mzp7bjoiQnJ0U3VwTmFtZU5pbCJ9LDU4NDp7bjoi'@; put 'QnJ0U3VwTmFtZUJvb2wifSw1ODU6e246IkJydFN1cE5hbWVGbWxhIn0sNTg2OntuOiJCcnRTdXBOYW1lQml0cyJ9LDU4Nzp7bjoiQnJ0U3VwTmFtZUVuZCJ9LDU4ODp7bjoiQnJ0RW5kU3VwQm9vayJ9LDU4OTp7bjoiQnJ0Q2VsbFNtYXJ0VGFnUHJvcGVydHkifSw1OTA6e246IkJydEJlZ2lu'@; put 'Q2VsbFNtYXJ0VGFnIn0sNTkxOntuOiJCcnRFbmRDZWxsU21hcnRUYWcifSw1OTI6e246IkJydEJlZ2luQ2VsbFNtYXJ0VGFncyJ9LDU5Mzp7bjoiQnJ0RW5kQ2VsbFNtYXJ0VGFncyJ9LDU5NDp7bjoiQnJ0QmVnaW5TbWFydFRhZ3MifSw1OTU6e246IkJydEVuZFNtYXJ0VGFncyJ9LDU5Njp7'@; put 'bjoiQnJ0U21hcnRUYWdUeXBlIn0sNTk3OntuOiJCcnRCZWdpblNtYXJ0VGFnVHlwZXMifSw1OTg6e246IkJydEVuZFNtYXJ0VGFnVHlwZXMifSw1OTk6e246IkJydEJlZ2luU1hGaWx0ZXJzIn0sNjAwOntuOiJCcnRFbmRTWEZpbHRlcnMifSw2MDE6e246IkJydEJlZ2luU1hGSUxURVIifSw2'@; put 'MDI6e246IkJydEVuZFNYRmlsdGVyIn0sNjAzOntuOiJCcnRCZWdpbkZpbGxzIn0sNjA0OntuOiJCcnRFbmRGaWxscyJ9LDYwNTp7bjoiQnJ0QmVnaW5DZWxsV2F0Y2hlcyJ9LDYwNjp7bjoiQnJ0RW5kQ2VsbFdhdGNoZXMifSw2MDc6e246IkJydENlbGxXYXRjaCJ9LDYwODp7bjoiQnJ0QmVn'@; put 'aW5DUkVycnMifSw2MDk6e246IkJydEVuZENSRXJycyJ9LDYxMDp7bjoiQnJ0Q3Jhc2hSZWNFcnIifSw2MTE6e246IkJydEJlZ2luRm9udHMifSw2MTI6e246IkJydEVuZEZvbnRzIn0sNjEzOntuOiJCcnRCZWdpbkJvcmRlcnMifSw2MTQ6e246IkJydEVuZEJvcmRlcnMifSw2MTU6e246IkJy'@; put 'dEJlZ2luRm10cyJ9LDYxNjp7bjoiQnJ0RW5kRm10cyJ9LDYxNzp7bjoiQnJ0QmVnaW5DZWxsWEZzIn0sNjE4OntuOiJCcnRFbmRDZWxsWEZzIn0sNjE5OntuOiJCcnRCZWdpblN0eWxlcyJ9LDYyMDp7bjoiQnJ0RW5kU3R5bGVzIn0sNjI1OntuOiJCcnRCaWdOYW1lIn0sNjI2OntuOiJCcnRC'@; put 'ZWdpbkNlbGxTdHlsZVhGcyJ9LDYyNzp7bjoiQnJ0RW5kQ2VsbFN0eWxlWEZzIn0sNjI4OntuOiJCcnRCZWdpbkNvbW1lbnRzIn0sNjI5OntuOiJCcnRFbmRDb21tZW50cyJ9LDYzMDp7bjoiQnJ0QmVnaW5Db21tZW50QXV0aG9ycyJ9LDYzMTp7bjoiQnJ0RW5kQ29tbWVudEF1dGhvcnMifSw2'@; put 'MzI6e246IkJydENvbW1lbnRBdXRob3IiLGY6eEJ9LDYzMzp7bjoiQnJ0QmVnaW5Db21tZW50TGlzdCJ9LDYzNDp7bjoiQnJ0RW5kQ29tbWVudExpc3QifSw2MzU6e246IkJydEJlZ2luQ29tbWVudCIsZjpmdW5jdGlvbiBMNShTKXt2YXIgTz17fTtPLmlhdXRob3I9Uy5yZWFkX3NoaWZ0KDQp'@; put 'O3ZhciBrPWh1KFMsMTYpO3JldHVybiBPLnJmeD1rLnMsTy5yZWY9cWkoay5zKSxTLmwrPTE2LE99fSw2MzY6e246IkJydEVuZENvbW1lbnQifSw2Mzc6e246IkJydENvbW1lbnRUZXh0IixmOk53fSw2Mzg6e246IkJydEJlZ2luT2xlT2JqZWN0cyJ9LDYzOTp7bjoiQnJ0T2xlT2JqZWN0In0s'@; put 'NjQwOntuOiJCcnRFbmRPbGVPYmplY3RzIn0sNjQxOntuOiJCcnRCZWdpblN4cnVsZXMifSw2NDI6e246IkJydEVuZFN4UnVsZXMifSw2NDM6e246IkJydEJlZ2luQWN0aXZlWENvbnRyb2xzIn0sNjQ0OntuOiJCcnRBY3RpdmVYIn0sNjQ1OntuOiJCcnRFbmRBY3RpdmVYQ29udHJvbHMifSw2'@; put 'NDY6e246IkJydEJlZ2luUENEU0RUQ0VNZW1iZXJzU29ydEJ5In0sNjQ4OntuOiJCcnRCZWdpbkNlbGxJZ25vcmVFQ3MifSw2NDk6e246IkJydENlbGxJZ25vcmVFQyJ9LDY1MDp7bjoiQnJ0RW5kQ2VsbElnbm9yZUVDcyJ9LDY1MTp7bjoiQnJ0Q3NQcm9wIixmOmZ1bmN0aW9uIGd6KFMsTyl7'@; put 'cmV0dXJuIFMubCs9MTAse25hbWU6ZHUoUyl9fX0sNjUyOntuOiJCcnRDc1BhZ2VTZXR1cCJ9LDY1Mzp7bjoiQnJ0QmVnaW5Vc2VyQ3NWaWV3cyJ9LDY1NDp7bjoiQnJ0RW5kVXNlckNzVmlld3MifSw2NTU6e246IkJydEJlZ2luVXNlckNzVmlldyJ9LDY1Njp7bjoiQnJ0RW5kVXNlckNzVmll'@; put 'dyJ9LDY1Nzp7bjoiQnJ0QmVnaW5QY2RTRkNJRW50cmllcyJ9LDY1ODp7bjoiQnJ0RW5kUENEU0ZDSUVudHJpZXMifSw2NTk6e246IkJydFBDRFNGQ0lFbnRyeSJ9LDY2MDp7bjoiQnJ0QmVnaW5MaXN0UGFydHMifSw2NjE6e246IkJydExpc3RQYXJ0In0sNjYyOntuOiJCcnRFbmRMaXN0UGFy'@; put 'dHMifSw2NjM6e246IkJydFNoZWV0Q2FsY1Byb3AifSw2NjQ6e246IkJydEJlZ2luRm5Hcm91cCJ9LDY2NTp7bjoiQnJ0Rm5Hcm91cCJ9LDY2Njp7bjoiQnJ0RW5kRm5Hcm91cCJ9LDY2Nzp7bjoiQnJ0U3VwQWRkaW4ifSw2Njg6e246IkJydFNYVERNUE9yZGVyIn0sNjY5OntuOiJCcnRDc1By'@; put 'b3RlY3Rpb24ifSw2NzE6e246IkJydEJlZ2luV3NTb3J0TWFwIn0sNjcyOntuOiJCcnRFbmRXc1NvcnRNYXAifSw2NzM6e246IkJydEJlZ2luUlJTb3J0In0sNjc0OntuOiJCcnRFbmRSUlNvcnQifSw2NzU6e246IkJydFJSU29ydEl0ZW0ifSw2NzY6e246IkJydEZpbGVTaGFyaW5nSXNvIn0s'@; put 'Njc3OntuOiJCcnRCb29rUHJvdGVjdGlvbklzbyJ9LDY3ODp7bjoiQnJ0U2hlZXRQcm90ZWN0aW9uSXNvIn0sNjc5OntuOiJCcnRDc1Byb3RlY3Rpb25Jc28ifSw2ODA6e246IkJydFJhbmdlUHJvdGVjdGlvbklzbyJ9LDY4MTp7bjoiQnJ0RFZhbExpc3QifSwxMDI0OntuOiJCcnRSd0Rlc2Nl'@; put 'bnQifSwxMDI1OntuOiJCcnRLbm93bkZvbnRzIn0sMTAyNjp7bjoiQnJ0QmVnaW5TWFR1cGxlU2V0In0sMTAyNzp7bjoiQnJ0RW5kU1hUdXBsZVNldCJ9LDEwMjg6e246IkJydEJlZ2luU1hUdXBsZVNldEhlYWRlciJ9LDEwMjk6e246IkJydEVuZFNYVHVwbGVTZXRIZWFkZXIifSwxMDMwOntu'@; put 'OiJCcnRTWFR1cGxlU2V0SGVhZGVySXRlbSJ9LDEwMzE6e246IkJydEJlZ2luU1hUdXBsZVNldERhdGEifSwxMDMyOntuOiJCcnRFbmRTWFR1cGxlU2V0RGF0YSJ9LDEwMzM6e246IkJydEJlZ2luU1hUdXBsZVNldFJvdyJ9LDEwMzQ6e246IkJydEVuZFNYVHVwbGVTZXRSb3cifSwxMDM1Ontu'@; put 'OiJCcnRTWFR1cGxlU2V0Um93SXRlbSJ9LDEwMzY6e246IkJydE5hbWVFeHQifSwxMDM3OntuOiJCcnRQQ0RIMTQifSwxMDM4OntuOiJCcnRCZWdpblBDRENhbGNNZW0xNCJ9LDEwMzk6e246IkJydEVuZFBDRENhbGNNZW0xNCJ9LDEwNDA6e246IkJydFNYVEgxNCJ9LDEwNDE6e246IkJydEJl'@; put 'Z2luU3BhcmtsaW5lR3JvdXAifSwxMDQyOntuOiJCcnRFbmRTcGFya2xpbmVHcm91cCJ9LDEwNDM6e246IkJydFNwYXJrbGluZSJ9LDEwNDQ6e246IkJydFNYREkxNCJ9LDEwNDU6e246IkJydFdzRm10SW5mb0V4MTQifSwxMDQ2OntuOiJCcnRCZWdpbkNvbmRpdGlvbmFsRm9ybWF0dGluZzE0'@; put 'In0sMTA0Nzp7bjoiQnJ0RW5kQ29uZGl0aW9uYWxGb3JtYXR0aW5nMTQifSwxMDQ4OntuOiJCcnRCZWdpbkNGUnVsZTE0In0sMTA0OTp7bjoiQnJ0RW5kQ0ZSdWxlMTQifSwxMDUwOntuOiJCcnRDRlZPMTQifSwxMDUxOntuOiJCcnRCZWdpbkRhdGFiYXIxNCJ9LDEwNTI6e246IkJydEJlZ2lu'@; put 'SWNvblNldDE0In0sMTA1Mzp7bjoiQnJ0RFZhbDE0IixmOmZ1bmN0aW9uIEZTKFMsTyxrKXt2YXIgSz1mdW5jdGlvbiB1bihTLE8sayl7dmFyIEs9Uy5yZWFkX3NoaWZ0KDQpLGVlPXt9O3JldHVybiAxJksmJihlZS5yZWZzPWZ1bmN0aW9uIFFuKFMpe2Zvcih2YXIgTz1TLnJlYWRfc2hpZnQo'@; put 'NCksaz1bXTtPLS0gPjA7KWsucHVzaChyaShTKSk7cmV0dXJuIGt9KFMpKSwyJksmJihlZS5zcXJlZnM9ZnVuY3Rpb24gUmEoUyl7Zm9yKHZhciBPPVMucmVhZF9zaGlmdCg0KSxrPVtdO08tLSA+MDspay5wdXNoKENzKFMpKTtyZXR1cm4ga30oUykpLDQmSyYmKGVlLmZvcm11bGFzPWZ1bmN0'@; put 'aW9uIGhvKFMsTyxrKXtmb3IodmFyIEs9Uy5yZWFkX3NoaWZ0KDQpLGVlPVtdO0stLSA+MDspZWUucHVzaChQdShTLDAsaykpO3JldHVybiBlZX0oUywwLGspKSw4JksmJihlZS5yZWxJRD1mdW5jdGlvbiBpdihTKXt2YXIgTz1TLnJlYWRfc2hpZnQoMik7cmV0dXJuIDA9PT1PPyIiOlMucmVh'@; put 'ZF9zaGlmdChPLCJ1dGYxNmxlIil9KFMpKSxlZX0oUywwLGspLGVlPVMucmVhZF9zaGlmdCg0KSxvZT1RdShTKSxtZT1RdShTKSxwZT1RdShTKSxiZT1RdShTKSxQZT0oSy5mb3JtdWxhc3x8W10pWzBdLFZlPShLLmZvcm11bGFzfHxbXSlbMV0sWWU9MTUmZWUsZXQ9e3Q6UURbWWVdLHNxcmZ4'@; put 'Oksuc3FyZWZzWzBdLHM6W29lLG1lLHBlLGJlXX07cmV0dXJuIFBlJiYoZXQuZjE9UGUpLFZlJiYoZXQuZjI9VmUpLDA9PVllfHwzPT1ZZXx8Nz09WWV8fChldC5vcD1QU1tlZT4+MjAmMTVdKSxldH19LDEwNTQ6e246IkJydEJlZ2luRFZhbHMxNCJ9LDEwNTU6e246IkJydENvbG9yMTQifSwx'@; put 'MDU2OntuOiJCcnRCZWdpblNwYXJrbGluZXMifSwxMDU3OntuOiJCcnRFbmRTcGFya2xpbmVzIn0sMTA1ODp7bjoiQnJ0QmVnaW5TcGFya2xpbmVHcm91cHMifSwxMDU5OntuOiJCcnRFbmRTcGFya2xpbmVHcm91cHMifSwxMDYxOntuOiJCcnRTWFZEMTQifSwxMDYyOntuOiJCcnRCZWdpblNY'@; put 'VmlldzE0In0sMTA2Mzp7bjoiQnJ0RW5kU1hWaWV3MTQifSwxMDY0OntuOiJCcnRCZWdpblNYVmlldzE2In0sMTA2NTp7bjoiQnJ0RW5kU1hWaWV3MTYifSwxMDY2OntuOiJCcnRCZWdpblBDRDE0In0sMTA2Nzp7bjoiQnJ0RW5kUENEMTQifSwxMDY4OntuOiJCcnRCZWdpbkV4dENvbm4xNCJ9'@; put 'LDEwNjk6e246IkJydEVuZEV4dENvbm4xNCJ9LDEwNzA6e246IkJydEJlZ2luU2xpY2VyQ2FjaGVJRHMifSwxMDcxOntuOiJCcnRFbmRTbGljZXJDYWNoZUlEcyJ9LDEwNzI6e246IkJydEJlZ2luU2xpY2VyQ2FjaGVJRCJ9LDEwNzM6e246IkJydEVuZFNsaWNlckNhY2hlSUQifSwxMDc1Ontu'@; put 'OiJCcnRCZWdpblNsaWNlckNhY2hlIn0sMTA3Njp7bjoiQnJ0RW5kU2xpY2VyQ2FjaGUifSwxMDc3OntuOiJCcnRCZWdpblNsaWNlckNhY2hlRGVmIn0sMTA3ODp7bjoiQnJ0RW5kU2xpY2VyQ2FjaGVEZWYifSwxMDc5OntuOiJCcnRCZWdpblNsaWNlcnNFeCJ9LDEwODA6e246IkJydEVuZFNs'@; put 'aWNlcnNFeCJ9LDEwODE6e246IkJydEJlZ2luU2xpY2VyRXgifSwxMDgyOntuOiJCcnRFbmRTbGljZXJFeCJ9LDEwODM6e246IkJydEJlZ2luU2xpY2VyIn0sMTA4NDp7bjoiQnJ0RW5kU2xpY2VyIn0sMTA4NTp7bjoiQnJ0U2xpY2VyQ2FjaGVQaXZvdFRhYmxlcyJ9LDEwODY6e246IkJydEJl'@; put 'Z2luU2xpY2VyQ2FjaGVPbGFwSW1wbCJ9LDEwODc6e246IkJydEVuZFNsaWNlckNhY2hlT2xhcEltcGwifSwxMDg4OntuOiJCcnRCZWdpblNsaWNlckNhY2hlTGV2ZWxzRGF0YSJ9LDEwODk6e246IkJydEVuZFNsaWNlckNhY2hlTGV2ZWxzRGF0YSJ9LDEwOTA6e246IkJydEJlZ2luU2xpY2Vy'@; put 'Q2FjaGVMZXZlbERhdGEifSwxMDkxOntuOiJCcnRFbmRTbGljZXJDYWNoZUxldmVsRGF0YSJ9LDEwOTI6e246IkJydEJlZ2luU2xpY2VyQ2FjaGVTaVJhbmdlcyJ9LDEwOTM6e246IkJydEVuZFNsaWNlckNhY2hlU2lSYW5nZXMifSwxMDk0OntuOiJCcnRCZWdpblNsaWNlckNhY2hlU2lSYW5n'@; put 'ZSJ9LDEwOTU6e246IkJydEVuZFNsaWNlckNhY2hlU2lSYW5nZSJ9LDEwOTY6e246IkJydFNsaWNlckNhY2hlT2xhcEl0ZW0ifSwxMDk3OntuOiJCcnRCZWdpblNsaWNlckNhY2hlU2VsZWN0aW9ucyJ9LDEwOTg6e246IkJydFNsaWNlckNhY2hlU2VsZWN0aW9uIn0sMTA5OTp7bjoiQnJ0RW5k'@; put 'U2xpY2VyQ2FjaGVTZWxlY3Rpb25zIn0sMTEwMDp7bjoiQnJ0QmVnaW5TbGljZXJDYWNoZU5hdGl2ZSJ9LDExMDE6e246IkJydEVuZFNsaWNlckNhY2hlTmF0aXZlIn0sMTEwMjp7bjoiQnJ0U2xpY2VyQ2FjaGVOYXRpdmVJdGVtIn0sMTEwMzp7bjoiQnJ0UmFuZ2VQcm90ZWN0aW9uMTQifSwx'@; put 'MTA0OntuOiJCcnRSYW5nZVByb3RlY3Rpb25Jc28xNCJ9LDExMDU6e246IkJydENlbGxJZ25vcmVFQzE0In0sMTExMTp7bjoiQnJ0TGlzdDE0In0sMTExMjp7bjoiQnJ0Q0ZJY29uIn0sMTExMzp7bjoiQnJ0QmVnaW5TbGljZXJDYWNoZXNQaXZvdENhY2hlSURzIn0sMTExNDp7bjoiQnJ0RW5k'@; put 'U2xpY2VyQ2FjaGVzUGl2b3RDYWNoZUlEcyJ9LDExMTU6e246IkJydEJlZ2luU2xpY2VycyJ9LDExMTY6e246IkJydEVuZFNsaWNlcnMifSwxMTE3OntuOiJCcnRXYlByb3AxNCJ9LDExMTg6e246IkJydEJlZ2luU1hFZGl0In0sMTExOTp7bjoiQnJ0RW5kU1hFZGl0In0sMTEyMDp7bjoiQnJ0'@; put 'QmVnaW5TWEVkaXRzIn0sMTEyMTp7bjoiQnJ0RW5kU1hFZGl0cyJ9LDExMjI6e246IkJydEJlZ2luU1hDaGFuZ2UifSwxMTIzOntuOiJCcnRFbmRTWENoYW5nZSJ9LDExMjQ6e246IkJydEJlZ2luU1hDaGFuZ2VzIn0sMTEyNTp7bjoiQnJ0RW5kU1hDaGFuZ2VzIn0sMTEyNjp7bjoiQnJ0U1hU'@; put 'dXBsZUl0ZW1zIn0sMTEyODp7bjoiQnJ0QmVnaW5TbGljZXJTdHlsZSJ9LDExMjk6e246IkJydEVuZFNsaWNlclN0eWxlIn0sMTEzMDp7bjoiQnJ0U2xpY2VyU3R5bGVFbGVtZW50In0sMTEzMTp7bjoiQnJ0QmVnaW5TdHlsZVNoZWV0RXh0MTQifSwxMTMyOntuOiJCcnRFbmRTdHlsZVNoZWV0'@; put 'RXh0MTQifSwxMTMzOntuOiJCcnRCZWdpblNsaWNlckNhY2hlc1Bpdm90Q2FjaGVJRCJ9LDExMzQ6e246IkJydEVuZFNsaWNlckNhY2hlc1Bpdm90Q2FjaGVJRCJ9LDExMzU6e246IkJydEJlZ2luQ29uZGl0aW9uYWxGb3JtYXR0aW5ncyJ9LDExMzY6e246IkJydEVuZENvbmRpdGlvbmFsRm9y'@; put 'bWF0dGluZ3MifSwxMTM3OntuOiJCcnRCZWdpblBDRENhbGNNZW1FeHQifSwxMTM4OntuOiJCcnRFbmRQQ0RDYWxjTWVtRXh0In0sMTEzOTp7bjoiQnJ0QmVnaW5QQ0RDYWxjTWVtc0V4dCJ9LDExNDA6e246IkJydEVuZFBDRENhbGNNZW1zRXh0In0sMTE0MTp7bjoiQnJ0UENERmllbGQxNCJ9'@; put 'LDExNDI6e246IkJydEJlZ2luU2xpY2VyU3R5bGVzIn0sMTE0Mzp7bjoiQnJ0RW5kU2xpY2VyU3R5bGVzIn0sMTE0NDp7bjoiQnJ0QmVnaW5TbGljZXJTdHlsZUVsZW1lbnRzIn0sMTE0NTp7bjoiQnJ0RW5kU2xpY2VyU3R5bGVFbGVtZW50cyJ9LDExNDY6e246IkJydENGUnVsZUV4dCJ9LDEx'@; put 'NDc6e246IkJydEJlZ2luU1hDb25kRm10MTQifSwxMTQ4OntuOiJCcnRFbmRTWENvbmRGbXQxNCJ9LDExNDk6e246IkJydEJlZ2luU1hDb25kRm10czE0In0sMTE1MDp7bjoiQnJ0RW5kU1hDb25kRm10czE0In0sMTE1Mjp7bjoiQnJ0QmVnaW5Tb3J0Q29uZDE0In0sMTE1Mzp7bjoiQnJ0RW5k'@; put 'U29ydENvbmQxNCJ9LDExNTQ6e246IkJydEVuZERWYWxzMTQifSwxMTU1OntuOiJCcnRFbmRJY29uU2V0MTQifSwxMTU2OntuOiJCcnRFbmREYXRhYmFyMTQifSwxMTU3OntuOiJCcnRCZWdpbkNvbG9yU2NhbGUxNCJ9LDExNTg6e246IkJydEVuZENvbG9yU2NhbGUxNCJ9LDExNTk6e246IkJy'@; put 'dEJlZ2luU3hydWxlczE0In0sMTE2MDp7bjoiQnJ0RW5kU3hydWxlczE0In0sMTE2MTp7bjoiQnJ0QmVnaW5QUnVsZTE0In0sMTE2Mjp7bjoiQnJ0RW5kUFJ1bGUxNCJ9LDExNjM6e246IkJydEJlZ2luUFJGaWx0ZXJzMTQifSwxMTY0OntuOiJCcnRFbmRQUkZpbHRlcnMxNCJ9LDExNjU6e246'@; put 'IkJydEJlZ2luUFJGaWx0ZXIxNCJ9LDExNjY6e246IkJydEVuZFBSRmlsdGVyMTQifSwxMTY3OntuOiJCcnRCZWdpblBSRkl0ZW0xNCJ9LDExNjg6e246IkJydEVuZFBSRkl0ZW0xNCJ9LDExNjk6e246IkJydEJlZ2luQ2VsbElnbm9yZUVDczE0In0sMTE3MDp7bjoiQnJ0RW5kQ2VsbElnbm9y'@; put 'ZUVDczE0In0sMTE3MTp7bjoiQnJ0RHhmMTQifSwxMTcyOntuOiJCcnRCZWdpbkR4RjE0cyJ9LDExNzM6e246IkJydEVuZER4ZjE0cyJ9LDExNzc6e246IkJydEZpbHRlcjE0In0sMTE3ODp7bjoiQnJ0QmVnaW5DdXN0b21GaWx0ZXJzMTQifSwxMTgwOntuOiJCcnRDdXN0b21GaWx0ZXIxNCJ9'@; put 'LDExODE6e246IkJydEljb25GaWx0ZXIxNCJ9LDExODI6e246IkJydFBpdm90Q2FjaGVDb25uZWN0aW9uTmFtZSJ9LDIwNDg6e246IkJydEJlZ2luRGVjb3VwbGVkUGl2b3RDYWNoZUlEcyJ9LDIwNDk6e246IkJydEVuZERlY291cGxlZFBpdm90Q2FjaGVJRHMifSwyMDUwOntuOiJCcnREZWNv'@; put 'dXBsZWRQaXZvdENhY2hlSUQifSwyMDUxOntuOiJCcnRCZWdpblBpdm90VGFibGVSZWZzIn0sMjA1Mjp7bjoiQnJ0RW5kUGl2b3RUYWJsZVJlZnMifSwyMDUzOntuOiJCcnRQaXZvdFRhYmxlUmVmIn0sMjA1NDp7bjoiQnJ0U2xpY2VyQ2FjaGVCb29rUGl2b3RUYWJsZXMifSwyMDU1OntuOiJC'@; put 'cnRCZWdpblN4dmNlbGxzIn0sMjA1Njp7bjoiQnJ0RW5kU3h2Y2VsbHMifSwyMDU3OntuOiJCcnRCZWdpblN4Um93In0sMjA1ODp7bjoiQnJ0RW5kU3hSb3cifSwyMDYwOntuOiJCcnRQY2RDYWxjTWVtMTUifSwyMDY3OntuOiJCcnRRc2kxNSJ9LDIwNjg6e246IkJydEJlZ2luV2ViRXh0ZW5z'@; put 'aW9ucyJ9LDIwNjk6e246IkJydEVuZFdlYkV4dGVuc2lvbnMifSwyMDcwOntuOiJCcnRXZWJFeHRlbnNpb24ifSwyMDcxOntuOiJCcnRBYnNQYXRoMTUifSwyMDcyOntuOiJCcnRCZWdpblBpdm90VGFibGVVSVNldHRpbmdzIn0sMjA3Mzp7bjoiQnJ0RW5kUGl2b3RUYWJsZVVJU2V0dGluZ3Mi'@; put 'fSwyMDc1OntuOiJCcnRUYWJsZVNsaWNlckNhY2hlSURzIn0sMjA3Njp7bjoiQnJ0VGFibGVTbGljZXJDYWNoZUlEIn0sMjA3Nzp7bjoiQnJ0QmVnaW5UYWJsZVNsaWNlckNhY2hlIn0sMjA3ODp7bjoiQnJ0RW5kVGFibGVTbGljZXJDYWNoZSJ9LDIwNzk6e246IkJydFN4RmlsdGVyMTUifSwy'@; put 'MDgwOntuOiJCcnRCZWdpblRpbWVsaW5lQ2FjaGVQaXZvdENhY2hlSURzIn0sMjA4MTp7bjoiQnJ0RW5kVGltZWxpbmVDYWNoZVBpdm90Q2FjaGVJRHMifSwyMDgyOntuOiJCcnRUaW1lbGluZUNhY2hlUGl2b3RDYWNoZUlEIn0sMjA4Mzp7bjoiQnJ0QmVnaW5UaW1lbGluZUNhY2hlSURzIn0s'@; put 'MjA4NDp7bjoiQnJ0RW5kVGltZWxpbmVDYWNoZUlEcyJ9LDIwODU6e246IkJydEJlZ2luVGltZWxpbmVDYWNoZUlEIn0sMjA4Njp7bjoiQnJ0RW5kVGltZWxpbmVDYWNoZUlEIn0sMjA4Nzp7bjoiQnJ0QmVnaW5UaW1lbGluZXNFeCJ9LDIwODg6e246IkJydEVuZFRpbWVsaW5lc0V4In0sMjA4'@; put 'OTp7bjoiQnJ0QmVnaW5UaW1lbGluZUV4In0sMjA5MDp7bjoiQnJ0RW5kVGltZWxpbmVFeCJ9LDIwOTE6e246IkJydFdvcmtCb29rUHIxNSJ9LDIwOTI6e246IkJydFBDREgxNSJ9LDIwOTM6e246IkJydEJlZ2luVGltZWxpbmVTdHlsZSJ9LDIwOTQ6e246IkJydEVuZFRpbWVsaW5lU3R5bGUi'@; put 'fSwyMDk1OntuOiJCcnRUaW1lbGluZVN0eWxlRWxlbWVudCJ9LDIwOTY6e246IkJydEJlZ2luVGltZWxpbmVTdHlsZXNoZWV0RXh0MTUifSwyMDk3OntuOiJCcnRFbmRUaW1lbGluZVN0eWxlc2hlZXRFeHQxNSJ9LDIwOTg6e246IkJydEJlZ2luVGltZWxpbmVTdHlsZXMifSwyMDk5OntuOiJC'@; put 'cnRFbmRUaW1lbGluZVN0eWxlcyJ9LDIxMDA6e246IkJydEJlZ2luVGltZWxpbmVTdHlsZUVsZW1lbnRzIn0sMjEwMTp7bjoiQnJ0RW5kVGltZWxpbmVTdHlsZUVsZW1lbnRzIn0sMjEwMjp7bjoiQnJ0RHhmMTUifSwyMTAzOntuOiJCcnRCZWdpbkR4ZnMxNSJ9LDIxMDQ6e246ImJydEVuZER4'@; put 'ZnMxNSJ9LDIxMDU6e246IkJydFNsaWNlckNhY2hlSGlkZUl0ZW1zV2l0aE5vRGF0YSJ9LDIxMDY6e246IkJydEJlZ2luSXRlbVVuaXF1ZU5hbWVzIn0sMjEwNzp7bjoiQnJ0RW5kSXRlbVVuaXF1ZU5hbWVzIn0sMjEwODp7bjoiQnJ0SXRlbVVuaXF1ZU5hbWUifSwyMTA5OntuOiJCcnRCZWdp'@; put 'bkV4dENvbm4xNSJ9LDIxMTA6e246IkJydEVuZEV4dENvbm4xNSJ9LDIxMTE6e246IkJydEJlZ2luT2xlZGJQcjE1In0sMjExMjp7bjoiQnJ0RW5kT2xlZGJQcjE1In0sMjExMzp7bjoiQnJ0QmVnaW5EYXRhRmVlZFByMTUifSwyMTE0OntuOiJCcnRFbmREYXRhRmVlZFByMTUifSwyMTE1Ontu'@; put 'OiJCcnRUZXh0UHIxNSJ9LDIxMTY6e246IkJydFJhbmdlUHIxNSJ9LDIxMTc6e246IkJydERiQ29tbWFuZDE1In0sMjExODp7bjoiQnJ0QmVnaW5EYlRhYmxlczE1In0sMjExOTp7bjoiQnJ0RW5kRGJUYWJsZXMxNSJ9LDIxMjA6e246IkJydERiVGFibGUxNSJ9LDIxMjE6e246IkJydEJlZ2lu'@; put 'RGF0YU1vZGVsIn0sMjEyMjp7bjoiQnJ0RW5kRGF0YU1vZGVsIn0sMjEyMzp7bjoiQnJ0QmVnaW5Nb2RlbFRhYmxlcyJ9LDIxMjQ6e246IkJydEVuZE1vZGVsVGFibGVzIn0sMjEyNTp7bjoiQnJ0TW9kZWxUYWJsZSJ9LDIxMjY6e246IkJydEJlZ2luTW9kZWxSZWxhdGlvbnNoaXBzIn0sMjEy'@; put 'Nzp7bjoiQnJ0RW5kTW9kZWxSZWxhdGlvbnNoaXBzIn0sMjEyODp7bjoiQnJ0TW9kZWxSZWxhdGlvbnNoaXAifSwyMTI5OntuOiJCcnRCZWdpbkVDVHh0V2l6MTUifSwyMTMwOntuOiJCcnRFbmRFQ1R4dFdpejE1In0sMjEzMTp7bjoiQnJ0QmVnaW5FQ1RXRmxkSW5mb0xzdDE1In0sMjEzMjp7'@; put 'bjoiQnJ0RW5kRUNUV0ZsZEluZm9Mc3QxNSJ9LDIxMzM6e246IkJydEJlZ2luRUNUV0ZsZEluZm8xNSJ9LDIxMzQ6e246IkJydEZpZWxkTGlzdEFjdGl2ZUl0ZW0ifSwyMTM1OntuOiJCcnRQaXZvdENhY2hlSWRWZXJzaW9uIn0sMjEzNjp7bjoiQnJ0U1hESTE1In0sMjEzNzp7bjoiQnJ0QmVn'@; put 'aW5Nb2RlbFRpbWVHcm91cGluZ3MifSwyMTM4OntuOiJCcnRFbmRNb2RlbFRpbWVHcm91cGluZ3MifSwyMTM5OntuOiJCcnRCZWdpbk1vZGVsVGltZUdyb3VwaW5nIn0sMjE0MDp7bjoiQnJ0RW5kTW9kZWxUaW1lR3JvdXBpbmcifSwyMTQxOntuOiJCcnRNb2RlbFRpbWVHcm91cGluZ0NhbGND'@; put 'b2wifSwzMDcyOntuOiJCcnRVaWQifSwzMDczOntuOiJCcnRSZXZpc2lvblB0ciJ9LDUwOTU6e246IkJydEJlZ2luQ2FsY0ZlYXR1cmVzIn0sNTA5Njp7bjoiQnJ0RW5kQ2FsY0ZlYXR1cmVzIn0sNTA5Nzp7bjoiQnJ0Q2FsY0ZlYXR1cmUifSw2NTUzNTp7bjoiIn19LGp6PUllKEw4LCJuIik7'@; put 'anouQnJ0RlJUQXJjaElEJD0xNjt2YXIgZU09ezY6e246IkZvcm11bGEiLGY6aVN9LDEwOntuOiJFT0YiLGY6czJ9LDEyOntuOiJDYWxjQ291bnQiLGY6TWN9LDEzOntuOiJDYWxjTW9kZSIsZjpNY30sMTQ6e246IkNhbGNQcmVjaXNpb24iLGY6Y3N9LDE1OntuOiJDYWxjUmVmTW9kZSIsZjpj'@; put 'c30sMTY6e246IkNhbGNEZWx0YSIsZjpSbH0sMTc6e246IkNhbGNJdGVyIixmOmNzfSwxODp7bjoiUHJvdGVjdCIsZjpjc30sMTk6e246IlBhc3N3b3JkIixmOk1jfSwyMDp7bjoiSGVhZGVyIixmOnRrfSwyMTp7bjoiRm9vdGVyIixmOnRrfSwyMzp7bjoiRXh0ZXJuU2hlZXQiLGY6U3Z9LDI0'@; put 'OntuOiJMYmwiLGY6c0N9LDI1OntuOiJXaW5Qcm90ZWN0IixmOmNzfSwyNjp7bjoiVmVydGljYWxQYWdlQnJlYWtzIn0sMjc6e246Ikhvcml6b250YWxQYWdlQnJlYWtzIn0sMjg6e246Ik5vdGUiLGY6ZnVuY3Rpb24gbmsoUyxPLGspe3JldHVybiBmdW5jdGlvbiB3cyhTLE8sayl7aWYoIShr'@; put 'LmJpZmY8OCkpe3ZhciBLPVMucmVhZF9zaGlmdCgyKSxlZT1TLnJlYWRfc2hpZnQoMiksb2U9Uy5yZWFkX3NoaWZ0KDIpLG1lPVMucmVhZF9zaGlmdCgyKSxwZT1YMChTLDAsayk7cmV0dXJuIGsuYmlmZjw4JiZTLnJlYWRfc2hpZnQoMSksW3tyOkssYzplZX0scGUsbWUsb2VdfX0oUywwLGsp'@; put 'fX0sMjk6e246IlNlbGVjdGlvbiIsZjpmdW5jdGlvbiBSZihTLE8sayl7cmV0dXJuIGsmJmsuYmlmZjw1PyhTLmwrPU8se2NlbGw6e3I6MCxjOjB9fSk6KFMucmVhZF9zaGlmdCgxKSx7Y2VsbDpxaSh7cjpTLnJlYWRfc2hpZnQoMiksYzpTLnJlYWRfc2hpZnQoMil9KX0pfX0sMzQ6e246IkRh'@; put 'dGUxOTA0IixmOmNzfSwzNTp7bjoiRXh0ZXJuTmFtZSIsZjphQ30sMzg6e246IkxlZnRNYXJnaW4iLGY6Umx9LDM5OntuOiJSaWdodE1hcmdpbiIsZjpSbH0sNDA6e246IlRvcE1hcmdpbiIsZjpSbH0sNDE6e246IkJvdHRvbU1hcmdpbiIsZjpSbH0sNDI6e246IlByaW50Um93Q29sIixmOmNz'@; put 'fSw0Mzp7bjoiUHJpbnRHcmlkIixmOmNzfSw0Nzp7bjoiRmlsZVBhc3MiLGY6ZnVuY3Rpb24gX0MoUyxPLGspe2lmKGsuZW5jKXJldHVybiBrLmVuYzt2YXIgSz17VHlwZTprLmJpZmY+PTg/Uy5yZWFkX3NoaWZ0KDIpOjB9O3JldHVybiBLLlR5cGU/ZnVuY3Rpb24gT3YoUyxPLGssSyl7dmFy'@; put 'IGVlPUt8fHt9O2lmKGVlLkluZm89Uy5yZWFkX3NoaWZ0KDIpLFMubC09MiwxPT09ZWUuSW5mbyl7aWYoZWUuRGF0YT1mdW5jdGlvbiBkbmUoUyl7dmFyIE89e30saz1PLkVuY3J5cHRpb25WZXJzaW9uSW5mbz1GMShTLDQpO2lmKDEhPWsuTWFqb3J8fDEhPWsuTWlub3IpdGhyb3cidW5yZWNv'@; put 'Z25pemVkIHZlcnNpb24gY29kZSAiK2suTWFqb3IrIiA6ICIray5NaW5vcjtyZXR1cm4gTy5TYWx0PVMucmVhZF9zaGlmdCgxNiksTy5FbmNyeXB0ZWRWZXJpZmllcj1TLnJlYWRfc2hpZnQoMTYpLE8uRW5jcnlwdGVkVmVyaWZpZXJIYXNoPVMucmVhZF9zaGlmdCgxNiksT30oUyksay5wYXNz'@; put 'd29yZCYmdHlwZW9mIEc0PCJ1Iil7dmFyIG9lPUc0KGsucGFzc3dvcmQsZWUuRGF0YS5TYWx0LCIwMDAwMDAwMCIpLG1lPVNlKGVlLkRhdGEuRW5jcnlwdGVkVmVyaWZpZXIrZWUuRGF0YS5FbmNyeXB0ZWRWZXJpZmllckhhc2gsImhleCIpLHBlPUtsLnJjNChTZShvZSwiaGV4IikudG9TdHJp'@; put 'bmcoImJpbmFyeSIpLG1lKTtLLnZhbGlkPUtsLm1kNShwZS5zbGljZSgwLDE2KSk9PUJ1ZmZlci5mcm9tKHBlLnNsaWNlKDE2KSkudG9TdHJpbmcoImhleCIpLGVlLkRhdGEuS2V5PW9lLEsuaW5zaXR1PWZ1bmN0aW9uIGVVKFMsTyl7dmFyIGs9bmV3IEFycmF5KDI1NiksSz0wLGVlPTAsb2U9'@; put 'MCxtZT0wO2Z1bmN0aW9uIHBlKGV0KXtmb3IoSz0wLGVlPTAsb2U9MCxtZT0wLGVlPTA7MjU2IT1lZTsrK2VlKWtbZWVdPWVlO2ZvcihvZT0wLGVlPTA7MjU2IT1lZTsrK2VlKXt0cnl7b2U9b2Ura1tlZV0rZXRbZWUlZXQubGVuZ3RoXS5jaGFyQ29kZUF0KDApJjI1NX1jYXRjaChjdCl7dGhy'@; put 'b3cgY29uc29sZS5sb2coZWUsZXRbZWUlZXQubGVuZ3RoXSksY3R9bWU9a1tlZV0sa1tlZV09a1tvZV0sa1tvZV09bWV9ZWU9b2U9MH1mdW5jdGlvbiBiZShldCl7dmFyIGN0PXooZXQubGVuZ3RoKTtmb3IoSz0wO0shPWV0Lmxlbmd0aDsrK0spbWU9a1tlZT1lZSsxJjI1NV0sa1tlZV09a1tv'@; put 'ZT0ob2Ura1tlZV0pJTI1Nl0sa1tvZV09bWUsY3RbS109ZXRbS11ea1trW2VlXStrW29lXSYyNTVdO3JldHVybiBCdWZmZXIuZnJvbShjdCl9dmFyIFBlPVMuS2V5LFZlPTA7cGUoU2UoUGUsImhleCIpLnRvU3RyaW5nKCJiaW5hcnkiKSk7dmFyIFllPTA7cmV0dXJuIGZ1bmN0aW9uKGV0KXtp'@; put 'ZihZZStldC5sZW5ndGg8MTAyNClyZXR1cm4gWWUrPWV0Lmxlbmd0aCxiZShldCk7dmFyIGl0PTAsYnQ9U2UoZXQuc2xpY2UoaXQsaXQrKFR0PTEwMjQtWWUpKSk7aXQrPVR0LFllPTA7dmFyIEJ0PWJlKGJ0KTtmb3IoaXQ9PWV0Lmxlbmd0aCYmKCsrVmUsUGU9RzQoTyxTLlNhbHQsRjgoVmUp'@; put 'KSxwZShTZShQZSwiaGV4IikudG9TdHJpbmcoImJpbmFyeSIpKSk7aXQ8ZXQubGVuZ3RoOyl7KytWZSxQZT1HNChPLFMuU2FsdCxGOChWZSkpLHBlKEJ1ZmZlci5mcm9tKFBlLCJoZXgiKS50b1N0cmluZygiYmluYXJ5IikpO3ZhciBUdD1NYXRoLm1pbigxMDI0LGV0Lmxlbmd0aC1pdCk7YnQ9'@; put 'U2UoZXQuc2xpY2UoaXQsaXQrVHQpKSxpdCs9VHQsWWU9VHQsQnQ9QnVmZmVyLmNvbmNhdChbQnQsYmUoYnQpXSl9cmV0dXJuIEJ0fX0oZWUuRGF0YSxrLnBhc3N3b3JkKX19ZWxzZSBpZihlZS5EYXRhPWZ1bmN0aW9uIFJ2KFMsTyl7dmFyIGs9e30sSz1rLkVuY3J5cHRpb25WZXJzaW9uSW5m'@; put 'bz1GMShTLDQpO2lmKE8tPTQsMiE9Sy5NaW5vcil0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCBtaW5vciB2ZXJzaW9uIGNvZGU6ICIrSy5NaW5vcik7aWYoSy5NYWpvcj40fHxLLk1ham9yPDIpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgbWFqb3IgdmVyc2lvbiBjb2RlOiAi'@; put 'K0suTWFqb3IpO2suRmxhZ3M9Uy5yZWFkX3NoaWZ0KDQpLE8tPTQ7dmFyIGVlPVMucmVhZF9zaGlmdCg0KTtyZXR1cm4gTy09NCxrLkVuY3J5cHRpb25IZWFkZXI9UFYoUyxlZSksay5FbmNyeXB0aW9uVmVyaWZpZXI9SXYoUyxPLT1lZSksa30oUyxPKSxlZS5EYXRhJiZlZS5EYXRhLkVuY3J5'@; put 'cHRpb25IZWFkZXImJjI2NjI1PT09ZWUuRGF0YS5FbmNyeXB0aW9uSGVhZGVyLkFsZ0lEJiZrLnBhc3N3b3JkJiZ0eXBlb2YgJDQ8InUiKXt2YXIgYmU9JDQoay5wYXNzd29yZCxlZS5EYXRhLkVuY3J5cHRpb25WZXJpZmllci5TYWx0LnRvU3RyaW5nKCJoZXgiKSwiMDAwMDAwMDAiKSxQZT1l'@; put 'ZS5EYXRhLkVuY3J5cHRpb25IZWFkZXIuS2V5U2l6ZT4+PjM7NT09UGV8fFBlPGJlLmxlbmd0aCYmKGJlPWJlLnNsaWNlKDAsUGUpKTt2YXIgVmU9U2UoZWUuRGF0YS5FbmNyeXB0aW9uVmVyaWZpZXIuVmVyaWZpZXIudG9TdHJpbmcoImhleCIpK2VlLkRhdGEuRW5jcnlwdGlvblZlcmlmaWVy'@; put 'LlZlcmlmaWVySGFzaC50b1N0cmluZygiaGV4IiksImhleCIpLFllPUtsLnJjNChiZS50b1N0cmluZygiYmluYXJ5IiksVmUpO0sudmFsaWQ9cGMoWWUuc2xpY2UoMCxQZSksIlNIQTEiKS50b1N0cmluZygiaGV4Iik9PVllLnNsaWNlKFBlKS50b1N0cmluZygiaGV4IiksZWUuRGF0YS5LZXk9'@; put 'YmUsSy52YWxpZCYmKEsuaW5zaXR1PWZ1bmN0aW9uIGRyZShTLE8pe3ZhciBrPW5ldyBBcnJheSgyNTYpLEs9MCxlZT0wLG9lPTAsbWU9MCxwZT1TLkVuY3J5cHRpb25IZWFkZXIuS2V5U2l6ZT4+PjM7ZnVuY3Rpb24gYmUoY3Qpe2ZvcihjdD1CdWZmZXIuZnJvbShjdC5zbGljZSgwLHBlKSks'@; put 'Sz0wLGVlPTAsb2U9MCxtZT0wLGVlPTA7MjU2IT1lZTsrK2VlKWtbZWVdPWVlO2ZvcihvZT0wLGVlPTA7MjU2IT1lZTsrK2VlKXt2YXIgVHQ9Y3RbZWUlY3QubGVuZ3RoXTtvZT1vZStrW2VlXSsoInN0cmluZyI9PXR5cGVvZiBUdD9UdC5jaGFyQ29kZUF0KDApOlR0KSYyNTUsbWU9a1tlZV0s'@; put 'a1tlZV09a1tvZV0sa1tvZV09bWV9ZWU9b2U9MH1mdW5jdGlvbiBQZShjdCl7dmFyIFR0PXooY3QubGVuZ3RoKTtmb3IoSz0wO0shPWN0Lmxlbmd0aDsrK0spbWU9a1tlZT1lZSsxJjI1NV0sa1tlZV09a1tvZT0ob2Ura1tlZV0pJTI1Nl0sa1tvZV09bWUsVHRbS109Y3RbS11ea1trW2VlXStr'@; put 'W29lXSYyNTVdO3JldHVybiBCdWZmZXIuZnJvbShUdCl9dmFyIFZlPVMuS2V5LFllPTA7YmUoU2UoVmUsImhleCIpLnRvU3RyaW5nKCJiaW5hcnkiKSk7dmFyIGV0PTA7cmV0dXJuIGZ1bmN0aW9uKGN0KXtpZihldCtjdC5sZW5ndGg8MTAyNClyZXR1cm4gZXQrPWN0Lmxlbmd0aCxQZShjdCk7'@; put 'dmFyIGl0PTEwMjQtZXQsYnQ9MCxCdD1CdWZmZXIuZnJvbShjdC5zbGljZShidCxidCtpdCkpO2J0Kz1pdCxldD0wO3ZhciBEdD1QZShCdCk7Zm9yKGJ0PT1jdC5sZW5ndGgmJigrK1llLFZlPSQ0KE8sUy5FbmNyeXB0aW9uVmVyaWZpZXIuU2FsdCxGOChZZSkpLGJlKEJ1ZmZlci5mcm9tKFZl'@; put 'LCJoZXgiKS50b1N0cmluZygiYmluYXJ5IikpKTtidDxjdC5sZW5ndGg7KSsrWWUsVmU9JDQoTyxTLkVuY3J5cHRpb25WZXJpZmllci5TYWx0LEY4KFllKSksYmUoQnVmZmVyLmZyb20oVmUsImhleCIpLnRvU3RyaW5nKCJiaW5hcnkiKSksaXQ9TWF0aC5taW4oMTAyNCxjdC5sZW5ndGgtYnQp'@; put 'LEJ0PUJ1ZmZlci5mcm9tKGN0LnNsaWNlKGJ0LGJ0K2l0KSksYnQrPWl0LGl0PDEwMjQmJihldD1pdCksRHQ9QnVmZmVyLmNvbmNhdChbRHQsUGUoQnQpXSk7cmV0dXJuIER0fX0oZWUuRGF0YSxrLnBhc3N3b3JkKSl9cmV0dXJuIGVlfShTLE8tMixrLEspOmZ1bmN0aW9uIE5WKFMsTyxrLEsp'@; put 'e3ZhciBlZT17a2V5Ok1jKFMpLHZlcmlmaWNhdGlvbkJ5dGVzOk1jKFMpfTtrLnBhc3N3b3JkJiYoZWUudmVyaWZpZXI9THYoay5wYXNzd29yZCkpLEsudmFsaWQ9ZWUudmVyaWZpY2F0aW9uQnl0ZXM9PT1lZS52ZXJpZmllcixLLnZhbGlkJiYoSy5pbnNpdHU9ZnVuY3Rpb24oUyxPKXt2YXIg'@; put 'az1PfHwwLEs9YkMoUyk7cmV0dXJuIGZ1bmN0aW9uKGVlKXt2YXIgb2U9ZnVuY3Rpb24oUyxPLGssSyxlZSl7dmFyIG9lLG1lO2ZvcihlZXx8KGVlPU8pLEt8fChLPWJDKCIiKSksb2U9MDtvZSE9Ty5sZW5ndGg7KytvZSltZT0yNTUmKChtZT1PW29lXSk+PjV8bWU8PDMpLGVlW29lXT1tZV49'@; put 'S1trXSxrPWsrMSYxNTtyZXR1cm5bZWUsayxLXX0oMCxlZSxrLEspO3JldHVybiBrPW9lWzFdLG9lWzBdfX0oay5wYXNzd29yZCwwKSl9KFMsMCxrLEspLEt9fSw0OTp7bjoiRm9udCIsZjpmdW5jdGlvbiBYQShTLE8sayl7dmFyIEs9e3N6OlMucmVhZF9zaGlmdCgyKS8yMH0sZWU9VncoUyk7'@; put 'ZWUuZkJvbGQmJihLLmJvbGQ9MSksZWUuZkl0YWxpYyYmKEsuaXRhbGljPTEpLGVlLmZVbmRlcmxpbmUmJihLLnVuZGVybGluZT0xKSxlZS5mQ29uZGVuc2UmJihLLmNvbmRlbnNlPTEpLGVlLmZFeHRlbmQmJihLLmV4dGVuZD0xKSxlZS5mU2hhZG93JiYoSy5zaGFkb3c9MSksZWUuZk91dGxp'@; put 'bmUmJihLLm91dGxpbmU9MSksZWUuZlN0cmlrZW91dCYmKEsuc3RyaWtlPTEpO3ZhciBvZT1rJiZrLmJpZmZ8fDg7aWYoMiE9b2UmJihLLmljdj1TLnJlYWRfc2hpZnQoMiksMyE9b2UmJjQhPW9lKSl7c3dpdGNoKDcwMD09PVMucmVhZF9zaGlmdCgyKSYmKEsuYm9sZD0xKSxTLnJlYWRfc2hp'@; put 'ZnQoMikpe2Nhc2UgMTpLLnZhbGlnbj0ic3VwZXIiO2JyZWFrO2Nhc2UgMjpLLnZhbGlnbj0ic3ViIn12YXIgcGU9Uy5yZWFkX3NoaWZ0KDEpOzAhPXBlJiYoSy51bmRlcmxpbmU9cGUpO3ZhciBiZT1TLnJlYWRfc2hpZnQoMSk7YmU+MCYmKEsuZmFtaWx5PWJlKTt2YXIgUGU9Uy5yZWFkX3No'@; put 'aWZ0KDEpO1BlPjAmJihLLmNoYXJzZXQ9UGUpLFMubCs9MX1yZXR1cm4gSy5uYW1lPVdhKFMsMCxrKSxLfX0sNTE6e246IlByaW50U2l6ZSIsZjpNY30sNjA6e246IkNvbnRpbnVlIn0sNjE6e246IldpbmRvdzEiLGY6ZnVuY3Rpb24gaW5lKFMpe3JldHVybntQb3M6W1MucmVhZF9zaGlmdCgy'@; put 'KSxTLnJlYWRfc2hpZnQoMildLERpbTpbUy5yZWFkX3NoaWZ0KDIpLFMucmVhZF9zaGlmdCgyKV0sRmxhZ3M6Uy5yZWFkX3NoaWZ0KDIpLEN1clRhYjpTLnJlYWRfc2hpZnQoMiksRmlyc3RUYWI6Uy5yZWFkX3NoaWZ0KDIpLFNlbGVjdGVkOlMucmVhZF9zaGlmdCgyKSxUYWJSYXRpbzpTLnJl'@; put 'YWRfc2hpZnQoMil9fX0sNjQ6e246IkJhY2t1cCIsZjpjc30sNjU6e246IlBhbmUiLGY6ZnVuY3Rpb24gS0EoUyxPLGspe2lmKGsmJmsuYmlmZjw1KXJldHVybnt9O3ZhciBLPXt9O3JldHVybiBLLng9Uy5yZWFkX3NoaWZ0KDIpLEsueT1TLnJlYWRfc2hpZnQoMiksSy5yd1RvcD1TLnJlYWRf'@; put 'c2hpZnQoMiksSy5jb2xMZWZ0PVMucmVhZF9zaGlmdCgyKSxLLnBubkFjY3Q9Uy5yZWFkX3NoaWZ0KDEpLFMucmVhZF9zaGlmdCgxKSxLfX0sNjY6e246IkNvZGVQYWdlIixmOk1jfSw3Nzp7bjoiUGxzIixmOlJufSw4MDp7bjoiRENvbiJ9LDgxOntuOiJEQ29uUmVmIn0sODI6e246IkRDb25O'@; put 'YW1lIn0sODU6e246IkRlZkNvbFdpZHRoIixmOk1jfSw4OTp7bjoiWENUIn0sOTA6e246IkNSTiJ9LDkxOntuOiJGaWxlU2hhcmluZyJ9LDkyOntuOiJXcml0ZUFjY2VzcyIsZjpmdW5jdGlvbiBlQyhTLE8sayl7aWYoay5lbmMpcmV0dXJuIFMubCs9TywiIjt2YXIgSz1TLmwsZWU9WDAoUyww'@; put 'LGspO3JldHVybiBTLnJlYWRfc2hpZnQoTytLLVMubCksZWV9fSw5Mzp7bjoiT2JqIixmOmZ1bmN0aW9uIGdWKFMsTyxrKXtpZihrJiZrLmJpZmY8OClyZXR1cm4gZnVuY3Rpb24gaWsoUyxPLGspe1MubCs9NDt2YXIgSz1TLnJlYWRfc2hpZnQoMiksZWU9Uy5yZWFkX3NoaWZ0KDIpLG9lPVMu'@; put 'cmVhZF9zaGlmdCgyKTtTLmwrPTIsUy5sKz0yLFMubCs9MixTLmwrPTIsUy5sKz0yLFMubCs9MixTLmwrPTIsUy5sKz0yLFMubCs9MixTLmwrPTY7dmFyIG1lPVtdO3JldHVybiBtZS5wdXNoKChya1tLXXx8Um4pKFMsTy09MzYsaykpLHtjbW86W2VlLEssb2VdLGZ0Om1lfX0oUyxPLGspO3Zh'@; put 'ciBLPWc1KFMpLGVlPWZ1bmN0aW9uIHEwKFMsTyxrKXtmb3IodmFyIEs9Uy5sK08sZWU9W107Uy5sPEs7KXt2YXIgb2U9Uy5yZWFkX3NoaWZ0KDIpO1MubC09Mjt0cnl7ZWVbb2VdPUlmW29lXShTLEstUy5sKX1jYXRjaHtyZXR1cm4gUy5sPUssZWV9fXJldHVybiBTLmwhPUsmJihTLmw9Syks'@; put 'ZWV9KFMsTy0yMik7cmV0dXJue2NtbzpLLGZ0OmVlfX19LDk0OntuOiJVbmNhbGNlZCJ9LDk1OntuOiJDYWxjU2F2ZVJlY2FsYyIsZjpjc30sOTY6e246IlRlbXBsYXRlIn0sOTc6e246IkludGwifSw5OTp7bjoiT2JqUHJvdGVjdCIsZjpjc30sMTI1OntuOiJDb2xJbmZvIixmOmxDfSwxMjg6'@; put 'e246Ikd1dHMiLGY6ZnVuY3Rpb24gZFYoUyl7Uy5sKz00O3ZhciBPPVtTLnJlYWRfc2hpZnQoMiksUy5yZWFkX3NoaWZ0KDIpXTtpZigwIT09T1swXSYmT1swXS0tLDAhPT1PWzFdJiZPWzFdLS0sT1swXT43fHxPWzFdPjcpdGhyb3cgbmV3IEVycm9yKCJCYWQgR3V0dGVyczogIitPLmpvaW4o'@; put 'InwiKSk7cmV0dXJuIE99fSwxMjk6e246IldzQm9vbCIsZjpmdW5jdGlvbiBDdihTLE8sayl7dmFyIEs9ayYmOD09ay5iaWZmfHwyPT1PP1MucmVhZF9zaGlmdCgyKTooUy5sKz1PLDApO3JldHVybntmRGlhbG9nOjE2JkssZkJlbG93OjY0JkssZlJpZ2h0OjEyOCZLfX19LDEzMDp7bjoiR3Jp'@; put 'ZFNldCIsZjpNY30sMTMxOntuOiJIQ2VudGVyIixmOmNzfSwxMzI6e246IlZDZW50ZXIiLGY6Y3N9LDEzMzp7bjoiQm91bmRTaGVldDgiLGY6ZnVuY3Rpb24gWjYoUyxPLGspe3ZhciBLPVMucmVhZF9zaGlmdCg0KSxlZT0zJlMucmVhZF9zaGlmdCgxKSxvZT1TLnJlYWRfc2hpZnQoMSk7c3dp'@; put 'dGNoKG9lKXtjYXNlIDA6b2U9IldvcmtzaGVldCI7YnJlYWs7Y2FzZSAxOm9lPSJNYWNyb3NoZWV0IjticmVhaztjYXNlIDI6b2U9IkNoYXJ0c2hlZXQiO2JyZWFrO2Nhc2UgNjpvZT0iVkJBTW9kdWxlIn12YXIgbWU9V2EoUywwLGspO3JldHVybiAwPT09bWUubGVuZ3RoJiYobWU9IlNoZWV0'@; put 'MSIpLHtwb3M6SyxoczplZSxkdDpvZSxuYW1lOm1lfX19LDEzNDp7bjoiV3JpdGVQcm90ZWN0In0sMTQwOntuOiJDb3VudHJ5IixmOmZ1bmN0aW9uIF9WKFMpe3ZhciBrLE89WzAsMF07cmV0dXJuIGs9Uy5yZWFkX3NoaWZ0KDIpLE9bMF09RDZba118fGssaz1TLnJlYWRfc2hpZnQoMiksT1sx'@; put 'XT1ENltrXXx8ayxPfX0sMTQxOntuOiJIaWRlT2JqIixmOk1jfSwxNDQ6e246IlNvcnQifSwxNDY6e246IlBhbGV0dGUiLGY6ZnVuY3Rpb24gd3QoUyl7Zm9yKHZhciBPPVMucmVhZF9zaGlmdCgyKSxrPVtdO08tLSA+MDspay5wdXNoKGhkKFMpKTtyZXR1cm4ga319LDE1MTp7bjoiU3luYyJ9'@; put 'LDE1Mjp7bjoiTFByIn0sMTUzOntuOiJEeEdDb2wifSwxNTQ6e246IkZuR3JvdXBOYW1lIn0sMTU1OntuOiJGaWx0ZXJNb2RlIn0sMTU2OntuOiJCdWlsdEluRm5Hcm91cENvdW50IixmOk1jfSwxNTc6e246IkF1dG9GaWx0ZXJJbmZvIn0sMTU4OntuOiJBdXRvRmlsdGVyIn0sMTYwOntuOiJT'@; put 'Y2wiLGY6YWt9LDE2MTp7bjoiU2V0dXAiLGY6ZnVuY3Rpb24gcDIoUyxPKXt2YXIgaz17fTtyZXR1cm4gTzwzMnx8KFMubCs9MTYsay5oZWFkZXI9UmwoUyksay5mb290ZXI9UmwoUyksUy5sKz0yKSxrfX0sMTc0OntuOiJTY2VuTWFuIn0sMTc1OntuOiJTQ0VOQVJJTyJ9LDE3Njp7bjoiU3hW'@; put 'aWV3In0sMTc3OntuOiJTeHZkIn0sMTc4OntuOiJTWFZJIn0sMTgwOntuOiJTeEl2ZCJ9LDE4MTp7bjoiU1hMSSJ9LDE4Mjp7bjoiU1hQSSJ9LDE4NDp7bjoiRG9jUm91dGUifSwxODU6e246IlJlY2lwTmFtZSJ9LDE4OTp7bjoiTXVsUmsiLGY6ZnVuY3Rpb24gdVYoUyxPKXtmb3IodmFyIGs9'@; put 'Uy5sK08tMixLPVMucmVhZF9zaGlmdCgyKSxlZT1TLnJlYWRfc2hpZnQoMiksb2U9W107Uy5sPGs7KW9lLnB1c2goX3MoUykpO2lmKFMubCE9PWspdGhyb3cgbmV3IEVycm9yKCJNdWxSSyByZWFkIGVycm9yIik7dmFyIG1lPVMucmVhZF9zaGlmdCgyKTtpZihvZS5sZW5ndGghPW1lLWVlKzEp'@; put 'dGhyb3cgbmV3IEVycm9yKCJNdWxSSyBsZW5ndGggbWlzbWF0Y2giKTtyZXR1cm57cjpLLGM6ZWUsQzptZSxya3JlYzpvZX19fSwxOTA6e246Ik11bEJsYW5rIixmOmZ1bmN0aW9uIG9uZShTLE8pe2Zvcih2YXIgaz1TLmwrTy0yLEs9Uy5yZWFkX3NoaWZ0KDIpLGVlPVMucmVhZF9zaGlmdCgy'@; put 'KSxvZT1bXTtTLmw8azspb2UucHVzaChTLnJlYWRfc2hpZnQoMikpO2lmKFMubCE9PWspdGhyb3cgbmV3IEVycm9yKCJNdWxCbGFuayByZWFkIGVycm9yIik7dmFyIG1lPVMucmVhZF9zaGlmdCgyKTtpZihvZS5sZW5ndGghPW1lLWVlKzEpdGhyb3cgbmV3IEVycm9yKCJNdWxCbGFuayBsZW5n'@; put 'dGggbWlzbWF0Y2giKTtyZXR1cm57cjpLLGM6ZWUsQzptZSxpeGZlOm9lfX19LDE5Mzp7bjoiTW1zIixmOnMyfSwxOTc6e246IlNYREkifSwxOTg6e246IlNYREIifSwxOTk6e246IlNYRkRCIn0sMjAwOntuOiJTWERCQiJ9LDIwMTp7bjoiU1hOdW0ifSwyMDI6e246IlN4Qm9vbCIsZjpjc30s'@; put 'MjAzOntuOiJTeEVyciJ9LDIwNDp7bjoiU1hJbnQifSwyMDU6e246IlNYU3RyaW5nIn0sMjA2OntuOiJTWER0ciJ9LDIwNzp7bjoiU3hOaWwifSwyMDg6e246IlNYVGJsIn0sMjA5OntuOiJTWFRCUkdJSVRNIn0sMjEwOntuOiJTeFRicGcifSwyMTE6e246Ik9iUHJvaiJ9LDIxMzp7bjoiU1hT'@; put 'dHJlYW1JRCJ9LDIxNTp7bjoiREJDZWxsIn0sMjE2OntuOiJTWFJuZyJ9LDIxNzp7bjoiU3hJc3hvcGVyIn0sMjE4OntuOiJCb29rQm9vbCIsZjpNY30sMjIwOntuOiJEYk9yUGFyYW1RcnkifSwyMjE6e246IlNjZW5hcmlvUHJvdGVjdCIsZjpjc30sMjIyOntuOiJPbGVPYmplY3RTaXplIn0s'@; put 'MjI0OntuOiJYRiIsZjpmdW5jdGlvbiByQyhTLE8sayl7dmFyIEs9e307cmV0dXJuIEsuaWZudD1TLnJlYWRfc2hpZnQoMiksSy5udW1GbXRJZD1TLnJlYWRfc2hpZnQoMiksSy5mbGFncz1TLnJlYWRfc2hpZnQoMiksSy5mU3R5bGU9Sy5mbGFncz4+MiYxLEsuZGF0YT1mdW5jdGlvbiBfbChT'@; put 'LE8sayxLKXt2YXIgZWU9e30sb2U9Uy5yZWFkX3NoaWZ0KDQpLG1lPVMucmVhZF9zaGlmdCg0KSxwZT1TLnJlYWRfc2hpZnQoNCksYmU9Uy5yZWFkX3NoaWZ0KDIpO2lmKGVlLnBhdHRlcm5UeXBlPWx2W3BlPj4yNl0sIUsuY2VsbFN0eWxlcylyZXR1cm4gZWU7dmFyIFBlPTcmb2U7c3dpdGNo'@; put 'KFBlKXtjYXNlIDE6ZWUuaGFsaWduPSJsZWZ0IjticmVhaztjYXNlIDI6ZWUuaGFsaWduPSJjZW50ZXIiO2JyZWFrO2Nhc2UgMzplZS5oYWxpZ249InJpZ2h0In1zd2l0Y2goZWUuZldyYXA9b2U+PjMmMSxQZT1vZT4+NCY3KXtjYXNlIDA6ZWUudmFsaWduPSJ0b3AiO2JyZWFrO2Nhc2UgMTpl'@; put 'ZS52YWxpZ249ImNlbnRlciI7YnJlYWs7Y2FzZSAyOmVlLnZhbGlnbj0iYm90dG9tIn1yZXR1cm4gZWUuZkp1c3RMYXN0PW9lPj43JjEsZWUudHJvdD1vZT4+OCYyNTUsZWUuY0luZGVudD1vZT4+MTYmMTUsZWUuZlNocmlua1RvRml0PW9lPj4yMCYxLGVlLmlSZWFkT3JkZXI9b2U+PjIyJjIs'@; put 'ZWUuZkF0ck51bT1vZT4+MjYmMSxlZS5mQXRyRm50PW9lPj4yNyYxLGVlLmZBdHJBbGM9b2U+PjI4JjEsZWUuZkF0ckJkcj1vZT4+MjkmMSxlZS5mQXRyUGF0PW9lPj4zMCYxLGVlLmZBdHJQcm90PW9lPj4zMSYxLGVlLmRnTGVmdD0xNSZtZSxlZS5kZ1JpZ2h0PW1lPj40JjE1LGVlLmRnVG9w'@; put 'PW1lPj44JjE1LGVlLmRnQm90dG9tPW1lPj4xMiYxNSxlZS5pY3ZMZWZ0PW1lPj4xNiYxMjcsZWUuaWN2UmlnaHQ9bWU+PjIzJjEyNyxlZS5ncmJpdERpYWc9bWU+PjMwJjMsZWUuaWN2VG9wPTEyNyZwZSxlZS5pY3ZCb3R0b209cGU+PjcmMTI3LGVlLmljdkRpYWc9cGU+PjE0JjEyNyxlZS5k'@; put 'Z0RpYWc9cGU+PjIxJjE1LGVlLmljdkZvcmU9MTI3JmJlLGVlLmljdkJhY2s9YmU+PjcmMTI3LGVlLmZzeEJ1dHRvbj1iZT4+MTQmMSxlZX0oUywwLDAsayksS319LDIyNTp7bjoiSW50ZXJmYWNlSGRyIixmOmZ1bmN0aW9uIFF3KFMsTyl7cmV0dXJuIDA9PT1PfHxTLnJlYWRfc2hpZnQoMiks'@; put 'MTIwMH19LDIyNjp7bjoiSW50ZXJmYWNlRW5kIixmOnMyfSwyMjc6e246IlNYVlMifSwyMjk6e246Ik1lcmdlQ2VsbHMiLGY6ZnVuY3Rpb24gbG5lKFMsTyl7Zm9yKHZhciBrPVtdLEs9Uy5yZWFkX3NoaWZ0KDIpO0stLTspay5wdXNoKGMyKFMpKTtyZXR1cm4ga319LDIzMzp7bjoiQmtIaW0i'@; put 'fSwyMzU6e246Ik1zb0RyYXdpbmdHcm91cCJ9LDIzNjp7bjoiTXNvRHJhd2luZyJ9LDIzNzp7bjoiTXNvRHJhd2luZ1NlbGVjdGlvbiJ9LDIzOTp7bjoiUGhvbmV0aWNJbmZvIn0sMjQwOntuOiJTeFJ1bGUifSwyNDE6e246IlNYRXgifSwyNDI6e246IlN4RmlsdCJ9LDI0NDp7bjoiU3hEWEYi'@; put 'fSwyNDU6e246IlN4SXRtIn0sMjQ2OntuOiJTeE5hbWUifSwyNDc6e246IlN4U2VsZWN0In0sMjQ4OntuOiJTWFBhaXIifSwyNDk6e246IlN4Rm1sYSJ9LDI1MTp7bjoiU3hGb3JtYXQifSwyNTI6e246IlNTVCIsZjpmdW5jdGlvbiBXNihTLE8pe2Zvcih2YXIgaz1TLmwrTyxLPVMucmVhZF9z'@; put 'aGlmdCg0KSxlZT1TLnJlYWRfc2hpZnQoNCksb2U9W10sbWU9MDttZSE9ZWUmJlMubDxrOysrbWUpb2UucHVzaChkYyhTKSk7cmV0dXJuIG9lLkNvdW50PUssb2UuVW5pcXVlPWVlLG9lfX0sMjUzOntuOiJMYWJlbFNzdCIsZjpmdW5jdGlvbiBvVihTKXt2YXIgTz15MChTKTtyZXR1cm4gTy5p'@; put 'c3N0PVMucmVhZF9zaGlmdCg0KSxPfX0sMjU1OntuOiJFeHRTU1QiLGY6ZnVuY3Rpb24gQ2UoUyxPKXt2YXIgaz17fTtyZXR1cm4gay5kc3N0PVMucmVhZF9zaGlmdCgyKSxTLmwrPU8tMixrfX0sMjU2OntuOiJTWFZERXgifSwyNTk6e246IlNYRm9ybXVsYSJ9LDI5MDp7bjoiU1hEQkV4In0s'@; put 'MzExOntuOiJSUkRJbnNEZWwifSwzMTI6e246IlJSREhlYWQifSwzMTU6e246IlJSRENoZ0NlbGwifSwzMTc6e246IlJSVGFiSWQiLGY6dzR9LDMxODp7bjoiUlJEUmVuU2hlZXQifSwzMTk6e246IlJSU29ydCJ9LDMyMDp7bjoiUlJETW92ZSJ9LDMzMDp7bjoiUlJGb3JtYXQifSwzMzE6e246'@; put 'IlJSQXV0b0ZtdCJ9LDMzMzp7bjoiUlJJbnNlcnRTaCJ9LDMzNDp7bjoiUlJETW92ZUJlZ2luIn0sMzM1OntuOiJSUkRNb3ZlRW5kIn0sMzM2OntuOiJSUkRJbnNEZWxCZWdpbiJ9LDMzNzp7bjoiUlJESW5zRGVsRW5kIn0sMzM4OntuOiJSUkRDb25mbGljdCJ9LDMzOTp7bjoiUlJERGVmTmFt'@; put 'ZSJ9LDM0MDp7bjoiUlJEUnN0RXR4cCJ9LDM1MTp7bjoiTFJuZyJ9LDM1Mjp7bjoiVXNlc0VMRnMiLGY6Y3N9LDM1Mzp7bjoiRFNGIixmOnMyfSw0MDE6e246IkNVc3IifSw0MDI6e246IkNiVXNyIn0sNDAzOntuOiJVc3JJbmZvIn0sNDA0OntuOiJVc3JFeGNsIn0sNDA1OntuOiJGaWxlTG9j'@; put 'ayJ9LDQwNjp7bjoiUlJESW5mbyJ9LDQwNzp7bjoiQkNVc3JzIn0sNDA4OntuOiJVc3JDaGsifSw0MjU6e246IlVzZXJCVmlldyJ9LDQyNjp7bjoiVXNlclNWaWV3QmVnaW4ifSw0Mjc6e246IlVzZXJTVmlld0VuZCJ9LDQyODp7bjoiUlJEVXNlclZpZXcifSw0Mjk6e246IlFzaSJ9LDQzMDp7'@; put 'bjoiU3VwQm9vayIsZjpmdW5jdGlvbiBmMihTLE8sayl7dmFyIEs9Uy5sK08sZWU9Uy5yZWFkX3NoaWZ0KDIpLG9lPVMucmVhZF9zaGlmdCgyKTtpZihrLnNiY2NoPW9lLDEwMjU9PW9lfHwxNDg0OT09b2UpcmV0dXJuW29lLGVlXTtpZihvZTwxfHxvZT4yNTUpdGhyb3cgbmV3IEVycm9yKCJV'@; put 'bmV4cGVjdGVkIFN1cEJvb2sgdHlwZTogIitvZSk7Zm9yKHZhciBtZT1uYyhTLG9lKSxwZT1bXTtLPlMubDspcGUucHVzaChRYyhTKSk7cmV0dXJuW29lLGVlLG1lLHBlXX19LDQzMTp7bjoiUHJvdDRSZXYiLGY6Y3N9LDQzMjp7bjoiQ29uZEZtdCJ9LDQzMzp7bjoiQ0YifSw0MzQ6e246IkRW'@; put 'YWwifSw0Mzc6e246IkRDb25CaW4ifSw0Mzg6e246IlR4TyIsZjpmdW5jdGlvbiB2NShTLE8sayl7dmFyIEs9Uy5sLGVlPSIiLG9lPS0xO3RyeXtTLmwrPTQsLTE9PVswLDUsNywxMSwxMiwxNF0uaW5kZXhPZigoay5sYXN0b2JqfHx7Y21vOlswLDBdfSkuY21vWzFdKT9TLmwrPTY6ZnVuY3Rp'@; put 'b24gaGMoUyl7dmFyIE89Uy5yZWFkX3NoaWZ0KDEpO1MubCsrO3ZhciBrPVMucmVhZF9zaGlmdCgyKTtTLmwrPTJ9KFMpO3ZhciBiZT1TLnJlYWRfc2hpZnQoMik7Uy5yZWFkX3NoaWZ0KDIpLG9lPVMucmVhZF9zaGlmdCgyKTt2YXIgVmU9Uy5yZWFkX3NoaWZ0KDIpO1MubCs9VmU7Zm9yKHZh'@; put 'ciBZZT0xO1llPFMubGVucy5sZW5ndGgtMTsrK1llKXtpZihTLmwtSyE9Uy5sZW5zW1llXSl0aHJvdyBuZXcgRXJyb3IoIlR4TzogYmFkIGNvbnRpbnVlIHJlY29yZCIpO3ZhciBldD1TW1MubF07aWYoKGVlKz1uYyhTLFMubGVuc1tZZSsxXS1TLmxlbnNbWWVdLTEpKS5sZW5ndGg+PShldD9i'@; put 'ZToyKmJlKSlicmVha31pZihlZS5sZW5ndGghPT1iZSYmZWUubGVuZ3RoIT09MipiZSl0aHJvdyBuZXcgRXJyb3IoImNjaFRleHQ6ICIrYmUrIiAhPSAiK2VlLmxlbmd0aCk7cmV0dXJuIFMubD1LK08se3Q6ZWUsaWZudDpvZX19Y2F0Y2h7cmV0dXJuIFMubD1LK08se3Q6ZWUsaWZudDpvZX19'@; put 'fX0sNDM5OntuOiJSZWZyZXNoQWxsIixmOmNzfSw0NDA6e246IkhMaW5rIixmOmZ1bmN0aW9uIG1WKFMsTyl7dmFyIGs9YzIoUyk7Uy5sKz0xNjt2YXIgSz1mdW5jdGlvbiBqbChTLE8pe3ZhciBrPVMubCtPLEs9Uy5yZWFkX3NoaWZ0KDQpO2lmKDIhPT1LKXRocm93IG5ldyBFcnJvcigiVW5y'@; put 'ZWNvZ25pemVkIHN0cmVhbVZlcnNpb246ICIrSyk7dmFyIGVlPVMucmVhZF9zaGlmdCgyKTtTLmwrPTI7dmFyIG9lLG1lLHBlLGJlLFZlLFllLFBlPSIiOzE2JmVlJiYob2U9QzQoUykpLDEyOCZlZSYmKG1lPUM0KFMpKSwhKDI1NyZ+ZWUpJiYocGU9QzQoUykpLDE9PSgyNTcmZWUpJiYoYmU9'@; put 'ZnVuY3Rpb24gQWYoUyxPKXt2YXIgaz1TLnJlYWRfc2hpZnQoMTYpO3N3aXRjaChrKXtjYXNlImUwYzllYTc5ZjliYWNlMTE4YzgyMDBhYTAwNGJhOTBiIjpyZXR1cm4gZnVuY3Rpb24gTzEoUyl7dmFyIE89Uy5yZWFkX3NoaWZ0KDQpLGs9Uy5sLEs9ITE7Tz4yNCYmKFMubCs9Ty0yNCwiNzk1'@; put 'ODgxZjQzYjFkN2Y0OGFmMmM4MjVkYzQ4NTI3NjMiPT09Uy5yZWFkX3NoaWZ0KDE2KSYmKEs9ITApLFMubD1rKTt2YXIgZWU9Uy5yZWFkX3NoaWZ0KChLP08tMjQ6Tyk+PjEsInV0ZjE2bGUiKS5yZXBsYWNlKEUsIiIpO3JldHVybiBLJiYoUy5sKz0yNCksZWV9KFMpO2Nhc2UiMDMwMzAwMDAw'@; put 'MDAwMDAwMGMwMDAwMDAwMDAwMDAwNDYiOnJldHVybiBmdW5jdGlvbiB2cyhTKXtmb3IodmFyIE89Uy5yZWFkX3NoaWZ0KDIpLGs9IiI7Ty0tID4wOylrKz0iLi4vIjt2YXIgSz1TLnJlYWRfc2hpZnQoMCwibHBzdHItYW5zaSIpO2lmKFMubCs9Miw1NzAwNSE9Uy5yZWFkX3NoaWZ0KDIpKXRo'@; put 'cm93IG5ldyBFcnJvcigiQmFkIEZpbGVNb25pa2VyIik7aWYoMD09PVMucmVhZF9zaGlmdCg0KSlyZXR1cm4gaytLLnJlcGxhY2UoL1xcL2csIi8iKTt2YXIgb2U9Uy5yZWFkX3NoaWZ0KDQpO2lmKDMhPVMucmVhZF9zaGlmdCgyKSl0aHJvdyBuZXcgRXJyb3IoIkJhZCBGaWxlTW9uaWtlciIp'@; put 'O3JldHVybiBrK1MucmVhZF9zaGlmdChvZT4+MSwidXRmMTZsZSIpLnJlcGxhY2UoRSwiIil9KFMpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBNb25pa2VyICIrayl9fShTKSksOCZlZSYmKFBlPUM0KFMpKSwzMiZlZSYmKFZlPVMucmVhZF9zaGlmdCgxNikpLDY0JmVl'@; put 'JiYoWWU9TjMoUykpLFMubD1rO3ZhciBldD1tZXx8cGV8fGJlfHwiIjtldCYmUGUmJihldCs9IiMiK1BlKSxldHx8KGV0PSIjIitQZSksMiZlZSYmIi8iPT1ldC5jaGFyQXQoMCkmJiIvIiE9ZXQuY2hhckF0KDEpJiYoZXQ9ImZpbGU6Ly8iK2V0KTt2YXIgY3Q9e1RhcmdldDpldH07cmV0dXJu'@; put 'IFZlJiYoY3QuZ3VpZD1WZSksWWUmJihjdC50aW1lPVllKSxvZSYmKGN0LlRvb2x0aXA9b2UpLGN0fShTLE8tMjQpO3JldHVybltrLEtdfX0sNDQxOntuOiJMZWwifSw0NDI6e246IkNvZGVOYW1lIixmOlFjfSw0NDM6e246IlNYRkRCVHlwZSJ9LDQ0NDp7bjoiUHJvdDRSZXZQYXNzIixmOk1j'@; put 'fSw0NDU6e246Ik9iTm9NYWNyb3MifSw0NDY6e246IkR2In0sNDQ4OntuOiJFeGNlbDlGaWxlIixmOnMyfSw0NDk6e246IlJlY2FsY0lkIixmOmZ1bmN0aW9uIGZkKFMpe3JldHVybiBTLnJlYWRfc2hpZnQoMiksUy5yZWFkX3NoaWZ0KDQpfSxyOjJ9LDQ1MDp7bjoiRW50RXhVMiIsZjpzMn0s'@; put 'NTEyOntuOiJEaW1lbnNpb25zIixmOm5DfSw1MTM6e246IkJsYW5rIixmOmNuZX0sNTE1OntuOiJOdW1iZXIiLGY6ZnVuY3Rpb24gaFYoUyxPLGspe2suYmlmZmd1ZXNzJiYyPT1rLmJpZmYmJihrLmJpZmY9NSk7dmFyIEs9eTAoUyksZWU9UmwoUyk7cmV0dXJuIEsudmFsPWVlLEt9fSw1MTY6'@; put 'e246IkxhYmVsIixmOmZ1bmN0aW9uIEpBKFMsTyxrKXtrLmJpZmZndWVzcyYmMj09ay5iaWZmJiYoay5iaWZmPTUpO3ZhciBlZT15MChTKTsyPT1rLmJpZmYmJlMubCsrO3ZhciBvZT1RYyhTLDAsayk7cmV0dXJuIGVlLnZhbD1vZSxlZX19LDUxNzp7bjoiQm9vbEVyciIsZjpFNH0sNTE5Ontu'@; put 'OiJTdHJpbmciLGY6UjB9LDUyMDp7bjoiUm93IixmOmZ1bmN0aW9uIFhlKFMpe3ZhciBPPXt9O08ucj1TLnJlYWRfc2hpZnQoMiksTy5jPVMucmVhZF9zaGlmdCgyKSxPLmNudD1TLnJlYWRfc2hpZnQoMiktTy5jO3ZhciBrPVMucmVhZF9zaGlmdCgyKTtTLmwrPTQ7dmFyIEs9Uy5yZWFkX3No'@; put 'aWZ0KDEpO1MubCs9MTt2YXIgZWU9Uy5yZWFkX3NoaWZ0KDIpO3JldHVybiBPLml4ZmU9NDA5NSZlZSw3JksmJihPLmxldmVsPTcmSyksMzImSyYmKE8uaGlkZGVuPSEwKSw2NCZLJiYoTy5ocHQ9ay8yMCksT319LDUyMzp7bjoiSW5kZXgifSw1NDU6e246IkFycmF5IixmOnh2fSw1NDk6e246'@; put 'IkRlZmF1bHRSb3dIZWlnaHQiLGY6ZDJ9LDU2Njp7bjoiVGFibGUifSw1NzQ6e246IldpbmRvdzIiLGY6ZnVuY3Rpb24gc25lKFMsTyxrKXtpZihrJiZrLmJpZmY+PTImJmsuYmlmZjw1KXJldHVybnt9O3ZhciBLPVMucmVhZF9zaGlmdCgyKTtyZXR1cm57UlRMOjY0JkssZ3JpZDohISgyJksp'@; put 'LGZyb3plbjohISg4JkspfX19LDYzODp7bjoiUksiLGY6ZnVuY3Rpb24gZWsoUyl7dmFyIE89Uy5yZWFkX3NoaWZ0KDIpLGs9Uy5yZWFkX3NoaWZ0KDIpLEs9X3MoUyk7cmV0dXJue3I6TyxjOmssaXhmZTpLWzBdLHJrbnVtOktbMV19fX0sNjU5OntuOiJTdHlsZSIsZjpmdW5jdGlvbiBJMChT'@; put 'LE8sayl7cmV0dXJuIFMubCs9Tyx7fX19LDEwNDg6e246IkJpZ05hbWUifSwxMDU0OntuOiJGb3JtYXQiLGY6ZnVuY3Rpb24gdEMoUyxPLGspe3JldHVybltTLnJlYWRfc2hpZnQoMiksWDAoUywwLGspXX19LDEwODQ6e246IkNvbnRpbnVlQmlnTmFtZSJ9LDEyMTI6e246IlNockZtbGEiLGY6'@; put 'ZnVuY3Rpb24gTXYoUyxPLGspe3ZhciBLPU00KFMpO1MubCsrO3ZhciBlZT1TLnJlYWRfc2hpZnQoMSk7cmV0dXJuW1gzKFMsTy09OCxrKSxlZSxLXX19LDIwNDg6e246IkhMaW5rVG9vbHRpcCIsZjpmdW5jdGlvbiB5VihTLE8pe1MucmVhZF9zaGlmdCgyKTt2YXIgaz1jMihTKSxLPVMucmVh'@; put 'ZF9zaGlmdCgoTy0xMCkvMiwiZGJjcy1jb250Iik7cmV0dXJuW2ssSz1LLnJlcGxhY2UoRSwiIildfX0sMjA0OTp7bjoiV2ViUHViIn0sMjA1MDp7bjoiUXNpU1hUYWcifSwyMDUxOntuOiJEQlF1ZXJ5RXh0In0sMjA1Mjp7bjoiRXh0U3RyaW5nIn0sMjA1Mzp7bjoiVHh0UXJ5In0sMjA1NDp7'@; put 'bjoiUXNpciJ9LDIwNTU6e246IlFzaWYifSwyMDU2OntuOiJSUkRUUVNJRiJ9LDIwNTc6e246IkJPRiIsZjpIY30sMjA1ODp7bjoiT2xlRGJDb25uIn0sMjA1OTp7bjoiV09wdCJ9LDIwNjA6e246IlNYVmlld0V4In0sMjA2MTp7bjoiU1hUSCJ9LDIwNjI6e246IlNYUElFeCJ9LDIwNjM6e246'@; put 'IlNYVkRURXgifSwyMDY0OntuOiJTWFZpZXdFeDkifSwyMDY2OntuOiJDb250aW51ZUZydCJ9LDIwNjc6e246IlJlYWxUaW1lRGF0YSJ9LDIxMjg6e246IkNoYXJ0RnJ0SW5mbyJ9LDIxMjk6e246IkZydFdyYXBwZXIifSwyMTMwOntuOiJTdGFydEJsb2NrIn0sMjEzMTp7bjoiRW5kQmxvY2si'@; put 'fSwyMTMyOntuOiJTdGFydE9iamVjdCJ9LDIxMzM6e246IkVuZE9iamVjdCJ9LDIxMzQ6e246IkNhdExhYiJ9LDIxMzU6e246IllNdWx0In0sMjEzNjp7bjoiU1hWaWV3TGluayJ9LDIxMzc6e246IlBpdm90Q2hhcnRCaXRzIn0sMjEzODp7bjoiRnJ0Rm9udExpc3QifSwyMTQ2OntuOiJTaGVl'@; put 'dEV4dCJ9LDIxNDc6e246IkJvb2tFeHQiLHI6MTJ9LDIxNDg6e246IlNYQWRkbCJ9LDIxNDk6e246IkNyRXJyIn0sMjE1MDp7bjoiSEZQaWN0dXJlIn0sMjE1MTp7bjoiRmVhdEhkciIsZjpzMn0sMjE1Mjp7bjoiRmVhdCJ9LDIxNTQ6e246IkRhdGFMYWJFeHQifSwyMTU1OntuOiJEYXRhTGFi'@; put 'RXh0Q29udGVudHMifSwyMTU2OntuOiJDZWxsV2F0Y2gifSwyMTYxOntuOiJGZWF0SGRyMTEifSwyMTYyOntuOiJGZWF0dXJlMTEifSwyMTY0OntuOiJEcm9wRG93bk9iaklkcyJ9LDIxNjU6e246IkNvbnRpbnVlRnJ0MTEifSwyMTY2OntuOiJEQ29ubiJ9LDIxNjc6e246Ikxpc3QxMiJ9LDIx'@; put 'Njg6e246IkZlYXR1cmUxMiJ9LDIxNjk6e246IkNvbmRGbXQxMiJ9LDIxNzA6e246IkNGMTIifSwyMTcxOntuOiJDRkV4In0sMjE3Mjp7bjoiWEZDUkMiLGY6ZnVuY3Rpb24gb2woUyl7Uy5sKz0yO3ZhciBPPXtjeGZzOjAsY3JjOjB9O3JldHVybiBPLmN4ZnM9Uy5yZWFkX3NoaWZ0KDIpLE8u'@; put 'Y3JjPVMucmVhZF9zaGlmdCg0KSxPfSxyOjEyfSwyMTczOntuOiJYRkV4dCIsZjpmdW5jdGlvbiBkQihTLE8pe1MubCs9Mjt2YXIgSz1TLnJlYWRfc2hpZnQoMik7Uy5sKz0yO2Zvcih2YXIgZWU9Uy5yZWFkX3NoaWZ0KDIpLG9lPVtdO2VlLS0gPjA7KW9lLnB1c2goWnYoUykpO3JldHVybntp'@; put 'eGZlOkssZXh0Om9lfX0scjoxMn0sMjE3NDp7bjoiQXV0b0ZpbHRlcjEyIn0sMjE3NTp7bjoiQ29udGludWVGcnQxMiJ9LDIxODA6e246Ik1EVEluZm8ifSwyMTgxOntuOiJNRFhTdHIifSwyMTgyOntuOiJNRFhUdXBsZSJ9LDIxODM6e246Ik1EWFNldCJ9LDIxODQ6e246Ik1EWFByb3AifSwy'@; put 'MTg1OntuOiJNRFhLUEkifSwyMTg2OntuOiJNREIifSwyMTg3OntuOiJQTFYifSwyMTg4OntuOiJDb21wYXQxMiIsZjpjcyxyOjEyfSwyMTg5OntuOiJEWEYifSwyMTkwOntuOiJUYWJsZVN0eWxlcyIscjoxMn0sMjE5MTp7bjoiVGFibGVTdHlsZSJ9LDIxOTI6e246IlRhYmxlU3R5bGVFbGVt'@; put 'ZW50In0sMjE5NDp7bjoiU3R5bGVFeHQifSwyMTk1OntuOiJOYW1lUHVibGlzaCJ9LDIxOTY6e246Ik5hbWVDbXQiLGY6ZnVuY3Rpb24gRzYoUyxPLGspe2lmKCEoay5iaWZmPDgpKXt2YXIgSz1TLnJlYWRfc2hpZnQoMiksZWU9Uy5yZWFkX3NoaWZ0KDIpO3JldHVybltuYyhTLEssayksbmMo'@; put 'UyxlZSxrKV19Uy5sKz1PfSxyOjEyfSwyMTk3OntuOiJTb3J0RGF0YSJ9LDIxOTg6e246IlRoZW1lIixmOmZ1bmN0aW9uIGNCKFMsTyxrKXt2YXIgSz1TLmwrTztpZigxMjQyMjYhPT1TLnJlYWRfc2hpZnQoNCkpe2lmKCFrLmNlbGxTdHlsZXMpcmV0dXJuIHZvaWQoUy5sPUspO3ZhciBtZSxv'@; put 'ZT1TLnNsaWNlKFMubCk7Uy5sPUs7dHJ5e21lPWNuKG9lLHt0eXBlOiJhcnJheSJ9KX1jYXRjaHtyZXR1cm59dmFyIHBlPWlyKG1lLCJ0aGVtZS90aGVtZS90aGVtZTEueG1sIiwhMCk7aWYocGUpcmV0dXJuIElDKHBlLGspfX0scjoxMn0sMjE5OTp7bjoiR1VJRFR5cGVMaWIifSwyMjAwOntu'@; put 'OiJGbkdycDEyIn0sMjIwMTp7bjoiTmFtZUZuR3JwMTIifSwyMjAyOntuOiJNVFJTZXR0aW5ncyIsZjpmdW5jdGlvbiBUNChTKXtyZXR1cm5bMCE9PVMucmVhZF9zaGlmdCg0KSwwIT09Uy5yZWFkX3NoaWZ0KDQpLFMucmVhZF9zaGlmdCg0KV19LHI6MTJ9LDIyMDM6e246IkNvbXByZXNzUGlj'@; put 'dHVyZXMiLGY6czJ9LDIyMDQ6e246IkhlYWRlckZvb3RlciJ9LDIyMDU6e246IkNydExheW91dDEyIn0sMjIwNjp7bjoiQ3J0TWxGcnQifSwyMjA3OntuOiJDcnRNbEZydENvbnRpbnVlIn0sMjIxMTp7bjoiRm9yY2VGdWxsQ2FsY3VsYXRpb24iLGY6ZnVuY3Rpb24gUnQoUyl7dmFyIE89ZnVu'@; put 'Y3Rpb24gbDIoUyl7dmFyIE89Uy5yZWFkX3NoaWZ0KDIpLGs9Uy5yZWFkX3NoaWZ0KDIpO3JldHVybiBTLmwrPTgse3R5cGU6TyxmbGFnczprfX0oUyk7aWYoMjIxMSE9Ty50eXBlKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBGdXR1cmUgUmVjb3JkICIrTy50eXBlKTtyZXR1cm4gMCE9PVMu'@; put 'cmVhZF9zaGlmdCg0KX19LDIyMTI6e246IlNoYXBlUHJvcHNTdHJlYW0ifSwyMjEzOntuOiJUZXh0UHJvcHNTdHJlYW0ifSwyMjE0OntuOiJSaWNoVGV4dFN0cmVhbSJ9LDIyMTU6e246IkNydExheW91dDEyQSJ9LDQwOTc6e246IlVuaXRzIn0sNDA5ODp7bjoiQ2hhcnQifSw0MDk5OntuOiJT'@; put 'ZXJpZXMifSw0MTAyOntuOiJEYXRhRm9ybWF0In0sNDEwMzp7bjoiTGluZUZvcm1hdCJ9LDQxMDU6e246Ik1hcmtlckZvcm1hdCJ9LDQxMDY6e246IkFyZWFGb3JtYXQifSw0MTA3OntuOiJQaWVGb3JtYXQifSw0MTA4OntuOiJBdHRhY2hlZExhYmVsIn0sNDEwOTp7bjoiU2VyaWVzVGV4dCJ9'@; put 'LDQxMTY6e246IkNoYXJ0Rm9ybWF0In0sNDExNzp7bjoiTGVnZW5kIn0sNDExODp7bjoiU2VyaWVzTGlzdCJ9LDQxMTk6e246IkJhciJ9LDQxMjA6e246IkxpbmUifSw0MTIxOntuOiJQaWUifSw0MTIyOntuOiJBcmVhIn0sNDEyMzp7bjoiU2NhdHRlciJ9LDQxMjQ6e246IkNydExpbmUifSw0'@; put 'MTI1OntuOiJBeGlzIn0sNDEyNjp7bjoiVGljayJ9LDQxMjc6e246IlZhbHVlUmFuZ2UifSw0MTI4OntuOiJDYXRTZXJSYW5nZSJ9LDQxMjk6e246IkF4aXNMaW5lIn0sNDEzMDp7bjoiQ3J0TGluayJ9LDQxMzI6e246IkRlZmF1bHRUZXh0In0sNDEzMzp7bjoiVGV4dCJ9LDQxMzQ6e246IkZv'@; put 'bnRYIixmOk1jfSw0MTM1OntuOiJPYmplY3RMaW5rIn0sNDE0Njp7bjoiRnJhbWUifSw0MTQ3OntuOiJCZWdpbiJ9LDQxNDg6e246IkVuZCJ9LDQxNDk6e246IlBsb3RBcmVhIn0sNDE1NDp7bjoiQ2hhcnQzZCJ9LDQxNTY6e246IlBpY0YifSw0MTU3OntuOiJEcm9wQmFyIn0sNDE1ODp7bjoi'@; put 'UmFkYXIifSw0MTU5OntuOiJTdXJmIn0sNDE2MDp7bjoiUmFkYXJBcmVhIn0sNDE2MTp7bjoiQXhpc1BhcmVudCJ9LDQxNjM6e246IkxlZ2VuZEV4Y2VwdGlvbiJ9LDQxNjQ6e246IlNodFByb3BzIixmOmZ1bmN0aW9uIHVDKFMsTyxrKXt2YXIgSz17YXJlYTohMX07aWYoNSE9ay5iaWZmKXJl'@; put 'dHVybiBTLmwrPU8sSzt2YXIgZWU9Uy5yZWFkX3NoaWZ0KDEpO3JldHVybiBTLmwrPTMsMTYmZWUmJihLLmFyZWE9ITApLEt9fSw0MTY1OntuOiJTZXJUb0NydCJ9LDQxNjY6e246IkF4ZXNVc2VkIn0sNDE2ODp7bjoiU0Jhc2VSZWYifSw0MTcwOntuOiJTZXJQYXJlbnQifSw0MTcxOntuOiJT'@; put 'ZXJBdXhUcmVuZCJ9LDQxNzQ6e246IklGbXRSZWNvcmQifSw0MTc1OntuOiJQb3MifSw0MTc2OntuOiJBbFJ1bnMifSw0MTc3OntuOiJCUkFJIn0sNDE4Nzp7bjoiU2VyQXV4RXJyQmFyIn0sNDE4ODp7bjoiQ2xydENsaWVudCIsZjpmdW5jdGlvbiBzbyhTKXtmb3IodmFyIE89Uy5yZWFkX3No'@; put 'aWZ0KDIpLGs9W107Ty0tID4wOylrLnB1c2goaGQoUykpO3JldHVybiBrfX0sNDE4OTp7bjoiU2VyRm10In0sNDE5MTp7bjoiQ2hhcnQzREJhclNoYXBlIn0sNDE5Mjp7bjoiRmJpIn0sNDE5Mzp7bjoiQm9wUG9wIn0sNDE5NDp7bjoiQXhjRXh0In0sNDE5NTp7bjoiRGF0In0sNDE5Njp7bjoi'@; put 'UGxvdEdyb3d0aCJ9LDQxOTc6e246IlNJSW5kZXgifSw0MTk4OntuOiJHZWxGcmFtZSJ9LDQxOTk6e246IkJvcFBvcEN1c3RvbSJ9LDQyMDA6e246IkZiaTIifSwwOntuOiJEaW1lbnNpb25zIixmOm5DfSwxOntuOiJCSUZGMkJMQU5LIn0sMjp7bjoiQklGRjJJTlQiLGY6ZnVuY3Rpb24gU1Yo'@; put 'Uyl7dmFyIE89eTAoUyk7KytTLmw7dmFyIGs9Uy5yZWFkX3NoaWZ0KDIpO3JldHVybiBPLnQ9Im4iLE8udmFsPWssT319LDM6e246IkJJRkYyTlVNIixmOmZ1bmN0aW9uIENWKFMpe3ZhciBPPXkwKFMpOysrUy5sO3ZhciBrPVJsKFMpO3JldHVybiBPLnQ9Im4iLE8udmFsPWssT319LDQ6e246'@; put 'IkJJRkYyU1RSIixmOmZ1bmN0aW9uIExmKFMsTyxrKXtrLmJpZmZndWVzcyYmNT09ay5iaWZmJiYoay5iaWZmPTIpO3ZhciBLPXkwKFMpOysrUy5sO3ZhciBlZT1YMChTLDAsayk7cmV0dXJuIEsudD0ic3RyIixLLnZhbD1lZSxLfX0sNTp7bjoiQm9vbEVyciIsZjpFNH0sNzp7bjoiU3RyaW5n'@; put 'IixmOmZ1bmN0aW9uIGRDKFMpe3ZhciBPPVMucmVhZF9zaGlmdCgxKTtyZXR1cm4gMD09PU8/KFMubCsrLCIiKTpTLnJlYWRfc2hpZnQoTywic2Jjcy1jb250Iil9fSw4OntuOiJCSUZGMlJPVyJ9LDk6e246IkJPRiIsZjpIY30sMTE6e246IkluZGV4In0sMjI6e246IkV4dGVybkNvdW50Iixm'@; put 'Ok1jfSwzMDp7bjoiQklGRjJGT1JNQVQiLGY6aDJ9LDMxOntuOiJCSUZGMkZNVENOVCJ9LDMyOntuOiJCSUZGMkNPTElORk8ifSwzMzp7bjoiQXJyYXkiLGY6eHZ9LDM2OntuOiJDT0xXSURUSCJ9LDM3OntuOiJEZWZhdWx0Um93SGVpZ2h0IixmOmQyfSw1MDp7bjoiQklGRjJGT05UWFRSQSIs'@; put 'ZjpmdW5jdGlvbiBoQyhTLE8pe1MubCs9NixTLmwrPTIsUy5sKz0xLFMubCs9MyxTLmwrPTEsUy5sKz1PLTEzfX0sNjI6e246IkJJRkYyV0lORE9XMiJ9LDUyOntuOiJEREVPYmpOYW1lIn0sNjc6e246IkJJRkYyWEYifSw2ODp7bjoiQklGRjJYRklOREVYIixmOk1jfSw2OTp7bjoiQklGRjJG'@; put 'T05UQ0xSIn0sODY6e246IkJJRkY0Rk1UQ05UIn0sMTI2OntuOiJSSyJ9LDEyNzp7bjoiSW1EYXRhIixmOmZ1bmN0aW9uIGFoKFMpe3ZhciBPPVMucmVhZF9zaGlmdCgyKSxrPVMucmVhZF9zaGlmdCgyKSxLPVMucmVhZF9zaGlmdCg0KSxlZT17Zm10Ok8sZW52OmssbGVuOkssZGF0YTpTLnNs'@; put 'aWNlKFMubCxTLmwrSyl9O3JldHVybiBTLmwrPUssZWV9fSwxMzU6e246IkFkZGluIn0sMTM2OntuOiJFZGcifSwxMzc6e246IlB1YiJ9LDE0NTp7bjoiU3ViIn0sMTQ4OntuOiJMSFJlY29yZCJ9LDE0OTp7bjoiTEhOR3JhcGgifSwxNTA6e246IlNvdW5kIn0sMTY5OntuOiJDb29yZExpc3Qi'@; put 'fSwxNzE6e246IkdDVyJ9LDE4ODp7bjoiU2hyRm1sYSJ9LDE5MTp7bjoiVG9vbGJhckhkciJ9LDE5Mjp7bjoiVG9vbGJhckVuZCJ9LDE5NDp7bjoiQWRkTWVudSJ9LDE5NTp7bjoiRGVsTWVudSJ9LDIxNDp7bjoiUlN0cmluZyIsZjpmdW5jdGlvbiBmQyhTLE8sayl7dmFyIEs9Uy5sK08sZWU9'@; put 'eTAoUyksb2U9Uy5yZWFkX3NoaWZ0KDIpLG1lPW5jKFMsb2Usayk7cmV0dXJuIFMubD1LLGVlLnQ9InN0ciIsZWUudmFsPW1lLGVlfX0sMjIzOntuOiJVRERlc2MifSwyMzQ6e246IlRhYklkQ29uZiJ9LDM1NDp7bjoiWEw1TW9kaWZ5In0sNDIxOntuOiJGaWxlU2hhcmluZzIifSw1MTg6e246'@; put 'IkZvcm11bGEiLGY6aVN9LDUyMTp7bjoiQk9GIixmOkhjfSw1MzY6e246IkxibCIsZjpzQ30sNTQ3OntuOiJFeHRlcm5OYW1lIixmOmFDfSw1NjE6e246IkZvbnQifSw1Nzk6e246IkJJRkYzWEYifSwxMDMwOntuOiJGb3JtdWxhIixmOmlTfSwxMDMzOntuOiJCT0YiLGY6SGN9LDEwOTE6e246'@; put 'IkJJRkY0WEYifSwyMTU3OntuOiJGZWF0SW5mbyJ9LDIxNjM6e246IkZlYXRJbmZvMTEifSwyMTc3OntuOiJTWEFkZGwxMiJ9LDIyNDA6e246IkF1dG9XZWJQdWIifSwyMjQxOntuOiJMaXN0T2JqIn0sMjI0Mjp7bjoiTGlzdEZpZWxkIn0sMjI0Mzp7bjoiTGlzdERWIn0sMjI0NDp7bjoiTGlz'@; put 'dENvbmRGbXQifSwyMjQ1OntuOiJMaXN0Q0YifSwyMjQ2OntuOiJGTVFyeSJ9LDIyNDc6e246IkZNU1FyeSJ9LDIyNDg6e246IlBMViJ9LDIyNDk6e246IkxuRXh0In0sMjI1MDp7bjoiTWtyRXh0In0sMjI1MTp7bjoiQ3J0Q29vcHQifSwyMjYyOntuOiJGUlRBcmNoSWQkIixyOjEyfSwyOTI4'@; put 'Mjp7fX0sdE09SWUoZU0sIm4iKTtmdW5jdGlvbiAkaShTLE8sayxLKXt2YXIgZWU9K098fCt0TVtPXTtpZighaXNOYU4oZWUpKXt2YXIgb2U9S3x8KGt8fFtdKS5sZW5ndGh8fDAsbWU9Uy5uZXh0KDQpO21lLndyaXRlX3NoaWZ0KDIsZWUpLG1lLndyaXRlX3NoaWZ0KDIsb2UpLG9lPjAmJkFy'@; put 'KGspJiZTLnB1c2goayl9fWZ1bmN0aW9uIE15KFMsTyxrKXtyZXR1cm4gU3x8KFM9dm4oNykpLFMud3JpdGVfc2hpZnQoMixPKSxTLndyaXRlX3NoaWZ0KDIsayksUy53cml0ZV9zaGlmdCgyLDApLFMud3JpdGVfc2hpZnQoMSwwKSxTfWZ1bmN0aW9uIG5yZShTLE8sayxLKXtpZihudWxsIT1P'@; put 'LnYpc3dpdGNoKE8udCl7Y2FzZSJkIjpjYXNlIm4iOnZhciBlZT0iZCI9PU8udD9KZShOZShPLnYpKTpPLnY7cmV0dXJuIHZvaWQoZWU9PSgwfGVlKSYmZWU+PTAmJmVlPDY1NTM2PyRpKFMsMixmdW5jdGlvbiBNVihTLE8sayl7dmFyIEs9dm4oOSk7cmV0dXJuIE15KEssUyxPKSxLLndyaXRl'@; put 'X3NoaWZ0KDIsayksS30oayxLLGVlKSk6JGkoUywzLGZ1bmN0aW9uIG9rKFMsTyxrKXt2YXIgSz12bigxNSk7cmV0dXJuIE15KEssUyxPKSxLLndyaXRlX3NoaWZ0KDgsaywiZiIpLEt9KGssSyxlZSkpKTtjYXNlImIiOmNhc2UiZSI6cmV0dXJuIHZvaWQgJGkoUyw1LGZ1bmN0aW9uIGVyZShT'@; put 'LE8sayxLKXt2YXIgZWU9dm4oOSk7cmV0dXJuIE15KGVlLFMsTyksWGkoayxLfHwiYiIsZWUpLGVlfShrLEssTy52LE8udCkpO2Nhc2UicyI6Y2FzZSJzdHIiOnJldHVybiB2b2lkICRpKFMsNCxmdW5jdGlvbiB0cmUoUyxPLGspe3ZhciBLPXZuKDgrMiprLmxlbmd0aCk7cmV0dXJuIE15KEss'@; put 'UyxPKSxLLndyaXRlX3NoaWZ0KDEsay5sZW5ndGgpLEsud3JpdGVfc2hpZnQoay5sZW5ndGgsaywic2JjcyIpLEsubDxLLmxlbmd0aD9LLnNsaWNlKDAsSy5sKTpLfShrLEssKE8udnx8IiIpLnNsaWNlKDAsMjU1KSkpfSRpKFMsMSxNeShudWxsLGssSykpfWZ1bmN0aW9uIG9yZShTLE8sayxL'@; put 'LGVlKXt2YXIgb2U9MTYrczAoZWUuY2VsbFhmcyxlZS5jZWxsU3R5bGVYZnMsTyxlZSk7aWYobnVsbCE9Ty52fHxPLmJmKWlmKE8uYmYpJGkoUywiRm9ybXVsYSIsZnVuY3Rpb24gSDUoUyxPLGssSyxlZSl7dmFyIG9lPW8yKE8sayxlZSksbWU9ZnVuY3Rpb24gclMoUyl7aWYobnVsbD09Uyl7'@; put 'dmFyIE89dm4oOCk7cmV0dXJuIE8ud3JpdGVfc2hpZnQoMSwzKSxPLndyaXRlX3NoaWZ0KDEsMCksTy53cml0ZV9zaGlmdCgyLDApLE8ud3JpdGVfc2hpZnQoMiwwKSxPLndyaXRlX3NoaWZ0KDIsNjU1MzUpLE99cmV0dXJuIEl1KCJudW1iZXIiPT10eXBlb2YgUz9TOjApfShTLnYpLHBlPXZu'@; put 'KDYpO3BlLndyaXRlX3NoaWZ0KDIsMzMpLHBlLndyaXRlX3NoaWZ0KDQsMCk7Zm9yKHZhciBQZT12bihTLmJmLmxlbmd0aCksVmU9MDtWZTxTLmJmLmxlbmd0aDsrK1ZlKVBlW1ZlXT1TLmJmW1ZlXTtyZXR1cm4gVShbb2UsbWUscGUsUGVdKX0oTyxrLEssMCxvZSkpO2Vsc2Ugc3dpdGNoKE8u'@; put 'dCl7Y2FzZSJkIjpjYXNlIm4iOiRpKFMsIk51bWJlciIsZnVuY3Rpb24gaUMoUyxPLGssSyl7dmFyIGVlPXZuKDE0KTtyZXR1cm4gbzIoUyxPLEssZWUpLEl1KGssZWUpLGVlfShrLEssImQiPT1PLnQ/SmUoTmUoTy52KSk6Ty52LG9lKSk7YnJlYWs7Y2FzZSJiIjpjYXNlImUiOiRpKFMsNTE3'@; put 'LGZ1bmN0aW9uIFAxKFMsTyxrLEssZWUsb2Upe3ZhciBtZT12big4KTtyZXR1cm4gbzIoUyxPLEssbWUpLFhpKGssb2UsbWUpLG1lfShrLEssTy52LG9lLDAsTy50KSk7YnJlYWs7Y2FzZSJzIjpjYXNlInN0ciI6aWYoZWUuYm9va1NTVCl7dmFyIHBlPXVTKGVlLlN0cmluZ3MsTy52LE8uUj9P'@; put 'LnI9Sm8oTy5SKTpudWxsLGVlLnJldlN0cmluZ3MpO2lmKE8uUilmb3IodmFyIGJlPTA7YmU8Ty5SLmxlbmd0aDsrK2JlKU8uUltiZV0ucyYmczAoZWUuY2VsbFhmcyxlZS5jZWxsU3R5bGVYZnMse3Q6Im4iLHY6MCxzOk8uUltiZV0uc30sZWUpOyRpKFMsIkxhYmVsU3N0IixmdW5jdGlvbiBx'@; put 'QShTLE8sayxLKXt2YXIgZWU9dm4oMTApO3JldHVybiBvMihTLE8sSyxlZSksZWUud3JpdGVfc2hpZnQoNCxrKSxlZX0oayxLLHBlLG9lKSl9ZWxzZSAkaShTLCJMYWJlbCIsZnVuY3Rpb24gbFYoUyxPLGssSyxlZSl7dmFyIG9lPSFlZXx8OD09ZWUuYmlmZixtZT12bigrb2UrOCsoMStvZSkq'@; put 'ay5sZW5ndGgpO3JldHVybiBvMihTLE8sSyxtZSksbWUud3JpdGVfc2hpZnQoMixrLmxlbmd0aCksb2UmJm1lLndyaXRlX3NoaWZ0KDEsMSksbWUud3JpdGVfc2hpZnQoKDErb2UpKmsubGVuZ3RoLGssb2U/InV0ZjE2bGUiOiJzYmNzIiksbWV9KGssSywoTy52fHwiIikuc2xpY2UoMCwyNTUp'@; put 'LG9lLGVlKSk7YnJlYWs7ZGVmYXVsdDokaShTLCJCbGFuayIsbzIoayxLLG9lKSl9ZWxzZSAkaShTLCJCbGFuayIsbzIoayxLLG9lKSl9ZnVuY3Rpb24ga0koUyxPLGspe3ZhciBWZSxLPXZpKCksZWU9ay5TaGVldE5hbWVzW1NdLG9lPWsuU2hlZXRzW2VlXXx8e30sbWU9KGt8fHt9KS5Xb3Jr'@; put 'Ym9va3x8e30scGU9KG1lLlNoZWV0c3x8W10pW1NdfHx7fSxiZT1BcnJheS5pc0FycmF5KG9lKSxQZT04PT1PLmJpZmYsWWU9IiIsZXQ9W10sY3Q9c3Mob2VbIiFyZWYiXXx8IkExIiksVHQ9UGU/NjU1MzY6MTYzODQ7aWYoY3QuZS5jPjI1NXx8Y3QuZS5yPj1UdCl7aWYoTy5XVEYpdGhyb3cg'@; put 'bmV3IEVycm9yKCJSYW5nZSAiKyhvZVsiIXJlZiJdfHwiQTEiKSsiIGV4Y2VlZHMgZm9ybWF0IGxpbWl0IEExOklWMTYzODQiKTtjdC5lLmM9TWF0aC5taW4oY3QuZS5jLDI1NSksY3QuZS5yPU1hdGgubWluKGN0LmUuYyxUdC0xKX0kaShLLDIwNTcseDQoMCwxNixPKSksJGkoSywiQ2FsY01v'@; put 'ZGUiLG4wKDEpKSwkaShLLCJDYWxjQ291bnQiLG4wKDEwMCkpLCRpKEssIkNhbGNSZWZNb2RlIixKYyghMCkpLCRpKEssIkNhbGNJdGVyIixKYyghMSkpLCRpKEssIkNhbGNEZWx0YSIsSXUoLjAwMSkpLCRpKEssIkNhbGNTYXZlUmVjYWxjIixKYyghMCkpLCRpKEssIlByaW50Um93Q29sIixK'@; put 'YyghMSkpLCRpKEssIlByaW50R3JpZCIsSmMoITEpKSwkaShLLCJHcmlkU2V0IixuMCgxKSksJGkoSywiR3V0cyIsZnVuY3Rpb24gWTYoUyl7dmFyIE89dm4oOCk7cmV0dXJuIE8ud3JpdGVfc2hpZnQoNCwwKSxPLndyaXRlX3NoaWZ0KDIsU1swXT9TWzBdKzE6MCksTy53cml0ZV9zaGlmdCgy'@; put 'LFNbMV0/U1sxXSsxOjApLE99KFswLDBdKSksJGkoSywiSENlbnRlciIsSmMoITEpKSwkaShLLCJWQ2VudGVyIixKYyghMSkpO3ZhciBpdD1vZVsiIXByaW50Il0mJm9lWyIhcHJpbnQiXS5tYXJnaW5zfHxvZVsiIW1hcmdpbnMiXTtpdCYmKG51bGwhPWl0LmxlZnQmJiRpKEssIkxlZnRNYXJn'@; put 'aW4iLEl1KGl0LmxlZnQpKSxudWxsIT1pdC5yaWdodCYmJGkoSywiUmlnaHRNYXJnaW4iLEl1KGl0LnJpZ2h0KSksbnVsbCE9aXQudG9wJiYkaShLLCJUb3BNYXJnaW4iLEl1KGl0LnRvcCkpLG51bGwhPWl0LmJvdHRvbSYmJGkoSywiQm90dG9tTWFyZ2luIixJdShpdC5ib3R0b20pKSwobnVs'@; put 'bCE9aXQuaGVhZGVyfHxudWxsIT1pdC5mb290ZXIpJiYkaShLLCJTZXR1cCIsZnVuY3Rpb24gY0MoUyxPKXt2YXIgaz12bigzNCksSz0hMSxlZT03MDtyZXR1cm4ibGFuZHNjYXBlIj09KE8ucHJvcHN8fHt9KS5vcmllbnRhdGlvbiYmKEs9ITAsZWUmPS02NyksSyYmKGVlJj0tNSksay53cml0'@; put 'ZV9zaGlmdCgyLDEpLGsud3JpdGVfc2hpZnQoMiwxMDApLGsud3JpdGVfc2hpZnQoMiwwKSxrLndyaXRlX3NoaWZ0KDIsMCksay53cml0ZV9zaGlmdCgyLDApLGsud3JpdGVfc2hpZnQoMSxlZSksay53cml0ZV9zaGlmdCgxLDApLGsud3JpdGVfc2hpZnQoMiw2MDApLGsud3JpdGVfc2hpZnQo'@; put 'Miw2MDApLEl1KG51bGw9PVMuaGVhZGVyPy41OlMuaGVhZGVyLGspLEl1KG51bGw9PVMuZm9vdGVyPy41OlMuZm9vdGVyLGspLGsud3JpdGVfc2hpZnQoMiwxKSxrfShpdCxvZVsiIXByaW50Il18fHt9KSkpLFBlJiZmdW5jdGlvbiBVeihTLE8sayl7aWYoTyl7dmFyIEs9MDtPLmZvckVhY2go'@; put 'ZnVuY3Rpb24oZWUsb2UpeysrSzw9MjU2JiZlZSYmKGVlLmF1dG8mJmRTKGssZWUsb2UpLCRpKFMsIkNvbEluZm8iLGZ1bmN0aW9uICQ2KFMsTyl7dmFyIGs9dm4oMTIpO2sud3JpdGVfc2hpZnQoMixPKSxrLndyaXRlX3NoaWZ0KDIsTyksay53cml0ZV9zaGlmdCgyLDI1NipTLndpZHRoKSxr'@; put 'LndyaXRlX3NoaWZ0KDIsMCk7dmFyIEs9MDtyZXR1cm4gUy5oaWRkZW4mJihLfD0xKSxrLndyaXRlX3NoaWZ0KDEsSyksay53cml0ZV9zaGlmdCgxLEs9Uy5sZXZlbHx8MCksay53cml0ZV9zaGlmdCgyLDApLGt9KHU4KG9lLGVlKSxvZSkpKX0pfX0oSyxvZVsiIWNvbHMiXSxvZSksJGkoSywi'@; put 'RGltZW5zaW9ucyIsZnVuY3Rpb24gUUEoUyxPKXt2YXIgaz04IT1PLmJpZmYmJk8uYmlmZj8yOjQsSz12bigyKmsrNik7cmV0dXJuIEsud3JpdGVfc2hpZnQoayxTLnMuciksSy53cml0ZV9zaGlmdChrLFMuZS5yKzEpLEsud3JpdGVfc2hpZnQoMixTLnMuYyksSy53cml0ZV9zaGlmdCgyLFMu'@; put 'ZS5jKzEpLEsud3JpdGVfc2hpZnQoMiwwKSxLfShjdCxPKSksUGUmJihvZVsiIWxpbmtzIl09W10pLG9lWyIhcm93cyJdJiZQZSYmb2VbIiFyb3dzIl0uZm9yRWFjaChmdW5jdGlvbihLdCxUbil7Zm9yKHZhciBzcj1qaShUbiksQ249MjU2LHVyPTAsZXI9S3Qucz8xNitzMChPLmNlbGxYZnMs'@; put 'Ty5jZWxsU3R5bGVYZnMse3Q6Im4iLHY6MCxzOkt0LnN9LE8pOjAsam49Y3Qucy5jO2puPD1jdC5lLmM7KytqbikoYmU/KG9lW1RuXXx8W10pW2puXTpvZVtldFtqbl0rc3JdKSYmKGpuPENuJiYoQ249am4pLGpuPnVyJiYodXI9am4pKTt1cjxDbiYmKENuPXVyPTApLCRpKEssIlJvdyIsZnVu'@; put 'Y3Rpb24gbXQoUyxPLGspe3ZhciBLPXZuKDE2KTtLLndyaXRlX3NoaWZ0KDIsTyksSy53cml0ZV9zaGlmdCgyLGtbMF0pLEsud3JpdGVfc2hpZnQoMixrWzFdKzEpLEsud3JpdGVfc2hpZnQoMiwyMCpTLmhwdHx8MjAqWjMoUy5ocHgpfHwzMzApLEsud3JpdGVfc2hpZnQoNCwwKTt2YXIgZWU9'@; put 'MDtyZXR1cm4gZWV8PTB8Uy5sZXZlbCxTLmhpZGRlbiYmKGVlfD0zMiksZWV8PTY0LGtbMl0mJihlZXw9MTI4KSxLLndyaXRlX3NoaWZ0KDEsZWUpLEsud3JpdGVfc2hpZnQoMSwxKSxLLndyaXRlX3NoaWZ0KDIsa1syXXx8MCksS30oS3QsVG4sW0NuLHVyLGVyXSkpfSk7Zm9yKHZhciBidD1j'@; put 'dC5zLnI7YnQ8PWN0LmUucjsrK2J0KXtZZT1qaShidCk7Zm9yKHZhciBCdD1jdC5zLmM7QnQ8PWN0LmUuYzsrK0J0KXtidD09PWN0LnMuciYmKGV0W0J0XT1rYShCdCkpLFZlPWV0W0J0XStZZTt2YXIgRHQ9YmU/KG9lW2J0XXx8W10pW0J0XTpvZVtWZV07RHQmJihvcmUoSyxEdCxidCxCdCxP'@; put 'KSxQZSYmRHQubCYmb2VbIiFsaW5rcyJdLnB1c2goW1ZlLER0LmxdKSl9fXZhciBPdD1wZS5Db2RlTmFtZXx8cGUubmFtZXx8ZWU7cmV0dXJuKFBlfHw1PT1PLmJpZmYmJm9lWyIhZnJlZXplIl0pJiYkaShLLCJXaW5kb3cyIixmdW5jdGlvbiBhVihTLE8sayxLKXt2YXIgZWU9SyYmSy5iaWZm'@; put 'fHw4LG9lPXZuKDg9PWVlPzE4OjEwKSxtZT0xNzE4O3JldHVybiBrPjAmJihtZSY9LTUxMyksWnQoT1siIWdyaWRsaW5lcyJdKSYmKG1lJj0tMyksT1siIWZyZWV6ZSJdJiYobWV8PTgpLFMmJlMuUlRMJiYobWV8PTY0KSw1PT1lZSYmKG1lPTQ0Niksb2Uud3JpdGVfc2hpZnQoMixtZSksOD09'@; put 'ZWU/KG9lLndyaXRlX3NoaWZ0KDQsMCksb2Uud3JpdGVfc2hpZnQoNCw2NCksb2Uud3JpdGVfc2hpZnQoNCwwKSxvZS53cml0ZV9zaGlmdCg0LDApKToob2Uud3JpdGVfc2hpZnQoNCwwKSxvZS53cml0ZV9zaGlmdCg0LDApKSxvZX0oKG1lLlZpZXdzfHxbXSlbMF0sb2UsUykpLChQZXx8NT09'@; put 'Ty5iaWZmKSYmb2VbIiFmcmVlemUiXSYmJGkoSywiUGFuZSIsZnVuY3Rpb24gYmwoUyl7InN0cmluZyI9PXR5cGVvZiBTJiYoUz1WcyhTKSk7dmFyIE89dm4oMTApO3JldHVybiBPLndyaXRlX3NoaWZ0KDIsUy5jKSxPLndyaXRlX3NoaWZ0KDIsUy5yKSxPLndyaXRlX3NoaWZ0KDIsUy5yKSxP'@; put 'LndyaXRlX3NoaWZ0KDIsUy5jKSxPLndyaXRlX3NoaWZ0KDEsMyksTy53cml0ZV9zaGlmdCgxLDApLE99KG9lWyIhZnJlZXplIl0pKSxQZSYmb2VbIiFzZWwiXSYmJGkoSywiU2VsZWN0aW9uIixmdW5jdGlvbiBzayhTLE8pe3ZhciBrPXZuKDE1KSxLPVMuY2VsbDtpZighSyl7aWYoIVMucmFu'@; put 'Z2UpdGhyb3cgbmV3IEVycm9yKCJNdXN0IHNwZWNpZnkgYSBzZWxlY3Rpb24gY2VsbCBvciByYW5nZSIpO0s9cWkoU28oUy5yYW5nZS5yZXBsYWNlKC9ccy4qJC8sIiIpKS5zKX12YXIgZWU9InN0cmluZyI9PXR5cGVvZiBLP1ZzKEspOks7aWYoTyl7dmFyIG9lPSJzdHJpbmciPT10eXBlb2Yg'@; put 'Tz9WcyhPKTpPO2sud3JpdGVfc2hpZnQoMSxlZS5yPj1vZS5yJiZlZS5jPj1vZS5jPzA6ZWUucj49b2UuciYmZWUuYzxvZS5jPzI6ZWUucjxvZS5yJiZlZS5jPj1vZS5jPzE6Myl9ZWxzZSBrLndyaXRlX3NoaWZ0KDEsMyk7cmV0dXJuIGsud3JpdGVfc2hpZnQoMixlZS5yKSxrLndyaXRlX3No'@; put 'aWZ0KDIsZWUuYyksay53cml0ZV9zaGlmdCgyLDApLGsud3JpdGVfc2hpZnQoMiwxKSxmdW5jdGlvbiBCMyhTLE8pe098fChPPXZuKDYpKSxPLndyaXRlX3NoaWZ0KDIsUy5zP1Mucy5yOlMuciksTy53cml0ZV9zaGlmdCgyLFMuZT9TLmUucjpTLnIpLE8ud3JpdGVfc2hpZnQoMSxTLnM/Uy5z'@; put 'LmM6Uy5jKSxPLndyaXRlX3NoaWZ0KDEsUy5lP1MuZS5jOlMuYyl9KHtzOmVlLGU6ZWV9LGspLGt9KG9lWyIhc2VsIl0sb2VbIiFmcmVlemUiXSkpLFBlJiYob2VbIiFtZXJnZXMiXXx8W10pLmxlbmd0aCYmJGkoSywiTWVyZ2VDZWxscyIsZnVuY3Rpb24gcFYoUyl7dmFyIE89dm4oMis4KlMu'@; put 'bGVuZ3RoKTtPLndyaXRlX3NoaWZ0KDIsUy5sZW5ndGgpO2Zvcih2YXIgaz0wO2s8Uy5sZW5ndGg7KytrKWZ1KFNba10sTyk7cmV0dXJuIE99KG9lWyIhbWVyZ2VzIl0pKSxQZSYmZnVuY3Rpb24gTzgoUyxPKXtmb3IodmFyIGs9MDtrPE9bIiFsaW5rcyJdLmxlbmd0aDsrK2spe3ZhciBLPU9b'@; put 'IiFsaW5rcyJdW2tdOyRpKFMsIkhMaW5rIix2VihLKSksS1sxXS5Ub29sdGlwJiYkaShTLCJITGlua1Rvb2x0aXAiLGJWKEspKX1kZWxldGUgT1siIWxpbmtzIl19KEssb2UpLCRpKEssIkNvZGVOYW1lIixzbChPdCkpLFBlJiZmdW5jdGlvbiB6eihTLE8pe3ZhciBrPXZuKDE5KTtrLndyaXRl'@; put 'X3NoaWZ0KDQsMjE1MSksay53cml0ZV9zaGlmdCg0LDApLGsud3JpdGVfc2hpZnQoNCwwKSxrLndyaXRlX3NoaWZ0KDIsMyksay53cml0ZV9zaGlmdCgxLDEpLGsud3JpdGVfc2hpZnQoNCwwKSwkaShTLCJGZWF0SGRyIixrKSwoaz12bigzOSkpLndyaXRlX3NoaWZ0KDQsMjE1Miksay53cml0'@; put 'ZV9zaGlmdCg0LDApLGsud3JpdGVfc2hpZnQoNCwwKSxrLndyaXRlX3NoaWZ0KDIsMyksay53cml0ZV9zaGlmdCgxLDApLGsud3JpdGVfc2hpZnQoNCwwKSxrLndyaXRlX3NoaWZ0KDIsMSksay53cml0ZV9zaGlmdCg0LDQpLGsud3JpdGVfc2hpZnQoMiwwKSxmdShzcyhPWyIhcmVmIl18fCJB'@; put 'MSIpLGspLGsud3JpdGVfc2hpZnQoNCw0KSwkaShTLCJGZWF0IixrKX0oSyxvZSksJGkoSywiRU9GIiksSy5lbmQoKX1mdW5jdGlvbiBaeihTLE8sayl7dmFyIEs9dmkoKSxlZT0oU3x8e30pLldvcmtib29rfHx7fSxvZT1lZS5TaGVldHN8fFtdLG1lPWVlLldCUHJvcHN8fHt9LHBlPTg9PWsu'@; put 'YmlmZixiZT01PT1rLmJpZmY7JGkoSywyMDU3LHg0KDAsNSxrKSksInhsYSI9PWsuYm9va1R5cGUmJiRpKEssIkFkZGluIiksJGkoSywiSW50ZXJmYWNlSGRyIixwZT9uMCgxMjAwKTpudWxsKSwkaShLLCJNbXMiLGZ1bmN0aW9uIEp3KFMsTyl7T3x8KE89dm4oUykpO2Zvcih2YXIgaz0wO2s8'@; put 'UzsrK2spTy53cml0ZV9zaGlmdCgxLDApO3JldHVybiBPfSgyKSksYmUmJiRpKEssIlRvb2xiYXJIZHIiKSxiZSYmJGkoSywiVG9vbGJhckVuZCIpLCRpKEssIkludGVyZmFjZUVuZCIpLCRpKEssIldyaXRlQWNjZXNzIixmdW5jdGlvbiBVNihTLE8pe3ZhciBrPSFPfHw4PT1PLmJpZmYsSz12'@; put 'bihrPzExMjo1NCk7Zm9yKEsud3JpdGVfc2hpZnQoOD09Ty5iaWZmPzI6MSw3KSxrJiZLLndyaXRlX3NoaWZ0KDEsMCksSy53cml0ZV9zaGlmdCg0LDg1OTAwNzA1OSksSy53cml0ZV9zaGlmdCg0LDU0NTg1NDh8KGs/MDo1MzY4NzA5MTIpKTtLLmw8Sy5sZW5ndGg7KUsud3JpdGVfc2hpZnQo'@; put 'MSxrPzA6MzIpO3JldHVybiBLfSgwLGspKSwkaShLLCJDb2RlUGFnZSIsbjAocGU/MTIwMDoxMjUyKSkscGUmJiRpKEssIkRTRiIsbjAoMCkpLHBlJiYkaShLLCJFeGNlbDlGaWxlIiksJGkoSywiUlJUYWJJZCIsZnVuY3Rpb24gd1YoUyl7Zm9yKHZhciBPPXZuKDIqUyksaz0wO2s8UzsrK2sp'@; put 'Ty53cml0ZV9zaGlmdCgyLGsrMSk7cmV0dXJuIE99KFMuU2hlZXROYW1lcy5sZW5ndGgpKSxwZSYmUy52YmFyYXcmJiRpKEssIk9iUHJvaiIpLHBlJiZTLnZiYXJhdyYmJGkoSywiQ29kZU5hbWUiLHNsKG1lLkNvZGVOYW1lfHwiVGhpc1dvcmtib29rIikpLCRpKEssIkJ1aWx0SW5Gbkdyb3Vw'@; put 'Q291bnQiLG4wKDE3KSksJGkoSywiV2luUHJvdGVjdCIsSmMoITEpKSwkaShLLCJQcm90ZWN0IixKYyghMSkpLCRpKEssIlBhc3N3b3JkIixuMCgwKSkscGUmJiRpKEssIlByb3Q0UmV2IixKYyghMSkpLHBlJiYkaShLLCJQcm90NFJldlBhc3MiLG4wKDApKSwkaShLLCJXaW5kb3cxIixmdW5j'@; put 'dGlvbiBhbmUoKXt2YXIgUz12bigxOCk7cmV0dXJuIFMud3JpdGVfc2hpZnQoMiwwKSxTLndyaXRlX3NoaWZ0KDIsMCksUy53cml0ZV9zaGlmdCgyLDI5MjgwKSxTLndyaXRlX3NoaWZ0KDIsMTc2MDApLFMud3JpdGVfc2hpZnQoMiw1NiksUy53cml0ZV9zaGlmdCgyLDApLFMud3JpdGVfc2hp'@; put 'ZnQoMiwwKSxTLndyaXRlX3NoaWZ0KDIsMSksUy53cml0ZV9zaGlmdCgyLDUwMCksU30oKSksJGkoSywiQmFja3VwIixKYyghMSkpLCRpKEssIkhpZGVPYmoiLG4wKDApKSwkaShLLCJEYXRlMTkwNCIsSmMoInRydWUiPT1mdW5jdGlvbiBqUyhTKXtyZXR1cm4gUy5Xb3JrYm9vayYmUy5Xb3Jr'@; put 'Ym9vay5XQlByb3BzJiZlaShTLldvcmtib29rLldCUHJvcHMuZGF0ZTE5MDQpPyJ0cnVlIjoiZmFsc2UifShTKSkpLCRpKEssIkNhbGNQcmVjaXNpb24iLEpjKCEwKSkscGUmJiRpKEssIlJlZnJlc2hBbGwiLEpjKCExKSksJGkoSywiQm9va0Jvb2wiLG4wKDApKSx0MD1JNihbMCwxNjc3NzIx'@; put 'NSwxNjcxMTY4MCw2NTI4MCwyNTUsMTY3NzY5NjAsMTY3MTE5MzUsNjU1MzUsMCwxNjc3NzIxNSwxNjcxMTY4MCw2NTI4MCwyNTUsMTY3NzY5NjAsMTY3MTE5MzUsNjU1MzVdKSxmdW5jdGlvbiBhcmUoUyxPLGspeygoKE98fHt9KS5TdHlsZXN8fHt9KS5Gb250c3x8W3tzejoxMixjb2xvcjp7'@; put 'dGhlbWU6MX0sbmFtZToiQXJpYWwiLGZhbWlseToyLHNjaGVtZToibWlub3IifV0pLmZvckVhY2goZnVuY3Rpb24oSyl7JGkoUywiRm9udCIsZnVuY3Rpb24gc1YoUyxPKXt2YXIgaz1TLm5hbWV8fCJBcmlhbCIsSz1PJiY1PT1PLmJpZmYsb2U9dm4oSz8xNStrLmxlbmd0aDoxNisyKmsubGVu'@; put 'Z3RoKTtvZS53cml0ZV9zaGlmdCgyLDIwKihTLnN6fHwxMikpO3ZhciBtZT0wO3JldHVybiBTLmJvbGQmJihtZXw9MSksUy5pdGFsaWMmJihtZXw9MiksUy5zdHJpa2UmJihtZXw9OCksUy5zaGFkb3cmJihtZXw9MzIpLG9lLndyaXRlX3NoaWZ0KDEsbWUpLG9lLndyaXRlX3NoaWZ0KDEsMCks'@; put 'b2Uud3JpdGVfc2hpZnQoMixTLmNvbG9yP1A0KFMuY29sb3IsNjQpOjY0KSxvZS53cml0ZV9zaGlmdCgyLFMuYm9sZD83MDA6NDAwKSxvZS53cml0ZV9zaGlmdCgyLCJzdXBlciI9PVMudmFsaWduPzE6InN1YiI9PVMudmFsaWduPzI6MCksb2Uud3JpdGVfc2hpZnQoMSxTLnVuZGVybGluZXx8'@; put 'MCksb2Uud3JpdGVfc2hpZnQoMSxvZS5mYW1pbHl8fDApLG9lLndyaXRlX3NoaWZ0KDEsb2UuY2hhcnNldHx8MCksb2Uud3JpdGVfc2hpZnQoMSwwKSxvZS53cml0ZV9zaGlmdCgxLGsubGVuZ3RoKSxLfHxvZS53cml0ZV9zaGlmdCgxLDEpLG9lLndyaXRlX3NoaWZ0KChLPzE6Mikqay5sZW5n'@; put 'dGgsayxLPyJzYmNzIjoidXRmMTZsZSIpLG9lfShLLGspKX0pfShLLFMsayksZnVuY3Rpb24gc3JlKFMsTyxrKXtPJiZbWzUsOF0sWzIzLDI2XSxbNDEsNDRdLFs1MCwzOTJdXS5mb3JFYWNoKGZ1bmN0aW9uKEspe2Zvcih2YXIgZWU9S1swXTtlZTw9S1sxXTsrK2VlKW51bGwhPU9bZWVdJiYk'@; put 'aShTLCJGb3JtYXQiLGNWKGVlLE9bZWVdLGspKX0pfShLLFMuU1NGLGspLGZ1bmN0aW9uIFo1KFMsTyl7Zm9yKHZhciBrPTA7azwxNjsrK2spJGkoUywiWEYiLG01KHtudW1GbXRJZDowLHN0eWxlOiEwfSwwLE8pKTtPLmNlbGxYZnMuZm9yRWFjaChmdW5jdGlvbihLKXskaShTLCJYRiIsbTUo'@; put 'SywwLE8pKX0pfShLLGspLCRpKEssIlBhbGV0dGUiLGZ1bmN0aW9uIEN0KFMpe3ZhciBPPXZuKDIyNik7Ty53cml0ZV9zaGlmdCgyLDU2KTtmb3IodmFyIGs9MDtrPDU2Oysrayl7dmFyIEs9U1trKzhdfHx2NFtrKzhdO08ud3JpdGVfc2hpZnQoMSxLWzBdKSxPLndyaXRlX3NoaWZ0KDEsS1sx'@; put 'XSksTy53cml0ZV9zaGlmdCgxLEtbMl0pLE8ud3JpdGVfc2hpZnQoMSwwKX1yZXR1cm4gT30odDApKSx0MD1KdCh2NCkscGUmJiRpKEssIlVzZXNFTEZzIixKYyghMSkpO3ZhciBWZT1LLmVuZCgpLFllPXZpKCk7cGUmJiRpKFllLCJDb3VudHJ5IixmdW5jdGlvbiBjaShTKXtyZXR1cm4gU3x8'@; put 'KFM9dm4oNCkpLFMud3JpdGVfc2hpZnQoMiwxKSxTLndyaXRlX3NoaWZ0KDIsMSksU30oKSkscGUmJmsuU3RyaW5ncyYmZnVuY3Rpb24gUW5lKFMsTyxrLEspe3ZhciBlZT1LfHwoa3x8W10pLmxlbmd0aHx8MDtpZihlZTw9ODIyNClyZXR1cm4gJGkoUyxPLGssZWUpO3ZhciBvZT0rT3x8K3RN'@; put 'W09dO2lmKCFpc05hTihvZSkpe2Zvcih2YXIgbWU9ay5wYXJ0c3x8W10scGU9MCxiZT0wLFBlPTA7UGUrKG1lW3BlXXx8ODIyNCk8PTgyMjQ7KVBlKz1tZVtwZV18fDgyMjQscGUrKzt2YXIgVmU9Uy5uZXh0KDQpO2ZvcihWZS53cml0ZV9zaGlmdCgyLG9lKSxWZS53cml0ZV9zaGlmdCgyLFBl'@; put 'KSxTLnB1c2goay5zbGljZShiZSxiZStQZSkpLGJlKz1QZTtiZTxlZTspe2ZvcigoVmU9Uy5uZXh0KDQpKS53cml0ZV9zaGlmdCgyLDYwKSxQZT0wO1BlKyhtZVtwZV18fDgyMjQpPD04MjI0OylQZSs9bWVbcGVdfHw4MjI0LHBlKys7VmUud3JpdGVfc2hpZnQoMixQZSksUy5wdXNoKGsuc2xp'@; put 'Y2UoYmUsYmUrUGUpKSxiZSs9UGV9fX0oWWUsIlNTVCIsZnVuY3Rpb24gZ28oUyxPKXt2YXIgaz12big4KTtrLndyaXRlX3NoaWZ0KDQsUy5Db3VudCksay53cml0ZV9zaGlmdCg0LFMuVW5pcXVlKTtmb3IodmFyIEs9W10sZWU9MDtlZTxTLmxlbmd0aDsrK2VlKUtbZWVdPUZjKFNbZWVdLE8p'@; put 'O3ZhciBvZT1VKFtrXS5jb25jYXQoSykpO3JldHVybiBvZS5wYXJ0cz1bay5sZW5ndGhdLmNvbmNhdChLLm1hcChmdW5jdGlvbihtZSl7cmV0dXJuIG1lLmxlbmd0aH0pKSxvZX0oay5TdHJpbmdzLGspKSwkaShZZSwiRU9GIik7dmFyIGV0PVllLmVuZCgpLGN0PXZpKCksVHQ9MCxpdD0wO2Zv'@; put 'cihpdD0wO2l0PFMuU2hlZXROYW1lcy5sZW5ndGg7KytpdClUdCs9KHBlPzEyOjExKSsocGU/MjoxKSpTLlNoZWV0TmFtZXNbaXRdLmxlbmd0aDt2YXIgYnQ9VmUubGVuZ3RoK1R0K2V0Lmxlbmd0aDtmb3IoaXQ9MDtpdDxTLlNoZWV0TmFtZXMubGVuZ3RoOysraXQpJGkoY3QsIkJvdW5kU2hl'@; put 'ZXQ4Iix1Mih7cG9zOmJ0LGhzOihvZVtpdF18fHt9KS5IaWRkZW58fDAsZHQ6MCxuYW1lOlMuU2hlZXROYW1lc1tpdF19LGspKSxidCs9T1tpdF0ubGVuZ3RoO3ZhciBEdD1jdC5lbmQoKTtpZihUdCE9RHQubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiQlM4ICIrVHQrIiAhPSAiK0R0Lmxlbmd0'@; put 'aCk7dmFyIE90PVtdO3JldHVybiBWZS5sZW5ndGgmJk90LnB1c2goVmUpLER0Lmxlbmd0aCYmT3QucHVzaChEdCksZXQubGVuZ3RoJiZPdC5wdXNoKGV0KSxtMChbT3RdKX1mdW5jdGlvbiBESShTLE8pe3ZhciBrPU98fHt9O3N3aXRjaChrLmJpZmZ8fDIpe2Nhc2UgODpjYXNlIDU6cmV0dXJu'@; put 'IGZ1bmN0aW9uIGxyZShTLE8pe3ZhciBrPU98fHt9LEs9W107RmYoTyYmTy5QUEl8fDk2KSxTJiYhUy5TU0YmJihTLlNTRj1BLmdldF90YWJsZSgpKSxTJiZTLlNTRiYmKGFlKEEpLEEubG9hZF90YWJsZShTLlNTRiksay5yZXZzc2Y9RGUoUy5TU0YpLGsucmV2c3NmW1MuU1NGWzY1NTM1XV09'@; put 'MCxrLnNzZj1TLlNTRiksUy5TdHlsZXM9e0ZvbnRzOmsuRm9udHM9W3tzejoxMixjb2xvcjp7dGhlbWU6MSxyZ2I6IjAwMDAwMCJ9LG5hbWU6IkNhbGlicmkiLGZhbWlseToyLHNjaGVtZToibWlub3IifV0sRmlsbHM6ay5GaWxscz1be3BhdHRlcm5UeXBlOiJub25lIn0se3BhdHRlcm5UeXBl'@; put 'OiJncmF5MTI1In1dLEJvcmRlcnM6ay5Cb3JkZXJzPVt7fV0sRFhGOmsuRFhGPVMuU3R5bGVzJiZTLlN0eWxlcy5EWEZ8fFtdfSxJNChrLkZvbnRzWzBdKSxrLlN0cmluZ3M9W10say5TdHJpbmdzLkNvdW50PTAsay5TdHJpbmdzLlVuaXF1ZT0wLHEzP2sucmV2U3RyaW5ncz1uZXcgTWFwOihr'@; put 'LnJldlN0cmluZ3M9e30say5yZXZTdHJpbmdzLmZvbz1bXSxkZWxldGUgay5yZXZTdHJpbmdzLmZvbyksQmYoayksay5jZWxsWGZzPVtdLGsuY2VsbFN0eWxlWGZzPVt7bmFtZToiTm9ybWFsIn1dLHMwKGsuY2VsbFhmcyxrLmNlbGxTdHlsZVhmcyx7fSx7cmV2c3NmOntHZW5lcmFsOjB9fSks'@; put 'Uy5Qcm9wc3x8KFMuUHJvcHM9e30pO2Zvcih2YXIgZWU9MDtlZTxTLlNoZWV0TmFtZXMubGVuZ3RoOysrZWUpS1tLLmxlbmd0aF09a0koZWUsayxTKTtyZXR1cm4gSy51bnNoaWZ0KFp6KFMsSyxrKSksbTAoW0tdKX0oUyxPKTtjYXNlIDQ6Y2FzZSAzOmNhc2UgMjpyZXR1cm4gZnVuY3Rpb24g'@; put 'aXJlKFMsTyl7dmFyIGs9T3x8e307bnVsbCE9c2UmJm51bGw9PWsuZGVuc2UmJihrLmRlbnNlPXNlKTtmb3IodmFyIEs9dmkoKSxlZT0wLG9lPTA7b2U8Uy5TaGVldE5hbWVzLmxlbmd0aDsrK29lKVMuU2hlZXROYW1lc1tvZV09PWsuc2hlZXQmJihlZT1vZSk7aWYoMD09ZWUmJmsuc2hlZXQm'@; put 'JlMuU2hlZXROYW1lc1swXSE9ay5zaGVldCl0aHJvdyBuZXcgRXJyb3IoIlNoZWV0IG5vdCBmb3VuZDogIitrLnNoZWV0KTtyZXR1cm4gJGkoSyw0PT1rLmJpZmY/MTAzMzozPT1rLmJpZmY/NTIxOjkseDQoMCwxNixrKSksZnVuY3Rpb24gcnJlKFMsTyxrLEspe3ZhciBtZSxlZT1BcnJheS5p'@; put 'c0FycmF5KE8pLG9lPXNzKE9bIiFyZWYiXXx8IkExIikscGU9IiIsYmU9W107aWYob2UuZS5jPjI1NXx8b2UuZS5yPjE2MzgzKXtpZihLLldURil0aHJvdyBuZXcgRXJyb3IoIlJhbmdlICIrKE9bIiFyZWYiXXx8IkExIikrIiBleGNlZWRzIGZvcm1hdCBsaW1pdCBBMTpJVjE2Mzg0Iik7b2Uu'@; put 'ZS5jPU1hdGgubWluKG9lLmUuYywyNTUpLG9lLmUucj1NYXRoLm1pbihvZS5lLmMsMTYzODMpLG1lPXJhKG9lKX1mb3IodmFyIFBlPW9lLnMucjtQZTw9b2UuZS5yOysrUGUpe3BlPWppKFBlKTtmb3IodmFyIFZlPW9lLnMuYztWZTw9b2UuZS5jOysrVmUpe1BlPT09b2Uucy5yJiYoYmVbVmVd'@; put 'PWthKFZlKSksbWU9YmVbVmVdK3BlO3ZhciBZZT1lZT8oT1tQZV18fFtdKVtWZV06T1ttZV07WWUmJm5yZShTLFllLFBlLFZlKX19fShLLFMuU2hlZXRzW1MuU2hlZXROYW1lc1tlZV1dLDAsayksJGkoSywxMCksSy5lbmQoKX0oUyxPKX10aHJvdyBuZXcgRXJyb3IoImludmFsaWQgdHlwZSAi'@; put 'K2suYm9va1R5cGUrIiBmb3IgQklGRiIpfXZhciB2ZD1mdW5jdGlvbigpe3ZhciBTPXtjZW50ZXJDb250aW51b3VzOiJjZW50ZXIiLGp1c3RpZnk6ImxlZnQifTtmdW5jdGlvbiBrKFllLGV0KXt2YXIgY3Q9ZXR8fHt9O251bGwhPXNlJiZudWxsPT1jdC5kZW5zZSYmKGN0LmRlbnNlPXNlKTt2'@; put 'YXIgVHQ9Y3QuZGVuc2U/W106e30saXQ9KFllPVllLnJlcGxhY2UoLzwhLS0uKj8tLT4vZywiIikpLm1hdGNoKC88dGFibGUvaSk7aWYoIWl0KXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBIVE1MOiBjb3VsZCBub3QgZmluZCA8dGFibGU+Iik7dmFyIGJ0PVllLm1hdGNoKC88XC90YWJsZS9p'@; put 'KSxCdD1pdC5pbmRleCxEdD1idCYmYnQuaW5kZXh8fFllLmxlbmd0aCxPdD1mdW5jdGlvbiBmdChTLE8sayl7aWYoZG58fCJzdHJpbmciPT10eXBlb2YgTylyZXR1cm4gUy5zcGxpdChPKTtmb3IodmFyIEs9Uy5zcGxpdChPKSxlZT1bS1swXV0sb2U9MTtvZTxLLmxlbmd0aDsrK29lKWVlLnB1'@; put 'c2goayksZWUucHVzaChLW29lXSk7cmV0dXJuIGVlfShZZS5zbGljZShCdCxEdCksLyg6Pzx0cltePl0qPikvaSwiPHRyPiIpLEt0PS0xLFRuPTAsc3I9MCxDbj0wLHVyPXtzOntyOjFlNyxjOjFlN30sZTp7cjowLGM6MH19LGVyPVtdO2ZvcihCdD0wO0J0PE90Lmxlbmd0aDsrK0J0KXt2YXIg'@; put 'am49T3RbQnRdLnRyaW0oKSxwcj1qbi5zbGljZSgwLDMpLnRvTG93ZXJDYXNlKCk7aWYoIjx0ciIhPXByKXtpZigiPHRkIj09cHJ8fCI8dGgiPT1wcil7dmFyIGJyPWpuLnNwbGl0KC88XC90W2RoXT4vaSk7Zm9yKER0PTA7RHQ8YnIubGVuZ3RoOysrRHQpe3ZhciBycj1icltEdF0udHJpbSgp'@; put 'O2lmKHJyLm1hdGNoKC88dFtkaF0vaSkpe2Zvcih2YXIgU2k9cnIsUGk9MDsiPCI9PVNpLmNoYXJBdCgwKSYmKFBpPVNpLmluZGV4T2YoIj4iKSk+LTE7KVNpPVNpLnNsaWNlKFBpKzEpO2Zvcih2YXIgbmE9MDtuYTxlci5sZW5ndGg7KytuYSl7dmFyIGxhPWVyW25hXTtsYS5zLmM9PVRuJiZs'@; put 'YS5zLnI8S3QmJkt0PD1sYS5lLnImJihUbj1sYS5lLmMrMSxuYT0tMSl9dmFyIFJpPXlyKHJyLnNsaWNlKDAscnIuaW5kZXhPZigiPiIpKSk7Q249UmkuY29sc3Bhbj8rUmkuY29sc3BhbjoxLCgoc3I9K1JpLnJvd3NwYW4pPjF8fENuPjEpJiZlci5wdXNoKHtzOntyOkt0LGM6VG59LGU6e3I6'@; put 'S3QrKHNyfHwxKS0xLGM6VG4rQ24tMX19KTt2YXIgUnI9UmkudHx8UmlbImRhdGEtdCJdfHwiIjtpZighU2kubGVuZ3RoKXtUbis9Q247Y29udGludWV9aWYoU2k9b3IoU2kpLHVyLnMucj5LdCYmKHVyLnMucj1LdCksdXIuZS5yPEt0JiYodXIuZS5yPUt0KSx1ci5zLmM+VG4mJih1ci5zLmM9'@; put 'VG4pLHVyLmUuYzxUbiYmKHVyLmUuYz1UbiksU2kubGVuZ3RoKXt2YXIgQm49e3Q6InMiLHY6U2l9O2N0LnJhd3x8IVNpLnRyaW0oKS5sZW5ndGh8fCJzIj09UnJ8fChCbj1JaShTaSxjdCkpLGN0LmRlbnNlPyhUdFtLdF18fChUdFtLdF09W10pLFR0W0t0XVtUbl09Qm4pOlR0W3FpKHtyOkt0'@; put 'LGM6VG59KV09Qm4sVG4rPUNufX19fX1lbHNle2lmKCsrS3QsY3Quc2hlZXRSb3dzJiZjdC5zaGVldFJvd3M8PUt0KXstLUt0O2JyZWFrfVRuPTB9fXJldHVybiBUdFsiIXJlZiJdPXJhKHVyKSxlci5sZW5ndGgmJihUdFsiIW1lcmdlcyJdPWVyKSxUdH1mdW5jdGlvbiBlZShZZSxldCxjdCxU'@; put 'dCxpdCxidCl7dmFyIE90LEJ0PVllWyIhbWVyZ2VzIl18fFtdLER0PVtdLEt0PXtzdHlsZTpbXX0sVG49ITE7ZnVuY3Rpb24gc3IoaWEsT3MsUGEpe3ZhciB1cz0iIixxYT0wO2lmKE90W2lhXSlzd2l0Y2goT3RbaWFdLnN0eWxlKXtjYXNlInRoaW4iOmNhc2UiaGFpciI6dXM9InNvbGlkIixx'@; put 'YT0xO2JyZWFrO2Nhc2UibWVkaXVtIjp1cz0ic29saWQiLHFhPTI7YnJlYWs7Y2FzZSJ0aGljayI6dXM9InNvbGlkIixxYT0zO2JyZWFrO2Nhc2UiZG91YmxlIjp1cz0iZG91YmxlIixxYT0zO2JyZWFrO2Nhc2UiZG90dGVkIjpjYXNlImRhc2hEb3REb3QiOnVzPSJkb3R0ZWQiLHFhPTE7YnJl'@; put 'YWs7Y2FzZSJtZWRpdW1EYXNoRG90RG90Ijp1cz0iZG90dGVkIixxYT0yO2JyZWFrO2Nhc2UiZGFzaGVkIjpjYXNlImRhc2hEb3QiOmNhc2Uic2xhbnREYXNoRG90Ijp1cz0iZGFzaGVkIixxYT0xO2JyZWFrO2Nhc2UibWVkaXVtRGFzaGVkIjpjYXNlIm1lZGl1bURhc2hEb3QiOnVzPSJkYXNo'@; put 'ZWQiLHFhPTJ9ZTppZigwPT1xYSl7c3dpdGNoKGlhKXtjYXNlInRvcCI6LS1PczticmVhaztjYXNlImxlZnQiOi0tUGE7YnJlYWs7Y2FzZSJib3R0b20iOisrT3M7YnJlYWs7Y2FzZSJyaWdodCI6KytQYX12YXIgVmk9T3M+PTAmJlBhPj0wP1R0LmRlbnNlPyhZZVtPc118fFtdKVtQYV06WWVb'@; put 'cWkoe3I6T3MsYzpQYX0pXTpudWxsO2lmKFZpKXtpZihWaS5zJiZWaS5zW3t0b3A6ImJvdHRvbSIsYm90dG9tOiJ0b3AiLGxlZnQ6InJpZ2h0IixyaWdodDoibGVmdCJ9W2lhXV0pYnJlYWsgZTtWaS5zJiZWaS5zLmZnQ29sb3ImJihxYT0xKX1PdC5mZ0NvbG9yJiYocWE9MSksIVZpJiZUbiYm'@; put 'MD09cWEmJihxYT0xKX0wIT1xYSYmcWEmJihLdC5zdHlsZS5wdXNoKCJib3JkZXItIitpYSsiLXN0eWxlOiIrKHVzfHwidHJhbnNwYXJlbnQiKSksS3Quc3R5bGUucHVzaCgiYm9yZGVyLSIraWErIi13aWR0aDoiK3FhKyJweCIpLCIiPT11cz9LdC5zdHlsZS5wdXNoKCJib3JkZXItIitpYSsi'@; put 'LWNvbG9yOiB0cmFuc3BhcmVudCIpOk90W2lhXS5jb2xvciYmT3RbaWFdLmNvbG9yLnJnYiYmS3Quc3R5bGUucHVzaCgiYm9yZGVyLSIraWErIi1jb2xvcjojIitMMChPdFtpYV0uY29sb3IucmdiKSkpfWZvcih2YXIgQ249ZXQucy5jO0NuPD1ldC5lLmM7KytDbil7Zm9yKHZhciB1cj0wLGVy'@; put 'PTAsam49MDtqbjxCdC5sZW5ndGg7KytqbilpZighKEJ0W2puXS5zLnI+Y3R8fEJ0W2puXS5zLmM+Q258fEJ0W2puXS5lLnI8Y3R8fEJ0W2puXS5lLmM8Q24pKXtpZihCdFtqbl0ucy5yPGN0fHxCdFtqbl0ucy5jPENuKXt1cj0tMTticmVha311cj1CdFtqbl0uZS5yLUJ0W2puXS5zLnIrMSxl'@; put 'cj1CdFtqbl0uZS5jLUJ0W2puXS5zLmMrMTticmVha31pZighKHVyPDApKXt2YXIgcHI9cWkoe3I6Y3QsYzpDbn0pLGJyPVR0LmRlbnNlPyhZZVtjdF18fFtdKVtDbl06WWVbcHJdO2JyP1RuPSExOihUbj0hMCxicj17dDoieiIsczp7fX0pO3ZhciBycj0ieiI9PWJyLnQ/IiI6YnIuaHx8b2Eo'@; put 'YnIud3x8KHlsKGJyKSxici53KXx8IiIpO2lmKEt0PXtzdHlsZTpbXX0sT3Q9YnIucyl7dmFyIFNpPTE7aWYoKCJzdXBlciI9PU90LnZhbGlnbnx8InN1YiI9PU90LnZhbGlnbikmJihTaT0uODMscnI9SHIoInNwYW4iLHJyLHtzdHlsZToidmVydGljYWwtYWxpZ246ICIrT3QudmFsaWdufSkp'@; put 'LEt0LnN0eWxlLnB1c2goImZvbnQtd2VpZ2h0OiIrKE90LmJvbGQ/NzAwOjQwMCkpLE90Lml0YWxpYyYmS3Quc3R5bGUucHVzaCgiZm9udC1zdHlsZTogaXRhbGljIiksKE90LnVuZGVybGluZXx8T3Quc3RyaWtlKSYmS3Quc3R5bGUucHVzaCgidGV4dC1kZWNvcmF0aW9uOiIrKE90LnVuZGVy'@; put 'bGluZT8iIHVuZGVybGluZSI6IiIpKyhPdC5zdHJpa2U/IiBsaW5lLXRocm91Z2giOiIiKSksT3QuY29sb3ImJk90LmNvbG9yLnJnYiYmS3Quc3R5bGUucHVzaCgiY29sb3I6ICMiK0wwKE90LmNvbG9yLnJnYikpLE90Lm5hbWUmJkt0LnN0eWxlLnB1c2goImZvbnQtZmFtaWx5OiIrT3QubmFt'@; put 'ZSsiLCBzYW5zLXNlcmlmIiksT3Quc3omJkt0LnN0eWxlLnB1c2goImZvbnQtc2l6ZToiK090LnN6KlNpKyJwdCIpLG51bGwhPT1PdC5wYXR0ZXJuVHlwZSYmT3QuZmdDb2xvciYmT3QuZmdDb2xvci5yZ2ImJkt0LnN0eWxlLnB1c2goImJhY2tncm91bmQtY29sb3I6ICMiK0wwKE90LmZnQ29s'@; put 'b3IucmdiKSksWyJ0b3AiLCJsZWZ0Il0uZm9yRWFjaChmdW5jdGlvbihpYSl7c3IoaWEsY3QsQ24pfSksdXI+MXx8ZXI+MSl7dmFyIFBpPXFpKHtyOmN0K3VyLTEsYzpDbitlci0xfSksbmE9VHQuZGVuc2U/KFllW2N0K3VyLTFdfHxbXSlbQ24rZXItMV06WWVbUGldLFJpPU90O090PW5hJiZu'@; put 'YS5zfHxPdCxbImJvdHRvbSIsInJpZ2h0Il0uZm9yRWFjaChmdW5jdGlvbihpYSl7c3IoaWEsY3QsQ24pfSksT3Q9Uml9ZWxzZVsiYm90dG9tIiwicmlnaHQiXS5mb3JFYWNoKGZ1bmN0aW9uKGlhKXtzcihpYSxjdCxDbil9KTtpZihPdC5hbGlnbm1lbnQpe2lmKE90LmFsaWdubWVudC5ob3Jp'@; put 'em9udGFsP0t0LnN0eWxlLnB1c2goInRleHQtYWxpZ246ICIrKFNbT3QuYWxpZ25tZW50Lmhvcml6b250YWxdfHxPdC5hbGlnbm1lbnQuaG9yaXpvbnRhbCkpOiJuIj09YnIudCYmS3Quc3R5bGUucHVzaCgidGV4dC1hbGlnbjogcmlnaHQiKSxPdC5hbGlnbm1lbnQudmVydGljYWwpe3ZhciBS'@; put 'cj1PdC5hbGlnbm1lbnQudmVydGljYWw7S3Quc3R5bGUucHVzaCgidmVydGljYWwtYWxpZ246ICIrKCJjZW50ZXIiPT1Scj8ibWlkZGxlIjpScikpfWlmKE90LmFsaWdubWVudC53cmFwVGV4dClLdC5zdHlsZS5wdXNoKCJ3aGl0ZS1zcGFjZTogcHJlLXdyYXAiKTtlbHNle3ZhciBCbj1UdC5k'@; put 'ZW5zZT8oWWVbY3RdfHxbXSlbQ24rMV06WWVbcWkoe3I6Y3QsYzpDbisxfSldO0JuJiYieiIhPUJuLnQmJkt0LnN0eWxlLnB1c2goIndoaXRlLXNwYWNlOiBwcmUtd3JhcCIpfX1lbHNlIm4iPT1ici50JiZLdC5zdHlsZS5wdXNoKCJ0ZXh0LWFsaWduOiByaWdodCIpO3ZhciBqcj0oKFllWyIh'@; put 'Y29scyJdfHxbXSlbQ25dfHx7fSkud3B4O251bGw9PWpyJiYoanI9KChZZVsiIXNoZWV0Rm9ybWF0Il18fHt9KS5jb2x8fHt9KS53cHgpfXZhciB3cj0wO2lmKGVyPD0xJiZ1cjw9MSYmKHdyPSgoWWVbIiFjb2xzIl18fFtdKVtDbl18fHt9KS53cHgpJiZLdC5zdHlsZS5wdXNoKCJ3aWR0aDog'@; put 'Iit3cisicHgiKSxZZVsiIWNvbmRmbXQiXSYmb2UoYnIsY3QsQ24sWWVbIiFjb25kZm10Il0sS3Quc3R5bGUsWWUpLDA9PUt0LnN0eWxlLmxlbmd0aD9kZWxldGUgS3Quc3R5bGU6S3Quc3R5bGU9S3Quc3R5bGUuam9pbigiOyIpLFR0LmNzcyl7dmFyIEhuPWl0LmluZGV4T2YoS3Quc3R5bGUp'@; put 'Oy0xPT1IbiYmKGl0LnB1c2goS3Quc3R5bGUpLEhuPWl0Lmxlbmd0aC0xKSxkZWxldGUgS3Quc3R5bGUsS3QuY2xhc3M9InNqcyIrKGJ0fHwiIikrIi0iK0hufXVyPjEmJihLdC5yb3dzcGFuPXVyKSxlcj4xJiYoS3QuY29sc3Bhbj1lciksVHQuZWRpdGFibGU/cnI9JzxzcGFuIGNvbnRlbnRl'@; put 'ZGl0YWJsZT0idHJ1ZSI+JytycisiPC9zcGFuPiI6YnImJihLdFsiZGF0YS10Il09YnImJmJyLnR8fCJ6IixudWxsIT1ici52JiYoS3RbImRhdGEtdiJdPWJyLnYpLG51bGwhPWJyLnomJihLdFsiZGF0YS16Il09YnIueikpLEt0LmlkPShUdC5pZHx8InNqcyIpKyItIitwcixEdC5wdXNoKEhy'@; put 'KCJ0ZCIscnIsS3QpKX19dmFyIFdpLHpyPXtzdHlsZTpbXX07KFdpPVllWyIhc2hlZXRGb3JtYXQiXSkmJldpLnJvdyYmKEh2KFdpLnJvdyksV2kucm93LmhweCYmKHpyLnN0eWxlLnB1c2goWyJoZWlnaHQiLFdpLnJvdy5ocHgrInB4Il0pLHpyLmhlaWdodD1NYXRoLnJvdW5kKFdpLnJvdy5o'@; put 'cHgpKSk7dmFyIENpPVllWyIhcm93cyJdO2lmKENpJiZDaVtjdF0pe3ZhciB3YT1DaVtjdF07d2EuaHB4JiYoenIuc3R5bGUucHVzaChbImhlaWdodCIsK3dhLmhweCsicHgiXSksenIuaGVpZ2h0PU1hdGgucm91bmQod2EuaHB4KSksd2EuaGlkZGVuJiZ6ci5zdHlsZS5wdXNoKFsiZGlzcGxh'@; put 'eSIsIm5vbmUiXSl9dmFyIG9zPVtdO3JldHVybiB6ci5zdHlsZT16ci5zdHlsZS5yZXZlcnNlKCkuZmlsdGVyKGZ1bmN0aW9uKGlhKXtyZXR1cm4hKG9zLmluZGV4T2YoaWFbMF0pPi0xfHwob3MucHVzaChpYVswXSksMCkpfSkubWFwKGZ1bmN0aW9uKGlhKXtyZXR1cm4gaWFbMF0rIjoiK2lh'@; put 'WzFdfSksMD09enIuc3R5bGUubGVuZ3RoP2RlbGV0ZSB6ci5zdHlsZTp6ci5zdHlsZT16ci5zdHlsZS5qb2luKCI7IiksSHIoInRyIixEdC5qb2luKCIiKSx6cil9ZnVuY3Rpb24gb2UoWWUsZXQsY3QsVHQsaXQsYnQpe1R0LmZvckVhY2goZnVuY3Rpb24oQnQpe2lmKEJ0Ll9yZWZ8fChCdC5f'@; put 'cmVmPSJzdHJpbmciPT10eXBlb2YgQnQucmVmP1NvKEJ0LnJlZik6QnQucmVmKSwhKEJ0Ll9yZWYucy5jPmN0fHxCdC5fcmVmLmUuYzxjdHx8QnQuX3JlZi5zLnI+ZXR8fEJ0Ll9yZWYuZS5yPGV0fHwic2NhbGUiIT09QnQudCkpe2lmKCJuIiE9WWUudClyZXR1cm47dmFyIER0O2lmKG51bGw9'@; put 'PUJ0Ll9taW4pe0J0Ll92YWx1ZXM9W107Zm9yKHZhciBPdD1CdC5fcmVmLnMucjtPdDw9QnQuX3JlZi5lLnI7KytPdClmb3IodmFyIEt0PUJ0Ll9yZWYucy5jO0t0PD1CdC5fcmVmLmUuYzsrK0t0KXt2YXIgVG49QXJyYXkuaXNBcnJheShidCk/KGJ0W090XXx8W10pW0t0XTpidFtxaSh7cjpP'@; put 'dCxjOkt0fSldO1RuJiYibiI9PVRuLnQmJkJ0Ll92YWx1ZXMucHVzaChUbi52KX1pZihCdC5fdmFsdWVzLnNvcnQoZnVuY3Rpb24oc3IsQ24pe3JldHVybiBzci1Dbn0pLEJ0Ll9taW49QnQuX3ZhbHVlc1swXSxCdC5fbWF4PUJ0Ll92YWx1ZXMuc2xpY2UoLTEpWzBdLEJ0Ll9iYW5kPUJ0Ll9t'@; put 'YXgtQnQuX21pbixCdC5jbWlkKXtzd2l0Y2goQnQuY21pZC50KXtjYXNlIm51bSI6QnQuX21pZD1CdC5jbWlkLnY7YnJlYWs7Y2FzZSJwZXJjZW50IjpCdC5fbWlkPUJ0LmNtaWQudi8xMDAqQnQuX2JhbmQrQnQuX21pbjticmVhaztjYXNlInBlcmNlbnRpbGUiOkJ0Ll9taWQ9ZnVuY3Rpb24g'@; put 'RnIoUyxPKXtpZigwPT1PKXJldHVybiBTWzBdO2lmKDEwMD09TylyZXR1cm4gU1tTLmxlbmd0aC0xXTt2YXIgSz1PLzEwMCooUy5sZW5ndGgtMSksZWU9Sy1NYXRoLmZsb29yKEspO3JldHVybiBlZSpTW01hdGguY2VpbChLKV0rKDEtZWUpKlNbTWF0aC5mbG9vcihLKV19KEJ0Ll92YWx1ZXMs'@; put 'QnQuY21pZC52KX1CdC5fYmFuZGg9QnQuX21heC1CdC5fbWlkLEJ0Ll9iYW5kbD1CdC5fbWlkLUJ0Ll9taW59fShEdD1CdC5jbWlkP1llLnY+PUJ0Ll9taWQ/eEMoQnQuY21pZC5jb2xvcixCdC5jbWF4LmNvbG9yLChZZS52LUJ0Ll9taWQpL0J0Ll9iYW5kaCk6eEMoQnQuY21pbi5jb2xvcixC'@; put 'dC5jbWlkLmNvbG9yLChZZS52LUJ0Ll9taW4pL0J0Ll9iYW5kbCk6eEMoQnQuY21pbi5jb2xvcixCdC5jbWF4LmNvbG9yLChZZS52LUJ0Ll9taW4pL0J0Ll9iYW5kKSkmJml0LnB1c2goImJhY2tncm91bmQtY29sb3I6ICMiK0R0KX19KX1mdW5jdGlvbiBtZShZZSxldCl7dmFyIGN0PXtzcGFu'@; put 'OmV0fHwxLHN0eWxlOiIifSxUdD1bXTtyZXR1cm4gWWUmJlllLndweCYmKGN0LndpZHRoPU1hdGgucm91bmQoNCpZZS53cHgvMyksVHQucHVzaCgid2lkdGg6IisoWWUud3B4fHwwKSsicHgiKSksVHQubGVuZ3RoPjAmJihjdC5zdHlsZT1UdC5qb2luKCI7IikpLEhyKCJjb2wiLG51bGwsY3Qp'@; put 'fWZ1bmN0aW9uIHBlKFllLGV0LGN0KXt2YXIgVHQ9e2JvcmRlcjowLGNlbGxwYWRkaW5nOjAsY2VsbHNwYWNpbmc6MCxzdHlsZTpbImJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZSIsInRhYmxlLWxheW91dDpmaXhlZCJdLmpvaW4oIjsiKX07Y3QmJmN0LmlkJiYoVHQuaWQ9Y3QuaWQpO3ZhciBp'@; put 'dD1ZZVsiIWNvbHMiXSxidD1ZZVsiIXNoZWV0Rm9ybWF0Il07aWYoWWUmJml0KXtmb3IodmFyIEJ0PTAsT3Q9ZXQucy5jO090PD1ldC5lLmM7KytPdCl7dmFyIEt0PWl0W090XTtCdCs9S3QmJkt0LndweD9LdC53cHg6YnQmJmJ0LmNvbCYmYnQuY29sLndweD9idC5jb2wud3B4OjUzfVR0LnN0'@; put 'eWxlKz0iO3dpZHRoOiIrQnQrInB4In12YXIgc3IsVG49WyI8dGFibGUiK0R1KFR0KSsiPiJdO2lmKFRuLnB1c2goIjxzdHlsZT50ZCB7IHBhZGRpbmctdG9wOiAxcHg7IHBhZGRpbmctcmlnaHQ6MXB4OyBwYWRkaW5nLWxlZnQ6MXB4OyB0ZXh0LWFsaWduOmdlbmVyYWw7IHZlcnRpY2FsLWFs'@; put 'aWduOmJvdHRvbTsgYm9yZGVyOjFweCBzb2xpZDsgYm9yZGVyLWNvbG9yOiIrKGN0JiZjdC5ncmlkY29sb3I/Y3QuZ3JpZGNvbG9yOlp0KFllWyIhZ3JpZGxpbmVzIl0pPyJ0cmFuc3BhcmVudCI6ImJsYWNrIikrIjsgd2hpdGUtc3BhY2U6bm93cmFwOyB0ZXh0LW92ZXJmbG93OmVsbGlwc2lz'@; put 'fTwvc3R5bGU+IiksVG4ucHVzaCgnPGNvbGdyb3VwIHNwYW49IicrKGV0LmUuYy1ldC5zLmMrMSkrJyI+JyksaXQpe2Zvcih2YXIgQ249ZXQucy5jO0NuPE1hdGgubWluKGl0Lmxlbmd0aCxldC5lLmMrMSk7KytDbikhKHNyPWl0W0NuXSkmJmJ0JiZidC5jb2wmJihzcj1idC5jb2wpLHNyfHwo'@; put 'c3I9e3dweDo1M30pLFRuLnB1c2gobWUoc3IsMSkpO2V0LmUuYy1ldC5zLmMrMT5pdC5sZW5ndGgmJihzcj1udWxsLGJ0JiZidC5jb2wmJihzcj1idC5jb2wpLHNyfHwoc3I9e3dweDo1M30pLFRuLnB1c2gobWUoc3IsZXQuZS5jLWV0LnMuYysxLWl0Lmxlbmd0aCkpKX1lbHNlIHNyPW51bGws'@; put 'YnQmJmJ0LmNvbCYmKHNyPWJ0LmNvbCksc3J8fChzcj17d3B4OjUzfSksVG4ucHVzaChtZShzcixldC5lLmMtZXQucy5jKzEpKTtyZXR1cm4gVG4ucHVzaCgiPC9jb2xncm91cD4iKSxUbi5qb2luKCIiKX12YXIgYmU9JzxodG1sPjxoZWFkPjxtZXRhIGNoYXJzZXQ9InV0Zi04Ii8+PHRpdGxl'@; put 'PlNoZWV0SlMgVGFibGUgRXhwb3J0PC90aXRsZT48L2hlYWQ+PGJvZHk+JyxQZT0iPC9ib2R5PjwvaHRtbD4iO3JldHVybnt0b193b3JrYm9vazpmdW5jdGlvbiBLKFllLGV0KXtyZXR1cm4gdGgoayhZZSxldCksZXQpfSx0b19zaGVldDprLF9yb3c6ZWUsQkVHSU46YmUsRU5EOlBlLF9wcmVh'@; put 'bWJsZTpwZSxodG1sX3RvX3JzOmZ1bmN0aW9uIE8oWWUpe3ZhciBldD1bXSxjdD17fSxUdD0wO3JldHVybiBZZS5yZXBsYWNlKC88KFwvPykoW15ccz8+IVwvOl0qOnwpKFteXHM/PjpcL10rKVtePl0qPi9nbSxmdW5jdGlvbihpdCxidCxCdCxEdCxPdCl7dmFyIFRuPUduKHlyKGl0KVswXSku'@; put 'cmVwbGFjZSgvWzxcLz5dL2csIiIpLHNyPVllLnNsaWNlKFR0LE90KS5yZXBsYWNlKC9ccy9nLCIgIik7c3dpdGNoKHNyLmxlbmd0aD4wJiYoZXQucHVzaCh7dDoicyIsdjpzcixzOmN0fSksY3Q9SnQoY3QpKSxUbi50b0xvd2VyQ2FzZSgpKXtjYXNlImIiOiIvIiE9YnQ/Y3QuYm9sZD0hMDpk'@; put 'ZWxldGUgY3QuYm9sZDticmVhaztjYXNlImkiOiIvIiE9YnQ/Y3QuaXRhbGljPSEwOmRlbGV0ZSBjdC5pdGFsaWM7YnJlYWs7Y2FzZSJ1IjoiLyIhPWJ0P2N0LnVuZGVybGluZT0xOmRlbGV0ZSBjdC51bmRlcmxpbmU7YnJlYWs7Y2FzZSJzIjoiLyIhPWJ0P2N0LnN0cmlrZT0hMDpkZWxldGUg'@; put 'Y3Quc3RyaWtlfXJldHVybiBUdD1PdCtpdC5sZW5ndGgsaXR9KSxldH0sZnJvbV9zaGVldDpmdW5jdGlvbiBWZShZZSxldCl7dmFyIGN0PWV0fHx7fSxpdD1udWxsIT1jdC5mb290ZXI/Y3QuZm9vdGVyOlBlLGJ0PVtudWxsIT1jdC5oZWFkZXI/Y3QuaGVhZGVyOmJlLCIiXSxCdD1bXSxEdD0o'@; put 'bmV3IERhdGUpLnZhbHVlT2YoKTtZZXx8KFllPXt9KSxZZVsiIXJlZiJdfHwoWWVbIiFyZWYiXT0iQTE6QTEiKTt2YXIgT3Q9U28oWWVbIiFyZWYiXSk7aWYoY3QuZGVuc2U9QXJyYXkuaXNBcnJheShZZSksY3Quc2tpcGVuZCl7dmFyIEt0PU90LmUucjtlOmZvcig7S3Q+PU90LnMucjstLUt0'@; put 'KWZvcih2YXIgVG49T3QuZS5jO1RuPj1PdC5zLmM7LS1UbilpZihudWxsIT0oKGN0LmRlbnNlPyhZZVtLdF18fFtdKVtUbl06WWVbcWkoe3I6S3QsYzpUbn0pXSl8fHt9KS52KWJyZWFrIGU7T3QuZS5yPUt0O3ZhciBzcj1PdC5lLmM7ZTpmb3IoO3NyPj1PdC5zLmM7LS1zcilmb3IodmFyIENu'@; put 'PU90LmUucjtDbj49T3Qucy5yOy0tQ24paWYobnVsbCE9KChjdC5kZW5zZT8oWWVbQ25dfHxbXSlbc3JdOlllW3FpKHtyOkNuLGM6c3J9KV0pfHx7fSkudilicmVhayBlO090LmUuYz1zcn1idC5wdXNoKHBlKFllLE90LGN0KSk7Zm9yKHZhciB1cj1PdC5zLnI7dXI8PU90LmUucjsrK3VyKWJ0'@; put 'LnB1c2goZWUoWWUsT3QsdXIsY3QsQnQsRHQpKTtyZXR1cm4gYnQucHVzaCgiPC90YWJsZT4iK2l0KSxjdC5jc3MmJihidFsxXT0iPHN0eWxlPlxuIitCdC5tYXAoZnVuY3Rpb24oZXIsam4pe3JldHVybiIuc2pzIitEdCsiLSIram4rIiB7IitlcisifSJ9KS5qb2luKCJcbiIpKyI8L3N0eWxl'@; put 'PiIpLGJ0LmpvaW4oIiIpfX19KCk7ZnVuY3Rpb24gSUkoUyxPLGspe3ZhciBLPXt9O2lmKHR5cGVvZiBnZXRDb21wdXRlZFN0eWxlPiJ1IilyZXR1cm4gSzt2YXIgZWU9Z2V0Q29tcHV0ZWRTdHlsZShTKTtpZigoNzAwPT1lZVsiZm9udC13ZWlnaHQiXXx8ImJvbGQiPT1lZVsiZm9udC13ZWln'@; put 'aHQiXSkmJihLLmJvbGQ9ITApLChlZVsiZm9udC1zdHlsZSJdfHwiIikubWF0Y2goL2l0YWxpYy8pJiYoSy5pdGFsaWM9ITApLChlZVsidGV4dC1kZWNvcmF0aW9uIl18fCIiKS5tYXRjaCgvdW5kZXJsaW5lLykmJihLLnVuZGVybGluZT0xKSwoZWVbInRleHQtZGVjb3JhdGlvbiJdfHwiIiku'@; put 'bWF0Y2goL2xpbmUtdGhyb3VnaC8pJiYoSy5zdHJpa2U9MSkscGFyc2VJbnQoZWVbImZvbnQtc2l6ZSJdKSYmKEsuc3o9cGFyc2VGbG9hdChlZVsiZm9udC1zaXplIl0pKihlZVsiZm9udC1zaXplIl0ubWF0Y2goL3B4Lyk/My80OjEpKSxlZVsiZm9udC1mYW1pbHkiXSYmKEsubmFtZT1lZVsi'@; put 'Zm9udC1mYW1pbHkiXS5zcGxpdCgiLCIpWzBdLnJlcGxhY2UoL1xzKiJccyovZywiIikpLGVlLmNvbG9yKXt2YXIgb2U9UzUoZWUuY29sb3IudG9Mb3dlckNhc2UoKSwhMCk7b2U+PTAmJihLLmNvbG9yPXtyZ2I6b2V9KX1zd2l0Y2goZWVbInRleHQtdHJhbnNmb3JtIl0mJihLLnRleHRfdHJh'@; put 'bnNmb3JtPWVlWyJ0ZXh0LXRyYW5zZm9ybSJdLnRvTG93ZXJDYXNlKCkpLCJub25lIiE9KGVlWyJ0ZXh0LXNoYWRvdyJdfHwibm9uZSIpJiYoSy5zaGFkb3c9ITApLGVlWyJ0ZXh0LWFsaWduIl0pe2Nhc2UiY2VudGVyIjpLLmFsaWdubWVudD17aG9yaXpvbnRhbDoiY2VudGVyIn07YnJlYWs7'@; put 'Y2FzZSJyaWdodCI6Sy5hbGlnbm1lbnQ9e2hvcml6b250YWw6InJpZ2h0In07YnJlYWs7Y2FzZSJsZWZ0IjpLLmFsaWdubWVudD17aG9yaXpvbnRhbDoibGVmdCJ9O2JyZWFrO2Nhc2UianVzdGlmeSI6Sy5hbGlnbm1lbnQ9e2hvcml6b250YWw6Imp1c3RpZnkifX1zd2l0Y2goZWVbInZlcnRp'@; put 'Y2FsLWFsaWduIl0pe2Nhc2UidG9wIjpjYXNlIm1pZGRsZSI6Y2FzZSJib3R0b20iOksuYWxpZ25tZW50fHwoSy5hbGlnbm1lbnQ9e30pLEsuYWxpZ25tZW50LnZlcnRpY2FsPWVlWyJ2ZXJ0aWNhbC1hbGlnbiJdLCJtaWRkbGUiPT1LLmFsaWdubWVudC52ZXJ0aWNhbCYmKEsuYWxpZ25tZW50'@; put 'LnZlcnRpY2FsPSJjZW50ZXIiKTticmVhaztjYXNlInN1YiI6Y2FzZSJzdXBlciI6Sy52YWxpZ249ZWVbInZlcnRpY2FsLWFsaWduIl0sSy5zeiYmKEsuc3ovPS44Myl9dmFyIG1lPU8mJmdldENvbXB1dGVkU3R5bGUoTyk7cmV0dXJuIG1lJiZrJiZPJiZbImxlZnQiLCJyaWdodCIsInRvcCIs'@; put 'ImJvdHRvbSJdLmZvckVhY2goZnVuY3Rpb24ocGUpe3ZhciBiZT1wZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStwZS5zbGljZSgxKSxQZT1tZVsiYm9yZGVyLSIrcGUrIi1zdHlsZSJdO2lmKCgibm9uZSI9PVBlfHwhUGUpJiYoUGU9bWVbImJvcmRlciIrYmUrIlN0eWxlIl0pLCJub25lIiE9'@; put 'UGUmJlBlKXt2YXIgVmU9cGFyc2VJbnQobWVbImJvcmRlci0iK3BlKyItd2lkdGgiXXx8bWVbImJvcmRlciIrYmUrIldpZHRoIl0sMTApLFllPSJ0aGluIjtpZihWZT4wKXtzd2l0Y2goUGUpe2Nhc2UiZG91YmxlIjpZZT0iZG91YmxlIjticmVhaztjYXNlImRhc2hlZCI6WWU9VmU+PTI/Im1l'@; put 'ZGl1bURhc2hlZCI6ImRhc2hlZCI7YnJlYWs7Y2FzZSJkb3R0ZWQiOlllPVZlPj0yPyJtZWRpdW1EYXNoRG90RG90IjoiZG90dGVkIjticmVhaztjYXNlInNvbGlkIjpZZT1WZT49Mz8idGhpY2siOlZlPj0yPyJtZWRpdW0iOiJ0aGluIn1pZihLW3BlXT17c3R5bGU6WWV9LG1lWyJib3JkZXIt'@; put 'IitwZSsiLWNvbG9yIl18fG1lWyJib3JkZXIiK2JlKyJDb2xvciJdKXt2YXIgZXQ9UzUoKG1lWyJib3JkZXItIitwZSsiLWNvbG9yIl18fG1lWyJib3JkZXIiK2JlKyJDb2xvciJdKS50b0xvd2VyQ2FzZSgpLCEwKTtldD49MCYmKEtbcGVdLmNvbG9yPXtyZ2I6ZXR9KX19fX0pLEt9ZnVuY3Rp'@; put 'b24gTEkoUyxPLGspe3ZhciBLPVMuY2hpbGROb2RlcztpZigxPT1TLm5vZGVUeXBlKXN3aXRjaChTLnRhZ05hbWUudG9Mb3dlckNhc2UoKSl7Y2FzZSJwIjpPLmxlbmd0aD4wJiZPLnB1c2goe3Q6InQiLHY6IlxuIixzOmt9KTticmVhaztjYXNlInNlbGVjdCI6cmV0dXJuIGZ1bmN0aW9uIFJJ'@; put 'KFMsTyxrKXtPLnB1c2goe3Q6InQiLHY6Uy5jaGlsZHJlbltTLnNlbGVjdGVkSW5kZXhdLmlubmVyVGV4dCxzOmt9KX0oUyxPLGspfWlmKEsubGVuZ3RoPjApe3ZhciBlZT1JSShTLG51bGwsITEpO2smJihrLnVuZGVybGluZSYmKGVlLnVuZGVybGluZT1rLnVuZGVybGluZSksay5zdHJpa2Um'@; put 'JihlZS5zdHJpa2U9ay5zdHJpa2UpKTtmb3IodmFyIG9lPTA7b2U8Sy5sZW5ndGg7KytvZSl7dHJ5e2lmKEtbb2VdLmdldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iKSljb250aW51ZX1jYXRjaHt9TEkoS1tvZV0sTyxlZSl9ZGVsZXRlIGVlLnRleHRfdHJhbnNmb3JtfWVsc2UgaWYoMz09Uy5u'@; put 'b2RlVHlwZSl7dmFyIG1lPXt0OiJ0Iix2OlMubm9kZVZhbHVlLnJlcGxhY2UoL15bXG4gXSsvLCIgIikucmVwbGFjZSgvW1xuIF0rJC8sIiAiKSxzOmt9O3N3aXRjaChrLnRleHRfdHJhbnNmb3JtKXtjYXNlInVwcGVyY2FzZSI6bWUudj1tZS52LnRvVXBwZXJDYXNlKCk7YnJlYWs7Y2FzZSJs'@; put 'b3dlcmNhc2UiOm1lLnY9bWUudi50b0xvd2VyQ2FzZSgpfShPLmxlbmd0aD4wfHxtZS52JiYiICIhPW1lLnYpJiZPLnB1c2gobWUpfWVsc2UgMT09Uy5ub2RlVHlwZSYmImJyIj09PVMudGFnTmFtZS50b0xvd2VyQ2FzZSgpJiZPLnB1c2goe3Q6InQiLHY6IlxuIixzOmt9KX1mdW5jdGlvbiBF'@; put 'eShTLE8sayxLLGVlKXt2YXIgbWUsb2U9Uy5pbm5lckhUTUw7aWYodHlwZW9mIGdldENvbXB1dGVkU3R5bGU8InUiKXN3aXRjaChtZT1nZXRDb21wdXRlZFN0eWxlKFMpLChtZVsid2hpdGUtc3BhY2UiXXx8IiIpLm1hdGNoKC9wcmUvKSYmKG9lPW9lLnJlcGxhY2UoL1xuL2csIjxici8+Iikp'@; put 'LChtZVsidGV4dC10cmFuc2Zvcm0iXXx8IiIpLnRvTG93ZXJDYXNlKCkpe2Nhc2UidXBwZXJjYXNlIjpvZT1vZS50b1VwcGVyQ2FzZSgpO2JyZWFrO2Nhc2UibG93ZXJjYXNlIjpvZT1vZS50b0xvd2VyQ2FzZSgpfXZhciBwZT1mdW5jdGlvbiB4eShTLE8sayxLKXt2YXIgZWU9e3Q6InMiLHY6'@; put 'T30sb2U9IiI7aWYoUyl7az1TLmdldEF0dHJpYnV0ZSgiZGF0YS10Iil8fFMuZ2V0QXR0cmlidXRlKCJ0Iik7dmFyIG1lPVMuZ2V0QXR0cmlidXRlKCJkYXRhLXYiKXx8Uy5nZXRBdHRyaWJ1dGUoInYiKTtpZihudWxsIT0ob2U9Uy5nZXRBdHRyaWJ1dGUoImRhdGEteiIpfHxTLmdldEF0dHJp'@; put 'YnV0ZSgieiIpKSYmKGVlLno9b2UpLG51bGwhPWsmJm51bGwhPW1lKXJldHVybiBlZS50PWssZWUudj1tZSxlZX1yZXR1cm4gbnVsbCE9TyYmKDA9PU8ubGVuZ3RoP2VlLnQ9a3x8InoiOksucmF3fHwhTy50cmltKCkubGVuZ3RofHwicyI9PWt8fChlZT1JaShPLEspKSksb2UmJihlZS56PW9l'@; put 'KSxlZX0oUyxvcihvZSksayxlZSk7aWYodHlwZW9mIGdldENvbXB1dGVkU3R5bGU8InUiJiYocGUucz1JSShTLE8sZWUuYm9yZGVycyksZGVsZXRlIHBlLnMudGV4dF90cmFuc2Zvcm0sUy5jaGlsZE5vZGVzLmxlbmd0aD4xfHwxPT1TLmNoaWxkTm9kZXMubGVuZ3RoJiYzIT1TLmNoaWxkTm9k'@; put 'ZXNbMF0ubm9kZVR5cGUpKXN3aXRjaChMSShTLHBlLlI9W10sbnVsbCkscGUuUiYmcGUuUltwZS5SLmxlbmd0aC0xXSYmIlxuIj09cGUuUltwZS5SLmxlbmd0aC0xXS52JiZwZS5SLmxlbmd0aC0tLChtZVsidGV4dC10cmFuc2Zvcm0iXXx8IiIpLnRvTG93ZXJDYXNlKCkpe2Nhc2UidXBwZXJj'@; put 'YXNlIjpwZS5SLmZvckVhY2goZnVuY3Rpb24oZXQpe2V0LnY9ZXQudi50b1VwcGVyQ2FzZSgpfSk7YnJlYWs7Y2FzZSJsb3dlcmNhc2UiOnBlLlIuZm9yRWFjaChmdW5jdGlvbihldCl7ZXQudj1ldC52LnRvTG93ZXJDYXNlKCl9KX1pZigicyI9PXBlLnQpe3ZhciBiZT1wZS52Lm1hdGNoKC9c'@; put 'bi8pOyFiZSYmcGUuUiYmcGUuUi5mb3JFYWNoKGZ1bmN0aW9uKGV0KXsic3RyaW5nIj09dHlwZW9mIGV0LnYmJmV0LnYubWF0Y2goL1xuLykmJihiZT0hMCl9KSwicyI9PXBlLnQmJmJlJiYocGUuc3x8KHBlLnM9e30pLHBlLnMuYWxpZ25tZW50fHwocGUucy5hbGlnbm1lbnQ9e30pLHBlLnMu'@; put 'YWxpZ25tZW50LndyYXBUZXh0PSEwKX1pZihPKXt2YXIgUGU9IiIsVmU9Ty5nZXRFbGVtZW50c0J5VGFnTmFtZSgiQSIpO2lmKFZlJiZWZS5sZW5ndGgpZm9yKHZhciBZZT0wO1llPFZlLmxlbmd0aCYmKCFWZVtZZV0uaGFzQXR0cmlidXRlKCJocmVmIil8fCIjIj09KFBlPVZlW1llXS5nZXRB'@; put 'dHRyaWJ1dGUoImhyZWYiKSkuY2hhckF0KDApKTsrK1llKTtQZSYmIiMiIT1QZS5jaGFyQXQoMCkmJihwZS5sPXtUYXJnZXQ6UGV9KX1yZXR1cm4gcGV9ZnVuY3Rpb24gVHkoUyxPLGspe3ZhciBlZSxLPU8ucm93cztpZighSyl7aWYoayYmbnVsbCE9ay5vcmlnaW4pdGhyb3ciVW5zdXBwb3J0'@; put 'ZWQgb3JpZ2luIHdoZW4gIitPLnRhZ05hbWUrIiBpcyBub3QgYSBUQUJMRSI7cmV0dXJuIGZ1bmN0aW9uIGNyZShTLE8sayl7az1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGt8fHt9KSk7dmFyIG9lPXtzOntyOjAsYzowfSxlOntyOjAsYzowfX07U1siIW1lcmdlcyJdfHwoU1siIW1lcmdl'@; put 'cyJdPVtdKTtmb3IodmFyIHBlLG1lPU8uY2hpbGRyZW4sYmU9MCxQZT0wO1BlPG1lLmxlbmd0aDsrK1BlKXt2YXIgZXQsVmU9bWVbUGVdLFllPSIiO3RyeXt0eXBlb2YgZ2V0Q29tcHV0ZWRTdHlsZTwidSI/ZXQ9Z2V0Q29tcHV0ZWRTdHlsZTpWZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3'@; put 'JiYiZnVuY3Rpb24iPT10eXBlb2YgVmUub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlJiYoZXQ9VmUub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKX1jYXRjaHt9aWYoIWV0fHwibm9uZSIhPWV0KFZlKS5kaXNwbGF5KXN3aXRjaChW'@; put 'ZS50YWdOYW1lLnRvVXBwZXJDYXNlKCkpe2Nhc2UiVEFCTEUiOmJlPS0xLFNbIiFyZWYiXSYmKGsub3JpZ2luPS0xKSxUeShTLFZlLGspO2JyZWFrO2Nhc2UiQlIiOmNhc2UiSFIiOmJlPS0xLFNbIiFyZWYiXT8oKysob2U9U28oU1siIXJlZiJdKSkuZS5yLFNbIiFyZWYiXT1yYShvZSkpOlNb'@; put 'IiFyZWYiXT0iQTE6QTEiO2JyZWFrO2Nhc2UiRElWIjpjYXNlIlAiOmNhc2UiSDEiOmNhc2UiSDIiOmNhc2UiSDMiOmNhc2UiSDQiOmNhc2UiSDUiOmNhc2UiSDYiOmJlPS0xLHBlPUV5KFZlLG51bGwsIiIsMCxrKSxTWyIhcmVmIl0/KGsub3JpZ2luPS0xLGY0KFMsW1twZV1dLGspKTooU1si'@; put 'IXJlZiJdPSJBMSIsQXJyYXkuaXNBcnJheShTKT8oU1swXXx8KFNbMF09W10pLFNbMF1bMF09cGUpOlMuQTE9cGUpLFNbIiFyb3dzIl18fChTWyIhcm93cyJdPVtdKSxldCYmKG9lPVNvKFNbIiFyZWYiXSksKFllPWV0KFZlKS5oZWlnaHQpJiYiYXV0byIhPVllJiYoU1siIXJvd3MiXVtvZS5l'@; put 'LnJdPXtocHQ6cGFyc2VJbnQoWWUsMTApfSkpO2JyZWFrO2Nhc2UiU1BBTiI6Y2FzZSJBIjpjYXNlIkIiOmNhc2UiRU0iOmNhc2UiSSI6Y2FzZSJGT05UIjpjYXNlIlMiOmNhc2UiU1VCIjpjYXNlIlNVUCI6Y2FzZSJVIjpwZT1FeShWZSxudWxsLCIiLDAsayksU1siIXJlZiJdfHwoU1siIXJl'@; put 'ZiJdPSJBMTpBMSIpLGY0KFMsW1twZV1dLHtvcmlnaW46cWkoe3I6KGJlPDA/MTowKSsob2U9U28oU1siIXJlZiJdKSkuZS5yLGM6KytiZX0pfSk7YnJlYWs7Y2FzZSJETCI6Y2FzZSJVTCI6Y2FzZSJPTCI6YmU9LTEsY29uc29sZS5lcnJvcigiSFRNTCBDb252ZXJzaW9uIGRvZXMgbm90IHN1'@; put 'cHBvcnQgbGlzdCBlbGVtZW50ICIrVmUudGFnTmFtZS50b1VwcGVyQ2FzZSgpKTticmVhaztkZWZhdWx0OmJlPS0xLGNvbnNvbGUuZXJyb3IoIlNraXBwaW5nICIrVmUudGFnTmFtZS50b1VwcGVyQ2FzZSgpKX19cmV0dXJuIFN9KFMsTyxrKX10cnl7dHlwZW9mIGdldENvbXB1dGVkU3R5bGU8'@; put 'InUiP2VlPWdldENvbXB1dGVkU3R5bGU6Ty5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3JiYiZnVuY3Rpb24iPT10eXBlb2YgTy5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUmJihlZT1PLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHls'@; put 'ZSl9Y2F0Y2h7fXZhciBvZT1rfHx7fTtudWxsIT1zZSYmKG9lLmRlbnNlPXNlKTt2YXIgbWU9MCxwZT0wO2lmKG51bGwhPW9lLm9yaWdpbilpZigibnVtYmVyIj09dHlwZW9mIG9lLm9yaWdpbiltZT1vZS5vcmlnaW47ZWxzZXt2YXIgYmU9InN0cmluZyI9PXR5cGVvZiBvZS5vcmlnaW4/VnMo'@; put 'b2Uub3JpZ2luKTpvZS5vcmlnaW47bWU9YmUucixwZT1iZS5jfXZhciBQZT1NYXRoLm1pbihvZS5zaGVldFJvd3N8fDFlNyxLLmxlbmd0aCksVmU9e3M6e3I6MCxjOjB9LGU6e3I6bWUsYzpwZX19O2lmKFNbIiFyZWYiXSl7dmFyIFllPVNvKFNbIiFyZWYiXSk7VmUucy5yPU1hdGgubWluKFZl'@; put 'LnMucixZZS5zLnIpLFZlLnMuYz1NYXRoLm1pbihWZS5zLmMsWWUucy5jKSxWZS5lLnI9TWF0aC5tYXgoVmUuZS5yLFllLmUuciksVmUuZS5jPU1hdGgubWF4KFZlLmUuYyxZZS5lLmMpLC0xPT1tZSYmKFZlLmUucj1tZT1ZZS5lLnIrMSl9dmFyIGV0PVtdLGN0PTAsVHQ9U1siIXJvd3MiXXx8'@; put 'KFNbIiFyb3dzIl09W10pLGl0PTAsYnQ9MCxCdD0wLER0PTAsT3Q9MCxLdD0wO2ZvcihTWyIhY29scyJdfHwoU1siIWNvbHMiXT1bXSk7aXQ8Sy5sZW5ndGgmJmJ0PFBlOysraXQpe2Zvcih2YXIgVG49S1tpdF0sc3I9VG4ucGFyZW50RWxlbWVudDsiVEFCTEUiIT1zci50YWdOYW1lLnRvVXBw'@; put 'ZXJDYXNlKCk7KXNyPXNyLnBhcmVudEVsZW1lbnQ7aWYoc3I9PU8pe2U6aWYodHlwZW9mIGVlPCJ1Iil7dmFyIENuPWVlKFRuKTtpZihudWxsPT1DbilicmVhayBlO2lmKENuLnN0eWxlfHwoQ24uc3R5bGU9e30pLG9lLmRpc3BsYXkmJiJub25lIj09KENuLmRpc3BsYXl8fENuLnN0eWxlLmRp'@; put 'c3BsYXkpKWNvbnRpbnVlOyJub25lIj09KENuLmRpc3BsYXl8fENuLnN0eWxlLmRpc3BsYXkpJiYoKFR0W2J0XXx8KFR0W2J0XT17fSkpLmhpZGRlbj0hMCl9dmFyIHVyPVRuLmNlbGxzO2ZvcihCdD1EdD0wO0J0PHVyLmxlbmd0aDsrK0J0KXt2YXIgZXI9dXJbQnRdLGpuPW51bGw7aWYoISh0'@; put 'eXBlb2YgZWU8InUiJiYobnVsbD09am4mJihqbj1lZShlcikpLGpuLnN0eWxlfHwoam4uc3R5bGU9e30pLG9lLmRpc3BsYXkmJm51bGwhPWpuJiYibm9uZSI9PShqbi5kaXNwbGF5fHxqbi5zdHlsZS5kaXNwbGF5KSkpKXtmb3IoS3Q9K2VyLmdldEF0dHJpYnV0ZSgiY29sc3BhbiIpfHwxLGN0'@; put 'PTA7Y3Q8ZXQubGVuZ3RoOysrY3Qpe3ZhciBwcj1ldFtjdF07cHIucy5jPT1EdCtwZSYmcHIucy5yPGJ0K21lJiZidCttZTw9cHIuZS5yJiYoRHQ9cHIuZS5jKzEtcGUsY3Q9LTEpfSgoT3Q9K2VyLmdldEF0dHJpYnV0ZSgicm93c3BhbiIpfHwxKT4xfHxLdD4xKSYmZXQucHVzaCh7czp7cjpi'@; put 'dCttZSxjOkR0K3BlfSxlOntyOmJ0K21lKyhPdHx8MSktMSxjOkR0K3BlKyhLdHx8MSktMX19KTt2YXIgYnI9ZXIuZ2V0QXR0cmlidXRlKCJ0Iil8fCIiLHJyPWVyLmdldEF0dHJpYnV0ZSgiYmdjb2xvciIpO2U6aWYodHlwZW9mIGVlPCJ1Iil7aWYobnVsbD09am4mJihqbj1lZShlcikpLG51'@; put 'bGw9PWpuKWJyZWFrIGU7aWYoam4uc3R5bGV8fChqbi5zdHlsZT17fSksMT09S3QmJmpuLndpZHRoJiYoU1siIWNvbHMiXVtEdCtwZV09U1siIWNvbHMiXVtEdCtwZV18fHt9LGpuLndpZHRoLm1hdGNoKC9weC8pP1NbIiFjb2xzIl1bRHQrcGVdLndweD1NYXRoLm1heChwYXJzZUludChqbi53'@; put 'aWR0aCwxMCkrNSxTWyIhY29scyJdW0R0K3BlXS53cHh8fDApOmpuLndpZHRoLm1hdGNoKC9wdC8pJiYoU1siIWNvbHMiXVtEdCtwZV0ud3B4PU1hdGgubWF4KDQqcGFyc2VJbnQoam4ud2lkdGgsMTApLzMrNSxTWyIhY29scyJdW0R0K3BlXS53cHh8fDApKSksT3Q8PTEpe1R0W2J0K21lXXx8'@; put 'KFR0W2J0K21lXT17fSk7dmFyIFNpPWpuLmhlaWdodDsoU2k9U2kubWF0Y2goL3B0Lyk/b2gocGFyc2VJbnQoU2ksMTApKTpwYXJzZUludChTaSwxMCkpPihUdFtidCttZV0uaHB4fHxvaChUdFtidCttZV0uaHB0KXx8MCkmJihkZWxldGUgVHRbYnQrbWVdLmhwdCxUdFtidCttZV0uaHB4PVNp'@; put 'KX19dmFyIFBpPWVyO2lmKGVyLmZpcnN0RWxlbWVudENoaWxkJiYxPT1lci5jaGlsZHJlbi5sZW5ndGgmJiJzcGFuIj09ZXIuZmlyc3RFbGVtZW50Q2hpbGQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSl7Zm9yKHZhciBuYT0wLGxhPWVyLmNoaWxkTm9kZXMsUmk9MDtSaTxsYS5sZW5ndGg7KytS'@; put 'aSkzPT1sYVtSaV0ubm9kZVR5cGUmJisrbmE7MD09bmEmJihlcj1lci5maXJzdEVsZW1lbnRDaGlsZCl9dmFyIFJyPUV5KGVyLFBpLGJyLDAsb2UpO2lmKGpuKXt2YXIgQm49ZWUoZXIpO2lmKEJuJiYhQm4uc3R5bGUmJihCbi5zdHlsZT17fSksKEJuJiZCblsiYmFja2dyb3VuZC1jb2xvciJd'@; put 'fHxqblsiYmFja2dyb3VuZC1jb2xvciJdKSYmKFJyLnN8fChSci5zPXt9KSwhUnIucy5mZ0NvbG9yKSl0cnl7dmFyIGpyPUJuJiZCblsiYmFja2dyb3VuZC1jb2xvciJdfHxqblsiYmFja2dyb3VuZC1jb2xvciJdO2pyLm1hdGNoKC9yZ2JhWyhdXHMqMC4qWyldL2kpJiYoanI9am5bImJhY2tn'@; put 'cm91bmQtY29sb3IiXSk7dmFyIHdyPVM1KGpyLnRvTG93ZXJDYXNlKCksITApO3dyPj0wJiYoUnIucy5mZ0NvbG9yPXtyZ2I6d3J9KX1jYXRjaHt9c3dpdGNoKGpuWyJ2ZXJ0aWNhbC1hbGlnbiJdKXtjYXNlIm1pZGRsZSI6Y2FzZSJiYXNlbGluZSI6UnIuc3x8KFJyLnM9e30pLFJyLnMuYWxp'@; put 'Z25tZW50fHwoUnIucy5hbGlnbm1lbnQ9e30pLFJyLnMuYWxpZ25tZW50LnZlcnRpY2FsPSJjZW50ZXIifX1pZihyciYmKFJyLnN8fChSci5zPXt9KSwhUnIucy5mZ0NvbG9yKSl0cnl7dmFyIEhuPVM1KHJyLnRvTG93ZXJDYXNlKCksITApO0huPj0wJiYoUnIucy5mZ0NvbG9yPXtyZ2I6SG59'@; put 'KX1jYXRjaHt9aWYob2UuZGVuc2U/KFNbYnQrbWVdfHwoU1tidCttZV09W10pLFNbYnQrbWVdW0R0K3BlXT1Scik6U1txaSh7YzpEdCtwZSxyOmJ0K21lfSldPVJyLE90PjF8fEt0PjEpZm9yKHZhciB6cj1idDt6cjxidCtPdDsrK3pyKWZvcih2YXIgV2k9RHQ7V2k8RHQrS3Q7KytXaSlidD09'@; put 'enImJkR0PT1XaXx8KG9lLmRlbnNlPyhTW3pyK21lXXx8KFNbenIrbWVdPVtdKSxTW3pyK21lXVtXaStwZV09e3Q6InoiLHM6SnQoUnIuc3x8e30pfSk6U1txaSh7YzpXaStwZSxyOnpyK21lfSldPXt0OiJ6IixzOkp0KFJyLnN8fHt9KX0pO1ZlLmUuYzxEdCtwZSYmKFZlLmUuYz1EdCtwZSks'@; put 'RHQrPUt0fX0rK2J0fX1pZihldC5sZW5ndGgmJihTWyIhbWVyZ2VzIl09KFNbIiFtZXJnZXMiXXx8W10pLmNvbmNhdChldCkpLFZlLmUucj1NYXRoLm1heChWZS5lLnIsYnQtMSttZSksU1siIXJlZiJdPXJhKFZlKSxidD49UGUmJihTWyIhZnVsbHJlZiJdPXJhKChWZS5lLnI9Sy5sZW5ndGgt'@; put 'aXQrYnQtMSttZSxWZSkpKSxvZS5ib3JkZXJzKWZvcihidD1WZS5zLnI7YnQ8PVZlLmUucjsrK2J0KWZvcihEdD1WZS5zLmM7RHQ8PVZlLmUuYzsrK0R0KWlmKCFvZS5kZW5zZSl7dmFyIENpPVNbcWkoe3I6YnQsYzpEdH0pXTtpZighQ2l8fCFDaS5zKWNvbnRpbnVlO2lmKGJ0PjApe3ZhciB3'@; put 'YT1TW3FpKHtyOmJ0LTEsYzpEdH0pXTt3YSYmd2EucyYmd2Eucy5ib3R0b20mJmRlbGV0ZSBDaS5zLnRvcH1pZihEdD4wKXt2YXIgb3M9U1txaSh7cjpidCxjOkR0LTF9KV07b3MmJm9zLnMmJm9zLnMuYm90dG9tJiZkZWxldGUgQ2kucy5sZWZ0fX1yZXR1cm4gU31mdW5jdGlvbiBXeihTLE8p'@; put 'e3JldHVybiBUeSgoT3x8e30pLmRlbnNlP1tdOnt9LFMsTyl9dmFyIG5NPWZ1bmN0aW9uKCl7dmFyIFM9ZnVuY3Rpb24oSyxlZSxvZSl7dmFyIG1lPUsucmVwbGFjZSgvW1x0XHJcbl0vZywiICIpLnRyaW0oKS5yZXBsYWNlKC8gKy9nLCIgIikucmVwbGFjZSgvPHRleHQ6c1wvPi9nLCIgIiku'@; put 'cmVwbGFjZSgvPHRleHQ6cyB0ZXh0OmM9IihcZCspIlwvPi9nLGZ1bmN0aW9uKFZlLFllKXtyZXR1cm4gQXJyYXkocGFyc2VJbnQoWWUsMTApKzEpLmpvaW4oIiAiKX0pLnJlcGxhY2UoLzx0ZXh0OnRhYltePl0qXC8+L2csIlx0IikucmVwbGFjZSgvPHRleHQ6bGluZS1icmVha1wvPi9nLCJc'@; put 'biIpLHBlPVFyKG1lLnJlcGxhY2UoLzxbXj5dKj4vZywiIikpLGJlPVtdLFBlPTA7cmV0dXJuIG1lLnJlcGxhY2UoLyg8dGV4dDpzcGFuLio/PikoLio/KTxbXC9ddGV4dDpzcGFuPi9nLGZ1bmN0aW9uKFZlLFllLGV0LGN0KXtjdCE9UGUmJmJlLnB1c2goe3Q6InMiLHY6UXIobWUuc2xpY2Uo'@; put 'UGUsY3QpKX0pO3ZhciBUdD17dDoicyIsdjpRcihldCl9LGl0PXlyKFllKVsic3R5bGUtbmFtZSJdO3JldHVybiBpdCYmb2VbaXRdJiYoVHQucz1KdChvZVtpdF0pKSxiZS5wdXNoKFR0KSxQZT1jdCtWZS5sZW5ndGgsIiJ9KSxQZTxtZS5sZW5ndGgmJmJlLnB1c2goe3Q6InMiLHY6UXIobWUu'@; put 'c2xpY2UoUGUpKX0pLFtwZSxiZV19LE89e2RheTpbImQiLCJkZCJdLG1vbnRoOlsibSIsIm1tIl0seWVhcjpbInkiLCJ5eSJdLGhvdXJzOlsiaCIsImhoIl0sbWludXRlczpbIm0iLCJtbSJdLHNlY29uZHM6WyJzIiwic3MiXSwiYW0tcG0iOlsiQS9QIiwiQU0vUE0iXSwiZGF5LW9mLXdlZWsi'@; put 'OlsiZGRkIiwiZGRkZCJdLGVyYTpbImUiLCJlZSJdLHF1YXJ0ZXI6WyJcXFFtIiwnbVxcInRoIHF1YXJ0ZXIiJ119LGs9ZnVuY3Rpb24oSyxlZSl7dmFyIG9lPXlyKEsuc2xpY2UoMCxLLmluZGV4T2YoIj4iKSkpLG1lPUsuc2xpY2UoSy5pbmRleE9mKCI+IikrMSkscGU9e25hbWU6b2UubmFt'@; put 'ZSxmYW1pbHk6b2UuZmFtaWx5fTtbWyJwYXJlbnQiLCJwYXJlbnQtc3R5bGUtbmFtZSJdLFsiZGF0YW5hbWUiLCJkYXRhLXN0eWxlLW5hbWUiXSxbIm1wbmFtZSIsIm1hc3Rlci1wYWdlLW5hbWUiXV0uZm9yRWFjaChmdW5jdGlvbihQZSl7b2VbUGVbMV1dJiYocGVbUGVbMF1dPW9lW1BlWzFd'@; put 'XSl9KTt2YXIgYmU9e307bWUucmVwbGFjZSh0bixmdW5jdGlvbihQZSl7dmFyIFZlPXlyKFBlKTtpZigiPHN0eWxlOnRleHQtcHJvcGVydGllcyI9PT1WZVswXSl7aWYoVmVbImZvbnQtd2VpZ2h0Il0mJihiZS5ib2xkPSsoImJvbGQiPT1WZVsiZm9udC13ZWlnaHQiXXx8IjcwMCI9PVZlWyJm'@; put 'b250LXdlaWdodCJdKSksKCJpdGFsaWMiPT1WZVsiZm9udC1zdHlsZSJdfHwib2JsaXF1ZSI9PVZlWyJmb250LXN0eWxlIl0pJiYoYmUuaXRhbGljPTEpLCJub25lIiE9KFZlWyJ0ZXh0LXVuZGVybGluZS1zdHlsZSJdfHwibm9uZSIpP2JlLnVuZGVybGluZT0iZG91YmxlIj09VmVbInRleHQt'@; put 'dW5kZXJsaW5lLXR5cGUiXT8yOjE6KFZlWyJ0ZXh0LXVuZGVybGluZS1zdHlsZSJdfHwibm9uZSI9PVZlWyJ0ZXh0LXVuZGVybGluZS10eXBlIl0pJiYoYmUudW5kZXJsaW5lPTApLChWZVsiZm9udC1zaXplIl18fCIiKS5tYXRjaCgvcHQkLykmJihiZS5zej0rVmVbImZvbnQtc2l6ZSJdLnJl'@; put 'cGxhY2UoInB0IiwiIikpLCJub25lIiE9KFZlWyJ0ZXh0LWxpbmUtdGhyb3VnaC1zdHlsZSJdfHwibm9uZSIpJiYoYmUuc3RyaWtlPTEpLFZlWyJmb250LW5hbWUiXSYmKGJlLm5hbWU9VmVbImZvbnQtbmFtZSJdKSxWZS5jb2xvcil7dmFyIFllPVM1KFZlLmNvbG9yLCEwKTtZZT49MCYmKGJl'@; put 'LmNvbG9yPVllKX1zd2l0Y2goVmVbInRleHQtcG9zaXRpb24iXSl7Y2FzZSJzdXBlciI6YmUudmFsaWduPSJzdXBlciI7YnJlYWs7Y2FzZSJzdWIiOmJlLnZhbGlnbj0ic3ViIjticmVhaztkZWZhdWx0OihWZVsidGV4dC1wb3NpdGlvbiJdfHwiIikubWF0Y2goLyUvKSYmKGJlLnZhbGlnbj0i'@; put 'LSI9PVZlWyJ0ZXh0LXBvc2l0aW9uIl0uY2hhckF0KDApPyJzdWIiOiJzdXBlciIpfSJub25lIiE9KFZlWyJ0ZXh0LXNoYWRvdyJdfHwibm9uZSIpJiYoYmUuc2hhZG93PTEpfXJldHVybiIifSksZWVbb2UubmFtZV09YmV9O3JldHVybiBmdW5jdGlvbihlZSxvZSl7dmFyIG1lPW9lfHx7fTtu'@; put 'dWxsIT1zZSYmbnVsbD09bWUuZGVuc2UmJihtZS5kZW5zZT1zZSk7dmFyIFBlLFZlLFR0LGl0LE90LEt0LHBlPVhTKGVlKSxiZT1bXSxZZT17bmFtZToiIn0sZXQ9IiIsY3Q9MCxidD17fSxCdD1bXSxEdD1tZS5kZW5zZT9bXTp7fSxUbj17dmFsdWU6IiJ9LHNyPSIiLENuPTAsZXI9W10sam49'@; put 'LTEscHI9LTEsYnI9e3M6e3I6MWU2LGM6MWU3fSxlOntyOjAsYzowfX0scnI9MCxTaT17fSxQaT1bXSxuYT17fSxsYT0wLFJpPTAsUnI9W10sQm49MSxqcj0xLHdyPVtdLEhuPXtOYW1lczpbXX0senI9e30sV2k9WyIiLCIiXSxDaT1bXSx3YT17fSxvcz17fSxpYT0wLE9zPSIiLFBhPTAsdXM9'@; put 'ITEscWE9ITEsVmk9MDtmb3IoVTUubGFzdEluZGV4PTAscGU9cGUucmVwbGFjZSgvPCEtLShbXHNcU10qPyktLT4vZ20sIiIpLnJlcGxhY2UoLzwhRE9DVFlQRVteXFtdKlxbW15cXV0qXF0+L2dtLCIiKTtPdD1VNS5leGVjKHBlKTspc3dpdGNoKE90WzNdPU90WzNdLnJlcGxhY2UoL18uKiQv'@; put 'LCIiKSl7Y2FzZSJ0YWJsZSI6Y2FzZSJcdTVkZTVcdTRmNWNcdTg4NjgiOiIvIj09PU90WzFdPyhEdFsiIXJlZiJdPWJyLmUuYz49YnIucy5jJiZici5lLnI+PWJyLnMucj9yYShicik6IkExOkExIixtZS5zaGVldFJvd3M+MCYmbWUuc2hlZXRSb3dzPD1ici5lLnImJihEdFsiIWZ1bGxyZWYi'@; put 'XT1EdFsiIXJlZiJdLGJyLmUucj1tZS5zaGVldFJvd3MtMSxEdFsiIXJlZiJdPXJhKGJyKSksUGkubGVuZ3RoJiYoRHRbIiFtZXJnZXMiXT1QaSksUnIubGVuZ3RoJiYoRHRbIiFyb3dzIl09UnIpLFR0Lm5hbWU9VHQuXHU1NDBkXHU3OWYwfHxUdC5uYW1lLHR5cGVvZiBKU09OPCJ1IiYmSlNP'@; put 'Ti5zdHJpbmdpZnkoVHQpLEJ0LnB1c2goVHQubmFtZSksYnRbVHQubmFtZV09RHQscWE9ITEpOiIvIiE9PU90WzBdLmNoYXJBdChPdFswXS5sZW5ndGgtMikmJihUdD15cihPdFswXSwhMSksam49cHI9LTEsYnIucy5yPWJyLnMuYz0xZTcsYnIuZS5yPWJyLmUuYz0wLER0PW1lLmRlbnNlP1td'@; put 'Ont9LFBpPVtdLFJyPVtdLHFhPSEwKTticmVhaztjYXNlInRhYmxlLXJvdy1ncm91cCI6Ii8iPT09T3RbMV0/LS1ycjorK3JyO2JyZWFrO2Nhc2UidGFibGUtcm93IjpjYXNlIlx1ODg0YyI6aWYoIi8iPT09T3RbMV0pe2puKz1CbixCbj0xO2JyZWFrfWlmKChpdD15cihPdFswXSwhMSkpLlx1'@; put 'ODg0Y1x1NTNmNz9qbj1pdC5cdTg4NGNcdTUzZjctMTotMT09am4mJihqbj0wKSwoQm49K2l0WyJudW1iZXItcm93cy1yZXBlYXRlZCJdfHwxKTwxMClmb3IoVmk9MDtWaTxCbjsrK1ZpKXJyPjAmJihScltqbitWaV09e2xldmVsOnJyfSk7cHI9LTE7YnJlYWs7Y2FzZSJjb3ZlcmVkLXRhYmxl'@; put 'LWNlbGwiOiIvIiE9PU90WzFdJiYrK3ByLG1lLnNoZWV0U3R1YnMmJihtZS5kZW5zZT8oRHRbam5dfHwoRHRbam5dPVtdKSxEdFtqbl1bcHJdPXt0OiJ6In0pOkR0W3FpKHtyOmpuLGM6cHJ9KV09e3Q6InoifSksc3I9IiIsZXI9W107YnJlYWs7Y2FzZSJ0YWJsZS1jZWxsIjpjYXNlIlx1NjU3'@; put 'MFx1NjM2ZSI6aWYoIi8iPT09T3RbMF0uY2hhckF0KE90WzBdLmxlbmd0aC0yKSkrK3ByLFRuPXlyKE90WzBdLCExKSxqcj1wYXJzZUludChUblsibnVtYmVyLWNvbHVtbnMtcmVwZWF0ZWQiXXx8IjEiLDEwKSxLdD17dDoieiIsdjpudWxsfSxUbi5mb3JtdWxhJiYwIT1tZS5jZWxsRm9ybXVs'@; put 'YSYmKEt0LmY9Y1MoUXIoVG4uZm9ybXVsYSkpKSwic3RyaW5nIj09KFRuLlx1NjU3MFx1NjM2ZVx1N2M3Ylx1NTc4Ynx8VG5bInZhbHVlLXR5cGUiXSkmJihLdC50PSJzIixLdC52PVFyKFRuWyJzdHJpbmctdmFsdWUiXXx8IiIpLG1lLmRlbnNlPyhEdFtqbl18fChEdFtqbl09W10pLER0W2pu'@; put 'XVtwcl09S3QpOkR0W3FpKHtyOmpuLGM6cHJ9KV09S3QpLHByKz1qci0xO2Vsc2UgaWYoIi8iIT09T3RbMV0pe2pyPTE7dmFyIElvPUJuP2puK0JuLTE6am47aWYoKytwcj5ici5lLmMmJihici5lLmM9cHIpLHByPGJyLnMuYyYmKGJyLnMuYz1wciksam48YnIucy5yJiYoYnIucy5yPWpuKSxJ'@; put 'bz5ici5lLnImJihici5lLnI9SW8pLENpPVtdLHdhPXt9LEt0PXt0OihUbj15cihPdFswXSwhMSkpLlx1NjU3MFx1NjM2ZVx1N2M3Ylx1NTc4Ynx8VG5bInZhbHVlLXR5cGUiXSx2Om51bGx9LG1lLmNlbGxGb3JtdWxhKWlmKFRuLmZvcm11bGEmJihUbi5mb3JtdWxhPVFyKFRuLmZvcm11bGEp'@; put 'KSxUblsibnVtYmVyLW1hdHJpeC1jb2x1bW5zLXNwYW5uZWQiXSYmVG5bIm51bWJlci1tYXRyaXgtcm93cy1zcGFubmVkIl0mJihsYT1wYXJzZUludChUblsibnVtYmVyLW1hdHJpeC1yb3dzLXNwYW5uZWQiXSwxMCl8fDAsUmk9cGFyc2VJbnQoVG5bIm51bWJlci1tYXRyaXgtY29sdW1ucy1z'@; put 'cGFubmVkIl0sMTApfHwwLEt0LkY9cmEobmE9e3M6e3I6am4sYzpwcn0sZTp7cjpqbitsYS0xLGM6cHIrUmktMX19KSx3ci5wdXNoKFtuYSxLdC5GXSkpLFRuLmZvcm11bGEpS3QuZj1jUyhUbi5mb3JtdWxhKTtlbHNlIGZvcihWaT0wO1ZpPHdyLmxlbmd0aDsrK1ZpKWpuPj13cltWaV1bMF0u'@; put 'cy5yJiZqbjw9d3JbVmldWzBdLmUuciYmcHI+PXdyW1ZpXVswXS5zLmMmJnByPD13cltWaV1bMF0uZS5jJiYoS3QuRj13cltWaV1bMV0pO3N3aXRjaCgoVG5bIm51bWJlci1jb2x1bW5zLXNwYW5uZWQiXXx8VG5bIm51bWJlci1yb3dzLXNwYW5uZWQiXSkmJihsYT1wYXJzZUludChUblsibnVt'@; put 'YmVyLXJvd3Mtc3Bhbm5lZCJdLDEwKXx8MCxSaT1wYXJzZUludChUblsibnVtYmVyLWNvbHVtbnMtc3Bhbm5lZCJdLDEwKXx8MCxQaS5wdXNoKG5hPXtzOntyOmpuLGM6cHJ9LGU6e3I6am4rbGEtMSxjOnByK1JpLTF9fSkpLFRuWyJudW1iZXItY29sdW1ucy1yZXBlYXRlZCJdJiYoanI9cGFy'@; put 'c2VJbnQoVG5bIm51bWJlci1jb2x1bW5zLXJlcGVhdGVkIl0sMTApKSxLdC50KXtjYXNlImJvb2xlYW4iOkt0LnQ9ImIiLEt0LnY9ZWkoVG5bImJvb2xlYW4tdmFsdWUiXSk7YnJlYWs7Y2FzZSJmbG9hdCI6Y2FzZSJwZXJjZW50YWdlIjpjYXNlImN1cnJlbmN5IjpLdC50PSJuIixLdC52PXBh'@; put 'cnNlRmxvYXQoVG4udmFsdWUpO2JyZWFrO2Nhc2UiZGF0ZSI6S3QudD0iZCIsS3Qudj1OZShUblsiZGF0ZS12YWx1ZSJdKSxtZS5jZWxsRGF0ZXN8fChLdC50PSJuIixLdC52PUplKEt0LnYpKSxLdC56PSJtL2QveXkiO2JyZWFrO2Nhc2UidGltZSI6S3QudD0ibiIsS3Qudj1ydChUblsidGlt'@; put 'ZS12YWx1ZSJdKS84NjQwMCxtZS5jZWxsRGF0ZXMmJihLdC50PSJkIixLdC52PW9uKEt0LnYpKSxLdC56PSJISDpNTTpTUyI7YnJlYWs7Y2FzZSJudW1iZXIiOkt0LnQ9Im4iLEt0LnY9cGFyc2VGbG9hdChUbi5cdTY1NzBcdTYzNmVcdTY1NzBcdTUwM2MpO2JyZWFrO2RlZmF1bHQ6aWYoInN0'@; put 'cmluZyIhPT1LdC50JiYidGV4dCIhPT1LdC50JiZLdC50KXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgdmFsdWUgdHlwZSAiK0t0LnQpO0t0LnQ9InMiLG51bGwhPVRuWyJzdHJpbmctdmFsdWUiXSYmKHNyPVFyKFRuWyJzdHJpbmctdmFsdWUiXSksZXI9W10pfX1lbHNle2lmKHVzPSEx'@; put 'LCJzIj09PUt0LnQmJihLdC52PXNyfHwiIixlci5sZW5ndGgmJihLdC5SPWVyKSx1cz0wPT1DbiksenIuVGFyZ2V0JiYoS3QubD16ciksQ2kubGVuZ3RoPjAmJihLdC5jPUNpLENpPVtdKSxzciYmITEhPT1tZS5jZWxsVGV4dCYmKEt0Lnc9c3IpLHVzJiYoS3QudD0ieiIsZGVsZXRlIEt0LnYp'@; put 'LG1lLmNlbGxIVE1MJiYoS3QuaD1LdC5SP0Z1KEt0LlIpOm9hKCIiK0t0LnYpKSwoIXVzfHxtZS5zaGVldFN0dWJzKSYmIShtZS5zaGVldFJvd3MmJm1lLnNoZWV0Um93czw9am4pKWZvcih2YXIgRm49MDtGbjxCbjsrK0ZuKXtpZihqcj1wYXJzZUludChUblsibnVtYmVyLWNvbHVtbnMtcmVw'@; put 'ZWF0ZWQiXXx8IjEiLDEwKSxtZS5kZW5zZSlmb3IoRHRbam4rRm5dfHwoRHRbam4rRm5dPVtdKSxEdFtqbitGbl1bcHJdPTA9PUZuP0t0Okp0KEt0KTstLWpyPjA7KUR0W2puK0ZuXVtwcitqcl09SnQoS3QpO2Vsc2UgZm9yKER0W3FpKHtyOmpuK0ZuLGM6cHJ9KV09S3Q7LS1qcj4wOylEdFtx'@; put 'aSh7cjpqbitGbixjOnByK2pyfSldPUp0KEt0KTtici5lLmM8PXByJiYoYnIuZS5jPXByKX1wcis9KGpyPXBhcnNlSW50KFRuWyJudW1iZXItY29sdW1ucy1yZXBlYXRlZCJdfHwiMSIsMTApKS0xLGpyPTAsS3Q9e30sc3I9IiIsZXI9W119enI9e307YnJlYWs7Y2FzZSJkb2N1bWVudCI6Y2Fz'@; put 'ZSJkb2N1bWVudC1jb250ZW50IjpjYXNlIlx1NzUzNVx1NWI1MFx1ODg2OFx1NjgzY1x1NjU4N1x1Njg2MyI6Y2FzZSJzcHJlYWRzaGVldCI6Y2FzZSJcdTRlM2JcdTRmNTMiOmNhc2Uic2NyaXB0cyI6Y2FzZSJzdHlsZXMiOmNhc2UiZm9udC1mYWNlLWRlY2xzIjpjYXNlIm1hc3Rlci1zdHls'@; put 'ZXMiOmlmKCIvIj09PU90WzFdKXtpZigoUGU9YmUucG9wKCkpWzBdIT09T3RbM10pdGhyb3ciQmFkIHN0YXRlOiAiK1BlfWVsc2UiLyIhPT1PdFswXS5jaGFyQXQoT3RbMF0ubGVuZ3RoLTIpJiZiZS5wdXNoKFtPdFszXSwhMF0pO2JyZWFrO2Nhc2UiYW5ub3RhdGlvbiI6aWYoIi8iPT09T3Rb'@; put 'MV0pe2lmKChQZT1iZS5wb3AoKSlbMF0hPT1PdFszXSl0aHJvdyJCYWQgc3RhdGU6ICIrUGU7d2EudD1zcixlci5sZW5ndGgmJih3YS5SPWVyKSx3YS5hPU9zLENpLnB1c2god2EpfWVsc2UiLyIhPT1PdFswXS5jaGFyQXQoT3RbMF0ubGVuZ3RoLTIpJiZiZS5wdXNoKFtPdFszXSwhMV0pO09z'@; put 'PSIiLFBhPTAsc3I9IiIsQ249MCxlcj1bXTticmVhaztjYXNlImNyZWF0b3IiOiIvIj09PU90WzFdP09zPXBlLnNsaWNlKFBhLE90LmluZGV4KTpQYT1PdC5pbmRleCtPdFswXS5sZW5ndGg7YnJlYWs7Y2FzZSJtZXRhIjpjYXNlIlx1NTE0M1x1NjU3MFx1NjM2ZSI6Y2FzZSJzZXR0aW5ncyI6'@; put 'Y2FzZSJjb25maWctaXRlbS1zZXQiOmNhc2UiY29uZmlnLWl0ZW0tbWFwLWluZGV4ZWQiOmNhc2UiY29uZmlnLWl0ZW0tbWFwLWVudHJ5IjpjYXNlImNvbmZpZy1pdGVtLW1hcC1uYW1lZCI6Y2FzZSJzaGFwZXMiOmNhc2UiZnJhbWUiOmNhc2UidGV4dC1ib3giOmNhc2UiaW1hZ2UiOmNhc2Ui'@; put 'ZGF0YS1waWxvdC10YWJsZXMiOmNhc2UibGlzdC1zdHlsZSI6Y2FzZSJmb3JtIjpjYXNlImRkZS1saW5rcyI6Y2FzZSJldmVudC1saXN0ZW5lcnMiOmNhc2UiY2hhcnQiOmlmKCIvIj09PU90WzFdKXtpZigoUGU9YmUucG9wKCkpWzBdIT09T3RbM10pdGhyb3ciQmFkIHN0YXRlOiAiK1BlfWVs'@; put 'c2UiLyIhPT1PdFswXS5jaGFyQXQoT3RbMF0ubGVuZ3RoLTIpJiZiZS5wdXNoKFtPdFszXSwhMV0pO3NyPSIiLENuPTAsZXI9W107YnJlYWs7Y2FzZSJzY2llbnRpZmljLW51bWJlciI6Y2FzZSJjdXJyZW5jeS1zeW1ib2wiOmNhc2UiY3VycmVuY3ktc3R5bGUiOmNhc2Uic2NyaXB0IjpjYXNl'@; put 'ImxpYnJhcmllcyI6Y2FzZSJhdXRvbWF0aWMtc3R5bGVzIjpjYXNlImRlZmF1bHQtc3R5bGUiOmNhc2UicGFnZS1sYXlvdXQiOmNhc2UibWFwIjpjYXNlImZvbnQtZmFjZSI6Y2FzZSJwYXJhZ3JhcGgtcHJvcGVydGllcyI6Y2FzZSJ0YWJsZS1wcm9wZXJ0aWVzIjpjYXNlInRhYmxlLWNvbHVt'@; put 'bi1wcm9wZXJ0aWVzIjpjYXNlInRhYmxlLXJvdy1wcm9wZXJ0aWVzIjpjYXNlInRhYmxlLWNlbGwtcHJvcGVydGllcyI6Y2FzZSJmcmFjdGlvbiI6Y2FzZSJib29sZWFuLXN0eWxlIjpjYXNlImJvb2xlYW4iOmNhc2UidGV4dC1zdHlsZSI6Y2FzZSJ0ZXh0LWNvbnRlbnQiOmNhc2UidGV4dC1w'@; put 'cm9wZXJ0aWVzIjpjYXNlImVtYmVkZGVkLXRleHQiOmNhc2UiYm9keSI6Y2FzZSJcdTc1MzVcdTViNTBcdTg4NjhcdTY4M2MiOmNhc2UiZm9ybXMiOmNhc2UidGFibGUtY29sdW1uIjpjYXNlInRhYmxlLWhlYWRlci1yb3dzIjpjYXNlInRhYmxlLXJvd3MiOmNhc2UidGFibGUtY29sdW1uLWdy'@; put 'b3VwIjpjYXNlInRhYmxlLWhlYWRlci1jb2x1bW5zIjpjYXNlInRhYmxlLWNvbHVtbnMiOmNhc2UibnVsbC1kYXRlIjpjYXNlImdyYXBoaWMtcHJvcGVydGllcyI6Y2FzZSJjYWxjdWxhdGlvbi1zZXR0aW5ncyI6Y2FzZSJuYW1lZC1leHByZXNzaW9ucyI6Y2FzZSJsYWJlbC1yYW5nZSI6Y2Fz'@; put 'ZSJsYWJlbC1yYW5nZXMiOmNhc2UibmFtZWQtZXhwcmVzc2lvbiI6Y2FzZSJzb3J0IjpjYXNlInNvcnQtYnkiOmNhc2Uic29ydC1ncm91cHMiOmNhc2UidGFiIjpjYXNlImxpbmUtYnJlYWsiOmNhc2Uic3BhbiI6Y2FzZSJzIjpjYXNlImRhdGUiOmNhc2Uib2JqZWN0IjpjYXNlInRpdGxlIjpj'@; put 'YXNlIlx1NjgwN1x1OTg5OCI6Y2FzZSJkZXNjIjpjYXNlImJpbmFyeS1kYXRhIjpjYXNlInRhYmxlLXNvdXJjZSI6Y2FzZSJzY2VuYXJpbyI6Y2FzZSJpdGVyYXRpb24iOmNhc2UiY29udGVudC12YWxpZGF0aW9ucyI6Y2FzZSJjb250ZW50LXZhbGlkYXRpb24iOmNhc2UiaGVscC1tZXNzYWdl'@; put 'IjpjYXNlImVycm9yLW1lc3NhZ2UiOmNhc2UiZGF0YWJhc2UtcmFuZ2VzIjpjYXNlImZpbHRlciI6Y2FzZSJmaWx0ZXItYW5kIjpjYXNlImZpbHRlci1vciI6Y2FzZSJmaWx0ZXItY29uZGl0aW9uIjpjYXNlImxpc3QtbGV2ZWwtc3R5bGUtYnVsbGV0IjpjYXNlImxpc3QtbGV2ZWwtc3R5bGUt'@; put 'bnVtYmVyIjpjYXNlImxpc3QtbGV2ZWwtcHJvcGVydGllcyI6Y2FzZSJzZW5kZXItZmlyc3RuYW1lIjpjYXNlInNlbmRlci1sYXN0bmFtZSI6Y2FzZSJzZW5kZXItaW5pdGlhbHMiOmNhc2Uic2VuZGVyLXRpdGxlIjpjYXNlInNlbmRlci1wb3NpdGlvbiI6Y2FzZSJzZW5kZXItZW1haWwiOmNh'@; put 'c2Uic2VuZGVyLXBob25lLXByaXZhdGUiOmNhc2Uic2VuZGVyLWZheCI6Y2FzZSJzZW5kZXItY29tcGFueSI6Y2FzZSJzZW5kZXItcGhvbmUtd29yayI6Y2FzZSJzZW5kZXItc3RyZWV0IjpjYXNlInNlbmRlci1jaXR5IjpjYXNlInNlbmRlci1wb3N0YWwtY29kZSI6Y2FzZSJzZW5kZXItY291'@; put 'bnRyeSI6Y2FzZSJzZW5kZXItc3RhdGUtb3ItcHJvdmluY2UiOmNhc2UiYXV0aG9yLW5hbWUiOmNhc2UiYXV0aG9yLWluaXRpYWxzIjpjYXNlImNoYXB0ZXIiOmNhc2UiZmlsZS1uYW1lIjpjYXNlInRlbXBsYXRlLW5hbWUiOmNhc2Uic2hlZXQtbmFtZSI6Y2FzZSJldmVudC1saXN0ZW5lciI6'@; put 'Y2FzZSJpbml0aWFsLWNyZWF0b3IiOmNhc2UiY3JlYXRpb24tZGF0ZSI6Y2FzZSJwcmludC1kYXRlIjpjYXNlImdlbmVyYXRvciI6Y2FzZSJkb2N1bWVudC1zdGF0aXN0aWMiOmNhc2UidXNlci1kZWZpbmVkIjpjYXNlImVkaXRpbmctZHVyYXRpb24iOmNhc2UiZWRpdGluZy1jeWNsZXMiOmNh'@; put 'c2UiY29uZmlnLWl0ZW0iOmNhc2UicGFnZS1udW1iZXIiOmNhc2UicGFnZS1jb3VudCI6Y2FzZSJ0aW1lIjpjYXNlImNlbGwtcmFuZ2Utc291cmNlIjpjYXNlImRldGVjdGl2ZSI6Y2FzZSJvcGVyYXRpb24iOmNhc2UiaGlnaGxpZ2h0ZWQtcmFuZ2UiOmNhc2UiZGF0YS1waWxvdC10YWJsZSI6'@; put 'Y2FzZSJzb3VyY2UtY2VsbC1yYW5nZSI6Y2FzZSJzb3VyY2Utc2VydmljZSI6Y2FzZSJkYXRhLXBpbG90LWZpZWxkIjpjYXNlImRhdGEtcGlsb3QtbGV2ZWwiOmNhc2UiZGF0YS1waWxvdC1zdWJ0b3RhbHMiOmNhc2UiZGF0YS1waWxvdC1zdWJ0b3RhbCI6Y2FzZSJkYXRhLXBpbG90LW1lbWJl'@; put 'cnMiOmNhc2UiZGF0YS1waWxvdC1tZW1iZXIiOmNhc2UiZGF0YS1waWxvdC1kaXNwbGF5LWluZm8iOmNhc2UiZGF0YS1waWxvdC1zb3J0LWluZm8iOmNhc2UiZGF0YS1waWxvdC1sYXlvdXQtaW5mbyI6Y2FzZSJkYXRhLXBpbG90LWZpZWxkLXJlZmVyZW5jZSI6Y2FzZSJkYXRhLXBpbG90LWdy'@; put 'b3VwcyI6Y2FzZSJkYXRhLXBpbG90LWdyb3VwIjpjYXNlImRhdGEtcGlsb3QtZ3JvdXAtbWVtYmVyIjpjYXNlInJlY3QiOmNhc2UiZGRlLWNvbm5lY3Rpb24tZGVjbHMiOmNhc2UiZGRlLWNvbm5lY3Rpb24tZGVjbCI6Y2FzZSJkZGUtbGluayI6Y2FzZSJkZGUtc291cmNlIjpjYXNlInByb3Bl'@; put 'cnRpZXMiOmNhc2UicHJvcGVydHkiOmNhc2UidGFibGUtcHJvdGVjdGlvbiI6Y2FzZSJkYXRhLXBpbG90LWdyYW5kLXRvdGFsIjpjYXNlIm9mZmljZS1kb2N1bWVudC1jb21tb24tYXR0cnMiOmJyZWFrO2Nhc2UibnVtYmVyLXN0eWxlIjpjYXNlInBlcmNlbnRhZ2Utc3R5bGUiOmNhc2UiZGF0'@; put 'ZS1zdHlsZSI6Y2FzZSJ0aW1lLXN0eWxlIjppZigiLyI9PT1PdFsxXSl7aWYoU2lbWWUubmFtZV09ZXQsKFBlPWJlLnBvcCgpKVswXSE9PU90WzNdKXRocm93IkJhZCBzdGF0ZTogIitQZX1lbHNlIi8iIT09T3RbMF0uY2hhckF0KE90WzBdLmxlbmd0aC0yKSYmKGV0PSIiLFllPXlyKE90WzBd'@; put 'LCExKSxiZS5wdXNoKFtPdFszXSwhMF0pKTticmVhaztjYXNlInN0eWxlIjoiLz4iPT09T3RbMF0uc2xpY2UoLTIpP2soT3RbMF0sb3MpOiIvIj09T3RbMV0/ayhwZS5zbGljZShpYSxPdC5pbmRleCtPdFswXS5sZW5ndGgpLG9zKTppYT1PdC5pbmRleDticmVhaztjYXNlIm51bWJlciI6Y2Fz'@; put 'ZSJkYXkiOmNhc2UibW9udGgiOmNhc2UieWVhciI6Y2FzZSJlcmEiOmNhc2UiZGF5LW9mLXdlZWsiOmNhc2Uid2Vlay1vZi15ZWFyIjpjYXNlInF1YXJ0ZXIiOmNhc2UiaG91cnMiOmNhc2UibWludXRlcyI6Y2FzZSJzZWNvbmRzIjpjYXNlImFtLXBtIjpzd2l0Y2goYmVbYmUubGVuZ3RoLTFd'@; put 'WzBdKXtjYXNlInRpbWUtc3R5bGUiOmNhc2UiZGF0ZS1zdHlsZSI6VmU9eXIoT3RbMF0sITEpLGV0Kz1PW090WzNdXVsibG9uZyI9PT1WZS5zdHlsZT8xOjBdfWJyZWFrO2Nhc2UidGV4dCI6aWYoIi8+Ij09PU90WzBdLnNsaWNlKC0yKSlicmVhaztpZigiLyI9PT1PdFsxXSlzd2l0Y2goYmVb'@; put 'YmUubGVuZ3RoLTFdWzBdKXtjYXNlIm51bWJlci1zdHlsZSI6Y2FzZSJkYXRlLXN0eWxlIjpjYXNlInRpbWUtc3R5bGUiOmV0Kz1wZS5zbGljZShjdCxPdC5pbmRleCl9ZWxzZSBjdD1PdC5pbmRleCtPdFswXS5sZW5ndGg7YnJlYWs7Y2FzZSJuYW1lZC1yYW5nZSI6V2k9bnkoKFZlPXlyKE90'@; put 'WzBdLCExKSlbImNlbGwtcmFuZ2UtYWRkcmVzcyJdKTt2YXIgWXM9e05hbWU6VmUubmFtZSxSZWY6V2lbMF0rIiEiK1dpWzFdfTtxYSYmKFlzLlNoZWV0PUJ0Lmxlbmd0aCksSG4uTmFtZXMucHVzaChZcyk7YnJlYWs7Y2FzZSJwIjpjYXNlIlx1NjU4N1x1NjcyY1x1NGUzMiI6aWYoWyJtYXN0'@; put 'ZXItc3R5bGVzIl0uaW5kZXhPZihiZVtiZS5sZW5ndGgtMV1bMF0pPi0xKWJyZWFrO2lmKCIvIiE9PU90WzFdfHxUbiYmVG5bInN0cmluZy12YWx1ZSJdKXlyKE90WzBdLCExKSxDbj1PdC5pbmRleCtPdFswXS5sZW5ndGg7ZWxzZXt2YXIgaHI9UyhwZS5zbGljZShDbixPdC5pbmRleCksMCxv'@; put 'cyk7c3I9KHNyLmxlbmd0aD4wP3NyKyJcbiI6IiIpK2hyWzBdLGVyPWhyWzFdfWJyZWFrO2Nhc2UiZGF0YWJhc2UtcmFuZ2UiOmlmKCIvIj09PU90WzFdKWJyZWFrO3RyeXtidFsoV2k9bnkoeXIoT3RbMF0pWyJ0YXJnZXQtcmFuZ2UtYWRkcmVzcyJdKSlbMF1dWyIhYXV0b2ZpbHRlciJdPXty'@; put 'ZWY6V2lbMV19fWNhdGNoe31icmVhaztjYXNlImEiOmlmKCIvIiE9PU90WzFdKXtpZighKHpyPXlyKE90WzBdLCExKSkuaHJlZilicmVhazt6ci5UYXJnZXQ9UXIoenIuaHJlZiksZGVsZXRlIHpyLmhyZWYsIiMiPT16ci5UYXJnZXQuY2hhckF0KDApJiZ6ci5UYXJnZXQuaW5kZXhPZigiLiIp'@; put 'Pi0xPyhXaT1ueSh6ci5UYXJnZXQuc2xpY2UoMSkpLHpyLlRhcmdldD0iIyIrV2lbMF0rIiEiK1dpWzFdKTp6ci5UYXJnZXQubWF0Y2goL15cLlwuW1xcXC9dLykmJih6ci5UYXJnZXQ9enIuVGFyZ2V0LnNsaWNlKDMpKX1icmVhaztkZWZhdWx0OnN3aXRjaChPdFsyXSl7Y2FzZSJkYzoiOmNh'@; put 'c2UiY2FsY2V4dDoiOmNhc2UibG9leHQ6IjpjYXNlIm9vbzoiOmNhc2UiY2hhcnRvb286IjpjYXNlImRyYXc6IjpjYXNlInN0eWxlOiI6Y2FzZSJjaGFydDoiOmNhc2UiZm9ybToiOmNhc2UidW9mOiI6Y2FzZSJcdTg4Njg6IjpjYXNlIlx1NWI1NzoiOmJyZWFrO2RlZmF1bHQ6aWYobWUuV1RG'@; put 'KXRocm93IG5ldyBFcnJvcihPdCl9fXZhciBKbD17U2hlZXRzOmJ0LFNoZWV0TmFtZXM6QnQsV29ya2Jvb2s6SG59O3JldHVybiBtZS5ib29rU2hlZXRzJiZkZWxldGUgSmwuU2hlZXRzLEpsfX0oKTtmdW5jdGlvbiBPSShTLE8pe3JldHVybiBuTShTLE8pfXZhciBHej1mdW5jdGlvbigpe3Zh'@; put 'ciBTPVsiICA8b2ZmaWNlOm1hc3Rlci1zdHlsZXM+IiwnICAgIDxzdHlsZTptYXN0ZXItcGFnZSBzdHlsZTpuYW1lPSJtcDEiIHN0eWxlOnBhZ2UtbGF5b3V0LW5hbWU9Im1wMSI+JywiICAgICAgPHN0eWxlOmhlYWRlci8+IiwnICAgICAgPHN0eWxlOmhlYWRlci1sZWZ0IHN0eWxlOmRpc3Bs'@; put 'YXk9ImZhbHNlIi8+JywiICAgICAgPHN0eWxlOmZvb3Rlci8+IiwnICAgICAgPHN0eWxlOmZvb3Rlci1sZWZ0IHN0eWxlOmRpc3BsYXk9ImZhbHNlIi8+JywiICAgIDwvc3R5bGU6bWFzdGVyLXBhZ2U+IiwiICA8L29mZmljZTptYXN0ZXItc3R5bGVzPiJdLmpvaW4oIlxuIiksTz0iPG9mZmlj'@; put 'ZTpkb2N1bWVudC1zdHlsZXMgIitEdSh7InhtbG5zOm9mZmljZSI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6b2ZmaWNlOjEuMCIsInhtbG5zOnRhYmxlIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczp0YWJsZToxLjAiLCJ4bWxuczpzdHls'@; put 'ZSI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6c3R5bGU6MS4wIiwieG1sbnM6dGV4dCI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6dGV4dDoxLjAiLCJ4bWxuczpkcmF3IjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxu'@; put 'czpkcmF3aW5nOjEuMCIsInhtbG5zOmZvIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczp4c2wtZm8tY29tcGF0aWJsZToxLjAiLCJ4bWxuczp4bGluayI6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCJ4bWxuczpkYyI6Imh0dHA6Ly9wdXJsLm9yZy9kYy9l'@; put 'bGVtZW50cy8xLjEvIiwieG1sbnM6bnVtYmVyIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpkYXRhc3R5bGU6MS4wIiwieG1sbnM6c3ZnIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpzdmctY29tcGF0aWJsZToxLjAiLCJ4bWxuczpvZiI6'@; put 'InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6b2Y6MS4yIiwib2ZmaWNlOnZlcnNpb24iOiIxLjIifSkrIj5cbiIrUysiXG48L29mZmljZTpkb2N1bWVudC1zdHlsZXM+IjtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gRGkrT319KCksUDg9ZnVuY3Rpb24oKXt2YXIgUz1m'@; put 'dW5jdGlvbihwZSxiZSl7cmV0dXJuIFByKHBlKS5yZXBsYWNlKC8gICsvZyxmdW5jdGlvbihQZSl7cmV0dXJuJzx0ZXh0OnMgdGV4dDpjPSInK1BlLmxlbmd0aCsnIi8+J30pLnJlcGxhY2UoL1x0L2csIjx0ZXh0OnRhYi8+IikucmVwbGFjZSgvXG4vZyxiZT8iPHRleHQ6bGluZS1icmVhay8+'@; put 'IjoiPC90ZXh0OnA+PHRleHQ6cD4iKS5yZXBsYWNlKC9eIC8sIjx0ZXh0OnMvPiIpLnJlcGxhY2UoLyAkLywiPHRleHQ6cy8+Iil9LE89ZnVuY3Rpb24ocGUpe3JldHVybiBwZS5tYXAoZnVuY3Rpb24oYmUpe3ZhciBQZT0iIjtyZXR1cm4gbnVsbCE9YmUub2RzJiYoUGUrPScgdGV4dDpzdHls'@; put 'ZS1uYW1lPSJUJytiZS5vZHMrJyInKSxiZS52PyI8dGV4dDpzcGFuIitQZSsiPiIrUyhiZS52LCEwKSsiPC90ZXh0OnNwYW4+IjoiIn0pLmpvaW4oIiIpfSxrPSIgICAgICAgICAgPHRhYmxlOnRhYmxlLWNlbGwgLz5cbiIsZWU9ZnVuY3Rpb24ocGUsYmUsUGUpe3ZhciBWZT1bXTtWZS5wdXNo'@; put 'KCcgICAgICA8dGFibGU6dGFibGUgdGFibGU6bmFtZT0iJytQcihiZS5TaGVldE5hbWVzW1BlXSkrJyIgdGFibGU6c3R5bGUtbmFtZT0idGExIj5cbicpO3ZhciBZZT0wLGV0PTAsY3Q9U28ocGVbIiFyZWYiXXx8IkExIiksVHQ9cGVbIiFtZXJnZXMiXXx8W10saXQ9MCxidD1BcnJheS5pc0Fy'@; put 'cmF5KHBlKTtpZihwZVsiIWNvbHMiXSlmb3IoZXQ9MDtldDw9Y3QuZS5jOysrZXQpVmUucHVzaCgiICAgICAgICA8dGFibGU6dGFibGUtY29sdW1uIisocGVbIiFjb2xzIl1bZXRdPycgdGFibGU6c3R5bGUtbmFtZT0iY28nK3BlWyIhY29scyJdW2V0XS5vZHMrJyInOiIiKSsiPjwvdGFibGU6'@; put 'dGFibGUtY29sdW1uPlxuIik7dmFyIER0PXBlWyIhcm93cyJdfHxbXTtmb3IoWWU9MDtZZTxjdC5zLnI7KytZZSlWZS5wdXNoKCIgICAgICAgIDx0YWJsZTp0YWJsZS1yb3ciKyhEdFtZZV0/JyB0YWJsZTpzdHlsZS1uYW1lPSJybycrRHRbWWVdLm9kcysnIic6IiIpKyI+PC90YWJsZTp0YWJs'@; put 'ZS1yb3c+XG4iKTtmb3IoO1llPD1jdC5lLnI7KytZZSl7Zm9yKFZlLnB1c2goIiAgICAgICAgPHRhYmxlOnRhYmxlLXJvdyIrKER0W1llXT8nIHRhYmxlOnN0eWxlLW5hbWU9InJvJytEdFtZZV0ub2RzKyciJzoiIikrIj5cbiIpLGV0PTA7ZXQ8Y3Qucy5jOysrZXQpVmUucHVzaChrKTtmb3Io'@; put 'O2V0PD1jdC5lLmM7KytldCl7dmFyIE90PSExLEt0PXt9LFRuPSIiO2ZvcihpdD0wO2l0IT1UdC5sZW5ndGg7KytpdClpZighKFR0W2l0XS5zLmM+ZXR8fFR0W2l0XS5zLnI+WWV8fFR0W2l0XS5lLmM8ZXR8fFR0W2l0XS5lLnI8WWUpKXsoVHRbaXRdLnMuYyE9ZXR8fFR0W2l0XS5zLnIhPVll'@; put 'KSYmKE90PSEwKSxLdFsidGFibGU6bnVtYmVyLWNvbHVtbnMtc3Bhbm5lZCJdPVR0W2l0XS5lLmMtVHRbaXRdLnMuYysxLEt0WyJ0YWJsZTpudW1iZXItcm93cy1zcGFubmVkIl09VHRbaXRdLmUuci1UdFtpdF0ucy5yKzE7YnJlYWt9aWYoT3QpVmUucHVzaCgiICAgICAgICAgIDx0YWJsZTpj'@; put 'b3ZlcmVkLXRhYmxlLWNlbGwvPlxuIik7ZWxzZXt2YXIgc3I9cWkoe3I6WWUsYzpldH0pLENuPWJ0PyhwZVtZZV18fFtdKVtldF06cGVbc3JdO2lmKENuJiZDbi5mJiYoS3RbInRhYmxlOmZvcm11bGEiXT1QcihaNChDbi5mKSksQ24uRiYmQ24uRi5zbGljZSgwLHNyLmxlbmd0aCk9PXNyKSl7'@; put 'dmFyIHVyPVNvKENuLkYpO0t0WyJ0YWJsZTpudW1iZXItbWF0cml4LWNvbHVtbnMtc3Bhbm5lZCJdPXVyLmUuYy11ci5zLmMrMSxLdFsidGFibGU6bnVtYmVyLW1hdHJpeC1yb3dzLXNwYW5uZWQiXT11ci5lLnItdXIucy5yKzF9aWYoQ24pe3N3aXRjaChDbi50KXtjYXNlImIiOlRuPUNuLnY/'@; put 'IlRSVUUiOiJGQUxTRSIsS3RbIm9mZmljZTp2YWx1ZS10eXBlIl09ImJvb2xlYW4iLEt0WyJvZmZpY2U6Ym9vbGVhbi12YWx1ZSJdPUNuLnY/InRydWUiOiJmYWxzZSI7YnJlYWs7Y2FzZSJuIjpUbj1Dbi53fHxTdHJpbmcoQ24udnx8MCksS3RbIm9mZmljZTp2YWx1ZS10eXBlIl09ImZsb2F0'@; put 'IixLdFsib2ZmaWNlOnZhbHVlIl09Q24udnx8MDticmVhaztjYXNlInMiOmNhc2Uic3RyIjpUbj1Dbi52LEt0WyJvZmZpY2U6dmFsdWUtdHlwZSJdPSJzdHJpbmciO2JyZWFrO2Nhc2UiZCI6VG49Q24ud3x8TmUoQ24udikudG9JU09TdHJpbmcoKSxLdFsib2ZmaWNlOnZhbHVlLXR5cGUiXT0i'@; put 'ZGF0ZSIsS3RbIm9mZmljZTpkYXRlLXZhbHVlIl09TmUoQ24udikudG9JU09TdHJpbmcoKSxLdFsidGFibGU6c3R5bGUtbmFtZSJdPSJjZTEiO2JyZWFrO2RlZmF1bHQ6VmUucHVzaChrKTtjb250aW51ZX1udWxsIT1Dbi5vZHMmJiFLdFsidGFibGU6c3R5bGUtbmFtZSJdJiYoS3RbInRhYmxl'@; put 'OnN0eWxlLW5hbWUiXT0iY2UiK0NuLm9kcyk7dmFyIGVyPSFDbi5SfHxDbi5sJiZDbi5sLlRhcmdldD9TKFRuKTpPKENuLlIpO2lmKENuLmwmJkNuLmwuVGFyZ2V0KXt2YXIgam49Q24ubC5UYXJnZXQ7IiMiIT0oam49IiMiPT1qbi5jaGFyQXQoMCk/IiMiK3lEKGpuLnNsaWNlKDEpKTpqbiku'@; put 'Y2hhckF0KDApJiYham4ubWF0Y2goL15cdys6LykmJihqbj0iLi4vIitqbiksZXI9SHIoInRleHQ6YSIsZXIseyJ4bGluazpocmVmIjpqbi5yZXBsYWNlKC8mL2csIiZhbXA7Iil9KX1WZS5wdXNoKCIgICAgICAgICAgIitIcigidGFibGU6dGFibGUtY2VsbCIsSHIoInRleHQ6cCIsZXIse30p'@; put 'LEt0KSsiXG4iKX1lbHNlIFZlLnB1c2goayl9fVZlLnB1c2goIiAgICAgICAgPC90YWJsZTp0YWJsZS1yb3c+XG4iKX1yZXR1cm4gVmUucHVzaCgiICAgICAgPC90YWJsZTp0YWJsZT5cbiIpLFZlLmpvaW4oIiIpfSxvZT17Y2VudGVyOiJjZW50ZXIiLGxlZnQ6InN0YXJ0IixyaWdodDoiZW5k'@; put 'In07cmV0dXJuIGZ1bmN0aW9uKGJlLFBlKXt2YXIgVmU9W0RpXSxZZT1EdSh7InhtbG5zOm9mZmljZSI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6b2ZmaWNlOjEuMCIsInhtbG5zOnRhYmxlIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczp0'@; put 'YWJsZToxLjAiLCJ4bWxuczpzdHlsZSI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6c3R5bGU6MS4wIiwieG1sbnM6dGV4dCI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6dGV4dDoxLjAiLCJ4bWxuczpkcmF3IjoidXJuOm9hc2lzOm5hbWVz'@; put 'OnRjOm9wZW5kb2N1bWVudDp4bWxuczpkcmF3aW5nOjEuMCIsInhtbG5zOmZvIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczp4c2wtZm8tY29tcGF0aWJsZToxLjAiLCJ4bWxuczp4bGluayI6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCJ4bWxuczpkYyI6'@; put 'Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiwieG1sbnM6bWV0YSI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6bWV0YToxLjAiLCJ4bWxuczpudW1iZXIiOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOmRhdGFzdHlsZToxLjAi'@; put 'LCJ4bWxuczpwcmVzZW50YXRpb24iOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOnByZXNlbnRhdGlvbjoxLjAiLCJ4bWxuczpzdmciOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOnN2Zy1jb21wYXRpYmxlOjEuMCIsInhtbG5zOmNoYXJ0Ijoi'@; put 'dXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpjaGFydDoxLjAiLCJ4bWxuczpkcjNkIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpkcjNkOjEuMCIsInhtbG5zOm1hdGgiOiJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIiwieG1s'@; put 'bnM6Zm9ybSI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6Zm9ybToxLjAiLCJ4bWxuczpzY3JpcHQiOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOnNjcmlwdDoxLjAiLCJ4bWxuczpvb28iOiJodHRwOi8vb3Blbm9mZmljZS5vcmcvMjAwNC9v'@; put 'ZmZpY2UiLCJ4bWxuczpvb293IjoiaHR0cDovL29wZW5vZmZpY2Uub3JnLzIwMDQvd3JpdGVyIiwieG1sbnM6b29vYyI6Imh0dHA6Ly9vcGVub2ZmaWNlLm9yZy8yMDA0L2NhbGMiLCJ4bWxuczpkb20iOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxL3htbC1ldmVudHMiLCJ4bWxuczp4Zm9ybXMi'@; put 'OiJodHRwOi8vd3d3LnczLm9yZy8yMDAyL3hmb3JtcyIsInhtbG5zOnhzZCI6Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiwieG1sbnM6eHNpIjoiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiLCJ4bWxuczpzaGVldCI6InVybjpvYXNpczpuYW1l'@; put 'czp0YzpvcGVuZG9jdW1lbnQ6c2gzM3RqczoxLjAiLCJ4bWxuczpycHQiOiJodHRwOi8vb3Blbm9mZmljZS5vcmcvMjAwNS9yZXBvcnQiLCJ4bWxuczpvZiI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6b2Y6MS4yIiwieG1sbnM6eGh0bWwiOiJodHRwOi8vd3d3Lncz'@; put 'Lm9yZy8xOTk5L3hodG1sIiwieG1sbnM6Z3JkZGwiOiJodHRwOi8vd3d3LnczLm9yZy8yMDAzL2cvZGF0YS12aWV3IyIsInhtbG5zOnRhYmxlb29vIjoiaHR0cDovL29wZW5vZmZpY2Uub3JnLzIwMDkvdGFibGUiLCJ4bWxuczpkcmF3b29vIjoiaHR0cDovL29wZW5vZmZpY2Uub3JnLzIwMTAv'@; put 'ZHJhdyIsInhtbG5zOmNhbGNleHQiOiJ1cm46b3JnOmRvY3VtZW50Zm91bmRhdGlvbjpuYW1lczpleHBlcmltZW50YWw6Y2FsYzp4bWxuczpjYWxjZXh0OjEuMCIsInhtbG5zOmxvZXh0IjoidXJuOm9yZzpkb2N1bWVudGZvdW5kYXRpb246bmFtZXM6ZXhwZXJpbWVudGFsOm9mZmljZTp4bWxu'@; put 'czpsb2V4dDoxLjAiLCJ4bWxuczpmaWVsZCI6InVybjpvcGVub2ZmaWNlOm5hbWVzOmV4cGVyaW1lbnRhbDpvb28tbXMtaW50ZXJvcDp4bWxuczpmaWVsZDoxLjAiLCJ4bWxuczpmb3JteCI6InVybjpvcGVub2ZmaWNlOm5hbWVzOmV4cGVyaW1lbnRhbDpvb3htbC1vZGYtaW50ZXJvcDp4bWxu'@; put 'czpmb3JtOjEuMCIsInhtbG5zOmNzczN0IjoiaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy10ZXh0LyIsIm9mZmljZTp2ZXJzaW9uIjoiMS4yIn0pLGV0PUR1KHsieG1sbnM6Y29uZmlnIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpjb25maWc6MS4wIiwib2ZmaWNl'@; put 'Om1pbWV0eXBlIjoiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5zcHJlYWRzaGVldCJ9KTsiZm9kcyI9PVBlLmJvb2tUeXBlPyhWZS5wdXNoKCI8b2ZmaWNlOmRvY3VtZW50IitZZStldCsiPlxuIiksVmUucHVzaChSNigpLnJlcGxhY2UoL29mZmljZTpkb2N1bWVudC1tZXRh'@; put 'L2csIm9mZmljZTptZXRhIikpKTpWZS5wdXNoKCI8b2ZmaWNlOmRvY3VtZW50LWNvbnRlbnQiK1llKyI+XG4iKSxmdW5jdGlvbihwZSxiZSl7dmFyIFBlPVtdLFZlPXt9O1BlLnB1c2goIiA8b2ZmaWNlOmF1dG9tYXRpYy1zdHlsZXM+XG4iKSxQZS5wdXNoKCcgIDxudW1iZXI6ZGF0ZS1zdHls'@; put 'ZSBzdHlsZTpuYW1lPSJOMzciIG51bWJlcjphdXRvbWF0aWMtb3JkZXI9InRydWUiPlxuJyksUGUucHVzaCgnICAgPG51bWJlcjptb250aCBudW1iZXI6c3R5bGU9ImxvbmciLz5cbicpLFBlLnB1c2goIiAgIDxudW1iZXI6dGV4dD4vPC9udW1iZXI6dGV4dD5cbiIpLFBlLnB1c2goJyAgIDxu'@; put 'dW1iZXI6ZGF5IG51bWJlcjpzdHlsZT0ibG9uZyIvPlxuJyksUGUucHVzaCgiICAgPG51bWJlcjp0ZXh0Pi88L251bWJlcjp0ZXh0PlxuIiksUGUucHVzaCgiICAgPG51bWJlcjp5ZWFyLz5cbiIpLFBlLnB1c2goIiAgPC9udW1iZXI6ZGF0ZS1zdHlsZT5cbiIpO3ZhciBZZT0wO2JlLlNoZWV0'@; put 'TmFtZXMubWFwKGZ1bmN0aW9uKGl0KXtyZXR1cm4gYmUuU2hlZXRzW2l0XX0pLmZvckVhY2goZnVuY3Rpb24oaXQpe2lmKGl0JiZpdFsiIWNvbHMiXSlmb3IodmFyIGJ0PTA7YnQ8aXRbIiFjb2xzIl0ubGVuZ3RoOysrYnQpaWYoaXRbIiFjb2xzIl1bYnRdKXt2YXIgQnQ9aXRbIiFjb2xzIl1b'@; put 'YnRdO2lmKG51bGw9PUJ0LndpZHRoJiZudWxsPT1CdC53cHgmJm51bGw9PUJ0LndjaCljb250aW51ZTtKMChCdCksQnQub2RzPVllO3ZhciBEdD1pdFsiIWNvbHMiXVtidF0ud3B4KyJweCI7UGUucHVzaCgnICA8c3R5bGU6c3R5bGUgc3R5bGU6bmFtZT0iY28nK1llKyciIHN0eWxlOmZhbWls'@; put 'eT0idGFibGUtY29sdW1uIj5cbicpLFBlLnB1c2goJyAgIDxzdHlsZTp0YWJsZS1jb2x1bW4tcHJvcGVydGllcyBmbzpicmVhay1iZWZvcmU9ImF1dG8iIHN0eWxlOmNvbHVtbi13aWR0aD0iJytEdCsnIi8+XG4nKSxQZS5wdXNoKCIgIDwvc3R5bGU6c3R5bGU+XG4iKSwrK1llfX0pO3ZhciBl'@; put 'dD0wO2JlLlNoZWV0TmFtZXMubWFwKGZ1bmN0aW9uKGl0KXtyZXR1cm4gYmUuU2hlZXRzW2l0XX0pLmZvckVhY2goZnVuY3Rpb24oaXQpe2lmKGl0JiZpdFsiIXJvd3MiXSlmb3IodmFyIGJ0PTA7YnQ8aXRbIiFyb3dzIl0ubGVuZ3RoOysrYnQpaWYoaXRbIiFyb3dzIl1bYnRdKXtpdFsiIXJv'@; put 'd3MiXVtidF0ub2RzPWV0O3ZhciBCdD1pdFsiIXJvd3MiXVtidF0uaHB4KyJweCI7UGUucHVzaCgnICA8c3R5bGU6c3R5bGUgc3R5bGU6bmFtZT0icm8nK2V0KyciIHN0eWxlOmZhbWlseT0idGFibGUtcm93Ij5cbicpLFBlLnB1c2goJyAgIDxzdHlsZTp0YWJsZS1yb3ctcHJvcGVydGllcyBm'@; put 'bzpicmVhay1iZWZvcmU9ImF1dG8iIHN0eWxlOnJvdy1oZWlnaHQ9IicrQnQrJyIvPlxuJyksUGUucHVzaCgiICA8L3N0eWxlOnN0eWxlPlxuIiksKytldH19KSxQZS5wdXNoKCcgIDxzdHlsZTpzdHlsZSBzdHlsZTpuYW1lPSJ0YTEiIHN0eWxlOmZhbWlseT0idGFibGUiIHN0eWxlOm1hc3Rl'@; put 'ci1wYWdlLW5hbWU9Im1wMSI+XG4nKSxQZS5wdXNoKCcgICA8c3R5bGU6dGFibGUtcHJvcGVydGllcyB0YWJsZTpkaXNwbGF5PSJ0cnVlIiBzdHlsZTp3cml0aW5nLW1vZGU9ImxyLXRiIi8+XG4nKSxQZS5wdXNoKCIgIDwvc3R5bGU6c3R5bGU+XG4iKSxQZS5wdXNoKCcgIDxzdHlsZTpzdHls'@; put 'ZSBzdHlsZTpuYW1lPSJjZTEiIHN0eWxlOmZhbWlseT0idGFibGUtY2VsbCIgc3R5bGU6cGFyZW50LXN0eWxlLW5hbWU9IkRlZmF1bHQiIHN0eWxlOmRhdGEtc3R5bGUtbmFtZT0iTjM3Ii8+XG4nKTt2YXIgY3Q9MjtldD0wLGJlLlNoZWV0TmFtZXMubWFwKGZ1bmN0aW9uKGl0KXtyZXR1cm4g'@; put 'YmUuU2hlZXRzW2l0XX0pLmZvckVhY2goZnVuY3Rpb24oaXQpe2lmKGl0KWZvcih2YXIgYnQ9MCxCdD0wLER0PVNvKGl0WyIhcmVmIl0pLE90PUFycmF5LmlzQXJyYXkoaXQpO2J0PD1EdC5lLnI7KytidClmb3IoQnQ9MDtCdDw9RHQuZS5jOysrQnQpe3ZhciBLdD1xaSh7cjpidCxjOkJ0fSks'@; put 'VG49T3Q/KGl0W2J0XXx8W10pW0J0XTppdFtLdF07aWYoVG4mJihUbi5zfHxUbi5SKSl7dmFyIHNyPVtdO1RuLnMmJnNyLnB1c2goW1RuLCEwXSksVG4uUiYmVG4uUi5mb3JFYWNoKGZ1bmN0aW9uKENuKXtDbiYmQ24ucyYmc3IucHVzaChbQ24sITFdKX0pLHNyLmZvckVhY2goZnVuY3Rpb24o'@; put 'Q24pe3ZhciB1cj1DblswXSxlcj11ci5zLGpuPSIiLHByPXsic3R5bGU6bmFtZSI6KENuWzFdPyJjZSI6IlQiKStjdCwic3R5bGU6ZmFtaWx5IjpDblsxXT8idGFibGUtY2VsbCI6InRleHQifTtDblsxXSYmKHByWyJzdHlsZTpwYXJlbnQtc3R5bGUtbmFtZSJdPSJEZWZhdWx0Iixwclsic3R5'@; put 'bGU6ZGF0YS1zdHlsZS1uYW1lIl09Ik4wIik7dmFyIGJyPXt9LHJyPSExLFNpPXt9LFBpPSExLG5hPXt9LGxhPSExO2lmKGVyLmNvbG9yJiYoU2lbImZvOmNvbG9yIl09IiMiK0wwKGVyLmNvbG9yLnJnYiksUGk9ITApLGVyLnN6JiYoU2lbImZvOmZvbnQtc2l6ZSJdPWVyLnN6KyJwdCIsUGk9'@; put 'ITApLGVyLmJvbGQmJihTaVsiZm86Zm9udC13ZWlnaHQiXT0iYm9sZCIsUGk9ITApLGVyLml0YWxpYyYmKFNpWyJmbzpmb250LXN0eWxlIl09Iml0YWxpYyIsUGk9ITApLGVyLm5hbWUmJihWZVtlci5uYW1lXXx8KFZlW2VyLm5hbWVdPWVyLm5hbWUubWF0Y2goLyAvKT8iJmFwb3M7Iitlci5u'@; put 'YW1lKyImYXBvczsiOmVyLm5hbWUpLFNpWyJzdHlsZTpmb250LW5hbWUiXT1lci5uYW1lLFBpPSEwKSxlci5zdHJpa2UmJihTaVsic3R5bGU6dGV4dC1saW5lLXRocm91Z2gtc3R5bGUiXT0ic29saWQiLFNpWyJzdHlsZTp0ZXh0LWxpbmUtdGhyb3VnaC10eXBlIl09InNpbmdsZSIsUGk9ITAp'@; put 'LGVyLnVuZGVybGluZSYmKFNpWyJzdHlsZTp0ZXh0LXVuZGVybGluZS1zdHlsZSJdPSJzb2xpZCIsU2lbInN0eWxlOnRleHQtdW5kZXJsaW5lLXdpZHRoIl09ImF1dG8iLFNpWyJzdHlsZTp0ZXh0LXVuZGVybGluZS1jb2xvciJdPSJmb250LWNvbG9yIixQaT0hMCksQ25bMV0pe2lmKGVyLmFs'@; put 'aWdubWVudCl7dmFyIFJpPWVyLmFsaWdubWVudDtSaS53cmFwVGV4dCYmKGJyWyJmbzp3cmFwLW9wdGlvbiJdPSJ3cmFwIixycj0hMCksUmkudmVydGljYWwmJihiclsic3R5bGU6dmVydGljYWwtYWxpZ24iXT0iY2VudGVyIj09UmkudmVydGljYWw/Im1pZGRsZSI6UmkudmVydGljYWwscnI9'@; put 'ITApLG9lW1JpLmhvcml6b250YWxdJiYobmFbImZvOnRleHQtYWxpZ24iXT1vZVtSaS5ob3Jpem9udGFsXSxsYT0hMCl9ZXIuZmdDb2xvciYmKGJyWyJmbzpiYWNrZ3JvdW5kLWNvbG9yIl09IiMiK0wwKGVyLmZnQ29sb3IucmdiKSxycj0hMCl9cnImJihqbis9SHIoInN0eWxlOnRhYmxlLWNl'@; put 'bGwtcHJvcGVydGllcyIsbnVsbCxicikpLFBpJiYoam4rPUhyKCJzdHlsZTp0ZXh0LXByb3BlcnRpZXMiLG51bGwsU2kpKSxsYSYmKGpuKz1Icigic3R5bGU6cGFyYWdyYXBoLXByb3BlcnRpZXMiLG51bGwsbmEpKSxQZS5wdXNoKCIgICIrSHIoInN0eWxlOnN0eWxlIixqbixwcikrIlxuIiks'@; put 'dXIub2RzPWN0LCsrY3R9KX19fSksUGUucHVzaCgiIDwvb2ZmaWNlOmF1dG9tYXRpYy1zdHlsZXM+XG4iKTt2YXIgVHQ9IiA8b2ZmaWNlOmZvbnQtZmFjZS1kZWNscz5cbiIrUmUoVmUpLm1hcChmdW5jdGlvbihpdCl7cmV0dXJuJyAgPHN0eWxlOmZvbnQtZmFjZSBzdHlsZTpuYW1lPSInK2l0'@; put 'KyciIHN2Zzpmb250LWZhbWlseT0iJytWZVtpdF0rJyIvPlxuJ30pLmpvaW4oIiIpKyIgPC9vZmZpY2U6Zm9udC1mYWNlLWRlY2xzPlxuIjtwZS5wdXNoKFR0KSxwZS5wdXNoKFBlLmpvaW4oIiIpKX0oVmUsYmUpLFZlLnB1c2goIiAgPG9mZmljZTpib2R5PlxuIiksVmUucHVzaCgiICAgIDxv'@; put 'ZmZpY2U6c3ByZWFkc2hlZXQ+XG4iKTtmb3IodmFyIGN0PTA7Y3QhPWJlLlNoZWV0TmFtZXMubGVuZ3RoOysrY3QpVmUucHVzaChlZShiZS5TaGVldHNbYmUuU2hlZXROYW1lc1tjdF1dLGJlLGN0KSk7cmV0dXJuIFZlLnB1c2goIiAgICA8L29mZmljZTpzcHJlYWRzaGVldD5cbiIpLFZlLnB1'@; put 'c2goIiAgPC9vZmZpY2U6Ym9keT5cbiIpLFZlLnB1c2goImZvZHMiPT1QZS5ib29rVHlwZT8iPC9vZmZpY2U6ZG9jdW1lbnQ+IjoiPC9vZmZpY2U6ZG9jdW1lbnQtY29udGVudD4iKSxWZS5qb2luKCIiKX19KCk7ZnVuY3Rpb24gUEkoUyxPKXtpZigiZm9kcyI9PU8uYm9va1R5cGUpcmV0dXJu'@; put 'IFA4KFMsTyk7dmFyIGs9ZGkoKSxLPSIiLGVlPVtdLG9lPVtdO3JldHVybiB6bihrLEs9Im1pbWV0eXBlIiwiYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5zcHJlYWRzaGVldCIpLHpuKGssSz0iY29udGVudC54bWwiLFA4KFMsTykpLGVlLnB1c2goW0ssInRleHQveG1sIl0p'@; put 'LG9lLnB1c2goW0ssIkNvbnRlbnRGaWxlIl0pLHpuKGssSz0ic3R5bGVzLnhtbCIsR3ooUyxPKSksZWUucHVzaChbSywidGV4dC94bWwiXSksb2UucHVzaChbSywiU3R5bGVzRmlsZSJdKSx6bihrLEs9Im1ldGEueG1sIixEaStSNigpKSxlZS5wdXNoKFtLLCJ0ZXh0L3htbCJdKSxvZS5wdXNo'@; put 'KFtLLCJNZXRhZGF0YUZpbGUiXSksem4oayxLPSJtYW5pZmVzdC5yZGYiLGZ1bmN0aW9uIFJ1KFMpe3ZhciBPPVtEaV07Ty5wdXNoKCc8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPlxuJyk7Zm9yKHZhciBrPTA7ayE9Uy5s'@; put 'ZW5ndGg7KytrKU8ucHVzaChxYyhTW2tdWzBdLFNba11bMV0pKSxPLnB1c2goYTIoIiIsU1trXVswXSkpO3JldHVybiBPLnB1c2gocWMoIiIsIkRvY3VtZW50IiwicGtnIikpLE8ucHVzaCgiPC9yZGY6UkRGPiIpLE8uam9pbigiIil9KG9lKSksZWUucHVzaChbSywiYXBwbGljYXRpb24vcmRm'@; put 'K3htbCJdKSx6bihrLEs9Ik1FVEEtSU5GL21hbmlmZXN0LnhtbCIsZnVuY3Rpb24gU2MoUyl7dmFyIE89W0RpXTtPLnB1c2goJzxtYW5pZmVzdDptYW5pZmVzdCB4bWxuczptYW5pZmVzdD0idXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczptYW5pZmVzdDoxLjAiIG1hbmlm'@; put 'ZXN0OnZlcnNpb249IjEuMiI+XG4nKSxPLnB1c2goJyAgPG1hbmlmZXN0OmZpbGUtZW50cnkgbWFuaWZlc3Q6ZnVsbC1wYXRoPSIvIiBtYW5pZmVzdDp2ZXJzaW9uPSIxLjIiIG1hbmlmZXN0Om1lZGlhLXR5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuc3ByZWFkc2hl'@; put 'ZXQiLz5cbicpO2Zvcih2YXIgaz0wO2s8Uy5sZW5ndGg7KytrKU8ucHVzaCgnICA8bWFuaWZlc3Q6ZmlsZS1lbnRyeSBtYW5pZmVzdDpmdWxsLXBhdGg9IicrU1trXVswXSsnIiBtYW5pZmVzdDptZWRpYS10eXBlPSInK1Nba11bMV0rJyIvPlxuJyk7cmV0dXJuIE8ucHVzaCgiPC9tYW5pZmVz'@; put 'dDptYW5pZmVzdD4iKSxPLmpvaW4oIiIpfShlZSkpLGt9ZnVuY3Rpb24gVmYoUyl7cmV0dXJuIGZ1bmN0aW9uKGssSyl7dmFyIGVlPWZ1bmN0aW9uICR6KFMsTyl7aWYoIU8pcmV0dXJuIDA7dmFyIGs9Uy5TaGVldE5hbWVzLmluZGV4T2YoTyk7aWYoLTE9PWspdGhyb3cgbmV3IEVycm9yKCJT'@; put 'aGVldCBub3QgZm91bmQ6ICIrTyk7cmV0dXJuIGt9KGssSy5zaGVldCk7cmV0dXJuIFMuZnJvbV9zaGVldChrLlNoZWV0c1trLlNoZWV0TmFtZXNbZWVdXSxLLGspfX12YXIgS3o9VmYodmQpLFh6PVZmKHtmcm9tX3NoZWV0OmIwfSkscXo9VmYodHlwZW9mIHBDPCJ1Ij9wQzp7fSkseWQ9VmYo'@; put 'dHlwZW9mIEV2PCJ1Ij9Fdjp7fSksRkk9VmYodHlwZW9mIHozPCJ1Ij96Mzp7fSksSEk9VmYodHlwZW9mIFB2PCJ1Ij9Qdjp7fSksSno9VmYoe2Zyb21fc2hlZXQ6Wkl9KSx1cmU9VmYodHlwZW9mIGozPCJ1Ij9qMzp7fSksTkk9VmYodHlwZW9mIEs2PCJ1Ij9LNjp7fSksemw9Yig5MTQyNil8'@; put 'fHR5cGVvZiB3aW5kb3c8InUiJiZ3aW5kb3cuY3J5cHRvQnJvd3NlcmlmeTtpZighemwpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZmluZCBjcnlwdG8gZXh0ZW5zaW9ucyEiKTt2YXIgcnA9e1NIQTUxMjoic2hhNTEyIixTSEEyNTY6InNoYTI1NiIsU0hBMzg0OiJzaGEzODQiLFNIQTE6InNo'@; put 'YTEiLE1ENToibWQ1IixNRDQ6Im1kNCIsTUQyOiJtZDIifTtmdW5jdGlvbiBwYyhTLE8pe3N3aXRjaChPPShPfHwiIikucmVwbGFjZSgvLS9nLCIiKSl7Y2FzZSJTSEEtNTEyIjpjYXNlIlNIQTUxMiI6cmV0dXJuIG5ldyB6bC5jcmVhdGVIYXNoKCJzaGE1MTIiKS51cGRhdGUoUykuZGlnZXN0'@; put 'KCk7Y2FzZSJTSEEtMSI6Y2FzZSJTSEExIjpyZXR1cm4gbmV3IHpsLmNyZWF0ZUhhc2goInNoYTEiKS51cGRhdGUoUykuZGlnZXN0KCk7Y2FzZSJNRDIiOnJldHVybiBuZXcgemwuY3JlYXRlSGFzaCgibWQyIikudXBkYXRlKFMpLmRpZ2VzdCgpO2RlZmF1bHQ6aWYocnBbT10pcmV0dXJuIG5l'@; put 'dyB6bC5jcmVhdGVIYXNoKHJwW09dKS51cGRhdGUoUykuZGlnZXN0KCk7dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBoYXNoIGFsZ29yaXRobSAiK08pfX1mdW5jdGlvbiBZNChTLE8sayl7aWYoInJjMiI9PWspdGhyb3ciVW5zdXBwb3J0ZWQgUkMyIjt2YXIgSz16bC5jcmVhdGVEZWNp'@; put 'cGhlcml2KGt8fCJhZXMtMjU2LWNiYyIsUyxPKTtyZXR1cm4gSy5zZXRBdXRvUGFkZGluZyghMSksS31mdW5jdGlvbiBGOChTKXtyZXR1cm5bKCIwMCIrKDI1NSZTKS50b1N0cmluZygxNikpLnNsaWNlKC0yKSwoIjAwIisoUz4+PjgmMjU1KS50b1N0cmluZygxNikpLnNsaWNlKC0yKSwoIjAw'@; put 'IisoUz4+PjE2JjI1NSkudG9TdHJpbmcoMTYpKS5zbGljZSgtMiksKCIwMCIrKFM+Pj4yNCYyNTUpLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpXS5qb2luKCIiKX12YXIgRzQ9ZnVuY3Rpb24oUyxPLGspe2Zvcih2YXIgSz0ic3RyaW5nIj09dHlwZW9mIE8/QnVmZmVyLmZyb20oTywiaGV4Iik6'@; put 'TyxlZT0ic3RyaW5nIj09dHlwZW9mIFM/QnVmZmVyLmZyb20oY3B0YWJsZS51dGlscy5lbmNvZGUoMTIwMCxTKSk6UyxvZT0ic3RyaW5nIj09dHlwZW9mIGs/QnVmZmVyLmZyb20oaywiaGV4Iik6ayxtZT1wYyhlZSwiTUQ1IikscGU9QnVmZmVyLmNvbmNhdChbbWUuc2xpY2UoMCw1KSxLXSks'@; put 'YmU9MDtiZTw0OysrYmUpcGU9QnVmZmVyLmNvbmNhdChbcGUscGVdKTt2YXIgUGU9cGMocGUsIk1ENSIpO3JldHVybihwYyhCdWZmZXIuY29uY2F0KFtQZS5zbGljZSgwLDUpLG9lXSksIk1ENSIpLnRvU3RyaW5nKCJoZXgiKSsiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiKS5z'@; put 'bGljZSgwLDMyKX0sJDQ9ZnVuY3Rpb24oUyxPLGspe3ZhciBLPSJzdHJpbmciPT10eXBlb2YgTz9CdWZmZXIuZnJvbShPLCJoZXgiKTpPLGVlPSJzdHJpbmciPT10eXBlb2YgUz9CdWZmZXIuZnJvbShjcHRhYmxlLnV0aWxzLmVuY29kZSgxMjAwLFMpKTpTLG9lPSJzdHJpbmciPT10eXBlb2Yg'@; put 'az9CdWZmZXIuZnJvbShrLCJoZXgiKTprLG1lPXBjKEJ1ZmZlci5jb25jYXQoW0ssZWVdKSwiU0hBMSIpO3JldHVybiBwYyhCdWZmZXIuY29uY2F0KFttZSxvZV0pLCJTSEExIil9LHRVPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gTygpe31PLnByb3RvdHlwZS5idWlsZD1mdW5jdGlvbihpdCl7dGhp'@; put 'cy5faT0wO3ZhciBidD10aGlzLl9idWlsZChpdCwiIik7cmV0dXJuIiI9PT1idD8iIjonPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PicrYnR9LE8ucHJvdG90eXBlLl9idWlsZD1mdW5jdGlvbihpdCxidCl7aWYodGhpcy5faSsrJTFlNj09'@; put 'MCYmKHRoaXMuX2M9YnRbMF0pLG51bGw9PWl0fHwib2JqZWN0IiE9dHlwZW9mIGl0JiYiZnVuY3Rpb24iIT10eXBlb2YgaXQpbnVsbCE9aXQmJihidCs9ZnVuY3Rpb24gUyhpdCxidCl7cmV0dXJuIG51bGw9PWl0fHwoaXQ9aXQudG9TdHJpbmcoKS5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVw'@; put 'bGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IiksYnQmJihpdD1pdC5yZXBsYWNlKC8iL2csIiZxdW90OyIpKSksaXR9KGl0KSk7ZWxzZXtpZighaXQubmFtZSl0aHJvdyBuZXcgRXJyb3IoIlhNTCBub2RlIGRvZXMgbm90IGhhdmUgbmFtZTogIitKU09OLnN0cmluZ2lmeShp'@; put 'dCkpO2J0Kz0iPCIraXQubmFtZTt2YXIgQnQ9dGhpcztidCs9aXQuYXR0cmlidXRlcyYmRHUoaXQuYXR0cmlidXRlcyl8fCIiLEFycmF5LmlzQXJyYXkoaXQuY2hpbGRyZW4pJiYwIT1pdC5jaGlsZHJlbi5sZW5ndGg/KGJ0Kz0iPiIsaXQuY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbihEdCl7'@; put 'YnQ9QnQuX2J1aWxkKER0LGJ0KX0pLGJ0Kz0iPC8iK2l0Lm5hbWUrIj4iKTpidCs9Ii8+In1yZXR1cm4gYnR9O3ZhciBrPUJ1ZmZlci5mcm9tKFs0LDAsNCwwLDY0LDAsMCwwXSksb2U9e2RhdGFJbnRlZ3JpdHk6e2htYWNLZXk6QnVmZmVyLmZyb20oWzk1LDE3OCwxNzMsMSwxMiwxODUsMjI1'@; put 'LDI0Nl0pLGhtYWNWYWx1ZTpCdWZmZXIuZnJvbShbMTYwLDEwMywxMjcsMiwxNzgsNDQsMTMyLDUxXSl9LGtleTpCdWZmZXIuZnJvbShbMjAsMTEwLDExLDIzMSwxNzEsMTcyLDIwOCwyMTRdKSx2ZXJpZmllckhhc2g6e2lucHV0OkJ1ZmZlci5mcm9tKFsyNTQsMTY3LDIxMCwxMTgsNTksNzUs'@; put 'MTU4LDEyMV0pLHZhbHVlOkJ1ZmZlci5mcm9tKFsyMTUsMTcwLDE1LDEwOSw0OCw5Nyw1Miw3OF0pfX07ZnVuY3Rpb24gbWUoaXQsYnQsQnQsRHQsT3QsS3Qpe3ZhciBUbj1idC50b0xvd2VyQ2FzZSgpKyItIis4KkR0Lmxlbmd0aDtpZigiQ2hhaW5pbmdNb2RlQ0JDIiE9PUJ0KXRocm93IG5l'@; put 'dyBFcnJvcigiVW5rbm93biBjaXBoZXIgY2hhaW5pbmc6ICIrQnQpO3ZhciBzcj16bFtpdD8iY3JlYXRlQ2lwaGVyaXYiOiJjcmVhdGVEZWNpcGhlcml2Il0oVG4rPSItY2JjIixEdCxPdCk7c3Iuc2V0QXV0b1BhZGRpbmcoITEpO3ZhciBDbj1zci51cGRhdGUoS3QpLHVyPVtDbl07dHJ5e3Zh'@; put 'ciBlcj1zci5maW5hbCgpO3VyLnB1c2goZXIpfWNhdGNoe31yZXR1cm4gQnVmZmVyLmNvbmNhdCh1cil9ZnVuY3Rpb24gcGUoaXQpe2l0PWl0LnRvTG93ZXJDYXNlKCk7dmFyIGJ0PVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO2lmKHpsLmdldEhhc2hlcygpLmluZGV4T2YoaXQpPDApdGhy'@; put 'b3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBoYXNoIGFsZ29yaXRobSAiK2l0KTt2YXIgRHQ9emwuY3JlYXRlSGFzaChpdCk7cmV0dXJuIER0LnVwZGF0ZShCdWZmZXIuY29uY2F0KGJ0KSksRHQuZGlnZXN0KCl9ZnVuY3Rpb24gYmUoaXQsYnQsQnQsRHQpeyJudW1iZXIiPT10eXBlb2YgRHQm'@; put 'JihEdD1QZShEdCkpO3ZhciBPdD1wZShpdCxidCxEdCk7aWYoT3QubGVuZ3RoPEJ0KXt2YXIgS3Q9QnVmZmVyLmFsbG9jKEJ0LDU0KTtPdC5jb3B5KEt0KSxPdD1LdH1lbHNlIE90Lmxlbmd0aD5CdCYmKE90PU90LnNsaWNlKDAsQnQpKTtyZXR1cm4gT3R9ZnVuY3Rpb24gUGUoaXQsYnQpe3Zh'@; put 'ciBCdD1CdWZmZXIuYWxsb2MoYnR8fDQpO3JldHVybiBCdC53cml0ZVVJbnQzMkxFKGl0LDApLEJ0fWZ1bmN0aW9uIFZlKGl0LGJ0LEJ0LER0LE90LEt0KXtmb3IodmFyIHNyPXBlKGJ0LEJ0LEJ1ZmZlci5mcm9tKGl0LCJ1dGYxNmxlIikpLENuPTA7Q248RHQ7Q24rKylzcj1wZShidCxQZShD'@; put 'biksc3IpO3ZhciBlcj1PdC84O2lmKChzcj1wZShidCxzcixLdCkpLmxlbmd0aDxlcil7dmFyIGpuPUJ1ZmZlci5hbGxvYyhlciw1NCk7c3IuY29weShqbiksc3I9am59ZWxzZSBzci5sZW5ndGg+ZXImJihzcj1zci5zbGljZSgwLGVyKSk7cmV0dXJuIHNyfXJldHVybiB6bC5yYW5kb21CeXRl'@; put 'c3x8KHpsLnJhbmRvbUJ5dGVzPWZ1bmN0aW9uKGl0KXtmb3IodmFyIGJ0PUJ1ZmZlci5hbGxvYyhpdCksQnQ9MDtCdDxpdDsrK0J0KWJ0W0J0XT1NYXRoLmZsb29yKDI1NipNYXRoLnJhbmRvbSgpKTtyZXR1cm4gYnR9KSxmdW5jdGlvbiBUdChpdCxidCl7aWYoInN0cmluZyI9PXR5cGVvZiBp'@; put 'dClyZXR1cm4gVHQoQnVmZmVyLmZyb20oaXQsImJpbmFyeSIpLGJ0KTt2YXIgQnQ9emwucmFuZG9tQnl0ZXMoMzIpLER0PXtwYWNrYWdlOntjaXBoZXJBbGdvcml0aG06IkFFUyIsY2lwaGVyQ2hhaW5pbmc6IkNoYWluaW5nTW9kZUNCQyIsc2FsdFZhbHVlOnpsLnJhbmRvbUJ5dGVzKDE2KSxo'@; put 'YXNoQWxnb3JpdGhtOiJTSEE1MTIiLGhhc2hTaXplOjY0LGJsb2NrU2l6ZToxNixrZXlCaXRzOjgqQnQubGVuZ3RofSxrZXk6e2NpcGhlckFsZ29yaXRobToiQUVTIixjaXBoZXJDaGFpbmluZzoiQ2hhaW5pbmdNb2RlQ0JDIixzYWx0VmFsdWU6emwucmFuZG9tQnl0ZXMoMTYpLGhhc2hBbGdv'@; put 'cml0aG06IlNIQTUxMiIsaGFzaFNpemU6NjQsYmxvY2tTaXplOjE2LHNwaW5Db3VudDoxLGtleUJpdHM6MjU2fX0sT3Q9ZnVuY3Rpb24gWWUoaXQsYnQsQnQsRHQsT3QsS3QsVG4sc3Ipe2Zvcih2YXIgQ249W10sdXI9aXQ/MDo4LGVyPTAsam49MCxwcj0wO3ByPHNyLmxlbmd0aDspeyhwcj0o'@; put 'am49cHIpKzQwOTYpPnNyLmxlbmd0aCYmKHByPXNyLmxlbmd0aCk7dmFyIGJyPXNyLnNsaWNlKGpuK3VyLHByK3VyKSxycj1ici5sZW5ndGglT3Q7cnImJihicj1CdWZmZXIuY29uY2F0KFticixCdWZmZXIuYWxsb2MoT3QtcnIpXSkpO3ZhciBQaT1tZShpdCxidCxCdCxUbixiZShEdCxLdCxP'@; put 'dCxlciksYnIpO0NuLnB1c2goUGkpLGVyKyt9dmFyIG5hPUJ1ZmZlci5jb25jYXQoQ24pO2lmKGl0KW5hPUJ1ZmZlci5jb25jYXQoW1BlKHNyLmxlbmd0aCw4KSxuYV0pO2Vsc2V7dmFyIGxhPXNyLnJlYWRVSW50MzJMRSgwKTtuYT1uYS5zbGljZSgwLGxhKX1yZXR1cm4gbmF9KCEwLER0LnBh'@; put 'Y2thZ2UuY2lwaGVyQWxnb3JpdGhtLER0LnBhY2thZ2UuY2lwaGVyQ2hhaW5pbmcsRHQucGFja2FnZS5oYXNoQWxnb3JpdGhtLER0LnBhY2thZ2UuYmxvY2tTaXplLER0LnBhY2thZ2Uuc2FsdFZhbHVlLEJ0LGl0KSxLdD16bC5yYW5kb21CeXRlcyg2NCksVG49YmUoRHQucGFja2FnZS5oYXNo'@; put 'QWxnb3JpdGhtLER0LnBhY2thZ2Uuc2FsdFZhbHVlLER0LnBhY2thZ2UuYmxvY2tTaXplLG9lLmRhdGFJbnRlZ3JpdHkuaG1hY0tleSksc3I9bWUoITAsRHQucGFja2FnZS5jaXBoZXJBbGdvcml0aG0sRHQucGFja2FnZS5jaXBoZXJDaGFpbmluZyxCdCxUbixLdCksQ249ZnVuY3Rpb24gZXQo'@; put 'aXQsYnQpe2l0PWl0LnRvTG93ZXJDYXNlKCk7dmFyIEJ0PVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDIpO2lmKHpsLmdldEhhc2hlcygpLmluZGV4T2YoaXQpPDApdGhyb3cgbmV3IEVycm9yKCJITUFDIGFsZ29yaXRobSAnIitpdCsiJyBub3Qgc3VwcG9ydGVkISIpO3ZhciBPdD16bC5jcmVh'@; put 'dGVIbWFjKGl0LGJ0KTtyZXR1cm4gT3QudXBkYXRlKEJ1ZmZlci5jb25jYXQoQnQpKSxPdC5kaWdlc3QoKX0oRHQucGFja2FnZS5oYXNoQWxnb3JpdGhtLEt0LE90KSx1cj1iZShEdC5wYWNrYWdlLmhhc2hBbGdvcml0aG0sRHQucGFja2FnZS5zYWx0VmFsdWUsRHQucGFja2FnZS5ibG9ja1Np'@; put 'emUsb2UuZGF0YUludGVncml0eS5obWFjVmFsdWUpLGVyPW1lKCEwLER0LnBhY2thZ2UuY2lwaGVyQWxnb3JpdGhtLER0LnBhY2thZ2UuY2lwaGVyQ2hhaW5pbmcsQnQsdXIsQ24pO0R0LmRhdGFJbnRlZ3JpdHk9e2VuY3J5cHRlZEhtYWNLZXk6c3IsZW5jcnlwdGVkSG1hY1ZhbHVlOmVyfTt2'@; put 'YXIgam49VmUoYnQsRHQua2V5Lmhhc2hBbGdvcml0aG0sRHQua2V5LnNhbHRWYWx1ZSxEdC5rZXkuc3BpbkNvdW50LER0LmtleS5rZXlCaXRzLG9lLmtleSk7RHQua2V5LmVuY3J5cHRlZEtleVZhbHVlPW1lKCEwLER0LmtleS5jaXBoZXJBbGdvcml0aG0sRHQua2V5LmNpcGhlckNoYWluaW5n'@; put 'LGpuLER0LmtleS5zYWx0VmFsdWUsQnQpO3ZhciBwcj16bC5yYW5kb21CeXRlcygxNiksYnI9VmUoYnQsRHQua2V5Lmhhc2hBbGdvcml0aG0sRHQua2V5LnNhbHRWYWx1ZSxEdC5rZXkuc3BpbkNvdW50LER0LmtleS5rZXlCaXRzLG9lLnZlcmlmaWVySGFzaC5pbnB1dCk7RHQua2V5LmVuY3J5'@; put 'cHRlZFZlcmlmaWVySGFzaElucHV0PW1lKCEwLER0LmtleS5jaXBoZXJBbGdvcml0aG0sRHQua2V5LmNpcGhlckNoYWluaW5nLGJyLER0LmtleS5zYWx0VmFsdWUscHIpO3ZhciBycj1wZShEdC5rZXkuaGFzaEFsZ29yaXRobSxwciksU2k9VmUoYnQsRHQua2V5Lmhhc2hBbGdvcml0aG0sRHQu'@; put 'a2V5LnNhbHRWYWx1ZSxEdC5rZXkuc3BpbkNvdW50LER0LmtleS5rZXlCaXRzLG9lLnZlcmlmaWVySGFzaC52YWx1ZSk7RHQua2V5LmVuY3J5cHRlZFZlcmlmaWVySGFzaFZhbHVlPW1lKCEwLER0LmtleS5jaXBoZXJBbGdvcml0aG0sRHQua2V5LmNpcGhlckNoYWluaW5nLFNpLER0LmtleS5z'@; put 'YWx0VmFsdWUscnIpO3ZhciBQaT1mdW5jdGlvbiBjdChpdCl7dmFyIGJ0PXtuYW1lOiJlbmNyeXB0aW9uIixhdHRyaWJ1dGVzOnt4bWxuczoiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvMjAwNi9lbmNyeXB0aW9uIiwieG1sbnM6cCI6Imh0dHA6Ly9zY2hlbWFzLm1pY3Jv'@; put 'c29mdC5jb20vb2ZmaWNlLzIwMDYva2V5RW5jcnlwdG9yL3Bhc3N3b3JkIiwieG1sbnM6YyI6Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlLzIwMDYva2V5RW5jcnlwdG9yL2NlcnRpZmljYXRlIn0sY2hpbGRyZW46W3tuYW1lOiJrZXlEYXRhIixhdHRyaWJ1dGVzOntzYWx0'@; put 'U2l6ZTppdC5wYWNrYWdlLnNhbHRWYWx1ZS5sZW5ndGgsYmxvY2tTaXplOml0LnBhY2thZ2UuYmxvY2tTaXplLGtleUJpdHM6aXQucGFja2FnZS5rZXlCaXRzLGhhc2hTaXplOml0LnBhY2thZ2UuaGFzaFNpemUsY2lwaGVyQWxnb3JpdGhtOml0LnBhY2thZ2UuY2lwaGVyQWxnb3JpdGhtLGNp'@; put 'cGhlckNoYWluaW5nOml0LnBhY2thZ2UuY2lwaGVyQ2hhaW5pbmcsaGFzaEFsZ29yaXRobTppdC5wYWNrYWdlLmhhc2hBbGdvcml0aG0sc2FsdFZhbHVlOml0LnBhY2thZ2Uuc2FsdFZhbHVlLnRvU3RyaW5nKCJiYXNlNjQiKX19LHtuYW1lOiJkYXRhSW50ZWdyaXR5IixhdHRyaWJ1dGVzOntl'@; put 'bmNyeXB0ZWRIbWFjS2V5Oml0LmRhdGFJbnRlZ3JpdHkuZW5jcnlwdGVkSG1hY0tleS50b1N0cmluZygiYmFzZTY0IiksZW5jcnlwdGVkSG1hY1ZhbHVlOml0LmRhdGFJbnRlZ3JpdHkuZW5jcnlwdGVkSG1hY1ZhbHVlLnRvU3RyaW5nKCJiYXNlNjQiKX19LHtuYW1lOiJrZXlFbmNyeXB0b3Jz'@; put 'IixjaGlsZHJlbjpbe25hbWU6ImtleUVuY3J5cHRvciIsYXR0cmlidXRlczp7dXJpOiJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA2L2tleUVuY3J5cHRvci9wYXNzd29yZCJ9LGNoaWxkcmVuOlt7bmFtZToicDplbmNyeXB0ZWRLZXkiLGF0dHJpYnV0ZXM6e3NwaW5D'@; put 'b3VudDppdC5rZXkuc3BpbkNvdW50LHNhbHRTaXplOml0LmtleS5zYWx0VmFsdWUubGVuZ3RoLGJsb2NrU2l6ZTppdC5rZXkuYmxvY2tTaXplLGtleUJpdHM6aXQua2V5LmtleUJpdHMsaGFzaFNpemU6aXQua2V5Lmhhc2hTaXplLGNpcGhlckFsZ29yaXRobTppdC5rZXkuY2lwaGVyQWxnb3Jp'@; put 'dGhtLGNpcGhlckNoYWluaW5nOml0LmtleS5jaXBoZXJDaGFpbmluZyxoYXNoQWxnb3JpdGhtOml0LmtleS5oYXNoQWxnb3JpdGhtLHNhbHRWYWx1ZTppdC5rZXkuc2FsdFZhbHVlLnRvU3RyaW5nKCJiYXNlNjQiKSxlbmNyeXB0ZWRWZXJpZmllckhhc2hJbnB1dDppdC5rZXkuZW5jcnlwdGVk'@; put 'VmVyaWZpZXJIYXNoSW5wdXQudG9TdHJpbmcoImJhc2U2NCIpLGVuY3J5cHRlZFZlcmlmaWVySGFzaFZhbHVlOml0LmtleS5lbmNyeXB0ZWRWZXJpZmllckhhc2hWYWx1ZS50b1N0cmluZygiYmFzZTY0IiksZW5jcnlwdGVkS2V5VmFsdWU6aXQua2V5LmVuY3J5cHRlZEtleVZhbHVlLnRvU3Ry'@; put 'aW5nKCJiYXNlNjQiKX19XX1dfV19LER0PShuZXcgTykuYnVpbGQoYnQpO3JldHVybiBCdWZmZXIuY29uY2F0KFtrLEJ1ZmZlci5mcm9tKER0LCJ1dGY4IildKX0oRHQpLG5hPXZlLnV0aWxzLmNmYl9uZXcoKTtyZXR1cm4gdmUudXRpbHMuY2ZiX2FkZChuYSwiRW5jcnlwdGlvbkluZm8iLFBp'@; put 'KSx2ZS51dGlscy5jZmJfYWRkKG5hLCJFbmNyeXB0ZWRQYWNrYWdlIixPdCksbmF9fSgpO2Z1bmN0aW9uIEJJKFMpe3JldHVybiBmdW5jdGlvbihrKXtmb3IodmFyIEs9MDtLIT1TLmxlbmd0aDsrK0spe3ZhciBlZT1TW0tdO3ZvaWQgMD09PWtbZWVbMF1dJiYoa1tlZVswXV09ZWVbMV0pLCJu'@; put 'Ij09PWVlWzJdJiYoa1tlZVswXV09TnVtYmVyKGtbZWVbMF1dKSl9fX12YXIgakk9ZnVuY3Rpb24oUyl7QkkoW1siY2VsbE5GIiwhMV0sWyJjZWxsSFRNTCIsITBdLFsiY2VsbEZvcm11bGEiLCEwXSxbImNlbGxTdHlsZXMiLCExXSxbImNlbGxUZXh0IiwhMF0sWyJjZWxsRGF0ZXMiLCExXSxb'@; put 'InNoZWV0U3R1YnMiLCExXSxbInNoZWV0Um93cyIsMCwibiJdLFsiYm9va0RlcHMiLCExXSxbImJvb2tTaGVldHMiLCExXSxbImJvb2tQcm9wcyIsITFdLFsiYm9va0ZpbGVzIiwhMV0sWyJib29rVkJBIiwhMV0sWyJwYXNzd29yZCIsIiJdLFsiV1RGIiwhMV1dKShTKSxTLmJvb2tJbWFnZXMm'@; put 'JihTLmNlbGxTdHlsZXM9ITApfSxCZj1CSShbWyJjZWxsRGF0ZXMiLCExXSxbImJvb2tTU1QiLCExXSxbImJvb2tUeXBlIiwieGxzeCJdLFsiY29tcHJlc3Npb24iLCExXSxbIldURiIsITFdXSk7ZnVuY3Rpb24gaHJlKFMpe3JldHVybiBYYS5XUy5pbmRleE9mKFMpPi0xPyJzaGVldCI6WGEu'@; put 'Q1MmJlM9PVhhLkNTPyJjaGFydCI6WGEuRFMmJlM9PVhhLkRTPyJkaWFsb2ciOlhhLk1TJiZTPT1YYS5NUz8ibWFjcm8iOlMmJlMubGVuZ3RoP1M6InNoZWV0In12YXIgSXk9W107ZnVuY3Rpb24gdzIoUyxPLGssSyxlZSxvZSxtZSxwZSxiZSxQZSxWZSxZZSl7dHJ5e29lW0tdPVNmKGlyKFMs'@; put 'aywhMCksTyk7dmFyIGN0LGV0PUF0KFMsTyk7c3dpdGNoKHBlKXtjYXNlInNoZWV0IjpjdD1mdW5jdGlvbiBDeihTLE8sayxLLGVlLG9lLG1lLHBlKXtyZXR1cm4iLmJpbiI9PT1PLnNsaWNlKC00KT9mdW5jdGlvbiByeihTLE8sayxLLGVlLG9lLG1lKXtpZighUylyZXR1cm4gUzt2YXIgcGU9'@; put 'T3x8e307S3x8KEs9eyIhaWQiOnt9fSksbnVsbCE9c2UmJm51bGw9PXBlLmRlbnNlJiYocGUuZGVuc2U9c2UpO3ZhciBQZSxUdCxpdCxidCxCdCxEdCxPdCxLdCxUbixzcixiZT1wZS5kZW5zZT9bXTp7fSxWZT17czp7cjoyZTYsYzoyZTZ9LGU6e3I6MCxjOjB9fSxZZT1bXSxldD0hMSxjdD0h'@; put 'MSxDbj1bXTtwZS5iaWZmPTEyLHBlWyIhcm93Il09MDt2YXIgdXI9MCxlcj0hMSxqbj1bXSxwcj17fSxicj1wZS5zdXBib29rc3x8ZWUuc3VwYm9va3N8fFtbXV07aWYoYnIuc2hhcmVkZj1wcixici5hcnJheWY9am4sYnIuU2hlZXROYW1lcz1lZS5TaGVldE5hbWVzfHxlZS5TaGVldHMubWFw'@; put 'KGZ1bmN0aW9uKFJpKXtyZXR1cm4gUmkubmFtZX0pLCFwZS5zdXBib29rcyYmKHBlLnN1cGJvb2tzPWJyLGVlLk5hbWVzKSlmb3IodmFyIHJyPTA7cnI8ZWUuTmFtZXMubGVuZ3RoOysrcnIpYnJbMF1bcnIrMV09ZWUuTmFtZXNbcnJdO3ZhciBTaT1bXSxQaT1bXSxuYT0hMTtpZihMOFsxNl09'@; put 'e246IkJydFNob3J0UmVhbCIsZjpCan0sZHIoUyxmdW5jdGlvbihScixCbixqcil7aWYoIWN0KXN3aXRjaChqcil7Y2FzZSAxNDg6UGU9UnI7YnJlYWs7Y2FzZSAwOlR0PVJyLHBlLnNoZWV0Um93cyYmcGUuc2hlZXRSb3dzPD1UdC5yJiYoY3Q9ITApLFRuPWppKEJ0PVR0LnIpLHBlWyIhcm93'@; put 'Il09VHQuciwoUnIuaGlkZGVufHxSci5ocHR8fG51bGwhPVJyLmxldmVsKSYmKFJyLmhwdCYmKFJyLmhweD1vaChSci5ocHQpKSxQaVtSci5yXT1Scik7YnJlYWs7Y2FzZSAyOmNhc2UgMzpjYXNlIDQ6Y2FzZSA1OmNhc2UgNjpjYXNlIDc6Y2FzZSA4OmNhc2UgOTpjYXNlIDEwOmNhc2UgMTE6'@; put 'Y2FzZSAxMzpjYXNlIDE0OmNhc2UgMTU6Y2FzZSAxNjpjYXNlIDE3OmNhc2UgMTg6c3dpdGNoKGl0PXt0OlJyWzJdfSxSclsyXSl7Y2FzZSJuIjppdC52PVJyWzFdO2JyZWFrO2Nhc2UicyI6aXQudj0oS3Q9bDhbUnJbMV1dKS50LHBlLmNlbGxTdHlsZXMmJihpdC5SPWZ1bmN0aW9uIERWKFMs'@; put 'Tyl7aWYoUy5SKXJldHVybiBTLlI7aWYoTyYmTy5Gb250cyYmKDEhPVMuci5sZW5ndGh8fDAhPVMuclswXS5pY2gpKXtTLlI9W107dmFyIGs9MCxLPVMucltrXSxlZT1TLnJbaysxXTtmb3IoSy5pY2g+MCYmUy5SLnB1c2goe3Q6InMiLHY6Uy50LnNsaWNlKDAsSy5pY2gpfSk7azxTLnIubGVu'@; put 'Z3RoLTE7KytrKVMuUi5wdXNoKHt0OiJzIix2OlMudC5zbGljZSgoSz1TLnJba10pLmljaCwoZWU9Uy5yW2srMV0pLmljaCksczpPLkZvbnRzW0suaWZudF19KTtyZXR1cm4gUy5SLnB1c2goe3Q6InMiLHY6Uy50LnNsaWNlKChlZXx8SykuaWNoKSxzOk8uRm9udHNbKGVlfHxLKS5pZm50XX0p'@; put 'LFMuUn19KEt0LG1lKSk7YnJlYWs7Y2FzZSJiIjppdC52PSEhUnJbMV07YnJlYWs7Y2FzZSJlIjppdC52PVJyWzFdLCExIT09cGUuY2VsbFRleHQmJihpdC53PUNjW2l0LnZdKTticmVhaztjYXNlInN0ciI6aXQudD0icyIsaXQudj1SclsxXX1pZigoYnQ9bWUuQ2VsbFhmW1JyWzBdLmlTdHls'@; put 'ZVJlZl0pJiZRMyhpdCxidC5udW1GbXRJZCxidC5maWxsSWQsYnQuZm9udElkLGJ0LmJvcmRlcklkLHBlLDAsbWUpLHBlLmNlbGxTdHlsZXMmJml0LnMmJmJ0LmFsaWdubWVudCYmKGl0LnMuYWxpZ25tZW50PUp0KGJ0LmFsaWdubWVudCkpLER0PS0xPT1SclswXS5jP0R0KzE6UnJbMF0uYyxw'@; put 'ZS5kZW5zZT8oYmVbQnRdfHwoYmVbQnRdPVtdKSxiZVtCdF1bRHRdPWl0KTpiZVtrYShEdCkrVG5dPWl0LHBlLmNlbGxGb3JtdWxhKXtmb3IoZXI9ITEsdXI9MDt1cjxqbi5sZW5ndGg7Kyt1cil7dmFyIHdyPWpuW3VyXTtUdC5yPj13clswXS5zLnImJlR0LnI8PXdyWzBdLmUuciYmRHQ+PXdy'@; put 'WzBdLnMuYyYmRHQ8PXdyWzBdLmUuYyYmKGl0LkY9cmEod3JbMF0pLGVyPSEwKX0hZXImJlJyLmxlbmd0aD4zJiYoaXQuZj1SclszXSl9aWYoVmUucy5yPlR0LnImJihWZS5zLnI9VHQuciksVmUucy5jPkR0JiYoVmUucy5jPUR0KSxWZS5lLnI8VHQuciYmKFZlLmUucj1UdC5yKSxWZS5lLmM8'@; put 'RHQmJihWZS5lLmM9RHQpLHBlLmNlbGxEYXRlcyYmYnQmJiJuIj09aXQudCYmQS5pc19kYXRlKEEuX3RhYmxlW2J0Lm51bUZtdElkXSkpe3ZhciBIbj1BLnBhcnNlX2RhdGVfY29kZShpdC52KTtIbiYmKGl0LnQ9ImQiLGl0LnY9bmV3IERhdGUoSG4ueSxIbi5tLTEsSG4uZCxIbi5ILEhuLk0s'@; put 'SG4uUyxIbi51KSl9YnJlYWs7Y2FzZSAxOmNhc2UgMTI6aWYoIXBlLnNoZWV0U3R1YnN8fGV0KWJyZWFrO2l0PXt0OiJ6Iix2OnZvaWQgMH0sRHQ9LTE9PVJyWzBdLmM/RHQrMTpSclswXS5jLChidD1tZS5DZWxsWGZbUnJbMF0uaVN0eWxlUmVmXSkmJlEzKGl0LGJ0Lm51bUZtdElkLGJ0LmZp'@; put 'bGxJZCxidC5mb250SWQsYnQuYm9yZGVySWQscGUsMCxtZSkscGUuY2VsbFN0eWxlcyYmaXQucyYmYnQuYWxpZ25tZW50JiYoaXQucy5hbGlnbm1lbnQ9SnQoYnQuYWxpZ25tZW50KSkscGUuZGVuc2U/KGJlW0J0XXx8KGJlW0J0XT1bXSksYmVbQnRdW0R0XT1pdCk6YmVba2EoRHQpK1RuXT1p'@; put 'dCxWZS5zLnI+VHQuciYmKFZlLnMucj1UdC5yKSxWZS5zLmM+RHQmJihWZS5zLmM9RHQpLFZlLmUucjxUdC5yJiYoVmUuZS5yPVR0LnIpLFZlLmUuYzxEdCYmKFZlLmUuYz1EdCk7YnJlYWs7Y2FzZSAxNzY6Q24ucHVzaChScik7YnJlYWs7Y2FzZSA0OTQ6dmFyIHpyPUtbIiFpZCJdW1JyLnJl'@; put 'bElkXTtmb3IoenI/KFJyLlRhcmdldD16ci5UYXJnZXQsUnIubG9jJiYoUnIuVGFyZ2V0Kz0iIyIrUnIubG9jKSxSci5SZWw9enIpOiIiPT1Sci5yZWxJZCYmKFJyLlRhcmdldD0iIyIrUnIubG9jKSxCdD1Sci5yZngucy5yO0J0PD1Sci5yZnguZS5yOysrQnQpZm9yKER0PVJyLnJmeC5zLmM7'@; put 'RHQ8PVJyLnJmeC5lLmM7KytEdClwZS5kZW5zZT8oYmVbQnRdfHwoYmVbQnRdPVtdKSxiZVtCdF1bRHRdfHwoYmVbQnRdW0R0XT17dDoieiIsdjp2b2lkIDB9KSxiZVtCdF1bRHRdLmw9UnIpOihPdD1xaSh7YzpEdCxyOkJ0fSksYmVbT3RdfHwoYmVbT3RdPXt0OiJ6Iix2OnZvaWQgMH0pLGJl'@; put 'W090XS5sPVJyKTticmVhaztjYXNlIDQyNjppZighcGUuY2VsbEZvcm11bGEpYnJlYWs7am4ucHVzaChSciksKHNyPXBlLmRlbnNlP2JlW0J0XVtEdF06YmVba2EoRHQpK1RuXSkuZj1hMChSclsxXSxWZSx7cjpUdC5yLGM6RHR9LGJyLHBlKSxzci5GPXJhKFJyWzBdKTticmVhaztjYXNlIDQy'@; put 'NzppZighcGUuY2VsbEZvcm11bGEpYnJlYWs7cHJbcWkoUnJbMF0ucyldPVJyWzFdLChzcj1wZS5kZW5zZT9iZVtCdF1bRHRdOmJlW2thKER0KStUbl0pLmY9YTAoUnJbMV0sVmUse3I6VHQucixjOkR0fSxicixwZSk7YnJlYWs7Y2FzZSA2MDppZighcGUuY2VsbFN0eWxlcylicmVhaztmb3Io'@; put 'O1JyLmU+PVJyLnM7KVNpW1JyLmUtLV09e3dpZHRoOlJyLncvMjU2LGhpZGRlbjohISgxJlJyLmZsYWdzKSxsZXZlbDpSci5sZXZlbH0sbmF8fChuYT0hMCksSjAoU2lbUnIuZSsxXSk7YnJlYWs7Y2FzZSAxNjE6YmVbIiFhdXRvZmlsdGVyIl09e3JlZjpyYShScil9O2JyZWFrO2Nhc2UgNDc2'@; put 'OmJlWyIhbWFyZ2lucyJdPVJyO2JyZWFrO2Nhc2UgMTQ3OmVlLlNoZWV0c1trXXx8KGVlLlNoZWV0c1trXT17fSksUnIubmFtZSYmKGVlLlNoZWV0c1trXS5Db2RlTmFtZT1Sci5uYW1lKSwoUnIuYWJvdmV8fFJyLmxlZnQpJiYoYmVbIiFvdXRsaW5lIl09e2Fib3ZlOlJyLmFib3ZlLGxlZnQ6'@; put 'UnIubGVmdH0pO2JyZWFrO2Nhc2UgMTM3OmVlLlZpZXdzfHwoZWUuVmlld3M9W3t9XSksZWUuVmlld3NbMF18fChlZS5WaWV3c1swXT17fSksUnIuUlRMJiYoZWUuVmlld3NbMF0uUlRMPSEwKSxSci5ncmlkfHwoZWUuVmlld3NbMF0uZ3JpZD0hMSxiZVsiIWdyaWRsaW5lcyJdPSExKTticmVh'@; put 'aztjYXNlIDQ4NTpiZVsiIXNoZWV0Rm9ybWF0Il09UnI7YnJlYWs7Y2FzZSA2NDpjYXNlIDEwNTM6IWZ1bmN0aW9uIG56KFMsTyxrLEspe2lmKE8pe3ZhciBlZT17cmVmOk8uc3FyZngsdDpPLnR9O08ub3AmJihlZS5vcD1PLm9wKTt2YXIgb2U9IiIsbWU9IiIscGU9Ty5zcXJmeD8ic3RyaW5n'@; put 'Ij09dHlwZW9mIE8uc3FyZng/c3MoTy5zcXJmeC5zcGxpdCgiLCIpWzBdKTpPLnNxcmZ4Om51bGw7aWYoTy5mMSYmKG9lPWEwKE8uZjEscGUsbnVsbCxrLEssITApKSxPLmYyJiYobWU9YTAoTy5mMixwZSxudWxsLGssSywhMCkpLE8ub3AmJlsiSU4iLCJPVCJdLmluZGV4T2YoTy5vcCk+PS0x'@; put 'KWVlLm1pbj1vZSxlZS5tYXg9bWU7ZWxzZSBpZihPLm9wKWVlLnY9b2U7ZWxzZSB0cnl7c3dpdGNoKE8udCl7Y2FzZSJMaXN0IjppZigiUHRnU3RyIj09PU8uZjFbMF1bMF1bMF0mJjE9PU8uZjFbMF0ubGVuZ3RoKXtlZS5sPU8uZjFbMF1bMF1bMV0uc3BsaXQoIiwiKTticmVha31jYXNlIkN1'@; put 'c3RvbSI6ZWUuZj1vZX19Y2F0Y2h7fVNbIiF2YWxpZGF0aW9ucyJdfHwoU1siIXZhbGlkYXRpb25zIl09W10pLFNbIiF2YWxpZGF0aW9ucyJdLnB1c2goZWUpfX0oYmUsUnIsYnIscGUpO2JyZWFrO2Nhc2UgMTUxOmJlWyIhZnJlZXplIl09UnJbMF07YnJlYWs7Y2FzZSAxNTI6YmVbIiFzZWwi'@; put 'XT1ScjticmVhaztjYXNlIDE3NTpjYXNlIDY0NDpjYXNlIDYyNTpjYXNlIDU2MjpjYXNlIDM5NjpjYXNlIDExMTI6Y2FzZSAxMTQ2OmNhc2UgNDcxOmNhc2UgMTA1MDpjYXNlIDY0OTpjYXNlIDExMDU6Y2FzZSA0OTpjYXNlIDU4OTpjYXNlIDYwNzpjYXNlIDU2NDpjYXNlIDEwNTU6Y2FzZSAx'@; put 'Njg6Y2FzZSAxNzQ6Y2FzZSAxMTgwOmNhc2UgNDk5OmNhc2UgNTA3OmNhc2UgNTUwOmNhc2UgMTcxOmNhc2UgMTY3OmNhc2UgMTE3NzpjYXNlIDE2OTpjYXNlIDExODE6Y2FzZSA1NTE6Y2FzZSA1NTI6Y2FzZSA2NjE6Y2FzZSA2Mzk6Y2FzZSA0Nzg6Y2FzZSA1Mzc6Y2FzZSA0Nzc6Y2FzZSA1'@; put 'MzY6Y2FzZSAxMTAzOmNhc2UgNjgwOmNhc2UgMTEwNDpjYXNlIDEwMjQ6Y2FzZSA2NjM6Y2FzZSA1MzU6Y2FzZSA2Nzg6Y2FzZSA1MDQ6Y2FzZSAxMDQzOmNhc2UgNDI4OmNhc2UgMTcwOmNhc2UgMzA3MjpjYXNlIDUwOmNhc2UgMjA3MDpjYXNlIDEwNDU6YnJlYWs7Y2FzZSAzNTpldD0hMDti'@; put 'cmVhaztjYXNlIDM2OmV0PSExO2JyZWFrO2Nhc2UgMzc6WWUucHVzaChCbiksZXQ9ITA7YnJlYWs7Y2FzZSAzODpZZS5wb3AoKSxldD0hMTticmVhaztkZWZhdWx0OmlmKCEoKEJufHwiIikuaW5kZXhPZigiQmVnaW4iKT4wKSYmISgoQm58fCIiKS5pbmRleE9mKCJFbmQiKT4wKSYmKCFldHx8'@; put 'cGUuV1RGJiYiQnJ0QUNCZWdpbiIhPVllW1llLmxlbmd0aC0xXSkpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIHJlY29yZCAiK2pyKyIgIitCbil9fSxwZSksZGVsZXRlIHBlLnN1cGJvb2tzLGRlbGV0ZSBwZVsiIXJvdyJdLCFiZVsiIXJlZiJdJiYoVmUucy5yPDJlNnx8UGUmJihQZS5l'@; put 'LnI+MHx8UGUuZS5jPjB8fFBlLnMucj4wfHxQZS5zLmM+MCkpJiYoYmVbIiFyZWYiXT1yYShQZXx8VmUpKSxwZS5zaGVldFJvd3MmJmJlWyIhcmVmIl0pe3ZhciBsYT1zcyhiZVsiIXJlZiJdKTtwZS5zaGVldFJvd3M8PStsYS5lLnImJihsYS5lLnI9cGUuc2hlZXRSb3dzLTEsbGEuZS5yPlZl'@; put 'LmUuciYmKGxhLmUucj1WZS5lLnIpLGxhLmUucjxsYS5zLnImJihsYS5zLnI9bGEuZS5yKSxsYS5lLmM+VmUuZS5jJiYobGEuZS5jPVZlLmUuYyksbGEuZS5jPGxhLnMuYyYmKGxhLnMuYz1sYS5lLmMpLGJlWyIhZnVsbHJlZiJdPWJlWyIhcmVmIl0sYmVbIiFyZWYiXT1yYShsYSkpfXJldHVy'@; put 'biBDbi5sZW5ndGg+MCYmKGJlWyIhbWVyZ2VzIl09Q24pLFNpLmxlbmd0aD4wJiYoYmVbIiFjb2xzIl09U2kpLFBpLmxlbmd0aD4wJiYoYmVbIiFyb3dzIl09UGkpLGJlfShTLEssayxlZSxvZSwwLHBlKTpmdW5jdGlvbiBoOChTLE8sayxLLGVlLG9lLG1lKXtpZighUylyZXR1cm4gUztLfHwo'@; put 'Sz17IiFpZCI6e319KSxudWxsIT1zZSYmbnVsbD09Ty5kZW5zZSYmKE8uZGVuc2U9c2UpO3ZhciBwZT1PLmRlbnNlP1tdOnt9LGJlPXtzOntyOjJlNixjOjJlNn0sZTp7cjowLGM6MH19LFBlPSIiLFZlPSIiLFllPVMubWF0Y2goX0QpO1llPyhQZT1TLnNsaWNlKDAsWWUuaW5kZXgpLFZlPVMu'@; put 'c2xpY2UoWWUuaW5kZXgrWWVbMF0ubGVuZ3RoKSk6UGU9VmU9Uzt2YXIgZXQ9VmUubGFzdEluZGV4T2YoImV4dExzdCIpLFR0PSgtMT09ZXR8fFZlLnNsaWNlKGV0KSxQZS5tYXRjaChTRCkpO1R0P2F5KFR0WzBdLDAsZWUsayk6KFR0PVBlLm1hdGNoKHhEKSkmJmZ1bmN0aW9uIHVqKFMsTyxr'@; put 'LEssZWUsb2UsbWUpe2F5KFMuc2xpY2UoMCxTLmluZGV4T2YoIj4iKSksMCxLLGVlKTt2YXIgcGU9Ty5tYXRjaCh3Uyk7aWYocGUpe3ZhciBQZT15ayh5cihwZVswXSksb2UsbWUpO2tbIiF0YWJjb2xvciJdPVBlfWlmKChwZT1PLm1hdGNoKGxqKSkmJnlyKHBlWzBdKS5maXRUb1BhZ2UmJihr'@; put 'WyIhcHJpbnQiXXx8KGtbIiFwcmludCJdPXt9KSxrWyIhcHJpbnQiXS5wcm9wc3x8KGtbIiFwcmludCJdLnByb3BzPXt9KSxrWyIhcHJpbnQiXS5wcm9wcy5maXR8fChrWyIhcHJpbnQiXS5wcm9wcy5maXQ9e30pLG51bGw9PWtbIiFwcmludCJdLnByb3BzLmZpdC5oZWlnaHQmJihrWyIhcHJp'@; put 'bnQiXS5wcm9wcy5maXQuaGVpZ2h0PTEpLG51bGw9PWtbIiFwcmludCJdLnByb3BzLmZpdC53aWR0aCYmKGtbIiFwcmludCJdLnByb3BzLmZpdC53aWR0aD0xKSkscGU9Ty5tYXRjaChjaikpe2tbIiFvdXRsaW5lIl09e307dmFyIFllPXlyKHBlWzBdKTtZZS5zdW1tYXJ5QmVsb3cmJihrWyIh'@; put 'b3V0bGluZSJdLmFib3ZlPSFlaShZZS5zdW1tYXJ5QmVsb3cpKSxZZS5zdW1tYXJ5UmlnaHQmJihrWyIhb3V0bGluZSJdLmxlZnQ9IWVpKFllLnN1bW1hcnlSaWdodCkpfX0oVHRbMF0sVHRbMV18fCIiLHBlLGVlLGssbWUsb2UpO3ZhciBpdD0oUGUubWF0Y2goLzwoPzpcdyo6KT9kaW1lbnNp'@; put 'b24vKXx8e2luZGV4Oi0xfSkuaW5kZXg7aWYoaXQ+MCl7dmFyIGJ0PVBlLnNsaWNlKGl0LGl0KzUwKS5tYXRjaChyeSk7YnQmJighT3x8IU8ubm9kaW0pJiZmdW5jdGlvbiBwUyhTLE8pe3ZhciBrPXNzKE8pO2sucy5yPD1rLmUuciYmay5zLmM8PWsuZS5jJiZrLnMucj49MCYmay5zLmM+PTAm'@; put 'JihTWyIhcmVmIl09cmEoaykpfShwZSxidFsxXSl9dmFyIEJ0PVBlLm1hdGNoKExzKTtCdCYmQnRbMV0mJmZ1bmN0aW9uIEVqKFMsTyxrLEspe2suVmlld3N8fChrLlZpZXdzPVt7fV0pO3ZhciBlZT0wO1MucmVwbGFjZShBUyxmdW5jdGlvbihvZSxtZSl7dmFyIHBlPXlyKG9lKTtpZihrLlZp'@; put 'ZXdzW0tdfHwoay5WaWV3c1tLXT17fSksZWkocGUucmlnaHRUb0xlZnQpJiYoay5WaWV3c1tLXS5SVEw9ITApLHBlLnNob3dHcmlkTGluZXMmJihrLlZpZXdzW0tdLmdyaWQ9ZWkocGUuc2hvd0dyaWRMaW5lcyksbnVsbD09T1siIWdyaWRsaW5lcyJdJiYoT1siIWdyaWRsaW5lcyJdPWVpKHBl'@; put 'LnNob3dHcmlkTGluZXMpKSksK3BlLnpvb21TY2FsZSYmKGsuVmlld3NbS10uem9vbT0rcGUuem9vbVNjYWxlKSxwZS52aWV3JiYoay5WaWV3c1tLXS52aWV3PXBlLnZpZXcpLDE9PSsrZWUmJiIvPiIhPW9lLnNsaWNlKC0yKSl7dmFyIGJlPVMuc2xpY2UobWUrb2UubGVuZ3RoKSxQZT1iZS5t'@; put 'YXRjaCgvPFwvKD86XHc6KT9zaGVldFZpZXcoPzpbXj5hLXpdW14+XSopP1wvPz4vKTtpZighUGUpcmV0dXJuIiI7dmFyIFZlPShiZT1iZS5zbGljZSgwLFBlLmluZGV4KSkubWF0Y2goLzwoPzpcdzopP3BhbmUoPzpbXj5hLXpdW14+XSopP1wvPz4vKTtpZihWZSl7dmFyIFllPXlyKFZlWzBd'@; put 'KTsiZnJvemVuIj09WWUuc3RhdGU/T1siIWZyZWV6ZSJdPWthKCtZZS54U3BsaXR8fDApK2ppKCtZZS55U3BsaXR8fDApOlllLnRvcExlZnRDZWxsJiYoT1siIWZyZWV6ZSJdPVllLnRvcExlZnRDZWxsKX12YXIgZXQ9YmUubWF0Y2goLzwoPzpcdzopP3NlbGVjdGlvbig/OltePmEtel1bXj5d'@; put 'Kik/XC8/Pi8pO2lmKGV0KXt2YXIgY3Q9eXIoZXRbMF0pO2lmKGN0LmFjdGl2ZUNlbGwmJihPWyIhc2VsIl09e2NlbGw6Y3QuYWN0aXZlQ2VsbH0pLGN0LnNxcmVmKXt2YXIgVHQ9Y3Quc3FyZWYucmVwbGFjZSgvXHMuKiQvLCIiKTtPWyIhc2VsIl18fChPWyIhc2VsIl09e2NlbGw6cWkoU28o'@; put 'VHQpLnMpfSksT1siIXNlbCJdLnJhbmdlPWN0LnNxcmVmfX19cmV0dXJuIiJ9KX0oQnRbMV0scGUsZWUsayk7dmFyIER0PVBlLm1hdGNoKCRlKSxPdD1bXTtpZihPLmNlbGxTdHlsZXMpe3ZhciBLdD1QZS5tYXRjaChhaik7S3QmJmZ1bmN0aW9uIE1TKFMsTyxrKXtmb3IodmFyIEs9ITEsZWU9'@; put 'MDtlZSE9Ty5sZW5ndGg7KytlZSl7dmFyIG9lPXlyKE9bZWVdLCEwKTtvZS5oaWRkZW4mJihvZS5oaWRkZW49ZWkob2UuaGlkZGVuKSk7dmFyIG1lPXBhcnNlSW50KG9lLm1pbiwxMCktMSxwZT1wYXJzZUludChvZS5tYXgsMTApLTE7Zm9yKG9lLm91dGxpbmVMZXZlbCYmKG9lLmxldmVsPStv'@; put 'ZS5vdXRsaW5lTGV2ZWx8fDApLGRlbGV0ZSBvZS5taW4sZGVsZXRlIG9lLm1heCxvZS53aWR0aD0rb2Uud2lkdGgsIUsmJm9lLndpZHRoJiYoSz0hMCksSjAob2UpLG9lLnN0eWxlJiYob2Uucz1tOChvZS5zdHlsZSxrKSk7bWU8PXBlOylTW21lKytdPUp0KG9lKX19KE90LEt0LG1lKX1pZihZ'@; put 'ZSYmdjgoWWVbMV0sayxwZSxPLGJlLG9lLG1lKSxPLmNhbGxiYWNrKXJldHVybiBwZTt2YXIgVG49VmUubWF0Y2goTUQpO1RuJiYocGVbIiFwcm90ZWN0Il09ZnVuY3Rpb24gbWooUyl7dmFyIE89eXIoUywhMCwhMCksaz17fTtpZihlaShPLnNoZWV0KSlyZXR1cm4gU1MuZm9yRWFjaChmdW5j'@; put 'dGlvbihLKXtrW0tdPW51bGwhPU9bS10mJmVpKE9bS10pfSksRkQuZm9yRWFjaChmdW5jdGlvbihLKXtrW0tdPW51bGw9PU9bS118fGVpKE9bS10pfSksTy5hbGdvcml0aG1OYW1lJiYoay5lbmNyeXB0aW9uPXthbGdvOk8uYWxnb3JpdGhtTmFtZSxoYXNoOk8uaGFzaFZhbHVlLHNhbHQ6Ty5z'@; put 'YWx0VmFsdWUsc3BpbjorTy5zcGluQ291bnR8fDFlNX0pLGt9KFRuWzBdKSk7dmFyIHNyPVZlLm1hdGNoKHNqKTtzciYmKHBlWyIhYXV0b2ZpbHRlciJdPWZ1bmN0aW9uIGJqKFMpe3JldHVybntyZWY6KFMubWF0Y2goL3JlZj0iKFteIl0qKSIvKXx8W10pWzFdfX0oc3JbMF0pKTt2YXIgQ249'@; put 'W10sdXI9VmUubWF0Y2goZDgpO2lmKHVyKWZvcihpdD0wO2l0IT11ci5sZW5ndGg7KytpdClDbltpdF09c3ModXJbaXRdLnNsaWNlKHVyW2l0XS5pbmRleE9mKCciJykrMSkpO3ZhciBlcj0oLTE9PWV0P1ZlOlZlLnNsaWNlKDAsZXQpKS5tYXRjaChtUyk7ZXImJihwZVsiIWNvbmRmbXQiXT1b'@; put 'XS5jb25jYXQuYXBwbHkoW10sZXIubWFwKGZ1bmN0aW9uKEJuKXtyZXR1cm4gYjIoQm4sTyxvZSxtZSl9KSkpLGV0Pi0xJiYoZXI9VmUuc2xpY2UoZXQpLm1hdGNoKG1TKSkmJihwZVsiIWNvbmRmbXQiXXx8KHBlWyIhY29uZGZtdCJdPVtdKSxwZVsiIWNvbmRmbXQiXT1wZVsiIWNvbmRmbXQi'@; put 'XS5jb25jYXQuYXBwbHkocGVbIiFjb25kZm10Il0sZXIubWFwKGZ1bmN0aW9uKEJuKXtyZXR1cm4gYjIoQm4sTyxvZSxtZSwhMCl9KSkpO3ZhciBqbj0oLTE9PWV0P1ZlOlZlLnNsaWNlKDAsZXQpKS5tYXRjaChmZSk7am4mJihwZVsiIXZhbGlkYXRpb25zIl09RVMoam5bMF0sTykpLGV0Pi0x'@; put 'JiYoam49VmUuc2xpY2UoZXQpLm1hdGNoKGZlKSkmJihwZVsiIXZhbGlkYXRpb25zIl18fChwZVsiIXZhbGlkYXRpb25zIl09W10pLHBlWyIhdmFsaWRhdGlvbnMiXT1wZVsiIXZhbGlkYXRpb25zIl0uY29uY2F0KEVTKGpuWzBdLE8sITApKSk7dmFyIHByPVZlLm1hdGNoKGdTKTtwciYmZnVu'@; put 'Y3Rpb24gSEQoUyxPLGspe2Zvcih2YXIgSz1BcnJheS5pc0FycmF5KFMpLGVlPTA7ZWUhPU8ubGVuZ3RoOysrZWUpe3ZhciBvZT15cihmcyhPW2VlXSksITApO2lmKCFvZS5yZWYpcmV0dXJuO3ZhciBtZT0oKGt8fHt9KVsiIWlkIl18fFtdKVtvZS5pZF07bWU/KG9lLlRhcmdldD1tZS5UYXJn'@; put 'ZXQsb2UubG9jYXRpb24mJihvZS5UYXJnZXQrPSIjIitRcihvZS5sb2NhdGlvbikpKToob2UuVGFyZ2V0PSIjIitRcihvZS5sb2NhdGlvbiksbWU9e1RhcmdldDpvZS5UYXJnZXQsVGFyZ2V0TW9kZToiSW50ZXJuYWwifSksb2UuUmVsPW1lLG9lLnRvb2x0aXAmJihvZS5Ub29sdGlwPW9lLnRv'@; put 'b2x0aXAsZGVsZXRlIG9lLnRvb2x0aXApO2Zvcih2YXIgcGU9c3Mob2UucmVmKSxiZT1wZS5zLnI7YmU8PXBlLmUucjsrK2JlKWZvcih2YXIgUGU9cGUucy5jO1BlPD1wZS5lLmM7KytQZSl7dmFyIFZlPXFpKHtjOlBlLHI6YmV9KTtLPyhTW2JlXXx8KFNbYmVdPVtdKSxTW2JlXVtQZV18fChT'@; put 'W2JlXVtQZV09e3Q6InoiLHY6dm9pZCAwfSksU1tiZV1bUGVdLmw9b2UpOihTW1ZlXXx8KFNbVmVdPXt0OiJ6Iix2OnZvaWQgMH0pLFNbVmVdLmw9b2UpfX19KHBlLHByLEspO3ZhciBicj1WZS5tYXRjaCh2Uyk7YnImJmZ1bmN0aW9uIGRqKFMsTyl7dmFyIGs9eXIoUywhMSwhMCk7T1siIXBy'@; put 'aW50Il18fChPWyIhcHJpbnQiXT17fSksT1siIXByaW50Il0ucHJvcHN8fChPWyIhcHJpbnQiXS5wcm9wcz17fSk7dmFyIEs9T1siIXByaW50Il0ucHJvcHM7ay5ncmlkTGluZXMmJihLLmdyaWRsaW5lcz1laShrLmdyaWRMaW5lcykpLG51bGwhPWsuaG9yaXpvbnRhbENlbnRlcmVkJiYoSy5j'@; put 'ZW50ZXJYPWVpKGsuaG9yaXpvbnRhbENlbnRlcmVkKSksbnVsbCE9ay52ZXJ0aWNhbENlbnRlcmVkJiYoSy5jZW50ZXJZPWVpKGsudmVydGljYWxDZW50ZXJlZCkpfShiclswXSxwZSk7dmFyIHJyPVZlLm1hdGNoKENEKTtyciYmKChwZVsiIXByaW50Il18fChwZVsiIXByaW50Il09e30pKS5t'@; put 'YXJnaW5zPXBlWyIhbWFyZ2lucyJdPU5EKHlyKHJyWzBdKSkpO3ZhciBTaT1WZS5tYXRjaChURCk7U2kmJmZ1bmN0aW9uIE9EKFMsTyl7dmFyIGs9eXIoUywhMSwhMCk7ZGVsZXRlIGsuaWQsZGVsZXRlIGtbMF0sT1siIXByaW50Il18fChPWyIhcHJpbnQiXT17fSksT1siIXByaW50Il0ucHJv'@; put 'cHN8fChPWyIhcHJpbnQiXS5wcm9wcz17fSk7dmFyIEs9T1siIXByaW50Il0ucHJvcHM7ay5vcmllbnRhdGlvbiYmKEsub3JpZW50YXRpb249ay5vcmllbnRhdGlvbiksay5zY2FsZSYmKEsuc2NhbGU9K2suc2NhbGUpLCtrLmZpdFRvSGVpZ2h0Pj0wJiYoKEsuZml0fHwoSy5maXQ9e30pKS5o'@; put 'ZWlnaHQ9K2suZml0VG9IZWlnaHQpLCtrLmZpdFRvV2lkdGg+PTAmJigoSy5maXR8fChLLmZpdD17fSkpLndpZHRoPStrLmZpdFRvV2lkdGgpLGsucGFwZXJIZWlnaHQmJmsucGFwZXJXaWR0aD9LLnBhcGVyPXt3aWR0aDprLnBhcGVyV2lkdGgsaGVpZ2h0OmsucGFwZXJIZWlnaHR9OmsucGFw'@; put 'ZXJTaXplJiYoSy5wYXBlcj1uOFtLLnBhcGVyPStrLnBhcGVyU2l6ZV18fEsucGFwZXIpLGsuaG9yaXpvbnRhbERwaT9LLmRwaT0ray5ob3Jpem9udGFsRHBpOmsudmVydGljYWxEcGkmJihLLmRwaT0ray52ZXJ0aWNhbERwaSksImF1dG9tYXRpYyIhPShrLmZpcnN0UGFnZU51bWJlcnx8ImF1'@; put 'dG9tYXRpYyIpJiYoSy5maXJzdD0ray5maXJzdFBhZ2VOdW1iZXIpLGVpKGsuYmxhY2tBbmRXaGl0ZSkmJihLLmJ3PSEwKSxlaShrLmRyYWZ0KSYmKEsuZHJhZnQ9ITApLCJvdmVyVGhlbkRvd24iPT1rLnBhZ2VPcmRlciYmKEsub3JkZXI9Im92ZXIiKSxJRFtrLmNlbGxDb21tZW50c10mJihL'@; put 'LmNvbW1lbnRzPUlEW2suY2VsbENvbW1lbnRzXSksTERbay5lcnJvcnNdJiYoSy5lcnJvcnM9TERbay5lcnJvcnNdKX0oU2lbMF0scGUpO3ZhciBQaT1WZS5tYXRjaChONSk7UGkmJmZ1bmN0aW9uIHdqKFMsTyl7aWYoT1siIXByaW50Il18fChPWyIhcHJpbnQiXT17fSksU1sxXSl7dmFyIGs9'@; put 'IiIsSz0wO1NbMV0ucmVwbGFjZSh0bixmdW5jdGlvbihlZSxvZSl7aWYoIi8iIT1lZS5jaGFyQXQoMSkpaz1lZS5zbGljZSgxLC0xKSxLPW9lK2VlLmxlbmd0aDtlbHNlIGlmKGspe3ZhciBtZT1rLm1hdGNoKC9IZWFkZXIvKT8iaGVhZGVyIjoiZm9vdGVyIixwZT1rLnJlcGxhY2UoL0hlYWRl'@; put 'cnxGb290ZXIvLCIiKTtrPSIiLE9bIiFwcmludCJdW21lXXx8KE9bIiFwcmludCJdW21lXT17fSksT1siIXByaW50Il1bbWVdW3BlXT1RcihmcyhTWzFdLnNsaWNlKEssb2UpKSl9fSl9fShQaSxwZSk7dmFyIG5hPVZlLm1hdGNoKG9qKTtuYSYmKChwZVsiIXByaW50Il18fChwZVsiIXByaW50'@; put 'Il09e30pKS5yb3dCcmVha3M9cGVbIiFyb3dCcmVha3MiXT1mdW5jdGlvbiBmaihTKXt2YXIgTz1bXTtyZXR1cm4oUy5tYXRjaChPMCl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGspe3ZhciBLPXlyKGspO08ucHVzaCh7UjorSy5pZH0pfSksT30obmFbMF0pKTt2YXIgbGE9VmUubWF0Y2goaXkp'@; put 'O2xhJiYoKHBlWyIhcHJpbnQiXXx8KHBlWyIhcHJpbnQiXT17fSkpLmNvbEJyZWFrcz1wZVsiIWNvbEJyZWFrcyJdPWZ1bmN0aW9uIFZuZShTKXt2YXIgTz1bXTtyZXR1cm4oUy5tYXRjaChPMCl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGspe3ZhciBLPXlyKGspO08ucHVzaCh7QzorSy5pZH0p'@; put 'fSksT30obGFbMF0pKTt2YXIgUmk9W107aWYoKFJpPVZlLm1hdGNoKC9kcmF3aW5nIHI6aWQ9IiguKj8pIi8pKSYmKHBlWyIhcmVsIl09UmlbMV0pLChSaT1WZS5tYXRjaCgvbGVnYWN5RHJhd2luZyByOmlkPSIoLio/KSIvKSkmJihwZVsiIWxlZ3JlbCJdPVJpWzFdKSwoUmk9VmUubWF0Y2go'@; put 'd0QpKSYmKHBlWyIhY3RybGlkIl09UmkubWFwKGZ1bmN0aW9uKEJuKXtyZXR1cm4geXIoQm4pfSkpLChSaT1WZS5tYXRjaChFRCkpJiZmdW5jdGlvbiBiUyhTLE8pe1NbIiF0YWJsZXJlZnMiXXx8KFNbIiF0YWJsZXJlZnMiXT1bXSksKE8ubWF0Y2goeVMpfHxbXSkuZm9yRWFjaChmdW5jdGlv'@; put 'bihrKXtTWyIhdGFibGVyZWZzIl0ucHVzaCh5cihrKS5pZCl9KX0ocGUsUmlbMV0pLE8mJk8ubm9kaW0mJihiZS5zLmM9YmUucy5yPTApLCFwZVsiIXJlZiJdJiZiZS5lLmM+PWJlLnMuYyYmYmUuZS5yPj1iZS5zLnImJihwZVsiIXJlZiJdPXJhKGJlKSksTy5zaGVldFJvd3M+MCYmcGVbIiFy'@; put 'ZWYiXSl7dmFyIFJyPXNzKHBlWyIhcmVmIl0pO08uc2hlZXRSb3dzPD0rUnIuZS5yJiYoUnIuZS5yPU8uc2hlZXRSb3dzLTEsUnIuZS5yPmJlLmUuciYmKFJyLmUucj1iZS5lLnIpLFJyLmUucjxSci5zLnImJihSci5zLnI9UnIuZS5yKSxSci5lLmM+YmUuZS5jJiYoUnIuZS5jPWJlLmUuYyks'@; put 'UnIuZS5jPFJyLnMuYyYmKFJyLnMuYz1Sci5lLmMpLHBlWyIhZnVsbHJlZiJdPXBlWyIhcmVmIl0scGVbIiFyZWYiXT1yYShScikpfXJldHVybiBEdCYmKHBlWyIhc2hlZXRGb3JtYXQiXT1mdW5jdGlvbiBBRChTKXt2YXIgTz17fSxrPXt9LEs9ITEsZWU9e30sb2U9ITE7cmV0dXJuIFMuZGVm'@; put 'YXVsdFJvd0hlaWdodCYmKEs9ITAsay5ocHQ9cGFyc2VGbG9hdChTLmRlZmF1bHRSb3dIZWlnaHQpKSxTLnplcm9IZWlnaHQmJihLPSEwLGsuaGlkZGVuPWVpKFMuemVyb0hlaWdodCkpLFMuYmFzZUNvbFdpZHRoPyhvZT0hMCxlZS53Y2g9cGFyc2VGbG9hdChTLmJhc2VDb2xXaWR0aCkpOlMu'@; put 'ZGVmYXVsdENvbFdpZHRoJiYob2U9ITAsZWUud2NoPXBhcnNlRmxvYXQoUy5kZWZhdWx0Q29sV2lkdGgpLTUveGMpLFMub3V0bGluZUxldmVsQ29sJiYoTy5jb2xvdXRsaW5lPXBhcnNlSW50KFMub3V0bGluZUxldmVsQ29sKSksUy5vdXRsaW5lTGV2ZWxSb3cmJihPLnJvd291dGxpbmU9cGFy'@; put 'c2VJbnQoUy5vdXRsaW5lTGV2ZWxSb3cpKSxTLnRoaWNrQm90dG9tJiYoTy5ib3R0aGljaz1laShTLnRoaWNrQm90dG9tKSksUy50aGlja1RvcCYmKE8udG9wdGhpY2s9ZWkoUy50aGlja1RvcCkpLFMuZHlEZXNjZW50JiYoTy5keURlc2NlbnQ9cGFyc2VGbG9hdChTLmR5RGVzY2VudCkpLEsm'@; put 'JihIdihrKSxPLnJvdz1rKSxvZSYmKEowKGVlKSxPLmNvbD1lZSksT30oeXIoRHRbMF0pKSksT3QubGVuZ3RoPjAmJihwZVsiIWNvbHMiXT1PdCksQ24ubGVuZ3RoPjAmJihwZVsiIW1lcmdlcyJdPUNuKSxLWyIhaWQiXVtwZVsiIXJlbCJdXSYmKHBlWyIhZHJhd2VsIl09S1siIWlkIl1bcGVb'@; put 'IiFyZWwiXV0pLEtbIiFpZCJdW3BlWyIhbGVncmVsIl1dJiYocGVbIiFsZWdkcmF3ZWwiXT1LWyIhaWQiXVtwZVsiIWxlZ3JlbCJdXSksKHBlWyIhY3RybGlkIl18fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKEJuKXtCbi5yZWw9S1siIWlkIl1bQm4uaWRdfSksbnVsbD09cGVbIiFncmlkbGluZXMi'@; put 'XSYmKHBlWyIhZ3JpZGxpbmVzIl09ITApLHBlfShTLEssayxlZSxvZSxtZSxwZSl9KGV0LE8sZWUsYmUsb2VbS10sUGUsVmUsWWUpO2JyZWFrO2Nhc2UiY2hhcnQiOmN0PWZ1bmN0aW9uIFN6KFMsTyxrLEssZWUsb2UsbWUscGUpe3JldHVybiIuYmluIj09PU8uc2xpY2UoLTQpP2Z1bmN0aW9u'@; put 'IG16KFMsTyxrLEssZWUpe2lmKCFTKXJldHVybiBTO0t8fChLPXsiIWlkIjp7fX0pO3ZhciBvZT17IiF0eXBlIjoiY2hhcnQiLCIhZHJhd2VsIjpudWxsLCIhcmVsIjoiIn0sbWU9W10scGU9ITE7cmV0dXJuIGRyKFMsZnVuY3Rpb24oUGUsVmUsWWUpe3N3aXRjaChZZSl7Y2FzZSA1NTA6b2Vb'@; put 'IiFyZWwiXT1QZTticmVhaztjYXNlIDY1MTplZS5TaGVldHNba118fChlZS5TaGVldHNba109e30pLFBlLm5hbWUmJihlZS5TaGVldHNba10uQ29kZU5hbWU9UGUubmFtZSk7YnJlYWs7Y2FzZSA1NjI6Y2FzZSA2NTI6Y2FzZSA2Njk6Y2FzZSA2Nzk6Y2FzZSA1NTE6Y2FzZSA1NTI6Y2FzZSA0'@; put 'NzY6Y2FzZSAzMDcyOmJyZWFrO2Nhc2UgMzU6cGU9ITA7YnJlYWs7Y2FzZSAzNjpwZT0hMTticmVhaztjYXNlIDM3Om1lLnB1c2goVmUpO2JyZWFrO2Nhc2UgMzg6bWUucG9wKCk7YnJlYWs7ZGVmYXVsdDppZigoVmV8fCIiKS5pbmRleE9mKCJCZWdpbiIpPjApbWUucHVzaChWZSk7ZWxzZSBp'@; put 'ZigoVmV8fCIiKS5pbmRleE9mKCJFbmQiKT4wKW1lLnBvcCgpO2Vsc2UgaWYoIXBlfHxPLldURil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgcmVjb3JkICIrWWUrIiAiK1ZlKX19LE8pLEtbIiFpZCJdW29lWyIhcmVsIl1dJiYob2VbIiFkcmF3ZWwiXT1LWyIhaWQiXVtvZVsiIXJlbCJd'@; put 'XSksb2V9KFMsSyxrLGVlLG9lKTpmdW5jdGlvbiBweihTLE8sayxLLGVlKXtpZighUylyZXR1cm4gUztLfHwoSz17IiFpZCI6e319KTt2YXIgbWUsb2U9eyIhdHlwZSI6ImNoYXJ0IiwiIWRyYXdlbCI6bnVsbCwiIXJlbCI6IiJ9LHBlPVMubWF0Y2goU0QpO3BlJiZheShwZVswXSwwLGVlLGsp'@; put 'O3ZhciBiZT1TLm1hdGNoKENEKTtyZXR1cm4gYmUmJihvZVsiIW1hcmdpbnMiXT1ORCh5cihiZVswXSkpKSwobWU9Uy5tYXRjaCgvZHJhd2luZyByOmlkPSIoLio/KSIvKSkmJihvZVsiIXJlbCJdPW1lWzFdKSxLWyIhaWQiXVtvZVsiIXJlbCJdXSYmKG9lWyIhZHJhd2VsIl09S1siIWlkIl1b'@; put 'b2VbIiFyZWwiXV0pLG9lfShTLDAsayxlZSxvZSl9KGV0LE8sZWUsYmUsb2VbS10sUGUpO2JyZWFrO2Nhc2UibWFjcm8iOmN0PWZ1bmN0aW9uIE16KFMsTyxrLEssZWUsb2UsbWUscGUpe3JldHVybiBPLnNsaWNlKC00KSx7IiF0eXBlIjoibWFjcm8ifX0oMCxPKTticmVhaztjYXNlImRpYWxv'@; put 'ZyI6Y3Q9ZnVuY3Rpb24geHooUyxPLGssSyxlZSxvZSxtZSxwZSl7cmV0dXJuIE8uc2xpY2UoLTQpLHsiIXR5cGUiOiJkaWFsb2cifX0oMCxPKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHNoZWV0IHR5cGUgIitwZSl9aWYoYmUuY2FsbGJhY2spcmV0dXJu'@; put 'O21lW0tdPWN0LGZ1bmN0aW9uIG5VKFMsTyxrLEssZWUsb2UsbWUscGUpe2lmKFMmJlNbIiFkcmF3ZWwiXSl7dmFyIGJlPWZuKFNbIiFkcmF3ZWwiXS5UYXJnZXQsSyksUGU9TnIoYmUpLFZlPWZ1bmN0aW9uIE5DKFMsTyxrLEssZWUpe3ZhciBvZT17Y2hhcnRzOltdLGltYWdlczpbXSxzaGFw'@; put 'ZXM6W119O2lmKCFTKXJldHVybiBvZTt2YXIgbWU9ZWV8fHt9O3JldHVybihTLm1hdGNoKC88W148XSo/KGFic29sdXRlQW5jaG9yfG9uZUNlbGxBbmNob3J8dHdvQ2VsbEFuY2hvcikuKj8oYWJzb2x1dGVBbmNob3J8b25lQ2VsbEFuY2hvcnx0d29DZWxsQW5jaG9yKS4qPz4vZyl8fFtdKS5m'@; put 'b3JFYWNoKGZ1bmN0aW9uKHBlKXt2YXIgYmU9IiIsUGU9e3R5cGU6IiJ9LFZlPXt9LFllPSEwLGV0PSExLGN0PSExLFR0PSExLGl0PXtzOnt9fSxidD0tMSxCdD1bXSxEdD1bXSxPdD17czp7YWxpZ25tZW50Ontob3Jpem9udGFsOiJjZW50ZXIiLHZlcnRpY2FsOiJjZW50ZXIifX19LEt0PSIi'@; put 'LFRuPS0xLENuPXt9O3BlLnJlcGxhY2UodG4sZnVuY3Rpb24odXIsZXIpe0J0PW51bGw7dmFyIGpuPXlyKHVyKSxwcj1HbihqblswXSkucmVwbGFjZSgvW1wvXT8+JC8sIiIpO3N3aXRjaChwcil7Y2FzZSI8Y2xpZW50RGF0YSI6YnJlYWs7Y2FzZSI8YWJzb2x1dGVBbmNob3IiOmNhc2UiPG9u'@; put 'ZUNlbGxBbmNob3IiOmNhc2UiPHR3b0NlbGxBbmNob3IiOlBlLnR5cGU9R24oam5bMF0pLnJlcGxhY2UoL1s8Pl0vZywiIik7YnJlYWs7Y2FzZSI8L2Fic29sdXRlQW5jaG9yIjpjYXNlIjwvb25lQ2VsbEFuY2hvciI6Y2FzZSI8L3R3b0NlbGxBbmNob3IiOmJyZWFrO2Nhc2UiPHBvcyI6UGUu'@; put 'cG9zPXt4Oitqbi54LHk6K2puLnl9O2JyZWFrO2Nhc2UiPGV4dCI6WWUmJihQZS5leHQ9e3g6K2puLmN4LHk6K2puLmN5fSk7YnJlYWs7Y2FzZSI8ZnJvbSI6Y2FzZSI8dG8iOlZlPXt9O2JyZWFrO2Nhc2UiPC9mcm9tIjpZZSYmKFBlLmZyb209VmUpO2JyZWFrO2Nhc2UiPC90byI6WWUmJihQ'@; put 'ZS50bz1WZSk7YnJlYWs7Y2FzZSI8Y29sIjpjYXNlIjxjb2xPZmYiOmNhc2UiPHJvdyI6Y2FzZSI8cm93T2ZmIjpidD1lcit1ci5sZW5ndGg7YnJlYWs7Y2FzZSI8L2NvbCI6VmUuYz0rcGUuc2xpY2UoYnQsZXIpO2JyZWFrO2Nhc2UiPC9jb2xPZmYiOlZlLmNPZmY9K3BlLnNsaWNlKGJ0LGVy'@; put 'KTticmVhaztjYXNlIjwvcm93IjpWZS5yPStwZS5zbGljZShidCxlcik7YnJlYWs7Y2FzZSI8L3Jvd09mZiI6VmUuck9mZj0rcGUuc2xpY2UoYnQsZXIpO2JyZWFrO2Nhc2UiPHNwIjpiZT0ic2hhcGUiLE90LkFuY2hvcj1QZSxvZS5zaGFwZXMucHVzaChPdCksWWU9ITE7YnJlYWs7Y2FzZSI8'@; put 'L3NwIjpZZT0hMDticmVhaztjYXNlIjxncmFwaGljRnJhbWUiOmJlPSJncmFwaGljIixZZT0hMTticmVhaztjYXNlIjwvZ3JhcGhpY0ZyYW1lIjpZZT0hMDticmVhaztjYXNlIjxwaWMiOmJlPSJwaWN0dXJlIixZZT0hMTticmVhaztjYXNlIjwvcGljIjpZZT0hMDticmVhaztjYXNlIjxncnBT'@; put 'cCI6YmU9Imdyb3Vwc2hhcGUiLFllPSExO2JyZWFrO2Nhc2UiPC9ncnBTcCI6WWU9ITA7YnJlYWs7Y2FzZSI8Z3JhcGhpYyI6Y2FzZSI8L2dyYXBoaWMiOmNhc2UiPHhmcm0iOmNhc2UiPC94ZnJtIjpjYXNlIjxvZmYiOmJyZWFrO2Nhc2UiPGdyYXBoaWNEYXRhIjpldD0hMDticmVhaztjYXNl'@; put 'IjwvZ3JhcGhpY0RhdGEiOmV0PSExO2JyZWFrO2Nhc2UiPGJsaXBGaWxsIjpldD0hMDticmVhaztjYXNlIjwvYmxpcEZpbGwiOmV0PSExO2JyZWFrO2Nhc2UiPC9ibGlwIjpicmVhaztjYXNlIjxzcmNSZWN0IjpldD0hMDticmVhaztjYXNlIjwvc3JjUmVjdCI6ZXQ9ITE7YnJlYWs7Y2FzZSI8'@; put 'bm9GaWxsIjppZihjdClicmVhazsiPHNwUHIiPT1EdC5zbGljZSgtMSlbMF0mJihPdC5zLmZnQ29sb3I9bnVsbCk7YnJlYWs7Y2FzZSI8L3NvbGlkRmlsbCI6aWYoY3R8fFR0KWJyZWFrOyI8c3BQciI9PUR0LnNsaWNlKC0yKVswXT9PdC5zLmZnQ29sb3I9Q246IjxyUHIiPT1EdC5zbGljZSgt'@; put 'MilbMF0mJkR0LmluZGV4T2YoIjx0eEJvZHkiKT4tMSYmKGl0LnMuY29sb3I9Q24pLENuPXt9LFR0PSExO2JyZWFrO2Nhc2UiPHByc3RHZW9tIjoic2hhcGUiPT1iZSYmKE90WyIhc2hhcGUiXT1qbi5wcnN0KTticmVhaztjYXNlIjwvcHJzdEdlb20iOmNhc2UiPGF2THN0IjpicmVhaztjYXNl'@; put 'Ijx0eEJvZHkiOmV0PSEwLE90LlI9W107YnJlYWs7Y2FzZSI8L3R4Qm9keSI6ZXQ9ITE7YnJlYWs7Y2FzZSI8Ym9keVByIjpPdC5zLmFsaWdubWVudC52ZXJ0aWNhbD15Qltqbi5hbmNob3J8fCJ0Il18fCJ0b3AiO2JyZWFrO2Nhc2UiPGxzdFN0eWxlIjpicmVhaztjYXNlIjx0IjpUbj1lcit1'@; put 'ci5sZW5ndGg7YnJlYWs7Y2FzZSI8YnIiOmNhc2UiPGJyLz4iOkt0Kz0iXG4iO2JyZWFrO2Nhc2UiPC90IjpLdCs9cGUuc2xpY2UoVG4sZXIpO2JyZWFrO2Nhc2UiPHBQciI6T3Qucy5hbGlnbm1lbnQuaG9yaXpvbnRhbHx8KE90LnMuYWxpZ25tZW50Lmhvcml6b250YWw9UjVbam4uYWxnbnx8'@; put 'ImwiXXx8ImxlZnQiKSxEdC5pbmRleE9mKCI8dHhCb2R5Iik+LTEmJihpdC5zLmFsaWdubWVudC5ob3Jpem9udGFsPVI1W2puLmFsZ258fCJsIl18fCJsZWZ0Iik7YnJlYWs7Y2FzZSI8clByIjpqbi5zeiYmRHQuaW5kZXhPZigiPHR4Qm9keSIpPi0xJiYoT3Qucy5zej1pdC5zLnN6PStqbi5z'@; put 'ei8xMDApO2JyZWFrO2Nhc2UiPHAiOkt0PSIiLGl0PXt0OiJzIix2OiIiLHM6e2FsaWdubWVudDp7fX19O2JyZWFrO2Nhc2UiPC9wIjoic2hhcGUiPT1iZSYmRHQuaW5kZXhPZigiPHR4Qm9keSIpPi0xJiYoT3Qudj0oT3Qudnx8IiIpK0t0LGl0LnY9S3QsT3QuUi5wdXNoKGl0KSk7YnJlYWs7'@; put 'Y2FzZSI8bGF0aW4iOmpuLnR5cGVmYWNlJiZEdC5pbmRleE9mKCI8dHhCb2R5Iik+LTEmJihpdC5zLm5hbWU9am4udHlwZWZhY2UpO2JyZWFrO2Nhc2UiPHN0eWxlIjpldD0hMCxjdD0hMDticmVhaztjYXNlIjwvc3R5bGUiOmV0PSExLGN0PSExO2JyZWFrO2Nhc2UiPGxuUmVmIjpjYXNlIjxm'@; put 'aWxsUmVmIjpjYXNlIjxlZmZlY3RSZWYiOmNhc2UiPGZvbnRSZWYiOmJyZWFrO2Nhc2UiPC9maWxsUmVmIjohY3QmJiJzaGFwZSI9PWJlJiYoT3Qucy5mZ0NvbG9yPUNuKSxDbj17fTticmVhaztjYXNlIjwvZm9udFJlZiI6IWN0JiYic2hhcGUiPT1iZSYmKE90LnMuY29sb3I9Q24pLENuPXt9'@; put 'O2JyZWFrO2Nhc2UiPHNjaGVtZUNsciI6dmFyIGJyPXtiZzE6Imx0MSIsYmcyOiJsdDIiLHR4MToiZGsxIix0eDI6ImRrMiJ9W2puLnZhbF18fGpuLnZhbCxycj0oKEsudGhlbWVFbGVtZW50c3x8e30pLmNsclNjaGVtZXx8W10pLmZpbmQoZnVuY3Rpb24oUGkpe3JldHVybiBQaS5uYW1lPT1i'@; put 'cn0pO3JyP0NuLnJnYj1yci5yZ2I6VHQ9ITA7YnJlYWs7Y2FzZSI8c2NyZ2JDbHIiOlR0PSEwO2JyZWFrO2Nhc2UiPHNyZ2JDbHIiOkNuLnJnYj1qbi52YWwuc2xpY2UoLTYpO2JyZWFrO2Nhc2UiPGhzbENsciI6Y2FzZSI8c3lzQ2xyIjpjYXNlIjxwcnN0Q2xyIjpUdD0hMDticmVhaztjYXNl'@; put 'IjxjaGFydCI6QnQ9b2UuY2hhcnRzO3ZhciBTaT1qbi5pZDtjYXNlIjxibGlwIjpCdHx8KEJ0PW9lLmltYWdlcyxTaT1qbi5lbWJlZCksQnQucHVzaCh7QW5jaG9yOlBlLFRhcmdldDooT1siIWlkIl1bU2ldfHx7fSkuVGFyZ2V0fSksam4ubGluayYmKEJ0W0J0Lmxlbmd0aC0xXS5MaW5rPShP'@; put 'WyIhaWQiXVtqbi5saW5rXXx8e30pLlRhcmdldCk7YnJlYWs7Y2FzZSI8Z3JwU3BQciI6ZXQ9ITA7YnJlYWs7Y2FzZSI8L2dycFNwUHIiOmV0PSExO2JyZWFrO2Nhc2UiPG52R3JwU3BQciI6ZXQ9ITA7YnJlYWs7Y2FzZSI8L252R3JwU3BQciI6ZXQ9ITE7YnJlYWs7Y2FzZSI8c3BQciI6ZXQ9'@; put 'ITA7YnJlYWs7Y2FzZSI8L3NwUHIiOmV0PSExO2JyZWFrO2Nhc2UiPHN0cmV0Y2giOmNhc2UiPC9zdHJldGNoIjpjYXNlIjxmaWxsUmVjdCI6Y2FzZSI8bnZHcmFwaGljRnJhbWVQciI6Y2FzZSI8L252R3JhcGhpY0ZyYW1lUHIiOmNhc2UiPGNOdkdyYXBoaWNGcmFtZVByIjpjYXNlIjwvY052'@; put 'R3JhcGhpY0ZyYW1lUHIiOmNhc2UiPGdyYXBoaWNGcmFtZUxvY2tzIjpjYXNlIjxudlBpY1ByIjpjYXNlIjwvbnZQaWNQciI6Y2FzZSI8Y052UGljUHIiOmNhc2UiPC9jTnZQaWNQciI6Y2FzZSI8cGljTG9ja3MiOmNhc2UiPGNOdkdycFNwUHIiOmNhc2UiPC9jTnZHcnBTcFByIjpjYXNlIjxn'@; put 'cnBTcExvY2tzIjpjYXNlIjxudlNwUHIiOmNhc2UiPC9udlNwUHIiOmNhc2UiPGNOdlNwUHIiOmNhc2UiPC9jTnZTcFByIjpjYXNlIjxzcExvY2tzIjpicmVhaztjYXNlIjxjTnZQciI6ZXQ9ITA7YnJlYWs7Y2FzZSI8L2NOdlByIjpldD0hMTticmVhaztjYXNlIjxjeG5TcCI6ZXQ9ITA7YnJl'@; put 'YWs7Y2FzZSI8L2N4blNwIjpldD0hMTticmVhaztjYXNlIjxjTnZDeG5TcFByIjpldD0hMDticmVhaztjYXNlIjwvY052Q3huU3BQciI6ZXQ9ITE7YnJlYWs7Y2FzZSI8bnZDeG5TcFByIjpjYXNlIjwvbnZDeG5TcFByIjpicmVhaztjYXNlIjxleHRMc3QiOmV0PSEwLGN0PSEwO2JyZWFrO2Nh'@; put 'c2UiPC9leHRMc3QiOmV0PSExLGN0PSExO2JyZWFrO2Nhc2UiPC9leHQiOmJyZWFrO2RlZmF1bHQ6aWYobWUmJm1lLldURiYmIWV0KXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkICIram5bMF0rIiBpbiBkcmF3aW5nIil9cmV0dXJuIjwvIj09cHIuc2xpY2UoMCwyKT9EdC5wb3AoKToi'@; put 'Lz4iIT11ci5zbGljZSh1ci5sZW5ndGgtMikmJkR0LnB1c2gocHIpLCIifSl9KSxvZX0oaXIoayxiZSwhMCksU2YoaXIoayxQZSwhMCksYmUpLDAscGUsZWUpO2lmKFZlKXtpZihWZS5jaGFydHMpZm9yKHZhciBZZT0wO1llPFZlLmNoYXJ0cy5sZW5ndGg7KytZZSl7dmFyIGV0PVZlLmNoYXJ0'@; put 'c1tZZV0sY3Q9Zm4oZXQuVGFyZ2V0LGJlKSxUdD1OcihjdCksaXQ9ImNoYXJ0Ij09TyYmMD09WWUsYnQ9XzIoaXIoayxjdCwhMCksMCwwLFNmKGlyKGssVHQsITApLGN0KSwwLGl0P1M6bnVsbCxldCxpdD9udWxsOlMpO2l0fHwoU1siIWNoYXJ0cyJdfHwoU1siIWNoYXJ0cyJdPVtdKSxTWyIh'@; put 'Y2hhcnRzIl0ucHVzaChidCkpfWlmKGVlLmJvb2tJbWFnZXMmJlZlLmltYWdlcylmb3IodmFyIEJ0PTA7QnQ8VmUuaW1hZ2VzLmxlbmd0aDsrK0J0KXt2YXIgRHQ9VmUuaW1hZ2VzW0J0XSxPdD17IiF0eXBlIjoiaW1hZ2UiLCIhcG9zIjpWayhEdC5BbmNob3IpLCIhcG9zVHlwZSI6RHQuQW5j'@; put 'aG9yLnR5cGUucmVwbGFjZSgvQW5jaG9yLywiIiksIiFhYnNwb3MiOkQ1KER0LkFuY2hvcixTKSwiIXJlbHBvcyI6TEMoRHQuQW5jaG9yLFMpfTtpZihEdC5UYXJnZXQmJihPdFsiIXBhdGgiXT1mbihEdC5UYXJnZXQsYmUpLE90WyIhZGF0YSJdPUF0KGssT3RbIiFwYXRoIl0pLE90WyIhZGF0'@; put 'YXR5cGUiXT0ic3RyaW5nIj09dHlwZW9mIE90WyIhZGF0YSJdPyJiaW5hcnkiOiJidWZmZXIiKSxEdC5MaW5rJiYoT3RbIiFkYXRhdHlwZSJdfHwoT3RbIiFkYXRhdHlwZSJdPSJyZW1vdGUiKSxPdFsiIWxpbmsiXT1EdC5MaW5rKSwhT3RbIiFkYXRhdHlwZSJdKXRocm93IkltYWdlIGRhdGEg'@; put 'Y2Fubm90IGJlIGZvdW5kIjtTWyIhaW1hZ2VzIl18fChTWyIhaW1hZ2VzIl09W10pLFNbIiFpbWFnZXMiXS5wdXNoKE90KX12YXIgS3QsVG47aWYoVmUuc2hhcGVzKWZvcih2YXIgQ249MDtDbjxWZS5zaGFwZXMubGVuZ3RoOysrQ24pVG49eyIhdHlwZSI6InNoYXBlIiwiIXBvcyI6RDUoKEt0'@; put 'PVZlLnNoYXBlc1tDbl0pLkFuY2hvcixTKSwiIXBvc1R5cGUiOkt0LkFuY2hvci50eXBlLnJlcGxhY2UoL0FuY2hvci8sIiIpLCIhYWJzcG9zIjpENShLdC5BbmNob3IsUyksIiFyZWxwb3MiOkxDKEt0LkFuY2hvcixTKX0sWyJ2IiwiIXNoYXBlIiwicyIsIlIiXS5mb3JFYWNoKHNyKSxTWyIh'@; put 'c2hhcGVzIl18fChTWyIhc2hhcGVzIl09W10pLFNbIiFzaGFwZXMiXS5wdXNoKFRuKX19ZnVuY3Rpb24gc3IodXIpe0t0W3VyXSYmKFRuW3VyXT1LdFt1cl0pfX0oY3QscGUsUyxPLGJlLDAsMCxWZSk7dmFyIFR0PVtdO3JldHVybiBvZSYmb2VbS10mJlJlKG9lW0tdKS5mb3JFYWNoKGZ1bmN0'@; put 'aW9uKGl0KXtpZihvZVtLXVtpdF0uVHlwZT09WGEuQ01OVCl7dmFyIGJ0PWZuKG9lW0tdW2l0XS5UYXJnZXQsTyk7aWYoIShUdD1mdW5jdGlvbiBreihTLE8sayl7cmV0dXJuIi5iaW4iPT09Ty5zbGljZSgtNCk/ZnVuY3Rpb24gWHYoUyxPKXt2YXIgaz1bXSxLPVtdLGVlPXt9LG9lPSExO3Jl'@; put 'dHVybiBkcihTLGZ1bmN0aW9uKHBlLGJlLFBlKXtzd2l0Y2goUGUpe2Nhc2UgNjMyOksucHVzaChwZSk7YnJlYWs7Y2FzZSA2MzU6ZWU9cGU7YnJlYWs7Y2FzZSA2Mzc6ZWUudD1wZS50LGVlLmg9cGUuaCxlZS5yPXBlLnI7YnJlYWs7Y2FzZSA2MzY6aWYoZWUuYXV0aG9yPUtbZWUuaWF1dGhv'@; put 'cl0sZGVsZXRlIGVlLmlhdXRob3IsTy5zaGVldFJvd3MmJmVlLnJmeCYmTy5zaGVldFJvd3M8PWVlLnJmeC5yKWJyZWFrO2VlLnR8fChlZS50PSIiKSxkZWxldGUgZWUucmZ4LGsucHVzaChlZSk7YnJlYWs7Y2FzZSAzMDcyOmNhc2UgMzc6Y2FzZSAzODpicmVhaztjYXNlIDM1Om9lPSEwO2Jy'@; put 'ZWFrO2Nhc2UgMzY6b2U9ITE7YnJlYWs7ZGVmYXVsdDppZighKChiZXx8IiIpLmluZGV4T2YoIkJlZ2luIik+MCkmJiEoKGJlfHwiIikuaW5kZXhPZigiRW5kIik+MCkmJighb2V8fE8uV1RGKSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgcmVjb3JkICIrUGUrIiAiK2JlKX19KSxrfShT'@; put 'LGspOmZ1bmN0aW9uIFdrKFMsTyl7aWYoUy5tYXRjaCgvPCg/Olx3KzopP2NvbW1lbnRzICpcLz4vKSlyZXR1cm5bXTt2YXIgaz1bXSxLPVtdLGVlPVMubWF0Y2goLzwoPzpcdys6KT9hdXRob3JzPihbXHNcU10qKTxcLyg/Olx3KzopP2F1dGhvcnM+Lyk7ZWUmJmVlWzFdJiZlZVsxXS5zcGxp'@; put 'dCgvPFwvXHcqOj9hdXRob3I+LykuZm9yRWFjaChmdW5jdGlvbihtZSl7aWYoIiIhPT1tZSYmIiIhPT1tZS50cmltKCkpe3ZhciBwZT1tZS5tYXRjaCgvPCg/Olx3KzopP2F1dGhvcltePl0qPiguKikvKTtwZSYmay5wdXNoKHBlWzFdKX19KTt2YXIgb2U9Uy5tYXRjaCgvPCg/Olx3KzopP2Nv'@; put 'bW1lbnRMaXN0PihbXHNcU10qKTxcLyg/Olx3KzopP2NvbW1lbnRMaXN0Pi8pO3JldHVybiBvZSYmb2VbMV0mJm9lWzFdLnNwbGl0KC88XC9cdyo6P2NvbW1lbnQ+LykuZm9yRWFjaChmdW5jdGlvbihtZSl7aWYoIiIhPT1tZSYmIiIhPT1tZS50cmltKCkpe3ZhciBwZT1tZS5tYXRjaCgvPCg/'@; put 'Olx3KzopP2NvbW1lbnRbXj5dKj4vKTtpZihwZSl7dmFyIGJlPXlyKHBlWzBdKSxQZT17YXV0aG9yOmJlLmF1dGhvcklkJiZrW2JlLmF1dGhvcklkXXx8InNoZWV0anNnaG9zdCIscmVmOmJlLnJlZixndWlkOmJlLmd1aWR9LFZlPVZzKGJlLnJlZik7aWYoIShPLnNoZWV0Um93cyYmTy5zaGVl'@; put 'dFJvd3M8PVZlLnIpKXt2YXIgWWU9bWUubWF0Y2goLzwoPzpcdys6KT90ZXh0PihbXHNcU10qKTxcLyg/Olx3KzopP3RleHQ+LyksZXQ9ISFZZSYmISFZZVsxXSYmZ0MoWWVbMV0pfHx7cjoiIix0OiIiLGg6IiJ9O1BlLnI9ZXQuciwiPHQ+PC90PiI9PWV0LnImJihldC50PWV0Lmg9IiIpLFBl'@; put 'LnQ9KGV0LnR8fCIiKS5yZXBsYWNlKC9cclxuL2csIlxuIikucmVwbGFjZSgvXHIvZywiXG4iKSxPLmNlbGxIVE1MJiYoUGUuaD1ldC5oKSxLLnB1c2goUGUpfX19fSksS30oUyxrKX0oQXQoUyxidCwhMCksYnQsYmUpKXx8IVR0Lmxlbmd0aClyZXR1cm47IWZ1bmN0aW9uIFprKFMsTyl7dmFy'@; put 'IEssaz1BcnJheS5pc0FycmF5KFMpO08uZm9yRWFjaChmdW5jdGlvbihlZSl7dmFyIG9lPVZzKGVlLnJlZik7aWYoaz8oU1tvZS5yXXx8KFNbb2Uucl09W10pLEs9U1tvZS5yXVtvZS5jXSk6Sz1TW2VlLnJlZl0sIUspe0s9e3Q6InoifSxrP1Nbb2Uucl1bb2UuY109SzpTW2VlLnJlZl09Szt2'@; put 'YXIgbWU9c3MoU1siIXJlZiJdfHwiQkRXR08xMDAwMDAxOkExIik7bWUucy5yPm9lLnImJihtZS5zLnI9b2UuciksbWUuZS5yPG9lLnImJihtZS5lLnI9b2UuciksbWUucy5jPm9lLmMmJihtZS5zLmM9b2UuYyksbWUuZS5jPG9lLmMmJihtZS5lLmM9b2UuYyk7dmFyIHBlPXJhKG1lKTtwZSE9'@; put 'PVNbIiFyZWYiXSYmKFNbIiFyZWYiXT1wZSl9Sy5jfHwoSy5jPVtdKTt2YXIgYmU9e2E6ZWUuYXV0aG9yLHQ6ZWUudCxyOmVlLnJ9O2JlLnImJiJzdHJpbmciPT10eXBlb2YgYmUuciYmKGJlLlI9eTUoYmUucikpLGVlLmgmJihiZS5oPWVlLmgpLEsuYy5wdXNoKGJlKX0pfShjdCxUdCl9fSks'@; put 'ZnVuY3Rpb24gck0oUyxPLGssSyxlZSxvZSxtZSl7IVN8fCFTWyIhdGFibGVyZWZzIl18fCFrfHwha1siIWlkIl18fChTWyIhdGFibGVzIl09W10sU1siIXRhYmxlcmVmcyJdLmZvckVhY2goZnVuY3Rpb24ocGUpe3ZhciBiZT1rWyIhaWQiXVtwZV07aWYoYmUmJmJlLlRhcmdldCl7dmFyIFBl'@; put 'PWZuKGJlLlRhcmdldCxLKTshZnVuY3Rpb24gd0IoUyxPLGssSyxlZSl7dmFyIG9lPXtzdHlsZTp7fSxoZWFkZXI6MH0sbWU9ITE7Uy5yZXBsYWNlKHRuLGZ1bmN0aW9uKHBlKXt2YXIgYmU9eXIocGUpO3N3aXRjaChHbihiZVswXSkpe2Nhc2UiPD94bWwiOmNhc2UiPC90YWJsZT4iOmNhc2Ui'@; put 'PC9hdXRvRmlsdGVyPiI6Y2FzZSI8c29ydFN0YXRlIjpjYXNlIjxzb3J0U3RhdGU+IjpjYXNlIjwvc29ydFN0YXRlPiI6Y2FzZSI8L3RhYmxlQ29sdW1ucyI6Y2FzZSI8L3RhYmxlQ29sdW1ucz4iOmNhc2UiPC90YWJsZUNvbHVtbj4iOmNhc2UiPGNhbGN1bGF0ZWRDb2x1bW5Gb3JtdWxhPiI6'@; put 'Y2FzZSI8Y2FsY3VsYXRlZENvbHVtbkZvcm11bGEiOmNhc2UiPC9jYWxjdWxhdGVkQ29sdW1uRm9ybXVsYT4iOmNhc2UiPHRvdGFsc1Jvd0Zvcm11bGE+IjpjYXNlIjx0b3RhbHNSb3dGb3JtdWxhIjpjYXNlIjwvdG90YWxzUm93Rm9ybXVsYT4iOmNhc2UiPHhtbENvbHVtblByPiI6Y2FzZSI8'@; put 'eG1sQ29sdW1uUHIiOmNhc2UiPC94bWxDb2x1bW5Qcj4iOmNhc2UiPHNvcnRDb25kaXRpb24+IjpjYXNlIjxzb3J0Q29uZGl0aW9uIjpjYXNlIjxleHRMc3QiOmNhc2UiPGV4dExzdD4iOmNhc2UiPC9leHRMc3Q+IjpjYXNlIjxleHRMc3QvPiI6YnJlYWs7Y2FzZSI8dGFibGUiOmJlLnJlZiYm'@; put 'KG9lLnJlZj1iZS5yZWYpLGJlLm5hbWU/b2UubmFtZT1iZS5uYW1lOmJlLmRpc3BsYXlOYW1lJiYob2UubmFtZT1iZS5kaXNwbGF5TmFtZSksbnVsbCE9YmUuaGVhZGVycm93Y291bnQmJjEhPStiZS5oZWFkZXJyb3djb3VudD9vZS5oZWFkZXI9K2JlLmhlYWRlcnJvd2NvdW50Om51bGw9PWJl'@; put 'LmhlYWRlcnJvd2NvdW50JiYob2UuaGVhZGVyPTEpO2JyZWFrO2Nhc2UiPGF1dG9GaWx0ZXIiOmNhc2UiPGF1dG9GaWx0ZXI+IjpvZS5maWx0ZXI9ITA7YnJlYWs7Y2FzZSI8dGFibGVDb2x1bW5zIjpjYXNlIjx0YWJsZUNvbHVtbnM+IjpvZS5jb2xzPVtdO2JyZWFrO2Nhc2UiPHRhYmxlU3R5'@; put 'bGVJbmZvIjpiZS5zaG93Um93U3RyaXBlcyYmKG9lLnN0eWxlLnJvd3N0cmlwZT1laShiZS5zaG93Um93U3RyaXBlcykpLGJlLnNob3dDb2x1bW5TdHJpcGVzJiYob2Uuc3R5bGUuY29sc3RyaXBlPWVpKGJlLnNob3dDb2x1bW5TdHJpcGVzKSksYmUuc2hvd0ZpcnN0Q29sdW1uJiYob2Uuc3R5'@; put 'bGUuY29sZmlyc3Q9ZWkoYmUuc2hvd0ZpcnN0Q29sdW1uKSksYmUuc2hvd0xhc3RDb2x1bW4mJihvZS5zdHlsZS5jb2xsYXN0PWVpKGJlLnNob3dMYXN0Q29sdW1uKSksYmUubmFtZSYmKG9lLnN0eWxlLm5hbWU9YmUubmFtZS5yZXBsYWNlKC9eVGFibGVTdHlsZS8sIiIpKTticmVhaztjYXNl'@; put 'Ijx0YWJsZUNvbHVtbiI6Y2FzZSI8dGFibGVDb2x1bW4+IjpvZS5jb2xzLnB1c2goe2lkOitiZS5pZCxuYW1lOmJlLm5hbWV9KTticmVhaztjYXNlIjxmaWx0ZXJDb2x1bW4+IjpjYXNlIjxmaWx0ZXJDb2x1bW4iOmNhc2UiPGN1c3RvbUZpbHRlcnMiOmNhc2UiPGN1c3RvbUZpbHRlcnM+Ijpj'@; put 'YXNlIjxleHQiOm1lPSEwO2JyZWFrO2Nhc2UiPC9maWx0ZXJDb2x1bW4+IjpjYXNlIjwvY3VzdG9tRmlsdGVycz4iOmNhc2UiPC9leHQ+IjptZT0hMTticmVhaztkZWZhdWx0OmlmKCFtZSYmZWUuV1RGKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkICIrYmVbMF0rIiBpbiB0YWJsZSIp'@; put 'fXJldHVybiBwZX0pLG9lLmZpbHRlcnx8KG9lLmZpbHRlcj0hMSksb2Uuc3R5bGUubmFtZSYmIW9lLnN0eWxlLm5hbWUubWF0Y2goL14oTGlnaHR8TWVkaXVtfERhcmspXGQrJC8pJiZrLlRhYmxlJiZrLlRhYmxlLmZvckVhY2goZnVuY3Rpb24ocGUpeyhwZS5uYW1lPT1vZS5zdHlsZS5uYW1l'@; put 'fHxwZS5yYXduYW1lPT1vZS5zdHlsZS5uYW1lKSYmKG9lLnN0eWxlLnJhdz1KdChwZSkpfSksT1siIXRhYmxlcyJdLnB1c2gob2UpfShBdChPLFBlLCEwKSxTLGVlLDAsbWUpfX0pLGRlbGV0ZSBTWyIhdGFibGVyZWZzIl0pfShjdCxTLG9lW0tdLE8sWWUsMCxiZSksdHlwZW9mIHBhcnNlX3No'@; put 'ZWV0X3Bpdm90PCJ1IiYmSXkucHVzaChbY3QsUyxvZVtLXSxPLHtTaGVldHM6bWV9LFllLGJlXSksZnVuY3Rpb24gclUoUyxPLGssSyxlZSxvZSxtZSxwZSl7aWYoUyYmU1siIWxlZ2RyYXdlbCJdKXt2YXIgYmU9Zm4oU1siIWxlZ2RyYXdlbCJdLlRhcmdldCxLKSxQZT1pcihrLGJlLCEwKTtQ'@; put 'ZSYmZnVuY3Rpb24gR3YoUyxPLGspe3ZhciBLPTA7KFMubWF0Y2goQ0IpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihlZSl7dmFyIEJ0LER0LE90LEt0LFRuLHNyLENuLHVyLG9lPSIiLG1lPSEwLHBlPSIiLGJlPS0xLFBlPXt9LFZlPXt9LFllPXt9LGV0PS0xLGN0PS0xLFR0PSIiLGl0PSIiLGJ0'@; put 'PSIiLGVyPSExLGpuPSExO3N3aXRjaChlZS5yZXBsYWNlKHRuLGZ1bmN0aW9uKHJyLFNpKXt2YXIgUGk9eXIocnIpO3N3aXRjaChHbihQaVswXSkpe2Nhc2UiPHNoYXBlIjpQaS5maWxsY29sb3ImJihQZS5jb2xvcjE9UGkuZmlsbGNvbG9yKSxQaS5zdHJva2Vjb2xvciYmKFllLmNvbG9yPVBp'@; put 'LnN0cm9rZWNvbG9yKTticmVhaztjYXNlIjxmaWxsIjpjYXNlIjxmaWxsPiI6Ijx2OmZpbGwiPT1QaVswXSYmKFBpLmNvbG9yMiYmKFBlLmNvbG9yMj1QaS5jb2xvcjIpLFBpLnR5cGUmJihQZS50eXBlPVBpLnR5cGUpKTticmVhaztjYXNlIjwvZmlsbD4iOmNhc2UiPGxvY2siOmNhc2UiPGxv'@; put 'Y2svPiI6YnJlYWs7Y2FzZSI8c2hhZG93IjpQaS5jb2xvciYmKFZlLmNvbG9yPVBpLmNvbG9yKSxQaS5vbiYmKFZlLm9uPVBpLm9uKTticmVhaztjYXNlIjxDbGllbnREYXRhIjpQaS5PYmplY3RUeXBlJiYob2U9UGkuT2JqZWN0VHlwZSk7YnJlYWs7Y2FzZSI8VmlzaWJsZSI6Y2FzZSI8Vmlz'@; put 'aWJsZS8+IjptZT0hMTticmVhaztjYXNlIjxBbmNob3IiOmNhc2UiPEFuY2hvcj4iOmNhc2UiPFJvdyI6Y2FzZSI8Um93PiI6Y2FzZSI8Q29sdW1uIjpjYXNlIjxDb2x1bW4+IjpjYXNlIjxGbWxhTWFjcm8iOmNhc2UiPEZtbGFNYWNybz4iOmNhc2UiPEZtbGFMaW5rIjpjYXNlIjxGbWxhTGlu'@; put 'az4iOmNhc2UiPEZtbGFSYW5nZSI6Y2FzZSI8Rm1sYVJhbmdlPiI6Y2FzZSI8U2VsVHlwZSI6Y2FzZSI8U2VsVHlwZT4iOmNhc2UiPFZhbCI6Y2FzZSI8VmFsPiI6Y2FzZSI8TWluIjpjYXNlIjxNaW4+IjpjYXNlIjxNYXgiOmNhc2UiPE1heD4iOmNhc2UiPEluYyI6Y2FzZSI8SW5jPiI6Y2Fz'@; put 'ZSI8UGFnZSI6Y2FzZSI8UGFnZT4iOmNhc2UiPENoZWNrZWQiOmNhc2UiPENoZWNrZWQ+IjpjYXNlIjx0ZXh0Ym94IjpjYXNlIjx0ZXh0Ym94PiI6YmU9U2krcnIubGVuZ3RoO2JyZWFrO2Nhc2UiPC9BbmNob3I+IjpwZT1lZS5zbGljZShiZSxTaSkudHJpbSgpO2JyZWFrO2Nhc2UiPC9Sb3c+'@; put 'IjpldD0rZWUuc2xpY2UoYmUsU2kpLnRyaW0oKTticmVhaztjYXNlIjwvQ29sdW1uPiI6Y3Q9K2VlLnNsaWNlKGJlLFNpKS50cmltKCk7YnJlYWs7Y2FzZSI8L0ZtbGFNYWNybz4iOlR0PWVlLnNsaWNlKGJlLFNpKS50cmltKCk7YnJlYWs7Y2FzZSI8L0ZtbGFMaW5rPiI6aXQ9ZWUuc2xpY2Uo'@; put 'YmUsU2kpLnRyaW0oKTticmVhaztjYXNlIjwvRm1sYVJhbmdlPiI6Q249ZWUuc2xpY2UoYmUsU2kpLnRyaW0oKTticmVhaztjYXNlIjwvU2VsVHlwZT4iOnVyPWVlLnNsaWNlKGJlLFNpKS50cmltKCk7YnJlYWs7Y2FzZSI8L1ZhbD4iOkJ0PStlZS5zbGljZShiZSxTaSkudHJpbSgpO2JyZWFr'@; put 'O2Nhc2UiPC9NaW4+IjpEdD0rZWUuc2xpY2UoYmUsU2kpLnRyaW0oKTticmVhaztjYXNlIjwvTWF4PiI6T3Q9K2VlLnNsaWNlKGJlLFNpKS50cmltKCk7YnJlYWs7Y2FzZSI8L0luYz4iOkt0PStlZS5zbGljZShiZSxTaSkudHJpbSgpO2JyZWFrO2Nhc2UiPC9QYWdlPiI6VG49K2VlLnNsaWNl'@; put 'KGJlLFNpKS50cmltKCk7YnJlYWs7Y2FzZSI8L0NoZWNrZWQ+Ijpzcj0rZWUuc2xpY2UoYmUsU2kpLnRyaW0oKTticmVhaztjYXNlIjwvdGV4dGJveD4iOmJ0PWVlLnNsaWNlKGJlLFNpKS50cmltKCk7YnJlYWs7Y2FzZSI8TW92ZVdpdGhDZWxscy8+IjpjYXNlIjxNb3ZlV2l0aENlbGxzPiI6'@; put 'ZXI9ITA7YnJlYWs7Y2FzZSI8U2l6ZVdpdGhDZWxscy8+IjpjYXNlIjxTaXplV2l0aENlbGxzPiI6am49ITB9cmV0dXJuIiJ9KSxvZSl7Y2FzZSJOb3RlIjp2YXIgcHI9VnUuc2hlZXRfZ2V0X2NlbGwoTyxldD49MCYmY3Q+PTA/cWkoe3I6ZXQsYzpjdH0pOmtbS10ucmVmKTtwci5jJiYocHIu'@; put 'Yy5oaWRkZW49bWUscGUmJihwci5jLnJhd2FuY2hvcj1wZSxCayhwZSxwci5jKSxoQihwci5jWyIhcG9zIl0sMiohIWVyKyEham4sTykpLFBlLmNvbG9yMSYmKHByLmMuZmlsbD1QZSksVmUuY29sb3ImJihwci5jLnNoYWRvdz1WZSksWWUuY29sb3ImJihwci5jLnN0cm9rZT1ZZSkpLCsrSzti'@; put 'cmVhaztjYXNlIkJ1dHRvbiI6Y2FzZSJHQm94IjpjYXNlIkRyb3AiOmNhc2UiTGFiZWwiOmNhc2UiQ2hlY2tib3giOmNhc2UiU2Nyb2xsIjpjYXNlIkxpc3QiOmNhc2UiUmFkaW8iOmNhc2UiU3BpbiI6Y2FzZSJFZGl0IjpPWyIhY29udHJvbHMiXXx8KE9bIiFjb250cm9scyJdPVtdKTt2YXIg'@; put 'YnI9eyIhdHlwZSI6b2V9O3BlJiZCayhwZSxiciksVHQmJihici5tYWNybz1UdC5yZXBsYWNlKCJbMF0hIiwiIikpLGl0JiYoYnIubGluaz1pdCksIlNjcm9sbCI9PW9lfHwiU3BpbiI9PW9lPyhudWxsPT1CdCYmKEJ0PTApLG51bGw9PUR0JiYoRHQ9MCksbnVsbD09T3QmJihPdD0zZTQpLG51'@; put 'bGw9PUt0JiYoS3Q9MSksIlNjcm9sbCI9PW9lJiZudWxsPT1UbiYmKFRuPTEwKSk6IlJhZGlvIj09b2V8fCJDaGVja2JveCI9PW9lPyhudWxsPT1zciYmKHNyPTApLEJ0PXNyKTooIkxpc3QiPT1vZXx8IkRyb3AiPT1vZSkmJihudWxsIT1DbiYmKGJyLnJlZj1DbiksbnVsbD09dXImJih1cj0i'@; put 'U2luZ2xlIiksIkxpc3QiPT1vZSYmKGJyLnNlbD11cikpLG51bGwhPUJ0JiYoYnIudmFsPUJ0KSxudWxsIT1EdCYmKGJyLm1pbj1EdCksbnVsbCE9T3QmJihici5tYXg9T3QpLG51bGwhPUt0JiYoYnIuc3RlcD1LdCksbnVsbCE9VG4mJihici5wYWdlPVRuKSxidCYmKGJyLnQ9YnQucmVwbGFj'@; put 'ZSgvXHMqPFtcc1xTXSo/PlxzKi9nLCIiKSksT1siIWNvbnRyb2xzIl0ucHVzaChicil9fSl9KGZzKFBlKSxTLHBlfHxbXSksU1siIUxEUCJdPWJlLFNbIiFjdHJsaWQiXSYmU1siIWN0cmxpZCJdLmZvckVhY2goZnVuY3Rpb24oVmUpe2lmKFZlLnJlbCYmVmUucmVsLlRhcmdldCl7dmFyIFll'@; put 'PWZuKFZlLnJlbC5UYXJnZXQsSyk7VmUucGF0aD1ZZSxkZWxldGUgVmUucmVsfX0pfX0oY3QsMCxTLE8sMCwwLDAsVHQpLGN0fWNhdGNoKGl0KXtpZihiZS5XVEYpdGhyb3cgaXR9fWZ1bmN0aW9uIEVjKFMpe3JldHVybiIvIj09Uy5jaGFyQXQoMCk/Uy5zbGljZSgxKTpTfXZhciBOYz1mdW5j'@; put 'dGlvbigpe307ZnVuY3Rpb24gaXAoUyxPKXtpZihJeT1bXSxqSShPPU98fHt9KSxuaShTLCJNRVRBLUlORi9tYW5pZmVzdC54bWwiKXx8bmkoUywib2JqZWN0ZGF0YS54bWwiKSlyZXR1cm4gZnVuY3Rpb24gQ2EoUyxPKXtPPU98fHt9LG5pKFMsIk1FVEEtSU5GL21hbmlmZXN0LnhtbCIpJiZm'@; put 'dW5jdGlvbiBCcyhTLE8pe2Zvcih2YXIgSyxlZSxrPVhTKFMpO0s9VTUuZXhlYyhrKTspc3dpdGNoKEtbM10pe2Nhc2UibWFuaWZlc3QiOmJyZWFrO2Nhc2UiZmlsZS1lbnRyeSI6aWYoIi8iPT0oZWU9eXIoS1swXSwhMSkpLnBhdGgmJmVlLnR5cGUhPT1hbCl0aHJvdyBuZXcgRXJyb3IoIlRo'@; put 'aXMgT3BlbkRvY3VtZW50IGlzIG5vdCBhIHNwcmVhZHNoZWV0Iik7YnJlYWs7Y2FzZSJlbmNyeXB0aW9uLWRhdGEiOmNhc2UiYWxnb3JpdGhtIjpjYXNlInN0YXJ0LWtleS1nZW5lcmF0aW9uIjpjYXNlImtleS1kZXJpdmF0aW9uIjp0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIE9EUyBF'@; put 'bmNyeXB0aW9uIik7ZGVmYXVsdDppZihPJiZPLldURil0aHJvdyBLfX0oQXQoUywiTUVUQS1JTkYvbWFuaWZlc3QueG1sIiksTyk7dmFyIGs9aXIoUywiY29udGVudC54bWwiKTtpZighayl0aHJvdyBuZXcgRXJyb3IoIk1pc3NpbmcgY29udGVudC54bWwgaW4gT0RTIC8gVU9GIGZpbGUiKTt2'@; put 'YXIgSz1uTShmcyhrKSxPKTtyZXR1cm4gbmkoUywibWV0YS54bWwiKSYmKEsuUHJvcHM9ZnYoQXQoUywibWV0YS54bWwiKSkpLEt9KFMsTyk7aWYobmkoUywiSW5kZXgvRG9jdW1lbnQuaXdhIikpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBOVU1CRVJTIGZpbGUiKTt2YXIgb2UsbWUs'@; put 'az1mdW5jdGlvbiBFdChTKXtmb3IodmFyIE89Uy5GdWxsUGF0aHN8fFJlKFMuZmlsZXMpLGs9W10sSz0wO0s8Ty5sZW5ndGg7KytLKSIvIiE9T1tLXS5zbGljZSgtMSkmJmsucHVzaChPW0tdKTtyZXR1cm4gay5zb3J0KCl9KFMpLEs9ZnVuY3Rpb24gVXcoUyl7dmFyIE89e3dvcmtib29rczpb'@; put 'XSxzaGVldHM6W10sY2hhcnRzOltdLGRpYWxvZ3M6W10sbWFjcm9zOltdLHJlbHM6W10sc3RyczpbXSxjb21tZW50czpbXSxsaW5rczpbXSxjb3JlcHJvcHM6W10sZXh0cHJvcHM6W10sY3VzdHByb3BzOltdLHRoZW1lczpbXSxzdHlsZXM6W10sY2FsY2NoYWluczpbXSx2YmE6W10sZHJhd2lu'@; put 'Z3M6W10scGl2b3RzOltdLHBpdm90Y2FjaGVzOltdLHBpdm90cmVjb3JkczpbXSxkYXRhbW9kZWxzOltdLGNoYXJ0b2JqczpbXSxjaGFydHN0eWxlczpbXSxjaGFydGNvbG9yczpbXSxjaGFydGV4czpbXSx0YWJsZXM6W10sY29ubnM6W10sY3RybHByb3BzOltdLGN1c3RvbXhtbHByb3BzOltd'@; put 'LFRPRE86W10seG1sbnM6IiJ9O2lmKCFTfHwhUy5tYXRjaClyZXR1cm4gTzt2YXIgaz17fTtpZigoUy5tYXRjaCh0bil8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKEspe3ZhciBlZT15cihLKTtzd2l0Y2goZWVbMF0ucmVwbGFjZShjYSwiPCIpKXtjYXNlIjw/eG1sIjpicmVhaztjYXNlIjxUeXBl'@; put 'cyI6Ty54bWxucz1lZVsieG1sbnMiKyhlZVswXS5tYXRjaCgvPChcdyspOi8pfHxbIiIsIiJdKVsxXV07YnJlYWs7Y2FzZSI8RGVmYXVsdCI6a1tlZS5FeHRlbnNpb24udG9Mb3dlckNhc2UoKV09ZWUuQ29udGVudFR5cGU7YnJlYWs7Y2FzZSI8T3ZlcnJpZGUiOnZvaWQgMCE9PU9beTRbZWUu'@; put 'Q29udGVudFR5cGVdXSYmT1t5NFtlZS5Db250ZW50VHlwZV1dLnB1c2goZWUuUGFydE5hbWUpfX0pLE8ueG1sbnMhPT1HaS5DVCl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gTmFtZXNwYWNlOiAiK08ueG1sbnMpO3JldHVybiBPLmNhbGNjaGFpbj1PLmNhbGNjaGFpbnMubGVuZ3RoPjA/Ty5j'@; put 'YWxjY2hhaW5zWzBdOiIiLE8uc3N0PU8uc3Rycy5sZW5ndGg+MD9PLnN0cnNbMF06IiIsTy5zdHlsZT1PLnN0eWxlcy5sZW5ndGg+MD9PLnN0eWxlc1swXToiIixPLmNvbm49Ty5jb25ucy5sZW5ndGg+MD9PLmNvbm5zWzBdOiIiLE8uZGVmYXVsdHM9ayxkZWxldGUgTy5jYWxjY2hhaW5zLE99'@; put 'KGlyKFMsIltDb250ZW50X1R5cGVzXS54bWwiKSksZWU9ITE7aWYoMD09PUsud29ya2Jvb2tzLmxlbmd0aCYmQXQoUyxtZT0ieGwvd29ya2Jvb2sueG1sIiwhMCkmJksud29ya2Jvb2tzLnB1c2gobWUpLDA9PT1LLndvcmtib29rcy5sZW5ndGgpe2lmKCFBdChTLG1lPSJ4bC93b3JrYm9vay5i'@; put 'aW4iLCEwKSl0aHJvdyBuZXcgRXJyb3IoIkNvdWxkIG5vdCBmaW5kIHdvcmtib29rIik7Sy53b3JrYm9va3MucHVzaChtZSksZWU9ITB9ImJpbiI9PUsud29ya2Jvb2tzWzBdLnNsaWNlKC0zKSYmKGVlPSEwKTt2YXIgcGU9e30sYmU9e307aWYoIU8uYm9va1NoZWV0cyYmIU8uYm9va1Byb3Bz'@; put 'KXtpZihsOD1bXSxLLnNzdCl0cnl7bDg9ZnVuY3Rpb24gQXooUyxPLGspe3JldHVybiIuYmluIj09PU8uc2xpY2UoLTQpP2Z1bmN0aW9uIER2KFMsTyl7dmFyIGs9W10sSz0hMTtyZXR1cm4gZHIoUyxmdW5jdGlvbihvZSxtZSxwZSl7c3dpdGNoKHBlKXtjYXNlIDE1OTprLkNvdW50PW9lWzBd'@; put 'LGsuVW5pcXVlPW9lWzFdO2JyZWFrO2Nhc2UgMTk6ay5wdXNoKG9lKTticmVhaztjYXNlIDE2MDpyZXR1cm4hMDtjYXNlIDM1Oks9ITA7YnJlYWs7Y2FzZSAzNjpLPSExO2JyZWFrO2RlZmF1bHQ6aWYobWUuaW5kZXhPZigiQmVnaW4iKT4wfHxtZS5pbmRleE9mKCJFbmQiKSwhS3x8Ty5XVEYp'@; put 'dGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIHJlY29yZCAiK3BlKyIgIittZSl9fSksa30oUyxrKTpmdW5jdGlvbiBnMihTLE8pe3ZhciBrPVtdLEs9IiI7aWYoIVMpcmV0dXJuIGs7dmFyIGVlPVMubWF0Y2godWspO2lmKGVlKXtLPWVlWzJdLnJlcGxhY2UoZGssIiIpLnNwbGl0KFg2KTtm'@; put 'b3IodmFyIG9lPTA7b2UhPUsubGVuZ3RoOysrb2Upe3ZhciBtZT1nQyhLW29lXS50cmltKCksTyk7bnVsbCE9bWUmJihrW2subGVuZ3RoXT1tZSl9ZWU9eXIoZWVbMV0pLGsuQ291bnQ9ZWUuY291bnQsay5VbmlxdWU9ZWUudW5pcXVlQ291bnR9cmV0dXJuIGt9KFMsayl9KEF0KFMsRWMoSy5z'@; put 'c3QpKSxLLnNzdCxPKX1jYXRjaCh3cil7aWYoTy5XVEYpdGhyb3cgd3J9Ty5jZWxsU3R5bGVzJiZLLnRoZW1lcy5sZW5ndGgmJihwZT1mdW5jdGlvbiBUeihTLE8sayl7cmV0dXJuIElDKFMsayl9KGlyKFMsSy50aGVtZXNbMF0ucmVwbGFjZSgvXlwvLywiIiksITApfHwiIiwwLE8pKSxLLnN0'@; put 'eWxlJiYoYmU9ZnVuY3Rpb24gRXooUyxPLGssSyl7cmV0dXJuIi5iaW4iPT09Ty5zbGljZSgtNCk/ZnVuY3Rpb24gQWsoUyxPLGspe3ZhciBLPXtOdW1iZXJGbXQ6W119O2Zvcih2YXIgZWUgaW4gQS5fdGFibGUpSy5OdW1iZXJGbXRbZWVdPUEuX3RhYmxlW2VlXTtLLkNlbGxYZj1bXSxLLkZv'@; put 'bnRzPVtdLEsuRmlsbHM9W10sSy5Cb3JkZXJzPVtdO3ZhciBvZT1bXSxtZT0hMTtyZXR1cm4gZHIoUyxmdW5jdGlvbihiZSxQZSxWZSl7c3dpdGNoKFZlKXtjYXNlIDQ0OksuTnVtYmVyRm10W2JlWzBdXT1iZVsxXSxBLmxvYWQoYmVbMV0sYmVbMF0pO2JyZWFrO2Nhc2UgNDM6enYoYmUuY29s'@; put 'b3IsTyksSy5Gb250cy5wdXNoKGJlKTticmVhaztjYXNlIDEwMjU6Y2FzZSA0ODpjYXNlIDUwNzpjYXNlIDU3MjpjYXNlIDQ3NTpjYXNlIDExNzE6Y2FzZSAyMTAyOmNhc2UgMTEzMDpjYXNlIDUxMjpjYXNlIDIwOTU6Y2FzZSAzMDcyOmJyZWFrO2Nhc2UgNDU6YmUuZmdDb2xvciYmenYoYmUu'@; put 'ZmdDb2xvcixPKSxiZS5iZ0NvbG9yJiZ6dihiZS5iZ0NvbG9yLE8pLEsuRmlsbHMucHVzaChiZSk7YnJlYWs7Y2FzZSA0NjpbInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCIsImRpYWciXS5mb3JFYWNoKGZ1bmN0aW9uKFllKXtiZVtZZV0mJmJlW1llXS5jb2xvciYmenYoYmVbWWVdLmNv'@; put 'bG9yLE8pfSksSy5Cb3JkZXJzLnB1c2goYmUpO2JyZWFrO2Nhc2UgNDc6IkJydEJlZ2luQ2VsbFhGcyI9PW9lW29lLmxlbmd0aC0xXSYmSy5DZWxsWGYucHVzaChiZSk7YnJlYWs7Y2FzZSAzNTptZT0hMDticmVhaztjYXNlIDM2Om1lPSExO2JyZWFrO2Nhc2UgMzc6b2UucHVzaChQZSksbWU9'@; put 'ITA7YnJlYWs7Y2FzZSAzODpvZS5wb3AoKSxtZT0hMTticmVhaztkZWZhdWx0OmlmKChQZXx8IiIpLmluZGV4T2YoIkJlZ2luIik+MClvZS5wdXNoKFBlKTtlbHNlIGlmKChQZXx8IiIpLmluZGV4T2YoIkVuZCIpPjApb2UucG9wKCk7ZWxzZSBpZighbWV8fGsuV1RGJiYiQnJ0QUNCZWdpbiIh'@; put 'PW9lW29lLmxlbmd0aC0xXSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgcmVjb3JkICIrVmUrIiAiK1BlKX19KSwoSy5Gb250c3x8W10pWzBdJiZJNChLLkZvbnRzWzBdKSxLfShTLGssSyk6U2soUyxrLEspfShBdChTLEVjKEsuc3R5bGUpKSxLLnN0eWxlLHBlLE8pKX12YXIgUGU9Sy5s'@; put 'aW5rcy5tYXAoZnVuY3Rpb24od3Ipe3RyeXt2YXIgSG49U2YoaXIoUyxOcihFYyh3cikpKSx3cik7cmV0dXJuIGZ1bmN0aW9uIER6KFMsTyxrLEspe3JldHVybiIuYmluIj09PWsuc2xpY2UoLTQpP2Z1bmN0aW9uIHprKFMsTyxrLEspe2lmKCFTKXJldHVybiBTO3ZhciBlZT1LfHx7fSxvZT0h'@; put 'MTtkcihTLGZ1bmN0aW9uKGJlLFBlLFZlKXtzd2l0Y2goVmUpe2Nhc2UgMzU5OmNhc2UgMzYzOmNhc2UgMzY0OmNhc2UgMzY2OmNhc2UgMzY3OmNhc2UgMzY4OmNhc2UgMzY5OmNhc2UgMzcwOmNhc2UgMzcxOmNhc2UgNDcyOmNhc2UgNTc3OmNhc2UgNTc4OmNhc2UgNTc5OmNhc2UgNTgwOmNh'@; put 'c2UgNTgxOmNhc2UgNTgyOmNhc2UgNTgzOmNhc2UgNTg0OmNhc2UgNTg1OmNhc2UgNTg2OmNhc2UgNTg3OmJyZWFrO2Nhc2UgMzU6b2U9ITA7YnJlYWs7Y2FzZSAzNjpvZT0hMTticmVhaztkZWZhdWx0OmlmKCEoKFBlfHwiIikuaW5kZXhPZigiQmVnaW4iKT4wKSYmISgoUGV8fCIiKS5pbmRl'@; put 'eE9mKCJFbmQiKT4wKSYmKCFvZXx8ZWUuV1RGKSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgcmVjb3JkICIrVmUudG9TdHJpbmcoMTYpKyIgIitQZSl9fSxlZSl9KFMsMCwwLEspOmZ1bmN0aW9uIGprKFMsTyxrLEspe3ZhciBlZT1LfHx7fSxvZT17U2hlZXROYW1lczpbXSxTaGVldHM6'@; put 'e319LHBlPSExLGJlPXt9LFBlPS0xLFZlPS0xLFllPXtzOntyOjAsYzowfSxlOntyOi0xLGM6LTF9fSxldD17fSxjdD0wO3JldHVybihTfHwiIikucmVwbGFjZSh0bixmdW5jdGlvbihUdCxpdCl7dmFyIGJ0PXlyKFR0KTtzd2l0Y2goR24oYnRbMF0pKXtjYXNlIjw/eG1sIjpjYXNlIjxleHRl'@; put 'cm5hbExpbmsiOmNhc2UiPC9leHRlcm5hbExpbms+IjpjYXNlIjwvZXh0ZXJuYWxCb29rPiI6Y2FzZSI8c2hlZXROYW1lcyI6Y2FzZSI8c2hlZXROYW1lcz4iOmNhc2UiPC9zaGVldE5hbWVzPiI6Y2FzZSI8c2hlZXREYXRhU2V0PiI6Y2FzZSI8c2hlZXREYXRhU2V0Lz4iOmNhc2UiPC9zaGVl'@; put 'dERhdGFTZXQ+IjpjYXNlIjwvcm93PiI6YnJlYWs7Y2FzZSI8ZXh0ZXJuYWxCb29rIjpjYXNlIjxleHRlcm5hbEJvb2s+IjpvZS5UYXJnZXQ9T1siIWlkIl1bYnQuaWRdLlRhcmdldCxvZS5NaXNzaW5nPU9bIiFpZCJdW2J0LmlkXS5UeXBlPT1YYS5YTUlTUzticmVhaztjYXNlIjxzaGVldE5h'@; put 'bWUiOm9lLlNoZWV0TmFtZXMucHVzaChRcihmcyhidC52YWwpKSk7YnJlYWs7Y2FzZSI8c2hlZXREYXRhIjpiZT17fSxvZS5TaGVldHNbb2UuU2hlZXROYW1lc1tidC5zaGVldElkXV09ZWkoYnQucmVmcmVzaEVycm9yfHwiMCIpP251bGw6YmU7YnJlYWs7Y2FzZSI8L3NoZWV0RGF0YT4iOlll'@; put 'LmUuYz49MCYmKGJlWyIhcmVmIl09cmEoWWUpKTticmVhaztjYXNlIjxyb3ciOmNhc2UiPHJvdz4iOmJ0LnI/UGU9cGFyc2VJbnQoYnQuciwxMCktMTpQZSsrLFZlPS0xO2JyZWFrO2Nhc2UiPGNlbGwiOmNhc2UiPGNlbGw+IjpidC5yP1ZlPVZzKGJ0LnIpLmM6KytWZSxldC50PWJ0LnR8fCJu'@; put 'Iiwic3RyIj09ZXQudCYmKGV0LnQ9InMiKTticmVhaztjYXNlIjwvY2VsbD4iOlllLmUucjxQZSYmKFllLmUucj1QZSksWWUuZS5jPFZlJiYoWWUuZS5jPVZlKSxiZVtxaSh7cjpQZSxjOlZlfSldPWV0LGV0PXt9O2JyZWFrO2Nhc2UiPHYiOmNhc2UiPHY+IjpjdD1UdC5sZW5ndGgraXQ7YnJl'@; put 'YWs7Y2FzZSI8L3Y+Ijp2YXIgQnQ9UXIoUy5zbGljZShjdCxpdCkpO2V0LnY9Im4iPT1ldC50P3BhcnNlRmxvYXQoQnQpOkJ0O2JyZWFrO2Nhc2UiPHYvPiI6ZXQudj0iIjticmVhaztjYXNlIjxkZWZpbmVkTmFtZXM+IjpwZT0hMDticmVhaztjYXNlIjwvZGVmaW5lZE5hbWVzPiI6cGU9ITE7'@; put 'YnJlYWs7ZGVmYXVsdDppZighcGUmJmVlLldURil0aHJvdyJ1bnJlY29nbml6ZWQgIitidFswXSsiIGluIGV4dGVybmFsIGxpbmsifX0pLG9lfShTLE8sMCxLKX0oQXQoUyxFYyh3cikpLEhuLHdyLE8pfWNhdGNoe319KSxWZT1mdW5jdGlvbiBrOChTLE8sayl7cmV0dXJuIi5iaW4iPT09Ty5z'@; put 'bGljZSgtNCk/ZnVuY3Rpb24gR25lKFMsTyl7dmFyIGs9e0FwcFZlcnNpb246e30sV0JQcm9wczp7fSxXQlZpZXc6W10sU2hlZXRzOltdLENhbGNQcjp7fSx4bWxuczoiIn0sSz1bXSxlZT0hMTtPfHwoTz17fSksTy5iaWZmPTEyO3ZhciBvZT1bXSxtZT1bW11dO3JldHVybiBtZS5TaGVldE5h'@; put 'bWVzPVtdLG1lLlhUST1bXSxMOFsxNl09e246IkJydEZSVEFyY2hJRCQiLGY6bnB9LGRyKFMsZnVuY3Rpb24oYmUsUGUsVmUpe3N3aXRjaChWZSl7Y2FzZSAxNTY6bWUuU2hlZXROYW1lcy5wdXNoKGJlLm5hbWUpLGsuU2hlZXRzLnB1c2goYmUpO2JyZWFrO2Nhc2UgMTUzOmsuV0JQcm9wcz1i'@; put 'ZTticmVhaztjYXNlIDM5Om51bGwhPWJlLlNoZWV0JiYoTy5TSUQ9YmUuU2hlZXQpLGJlLlJlZj1hMChiZS5QdGcsbnVsbCxudWxsLG1lLE8pLGRlbGV0ZSBPLlNJRCxkZWxldGUgYmUuUHRnLG9lLnB1c2goYmUpO2JyZWFrO2Nhc2UgMTAzNjpjYXNlIDM2MTpjYXNlIDIwNzE6Y2FzZSAxNTg6'@; put 'Y2FzZSAxNDM6Y2FzZSA2NjQ6Y2FzZSAzNTM6Y2FzZSAzMDcyOmNhc2UgMzA3MzpjYXNlIDUzNDpjYXNlIDY3NzpjYXNlIDE1NzpjYXNlIDYxMDpjYXNlIDIwNTA6Y2FzZSAxNTU6Y2FzZSA1NDg6Y2FzZSA2NzY6Y2FzZSAxMjg6Y2FzZSA2NjU6Y2FzZSAyMTI4OmNhc2UgMjEyNTpjYXNlIDU0'@; put 'OTpjYXNlIDIwNTM6Y2FzZSA1OTY6Y2FzZSAyMDc2OmNhc2UgMjA3NTpjYXNlIDIwODI6Y2FzZSAzOTc6Y2FzZSAxNTQ6Y2FzZSAxMTE3OmNhc2UgNTUzOmNhc2UgMjA5MTpjYXNlIDE2OmJyZWFrO2Nhc2UgMzU3OmNhc2UgMzU4OmNhc2UgMzU1OmNhc2UgNjY3Om1lWzBdLmxlbmd0aD9tZS5w'@; put 'dXNoKFtWZSxiZV0pOm1lWzBdPVtWZSxiZV0sbWVbbWUubGVuZ3RoLTFdLlhUST1bXTticmVhaztjYXNlIDM2MjowPT09bWUubGVuZ3RoJiYobWVbMF09W10sbWVbMF0uWFRJPVtdKSxtZVttZS5sZW5ndGgtMV0uWFRJPW1lW21lLmxlbmd0aC0xXS5YVEkuY29uY2F0KGJlKSxtZS5YVEk9bWUu'@; put 'WFRJLmNvbmNhdChiZSk7YnJlYWs7Y2FzZSAzNTpjYXNlIDM3OksucHVzaChQZSksZWU9ITA7YnJlYWs7Y2FzZSAzNjpjYXNlIDM4OksucG9wKCksZWU9ITE7YnJlYWs7ZGVmYXVsdDppZighKChQZXx8IiIpLmluZGV4T2YoIkJlZ2luIik+MCkmJiEoKFBlfHwiIikuaW5kZXhPZigiRW5kIik+'@; put 'MCkmJighZWV8fE8uV1RGJiYiQnJ0QUNCZWdpbiIhPUtbSy5sZW5ndGgtMV0mJiJCcnRGUlRCZWdpbiIhPUtbSy5sZW5ndGgtMV0pKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCByZWNvcmQgIitWZSsiICIrUGUpfX0sTyksQlMoayksay5OYW1lcz1vZSxrLnN1cGJvb2tzPW1lLGt9KFMs'@; put 'ayk6ZnVuY3Rpb24gelMoUyxPKXtpZighUyl0aHJvdyBuZXcgRXJyb3IoIkNvdWxkIG5vdCBmaW5kIGZpbGUiKTt2YXIgaz17QXBwVmVyc2lvbjp7fSxXQlByb3BzOnt9LFdCVmlldzpbXSxTaGVldHM6W10sQ2FsY1ByOnt9LE5hbWVzOltdLEV4dGVybjpbXSx4bWxuczoiIn0sSz0hMSxlZT0i'@; put 'eG1sbnMiLG9lPXt9LG1lPTA7aWYoUy5yZXBsYWNlKHRuLGZ1bmN0aW9uKGJlLFBlKXt2YXIgVmU9eXIoYmUpO3N3aXRjaChHbihWZVswXSkpe2Nhc2UiPD94bWwiOmNhc2UiPC93b3JrYm9vaz4iOmNhc2UiPGZpbGVWZXJzaW9uLz4iOmNhc2UiPC9maWxlVmVyc2lvbj4iOmNhc2UiPGZpbGVT'@; put 'aGFyaW5nLz4iOmNhc2UiPC93b3JrYm9va1ByPiI6Y2FzZSI8d29ya2Jvb2tQcm90ZWN0aW9uLz4iOmNhc2UiPGJvb2tWaWV3cyI6Y2FzZSI8Ym9va1ZpZXdzPiI6Y2FzZSI8L2Jvb2tWaWV3cz4iOmNhc2UiPC93b3JrYm9va1ZpZXc+IjpjYXNlIjxzaGVldHMiOmNhc2UiPHNoZWV0cz4iOmNh'@; put 'c2UiPC9zaGVldHM+IjpjYXNlIjwvc2hlZXQ+IjpjYXNlIjxmdW5jdGlvbkdyb3VwcyI6Y2FzZSI8ZnVuY3Rpb25Hcm91cHMvPiI6Y2FzZSI8ZnVuY3Rpb25Hcm91cCI6Y2FzZSI8ZXh0ZXJuYWxSZWZlcmVuY2VzIjpjYXNlIjwvZXh0ZXJuYWxSZWZlcmVuY2VzPiI6Y2FzZSI8ZXh0ZXJuYWxS'@; put 'ZWZlcmVuY2VzPiI6Y2FzZSI8ZGVmaW5lZE5hbWVzLz4iOmNhc2UiPGRlZmluZWROYW1lLz4iOmNhc2UiPC9jYWxjUHI+IjpjYXNlIjxvbGVTaXplIjpjYXNlIjxjdXN0b21Xb3JrYm9va1ZpZXdzPiI6Y2FzZSI8L2N1c3RvbVdvcmtib29rVmlld3M+IjpjYXNlIjxjdXN0b21Xb3JrYm9va1Zp'@; put 'ZXdzIjpjYXNlIjxjdXN0b21Xb3JrYm9va1ZpZXciOmNhc2UiPC9jdXN0b21Xb3JrYm9va1ZpZXc+IjpjYXNlIjxwaXZvdENhY2hlcz4iOmNhc2UiPC9waXZvdENhY2hlcz4iOmNhc2UiPHBpdm90Q2FjaGVzIjpjYXNlIjxwaXZvdENhY2hlIjpjYXNlIjxzbWFydFRhZ1ByIjpjYXNlIjxzbWFy'@; put 'dFRhZ1ByLz4iOmNhc2UiPHNtYXJ0VGFnVHlwZXMiOmNhc2UiPHNtYXJ0VGFnVHlwZXM+IjpjYXNlIjwvc21hcnRUYWdUeXBlcz4iOmNhc2UiPHNtYXJ0VGFnVHlwZSI6Y2FzZSI8d2ViUHVibGlzaGluZyI6Y2FzZSI8d2ViUHVibGlzaGluZy8+IjpjYXNlIjxmaWxlUmVjb3ZlcnlQciI6Y2Fz'@; put 'ZSI8ZmlsZVJlY292ZXJ5UHIvPiI6Y2FzZSI8d2ViUHVibGlzaE9iamVjdHM+IjpjYXNlIjx3ZWJQdWJsaXNoT2JqZWN0cyI6Y2FzZSI8L3dlYlB1Ymxpc2hPYmplY3RzPiI6Y2FzZSI8d2ViUHVibGlzaE9iamVjdCI6Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0'@; put 'PiI6Y2FzZSI8ZXh0THN0Lz4iOmNhc2UiPEFyY2hJRCI6Y2FzZSI8cmV2aXNpb25QdHIiOmJyZWFrO2Nhc2UiPHdvcmtib29rIjpiZS5tYXRjaChFOCkmJihlZT0ieG1sbnMiK2JlLm1hdGNoKC88KFx3Kyk6LylbMV0pLGsueG1sbnM9VmVbZWVdO2JyZWFrO2Nhc2UiPGZpbGVWZXJzaW9uIjpk'@; put 'ZWxldGUgVmVbMF0say5BcHBWZXJzaW9uPVZlO2JyZWFrO2Nhc2UiPGZpbGVTaGFyaW5nIjprLk1vZGlmeT17dXNlcjpWZS51c2VyTmFtZSx3YXJuOmVpKFZlLnJlYWRPbmx5UmVjb21tZW5kZWR8fCJmYWxzZSIpfSwoVmUuYWxnb3JpdGhtTmFtZXx8VmUuaGFzaFZhbHVlfHxWZS5zYWx0VmFs'@; put 'dWV8fFZlLnNwaW5Db3VudCkmJihrLk1vZGlmeS5lbmNyeXB0aW9uPXthbGdvOlZlLmFsZ29yaXRobU5hbWUsaGFzaDpWZS5oYXNoVmFsdWUsc2FsdDpWZS5zYWx0VmFsdWUsc3BpbjorVmUuc3BpbkNvdW50fHwxZTV9KTticmVhaztjYXNlIjx3b3JrYm9va1ByIjpjYXNlIjx3b3JrYm9va1By'@; put 'Lz4iOmd5LmZvckVhY2goZnVuY3Rpb24oZXQpe2lmKG51bGwhPVZlW2V0WzBdXSlzd2l0Y2goZXRbMl0pe2Nhc2UiYm9vbCI6ay5XQlByb3BzW2V0WzBdXT1laShWZVtldFswXV0pO2JyZWFrO2Nhc2UiaW50IjprLldCUHJvcHNbZXRbMF1dPXBhcnNlSW50KFZlW2V0WzBdXSwxMCk7YnJlYWs7'@; put 'ZGVmYXVsdDprLldCUHJvcHNbZXRbMF1dPVZlW2V0WzBdXX19KSxWZS5jb2RlTmFtZSYmKGsuV0JQcm9wcy5Db2RlTmFtZT1mcyhWZS5jb2RlTmFtZSkpO2JyZWFrO2Nhc2UiPHdvcmtib29rUHJvdGVjdGlvbiI6dmFyIFllPWsuUHJvdGVjdGlvbnx8e307WWUubG9ja1N0cnVjdHVyZT1laShW'@; put 'ZS5sb2NrU3RydWN0dXJlfHwiZmFsc2UiKSxZZS5sb2NrV2luZG93cz1laShWZS5sb2NrV2luZG93c3x8ImZhbHNlIiksVmUud29ya2Jvb2tBbGdvcml0aG1OYW1lJiYoWWUuZW5jcnlwdGlvbj17YWxnbzpWZS53b3JrYm9va0FsZ29yaXRobU5hbWUsaGFzaDpWZS53b3JrYm9va0hhc2hWYWx1'@; put 'ZSxzYWx0OlZlLndvcmtib29rU2FsdFZhbHVlLHNwaW46K1ZlLndvcmtib29rU3BpbkNvdW50fHwxZTV9KSxrLlByb3RlY3Rpb249WWU7YnJlYWs7Y2FzZSI8d29ya2Jvb2tWaWV3IjpjYXNlIjx3b3JrYm9va1ZpZXcvPiI6ZGVsZXRlIFZlWzBdLGsuV0JWaWV3LnB1c2goVmUpO2JyZWFrO2Nh'@; put 'c2UiPHNoZWV0Ijpzd2l0Y2goVmUuc3RhdGUpe2Nhc2UiaGlkZGVuIjpWZS5IaWRkZW49MTticmVhaztjYXNlInZlcnlIaWRkZW4iOlZlLkhpZGRlbj0yO2JyZWFrO2RlZmF1bHQ6VmUuSGlkZGVuPTB9ZGVsZXRlIFZlLnN0YXRlLFZlLm5hbWU9UXIoZnMoVmUubmFtZSkpLGRlbGV0ZSBWZVsw'@; put 'XSxrLlNoZWV0cy5wdXNoKFZlKTticmVhaztjYXNlIjxleHRlcm5hbFJlZmVyZW5jZSI6ay5FeHRlcm4ucHVzaChWZS5pZCk7YnJlYWs7Y2FzZSI8ZGVmaW5lZE5hbWVzPiI6Y2FzZSI8ZGVmaW5lZE5hbWVzIjpjYXNlIjxleHQiOmNhc2UiPEFsdGVybmF0ZUNvbnRlbnQiOmNhc2UiPEFsdGVy'@; put 'bmF0ZUNvbnRlbnQ+IjpLPSEwO2JyZWFrO2Nhc2UiPC9kZWZpbmVkTmFtZXM+IjpjYXNlIjwvZXh0PiI6Y2FzZSI8L0FsdGVybmF0ZUNvbnRlbnQ+IjpLPSExO2JyZWFrO2Nhc2UiPGRlZmluZWROYW1lIjoob2U9e30pLk5hbWU9ZnMoVmUubmFtZSksVmUuY29tbWVudCYmKG9lLkNvbW1lbnQ9'@; put 'VmUuY29tbWVudCksVmUubG9jYWxTaGVldElkJiYob2UuU2hlZXQ9K1ZlLmxvY2FsU2hlZXRJZCksZWkoVmUuaGlkZGVufHwiMCIpJiYob2UuSGlkZGVuPSEwKSxtZT1QZStiZS5sZW5ndGg7YnJlYWs7Y2FzZSI8L2RlZmluZWROYW1lPiI6b2UuUmVmPVFyKGZzKFMuc2xpY2UobWUsUGUpKSks'@; put 'ay5OYW1lcy5wdXNoKG9lKTticmVhaztjYXNlIjxjYWxjUHIiOmNhc2UiPGNhbGNQci8+IjpkZWxldGUgVmVbMF0say5DYWxjUHI9VmU7YnJlYWs7ZGVmYXVsdDppZighSyYmTy5XVEYpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitWZVswXSsiIGluIHdvcmtib29rIil9cmV0dXJu'@; put 'IGJlfSksLTE9PT1HaS5tYWluLmluZGV4T2Yoay54bWxucykpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIE5hbWVzcGFjZTogIitrLnhtbG5zKTtyZXR1cm4gQlMoayksa30oUyxrKX0oQXQoUyxFYyhLLndvcmtib29rc1swXSkpLEsud29ya2Jvb2tzWzBdLE8pLFllPXt9LGV0PSIiO0suY29y'@; put 'ZXByb3BzLmxlbmd0aCYmKChldD1BdChTLEVjKEsuY29yZXByb3BzWzBdKSwhMCkpJiYoWWU9ZnYoZXQpKSwwIT09Sy5leHRwcm9wcy5sZW5ndGgmJihldD1BdChTLEVjKEsuZXh0cHJvcHNbMF0pLCEwKSkmJmZ1bmN0aW9uICRBKFMsTyxrKXt2YXIgSz17fTtPfHwoTz17fSksUz1mcyhTKSxy'@; put 'aC5mb3JFYWNoKGZ1bmN0aW9uKGVlKXt2YXIgb2U9KFMubWF0Y2goQTAoZWVbMF0pKXx8W10pWzFdO3N3aXRjaChlZVsyXSl7Y2FzZSJzdHJpbmciOm9lJiYoT1tlZVsxXV09UXIob2UpKTticmVhaztjYXNlImJvb2wiOk9bZWVbMV1dPSJ0cnVlIj09PW9lO2JyZWFrO2Nhc2UicmF3Ijp2YXIg'@; put 'bWU9Uy5tYXRjaChuZXcgUmVnRXhwKCI8IitlZVswXSsiW14+XSo+KFtcXHNcXFNdKj8pPC8iK2VlWzBdKyI+IikpO21lJiZtZS5sZW5ndGg+MCYmKEtbZWVbMV1dPW1lWzFdKX19KSxLLkhlYWRpbmdQYWlycyYmSy5UaXRsZXNPZlBhcnRzJiZfNChLLkhlYWRpbmdQYWlycyxLLlRpdGxlc09m'@; put 'UGFydHMsTyxrKX0oZXQsWWUsTykpO3ZhciBjdD17fTsoIU8uYm9va1NoZWV0c3x8Ty5ib29rUHJvcHMpJiYwIT09Sy5jdXN0cHJvcHMubGVuZ3RoJiYoZXQ9aXIoUyxFYyhLLmN1c3Rwcm9wc1swXSksITApKSYmKGN0PWZ1bmN0aW9uIGd2KFMsTyl7dmFyIGs9e30sSz0iIixlZT1TLm1hdGNo'@; put 'KE82KTtpZihlZSlmb3IodmFyIG9lPTA7b2UhPWVlLmxlbmd0aDsrK29lKXt2YXIgbWU9ZWVbb2VdLHBlPXlyKG1lKTtzd2l0Y2gocGVbMF0pe2Nhc2UiPD94bWwiOmNhc2UiPFByb3BlcnRpZXMiOmJyZWFrO2Nhc2UiPHByb3BlcnR5IjpLPVFyKHBlLm5hbWUpO2JyZWFrO2Nhc2UiPC9wcm9w'@; put 'ZXJ0eT4iOks9bnVsbDticmVhaztkZWZhdWx0OmlmKDA9PT1tZS5pbmRleE9mKCI8dnQ6Iikpe3ZhciBiZT1tZS5zcGxpdCgiPiIpLFBlPWJlWzBdLnNsaWNlKDQpLFZlPWJlWzFdO3N3aXRjaChQZSl7Y2FzZSJscHN0ciI6Y2FzZSJic3RyIjpjYXNlImxwd3N0ciI6Y2FzZSJjeSI6Y2FzZSJl'@; put 'cnJvciI6a1tLXT1RcihWZSk7YnJlYWs7Y2FzZSJib29sIjprW0tdPWVpKFZlKTticmVhaztjYXNlImkxIjpjYXNlImkyIjpjYXNlImk0IjpjYXNlImk4IjpjYXNlImludCI6Y2FzZSJ1aW50IjprW0tdPXBhcnNlSW50KFZlLDEwKTticmVhaztjYXNlInI0IjpjYXNlInI4IjpjYXNlImRlY2lt'@; put 'YWwiOmtbS109cGFyc2VGbG9hdChWZSk7YnJlYWs7Y2FzZSJmaWxldGltZSI6Y2FzZSJkYXRlIjprW0tdPU5lKFZlKTticmVhaztkZWZhdWx0OmlmKCIvIj09UGUuc2xpY2UoLTEpKWJyZWFrO08uV1RGJiZ0eXBlb2YgY29uc29sZTwidSImJmNvbnNvbGUud2FybigiVW5leHBlY3RlZCIsbWUs'@; put 'UGUsYmUpfX1lbHNlIGlmKCI8LyIhPT1tZS5zbGljZSgwLDIpJiZPLldURil0aHJvdyBuZXcgRXJyb3IobWUpfX1yZXR1cm4ga30oZXQsTykpO3ZhciBUdD17fTtpZigoTy5ib29rU2hlZXRzfHxPLmJvb2tQcm9wcykmJihWZS5TaGVldHM/b2U9VmUuU2hlZXRzLm1hcChmdW5jdGlvbihIbil7'@; put 'cmV0dXJuIEhuLm5hbWV9KTpZZS5Xb3Jrc2hlZXRzJiZZZS5TaGVldE5hbWVzLmxlbmd0aD4wJiYob2U9WWUuU2hlZXROYW1lcyksTy5ib29rUHJvcHMmJihUdC5Qcm9wcz1ZZSxUdC5DdXN0cHJvcHM9Y3QpLE8uYm9va1NoZWV0cyYmdHlwZW9mIG9lPCJ1IiYmKFR0LlNoZWV0TmFtZXM9b2Up'@; put 'LE8uYm9va1NoZWV0cz9UdC5TaGVldE5hbWVzOk8uYm9va1Byb3BzKSlyZXR1cm4gVHQ7b2U9e307dmFyIGl0PXt9O08uYm9va0RlcHMmJksuY2FsY2NoYWluJiYoaXQ9ZnVuY3Rpb24gVHMoUyxPLGspe3JldHVybiIuYmluIj09PU8uc2xpY2UoLTQpP2Z1bmN0aW9uIGdCKFMsTyxrKXt2YXIg'@; put 'Sz1bXTtyZXR1cm4gZHIoUyxmdW5jdGlvbihtZSxwZSxiZSl7aWYoNjM9PT1iZSlLLnB1c2gobWUpO2Vsc2UgaWYoISgocGV8fCIiKS5pbmRleE9mKCJCZWdpbiIpPjB8fChwZXx8IiIpLmluZGV4T2YoIkVuZCIpPjApKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCByZWNvcmQgIitiZSsi'@; put 'ICIrcGUpfSksS30oUyk6ZnVuY3Rpb24gRkMoUyl7dmFyIE89W107aWYoIVMpcmV0dXJuIE87dmFyIGs9MTtyZXR1cm4oUy5tYXRjaCh0bil8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKEspe3ZhciBlZT15cihLKTtzd2l0Y2goZWVbMF0pe2Nhc2UiPD94bWwiOmNhc2UiPGNhbGNDaGFpbiI6Y2Fz'@; put 'ZSI8Y2FsY0NoYWluPiI6Y2FzZSI8L2NhbGNDaGFpbj4iOmJyZWFrO2Nhc2UiPGMiOmRlbGV0ZSBlZVswXSxlZS5pP2s9ZWUuaTplZS5pPWssTy5wdXNoKGVlKX19KSxPfShTKX0oQXQoUyxFYyhLLmNhbGNjaGFpbikpLEsuY2FsY2NoYWluKSk7dmFyIER0LE90LGJ0PTAsQnQ9e30sS3Q9VmUu'@; put 'U2hlZXRzO1llLldvcmtzaGVldHM9S3QubGVuZ3RoLFllLlNoZWV0TmFtZXM9W107Zm9yKHZhciBUbj0wO1RuIT1LdC5sZW5ndGg7KytUbilZZS5TaGVldE5hbWVzW1RuXT1LdFtUbl0ubmFtZTt2YXIgc3I9ZWU/ImJpbiI6InhtbCIsQ249Sy53b3JrYm9va3NbMF0ubGFzdEluZGV4T2YoIi8i'@; put 'KSx1cj0oSy53b3JrYm9va3NbMF0uc2xpY2UoMCxDbisxKSsiX3JlbHMvIitLLndvcmtib29rc1swXS5zbGljZShDbisxKSsiLnJlbHMiKS5yZXBsYWNlKC9eXC8vLCIiKTtuaShTLHVyKXx8KHVyPSJ4bC9fcmVscy93b3JrYm9vay4iK3NyKyIucmVscyIpO3ZhciBlcj1TZihpcihTLHVyLCEw'@; put 'KSx1ciksam49ZXIscHI9W107ZXImJihWZSYmVmUuRXh0ZXJuJiZWZS5FeHRlcm4ubGVuZ3RoJiZWZS5FeHRlcm4uZm9yRWFjaChmdW5jdGlvbih3cixIbil7dmFyIFdpPSgiL3hsLyIrZXJbIiFpZCJdW3dyXS5UYXJnZXQpLnJlcGxhY2UoL1tcL11bXC9dL2csIi8iKSxDaT1LLmxpbmtzLmlu'@; put 'ZGV4T2YoV2kpO0NpPi0xJiYocHJbSG5dPVBlW0NpXSl9KSxWZSYmZGVsZXRlIFZlLkV4dGVybiksZXImJihlcj1mdW5jdGlvbiBEeShTLE8pe2lmKCFTKXJldHVybiAwO3RyeXtTPU8ubWFwKGZ1bmN0aW9uKEspe3JldHVybiBLLmlkfHwoSy5pZD1LLnN0clJlbElEKSxbSy5uYW1lLFNbIiFp'@; put 'ZCJdW0suaWRdLlRhcmdldCxocmUoU1siIWlkIl1bSy5pZF0uVHlwZSldfSl9Y2F0Y2h7cmV0dXJuIG51bGx9cmV0dXJuIFMmJjAhPT1TLmxlbmd0aD9TOm51bGx9KGVyLFZlLlNoZWV0cykpO3ZhciBicj1uaShTLCJ4bC93b3Jrc2hlZXRzL3NoZWV0LnhtbCIpPzE6MCxycj1bXSxTaT1bXTtl'@; put 'OmZvcihidD0wO2J0IT1ZZS5Xb3Jrc2hlZXRzOysrYnQpe3ZhciBQaT0ic2hlZXQiO2lmKGVyJiZlcltidF0/KER0PSJ4bC8iK2VyW2J0XVsxXS5yZXBsYWNlKC9bXC9dP3hsXC8vLCIiKSxuaShTLER0KXx8KER0PWVyW2J0XVsxXSksbmkoUyxEdCl8fChEdD11ci5yZXBsYWNlKC9fcmVsc1wv'@; put 'LiokLywiIikrZXJbYnRdWzFdKSxQaT1lcltidF1bMl0pOkR0PShEdD0ieGwvd29ya3NoZWV0cy9zaGVldCIrKGJ0KzEtYnIpKyIuIitzcikucmVwbGFjZSgvc2hlZXQwXC4vLCJzaGVldC4iKSxPdD1EdC5yZXBsYWNlKC9eKC4qKShcLykoW15cL10qKSQvLCIkMS9fcmVscy8kMy5yZWxzIiks'@; put 'cnIucHVzaChEdCksTyYmbnVsbCE9Ty5zaGVldHMpc3dpdGNoKHR5cGVvZiBPLnNoZWV0cyl7Y2FzZSJudW1iZXIiOmlmKGJ0IT1PLnNoZWV0cyljb250aW51ZSBlO2JyZWFrO2Nhc2Uic3RyaW5nIjppZihZZS5TaGVldE5hbWVzW2J0XS50b0xvd2VyQ2FzZSgpIT1PLnNoZWV0cy50b0xvd2Vy'@; put 'Q2FzZSgpKWNvbnRpbnVlIGU7YnJlYWs7ZGVmYXVsdDppZihBcnJheS5pc0FycmF5JiZBcnJheS5pc0FycmF5KE8uc2hlZXRzKSl7Zm9yKHZhciBuYT0wLGxhPTA7bGEhPU8uc2hlZXRzLmxlbmd0aDsrK2xhKSJudW1iZXIiPT10eXBlb2YgTy5zaGVldHNbbGFdJiZPLnNoZWV0c1tsYV09PWJ0'@; put 'JiYobmE9MSksInN0cmluZyI9PXR5cGVvZiBPLnNoZWV0c1tsYV0mJk8uc2hlZXRzW2xhXS50b0xvd2VyQ2FzZSgpPT1ZZS5TaGVldE5hbWVzW2J0XS50b0xvd2VyQ2FzZSgpJiYobmE9MSk7aWYoIW5hKWNvbnRpbnVlIGV9fWlmKCFPLnNraXBQYXJzZSl7dmFyIFJpPXcyKFMsRHQsT3QsWWUu'@; put 'U2hlZXROYW1lc1tidF0sYnQsQnQsb2UsUGksTyxWZSxwZSxiZSk7UmkmJlJpWyIhTERQIl0mJihTaVtidF09UmlbIiFMRFAiXSxkZWxldGUgUmlbIiFMRFAiXSl9fWlmKHR5cGVvZiBwYXJzZV9zaGVldF9waXZvdDwidSIpZm9yKGJ0PTA7YnQ8SXkubGVuZ3RoOysrYnQpcGFyc2Vfc2hlZXRf'@; put 'cGl2b3QuYXBwbHkobnVsbCxJeVtidF0pO2lmKFR0PXtEaXJlY3Rvcnk6SyxXb3JrYm9vazpWZSxQcm9wczpZZSxDdXN0cHJvcHM6Y3QsRGVwczppdCxTaGVldHM6b2UsU2hlZXROYW1lczpZZS5TaGVldE5hbWVzLFN0cmluZ3M6bDgsU3R5bGVzOmJlLFRoZW1lczpwZSxTU0Y6QS5nZXRfdGFi'@; put 'bGUoKX0sIU8uc2tpcFBhcnNlKXtpZihmdW5jdGlvbiBPQyhTKXshU3x8IVMuV29ya2Jvb2t8fCFTLldvcmtib29rLk5hbWVzfHxTLldvcmtib29rLk5hbWVzLmZvckVhY2goZnVuY3Rpb24oTyl7aWYoTy5OYW1lJiYiX3hsbm0uIj09Ty5OYW1lLnNsaWNlKDAsNikmJigiX3hsbm0uUHJpbnRf'@; put 'QXJlYSI9PU8uTmFtZXx8Il94bG5tLlByaW50X1RpdGxlcyI9PU8uTmFtZSkpe3ZhciBrPVMuU2hlZXRzW1MuU2hlZXROYW1lc1tPLlNoZWV0XV07aWYoayl7a1siIXByaW50Il18fChrWyIhcHJpbnQiXT17fSksa1siIXByaW50Il0ucHJvcHN8fChrWyIhcHJpbnQiXS5wcm9wcz17fSk7dmFy'@; put 'IEs9a1siIXByaW50Il0sZWU9Ty5SZWY7aWYoIl94bG5tLlByaW50X0FyZWEiPT1PLk5hbWUpe2VlLmluZGV4T2YoIiEiKT4tMSYmKGVlPWVlLnNsaWNlKGVlLmluZGV4T2YoIiEiKSsxKSk7dmFyIG9lPXNzKGVlPWVlLnJlcGxhY2UoL1skXS9nLCIiKSk7Sy5hcmVhPW9lfWVsc2UiX3hsbm0u'@; put 'UHJpbnRfVGl0bGVzIj09Ty5OYW1lJiYoSy50aXRsZXM9e3M6e3I6LTEsYzotMX0sZTp7cjotMSxjOi0xfX0sZWUuc3BsaXQoIiwiKS5mb3JFYWNoKGZ1bmN0aW9uKG1lKXt2YXIgYmU9U28obWUuc2xpY2UobWUuaW5kZXhPZigiISIpKzEpLnJlcGxhY2UoL1skXS9nLCIiKSk7YmUucy5jPi0x'@; put 'JiYoSy50aXRsZXMucy5jPWJlLnMuYyksYmUuZS5jPi0xJiYoSy50aXRsZXMuZS5jPWJlLmUuYyksYmUucy5yPi0xJiYoSy50aXRsZXMucy5yPWJlLnMuciksYmUuZS5yPi0xJiYoSy50aXRsZXMuZS5yPWJlLmUucil9KSl9fX0pfShUdCksTyYmTy5ib29rRmlsZXMmJihUdC5rZXlzPWssVHQu'@; put 'ZmlsZXM9Uy5maWxlcyksTyYmTy5ib29rVkJBJiYoSy52YmEubGVuZ3RoPjA/VHQudmJhcmF3PUF0KFMsRWMoSy52YmFbMF0pLCEwKTpLLmRlZmF1bHRzJiZLLmRlZmF1bHRzLmJpbj09PVlrJiYoVHQudmJhcmF3PUF0KFMsInhsL3ZiYVByb2plY3QuYmluIiwhMCkpKSxqbiYmam5bIiFpZCJd'@; put 'KXtmb3IodmFyIFJyPVtdLEJuPTE7Qm48PTEwMjQ7KytCbilqblsiIWlkIl1bInJJZCIrQm5dJiZqblsiIWlkIl1bInJJZCIrQm5dLlR5cGUmJi9jdXN0b21YbWwkLy50ZXN0KGpuWyIhaWQiXVsicklkIitCbl0uVHlwZSkmJlJyLnB1c2goZm4oam5bIiFpZCJdWyJySWQiK0JuXS5UYXJnZXQs'@; put 'Sy53b3JrYm9va3NbMF0pKTtSci5sZW5ndGg+MCYmKFR0LkN1c3RvbVhNTD1bXSxSci5mb3JFYWNoKGZ1bmN0aW9uKHdyKXt2YXIgSG49e2RhdGE6aXIoUyxFYyh3cikpfSx6cj1Ocih3cik7dHJ5e3ZhciBXaT1TZihpcihTLEVjKHpyKSwhMCksenIpO2lmKFdpKWZvcih2YXIgQ2k9MTtDaTw9'@; put 'MTAyNDsrK0NpKVdpWyIhaWQiXVsicklkIitDaV0mJldpWyIhaWQiXVsicklkIitDaV0uVHlwZSYmL2N1c3RvbVhtbFByb3BzJC8udGVzdChXaVsiIWlkIl1bInJJZCIrQ2ldLlR5cGUpJiYoSG4ucHJvcHM9aXIoUyxFYyhmbihXaVsiIWlkIl1bInJJZCIrQ2ldLlRhcmdldCx3cikpKSl9Y2F0'@; put 'Y2h7fVR0LkN1c3RvbVhNTC5wdXNoKEhuKX0pKX12YXIganI9aHQoUywieGwvbW9kZWwvaXRlbS5kYXRhIiwhMCk7anImJihUdC5tb2RlbD1qciksSy5jb25uJiYoVHQuY29ubj1BdChTLEVjKEsuY29ubiksITApKSxwci5sZW5ndGgmJihUdC5FeHRlcm5hbFdCPXByKSxWZSYmKFZlLlBQST1Q'@; put 'Zil9cmV0dXJuIE8udGVtcGxhdGUmJihUdC5fd3NwYXRocz1ycixUdC5fc3R5cGF0aD1FYyhLLnN0eWxlfHwiIiksVHQuX3dicGF0aD1FYyhLLndvcmtib29rc1swXXx8InhsL3dvcmtib29rLnhtbCIpLFR0Ll92bWxwYXRocz1TaSxUdC5fd2JyZWxzcGF0aD11cixUdC5fY3Q9aXIoUywiW0Nv'@; put 'bnRlbnRfVHlwZXNdLnhtbCIpLFR0LmZpbGVzPVMuZmlsZXMsTmMoVHQsUyxPKSksVHR9ZnVuY3Rpb24gUnkoUyxPKXt2YXIgaz1PfHx7fTtrLnBhc3N3b3JkfHwoay5wYXNzd29yZD0iVmVsdmV0U3dlYXRzaG9wIik7dmFyIEs9Ildvcmtib29rIixlZT12ZS5maW5kKFMsSyk7dHJ5e2lmKCEo'@; put 'ZWU9dmUuZmluZChTLEs9Ii8hRGF0YVNwYWNlcy9WZXJzaW9uIikpfHwhZWUuY29udGVudCl0aHJvdyBuZXcgRXJyb3IoIkVDTUEtMzc2IEVuY3J5cHRlZCBmaWxlIG1pc3NpbmcgIitLKTtpZihmdW5jdGlvbiBJVihTKXt2YXIgTz17fTtPLmlkPVMucmVhZF9zaGlmdCgwLCJscHA0IiksTy5S'@; put 'PUYxKFMsNCksTy5VPUYxKFMsNCksTy5XPUYxKFMsNCl9KGVlLmNvbnRlbnQpLCEoZWU9dmUuZmluZChTLEs9Ii8hRGF0YVNwYWNlcy9EYXRhU3BhY2VNYXAiKSl8fCFlZS5jb250ZW50KXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgRW5jcnlwdGVkIGZpbGUgbWlzc2luZyAiK0spO3ZhciBv'@; put 'ZT1mdW5jdGlvbiBSVihTKXt2YXIgTz1bXTtTLmwrPTQ7Zm9yKHZhciBrPVMucmVhZF9zaGlmdCg0KTtrLS0gPjA7KU8ucHVzaCh2QyhTKSk7cmV0dXJuIE99KGVlLmNvbnRlbnQpO2lmKDEhPT1vZS5sZW5ndGh8fDEhPT1vZVswXS5jb21wcy5sZW5ndGh8fDAhPT1vZVswXS5jb21wc1swXS50'@; put 'fHwiU3Ryb25nRW5jcnlwdGlvbkRhdGFTcGFjZSIhPT1vZVswXS5uYW1lfHwiRW5jcnlwdGVkUGFja2FnZSIhPT1vZVswXS5jb21wc1swXS52KXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgRW5jcnlwdGVkIGZpbGUgYmFkICIrSyk7aWYoIShlZT12ZS5maW5kKFMsSz0iLyFEYXRhU3BhY2Vz'@; put 'L0RhdGFTcGFjZUluZm8vU3Ryb25nRW5jcnlwdGlvbkRhdGFTcGFjZSIpKXx8IWVlLmNvbnRlbnQpdGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBFbmNyeXB0ZWQgZmlsZSBtaXNzaW5nICIrSyk7dmFyIG1lPWZ1bmN0aW9uIExWKFMpe3ZhciBPPVtdO1MubCs9NDtmb3IodmFyIGs9Uy5yZWFk'@; put 'X3NoaWZ0KDQpO2stLSA+MDspTy5wdXNoKFMucmVhZF9zaGlmdCgwLCJscHA0IikpO3JldHVybiBPfShlZS5jb250ZW50KTtpZigxIT1tZS5sZW5ndGh8fCJTdHJvbmdFbmNyeXB0aW9uVHJhbnNmb3JtIiE9bWVbMF0pdGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBFbmNyeXB0ZWQgZmlsZSBi'@; put 'YWQgIitLKTtpZighKGVlPXZlLmZpbmQoUyxLPSIvIURhdGFTcGFjZXMvVHJhbnNmb3JtSW5mby9TdHJvbmdFbmNyeXB0aW9uVHJhbnNmb3JtLyFQcmltYXJ5IikpfHwhZWUuY29udGVudCl0aHJvdyBuZXcgRXJyb3IoIkVDTUEtMzc2IEVuY3J5cHRlZCBmaWxlIG1pc3NpbmcgIitLKTshZnVu'@; put 'Y3Rpb24gdW5lKFMpe3ZhciBPPWZ1bmN0aW9uIE9WKFMpe3ZhciBPPXt9O3JldHVybiBTLnJlYWRfc2hpZnQoNCksUy5sKz00LE8uaWQ9Uy5yZWFkX3NoaWZ0KDAsImxwcDQiKSxPLm5hbWU9Uy5yZWFkX3NoaWZ0KDAsImxwcDQiKSxPLlI9RjEoUyw0KSxPLlU9RjEoUyw0KSxPLlc9RjEoUyw0'@; put 'KSxPfShTKTtpZihPLmVuYW1lPVMucmVhZF9zaGlmdCgwLCI4bHBwNCIpLE8uYmxrc3o9Uy5yZWFkX3NoaWZ0KDQpLE8uY21vZGU9Uy5yZWFkX3NoaWZ0KDQpLDQhPVMucmVhZF9zaGlmdCg0KSl0aHJvdyBuZXcgRXJyb3IoIkJhZCAhUHJpbWFyeSByZWNvcmQiKTtyZXR1cm4gT30oZWUuY29u'@; put 'dGVudCl9Y2F0Y2h7fWlmKCEoZWU9dmUuZmluZChTLEs9Ii9FbmNyeXB0aW9uSW5mbyIpKXx8IWVlLmNvbnRlbnQpdGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBFbmNyeXB0ZWQgZmlsZSBtaXNzaW5nICIrSyk7dmFyIHBlPWZ1bmN0aW9uIHE2KFMpe3ZhciBPPUYxKFMpO3N3aXRjaChPLk1p'@; put 'bm9yKXtjYXNlIDI6cmV0dXJuW08uTWlub3IsRlYoUyldO2Nhc2UgMzpyZXR1cm5bTy5NaW5vcixKNigpXTtjYXNlIDQ6cmV0dXJuW08uTWlub3IseUMoUyldfXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgRW5jcnlwdGVkIGZpbGUgdW5yZWNvZ25pemVkIFZlcnNpb246ICIrTy5NaW5vcil9'@; put 'KGVlLmNvbnRlbnQpO2lmKCEoZWU9dmUuZmluZChTLEs9Ii9FbmNyeXB0ZWRQYWNrYWdlIikpfHwhZWUuY29udGVudCl0aHJvdyBuZXcgRXJyb3IoIkVDTUEtMzc2IEVuY3J5cHRlZCBmaWxlIG1pc3NpbmcgIitLKTtpZig0PT1wZVswXSlyZXR1cm4gZnVuY3Rpb24ga3koUyxPLGssSyl7dmFy'@; put 'IGVlPXZlLnV0aWxzLnByZXBfYmxvYjtpZigiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvMjAwNi9rZXlFbmNyeXB0b3IvcGFzc3dvcmQiIT1TLnVyaSl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIEVDTUEtMzc2IEFnaWxlIFVSSSAiK1MudXJpKTt2YXIgb2U9Uy5l'@; put 'bmNzWzBdLG1lPW9lLmhhc2hBbGdvcml0aG0scGU9ImFlcy0yNTYtY2JjIixiZT1CdWZmZXIuZnJvbShvZS5zYWx0VmFsdWUsImJhc2U2NCIpLFBlPUJ1ZmZlci5mcm9tKFMuc2FsdFZhbHVlLCJiYXNlNjQiKSxWZT0rb2UuYmxvY2tTaXplLFllPStvZS5rZXlCaXRzPj4zLGV0PXBjKEJ1ZmZl'@; put 'ci5jb25jYXQoW2JlLEJ1ZmZlci5mcm9tKGNwdGFibGUudXRpbHMuZW5jb2RlKDEyMDAsaykpXSksbWUpLGN0PUJ1ZmZlci5hbGxvYyg0KTtlZShjdCwwKTtmb3IodmFyIFR0PTA7VHQ8b2Uuc3BpbkNvdW50OysrVHQpY3QubD0wLGN0LndyaXRlX3NoaWZ0KDQsVHQpLGV0PXBjKEJ1ZmZlci5j'@; put 'b25jYXQoW2N0LGV0XSksbWUpO3ZhciBpdD1mdW5jdGlvbihicixycixTaSxQaSl7dmFyIG5hPXBjKEJ1ZmZlci5jb25jYXQoW2JyLEJ1ZmZlci5mcm9tKFsyMCwxMTAsMTEsMjMxLDE3MSwxNzIsMjA4LDIxNF0pXSksUGkpLGxhPW5hLmxlbmd0aD49U2k/bmEuc2xpY2UoMCxTaSk6QnVmZmVy'@; put 'LmFsbG9jKFNpKTtpZihuYS5sZW5ndGg8U2kpe2Zvcih2YXIgUmk9MDtSaTxuYS5sZW5ndGg7KytSaSlsYVtSaV09bmFbUmldO2Zvcig7Umk8U2k7KytSaSlsYVtSaV09NTR9cmV0dXJuIGxhfShldCwwLFllLG1lKTtzd2l0Y2gob2UuY2lwaGVyQWxnb3JpdGhtKXtjYXNlIkFFUyI6aWYoIkNo'@; put 'YWluaW5nTW9kZUNCQyIhPW9lLmNpcGhlckNoYWluaW5nKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgY2lwaGVyIGNoYWluaW5nICIrb2UuY2lwaGVyQ2hhaW5pbmcpO3BlPSJhZXMtIitvZS5rZXlCaXRzKyItY2JjIjticmVhaztjYXNlIlJDMiI6cGU9InJjMiI7YnJlYWs7ZGVmYXVs'@; put 'dDp0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGNpcGhlciBhbGdvICIrb2UuY2lwaGVyQWxnb3JpdGhtKX1iZT1mdW5jdGlvbihwcil7Zm9yKHZhciBicj1CdWZmZXIuYWxsb2MoVmUpLHJyPTA7cnI8VmU7Kytycilicltycl09cnI8cHIubGVuZ3RoP3ByW3JyXTo1NDtyZXR1cm4gYnJ9'@; put 'KGJlKTt2YXIgYnQ9QnVmZmVyLmZyb20ob2UuZW5jcnlwdGVkS2V5VmFsdWUsImJhc2U2NCIpLEJ0PVk0KGl0LGJlLHBlKS51cGRhdGUoYnQpLER0PVk0KHBjKEJ1ZmZlci5jb25jYXQoW2V0LEJ1ZmZlci5mcm9tKFsyMTUsMTcwLDE1LDEwOSw0OCw5Nyw1Miw3OF0pXSksbWUpLnNsaWNlKDAs'@; put 'WWUpLGJlLHBlKS51cGRhdGUoQnVmZmVyLmZyb20ob2UuZW5jcnlwdGVkVmVyaWZpZXJIYXNoVmFsdWUsImJhc2U2NCIpKSxPdD1wYyhZNChwYyhCdWZmZXIuY29uY2F0KFtldCxCdWZmZXIuZnJvbShbMjU0LDE2NywyMTAsMTE4LDU5LDc1LDE1OCwxMjFdKV0pLG1lKS5zbGljZSgwLFllKSxi'@; put 'ZSxwZSkudXBkYXRlKEJ1ZmZlci5mcm9tKG9lLmVuY3J5cHRlZFZlcmlmaWVySGFzaElucHV0LCJiYXNlNjQiKSksbWUpLEt0PStvZS5oYXNoU2l6ZXx8TWF0aC5taW4oRHQubGVuZ3RoLE90Lmxlbmd0aCk7aWYoMCE9RHQuc2xpY2UoMCxLdCkuY29tcGFyZShPdC5zbGljZSgwLEt0KSkpdGhy'@; put 'b3cgbmV3IEVycm9yKCJJbmNvcnJlY3QgUGFzc3dvcmQiKTtlZShPLDApO3ZhciBUbj1PLnJlYWRfc2hpZnQoNCk7Ty5sKz00O3ZhciBzcj1bXSxDbj1CdWZmZXIuY29uY2F0KFtQZSxCdWZmZXIuYWxsb2MoNCldKTtmb3IoZWUoQ24pLFR0PTA7Ty5sPE8ubGVuZ3RoOylDbi5sPWJlLmxlbmd0'@; put 'aCxDbi53cml0ZV9zaGlmdCg0LFR0KSxzci5wdXNoKFk0KEJ0LHBjKEJ1ZmZlci5mcm9tKENuKSxtZSkuc2xpY2UoMCwxNikscGUpLnVwZGF0ZShCdWZmZXIuZnJvbShPLnNsaWNlKE8ubCxPLmwrNDA5NikpKSksTy5sKz00MDk2LCsrVHQ7dmFyIGVyPUJ1ZmZlci5jb25jYXQoc3IpLnNsaWNl'@; put 'KDAsVG4pLGpuPUp0KEspO3JldHVybiBqbi50eXBlPSJidWZmZXIiLFc1KGVyLGpuKX0ocGVbMV0sZWUuY29udGVudCxrLnBhc3N3b3JkfHwiIixrKTtpZigyPT1wZVswXSlyZXR1cm4gZnVuY3Rpb24gVkkoUyxPLGssSyl7dmFyIGVlPXZlLnV0aWxzLnByZXBfYmxvYjtpZigiU3RkIiE9PVMu'@; put 'dCl0aHJvdyBuZXcgRXJyb3IoIkVDTUEtMzc2IEJhZCBTdGFuZGFyZCBFbmNyeXB0aW9uIik7dmFyIG9lPVMudi5TYWx0LG1lPVMudi5WZXJpZmllcixwZT1TLnYuVmVyaWZpZXJIYXNoO2lmKDM2IT1TLmguRmxhZ3MpdGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBTdGFuZGFyZCBFbmNyeXB0'@; put 'aW9uIGJhZCBGbGFncyIpO3ZhciBiZT0wLFBlPSIiO3N3aXRjaChTLmguQWxnSUQpe2Nhc2UgMjYxMjY6YmU9MTI4LFBlPSJhZXMtMTI4LWVjYiI7YnJlYWs7Y2FzZSAyNjEyNzpiZT0xOTYsUGU9ImFlcy0xOTItZWNiIjticmVhaztjYXNlIDI2MTI4OmJlPTI1NixQZT0iYWVzLTI1Ni1lY2Ii'@; put 'O2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBCYWQgU3RhbmRhcmQgRW5jcnlwdGlvbiIpfWlmKDMyNzcyIT1TLmguQWxnSURIYXNoKXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgQmFkIFN0YW5kYXJkIEVuY3J5cHRpb24iKTtpZihTLmguS2V5U2l6ZSE9YmUpdGhy'@; put 'b3cgbmV3IEVycm9yKCJBbGdJRC9LZXlTaXplIG1pc21hdGNoIik7aWYoMjQhPVMuaC5Qcm92aWRlclR5cGUpdGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiB1bnN1cHBvcnRlZCBQcm92aWRlclR5cGUgIitTLmguUHJvdmlkZXJUeXBlKTtpZigiTWljcm9zb2Z0IEVuaGFuY2VkIFJTQSBhbmQg'@; put 'QUVTIENyeXB0b2dyYXBoaWMgUHJvdmlkZXIiIT09Uy5oLkNTUE5hbWUuc2xpY2UoMCw1MykpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBDcnlwdG8gUHJvdmlkZXIgIitTLmguQ1NQTmFtZSk7dmFyIFllPSJTSEEtMSIsZXQ9YmU+PjMsY3Q9cGMoQnVmZmVyLmNvbmNhdChbb2UsY3B0'@; put 'YWJsZS51dGlscy5lbmNvZGUoMTIwMCxrKV0pLFllKSxUdD1CdWZmZXIuYWxsb2MoNCk7ZWUoVHQsMCk7Zm9yKHZhciBpdD0wO2l0PDVlNDsrK2l0KVR0Lmw9MCxUdC53cml0ZV9zaGlmdCg0LGl0KSxjdD1wYyhCdWZmZXIuY29uY2F0KFtUdCxjdF0pLFllKTtUdC5sPTAsVHQud3JpdGVfc2hp'@; put 'ZnQoNCwwKTt2YXIgc3IsQ24sdXIsZXIsam4sQnQ9KGVyPSh1cj1mdW5jdGlvbihicixycixTaSl7Zm9yKHZhciBQaT1CdWZmZXIuYWxsb2MoNjQpLG5hPTA7bmE8UGkubGVuZ3RoOysrbmEpUGlbbmFdPWJyO2ZvcihuYT0wO25hPHJyLmxlbmd0aDsrK25hKVBpW25hXV49cnJbbmFdO3JldHVy'@; put 'biBwYyhQaSxTaSl9KSg1NCxzcj1wYyhCdWZmZXIuY29uY2F0KFtjdCxUdF0pLFllKSxDbj1ZZSksam49dXIoOTIsc3IsQ24pLEJ1ZmZlci5jb25jYXQoW2VyLGpuXSkuc2xpY2UoMCxldCkpO2lmKFk0KEJ0LEJ1ZmZlci5hbGxvYygwKSxQZSkudXBkYXRlKHBlKS5zbGljZSgwLDIwKS5jb21w'@; put 'YXJlKHBjKFk0KEJ0LEJ1ZmZlci5hbGxvYygwKSxQZSkudXBkYXRlKG1lKSxZZSkpKXRocm93IG5ldyBFcnJvcigiSW5jb3JyZWN0IFBhc3N3b3JkIik7ZWUoTywwKTt2YXIgRHQ9Ty5yZWFkX3NoaWZ0KDQpO08ubCs9NDt2YXIgT3Q9W107Zm9yKGl0PTA7Ty5sPE8ubGVuZ3RoOylPdC5wdXNo'@; put 'KFk0KEJ0LEJ1ZmZlci5hbGxvYygwKSxQZSkudXBkYXRlKE8uc2xpY2UoTy5sLE8ubCs0MDk2KSkpLE8ubCs9NDA5NiwrK2l0O3JldHVybiBXNShCdWZmZXIuY29uY2F0KE90KS5zbGljZSgwLER0KSxLKX0ocGVbMV0sZWUuY29udGVudCxrLnBhc3N3b3JkfHwiIixrKTt0aHJvdyBuZXcgRXJy'@; put 'b3IoIkZpbGUgaXMgcGFzc3dvcmQtcHJvdGVjdGVkIil9dmFyIGJkPWZ1bmN0aW9uKCl7fTtmdW5jdGlvbiBIOChTLE8pe2lmKE8udGVtcGxhdGUpcmV0dXJuIGJkKFMsTyk7aWYoIm9kcyI9PU8uYm9va1R5cGUpcmV0dXJuIFBJKFMsTyk7RmYoTyYmTy5QUEl8fDk2KSxTJiYhUy5TU0YmJihT'@; put 'LlNTRj1BLmdldF90YWJsZSgpKSxTJiZTLlNTRiYmKGFlKEEpLEEubG9hZF90YWJsZShTLlNTRiksTy5yZXZzc2Y9RGUoUy5TU0YpLE8ucmV2c3NmW1MuU1NGWzY1NTM1XV09MCxPLnNzZj1TLlNTRiksUy5TdHlsZXM9e0ZvbnRzOk8uRm9udHM9W3tzejoxMixjb2xvcjp7dGhlbWU6MSxyZ2I6'@; put 'IjAwMDAwMCJ9LG5hbWU6IkNhbGlicmkiLGZhbWlseToyLHNjaGVtZToibWlub3IifV0sRmlsbHM6Ty5GaWxscz1be3BhdHRlcm5UeXBlOiJub25lIn0se3BhdHRlcm5UeXBlOiJncmF5MTI1In1dLEJvcmRlcnM6Ty5Cb3JkZXJzPVt7fV0sRFhGOk8uRFhGPVMuU3R5bGVzJiZTLlN0eWxlcy5E'@; put 'WEZ8fFtdLFRhYmxlOk8uVGFibGU9Uy5TdHlsZXMmJlMuU3R5bGVzLlRhYmxlfHxbXX0sTy5vdmVycmlkZU1EVz94Yz1PLm92ZXJyaWRlTURXOkk0KE8uRm9udHNbMF0pLE8ucmVscz17fSxPLndicmVscz17fSxPLlN0cmluZ3M9W10sTy5TdHJpbmdzLkNvdW50PTAsTy5TdHJpbmdzLlVuaXF1'@; put 'ZT0wLHEzP08ucmV2U3RyaW5ncz1uZXcgTWFwOihPLnJldlN0cmluZ3M9e30sTy5yZXZTdHJpbmdzLmZvbz1bXSxkZWxldGUgTy5yZXZTdHJpbmdzLmZvbyk7dmFyIGs9Inhsc2IiPT1PLmJvb2tUeXBlPyJiaW4iOiJ4bWwiLEs9S2suaW5kZXhPZihPLmJvb2tUeXBlKT4tMSxlZT17d29ya2Jv'@; put 'b2tzOltdLHNoZWV0czpbXSxjaGFydHM6W10sZGlhbG9nczpbXSxtYWNyb3M6W10scmVsczpbXSxzdHJzOltdLGNvbW1lbnRzOltdLGxpbmtzOltdLGNvcmVwcm9wczpbXSxleHRwcm9wczpbXSxjdXN0cHJvcHM6W10sdGhlbWVzOltdLHN0eWxlczpbXSxjYWxjY2hhaW5zOltdLHZiYTpbXSxk'@; put 'cmF3aW5nczpbXSxwaXZvdHM6W10scGl2b3RjYWNoZXM6W10scGl2b3RyZWNvcmRzOltdLGRhdGFtb2RlbHM6W10sY2hhcnRvYmpzOltdLGNoYXJ0c3R5bGVzOltdLGNoYXJ0Y29sb3JzOltdLGNoYXJ0ZXhzOltdLHRhYmxlczpbXSxjb25uczpbXSxjdHJscHJvcHM6W10sY3VzdG9teG1scHJv'@; put 'cHM6W10sVE9ETzpbXSx4bWxuczoiIn07QmYoTz1PfHx7fSk7dmFyIG9lPWRpKCksbWU9IiIscGU9MDtpZihPLmNlbGxYZnM9W10sTy5jZWxsU3R5bGVYZnM9W3tuYW1lOiJOb3JtYWwifV0sczAoTy5jZWxsWGZzLE8uY2VsbFN0eWxlWGZzLHt9LHtyZXZzc2Y6e0dlbmVyYWw6MH19KSxTLlBy'@; put 'b3BzfHwoUy5Qcm9wcz17fSksem4ob2UsbWU9ImRvY1Byb3BzL2NvcmUueG1sIixmdW5jdGlvbiBHdyhTLE8pe3ZhciBrPU98fHt9LEs9W0RpLFl3XSxlZT17fTtpZighUyYmIWsuUHJvcHMpcmV0dXJuIEsuam9pbigiIik7UyYmKG51bGwhPVMuQ3JlYXRlZERhdGUmJk1mKCJkY3Rlcm1zOmNy'@; put 'ZWF0ZWQiLCJzdHJpbmciPT10eXBlb2YgUy5DcmVhdGVkRGF0ZT9TLkNyZWF0ZWREYXRlOnBmKFMuQ3JlYXRlZERhdGUsay5XVEYpLHsieHNpOnR5cGUiOiJkY3Rlcm1zOlczQ0RURiJ9LEssZWUpLG51bGwhPVMuTW9kaWZpZWREYXRlJiZNZigiZGN0ZXJtczptb2RpZmllZCIsInN0cmluZyI9'@; put 'PXR5cGVvZiBTLk1vZGlmaWVkRGF0ZT9TLk1vZGlmaWVkRGF0ZTpwZihTLk1vZGlmaWVkRGF0ZSxrLldURikseyJ4c2k6dHlwZSI6ImRjdGVybXM6VzNDRFRGIn0sSyxlZSkpO2Zvcih2YXIgb2U9MDtvZSE9RDAubGVuZ3RoOysrb2Upe3ZhciBtZT1EMFtvZV0scGU9ay5Qcm9wcyYmbnVsbCE9'@; put 'ay5Qcm9wc1ttZVsxXV0/ay5Qcm9wc1ttZVsxXV06Uz9TW21lWzFdXTpudWxsOyEwPT09cGU/cGU9IjEiOiExPT09cGU/cGU9IjAiOiJudW1iZXIiPT10eXBlb2YgcGUmJihwZT1TdHJpbmcocGUpKSxudWxsIT1wZSYmTWYobWVbMF0scGUsbnVsbCxLLGVlKX1yZXR1cm4gSy5sZW5ndGg+MiYm'@; put 'KEtbSy5sZW5ndGhdPSI8L2NwOmNvcmVQcm9wZXJ0aWVzPiIsS1sxXT1LWzFdLnJlcGxhY2UoIi8+IiwiPiIpKSxLLmpvaW4oIiIpfShTLlByb3BzLE8pKSxlZS5jb3JlcHJvcHMucHVzaChtZSksRXIoTy5yZWxzLDIsbWUsWGEuQ09SRV9QUk9QUyksbWU9ImRvY1Byb3BzL2FwcC54bWwiLCFT'@; put 'LlByb3BzfHwhUy5Qcm9wcy5TaGVldE5hbWVzKWlmKFMuV29ya2Jvb2smJlMuV29ya2Jvb2suU2hlZXRzKXtmb3IodmFyIGJlPVtdLFBlPTA7UGU8Uy5TaGVldE5hbWVzLmxlbmd0aDsrK1BlKTIhPShTLldvcmtib29rLlNoZWV0c1tQZV18fHt9KS5IaWRkZW4mJmJlLnB1c2goUy5TaGVldE5h'@; put 'bWVzW1BlXSk7Uy5Qcm9wcy5TaGVldE5hbWVzPWJlfWVsc2UgUy5Qcm9wcy5TaGVldE5hbWVzPVMuU2hlZXROYW1lcztTLlByb3BzLldvcmtzaGVldHM9Uy5Qcm9wcy5TaGVldE5hbWVzLmxlbmd0aCx6bihvZSxtZSxmdW5jdGlvbiAkdyhTKXt2YXIgTz1bXSxrPUhyO3JldHVybiBTfHwoUz17'@; put 'fSksUy5BcHBsaWNhdGlvbj0iU2hlZXRKUyIsT1tPLmxlbmd0aF09RGksT1tPLmxlbmd0aF09TDYscmguZm9yRWFjaChmdW5jdGlvbihLKXtpZih2b2lkIDAhPT1TW0tbMV1dKXt2YXIgZWU7c3dpdGNoKEtbMl0pe2Nhc2Uic3RyaW5nIjplZT1QcihTdHJpbmcoU1tLWzFdXSkpO2JyZWFrO2Nh'@; put 'c2UiYm9vbCI6ZWU9U1tLWzFdXT8idHJ1ZSI6ImZhbHNlIn12b2lkIDAhPT1lZSYmKE9bTy5sZW5ndGhdPWsoS1swXSxlZSkpfX0pLE9bTy5sZW5ndGhdPWsoIkhlYWRpbmdQYWlycyIsaygidnQ6dmVjdG9yIixrKCJ2dDp2YXJpYW50IiwiPHZ0Omxwc3RyPldvcmtzaGVldHM8L3Z0Omxwc3Ry'@; put 'PiIpK2soInZ0OnZhcmlhbnQiLGsoInZ0Omk0IixTdHJpbmcoUy5Xb3Jrc2hlZXRzKSkpLHtzaXplOjIsYmFzZVR5cGU6InZhcmlhbnQifSkpLE9bTy5sZW5ndGhdPWsoIlRpdGxlc09mUGFydHMiLGsoInZ0OnZlY3RvciIsUy5TaGVldE5hbWVzLm1hcChmdW5jdGlvbihLKXtyZXR1cm4iPHZ0'@; put 'Omxwc3RyPiIrUHIoSykrIjwvdnQ6bHBzdHI+In0pLmpvaW4oIiIpLHtzaXplOlMuV29ya3NoZWV0cyxiYXNlVHlwZToibHBzdHIifSkpLE8ubGVuZ3RoPjImJihPW08ubGVuZ3RoXT0iPC9Qcm9wZXJ0aWVzPiIsT1sxXT1PWzFdLnJlcGxhY2UoIi8+IiwiPiIpKSxPLmpvaW4oIiIpfShTLlBy'@; put 'b3BzKSksZWUuZXh0cHJvcHMucHVzaChtZSksRXIoTy5yZWxzLDMsbWUsWGEuRVhUX1BST1BTKSxTLkN1c3Rwcm9wcyE9PVMuUHJvcHMmJlJlKFMuQ3VzdHByb3BzfHx7fSkubGVuZ3RoPjAmJih6bihvZSxtZT0iZG9jUHJvcHMvY3VzdG9tLnhtbCIsZnVuY3Rpb24geGYoUyl7dmFyIE89W0Rp'@; put 'LG12XTtpZighUylyZXR1cm4gTy5qb2luKCIiKTt2YXIgaz0xO3JldHVybiBSZShTKS5mb3JFYWNoKGZ1bmN0aW9uKGVlKXsrK2ssT1tPLmxlbmd0aF09SHIoInByb3BlcnR5IixmdW5jdGlvbiB3byhTLE8pe3N3aXRjaCh0eXBlb2YgUyl7Y2FzZSJzdHJpbmciOnZhciBrPUhyKCJ2dDpscHdz'@; put 'dHIiLFByKFMpKTtyZXR1cm4gTyYmKGs9ay5yZXBsYWNlKC8mcXVvdDsvZywiX3gwMDIyXyIpKSxrO2Nhc2UibnVtYmVyIjpyZXR1cm4gSHIoKDB8Uyk9PVM/InZ0Omk0IjoidnQ6cjgiLFByKFN0cmluZyhTKSkpO2Nhc2UiYm9vbGVhbiI6cmV0dXJuIEhyKCJ2dDpib29sIixTPyJ0cnVlIjoi'@; put 'ZmFsc2UiKX1pZihTIGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4gSHIoInZ0OmZpbGV0aW1lIixwZihTKSk7dGhyb3cgbmV3IEVycm9yKCJVbmFibGUgdG8gc2VyaWFsaXplICIrUyl9KFNbZWVdLCEwKSx7Zm10aWQ6IntENUNERDUwNS0yRTlDLTEwMUItOTM5Ny0wODAwMkIyQ0Y5QUV9IixwaWQ6'@; put 'ayxuYW1lOlByKGVlKX0pfSksTy5sZW5ndGg+MiYmKE9bTy5sZW5ndGhdPSI8L1Byb3BlcnRpZXM+IixPWzFdPU9bMV0ucmVwbGFjZSgiLz4iLCI+IikpLE8uam9pbigiIil9KFMuQ3VzdHByb3BzKSksZWUuY3VzdHByb3BzLnB1c2gobWUpLEVyKE8ucmVscyw0LG1lLFhhLkNVU1RfUFJPUFMp'@; put 'KTt2YXIgVmU9W10sWWU9W107ZnVuY3Rpb24gZXQoVG4sc3Ipe1llLnB1c2goW3BlLTEsc3IsVG5dKX1mdW5jdGlvbiBjdChUbil7VmUucHVzaChbcGUtMSxUbl0pLEVyKFR0LC0xLCIuLi9waXZvdFRhYmxlcy9waXZvdFRhYmxlIitWZS5sZW5ndGgrIi4iK2ssWGEuUElWT1QpfWZvcihwZT0x'@; put 'O3BlPD1TLlNoZWV0TmFtZXMubGVuZ3RoOysrcGUpe3ZhciBUdD17IiFpZCI6e319LGl0PVMuU2hlZXRzW1MuU2hlZXROYW1lc1twZS0xXV0sYnQ9KGl0fHx7fSlbIiF0eXBlIl18fCJzaGVldCI7c3dpdGNoKGJ0KXtjYXNlImNoYXJ0IjppZih0eXBlb2Ygd3JpdGVfZHJhd2luZ188InUiKXt6'@; put 'bihvZSxtZT0ieGwvY2hhcnRzaGVldHMvc2hlZXQiK3BlKyIuIitrLGdJKHBlLTEsbWUsTyxTLFR0KSksZWUuY2hhcnRzLnB1c2gobWUpLEVyKE8ud2JyZWxzLC0xLCJjaGFydHNoZWV0cy9zaGVldCIrcGUrIi4iK2ssWGEuQ1MpO2JyZWFrfWRlZmF1bHQ6em4ob2UsbWU9InhsL3dvcmtzaGVl'@; put 'dHMvc2hlZXQiK3BlKyIuIitrLHBJKHBlLTEsbWUsTyxTLFR0KSksZWUuc2hlZXRzLnB1c2gobWUpLEVyKE8ud2JyZWxzLC0xLCJ3b3Jrc2hlZXRzL3NoZWV0IitwZSsiLiIrayxYYS5XU1swXSl9aWYoaXQpeyJjaGFydCI9PWJ0JiYhaXRbIiFwb3MiXSYmKGl0WyIhcG9zIl09e3g6MCx5OjAs'@; put 'dzo5MDAsaDo2MDB9KTt2YXIgQnQ9aXRbIiFjb21tZW50cyJdLER0PSExO2lmKEJ0JiZCdC5sZW5ndGg+MCl7dmFyIE90PSJ4bC9jb21tZW50cyIrcGUrIi4iK2s7em4ob2UsT3QsUnooQnQsT3QsTykpLGVlLmNvbW1lbnRzLnB1c2goT3QpLEVyKFR0LC0xLCIuLi9jb21tZW50cyIrcGUrIi4i'@; put 'K2ssWGEuQ01OVCksRHQ9ITB9KGl0WyIhY29udHJvbHMiXXx8W10pLmxlbmd0aD4wJiYoRHQ9ITApLGl0WyIhbGVnYWN5Il0mJkR0JiZ6bihvZSwieGwvZHJhd2luZ3Mvdm1sRHJhd2luZyIrcGUrIi52bWwiLFZDKHBlLGl0WyIhY29tbWVudHMiXSxpdFsiIWNvbnRyb2xzIl0saXQpKSxpdFsi'@; put 'IWxlZ2FjeUhGIl0mJlVrKG9lLDAscGUsaXRbIiFwcmludCJdLmltYWdlcyk7dmFyIEt0PSgiY2hhcnQiPT1pdFsiIXR5cGUiXT9baXRdOml0WyIhY2hhcnRzIl18fFtdKS5jb25jYXQoKGl0WyIhaW1hZ2VzIl18fFtdKS5tYXAoZnVuY3Rpb24oVG4pe3JldHVybiBUblsiIXR5cGUiXXx8KFRu'@; put 'WyIhdHlwZSJdPSJpbWFnZSIpLFRufSkpLmNvbmNhdCgoaXRbIiFzaGFwZXMiXXx8W10pLm1hcChmdW5jdGlvbihUbil7cmV0dXJuIFRuWyIhdHlwZSJdfHwoVG5bIiF0eXBlIl09InNoYXBlIiksVG59KSk7S3QmJkt0Lmxlbmd0aCYmKHR5cGVvZiB3cml0ZV9kcmF3aW5nXzwidSI/d3JpdGVf'@; put 'ZHJhd2luZ18ob2UsZWUscGUsaXQsS3QpOih6bihvZSwieGwvZHJhd2luZ3MvZHJhd2luZyIrcGUrIi54bWwiLF9CKCkpLGVlLmRyYXdpbmdzLnB1c2goInhsL2RyYXdpbmdzL2RyYXdpbmciK3BlKyIueG1sIikpKSxkZWxldGUgaXRbIiFjb21tZW50cyJdLGRlbGV0ZSBpdFsiIWxlZ2FjeSJd'@; put 'LGRlbGV0ZSBpdFsiIWxlZ2FjeUhGIl19aXQmJml0WyIhcGl2b3RzIl0mJiJ4bWwiPT1rJiZ0eXBlb2Ygd3JpdGVfcGl2b3RfeG1sPCJ1IiYmaXRbIiFwaXZvdHMiXS5mb3JFYWNoKGN0KSxUdFsiIWlkIl0ucklkMSYmem4ob2UsTnIobWUpLEFpKFR0KSksaXQmJml0WyIhdGFibGVzIl0mJiJ4'@; put 'bWwiPT1rJiZpdFsiIXRhYmxlcyJdLmZvckVhY2goZXQpfXJldHVybiBudWxsIT1PLlN0cmluZ3MmJk8uU3RyaW5ncy5sZW5ndGg+MCYmKHpuKG9lLG1lPSJ4bC9zaGFyZWRTdHJpbmdzLiIrayxtSShPLlN0cmluZ3MsbWUsTykpLGVlLnN0cnMucHVzaChtZSksRXIoTy53YnJlbHMsLTEsInNo'@; put 'YXJlZFN0cmluZ3MuIitrLFhhLlNTVCkpLCJ4bWwiPT1rJiZ0eXBlb2Ygd3JpdGVfcGl2b3RfeG1sPCJ1IiYmd3JpdGVfcGl2b3RfeG1sKFZlLFMsb2UsZWUsTyksInhtbCI9PWsmJmZ1bmN0aW9uIEY0KFMsTyxrLEspe1MuZm9yRWFjaChmdW5jdGlvbihlZSxvZSl7dmFyIG1lPU8uU2hlZXRz'@; put 'W08uU2hlZXROYW1lc1tlZVswXV1dLHBlPSJ4bC90YWJsZXMvdGFibGUiKyhlZVswXSsxKSsiXyIrZWVbMV0rIi54bWwiO0sudGFibGVzLnB1c2gocGUpO3ZhciBiZT1lZVsyXS5yZWZ8fG1lWyIhcmVmIl07InN0cmluZyIhPXR5cGVvZiBiZSYmKGJlPXJhKGJlKSk7dmFyIFBlPXNzKGJlKSxW'@; put 'ZT1lZVsyXS5uYW1lfHwic2pzdGJsXyIrZWVbMF0rIl8iK2VlWzFdLFllPVtEaV0sZXQ9IVp0KGVlWzJdLmhlYWRlciksY3Q9ZXQmJiFadChlZVsyXS5maWx0ZXIpO1llLnB1c2goJzx0YWJsZSB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwv'@; put 'MjAwNi9tYWluIiBpZD0iJysob2UrMSkrJyIgbmFtZT0iJytQcihWZSkrJyIgZGlzcGxheU5hbWU9IicrUHIoVmUpKyciIHJlZj0iJytiZSsnIiAnKyhudWxsIT1lZVsyXS5oZWFkZXImJjEhPWVlWzJdLmhlYWRlcj8naGVhZGVyUm93Q291bnQ9IicrKGVlWzJdLmhlYWRlcnx8MCkrJyIgJzoi'@; put 'IikrIj4iKSxjdCYmWWUucHVzaCgnPGF1dG9GaWx0ZXIgcmVmPSInK2JlKyciLz4nKSxZZS5wdXNoKCc8dGFibGVDb2x1bW5zIGNvdW50PSInKyhQZS5lLmMtUGUucy5jKzEpKyciPicpO2Zvcih2YXIgVHQ9W10saXQ9UGUucy5jO2l0PD1QZS5lLmM7KytpdClpZihldCl7Zm9yKHZhciBidD1x'@; put 'aSh7cjpQZS5zLnIsYzppdH0pLEJ0PW1lW2J0XSxEdD1lZVsyXS5jb2xzJiZlZVsyXS5jb2xzW2l0LVBlLnMuY10mJmVlWzJdLmNvbHNbaXQtUGUucy5jXS5uYW1lfHxCdCYmKEJ0Lnd8fEJ0LnYpfHwiQ29sdW1uICIrKGl0LVBlLnMuYysxKSxPdD1EdCxLdD0xO1R0LmluZGV4T2YoT3QpPi0x'@; put 'JiYrK0t0PDE2Mzg0OylPdD1EdCtLdDtpZihPdCE9RHQpdGhyb3cidGFibGUgY29sdW1ucyAiK2l0KyIgYW5kICIrKFR0LmluZGV4T2YoRHQpK1BlLnMuYykrIiBoYXZlIHRoZSBzYW1lIGhlYWRlciAnIitEdCsiJzsgdHJ5IHNldHRpbmcgY2VsbCAiK2J0KyIgdG8gJyIrT3QrIiciO1R0LnB1'@; put 'c2goT3QpLFllLnB1c2goJzx0YWJsZUNvbHVtbiBpZD0iJysoZWVbMl0uY29scyYmZWVbMl0uY29sc1tpdC1QZS5zLmNdJiZudWxsIT1lZVsyXS5jb2xzW2l0LVBlLnMuY10uaWQ/ZWVbMl0uY29sc1tpdC1QZS5zLmNdLmlkOml0LVBlLnMuYysxKSsnIiBuYW1lPSInK1ByKE90KSsnIi8+Jyl9'@; put 'ZWxzZSBZZS5wdXNoKGVlWzJdLmNvbHMmJmVlWzJdLmNvbHNbaXQtUGUucy5jXT8nPHRhYmxlQ29sdW1uIGlkPSInK2VlWzJdLmNvbHNbaXQtUGUucy5jXS5pZCsnIiBuYW1lPSInK2VlWzJdLmNvbHNbaXQtUGUucy5jXS5uYW1lKyciLz4nOic8dGFibGVDb2x1bW4gaWQ9IicrKGl0LVBlLnMu'@; put 'YysxKSsnIiB1bmlxdWVOYW1lPSInKyhpdC1QZS5zLmMrMSkrJyIgbmFtZT0iJysoaXQtUGUucy5jKzEpKyciLz4nKTtZZS5wdXNoKCI8L3RhYmxlQ29sdW1ucz4iKTt2YXIgc3I9KyghMSE9PShlZVsyXS5zdHlsZXx8e30pLnJvd3N0cmlwZSksQ249KyEhKGVlWzJdLnN0eWxlfHx7fSkuY29s'@; put 'c3RyaXBlLHVyPSshIShlZVsyXS5zdHlsZXx8e30pLmNvbGZpcnN0LGVyPSshIShlZVsyXS5zdHlsZXx8e30pLmNvbGxhc3Qsam49KGVlWzJdLnN0eWxlfHx7fSkubmFtZXx8Ik1lZGl1bTkiO2puPWpuLm1hdGNoKC9eKExpZ2h0fE1lZGl1bXxEYXJrKVxkKyQvKT8iVGFibGVTdHlsZSIram46'@; put 'am4sWWUucHVzaCgnPHRhYmxlU3R5bGVJbmZvIG5hbWU9Iicram4rJyIgc2hvd0ZpcnN0Q29sdW1uPSInK3VyKyciIHNob3dMYXN0Q29sdW1uPSInK2VyKyciIHNob3dSb3dTdHJpcGVzPSInK3NyKyciIHNob3dDb2x1bW5TdHJpcGVzPSInK0NuKyciLz4nKSxZZS5wdXNoKCI8L3RhYmxlPiIp'@; put 'LHpuKGsscGUsWWUuam9pbigiIikpfSl9KFllLFMsb2UsZWUpLCJ4bWwiPT1rJiYoUy5FeHRlcm5hbFdCfHxbXSkubGVuZ3RoJiZmdW5jdGlvbiBIQyhTLE8sayl7ay5saW5rc3x8KGsubGlua3M9W10pLFMuRXh0ZXJuYWxXQiYmUy5FeHRlcm5hbFdCLmZvckVhY2goZnVuY3Rpb24oSyxlZSl7'@; put 'dmFyIG9lPSIveGwvZXh0ZXJuYWxMaW5rcy9fcmVscy9leHRlcm5hbExpbmsiKyhlZSsxKSsiLnhtbC5yZWxzIixtZT17fTtFcihtZSwtMSxLLlRhcmdldCxLLk1pc3Npbmc/WGEuWE1JU1M6WGEuWFBBVEgpLHpuKE8sRWMob2UpLEFpKG1lKSk7dmFyIHBlPSIveGwvZXh0ZXJuYWxMaW5rcy9l'@; put 'eHRlcm5hbExpbmsiKyhlZSsxKSsiLnhtbCI7ay5saW5rcy5wdXNoKHBlKSx6bihPLEVjKHBlKSxmdW5jdGlvbiB2QihTKXt2YXIgTz1bRGksbUJdO3JldHVybihTLlNoZWV0TmFtZXN8fFtdKS5sZW5ndGgmJihPLnB1c2goJzxleHRlcm5hbEJvb2sgeG1sbnM6cj0iaHR0cDovL3NjaGVtYXMu'@; put 'b3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcyIgcjppZD0icklkMSI+JyksTy5wdXNoKCI8c2hlZXROYW1lcz4iKSxTLlNoZWV0TmFtZXMuZm9yRWFjaChmdW5jdGlvbihrKXtPLnB1c2goJzxzaGVldE5hbWUgdmFsPSInK1ByKGspKyciLz4nKX0p'@; put 'LE8ucHVzaCgiPC9zaGVldE5hbWVzPiIpLE8ucHVzaCgiPHNoZWV0RGF0YVNldD4iKSxTLlNoZWV0TmFtZXMuZm9yRWFjaChmdW5jdGlvbihrLEspe3ZhciBlZT1TLlNoZWV0c1trXSxvZT17c2hlZXRJZDpLfSxtZT1udWxsO2lmKG51bGw9PWVlKW9lLnJlZnJlc2hFcnJvcj0xO2Vsc2UgaWYo'@; put 'ZWVbIiFyZWYiXSl7dmFyIHBlPVNvKGVlWyIhcmVmIl0pO21lPSIiO2Zvcih2YXIgYmU9cGUucy5yO2JlPD1wZS5lLnI7KytiZSl7Zm9yKHZhciBQZT0iIixWZT1wZS5zLmM7VmU8PXBlLmUuYzsrK1ZlKXt2YXIgWWU9cWkoe3I6YmUsYzpWZX0pO2VlW1llXSYmKFBlfHwoUGU9Jzxyb3cgcj0i'@; put 'JysoYmUrMSkrJyI+JyksUGUrPSc8Y2VsbCByPSInK1llKyciJysoZWVbWWVdLnQ/JyB0PSInK2VlW1llXS50KyciJzoiIikrIj48dj4iK1ByKGVlW1llXS52KSsiPC92PjwvY2VsbD4iKX1QZSYmKG1lKz1QZSsiPC9yb3c+Iil9fU8ucHVzaChIcigic2hlZXREYXRhIixtZSxvZSkpfSksTy5w'@; put 'dXNoKCI8L3NoZWV0RGF0YVNldD4iKSxPLnB1c2goIjwvZXh0ZXJuYWxCb29rPiIpKSxPLmxlbmd0aD4yJiYoT1tPLmxlbmd0aF09IjwvZXh0ZXJuYWxMaW5rPiIsT1sxXT1PWzFdLnJlcGxhY2UoIi8+IiwiPiIpKSxPLmpvaW4oIiIpfShLKSl9KX0oUyxvZSxlZSksInhtbCI9PWsmJmZ1bmN0'@; put 'aW9uIFBDKFMpe3ZhciBPLGs7Uy5Xb3JrYm9va3x8KFMuV29ya2Jvb2s9e05hbWVzOltdfSksUy5Xb3JrYm9vay5OYW1lc3x8KFMuV29ya2Jvb2suTmFtZXM9W10pO2Zvcih2YXIgSz1TLldvcmtib29rLk5hbWVzLGVlPTA7ZWU8Uy5TaGVldE5hbWVzLmxlbmd0aDsrK2VlKXt2YXIgb2U9Uy5T'@; put 'aGVldE5hbWVzW2VlXSxtZT1TLlNoZWV0c1tvZV07aWYobWUmJm1lWyIhcHJpbnQiXSl7dmFyIHBlPSInIitvZSsiJyEiLGJlPW1lWyIhcHJpbnQiXTtpZihiZSl7dmFyIFBlPSEoTz1iZS5hcmVhKSxWZT0hKGs9YmUudGl0bGVzKSxZZT1PPyJzdHJpbmciPT10eXBlb2YgTz9POnJhKE8pOiIi'@; put 'O2lmKE8mJihLLmZvckVhY2goZnVuY3Rpb24oY3Qpe2N0LlNoZWV0PT1lZSYmIVBlJiYiX3hsbm0uUHJpbnRfQXJlYSI9PWN0Lk5hbWUmJihQZT0hMCxjdC5SZWY9cGUrWWUpfSksUGV8fEsucHVzaCh7TmFtZToiX3hsbm0uUHJpbnRfQXJlYSIsUmVmOnBlK1llLFNoZWV0OmVlfSkpLGspe3Zh'@; put 'ciBldD0iIjtrLnMuYz4tMSYmay5lLmM+LTEmJihldCs9cGUra2Eoay5zLmMpKyI6IitrYShrLmUuYykrIiwiKSxrLnMucj4tMSYmay5lLnI+LTEmJihldCs9cGUramkoay5zLnIpKyI6IitqaShrLmUucikrIiwiKSxldD1ldC5zbGljZSgwLC0xKSxLLmZvckVhY2goZnVuY3Rpb24oY3Qpe2N0'@; put 'LlNoZWV0PT1lZSYmIVZlJiYiX3hsbm0uUHJpbnRfVGl0bGVzIj09Y3QuTmFtZSYmKFBlPSEwLGN0LlJlZj1ldCl9KSxWZXx8Sy5wdXNoKHtOYW1lOiJfeGxubS5QcmludF9UaXRsZXMiLFJlZjpldCxTaGVldDplZX0pfX19fX0oUyksem4ob2UsbWU9InhsL3dvcmtib29rLiIrayxmdW5jdGlv'@; put 'biBJeihTLE8sayl7cmV0dXJuKCIuYmluIj09PU8uc2xpY2UoLTQpP2J5OlQ4KShTLGspfShTLG1lLE8pKSxlZS53b3JrYm9va3MucHVzaChtZSksRXIoTy5yZWxzLDEsbWUsWGEuV0IpLHpuKG9lLG1lPSJ4bC90aGVtZS90aGVtZTEueG1sIixsQihTLlRoZW1lcyxPKSksZWUudGhlbWVzLnB1'@; put 'c2gobWUpLEVyKE8ud2JyZWxzLC0xLCJ0aGVtZS90aGVtZTEueG1sIixYYS5USEVNRSksem4ob2UsbWU9InhsL3N0eWxlcy4iK2ssZnVuY3Rpb24gWlMoUyxPLGspe3JldHVybigiLmJpbiI9PT1PLnNsaWNlKC00KT9MazpCdikoUyxrKX0oUyxtZSxPKSksZWUuc3R5bGVzLnB1c2gobWUpLEVy'@; put 'KE8ud2JyZWxzLC0xLCJzdHlsZXMuIitrLFhhLlNUWSksUy52YmFyYXcmJksmJih6bihvZSxtZT0ieGwvdmJhUHJvamVjdC5iaW4iLFMudmJhcmF3KSxlZS52YmEucHVzaChtZSksRXIoTy53YnJlbHMsLTEsInZiYVByb2plY3QuYmluIixYYS5WQkEpKSxTLm1vZGVsJiZTLm1vZGVsLmxlbmd0'@; put 'aCYmKHpuKG9lLCJ4bC9tb2RlbC9pdGVtLmRhdGEiLFMubW9kZWwpLEVyKE8ud2JyZWxzLC0xLCJtb2RlbC9pdGVtLmRhdGEiLFhhLlBXUlBEKSksUy5jb25uJiYoem4ob2UsInhsL2Nvbm5lY3Rpb25zLnhtbCIsUy5jb25uKSxlZS5jb25ucy5wdXNoKCIveGwvY29ubmVjdGlvbnMueG1sIiks'@; put 'RXIoTy53YnJlbHMsLTEsImNvbm5lY3Rpb25zLnhtbCIsWGEuQ09OTikpLFMuQ3VzdG9tWE1MJiZTLkN1c3RvbVhNTC5mb3JFYWNoKGZ1bmN0aW9uKFRuLHNyKXtpZih6bihvZSwiY3VzdG9tWG1sL2l0ZW0iKyhzcisxKSsiLnhtbCIsVG4uZGF0YSksRXIoTy53YnJlbHMsLTEsIi4uL2N1c3Rv'@; put 'bVhtbC9pdGVtIisoc3IrMSkrIi54bWwiLFhhLkNYTUwpLFRuLnByb3BzKXt6bihvZSwiY3VzdG9tWG1sL2l0ZW1Qcm9wcyIrKHNyKzEpKyIueG1sIixUbi5wcm9wcyksZWUuY3VzdG9teG1scHJvcHMucHVzaCgiL2N1c3RvbVhtbC9pdGVtUHJvcHMiKyhzcisxKSsiLnhtbCIpO3ZhciBDbj17'@; put 'fTtFcihDbiwtMSwiaXRlbVByb3BzIisoc3IrMSkrIi54bWwiLFhhLkNYTUxQKSx6bihvZSwiY3VzdG9tWG1sL19yZWxzL2l0ZW0iKyhzcisxKSsiLnhtbC5yZWxzIixBaShDbikpfX0pLHpuKG9lLCJbQ29udGVudF9UeXBlc10ueG1sIixmdW5jdGlvbiBXdyhTLE8sayl7dmFyIGVlLEs9W107'@; put 'a3x8KEtbSy5sZW5ndGhdPURpLEtbSy5sZW5ndGhdPWh2LEs9Sy5jb25jYXQoWncpKTt2YXIgb2U9ZnVuY3Rpb24oYmUpe1NbYmVdJiZTW2JlXS5sZW5ndGg+MCYmKEtbSy5sZW5ndGhdPUhyKCJPdmVycmlkZSIsbnVsbCx7UGFydE5hbWU6KCIvIj09KGVlPVNbYmVdWzBdKVswXT8iIjoiLyIp'@; put 'K2VlLENvbnRlbnRUeXBlOmN2W2JlXVtPLmJvb2tUeXBlfHwieGxzeCJdfSkpfSxtZT1mdW5jdGlvbihiZSl7KFNbYmVdfHxbXSkuZm9yRWFjaChmdW5jdGlvbihQZSl7S1tLLmxlbmd0aF09SHIoIk92ZXJyaWRlIixudWxsLHtQYXJ0TmFtZTooIi8iPT1QZVswXT8iIjoiLyIpK1BlLENvbnRl'@; put 'bnRUeXBlOmN2W2JlXVtPLmJvb2tUeXBlfHwieGxzeCJdfSl9KX0scGU9ZnVuY3Rpb24oYmUpeyhTW2JlXXx8W10pLmZvckVhY2goZnVuY3Rpb24oUGUpe0tbSy5sZW5ndGhdPUhyKCJPdmVycmlkZSIsbnVsbCx7UGFydE5hbWU6KCIvIj09UGVbMF0/IiI6Ii8iKStQZSxDb250ZW50VHlwZTp1'@; put 'dltiZV1bMF19KX0pfTtyZXR1cm4gb2UoIndvcmtib29rcyIpLG1lKCJzaGVldHMiKSxtZSgiY2hhcnRzIikscGUoInRoZW1lcyIpLFsic3RycyIsInN0eWxlcyIsImNvbm5zIl0uZm9yRWFjaChvZSksWyJjb3JlcHJvcHMiLCJleHRwcm9wcyIsImN1c3Rwcm9wcyJdLmZvckVhY2gocGUpLHBl'@; put 'KCJ2YmEiKSxwZSgiY29tbWVudHMiKSxwZSgiZHJhd2luZ3MiKSxtZSgidGFibGVzIiksbWUoInBpdm90cyIpLG1lKCJwaXZvdGNhY2hlcyIpLG1lKCJwaXZvdHJlY29yZHMiKSxwZSgiZGF0YW1vZGVscyIpLHBlKCJjdHJscHJvcHMiKSxwZSgiY2hhcnRvYmpzIikscGUoImNoYXJ0c3R5bGVz'@; put 'IikscGUoImNoYXJ0Y29sb3JzIikscGUoImNoYXJ0ZXhzIiksbWUoImxpbmtzIikscGUoImN1c3RvbXhtbHByb3BzIiksIWsmJksubGVuZ3RoPjImJihLW0subGVuZ3RoXT0iPC9UeXBlcz4iLEtbMV09S1sxXS5yZXBsYWNlKCIvPiIsIj4iKSksSy5qb2luKCIiKX0oZWUsTykpLHpuKG9lLCJf'@; put 'cmVscy8ucmVscyIsQWkoTy5yZWxzKSksem4ob2UsInhsL19yZWxzL3dvcmtib29rLiIraysiLnJlbHMiLEFpKE8ud2JyZWxzKSksZGVsZXRlIE8uRm9udHMsZGVsZXRlIE8uRmlsbHMsZGVsZXRlIE8uQm9yZGVycyxkZWxldGUgTy5yZXZzc2YsZGVsZXRlIE8uc3NmLG9lfWZ1bmN0aW9uIGlN'@; put 'KFMsTyl7dmFyIGs9IiI7c3dpdGNoKChPfHx7fSkudHlwZXx8ImJhc2U2NCIpe2Nhc2UiYnVmZmVyIjpjYXNlImFycmF5IjpyZXR1cm5bU1swXSxTWzFdLFNbMl0sU1szXSxTWzRdLFNbNV0sU1s2XSxTWzddXTtjYXNlImJhc2U2NCI6az1fZS5kZWNvZGUoUy5zbGljZSgwLDEyKSk7YnJlYWs7'@; put 'Y2FzZSJiaW5hcnkiOms9UzticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHR5cGUgIisoTyYmTy50eXBlfHwidW5kZWZpbmVkIikpfXJldHVybltrLmNoYXJDb2RlQXQoMCksay5jaGFyQ29kZUF0KDEpLGsuY2hhckNvZGVBdCgyKSxrLmNoYXJDb2RlQXQoMyks'@; put 'ay5jaGFyQ29kZUF0KDQpLGsuY2hhckNvZGVBdCg1KSxrLmNoYXJDb2RlQXQoNiksay5jaGFyQ29kZUF0KDcpXX1mdW5jdGlvbiBhTShTLE8pe3ZhciBrPTA7ZTpmb3IoO2s8Uy5sZW5ndGg7KXN3aXRjaChTLmNoYXJDb2RlQXQoaykpe2Nhc2UgMTA6Y2FzZSAxMzpjYXNlIDMyOisrazticmVh'@; put 'aztjYXNlIDYwOnJldHVybiBJOChTLnNsaWNlKGspLE8pO2RlZmF1bHQ6YnJlYWsgZX1yZXR1cm4gejMudG9fd29ya2Jvb2soUyxPKX1mdW5jdGlvbiBMeShTLE8sayxLKXtyZXR1cm4gSz8oay50eXBlPSJzdHJpbmciLHozLnRvX3dvcmtib29rKFMsaykpOnozLnRvX3dvcmtib29rKE8sayl9'@; put 'ZnVuY3Rpb24gVzUoUyxPKXt2YXIgaz1BLmdldGxvY2FsZSgpO2FlKEEpLEEuc2V0bG9jYWxlKGspLFcoKTt2YXIgSz1PfHx7fTtpZih0eXBlb2YgQXJyYXlCdWZmZXI8InUiJiZTIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpcmV0dXJuIFc1KG5ldyBVaW50OEFycmF5KFMpLCgoSz1KdChLKSku'@; put 'dHlwZT0iYXJyYXkiLEspKTt2YXIgb2UsZWU9UyxtZT0hMTtpZihGZihQZj1LLlBQSXx8VW8pLEsuY2VsbFN0eWxlcyYmKEsuY2VsbE5GPSEwLEsuc2hlZXRTdHVicz0hMCksYzg9e30sSy5kYXRlTkYmJihjOC5kYXRlTkY9Sy5kYXRlTkYpLEsudHlwZXx8KEsudHlwZT1UZSYmQnVmZmVyLmlz'@; put 'QnVmZmVyKFMpPyJidWZmZXIiOiJiYXNlNjQiKSwiZmlsZSI9PUsudHlwZSYmKEsudHlwZT1UZT8iYnVmZmVyIjoiYmluYXJ5IixlZT1mdW5jdGlvbiBGZShTKXtpZih0eXBlb2YgcWU8InUiKXJldHVybiBxZS5yZWFkRmlsZVN5bmMoUyk7aWYodHlwZW9mICQ8InUiJiZ0eXBlb2YgRmlsZTwi'@; put 'dSImJnR5cGVvZiBGb2xkZXI8InUiKXRyeXt2YXIgTz1GaWxlKFMpO08ub3BlbigiciIpLE8uZW5jb2Rpbmc9ImJpbmFyeSI7dmFyIGs9Ty5yZWFkKCk7cmV0dXJuIE8uY2xvc2UoKSxrfWNhdGNoKEspe2lmKCFLLm1lc3NhZ2V8fCFLLm1lc3NhZ2UubWF0Y2goL29uc3RydWN0LykpdGhyb3cg'@; put 'S310aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBhY2Nlc3MgZmlsZSAiK1MpfShTKSksInN0cmluZyI9PUsudHlwZSYmKG1lPSEwLEsudHlwZT0iYmluYXJ5IixLLmNvZGVwYWdlPTY1MDAxLGVlPWZ1bmN0aW9uIFZjKFMpe3JldHVybiBTLm1hdGNoKC9bXlx4MDAtXHg3Rl0vKT9IbyhTKTpTfShT'@; put 'KSksImFycmF5Ij09Sy50eXBlJiZ0eXBlb2YgVWludDhBcnJheTwidSImJlMgaW5zdGFuY2VvZiBVaW50OEFycmF5JiZ0eXBlb2YgQXJyYXlCdWZmZXI8InUiKXt2YXIgcGU9bmV3IEFycmF5QnVmZmVyKDMpLGJlPW5ldyBVaW50OEFycmF5KHBlKTtpZihiZS5mb289ImJhciIsIWJlLmZvbyly'@; put 'ZXR1cm4oSz1KdChLKSkudHlwZT0iYXJyYXkiLFc1KFYoZWUpLEspfXN3aXRjaCgob2U9aU0oZWUsSykpWzBdKXtjYXNlIDIwODppZigyMDc9PT1vZVsxXSYmMTc9PT1vZVsyXSYmMjI0PT09b2VbM10mJjE2MT09PW9lWzRdJiYxNzc9PT1vZVs1XSYmMjY9PT1vZVs2XSYmMjI1PT09b2VbN10p'@; put 'cmV0dXJuIGZ1bmN0aW9uIGd0KFMsTyl7cmV0dXJuIHZlLmZpbmQoUywiRW5jcnlwdGVkUGFja2FnZSIpP1J5KFMsTyk6UVMoUyxPKX0odmUucmVhZChlZSxLKSxLKTticmVhaztjYXNlIDk6aWYob2VbMV08PTgpcmV0dXJuIFFTKGVlLEspO2JyZWFrO2Nhc2UgNjA6cmV0dXJuIEk4KGVlLEsp'@; put 'O2Nhc2UgNzM6aWYoNzM9PT1vZVsxXSYmNDI9PT1vZVsyXSYmMD09PW9lWzNdKXRocm93IG5ldyBFcnJvcigiVElGRiBJbWFnZSBGaWxlIGlzIG5vdCBhIHNwcmVhZHNoZWV0Iik7aWYoNjg9PT1vZVsxXSlyZXR1cm4gZnVuY3Rpb24gbGsoUyxPKXt2YXIgaz1PfHx7fSxLPSEhay5XVEY7ay5X'@; put 'VEY9ITA7dHJ5e3ZhciBlZT1wQy50b193b3JrYm9vayhTLGspO3JldHVybiBrLldURj1LLGVlfWNhdGNoKG9lKXtpZihrLldURj1LLCFvZS5tZXNzYWdlLm1hdGNoKC9TWUxLIGJhZCByZWNvcmQgSUQvKSYmSyl0aHJvdyBvZTtyZXR1cm4gejMudG9fd29ya2Jvb2soUyxPKX19KGVlLEspO2Jy'@; put 'ZWFrO2Nhc2UgODQ6aWYoNjU9PT1vZVsxXSYmNjY9PT1vZVsyXSYmNzY9PT1vZVszXSlyZXR1cm4gRXYudG9fd29ya2Jvb2soZWUsSyk7YnJlYWs7Y2FzZSA4MDpyZXR1cm4gNzU9PT1vZVsxXSYmb2VbMl08OSYmb2VbM108OT9mdW5jdGlvbiB6SShTLE8pe3ZhciBLPVMsZWU9T3x8e307cmV0'@; put 'dXJuIGVlLnR5cGV8fChlZS50eXBlPVRlJiZCdWZmZXIuaXNCdWZmZXIoUyk/ImJ1ZmZlciI6ImJhc2U2NCIpLGlwKGNuKEssZWUpLGVlKX0oZWUsSyk6THkoUyxlZSxLLG1lKTtjYXNlIDIzOTpyZXR1cm4gNjA9PT1vZVszXT9JOChlZSxLKTpMeShTLGVlLEssbWUpO2Nhc2UgMjU1OmlmKDI1'@; put 'ND09PW9lWzFdKXJldHVybiBmdW5jdGlvbiBhVShTLE8pe3ZhciBrPVM7cmV0dXJuImJhc2U2NCI9PU8udHlwZSYmKGs9X2UuZGVjb2RlKGspKSxrPWNwdGFibGUudXRpbHMuZGVjb2RlKDEyMDAsay5zbGljZSgyKSwic3RyIiksTy50eXBlPSJiaW5hcnkiLGFNKGssTyl9KGVlLEspO2JyZWFr'@; put 'O2Nhc2UgMDppZigwPT09b2VbMV0mJm9lWzJdPj0yJiYwPT09b2VbM10pcmV0dXJuIFR2LnRvX3dvcmtib29rKGVlLEspO2JyZWFrO2Nhc2UgMzpjYXNlIDEzMTpjYXNlIDEzOTpjYXNlIDE0MDpyZXR1cm4gajMudG9fd29ya2Jvb2soZWUsSyk7Y2FzZSAxMjM6aWYoOTI9PT1vZVsxXSYmMTE0'@; put 'PT09b2VbMl0mJjExNj09PW9lWzNdKXJldHVybiBQdi50b193b3JrYm9vayhlZSxLKTticmVhaztjYXNlIDEwOmNhc2UgMTM6Y2FzZSAzMjpyZXR1cm4gZnVuY3Rpb24gaVUoUyxPKXt2YXIgaz0iIixLPWlNKFMsTyk7c3dpdGNoKE8udHlwZSl7Y2FzZSJiYXNlNjQiOms9X2UuZGVjb2RlKFMp'@; put 'O2JyZWFrO2Nhc2UiYmluYXJ5IjprPVM7YnJlYWs7Y2FzZSJidWZmZXIiOms9Uy50b1N0cmluZygiYmluYXJ5Iik7YnJlYWs7Y2FzZSJhcnJheSI6az11dChTKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHR5cGUgIitPLnR5cGUpfXJldHVybiAyMzk9PUtb'@; put 'MF0mJjE4Nz09S1sxXSYmMTkxPT1LWzJdJiYoaz1mcyhrKSksYU0oayxPKX0oZWUsSyl9cmV0dXJuIGozLnZlcnNpb25zLmluZGV4T2Yob2VbMF0pPi0xJiZvZVsyXTw9MTImJm9lWzNdPD0zMT9qMy50b193b3JrYm9vayhlZSxLKTpMeShTLGVlLEssbWUpfWZ1bmN0aW9uIFRjKFMsTyl7dmFy'@; put 'IGs9T3x8e307cmV0dXJuIGsudHlwZT0iZmlsZSIsVzUoUyxrKX1mdW5jdGlvbiBZNShTLE8pe3N3aXRjaChPLnR5cGUpe2Nhc2UiYmFzZTY0IjpjYXNlImJpbmFyeSI6YnJlYWs7Y2FzZSJidWZmZXIiOmNhc2UiYXJyYXkiOk8udHlwZT0iIjticmVhaztjYXNlImZpbGUiOnJldHVybiBBZShP'@; put 'LmZpbGUsdmUud3JpdGUoUyx7dHlwZTpUZT8iYnVmZmVyIjoiIn0pKTtjYXNlInN0cmluZyI6dGhyb3cgbmV3IEVycm9yKCInc3RyaW5nJyBvdXRwdXQgdHlwZSBpbnZhbGlkIGZvciAnIitPLmJvb2tUeXBlKyInIGZpbGVzIik7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXpl'@; put 'ZCB0eXBlICIrTy50eXBlKX1yZXR1cm4gdmUud3JpdGUoUyxPKX1mdW5jdGlvbiB0MShTLE8sayl7a3x8KGs9IiIpO3ZhciBLPWsrUztzd2l0Y2goTy50eXBlKXtjYXNlImJhc2U2NCI6cmV0dXJuIF9lLmVuY29kZShIbyhLKSk7Y2FzZSJiaW5hcnkiOnJldHVybiBIbyhLKTtjYXNlInN0cmlu'@; put 'ZyI6cmV0dXJuIFM7Y2FzZSJmaWxlIjpyZXR1cm4gQWUoTy5maWxlLEssInV0ZjgiKTtjYXNlImJ1ZmZlciI6cmV0dXJuIFRlP1NlKEssInV0ZjgiKTp0MShLLHt0eXBlOiJiaW5hcnkifSkuc3BsaXQoIiIpLm1hcChmdW5jdGlvbihlZSl7cmV0dXJuIGVlLmNoYXJDb2RlQXQoMCl9KX10aHJv'@; put 'dyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCB0eXBlICIrTy50eXBlKX1mdW5jdGlvbiBzTShTLE8pe3N3aXRjaChPLnR5cGUpe2Nhc2Uic3RyaW5nIjpjYXNlImJhc2U2NCI6Y2FzZSJiaW5hcnkiOmZvcih2YXIgaz0iIixLPTA7SzxTLmxlbmd0aDsrK0spays9U3RyaW5nLmZyb21DaGFyQ29k'@; put 'ZShTW0tdKTtyZXR1cm4iYmFzZTY0Ij09Ty50eXBlP19lLmVuY29kZShrKToic3RyaW5nIj09Ty50eXBlP2ZzKGspOms7Y2FzZSJmaWxlIjpyZXR1cm4gQWUoTy5maWxlLFMpO2Nhc2UiYnVmZmVyIjpyZXR1cm4gUztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHR5cGUg'@; put 'IitPLnR5cGUpfX1mdW5jdGlvbiBOOChTLE8pe1coKSxmdW5jdGlvbiBjSShTKXtpZighU3x8IVMuU2hlZXROYW1lc3x8IVMuU2hlZXRzKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBXb3JrYm9vayIpO2lmKCFTLlNoZWV0TmFtZXMubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiV29ya2Jvb2sg'@; put 'aXMgZW1wdHkiKTshZnVuY3Rpb24gbEkoUyxPLGspe1MuZm9yRWFjaChmdW5jdGlvbihLLGVlKXtteShLKTtmb3IodmFyIG9lPTA7b2U8ZWU7KytvZSlpZihLPT1TW29lXSl0aHJvdyBuZXcgRXJyb3IoIkR1cGxpY2F0ZSBTaGVldCBOYW1lOiAiK0spO2lmKGspe3ZhciBtZT1PJiZPW2VlXSYm'@; put 'T1tlZV0uQ29kZU5hbWV8fEs7aWYoOTU9PW1lLmNoYXJDb2RlQXQoMCkmJm1lLmxlbmd0aD4yMil0aHJvdyBuZXcgRXJyb3IoIkJhZCBDb2RlIE5hbWU6IFdvcmtzaGVldCIrbWUpfX0pfShTLlNoZWV0TmFtZXMsUy5Xb3JrYm9vayYmUy5Xb3JrYm9vay5TaGVldHN8fFtdLCEhUy52YmFyYXcp'@; put 'O2Zvcih2YXIgaz0wO2s8Uy5TaGVldE5hbWVzLmxlbmd0aDsrK2spYkQoUy5TaGVldHNbUy5TaGVldE5hbWVzW2tdXSwwLGspfShTKTt2YXIgaz1PfHx7fTtpZihrLmNlbGxTdHlsZXMmJihrLmNlbGxORj0hMCxrLnNoZWV0U3R1YnM9ITApLCJhcnJheSI9PWsudHlwZSl7ay50eXBlPSJiaW5h'@; put 'cnkiO3ZhciBLPU44KFMsayk7cmV0dXJuIGsudHlwZT0iYXJyYXkiLHgoSyl9c3dpdGNoKGsuYm9va1R5cGV8fCJ4bHNiIil7Y2FzZSJ4bWwiOmNhc2UieGxtbCI6cmV0dXJuIHQxKEVJKFMsayksayk7Y2FzZSJzbGsiOmNhc2Uic3lsayI6cmV0dXJuIHQxKHF6KFMsayksayk7Y2FzZSJodG0i'@; put 'OmNhc2UiaHRtbCI6cmV0dXJuIHQxKEt6KFMsayksayk7Y2FzZSJ0eHQiOnJldHVybiBmdW5jdGlvbiBQeShTLE8pe3N3aXRjaChPLnR5cGUpe2Nhc2UiYmFzZTY0IjpyZXR1cm4gX2UuZW5jb2RlKFMpO2Nhc2UiYmluYXJ5IjpjYXNlInN0cmluZyI6cmV0dXJuIFM7Y2FzZSJmaWxlIjpyZXR1'@; put 'cm4gQWUoTy5maWxlLFMsImJpbmFyeSIpO2Nhc2UiYnVmZmVyIjpyZXR1cm4gVGU/U2UoUywiYmluYXJ5Iik6Uy5zcGxpdCgiIikubWFwKGZ1bmN0aW9uKGspe3JldHVybiBrLmNoYXJDb2RlQXQoMCl9KX10aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCB0eXBlICIrTy50eXBlKX0oSnoo'@; put 'UyxrKSxrKTtjYXNlImNzdiI6cmV0dXJuIHQxKFh6KFMsayksaywiXHVmZWZmIik7Y2FzZSJkaWYiOnJldHVybiB0MSh5ZChTLGspLGspO2Nhc2UiZGJmIjpyZXR1cm4gc00odXJlKFMsayksayk7Y2FzZSJwcm4iOnJldHVybiB0MShGSShTLGspLGspO2Nhc2UicnRmIjpyZXR1cm4gdDEoSEko'@; put 'UyxrKSxrKTtjYXNlImV0aCI6cmV0dXJuIHQxKE5JKFMsayksayk7Y2FzZSJmb2RzIjpyZXR1cm4gdDEoUEkoUyxrKSxrKTtjYXNlImJpZmYyIjprLmJpZmZ8fChrLmJpZmY9Mik7Y2FzZSJiaWZmMyI6ay5iaWZmfHwoay5iaWZmPTMpO2Nhc2UiYmlmZjQiOnJldHVybiBrLmJpZmZ8fChrLmJp'@; put 'ZmY9NCksc00oREkoUyxrKSxrKTtjYXNlImJpZmY1IjprLmJpZmZ8fChrLmJpZmY9NSk7Y2FzZSJiaWZmOCI6Y2FzZSJ4bGEiOmNhc2UieGxzIjpyZXR1cm4gay5iaWZmfHwoay5iaWZmPTgpLGZ1bmN0aW9uIE95KFMsTyl7dmFyIGs9T3x8e307cmV0dXJuIFk1KGZ1bmN0aW9uIEpuZShTLE8p'@; put 'e3ZhciBrPU98fHt9LEs9dmUudXRpbHMuY2ZiX25ldyh7cm9vdDoiUiJ9KSxlZT0iL1dvcmtib29rIjtzd2l0Y2goay5ib29rVHlwZXx8InhscyIpe2Nhc2UieGxzIjprLmJvb2tUeXBlPSJiaWZmOCI7Y2FzZSJ4bGEiOmsuYm9va1R5cGV8fChrLmJvb2tUeXBlPSJ4bGEiKTtjYXNlImJpZmY4'@; put 'IjplZT0iL1dvcmtib29rIixrLmJpZmY9ODticmVhaztjYXNlImJpZmY1IjplZT0iL0Jvb2siLGsuYmlmZj01O2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHR5cGUgIitrLmJvb2tUeXBlKyIgZm9yIFhMUyBDRkIiKX1yZXR1cm4gdmUudXRpbHMuY2ZiX2FkZChLLGVl'@; put 'LERJKFMsaykpLDg9PWsuYmlmZiYmKFMuUHJvcHN8fFMuQ3VzdHByb3BzKSYmZnVuY3Rpb24gcW5lKFMsTyl7dmFyIG1lLGs9W10sSz1bXSxlZT1bXSxvZT0wO2lmKFMuUHJvcHMpZm9yKG1lPVJlKFMuUHJvcHMpLG9lPTA7b2U8bWUubGVuZ3RoOysrb2UpKE9iamVjdC5wcm90b3R5cGUuaGFz'@; put 'T3duUHJvcGVydHkuY2FsbChjNSxtZVtvZV0pP2s6T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKENmLG1lW29lXSk/SzplZSkucHVzaChbbWVbb2VdLFMuUHJvcHNbbWVbb2VdXV0pO2lmKFMuQ3VzdHByb3BzKWZvcihtZT1SZShTLkN1c3Rwcm9wcyksb2U9MDtvZTxtZS5s'@; put 'ZW5ndGg7KytvZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoUy5Qcm9wc3x8e30sbWVbb2VdKXx8KE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjNSxtZVtvZV0pP2s6T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKENmLG1lW29l'@; put 'XSk/SzplZSkucHVzaChbbWVbb2VdLFMuQ3VzdHByb3BzW21lW29lXV1dKTt2YXIgcGU9W107Zm9yKG9lPTA7b2U8ZWUubGVuZ3RoOysrb2UpVjYuaW5kZXhPZihlZVtvZV1bMF0pPi0xfHxudWxsIT1lZVtvZV1bMV0mJnBlLnB1c2goZWVbb2VdKTtLLmxlbmd0aCYmdmUudXRpbHMuY2ZiX2Fk'@; put 'ZChPLCIvXHgwNVN1bW1hcnlJbmZvcm1hdGlvbiIsemkoSyxTeS5TSSxDZixsNSkpLChrLmxlbmd0aHx8cGUubGVuZ3RoKSYmdmUudXRpbHMuY2ZiX2FkZChPLCIvXHgwNURvY3VtZW50U3VtbWFyeUluZm9ybWF0aW9uIix6aShrLFN5LkRTSSxjNSxtNCxwZS5sZW5ndGg/cGU6bnVsbCxTeS5V'@; put 'REkpKX0oUyxLKSw4PT1rLmJpZmYmJlMudmJhcmF3JiZmdW5jdGlvbiAkayhTLE8pe08uRnVsbFBhdGhzLmZvckVhY2goZnVuY3Rpb24oayxLKXtpZigwIT1LKXt2YXIgZWU9ay5yZXBsYWNlKC9bXlwvXSpbXC9dLywiL19WQkFfUFJPSkVDVF9DVVIvIik7Ii8iIT09ZWUuc2xpY2UoLTEpJiZ2'@; put 'ZS51dGlscy5jZmJfYWRkKFMsZWUsTy5GaWxlSW5kZXhbS10uY29udGVudCl9fSl9KEssdmUucmVhZChTLnZiYXJhdyx7dHlwZToic3RyaW5nIj09dHlwZW9mIFMudmJhcmF3PyJiaW5hcnkiOiJidWZmZXIifSkpLEt9KFMsayksayl9KFMsayk7Y2FzZSJ4bHN4IjpjYXNlInhsc20iOmNhc2Ui'@; put 'eGxhbSI6Y2FzZSJ4bHNiIjpjYXNlIm9kcyI6cmV0dXJuIGZ1bmN0aW9uIEc1KFMsTyl7dmFyIGs9T3x8e30sSz1IOChTLGspLGVlPXt9O2lmKGsuY29tcHJlc3Npb24mJihlZS5jb21wcmVzc2lvbj0iREVGTEFURSIpLGsucGFzc3dvcmQpZWUudHlwZT1UZT8ibm9kZWJ1ZmZlciI6InN0cmlu'@; put 'ZyI7ZWxzZSBzd2l0Y2goay50eXBlKXtjYXNlImJhc2U2NCI6ZWUudHlwZT0iYmFzZTY0IjticmVhaztjYXNlImJpbmFyeSI6ZWUudHlwZT0ic3RyaW5nIjticmVhaztjYXNlInN0cmluZyI6dGhyb3cgbmV3IEVycm9yKCInc3RyaW5nJyBvdXRwdXQgdHlwZSBpbnZhbGlkIGZvciAnIitrLmJv'@; put 'b2tUeXBlKyInIGZpbGVzIik7Y2FzZSJidWZmZXIiOmNhc2UiZmlsZSI6ZWUudHlwZT1UZT8ibm9kZWJ1ZmZlciI6InN0cmluZyI7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCB0eXBlICIray50eXBlKX12YXIgb2U9Sy5GdWxsUGF0aHM/dmUud3JpdGUoSyx7'@; put 'ZmlsZVR5cGU6InppcCIsdHlwZTp7bm9kZWJ1ZmZlcjoiYnVmZmVyIixzdHJpbmc6ImJpbmFyeSJ9W2VlLnR5cGVdfHxlZS50eXBlfSk6Sy5nZW5lcmF0ZShlZSk7cmV0dXJuIGsucGFzc3dvcmQmJnR5cGVvZiB0VTwidSI/WTUodFUob2Usay5wYXNzd29yZCksayk6ImZpbGUiPT09ay50eXBl'@; put 'P0FlKGsuZmlsZSxvZSk6InN0cmluZyI9PWsudHlwZT9mcyhvZSk6b2V9KFMsayk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBib29rVHlwZSB8IitrLmJvb2tUeXBlKyJ8Iil9fWZ1bmN0aW9uIG9NKFMpe2lmKCFTLmJvb2tUeXBlKXt2YXIgaz1TLmZpbGUuc2xpY2Uo'@; put 'Uy5maWxlLmxhc3RJbmRleE9mKCIuIikpLnRvTG93ZXJDYXNlKCk7ay5tYXRjaCgvXlwuW2Etel0rJC8pJiYoUy5ib29rVHlwZT1rLnNsaWNlKDEpKSxTLmJvb2tUeXBlPXt4bHM6ImJpZmY4IixodG06Imh0bWwiLHNsazoic3lsayIsc29jaWFsY2FsYzoiZXRoIixTaDMzdEpTOiJXVEYifVtT'@; put 'LmJvb2tUeXBlXXx8Uy5ib29rVHlwZX19ZnVuY3Rpb24gVjgoUyxPLGspe3ZhciBLPWt8fHt9O3JldHVybiBLLnR5cGU9ImZpbGUiLEsuZmlsZT1PLG9NKEspLE44KFMsSyl9ZnVuY3Rpb24gY00oUyxPLGssSyxlZSxvZSxtZSxwZSl7dmFyIGJlPWppKGspLFBlPXBlLmRlZnZhbCxWZT1wZS5y'@; put 'YXcsWWU9ITAsZXQ9MT09PWVlP1tdOnt9O2lmKDEhPT1lZSlpZihPYmplY3QuZGVmaW5lUHJvcGVydHkpdHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShldCwiX19yb3dOdW1fXyIse3ZhbHVlOmssZW51bWVyYWJsZTohMX0pfWNhdGNoe2V0Ll9fcm93TnVtX189a31lbHNlIGV0Ll9fcm93TnVt'@; put 'X189aztpZighbWV8fFNba10pZm9yKHZhciBjdD1PLnMuYztjdDw9Ty5lLmM7KytjdCl7dmFyIFR0PW1lP1Nba11bY3RdOlNbS1tjdF0rYmVdO2lmKHZvaWQgMCE9PVR0JiZ2b2lkIDAhPT1UdC50KXt2YXIgaXQ9VHQudjtzd2l0Y2goVHQudCl7Y2FzZSJ6IjppZihudWxsPT1pdClicmVhaztj'@; put 'b250aW51ZTtjYXNlImUiOml0PTA9PWl0P251bGw6dm9pZCAwO2JyZWFrO2Nhc2UicyI6Y2FzZSJkIjpjYXNlImIiOmNhc2UibiI6YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCB0eXBlICIrVHQudCl9aWYobnVsbCE9b2VbY3RdKXtpZihudWxsPT1pdClpZigi'@; put 'ZSI9PVR0LnQmJm51bGw9PT1pdClldFtvZVtjdF1dPW51bGw7ZWxzZSBpZih2b2lkIDAhPT1QZSlldFtvZVtjdF1dPVBlO2Vsc2V7aWYoIVZlfHxudWxsIT09aXQpY29udGludWU7ZXRbb2VbY3RdXT1udWxsfWVsc2UgZXRbb2VbY3RdXT1WZT9pdDp5bChUdCxpdCxwZSk7bnVsbCE9aXQmJihZ'@; put 'ZT0hMSl9fWVsc2V7aWYodm9pZCAwPT09UGUpY29udGludWU7bnVsbCE9b2VbY3RdJiYoZXRbb2VbY3RdXT1QZSl9fXJldHVybntyb3c6ZXQsaXNlbXB0eTpZZX19ZnVuY3Rpb24gSzQoUyxPKXtpZihudWxsPT1TfHxudWxsPT1TWyIhcmVmIl0pcmV0dXJuW107dmFyIGs9e3Q6Im4iLHY6MH0s'@; put 'Sz0wLGVlPTEsb2U9W10sbWU9MCxwZT0iIixiZT1KU09OLnBhcnNlKCd7InMiOnsiciI6MCwiYyI6MH0sImUiOnsiciI6MCwiYyI6MH19JyksUGU9T3x8e30sVmU9bnVsbCE9UGUucmFuZ2U/UGUucmFuZ2U6U1siIXJlZiJdO3N3aXRjaCgxPT09UGUuaGVhZGVyP0s9MToiQSI9PT1QZS5oZWFk'@; put 'ZXI/Sz0yOkFycmF5LmlzQXJyYXkoUGUuaGVhZGVyKT9LPTM6bnVsbD09UGUuaGVhZGVyJiYoSz0wKSx0eXBlb2YgVmUpe2Nhc2Uic3RyaW5nIjpiZT1zcyhWZSk7YnJlYWs7Y2FzZSJudW1iZXIiOihiZT1zcyhTWyIhcmVmIl0pKS5zLnI9VmU7YnJlYWs7ZGVmYXVsdDpiZT1WZX1LPjAmJihl'@; put 'ZT0wKTt2YXIgWWU9amkoYmUucy5yKSxldD1bXSxjdD1bXSxUdD0wLGl0PTAsYnQ9QXJyYXkuaXNBcnJheShTKSxCdD1iZS5zLnIsRHQ9MCxPdD0wO2ZvcihidCYmIVNbQnRdJiYoU1tCdF09W10pLER0PWJlLnMuYztEdDw9YmUuZS5jOysrRHQpc3dpdGNoKGV0W0R0XT1rYShEdCksaz1idD9T'@; put 'W0J0XVtEdF06U1tldFtEdF0rWWVdLEspe2Nhc2UgMTpvZVtEdF09RHQtYmUucy5jO2JyZWFrO2Nhc2UgMjpvZVtEdF09ZXRbRHRdO2JyZWFrO2Nhc2UgMzpvZVtEdF09UGUuaGVhZGVyW0R0LWJlLnMuY107YnJlYWs7ZGVmYXVsdDpmb3IobnVsbD09ayYmKGs9SlNPTi5wYXJzZSgneyJ3Ijog'@; put 'Il9fRU1QVFkiLCAidCI6ICJzIn0nKSkscGU9bWU9eWwoayxudWxsLFBlKSxpdD0wLE90PTA7T3Q8b2UubGVuZ3RoOysrT3Qpb2VbT3RdPT1wZSYmKHBlPW1lKyJfIisgKytpdCk7b2VbRHRdPXBlfWZvcihCdD1iZS5zLnIrZWU7QnQ8PWJlLmUucjsrK0J0KXt2YXIgS3Q9Y00oUyxiZSxCdCxl'@; put 'dCxLLG9lLGJ0LFBlKTsoITE9PT1LdC5pc2VtcHR5fHwoMT09PUs/ITEhPT1QZS5ibGFua3Jvd3M6UGUuYmxhbmtyb3dzKSkmJihjdFtUdCsrXT1LdC5yb3cpfXJldHVybiBjdC5sZW5ndGg9VHQsY3R9dmFyIEMyPS8iL2c7ZnVuY3Rpb24gVUkoUyxPLGssSyxlZSxvZSxtZSxwZSl7Zm9yKHZh'@; put 'ciBiZT0hMCxQZT1bXSxWZT0iIixZZT1qaShrKSxldD1PLnMuYztldDw9Ty5lLmM7KytldClpZihLW2V0XSl7dmFyIGN0PXBlLmRlbnNlPyhTW2tdfHxbXSlbZXRdOlNbS1tldF0rWWVdO2lmKG51bGw9PWN0KVZlPSIiO2Vsc2UgaWYobnVsbCE9Y3Qudil7YmU9ITEsVmU9IiIreWwoY3QsbnVs'@; put 'bCxwZSk7Zm9yKHZhciBUdD0wLGl0PTA7VHQhPT1WZS5sZW5ndGg7KytUdClpZigoaXQ9VmUuY2hhckNvZGVBdChUdCkpPT09ZWV8fGl0PT09b2V8fDM0PT09aXQpe1ZlPSciJytWZS5yZXBsYWNlKEMyLCciIicpKyciJzticmVha30iSUQiPT1WZSYmKFZlPSciSUQiJyl9ZWxzZSBudWxsPT1j'@; put 'dC5mfHxjdC5GP1ZlPSIiOihiZT0hMSwoVmU9Ij0iK2N0LmYpLmluZGV4T2YoIiwiKT49MCYmKFZlPSciJytWZS5yZXBsYWNlKEMyLCciIicpKyciJykpO1BlLnB1c2goVmUpfXJldHVybiExPT09cGUuYmxhbmtyb3dzJiZiZT9udWxsOlBlLmpvaW4obWUpfWZ1bmN0aW9uIGIwKFMsTyl7dmFy'@; put 'IGs9W10sSz1PPz97fTtpZihudWxsPT1TfHxudWxsPT1TWyIhcmVmIl0pcmV0dXJuIiI7dmFyIGVlPXNzKFNbIiFyZWYiXSksb2U9dm9pZCAwIT09Sy5GUz9LLkZTOiIsIixtZT1vZS5jaGFyQ29kZUF0KDApLHBlPXZvaWQgMCE9PUsuUlM/Sy5SUzoiXG4iLGJlPXBlLmNoYXJDb2RlQXQoMCks'@; put 'UGU9bmV3IFJlZ0V4cCgoInwiPT1vZT8iXFx8IjpvZSkrIiskIiksVmU9IiIsWWU9W107Sy5kZW5zZT1BcnJheS5pc0FycmF5KFMpO2Zvcih2YXIgZXQ9Sy5za2lwSGlkZGVuJiZTWyIhY29scyJdfHxbXSxjdD1LLnNraXBIaWRkZW4mJlNbIiFyb3dzIl18fFtdLFR0PWVlLnMuYztUdDw9ZWUu'@; put 'ZS5jOysrVHQpKGV0W1R0XXx8e30pLmhpZGRlbnx8KFllW1R0XT1rYShUdCkpO2Zvcih2YXIgaXQ9ZWUucy5yO2l0PD1lZS5lLnI7KytpdCkoY3RbaXRdfHx7fSkuaGlkZGVufHxudWxsIT0oVmU9VUkoUyxlZSxpdCxZZSxtZSxiZSxvZSxLKSkmJihLLnN0cmlwJiYoVmU9VmUucmVwbGFjZShQ'@; put 'ZSwiIikpLGsucHVzaChWZStwZSkpO3JldHVybiBkZWxldGUgSy5kZW5zZSxrLmpvaW4oIiIpfWZ1bmN0aW9uIFpJKFMsTyl7T3x8KE89e30pLE8uRlM9Ilx0IixPLlJTPSJcbiI7dmFyIGs9YjAoUyxPKTtyZXR1cm4gdHlwZW9mIGNwdGFibGU+InUifHwic3RyaW5nIj09Ty50eXBlP2s6Ilx4'@; put 'ZmZceGZlIitjcHRhYmxlLnV0aWxzLmVuY29kZSgxMjAwLGssInN0ciIpfWZ1bmN0aW9uIHVNKFMpe3ZhciBrLE89IiIsSz0iIjtpZihudWxsPT1TfHxudWxsPT1TWyIhcmVmIl0pcmV0dXJuW107dmFyIHBlLGVlPXNzKFNbIiFyZWYiXSksb2U9IiIsbWU9W10sYmU9W10sUGU9QXJyYXkuaXNB'@; put 'cnJheShTKTtmb3IocGU9ZWUucy5jO3BlPD1lZS5lLmM7KytwZSltZVtwZV09a2EocGUpO2Zvcih2YXIgVmU9ZWUucy5yO1ZlPD1lZS5lLnI7KytWZSlmb3Iob2U9amkoVmUpLHBlPWVlLnMuYztwZTw9ZWUuZS5jOysrcGUpaWYoTz1tZVtwZV0rb2UsSz0iIix2b2lkIDAhPT0oaz1QZT8oU1tW'@; put 'ZV18fFtdKVtwZV06U1tPXSkpe2lmKG51bGwhPWsuRil7aWYoTz1rLkYsIWsuZiljb250aW51ZTtLPWsuZiwtMT09Ty5pbmRleE9mKCI6IikmJihPPU8rIjoiK08pfWlmKG51bGwhPWsuZilLPWsuZjtlbHNle2lmKCJ6Ij09ay50KWNvbnRpbnVlO2lmKCJuIj09ay50JiZudWxsIT1rLnYpSz0i'@; put 'IitrLnY7ZWxzZSBpZigiYiI9PWsudClLPWsudj8iVFJVRSI6IkZBTFNFIjtlbHNlIGlmKHZvaWQgMCE9PWsudylLPSInIitrLnc7ZWxzZXtpZih2b2lkIDA9PT1rLnYpY29udGludWU7Sz0icyI9PWsudD8iJyIray52OiIiK2sudn19YmVbYmUubGVuZ3RoXT1PKyI9IitLfXJldHVybiBiZX1m'@; put 'dW5jdGlvbiBGeShTLE8sayl7dmFyIEs9a3x8e30sZWU9KyFLLnNraXBIZWFkZXIsb2U9U3x8e30sbWU9MCxwZT0wO2lmKG9lJiZudWxsIT1LLm9yaWdpbilpZigibnVtYmVyIj09dHlwZW9mIEsub3JpZ2luKW1lPUsub3JpZ2luO2Vsc2V7dmFyIGJlPSJzdHJpbmciPT10eXBlb2YgSy5vcmln'@; put 'aW4/VnMoSy5vcmlnaW4pOksub3JpZ2luO21lPWJlLnIscGU9YmUuY312YXIgUGUsVmU9SlNPTi5wYXJzZSgneyJzIjogeyJjIjowLCAiciI6MH0sICJlIjogeyJjIjowLCAiciI6MH19Jyk7aWYoVmUuZS5jPXBlLFZlLmUucj1tZStPLmxlbmd0aC0xK2VlLG9lWyIhcmVmIl0pe3ZhciBZZT1z'@; put 'cyhvZVsiIXJlZiJdKTtWZS5lLmM9TWF0aC5tYXgoVmUuZS5jLFllLmUuYyksVmUuZS5yPU1hdGgubWF4KFZlLmUucixZZS5lLnIpLC0xPT1tZSYmKFZlLmUucj0obWU9WWUuZS5yKzEpK08ubGVuZ3RoLTErZWUpfWVsc2UtMT09bWUmJihtZT0wLFZlLmUucj1PLmxlbmd0aC0xK2VlKTt2YXIg'@; put 'ZXQ9Sy5oZWFkZXJ8fFtdLGN0PTA7Ty5mb3JFYWNoKGZ1bmN0aW9uKGl0LGJ0KXtSZShpdCkuZm9yRWFjaChmdW5jdGlvbihCdCl7LTE9PShjdD1ldC5pbmRleE9mKEJ0KSkmJihldFtjdD1ldC5sZW5ndGhdPUJ0KTt2YXIgRHQ9aXRbQnRdLE90PSJ6IixLdD0iIixUbj1xaSh7YzpwZStjdCxy'@; put 'Om1lK2J0K2VlfSk7aWYoUGU9VnUuc2hlZXRfZ2V0X2NlbGwob2UsVG4pLCFEdHx8Im9iamVjdCIhPXR5cGVvZiBEdHx8RHQgaW5zdGFuY2VvZiBEYXRlKXtpZigibnVtYmVyIj09dHlwZW9mIER0P090PSJuIjoiYm9vbGVhbiI9PXR5cGVvZiBEdD9PdD0iYiI6InN0cmluZyI9PXR5cGVvZiBE'@; put 'dD9PdD0icyI6RHQgaW5zdGFuY2VvZiBEYXRlPyhPdD0iZCIsSy5jZWxsRGF0ZXN8fChPdD0ibiIsRHQ9SmUoRHQpKSxLdD1QZS56JiZBLmlzX2RhdGUoUGUueik/UGUuejpLLmRhdGVORnx8QS5fdGFibGVbMTRdKTpudWxsPT09RHQmJksubnVsbEVycm9yJiYoT3Q9ImUiLER0PTApLFBlPyhQ'@; put 'ZS50PU90LFBlLnY9RHQsZGVsZXRlIFBlLncsZGVsZXRlIFBlLlIsS3QmJihQZS56PUt0KSk6b2VbVG5dPVBlPXt0Ok90LHY6RHR9LEt0JiYoUGUuej1LdCksUGUmJlBlLmgpdHJ5e2lmKFBlLlI9dmQuaHRtbF90b19ycyhQZS5oKSwhUGUudil7UGUudj0iIjtmb3IodmFyIHNyPTA7c3I8UGUu'@; put 'Ui5sZW5ndGg7KytzcilQZS52Kz1QZS5SW3NyXS52fHwiIn19Y2F0Y2h7fX1lbHNlIG9lW1RuXT1EdH0pfSksVmUuZS5jPU1hdGgubWF4KFZlLmUuYyxwZStldC5sZW5ndGgtMSk7dmFyIFR0PWppKG1lKTtpZihlZSlmb3IoY3Q9MDtjdDxldC5sZW5ndGg7KytjdClvZVtrYShjdCtwZSkrVHRd'@; put 'PXt0OiJzIix2OmV0W2N0XX07cmV0dXJuIG9lWyIhcmVmIl09cmEoVmUpLG9lfXZhciBWdT17ZW5jb2RlX2NvbDprYSxlbmNvZGVfcm93OmppLGVuY29kZV9jZWxsOnFpLGVuY29kZV9yYW5nZTpyYSxkZWNvZGVfY29sOlNhLGRlY29kZV9yb3c6YnMsc3BsaXRfY2VsbDpmdW5jdGlvbiBHMChT'@; put 'KXtyZXR1cm4gUy5yZXBsYWNlKC8oXCQ/W0EtWl0qKShcJD9cZCopLywiJDEsJDIiKS5zcGxpdCgiLCIpfSxkZWNvZGVfY2VsbDpWcyxkZWNvZGVfcmFuZ2U6U28sZm9ybWF0X2NlbGw6eWwsZ2V0X2Zvcm11bGFlOnVNLG1ha2VfY3N2OmIwLG1ha2VfanNvbjpLNCxtYWtlX2Zvcm11bGFlOnVN'@; put 'LGh0bWxfdG9fcnM6dmQuaHRtbF90b19ycyxzaGVldF9hZGRfYW9hOmY0LHNoZWV0X2FkZF9qc29uOkZ5LHNoZWV0X2FkZF9kb206VHksYW9hX3RvX3NoZWV0OnA0LGpzb25fdG9fc2hlZXQ6ZnVuY3Rpb24gV0koUyxPKXtyZXR1cm4gRnkobnVsbCxTLE8pfSx0YWJsZV90b19zaGVldDpXeix0'@; put 'YWJsZV90b19ib29rOmZ1bmN0aW9uIFl6KFMsTyl7cmV0dXJuIHRoKFd6KFMsTyksTyl9LHNoZWV0X3RvX2NzdjpiMCxzaGVldF90b190eHQ6Wkksc2hlZXRfdG9fanNvbjpLNCxzaGVldF90b19odG1sOnZkLmZyb21fc2hlZXQsc2hlZXRfdG9fZm9ybXVsYWU6dU0sc2hlZXRfdG9fcm93X29i'@; put 'amVjdF9hcnJheTpLNH07ZnVuY3Rpb24gWUkoUyxPLGssSyxlZSl7dmFyIG9lO2lmKFMuc3R5bGUmJiEoUy5fcmFuZ2UmJihvZT0ic3RyaW5nIj09dHlwZW9mIFMuX3JhbmdlP3cudXRpbHMuZGVjb2RlX3JhbmdlKFMuX3JhbmdlKTpTLl9yYW5nZSxrLmM+b2UuZS5jfHxrLmM8b2Uucy5jfHxr'@; put 'LnI+b2UuZS5yfHxrLnI8b2Uucy5yKSkmJm9lKXt2YXIgbWU9Uy5zdHlsZS5zdHlsZTtpZihtZSl7bWUud2hvbGVUYWJsZSYmVnUuYXBwbHlfc3R5bGVfZGVsdGEoSyxtZS53aG9sZVRhYmxlKTtlOmlmKG1lLmhlYWRlclJvdylpZihlZSl7aWYoay5yIT1vZS5zLnIpYnJlYWsgZTtadChTLnN0'@; put 'eWxlLmNvbGhlYWQpfHxWdS5hcHBseV9zdHlsZV9kZWx0YShLLG1lLmhlYWRlclJvdyl9ZWxzZXtpZihrLnIhPW9lLnMucilicmVhayBlO1p0KFMuaGVhZGVyKXx8VnUuYXBwbHlfc3R5bGVfZGVsdGEoSyxtZS5oZWFkZXJSb3cpfX19fVZ1LnRlc3RfcGFzc3dvcmQ9ZnVuY3Rpb24gUXooUyxP'@; put 'KXt2YXIgaz1CdWZmZXIuZnJvbShTLnNhbHQsImJhc2U2NCIpLEs9Uy5hbGdvLGVlPXBjKEJ1ZmZlci5jb25jYXQoW2ssQnVmZmVyLmZyb20oY3B0YWJsZS51dGlscy5lbmNvZGUoMTIwMCxPKSldKSxLKSxvZT1CdWZmZXIuYWxsb2MoNCk7Z24ob2UsMCk7Zm9yKHZhciBtZT0wO21lPFMuc3Bp'@; put 'bjsrK21lKW9lLmw9MCxvZS53cml0ZV9zaGlmdCg0LG1lKSxlZT1wYyhCdWZmZXIuY29uY2F0KFtlZSxvZV0pLEspO3ZhciBwZT1CdWZmZXIuZnJvbShTLmhhc2gsImJhc2U2NCIpO3JldHVybiAwPT1lZS5jb21wYXJlKHBlKX0sVnUuaGFzaF9wYXNzd29yZD1mdW5jdGlvbiBBeShTKXt2YXIg'@; put 'Tz17YWxnbzoiU0hBLTUxMiIsc2FsdDoiVTJobFpYUktVeTVqYjIwdmVHeHplQT09IixzcGluOjFlM30saz1CdWZmZXIuZnJvbShPLnNhbHQsImJhc2U2NCIpLEs9Ty5hbGdvLGVlPXBjKEJ1ZmZlci5jb25jYXQoW2ssQnVmZmVyLmZyb20oY3B0YWJsZS51dGlscy5lbmNvZGUoMTIwMCxTKSld'@; put 'KSxLKSxvZT1CdWZmZXIuYWxsb2MoNCk7Z24ob2UsMCk7Zm9yKHZhciBtZT0wO21lPE8uc3BpbjsrK21lKW9lLmw9MCxvZS53cml0ZV9zaGlmdCg0LG1lKSxlZT1wYyhCdWZmZXIuY29uY2F0KFtlZSxvZV0pLEspO3JldHVybiBPLmhhc2g9ZWUudG9TdHJpbmcoImJhc2U2NCIpLE99LFZ1LnNo'@; put 'ZWV0X3NldF9yYW5nZV9zdHlsZT1mdW5jdGlvbihTLE8sayl7aWYoayl7dmFyIEs9InN0cmluZyI9PXR5cGVvZiBPP3NzKE8pOk87bnVsbCE9Sy5yJiZudWxsIT1LLmMmJihLPXtzOkssZTpLfSk7dmFyIHBlLGVlPUsucy5yLG9lPTAsbWU9IiIsYmU9U28oU1siIXJlZiJdfHwiQTEiKTtiZS5z'@; put 'LnI+Sy5zLnImJihiZS5zLnI9Sy5zLnIpLGJlLnMuYz5LLnMuYyYmKGJlLnMuYz1LLnMuYyksYmUuZS5yPEsuZS5yJiYoYmUuZS5yPUsuZS5yKSxiZS5lLmM8Sy5lLmMmJihiZS5lLmM9Sy5lLmMpLFNbIiFyZWYiXT1yYShiZSk7Zm9yKHZhciBWZT1BcnJheS5pc0FycmF5KFMpO2VlPD1LLmUu'@; put 'cjsrK2VlKWZvcihvZT1LLnMuYztvZTw9Sy5lLmM7KytvZSlWZT8oU1tlZV18fChTW2VlXT1bXSksU1tlZV1bb2VdfHwoU1tlZV1bb2VdPXt0OiJ6In0pLHBlPVNbZWVdW29lXSk6KFNbbWU9cWkoe3I6ZWUsYzpvZX0pXXx8KFNbbWVdPXt0OiJ6In0pLHBlPVNbbWVdKSxwZS5zfHwocGUucz17'@; put 'fSksT2JqZWN0LmtleXMoaykuZm9yRWFjaChQZSkscGUucy5wYXR0ZXJuVHlwZSYmIXBlLnMuZmdDb2xvciYmKGRlbGV0ZSBwZS5zLnBhdHRlcm5UeXBlLGRlbGV0ZSBwZS5zLmJnQ29sb3IpLChwZS5zLmZnQ29sb3J8fHBlLnMuYmdDb2xvcikmJiJub25lIj09KHBlLnMucGF0dGVyblR5cGV8'@; put 'fCJub25lIikmJihwZS5zLnBhdHRlcm5UeXBlPSJzb2xpZCIpO2lmKGVlPUsucy5yLGsudG9wfHxudWxsPT09ay50b3ApZm9yKG9lPUsucy5jO29lPD1LLmUuYzsrK29lKXtpZihWZSl7aWYoIVNbZWVdKWNvbnRpbnVlO3BlPVNbZWVdW29lXX1lbHNlIG1lPXFpKHtyOmVlLGM6b2V9KSxwZT1T'@; put 'W21lXTtwZSYmKG51bGw9PT1rLnRvcD9kZWxldGUgcGUucy50b3A6cGUucy50b3A9SnQoay50b3ApKX1pZihlZT1LLmUucixrLmJvdHRvbXx8bnVsbD09PWsuYm90dG9tKWZvcihvZT1LLnMuYztvZTw9Sy5lLmM7KytvZSl7aWYoVmUpe2lmKCFTW2VlXSljb250aW51ZTtwZT1TW2VlXVtvZV19'@; put 'ZWxzZSBtZT1xaSh7cjplZSxjOm9lfSkscGU9U1ttZV07cGUmJihudWxsPT09ay5ib3R0b20/ZGVsZXRlIHBlLnMuYm90dG9tOnBlLnMuYm90dG9tPUp0KGsuYm90dG9tKSl9aWYob2U9Sy5zLmMsay5sZWZ0fHxudWxsPT09ay5sZWZ0KWZvcihlZT1LLnMucjtlZTw9Sy5lLnI7KytlZSl7aWYo'@; put 'VmUpe2lmKCFTW2VlXSljb250aW51ZTtwZT1TW2VlXVtvZV19ZWxzZSBtZT1xaSh7cjplZSxjOm9lfSkscGU9U1ttZV07cGUmJihudWxsPT09ay5sZWZ0P2RlbGV0ZSBwZS5zLmxlZnQ6cGUucy5sZWZ0PUp0KGsubGVmdCkpfWlmKG9lPUsuZS5jLGsucmlnaHR8fG51bGw9PT1rLnJpZ2h0KWZv'@; put 'cihlZT1LLnMucjtlZTw9Sy5lLnI7KytlZSl7aWYoVmUpe2lmKCFTW2VlXSljb250aW51ZTtwZT1TW2VlXVtvZV19ZWxzZSBtZT1xaSh7cjplZSxjOm9lfSkscGU9U1ttZV07cGUmJihudWxsPT09ay5yaWdodD9kZWxldGUgcGUucy5yaWdodDpwZS5zLnJpZ2h0PUp0KGsucmlnaHQpKX19ZnVu'@; put 'Y3Rpb24gUGUoWWUpe2lmKCJ0b3AiIT1ZZSYmImJvdHRvbSIhPVllJiYibGVmdCIhPVllJiYicmlnaHQiIT1ZZSl7aWYoInoiPT1ZZSlyZXR1cm4gdm9pZChwZS56PWsueik7aWYoImFsaWdubWVudCI9PVllKXJldHVybiB2b2lkKHBlLnNbWWVdP09iamVjdC5rZXlzKGtbWWVdKS5mb3JFYWNo'@; put 'KGZ1bmN0aW9uKGV0KXtwZS5zW1llXVtldF09a1tZZV1bZXRdfSk6cGUuc1tZZV09SnQoa1tZZV0pKTtpZigiaW5jb2wiPT1ZZSlyZXR1cm4gb2U+Sy5zLmMmJihudWxsPT09ay5sZWZ0P2RlbGV0ZSBwZS5zLmxlZnQ6cGUucy5sZWZ0PSJvYmplY3QiPT10eXBlb2Yga1tZZV0/SnQoa1tZZV0p'@; put 'OmtbWWVdKSx2b2lkKG9lPEsuZS5jJiYobnVsbD09PWsucmlnaHQ/ZGVsZXRlIHBlLnMucmlnaHQ6cGUucy5yaWdodD0ib2JqZWN0Ij09dHlwZW9mIGtbWWVdP0p0KGtbWWVdKTprW1llXSkpO2lmKCJpbnJvdyI9PVllKXJldHVybiBlZT5LLnMuciYmKG51bGw9PT1rLnRvcD9kZWxldGUgcGUu'@; put 'cy50b3A6cGUucy50b3A9Im9iamVjdCI9PXR5cGVvZiBrW1llXT9KdChrW1llXSk6a1tZZV0pLHZvaWQoZWU8Sy5lLnImJihudWxsPT09ay5ib3R0b20/ZGVsZXRlIHBlLnMuYm90dG9tOnBlLnMuYm90dG9tPSJvYmplY3QiPT10eXBlb2Yga1tZZV0/SnQoa1tZZV0pOmtbWWVdKSk7bnVsbD09'@; put 'PWtbWWVdP2RlbGV0ZSBwZS5zW1llXTpwZS5zW1llXT1rW1llXSYmQXJyYXkuaXNBcnJheShrW1llXSk/a1tZZV0uc2xpY2UoKS5tYXAoZnVuY3Rpb24oZXQpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZXQ/SnQoZXQpOmV0fSk6Im9iamVjdCI9PXR5cGVvZiBrW1llXT9KdChrW1llXSk6a1tZ'@; put 'ZV19fX0sVnUuYXBwbHlfc3R5bGVfZGVsdGE9ZnVuY3Rpb24oUyxPKXtbInN6IiwiYm9sZCIsIml0YWxpYyIsInVuZGVybGluZSIsInN0cmlrZSIsIm5hbWUiLCJ2YWxpZ24iXS5mb3JFYWNoKGZ1bmN0aW9uKGspe3ZhciBLPWs7ImJnQ29sb3IiPT1rP0s9ImZnQ29sb3IiOiJmZ0NvbG9yIj09'@; put 'ayYmKEs9ImJnQ29sb3IiKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTyxrKSYmKG51bGw9PT1PW2tdP2RlbGV0ZSBTW0tdOm51bGwhPU9ba10mJihTW0tdPU9ba10pKX0pLFsibGVmdCIsInJpZ2h0IiwidG9wIiwiYm90dG9tIiwiYWxpZ25tZW50IiwicHJvdGVjdGlv'@; put 'biIsImNvbG9yIiwiZmdDb2xvciIsImJnQ29sb3IiXS5mb3JFYWNoKGZ1bmN0aW9uKGspe09iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChPLGspJiYobnVsbD09PU9ba10/ZGVsZXRlIFNba106bnVsbCE9T1trXSYmKFNba109SnQoT1trXSkpKX0pfSxWdS5nZXRfY29tcHV0'@; put 'ZWRfc3R5bGU9ZnVuY3Rpb24oUyxPKXsic3RyaW5nIj09dHlwZW9mIE8mJihPPXcudXRpbHMuZGVjb2RlX2NlbGwoTykpO3ZhciBrPUFycmF5LmlzQXJyYXkoUyk/KFNbTy5yXXx8W10pW08uY106U1t3LnV0aWxzLmVuY29kZV9jZWxsKE8pXSxLPUp0KGsmJmsuc3x8e30pO3JldHVybiBTWyIh'@; put 'dGFibGVzIl0mJlNbIiF0YWJsZXMiXS5mb3JFYWNoKGZ1bmN0aW9uKGVlKXtZSShlZSwwLE8sSyl9KSxTWyIhcGl2b3RzIl0mJlNbIiFwaXZvdHMiXS5mb3JFYWNoKGZ1bmN0aW9uKGVlKXtZSShlZSwwLE8sSywhMCl9KSxLfTt2YXIgTnk9e307VnUuY2VsbF9hcnJheV90b19jc3Zfcm93PWZ1'@; put 'bmN0aW9uKFMsTyl7dmFyIGs9Tz8/e30sSz12b2lkIDAhPT1rLkZTP2suRlM6IiwiLGVlPUsuY2hhckNvZGVBdCgwKSxvZT12b2lkIDAhPT1rLlJTP2suUlM6IlxuIixtZT1vZS5jaGFyQ29kZUF0KDApLHBlPU55W0tdfHwoTnlbS109bmV3IFJlZ0V4cCgoInwiPT1LPyJcXHwiOkspKyIrJCIp'@; put 'KSxiZT1mdW5jdGlvbiBIeShTLE8sayxLLGVlKXtmb3IodmFyIG9lPSEwLG1lPVtdLHBlPSIiLGJlPTA7YmU8PVMubGVuZ3RoLTE7KytiZSl7dmFyIFBlPVNbYmVdO2lmKG51bGw9PVBlKXBlPSIiO2Vsc2UgaWYobnVsbCE9UGUudil7b2U9ITEscGU9IiIreWwoUGUsbnVsbCxlZSk7Zm9yKHZh'@; put 'ciBWZT0wLFllPTA7VmUhPT1wZS5sZW5ndGg7KytWZSlpZigoWWU9cGUuY2hhckNvZGVBdChWZSkpPT09T3x8WWU9PT1rfHwzND09PVllKXtwZT0nIicrcGUucmVwbGFjZShDMiwnIiInKSsnIic7YnJlYWt9IklEIj09cGUmJihwZT0nIklEIicpfWVsc2UgbnVsbD09UGUuZnx8UGUuRj9wZT0i'@; put 'Ijoob2U9ITEsKHBlPSI9IitQZS5mKS5pbmRleE9mKCIsIik+PTAmJihwZT0nIicrcGUucmVwbGFjZShDMiwnIiInKSsnIicpKTttZS5wdXNoKHBlKX1yZXR1cm4hMT09PWVlLmJsYW5rcm93cyYmb2U/bnVsbDptZS5qb2luKEspfShTLGVlLG1lLEssayk7cmV0dXJuIGsuc3RyaXAmJihiZT1i'@; put 'ZS5yZXBsYWNlKHBlLCIiKSksYmUrb2V9LGZ1bmN0aW9uKFMpe2Z1bmN0aW9uIGsob2UsbWUscGUpe3JldHVybiBudWxsIT1vZVttZV0/b2VbbWVdOm9lW21lXT1wZX1mdW5jdGlvbiBLKG9lLG1lLHBlKXtpZigic3RyaW5nIj09dHlwZW9mIG1lKXtpZihBcnJheS5pc0FycmF5KG9lKSl7dmFy'@; put 'IGJlPVZzKG1lKTtyZXR1cm4gb2VbYmUucl18fChvZVtiZS5yXT1bXSksb2VbYmUucl1bYmUuY118fChvZVtiZS5yXVtiZS5jXT17dDoieiJ9KX1yZXR1cm4gb2VbbWVdfHwob2VbbWVdPXt0OiJ6In0pfXJldHVybiBLKG9lLHFpKCJudW1iZXIiIT10eXBlb2YgbWU/bWU6e3I6bWUsYzpwZXx8'@; put 'MH0pKX1TLmNvbnN0cz1TLmNvbnN0c3x8e30sUy5zaGVldF9nZXRfY2VsbD1LLFMuYm9va19uZXc9ZnVuY3Rpb24oKXtyZXR1cm57U2hlZXROYW1lczpbXSxTaGVldHM6e319fSxTLmJvb2tfYXBwZW5kX3NoZWV0PWZ1bmN0aW9uKG9lLG1lLHBlKXtpZighcGUpZm9yKHZhciBiZT0xO2JlPD02'@; put 'NTUzNSYmLTEhPW9lLlNoZWV0TmFtZXMuaW5kZXhPZihwZT0iU2hlZXQiK2JlKTsrK2JlKTtpZihteShwZSksb2UuU2hlZXROYW1lcy5pbmRleE9mKHBlKT49MCl0aHJvdyBuZXcgRXJyb3IoIldvcmtzaGVldCB3aXRoIG5hbWUgfCIrcGUrInwgYWxyZWFkeSBleGlzdHMhIik7b2UuU2hlZXRO'@; put 'YW1lcy5wdXNoKHBlKSxvZS5TaGVldHNbcGVdPW1lfSxTLmJvb2tfc2V0X3NoZWV0X3Zpc2liaWxpdHk9ZnVuY3Rpb24ob2UsbWUscGUpe2sob2UsIldvcmtib29rIix7fSksayhvZS5Xb3JrYm9vaywiU2hlZXRzIixbXSk7dmFyIGJlPWZ1bmN0aW9uIGVlKG9lLG1lKXtpZigibnVtYmVyIj09'@; put 'dHlwZW9mIG1lKXtpZihtZT49MCYmb2UuU2hlZXROYW1lcy5sZW5ndGg+bWUpcmV0dXJuIG1lO3Rocm93IG5ldyBFcnJvcigiQ2Fubm90IGZpbmQgc2hlZXQgIyAiK21lKX1pZigic3RyaW5nIj09dHlwZW9mIG1lKXt2YXIgcGU9b2UuU2hlZXROYW1lcy5pbmRleE9mKG1lKTtpZihwZT4tMSly'@; put 'ZXR1cm4gcGU7dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZmluZCBzaGVldCBuYW1lIHwiK21lKyJ8Iil9dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZmluZCBzaGVldCB8IittZSsifCIpfShvZSxtZSk7c3dpdGNoKGsob2UuV29ya2Jvb2suU2hlZXRzLGJlLHt9KSxwZSl7Y2FzZSAwOmNhc2Ug'@; put 'MTpjYXNlIDI6YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkJhZCBzaGVldCB2aXNpYmlsaXR5IHNldHRpbmcgIitwZSl9b2UuV29ya2Jvb2suU2hlZXRzW2JlXS5IaWRkZW49cGV9LGZ1bmN0aW9uIE8ob2Upe29lLmZvckVhY2goZnVuY3Rpb24obWUpe1MuY29uc3RzW21lWzBdXT1t'@; put 'ZVsxXX0pfShbWyJTSEVFVF9WSVNJQkxFIiwwXSxbIlNIRUVUX0hJRERFTiIsMV0sWyJTSEVFVF9WRVJZX0hJRERFTiIsMl1dKSxTLmNlbGxfc2V0X251bWJlcl9mb3JtYXQ9ZnVuY3Rpb24ob2UsbWUpe3JldHVybiBvZS56PW1lLG9lfSxTLmNlbGxfc2V0X2h5cGVybGluaz1mdW5jdGlvbihv'@; put 'ZSxtZSxwZSl7cmV0dXJuIG1lPyhvZS5sPXtUYXJnZXQ6bWV9LHBlJiYob2UubC5Ub29sdGlwPXBlKSxvZS5zfHwob2Uucz17fSksb2Uucy5jb2xvcj17dGhlbWU6MTB9KTooZGVsZXRlIG9lLmwsb2UucyYmb2Uucy5jb2xvciYmMTA9PW9lLnMuY29sb3IudGhlbWUmJmRlbGV0ZSBvZS5zLmNv'@; put 'bG9yKSxvZX0sUy5jZWxsX3NldF9pbnRlcm5hbF9saW5rPWZ1bmN0aW9uKG9lLG1lLHBlKXtyZXR1cm4gUy5jZWxsX3NldF9oeXBlcmxpbmsob2UsIiMiK21lLHBlKX0sUy5jZWxsX2FkZF9jb21tZW50PWZ1bmN0aW9uKG9lLG1lLHBlKXtvZS5jfHwob2UuYz1bXSksb2UuYy5wdXNoKHt0Om1l'@; put 'LGE6cGV8fCJTaGVldEpTIn0pfSxTLnNoZWV0X3NldF9hcnJheV9mb3JtdWxhPWZ1bmN0aW9uKG9lLG1lLHBlKXtmb3IodmFyIGJlPSJzdHJpbmciIT10eXBlb2YgbWU/bWU6c3MobWUpLFBlPSJzdHJpbmciPT10eXBlb2YgbWU/bWU6cmEobWUpLFZlPWJlLnMucjtWZTw9YmUuZS5yOysrVmUp'@; put 'Zm9yKHZhciBZZT1iZS5zLmM7WWU8PWJlLmUuYzsrK1llKXt2YXIgZXQ9SyhvZSxWZSxZZSk7ZXQudD0ibiIsZXQuRj1QZSxkZWxldGUgZXQudixWZT09YmUucy5yJiZZZT09YmUucy5jJiYoZXQuZj1wZSl9cmV0dXJuIG9lfX0oVnUpLFRlJiZmdW5jdGlvbigpe3ZhciBTPWIoNzA0NSkuUmVh'@; put 'ZGFibGU7dy5zdHJlYW09e3RvX2pzb246ZnVuY3Rpb24oZWUsb2Upe3ZhciBtZT1TKHtvYmplY3RNb2RlOiEwfSk7aWYobnVsbD09ZWV8fG51bGw9PWVlWyIhcmVmIl0pcmV0dXJuIG1lLnB1c2gobnVsbCksbWU7dmFyIHBlPXt0OiJuIix2OjB9LGJlPTAsUGU9MSxWZT1bXSxZZT0wLGV0PSIi'@; put 'LGN0PXtzOntyOjAsYzowfSxlOntyOjAsYzowfX0sVHQ9b2V8fHt9LGl0PW51bGwhPVR0LnJhbmdlP1R0LnJhbmdlOmVlWyIhcmVmIl07c3dpdGNoKDE9PT1UdC5oZWFkZXI/YmU9MToiQSI9PT1UdC5oZWFkZXI/YmU9MjpBcnJheS5pc0FycmF5KFR0LmhlYWRlcikmJihiZT0zKSx0eXBlb2Yg'@; put 'aXQpe2Nhc2Uic3RyaW5nIjpjdD1zcyhpdCk7YnJlYWs7Y2FzZSJudW1iZXIiOihjdD1zcyhlZVsiIXJlZiJdKSkucy5yPWl0O2JyZWFrO2RlZmF1bHQ6Y3Q9aXR9YmU+MCYmKFBlPTApO3ZhciBidD1qaShjdC5zLnIpLEJ0PVtdLER0PTAsT3Q9QXJyYXkuaXNBcnJheShlZSksS3Q9Y3Qucy5y'@; put 'LFRuPTAsc3I9MDtmb3IoT3QmJiFlZVtLdF0mJihlZVtLdF09W10pLFRuPWN0LnMuYztUbjw9Y3QuZS5jOysrVG4pc3dpdGNoKEJ0W1RuXT1rYShUbikscGU9T3Q/ZWVbS3RdW1RuXTplZVtCdFtUbl0rYnRdLGJlKXtjYXNlIDE6VmVbVG5dPVRuLWN0LnMuYzticmVhaztjYXNlIDI6VmVbVG5d'@; put 'PUJ0W1RuXTticmVhaztjYXNlIDM6VmVbVG5dPVR0LmhlYWRlcltUbi1jdC5zLmNdO2JyZWFrO2RlZmF1bHQ6Zm9yKG51bGw9PXBlJiYocGU9e3c6Il9fRU1QVFkiLHQ6InMifSksZXQ9WWU9eWwocGUsbnVsbCxUdCksRHQ9MCxzcj0wO3NyPFZlLmxlbmd0aDsrK3NyKVZlW3NyXT09ZXQmJihl'@; put 'dD1ZZSsiXyIrICsrRHQpO1ZlW1RuXT1ldH1yZXR1cm4gS3Q9Y3Qucy5yK1BlLG1lLl9yZWFkPWZ1bmN0aW9uKCl7aWYoS3Q+Y3QuZS5yKXJldHVybiBtZS5wdXNoKG51bGwpO2Zvcig7S3Q8PWN0LmUucjspe3ZhciBDbj1jTShlZSxjdCxLdCxCdCxiZSxWZSxPdCxUdCk7aWYoKytLdCwhMT09'@; put 'PUNuLmlzZW1wdHl8fCgxPT09YmU/ITEhPT1UdC5ibGFua3Jvd3M6VHQuYmxhbmtyb3dzKSl7bWUucHVzaChDbi5yb3cpO2JyZWFrfX19LG1lfSx0b19odG1sOmZ1bmN0aW9uKGVlLG9lKXt2YXIgbWU9UygpLHBlPW9lfHx7fSxQZT1udWxsIT1wZS5mb290ZXI/cGUuZm9vdGVyOnZkLkVORDtt'@; put 'ZS5wdXNoKG51bGwhPXBlLmhlYWRlcj9wZS5oZWFkZXI6dmQuQkVHSU4pO3ZhciBWZT1TbyhlZVsiIXJlZiJdKTtwZS5kZW5zZT1BcnJheS5pc0FycmF5KGVlKSxtZS5wdXNoKHZkLl9wcmVhbWJsZShlZSxWZSxwZSkpO3ZhciBZZT1WZS5zLnIsZXQ9ITEsY3Q9W107cmV0dXJuIG1lLl9yZWFk'@; put 'PWZ1bmN0aW9uKCl7aWYoWWU+VmUuZS5yKXJldHVybiBldHx8KGV0PSEwLG1lLnB1c2goIjwvdGFibGU+IitQZSkpLG1lLnB1c2gobnVsbCk7Zm9yKDtZZTw9VmUuZS5yOyl7bWUucHVzaCh2ZC5fcm93KGVlLFZlLFllLHBlLGN0LCIiKSksKytZZTticmVha319LG1lfSx0b19jc3Y6ZnVuY3Rp'@; put 'b24oZWUsb2Upe3ZhciBtZT1TKCkscGU9b2U/P3t9O2lmKG51bGw9PWVlfHxudWxsPT1lZVsiIXJlZiJdKXJldHVybiBtZS5wdXNoKG51bGwpLG1lO3ZhciBiZT1zcyhlZVsiIXJlZiJdKSxQZT12b2lkIDAhPT1wZS5GUz9wZS5GUzoiLCIsVmU9UGUuY2hhckNvZGVBdCgwKSxZZT12b2lkIDAh'@; put 'PT1wZS5SUz9wZS5SUzoiXG4iLGV0PVllLmNoYXJDb2RlQXQoMCksY3Q9bmV3IFJlZ0V4cCgoInwiPT1QZT8iXFx8IjpQZSkrIiskIiksVHQ9IiIsaXQ9W107cGUuZGVuc2U9QXJyYXkuaXNBcnJheShlZSk7Zm9yKHZhciBidD1wZS5za2lwSGlkZGVuJiZlZVsiIWNvbHMiXXx8W10sQnQ9cGUu'@; put 'c2tpcEhpZGRlbiYmZWVbIiFyb3dzIl18fFtdLER0PWJlLnMuYztEdDw9YmUuZS5jOysrRHQpKGJ0W0R0XXx8e30pLmhpZGRlbnx8KGl0W0R0XT1rYShEdCkpO3ZhciBPdD1iZS5zLnIsS3Q9ITE7cmV0dXJuIG1lLl9yZWFkPWZ1bmN0aW9uKCl7aWYoIUt0KXJldHVybiBLdD0hMCxtZS5wdXNo'@; put 'KCJcdWZlZmYiKTtmb3IoO090PD1iZS5lLnI7KWlmKCsrT3QsIShCdFtPdC0xXXx8e30pLmhpZGRlbiYmbnVsbCE9KFR0PVVJKGVlLGJlLE90LTEsaXQsVmUsZXQsUGUscGUpKSl7cGUuc3RyaXAmJihUdD1UdC5yZXBsYWNlKGN0LCIiKSksbWUucHVzaChUdCtZZSk7YnJlYWt9cmV0dXJuIE90'@; put 'PmJlLmUucj9tZS5wdXNoKG51bGwpOnZvaWQgMH0sbWV9fX0oKSx3LnBhcnNlX3hsc2NmYj1RUyx3LnBhcnNlX3ppcD1pcCx3LnJlYWQ9VzUsdy5yZWFkRmlsZT1UYyx3LnJlYWRGaWxlU3luYz1UYyx3LndyaXRlPU44LHcud3JpdGVGaWxlPVY4LHcud3JpdGVGaWxlU3luYz1WOCx3LndyaXRl'@; put 'RmlsZUFzeW5jPWZ1bmN0aW9uIGxNKFMsTyxrLEspe3ZhciBlZT1rfHx7fTtlZS50eXBlPSJmaWxlIixlZS5maWxlPVMsb00oZWUpLGVlLnR5cGU9ImJ1ZmZlciI7dmFyIG9lPUs7cmV0dXJuIG9lIGluc3RhbmNlb2YgRnVuY3Rpb258fChvZT1rKSxxZS53cml0ZUZpbGUoUyxOOChPLGVlKSxv'@; put 'ZSl9LHcuc2V0X2RhdGVfc3R5bGU9ZnVuY3Rpb24gSXQoUyl7c3dpdGNoKFMpe2Nhc2UgMDp5dCgpO2JyZWFrO2Nhc2UgMTohZnVuY3Rpb24gTXQoKXt2YXIgUz1uZXcgRGF0ZTtudD1fdC5nZXRUaW1lKCkrNmU0KihTLmdldFRpbWV6b25lT2Zmc2V0KCktX3QuZ2V0VGltZXpvbmVPZmZzZXQo'@; put 'KSk7dmFyIE89Uy5nZXRUaW1lem9uZU9mZnNldCgpO0plPWZ1bmN0aW9uKEssZWUpe3ZhciBvZT1LLmdldFRpbWUoKTtyZXR1cm4gZWUmJihvZS09MTI2MzE2OGU1KSwob2UtKF90LmdldFRpbWUoKSs2ZTQqKEsuZ2V0VGltZXpvbmVPZmZzZXQoKS1fdC5nZXRUaW1lem9uZU9mZnNldCgpKSkp'@; put 'Lzg2NGU1fSxvbj1mdW5jdGlvbihLKXt2YXIgZWU9bmV3IERhdGU7cmV0dXJuIGVlLnNldFRpbWUoMjQqSyo2MCo2MCoxZTMrbnQpLGVlLmdldFRpbWV6b25lT2Zmc2V0KCkhPT1PJiZlZS5zZXRUaW1lKGVlLmdldFRpbWUoKSs2ZTQqKGVlLmdldFRpbWV6b25lT2Zmc2V0KCktTykpLGVlfX0o'@; put 'KX19LHcudXRpbHM9VnUsdy5TU0Y9QSx0eXBlb2YgdmU8InUiJiYody5DRkI9dmUpfShKKX0sNDk2MDk6KGNlLEosYik9Pnt2YXIgRD1KO0QuYmlnbnVtPWIoOTY4NjcpLEQuZGVmaW5lPWIoMTY2MjYpLmRlZmluZSxELmJhc2U9YigxNTA2NiksRC5jb25zdGFudHM9Yig0Nzc0MCksRC5kZWNv'@; put 'ZGVycz1iKDkxNTU4KSxELmVuY29kZXJzPWIoMjI3MTQpfSwxNjYyNjooY2UsSixiKT0+e3ZhciBEPWIoNDk2MDkpLF89Yig3MTk5Myk7ZnVuY3Rpb24gTih3LEYpe3RoaXMubmFtZT13LHRoaXMuYm9keT1GLHRoaXMuZGVjb2RlcnM9e30sdGhpcy5lbmNvZGVycz17fX1KLmRlZmluZT1mdW5j'@; put 'dGlvbihGLEgpe3JldHVybiBuZXcgTihGLEgpfSxOLnByb3RvdHlwZS5fY3JlYXRlTmFtZWQ9ZnVuY3Rpb24oRil7dmFyIEg7dHJ5e0g9Yig4NjYxKS5ydW5JblRoaXNDb250ZXh0KCIoZnVuY3Rpb24gIit0aGlzLm5hbWUrIihlbnRpdHkpIHtcbiAgdGhpcy5faW5pdE5hbWVkKGVudGl0eSk7'@; put 'XG59KSIpfWNhdGNoe0g9ZnVuY3Rpb24oail7dGhpcy5faW5pdE5hbWVkKGopfX1yZXR1cm4gXyhILEYpLEgucHJvdG90eXBlLl9pbml0TmFtZWQ9ZnVuY3Rpb24oail7Ri5jYWxsKHRoaXMsail9LG5ldyBIKHRoaXMpfSxOLnByb3RvdHlwZS5fZ2V0RGVjb2Rlcj1mdW5jdGlvbihGKXtyZXR1'@; put 'cm4gdGhpcy5kZWNvZGVycy5oYXNPd25Qcm9wZXJ0eShGPUZ8fCJkZXIiKXx8KHRoaXMuZGVjb2RlcnNbRl09dGhpcy5fY3JlYXRlTmFtZWQoRC5kZWNvZGVyc1tGXSkpLHRoaXMuZGVjb2RlcnNbRl19LE4ucHJvdG90eXBlLmRlY29kZT1mdW5jdGlvbihGLEgsUil7cmV0dXJuIHRoaXMuX2dl'@; put 'dERlY29kZXIoSCkuZGVjb2RlKEYsUil9LE4ucHJvdG90eXBlLl9nZXRFbmNvZGVyPWZ1bmN0aW9uKEYpe3JldHVybiB0aGlzLmVuY29kZXJzLmhhc093blByb3BlcnR5KEY9Rnx8ImRlciIpfHwodGhpcy5lbmNvZGVyc1tGXT10aGlzLl9jcmVhdGVOYW1lZChELmVuY29kZXJzW0ZdKSksdGhp'@; put 'cy5lbmNvZGVyc1tGXX0sTi5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKEYsSCxSKXtyZXR1cm4gdGhpcy5fZ2V0RW5jb2RlcihIKS5lbmNvZGUoRixSKX19LDk3MjkwOihjZSxKLGIpPT57dmFyIEQ9Yig3MTk5MyksXz1iKDE1MDY2KS5SZXBvcnRlcixwPWIoODM4MzgpLkJ1ZmZlcjtmdW5j'@; put 'dGlvbiBOKEYsSCl7Xy5jYWxsKHRoaXMsSCkscC5pc0J1ZmZlcihGKT8odGhpcy5iYXNlPUYsdGhpcy5vZmZzZXQ9MCx0aGlzLmxlbmd0aD1GLmxlbmd0aCk6dGhpcy5lcnJvcigiSW5wdXQgbm90IEJ1ZmZlciIpfWZ1bmN0aW9uIHcoRixIKXtpZihBcnJheS5pc0FycmF5KEYpKXRoaXMubGVu'@; put 'Z3RoPTAsdGhpcy52YWx1ZT1GLm1hcChmdW5jdGlvbihSKXtyZXR1cm4gUiBpbnN0YW5jZW9mIHd8fChSPW5ldyB3KFIsSCkpLHRoaXMubGVuZ3RoKz1SLmxlbmd0aCxSfSx0aGlzKTtlbHNlIGlmKCJudW1iZXIiPT10eXBlb2YgRil7aWYoISgwPD1GJiZGPD0yNTUpKXJldHVybiBILmVycm9y'@; put 'KCJub24tYnl0ZSBFbmNvZGVyQnVmZmVyIHZhbHVlIik7dGhpcy52YWx1ZT1GLHRoaXMubGVuZ3RoPTF9ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIEYpdGhpcy52YWx1ZT1GLHRoaXMubGVuZ3RoPXAuYnl0ZUxlbmd0aChGKTtlbHNle2lmKCFwLmlzQnVmZmVyKEYpKXJldHVybiBILmVycm9y'@; put 'KCJVbnN1cHBvcnRlZCB0eXBlOiAiK3R5cGVvZiBGKTt0aGlzLnZhbHVlPUYsdGhpcy5sZW5ndGg9Ri5sZW5ndGh9fUQoTixfKSxKLnQ9TixOLnByb3RvdHlwZS5zYXZlPWZ1bmN0aW9uKCl7cmV0dXJue29mZnNldDp0aGlzLm9mZnNldCxyZXBvcnRlcjpfLnByb3RvdHlwZS5zYXZlLmNhbGwo'@; put 'dGhpcyl9fSxOLnByb3RvdHlwZS5yZXN0b3JlPWZ1bmN0aW9uKEgpe3ZhciBSPW5ldyBOKHRoaXMuYmFzZSk7cmV0dXJuIFIub2Zmc2V0PUgub2Zmc2V0LFIubGVuZ3RoPXRoaXMub2Zmc2V0LHRoaXMub2Zmc2V0PUgub2Zmc2V0LF8ucHJvdG90eXBlLnJlc3RvcmUuY2FsbCh0aGlzLEgucmVw'@; put 'b3J0ZXIpLFJ9LE4ucHJvdG90eXBlLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vZmZzZXQ9PT10aGlzLmxlbmd0aH0sTi5wcm90b3R5cGUucmVhZFVJbnQ4PWZ1bmN0aW9uKEgpe3JldHVybiB0aGlzLm9mZnNldCsxPD10aGlzLmxlbmd0aD90aGlzLmJhc2UucmVhZFVJbnQ4KHRo'@; put 'aXMub2Zmc2V0KyssITApOnRoaXMuZXJyb3IoSHx8IkRlY29kZXJCdWZmZXIgb3ZlcnJ1biIpfSxOLnByb3RvdHlwZS5za2lwPWZ1bmN0aW9uKEgsUil7aWYoISh0aGlzLm9mZnNldCtIPD10aGlzLmxlbmd0aCkpcmV0dXJuIHRoaXMuZXJyb3IoUnx8IkRlY29kZXJCdWZmZXIgb3ZlcnJ1biIp'@; put 'O3ZhciBqPW5ldyBOKHRoaXMuYmFzZSk7cmV0dXJuIGouX3JlcG9ydGVyU3RhdGU9dGhpcy5fcmVwb3J0ZXJTdGF0ZSxqLm9mZnNldD10aGlzLm9mZnNldCxqLmxlbmd0aD10aGlzLm9mZnNldCtILHRoaXMub2Zmc2V0Kz1ILGp9LE4ucHJvdG90eXBlLnJhdz1mdW5jdGlvbihIKXtyZXR1cm4g'@; put 'dGhpcy5iYXNlLnNsaWNlKEg/SC5vZmZzZXQ6dGhpcy5vZmZzZXQsdGhpcy5sZW5ndGgpfSxKLmQ9dyx3LnByb3RvdHlwZS5qb2luPWZ1bmN0aW9uKEgsUil7cmV0dXJuIEh8fChIPW5ldyBwKHRoaXMubGVuZ3RoKSksUnx8KFI9MCksMD09PXRoaXMubGVuZ3RofHwoQXJyYXkuaXNBcnJheSh0'@; put 'aGlzLnZhbHVlKT90aGlzLnZhbHVlLmZvckVhY2goZnVuY3Rpb24oail7ai5qb2luKEgsUiksUis9ai5sZW5ndGh9KTooIm51bWJlciI9PXR5cGVvZiB0aGlzLnZhbHVlP0hbUl09dGhpcy52YWx1ZToic3RyaW5nIj09dHlwZW9mIHRoaXMudmFsdWU/SC53cml0ZSh0aGlzLnZhbHVlLFIpOnAu'@; put 'aXNCdWZmZXIodGhpcy52YWx1ZSkmJnRoaXMudmFsdWUuY29weShILFIpLFIrPXRoaXMubGVuZ3RoKSksSH19LDE1MDY2OihjZSxKLGIpPT57dmFyIEQ9SjtELlJlcG9ydGVyPWIoODU2OTcpLmEsRC5EZWNvZGVyQnVmZmVyPWIoOTcyOTApLnQsRC5FbmNvZGVyQnVmZmVyPWIoOTcyOTApLmQs'@; put 'RC5Ob2RlPWIoMzQzMjApfSwzNDMyMDooY2UsSixiKT0+e3ZhciBEPWIoMTUwNjYpLlJlcG9ydGVyLF89YigxNTA2NikuRW5jb2RlckJ1ZmZlcixwPWIoMTUwNjYpLkRlY29kZXJCdWZmZXIsTj1iKDM5MjEwKSx3PVsic2VxIiwic2Vxb2YiLCJzZXQiLCJzZXRvZiIsIm9iamlkIiwiYm9vbCIs'@; put 'ImdlbnRpbWUiLCJ1dGN0aW1lIiwibnVsbF8iLCJlbnVtIiwiaW50Iiwib2JqRGVzYyIsImJpdHN0ciIsImJtcHN0ciIsImNoYXJzdHIiLCJnZW5zdHIiLCJncmFwaHN0ciIsImlhNXN0ciIsImlzbzY0NnN0ciIsIm51bXN0ciIsIm9jdHN0ciIsInByaW50c3RyIiwidDYxc3RyIiwidW5pc3Ry'@; put 'IiwidXRmOHN0ciIsInZpZGVvc3RyIl0sRj1bImtleSIsIm9iaiIsInVzZSIsIm9wdGlvbmFsIiwiZXhwbGljaXQiLCJpbXBsaWNpdCIsImRlZiIsImNob2ljZSIsImFueSIsImNvbnRhaW5zIl0uY29uY2F0KHcpO2Z1bmN0aW9uIFIoUCxMKXt2YXIgWT17fTt0aGlzLl9iYXNlU3RhdGU9WSxZ'@; put 'LmVuYz1QLFkucGFyZW50PUx8fG51bGwsWS5jaGlsZHJlbj1udWxsLFkudGFnPW51bGwsWS5hcmdzPW51bGwsWS5yZXZlcnNlQXJncz1udWxsLFkuY2hvaWNlPW51bGwsWS5vcHRpb25hbD0hMSxZLmFueT0hMSxZLm9iaj0hMSxZLnVzZT1udWxsLFkudXNlRGVjb2Rlcj1udWxsLFkua2V5PW51'@; put 'bGwsWS5kZWZhdWx0PW51bGwsWS5leHBsaWNpdD1udWxsLFkuaW1wbGljaXQ9bnVsbCxZLmNvbnRhaW5zPW51bGwsWS5wYXJlbnR8fChZLmNoaWxkcmVuPVtdLHRoaXMuX3dyYXAoKSl9Y2UuZXhwb3J0cz1SO3ZhciBqPVsiZW5jIiwicGFyZW50IiwiY2hpbGRyZW4iLCJ0YWciLCJhcmdzIiwi'@; put 'cmV2ZXJzZUFyZ3MiLCJjaG9pY2UiLCJvcHRpb25hbCIsImFueSIsIm9iaiIsInVzZSIsImFsdGVyZWRVc2UiLCJrZXkiLCJkZWZhdWx0IiwiZXhwbGljaXQiLCJpbXBsaWNpdCIsImNvbnRhaW5zIl07Ui5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgTD10aGlzLl9iYXNlU3RhdGUs'@; put 'WT17fTtqLmZvckVhY2goZnVuY3Rpb24oVyl7WVtXXT1MW1ddfSk7dmFyIEI9bmV3IHRoaXMuY29uc3RydWN0b3IoWS5wYXJlbnQpO3JldHVybiBCLl9iYXNlU3RhdGU9WSxCfSxSLnByb3RvdHlwZS5fd3JhcD1mdW5jdGlvbigpe3ZhciBMPXRoaXMuX2Jhc2VTdGF0ZTtGLmZvckVhY2goZnVu'@; put 'Y3Rpb24oWSl7dGhpc1tZXT1mdW5jdGlvbigpe3ZhciBXPW5ldyB0aGlzLmNvbnN0cnVjdG9yKHRoaXMpO3JldHVybiBMLmNoaWxkcmVuLnB1c2goVyksV1tZXS5hcHBseShXLGFyZ3VtZW50cyl9fSx0aGlzKX0sUi5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oTCl7dmFyIFk9dGhpcy5fYmFz'@; put 'ZVN0YXRlO04obnVsbD09PVkucGFyZW50KSxMLmNhbGwodGhpcyksWS5jaGlsZHJlbj1ZLmNoaWxkcmVuLmZpbHRlcihmdW5jdGlvbihCKXtyZXR1cm4gQi5fYmFzZVN0YXRlLnBhcmVudD09PXRoaXN9LHRoaXMpLE4uZXF1YWwoWS5jaGlsZHJlbi5sZW5ndGgsMSwiUm9vdCBub2RlIGNhbiBo'@; put 'YXZlIG9ubHkgb25lIGNoaWxkIil9LFIucHJvdG90eXBlLl91c2VBcmdzPWZ1bmN0aW9uKEwpe3ZhciBZPXRoaXMuX2Jhc2VTdGF0ZSxCPUwuZmlsdGVyKGZ1bmN0aW9uKFcpe3JldHVybiBXIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3Rvcn0sdGhpcyk7TD1MLmZpbHRlcihmdW5jdGlvbihX'@; put 'KXtyZXR1cm4hKFcgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKX0sdGhpcyksMCE9PUIubGVuZ3RoJiYoTihudWxsPT09WS5jaGlsZHJlbiksWS5jaGlsZHJlbj1CLEIuZm9yRWFjaChmdW5jdGlvbihXKXtXLl9iYXNlU3RhdGUucGFyZW50PXRoaXN9LHRoaXMpKSwwIT09TC5sZW5ndGgm'@; put 'JihOKG51bGw9PT1ZLmFyZ3MpLFkuYXJncz1MLFkucmV2ZXJzZUFyZ3M9TC5tYXAoZnVuY3Rpb24oVyl7aWYoIm9iamVjdCIhPXR5cGVvZiBXfHxXLmNvbnN0cnVjdG9yIT09T2JqZWN0KXJldHVybiBXO3ZhciBaPXt9O3JldHVybiBPYmplY3Qua2V5cyhXKS5mb3JFYWNoKGZ1bmN0aW9uKFgp'@; put 'e1g9PSgwfFgpJiYoWHw9MCksWltXW1hdXT1YfSksWn0pKX0sWyJfcGVla1RhZyIsIl9kZWNvZGVUYWciLCJfdXNlIiwiX2RlY29kZVN0ciIsIl9kZWNvZGVPYmppZCIsIl9kZWNvZGVUaW1lIiwiX2RlY29kZU51bGwiLCJfZGVjb2RlSW50IiwiX2RlY29kZUJvb2wiLCJfZGVjb2RlTGlzdCIs'@; put 'Il9lbmNvZGVDb21wb3NpdGUiLCJfZW5jb2RlU3RyIiwiX2VuY29kZU9iamlkIiwiX2VuY29kZVRpbWUiLCJfZW5jb2RlTnVsbCIsIl9lbmNvZGVJbnQiLCJfZW5jb2RlQm9vbCJdLmZvckVhY2goZnVuY3Rpb24oUCl7Ui5wcm90b3R5cGVbUF09ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3Io'@; put 'UCsiIG5vdCBpbXBsZW1lbnRlZCBmb3IgZW5jb2Rpbmc6ICIrdGhpcy5fYmFzZVN0YXRlLmVuYyl9fSksdy5mb3JFYWNoKGZ1bmN0aW9uKFApe1IucHJvdG90eXBlW1BdPWZ1bmN0aW9uKCl7dmFyIFk9dGhpcy5fYmFzZVN0YXRlLEI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1l'@; put 'bnRzKTtyZXR1cm4gTihudWxsPT09WS50YWcpLFkudGFnPVAsdGhpcy5fdXNlQXJncyhCKSx0aGlzfX0pLFIucHJvdG90eXBlLnVzZT1mdW5jdGlvbihMKXtOKEwpO3ZhciBZPXRoaXMuX2Jhc2VTdGF0ZTtyZXR1cm4gTihudWxsPT09WS51c2UpLFkudXNlPUwsdGhpc30sUi5wcm90b3R5cGUu'@; put 'b3B0aW9uYWw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmFzZVN0YXRlLm9wdGlvbmFsPSEwLHRoaXN9LFIucHJvdG90eXBlLmRlZj1mdW5jdGlvbihMKXt2YXIgWT10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIE4obnVsbD09PVkuZGVmYXVsdCksWS5kZWZhdWx0PUwsWS5vcHRpb25hbD0hMCx0'@; put 'aGlzfSxSLnByb3RvdHlwZS5leHBsaWNpdD1mdW5jdGlvbihMKXt2YXIgWT10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIE4obnVsbD09PVkuZXhwbGljaXQmJm51bGw9PT1ZLmltcGxpY2l0KSxZLmV4cGxpY2l0PUwsdGhpc30sUi5wcm90b3R5cGUuaW1wbGljaXQ9ZnVuY3Rpb24oTCl7dmFyIFk9'@; put 'dGhpcy5fYmFzZVN0YXRlO3JldHVybiBOKG51bGw9PT1ZLmV4cGxpY2l0JiZudWxsPT09WS5pbXBsaWNpdCksWS5pbXBsaWNpdD1MLHRoaXN9LFIucHJvdG90eXBlLm9iaj1mdW5jdGlvbigpe3ZhciBMPXRoaXMuX2Jhc2VTdGF0ZSxZPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3Vt'@; put 'ZW50cyk7cmV0dXJuIEwub2JqPSEwLDAhPT1ZLmxlbmd0aCYmdGhpcy5fdXNlQXJncyhZKSx0aGlzfSxSLnByb3RvdHlwZS5rZXk9ZnVuY3Rpb24oTCl7dmFyIFk9dGhpcy5fYmFzZVN0YXRlO3JldHVybiBOKG51bGw9PT1ZLmtleSksWS5rZXk9TCx0aGlzfSxSLnByb3RvdHlwZS5hbnk9ZnVu'@; put 'Y3Rpb24oKXtyZXR1cm4gdGhpcy5fYmFzZVN0YXRlLmFueT0hMCx0aGlzfSxSLnByb3RvdHlwZS5jaG9pY2U9ZnVuY3Rpb24oTCl7dmFyIFk9dGhpcy5fYmFzZVN0YXRlO3JldHVybiBOKG51bGw9PT1ZLmNob2ljZSksWS5jaG9pY2U9TCx0aGlzLl91c2VBcmdzKE9iamVjdC5rZXlzKEwpLm1h'@; put 'cChmdW5jdGlvbihCKXtyZXR1cm4gTFtCXX0pKSx0aGlzfSxSLnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbihMKXt2YXIgWT10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIE4obnVsbD09PVkudXNlKSxZLmNvbnRhaW5zPUwsdGhpc30sUi5wcm90b3R5cGUuX2RlY29kZT1mdW5jdGlvbihMLFkp'@; put 'e3ZhciBCPXRoaXMuX2Jhc2VTdGF0ZTtpZihudWxsPT09Qi5wYXJlbnQpcmV0dXJuIEwud3JhcFJlc3VsdChCLmNoaWxkcmVuWzBdLl9kZWNvZGUoTCxZKSk7dmFyIHRlLFc9Qi5kZWZhdWx0LFo9ITAsWD1udWxsO2lmKG51bGwhPT1CLmtleSYmKFg9TC5lbnRlcktleShCLmtleSkpLEIub3B0'@; put 'aW9uYWwpe3ZhciBRPW51bGw7aWYobnVsbCE9PUIuZXhwbGljaXQ/UT1CLmV4cGxpY2l0Om51bGwhPT1CLmltcGxpY2l0P1E9Qi5pbXBsaWNpdDpudWxsIT09Qi50YWcmJihRPUIudGFnKSxudWxsIT09UXx8Qi5hbnkpe2lmKFo9dGhpcy5fcGVla1RhZyhMLFEsQi5hbnkpLEwuaXNFcnJvciha'@; put 'KSlyZXR1cm4gWn1lbHNle3ZhciBxPUwuc2F2ZSgpO3RyeXtudWxsPT09Qi5jaG9pY2U/dGhpcy5fZGVjb2RlR2VuZXJpYyhCLnRhZyxMLFkpOnRoaXMuX2RlY29kZUNob2ljZShMLFkpLFo9ITB9Y2F0Y2h7Wj0hMX1MLnJlc3RvcmUocSl9fWlmKEIub2JqJiZaJiYodGU9TC5lbnRlck9iamVj'@; put 'dCgpKSxaKXtpZihudWxsIT09Qi5leHBsaWNpdCl7dmFyIGllPXRoaXMuX2RlY29kZVRhZyhMLEIuZXhwbGljaXQpO2lmKEwuaXNFcnJvcihpZSkpcmV0dXJuIGllO0w9aWV9dmFyIHNlPUwub2Zmc2V0O2lmKG51bGw9PT1CLnVzZSYmbnVsbD09PUIuY2hvaWNlKXtCLmFueSYmKHE9TC5zYXZl'@; put 'KCkpO3ZhciBnZT10aGlzLl9kZWNvZGVUYWcoTCxudWxsIT09Qi5pbXBsaWNpdD9CLmltcGxpY2l0OkIudGFnLEIuYW55KTtpZihMLmlzRXJyb3IoZ2UpKXJldHVybiBnZTtCLmFueT9XPUwucmF3KHEpOkw9Z2V9aWYoWSYmWS50cmFjayYmbnVsbCE9PUIudGFnJiZZLnRyYWNrKEwucGF0aCgp'@; put 'LHNlLEwubGVuZ3RoLCJ0YWdnZWQiKSxZJiZZLnRyYWNrJiZudWxsIT09Qi50YWcmJlkudHJhY2soTC5wYXRoKCksTC5vZmZzZXQsTC5sZW5ndGgsImNvbnRlbnQiKSxCLmFueXx8KFc9bnVsbD09PUIuY2hvaWNlP3RoaXMuX2RlY29kZUdlbmVyaWMoQi50YWcsTCxZKTp0aGlzLl9kZWNvZGVD'@; put 'aG9pY2UoTCxZKSksTC5pc0Vycm9yKFcpKXJldHVybiBXO2lmKCFCLmFueSYmbnVsbD09PUIuY2hvaWNlJiZudWxsIT09Qi5jaGlsZHJlbiYmQi5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKFNlKXtTZS5fZGVjb2RlKEwsWSl9KSxCLmNvbnRhaW5zJiYoIm9jdHN0ciI9PT1CLnRhZ3x8ImJp'@; put 'dHN0ciI9PT1CLnRhZykpe3ZhciBfZT1uZXcgcChXKTtXPXRoaXMuX2dldFVzZShCLmNvbnRhaW5zLEwuX3JlcG9ydGVyU3RhdGUub2JqKS5fZGVjb2RlKF9lLFkpfX1yZXR1cm4gQi5vYmomJlomJihXPUwubGVhdmVPYmplY3QodGUpKSxudWxsPT09Qi5rZXl8fG51bGw9PT1XJiYhMCE9PVo/'@; put 'bnVsbCE9PVgmJkwuZXhpdEtleShYKTpMLmxlYXZlS2V5KFgsQi5rZXksVyksV30sUi5wcm90b3R5cGUuX2RlY29kZUdlbmVyaWM9ZnVuY3Rpb24oTCxZLEIpe3ZhciBXPXRoaXMuX2Jhc2VTdGF0ZTtyZXR1cm4ic2VxIj09PUx8fCJzZXQiPT09TD9udWxsOiJzZXFvZiI9PT1MfHwic2V0b2Yi'@; put 'PT09TD90aGlzLl9kZWNvZGVMaXN0KFksTCxXLmFyZ3NbMF0sQik6L3N0ciQvLnRlc3QoTCk/dGhpcy5fZGVjb2RlU3RyKFksTCxCKToib2JqaWQiPT09TCYmVy5hcmdzP3RoaXMuX2RlY29kZU9iamlkKFksVy5hcmdzWzBdLFcuYXJnc1sxXSxCKToib2JqaWQiPT09TD90aGlzLl9kZWNvZGVP'@; put 'YmppZChZLG51bGwsbnVsbCxCKToiZ2VudGltZSI9PT1MfHwidXRjdGltZSI9PT1MP3RoaXMuX2RlY29kZVRpbWUoWSxMLEIpOiJudWxsXyI9PT1MP3RoaXMuX2RlY29kZU51bGwoWSxCKToiYm9vbCI9PT1MP3RoaXMuX2RlY29kZUJvb2woWSxCKToib2JqRGVzYyI9PT1MP3RoaXMuX2RlY29k'@; put 'ZVN0cihZLEwsQik6ImludCI9PT1MfHwiZW51bSI9PT1MP3RoaXMuX2RlY29kZUludChZLFcuYXJncyYmVy5hcmdzWzBdLEIpOm51bGwhPT1XLnVzZT90aGlzLl9nZXRVc2UoVy51c2UsWS5fcmVwb3J0ZXJTdGF0ZS5vYmopLl9kZWNvZGUoWSxCKTpZLmVycm9yKCJ1bmtub3duIHRhZzogIitM'@; put 'KX0sUi5wcm90b3R5cGUuX2dldFVzZT1mdW5jdGlvbihMLFkpe3ZhciBCPXRoaXMuX2Jhc2VTdGF0ZTtyZXR1cm4gQi51c2VEZWNvZGVyPXRoaXMuX3VzZShMLFkpLE4obnVsbD09PUIudXNlRGVjb2Rlci5fYmFzZVN0YXRlLnBhcmVudCksQi51c2VEZWNvZGVyPUIudXNlRGVjb2Rlci5fYmFz'@; put 'ZVN0YXRlLmNoaWxkcmVuWzBdLEIuaW1wbGljaXQhPT1CLnVzZURlY29kZXIuX2Jhc2VTdGF0ZS5pbXBsaWNpdCYmKEIudXNlRGVjb2Rlcj1CLnVzZURlY29kZXIuY2xvbmUoKSxCLnVzZURlY29kZXIuX2Jhc2VTdGF0ZS5pbXBsaWNpdD1CLmltcGxpY2l0KSxCLnVzZURlY29kZXJ9LFIucHJv'@; put 'dG90eXBlLl9kZWNvZGVDaG9pY2U9ZnVuY3Rpb24oTCxZKXt2YXIgQj10aGlzLl9iYXNlU3RhdGUsVz1udWxsLFo9ITE7cmV0dXJuIE9iamVjdC5rZXlzKEIuY2hvaWNlKS5zb21lKGZ1bmN0aW9uKFgpe3ZhciBRPUwuc2F2ZSgpLHE9Qi5jaG9pY2VbWF07dHJ5e3ZhciB0ZT1xLl9kZWNvZGUo'@; put 'TCxZKTtpZihMLmlzRXJyb3IodGUpKXJldHVybiExO1c9e3R5cGU6WCx2YWx1ZTp0ZX0sWj0hMH1jYXRjaHtyZXR1cm4gTC5yZXN0b3JlKFEpLCExfXJldHVybiEwfSx0aGlzKSxaP1c6TC5lcnJvcigiQ2hvaWNlIG5vdCBtYXRjaGVkIil9LFIucHJvdG90eXBlLl9jcmVhdGVFbmNvZGVyQnVm'@; put 'ZmVyPWZ1bmN0aW9uKEwpe3JldHVybiBuZXcgXyhMLHRoaXMucmVwb3J0ZXIpfSxSLnByb3RvdHlwZS5fZW5jb2RlPWZ1bmN0aW9uKEwsWSxCKXt2YXIgVz10aGlzLl9iYXNlU3RhdGU7aWYobnVsbD09PVcuZGVmYXVsdHx8Vy5kZWZhdWx0IT09TCl7dmFyIFo9dGhpcy5fZW5jb2RlVmFsdWUo'@; put 'TCxZLEIpO2lmKHZvaWQgMCE9PVomJiF0aGlzLl9za2lwRGVmYXVsdChaLFksQikpcmV0dXJuIFp9fSxSLnByb3RvdHlwZS5fZW5jb2RlVmFsdWU9ZnVuY3Rpb24oTCxZLEIpe3ZhciBXPXRoaXMuX2Jhc2VTdGF0ZTtpZihudWxsPT09Vy5wYXJlbnQpcmV0dXJuIFcuY2hpbGRyZW5bMF0uX2Vu'@; put 'Y29kZShMLFl8fG5ldyBEKTt2YXIgcT1udWxsO2lmKHRoaXMucmVwb3J0ZXI9WSxXLm9wdGlvbmFsJiZ2b2lkIDA9PT1MKXtpZihudWxsPT09Vy5kZWZhdWx0KXJldHVybjtMPVcuZGVmYXVsdH12YXIgWj1udWxsLFg9ITE7aWYoVy5hbnkpcT10aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKEwp'@; put 'O2Vsc2UgaWYoVy5jaG9pY2UpcT10aGlzLl9lbmNvZGVDaG9pY2UoTCxZKTtlbHNlIGlmKFcuY29udGFpbnMpWj10aGlzLl9nZXRVc2UoVy5jb250YWlucyxCKS5fZW5jb2RlKEwsWSksWD0hMDtlbHNlIGlmKFcuY2hpbGRyZW4pWj1XLmNoaWxkcmVuLm1hcChmdW5jdGlvbihzZSl7aWYoIm51'@; put 'bGxfIj09PXNlLl9iYXNlU3RhdGUudGFnKXJldHVybiBzZS5fZW5jb2RlKG51bGwsWSxMKTtpZihudWxsPT09c2UuX2Jhc2VTdGF0ZS5rZXkpcmV0dXJuIFkuZXJyb3IoIkNoaWxkIHNob3VsZCBoYXZlIGEga2V5Iik7dmFyIGdlPVkuZW50ZXJLZXkoc2UuX2Jhc2VTdGF0ZS5rZXkpO2lmKCJv'@; put 'YmplY3QiIT10eXBlb2YgTClyZXR1cm4gWS5lcnJvcigiQ2hpbGQgZXhwZWN0ZWQsIGJ1dCBpbnB1dCBpcyBub3Qgb2JqZWN0Iik7dmFyIF9lPXNlLl9lbmNvZGUoTFtzZS5fYmFzZVN0YXRlLmtleV0sWSxMKTtyZXR1cm4gWS5sZWF2ZUtleShnZSksX2V9LHRoaXMpLmZpbHRlcihmdW5jdGlv'@; put 'bihzZSl7cmV0dXJuIHNlfSksWj10aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFopO2Vsc2UgaWYoInNlcW9mIj09PVcudGFnfHwic2V0b2YiPT09Vy50YWcpe2lmKCFXLmFyZ3N8fDEhPT1XLmFyZ3MubGVuZ3RoKXJldHVybiBZLmVycm9yKCJUb28gbWFueSBhcmdzIGZvciA6ICIrVy50YWcp'@; put 'O2lmKCFBcnJheS5pc0FycmF5KEwpKXJldHVybiBZLmVycm9yKCJzZXFvZi9zZXRvZiwgYnV0IGRhdGEgaXMgbm90IEFycmF5Iik7dmFyIFE9dGhpcy5jbG9uZSgpO1EuX2Jhc2VTdGF0ZS5pbXBsaWNpdD1udWxsLFo9dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihMLm1hcChmdW5jdGlvbihz'@; put 'ZSl7cmV0dXJuIHRoaXMuX2dldFVzZSh0aGlzLl9iYXNlU3RhdGUuYXJnc1swXSxMKS5fZW5jb2RlKHNlLFkpfSxRKSl9ZWxzZSBudWxsIT09Vy51c2U/cT10aGlzLl9nZXRVc2UoVy51c2UsQikuX2VuY29kZShMLFkpOihaPXRoaXMuX2VuY29kZVByaW1pdGl2ZShXLnRhZyxMKSxYPSEwKTtp'@; put 'ZighVy5hbnkmJm51bGw9PT1XLmNob2ljZSl7dmFyIHRlPW51bGwhPT1XLmltcGxpY2l0P1cuaW1wbGljaXQ6Vy50YWcsaWU9bnVsbD09PVcuaW1wbGljaXQ/InVuaXZlcnNhbCI6ImNvbnRleHQiO251bGw9PT10ZT9udWxsPT09Vy51c2UmJlkuZXJyb3IoIlRhZyBjb3VsZCBiZSBvbWl0dGVk'@; put 'IG9ubHkgZm9yIC51c2UoKSIpOm51bGw9PT1XLnVzZSYmKHE9dGhpcy5fZW5jb2RlQ29tcG9zaXRlKHRlLFgsaWUsWikpfXJldHVybiBudWxsIT09Vy5leHBsaWNpdCYmKHE9dGhpcy5fZW5jb2RlQ29tcG9zaXRlKFcuZXhwbGljaXQsITEsImNvbnRleHQiLHEpKSxxfSxSLnByb3RvdHlwZS5f'@; put 'ZW5jb2RlQ2hvaWNlPWZ1bmN0aW9uKEwsWSl7dmFyIEI9dGhpcy5fYmFzZVN0YXRlLFc9Qi5jaG9pY2VbTC50eXBlXTtyZXR1cm4gV3x8TighMSxMLnR5cGUrIiBub3QgZm91bmQgaW4gIitKU09OLnN0cmluZ2lmeShPYmplY3Qua2V5cyhCLmNob2ljZSkpKSxXLl9lbmNvZGUoTC52YWx1ZSxZ'@; put 'KX0sUi5wcm90b3R5cGUuX2VuY29kZVByaW1pdGl2ZT1mdW5jdGlvbihMLFkpe3ZhciBCPXRoaXMuX2Jhc2VTdGF0ZTtpZigvc3RyJC8udGVzdChMKSlyZXR1cm4gdGhpcy5fZW5jb2RlU3RyKFksTCk7aWYoIm9iamlkIj09PUwmJkIuYXJncylyZXR1cm4gdGhpcy5fZW5jb2RlT2JqaWQoWSxC'@; put 'LnJldmVyc2VBcmdzWzBdLEIuYXJnc1sxXSk7aWYoIm9iamlkIj09PUwpcmV0dXJuIHRoaXMuX2VuY29kZU9iamlkKFksbnVsbCxudWxsKTtpZigiZ2VudGltZSI9PT1MfHwidXRjdGltZSI9PT1MKXJldHVybiB0aGlzLl9lbmNvZGVUaW1lKFksTCk7aWYoIm51bGxfIj09PUwpcmV0dXJuIHRo'@; put 'aXMuX2VuY29kZU51bGwoKTtpZigiaW50Ij09PUx8fCJlbnVtIj09PUwpcmV0dXJuIHRoaXMuX2VuY29kZUludChZLEIuYXJncyYmQi5yZXZlcnNlQXJnc1swXSk7aWYoImJvb2wiPT09TClyZXR1cm4gdGhpcy5fZW5jb2RlQm9vbChZKTtpZigib2JqRGVzYyI9PT1MKXJldHVybiB0aGlzLl9l'@; put 'bmNvZGVTdHIoWSxMKTt0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHRhZzogIitMKX0sUi5wcm90b3R5cGUuX2lzTnVtc3RyPWZ1bmN0aW9uKEwpe3JldHVybi9eWzAtOSBdKiQvLnRlc3QoTCl9LFIucHJvdG90eXBlLl9pc1ByaW50c3RyPWZ1bmN0aW9uKEwpe3JldHVybi9eW0EtWmEt'@; put 'ejAtOSAnXChcKVwrLFwtXC5cLzo9XD9dKiQvLnRlc3QoTCl9fSw4NTY5NzooY2UsSixiKT0+e3ZhciBEPWIoNzE5OTMpO2Z1bmN0aW9uIF8oTil7dGhpcy5fcmVwb3J0ZXJTdGF0ZT17b2JqOm51bGwscGF0aDpbXSxvcHRpb25zOk58fHt9LGVycm9yczpbXX19ZnVuY3Rpb24gcChOLHcpe3Ro'@; put 'aXMucGF0aD1OLHRoaXMucmV0aHJvdyh3KX1KLmE9XyxfLnByb3RvdHlwZS5pc0Vycm9yPWZ1bmN0aW9uKHcpe3JldHVybiB3IGluc3RhbmNlb2YgcH0sXy5wcm90b3R5cGUuc2F2ZT1mdW5jdGlvbigpe3ZhciB3PXRoaXMuX3JlcG9ydGVyU3RhdGU7cmV0dXJue29iajp3Lm9iaixwYXRoTGVu'@; put 'OncucGF0aC5sZW5ndGh9fSxfLnByb3RvdHlwZS5yZXN0b3JlPWZ1bmN0aW9uKHcpe3ZhciBGPXRoaXMuX3JlcG9ydGVyU3RhdGU7Ri5vYmo9dy5vYmosRi5wYXRoPUYucGF0aC5zbGljZSgwLHcucGF0aExlbil9LF8ucHJvdG90eXBlLmVudGVyS2V5PWZ1bmN0aW9uKHcpe3JldHVybiB0aGlz'@; put 'Ll9yZXBvcnRlclN0YXRlLnBhdGgucHVzaCh3KX0sXy5wcm90b3R5cGUuZXhpdEtleT1mdW5jdGlvbih3KXt2YXIgRj10aGlzLl9yZXBvcnRlclN0YXRlO0YucGF0aD1GLnBhdGguc2xpY2UoMCx3LTEpfSxfLnByb3RvdHlwZS5sZWF2ZUtleT1mdW5jdGlvbih3LEYsSCl7dmFyIFI9dGhpcy5f'@; put 'cmVwb3J0ZXJTdGF0ZTt0aGlzLmV4aXRLZXkodyksbnVsbCE9PVIub2JqJiYoUi5vYmpbRl09SCl9LF8ucHJvdG90eXBlLnBhdGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVwb3J0ZXJTdGF0ZS5wYXRoLmpvaW4oIi8iKX0sXy5wcm90b3R5cGUuZW50ZXJPYmplY3Q9ZnVuY3Rpb24oKXt2'@; put 'YXIgdz10aGlzLl9yZXBvcnRlclN0YXRlLEY9dy5vYmo7cmV0dXJuIHcub2JqPXt9LEZ9LF8ucHJvdG90eXBlLmxlYXZlT2JqZWN0PWZ1bmN0aW9uKHcpe3ZhciBGPXRoaXMuX3JlcG9ydGVyU3RhdGUsSD1GLm9iajtyZXR1cm4gRi5vYmo9dyxIfSxfLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlv'@; put 'bih3KXt2YXIgRixIPXRoaXMuX3JlcG9ydGVyU3RhdGUsUj13IGluc3RhbmNlb2YgcDtpZihGPVI/dzpuZXcgcChILnBhdGgubWFwKGZ1bmN0aW9uKGope3JldHVybiJbIitKU09OLnN0cmluZ2lmeShqKSsiXSJ9KS5qb2luKCIiKSx3Lm1lc3NhZ2V8fHcsdy5zdGFjayksIUgub3B0aW9ucy5w'@; put 'YXJ0aWFsKXRocm93IEY7cmV0dXJuIFJ8fEguZXJyb3JzLnB1c2goRiksRn0sXy5wcm90b3R5cGUud3JhcFJlc3VsdD1mdW5jdGlvbih3KXt2YXIgRj10aGlzLl9yZXBvcnRlclN0YXRlO3JldHVybiBGLm9wdGlvbnMucGFydGlhbD97cmVzdWx0OnRoaXMuaXNFcnJvcih3KT9udWxsOncsZXJy'@; put 'b3JzOkYuZXJyb3JzfTp3fSxEKHAsRXJyb3IpLHAucHJvdG90eXBlLnJldGhyb3c9ZnVuY3Rpb24odyl7aWYodGhpcy5tZXNzYWdlPXcrIiBhdDogIisodGhpcy5wYXRofHwiKHNoYWxsb3cpIiksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UmJkVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMs'@; put 'cCksIXRoaXMuc3RhY2spdHJ5e3Rocm93IG5ldyBFcnJvcih0aGlzLm1lc3NhZ2UpfWNhdGNoKEYpe3RoaXMuc3RhY2s9Ri5zdGFja31yZXR1cm4gdGhpc319LDM2MjgzOihjZSxKLGIpPT57dmFyIEQ9Yig0Nzc0MCk7Si50YWdDbGFzcz17MDoidW5pdmVyc2FsIiwxOiJhcHBsaWNhdGlvbiIs'@; put 'MjoiY29udGV4dCIsMzoicHJpdmF0ZSJ9LEoudGFnQ2xhc3NCeU5hbWU9RC5fcmV2ZXJzZShKLnRhZ0NsYXNzKSxKLnRhZz17MDoiZW5kIiwxOiJib29sIiwyOiJpbnQiLDM6ImJpdHN0ciIsNDoib2N0c3RyIiw1OiJudWxsXyIsNjoib2JqaWQiLDc6Im9iakRlc2MiLDg6ImV4dGVybmFsIiw5'@; put 'OiJyZWFsIiwxMDoiZW51bSIsMTE6ImVtYmVkIiwxMjoidXRmOHN0ciIsMTM6InJlbGF0aXZlT2lkIiwxNjoic2VxIiwxNzoic2V0IiwxODoibnVtc3RyIiwxOToicHJpbnRzdHIiLDIwOiJ0NjFzdHIiLDIxOiJ2aWRlb3N0ciIsMjI6ImlhNXN0ciIsMjM6InV0Y3RpbWUiLDI0OiJnZW50aW1l'@; put 'IiwyNToiZ3JhcGhzdHIiLDI2OiJpc282NDZzdHIiLDI3OiJnZW5zdHIiLDI4OiJ1bmlzdHIiLDI5OiJjaGFyc3RyIiwzMDoiYm1wc3RyIn0sSi50YWdCeU5hbWU9RC5fcmV2ZXJzZShKLnRhZyl9LDQ3NzQwOihjZSxKLGIpPT57dmFyIEQ9SjtELl9yZXZlcnNlPWZ1bmN0aW9uKHApe3ZhciBO'@; put 'PXt9O3JldHVybiBPYmplY3Qua2V5cyhwKS5mb3JFYWNoKGZ1bmN0aW9uKHcpeygwfHcpPT13JiYod3w9MCksTltwW3ddXT13fSksTn0sRC5kZXI9YigzNjI4Myl9LDU1OTQxOihjZSxKLGIpPT57dmFyIEQ9Yig3MTk5MyksXz1iKDQ5NjA5KSxwPV8uYmFzZSxOPV8uYmlnbnVtLHc9Xy5jb25z'@; put 'dGFudHMuZGVyO2Z1bmN0aW9uIEYoUCl7dGhpcy5lbmM9ImRlciIsdGhpcy5uYW1lPVAubmFtZSx0aGlzLmVudGl0eT1QLHRoaXMudHJlZT1uZXcgSCx0aGlzLnRyZWUuX2luaXQoUC5ib2R5KX1mdW5jdGlvbiBIKFApe3AuTm9kZS5jYWxsKHRoaXMsImRlciIsUCl9ZnVuY3Rpb24gUihQLEwp'@; put 'e3ZhciBZPVAucmVhZFVJbnQ4KEwpO2lmKFAuaXNFcnJvcihZKSlyZXR1cm4gWTt2YXIgQj13LnRhZ0NsYXNzW1k+PjZdLFc9ISgzMiZZKTtpZigzMSZ+WSlZJj0zMTtlbHNle3ZhciBaPVk7Zm9yKFk9MDshKDEyOCZ+Wik7KXtpZihaPVAucmVhZFVJbnQ4KEwpLFAuaXNFcnJvcihaKSlyZXR1'@; put 'cm4gWjtZPDw9NyxZfD0xMjcmWn19cmV0dXJue2NsczpCLHByaW1pdGl2ZTpXLHRhZzpZLHRhZ1N0cjp3LnRhZ1tZXX19ZnVuY3Rpb24gaihQLEwsWSl7dmFyIEI9UC5yZWFkVUludDgoWSk7aWYoUC5pc0Vycm9yKEIpKXJldHVybiBCO2lmKCFMJiYxMjg9PT1CKXJldHVybiBudWxsO2lmKCEo'@; put 'MTI4JkIpKXJldHVybiBCO3ZhciBXPTEyNyZCO2lmKFc+NClyZXR1cm4gUC5lcnJvcigibGVuZ3RoIG9jdGVjdCBpcyB0b28gbG9uZyIpO0I9MDtmb3IodmFyIFo9MDtaPFc7WisrKXtCPDw9ODt2YXIgWD1QLnJlYWRVSW50OChZKTtpZihQLmlzRXJyb3IoWCkpcmV0dXJuIFg7Qnw9WH1yZXR1'@; put 'cm4gQn1jZS5leHBvcnRzPUYsRi5wcm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9uKEwsWSl7cmV0dXJuIEwgaW5zdGFuY2VvZiBwLkRlY29kZXJCdWZmZXJ8fChMPW5ldyBwLkRlY29kZXJCdWZmZXIoTCxZKSksdGhpcy50cmVlLl9kZWNvZGUoTCxZKX0sRChILHAuTm9kZSksSC5wcm90b3R5cGUu'@; put 'X3BlZWtUYWc9ZnVuY3Rpb24oTCxZLEIpe2lmKEwuaXNFbXB0eSgpKXJldHVybiExO3ZhciBXPUwuc2F2ZSgpLFo9UihMLCdGYWlsZWQgdG8gcGVlayB0YWc6ICInK1krJyInKTtyZXR1cm4gTC5pc0Vycm9yKFopP1o6KEwucmVzdG9yZShXKSxaLnRhZz09PVl8fFoudGFnU3RyPT09WXx8Wi50'@; put 'YWdTdHIrIm9mIj09PVl8fEIpfSxILnByb3RvdHlwZS5fZGVjb2RlVGFnPWZ1bmN0aW9uKEwsWSxCKXt2YXIgVz1SKEwsJ0ZhaWxlZCB0byBkZWNvZGUgdGFnIG9mICInK1krJyInKTtpZihMLmlzRXJyb3IoVykpcmV0dXJuIFc7dmFyIFo9aihMLFcucHJpbWl0aXZlLCdGYWlsZWQgdG8gZ2V0'@; put 'IGxlbmd0aCBvZiAiJytZKyciJyk7aWYoTC5pc0Vycm9yKFopKXJldHVybiBaO2lmKCFCJiZXLnRhZyE9PVkmJlcudGFnU3RyIT09WSYmVy50YWdTdHIrIm9mIiE9PVkpcmV0dXJuIEwuZXJyb3IoJ0ZhaWxlZCB0byBtYXRjaCB0YWc6ICInK1krJyInKTtpZihXLnByaW1pdGl2ZXx8bnVsbCE9'@; put 'PVopcmV0dXJuIEwuc2tpcChaLCdGYWlsZWQgdG8gbWF0Y2ggYm9keSBvZjogIicrWSsnIicpO3ZhciBYPUwuc2F2ZSgpLFE9dGhpcy5fc2tpcFVudGlsRW5kKEwsJ0ZhaWxlZCB0byBza2lwIGluZGVmaW5pdGUgbGVuZ3RoIGJvZHk6ICInK3RoaXMudGFnKyciJyk7cmV0dXJuIEwuaXNFcnJv'@; put 'cihRKT9ROihaPUwub2Zmc2V0LVgub2Zmc2V0LEwucmVzdG9yZShYKSxMLnNraXAoWiwnRmFpbGVkIHRvIG1hdGNoIGJvZHkgb2Y6ICInK1krJyInKSl9LEgucHJvdG90eXBlLl9za2lwVW50aWxFbmQ9ZnVuY3Rpb24oTCxZKXtmb3IoOzspe3ZhciBCPVIoTCxZKTtpZihMLmlzRXJyb3IoQikp'@; put 'cmV0dXJuIEI7dmFyIFosVz1qKEwsQi5wcmltaXRpdmUsWSk7aWYoTC5pc0Vycm9yKFcpKXJldHVybiBXO2lmKFo9Qi5wcmltaXRpdmV8fG51bGwhPT1XP0wuc2tpcChXKTp0aGlzLl9za2lwVW50aWxFbmQoTCxZKSxMLmlzRXJyb3IoWikpcmV0dXJuIFo7aWYoImVuZCI9PT1CLnRhZ1N0cili'@; put 'cmVha319LEgucHJvdG90eXBlLl9kZWNvZGVMaXN0PWZ1bmN0aW9uKEwsWSxCLFcpe2Zvcih2YXIgWj1bXTshTC5pc0VtcHR5KCk7KXt2YXIgWD10aGlzLl9wZWVrVGFnKEwsImVuZCIpO2lmKEwuaXNFcnJvcihYKSlyZXR1cm4gWDt2YXIgUT1CLmRlY29kZShMLCJkZXIiLFcpO2lmKEwuaXNF'@; put 'cnJvcihRKSYmWClicmVhaztaLnB1c2goUSl9cmV0dXJuIFp9LEgucHJvdG90eXBlLl9kZWNvZGVTdHI9ZnVuY3Rpb24oTCxZKXtpZigiYml0c3RyIj09PVkpe3ZhciBCPUwucmVhZFVJbnQ4KCk7cmV0dXJuIEwuaXNFcnJvcihCKT9COnt1bnVzZWQ6QixkYXRhOkwucmF3KCl9fWlmKCJibXBz'@; put 'dHIiPT09WSl7dmFyIFc9TC5yYXcoKTtpZihXLmxlbmd0aCUyPT0xKXJldHVybiBMLmVycm9yKCJEZWNvZGluZyBvZiBzdHJpbmcgdHlwZTogYm1wc3RyIGxlbmd0aCBtaXNtYXRjaCIpO2Zvcih2YXIgWj0iIixYPTA7WDxXLmxlbmd0aC8yO1grKylaKz1TdHJpbmcuZnJvbUNoYXJDb2RlKFcu'@; put 'cmVhZFVJbnQxNkJFKDIqWCkpO3JldHVybiBafWlmKCJudW1zdHIiPT09WSl7dmFyIFE9TC5yYXcoKS50b1N0cmluZygiYXNjaWkiKTtyZXR1cm4gdGhpcy5faXNOdW1zdHIoUSk/UTpMLmVycm9yKCJEZWNvZGluZyBvZiBzdHJpbmcgdHlwZTogbnVtc3RyIHVuc3VwcG9ydGVkIGNoYXJhY3Rl'@; put 'cnMiKX1pZigib2N0c3RyIj09PVkpcmV0dXJuIEwucmF3KCk7aWYoIm9iakRlc2MiPT09WSlyZXR1cm4gTC5yYXcoKTtpZigicHJpbnRzdHIiPT09WSl7dmFyIHE9TC5yYXcoKS50b1N0cmluZygiYXNjaWkiKTtyZXR1cm4gdGhpcy5faXNQcmludHN0cihxKT9xOkwuZXJyb3IoIkRlY29kaW5n'@; put 'IG9mIHN0cmluZyB0eXBlOiBwcmludHN0ciB1bnN1cHBvcnRlZCBjaGFyYWN0ZXJzIil9cmV0dXJuL3N0ciQvLnRlc3QoWSk/TC5yYXcoKS50b1N0cmluZygpOkwuZXJyb3IoIkRlY29kaW5nIG9mIHN0cmluZyB0eXBlOiAiK1krIiB1bnN1cHBvcnRlZCIpfSxILnByb3RvdHlwZS5fZGVjb2Rl'@; put 'T2JqaWQ9ZnVuY3Rpb24oTCxZLEIpe2Zvcih2YXIgVyxaPVtdLFg9MDshTC5pc0VtcHR5KCk7KXt2YXIgUT1MLnJlYWRVSW50OCgpO1g8PD03LFh8PTEyNyZRLDEyOCZRfHwoWi5wdXNoKFgpLFg9MCl9aWYoMTI4JlEmJloucHVzaChYKSxXPUI/WjpbWlswXS80MHwwLFpbMF0lNDBdLmNvbmNh'@; put 'dChaLnNsaWNlKDEpKSxZKXt2YXIgaWU9WVtXLmpvaW4oIiAiKV07dm9pZCAwPT09aWUmJihpZT1ZW1cuam9pbigiLiIpXSksdm9pZCAwIT09aWUmJihXPWllKX1yZXR1cm4gV30sSC5wcm90b3R5cGUuX2RlY29kZVRpbWU9ZnVuY3Rpb24oTCxZKXt2YXIgQj1MLnJhdygpLnRvU3RyaW5nKCk7'@; put 'aWYoImdlbnRpbWUiPT09WSl2YXIgVz0wfEIuc2xpY2UoMCw0KSxaPTB8Qi5zbGljZSg0LDYpLFg9MHxCLnNsaWNlKDYsOCksUT0wfEIuc2xpY2UoOCwxMCkscT0wfEIuc2xpY2UoMTAsMTIpLHRlPTB8Qi5zbGljZSgxMiwxNCk7ZWxzZXtpZigidXRjdGltZSIhPT1ZKXJldHVybiBMLmVycm9y'@; put 'KCJEZWNvZGluZyAiK1krIiB0aW1lIGlzIG5vdCBzdXBwb3J0ZWQgeWV0Iik7Vz0wfEIuc2xpY2UoMCwyKSxaPTB8Qi5zbGljZSgyLDQpLFg9MHxCLnNsaWNlKDQsNiksUT0wfEIuc2xpY2UoNiw4KSxxPTB8Qi5zbGljZSg4LDEwKSx0ZT0wfEIuc2xpY2UoMTAsMTIpLFc9Vzw3MD8yZTMrVzox'@; put 'OTAwK1d9cmV0dXJuIERhdGUuVVRDKFcsWi0xLFgsUSxxLHRlLDApfSxILnByb3RvdHlwZS5fZGVjb2RlTnVsbD1mdW5jdGlvbihMKXtyZXR1cm4gbnVsbH0sSC5wcm90b3R5cGUuX2RlY29kZUJvb2w9ZnVuY3Rpb24oTCl7dmFyIFk9TC5yZWFkVUludDgoKTtyZXR1cm4gTC5pc0Vycm9yKFkp'@; put 'P1k6MCE9PVl9LEgucHJvdG90eXBlLl9kZWNvZGVJbnQ9ZnVuY3Rpb24oTCxZKXt2YXIgQj1MLnJhdygpLFc9bmV3IE4oQik7cmV0dXJuIFkmJihXPVlbVy50b1N0cmluZygxMCldfHxXKSxXfSxILnByb3RvdHlwZS5fdXNlPWZ1bmN0aW9uKEwsWSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9m'@; put 'IEwmJihMPUwoWSkpLEwuX2dldERlY29kZXIoImRlciIpLnRyZWV9fSw5MTU1ODooY2UsSixiKT0+e3ZhciBEPUo7RC5kZXI9Yig1NTk0MSksRC5wZW09Yig1OTMxNil9LDU5MzE2OihjZSxKLGIpPT57dmFyIEQ9Yig3MTk5MyksXz1iKDgzODM4KS5CdWZmZXIscD1iKDU1OTQxKTtmdW5jdGlv'@; put 'biBOKHcpe3AuY2FsbCh0aGlzLHcpLHRoaXMuZW5jPSJwZW0ifUQoTixwKSxjZS5leHBvcnRzPU4sTi5wcm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9uKEYsSCl7Zm9yKHZhciBSPUYudG9TdHJpbmcoKS5zcGxpdCgvW1xyXG5dKy9nKSxqPUgubGFiZWwudG9VcHBlckNhc2UoKSxQPS9eLS0tLS0o'@; put 'QkVHSU58RU5EKSAoW14tXSspLS0tLS0kLyxMPS0xLFk9LTEsQj0wO0I8Ui5sZW5ndGg7QisrKXt2YXIgVz1SW0JdLm1hdGNoKFApO2lmKG51bGwhPT1XJiZXWzJdPT09ail7aWYoLTEhPT1MKXtpZigiRU5EIiE9PVdbMV0pYnJlYWs7WT1CO2JyZWFrfWlmKCJCRUdJTiIhPT1XWzFdKWJyZWFr'@; put 'O0w9Qn19aWYoLTE9PT1MfHwtMT09PVkpdGhyb3cgbmV3IEVycm9yKCJQRU0gc2VjdGlvbiBub3QgZm91bmQgZm9yOiAiK2opO3ZhciBaPVIuc2xpY2UoTCsxLFkpLmpvaW4oIiIpO1oucmVwbGFjZSgvW15hLXowLTlcK1wvPV0rL2dpLCIiKTt2YXIgWD1uZXcgXyhaLCJiYXNlNjQiKTtyZXR1'@; put 'cm4gcC5wcm90b3R5cGUuZGVjb2RlLmNhbGwodGhpcyxYLEgpfX0sNzIxOTM6KGNlLEosYik9Pnt2YXIgRD1iKDcxOTkzKSxfPWIoODM4MzgpLkJ1ZmZlcixwPWIoNDk2MDkpLE49cC5iYXNlLHc9cC5jb25zdGFudHMuZGVyO2Z1bmN0aW9uIEYoUCl7dGhpcy5lbmM9ImRlciIsdGhpcy5uYW1l'@; put 'PVAubmFtZSx0aGlzLmVudGl0eT1QLHRoaXMudHJlZT1uZXcgSCx0aGlzLnRyZWUuX2luaXQoUC5ib2R5KX1mdW5jdGlvbiBIKFApe04uTm9kZS5jYWxsKHRoaXMsImRlciIsUCl9ZnVuY3Rpb24gUihQKXtyZXR1cm4gUDwxMD8iMCIrUDpQfWNlLmV4cG9ydHM9RixGLnByb3RvdHlwZS5lbmNv'@; put 'ZGU9ZnVuY3Rpb24oTCxZKXtyZXR1cm4gdGhpcy50cmVlLl9lbmNvZGUoTCxZKS5qb2luKCl9LEQoSCxOLk5vZGUpLEgucHJvdG90eXBlLl9lbmNvZGVDb21wb3NpdGU9ZnVuY3Rpb24oTCxZLEIsVyl7dmFyIHEsWj1mdW5jdGlvbiBqKFAsTCxZLEIpe3ZhciBXO2lmKCJzZXFvZiI9PT1QP1A9'@; put 'InNlcSI6InNldG9mIj09PVAmJihQPSJzZXQiKSx3LnRhZ0J5TmFtZS5oYXNPd25Qcm9wZXJ0eShQKSlXPXcudGFnQnlOYW1lW1BdO2Vsc2V7aWYoIm51bWJlciIhPXR5cGVvZiBQfHwoMHxQKSE9PVApcmV0dXJuIEIuZXJyb3IoIlVua25vd24gdGFnOiAiK1ApO1c9UH1yZXR1cm4gVz49MzE/'@; put 'Qi5lcnJvcigiTXVsdGktb2N0ZXQgdGFnIGVuY29kaW5nIHVuc3VwcG9ydGVkIik6KEx8fChXfD0zMiksV3w9dy50YWdDbGFzc0J5TmFtZVtZfHwidW5pdmVyc2FsIl08PDYpfShMLFksQix0aGlzLnJlcG9ydGVyKTtpZihXLmxlbmd0aDwxMjgpcmV0dXJuKHE9bmV3IF8oMikpWzBdPVoscVsx'@; put 'XT1XLmxlbmd0aCx0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFtxLFddKTtmb3IodmFyIFg9MSxRPVcubGVuZ3RoO1E+PTI1NjtRPj49OClYKys7KHE9bmV3IF8oMitYKSlbMF09WixxWzFdPTEyOHxYLFE9MStYO2Zvcih2YXIgdGU9Vy5sZW5ndGg7dGU+MDtRLS0sdGU+Pj04KXFbUV09MjU1'@; put 'JnRlO3JldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFtxLFddKX0sSC5wcm90b3R5cGUuX2VuY29kZVN0cj1mdW5jdGlvbihMLFkpe2lmKCJiaXRzdHIiPT09WSlyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihbMHxMLnVudXNlZCxMLmRhdGFdKTtpZigiYm1wc3RyIj09'@; put 'PVkpe2Zvcih2YXIgQj1uZXcgXygyKkwubGVuZ3RoKSxXPTA7VzxMLmxlbmd0aDtXKyspQi53cml0ZVVJbnQxNkJFKEwuY2hhckNvZGVBdChXKSwyKlcpO3JldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKEIpfXJldHVybiJudW1zdHIiPT09WT90aGlzLl9pc051bXN0cihMKT90aGlz'@; put 'Ll9jcmVhdGVFbmNvZGVyQnVmZmVyKEwpOnRoaXMucmVwb3J0ZXIuZXJyb3IoIkVuY29kaW5nIG9mIHN0cmluZyB0eXBlOiBudW1zdHIgc3VwcG9ydHMgb25seSBkaWdpdHMgYW5kIHNwYWNlIik6InByaW50c3RyIj09PVk/dGhpcy5faXNQcmludHN0cihMKT90aGlzLl9jcmVhdGVFbmNvZGVy'@; put 'QnVmZmVyKEwpOnRoaXMucmVwb3J0ZXIuZXJyb3IoIkVuY29kaW5nIG9mIHN0cmluZyB0eXBlOiBwcmludHN0ciBzdXBwb3J0cyBvbmx5IGxhdGluIHVwcGVyIGFuZCBsb3dlciBjYXNlIGxldHRlcnMsIGRpZ2l0cywgc3BhY2UsIGFwb3N0cm9waGUsIGxlZnQgYW5kIHJpZ3RoIHBhcmVudGhl'@; put 'c2lzLCBwbHVzIHNpZ24sIGNvbW1hLCBoeXBoZW4sIGRvdCwgc2xhc2gsIGNvbG9uLCBlcXVhbCBzaWduLCBxdWVzdGlvbiBtYXJrIik6L3N0ciQvLnRlc3QoWSl8fCJvYmpEZXNjIj09PVk/dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihMKTp0aGlzLnJlcG9ydGVyLmVycm9yKCJFbmNvZGlu'@; put 'ZyBvZiBzdHJpbmcgdHlwZTogIitZKyIgdW5zdXBwb3J0ZWQiKX0sSC5wcm90b3R5cGUuX2VuY29kZU9iamlkPWZ1bmN0aW9uKEwsWSxCKXtpZigic3RyaW5nIj09dHlwZW9mIEwpe2lmKCFZKXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCJzdHJpbmcgb2JqaWQgZ2l2ZW4sIGJ1dCBubyB2'@; put 'YWx1ZXMgbWFwIGZvdW5kIik7aWYoIVkuaGFzT3duUHJvcGVydHkoTCkpcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoIm9iamlkIG5vdCBmb3VuZCBpbiB2YWx1ZXMgbWFwIik7TD1ZW0xdLnNwbGl0KC9bXHNcLl0rL2cpO2Zvcih2YXIgVz0wO1c8TC5sZW5ndGg7VysrKUxbV118PTB9ZWxz'@; put 'ZSBpZihBcnJheS5pc0FycmF5KEwpKWZvcihMPUwuc2xpY2UoKSxXPTA7VzxMLmxlbmd0aDtXKyspTFtXXXw9MDtpZighQXJyYXkuaXNBcnJheShMKSlyZXR1cm4gdGhpcy5yZXBvcnRlci5lcnJvcigib2JqaWQoKSBzaG91bGQgYmUgZWl0aGVyIGFycmF5IG9yIHN0cmluZywgZ290OiAiK0pT'@; put 'T04uc3RyaW5naWZ5KEwpKTtpZighQil7aWYoTFsxXT49NDApcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoIlNlY29uZCBvYmppZCBpZGVudGlmaWVyIE9PQiIpO0wuc3BsaWNlKDAsMiw0MCpMWzBdK0xbMV0pfXZhciBaPTA7Zm9yKFc9MDtXPEwubGVuZ3RoO1crKyl7dmFyIFg9TFtXXTtm'@; put 'b3IoWisrO1g+PTEyODtYPj49NylaKyt9dmFyIFE9bmV3IF8oWikscT1RLmxlbmd0aC0xO2ZvcihXPUwubGVuZ3RoLTE7Vz49MDtXLS0pZm9yKFFbcS0tXT0xMjcmKFg9TFtXXSk7KFg+Pj03KT4wOylRW3EtLV09MTI4fDEyNyZYO3JldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFEp'@; put 'fSxILnByb3RvdHlwZS5fZW5jb2RlVGltZT1mdW5jdGlvbihMLFkpe3ZhciBCLFc9bmV3IERhdGUoTCk7cmV0dXJuImdlbnRpbWUiPT09WT9CPVtSKFcuZ2V0RnVsbFllYXIoKSksUihXLmdldFVUQ01vbnRoKCkrMSksUihXLmdldFVUQ0RhdGUoKSksUihXLmdldFVUQ0hvdXJzKCkpLFIoVy5n'@; put 'ZXRVVENNaW51dGVzKCkpLFIoVy5nZXRVVENTZWNvbmRzKCkpLCJaIl0uam9pbigiIik6InV0Y3RpbWUiPT09WT9CPVtSKFcuZ2V0RnVsbFllYXIoKSUxMDApLFIoVy5nZXRVVENNb250aCgpKzEpLFIoVy5nZXRVVENEYXRlKCkpLFIoVy5nZXRVVENIb3VycygpKSxSKFcuZ2V0VVRDTWludXRl'@; put 'cygpKSxSKFcuZ2V0VVRDU2Vjb25kcygpKSwiWiJdLmpvaW4oIiIpOnRoaXMucmVwb3J0ZXIuZXJyb3IoIkVuY29kaW5nICIrWSsiIHRpbWUgaXMgbm90IHN1cHBvcnRlZCB5ZXQiKSx0aGlzLl9lbmNvZGVTdHIoQiwib2N0c3RyIil9LEgucHJvdG90eXBlLl9lbmNvZGVOdWxsPWZ1bmN0aW9u'@; put 'KCl7cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoIiIpfSxILnByb3RvdHlwZS5fZW5jb2RlSW50PWZ1bmN0aW9uKEwsWSl7aWYoInN0cmluZyI9PXR5cGVvZiBMKXtpZighWSlyZXR1cm4gdGhpcy5yZXBvcnRlci5lcnJvcigiU3RyaW5nIGludCBvciBlbnVtIGdpdmVuLCBidXQg'@; put 'bm8gdmFsdWVzIG1hcCIpO2lmKCFZLmhhc093blByb3BlcnR5KEwpKXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCJWYWx1ZXMgbWFwIGRvZXNuJ3QgY29udGFpbjogIitKU09OLnN0cmluZ2lmeShMKSk7TD1ZW0xdfWlmKCJudW1iZXIiIT10eXBlb2YgTCYmIV8uaXNCdWZmZXIoTCkpe3Zh'@; put 'ciBCPUwudG9BcnJheSgpOyFMLnNpZ24mJjEyOCZCWzBdJiZCLnVuc2hpZnQoMCksTD1uZXcgXyhCKX1pZihfLmlzQnVmZmVyKEwpKXt2YXIgVz1MLmxlbmd0aDswPT09TC5sZW5ndGgmJlcrKzt2YXIgWD1uZXcgXyhXKTtyZXR1cm4gTC5jb3B5KFgpLDA9PT1MLmxlbmd0aCYmKFhbMF09MCks'@; put 'dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihYKX1pZihMPDEyOClyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihMKTtpZihMPDI1NilyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihbMCxMXSk7Vz0xO2Zvcih2YXIgWj1MO1o+PTI1NjtaPj49OClXKys7Zm9yKFo9KFg9'@; put 'bmV3IEFycmF5KFcpKS5sZW5ndGgtMTtaPj0wO1otLSlYW1pdPTI1NSZMLEw+Pj04O3JldHVybiAxMjgmWFswXSYmWC51bnNoaWZ0KDApLHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIobmV3IF8oWCkpfSxILnByb3RvdHlwZS5fZW5jb2RlQm9vbD1mdW5jdGlvbihMKXtyZXR1cm4gdGhpcy5f'@; put 'Y3JlYXRlRW5jb2RlckJ1ZmZlcihMPzI1NTowKX0sSC5wcm90b3R5cGUuX3VzZT1mdW5jdGlvbihMLFkpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBMJiYoTD1MKFkpKSxMLl9nZXRFbmNvZGVyKCJkZXIiKS50cmVlfSxILnByb3RvdHlwZS5fc2tpcERlZmF1bHQ9ZnVuY3Rpb24oTCxZLEIp'@; put 'e3ZhciBaLFc9dGhpcy5fYmFzZVN0YXRlO2lmKG51bGw9PT1XLmRlZmF1bHQpcmV0dXJuITE7dmFyIFg9TC5qb2luKCk7aWYodm9pZCAwPT09Vy5kZWZhdWx0QnVmZmVyJiYoVy5kZWZhdWx0QnVmZmVyPXRoaXMuX2VuY29kZVZhbHVlKFcuZGVmYXVsdCxZLEIpLmpvaW4oKSksWC5sZW5ndGgh'@; put 'PT1XLmRlZmF1bHRCdWZmZXIubGVuZ3RoKXJldHVybiExO2ZvcihaPTA7WjxYLmxlbmd0aDtaKyspaWYoWFtaXSE9PVcuZGVmYXVsdEJ1ZmZlcltaXSlyZXR1cm4hMTtyZXR1cm4hMH19LDIyNzE0OihjZSxKLGIpPT57dmFyIEQ9SjtELmRlcj1iKDcyMTkzKSxELnBlbT1iKDI0ODE2KX0sMjQ4'@; put 'MTY6KGNlLEosYik9Pnt2YXIgRD1iKDcxOTkzKSxfPWIoNzIxOTMpO2Z1bmN0aW9uIHAoTil7Xy5jYWxsKHRoaXMsTiksdGhpcy5lbmM9InBlbSJ9RChwLF8pLGNlLmV4cG9ydHM9cCxwLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24odyxGKXtmb3IodmFyIFI9Xy5wcm90b3R5cGUuZW5jb2Rl'@; put 'LmNhbGwodGhpcyx3KS50b1N0cmluZygiYmFzZTY0Iiksaj1bIi0tLS0tQkVHSU4gIitGLmxhYmVsKyItLS0tLSJdLFA9MDtQPFIubGVuZ3RoO1ArPTY0KWoucHVzaChSLnNsaWNlKFAsUCs2NCkpO3JldHVybiBqLnB1c2goIi0tLS0tRU5EICIrRi5sYWJlbCsiLS0tLS0iKSxqLmpvaW4oIlxu'@; put 'Iil9fSw5Njg2NzpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihELF8peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBwKHosZyl7aWYoIXopdGhyb3cgbmV3IEVycm9yKGd8fCJBc3NlcnRpb24gZmFpbGVkIil9ZnVuY3Rpb24gTih6LGcpe3ouc3VwZXJfPWc7dmFyIHk9ZnVuY3Rpb24oKXt9O3ku'@; put 'cHJvdG90eXBlPWcucHJvdG90eXBlLHoucHJvdG90eXBlPW5ldyB5LHoucHJvdG90eXBlLmNvbnN0cnVjdG9yPXp9ZnVuY3Rpb24gdyh6LGcseSl7aWYody5pc0JOKHopKXJldHVybiB6O3RoaXMubmVnYXRpdmU9MCx0aGlzLndvcmRzPW51bGwsdGhpcy5sZW5ndGg9MCx0aGlzLnJlZD1udWxs'@; put 'LG51bGwhPT16JiYoKCJsZSI9PT1nfHwiYmUiPT09ZykmJih5PWcsZz0xMCksdGhpcy5faW5pdCh6fHwwLGd8fDEwLHl8fCJiZSIpKX12YXIgRjsib2JqZWN0Ij09dHlwZW9mIEQ/RC5leHBvcnRzPXc6Xy5CTj13LHcuQk49dyx3LndvcmRTaXplPTI2O3RyeXtGPXR5cGVvZiB3aW5kb3c8InUi'@; put 'JiZ0eXBlb2Ygd2luZG93LkJ1ZmZlcjwidSI/d2luZG93LkJ1ZmZlcjpiKDc4OTgyKS5CdWZmZXJ9Y2F0Y2h7fWZ1bmN0aW9uIEgoeixnKXt2YXIgeT16LmNoYXJDb2RlQXQoZyk7cmV0dXJuIHk+PTY1JiZ5PD03MD95LTU1Onk+PTk3JiZ5PD0xMDI/eS04Nzp5LTQ4JjE1fWZ1bmN0aW9uIFIo'@; put 'eixnLHkpe3ZhciB4PUgoeix5KTtyZXR1cm4geS0xPj1nJiYoeHw9SCh6LHktMSk8PDQpLHh9ZnVuY3Rpb24gaih6LGcseSx4KXtmb3IodmFyIEM9MCxUPU1hdGgubWluKHoubGVuZ3RoLHkpLFY9ZztWPFQ7VisrKXt2YXIgVT16LmNoYXJDb2RlQXQoViktNDg7Qyo9eCxDKz1VPj00OT9VLTQ5'@; put 'KzEwOlU+PTE3P1UtMTcrMTA6VX1yZXR1cm4gQ313LmlzQk49ZnVuY3Rpb24oZyl7cmV0dXJuIGcgaW5zdGFuY2VvZiB3fHxudWxsIT09ZyYmIm9iamVjdCI9PXR5cGVvZiBnJiZnLmNvbnN0cnVjdG9yLndvcmRTaXplPT09dy53b3JkU2l6ZSYmQXJyYXkuaXNBcnJheShnLndvcmRzKX0sdy5t'@; put 'YXg9ZnVuY3Rpb24oZyx5KXtyZXR1cm4gZy5jbXAoeSk+MD9nOnl9LHcubWluPWZ1bmN0aW9uKGcseSl7cmV0dXJuIGcuY21wKHkpPDA/Zzp5fSx3LnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbihnLHkseCl7aWYoIm51bWJlciI9PXR5cGVvZiBnKXJldHVybiB0aGlzLl9pbml0TnVtYmVyKGcs'@; put 'eSx4KTtpZigib2JqZWN0Ij09dHlwZW9mIGcpcmV0dXJuIHRoaXMuX2luaXRBcnJheShnLHkseCk7ImhleCI9PT15JiYoeT0xNikscCh5PT09KDB8eSkmJnk+PTImJnk8PTM2KTt2YXIgQz0wOyItIj09PShnPWcudG9TdHJpbmcoKS5yZXBsYWNlKC9ccysvZywiIikpWzBdJiYoQysrLHRoaXMu'@; put 'bmVnYXRpdmU9MSksQzxnLmxlbmd0aCYmKDE2PT09eT90aGlzLl9wYXJzZUhleChnLEMseCk6KHRoaXMuX3BhcnNlQmFzZShnLHksQyksImxlIj09PXgmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSx5LHgpKSl9LHcucHJvdG90eXBlLl9pbml0TnVtYmVyPWZ1bmN0aW9uKGcseSx4'@; put 'KXtnPDAmJih0aGlzLm5lZ2F0aXZlPTEsZz0tZyksZzw2NzEwODg2ND8odGhpcy53b3Jkcz1bNjcxMDg4NjMmZ10sdGhpcy5sZW5ndGg9MSk6Zzw0NTAzNTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZnLGcvNjcxMDg4NjQmNjcxMDg4NjNdLHRoaXMubGVuZ3RoPTIpOihwKGc8'@; put 'OTAwNzE5OTI1NDc0MDk5MiksdGhpcy53b3Jkcz1bNjcxMDg4NjMmZyxnLzY3MTA4ODY0JjY3MTA4ODYzLDFdLHRoaXMubGVuZ3RoPTMpLCJsZSI9PT14JiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCkseSx4KX0sdy5wcm90b3R5cGUuX2luaXRBcnJheT1mdW5jdGlvbihnLHkseCl7'@; put 'aWYocCgibnVtYmVyIj09dHlwZW9mIGcubGVuZ3RoKSxnLmxlbmd0aDw9MClyZXR1cm4gdGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMubGVuZ3RoPU1hdGguY2VpbChnLmxlbmd0aC8zKSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBDPTA7'@; put 'Qzx0aGlzLmxlbmd0aDtDKyspdGhpcy53b3Jkc1tDXT0wO3ZhciBULFYsVT0wO2lmKCJiZSI9PT14KWZvcihDPWcubGVuZ3RoLTEsVD0wO0M+PTA7Qy09Myl0aGlzLndvcmRzW1RdfD0oVj1nW0NdfGdbQy0xXTw8OHxnW0MtMl08PDE2KTw8VSY2NzEwODg2Myx0aGlzLndvcmRzW1QrMV09Vj4+'@; put 'PjI2LVUmNjcxMDg4NjMsKFUrPTI0KT49MjYmJihVLT0yNixUKyspO2Vsc2UgaWYoImxlIj09PXgpZm9yKEM9MCxUPTA7QzxnLmxlbmd0aDtDKz0zKXRoaXMud29yZHNbVF18PShWPWdbQ118Z1tDKzFdPDw4fGdbQysyXTw8MTYpPDxVJjY3MTA4ODYzLHRoaXMud29yZHNbVCsxXT1WPj4+MjYt'@; put 'VSY2NzEwODg2MywoVSs9MjQpPj0yNiYmKFUtPTI2LFQrKyk7cmV0dXJuIHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKGcseSx4KXt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoKGcubGVuZ3RoLXkpLzYpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3Ro'@; put 'KTtmb3IodmFyIEM9MDtDPHRoaXMubGVuZ3RoO0MrKyl0aGlzLndvcmRzW0NdPTA7dmFyIFUsVD0wLFY9MDtpZigiYmUiPT09eClmb3IoQz1nLmxlbmd0aC0xO0M+PXk7Qy09MilVPVIoZyx5LEMpPDxULHRoaXMud29yZHNbVl18PTY3MTA4ODYzJlUsVD49MTg/KFQtPTE4LHRoaXMud29yZHNb'@; put 'Vis9MV18PVU+Pj4yNik6VCs9ODtlbHNlIGZvcihDPShnLmxlbmd0aC15KSUyPT0wP3krMTp5O0M8Zy5sZW5ndGg7Qys9MilVPVIoZyx5LEMpPDxULHRoaXMud29yZHNbVl18PTY3MTA4ODYzJlUsVD49MTg/KFQtPTE4LHRoaXMud29yZHNbVis9MV18PVU+Pj4yNik6VCs9ODt0aGlzLnN0cmlw'@; put 'KCl9LHcucHJvdG90eXBlLl9wYXJzZUJhc2U9ZnVuY3Rpb24oZyx5LHgpe3RoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTE7Zm9yKHZhciBDPTAsVD0xO1Q8PTY3MTA4ODYzO1QqPXkpQysrO0MtLSxUPVQveXwwO2Zvcih2YXIgVj1nLmxlbmd0aC14LFU9ViVDLEU9TWF0aC5taW4oVixWLVUp'@; put 'K3gsbT0wLEE9eDtBPEU7QSs9QyltPWooZyxBLEErQyx5KSx0aGlzLmltdWxuKFQpLHRoaXMud29yZHNbMF0rbTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1tOnRoaXMuX2lhZGRuKG0pO2lmKDAhPT1VKXt2YXIgYWU9MTtmb3IobT1qKGcsQSxnLmxlbmd0aCx5KSxBPTA7QTxVO0ErKylhZSo9'@; put 'eTt0aGlzLmltdWxuKGFlKSx0aGlzLndvcmRzWzBdK208NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9bTp0aGlzLl9pYWRkbihtKX10aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24oZyl7Zy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgeT0wO3k8dGhp'@; put 'cy5sZW5ndGg7eSsrKWcud29yZHNbeV09dGhpcy53b3Jkc1t5XTtnLmxlbmd0aD10aGlzLmxlbmd0aCxnLm5lZ2F0aXZlPXRoaXMubmVnYXRpdmUsZy5yZWQ9dGhpcy5yZWR9LHcucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIGc9bmV3IHcobnVsbCk7cmV0dXJuIHRoaXMuY29weShn'@; put 'KSxnfSx3LnByb3RvdHlwZS5fZXhwYW5kPWZ1bmN0aW9uKGcpe2Zvcig7dGhpcy5sZW5ndGg8ZzspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO3JldHVybiB0aGlzfSx3LnByb3RvdHlwZS5zdHJpcD1mdW5jdGlvbigpe2Zvcig7dGhpcy5sZW5ndGg+MSYmMD09PXRoaXMud29yZHNbdGhp'@; put 'cy5sZW5ndGgtMV07KXRoaXMubGVuZ3RoLS07cmV0dXJuIHRoaXMuX25vcm1TaWduKCl9LHcucHJvdG90eXBlLl9ub3JtU2lnbj1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdJiYodGhpcy5uZWdhdGl2ZT0wKSx0aGlzfSx3LnByb3RvdHlwZS5p'@; put 'bnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMucmVkPyI8Qk4tUjogIjoiPEJOOiAiKSt0aGlzLnRvU3RyaW5nKDE2KSsiPiJ9O3ZhciBQPVsiIiwiMCIsIjAwIiwiMDAwIiwiMDAwMCIsIjAwMDAwIiwiMDAwMDAwIiwiMDAwMDAwMCIsIjAwMDAwMDAwIiwiMDAwMDAwMDAwIiwiMDAwMDAw'@; put 'MDAwMCIsIjAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAw'@; put 'MCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCJdLEw9WzAsMCwy'@; put 'NSwxNiwxMiwxMSwxMCw5LDgsOCw3LDcsNyw3LDYsNiw2LDYsNiw2LDYsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNV0sWT1bMCwwLDMzNTU0NDMyLDQzMDQ2NzIxLDE2Nzc3MjE2LDQ4ODI4MTI1LDYwNDY2MTc2LDQwMzUzNjA3LDE2Nzc3MjE2LDQzMDQ2NzIxLDFlNywxOTQ4NzE3'@; put 'MSwzNTgzMTgwOCw2Mjc0ODUxNyw3NTI5NTM2LDExMzkwNjI1LDE2Nzc3MjE2LDI0MTM3NTY5LDM0MDEyMjI0LDQ3MDQ1ODgxLDY0ZTYsNDA4NDEwMSw1MTUzNjMyLDY0MzYzNDMsNzk2MjYyNCw5NzY1NjI1LDExODgxMzc2LDE0MzQ4OTA3LDE3MjEwMzY4LDIwNTExMTQ5LDI0M2U1LDI4NjI5'@; put 'MTUxLDMzNTU0NDMyLDM5MTM1MzkzLDQ1NDM1NDI0LDUyNTIxODc1LDYwNDY2MTc2XTtmdW5jdGlvbiBXKHosZyx5KXt5Lm5lZ2F0aXZlPWcubmVnYXRpdmVeei5uZWdhdGl2ZTt2YXIgeD16Lmxlbmd0aCtnLmxlbmd0aHwwO3kubGVuZ3RoPXgseD14LTF8MDt2YXIgQz0wfHoud29yZHNbMF0s'@; put 'VD0wfGcud29yZHNbMF0sVj1DKlQsRT1WLzY3MTA4ODY0fDA7eS53b3Jkc1swXT02NzEwODg2MyZWO2Zvcih2YXIgbT0xO208eDttKyspe2Zvcih2YXIgQT1FPj4+MjYsYWU9NjcxMDg4NjMmRSxuZT1NYXRoLm1pbihtLGcubGVuZ3RoLTEpLGxlPU1hdGgubWF4KDAsbS16Lmxlbmd0aCsxKTts'@; put 'ZTw9bmU7bGUrKylBKz0oVj0oQz0wfHoud29yZHNbbS1sZXwwXSkqKFQ9MHxnLndvcmRzW2xlXSkrYWUpLzY3MTA4ODY0fDAsYWU9NjcxMDg4NjMmVjt5LndvcmRzW21dPTB8YWUsRT0wfEF9cmV0dXJuIDAhPT1FP3kud29yZHNbbV09MHxFOnkubGVuZ3RoLS0seS5zdHJpcCgpfXcucHJvdG90'@; put 'eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKGcseSl7dmFyIHg7aWYoeT0wfHl8fDEsMTY9PT0oZz1nfHwxMCl8fCJoZXgiPT09Zyl7eD0iIjtmb3IodmFyIEM9MCxUPTAsVj0wO1Y8dGhpcy5sZW5ndGg7VisrKXt2YXIgVT10aGlzLndvcmRzW1ZdLEU9KDE2Nzc3MjE1JihVPDxDfFQpKS50b1N0cmlu'@; put 'ZygxNik7VD1VPj4+MjQtQyYxNjc3NzIxNSwoQys9Mik+PTI2JiYoQy09MjYsVi0tKSx4PTAhPT1UfHxWIT09dGhpcy5sZW5ndGgtMT9QWzYtRS5sZW5ndGhdK0UreDpFK3h9Zm9yKDAhPT1UJiYoeD1ULnRvU3RyaW5nKDE2KSt4KTt4Lmxlbmd0aCV5IT0wOyl4PSIwIit4O3JldHVybiAwIT09'@; put 'dGhpcy5uZWdhdGl2ZSYmKHg9Ii0iK3gpLHh9aWYoZz09PSgwfGcpJiZnPj0yJiZnPD0zNil7dmFyIG09TFtnXSxBPVlbZ107eD0iIjt2YXIgYWU9dGhpcy5jbG9uZSgpO2ZvcihhZS5uZWdhdGl2ZT0wOyFhZS5pc1plcm8oKTspe3ZhciBuZT1hZS5tb2RuKEEpLnRvU3RyaW5nKGcpO3g9KGFl'@; put 'PWFlLmlkaXZuKEEpKS5pc1plcm8oKT9uZSt4OlBbbS1uZS5sZW5ndGhdK25lK3h9Zm9yKHRoaXMuaXNaZXJvKCkmJih4PSIwIit4KTt4Lmxlbmd0aCV5IT0wOyl4PSIwIit4O3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKHg9Ii0iK3gpLHh9cCghMSwiQmFzZSBzaG91bGQgYmUgYmV0d2Vl'@; put 'biAyIGFuZCAzNiIpfSx3LnByb3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigpe3ZhciBnPXRoaXMud29yZHNbMF07cmV0dXJuIDI9PT10aGlzLmxlbmd0aD9nKz02NzEwODg2NCp0aGlzLndvcmRzWzFdOjM9PT10aGlzLmxlbmd0aCYmMT09PXRoaXMud29yZHNbMl0/Zys9NDUwMzU5OTYyNzM3'@; put 'MDQ5Nis2NzEwODg2NCp0aGlzLndvcmRzWzFdOnRoaXMubGVuZ3RoPjImJnAoITEsIk51bWJlciBjYW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLDAhPT10aGlzLm5lZ2F0aXZlPy1nOmd9LHcucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3Ry'@; put 'aW5nKDE2KX0sdy5wcm90b3R5cGUudG9CdWZmZXI9ZnVuY3Rpb24oZyx5KXtyZXR1cm4gcCh0eXBlb2YgRjwidSIpLHRoaXMudG9BcnJheUxpa2UoRixnLHkpfSx3LnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKGcseSl7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoQXJyYXksZyx5KX0sdy5w'@; put 'cm90b3R5cGUudG9BcnJheUxpa2U9ZnVuY3Rpb24oZyx5LHgpe3ZhciBDPXRoaXMuYnl0ZUxlbmd0aCgpLFQ9eHx8TWF0aC5tYXgoMSxDKTtwKEM8PVQsImJ5dGUgYXJyYXkgbG9uZ2VyIHRoYW4gZGVzaXJlZCBsZW5ndGgiKSxwKFQ+MCwiUmVxdWVzdGVkIGFycmF5IGxlbmd0aCA8PSAwIiks'@; put 'dGhpcy5zdHJpcCgpO3ZhciBFLG0sVj0ibGUiPT09eSxVPW5ldyBnKFQpLEE9dGhpcy5jbG9uZSgpO2lmKFYpe2ZvcihtPTA7IUEuaXNaZXJvKCk7bSsrKUU9QS5hbmRsbigyNTUpLEEuaXVzaHJuKDgpLFVbbV09RTtmb3IoO208VDttKyspVVttXT0wfWVsc2V7Zm9yKG09MDttPFQtQzttKysp'@; put 'VVttXT0wO2ZvcihtPTA7IUEuaXNaZXJvKCk7bSsrKUU9QS5hbmRsbigyNTUpLEEuaXVzaHJuKDgpLFVbVC1tLTFdPUV9cmV0dXJuIFV9LHcucHJvdG90eXBlLl9jb3VudEJpdHM9TWF0aC5jbHozMj9mdW5jdGlvbihnKXtyZXR1cm4gMzItTWF0aC5jbHozMihnKX06ZnVuY3Rpb24oZyl7dmFy'@; put 'IHk9Zyx4PTA7cmV0dXJuIHk+PTQwOTYmJih4Kz0xMyx5Pj4+PTEzKSx5Pj02NCYmKHgrPTcseT4+Pj03KSx5Pj04JiYoeCs9NCx5Pj4+PTQpLHk+PTImJih4Kz0yLHk+Pj49MikseCt5fSx3LnByb3RvdHlwZS5femVyb0JpdHM9ZnVuY3Rpb24oZyl7aWYoMD09PWcpcmV0dXJuIDI2O3ZhciB5'@; put 'PWcseD0wO3JldHVybiA4MTkxJnl8fCh4Kz0xMyx5Pj4+PTEzKSwxMjcmeXx8KHgrPTcseT4+Pj03KSwxNSZ5fHwoeCs9NCx5Pj4+PTQpLDMmeXx8KHgrPTIseT4+Pj0yKSwxJnl8fHgrKyx4fSx3LnByb3RvdHlwZS5iaXRMZW5ndGg9ZnVuY3Rpb24oKXt2YXIgeT10aGlzLl9jb3VudEJpdHMo'@; put 'dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSk7cmV0dXJuIDI2Kih0aGlzLmxlbmd0aC0xKSt5fSx3LnByb3RvdHlwZS56ZXJvQml0cz1mdW5jdGlvbigpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIDA7Zm9yKHZhciBnPTAseT0wO3k8dGhpcy5sZW5ndGg7eSsrKXt2YXIgeD10aGlzLl96ZXJv'@; put 'Qml0cyh0aGlzLndvcmRzW3ldKTtpZihnKz14LDI2IT09eClicmVha31yZXR1cm4gZ30sdy5wcm90b3R5cGUuYnl0ZUxlbmd0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmNlaWwodGhpcy5iaXRMZW5ndGgoKS84KX0sdy5wcm90b3R5cGUudG9Ud29zPWZ1bmN0aW9uKGcpe3JldHVybiAwIT09'@; put 'dGhpcy5uZWdhdGl2ZT90aGlzLmFicygpLmlub3RuKGcpLmlhZGRuKDEpOnRoaXMuY2xvbmUoKX0sdy5wcm90b3R5cGUuZnJvbVR3b3M9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMudGVzdG4oZy0xKT90aGlzLm5vdG4oZykuaWFkZG4oMSkuaW5lZygpOnRoaXMuY2xvbmUoKX0sdy5wcm90b3R5'@; put 'cGUuaXNOZWc9ZnVuY3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmV9LHcucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaW5lZygpfSx3LnByb3RvdHlwZS5pbmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNaZXJvKCl8fCh0aGlzLm5lZ2F0aXZl'@; put 'Xj0xKSx0aGlzfSx3LnByb3RvdHlwZS5pdW9yPWZ1bmN0aW9uKGcpe2Zvcig7dGhpcy5sZW5ndGg8Zy5sZW5ndGg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtmb3IodmFyIHk9MDt5PGcubGVuZ3RoO3krKyl0aGlzLndvcmRzW3ldPXRoaXMud29yZHNbeV18Zy53b3Jkc1t5XTtyZXR1'@; put 'cm4gdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5pb3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHAoISh0aGlzLm5lZ2F0aXZlfGcubmVnYXRpdmUpKSx0aGlzLml1b3IoZyl9LHcucHJvdG90eXBlLm9yPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCku'@; put 'aW9yKGcpOmcuY2xvbmUoKS5pb3IodGhpcyl9LHcucHJvdG90eXBlLnVvcj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLml1b3IoZyk6Zy5jbG9uZSgpLml1b3IodGhpcyl9LHcucHJvdG90eXBlLml1YW5kPWZ1bmN0aW9uKGcpe3ZhciB5O3k9'@; put 'dGhpcy5sZW5ndGg+Zy5sZW5ndGg/Zzp0aGlzO2Zvcih2YXIgeD0wO3g8eS5sZW5ndGg7eCsrKXRoaXMud29yZHNbeF09dGhpcy53b3Jkc1t4XSZnLndvcmRzW3hdO3JldHVybiB0aGlzLmxlbmd0aD15Lmxlbmd0aCx0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLmlhbmQ9ZnVuY3Rpb24oZyl7'@; put 'cmV0dXJuIHAoISh0aGlzLm5lZ2F0aXZlfGcubmVnYXRpdmUpKSx0aGlzLml1YW5kKGcpfSx3LnByb3RvdHlwZS5hbmQ9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYW5kKGcpOmcuY2xvbmUoKS5pYW5kKHRoaXMpfSx3LnByb3RvdHlwZS51'@; put 'YW5kPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaXVhbmQoZyk6Zy5jbG9uZSgpLml1YW5kKHRoaXMpfSx3LnByb3RvdHlwZS5pdXhvcj1mdW5jdGlvbihnKXt2YXIgeSx4O3RoaXMubGVuZ3RoPmcubGVuZ3RoPyh5PXRoaXMseD1nKTooeT1n'@; put 'LHg9dGhpcyk7Zm9yKHZhciBDPTA7Qzx4Lmxlbmd0aDtDKyspdGhpcy53b3Jkc1tDXT15LndvcmRzW0NdXngud29yZHNbQ107aWYodGhpcyE9PXkpZm9yKDtDPHkubGVuZ3RoO0MrKyl0aGlzLndvcmRzW0NdPXkud29yZHNbQ107cmV0dXJuIHRoaXMubGVuZ3RoPXkubGVuZ3RoLHRoaXMuc3Ry'@; put 'aXAoKX0sdy5wcm90b3R5cGUuaXhvcj1mdW5jdGlvbihnKXtyZXR1cm4gcCghKHRoaXMubmVnYXRpdmV8Zy5uZWdhdGl2ZSkpLHRoaXMuaXV4b3IoZyl9LHcucHJvdG90eXBlLnhvcj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLml4b3IoZyk6'@; put 'Zy5jbG9uZSgpLml4b3IodGhpcyl9LHcucHJvdG90eXBlLnV4b3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdXhvcihnKTpnLmNsb25lKCkuaXV4b3IodGhpcyl9LHcucHJvdG90eXBlLmlub3RuPWZ1bmN0aW9uKGcpe3AoIm51bWJlciI9'@; put 'PXR5cGVvZiBnJiZnPj0wKTt2YXIgeT0wfE1hdGguY2VpbChnLzI2KSx4PWclMjY7dGhpcy5fZXhwYW5kKHkpLHg+MCYmeS0tO2Zvcih2YXIgQz0wO0M8eTtDKyspdGhpcy53b3Jkc1tDXT02NzEwODg2MyZ+dGhpcy53b3Jkc1tDXTtyZXR1cm4geD4wJiYodGhpcy53b3Jkc1tDXT1+dGhpcy53'@; put 'b3Jkc1tDXSY2NzEwODg2Mz4+MjYteCksdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5ub3RuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4oZyl9LHcucHJvdG90eXBlLnNldG49ZnVuY3Rpb24oZyx5KXtwKCJudW1iZXIiPT10eXBlb2YgZyYmZz49MCk7dmFyIHg9Zy8y'@; put 'NnwwLEM9ZyUyNjtyZXR1cm4gdGhpcy5fZXhwYW5kKHgrMSksdGhpcy53b3Jkc1t4XT15P3RoaXMud29yZHNbeF18MTw8Qzp0aGlzLndvcmRzW3hdJn4oMTw8QyksdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKGcpe3ZhciB5LHgsQztpZigwIT09dGhpcy5uZWdhdGl2'@; put 'ZSYmMD09PWcubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx5PXRoaXMuaXN1YihnKSx0aGlzLm5lZ2F0aXZlXj0xLHRoaXMuX25vcm1TaWduKCk7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT1nLm5lZ2F0aXZlKXJldHVybiBnLm5lZ2F0aXZlPTAseT10aGlzLmlzdWIoZyksZy5u'@; put 'ZWdhdGl2ZT0xLHkuX25vcm1TaWduKCk7dGhpcy5sZW5ndGg+Zy5sZW5ndGg/KHg9dGhpcyxDPWcpOih4PWcsQz10aGlzKTtmb3IodmFyIFQ9MCxWPTA7VjxDLmxlbmd0aDtWKyspdGhpcy53b3Jkc1tWXT02NzEwODg2MyYoeT0oMHx4LndvcmRzW1ZdKSsoMHxDLndvcmRzW1ZdKStUKSxUPXk+'@; put 'Pj4yNjtmb3IoOzAhPT1UJiZWPHgubGVuZ3RoO1YrKyl0aGlzLndvcmRzW1ZdPTY3MTA4ODYzJih5PSgwfHgud29yZHNbVl0pK1QpLFQ9eT4+PjI2O2lmKHRoaXMubGVuZ3RoPXgubGVuZ3RoLDAhPT1UKXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPVQsdGhpcy5sZW5ndGgrKztlbHNlIGlmKHgh'@; put 'PT10aGlzKWZvcig7Vjx4Lmxlbmd0aDtWKyspdGhpcy53b3Jkc1tWXT14LndvcmRzW1ZdO3JldHVybiB0aGlzfSx3LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZyl7dmFyIHk7cmV0dXJuIDAhPT1nLm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oZy5uZWdhdGl2ZT0wLHk9dGhpcy5zdWIo'@; put 'ZyksZy5uZWdhdGl2ZV49MSx5KTowPT09Zy5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMubmVnYXRpdmU9MCx5PWcuc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSx5KTp0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZChnKTpnLmNsb25lKCkuaWFkZCh0aGlz'@; put 'KX0sdy5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihnKXtpZigwIT09Zy5uZWdhdGl2ZSl7Zy5uZWdhdGl2ZT0wO3ZhciB5PXRoaXMuaWFkZChnKTtyZXR1cm4gZy5uZWdhdGl2ZT0xLHkuX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlz'@; put 'LmlhZGQoZyksdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIEMsVCx4PXRoaXMuY21wKGcpO2lmKDA9PT14KXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpczt4PjA/KEM9dGhpcyxUPWcpOihDPWcsVD10aGlzKTtmb3Io'@; put 'dmFyIFY9MCxVPTA7VTxULmxlbmd0aDtVKyspVj0oeT0oMHxDLndvcmRzW1VdKS0oMHxULndvcmRzW1VdKStWKT4+MjYsdGhpcy53b3Jkc1tVXT02NzEwODg2MyZ5O2Zvcig7MCE9PVYmJlU8Qy5sZW5ndGg7VSsrKVY9KHk9KDB8Qy53b3Jkc1tVXSkrVik+PjI2LHRoaXMud29yZHNbVV09Njcx'@; put 'MDg4NjMmeTtpZigwPT09ViYmVTxDLmxlbmd0aCYmQyE9PXRoaXMpZm9yKDtVPEMubGVuZ3RoO1UrKyl0aGlzLndvcmRzW1VdPUMud29yZHNbVV07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLFUpLEMhPT10aGlzJiYodGhpcy5uZWdhdGl2ZT0xKSx0aGlzLnN0cmlw'@; put 'KCl9LHcucHJvdG90eXBlLnN1Yj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWIoZyl9O3ZhciBaPWZ1bmN0aW9uKGcseSx4KXt2YXIgRSxtLEEsQz1nLndvcmRzLFQ9eS53b3JkcyxWPXgud29yZHMsVT0wLGFlPTB8Q1swXSxuZT04MTkxJmFlLGxlPWFlPj4+MTMsd2U9MHxD'@; put 'WzFdLFplPTgxOTEmd2UsUWU9d2U+Pj4xMyxhdD0wfENbMl0seGU9ODE5MSZhdCx2ZT1hdD4+PjEzLHFlPTB8Q1szXSxqZT04MTkxJnFlLEFlPXFlPj4+MTMsRmU9MHxDWzRdLFJlPTgxOTEmRmUsSWU9RmU+Pj4xMyxIZT0wfENbNV0sRGU9ODE5MSZIZSxrZT1IZT4+PjEzLF90PTB8Q1s2XSxu'@; put 'dD04MTkxJl90LEplPV90Pj4+MTMsb249MHxDWzddLHl0PTgxOTEmb24sTXQ9b24+Pj4xMyxJdD0wfENbOF0scnQ9ODE5MSZJdCxLZT1JdD4+PjEzLHR0PTB8Q1s5XSxOZT04MTkxJnR0LHV0PXR0Pj4+MTMsSnQ9MHxUWzBdLEx0PTgxOTEmSnQsUHQ9SnQ+Pj4xMyxvaT0wfFRbMV0sZW49ODE5'@; put 'MSZvaSxzbj1vaT4+PjEzLElpPTB8VFsyXSxkbj04MTkxJklpLGZ0PUlpPj4+MTMsRnI9MHxUWzNdLFp0PTgxOTEmRnIsa3Q9RnI+Pj4xMyxMbj0wfFRbNF0sb3Q9ODE5MSZMbix6dD1Mbj4+PjEzLG5pPTB8VFs1XSxXZT04MTkxJm5pLEF0PW5pPj4+MTMsaXI9MHxUWzZdLGh0PTgxOTEmaXIs'@; put 'RXQ9aXI+Pj4xMyx6bj0wfFRbN10sYW49ODE5MSZ6bixqdD16bj4+PjEzLGRpPTB8VFs4XSxjbj04MTkxJmRpLGZuPWRpPj4+MTMsRGk9MHxUWzldLFF0PTgxOTEmRGksdG49RGk+Pj4xMzt4Lm5lZ2F0aXZlPWcubmVnYXRpdmVeeS5uZWdhdGl2ZSx4Lmxlbmd0aD0xOTt2YXIgY2E9KFUrKEU9'@; put 'TWF0aC5pbXVsKG5lLEx0KSl8MCkrKCg4MTkxJihtPShtPU1hdGguaW11bChuZSxQdCkpK01hdGguaW11bChsZSxMdCl8MCkpPDwxMyl8MDtVPSgoQT1NYXRoLmltdWwobGUsUHQpKSsobT4+PjEzKXwwKSsoY2E+Pj4yNil8MCxjYSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoWmUsTHQpLG09KG09'@; put 'TWF0aC5pbXVsKFplLFB0KSkrTWF0aC5pbXVsKFFlLEx0KXwwLEE9TWF0aC5pbXVsKFFlLFB0KTt2YXIgeGk9KFUrKEU9RStNYXRoLmltdWwobmUsZW4pfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSxzbil8MCkrTWF0aC5pbXVsKGxlLGVuKXwwKSk8PDEzKXwwO1U9KChBPUEr'@; put 'TWF0aC5pbXVsKGxlLHNuKXwwKSsobT4+PjEzKXwwKSsoeGk+Pj4yNil8MCx4aSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoeGUsTHQpLG09KG09TWF0aC5pbXVsKHhlLFB0KSkrTWF0aC5pbXVsKHZlLEx0KXwwLEE9TWF0aC5pbXVsKHZlLFB0KSxFPUUrTWF0aC5pbXVsKFplLGVuKXwwLG09KG09'@; put 'bStNYXRoLmltdWwoWmUsc24pfDApK01hdGguaW11bChRZSxlbil8MCxBPUErTWF0aC5pbXVsKFFlLHNuKXwwO3ZhciB5cj0oVSsoRT1FK01hdGguaW11bChuZSxkbil8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLGZ0KXwwKStNYXRoLmltdWwobGUsZG4pfDApKTw8MTMpfDA7'@; put 'VT0oKEE9QStNYXRoLmltdWwobGUsZnQpfDApKyhtPj4+MTMpfDApKyh5cj4+PjI2KXwwLHlyJj02NzEwODg2MyxFPU1hdGguaW11bChqZSxMdCksbT0obT1NYXRoLmltdWwoamUsUHQpKStNYXRoLmltdWwoQWUsTHQpfDAsQT1NYXRoLmltdWwoQWUsUHQpLEU9RStNYXRoLmltdWwoeGUsZW4p'@; put 'fDAsbT0obT1tK01hdGguaW11bCh4ZSxzbil8MCkrTWF0aC5pbXVsKHZlLGVuKXwwLEE9QStNYXRoLmltdWwodmUsc24pfDAsRT1FK01hdGguaW11bChaZSxkbil8MCxtPShtPW0rTWF0aC5pbXVsKFplLGZ0KXwwKStNYXRoLmltdWwoUWUsZG4pfDAsQT1BK01hdGguaW11bChRZSxmdCl8MDt2'@; put 'YXIgR249KFUrKEU9RStNYXRoLmltdWwobmUsWnQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSxrdCl8MCkrTWF0aC5pbXVsKGxlLFp0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKGxlLGt0KXwwKSsobT4+PjEzKXwwKSsoR24+Pj4yNil8MCxHbiY9NjcxMDg4NjMs'@; put 'RT1NYXRoLmltdWwoUmUsTHQpLG09KG09TWF0aC5pbXVsKFJlLFB0KSkrTWF0aC5pbXVsKEllLEx0KXwwLEE9TWF0aC5pbXVsKEllLFB0KSxFPUUrTWF0aC5pbXVsKGplLGVuKXwwLG09KG09bStNYXRoLmltdWwoamUsc24pfDApK01hdGguaW11bChBZSxlbil8MCxBPUErTWF0aC5pbXVsKEFl'@; put 'LHNuKXwwLEU9RStNYXRoLmltdWwoeGUsZG4pfDAsbT0obT1tK01hdGguaW11bCh4ZSxmdCl8MCkrTWF0aC5pbXVsKHZlLGRuKXwwLEE9QStNYXRoLmltdWwodmUsZnQpfDAsRT1FK01hdGguaW11bChaZSxadCl8MCxtPShtPW0rTWF0aC5pbXVsKFplLGt0KXwwKStNYXRoLmltdWwoUWUsWnQp'@; put 'fDAsQT1BK01hdGguaW11bChRZSxrdCl8MDt2YXIgS2k9KFUrKEU9RStNYXRoLmltdWwobmUsb3QpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSx6dCl8MCkrTWF0aC5pbXVsKGxlLG90KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKGxlLHp0KXwwKSsobT4+PjEzKXww'@; put 'KSsoS2k+Pj4yNil8MCxLaSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoRGUsTHQpLG09KG09TWF0aC5pbXVsKERlLFB0KSkrTWF0aC5pbXVsKGtlLEx0KXwwLEE9TWF0aC5pbXVsKGtlLFB0KSxFPUUrTWF0aC5pbXVsKFJlLGVuKXwwLG09KG09bStNYXRoLmltdWwoUmUsc24pfDApK01hdGguaW11'@; put 'bChJZSxlbil8MCxBPUErTWF0aC5pbXVsKEllLHNuKXwwLEU9RStNYXRoLmltdWwoamUsZG4pfDAsbT0obT1tK01hdGguaW11bChqZSxmdCl8MCkrTWF0aC5pbXVsKEFlLGRuKXwwLEE9QStNYXRoLmltdWwoQWUsZnQpfDAsRT1FK01hdGguaW11bCh4ZSxadCl8MCxtPShtPW0rTWF0aC5pbXVs'@; put 'KHhlLGt0KXwwKStNYXRoLmltdWwodmUsWnQpfDAsQT1BK01hdGguaW11bCh2ZSxrdCl8MCxFPUUrTWF0aC5pbXVsKFplLG90KXwwLG09KG09bStNYXRoLmltdWwoWmUsenQpfDApK01hdGguaW11bChRZSxvdCl8MCxBPUErTWF0aC5pbXVsKFFlLHp0KXwwO3ZhciBKcj0oVSsoRT1FK01hdGgu'@; put 'aW11bChuZSxXZSl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLEF0KXwwKStNYXRoLmltdWwobGUsV2UpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwobGUsQXQpfDApKyhtPj4+MTMpfDApKyhKcj4+PjI2KXwwLEpyJj02NzEwODg2MyxFPU1hdGguaW11bChudCxMdCks'@; put 'bT0obT1NYXRoLmltdWwobnQsUHQpKStNYXRoLmltdWwoSmUsTHQpfDAsQT1NYXRoLmltdWwoSmUsUHQpLEU9RStNYXRoLmltdWwoRGUsZW4pfDAsbT0obT1tK01hdGguaW11bChEZSxzbil8MCkrTWF0aC5pbXVsKGtlLGVuKXwwLEE9QStNYXRoLmltdWwoa2Usc24pfDAsRT1FK01hdGguaW11'@; put 'bChSZSxkbil8MCxtPShtPW0rTWF0aC5pbXVsKFJlLGZ0KXwwKStNYXRoLmltdWwoSWUsZG4pfDAsQT1BK01hdGguaW11bChJZSxmdCl8MCxFPUUrTWF0aC5pbXVsKGplLFp0KXwwLG09KG09bStNYXRoLmltdWwoamUsa3QpfDApK01hdGguaW11bChBZSxadCl8MCxBPUErTWF0aC5pbXVsKEFl'@; put 'LGt0KXwwLEU9RStNYXRoLmltdWwoeGUsb3QpfDAsbT0obT1tK01hdGguaW11bCh4ZSx6dCl8MCkrTWF0aC5pbXVsKHZlLG90KXwwLEE9QStNYXRoLmltdWwodmUsenQpfDAsRT1FK01hdGguaW11bChaZSxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKFplLEF0KXwwKStNYXRoLmltdWwoUWUsV2Up'@; put 'fDAsQT1BK01hdGguaW11bChRZSxBdCl8MDt2YXIgUXI9KFUrKEU9RStNYXRoLmltdWwobmUsaHQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSxFdCl8MCkrTWF0aC5pbXVsKGxlLGh0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKGxlLEV0KXwwKSsobT4+PjEzKXww'@; put 'KSsoUXI+Pj4yNil8MCxRciY9NjcxMDg4NjMsRT1NYXRoLmltdWwoeXQsTHQpLG09KG09TWF0aC5pbXVsKHl0LFB0KSkrTWF0aC5pbXVsKE10LEx0KXwwLEE9TWF0aC5pbXVsKE10LFB0KSxFPUUrTWF0aC5pbXVsKG50LGVuKXwwLG09KG09bStNYXRoLmltdWwobnQsc24pfDApK01hdGguaW11'@; put 'bChKZSxlbil8MCxBPUErTWF0aC5pbXVsKEplLHNuKXwwLEU9RStNYXRoLmltdWwoRGUsZG4pfDAsbT0obT1tK01hdGguaW11bChEZSxmdCl8MCkrTWF0aC5pbXVsKGtlLGRuKXwwLEE9QStNYXRoLmltdWwoa2UsZnQpfDAsRT1FK01hdGguaW11bChSZSxadCl8MCxtPShtPW0rTWF0aC5pbXVs'@; put 'KFJlLGt0KXwwKStNYXRoLmltdWwoSWUsWnQpfDAsQT1BK01hdGguaW11bChJZSxrdCl8MCxFPUUrTWF0aC5pbXVsKGplLG90KXwwLG09KG09bStNYXRoLmltdWwoamUsenQpfDApK01hdGguaW11bChBZSxvdCl8MCxBPUErTWF0aC5pbXVsKEFlLHp0KXwwLEU9RStNYXRoLmltdWwoeGUsV2Up'@; put 'fDAsbT0obT1tK01hdGguaW11bCh4ZSxBdCl8MCkrTWF0aC5pbXVsKHZlLFdlKXwwLEE9QStNYXRoLmltdWwodmUsQXQpfDAsRT1FK01hdGguaW11bChaZSxodCl8MCxtPShtPW0rTWF0aC5pbXVsKFplLEV0KXwwKStNYXRoLmltdWwoUWUsaHQpfDAsQT1BK01hdGguaW11bChRZSxFdCl8MDt2'@; put 'YXIgTmk9KFUrKEU9RStNYXRoLmltdWwobmUsYW4pfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSxqdCl8MCkrTWF0aC5pbXVsKGxlLGFuKXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKGxlLGp0KXwwKSsobT4+PjEzKXwwKSsoTmk+Pj4yNil8MCxOaSY9NjcxMDg4NjMs'@; put 'RT1NYXRoLmltdWwocnQsTHQpLG09KG09TWF0aC5pbXVsKHJ0LFB0KSkrTWF0aC5pbXVsKEtlLEx0KXwwLEE9TWF0aC5pbXVsKEtlLFB0KSxFPUUrTWF0aC5pbXVsKHl0LGVuKXwwLG09KG09bStNYXRoLmltdWwoeXQsc24pfDApK01hdGguaW11bChNdCxlbil8MCxBPUErTWF0aC5pbXVsKE10'@; put 'LHNuKXwwLEU9RStNYXRoLmltdWwobnQsZG4pfDAsbT0obT1tK01hdGguaW11bChudCxmdCl8MCkrTWF0aC5pbXVsKEplLGRuKXwwLEE9QStNYXRoLmltdWwoSmUsZnQpfDAsRT1FK01hdGguaW11bChEZSxadCl8MCxtPShtPW0rTWF0aC5pbXVsKERlLGt0KXwwKStNYXRoLmltdWwoa2UsWnQp'@; put 'fDAsQT1BK01hdGguaW11bChrZSxrdCl8MCxFPUUrTWF0aC5pbXVsKFJlLG90KXwwLG09KG09bStNYXRoLmltdWwoUmUsenQpfDApK01hdGguaW11bChJZSxvdCl8MCxBPUErTWF0aC5pbXVsKEllLHp0KXwwLEU9RStNYXRoLmltdWwoamUsV2UpfDAsbT0obT1tK01hdGguaW11bChqZSxBdCl8'@; put 'MCkrTWF0aC5pbXVsKEFlLFdlKXwwLEE9QStNYXRoLmltdWwoQWUsQXQpfDAsRT1FK01hdGguaW11bCh4ZSxodCl8MCxtPShtPW0rTWF0aC5pbXVsKHhlLEV0KXwwKStNYXRoLmltdWwodmUsaHQpfDAsQT1BK01hdGguaW11bCh2ZSxFdCl8MCxFPUUrTWF0aC5pbXVsKFplLGFuKXwwLG09KG09'@; put 'bStNYXRoLmltdWwoWmUsanQpfDApK01hdGguaW11bChRZSxhbil8MCxBPUErTWF0aC5pbXVsKFFlLGp0KXwwO3ZhciBIaT0oVSsoRT1FK01hdGguaW11bChuZSxjbil8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLGZuKXwwKStNYXRoLmltdWwobGUsY24pfDApKTw8MTMpfDA7'@; put 'VT0oKEE9QStNYXRoLmltdWwobGUsZm4pfDApKyhtPj4+MTMpfDApKyhIaT4+PjI2KXwwLEhpJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxMdCksbT0obT1NYXRoLmltdWwoTmUsUHQpKStNYXRoLmltdWwodXQsTHQpfDAsQT1NYXRoLmltdWwodXQsUHQpLEU9RStNYXRoLmltdWwocnQsZW4p'@; put 'fDAsbT0obT1tK01hdGguaW11bChydCxzbil8MCkrTWF0aC5pbXVsKEtlLGVuKXwwLEE9QStNYXRoLmltdWwoS2Usc24pfDAsRT1FK01hdGguaW11bCh5dCxkbil8MCxtPShtPW0rTWF0aC5pbXVsKHl0LGZ0KXwwKStNYXRoLmltdWwoTXQsZG4pfDAsQT1BK01hdGguaW11bChNdCxmdCl8MCxF'@; put 'PUUrTWF0aC5pbXVsKG50LFp0KXwwLG09KG09bStNYXRoLmltdWwobnQsa3QpfDApK01hdGguaW11bChKZSxadCl8MCxBPUErTWF0aC5pbXVsKEplLGt0KXwwLEU9RStNYXRoLmltdWwoRGUsb3QpfDAsbT0obT1tK01hdGguaW11bChEZSx6dCl8MCkrTWF0aC5pbXVsKGtlLG90KXwwLEE9QStN'@; put 'YXRoLmltdWwoa2UsenQpfDAsRT1FK01hdGguaW11bChSZSxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKFJlLEF0KXwwKStNYXRoLmltdWwoSWUsV2UpfDAsQT1BK01hdGguaW11bChJZSxBdCl8MCxFPUUrTWF0aC5pbXVsKGplLGh0KXwwLG09KG09bStNYXRoLmltdWwoamUsRXQpfDApK01hdGgu'@; put 'aW11bChBZSxodCl8MCxBPUErTWF0aC5pbXVsKEFlLEV0KXwwLEU9RStNYXRoLmltdWwoeGUsYW4pfDAsbT0obT1tK01hdGguaW11bCh4ZSxqdCl8MCkrTWF0aC5pbXVsKHZlLGFuKXwwLEE9QStNYXRoLmltdWwodmUsanQpfDAsRT1FK01hdGguaW11bChaZSxjbil8MCxtPShtPW0rTWF0aC5p'@; put 'bXVsKFplLGZuKXwwKStNYXRoLmltdWwoUWUsY24pfDAsQT1BK01hdGguaW11bChRZSxmbil8MDt2YXIgSWE9KFUrKEU9RStNYXRoLmltdWwobmUsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSx0bil8MCkrTWF0aC5pbXVsKGxlLFF0KXwwKSk8PDEzKXwwO1U9KChBPUEr'@; put 'TWF0aC5pbXVsKGxlLHRuKXwwKSsobT4+PjEzKXwwKSsoSWE+Pj4yNil8MCxJYSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsZW4pLG09KG09TWF0aC5pbXVsKE5lLHNuKSkrTWF0aC5pbXVsKHV0LGVuKXwwLEE9TWF0aC5pbXVsKHV0LHNuKSxFPUUrTWF0aC5pbXVsKHJ0LGRuKXwwLG09KG09'@; put 'bStNYXRoLmltdWwocnQsZnQpfDApK01hdGguaW11bChLZSxkbil8MCxBPUErTWF0aC5pbXVsKEtlLGZ0KXwwLEU9RStNYXRoLmltdWwoeXQsWnQpfDAsbT0obT1tK01hdGguaW11bCh5dCxrdCl8MCkrTWF0aC5pbXVsKE10LFp0KXwwLEE9QStNYXRoLmltdWwoTXQsa3QpfDAsRT1FK01hdGgu'@; put 'aW11bChudCxvdCl8MCxtPShtPW0rTWF0aC5pbXVsKG50LHp0KXwwKStNYXRoLmltdWwoSmUsb3QpfDAsQT1BK01hdGguaW11bChKZSx6dCl8MCxFPUUrTWF0aC5pbXVsKERlLFdlKXwwLG09KG09bStNYXRoLmltdWwoRGUsQXQpfDApK01hdGguaW11bChrZSxXZSl8MCxBPUErTWF0aC5pbXVs'@; put 'KGtlLEF0KXwwLEU9RStNYXRoLmltdWwoUmUsaHQpfDAsbT0obT1tK01hdGguaW11bChSZSxFdCl8MCkrTWF0aC5pbXVsKEllLGh0KXwwLEE9QStNYXRoLmltdWwoSWUsRXQpfDAsRT1FK01hdGguaW11bChqZSxhbil8MCxtPShtPW0rTWF0aC5pbXVsKGplLGp0KXwwKStNYXRoLmltdWwoQWUs'@; put 'YW4pfDAsQT1BK01hdGguaW11bChBZSxqdCl8MCxFPUUrTWF0aC5pbXVsKHhlLGNuKXwwLG09KG09bStNYXRoLmltdWwoeGUsZm4pfDApK01hdGguaW11bCh2ZSxjbil8MCxBPUErTWF0aC5pbXVsKHZlLGZuKXwwO3ZhciBQcj0oVSsoRT1FK01hdGguaW11bChaZSxRdCl8MCl8MCkrKCg4MTkx'@; put 'JihtPShtPW0rTWF0aC5pbXVsKFplLHRuKXwwKStNYXRoLmltdWwoUWUsUXQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwoUWUsdG4pfDApKyhtPj4+MTMpfDApKyhQcj4+PjI2KXwwLFByJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxkbiksbT0obT1NYXRoLmltdWwoTmUsZnQpKStN'@; put 'YXRoLmltdWwodXQsZG4pfDAsQT1NYXRoLmltdWwodXQsZnQpLEU9RStNYXRoLmltdWwocnQsWnQpfDAsbT0obT1tK01hdGguaW11bChydCxrdCl8MCkrTWF0aC5pbXVsKEtlLFp0KXwwLEE9QStNYXRoLmltdWwoS2Usa3QpfDAsRT1FK01hdGguaW11bCh5dCxvdCl8MCxtPShtPW0rTWF0aC5p'@; put 'bXVsKHl0LHp0KXwwKStNYXRoLmltdWwoTXQsb3QpfDAsQT1BK01hdGguaW11bChNdCx6dCl8MCxFPUUrTWF0aC5pbXVsKG50LFdlKXwwLG09KG09bStNYXRoLmltdWwobnQsQXQpfDApK01hdGguaW11bChKZSxXZSl8MCxBPUErTWF0aC5pbXVsKEplLEF0KXwwLEU9RStNYXRoLmltdWwoRGUs'@; put 'aHQpfDAsbT0obT1tK01hdGguaW11bChEZSxFdCl8MCkrTWF0aC5pbXVsKGtlLGh0KXwwLEE9QStNYXRoLmltdWwoa2UsRXQpfDAsRT1FK01hdGguaW11bChSZSxhbil8MCxtPShtPW0rTWF0aC5pbXVsKFJlLGp0KXwwKStNYXRoLmltdWwoSWUsYW4pfDAsQT1BK01hdGguaW11bChJZSxqdCl8'@; put 'MCxFPUUrTWF0aC5pbXVsKGplLGNuKXwwLG09KG09bStNYXRoLmltdWwoamUsZm4pfDApK01hdGguaW11bChBZSxjbil8MCxBPUErTWF0aC5pbXVsKEFlLGZuKXwwO3ZhciBZaT0oVSsoRT1FK01hdGguaW11bCh4ZSxRdCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKHhlLHRuKXww'@; put 'KStNYXRoLmltdWwodmUsUXQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwodmUsdG4pfDApKyhtPj4+MTMpfDApKyhZaT4+PjI2KXwwLFlpJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxadCksbT0obT1NYXRoLmltdWwoTmUsa3QpKStNYXRoLmltdWwodXQsWnQpfDAsQT1NYXRoLmlt'@; put 'dWwodXQsa3QpLEU9RStNYXRoLmltdWwocnQsb3QpfDAsbT0obT1tK01hdGguaW11bChydCx6dCl8MCkrTWF0aC5pbXVsKEtlLG90KXwwLEE9QStNYXRoLmltdWwoS2UsenQpfDAsRT1FK01hdGguaW11bCh5dCxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKHl0LEF0KXwwKStNYXRoLmltdWwoTXQs'@; put 'V2UpfDAsQT1BK01hdGguaW11bChNdCxBdCl8MCxFPUUrTWF0aC5pbXVsKG50LGh0KXwwLG09KG09bStNYXRoLmltdWwobnQsRXQpfDApK01hdGguaW11bChKZSxodCl8MCxBPUErTWF0aC5pbXVsKEplLEV0KXwwLEU9RStNYXRoLmltdWwoRGUsYW4pfDAsbT0obT1tK01hdGguaW11bChEZSxq'@; put 'dCl8MCkrTWF0aC5pbXVsKGtlLGFuKXwwLEE9QStNYXRoLmltdWwoa2UsanQpfDAsRT1FK01hdGguaW11bChSZSxjbil8MCxtPShtPW0rTWF0aC5pbXVsKFJlLGZuKXwwKStNYXRoLmltdWwoSWUsY24pfDAsQT1BK01hdGguaW11bChJZSxmbil8MDt2YXIgZmE9KFUrKEU9RStNYXRoLmltdWwo'@; put 'amUsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChqZSx0bil8MCkrTWF0aC5pbXVsKEFlLFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKEFlLHRuKXwwKSsobT4+PjEzKXwwKSsoZmE+Pj4yNil8MCxmYSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsb3QpLG09KG09'@; put 'TWF0aC5pbXVsKE5lLHp0KSkrTWF0aC5pbXVsKHV0LG90KXwwLEE9TWF0aC5pbXVsKHV0LHp0KSxFPUUrTWF0aC5pbXVsKHJ0LFdlKXwwLG09KG09bStNYXRoLmltdWwocnQsQXQpfDApK01hdGguaW11bChLZSxXZSl8MCxBPUErTWF0aC5pbXVsKEtlLEF0KXwwLEU9RStNYXRoLmltdWwoeXQs'@; put 'aHQpfDAsbT0obT1tK01hdGguaW11bCh5dCxFdCl8MCkrTWF0aC5pbXVsKE10LGh0KXwwLEE9QStNYXRoLmltdWwoTXQsRXQpfDAsRT1FK01hdGguaW11bChudCxhbil8MCxtPShtPW0rTWF0aC5pbXVsKG50LGp0KXwwKStNYXRoLmltdWwoSmUsYW4pfDAsQT1BK01hdGguaW11bChKZSxqdCl8'@; put 'MCxFPUUrTWF0aC5pbXVsKERlLGNuKXwwLG09KG09bStNYXRoLmltdWwoRGUsZm4pfDApK01hdGguaW11bChrZSxjbil8MCxBPUErTWF0aC5pbXVsKGtlLGZuKXwwO3ZhciBucj0oVSsoRT1FK01hdGguaW11bChSZSxRdCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKFJlLHRuKXww'@; put 'KStNYXRoLmltdWwoSWUsUXQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwoSWUsdG4pfDApKyhtPj4+MTMpfDApKyhucj4+PjI2KXwwLG5yJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxXZSksbT0obT1NYXRoLmltdWwoTmUsQXQpKStNYXRoLmltdWwodXQsV2UpfDAsQT1NYXRoLmlt'@; put 'dWwodXQsQXQpLEU9RStNYXRoLmltdWwocnQsaHQpfDAsbT0obT1tK01hdGguaW11bChydCxFdCl8MCkrTWF0aC5pbXVsKEtlLGh0KXwwLEE9QStNYXRoLmltdWwoS2UsRXQpfDAsRT1FK01hdGguaW11bCh5dCxhbil8MCxtPShtPW0rTWF0aC5pbXVsKHl0LGp0KXwwKStNYXRoLmltdWwoTXQs'@; put 'YW4pfDAsQT1BK01hdGguaW11bChNdCxqdCl8MCxFPUUrTWF0aC5pbXVsKG50LGNuKXwwLG09KG09bStNYXRoLmltdWwobnQsZm4pfDApK01hdGguaW11bChKZSxjbil8MCxBPUErTWF0aC5pbXVsKEplLGZuKXwwO3ZhciBvYT0oVSsoRT1FK01hdGguaW11bChEZSxRdCl8MCl8MCkrKCg4MTkx'@; put 'JihtPShtPW0rTWF0aC5pbXVsKERlLHRuKXwwKStNYXRoLmltdWwoa2UsUXQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwoa2UsdG4pfDApKyhtPj4+MTMpfDApKyhvYT4+PjI2KXwwLG9hJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxodCksbT0obT1NYXRoLmltdWwoTmUsRXQpKStN'@; put 'YXRoLmltdWwodXQsaHQpfDAsQT1NYXRoLmltdWwodXQsRXQpLEU9RStNYXRoLmltdWwocnQsYW4pfDAsbT0obT1tK01hdGguaW11bChydCxqdCl8MCkrTWF0aC5pbXVsKEtlLGFuKXwwLEE9QStNYXRoLmltdWwoS2UsanQpfDAsRT1FK01hdGguaW11bCh5dCxjbil8MCxtPShtPW0rTWF0aC5p'@; put 'bXVsKHl0LGZuKXwwKStNYXRoLmltdWwoTXQsY24pfDAsQT1BK01hdGguaW11bChNdCxmbil8MDt2YXIgX2E9KFUrKEU9RStNYXRoLmltdWwobnQsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChudCx0bil8MCkrTWF0aC5pbXVsKEplLFF0KXwwKSk8PDEzKXwwO1U9KChBPUEr'@; put 'TWF0aC5pbXVsKEplLHRuKXwwKSsobT4+PjEzKXwwKSsoX2E+Pj4yNil8MCxfYSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsYW4pLG09KG09TWF0aC5pbXVsKE5lLGp0KSkrTWF0aC5pbXVsKHV0LGFuKXwwLEE9TWF0aC5pbXVsKHV0LGp0KSxFPUUrTWF0aC5pbXVsKHJ0LGNuKXwwLG09KG09'@; put 'bStNYXRoLmltdWwocnQsZm4pfDApK01hdGguaW11bChLZSxjbil8MCxBPUErTWF0aC5pbXVsKEtlLGZuKXwwO3ZhciBPYT0oVSsoRT1FK01hdGguaW11bCh5dCxRdCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKHl0LHRuKXwwKStNYXRoLmltdWwoTXQsUXQpfDApKTw8MTMpfDA7'@; put 'VT0oKEE9QStNYXRoLmltdWwoTXQsdG4pfDApKyhtPj4+MTMpfDApKyhPYT4+PjI2KXwwLE9hJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxjbiksbT0obT1NYXRoLmltdWwoTmUsZm4pKStNYXRoLmltdWwodXQsY24pfDAsQT1NYXRoLmltdWwodXQsZm4pO3ZhciBOYT0oVSsoRT1FK01hdGgu'@; put 'aW11bChydCxRdCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKHJ0LHRuKXwwKStNYXRoLmltdWwoS2UsUXQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwoS2UsdG4pfDApKyhtPj4+MTMpfDApKyhOYT4+PjI2KXwwLE5hJj02NzEwODg2Mzt2YXIgZWk9KFUrKEU9TWF0aC5p'@; put 'bXVsKE5lLFF0KSl8MCkrKCg4MTkxJihtPShtPU1hdGguaW11bChOZSx0bikpK01hdGguaW11bCh1dCxRdCl8MCkpPDwxMyl8MDtyZXR1cm4gVT0oKEE9TWF0aC5pbXVsKHV0LHRuKSkrKG0+Pj4xMyl8MCkrKGVpPj4+MjYpfDAsZWkmPTY3MTA4ODYzLFZbMF09Y2EsVlsxXT14aSxWWzJdPXly'@; put 'LFZbM109R24sVls0XT1LaSxWWzVdPUpyLFZbNl09UXIsVls3XT1OaSxWWzhdPUhpLFZbOV09SWEsVlsxMF09UHIsVlsxMV09WWksVlsxMl09ZmEsVlsxM109bnIsVlsxNF09b2EsVlsxNV09X2EsVlsxNl09T2EsVlsxN109TmEsVlsxOF09ZWksMCE9PVUmJihWWzE5XT1VLHgubGVuZ3RoKysp'@; put 'LHh9O2Z1bmN0aW9uIFEoeixnLHkpe3JldHVybihuZXcgcSkubXVscCh6LGcseSl9ZnVuY3Rpb24gcSh6LGcpe3RoaXMueD16LHRoaXMueT1nfU1hdGguaW11bHx8KFo9Vyksdy5wcm90b3R5cGUubXVsVG89ZnVuY3Rpb24oZyx5KXt2YXIgeCxDPXRoaXMubGVuZ3RoK2cubGVuZ3RoO3JldHVy'@; put 'biB4PTEwPT09dGhpcy5sZW5ndGgmJjEwPT09Zy5sZW5ndGg/Wih0aGlzLGcseSk6Qzw2Mz9XKHRoaXMsZyx5KTpDPDEwMjQ/ZnVuY3Rpb24gWCh6LGcseSl7eS5uZWdhdGl2ZT1nLm5lZ2F0aXZlXnoubmVnYXRpdmUseS5sZW5ndGg9ei5sZW5ndGgrZy5sZW5ndGg7Zm9yKHZhciB4PTAsQz0w'@; put 'LFQ9MDtUPHkubGVuZ3RoLTE7VCsrKXt2YXIgVj1DO0M9MDtmb3IodmFyIFU9NjcxMDg4NjMmeCxFPU1hdGgubWluKFQsZy5sZW5ndGgtMSksbT1NYXRoLm1heCgwLFQtei5sZW5ndGgrMSk7bTw9RTttKyspe3ZhciBsZT0oMHx6LndvcmRzW1QtbV0pKigwfGcud29yZHNbbV0pLHdlPTY3MTA4'@; put 'ODYzJmxlO1U9NjcxMDg4NjMmKHdlPXdlK1V8MCksQys9KFY9KFY9VisobGUvNjcxMDg4NjR8MCl8MCkrKHdlPj4+MjYpfDApPj4+MjYsViY9NjcxMDg4NjN9eS53b3Jkc1tUXT1VLHg9VixWPUN9cmV0dXJuIDAhPT14P3kud29yZHNbVF09eDp5Lmxlbmd0aC0tLHkuc3RyaXAoKX0odGhpcyxn'@; put 'LHkpOlEodGhpcyxnLHkpLHh9LHEucHJvdG90eXBlLm1ha2VSQlQ9ZnVuY3Rpb24oZyl7Zm9yKHZhciB5PW5ldyBBcnJheShnKSx4PXcucHJvdG90eXBlLl9jb3VudEJpdHMoZyktMSxDPTA7QzxnO0MrKyl5W0NdPXRoaXMucmV2QmluKEMseCxnKTtyZXR1cm4geX0scS5wcm90b3R5cGUucmV2'@; put 'QmluPWZ1bmN0aW9uKGcseSx4KXtpZigwPT09Z3x8Zz09PXgtMSlyZXR1cm4gZztmb3IodmFyIEM9MCxUPTA7VDx5O1QrKylDfD0oMSZnKTw8eS1ULTEsZz4+PTE7cmV0dXJuIEN9LHEucHJvdG90eXBlLnBlcm11dGU9ZnVuY3Rpb24oZyx5LHgsQyxULFYpe2Zvcih2YXIgVT0wO1U8VjtVKysp'@; put 'Q1tVXT15W2dbVV1dLFRbVV09eFtnW1VdXX0scS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKGcseSx4LEMsVCxWKXt0aGlzLnBlcm11dGUoVixnLHkseCxDLFQpO2Zvcih2YXIgVT0xO1U8VDtVPDw9MSlmb3IodmFyIEU9VTw8MSxtPU1hdGguY29zKDIqTWF0aC5QSS9FKSxBPU1hdGgu'@; put 'c2luKDIqTWF0aC5QSS9FKSxhZT0wO2FlPFQ7YWUrPUUpZm9yKHZhciBuZT1tLGxlPUEsd2U9MDt3ZTxVO3dlKyspe3ZhciBaZT14W2FlK3dlXSxRZT1DW2FlK3dlXSxhdD14W2FlK3dlK1VdLHhlPUNbYWUrd2UrVV0sdmU9bmUqYXQtbGUqeGU7eGU9bmUqeGUrbGUqYXQseFthZSt3ZV09WmUr'@; put 'KGF0PXZlKSxDW2FlK3dlXT1RZSt4ZSx4W2FlK3dlK1VdPVplLWF0LENbYWUrd2UrVV09UWUteGUsd2UhPT1FJiYodmU9bSpuZS1BKmxlLGxlPW0qbGUrQSpuZSxuZT12ZSl9fSxxLnByb3RvdHlwZS5ndWVzc0xlbjEzYj1mdW5jdGlvbihnLHkpe3ZhciB4PTF8TWF0aC5tYXgoeSxnKSxDPTEm'@; put 'eCxUPTA7Zm9yKHg9eC8yfDA7eDt4Pj4+PTEpVCsrO3JldHVybiAxPDxUKzErQ30scS5wcm90b3R5cGUuY29uanVnYXRlPWZ1bmN0aW9uKGcseSx4KXtpZighKHg8PTEpKWZvcih2YXIgQz0wO0M8eC8yO0MrKyl7dmFyIFQ9Z1tDXTtnW0NdPWdbeC1DLTFdLGdbeC1DLTFdPVQsVD15W0NdLHlb'@; put 'Q109LXlbeC1DLTFdLHlbeC1DLTFdPS1UfX0scS5wcm90b3R5cGUubm9ybWFsaXplMTNiPWZ1bmN0aW9uKGcseSl7Zm9yKHZhciB4PTAsQz0wO0M8eS8yO0MrKyl7dmFyIFQ9ODE5MipNYXRoLnJvdW5kKGdbMipDKzFdL3kpK01hdGgucm91bmQoZ1syKkNdL3kpK3g7Z1tDXT02NzEwODg2MyZU'@; put 'LHg9VDw2NzEwODg2ND8wOlQvNjcxMDg4NjR8MH1yZXR1cm4gZ30scS5wcm90b3R5cGUuY29udmVydDEzYj1mdW5jdGlvbihnLHkseCxDKXtmb3IodmFyIFQ9MCxWPTA7Vjx5O1YrKyl4WzIqVl09ODE5MSYoVCs9MHxnW1ZdKSx4WzIqVisxXT04MTkxJihUPj4+PTEzKSxUPj4+PTEzO2ZvcihW'@; put 'PTIqeTtWPEM7KytWKXhbVl09MDtwKDA9PT1UKSxwKCEoLTgxOTImVCkpfSxxLnByb3RvdHlwZS5zdHViPWZ1bmN0aW9uKGcpe2Zvcih2YXIgeT1uZXcgQXJyYXkoZykseD0wO3g8Zzt4KyspeVt4XT0wO3JldHVybiB5fSxxLnByb3RvdHlwZS5tdWxwPWZ1bmN0aW9uKGcseSx4KXt2YXIgQz0y'@; put 'KnRoaXMuZ3Vlc3NMZW4xM2IoZy5sZW5ndGgseS5sZW5ndGgpLFQ9dGhpcy5tYWtlUkJUKEMpLFY9dGhpcy5zdHViKEMpLFU9bmV3IEFycmF5KEMpLEU9bmV3IEFycmF5KEMpLG09bmV3IEFycmF5KEMpLEE9bmV3IEFycmF5KEMpLGFlPW5ldyBBcnJheShDKSxuZT1uZXcgQXJyYXkoQyksbGU9'@; put 'eC53b3JkcztsZS5sZW5ndGg9Qyx0aGlzLmNvbnZlcnQxM2IoZy53b3JkcyxnLmxlbmd0aCxVLEMpLHRoaXMuY29udmVydDEzYih5LndvcmRzLHkubGVuZ3RoLEEsQyksdGhpcy50cmFuc2Zvcm0oVSxWLEUsbSxDLFQpLHRoaXMudHJhbnNmb3JtKEEsVixhZSxuZSxDLFQpO2Zvcih2YXIgd2U9'@; put 'MDt3ZTxDO3dlKyspe3ZhciBaZT1FW3dlXSphZVt3ZV0tbVt3ZV0qbmVbd2VdO21bd2VdPUVbd2VdKm5lW3dlXSttW3dlXSphZVt3ZV0sRVt3ZV09WmV9cmV0dXJuIHRoaXMuY29uanVnYXRlKEUsbSxDKSx0aGlzLnRyYW5zZm9ybShFLG0sbGUsVixDLFQpLHRoaXMuY29uanVnYXRlKGxlLFYs'@; put 'QyksdGhpcy5ub3JtYWxpemUxM2IobGUsQykseC5uZWdhdGl2ZT1nLm5lZ2F0aXZlXnkubmVnYXRpdmUseC5sZW5ndGg9Zy5sZW5ndGgreS5sZW5ndGgseC5zdHJpcCgpfSx3LnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oZyl7dmFyIHk9bmV3IHcobnVsbCk7cmV0dXJuIHkud29yZHM9bmV3IEFy'@; put 'cmF5KHRoaXMubGVuZ3RoK2cubGVuZ3RoKSx0aGlzLm11bFRvKGcseSl9LHcucHJvdG90eXBlLm11bGY9ZnVuY3Rpb24oZyl7dmFyIHk9bmV3IHcobnVsbCk7cmV0dXJuIHkud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK2cubGVuZ3RoKSxRKHRoaXMsZyx5KX0sdy5wcm90b3R5cGUuaW11'@; put 'bD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLm11bFRvKGcsdGhpcyl9LHcucHJvdG90eXBlLmltdWxuPWZ1bmN0aW9uKGcpe3AoIm51bWJlciI9PXR5cGVvZiBnKSxwKGc8NjcxMDg4NjQpO2Zvcih2YXIgeT0wLHg9MDt4PHRoaXMubGVuZ3RoO3grKyl7dmFyIEM9KDB8dGhpcy53'@; put 'b3Jkc1t4XSkqZyxUPSg2NzEwODg2MyZDKSsoNjcxMDg4NjMmeSk7eT4+PTI2LHkrPUMvNjcxMDg4NjR8MCx5Kz1UPj4+MjYsdGhpcy53b3Jkc1t4XT02NzEwODg2MyZUfXJldHVybiAwIT09eSYmKHRoaXMud29yZHNbeF09eSx0aGlzLmxlbmd0aCsrKSx0aGlzLmxlbmd0aD0wPT09Zz8xOnRo'@; put 'aXMubGVuZ3RoLHRoaXN9LHcucHJvdG90eXBlLm11bG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbihnKX0sdy5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSx3LnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMu'@; put 'aW11bCh0aGlzLmNsb25lKCkpfSx3LnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oZyl7dmFyIHk9ZnVuY3Rpb24gQih6KXtmb3IodmFyIGc9bmV3IEFycmF5KHouYml0TGVuZ3RoKCkpLHk9MDt5PGcubGVuZ3RoO3krKyl7dmFyIEM9eSUyNjtnW3ldPSh6LndvcmRzW3kvMjZ8MF0mMTw8Qyk+Pj5D'@; put 'fXJldHVybiBnfShnKTtpZigwPT09eS5sZW5ndGgpcmV0dXJuIG5ldyB3KDEpO2Zvcih2YXIgeD10aGlzLEM9MDtDPHkubGVuZ3RoJiYwPT09eVtDXTtDKysseD14LnNxcigpKTtpZigrK0M8eS5sZW5ndGgpZm9yKHZhciBUPXguc3FyKCk7Qzx5Lmxlbmd0aDtDKyssVD1ULnNxcigpKTAhPT15'@; put 'W0NdJiYoeD14Lm11bChUKSk7cmV0dXJuIHh9LHcucHJvdG90eXBlLml1c2hsbj1mdW5jdGlvbihnKXtwKCJudW1iZXIiPT10eXBlb2YgZyYmZz49MCk7dmFyIFQseT1nJTI2LHg9KGcteSkvMjYsQz02NzEwODg2Mz4+PjI2LXk8PDI2LXk7aWYoMCE9PXkpe3ZhciBWPTA7Zm9yKFQ9MDtUPHRo'@; put 'aXMubGVuZ3RoO1QrKyl7dmFyIFU9dGhpcy53b3Jkc1tUXSZDO3RoaXMud29yZHNbVF09KDB8dGhpcy53b3Jkc1tUXSktVTw8eXxWLFY9VT4+PjI2LXl9ViYmKHRoaXMud29yZHNbVF09Vix0aGlzLmxlbmd0aCsrKX1pZigwIT09eCl7Zm9yKFQ9dGhpcy5sZW5ndGgtMTtUPj0wO1QtLSl0aGlz'@; put 'LndvcmRzW1QreF09dGhpcy53b3Jkc1tUXTtmb3IoVD0wO1Q8eDtUKyspdGhpcy53b3Jkc1tUXT0wO3RoaXMubGVuZ3RoKz14fXJldHVybiB0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKGcpe3JldHVybiBwKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hsbihn'@; put 'KX0sdy5wcm90b3R5cGUuaXVzaHJuPWZ1bmN0aW9uKGcseSx4KXt2YXIgQztwKCJudW1iZXIiPT10eXBlb2YgZyYmZz49MCksQz15Pyh5LXklMjYpLzI2OjA7dmFyIFQ9ZyUyNixWPU1hdGgubWluKChnLVQpLzI2LHRoaXMubGVuZ3RoKSxVPTY3MTA4ODYzXjY3MTA4ODYzPj4+VDw8VCxFPXg7'@; put 'aWYoQy09VixDPU1hdGgubWF4KDAsQyksRSl7Zm9yKHZhciBtPTA7bTxWO20rKylFLndvcmRzW21dPXRoaXMud29yZHNbbV07RS5sZW5ndGg9Vn1pZigwIT09VilpZih0aGlzLmxlbmd0aD5WKWZvcih0aGlzLmxlbmd0aC09VixtPTA7bTx0aGlzLmxlbmd0aDttKyspdGhpcy53b3Jkc1ttXT10'@; put 'aGlzLndvcmRzW20rVl07ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgQT0wO2ZvcihtPXRoaXMubGVuZ3RoLTE7bT49MCYmKDAhPT1BfHxtPj1DKTttLS0pe3ZhciBhZT0wfHRoaXMud29yZHNbbV07dGhpcy53b3Jkc1ttXT1BPDwyNi1UfGFlPj4+VCxBPWFlJlV9cmV0'@; put 'dXJuIEUmJjAhPT1BJiYoRS53b3Jkc1tFLmxlbmd0aCsrXT1BKSwwPT09dGhpcy5sZW5ndGgmJih0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MSksdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5pc2hybj1mdW5jdGlvbihnLHkseCl7cmV0dXJuIHAoMD09PXRoaXMubmVnYXRpdmUpLHRo'@; put 'aXMuaXVzaHJuKGcseSx4KX0sdy5wcm90b3R5cGUuc2hsbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaGxuKGcpfSx3LnByb3RvdHlwZS51c2hsbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hsbihnKX0sdy5wcm90b3R5cGUuc2hybj1mdW5jdGlvbihn'@; put 'KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKGcpfSx3LnByb3RvdHlwZS51c2hybj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hybihnKX0sdy5wcm90b3R5cGUudGVzdG49ZnVuY3Rpb24oZyl7cCgibnVtYmVyIj09dHlwZW9mIGcmJmc+PTApO3ZhciB5PWclMjYseD0o'@; put 'Zy15KS8yNjtyZXR1cm4hKHRoaXMubGVuZ3RoPD14fHwhKHRoaXMud29yZHNbeF0mMTw8eSkpfSx3LnByb3RvdHlwZS5pbWFza249ZnVuY3Rpb24oZyl7cCgibnVtYmVyIj09dHlwZW9mIGcmJmc+PTApO3ZhciB5PWclMjYseD0oZy15KS8yNjtyZXR1cm4gcCgwPT09dGhpcy5uZWdhdGl2ZSwi'@; put 'aW1hc2tuIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZSBudW1iZXJzIiksdGhpcy5sZW5ndGg8PXg/dGhpczooMCE9PXkmJngrKyx0aGlzLmxlbmd0aD1NYXRoLm1pbih4LHRoaXMubGVuZ3RoKSwwIT09eSYmKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0mPTY3MTA4ODYzXjY3MTA4ODYzPj4+'@; put 'eTw8eSksdGhpcy5zdHJpcCgpKX0sdy5wcm90b3R5cGUubWFza249ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbWFza24oZyl9LHcucHJvdG90eXBlLmlhZGRuPWZ1bmN0aW9uKGcpe3JldHVybiBwKCJudW1iZXIiPT10eXBlb2YgZykscChnPDY3MTA4ODY0KSxnPDA/dGhpcy5p'@; put 'c3VibigtZyk6MCE9PXRoaXMubmVnYXRpdmU/MT09PXRoaXMubGVuZ3RoJiYoMHx0aGlzLndvcmRzWzBdKTxnPyh0aGlzLndvcmRzWzBdPWctKDB8dGhpcy53b3Jkc1swXSksdGhpcy5uZWdhdGl2ZT0wLHRoaXMpOih0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pc3VibihnKSx0aGlzLm5lZ2F0aXZl'@; put 'PTEsdGhpcyk6dGhpcy5faWFkZG4oZyl9LHcucHJvdG90eXBlLl9pYWRkbj1mdW5jdGlvbihnKXt0aGlzLndvcmRzWzBdKz1nO2Zvcih2YXIgeT0wO3k8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbeV0+PTY3MTA4ODY0O3krKyl0aGlzLndvcmRzW3ldLT02NzEwODg2NCx5PT09dGhpcy5sZW5n'@; put 'dGgtMT90aGlzLndvcmRzW3krMV09MTp0aGlzLndvcmRzW3krMV0rKztyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgseSsxKSx0aGlzfSx3LnByb3RvdHlwZS5pc3Vibj1mdW5jdGlvbihnKXtpZihwKCJudW1iZXIiPT10eXBlb2YgZykscChnPDY3MTA4ODY0KSxnPDAp'@; put 'cmV0dXJuIHRoaXMuaWFkZG4oLWcpO2lmKDAhPT10aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkbihnKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcztpZih0aGlzLndvcmRzWzBdLT1nLDE9PT10aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1swXTwwKXRoaXMud29yZHNb'@; put 'MF09LXRoaXMud29yZHNbMF0sdGhpcy5uZWdhdGl2ZT0xO2Vsc2UgZm9yKHZhciB5PTA7eTx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1t5XTwwO3krKyl0aGlzLndvcmRzW3ldKz02NzEwODg2NCx0aGlzLndvcmRzW3krMV0tPTE7cmV0dXJuIHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuYWRk'@; put 'bj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhZGRuKGcpfSx3LnByb3RvdHlwZS5zdWJuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Ym4oZyl9LHcucHJvdG90eXBlLmlhYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXN9LHcucHJv'@; put 'dG90eXBlLmFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaWFicygpfSx3LnByb3RvdHlwZS5faXNobG5zdWJtdWw9ZnVuY3Rpb24oZyx5LHgpe3ZhciBUO3RoaXMuX2V4cGFuZChnLmxlbmd0aCt4KTt2YXIgVixVPTA7Zm9yKFQ9MDtUPGcubGVuZ3RoO1QrKyl7Vj0oMHx0aGlz'@; put 'LndvcmRzW1QreF0pK1U7dmFyIEU9KDB8Zy53b3Jkc1tUXSkqeTtVPSgoVi09NjcxMDg4NjMmRSk+PjI2KS0oRS82NzEwODg2NHwwKSx0aGlzLndvcmRzW1QreF09NjcxMDg4NjMmVn1mb3IoO1Q8dGhpcy5sZW5ndGgteDtUKyspVT0oVj0oMHx0aGlzLndvcmRzW1QreF0pK1UpPj4yNix0aGlz'@; put 'LndvcmRzW1QreF09NjcxMDg4NjMmVjtpZigwPT09VSlyZXR1cm4gdGhpcy5zdHJpcCgpO2ZvcihwKC0xPT09VSksVT0wLFQ9MDtUPHRoaXMubGVuZ3RoO1QrKylVPShWPS0oMHx0aGlzLndvcmRzW1RdKStVKT4+MjYsdGhpcy53b3Jkc1tUXT02NzEwODg2MyZWO3JldHVybiB0aGlzLm5lZ2F0'@; put 'aXZlPTEsdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbihnLHkpe3ZhciB4LEM9dGhpcy5jbG9uZSgpLFQ9ZyxWPTB8VC53b3Jkc1tULmxlbmd0aC0xXTswIT0oeD0yNi10aGlzLl9jb3VudEJpdHMoVikpJiYoVD1ULnVzaGxuKHgpLEMuaXVzaGxuKHgpLFY9MHxU'@; put 'LndvcmRzW1QubGVuZ3RoLTFdKTt2YXIgbSxFPUMubGVuZ3RoLVQubGVuZ3RoO2lmKCJtb2QiIT09eSl7KG09bmV3IHcobnVsbCkpLmxlbmd0aD1FKzEsbS53b3Jkcz1uZXcgQXJyYXkobS5sZW5ndGgpO2Zvcih2YXIgQT0wO0E8bS5sZW5ndGg7QSsrKW0ud29yZHNbQV09MH12YXIgYWU9Qy5j'@; put 'bG9uZSgpLl9pc2hsbnN1Ym11bChULDEsRSk7MD09PWFlLm5lZ2F0aXZlJiYoQz1hZSxtJiYobS53b3Jkc1tFXT0xKSk7Zm9yKHZhciBuZT1FLTE7bmU+PTA7bmUtLSl7dmFyIGxlPTY3MTA4ODY0KigwfEMud29yZHNbVC5sZW5ndGgrbmVdKSsoMHxDLndvcmRzW1QubGVuZ3RoK25lLTFdKTtm'@; put 'b3IobGU9TWF0aC5taW4obGUvVnwwLDY3MTA4ODYzKSxDLl9pc2hsbnN1Ym11bChULGxlLG5lKTswIT09Qy5uZWdhdGl2ZTspbGUtLSxDLm5lZ2F0aXZlPTAsQy5faXNobG5zdWJtdWwoVCwxLG5lKSxDLmlzWmVybygpfHwoQy5uZWdhdGl2ZV49MSk7bSYmKG0ud29yZHNbbmVdPWxlKX1yZXR1'@; put 'cm4gbSYmbS5zdHJpcCgpLEMuc3RyaXAoKSwiZGl2IiE9PXkmJjAhPT14JiZDLml1c2hybih4KSx7ZGl2Om18fG51bGwsbW9kOkN9fSx3LnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24oZyx5LHgpe3JldHVybiBwKCFnLmlzWmVybygpKSx0aGlzLmlzWmVybygpP3tkaXY6bmV3IHcoMCksbW9k'@; put 'Om5ldyB3KDApfTowIT09dGhpcy5uZWdhdGl2ZSYmMD09PWcubmVnYXRpdmU/KFY9dGhpcy5uZWcoKS5kaXZtb2QoZyx5KSwibW9kIiE9PXkmJihDPVYuZGl2Lm5lZygpKSwiZGl2IiE9PXkmJihUPVYubW9kLm5lZygpLHgmJjAhPT1ULm5lZ2F0aXZlJiZULmlhZGQoZykpLHtkaXY6Qyxtb2Q6'@; put 'VH0pOjA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Zy5uZWdhdGl2ZT8oVj10aGlzLmRpdm1vZChnLm5lZygpLHkpLCJtb2QiIT09eSYmKEM9Vi5kaXYubmVnKCkpLHtkaXY6Qyxtb2Q6Vi5tb2R9KTp0aGlzLm5lZ2F0aXZlJmcubmVnYXRpdmU/KFY9dGhpcy5uZWcoKS5kaXZtb2QoZy5uZWcoKSx5'@; put 'KSwiZGl2IiE9PXkmJihUPVYubW9kLm5lZygpLHgmJjAhPT1ULm5lZ2F0aXZlJiZULmlzdWIoZykpLHtkaXY6Vi5kaXYsbW9kOlR9KTpnLmxlbmd0aD50aGlzLmxlbmd0aHx8dGhpcy5jbXAoZyk8MD97ZGl2Om5ldyB3KDApLG1vZDp0aGlzfToxPT09Zy5sZW5ndGg/ImRpdiI9PT15P3tkaXY6'@; put 'dGhpcy5kaXZuKGcud29yZHNbMF0pLG1vZDpudWxsfToibW9kIj09PXk/e2RpdjpudWxsLG1vZDpuZXcgdyh0aGlzLm1vZG4oZy53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bihnLndvcmRzWzBdKSxtb2Q6bmV3IHcodGhpcy5tb2RuKGcud29yZHNbMF0pKX06dGhpcy5fd29yZERpdihnLHkp'@; put 'O3ZhciBDLFQsVn0sdy5wcm90b3R5cGUuZGl2PWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmRpdm1vZChnLCJkaXYiLCExKS5kaXZ9LHcucHJvdG90eXBlLm1vZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5kaXZtb2QoZywibW9kIiwhMSkubW9kfSx3LnByb3RvdHlwZS51bW9kPWZ1bmN0aW9u'@; put 'KGcpe3JldHVybiB0aGlzLmRpdm1vZChnLCJtb2QiLCEwKS5tb2R9LHcucHJvdG90eXBlLmRpdlJvdW5kPWZ1bmN0aW9uKGcpe3ZhciB5PXRoaXMuZGl2bW9kKGcpO2lmKHkubW9kLmlzWmVybygpKXJldHVybiB5LmRpdjt2YXIgeD0wIT09eS5kaXYubmVnYXRpdmU/eS5tb2QuaXN1YihnKTp5'@; put 'Lm1vZCxDPWcudXNocm4oMSksVD1nLmFuZGxuKDEpLFY9eC5jbXAoQyk7cmV0dXJuIFY8MHx8MT09PVQmJjA9PT1WP3kuZGl2OjAhPT15LmRpdi5uZWdhdGl2ZT95LmRpdi5pc3VibigxKTp5LmRpdi5pYWRkbigxKX0sdy5wcm90b3R5cGUubW9kbj1mdW5jdGlvbihnKXtwKGc8PTY3MTA4ODYz'@; put 'KTtmb3IodmFyIHk9KDE8PDI2KSVnLHg9MCxDPXRoaXMubGVuZ3RoLTE7Qz49MDtDLS0peD0oeSp4KygwfHRoaXMud29yZHNbQ10pKSVnO3JldHVybiB4fSx3LnByb3RvdHlwZS5pZGl2bj1mdW5jdGlvbihnKXtwKGc8PTY3MTA4ODYzKTtmb3IodmFyIHk9MCx4PXRoaXMubGVuZ3RoLTE7eD49'@; put 'MDt4LS0pe3ZhciBDPSgwfHRoaXMud29yZHNbeF0pKzY3MTA4ODY0Knk7dGhpcy53b3Jkc1t4XT1DL2d8MCx5PUMlZ31yZXR1cm4gdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaWRpdm4oZyl9LHcucHJvdG90eXBlLmVnY2Q9'@; put 'ZnVuY3Rpb24oZyl7cCgwPT09Zy5uZWdhdGl2ZSkscCghZy5pc1plcm8oKSk7dmFyIHk9dGhpcyx4PWcuY2xvbmUoKTt5PTAhPT15Lm5lZ2F0aXZlP3kudW1vZChnKTp5LmNsb25lKCk7Zm9yKHZhciBDPW5ldyB3KDEpLFQ9bmV3IHcoMCksVj1uZXcgdygwKSxVPW5ldyB3KDEpLEU9MDt5Lmlz'@; put 'RXZlbigpJiZ4LmlzRXZlbigpOyl5Lml1c2hybigxKSx4Lml1c2hybigxKSwrK0U7Zm9yKHZhciBtPXguY2xvbmUoKSxBPXkuY2xvbmUoKTsheS5pc1plcm8oKTspe2Zvcih2YXIgYWU9MCxuZT0xOyEoeS53b3Jkc1swXSZuZSkmJmFlPDI2OysrYWUsbmU8PD0xKTtpZihhZT4wKWZvcih5Lml1'@; put 'c2hybihhZSk7YWUtLSA+MDspKEMuaXNPZGQoKXx8VC5pc09kZCgpKSYmKEMuaWFkZChtKSxULmlzdWIoQSkpLEMuaXVzaHJuKDEpLFQuaXVzaHJuKDEpO2Zvcih2YXIgbGU9MCx3ZT0xOyEoeC53b3Jkc1swXSZ3ZSkmJmxlPDI2OysrbGUsd2U8PD0xKTtpZihsZT4wKWZvcih4Lml1c2hybihs'@; put 'ZSk7bGUtLSA+MDspKFYuaXNPZGQoKXx8VS5pc09kZCgpKSYmKFYuaWFkZChtKSxVLmlzdWIoQSkpLFYuaXVzaHJuKDEpLFUuaXVzaHJuKDEpO3kuY21wKHgpPj0wPyh5LmlzdWIoeCksQy5pc3ViKFYpLFQuaXN1YihVKSk6KHguaXN1Yih5KSxWLmlzdWIoQyksVS5pc3ViKFQpKX1yZXR1cm57'@; put 'YTpWLGI6VSxnY2Q6eC5pdXNobG4oRSl9fSx3LnByb3RvdHlwZS5faW52bXA9ZnVuY3Rpb24oZyl7cCgwPT09Zy5uZWdhdGl2ZSkscCghZy5pc1plcm8oKSk7dmFyIGFlLHk9dGhpcyx4PWcuY2xvbmUoKTt5PTAhPT15Lm5lZ2F0aXZlP3kudW1vZChnKTp5LmNsb25lKCk7Zm9yKHZhciBDPW5l'@; put 'dyB3KDEpLFQ9bmV3IHcoMCksVj14LmNsb25lKCk7eS5jbXBuKDEpPjAmJnguY21wbigxKT4wOyl7Zm9yKHZhciBVPTAsRT0xOyEoeS53b3Jkc1swXSZFKSYmVTwyNjsrK1UsRTw8PTEpO2lmKFU+MClmb3IoeS5pdXNocm4oVSk7VS0tID4wOylDLmlzT2RkKCkmJkMuaWFkZChWKSxDLml1c2hy'@; put 'bigxKTtmb3IodmFyIG09MCxBPTE7ISh4LndvcmRzWzBdJkEpJiZtPDI2OysrbSxBPDw9MSk7aWYobT4wKWZvcih4Lml1c2hybihtKTttLS0gPjA7KVQuaXNPZGQoKSYmVC5pYWRkKFYpLFQuaXVzaHJuKDEpO3kuY21wKHgpPj0wPyh5LmlzdWIoeCksQy5pc3ViKFQpKTooeC5pc3ViKHkpLFQu'@; put 'aXN1YihDKSl9cmV0dXJuKGFlPTA9PT15LmNtcG4oMSk/QzpUKS5jbXBuKDApPDAmJmFlLmlhZGQoZyksYWV9LHcucHJvdG90eXBlLmdjZD1mdW5jdGlvbihnKXtpZih0aGlzLmlzWmVybygpKXJldHVybiBnLmFicygpO2lmKGcuaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIHk9dGhp'@; put 'cy5jbG9uZSgpLHg9Zy5jbG9uZSgpO3kubmVnYXRpdmU9MCx4Lm5lZ2F0aXZlPTA7Zm9yKHZhciBDPTA7eS5pc0V2ZW4oKSYmeC5pc0V2ZW4oKTtDKyspeS5pdXNocm4oMSkseC5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO3kuaXNFdmVuKCk7KXkuaXVzaHJuKDEpO2Zvcig7eC5pc0V2ZW4oKTsp'@; put 'eC5pdXNocm4oMSk7dmFyIFQ9eS5jbXAoeCk7aWYoVDwwKXt2YXIgVj15O3k9eCx4PVZ9ZWxzZSBpZigwPT09VHx8MD09PXguY21wbigxKSlicmVhazt5LmlzdWIoeCl9cmV0dXJuIHguaXVzaGxuKEMpfSx3LnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmVnY2QoZyku'@; put 'YS51bW9kKGcpfSx3LnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4hKDEmdGhpcy53b3Jkc1swXSl9LHcucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uKCl7cmV0dXJuISgxJn50aGlzLndvcmRzWzBdKX0sdy5wcm90b3R5cGUuYW5kbG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMu'@; put 'd29yZHNbMF0mZ30sdy5wcm90b3R5cGUuYmluY249ZnVuY3Rpb24oZyl7cCgibnVtYmVyIj09dHlwZW9mIGcpO3ZhciB5PWclMjYseD0oZy15KS8yNixDPTE8PHk7aWYodGhpcy5sZW5ndGg8PXgpcmV0dXJuIHRoaXMuX2V4cGFuZCh4KzEpLHRoaXMud29yZHNbeF18PUMsdGhpcztmb3IodmFy'@; put 'IFQ9QyxWPXg7MCE9PVQmJlY8dGhpcy5sZW5ndGg7VisrKXt2YXIgVT0wfHRoaXMud29yZHNbVl07VD0oVSs9VCk+Pj4yNix0aGlzLndvcmRzW1ZdPVUmPTY3MTA4ODYzfXJldHVybiAwIT09VCYmKHRoaXMud29yZHNbVl09VCx0aGlzLmxlbmd0aCsrKSx0aGlzfSx3LnByb3RvdHlwZS5pc1pl'@; put 'cm89ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXX0sdy5wcm90b3R5cGUuY21wbj1mdW5jdGlvbihnKXt2YXIgeCx5PWc8MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIXkpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJnkpcmV0dXJuIDE7'@; put 'aWYodGhpcy5zdHJpcCgpLHRoaXMubGVuZ3RoPjEpeD0xO2Vsc2V7eSYmKGc9LWcpLHAoZzw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIEM9MHx0aGlzLndvcmRzWzBdO3g9Qz09PWc/MDpDPGc/LTE6MX1yZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwteDp4fSx3LnByb3Rv'@; put 'dHlwZS5jbXA9ZnVuY3Rpb24oZyl7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1nLm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Zy5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgeT10aGlzLnVjbXAoZyk7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LXk6eX0s'@; put 'dy5wcm90b3R5cGUudWNtcD1mdW5jdGlvbihnKXtpZih0aGlzLmxlbmd0aD5nLmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDxnLmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIHk9MCx4PXRoaXMubGVuZ3RoLTE7eD49MDt4LS0pe3ZhciBDPTB8dGhpcy53b3Jkc1t4XSxUPTB8Zy53b3Jk'@; put 'c1t4XTtpZihDIT09VCl7QzxUP3k9LTE6Qz5UJiYoeT0xKTticmVha319cmV0dXJuIHl9LHcucHJvdG90eXBlLmd0bj1mdW5jdGlvbihnKXtyZXR1cm4gMT09PXRoaXMuY21wbihnKX0sdy5wcm90b3R5cGUuZ3Q9ZnVuY3Rpb24oZyl7cmV0dXJuIDE9PT10aGlzLmNtcChnKX0sdy5wcm90b3R5'@; put 'cGUuZ3Rlbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbXBuKGcpPj0wfSx3LnByb3RvdHlwZS5ndGU9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY21wKGcpPj0wfSx3LnByb3RvdHlwZS5sdG49ZnVuY3Rpb24oZyl7cmV0dXJuLTE9PT10aGlzLmNtcG4oZyl9LHcucHJvdG90eXBlLmx0PWZ1'@; put 'bmN0aW9uKGcpe3JldHVybi0xPT09dGhpcy5jbXAoZyl9LHcucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY21wbihnKTw9MH0sdy5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNtcChnKTw9MH0sdy5wcm90b3R5cGUuZXFuPWZ1bmN0aW9uKGcp'@; put 'e3JldHVybiAwPT09dGhpcy5jbXBuKGcpfSx3LnByb3RvdHlwZS5lcT1mdW5jdGlvbihnKXtyZXR1cm4gMD09PXRoaXMuY21wKGcpfSx3LnJlZD1mdW5jdGlvbihnKXtyZXR1cm4gbmV3IFNlKGcpfSx3LnByb3RvdHlwZS50b1JlZD1mdW5jdGlvbihnKXtyZXR1cm4gcCghdGhpcy5yZWQsIkFs'@; put 'cmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSxwKDA9PT10aGlzLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLGcuY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZChnKX0sdy5wcm90b3R5cGUuZnJvbVJlZD1mdW5jdGlvbigpe3JldHVybiBwKHRo'@; put 'aXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LHcucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5yZWQ9Zyx0aGlzfSx3LnByb3RvdHlwZS5mb3Jj'@; put 'ZVJlZD1mdW5jdGlvbihnKXtyZXR1cm4gcCghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZChnKX0sdy5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKGcpe3JldHVybiBwKHRoaXMucmVkLCJyZWRBZGQgd29ya3Mgb25seSB3'@; put 'aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsZyl9LHcucHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24oZyl7cmV0dXJuIHAodGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaWFkZCh0aGlzLGcpfSx3LnByb3RvdHlwZS5y'@; put 'ZWRTdWI9ZnVuY3Rpb24oZyl7cmV0dXJuIHAodGhpcy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyxnKX0sdy5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5'@; put 'IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsZyl9LHcucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnNobCh0aGlzLGcpfSx3LnByb3RvdHlwZS5y'@; put 'ZWRNdWw9ZnVuY3Rpb24oZyl7cmV0dXJuIHAodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLGcpLHRoaXMucmVkLm11bCh0aGlzLGcpfSx3LnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uKGcpe3JldHVybiBwKHRo'@; put 'aXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxnKSx0aGlzLnJlZC5pbXVsKHRoaXMsZyl9LHcucHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMucmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRo'@; put 'IHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FyKHRoaXMpfSx3LnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEo'@; put 'dGhpcyksdGhpcy5yZWQuaXNxcih0aGlzKX0sdy5wcm90b3R5cGUucmVkU3FydD1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcnQodGhpcyl9LHcucHJv'@; put 'dG90eXBlLnJlZEludm09ZnVuY3Rpb24oKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSx3LnByb3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4g'@; put 'cCh0aGlzLnJlZCwicmVkTmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0sdy5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKGcpe3JldHVybiBwKHRoaXMucmVkJiYhZy5yZWQsInJlZFBvdyhub3JtYWxO'@; put 'dW0pIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQucG93KHRoaXMsZyl9O3ZhciB0ZT17azI1NjpudWxsLHAyMjQ6bnVsbCxwMTkyOm51bGwscDI1NTE5Om51bGx9O2Z1bmN0aW9uIGllKHosZyl7dGhpcy5uYW1lPXosdGhpcy5wPW5ldyB3KGcsMTYpLHRoaXMubj10aGlzLnAu'@; put 'Yml0TGVuZ3RoKCksdGhpcy5rPW5ldyB3KDEpLml1c2hsbih0aGlzLm4pLmlzdWIodGhpcy5wKSx0aGlzLnRtcD10aGlzLl90bXAoKX1mdW5jdGlvbiBzZSgpe2llLmNhbGwodGhpcywiazI1NiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZm'@; put 'IGZmZmZmZmZlIGZmZmZmYzJmIil9ZnVuY3Rpb24gZ2UoKXtpZS5jYWxsKHRoaXMsInAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ1bmN0aW9uIF9lKCl7aWUuY2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYg'@; put 'ZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiBUZSgpe2llLmNhbGwodGhpcywiMjU1MTkiLCI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkIil9ZnVuY3Rpb24gU2Uo'@; put 'eil7aWYoInN0cmluZyI9PXR5cGVvZiB6KXt2YXIgZz13Ll9wcmltZSh6KTt0aGlzLm09Zy5wLHRoaXMucHJpbWU9Z31lbHNlIHAoei5ndG4oMSksIm1vZHVsdXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMSIpLHRoaXMubT16LHRoaXMucHJpbWU9bnVsbH1mdW5jdGlvbiB6ZSh6KXtTZS5jYWxs'@; put 'KHRoaXMseiksdGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9MCYmKHRoaXMuc2hpZnQrPTI2LXRoaXMuc2hpZnQlMjYpLHRoaXMucj1uZXcgdygxKS5pdXNobG4odGhpcy5zaGlmdCksdGhpcy5yMj10aGlzLmltb2QodGhpcy5yLnNxcigpKSx0aGlzLnJpbnY9'@; put 'dGhpcy5yLl9pbnZtcCh0aGlzLm0pLHRoaXMubWludj10aGlzLnJpbnYubXVsKHRoaXMucikuaXN1Ym4oMSkuZGl2KHRoaXMubSksdGhpcy5taW52PXRoaXMubWludi51bW9kKHRoaXMuciksdGhpcy5taW52PXRoaXMuci5zdWIodGhpcy5taW52KX1pZS5wcm90b3R5cGUuX3RtcD1mdW5jdGlv'@; put 'bigpe3ZhciBnPW5ldyB3KG51bGwpO3JldHVybiBnLndvcmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSksZ30saWUucHJvdG90eXBlLmlyZWR1Y2U9ZnVuY3Rpb24oZyl7dmFyIHgseT1nO2Rve3RoaXMuc3BsaXQoeSx0aGlzLnRtcCkseD0oeT0oeT10aGlzLmltdWxLKHkpKS5p'@; put 'YWRkKHRoaXMudG1wKSkuYml0TGVuZ3RoKCl9d2hpbGUoeD50aGlzLm4pO3ZhciBDPXg8dGhpcy5uPy0xOnkudWNtcCh0aGlzLnApO3JldHVybiAwPT09Qz8oeS53b3Jkc1swXT0wLHkubGVuZ3RoPTEpOkM+MD95LmlzdWIodGhpcy5wKTp2b2lkIDAhPT15LnN0cmlwP3kuc3RyaXAoKTp5Ll9z'@; put 'dHJpcCgpLHl9LGllLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihnLHkpe2cuaXVzaHJuKHRoaXMubiwwLHkpfSxpZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oZyl7cmV0dXJuIGcuaW11bCh0aGlzLmspfSxOKHNlLGllKSxzZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oZyx5KXtmb3Io'@; put 'dmFyIHg9NDE5NDMwMyxDPU1hdGgubWluKGcubGVuZ3RoLDkpLFQ9MDtUPEM7VCsrKXkud29yZHNbVF09Zy53b3Jkc1tUXTtpZih5Lmxlbmd0aD1DLGcubGVuZ3RoPD05KXJldHVybiBnLndvcmRzWzBdPTAsdm9pZChnLmxlbmd0aD0xKTt2YXIgVj1nLndvcmRzWzldO2Zvcih5LndvcmRzW3ku'@; put 'bGVuZ3RoKytdPVYmeCxUPTEwO1Q8Zy5sZW5ndGg7VCsrKXt2YXIgVT0wfGcud29yZHNbVF07Zy53b3Jkc1tULTEwXT0oVSZ4KTw8NHxWPj4+MjIsVj1VfWcud29yZHNbVC0xMF09Vj4+Pj0yMixnLmxlbmd0aC09MD09PVYmJmcubGVuZ3RoPjEwPzEwOjl9LHNlLnByb3RvdHlwZS5pbXVsSz1m'@; put 'dW5jdGlvbihnKXtnLndvcmRzW2cubGVuZ3RoXT0wLGcud29yZHNbZy5sZW5ndGgrMV09MCxnLmxlbmd0aCs9Mjtmb3IodmFyIHk9MCx4PTA7eDxnLmxlbmd0aDt4Kyspe3ZhciBDPTB8Zy53b3Jkc1t4XTtnLndvcmRzW3hdPTY3MTA4ODYzJih5Kz05NzcqQykseT02NCpDKyh5LzY3MTA4ODY0'@; put 'fDApfXJldHVybiAwPT09Zy53b3Jkc1tnLmxlbmd0aC0xXSYmKGcubGVuZ3RoLS0sMD09PWcud29yZHNbZy5sZW5ndGgtMV0mJmcubGVuZ3RoLS0pLGd9LE4oZ2UsaWUpLE4oX2UsaWUpLE4oVGUsaWUpLFRlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihnKXtmb3IodmFyIHk9MCx4PTA7eDxn'@; put 'Lmxlbmd0aDt4Kyspe3ZhciBDPTE5KigwfGcud29yZHNbeF0pK3ksVD02NzEwODg2MyZDO0M+Pj49MjYsZy53b3Jkc1t4XT1ULHk9Q31yZXR1cm4gMCE9PXkmJihnLndvcmRzW2cubGVuZ3RoKytdPXkpLGd9LHcuX3ByaW1lPWZ1bmN0aW9uKGcpe2lmKHRlW2ddKXJldHVybiB0ZVtnXTt2YXIg'@; put 'eTtpZigiazI1NiI9PT1nKXk9bmV3IHNlO2Vsc2UgaWYoInAyMjQiPT09Zyl5PW5ldyBnZTtlbHNlIGlmKCJwMTkyIj09PWcpeT1uZXcgX2U7ZWxzZXtpZigicDI1NTE5IiE9PWcpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHByaW1lICIrZyk7eT1uZXcgVGV9cmV0dXJuIHRlW2ddPXkseX0s'@; put 'U2UucHJvdG90eXBlLl92ZXJpZnkxPWZ1bmN0aW9uKGcpe3AoMD09PWcubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIikscChnLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxTZS5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24oZyx5KXtw'@; put 'KCEoZy5uZWdhdGl2ZXx5Lm5lZ2F0aXZlKSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxwKGcucmVkJiZnLnJlZD09PXkucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LFNlLnByb3RvdHlwZS5pbW9kPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLnByaW1l'@; put 'P3RoaXMucHJpbWUuaXJlZHVjZShnKS5fZm9yY2VSZWQodGhpcyk6Zy51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpfSxTZS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKGcpe3JldHVybiBnLmlzWmVybygpP2cuY2xvbmUoKTp0aGlzLm0uc3ViKGcpLl9mb3JjZVJlZCh0aGlzKX0sU2UucHJv'@; put 'dG90eXBlLmFkZD1mdW5jdGlvbihnLHkpe3RoaXMuX3ZlcmlmeTIoZyx5KTt2YXIgeD1nLmFkZCh5KTtyZXR1cm4geC5jbXAodGhpcy5tKT49MCYmeC5pc3ViKHRoaXMubSkseC5fZm9yY2VSZWQodGhpcyl9LFNlLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKGcseSl7dGhpcy5fdmVyaWZ5Mihn'@; put 'LHkpO3ZhciB4PWcuaWFkZCh5KTtyZXR1cm4geC5jbXAodGhpcy5tKT49MCYmeC5pc3ViKHRoaXMubSkseH0sU2UucHJvdG90eXBlLnN1Yj1mdW5jdGlvbihnLHkpe3RoaXMuX3ZlcmlmeTIoZyx5KTt2YXIgeD1nLnN1Yih5KTtyZXR1cm4geC5jbXBuKDApPDAmJnguaWFkZCh0aGlzLm0pLHgu'@; put 'X2ZvcmNlUmVkKHRoaXMpfSxTZS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihnLHkpe3RoaXMuX3ZlcmlmeTIoZyx5KTt2YXIgeD1nLmlzdWIoeSk7cmV0dXJuIHguY21wbigwKTwwJiZ4LmlhZGQodGhpcy5tKSx4fSxTZS5wcm90b3R5cGUuc2hsPWZ1bmN0aW9uKGcseSl7cmV0dXJuIHRoaXMu'@; put 'X3ZlcmlmeTEoZyksdGhpcy5pbW9kKGcudXNobG4oeSkpfSxTZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihnLHkpe3JldHVybiB0aGlzLl92ZXJpZnkyKGcseSksdGhpcy5pbW9kKGcuaW11bCh5KSl9LFNlLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oZyx5KXtyZXR1cm4gdGhpcy5fdmVyaWZ5'@; put 'MihnLHkpLHRoaXMuaW1vZChnLm11bCh5KSl9LFNlLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmltdWwoZyxnLmNsb25lKCkpfSxTZS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLm11bChnLGcpfSxTZS5wcm90b3R5cGUuc3FydD1mdW5jdGlv'@; put 'bihnKXtpZihnLmlzWmVybygpKXJldHVybiBnLmNsb25lKCk7dmFyIHk9dGhpcy5tLmFuZGxuKDMpO2lmKHAoeSUyPT0xKSwzPT09eSl7dmFyIHg9dGhpcy5tLmFkZChuZXcgdygxKSkuaXVzaHJuKDIpO3JldHVybiB0aGlzLnBvdyhnLHgpfWZvcih2YXIgQz10aGlzLm0uc3VibigxKSxUPTA7'@; put 'IUMuaXNaZXJvKCkmJjA9PT1DLmFuZGxuKDEpOylUKyssQy5pdXNocm4oMSk7cCghQy5pc1plcm8oKSk7dmFyIFY9bmV3IHcoMSkudG9SZWQodGhpcyksVT1WLnJlZE5lZygpLEU9dGhpcy5tLnN1Ym4oMSkuaXVzaHJuKDEpLG09dGhpcy5tLmJpdExlbmd0aCgpO2ZvcihtPW5ldyB3KDIqbSpt'@; put 'KS50b1JlZCh0aGlzKTswIT09dGhpcy5wb3cobSxFKS5jbXAoVSk7KW0ucmVkSUFkZChVKTtmb3IodmFyIEE9dGhpcy5wb3cobSxDKSxhZT10aGlzLnBvdyhnLEMuYWRkbigxKS5pdXNocm4oMSkpLG5lPXRoaXMucG93KGcsQyksbGU9VDswIT09bmUuY21wKFYpOyl7Zm9yKHZhciB3ZT1uZSxa'@; put 'ZT0wOzAhPT13ZS5jbXAoVik7WmUrKyl3ZT13ZS5yZWRTcXIoKTtwKFplPGxlKTt2YXIgUWU9dGhpcy5wb3coQSxuZXcgdygxKS5pdXNobG4obGUtWmUtMSkpO2FlPWFlLnJlZE11bChRZSksQT1RZS5yZWRTcXIoKSxuZT1uZS5yZWRNdWwoQSksbGU9WmV9cmV0dXJuIGFlfSxTZS5wcm90b3R5'@; put 'cGUuaW52bT1mdW5jdGlvbihnKXt2YXIgeT1nLl9pbnZtcCh0aGlzLm0pO3JldHVybiAwIT09eS5uZWdhdGl2ZT8oeS5uZWdhdGl2ZT0wLHRoaXMuaW1vZCh5KS5yZWROZWcoKSk6dGhpcy5pbW9kKHkpfSxTZS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKGcseSl7aWYoeS5pc1plcm8oKSlyZXR1'@; put 'cm4gbmV3IHcoMSkudG9SZWQodGhpcyk7aWYoMD09PXkuY21wbigxKSlyZXR1cm4gZy5jbG9uZSgpO3ZhciBDPW5ldyBBcnJheSgxNik7Q1swXT1uZXcgdygxKS50b1JlZCh0aGlzKSxDWzFdPWc7Zm9yKHZhciBUPTI7VDxDLmxlbmd0aDtUKyspQ1tUXT10aGlzLm11bChDW1QtMV0sZyk7dmFy'@; put 'IFY9Q1swXSxVPTAsRT0wLG09eS5iaXRMZW5ndGgoKSUyNjtmb3IoMD09PW0mJihtPTI2KSxUPXkubGVuZ3RoLTE7VD49MDtULS0pe2Zvcih2YXIgQT15LndvcmRzW1RdLGFlPW0tMTthZT49MDthZS0tKXt2YXIgbmU9QT4+YWUmMTtWIT09Q1swXSYmKFY9dGhpcy5zcXIoVikpLDAhPT1uZXx8'@; put 'MCE9PVU/KFU8PD0xLFV8PW5lLCg0PT0rK0V8fDA9PT1UJiYwPT09YWUpJiYoVj10aGlzLm11bChWLENbVV0pLEU9MCxVPTApKTpFPTB9bT0yNn1yZXR1cm4gVn0sU2UucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihnKXt2YXIgeT1nLnVtb2QodGhpcy5tKTtyZXR1cm4geT09PWc/eS5j'@; put 'bG9uZSgpOnl9LFNlLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbihnKXt2YXIgeT1nLmNsb25lKCk7cmV0dXJuIHkucmVkPW51bGwseX0sdy5tb250PWZ1bmN0aW9uKGcpe3JldHVybiBuZXcgemUoZyl9LE4oemUsU2UpLHplLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oZyl7'@; put 'cmV0dXJuIHRoaXMuaW1vZChnLnVzaGxuKHRoaXMuc2hpZnQpKX0semUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKGcpe3ZhciB5PXRoaXMuaW1vZChnLm11bCh0aGlzLnJpbnYpKTtyZXR1cm4geS5yZWQ9bnVsbCx5fSx6ZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihnLHkpe2lm'@; put 'KGcuaXNaZXJvKCl8fHkuaXNaZXJvKCkpcmV0dXJuIGcud29yZHNbMF09MCxnLmxlbmd0aD0xLGc7dmFyIHg9Zy5pbXVsKHkpLEM9eC5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksVD14LmlzdWIoQykuaXVzaHJuKHRoaXMu'@; put 'c2hpZnQpLFY9VDtyZXR1cm4gVC5jbXAodGhpcy5tKT49MD9WPVQuaXN1Yih0aGlzLm0pOlQuY21wbigwKTwwJiYoVj1ULmlhZGQodGhpcy5tKSksVi5fZm9yY2VSZWQodGhpcyl9LHplLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oZyx5KXtpZihnLmlzWmVybygpfHx5LmlzWmVybygpKXJldHVy'@; put 'biBuZXcgdygwKS5fZm9yY2VSZWQodGhpcyk7dmFyIHg9Zy5tdWwoeSksQz14Lm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxUPXguaXN1YihDKS5pdXNocm4odGhpcy5zaGlmdCksVj1UO3JldHVybiBULmNtcCh0aGlzLm0p'@; put 'Pj0wP1Y9VC5pc3ViKHRoaXMubSk6VC5jbXBuKDApPDAmJihWPVQuaWFkZCh0aGlzLm0pKSxWLl9mb3JjZVJlZCh0aGlzKX0semUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuaW1vZChnLl9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMp'@; put 'fX0oY2U9Yi5ubWQoY2UpLHRoaXMpfSw1NTE4ODooY2UsSik9PnshZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7Zm9yKHZhciBiPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIixEPW5ldyBVaW50OEFycmF5KDI1NiksXz0w'@; put 'O188NjQ7XysrKURbYi5jaGFyQ29kZUF0KF8pXT1fO0oubD1mdW5jdGlvbihwKXt2YXIgdyxOPW5ldyBVaW50OEFycmF5KHApLEY9Ti5sZW5ndGgsSD0iIjtmb3Iodz0wO3c8Rjt3Kz0zKUgrPWJbTlt3XT4+Ml0sSCs9YlsoMyZOW3ddKTw8NHxOW3crMV0+PjRdLEgrPWJbKDE1Jk5bdysxXSk8'@; put 'PDJ8Tlt3KzJdPj42XSxIKz1iWzYzJk5bdysyXV07cmV0dXJuIEYlMz09Mj9IPUguc3Vic3RyaW5nKDAsSC5sZW5ndGgtMSkrIj0iOkYlMz09MSYmKEg9SC5zdWJzdHJpbmcoMCxILmxlbmd0aC0yKSsiPT0iKSxIfSxKLkQ9ZnVuY3Rpb24ocCl7dmFyIEYsUixqLFAsTCxOPS43NSpwLmxlbmd0'@; put 'aCx3PXAubGVuZ3RoLEg9MDsiPSI9PT1wW3AubGVuZ3RoLTFdJiYoTi0tLCI9Ij09PXBbcC5sZW5ndGgtMl0mJk4tLSk7dmFyIFk9bmV3IEFycmF5QnVmZmVyKE4pLEI9bmV3IFVpbnQ4QXJyYXkoWSk7Zm9yKEY9MDtGPHc7Ris9NClSPURbcC5jaGFyQ29kZUF0KEYpXSxqPURbcC5jaGFyQ29k'@; put 'ZUF0KEYrMSldLFA9RFtwLmNoYXJDb2RlQXQoRisyKV0sTD1EW3AuY2hhckNvZGVBdChGKzMpXSxCW0grK109Ujw8MnxqPj40LEJbSCsrXT0oMTUmaik8PDR8UD4+MixCW0grK109KDMmUCk8PDZ8NjMmTDtyZXR1cm4gWX19KCl9LDEzOTgxOihjZSxKKT0+eyJ1c2Ugc3RyaWN0IjtKLmJ5dGVM'@; put 'ZW5ndGg9ZnVuY3Rpb24gSChCKXt2YXIgVz1GKEIpLFg9V1sxXTtyZXR1cm4gMyooV1swXStYKS80LVh9LEoudG9CeXRlQXJyYXk9ZnVuY3Rpb24gaihCKXt2YXIgVyxzZSxaPUYoQiksWD1aWzBdLFE9WlsxXSxxPW5ldyBfKGZ1bmN0aW9uIFIoQixXLFope3JldHVybiAzKihXK1opLzQtWn0o'@; put 'MCxYLFEpKSx0ZT0wLGllPVE+MD9YLTQ6WDtmb3Ioc2U9MDtzZTxpZTtzZSs9NClXPURbQi5jaGFyQ29kZUF0KHNlKV08PDE4fERbQi5jaGFyQ29kZUF0KHNlKzEpXTw8MTJ8RFtCLmNoYXJDb2RlQXQoc2UrMildPDw2fERbQi5jaGFyQ29kZUF0KHNlKzMpXSxxW3RlKytdPVc+PjE2JjI1NSxx'@; put 'W3RlKytdPVc+PjgmMjU1LHFbdGUrK109MjU1Jlc7cmV0dXJuIDI9PT1RJiYoVz1EW0IuY2hhckNvZGVBdChzZSldPDwyfERbQi5jaGFyQ29kZUF0KHNlKzEpXT4+NCxxW3RlKytdPTI1NSZXKSwxPT09USYmKFc9RFtCLmNoYXJDb2RlQXQoc2UpXTw8MTB8RFtCLmNoYXJDb2RlQXQoc2UrMSld'@; put 'PDw0fERbQi5jaGFyQ29kZUF0KHNlKzIpXT4+MixxW3RlKytdPVc+PjgmMjU1LHFbdGUrK109MjU1JlcpLHF9LEouZnJvbUJ5dGVBcnJheT1mdW5jdGlvbiBZKEIpe2Zvcih2YXIgVyxaPUIubGVuZ3RoLFg9WiUzLFE9W10scT0xNjM4Myx0ZT0wLGllPVotWDt0ZTxpZTt0ZSs9cSlRLnB1c2go'@; put 'TChCLHRlLHRlK3E+aWU/aWU6dGUrcSkpO3JldHVybiAxPT09WD9RLnB1c2goYlsoVz1CW1otMV0pPj4yXStiW1c8PDQmNjNdKyI9PSIpOjI9PT1YJiZRLnB1c2goYlsoVz0oQltaLTJdPDw4KStCW1otMV0pPj4xMF0rYltXPj40JjYzXStiW1c8PDImNjNdKyI9IiksUS5qb2luKCIiKX07Zm9y'@; put 'KHZhciBiPVtdLEQ9W10sXz10eXBlb2YgVWludDhBcnJheTwidSI/VWludDhBcnJheTpBcnJheSxwPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIixOPTA7Tjw2NDsrK04pYltOXT1wW05dLERbcC5jaGFyQ29kZUF0KE4p'@; put 'XT1OO2Z1bmN0aW9uIEYoQil7dmFyIFc9Qi5sZW5ndGg7aWYoVyU0PjApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHN0cmluZy4gTGVuZ3RoIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA0Iik7dmFyIFo9Qi5pbmRleE9mKCI9Iik7cmV0dXJuLTE9PT1aJiYoWj1XKSxbWixaPT09Vz8wOjQtWiU0'@; put 'XX1mdW5jdGlvbiBQKEIpe3JldHVybiBiW0I+PjE4JjYzXStiW0I+PjEyJjYzXStiW0I+PjYmNjNdK2JbNjMmQl19ZnVuY3Rpb24gTChCLFcsWil7Zm9yKHZhciBRPVtdLHE9VztxPFo7cSs9MylRLnB1c2goUCgoQltxXTw8MTYmMTY3MTE2ODApKyhCW3ErMV08PDgmNjUyODApKygyNTUmQltx'@; put 'KzJdKSkpO3JldHVybiBRLmpvaW4oIiIpfURbNDVdPTYyLERbOTVdPTYzfSw5MTc6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCxfKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcCh4LEMpe2lmKCF4KXRocm93IG5ldyBFcnJvcihDfHwiQXNzZXJ0aW9uIGZhaWxlZCIpfWZ1bmN0aW9uIE4o'@; put 'eCxDKXt4LnN1cGVyXz1DO3ZhciBUPWZ1bmN0aW9uKCl7fTtULnByb3RvdHlwZT1DLnByb3RvdHlwZSx4LnByb3RvdHlwZT1uZXcgVCx4LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj14fWZ1bmN0aW9uIHcoeCxDLFQpe2lmKHcuaXNCTih4KSlyZXR1cm4geDt0aGlzLm5lZ2F0aXZlPTAsdGhpcy53'@; put 'b3Jkcz1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5yZWQ9bnVsbCxudWxsIT09eCYmKCgibGUiPT09Q3x8ImJlIj09PUMpJiYoVD1DLEM9MTApLHRoaXMuX2luaXQoeHx8MCxDfHwxMCxUfHwiYmUiKSl9dmFyIEY7Im9iamVjdCI9PXR5cGVvZiBEP0QuZXhwb3J0cz13Ol8uQk49dyx3LkJOPXcs'@; put 'dy53b3JkU2l6ZT0yNjt0cnl7Rj10eXBlb2Ygd2luZG93PCJ1IiYmdHlwZW9mIHdpbmRvdy5CdWZmZXI8InUiP3dpbmRvdy5CdWZmZXI6Yig0Nzc5MCkuQnVmZmVyfWNhdGNoe31mdW5jdGlvbiBIKHgsQyl7dmFyIFQ9eC5jaGFyQ29kZUF0KEMpO3JldHVybiBUPj00OCYmVDw9NTc/VC00ODpU'@; put 'Pj02NSYmVDw9NzA/VC01NTpUPj05NyYmVDw9MTAyP1QtODc6dm9pZCBwKCExLCJJbnZhbGlkIGNoYXJhY3RlciBpbiAiK3gpfWZ1bmN0aW9uIFIoeCxDLFQpe3ZhciBWPUgoeCxUKTtyZXR1cm4gVC0xPj1DJiYoVnw9SCh4LFQtMSk8PDQpLFZ9ZnVuY3Rpb24gaih4LEMsVCxWKXtmb3IodmFy'@; put 'IFU9MCxFPTAsbT1NYXRoLm1pbih4Lmxlbmd0aCxUKSxBPUM7QTxtO0ErKyl7dmFyIGFlPXguY2hhckNvZGVBdChBKS00ODtVKj1WLEU9YWU+PTQ5P2FlLTQ5KzEwOmFlPj0xNz9hZS0xNysxMDphZSxwKGFlPj0wJiZFPFYsIkludmFsaWQgY2hhcmFjdGVyIiksVSs9RX1yZXR1cm4gVX1mdW5j'@; put 'dGlvbiBQKHgsQyl7eC53b3Jkcz1DLndvcmRzLHgubGVuZ3RoPUMubGVuZ3RoLHgubmVnYXRpdmU9Qy5uZWdhdGl2ZSx4LnJlZD1DLnJlZH1pZih3LmlzQk49ZnVuY3Rpb24oQyl7cmV0dXJuIEMgaW5zdGFuY2VvZiB3fHxudWxsIT09QyYmIm9iamVjdCI9PXR5cGVvZiBDJiZDLmNvbnN0cnVj'@; put 'dG9yLndvcmRTaXplPT09dy53b3JkU2l6ZSYmQXJyYXkuaXNBcnJheShDLndvcmRzKX0sdy5tYXg9ZnVuY3Rpb24oQyxUKXtyZXR1cm4gQy5jbXAoVCk+MD9DOlR9LHcubWluPWZ1bmN0aW9uKEMsVCl7cmV0dXJuIEMuY21wKFQpPDA/QzpUfSx3LnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbihD'@; put 'LFQsVil7aWYoIm51bWJlciI9PXR5cGVvZiBDKXJldHVybiB0aGlzLl9pbml0TnVtYmVyKEMsVCxWKTtpZigib2JqZWN0Ij09dHlwZW9mIEMpcmV0dXJuIHRoaXMuX2luaXRBcnJheShDLFQsVik7ImhleCI9PT1UJiYoVD0xNikscChUPT09KDB8VCkmJlQ+PTImJlQ8PTM2KTt2YXIgVT0wOyIt'@; put 'Ij09PShDPUMudG9TdHJpbmcoKS5yZXBsYWNlKC9ccysvZywiIikpWzBdJiYoVSsrLHRoaXMubmVnYXRpdmU9MSksVTxDLmxlbmd0aCYmKDE2PT09VD90aGlzLl9wYXJzZUhleChDLFUsVik6KHRoaXMuX3BhcnNlQmFzZShDLFQsVSksImxlIj09PVYmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRv'@; put 'QXJyYXkoKSxULFYpKSl9LHcucHJvdG90eXBlLl9pbml0TnVtYmVyPWZ1bmN0aW9uKEMsVCxWKXtDPDAmJih0aGlzLm5lZ2F0aXZlPTEsQz0tQyksQzw2NzEwODg2ND8odGhpcy53b3Jkcz1bNjcxMDg4NjMmQ10sdGhpcy5sZW5ndGg9MSk6Qzw0NTAzNTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRz'@; put 'PVs2NzEwODg2MyZDLEMvNjcxMDg4NjQmNjcxMDg4NjNdLHRoaXMubGVuZ3RoPTIpOihwKEM8OTAwNzE5OTI1NDc0MDk5MiksdGhpcy53b3Jkcz1bNjcxMDg4NjMmQyxDLzY3MTA4ODY0JjY3MTA4ODYzLDFdLHRoaXMubGVuZ3RoPTMpLCJsZSI9PT1WJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50'@; put 'b0FycmF5KCksVCxWKX0sdy5wcm90b3R5cGUuX2luaXRBcnJheT1mdW5jdGlvbihDLFQsVil7aWYocCgibnVtYmVyIj09dHlwZW9mIEMubGVuZ3RoKSxDLmxlbmd0aDw9MClyZXR1cm4gdGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMubGVuZ3RoPU1hdGguY2VpbChDLmxl'@; put 'bmd0aC8zKSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBVPTA7VTx0aGlzLmxlbmd0aDtVKyspdGhpcy53b3Jkc1tVXT0wO3ZhciBFLG0sQT0wO2lmKCJiZSI9PT1WKWZvcihVPUMubGVuZ3RoLTEsRT0wO1U+PTA7VS09Myl0aGlzLndvcmRzW0VdfD0obT1DW1Vd'@; put 'fENbVS0xXTw8OHxDW1UtMl08PDE2KTw8QSY2NzEwODg2Myx0aGlzLndvcmRzW0UrMV09bT4+PjI2LUEmNjcxMDg4NjMsKEErPTI0KT49MjYmJihBLT0yNixFKyspO2Vsc2UgaWYoImxlIj09PVYpZm9yKFU9MCxFPTA7VTxDLmxlbmd0aDtVKz0zKXRoaXMud29yZHNbRV18PShtPUNbVV18Q1tV'@; put 'KzFdPDw4fENbVSsyXTw8MTYpPDxBJjY3MTA4ODYzLHRoaXMud29yZHNbRSsxXT1tPj4+MjYtQSY2NzEwODg2MywoQSs9MjQpPj0yNiYmKEEtPTI2LEUrKyk7cmV0dXJuIHRoaXMuX3N0cmlwKCl9LHcucHJvdG90eXBlLl9wYXJzZUhleD1mdW5jdGlvbihDLFQsVil7dGhpcy5sZW5ndGg9TWF0'@; put 'aC5jZWlsKChDLmxlbmd0aC1UKS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBVPTA7VTx0aGlzLmxlbmd0aDtVKyspdGhpcy53b3Jkc1tVXT0wO3ZhciBBLEU9MCxtPTA7aWYoImJlIj09PVYpZm9yKFU9Qy5sZW5ndGgtMTtVPj1UO1UtPTIpQT1SKEMsVCxV'@; put 'KTw8RSx0aGlzLndvcmRzW21dfD02NzEwODg2MyZBLEU+PTE4PyhFLT0xOCx0aGlzLndvcmRzW20rPTFdfD1BPj4+MjYpOkUrPTg7ZWxzZSBmb3IoVT0oQy5sZW5ndGgtVCklMj09MD9UKzE6VDtVPEMubGVuZ3RoO1UrPTIpQT1SKEMsVCxVKTw8RSx0aGlzLndvcmRzW21dfD02NzEwODg2MyZB'@; put 'LEU+PTE4PyhFLT0xOCx0aGlzLndvcmRzW20rPTFdfD1BPj4+MjYpOkUrPTg7dGhpcy5fc3RyaXAoKX0sdy5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbihDLFQsVil7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIFU9MCxFPTE7RTw9NjcxMDg4NjM7RSo9VClVKys7'@; put 'VS0tLEU9RS9UfDA7Zm9yKHZhciBtPUMubGVuZ3RoLVYsQT1tJVUsYWU9TWF0aC5taW4obSxtLUEpK1YsbmU9MCxsZT1WO2xlPGFlO2xlKz1VKW5lPWooQyxsZSxsZStVLFQpLHRoaXMuaW11bG4oRSksdGhpcy53b3Jkc1swXStuZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1uZTp0aGlzLl9p'@; put 'YWRkbihuZSk7aWYoMCE9PUEpe3ZhciB3ZT0xO2ZvcihuZT1qKEMsbGUsQy5sZW5ndGgsVCksbGU9MDtsZTxBO2xlKyspd2UqPVQ7dGhpcy5pbXVsbih3ZSksdGhpcy53b3Jkc1swXStuZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1uZTp0aGlzLl9pYWRkbihuZSl9dGhpcy5fc3RyaXAoKX0s'@; put 'dy5wcm90b3R5cGUuY29weT1mdW5jdGlvbihDKXtDLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBUPTA7VDx0aGlzLmxlbmd0aDtUKyspQy53b3Jkc1tUXT10aGlzLndvcmRzW1RdO0MubGVuZ3RoPXRoaXMubGVuZ3RoLEMubmVnYXRpdmU9dGhpcy5uZWdhdGl2ZSxDLnJl'@; put 'ZD10aGlzLnJlZH0sdy5wcm90b3R5cGUuX21vdmU9ZnVuY3Rpb24oQyl7UChDLHRoaXMpfSx3LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciBDPW5ldyB3KG51bGwpO3JldHVybiB0aGlzLmNvcHkoQyksQ30sdy5wcm90b3R5cGUuX2V4cGFuZD1mdW5jdGlvbihDKXtmb3IoO3RoaXMu'@; put 'bGVuZ3RoPEM7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4gdGhpc30sdy5wcm90b3R5cGUuX3N0cmlwPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmxlbmd0aD4xJiYwPT09dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXTspdGhpcy5sZW5ndGgtLTtyZXR1cm4gdGhpcy5fbm9ybVNp'@; put 'Z24oKX0sdy5wcm90b3R5cGUuX25vcm1TaWduPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF0mJih0aGlzLm5lZ2F0aXZlPTApLHRoaXN9LHR5cGVvZiBTeW1ib2w8InUiJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sLmZvcil0cnl7dy5wcm90'@; put 'b3R5cGVbU3ltYm9sLmZvcigibm9kZWpzLnV0aWwuaW5zcGVjdC5jdXN0b20iKV09TH1jYXRjaHt3LnByb3RvdHlwZS5pbnNwZWN0PUx9ZWxzZSB3LnByb3RvdHlwZS5pbnNwZWN0PUw7ZnVuY3Rpb24gTCgpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikrdGhpcy50b1N0cmlu'@; put 'ZygxNikrIj4ifXZhciBZPVsiIiwiMCIsIjAwIiwiMDAwIiwiMDAwMCIsIjAwMDAwIiwiMDAwMDAwIiwiMDAwMDAwMCIsIjAwMDAwMDAwIiwiMDAwMDAwMDAwIiwiMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAw'@; put 'IiwiMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAw'@; put 'MDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCJdLEI9WzAsMCwyNSwxNiwxMiwxMSwxMCw5LDgsOCw3LDcsNyw3LDYsNiw2LDYsNiw2LDYsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUs'@; put 'NSw1LDUsNV0sVz1bMCwwLDMzNTU0NDMyLDQzMDQ2NzIxLDE2Nzc3MjE2LDQ4ODI4MTI1LDYwNDY2MTc2LDQwMzUzNjA3LDE2Nzc3MjE2LDQzMDQ2NzIxLDFlNywxOTQ4NzE3MSwzNTgzMTgwOCw2Mjc0ODUxNyw3NTI5NTM2LDExMzkwNjI1LDE2Nzc3MjE2LDI0MTM3NTY5LDM0MDEyMjI0LDQ3'@; put 'MDQ1ODgxLDY0ZTYsNDA4NDEwMSw1MTUzNjMyLDY0MzYzNDMsNzk2MjYyNCw5NzY1NjI1LDExODgxMzc2LDE0MzQ4OTA3LDE3MjEwMzY4LDIwNTExMTQ5LDI0M2U1LDI4NjI5MTUxLDMzNTU0NDMyLDM5MTM1MzkzLDQ1NDM1NDI0LDUyNTIxODc1LDYwNDY2MTc2XTtmdW5jdGlvbiBRKHgsQyxU'@; put 'KXtULm5lZ2F0aXZlPUMubmVnYXRpdmVeeC5uZWdhdGl2ZTt2YXIgVj14Lmxlbmd0aCtDLmxlbmd0aHwwO1QubGVuZ3RoPVYsVj1WLTF8MDt2YXIgVT0wfHgud29yZHNbMF0sRT0wfEMud29yZHNbMF0sbT1VKkUsYWU9bS82NzEwODg2NHwwO1Qud29yZHNbMF09NjcxMDg4NjMmbTtmb3IodmFy'@; put 'IG5lPTE7bmU8VjtuZSsrKXtmb3IodmFyIGxlPWFlPj4+MjYsd2U9NjcxMDg4NjMmYWUsWmU9TWF0aC5taW4obmUsQy5sZW5ndGgtMSksUWU9TWF0aC5tYXgoMCxuZS14Lmxlbmd0aCsxKTtRZTw9WmU7UWUrKylsZSs9KG09KFU9MHx4LndvcmRzW25lLVFlfDBdKSooRT0wfEMud29yZHNbUWVd'@; put 'KSt3ZSkvNjcxMDg4NjR8MCx3ZT02NzEwODg2MyZtO1Qud29yZHNbbmVdPTB8d2UsYWU9MHxsZX1yZXR1cm4gMCE9PWFlP1Qud29yZHNbbmVdPTB8YWU6VC5sZW5ndGgtLSxULl9zdHJpcCgpfXcucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKEMsVCl7dmFyIFY7aWYoVD0wfFR8fDEsMTY9'@; put 'PT0oQz1DfHwxMCl8fCJoZXgiPT09Qyl7Vj0iIjtmb3IodmFyIFU9MCxFPTAsbT0wO208dGhpcy5sZW5ndGg7bSsrKXt2YXIgQT10aGlzLndvcmRzW21dLGFlPSgxNjc3NzIxNSYoQTw8VXxFKSkudG9TdHJpbmcoMTYpO0U9QT4+PjI0LVUmMTY3NzcyMTUsKFUrPTIpPj0yNiYmKFUtPTI2LG0t'@; put 'LSksVj0wIT09RXx8bSE9PXRoaXMubGVuZ3RoLTE/WVs2LWFlLmxlbmd0aF0rYWUrVjphZStWfWZvcigwIT09RSYmKFY9RS50b1N0cmluZygxNikrVik7Vi5sZW5ndGglVCE9MDspVj0iMCIrVjtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihWPSItIitWKSxWfWlmKEM9PT0oMHxDKSYmQz49'@; put 'MiYmQzw9MzYpe3ZhciBuZT1CW0NdLGxlPVdbQ107Vj0iIjt2YXIgd2U9dGhpcy5jbG9uZSgpO2Zvcih3ZS5uZWdhdGl2ZT0wOyF3ZS5pc1plcm8oKTspe3ZhciBaZT13ZS5tb2RybihsZSkudG9TdHJpbmcoQyk7Vj0od2U9d2UuaWRpdm4obGUpKS5pc1plcm8oKT9aZStWOllbbmUtWmUubGVu'@; put 'Z3RoXStaZStWfWZvcih0aGlzLmlzWmVybygpJiYoVj0iMCIrVik7Vi5sZW5ndGglVCE9MDspVj0iMCIrVjtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihWPSItIitWKSxWfXAoITEsIkJhc2Ugc2hvdWxkIGJlIGJldHdlZW4gMiBhbmQgMzYiKX0sdy5wcm90b3R5cGUudG9OdW1iZXI9ZnVu'@; put 'Y3Rpb24oKXt2YXIgQz10aGlzLndvcmRzWzBdO3JldHVybiAyPT09dGhpcy5sZW5ndGg/Qys9NjcxMDg4NjQqdGhpcy53b3Jkc1sxXTozPT09dGhpcy5sZW5ndGgmJjE9PT10aGlzLndvcmRzWzJdP0MrPTQ1MDM1OTk2MjczNzA0OTYrNjcxMDg4NjQqdGhpcy53b3Jkc1sxXTp0aGlzLmxlbmd0'@; put 'aD4yJiZwKCExLCJOdW1iZXIgY2FuIG9ubHkgc2FmZWx5IHN0b3JlIHVwIHRvIDUzIGJpdHMiKSwwIT09dGhpcy5uZWdhdGl2ZT8tQzpDfSx3LnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygxNiwyKX0sRiYmKHcucHJvdG90eXBlLnRvQnVmZmVyPWZ1'@; put 'bmN0aW9uKEMsVCl7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoRixDLFQpfSksdy5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbihDLFQpe3JldHVybiB0aGlzLnRvQXJyYXlMaWtlKEFycmF5LEMsVCl9LHcucHJvdG90eXBlLnRvQXJyYXlMaWtlPWZ1bmN0aW9uKEMsVCxWKXt0aGlzLl9zdHJp'@; put 'cCgpO3ZhciBVPXRoaXMuYnl0ZUxlbmd0aCgpLEU9Vnx8TWF0aC5tYXgoMSxVKTtwKFU8PUUsImJ5dGUgYXJyYXkgbG9uZ2VyIHRoYW4gZGVzaXJlZCBsZW5ndGgiKSxwKEU+MCwiUmVxdWVzdGVkIGFycmF5IGxlbmd0aCA8PSAwIik7dmFyIG09ZnVuY3Rpb24oQyxUKXtyZXR1cm4gQy5hbGxv'@; put 'Y1Vuc2FmZT9DLmFsbG9jVW5zYWZlKFQpOm5ldyBDKFQpfShDLEUpO3JldHVybiB0aGlzWyJfdG9BcnJheUxpa2UiKygibGUiPT09VD8iTEUiOiJCRSIpXShtLFUpLG19LHcucHJvdG90eXBlLl90b0FycmF5TGlrZUxFPWZ1bmN0aW9uKEMsVCl7Zm9yKHZhciBWPTAsVT0wLEU9MCxtPTA7RTx0'@; put 'aGlzLmxlbmd0aDtFKyspe3ZhciBBPXRoaXMud29yZHNbRV08PG18VTtDW1YrK109MjU1JkEsVjxDLmxlbmd0aCYmKENbVisrXT1BPj44JjI1NSksVjxDLmxlbmd0aCYmKENbVisrXT1BPj4xNiYyNTUpLDY9PT1tPyhWPEMubGVuZ3RoJiYoQ1tWKytdPUE+PjI0JjI1NSksVT0wLG09MCk6KFU9'@; put 'QT4+PjI0LG0rPTIpfWlmKFY8Qy5sZW5ndGgpZm9yKENbVisrXT1VO1Y8Qy5sZW5ndGg7KUNbVisrXT0wfSx3LnByb3RvdHlwZS5fdG9BcnJheUxpa2VCRT1mdW5jdGlvbihDLFQpe2Zvcih2YXIgVj1DLmxlbmd0aC0xLFU9MCxFPTAsbT0wO0U8dGhpcy5sZW5ndGg7RSsrKXt2YXIgQT10aGlz'@; put 'LndvcmRzW0VdPDxtfFU7Q1tWLS1dPTI1NSZBLFY+PTAmJihDW1YtLV09QT4+OCYyNTUpLFY+PTAmJihDW1YtLV09QT4+MTYmMjU1KSw2PT09bT8oVj49MCYmKENbVi0tXT1BPj4yNCYyNTUpLFU9MCxtPTApOihVPUE+Pj4yNCxtKz0yKX1pZihWPj0wKWZvcihDW1YtLV09VTtWPj0wOylDW1Yt'@; put 'LV09MH0sdy5wcm90b3R5cGUuX2NvdW50Qml0cz1NYXRoLmNsejMyP2Z1bmN0aW9uKEMpe3JldHVybiAzMi1NYXRoLmNsejMyKEMpfTpmdW5jdGlvbihDKXt2YXIgVD1DLFY9MDtyZXR1cm4gVD49NDA5NiYmKFYrPTEzLFQ+Pj49MTMpLFQ+PTY0JiYoVis9NyxUPj4+PTcpLFQ+PTgmJihWKz00'@; put 'LFQ+Pj49NCksVD49MiYmKFYrPTIsVD4+Pj0yKSxWK1R9LHcucHJvdG90eXBlLl96ZXJvQml0cz1mdW5jdGlvbihDKXtpZigwPT09QylyZXR1cm4gMjY7dmFyIFQ9QyxWPTA7cmV0dXJuIDgxOTEmVHx8KFYrPTEzLFQ+Pj49MTMpLDEyNyZUfHwoVis9NyxUPj4+PTcpLDE1JlR8fChWKz00LFQ+'@; put 'Pj49NCksMyZUfHwoVis9MixUPj4+PTIpLDEmVHx8VisrLFZ9LHcucHJvdG90eXBlLmJpdExlbmd0aD1mdW5jdGlvbigpe3ZhciBUPXRoaXMuX2NvdW50Qml0cyh0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdKTtyZXR1cm4gMjYqKHRoaXMubGVuZ3RoLTEpK1R9LHcucHJvdG90eXBlLnplcm9C'@; put 'aXRzPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gMDtmb3IodmFyIEM9MCxUPTA7VDx0aGlzLmxlbmd0aDtUKyspe3ZhciBWPXRoaXMuX3plcm9CaXRzKHRoaXMud29yZHNbVF0pO2lmKEMrPVYsMjYhPT1WKWJyZWFrfXJldHVybiBDfSx3LnByb3RvdHlwZS5ieXRlTGVuZ3Ro'@; put 'PWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzLmJpdExlbmd0aCgpLzgpfSx3LnByb3RvdHlwZS50b1R3b3M9ZnVuY3Rpb24oQyl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlP3RoaXMuYWJzKCkuaW5vdG4oQykuaWFkZG4oMSk6dGhpcy5jbG9uZSgpfSx3LnByb3RvdHlwZS5mcm9t'@; put 'VHdvcz1mdW5jdGlvbihDKXtyZXR1cm4gdGhpcy50ZXN0bihDLTEpP3RoaXMubm90bihDKS5pYWRkbigxKS5pbmVnKCk6dGhpcy5jbG9uZSgpfSx3LnByb3RvdHlwZS5pc05lZz1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZX0sdy5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7'@; put 'cmV0dXJuIHRoaXMuY2xvbmUoKS5pbmVnKCl9LHcucHJvdG90eXBlLmluZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1plcm8oKXx8KHRoaXMubmVnYXRpdmVePTEpLHRoaXN9LHcucHJvdG90eXBlLml1b3I9ZnVuY3Rpb24oQyl7Zm9yKDt0aGlzLmxlbmd0aDxDLmxlbmd0aDspdGhpcy53'@; put 'b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO2Zvcih2YXIgVD0wO1Q8Qy5sZW5ndGg7VCsrKXRoaXMud29yZHNbVF09dGhpcy53b3Jkc1tUXXxDLndvcmRzW1RdO3JldHVybiB0aGlzLl9zdHJpcCgpfSx3LnByb3RvdHlwZS5pb3I9ZnVuY3Rpb24oQyl7cmV0dXJuIHAoISh0aGlzLm5lZ2F0aXZlfEMu'@; put 'bmVnYXRpdmUpKSx0aGlzLml1b3IoQyl9LHcucHJvdG90eXBlLm9yPWZ1bmN0aW9uKEMpe3JldHVybiB0aGlzLmxlbmd0aD5DLmxlbmd0aD90aGlzLmNsb25lKCkuaW9yKEMpOkMuY2xvbmUoKS5pb3IodGhpcyl9LHcucHJvdG90eXBlLnVvcj1mdW5jdGlvbihDKXtyZXR1cm4gdGhpcy5sZW5n'@; put 'dGg+Qy5sZW5ndGg/dGhpcy5jbG9uZSgpLml1b3IoQyk6Qy5jbG9uZSgpLml1b3IodGhpcyl9LHcucHJvdG90eXBlLml1YW5kPWZ1bmN0aW9uKEMpe3ZhciBUO1Q9dGhpcy5sZW5ndGg+Qy5sZW5ndGg/Qzp0aGlzO2Zvcih2YXIgVj0wO1Y8VC5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09dGhp'@; put 'cy53b3Jkc1tWXSZDLndvcmRzW1ZdO3JldHVybiB0aGlzLmxlbmd0aD1ULmxlbmd0aCx0aGlzLl9zdHJpcCgpfSx3LnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKEMpe3JldHVybiBwKCEodGhpcy5uZWdhdGl2ZXxDLm5lZ2F0aXZlKSksdGhpcy5pdWFuZChDKX0sdy5wcm90b3R5cGUuYW5kPWZ1'@; put 'bmN0aW9uKEMpe3JldHVybiB0aGlzLmxlbmd0aD5DLmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZChDKTpDLmNsb25lKCkuaWFuZCh0aGlzKX0sdy5wcm90b3R5cGUudWFuZD1mdW5jdGlvbihDKXtyZXR1cm4gdGhpcy5sZW5ndGg+Qy5sZW5ndGg/dGhpcy5jbG9uZSgpLml1YW5kKEMpOkMuY2xv'@; put 'bmUoKS5pdWFuZCh0aGlzKX0sdy5wcm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24oQyl7dmFyIFQsVjt0aGlzLmxlbmd0aD5DLmxlbmd0aD8oVD10aGlzLFY9Qyk6KFQ9QyxWPXRoaXMpO2Zvcih2YXIgVT0wO1U8Vi5sZW5ndGg7VSsrKXRoaXMud29yZHNbVV09VC53b3Jkc1tVXV5WLndvcmRzW1Vd'@; put 'O2lmKHRoaXMhPT1UKWZvcig7VTxULmxlbmd0aDtVKyspdGhpcy53b3Jkc1tVXT1ULndvcmRzW1VdO3JldHVybiB0aGlzLmxlbmd0aD1ULmxlbmd0aCx0aGlzLl9zdHJpcCgpfSx3LnByb3RvdHlwZS5peG9yPWZ1bmN0aW9uKEMpe3JldHVybiBwKCEodGhpcy5uZWdhdGl2ZXxDLm5lZ2F0aXZl'@; put 'KSksdGhpcy5pdXhvcihDKX0sdy5wcm90b3R5cGUueG9yPWZ1bmN0aW9uKEMpe3JldHVybiB0aGlzLmxlbmd0aD5DLmxlbmd0aD90aGlzLmNsb25lKCkuaXhvcihDKTpDLmNsb25lKCkuaXhvcih0aGlzKX0sdy5wcm90b3R5cGUudXhvcj1mdW5jdGlvbihDKXtyZXR1cm4gdGhpcy5sZW5ndGg+'@; put 'Qy5sZW5ndGg/dGhpcy5jbG9uZSgpLml1eG9yKEMpOkMuY2xvbmUoKS5pdXhvcih0aGlzKX0sdy5wcm90b3R5cGUuaW5vdG49ZnVuY3Rpb24oQyl7cCgibnVtYmVyIj09dHlwZW9mIEMmJkM+PTApO3ZhciBUPTB8TWF0aC5jZWlsKEMvMjYpLFY9QyUyNjt0aGlzLl9leHBhbmQoVCksVj4wJiZU'@; put 'LS07Zm9yKHZhciBVPTA7VTxUO1UrKyl0aGlzLndvcmRzW1VdPTY3MTA4ODYzJn50aGlzLndvcmRzW1VdO3JldHVybiBWPjAmJih0aGlzLndvcmRzW1VdPX50aGlzLndvcmRzW1VdJjY3MTA4ODYzPj4yNi1WKSx0aGlzLl9zdHJpcCgpfSx3LnByb3RvdHlwZS5ub3RuPWZ1bmN0aW9uKEMpe3Jl'@; put 'dHVybiB0aGlzLmNsb25lKCkuaW5vdG4oQyl9LHcucHJvdG90eXBlLnNldG49ZnVuY3Rpb24oQyxUKXtwKCJudW1iZXIiPT10eXBlb2YgQyYmQz49MCk7dmFyIFY9Qy8yNnwwLFU9QyUyNjtyZXR1cm4gdGhpcy5fZXhwYW5kKFYrMSksdGhpcy53b3Jkc1tWXT1UP3RoaXMud29yZHNbVl18MTw8'@; put 'VTp0aGlzLndvcmRzW1ZdJn4oMTw8VSksdGhpcy5fc3RyaXAoKX0sdy5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbihDKXt2YXIgVCxWLFU7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1DLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsVD10aGlzLmlzdWIoQyksdGhpcy5uZWdhdGl2'@; put 'ZV49MSx0aGlzLl9ub3JtU2lnbigpO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Qy5uZWdhdGl2ZSlyZXR1cm4gQy5uZWdhdGl2ZT0wLFQ9dGhpcy5pc3ViKEMpLEMubmVnYXRpdmU9MSxULl9ub3JtU2lnbigpO3RoaXMubGVuZ3RoPkMubGVuZ3RoPyhWPXRoaXMsVT1DKTooVj1DLFU9dGhp'@; put 'cyk7Zm9yKHZhciBFPTAsbT0wO208VS5sZW5ndGg7bSsrKXRoaXMud29yZHNbbV09NjcxMDg4NjMmKFQ9KDB8Vi53b3Jkc1ttXSkrKDB8VS53b3Jkc1ttXSkrRSksRT1UPj4+MjY7Zm9yKDswIT09RSYmbTxWLmxlbmd0aDttKyspdGhpcy53b3Jkc1ttXT02NzEwODg2MyYoVD0oMHxWLndvcmRz'@; put 'W21dKStFKSxFPVQ+Pj4yNjtpZih0aGlzLmxlbmd0aD1WLmxlbmd0aCwwIT09RSl0aGlzLndvcmRzW3RoaXMubGVuZ3RoXT1FLHRoaXMubGVuZ3RoKys7ZWxzZSBpZihWIT09dGhpcylmb3IoO208Vi5sZW5ndGg7bSsrKXRoaXMud29yZHNbbV09Vi53b3Jkc1ttXTtyZXR1cm4gdGhpc30sdy5w'@; put 'cm90b3R5cGUuYWRkPWZ1bmN0aW9uKEMpe3ZhciBUO3JldHVybiAwIT09Qy5uZWdhdGl2ZSYmMD09PXRoaXMubmVnYXRpdmU/KEMubmVnYXRpdmU9MCxUPXRoaXMuc3ViKEMpLEMubmVnYXRpdmVePTEsVCk6MD09PUMubmVnYXRpdmUmJjAhPT10aGlzLm5lZ2F0aXZlPyh0aGlzLm5lZ2F0aXZl'@; put 'PTAsVD1DLnN1Yih0aGlzKSx0aGlzLm5lZ2F0aXZlPTEsVCk6dGhpcy5sZW5ndGg+Qy5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhZGQoQyk6Qy5jbG9uZSgpLmlhZGQodGhpcyl9LHcucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24oQyl7aWYoMCE9PUMubmVnYXRpdmUpe0MubmVnYXRpdmU9MDt2YXIg'@; put 'VD10aGlzLmlhZGQoQyk7cmV0dXJuIEMubmVnYXRpdmU9MSxULl9ub3JtU2lnbigpfWlmKDAhPT10aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkKEMpLHRoaXMubmVnYXRpdmU9MSx0aGlzLl9ub3JtU2lnbigpO3ZhciBVLEUsVj10aGlzLmNtcChDKTtpZigw'@; put 'PT09VilyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMubGVuZ3RoPTEsdGhpcy53b3Jkc1swXT0wLHRoaXM7Vj4wPyhVPXRoaXMsRT1DKTooVT1DLEU9dGhpcyk7Zm9yKHZhciBtPTAsQT0wO0E8RS5sZW5ndGg7QSsrKW09KFQ9KDB8VS53b3Jkc1tBXSktKDB8RS53b3Jkc1tBXSkrbSk+PjI2'@; put 'LHRoaXMud29yZHNbQV09NjcxMDg4NjMmVDtmb3IoOzAhPT1tJiZBPFUubGVuZ3RoO0ErKyltPShUPSgwfFUud29yZHNbQV0pK20pPj4yNix0aGlzLndvcmRzW0FdPTY3MTA4ODYzJlQ7aWYoMD09PW0mJkE8VS5sZW5ndGgmJlUhPT10aGlzKWZvcig7QTxVLmxlbmd0aDtBKyspdGhpcy53b3Jk'@; put 'c1tBXT1VLndvcmRzW0FdO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxBKSxVIT09dGhpcyYmKHRoaXMubmVnYXRpdmU9MSksdGhpcy5fc3RyaXAoKX0sdy5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKEMpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1YihDKX07dmFyIHE9'@; put 'ZnVuY3Rpb24oQyxULFYpe3ZhciBhZSxuZSxsZSxVPUMud29yZHMsRT1ULndvcmRzLG09Vi53b3JkcyxBPTAsd2U9MHxVWzBdLFplPTgxOTEmd2UsUWU9d2U+Pj4xMyxhdD0wfFVbMV0seGU9ODE5MSZhdCx2ZT1hdD4+PjEzLHFlPTB8VVsyXSxqZT04MTkxJnFlLEFlPXFlPj4+MTMsRmU9MHxV'@; put 'WzNdLFJlPTgxOTEmRmUsSWU9RmU+Pj4xMyxIZT0wfFVbNF0sRGU9ODE5MSZIZSxrZT1IZT4+PjEzLF90PTB8VVs1XSxudD04MTkxJl90LEplPV90Pj4+MTMsb249MHxVWzZdLHl0PTgxOTEmb24sTXQ9b24+Pj4xMyxJdD0wfFVbN10scnQ9ODE5MSZJdCxLZT1JdD4+PjEzLHR0PTB8VVs4XSxO'@; put 'ZT04MTkxJnR0LHV0PXR0Pj4+MTMsSnQ9MHxVWzldLEx0PTgxOTEmSnQsUHQ9SnQ+Pj4xMyxvaT0wfEVbMF0sZW49ODE5MSZvaSxzbj1vaT4+PjEzLElpPTB8RVsxXSxkbj04MTkxJklpLGZ0PUlpPj4+MTMsRnI9MHxFWzJdLFp0PTgxOTEmRnIsa3Q9RnI+Pj4xMyxMbj0wfEVbM10sb3Q9ODE5'@; put 'MSZMbix6dD1Mbj4+PjEzLG5pPTB8RVs0XSxXZT04MTkxJm5pLEF0PW5pPj4+MTMsaXI9MHxFWzVdLGh0PTgxOTEmaXIsRXQ9aXI+Pj4xMyx6bj0wfEVbNl0sYW49ODE5MSZ6bixqdD16bj4+PjEzLGRpPTB8RVs3XSxjbj04MTkxJmRpLGZuPWRpPj4+MTMsRGk9MHxFWzhdLFF0PTgxOTEmRGks'@; put 'dG49RGk+Pj4xMyxjYT0wfEVbOV0seGk9ODE5MSZjYSx5cj1jYT4+PjEzO1YubmVnYXRpdmU9Qy5uZWdhdGl2ZV5ULm5lZ2F0aXZlLFYubGVuZ3RoPTE5O3ZhciBHbj0oQSsoYWU9TWF0aC5pbXVsKFplLGVuKSl8MCkrKCg4MTkxJihuZT0obmU9TWF0aC5pbXVsKFplLHNuKSkrTWF0aC5pbXVs'@; put 'KFFlLGVuKXwwKSk8PDEzKXwwO0E9KChsZT1NYXRoLmltdWwoUWUsc24pKSsobmU+Pj4xMyl8MCkrKEduPj4+MjYpfDAsR24mPTY3MTA4ODYzLGFlPU1hdGguaW11bCh4ZSxlbiksbmU9KG5lPU1hdGguaW11bCh4ZSxzbikpK01hdGguaW11bCh2ZSxlbil8MCxsZT1NYXRoLmltdWwodmUsc24p'@; put 'O3ZhciBLaT0oQSsoYWU9YWUrTWF0aC5pbXVsKFplLGRuKXwwKXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRoLmltdWwoWmUsZnQpfDApK01hdGguaW11bChRZSxkbil8MCkpPDwxMyl8MDtBPSgobGU9bGUrTWF0aC5pbXVsKFFlLGZ0KXwwKSsobmU+Pj4xMyl8MCkrKEtpPj4+MjYpfDAsS2km'@; put 'PTY3MTA4ODYzLGFlPU1hdGguaW11bChqZSxlbiksbmU9KG5lPU1hdGguaW11bChqZSxzbikpK01hdGguaW11bChBZSxlbil8MCxsZT1NYXRoLmltdWwoQWUsc24pLGFlPWFlK01hdGguaW11bCh4ZSxkbil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKHhlLGZ0KXwwKStNYXRoLmltdWwodmUsZG4p'@; put 'fDAsbGU9bGUrTWF0aC5pbXVsKHZlLGZ0KXwwO3ZhciBKcj0oQSsoYWU9YWUrTWF0aC5pbXVsKFplLFp0KXwwKXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRoLmltdWwoWmUsa3QpfDApK01hdGguaW11bChRZSxadCl8MCkpPDwxMyl8MDtBPSgobGU9bGUrTWF0aC5pbXVsKFFlLGt0KXwwKSso'@; put 'bmU+Pj4xMyl8MCkrKEpyPj4+MjYpfDAsSnImPTY3MTA4ODYzLGFlPU1hdGguaW11bChSZSxlbiksbmU9KG5lPU1hdGguaW11bChSZSxzbikpK01hdGguaW11bChJZSxlbil8MCxsZT1NYXRoLmltdWwoSWUsc24pLGFlPWFlK01hdGguaW11bChqZSxkbil8MCxuZT0obmU9bmUrTWF0aC5pbXVs'@; put 'KGplLGZ0KXwwKStNYXRoLmltdWwoQWUsZG4pfDAsbGU9bGUrTWF0aC5pbXVsKEFlLGZ0KXwwLGFlPWFlK01hdGguaW11bCh4ZSxadCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKHhlLGt0KXwwKStNYXRoLmltdWwodmUsWnQpfDAsbGU9bGUrTWF0aC5pbXVsKHZlLGt0KXwwO3ZhciBRcj0oQSso'@; put 'YWU9YWUrTWF0aC5pbXVsKFplLG90KXwwKXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRoLmltdWwoWmUsenQpfDApK01hdGguaW11bChRZSxvdCl8MCkpPDwxMyl8MDtBPSgobGU9bGUrTWF0aC5pbXVsKFFlLHp0KXwwKSsobmU+Pj4xMyl8MCkrKFFyPj4+MjYpfDAsUXImPTY3MTA4ODYzLGFl'@; put 'PU1hdGguaW11bChEZSxlbiksbmU9KG5lPU1hdGguaW11bChEZSxzbikpK01hdGguaW11bChrZSxlbil8MCxsZT1NYXRoLmltdWwoa2Usc24pLGFlPWFlK01hdGguaW11bChSZSxkbil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKFJlLGZ0KXwwKStNYXRoLmltdWwoSWUsZG4pfDAsbGU9bGUrTWF0'@; put 'aC5pbXVsKEllLGZ0KXwwLGFlPWFlK01hdGguaW11bChqZSxadCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKGplLGt0KXwwKStNYXRoLmltdWwoQWUsWnQpfDAsbGU9bGUrTWF0aC5pbXVsKEFlLGt0KXwwLGFlPWFlK01hdGguaW11bCh4ZSxvdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKHhlLHp0'@; put 'KXwwKStNYXRoLmltdWwodmUsb3QpfDAsbGU9bGUrTWF0aC5pbXVsKHZlLHp0KXwwO3ZhciBOaT0oQSsoYWU9YWUrTWF0aC5pbXVsKFplLFdlKXwwKXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRoLmltdWwoWmUsQXQpfDApK01hdGguaW11bChRZSxXZSl8MCkpPDwxMyl8MDtBPSgobGU9bGUr'@; put 'TWF0aC5pbXVsKFFlLEF0KXwwKSsobmU+Pj4xMyl8MCkrKE5pPj4+MjYpfDAsTmkmPTY3MTA4ODYzLGFlPU1hdGguaW11bChudCxlbiksbmU9KG5lPU1hdGguaW11bChudCxzbikpK01hdGguaW11bChKZSxlbil8MCxsZT1NYXRoLmltdWwoSmUsc24pLGFlPWFlK01hdGguaW11bChEZSxkbil8'@; put 'MCxuZT0obmU9bmUrTWF0aC5pbXVsKERlLGZ0KXwwKStNYXRoLmltdWwoa2UsZG4pfDAsbGU9bGUrTWF0aC5pbXVsKGtlLGZ0KXwwLGFlPWFlK01hdGguaW11bChSZSxadCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKFJlLGt0KXwwKStNYXRoLmltdWwoSWUsWnQpfDAsbGU9bGUrTWF0aC5pbXVs'@; put 'KEllLGt0KXwwLGFlPWFlK01hdGguaW11bChqZSxvdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKGplLHp0KXwwKStNYXRoLmltdWwoQWUsb3QpfDAsbGU9bGUrTWF0aC5pbXVsKEFlLHp0KXwwLGFlPWFlK01hdGguaW11bCh4ZSxXZSl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKHhlLEF0KXwwKStN'@; put 'YXRoLmltdWwodmUsV2UpfDAsbGU9bGUrTWF0aC5pbXVsKHZlLEF0KXwwO3ZhciBIaT0oQSsoYWU9YWUrTWF0aC5pbXVsKFplLGh0KXwwKXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRoLmltdWwoWmUsRXQpfDApK01hdGguaW11bChRZSxodCl8MCkpPDwxMyl8MDtBPSgobGU9bGUrTWF0aC5p'@; put 'bXVsKFFlLEV0KXwwKSsobmU+Pj4xMyl8MCkrKEhpPj4+MjYpfDAsSGkmPTY3MTA4ODYzLGFlPU1hdGguaW11bCh5dCxlbiksbmU9KG5lPU1hdGguaW11bCh5dCxzbikpK01hdGguaW11bChNdCxlbil8MCxsZT1NYXRoLmltdWwoTXQsc24pLGFlPWFlK01hdGguaW11bChudCxkbil8MCxuZT0o'@; put 'bmU9bmUrTWF0aC5pbXVsKG50LGZ0KXwwKStNYXRoLmltdWwoSmUsZG4pfDAsbGU9bGUrTWF0aC5pbXVsKEplLGZ0KXwwLGFlPWFlK01hdGguaW11bChEZSxadCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKERlLGt0KXwwKStNYXRoLmltdWwoa2UsWnQpfDAsbGU9bGUrTWF0aC5pbXVsKGtlLGt0'@; put 'KXwwLGFlPWFlK01hdGguaW11bChSZSxvdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKFJlLHp0KXwwKStNYXRoLmltdWwoSWUsb3QpfDAsbGU9bGUrTWF0aC5pbXVsKEllLHp0KXwwLGFlPWFlK01hdGguaW11bChqZSxXZSl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKGplLEF0KXwwKStNYXRoLmlt'@; put 'dWwoQWUsV2UpfDAsbGU9bGUrTWF0aC5pbXVsKEFlLEF0KXwwLGFlPWFlK01hdGguaW11bCh4ZSxodCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKHhlLEV0KXwwKStNYXRoLmltdWwodmUsaHQpfDAsbGU9bGUrTWF0aC5pbXVsKHZlLEV0KXwwO3ZhciBJYT0oQSsoYWU9YWUrTWF0aC5pbXVsKFpl'@; put 'LGFuKXwwKXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRoLmltdWwoWmUsanQpfDApK01hdGguaW11bChRZSxhbil8MCkpPDwxMyl8MDtBPSgobGU9bGUrTWF0aC5pbXVsKFFlLGp0KXwwKSsobmU+Pj4xMyl8MCkrKElhPj4+MjYpfDAsSWEmPTY3MTA4ODYzLGFlPU1hdGguaW11bChydCxlbiks'@; put 'bmU9KG5lPU1hdGguaW11bChydCxzbikpK01hdGguaW11bChLZSxlbil8MCxsZT1NYXRoLmltdWwoS2Usc24pLGFlPWFlK01hdGguaW11bCh5dCxkbil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKHl0LGZ0KXwwKStNYXRoLmltdWwoTXQsZG4pfDAsbGU9bGUrTWF0aC5pbXVsKE10LGZ0KXwwLGFl'@; put 'PWFlK01hdGguaW11bChudCxadCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKG50LGt0KXwwKStNYXRoLmltdWwoSmUsWnQpfDAsbGU9bGUrTWF0aC5pbXVsKEplLGt0KXwwLGFlPWFlK01hdGguaW11bChEZSxvdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKERlLHp0KXwwKStNYXRoLmltdWwoa2Us'@; put 'b3QpfDAsbGU9bGUrTWF0aC5pbXVsKGtlLHp0KXwwLGFlPWFlK01hdGguaW11bChSZSxXZSl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKFJlLEF0KXwwKStNYXRoLmltdWwoSWUsV2UpfDAsbGU9bGUrTWF0aC5pbXVsKEllLEF0KXwwLGFlPWFlK01hdGguaW11bChqZSxodCl8MCxuZT0obmU9bmUr'@; put 'TWF0aC5pbXVsKGplLEV0KXwwKStNYXRoLmltdWwoQWUsaHQpfDAsbGU9bGUrTWF0aC5pbXVsKEFlLEV0KXwwLGFlPWFlK01hdGguaW11bCh4ZSxhbil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKHhlLGp0KXwwKStNYXRoLmltdWwodmUsYW4pfDAsbGU9bGUrTWF0aC5pbXVsKHZlLGp0KXwwO3Zh'@; put 'ciBQcj0oQSsoYWU9YWUrTWF0aC5pbXVsKFplLGNuKXwwKXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRoLmltdWwoWmUsZm4pfDApK01hdGguaW11bChRZSxjbil8MCkpPDwxMyl8MDtBPSgobGU9bGUrTWF0aC5pbXVsKFFlLGZuKXwwKSsobmU+Pj4xMyl8MCkrKFByPj4+MjYpfDAsUHImPTY3'@; put 'MTA4ODYzLGFlPU1hdGguaW11bChOZSxlbiksbmU9KG5lPU1hdGguaW11bChOZSxzbikpK01hdGguaW11bCh1dCxlbil8MCxsZT1NYXRoLmltdWwodXQsc24pLGFlPWFlK01hdGguaW11bChydCxkbil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKHJ0LGZ0KXwwKStNYXRoLmltdWwoS2UsZG4pfDAs'@; put 'bGU9bGUrTWF0aC5pbXVsKEtlLGZ0KXwwLGFlPWFlK01hdGguaW11bCh5dCxadCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKHl0LGt0KXwwKStNYXRoLmltdWwoTXQsWnQpfDAsbGU9bGUrTWF0aC5pbXVsKE10LGt0KXwwLGFlPWFlK01hdGguaW11bChudCxvdCl8MCxuZT0obmU9bmUrTWF0aC5p'@; put 'bXVsKG50LHp0KXwwKStNYXRoLmltdWwoSmUsb3QpfDAsbGU9bGUrTWF0aC5pbXVsKEplLHp0KXwwLGFlPWFlK01hdGguaW11bChEZSxXZSl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKERlLEF0KXwwKStNYXRoLmltdWwoa2UsV2UpfDAsbGU9bGUrTWF0aC5pbXVsKGtlLEF0KXwwLGFlPWFlK01h'@; put 'dGguaW11bChSZSxodCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKFJlLEV0KXwwKStNYXRoLmltdWwoSWUsaHQpfDAsbGU9bGUrTWF0aC5pbXVsKEllLEV0KXwwLGFlPWFlK01hdGguaW11bChqZSxhbil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKGplLGp0KXwwKStNYXRoLmltdWwoQWUsYW4pfDAs'@; put 'bGU9bGUrTWF0aC5pbXVsKEFlLGp0KXwwLGFlPWFlK01hdGguaW11bCh4ZSxjbil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKHhlLGZuKXwwKStNYXRoLmltdWwodmUsY24pfDAsbGU9bGUrTWF0aC5pbXVsKHZlLGZuKXwwO3ZhciBZaT0oQSsoYWU9YWUrTWF0aC5pbXVsKFplLFF0KXwwKXwwKSso'@; put 'KDgxOTEmKG5lPShuZT1uZStNYXRoLmltdWwoWmUsdG4pfDApK01hdGguaW11bChRZSxRdCl8MCkpPDwxMyl8MDtBPSgobGU9bGUrTWF0aC5pbXVsKFFlLHRuKXwwKSsobmU+Pj4xMyl8MCkrKFlpPj4+MjYpfDAsWWkmPTY3MTA4ODYzLGFlPU1hdGguaW11bChMdCxlbiksbmU9KG5lPU1hdGgu'@; put 'aW11bChMdCxzbikpK01hdGguaW11bChQdCxlbil8MCxsZT1NYXRoLmltdWwoUHQsc24pLGFlPWFlK01hdGguaW11bChOZSxkbil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKE5lLGZ0KXwwKStNYXRoLmltdWwodXQsZG4pfDAsbGU9bGUrTWF0aC5pbXVsKHV0LGZ0KXwwLGFlPWFlK01hdGguaW11'@; put 'bChydCxadCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKHJ0LGt0KXwwKStNYXRoLmltdWwoS2UsWnQpfDAsbGU9bGUrTWF0aC5pbXVsKEtlLGt0KXwwLGFlPWFlK01hdGguaW11bCh5dCxvdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKHl0LHp0KXwwKStNYXRoLmltdWwoTXQsb3QpfDAsbGU9bGUr'@; put 'TWF0aC5pbXVsKE10LHp0KXwwLGFlPWFlK01hdGguaW11bChudCxXZSl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKG50LEF0KXwwKStNYXRoLmltdWwoSmUsV2UpfDAsbGU9bGUrTWF0aC5pbXVsKEplLEF0KXwwLGFlPWFlK01hdGguaW11bChEZSxodCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKERl'@; put 'LEV0KXwwKStNYXRoLmltdWwoa2UsaHQpfDAsbGU9bGUrTWF0aC5pbXVsKGtlLEV0KXwwLGFlPWFlK01hdGguaW11bChSZSxhbil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKFJlLGp0KXwwKStNYXRoLmltdWwoSWUsYW4pfDAsbGU9bGUrTWF0aC5pbXVsKEllLGp0KXwwLGFlPWFlK01hdGguaW11'@; put 'bChqZSxjbil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKGplLGZuKXwwKStNYXRoLmltdWwoQWUsY24pfDAsbGU9bGUrTWF0aC5pbXVsKEFlLGZuKXwwLGFlPWFlK01hdGguaW11bCh4ZSxRdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKHhlLHRuKXwwKStNYXRoLmltdWwodmUsUXQpfDAsbGU9bGUr'@; put 'TWF0aC5pbXVsKHZlLHRuKXwwO3ZhciBmYT0oQSsoYWU9YWUrTWF0aC5pbXVsKFplLHhpKXwwKXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRoLmltdWwoWmUseXIpfDApK01hdGguaW11bChRZSx4aSl8MCkpPDwxMyl8MDtBPSgobGU9bGUrTWF0aC5pbXVsKFFlLHlyKXwwKSsobmU+Pj4xMyl8'@; put 'MCkrKGZhPj4+MjYpfDAsZmEmPTY3MTA4ODYzLGFlPU1hdGguaW11bChMdCxkbiksbmU9KG5lPU1hdGguaW11bChMdCxmdCkpK01hdGguaW11bChQdCxkbil8MCxsZT1NYXRoLmltdWwoUHQsZnQpLGFlPWFlK01hdGguaW11bChOZSxadCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKE5lLGt0KXww'@; put 'KStNYXRoLmltdWwodXQsWnQpfDAsbGU9bGUrTWF0aC5pbXVsKHV0LGt0KXwwLGFlPWFlK01hdGguaW11bChydCxvdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKHJ0LHp0KXwwKStNYXRoLmltdWwoS2Usb3QpfDAsbGU9bGUrTWF0aC5pbXVsKEtlLHp0KXwwLGFlPWFlK01hdGguaW11bCh5dCxX'@; put 'ZSl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKHl0LEF0KXwwKStNYXRoLmltdWwoTXQsV2UpfDAsbGU9bGUrTWF0aC5pbXVsKE10LEF0KXwwLGFlPWFlK01hdGguaW11bChudCxodCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKG50LEV0KXwwKStNYXRoLmltdWwoSmUsaHQpfDAsbGU9bGUrTWF0aC5p'@; put 'bXVsKEplLEV0KXwwLGFlPWFlK01hdGguaW11bChEZSxhbil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKERlLGp0KXwwKStNYXRoLmltdWwoa2UsYW4pfDAsbGU9bGUrTWF0aC5pbXVsKGtlLGp0KXwwLGFlPWFlK01hdGguaW11bChSZSxjbil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKFJlLGZuKXww'@; put 'KStNYXRoLmltdWwoSWUsY24pfDAsbGU9bGUrTWF0aC5pbXVsKEllLGZuKXwwLGFlPWFlK01hdGguaW11bChqZSxRdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKGplLHRuKXwwKStNYXRoLmltdWwoQWUsUXQpfDAsbGU9bGUrTWF0aC5pbXVsKEFlLHRuKXwwO3ZhciBucj0oQSsoYWU9YWUrTWF0'@; put 'aC5pbXVsKHhlLHhpKXwwKXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRoLmltdWwoeGUseXIpfDApK01hdGguaW11bCh2ZSx4aSl8MCkpPDwxMyl8MDtBPSgobGU9bGUrTWF0aC5pbXVsKHZlLHlyKXwwKSsobmU+Pj4xMyl8MCkrKG5yPj4+MjYpfDAsbnImPTY3MTA4ODYzLGFlPU1hdGguaW11'@; put 'bChMdCxadCksbmU9KG5lPU1hdGguaW11bChMdCxrdCkpK01hdGguaW11bChQdCxadCl8MCxsZT1NYXRoLmltdWwoUHQsa3QpLGFlPWFlK01hdGguaW11bChOZSxvdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKE5lLHp0KXwwKStNYXRoLmltdWwodXQsb3QpfDAsbGU9bGUrTWF0aC5pbXVsKHV0'@; put 'LHp0KXwwLGFlPWFlK01hdGguaW11bChydCxXZSl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKHJ0LEF0KXwwKStNYXRoLmltdWwoS2UsV2UpfDAsbGU9bGUrTWF0aC5pbXVsKEtlLEF0KXwwLGFlPWFlK01hdGguaW11bCh5dCxodCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKHl0LEV0KXwwKStNYXRo'@; put 'LmltdWwoTXQsaHQpfDAsbGU9bGUrTWF0aC5pbXVsKE10LEV0KXwwLGFlPWFlK01hdGguaW11bChudCxhbil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKG50LGp0KXwwKStNYXRoLmltdWwoSmUsYW4pfDAsbGU9bGUrTWF0aC5pbXVsKEplLGp0KXwwLGFlPWFlK01hdGguaW11bChEZSxjbil8MCxu'@; put 'ZT0obmU9bmUrTWF0aC5pbXVsKERlLGZuKXwwKStNYXRoLmltdWwoa2UsY24pfDAsbGU9bGUrTWF0aC5pbXVsKGtlLGZuKXwwLGFlPWFlK01hdGguaW11bChSZSxRdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKFJlLHRuKXwwKStNYXRoLmltdWwoSWUsUXQpfDAsbGU9bGUrTWF0aC5pbXVsKEll'@; put 'LHRuKXwwO3ZhciBvYT0oQSsoYWU9YWUrTWF0aC5pbXVsKGplLHhpKXwwKXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRoLmltdWwoamUseXIpfDApK01hdGguaW11bChBZSx4aSl8MCkpPDwxMyl8MDtBPSgobGU9bGUrTWF0aC5pbXVsKEFlLHlyKXwwKSsobmU+Pj4xMyl8MCkrKG9hPj4+MjYp'@; put 'fDAsb2EmPTY3MTA4ODYzLGFlPU1hdGguaW11bChMdCxvdCksbmU9KG5lPU1hdGguaW11bChMdCx6dCkpK01hdGguaW11bChQdCxvdCl8MCxsZT1NYXRoLmltdWwoUHQsenQpLGFlPWFlK01hdGguaW11bChOZSxXZSl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKE5lLEF0KXwwKStNYXRoLmltdWwo'@; put 'dXQsV2UpfDAsbGU9bGUrTWF0aC5pbXVsKHV0LEF0KXwwLGFlPWFlK01hdGguaW11bChydCxodCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKHJ0LEV0KXwwKStNYXRoLmltdWwoS2UsaHQpfDAsbGU9bGUrTWF0aC5pbXVsKEtlLEV0KXwwLGFlPWFlK01hdGguaW11bCh5dCxhbil8MCxuZT0obmU9'@; put 'bmUrTWF0aC5pbXVsKHl0LGp0KXwwKStNYXRoLmltdWwoTXQsYW4pfDAsbGU9bGUrTWF0aC5pbXVsKE10LGp0KXwwLGFlPWFlK01hdGguaW11bChudCxjbil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKG50LGZuKXwwKStNYXRoLmltdWwoSmUsY24pfDAsbGU9bGUrTWF0aC5pbXVsKEplLGZuKXww'@; put 'LGFlPWFlK01hdGguaW11bChEZSxRdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKERlLHRuKXwwKStNYXRoLmltdWwoa2UsUXQpfDAsbGU9bGUrTWF0aC5pbXVsKGtlLHRuKXwwO3ZhciBfYT0oQSsoYWU9YWUrTWF0aC5pbXVsKFJlLHhpKXwwKXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRoLmlt'@; put 'dWwoUmUseXIpfDApK01hdGguaW11bChJZSx4aSl8MCkpPDwxMyl8MDtBPSgobGU9bGUrTWF0aC5pbXVsKEllLHlyKXwwKSsobmU+Pj4xMyl8MCkrKF9hPj4+MjYpfDAsX2EmPTY3MTA4ODYzLGFlPU1hdGguaW11bChMdCxXZSksbmU9KG5lPU1hdGguaW11bChMdCxBdCkpK01hdGguaW11bChQ'@; put 'dCxXZSl8MCxsZT1NYXRoLmltdWwoUHQsQXQpLGFlPWFlK01hdGguaW11bChOZSxodCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKE5lLEV0KXwwKStNYXRoLmltdWwodXQsaHQpfDAsbGU9bGUrTWF0aC5pbXVsKHV0LEV0KXwwLGFlPWFlK01hdGguaW11bChydCxhbil8MCxuZT0obmU9bmUrTWF0'@; put 'aC5pbXVsKHJ0LGp0KXwwKStNYXRoLmltdWwoS2UsYW4pfDAsbGU9bGUrTWF0aC5pbXVsKEtlLGp0KXwwLGFlPWFlK01hdGguaW11bCh5dCxjbil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKHl0LGZuKXwwKStNYXRoLmltdWwoTXQsY24pfDAsbGU9bGUrTWF0aC5pbXVsKE10LGZuKXwwLGFlPWFl'@; put 'K01hdGguaW11bChudCxRdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKG50LHRuKXwwKStNYXRoLmltdWwoSmUsUXQpfDAsbGU9bGUrTWF0aC5pbXVsKEplLHRuKXwwO3ZhciBPYT0oQSsoYWU9YWUrTWF0aC5pbXVsKERlLHhpKXwwKXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRoLmltdWwoRGUs'@; put 'eXIpfDApK01hdGguaW11bChrZSx4aSl8MCkpPDwxMyl8MDtBPSgobGU9bGUrTWF0aC5pbXVsKGtlLHlyKXwwKSsobmU+Pj4xMyl8MCkrKE9hPj4+MjYpfDAsT2EmPTY3MTA4ODYzLGFlPU1hdGguaW11bChMdCxodCksbmU9KG5lPU1hdGguaW11bChMdCxFdCkpK01hdGguaW11bChQdCxodCl8'@; put 'MCxsZT1NYXRoLmltdWwoUHQsRXQpLGFlPWFlK01hdGguaW11bChOZSxhbil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKE5lLGp0KXwwKStNYXRoLmltdWwodXQsYW4pfDAsbGU9bGUrTWF0aC5pbXVsKHV0LGp0KXwwLGFlPWFlK01hdGguaW11bChydCxjbil8MCxuZT0obmU9bmUrTWF0aC5pbXVs'@; put 'KHJ0LGZuKXwwKStNYXRoLmltdWwoS2UsY24pfDAsbGU9bGUrTWF0aC5pbXVsKEtlLGZuKXwwLGFlPWFlK01hdGguaW11bCh5dCxRdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKHl0LHRuKXwwKStNYXRoLmltdWwoTXQsUXQpfDAsbGU9bGUrTWF0aC5pbXVsKE10LHRuKXwwO3ZhciBOYT0oQSso'@; put 'YWU9YWUrTWF0aC5pbXVsKG50LHhpKXwwKXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRoLmltdWwobnQseXIpfDApK01hdGguaW11bChKZSx4aSl8MCkpPDwxMyl8MDtBPSgobGU9bGUrTWF0aC5pbXVsKEplLHlyKXwwKSsobmU+Pj4xMyl8MCkrKE5hPj4+MjYpfDAsTmEmPTY3MTA4ODYzLGFl'@; put 'PU1hdGguaW11bChMdCxhbiksbmU9KG5lPU1hdGguaW11bChMdCxqdCkpK01hdGguaW11bChQdCxhbil8MCxsZT1NYXRoLmltdWwoUHQsanQpLGFlPWFlK01hdGguaW11bChOZSxjbil8MCxuZT0obmU9bmUrTWF0aC5pbXVsKE5lLGZuKXwwKStNYXRoLmltdWwodXQsY24pfDAsbGU9bGUrTWF0'@; put 'aC5pbXVsKHV0LGZuKXwwLGFlPWFlK01hdGguaW11bChydCxRdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKHJ0LHRuKXwwKStNYXRoLmltdWwoS2UsUXQpfDAsbGU9bGUrTWF0aC5pbXVsKEtlLHRuKXwwO3ZhciBlaT0oQSsoYWU9YWUrTWF0aC5pbXVsKHl0LHhpKXwwKXwwKSsoKDgxOTEmKG5l'@; put 'PShuZT1uZStNYXRoLmltdWwoeXQseXIpfDApK01hdGguaW11bChNdCx4aSl8MCkpPDwxMyl8MDtBPSgobGU9bGUrTWF0aC5pbXVsKE10LHlyKXwwKSsobmU+Pj4xMyl8MCkrKGVpPj4+MjYpfDAsZWkmPTY3MTA4ODYzLGFlPU1hdGguaW11bChMdCxjbiksbmU9KG5lPU1hdGguaW11bChMdCxm'@; put 'bikpK01hdGguaW11bChQdCxjbil8MCxsZT1NYXRoLmltdWwoUHQsZm4pLGFlPWFlK01hdGguaW11bChOZSxRdCl8MCxuZT0obmU9bmUrTWF0aC5pbXVsKE5lLHRuKXwwKStNYXRoLmltdWwodXQsUXQpfDAsbGU9bGUrTWF0aC5pbXVsKHV0LHRuKXwwO3ZhciBmcz0oQSsoYWU9YWUrTWF0aC5p'@; put 'bXVsKHJ0LHhpKXwwKXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRoLmltdWwocnQseXIpfDApK01hdGguaW11bChLZSx4aSl8MCkpPDwxMyl8MDtBPSgobGU9bGUrTWF0aC5pbXVsKEtlLHlyKXwwKSsobmU+Pj4xMyl8MCkrKGZzPj4+MjYpfDAsZnMmPTY3MTA4ODYzLGFlPU1hdGguaW11bChM'@; put 'dCxRdCksbmU9KG5lPU1hdGguaW11bChMdCx0bikpK01hdGguaW11bChQdCxRdCl8MCxsZT1NYXRoLmltdWwoUHQsdG4pO3ZhciBIbz0oQSsoYWU9YWUrTWF0aC5pbXVsKE5lLHhpKXwwKXwwKSsoKDgxOTEmKG5lPShuZT1uZStNYXRoLmltdWwoTmUseXIpfDApK01hdGguaW11bCh1dCx4aSl8'@; put 'MCkpPDwxMyl8MDtBPSgobGU9bGUrTWF0aC5pbXVsKHV0LHlyKXwwKSsobmU+Pj4xMyl8MCkrKEhvPj4+MjYpfDAsSG8mPTY3MTA4ODYzO3ZhciBtbD0oQSsoYWU9TWF0aC5pbXVsKEx0LHhpKSl8MCkrKCg4MTkxJihuZT0obmU9TWF0aC5pbXVsKEx0LHlyKSkrTWF0aC5pbXVsKFB0LHhpKXww'@; put 'KSk8PDEzKXwwO3JldHVybiBBPSgobGU9TWF0aC5pbXVsKFB0LHlyKSkrKG5lPj4+MTMpfDApKyhtbD4+PjI2KXwwLG1sJj02NzEwODg2MyxtWzBdPUduLG1bMV09S2ksbVsyXT1KcixtWzNdPVFyLG1bNF09TmksbVs1XT1IaSxtWzZdPUlhLG1bN109UHIsbVs4XT1ZaSxtWzldPWZhLG1bMTBd'@; put 'PW5yLG1bMTFdPW9hLG1bMTJdPV9hLG1bMTNdPU9hLG1bMTRdPU5hLG1bMTVdPWVpLG1bMTZdPWZzLG1bMTddPUhvLG1bMThdPW1sLDAhPT1BJiYobVsxOV09QSxWLmxlbmd0aCsrKSxWfTtmdW5jdGlvbiB0ZSh4LEMsVCl7VC5uZWdhdGl2ZT1DLm5lZ2F0aXZlXngubmVnYXRpdmUsVC5sZW5n'@; put 'dGg9eC5sZW5ndGgrQy5sZW5ndGg7Zm9yKHZhciBWPTAsVT0wLEU9MDtFPFQubGVuZ3RoLTE7RSsrKXt2YXIgbT1VO1U9MDtmb3IodmFyIEE9NjcxMDg4NjMmVixhZT1NYXRoLm1pbihFLEMubGVuZ3RoLTEpLG5lPU1hdGgubWF4KDAsRS14Lmxlbmd0aCsxKTtuZTw9YWU7bmUrKyl7dmFyIFFl'@; put 'PSgwfHgud29yZHNbRS1uZV0pKigwfEMud29yZHNbbmVdKSxhdD02NzEwODg2MyZRZTtBPTY3MTA4ODYzJihhdD1hdCtBfDApLFUrPShtPShtPW0rKFFlLzY3MTA4ODY0fDApfDApKyhhdD4+PjI2KXwwKT4+PjI2LG0mPTY3MTA4ODYzfVQud29yZHNbRV09QSxWPW0sbT1VfXJldHVybiAwIT09'@; put 'Vj9ULndvcmRzW0VdPVY6VC5sZW5ndGgtLSxULl9zdHJpcCgpfWZ1bmN0aW9uIGllKHgsQyxUKXtyZXR1cm4gdGUoeCxDLFQpfWZ1bmN0aW9uIHNlKHgsQyl7dGhpcy54PXgsdGhpcy55PUN9TWF0aC5pbXVsfHwocT1RKSx3LnByb3RvdHlwZS5tdWxUbz1mdW5jdGlvbihDLFQpe3ZhciBVPXRo'@; put 'aXMubGVuZ3RoK0MubGVuZ3RoO3JldHVybiAxMD09PXRoaXMubGVuZ3RoJiYxMD09PUMubGVuZ3RoP3EodGhpcyxDLFQpOlU8NjM/USh0aGlzLEMsVCk6VTwxMDI0P3RlKHRoaXMsQyxUKTppZSh0aGlzLEMsVCl9LHNlLnByb3RvdHlwZS5tYWtlUkJUPWZ1bmN0aW9uKEMpe2Zvcih2YXIgVD1u'@; put 'ZXcgQXJyYXkoQyksVj13LnByb3RvdHlwZS5fY291bnRCaXRzKEMpLTEsVT0wO1U8QztVKyspVFtVXT10aGlzLnJldkJpbihVLFYsQyk7cmV0dXJuIFR9LHNlLnByb3RvdHlwZS5yZXZCaW49ZnVuY3Rpb24oQyxULFYpe2lmKDA9PT1DfHxDPT09Vi0xKXJldHVybiBDO2Zvcih2YXIgVT0wLEU9'@; put 'MDtFPFQ7RSsrKVV8PSgxJkMpPDxULUUtMSxDPj49MTtyZXR1cm4gVX0sc2UucHJvdG90eXBlLnBlcm11dGU9ZnVuY3Rpb24oQyxULFYsVSxFLG0pe2Zvcih2YXIgQT0wO0E8bTtBKyspVVtBXT1UW0NbQV1dLEVbQV09VltDW0FdXX0sc2UucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbihD'@; put 'LFQsVixVLEUsbSl7dGhpcy5wZXJtdXRlKG0sQyxULFYsVSxFKTtmb3IodmFyIEE9MTtBPEU7QTw8PTEpZm9yKHZhciBhZT1BPDwxLG5lPU1hdGguY29zKDIqTWF0aC5QSS9hZSksbGU9TWF0aC5zaW4oMipNYXRoLlBJL2FlKSx3ZT0wO3dlPEU7d2UrPWFlKWZvcih2YXIgWmU9bmUsUWU9bGUs'@; put 'YXQ9MDthdDxBO2F0Kyspe3ZhciB4ZT1WW3dlK2F0XSx2ZT1VW3dlK2F0XSxxZT1WW3dlK2F0K0FdLGplPVVbd2UrYXQrQV0sQWU9WmUqcWUtUWUqamU7amU9WmUqamUrUWUqcWUsVlt3ZSthdF09eGUrKHFlPUFlKSxVW3dlK2F0XT12ZStqZSxWW3dlK2F0K0FdPXhlLXFlLFVbd2UrYXQrQV09'@; put 'dmUtamUsYXQhPT1hZSYmKEFlPW5lKlplLWxlKlFlLFFlPW5lKlFlK2xlKlplLFplPUFlKX19LHNlLnByb3RvdHlwZS5ndWVzc0xlbjEzYj1mdW5jdGlvbihDLFQpe3ZhciBWPTF8TWF0aC5tYXgoVCxDKSxVPTEmVixFPTA7Zm9yKFY9Vi8yfDA7VjtWPj4+PTEpRSsrO3JldHVybiAxPDxFKzEr'@; put 'VX0sc2UucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbihDLFQsVil7aWYoIShWPD0xKSlmb3IodmFyIFU9MDtVPFYvMjtVKyspe3ZhciBFPUNbVV07Q1tVXT1DW1YtVS0xXSxDW1YtVS0xXT1FLEU9VFtVXSxUW1VdPS1UW1YtVS0xXSxUW1YtVS0xXT0tRX19LHNlLnByb3RvdHlwZS5ub3Jt'@; put 'YWxpemUxM2I9ZnVuY3Rpb24oQyxUKXtmb3IodmFyIFY9MCxVPTA7VTxULzI7VSsrKXt2YXIgRT04MTkyKk1hdGgucm91bmQoQ1syKlUrMV0vVCkrTWF0aC5yb3VuZChDWzIqVV0vVCkrVjtDW1VdPTY3MTA4ODYzJkUsVj1FPDY3MTA4ODY0PzA6RS82NzEwODg2NHwwfXJldHVybiBDfSxzZS5w'@; put 'cm90b3R5cGUuY29udmVydDEzYj1mdW5jdGlvbihDLFQsVixVKXtmb3IodmFyIEU9MCxtPTA7bTxUO20rKylWWzIqbV09ODE5MSYoRSs9MHxDW21dKSxWWzIqbSsxXT04MTkxJihFPj4+PTEzKSxFPj4+PTEzO2ZvcihtPTIqVDttPFU7KyttKVZbbV09MDtwKDA9PT1FKSxwKCEoLTgxOTImRSkp'@; put 'fSxzZS5wcm90b3R5cGUuc3R1Yj1mdW5jdGlvbihDKXtmb3IodmFyIFQ9bmV3IEFycmF5KEMpLFY9MDtWPEM7VisrKVRbVl09MDtyZXR1cm4gVH0sc2UucHJvdG90eXBlLm11bHA9ZnVuY3Rpb24oQyxULFYpe3ZhciBVPTIqdGhpcy5ndWVzc0xlbjEzYihDLmxlbmd0aCxULmxlbmd0aCksRT10'@; put 'aGlzLm1ha2VSQlQoVSksbT10aGlzLnN0dWIoVSksQT1uZXcgQXJyYXkoVSksYWU9bmV3IEFycmF5KFUpLG5lPW5ldyBBcnJheShVKSxsZT1uZXcgQXJyYXkoVSksd2U9bmV3IEFycmF5KFUpLFplPW5ldyBBcnJheShVKSxRZT1WLndvcmRzO1FlLmxlbmd0aD1VLHRoaXMuY29udmVydDEzYihD'@; put 'LndvcmRzLEMubGVuZ3RoLEEsVSksdGhpcy5jb252ZXJ0MTNiKFQud29yZHMsVC5sZW5ndGgsbGUsVSksdGhpcy50cmFuc2Zvcm0oQSxtLGFlLG5lLFUsRSksdGhpcy50cmFuc2Zvcm0obGUsbSx3ZSxaZSxVLEUpO2Zvcih2YXIgYXQ9MDthdDxVO2F0Kyspe3ZhciB4ZT1hZVthdF0qd2VbYXRd'@; put 'LW5lW2F0XSpaZVthdF07bmVbYXRdPWFlW2F0XSpaZVthdF0rbmVbYXRdKndlW2F0XSxhZVthdF09eGV9cmV0dXJuIHRoaXMuY29uanVnYXRlKGFlLG5lLFUpLHRoaXMudHJhbnNmb3JtKGFlLG5lLFFlLG0sVSxFKSx0aGlzLmNvbmp1Z2F0ZShRZSxtLFUpLHRoaXMubm9ybWFsaXplMTNiKFFl'@; put 'LFUpLFYubmVnYXRpdmU9Qy5uZWdhdGl2ZV5ULm5lZ2F0aXZlLFYubGVuZ3RoPUMubGVuZ3RoK1QubGVuZ3RoLFYuX3N0cmlwKCl9LHcucHJvdG90eXBlLm11bD1mdW5jdGlvbihDKXt2YXIgVD1uZXcgdyhudWxsKTtyZXR1cm4gVC53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrQy5sZW5n'@; put 'dGgpLHRoaXMubXVsVG8oQyxUKX0sdy5wcm90b3R5cGUubXVsZj1mdW5jdGlvbihDKXt2YXIgVD1uZXcgdyhudWxsKTtyZXR1cm4gVC53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrQy5sZW5ndGgpLGllKHRoaXMsQyxUKX0sdy5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihDKXtyZXR1cm4g'@; put 'dGhpcy5jbG9uZSgpLm11bFRvKEMsdGhpcyl9LHcucHJvdG90eXBlLmltdWxuPWZ1bmN0aW9uKEMpe3ZhciBUPUM8MDtUJiYoQz0tQykscCgibnVtYmVyIj09dHlwZW9mIEMpLHAoQzw2NzEwODg2NCk7Zm9yKHZhciBWPTAsVT0wO1U8dGhpcy5sZW5ndGg7VSsrKXt2YXIgRT0oMHx0aGlzLndv'@; put 'cmRzW1VdKSpDLG09KDY3MTA4ODYzJkUpKyg2NzEwODg2MyZWKTtWPj49MjYsVis9RS82NzEwODg2NHwwLFYrPW0+Pj4yNix0aGlzLndvcmRzW1VdPTY3MTA4ODYzJm19cmV0dXJuIDAhPT1WJiYodGhpcy53b3Jkc1tVXT1WLHRoaXMubGVuZ3RoKyspLHRoaXMubGVuZ3RoPTA9PT1DPzE6dGhp'@; put 'cy5sZW5ndGgsVD90aGlzLmluZWcoKTp0aGlzfSx3LnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKEMpe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4oQyl9LHcucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sdy5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigp'@; put 'e3JldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sdy5wcm90b3R5cGUucG93PWZ1bmN0aW9uKEMpe3ZhciBUPWZ1bmN0aW9uIFgoeCl7Zm9yKHZhciBDPW5ldyBBcnJheSh4LmJpdExlbmd0aCgpKSxUPTA7VDxDLmxlbmd0aDtUKyspQ1tUXT14LndvcmRzW1QvMjZ8MF0+Pj5UJTI2JjE7'@; put 'cmV0dXJuIEN9KEMpO2lmKDA9PT1ULmxlbmd0aClyZXR1cm4gbmV3IHcoMSk7Zm9yKHZhciBWPXRoaXMsVT0wO1U8VC5sZW5ndGgmJjA9PT1UW1VdO1UrKyxWPVYuc3FyKCkpO2lmKCsrVTxULmxlbmd0aClmb3IodmFyIEU9Vi5zcXIoKTtVPFQubGVuZ3RoO1UrKyxFPUUuc3FyKCkpMCE9PVRb'@; put 'VV0mJihWPVYubXVsKEUpKTtyZXR1cm4gVn0sdy5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKEMpe3AoIm51bWJlciI9PXR5cGVvZiBDJiZDPj0wKTt2YXIgRSxUPUMlMjYsVj0oQy1UKS8yNixVPTY3MTA4ODYzPj4+MjYtVDw8MjYtVDtpZigwIT09VCl7dmFyIG09MDtmb3IoRT0wO0U8dGhp'@; put 'cy5sZW5ndGg7RSsrKXt2YXIgQT10aGlzLndvcmRzW0VdJlU7dGhpcy53b3Jkc1tFXT0oMHx0aGlzLndvcmRzW0VdKS1BPDxUfG0sbT1BPj4+MjYtVH1tJiYodGhpcy53b3Jkc1tFXT1tLHRoaXMubGVuZ3RoKyspfWlmKDAhPT1WKXtmb3IoRT10aGlzLmxlbmd0aC0xO0U+PTA7RS0tKXRoaXMu'@; put 'd29yZHNbRStWXT10aGlzLndvcmRzW0VdO2ZvcihFPTA7RTxWO0UrKyl0aGlzLndvcmRzW0VdPTA7dGhpcy5sZW5ndGgrPVZ9cmV0dXJuIHRoaXMuX3N0cmlwKCl9LHcucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKEMpe3JldHVybiBwKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hsbihD'@; put 'KX0sdy5wcm90b3R5cGUuaXVzaHJuPWZ1bmN0aW9uKEMsVCxWKXt2YXIgVTtwKCJudW1iZXIiPT10eXBlb2YgQyYmQz49MCksVT1UPyhULVQlMjYpLzI2OjA7dmFyIEU9QyUyNixtPU1hdGgubWluKChDLUUpLzI2LHRoaXMubGVuZ3RoKSxBPTY3MTA4ODYzXjY3MTA4ODYzPj4+RTw8RSxhZT1W'@; put 'O2lmKFUtPW0sVT1NYXRoLm1heCgwLFUpLGFlKXtmb3IodmFyIG5lPTA7bmU8bTtuZSsrKWFlLndvcmRzW25lXT10aGlzLndvcmRzW25lXTthZS5sZW5ndGg9bX1pZigwIT09bSlpZih0aGlzLmxlbmd0aD5tKWZvcih0aGlzLmxlbmd0aC09bSxuZT0wO25lPHRoaXMubGVuZ3RoO25lKyspdGhp'@; put 'cy53b3Jkc1tuZV09dGhpcy53b3Jkc1tuZSttXTtlbHNlIHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xO3ZhciBsZT0wO2ZvcihuZT10aGlzLmxlbmd0aC0xO25lPj0wJiYoMCE9PWxlfHxuZT49VSk7bmUtLSl7dmFyIHdlPTB8dGhpcy53b3Jkc1tuZV07dGhpcy53b3Jkc1tuZV09bGU8'@; put 'PDI2LUV8d2U+Pj5FLGxlPXdlJkF9cmV0dXJuIGFlJiYwIT09bGUmJihhZS53b3Jkc1thZS5sZW5ndGgrK109bGUpLDA9PT10aGlzLmxlbmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLl9zdHJpcCgpfSx3LnByb3RvdHlwZS5pc2hybj1mdW5jdGlvbihDLFQsVil7'@; put 'cmV0dXJuIHAoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaHJuKEMsVCxWKX0sdy5wcm90b3R5cGUuc2hsbj1mdW5jdGlvbihDKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaGxuKEMpfSx3LnByb3RvdHlwZS51c2hsbj1mdW5jdGlvbihDKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hsbihD'@; put 'KX0sdy5wcm90b3R5cGUuc2hybj1mdW5jdGlvbihDKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKEMpfSx3LnByb3RvdHlwZS51c2hybj1mdW5jdGlvbihDKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hybihDKX0sdy5wcm90b3R5cGUudGVzdG49ZnVuY3Rpb24oQyl7cCgibnVtYmVyIj09'@; put 'dHlwZW9mIEMmJkM+PTApO3ZhciBUPUMlMjYsVj0oQy1UKS8yNjtyZXR1cm4hKHRoaXMubGVuZ3RoPD1WfHwhKHRoaXMud29yZHNbVl0mMTw8VCkpfSx3LnByb3RvdHlwZS5pbWFza249ZnVuY3Rpb24oQyl7cCgibnVtYmVyIj09dHlwZW9mIEMmJkM+PTApO3ZhciBUPUMlMjYsVj0oQy1UKS8y'@; put 'NjtyZXR1cm4gcCgwPT09dGhpcy5uZWdhdGl2ZSwiaW1hc2tuIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZSBudW1iZXJzIiksdGhpcy5sZW5ndGg8PVY/dGhpczooMCE9PVQmJlYrKyx0aGlzLmxlbmd0aD1NYXRoLm1pbihWLHRoaXMubGVuZ3RoKSwwIT09VCYmKHRoaXMud29yZHNbdGhpcy5s'@; put 'ZW5ndGgtMV0mPTY3MTA4ODYzXjY3MTA4ODYzPj4+VDw8VCksdGhpcy5fc3RyaXAoKSl9LHcucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKEMpe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKEMpfSx3LnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbihDKXtyZXR1cm4gcCgibnVtYmVyIj09dHlw'@; put 'ZW9mIEMpLHAoQzw2NzEwODg2NCksQzwwP3RoaXMuaXN1Ym4oLUMpOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8PUM/KHRoaXMud29yZHNbMF09Qy0oMHx0aGlzLndvcmRzWzBdKSx0aGlzLm5lZ2F0aXZlPTAsdGhpcyk6KHRoaXMubmVnYXRp'@; put 'dmU9MCx0aGlzLmlzdWJuKEMpLHRoaXMubmVnYXRpdmU9MSx0aGlzKTp0aGlzLl9pYWRkbihDKX0sdy5wcm90b3R5cGUuX2lhZGRuPWZ1bmN0aW9uKEMpe3RoaXMud29yZHNbMF0rPUM7Zm9yKHZhciBUPTA7VDx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1tUXT49NjcxMDg4NjQ7VCsrKXRoaXMu'@; put 'd29yZHNbVF0tPTY3MTA4ODY0LFQ9PT10aGlzLmxlbmd0aC0xP3RoaXMud29yZHNbVCsxXT0xOnRoaXMud29yZHNbVCsxXSsrO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxUKzEpLHRoaXN9LHcucHJvdG90eXBlLmlzdWJuPWZ1bmN0aW9uKEMpe2lmKHAoIm51bWJl'@; put 'ciI9PXR5cGVvZiBDKSxwKEM8NjcxMDg4NjQpLEM8MClyZXR1cm4gdGhpcy5pYWRkbigtQyk7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKEMpLHRoaXMubmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPUMsMT09PXRoaXMubGVu'@; put 'Z3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFyIFQ9MDtUPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW1RdPDA7VCsrKXRoaXMud29yZHNbVF0rPTY3MTA4ODY0LHRoaXMud29yZHNbVCsxXS09MTtyZXR1'@; put 'cm4gdGhpcy5fc3RyaXAoKX0sdy5wcm90b3R5cGUuYWRkbj1mdW5jdGlvbihDKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhZGRuKEMpfSx3LnByb3RvdHlwZS5zdWJuPWZ1bmN0aW9uKEMpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Ym4oQyl9LHcucHJvdG90eXBlLmlhYnM9ZnVuY3Rpb24oKXty'@; put 'ZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXN9LHcucHJvdG90eXBlLmFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaWFicygpfSx3LnByb3RvdHlwZS5faXNobG5zdWJtdWw9ZnVuY3Rpb24oQyxULFYpe3ZhciBFO3RoaXMuX2V4cGFuZChDLmxlbmd0aCtWKTt2YXIgbSxBPTA7'@; put 'Zm9yKEU9MDtFPEMubGVuZ3RoO0UrKyl7bT0oMHx0aGlzLndvcmRzW0UrVl0pK0E7dmFyIGFlPSgwfEMud29yZHNbRV0pKlQ7QT0oKG0tPTY3MTA4ODYzJmFlKT4+MjYpLShhZS82NzEwODg2NHwwKSx0aGlzLndvcmRzW0UrVl09NjcxMDg4NjMmbX1mb3IoO0U8dGhpcy5sZW5ndGgtVjtFKysp'@; put 'QT0obT0oMHx0aGlzLndvcmRzW0UrVl0pK0EpPj4yNix0aGlzLndvcmRzW0UrVl09NjcxMDg4NjMmbTtpZigwPT09QSlyZXR1cm4gdGhpcy5fc3RyaXAoKTtmb3IocCgtMT09PUEpLEE9MCxFPTA7RTx0aGlzLmxlbmd0aDtFKyspQT0obT0tKDB8dGhpcy53b3Jkc1tFXSkrQSk+PjI2LHRoaXMu'@; put 'd29yZHNbRV09NjcxMDg4NjMmbTtyZXR1cm4gdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX3N0cmlwKCl9LHcucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKEMsVCl7dmFyIFYsVT10aGlzLmNsb25lKCksRT1DLG09MHxFLndvcmRzW0UubGVuZ3RoLTFdOzAhPShWPTI2LXRoaXMuX2NvdW50Qml0'@; put 'cyhtKSkmJihFPUUudXNobG4oViksVS5pdXNobG4oViksbT0wfEUud29yZHNbRS5sZW5ndGgtMV0pO3ZhciBuZSxhZT1VLmxlbmd0aC1FLmxlbmd0aDtpZigibW9kIiE9PVQpeyhuZT1uZXcgdyhudWxsKSkubGVuZ3RoPWFlKzEsbmUud29yZHM9bmV3IEFycmF5KG5lLmxlbmd0aCk7Zm9yKHZh'@; put 'ciBsZT0wO2xlPG5lLmxlbmd0aDtsZSsrKW5lLndvcmRzW2xlXT0wfXZhciB3ZT1VLmNsb25lKCkuX2lzaGxuc3VibXVsKEUsMSxhZSk7MD09PXdlLm5lZ2F0aXZlJiYoVT13ZSxuZSYmKG5lLndvcmRzW2FlXT0xKSk7Zm9yKHZhciBaZT1hZS0xO1plPj0wO1plLS0pe3ZhciBRZT02NzEwODg2'@; put 'NCooMHxVLndvcmRzW0UubGVuZ3RoK1plXSkrKDB8VS53b3Jkc1tFLmxlbmd0aCtaZS0xXSk7Zm9yKFFlPU1hdGgubWluKFFlL218MCw2NzEwODg2MyksVS5faXNobG5zdWJtdWwoRSxRZSxaZSk7MCE9PVUubmVnYXRpdmU7KVFlLS0sVS5uZWdhdGl2ZT0wLFUuX2lzaGxuc3VibXVsKEUsMSxa'@; put 'ZSksVS5pc1plcm8oKXx8KFUubmVnYXRpdmVePTEpO25lJiYobmUud29yZHNbWmVdPVFlKX1yZXR1cm4gbmUmJm5lLl9zdHJpcCgpLFUuX3N0cmlwKCksImRpdiIhPT1UJiYwIT09ViYmVS5pdXNocm4oVikse2RpdjpuZXx8bnVsbCxtb2Q6VX19LHcucHJvdG90eXBlLmRpdm1vZD1mdW5jdGlv'@; put 'bihDLFQsVil7cmV0dXJuIHAoIUMuaXNaZXJvKCkpLHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgdygwKSxtb2Q6bmV3IHcoMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Qy5uZWdhdGl2ZT8obT10aGlzLm5lZygpLmRpdm1vZChDLFQpLCJtb2QiIT09VCYmKFU9bS5kaXYubmVnKCkpLCJkaXYi'@; put 'IT09VCYmKEU9bS5tb2QubmVnKCksViYmMCE9PUUubmVnYXRpdmUmJkUuaWFkZChDKSkse2RpdjpVLG1vZDpFfSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT1DLm5lZ2F0aXZlPyhtPXRoaXMuZGl2bW9kKEMubmVnKCksVCksIm1vZCIhPT1UJiYoVT1tLmRpdi5uZWcoKSkse2RpdjpVLG1vZDpt'@; put 'Lm1vZH0pOnRoaXMubmVnYXRpdmUmQy5uZWdhdGl2ZT8obT10aGlzLm5lZygpLmRpdm1vZChDLm5lZygpLFQpLCJkaXYiIT09VCYmKEU9bS5tb2QubmVnKCksViYmMCE9PUUubmVnYXRpdmUmJkUuaXN1YihDKSkse2RpdjptLmRpdixtb2Q6RX0pOkMubGVuZ3RoPnRoaXMubGVuZ3RofHx0aGlz'@; put 'LmNtcChDKTwwP3tkaXY6bmV3IHcoMCksbW9kOnRoaXN9OjE9PT1DLmxlbmd0aD8iZGl2Ij09PVQ/e2Rpdjp0aGlzLmRpdm4oQy53b3Jkc1swXSksbW9kOm51bGx9OiJtb2QiPT09VD97ZGl2Om51bGwsbW9kOm5ldyB3KHRoaXMubW9kcm4oQy53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bihD'@; put 'LndvcmRzWzBdKSxtb2Q6bmV3IHcodGhpcy5tb2RybihDLndvcmRzWzBdKSl9OnRoaXMuX3dvcmREaXYoQyxUKTt2YXIgVSxFLG19LHcucHJvdG90eXBlLmRpdj1mdW5jdGlvbihDKXtyZXR1cm4gdGhpcy5kaXZtb2QoQywiZGl2IiwhMSkuZGl2fSx3LnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24o'@; put 'Qyl7cmV0dXJuIHRoaXMuZGl2bW9kKEMsIm1vZCIsITEpLm1vZH0sdy5wcm90b3R5cGUudW1vZD1mdW5jdGlvbihDKXtyZXR1cm4gdGhpcy5kaXZtb2QoQywibW9kIiwhMCkubW9kfSx3LnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbihDKXt2YXIgVD10aGlzLmRpdm1vZChDKTtpZihULm1v'@; put 'ZC5pc1plcm8oKSlyZXR1cm4gVC5kaXY7dmFyIFY9MCE9PVQuZGl2Lm5lZ2F0aXZlP1QubW9kLmlzdWIoQyk6VC5tb2QsVT1DLnVzaHJuKDEpLEU9Qy5hbmRsbigxKSxtPVYuY21wKFUpO3JldHVybiBtPDB8fDE9PT1FJiYwPT09bT9ULmRpdjowIT09VC5kaXYubmVnYXRpdmU/VC5kaXYuaXN1'@; put 'Ym4oMSk6VC5kaXYuaWFkZG4oMSl9LHcucHJvdG90eXBlLm1vZHJuPWZ1bmN0aW9uKEMpe3ZhciBUPUM8MDtUJiYoQz0tQykscChDPD02NzEwODg2Myk7Zm9yKHZhciBWPSgxPDwyNiklQyxVPTAsRT10aGlzLmxlbmd0aC0xO0U+PTA7RS0tKVU9KFYqVSsoMHx0aGlzLndvcmRzW0VdKSklQzty'@; put 'ZXR1cm4gVD8tVTpVfSx3LnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKEMpe3JldHVybiB0aGlzLm1vZHJuKEMpfSx3LnByb3RvdHlwZS5pZGl2bj1mdW5jdGlvbihDKXt2YXIgVD1DPDA7VCYmKEM9LUMpLHAoQzw9NjcxMDg4NjMpO2Zvcih2YXIgVj0wLFU9dGhpcy5sZW5ndGgtMTtVPj0wO1Ut'@; put 'LSl7dmFyIEU9KDB8dGhpcy53b3Jkc1tVXSkrNjcxMDg4NjQqVjt0aGlzLndvcmRzW1VdPUUvQ3wwLFY9RSVDfXJldHVybiB0aGlzLl9zdHJpcCgpLFQ/dGhpcy5pbmVnKCk6dGhpc30sdy5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbihDKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKEMpfSx3'@; put 'LnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKEMpe3AoMD09PUMubmVnYXRpdmUpLHAoIUMuaXNaZXJvKCkpO3ZhciBUPXRoaXMsVj1DLmNsb25lKCk7VD0wIT09VC5uZWdhdGl2ZT9ULnVtb2QoQyk6VC5jbG9uZSgpO2Zvcih2YXIgVT1uZXcgdygxKSxFPW5ldyB3KDApLG09bmV3IHcoMCksQT1u'@; put 'ZXcgdygxKSxhZT0wO1QuaXNFdmVuKCkmJlYuaXNFdmVuKCk7KVQuaXVzaHJuKDEpLFYuaXVzaHJuKDEpLCsrYWU7Zm9yKHZhciBuZT1WLmNsb25lKCksbGU9VC5jbG9uZSgpOyFULmlzWmVybygpOyl7Zm9yKHZhciB3ZT0wLFplPTE7IShULndvcmRzWzBdJlplKSYmd2U8MjY7Kyt3ZSxaZTw8'@; put 'PTEpO2lmKHdlPjApZm9yKFQuaXVzaHJuKHdlKTt3ZS0tID4wOykoVS5pc09kZCgpfHxFLmlzT2RkKCkpJiYoVS5pYWRkKG5lKSxFLmlzdWIobGUpKSxVLml1c2hybigxKSxFLml1c2hybigxKTtmb3IodmFyIFFlPTAsYXQ9MTshKFYud29yZHNbMF0mYXQpJiZRZTwyNjsrK1FlLGF0PDw9MSk7'@; put 'aWYoUWU+MClmb3IoVi5pdXNocm4oUWUpO1FlLS0gPjA7KShtLmlzT2RkKCl8fEEuaXNPZGQoKSkmJihtLmlhZGQobmUpLEEuaXN1YihsZSkpLG0uaXVzaHJuKDEpLEEuaXVzaHJuKDEpO1QuY21wKFYpPj0wPyhULmlzdWIoViksVS5pc3ViKG0pLEUuaXN1YihBKSk6KFYuaXN1YihUKSxtLmlz'@; put 'dWIoVSksQS5pc3ViKEUpKX1yZXR1cm57YTptLGI6QSxnY2Q6Vi5pdXNobG4oYWUpfX0sdy5wcm90b3R5cGUuX2ludm1wPWZ1bmN0aW9uKEMpe3AoMD09PUMubmVnYXRpdmUpLHAoIUMuaXNaZXJvKCkpO3ZhciB3ZSxUPXRoaXMsVj1DLmNsb25lKCk7VD0wIT09VC5uZWdhdGl2ZT9ULnVtb2Qo'@; put 'Qyk6VC5jbG9uZSgpO2Zvcih2YXIgVT1uZXcgdygxKSxFPW5ldyB3KDApLG09Vi5jbG9uZSgpO1QuY21wbigxKT4wJiZWLmNtcG4oMSk+MDspe2Zvcih2YXIgQT0wLGFlPTE7IShULndvcmRzWzBdJmFlKSYmQTwyNjsrK0EsYWU8PD0xKTtpZihBPjApZm9yKFQuaXVzaHJuKEEpO0EtLSA+MDsp'@; put 'VS5pc09kZCgpJiZVLmlhZGQobSksVS5pdXNocm4oMSk7Zm9yKHZhciBuZT0wLGxlPTE7IShWLndvcmRzWzBdJmxlKSYmbmU8MjY7KytuZSxsZTw8PTEpO2lmKG5lPjApZm9yKFYuaXVzaHJuKG5lKTtuZS0tID4wOylFLmlzT2RkKCkmJkUuaWFkZChtKSxFLml1c2hybigxKTtULmNtcChWKT49'@; put 'MD8oVC5pc3ViKFYpLFUuaXN1YihFKSk6KFYuaXN1YihUKSxFLmlzdWIoVSkpfXJldHVybih3ZT0wPT09VC5jbXBuKDEpP1U6RSkuY21wbigwKTwwJiZ3ZS5pYWRkKEMpLHdlfSx3LnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24oQyl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gQy5hYnMoKTtpZihD'@; put 'LmlzWmVybygpKXJldHVybiB0aGlzLmFicygpO3ZhciBUPXRoaXMuY2xvbmUoKSxWPUMuY2xvbmUoKTtULm5lZ2F0aXZlPTAsVi5uZWdhdGl2ZT0wO2Zvcih2YXIgVT0wO1QuaXNFdmVuKCkmJlYuaXNFdmVuKCk7VSsrKVQuaXVzaHJuKDEpLFYuaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDtULmlz'@; put 'RXZlbigpOylULml1c2hybigxKTtmb3IoO1YuaXNFdmVuKCk7KVYuaXVzaHJuKDEpO3ZhciBFPVQuY21wKFYpO2lmKEU8MCl7dmFyIG09VDtUPVYsVj1tfWVsc2UgaWYoMD09PUV8fDA9PT1WLmNtcG4oMSkpYnJlYWs7VC5pc3ViKFYpfXJldHVybiBWLml1c2hsbihVKX0sdy5wcm90b3R5cGUu'@; put 'aW52bT1mdW5jdGlvbihDKXtyZXR1cm4gdGhpcy5lZ2NkKEMpLmEudW1vZChDKX0sdy5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuISgxJnRoaXMud29yZHNbMF0pfSx3LnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiEoMSZ+dGhpcy53b3Jkc1swXSl9LHcucHJv'@; put 'dG90eXBlLmFuZGxuPWZ1bmN0aW9uKEMpe3JldHVybiB0aGlzLndvcmRzWzBdJkN9LHcucHJvdG90eXBlLmJpbmNuPWZ1bmN0aW9uKEMpe3AoIm51bWJlciI9PXR5cGVvZiBDKTt2YXIgVD1DJTI2LFY9KEMtVCkvMjYsVT0xPDxUO2lmKHRoaXMubGVuZ3RoPD1WKXJldHVybiB0aGlzLl9leHBh'@; put 'bmQoVisxKSx0aGlzLndvcmRzW1ZdfD1VLHRoaXM7Zm9yKHZhciBFPVUsbT1WOzAhPT1FJiZtPHRoaXMubGVuZ3RoO20rKyl7dmFyIEE9MHx0aGlzLndvcmRzW21dO0U9KEErPUUpPj4+MjYsdGhpcy53b3Jkc1ttXT1BJj02NzEwODg2M31yZXR1cm4gMCE9PUUmJih0aGlzLndvcmRzW21dPUUs'@; put 'dGhpcy5sZW5ndGgrKyksdGhpc30sdy5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LHcucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24oQyl7dmFyIFYsVD1DPDA7aWYoMCE9PXRoaXMubmVnYXRpdmUmJiFUKXJldHVy'@; put 'bi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiZUKXJldHVybiAxO2lmKHRoaXMuX3N0cmlwKCksdGhpcy5sZW5ndGg+MSlWPTE7ZWxzZXtUJiYoQz0tQykscChDPD02NzEwODg2MywiTnVtYmVyIGlzIHRvbyBiaWciKTt2YXIgVT0wfHRoaXMud29yZHNbMF07Vj1VPT09Qz8wOlU8Qz8tMToxfXJl'@; put 'dHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1WOlZ9LHcucHJvdG90eXBlLmNtcD1mdW5jdGlvbihDKXtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PUMubmVnYXRpdmUpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT1DLm5lZ2F0aXZlKXJldHVybiAxO3ZhciBUPXRoaXMudWNt'@; put 'cChDKTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtVDpUfSx3LnByb3RvdHlwZS51Y21wPWZ1bmN0aW9uKEMpe2lmKHRoaXMubGVuZ3RoPkMubGVuZ3RoKXJldHVybiAxO2lmKHRoaXMubGVuZ3RoPEMubGVuZ3RoKXJldHVybi0xO2Zvcih2YXIgVD0wLFY9dGhpcy5sZW5ndGgtMTtWPj0w'@; put 'O1YtLSl7dmFyIFU9MHx0aGlzLndvcmRzW1ZdLEU9MHxDLndvcmRzW1ZdO2lmKFUhPT1FKXtVPEU/VD0tMTpVPkUmJihUPTEpO2JyZWFrfX1yZXR1cm4gVH0sdy5wcm90b3R5cGUuZ3RuPWZ1bmN0aW9uKEMpe3JldHVybiAxPT09dGhpcy5jbXBuKEMpfSx3LnByb3RvdHlwZS5ndD1mdW5jdGlv'@; put 'bihDKXtyZXR1cm4gMT09PXRoaXMuY21wKEMpfSx3LnByb3RvdHlwZS5ndGVuPWZ1bmN0aW9uKEMpe3JldHVybiB0aGlzLmNtcG4oQyk+PTB9LHcucHJvdG90eXBlLmd0ZT1mdW5jdGlvbihDKXtyZXR1cm4gdGhpcy5jbXAoQyk+PTB9LHcucHJvdG90eXBlLmx0bj1mdW5jdGlvbihDKXtyZXR1'@; put 'cm4tMT09PXRoaXMuY21wbihDKX0sdy5wcm90b3R5cGUubHQ9ZnVuY3Rpb24oQyl7cmV0dXJuLTE9PT10aGlzLmNtcChDKX0sdy5wcm90b3R5cGUubHRlbj1mdW5jdGlvbihDKXtyZXR1cm4gdGhpcy5jbXBuKEMpPD0wfSx3LnByb3RvdHlwZS5sdGU9ZnVuY3Rpb24oQyl7cmV0dXJuIHRoaXMu'@; put 'Y21wKEMpPD0wfSx3LnByb3RvdHlwZS5lcW49ZnVuY3Rpb24oQyl7cmV0dXJuIDA9PT10aGlzLmNtcG4oQyl9LHcucHJvdG90eXBlLmVxPWZ1bmN0aW9uKEMpe3JldHVybiAwPT09dGhpcy5jbXAoQyl9LHcucmVkPWZ1bmN0aW9uKEMpe3JldHVybiBuZXcgZyhDKX0sdy5wcm90b3R5cGUudG9S'@; put 'ZWQ9ZnVuY3Rpb24oQyl7cmV0dXJuIHAoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IikscCgwPT09dGhpcy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxDLmNvbnZlcnRUbyh0aGlzKS5fZm9yY2VSZWQoQyl9LHcucHJv'@; put 'dG90eXBlLmZyb21SZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gcCh0aGlzLnJlZCwiZnJvbVJlZCB3b3JrcyBvbmx5IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSx3LnByb3RvdHlwZS5fZm9yY2VSZWQ9ZnVuY3Rpb24oQyl7cmV0'@; put 'dXJuIHRoaXMucmVkPUMsdGhpc30sdy5wcm90b3R5cGUuZm9yY2VSZWQ9ZnVuY3Rpb24oQyl7cmV0dXJuIHAoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VSZWQoQyl9LHcucHJvdG90eXBlLnJlZEFkZD1mdW5jdGlvbihDKXty'@; put 'ZXR1cm4gcCh0aGlzLnJlZCwicmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmFkZCh0aGlzLEMpfSx3LnByb3RvdHlwZS5yZWRJQWRkPWZ1bmN0aW9uKEMpe3JldHVybiBwKHRoaXMucmVkLCJyZWRJQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIp'@; put 'LHRoaXMucmVkLmlhZGQodGhpcyxDKX0sdy5wcm90b3R5cGUucmVkU3ViPWZ1bmN0aW9uKEMpe3JldHVybiBwKHRoaXMucmVkLCJyZWRTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc3ViKHRoaXMsQyl9LHcucHJvdG90eXBlLnJlZElTdWI9ZnVuY3Rpb24oQyl7'@; put 'cmV0dXJuIHAodGhpcy5yZWQsInJlZElTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaXN1Yih0aGlzLEMpfSx3LnByb3RvdHlwZS5yZWRTaGw9ZnVuY3Rpb24oQyl7cmV0dXJuIHAodGhpcy5yZWQsInJlZFNobCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMi'@; put 'KSx0aGlzLnJlZC5zaGwodGhpcyxDKX0sdy5wcm90b3R5cGUucmVkTXVsPWZ1bmN0aW9uKEMpe3JldHVybiBwKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxDKSx0aGlzLnJlZC5tdWwodGhpcyxDKX0sdy5wcm90'@; put 'b3R5cGUucmVkSU11bD1mdW5jdGlvbihDKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsQyksdGhpcy5yZWQuaW11bCh0aGlzLEMpfSx3LnByb3RvdHlwZS5yZWRTcXI9ZnVuY3Rpb24oKXtyZXR1'@; put 'cm4gcCh0aGlzLnJlZCwicmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcih0aGlzKX0sdy5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMucmVkLCJyZWRJU3FyIHdvcmtzIG9ubHkg'@; put 'd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmlzcXIodGhpcyl9LHcucHJvdG90eXBlLnJlZFNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVy'@; put 'aWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXJ0KHRoaXMpfSx3LnByb3RvdHlwZS5yZWRJbnZtPWZ1bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5yZWQsInJlZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaW52bSh0aGlzKX0s'@; put 'dy5wcm90b3R5cGUucmVkTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5yZWQsInJlZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5uZWcodGhpcyl9LHcucHJvdG90eXBlLnJlZFBvdz1mdW5jdGlvbihDKXtyZXR1'@; put 'cm4gcCh0aGlzLnJlZCYmIUMucmVkLCJyZWRQb3cobm9ybWFsTnVtKSIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnBvdyh0aGlzLEMpfTt2YXIgZ2U9e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtmdW5jdGlvbiBfZSh4LEMpe3RoaXMubmFt'@; put 'ZT14LHRoaXMucD1uZXcgdyhDLDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgdygxKS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9ZnVuY3Rpb24gVGUoKXtfZS5jYWxsKHRoaXMsImsyNTYiLCJmZmZmZmZmZiBmZmZmZmZm'@; put 'ZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIpfWZ1bmN0aW9uIFNlKCl7X2UuY2FsbCh0aGlzLCJwMjI0IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEiKX1mdW5jdGlv'@; put 'biB6ZSgpe19lLmNhbGwodGhpcywicDE5MiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIil9ZnVuY3Rpb24geigpe19lLmNhbGwodGhpcywiMjU1MTkiLCI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZm'@; put 'ZmZmZiBmZmZmZmZmZmZmZmZmZmVkIil9ZnVuY3Rpb24gZyh4KXtpZigic3RyaW5nIj09dHlwZW9mIHgpe3ZhciBDPXcuX3ByaW1lKHgpO3RoaXMubT1DLnAsdGhpcy5wcmltZT1DfWVsc2UgcCh4Lmd0bigxKSwibW9kdWx1cyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxIiksdGhpcy5tPXgsdGhp'@; put 'cy5wcmltZT1udWxsfWZ1bmN0aW9uIHkoeCl7Zy5jYWxsKHRoaXMseCksdGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9MCYmKHRoaXMuc2hpZnQrPTI2LXRoaXMuc2hpZnQlMjYpLHRoaXMucj1uZXcgdygxKS5pdXNobG4odGhpcy5zaGlmdCksdGhpcy5yMj10'@; put 'aGlzLmltb2QodGhpcy5yLnNxcigpKSx0aGlzLnJpbnY9dGhpcy5yLl9pbnZtcCh0aGlzLm0pLHRoaXMubWludj10aGlzLnJpbnYubXVsKHRoaXMucikuaXN1Ym4oMSkuZGl2KHRoaXMubSksdGhpcy5taW52PXRoaXMubWludi51bW9kKHRoaXMuciksdGhpcy5taW52PXRoaXMuci5zdWIodGhp'@; put 'cy5taW52KX1fZS5wcm90b3R5cGUuX3RtcD1mdW5jdGlvbigpe3ZhciBDPW5ldyB3KG51bGwpO3JldHVybiBDLndvcmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSksQ30sX2UucHJvdG90eXBlLmlyZWR1Y2U9ZnVuY3Rpb24oQyl7dmFyIFYsVD1DO2Rve3RoaXMuc3BsaXQoVCx0'@; put 'aGlzLnRtcCksVj0oVD0oVD10aGlzLmltdWxLKFQpKS5pYWRkKHRoaXMudG1wKSkuYml0TGVuZ3RoKCl9d2hpbGUoVj50aGlzLm4pO3ZhciBVPVY8dGhpcy5uPy0xOlQudWNtcCh0aGlzLnApO3JldHVybiAwPT09VT8oVC53b3Jkc1swXT0wLFQubGVuZ3RoPTEpOlU+MD9ULmlzdWIodGhpcy5w'@; put 'KTp2b2lkIDAhPT1ULnN0cmlwP1Quc3RyaXAoKTpULl9zdHJpcCgpLFR9LF9lLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihDLFQpe0MuaXVzaHJuKHRoaXMubiwwLFQpfSxfZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oQyl7cmV0dXJuIEMuaW11bCh0aGlzLmspfSxOKFRlLF9lKSxUZS5w'@; put 'cm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oQyxUKXtmb3IodmFyIFY9NDE5NDMwMyxVPU1hdGgubWluKEMubGVuZ3RoLDkpLEU9MDtFPFU7RSsrKVQud29yZHNbRV09Qy53b3Jkc1tFXTtpZihULmxlbmd0aD1VLEMubGVuZ3RoPD05KXJldHVybiBDLndvcmRzWzBdPTAsdm9pZChDLmxlbmd0aD0x'@; put 'KTt2YXIgbT1DLndvcmRzWzldO2ZvcihULndvcmRzW1QubGVuZ3RoKytdPW0mVixFPTEwO0U8Qy5sZW5ndGg7RSsrKXt2YXIgQT0wfEMud29yZHNbRV07Qy53b3Jkc1tFLTEwXT0oQSZWKTw8NHxtPj4+MjIsbT1BfUMud29yZHNbRS0xMF09bT4+Pj0yMixDLmxlbmd0aC09MD09PW0mJkMubGVu'@; put 'Z3RoPjEwPzEwOjl9LFRlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihDKXtDLndvcmRzW0MubGVuZ3RoXT0wLEMud29yZHNbQy5sZW5ndGgrMV09MCxDLmxlbmd0aCs9Mjtmb3IodmFyIFQ9MCxWPTA7VjxDLmxlbmd0aDtWKyspe3ZhciBVPTB8Qy53b3Jkc1tWXTtDLndvcmRzW1ZdPTY3MTA4'@; put 'ODYzJihUKz05NzcqVSksVD02NCpVKyhULzY3MTA4ODY0fDApfXJldHVybiAwPT09Qy53b3Jkc1tDLmxlbmd0aC0xXSYmKEMubGVuZ3RoLS0sMD09PUMud29yZHNbQy5sZW5ndGgtMV0mJkMubGVuZ3RoLS0pLEN9LE4oU2UsX2UpLE4oemUsX2UpLE4oeixfZSksei5wcm90b3R5cGUuaW11bEs9'@; put 'ZnVuY3Rpb24oQyl7Zm9yKHZhciBUPTAsVj0wO1Y8Qy5sZW5ndGg7VisrKXt2YXIgVT0xOSooMHxDLndvcmRzW1ZdKStULEU9NjcxMDg4NjMmVTtVPj4+PTI2LEMud29yZHNbVl09RSxUPVV9cmV0dXJuIDAhPT1UJiYoQy53b3Jkc1tDLmxlbmd0aCsrXT1UKSxDfSx3Ll9wcmltZT1mdW5jdGlv'@; put 'bihDKXtpZihnZVtDXSlyZXR1cm4gZ2VbQ107dmFyIFQ7aWYoImsyNTYiPT09QylUPW5ldyBUZTtlbHNlIGlmKCJwMjI0Ij09PUMpVD1uZXcgU2U7ZWxzZSBpZigicDE5MiI9PT1DKVQ9bmV3IHplO2Vsc2V7aWYoInAyNTUxOSIhPT1DKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAi'@; put 'K0MpO1Q9bmV3IHp9cmV0dXJuIGdlW0NdPVQsVH0sZy5wcm90b3R5cGUuX3ZlcmlmeTE9ZnVuY3Rpb24oQyl7cCgwPT09Qy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxwKEMucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LGcucHJvdG90'@; put 'eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKEMsVCl7cCghKEMubmVnYXRpdmV8VC5uZWdhdGl2ZSksInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIikscChDLnJlZCYmQy5yZWQ9PT1ULnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxnLnByb3RvdHlwZS5pbW9kPWZ1'@; put 'bmN0aW9uKEMpe3JldHVybiB0aGlzLnByaW1lP3RoaXMucHJpbWUuaXJlZHVjZShDKS5fZm9yY2VSZWQodGhpcyk6KFAoQyxDLnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcykpLEMpfSxnLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oQyl7cmV0dXJuIEMuaXNaZXJvKCk/Qy5jbG9uZSgpOnRo'@; put 'aXMubS5zdWIoQykuX2ZvcmNlUmVkKHRoaXMpfSxnLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oQyxUKXt0aGlzLl92ZXJpZnkyKEMsVCk7dmFyIFY9Qy5hZGQoVCk7cmV0dXJuIFYuY21wKHRoaXMubSk+PTAmJlYuaXN1Yih0aGlzLm0pLFYuX2ZvcmNlUmVkKHRoaXMpfSxnLnByb3RvdHlwZS5p'@; put 'YWRkPWZ1bmN0aW9uKEMsVCl7dGhpcy5fdmVyaWZ5MihDLFQpO3ZhciBWPUMuaWFkZChUKTtyZXR1cm4gVi5jbXAodGhpcy5tKT49MCYmVi5pc3ViKHRoaXMubSksVn0sZy5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKEMsVCl7dGhpcy5fdmVyaWZ5MihDLFQpO3ZhciBWPUMuc3ViKFQpO3JldHVy'@; put 'biBWLmNtcG4oMCk8MCYmVi5pYWRkKHRoaXMubSksVi5fZm9yY2VSZWQodGhpcyl9LGcucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24oQyxUKXt0aGlzLl92ZXJpZnkyKEMsVCk7dmFyIFY9Qy5pc3ViKFQpO3JldHVybiBWLmNtcG4oMCk8MCYmVi5pYWRkKHRoaXMubSksVn0sZy5wcm90b3R5cGUu'@; put 'c2hsPWZ1bmN0aW9uKEMsVCl7cmV0dXJuIHRoaXMuX3ZlcmlmeTEoQyksdGhpcy5pbW9kKEMudXNobG4oVCkpfSxnLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKEMsVCl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoQyxUKSx0aGlzLmltb2QoQy5pbXVsKFQpKX0sZy5wcm90b3R5cGUubXVsPWZ1bmN0'@; put 'aW9uKEMsVCl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoQyxUKSx0aGlzLmltb2QoQy5tdWwoVCkpfSxnLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKEMpe3JldHVybiB0aGlzLmltdWwoQyxDLmNsb25lKCkpfSxnLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oQyl7cmV0dXJuIHRoaXMubXVsKEMsQyl9'@; put 'LGcucHJvdG90eXBlLnNxcnQ9ZnVuY3Rpb24oQyl7aWYoQy5pc1plcm8oKSlyZXR1cm4gQy5jbG9uZSgpO3ZhciBUPXRoaXMubS5hbmRsbigzKTtpZihwKFQlMj09MSksMz09PVQpe3ZhciBWPXRoaXMubS5hZGQobmV3IHcoMSkpLml1c2hybigyKTtyZXR1cm4gdGhpcy5wb3coQyxWKX1mb3Io'@; put 'dmFyIFU9dGhpcy5tLnN1Ym4oMSksRT0wOyFVLmlzWmVybygpJiYwPT09VS5hbmRsbigxKTspRSsrLFUuaXVzaHJuKDEpO3AoIVUuaXNaZXJvKCkpO3ZhciBtPW5ldyB3KDEpLnRvUmVkKHRoaXMpLEE9bS5yZWROZWcoKSxhZT10aGlzLm0uc3VibigxKS5pdXNocm4oMSksbmU9dGhpcy5tLmJp'@; put 'dExlbmd0aCgpO2ZvcihuZT1uZXcgdygyKm5lKm5lKS50b1JlZCh0aGlzKTswIT09dGhpcy5wb3cobmUsYWUpLmNtcChBKTspbmUucmVkSUFkZChBKTtmb3IodmFyIGxlPXRoaXMucG93KG5lLFUpLHdlPXRoaXMucG93KEMsVS5hZGRuKDEpLml1c2hybigxKSksWmU9dGhpcy5wb3coQyxVKSxR'@; put 'ZT1FOzAhPT1aZS5jbXAobSk7KXtmb3IodmFyIGF0PVplLHhlPTA7MCE9PWF0LmNtcChtKTt4ZSsrKWF0PWF0LnJlZFNxcigpO3AoeGU8UWUpO3ZhciB2ZT10aGlzLnBvdyhsZSxuZXcgdygxKS5pdXNobG4oUWUteGUtMSkpO3dlPXdlLnJlZE11bCh2ZSksbGU9dmUucmVkU3FyKCksWmU9WmUu'@; put 'cmVkTXVsKGxlKSxRZT14ZX1yZXR1cm4gd2V9LGcucHJvdG90eXBlLmludm09ZnVuY3Rpb24oQyl7dmFyIFQ9Qy5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PVQubmVnYXRpdmU/KFQubmVnYXRpdmU9MCx0aGlzLmltb2QoVCkucmVkTmVnKCkpOnRoaXMuaW1vZChUKX0sZy5wcm90b3R5cGUu'@; put 'cG93PWZ1bmN0aW9uKEMsVCl7aWYoVC5pc1plcm8oKSlyZXR1cm4gbmV3IHcoMSkudG9SZWQodGhpcyk7aWYoMD09PVQuY21wbigxKSlyZXR1cm4gQy5jbG9uZSgpO3ZhciBVPW5ldyBBcnJheSgxNik7VVswXT1uZXcgdygxKS50b1JlZCh0aGlzKSxVWzFdPUM7Zm9yKHZhciBFPTI7RTxVLmxl'@; put 'bmd0aDtFKyspVVtFXT10aGlzLm11bChVW0UtMV0sQyk7dmFyIG09VVswXSxBPTAsYWU9MCxuZT1ULmJpdExlbmd0aCgpJTI2O2ZvcigwPT09bmUmJihuZT0yNiksRT1ULmxlbmd0aC0xO0U+PTA7RS0tKXtmb3IodmFyIGxlPVQud29yZHNbRV0sd2U9bmUtMTt3ZT49MDt3ZS0tKXt2YXIgWmU9'@; put 'bGU+PndlJjE7bSE9PVVbMF0mJihtPXRoaXMuc3FyKG0pKSwwIT09WmV8fDAhPT1BPyhBPDw9MSxBfD1aZSwoND09KythZXx8MD09PUUmJjA9PT13ZSkmJihtPXRoaXMubXVsKG0sVVtBXSksYWU9MCxBPTApKTphZT0wfW5lPTI2fXJldHVybiBtfSxnLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVu'@; put 'Y3Rpb24oQyl7dmFyIFQ9Qy51bW9kKHRoaXMubSk7cmV0dXJuIFQ9PT1DP1QuY2xvbmUoKTpUfSxnLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbihDKXt2YXIgVD1DLmNsb25lKCk7cmV0dXJuIFQucmVkPW51bGwsVH0sdy5tb250PWZ1bmN0aW9uKEMpe3JldHVybiBuZXcgeShDKX0s'@; put 'Tih5LGcpLHkucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihDKXtyZXR1cm4gdGhpcy5pbW9kKEMudXNobG4odGhpcy5zaGlmdCkpfSx5LnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbihDKXt2YXIgVD10aGlzLmltb2QoQy5tdWwodGhpcy5yaW52KSk7cmV0dXJuIFQucmVkPW51'@; put 'bGwsVH0seS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihDLFQpe2lmKEMuaXNaZXJvKCl8fFQuaXNaZXJvKCkpcmV0dXJuIEMud29yZHNbMF09MCxDLmxlbmd0aD0xLEM7dmFyIFY9Qy5pbXVsKFQpLFU9Vi5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlm'@; put 'dCkubXVsKHRoaXMubSksRT1WLmlzdWIoVSkuaXVzaHJuKHRoaXMuc2hpZnQpLG09RTtyZXR1cm4gRS5jbXAodGhpcy5tKT49MD9tPUUuaXN1Yih0aGlzLm0pOkUuY21wbigwKTwwJiYobT1FLmlhZGQodGhpcy5tKSksbS5fZm9yY2VSZWQodGhpcyl9LHkucHJvdG90eXBlLm11bD1mdW5jdGlv'@; put 'bihDLFQpe2lmKEMuaXNaZXJvKCl8fFQuaXNaZXJvKCkpcmV0dXJuIG5ldyB3KDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgVj1DLm11bChUKSxVPVYubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLEU9Vi5pc3ViKFUpLml1c2hy'@; put 'bih0aGlzLnNoaWZ0KSxtPUU7cmV0dXJuIEUuY21wKHRoaXMubSk+PTA/bT1FLmlzdWIodGhpcy5tKTpFLmNtcG4oMCk8MCYmKG09RS5pYWRkKHRoaXMubSkpLG0uX2ZvcmNlUmVkKHRoaXMpfSx5LnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKEMpe3JldHVybiB0aGlzLmltb2QoQy5faW52bXAo'@; put 'dGhpcy5tKS5tdWwodGhpcy5yMikpLl9mb3JjZVJlZCh0aGlzKX19KGNlPWIubm1kKGNlKSx0aGlzKX0sMzUyOTQ6KGNlLEosYik9Pnt2YXIgRDtmdW5jdGlvbiBfKE4pe3RoaXMucmFuZD1OfWlmKGNlLmV4cG9ydHM9ZnVuY3Rpb24odyl7cmV0dXJuIER8fChEPW5ldyBfKG51bGwpKSxELmdl'@; put 'bmVyYXRlKHcpfSxjZS5leHBvcnRzLlJhbmQ9XyxfLnByb3RvdHlwZS5nZW5lcmF0ZT1mdW5jdGlvbih3KXtyZXR1cm4gdGhpcy5fcmFuZCh3KX0sXy5wcm90b3R5cGUuX3JhbmQ9ZnVuY3Rpb24odyl7aWYodGhpcy5yYW5kLmdldEJ5dGVzKXJldHVybiB0aGlzLnJhbmQuZ2V0Qnl0ZXModyk7'@; put 'Zm9yKHZhciBGPW5ldyBVaW50OEFycmF5KHcpLEg9MDtIPEYubGVuZ3RoO0grKylGW0hdPXRoaXMucmFuZC5nZXRCeXRlKCk7cmV0dXJuIEZ9LCJvYmplY3QiPT10eXBlb2Ygc2VsZilzZWxmLmNyeXB0byYmc2VsZi5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzP18ucHJvdG90eXBlLl9yYW5kPWZ1'@; put 'bmN0aW9uKHcpe3ZhciBGPW5ldyBVaW50OEFycmF5KHcpO3JldHVybiBzZWxmLmNyeXB0by5nZXRSYW5kb21WYWx1ZXMoRiksRn06c2VsZi5tc0NyeXB0byYmc2VsZi5tc0NyeXB0by5nZXRSYW5kb21WYWx1ZXM/Xy5wcm90b3R5cGUuX3JhbmQ9ZnVuY3Rpb24odyl7dmFyIEY9bmV3IFVpbnQ4'@; put 'QXJyYXkodyk7cmV0dXJuIHNlbGYubXNDcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKEYpLEZ9OiJvYmplY3QiPT10eXBlb2Ygd2luZG93JiYoXy5wcm90b3R5cGUuX3JhbmQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCB5ZXQiKX0pO2Vsc2UgdHJ5e3ZhciBwPWIo'@; put 'OTE0MjYpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBwLnJhbmRvbUJ5dGVzKXRocm93IG5ldyBFcnJvcigiTm90IHN1cHBvcnRlZCIpO18ucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKHcpe3JldHVybiBwLnJhbmRvbUJ5dGVzKHcpfX1jYXRjaHt9fSwxMjM3NTooY2UsSixiKT0+e3ZhciBEPWIo'@; put 'MjcwNTQpLkJ1ZmZlcjtmdW5jdGlvbiBfKFIpe0QuaXNCdWZmZXIoUil8fChSPUQuZnJvbShSKSk7Zm9yKHZhciBqPVIubGVuZ3RoLzR8MCxQPW5ldyBBcnJheShqKSxMPTA7TDxqO0wrKylQW0xdPVIucmVhZFVJbnQzMkJFKDQqTCk7cmV0dXJuIFB9ZnVuY3Rpb24gcChSKXtmb3IoOzA8Ui5s'@; put 'ZW5ndGg7UisrKVJbMF09MH1mdW5jdGlvbiBOKFIsaixQLEwsWSl7Zm9yKHZhciBzZSxnZSxfZSxUZSxCPVBbMF0sVz1QWzFdLFo9UFsyXSxYPVBbM10sUT1SWzBdXmpbMF0scT1SWzFdXmpbMV0sdGU9UlsyXV5qWzJdLGllPVJbM11ealszXSxTZT00LHplPTE7emU8WTt6ZSsrKXNlPUJbUT4+'@; put 'PjI0XV5XW3E+Pj4xNiYyNTVdXlpbdGU+Pj44JjI1NV1eWFsyNTUmaWVdXmpbU2UrK10sZ2U9QltxPj4+MjRdXldbdGU+Pj4xNiYyNTVdXlpbaWU+Pj44JjI1NV1eWFsyNTUmUV1ealtTZSsrXSxfZT1CW3RlPj4+MjRdXldbaWU+Pj4xNiYyNTVdXlpbUT4+PjgmMjU1XV5YWzI1NSZxXV5qW1Nl'@; put 'KytdLFRlPUJbaWU+Pj4yNF1eV1tRPj4+MTYmMjU1XV5aW3E+Pj44JjI1NV1eWFsyNTUmdGVdXmpbU2UrK10sUT1zZSxxPWdlLHRlPV9lLGllPVRlO3JldHVybiBzZT0oTFtRPj4+MjRdPDwyNHxMW3E+Pj4xNiYyNTVdPDwxNnxMW3RlPj4+OCYyNTVdPDw4fExbMjU1JmllXSlealtTZSsrXSxn'@; put 'ZT0oTFtxPj4+MjRdPDwyNHxMW3RlPj4+MTYmMjU1XTw8MTZ8TFtpZT4+PjgmMjU1XTw8OHxMWzI1NSZRXSlealtTZSsrXSxfZT0oTFt0ZT4+PjI0XTw8MjR8TFtpZT4+PjE2JjI1NV08PDE2fExbUT4+PjgmMjU1XTw8OHxMWzI1NSZxXSlealtTZSsrXSxUZT0oTFtpZT4+PjI0XTw8MjR8TFtR'@; put 'Pj4+MTYmMjU1XTw8MTZ8TFtxPj4+OCYyNTVdPDw4fExbMjU1JnRlXSlealtTZSsrXSxbc2U+Pj49MCxnZT4+Pj0wLF9lPj4+PTAsVGU+Pj49MF19dmFyIHc9WzAsMSwyLDQsOCwxNiwzMiw2NCwxMjgsMjcsNTRdLEY9ZnVuY3Rpb24oKXtmb3IodmFyIFI9bmV3IEFycmF5KDI1Niksaj0wO2o8'@; put 'MjU2O2orKylSW2pdPWo8MTI4P2o8PDE6ajw8MV4yODM7Zm9yKHZhciBQPVtdLEw9W10sWT1bW10sW10sW10sW11dLEI9W1tdLFtdLFtdLFtdXSxXPTAsWj0wLFg9MDtYPDI1NjsrK1gpe3ZhciBRPVpeWjw8MV5aPDwyXlo8PDNeWjw8NDtQW1ddPVE9UT4+PjheMjU1JlFeOTksTFtRXT1XO3Zh'@; put 'ciBxPVJbV10sdGU9UltxXSxpZT1SW3RlXSxzZT0yNTcqUltRXV4xNjg0MzAwOCpRO1lbMF1bV109c2U8PDI0fHNlPj4+OCxZWzFdW1ddPXNlPDwxNnxzZT4+PjE2LFlbMl1bV109c2U8PDh8c2U+Pj4yNCxZWzNdW1ddPXNlLEJbMF1bUV09KHNlPTE2ODQzMDA5KmllXjY1NTM3KnRlXjI1Nypx'@; put 'XjE2ODQzMDA4KlcpPDwyNHxzZT4+PjgsQlsxXVtRXT1zZTw8MTZ8c2U+Pj4xNixCWzJdW1FdPXNlPDw4fHNlPj4+MjQsQlszXVtRXT1zZSwwPT09Vz9XPVo9MTooVz1xXlJbUltSW2llXnFdXV0sWl49UltSW1pdXSl9cmV0dXJue1NCT1g6UCxJTlZfU0JPWDpMLFNVQl9NSVg6WSxJTlZfU1VC'@; put 'X01JWDpCfX0oKTtmdW5jdGlvbiBIKFIpe3RoaXMuX2tleT1fKFIpLHRoaXMuX3Jlc2V0KCl9SC5ibG9ja1NpemU9MTYsSC5rZXlTaXplPTMyLEgucHJvdG90eXBlLmJsb2NrU2l6ZT1ILmJsb2NrU2l6ZSxILnByb3RvdHlwZS5rZXlTaXplPUgua2V5U2l6ZSxILnByb3RvdHlwZS5fcmVzZXQ9'@; put 'ZnVuY3Rpb24oKXtmb3IodmFyIFI9dGhpcy5fa2V5LGo9Ui5sZW5ndGgsUD1qKzYsTD00KihQKzEpLFk9W10sQj0wO0I8ajtCKyspWVtCXT1SW0JdO2ZvcihCPWo7QjxMO0IrKyl7dmFyIFc9WVtCLTFdO0Ilaj09MD8oVz1GLlNCT1hbKFc9Vzw8OHxXPj4+MjQpPj4+MjRdPDwyNHxGLlNCT1hb'@; put 'Vz4+PjE2JjI1NV08PDE2fEYuU0JPWFtXPj4+OCYyNTVdPDw4fEYuU0JPWFsyNTUmV10sV149d1tCL2p8MF08PDI0KTpqPjYmJkIlaj09NCYmKFc9Ri5TQk9YW1c+Pj4yNF08PDI0fEYuU0JPWFtXPj4+MTYmMjU1XTw8MTZ8Ri5TQk9YW1c+Pj44JjI1NV08PDh8Ri5TQk9YWzI1NSZXXSksWVtC'@; put 'XT1ZW0Ital1eV31mb3IodmFyIFo9W10sWD0wO1g8TDtYKyspe3ZhciBRPUwtWCxxPVlbUS0oWCU0PzA6NCldO1pbWF09WDw0fHxRPD00P3E6Ri5JTlZfU1VCX01JWFswXVtGLlNCT1hbcT4+PjI0XV1eRi5JTlZfU1VCX01JWFsxXVtGLlNCT1hbcT4+PjE2JjI1NV1dXkYuSU5WX1NVQl9NSVhb'@; put 'Ml1bRi5TQk9YW3E+Pj44JjI1NV1dXkYuSU5WX1NVQl9NSVhbM11bRi5TQk9YWzI1NSZxXV19dGhpcy5fblJvdW5kcz1QLHRoaXMuX2tleVNjaGVkdWxlPVksdGhpcy5faW52S2V5U2NoZWR1bGU9Wn0sSC5wcm90b3R5cGUuZW5jcnlwdEJsb2NrUmF3PWZ1bmN0aW9uKFIpe3JldHVybiBOKFI9'@; put 'XyhSKSx0aGlzLl9rZXlTY2hlZHVsZSxGLlNVQl9NSVgsRi5TQk9YLHRoaXMuX25Sb3VuZHMpfSxILnByb3RvdHlwZS5lbmNyeXB0QmxvY2s9ZnVuY3Rpb24oUil7dmFyIGo9dGhpcy5lbmNyeXB0QmxvY2tSYXcoUiksUD1ELmFsbG9jVW5zYWZlKDE2KTtyZXR1cm4gUC53cml0ZVVJbnQzMkJF'@; put 'KGpbMF0sMCksUC53cml0ZVVJbnQzMkJFKGpbMV0sNCksUC53cml0ZVVJbnQzMkJFKGpbMl0sOCksUC53cml0ZVVJbnQzMkJFKGpbM10sMTIpLFB9LEgucHJvdG90eXBlLmRlY3J5cHRCbG9jaz1mdW5jdGlvbihSKXt2YXIgaj0oUj1fKFIpKVsxXTtSWzFdPVJbM10sUlszXT1qO3ZhciBQPU4o'@; put 'Uix0aGlzLl9pbnZLZXlTY2hlZHVsZSxGLklOVl9TVUJfTUlYLEYuSU5WX1NCT1gsdGhpcy5fblJvdW5kcyksTD1ELmFsbG9jVW5zYWZlKDE2KTtyZXR1cm4gTC53cml0ZVVJbnQzMkJFKFBbMF0sMCksTC53cml0ZVVJbnQzMkJFKFBbM10sNCksTC53cml0ZVVJbnQzMkJFKFBbMl0sOCksTC53'@; put 'cml0ZVVJbnQzMkJFKFBbMV0sMTIpLEx9LEgucHJvdG90eXBlLnNjcnViPWZ1bmN0aW9uKCl7cCh0aGlzLl9rZXlTY2hlZHVsZSkscCh0aGlzLl9pbnZLZXlTY2hlZHVsZSkscCh0aGlzLl9rZXkpfSxjZS5leHBvcnRzLkFFUz1IfSwxOTMwNzooY2UsSixiKT0+e3ZhciBEPWIoMTIzNzUpLF89'@; put 'YigyNzA1NCkuQnVmZmVyLHA9YigzMjQ3KSxOPWIoNzE5OTMpLHc9Yig4NTkxNyksRj1iKDEzNTQ2KSxIPWIoOTU3MjUpO2Z1bmN0aW9uIFAoTCxZLEIsVyl7cC5jYWxsKHRoaXMpO3ZhciBaPV8uYWxsb2MoNCwwKTt0aGlzLl9jaXBoZXI9bmV3IEQuQUVTKFkpO3ZhciBYPXRoaXMuX2NpcGhl'@; put 'ci5lbmNyeXB0QmxvY2soWik7dGhpcy5fZ2hhc2g9bmV3IHcoWCksQj1mdW5jdGlvbiBqKEwsWSxCKXtpZigxMj09PVkubGVuZ3RoKXJldHVybiBMLl9maW5JRD1fLmNvbmNhdChbWSxfLmZyb20oWzAsMCwwLDFdKV0pLF8uY29uY2F0KFtZLF8uZnJvbShbMCwwLDAsMl0pXSk7dmFyIFc9bmV3'@; put 'IHcoQiksWj1ZLmxlbmd0aCxYPVolMTY7Vy51cGRhdGUoWSksWCYmVy51cGRhdGUoXy5hbGxvYyhYPTE2LVgsMCkpLFcudXBkYXRlKF8uYWxsb2MoOCwwKSk7dmFyIFE9OCpaLHE9Xy5hbGxvYyg4KTtxLndyaXRlVUludEJFKFEsMCw4KSxXLnVwZGF0ZShxKSxMLl9maW5JRD1XLnN0YXRlO3Zh'@; put 'ciB0ZT1fLmZyb20oTC5fZmluSUQpO3JldHVybiBIKHRlKSx0ZX0odGhpcyxCLFgpLHRoaXMuX3ByZXY9Xy5mcm9tKEIpLHRoaXMuX2NhY2hlPV8uYWxsb2NVbnNhZmUoMCksdGhpcy5fc2VjQ2FjaGU9Xy5hbGxvY1Vuc2FmZSgwKSx0aGlzLl9kZWNyeXB0PVcsdGhpcy5fYWxlbj0wLHRoaXMu'@; put 'X2xlbj0wLHRoaXMuX21vZGU9TCx0aGlzLl9hdXRoVGFnPW51bGwsdGhpcy5fY2FsbGVkPSExfU4oUCxwKSxQLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKEwpe2lmKCF0aGlzLl9jYWxsZWQmJnRoaXMuX2FsZW4pe3ZhciBZPTE2LXRoaXMuX2FsZW4lMTY7WTwxNiYmKFk9Xy5hbGxvYyhZ'@; put 'LDApLHRoaXMuX2doYXNoLnVwZGF0ZShZKSl9dGhpcy5fY2FsbGVkPSEwO3ZhciBCPXRoaXMuX21vZGUuZW5jcnlwdCh0aGlzLEwpO3JldHVybiB0aGlzLl9naGFzaC51cGRhdGUodGhpcy5fZGVjcnlwdD9MOkIpLHRoaXMuX2xlbis9TC5sZW5ndGgsQn0sUC5wcm90b3R5cGUuX2ZpbmFsPWZ1'@; put 'bmN0aW9uKCl7aWYodGhpcy5fZGVjcnlwdCYmIXRoaXMuX2F1dGhUYWcpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBzdGF0ZSBvciB1bmFibGUgdG8gYXV0aGVudGljYXRlIGRhdGEiKTt2YXIgTD1GKHRoaXMuX2doYXNoLmZpbmFsKDgqdGhpcy5fYWxlbiw4KnRoaXMuX2xlbiksdGhp'@; put 'cy5fY2lwaGVyLmVuY3J5cHRCbG9jayh0aGlzLl9maW5JRCkpO2lmKHRoaXMuX2RlY3J5cHQmJmZ1bmN0aW9uIFIoTCxZKXt2YXIgQj0wO0wubGVuZ3RoIT09WS5sZW5ndGgmJkIrKztmb3IodmFyIFc9TWF0aC5taW4oTC5sZW5ndGgsWS5sZW5ndGgpLFo9MDtaPFc7KytaKUIrPUxbWl1eWVta'@; put 'XTtyZXR1cm4gQn0oTCx0aGlzLl9hdXRoVGFnKSl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHN0YXRlIG9yIHVuYWJsZSB0byBhdXRoZW50aWNhdGUgZGF0YSIpO3RoaXMuX2F1dGhUYWc9TCx0aGlzLl9jaXBoZXIuc2NydWIoKX0sUC5wcm90b3R5cGUuZ2V0QXV0aFRhZz1mdW5jdGlv'@; put 'bigpe2lmKHRoaXMuX2RlY3J5cHR8fCFfLmlzQnVmZmVyKHRoaXMuX2F1dGhUYWcpKXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGluZyB0byBnZXQgYXV0aCB0YWcgaW4gdW5zdXBwb3J0ZWQgc3RhdGUiKTtyZXR1cm4gdGhpcy5fYXV0aFRhZ30sUC5wcm90b3R5cGUuc2V0QXV0aFRhZz1mdW5j'@; put 'dGlvbihZKXtpZighdGhpcy5fZGVjcnlwdCl0aHJvdyBuZXcgRXJyb3IoIkF0dGVtcHRpbmcgdG8gc2V0IGF1dGggdGFnIGluIHVuc3VwcG9ydGVkIHN0YXRlIik7dGhpcy5fYXV0aFRhZz1ZfSxQLnByb3RvdHlwZS5zZXRBQUQ9ZnVuY3Rpb24oWSl7aWYodGhpcy5fY2FsbGVkKXRocm93IG5l'@; put 'dyBFcnJvcigiQXR0ZW1wdGluZyB0byBzZXQgQUFEIGluIHVuc3VwcG9ydGVkIHN0YXRlIik7dGhpcy5fZ2hhc2gudXBkYXRlKFkpLHRoaXMuX2FsZW4rPVkubGVuZ3RofSxjZS5leHBvcnRzPVB9LDQzMzg4OihjZSxKLGIpPT57dmFyIEQ9YigzNTApLF89Yig2MDEwMikscD1iKDMyMTkpO0ou'@; put 'Y3JlYXRlQ2lwaGVyPUouQ2lwaGVyPUQuY3JlYXRlQ2lwaGVyLEouY3JlYXRlQ2lwaGVyaXY9Si5DaXBoZXJpdj1ELmNyZWF0ZUNpcGhlcml2LEouY3JlYXRlRGVjaXBoZXI9Si5EZWNpcGhlcj1fLmNyZWF0ZURlY2lwaGVyLEouY3JlYXRlRGVjaXBoZXJpdj1KLkRlY2lwaGVyaXY9Xy5jcmVh'@; put 'dGVEZWNpcGhlcml2LEoubGlzdENpcGhlcnM9Si5nZXRDaXBoZXJzPWZ1bmN0aW9uIE4oKXtyZXR1cm4gT2JqZWN0LmtleXMocCl9fSw2MDEwMjooY2UsSixiKT0+e3ZhciBEPWIoMTkzMDcpLF89YigyNzA1NCkuQnVmZmVyLHA9Yig2MDUwMyksTj1iKDkxODIxKSx3PWIoMzI0NyksRj1iKDEy'@; put 'Mzc1KSxIPWIoMTgyMTEpO2Z1bmN0aW9uIGooVyxaLFgpe3cuY2FsbCh0aGlzKSx0aGlzLl9jYWNoZT1uZXcgUCx0aGlzLl9sYXN0PXZvaWQgMCx0aGlzLl9jaXBoZXI9bmV3IEYuQUVTKFopLHRoaXMuX3ByZXY9Xy5mcm9tKFgpLHRoaXMuX21vZGU9Vyx0aGlzLl9hdXRvcGFkZGluZz0hMH1m'@; put 'dW5jdGlvbiBQKCl7dGhpcy5jYWNoZT1fLmFsbG9jVW5zYWZlKDApfWZ1bmN0aW9uIFkoVyxaLFgpe3ZhciBRPXBbVy50b0xvd2VyQ2FzZSgpXTtpZighUSl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKTtpZigic3RyaW5nIj09dHlwZW9mIFgmJihYPV8uZnJvbShY'@; put 'KSksIkdDTSIhPT1RLm1vZGUmJlgubGVuZ3RoIT09US5pdil0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGl2IGxlbmd0aCAiK1gubGVuZ3RoKTtpZigic3RyaW5nIj09dHlwZW9mIFomJihaPV8uZnJvbShaKSksWi5sZW5ndGghPT1RLmtleS84KXRocm93IG5ldyBUeXBlRXJyb3IoImlu'@; put 'dmFsaWQga2V5IGxlbmd0aCAiK1oubGVuZ3RoKTtyZXR1cm4ic3RyZWFtIj09PVEudHlwZT9uZXcgTihRLm1vZHVsZSxaLFgsITApOiJhdXRoIj09PVEudHlwZT9uZXcgRChRLm1vZHVsZSxaLFgsITApOm5ldyBqKFEubW9kdWxlLFosWCl9Yig3MTk5Mykoaix3KSxqLnByb3RvdHlwZS5fdXBk'@; put 'YXRlPWZ1bmN0aW9uKFcpe3RoaXMuX2NhY2hlLmFkZChXKTtmb3IodmFyIFosWCxRPVtdO1o9dGhpcy5fY2FjaGUuZ2V0KHRoaXMuX2F1dG9wYWRkaW5nKTspWD10aGlzLl9tb2RlLmRlY3J5cHQodGhpcyxaKSxRLnB1c2goWCk7cmV0dXJuIF8uY29uY2F0KFEpfSxqLnByb3RvdHlwZS5fZmlu'@; put 'YWw9ZnVuY3Rpb24oKXt2YXIgVz10aGlzLl9jYWNoZS5mbHVzaCgpO2lmKHRoaXMuX2F1dG9wYWRkaW5nKXJldHVybiBmdW5jdGlvbiBMKFcpe3ZhciBaPVdbMTVdO2lmKFo8MXx8Wj4xNil0aHJvdyBuZXcgRXJyb3IoInVuYWJsZSB0byBkZWNyeXB0IGRhdGEiKTtmb3IodmFyIFg9LTE7KytY'@; put 'PFo7KWlmKFdbWCsoMTYtWildIT09Wil0aHJvdyBuZXcgRXJyb3IoInVuYWJsZSB0byBkZWNyeXB0IGRhdGEiKTtpZigxNiE9PVopcmV0dXJuIFcuc2xpY2UoMCwxNi1aKX0odGhpcy5fbW9kZS5kZWNyeXB0KHRoaXMsVykpO2lmKFcpdGhyb3cgbmV3IEVycm9yKCJkYXRhIG5vdCBtdWx0aXBs'@; put 'ZSBvZiBibG9jayBsZW5ndGgiKX0sai5wcm90b3R5cGUuc2V0QXV0b1BhZGRpbmc9ZnVuY3Rpb24oVyl7cmV0dXJuIHRoaXMuX2F1dG9wYWRkaW5nPSEhVyx0aGlzfSxQLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oVyl7dGhpcy5jYWNoZT1fLmNvbmNhdChbdGhpcy5jYWNoZSxXXSl9LFAucHJv'@; put 'dG90eXBlLmdldD1mdW5jdGlvbihXKXt2YXIgWjtpZihXKXtpZih0aGlzLmNhY2hlLmxlbmd0aD4xNilyZXR1cm4gWj10aGlzLmNhY2hlLnNsaWNlKDAsMTYpLHRoaXMuY2FjaGU9dGhpcy5jYWNoZS5zbGljZSgxNiksWn1lbHNlIGlmKHRoaXMuY2FjaGUubGVuZ3RoPj0xNilyZXR1cm4gWj10'@; put 'aGlzLmNhY2hlLnNsaWNlKDAsMTYpLHRoaXMuY2FjaGU9dGhpcy5jYWNoZS5zbGljZSgxNiksWjtyZXR1cm4gbnVsbH0sUC5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtpZih0aGlzLmNhY2hlLmxlbmd0aClyZXR1cm4gdGhpcy5jYWNoZX0sSi5jcmVhdGVEZWNpcGhlcj1mdW5jdGlvbiBC'@; put 'KFcsWil7dmFyIFg9cFtXLnRvTG93ZXJDYXNlKCldO2lmKCFYKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO3ZhciBRPUgoWiwhMSxYLmtleSxYLml2KTtyZXR1cm4gWShXLFEua2V5LFEuaXYpfSxKLmNyZWF0ZURlY2lwaGVyaXY9WX0sMzUwOihjZSxKLGIpPT57'@; put 'dmFyIEQ9Yig2MDUwMyksXz1iKDE5MzA3KSxwPWIoMjcwNTQpLkJ1ZmZlcixOPWIoOTE4MjEpLHc9YigzMjQ3KSxGPWIoMTIzNzUpLEg9YigxODIxMSk7ZnVuY3Rpb24gaihXLFosWCl7dy5jYWxsKHRoaXMpLHRoaXMuX2NhY2hlPW5ldyBMLHRoaXMuX2NpcGhlcj1uZXcgRi5BRVMoWiksdGhp'@; put 'cy5fcHJldj1wLmZyb20oWCksdGhpcy5fbW9kZT1XLHRoaXMuX2F1dG9wYWRkaW5nPSEwfWIoNzE5OTMpKGosdyksai5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihXKXt0aGlzLl9jYWNoZS5hZGQoVyk7Zm9yKHZhciBaLFgsUT1bXTtaPXRoaXMuX2NhY2hlLmdldCgpOylYPXRoaXMuX21v'@; put 'ZGUuZW5jcnlwdCh0aGlzLFopLFEucHVzaChYKTtyZXR1cm4gcC5jb25jYXQoUSl9O3ZhciBQPXAuYWxsb2MoMTYsMTYpO2Z1bmN0aW9uIEwoKXt0aGlzLmNhY2hlPXAuYWxsb2NVbnNhZmUoMCl9ZnVuY3Rpb24gWShXLFosWCl7dmFyIFE9RFtXLnRvTG93ZXJDYXNlKCldO2lmKCFRKXRocm93'@; put 'IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO2lmKCJzdHJpbmciPT10eXBlb2YgWiYmKFo9cC5mcm9tKFopKSxaLmxlbmd0aCE9PVEua2V5LzgpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBrZXkgbGVuZ3RoICIrWi5sZW5ndGgpO2lmKCJzdHJpbmciPT10eXBlb2Yg'@; put 'WCYmKFg9cC5mcm9tKFgpKSwiR0NNIiE9PVEubW9kZSYmWC5sZW5ndGghPT1RLml2KXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgaXYgbGVuZ3RoICIrWC5sZW5ndGgpO3JldHVybiJzdHJlYW0iPT09US50eXBlP25ldyBOKFEubW9kdWxlLFosWCk6ImF1dGgiPT09US50eXBlP25ldyBf'@; put 'KFEubW9kdWxlLFosWCk6bmV3IGooUS5tb2R1bGUsWixYKX1qLnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXt2YXIgVz10aGlzLl9jYWNoZS5mbHVzaCgpO2lmKHRoaXMuX2F1dG9wYWRkaW5nKXJldHVybiBXPXRoaXMuX21vZGUuZW5jcnlwdCh0aGlzLFcpLHRoaXMuX2NpcGhlci5zY3J1'@; put 'YigpLFc7aWYoIVcuZXF1YWxzKFApKXRocm93IHRoaXMuX2NpcGhlci5zY3J1YigpLG5ldyBFcnJvcigiZGF0YSBub3QgbXVsdGlwbGUgb2YgYmxvY2sgbGVuZ3RoIil9LGoucHJvdG90eXBlLnNldEF1dG9QYWRkaW5nPWZ1bmN0aW9uKFcpe3JldHVybiB0aGlzLl9hdXRvcGFkZGluZz0hIVcs'@; put 'dGhpc30sTC5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKFcpe3RoaXMuY2FjaGU9cC5jb25jYXQoW3RoaXMuY2FjaGUsV10pfSxMLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oKXtpZih0aGlzLmNhY2hlLmxlbmd0aD4xNSl7dmFyIFc9dGhpcy5jYWNoZS5zbGljZSgwLDE2KTtyZXR1cm4gdGhpcy5j'@; put 'YWNoZT10aGlzLmNhY2hlLnNsaWNlKDE2KSxXfXJldHVybiBudWxsfSxMLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbigpe2Zvcih2YXIgVz0xNi10aGlzLmNhY2hlLmxlbmd0aCxaPXAuYWxsb2NVbnNhZmUoVyksWD0tMTsrK1g8VzspWi53cml0ZVVJbnQ4KFcsWCk7cmV0dXJuIHAuY29uY2F0'@; put 'KFt0aGlzLmNhY2hlLFpdKX0sSi5jcmVhdGVDaXBoZXJpdj1ZLEouY3JlYXRlQ2lwaGVyPWZ1bmN0aW9uIEIoVyxaKXt2YXIgWD1EW1cudG9Mb3dlckNhc2UoKV07aWYoIVgpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIik7dmFyIFE9SChaLCExLFgua2V5LFguaXYp'@; put 'O3JldHVybiBZKFcsUS5rZXksUS5pdil9fSw4NTkxNzooY2UsSixiKT0+e3ZhciBEPWIoMjcwNTQpLkJ1ZmZlcixfPUQuYWxsb2MoMTYsMCk7ZnVuY3Rpb24gTihGKXt2YXIgSD1ELmFsbG9jVW5zYWZlKDE2KTtyZXR1cm4gSC53cml0ZVVJbnQzMkJFKEZbMF0+Pj4wLDApLEgud3JpdGVVSW50'@; put 'MzJCRShGWzFdPj4+MCw0KSxILndyaXRlVUludDMyQkUoRlsyXT4+PjAsOCksSC53cml0ZVVJbnQzMkJFKEZbM10+Pj4wLDEyKSxIfWZ1bmN0aW9uIHcoRil7dGhpcy5oPUYsdGhpcy5zdGF0ZT1ELmFsbG9jKDE2LDApLHRoaXMuY2FjaGU9RC5hbGxvY1Vuc2FmZSgwKX13LnByb3RvdHlwZS5n'@; put 'aGFzaD1mdW5jdGlvbihGKXtmb3IodmFyIEg9LTE7KytIPEYubGVuZ3RoOyl0aGlzLnN0YXRlW0hdXj1GW0hdO3RoaXMuX211bHRpcGx5KCl9LHcucHJvdG90eXBlLl9tdWx0aXBseT1mdW5jdGlvbigpe2Zvcih2YXIgUixQLEY9ZnVuY3Rpb24gcChGKXtyZXR1cm5bRi5yZWFkVUludDMyQkUo'@; put 'MCksRi5yZWFkVUludDMyQkUoNCksRi5yZWFkVUludDMyQkUoOCksRi5yZWFkVUludDMyQkUoMTIpXX0odGhpcy5oKSxIPVswLDAsMCwwXSxMPS0xOysrTDwxMjg7KXtmb3IoISEodGhpcy5zdGF0ZVt+fihMLzgpXSYxPDw3LUwlOCkmJihIWzBdXj1GWzBdLEhbMV1ePUZbMV0sSFsyXV49Rlsy'@; put 'XSxIWzNdXj1GWzNdKSxQPSEhKDEmRlszXSksUj0zO1I+MDtSLS0pRltSXT1GW1JdPj4+MXwoMSZGW1ItMV0pPDwzMTtGWzBdPUZbMF0+Pj4xLFAmJihGWzBdPUZbMF1eMjI1PDwyNCl9dGhpcy5zdGF0ZT1OKEgpfSx3LnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oRil7dGhpcy5jYWNoZT1E'@; put 'LmNvbmNhdChbdGhpcy5jYWNoZSxGXSk7Zm9yKHZhciBIO3RoaXMuY2FjaGUubGVuZ3RoPj0xNjspSD10aGlzLmNhY2hlLnNsaWNlKDAsMTYpLHRoaXMuY2FjaGU9dGhpcy5jYWNoZS5zbGljZSgxNiksdGhpcy5naGFzaChIKX0sdy5wcm90b3R5cGUuZmluYWw9ZnVuY3Rpb24oRixIKXtyZXR1'@; put 'cm4gdGhpcy5jYWNoZS5sZW5ndGgmJnRoaXMuZ2hhc2goRC5jb25jYXQoW3RoaXMuY2FjaGUsX10sMTYpKSx0aGlzLmdoYXNoKE4oWzAsRiwwLEhdKSksdGhpcy5zdGF0ZX0sY2UuZXhwb3J0cz13fSw5NTcyNTpjZT0+e2NlLmV4cG9ydHM9ZnVuY3Rpb24gSihiKXtmb3IodmFyIF8sRD1iLmxl'@; put 'bmd0aDtELS07KXtpZigyNTUhPT0oXz1iLnJlYWRVSW50OChEKSkpe18rKyxiLndyaXRlVUludDgoXyxEKTticmVha31iLndyaXRlVUludDgoMCxEKX19fSwzNDEzMzooY2UsSixiKT0+e3ZhciBEPWIoMTM1NDYpO0ouZW5jcnlwdD1mdW5jdGlvbihfLHApe3ZhciBOPUQocCxfLl9wcmV2KTty'@; put 'ZXR1cm4gXy5fcHJldj1fLl9jaXBoZXIuZW5jcnlwdEJsb2NrKE4pLF8uX3ByZXZ9LEouZGVjcnlwdD1mdW5jdGlvbihfLHApe3ZhciBOPV8uX3ByZXY7Xy5fcHJldj1wO3ZhciB3PV8uX2NpcGhlci5kZWNyeXB0QmxvY2socCk7cmV0dXJuIEQodyxOKX19LDE3MDkwOihjZSxKLGIpPT57dmFy'@; put 'IEQ9YigyNzA1NCkuQnVmZmVyLF89YigxMzU0Nik7ZnVuY3Rpb24gcChOLHcsRil7dmFyIEg9dy5sZW5ndGgsUj1fKHcsTi5fY2FjaGUpO3JldHVybiBOLl9jYWNoZT1OLl9jYWNoZS5zbGljZShIKSxOLl9wcmV2PUQuY29uY2F0KFtOLl9wcmV2LEY/dzpSXSksUn1KLmVuY3J5cHQ9ZnVuY3Rp'@; put 'b24oTix3LEYpe2Zvcih2YXIgUixIPUQuYWxsb2NVbnNhZmUoMCk7dy5sZW5ndGg7KXtpZigwPT09Ti5fY2FjaGUubGVuZ3RoJiYoTi5fY2FjaGU9Ti5fY2lwaGVyLmVuY3J5cHRCbG9jayhOLl9wcmV2KSxOLl9wcmV2PUQuYWxsb2NVbnNhZmUoMCkpLCEoTi5fY2FjaGUubGVuZ3RoPD13Lmxl'@; put 'bmd0aCkpe0g9RC5jb25jYXQoW0gscChOLHcsRildKTticmVha31IPUQuY29uY2F0KFtILHAoTix3LnNsaWNlKDAsUj1OLl9jYWNoZS5sZW5ndGgpLEYpXSksdz13LnNsaWNlKFIpfXJldHVybiBIfX0sNzEwMzk6KGNlLEosYik9Pnt2YXIgRD1iKDI3MDU0KS5CdWZmZXI7ZnVuY3Rpb24gXyhO'@; put 'LHcsRil7Zm9yKHZhciBMLFksUj0tMSxQPTA7KytSPDg7KVArPSgxMjgmKFk9Ti5fY2lwaGVyLmVuY3J5cHRCbG9jayhOLl9wcmV2KVswXV4oTD13JjE8PDctUj8xMjg6MCkpKT4+UiU4LE4uX3ByZXY9cChOLl9wcmV2LEY/TDpZKTtyZXR1cm4gUH1mdW5jdGlvbiBwKE4sdyl7dmFyIEY9Ti5s'@; put 'ZW5ndGgsSD0tMSxSPUQuYWxsb2NVbnNhZmUoTi5sZW5ndGgpO2ZvcihOPUQuY29uY2F0KFtOLEQuZnJvbShbd10pXSk7KytIPEY7KVJbSF09TltIXTw8MXxOW0grMV0+Pjc7cmV0dXJuIFJ9Si5lbmNyeXB0PWZ1bmN0aW9uKE4sdyxGKXtmb3IodmFyIEg9dy5sZW5ndGgsUj1ELmFsbG9jVW5z'@; put 'YWZlKEgpLGo9LTE7KytqPEg7KVJbal09XyhOLHdbal0sRik7cmV0dXJuIFJ9fSw3MjU3NjooY2UsSixiKT0+e3ZhciBEPWIoMjcwNTQpLkJ1ZmZlcjtmdW5jdGlvbiBfKHAsTix3KXt2YXIgSD1wLl9jaXBoZXIuZW5jcnlwdEJsb2NrKHAuX3ByZXYpWzBdXk47cmV0dXJuIHAuX3ByZXY9RC5j'@; put 'b25jYXQoW3AuX3ByZXYuc2xpY2UoMSksRC5mcm9tKFt3P046SF0pXSksSH1KLmVuY3J5cHQ9ZnVuY3Rpb24ocCxOLHcpe2Zvcih2YXIgRj1OLmxlbmd0aCxIPUQuYWxsb2NVbnNhZmUoRiksUj0tMTsrK1I8RjspSFtSXT1fKHAsTltSXSx3KTtyZXR1cm4gSH19LDcwMzM2OihjZSxKLGIpPT57'@; put 'dmFyIEQ9YigxMzU0NiksXz1iKDI3MDU0KS5CdWZmZXIscD1iKDk1NzI1KTtmdW5jdGlvbiBOKEYpe3ZhciBIPUYuX2NpcGhlci5lbmNyeXB0QmxvY2tSYXcoRi5fcHJldik7cmV0dXJuIHAoRi5fcHJldiksSH1KLmVuY3J5cHQ9ZnVuY3Rpb24oRixIKXt2YXIgUj1NYXRoLmNlaWwoSC5sZW5n'@; put 'dGgvMTYpLGo9Ri5fY2FjaGUubGVuZ3RoO0YuX2NhY2hlPV8uY29uY2F0KFtGLl9jYWNoZSxfLmFsbG9jVW5zYWZlKDE2KlIpXSk7Zm9yKHZhciBQPTA7UDxSO1ArKyl7dmFyIEw9TihGKSxZPWorMTYqUDtGLl9jYWNoZS53cml0ZVVJbnQzMkJFKExbMF0sWSswKSxGLl9jYWNoZS53cml0ZVVJ'@; put 'bnQzMkJFKExbMV0sWSs0KSxGLl9jYWNoZS53cml0ZVVJbnQzMkJFKExbMl0sWSs4KSxGLl9jYWNoZS53cml0ZVVJbnQzMkJFKExbM10sWSsxMil9dmFyIEI9Ri5fY2FjaGUuc2xpY2UoMCxILmxlbmd0aCk7cmV0dXJuIEYuX2NhY2hlPUYuX2NhY2hlLnNsaWNlKEgubGVuZ3RoKSxEKEgsQil9'@; put 'fSwzNzUxMzooY2UsSik9PntKLmVuY3J5cHQ9ZnVuY3Rpb24oYixEKXtyZXR1cm4gYi5fY2lwaGVyLmVuY3J5cHRCbG9jayhEKX0sSi5kZWNyeXB0PWZ1bmN0aW9uKGIsRCl7cmV0dXJuIGIuX2NpcGhlci5kZWNyeXB0QmxvY2soRCl9fSw2MDUwMzooY2UsSixiKT0+e3ZhciBEPXtFQ0I6Yigz'@; put 'NzUxMyksQ0JDOmIoMzQxMzMpLENGQjpiKDE3MDkwKSxDRkI4OmIoNzI1NzYpLENGQjE6Yig3MTAzOSksT0ZCOmIoNDY4NTQpLENUUjpiKDcwMzM2KSxHQ006Yig3MDMzNil9LF89YigzMjE5KTtmb3IodmFyIHAgaW4gXylfW3BdLm1vZHVsZT1EW19bcF0ubW9kZV07Y2UuZXhwb3J0cz1ffSw0'@; put 'Njg1NDooY2UsSixiKT0+e3ZhciBEPWIoMTM1NDYpO2Z1bmN0aW9uIF8ocCl7cmV0dXJuIHAuX3ByZXY9cC5fY2lwaGVyLmVuY3J5cHRCbG9jayhwLl9wcmV2KSxwLl9wcmV2fUouZW5jcnlwdD1mdW5jdGlvbihwLE4pe2Zvcig7cC5fY2FjaGUubGVuZ3RoPE4ubGVuZ3RoOylwLl9jYWNoZT1C'@; put 'dWZmZXIuY29uY2F0KFtwLl9jYWNoZSxfKHApXSk7dmFyIHc9cC5fY2FjaGUuc2xpY2UoMCxOLmxlbmd0aCk7cmV0dXJuIHAuX2NhY2hlPXAuX2NhY2hlLnNsaWNlKE4ubGVuZ3RoKSxEKE4sdyl9fSw5MTgyMTooY2UsSixiKT0+e3ZhciBEPWIoMTIzNzUpLF89YigyNzA1NCkuQnVmZmVyLHA9'@; put 'YigzMjQ3KTtmdW5jdGlvbiB3KEYsSCxSLGope3AuY2FsbCh0aGlzKSx0aGlzLl9jaXBoZXI9bmV3IEQuQUVTKEgpLHRoaXMuX3ByZXY9Xy5mcm9tKFIpLHRoaXMuX2NhY2hlPV8uYWxsb2NVbnNhZmUoMCksdGhpcy5fc2VjQ2FjaGU9Xy5hbGxvY1Vuc2FmZSgwKSx0aGlzLl9kZWNyeXB0PWos'@; put 'dGhpcy5fbW9kZT1GfWIoNzE5OTMpKHcscCksdy5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihGKXtyZXR1cm4gdGhpcy5fbW9kZS5lbmNyeXB0KHRoaXMsRix0aGlzLl9kZWNyeXB0KX0sdy5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7dGhpcy5fY2lwaGVyLnNjcnViKCl9LGNlLmV4'@; put 'cG9ydHM9d30sODg4NjI6KGNlLEosYik9Pnt2YXIgRD1iKDM5Nzk5KSxfPWIoNDMzODgpLHA9Yig2MDUwMyksTj1iKDU5NTcxKSx3PWIoMTgyMTEpO2Z1bmN0aW9uIFIoTCxZLEIpe2lmKEw9TC50b0xvd2VyQ2FzZSgpLHBbTF0pcmV0dXJuIF8uY3JlYXRlQ2lwaGVyaXYoTCxZLEIpO2lmKE5b'@; put 'TF0pcmV0dXJuIG5ldyBEKHtrZXk6WSxpdjpCLG1vZGU6TH0pO3Rocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpfWZ1bmN0aW9uIGooTCxZLEIpe2lmKEw9TC50b0xvd2VyQ2FzZSgpLHBbTF0pcmV0dXJuIF8uY3JlYXRlRGVjaXBoZXJpdihMLFksQik7aWYoTltMXSly'@; put 'ZXR1cm4gbmV3IEQoe2tleTpZLGl2OkIsbW9kZTpMLGRlY3J5cHQ6ITB9KTt0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKX1KLmNyZWF0ZUNpcGhlcj1KLkNpcGhlcj1mdW5jdGlvbiBGKEwsWSl7dmFyIEIsVztpZihMPUwudG9Mb3dlckNhc2UoKSxwW0xdKUI9cFtM'@; put 'XS5rZXksVz1wW0xdLml2O2Vsc2V7aWYoIU5bTF0pdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIik7Qj04Kk5bTF0ua2V5LFc9TltMXS5pdn12YXIgWj13KFksITEsQixXKTtyZXR1cm4gUihMLFoua2V5LFouaXYpfSxKLmNyZWF0ZUNpcGhlcml2PUouQ2lwaGVyaXY9'@; put 'UixKLmNyZWF0ZURlY2lwaGVyPUouRGVjaXBoZXI9ZnVuY3Rpb24gSChMLFkpe3ZhciBCLFc7aWYoTD1MLnRvTG93ZXJDYXNlKCkscFtMXSlCPXBbTF0ua2V5LFc9cFtMXS5pdjtlbHNle2lmKCFOW0xdKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO0I9OCpOW0xd'@; put 'LmtleSxXPU5bTF0uaXZ9dmFyIFo9dyhZLCExLEIsVyk7cmV0dXJuIGooTCxaLmtleSxaLml2KX0sSi5jcmVhdGVEZWNpcGhlcml2PUouRGVjaXBoZXJpdj1qLEoubGlzdENpcGhlcnM9Si5nZXRDaXBoZXJzPWZ1bmN0aW9uIFAoKXtyZXR1cm4gT2JqZWN0LmtleXMoTikuY29uY2F0KF8uZ2V0'@; put 'Q2lwaGVycygpKX19LDM5Nzk5OihjZSxKLGIpPT57dmFyIEQ9YigzMjQ3KSxfPWIoNzE1NDkpLHA9Yig3MTk5MyksTj1iKDI3MDU0KS5CdWZmZXIsdz17ImRlcy1lZGUzLWNiYyI6Xy5DQkMuaW5zdGFudGlhdGUoXy5FREUpLCJkZXMtZWRlMyI6Xy5FREUsImRlcy1lZGUtY2JjIjpfLkNCQy5p'@; put 'bnN0YW50aWF0ZShfLkVERSksImRlcy1lZGUiOl8uRURFLCJkZXMtY2JjIjpfLkNCQy5pbnN0YW50aWF0ZShfLkRFUyksImRlcy1lY2IiOl8uREVTfTtmdW5jdGlvbiBGKEgpe0QuY2FsbCh0aGlzKTt2YXIgUCxSPUgubW9kZS50b0xvd2VyQ2FzZSgpLGo9d1tSXTtQPUguZGVjcnlwdD8iZGVj'@; put 'cnlwdCI6ImVuY3J5cHQiO3ZhciBMPUgua2V5O04uaXNCdWZmZXIoTCl8fChMPU4uZnJvbShMKSksKCJkZXMtZWRlIj09PVJ8fCJkZXMtZWRlLWNiYyI9PT1SKSYmKEw9Ti5jb25jYXQoW0wsTC5zbGljZSgwLDgpXSkpO3ZhciBZPUguaXY7Ti5pc0J1ZmZlcihZKXx8KFk9Ti5mcm9tKFkpKSx0'@; put 'aGlzLl9kZXM9ai5jcmVhdGUoe2tleTpMLGl2OlksdHlwZTpQfSl9dy5kZXM9d1siZGVzLWNiYyJdLHcuZGVzMz13WyJkZXMtZWRlMy1jYmMiXSxjZS5leHBvcnRzPUYscChGLEQpLEYucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oSCl7cmV0dXJuIE4uZnJvbSh0aGlzLl9kZXMudXBkYXRl'@; put 'KEgpKX0sRi5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7cmV0dXJuIE4uZnJvbSh0aGlzLl9kZXMuZmluYWwoKSl9fSw1OTU3MTooY2UsSik9PntKWyJkZXMtZWNiIl09e2tleTo4LGl2OjB9LEpbImRlcy1jYmMiXT1KLmRlcz17a2V5OjgsaXY6OH0sSlsiZGVzLWVkZTMtY2JjIl09Si5k'@; put 'ZXMzPXtrZXk6MjQsaXY6OH0sSlsiZGVzLWVkZTMiXT17a2V5OjI0LGl2OjB9LEpbImRlcy1lZGUtY2JjIl09e2tleToxNixpdjo4fSxKWyJkZXMtZWRlIl09e2tleToxNixpdjowfX0sMTQxMDU6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig5MTcpLF89YigzMzQyKSxwPWIoMjcw'@; put 'NTQpLkJ1ZmZlcjtmdW5jdGlvbiBOKEgpe3ZhciBqLFI9SC5tb2R1bHVzLmJ5dGVMZW5ndGgoKTtkb3tqPW5ldyBEKF8oUikpfXdoaWxlKGouY21wKEgubW9kdWx1cyk+PTB8fCFqLnVtb2QoSC5wcmltZTEpfHwhai51bW9kKEgucHJpbWUyKSk7cmV0dXJuIGp9ZnVuY3Rpb24gRihILFIpe3Zh'@; put 'ciBqPWZ1bmN0aW9uIHcoSCl7dmFyIFI9TihIKTtyZXR1cm57YmxpbmRlcjpSLnRvUmVkKEQubW9udChILm1vZHVsdXMpKS5yZWRQb3cobmV3IEQoSC5wdWJsaWNFeHBvbmVudCkpLmZyb21SZWQoKSx1bmJsaW5kZXI6Ui5pbnZtKEgubW9kdWx1cyl9fShSKSxQPVIubW9kdWx1cy5ieXRlTGVu'@; put 'Z3RoKCksTD1uZXcgRChIKS5tdWwoai5ibGluZGVyKS51bW9kKFIubW9kdWx1cyksWT1MLnRvUmVkKEQubW9udChSLnByaW1lMSkpLEI9TC50b1JlZChELm1vbnQoUi5wcmltZTIpKSxXPVIuY29lZmZpY2llbnQsWj1SLnByaW1lMSxYPVIucHJpbWUyLFE9WS5yZWRQb3coUi5leHBvbmVudDEp'@; put 'LmZyb21SZWQoKSxxPUIucmVkUG93KFIuZXhwb25lbnQyKS5mcm9tUmVkKCksdGU9US5pc3ViKHEpLmltdWwoVykudW1vZChaKS5pbXVsKFgpO3JldHVybiBxLmlhZGQodGUpLmltdWwoai51bmJsaW5kZXIpLnVtb2QoUi5tb2R1bHVzKS50b0FycmF5TGlrZShwLCJiZSIsUCl9Ri5nZXRyPU4s'@; put 'Y2UuZXhwb3J0cz1GfSw5OTU2MDooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPWIoNjI5NTEpfSw3OTE0MzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDI3MDU0KS5CdWZmZXIsXz1iKDY3MjExKSxwPWIoNTk0MiksTj1iKDcxOTkzKSx3PWIoNDMxNTApLEY9Yig3'@; put 'NDc1NCksSD1iKDYyOTUxKTtmdW5jdGlvbiBSKFkpe3AuV3JpdGFibGUuY2FsbCh0aGlzKTt2YXIgQj1IW1ldO2lmKCFCKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBtZXNzYWdlIGRpZ2VzdCIpO3RoaXMuX2hhc2hUeXBlPUIuaGFzaCx0aGlzLl9oYXNoPV8oQi5oYXNoKSx0aGlzLl90YWc9'@; put 'Qi5pZCx0aGlzLl9zaWduVHlwZT1CLnNpZ259ZnVuY3Rpb24gaihZKXtwLldyaXRhYmxlLmNhbGwodGhpcyk7dmFyIEI9SFtZXTtpZighQil0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gbWVzc2FnZSBkaWdlc3QiKTt0aGlzLl9oYXNoPV8oQi5oYXNoKSx0aGlzLl90YWc9Qi5pZCx0aGlzLl9z'@; put 'aWduVHlwZT1CLnNpZ259ZnVuY3Rpb24gUChZKXtyZXR1cm4gbmV3IFIoWSl9ZnVuY3Rpb24gTChZKXtyZXR1cm4gbmV3IGooWSl9T2JqZWN0LmtleXMoSCkuZm9yRWFjaChmdW5jdGlvbihZKXtIW1ldLmlkPUQuZnJvbShIW1ldLmlkLCJoZXgiKSxIW1kudG9Mb3dlckNhc2UoKV09SFtZXX0p'@; put 'LE4oUixwLldyaXRhYmxlKSxSLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24oQixXLFope3RoaXMuX2hhc2gudXBkYXRlKEIpLFooKX0sUi5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKEIsVyl7cmV0dXJuIHRoaXMuX2hhc2gudXBkYXRlKCJzdHJpbmciPT10eXBlb2YgQj9ELmZyb20oQixX'@; put 'KTpCKSx0aGlzfSxSLnByb3RvdHlwZS5zaWduPWZ1bmN0aW9uKEIsVyl7dGhpcy5lbmQoKTt2YXIgWj10aGlzLl9oYXNoLmRpZ2VzdCgpLFg9dyhaLEIsdGhpcy5faGFzaFR5cGUsdGhpcy5fc2lnblR5cGUsdGhpcy5fdGFnKTtyZXR1cm4gVz9YLnRvU3RyaW5nKFcpOlh9LE4oaixwLldyaXRh'@; put 'YmxlKSxqLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24oQixXLFope3RoaXMuX2hhc2gudXBkYXRlKEIpLFooKX0sai5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKEIsVyl7cmV0dXJuIHRoaXMuX2hhc2gudXBkYXRlKCJzdHJpbmciPT10eXBlb2YgQj9ELmZyb20oQixXKTpCKSx0aGlzfSxq'@; put 'LnByb3RvdHlwZS52ZXJpZnk9ZnVuY3Rpb24oQixXLFope3ZhciBYPSJzdHJpbmciPT10eXBlb2YgVz9ELmZyb20oVyxaKTpXO3RoaXMuZW5kKCk7dmFyIFE9dGhpcy5faGFzaC5kaWdlc3QoKTtyZXR1cm4gRihYLFEsQix0aGlzLl9zaWduVHlwZSx0aGlzLl90YWcpfSxjZS5leHBvcnRzPXtT'@; put 'aWduOlAsVmVyaWZ5OkwsY3JlYXRlU2lnbjpQLGNyZWF0ZVZlcmlmeTpMfX0sNDMxNTA6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigyNzA1NCkuQnVmZmVyLF89Yig1NjQzMikscD1iKDE0MTA1KSxOPWIoOTA1MTgpLmVjLHc9Yig5MTcpLEY9Yig2NTY2NyksSD1iKDY0NTg5KTtm'@; put 'dW5jdGlvbiBCKHEsdGUsaWUsc2Upe2lmKChxPUQuZnJvbShxLnRvQXJyYXkoKSkpLmxlbmd0aDx0ZS5ieXRlTGVuZ3RoKCkpe3ZhciBnZT1ELmFsbG9jKHRlLmJ5dGVMZW5ndGgoKS1xLmxlbmd0aCk7cT1ELmNvbmNhdChbZ2UscV0pfXZhciBfZT1pZS5sZW5ndGgsVGU9ZnVuY3Rpb24gWihx'@; put 'LHRlKXtxPShxPVcocSx0ZSkpLm1vZCh0ZSk7dmFyIGllPUQuZnJvbShxLnRvQXJyYXkoKSk7aWYoaWUubGVuZ3RoPHRlLmJ5dGVMZW5ndGgoKSl7dmFyIHNlPUQuYWxsb2ModGUuYnl0ZUxlbmd0aCgpLWllLmxlbmd0aCk7aWU9RC5jb25jYXQoW3NlLGllXSl9cmV0dXJuIGllfShpZSx0ZSks'@; put 'U2U9RC5hbGxvYyhfZSk7U2UuZmlsbCgxKTt2YXIgemU9RC5hbGxvYyhfZSk7cmV0dXJuIHplPV8oc2UsemUpLnVwZGF0ZShTZSkudXBkYXRlKEQuZnJvbShbMF0pKS51cGRhdGUocSkudXBkYXRlKFRlKS5kaWdlc3QoKSxTZT1fKHNlLHplKS51cGRhdGUoU2UpLmRpZ2VzdCgpLHtrOnplPV8o'@; put 'c2UsemUpLnVwZGF0ZShTZSkudXBkYXRlKEQuZnJvbShbMV0pKS51cGRhdGUocSkudXBkYXRlKFRlKS5kaWdlc3QoKSx2OlNlPV8oc2UsemUpLnVwZGF0ZShTZSkuZGlnZXN0KCl9fWZ1bmN0aW9uIFcocSx0ZSl7dmFyIGllPW5ldyB3KHEpLHNlPShxLmxlbmd0aDw8MyktdGUuYml0TGVuZ3Ro'@; put 'KCk7cmV0dXJuIHNlPjAmJmllLmlzaHJuKHNlKSxpZX1mdW5jdGlvbiBYKHEsdGUsaWUpe3ZhciBzZSxnZTtkb3tmb3Ioc2U9RC5hbGxvYygwKTs4KnNlLmxlbmd0aDxxLmJpdExlbmd0aCgpOyl0ZS52PV8oaWUsdGUuaykudXBkYXRlKHRlLnYpLmRpZ2VzdCgpLHNlPUQuY29uY2F0KFtzZSx0'@; put 'ZS52XSk7Z2U9VyhzZSxxKSx0ZS5rPV8oaWUsdGUuaykudXBkYXRlKHRlLnYpLnVwZGF0ZShELmZyb20oWzBdKSkuZGlnZXN0KCksdGUudj1fKGllLHRlLmspLnVwZGF0ZSh0ZS52KS5kaWdlc3QoKX13aGlsZSgtMSE9PWdlLmNtcChxKSk7cmV0dXJuIGdlfWZ1bmN0aW9uIFEocSx0ZSxpZSxz'@; put 'ZSl7cmV0dXJuIHEudG9SZWQody5tb250KGllKSkucmVkUG93KHRlKS5mcm9tUmVkKCkubW9kKHNlKX1jZS5leHBvcnRzPWZ1bmN0aW9uIGoocSx0ZSxpZSxzZSxnZSl7dmFyIF9lPUYodGUpO2lmKF9lLmN1cnZlKXtpZigiZWNkc2EiIT09c2UmJiJlY2RzYS9yc2EiIT09c2UpdGhyb3cgbmV3'@; put 'IEVycm9yKCJ3cm9uZyBwcml2YXRlIGtleSB0eXBlIik7cmV0dXJuIGZ1bmN0aW9uIFAocSx0ZSl7dmFyIGllPUhbdGUuY3VydmUuam9pbigiLiIpXTtpZighaWUpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGN1cnZlICIrdGUuY3VydmUuam9pbigiLiIpKTt2YXIgX2U9bmV3IE4oaWUpLmtl'@; put 'eUZyb21Qcml2YXRlKHRlLnByaXZhdGVLZXkpLnNpZ24ocSk7cmV0dXJuIEQuZnJvbShfZS50b0RFUigpKX0ocSxfZSl9aWYoImRzYSI9PT1fZS50eXBlKXtpZigiZHNhIiE9PXNlKXRocm93IG5ldyBFcnJvcigid3JvbmcgcHJpdmF0ZSBrZXkgdHlwZSIpO3JldHVybiBmdW5jdGlvbiBMKHEs'@; put 'dGUsaWUpe2Zvcih2YXIgemUsc2U9dGUucGFyYW1zLnByaXZfa2V5LGdlPXRlLnBhcmFtcy5wLF9lPXRlLnBhcmFtcy5xLFRlPXRlLnBhcmFtcy5nLFNlPW5ldyB3KDApLHo9VyhxLF9lKS5tb2QoX2UpLGc9ITEseT1CKHNlLF9lLHEsaWUpOyExPT09ZzspU2U9UShUZSx6ZT1YKF9lLHksaWUp'@; put 'LGdlLF9lKSwwPT09KGc9emUuaW52bShfZSkuaW11bCh6LmFkZChzZS5tdWwoU2UpKSkubW9kKF9lKSkuY21wbigwKSYmKGc9ITEsU2U9bmV3IHcoMCkpO3JldHVybiBmdW5jdGlvbiBZKHEsdGUpe3E9cS50b0FycmF5KCksdGU9dGUudG9BcnJheSgpLDEyOCZxWzBdJiYocT1bMF0uY29uY2F0'@; put 'KHEpKSwxMjgmdGVbMF0mJih0ZT1bMF0uY29uY2F0KHRlKSk7dmFyIHNlPVs0OCxxLmxlbmd0aCt0ZS5sZW5ndGgrNCwyLHEubGVuZ3RoXTtyZXR1cm4gc2U9c2UuY29uY2F0KHEsWzIsdGUubGVuZ3RoXSx0ZSksRC5mcm9tKHNlKX0oU2UsZyl9KHEsX2UsaWUpfWlmKCJyc2EiIT09c2UmJiJl'@; put 'Y2RzYS9yc2EiIT09c2UpdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBwcml2YXRlIGtleSB0eXBlIik7aWYodm9pZCAwIT09dGUucGFkZGluZyYmMSE9PXRlLnBhZGRpbmcpdGhyb3cgbmV3IEVycm9yKCJpbGxlZ2FsIG9yIHVuc3VwcG9ydGVkIHBhZGRpbmcgbW9kZSIpO3E9RC5jb25jYXQoW2dl'@; put 'LHFdKTtmb3IodmFyIFRlPV9lLm1vZHVsdXMuYnl0ZUxlbmd0aCgpLFNlPVswLDFdO3EubGVuZ3RoK1NlLmxlbmd0aCsxPFRlOylTZS5wdXNoKDI1NSk7U2UucHVzaCgwKTtmb3IodmFyIHplPS0xOysremU8cS5sZW5ndGg7KVNlLnB1c2gocVt6ZV0pO3JldHVybiBwKFNlLF9lKX0sY2UuZXhw'@; put 'b3J0cy5nZXRLZXk9QixjZS5leHBvcnRzLm1ha2VLZXk9WH0sNzQ3NTQ6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigyNzA1NCkuQnVmZmVyLF89Yig5MTcpLHA9Yig5MDUxOCkuZWMsTj1iKDY1NjY3KSx3PWIoNjQ1ODkpO2Z1bmN0aW9uIGooUCxMKXtpZihQLmNtcG4oMCk8PTAp'@; put 'dGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHNpZyIpO2lmKFAuY21wKEwpPj0wKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBzaWciKX1jZS5leHBvcnRzPWZ1bmN0aW9uIEYoUCxMLFksQixXKXt2YXIgWj1OKFkpO2lmKCJlYyI9PT1aLnR5cGUpe2lmKCJlY2RzYSIhPT1CJiYiZWNkc2EvcnNh'@; put 'IiE9PUIpdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBwdWJsaWMga2V5IHR5cGUiKTtyZXR1cm4gZnVuY3Rpb24gSChQLEwsWSl7dmFyIEI9d1tZLmRhdGEuYWxnb3JpdGhtLmN1cnZlLmpvaW4oIi4iKV07aWYoIUIpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGN1cnZlICIrWS5kYXRhLmFsZ29y'@; put 'aXRobS5jdXJ2ZS5qb2luKCIuIikpO3JldHVybiBuZXcgcChCKS52ZXJpZnkoTCxQLFkuZGF0YS5zdWJqZWN0UHJpdmF0ZUtleS5kYXRhKX0oUCxMLFopfWlmKCJkc2EiPT09Wi50eXBlKXtpZigiZHNhIiE9PUIpdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBwdWJsaWMga2V5IHR5cGUiKTtyZXR1'@; put 'cm4gZnVuY3Rpb24gUihQLEwsWSl7dmFyIEI9WS5kYXRhLnAsVz1ZLmRhdGEucSxaPVkuZGF0YS5nLFg9WS5kYXRhLnB1Yl9rZXksUT1OLnNpZ25hdHVyZS5kZWNvZGUoUCwiZGVyIikscT1RLnMsdGU9US5yO2oocSxXKSxqKHRlLFcpO3ZhciBpZT1fLm1vbnQoQiksc2U9cS5pbnZtKFcpO3Jl'@; put 'dHVybiAwPT09Wi50b1JlZChpZSkucmVkUG93KG5ldyBfKEwpLm11bChzZSkubW9kKFcpKS5mcm9tUmVkKCkubXVsKFgudG9SZWQoaWUpLnJlZFBvdyh0ZS5tdWwoc2UpLm1vZChXKSkuZnJvbVJlZCgpKS5tb2QoQikubW9kKFcpLmNtcCh0ZSl9KFAsTCxaKX1pZigicnNhIiE9PUImJiJlY2Rz'@; put 'YS9yc2EiIT09Qil0aHJvdyBuZXcgRXJyb3IoIndyb25nIHB1YmxpYyBrZXkgdHlwZSIpO0w9RC5jb25jYXQoW1csTF0pO2Zvcih2YXIgWD1aLm1vZHVsdXMuYnl0ZUxlbmd0aCgpLFE9WzFdLHE9MDtMLmxlbmd0aCtRLmxlbmd0aCsyPFg7KVEucHVzaCgyNTUpLHErPTE7US5wdXNoKDApO2Zv'@; put 'cih2YXIgdGU9LTE7Kyt0ZTxMLmxlbmd0aDspUS5wdXNoKExbdGVdKTtRPUQuZnJvbShRKTt2YXIgaWU9Xy5tb250KFoubW9kdWx1cyk7UD0oUD1uZXcgXyhQKS50b1JlZChpZSkpLnJlZFBvdyhuZXcgXyhaLnB1YmxpY0V4cG9uZW50KSksUD1ELmZyb20oUC5mcm9tUmVkKCkudG9BcnJheSgp'@; put 'KTt2YXIgc2U9cTw4PzE6MDtmb3IoWD1NYXRoLm1pbihQLmxlbmd0aCxRLmxlbmd0aCksUC5sZW5ndGghPT1RLmxlbmd0aCYmKHNlPTEpLHRlPS0xOysrdGU8WDspc2V8PVBbdGVdXlFbdGVdO3JldHVybiAwPT09c2V9fSwxMzU0NjpjZT0+e2NlLmV4cG9ydHM9ZnVuY3Rpb24oYixEKXtmb3Io'@; put 'dmFyIF89TWF0aC5taW4oYi5sZW5ndGgsRC5sZW5ndGgpLHA9bmV3IEJ1ZmZlcihfKSxOPTA7TjxfOysrTilwW05dPWJbTl1eRFtOXTtyZXR1cm4gcH19LDgzODM4OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMTM5ODEpLF89YigyMjAyMCkscD0iZnVuY3Rpb24iPT10eXBlb2Yg'@; put 'U3ltYm9sJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sLmZvcj9TeW1ib2wuZm9yKCJub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbSIpOm51bGw7Si5CdWZmZXI9SCxKLlNsb3dCdWZmZXI9ZnVuY3Rpb24gcShJZSl7cmV0dXJuK0llIT1JZSYmKEllPTApLEguYWxsb2MoK0llKX0sSi5JTlNQ'@; put 'RUNUX01BWF9CWVRFUz01MDt2YXIgTj0yMTQ3NDgzNjQ3O2Z1bmN0aW9uIEYoSWUpe2lmKEllPk4pdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSAiJytJZSsnIiBpcyBpbnZhbGlkIGZvciBvcHRpb24gInNpemUiJyk7dmFyIEhlPW5ldyBVaW50OEFycmF5KEllKTtyZXR1cm4gT2Jq'@; put 'ZWN0LnNldFByb3RvdHlwZU9mKEhlLEgucHJvdG90eXBlKSxIZX1mdW5jdGlvbiBIKEllLEhlLERlKXtpZigibnVtYmVyIj09dHlwZW9mIEllKXtpZigic3RyaW5nIj09dHlwZW9mIEhlKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAic3RyaW5nIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUg'@; put 'c3RyaW5nLiBSZWNlaXZlZCB0eXBlIG51bWJlcicpO3JldHVybiBMKEllKX1yZXR1cm4gUihJZSxIZSxEZSl9ZnVuY3Rpb24gUihJZSxIZSxEZSl7aWYoInN0cmluZyI9PXR5cGVvZiBJZSlyZXR1cm4gZnVuY3Rpb24gWShJZSxIZSl7aWYoKCJzdHJpbmciIT10eXBlb2YgSGV8fCIiPT09SGUp'@; put 'JiYoSGU9InV0ZjgiKSwhSC5pc0VuY29kaW5nKEhlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK0hlKTt2YXIgRGU9MHx0ZShJZSxIZSksa2U9RihEZSksX3Q9a2Uud3JpdGUoSWUsSGUpO3JldHVybiBfdCE9PURlJiYoa2U9a2Uuc2xpY2UoMCxfdCkpLGtlfShJ'@; put 'ZSxIZSk7aWYoQXJyYXlCdWZmZXIuaXNWaWV3KEllKSlyZXR1cm4gZnVuY3Rpb24gVyhJZSl7aWYoQWUoSWUsVWludDhBcnJheSkpe3ZhciBIZT1uZXcgVWludDhBcnJheShJZSk7cmV0dXJuIFooSGUuYnVmZmVyLEhlLmJ5dGVPZmZzZXQsSGUuYnl0ZUxlbmd0aCl9cmV0dXJuIEIoSWUpfShJ'@; put 'ZSk7aWYobnVsbD09SWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgb3IgQXJyYXktbGlrZSBPYmplY3QuIFJlY2VpdmVkIHR5cGUgIit0eXBlb2YgSWUpO2lmKEFl'@; put 'KEllLEFycmF5QnVmZmVyKXx8SWUmJkFlKEllLmJ1ZmZlcixBcnJheUJ1ZmZlcil8fHR5cGVvZiBTaGFyZWRBcnJheUJ1ZmZlcjwidSImJihBZShJZSxTaGFyZWRBcnJheUJ1ZmZlcil8fEllJiZBZShJZS5idWZmZXIsU2hhcmVkQXJyYXlCdWZmZXIpKSlyZXR1cm4gWihJZSxIZSxEZSk7aWYo'@; put 'Im51bWJlciI9PXR5cGVvZiBJZSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInZhbHVlIiBhcmd1bWVudCBtdXN0IG5vdCBiZSBvZiB0eXBlIG51bWJlci4gUmVjZWl2ZWQgdHlwZSBudW1iZXInKTt2YXIga2U9SWUudmFsdWVPZiYmSWUudmFsdWVPZigpO2lmKG51bGwhPWtlJiZrZSE9PUll'@; put 'KXJldHVybiBILmZyb20oa2UsSGUsRGUpO3ZhciBfdD1mdW5jdGlvbiBYKEllKXtpZihILmlzQnVmZmVyKEllKSl7dmFyIEhlPTB8UShJZS5sZW5ndGgpLERlPUYoSGUpO3JldHVybiAwPT09RGUubGVuZ3RofHxJZS5jb3B5KERlLDAsMCxIZSksRGV9cmV0dXJuIHZvaWQgMCE9PUllLmxlbmd0'@; put 'aD8ibnVtYmVyIiE9dHlwZW9mIEllLmxlbmd0aHx8RmUoSWUubGVuZ3RoKT9GKDApOkIoSWUpOiJCdWZmZXIiPT09SWUudHlwZSYmQXJyYXkuaXNBcnJheShJZS5kYXRhKT9CKEllLmRhdGEpOnZvaWQgMH0oSWUpO2lmKF90KXJldHVybiBfdDtpZih0eXBlb2YgU3ltYm9sPCJ1IiYmbnVsbCE9'@; put 'U3ltYm9sLnRvUHJpbWl0aXZlJiYiZnVuY3Rpb24iPT10eXBlb2YgSWVbU3ltYm9sLnRvUHJpbWl0aXZlXSlyZXR1cm4gSC5mcm9tKEllW1N5bWJvbC50b1ByaW1pdGl2ZV0oInN0cmluZyIpLEhlLERlKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBv'@; put 'bmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSAiK3R5cGVvZiBJZSl9ZnVuY3Rpb24gaihJZSl7aWYoIm51bWJlciIhPXR5cGVvZiBJZSl0aHJvdyBuZXcgVHlwZUVycm9yKCcic2l6ZSIgYXJn'@; put 'dW1lbnQgbXVzdCBiZSBvZiB0eXBlIG51bWJlcicpO2lmKEllPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSAiJytJZSsnIiBpcyBpbnZhbGlkIGZvciBvcHRpb24gInNpemUiJyl9ZnVuY3Rpb24gTChJZSl7cmV0dXJuIGooSWUpLEYoSWU8MD8wOjB8UShJZSkpfWZ1bmN0aW9u'@; put 'IEIoSWUpe2Zvcih2YXIgSGU9SWUubGVuZ3RoPDA/MDowfFEoSWUubGVuZ3RoKSxEZT1GKEhlKSxrZT0wO2tlPEhlO2tlKz0xKURlW2tlXT0yNTUmSWVba2VdO3JldHVybiBEZX1mdW5jdGlvbiBaKEllLEhlLERlKXtpZihIZTwwfHxJZS5ieXRlTGVuZ3RoPEhlKXRocm93IG5ldyBSYW5nZUVy'@; put 'cm9yKCcib2Zmc2V0IiBpcyBvdXRzaWRlIG9mIGJ1ZmZlciBib3VuZHMnKTtpZihJZS5ieXRlTGVuZ3RoPEhlKyhEZXx8MCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJsZW5ndGgiIGlzIG91dHNpZGUgb2YgYnVmZmVyIGJvdW5kcycpO3ZhciBrZTtyZXR1cm4ga2U9dm9pZCAwPT09SGUmJnZv'@; put 'aWQgMD09PURlP25ldyBVaW50OEFycmF5KEllKTp2b2lkIDA9PT1EZT9uZXcgVWludDhBcnJheShJZSxIZSk6bmV3IFVpbnQ4QXJyYXkoSWUsSGUsRGUpLE9iamVjdC5zZXRQcm90b3R5cGVPZihrZSxILnByb3RvdHlwZSksa2V9ZnVuY3Rpb24gUShJZSl7aWYoSWU+PU4pdGhyb3cgbmV3IFJh'@; put 'bmdlRXJyb3IoIkF0dGVtcHQgdG8gYWxsb2NhdGUgQnVmZmVyIGxhcmdlciB0aGFuIG1heGltdW0gc2l6ZTogMHgiK04udG9TdHJpbmcoMTYpKyIgYnl0ZXMiKTtyZXR1cm4gMHxJZX1mdW5jdGlvbiB0ZShJZSxIZSl7aWYoSC5pc0J1ZmZlcihJZSkpcmV0dXJuIEllLmxlbmd0aDtpZihBcnJh'@; put 'eUJ1ZmZlci5pc1ZpZXcoSWUpfHxBZShJZSxBcnJheUJ1ZmZlcikpcmV0dXJuIEllLmJ5dGVMZW5ndGg7aWYoInN0cmluZyIhPXR5cGVvZiBJZSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInN0cmluZyIgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgb3Ig'@; put 'QXJyYXlCdWZmZXIuIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2YgSWUpO3ZhciBEZT1JZS5sZW5ndGgsa2U9YXJndW1lbnRzLmxlbmd0aD4yJiYhMD09PWFyZ3VtZW50c1syXTtpZigha2UmJjA9PT1EZSlyZXR1cm4gMDtmb3IodmFyIF90PSExOzspc3dpdGNoKEhlKXtjYXNlImFzY2lpIjpjYXNl'@; put 'ImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiBEZTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiBhdChJZSkubGVuZ3RoO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4gMipEZTtjYXNlImhleCI6cmV0dXJuIERlPj4+MTtj'@; put 'YXNlImJhc2U2NCI6cmV0dXJuIHFlKEllKS5sZW5ndGg7ZGVmYXVsdDppZihfdClyZXR1cm4ga2U/LTE6YXQoSWUpLmxlbmd0aDtIZT0oIiIrSGUpLnRvTG93ZXJDYXNlKCksX3Q9ITB9fWZ1bmN0aW9uIGllKEllLEhlLERlKXt2YXIga2U9ITE7aWYoKHZvaWQgMD09PUhlfHxIZTwwKSYmKEhl'@; put 'PTApLEhlPnRoaXMubGVuZ3RofHwoKHZvaWQgMD09PURlfHxEZT50aGlzLmxlbmd0aCkmJihEZT10aGlzLmxlbmd0aCksRGU8PTApfHwoRGU+Pj49MCk8PShIZT4+Pj0wKSlyZXR1cm4iIjtmb3IoSWV8fChJZT0idXRmOCIpOzspc3dpdGNoKEllKXtjYXNlImhleCI6cmV0dXJuIEUodGhpcyxI'@; put 'ZSxEZSk7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4geCh0aGlzLEhlLERlKTtjYXNlImFzY2lpIjpyZXR1cm4gVih0aGlzLEhlLERlKTtjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiBVKHRoaXMsSGUsRGUpO2Nhc2UiYmFzZTY0IjpyZXR1cm4geSh0aGlzLEhlLERlKTtj'@; put 'YXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIG0odGhpcyxIZSxEZSk7ZGVmYXVsdDppZihrZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK0llKTtJZT0oSWUrIiIpLnRvTG93ZXJDYXNlKCksa2U9ITB9fWZ1'@; put 'bmN0aW9uIHNlKEllLEhlLERlKXt2YXIga2U9SWVbSGVdO0llW0hlXT1JZVtEZV0sSWVbRGVdPWtlfWZ1bmN0aW9uIGdlKEllLEhlLERlLGtlLF90KXtpZigwPT09SWUubGVuZ3RoKXJldHVybi0xO2lmKCJzdHJpbmciPT10eXBlb2YgRGU/KGtlPURlLERlPTApOkRlPjIxNDc0ODM2NDc/RGU9'@; put 'MjE0NzQ4MzY0NzpEZTwtMjE0NzQ4MzY0OCYmKERlPS0yMTQ3NDgzNjQ4KSxGZShEZT0rRGUpJiYoRGU9X3Q/MDpJZS5sZW5ndGgtMSksRGU8MCYmKERlPUllLmxlbmd0aCtEZSksRGU+PUllLmxlbmd0aCl7aWYoX3QpcmV0dXJuLTE7RGU9SWUubGVuZ3RoLTF9ZWxzZSBpZihEZTwwKXtpZigh'@; put 'X3QpcmV0dXJuLTE7RGU9MH1pZigic3RyaW5nIj09dHlwZW9mIEhlJiYoSGU9SC5mcm9tKEhlLGtlKSksSC5pc0J1ZmZlcihIZSkpcmV0dXJuIDA9PT1IZS5sZW5ndGg/LTE6X2UoSWUsSGUsRGUsa2UsX3QpO2lmKCJudW1iZXIiPT10eXBlb2YgSGUpcmV0dXJuIEhlJj0yNTUsImZ1bmN0aW9u'@; put 'Ij09dHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2Y/X3Q/VWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKEllLEhlLERlKTpVaW50OEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKEllLEhlLERlKTpfZShJZSxbSGVdLERlLGtlLF90KTt0aHJvdyBuZXcg'@; put 'VHlwZUVycm9yKCJ2YWwgbXVzdCBiZSBzdHJpbmcsIG51bWJlciBvciBCdWZmZXIiKX1mdW5jdGlvbiBfZShJZSxIZSxEZSxrZSxfdCl7dmFyIE10LG50PTEsSmU9SWUubGVuZ3RoLG9uPUhlLmxlbmd0aDtpZih2b2lkIDAhPT1rZSYmKCJ1Y3MyIj09PShrZT1TdHJpbmcoa2UpLnRvTG93ZXJD'@; put 'YXNlKCkpfHwidWNzLTIiPT09a2V8fCJ1dGYxNmxlIj09PWtlfHwidXRmLTE2bGUiPT09a2UpKXtpZihJZS5sZW5ndGg8Mnx8SGUubGVuZ3RoPDIpcmV0dXJuLTE7bnQ9MixKZS89Mixvbi89MixEZS89Mn1mdW5jdGlvbiB5dCh0dCxOZSl7cmV0dXJuIDE9PT1udD90dFtOZV06dHQucmVhZFVJ'@; put 'bnQxNkJFKE5lKm50KX1pZihfdCl7dmFyIEl0PS0xO2ZvcihNdD1EZTtNdDxKZTtNdCsrKWlmKHl0KEllLE10KT09PXl0KEhlLC0xPT09SXQ/MDpNdC1JdCkpe2lmKC0xPT09SXQmJihJdD1NdCksTXQtSXQrMT09PW9uKXJldHVybiBJdCpudH1lbHNlLTEhPT1JdCYmKE10LT1NdC1JdCksSXQ9'@; put 'LTF9ZWxzZSBmb3IoRGUrb24+SmUmJihEZT1KZS1vbiksTXQ9RGU7TXQ+PTA7TXQtLSl7Zm9yKHZhciBydD0hMCxLZT0wO0tlPG9uO0tlKyspaWYoeXQoSWUsTXQrS2UpIT09eXQoSGUsS2UpKXtydD0hMTticmVha31pZihydClyZXR1cm4gTXR9cmV0dXJuLTF9ZnVuY3Rpb24gVGUoSWUsSGUs'@; put 'RGUsa2Upe0RlPU51bWJlcihEZSl8fDA7dmFyIF90PUllLmxlbmd0aC1EZTtrZT8oa2U9TnVtYmVyKGtlKSk+X3QmJihrZT1fdCk6a2U9X3Q7dmFyIG50PUhlLmxlbmd0aDtrZT5udC8yJiYoa2U9bnQvMik7Zm9yKHZhciBKZT0wO0plPGtlOysrSmUpe3ZhciBvbj1wYXJzZUludChIZS5zdWJz'@; put 'dHIoMipKZSwyKSwxNik7aWYoRmUob24pKXJldHVybiBKZTtJZVtEZStKZV09b259cmV0dXJuIEplfWZ1bmN0aW9uIFNlKEllLEhlLERlLGtlKXtyZXR1cm4gamUoYXQoSGUsSWUubGVuZ3RoLURlKSxJZSxEZSxrZSl9ZnVuY3Rpb24gemUoSWUsSGUsRGUsa2Upe3JldHVybiBqZShmdW5jdGlv'@; put 'biB4ZShJZSl7Zm9yKHZhciBIZT1bXSxEZT0wO0RlPEllLmxlbmd0aDsrK0RlKUhlLnB1c2goMjU1JkllLmNoYXJDb2RlQXQoRGUpKTtyZXR1cm4gSGV9KEhlKSxJZSxEZSxrZSl9ZnVuY3Rpb24geihJZSxIZSxEZSxrZSl7cmV0dXJuIGplKHFlKEhlKSxJZSxEZSxrZSl9ZnVuY3Rpb24gZyhJ'@; put 'ZSxIZSxEZSxrZSl7cmV0dXJuIGplKGZ1bmN0aW9uIHZlKEllLEhlKXtmb3IodmFyIERlLGtlLG50PVtdLEplPTA7SmU8SWUubGVuZ3RoJiYhKChIZS09Mik8MCk7KytKZSlrZT0oRGU9SWUuY2hhckNvZGVBdChKZSkpPj44LG50LnB1c2goRGUlMjU2KSxudC5wdXNoKGtlKTtyZXR1cm4gbnR9'@; put 'KEhlLEllLmxlbmd0aC1EZSksSWUsRGUsa2UpfWZ1bmN0aW9uIHkoSWUsSGUsRGUpe3JldHVybiBELmZyb21CeXRlQXJyYXkoMD09PUhlJiZEZT09PUllLmxlbmd0aD9JZTpJZS5zbGljZShIZSxEZSkpfWZ1bmN0aW9uIHgoSWUsSGUsRGUpe0RlPU1hdGgubWluKEllLmxlbmd0aCxEZSk7Zm9y'@; put 'KHZhciBrZT1bXSxfdD1IZTtfdDxEZTspe3ZhciB5dCxNdCxJdCxydCxudD1JZVtfdF0sSmU9bnVsbCxvbj1udD4yMzk/NDpudD4yMjM/MzpudD4xOTE/MjoxO2lmKF90K29uPD1EZSlzd2l0Y2gob24pe2Nhc2UgMTpudDwxMjgmJihKZT1udCk7YnJlYWs7Y2FzZSAyOjEyOD09KDE5MiYoeXQ9'@; put 'SWVbX3QrMV0pKSYmKHJ0PSgzMSZudCk8PDZ8NjMmeXQpPjEyNyYmKEplPXJ0KTticmVhaztjYXNlIDM6TXQ9SWVbX3QrMl0sMTI4PT0oMTkyJih5dD1JZVtfdCsxXSkpJiYxMjg9PSgxOTImTXQpJiYocnQ9KDE1Jm50KTw8MTJ8KDYzJnl0KTw8Nnw2MyZNdCk+MjA0NyYmKHJ0PDU1Mjk2fHxy'@; put 'dD41NzM0MykmJihKZT1ydCk7YnJlYWs7Y2FzZSA0Ok10PUllW190KzJdLEl0PUllW190KzNdLDEyOD09KDE5MiYoeXQ9SWVbX3QrMV0pKSYmMTI4PT0oMTkyJk10KSYmMTI4PT0oMTkyJkl0KSYmKHJ0PSgxNSZudCk8PDE4fCg2MyZ5dCk8PDEyfCg2MyZNdCk8PDZ8NjMmSXQpPjY1NTM1JiZy'@; put 'dDwxMTE0MTEyJiYoSmU9cnQpfW51bGw9PT1KZT8oSmU9NjU1MzMsb249MSk6SmU+NjU1MzUmJihrZS5wdXNoKChKZS09NjU1MzYpPj4+MTAmMTAyM3w1NTI5NiksSmU9NTYzMjB8MTAyMyZKZSksa2UucHVzaChKZSksX3QrPW9ufXJldHVybiBmdW5jdGlvbiBUKEllKXt2YXIgSGU9SWUubGVu'@; put 'Z3RoO2lmKEhlPD1DKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyxJZSk7Zm9yKHZhciBEZT0iIixrZT0wO2tlPEhlOylEZSs9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsSWUuc2xpY2Uoa2Usa2UrPUMpKTtyZXR1cm4gRGV9KGtlKX1KLmtNYXhMZW5n'@; put 'dGg9TiwhKEguVFlQRURfQVJSQVlfU1VQUE9SVD1mdW5jdGlvbiB3KCl7dHJ5e3ZhciBJZT1uZXcgVWludDhBcnJheSgxKSxIZT17Zm9vOmZ1bmN0aW9uKCl7cmV0dXJuIDQyfX07cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZihIZSxVaW50OEFycmF5LnByb3RvdHlwZSksT2JqZWN0LnNl'@; put 'dFByb3RvdHlwZU9mKEllLEhlKSw0Mj09PUllLmZvbygpfWNhdGNoe3JldHVybiExfX0oKSkmJnR5cGVvZiBjb25zb2xlPCJ1IiYmImZ1bmN0aW9uIj09dHlwZW9mIGNvbnNvbGUuZXJyb3ImJmNvbnNvbGUuZXJyb3IoIlRoaXMgYnJvd3NlciBsYWNrcyB0eXBlZCBhcnJheSAoVWludDhBcnJh'@; put 'eSkgc3VwcG9ydCB3aGljaCBpcyByZXF1aXJlZCBieSBgYnVmZmVyYCB2NS54LiBVc2UgYGJ1ZmZlcmAgdjQueCBpZiB5b3UgcmVxdWlyZSBvbGQgYnJvd3NlciBzdXBwb3J0LiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShILnByb3RvdHlwZSwicGFyZW50Iix7ZW51bWVyYWJsZTohMCxnZXQ6'@; put 'ZnVuY3Rpb24oKXtpZihILmlzQnVmZmVyKHRoaXMpKXJldHVybiB0aGlzLmJ1ZmZlcn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSC5wcm90b3R5cGUsIm9mZnNldCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7aWYoSC5pc0J1ZmZlcih0aGlzKSlyZXR1cm4gdGhpcy5ieXRlT2Zm'@; put 'c2V0fX0pLEgucG9vbFNpemU9ODE5MixILmZyb209ZnVuY3Rpb24oSWUsSGUsRGUpe3JldHVybiBSKEllLEhlLERlKX0sT2JqZWN0LnNldFByb3RvdHlwZU9mKEgucHJvdG90eXBlLFVpbnQ4QXJyYXkucHJvdG90eXBlKSxPYmplY3Quc2V0UHJvdG90eXBlT2YoSCxVaW50OEFycmF5KSxILmFs'@; put 'bG9jPWZ1bmN0aW9uKEllLEhlLERlKXtyZXR1cm4gZnVuY3Rpb24gUChJZSxIZSxEZSl7cmV0dXJuIGooSWUpLEllPD0wP0YoSWUpOnZvaWQgMCE9PUhlPyJzdHJpbmciPT10eXBlb2YgRGU/RihJZSkuZmlsbChIZSxEZSk6RihJZSkuZmlsbChIZSk6RihJZSl9KEllLEhlLERlKX0sSC5hbGxv'@; put 'Y1Vuc2FmZT1mdW5jdGlvbihJZSl7cmV0dXJuIEwoSWUpfSxILmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbihJZSl7cmV0dXJuIEwoSWUpfSxILmlzQnVmZmVyPWZ1bmN0aW9uKEhlKXtyZXR1cm4gbnVsbCE9SGUmJiEwPT09SGUuX2lzQnVmZmVyJiZIZSE9PUgucHJvdG90eXBlfSxILmNvbXBh'@; put 'cmU9ZnVuY3Rpb24oSGUsRGUpe2lmKEFlKEhlLFVpbnQ4QXJyYXkpJiYoSGU9SC5mcm9tKEhlLEhlLm9mZnNldCxIZS5ieXRlTGVuZ3RoKSksQWUoRGUsVWludDhBcnJheSkmJihEZT1ILmZyb20oRGUsRGUub2Zmc2V0LERlLmJ5dGVMZW5ndGgpKSwhSC5pc0J1ZmZlcihIZSl8fCFILmlzQnVm'@; put 'ZmVyKERlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgImJ1ZjEiLCAiYnVmMiIgYXJndW1lbnRzIG11c3QgYmUgb25lIG9mIHR5cGUgQnVmZmVyIG9yIFVpbnQ4QXJyYXknKTtpZihIZT09PURlKXJldHVybiAwO2Zvcih2YXIga2U9SGUubGVuZ3RoLF90PURlLmxlbmd0aCxudD0wLEplPU1h'@; put 'dGgubWluKGtlLF90KTtudDxKZTsrK250KWlmKEhlW250XSE9PURlW250XSl7a2U9SGVbbnRdLF90PURlW250XTticmVha31yZXR1cm4ga2U8X3Q/LTE6X3Q8a2U/MTowfSxILmlzRW5jb2Rpbmc9ZnVuY3Rpb24oSGUpe3N3aXRjaChTdHJpbmcoSGUpLnRvTG93ZXJDYXNlKCkpe2Nhc2UiaGV4'@; put 'IjpjYXNlInV0ZjgiOmNhc2UidXRmLTgiOmNhc2UiYXNjaWkiOmNhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6Y2FzZSJiYXNlNjQiOmNhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX0sSC5jb25jYXQ9'@; put 'ZnVuY3Rpb24oSGUsRGUpe2lmKCFBcnJheS5pc0FycmF5KEhlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCcibGlzdCIgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzJyk7aWYoMD09PUhlLmxlbmd0aClyZXR1cm4gSC5hbGxvYygwKTt2YXIga2U7aWYodm9pZCAwPT09RGUpZm9y'@; put 'KERlPTAsa2U9MDtrZTxIZS5sZW5ndGg7KytrZSlEZSs9SGVba2VdLmxlbmd0aDt2YXIgX3Q9SC5hbGxvY1Vuc2FmZShEZSksbnQ9MDtmb3Ioa2U9MDtrZTxIZS5sZW5ndGg7KytrZSl7dmFyIEplPUhlW2tlXTtpZihBZShKZSxVaW50OEFycmF5KSludCtKZS5sZW5ndGg+X3QubGVuZ3RoP0gu'@; put 'ZnJvbShKZSkuY29weShfdCxudCk6VWludDhBcnJheS5wcm90b3R5cGUuc2V0LmNhbGwoX3QsSmUsbnQpO2Vsc2V7aWYoIUguaXNCdWZmZXIoSmUpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJsaXN0IiBhcmd1bWVudCBtdXN0IGJlIGFuIEFycmF5IG9mIEJ1ZmZlcnMnKTtKZS5jb3B5KF90LG50'@; put 'KX1udCs9SmUubGVuZ3RofXJldHVybiBfdH0sSC5ieXRlTGVuZ3RoPXRlLEgucHJvdG90eXBlLl9pc0J1ZmZlcj0hMCxILnByb3RvdHlwZS5zd2FwMTY9ZnVuY3Rpb24oKXt2YXIgSGU9dGhpcy5sZW5ndGg7aWYoSGUlMiE9MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVz'@; put 'dCBiZSBhIG11bHRpcGxlIG9mIDE2LWJpdHMiKTtmb3IodmFyIERlPTA7RGU8SGU7RGUrPTIpc2UodGhpcyxEZSxEZSsxKTtyZXR1cm4gdGhpc30sSC5wcm90b3R5cGUuc3dhcDMyPWZ1bmN0aW9uKCl7dmFyIEhlPXRoaXMubGVuZ3RoO2lmKEhlJTQhPTApdGhyb3cgbmV3IFJhbmdlRXJyb3Io'@; put 'IkJ1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAzMi1iaXRzIik7Zm9yKHZhciBEZT0wO0RlPEhlO0RlKz00KXNlKHRoaXMsRGUsRGUrMyksc2UodGhpcyxEZSsxLERlKzIpO3JldHVybiB0aGlzfSxILnByb3RvdHlwZS5zd2FwNjQ9ZnVuY3Rpb24oKXt2YXIgSGU9dGhpcy5sZW5n'@; put 'dGg7aWYoSGUlOCE9MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDY0LWJpdHMiKTtmb3IodmFyIERlPTA7RGU8SGU7RGUrPTgpc2UodGhpcyxEZSxEZSs3KSxzZSh0aGlzLERlKzEsRGUrNiksc2UodGhpcyxEZSsyLERlKzUpLHNlKHRo'@; put 'aXMsRGUrMyxEZSs0KTtyZXR1cm4gdGhpc30sSC5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmc9SC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgSGU9dGhpcy5sZW5ndGg7cmV0dXJuIDA9PT1IZT8iIjowPT09YXJndW1lbnRzLmxlbmd0aD94KHRoaXMsMCxIZSk6aWUuYXBwbHko'@; put 'dGhpcyxhcmd1bWVudHMpfSxILnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24oSGUpe2lmKCFILmlzQnVmZmVyKEhlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIik7cmV0dXJuIHRoaXM9PT1IZXx8MD09PUguY29tcGFyZSh0aGlzLEhlKX0sSC5wcm90'@; put 'b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3ZhciBIZT0iIixEZT1KLklOU1BFQ1RfTUFYX0JZVEVTO3JldHVybiBIZT10aGlzLnRvU3RyaW5nKCJoZXgiLDAsRGUpLnJlcGxhY2UoLyguezJ9KS9nLCIkMSAiKS50cmltKCksdGhpcy5sZW5ndGg+RGUmJihIZSs9IiAuLi4gIiksIjxCdWZmZXIg'@; put 'IitIZSsiPiJ9LHAmJihILnByb3RvdHlwZVtwXT1ILnByb3RvdHlwZS5pbnNwZWN0KSxILnByb3RvdHlwZS5jb21wYXJlPWZ1bmN0aW9uKEhlLERlLGtlLF90LG50KXtpZihBZShIZSxVaW50OEFycmF5KSYmKEhlPUguZnJvbShIZSxIZS5vZmZzZXQsSGUuYnl0ZUxlbmd0aCkpLCFILmlzQnVm'@; put 'ZmVyKEhlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInRhcmdldCIgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBCdWZmZXIgb3IgVWludDhBcnJheS4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiBIZSk7aWYodm9pZCAwPT09RGUmJihEZT0wKSx2b2lkIDA9PT1rZSYmKGtlPUhlP0hl'@; put 'Lmxlbmd0aDowKSx2b2lkIDA9PT1fdCYmKF90PTApLHZvaWQgMD09PW50JiYobnQ9dGhpcy5sZW5ndGgpLERlPDB8fGtlPkhlLmxlbmd0aHx8X3Q8MHx8bnQ+dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIm91dCBvZiByYW5nZSBpbmRleCIpO2lmKF90Pj1udCYmRGU+PWtlKXJl'@; put 'dHVybiAwO2lmKF90Pj1udClyZXR1cm4tMTtpZihEZT49a2UpcmV0dXJuIDE7aWYodGhpcz09PUhlKXJldHVybiAwO2Zvcih2YXIgSmU9KG50Pj4+PTApLShfdD4+Pj0wKSxvbj0oa2U+Pj49MCktKERlPj4+PTApLHl0PU1hdGgubWluKEplLG9uKSxNdD10aGlzLnNsaWNlKF90LG50KSxJdD1I'@; put 'ZS5zbGljZShEZSxrZSkscnQ9MDtydDx5dDsrK3J0KWlmKE10W3J0XSE9PUl0W3J0XSl7SmU9TXRbcnRdLG9uPUl0W3J0XTticmVha31yZXR1cm4gSmU8b24/LTE6b248SmU/MTowfSxILnByb3RvdHlwZS5pbmNsdWRlcz1mdW5jdGlvbihIZSxEZSxrZSl7cmV0dXJuLTEhPT10aGlzLmluZGV4'@; put 'T2YoSGUsRGUsa2UpfSxILnByb3RvdHlwZS5pbmRleE9mPWZ1bmN0aW9uKEhlLERlLGtlKXtyZXR1cm4gZ2UodGhpcyxIZSxEZSxrZSwhMCl9LEgucHJvdG90eXBlLmxhc3RJbmRleE9mPWZ1bmN0aW9uKEhlLERlLGtlKXtyZXR1cm4gZ2UodGhpcyxIZSxEZSxrZSwhMSl9LEgucHJvdG90eXBl'@; put 'LndyaXRlPWZ1bmN0aW9uKEhlLERlLGtlLF90KXtpZih2b2lkIDA9PT1EZSlfdD0idXRmOCIsa2U9dGhpcy5sZW5ndGgsRGU9MDtlbHNlIGlmKHZvaWQgMD09PWtlJiYic3RyaW5nIj09dHlwZW9mIERlKV90PURlLGtlPXRoaXMubGVuZ3RoLERlPTA7ZWxzZXtpZighaXNGaW5pdGUoRGUpKXRo'@; put 'cm93IG5ldyBFcnJvcigiQnVmZmVyLndyaXRlKHN0cmluZywgZW5jb2RpbmcsIG9mZnNldFssIGxlbmd0aF0pIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQiKTtEZT4+Pj0wLGlzRmluaXRlKGtlKT8oa2U+Pj49MCx2b2lkIDA9PT1fdCYmKF90PSJ1dGY4IikpOihfdD1rZSxrZT12b2lkIDApfXZh'@; put 'ciBudD10aGlzLmxlbmd0aC1EZTtpZigodm9pZCAwPT09a2V8fGtlPm50KSYmKGtlPW50KSxIZS5sZW5ndGg+MCYmKGtlPDB8fERlPDApfHxEZT50aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQXR0ZW1wdCB0byB3cml0ZSBvdXRzaWRlIGJ1ZmZlciBib3VuZHMiKTtfdHx8KF90'@; put 'PSJ1dGY4Iik7Zm9yKHZhciBKZT0hMTs7KXN3aXRjaChfdCl7Y2FzZSJoZXgiOnJldHVybiBUZSh0aGlzLEhlLERlLGtlKTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiBTZSh0aGlzLEhlLERlLGtlKTtjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiB6'@; put 'ZSh0aGlzLEhlLERlLGtlKTtjYXNlImJhc2U2NCI6cmV0dXJuIHoodGhpcyxIZSxEZSxrZSk7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiBnKHRoaXMsSGUsRGUsa2UpO2RlZmF1bHQ6aWYoSmUpdGhyb3cgbmV3IFR5cGVFcnJvcigi'@; put 'VW5rbm93biBlbmNvZGluZzogIitfdCk7X3Q9KCIiK190KS50b0xvd2VyQ2FzZSgpLEplPSEwfX0sSC5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6IkJ1ZmZlciIsZGF0YTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLl9hcnJ8fHRoaXMsMCl9fTt2YXIg'@; put 'Qz00MDk2O2Z1bmN0aW9uIFYoSWUsSGUsRGUpe3ZhciBrZT0iIjtEZT1NYXRoLm1pbihJZS5sZW5ndGgsRGUpO2Zvcih2YXIgX3Q9SGU7X3Q8RGU7KytfdClrZSs9U3RyaW5nLmZyb21DaGFyQ29kZSgxMjcmSWVbX3RdKTtyZXR1cm4ga2V9ZnVuY3Rpb24gVShJZSxIZSxEZSl7dmFyIGtlPSIi'@; put 'O0RlPU1hdGgubWluKEllLmxlbmd0aCxEZSk7Zm9yKHZhciBfdD1IZTtfdDxEZTsrK190KWtlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEllW190XSk7cmV0dXJuIGtlfWZ1bmN0aW9uIEUoSWUsSGUsRGUpe3ZhciBrZT1JZS5sZW5ndGg7KCFIZXx8SGU8MCkmJihIZT0wKSwoIURlfHxEZTwwfHxE'@; put 'ZT5rZSkmJihEZT1rZSk7Zm9yKHZhciBfdD0iIixudD1IZTtudDxEZTsrK250KV90Kz1SZVtJZVtudF1dO3JldHVybiBfdH1mdW5jdGlvbiBtKEllLEhlLERlKXtmb3IodmFyIGtlPUllLnNsaWNlKEhlLERlKSxfdD0iIixudD0wO250PGtlLmxlbmd0aC0xO250Kz0yKV90Kz1TdHJpbmcuZnJv'@; put 'bUNoYXJDb2RlKGtlW250XSsyNTYqa2VbbnQrMV0pO3JldHVybiBfdH1mdW5jdGlvbiBBKEllLEhlLERlKXtpZihJZSUxIT0wfHxJZTwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJvZmZzZXQgaXMgbm90IHVpbnQiKTtpZihJZStIZT5EZSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiVHJ5aW5nIHRv'@; put 'IGFjY2VzcyBiZXlvbmQgYnVmZmVyIGxlbmd0aCIpfWZ1bmN0aW9uIGFlKEllLEhlLERlLGtlLF90LG50KXtpZighSC5pc0J1ZmZlcihJZSkpdGhyb3cgbmV3IFR5cGVFcnJvcignImJ1ZmZlciIgYXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciBpbnN0YW5jZScpO2lmKEhlPl90fHxIZTxudCl0'@; put 'aHJvdyBuZXcgUmFuZ2VFcnJvcignInZhbHVlIiBhcmd1bWVudCBpcyBvdXQgb2YgYm91bmRzJyk7aWYoRGUra2U+SWUubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKX1mdW5jdGlvbiBuZShJZSxIZSxEZSxrZSxfdCxudCl7aWYoRGUra2U+SWUubGVu'@; put 'Z3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKTtpZihEZTwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKX1mdW5jdGlvbiBsZShJZSxIZSxEZSxrZSxfdCl7cmV0dXJuIEhlPStIZSxEZT4+Pj0wLF90fHxuZShJZSwwLERlLDQp'@; put 'LF8ud3JpdGUoSWUsSGUsRGUsa2UsMjMsNCksRGUrNH1mdW5jdGlvbiB3ZShJZSxIZSxEZSxrZSxfdCl7cmV0dXJuIEhlPStIZSxEZT4+Pj0wLF90fHxuZShJZSwwLERlLDgpLF8ud3JpdGUoSWUsSGUsRGUsa2UsNTIsOCksRGUrOH1ILnByb3RvdHlwZS5zbGljZT1mdW5jdGlvbihIZSxEZSl7'@; put 'dmFyIGtlPXRoaXMubGVuZ3RoOyhIZT1+fkhlKTwwPyhIZSs9a2UpPDAmJihIZT0wKTpIZT5rZSYmKEhlPWtlKSwoRGU9dm9pZCAwPT09RGU/a2U6fn5EZSk8MD8oRGUrPWtlKTwwJiYoRGU9MCk6RGU+a2UmJihEZT1rZSksRGU8SGUmJihEZT1IZSk7dmFyIF90PXRoaXMuc3ViYXJyYXkoSGUs'@; put 'RGUpO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YoX3QsSC5wcm90b3R5cGUpLF90fSxILnByb3RvdHlwZS5yZWFkVWludExFPUgucHJvdG90eXBlLnJlYWRVSW50TEU9ZnVuY3Rpb24oSGUsRGUsa2Upe0hlPj4+PTAsRGU+Pj49MCxrZXx8QShIZSxEZSx0aGlzLmxlbmd0aCk7Zm9yKHZh'@; put 'ciBfdD10aGlzW0hlXSxudD0xLEplPTA7KytKZTxEZSYmKG50Kj0yNTYpOylfdCs9dGhpc1tIZStKZV0qbnQ7cmV0dXJuIF90fSxILnByb3RvdHlwZS5yZWFkVWludEJFPUgucHJvdG90eXBlLnJlYWRVSW50QkU9ZnVuY3Rpb24oSGUsRGUsa2Upe0hlPj4+PTAsRGU+Pj49MCxrZXx8QShIZSxE'@; put 'ZSx0aGlzLmxlbmd0aCk7Zm9yKHZhciBfdD10aGlzW0hlKy0tRGVdLG50PTE7RGU+MCYmKG50Kj0yNTYpOylfdCs9dGhpc1tIZSstLURlXSpudDtyZXR1cm4gX3R9LEgucHJvdG90eXBlLnJlYWRVaW50OD1ILnByb3RvdHlwZS5yZWFkVUludDg9ZnVuY3Rpb24oSGUsRGUpe3JldHVybiBIZT4+'@; put 'Pj0wLERlfHxBKEhlLDEsdGhpcy5sZW5ndGgpLHRoaXNbSGVdfSxILnByb3RvdHlwZS5yZWFkVWludDE2TEU9SC5wcm90b3R5cGUucmVhZFVJbnQxNkxFPWZ1bmN0aW9uKEhlLERlKXtyZXR1cm4gSGU+Pj49MCxEZXx8QShIZSwyLHRoaXMubGVuZ3RoKSx0aGlzW0hlXXx0aGlzW0hlKzFdPDw4'@; put 'fSxILnByb3RvdHlwZS5yZWFkVWludDE2QkU9SC5wcm90b3R5cGUucmVhZFVJbnQxNkJFPWZ1bmN0aW9uKEhlLERlKXtyZXR1cm4gSGU+Pj49MCxEZXx8QShIZSwyLHRoaXMubGVuZ3RoKSx0aGlzW0hlXTw8OHx0aGlzW0hlKzFdfSxILnByb3RvdHlwZS5yZWFkVWludDMyTEU9SC5wcm90b3R5'@; put 'cGUucmVhZFVJbnQzMkxFPWZ1bmN0aW9uKEhlLERlKXtyZXR1cm4gSGU+Pj49MCxEZXx8QShIZSw0LHRoaXMubGVuZ3RoKSwodGhpc1tIZV18dGhpc1tIZSsxXTw8OHx0aGlzW0hlKzJdPDwxNikrMTY3NzcyMTYqdGhpc1tIZSszXX0sSC5wcm90b3R5cGUucmVhZFVpbnQzMkJFPUgucHJvdG90'@; put 'eXBlLnJlYWRVSW50MzJCRT1mdW5jdGlvbihIZSxEZSl7cmV0dXJuIEhlPj4+PTAsRGV8fEEoSGUsNCx0aGlzLmxlbmd0aCksMTY3NzcyMTYqdGhpc1tIZV0rKHRoaXNbSGUrMV08PDE2fHRoaXNbSGUrMl08PDh8dGhpc1tIZSszXSl9LEgucHJvdG90eXBlLnJlYWRJbnRMRT1mdW5jdGlvbihI'@; put 'ZSxEZSxrZSl7SGU+Pj49MCxEZT4+Pj0wLGtlfHxBKEhlLERlLHRoaXMubGVuZ3RoKTtmb3IodmFyIF90PXRoaXNbSGVdLG50PTEsSmU9MDsrK0plPERlJiYobnQqPTI1Nik7KV90Kz10aGlzW0hlK0plXSpudDtyZXR1cm4gX3Q+PShudCo9MTI4KSYmKF90LT1NYXRoLnBvdygyLDgqRGUpKSxf'@; put 'dH0sSC5wcm90b3R5cGUucmVhZEludEJFPWZ1bmN0aW9uKEhlLERlLGtlKXtIZT4+Pj0wLERlPj4+PTAsa2V8fEEoSGUsRGUsdGhpcy5sZW5ndGgpO2Zvcih2YXIgX3Q9RGUsbnQ9MSxKZT10aGlzW0hlKy0tX3RdO190PjAmJihudCo9MjU2KTspSmUrPXRoaXNbSGUrLS1fdF0qbnQ7cmV0dXJu'@; put 'IEplPj0obnQqPTEyOCkmJihKZS09TWF0aC5wb3coMiw4KkRlKSksSmV9LEgucHJvdG90eXBlLnJlYWRJbnQ4PWZ1bmN0aW9uKEhlLERlKXtyZXR1cm4gSGU+Pj49MCxEZXx8QShIZSwxLHRoaXMubGVuZ3RoKSwxMjgmdGhpc1tIZV0/LTEqKDI1NS10aGlzW0hlXSsxKTp0aGlzW0hlXX0sSC5w'@; put 'cm90b3R5cGUucmVhZEludDE2TEU9ZnVuY3Rpb24oSGUsRGUpe0hlPj4+PTAsRGV8fEEoSGUsMix0aGlzLmxlbmd0aCk7dmFyIGtlPXRoaXNbSGVdfHRoaXNbSGUrMV08PDg7cmV0dXJuIDMyNzY4JmtlPzQyOTQ5MDE3NjB8a2U6a2V9LEgucHJvdG90eXBlLnJlYWRJbnQxNkJFPWZ1bmN0aW9u'@; put 'KEhlLERlKXtIZT4+Pj0wLERlfHxBKEhlLDIsdGhpcy5sZW5ndGgpO3ZhciBrZT10aGlzW0hlKzFdfHRoaXNbSGVdPDw4O3JldHVybiAzMjc2OCZrZT80Mjk0OTAxNzYwfGtlOmtlfSxILnByb3RvdHlwZS5yZWFkSW50MzJMRT1mdW5jdGlvbihIZSxEZSl7cmV0dXJuIEhlPj4+PTAsRGV8fEEo'@; put 'SGUsNCx0aGlzLmxlbmd0aCksdGhpc1tIZV18dGhpc1tIZSsxXTw8OHx0aGlzW0hlKzJdPDwxNnx0aGlzW0hlKzNdPDwyNH0sSC5wcm90b3R5cGUucmVhZEludDMyQkU9ZnVuY3Rpb24oSGUsRGUpe3JldHVybiBIZT4+Pj0wLERlfHxBKEhlLDQsdGhpcy5sZW5ndGgpLHRoaXNbSGVdPDwyNHx0'@; put 'aGlzW0hlKzFdPDwxNnx0aGlzW0hlKzJdPDw4fHRoaXNbSGUrM119LEgucHJvdG90eXBlLnJlYWRGbG9hdExFPWZ1bmN0aW9uKEhlLERlKXtyZXR1cm4gSGU+Pj49MCxEZXx8QShIZSw0LHRoaXMubGVuZ3RoKSxfLnJlYWQodGhpcyxIZSwhMCwyMyw0KX0sSC5wcm90b3R5cGUucmVhZEZsb2F0'@; put 'QkU9ZnVuY3Rpb24oSGUsRGUpe3JldHVybiBIZT4+Pj0wLERlfHxBKEhlLDQsdGhpcy5sZW5ndGgpLF8ucmVhZCh0aGlzLEhlLCExLDIzLDQpfSxILnByb3RvdHlwZS5yZWFkRG91YmxlTEU9ZnVuY3Rpb24oSGUsRGUpe3JldHVybiBIZT4+Pj0wLERlfHxBKEhlLDgsdGhpcy5sZW5ndGgpLF8u'@; put 'cmVhZCh0aGlzLEhlLCEwLDUyLDgpfSxILnByb3RvdHlwZS5yZWFkRG91YmxlQkU9ZnVuY3Rpb24oSGUsRGUpe3JldHVybiBIZT4+Pj0wLERlfHxBKEhlLDgsdGhpcy5sZW5ndGgpLF8ucmVhZCh0aGlzLEhlLCExLDUyLDgpfSxILnByb3RvdHlwZS53cml0ZVVpbnRMRT1ILnByb3RvdHlwZS53'@; put 'cml0ZVVJbnRMRT1mdW5jdGlvbihIZSxEZSxrZSxfdCl7SGU9K0hlLERlPj4+PTAsa2U+Pj49MCxfdHx8YWUodGhpcyxIZSxEZSxrZSxNYXRoLnBvdygyLDgqa2UpLTEsMCk7dmFyIEplPTEsb249MDtmb3IodGhpc1tEZV09MjU1JkhlOysrb248a2UmJihKZSo9MjU2KTspdGhpc1tEZStvbl09'@; put 'SGUvSmUmMjU1O3JldHVybiBEZStrZX0sSC5wcm90b3R5cGUud3JpdGVVaW50QkU9SC5wcm90b3R5cGUud3JpdGVVSW50QkU9ZnVuY3Rpb24oSGUsRGUsa2UsX3Qpe0hlPStIZSxEZT4+Pj0wLGtlPj4+PTAsX3R8fGFlKHRoaXMsSGUsRGUsa2UsTWF0aC5wb3coMiw4KmtlKS0xLDApO3ZhciBK'@; put 'ZT1rZS0xLG9uPTE7Zm9yKHRoaXNbRGUrSmVdPTI1NSZIZTstLUplPj0wJiYob24qPTI1Nik7KXRoaXNbRGUrSmVdPUhlL29uJjI1NTtyZXR1cm4gRGUra2V9LEgucHJvdG90eXBlLndyaXRlVWludDg9SC5wcm90b3R5cGUud3JpdGVVSW50OD1mdW5jdGlvbihIZSxEZSxrZSl7cmV0dXJuIEhl'@; put 'PStIZSxEZT4+Pj0wLGtlfHxhZSh0aGlzLEhlLERlLDEsMjU1LDApLHRoaXNbRGVdPTI1NSZIZSxEZSsxfSxILnByb3RvdHlwZS53cml0ZVVpbnQxNkxFPUgucHJvdG90eXBlLndyaXRlVUludDE2TEU9ZnVuY3Rpb24oSGUsRGUsa2Upe3JldHVybiBIZT0rSGUsRGU+Pj49MCxrZXx8YWUodGhp'@; put 'cyxIZSxEZSwyLDY1NTM1LDApLHRoaXNbRGVdPTI1NSZIZSx0aGlzW0RlKzFdPUhlPj4+OCxEZSsyfSxILnByb3RvdHlwZS53cml0ZVVpbnQxNkJFPUgucHJvdG90eXBlLndyaXRlVUludDE2QkU9ZnVuY3Rpb24oSGUsRGUsa2Upe3JldHVybiBIZT0rSGUsRGU+Pj49MCxrZXx8YWUodGhpcyxI'@; put 'ZSxEZSwyLDY1NTM1LDApLHRoaXNbRGVdPUhlPj4+OCx0aGlzW0RlKzFdPTI1NSZIZSxEZSsyfSxILnByb3RvdHlwZS53cml0ZVVpbnQzMkxFPUgucHJvdG90eXBlLndyaXRlVUludDMyTEU9ZnVuY3Rpb24oSGUsRGUsa2Upe3JldHVybiBIZT0rSGUsRGU+Pj49MCxrZXx8YWUodGhpcyxIZSxE'@; put 'ZSw0LDQyOTQ5NjcyOTUsMCksdGhpc1tEZSszXT1IZT4+PjI0LHRoaXNbRGUrMl09SGU+Pj4xNix0aGlzW0RlKzFdPUhlPj4+OCx0aGlzW0RlXT0yNTUmSGUsRGUrNH0sSC5wcm90b3R5cGUud3JpdGVVaW50MzJCRT1ILnByb3RvdHlwZS53cml0ZVVJbnQzMkJFPWZ1bmN0aW9uKEhlLERlLGtl'@; put 'KXtyZXR1cm4gSGU9K0hlLERlPj4+PTAsa2V8fGFlKHRoaXMsSGUsRGUsNCw0Mjk0OTY3Mjk1LDApLHRoaXNbRGVdPUhlPj4+MjQsdGhpc1tEZSsxXT1IZT4+PjE2LHRoaXNbRGUrMl09SGU+Pj44LHRoaXNbRGUrM109MjU1JkhlLERlKzR9LEgucHJvdG90eXBlLndyaXRlSW50TEU9ZnVuY3Rp'@; put 'b24oSGUsRGUsa2UsX3Qpe2lmKEhlPStIZSxEZT4+Pj0wLCFfdCl7dmFyIG50PU1hdGgucG93KDIsOCprZS0xKTthZSh0aGlzLEhlLERlLGtlLG50LTEsLW50KX12YXIgSmU9MCxvbj0xLHl0PTA7Zm9yKHRoaXNbRGVdPTI1NSZIZTsrK0plPGtlJiYob24qPTI1Nik7KUhlPDAmJjA9PT15dCYm'@; put 'MCE9PXRoaXNbRGUrSmUtMV0mJih5dD0xKSx0aGlzW0RlK0plXT0oSGUvb258MCkteXQmMjU1O3JldHVybiBEZStrZX0sSC5wcm90b3R5cGUud3JpdGVJbnRCRT1mdW5jdGlvbihIZSxEZSxrZSxfdCl7aWYoSGU9K0hlLERlPj4+PTAsIV90KXt2YXIgbnQ9TWF0aC5wb3coMiw4KmtlLTEpO2Fl'@; put 'KHRoaXMsSGUsRGUsa2UsbnQtMSwtbnQpfXZhciBKZT1rZS0xLG9uPTEseXQ9MDtmb3IodGhpc1tEZStKZV09MjU1JkhlOy0tSmU+PTAmJihvbio9MjU2KTspSGU8MCYmMD09PXl0JiYwIT09dGhpc1tEZStKZSsxXSYmKHl0PTEpLHRoaXNbRGUrSmVdPShIZS9vbnwwKS15dCYyNTU7cmV0dXJu'@; put 'IERlK2tlfSxILnByb3RvdHlwZS53cml0ZUludDg9ZnVuY3Rpb24oSGUsRGUsa2Upe3JldHVybiBIZT0rSGUsRGU+Pj49MCxrZXx8YWUodGhpcyxIZSxEZSwxLDEyNywtMTI4KSxIZTwwJiYoSGU9MjU1K0hlKzEpLHRoaXNbRGVdPTI1NSZIZSxEZSsxfSxILnByb3RvdHlwZS53cml0ZUludDE2'@; put 'TEU9ZnVuY3Rpb24oSGUsRGUsa2Upe3JldHVybiBIZT0rSGUsRGU+Pj49MCxrZXx8YWUodGhpcyxIZSxEZSwyLDMyNzY3LC0zMjc2OCksdGhpc1tEZV09MjU1JkhlLHRoaXNbRGUrMV09SGU+Pj44LERlKzJ9LEgucHJvdG90eXBlLndyaXRlSW50MTZCRT1mdW5jdGlvbihIZSxEZSxrZSl7cmV0'@; put 'dXJuIEhlPStIZSxEZT4+Pj0wLGtlfHxhZSh0aGlzLEhlLERlLDIsMzI3NjcsLTMyNzY4KSx0aGlzW0RlXT1IZT4+PjgsdGhpc1tEZSsxXT0yNTUmSGUsRGUrMn0sSC5wcm90b3R5cGUud3JpdGVJbnQzMkxFPWZ1bmN0aW9uKEhlLERlLGtlKXtyZXR1cm4gSGU9K0hlLERlPj4+PTAsa2V8fGFl'@; put 'KHRoaXMsSGUsRGUsNCwyMTQ3NDgzNjQ3LC0yMTQ3NDgzNjQ4KSx0aGlzW0RlXT0yNTUmSGUsdGhpc1tEZSsxXT1IZT4+PjgsdGhpc1tEZSsyXT1IZT4+PjE2LHRoaXNbRGUrM109SGU+Pj4yNCxEZSs0fSxILnByb3RvdHlwZS53cml0ZUludDMyQkU9ZnVuY3Rpb24oSGUsRGUsa2Upe3JldHVy'@; put 'biBIZT0rSGUsRGU+Pj49MCxrZXx8YWUodGhpcyxIZSxEZSw0LDIxNDc0ODM2NDcsLTIxNDc0ODM2NDgpLEhlPDAmJihIZT00Mjk0OTY3Mjk1K0hlKzEpLHRoaXNbRGVdPUhlPj4+MjQsdGhpc1tEZSsxXT1IZT4+PjE2LHRoaXNbRGUrMl09SGU+Pj44LHRoaXNbRGUrM109MjU1JkhlLERlKzR9'@; put 'LEgucHJvdG90eXBlLndyaXRlRmxvYXRMRT1mdW5jdGlvbihIZSxEZSxrZSl7cmV0dXJuIGxlKHRoaXMsSGUsRGUsITAsa2UpfSxILnByb3RvdHlwZS53cml0ZUZsb2F0QkU9ZnVuY3Rpb24oSGUsRGUsa2Upe3JldHVybiBsZSh0aGlzLEhlLERlLCExLGtlKX0sSC5wcm90b3R5cGUud3JpdGVE'@; put 'b3VibGVMRT1mdW5jdGlvbihIZSxEZSxrZSl7cmV0dXJuIHdlKHRoaXMsSGUsRGUsITAsa2UpfSxILnByb3RvdHlwZS53cml0ZURvdWJsZUJFPWZ1bmN0aW9uKEhlLERlLGtlKXtyZXR1cm4gd2UodGhpcyxIZSxEZSwhMSxrZSl9LEgucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24oSGUsRGUsa2Us'@; put 'X3Qpe2lmKCFILmlzQnVmZmVyKEhlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhcmd1bWVudCBzaG91bGQgYmUgYSBCdWZmZXIiKTtpZihrZXx8KGtlPTApLCFfdCYmMCE9PV90JiYoX3Q9dGhpcy5sZW5ndGgpLERlPj1IZS5sZW5ndGgmJihEZT1IZS5sZW5ndGgpLERlfHwoRGU9MCksX3Q+MCYm'@; put 'X3Q8a2UmJihfdD1rZSksX3Q9PT1rZXx8MD09PUhlLmxlbmd0aHx8MD09PXRoaXMubGVuZ3RoKXJldHVybiAwO2lmKERlPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoInRhcmdldFN0YXJ0IG91dCBvZiBib3VuZHMiKTtpZihrZTwwfHxrZT49dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJy'@; put 'b3IoIkluZGV4IG91dCBvZiByYW5nZSIpO2lmKF90PDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoInNvdXJjZUVuZCBvdXQgb2YgYm91bmRzIik7X3Q+dGhpcy5sZW5ndGgmJihfdD10aGlzLmxlbmd0aCksSGUubGVuZ3RoLURlPF90LWtlJiYoX3Q9SGUubGVuZ3RoLURlK2tlKTt2YXIgbnQ9X3Qt'@; put 'a2U7cmV0dXJuIHRoaXM9PT1IZSYmImZ1bmN0aW9uIj09dHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4/dGhpcy5jb3B5V2l0aGluKERlLGtlLF90KTpVaW50OEFycmF5LnByb3RvdHlwZS5zZXQuY2FsbChIZSx0aGlzLnN1YmFycmF5KGtlLF90KSxEZSksbnR9LEgucHJv'@; put 'dG90eXBlLmZpbGw9ZnVuY3Rpb24oSGUsRGUsa2UsX3Qpe2lmKCJzdHJpbmciPT10eXBlb2YgSGUpe2lmKCJzdHJpbmciPT10eXBlb2YgRGU/KF90PURlLERlPTAsa2U9dGhpcy5sZW5ndGgpOiJzdHJpbmciPT10eXBlb2Yga2UmJihfdD1rZSxrZT10aGlzLmxlbmd0aCksdm9pZCAwIT09X3Qm'@; put 'JiJzdHJpbmciIT10eXBlb2YgX3QpdGhyb3cgbmV3IFR5cGVFcnJvcigiZW5jb2RpbmcgbXVzdCBiZSBhIHN0cmluZyIpO2lmKCJzdHJpbmciPT10eXBlb2YgX3QmJiFILmlzRW5jb2RpbmcoX3QpKXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrX3QpO2lmKDE9PT1I'@; put 'ZS5sZW5ndGgpe3ZhciBudD1IZS5jaGFyQ29kZUF0KDApOygidXRmOCI9PT1fdCYmbnQ8MTI4fHwibGF0aW4xIj09PV90KSYmKEhlPW50KX19ZWxzZSJudW1iZXIiPT10eXBlb2YgSGU/SGUmPTI1NToiYm9vbGVhbiI9PXR5cGVvZiBIZSYmKEhlPU51bWJlcihIZSkpO2lmKERlPDB8fHRoaXMu'@; put 'bGVuZ3RoPERlfHx0aGlzLmxlbmd0aDxrZSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiT3V0IG9mIHJhbmdlIGluZGV4Iik7aWYoa2U8PURlKXJldHVybiB0aGlzO3ZhciBKZTtpZihEZT4+Pj0wLGtlPXZvaWQgMD09PWtlP3RoaXMubGVuZ3RoOmtlPj4+MCxIZXx8KEhlPTApLCJudW1iZXIiPT10'@; put 'eXBlb2YgSGUpZm9yKEplPURlO0plPGtlOysrSmUpdGhpc1tKZV09SGU7ZWxzZXt2YXIgb249SC5pc0J1ZmZlcihIZSk/SGU6SC5mcm9tKEhlLF90KSx5dD1vbi5sZW5ndGg7aWYoMD09PXl0KXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSB2YWx1ZSAiJytIZSsnIiBpcyBpbnZhbGlkIGZvciBh'@; put 'cmd1bWVudCAidmFsdWUiJyk7Zm9yKEplPTA7SmU8a2UtRGU7KytKZSl0aGlzW0plK0RlXT1vbltKZSV5dF19cmV0dXJuIHRoaXN9O3ZhciBaZT0vW14rLzAtOUEtWmEtei1fXS9nO2Z1bmN0aW9uIGF0KEllLEhlKXtIZT1IZXx8MS8wO2Zvcih2YXIgRGUsa2U9SWUubGVuZ3RoLF90PW51bGws'@; put 'bnQ9W10sSmU9MDtKZTxrZTsrK0plKXtpZigoRGU9SWUuY2hhckNvZGVBdChKZSkpPjU1Mjk1JiZEZTw1NzM0NCl7aWYoIV90KXtpZihEZT41NjMxOSl7KEhlLT0zKT4tMSYmbnQucHVzaCgyMzksMTkxLDE4OSk7Y29udGludWV9aWYoSmUrMT09PWtlKXsoSGUtPTMpPi0xJiZudC5wdXNoKDIz'@; put 'OSwxOTEsMTg5KTtjb250aW51ZX1fdD1EZTtjb250aW51ZX1pZihEZTw1NjMyMCl7KEhlLT0zKT4tMSYmbnQucHVzaCgyMzksMTkxLDE4OSksX3Q9RGU7Y29udGludWV9RGU9NjU1MzYrKF90LTU1Mjk2PDwxMHxEZS01NjMyMCl9ZWxzZSBfdCYmKEhlLT0zKT4tMSYmbnQucHVzaCgyMzksMTkx'@; put 'LDE4OSk7aWYoX3Q9bnVsbCxEZTwxMjgpe2lmKChIZS09MSk8MClicmVhaztudC5wdXNoKERlKX1lbHNlIGlmKERlPDIwNDgpe2lmKChIZS09Mik8MClicmVhaztudC5wdXNoKERlPj42fDE5Miw2MyZEZXwxMjgpfWVsc2UgaWYoRGU8NjU1MzYpe2lmKChIZS09Myk8MClicmVhaztudC5wdXNo'@; put 'KERlPj4xMnwyMjQsRGU+PjYmNjN8MTI4LDYzJkRlfDEyOCl9ZWxzZXtpZighKERlPDExMTQxMTIpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBjb2RlIHBvaW50Iik7aWYoKEhlLT00KTwwKWJyZWFrO250LnB1c2goRGU+PjE4fDI0MCxEZT4+MTImNjN8MTI4LERlPj42JjYzfDEyOCw2MyZE'@; put 'ZXwxMjgpfX1yZXR1cm4gbnR9ZnVuY3Rpb24gcWUoSWUpe3JldHVybiBELnRvQnl0ZUFycmF5KGZ1bmN0aW9uIFFlKEllKXtpZigoSWU9KEllPUllLnNwbGl0KCI9IilbMF0pLnRyaW0oKS5yZXBsYWNlKFplLCIiKSkubGVuZ3RoPDIpcmV0dXJuIiI7Zm9yKDtJZS5sZW5ndGglNCE9MDspSWUr'@; put 'PSI9IjtyZXR1cm4gSWV9KEllKSl9ZnVuY3Rpb24gamUoSWUsSGUsRGUsa2Upe2Zvcih2YXIgX3Q9MDtfdDxrZSYmIShfdCtEZT49SGUubGVuZ3RofHxfdD49SWUubGVuZ3RoKTsrK190KUhlW190K0RlXT1JZVtfdF07cmV0dXJuIF90fWZ1bmN0aW9uIEFlKEllLEhlKXtyZXR1cm4gSWUgaW5z'@; put 'dGFuY2VvZiBIZXx8bnVsbCE9SWUmJm51bGwhPUllLmNvbnN0cnVjdG9yJiZudWxsIT1JZS5jb25zdHJ1Y3Rvci5uYW1lJiZJZS5jb25zdHJ1Y3Rvci5uYW1lPT09SGUubmFtZX1mdW5jdGlvbiBGZShJZSl7cmV0dXJuIEllIT1JZX12YXIgUmU9ZnVuY3Rpb24oKXtmb3IodmFyIEllPSIwMTIz'@; put 'NDU2Nzg5YWJjZGVmIixIZT1uZXcgQXJyYXkoMjU2KSxEZT0wO0RlPDE2OysrRGUpZm9yKHZhciBrZT0xNipEZSxfdD0wO190PDE2OysrX3QpSGVba2UrX3RdPUllW0RlXStJZVtfdF07cmV0dXJuIEhlfSgpfSw5NTczMTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDY1OTkyKSxf'@; put 'PWIoNzk0NzcpLHA9Yig1OTcwNSksTj1iKDUyOTEwKTtjZS5leHBvcnRzPU58fEQuY2FsbChwLF8pfSw5ODkxMDooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDY1OTkyKSxfPWIoNzk0NzcpLHA9Yig5NTczMSk7Y2UuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybiBwKEQsXyxhcmd1'@; put 'bWVudHMpfX0sNzk0Nzc6Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz1GdW5jdGlvbi5wcm90b3R5cGUuYXBwbHl9LDU5NzA1OmNlPT57InVzZSBzdHJpY3QiO2NlLmV4cG9ydHM9RnVuY3Rpb24ucHJvdG90eXBlLmNhbGx9LDYxODg1OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBE'@; put 'PWIoNjU5OTIpLF89Yig0Njc1OCkscD1iKDU5NzA1KSxOPWIoOTU3MzEpO2NlLmV4cG9ydHM9ZnVuY3Rpb24oRil7aWYoRi5sZW5ndGg8MXx8ImZ1bmN0aW9uIiE9dHlwZW9mIEZbMF0pdGhyb3cgbmV3IF8oImEgZnVuY3Rpb24gaXMgcmVxdWlyZWQiKTtyZXR1cm4gTihELHAsRil9fSw1Mjkx'@; put 'MDpjZT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPXR5cGVvZiBSZWZsZWN0PCJ1IiYmUmVmbGVjdCYmUmVmbGVjdC5hcHBseX0sNDgxMjg6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigzMTM1OCksXz1iKDQ1NzApLHA9Yig2MTg4NSksTj1iKDk4OTEwKTtjZS5leHBvcnRzPWZ1'@; put 'bmN0aW9uKEYpe3ZhciBIPXAoYXJndW1lbnRzKSxSPUYubGVuZ3RoLShhcmd1bWVudHMubGVuZ3RoLTEpO3JldHVybiBEKEgsMSsoUj4wP1I6MCksITApfSxfP18oY2UuZXhwb3J0cywiYXBwbHkiLHt2YWx1ZTpOfSk6Y2UuZXhwb3J0cy5hcHBseT1OfSwxMjc3MzooY2UsSixiKT0+eyJ1c2Ug'@; put 'c3RyaWN0Ijt2YXIgRD1iKDkwMjU4KSxfPWIoNjE4ODUpLHA9XyhbRCgiJVN0cmluZy5wcm90b3R5cGUuaW5kZXhPZiUiKV0pO2NlLmV4cG9ydHM9ZnVuY3Rpb24odyxGKXt2YXIgSD1EKHcsISFGKTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgSCYmcCh3LCIucHJvdG90eXBlLiIpPi0xP18o'@; put 'W0hdKTpIfX0sMzI0NzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDI3MDU0KS5CdWZmZXIsXz1iKDcwNDUpLlRyYW5zZm9ybSxwPWIoNzg0NTQpLkk7ZnVuY3Rpb24gdyhqKXtfLmNhbGwodGhpcyksdGhpcy5oYXNoTW9kZT0ic3RyaW5nIj09dHlwZW9mIGosdGhpcy5oYXNoTW9k'@; put 'ZT90aGlzW2pdPXRoaXMuX2ZpbmFsT3JEaWdlc3Q6dGhpcy5maW5hbD10aGlzLl9maW5hbE9yRGlnZXN0LHRoaXMuX2ZpbmFsJiYodGhpcy5fX2ZpbmFsPXRoaXMuX2ZpbmFsLHRoaXMuX2ZpbmFsPW51bGwpLHRoaXMuX2RlY29kZXI9bnVsbCx0aGlzLl9lbmNvZGluZz1udWxsfWIoNzE5OTMp'@; put 'KHcsXyk7dmFyIEY9dHlwZW9mIFVpbnQ4QXJyYXk8InUiLEg9dHlwZW9mIEFycmF5QnVmZmVyPCJ1IiYmdHlwZW9mIFVpbnQ4QXJyYXk8InUiJiZBcnJheUJ1ZmZlci5pc1ZpZXcmJihELnByb3RvdHlwZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl8fEQuVFlQRURfQVJSQVlfU1VQUE9SVCk7dy5w'@; put 'cm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGosUCxMKXt2YXIgWT1mdW5jdGlvbiBSKGosUCl7aWYoaiBpbnN0YW5jZW9mIEQpcmV0dXJuIGo7aWYoInN0cmluZyI9PXR5cGVvZiBqKXJldHVybiBELmZyb20oaixQKTtpZihIJiZBcnJheUJ1ZmZlci5pc1ZpZXcoaikpe2lmKDA9PT1qLmJ5dGVM'@; put 'ZW5ndGgpcmV0dXJuIEQuYWxsb2MoMCk7dmFyIEw9RC5mcm9tKGouYnVmZmVyLGouYnl0ZU9mZnNldCxqLmJ5dGVMZW5ndGgpO2lmKEwuYnl0ZUxlbmd0aD09PWouYnl0ZUxlbmd0aClyZXR1cm4gTH1pZihGJiZqIGluc3RhbmNlb2YgVWludDhBcnJheXx8RC5pc0J1ZmZlcihqKSYmai5jb25z'@; put 'dHJ1Y3RvciYmImZ1bmN0aW9uIj09dHlwZW9mIGouY29uc3RydWN0b3IuaXNCdWZmZXImJmouY29uc3RydWN0b3IuaXNCdWZmZXIoaikpcmV0dXJuIEQuZnJvbShqKTt0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgImRhdGEiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBzdHJpbmcgb3IgYW4g'@; put 'aW5zdGFuY2Ugb2YgQnVmZmVyLCBUeXBlZEFycmF5LCBvciBEYXRhVmlldy4nKX0oaixQKSxCPXRoaXMuX3VwZGF0ZShZKTtyZXR1cm4gdGhpcy5oYXNoTW9kZT90aGlzOihMJiYoQj10aGlzLl90b1N0cmluZyhCLEwpKSxCKX0sdy5wcm90b3R5cGUuc2V0QXV0b1BhZGRpbmc9ZnVuY3Rpb24o'@; put 'KXt9LHcucHJvdG90eXBlLmdldEF1dGhUYWc9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoInRyeWluZyB0byBnZXQgYXV0aCB0YWcgaW4gdW5zdXBwb3J0ZWQgc3RhdGUiKX0sdy5wcm90b3R5cGUuc2V0QXV0aFRhZz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigidHJ5aW5nIHRvIHNl'@; put 'dCBhdXRoIHRhZyBpbiB1bnN1cHBvcnRlZCBzdGF0ZSIpfSx3LnByb3RvdHlwZS5zZXRBQUQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoInRyeWluZyB0byBzZXQgYWFkIGluIHVuc3VwcG9ydGVkIHN0YXRlIil9LHcucHJvdG90eXBlLl90cmFuc2Zvcm09ZnVuY3Rpb24oaixQLEwpe3Zh'@; put 'ciBZO3RyeXt0aGlzLmhhc2hNb2RlP3RoaXMuX3VwZGF0ZShqKTp0aGlzLnB1c2godGhpcy5fdXBkYXRlKGopKX1jYXRjaChCKXtZPUJ9ZmluYWxseXtMKFkpfX0sdy5wcm90b3R5cGUuX2ZsdXNoPWZ1bmN0aW9uKGope3ZhciBQO3RyeXt0aGlzLnB1c2godGhpcy5fX2ZpbmFsKCkpfWNhdGNo'@; put 'KEwpe1A9TH1qKFApfSx3LnByb3RvdHlwZS5fZmluYWxPckRpZ2VzdD1mdW5jdGlvbihqKXt2YXIgUD10aGlzLl9fZmluYWwoKXx8RC5hbGxvYygwKTtyZXR1cm4gaiYmKFA9dGhpcy5fdG9TdHJpbmcoUCxqLCEwKSksUH0sdy5wcm90b3R5cGUuX3RvU3RyaW5nPWZ1bmN0aW9uKGosUCxMKXtp'@; put 'Zih0aGlzLl9kZWNvZGVyfHwodGhpcy5fZGVjb2Rlcj1uZXcgcChQKSx0aGlzLl9lbmNvZGluZz1QKSx0aGlzLl9lbmNvZGluZyE9PVApdGhyb3cgbmV3IEVycm9yKCJjYW5cdTIwMTl0IHN3aXRjaCBlbmNvZGluZ3MiKTt2YXIgWT10aGlzLl9kZWNvZGVyLndyaXRlKGopO3JldHVybiBMJiYo'@; put 'WSs9dGhpcy5fZGVjb2Rlci5lbmQoKSksWX0sY2UuZXhwb3J0cz13fSwyNzYzNzooY2UsSixiKT0+e2Z1bmN0aW9uIFooWCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChYKX1KLmlzQXJyYXk9ZnVuY3Rpb24gRChYKXtyZXR1cm4gQXJyYXkuaXNBcnJheT9BcnJheS5p'@; put 'c0FycmF5KFgpOiJbb2JqZWN0IEFycmF5XSI9PT1aKFgpfSxKLmlzQm9vbGVhbj1mdW5jdGlvbiBfKFgpe3JldHVybiJib29sZWFuIj09dHlwZW9mIFh9LEouaXNOdWxsPWZ1bmN0aW9uIHAoWCl7cmV0dXJuIG51bGw9PT1YfSxKLmlzTnVsbE9yVW5kZWZpbmVkPWZ1bmN0aW9uIE4oWCl7cmV0'@; put 'dXJuIG51bGw9PVh9LEouaXNOdW1iZXI9ZnVuY3Rpb24gdyhYKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIFh9LEouaXNTdHJpbmc9ZnVuY3Rpb24gRihYKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIFh9LEouaXNTeW1ib2w9ZnVuY3Rpb24gSChYKXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIFh9'@; put 'LEouaXNVbmRlZmluZWQ9ZnVuY3Rpb24gUihYKXtyZXR1cm4gdm9pZCAwPT09WH0sSi5pc1JlZ0V4cD1mdW5jdGlvbiBqKFgpe3JldHVybiJbb2JqZWN0IFJlZ0V4cF0iPT09WihYKX0sSi5pc09iamVjdD1mdW5jdGlvbiBQKFgpe3JldHVybiJvYmplY3QiPT10eXBlb2YgWCYmbnVsbCE9PVh9'@; put 'LEouaXNEYXRlPWZ1bmN0aW9uIEwoWCl7cmV0dXJuIltvYmplY3QgRGF0ZV0iPT09WihYKX0sSi5pc0Vycm9yPWZ1bmN0aW9uIFkoWCl7cmV0dXJuIltvYmplY3QgRXJyb3JdIj09PVooWCl8fFggaW5zdGFuY2VvZiBFcnJvcn0sSi5pc0Z1bmN0aW9uPWZ1bmN0aW9uIEIoWCl7cmV0dXJuImZ1'@; put 'bmN0aW9uIj09dHlwZW9mIFh9LEouaXNQcmltaXRpdmU9ZnVuY3Rpb24gVyhYKXtyZXR1cm4gbnVsbD09PVh8fCJib29sZWFuIj09dHlwZW9mIFh8fCJudW1iZXIiPT10eXBlb2YgWHx8InN0cmluZyI9PXR5cGVvZiBYfHwic3ltYm9sIj09dHlwZW9mIFh8fHR5cGVvZiBYPiJ1In0sSi5pc0J1'@; put 'ZmZlcj1iKDgzODM4KS5CdWZmZXIuaXNCdWZmZXJ9LDg3MzAzOihjZSxKLGIpPT57dmFyIEQ9Yig5MDUxOCksXz1iKDg5NjA2KTtjZS5leHBvcnRzPWZ1bmN0aW9uKEgpe3JldHVybiBuZXcgTihIKX07dmFyIHA9e3NlY3AyNTZrMTp7bmFtZToic2VjcDI1NmsxIixieXRlTGVuZ3RoOjMyfSxz'@; put 'ZWNwMjI0cjE6e25hbWU6InAyMjQiLGJ5dGVMZW5ndGg6Mjh9LHByaW1lMjU2djE6e25hbWU6InAyNTYiLGJ5dGVMZW5ndGg6MzJ9LHByaW1lMTkydjE6e25hbWU6InAxOTIiLGJ5dGVMZW5ndGg6MjR9LGVkMjU1MTk6e25hbWU6ImVkMjU1MTkiLGJ5dGVMZW5ndGg6MzJ9LHNlY3AzODRyMTp7'@; put 'bmFtZToicDM4NCIsYnl0ZUxlbmd0aDo0OH0sc2VjcDUyMXIxOntuYW1lOiJwNTIxIixieXRlTGVuZ3RoOjY2fX07ZnVuY3Rpb24gTihGKXt0aGlzLmN1cnZlVHlwZT1wW0ZdLHRoaXMuY3VydmVUeXBlfHwodGhpcy5jdXJ2ZVR5cGU9e25hbWU6Rn0pLHRoaXMuY3VydmU9bmV3IEQuZWModGhp'@; put 'cy5jdXJ2ZVR5cGUubmFtZSksdGhpcy5rZXlzPXZvaWQgMH1mdW5jdGlvbiB3KEYsSCxSKXtBcnJheS5pc0FycmF5KEYpfHwoRj1GLnRvQXJyYXkoKSk7dmFyIGo9bmV3IEJ1ZmZlcihGKTtpZihSJiZqLmxlbmd0aDxSKXt2YXIgUD1uZXcgQnVmZmVyKFItai5sZW5ndGgpO1AuZmlsbCgwKSxq'@; put 'PUJ1ZmZlci5jb25jYXQoW1Asal0pfXJldHVybiBIP2oudG9TdHJpbmcoSCk6an1wLnAyMjQ9cC5zZWNwMjI0cjEscC5wMjU2PXAuc2VjcDI1NnIxPXAucHJpbWUyNTZ2MSxwLnAxOTI9cC5zZWNwMTkycjE9cC5wcmltZTE5MnYxLHAucDM4ND1wLnNlY3AzODRyMSxwLnA1MjE9cC5zZWNwNTIx'@; put 'cjEsTi5wcm90b3R5cGUuZ2VuZXJhdGVLZXlzPWZ1bmN0aW9uKEYsSCl7cmV0dXJuIHRoaXMua2V5cz10aGlzLmN1cnZlLmdlbktleVBhaXIoKSx0aGlzLmdldFB1YmxpY0tleShGLEgpfSxOLnByb3RvdHlwZS5jb21wdXRlU2VjcmV0PWZ1bmN0aW9uKEYsSCxSKXtyZXR1cm4gSD1IfHwidXRm'@; put 'OCIsQnVmZmVyLmlzQnVmZmVyKEYpfHwoRj1uZXcgQnVmZmVyKEYsSCkpLHcodGhpcy5jdXJ2ZS5rZXlGcm9tUHVibGljKEYpLmdldFB1YmxpYygpLm11bCh0aGlzLmtleXMuZ2V0UHJpdmF0ZSgpKS5nZXRYKCksUix0aGlzLmN1cnZlVHlwZS5ieXRlTGVuZ3RoKX0sTi5wcm90b3R5cGUuZ2V0'@; put 'UHVibGljS2V5PWZ1bmN0aW9uKEYsSCl7dmFyIFI9dGhpcy5rZXlzLmdldFB1YmxpYygiY29tcHJlc3NlZCI9PT1ILCEwKTtyZXR1cm4iaHlicmlkIj09PUgmJihSWzBdPVJbUi5sZW5ndGgtMV0lMj83OjYpLHcoUixGKX0sTi5wcm90b3R5cGUuZ2V0UHJpdmF0ZUtleT1mdW5jdGlvbihGKXty'@; put 'ZXR1cm4gdyh0aGlzLmtleXMuZ2V0UHJpdmF0ZSgpLEYpfSxOLnByb3RvdHlwZS5zZXRQdWJsaWNLZXk9ZnVuY3Rpb24oRixIKXtyZXR1cm4gSD1IfHwidXRmOCIsQnVmZmVyLmlzQnVmZmVyKEYpfHwoRj1uZXcgQnVmZmVyKEYsSCkpLHRoaXMua2V5cy5faW1wb3J0UHVibGljKEYpLHRoaXN9'@; put 'LE4ucHJvdG90eXBlLnNldFByaXZhdGVLZXk9ZnVuY3Rpb24oRixIKXtIPUh8fCJ1dGY4IixCdWZmZXIuaXNCdWZmZXIoRil8fChGPW5ldyBCdWZmZXIoRixIKSk7dmFyIFI9bmV3IF8oRik7cmV0dXJuIFI9Ui50b1N0cmluZygxNiksdGhpcy5rZXlzPXRoaXMuY3VydmUuZ2VuS2V5UGFpcigp'@; put 'LHRoaXMua2V5cy5faW1wb3J0UHJpdmF0ZShSKSx0aGlzfX0sODk2MDY6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCxfKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcCh6LGcpe2lmKCF6KXRocm93IG5ldyBFcnJvcihnfHwiQXNzZXJ0aW9uIGZhaWxlZCIpfWZ1bmN0aW9uIE4oeixnKXt6'@; put 'LnN1cGVyXz1nO3ZhciB5PWZ1bmN0aW9uKCl7fTt5LnByb3RvdHlwZT1nLnByb3RvdHlwZSx6LnByb3RvdHlwZT1uZXcgeSx6LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj16fWZ1bmN0aW9uIHcoeixnLHkpe2lmKHcuaXNCTih6KSlyZXR1cm4gejt0aGlzLm5lZ2F0aXZlPTAsdGhpcy53b3Jkcz1u'@; put 'dWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5yZWQ9bnVsbCxudWxsIT09eiYmKCgibGUiPT09Z3x8ImJlIj09PWcpJiYoeT1nLGc9MTApLHRoaXMuX2luaXQoenx8MCxnfHwxMCx5fHwiYmUiKSl9dmFyIEY7Im9iamVjdCI9PXR5cGVvZiBEP0QuZXhwb3J0cz13Ol8uQk49dyx3LkJOPXcsdy53b3Jk'@; put 'U2l6ZT0yNjt0cnl7Rj10eXBlb2Ygd2luZG93PCJ1IiYmdHlwZW9mIHdpbmRvdy5CdWZmZXI8InUiP3dpbmRvdy5CdWZmZXI6Yig3Nzk2NSkuQnVmZmVyfWNhdGNoe31mdW5jdGlvbiBIKHosZyl7dmFyIHk9ei5jaGFyQ29kZUF0KGcpO3JldHVybiB5Pj02NSYmeTw9NzA/eS01NTp5Pj05NyYm'@; put 'eTw9MTAyP3ktODc6eS00OCYxNX1mdW5jdGlvbiBSKHosZyx5KXt2YXIgeD1IKHoseSk7cmV0dXJuIHktMT49ZyYmKHh8PUgoeix5LTEpPDw0KSx4fWZ1bmN0aW9uIGooeixnLHkseCl7Zm9yKHZhciBDPTAsVD1NYXRoLm1pbih6Lmxlbmd0aCx5KSxWPWc7VjxUO1YrKyl7dmFyIFU9ei5jaGFy'@; put 'Q29kZUF0KFYpLTQ4O0MqPXgsQys9VT49NDk/VS00OSsxMDpVPj0xNz9VLTE3KzEwOlV9cmV0dXJuIEN9dy5pc0JOPWZ1bmN0aW9uKGcpe3JldHVybiBnIGluc3RhbmNlb2Ygd3x8bnVsbCE9PWcmJiJvYmplY3QiPT10eXBlb2YgZyYmZy5jb25zdHJ1Y3Rvci53b3JkU2l6ZT09PXcud29yZFNp'@; put 'emUmJkFycmF5LmlzQXJyYXkoZy53b3Jkcyl9LHcubWF4PWZ1bmN0aW9uKGcseSl7cmV0dXJuIGcuY21wKHkpPjA/Zzp5fSx3Lm1pbj1mdW5jdGlvbihnLHkpe3JldHVybiBnLmNtcCh5KTwwP2c6eX0sdy5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oZyx5LHgpe2lmKCJudW1iZXIiPT10eXBl'@; put 'b2YgZylyZXR1cm4gdGhpcy5faW5pdE51bWJlcihnLHkseCk7aWYoIm9iamVjdCI9PXR5cGVvZiBnKXJldHVybiB0aGlzLl9pbml0QXJyYXkoZyx5LHgpOyJoZXgiPT09eSYmKHk9MTYpLHAoeT09PSgwfHkpJiZ5Pj0yJiZ5PD0zNik7dmFyIEM9MDsiLSI9PT0oZz1nLnRvU3RyaW5nKCkucmVw'@; put 'bGFjZSgvXHMrL2csIiIpKVswXSYmKEMrKyx0aGlzLm5lZ2F0aXZlPTEpLEM8Zy5sZW5ndGgmJigxNj09PXk/dGhpcy5fcGFyc2VIZXgoZyxDLHgpOih0aGlzLl9wYXJzZUJhc2UoZyx5LEMpLCJsZSI9PT14JiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCkseSx4KSkpfSx3LnByb3Rv'@; put 'dHlwZS5faW5pdE51bWJlcj1mdW5jdGlvbihnLHkseCl7ZzwwJiYodGhpcy5uZWdhdGl2ZT0xLGc9LWcpLGc8NjcxMDg4NjQ/KHRoaXMud29yZHM9WzY3MTA4ODYzJmddLHRoaXMubGVuZ3RoPTEpOmc8NDUwMzU5OTYyNzM3MDQ5Nj8odGhpcy53b3Jkcz1bNjcxMDg4NjMmZyxnLzY3MTA4ODY0'@; put 'JjY3MTA4ODYzXSx0aGlzLmxlbmd0aD0yKToocChnPDkwMDcxOTkyNTQ3NDA5OTIpLHRoaXMud29yZHM9WzY3MTA4ODYzJmcsZy82NzEwODg2NCY2NzEwODg2MywxXSx0aGlzLmxlbmd0aD0zKSwibGUiPT09eCYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLHkseCl9LHcucHJvdG90'@; put 'eXBlLl9pbml0QXJyYXk9ZnVuY3Rpb24oZyx5LHgpe2lmKHAoIm51bWJlciI9PXR5cGVvZiBnLmxlbmd0aCksZy5sZW5ndGg8PTApcmV0dXJuIHRoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTEsdGhpczt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoZy5sZW5ndGgvMyksdGhpcy53b3Jkcz1uZXcg'@; put 'QXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgQz0wO0M8dGhpcy5sZW5ndGg7QysrKXRoaXMud29yZHNbQ109MDt2YXIgVCxWLFU9MDtpZigiYmUiPT09eClmb3IoQz1nLmxlbmd0aC0xLFQ9MDtDPj0wO0MtPTMpdGhpcy53b3Jkc1tUXXw9KFY9Z1tDXXxnW0MtMV08PDh8Z1tDLTJdPDwxNik8'@; put 'PFUmNjcxMDg4NjMsdGhpcy53b3Jkc1tUKzFdPVY+Pj4yNi1VJjY3MTA4ODYzLChVKz0yNCk+PTI2JiYoVS09MjYsVCsrKTtlbHNlIGlmKCJsZSI9PT14KWZvcihDPTAsVD0wO0M8Zy5sZW5ndGg7Qys9Myl0aGlzLndvcmRzW1RdfD0oVj1nW0NdfGdbQysxXTw8OHxnW0MrMl08PDE2KTw8VSY2'@; put 'NzEwODg2Myx0aGlzLndvcmRzW1QrMV09Vj4+PjI2LVUmNjcxMDg4NjMsKFUrPTI0KT49MjYmJihVLT0yNixUKyspO3JldHVybiB0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLl9wYXJzZUhleD1mdW5jdGlvbihnLHkseCl7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKChnLmxlbmd0aC15KS82KSx0'@; put 'aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBDPTA7Qzx0aGlzLmxlbmd0aDtDKyspdGhpcy53b3Jkc1tDXT0wO3ZhciBVLFQ9MCxWPTA7aWYoImJlIj09PXgpZm9yKEM9Zy5sZW5ndGgtMTtDPj15O0MtPTIpVT1SKGcseSxDKTw8VCx0aGlzLndvcmRzW1ZdfD02NzEw'@; put 'ODg2MyZVLFQ+PTE4PyhULT0xOCx0aGlzLndvcmRzW1YrPTFdfD1VPj4+MjYpOlQrPTg7ZWxzZSBmb3IoQz0oZy5sZW5ndGgteSklMj09MD95KzE6eTtDPGcubGVuZ3RoO0MrPTIpVT1SKGcseSxDKTw8VCx0aGlzLndvcmRzW1ZdfD02NzEwODg2MyZVLFQ+PTE4PyhULT0xOCx0aGlzLndvcmRz'@; put 'W1YrPTFdfD1VPj4+MjYpOlQrPTg7dGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5fcGFyc2VCYXNlPWZ1bmN0aW9uKGcseSx4KXt0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xO2Zvcih2YXIgQz0wLFQ9MTtUPD02NzEwODg2MztUKj15KUMrKztDLS0sVD1UL3l8MDtmb3IodmFyIFY9Zy5s'@; put 'ZW5ndGgteCxVPVYlQyxFPU1hdGgubWluKFYsVi1VKSt4LG09MCxBPXg7QTxFO0ErPUMpbT1qKGcsQSxBK0MseSksdGhpcy5pbXVsbihUKSx0aGlzLndvcmRzWzBdK208NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9bTp0aGlzLl9pYWRkbihtKTtpZigwIT09VSl7dmFyIGFlPTE7Zm9yKG09aihn'@; put 'LEEsZy5sZW5ndGgseSksQT0wO0E8VTtBKyspYWUqPXk7dGhpcy5pbXVsbihhZSksdGhpcy53b3Jkc1swXSttPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPW06dGhpcy5faWFkZG4obSl9dGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKGcpe2cud29yZHM9bmV3IEFycmF5'@; put 'KHRoaXMubGVuZ3RoKTtmb3IodmFyIHk9MDt5PHRoaXMubGVuZ3RoO3krKylnLndvcmRzW3ldPXRoaXMud29yZHNbeV07Zy5sZW5ndGg9dGhpcy5sZW5ndGgsZy5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLGcucmVkPXRoaXMucmVkfSx3LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciBn'@; put 'PW5ldyB3KG51bGwpO3JldHVybiB0aGlzLmNvcHkoZyksZ30sdy5wcm90b3R5cGUuX2V4cGFuZD1mdW5jdGlvbihnKXtmb3IoO3RoaXMubGVuZ3RoPGc7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4gdGhpc30sdy5wcm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3Ro'@; put 'aXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdOyl0aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSx3LnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMu'@; put 'bmVnYXRpdmU9MCksdGhpc30sdy5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgUD1bIiIsIjAiLCIwMCIsIjAwMCIsIjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAi'@; put 'LCIwMDAwMDAwMCIsIjAwMDAwMDAwMCIsIjAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAw'@; put 'MDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAw'@; put 'MDAwMDAwMDAwMDAwMDAwMDAwMDAiXSxMPVswLDAsMjUsMTYsMTIsMTEsMTAsOSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLFk9WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYw'@; put 'NywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkw'@; put 'NywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQzMiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07ZnVuY3Rpb24gVyh6LGcseSl7eS5uZWdhdGl2ZT1nLm5lZ2F0aXZlXnoubmVnYXRpdmU7dmFyIHg9ei5sZW5ndGgrZy5sZW5ndGh8MDt5Lmxlbmd0'@; put 'aD14LHg9eC0xfDA7dmFyIEM9MHx6LndvcmRzWzBdLFQ9MHxnLndvcmRzWzBdLFY9QypULEU9Vi82NzEwODg2NHwwO3kud29yZHNbMF09NjcxMDg4NjMmVjtmb3IodmFyIG09MTttPHg7bSsrKXtmb3IodmFyIEE9RT4+PjI2LGFlPTY3MTA4ODYzJkUsbmU9TWF0aC5taW4obSxnLmxlbmd0aC0x'@; put 'KSxsZT1NYXRoLm1heCgwLG0tei5sZW5ndGgrMSk7bGU8PW5lO2xlKyspQSs9KFY9KEM9MHx6LndvcmRzW20tbGV8MF0pKihUPTB8Zy53b3Jkc1tsZV0pK2FlKS82NzEwODg2NHwwLGFlPTY3MTA4ODYzJlY7eS53b3Jkc1ttXT0wfGFlLEU9MHxBfXJldHVybiAwIT09RT95LndvcmRzW21dPTB8'@; put 'RTp5Lmxlbmd0aC0tLHkuc3RyaXAoKX13LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbihnLHkpe3ZhciB4O2lmKHk9MHx5fHwxLDE2PT09KGc9Z3x8MTApfHwiaGV4Ij09PWcpe3g9IiI7Zm9yKHZhciBDPTAsVD0wLFY9MDtWPHRoaXMubGVuZ3RoO1YrKyl7dmFyIFU9dGhpcy53b3Jkc1tW'@; put 'XSxFPSgxNjc3NzIxNSYoVTw8Q3xUKSkudG9TdHJpbmcoMTYpO1Q9VT4+PjI0LUMmMTY3NzcyMTUsKEMrPTIpPj0yNiYmKEMtPTI2LFYtLSkseD0wIT09VHx8ViE9PXRoaXMubGVuZ3RoLTE/UFs2LUUubGVuZ3RoXStFK3g6RSt4fWZvcigwIT09VCYmKHg9VC50b1N0cmluZygxNikreCk7eC5s'@; put 'ZW5ndGgleSE9MDspeD0iMCIreDtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJih4PSItIit4KSx4fWlmKGc9PT0oMHxnKSYmZz49MiYmZzw9MzYpe3ZhciBtPUxbZ10sQT1ZW2ddO3g9IiI7dmFyIGFlPXRoaXMuY2xvbmUoKTtmb3IoYWUubmVnYXRpdmU9MDshYWUuaXNaZXJvKCk7KXt2YXIg'@; put 'bmU9YWUubW9kbihBKS50b1N0cmluZyhnKTt4PShhZT1hZS5pZGl2bihBKSkuaXNaZXJvKCk/bmUreDpQW20tbmUubGVuZ3RoXStuZSt4fWZvcih0aGlzLmlzWmVybygpJiYoeD0iMCIreCk7eC5sZW5ndGgleSE9MDspeD0iMCIreDtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJih4PSItIit4'@; put 'KSx4fXAoITEsIkJhc2Ugc2hvdWxkIGJlIGJldHdlZW4gMiBhbmQgMzYiKX0sdy5wcm90b3R5cGUudG9OdW1iZXI9ZnVuY3Rpb24oKXt2YXIgZz10aGlzLndvcmRzWzBdO3JldHVybiAyPT09dGhpcy5sZW5ndGg/Zys9NjcxMDg4NjQqdGhpcy53b3Jkc1sxXTozPT09dGhpcy5sZW5ndGgmJjE9'@; put 'PT10aGlzLndvcmRzWzJdP2crPTQ1MDM1OTk2MjczNzA0OTYrNjcxMDg4NjQqdGhpcy53b3Jkc1sxXTp0aGlzLmxlbmd0aD4yJiZwKCExLCJOdW1iZXIgY2FuIG9ubHkgc2FmZWx5IHN0b3JlIHVwIHRvIDUzIGJpdHMiKSwwIT09dGhpcy5uZWdhdGl2ZT8tZzpnfSx3LnByb3RvdHlwZS50b0pT'@; put 'T049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygxNil9LHcucHJvdG90eXBlLnRvQnVmZmVyPWZ1bmN0aW9uKGcseSl7cmV0dXJuIHAodHlwZW9mIEY8InUiKSx0aGlzLnRvQXJyYXlMaWtlKEYsZyx5KX0sdy5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbihnLHkpe3JldHVybiB0'@; put 'aGlzLnRvQXJyYXlMaWtlKEFycmF5LGcseSl9LHcucHJvdG90eXBlLnRvQXJyYXlMaWtlPWZ1bmN0aW9uKGcseSx4KXt2YXIgQz10aGlzLmJ5dGVMZW5ndGgoKSxUPXh8fE1hdGgubWF4KDEsQyk7cChDPD1ULCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIikscChUPjAs'@; put 'IlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpLHRoaXMuc3RyaXAoKTt2YXIgRSxtLFY9ImxlIj09PXksVT1uZXcgZyhUKSxBPXRoaXMuY2xvbmUoKTtpZihWKXtmb3IobT0wOyFBLmlzWmVybygpO20rKylFPUEuYW5kbG4oMjU1KSxBLml1c2hybig4KSxVW21dPUU7Zm9yKDttPFQ7bSsr'@; put 'KVVbbV09MH1lbHNle2ZvcihtPTA7bTxULUM7bSsrKVVbbV09MDtmb3IobT0wOyFBLmlzWmVybygpO20rKylFPUEuYW5kbG4oMjU1KSxBLml1c2hybig4KSxVW1QtbS0xXT1FfXJldHVybiBVfSx3LnByb3RvdHlwZS5fY291bnRCaXRzPU1hdGguY2x6MzI/ZnVuY3Rpb24oZyl7cmV0dXJuIDMy'@; put 'LU1hdGguY2x6MzIoZyl9OmZ1bmN0aW9uKGcpe3ZhciB5PWcseD0wO3JldHVybiB5Pj00MDk2JiYoeCs9MTMseT4+Pj0xMykseT49NjQmJih4Kz03LHk+Pj49NykseT49OCYmKHgrPTQseT4+Pj00KSx5Pj0yJiYoeCs9Mix5Pj4+PTIpLHgreX0sdy5wcm90b3R5cGUuX3plcm9CaXRzPWZ1bmN0'@; put 'aW9uKGcpe2lmKDA9PT1nKXJldHVybiAyNjt2YXIgeT1nLHg9MDtyZXR1cm4gODE5MSZ5fHwoeCs9MTMseT4+Pj0xMyksMTI3Jnl8fCh4Kz03LHk+Pj49NyksMTUmeXx8KHgrPTQseT4+Pj00KSwzJnl8fCh4Kz0yLHk+Pj49MiksMSZ5fHx4KysseH0sdy5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1'@; put 'bmN0aW9uKCl7dmFyIHk9dGhpcy5fY291bnRCaXRzKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0pO3JldHVybiAyNioodGhpcy5sZW5ndGgtMSkreX0sdy5wcm90b3R5cGUuemVyb0JpdHM9ZnVuY3Rpb24oKXtpZih0aGlzLmlzWmVybygpKXJldHVybiAwO2Zvcih2YXIgZz0wLHk9MDt5PHRo'@; put 'aXMubGVuZ3RoO3krKyl7dmFyIHg9dGhpcy5femVyb0JpdHModGhpcy53b3Jkc1t5XSk7aWYoZys9eCwyNiE9PXgpYnJlYWt9cmV0dXJuIGd9LHcucHJvdG90eXBlLmJ5dGVMZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5jZWlsKHRoaXMuYml0TGVuZ3RoKCkvOCl9LHcucHJvdG90eXBl'@; put 'LnRvVHdvcz1mdW5jdGlvbihnKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/dGhpcy5hYnMoKS5pbm90bihnKS5pYWRkbigxKTp0aGlzLmNsb25lKCl9LHcucHJvdG90eXBlLmZyb21Ud29zPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLnRlc3RuKGctMSk/dGhpcy5ub3RuKGcpLmlhZGRuKDEp'@; put 'LmluZWcoKTp0aGlzLmNsb25lKCl9LHcucHJvdG90eXBlLmlzTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlfSx3LnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmluZWcoKX0sdy5wcm90b3R5cGUuaW5lZz1mdW5jdGlvbigpe3JldHVy'@; put 'biB0aGlzLmlzWmVybygpfHwodGhpcy5uZWdhdGl2ZV49MSksdGhpc30sdy5wcm90b3R5cGUuaXVvcj1mdW5jdGlvbihnKXtmb3IoO3RoaXMubGVuZ3RoPGcubGVuZ3RoOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7Zm9yKHZhciB5PTA7eTxnLmxlbmd0aDt5KyspdGhpcy53b3Jkc1t5'@; put 'XT10aGlzLndvcmRzW3ldfGcud29yZHNbeV07cmV0dXJuIHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuaW9yPWZ1bmN0aW9uKGcpe3JldHVybiBwKCEodGhpcy5uZWdhdGl2ZXxnLm5lZ2F0aXZlKSksdGhpcy5pdW9yKGcpfSx3LnByb3RvdHlwZS5vcj1mdW5jdGlvbihnKXtyZXR1cm4gdGhp'@; put 'cy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLmlvcihnKTpnLmNsb25lKCkuaW9yKHRoaXMpfSx3LnByb3RvdHlwZS51b3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdW9yKGcpOmcuY2xvbmUoKS5pdW9yKHRoaXMpfSx3LnByb3Rv'@; put 'dHlwZS5pdWFuZD1mdW5jdGlvbihnKXt2YXIgeTt5PXRoaXMubGVuZ3RoPmcubGVuZ3RoP2c6dGhpcztmb3IodmFyIHg9MDt4PHkubGVuZ3RoO3grKyl0aGlzLndvcmRzW3hdPXRoaXMud29yZHNbeF0mZy53b3Jkc1t4XTtyZXR1cm4gdGhpcy5sZW5ndGg9eS5sZW5ndGgsdGhpcy5zdHJpcCgp'@; put 'fSx3LnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKGcpe3JldHVybiBwKCEodGhpcy5uZWdhdGl2ZXxnLm5lZ2F0aXZlKSksdGhpcy5pdWFuZChnKX0sdy5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZChnKTpnLmNs'@; put 'b25lKCkuaWFuZCh0aGlzKX0sdy5wcm90b3R5cGUudWFuZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLml1YW5kKGcpOmcuY2xvbmUoKS5pdWFuZCh0aGlzKX0sdy5wcm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24oZyl7dmFyIHkseDt0aGlzLmxl'@; put 'bmd0aD5nLmxlbmd0aD8oeT10aGlzLHg9Zyk6KHk9Zyx4PXRoaXMpO2Zvcih2YXIgQz0wO0M8eC5sZW5ndGg7QysrKXRoaXMud29yZHNbQ109eS53b3Jkc1tDXV54LndvcmRzW0NdO2lmKHRoaXMhPT15KWZvcig7Qzx5Lmxlbmd0aDtDKyspdGhpcy53b3Jkc1tDXT15LndvcmRzW0NdO3JldHVy'@; put 'biB0aGlzLmxlbmd0aD15Lmxlbmd0aCx0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLml4b3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHAoISh0aGlzLm5lZ2F0aXZlfGcubmVnYXRpdmUpKSx0aGlzLml1eG9yKGcpfSx3LnByb3RvdHlwZS54b3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3Ro'@; put 'PmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5peG9yKGcpOmcuY2xvbmUoKS5peG9yKHRoaXMpfSx3LnByb3RvdHlwZS51eG9yPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaXV4b3IoZyk6Zy5jbG9uZSgpLml1eG9yKHRoaXMpfSx3LnByb3RvdHlw'@; put 'ZS5pbm90bj1mdW5jdGlvbihnKXtwKCJudW1iZXIiPT10eXBlb2YgZyYmZz49MCk7dmFyIHk9MHxNYXRoLmNlaWwoZy8yNikseD1nJTI2O3RoaXMuX2V4cGFuZCh5KSx4PjAmJnktLTtmb3IodmFyIEM9MDtDPHk7QysrKXRoaXMud29yZHNbQ109NjcxMDg4NjMmfnRoaXMud29yZHNbQ107cmV0'@; put 'dXJuIHg+MCYmKHRoaXMud29yZHNbQ109fnRoaXMud29yZHNbQ10mNjcxMDg4NjM+PjI2LXgpLHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUubm90bj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlub3RuKGcpfSx3LnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uKGcseSl7cCgibnVt'@; put 'YmVyIj09dHlwZW9mIGcmJmc+PTApO3ZhciB4PWcvMjZ8MCxDPWclMjY7cmV0dXJuIHRoaXMuX2V4cGFuZCh4KzEpLHRoaXMud29yZHNbeF09eT90aGlzLndvcmRzW3hdfDE8PEM6dGhpcy53b3Jkc1t4XSZ+KDE8PEMpLHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbihn'@; put 'KXt2YXIgeSx4LEM7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1nLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAseT10aGlzLmlzdWIoZyksdGhpcy5uZWdhdGl2ZV49MSx0aGlzLl9ub3JtU2lnbigpO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Zy5uZWdhdGl2ZSlyZXR1cm4g'@; put 'Zy5uZWdhdGl2ZT0wLHk9dGhpcy5pc3ViKGcpLGcubmVnYXRpdmU9MSx5Ll9ub3JtU2lnbigpO3RoaXMubGVuZ3RoPmcubGVuZ3RoPyh4PXRoaXMsQz1nKTooeD1nLEM9dGhpcyk7Zm9yKHZhciBUPTAsVj0wO1Y8Qy5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09NjcxMDg4NjMmKHk9KDB8eC53'@; put 'b3Jkc1tWXSkrKDB8Qy53b3Jkc1tWXSkrVCksVD15Pj4+MjY7Zm9yKDswIT09VCYmVjx4Lmxlbmd0aDtWKyspdGhpcy53b3Jkc1tWXT02NzEwODg2MyYoeT0oMHx4LndvcmRzW1ZdKStUKSxUPXk+Pj4yNjtpZih0aGlzLmxlbmd0aD14Lmxlbmd0aCwwIT09VCl0aGlzLndvcmRzW3RoaXMubGVu'@; put 'Z3RoXT1ULHRoaXMubGVuZ3RoKys7ZWxzZSBpZih4IT09dGhpcylmb3IoO1Y8eC5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09eC53b3Jkc1tWXTtyZXR1cm4gdGhpc30sdy5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGcpe3ZhciB5O3JldHVybiAwIT09Zy5uZWdhdGl2ZSYmMD09PXRoaXMubmVn'@; put 'YXRpdmU/KGcubmVnYXRpdmU9MCx5PXRoaXMuc3ViKGcpLGcubmVnYXRpdmVePTEseSk6MD09PWcubmVnYXRpdmUmJjAhPT10aGlzLm5lZ2F0aXZlPyh0aGlzLm5lZ2F0aXZlPTAseT1nLnN1Yih0aGlzKSx0aGlzLm5lZ2F0aXZlPTEseSk6dGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9u'@; put 'ZSgpLmlhZGQoZyk6Zy5jbG9uZSgpLmlhZGQodGhpcyl9LHcucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24oZyl7aWYoMCE9PWcubmVnYXRpdmUpe2cubmVnYXRpdmU9MDt2YXIgeT10aGlzLmlhZGQoZyk7cmV0dXJuIGcubmVnYXRpdmU9MSx5Ll9ub3JtU2lnbigpfWlmKDAhPT10aGlzLm5lZ2F0'@; put 'aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkKGcpLHRoaXMubmVnYXRpdmU9MSx0aGlzLl9ub3JtU2lnbigpO3ZhciBDLFQseD10aGlzLmNtcChnKTtpZigwPT09eClyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMubGVuZ3RoPTEsdGhpcy53b3Jkc1swXT0wLHRoaXM7eD4w'@; put 'PyhDPXRoaXMsVD1nKTooQz1nLFQ9dGhpcyk7Zm9yKHZhciBWPTAsVT0wO1U8VC5sZW5ndGg7VSsrKVY9KHk9KDB8Qy53b3Jkc1tVXSktKDB8VC53b3Jkc1tVXSkrVik+PjI2LHRoaXMud29yZHNbVV09NjcxMDg4NjMmeTtmb3IoOzAhPT1WJiZVPEMubGVuZ3RoO1UrKylWPSh5PSgwfEMud29y'@; put 'ZHNbVV0pK1YpPj4yNix0aGlzLndvcmRzW1VdPTY3MTA4ODYzJnk7aWYoMD09PVYmJlU8Qy5sZW5ndGgmJkMhPT10aGlzKWZvcig7VTxDLmxlbmd0aDtVKyspdGhpcy53b3Jkc1tVXT1DLndvcmRzW1VdO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxVKSxDIT09dGhp'@; put 'cyYmKHRoaXMubmVnYXRpdmU9MSksdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKGcpfTt2YXIgWj1mdW5jdGlvbihnLHkseCl7dmFyIEUsbSxBLEM9Zy53b3JkcyxUPXkud29yZHMsVj14LndvcmRzLFU9MCxhZT0wfENb'@; put 'MF0sbmU9ODE5MSZhZSxsZT1hZT4+PjEzLHdlPTB8Q1sxXSxaZT04MTkxJndlLFFlPXdlPj4+MTMsYXQ9MHxDWzJdLHhlPTgxOTEmYXQsdmU9YXQ+Pj4xMyxxZT0wfENbM10samU9ODE5MSZxZSxBZT1xZT4+PjEzLEZlPTB8Q1s0XSxSZT04MTkxJkZlLEllPUZlPj4+MTMsSGU9MHxDWzVdLERl'@; put 'PTgxOTEmSGUsa2U9SGU+Pj4xMyxfdD0wfENbNl0sbnQ9ODE5MSZfdCxKZT1fdD4+PjEzLG9uPTB8Q1s3XSx5dD04MTkxJm9uLE10PW9uPj4+MTMsSXQ9MHxDWzhdLHJ0PTgxOTEmSXQsS2U9SXQ+Pj4xMyx0dD0wfENbOV0sTmU9ODE5MSZ0dCx1dD10dD4+PjEzLEp0PTB8VFswXSxMdD04MTkx'@; put 'Jkp0LFB0PUp0Pj4+MTMsb2k9MHxUWzFdLGVuPTgxOTEmb2ksc249b2k+Pj4xMyxJaT0wfFRbMl0sZG49ODE5MSZJaSxmdD1JaT4+PjEzLEZyPTB8VFszXSxadD04MTkxJkZyLGt0PUZyPj4+MTMsTG49MHxUWzRdLG90PTgxOTEmTG4senQ9TG4+Pj4xMyxuaT0wfFRbNV0sV2U9ODE5MSZuaSxB'@; put 'dD1uaT4+PjEzLGlyPTB8VFs2XSxodD04MTkxJmlyLEV0PWlyPj4+MTMsem49MHxUWzddLGFuPTgxOTEmem4sanQ9em4+Pj4xMyxkaT0wfFRbOF0sY249ODE5MSZkaSxmbj1kaT4+PjEzLERpPTB8VFs5XSxRdD04MTkxJkRpLHRuPURpPj4+MTM7eC5uZWdhdGl2ZT1nLm5lZ2F0aXZlXnkubmVn'@; put 'YXRpdmUseC5sZW5ndGg9MTk7dmFyIGNhPShVKyhFPU1hdGguaW11bChuZSxMdCkpfDApKygoODE5MSYobT0obT1NYXRoLmltdWwobmUsUHQpKStNYXRoLmltdWwobGUsTHQpfDApKTw8MTMpfDA7VT0oKEE9TWF0aC5pbXVsKGxlLFB0KSkrKG0+Pj4xMyl8MCkrKGNhPj4+MjYpfDAsY2EmPTY3'@; put 'MTA4ODYzLEU9TWF0aC5pbXVsKFplLEx0KSxtPShtPU1hdGguaW11bChaZSxQdCkpK01hdGguaW11bChRZSxMdCl8MCxBPU1hdGguaW11bChRZSxQdCk7dmFyIHhpPShVKyhFPUUrTWF0aC5pbXVsKG5lLGVuKXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsc24pfDApK01hdGgu'@; put 'aW11bChsZSxlbil8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSxzbil8MCkrKG0+Pj4xMyl8MCkrKHhpPj4+MjYpfDAseGkmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKHhlLEx0KSxtPShtPU1hdGguaW11bCh4ZSxQdCkpK01hdGguaW11bCh2ZSxMdCl8MCxBPU1hdGguaW11bCh2ZSxQ'@; put 'dCksRT1FK01hdGguaW11bChaZSxlbil8MCxtPShtPW0rTWF0aC5pbXVsKFplLHNuKXwwKStNYXRoLmltdWwoUWUsZW4pfDAsQT1BK01hdGguaW11bChRZSxzbil8MDt2YXIgeXI9KFUrKEU9RStNYXRoLmltdWwobmUsZG4pfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSxmdCl8'@; put 'MCkrTWF0aC5pbXVsKGxlLGRuKXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKGxlLGZ0KXwwKSsobT4+PjEzKXwwKSsoeXI+Pj4yNil8MCx5ciY9NjcxMDg4NjMsRT1NYXRoLmltdWwoamUsTHQpLG09KG09TWF0aC5pbXVsKGplLFB0KSkrTWF0aC5pbXVsKEFlLEx0KXwwLEE9TWF0aC5p'@; put 'bXVsKEFlLFB0KSxFPUUrTWF0aC5pbXVsKHhlLGVuKXwwLG09KG09bStNYXRoLmltdWwoeGUsc24pfDApK01hdGguaW11bCh2ZSxlbil8MCxBPUErTWF0aC5pbXVsKHZlLHNuKXwwLEU9RStNYXRoLmltdWwoWmUsZG4pfDAsbT0obT1tK01hdGguaW11bChaZSxmdCl8MCkrTWF0aC5pbXVsKFFl'@; put 'LGRuKXwwLEE9QStNYXRoLmltdWwoUWUsZnQpfDA7dmFyIEduPShVKyhFPUUrTWF0aC5pbXVsKG5lLFp0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsa3QpfDApK01hdGguaW11bChsZSxadCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSxrdCl8MCkrKG0+Pj4x'@; put 'Myl8MCkrKEduPj4+MjYpfDAsR24mPTY3MTA4ODYzLEU9TWF0aC5pbXVsKFJlLEx0KSxtPShtPU1hdGguaW11bChSZSxQdCkpK01hdGguaW11bChJZSxMdCl8MCxBPU1hdGguaW11bChJZSxQdCksRT1FK01hdGguaW11bChqZSxlbil8MCxtPShtPW0rTWF0aC5pbXVsKGplLHNuKXwwKStNYXRo'@; put 'LmltdWwoQWUsZW4pfDAsQT1BK01hdGguaW11bChBZSxzbil8MCxFPUUrTWF0aC5pbXVsKHhlLGRuKXwwLG09KG09bStNYXRoLmltdWwoeGUsZnQpfDApK01hdGguaW11bCh2ZSxkbil8MCxBPUErTWF0aC5pbXVsKHZlLGZ0KXwwLEU9RStNYXRoLmltdWwoWmUsWnQpfDAsbT0obT1tK01hdGgu'@; put 'aW11bChaZSxrdCl8MCkrTWF0aC5pbXVsKFFlLFp0KXwwLEE9QStNYXRoLmltdWwoUWUsa3QpfDA7dmFyIEtpPShVKyhFPUUrTWF0aC5pbXVsKG5lLG90KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsenQpfDApK01hdGguaW11bChsZSxvdCl8MCkpPDwxMyl8MDtVPSgoQT1B'@; put 'K01hdGguaW11bChsZSx6dCl8MCkrKG0+Pj4xMyl8MCkrKEtpPj4+MjYpfDAsS2kmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKERlLEx0KSxtPShtPU1hdGguaW11bChEZSxQdCkpK01hdGguaW11bChrZSxMdCl8MCxBPU1hdGguaW11bChrZSxQdCksRT1FK01hdGguaW11bChSZSxlbil8MCxtPSht'@; put 'PW0rTWF0aC5pbXVsKFJlLHNuKXwwKStNYXRoLmltdWwoSWUsZW4pfDAsQT1BK01hdGguaW11bChJZSxzbil8MCxFPUUrTWF0aC5pbXVsKGplLGRuKXwwLG09KG09bStNYXRoLmltdWwoamUsZnQpfDApK01hdGguaW11bChBZSxkbil8MCxBPUErTWF0aC5pbXVsKEFlLGZ0KXwwLEU9RStNYXRo'@; put 'LmltdWwoeGUsWnQpfDAsbT0obT1tK01hdGguaW11bCh4ZSxrdCl8MCkrTWF0aC5pbXVsKHZlLFp0KXwwLEE9QStNYXRoLmltdWwodmUsa3QpfDAsRT1FK01hdGguaW11bChaZSxvdCl8MCxtPShtPW0rTWF0aC5pbXVsKFplLHp0KXwwKStNYXRoLmltdWwoUWUsb3QpfDAsQT1BK01hdGguaW11'@; put 'bChRZSx6dCl8MDt2YXIgSnI9KFUrKEU9RStNYXRoLmltdWwobmUsV2UpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSxBdCl8MCkrTWF0aC5pbXVsKGxlLFdlKXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKGxlLEF0KXwwKSsobT4+PjEzKXwwKSsoSnI+Pj4yNil8MCxK'@; put 'ciY9NjcxMDg4NjMsRT1NYXRoLmltdWwobnQsTHQpLG09KG09TWF0aC5pbXVsKG50LFB0KSkrTWF0aC5pbXVsKEplLEx0KXwwLEE9TWF0aC5pbXVsKEplLFB0KSxFPUUrTWF0aC5pbXVsKERlLGVuKXwwLG09KG09bStNYXRoLmltdWwoRGUsc24pfDApK01hdGguaW11bChrZSxlbil8MCxBPUEr'@; put 'TWF0aC5pbXVsKGtlLHNuKXwwLEU9RStNYXRoLmltdWwoUmUsZG4pfDAsbT0obT1tK01hdGguaW11bChSZSxmdCl8MCkrTWF0aC5pbXVsKEllLGRuKXwwLEE9QStNYXRoLmltdWwoSWUsZnQpfDAsRT1FK01hdGguaW11bChqZSxadCl8MCxtPShtPW0rTWF0aC5pbXVsKGplLGt0KXwwKStNYXRo'@; put 'LmltdWwoQWUsWnQpfDAsQT1BK01hdGguaW11bChBZSxrdCl8MCxFPUUrTWF0aC5pbXVsKHhlLG90KXwwLG09KG09bStNYXRoLmltdWwoeGUsenQpfDApK01hdGguaW11bCh2ZSxvdCl8MCxBPUErTWF0aC5pbXVsKHZlLHp0KXwwLEU9RStNYXRoLmltdWwoWmUsV2UpfDAsbT0obT1tK01hdGgu'@; put 'aW11bChaZSxBdCl8MCkrTWF0aC5pbXVsKFFlLFdlKXwwLEE9QStNYXRoLmltdWwoUWUsQXQpfDA7dmFyIFFyPShVKyhFPUUrTWF0aC5pbXVsKG5lLGh0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsRXQpfDApK01hdGguaW11bChsZSxodCl8MCkpPDwxMyl8MDtVPSgoQT1B'@; put 'K01hdGguaW11bChsZSxFdCl8MCkrKG0+Pj4xMyl8MCkrKFFyPj4+MjYpfDAsUXImPTY3MTA4ODYzLEU9TWF0aC5pbXVsKHl0LEx0KSxtPShtPU1hdGguaW11bCh5dCxQdCkpK01hdGguaW11bChNdCxMdCl8MCxBPU1hdGguaW11bChNdCxQdCksRT1FK01hdGguaW11bChudCxlbil8MCxtPSht'@; put 'PW0rTWF0aC5pbXVsKG50LHNuKXwwKStNYXRoLmltdWwoSmUsZW4pfDAsQT1BK01hdGguaW11bChKZSxzbil8MCxFPUUrTWF0aC5pbXVsKERlLGRuKXwwLG09KG09bStNYXRoLmltdWwoRGUsZnQpfDApK01hdGguaW11bChrZSxkbil8MCxBPUErTWF0aC5pbXVsKGtlLGZ0KXwwLEU9RStNYXRo'@; put 'LmltdWwoUmUsWnQpfDAsbT0obT1tK01hdGguaW11bChSZSxrdCl8MCkrTWF0aC5pbXVsKEllLFp0KXwwLEE9QStNYXRoLmltdWwoSWUsa3QpfDAsRT1FK01hdGguaW11bChqZSxvdCl8MCxtPShtPW0rTWF0aC5pbXVsKGplLHp0KXwwKStNYXRoLmltdWwoQWUsb3QpfDAsQT1BK01hdGguaW11'@; put 'bChBZSx6dCl8MCxFPUUrTWF0aC5pbXVsKHhlLFdlKXwwLG09KG09bStNYXRoLmltdWwoeGUsQXQpfDApK01hdGguaW11bCh2ZSxXZSl8MCxBPUErTWF0aC5pbXVsKHZlLEF0KXwwLEU9RStNYXRoLmltdWwoWmUsaHQpfDAsbT0obT1tK01hdGguaW11bChaZSxFdCl8MCkrTWF0aC5pbXVsKFFl'@; put 'LGh0KXwwLEE9QStNYXRoLmltdWwoUWUsRXQpfDA7dmFyIE5pPShVKyhFPUUrTWF0aC5pbXVsKG5lLGFuKXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsanQpfDApK01hdGguaW11bChsZSxhbil8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSxqdCl8MCkrKG0+Pj4x'@; put 'Myl8MCkrKE5pPj4+MjYpfDAsTmkmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKHJ0LEx0KSxtPShtPU1hdGguaW11bChydCxQdCkpK01hdGguaW11bChLZSxMdCl8MCxBPU1hdGguaW11bChLZSxQdCksRT1FK01hdGguaW11bCh5dCxlbil8MCxtPShtPW0rTWF0aC5pbXVsKHl0LHNuKXwwKStNYXRo'@; put 'LmltdWwoTXQsZW4pfDAsQT1BK01hdGguaW11bChNdCxzbil8MCxFPUUrTWF0aC5pbXVsKG50LGRuKXwwLG09KG09bStNYXRoLmltdWwobnQsZnQpfDApK01hdGguaW11bChKZSxkbil8MCxBPUErTWF0aC5pbXVsKEplLGZ0KXwwLEU9RStNYXRoLmltdWwoRGUsWnQpfDAsbT0obT1tK01hdGgu'@; put 'aW11bChEZSxrdCl8MCkrTWF0aC5pbXVsKGtlLFp0KXwwLEE9QStNYXRoLmltdWwoa2Usa3QpfDAsRT1FK01hdGguaW11bChSZSxvdCl8MCxtPShtPW0rTWF0aC5pbXVsKFJlLHp0KXwwKStNYXRoLmltdWwoSWUsb3QpfDAsQT1BK01hdGguaW11bChJZSx6dCl8MCxFPUUrTWF0aC5pbXVsKGpl'@; put 'LFdlKXwwLG09KG09bStNYXRoLmltdWwoamUsQXQpfDApK01hdGguaW11bChBZSxXZSl8MCxBPUErTWF0aC5pbXVsKEFlLEF0KXwwLEU9RStNYXRoLmltdWwoeGUsaHQpfDAsbT0obT1tK01hdGguaW11bCh4ZSxFdCl8MCkrTWF0aC5pbXVsKHZlLGh0KXwwLEE9QStNYXRoLmltdWwodmUsRXQp'@; put 'fDAsRT1FK01hdGguaW11bChaZSxhbil8MCxtPShtPW0rTWF0aC5pbXVsKFplLGp0KXwwKStNYXRoLmltdWwoUWUsYW4pfDAsQT1BK01hdGguaW11bChRZSxqdCl8MDt2YXIgSGk9KFUrKEU9RStNYXRoLmltdWwobmUsY24pfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSxmbil8'@; put 'MCkrTWF0aC5pbXVsKGxlLGNuKXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKGxlLGZuKXwwKSsobT4+PjEzKXwwKSsoSGk+Pj4yNil8MCxIaSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsTHQpLG09KG09TWF0aC5pbXVsKE5lLFB0KSkrTWF0aC5pbXVsKHV0LEx0KXwwLEE9TWF0aC5p'@; put 'bXVsKHV0LFB0KSxFPUUrTWF0aC5pbXVsKHJ0LGVuKXwwLG09KG09bStNYXRoLmltdWwocnQsc24pfDApK01hdGguaW11bChLZSxlbil8MCxBPUErTWF0aC5pbXVsKEtlLHNuKXwwLEU9RStNYXRoLmltdWwoeXQsZG4pfDAsbT0obT1tK01hdGguaW11bCh5dCxmdCl8MCkrTWF0aC5pbXVsKE10'@; put 'LGRuKXwwLEE9QStNYXRoLmltdWwoTXQsZnQpfDAsRT1FK01hdGguaW11bChudCxadCl8MCxtPShtPW0rTWF0aC5pbXVsKG50LGt0KXwwKStNYXRoLmltdWwoSmUsWnQpfDAsQT1BK01hdGguaW11bChKZSxrdCl8MCxFPUUrTWF0aC5pbXVsKERlLG90KXwwLG09KG09bStNYXRoLmltdWwoRGUs'@; put 'enQpfDApK01hdGguaW11bChrZSxvdCl8MCxBPUErTWF0aC5pbXVsKGtlLHp0KXwwLEU9RStNYXRoLmltdWwoUmUsV2UpfDAsbT0obT1tK01hdGguaW11bChSZSxBdCl8MCkrTWF0aC5pbXVsKEllLFdlKXwwLEE9QStNYXRoLmltdWwoSWUsQXQpfDAsRT1FK01hdGguaW11bChqZSxodCl8MCxt'@; put 'PShtPW0rTWF0aC5pbXVsKGplLEV0KXwwKStNYXRoLmltdWwoQWUsaHQpfDAsQT1BK01hdGguaW11bChBZSxFdCl8MCxFPUUrTWF0aC5pbXVsKHhlLGFuKXwwLG09KG09bStNYXRoLmltdWwoeGUsanQpfDApK01hdGguaW11bCh2ZSxhbil8MCxBPUErTWF0aC5pbXVsKHZlLGp0KXwwLEU9RStN'@; put 'YXRoLmltdWwoWmUsY24pfDAsbT0obT1tK01hdGguaW11bChaZSxmbil8MCkrTWF0aC5pbXVsKFFlLGNuKXwwLEE9QStNYXRoLmltdWwoUWUsZm4pfDA7dmFyIElhPShVKyhFPUUrTWF0aC5pbXVsKG5lLFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsdG4pfDApK01hdGgu'@; put 'aW11bChsZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSx0bil8MCkrKG0+Pj4xMyl8MCkrKElhPj4+MjYpfDAsSWEmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLGVuKSxtPShtPU1hdGguaW11bChOZSxzbikpK01hdGguaW11bCh1dCxlbil8MCxBPU1hdGguaW11bCh1dCxz'@; put 'biksRT1FK01hdGguaW11bChydCxkbil8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LGZ0KXwwKStNYXRoLmltdWwoS2UsZG4pfDAsQT1BK01hdGguaW11bChLZSxmdCl8MCxFPUUrTWF0aC5pbXVsKHl0LFp0KXwwLG09KG09bStNYXRoLmltdWwoeXQsa3QpfDApK01hdGguaW11bChNdCxadCl8MCxB'@; put 'PUErTWF0aC5pbXVsKE10LGt0KXwwLEU9RStNYXRoLmltdWwobnQsb3QpfDAsbT0obT1tK01hdGguaW11bChudCx6dCl8MCkrTWF0aC5pbXVsKEplLG90KXwwLEE9QStNYXRoLmltdWwoSmUsenQpfDAsRT1FK01hdGguaW11bChEZSxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKERlLEF0KXwwKStN'@; put 'YXRoLmltdWwoa2UsV2UpfDAsQT1BK01hdGguaW11bChrZSxBdCl8MCxFPUUrTWF0aC5pbXVsKFJlLGh0KXwwLG09KG09bStNYXRoLmltdWwoUmUsRXQpfDApK01hdGguaW11bChJZSxodCl8MCxBPUErTWF0aC5pbXVsKEllLEV0KXwwLEU9RStNYXRoLmltdWwoamUsYW4pfDAsbT0obT1tK01h'@; put 'dGguaW11bChqZSxqdCl8MCkrTWF0aC5pbXVsKEFlLGFuKXwwLEE9QStNYXRoLmltdWwoQWUsanQpfDAsRT1FK01hdGguaW11bCh4ZSxjbil8MCxtPShtPW0rTWF0aC5pbXVsKHhlLGZuKXwwKStNYXRoLmltdWwodmUsY24pfDAsQT1BK01hdGguaW11bCh2ZSxmbil8MDt2YXIgUHI9KFUrKEU9'@; put 'RStNYXRoLmltdWwoWmUsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChaZSx0bil8MCkrTWF0aC5pbXVsKFFlLFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKFFlLHRuKXwwKSsobT4+PjEzKXwwKSsoUHI+Pj4yNil8MCxQciY9NjcxMDg4NjMsRT1NYXRoLmltdWwo'@; put 'TmUsZG4pLG09KG09TWF0aC5pbXVsKE5lLGZ0KSkrTWF0aC5pbXVsKHV0LGRuKXwwLEE9TWF0aC5pbXVsKHV0LGZ0KSxFPUUrTWF0aC5pbXVsKHJ0LFp0KXwwLG09KG09bStNYXRoLmltdWwocnQsa3QpfDApK01hdGguaW11bChLZSxadCl8MCxBPUErTWF0aC5pbXVsKEtlLGt0KXwwLEU9RStN'@; put 'YXRoLmltdWwoeXQsb3QpfDAsbT0obT1tK01hdGguaW11bCh5dCx6dCl8MCkrTWF0aC5pbXVsKE10LG90KXwwLEE9QStNYXRoLmltdWwoTXQsenQpfDAsRT1FK01hdGguaW11bChudCxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKG50LEF0KXwwKStNYXRoLmltdWwoSmUsV2UpfDAsQT1BK01hdGgu'@; put 'aW11bChKZSxBdCl8MCxFPUUrTWF0aC5pbXVsKERlLGh0KXwwLG09KG09bStNYXRoLmltdWwoRGUsRXQpfDApK01hdGguaW11bChrZSxodCl8MCxBPUErTWF0aC5pbXVsKGtlLEV0KXwwLEU9RStNYXRoLmltdWwoUmUsYW4pfDAsbT0obT1tK01hdGguaW11bChSZSxqdCl8MCkrTWF0aC5pbXVs'@; put 'KEllLGFuKXwwLEE9QStNYXRoLmltdWwoSWUsanQpfDAsRT1FK01hdGguaW11bChqZSxjbil8MCxtPShtPW0rTWF0aC5pbXVsKGplLGZuKXwwKStNYXRoLmltdWwoQWUsY24pfDAsQT1BK01hdGguaW11bChBZSxmbil8MDt2YXIgWWk9KFUrKEU9RStNYXRoLmltdWwoeGUsUXQpfDApfDApKygo'@; put 'ODE5MSYobT0obT1tK01hdGguaW11bCh4ZSx0bil8MCkrTWF0aC5pbXVsKHZlLFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKHZlLHRuKXwwKSsobT4+PjEzKXwwKSsoWWk+Pj4yNil8MCxZaSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsWnQpLG09KG09TWF0aC5pbXVsKE5lLGt0'@; put 'KSkrTWF0aC5pbXVsKHV0LFp0KXwwLEE9TWF0aC5pbXVsKHV0LGt0KSxFPUUrTWF0aC5pbXVsKHJ0LG90KXwwLG09KG09bStNYXRoLmltdWwocnQsenQpfDApK01hdGguaW11bChLZSxvdCl8MCxBPUErTWF0aC5pbXVsKEtlLHp0KXwwLEU9RStNYXRoLmltdWwoeXQsV2UpfDAsbT0obT1tK01h'@; put 'dGguaW11bCh5dCxBdCl8MCkrTWF0aC5pbXVsKE10LFdlKXwwLEE9QStNYXRoLmltdWwoTXQsQXQpfDAsRT1FK01hdGguaW11bChudCxodCl8MCxtPShtPW0rTWF0aC5pbXVsKG50LEV0KXwwKStNYXRoLmltdWwoSmUsaHQpfDAsQT1BK01hdGguaW11bChKZSxFdCl8MCxFPUUrTWF0aC5pbXVs'@; put 'KERlLGFuKXwwLG09KG09bStNYXRoLmltdWwoRGUsanQpfDApK01hdGguaW11bChrZSxhbil8MCxBPUErTWF0aC5pbXVsKGtlLGp0KXwwLEU9RStNYXRoLmltdWwoUmUsY24pfDAsbT0obT1tK01hdGguaW11bChSZSxmbil8MCkrTWF0aC5pbXVsKEllLGNuKXwwLEE9QStNYXRoLmltdWwoSWUs'@; put 'Zm4pfDA7dmFyIGZhPShVKyhFPUUrTWF0aC5pbXVsKGplLFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwoamUsdG4pfDApK01hdGguaW11bChBZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChBZSx0bil8MCkrKG0+Pj4xMyl8MCkrKGZhPj4+MjYpfDAsZmEmPTY3'@; put 'MTA4ODYzLEU9TWF0aC5pbXVsKE5lLG90KSxtPShtPU1hdGguaW11bChOZSx6dCkpK01hdGguaW11bCh1dCxvdCl8MCxBPU1hdGguaW11bCh1dCx6dCksRT1FK01hdGguaW11bChydCxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LEF0KXwwKStNYXRoLmltdWwoS2UsV2UpfDAsQT1BK01hdGgu'@; put 'aW11bChLZSxBdCl8MCxFPUUrTWF0aC5pbXVsKHl0LGh0KXwwLG09KG09bStNYXRoLmltdWwoeXQsRXQpfDApK01hdGguaW11bChNdCxodCl8MCxBPUErTWF0aC5pbXVsKE10LEV0KXwwLEU9RStNYXRoLmltdWwobnQsYW4pfDAsbT0obT1tK01hdGguaW11bChudCxqdCl8MCkrTWF0aC5pbXVs'@; put 'KEplLGFuKXwwLEE9QStNYXRoLmltdWwoSmUsanQpfDAsRT1FK01hdGguaW11bChEZSxjbil8MCxtPShtPW0rTWF0aC5pbXVsKERlLGZuKXwwKStNYXRoLmltdWwoa2UsY24pfDAsQT1BK01hdGguaW11bChrZSxmbil8MDt2YXIgbnI9KFUrKEU9RStNYXRoLmltdWwoUmUsUXQpfDApfDApKygo'@; put 'ODE5MSYobT0obT1tK01hdGguaW11bChSZSx0bil8MCkrTWF0aC5pbXVsKEllLFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKEllLHRuKXwwKSsobT4+PjEzKXwwKSsobnI+Pj4yNil8MCxuciY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsV2UpLG09KG09TWF0aC5pbXVsKE5lLEF0'@; put 'KSkrTWF0aC5pbXVsKHV0LFdlKXwwLEE9TWF0aC5pbXVsKHV0LEF0KSxFPUUrTWF0aC5pbXVsKHJ0LGh0KXwwLG09KG09bStNYXRoLmltdWwocnQsRXQpfDApK01hdGguaW11bChLZSxodCl8MCxBPUErTWF0aC5pbXVsKEtlLEV0KXwwLEU9RStNYXRoLmltdWwoeXQsYW4pfDAsbT0obT1tK01h'@; put 'dGguaW11bCh5dCxqdCl8MCkrTWF0aC5pbXVsKE10LGFuKXwwLEE9QStNYXRoLmltdWwoTXQsanQpfDAsRT1FK01hdGguaW11bChudCxjbil8MCxtPShtPW0rTWF0aC5pbXVsKG50LGZuKXwwKStNYXRoLmltdWwoSmUsY24pfDAsQT1BK01hdGguaW11bChKZSxmbil8MDt2YXIgb2E9KFUrKEU9'@; put 'RStNYXRoLmltdWwoRGUsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChEZSx0bil8MCkrTWF0aC5pbXVsKGtlLFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKGtlLHRuKXwwKSsobT4+PjEzKXwwKSsob2E+Pj4yNil8MCxvYSY9NjcxMDg4NjMsRT1NYXRoLmltdWwo'@; put 'TmUsaHQpLG09KG09TWF0aC5pbXVsKE5lLEV0KSkrTWF0aC5pbXVsKHV0LGh0KXwwLEE9TWF0aC5pbXVsKHV0LEV0KSxFPUUrTWF0aC5pbXVsKHJ0LGFuKXwwLG09KG09bStNYXRoLmltdWwocnQsanQpfDApK01hdGguaW11bChLZSxhbil8MCxBPUErTWF0aC5pbXVsKEtlLGp0KXwwLEU9RStN'@; put 'YXRoLmltdWwoeXQsY24pfDAsbT0obT1tK01hdGguaW11bCh5dCxmbil8MCkrTWF0aC5pbXVsKE10LGNuKXwwLEE9QStNYXRoLmltdWwoTXQsZm4pfDA7dmFyIF9hPShVKyhFPUUrTWF0aC5pbXVsKG50LFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobnQsdG4pfDApK01hdGgu'@; put 'aW11bChKZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChKZSx0bil8MCkrKG0+Pj4xMyl8MCkrKF9hPj4+MjYpfDAsX2EmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLGFuKSxtPShtPU1hdGguaW11bChOZSxqdCkpK01hdGguaW11bCh1dCxhbil8MCxBPU1hdGguaW11bCh1dCxq'@; put 'dCksRT1FK01hdGguaW11bChydCxjbil8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LGZuKXwwKStNYXRoLmltdWwoS2UsY24pfDAsQT1BK01hdGguaW11bChLZSxmbil8MDt2YXIgT2E9KFUrKEU9RStNYXRoLmltdWwoeXQsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bCh5dCx0bil8'@; put 'MCkrTWF0aC5pbXVsKE10LFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKE10LHRuKXwwKSsobT4+PjEzKXwwKSsoT2E+Pj4yNil8MCxPYSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsY24pLG09KG09TWF0aC5pbXVsKE5lLGZuKSkrTWF0aC5pbXVsKHV0LGNuKXwwLEE9TWF0aC5p'@; put 'bXVsKHV0LGZuKTt2YXIgTmE9KFUrKEU9RStNYXRoLmltdWwocnQsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChydCx0bil8MCkrTWF0aC5pbXVsKEtlLFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKEtlLHRuKXwwKSsobT4+PjEzKXwwKSsoTmE+Pj4yNil8MCxO'@; put 'YSY9NjcxMDg4NjM7dmFyIGVpPShVKyhFPU1hdGguaW11bChOZSxRdCkpfDApKygoODE5MSYobT0obT1NYXRoLmltdWwoTmUsdG4pKStNYXRoLmltdWwodXQsUXQpfDApKTw8MTMpfDA7cmV0dXJuIFU9KChBPU1hdGguaW11bCh1dCx0bikpKyhtPj4+MTMpfDApKyhlaT4+PjI2KXwwLGVpJj02'@; put 'NzEwODg2MyxWWzBdPWNhLFZbMV09eGksVlsyXT15cixWWzNdPUduLFZbNF09S2ksVls1XT1KcixWWzZdPVFyLFZbN109TmksVls4XT1IaSxWWzldPUlhLFZbMTBdPVByLFZbMTFdPVlpLFZbMTJdPWZhLFZbMTNdPW5yLFZbMTRdPW9hLFZbMTVdPV9hLFZbMTZdPU9hLFZbMTddPU5hLFZbMThd'@; put 'PWVpLDAhPT1VJiYoVlsxOV09VSx4Lmxlbmd0aCsrKSx4fTtmdW5jdGlvbiBRKHosZyx5KXtyZXR1cm4obmV3IHEpLm11bHAoeixnLHkpfWZ1bmN0aW9uIHEoeixnKXt0aGlzLng9eix0aGlzLnk9Z31NYXRoLmltdWx8fChaPVcpLHcucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKGcseSl7dmFy'@; put 'IHgsQz10aGlzLmxlbmd0aCtnLmxlbmd0aDtyZXR1cm4geD0xMD09PXRoaXMubGVuZ3RoJiYxMD09PWcubGVuZ3RoP1oodGhpcyxnLHkpOkM8NjM/Vyh0aGlzLGcseSk6QzwxMDI0P2Z1bmN0aW9uIFgoeixnLHkpe3kubmVnYXRpdmU9Zy5uZWdhdGl2ZV56Lm5lZ2F0aXZlLHkubGVuZ3RoPXou'@; put 'bGVuZ3RoK2cubGVuZ3RoO2Zvcih2YXIgeD0wLEM9MCxUPTA7VDx5Lmxlbmd0aC0xO1QrKyl7dmFyIFY9QztDPTA7Zm9yKHZhciBVPTY3MTA4ODYzJngsRT1NYXRoLm1pbihULGcubGVuZ3RoLTEpLG09TWF0aC5tYXgoMCxULXoubGVuZ3RoKzEpO208PUU7bSsrKXt2YXIgbGU9KDB8ei53b3Jk'@; put 'c1tULW1dKSooMHxnLndvcmRzW21dKSx3ZT02NzEwODg2MyZsZTtVPTY3MTA4ODYzJih3ZT13ZStVfDApLEMrPShWPShWPVYrKGxlLzY3MTA4ODY0fDApfDApKyh3ZT4+PjI2KXwwKT4+PjI2LFYmPTY3MTA4ODYzfXkud29yZHNbVF09VSx4PVYsVj1DfXJldHVybiAwIT09eD95LndvcmRzW1Rd'@; put 'PXg6eS5sZW5ndGgtLSx5LnN0cmlwKCl9KHRoaXMsZyx5KTpRKHRoaXMsZyx5KSx4fSxxLnByb3RvdHlwZS5tYWtlUkJUPWZ1bmN0aW9uKGcpe2Zvcih2YXIgeT1uZXcgQXJyYXkoZykseD13LnByb3RvdHlwZS5fY291bnRCaXRzKGcpLTEsQz0wO0M8ZztDKyspeVtDXT10aGlzLnJldkJpbihD'@; put 'LHgsZyk7cmV0dXJuIHl9LHEucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbihnLHkseCl7aWYoMD09PWd8fGc9PT14LTEpcmV0dXJuIGc7Zm9yKHZhciBDPTAsVD0wO1Q8eTtUKyspQ3w9KDEmZyk8PHktVC0xLGc+Pj0xO3JldHVybiBDfSxxLnByb3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKGcs'@; put 'eSx4LEMsVCxWKXtmb3IodmFyIFU9MDtVPFY7VSsrKUNbVV09eVtnW1VdXSxUW1VdPXhbZ1tVXV19LHEucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbihnLHkseCxDLFQsVil7dGhpcy5wZXJtdXRlKFYsZyx5LHgsQyxUKTtmb3IodmFyIFU9MTtVPFQ7VTw8PTEpZm9yKHZhciBFPVU8PDEs'@; put 'bT1NYXRoLmNvcygyKk1hdGguUEkvRSksQT1NYXRoLnNpbigyKk1hdGguUEkvRSksYWU9MDthZTxUO2FlKz1FKWZvcih2YXIgbmU9bSxsZT1BLHdlPTA7d2U8VTt3ZSsrKXt2YXIgWmU9eFthZSt3ZV0sUWU9Q1thZSt3ZV0sYXQ9eFthZSt3ZStVXSx4ZT1DW2FlK3dlK1VdLHZlPW5lKmF0LWxl'@; put 'KnhlO3hlPW5lKnhlK2xlKmF0LHhbYWUrd2VdPVplKyhhdD12ZSksQ1thZSt3ZV09UWUreGUseFthZSt3ZStVXT1aZS1hdCxDW2FlK3dlK1VdPVFlLXhlLHdlIT09RSYmKHZlPW0qbmUtQSpsZSxsZT1tKmxlK0EqbmUsbmU9dmUpfX0scS5wcm90b3R5cGUuZ3Vlc3NMZW4xM2I9ZnVuY3Rpb24o'@; put 'Zyx5KXt2YXIgeD0xfE1hdGgubWF4KHksZyksQz0xJngsVD0wO2Zvcih4PXgvMnwwO3g7eD4+Pj0xKVQrKztyZXR1cm4gMTw8VCsxK0N9LHEucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbihnLHkseCl7aWYoISh4PD0xKSlmb3IodmFyIEM9MDtDPHgvMjtDKyspe3ZhciBUPWdbQ107Z1tD'@; put 'XT1nW3gtQy0xXSxnW3gtQy0xXT1ULFQ9eVtDXSx5W0NdPS15W3gtQy0xXSx5W3gtQy0xXT0tVH19LHEucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbihnLHkpe2Zvcih2YXIgeD0wLEM9MDtDPHkvMjtDKyspe3ZhciBUPTgxOTIqTWF0aC5yb3VuZChnWzIqQysxXS95KStNYXRoLnJv'@; put 'dW5kKGdbMipDXS95KSt4O2dbQ109NjcxMDg4NjMmVCx4PVQ8NjcxMDg4NjQ/MDpULzY3MTA4ODY0fDB9cmV0dXJuIGd9LHEucHJvdG90eXBlLmNvbnZlcnQxM2I9ZnVuY3Rpb24oZyx5LHgsQyl7Zm9yKHZhciBUPTAsVj0wO1Y8eTtWKyspeFsyKlZdPTgxOTEmKFQrPTB8Z1tWXSkseFsyKlYr'@; put 'MV09ODE5MSYoVD4+Pj0xMyksVD4+Pj0xMztmb3IoVj0yKnk7VjxDOysrVil4W1ZdPTA7cCgwPT09VCkscCghKC04MTkyJlQpKX0scS5wcm90b3R5cGUuc3R1Yj1mdW5jdGlvbihnKXtmb3IodmFyIHk9bmV3IEFycmF5KGcpLHg9MDt4PGc7eCsrKXlbeF09MDtyZXR1cm4geX0scS5wcm90b3R5'@; put 'cGUubXVscD1mdW5jdGlvbihnLHkseCl7dmFyIEM9Mip0aGlzLmd1ZXNzTGVuMTNiKGcubGVuZ3RoLHkubGVuZ3RoKSxUPXRoaXMubWFrZVJCVChDKSxWPXRoaXMuc3R1YihDKSxVPW5ldyBBcnJheShDKSxFPW5ldyBBcnJheShDKSxtPW5ldyBBcnJheShDKSxBPW5ldyBBcnJheShDKSxhZT1u'@; put 'ZXcgQXJyYXkoQyksbmU9bmV3IEFycmF5KEMpLGxlPXgud29yZHM7bGUubGVuZ3RoPUMsdGhpcy5jb252ZXJ0MTNiKGcud29yZHMsZy5sZW5ndGgsVSxDKSx0aGlzLmNvbnZlcnQxM2IoeS53b3Jkcyx5Lmxlbmd0aCxBLEMpLHRoaXMudHJhbnNmb3JtKFUsVixFLG0sQyxUKSx0aGlzLnRyYW5z'@; put 'Zm9ybShBLFYsYWUsbmUsQyxUKTtmb3IodmFyIHdlPTA7d2U8Qzt3ZSsrKXt2YXIgWmU9RVt3ZV0qYWVbd2VdLW1bd2VdKm5lW3dlXTttW3dlXT1FW3dlXSpuZVt3ZV0rbVt3ZV0qYWVbd2VdLEVbd2VdPVplfXJldHVybiB0aGlzLmNvbmp1Z2F0ZShFLG0sQyksdGhpcy50cmFuc2Zvcm0oRSxt'@; put 'LGxlLFYsQyxUKSx0aGlzLmNvbmp1Z2F0ZShsZSxWLEMpLHRoaXMubm9ybWFsaXplMTNiKGxlLEMpLHgubmVnYXRpdmU9Zy5uZWdhdGl2ZV55Lm5lZ2F0aXZlLHgubGVuZ3RoPWcubGVuZ3RoK3kubGVuZ3RoLHguc3RyaXAoKX0sdy5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGcpe3ZhciB5PW5l'@; put 'dyB3KG51bGwpO3JldHVybiB5LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtnLmxlbmd0aCksdGhpcy5tdWxUbyhnLHkpfSx3LnByb3RvdHlwZS5tdWxmPWZ1bmN0aW9uKGcpe3ZhciB5PW5ldyB3KG51bGwpO3JldHVybiB5LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtnLmxlbmd0'@; put 'aCksUSh0aGlzLGcseSl9LHcucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5tdWxUbyhnLHRoaXMpfSx3LnByb3RvdHlwZS5pbXVsbj1mdW5jdGlvbihnKXtwKCJudW1iZXIiPT10eXBlb2YgZykscChnPDY3MTA4ODY0KTtmb3IodmFyIHk9MCx4PTA7eDx0'@; put 'aGlzLmxlbmd0aDt4Kyspe3ZhciBDPSgwfHRoaXMud29yZHNbeF0pKmcsVD0oNjcxMDg4NjMmQykrKDY3MTA4ODYzJnkpO3k+Pj0yNix5Kz1DLzY3MTA4ODY0fDAseSs9VD4+PjI2LHRoaXMud29yZHNbeF09NjcxMDg4NjMmVH1yZXR1cm4gMCE9PXkmJih0aGlzLndvcmRzW3hdPXksdGhpcy5s'@; put 'ZW5ndGgrKyksdGhpcy5sZW5ndGg9MD09PWc/MTp0aGlzLmxlbmd0aCx0aGlzfSx3LnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4oZyl9LHcucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sdy5wcm90b3R5'@; put 'cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sdy5wcm90b3R5cGUucG93PWZ1bmN0aW9uKGcpe3ZhciB5PWZ1bmN0aW9uIEIoeil7Zm9yKHZhciBnPW5ldyBBcnJheSh6LmJpdExlbmd0aCgpKSx5PTA7eTxnLmxlbmd0aDt5Kyspe3ZhciBDPXklMjY7'@; put 'Z1t5XT0oei53b3Jkc1t5LzI2fDBdJjE8PEMpPj4+Q31yZXR1cm4gZ30oZyk7aWYoMD09PXkubGVuZ3RoKXJldHVybiBuZXcgdygxKTtmb3IodmFyIHg9dGhpcyxDPTA7Qzx5Lmxlbmd0aCYmMD09PXlbQ107QysrLHg9eC5zcXIoKSk7aWYoKytDPHkubGVuZ3RoKWZvcih2YXIgVD14LnNxcigp'@; put 'O0M8eS5sZW5ndGg7QysrLFQ9VC5zcXIoKSkwIT09eVtDXSYmKHg9eC5tdWwoVCkpO3JldHVybiB4fSx3LnByb3RvdHlwZS5pdXNobG49ZnVuY3Rpb24oZyl7cCgibnVtYmVyIj09dHlwZW9mIGcmJmc+PTApO3ZhciBULHk9ZyUyNix4PShnLXkpLzI2LEM9NjcxMDg4NjM+Pj4yNi15PDwyNi15'@; put 'O2lmKDAhPT15KXt2YXIgVj0wO2ZvcihUPTA7VDx0aGlzLmxlbmd0aDtUKyspe3ZhciBVPXRoaXMud29yZHNbVF0mQzt0aGlzLndvcmRzW1RdPSgwfHRoaXMud29yZHNbVF0pLVU8PHl8VixWPVU+Pj4yNi15fVYmJih0aGlzLndvcmRzW1RdPVYsdGhpcy5sZW5ndGgrKyl9aWYoMCE9PXgpe2Zv'@; put 'cihUPXRoaXMubGVuZ3RoLTE7VD49MDtULS0pdGhpcy53b3Jkc1tUK3hdPXRoaXMud29yZHNbVF07Zm9yKFQ9MDtUPHg7VCsrKXRoaXMud29yZHNbVF09MDt0aGlzLmxlbmd0aCs9eH1yZXR1cm4gdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5pc2hsbj1mdW5jdGlvbihnKXtyZXR1cm4gcCgw'@; put 'PT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNobG4oZyl9LHcucHJvdG90eXBlLml1c2hybj1mdW5jdGlvbihnLHkseCl7dmFyIEM7cCgibnVtYmVyIj09dHlwZW9mIGcmJmc+PTApLEM9eT8oeS15JTI2KS8yNjowO3ZhciBUPWclMjYsVj1NYXRoLm1pbigoZy1UKS8yNix0aGlzLmxlbmd0aCks'@; put 'VT02NzEwODg2M142NzEwODg2Mz4+PlQ8PFQsRT14O2lmKEMtPVYsQz1NYXRoLm1heCgwLEMpLEUpe2Zvcih2YXIgbT0wO208VjttKyspRS53b3Jkc1ttXT10aGlzLndvcmRzW21dO0UubGVuZ3RoPVZ9aWYoMCE9PVYpaWYodGhpcy5sZW5ndGg+Vilmb3IodGhpcy5sZW5ndGgtPVYsbT0wO208'@; put 'dGhpcy5sZW5ndGg7bSsrKXRoaXMud29yZHNbbV09dGhpcy53b3Jkc1ttK1ZdO2Vsc2UgdGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTE7dmFyIEE9MDtmb3IobT10aGlzLmxlbmd0aC0xO20+PTAmJigwIT09QXx8bT49Qyk7bS0tKXt2YXIgYWU9MHx0aGlzLndvcmRzW21dO3RoaXMud29y'@; put 'ZHNbbV09QTw8MjYtVHxhZT4+PlQsQT1hZSZVfXJldHVybiBFJiYwIT09QSYmKEUud29yZHNbRS5sZW5ndGgrK109QSksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24oZyx5LHgp'@; put 'e3JldHVybiBwKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hybihnLHkseCl9LHcucHJvdG90eXBlLnNobG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbihnKX0sdy5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4o'@; put 'Zyl9LHcucHJvdG90eXBlLnNocm49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybihnKX0sdy5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4oZyl9LHcucHJvdG90eXBlLnRlc3RuPWZ1bmN0aW9uKGcpe3AoIm51bWJlciI9'@; put 'PXR5cGVvZiBnJiZnPj0wKTt2YXIgeT1nJTI2LHg9KGcteSkvMjY7cmV0dXJuISh0aGlzLmxlbmd0aDw9eHx8ISh0aGlzLndvcmRzW3hdJjE8PHkpKX0sdy5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKGcpe3AoIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgeT1nJTI2LHg9KGcteSkv'@; put 'MjY7cmV0dXJuIHAoMD09PXRoaXMubmVnYXRpdmUsImltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUgbnVtYmVycyIpLHRoaXMubGVuZ3RoPD14P3RoaXM6KDAhPT15JiZ4KyssdGhpcy5sZW5ndGg9TWF0aC5taW4oeCx0aGlzLmxlbmd0aCksMCE9PXkmJih0aGlzLndvcmRzW3RoaXMu'@; put 'bGVuZ3RoLTFdJj02NzEwODg2M142NzEwODg2Mz4+Pnk8PHkpLHRoaXMuc3RyaXAoKSl9LHcucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKGcpfSx3LnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbihnKXtyZXR1cm4gcCgibnVtYmVyIj09dHlw'@; put 'ZW9mIGcpLHAoZzw2NzEwODg2NCksZzwwP3RoaXMuaXN1Ym4oLWcpOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8Zz8odGhpcy53b3Jkc1swXT1nLSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2'@; put 'ZT0wLHRoaXMuaXN1Ym4oZyksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKGcpfSx3LnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24oZyl7dGhpcy53b3Jkc1swXSs9Zztmb3IodmFyIHk9MDt5PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3ldPj02NzEwODg2NDt5KyspdGhpcy53'@; put 'b3Jkc1t5XS09NjcxMDg4NjQseT09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1t5KzFdPTE6dGhpcy53b3Jkc1t5KzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLHkrMSksdGhpc30sdy5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24oZyl7aWYocCgibnVtYmVy'@; put 'Ij09dHlwZW9mIGcpLHAoZzw2NzEwODg2NCksZzwwKXJldHVybiB0aGlzLmlhZGRuKC1nKTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oZyksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09ZywxPT09dGhpcy5sZW5n'@; put 'dGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgeT0wO3k8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbeV08MDt5KyspdGhpcy53b3Jkc1t5XSs9NjcxMDg4NjQsdGhpcy53b3Jkc1t5KzFdLT0xO3JldHVy'@; put 'biB0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbihnKX0sdy5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKGcpfSx3LnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0'@; put 'dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSx3LnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sdy5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKGcseSx4KXt2YXIgVDt0aGlzLl9leHBhbmQoZy5sZW5ndGgreCk7dmFyIFYsVT0wO2Zv'@; put 'cihUPTA7VDxnLmxlbmd0aDtUKyspe1Y9KDB8dGhpcy53b3Jkc1tUK3hdKStVO3ZhciBFPSgwfGcud29yZHNbVF0pKnk7VT0oKFYtPTY3MTA4ODYzJkUpPj4yNiktKEUvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1tUK3hdPTY3MTA4ODYzJlZ9Zm9yKDtUPHRoaXMubGVuZ3RoLXg7VCsrKVU9KFY9'@; put 'KDB8dGhpcy53b3Jkc1tUK3hdKStVKT4+MjYsdGhpcy53b3Jkc1tUK3hdPTY3MTA4ODYzJlY7aWYoMD09PVUpcmV0dXJuIHRoaXMuc3RyaXAoKTtmb3IocCgtMT09PVUpLFU9MCxUPTA7VDx0aGlzLmxlbmd0aDtUKyspVT0oVj0tKDB8dGhpcy53b3Jkc1tUXSkrVSk+PjI2LHRoaXMud29yZHNb'@; put 'VF09NjcxMDg4NjMmVjtyZXR1cm4gdGhpcy5uZWdhdGl2ZT0xLHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuX3dvcmREaXY9ZnVuY3Rpb24oZyx5KXt2YXIgeCxDPXRoaXMuY2xvbmUoKSxUPWcsVj0wfFQud29yZHNbVC5sZW5ndGgtMV07MCE9KHg9MjYtdGhpcy5fY291bnRCaXRzKFYpKSYm'@; put 'KFQ9VC51c2hsbih4KSxDLml1c2hsbih4KSxWPTB8VC53b3Jkc1tULmxlbmd0aC0xXSk7dmFyIG0sRT1DLmxlbmd0aC1ULmxlbmd0aDtpZigibW9kIiE9PXkpeyhtPW5ldyB3KG51bGwpKS5sZW5ndGg9RSsxLG0ud29yZHM9bmV3IEFycmF5KG0ubGVuZ3RoKTtmb3IodmFyIEE9MDtBPG0ubGVu'@; put 'Z3RoO0ErKyltLndvcmRzW0FdPTB9dmFyIGFlPUMuY2xvbmUoKS5faXNobG5zdWJtdWwoVCwxLEUpOzA9PT1hZS5uZWdhdGl2ZSYmKEM9YWUsbSYmKG0ud29yZHNbRV09MSkpO2Zvcih2YXIgbmU9RS0xO25lPj0wO25lLS0pe3ZhciBsZT02NzEwODg2NCooMHxDLndvcmRzW1QubGVuZ3RoK25l'@; put 'XSkrKDB8Qy53b3Jkc1tULmxlbmd0aCtuZS0xXSk7Zm9yKGxlPU1hdGgubWluKGxlL1Z8MCw2NzEwODg2MyksQy5faXNobG5zdWJtdWwoVCxsZSxuZSk7MCE9PUMubmVnYXRpdmU7KWxlLS0sQy5uZWdhdGl2ZT0wLEMuX2lzaGxuc3VibXVsKFQsMSxuZSksQy5pc1plcm8oKXx8KEMubmVnYXRp'@; put 'dmVePTEpO20mJihtLndvcmRzW25lXT1sZSl9cmV0dXJuIG0mJm0uc3RyaXAoKSxDLnN0cmlwKCksImRpdiIhPT15JiYwIT09eCYmQy5pdXNocm4oeCkse2RpdjptfHxudWxsLG1vZDpDfX0sdy5wcm90b3R5cGUuZGl2bW9kPWZ1bmN0aW9uKGcseSx4KXtyZXR1cm4gcCghZy5pc1plcm8oKSks'@; put 'dGhpcy5pc1plcm8oKT97ZGl2Om5ldyB3KDApLG1vZDpuZXcgdygwKX06MCE9PXRoaXMubmVnYXRpdmUmJjA9PT1nLm5lZ2F0aXZlPyhWPXRoaXMubmVnKCkuZGl2bW9kKGcseSksIm1vZCIhPT15JiYoQz1WLmRpdi5uZWcoKSksImRpdiIhPT15JiYoVD1WLm1vZC5uZWcoKSx4JiYwIT09VC5u'@; put 'ZWdhdGl2ZSYmVC5pYWRkKGcpKSx7ZGl2OkMsbW9kOlR9KTowPT09dGhpcy5uZWdhdGl2ZSYmMCE9PWcubmVnYXRpdmU/KFY9dGhpcy5kaXZtb2QoZy5uZWcoKSx5KSwibW9kIiE9PXkmJihDPVYuZGl2Lm5lZygpKSx7ZGl2OkMsbW9kOlYubW9kfSk6dGhpcy5uZWdhdGl2ZSZnLm5lZ2F0aXZl'@; put 'PyhWPXRoaXMubmVnKCkuZGl2bW9kKGcubmVnKCkseSksImRpdiIhPT15JiYoVD1WLm1vZC5uZWcoKSx4JiYwIT09VC5uZWdhdGl2ZSYmVC5pc3ViKGcpKSx7ZGl2OlYuZGl2LG1vZDpUfSk6Zy5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKGcpPDA/e2RpdjpuZXcgdygwKSxtb2Q6dGhp'@; put 'c306MT09PWcubGVuZ3RoPyJkaXYiPT09eT97ZGl2OnRoaXMuZGl2bihnLndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT15P3tkaXY6bnVsbCxtb2Q6bmV3IHcodGhpcy5tb2RuKGcud29yZHNbMF0pKX06e2Rpdjp0aGlzLmRpdm4oZy53b3Jkc1swXSksbW9kOm5ldyB3KHRoaXMubW9kbihn'@; put 'LndvcmRzWzBdKSl9OnRoaXMuX3dvcmREaXYoZyx5KTt2YXIgQyxULFZ9LHcucHJvdG90eXBlLmRpdj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5kaXZtb2QoZywiZGl2IiwhMSkuZGl2fSx3LnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuZGl2bW9kKGcsIm1vZCIsITEp'@; put 'Lm1vZH0sdy5wcm90b3R5cGUudW1vZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5kaXZtb2QoZywibW9kIiwhMCkubW9kfSx3LnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbihnKXt2YXIgeT10aGlzLmRpdm1vZChnKTtpZih5Lm1vZC5pc1plcm8oKSlyZXR1cm4geS5kaXY7dmFyIHg9MCE9'@; put 'PXkuZGl2Lm5lZ2F0aXZlP3kubW9kLmlzdWIoZyk6eS5tb2QsQz1nLnVzaHJuKDEpLFQ9Zy5hbmRsbigxKSxWPXguY21wKEMpO3JldHVybiBWPDB8fDE9PT1UJiYwPT09Vj95LmRpdjowIT09eS5kaXYubmVnYXRpdmU/eS5kaXYuaXN1Ym4oMSk6eS5kaXYuaWFkZG4oMSl9LHcucHJvdG90eXBl'@; put 'Lm1vZG49ZnVuY3Rpb24oZyl7cChnPD02NzEwODg2Myk7Zm9yKHZhciB5PSgxPDwyNiklZyx4PTAsQz10aGlzLmxlbmd0aC0xO0M+PTA7Qy0tKXg9KHkqeCsoMHx0aGlzLndvcmRzW0NdKSklZztyZXR1cm4geH0sdy5wcm90b3R5cGUuaWRpdm49ZnVuY3Rpb24oZyl7cChnPD02NzEwODg2Myk7'@; put 'Zm9yKHZhciB5PTAseD10aGlzLmxlbmd0aC0xO3g+PTA7eC0tKXt2YXIgQz0oMHx0aGlzLndvcmRzW3hdKSs2NzEwODg2NCp5O3RoaXMud29yZHNbeF09Qy9nfDAseT1DJWd9cmV0dXJuIHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9u'@; put 'ZSgpLmlkaXZuKGcpfSx3LnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKGcpe3AoMD09PWcubmVnYXRpdmUpLHAoIWcuaXNaZXJvKCkpO3ZhciB5PXRoaXMseD1nLmNsb25lKCk7eT0wIT09eS5uZWdhdGl2ZT95LnVtb2QoZyk6eS5jbG9uZSgpO2Zvcih2YXIgQz1uZXcgdygxKSxUPW5ldyB3KDAp'@; put 'LFY9bmV3IHcoMCksVT1uZXcgdygxKSxFPTA7eS5pc0V2ZW4oKSYmeC5pc0V2ZW4oKTspeS5pdXNocm4oMSkseC5pdXNocm4oMSksKytFO2Zvcih2YXIgbT14LmNsb25lKCksQT15LmNsb25lKCk7IXkuaXNaZXJvKCk7KXtmb3IodmFyIGFlPTAsbmU9MTshKHkud29yZHNbMF0mbmUpJiZhZTwy'@; put 'NjsrK2FlLG5lPDw9MSk7aWYoYWU+MClmb3IoeS5pdXNocm4oYWUpO2FlLS0gPjA7KShDLmlzT2RkKCl8fFQuaXNPZGQoKSkmJihDLmlhZGQobSksVC5pc3ViKEEpKSxDLml1c2hybigxKSxULml1c2hybigxKTtmb3IodmFyIGxlPTAsd2U9MTshKHgud29yZHNbMF0md2UpJiZsZTwyNjsrK2xl'@; put 'LHdlPDw9MSk7aWYobGU+MClmb3IoeC5pdXNocm4obGUpO2xlLS0gPjA7KShWLmlzT2RkKCl8fFUuaXNPZGQoKSkmJihWLmlhZGQobSksVS5pc3ViKEEpKSxWLml1c2hybigxKSxVLml1c2hybigxKTt5LmNtcCh4KT49MD8oeS5pc3ViKHgpLEMuaXN1YihWKSxULmlzdWIoVSkpOih4LmlzdWIo'@; put 'eSksVi5pc3ViKEMpLFUuaXN1YihUKSl9cmV0dXJue2E6VixiOlUsZ2NkOnguaXVzaGxuKEUpfX0sdy5wcm90b3R5cGUuX2ludm1wPWZ1bmN0aW9uKGcpe3AoMD09PWcubmVnYXRpdmUpLHAoIWcuaXNaZXJvKCkpO3ZhciBhZSx5PXRoaXMseD1nLmNsb25lKCk7eT0wIT09eS5uZWdhdGl2ZT95'@; put 'LnVtb2QoZyk6eS5jbG9uZSgpO2Zvcih2YXIgQz1uZXcgdygxKSxUPW5ldyB3KDApLFY9eC5jbG9uZSgpO3kuY21wbigxKT4wJiZ4LmNtcG4oMSk+MDspe2Zvcih2YXIgVT0wLEU9MTshKHkud29yZHNbMF0mRSkmJlU8MjY7KytVLEU8PD0xKTtpZihVPjApZm9yKHkuaXVzaHJuKFUpO1UtLSA+'@; put 'MDspQy5pc09kZCgpJiZDLmlhZGQoViksQy5pdXNocm4oMSk7Zm9yKHZhciBtPTAsQT0xOyEoeC53b3Jkc1swXSZBKSYmbTwyNjsrK20sQTw8PTEpO2lmKG0+MClmb3IoeC5pdXNocm4obSk7bS0tID4wOylULmlzT2RkKCkmJlQuaWFkZChWKSxULml1c2hybigxKTt5LmNtcCh4KT49MD8oeS5p'@; put 'c3ViKHgpLEMuaXN1YihUKSk6KHguaXN1Yih5KSxULmlzdWIoQykpfXJldHVybihhZT0wPT09eS5jbXBuKDEpP0M6VCkuY21wbigwKTwwJiZhZS5pYWRkKGcpLGFlfSx3LnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24oZyl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gZy5hYnMoKTtpZihnLmlzWmVy'@; put 'bygpKXJldHVybiB0aGlzLmFicygpO3ZhciB5PXRoaXMuY2xvbmUoKSx4PWcuY2xvbmUoKTt5Lm5lZ2F0aXZlPTAseC5uZWdhdGl2ZT0wO2Zvcih2YXIgQz0wO3kuaXNFdmVuKCkmJnguaXNFdmVuKCk7QysrKXkuaXVzaHJuKDEpLHguaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDt5LmlzRXZlbigp'@; put 'Oyl5Lml1c2hybigxKTtmb3IoO3guaXNFdmVuKCk7KXguaXVzaHJuKDEpO3ZhciBUPXkuY21wKHgpO2lmKFQ8MCl7dmFyIFY9eTt5PXgseD1WfWVsc2UgaWYoMD09PVR8fDA9PT14LmNtcG4oMSkpYnJlYWs7eS5pc3ViKHgpfXJldHVybiB4Lml1c2hsbihDKX0sdy5wcm90b3R5cGUuaW52bT1m'@; put 'dW5jdGlvbihnKXtyZXR1cm4gdGhpcy5lZ2NkKGcpLmEudW1vZChnKX0sdy5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuISgxJnRoaXMud29yZHNbMF0pfSx3LnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiEoMSZ+dGhpcy53b3Jkc1swXSl9LHcucHJvdG90eXBl'@; put 'LmFuZGxuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLndvcmRzWzBdJmd9LHcucHJvdG90eXBlLmJpbmNuPWZ1bmN0aW9uKGcpe3AoIm51bWJlciI9PXR5cGVvZiBnKTt2YXIgeT1nJTI2LHg9KGcteSkvMjYsQz0xPDx5O2lmKHRoaXMubGVuZ3RoPD14KXJldHVybiB0aGlzLl9leHBhbmQoeCsx'@; put 'KSx0aGlzLndvcmRzW3hdfD1DLHRoaXM7Zm9yKHZhciBUPUMsVj14OzAhPT1UJiZWPHRoaXMubGVuZ3RoO1YrKyl7dmFyIFU9MHx0aGlzLndvcmRzW1ZdO1Q9KFUrPVQpPj4+MjYsdGhpcy53b3Jkc1tWXT1VJj02NzEwODg2M31yZXR1cm4gMCE9PVQmJih0aGlzLndvcmRzW1ZdPVQsdGhpcy5s'@; put 'ZW5ndGgrKyksdGhpc30sdy5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LHcucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24oZyl7dmFyIHgseT1nPDA7aWYoMCE9PXRoaXMubmVnYXRpdmUmJiF5KXJldHVybi0xO2lm'@; put 'KDA9PT10aGlzLm5lZ2F0aXZlJiZ5KXJldHVybiAxO2lmKHRoaXMuc3RyaXAoKSx0aGlzLmxlbmd0aD4xKXg9MTtlbHNle3kmJihnPS1nKSxwKGc8PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciBDPTB8dGhpcy53b3Jkc1swXTt4PUM9PT1nPzA6QzxnPy0xOjF9cmV0dXJuIDAh'@; put 'PT10aGlzLm5lZ2F0aXZlPzB8LXg6eH0sdy5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKGcpe2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Zy5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PWcubmVnYXRpdmUpcmV0dXJuIDE7dmFyIHk9dGhpcy51Y21wKGcpO3Jl'@; put 'dHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC15Onl9LHcucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24oZyl7aWYodGhpcy5sZW5ndGg+Zy5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8Zy5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciB5PTAseD10aGlzLmxlbmd0aC0xO3g+PTA7eC0tKXt2'@; put 'YXIgQz0wfHRoaXMud29yZHNbeF0sVD0wfGcud29yZHNbeF07aWYoQyE9PVQpe0M8VD95PS0xOkM+VCYmKHk9MSk7YnJlYWt9fXJldHVybiB5fSx3LnByb3RvdHlwZS5ndG49ZnVuY3Rpb24oZyl7cmV0dXJuIDE9PT10aGlzLmNtcG4oZyl9LHcucHJvdG90eXBlLmd0PWZ1bmN0aW9uKGcpe3Jl'@; put 'dHVybiAxPT09dGhpcy5jbXAoZyl9LHcucHJvdG90eXBlLmd0ZW49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY21wbihnKT49MH0sdy5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNtcChnKT49MH0sdy5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKGcpe3JldHVybi0xPT09'@; put 'dGhpcy5jbXBuKGcpfSx3LnByb3RvdHlwZS5sdD1mdW5jdGlvbihnKXtyZXR1cm4tMT09PXRoaXMuY21wKGcpfSx3LnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNtcG4oZyk8PTB9LHcucHJvdG90eXBlLmx0ZT1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbXAoZyk8'@; put 'PTB9LHcucHJvdG90eXBlLmVxbj1mdW5jdGlvbihnKXtyZXR1cm4gMD09PXRoaXMuY21wbihnKX0sdy5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oZyl7cmV0dXJuIDA9PT10aGlzLmNtcChnKX0sdy5yZWQ9ZnVuY3Rpb24oZyl7cmV0dXJuIG5ldyBTZShnKX0sdy5wcm90b3R5cGUudG9SZWQ9ZnVu'@; put 'Y3Rpb24oZyl7cmV0dXJuIHAoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IikscCgwPT09dGhpcy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxnLmNvbnZlcnRUbyh0aGlzKS5fZm9yY2VSZWQoZyl9LHcucHJvdG90eXBl'@; put 'LmZyb21SZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gcCh0aGlzLnJlZCwiZnJvbVJlZCB3b3JrcyBvbmx5IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSx3LnByb3RvdHlwZS5fZm9yY2VSZWQ9ZnVuY3Rpb24oZyl7cmV0dXJuIHRo'@; put 'aXMucmVkPWcsdGhpc30sdy5wcm90b3R5cGUuZm9yY2VSZWQ9ZnVuY3Rpb24oZyl7cmV0dXJuIHAoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VSZWQoZyl9LHcucHJvdG90eXBlLnJlZEFkZD1mdW5jdGlvbihnKXtyZXR1cm4g'@; put 'cCh0aGlzLnJlZCwicmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmFkZCh0aGlzLGcpfSx3LnByb3RvdHlwZS5yZWRJQWRkPWZ1bmN0aW9uKGcpe3JldHVybiBwKHRoaXMucmVkLCJyZWRJQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMu'@; put 'cmVkLmlhZGQodGhpcyxnKX0sdy5wcm90b3R5cGUucmVkU3ViPWZ1bmN0aW9uKGcpe3JldHVybiBwKHRoaXMucmVkLCJyZWRTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc3ViKHRoaXMsZyl9LHcucHJvdG90eXBlLnJlZElTdWI9ZnVuY3Rpb24oZyl7cmV0dXJu'@; put 'IHAodGhpcy5yZWQsInJlZElTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaXN1Yih0aGlzLGcpfSx3LnByb3RvdHlwZS5yZWRTaGw9ZnVuY3Rpb24oZyl7cmV0dXJuIHAodGhpcy5yZWQsInJlZFNobCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlz'@; put 'LnJlZC5zaGwodGhpcyxnKX0sdy5wcm90b3R5cGUucmVkTXVsPWZ1bmN0aW9uKGcpe3JldHVybiBwKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxnKSx0aGlzLnJlZC5tdWwodGhpcyxnKX0sdy5wcm90b3R5cGUu'@; put 'cmVkSU11bD1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsZyksdGhpcy5yZWQuaW11bCh0aGlzLGcpfSx3LnByb3RvdHlwZS5yZWRTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gcCh0'@; put 'aGlzLnJlZCwicmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcih0aGlzKX0sdy5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMucmVkLCJyZWRJU3FyIHdvcmtzIG9ubHkgd2l0aCBy'@; put 'ZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmlzcXIodGhpcyl9LHcucHJvdG90eXBlLnJlZFNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0'@; put 'aGlzKSx0aGlzLnJlZC5zcXJ0KHRoaXMpfSx3LnByb3RvdHlwZS5yZWRJbnZtPWZ1bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5yZWQsInJlZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaW52bSh0aGlzKX0sdy5wcm90'@; put 'b3R5cGUucmVkTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5yZWQsInJlZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5uZWcodGhpcyl9LHcucHJvdG90eXBlLnJlZFBvdz1mdW5jdGlvbihnKXtyZXR1cm4gcCh0'@; put 'aGlzLnJlZCYmIWcucmVkLCJyZWRQb3cobm9ybWFsTnVtKSIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnBvdyh0aGlzLGcpfTt2YXIgdGU9e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtmdW5jdGlvbiBpZSh6LGcpe3RoaXMubmFtZT16LHRo'@; put 'aXMucD1uZXcgdyhnLDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgdygxKS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9ZnVuY3Rpb24gc2UoKXtpZS5jYWxsKHRoaXMsImsyNTYiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZm'@; put 'ZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIpfWZ1bmN0aW9uIGdlKCl7aWUuY2FsbCh0aGlzLCJwMjI0IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEiKX1mdW5jdGlvbiBfZSgp'@; put 'e2llLmNhbGwodGhpcywicDE5MiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIil9ZnVuY3Rpb24gVGUoKXtpZS5jYWxsKHRoaXMsIjI1NTE5IiwiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYg'@; put 'ZmZmZmZmZmZmZmZmZmZlZCIpfWZ1bmN0aW9uIFNlKHope2lmKCJzdHJpbmciPT10eXBlb2Ygeil7dmFyIGc9dy5fcHJpbWUoeik7dGhpcy5tPWcucCx0aGlzLnByaW1lPWd9ZWxzZSBwKHouZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlzLm09eix0aGlzLnBy'@; put 'aW1lPW51bGx9ZnVuY3Rpb24gemUoeil7U2UuY2FsbCh0aGlzLHopLHRoaXMuc2hpZnQ9dGhpcy5tLmJpdExlbmd0aCgpLHRoaXMuc2hpZnQlMjYhPTAmJih0aGlzLnNoaWZ0Kz0yNi10aGlzLnNoaWZ0JTI2KSx0aGlzLnI9bmV3IHcoMSkuaXVzaGxuKHRoaXMuc2hpZnQpLHRoaXMucjI9dGhp'@; put 'cy5pbW9kKHRoaXMuci5zcXIoKSksdGhpcy5yaW52PXRoaXMuci5faW52bXAodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5yaW52Lm11bCh0aGlzLnIpLmlzdWJuKDEpLmRpdih0aGlzLm0pLHRoaXMubWludj10aGlzLm1pbnYudW1vZCh0aGlzLnIpLHRoaXMubWludj10aGlzLnIuc3ViKHRoaXMu'@; put 'bWludil9aWUucHJvdG90eXBlLl90bXA9ZnVuY3Rpb24oKXt2YXIgZz1uZXcgdyhudWxsKTtyZXR1cm4gZy53b3Jkcz1uZXcgQXJyYXkoTWF0aC5jZWlsKHRoaXMubi8xMykpLGd9LGllLnByb3RvdHlwZS5pcmVkdWNlPWZ1bmN0aW9uKGcpe3ZhciB4LHk9Zztkb3t0aGlzLnNwbGl0KHksdGhp'@; put 'cy50bXApLHg9KHk9KHk9dGhpcy5pbXVsSyh5KSkuaWFkZCh0aGlzLnRtcCkpLmJpdExlbmd0aCgpfXdoaWxlKHg+dGhpcy5uKTt2YXIgQz14PHRoaXMubj8tMTp5LnVjbXAodGhpcy5wKTtyZXR1cm4gMD09PUM/KHkud29yZHNbMF09MCx5Lmxlbmd0aD0xKTpDPjA/eS5pc3ViKHRoaXMucCk6'@; put 'dm9pZCAwIT09eS5zdHJpcD95LnN0cmlwKCk6eS5fc3RyaXAoKSx5fSxpZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oZyx5KXtnLml1c2hybih0aGlzLm4sMCx5KX0saWUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKGcpe3JldHVybiBnLmltdWwodGhpcy5rKX0sTihzZSxpZSksc2UucHJv'@; put 'dG90eXBlLnNwbGl0PWZ1bmN0aW9uKGcseSl7Zm9yKHZhciB4PTQxOTQzMDMsQz1NYXRoLm1pbihnLmxlbmd0aCw5KSxUPTA7VDxDO1QrKyl5LndvcmRzW1RdPWcud29yZHNbVF07aWYoeS5sZW5ndGg9QyxnLmxlbmd0aDw9OSlyZXR1cm4gZy53b3Jkc1swXT0wLHZvaWQoZy5sZW5ndGg9MSk7'@; put 'dmFyIFY9Zy53b3Jkc1s5XTtmb3IoeS53b3Jkc1t5Lmxlbmd0aCsrXT1WJngsVD0xMDtUPGcubGVuZ3RoO1QrKyl7dmFyIFU9MHxnLndvcmRzW1RdO2cud29yZHNbVC0xMF09KFUmeCk8PDR8Vj4+PjIyLFY9VX1nLndvcmRzW1QtMTBdPVY+Pj49MjIsZy5sZW5ndGgtPTA9PT1WJiZnLmxlbmd0'@; put 'aD4xMD8xMDo5fSxzZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oZyl7Zy53b3Jkc1tnLmxlbmd0aF09MCxnLndvcmRzW2cubGVuZ3RoKzFdPTAsZy5sZW5ndGgrPTI7Zm9yKHZhciB5PTAseD0wO3g8Zy5sZW5ndGg7eCsrKXt2YXIgQz0wfGcud29yZHNbeF07Zy53b3Jkc1t4XT02NzEwODg2'@; put 'MyYoeSs9OTc3KkMpLHk9NjQqQysoeS82NzEwODg2NHwwKX1yZXR1cm4gMD09PWcud29yZHNbZy5sZW5ndGgtMV0mJihnLmxlbmd0aC0tLDA9PT1nLndvcmRzW2cubGVuZ3RoLTFdJiZnLmxlbmd0aC0tKSxnfSxOKGdlLGllKSxOKF9lLGllKSxOKFRlLGllKSxUZS5wcm90b3R5cGUuaW11bEs9'@; put 'ZnVuY3Rpb24oZyl7Zm9yKHZhciB5PTAseD0wO3g8Zy5sZW5ndGg7eCsrKXt2YXIgQz0xOSooMHxnLndvcmRzW3hdKSt5LFQ9NjcxMDg4NjMmQztDPj4+PTI2LGcud29yZHNbeF09VCx5PUN9cmV0dXJuIDAhPT15JiYoZy53b3Jkc1tnLmxlbmd0aCsrXT15KSxnfSx3Ll9wcmltZT1mdW5jdGlv'@; put 'bihnKXtpZih0ZVtnXSlyZXR1cm4gdGVbZ107dmFyIHk7aWYoImsyNTYiPT09Zyl5PW5ldyBzZTtlbHNlIGlmKCJwMjI0Ij09PWcpeT1uZXcgZ2U7ZWxzZSBpZigicDE5MiI9PT1nKXk9bmV3IF9lO2Vsc2V7aWYoInAyNTUxOSIhPT1nKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAi'@; put 'K2cpO3k9bmV3IFRlfXJldHVybiB0ZVtnXT15LHl9LFNlLnByb3RvdHlwZS5fdmVyaWZ5MT1mdW5jdGlvbihnKXtwKDA9PT1nLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLHAoZy5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sU2UucHJv'@; put 'dG90eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKGcseSl7cCghKGcubmVnYXRpdmV8eS5uZWdhdGl2ZSksInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIikscChnLnJlZCYmZy5yZWQ9PT15LnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxTZS5wcm90b3R5cGUuaW1v'@; put 'ZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5wcmltZT90aGlzLnByaW1lLmlyZWR1Y2UoZykuX2ZvcmNlUmVkKHRoaXMpOmcudW1vZCh0aGlzLm0pLl9mb3JjZVJlZCh0aGlzKX0sU2UucHJvdG90eXBlLm5lZz1mdW5jdGlvbihnKXtyZXR1cm4gZy5pc1plcm8oKT9nLmNsb25lKCk6dGhpcy5t'@; put 'LnN1YihnKS5fZm9yY2VSZWQodGhpcyl9LFNlLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZyx5KXt0aGlzLl92ZXJpZnkyKGcseSk7dmFyIHg9Zy5hZGQoeSk7cmV0dXJuIHguY21wKHRoaXMubSk+PTAmJnguaXN1Yih0aGlzLm0pLHguX2ZvcmNlUmVkKHRoaXMpfSxTZS5wcm90b3R5cGUuaWFk'@; put 'ZD1mdW5jdGlvbihnLHkpe3RoaXMuX3ZlcmlmeTIoZyx5KTt2YXIgeD1nLmlhZGQoeSk7cmV0dXJuIHguY21wKHRoaXMubSk+PTAmJnguaXN1Yih0aGlzLm0pLHh9LFNlLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oZyx5KXt0aGlzLl92ZXJpZnkyKGcseSk7dmFyIHg9Zy5zdWIoeSk7cmV0dXJu'@; put 'IHguY21wbigwKTwwJiZ4LmlhZGQodGhpcy5tKSx4Ll9mb3JjZVJlZCh0aGlzKX0sU2UucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24oZyx5KXt0aGlzLl92ZXJpZnkyKGcseSk7dmFyIHg9Zy5pc3ViKHkpO3JldHVybiB4LmNtcG4oMCk8MCYmeC5pYWRkKHRoaXMubSkseH0sU2UucHJvdG90eXBl'@; put 'LnNobD1mdW5jdGlvbihnLHkpe3JldHVybiB0aGlzLl92ZXJpZnkxKGcpLHRoaXMuaW1vZChnLnVzaGxuKHkpKX0sU2UucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oZyx5KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihnLHkpLHRoaXMuaW1vZChnLmltdWwoeSkpfSxTZS5wcm90b3R5cGUubXVsPWZ1'@; put 'bmN0aW9uKGcseSl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoZyx5KSx0aGlzLmltb2QoZy5tdWwoeSkpfSxTZS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5pbXVsKGcsZy5jbG9uZSgpKX0sU2UucHJvdG90eXBlLnNxcj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5tdWwo'@; put 'ZyxnKX0sU2UucHJvdG90eXBlLnNxcnQ9ZnVuY3Rpb24oZyl7aWYoZy5pc1plcm8oKSlyZXR1cm4gZy5jbG9uZSgpO3ZhciB5PXRoaXMubS5hbmRsbigzKTtpZihwKHklMj09MSksMz09PXkpe3ZhciB4PXRoaXMubS5hZGQobmV3IHcoMSkpLml1c2hybigyKTtyZXR1cm4gdGhpcy5wb3coZyx4'@; put 'KX1mb3IodmFyIEM9dGhpcy5tLnN1Ym4oMSksVD0wOyFDLmlzWmVybygpJiYwPT09Qy5hbmRsbigxKTspVCsrLEMuaXVzaHJuKDEpO3AoIUMuaXNaZXJvKCkpO3ZhciBWPW5ldyB3KDEpLnRvUmVkKHRoaXMpLFU9Vi5yZWROZWcoKSxFPXRoaXMubS5zdWJuKDEpLml1c2hybigxKSxtPXRoaXMu'@; put 'bS5iaXRMZW5ndGgoKTtmb3IobT1uZXcgdygyKm0qbSkudG9SZWQodGhpcyk7MCE9PXRoaXMucG93KG0sRSkuY21wKFUpOyltLnJlZElBZGQoVSk7Zm9yKHZhciBBPXRoaXMucG93KG0sQyksYWU9dGhpcy5wb3coZyxDLmFkZG4oMSkuaXVzaHJuKDEpKSxuZT10aGlzLnBvdyhnLEMpLGxlPVQ7'@; put 'MCE9PW5lLmNtcChWKTspe2Zvcih2YXIgd2U9bmUsWmU9MDswIT09d2UuY21wKFYpO1plKyspd2U9d2UucmVkU3FyKCk7cChaZTxsZSk7dmFyIFFlPXRoaXMucG93KEEsbmV3IHcoMSkuaXVzaGxuKGxlLVplLTEpKTthZT1hZS5yZWRNdWwoUWUpLEE9UWUucmVkU3FyKCksbmU9bmUucmVkTXVs'@; put 'KEEpLGxlPVplfXJldHVybiBhZX0sU2UucHJvdG90eXBlLmludm09ZnVuY3Rpb24oZyl7dmFyIHk9Zy5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PXkubmVnYXRpdmU/KHkubmVnYXRpdmU9MCx0aGlzLmltb2QoeSkucmVkTmVnKCkpOnRoaXMuaW1vZCh5KX0sU2UucHJvdG90eXBlLnBvdz1m'@; put 'dW5jdGlvbihnLHkpe2lmKHkuaXNaZXJvKCkpcmV0dXJuIG5ldyB3KDEpLnRvUmVkKHRoaXMpO2lmKDA9PT15LmNtcG4oMSkpcmV0dXJuIGcuY2xvbmUoKTt2YXIgQz1uZXcgQXJyYXkoMTYpO0NbMF09bmV3IHcoMSkudG9SZWQodGhpcyksQ1sxXT1nO2Zvcih2YXIgVD0yO1Q8Qy5sZW5ndGg7'@; put 'VCsrKUNbVF09dGhpcy5tdWwoQ1tULTFdLGcpO3ZhciBWPUNbMF0sVT0wLEU9MCxtPXkuYml0TGVuZ3RoKCklMjY7Zm9yKDA9PT1tJiYobT0yNiksVD15Lmxlbmd0aC0xO1Q+PTA7VC0tKXtmb3IodmFyIEE9eS53b3Jkc1tUXSxhZT1tLTE7YWU+PTA7YWUtLSl7dmFyIG5lPUE+PmFlJjE7ViE9'@; put 'PUNbMF0mJihWPXRoaXMuc3FyKFYpKSwwIT09bmV8fDAhPT1VPyhVPDw9MSxVfD1uZSwoND09KytFfHwwPT09VCYmMD09PWFlKSYmKFY9dGhpcy5tdWwoVixDW1VdKSxFPTAsVT0wKSk6RT0wfW09MjZ9cmV0dXJuIFZ9LFNlLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oZyl7dmFyIHk9'@; put 'Zy51bW9kKHRoaXMubSk7cmV0dXJuIHk9PT1nP3kuY2xvbmUoKTp5fSxTZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oZyl7dmFyIHk9Zy5jbG9uZSgpO3JldHVybiB5LnJlZD1udWxsLHl9LHcubW9udD1mdW5jdGlvbihnKXtyZXR1cm4gbmV3IHplKGcpfSxOKHplLFNlKSx6ZS5w'@; put 'cm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmltb2QoZy51c2hsbih0aGlzLnNoaWZ0KSl9LHplLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbihnKXt2YXIgeT10aGlzLmltb2QoZy5tdWwodGhpcy5yaW52KSk7cmV0dXJuIHkucmVkPW51bGwseX0semUu'@; put 'cHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oZyx5KXtpZihnLmlzWmVybygpfHx5LmlzWmVybygpKXJldHVybiBnLndvcmRzWzBdPTAsZy5sZW5ndGg9MSxnO3ZhciB4PWcuaW11bCh5KSxDPXgubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0'@; put 'aGlzLm0pLFQ9eC5pc3ViKEMpLml1c2hybih0aGlzLnNoaWZ0KSxWPVQ7cmV0dXJuIFQuY21wKHRoaXMubSk+PTA/Vj1ULmlzdWIodGhpcy5tKTpULmNtcG4oMCk8MCYmKFY9VC5pYWRkKHRoaXMubSkpLFYuX2ZvcmNlUmVkKHRoaXMpfSx6ZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGcseSl7'@; put 'aWYoZy5pc1plcm8oKXx8eS5pc1plcm8oKSlyZXR1cm4gbmV3IHcoMCkuX2ZvcmNlUmVkKHRoaXMpO3ZhciB4PWcubXVsKHkpLEM9eC5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksVD14LmlzdWIoQykuaXVzaHJuKHRoaXMu'@; put 'c2hpZnQpLFY9VDtyZXR1cm4gVC5jbXAodGhpcy5tKT49MD9WPVQuaXN1Yih0aGlzLm0pOlQuY21wbigwKTwwJiYoVj1ULmlhZGQodGhpcy5tKSksVi5fZm9yY2VSZWQodGhpcyl9LHplLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmltb2QoZy5faW52bXAodGhpcy5t'@; put 'KS5tdWwodGhpcy5yMikpLl9mb3JjZVJlZCh0aGlzKX19KGNlPWIubm1kKGNlKSx0aGlzKX0sNjcyMTE6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig3MTk5MyksXz1iKDM0NzI1KSxwPWIoMzY2MzYpLE49YigyNTQ0Myksdz1iKDMyNDcpO2Z1bmN0aW9uIEYoSCl7dy5jYWxsKHRo'@; put 'aXMsImRpZ2VzdCIpLHRoaXMuX2hhc2g9SH1EKEYsdyksRi5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihIKXt0aGlzLl9oYXNoLnVwZGF0ZShIKX0sRi5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2hhc2guZGlnZXN0KCl9LGNlLmV4cG9ydHM9ZnVuY3Rpb24o'@; put 'Uil7cmV0dXJuIm1kNSI9PT0oUj1SLnRvTG93ZXJDYXNlKCkpP25ldyBfOiJybWQxNjAiPT09Unx8InJpcGVtZDE2MCI9PT1SP25ldyBwOm5ldyBGKE4oUikpfX0sODM0MDc6KGNlLEosYik9Pnt2YXIgRD1iKDM0NzI1KTtjZS5leHBvcnRzPWZ1bmN0aW9uKF8pe3JldHVybihuZXcgRCkudXBk'@; put 'YXRlKF8pLmRpZ2VzdCgpfX0sNTY0MzI6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig3MTk5MyksXz1iKDkwNTA5KSxwPWIoMzI0NyksTj1iKDI3MDU0KS5CdWZmZXIsdz1iKDgzNDA3KSxGPWIoMzY2MzYpLEg9YigyNTQ0MyksUj1OLmFsbG9jKDEyOCk7ZnVuY3Rpb24gaihQLEwp'@; put 'e3AuY2FsbCh0aGlzLCJkaWdlc3QiKSwic3RyaW5nIj09dHlwZW9mIEwmJihMPU4uZnJvbShMKSk7dmFyIFk9InNoYTUxMiI9PT1QfHwic2hhMzg0Ij09PVA/MTI4OjY0O3RoaXMuX2FsZz1QLHRoaXMuX2tleT1MLEwubGVuZ3RoPlk/TD0oInJtZDE2MCI9PT1QP25ldyBGOkgoUCkpLnVwZGF0'@; put 'ZShMKS5kaWdlc3QoKTpMLmxlbmd0aDxZJiYoTD1OLmNvbmNhdChbTCxSXSxZKSk7Zm9yKHZhciBXPXRoaXMuX2lwYWQ9Ti5hbGxvY1Vuc2FmZShZKSxaPXRoaXMuX29wYWQ9Ti5hbGxvY1Vuc2FmZShZKSxYPTA7WDxZO1grKylXW1hdPTU0XkxbWF0sWltYXT05Ml5MW1hdO3RoaXMuX2hhc2g9'@; put 'InJtZDE2MCI9PT1QP25ldyBGOkgoUCksdGhpcy5faGFzaC51cGRhdGUoVyl9RChqLHApLGoucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oUCl7dGhpcy5faGFzaC51cGRhdGUoUCl9LGoucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3ZhciBQPXRoaXMuX2hhc2guZGlnZXN0KCk7cmV0'@; put 'dXJuKCJybWQxNjAiPT09dGhpcy5fYWxnP25ldyBGOkgodGhpcy5fYWxnKSkudXBkYXRlKHRoaXMuX29wYWQpLnVwZGF0ZShQKS5kaWdlc3QoKX0sY2UuZXhwb3J0cz1mdW5jdGlvbihMLFkpe3JldHVybiJybWQxNjAiPT09KEw9TC50b0xvd2VyQ2FzZSgpKXx8InJpcGVtZDE2MCI9PT1MP25l'@; put 'dyBqKCJybWQxNjAiLFkpOiJtZDUiPT09TD9uZXcgXyh3LFkpOm5ldyBqKEwsWSl9fSw5MDUwOTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDcxOTkzKSxfPWIoMjcwNTQpLkJ1ZmZlcixwPWIoMzI0NyksTj1fLmFsbG9jKDEyOCksdz02NDtmdW5jdGlvbiBGKEgsUil7cC5jYWxs'@; put 'KHRoaXMsImRpZ2VzdCIpLCJzdHJpbmciPT10eXBlb2YgUiYmKFI9Xy5mcm9tKFIpKSx0aGlzLl9hbGc9SCx0aGlzLl9rZXk9UixSLmxlbmd0aD53P1I9SChSKTpSLmxlbmd0aDx3JiYoUj1fLmNvbmNhdChbUixOXSx3KSk7Zm9yKHZhciBqPXRoaXMuX2lwYWQ9Xy5hbGxvY1Vuc2FmZSh3KSxQ'@; put 'PXRoaXMuX29wYWQ9Xy5hbGxvY1Vuc2FmZSh3KSxMPTA7TDx3O0wrKylqW0xdPTU0XlJbTF0sUFtMXT05Ml5SW0xdO3RoaXMuX2hhc2g9W2pdfUQoRixwKSxGLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKEgpe3RoaXMuX2hhc2gucHVzaChIKX0sRi5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0'@; put 'aW9uKCl7dmFyIEg9dGhpcy5fYWxnKF8uY29uY2F0KHRoaXMuX2hhc2gpKTtyZXR1cm4gdGhpcy5fYWxnKF8uY29uY2F0KFt0aGlzLl9vcGFkLEhdKSl9LGNlLmV4cG9ydHM9Rn0sOTE0MjY6KGNlLEosYik9PnsidXNlIHN0cmljdCI7Si5yYW5kb21CeXRlcz1KLnJuZz1KLnBzZXVkb1JhbmRv'@; put 'bUJ5dGVzPUoucHJuZz1iKDMzNDIpLEouY3JlYXRlSGFzaD1KLkhhc2g9Yig2NzIxMSksSi5jcmVhdGVIbWFjPUouSG1hYz1iKDU2NDMyKTt2YXIgRD1iKDk5NTYwKSxfPU9iamVjdC5rZXlzKEQpLHA9WyJzaGExIiwic2hhMjI0Iiwic2hhMjU2Iiwic2hhMzg0Iiwic2hhNTEyIiwibWQ1Iiwi'@; put 'cm1kMTYwIl0uY29uY2F0KF8pO0ouZ2V0SGFzaGVzPWZ1bmN0aW9uKCl7cmV0dXJuIHB9O3ZhciBOPWIoOTMzOTcpO0oucGJrZGYyPU4ucGJrZGYyLEoucGJrZGYyU3luYz1OLnBia2RmMlN5bmM7dmFyIHc9Yig4ODg2Mik7Si5DaXBoZXI9dy5DaXBoZXIsSi5jcmVhdGVDaXBoZXI9dy5jcmVh'@; put 'dGVDaXBoZXIsSi5DaXBoZXJpdj13LkNpcGhlcml2LEouY3JlYXRlQ2lwaGVyaXY9dy5jcmVhdGVDaXBoZXJpdixKLkRlY2lwaGVyPXcuRGVjaXBoZXIsSi5jcmVhdGVEZWNpcGhlcj13LmNyZWF0ZURlY2lwaGVyLEouRGVjaXBoZXJpdj13LkRlY2lwaGVyaXYsSi5jcmVhdGVEZWNpcGhlcml2'@; put 'PXcuY3JlYXRlRGVjaXBoZXJpdixKLmdldENpcGhlcnM9dy5nZXRDaXBoZXJzLEoubGlzdENpcGhlcnM9dy5saXN0Q2lwaGVyczt2YXIgRj1iKDQzNzcpO0ouRGlmZmllSGVsbG1hbkdyb3VwPUYuRGlmZmllSGVsbG1hbkdyb3VwLEouY3JlYXRlRGlmZmllSGVsbG1hbkdyb3VwPUYuY3JlYXRl'@; put 'RGlmZmllSGVsbG1hbkdyb3VwLEouZ2V0RGlmZmllSGVsbG1hbj1GLmdldERpZmZpZUhlbGxtYW4sSi5jcmVhdGVEaWZmaWVIZWxsbWFuPUYuY3JlYXRlRGlmZmllSGVsbG1hbixKLkRpZmZpZUhlbGxtYW49Ri5EaWZmaWVIZWxsbWFuO3ZhciBIPWIoNzkxNDMpO0ouY3JlYXRlU2lnbj1ILmNy'@; put 'ZWF0ZVNpZ24sSi5TaWduPUguU2lnbixKLmNyZWF0ZVZlcmlmeT1ILmNyZWF0ZVZlcmlmeSxKLlZlcmlmeT1ILlZlcmlmeSxKLmNyZWF0ZUVDREg9Yig4NzMwMyk7dmFyIFI9Yig1Mjk2NSk7Si5wdWJsaWNFbmNyeXB0PVIucHVibGljRW5jcnlwdCxKLnByaXZhdGVFbmNyeXB0PVIucHJpdmF0'@; put 'ZUVuY3J5cHQsSi5wdWJsaWNEZWNyeXB0PVIucHVibGljRGVjcnlwdCxKLnByaXZhdGVEZWNyeXB0PVIucHJpdmF0ZURlY3J5cHQ7dmFyIGo9Yig5NjgyKTtKLnJhbmRvbUZpbGw9ai5yYW5kb21GaWxsLEoucmFuZG9tRmlsbFN5bmM9ai5yYW5kb21GaWxsU3luYyxKLmNyZWF0ZUNyZWRlbnRp'@; put 'YWxzPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJzb3JyeSwgY3JlYXRlQ3JlZGVudGlhbHMgaXMgbm90IGltcGxlbWVudGVkIHlldFxud2UgYWNjZXB0IHB1bGwgcmVxdWVzdHNcbmh0dHBzOi8vZ2l0aHViLmNvbS9icm93c2VyaWZ5L2NyeXB0by1icm93c2VyaWZ5Iil9LEouY29uc3Rh'@; put 'bnRzPXtESF9DSEVDS19QX05PVF9TQUZFX1BSSU1FOjIsREhfQ0hFQ0tfUF9OT1RfUFJJTUU6MSxESF9VTkFCTEVfVE9fQ0hFQ0tfR0VORVJBVE9SOjQsREhfTk9UX1NVSVRBQkxFX0dFTkVSQVRPUjo4LE5QTl9FTkFCTEVEOjEsQUxQTl9FTkFCTEVEOjEsUlNBX1BLQ1MxX1BBRERJTkc6MSxS'@; put 'U0FfU1NMVjIzX1BBRERJTkc6MixSU0FfTk9fUEFERElORzozLFJTQV9QS0NTMV9PQUVQX1BBRERJTkc6NCxSU0FfWDkzMV9QQURESU5HOjUsUlNBX1BLQ1MxX1BTU19QQURESU5HOjYsUE9JTlRfQ09OVkVSU0lPTl9DT01QUkVTU0VEOjIsUE9JTlRfQ09OVkVSU0lPTl9VTkNPTVBSRVNTRUQ6'@; put 'NCxQT0lOVF9DT05WRVJTSU9OX0hZQlJJRDo2fX0sMTc2NTY6ZnVuY3Rpb24oY2UsSixiKXt2YXIgRDtjZS5leHBvcnRzPShEPUR8fGZ1bmN0aW9uKF8scCl7dmFyIE47aWYodHlwZW9mIHdpbmRvdzwidSImJndpbmRvdy5jcnlwdG8mJihOPXdpbmRvdy5jcnlwdG8pLHR5cGVvZiBzZWxmPCJ1'@; put 'IiYmc2VsZi5jcnlwdG8mJihOPXNlbGYuY3J5cHRvKSx0eXBlb2YgZ2xvYmFsVGhpczwidSImJmdsb2JhbFRoaXMuY3J5cHRvJiYoTj1nbG9iYWxUaGlzLmNyeXB0byksIU4mJnR5cGVvZiB3aW5kb3c8InUiJiZ3aW5kb3cubXNDcnlwdG8mJihOPXdpbmRvdy5tc0NyeXB0byksIU4mJnR5cGVv'@; put 'ZiBnbG9iYWw8InUiJiZnbG9iYWwuY3J5cHRvJiYoTj1nbG9iYWwuY3J5cHRvKSwhTil0cnl7Tj1iKDkxNDI2KX1jYXRjaHt9dmFyIHc9ZnVuY3Rpb24oKXtpZihOKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgTi5nZXRSYW5kb21WYWx1ZXMpdHJ5e3JldHVybiBOLmdldFJhbmRvbVZhbHVlcyhu'@; put 'ZXcgVWludDMyQXJyYXkoMSkpWzBdfWNhdGNoe31pZigiZnVuY3Rpb24iPT10eXBlb2YgTi5yYW5kb21CeXRlcyl0cnl7cmV0dXJuIE4ucmFuZG9tQnl0ZXMoNCkucmVhZEludDMyTEUoKX1jYXRjaHt9fXRocm93IG5ldyBFcnJvcigiTmF0aXZlIGNyeXB0byBtb2R1bGUgY291bGQgbm90IGJl'@; put 'IHVzZWQgdG8gZ2V0IHNlY3VyZSByYW5kb20gbnVtYmVyLiIpfSxGPU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcSgpe31yZXR1cm4gZnVuY3Rpb24odGUpe3ZhciBpZTtyZXR1cm4gcS5wcm90b3R5cGU9dGUsaWU9bmV3IHEscS5wcm90b3R5cGU9bnVsbCxpZX19KCksSD17'@; put 'fSxSPUgubGliPXt9LGo9Ui5CYXNlPWZ1bmN0aW9uKCl7cmV0dXJue2V4dGVuZDpmdW5jdGlvbihxKXt2YXIgdGU9Rih0aGlzKTtyZXR1cm4gcSYmdGUubWl4SW4ocSksKCF0ZS5oYXNPd25Qcm9wZXJ0eSgiaW5pdCIpfHx0aGlzLmluaXQ9PT10ZS5pbml0KSYmKHRlLmluaXQ9ZnVuY3Rpb24o'@; put 'KXt0ZS4kc3VwZXIuaW5pdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSx0ZS5pbml0LnByb3RvdHlwZT10ZSx0ZS4kc3VwZXI9dGhpcyx0ZX0sY3JlYXRlOmZ1bmN0aW9uKCl7dmFyIHE9dGhpcy5leHRlbmQoKTtyZXR1cm4gcS5pbml0LmFwcGx5KHEsYXJndW1lbnRzKSxxfSxpbml0OmZ1bmN0'@; put 'aW9uKCl7fSxtaXhJbjpmdW5jdGlvbihxKXtmb3IodmFyIHRlIGluIHEpcS5oYXNPd25Qcm9wZXJ0eSh0ZSkmJih0aGlzW3RlXT1xW3RlXSk7cS5oYXNPd25Qcm9wZXJ0eSgidG9TdHJpbmciKSYmKHRoaXMudG9TdHJpbmc9cS50b1N0cmluZyl9LGNsb25lOmZ1bmN0aW9uKCl7cmV0dXJuIHRo'@; put 'aXMuaW5pdC5wcm90b3R5cGUuZXh0ZW5kKHRoaXMpfX19KCksUD1SLldvcmRBcnJheT1qLmV4dGVuZCh7aW5pdDpmdW5jdGlvbihxLHRlKXtxPXRoaXMud29yZHM9cXx8W10sdGhpcy5zaWdCeXRlcz1udWxsIT10ZT90ZTo0KnEubGVuZ3RofSx0b1N0cmluZzpmdW5jdGlvbihxKXtyZXR1cm4o'@; put 'cXx8WSkuc3RyaW5naWZ5KHRoaXMpfSxjb25jYXQ6ZnVuY3Rpb24ocSl7dmFyIHRlPXRoaXMud29yZHMsaWU9cS53b3JkcyxzZT10aGlzLnNpZ0J5dGVzLGdlPXEuc2lnQnl0ZXM7aWYodGhpcy5jbGFtcCgpLHNlJTQpZm9yKHZhciBfZT0wO19lPGdlO19lKyspdGVbc2UrX2U+Pj4yXXw9KGll'@; put 'W19lPj4+Ml0+Pj4yNC1fZSU0KjgmMjU1KTw8MjQtKHNlK19lKSU0Kjg7ZWxzZSBmb3IodmFyIFNlPTA7U2U8Z2U7U2UrPTQpdGVbc2UrU2U+Pj4yXT1pZVtTZT4+PjJdO3JldHVybiB0aGlzLnNpZ0J5dGVzKz1nZSx0aGlzfSxjbGFtcDpmdW5jdGlvbigpe3ZhciBxPXRoaXMud29yZHMsdGU9'@; put 'dGhpcy5zaWdCeXRlcztxW3RlPj4+Ml0mPTQyOTQ5NjcyOTU8PDMyLXRlJTQqOCxxLmxlbmd0aD1fLmNlaWwodGUvNCl9LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHE9ai5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiBxLndvcmRzPXRoaXMud29yZHMuc2xpY2UoMCkscX0scmFuZG9tOmZ1bmN0aW9u'@; put 'KHEpe2Zvcih2YXIgdGU9W10saWU9MDtpZTxxO2llKz00KXRlLnB1c2godygpKTtyZXR1cm4gbmV3IFAuaW5pdCh0ZSxxKX19KSxMPUguZW5jPXt9LFk9TC5IZXg9e3N0cmluZ2lmeTpmdW5jdGlvbihxKXtmb3IodmFyIHRlPXEud29yZHMsaWU9cS5zaWdCeXRlcyxzZT1bXSxnZT0wO2dlPGll'@; put 'O2dlKyspe3ZhciBfZT10ZVtnZT4+PjJdPj4+MjQtZ2UlNCo4JjI1NTtzZS5wdXNoKChfZT4+PjQpLnRvU3RyaW5nKDE2KSksc2UucHVzaCgoMTUmX2UpLnRvU3RyaW5nKDE2KSl9cmV0dXJuIHNlLmpvaW4oIiIpfSxwYXJzZTpmdW5jdGlvbihxKXtmb3IodmFyIHRlPXEubGVuZ3RoLGllPVtd'@; put 'LHNlPTA7c2U8dGU7c2UrPTIpaWVbc2U+Pj4zXXw9cGFyc2VJbnQocS5zdWJzdHIoc2UsMiksMTYpPDwyNC1zZSU4KjQ7cmV0dXJuIG5ldyBQLmluaXQoaWUsdGUvMil9fSxCPUwuTGF0aW4xPXtzdHJpbmdpZnk6ZnVuY3Rpb24ocSl7Zm9yKHZhciB0ZT1xLndvcmRzLGllPXEuc2lnQnl0ZXMs'@; put 'c2U9W10sZ2U9MDtnZTxpZTtnZSsrKXNlLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZSh0ZVtnZT4+PjJdPj4+MjQtZ2UlNCo4JjI1NSkpO3JldHVybiBzZS5qb2luKCIiKX0scGFyc2U6ZnVuY3Rpb24ocSl7Zm9yKHZhciB0ZT1xLmxlbmd0aCxpZT1bXSxzZT0wO3NlPHRlO3NlKyspaWVbc2U+'@; put 'Pj4yXXw9KDI1NSZxLmNoYXJDb2RlQXQoc2UpKTw8MjQtc2UlNCo4O3JldHVybiBuZXcgUC5pbml0KGllLHRlKX19LFc9TC5VdGY4PXtzdHJpbmdpZnk6ZnVuY3Rpb24ocSl7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoZXNjYXBlKEIuc3RyaW5naWZ5KHEpKSl9Y2F0Y2h7dGhyb3cg'@; put 'bmV3IEVycm9yKCJNYWxmb3JtZWQgVVRGLTggZGF0YSIpfX0scGFyc2U6ZnVuY3Rpb24ocSl7cmV0dXJuIEIucGFyc2UodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHEpKSl9fSxaPVIuQnVmZmVyZWRCbG9ja0FsZ29yaXRobT1qLmV4dGVuZCh7cmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9k'@; put 'YXRhPW5ldyBQLmluaXQsdGhpcy5fbkRhdGFCeXRlcz0wfSxfYXBwZW5kOmZ1bmN0aW9uKHEpeyJzdHJpbmciPT10eXBlb2YgcSYmKHE9Vy5wYXJzZShxKSksdGhpcy5fZGF0YS5jb25jYXQocSksdGhpcy5fbkRhdGFCeXRlcys9cS5zaWdCeXRlc30sX3Byb2Nlc3M6ZnVuY3Rpb24ocSl7dmFy'@; put 'IHRlLGllPXRoaXMuX2RhdGEsc2U9aWUud29yZHMsZ2U9aWUuc2lnQnl0ZXMsX2U9dGhpcy5ibG9ja1NpemUsU2U9Z2UvKDQqX2UpLHplPShTZT1xP18uY2VpbChTZSk6Xy5tYXgoKDB8U2UpLXRoaXMuX21pbkJ1ZmZlclNpemUsMCkpKl9lLHo9Xy5taW4oNCp6ZSxnZSk7aWYoemUpe2Zvcih2'@; put 'YXIgZz0wO2c8emU7Zys9X2UpdGhpcy5fZG9Qcm9jZXNzQmxvY2soc2UsZyk7dGU9c2Uuc3BsaWNlKDAsemUpLGllLnNpZ0J5dGVzLT16fXJldHVybiBuZXcgUC5pbml0KHRlLHopfSxjbG9uZTpmdW5jdGlvbigpe3ZhciBxPWouY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gcS5fZGF0YT10aGlz'@; put 'Ll9kYXRhLmNsb25lKCkscX0sX21pbkJ1ZmZlclNpemU6MH0pLFE9KFIuSGFzaGVyPVouZXh0ZW5kKHtjZmc6ai5leHRlbmQoKSxpbml0OmZ1bmN0aW9uKHEpe3RoaXMuY2ZnPXRoaXMuY2ZnLmV4dGVuZChxKSx0aGlzLnJlc2V0KCl9LHJlc2V0OmZ1bmN0aW9uKCl7Wi5yZXNldC5jYWxsKHRo'@; put 'aXMpLHRoaXMuX2RvUmVzZXQoKX0sdXBkYXRlOmZ1bmN0aW9uKHEpe3JldHVybiB0aGlzLl9hcHBlbmQocSksdGhpcy5fcHJvY2VzcygpLHRoaXN9LGZpbmFsaXplOmZ1bmN0aW9uKHEpe3JldHVybiBxJiZ0aGlzLl9hcHBlbmQocSksdGhpcy5fZG9GaW5hbGl6ZSgpfSxibG9ja1NpemU6MTYs'@; put 'X2NyZWF0ZUhlbHBlcjpmdW5jdGlvbihxKXtyZXR1cm4gZnVuY3Rpb24odGUsaWUpe3JldHVybiBuZXcgcS5pbml0KGllKS5maW5hbGl6ZSh0ZSl9fSxfY3JlYXRlSG1hY0hlbHBlcjpmdW5jdGlvbihxKXtyZXR1cm4gZnVuY3Rpb24odGUsaWUpe3JldHVybiBuZXcgUS5ITUFDLmluaXQocSxp'@; put 'ZSkuZmluYWxpemUodGUpfX19KSxILmFsZ289e30pO3JldHVybiBIfShNYXRoKSxEKX0sNzg4NTU6ZnVuY3Rpb24oY2UsSixiKXt2YXIgRDtjZS5leHBvcnRzPShEPWIoMTc2NTYpLGZ1bmN0aW9uKF8pe3ZhciBwPUQsTj1wLmxpYix3PU4uV29yZEFycmF5LEY9Ti5IYXNoZXIsSD1wLmFsZ28s'@; put 'Uj1bXTshZnVuY3Rpb24oKXtmb3IodmFyIFc9MDtXPDY0O1crKylSW1ddPTQyOTQ5NjcyOTYqXy5hYnMoXy5zaW4oVysxKSl8MH0oKTt2YXIgaj1ILk1ENT1GLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPW5ldyB3LmluaXQoWzE3MzI1ODQxOTMsNDAyMzIzMzQxNywy'@; put 'NTYyMzgzMTAyLDI3MTczMzg3OF0pfSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24oVyxaKXtmb3IodmFyIFg9MDtYPDE2O1grKyl7dmFyIFE9WitYLHE9V1tRXTtXW1FdPTE2NzExOTM1JihxPDw4fHE+Pj4yNCl8NDI3ODI1NTM2MCYocTw8MjR8cT4+PjgpfXZhciB0ZT10aGlzLl9oYXNoLndv'@; put 'cmRzLGllPVdbWiswXSxzZT1XW1orMV0sZ2U9V1taKzJdLF9lPVdbWiszXSxUZT1XW1orNF0sU2U9V1taKzVdLHplPVdbWis2XSx6PVdbWis3XSxnPVdbWis4XSx5PVdbWis5XSx4PVdbWisxMF0sQz1XW1orMTFdLFQ9V1taKzEyXSxWPVdbWisxM10sVT1XW1orMTRdLEU9V1taKzE1XSxtPXRl'@; put 'WzBdLEE9dGVbMV0sYWU9dGVbMl0sbmU9dGVbM107bT1QKG0sQSxhZSxuZSxpZSw3LFJbMF0pLG5lPVAobmUsbSxBLGFlLHNlLDEyLFJbMV0pLGFlPVAoYWUsbmUsbSxBLGdlLDE3LFJbMl0pLEE9UChBLGFlLG5lLG0sX2UsMjIsUlszXSksbT1QKG0sQSxhZSxuZSxUZSw3LFJbNF0pLG5lPVAo'@; put 'bmUsbSxBLGFlLFNlLDEyLFJbNV0pLGFlPVAoYWUsbmUsbSxBLHplLDE3LFJbNl0pLEE9UChBLGFlLG5lLG0seiwyMixSWzddKSxtPVAobSxBLGFlLG5lLGcsNyxSWzhdKSxuZT1QKG5lLG0sQSxhZSx5LDEyLFJbOV0pLGFlPVAoYWUsbmUsbSxBLHgsMTcsUlsxMF0pLEE9UChBLGFlLG5lLG0s'@; put 'QywyMixSWzExXSksbT1QKG0sQSxhZSxuZSxULDcsUlsxMl0pLG5lPVAobmUsbSxBLGFlLFYsMTIsUlsxM10pLGFlPVAoYWUsbmUsbSxBLFUsMTcsUlsxNF0pLG09TChtLEE9UChBLGFlLG5lLG0sRSwyMixSWzE1XSksYWUsbmUsc2UsNSxSWzE2XSksbmU9TChuZSxtLEEsYWUsemUsOSxSWzE3'@; put 'XSksYWU9TChhZSxuZSxtLEEsQywxNCxSWzE4XSksQT1MKEEsYWUsbmUsbSxpZSwyMCxSWzE5XSksbT1MKG0sQSxhZSxuZSxTZSw1LFJbMjBdKSxuZT1MKG5lLG0sQSxhZSx4LDksUlsyMV0pLGFlPUwoYWUsbmUsbSxBLEUsMTQsUlsyMl0pLEE9TChBLGFlLG5lLG0sVGUsMjAsUlsyM10pLG09'@; put 'TChtLEEsYWUsbmUseSw1LFJbMjRdKSxuZT1MKG5lLG0sQSxhZSxVLDksUlsyNV0pLGFlPUwoYWUsbmUsbSxBLF9lLDE0LFJbMjZdKSxBPUwoQSxhZSxuZSxtLGcsMjAsUlsyN10pLG09TChtLEEsYWUsbmUsViw1LFJbMjhdKSxuZT1MKG5lLG0sQSxhZSxnZSw5LFJbMjldKSxhZT1MKGFlLG5l'@; put 'LG0sQSx6LDE0LFJbMzBdKSxtPVkobSxBPUwoQSxhZSxuZSxtLFQsMjAsUlszMV0pLGFlLG5lLFNlLDQsUlszMl0pLG5lPVkobmUsbSxBLGFlLGcsMTEsUlszM10pLGFlPVkoYWUsbmUsbSxBLEMsMTYsUlszNF0pLEE9WShBLGFlLG5lLG0sVSwyMyxSWzM1XSksbT1ZKG0sQSxhZSxuZSxzZSw0'@; put 'LFJbMzZdKSxuZT1ZKG5lLG0sQSxhZSxUZSwxMSxSWzM3XSksYWU9WShhZSxuZSxtLEEseiwxNixSWzM4XSksQT1ZKEEsYWUsbmUsbSx4LDIzLFJbMzldKSxtPVkobSxBLGFlLG5lLFYsNCxSWzQwXSksbmU9WShuZSxtLEEsYWUsaWUsMTEsUls0MV0pLGFlPVkoYWUsbmUsbSxBLF9lLDE2LFJb'@; put 'NDJdKSxBPVkoQSxhZSxuZSxtLHplLDIzLFJbNDNdKSxtPVkobSxBLGFlLG5lLHksNCxSWzQ0XSksbmU9WShuZSxtLEEsYWUsVCwxMSxSWzQ1XSksYWU9WShhZSxuZSxtLEEsRSwxNixSWzQ2XSksbT1CKG0sQT1ZKEEsYWUsbmUsbSxnZSwyMyxSWzQ3XSksYWUsbmUsaWUsNixSWzQ4XSksbmU9'@; put 'QihuZSxtLEEsYWUseiwxMCxSWzQ5XSksYWU9QihhZSxuZSxtLEEsVSwxNSxSWzUwXSksQT1CKEEsYWUsbmUsbSxTZSwyMSxSWzUxXSksbT1CKG0sQSxhZSxuZSxULDYsUls1Ml0pLG5lPUIobmUsbSxBLGFlLF9lLDEwLFJbNTNdKSxhZT1CKGFlLG5lLG0sQSx4LDE1LFJbNTRdKSxBPUIoQSxh'@; put 'ZSxuZSxtLHNlLDIxLFJbNTVdKSxtPUIobSxBLGFlLG5lLGcsNixSWzU2XSksbmU9QihuZSxtLEEsYWUsRSwxMCxSWzU3XSksYWU9QihhZSxuZSxtLEEsemUsMTUsUls1OF0pLEE9QihBLGFlLG5lLG0sViwyMSxSWzU5XSksbT1CKG0sQSxhZSxuZSxUZSw2LFJbNjBdKSxuZT1CKG5lLG0sQSxh'@; put 'ZSxDLDEwLFJbNjFdKSxhZT1CKGFlLG5lLG0sQSxnZSwxNSxSWzYyXSksQT1CKEEsYWUsbmUsbSx5LDIxLFJbNjNdKSx0ZVswXT10ZVswXSttfDAsdGVbMV09dGVbMV0rQXwwLHRlWzJdPXRlWzJdK2FlfDAsdGVbM109dGVbM10rbmV8MH0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgVz10'@; put 'aGlzLl9kYXRhLFo9Vy53b3JkcyxYPTgqdGhpcy5fbkRhdGFCeXRlcyxRPTgqVy5zaWdCeXRlcztaW1E+Pj41XXw9MTI4PDwyNC1RJTMyO3ZhciBxPV8uZmxvb3IoWC80Mjk0OTY3Mjk2KSx0ZT1YO1pbMTUrKFErNjQ+Pj45PDw0KV09MTY3MTE5MzUmKHE8PDh8cT4+PjI0KXw0Mjc4MjU1MzYw'@; put 'JihxPDwyNHxxPj4+OCksWlsxNCsoUSs2ND4+Pjk8PDQpXT0xNjcxMTkzNSYodGU8PDh8dGU+Pj4yNCl8NDI3ODI1NTM2MCYodGU8PDI0fHRlPj4+OCksVy5zaWdCeXRlcz00KihaLmxlbmd0aCsxKSx0aGlzLl9wcm9jZXNzKCk7Zm9yKHZhciBpZT10aGlzLl9oYXNoLHNlPWllLndvcmRzLGdl'@; put 'PTA7Z2U8NDtnZSsrKXt2YXIgX2U9c2VbZ2VdO3NlW2dlXT0xNjcxMTkzNSYoX2U8PDh8X2U+Pj4yNCl8NDI3ODI1NTM2MCYoX2U8PDI0fF9lPj4+OCl9cmV0dXJuIGllfSxjbG9uZTpmdW5jdGlvbigpe3ZhciBXPUYuY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gVy5faGFzaD10aGlzLl9oYXNo'@; put 'LmNsb25lKCksV319KTtmdW5jdGlvbiBQKFcsWixYLFEscSx0ZSxpZSl7dmFyIHNlPVcrKFomWHx+WiZRKStxK2llO3JldHVybihzZTw8dGV8c2U+Pj4zMi10ZSkrWn1mdW5jdGlvbiBMKFcsWixYLFEscSx0ZSxpZSl7dmFyIHNlPVcrKFomUXxYJn5RKStxK2llO3JldHVybihzZTw8dGV8c2U+'@; put 'Pj4zMi10ZSkrWn1mdW5jdGlvbiBZKFcsWixYLFEscSx0ZSxpZSl7dmFyIHNlPVcrKFpeWF5RKStxK2llO3JldHVybihzZTw8dGV8c2U+Pj4zMi10ZSkrWn1mdW5jdGlvbiBCKFcsWixYLFEscSx0ZSxpZSl7dmFyIHNlPVcrKFheKFp8flEpKStxK2llO3JldHVybihzZTw8dGV8c2U+Pj4zMi10'@; put 'ZSkrWn1wLk1ENT1GLl9jcmVhdGVIZWxwZXIoaikscC5IbWFjTUQ1PUYuX2NyZWF0ZUhtYWNIZWxwZXIoail9KE1hdGgpLEQuTUQ1KX0sOTI3MzY6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig0NTcwKSxfPWIoNTg0MTMpLHA9Yig0Njc1OCksTj1iKDgzNzk4KTtjZS5leHBvcnRz'@; put 'PWZ1bmN0aW9uKEYsSCxSKXtpZighRnx8Im9iamVjdCIhPXR5cGVvZiBGJiYiZnVuY3Rpb24iIT10eXBlb2YgRil0aHJvdyBuZXcgcCgiYG9iamAgbXVzdCBiZSBhbiBvYmplY3Qgb3IgYSBmdW5jdGlvbmAiKTtpZigic3RyaW5nIiE9dHlwZW9mIEgmJiJzeW1ib2wiIT10eXBlb2YgSCl0aHJv'@; put 'dyBuZXcgcCgiYHByb3BlcnR5YCBtdXN0IGJlIGEgc3RyaW5nIG9yIGEgc3ltYm9sYCIpO2lmKGFyZ3VtZW50cy5sZW5ndGg+MyYmImJvb2xlYW4iIT10eXBlb2YgYXJndW1lbnRzWzNdJiZudWxsIT09YXJndW1lbnRzWzNdKXRocm93IG5ldyBwKCJgbm9uRW51bWVyYWJsZWAsIGlmIHByb3Zp'@; put 'ZGVkLCBtdXN0IGJlIGEgYm9vbGVhbiBvciBudWxsIik7aWYoYXJndW1lbnRzLmxlbmd0aD40JiYiYm9vbGVhbiIhPXR5cGVvZiBhcmd1bWVudHNbNF0mJm51bGwhPT1hcmd1bWVudHNbNF0pdGhyb3cgbmV3IHAoImBub25Xcml0YWJsZWAsIGlmIHByb3ZpZGVkLCBtdXN0IGJlIGEgYm9vbGVh'@; put 'biBvciBudWxsIik7aWYoYXJndW1lbnRzLmxlbmd0aD41JiYiYm9vbGVhbiIhPXR5cGVvZiBhcmd1bWVudHNbNV0mJm51bGwhPT1hcmd1bWVudHNbNV0pdGhyb3cgbmV3IHAoImBub25Db25maWd1cmFibGVgLCBpZiBwcm92aWRlZCwgbXVzdCBiZSBhIGJvb2xlYW4gb3IgbnVsbCIpO2lmKGFy'@; put 'Z3VtZW50cy5sZW5ndGg+NiYmImJvb2xlYW4iIT10eXBlb2YgYXJndW1lbnRzWzZdKXRocm93IG5ldyBwKCJgbG9vc2VgLCBpZiBwcm92aWRlZCwgbXVzdCBiZSBhIGJvb2xlYW4iKTt2YXIgaj1hcmd1bWVudHMubGVuZ3RoPjM/YXJndW1lbnRzWzNdOm51bGwsUD1hcmd1bWVudHMubGVuZ3Ro'@; put 'PjQ/YXJndW1lbnRzWzRdOm51bGwsTD1hcmd1bWVudHMubGVuZ3RoPjU/YXJndW1lbnRzWzVdOm51bGwsWT1hcmd1bWVudHMubGVuZ3RoPjYmJmFyZ3VtZW50c1s2XSxCPSEhTiYmTihGLEgpO2lmKEQpRChGLEgse2NvbmZpZ3VyYWJsZTpudWxsPT09TCYmQj9CLmNvbmZpZ3VyYWJsZTohTCxl'@; put 'bnVtZXJhYmxlOm51bGw9PT1qJiZCP0IuZW51bWVyYWJsZTohaix2YWx1ZTpSLHdyaXRhYmxlOm51bGw9PT1QJiZCP0Iud3JpdGFibGU6IVB9KTtlbHNle2lmKCFZJiYoanx8UHx8TCkpdGhyb3cgbmV3IF8oIlRoaXMgZW52aXJvbm1lbnQgZG9lcyBub3Qgc3VwcG9ydCBkZWZpbmluZyBhIHBy'@; put 'b3BlcnR5IGFzIG5vbi1jb25maWd1cmFibGUsIG5vbi13cml0YWJsZSwgb3Igbm9uLWVudW1lcmFibGUuIik7RltIXT1SfX19LDcxNTQ5OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO0oudXRpbHM9Yig4NTY3MSksSi5DaXBoZXI9YigxMDIxOSksSi5ERVM9Yig2NDE2NiksSi5DQkM9Yig4ODgw'@; put 'MCksSi5FREU9Yig2MjEyMil9LDg4ODAwOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMzkyMTApLF89Yig3MTk5MykscD17fTtmdW5jdGlvbiBOKEYpe0QuZXF1YWwoRi5sZW5ndGgsOCwiSW52YWxpZCBJViBsZW5ndGgiKSx0aGlzLml2PW5ldyBBcnJheSg4KTtmb3IodmFyIEg9'@; put 'MDtIPHRoaXMuaXYubGVuZ3RoO0grKyl0aGlzLml2W0hdPUZbSF19Si5pbnN0YW50aWF0ZT1mdW5jdGlvbiB3KEYpe2Z1bmN0aW9uIEgoTCl7Ri5jYWxsKHRoaXMsTCksdGhpcy5fY2JjSW5pdCgpfV8oSCxGKTtmb3IodmFyIFI9T2JqZWN0LmtleXMocCksaj0wO2o8Ui5sZW5ndGg7aisrKXt2'@; put 'YXIgUD1SW2pdO0gucHJvdG90eXBlW1BdPXBbUF19cmV0dXJuIEguY3JlYXRlPWZ1bmN0aW9uKFkpe3JldHVybiBuZXcgSChZKX0sSH0scC5fY2JjSW5pdD1mdW5jdGlvbigpe3ZhciBIPW5ldyBOKHRoaXMub3B0aW9ucy5pdik7dGhpcy5fY2JjU3RhdGU9SH0scC5fdXBkYXRlPWZ1bmN0aW9u'@; put 'KEgsUixqLFApe3ZhciBZPXRoaXMuY29uc3RydWN0b3Iuc3VwZXJfLnByb3RvdHlwZSxCPXRoaXMuX2NiY1N0YXRlLml2O2lmKCJlbmNyeXB0Ij09PXRoaXMudHlwZSl7Zm9yKHZhciBXPTA7Vzx0aGlzLmJsb2NrU2l6ZTtXKyspQltXXV49SFtSK1ddO2ZvcihZLl91cGRhdGUuY2FsbCh0aGlz'@; put 'LEIsMCxqLFApLFc9MDtXPHRoaXMuYmxvY2tTaXplO1crKylCW1ddPWpbUCtXXX1lbHNle2ZvcihZLl91cGRhdGUuY2FsbCh0aGlzLEgsUixqLFApLFc9MDtXPHRoaXMuYmxvY2tTaXplO1crKylqW1ArV11ePUJbV107Zm9yKFc9MDtXPHRoaXMuYmxvY2tTaXplO1crKylCW1ddPUhbUitXXX19'@; put 'fSwxMDIxOTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDM5MjEwKTtmdW5jdGlvbiBfKHApe3RoaXMub3B0aW9ucz1wLHRoaXMudHlwZT10aGlzLm9wdGlvbnMudHlwZSx0aGlzLmJsb2NrU2l6ZT04LHRoaXMuX2luaXQoKSx0aGlzLmJ1ZmZlcj1uZXcgQXJyYXkodGhpcy5ibG9j'@; put 'a1NpemUpLHRoaXMuYnVmZmVyT2ZmPTAsdGhpcy5wYWRkaW5nPSExIT09cC5wYWRkaW5nfWNlLmV4cG9ydHM9XyxfLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbigpe30sXy5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKE4pe3JldHVybiAwPT09Ti5sZW5ndGg/W106ImRlY3J5cHQiPT09dGhp'@; put 'cy50eXBlP3RoaXMuX3VwZGF0ZURlY3J5cHQoTik6dGhpcy5fdXBkYXRlRW5jcnlwdChOKX0sXy5wcm90b3R5cGUuX2J1ZmZlcj1mdW5jdGlvbihOLHcpe2Zvcih2YXIgRj1NYXRoLm1pbih0aGlzLmJ1ZmZlci5sZW5ndGgtdGhpcy5idWZmZXJPZmYsTi5sZW5ndGgtdyksSD0wO0g8RjtIKysp'@; put 'dGhpcy5idWZmZXJbdGhpcy5idWZmZXJPZmYrSF09Tlt3K0hdO3JldHVybiB0aGlzLmJ1ZmZlck9mZis9RixGfSxfLnByb3RvdHlwZS5fZmx1c2hCdWZmZXI9ZnVuY3Rpb24oTix3KXtyZXR1cm4gdGhpcy5fdXBkYXRlKHRoaXMuYnVmZmVyLDAsTix3KSx0aGlzLmJ1ZmZlck9mZj0wLHRoaXMu'@; put 'YmxvY2tTaXplfSxfLnByb3RvdHlwZS5fdXBkYXRlRW5jcnlwdD1mdW5jdGlvbihOKXt2YXIgdz0wLEY9MCxSPW5ldyBBcnJheSgoKHRoaXMuYnVmZmVyT2ZmK04ubGVuZ3RoKS90aGlzLmJsb2NrU2l6ZXwwKSp0aGlzLmJsb2NrU2l6ZSk7MCE9PXRoaXMuYnVmZmVyT2ZmJiYodys9dGhpcy5f'@; put 'YnVmZmVyKE4sdyksdGhpcy5idWZmZXJPZmY9PT10aGlzLmJ1ZmZlci5sZW5ndGgmJihGKz10aGlzLl9mbHVzaEJ1ZmZlcihSLEYpKSk7Zm9yKHZhciBqPU4ubGVuZ3RoLShOLmxlbmd0aC13KSV0aGlzLmJsb2NrU2l6ZTt3PGo7dys9dGhpcy5ibG9ja1NpemUpdGhpcy5fdXBkYXRlKE4sdyxS'@; put 'LEYpLEYrPXRoaXMuYmxvY2tTaXplO2Zvcig7dzxOLmxlbmd0aDt3KyssdGhpcy5idWZmZXJPZmYrKyl0aGlzLmJ1ZmZlclt0aGlzLmJ1ZmZlck9mZl09Tlt3XTtyZXR1cm4gUn0sXy5wcm90b3R5cGUuX3VwZGF0ZURlY3J5cHQ9ZnVuY3Rpb24oTil7Zm9yKHZhciB3PTAsRj0wLEg9TWF0aC5j'@; put 'ZWlsKCh0aGlzLmJ1ZmZlck9mZitOLmxlbmd0aCkvdGhpcy5ibG9ja1NpemUpLTEsUj1uZXcgQXJyYXkoSCp0aGlzLmJsb2NrU2l6ZSk7SD4wO0gtLSl3Kz10aGlzLl9idWZmZXIoTix3KSxGKz10aGlzLl9mbHVzaEJ1ZmZlcihSLEYpO3JldHVybiB3Kz10aGlzLl9idWZmZXIoTix3KSxSfSxf'@; put 'LnByb3RvdHlwZS5maW5hbD1mdW5jdGlvbihOKXt2YXIgdyxGO3JldHVybiBOJiYodz10aGlzLnVwZGF0ZShOKSksRj0iZW5jcnlwdCI9PT10aGlzLnR5cGU/dGhpcy5fZmluYWxFbmNyeXB0KCk6dGhpcy5fZmluYWxEZWNyeXB0KCksdz93LmNvbmNhdChGKTpGfSxfLnByb3RvdHlwZS5fcGFk'@; put 'PWZ1bmN0aW9uKE4sdyl7aWYoMD09PXcpcmV0dXJuITE7Zm9yKDt3PE4ubGVuZ3RoOylOW3crK109MDtyZXR1cm4hMH0sXy5wcm90b3R5cGUuX2ZpbmFsRW5jcnlwdD1mdW5jdGlvbigpe2lmKCF0aGlzLl9wYWQodGhpcy5idWZmZXIsdGhpcy5idWZmZXJPZmYpKXJldHVybltdO3ZhciBOPW5l'@; put 'dyBBcnJheSh0aGlzLmJsb2NrU2l6ZSk7cmV0dXJuIHRoaXMuX3VwZGF0ZSh0aGlzLmJ1ZmZlciwwLE4sMCksTn0sXy5wcm90b3R5cGUuX3VucGFkPWZ1bmN0aW9uKE4pe3JldHVybiBOfSxfLnByb3RvdHlwZS5fZmluYWxEZWNyeXB0PWZ1bmN0aW9uKCl7RC5lcXVhbCh0aGlzLmJ1ZmZlck9m'@; put 'Zix0aGlzLmJsb2NrU2l6ZSwiTm90IGVub3VnaCBkYXRhIHRvIGRlY3J5cHQiKTt2YXIgTj1uZXcgQXJyYXkodGhpcy5ibG9ja1NpemUpO3JldHVybiB0aGlzLl9mbHVzaEJ1ZmZlcihOLDApLHRoaXMuX3VucGFkKE4pfX0sNjQxNjY6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yigz'@; put 'OTIxMCksXz1iKDcxOTkzKSxwPWIoODU2NzEpLE49YigxMDIxOSk7ZnVuY3Rpb24gdygpe3RoaXMudG1wPW5ldyBBcnJheSgyKSx0aGlzLmtleXM9bnVsbH1mdW5jdGlvbiBGKFIpe04uY2FsbCh0aGlzLFIpO3ZhciBqPW5ldyB3O3RoaXMuX2Rlc1N0YXRlPWosdGhpcy5kZXJpdmVLZXlzKGos'@; put 'Ui5rZXkpfV8oRixOKSxjZS5leHBvcnRzPUYsRi5jcmVhdGU9ZnVuY3Rpb24oail7cmV0dXJuIG5ldyBGKGopfTt2YXIgSD1bMSwxLDIsMiwyLDIsMiwyLDEsMiwyLDIsMiwyLDIsMV07Ri5wcm90b3R5cGUuZGVyaXZlS2V5cz1mdW5jdGlvbihqLFApe2oua2V5cz1uZXcgQXJyYXkoMzIpLEQu'@; put 'ZXF1YWwoUC5sZW5ndGgsdGhpcy5ibG9ja1NpemUsIkludmFsaWQga2V5IGxlbmd0aCIpO3ZhciBMPXAucmVhZFVJbnQzMkJFKFAsMCksWT1wLnJlYWRVSW50MzJCRShQLDQpO3AucGMxKEwsWSxqLnRtcCwwKSxMPWoudG1wWzBdLFk9ai50bXBbMV07Zm9yKHZhciBCPTA7QjxqLmtleXMubGVu'@; put 'Z3RoO0IrPTIpe3ZhciBXPUhbQj4+PjFdO0w9cC5yMjhzaGwoTCxXKSxZPXAucjI4c2hsKFksVykscC5wYzIoTCxZLGoua2V5cyxCKX19LEYucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oaixQLEwsWSl7dmFyIEI9dGhpcy5fZGVzU3RhdGUsVz1wLnJlYWRVSW50MzJCRShqLFApLFo9cC5y'@; put 'ZWFkVUludDMyQkUoaixQKzQpO3AuaXAoVyxaLEIudG1wLDApLFc9Qi50bXBbMF0sWj1CLnRtcFsxXSwiZW5jcnlwdCI9PT10aGlzLnR5cGU/dGhpcy5fZW5jcnlwdChCLFcsWixCLnRtcCwwKTp0aGlzLl9kZWNyeXB0KEIsVyxaLEIudG1wLDApLFo9Qi50bXBbMV0scC53cml0ZVVJbnQzMkJF'@; put 'KEwsVz1CLnRtcFswXSxZKSxwLndyaXRlVUludDMyQkUoTCxaLFkrNCl9LEYucHJvdG90eXBlLl9wYWQ9ZnVuY3Rpb24oaixQKXtpZighMT09PXRoaXMucGFkZGluZylyZXR1cm4hMTtmb3IodmFyIEw9ai5sZW5ndGgtUCxZPVA7WTxqLmxlbmd0aDtZKyspaltZXT1MO3JldHVybiEwfSxGLnBy'@; put 'b3RvdHlwZS5fdW5wYWQ9ZnVuY3Rpb24oail7aWYoITE9PT10aGlzLnBhZGRpbmcpcmV0dXJuIGo7Zm9yKHZhciBQPWpbai5sZW5ndGgtMV0sTD1qLmxlbmd0aC1QO0w8ai5sZW5ndGg7TCsrKUQuZXF1YWwoaltMXSxQKTtyZXR1cm4gai5zbGljZSgwLGoubGVuZ3RoLVApfSxGLnByb3RvdHlw'@; put 'ZS5fZW5jcnlwdD1mdW5jdGlvbihqLFAsTCxZLEIpe2Zvcih2YXIgVz1QLFo9TCxYPTA7WDxqLmtleXMubGVuZ3RoO1grPTIpe3ZhciBRPWoua2V5c1tYXSxxPWoua2V5c1tYKzFdO3AuZXhwYW5kKFosai50bXAsMCk7dmFyIHRlPXAuc3Vic3RpdHV0ZShRXj1qLnRtcFswXSxxXj1qLnRtcFsx'@; put 'XSksc2U9WjtaPShXXnAucGVybXV0ZSh0ZSkpPj4+MCxXPXNlfXAucmlwKFosVyxZLEIpfSxGLnByb3RvdHlwZS5fZGVjcnlwdD1mdW5jdGlvbihqLFAsTCxZLEIpe2Zvcih2YXIgVz1MLFo9UCxYPWoua2V5cy5sZW5ndGgtMjtYPj0wO1gtPTIpe3ZhciBRPWoua2V5c1tYXSxxPWoua2V5c1tY'@; put 'KzFdO3AuZXhwYW5kKFcsai50bXAsMCk7dmFyIHRlPXAuc3Vic3RpdHV0ZShRXj1qLnRtcFswXSxxXj1qLnRtcFsxXSksc2U9VztXPShaXnAucGVybXV0ZSh0ZSkpPj4+MCxaPXNlfXAucmlwKFcsWixZLEIpfX0sNjIxMjI6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigzOTIxMCks'@; put 'Xz1iKDcxOTkzKSxwPWIoMTAyMTkpLE49Yig2NDE2Nik7ZnVuY3Rpb24gdyhILFIpe0QuZXF1YWwoUi5sZW5ndGgsMjQsIkludmFsaWQga2V5IGxlbmd0aCIpO3ZhciBqPVIuc2xpY2UoMCw4KSxQPVIuc2xpY2UoOCwxNiksTD1SLnNsaWNlKDE2LDI0KTt0aGlzLmNpcGhlcnM9ImVuY3J5cHQi'@; put 'PT09SD9bTi5jcmVhdGUoe3R5cGU6ImVuY3J5cHQiLGtleTpqfSksTi5jcmVhdGUoe3R5cGU6ImRlY3J5cHQiLGtleTpQfSksTi5jcmVhdGUoe3R5cGU6ImVuY3J5cHQiLGtleTpMfSldOltOLmNyZWF0ZSh7dHlwZToiZGVjcnlwdCIsa2V5Okx9KSxOLmNyZWF0ZSh7dHlwZToiZW5jcnlwdCIs'@; put 'a2V5OlB9KSxOLmNyZWF0ZSh7dHlwZToiZGVjcnlwdCIsa2V5Omp9KV19ZnVuY3Rpb24gRihIKXtwLmNhbGwodGhpcyxIKTt2YXIgUj1uZXcgdyh0aGlzLnR5cGUsdGhpcy5vcHRpb25zLmtleSk7dGhpcy5fZWRlU3RhdGU9Un1fKEYscCksY2UuZXhwb3J0cz1GLEYuY3JlYXRlPWZ1bmN0aW9u'@; put 'KFIpe3JldHVybiBuZXcgRihSKX0sRi5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihSLGosUCxMKXt2YXIgWT10aGlzLl9lZGVTdGF0ZTtZLmNpcGhlcnNbMF0uX3VwZGF0ZShSLGosUCxMKSxZLmNpcGhlcnNbMV0uX3VwZGF0ZShQLEwsUCxMKSxZLmNpcGhlcnNbMl0uX3VwZGF0ZShQLEws'@; put 'UCxMKX0sRi5wcm90b3R5cGUuX3BhZD1OLnByb3RvdHlwZS5fcGFkLEYucHJvdG90eXBlLl91bnBhZD1OLnByb3RvdHlwZS5fdW5wYWR9LDg1NjcxOihjZSxKKT0+eyJ1c2Ugc3RyaWN0IjtKLnJlYWRVSW50MzJCRT1mdW5jdGlvbihOLHcpe3JldHVybihOWzArd108PDI0fE5bMSt3XTw8MTZ8'@; put 'TlsyK3ddPDw4fE5bMyt3XSk+Pj4wfSxKLndyaXRlVUludDMyQkU9ZnVuY3Rpb24oTix3LEYpe05bMCtGXT13Pj4+MjQsTlsxK0ZdPXc+Pj4xNiYyNTUsTlsyK0ZdPXc+Pj44JjI1NSxOWzMrRl09MjU1Jnd9LEouaXA9ZnVuY3Rpb24oTix3LEYsSCl7Zm9yKHZhciBSPTAsaj0wLFA9NjtQPj0w'@; put 'O1AtPTIpe2Zvcih2YXIgTD0wO0w8PTI0O0wrPTgpUjw8PTEsUnw9dz4+PkwrUCYxO2ZvcihMPTA7TDw9MjQ7TCs9OClSPDw9MSxSfD1OPj4+TCtQJjF9Zm9yKFA9NjtQPj0wO1AtPTIpe2ZvcihMPTE7TDw9MjU7TCs9OClqPDw9MSxqfD13Pj4+TCtQJjE7Zm9yKEw9MTtMPD0yNTtMKz04KWo8'@; put 'PD0xLGp8PU4+Pj5MK1AmMX1GW0grMF09Uj4+PjAsRltIKzFdPWo+Pj4wfSxKLnJpcD1mdW5jdGlvbihOLHcsRixIKXtmb3IodmFyIFI9MCxqPTAsUD0wO1A8NDtQKyspZm9yKHZhciBMPTI0O0w+PTA7TC09OClSPDw9MSxSfD13Pj4+TCtQJjEsUjw8PTEsUnw9Tj4+PkwrUCYxO2ZvcihQPTQ7'@; put 'UDw4O1ArKylmb3IoTD0yNDtMPj0wO0wtPTgpajw8PTEsanw9dz4+PkwrUCYxLGo8PD0xLGp8PU4+Pj5MK1AmMTtGW0grMF09Uj4+PjAsRltIKzFdPWo+Pj4wfSxKLnBjMT1mdW5jdGlvbihOLHcsRixIKXtmb3IodmFyIFI9MCxqPTAsUD03O1A+PTU7UC0tKXtmb3IodmFyIEw9MDtMPD0yNDtM'@; put 'Kz04KVI8PD0xLFJ8PXc+PkwrUCYxO2ZvcihMPTA7TDw9MjQ7TCs9OClSPDw9MSxSfD1OPj5MK1AmMX1mb3IoTD0wO0w8PTI0O0wrPTgpUjw8PTEsUnw9dz4+TCtQJjE7Zm9yKFA9MTtQPD0zO1ArKyl7Zm9yKEw9MDtMPD0yNDtMKz04KWo8PD0xLGp8PXc+PkwrUCYxO2ZvcihMPTA7TDw9MjQ7'@; put 'TCs9OClqPDw9MSxqfD1OPj5MK1AmMX1mb3IoTD0wO0w8PTI0O0wrPTgpajw8PTEsanw9Tj4+TCtQJjE7RltIKzBdPVI+Pj4wLEZbSCsxXT1qPj4+MH0sSi5yMjhzaGw9ZnVuY3Rpb24oTix3KXtyZXR1cm4gTjw8dyYyNjg0MzU0NTV8Tj4+PjI4LXd9O3ZhciBiPVsxNCwxMSwxNyw0LDI3LDIz'@; put 'LDI1LDAsMTMsMjIsNywxOCw1LDksMTYsMjQsMiwyMCwxMiwyMSwxLDgsMTUsMjYsMTUsNCwyNSwxOSw5LDEsMjYsMTYsNSwxMSwyMyw4LDEyLDcsMTcsMCwyMiwzLDEwLDE0LDYsMjAsMjcsMjRdO0oucGMyPWZ1bmN0aW9uKE4sdyxGLEgpe2Zvcih2YXIgUj0wLGo9MCxQPWIubGVuZ3RoPj4+'@; put 'MSxMPTA7TDxQO0wrKylSPDw9MSxSfD1OPj4+YltMXSYxO2ZvcihMPVA7TDxiLmxlbmd0aDtMKyspajw8PTEsanw9dz4+PmJbTF0mMTtGW0grMF09Uj4+PjAsRltIKzFdPWo+Pj4wfSxKLmV4cGFuZD1mdW5jdGlvbihOLHcsRil7dmFyIEg9MCxSPTA7SD0oMSZOKTw8NXxOPj4+Mjc7Zm9yKHZh'@; put 'ciBqPTIzO2o+PTE1O2otPTQpSDw8PTYsSHw9Tj4+PmomNjM7Zm9yKGo9MTE7aj49MztqLT00KVJ8PU4+Pj5qJjYzLFI8PD02O1J8PSgzMSZOKTw8MXxOPj4+MzEsd1tGKzBdPUg+Pj4wLHdbRisxXT1SPj4+MH07dmFyIEQ9WzE0LDAsNCwxNSwxMyw3LDEsNCwyLDE0LDE1LDIsMTEsMTMsOCwx'@; put 'LDMsMTAsMTAsNiw2LDEyLDEyLDExLDUsOSw5LDUsMCwzLDcsOCw0LDE1LDEsMTIsMTQsOCw4LDIsMTMsNCw2LDksMiwxLDExLDcsMTUsNSwxMiwxMSw5LDMsNywxNCwzLDEwLDEwLDAsNSw2LDAsMTMsMTUsMywxLDEzLDgsNCwxNCw3LDYsMTUsMTEsMiwzLDgsNCwxNCw5LDEyLDcsMCwyLDEs'@; put 'MTMsMTAsMTIsNiwwLDksNSwxMSwxMCw1LDAsMTMsMTQsOCw3LDEwLDExLDEsMTAsMyw0LDE1LDEzLDQsMSwyLDUsMTEsOCw2LDEyLDcsNiwxMiw5LDAsMyw1LDIsMTQsMTUsOSwxMCwxMywwLDcsOSwwLDE0LDksNiwzLDMsNCwxNSw2LDUsMTAsMSwyLDEzLDgsMTIsNSw3LDE0LDExLDEyLDQs'@; put 'MTEsMiwxNSw4LDEsMTMsMSw2LDEwLDQsMTMsOSwwLDgsNiwxNSw5LDMsOCwwLDcsMTEsNCwxLDE1LDIsMTQsMTIsMyw1LDExLDEwLDUsMTQsMiw3LDEyLDcsMTMsMTMsOCwxNCwxMSwzLDUsMCw2LDYsMTUsOSwwLDEwLDMsMSw0LDIsNyw4LDIsNSwxMiwxMSwxLDEyLDEwLDQsMTQsMTUsOSwx'@; put 'MCwzLDYsMTUsOSwwLDAsNiwxMiwxMCwxMSwxLDcsMTMsMTMsOCwxNSw5LDEsNCwzLDUsMTQsMTEsNSwxMiwyLDcsOCwyLDQsMTQsMiwxNCwxMiwxMSw0LDIsMSwxMiw3LDQsMTAsNywxMSwxMyw2LDEsOCw1LDUsMCwzLDE1LDE1LDEwLDEzLDMsMCw5LDE0LDgsOSw2LDQsMTEsMiw4LDEsMTIs'@; put 'MTEsNywxMCwxLDEzLDE0LDcsMiw4LDEzLDE1LDYsOSwxNSwxMiwwLDUsOSw2LDEwLDMsNCwwLDUsMTQsMywxMiwxMCwxLDE1LDEwLDQsMTUsMiw5LDcsMiwxMiw2LDksOCw1LDAsNiwxMywxLDMsMTMsNCwxNCwxNCwwLDcsMTEsNSwzLDExLDgsOSw0LDE0LDMsMTUsMiw1LDEyLDIsOSw4LDUs'@; put 'MTIsMTUsMywxMCw3LDExLDAsMTQsNCwxLDEwLDcsMSw2LDEzLDAsMTEsOCw2LDEzLDQsMTMsMTEsMCwyLDExLDE0LDcsMTUsNCwwLDksOCwxLDEzLDEwLDMsMTQsMTIsMyw5LDUsNywxMiw1LDIsMTAsMTUsNiw4LDEsNiwxLDYsNCwxMSwxMSwxMywxMyw4LDEyLDEsMyw0LDcsMTAsMTQsNywx'@; put 'MCw5LDE1LDUsNiwwLDgsMTUsMCwxNCw1LDIsOSwzLDIsMTIsMTMsMSwyLDE1LDgsMTMsNCw4LDYsMTAsMTUsMywxMSw3LDEsNCwxMCwxMiw5LDUsMyw2LDE0LDExLDUsMCwwLDE0LDEyLDksNywyLDcsMiwxMSwxLDQsMTQsMSw3LDksNCwxMiwxMCwxNCw4LDIsMTMsMCwxNSw2LDEyLDEwLDks'@; put 'MTMsMCwxNSwzLDMsNSw1LDYsOCwxMV07Si5zdWJzdGl0dXRlPWZ1bmN0aW9uKE4sdyl7Zm9yKHZhciBGPTAsSD0wO0g8NDtIKyspRjw8PTQsRnw9RFs2NCpIKyhOPj4+MTgtNipIJjYzKV07Zm9yKEg9MDtIPDQ7SCsrKUY8PD00LEZ8PURbMjU2KzY0KkgrKHc+Pj4xOC02KkgmNjMpXTtyZXR1'@; put 'cm4gRj4+PjB9O3ZhciBfPVsxNiwyNSwxMiwxMSwzLDIwLDQsMTUsMzEsMTcsOSw2LDI3LDE0LDEsMjIsMzAsMjQsOCwxOCwwLDUsMjksMjMsMTMsMTksMiwyNiwxMCwyMSwyOCw3XTtKLnBlcm11dGU9ZnVuY3Rpb24oTil7Zm9yKHZhciB3PTAsRj0wO0Y8Xy5sZW5ndGg7RisrKXc8PD0xLHd8'@; put 'PU4+Pj5fW0ZdJjE7cmV0dXJuIHc+Pj4wfSxKLnBhZFNwbGl0PWZ1bmN0aW9uKE4sdyxGKXtmb3IodmFyIEg9Ti50b1N0cmluZygyKTtILmxlbmd0aDx3OylIPSIwIitIO2Zvcih2YXIgUj1bXSxqPTA7ajx3O2orPUYpUi5wdXNoKEguc2xpY2UoaixqK0YpKTtyZXR1cm4gUi5qb2luKCIgIil9'@; put 'fSw0Mzc3OihjZSxKLGIpPT57dmFyIEQ9YigxMjcyNyksXz1iKDIzMjQxKSxwPWIoOTQ1OTMpLHc9e2JpbmFyeTohMCxoZXg6ITAsYmFzZTY0OiEwfTtKLkRpZmZpZUhlbGxtYW5Hcm91cD1KLmNyZWF0ZURpZmZpZUhlbGxtYW5Hcm91cD1KLmdldERpZmZpZUhlbGxtYW49ZnVuY3Rpb24gTihI'@; put 'KXt2YXIgUj1uZXcgQnVmZmVyKF9bSF0ucHJpbWUsImhleCIpLGo9bmV3IEJ1ZmZlcihfW0hdLmdlbiwiaGV4Iik7cmV0dXJuIG5ldyBwKFIsail9LEouY3JlYXRlRGlmZmllSGVsbG1hbj1KLkRpZmZpZUhlbGxtYW49ZnVuY3Rpb24gRihILFIsaixQKXtyZXR1cm4gQnVmZmVyLmlzQnVmZmVy'@; put 'KFIpfHx2b2lkIDA9PT13W1JdP0YoSCwiYmluYXJ5IixSLGopOihSPVJ8fCJiaW5hcnkiLFA9UHx8ImJpbmFyeSIsaj1qfHxuZXcgQnVmZmVyKFsyXSksQnVmZmVyLmlzQnVmZmVyKGopfHwoaj1uZXcgQnVmZmVyKGosUCkpLCJudW1iZXIiPT10eXBlb2YgSD9uZXcgcChEKEgsaiksaiwhMCk6'@; put 'KEJ1ZmZlci5pc0J1ZmZlcihIKXx8KEg9bmV3IEJ1ZmZlcihILFIpKSxuZXcgcChILGosITApKSl9fSw5NDU5MzooY2UsSixiKT0+e3ZhciBEPWIoMzgyODApLHA9bmV3KGIoNTM0NTkpKSxOPW5ldyBEKDI0KSx3PW5ldyBEKDExKSxGPW5ldyBEKDEwKSxIPW5ldyBEKDMpLFI9bmV3IEQoNyks'@; put 'aj1iKDEyNzI3KSxQPWIoMzM0Mik7ZnVuY3Rpb24gTChRLHEpe3JldHVybiBxPXF8fCJ1dGY4IixCdWZmZXIuaXNCdWZmZXIoUSl8fChRPW5ldyBCdWZmZXIoUSxxKSksdGhpcy5fcHViPW5ldyBEKFEpLHRoaXN9ZnVuY3Rpb24gWShRLHEpe3JldHVybiBxPXF8fCJ1dGY4IixCdWZmZXIuaXNC'@; put 'dWZmZXIoUSl8fChRPW5ldyBCdWZmZXIoUSxxKSksdGhpcy5fcHJpdj1uZXcgRChRKSx0aGlzfWNlLmV4cG9ydHM9Wjt2YXIgQj17fTtmdW5jdGlvbiBaKFEscSx0ZSl7dGhpcy5zZXRHZW5lcmF0b3IocSksdGhpcy5fX3ByaW1lPW5ldyBEKFEpLHRoaXMuX3ByaW1lPUQubW9udCh0aGlzLl9f'@; put 'cHJpbWUpLHRoaXMuX3ByaW1lTGVuPVEubGVuZ3RoLHRoaXMuX3B1Yj12b2lkIDAsdGhpcy5fcHJpdj12b2lkIDAsdGhpcy5fcHJpbWVDb2RlPXZvaWQgMCx0ZT8odGhpcy5zZXRQdWJsaWNLZXk9TCx0aGlzLnNldFByaXZhdGVLZXk9WSk6dGhpcy5fcHJpbWVDb2RlPTh9ZnVuY3Rpb24gWChR'@; put 'LHEpe3ZhciB0ZT1uZXcgQnVmZmVyKFEudG9BcnJheSgpKTtyZXR1cm4gcT90ZS50b1N0cmluZyhxKTp0ZX1PYmplY3QuZGVmaW5lUHJvcGVydHkoWi5wcm90b3R5cGUsInZlcmlmeUVycm9yIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIHRo'@; put 'aXMuX3ByaW1lQ29kZSYmKHRoaXMuX3ByaW1lQ29kZT1mdW5jdGlvbiBXKFEscSl7dmFyIHRlPXEudG9TdHJpbmcoImhleCIpLGllPVt0ZSxRLnRvU3RyaW5nKDE2KV0uam9pbigiXyIpO2lmKGllIGluIEIpcmV0dXJuIEJbaWVdO3ZhciBnZSxzZT0wO2lmKFEuaXNFdmVuKCl8fCFqLnNpbXBs'@; put 'ZVNpZXZlfHwhai5mZXJtYXRUZXN0KFEpfHwhcC50ZXN0KFEpKXJldHVybiBzZSs9MSxCW2llXT1zZSs9IjAyIj09PXRlfHwiMDUiPT09dGU/ODo0LHNlO3N3aXRjaChwLnRlc3QoUS5zaHJuKDEpKXx8KHNlKz0yKSx0ZSl7Y2FzZSIwMiI6US5tb2QoTikuY21wKHcpJiYoc2UrPTgpO2JyZWFr'@; put 'O2Nhc2UiMDUiOihnZT1RLm1vZChGKSkuY21wKEgpJiZnZS5jbXAoUikmJihzZSs9OCk7YnJlYWs7ZGVmYXVsdDpzZSs9NH1yZXR1cm4gQltpZV09c2Usc2V9KHRoaXMuX19wcmltZSx0aGlzLl9fZ2VuKSksdGhpcy5fcHJpbWVDb2RlfX0pLFoucHJvdG90eXBlLmdlbmVyYXRlS2V5cz1mdW5j'@; put 'dGlvbigpe3JldHVybiB0aGlzLl9wcml2fHwodGhpcy5fcHJpdj1uZXcgRChQKHRoaXMuX3ByaW1lTGVuKSkpLHRoaXMuX3B1Yj10aGlzLl9nZW4udG9SZWQodGhpcy5fcHJpbWUpLnJlZFBvdyh0aGlzLl9wcml2KS5mcm9tUmVkKCksdGhpcy5nZXRQdWJsaWNLZXkoKX0sWi5wcm90b3R5cGUu'@; put 'Y29tcHV0ZVNlY3JldD1mdW5jdGlvbihRKXt2YXIgcT0oUT0oUT1uZXcgRChRKSkudG9SZWQodGhpcy5fcHJpbWUpKS5yZWRQb3codGhpcy5fcHJpdikuZnJvbVJlZCgpLHRlPW5ldyBCdWZmZXIocS50b0FycmF5KCkpLGllPXRoaXMuZ2V0UHJpbWUoKTtpZih0ZS5sZW5ndGg8aWUubGVuZ3Ro'@; put 'KXt2YXIgc2U9bmV3IEJ1ZmZlcihpZS5sZW5ndGgtdGUubGVuZ3RoKTtzZS5maWxsKDApLHRlPUJ1ZmZlci5jb25jYXQoW3NlLHRlXSl9cmV0dXJuIHRlfSxaLnByb3RvdHlwZS5nZXRQdWJsaWNLZXk9ZnVuY3Rpb24ocSl7cmV0dXJuIFgodGhpcy5fcHViLHEpfSxaLnByb3RvdHlwZS5nZXRQ'@; put 'cml2YXRlS2V5PWZ1bmN0aW9uKHEpe3JldHVybiBYKHRoaXMuX3ByaXYscSl9LFoucHJvdG90eXBlLmdldFByaW1lPWZ1bmN0aW9uKFEpe3JldHVybiBYKHRoaXMuX19wcmltZSxRKX0sWi5wcm90b3R5cGUuZ2V0R2VuZXJhdG9yPWZ1bmN0aW9uKFEpe3JldHVybiBYKHRoaXMuX2dlbixRKX0s'@; put 'Wi5wcm90b3R5cGUuc2V0R2VuZXJhdG9yPWZ1bmN0aW9uKFEscSl7cmV0dXJuIHE9cXx8InV0ZjgiLEJ1ZmZlci5pc0J1ZmZlcihRKXx8KFE9bmV3IEJ1ZmZlcihRLHEpKSx0aGlzLl9fZ2VuPVEsdGhpcy5fZ2VuPW5ldyBEKFEpLHRoaXN9fSwxMjcyNzooY2UsSixiKT0+e3ZhciBEPWIoMzM0'@; put 'Mik7Y2UuZXhwb3J0cz1zZSxzZS5zaW1wbGVTaWV2ZT10ZSxzZS5mZXJtYXRUZXN0PWllO3ZhciBfPWIoMzgyODApLHA9bmV3IF8oMjQpLHc9bmV3KGIoNTM0NTkpKSxGPW5ldyBfKDEpLEg9bmV3IF8oMiksUj1uZXcgXyg1KSxMPShuZXcgXygxNiksbmV3IF8oOCksbmV3IF8oMTApKSxZPW5l'@; put 'dyBfKDMpLFc9KG5ldyBfKDcpLG5ldyBfKDExKSksWj1uZXcgXyg0KSxRPShuZXcgXygxMiksbnVsbCk7ZnVuY3Rpb24gdGUoZ2Upe2Zvcih2YXIgX2U9ZnVuY3Rpb24gcSgpe2lmKG51bGwhPT1RKXJldHVybiBRO3ZhciBfZT1bXTtfZVswXT0yO2Zvcih2YXIgVGU9MSxTZT0zO1NlPDEwNDg1'@; put 'NzY7U2UrPTIpe2Zvcih2YXIgemU9TWF0aC5jZWlsKE1hdGguc3FydChTZSkpLHo9MDt6PFRlJiZfZVt6XTw9emUmJlNlJV9lW3pdIT0wO3orKyk7VGUhPT16JiZfZVt6XTw9emV8fChfZVtUZSsrXT1TZSl9cmV0dXJuIFE9X2UsX2V9KCksVGU9MDtUZTxfZS5sZW5ndGg7VGUrKylpZigwPT09'@; put 'Z2UubW9kbihfZVtUZV0pKXJldHVybiAwPT09Z2UuY21wbihfZVtUZV0pO3JldHVybiEwfWZ1bmN0aW9uIGllKGdlKXt2YXIgX2U9Xy5tb250KGdlKTtyZXR1cm4gMD09PUgudG9SZWQoX2UpLnJlZFBvdyhnZS5zdWJuKDEpKS5mcm9tUmVkKCkuY21wbigxKX1mdW5jdGlvbiBzZShnZSxfZSl7'@; put 'aWYoZ2U8MTYpcmV0dXJuIG5ldyBfKDI9PT1fZXx8NT09PV9lP1sxNDAsMTIzXTpbMTQwLDM5XSk7X2U9bmV3IF8oX2UpO2Zvcih2YXIgVGUsU2U7Oyl7Zm9yKFRlPW5ldyBfKEQoTWF0aC5jZWlsKGdlLzgpKSk7VGUuYml0TGVuZ3RoKCk+Z2U7KVRlLmlzaHJuKDEpO2lmKFRlLmlzRXZlbigp'@; put 'JiZUZS5pYWRkKEYpLFRlLnRlc3RuKDEpfHxUZS5pYWRkKEgpLF9lLmNtcChIKSl7aWYoIV9lLmNtcChSKSlmb3IoO1RlLm1vZChMKS5jbXAoWSk7KVRlLmlhZGQoWil9ZWxzZSBmb3IoO1RlLm1vZChwKS5jbXAoVyk7KVRlLmlhZGQoWik7aWYodGUoU2U9VGUuc2hybigxKSkmJnRlKFRlKSYm'@; put 'aWUoU2UpJiZpZShUZSkmJncudGVzdChTZSkmJncudGVzdChUZSkpcmV0dXJuIFRlfX19LDM4MjgwOmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQsXyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHAoeixnKXtpZigheil0aHJvdyBuZXcgRXJyb3IoZ3x8IkFzc2VydGlvbiBmYWlsZWQiKX1m'@; put 'dW5jdGlvbiBOKHosZyl7ei5zdXBlcl89Zzt2YXIgeT1mdW5jdGlvbigpe307eS5wcm90b3R5cGU9Zy5wcm90b3R5cGUsei5wcm90b3R5cGU9bmV3IHksei5wcm90b3R5cGUuY29uc3RydWN0b3I9en1mdW5jdGlvbiB3KHosZyx5KXtpZih3LmlzQk4oeikpcmV0dXJuIHo7dGhpcy5uZWdhdGl2'@; put 'ZT0wLHRoaXMud29yZHM9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMucmVkPW51bGwsbnVsbCE9PXomJigoImxlIj09PWd8fCJiZSI9PT1nKSYmKHk9ZyxnPTEwKSx0aGlzLl9pbml0KHp8fDAsZ3x8MTAseXx8ImJlIikpfXZhciBGOyJvYmplY3QiPT10eXBlb2YgRD9ELmV4cG9ydHM9dzpfLkJO'@; put 'PXcsdy5CTj13LHcud29yZFNpemU9MjY7dHJ5e0Y9dHlwZW9mIHdpbmRvdzwidSImJnR5cGVvZiB3aW5kb3cuQnVmZmVyPCJ1Ij93aW5kb3cuQnVmZmVyOmIoNjYwODkpLkJ1ZmZlcn1jYXRjaHt9ZnVuY3Rpb24gSCh6LGcpe3ZhciB5PXouY2hhckNvZGVBdChnKTtyZXR1cm4geT49NjUmJnk8'@; put 'PTcwP3ktNTU6eT49OTcmJnk8PTEwMj95LTg3OnktNDgmMTV9ZnVuY3Rpb24gUih6LGcseSl7dmFyIHg9SCh6LHkpO3JldHVybiB5LTE+PWcmJih4fD1IKHoseS0xKTw8NCkseH1mdW5jdGlvbiBqKHosZyx5LHgpe2Zvcih2YXIgQz0wLFQ9TWF0aC5taW4oei5sZW5ndGgseSksVj1nO1Y8VDtW'@; put 'Kyspe3ZhciBVPXouY2hhckNvZGVBdChWKS00ODtDKj14LEMrPVU+PTQ5P1UtNDkrMTA6VT49MTc/VS0xNysxMDpVfXJldHVybiBDfXcuaXNCTj1mdW5jdGlvbihnKXtyZXR1cm4gZyBpbnN0YW5jZW9mIHd8fG51bGwhPT1nJiYib2JqZWN0Ij09dHlwZW9mIGcmJmcuY29uc3RydWN0b3Iud29y'@; put 'ZFNpemU9PT13LndvcmRTaXplJiZBcnJheS5pc0FycmF5KGcud29yZHMpfSx3Lm1heD1mdW5jdGlvbihnLHkpe3JldHVybiBnLmNtcCh5KT4wP2c6eX0sdy5taW49ZnVuY3Rpb24oZyx5KXtyZXR1cm4gZy5jbXAoeSk8MD9nOnl9LHcucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKGcseSx4KXtp'@; put 'ZigibnVtYmVyIj09dHlwZW9mIGcpcmV0dXJuIHRoaXMuX2luaXROdW1iZXIoZyx5LHgpO2lmKCJvYmplY3QiPT10eXBlb2YgZylyZXR1cm4gdGhpcy5faW5pdEFycmF5KGcseSx4KTsiaGV4Ij09PXkmJih5PTE2KSxwKHk9PT0oMHx5KSYmeT49MiYmeTw9MzYpO3ZhciBDPTA7Ii0iPT09KGc9'@; put 'Zy50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9nLCIiKSlbMF0mJihDKyssdGhpcy5uZWdhdGl2ZT0xKSxDPGcubGVuZ3RoJiYoMTY9PT15P3RoaXMuX3BhcnNlSGV4KGcsQyx4KToodGhpcy5fcGFyc2VCYXNlKGcseSxDKSwibGUiPT09eCYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgp'@; put 'LHkseCkpKX0sdy5wcm90b3R5cGUuX2luaXROdW1iZXI9ZnVuY3Rpb24oZyx5LHgpe2c8MCYmKHRoaXMubmVnYXRpdmU9MSxnPS1nKSxnPDY3MTA4ODY0Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZnXSx0aGlzLmxlbmd0aD0xKTpnPDQ1MDM1OTk2MjczNzA0OTY/KHRoaXMud29yZHM9WzY3MTA4'@; put 'ODYzJmcsZy82NzEwODg2NCY2NzEwODg2M10sdGhpcy5sZW5ndGg9Mik6KHAoZzw5MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEwODg2MyZnLGcvNjcxMDg4NjQmNjcxMDg4NjMsMV0sdGhpcy5sZW5ndGg9MyksImxlIj09PXgmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXko'@; put 'KSx5LHgpfSx3LnByb3RvdHlwZS5faW5pdEFycmF5PWZ1bmN0aW9uKGcseSx4KXtpZihwKCJudW1iZXIiPT10eXBlb2YgZy5sZW5ndGgpLGcubGVuZ3RoPD0wKXJldHVybiB0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xLHRoaXM7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKGcubGVuZ3RoLzMp'@; put 'LHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIEM9MDtDPHRoaXMubGVuZ3RoO0MrKyl0aGlzLndvcmRzW0NdPTA7dmFyIFQsVixVPTA7aWYoImJlIj09PXgpZm9yKEM9Zy5sZW5ndGgtMSxUPTA7Qz49MDtDLT0zKXRoaXMud29yZHNbVF18PShWPWdbQ118Z1tDLTFd'@; put 'PDw4fGdbQy0yXTw8MTYpPDxVJjY3MTA4ODYzLHRoaXMud29yZHNbVCsxXT1WPj4+MjYtVSY2NzEwODg2MywoVSs9MjQpPj0yNiYmKFUtPTI2LFQrKyk7ZWxzZSBpZigibGUiPT09eClmb3IoQz0wLFQ9MDtDPGcubGVuZ3RoO0MrPTMpdGhpcy53b3Jkc1tUXXw9KFY9Z1tDXXxnW0MrMV08PDh8'@; put 'Z1tDKzJdPDwxNik8PFUmNjcxMDg4NjMsdGhpcy53b3Jkc1tUKzFdPVY+Pj4yNi1VJjY3MTA4ODYzLChVKz0yNCk+PTI2JiYoVS09MjYsVCsrKTtyZXR1cm4gdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5fcGFyc2VIZXg9ZnVuY3Rpb24oZyx5LHgpe3RoaXMubGVuZ3RoPU1hdGguY2VpbCgo'@; put 'Zy5sZW5ndGgteSkvNiksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgQz0wO0M8dGhpcy5sZW5ndGg7QysrKXRoaXMud29yZHNbQ109MDt2YXIgVSxUPTAsVj0wO2lmKCJiZSI9PT14KWZvcihDPWcubGVuZ3RoLTE7Qz49eTtDLT0yKVU9UihnLHksQyk8PFQsdGhp'@; put 'cy53b3Jkc1tWXXw9NjcxMDg4NjMmVSxUPj0xOD8oVC09MTgsdGhpcy53b3Jkc1tWKz0xXXw9VT4+PjI2KTpUKz04O2Vsc2UgZm9yKEM9KGcubGVuZ3RoLXkpJTI9PTA/eSsxOnk7QzxnLmxlbmd0aDtDKz0yKVU9UihnLHksQyk8PFQsdGhpcy53b3Jkc1tWXXw9NjcxMDg4NjMmVSxUPj0xOD8o'@; put 'VC09MTgsdGhpcy53b3Jkc1tWKz0xXXw9VT4+PjI2KTpUKz04O3RoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbihnLHkseCl7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIEM9MCxUPTE7VDw9NjcxMDg4NjM7VCo9eSlDKys7Qy0tLFQ9VC95'@; put 'fDA7Zm9yKHZhciBWPWcubGVuZ3RoLXgsVT1WJUMsRT1NYXRoLm1pbihWLFYtVSkreCxtPTAsQT14O0E8RTtBKz1DKW09aihnLEEsQStDLHkpLHRoaXMuaW11bG4oVCksdGhpcy53b3Jkc1swXSttPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPW06dGhpcy5faWFkZG4obSk7aWYoMCE9PVUpe3Zh'@; put 'ciBhZT0xO2ZvcihtPWooZyxBLGcubGVuZ3RoLHkpLEE9MDtBPFU7QSsrKWFlKj15O3RoaXMuaW11bG4oYWUpLHRoaXMud29yZHNbMF0rbTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1tOnRoaXMuX2lhZGRuKG0pfXRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuY29weT1mdW5jdGlvbihnKXtn'@; put 'LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciB5PTA7eTx0aGlzLmxlbmd0aDt5KyspZy53b3Jkc1t5XT10aGlzLndvcmRzW3ldO2cubGVuZ3RoPXRoaXMubGVuZ3RoLGcubmVnYXRpdmU9dGhpcy5uZWdhdGl2ZSxnLnJlZD10aGlzLnJlZH0sdy5wcm90b3R5cGUuY2xvbmU9'@; put 'ZnVuY3Rpb24oKXt2YXIgZz1uZXcgdyhudWxsKTtyZXR1cm4gdGhpcy5jb3B5KGcpLGd9LHcucHJvdG90eXBlLl9leHBhbmQ9ZnVuY3Rpb24oZyl7Zm9yKDt0aGlzLmxlbmd0aDxnOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7cmV0dXJuIHRoaXN9LHcucHJvdG90eXBlLnN0cmlwPWZ1'@; put 'bmN0aW9uKCl7Zm9yKDt0aGlzLmxlbmd0aD4xJiYwPT09dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXTspdGhpcy5sZW5ndGgtLTtyZXR1cm4gdGhpcy5fbm9ybVNpZ24oKX0sdy5wcm90b3R5cGUuX25vcm1TaWduPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMu'@; put 'd29yZHNbMF0mJih0aGlzLm5lZ2F0aXZlPTApLHRoaXN9LHcucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5yZWQ/IjxCTi1SOiAiOiI8Qk46ICIpK3RoaXMudG9TdHJpbmcoMTYpKyI+In07dmFyIFA9WyIiLCIwIiwiMDAiLCIwMDAiLCIwMDAwIiwiMDAwMDAiLCIw'@; put 'MDAwMDAiLCIwMDAwMDAwIiwiMDAwMDAwMDAiLCIwMDAwMDAwMDAiLCIwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAw'@; put 'MDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAw'@; put 'MDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0sTD1bMCwwLDI1LDE2LDEyLDExLDEwLDksOCw4LDcsNyw3LDcsNiw2LDYsNiw2LDYsNiw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1XSxZPVswLDAsMzM1NTQ0MzIsNDMwNDY3MjEsMTY3NzcyMTYsNDg4MjgxMjUs'@; put 'NjA0NjYxNzYsNDAzNTM2MDcsMTY3NzcyMTYsNDMwNDY3MjEsMWU3LDE5NDg3MTcxLDM1ODMxODA4LDYyNzQ4NTE3LDc1Mjk1MzYsMTEzOTA2MjUsMTY3NzcyMTYsMjQxMzc1NjksMzQwMTIyMjQsNDcwNDU4ODEsNjRlNiw0MDg0MTAxLDUxNTM2MzIsNjQzNjM0Myw3OTYyNjI0LDk3NjU2MjUs'@; put 'MTE4ODEzNzYsMTQzNDg5MDcsMTcyMTAzNjgsMjA1MTExNDksMjQzZTUsMjg2MjkxNTEsMzM1NTQ0MzIsMzkxMzUzOTMsNDU0MzU0MjQsNTI1MjE4NzUsNjA0NjYxNzZdO2Z1bmN0aW9uIFcoeixnLHkpe3kubmVnYXRpdmU9Zy5uZWdhdGl2ZV56Lm5lZ2F0aXZlO3ZhciB4PXoubGVuZ3RoK2cu'@; put 'bGVuZ3RofDA7eS5sZW5ndGg9eCx4PXgtMXwwO3ZhciBDPTB8ei53b3Jkc1swXSxUPTB8Zy53b3Jkc1swXSxWPUMqVCxFPVYvNjcxMDg4NjR8MDt5LndvcmRzWzBdPTY3MTA4ODYzJlY7Zm9yKHZhciBtPTE7bTx4O20rKyl7Zm9yKHZhciBBPUU+Pj4yNixhZT02NzEwODg2MyZFLG5lPU1hdGgu'@; put 'bWluKG0sZy5sZW5ndGgtMSksbGU9TWF0aC5tYXgoMCxtLXoubGVuZ3RoKzEpO2xlPD1uZTtsZSsrKUErPShWPShDPTB8ei53b3Jkc1ttLWxlfDBdKSooVD0wfGcud29yZHNbbGVdKSthZSkvNjcxMDg4NjR8MCxhZT02NzEwODg2MyZWO3kud29yZHNbbV09MHxhZSxFPTB8QX1yZXR1cm4gMCE9'@; put 'PUU/eS53b3Jkc1ttXT0wfEU6eS5sZW5ndGgtLSx5LnN0cmlwKCl9dy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oZyx5KXt2YXIgeDtpZih5PTB8eXx8MSwxNj09PShnPWd8fDEwKXx8ImhleCI9PT1nKXt4PSIiO2Zvcih2YXIgQz0wLFQ9MCxWPTA7Vjx0aGlzLmxlbmd0aDtWKyspe3Zh'@; put 'ciBVPXRoaXMud29yZHNbVl0sRT0oMTY3NzcyMTUmKFU8PEN8VCkpLnRvU3RyaW5nKDE2KTtUPVU+Pj4yNC1DJjE2Nzc3MjE1LChDKz0yKT49MjYmJihDLT0yNixWLS0pLHg9MCE9PVR8fFYhPT10aGlzLmxlbmd0aC0xP1BbNi1FLmxlbmd0aF0rRSt4OkUreH1mb3IoMCE9PVQmJih4PVQudG9T'@; put 'dHJpbmcoMTYpK3gpO3gubGVuZ3RoJXkhPTA7KXg9IjAiK3g7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoeD0iLSIreCkseH1pZihnPT09KDB8ZykmJmc+PTImJmc8PTM2KXt2YXIgbT1MW2ddLEE9WVtnXTt4PSIiO3ZhciBhZT10aGlzLmNsb25lKCk7Zm9yKGFlLm5lZ2F0aXZlPTA7IWFl'@; put 'LmlzWmVybygpOyl7dmFyIG5lPWFlLm1vZG4oQSkudG9TdHJpbmcoZyk7eD0oYWU9YWUuaWRpdm4oQSkpLmlzWmVybygpP25lK3g6UFttLW5lLmxlbmd0aF0rbmUreH1mb3IodGhpcy5pc1plcm8oKSYmKHg9IjAiK3gpO3gubGVuZ3RoJXkhPTA7KXg9IjAiK3g7cmV0dXJuIDAhPT10aGlzLm5l'@; put 'Z2F0aXZlJiYoeD0iLSIreCkseH1wKCExLCJCYXNlIHNob3VsZCBiZSBiZXR3ZWVuIDIgYW5kIDM2Iil9LHcucHJvdG90eXBlLnRvTnVtYmVyPWZ1bmN0aW9uKCl7dmFyIGc9dGhpcy53b3Jkc1swXTtyZXR1cm4gMj09PXRoaXMubGVuZ3RoP2crPTY3MTA4ODY0KnRoaXMud29yZHNbMV06Mz09'@; put 'PXRoaXMubGVuZ3RoJiYxPT09dGhpcy53b3Jkc1syXT9nKz00NTAzNTk5NjI3MzcwNDk2KzY3MTA4ODY0KnRoaXMud29yZHNbMV06dGhpcy5sZW5ndGg+MiYmcCghMSwiTnVtYmVyIGNhbiBvbmx5IHNhZmVseSBzdG9yZSB1cCB0byA1MyBiaXRzIiksMCE9PXRoaXMubmVnYXRpdmU/LWc6Z30s'@; put 'dy5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoMTYpfSx3LnByb3RvdHlwZS50b0J1ZmZlcj1mdW5jdGlvbihnLHkpe3JldHVybiBwKHR5cGVvZiBGPCJ1IiksdGhpcy50b0FycmF5TGlrZShGLGcseSl9LHcucHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rp'@; put 'b24oZyx5KXtyZXR1cm4gdGhpcy50b0FycmF5TGlrZShBcnJheSxnLHkpfSx3LnByb3RvdHlwZS50b0FycmF5TGlrZT1mdW5jdGlvbihnLHkseCl7dmFyIEM9dGhpcy5ieXRlTGVuZ3RoKCksVD14fHxNYXRoLm1heCgxLEMpO3AoQzw9VCwiYnl0ZSBhcnJheSBsb25nZXIgdGhhbiBkZXNpcmVk'@; put 'IGxlbmd0aCIpLHAoVD4wLCJSZXF1ZXN0ZWQgYXJyYXkgbGVuZ3RoIDw9IDAiKSx0aGlzLnN0cmlwKCk7dmFyIEUsbSxWPSJsZSI9PT15LFU9bmV3IGcoVCksQT10aGlzLmNsb25lKCk7aWYoVil7Zm9yKG09MDshQS5pc1plcm8oKTttKyspRT1BLmFuZGxuKDI1NSksQS5pdXNocm4oOCksVVtt'@; put 'XT1FO2Zvcig7bTxUO20rKylVW21dPTB9ZWxzZXtmb3IobT0wO208VC1DO20rKylVW21dPTA7Zm9yKG09MDshQS5pc1plcm8oKTttKyspRT1BLmFuZGxuKDI1NSksQS5pdXNocm4oOCksVVtULW0tMV09RX1yZXR1cm4gVX0sdy5wcm90b3R5cGUuX2NvdW50Qml0cz1NYXRoLmNsejMyP2Z1bmN0'@; put 'aW9uKGcpe3JldHVybiAzMi1NYXRoLmNsejMyKGcpfTpmdW5jdGlvbihnKXt2YXIgeT1nLHg9MDtyZXR1cm4geT49NDA5NiYmKHgrPTEzLHk+Pj49MTMpLHk+PTY0JiYoeCs9Nyx5Pj4+PTcpLHk+PTgmJih4Kz00LHk+Pj49NCkseT49MiYmKHgrPTIseT4+Pj0yKSx4K3l9LHcucHJvdG90eXBl'@; put 'Ll96ZXJvQml0cz1mdW5jdGlvbihnKXtpZigwPT09ZylyZXR1cm4gMjY7dmFyIHk9Zyx4PTA7cmV0dXJuIDgxOTEmeXx8KHgrPTEzLHk+Pj49MTMpLDEyNyZ5fHwoeCs9Nyx5Pj4+PTcpLDE1Jnl8fCh4Kz00LHk+Pj49NCksMyZ5fHwoeCs9Mix5Pj4+PTIpLDEmeXx8eCsrLHh9LHcucHJvdG90'@; put 'eXBlLmJpdExlbmd0aD1mdW5jdGlvbigpe3ZhciB5PXRoaXMuX2NvdW50Qml0cyh0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdKTtyZXR1cm4gMjYqKHRoaXMubGVuZ3RoLTEpK3l9LHcucHJvdG90eXBlLnplcm9CaXRzPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gMDtmb3Io'@; put 'dmFyIGc9MCx5PTA7eTx0aGlzLmxlbmd0aDt5Kyspe3ZhciB4PXRoaXMuX3plcm9CaXRzKHRoaXMud29yZHNbeV0pO2lmKGcrPXgsMjYhPT14KWJyZWFrfXJldHVybiBnfSx3LnByb3RvdHlwZS5ieXRlTGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzLmJpdExlbmd0aCgp'@; put 'LzgpfSx3LnByb3RvdHlwZS50b1R3b3M9ZnVuY3Rpb24oZyl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlP3RoaXMuYWJzKCkuaW5vdG4oZykuaWFkZG4oMSk6dGhpcy5jbG9uZSgpfSx3LnByb3RvdHlwZS5mcm9tVHdvcz1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy50ZXN0bihnLTEpP3RoaXMu'@; put 'bm90bihnKS5pYWRkbigxKS5pbmVnKCk6dGhpcy5jbG9uZSgpfSx3LnByb3RvdHlwZS5pc05lZz1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZX0sdy5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbmVnKCl9LHcucHJvdG90eXBlLmluZWc9'@; put 'ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1plcm8oKXx8KHRoaXMubmVnYXRpdmVePTEpLHRoaXN9LHcucHJvdG90eXBlLml1b3I9ZnVuY3Rpb24oZyl7Zm9yKDt0aGlzLmxlbmd0aDxnLmxlbmd0aDspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO2Zvcih2YXIgeT0wO3k8Zy5sZW5ndGg7'@; put 'eSsrKXRoaXMud29yZHNbeV09dGhpcy53b3Jkc1t5XXxnLndvcmRzW3ldO3JldHVybiB0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLmlvcj1mdW5jdGlvbihnKXtyZXR1cm4gcCghKHRoaXMubmVnYXRpdmV8Zy5uZWdhdGl2ZSkpLHRoaXMuaXVvcihnKX0sdy5wcm90b3R5cGUub3I9ZnVuY3Rp'@; put 'b24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pb3IoZyk6Zy5jbG9uZSgpLmlvcih0aGlzKX0sdy5wcm90b3R5cGUudW9yPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaXVvcihnKTpnLmNsb25lKCkuaXVv'@; put 'cih0aGlzKX0sdy5wcm90b3R5cGUuaXVhbmQ9ZnVuY3Rpb24oZyl7dmFyIHk7eT10aGlzLmxlbmd0aD5nLmxlbmd0aD9nOnRoaXM7Zm9yKHZhciB4PTA7eDx5Lmxlbmd0aDt4KyspdGhpcy53b3Jkc1t4XT10aGlzLndvcmRzW3hdJmcud29yZHNbeF07cmV0dXJuIHRoaXMubGVuZ3RoPXkubGVu'@; put 'Z3RoLHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuaWFuZD1mdW5jdGlvbihnKXtyZXR1cm4gcCghKHRoaXMubmVnYXRpdmV8Zy5uZWdhdGl2ZSkpLHRoaXMuaXVhbmQoZyl9LHcucHJvdG90eXBlLmFuZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9u'@; put 'ZSgpLmlhbmQoZyk6Zy5jbG9uZSgpLmlhbmQodGhpcyl9LHcucHJvdG90eXBlLnVhbmQ9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdWFuZChnKTpnLmNsb25lKCkuaXVhbmQodGhpcyl9LHcucHJvdG90eXBlLml1eG9yPWZ1bmN0aW9uKGcp'@; put 'e3ZhciB5LHg7dGhpcy5sZW5ndGg+Zy5sZW5ndGg/KHk9dGhpcyx4PWcpOih5PWcseD10aGlzKTtmb3IodmFyIEM9MDtDPHgubGVuZ3RoO0MrKyl0aGlzLndvcmRzW0NdPXkud29yZHNbQ11eeC53b3Jkc1tDXTtpZih0aGlzIT09eSlmb3IoO0M8eS5sZW5ndGg7QysrKXRoaXMud29yZHNbQ109'@; put 'eS53b3Jkc1tDXTtyZXR1cm4gdGhpcy5sZW5ndGg9eS5sZW5ndGgsdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5peG9yPWZ1bmN0aW9uKGcpe3JldHVybiBwKCEodGhpcy5uZWdhdGl2ZXxnLm5lZ2F0aXZlKSksdGhpcy5pdXhvcihnKX0sdy5wcm90b3R5cGUueG9yPWZ1bmN0aW9uKGcpe3Jl'@; put 'dHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaXhvcihnKTpnLmNsb25lKCkuaXhvcih0aGlzKX0sdy5wcm90b3R5cGUudXhvcj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLml1eG9yKGcpOmcuY2xvbmUoKS5pdXhvcih0'@; put 'aGlzKX0sdy5wcm90b3R5cGUuaW5vdG49ZnVuY3Rpb24oZyl7cCgibnVtYmVyIj09dHlwZW9mIGcmJmc+PTApO3ZhciB5PTB8TWF0aC5jZWlsKGcvMjYpLHg9ZyUyNjt0aGlzLl9leHBhbmQoeSkseD4wJiZ5LS07Zm9yKHZhciBDPTA7Qzx5O0MrKyl0aGlzLndvcmRzW0NdPTY3MTA4ODYzJn50'@; put 'aGlzLndvcmRzW0NdO3JldHVybiB4PjAmJih0aGlzLndvcmRzW0NdPX50aGlzLndvcmRzW0NdJjY3MTA4ODYzPj4yNi14KSx0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLm5vdG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbm90bihnKX0sdy5wcm90b3R5cGUuc2V0bj1mdW5j'@; put 'dGlvbihnLHkpe3AoIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgeD1nLzI2fDAsQz1nJTI2O3JldHVybiB0aGlzLl9leHBhbmQoeCsxKSx0aGlzLndvcmRzW3hdPXk/dGhpcy53b3Jkc1t4XXwxPDxDOnRoaXMud29yZHNbeF0mfigxPDxDKSx0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBl'@; put 'LmlhZGQ9ZnVuY3Rpb24oZyl7dmFyIHkseCxDO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Zy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHk9dGhpcy5pc3ViKGcpLHRoaXMubmVnYXRpdmVePTEsdGhpcy5fbm9ybVNpZ24oKTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PWcu'@; put 'bmVnYXRpdmUpcmV0dXJuIGcubmVnYXRpdmU9MCx5PXRoaXMuaXN1YihnKSxnLm5lZ2F0aXZlPTEseS5fbm9ybVNpZ24oKTt0aGlzLmxlbmd0aD5nLmxlbmd0aD8oeD10aGlzLEM9Zyk6KHg9ZyxDPXRoaXMpO2Zvcih2YXIgVD0wLFY9MDtWPEMubGVuZ3RoO1YrKyl0aGlzLndvcmRzW1ZdPTY3'@; put 'MTA4ODYzJih5PSgwfHgud29yZHNbVl0pKygwfEMud29yZHNbVl0pK1QpLFQ9eT4+PjI2O2Zvcig7MCE9PVQmJlY8eC5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09NjcxMDg4NjMmKHk9KDB8eC53b3Jkc1tWXSkrVCksVD15Pj4+MjY7aWYodGhpcy5sZW5ndGg9eC5sZW5ndGgsMCE9PVQpdGhp'@; put 'cy53b3Jkc1t0aGlzLmxlbmd0aF09VCx0aGlzLmxlbmd0aCsrO2Vsc2UgaWYoeCE9PXRoaXMpZm9yKDtWPHgubGVuZ3RoO1YrKyl0aGlzLndvcmRzW1ZdPXgud29yZHNbVl07cmV0dXJuIHRoaXN9LHcucHJvdG90eXBlLmFkZD1mdW5jdGlvbihnKXt2YXIgeTtyZXR1cm4gMCE9PWcubmVnYXRp'@; put 'dmUmJjA9PT10aGlzLm5lZ2F0aXZlPyhnLm5lZ2F0aXZlPTAseT10aGlzLnN1YihnKSxnLm5lZ2F0aXZlXj0xLHkpOjA9PT1nLm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLHk9Zy5zdWIodGhpcyksdGhpcy5uZWdhdGl2ZT0xLHkpOnRoaXMubGVuZ3RoPmcu'@; put 'bGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRkKGcpOmcuY2xvbmUoKS5pYWRkKHRoaXMpfSx3LnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKGcpe2lmKDAhPT1nLm5lZ2F0aXZlKXtnLm5lZ2F0aXZlPTA7dmFyIHk9dGhpcy5pYWRkKGcpO3JldHVybiBnLm5lZ2F0aXZlPTEseS5fbm9ybVNpZ24oKX1p'@; put 'ZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZChnKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fbm9ybVNpZ24oKTt2YXIgQyxULHg9dGhpcy5jbXAoZyk7aWYoMD09PXgpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmxlbmd0aD0xLHRoaXMud29y'@; put 'ZHNbMF09MCx0aGlzO3g+MD8oQz10aGlzLFQ9Zyk6KEM9ZyxUPXRoaXMpO2Zvcih2YXIgVj0wLFU9MDtVPFQubGVuZ3RoO1UrKylWPSh5PSgwfEMud29yZHNbVV0pLSgwfFQud29yZHNbVV0pK1YpPj4yNix0aGlzLndvcmRzW1VdPTY3MTA4ODYzJnk7Zm9yKDswIT09ViYmVTxDLmxlbmd0aDtV'@; put 'KyspVj0oeT0oMHxDLndvcmRzW1VdKStWKT4+MjYsdGhpcy53b3Jkc1tVXT02NzEwODg2MyZ5O2lmKDA9PT1WJiZVPEMubGVuZ3RoJiZDIT09dGhpcylmb3IoO1U8Qy5sZW5ndGg7VSsrKXRoaXMud29yZHNbVV09Qy53b3Jkc1tVXTtyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5s'@; put 'ZW5ndGgsVSksQyE9PXRoaXMmJih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1YihnKX07dmFyIFo9ZnVuY3Rpb24oZyx5LHgpe3ZhciBFLG0sQSxDPWcud29yZHMsVD15LndvcmRzLFY9eC53'@; put 'b3JkcyxVPTAsYWU9MHxDWzBdLG5lPTgxOTEmYWUsbGU9YWU+Pj4xMyx3ZT0wfENbMV0sWmU9ODE5MSZ3ZSxRZT13ZT4+PjEzLGF0PTB8Q1syXSx4ZT04MTkxJmF0LHZlPWF0Pj4+MTMscWU9MHxDWzNdLGplPTgxOTEmcWUsQWU9cWU+Pj4xMyxGZT0wfENbNF0sUmU9ODE5MSZGZSxJZT1GZT4+'@; put 'PjEzLEhlPTB8Q1s1XSxEZT04MTkxJkhlLGtlPUhlPj4+MTMsX3Q9MHxDWzZdLG50PTgxOTEmX3QsSmU9X3Q+Pj4xMyxvbj0wfENbN10seXQ9ODE5MSZvbixNdD1vbj4+PjEzLEl0PTB8Q1s4XSxydD04MTkxJkl0LEtlPUl0Pj4+MTMsdHQ9MHxDWzldLE5lPTgxOTEmdHQsdXQ9dHQ+Pj4xMyxK'@; put 'dD0wfFRbMF0sTHQ9ODE5MSZKdCxQdD1KdD4+PjEzLG9pPTB8VFsxXSxlbj04MTkxJm9pLHNuPW9pPj4+MTMsSWk9MHxUWzJdLGRuPTgxOTEmSWksZnQ9SWk+Pj4xMyxGcj0wfFRbM10sWnQ9ODE5MSZGcixrdD1Gcj4+PjEzLExuPTB8VFs0XSxvdD04MTkxJkxuLHp0PUxuPj4+MTMsbmk9MHxU'@; put 'WzVdLFdlPTgxOTEmbmksQXQ9bmk+Pj4xMyxpcj0wfFRbNl0saHQ9ODE5MSZpcixFdD1pcj4+PjEzLHpuPTB8VFs3XSxhbj04MTkxJnpuLGp0PXpuPj4+MTMsZGk9MHxUWzhdLGNuPTgxOTEmZGksZm49ZGk+Pj4xMyxEaT0wfFRbOV0sUXQ9ODE5MSZEaSx0bj1EaT4+PjEzO3gubmVnYXRpdmU9'@; put 'Zy5uZWdhdGl2ZV55Lm5lZ2F0aXZlLHgubGVuZ3RoPTE5O3ZhciBjYT0oVSsoRT1NYXRoLmltdWwobmUsTHQpKXwwKSsoKDgxOTEmKG09KG09TWF0aC5pbXVsKG5lLFB0KSkrTWF0aC5pbXVsKGxlLEx0KXwwKSk8PDEzKXwwO1U9KChBPU1hdGguaW11bChsZSxQdCkpKyhtPj4+MTMpfDApKyhj'@; put 'YT4+PjI2KXwwLGNhJj02NzEwODg2MyxFPU1hdGguaW11bChaZSxMdCksbT0obT1NYXRoLmltdWwoWmUsUHQpKStNYXRoLmltdWwoUWUsTHQpfDAsQT1NYXRoLmltdWwoUWUsUHQpO3ZhciB4aT0oVSsoRT1FK01hdGguaW11bChuZSxlbil8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVs'@; put 'KG5lLHNuKXwwKStNYXRoLmltdWwobGUsZW4pfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwobGUsc24pfDApKyhtPj4+MTMpfDApKyh4aT4+PjI2KXwwLHhpJj02NzEwODg2MyxFPU1hdGguaW11bCh4ZSxMdCksbT0obT1NYXRoLmltdWwoeGUsUHQpKStNYXRoLmltdWwodmUsTHQpfDAs'@; put 'QT1NYXRoLmltdWwodmUsUHQpLEU9RStNYXRoLmltdWwoWmUsZW4pfDAsbT0obT1tK01hdGguaW11bChaZSxzbil8MCkrTWF0aC5pbXVsKFFlLGVuKXwwLEE9QStNYXRoLmltdWwoUWUsc24pfDA7dmFyIHlyPShVKyhFPUUrTWF0aC5pbXVsKG5lLGRuKXwwKXwwKSsoKDgxOTEmKG09KG09bStN'@; put 'YXRoLmltdWwobmUsZnQpfDApK01hdGguaW11bChsZSxkbil8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSxmdCl8MCkrKG0+Pj4xMyl8MCkrKHlyPj4+MjYpfDAseXImPTY3MTA4ODYzLEU9TWF0aC5pbXVsKGplLEx0KSxtPShtPU1hdGguaW11bChqZSxQdCkpK01hdGguaW11bChB'@; put 'ZSxMdCl8MCxBPU1hdGguaW11bChBZSxQdCksRT1FK01hdGguaW11bCh4ZSxlbil8MCxtPShtPW0rTWF0aC5pbXVsKHhlLHNuKXwwKStNYXRoLmltdWwodmUsZW4pfDAsQT1BK01hdGguaW11bCh2ZSxzbil8MCxFPUUrTWF0aC5pbXVsKFplLGRuKXwwLG09KG09bStNYXRoLmltdWwoWmUsZnQp'@; put 'fDApK01hdGguaW11bChRZSxkbil8MCxBPUErTWF0aC5pbXVsKFFlLGZ0KXwwO3ZhciBHbj0oVSsoRT1FK01hdGguaW11bChuZSxadCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLGt0KXwwKStNYXRoLmltdWwobGUsWnQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwo'@; put 'bGUsa3QpfDApKyhtPj4+MTMpfDApKyhHbj4+PjI2KXwwLEduJj02NzEwODg2MyxFPU1hdGguaW11bChSZSxMdCksbT0obT1NYXRoLmltdWwoUmUsUHQpKStNYXRoLmltdWwoSWUsTHQpfDAsQT1NYXRoLmltdWwoSWUsUHQpLEU9RStNYXRoLmltdWwoamUsZW4pfDAsbT0obT1tK01hdGguaW11'@; put 'bChqZSxzbil8MCkrTWF0aC5pbXVsKEFlLGVuKXwwLEE9QStNYXRoLmltdWwoQWUsc24pfDAsRT1FK01hdGguaW11bCh4ZSxkbil8MCxtPShtPW0rTWF0aC5pbXVsKHhlLGZ0KXwwKStNYXRoLmltdWwodmUsZG4pfDAsQT1BK01hdGguaW11bCh2ZSxmdCl8MCxFPUUrTWF0aC5pbXVsKFplLFp0'@; put 'KXwwLG09KG09bStNYXRoLmltdWwoWmUsa3QpfDApK01hdGguaW11bChRZSxadCl8MCxBPUErTWF0aC5pbXVsKFFlLGt0KXwwO3ZhciBLaT0oVSsoRT1FK01hdGguaW11bChuZSxvdCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLHp0KXwwKStNYXRoLmltdWwobGUsb3QpfDAp'@; put 'KTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwobGUsenQpfDApKyhtPj4+MTMpfDApKyhLaT4+PjI2KXwwLEtpJj02NzEwODg2MyxFPU1hdGguaW11bChEZSxMdCksbT0obT1NYXRoLmltdWwoRGUsUHQpKStNYXRoLmltdWwoa2UsTHQpfDAsQT1NYXRoLmltdWwoa2UsUHQpLEU9RStNYXRoLmlt'@; put 'dWwoUmUsZW4pfDAsbT0obT1tK01hdGguaW11bChSZSxzbil8MCkrTWF0aC5pbXVsKEllLGVuKXwwLEE9QStNYXRoLmltdWwoSWUsc24pfDAsRT1FK01hdGguaW11bChqZSxkbil8MCxtPShtPW0rTWF0aC5pbXVsKGplLGZ0KXwwKStNYXRoLmltdWwoQWUsZG4pfDAsQT1BK01hdGguaW11bChB'@; put 'ZSxmdCl8MCxFPUUrTWF0aC5pbXVsKHhlLFp0KXwwLG09KG09bStNYXRoLmltdWwoeGUsa3QpfDApK01hdGguaW11bCh2ZSxadCl8MCxBPUErTWF0aC5pbXVsKHZlLGt0KXwwLEU9RStNYXRoLmltdWwoWmUsb3QpfDAsbT0obT1tK01hdGguaW11bChaZSx6dCl8MCkrTWF0aC5pbXVsKFFlLG90'@; put 'KXwwLEE9QStNYXRoLmltdWwoUWUsenQpfDA7dmFyIEpyPShVKyhFPUUrTWF0aC5pbXVsKG5lLFdlKXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsQXQpfDApK01hdGguaW11bChsZSxXZSl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSxBdCl8MCkrKG0+Pj4xMyl8'@; put 'MCkrKEpyPj4+MjYpfDAsSnImPTY3MTA4ODYzLEU9TWF0aC5pbXVsKG50LEx0KSxtPShtPU1hdGguaW11bChudCxQdCkpK01hdGguaW11bChKZSxMdCl8MCxBPU1hdGguaW11bChKZSxQdCksRT1FK01hdGguaW11bChEZSxlbil8MCxtPShtPW0rTWF0aC5pbXVsKERlLHNuKXwwKStNYXRoLmlt'@; put 'dWwoa2UsZW4pfDAsQT1BK01hdGguaW11bChrZSxzbil8MCxFPUUrTWF0aC5pbXVsKFJlLGRuKXwwLG09KG09bStNYXRoLmltdWwoUmUsZnQpfDApK01hdGguaW11bChJZSxkbil8MCxBPUErTWF0aC5pbXVsKEllLGZ0KXwwLEU9RStNYXRoLmltdWwoamUsWnQpfDAsbT0obT1tK01hdGguaW11'@; put 'bChqZSxrdCl8MCkrTWF0aC5pbXVsKEFlLFp0KXwwLEE9QStNYXRoLmltdWwoQWUsa3QpfDAsRT1FK01hdGguaW11bCh4ZSxvdCl8MCxtPShtPW0rTWF0aC5pbXVsKHhlLHp0KXwwKStNYXRoLmltdWwodmUsb3QpfDAsQT1BK01hdGguaW11bCh2ZSx6dCl8MCxFPUUrTWF0aC5pbXVsKFplLFdl'@; put 'KXwwLG09KG09bStNYXRoLmltdWwoWmUsQXQpfDApK01hdGguaW11bChRZSxXZSl8MCxBPUErTWF0aC5pbXVsKFFlLEF0KXwwO3ZhciBRcj0oVSsoRT1FK01hdGguaW11bChuZSxodCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLEV0KXwwKStNYXRoLmltdWwobGUsaHQpfDAp'@; put 'KTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwobGUsRXQpfDApKyhtPj4+MTMpfDApKyhRcj4+PjI2KXwwLFFyJj02NzEwODg2MyxFPU1hdGguaW11bCh5dCxMdCksbT0obT1NYXRoLmltdWwoeXQsUHQpKStNYXRoLmltdWwoTXQsTHQpfDAsQT1NYXRoLmltdWwoTXQsUHQpLEU9RStNYXRoLmlt'@; put 'dWwobnQsZW4pfDAsbT0obT1tK01hdGguaW11bChudCxzbil8MCkrTWF0aC5pbXVsKEplLGVuKXwwLEE9QStNYXRoLmltdWwoSmUsc24pfDAsRT1FK01hdGguaW11bChEZSxkbil8MCxtPShtPW0rTWF0aC5pbXVsKERlLGZ0KXwwKStNYXRoLmltdWwoa2UsZG4pfDAsQT1BK01hdGguaW11bChr'@; put 'ZSxmdCl8MCxFPUUrTWF0aC5pbXVsKFJlLFp0KXwwLG09KG09bStNYXRoLmltdWwoUmUsa3QpfDApK01hdGguaW11bChJZSxadCl8MCxBPUErTWF0aC5pbXVsKEllLGt0KXwwLEU9RStNYXRoLmltdWwoamUsb3QpfDAsbT0obT1tK01hdGguaW11bChqZSx6dCl8MCkrTWF0aC5pbXVsKEFlLG90'@; put 'KXwwLEE9QStNYXRoLmltdWwoQWUsenQpfDAsRT1FK01hdGguaW11bCh4ZSxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKHhlLEF0KXwwKStNYXRoLmltdWwodmUsV2UpfDAsQT1BK01hdGguaW11bCh2ZSxBdCl8MCxFPUUrTWF0aC5pbXVsKFplLGh0KXwwLG09KG09bStNYXRoLmltdWwoWmUsRXQp'@; put 'fDApK01hdGguaW11bChRZSxodCl8MCxBPUErTWF0aC5pbXVsKFFlLEV0KXwwO3ZhciBOaT0oVSsoRT1FK01hdGguaW11bChuZSxhbil8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLGp0KXwwKStNYXRoLmltdWwobGUsYW4pfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwo'@; put 'bGUsanQpfDApKyhtPj4+MTMpfDApKyhOaT4+PjI2KXwwLE5pJj02NzEwODg2MyxFPU1hdGguaW11bChydCxMdCksbT0obT1NYXRoLmltdWwocnQsUHQpKStNYXRoLmltdWwoS2UsTHQpfDAsQT1NYXRoLmltdWwoS2UsUHQpLEU9RStNYXRoLmltdWwoeXQsZW4pfDAsbT0obT1tK01hdGguaW11'@; put 'bCh5dCxzbil8MCkrTWF0aC5pbXVsKE10LGVuKXwwLEE9QStNYXRoLmltdWwoTXQsc24pfDAsRT1FK01hdGguaW11bChudCxkbil8MCxtPShtPW0rTWF0aC5pbXVsKG50LGZ0KXwwKStNYXRoLmltdWwoSmUsZG4pfDAsQT1BK01hdGguaW11bChKZSxmdCl8MCxFPUUrTWF0aC5pbXVsKERlLFp0'@; put 'KXwwLG09KG09bStNYXRoLmltdWwoRGUsa3QpfDApK01hdGguaW11bChrZSxadCl8MCxBPUErTWF0aC5pbXVsKGtlLGt0KXwwLEU9RStNYXRoLmltdWwoUmUsb3QpfDAsbT0obT1tK01hdGguaW11bChSZSx6dCl8MCkrTWF0aC5pbXVsKEllLG90KXwwLEE9QStNYXRoLmltdWwoSWUsenQpfDAs'@; put 'RT1FK01hdGguaW11bChqZSxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKGplLEF0KXwwKStNYXRoLmltdWwoQWUsV2UpfDAsQT1BK01hdGguaW11bChBZSxBdCl8MCxFPUUrTWF0aC5pbXVsKHhlLGh0KXwwLG09KG09bStNYXRoLmltdWwoeGUsRXQpfDApK01hdGguaW11bCh2ZSxodCl8MCxBPUEr'@; put 'TWF0aC5pbXVsKHZlLEV0KXwwLEU9RStNYXRoLmltdWwoWmUsYW4pfDAsbT0obT1tK01hdGguaW11bChaZSxqdCl8MCkrTWF0aC5pbXVsKFFlLGFuKXwwLEE9QStNYXRoLmltdWwoUWUsanQpfDA7dmFyIEhpPShVKyhFPUUrTWF0aC5pbXVsKG5lLGNuKXwwKXwwKSsoKDgxOTEmKG09KG09bStN'@; put 'YXRoLmltdWwobmUsZm4pfDApK01hdGguaW11bChsZSxjbil8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSxmbil8MCkrKG0+Pj4xMyl8MCkrKEhpPj4+MjYpfDAsSGkmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLEx0KSxtPShtPU1hdGguaW11bChOZSxQdCkpK01hdGguaW11bCh1'@; put 'dCxMdCl8MCxBPU1hdGguaW11bCh1dCxQdCksRT1FK01hdGguaW11bChydCxlbil8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LHNuKXwwKStNYXRoLmltdWwoS2UsZW4pfDAsQT1BK01hdGguaW11bChLZSxzbil8MCxFPUUrTWF0aC5pbXVsKHl0LGRuKXwwLG09KG09bStNYXRoLmltdWwoeXQsZnQp'@; put 'fDApK01hdGguaW11bChNdCxkbil8MCxBPUErTWF0aC5pbXVsKE10LGZ0KXwwLEU9RStNYXRoLmltdWwobnQsWnQpfDAsbT0obT1tK01hdGguaW11bChudCxrdCl8MCkrTWF0aC5pbXVsKEplLFp0KXwwLEE9QStNYXRoLmltdWwoSmUsa3QpfDAsRT1FK01hdGguaW11bChEZSxvdCl8MCxtPSht'@; put 'PW0rTWF0aC5pbXVsKERlLHp0KXwwKStNYXRoLmltdWwoa2Usb3QpfDAsQT1BK01hdGguaW11bChrZSx6dCl8MCxFPUUrTWF0aC5pbXVsKFJlLFdlKXwwLG09KG09bStNYXRoLmltdWwoUmUsQXQpfDApK01hdGguaW11bChJZSxXZSl8MCxBPUErTWF0aC5pbXVsKEllLEF0KXwwLEU9RStNYXRo'@; put 'LmltdWwoamUsaHQpfDAsbT0obT1tK01hdGguaW11bChqZSxFdCl8MCkrTWF0aC5pbXVsKEFlLGh0KXwwLEE9QStNYXRoLmltdWwoQWUsRXQpfDAsRT1FK01hdGguaW11bCh4ZSxhbil8MCxtPShtPW0rTWF0aC5pbXVsKHhlLGp0KXwwKStNYXRoLmltdWwodmUsYW4pfDAsQT1BK01hdGguaW11'@; put 'bCh2ZSxqdCl8MCxFPUUrTWF0aC5pbXVsKFplLGNuKXwwLG09KG09bStNYXRoLmltdWwoWmUsZm4pfDApK01hdGguaW11bChRZSxjbil8MCxBPUErTWF0aC5pbXVsKFFlLGZuKXwwO3ZhciBJYT0oVSsoRT1FK01hdGguaW11bChuZSxRdCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVs'@; put 'KG5lLHRuKXwwKStNYXRoLmltdWwobGUsUXQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwobGUsdG4pfDApKyhtPj4+MTMpfDApKyhJYT4+PjI2KXwwLElhJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxlbiksbT0obT1NYXRoLmltdWwoTmUsc24pKStNYXRoLmltdWwodXQsZW4pfDAs'@; put 'QT1NYXRoLmltdWwodXQsc24pLEU9RStNYXRoLmltdWwocnQsZG4pfDAsbT0obT1tK01hdGguaW11bChydCxmdCl8MCkrTWF0aC5pbXVsKEtlLGRuKXwwLEE9QStNYXRoLmltdWwoS2UsZnQpfDAsRT1FK01hdGguaW11bCh5dCxadCl8MCxtPShtPW0rTWF0aC5pbXVsKHl0LGt0KXwwKStNYXRo'@; put 'LmltdWwoTXQsWnQpfDAsQT1BK01hdGguaW11bChNdCxrdCl8MCxFPUUrTWF0aC5pbXVsKG50LG90KXwwLG09KG09bStNYXRoLmltdWwobnQsenQpfDApK01hdGguaW11bChKZSxvdCl8MCxBPUErTWF0aC5pbXVsKEplLHp0KXwwLEU9RStNYXRoLmltdWwoRGUsV2UpfDAsbT0obT1tK01hdGgu'@; put 'aW11bChEZSxBdCl8MCkrTWF0aC5pbXVsKGtlLFdlKXwwLEE9QStNYXRoLmltdWwoa2UsQXQpfDAsRT1FK01hdGguaW11bChSZSxodCl8MCxtPShtPW0rTWF0aC5pbXVsKFJlLEV0KXwwKStNYXRoLmltdWwoSWUsaHQpfDAsQT1BK01hdGguaW11bChJZSxFdCl8MCxFPUUrTWF0aC5pbXVsKGpl'@; put 'LGFuKXwwLG09KG09bStNYXRoLmltdWwoamUsanQpfDApK01hdGguaW11bChBZSxhbil8MCxBPUErTWF0aC5pbXVsKEFlLGp0KXwwLEU9RStNYXRoLmltdWwoeGUsY24pfDAsbT0obT1tK01hdGguaW11bCh4ZSxmbil8MCkrTWF0aC5pbXVsKHZlLGNuKXwwLEE9QStNYXRoLmltdWwodmUsZm4p'@; put 'fDA7dmFyIFByPShVKyhFPUUrTWF0aC5pbXVsKFplLFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwoWmUsdG4pfDApK01hdGguaW11bChRZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChRZSx0bil8MCkrKG0+Pj4xMyl8MCkrKFByPj4+MjYpfDAsUHImPTY3MTA4'@; put 'ODYzLEU9TWF0aC5pbXVsKE5lLGRuKSxtPShtPU1hdGguaW11bChOZSxmdCkpK01hdGguaW11bCh1dCxkbil8MCxBPU1hdGguaW11bCh1dCxmdCksRT1FK01hdGguaW11bChydCxadCl8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LGt0KXwwKStNYXRoLmltdWwoS2UsWnQpfDAsQT1BK01hdGguaW11'@; put 'bChLZSxrdCl8MCxFPUUrTWF0aC5pbXVsKHl0LG90KXwwLG09KG09bStNYXRoLmltdWwoeXQsenQpfDApK01hdGguaW11bChNdCxvdCl8MCxBPUErTWF0aC5pbXVsKE10LHp0KXwwLEU9RStNYXRoLmltdWwobnQsV2UpfDAsbT0obT1tK01hdGguaW11bChudCxBdCl8MCkrTWF0aC5pbXVsKEpl'@; put 'LFdlKXwwLEE9QStNYXRoLmltdWwoSmUsQXQpfDAsRT1FK01hdGguaW11bChEZSxodCl8MCxtPShtPW0rTWF0aC5pbXVsKERlLEV0KXwwKStNYXRoLmltdWwoa2UsaHQpfDAsQT1BK01hdGguaW11bChrZSxFdCl8MCxFPUUrTWF0aC5pbXVsKFJlLGFuKXwwLG09KG09bStNYXRoLmltdWwoUmUs'@; put 'anQpfDApK01hdGguaW11bChJZSxhbil8MCxBPUErTWF0aC5pbXVsKEllLGp0KXwwLEU9RStNYXRoLmltdWwoamUsY24pfDAsbT0obT1tK01hdGguaW11bChqZSxmbil8MCkrTWF0aC5pbXVsKEFlLGNuKXwwLEE9QStNYXRoLmltdWwoQWUsZm4pfDA7dmFyIFlpPShVKyhFPUUrTWF0aC5pbXVs'@; put 'KHhlLFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwoeGUsdG4pfDApK01hdGguaW11bCh2ZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bCh2ZSx0bil8MCkrKG0+Pj4xMyl8MCkrKFlpPj4+MjYpfDAsWWkmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLFp0KSxtPSht'@; put 'PU1hdGguaW11bChOZSxrdCkpK01hdGguaW11bCh1dCxadCl8MCxBPU1hdGguaW11bCh1dCxrdCksRT1FK01hdGguaW11bChydCxvdCl8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LHp0KXwwKStNYXRoLmltdWwoS2Usb3QpfDAsQT1BK01hdGguaW11bChLZSx6dCl8MCxFPUUrTWF0aC5pbXVsKHl0'@; put 'LFdlKXwwLG09KG09bStNYXRoLmltdWwoeXQsQXQpfDApK01hdGguaW11bChNdCxXZSl8MCxBPUErTWF0aC5pbXVsKE10LEF0KXwwLEU9RStNYXRoLmltdWwobnQsaHQpfDAsbT0obT1tK01hdGguaW11bChudCxFdCl8MCkrTWF0aC5pbXVsKEplLGh0KXwwLEE9QStNYXRoLmltdWwoSmUsRXQp'@; put 'fDAsRT1FK01hdGguaW11bChEZSxhbil8MCxtPShtPW0rTWF0aC5pbXVsKERlLGp0KXwwKStNYXRoLmltdWwoa2UsYW4pfDAsQT1BK01hdGguaW11bChrZSxqdCl8MCxFPUUrTWF0aC5pbXVsKFJlLGNuKXwwLG09KG09bStNYXRoLmltdWwoUmUsZm4pfDApK01hdGguaW11bChJZSxjbil8MCxB'@; put 'PUErTWF0aC5pbXVsKEllLGZuKXwwO3ZhciBmYT0oVSsoRT1FK01hdGguaW11bChqZSxRdCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKGplLHRuKXwwKStNYXRoLmltdWwoQWUsUXQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwoQWUsdG4pfDApKyhtPj4+MTMpfDApKyhm'@; put 'YT4+PjI2KXwwLGZhJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxvdCksbT0obT1NYXRoLmltdWwoTmUsenQpKStNYXRoLmltdWwodXQsb3QpfDAsQT1NYXRoLmltdWwodXQsenQpLEU9RStNYXRoLmltdWwocnQsV2UpfDAsbT0obT1tK01hdGguaW11bChydCxBdCl8MCkrTWF0aC5pbXVsKEtl'@; put 'LFdlKXwwLEE9QStNYXRoLmltdWwoS2UsQXQpfDAsRT1FK01hdGguaW11bCh5dCxodCl8MCxtPShtPW0rTWF0aC5pbXVsKHl0LEV0KXwwKStNYXRoLmltdWwoTXQsaHQpfDAsQT1BK01hdGguaW11bChNdCxFdCl8MCxFPUUrTWF0aC5pbXVsKG50LGFuKXwwLG09KG09bStNYXRoLmltdWwobnQs'@; put 'anQpfDApK01hdGguaW11bChKZSxhbil8MCxBPUErTWF0aC5pbXVsKEplLGp0KXwwLEU9RStNYXRoLmltdWwoRGUsY24pfDAsbT0obT1tK01hdGguaW11bChEZSxmbil8MCkrTWF0aC5pbXVsKGtlLGNuKXwwLEE9QStNYXRoLmltdWwoa2UsZm4pfDA7dmFyIG5yPShVKyhFPUUrTWF0aC5pbXVs'@; put 'KFJlLFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwoUmUsdG4pfDApK01hdGguaW11bChJZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChJZSx0bil8MCkrKG0+Pj4xMyl8MCkrKG5yPj4+MjYpfDAsbnImPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLFdlKSxtPSht'@; put 'PU1hdGguaW11bChOZSxBdCkpK01hdGguaW11bCh1dCxXZSl8MCxBPU1hdGguaW11bCh1dCxBdCksRT1FK01hdGguaW11bChydCxodCl8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LEV0KXwwKStNYXRoLmltdWwoS2UsaHQpfDAsQT1BK01hdGguaW11bChLZSxFdCl8MCxFPUUrTWF0aC5pbXVsKHl0'@; put 'LGFuKXwwLG09KG09bStNYXRoLmltdWwoeXQsanQpfDApK01hdGguaW11bChNdCxhbil8MCxBPUErTWF0aC5pbXVsKE10LGp0KXwwLEU9RStNYXRoLmltdWwobnQsY24pfDAsbT0obT1tK01hdGguaW11bChudCxmbil8MCkrTWF0aC5pbXVsKEplLGNuKXwwLEE9QStNYXRoLmltdWwoSmUsZm4p'@; put 'fDA7dmFyIG9hPShVKyhFPUUrTWF0aC5pbXVsKERlLFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwoRGUsdG4pfDApK01hdGguaW11bChrZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChrZSx0bil8MCkrKG0+Pj4xMyl8MCkrKG9hPj4+MjYpfDAsb2EmPTY3MTA4'@; put 'ODYzLEU9TWF0aC5pbXVsKE5lLGh0KSxtPShtPU1hdGguaW11bChOZSxFdCkpK01hdGguaW11bCh1dCxodCl8MCxBPU1hdGguaW11bCh1dCxFdCksRT1FK01hdGguaW11bChydCxhbil8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LGp0KXwwKStNYXRoLmltdWwoS2UsYW4pfDAsQT1BK01hdGguaW11'@; put 'bChLZSxqdCl8MCxFPUUrTWF0aC5pbXVsKHl0LGNuKXwwLG09KG09bStNYXRoLmltdWwoeXQsZm4pfDApK01hdGguaW11bChNdCxjbil8MCxBPUErTWF0aC5pbXVsKE10LGZuKXwwO3ZhciBfYT0oVSsoRT1FK01hdGguaW11bChudCxRdCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVs'@; put 'KG50LHRuKXwwKStNYXRoLmltdWwoSmUsUXQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwoSmUsdG4pfDApKyhtPj4+MTMpfDApKyhfYT4+PjI2KXwwLF9hJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxhbiksbT0obT1NYXRoLmltdWwoTmUsanQpKStNYXRoLmltdWwodXQsYW4pfDAs'@; put 'QT1NYXRoLmltdWwodXQsanQpLEU9RStNYXRoLmltdWwocnQsY24pfDAsbT0obT1tK01hdGguaW11bChydCxmbil8MCkrTWF0aC5pbXVsKEtlLGNuKXwwLEE9QStNYXRoLmltdWwoS2UsZm4pfDA7dmFyIE9hPShVKyhFPUUrTWF0aC5pbXVsKHl0LFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStN'@; put 'YXRoLmltdWwoeXQsdG4pfDApK01hdGguaW11bChNdCxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChNdCx0bil8MCkrKG0+Pj4xMyl8MCkrKE9hPj4+MjYpfDAsT2EmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLGNuKSxtPShtPU1hdGguaW11bChOZSxmbikpK01hdGguaW11bCh1'@; put 'dCxjbil8MCxBPU1hdGguaW11bCh1dCxmbik7dmFyIE5hPShVKyhFPUUrTWF0aC5pbXVsKHJ0LFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwocnQsdG4pfDApK01hdGguaW11bChLZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChLZSx0bil8MCkrKG0+Pj4xMyl8'@; put 'MCkrKE5hPj4+MjYpfDAsTmEmPTY3MTA4ODYzO3ZhciBlaT0oVSsoRT1NYXRoLmltdWwoTmUsUXQpKXwwKSsoKDgxOTEmKG09KG09TWF0aC5pbXVsKE5lLHRuKSkrTWF0aC5pbXVsKHV0LFF0KXwwKSk8PDEzKXwwO3JldHVybiBVPSgoQT1NYXRoLmltdWwodXQsdG4pKSsobT4+PjEzKXwwKSso'@; put 'ZWk+Pj4yNil8MCxlaSY9NjcxMDg4NjMsVlswXT1jYSxWWzFdPXhpLFZbMl09eXIsVlszXT1HbixWWzRdPUtpLFZbNV09SnIsVls2XT1RcixWWzddPU5pLFZbOF09SGksVls5XT1JYSxWWzEwXT1QcixWWzExXT1ZaSxWWzEyXT1mYSxWWzEzXT1ucixWWzE0XT1vYSxWWzE1XT1fYSxWWzE2XT1P'@; put 'YSxWWzE3XT1OYSxWWzE4XT1laSwwIT09VSYmKFZbMTldPVUseC5sZW5ndGgrKykseH07ZnVuY3Rpb24gUSh6LGcseSl7cmV0dXJuKG5ldyBxKS5tdWxwKHosZyx5KX1mdW5jdGlvbiBxKHosZyl7dGhpcy54PXosdGhpcy55PWd9TWF0aC5pbXVsfHwoWj1XKSx3LnByb3RvdHlwZS5tdWxUbz1m'@; put 'dW5jdGlvbihnLHkpe3ZhciB4LEM9dGhpcy5sZW5ndGgrZy5sZW5ndGg7cmV0dXJuIHg9MTA9PT10aGlzLmxlbmd0aCYmMTA9PT1nLmxlbmd0aD9aKHRoaXMsZyx5KTpDPDYzP1codGhpcyxnLHkpOkM8MTAyND9mdW5jdGlvbiBYKHosZyx5KXt5Lm5lZ2F0aXZlPWcubmVnYXRpdmVeei5uZWdh'@; put 'dGl2ZSx5Lmxlbmd0aD16Lmxlbmd0aCtnLmxlbmd0aDtmb3IodmFyIHg9MCxDPTAsVD0wO1Q8eS5sZW5ndGgtMTtUKyspe3ZhciBWPUM7Qz0wO2Zvcih2YXIgVT02NzEwODg2MyZ4LEU9TWF0aC5taW4oVCxnLmxlbmd0aC0xKSxtPU1hdGgubWF4KDAsVC16Lmxlbmd0aCsxKTttPD1FO20rKyl7'@; put 'dmFyIGxlPSgwfHoud29yZHNbVC1tXSkqKDB8Zy53b3Jkc1ttXSksd2U9NjcxMDg4NjMmbGU7VT02NzEwODg2MyYod2U9d2UrVXwwKSxDKz0oVj0oVj1WKyhsZS82NzEwODg2NHwwKXwwKSsod2U+Pj4yNil8MCk+Pj4yNixWJj02NzEwODg2M315LndvcmRzW1RdPVUseD1WLFY9Q31yZXR1cm4g'@; put 'MCE9PXg/eS53b3Jkc1tUXT14OnkubGVuZ3RoLS0seS5zdHJpcCgpfSh0aGlzLGcseSk6USh0aGlzLGcseSkseH0scS5wcm90b3R5cGUubWFrZVJCVD1mdW5jdGlvbihnKXtmb3IodmFyIHk9bmV3IEFycmF5KGcpLHg9dy5wcm90b3R5cGUuX2NvdW50Qml0cyhnKS0xLEM9MDtDPGc7QysrKXlb'@; put 'Q109dGhpcy5yZXZCaW4oQyx4LGcpO3JldHVybiB5fSxxLnByb3RvdHlwZS5yZXZCaW49ZnVuY3Rpb24oZyx5LHgpe2lmKDA9PT1nfHxnPT09eC0xKXJldHVybiBnO2Zvcih2YXIgQz0wLFQ9MDtUPHk7VCsrKUN8PSgxJmcpPDx5LVQtMSxnPj49MTtyZXR1cm4gQ30scS5wcm90b3R5cGUucGVy'@; put 'bXV0ZT1mdW5jdGlvbihnLHkseCxDLFQsVil7Zm9yKHZhciBVPTA7VTxWO1UrKylDW1VdPXlbZ1tVXV0sVFtVXT14W2dbVV1dfSxxLnByb3RvdHlwZS50cmFuc2Zvcm09ZnVuY3Rpb24oZyx5LHgsQyxULFYpe3RoaXMucGVybXV0ZShWLGcseSx4LEMsVCk7Zm9yKHZhciBVPTE7VTxUO1U8PD0x'@; put 'KWZvcih2YXIgRT1VPDwxLG09TWF0aC5jb3MoMipNYXRoLlBJL0UpLEE9TWF0aC5zaW4oMipNYXRoLlBJL0UpLGFlPTA7YWU8VDthZSs9RSlmb3IodmFyIG5lPW0sbGU9QSx3ZT0wO3dlPFU7d2UrKyl7dmFyIFplPXhbYWUrd2VdLFFlPUNbYWUrd2VdLGF0PXhbYWUrd2UrVV0seGU9Q1thZSt3'@; put 'ZStVXSx2ZT1uZSphdC1sZSp4ZTt4ZT1uZSp4ZStsZSphdCx4W2FlK3dlXT1aZSsoYXQ9dmUpLENbYWUrd2VdPVFlK3hlLHhbYWUrd2UrVV09WmUtYXQsQ1thZSt3ZStVXT1RZS14ZSx3ZSE9PUUmJih2ZT1tKm5lLUEqbGUsbGU9bSpsZStBKm5lLG5lPXZlKX19LHEucHJvdG90eXBlLmd1ZXNz'@; put 'TGVuMTNiPWZ1bmN0aW9uKGcseSl7dmFyIHg9MXxNYXRoLm1heCh5LGcpLEM9MSZ4LFQ9MDtmb3IoeD14LzJ8MDt4O3g+Pj49MSlUKys7cmV0dXJuIDE8PFQrMStDfSxxLnByb3RvdHlwZS5jb25qdWdhdGU9ZnVuY3Rpb24oZyx5LHgpe2lmKCEoeDw9MSkpZm9yKHZhciBDPTA7Qzx4LzI7Qysr'@; put 'KXt2YXIgVD1nW0NdO2dbQ109Z1t4LUMtMV0sZ1t4LUMtMV09VCxUPXlbQ10seVtDXT0teVt4LUMtMV0seVt4LUMtMV09LVR9fSxxLnByb3RvdHlwZS5ub3JtYWxpemUxM2I9ZnVuY3Rpb24oZyx5KXtmb3IodmFyIHg9MCxDPTA7Qzx5LzI7QysrKXt2YXIgVD04MTkyKk1hdGgucm91bmQoZ1sy'@; put 'KkMrMV0veSkrTWF0aC5yb3VuZChnWzIqQ10veSkreDtnW0NdPTY3MTA4ODYzJlQseD1UPDY3MTA4ODY0PzA6VC82NzEwODg2NHwwfXJldHVybiBnfSxxLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKGcseSx4LEMpe2Zvcih2YXIgVD0wLFY9MDtWPHk7VisrKXhbMipWXT04MTkxJihU'@; put 'Kz0wfGdbVl0pLHhbMipWKzFdPTgxOTEmKFQ+Pj49MTMpLFQ+Pj49MTM7Zm9yKFY9Mip5O1Y8QzsrK1YpeFtWXT0wO3AoMD09PVQpLHAoISgtODE5MiZUKSl9LHEucHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24oZyl7Zm9yKHZhciB5PW5ldyBBcnJheShnKSx4PTA7eDxnO3grKyl5W3hdPTA7cmV0'@; put 'dXJuIHl9LHEucHJvdG90eXBlLm11bHA9ZnVuY3Rpb24oZyx5LHgpe3ZhciBDPTIqdGhpcy5ndWVzc0xlbjEzYihnLmxlbmd0aCx5Lmxlbmd0aCksVD10aGlzLm1ha2VSQlQoQyksVj10aGlzLnN0dWIoQyksVT1uZXcgQXJyYXkoQyksRT1uZXcgQXJyYXkoQyksbT1uZXcgQXJyYXkoQyksQT1u'@; put 'ZXcgQXJyYXkoQyksYWU9bmV3IEFycmF5KEMpLG5lPW5ldyBBcnJheShDKSxsZT14LndvcmRzO2xlLmxlbmd0aD1DLHRoaXMuY29udmVydDEzYihnLndvcmRzLGcubGVuZ3RoLFUsQyksdGhpcy5jb252ZXJ0MTNiKHkud29yZHMseS5sZW5ndGgsQSxDKSx0aGlzLnRyYW5zZm9ybShVLFYsRSxt'@; put 'LEMsVCksdGhpcy50cmFuc2Zvcm0oQSxWLGFlLG5lLEMsVCk7Zm9yKHZhciB3ZT0wO3dlPEM7d2UrKyl7dmFyIFplPUVbd2VdKmFlW3dlXS1tW3dlXSpuZVt3ZV07bVt3ZV09RVt3ZV0qbmVbd2VdK21bd2VdKmFlW3dlXSxFW3dlXT1aZX1yZXR1cm4gdGhpcy5jb25qdWdhdGUoRSxtLEMpLHRo'@; put 'aXMudHJhbnNmb3JtKEUsbSxsZSxWLEMsVCksdGhpcy5jb25qdWdhdGUobGUsVixDKSx0aGlzLm5vcm1hbGl6ZTEzYihsZSxDKSx4Lm5lZ2F0aXZlPWcubmVnYXRpdmVeeS5uZWdhdGl2ZSx4Lmxlbmd0aD1nLmxlbmd0aCt5Lmxlbmd0aCx4LnN0cmlwKCl9LHcucHJvdG90eXBlLm11bD1mdW5j'@; put 'dGlvbihnKXt2YXIgeT1uZXcgdyhudWxsKTtyZXR1cm4geS53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrZy5sZW5ndGgpLHRoaXMubXVsVG8oZyx5KX0sdy5wcm90b3R5cGUubXVsZj1mdW5jdGlvbihnKXt2YXIgeT1uZXcgdyhudWxsKTtyZXR1cm4geS53b3Jkcz1uZXcgQXJyYXkodGhp'@; put 'cy5sZW5ndGgrZy5sZW5ndGgpLFEodGhpcyxnLHkpfSx3LnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkubXVsVG8oZyx0aGlzKX0sdy5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24oZyl7cCgibnVtYmVyIj09dHlwZW9mIGcpLHAoZzw2NzEwODg2NCk7Zm9y'@; put 'KHZhciB5PTAseD0wO3g8dGhpcy5sZW5ndGg7eCsrKXt2YXIgQz0oMHx0aGlzLndvcmRzW3hdKSpnLFQ9KDY3MTA4ODYzJkMpKyg2NzEwODg2MyZ5KTt5Pj49MjYseSs9Qy82NzEwODg2NHwwLHkrPVQ+Pj4yNix0aGlzLndvcmRzW3hdPTY3MTA4ODYzJlR9cmV0dXJuIDAhPT15JiYodGhpcy53'@; put 'b3Jkc1t4XT15LHRoaXMubGVuZ3RoKyspLHRoaXMubGVuZ3RoPTA9PT1nPzE6dGhpcy5sZW5ndGgsdGhpc30sdy5wcm90b3R5cGUubXVsbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltdWxuKGcpfSx3LnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdWwo'@; put 'dGhpcyl9LHcucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbXVsKHRoaXMuY2xvbmUoKSl9LHcucHJvdG90eXBlLnBvdz1mdW5jdGlvbihnKXt2YXIgeT1mdW5jdGlvbiBCKHope2Zvcih2YXIgZz1uZXcgQXJyYXkoei5iaXRMZW5ndGgoKSkseT0wO3k8Zy5sZW5ndGg7'@; put 'eSsrKXt2YXIgQz15JTI2O2dbeV09KHoud29yZHNbeS8yNnwwXSYxPDxDKT4+PkN9cmV0dXJuIGd9KGcpO2lmKDA9PT15Lmxlbmd0aClyZXR1cm4gbmV3IHcoMSk7Zm9yKHZhciB4PXRoaXMsQz0wO0M8eS5sZW5ndGgmJjA9PT15W0NdO0MrKyx4PXguc3FyKCkpO2lmKCsrQzx5Lmxlbmd0aClm'@; put 'b3IodmFyIFQ9eC5zcXIoKTtDPHkubGVuZ3RoO0MrKyxUPVQuc3FyKCkpMCE9PXlbQ10mJih4PXgubXVsKFQpKTtyZXR1cm4geH0sdy5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKGcpe3AoIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgVCx5PWclMjYseD0oZy15KS8yNixDPTY3MTA4'@; put 'ODYzPj4+MjYteTw8MjYteTtpZigwIT09eSl7dmFyIFY9MDtmb3IoVD0wO1Q8dGhpcy5sZW5ndGg7VCsrKXt2YXIgVT10aGlzLndvcmRzW1RdJkM7dGhpcy53b3Jkc1tUXT0oMHx0aGlzLndvcmRzW1RdKS1VPDx5fFYsVj1VPj4+MjYteX1WJiYodGhpcy53b3Jkc1tUXT1WLHRoaXMubGVuZ3Ro'@; put 'KyspfWlmKDAhPT14KXtmb3IoVD10aGlzLmxlbmd0aC0xO1Q+PTA7VC0tKXRoaXMud29yZHNbVCt4XT10aGlzLndvcmRzW1RdO2ZvcihUPTA7VDx4O1QrKyl0aGlzLndvcmRzW1RdPTA7dGhpcy5sZW5ndGgrPXh9cmV0dXJuIHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuaXNobG49ZnVuY3Rp'@; put 'b24oZyl7cmV0dXJuIHAoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaGxuKGcpfSx3LnByb3RvdHlwZS5pdXNocm49ZnVuY3Rpb24oZyx5LHgpe3ZhciBDO3AoIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKSxDPXk/KHkteSUyNikvMjY6MDt2YXIgVD1nJTI2LFY9TWF0aC5taW4oKGctVCkv'@; put 'MjYsdGhpcy5sZW5ndGgpLFU9NjcxMDg4NjNeNjcxMDg4NjM+Pj5UPDxULEU9eDtpZihDLT1WLEM9TWF0aC5tYXgoMCxDKSxFKXtmb3IodmFyIG09MDttPFY7bSsrKUUud29yZHNbbV09dGhpcy53b3Jkc1ttXTtFLmxlbmd0aD1WfWlmKDAhPT1WKWlmKHRoaXMubGVuZ3RoPlYpZm9yKHRoaXMu'@; put 'bGVuZ3RoLT1WLG09MDttPHRoaXMubGVuZ3RoO20rKyl0aGlzLndvcmRzW21dPXRoaXMud29yZHNbbStWXTtlbHNlIHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xO3ZhciBBPTA7Zm9yKG09dGhpcy5sZW5ndGgtMTttPj0wJiYoMCE9PUF8fG0+PUMpO20tLSl7dmFyIGFlPTB8dGhpcy53'@; put 'b3Jkc1ttXTt0aGlzLndvcmRzW21dPUE8PDI2LVR8YWU+Pj5ULEE9YWUmVX1yZXR1cm4gRSYmMCE9PUEmJihFLndvcmRzW0UubGVuZ3RoKytdPUEpLDA9PT10aGlzLmxlbmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLmlzaHJu'@; put 'PWZ1bmN0aW9uKGcseSx4KXtyZXR1cm4gcCgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4oZyx5LHgpfSx3LnByb3RvdHlwZS5zaGxuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaXNobG4oZyl9LHcucHJvdG90eXBlLnVzaGxuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlz'@; put 'LmNsb25lKCkuaXVzaGxuKGcpfSx3LnByb3RvdHlwZS5zaHJuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaXNocm4oZyl9LHcucHJvdG90eXBlLnVzaHJuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaHJuKGcpfSx3LnByb3RvdHlwZS50ZXN0bj1mdW5jdGlv'@; put 'bihnKXtwKCJudW1iZXIiPT10eXBlb2YgZyYmZz49MCk7dmFyIHk9ZyUyNix4PShnLXkpLzI2O3JldHVybiEodGhpcy5sZW5ndGg8PXh8fCEodGhpcy53b3Jkc1t4XSYxPDx5KSl9LHcucHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbihnKXtwKCJudW1iZXIiPT10eXBlb2YgZyYmZz49MCk7dmFy'@; put 'IHk9ZyUyNix4PShnLXkpLzI2O3JldHVybiBwKDA9PT10aGlzLm5lZ2F0aXZlLCJpbWFza24gd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlIG51bWJlcnMiKSx0aGlzLmxlbmd0aDw9eD90aGlzOigwIT09eSYmeCsrLHRoaXMubGVuZ3RoPU1hdGgubWluKHgsdGhpcy5sZW5ndGgpLDAhPT15JiYo'@; put 'dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSY9NjcxMDg4NjNeNjcxMDg4NjM+Pj55PDx5KSx0aGlzLnN0cmlwKCkpfSx3LnByb3RvdHlwZS5tYXNrbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbihnKX0sdy5wcm90b3R5cGUuaWFkZG49ZnVuY3Rpb24oZyl7cmV0dXJu'@; put 'IHAoIm51bWJlciI9PXR5cGVvZiBnKSxwKGc8NjcxMDg4NjQpLGc8MD90aGlzLmlzdWJuKC1nKTowIT09dGhpcy5uZWdhdGl2ZT8xPT09dGhpcy5sZW5ndGgmJigwfHRoaXMud29yZHNbMF0pPGc/KHRoaXMud29yZHNbMF09Zy0oMHx0aGlzLndvcmRzWzBdKSx0aGlzLm5lZ2F0aXZlPTAsdGhp'@; put 'cyk6KHRoaXMubmVnYXRpdmU9MCx0aGlzLmlzdWJuKGcpLHRoaXMubmVnYXRpdmU9MSx0aGlzKTp0aGlzLl9pYWRkbihnKX0sdy5wcm90b3R5cGUuX2lhZGRuPWZ1bmN0aW9uKGcpe3RoaXMud29yZHNbMF0rPWc7Zm9yKHZhciB5PTA7eTx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1t5XT49Njcx'@; put 'MDg4NjQ7eSsrKXRoaXMud29yZHNbeV0tPTY3MTA4ODY0LHk9PT10aGlzLmxlbmd0aC0xP3RoaXMud29yZHNbeSsxXT0xOnRoaXMud29yZHNbeSsxXSsrO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCx5KzEpLHRoaXN9LHcucHJvdG90eXBlLmlzdWJuPWZ1bmN0aW9u'@; put 'KGcpe2lmKHAoIm51bWJlciI9PXR5cGVvZiBnKSxwKGc8NjcxMDg4NjQpLGc8MClyZXR1cm4gdGhpcy5pYWRkbigtZyk7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKGcpLHRoaXMubmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0t'@; put 'PWcsMT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFyIHk9MDt5PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3ldPDA7eSsrKXRoaXMud29yZHNbeV0rPTY3MTA4ODY0LHRoaXMud29y'@; put 'ZHNbeSsxXS09MTtyZXR1cm4gdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaWFkZG4oZyl9LHcucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3VibihnKX0sdy5wcm90b3R5cGUuaWFi'@; put 'cz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30sdy5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCl9LHcucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbihnLHkseCl7dmFyIFQ7dGhpcy5fZXhwYW5kKGcubGVuZ3Ro'@; put 'K3gpO3ZhciBWLFU9MDtmb3IoVD0wO1Q8Zy5sZW5ndGg7VCsrKXtWPSgwfHRoaXMud29yZHNbVCt4XSkrVTt2YXIgRT0oMHxnLndvcmRzW1RdKSp5O1U9KChWLT02NzEwODg2MyZFKT4+MjYpLShFLzY3MTA4ODY0fDApLHRoaXMud29yZHNbVCt4XT02NzEwODg2MyZWfWZvcig7VDx0aGlzLmxl'@; put 'bmd0aC14O1QrKylVPShWPSgwfHRoaXMud29yZHNbVCt4XSkrVSk+PjI2LHRoaXMud29yZHNbVCt4XT02NzEwODg2MyZWO2lmKDA9PT1VKXJldHVybiB0aGlzLnN0cmlwKCk7Zm9yKHAoLTE9PT1VKSxVPTAsVD0wO1Q8dGhpcy5sZW5ndGg7VCsrKVU9KFY9LSgwfHRoaXMud29yZHNbVF0pK1Up'@; put 'Pj4yNix0aGlzLndvcmRzW1RdPTY3MTA4ODYzJlY7cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKGcseSl7dmFyIHgsQz10aGlzLmNsb25lKCksVD1nLFY9MHxULndvcmRzW1QubGVuZ3RoLTFdOzAhPSh4PTI2LXRoaXMu'@; put 'X2NvdW50Qml0cyhWKSkmJihUPVQudXNobG4oeCksQy5pdXNobG4oeCksVj0wfFQud29yZHNbVC5sZW5ndGgtMV0pO3ZhciBtLEU9Qy5sZW5ndGgtVC5sZW5ndGg7aWYoIm1vZCIhPT15KXsobT1uZXcgdyhudWxsKSkubGVuZ3RoPUUrMSxtLndvcmRzPW5ldyBBcnJheShtLmxlbmd0aCk7Zm9y'@; put 'KHZhciBBPTA7QTxtLmxlbmd0aDtBKyspbS53b3Jkc1tBXT0wfXZhciBhZT1DLmNsb25lKCkuX2lzaGxuc3VibXVsKFQsMSxFKTswPT09YWUubmVnYXRpdmUmJihDPWFlLG0mJihtLndvcmRzW0VdPTEpKTtmb3IodmFyIG5lPUUtMTtuZT49MDtuZS0tKXt2YXIgbGU9NjcxMDg4NjQqKDB8Qy53'@; put 'b3Jkc1tULmxlbmd0aCtuZV0pKygwfEMud29yZHNbVC5sZW5ndGgrbmUtMV0pO2ZvcihsZT1NYXRoLm1pbihsZS9WfDAsNjcxMDg4NjMpLEMuX2lzaGxuc3VibXVsKFQsbGUsbmUpOzAhPT1DLm5lZ2F0aXZlOylsZS0tLEMubmVnYXRpdmU9MCxDLl9pc2hsbnN1Ym11bChULDEsbmUpLEMuaXNa'@; put 'ZXJvKCl8fChDLm5lZ2F0aXZlXj0xKTttJiYobS53b3Jkc1tuZV09bGUpfXJldHVybiBtJiZtLnN0cmlwKCksQy5zdHJpcCgpLCJkaXYiIT09eSYmMCE9PXgmJkMuaXVzaHJuKHgpLHtkaXY6bXx8bnVsbCxtb2Q6Q319LHcucHJvdG90eXBlLmRpdm1vZD1mdW5jdGlvbihnLHkseCl7cmV0dXJu'@; put 'IHAoIWcuaXNaZXJvKCkpLHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgdygwKSxtb2Q6bmV3IHcoMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Zy5uZWdhdGl2ZT8oVj10aGlzLm5lZygpLmRpdm1vZChnLHkpLCJtb2QiIT09eSYmKEM9Vi5kaXYubmVnKCkpLCJkaXYiIT09eSYmKFQ9Vi5tb2Qu'@; put 'bmVnKCkseCYmMCE9PVQubmVnYXRpdmUmJlQuaWFkZChnKSkse2RpdjpDLG1vZDpUfSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT1nLm5lZ2F0aXZlPyhWPXRoaXMuZGl2bW9kKGcubmVnKCkseSksIm1vZCIhPT15JiYoQz1WLmRpdi5uZWcoKSkse2RpdjpDLG1vZDpWLm1vZH0pOnRoaXMubmVn'@; put 'YXRpdmUmZy5uZWdhdGl2ZT8oVj10aGlzLm5lZygpLmRpdm1vZChnLm5lZygpLHkpLCJkaXYiIT09eSYmKFQ9Vi5tb2QubmVnKCkseCYmMCE9PVQubmVnYXRpdmUmJlQuaXN1YihnKSkse2RpdjpWLmRpdixtb2Q6VH0pOmcubGVuZ3RoPnRoaXMubGVuZ3RofHx0aGlzLmNtcChnKTwwP3tkaXY6'@; put 'bmV3IHcoMCksbW9kOnRoaXN9OjE9PT1nLmxlbmd0aD8iZGl2Ij09PXk/e2Rpdjp0aGlzLmRpdm4oZy53b3Jkc1swXSksbW9kOm51bGx9OiJtb2QiPT09eT97ZGl2Om51bGwsbW9kOm5ldyB3KHRoaXMubW9kbihnLndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKGcud29yZHNbMF0pLG1vZDpu'@; put 'ZXcgdyh0aGlzLm1vZG4oZy53b3Jkc1swXSkpfTp0aGlzLl93b3JkRGl2KGcseSk7dmFyIEMsVCxWfSx3LnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuZGl2bW9kKGcsImRpdiIsITEpLmRpdn0sdy5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmRp'@; put 'dm1vZChnLCJtb2QiLCExKS5tb2R9LHcucHJvdG90eXBlLnVtb2Q9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuZGl2bW9kKGcsIm1vZCIsITApLm1vZH0sdy5wcm90b3R5cGUuZGl2Um91bmQ9ZnVuY3Rpb24oZyl7dmFyIHk9dGhpcy5kaXZtb2QoZyk7aWYoeS5tb2QuaXNaZXJvKCkpcmV0dXJu'@; put 'IHkuZGl2O3ZhciB4PTAhPT15LmRpdi5uZWdhdGl2ZT95Lm1vZC5pc3ViKGcpOnkubW9kLEM9Zy51c2hybigxKSxUPWcuYW5kbG4oMSksVj14LmNtcChDKTtyZXR1cm4gVjwwfHwxPT09VCYmMD09PVY/eS5kaXY6MCE9PXkuZGl2Lm5lZ2F0aXZlP3kuZGl2LmlzdWJuKDEpOnkuZGl2LmlhZGRu'@; put 'KDEpfSx3LnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKGcpe3AoZzw9NjcxMDg4NjMpO2Zvcih2YXIgeT0oMTw8MjYpJWcseD0wLEM9dGhpcy5sZW5ndGgtMTtDPj0wO0MtLSl4PSh5KngrKDB8dGhpcy53b3Jkc1tDXSkpJWc7cmV0dXJuIHh9LHcucHJvdG90eXBlLmlkaXZuPWZ1bmN0aW9uKGcp'@; put 'e3AoZzw9NjcxMDg4NjMpO2Zvcih2YXIgeT0wLHg9dGhpcy5sZW5ndGgtMTt4Pj0wO3gtLSl7dmFyIEM9KDB8dGhpcy53b3Jkc1t4XSkrNjcxMDg4NjQqeTt0aGlzLndvcmRzW3hdPUMvZ3wwLHk9QyVnfXJldHVybiB0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLmRpdm49ZnVuY3Rpb24oZyl7'@; put 'cmV0dXJuIHRoaXMuY2xvbmUoKS5pZGl2bihnKX0sdy5wcm90b3R5cGUuZWdjZD1mdW5jdGlvbihnKXtwKDA9PT1nLm5lZ2F0aXZlKSxwKCFnLmlzWmVybygpKTt2YXIgeT10aGlzLHg9Zy5jbG9uZSgpO3k9MCE9PXkubmVnYXRpdmU/eS51bW9kKGcpOnkuY2xvbmUoKTtmb3IodmFyIEM9bmV3'@; put 'IHcoMSksVD1uZXcgdygwKSxWPW5ldyB3KDApLFU9bmV3IHcoMSksRT0wO3kuaXNFdmVuKCkmJnguaXNFdmVuKCk7KXkuaXVzaHJuKDEpLHguaXVzaHJuKDEpLCsrRTtmb3IodmFyIG09eC5jbG9uZSgpLEE9eS5jbG9uZSgpOyF5LmlzWmVybygpOyl7Zm9yKHZhciBhZT0wLG5lPTE7ISh5Lndv'@; put 'cmRzWzBdJm5lKSYmYWU8MjY7KythZSxuZTw8PTEpO2lmKGFlPjApZm9yKHkuaXVzaHJuKGFlKTthZS0tID4wOykoQy5pc09kZCgpfHxULmlzT2RkKCkpJiYoQy5pYWRkKG0pLFQuaXN1YihBKSksQy5pdXNocm4oMSksVC5pdXNocm4oMSk7Zm9yKHZhciBsZT0wLHdlPTE7ISh4LndvcmRzWzBd'@; put 'JndlKSYmbGU8MjY7KytsZSx3ZTw8PTEpO2lmKGxlPjApZm9yKHguaXVzaHJuKGxlKTtsZS0tID4wOykoVi5pc09kZCgpfHxVLmlzT2RkKCkpJiYoVi5pYWRkKG0pLFUuaXN1YihBKSksVi5pdXNocm4oMSksVS5pdXNocm4oMSk7eS5jbXAoeCk+PTA/KHkuaXN1Yih4KSxDLmlzdWIoViksVC5p'@; put 'c3ViKFUpKTooeC5pc3ViKHkpLFYuaXN1YihDKSxVLmlzdWIoVCkpfXJldHVybnthOlYsYjpVLGdjZDp4Lml1c2hsbihFKX19LHcucHJvdG90eXBlLl9pbnZtcD1mdW5jdGlvbihnKXtwKDA9PT1nLm5lZ2F0aXZlKSxwKCFnLmlzWmVybygpKTt2YXIgYWUseT10aGlzLHg9Zy5jbG9uZSgpO3k9'@; put 'MCE9PXkubmVnYXRpdmU/eS51bW9kKGcpOnkuY2xvbmUoKTtmb3IodmFyIEM9bmV3IHcoMSksVD1uZXcgdygwKSxWPXguY2xvbmUoKTt5LmNtcG4oMSk+MCYmeC5jbXBuKDEpPjA7KXtmb3IodmFyIFU9MCxFPTE7ISh5LndvcmRzWzBdJkUpJiZVPDI2OysrVSxFPDw9MSk7aWYoVT4wKWZvcih5'@; put 'Lml1c2hybihVKTtVLS0gPjA7KUMuaXNPZGQoKSYmQy5pYWRkKFYpLEMuaXVzaHJuKDEpO2Zvcih2YXIgbT0wLEE9MTshKHgud29yZHNbMF0mQSkmJm08MjY7KyttLEE8PD0xKTtpZihtPjApZm9yKHguaXVzaHJuKG0pO20tLSA+MDspVC5pc09kZCgpJiZULmlhZGQoViksVC5pdXNocm4oMSk7'@; put 'eS5jbXAoeCk+PTA/KHkuaXN1Yih4KSxDLmlzdWIoVCkpOih4LmlzdWIoeSksVC5pc3ViKEMpKX1yZXR1cm4oYWU9MD09PXkuY21wbigxKT9DOlQpLmNtcG4oMCk8MCYmYWUuaWFkZChnKSxhZX0sdy5wcm90b3R5cGUuZ2NkPWZ1bmN0aW9uKGcpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIGcu'@; put 'YWJzKCk7aWYoZy5pc1plcm8oKSlyZXR1cm4gdGhpcy5hYnMoKTt2YXIgeT10aGlzLmNsb25lKCkseD1nLmNsb25lKCk7eS5uZWdhdGl2ZT0wLHgubmVnYXRpdmU9MDtmb3IodmFyIEM9MDt5LmlzRXZlbigpJiZ4LmlzRXZlbigpO0MrKyl5Lml1c2hybigxKSx4Lml1c2hybigxKTtmb3IoOzsp'@; put 'e2Zvcig7eS5pc0V2ZW4oKTspeS5pdXNocm4oMSk7Zm9yKDt4LmlzRXZlbigpOyl4Lml1c2hybigxKTt2YXIgVD15LmNtcCh4KTtpZihUPDApe3ZhciBWPXk7eT14LHg9Vn1lbHNlIGlmKDA9PT1UfHwwPT09eC5jbXBuKDEpKWJyZWFrO3kuaXN1Yih4KX1yZXR1cm4geC5pdXNobG4oQyl9LHcu'@; put 'cHJvdG90eXBlLmludm09ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuZWdjZChnKS5hLnVtb2QoZyl9LHcucHJvdG90eXBlLmlzRXZlbj1mdW5jdGlvbigpe3JldHVybiEoMSZ0aGlzLndvcmRzWzBdKX0sdy5wcm90b3R5cGUuaXNPZGQ9ZnVuY3Rpb24oKXtyZXR1cm4hKDEmfnRoaXMud29yZHNb'@; put 'MF0pfSx3LnByb3RvdHlwZS5hbmRsbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy53b3Jkc1swXSZnfSx3LnByb3RvdHlwZS5iaW5jbj1mdW5jdGlvbihnKXtwKCJudW1iZXIiPT10eXBlb2YgZyk7dmFyIHk9ZyUyNix4PShnLXkpLzI2LEM9MTw8eTtpZih0aGlzLmxlbmd0aDw9eClyZXR1cm4g'@; put 'dGhpcy5fZXhwYW5kKHgrMSksdGhpcy53b3Jkc1t4XXw9Qyx0aGlzO2Zvcih2YXIgVD1DLFY9eDswIT09VCYmVjx0aGlzLmxlbmd0aDtWKyspe3ZhciBVPTB8dGhpcy53b3Jkc1tWXTtUPShVKz1UKT4+PjI2LHRoaXMud29yZHNbVl09VSY9NjcxMDg4NjN9cmV0dXJuIDAhPT1UJiYodGhpcy53'@; put 'b3Jkc1tWXT1ULHRoaXMubGVuZ3RoKyspLHRoaXN9LHcucHJvdG90eXBlLmlzWmVybz1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdfSx3LnByb3RvdHlwZS5jbXBuPWZ1bmN0aW9uKGcpe3ZhciB4LHk9ZzwwO2lmKDAhPT10aGlzLm5lZ2F0aXZl'@; put 'JiYheSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmeSlyZXR1cm4gMTtpZih0aGlzLnN0cmlwKCksdGhpcy5sZW5ndGg+MSl4PTE7ZWxzZXt5JiYoZz0tZykscChnPD02NzEwODg2MywiTnVtYmVyIGlzIHRvbyBiaWciKTt2YXIgQz0wfHRoaXMud29yZHNbMF07eD1DPT09Zz8wOkM8'@; put 'Zz8tMToxfXJldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC14Onh9LHcucHJvdG90eXBlLmNtcD1mdW5jdGlvbihnKXtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PWcubmVnYXRpdmUpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT1nLm5lZ2F0aXZlKXJldHVybiAxO3ZhciB5'@; put 'PXRoaXMudWNtcChnKTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwteTp5fSx3LnByb3RvdHlwZS51Y21wPWZ1bmN0aW9uKGcpe2lmKHRoaXMubGVuZ3RoPmcubGVuZ3RoKXJldHVybiAxO2lmKHRoaXMubGVuZ3RoPGcubGVuZ3RoKXJldHVybi0xO2Zvcih2YXIgeT0wLHg9dGhpcy5sZW5n'@; put 'dGgtMTt4Pj0wO3gtLSl7dmFyIEM9MHx0aGlzLndvcmRzW3hdLFQ9MHxnLndvcmRzW3hdO2lmKEMhPT1UKXtDPFQ/eT0tMTpDPlQmJih5PTEpO2JyZWFrfX1yZXR1cm4geX0sdy5wcm90b3R5cGUuZ3RuPWZ1bmN0aW9uKGcpe3JldHVybiAxPT09dGhpcy5jbXBuKGcpfSx3LnByb3RvdHlwZS5n'@; put 'dD1mdW5jdGlvbihnKXtyZXR1cm4gMT09PXRoaXMuY21wKGcpfSx3LnByb3RvdHlwZS5ndGVuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNtcG4oZyk+PTB9LHcucHJvdG90eXBlLmd0ZT1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbXAoZyk+PTB9LHcucHJvdG90eXBlLmx0bj1mdW5jdGlv'@; put 'bihnKXtyZXR1cm4tMT09PXRoaXMuY21wbihnKX0sdy5wcm90b3R5cGUubHQ9ZnVuY3Rpb24oZyl7cmV0dXJuLTE9PT10aGlzLmNtcChnKX0sdy5wcm90b3R5cGUubHRlbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbXBuKGcpPD0wfSx3LnByb3RvdHlwZS5sdGU9ZnVuY3Rpb24oZyl7cmV0'@; put 'dXJuIHRoaXMuY21wKGcpPD0wfSx3LnByb3RvdHlwZS5lcW49ZnVuY3Rpb24oZyl7cmV0dXJuIDA9PT10aGlzLmNtcG4oZyl9LHcucHJvdG90eXBlLmVxPWZ1bmN0aW9uKGcpe3JldHVybiAwPT09dGhpcy5jbXAoZyl9LHcucmVkPWZ1bmN0aW9uKGcpe3JldHVybiBuZXcgU2UoZyl9LHcucHJv'@; put 'dG90eXBlLnRvUmVkPWZ1bmN0aW9uKGcpe3JldHVybiBwKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHAoMD09PXRoaXMubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksZy5jb252ZXJ0VG8odGhpcykuX2ZvcmNlUmVk'@; put 'KGcpfSx3LnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3aXRoIG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX0sdy5wcm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0'@; put 'aW9uKGcpe3JldHVybiB0aGlzLnJlZD1nLHRoaXN9LHcucHJvdG90eXBlLmZvcmNlUmVkPWZ1bmN0aW9uKGcpe3JldHVybiBwKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMuX2ZvcmNlUmVkKGcpfSx3LnByb3RvdHlwZS5yZWRBZGQ9ZnVu'@; put 'Y3Rpb24oZyl7cmV0dXJuIHAodGhpcy5yZWQsInJlZEFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5hZGQodGhpcyxnKX0sdy5wcm90b3R5cGUucmVkSUFkZD1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVk'@; put 'IG51bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMsZyl9LHcucHJvdG90eXBlLnJlZFN1Yj1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnN1Yih0aGlzLGcpfSx3LnByb3RvdHlwZS5yZWRJU3ViPWZ1'@; put 'bmN0aW9uKGcpe3JldHVybiBwKHRoaXMucmVkLCJyZWRJU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlzdWIodGhpcyxnKX0sdy5wcm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKGcpe3JldHVybiBwKHRoaXMucmVkLCJyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJl'@; put 'ZCBudW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMsZyl9LHcucHJvdG90eXBlLnJlZE11bD1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsZyksdGhpcy5yZWQubXVsKHRoaXMs'@; put 'Zyl9LHcucHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24oZyl7cmV0dXJuIHAodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLGcpLHRoaXMucmVkLmltdWwodGhpcyxnKX0sdy5wcm90b3R5cGUucmVkU3FyPWZ1bmN0'@; put 'aW9uKCl7cmV0dXJuIHAodGhpcy5yZWQsInJlZFNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXIodGhpcyl9LHcucHJvdG90eXBlLnJlZElTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkSVNxciB3'@; put 'b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pc3FyKHRoaXMpfSx3LnByb3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5yZWQsInJlZFNxcnQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhp'@; put 'cy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FydCh0aGlzKX0sdy5wcm90b3R5cGUucmVkSW52bT1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMucmVkLCJyZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmlu'@; put 'dm0odGhpcyl9LHcucHJvdG90eXBlLnJlZE5lZz1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMucmVkLCJyZWROZWcgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQubmVnKHRoaXMpfSx3LnByb3RvdHlwZS5yZWRQb3c9ZnVuY3Rp'@; put 'b24oZyl7cmV0dXJuIHAodGhpcy5yZWQmJiFnLnJlZCwicmVkUG93KG5vcm1hbE51bSkiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5wb3codGhpcyxnKX07dmFyIHRlPXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gaWUoeixn'@; put 'KXt0aGlzLm5hbWU9eix0aGlzLnA9bmV3IHcoZywxNiksdGhpcy5uPXRoaXMucC5iaXRMZW5ndGgoKSx0aGlzLms9bmV3IHcoMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApLHRoaXMudG1wPXRoaXMuX3RtcCgpfWZ1bmN0aW9uIHNlKCl7aWUuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZm'@; put 'ZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBnZSgpe2llLmNhbGwodGhpcywicDIyNCIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAx'@; put 'Iil9ZnVuY3Rpb24gX2UoKXtpZS5jYWxsKHRoaXMsInAxOTIiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIpfWZ1bmN0aW9uIFRlKCl7aWUuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBm'@; put 'ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBTZSh6KXtpZigic3RyaW5nIj09dHlwZW9mIHope3ZhciBnPXcuX3ByaW1lKHopO3RoaXMubT1nLnAsdGhpcy5wcmltZT1nfWVsc2UgcCh6Lmd0bigxKSwibW9kdWx1cyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxIiks'@; put 'dGhpcy5tPXosdGhpcy5wcmltZT1udWxsfWZ1bmN0aW9uIHplKHope1NlLmNhbGwodGhpcyx6KSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyB3KDEpLml1c2hsbih0aGlzLnNo'@; put 'aWZ0KSx0aGlzLnIyPXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIuX2ludm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3VibigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9'@; put 'dGhpcy5yLnN1Yih0aGlzLm1pbnYpfWllLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFyIGc9bmV3IHcobnVsbCk7cmV0dXJuIGcud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKSxnfSxpZS5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbihnKXt2YXIgeCx5PWc7ZG97'@; put 'dGhpcy5zcGxpdCh5LHRoaXMudG1wKSx4PSh5PSh5PXRoaXMuaW11bEsoeSkpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZSh4PnRoaXMubik7dmFyIEM9eDx0aGlzLm4/LTE6eS51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT1DPyh5LndvcmRzWzBdPTAseS5sZW5ndGg9MSk6Qz4w'@; put 'P3kuaXN1Yih0aGlzLnApOnZvaWQgMCE9PXkuc3RyaXA/eS5zdHJpcCgpOnkuX3N0cmlwKCkseX0saWUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKGcseSl7Zy5pdXNocm4odGhpcy5uLDAseSl9LGllLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihnKXtyZXR1cm4gZy5pbXVsKHRoaXMuayl9'@; put 'LE4oc2UsaWUpLHNlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihnLHkpe2Zvcih2YXIgeD00MTk0MzAzLEM9TWF0aC5taW4oZy5sZW5ndGgsOSksVD0wO1Q8QztUKyspeS53b3Jkc1tUXT1nLndvcmRzW1RdO2lmKHkubGVuZ3RoPUMsZy5sZW5ndGg8PTkpcmV0dXJuIGcud29yZHNbMF09MCx2'@; put 'b2lkKGcubGVuZ3RoPTEpO3ZhciBWPWcud29yZHNbOV07Zm9yKHkud29yZHNbeS5sZW5ndGgrK109ViZ4LFQ9MTA7VDxnLmxlbmd0aDtUKyspe3ZhciBVPTB8Zy53b3Jkc1tUXTtnLndvcmRzW1QtMTBdPShVJngpPDw0fFY+Pj4yMixWPVV9Zy53b3Jkc1tULTEwXT1WPj4+PTIyLGcubGVuZ3Ro'@; put 'LT0wPT09ViYmZy5sZW5ndGg+MTA/MTA6OX0sc2UucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKGcpe2cud29yZHNbZy5sZW5ndGhdPTAsZy53b3Jkc1tnLmxlbmd0aCsxXT0wLGcubGVuZ3RoKz0yO2Zvcih2YXIgeT0wLHg9MDt4PGcubGVuZ3RoO3grKyl7dmFyIEM9MHxnLndvcmRzW3hdO2cu'@; put 'd29yZHNbeF09NjcxMDg4NjMmKHkrPTk3NypDKSx5PTY0KkMrKHkvNjcxMDg4NjR8MCl9cmV0dXJuIDA9PT1nLndvcmRzW2cubGVuZ3RoLTFdJiYoZy5sZW5ndGgtLSwwPT09Zy53b3Jkc1tnLmxlbmd0aC0xXSYmZy5sZW5ndGgtLSksZ30sTihnZSxpZSksTihfZSxpZSksTihUZSxpZSksVGUu'@; put 'cHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKGcpe2Zvcih2YXIgeT0wLHg9MDt4PGcubGVuZ3RoO3grKyl7dmFyIEM9MTkqKDB8Zy53b3Jkc1t4XSkreSxUPTY3MTA4ODYzJkM7Qz4+Pj0yNixnLndvcmRzW3hdPVQseT1DfXJldHVybiAwIT09eSYmKGcud29yZHNbZy5sZW5ndGgrK109eSksZ30s'@; put 'dy5fcHJpbWU9ZnVuY3Rpb24oZyl7aWYodGVbZ10pcmV0dXJuIHRlW2ddO3ZhciB5O2lmKCJrMjU2Ij09PWcpeT1uZXcgc2U7ZWxzZSBpZigicDIyNCI9PT1nKXk9bmV3IGdlO2Vsc2UgaWYoInAxOTIiPT09Zyl5PW5ldyBfZTtlbHNle2lmKCJwMjU1MTkiIT09Zyl0aHJvdyBuZXcgRXJyb3Io'@; put 'IlVua25vd24gcHJpbWUgIitnKTt5PW5ldyBUZX1yZXR1cm4gdGVbZ109eSx5fSxTZS5wcm90b3R5cGUuX3ZlcmlmeTE9ZnVuY3Rpb24oZyl7cCgwPT09Zy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxwKGcucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBu'@; put 'dW1iZXJzIil9LFNlLnByb3RvdHlwZS5fdmVyaWZ5Mj1mdW5jdGlvbihnLHkpe3AoIShnLm5lZ2F0aXZlfHkubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLHAoZy5yZWQmJmcucmVkPT09eS5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0s'@; put 'U2UucHJvdG90eXBlLmltb2Q9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKGcpLl9mb3JjZVJlZCh0aGlzKTpnLnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcyl9LFNlLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oZyl7cmV0dXJuIGcuaXNaZXJvKCk/'@; put 'Zy5jbG9uZSgpOnRoaXMubS5zdWIoZykuX2ZvcmNlUmVkKHRoaXMpfSxTZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGcseSl7dGhpcy5fdmVyaWZ5MihnLHkpO3ZhciB4PWcuYWRkKHkpO3JldHVybiB4LmNtcCh0aGlzLm0pPj0wJiZ4LmlzdWIodGhpcy5tKSx4Ll9mb3JjZVJlZCh0aGlzKX0s'@; put 'U2UucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oZyx5KXt0aGlzLl92ZXJpZnkyKGcseSk7dmFyIHg9Zy5pYWRkKHkpO3JldHVybiB4LmNtcCh0aGlzLm0pPj0wJiZ4LmlzdWIodGhpcy5tKSx4fSxTZS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKGcseSl7dGhpcy5fdmVyaWZ5MihnLHkpO3ZhciB4'@; put 'PWcuc3ViKHkpO3JldHVybiB4LmNtcG4oMCk8MCYmeC5pYWRkKHRoaXMubSkseC5fZm9yY2VSZWQodGhpcyl9LFNlLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKGcseSl7dGhpcy5fdmVyaWZ5MihnLHkpO3ZhciB4PWcuaXN1Yih5KTtyZXR1cm4geC5jbXBuKDApPDAmJnguaWFkZCh0aGlzLm0p'@; put 'LHh9LFNlLnByb3RvdHlwZS5zaGw9ZnVuY3Rpb24oZyx5KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MShnKSx0aGlzLmltb2QoZy51c2hsbih5KSl9LFNlLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKGcseSl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoZyx5KSx0aGlzLmltb2QoZy5pbXVsKHkpKX0sU2Uu'@; put 'cHJvdG90eXBlLm11bD1mdW5jdGlvbihnLHkpe3JldHVybiB0aGlzLl92ZXJpZnkyKGcseSksdGhpcy5pbW9kKGcubXVsKHkpKX0sU2UucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuaW11bChnLGcuY2xvbmUoKSl9LFNlLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oZyl7'@; put 'cmV0dXJuIHRoaXMubXVsKGcsZyl9LFNlLnByb3RvdHlwZS5zcXJ0PWZ1bmN0aW9uKGcpe2lmKGcuaXNaZXJvKCkpcmV0dXJuIGcuY2xvbmUoKTt2YXIgeT10aGlzLm0uYW5kbG4oMyk7aWYocCh5JTI9PTEpLDM9PT15KXt2YXIgeD10aGlzLm0uYWRkKG5ldyB3KDEpKS5pdXNocm4oMik7cmV0'@; put 'dXJuIHRoaXMucG93KGcseCl9Zm9yKHZhciBDPXRoaXMubS5zdWJuKDEpLFQ9MDshQy5pc1plcm8oKSYmMD09PUMuYW5kbG4oMSk7KVQrKyxDLml1c2hybigxKTtwKCFDLmlzWmVybygpKTt2YXIgVj1uZXcgdygxKS50b1JlZCh0aGlzKSxVPVYucmVkTmVnKCksRT10aGlzLm0uc3VibigxKS5p'@; put 'dXNocm4oMSksbT10aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKG09bmV3IHcoMiptKm0pLnRvUmVkKHRoaXMpOzAhPT10aGlzLnBvdyhtLEUpLmNtcChVKTspbS5yZWRJQWRkKFUpO2Zvcih2YXIgQT10aGlzLnBvdyhtLEMpLGFlPXRoaXMucG93KGcsQy5hZGRuKDEpLml1c2hybigxKSksbmU9dGhp'@; put 'cy5wb3coZyxDKSxsZT1UOzAhPT1uZS5jbXAoVik7KXtmb3IodmFyIHdlPW5lLFplPTA7MCE9PXdlLmNtcChWKTtaZSsrKXdlPXdlLnJlZFNxcigpO3AoWmU8bGUpO3ZhciBRZT10aGlzLnBvdyhBLG5ldyB3KDEpLml1c2hsbihsZS1aZS0xKSk7YWU9YWUucmVkTXVsKFFlKSxBPVFlLnJlZFNx'@; put 'cigpLG5lPW5lLnJlZE11bChBKSxsZT1aZX1yZXR1cm4gYWV9LFNlLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKGcpe3ZhciB5PWcuX2ludm1wKHRoaXMubSk7cmV0dXJuIDAhPT15Lm5lZ2F0aXZlPyh5Lm5lZ2F0aXZlPTAsdGhpcy5pbW9kKHkpLnJlZE5lZygpKTp0aGlzLmltb2QoeSl9LFNl'@; put 'LnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oZyx5KXtpZih5LmlzWmVybygpKXJldHVybiBuZXcgdygxKS50b1JlZCh0aGlzKTtpZigwPT09eS5jbXBuKDEpKXJldHVybiBnLmNsb25lKCk7dmFyIEM9bmV3IEFycmF5KDE2KTtDWzBdPW5ldyB3KDEpLnRvUmVkKHRoaXMpLENbMV09Zztmb3IodmFy'@; put 'IFQ9MjtUPEMubGVuZ3RoO1QrKylDW1RdPXRoaXMubXVsKENbVC0xXSxnKTt2YXIgVj1DWzBdLFU9MCxFPTAsbT15LmJpdExlbmd0aCgpJTI2O2ZvcigwPT09bSYmKG09MjYpLFQ9eS5sZW5ndGgtMTtUPj0wO1QtLSl7Zm9yKHZhciBBPXkud29yZHNbVF0sYWU9bS0xO2FlPj0wO2FlLS0pe3Zh'@; put 'ciBuZT1BPj5hZSYxO1YhPT1DWzBdJiYoVj10aGlzLnNxcihWKSksMCE9PW5lfHwwIT09VT8oVTw8PTEsVXw9bmUsKDQ9PSsrRXx8MD09PVQmJjA9PT1hZSkmJihWPXRoaXMubXVsKFYsQ1tVXSksRT0wLFU9MCkpOkU9MH1tPTI2fXJldHVybiBWfSxTZS5wcm90b3R5cGUuY29udmVydFRvPWZ1'@; put 'bmN0aW9uKGcpe3ZhciB5PWcudW1vZCh0aGlzLm0pO3JldHVybiB5PT09Zz95LmNsb25lKCk6eX0sU2UucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKGcpe3ZhciB5PWcuY2xvbmUoKTtyZXR1cm4geS5yZWQ9bnVsbCx5fSx3Lm1vbnQ9ZnVuY3Rpb24oZyl7cmV0dXJuIG5ldyB6ZShn'@; put 'KX0sTih6ZSxTZSksemUucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5pbW9kKGcudXNobG4odGhpcy5zaGlmdCkpfSx6ZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oZyl7dmFyIHk9dGhpcy5pbW9kKGcubXVsKHRoaXMucmludikpO3JldHVybiB5'@; put 'LnJlZD1udWxsLHl9LHplLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKGcseSl7aWYoZy5pc1plcm8oKXx8eS5pc1plcm8oKSlyZXR1cm4gZy53b3Jkc1swXT0wLGcubGVuZ3RoPTEsZzt2YXIgeD1nLmltdWwoeSksQz14Lm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0'@; put 'aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxUPXguaXN1YihDKS5pdXNocm4odGhpcy5zaGlmdCksVj1UO3JldHVybiBULmNtcCh0aGlzLm0pPj0wP1Y9VC5pc3ViKHRoaXMubSk6VC5jbXBuKDApPDAmJihWPVQuaWFkZCh0aGlzLm0pKSxWLl9mb3JjZVJlZCh0aGlzKX0semUucHJvdG90eXBlLm11'@; put 'bD1mdW5jdGlvbihnLHkpe2lmKGcuaXNaZXJvKCl8fHkuaXNaZXJvKCkpcmV0dXJuIG5ldyB3KDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgeD1nLm11bCh5KSxDPXgubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLFQ9eC5pc3Vi'@; put 'KEMpLml1c2hybih0aGlzLnNoaWZ0KSxWPVQ7cmV0dXJuIFQuY21wKHRoaXMubSk+PTA/Vj1ULmlzdWIodGhpcy5tKTpULmNtcG4oMCk8MCYmKFY9VC5pYWRkKHRoaXMubSkpLFYuX2ZvcmNlUmVkKHRoaXMpfSx6ZS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5pbW9k'@; put 'KGcuX2ludm1wKHRoaXMubSkubXVsKHRoaXMucjIpKS5fZm9yY2VSZWQodGhpcyl9fShjZT1iLm5tZChjZSksdGhpcyl9LDYzMzYxOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBwLEQ9Yig2MTg4NSksXz1iKDgzNzk4KTt0cnl7cD1bXS5fX3Byb3RvX189PT1BcnJheS5wcm90b3R5cGV9'@; put 'Y2F0Y2goSCl7aWYoIUh8fCJvYmplY3QiIT10eXBlb2YgSHx8ISgiY29kZSJpbiBIKXx8IkVSUl9QUk9UT19BQ0NFU1MiIT09SC5jb2RlKXRocm93IEh9dmFyIE49ISFwJiZfJiZfKE9iamVjdC5wcm90b3R5cGUsIl9fcHJvdG9fXyIpLHc9T2JqZWN0LEY9dy5nZXRQcm90b3R5cGVPZjtjZS5l'@; put 'eHBvcnRzPU4mJiJmdW5jdGlvbiI9PXR5cGVvZiBOLmdldD9EKFtOLmdldF0pOiJmdW5jdGlvbiI9PXR5cGVvZiBGJiZmdW5jdGlvbihSKXtyZXR1cm4gRihudWxsPT1SP1I6dyhSKSl9fSw5MDUxODooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1KO0QudmVyc2lvbj1iKDE2MzYpLnJF'@; put 'LEQudXRpbHM9YigzMTM2KSxELnJhbmQ9YigzNTI5NCksRC5jdXJ2ZT1iKDg3MjkpLEQuY3VydmVzPWIoMjM0MDEpLEQuZWM9YigyOTA0MiksRC5lZGRzYT1iKDgzMDQ1KX0sOTg4Mjg6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig4ODcyMyksXz1iKDMxMzYpLHA9Xy5nZXROQUYs'@; put 'Tj1fLmdldEpTRix3PV8uYXNzZXJ0O2Z1bmN0aW9uIEYoUixqKXt0aGlzLnR5cGU9Uix0aGlzLnA9bmV3IEQoai5wLDE2KSx0aGlzLnJlZD1qLnByaW1lP0QucmVkKGoucHJpbWUpOkQubW9udCh0aGlzLnApLHRoaXMuemVybz1uZXcgRCgwKS50b1JlZCh0aGlzLnJlZCksdGhpcy5vbmU9bmV3'@; put 'IEQoMSkudG9SZWQodGhpcy5yZWQpLHRoaXMudHdvPW5ldyBEKDIpLnRvUmVkKHRoaXMucmVkKSx0aGlzLm49ai5uJiZuZXcgRChqLm4sMTYpLHRoaXMuZz1qLmcmJnRoaXMucG9pbnRGcm9tSlNPTihqLmcsai5nUmVkKSx0aGlzLl93bmFmVDE9bmV3IEFycmF5KDQpLHRoaXMuX3duYWZUMj1u'@; put 'ZXcgQXJyYXkoNCksdGhpcy5fd25hZlQzPW5ldyBBcnJheSg0KSx0aGlzLl93bmFmVDQ9bmV3IEFycmF5KDQpLHRoaXMuX2JpdExlbmd0aD10aGlzLm4/dGhpcy5uLmJpdExlbmd0aCgpOjA7dmFyIFA9dGhpcy5uJiZ0aGlzLnAuZGl2KHRoaXMubik7IVB8fFAuY21wbigxMDApPjA/dGhpcy5y'@; put 'ZWROPW51bGw6KHRoaXMuX21heHdlbGxUcmljaz0hMCx0aGlzLnJlZE49dGhpcy5uLnRvUmVkKHRoaXMucmVkKSl9ZnVuY3Rpb24gSChSLGope3RoaXMuY3VydmU9Uix0aGlzLnR5cGU9aix0aGlzLnByZWNvbXB1dGVkPW51bGx9Y2UuZXhwb3J0cz1GLEYucHJvdG90eXBlLnBvaW50PWZ1bmN0'@; put 'aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQiKX0sRi5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfSxGLnByb3RvdHlwZS5fZml4ZWROYWZNdWw9ZnVuY3Rpb24oaixQKXt3KGoucHJlY29tcHV0ZWQp'@; put 'O3ZhciBMPWouX2dldERvdWJsZXMoKSxZPXAoUCwxLHRoaXMuX2JpdExlbmd0aCksQj0oMTw8TC5zdGVwKzEpLShMLnN0ZXAlMj09MD8yOjEpO0IvPTM7dmFyIFosWCxXPVtdO2ZvcihaPTA7WjxZLmxlbmd0aDtaKz1MLnN0ZXApe1g9MDtmb3IodmFyIFE9WitMLnN0ZXAtMTtRPj1aO1EtLSlY'@; put 'PShYPDwxKStZW1FdO1cucHVzaChYKX1mb3IodmFyIHE9dGhpcy5qcG9pbnQobnVsbCxudWxsLG51bGwpLHRlPXRoaXMuanBvaW50KG51bGwsbnVsbCxudWxsKSxpZT1CO2llPjA7aWUtLSl7Zm9yKFo9MDtaPFcubGVuZ3RoO1orKykoWD1XW1pdKT09PWllP3RlPXRlLm1peGVkQWRkKEwucG9p'@; put 'bnRzW1pdKTpYPT09LWllJiYodGU9dGUubWl4ZWRBZGQoTC5wb2ludHNbWl0ubmVnKCkpKTtxPXEuYWRkKHRlKX1yZXR1cm4gcS50b1AoKX0sRi5wcm90b3R5cGUuX3duYWZNdWw9ZnVuY3Rpb24oaixQKXtmb3IodmFyIEw9NCxZPWouX2dldE5BRlBvaW50cyhMKSxCPVkucG9pbnRzLFc9cChQ'@; put 'LEw9WS53bmQsdGhpcy5fYml0TGVuZ3RoKSxaPXRoaXMuanBvaW50KG51bGwsbnVsbCxudWxsKSxYPVcubGVuZ3RoLTE7WD49MDtYLS0pe2Zvcih2YXIgUT0wO1g+PTAmJjA9PT1XW1hdO1gtLSlRKys7aWYoWD49MCYmUSsrLFo9Wi5kYmxwKFEpLFg8MClicmVhazt2YXIgcT1XW1hdO3coMCE9'@; put 'PXEpLFo9ImFmZmluZSI9PT1qLnR5cGU/Wi5taXhlZEFkZChxPjA/QltxLTE+PjFdOkJbLXEtMT4+MV0ubmVnKCkpOlouYWRkKHE+MD9CW3EtMT4+MV06QlstcS0xPj4xXS5uZWcoKSl9cmV0dXJuImFmZmluZSI9PT1qLnR5cGU/Wi50b1AoKTpafSxGLnByb3RvdHlwZS5fd25hZk11bEFkZD1m'@; put 'dW5jdGlvbihqLFAsTCxZLEIpe3ZhciBxLHRlLGllLFc9dGhpcy5fd25hZlQxLFo9dGhpcy5fd25hZlQyLFg9dGhpcy5fd25hZlQzLFE9MDtmb3IocT0wO3E8WTtxKyspe3ZhciBzZT0oaWU9UFtxXSkuX2dldE5BRlBvaW50cyhqKTtXW3FdPXNlLnduZCxaW3FdPXNlLnBvaW50c31mb3IocT1Z'@; put 'LTE7cT49MTtxLT0yKXt2YXIgZ2U9cS0xLF9lPXE7aWYoMT09PVdbZ2VdJiYxPT09V1tfZV0pe3ZhciBUZT1bUFtnZV0sbnVsbCxudWxsLFBbX2VdXTswPT09UFtnZV0ueS5jbXAoUFtfZV0ueSk/KFRlWzFdPVBbZ2VdLmFkZChQW19lXSksVGVbMl09UFtnZV0udG9KKCkubWl4ZWRBZGQoUFtf'@; put 'ZV0ubmVnKCkpKTowPT09UFtnZV0ueS5jbXAoUFtfZV0ueS5yZWROZWcoKSk/KFRlWzFdPVBbZ2VdLnRvSigpLm1peGVkQWRkKFBbX2VdKSxUZVsyXT1QW2dlXS5hZGQoUFtfZV0ubmVnKCkpKTooVGVbMV09UFtnZV0udG9KKCkubWl4ZWRBZGQoUFtfZV0pLFRlWzJdPVBbZ2VdLnRvSigpLm1p'@; put 'eGVkQWRkKFBbX2VdLm5lZygpKSk7dmFyIFNlPVstMywtMSwtNSwtNywwLDcsNSwxLDNdLHplPU4oTFtnZV0sTFtfZV0pO2ZvcihRPU1hdGgubWF4KHplWzBdLmxlbmd0aCxRKSxYW2dlXT1uZXcgQXJyYXkoUSksWFtfZV09bmV3IEFycmF5KFEpLHRlPTA7dGU8UTt0ZSsrKVhbZ2VdW3RlXT1T'@; put 'ZVszKigxKygwfHplWzBdW3RlXSkpKygxKygwfHplWzFdW3RlXSkpXSxYW19lXVt0ZV09MCxaW2dlXT1UZX1lbHNlIFhbZ2VdPXAoTFtnZV0sV1tnZV0sdGhpcy5fYml0TGVuZ3RoKSxYW19lXT1wKExbX2VdLFdbX2VdLHRoaXMuX2JpdExlbmd0aCksUT1NYXRoLm1heChYW2dlXS5sZW5ndGgs'@; put 'USksUT1NYXRoLm1heChYW19lXS5sZW5ndGgsUSl9dmFyIHk9dGhpcy5qcG9pbnQobnVsbCxudWxsLG51bGwpLHg9dGhpcy5fd25hZlQ0O2ZvcihxPVE7cT49MDtxLS0pe2Zvcih2YXIgQz0wO3E+PTA7KXt2YXIgVD0hMDtmb3IodGU9MDt0ZTxZO3RlKyspeFt0ZV09MHxYW3RlXVtxXSwwIT09'@; put 'eFt0ZV0mJihUPSExKTtpZighVClicmVhaztDKysscS0tfWlmKHE+PTAmJkMrKyx5PXkuZGJscChDKSxxPDApYnJlYWs7Zm9yKHRlPTA7dGU8WTt0ZSsrKXt2YXIgVj14W3RlXTswIT09ViYmKFY+MD9pZT1aW3RlXVtWLTE+PjFdOlY8MCYmKGllPVpbdGVdWy1WLTE+PjFdLm5lZygpKSx5PSJh'@; put 'ZmZpbmUiPT09aWUudHlwZT95Lm1peGVkQWRkKGllKTp5LmFkZChpZSkpfX1mb3IocT0wO3E8WTtxKyspWltxXT1udWxsO3JldHVybiBCP3k6eS50b1AoKX0sRi5CYXNlUG9pbnQ9SCxILnByb3RvdHlwZS5lcT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIil9'@; put 'LEgucHJvdG90eXBlLnZhbGlkYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VydmUudmFsaWRhdGUodGhpcyl9LEYucHJvdG90eXBlLmRlY29kZVBvaW50PWZ1bmN0aW9uKGosUCl7aj1fLnRvQXJyYXkoaixQKTt2YXIgTD10aGlzLnAuYnl0ZUxlbmd0aCgpO2lmKCg0PT09alswXXx8Nj09'@; put 'PWpbMF18fDc9PT1qWzBdKSYmai5sZW5ndGgtMT09MipMKXJldHVybiA2PT09alswXT93KGpbai5sZW5ndGgtMV0lMj09MCk6Nz09PWpbMF0mJncoaltqLmxlbmd0aC0xXSUyPT0xKSx0aGlzLnBvaW50KGouc2xpY2UoMSwxK0wpLGouc2xpY2UoMStMLDErMipMKSk7aWYoKDI9PT1qWzBdfHwz'@; put 'PT09alswXSkmJmoubGVuZ3RoLTE9PT1MKXJldHVybiB0aGlzLnBvaW50RnJvbVgoai5zbGljZSgxLDErTCksMz09PWpbMF0pO3Rocm93IG5ldyBFcnJvcigiVW5rbm93biBwb2ludCBmb3JtYXQiKX0sSC5wcm90b3R5cGUuZW5jb2RlQ29tcHJlc3NlZD1mdW5jdGlvbihqKXtyZXR1cm4gdGhp'@; put 'cy5lbmNvZGUoaiwhMCl9LEgucHJvdG90eXBlLl9lbmNvZGU9ZnVuY3Rpb24oail7dmFyIFA9dGhpcy5jdXJ2ZS5wLmJ5dGVMZW5ndGgoKSxMPXRoaXMuZ2V0WCgpLnRvQXJyYXkoImJlIixQKTtyZXR1cm4gaj9bdGhpcy5nZXRZKCkuaXNFdmVuKCk/MjozXS5jb25jYXQoTCk6WzRdLmNvbmNh'@; put 'dChMLHRoaXMuZ2V0WSgpLnRvQXJyYXkoImJlIixQKSl9LEgucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbihqLFApe3JldHVybiBfLmVuY29kZSh0aGlzLl9lbmNvZGUoUCksail9LEgucHJvdG90eXBlLnByZWNvbXB1dGU9ZnVuY3Rpb24oail7aWYodGhpcy5wcmVjb21wdXRlZClyZXR1cm4g'@; put 'dGhpczt2YXIgUD17ZG91YmxlczpudWxsLG5hZjpudWxsLGJldGE6bnVsbH07cmV0dXJuIFAubmFmPXRoaXMuX2dldE5BRlBvaW50cyg4KSxQLmRvdWJsZXM9dGhpcy5fZ2V0RG91Ymxlcyg0LGopLFAuYmV0YT10aGlzLl9nZXRCZXRhKCksdGhpcy5wcmVjb21wdXRlZD1QLHRoaXN9LEgucHJv'@; put 'dG90eXBlLl9oYXNEb3VibGVzPWZ1bmN0aW9uKGope2lmKCF0aGlzLnByZWNvbXB1dGVkKXJldHVybiExO3ZhciBQPXRoaXMucHJlY29tcHV0ZWQuZG91YmxlcztyZXR1cm4hIVAmJlAucG9pbnRzLmxlbmd0aD49TWF0aC5jZWlsKChqLmJpdExlbmd0aCgpKzEpL1Auc3RlcCl9LEgucHJvdG90'@; put 'eXBlLl9nZXREb3VibGVzPWZ1bmN0aW9uKGosUCl7aWYodGhpcy5wcmVjb21wdXRlZCYmdGhpcy5wcmVjb21wdXRlZC5kb3VibGVzKXJldHVybiB0aGlzLnByZWNvbXB1dGVkLmRvdWJsZXM7Zm9yKHZhciBMPVt0aGlzXSxZPXRoaXMsQj0wO0I8UDtCKz1qKXtmb3IodmFyIFc9MDtXPGo7Vysr'@; put 'KVk9WS5kYmwoKTtMLnB1c2goWSl9cmV0dXJue3N0ZXA6aixwb2ludHM6TH19LEgucHJvdG90eXBlLl9nZXROQUZQb2ludHM9ZnVuY3Rpb24oail7aWYodGhpcy5wcmVjb21wdXRlZCYmdGhpcy5wcmVjb21wdXRlZC5uYWYpcmV0dXJuIHRoaXMucHJlY29tcHV0ZWQubmFmO2Zvcih2YXIgUD1b'@; put 'dGhpc10sTD0oMTw8aiktMSxZPTE9PT1MP251bGw6dGhpcy5kYmwoKSxCPTE7QjxMO0IrKylQW0JdPVBbQi0xXS5hZGQoWSk7cmV0dXJue3duZDpqLHBvaW50czpQfX0sSC5wcm90b3R5cGUuX2dldEJldGE9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0sSC5wcm90b3R5cGUuZGJscD1mdW5jdGlv'@; put 'bihqKXtmb3IodmFyIFA9dGhpcyxMPTA7TDxqO0wrKylQPVAuZGJsKCk7cmV0dXJuIFB9fSw1NTUzNzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDMxMzYpLF89Yig4ODcyMykscD1iKDcxOTkzKSxOPWIoOTg4MjgpLHc9RC5hc3NlcnQ7ZnVuY3Rpb24gRihSKXt0aGlzLnR3aXN0'@; put 'ZWQ9MSE9KDB8Ui5hKSx0aGlzLm1PbmVBPXRoaXMudHdpc3RlZCYmLTE9PSgwfFIuYSksdGhpcy5leHRlbmRlZD10aGlzLm1PbmVBLE4uY2FsbCh0aGlzLCJlZHdhcmRzIixSKSx0aGlzLmE9bmV3IF8oUi5hLDE2KS51bW9kKHRoaXMucmVkLm0pLHRoaXMuYT10aGlzLmEudG9SZWQodGhpcy5y'@; put 'ZWQpLHRoaXMuYz1uZXcgXyhSLmMsMTYpLnRvUmVkKHRoaXMucmVkKSx0aGlzLmMyPXRoaXMuYy5yZWRTcXIoKSx0aGlzLmQ9bmV3IF8oUi5kLDE2KS50b1JlZCh0aGlzLnJlZCksdGhpcy5kZD10aGlzLmQucmVkQWRkKHRoaXMuZCksdyghdGhpcy50d2lzdGVkfHwwPT09dGhpcy5jLmZyb21S'@; put 'ZWQoKS5jbXBuKDEpKSx0aGlzLm9uZUM9MT09KDB8Ui5jKX1mdW5jdGlvbiBIKFIsaixQLEwsWSl7Ti5CYXNlUG9pbnQuY2FsbCh0aGlzLFIsInByb2plY3RpdmUiKSxudWxsPT09aiYmbnVsbD09PVAmJm51bGw9PT1MPyh0aGlzLng9dGhpcy5jdXJ2ZS56ZXJvLHRoaXMueT10aGlzLmN1cnZl'@; put 'Lm9uZSx0aGlzLno9dGhpcy5jdXJ2ZS5vbmUsdGhpcy50PXRoaXMuY3VydmUuemVybyx0aGlzLnpPbmU9ITApOih0aGlzLng9bmV3IF8oaiwxNiksdGhpcy55PW5ldyBfKFAsMTYpLHRoaXMuej1MP25ldyBfKEwsMTYpOnRoaXMuY3VydmUub25lLHRoaXMudD1ZJiZuZXcgXyhZLDE2KSx0aGlz'@; put 'LngucmVkfHwodGhpcy54PXRoaXMueC50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMueS5yZWR8fCh0aGlzLnk9dGhpcy55LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy56LnJlZHx8KHRoaXMuej10aGlzLnoudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnQmJiF0aGlzLnQucmVk'@; put 'JiYodGhpcy50PXRoaXMudC50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMuek9uZT10aGlzLno9PT10aGlzLmN1cnZlLm9uZSx0aGlzLmN1cnZlLmV4dGVuZGVkJiYhdGhpcy50JiYodGhpcy50PXRoaXMueC5yZWRNdWwodGhpcy55KSx0aGlzLnpPbmV8fCh0aGlzLnQ9dGhpcy50LnJlZE11'@; put 'bCh0aGlzLnoucmVkSW52bSgpKSkpKX1wKEYsTiksY2UuZXhwb3J0cz1GLEYucHJvdG90eXBlLl9tdWxBPWZ1bmN0aW9uKGope3JldHVybiB0aGlzLm1PbmVBP2oucmVkTmVnKCk6dGhpcy5hLnJlZE11bChqKX0sRi5wcm90b3R5cGUuX211bEM9ZnVuY3Rpb24oail7cmV0dXJuIHRoaXMub25l'@; put 'Qz9qOnRoaXMuYy5yZWRNdWwoail9LEYucHJvdG90eXBlLmpwb2ludD1mdW5jdGlvbihqLFAsTCxZKXtyZXR1cm4gdGhpcy5wb2ludChqLFAsTCxZKX0sRi5wcm90b3R5cGUucG9pbnRGcm9tWD1mdW5jdGlvbihqLFApeyhqPW5ldyBfKGosMTYpKS5yZWR8fChqPWoudG9SZWQodGhpcy5yZWQp'@; put 'KTt2YXIgTD1qLnJlZFNxcigpLFk9dGhpcy5jMi5yZWRTdWIodGhpcy5hLnJlZE11bChMKSksQj10aGlzLm9uZS5yZWRTdWIodGhpcy5jMi5yZWRNdWwodGhpcy5kKS5yZWRNdWwoTCkpLFc9WS5yZWRNdWwoQi5yZWRJbnZtKCkpLFo9Vy5yZWRTcXJ0KCk7aWYoMCE9PVoucmVkU3FyKCkucmVk'@; put 'U3ViKFcpLmNtcCh0aGlzLnplcm8pKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBwb2ludCIpO3ZhciBYPVouZnJvbVJlZCgpLmlzT2RkKCk7cmV0dXJuKFAmJiFYfHwhUCYmWCkmJihaPVoucmVkTmVnKCkpLHRoaXMucG9pbnQoaixaKX0sRi5wcm90b3R5cGUucG9pbnRGcm9tWT1mdW5jdGlv'@; put 'bihqLFApeyhqPW5ldyBfKGosMTYpKS5yZWR8fChqPWoudG9SZWQodGhpcy5yZWQpKTt2YXIgTD1qLnJlZFNxcigpLFk9TC5yZWRTdWIodGhpcy5jMiksQj1MLnJlZE11bCh0aGlzLmQpLnJlZE11bCh0aGlzLmMyKS5yZWRTdWIodGhpcy5hKSxXPVkucmVkTXVsKEIucmVkSW52bSgpKTtpZigw'@; put 'PT09Vy5jbXAodGhpcy56ZXJvKSl7aWYoUCl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgcG9pbnQiKTtyZXR1cm4gdGhpcy5wb2ludCh0aGlzLnplcm8sail9dmFyIFo9Vy5yZWRTcXJ0KCk7aWYoMCE9PVoucmVkU3FyKCkucmVkU3ViKFcpLmNtcCh0aGlzLnplcm8pKXRocm93IG5ldyBFcnJv'@; put 'cigiaW52YWxpZCBwb2ludCIpO3JldHVybiBaLmZyb21SZWQoKS5pc09kZCgpIT09UCYmKFo9Wi5yZWROZWcoKSksdGhpcy5wb2ludChaLGopfSxGLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbihqKXtpZihqLmlzSW5maW5pdHkoKSlyZXR1cm4hMDtqLm5vcm1hbGl6ZSgpO3ZhciBQPWou'@; put 'eC5yZWRTcXIoKSxMPWoueS5yZWRTcXIoKSxZPVAucmVkTXVsKHRoaXMuYSkucmVkQWRkKEwpLEI9dGhpcy5jMi5yZWRNdWwodGhpcy5vbmUucmVkQWRkKHRoaXMuZC5yZWRNdWwoUCkucmVkTXVsKEwpKSk7cmV0dXJuIDA9PT1ZLmNtcChCKX0scChILE4uQmFzZVBvaW50KSxGLnByb3RvdHlw'@; put 'ZS5wb2ludEZyb21KU09OPWZ1bmN0aW9uKGope3JldHVybiBILmZyb21KU09OKHRoaXMsail9LEYucHJvdG90eXBlLnBvaW50PWZ1bmN0aW9uKGosUCxMLFkpe3JldHVybiBuZXcgSCh0aGlzLGosUCxMLFkpfSxILmZyb21KU09OPWZ1bmN0aW9uKGosUCl7cmV0dXJuIG5ldyBIKGosUFswXSxQ'@; put 'WzFdLFBbMl0pfSxILnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNJbmZpbml0eSgpPyI8RUMgUG9pbnQgSW5maW5pdHk+IjoiPEVDIFBvaW50IHg6ICIrdGhpcy54LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiIHk6ICIrdGhpcy55LmZyb21SZWQoKS50b1N0'@; put 'cmluZygxNiwyKSsiIHo6ICIrdGhpcy56LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiPiJ9LEgucHJvdG90eXBlLmlzSW5maW5pdHk9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMueC5jbXBuKDApJiYoMD09PXRoaXMueS5jbXAodGhpcy56KXx8dGhpcy56T25lJiYwPT09dGhpcy55LmNt'@; put 'cCh0aGlzLmN1cnZlLmMpKX0sSC5wcm90b3R5cGUuX2V4dERibD1mdW5jdGlvbigpe3ZhciBqPXRoaXMueC5yZWRTcXIoKSxQPXRoaXMueS5yZWRTcXIoKSxMPXRoaXMuei5yZWRTcXIoKTtMPUwucmVkSUFkZChMKTt2YXIgWT10aGlzLmN1cnZlLl9tdWxBKGopLEI9dGhpcy54LnJlZEFkZCh0'@; put 'aGlzLnkpLnJlZFNxcigpLnJlZElTdWIoaikucmVkSVN1YihQKSxXPVkucmVkQWRkKFApLFo9Vy5yZWRTdWIoTCksWD1ZLnJlZFN1YihQKSxRPUIucmVkTXVsKFopLHE9Vy5yZWRNdWwoWCksdGU9Qi5yZWRNdWwoWCksaWU9Wi5yZWRNdWwoVyk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQoUSxx'@; put 'LGllLHRlKX0sSC5wcm90b3R5cGUuX3Byb2pEYmw9ZnVuY3Rpb24oKXt2YXIgWSxCLFcsWixYLFEsaj10aGlzLngucmVkQWRkKHRoaXMueSkucmVkU3FyKCksUD10aGlzLngucmVkU3FyKCksTD10aGlzLnkucmVkU3FyKCk7aWYodGhpcy5jdXJ2ZS50d2lzdGVkKXt2YXIgcT0oWj10aGlzLmN1'@; put 'cnZlLl9tdWxBKFApKS5yZWRBZGQoTCk7dGhpcy56T25lPyhZPWoucmVkU3ViKFApLnJlZFN1YihMKS5yZWRNdWwocS5yZWRTdWIodGhpcy5jdXJ2ZS50d28pKSxCPXEucmVkTXVsKFoucmVkU3ViKEwpKSxXPXEucmVkU3FyKCkucmVkU3ViKHEpLnJlZFN1YihxKSk6KFg9dGhpcy56LnJlZFNx'@; put 'cigpLFE9cS5yZWRTdWIoWCkucmVkSVN1YihYKSxZPWoucmVkU3ViKFApLnJlZElTdWIoTCkucmVkTXVsKFEpLEI9cS5yZWRNdWwoWi5yZWRTdWIoTCkpLFc9cS5yZWRNdWwoUSkpfWVsc2UgWj1QLnJlZEFkZChMKSxYPXRoaXMuY3VydmUuX211bEModGhpcy56KS5yZWRTcXIoKSxRPVoucmVk'@; put 'U3ViKFgpLnJlZFN1YihYKSxZPXRoaXMuY3VydmUuX211bEMoai5yZWRJU3ViKFopKS5yZWRNdWwoUSksQj10aGlzLmN1cnZlLl9tdWxDKFopLnJlZE11bChQLnJlZElTdWIoTCkpLFc9Wi5yZWRNdWwoUSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQoWSxCLFcpfSxILnByb3RvdHlwZS5kYmw9'@; put 'ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0luZmluaXR5KCk/dGhpczp0aGlzLmN1cnZlLmV4dGVuZGVkP3RoaXMuX2V4dERibCgpOnRoaXMuX3Byb2pEYmwoKX0sSC5wcm90b3R5cGUuX2V4dEFkZD1mdW5jdGlvbihqKXt2YXIgUD10aGlzLnkucmVkU3ViKHRoaXMueCkucmVkTXVsKGoueS5y'@; put 'ZWRTdWIoai54KSksTD10aGlzLnkucmVkQWRkKHRoaXMueCkucmVkTXVsKGoueS5yZWRBZGQoai54KSksWT10aGlzLnQucmVkTXVsKHRoaXMuY3VydmUuZGQpLnJlZE11bChqLnQpLEI9dGhpcy56LnJlZE11bChqLnoucmVkQWRkKGoueikpLFc9TC5yZWRTdWIoUCksWj1CLnJlZFN1YihZKSxY'@; put 'PUIucmVkQWRkKFkpLFE9TC5yZWRBZGQoUCkscT1XLnJlZE11bChaKSx0ZT1YLnJlZE11bChRKSxpZT1XLnJlZE11bChRKSxzZT1aLnJlZE11bChYKTtyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChxLHRlLHNlLGllKX0sSC5wcm90b3R5cGUuX3Byb2pBZGQ9ZnVuY3Rpb24oail7dmFyIHRlLGll'@; put 'LFA9dGhpcy56LnJlZE11bChqLnopLEw9UC5yZWRTcXIoKSxZPXRoaXMueC5yZWRNdWwoai54KSxCPXRoaXMueS5yZWRNdWwoai55KSxXPXRoaXMuY3VydmUuZC5yZWRNdWwoWSkucmVkTXVsKEIpLFo9TC5yZWRTdWIoVyksWD1MLnJlZEFkZChXKSxRPXRoaXMueC5yZWRBZGQodGhpcy55KS5y'@; put 'ZWRNdWwoai54LnJlZEFkZChqLnkpKS5yZWRJU3ViKFkpLnJlZElTdWIoQikscT1QLnJlZE11bChaKS5yZWRNdWwoUSk7cmV0dXJuIHRoaXMuY3VydmUudHdpc3RlZD8odGU9UC5yZWRNdWwoWCkucmVkTXVsKEIucmVkU3ViKHRoaXMuY3VydmUuX211bEEoWSkpKSxpZT1aLnJlZE11bChYKSk6'@; put 'KHRlPVAucmVkTXVsKFgpLnJlZE11bChCLnJlZFN1YihZKSksaWU9dGhpcy5jdXJ2ZS5fbXVsQyhaKS5yZWRNdWwoWCkpLHRoaXMuY3VydmUucG9pbnQocSx0ZSxpZSl9LEgucHJvdG90eXBlLmFkZD1mdW5jdGlvbihqKXtyZXR1cm4gdGhpcy5pc0luZmluaXR5KCk/ajpqLmlzSW5maW5pdHko'@; put 'KT90aGlzOnRoaXMuY3VydmUuZXh0ZW5kZWQ/dGhpcy5fZXh0QWRkKGopOnRoaXMuX3Byb2pBZGQoail9LEgucHJvdG90eXBlLm11bD1mdW5jdGlvbihqKXtyZXR1cm4gdGhpcy5faGFzRG91YmxlcyhqKT90aGlzLmN1cnZlLl9maXhlZE5hZk11bCh0aGlzLGopOnRoaXMuY3VydmUuX3duYWZN'@; put 'dWwodGhpcyxqKX0sSC5wcm90b3R5cGUubXVsQWRkPWZ1bmN0aW9uKGosUCxMKXtyZXR1cm4gdGhpcy5jdXJ2ZS5fd25hZk11bEFkZCgxLFt0aGlzLFBdLFtqLExdLDIsITEpfSxILnByb3RvdHlwZS5qbXVsQWRkPWZ1bmN0aW9uKGosUCxMKXtyZXR1cm4gdGhpcy5jdXJ2ZS5fd25hZk11bEFk'@; put 'ZCgxLFt0aGlzLFBdLFtqLExdLDIsITApfSxILnByb3RvdHlwZS5ub3JtYWxpemU9ZnVuY3Rpb24oKXtpZih0aGlzLnpPbmUpcmV0dXJuIHRoaXM7dmFyIGo9dGhpcy56LnJlZEludm0oKTtyZXR1cm4gdGhpcy54PXRoaXMueC5yZWRNdWwoaiksdGhpcy55PXRoaXMueS5yZWRNdWwoaiksdGhp'@; put 'cy50JiYodGhpcy50PXRoaXMudC5yZWRNdWwoaikpLHRoaXMuej10aGlzLmN1cnZlLm9uZSx0aGlzLnpPbmU9ITAsdGhpc30sSC5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQodGhpcy54LnJlZE5lZygpLHRoaXMueSx0aGlzLnosdGhpcy50JiZ0aGlz'@; put 'LnQucmVkTmVnKCkpfSxILnByb3RvdHlwZS5nZXRYPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9ybWFsaXplKCksdGhpcy54LmZyb21SZWQoKX0sSC5wcm90b3R5cGUuZ2V0WT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5vcm1hbGl6ZSgpLHRoaXMueS5mcm9tUmVkKCl9LEgucHJvdG90eXBl'@; put 'LmVxPWZ1bmN0aW9uKGope3JldHVybiB0aGlzPT09anx8MD09PXRoaXMuZ2V0WCgpLmNtcChqLmdldFgoKSkmJjA9PT10aGlzLmdldFkoKS5jbXAoai5nZXRZKCkpfSxILnByb3RvdHlwZS5lcVhUb1A9ZnVuY3Rpb24oail7dmFyIFA9ai50b1JlZCh0aGlzLmN1cnZlLnJlZCkucmVkTXVsKHRo'@; put 'aXMueik7aWYoMD09PXRoaXMueC5jbXAoUCkpcmV0dXJuITA7Zm9yKHZhciBMPWouY2xvbmUoKSxZPXRoaXMuY3VydmUucmVkTi5yZWRNdWwodGhpcy56KTs7KXtpZihMLmlhZGQodGhpcy5jdXJ2ZS5uKSxMLmNtcCh0aGlzLmN1cnZlLnApPj0wKXJldHVybiExO2lmKFAucmVkSUFkZChZKSww'@; put 'PT09dGhpcy54LmNtcChQKSlyZXR1cm4hMH19LEgucHJvdG90eXBlLnRvUD1ILnByb3RvdHlwZS5ub3JtYWxpemUsSC5wcm90b3R5cGUubWl4ZWRBZGQ9SC5wcm90b3R5cGUuYWRkfSw4NzI5OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPUo7RC5iYXNlPWIoOTg4MjgpLEQuc2hvcnQ9'@; put 'Yig2ODA3NSksRC5tb250PWIoNjQ5NDcpLEQuZWR3YXJkcz1iKDU1NTM3KX0sNjQ5NDc6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig4ODcyMyksXz1iKDcxOTkzKSxwPWIoOTg4MjgpLE49YigzMTM2KTtmdW5jdGlvbiB3KEgpe3AuY2FsbCh0aGlzLCJtb250IixIKSx0aGlzLmE9'@; put 'bmV3IEQoSC5hLDE2KS50b1JlZCh0aGlzLnJlZCksdGhpcy5iPW5ldyBEKEguYiwxNikudG9SZWQodGhpcy5yZWQpLHRoaXMuaTQ9bmV3IEQoNCkudG9SZWQodGhpcy5yZWQpLnJlZEludm0oKSx0aGlzLnR3bz1uZXcgRCgyKS50b1JlZCh0aGlzLnJlZCksdGhpcy5hMjQ9dGhpcy5pNC5yZWRN'@; put 'dWwodGhpcy5hLnJlZEFkZCh0aGlzLnR3bykpfWZ1bmN0aW9uIEYoSCxSLGope3AuQmFzZVBvaW50LmNhbGwodGhpcyxILCJwcm9qZWN0aXZlIiksbnVsbD09PVImJm51bGw9PT1qPyh0aGlzLng9dGhpcy5jdXJ2ZS5vbmUsdGhpcy56PXRoaXMuY3VydmUuemVybyk6KHRoaXMueD1uZXcgRChS'@; put 'LDE2KSx0aGlzLno9bmV3IEQoaiwxNiksdGhpcy54LnJlZHx8KHRoaXMueD10aGlzLngudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnoucmVkfHwodGhpcy56PXRoaXMuei50b1JlZCh0aGlzLmN1cnZlLnJlZCkpKX1fKHcscCksY2UuZXhwb3J0cz13LHcucHJvdG90eXBlLnZhbGlkYXRl'@; put 'PWZ1bmN0aW9uKFIpe3ZhciBqPVIubm9ybWFsaXplKCkueCxQPWoucmVkU3FyKCksTD1QLnJlZE11bChqKS5yZWRBZGQoUC5yZWRNdWwodGhpcy5hKSkucmVkQWRkKGopO3JldHVybiAwPT09TC5yZWRTcXJ0KCkucmVkU3FyKCkuY21wKEwpfSxfKEYscC5CYXNlUG9pbnQpLHcucHJvdG90eXBl'@; put 'LmRlY29kZVBvaW50PWZ1bmN0aW9uKFIsail7cmV0dXJuIHRoaXMucG9pbnQoTi50b0FycmF5KFIsaiksMSl9LHcucHJvdG90eXBlLnBvaW50PWZ1bmN0aW9uKFIsail7cmV0dXJuIG5ldyBGKHRoaXMsUixqKX0sdy5wcm90b3R5cGUucG9pbnRGcm9tSlNPTj1mdW5jdGlvbihSKXtyZXR1cm4g'@; put 'Ri5mcm9tSlNPTih0aGlzLFIpfSxGLnByb3RvdHlwZS5wcmVjb21wdXRlPWZ1bmN0aW9uKCl7fSxGLnByb3RvdHlwZS5fZW5jb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0WCgpLnRvQXJyYXkoImJlIix0aGlzLmN1cnZlLnAuYnl0ZUxlbmd0aCgpKX0sRi5mcm9tSlNPTj1mdW5jdGlv'@; put 'bihSLGope3JldHVybiBuZXcgRihSLGpbMF0salsxXXx8Ui5vbmUpfSxGLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNJbmZpbml0eSgpPyI8RUMgUG9pbnQgSW5maW5pdHk+IjoiPEVDIFBvaW50IHg6ICIrdGhpcy54LmZyb21SZWQoKS50b1N0cmluZygxNiwy'@; put 'KSsiIHo6ICIrdGhpcy56LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiPiJ9LEYucHJvdG90eXBlLmlzSW5maW5pdHk9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuei5jbXBuKDApfSxGLnByb3RvdHlwZS5kYmw9ZnVuY3Rpb24oKXt2YXIgaj10aGlzLngucmVkQWRkKHRoaXMueikucmVk'@; put 'U3FyKCksTD10aGlzLngucmVkU3ViKHRoaXMueikucmVkU3FyKCksWT1qLnJlZFN1YihMKSxCPWoucmVkTXVsKEwpLFc9WS5yZWRNdWwoTC5yZWRBZGQodGhpcy5jdXJ2ZS5hMjQucmVkTXVsKFkpKSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQoQixXKX0sRi5wcm90b3R5cGUuYWRkPWZ1bmN0'@; put 'aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJOb3Qgc3VwcG9ydGVkIG9uIE1vbnRnb21lcnkgY3VydmUiKX0sRi5wcm90b3R5cGUuZGlmZkFkZD1mdW5jdGlvbihSLGope3ZhciBQPXRoaXMueC5yZWRBZGQodGhpcy56KSxMPXRoaXMueC5yZWRTdWIodGhpcy56KSxZPVIueC5yZWRBZGQoUi56KSxX'@; put 'PVIueC5yZWRTdWIoUi56KS5yZWRNdWwoUCksWj1ZLnJlZE11bChMKSxYPWouei5yZWRNdWwoVy5yZWRBZGQoWikucmVkU3FyKCkpLFE9ai54LnJlZE11bChXLnJlZElTdWIoWikucmVkU3FyKCkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KFgsUSl9LEYucHJvdG90eXBlLm11bD1mdW5jdGlv'@; put 'bihSKXtmb3IodmFyIGo9Ui5jbG9uZSgpLFA9dGhpcyxMPXRoaXMuY3VydmUucG9pbnQobnVsbCxudWxsKSxCPVtdOzAhPT1qLmNtcG4oMCk7ai5pdXNocm4oMSkpQi5wdXNoKGouYW5kbG4oMSkpO2Zvcih2YXIgVz1CLmxlbmd0aC0xO1c+PTA7Vy0tKTA9PT1CW1ddPyhQPVAuZGlmZkFkZChM'@; put 'LHRoaXMpLEw9TC5kYmwoKSk6KEw9UC5kaWZmQWRkKEwsdGhpcyksUD1QLmRibCgpKTtyZXR1cm4gTH0sRi5wcm90b3R5cGUubXVsQWRkPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJOb3Qgc3VwcG9ydGVkIG9uIE1vbnRnb21lcnkgY3VydmUiKX0sRi5wcm90b3R5cGUuanVtbEFkZD1m'@; put 'dW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IHN1cHBvcnRlZCBvbiBNb250Z29tZXJ5IGN1cnZlIil9LEYucHJvdG90eXBlLmVxPWZ1bmN0aW9uKFIpe3JldHVybiAwPT09dGhpcy5nZXRYKCkuY21wKFIuZ2V0WCgpKX0sRi5wcm90b3R5cGUubm9ybWFsaXplPWZ1bmN0aW9uKCl7cmV0'@; put 'dXJuIHRoaXMueD10aGlzLngucmVkTXVsKHRoaXMuei5yZWRJbnZtKCkpLHRoaXMuej10aGlzLmN1cnZlLm9uZSx0aGlzfSxGLnByb3RvdHlwZS5nZXRYPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9ybWFsaXplKCksdGhpcy54LmZyb21SZWQoKX19LDY4MDc1OihjZSxKLGIpPT57InVzZSBz'@; put 'dHJpY3QiO3ZhciBEPWIoMzEzNiksXz1iKDg4NzIzKSxwPWIoNzE5OTMpLE49Yig5ODgyOCksdz1ELmFzc2VydDtmdW5jdGlvbiBGKGope04uY2FsbCh0aGlzLCJzaG9ydCIsaiksdGhpcy5hPW5ldyBfKGouYSwxNikudG9SZWQodGhpcy5yZWQpLHRoaXMuYj1uZXcgXyhqLmIsMTYpLnRvUmVk'@; put 'KHRoaXMucmVkKSx0aGlzLnRpbnY9dGhpcy50d28ucmVkSW52bSgpLHRoaXMuemVyb0E9MD09PXRoaXMuYS5mcm9tUmVkKCkuY21wbigwKSx0aGlzLnRocmVlQT0wPT09dGhpcy5hLmZyb21SZWQoKS5zdWIodGhpcy5wKS5jbXBuKC0zKSx0aGlzLmVuZG89dGhpcy5fZ2V0RW5kb21vcnBoaXNt'@; put 'KGopLHRoaXMuX2VuZG9XbmFmVDE9bmV3IEFycmF5KDQpLHRoaXMuX2VuZG9XbmFmVDI9bmV3IEFycmF5KDQpfWZ1bmN0aW9uIEgoaixQLEwsWSl7Ti5CYXNlUG9pbnQuY2FsbCh0aGlzLGosImFmZmluZSIpLG51bGw9PT1QJiZudWxsPT09TD8odGhpcy54PW51bGwsdGhpcy55PW51bGwsdGhp'@; put 'cy5pbmY9ITApOih0aGlzLng9bmV3IF8oUCwxNiksdGhpcy55PW5ldyBfKEwsMTYpLFkmJih0aGlzLnguZm9yY2VSZWQodGhpcy5jdXJ2ZS5yZWQpLHRoaXMueS5mb3JjZVJlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMueC5yZWR8fCh0aGlzLng9dGhpcy54LnRvUmVkKHRoaXMuY3VydmUucmVk'@; put 'KSksdGhpcy55LnJlZHx8KHRoaXMueT10aGlzLnkudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLmluZj0hMSl9ZnVuY3Rpb24gUihqLFAsTCxZKXtOLkJhc2VQb2ludC5jYWxsKHRoaXMsaiwiamFjb2JpYW4iKSxudWxsPT09UCYmbnVsbD09PUwmJm51bGw9PT1ZPyh0aGlzLng9dGhpcy5j'@; put 'dXJ2ZS5vbmUsdGhpcy55PXRoaXMuY3VydmUub25lLHRoaXMuej1uZXcgXygwKSk6KHRoaXMueD1uZXcgXyhQLDE2KSx0aGlzLnk9bmV3IF8oTCwxNiksdGhpcy56PW5ldyBfKFksMTYpKSx0aGlzLngucmVkfHwodGhpcy54PXRoaXMueC50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMueS5y'@; put 'ZWR8fCh0aGlzLnk9dGhpcy55LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy56LnJlZHx8KHRoaXMuej10aGlzLnoudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnpPbmU9dGhpcy56PT09dGhpcy5jdXJ2ZS5vbmV9cChGLE4pLGNlLmV4cG9ydHM9RixGLnByb3RvdHlwZS5fZ2V0RW5k'@; put 'b21vcnBoaXNtPWZ1bmN0aW9uKFApe2lmKHRoaXMuemVyb0EmJnRoaXMuZyYmdGhpcy5uJiYxPT09dGhpcy5wLm1vZG4oMykpe3ZhciBMLFk7aWYoUC5iZXRhKUw9bmV3IF8oUC5iZXRhLDE2KS50b1JlZCh0aGlzLnJlZCk7ZWxzZXt2YXIgQj10aGlzLl9nZXRFbmRvUm9vdHModGhpcy5wKTtM'@; put 'PShMPUJbMF0uY21wKEJbMV0pPDA/QlswXTpCWzFdKS50b1JlZCh0aGlzLnJlZCl9aWYoUC5sYW1iZGEpWT1uZXcgXyhQLmxhbWJkYSwxNik7ZWxzZXt2YXIgVz10aGlzLl9nZXRFbmRvUm9vdHModGhpcy5uKTswPT09dGhpcy5nLm11bChXWzBdKS54LmNtcCh0aGlzLmcueC5yZWRNdWwoTCkp'@; put 'P1k9V1swXTp3KDA9PT10aGlzLmcubXVsKFk9V1sxXSkueC5jbXAodGhpcy5nLngucmVkTXVsKEwpKSl9cmV0dXJue2JldGE6TCxsYW1iZGE6WSxiYXNpczpQLmJhc2lzP1AuYmFzaXMubWFwKGZ1bmN0aW9uKFgpe3JldHVybnthOm5ldyBfKFguYSwxNiksYjpuZXcgXyhYLmIsMTYpfX0pOnRo'@; put 'aXMuX2dldEVuZG9CYXNpcyhZKX19fSxGLnByb3RvdHlwZS5fZ2V0RW5kb1Jvb3RzPWZ1bmN0aW9uKFApe3ZhciBMPVA9PT10aGlzLnA/dGhpcy5yZWQ6Xy5tb250KFApLFk9bmV3IF8oMikudG9SZWQoTCkucmVkSW52bSgpLEI9WS5yZWROZWcoKSxXPW5ldyBfKDMpLnRvUmVkKEwpLnJlZE5l'@; put 'ZygpLnJlZFNxcnQoKS5yZWRNdWwoWSk7cmV0dXJuW0IucmVkQWRkKFcpLmZyb21SZWQoKSxCLnJlZFN1YihXKS5mcm9tUmVkKCldfSxGLnByb3RvdHlwZS5fZ2V0RW5kb0Jhc2lzPWZ1bmN0aW9uKFApe2Zvcih2YXIgcSx0ZSxpZSxzZSxnZSxfZSxUZSx6ZSx6LEw9dGhpcy5uLnVzaHJuKE1h'@; put 'dGguZmxvb3IodGhpcy5uLmJpdExlbmd0aCgpLzIpKSxZPVAsQj10aGlzLm4uY2xvbmUoKSxXPW5ldyBfKDEpLFo9bmV3IF8oMCksWD1uZXcgXygwKSxRPW5ldyBfKDEpLFNlPTA7MCE9PVkuY21wbigwKTspe3ZhciBnPUIuZGl2KFkpO3plPUIuc3ViKGcubXVsKFkpKSx6PVguc3ViKGcubXVs'@; put 'KFcpKTt2YXIgeT1RLnN1YihnLm11bChaKSk7aWYoIWllJiZ6ZS5jbXAoTCk8MClxPVRlLm5lZygpLHRlPVcsaWU9emUubmVnKCksc2U9ejtlbHNlIGlmKGllJiYyPT0rK1NlKWJyZWFrO1RlPXplLEI9WSxZPXplLFg9VyxXPXosUT1aLFo9eX1nZT16ZS5uZWcoKSxfZT16O3ZhciB4PWllLnNx'@; put 'cigpLmFkZChzZS5zcXIoKSk7cmV0dXJuIGdlLnNxcigpLmFkZChfZS5zcXIoKSkuY21wKHgpPj0wJiYoZ2U9cSxfZT10ZSksaWUubmVnYXRpdmUmJihpZT1pZS5uZWcoKSxzZT1zZS5uZWcoKSksZ2UubmVnYXRpdmUmJihnZT1nZS5uZWcoKSxfZT1fZS5uZWcoKSksW3thOmllLGI6c2V9LHth'@; put 'OmdlLGI6X2V9XX0sRi5wcm90b3R5cGUuX2VuZG9TcGxpdD1mdW5jdGlvbihQKXt2YXIgTD10aGlzLmVuZG8uYmFzaXMsWT1MWzBdLEI9TFsxXSxXPUIuYi5tdWwoUCkuZGl2Um91bmQodGhpcy5uKSxaPVkuYi5uZWcoKS5tdWwoUCkuZGl2Um91bmQodGhpcy5uKSxYPVcubXVsKFkuYSksUT1a'@; put 'Lm11bChCLmEpLHE9Vy5tdWwoWS5iKSx0ZT1aLm11bChCLmIpO3JldHVybntrMTpQLnN1YihYKS5zdWIoUSksazI6cS5hZGQodGUpLm5lZygpfX0sRi5wcm90b3R5cGUucG9pbnRGcm9tWD1mdW5jdGlvbihQLEwpeyhQPW5ldyBfKFAsMTYpKS5yZWR8fChQPVAudG9SZWQodGhpcy5yZWQpKTt2'@; put 'YXIgWT1QLnJlZFNxcigpLnJlZE11bChQKS5yZWRJQWRkKFAucmVkTXVsKHRoaXMuYSkpLnJlZElBZGQodGhpcy5iKSxCPVkucmVkU3FydCgpO2lmKDAhPT1CLnJlZFNxcigpLnJlZFN1YihZKS5jbXAodGhpcy56ZXJvKSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgcG9pbnQiKTt2YXIgVz1C'@; put 'LmZyb21SZWQoKS5pc09kZCgpO3JldHVybihMJiYhV3x8IUwmJlcpJiYoQj1CLnJlZE5lZygpKSx0aGlzLnBvaW50KFAsQil9LEYucHJvdG90eXBlLnZhbGlkYXRlPWZ1bmN0aW9uKFApe2lmKFAuaW5mKXJldHVybiEwO3ZhciBMPVAueCxZPVAueSxCPXRoaXMuYS5yZWRNdWwoTCksVz1MLnJl'@; put 'ZFNxcigpLnJlZE11bChMKS5yZWRJQWRkKEIpLnJlZElBZGQodGhpcy5iKTtyZXR1cm4gMD09PVkucmVkU3FyKCkucmVkSVN1YihXKS5jbXBuKDApfSxGLnByb3RvdHlwZS5fZW5kb1duYWZNdWxBZGQ9ZnVuY3Rpb24oUCxMLFkpe2Zvcih2YXIgQj10aGlzLl9lbmRvV25hZlQxLFc9dGhpcy5f'@; put 'ZW5kb1duYWZUMixaPTA7WjxQLmxlbmd0aDtaKyspe3ZhciBYPXRoaXMuX2VuZG9TcGxpdChMW1pdKSxRPVBbWl0scT1RLl9nZXRCZXRhKCk7WC5rMS5uZWdhdGl2ZSYmKFguazEuaW5lZygpLFE9US5uZWcoITApKSxYLmsyLm5lZ2F0aXZlJiYoWC5rMi5pbmVnKCkscT1xLm5lZyghMCkpLEJb'@; put 'MipaXT1RLEJbMipaKzFdPXEsV1syKlpdPVguazEsV1syKlorMV09WC5rMn1mb3IodmFyIHRlPXRoaXMuX3duYWZNdWxBZGQoMSxCLFcsMipaLFkpLGllPTA7aWU8MipaO2llKyspQltpZV09bnVsbCxXW2llXT1udWxsO3JldHVybiB0ZX0scChILE4uQmFzZVBvaW50KSxGLnByb3RvdHlwZS5w'@; put 'b2ludD1mdW5jdGlvbihQLEwsWSl7cmV0dXJuIG5ldyBIKHRoaXMsUCxMLFkpfSxGLnByb3RvdHlwZS5wb2ludEZyb21KU09OPWZ1bmN0aW9uKFAsTCl7cmV0dXJuIEguZnJvbUpTT04odGhpcyxQLEwpfSxILnByb3RvdHlwZS5fZ2V0QmV0YT1mdW5jdGlvbigpe2lmKHRoaXMuY3VydmUuZW5k'@; put 'byl7dmFyIFA9dGhpcy5wcmVjb21wdXRlZDtpZihQJiZQLmJldGEpcmV0dXJuIFAuYmV0YTt2YXIgTD10aGlzLmN1cnZlLnBvaW50KHRoaXMueC5yZWRNdWwodGhpcy5jdXJ2ZS5lbmRvLmJldGEpLHRoaXMueSk7aWYoUCl7dmFyIFk9dGhpcy5jdXJ2ZSxCPWZ1bmN0aW9uKFcpe3JldHVybiBZ'@; put 'LnBvaW50KFcueC5yZWRNdWwoWS5lbmRvLmJldGEpLFcueSl9O1AuYmV0YT1MLEwucHJlY29tcHV0ZWQ9e2JldGE6bnVsbCxuYWY6UC5uYWYmJnt3bmQ6UC5uYWYud25kLHBvaW50czpQLm5hZi5wb2ludHMubWFwKEIpfSxkb3VibGVzOlAuZG91YmxlcyYme3N0ZXA6UC5kb3VibGVzLnN0ZXAs'@; put 'cG9pbnRzOlAuZG91Ymxlcy5wb2ludHMubWFwKEIpfX19cmV0dXJuIEx9fSxILnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcmVjb21wdXRlZD9bdGhpcy54LHRoaXMueSx0aGlzLnByZWNvbXB1dGVkJiZ7ZG91Ymxlczp0aGlzLnByZWNvbXB1dGVkLmRvdWJsZXMm'@; put 'JntzdGVwOnRoaXMucHJlY29tcHV0ZWQuZG91Ymxlcy5zdGVwLHBvaW50czp0aGlzLnByZWNvbXB1dGVkLmRvdWJsZXMucG9pbnRzLnNsaWNlKDEpfSxuYWY6dGhpcy5wcmVjb21wdXRlZC5uYWYmJnt3bmQ6dGhpcy5wcmVjb21wdXRlZC5uYWYud25kLHBvaW50czp0aGlzLnByZWNvbXB1dGVk'@; put 'Lm5hZi5wb2ludHMuc2xpY2UoMSl9fV06W3RoaXMueCx0aGlzLnldfSxILmZyb21KU09OPWZ1bmN0aW9uKFAsTCxZKXsic3RyaW5nIj09dHlwZW9mIEwmJihMPUpTT04ucGFyc2UoTCkpO3ZhciBCPVAucG9pbnQoTFswXSxMWzFdLFkpO2lmKCFMWzJdKXJldHVybiBCO2Z1bmN0aW9uIFcoWCl7'@; put 'cmV0dXJuIFAucG9pbnQoWFswXSxYWzFdLFkpfXZhciBaPUxbMl07cmV0dXJuIEIucHJlY29tcHV0ZWQ9e2JldGE6bnVsbCxkb3VibGVzOlouZG91YmxlcyYme3N0ZXA6Wi5kb3VibGVzLnN0ZXAscG9pbnRzOltCXS5jb25jYXQoWi5kb3VibGVzLnBvaW50cy5tYXAoVykpfSxuYWY6Wi5uYWYm'@; put 'Jnt3bmQ6Wi5uYWYud25kLHBvaW50czpbQl0uY29uY2F0KFoubmFmLnBvaW50cy5tYXAoVykpfX0sQn0sSC5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT8iPEVDIFBvaW50IEluZmluaXR5PiI6IjxFQyBQb2ludCB4OiAiK3RoaXMueC5mcm9t'@; put 'UmVkKCkudG9TdHJpbmcoMTYsMikrIiB5OiAiK3RoaXMueS5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIj4ifSxILnByb3RvdHlwZS5pc0luZmluaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5mfSxILnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oUCl7aWYodGhpcy5pbmYpcmV0dXJuIFA7'@; put 'aWYoUC5pbmYpcmV0dXJuIHRoaXM7aWYodGhpcy5lcShQKSlyZXR1cm4gdGhpcy5kYmwoKTtpZih0aGlzLm5lZygpLmVxKFApKXJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCk7aWYoMD09PXRoaXMueC5jbXAoUC54KSlyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChudWxsLG51bGwp'@; put 'O3ZhciBMPXRoaXMueS5yZWRTdWIoUC55KTswIT09TC5jbXBuKDApJiYoTD1MLnJlZE11bCh0aGlzLngucmVkU3ViKFAueCkucmVkSW52bSgpKSk7dmFyIFk9TC5yZWRTcXIoKS5yZWRJU3ViKHRoaXMueCkucmVkSVN1YihQLngpLEI9TC5yZWRNdWwodGhpcy54LnJlZFN1YihZKSkucmVkSVN1'@; put 'Yih0aGlzLnkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KFksQil9LEgucHJvdG90eXBlLmRibD1mdW5jdGlvbigpe2lmKHRoaXMuaW5mKXJldHVybiB0aGlzO3ZhciBQPXRoaXMueS5yZWRBZGQodGhpcy55KTtpZigwPT09UC5jbXBuKDApKXJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGws'@; put 'bnVsbCk7dmFyIEw9dGhpcy5jdXJ2ZS5hLFk9dGhpcy54LnJlZFNxcigpLEI9UC5yZWRJbnZtKCksVz1ZLnJlZEFkZChZKS5yZWRJQWRkKFkpLnJlZElBZGQoTCkucmVkTXVsKEIpLFo9Vy5yZWRTcXIoKS5yZWRJU3ViKHRoaXMueC5yZWRBZGQodGhpcy54KSksWD1XLnJlZE11bCh0aGlzLngu'@; put 'cmVkU3ViKFopKS5yZWRJU3ViKHRoaXMueSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQoWixYKX0sSC5wcm90b3R5cGUuZ2V0WD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnguZnJvbVJlZCgpfSxILnByb3RvdHlwZS5nZXRZPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueS5mcm9tUmVkKCl9LEgu'@; put 'cHJvdG90eXBlLm11bD1mdW5jdGlvbihQKXtyZXR1cm4gUD1uZXcgXyhQLDE2KSx0aGlzLmlzSW5maW5pdHkoKT90aGlzOnRoaXMuX2hhc0RvdWJsZXMoUCk/dGhpcy5jdXJ2ZS5fZml4ZWROYWZNdWwodGhpcyxQKTp0aGlzLmN1cnZlLmVuZG8/dGhpcy5jdXJ2ZS5fZW5kb1duYWZNdWxBZGQo'@; put 'W3RoaXNdLFtQXSk6dGhpcy5jdXJ2ZS5fd25hZk11bCh0aGlzLFApfSxILnByb3RvdHlwZS5tdWxBZGQ9ZnVuY3Rpb24oUCxMLFkpe3ZhciBCPVt0aGlzLExdLFc9W1AsWV07cmV0dXJuIHRoaXMuY3VydmUuZW5kbz90aGlzLmN1cnZlLl9lbmRvV25hZk11bEFkZChCLFcpOnRoaXMuY3VydmUu'@; put 'X3duYWZNdWxBZGQoMSxCLFcsMil9LEgucHJvdG90eXBlLmptdWxBZGQ9ZnVuY3Rpb24oUCxMLFkpe3ZhciBCPVt0aGlzLExdLFc9W1AsWV07cmV0dXJuIHRoaXMuY3VydmUuZW5kbz90aGlzLmN1cnZlLl9lbmRvV25hZk11bEFkZChCLFcsITApOnRoaXMuY3VydmUuX3duYWZNdWxBZGQoMSxC'@; put 'LFcsMiwhMCl9LEgucHJvdG90eXBlLmVxPWZ1bmN0aW9uKFApe3JldHVybiB0aGlzPT09UHx8dGhpcy5pbmY9PT1QLmluZiYmKHRoaXMuaW5mfHwwPT09dGhpcy54LmNtcChQLngpJiYwPT09dGhpcy55LmNtcChQLnkpKX0sSC5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKFApe2lmKHRoaXMuaW5m'@; put 'KXJldHVybiB0aGlzO3ZhciBMPXRoaXMuY3VydmUucG9pbnQodGhpcy54LHRoaXMueS5yZWROZWcoKSk7aWYoUCYmdGhpcy5wcmVjb21wdXRlZCl7dmFyIFk9dGhpcy5wcmVjb21wdXRlZCxCPWZ1bmN0aW9uKFcpe3JldHVybiBXLm5lZygpfTtMLnByZWNvbXB1dGVkPXtuYWY6WS5uYWYmJnt3'@; put 'bmQ6WS5uYWYud25kLHBvaW50czpZLm5hZi5wb2ludHMubWFwKEIpfSxkb3VibGVzOlkuZG91YmxlcyYme3N0ZXA6WS5kb3VibGVzLnN0ZXAscG9pbnRzOlkuZG91Ymxlcy5wb2ludHMubWFwKEIpfX19cmV0dXJuIEx9LEgucHJvdG90eXBlLnRvSj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlu'@; put 'Zj90aGlzLmN1cnZlLmpwb2ludChudWxsLG51bGwsbnVsbCk6dGhpcy5jdXJ2ZS5qcG9pbnQodGhpcy54LHRoaXMueSx0aGlzLmN1cnZlLm9uZSl9LHAoUixOLkJhc2VQb2ludCksRi5wcm90b3R5cGUuanBvaW50PWZ1bmN0aW9uKFAsTCxZKXtyZXR1cm4gbmV3IFIodGhpcyxQLEwsWSl9LFIu'@; put 'cHJvdG90eXBlLnRvUD1mdW5jdGlvbigpe2lmKHRoaXMuaXNJbmZpbml0eSgpKXJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCk7dmFyIFA9dGhpcy56LnJlZEludm0oKSxMPVAucmVkU3FyKCksWT10aGlzLngucmVkTXVsKEwpLEI9dGhpcy55LnJlZE11bChMKS5yZWRNdWwoUCk7'@; put 'cmV0dXJuIHRoaXMuY3VydmUucG9pbnQoWSxCKX0sUi5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KHRoaXMueCx0aGlzLnkucmVkTmVnKCksdGhpcy56KX0sUi5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKFApe2lmKHRoaXMuaXNJbmZpbml0eSgpKXJl'@; put 'dHVybiBQO2lmKFAuaXNJbmZpbml0eSgpKXJldHVybiB0aGlzO3ZhciBMPVAuei5yZWRTcXIoKSxZPXRoaXMuei5yZWRTcXIoKSxCPXRoaXMueC5yZWRNdWwoTCksVz1QLngucmVkTXVsKFkpLFo9dGhpcy55LnJlZE11bChMLnJlZE11bChQLnopKSxYPVAueS5yZWRNdWwoWS5yZWRNdWwodGhp'@; put 'cy56KSksUT1CLnJlZFN1YihXKSxxPVoucmVkU3ViKFgpO2lmKDA9PT1RLmNtcG4oMCkpcmV0dXJuIDAhPT1xLmNtcG4oMCk/dGhpcy5jdXJ2ZS5qcG9pbnQobnVsbCxudWxsLG51bGwpOnRoaXMuZGJsKCk7dmFyIHRlPVEucmVkU3FyKCksaWU9dGUucmVkTXVsKFEpLHNlPUIucmVkTXVsKHRl'@; put 'KSxnZT1xLnJlZFNxcigpLnJlZElBZGQoaWUpLnJlZElTdWIoc2UpLnJlZElTdWIoc2UpLF9lPXEucmVkTXVsKHNlLnJlZElTdWIoZ2UpKS5yZWRJU3ViKFoucmVkTXVsKGllKSksVGU9dGhpcy56LnJlZE11bChQLnopLnJlZE11bChRKTtyZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoZ2UsX2Us'@; put 'VGUpfSxSLnByb3RvdHlwZS5taXhlZEFkZD1mdW5jdGlvbihQKXtpZih0aGlzLmlzSW5maW5pdHkoKSlyZXR1cm4gUC50b0ooKTtpZihQLmlzSW5maW5pdHkoKSlyZXR1cm4gdGhpczt2YXIgTD10aGlzLnoucmVkU3FyKCksWT10aGlzLngsQj1QLngucmVkTXVsKEwpLFc9dGhpcy55LFo9UC55'@; put 'LnJlZE11bChMKS5yZWRNdWwodGhpcy56KSxYPVkucmVkU3ViKEIpLFE9Vy5yZWRTdWIoWik7aWYoMD09PVguY21wbigwKSlyZXR1cm4gMCE9PVEuY21wbigwKT90aGlzLmN1cnZlLmpwb2ludChudWxsLG51bGwsbnVsbCk6dGhpcy5kYmwoKTt2YXIgcT1YLnJlZFNxcigpLHRlPXEucmVkTXVs'@; put 'KFgpLGllPVkucmVkTXVsKHEpLHNlPVEucmVkU3FyKCkucmVkSUFkZCh0ZSkucmVkSVN1YihpZSkucmVkSVN1YihpZSksZ2U9US5yZWRNdWwoaWUucmVkSVN1YihzZSkpLnJlZElTdWIoVy5yZWRNdWwodGUpKSxfZT10aGlzLnoucmVkTXVsKFgpO3JldHVybiB0aGlzLmN1cnZlLmpwb2ludChz'@; put 'ZSxnZSxfZSl9LFIucHJvdG90eXBlLmRibHA9ZnVuY3Rpb24oUCl7aWYoMD09PVApcmV0dXJuIHRoaXM7aWYodGhpcy5pc0luZmluaXR5KCkpcmV0dXJuIHRoaXM7aWYoIVApcmV0dXJuIHRoaXMuZGJsKCk7dmFyIEw7aWYodGhpcy5jdXJ2ZS56ZXJvQXx8dGhpcy5jdXJ2ZS50aHJlZUEpe3Zh'@; put 'ciBZPXRoaXM7Zm9yKEw9MDtMPFA7TCsrKVk9WS5kYmwoKTtyZXR1cm4gWX12YXIgQj10aGlzLmN1cnZlLmEsVz10aGlzLmN1cnZlLnRpbnYsWj10aGlzLngsWD10aGlzLnksUT10aGlzLnoscT1RLnJlZFNxcigpLnJlZFNxcigpLHRlPVgucmVkQWRkKFgpO2ZvcihMPTA7TDxQO0wrKyl7dmFy'@; put 'IGllPVoucmVkU3FyKCksc2U9dGUucmVkU3FyKCksZ2U9c2UucmVkU3FyKCksX2U9aWUucmVkQWRkKGllKS5yZWRJQWRkKGllKS5yZWRJQWRkKEIucmVkTXVsKHEpKSxUZT1aLnJlZE11bChzZSksU2U9X2UucmVkU3FyKCkucmVkSVN1YihUZS5yZWRBZGQoVGUpKSx6ZT1UZS5yZWRJU3ViKFNl'@; put 'KSx6PV9lLnJlZE11bCh6ZSk7ej16LnJlZElBZGQoeikucmVkSVN1YihnZSk7dmFyIGc9dGUucmVkTXVsKFEpO0wrMTxQJiYocT1xLnJlZE11bChnZSkpLFo9U2UsUT1nLHRlPXp9cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KFosdGUucmVkTXVsKFcpLFEpfSxSLnByb3RvdHlwZS5kYmw9ZnVu'@; put 'Y3Rpb24oKXtyZXR1cm4gdGhpcy5pc0luZmluaXR5KCk/dGhpczp0aGlzLmN1cnZlLnplcm9BP3RoaXMuX3plcm9EYmwoKTp0aGlzLmN1cnZlLnRocmVlQT90aGlzLl90aHJlZURibCgpOnRoaXMuX2RibCgpfSxSLnByb3RvdHlwZS5femVyb0RibD1mdW5jdGlvbigpe3ZhciBQLEwsWTtpZih0'@; put 'aGlzLnpPbmUpe3ZhciBCPXRoaXMueC5yZWRTcXIoKSxXPXRoaXMueS5yZWRTcXIoKSxaPVcucmVkU3FyKCksWD10aGlzLngucmVkQWRkKFcpLnJlZFNxcigpLnJlZElTdWIoQikucmVkSVN1YihaKTtYPVgucmVkSUFkZChYKTt2YXIgUT1CLnJlZEFkZChCKS5yZWRJQWRkKEIpLHE9US5yZWRT'@; put 'cXIoKS5yZWRJU3ViKFgpLnJlZElTdWIoWCksdGU9Wi5yZWRJQWRkKFopO3RlPSh0ZT10ZS5yZWRJQWRkKHRlKSkucmVkSUFkZCh0ZSksUD1xLEw9US5yZWRNdWwoWC5yZWRJU3ViKHEpKS5yZWRJU3ViKHRlKSxZPXRoaXMueS5yZWRBZGQodGhpcy55KX1lbHNle3ZhciBpZT10aGlzLngucmVk'@; put 'U3FyKCksc2U9dGhpcy55LnJlZFNxcigpLGdlPXNlLnJlZFNxcigpLF9lPXRoaXMueC5yZWRBZGQoc2UpLnJlZFNxcigpLnJlZElTdWIoaWUpLnJlZElTdWIoZ2UpO19lPV9lLnJlZElBZGQoX2UpO3ZhciBUZT1pZS5yZWRBZGQoaWUpLnJlZElBZGQoaWUpLFNlPVRlLnJlZFNxcigpLHplPWdl'@; put 'LnJlZElBZGQoZ2UpO3plPSh6ZT16ZS5yZWRJQWRkKHplKSkucmVkSUFkZCh6ZSksUD1TZS5yZWRJU3ViKF9lKS5yZWRJU3ViKF9lKSxMPVRlLnJlZE11bChfZS5yZWRJU3ViKFApKS5yZWRJU3ViKHplKSxZPShZPXRoaXMueS5yZWRNdWwodGhpcy56KSkucmVkSUFkZChZKX1yZXR1cm4gdGhp'@; put 'cy5jdXJ2ZS5qcG9pbnQoUCxMLFkpfSxSLnByb3RvdHlwZS5fdGhyZWVEYmw9ZnVuY3Rpb24oKXt2YXIgUCxMLFk7aWYodGhpcy56T25lKXt2YXIgQj10aGlzLngucmVkU3FyKCksVz10aGlzLnkucmVkU3FyKCksWj1XLnJlZFNxcigpLFg9dGhpcy54LnJlZEFkZChXKS5yZWRTcXIoKS5yZWRJ'@; put 'U3ViKEIpLnJlZElTdWIoWik7WD1YLnJlZElBZGQoWCk7dmFyIFE9Qi5yZWRBZGQoQikucmVkSUFkZChCKS5yZWRJQWRkKHRoaXMuY3VydmUuYSkscT1RLnJlZFNxcigpLnJlZElTdWIoWCkucmVkSVN1YihYKTtQPXE7dmFyIHRlPVoucmVkSUFkZChaKTt0ZT0odGU9dGUucmVkSUFkZCh0ZSkp'@; put 'LnJlZElBZGQodGUpLEw9US5yZWRNdWwoWC5yZWRJU3ViKHEpKS5yZWRJU3ViKHRlKSxZPXRoaXMueS5yZWRBZGQodGhpcy55KX1lbHNle3ZhciBpZT10aGlzLnoucmVkU3FyKCksc2U9dGhpcy55LnJlZFNxcigpLGdlPXRoaXMueC5yZWRNdWwoc2UpLF9lPXRoaXMueC5yZWRTdWIoaWUpLnJl'@; put 'ZE11bCh0aGlzLngucmVkQWRkKGllKSk7X2U9X2UucmVkQWRkKF9lKS5yZWRJQWRkKF9lKTt2YXIgVGU9Z2UucmVkSUFkZChnZSksU2U9KFRlPVRlLnJlZElBZGQoVGUpKS5yZWRBZGQoVGUpO1A9X2UucmVkU3FyKCkucmVkSVN1YihTZSksWT10aGlzLnkucmVkQWRkKHRoaXMueikucmVkU3Fy'@; put 'KCkucmVkSVN1YihzZSkucmVkSVN1YihpZSk7dmFyIHplPXNlLnJlZFNxcigpO3plPSh6ZT0oemU9emUucmVkSUFkZCh6ZSkpLnJlZElBZGQoemUpKS5yZWRJQWRkKHplKSxMPV9lLnJlZE11bChUZS5yZWRJU3ViKFApKS5yZWRJU3ViKHplKX1yZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoUCxM'@; put 'LFkpfSxSLnByb3RvdHlwZS5fZGJsPWZ1bmN0aW9uKCl7dmFyIFA9dGhpcy5jdXJ2ZS5hLEw9dGhpcy54LFk9dGhpcy55LEI9dGhpcy56LFc9Qi5yZWRTcXIoKS5yZWRTcXIoKSxaPUwucmVkU3FyKCksWD1ZLnJlZFNxcigpLFE9Wi5yZWRBZGQoWikucmVkSUFkZChaKS5yZWRJQWRkKFAucmVk'@; put 'TXVsKFcpKSxxPUwucmVkQWRkKEwpLHRlPShxPXEucmVkSUFkZChxKSkucmVkTXVsKFgpLGllPVEucmVkU3FyKCkucmVkSVN1Yih0ZS5yZWRBZGQodGUpKSxzZT10ZS5yZWRJU3ViKGllKSxnZT1YLnJlZFNxcigpO2dlPShnZT0oZ2U9Z2UucmVkSUFkZChnZSkpLnJlZElBZGQoZ2UpKS5yZWRJ'@; put 'QWRkKGdlKTt2YXIgX2U9US5yZWRNdWwoc2UpLnJlZElTdWIoZ2UpLFRlPVkucmVkQWRkKFkpLnJlZE11bChCKTtyZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoaWUsX2UsVGUpfSxSLnByb3RvdHlwZS50cnBsPWZ1bmN0aW9uKCl7aWYoIXRoaXMuY3VydmUuemVyb0EpcmV0dXJuIHRoaXMuZGJs'@; put 'KCkuYWRkKHRoaXMpO3ZhciBQPXRoaXMueC5yZWRTcXIoKSxMPXRoaXMueS5yZWRTcXIoKSxZPXRoaXMuei5yZWRTcXIoKSxCPUwucmVkU3FyKCksVz1QLnJlZEFkZChQKS5yZWRJQWRkKFApLFo9Vy5yZWRTcXIoKSxYPXRoaXMueC5yZWRBZGQoTCkucmVkU3FyKCkucmVkSVN1YihQKS5yZWRJ'@; put 'U3ViKEIpLFE9KFg9KFg9KFg9WC5yZWRJQWRkKFgpKS5yZWRBZGQoWCkucmVkSUFkZChYKSkucmVkSVN1YihaKSkucmVkU3FyKCkscT1CLnJlZElBZGQoQik7cT0ocT0ocT1xLnJlZElBZGQocSkpLnJlZElBZGQocSkpLnJlZElBZGQocSk7dmFyIHRlPVcucmVkSUFkZChYKS5yZWRTcXIoKS5y'@; put 'ZWRJU3ViKFopLnJlZElTdWIoUSkucmVkSVN1YihxKSxpZT1MLnJlZE11bCh0ZSk7aWU9KGllPWllLnJlZElBZGQoaWUpKS5yZWRJQWRkKGllKTt2YXIgc2U9dGhpcy54LnJlZE11bChRKS5yZWRJU3ViKGllKTtzZT0oc2U9c2UucmVkSUFkZChzZSkpLnJlZElBZGQoc2UpO3ZhciBnZT10aGlz'@; put 'LnkucmVkTXVsKHRlLnJlZE11bChxLnJlZElTdWIodGUpKS5yZWRJU3ViKFgucmVkTXVsKFEpKSk7Z2U9KGdlPShnZT1nZS5yZWRJQWRkKGdlKSkucmVkSUFkZChnZSkpLnJlZElBZGQoZ2UpO3ZhciBfZT10aGlzLnoucmVkQWRkKFgpLnJlZFNxcigpLnJlZElTdWIoWSkucmVkSVN1YihRKTty'@; put 'ZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoc2UsZ2UsX2UpfSxSLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oUCxMKXtyZXR1cm4gUD1uZXcgXyhQLEwpLHRoaXMuY3VydmUuX3duYWZNdWwodGhpcyxQKX0sUi5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oUCl7aWYoImFmZmluZSI9PT1QLnR5cGUpcmV0'@; put 'dXJuIHRoaXMuZXEoUC50b0ooKSk7aWYodGhpcz09PVApcmV0dXJuITA7dmFyIEw9dGhpcy56LnJlZFNxcigpLFk9UC56LnJlZFNxcigpO2lmKDAhPT10aGlzLngucmVkTXVsKFkpLnJlZElTdWIoUC54LnJlZE11bChMKSkuY21wbigwKSlyZXR1cm4hMTt2YXIgQj1MLnJlZE11bCh0aGlzLnop'@; put 'LFc9WS5yZWRNdWwoUC56KTtyZXR1cm4gMD09PXRoaXMueS5yZWRNdWwoVykucmVkSVN1YihQLnkucmVkTXVsKEIpKS5jbXBuKDApfSxSLnByb3RvdHlwZS5lcVhUb1A9ZnVuY3Rpb24oUCl7dmFyIEw9dGhpcy56LnJlZFNxcigpLFk9UC50b1JlZCh0aGlzLmN1cnZlLnJlZCkucmVkTXVsKEwp'@; put 'O2lmKDA9PT10aGlzLnguY21wKFkpKXJldHVybiEwO2Zvcih2YXIgQj1QLmNsb25lKCksVz10aGlzLmN1cnZlLnJlZE4ucmVkTXVsKEwpOzspe2lmKEIuaWFkZCh0aGlzLmN1cnZlLm4pLEIuY21wKHRoaXMuY3VydmUucCk+PTApcmV0dXJuITE7aWYoWS5yZWRJQWRkKFcpLDA9PT10aGlzLngu'@; put 'Y21wKFkpKXJldHVybiEwfX0sUi5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT8iPEVDIEpQb2ludCBJbmZpbml0eT4iOiI8RUMgSlBvaW50IHg6ICIrdGhpcy54LnRvU3RyaW5nKDE2LDIpKyIgeTogIit0aGlzLnkudG9TdHJpbmcoMTYsMikr'@; put 'IiB6OiAiK3RoaXMuei50b1N0cmluZygxNiwyKSsiPiJ9LFIucHJvdG90eXBlLmlzSW5maW5pdHk9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuei5jbXBuKDApfX0sMjM0MDE6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIFIsRD1KLF89Yig1MjUyOSkscD1iKDg3MjkpLHc9YigzMTM2'@; put 'KS5hc3NlcnQ7ZnVuY3Rpb24gRihqKXt0aGlzLmN1cnZlPSJzaG9ydCI9PT1qLnR5cGU/bmV3IHAuc2hvcnQoaik6ImVkd2FyZHMiPT09ai50eXBlP25ldyBwLmVkd2FyZHMoaik6bmV3IHAubW9udChqKSx0aGlzLmc9dGhpcy5jdXJ2ZS5nLHRoaXMubj10aGlzLmN1cnZlLm4sdGhpcy5oYXNo'@; put 'PWouaGFzaCx3KHRoaXMuZy52YWxpZGF0ZSgpLCJJbnZhbGlkIGN1cnZlIiksdyh0aGlzLmcubXVsKHRoaXMubikuaXNJbmZpbml0eSgpLCJJbnZhbGlkIGN1cnZlLCBHKk4gIT0gTyIpfWZ1bmN0aW9uIEgoaixQKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoRCxqLHtjb25maWd1cmFibGU6ITAs'@; put 'ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXt2YXIgTD1uZXcgRihQKTtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KEQsaix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6TH0pLEx9fSl9RC5QcmVzZXRDdXJ2ZT1GLEgoInAxOTIiLHt0eXBlOiJzaG9ydCIscHJp'@; put 'bWU6InAxOTIiLHA6ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIixhOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmYyIsYjoiNjQyMTA1MTkgZTU5YzgwZTcgMGZhN2U5YWIgNzIyNDMwNDkg'@; put 'ZmViOGRlZWMgYzE0NmI5YjEiLG46ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDk5ZGVmODM2IDE0NmJjOWIxIGI0ZDIyODMxIixoYXNoOl8uc2hhMjU2LGdSZWQ6ITEsZzpbIjE4OGRhODBlIGIwMzA5MGY2IDdjYmYyMGViIDQzYTE4ODAwIGY0ZmYwYWZkIDgyZmYxMDEyIiwiMDcxOTJi'@; put 'OTUgZmZjOGRhNzggNjMxMDExZWQgNmIyNGNkZDUgNzNmOTc3YTEgMWU3OTQ4MTEiXX0pLEgoInAyMjQiLHt0eXBlOiJzaG9ydCIscHJpbWU6InAyMjQiLHA6ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAxIixhOiJmZmZmZmZm'@; put 'ZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSIsYjoiYjQwNTBhODUgMGMwNGIzYWIgZjU0MTMyNTYgNTA0NGIwYjcgZDdiZmQ4YmEgMjcwYjM5NDMgMjM1NWZmYjQiLG46ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmYxNmEyIGUw'@; put 'YjhmMDNlIDEzZGQyOTQ1IDVjNWMyYTNkIixoYXNoOl8uc2hhMjU2LGdSZWQ6ITEsZzpbImI3MGUwY2JkIDZiYjRiZjdmIDMyMTM5MGI5IDRhMDNjMWQzIDU2YzIxMTIyIDM0MzI4MGQ2IDExNWMxZDIxIiwiYmQzNzYzODggYjVmNzIzZmIgNGMyMmRmZTYgY2Q0Mzc1YTAgNWEwNzQ3NjQgNDRk'@; put 'NTgxOTkgODUwMDdlMzQiXX0pLEgoInAyNTYiLHt0eXBlOiJzaG9ydCIscHJpbWU6bnVsbCxwOiJmZmZmZmZmZiAwMDAwMDAwMSAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiIsYToiZmZmZmZmZmYgMDAwMDAwMDEgMDAwMDAwMDAgMDAwMDAw'@; put 'MDAgMDAwMDAwMDAgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmMiLGI6IjVhYzYzNWQ4IGFhM2E5M2U3IGIzZWJiZDU1IDc2OTg4NmJjIDY1MWQwNmIwIGNjNTNiMGY2IDNiY2UzYzNlIDI3ZDI2MDRiIixuOiJmZmZmZmZmZiAwMDAwMDAwMCBmZmZmZmZmZiBmZmZmZmZmZiBiY2U2ZmFhZCBh'@; put 'NzE3OWU4NCBmM2I5Y2FjMiBmYzYzMjU1MSIsaGFzaDpfLnNoYTI1NixnUmVkOiExLGc6WyI2YjE3ZDFmMiBlMTJjNDI0NyBmOGJjZTZlNSA2M2E0NDBmMiA3NzAzN2Q4MSAyZGViMzNhMCBmNGExMzk0NSBkODk4YzI5NiIsIjRmZTM0MmUyIGZlMWE3ZjliIDhlZTdlYjRhIDdjMGY5ZTE2IDJi'@; put 'Y2UzMzU3IDZiMzE1ZWNlIGNiYjY0MDY4IDM3YmY1MWY1Il19KSxIKCJwMzg0Iix7dHlwZToic2hvcnQiLHByaW1lOm51bGwscDoiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgMDAwMDAwMDAg'@; put 'MDAwMDAwMDAgZmZmZmZmZmYiLGE6ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIGZmZmZmZmZjIixiOiJiMzMxMmZhNyBlMjNlZTdlNCA5ODhlMDU2YiBlM2Y4'@; put 'MmQxOSAxODFkOWM2ZSBmZTgxNDExMiAwMzE0MDg4ZiA1MDEzODc1YSBjNjU2Mzk4ZCA4YTJlZDE5ZCAyYTg1YzhlZCBkM2VjMmFlZiIsbjoiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgYzc2MzRkODEgZjQzNzJkZGYgNTgxYTBkYjIgNDhi'@; put 'MGE3N2EgZWNlYzE5NmEgY2NjNTI5NzMiLGhhc2g6Xy5zaGEzODQsZ1JlZDohMSxnOlsiYWE4N2NhMjIgYmU4YjA1MzcgOGViMWM3MWUgZjMyMGFkNzQgNmUxZDNiNjIgOGJhNzliOTggNTlmNzQxZTAgODI1NDJhMzggNTUwMmYyNWQgYmY1NTI5NmMgM2E1NDVlMzggNzI3NjBhYjciLCIzNjE3'@; put 'ZGU0YSA5NjI2MmM2ZiA1ZDllOThiZiA5MjkyZGMyOSBmOGY0MWRiZCAyODlhMTQ3YyBlOWRhMzExMyBiNWYwYjhjMCAwYTYwYjFjZSAxZDdlODE5ZCA3YTQzMWQ3YyA5MGVhMGU1ZiJdfSksSCgicDUyMSIse3R5cGU6InNob3J0IixwcmltZTpudWxsLHA6IjAwMDAwMWZmIGZmZmZmZmZmIGZm'@; put 'ZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIixhOiIwMDAwMDFmZiBmZmZmZmZmZiBmZmZmZmZmZiBm'@; put 'ZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmYyIsYjoiMDAwMDAwNTEgOTUzZWI5NjEgOGUxYzlhMWYgOTI5YTIxYTAg'@; put 'YjY4NTQwZWUgYTJkYTcyNWIgOTliMzE1ZjMgYjhiNDg5OTEgOGVmMTA5ZTEgNTYxOTM5NTEgZWM3ZTkzN2IgMTY1MmMwYmQgM2JiMWJmMDcgMzU3M2RmODggM2QyYzM0ZjEgZWY0NTFmZDQgNmI1MDNmMDAiLG46IjAwMDAwMWZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZm'@; put 'IGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZhIDUxODY4NzgzIGJmMmY5NjZiIDdmY2MwMTQ4IGY3MDlhNWQwIDNiYjVjOWI4IDg5OWM0N2FlIGJiNmZiNzFlIDkxMzg2NDA5IixoYXNoOl8uc2hhNTEyLGdSZWQ6ITEsZzpbIjAwMDAwMGM2IDg1OGUwNmI3IDA0MDRlOWNkIDll'@; put 'M2VjYjY2IDIzOTViNDQyIDljNjQ4MTM5IDA1M2ZiNTIxIGY4MjhhZjYwIDZiNGQzZGJhIGExNGI1ZTc3IGVmZTc1OTI4IGZlMWRjMTI3IGEyZmZhOGRlIDMzNDhiM2MxIDg1NmE0MjliIGY5N2U3ZTMxIGMyZTViZDY2IiwiMDAwMDAxMTggMzkyOTZhNzggOWEzYmMwMDQgNWM4YTVmYjQgMmM3'@; put 'ZDFiZDkgOThmNTQ0NDkgNTc5YjQ0NjggMTdhZmJkMTcgMjczZTY2MmMgOTdlZTcyOTkgNWVmNDI2NDAgYzU1MGI5MDEgM2ZhZDA3NjEgMzUzYzcwODYgYTI3MmMyNDAgODhiZTk0NzYgOWZkMTY2NTAiXX0pLEgoImN1cnZlMjU1MTkiLHt0eXBlOiJtb250IixwcmltZToicDI1NTE5IixwOiI3'@; put 'ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkIixhOiI3NmQwNiIsYjoiMSIsbjoiMTAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIDE0ZGVmOWRlYTJmNzljZDYgNTgxMjYzMWE1Y2Y1ZDNlZCIsaGFzaDpfLnNo'@; put 'YTI1NixnUmVkOiExLGc6WyI5Il19KSxIKCJlZDI1NTE5Iix7dHlwZToiZWR3YXJkcyIscHJpbWU6InAyNTUxOSIscDoiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCIsYToiLTEiLGM6IjEiLGQ6IjUyMDM2Y2VlMmI2'@; put 'ZmZlNzMgOGNjNzQwNzk3Nzc5ZTg5OCAwMDcwMGE0ZDQxNDFkOGFiIDc1ZWI0ZGNhMTM1OTc4YTMiLG46IjEwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMCAxNGRlZjlkZWEyZjc5Y2Q2IDU4MTI2MzFhNWNmNWQzZWQiLGhhc2g6Xy5zaGEyNTYsZ1JlZDohMSxnOlsiMjE2OTM2ZDNj'@; put 'ZDZlNTNmZWMwYTRlMjMxZmRkNmRjNWM2OTJjYzc2MDk1MjVhN2IyYzk1NjJkNjA4ZjI1ZDUxYSIsIjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NTgiXX0pO3RyeXtSPWIoNTE0MTYpfWNhdGNoe1I9dm9pZCAwfUgoInNlY3Ay'@; put 'NTZrMSIse3R5cGU6InNob3J0IixwcmltZToiazI1NiIscDoiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiLGE6IjAiLGI6IjciLG46ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGJhYWVk'@; put 'Y2U2IGFmNDhhMDNiIGJmZDI1ZThjIGQwMzY0MTQxIixoOiIxIixoYXNoOl8uc2hhMjU2LGJldGE6IjdhZTk2YTJiNjU3YzA3MTA2ZTY0NDc5ZWFjMzQzNGU5OWNmMDQ5NzUxMmY1ODk5NWMxMzk2YzI4NzE5NTAxZWUiLGxhbWJkYToiNTM2M2FkNGNjMDVjMzBlMGE1MjYxYzAyODgxMjY0NWEx'@; put 'MjJlMjJlYTIwODE2Njc4ZGYwMjk2N2MxYjIzYmQ3MiIsYmFzaXM6W3thOiIzMDg2ZDIyMWE3ZDQ2YmNkZTg2YzkwZTQ5Mjg0ZWIxNSIsYjoiLWU0NDM3ZWQ2MDEwZTg4Mjg2ZjU0N2ZhOTBhYmZlNGMzIn0se2E6IjExNGNhNTBmN2E4ZTJmM2Y2NTdjMTEwOGQ5ZDQ0Y2ZkOCIsYjoiMzA4NmQy'@; put 'MjFhN2Q0NmJjZGU4NmM5MGU0OTI4NGViMTUifV0sZ1JlZDohMSxnOlsiNzliZTY2N2VmOWRjYmJhYzU1YTA2Mjk1Y2U4NzBiMDcwMjliZmNkYjJkY2UyOGQ5NTlmMjgxNWIxNmY4MTc5OCIsIjQ4M2FkYTc3MjZhM2M0NjU1ZGE0ZmJmYzBlMTEwOGE4ZmQxN2I0NDhhNjg1NTQxOTljNDdkMDhm'@; put 'ZmIxMGQ0YjgiLFJdfSl9LDI5MDQyOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoODg3MjMpLF89YigzMzU1NikscD1iKDMxMzYpLE49YigyMzQwMSksdz1iKDM1Mjk0KSxGPXAuYXNzZXJ0LEg9Yig2MDU0MSksUj1iKDQwNDg0KTtmdW5jdGlvbiBqKFApe2lmKCEodGhpcyBpbnN0'@; put 'YW5jZW9mIGopKXJldHVybiBuZXcgaihQKTsic3RyaW5nIj09dHlwZW9mIFAmJihGKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChOLFApLCJVbmtub3duIGN1cnZlICIrUCksUD1OW1BdKSxQIGluc3RhbmNlb2YgTi5QcmVzZXRDdXJ2ZSYmKFA9e2N1cnZlOlB9KSx0aGlz'@; put 'LmN1cnZlPVAuY3VydmUuY3VydmUsdGhpcy5uPXRoaXMuY3VydmUubix0aGlzLm5oPXRoaXMubi51c2hybigxKSx0aGlzLmc9dGhpcy5jdXJ2ZS5nLHRoaXMuZz1QLmN1cnZlLmcsdGhpcy5nLnByZWNvbXB1dGUoUC5jdXJ2ZS5uLmJpdExlbmd0aCgpKzEpLHRoaXMuaGFzaD1QLmhhc2h8fFAu'@; put 'Y3VydmUuaGFzaH1jZS5leHBvcnRzPWosai5wcm90b3R5cGUua2V5UGFpcj1mdW5jdGlvbihMKXtyZXR1cm4gbmV3IEgodGhpcyxMKX0sai5wcm90b3R5cGUua2V5RnJvbVByaXZhdGU9ZnVuY3Rpb24oTCxZKXtyZXR1cm4gSC5mcm9tUHJpdmF0ZSh0aGlzLEwsWSl9LGoucHJvdG90eXBlLmtl'@; put 'eUZyb21QdWJsaWM9ZnVuY3Rpb24oTCxZKXtyZXR1cm4gSC5mcm9tUHVibGljKHRoaXMsTCxZKX0sai5wcm90b3R5cGUuZ2VuS2V5UGFpcj1mdW5jdGlvbihMKXtMfHwoTD17fSk7Zm9yKHZhciBZPW5ldyBfKHtoYXNoOnRoaXMuaGFzaCxwZXJzOkwucGVycyxwZXJzRW5jOkwucGVyc0VuY3x8'@; put 'InV0ZjgiLGVudHJvcHk6TC5lbnRyb3B5fHx3KHRoaXMuaGFzaC5obWFjU3RyZW5ndGgpLGVudHJvcHlFbmM6TC5lbnRyb3B5JiZMLmVudHJvcHlFbmN8fCJ1dGY4Iixub25jZTp0aGlzLm4udG9BcnJheSgpfSksQj10aGlzLm4uYnl0ZUxlbmd0aCgpLFc9dGhpcy5uLnN1YihuZXcgRCgyKSk7'@; put 'Oyl7dmFyIFo9bmV3IEQoWS5nZW5lcmF0ZShCKSk7aWYoIShaLmNtcChXKT4wKSlyZXR1cm4gWi5pYWRkbigxKSx0aGlzLmtleUZyb21Qcml2YXRlKFopfX0sai5wcm90b3R5cGUuX3RydW5jYXRlVG9OPWZ1bmN0aW9uKEwsWSxCKXt2YXIgVztpZihELmlzQk4oTCl8fCJudW1iZXIiPT10eXBl'@; put 'b2YgTClXPShMPW5ldyBEKEwsMTYpKS5ieXRlTGVuZ3RoKCk7ZWxzZSBpZigib2JqZWN0Ij09dHlwZW9mIEwpVz1MLmxlbmd0aCxMPW5ldyBEKEwsMTYpO2Vsc2V7dmFyIFo9TC50b1N0cmluZygpO1c9Wi5sZW5ndGgrMT4+PjEsTD1uZXcgRChaLDE2KX0ibnVtYmVyIiE9dHlwZW9mIEImJihC'@; put 'PTgqVyk7dmFyIFg9Qi10aGlzLm4uYml0TGVuZ3RoKCk7cmV0dXJuIFg+MCYmKEw9TC51c2hybihYKSksIVkmJkwuY21wKHRoaXMubik+PTA/TC5zdWIodGhpcy5uKTpMfSxqLnByb3RvdHlwZS5zaWduPWZ1bmN0aW9uKEwsWSxCLFcpe2lmKCJvYmplY3QiPT10eXBlb2YgQiYmKFc9QixCPW51'@; put 'bGwpLFd8fChXPXt9KSwic3RyaW5nIiE9dHlwZW9mIEwmJiJudW1iZXIiIT10eXBlb2YgTCYmIUQuaXNCTihMKSl7Rigib2JqZWN0Ij09dHlwZW9mIEwmJkwmJiJudW1iZXIiPT10eXBlb2YgTC5sZW5ndGgsIkV4cGVjdGVkIG1lc3NhZ2UgdG8gYmUgYW4gYXJyYXktbGlrZSwgYSBoZXggc3Ry'@; put 'aW5nLCBvciBhIEJOIGluc3RhbmNlIiksRihMLmxlbmd0aD4+PjA9PT1MLmxlbmd0aCk7Zm9yKHZhciBaPTA7WjxMLmxlbmd0aDtaKyspRigoMjU1JkxbWl0pPT09TFtaXSl9WT10aGlzLmtleUZyb21Qcml2YXRlKFksQiksTD10aGlzLl90cnVuY2F0ZVRvTihMLCExLFcubXNnQml0TGVuZ3Ro'@; put 'KSxGKCFMLmlzTmVnKCksIkNhbiBub3Qgc2lnbiBhIG5lZ2F0aXZlIG1lc3NhZ2UiKTt2YXIgWD10aGlzLm4uYnl0ZUxlbmd0aCgpLFE9WS5nZXRQcml2YXRlKCkudG9BcnJheSgiYmUiLFgpLHE9TC50b0FycmF5KCJiZSIsWCk7RihuZXcgRChxKS5lcShMKSwiQ2FuIG5vdCBzaWduIG1lc3Nh'@; put 'Z2UiKTtmb3IodmFyIHRlPW5ldyBfKHtoYXNoOnRoaXMuaGFzaCxlbnRyb3B5OlEsbm9uY2U6cSxwZXJzOlcucGVycyxwZXJzRW5jOlcucGVyc0VuY3x8InV0ZjgifSksaWU9dGhpcy5uLnN1YihuZXcgRCgxKSksc2U9MDs7c2UrKyl7dmFyIGdlPVcuaz9XLmsoc2UpOm5ldyBEKHRlLmdlbmVy'@; put 'YXRlKHRoaXMubi5ieXRlTGVuZ3RoKCkpKTtpZighKChnZT10aGlzLl90cnVuY2F0ZVRvTihnZSwhMCkpLmNtcG4oMSk8PTB8fGdlLmNtcChpZSk+PTApKXt2YXIgX2U9dGhpcy5nLm11bChnZSk7aWYoIV9lLmlzSW5maW5pdHkoKSl7dmFyIFRlPV9lLmdldFgoKSxTZT1UZS51bW9kKHRoaXMu'@; put 'bik7aWYoMCE9PVNlLmNtcG4oMCkpe3ZhciB6ZT1nZS5pbnZtKHRoaXMubikubXVsKFNlLm11bChZLmdldFByaXZhdGUoKSkuaWFkZChMKSk7aWYoMCE9PSh6ZT16ZS51bW9kKHRoaXMubikpLmNtcG4oMCkpe3ZhciB6PShfZS5nZXRZKCkuaXNPZGQoKT8xOjApfCgwIT09VGUuY21wKFNlKT8y'@; put 'OjApO3JldHVybiBXLmNhbm9uaWNhbCYmemUuY21wKHRoaXMubmgpPjAmJih6ZT10aGlzLm4uc3ViKHplKSx6Xj0xKSxuZXcgUih7cjpTZSxzOnplLHJlY292ZXJ5UGFyYW06en0pfX19fX19LGoucHJvdG90eXBlLnZlcmlmeT1mdW5jdGlvbihMLFksQixXLFope1p8fChaPXt9KSxMPXRoaXMu'@; put 'X3RydW5jYXRlVG9OKEwsITEsWi5tc2dCaXRMZW5ndGgpLEI9dGhpcy5rZXlGcm9tUHVibGljKEIsVyk7dmFyIFg9KFk9bmV3IFIoWSwiaGV4IikpLnIsUT1ZLnM7aWYoWC5jbXBuKDEpPDB8fFguY21wKHRoaXMubik+PTB8fFEuY21wbigxKTwwfHxRLmNtcCh0aGlzLm4pPj0wKXJldHVybiEx'@; put 'O3ZhciBzZSxxPVEuaW52bSh0aGlzLm4pLHRlPXEubXVsKEwpLnVtb2QodGhpcy5uKSxpZT1xLm11bChYKS51bW9kKHRoaXMubik7cmV0dXJuIHRoaXMuY3VydmUuX21heHdlbGxUcmljaz8hKHNlPXRoaXMuZy5qbXVsQWRkKHRlLEIuZ2V0UHVibGljKCksaWUpKS5pc0luZmluaXR5KCkmJnNl'@; put 'LmVxWFRvUChYKTohKHNlPXRoaXMuZy5tdWxBZGQodGUsQi5nZXRQdWJsaWMoKSxpZSkpLmlzSW5maW5pdHkoKSYmMD09PXNlLmdldFgoKS51bW9kKHRoaXMubikuY21wKFgpfSxqLnByb3RvdHlwZS5yZWNvdmVyUHViS2V5PWZ1bmN0aW9uKFAsTCxZLEIpe0YoKDMmWSk9PT1ZLCJUaGUgcmVj'@; put 'b3ZlcnkgcGFyYW0gaXMgbW9yZSB0aGFuIHR3byBiaXRzIiksTD1uZXcgUihMLEIpO3ZhciBXPXRoaXMubixaPW5ldyBEKFApLFg9TC5yLFE9TC5zLHE9MSZZLHRlPVk+PjE7aWYoWC5jbXAodGhpcy5jdXJ2ZS5wLnVtb2QodGhpcy5jdXJ2ZS5uKSk+PTAmJnRlKXRocm93IG5ldyBFcnJvcigi'@; put 'VW5hYmxlIHRvIGZpbmQgc2VuY29uZCBrZXkgY2FuZGluYXRlIik7WD10aGlzLmN1cnZlLnBvaW50RnJvbVgodGU/WC5hZGQodGhpcy5jdXJ2ZS5uKTpYLHEpO3ZhciBpZT1MLnIuaW52bShXKSxzZT1XLnN1YihaKS5tdWwoaWUpLnVtb2QoVyksZ2U9US5tdWwoaWUpLnVtb2QoVyk7cmV0dXJu'@; put 'IHRoaXMuZy5tdWxBZGQoc2UsWCxnZSl9LGoucHJvdG90eXBlLmdldEtleVJlY292ZXJ5UGFyYW09ZnVuY3Rpb24oUCxMLFksQil7aWYobnVsbCE9PShMPW5ldyBSKEwsQikpLnJlY292ZXJ5UGFyYW0pcmV0dXJuIEwucmVjb3ZlcnlQYXJhbTtmb3IodmFyIFc9MDtXPDQ7VysrKXt2YXIgWjt0'@; put 'cnl7Wj10aGlzLnJlY292ZXJQdWJLZXkoUCxMLFcpfWNhdGNoe2NvbnRpbnVlfWlmKFouZXEoWSkpcmV0dXJuIFd9dGhyb3cgbmV3IEVycm9yKCJVbmFibGUgdG8gZmluZCB2YWxpZCByZWNvdmVyeSBmYWN0b3IiKX19LDYwNTQxOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoODg3'@; put 'MjMpLHA9YigzMTM2KS5hc3NlcnQ7ZnVuY3Rpb24gTih3LEYpe3RoaXMuZWM9dyx0aGlzLnByaXY9bnVsbCx0aGlzLnB1Yj1udWxsLEYucHJpdiYmdGhpcy5faW1wb3J0UHJpdmF0ZShGLnByaXYsRi5wcml2RW5jKSxGLnB1YiYmdGhpcy5faW1wb3J0UHVibGljKEYucHViLEYucHViRW5jKX1j'@; put 'ZS5leHBvcnRzPU4sTi5mcm9tUHVibGljPWZ1bmN0aW9uKEYsSCxSKXtyZXR1cm4gSCBpbnN0YW5jZW9mIE4/SDpuZXcgTihGLHtwdWI6SCxwdWJFbmM6Un0pfSxOLmZyb21Qcml2YXRlPWZ1bmN0aW9uKEYsSCxSKXtyZXR1cm4gSCBpbnN0YW5jZW9mIE4/SDpuZXcgTihGLHtwcml2OkgscHJp'@; put 'dkVuYzpSfSl9LE4ucHJvdG90eXBlLnZhbGlkYXRlPWZ1bmN0aW9uKCl7dmFyIEY9dGhpcy5nZXRQdWJsaWMoKTtyZXR1cm4gRi5pc0luZmluaXR5KCk/e3Jlc3VsdDohMSxyZWFzb246IkludmFsaWQgcHVibGljIGtleSJ9OkYudmFsaWRhdGUoKT9GLm11bCh0aGlzLmVjLmN1cnZlLm4pLmlz'@; put 'SW5maW5pdHkoKT97cmVzdWx0OiEwLHJlYXNvbjpudWxsfTp7cmVzdWx0OiExLHJlYXNvbjoiUHVibGljIGtleSAqIE4gIT0gTyJ9OntyZXN1bHQ6ITEscmVhc29uOiJQdWJsaWMga2V5IGlzIG5vdCBhIHBvaW50In19LE4ucHJvdG90eXBlLmdldFB1YmxpYz1mdW5jdGlvbihGLEgpe3JldHVy'@; put 'biJzdHJpbmciPT10eXBlb2YgRiYmKEg9RixGPW51bGwpLHRoaXMucHVifHwodGhpcy5wdWI9dGhpcy5lYy5nLm11bCh0aGlzLnByaXYpKSxIP3RoaXMucHViLmVuY29kZShILEYpOnRoaXMucHVifSxOLnByb3RvdHlwZS5nZXRQcml2YXRlPWZ1bmN0aW9uKEYpe3JldHVybiJoZXgiPT09Rj90'@; put 'aGlzLnByaXYudG9TdHJpbmcoMTYsMik6dGhpcy5wcml2fSxOLnByb3RvdHlwZS5faW1wb3J0UHJpdmF0ZT1mdW5jdGlvbihGLEgpe3RoaXMucHJpdj1uZXcgRChGLEh8fDE2KSx0aGlzLnByaXY9dGhpcy5wcml2LnVtb2QodGhpcy5lYy5jdXJ2ZS5uKX0sTi5wcm90b3R5cGUuX2ltcG9ydFB1'@; put 'YmxpYz1mdW5jdGlvbihGLEgpe2lmKEYueHx8Ri55KXJldHVybiJtb250Ij09PXRoaXMuZWMuY3VydmUudHlwZT9wKEYueCwiTmVlZCB4IGNvb3JkaW5hdGUiKTooInNob3J0Ij09PXRoaXMuZWMuY3VydmUudHlwZXx8ImVkd2FyZHMiPT09dGhpcy5lYy5jdXJ2ZS50eXBlKSYmcChGLngmJkYu'@; put 'eSwiTmVlZCBib3RoIHggYW5kIHkgY29vcmRpbmF0ZSIpLHZvaWQodGhpcy5wdWI9dGhpcy5lYy5jdXJ2ZS5wb2ludChGLngsRi55KSk7dGhpcy5wdWI9dGhpcy5lYy5jdXJ2ZS5kZWNvZGVQb2ludChGLEgpfSxOLnByb3RvdHlwZS5kZXJpdmU9ZnVuY3Rpb24oRil7cmV0dXJuIEYudmFsaWRh'@; put 'dGUoKXx8cChGLnZhbGlkYXRlKCksInB1YmxpYyBwb2ludCBub3QgdmFsaWRhdGVkIiksRi5tdWwodGhpcy5wcml2KS5nZXRYKCl9LE4ucHJvdG90eXBlLnNpZ249ZnVuY3Rpb24oRixILFIpe3JldHVybiB0aGlzLmVjLnNpZ24oRix0aGlzLEgsUil9LE4ucHJvdG90eXBlLnZlcmlmeT1mdW5j'@; put 'dGlvbihGLEgsUil7cmV0dXJuIHRoaXMuZWMudmVyaWZ5KEYsSCx0aGlzLHZvaWQgMCxSKX0sTi5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiI8S2V5IHByaXY6ICIrKHRoaXMucHJpdiYmdGhpcy5wcml2LnRvU3RyaW5nKDE2LDIpKSsiIHB1YjogIisodGhpcy5wdWImJnRo'@; put 'aXMucHViLmluc3BlY3QoKSkrIiA+In19LDQwNDg0OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoODg3MjMpLF89YigzMTM2KSxwPV8uYXNzZXJ0O2Z1bmN0aW9uIE4oaixQKXtpZihqIGluc3RhbmNlb2YgTilyZXR1cm4gajt0aGlzLl9pbXBvcnRERVIoaixQKXx8KHAoai5yJiZq'@; put 'LnMsIlNpZ25hdHVyZSB3aXRob3V0IHIgb3IgcyIpLHRoaXMucj1uZXcgRChqLnIsMTYpLHRoaXMucz1uZXcgRChqLnMsMTYpLHRoaXMucmVjb3ZlcnlQYXJhbT12b2lkIDA9PT1qLnJlY292ZXJ5UGFyYW0/bnVsbDpqLnJlY292ZXJ5UGFyYW0pfWZ1bmN0aW9uIHcoKXt0aGlzLnBsYWNlPTB9'@; put 'ZnVuY3Rpb24gRihqLFApe3ZhciBMPWpbUC5wbGFjZSsrXTtpZighKDEyOCZMKSlyZXR1cm4gTDt2YXIgWT0xNSZMO2lmKDA9PT1ZfHxZPjR8fDA9PT1qW1AucGxhY2VdKXJldHVybiExO2Zvcih2YXIgQj0wLFc9MCxaPVAucGxhY2U7VzxZO1crKyxaKyspQjw8PTgsQnw9altaXSxCPj4+PTA7'@; put 'cmV0dXJuIShCPD0xMjcpJiYoUC5wbGFjZT1aLEIpfWZ1bmN0aW9uIEgoail7Zm9yKHZhciBQPTAsTD1qLmxlbmd0aC0xOyFqW1BdJiYhKDEyOCZqW1ArMV0pJiZQPEw7KVArKztyZXR1cm4gMD09PVA/ajpqLnNsaWNlKFApfWZ1bmN0aW9uIFIoaixQKXtpZihQPDEyOClqLnB1c2goUCk7ZWxz'@; put 'ZXt2YXIgTD0xKyhNYXRoLmxvZyhQKS9NYXRoLkxOMj4+PjMpO2ZvcihqLnB1c2goMTI4fEwpOy0tTDspai5wdXNoKFA+Pj4oTDw8MykmMjU1KTtqLnB1c2goUCl9fWNlLmV4cG9ydHM9TixOLnByb3RvdHlwZS5faW1wb3J0REVSPWZ1bmN0aW9uKFAsTCl7UD1fLnRvQXJyYXkoUCxMKTt2YXIg'@; put 'WT1uZXcgdztpZig0OCE9PVBbWS5wbGFjZSsrXSlyZXR1cm4hMTt2YXIgQj1GKFAsWSk7aWYoITE9PT1CfHxCK1kucGxhY2UhPT1QLmxlbmd0aHx8MiE9PVBbWS5wbGFjZSsrXSlyZXR1cm4hMTt2YXIgVz1GKFAsWSk7aWYoITE9PT1XfHwxMjgmUFtZLnBsYWNlXSlyZXR1cm4hMTt2YXIgWj1Q'@; put 'LnNsaWNlKFkucGxhY2UsVytZLnBsYWNlKTtpZihZLnBsYWNlKz1XLDIhPT1QW1kucGxhY2UrK10pcmV0dXJuITE7dmFyIFg9RihQLFkpO2lmKCExPT09WHx8UC5sZW5ndGghPT1YK1kucGxhY2V8fDEyOCZQW1kucGxhY2VdKXJldHVybiExO3ZhciBRPVAuc2xpY2UoWS5wbGFjZSxYK1kucGxh'@; put 'Y2UpO2lmKDA9PT1aWzBdKXtpZighKDEyOCZaWzFdKSlyZXR1cm4hMTtaPVouc2xpY2UoMSl9aWYoMD09PVFbMF0pe2lmKCEoMTI4JlFbMV0pKXJldHVybiExO1E9US5zbGljZSgxKX1yZXR1cm4gdGhpcy5yPW5ldyBEKFopLHRoaXMucz1uZXcgRChRKSx0aGlzLnJlY292ZXJ5UGFyYW09bnVs'@; put 'bCwhMH0sTi5wcm90b3R5cGUudG9ERVI9ZnVuY3Rpb24oUCl7dmFyIEw9dGhpcy5yLnRvQXJyYXkoKSxZPXRoaXMucy50b0FycmF5KCk7Zm9yKDEyOCZMWzBdJiYoTD1bMF0uY29uY2F0KEwpKSwxMjgmWVswXSYmKFk9WzBdLmNvbmNhdChZKSksTD1IKEwpLFk9SChZKTshKFlbMF18fDEyOCZZ'@; put 'WzFdKTspWT1ZLnNsaWNlKDEpO3ZhciBCPVsyXTtSKEIsTC5sZW5ndGgpLChCPUIuY29uY2F0KEwpKS5wdXNoKDIpLFIoQixZLmxlbmd0aCk7dmFyIFc9Qi5jb25jYXQoWSksWj1bNDhdO3JldHVybiBSKFosVy5sZW5ndGgpLFo9Wi5jb25jYXQoVyksXy5lbmNvZGUoWixQKX19LDgzMDQ1Oihj'@; put 'ZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNTI1MjkpLF89YigyMzQwMSkscD1iKDMxMzYpLE49cC5hc3NlcnQsdz1wLnBhcnNlQnl0ZXMsRj1iKDg3MjIyKSxIPWIoNTQ1MSk7ZnVuY3Rpb24gUihqKXtpZihOKCJlZDI1NTE5Ij09PWosIm9ubHkgdGVzdGVkIHdpdGggZWQyNTUxOSBz'@; put 'byBmYXIiKSwhKHRoaXMgaW5zdGFuY2VvZiBSKSlyZXR1cm4gbmV3IFIoaik7dGhpcy5jdXJ2ZT1qPV9bal0uY3VydmUsdGhpcy5nPWouZyx0aGlzLmcucHJlY29tcHV0ZShqLm4uYml0TGVuZ3RoKCkrMSksdGhpcy5wb2ludENsYXNzPWoucG9pbnQoKS5jb25zdHJ1Y3Rvcix0aGlzLmVuY29k'@; put 'aW5nTGVuZ3RoPU1hdGguY2VpbChqLm4uYml0TGVuZ3RoKCkvOCksdGhpcy5oYXNoPUQuc2hhNTEyfWNlLmV4cG9ydHM9UixSLnByb3RvdHlwZS5zaWduPWZ1bmN0aW9uKFAsTCl7UD13KFApO3ZhciBZPXRoaXMua2V5RnJvbVNlY3JldChMKSxCPXRoaXMuaGFzaEludChZLm1lc3NhZ2VQcmVm'@; put 'aXgoKSxQKSxXPXRoaXMuZy5tdWwoQiksWj10aGlzLmVuY29kZVBvaW50KFcpLFg9dGhpcy5oYXNoSW50KFosWS5wdWJCeXRlcygpLFApLm11bChZLnByaXYoKSksUT1CLmFkZChYKS51bW9kKHRoaXMuY3VydmUubik7cmV0dXJuIHRoaXMubWFrZVNpZ25hdHVyZSh7UjpXLFM6USxSZW5jb2Rl'@; put 'ZDpafSl9LFIucHJvdG90eXBlLnZlcmlmeT1mdW5jdGlvbihQLEwsWSl7aWYoUD13KFApLChMPXRoaXMubWFrZVNpZ25hdHVyZShMKSkuUygpLmd0ZShMLmVkZHNhLmN1cnZlLm4pfHxMLlMoKS5pc05lZygpKXJldHVybiExO3ZhciBCPXRoaXMua2V5RnJvbVB1YmxpYyhZKSxXPXRoaXMuaGFz'@; put 'aEludChMLlJlbmNvZGVkKCksQi5wdWJCeXRlcygpLFApLFo9dGhpcy5nLm11bChMLlMoKSk7cmV0dXJuIEwuUigpLmFkZChCLnB1YigpLm11bChXKSkuZXEoWil9LFIucHJvdG90eXBlLmhhc2hJbnQ9ZnVuY3Rpb24oKXtmb3IodmFyIFA9dGhpcy5oYXNoKCksTD0wO0w8YXJndW1lbnRzLmxl'@; put 'bmd0aDtMKyspUC51cGRhdGUoYXJndW1lbnRzW0xdKTtyZXR1cm4gcC5pbnRGcm9tTEUoUC5kaWdlc3QoKSkudW1vZCh0aGlzLmN1cnZlLm4pfSxSLnByb3RvdHlwZS5rZXlGcm9tUHVibGljPWZ1bmN0aW9uKFApe3JldHVybiBGLmZyb21QdWJsaWModGhpcyxQKX0sUi5wcm90b3R5cGUua2V5'@; put 'RnJvbVNlY3JldD1mdW5jdGlvbihQKXtyZXR1cm4gRi5mcm9tU2VjcmV0KHRoaXMsUCl9LFIucHJvdG90eXBlLm1ha2VTaWduYXR1cmU9ZnVuY3Rpb24oUCl7cmV0dXJuIFAgaW5zdGFuY2VvZiBIP1A6bmV3IEgodGhpcyxQKX0sUi5wcm90b3R5cGUuZW5jb2RlUG9pbnQ9ZnVuY3Rpb24oUCl7'@; put 'dmFyIEw9UC5nZXRZKCkudG9BcnJheSgibGUiLHRoaXMuZW5jb2RpbmdMZW5ndGgpO3JldHVybiBMW3RoaXMuZW5jb2RpbmdMZW5ndGgtMV18PVAuZ2V0WCgpLmlzT2RkKCk/MTI4OjAsTH0sUi5wcm90b3R5cGUuZGVjb2RlUG9pbnQ9ZnVuY3Rpb24oUCl7dmFyIEw9KFA9cC5wYXJzZUJ5dGVz'@; put 'KFApKS5sZW5ndGgtMSxZPVAuc2xpY2UoMCxMKS5jb25jYXQoLTEyOSZQW0xdKSxCPSEhKDEyOCZQW0xdKSxXPXAuaW50RnJvbUxFKFkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50RnJvbVkoVyxCKX0sUi5wcm90b3R5cGUuZW5jb2RlSW50PWZ1bmN0aW9uKFApe3JldHVybiBQLnRvQXJyYXko'@; put 'ImxlIix0aGlzLmVuY29kaW5nTGVuZ3RoKX0sUi5wcm90b3R5cGUuZGVjb2RlSW50PWZ1bmN0aW9uKFApe3JldHVybiBwLmludEZyb21MRShQKX0sUi5wcm90b3R5cGUuaXNQb2ludD1mdW5jdGlvbihQKXtyZXR1cm4gUCBpbnN0YW5jZW9mIHRoaXMucG9pbnRDbGFzc319LDg3MjIyOihjZSxK'@; put 'LGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMzEzNiksXz1ELmFzc2VydCxwPUQucGFyc2VCeXRlcyxOPUQuY2FjaGVkUHJvcGVydHk7ZnVuY3Rpb24gdyhGLEgpe3RoaXMuZWRkc2E9Rix0aGlzLl9zZWNyZXQ9cChILnNlY3JldCksRi5pc1BvaW50KEgucHViKT90aGlzLl9wdWI9SC5wdWI6'@; put 'dGhpcy5fcHViQnl0ZXM9cChILnB1Yil9dy5mcm9tUHVibGljPWZ1bmN0aW9uKEgsUil7cmV0dXJuIFIgaW5zdGFuY2VvZiB3P1I6bmV3IHcoSCx7cHViOlJ9KX0sdy5mcm9tU2VjcmV0PWZ1bmN0aW9uKEgsUil7cmV0dXJuIFIgaW5zdGFuY2VvZiB3P1I6bmV3IHcoSCx7c2VjcmV0OlJ9KX0s'@; put 'dy5wcm90b3R5cGUuc2VjcmV0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NlY3JldH0sTih3LCJwdWJCeXRlcyIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5lbmNvZGVQb2ludCh0aGlzLnB1YigpKX0pLE4odywicHViIixmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wdWJCeXRlcz90'@; put 'aGlzLmVkZHNhLmRlY29kZVBvaW50KHRoaXMuX3B1YkJ5dGVzKTp0aGlzLmVkZHNhLmcubXVsKHRoaXMucHJpdigpKX0pLE4odywicHJpdkJ5dGVzIixmdW5jdGlvbigpe3ZhciBIPXRoaXMuZWRkc2EsUj10aGlzLmhhc2goKSxqPUguZW5jb2RpbmdMZW5ndGgtMSxQPVIuc2xpY2UoMCxILmVu'@; put 'Y29kaW5nTGVuZ3RoKTtyZXR1cm4gUFswXSY9MjQ4LFBbal0mPTEyNyxQW2pdfD02NCxQfSksTih3LCJwcml2IixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmRlY29kZUludCh0aGlzLnByaXZCeXRlcygpKX0pLE4odywiaGFzaCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5o'@; put 'YXNoKCkudXBkYXRlKHRoaXMuc2VjcmV0KCkpLmRpZ2VzdCgpfSksTih3LCJtZXNzYWdlUHJlZml4IixmdW5jdGlvbigpe3JldHVybiB0aGlzLmhhc2goKS5zbGljZSh0aGlzLmVkZHNhLmVuY29kaW5nTGVuZ3RoKX0pLHcucHJvdG90eXBlLnNpZ249ZnVuY3Rpb24oSCl7cmV0dXJuIF8odGhp'@; put 'cy5fc2VjcmV0LCJLZXlQYWlyIGNhbiBvbmx5IHZlcmlmeSIpLHRoaXMuZWRkc2Euc2lnbihILHRoaXMpfSx3LnByb3RvdHlwZS52ZXJpZnk9ZnVuY3Rpb24oSCxSKXtyZXR1cm4gdGhpcy5lZGRzYS52ZXJpZnkoSCxSLHRoaXMpfSx3LnByb3RvdHlwZS5nZXRTZWNyZXQ9ZnVuY3Rpb24oSCl7'@; put 'cmV0dXJuIF8odGhpcy5fc2VjcmV0LCJLZXlQYWlyIGlzIHB1YmxpYyBvbmx5IiksRC5lbmNvZGUodGhpcy5zZWNyZXQoKSxIKX0sdy5wcm90b3R5cGUuZ2V0UHVibGljPWZ1bmN0aW9uKEgpe3JldHVybiBELmVuY29kZSh0aGlzLnB1YkJ5dGVzKCksSCl9LGNlLmV4cG9ydHM9d30sNTQ1MToo'@; put 'Y2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDg4NzIzKSxfPWIoMzEzNikscD1fLmFzc2VydCxOPV8uY2FjaGVkUHJvcGVydHksdz1fLnBhcnNlQnl0ZXM7ZnVuY3Rpb24gRihILFIpe3RoaXMuZWRkc2E9SCwib2JqZWN0IiE9dHlwZW9mIFImJihSPXcoUikpLEFycmF5LmlzQXJyYXko'@; put 'UikmJihwKFIubGVuZ3RoPT09MipILmVuY29kaW5nTGVuZ3RoLCJTaWduYXR1cmUgaGFzIGludmFsaWQgc2l6ZSIpLFI9e1I6Ui5zbGljZSgwLEguZW5jb2RpbmdMZW5ndGgpLFM6Ui5zbGljZShILmVuY29kaW5nTGVuZ3RoKX0pLHAoUi5SJiZSLlMsIlNpZ25hdHVyZSB3aXRob3V0IFIgb3Ig'@; put 'UyIpLEguaXNQb2ludChSLlIpJiYodGhpcy5fUj1SLlIpLFIuUyBpbnN0YW5jZW9mIEQmJih0aGlzLl9TPVIuUyksdGhpcy5fUmVuY29kZWQ9QXJyYXkuaXNBcnJheShSLlIpP1IuUjpSLlJlbmNvZGVkLHRoaXMuX1NlbmNvZGVkPUFycmF5LmlzQXJyYXkoUi5TKT9SLlM6Ui5TZW5jb2RlZH1O'@; put 'KEYsIlMiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRkc2EuZGVjb2RlSW50KHRoaXMuU2VuY29kZWQoKSl9KSxOKEYsIlIiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRkc2EuZGVjb2RlUG9pbnQodGhpcy5SZW5jb2RlZCgpKX0pLE4oRiwiUmVuY29kZWQiLGZ1bmN0aW9uKCl7cmV0dXJu'@; put 'IHRoaXMuZWRkc2EuZW5jb2RlUG9pbnQodGhpcy5SKCkpfSksTihGLCJTZW5jb2RlZCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5lbmNvZGVJbnQodGhpcy5TKCkpfSksRi5wcm90b3R5cGUudG9CeXRlcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLlJlbmNvZGVkKCkuY29uY2F0KHRo'@; put 'aXMuU2VuY29kZWQoKSl9LEYucHJvdG90eXBlLnRvSGV4PWZ1bmN0aW9uKCl7cmV0dXJuIF8uZW5jb2RlKHRoaXMudG9CeXRlcygpLCJoZXgiKS50b1VwcGVyQ2FzZSgpfSxjZS5leHBvcnRzPUZ9LDUxNDE2OmNlPT57Y2UuZXhwb3J0cz17ZG91Ymxlczp7c3RlcDo0LHBvaW50czpbWyJlNjBm'@; put 'Y2U5M2I1OWU5ZWM1MzAxMWFhYmMyMWMyM2U5N2IyYTMxMzY5Yjg3YTVhZTljNDRlZTg5ZTJhNmRlYzBhIiwiZjdlMzUwNzM5OWU1OTU5MjlkYjk5ZjM0ZjU3OTM3MTAxMjk2ODkxZTQ0ZDIzZjBiZTFmMzJjY2U2OTYxNjgyMSJdLFsiODI4MjI2MzIxMmM2MDlkOWVhMmE2ZTNlMTcyZGUyMzhk'@; put 'OGMzOWNhYmQ1YWMxY2ExMDY0NmUyM2ZkNWY1MTUwOCIsIjExZjhhODA5ODU1N2RmZTQ1ZTgyNTZlODMwYjYwYWNlNjJkNjEzYWMyZjdiMTdiZWQzMWI2ZWFmZjZlMjZjYWYiXSxbIjE3NWUxNTlmNzI4Yjg2NWE3MmY5OWNjNmM2ZmM4NDZkZTBiOTM4MzNmZDIyMjJlZDczZmNlNWI1NTFlNWI3'@; put 'MzkiLCJkMzUwNmUwZDllM2M3OWViYTRlZjk3YTUxZmY3MWY1ZWFjYjU5NTVhZGQyNDM0NWM2ZWZhNmZmZWU5ZmVkNjk1Il0sWyIzNjNkOTBkNDQ3YjAwYzljOTljZWFjMDViNjI2MmVlMDUzNDQxYzdlNTU1NTJmZmU1MjZiYWQ4ZjgzZmY0NjQwIiwiNGUyNzNhZGZjNzMyMjIxOTUzYjQ0NTM5'@; put 'N2YzMzYzMTQ1YjlhODkwMDgxOTllY2I2MjAwM2M3ZjNiZWU5ZGU5Il0sWyI4YjRiNWYxNjVkZjNjMmJlOGM2MjQ0YjViNzQ1NjM4ODQzZTRhNzgxYTE1YmNkMWI2OWY3OWE1NWRmZmRmODBjIiwiNGFhZDBhNmY2OGQzMDhiNGIzZmJkNzgxM2FiMGRhMDRmOWUzMzY1NDYxNjJlZTU2YjNlZmYw'@; put 'YzY1ZmQ0ZmQzNiJdLFsiNzIzY2JhYTZlNWRiOTk2ZDZiZjc3MWMwMGJkNTQ4YzdiNzAwZGJmZmE2YzBlNzdiY2I2MTE1OTI1MjMyZmNkYSIsIjk2ZTg2N2I1NTk1Y2M0OThhOTIxMTM3NDg4ODI0ZDZlMjY2MGEwNjUzNzc5NDk0ODAxZGMwNjlkOWViMzlmNWYiXSxbImVlYmZhNGQ0OTNiZWJm'@; put 'OThiYTVmZWVjODEyYzJkM2I1MDk0Nzk2MTIzN2E5MTk4MzlhNTMzZWNhMGU3ZGQ3ZmEiLCI1ZDlhOGNhMzk3MGVmMGYyNjllZTdlZGFmMTc4MDg5ZDlhZTRjZGMzYTcxMWY3MTJkZGZkNGZkYWUxZGU4OTk5Il0sWyIxMDBmNDRkYTY5NmU3MTY3Mjc5MWQwYTA5YjdiZGU0NTlmMTIxNWEyOWIz'@; put 'YzAzYmZlZmQ3ODM1YjM5YTQ4ZGIwIiwiY2RkOWUxMzE5MmEwMGI3NzJlYzhmMzMwMGMwOTA2NjZiN2ZmNGExOGZmNTE5NWFjMGZiZDVjZDYyYmM2NWEwOSJdLFsiZTEwMzFiZTI2MmM3ZWQxYjFkYzkyMjdhNGEwNGMwMTdhNzdmOGQ0NDY0ZjNiMzg1MmM4YWNkZTZlNTM0ZmQyZCIsIjlkNzA2'@; put 'MTkyODk0MDQwNWU2YmI2YTQxNzY1OTc1MzVhZjI5MmRkNDE5ZTFjZWQ3OWE0NGYxOGYyOTQ1NmEwMGQiXSxbImZlZWE2Y2FlNDZkNTViNTMwYWMyODM5ZjE0M2JkN2VjNWNmOGIyNjZhNDFkNmFmNTJkNWU2ODhkOTA5NDY5NmQiLCJlNTdjNmI2Yzk3ZGNlMWJhYjA2ZTRlMTJiZjNlY2Q1Yzk4'@; put 'MWM4OTU3Y2M0MTQ0MmQzMTU1ZGViZjE4MDkwMDg4Il0sWyJkYTY3YTkxZDkxMDQ5Y2RjYjM2N2JlNGJlNmZmY2EzY2ZlZWQ2NTdkODA4NTgzZGUzM2ZhOTc4YmMxZWM2Y2IxIiwiOWJhY2FhMzU0ODE2NDJiYzQxZjQ2M2Y3ZWM5NzgwZTVkZWM3YWRjNTA4Zjc0MGExN2U5ZWE4ZTI3YTY4YmUx'@; put 'ZCJdLFsiNTM5MDRmYWEwYjMzNGNkZGE2ZTAwMDkzNWVmMjIxNTFlYzA4ZDBmN2JiMTEwNjlmNTc1NDVjY2MxYTM3YjdjMCIsIjViYzA4N2QwYmM4MDEwNmQ4OGM5ZWNjYWMyMGQzYzFjMTM5OTk5ODFlMTQ0MzQ2OTlkY2IwOTZiMDIyNzcxYzgiXSxbIjhlN2JjZDBiZDM1OTgzYTc3MTljY2E3'@; put 'NzY0Y2E5MDY3NzliNTNhMDQzYTliOGJjYWVmZjk1OWY0M2FkODYwNDciLCIxMGI3NzcwYjJhM2RhNGIzOTQwMzEwNDIwY2E5NTE0NTc5ZTg4ZTJlNDdmZDY4YjNlYTEwMDQ3ZTg0NjAzNzJhIl0sWyIzODVlZWQzNGMxY2RmZjIxZTZkMDgxODY4OWI4MWJkZTcxYTdmNGYxODM5N2U2NjkwYTg0'@; put 'MWUxNTk5YzQzODYyIiwiMjgzYmViYzNlOGVhMjNmNTY3MDFkZTE5ZTllYmY0NTc2YjMwNGVlYzIwODZkYzhjYzA0NThmZTU1NDJlNTQ1MyJdLFsiNmY5ZDliODAzZWNmMTkxNjM3YzczYTQ0MTNkZmExODBmZGRmODRhNTk0N2ZiYzljNjA2ZWQ4NmMzZmFjM2E3IiwiN2M4MGM2OGU2MDMwNTli'@; put 'YTY5YjhlMmEzMGU0NWM0ZDQ3ZWE0ZGQyZjVjMjgxMDAyZDg2ODkwNjAzYTg0MjE2MCJdLFsiMzMyMmQ0MDEyNDNjNGUyNTgyYTIxNDdjMTA0ZDZlY2JmNzc0ZDE2M2RiMGY1ZTUzMTNiN2UwZTc0MmQwZTZiZCIsIjU2ZTcwNzk3ZTk2NjRlZjViZmIwMTliYzRkZGFmOWI3MjgwNWY2M2VhMjg3'@; put 'M2FmNjI0ZjNhMmU5NmMyOGIyYTAiXSxbIjg1NjcyYzdkMmRlMGI3ZGEyYmQxNzcwZDg5NjY1ODY4NzQxYjNmOWFmNzY0MzM5NzcyMWQ3NGQyODEzNGFiODMiLCI3YzQ4MWI5YjViNDNiMmViNjM3NDA0OWJmYTYyYzJlNWU3N2YxN2ZjYzUyOThmNDRjOGUzMDk0Zjc5MDMxM2E2Il0sWyI5NDhi'@; put 'ZjgwOWIxOTg4YTQ2YjA2YzlmMTkxOTQxM2IxMGY5MjI2YzYwZjY2ODgzMmZmZDk1OWFmNjBjODJhMGEiLCI1M2E1NjI4NTZkY2I2NjQ2ZGM2Yjc0YzVkMWMzNDE4YzZkNGRmZjA4Yzk3Y2QyYmVkNGNiN2Y4OGQ4YzhlNTg5Il0sWyI2MjYwY2U3ZjQ2MTgwMWMzNGYwNjdjZTBmMDI4NzNhOGYx'@; put 'YjBlNDRkZmM2OTc1MmFjY2VjZDgxOWYzOGZkOGU4IiwiYmMyZGE4MmI2ZmE1YjU3MWE3ZjA5MDQ5Nzc2YTFlZjdlY2QyOTIyMzgwNTFjMTk4YzFhODRlOTViMmI0YWUxNyJdLFsiZTUwMzdkZTBhZmMxZDhkNDNkODM0ODQxNGJiZjQxMDMwNDNlYzhmNTc1YmZkYzQzMjk1M2NjOGQyMDM3ZmEy'@; put 'ZCIsIjQ1NzE1MzRiYWE5NGQzYjVmOWY5OGQwOWZiOTkwYmRkYmQ1ZjViMDNlYzQ4MWYxMGUwZTVkYzg0MWQ3NTViZGEiXSxbImUwNjM3MmIwZjRhMjA3YWRmNWVhOTA1ZThmMTc3MWI0ZTdlOGRiZDFjNmE2YzViNzI1ODY2YTBhZTRmY2U3MjUiLCI3YTkwODk3NGJjZTE4Y2ZlMTJhMjdiYjJh'@; put 'ZDVhNDg4Y2Q3NDg0YTc3ODcxMDQ4NzBiMjcwMzRmOTRlZWUzMWRkIl0sWyIyMTNjN2E3MTVjZDVkNDUzNThkMGJiZjlkYzBjZTAyMjA0YjEwYmRkZTJhM2Y1ODU0MGFkNjkwOGQwNTU5NzU0IiwiNGI2ZGFkMGI1YWU0NjI1MDcwMTNhZDA2MjQ1YmExOTBiYjQ4NTBmNWYzNmE3ZWVkZGZmMmMy'@; put 'NzUzNGI0NThmMiJdLFsiNGU3YzI3MmE3YWY0YjM0ZThkYmI5MzUyYTU0MTlhODdlMjgzOGM3MGFkYzYyY2RkZjBjYzNhM2IwOGZiZDUzYyIsIjE3NzQ5Yzc2NmM5ZDBiMThlMTZmZDA5ZjZkZWY2ODFiNTMwYjk2MTRiZmY3ZGQzM2UwYjM5NDE4MTdkY2FhZTYiXSxbImZlYTc0ZTNkYmU3Nzhi'@; put 'MWIxMGYyMzhhZDYxNjg2YWE1Yzc2ZTNkYjJiZTQzMDU3NjMyNDI3ZTI4NDBmYjI3YjYiLCI2ZTA1NjhkYjliMGIxMzI5N2NmNjc0ZGVjY2I2YWY5MzEyNmI1OTZiOTczZjdiNzc3MDFkM2RiN2YyM2NiOTZmIl0sWyI3NmU2NDExM2Y2NzdjZjBlMTBhMjU3MGQ1OTk5NjhkMzE1NDRlMTc5Yjc2'@; put 'MDQzMjk1MmMwMmE0NDE3YmRkZTM5IiwiYzkwZGRmOGRlZTRlOTVjZjU3NzA2NmQ3MDY4MWYwZDM1ZTJhMzNkMmI1NmQyMDMyYjRiMTc1MmQxOTAxYWMwMSJdLFsiYzczOGM1NmIwM2IyYWJlMWU4MjgxYmFhNzQzZjhmOWE4ZjdjYzY0M2RmMjZjYmVlM2FiMTUwMjQyYmNiYjg5MSIsIjg5M2Zi'@; put 'NTc4OTUxYWQyNTM3ZjcxOGYyZWFjYmZiYmJiODIzMTRlZWY3ODgwY2ZlOTE3ZTczNWQ5Njk5YTg0YzMiXSxbImQ4OTU2MjY1NDhiNjViODFlMjY0Yzc2MzdjOTcyODc3ZDFkNzJlNWYzYTkyNTAxNDM3MmU5ZjY1ODhmNmMxNGIiLCJmZWJmYWEzOGYyYmM3ZWFlNzI4ZWM2MDgxOGMzNDBlYjAz'@; put 'NDI4ZDYzMmJiMDY3ZTE3OTM2M2VkNzVkN2Q5OTFmIl0sWyJiOGRhOTQwMzJhOTU3NTE4ZWIwZjY0MzM1NzFlODc2MWNlZmZjNzM2OTNlODRlZGQ0OTE1MGE1NjRmNjc2ZTAzIiwiMjgwNGRmYTQ0ODA1YTFlNGQ3Yzk5Y2M5NzYyODA4YjA5MmNjNTg0ZDk1ZmYzYjUxMTQ4OGU0ZTc0ZWZkZjZl'@; put 'NyJdLFsiZTgwZmVhMTQ0NDFmYjMzYTdkOGFkYWI5NDc1ZDdmYWIyMDE5ZWZmYjUxNTZhNzkyZjFhMTE3NzhlM2MwZGY1ZCIsImVlZDFkZTdmNjM4ZTAwNzcxZTg5NzY4Y2EzY2E5NDQ3MmQxNTVlODBhZjMyMmVhOWZjYjQyOTFiNmFjOWVjNzgiXSxbImEzMDE2OTdiZGZjZDcwNDMxM2JhNDhl'@; put 'NTFkNTY3NTQzZjJhMTgyMDMxZWZkNjkxNWRkYzA3YmJjYzRlMTYwNzAiLCI3MzcwZjkxY2ZiNjdlNGY1MDgxODA5ZmEyNWQ0MGY5YjE3MzVkYmY3YzBhMTFhMTMwYzBkMWEwNDFlMTc3ZWExIl0sWyI5MGFkODViMzg5ZDZiOTM2NDYzZjlkMDUxMjY3OGRlMjA4Y2MzMzBiMTEzMDdmZmZhYjdh'@; put 'YzYzZTNmYjA0ZWQ0IiwiZTUwN2EzNjIwYTM4MjYxYWZmZGNiZDk0MjcyMjJiODM5YWVmYWJlMTU4Mjg5NGQ5OTFkNGQ0OGNiNmVmMTUwIl0sWyI4ZjY4YjlkMmY2M2I1ZjMzOTIzOWMxYWQ5ODFmMTYyZWU4OGM1Njc4NzIzZWEzMzUxYjdiNDQ0YzllYzRjMGRhIiwiNjYyYTlmMmRiYTA2Mzk4'@; put 'NmRlMWQ5MGMyYjZiZTIxNWRiYmVhMmNmZTk1NTEwYmZkZjIzY2JmNzk1MDFmZmY4MiJdLFsiZTRmM2ZiMDE3NmFmODVkNjVmZjk5ZmY5MTk4YzM2MDkxZjQ4ZTg2NTAzNjgxZTNlNjY4NmZkNTA1MzIzMWUxMSIsIjFlNjM2MzNhZDBlZjRmMWMxNjYxYTZkMGVhMDJiNzI4NmNjN2U3NGVjOTUx'@; put 'ZDFjOTgyMmMzODU3NmZlYjczYmMiXSxbIjhjMDBmYTliMThlYmYzMzFlYjk2MTUzN2E0NWE0MjY2YzcwMzRmMmYwZDRlMWQwNzE2ZmI2ZWFlMjBlYWUyOWUiLCJlZmE0NzI2N2ZlYTUyMWExYTlkYzM0M2EzNzM2Yzk3NGMyZmFkYWZhODFlMzZjNTRlN2QyYTRjNjY3MDI0MTRiIl0sWyJlN2Ey'@; put 'NmNlNjlkZDQ4MjlmM2UxMGNlYzBhOWU5OGVkMzE0M2QwODRmMzA4YjkyYzA5OTdmZGRmYzYwY2IzZTQxIiwiMmE3NThlMzAwZmE3OTg0YjQ3MWIwMDZhMWFhZmJiMThkMGE2YjJjMDQyMGU4M2UyMGU4YTk0MjFjZjJjZmQ1MSJdLFsiYjY0NTllMGVlMzY2MmVjOGQyMzU0MGMyMjNiY2JkYzU3'@; put 'MWNiY2I5NjdkNzk0MjRmM2NmMjllYjNkZTZiODBlZiIsIjY3Yzg3NmQwNmYzZTA2ZGUxZGFkZjE2ZTU2NjFkYjNjNGIzYWU2ZDQ4ZTM1YjJmZjMwYmYwYjYxYTcxYmE0NSJdLFsiZDY4YTgwYzgyODBiYjg0MDc5MzIzNGFhMTE4ZjA2MjMxZDZmMWZjNjdlNzNjNWE1ZGVkYTBmNWI0OTY5NDNl'@; put 'OCIsImRiOGJhOWZmZjRiNTg2ZDAwYzRiMWY5MTc3YjBlMjhiNWIwZTdiOGY3ODQ1Mjk1YTI5NGM4NDI2NmIxMzMxMjAiXSxbIjMyNGFlZDdkZjY1YzgwNDI1MmRjMDI3MDkwN2EzMGIwOTYxMmFlYjk3MzQ0OWNlYTQwOTU5ODBmYzI4ZDNkNWQiLCI2NDhhMzY1Nzc0YjYxZjJmZjEzMGMwYzM1'@; put 'YWVjMWY0ZjE5MjEzYjBjN2UzMzI4NDM5NjcyMjRhZjk2YWI3Yzg0Il0sWyI0ZGY5YzE0OTE5Y2RlNjFmNmQ1MWRmZGJlNWZlZTVkY2VlYzQxNDNiYThkMWNhODg4ZThiZDM3M2ZkMDU0Yzk2IiwiMzVlYzUxMDkyZDg3MjgwNTA5NzRjMjNhMWQ4NWQ0YjVkNTA2Y2RjMjg4NDkwMTkyZWJhYzA2'@; put 'Y2FkMTBkNWQiXSxbIjljMzkxOWE4NGE0NzQ4NzBmYWVkOGE5YzFjYzY2MDIxNTIzNDg5MDU0ZDdmMDMwOGNiZmM5OWM4YWMxZjk4Y2QiLCJkZGI4NGYwZjRhNGRkZDU3NTg0ZjA0NGJmMjYwZTY0MTkwNTMyNmY3NmM2NGM4ZTZiZTdlNWUwM2Q0ZmM1OTlkIl0sWyI2MDU3MTcwYjFkZDEyZmRm'@; put 'OGRlMDVmMjgxZDhlMDZiYjkxZTE0OTNhOGI5MWQ0Y2M1YTIxMzgyMTIwYTk1OWU1IiwiOWExYWYwYjI2YTZhNDgwN2FkZDlhMmRhZjcxZGYyNjI0NjUxNTJiYzNlZTI0YzY1ZTg5OWJlOTMyMzg1YTJhOCJdLFsiYTU3NmRmOGUyM2EwODQxMTQyMTQzOWE0NTE4ZGEzMTg4MGNlZjBmYmE3ZDRk'@; put 'ZjEyYjFhNjk3M2VlY2I5NDI2NiIsIjQwYTZiZjIwZTc2NjQwYjJjOTJiOTdhZmU1OGNkODJjNDMyZTEwYTdmNTE0ZDlmM2VlOGJlMTFhZTFiMjhlYzgiXSxbIjc3NzhhNzhjMjhkZWMzZTMwYTA1ZmU5NjI5ZGU4YzM4YmIzMGQxZjVjZjlhM2EyMDhmNzYzODg5YmU1OGFkNzEiLCIzNDYyNmQ5'@; put 'YWI1YTViMjJmZjcwOThlMTJmMmZmNTgwMDg3YjM4NDExZmYyNGFjNTYzYjUxM2ZjMWZkOWY0M2FjIl0sWyI5Mjg5NTVlZTYzN2E4NDQ2MzcyOWZkMzBlN2FmZDJlZDVmOTYyNzRlNWFkN2U1Y2IwOWVkYTljMDZkOTAzYWMiLCJjMjU2MjEwMDNkM2Y0MmE4MjdiNzhhMTMwOTNhOTVlZWFjM2Qy'@; put 'NmVmYThhOGQ4M2ZjNTE4MGU5MzViY2QwOTFmIl0sWyI4NWQwZmVmM2VjNmRiMTA5Mzk5MDY0ZjNhMGUzYjI4NTU2NDViNGE5MDdhZDM1NDUyN2FhZTc1MTYzZDgyNzUxIiwiMWYwMzY0ODQxM2EzOGMwYmUyOWQ0OTZlNTgyY2Y1NjYzZTg3NTFlOTY4NzczMzE1ODJjMjM3YTI0ZWIxZjk2MiJd'@; put 'LFsiZmYyYjBkY2U5N2VlY2U5N2MxYzliNjA0MTc5OGI4NWRmZGZiNmQ4ODgyZGEyMDMwOGY1NDA0ODI0NTI2MDg3ZSIsIjQ5M2QxM2ZlZjUyNGJhMTg4YWY0YzRkYzU0ZDA3OTM2YzdiN2VkNmZiOTBlMmNlYjJjOTUxZTAxZjBjMjk5MDciXSxbIjgyN2ZiYmU0YjFlODgwZWE5ZWQyYjJlNjMw'@; put 'MWIyMTJiNTdmMWVlMTQ4Y2Q2ZGQyODc4MGU1ZTJjZjg1NmUyNDEiLCJjNjBmOWM5MjNjNzI3YjBiNzFiZWYyYzY3ZDFkMTI2ODdmZjdhNjMxODY5MDMxNjZkNjA1YjY4YmFlYzI5M2VjIl0sWyJlYWE2NDlmMjFmNTFiZGJhZTdiZTRhZTM0Y2U2ZTUyMTdhNThmZGNlN2Y0N2Y5YWE3ZjNiNThm'@; put 'YTIxMjBlMmIzIiwiYmUzMjc5ZWQ1YmJiYjAzYWM2OWE4MGY4OTg3OWFhNWEwMWE2Yjk2NWYxM2Y3ZTU5ZDQ3YTUzMDViYTVhZDkzZCJdLFsiZTRhNDJkNDNjNWNmMTY5ZDkzOTFkZjZkZWNmNDJlZTU0MWI2ZDhmMGM5YTEzNzQwMWUyMzYzMmRkYTM0ZDI0ZiIsIjRkOWY5MmU3MTZkMWM3MzUy'@; put 'NmZjOTljY2ZiOGFkMzRjZTg4NmVlZGZhOGQ4ZTRmMTNhN2Y3MTMxZGViYTk0MTQiXSxbIjFlYzgwZmVmMzYwY2JkZDk1NDE2MGZhZGFiMzUyYjZiOTJiNTM1NzZhODhmZWE0OTQ3MTczYjlkNDMwMGJmMTkiLCJhZWVmZTkzNzU2YjUzNDBkMmYzYTQ5NThhN2FiYmY1ZTAxNDZlNzdmNjI5NWEw'@; put 'N2I2NzFjZGMxY2MxMDdjZWZkIl0sWyIxNDZhNzc4YzA0NjcwYzJmOTFiMDBhZjQ2ODBkZmE4YmNlMzQ5MDcxN2Q1OGJhODg5ZGRiNTkyODM2NjY0MmJlIiwiYjMxOGUwZWMzMzU0MDI4YWRkNjY5ODI3ZjlkNGIyODcwYWFhOTcxZDJmN2U1ZWQxZDBiMjk3NDgzZDgzZWZkMCJdLFsiZmE1MGMw'@; put 'ZjYxZDIyZTVmMDdlM2FjZWJiMWFhMDdiMTI4ZDAwMTIyMDlhMjhiOTc3NmQ3NmE4NzkzMTgwZWVmOSIsIjZiODRjNjkyMjM5N2ViYTliNzJjZDI4NzIyODFhNjhhNWU2ODMyOTNhNTdhMjEzYjM4Y2Q4ZDdkM2Y0ZjI4MTEiXSxbImRhMWQ2MWQwY2E3MjFhMTFiMWE1YmY2YjdkODhlODQyMWEy'@; put 'ODhhYjVkNWJiYTUyMjBlNTNkMzJiNWYwNjdlYzIiLCI4MTU3ZjU1YTdjOTkzMDZjNzljMDc2NjE2MWM5MWUyOTY2YTczODk5ZDI3OWI0OGE2NTVmYmEwZjFhZDgzNmYxIl0sWyJhOGUyODJmZjBjOTcwNjkwNzIxNWZmOThlOGZkNDE2NjE1MzExZGUwNDQ2ZjFlMDYyYTczYjA2MTBkMDY0ZTEz'@; put 'IiwiN2Y5NzM1NWI4ZGI4MWMwOWFiZmI3ZjNjNWIyNTE1ODg4YjY3OWEzZTUwZGQ2YmQ2Y2VmN2M3MzExMWY0Y2MwYyJdLFsiMTc0YTUzYjljOWEyODU4NzJkMzllNTZlNjkxM2NhYjE1ZDU5YjFmYTUxMjUwOGMwMjJmMzgyZGU4MzE5NDk3YyIsImNjYzlkYzM3YWJmYzljMTY1N2I0MTU1ZjJj'@; put 'NDdmOWU2NjQ2YjNhMWQ4Y2I5ODU0MzgzZGExM2FjMDc5YWZhNzMiXSxbIjk1OTM5Njk4MTk0Mzc4NWMzZDNlNTdlZGY1MDE4Y2RiZTAzOWU3MzBlNDkxOGIzZDg4NGZkZmYwOTQ3NWI3YmEiLCIyZTdlNTUyODg4YzMzMWRkOGJhMDM4NmE0YjljZDY4NDljNjUzZjY0Yzg3MDkzODVlOWI4YWJm'@; put 'ODc1MjRmMmZkIl0sWyJkMmE2M2E1MGFlNDAxZTU2ZDY0NWExMTUzYjEwOWE4ZmNjYTBhNDNkNTYxZmJhMmRiYjUxMzQwYzlkODJiMTUxIiwiZTgyZDg2ZmI2NDQzZmNiNzU2NWFlZTU4YjI5NDgyMjBhNzBmNzUwYWY0ODRjYTUyZDQxNDIxNzRkY2Y4OTQwNSJdLFsiNjQ1ODdlMjMzNTQ3MWVi'@; put 'ODkwZWU3ODk2ZDdjZmRjODY2YmFjYmRiZDM4MzkzMTdiMzQzNmY5YjQ1NjE3ZTA3MyIsImQ5OWZjZGQ1YmY2OTAyZTJhZTk2ZGQ2NDQ3YzI5OWExODViOTBhMzkxMzNhZWFiMzU4Mjk5ZTVlOWZhZjY1ODkiXSxbIjg0ODFiZGUwZTRlNGQ4ODViM2E1NDZkM2U1NDlkZTA0MmYwYWE2Y2VhMjUw'@; put 'ZTdmZDM1OGQ2Yzg2ZGQ0NWU0NTgiLCIzOGVlN2I4Y2JhNTQwNGRkODRhMjViZjM5Y2VjYjJjYTkwMGE3OWM0MmIyNjJlNTU2ZDY0YjFiNTk3NzkwNTdlIl0sWyIxMzQ2NGE1N2E3ODEwMmFhNjJiNjk3OWFlODE3ZjQ2MzdmZmNmZWQzYzRiMWNlMzBiY2Q2MzAzZjZjYWY2NjZiIiwiNjliZTE1'@; put 'OTAwNDYxNDU4MGVmN2U0MzM0NTNjY2IwY2E0OGYzMDBhODFkMDk0MmUxM2Y0OTVhOTA3ZjZlY2MyNyJdLFsiYmM0YTlkZjViNzEzZmUyZTlhZWY0MzBiY2MxZGM5N2EwY2Q5Y2NlZGUyZjI4NTg4Y2FkYTNhMGQyZDgzZjM2NiIsImQzYTgxY2E2ZTc4NWMwNjM4MzkzN2FkZjRiNzk4Y2FhNmU4'@; put 'YTlmYmZhNTQ3YjE2ZDc1OGQ2NjY1ODFmMzNjMSJdLFsiOGMyOGE5N2JmODI5OGJjMGQyM2Q4Yzc0OTQ1MmEzMmU2OTRiNjVlMzBhOTQ3MmEzOTU0YWIzMGZlNTMyNGNhYSIsIjQwYTMwNDYzYTMzMDUxOTMzNzhmZWRmMzFmN2NjMGViN2FlNzg0ZjA0NTFjYjk0NTllNzFkYzczY2JlZjk0ODIi'@; put 'XSxbIjhlYTk2NjYxMzk1MjdhOGMxZGQ5NGNlNGYwNzFmZDIzYzhiMzUwYzVhNGJiMzM3NDhjNGJhMTExZmFjY2FlMCIsIjYyMGVmYWJiYzhlZTI3ODJlMjRlN2MwY2ZiOTVjNWQ3MzViNzgzYmU5Y2YwZjhlOTU1YWYzNGEzMGU2MmI5NDUiXSxbImRkMzYyNWZhZWY1YmEwNjA3NDY2OTcxNmJi'@; put 'ZDM3ODhkODliZGRlODE1OTU5OTY4MDkyZjc2Y2M0ZWI5YTk3ODciLCI3YTE4OGZhMzUyMGUzMGQ0NjFkYTI1MDEwNDU3MzFjYTk0MTQ2MTk4Mjg4MzM5NTkzN2Y2OGQwMGM2NDRhNTczIl0sWyJmNzEwZDc5ZDllYjk2MjI5N2U0ZjYyMzJiNDBlOGY3ZmViMmJjNjM4MTQ2MTRkNjkyYzEyZGU3'@; put 'NTI0MDgyMjFlIiwiZWE5OGU2NzIzMmQzYjMyOTVkM2I1MzU1MzIxMTVjY2FjODYxMmM3MjE4NTE2MTc1MjZhZTQ3YTljNzdiZmM4MiJdXX0sbmFmOnt3bmQ6Nyxwb2ludHM6W1siZjkzMDhhMDE5MjU4YzMxMDQ5MzQ0Zjg1Zjg5ZDUyMjliNTMxYzg0NTgzNmY5OWIwODYwMWYxMTNiY2UwMzZm'@; put 'OSIsIjM4OGY3YjBmNjMyZGU4MTQwZmUzMzdlNjJhMzdmMzU2NjUwMGE5OTkzNGMyMjMxYjZjYjlmZDc1ODRiOGU2NzIiXSxbIjJmOGJkZTRkMWEwNzIwOTM1NWI0YTcyNTBhNWM1MTI4ZTg4Yjg0YmRkYzYxOWFiN2NiYThkNTY5YjI0MGVmZTQiLCJkOGFjMjIyNjM2ZTVlM2Q2ZDRkYmE5ZGRh'@; put 'NmM5YzQyNmY3ODgyNzFiYWIwZDY4NDBkY2E4N2QzYWE2YWM2MmQ2Il0sWyI1Y2JkZjA2NDZlNWRiNGVhYTM5OGYzNjVmMmVhN2EwZTNkNDE5YjdlMDMzMGUzOWNlOTJiZGRlZGNhYzRmOWJjIiwiNmFlYmNhNDBiYTI1NTk2MGEzMTc4ZDZkODYxYTU0ZGJhODEzZDBiODEzZmRlN2I1YTUwODI2'@; put 'MjgwODcyNjRkYSJdLFsiYWNkNDg0ZTJmMGM3ZjY1MzA5YWQxNzhhOWY1NTlhYmRlMDk3OTY5NzRjNTdlNzE0YzM1ZjExMGRmYzI3Y2NiZSIsImNjMzM4OTIxYjBhN2Q5ZmQ2NDM4MDk3MTc2M2I2MWU5YWRkODg4YTQzNzVmOGUwZjA1Y2MyNjJhYzY0ZjljMzciXSxbIjc3NGFlN2Y4NThhOTQx'@; put 'MWU1ZWY0MjQ2YjcwYzY1YWFjNTY0OTk4MGJlNWMxNzg5MWJiZWMxNzg5NWRhMDA4Y2IiLCJkOTg0YTAzMmViNmI1ZTE5MDI0M2RkNTZkN2I3YjM2NTM3MmRiMWUyZGZmOWQ2YTgzMDFkNzRjOWM5NTNjNjFiIl0sWyJmMjg3NzNjMmQ5NzUyODhiYzdkMWQyMDVjMzc0ODY1MWIwNzVmYmM2NjEw'@; put 'ZTU4Y2RkZWVkZGY4ZjE5NDA1YWE4IiwiYWIwOTAyZThkODgwYTg5NzU4MjEyZWI2NWNkYWY0NzNhMWEwNmRhNTIxZmE5MWYyOWI1Y2I1MmRiMDNlZDgxIl0sWyJkNzkyNGQ0ZjdkNDNlYTk2NWE0NjVhZTMwOTVmZjQxMTMxZTU5NDZmM2M4NWY3OWU0NGFkYmNmOGUyN2UwODBlIiwiNTgxZTI4'@; put 'NzJhODZjNzJhNjgzODQyZWMyMjhjYzZkZWZlYTQwYWYyYmQ4OTZkM2E1YzUwNGRjOWZmNmEyNmI1OCJdLFsiZGVmZGVhNGNkYjY3Nzc1MGE0MjBmZWU4MDdlYWNmMjFlYjk4OThhZTc5Yjk3Njg3NjZlNGZhYTA0YTJkNGEzNCIsIjQyMTFhYjA2OTQ2MzUxNjhlOTk3YjBlYWQyYTkzZGFlY2Vk'@; put 'MWY0YTA0YTk1YzBmNmNmYjE5OWY2OWU1NmViNzciXSxbIjJiNGVhMGE3OTdhNDQzZDI5M2VmNWNmZjQ0NGY0OTc5ZjA2YWNmZWJkN2U4NmQyNzc0NzU2NTYxMzgzODViNmMiLCI4NWU4OWJjMDM3OTQ1ZDkzYjM0MzA4M2I1YTFjODYxMzFhMDFmNjBjNTAyNjk3NjNiNTcwYzg1NGU1YzA5Yjdh'@; put 'Il0sWyIzNTJiYmY0YTRjZGQxMjU2NGY5M2ZhMzMyY2UzMzMzMDFkOWFkNDAyNzFmODEwNzE4MTM0MGFlZjI1YmU1OWQ1IiwiMzIxZWI0MDc1MzQ4ZjUzNGQ1OWMxODI1OWRkYTNlMWY0YTFiM2IyZTcxYjEwMzljNjdiZDNkOGJjZjgxOTk4YyJdLFsiMmZhMjEwNGQ2YjM4ZDExYjAyMzAwMTA1'@; put 'NTk4NzkxMjRlNDJhYjhkZmVmZjVmZjI5ZGM5Y2RhZGQ0ZWNhY2MzZiIsIjJkZTEwNjgyOTVkZDg2NWI2NDU2OTMzNWJkNWRkODAxODFkNzBlY2ZjODgyNjQ4NDIzYmE3NmI1MzJiN2Q2NyJdLFsiOTI0ODI3OWIwOWI0ZDY4ZGFiMjFhOWIwNjZlZGRhODMyNjNjM2Q4NGUwOTU3MmUyNjljYTBj'@; put 'ZDdmNTQ1MzcxNCIsIjczMDE2ZjdiZjIzNGFhZGU1ZDFhYTcxYmRlYTJiMWZmM2ZjMGRlMmE4ODc5MTJmZmU1NGEzMmNlOTdjYjM0MDIiXSxbImRhZWQ0ZjJiZTNhOGJmMjc4ZTcwMTMyZmIwYmViNzUyMmY1NzBlMTQ0YmY2MTVjMDdlOTk2ZDQ0M2RlZTg3MjkiLCJhNjlkY2U0YTdkNmM5OGU4'@; put 'ZDRhMWFjYTg3ZWY4ZDcwMDNmODNjMjMwZjNhZmE3MjZhYjQwZTUyMjkwYmUxYzU1Il0sWyJjNDRkMTJjNzA2NWQ4MTJlOGFjZjI4ZDdjYmIxOWY5MDExZWNkOWU5ZmRmMjgxYjBlNmEzYjVlODdkMjJlN2RiIiwiMjExOWE0NjBjZTMyNmNkYzc2YzQ1OTI2Yzk4MmZkYWMwZTEwNmU4NjFlZGY2'@; put 'MWM1YTAzOTA2M2YwZTBlNjQ4MiJdLFsiNmEyNDViZjZkYzY5ODUwNGM4OWEyMGNmZGVkNjA4NTMxNTJiNjk1MzM2YzI4MDYzYjYxYzY1Y2JkMjY5ZTZiNCIsImUwMjJjZjQyYzJiZDRhNzA4YjNmNTEyNmYxNmEyNGFkOGIzM2JhNDhkMDQyM2I2ZWZkNWU2MzQ4MTAwZDhhODIiXSxbIjE2OTdm'@; put 'ZmE2ZmQ5ZGU2MjdjMDc3ZTNkMmZlNTQxMDg0Y2UxMzMwMGIwYmVjMTE0NmY5NWFlNTdmMGQwYmQ2YTUiLCJiOWMzOThmMTg2ODA2ZjVkMjc1NjE1MDZlNDU1NzQzM2EyY2YxNTAwOWU0OThhZTdhZGVlOWQ2M2QwMWIyMzk2Il0sWyI2MDViZGIwMTk5ODE3MThiOTg2ZDBmMDdlODM0Y2IwZDlk'@; put 'ZWI4MzYwZmZiN2Y2MWRmOTgyMzQ1ZWYyN2E3NDc5IiwiMjk3MmQyZGU0ZjhkMjA2ODFhNzhkOTNlYzk2ZmUyM2MyNmJmYWU4NGZiMTRkYjQzYjAxZTFlOTA1NmI4YzQ5Il0sWyI2MmQxNGRhYjQxNTBiZjQ5NzQwMmZkYzQ1YTIxNWUxMGRjYjAxYzM1NDk1OWIxMGNmZTMxYzdlOWQ4N2ZmMzNk'@; put 'IiwiODBmYzA2YmQ4Y2M1YjAxMDk4MDg4YTE5NTBlZWQwZGIwMWFhMTMyOTY3YWI0NzIyMzVmNTY0MjQ4M2IyNWVhZiJdLFsiODBjNjBhZDAwNDBmMjdkYWRlNWI0YjA2YzQwOGU1NmIyYzUwZTlmNTZiOWI4YjQyNWU1NTVjMmY4NjMwOGI2ZiIsIjFjMzgzMDNmMWNjNWMzMGYyNmU2NmJhZDdm'@; put 'ZTcyZjcwYTY1ZWVkNGNiZTcwMjRlYjFhYTAxZjU2NDMwYmQ1N2EiXSxbIjdhOTM3NWFkNjE2N2FkNTRhYTc0YzYzNDhjYzU0ZDM0NGNjNWRjOTQ4N2Q4NDcwNDlkNWVhYmIwZmEwM2M4ZmIiLCJkMGUzZmE5ZWNhODcyNjkwOTU1OWUwZDc5MjY5MDQ2YmRjNTllYTEwYzcwY2UyYjAyZDQ5OWVj'@; put 'MjI0ZGM3ZjciXSxbImQ1MjhlY2Q5YjY5NmI1NGM5MDdhOWVkMDQ1NDQ3YTc5YmI0MDhlYzM5YjY4ZGY1MDRiYjUxZjQ1OWJjM2ZmYzkiLCJlZWNmNDEyNTMxMzZlNWY5OTk2NmYyMTg4MWZkNjU2ZWJjNDM0NTQwNWM1MjBkYmMwNjM0NjViNTIxNDA5OTMzIl0sWyI0OTM3MGE0YjVmNDM0MTJl'@; put 'YTI1ZjUxNGU4ZWNkYWQwNTI2NjExNWU0YTdlY2IxMzg3MjMxODA4ZjhiNDU5NjMiLCI3NThmM2Y0MWFmZDZlZDQyOGIzMDgxYjA1MTJmZDYyYTU0YzNmM2FmYmI1YjY3NjRiNjUzMDUyYTEyOTQ5YzlhIl0sWyI3N2YyMzA5MzZlZTg4Y2JiZDczZGY5MzBkNjQ3MDJlZjg4MWQ4MTFlMGUxNDk4'@; put 'ZTJmMWMxM2ViMWZjMzQ1ZDc0IiwiOTU4ZWY0MmE3ODg2YjY0MDBhMDgyNjZlOWJhMWIzNzg5NmM5NTMzMGQ5NzA3N2NiYmU4ZWIzYzc2NzFjNjBkNiJdLFsiZjJkYWM5OTFjYzRjZTRiOWVhNDQ4ODdlNWM3YzBiY2U1OGM4MDA3NGFiOWQ0ZGJhZWIyODUzMWI3NzM5ZjUzMCIsImUwZGVkYzli'@; put 'M2IyZjhkYWQ0ZGExZjMyZGVjMjUzMWRmOWViNWZiZWIwNTk4ZTRmZDFhMTE3ZGJhNzAzYTNjMzciXSxbIjQ2M2IzZDlmNjYyNjIxZmIxYjRiZThmYmJlMjUyMDEyNWEyMTZjZGZjOWRhZTNkZWJjYmE0ODUwYzY5MGQ0NWIiLCI1ZWQ0MzBkNzhjMjk2YzM1NDMxMTQzMDZkZDg2MjJkN2M2MjJl'@; put 'MjdjOTcwYTFkZTMxY2IzNzdiMDFhZjczMDdlIl0sWyJmMTZmODA0MjQ0ZTQ2ZTJhMDkyMzJkNGFmZjNiNTk5NzZiOThmYWMxNDMyOGEyZDFhMzI0OTZiNDk5OThmMjQ3IiwiY2VkYWJkOWI4MjIwM2Y3ZTEzZDIwNmZjZGY0ZTMzZDkyYTZjNTNjMjZlNWNjZTI2ZDY1Nzk5NjJjNGUzMWRmNiJd'@; put 'LFsiY2FmNzU0MjcyZGM4NDU2M2IwMzUyYjdhMTQzMTFhZjU1ZDI0NTMxNWFjZTI3YzY1MzY5ZTE1ZjcxNTFkNDFkMSIsImNiNDc0NjYwZWYzNWY1ZjJhNDFiNjQzZmE1ZTQ2MDU3NWY0ZmE5Yjc5NjIyMzJhNWMzMmY5MDgzMThhMDQ0NzYiXSxbIjI2MDBjYTRiMjgyY2I5ODZmODVkMGYxNzA5'@; put 'OTc5ZDhiNDRhMDljMDdjYjg2ZDdjMTI0NDk3YmM4NmYwODIxMjAiLCI0MTE5Yjg4NzUzYzE1YmQ2YTY5M2IwM2ZjZGRiYjQ1ZDVhYzZiZTc0YWI1ZjBlZjQ0YjBiZTk0NzVhN2U0YjQwIl0sWyI3NjM1Y2E3MmQ3ZTg0MzJjMzM4ZWM1M2NkMTIyMjBiYzAxYzQ4Njg1ZTI0ZjdkYzhjNjAyYTc3'@; put 'NDY5OThlNDM1IiwiOTFiNjQ5NjA5NDg5ZDYxM2QxZDVlNTkwZjc4ZTZkNzRlY2ZjMDYxZDU3MDQ4YmFkOWU3NmYzMDJjNWI5YzYxIl0sWyI3NTRlMzIzOWYzMjU1NzBjZGJiZjRhODdkZWVlOGE2NmI3ZjJiMzM0NzlkNDY4ZmJjMWE1MDc0M2JmNTZjYzE4IiwiNjczZmI4NmU1YmRhMzBmYjNj'@; put 'ZDBlZDMwNGVhNDlhMDIzZWUzM2QwMTk3YTY5NWQwYzVkOTgwOTNjNTM2NjgzIl0sWyJlM2U2YmQxMDcxYTFlOTZhZmY1Nzg1OWM4MmQ1NzBmMDMzMDgwMDY2MWQxYzk1MmY5ZmUyNjk0NjkxZDliOWU4IiwiNTljOWUwYmJhMzk0ZTc2ZjQwYzBhYTU4Mzc5YTNjYjZhNWEyMjgzOTkzZTkwYzQx'@; put 'NjcwMDJhZjQ5MjBlMzdmNSJdLFsiMTg2YjQ4M2QwNTZhMDMzODI2YWU3M2Q4OGY3MzI5ODVjNGNjYjFmMzJiYTM1ZjRiNGNjNDdmZGNmMDRhYTZlYiIsIjNiOTUyZDMyYzY3Y2Y3N2UyZTE3NDQ2ZTIwNDE4MGFiMjFmYjgwOTA4OTUxMzhiNGE0YTc5N2Y4NmU4MDg4OGIiXSxbImRmOWQ3MGE2'@; put 'Yjk4NzZjZTU0NGM5ODU2MWY0YmU0ZjcyNTQ0MmU2ZDJiNzM3ZDljOTFhODMyMTcyNGNlMDk2M2YiLCI1NWViMmRhZmQ4NGQ2Y2NkNWY4NjJiNzg1ZGMzOWQ0YWIxNTcyMjI3MjBlZjlkYTIxN2I4YzQ1Y2YyYmEyNDE3Il0sWyI1ZWRkNWNjMjNjNTFlODdhNDk3Y2E4MTVkNWRjZTBmOGFiNTI1'@; put 'NTRmODQ5ZWQ4OTk1ZGU2NGM1ZjM0Y2U3MTQzIiwiZWZhZTljOGRiYzE0MTMwNjYxZThjZWMwMzBjODlhZDBjMTNjNjZjMGQxN2EyOTA1Y2RjNzA2YWI3Mzk5YTg2OCJdLFsiMjkwNzk4YzJiNjQ3NjgzMGRhMTJmZTAyMjg3ZTllNzc3YWEzZmJhMWMzNTViMTdhNzIyZDM2MmY4NDYxNGZiYSIs'@; put 'ImUzOGRhNzZkY2Q0NDA2MjE5ODhkMDBiY2Y3OWFmMjVkNWIyOWMwOTRkYjJhMjMxNDZkMDAzYWZkNDE5NDNlN2EiXSxbImFmM2M0MjNhOTVkOWY1YjMwNTQ3NTRlZmExNTBhYzM5Y2QyOTU1MmZlMzYwMjU3MzYyZGZkZWNlZjQwNTNiNDUiLCJmOThhM2ZkODMxZWIyYjc0OWE5M2IwZTZmMzVj'@; put 'ZmI0MGM4Y2Q1YWE2NjdhMTU1ODFiYzJmZWRlZDQ5OGZkOWM2Il0sWyI3NjZkYmIyNGQxMzRlNzQ1Y2NjYWEyOGM5OWJmMjc0OTA2YmI2NmIyNmRjZjk4ZGY4ZDJmZWQ1MGQ4ODQyNDlhIiwiNzQ0YjExNTJlYWNiZTVlMzhkY2M4ODc5ODBkYTM4Yjg5NzU4NGE2NWZhMDZjZWRkMmM5MjRmOTdj'@; put 'YmFjNTk5NiJdLFsiNTlkYmY0NmY4Yzk0NzU5YmEyMTI3N2MzMzc4NGY0MTY0NWY3YjQ0ZjZjNTk2YTU4Y2U5MmU2NjYxOTFhYmUzZSIsImM1MzRhZDQ0MTc1ZmJjMzAwZjRlYTZjZTY0ODMwOWEwNDJjZTczOWE3OTE5Nzk4Y2Q4NWUyMTZjNGEzMDdmNmUiXSxbImYxM2FkYTk1MTAzYzQ1Mzcz'@; put 'MDVlNjkxZTc0ZTlhNGE4ZGQ2NDdlNzExYTk1ZTczY2I2MmRjNjAxOGNmZDg3YjgiLCJlMTM4MTdiNDRlZTE0ZGU2NjNiZjRiYzgwODM0MWYzMjY5NDllMjFhNmE3NWMyNTcwNzc4NDE5YmRhZjU3MzNkIl0sWyI3NzU0YjRmYTBlOGFjZWQwNmQ0MTY3YTJjNTljY2E0Y2RhMTg2OWMwNmViYWRm'@; put 'YjY0ODg1NTAwMTVhODg1MjJjIiwiMzBlOTNlODY0ZTY2OWQ4MjIyNGI5NjdjMzAyMGI4ZmE4ZDFlNGUzNTBiNmNiY2M1MzdhNDhiNTc4NDExNjNhMiJdLFsiOTQ4ZGNhZGY1OTkwZTA0OGFhMzg3NGQ0NmFiZWY5ZDcwMTg1OGY5NWRlODA0MWQyYTY4MjhjOTllMjI2MjUxOSIsImU0OTFhNDI1'@; put 'MzdmNmU1OTdkNWQyOGEzMjI0YjFiYzI1ZGY5MTU0ZWZiZDJlZjFkMmNiYmEyY2FlNTM0N2Q1N2UiXSxbIjc5NjI0MTQ0NTBjNzZjMTY4OWM3YjQ4ZjgyMDJlYzM3ZmIyMjRjZjVhYzBiZmExNTcwMzI4YThhM2Q3Yzc3YWIiLCIxMDBiNjEwZWM0ZmZiNDc2MGQ1YzFmYzEzM2VmNmY2YjEyNTA3'@; put 'YTA1MWYwNGFjNTc2MGFmYTViMjlkYjgzNDM3Il0sWyIzNTE0MDg3ODM0OTY0YjU0YjE1YjE2MDY0NGQ5MTU0ODVhMTY5NzcyMjViODg0N2JiMGRkMDg1MTM3ZWM0N2NhIiwiZWYwYWZiYjIwNTYyMDU0NDhlMTY1MmM0OGU4MTI3ZmM2MDM5ZTc3YzE1YzIzNzhiN2U3ZDE1YTBkZTI5MzMxMSJd'@; put 'LFsiZDNjYzMwYWQ2YjQ4M2U0YmM3OWNlMmM5ZGQ4YmM1NDk5M2U5NDdlYjhkZjc4N2I0NDI5NDNkM2Y3YjUyN2VhZiIsIjhiMzc4YTIyZDgyNzI3OGQ4OWM1ZTliZThmOTUwOGFlM2MyYWQ0NjI5MDM1ODYzMGFmYjM0ZGIwNGVlZGUwYTQiXSxbIjE2MjRkODQ3ODA3MzI4NjBjZTFjNzhmY2Jm'@; put 'ZWZlMDhiMmIyOTgyM2RiOTEzZjY0OTM5NzViYTBmZjQ4NDc2MTAiLCI2ODY1MWNmOWI2ZGE5MDNlMDkxNDQ0OGM2Y2Q5ZDRjYTg5Njg3OGY1MjgyYmU0YzhjYzA2ZTJhNDA0MDc4NTc1Il0sWyI3MzNjZTgwZGE5NTVhOGEyNjkwMmM5NTYzM2U2MmE5ODUxOTI0NzRiNWFmMjA3ZGE2ZGY3YjRm'@; put 'ZDVmYzYxY2Q0IiwiZjU0MzVhMmJkMmJhZGY3ZDQ4NWE0ZDhiOGRiOWZjY2UzZTFlZjhlMDIwMWU0NTc4YzU0NjczYmMxZGM1ZWExZCJdLFsiMTVkOTQ0MTI1NDk0NTA2NGNmMWExYzMzYmJkM2I0OWY4OTY2YzUwOTIxNzFlNjk5ZWYyNThkZmFiODFjMDQ1YyIsImQ1NmViMzBiNjk0NjNlNzIz'@; put 'NGY1MTM3YjczYjg0MTc3NDM0ODAwYmFjZWJmYzY4NWZjMzdiYmU5ZWZlNDA3MGQiXSxbImExZDBmY2YyZWM5ZGU2NzViNjEyMTM2ZTVjZTcwZDI3MWMyMTQxN2M5ZDJiOGFhYWFjMTM4NTk5ZDA3MTc5NDAiLCJlZGQ3N2Y1MGJjYjVhM2NhYjJlOTA3MzczMDk2NjdmMjY0MTQ2MmE1NDA3MGYz'@; put 'ZDUxOTIxMmQzOWMxOTdhNjI5Il0sWyJlMjJmYmUxNWMwYWY4Y2NjNTc4MGMwNzM1Zjg0ZGJlOWE3OTBiYWRlZTgyNDVjMDZjN2NhMzczMzFjYjM2OTgwIiwiYTg1NWJhYmFkNWNkNjBjODhiNDMwYTY5ZjUzYTFhN2EzODI4OTE1NDk2NDc5OWJlNDNkMDZkNzdkMzFkYTA2Il0sWyIzMTEwOTFk'@; put 'ZDk4NjBlOGUyMGVlMTM0NzNjMTE1NWY1ZjY5NjM1ZTM5NDcwNGVhYTc0MDA5NDUyMjQ2Y2ZhOWIzIiwiNjZkYjY1NmY4N2QxZjA0ZmZmZDFmMDQ3ODhjMDY4MzA4NzFlYzVhNjRmZWVlNjg1YmQ4MGYwYjEyODZkODM3NCJdLFsiMzRjMWZkMDRkMzAxYmU4OWIzMWMwNDQyZDNlNmFjMjQ4ODM5'@; put 'MjhiNDVhOTM0MDc4MTg2N2Q0MjMyZWMyZGJkZiIsIjk0MTQ2ODVlOTdiMWI1OTU0YmQ0NmY3MzAxNzQxMzZkNTdmMWNlZWI0ODc0NDNkYzUzMjE4NTdiYTczYWJlZSJdLFsiZjIxOWVhNWQ2YjU0NzAxYzFjMTRkZTViNTU3ZWI0MmE4ZDEzZjNhYmJjZDA4YWZmY2MyYTVlNmIwNDliOGQ2MyIs'@; put 'IjRjYjk1OTU3ZTgzZDQwYjBmNzNhZjQ1NDRjY2NmNmIxZjRiMDhkM2MwN2IyN2ZiOGQ4YzI5NjJhNDAwNzY2ZDEiXSxbImQ3Yjg3NDBmNzRhOGZiYWFiMWY2ODNkYjhmNDVkZTI2NTQzYTU0OTBiY2E2MjcwODcyMzY5MTI0NjlhMGI0NDgiLCJmYTc3OTY4MTI4ZDljOTJlZTEwMTBmMzM3YWQ0'@; put 'NzE3ZWZmMTVkYjVlZDNjMDQ5YjM0MTFlMDMxNWVhYTQ1OTNiIl0sWyIzMmQzMWMyMjJmOGY2ZjBlZjg2ZjdjOThkM2EzMzM1ZWFkNWJjZDMyYWJkZDk0Mjg5ZmU0ZDMwOTFhYTgyNGJmIiwiNWYzMDMyZjU4OTIxNTZlMzljY2QzZDc5MTViOWUxZGEyZTZkYWM5ZTZmMjZlOTYxMTE4ZDE0Yjg0'@; put 'NjJlMTY2MSJdLFsiNzQ2MWYzNzE5MTRhYjMyNjcxMDQ1YTE1NWQ5ODMxZWE4NzkzZDc3Y2Q1OTU5MmM0MzQwZjg2Y2JjMTgzNDdiNSIsIjhlYzBiYTIzOGI5NmJlYzBjYmRkZGNhZTBhYTQ0MjU0MmVlZTFmZjUwYzk4NmVhNmIzOTg0N2IzY2MwOTJmZjYiXSxbImVlMDc5YWRiMWRmMTg2MDA3'@; put 'NDM1NmEyNWFhMzgyMDZhNmQ3MTZiMmMzZTY3NDUzZDI4NzY5OGJhZDdiMmIyZDYiLCI4ZGMyNDEyYWFmZTNiZTVjNGM1ZjM3ZTBlY2M1ZjlmNmE0NDY5ODlhZjA0YzRlMjVlYmFhYzQ3OWVjMWM4YzFlIl0sWyIxNmVjOTNlNDQ3ZWM4M2YwNDY3YjE4MzAyZWU2MjBmN2U2NWRlMzMxODc0Yzlk'@; put 'YzcyYmZkODYxNmJhOWRhNmI1IiwiNWU0NjMxMTUwZTYyZmI0MGQwZThjMmE3Y2E1ODA0YTM5ZDU4MTg2YTUwZTQ5NzEzOTYyNjc3OGUyNWIwNjc0ZCJdLFsiZWFhNWY5ODBjMjQ1ZjZmMDM4OTc4MjkwYWZhNzBiNmJkODg1NTg5N2Y5OGI2YWE0ODViOTYwNjVkNTM3YmQ5OSIsImY2NWY1ZDNl'@; put 'MjkyYzJlMDgxOWE1MjgzOTFjOTk0NjI0ZDc4NDg2OWQ3ZTZlYTY3ZmIxODA0MTAyNGVkYzA3ZGMiXSxbIjc4Yzk0MDc1NDRhYzEzMjY5MmVlMTkxMGEwMjQzOTk1OGFlMDQ4NzcxNTEzNDJlYTk2YzRiNmIzNWE0OWY1MSIsImYzZTAzMTkxNjllYjliODVkNTQwNDc5NTUzOWE1ZTY4ZmExZmJk'@; put 'NTgzYzA2NGQyNDYyYjY3NWYxOTRhM2RkYjQiXSxbIjQ5NGY0YmUyMTlhMWE3NzAxNmRjZDgzODQzMWFlYTAwMDFjZGM4YWU3YTZmYzY4ODcyNjU3OGQ5NzAyODU3YTUiLCI0MjI0MmE5NjkyODNhNWYzMzliYTdmMDc1ZTM2YmEyYWY5MjVjZTMwZDc2N2VkNmU1NWY0YjAzMTg4MGQ1NjJjIl0s'@; put 'WyJhNTk4YTgwMzBkYTZkODZjNmJjN2YyZjUxNDRlYTU0OWQyODIxMWVhNThmYWE3MGViZjRjMWU2NjVjMWZlOWI1IiwiMjA0YjVkNmY4NDgyMmMzMDdlNGI0YTcxNDA3MzdhZWMyM2ZjNjNiNjViMzVmODZhMTAwMjZkYmQyZDg2NGU2YiJdLFsiYzQxOTE2MzY1YWJiMmI1ZDA5MTkyZjVmMmRi'@; put 'ZWFmZWMyMDhmMDIwZjEyNTcwYTE4NGRiYWRjM2U1ODU5NTk5NyIsIjRmMTQzNTFkMDA4N2VmYTQ5ZDI0NWIzMjg5ODQ5ODlkNWNhZjk0NTBmMzRiZmMwZWQxNmU5NmI1OGZhOTkxMyJdLFsiODQxZDYwNjNhNTg2ZmE0NzVhNzI0NjA0ZGEwM2JjNWI5MmEyZTBkMmUwYTM2YWNmZTRjNzNhNTUx'@; put 'NDc0Mjg4MSIsIjczODY3ZjU5YzA2NTllODE5MDRmOWExYzc1NDM2OThlNjI1NjJkNjc0NGMxNjljZTdhMzZkZTAxYThkNjE1NCJdLFsiNWU5NWJiMzk5YTY5NzFkMzc2MDI2OTQ3Zjg5YmRlMmYyODJiMzM4MTA5MjhiZTRkZWQxMTJhYzRkNzBlMjBkNSIsIjM5ZjIzZjM2NjgwOTA4NWJlZWJm'@; put 'YzcxMTgxMzEzNzc1YTk5YzlhZWQ3ZDhiYTM4YjE2MTM4NGM3NDYwMTI4NjUiXSxbIjM2ZTQ2NDFhNTM5NDhmZDQ3NmMzOWY4YTk5ZmQ5NzRlNWVjMDc1NjRiNTMxNWQ4YmY5OTQ3MWJjYTBlZjJmNjYiLCJkMjQyNGIxYjFhYmU0ZWI4MTY0MjI3YjA4NWM5YWE5NDU2ZWExMzQ5M2ZkNTYzZTA2'@; put 'ZmQ1MWNmNTY5NGM3OGZjIl0sWyIzMzY1ODFlYTdiZmJiYjI5MGMxOTFhMmY1MDdhNDFjZjU2NDM4NDIxNzBlOTE0ZmFlYWIyN2MyYzU3OWY3MjYiLCJlYWQxMjE2ODU5NWZlMWJlOTkyNTIxMjliNmU1NmIzMzkxZjdhYjE0MTBjZDFlMGVmM2RjZGNhYmQyZmRhMjI0Il0sWyI4YWI4OTgxNmRh'@; put 'ZGZkNmI2YTFmMjYzNGZjZjAwZWM4NDAzNzgxMDI1ZWQ2ODkwYzQ4NDk3NDI3MDZiZDQzZWRlIiwiNmZkY2VmMDlmMmY2ZDBhMDQ0ZTY1NGFlZjYyNDEzNmY1MDNkNDU5YzNlODk4NDU4NThhNDdhOTEyOWNkZDI0ZSJdLFsiMWUzM2YxYTc0NmM5YzU3NzgxMzMzNDRkOTI5OWZjYWEyMGIwOTM4'@; put 'ZThhY2ZmMjU0NGJiNDAyODRiOGM1ZmI5NCIsIjYwNjYwMjU3ZGQxMWIzYWE5YzhlZDYxOGQyNGVkZmYyMzA2ZDMyMGYxZDAzMDEwZTMzYTdkMjA1N2YzYjNiNiJdLFsiODViN2MxZGNiM2NlYzFiN2VlN2YzMGRlZDc5ZGQyMGEwZWQxZjRjYzE4Y2JjZmNmYTQxMDM2MWZkOGYwOGYzMSIsIjNk'@; put 'OThhOWNkZDAyNmRkNDNmMzkwNDhmMjVhODg0N2Y0ZmNhZmFkMTg5NWQ3YTYzM2M2ZmVkM2MzNWU5OTk1MTEiXSxbIjI5ZGY5ZmJkOGQ5ZTQ2NTA5Mjc1ZjRiMTI1ZDZkNDVkN2ZiZTlhM2I4NzhhN2FmODcyYTI4MDA2NjFhYzVmNTEiLCJiNGM0ZmU5OWM3NzVhNjA2ZTJkODg2MjE3OTEzOWZm'@; put 'ZGE2MWRjODYxYzAxOWU1NWNkMjg3NmViMmEyN2Q4NGIiXSxbImEwYjFjYWUwNmIwYTg0N2EzZmVhNmU2NzFhYWY4YWRmZGZlNThjYTJmNzY4MTA1YzgwODJiMmU0NDlmY2UyNTIiLCJhZTQzNDEwMmVkZGUwOTU4ZWM0YjE5ZDkxN2E2YTI4ZTZiNzJkYTE4MzRhZmYwZTY1MGYwNDk1MDNhMjk2'@; put 'Y2YyIl0sWyI0ZThjZWFmYjliM2U5YTEzNmRjN2ZmNjdlODQwMjk1YjQ5OWRmYjNiMjEzM2U0YmExMTNmMmU0YzBlMTIxZTUiLCJjZjIxNzQxMThjOGI2ZDdhNGI0OGY2ZDUzNGNlNWM3OTQyMmMwODZhNjM0NjA1MDJiODI3Y2U2MmEzMjY2ODNjIl0sWyJkMjRhNDRlMDQ3ZTE5YjZmNWFmYjgx'@; put 'YzdjYTJmNjkwODBhNTA3NjY4OWEwMTA5MTlmNDI3MjVjMmI3ODlhMzNiIiwiNmZiOGQ1NTkxYjQ2NmY4ZmM2M2RiNTBmMWMwZjFjNjkwMTNmOTk2ODg3YjgyNDRkMmNkZWM0MTdhZmVhOGZhMyJdLFsiZWEwMTYwNmE3YTZjOWNkZDI0OWZkZmNmYWNiOTk1ODQwMDFlZGQyOGFiYmFiNzdiNTEw'@; put 'NGU5OGU4ZTNiMzVkNCIsIjMyMmFmNDkwOGM3MzEyYjBjZmJmZTM2OWY3YTdiM2NkYjdkNDQ5NGJjMjgyMzcwMGNmZDY1MjE4OGEzZWE5OGQiXSxbImFmOGFkZGJmMmI2NjFjOGE2YzYzMjg2NTVlYjk2NjUxMjUyMDA3ZDhjNWVhMzFiZTRhZDE5NmRlOGNlMjEzMWYiLCI2NzQ5ZTY3YzAyOWI4'@; put 'NWY1MmEwMzRlYWZkMDk2ODM2YjI1MjA4MTg2ODBlMjZhYzhmM2RmYmNkYjcxNzQ5NzAwIl0sWyJlM2FlMTk3NDU2NmNhMDZjYzUxNmQ0N2UwZmIxNjVhNjc0YTNkYWJjZmNhMTVlNzIyZjBlMzQ1MGY0NTg4OSIsIjJhZWFiZTdlNDUzMTUxMDExNjIxN2YwN2JmNGQwNzMwMGRlOTdlNDg3NGY4'@; put 'MWY1MzM0MjBhNzJlZWIwYmQ2YTQiXSxbIjU5MWVlMzU1MzEzZDk5NzIxY2Y2OTkzZmZlZDFlM2UzMDE5OTNmZjNlZDI1ODgwMjA3NWVhOGNlZDM5N2UyNDYiLCJiMGVhNTU4YTExM2MzMGJlYTYwZmM0Nzc1NDYwYzc5MDFmZjBiMDUzZDI1Y2EyYmRlZWU5OGYxYTRiZTVkMTk2Il0sWyIxMTM5'@; put 'NmQ1NWZkYTU0YzQ5ZjE5YWE5NzMxOGQ4ZGE2MWZhODU4NGU0N2IwODQ5NDUwNzdjZjAzMjU1YjUyOTg0IiwiOTk4Yzc0YThjZDQ1YWMwMTI4OWQ1ODMzYTdiZWI0NzQ0ZmY1MzZiMDFiMjU3YmU0YzU3NjdiZWE5M2VhNTdhNCJdLFsiM2M1ZDJhMWJhMzljNWExNzkwMDAwNzM4YzllMGM0MGI4'@; put 'ZGNkZmQ1NDY4NzU0YjY0MDU1NDAxNTdlMDE3YWE3YSIsImIyMjg0Mjc5OTk1YTM0ZTJmOWQ0ZGU3Mzk2ZmMxOGI4MGY5YjhiOWZkZDI3MGY2NjYxZjc5Y2E0YzgxYmQyNTciXSxbImNjODcwNGI4YTYwYTBkZWZhM2E5OWE3Mjk5ZjJlOWMzZmJjMzk1YWZiMDRhYzA3ODQyNWVmOGExNzkzY2Mw'@; put 'MzAiLCJiZGQ0NjAzOWZlZWQxNzg4MWQxZTA4NjJkYjM0N2Y4Y2YzOTViNzRmYzRiY2RjNGU5NDBiNzRlM2FjMWYxYjEzIl0sWyJjNTMzZTRmN2VhODU1NWFhY2Q5Nzc3YWM1Y2FkMjliOTdkZDRkZWZjY2M1M2VlN2VhMjA0MTE5YjI4ODliMTk3IiwiNmYwYTI1NmJjNWVmZGY0MjlhMmZiNjI0'@; put 'MmYxYTQzYTJkOWI5MjViYjRhNGIzYTI2YmI4ZTBmNDVlYjU5NjA5NiJdLFsiYzE0ZjhmMmNjYjI3ZDZmMTA5ZjZkMDhkMDNjYzk2YTY5YmE4YzM0ZWVjMDdiYmNmNTY2ZDQ4ZTMzZGE2NTkzIiwiYzM1OWQ2OTIzYmIzOThmN2ZkNDQ3M2UxNmZlMWMyODQ3NWI3NDBkZDA5ODA3NWU2YzBlODY0'@; put 'OTExM2RjM2EzOCJdLFsiYTZjYmMzMDQ2YmM2YTQ1MGJhYzI0Nzg5ZmExNzExNWE0Yzk3MzllZDc1ZjhmMjFjZTQ0MWY3MmUwYjkwZTZlZiIsIjIxYWU3ZjQ2ODBlODg5YmIxMzA2MTllMmMwZjk1YTM2MGNlYjU3M2M3MDYwMzEzOTg2MmFmZDYxN2ZhOWI5ZiJdLFsiMzQ3ZDZkOWEwMmM0ODky'@; put 'N2ViZmI4NmMxMzU5YjFjYWYxMzBhM2MwMjY3ZDExY2U2MzQ0YjM5Zjk5ZDQzY2MzOCIsIjYwZWE3ZjYxYTM1MzUyNGQxYzk4N2Y2ZWNlYzkyZjA4NmQ1NjVhYjY4Nzg3MGNiMTI2ODlmZjFlMzFjNzQ0NDgiXSxbImRhNjU0NWQyMTgxZGI4ZDk4M2Y3ZGNiMzc1ZWY1ODY2ZDQ3YzY3YjFiZjMx'@; put 'YzhjZjg1NWVmNzQzN2I3MjY1NmEiLCI0OWI5NjcxNWFiNjg3OGE3OWU3OGYwN2NlNTY4MGM1ZDY2NzMwNTFiNDkzNWJkODk3ZmVhODI0Yjc3ZGMyMDhhIl0sWyJjNDA3NDdjYzlkMDEyY2IxYTEzYjgxNDgzMDljNmRlN2VjMjVkNjk0NWQ2NTcxNDZiOWQ1OTk0YjhmZWIxMTExIiwiNWNhNTYw'@; put 'NzUzYmUyYTEyZmM2ZGU2Y2FmMmNiNDg5NTY1ZGI5MzYxNTZiOTUxNGUxYmI1ZTgzMDM3ZTBmYTJkNCJdLFsiNGU0MmM4ZWM4MmM5OTc5OGNjZjNhNjEwYmU4NzBlNzgzMzhjN2Y3MTMzNDhiZDM0YzgyMDNlZjQwMzdmMzUwMiIsIjc1NzFkNzRlZTVlMGZiOTJhN2E4YjMzYTA3NzgzMzQxYTU0'@; put 'OTIxNDRjYzU0YmNjNDBhOTQ0NzM2OTM2MDY0MzciXSxbIjM3NzVhYjcwODliYzZhZjgyM2FiYTJlMWFmNzBiMjM2ZDI1MWNhZGIwYzg2NzQzMjg3NTIyYTFiM2IwZGVkZWEiLCJiZTUyZDEwN2JjZmEwOWQ4YmNiOTczNmE4MjhjZmE3ZmFjOGRiMTdiZjdhNzZhMmM0MmFkOTYxNDA5MDE4Y2Y3'@; put 'Il0sWyJjZWUzMWNiZjdlMzRlYzM3OWQ5NGZiODE0ZDNkNzc1YWQ5NTQ1OTVkMTMxNGJhODg0Njk1OWUzZTgyZjc0ZTI2IiwiOGZkNjRhMTRjMDZiNTg5YzI2Yjk0N2FlMmJjZjZiZmEwMTQ5ZWYwYmUxNGVkNGQ4MGY0NDhhMDFjNDNiMWM2ZCJdLFsiYjRmOWVhZWEwOWI2OTE3NjE5ZjZlYTZh'@; put 'NGViNTQ2NGVmZGRiNThmZDQ1YjFlYmVmY2RjMWEwMWQwOGI0Nzk4NiIsIjM5ZTVjOTkyNWI1YTU0YjA3NDMzYTRmMThjNjE3MjZmOGJiMTMxYzAxMmNhNTQyZWIyNGE4YWMwNzIwMDY4MmEiXSxbImQ0MjYzZGZjM2QyZGY5MjNhMDE3OWE0ODk2NmQzMGNlODRlMjUxNWFmYzNkY2NjMWI3Nzkw'@; put 'Nzc5MmViY2M2MGUiLCI2MmRmYWYwN2EwZjc4ZmViMzBlMzBkNjI5NTg1M2NlMTg5ZTEyNzc2MGFkNmNmN2ZhZTE2NGUxMjJhMjA4ZDU0Il0sWyI0ODQ1NzUyNDgyMGZhNjVhNGY4ZDM1ZWI2OTMwODU3YzAwMzJhY2MwYTRhMmRlNDIyMjMzZWVkYTg5NzYxMmM0IiwiMjVhNzQ4YWIzNjc5Nzlk'@; put 'OTg3MzNjMzhhMWZhMWMyZTdkYzZjYzA3ZGIyZDYwYTlhZTdhNzZhYWE0OWJkMGY3NyJdLFsiZGZlZWVmMTg4MTEwMWYyY2IxMTY0NGYzYTJhZmRmYzIwNDVlMTk5MTkxNTI5MjNmMzY3YTE3NjdjMTFjY2VkYSIsImVjZmI3MDU2Y2YxZGUwNDJmOTQyMGJhYjM5Njc5M2MwYzM5MGJkZTc0YjRi'@; put 'YmRmZjE2YTgzYWUwOWE5YTc1MTciXSxbIjZkN2VmNmIxNzU0M2Y4MzczYzU3M2Y0NGUxZjM4OTgzNWQ4OWJjYmM2MDYyY2VkMzZjODJkZjgzYjhmYWU4NTkiLCJjZDQ1MGVjMzM1NDM4OTg2ZGZlZmExMGM1N2ZlYTliY2M1MjFhMDk1OWIyZDgwYmJmNzRiMTkwZGNhNzEyZDEwIl0sWyJlNzU2'@; put 'MDVkNTkxMDJhNWEyNjg0NTAwZDNiOTkxZjJlM2YzYzg4YjkzMjI1NTQ3MDM1YWYyNWFmNjZlMDQ1NDFmIiwiZjVjNTQ3NTRhOGY3MWVlNTQwYjliNDg3Mjg0NzNlMzE0ZjcyOWFjNTMwOGIwNjkzODM2MDk5MGUyYmZhZDEyNSJdLFsiZWI5ODY2MGY0YzRkZmFhMDZhMmJlNDUzZDUwMjBiYzk5'@; put 'YTBjMmU2MGFiZTM4ODQ1N2RkNDNmZWZiMWVkNjIwYyIsIjZjYjlhODg3NmQ5Y2I4NTIwNjA5YWYzYWRkMjZjZDIwYTBhN2NkOGE5NDExMTMxY2U4NWY0NDEwMDA5OTIyM2UiXSxbIjEzZTg3YjAyN2Q4NTE0ZDM1OTM5ZjJlNjg5MmIxOTkyMjE1NDU5Njk0MTg4ODMzNmRjMzU2M2UzYjhkYmE5'@; put 'NDIiLCJmZWY1YTNjNjgwNTlhNmRlYzVkNjI0MTE0YmYxZTkxYWFjMmI5ZGE1NjhkNmFiZWIyNTcwZDU1NjQ2YjhhZGYxIl0sWyJlZTE2MzAyNmU5ZmQ2ZmUwMTdjMzhmMDZhNWJlNmZjMTI1NDI0YjM3MWNlMjcwOGU3YmY0NDkxNjkxZTU3NjRhIiwiMWFjYjI1MGYyNTVkZDYxYzQzZDk0Y2Nj'@; put 'NjcwZDBmNThmNDlhZTNmYTE1Yjk2NjIzZTU0MzBkYTBhZDZjNjJiMiJdLFsiYjI2OGY1ZWY5YWQ1MWU0ZDc4ZGUzYTc1MGMyZGM4OWIxZTYyNmQ0MzUwNTg2Nzk5OTkzMmU1ZGIzM2FmM2Q4MCIsIjVmMzEwZDRiM2M5OWI5ZWJiMTlmNzdkNDFjMWRlZTAxOGNmMGQzNGZkNDE5MTYxNDAwM2U5'@; put 'NDVhMTIxNmU0MjMiXSxbImZmMDdmMzExOGE5ZGYwMzVlOWZhZDg1ZWI2YzdiZmU0MmIwMmYwMWNhOTljZWVhM2JmN2ZmZGJhOTNjNDc1MGQiLCI0MzgxMzZkNjAzZTg1OGEzYTVjNDQwYzM4ZWNjYmFkZGMxZDI5NDIxMTRlMmVkZGQ0NzQwZDA5OGNlZDFmMGQ4Il0sWyI4ZDhiOTg1NWM3YzA1'@; put 'MmEzNDE0NmZkMjBmZmI2NThiZWE0YjlmNjllMGQ4MjVlYmVjMTZlOGMzY2UyYjUyNmExIiwiY2RiNTU5ZWVkYzJkNzlmOTI2YmFmNDRmYjg0ZWE0ZDQ0YmNmNTBmZWU1MWQ3Y2ViMzBlMmU3ZjQ2MzAzNjc1OCJdLFsiNTJkYjBiNTM4NGRmYmYwNWJmYTlkNDcyZDdhZTI2ZGZlNGI4NTFjZWNh'@; put 'OTFiMWViYTU0MjYzMTgwZGEzMmI2MyIsImMzYjk5N2QwNTBlZTVkNDIzZWJhZjY2YTZkYjlmNTdiMzE4MGM5MDI4NzU2NzlkZTkyNGI2OWQ4NGE3YjM3NSJdLFsiZTYyZjk0OTBkM2Q1MWRhNjM5NWVmZDI0ZTgwOTE5Y2M3ZDBmMjljM2YzZmE0OGM2ZmZmNTQzYmVjYmQ0MzM1MiIsIjZkODlh'@; put 'ZDdiYTQ4NzZiMGIyMmMyY2EyODBjNjgyODYyZjM0MmM4NTkxZjFkYWY1MTcwZTA3YmZkOWNjYWZhN2QiXSxbIjdmMzBlYTI0NzZiMzk5YjQ5NTc1MDljODhmNzdkMDE5MWFmYTJmZjVjYjdiMTRmZDZkOGU3ZDY1YWFhYjExOTMiLCJjYTVlZjdkNGIyMzFjOTRjM2IxNTM4OWE1ZjYzMTFlOWRh'@; put 'ZmY3YmI2N2IxMDNlOTg4MGVmNGJmZjYzN2FjYWVjIl0sWyI1MDk4ZmYxZTFkOWYxNGZiNDZhMjEwZmFkYTZjOTAzZmVmMGZiN2I0YTFkZDFkOWFjNjBhMDM2MTgwMGI3YTAwIiwiOTczMTE0MWQ4MWZjOGY4MDg0ZDM3YzZlNzU0MjAwNmIzZWUxYjQwZDYwZGZlNTM2MmE1YjEzMmZkMTdkZGMw'@; put 'Il0sWyIzMmI3OGM3ZGU5ZWU1MTJhNzI4OTViZTZiOWNiZWZhNmUyZjNjNGNjY2U0NDVjOTZiOWYyYzgxZTI3NzhhZDU4IiwiZWUxODQ5ZjUxM2RmNzFlMzJlZmMzODk2ZWUyODI2MGM3M2JiODA1NDdhZTIyNzViYTQ5NzIzNzc5NGM4NzUzYyJdLFsiZTJjYjc0ZmRkYzhlOWZiY2QwNzZlZWYy'@; put 'YTdjNzJiMGNlMzdkNTBmMDgyNjlkZmMwNzRiNTgxNTUwNTQ3YTRmNyIsImQzYWEyZWQ3MWM5ZGQyMjQ3YTYyZGYwNjI3MzZlYjBiYWRkZWE5ZTM2MTIyZDJiZTg2NDFhYmNiMDA1Y2M0YTQiXSxbIjg0Mzg0NDc1NjZkNGQ3YmVkYWRjMjk5NDk2YWIzNTc0MjYwMDlhMzVmMjM1Y2IxNDFiZTBk'@; put 'OTljZDEwYWUzYTgiLCJjNGUxMDIwOTE2OTgwYTRkYTVkMDFhYzVlNmFkMzMwNzM0ZWYwZDc5MDY2MzFjNGYyMzkwNDI2YjJlZGQ3OTFmIl0sWyI0MTYyZDQ4OGI4OTQwMjAzOWI1ODRjNmZjNmMzMDg4NzA1ODdkOWM0NmY2NjBiODc4YWI2NWM4MmM3MTFkNjdlIiwiNjcxNjNlOTAzMjM2Mjg5'@; put 'Zjc3NmYyMmMyNWZiOGEzYWZjMTczMmYyYjg0YjRlOTVkYmRhNDdhZTVhMDg1MjY0OSJdLFsiM2ZhZDNmYTg0Y2FmMGYzNGYwZjg5YmZkMmRjZjU0ZmMxNzVkNzY3YWVjM2U1MDY4NGYzYmE0YTRiZjVmNjgzZCIsImNkMWJjN2NiNmNjNDA3YmIyZjBjYTY0N2M3MThhNzMwY2Y3MTg3MmU3ZDBk'@; put 'MmE1M2ZhMjBlZmNkZmU2MTgyNiJdLFsiNjc0ZjI2MDBhMzAwN2EwMDU2OGMxYTdjZTA1ZDA4MTZjMWZiODRiZjEzNzA3OThmMWM2OTUzMmZhZWIxYTg2YiIsIjI5OWQyMWY5NDEzZjMzYjNlZGY0M2IyNTcwMDQ1ODBiNzBkYjU3ZGEwYjE4MjI1OWUwOWVlY2M2OWUwZDM4YTUiXSxbImQzMmY0'@; put 'ZGE1NGFkZTc0YWJiODFiODE1YWQxZmIzYjI2M2Q4MmQ2YzY5MjcxNGJjZmY4N2QyOWJkNWVlOWYwOGYiLCJmOTQyOWU3MzhiOGU1M2I5NjhlOTkwMTZjMDU5NzA3NzgyZTE0ZjQ1MzUzNTlkNTgyZmM0MTY5MTBiM2VlYTg3Il0sWyIzMGU0ZTY3MDQzNTM4NTU1NmU1OTM2NTcxMzU4NDVkMzZm'@; put 'YmI2OTMxZjcyYjA4Y2IxZWQ5NTRmMWUzY2UzZmY2IiwiNDYyZjliY2U2MTk4OTg2Mzg0OTkzNTAxMTNiYmM5YjEwYTg3OGQzNWRhNzA3NDBkYzY5NWE1NTllYjg4ZGI3YiJdLFsiYmUyMDYyMDAzYzUxY2MzMDA0NjgyOTA0MzMwZTRkZWU3ZjNkY2QxMGIwMWU1ODBiZjE5NzFiMDRkNGNhZDI5'@; put 'NyIsIjYyMTg4YmM0OWQ2MWU1NDI4NTczZDQ4YTc0ZTFjNjU1YjFjNjEwOTA5MDU2ODJhMGQ1NTU4ZWQ3MmRjY2I5YmMiXSxbIjkzMTQ0NDIzYWNlMzQ1MWVkMjllMGZiOWFjMmFmMjExY2I2ZTg0YTYwMWRmNTk5M2M0MTk4NTlmZmY1ZGYwNGEiLCI3YzEwZGZiMTY0YzM0MjVmNWM3MWEzZjlk'@; put 'Nzk5MjAzOGYxMDY1MjI0ZjcyYmI5ZDFkOTAyYTZkMTMwMzdiNDdjIl0sWyJiMDE1ZjgwNDRmNWZjYmRjZjIxY2EyNmQ2YzM0ZmI4MTk3ODI5MjA1YzdiN2QyYTdjYjY2NDE4YzE1N2IxMTJjIiwiYWI4YzFlMDg2ZDA0ZTgxMzc0NGE2NTViMmRmOGQ1ZjgzYjNjZGM2ZmFhMzA4OGMxZDNhZWEx'@; put 'NDU0ZTNhMWQ1ZiJdLFsiZDVlOWUxZGE2NDlkOTdkODllNDg2ODExN2E0NjVhM2E0ZjhhMThkZTU3YTE0MGQzNmIzZjJhZjM0MWEyMWI1MiIsIjRjYjA0NDM3ZjM5MWVkNzMxMTFhMTNjYzFkNGRkMGRiMTY5MzQ2NWMyMjQwNDgwZDg5NTVlODU5MmYyNzQ0N2EiXSxbImQzYWU0MTA0N2RkN2Nh'@; put 'MDY1ZGJmOGVkNzdiOTkyNDM5OTgzMDA1Y2Q3MmUxNmQ2Zjk5NmE1MzE2ZDM2OTY2YmIiLCJiZDFhZWIyMWFkMjJlYmIyMmExMGYwMzAzNDE3YzZkOTY0ZjhjZGQ3ZGYwYWNhNjE0YjEwZGMxNGQxMjVhYzQ2Il0sWyI0NjNlMjc2M2Q4ODVmOTU4ZmM2NmNkZDIyODAwZjBhNDg3MTk3ZDBhODJl'@; put 'Mzc3YjQ5ZjgwYWY4N2M4OTdiMDY1IiwiYmZlZmFjZGIwZTVkMGZkN2RmM2EzMTFhOTRkZTA2MmIyNmI4MGM2MWZiYzk3NTA4Yjc5OTkyNjcxZWY3Y2E3ZiJdLFsiNzk4NWZkZmQxMjdjMDU2N2M2ZjUzZWMxYmI2M2VjMzE1OGU1OTdjNDBiZmU3NDdjODNjZGRmYzkxMDY0MTkxNyIsIjYwM2Mx'@; put 'MmRhZjNkOTg2MmVmMmIyNWZlMWRlMjg5YWVkMjRlZDI5MWUwZWM2NzA4NzAzYTViZDU2N2YzMmVkMDMiXSxbIjc0YTFhZDZiNWY3NmUzOWRiMmRkMjQ5NDEwZWFjN2Y5OWU3NGM1OWNiODNkMmQwZWQ1ZmYxNTQzZGE3NzAzZTkiLCJjYzYxNTdlZjE4YzljNjNjZDYxOTNkODM2MzFiYmVhMDA5'@; put 'M2UwOTY4OTQyZThjMzNkNTczN2ZkNzkwZTBkYjA4Il0sWyIzMDY4MmE1MDcwMzM3NWY2MDJkNDE2NjY0YmExOWI3ZmM5YmFiNDJjNzI3NDc0NjNhNzFkMDg5NmIyMmY2ZGEzIiwiNTUzZTA0ZjZiMDE4YjRmYTZjOGYzOWU3ZjMxMWQzMTc2MjkwZDBlMGYxOWNhNzNmMTc3MTRkOTk3N2EyMmZm'@; put 'OCJdLFsiOWUyMTU4ZjBkN2MwZDVmMjZjMzc5MWVmZWZhNzk1OTc2NTRlN2EyYjI0NjRmNTJiMWVlNmMxMzQ3NzY5ZWY1NyIsIjcxMmZjZGQxYjkwNTNmMDkwMDNhMzQ4MWZhNzc2MmU5ZmZkN2M4ZWYzNWEzODUwOWUyZmJmMjYyOTAwODM3MyJdLFsiMTc2ZTI2OTg5YTQzYzljZmViYTQwMjlj'@; put 'MjAyNTM4YzI4MTcyZTU2NmUzYzRmY2U3MzIyODU3ZjNiZTMyN2Q2NiIsImVkOGNjOWQwNGIyOWViODc3ZDI3MGI0ODc4ZGM0M2MxOWFlZmQzMWY0ZWVlMDllZTdiNDc4MzRjMWZhNGIxYzMiXSxbIjc1ZDQ2ZWZlYTM3NzFlNmU2OGFiYjg5YTEzYWQ3NDdlY2YxODkyMzkzZGZjNGYxYjcwMDQ3'@; put 'ODhjNTAzNzRkYTgiLCI5ODUyMzkwYTk5NTA3Njc5ZmQwYjg2ZmQyYjM5YTg2OGQ3ZWZjMjIxNTEzNDZlMWEzY2E0NzI2NTg2YTZiZWQ4Il0sWyI4MDlhMjBjNjdkNjQ5MDBmZmI2OThjNGM4MjVmNmQ1ZjIzMTBmYjA0NTFjODY5MzQ1YjczMTlmNjQ1NjA1NzIxIiwiOWU5OTQ5ODBkOTkxN2Uy'@; put 'MmI3NmIwNjE5MjdmYTA0MTQzZDA5NmNjYzU0OTYzZTZhNWViZmE1ZjNmOGUyODZjMSJdLFsiMWIzODkwM2E0M2Y3ZjExNGVkNDUwMGI0ZWFjNzA4M2ZkZWZlY2UxY2YyOWM2MzUyOGQ1NjM0NDZmOTcyYzE4MCIsIjQwMzZlZGM5MzFhNjBhZTg4OTM1M2Y3N2ZkNTNkZTRhMjcwOGIyNmI2ZjVk'@; put 'YTcyYWQzMzk0MTE5ZGFmNDA4ZjkiXV19fX0sMzEzNjooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1KLF89Yig4ODcyMykscD1iKDM5MjEwKSxOPWIoMjE4MzIpO0QuYXNzZXJ0PXAsRC50b0FycmF5PU4udG9BcnJheSxELnplcm8yPU4uemVybzIsRC50b0hleD1OLnRvSGV4LEQuZW5j'@; put 'b2RlPU4uZW5jb2RlLEQuZ2V0TkFGPWZ1bmN0aW9uIHcoUCxMLFkpe3ZhciBXLEI9bmV3IEFycmF5KE1hdGgubWF4KFAuYml0TGVuZ3RoKCksWSkrMSk7Zm9yKFc9MDtXPEIubGVuZ3RoO1crPTEpQltXXT0wO3ZhciBaPTE8PEwrMSxYPVAuY2xvbmUoKTtmb3IoVz0wO1c8Qi5sZW5ndGg7Vysr'@; put 'KXt2YXIgUSxxPVguYW5kbG4oWi0xKTtYLmlzT2RkKCk/WC5pc3VibihRPXE+KFo+PjEpLTE/KFo+PjEpLXE6cSk6UT0wLEJbV109USxYLml1c2hybigxKX1yZXR1cm4gQn0sRC5nZXRKU0Y9ZnVuY3Rpb24gRihQLEwpe3ZhciBZPVtbXSxbXV07UD1QLmNsb25lKCksTD1MLmNsb25lKCk7Zm9y'@; put 'KHZhciBaLEI9MCxXPTA7UC5jbXBuKC1CKT4wfHxMLmNtcG4oLVcpPjA7KXt2YXIgcSx0ZSxYPVAuYW5kbG4oMykrQiYzLFE9TC5hbmRsbigzKStXJjM7Mz09PVgmJihYPS0xKSwzPT09USYmKFE9LTEpLHE9MSZYPzMhPShaPVAuYW5kbG4oNykrQiY3KSYmNSE9PVp8fDIhPT1RP1g6LVg6MCxZ'@; put 'WzBdLnB1c2gocSksdGU9MSZRPzMhPShaPUwuYW5kbG4oNykrVyY3KSYmNSE9PVp8fDIhPT1YP1E6LVE6MCxZWzFdLnB1c2godGUpLDIqQj09PXErMSYmKEI9MS1CKSwyKlc9PT10ZSsxJiYoVz0xLVcpLFAuaXVzaHJuKDEpLEwuaXVzaHJuKDEpfXJldHVybiBZfSxELmNhY2hlZFByb3BlcnR5'@; put 'PWZ1bmN0aW9uIEgoUCxMLFkpe3ZhciBCPSJfIitMO1AucHJvdG90eXBlW0xdPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXNbQl0/dGhpc1tCXTp0aGlzW0JdPVkuY2FsbCh0aGlzKX19LEQucGFyc2VCeXRlcz1mdW5jdGlvbiBSKFApe3JldHVybiJzdHJpbmciPT10eXBlb2YgUD9E'@; put 'LnRvQXJyYXkoUCwiaGV4Iik6UH0sRC5pbnRGcm9tTEU9ZnVuY3Rpb24gaihQKXtyZXR1cm4gbmV3IF8oUCwiaGV4IiwibGUiKX19LDg4NzIzOmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQsXyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHAoeixnKXtpZigheil0aHJvdyBuZXcgRXJyb3Io'@; put 'Z3x8IkFzc2VydGlvbiBmYWlsZWQiKX1mdW5jdGlvbiBOKHosZyl7ei5zdXBlcl89Zzt2YXIgeT1mdW5jdGlvbigpe307eS5wcm90b3R5cGU9Zy5wcm90b3R5cGUsei5wcm90b3R5cGU9bmV3IHksei5wcm90b3R5cGUuY29uc3RydWN0b3I9en1mdW5jdGlvbiB3KHosZyx5KXtpZih3LmlzQk4o'@; put 'eikpcmV0dXJuIHo7dGhpcy5uZWdhdGl2ZT0wLHRoaXMud29yZHM9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMucmVkPW51bGwsbnVsbCE9PXomJigoImxlIj09PWd8fCJiZSI9PT1nKSYmKHk9ZyxnPTEwKSx0aGlzLl9pbml0KHp8fDAsZ3x8MTAseXx8ImJlIikpfXZhciBGOyJvYmplY3QiPT10'@; put 'eXBlb2YgRD9ELmV4cG9ydHM9dzpfLkJOPXcsdy5CTj13LHcud29yZFNpemU9MjY7dHJ5e0Y9dHlwZW9mIHdpbmRvdzwidSImJnR5cGVvZiB3aW5kb3cuQnVmZmVyPCJ1Ij93aW5kb3cuQnVmZmVyOmIoNzkzNjgpLkJ1ZmZlcn1jYXRjaHt9ZnVuY3Rpb24gSCh6LGcpe3ZhciB5PXouY2hhckNv'@; put 'ZGVBdChnKTtyZXR1cm4geT49NjUmJnk8PTcwP3ktNTU6eT49OTcmJnk8PTEwMj95LTg3OnktNDgmMTV9ZnVuY3Rpb24gUih6LGcseSl7dmFyIHg9SCh6LHkpO3JldHVybiB5LTE+PWcmJih4fD1IKHoseS0xKTw8NCkseH1mdW5jdGlvbiBqKHosZyx5LHgpe2Zvcih2YXIgQz0wLFQ9TWF0aC5t'@; put 'aW4oei5sZW5ndGgseSksVj1nO1Y8VDtWKyspe3ZhciBVPXouY2hhckNvZGVBdChWKS00ODtDKj14LEMrPVU+PTQ5P1UtNDkrMTA6VT49MTc/VS0xNysxMDpVfXJldHVybiBDfXcuaXNCTj1mdW5jdGlvbihnKXtyZXR1cm4gZyBpbnN0YW5jZW9mIHd8fG51bGwhPT1nJiYib2JqZWN0Ij09dHlw'@; put 'ZW9mIGcmJmcuY29uc3RydWN0b3Iud29yZFNpemU9PT13LndvcmRTaXplJiZBcnJheS5pc0FycmF5KGcud29yZHMpfSx3Lm1heD1mdW5jdGlvbihnLHkpe3JldHVybiBnLmNtcCh5KT4wP2c6eX0sdy5taW49ZnVuY3Rpb24oZyx5KXtyZXR1cm4gZy5jbXAoeSk8MD9nOnl9LHcucHJvdG90eXBl'@; put 'Ll9pbml0PWZ1bmN0aW9uKGcseSx4KXtpZigibnVtYmVyIj09dHlwZW9mIGcpcmV0dXJuIHRoaXMuX2luaXROdW1iZXIoZyx5LHgpO2lmKCJvYmplY3QiPT10eXBlb2YgZylyZXR1cm4gdGhpcy5faW5pdEFycmF5KGcseSx4KTsiaGV4Ij09PXkmJih5PTE2KSxwKHk9PT0oMHx5KSYmeT49MiYm'@; put 'eTw9MzYpO3ZhciBDPTA7Ii0iPT09KGc9Zy50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9nLCIiKSlbMF0mJihDKyssdGhpcy5uZWdhdGl2ZT0xKSxDPGcubGVuZ3RoJiYoMTY9PT15P3RoaXMuX3BhcnNlSGV4KGcsQyx4KToodGhpcy5fcGFyc2VCYXNlKGcseSxDKSwibGUiPT09eCYmdGhpcy5f'@; put 'aW5pdEFycmF5KHRoaXMudG9BcnJheSgpLHkseCkpKX0sdy5wcm90b3R5cGUuX2luaXROdW1iZXI9ZnVuY3Rpb24oZyx5LHgpe2c8MCYmKHRoaXMubmVnYXRpdmU9MSxnPS1nKSxnPDY3MTA4ODY0Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZnXSx0aGlzLmxlbmd0aD0xKTpnPDQ1MDM1OTk2Mjcz'@; put 'NzA0OTY/KHRoaXMud29yZHM9WzY3MTA4ODYzJmcsZy82NzEwODg2NCY2NzEwODg2M10sdGhpcy5sZW5ndGg9Mik6KHAoZzw5MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEwODg2MyZnLGcvNjcxMDg4NjQmNjcxMDg4NjMsMV0sdGhpcy5sZW5ndGg9MyksImxlIj09PXgmJnRoaXMu'@; put 'X2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSx5LHgpfSx3LnByb3RvdHlwZS5faW5pdEFycmF5PWZ1bmN0aW9uKGcseSx4KXtpZihwKCJudW1iZXIiPT10eXBlb2YgZy5sZW5ndGgpLGcubGVuZ3RoPD0wKXJldHVybiB0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xLHRoaXM7dGhpcy5sZW5n'@; put 'dGg9TWF0aC5jZWlsKGcubGVuZ3RoLzMpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIEM9MDtDPHRoaXMubGVuZ3RoO0MrKyl0aGlzLndvcmRzW0NdPTA7dmFyIFQsVixVPTA7aWYoImJlIj09PXgpZm9yKEM9Zy5sZW5ndGgtMSxUPTA7Qz49MDtDLT0zKXRoaXMu'@; put 'd29yZHNbVF18PShWPWdbQ118Z1tDLTFdPDw4fGdbQy0yXTw8MTYpPDxVJjY3MTA4ODYzLHRoaXMud29yZHNbVCsxXT1WPj4+MjYtVSY2NzEwODg2MywoVSs9MjQpPj0yNiYmKFUtPTI2LFQrKyk7ZWxzZSBpZigibGUiPT09eClmb3IoQz0wLFQ9MDtDPGcubGVuZ3RoO0MrPTMpdGhpcy53b3Jk'@; put 'c1tUXXw9KFY9Z1tDXXxnW0MrMV08PDh8Z1tDKzJdPDwxNik8PFUmNjcxMDg4NjMsdGhpcy53b3Jkc1tUKzFdPVY+Pj4yNi1VJjY3MTA4ODYzLChVKz0yNCk+PTI2JiYoVS09MjYsVCsrKTtyZXR1cm4gdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5fcGFyc2VIZXg9ZnVuY3Rpb24oZyx5LHgp'@; put 'e3RoaXMubGVuZ3RoPU1hdGguY2VpbCgoZy5sZW5ndGgteSkvNiksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgQz0wO0M8dGhpcy5sZW5ndGg7QysrKXRoaXMud29yZHNbQ109MDt2YXIgVSxUPTAsVj0wO2lmKCJiZSI9PT14KWZvcihDPWcubGVuZ3RoLTE7Qz49'@; put 'eTtDLT0yKVU9UihnLHksQyk8PFQsdGhpcy53b3Jkc1tWXXw9NjcxMDg4NjMmVSxUPj0xOD8oVC09MTgsdGhpcy53b3Jkc1tWKz0xXXw9VT4+PjI2KTpUKz04O2Vsc2UgZm9yKEM9KGcubGVuZ3RoLXkpJTI9PTA/eSsxOnk7QzxnLmxlbmd0aDtDKz0yKVU9UihnLHksQyk8PFQsdGhpcy53b3Jk'@; put 'c1tWXXw9NjcxMDg4NjMmVSxUPj0xOD8oVC09MTgsdGhpcy53b3Jkc1tWKz0xXXw9VT4+PjI2KTpUKz04O3RoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbihnLHkseCl7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIEM9MCxUPTE7VDw9Njcx'@; put 'MDg4NjM7VCo9eSlDKys7Qy0tLFQ9VC95fDA7Zm9yKHZhciBWPWcubGVuZ3RoLXgsVT1WJUMsRT1NYXRoLm1pbihWLFYtVSkreCxtPTAsQT14O0E8RTtBKz1DKW09aihnLEEsQStDLHkpLHRoaXMuaW11bG4oVCksdGhpcy53b3Jkc1swXSttPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPW06dGhp'@; put 'cy5faWFkZG4obSk7aWYoMCE9PVUpe3ZhciBhZT0xO2ZvcihtPWooZyxBLGcubGVuZ3RoLHkpLEE9MDtBPFU7QSsrKWFlKj15O3RoaXMuaW11bG4oYWUpLHRoaXMud29yZHNbMF0rbTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1tOnRoaXMuX2lhZGRuKG0pfXRoaXMuc3RyaXAoKX0sdy5wcm90'@; put 'b3R5cGUuY29weT1mdW5jdGlvbihnKXtnLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciB5PTA7eTx0aGlzLmxlbmd0aDt5KyspZy53b3Jkc1t5XT10aGlzLndvcmRzW3ldO2cubGVuZ3RoPXRoaXMubGVuZ3RoLGcubmVnYXRpdmU9dGhpcy5uZWdhdGl2ZSxnLnJlZD10aGlz'@; put 'LnJlZH0sdy5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgZz1uZXcgdyhudWxsKTtyZXR1cm4gdGhpcy5jb3B5KGcpLGd9LHcucHJvdG90eXBlLl9leHBhbmQ9ZnVuY3Rpb24oZyl7Zm9yKDt0aGlzLmxlbmd0aDxnOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7cmV0dXJuIHRo'@; put 'aXN9LHcucHJvdG90eXBlLnN0cmlwPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmxlbmd0aD4xJiYwPT09dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXTspdGhpcy5sZW5ndGgtLTtyZXR1cm4gdGhpcy5fbm9ybVNpZ24oKX0sdy5wcm90b3R5cGUuX25vcm1TaWduPWZ1bmN0aW9uKCl7cmV0dXJuIDE9'@; put 'PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF0mJih0aGlzLm5lZ2F0aXZlPTApLHRoaXN9LHcucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5yZWQ/IjxCTi1SOiAiOiI8Qk46ICIpK3RoaXMudG9TdHJpbmcoMTYpKyI+In07dmFyIFA9WyIiLCIwIiwiMDAi'@; put 'LCIwMDAiLCIwMDAwIiwiMDAwMDAiLCIwMDAwMDAiLCIwMDAwMDAwIiwiMDAwMDAwMDAiLCIwMDAwMDAwMDAiLCIwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAw'@; put 'MDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAw'@; put 'MDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0sTD1bMCwwLDI1LDE2LDEyLDExLDEwLDksOCw4LDcsNyw3LDcsNiw2LDYsNiw2LDYsNiw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1XSxZPVswLDAsMzM1NTQ0MzIsNDMw'@; put 'NDY3MjEsMTY3NzcyMTYsNDg4MjgxMjUsNjA0NjYxNzYsNDAzNTM2MDcsMTY3NzcyMTYsNDMwNDY3MjEsMWU3LDE5NDg3MTcxLDM1ODMxODA4LDYyNzQ4NTE3LDc1Mjk1MzYsMTEzOTA2MjUsMTY3NzcyMTYsMjQxMzc1NjksMzQwMTIyMjQsNDcwNDU4ODEsNjRlNiw0MDg0MTAxLDUxNTM2MzIs'@; put 'NjQzNjM0Myw3OTYyNjI0LDk3NjU2MjUsMTE4ODEzNzYsMTQzNDg5MDcsMTcyMTAzNjgsMjA1MTExNDksMjQzZTUsMjg2MjkxNTEsMzM1NTQ0MzIsMzkxMzUzOTMsNDU0MzU0MjQsNTI1MjE4NzUsNjA0NjYxNzZdO2Z1bmN0aW9uIFcoeixnLHkpe3kubmVnYXRpdmU9Zy5uZWdhdGl2ZV56Lm5l'@; put 'Z2F0aXZlO3ZhciB4PXoubGVuZ3RoK2cubGVuZ3RofDA7eS5sZW5ndGg9eCx4PXgtMXwwO3ZhciBDPTB8ei53b3Jkc1swXSxUPTB8Zy53b3Jkc1swXSxWPUMqVCxFPVYvNjcxMDg4NjR8MDt5LndvcmRzWzBdPTY3MTA4ODYzJlY7Zm9yKHZhciBtPTE7bTx4O20rKyl7Zm9yKHZhciBBPUU+Pj4y'@; put 'NixhZT02NzEwODg2MyZFLG5lPU1hdGgubWluKG0sZy5sZW5ndGgtMSksbGU9TWF0aC5tYXgoMCxtLXoubGVuZ3RoKzEpO2xlPD1uZTtsZSsrKUErPShWPShDPTB8ei53b3Jkc1ttLWxlfDBdKSooVD0wfGcud29yZHNbbGVdKSthZSkvNjcxMDg4NjR8MCxhZT02NzEwODg2MyZWO3kud29yZHNb'@; put 'bV09MHxhZSxFPTB8QX1yZXR1cm4gMCE9PUU/eS53b3Jkc1ttXT0wfEU6eS5sZW5ndGgtLSx5LnN0cmlwKCl9dy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oZyx5KXt2YXIgeDtpZih5PTB8eXx8MSwxNj09PShnPWd8fDEwKXx8ImhleCI9PT1nKXt4PSIiO2Zvcih2YXIgQz0wLFQ9MCxW'@; put 'PTA7Vjx0aGlzLmxlbmd0aDtWKyspe3ZhciBVPXRoaXMud29yZHNbVl0sRT0oMTY3NzcyMTUmKFU8PEN8VCkpLnRvU3RyaW5nKDE2KTtUPVU+Pj4yNC1DJjE2Nzc3MjE1LChDKz0yKT49MjYmJihDLT0yNixWLS0pLHg9MCE9PVR8fFYhPT10aGlzLmxlbmd0aC0xP1BbNi1FLmxlbmd0aF0rRSt4'@; put 'OkUreH1mb3IoMCE9PVQmJih4PVQudG9TdHJpbmcoMTYpK3gpO3gubGVuZ3RoJXkhPTA7KXg9IjAiK3g7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoeD0iLSIreCkseH1pZihnPT09KDB8ZykmJmc+PTImJmc8PTM2KXt2YXIgbT1MW2ddLEE9WVtnXTt4PSIiO3ZhciBhZT10aGlzLmNsb25l'@; put 'KCk7Zm9yKGFlLm5lZ2F0aXZlPTA7IWFlLmlzWmVybygpOyl7dmFyIG5lPWFlLm1vZG4oQSkudG9TdHJpbmcoZyk7eD0oYWU9YWUuaWRpdm4oQSkpLmlzWmVybygpP25lK3g6UFttLW5lLmxlbmd0aF0rbmUreH1mb3IodGhpcy5pc1plcm8oKSYmKHg9IjAiK3gpO3gubGVuZ3RoJXkhPTA7KXg9'@; put 'IjAiK3g7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoeD0iLSIreCkseH1wKCExLCJCYXNlIHNob3VsZCBiZSBiZXR3ZWVuIDIgYW5kIDM2Iil9LHcucHJvdG90eXBlLnRvTnVtYmVyPWZ1bmN0aW9uKCl7dmFyIGc9dGhpcy53b3Jkc1swXTtyZXR1cm4gMj09PXRoaXMubGVuZ3RoP2crPTY3'@; put 'MTA4ODY0KnRoaXMud29yZHNbMV06Mz09PXRoaXMubGVuZ3RoJiYxPT09dGhpcy53b3Jkc1syXT9nKz00NTAzNTk5NjI3MzcwNDk2KzY3MTA4ODY0KnRoaXMud29yZHNbMV06dGhpcy5sZW5ndGg+MiYmcCghMSwiTnVtYmVyIGNhbiBvbmx5IHNhZmVseSBzdG9yZSB1cCB0byA1MyBiaXRzIiks'@; put 'MCE9PXRoaXMubmVnYXRpdmU/LWc6Z30sdy5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoMTYpfSx3LnByb3RvdHlwZS50b0J1ZmZlcj1mdW5jdGlvbihnLHkpe3JldHVybiBwKHR5cGVvZiBGPCJ1IiksdGhpcy50b0FycmF5TGlrZShGLGcseSl9LHcu'@; put 'cHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rpb24oZyx5KXtyZXR1cm4gdGhpcy50b0FycmF5TGlrZShBcnJheSxnLHkpfSx3LnByb3RvdHlwZS50b0FycmF5TGlrZT1mdW5jdGlvbihnLHkseCl7dmFyIEM9dGhpcy5ieXRlTGVuZ3RoKCksVD14fHxNYXRoLm1heCgxLEMpO3AoQzw9VCwiYnl0ZSBh'@; put 'cnJheSBsb25nZXIgdGhhbiBkZXNpcmVkIGxlbmd0aCIpLHAoVD4wLCJSZXF1ZXN0ZWQgYXJyYXkgbGVuZ3RoIDw9IDAiKSx0aGlzLnN0cmlwKCk7dmFyIEUsbSxWPSJsZSI9PT15LFU9bmV3IGcoVCksQT10aGlzLmNsb25lKCk7aWYoVil7Zm9yKG09MDshQS5pc1plcm8oKTttKyspRT1BLmFu'@; put 'ZGxuKDI1NSksQS5pdXNocm4oOCksVVttXT1FO2Zvcig7bTxUO20rKylVW21dPTB9ZWxzZXtmb3IobT0wO208VC1DO20rKylVW21dPTA7Zm9yKG09MDshQS5pc1plcm8oKTttKyspRT1BLmFuZGxuKDI1NSksQS5pdXNocm4oOCksVVtULW0tMV09RX1yZXR1cm4gVX0sdy5wcm90b3R5cGUuX2Nv'@; put 'dW50Qml0cz1NYXRoLmNsejMyP2Z1bmN0aW9uKGcpe3JldHVybiAzMi1NYXRoLmNsejMyKGcpfTpmdW5jdGlvbihnKXt2YXIgeT1nLHg9MDtyZXR1cm4geT49NDA5NiYmKHgrPTEzLHk+Pj49MTMpLHk+PTY0JiYoeCs9Nyx5Pj4+PTcpLHk+PTgmJih4Kz00LHk+Pj49NCkseT49MiYmKHgrPTIs'@; put 'eT4+Pj0yKSx4K3l9LHcucHJvdG90eXBlLl96ZXJvQml0cz1mdW5jdGlvbihnKXtpZigwPT09ZylyZXR1cm4gMjY7dmFyIHk9Zyx4PTA7cmV0dXJuIDgxOTEmeXx8KHgrPTEzLHk+Pj49MTMpLDEyNyZ5fHwoeCs9Nyx5Pj4+PTcpLDE1Jnl8fCh4Kz00LHk+Pj49NCksMyZ5fHwoeCs9Mix5Pj4+'@; put 'PTIpLDEmeXx8eCsrLHh9LHcucHJvdG90eXBlLmJpdExlbmd0aD1mdW5jdGlvbigpe3ZhciB5PXRoaXMuX2NvdW50Qml0cyh0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdKTtyZXR1cm4gMjYqKHRoaXMubGVuZ3RoLTEpK3l9LHcucHJvdG90eXBlLnplcm9CaXRzPWZ1bmN0aW9uKCl7aWYodGhp'@; put 'cy5pc1plcm8oKSlyZXR1cm4gMDtmb3IodmFyIGc9MCx5PTA7eTx0aGlzLmxlbmd0aDt5Kyspe3ZhciB4PXRoaXMuX3plcm9CaXRzKHRoaXMud29yZHNbeV0pO2lmKGcrPXgsMjYhPT14KWJyZWFrfXJldHVybiBnfSx3LnByb3RvdHlwZS5ieXRlTGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIE1h'@; put 'dGguY2VpbCh0aGlzLmJpdExlbmd0aCgpLzgpfSx3LnByb3RvdHlwZS50b1R3b3M9ZnVuY3Rpb24oZyl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlP3RoaXMuYWJzKCkuaW5vdG4oZykuaWFkZG4oMSk6dGhpcy5jbG9uZSgpfSx3LnByb3RvdHlwZS5mcm9tVHdvcz1mdW5jdGlvbihnKXtyZXR1'@; put 'cm4gdGhpcy50ZXN0bihnLTEpP3RoaXMubm90bihnKS5pYWRkbigxKS5pbmVnKCk6dGhpcy5jbG9uZSgpfSx3LnByb3RvdHlwZS5pc05lZz1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZX0sdy5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5p'@; put 'bmVnKCl9LHcucHJvdG90eXBlLmluZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1plcm8oKXx8KHRoaXMubmVnYXRpdmVePTEpLHRoaXN9LHcucHJvdG90eXBlLml1b3I9ZnVuY3Rpb24oZyl7Zm9yKDt0aGlzLmxlbmd0aDxnLmxlbmd0aDspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0w'@; put 'O2Zvcih2YXIgeT0wO3k8Zy5sZW5ndGg7eSsrKXRoaXMud29yZHNbeV09dGhpcy53b3Jkc1t5XXxnLndvcmRzW3ldO3JldHVybiB0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLmlvcj1mdW5jdGlvbihnKXtyZXR1cm4gcCghKHRoaXMubmVnYXRpdmV8Zy5uZWdhdGl2ZSkpLHRoaXMuaXVvcihn'@; put 'KX0sdy5wcm90b3R5cGUub3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pb3IoZyk6Zy5jbG9uZSgpLmlvcih0aGlzKX0sdy5wcm90b3R5cGUudW9yPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25l'@; put 'KCkuaXVvcihnKTpnLmNsb25lKCkuaXVvcih0aGlzKX0sdy5wcm90b3R5cGUuaXVhbmQ9ZnVuY3Rpb24oZyl7dmFyIHk7eT10aGlzLmxlbmd0aD5nLmxlbmd0aD9nOnRoaXM7Zm9yKHZhciB4PTA7eDx5Lmxlbmd0aDt4KyspdGhpcy53b3Jkc1t4XT10aGlzLndvcmRzW3hdJmcud29yZHNbeF07'@; put 'cmV0dXJuIHRoaXMubGVuZ3RoPXkubGVuZ3RoLHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuaWFuZD1mdW5jdGlvbihnKXtyZXR1cm4gcCghKHRoaXMubmVnYXRpdmV8Zy5uZWdhdGl2ZSkpLHRoaXMuaXVhbmQoZyl9LHcucHJvdG90eXBlLmFuZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5s'@; put 'ZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhbmQoZyk6Zy5jbG9uZSgpLmlhbmQodGhpcyl9LHcucHJvdG90eXBlLnVhbmQ9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdWFuZChnKTpnLmNsb25lKCkuaXVhbmQodGhpcyl9LHcucHJv'@; put 'dG90eXBlLml1eG9yPWZ1bmN0aW9uKGcpe3ZhciB5LHg7dGhpcy5sZW5ndGg+Zy5sZW5ndGg/KHk9dGhpcyx4PWcpOih5PWcseD10aGlzKTtmb3IodmFyIEM9MDtDPHgubGVuZ3RoO0MrKyl0aGlzLndvcmRzW0NdPXkud29yZHNbQ11eeC53b3Jkc1tDXTtpZih0aGlzIT09eSlmb3IoO0M8eS5s'@; put 'ZW5ndGg7QysrKXRoaXMud29yZHNbQ109eS53b3Jkc1tDXTtyZXR1cm4gdGhpcy5sZW5ndGg9eS5sZW5ndGgsdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5peG9yPWZ1bmN0aW9uKGcpe3JldHVybiBwKCEodGhpcy5uZWdhdGl2ZXxnLm5lZ2F0aXZlKSksdGhpcy5pdXhvcihnKX0sdy5wcm90'@; put 'b3R5cGUueG9yPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaXhvcihnKTpnLmNsb25lKCkuaXhvcih0aGlzKX0sdy5wcm90b3R5cGUudXhvcj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLml1'@; put 'eG9yKGcpOmcuY2xvbmUoKS5pdXhvcih0aGlzKX0sdy5wcm90b3R5cGUuaW5vdG49ZnVuY3Rpb24oZyl7cCgibnVtYmVyIj09dHlwZW9mIGcmJmc+PTApO3ZhciB5PTB8TWF0aC5jZWlsKGcvMjYpLHg9ZyUyNjt0aGlzLl9leHBhbmQoeSkseD4wJiZ5LS07Zm9yKHZhciBDPTA7Qzx5O0MrKyl0'@; put 'aGlzLndvcmRzW0NdPTY3MTA4ODYzJn50aGlzLndvcmRzW0NdO3JldHVybiB4PjAmJih0aGlzLndvcmRzW0NdPX50aGlzLndvcmRzW0NdJjY3MTA4ODYzPj4yNi14KSx0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLm5vdG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbm90bihn'@; put 'KX0sdy5wcm90b3R5cGUuc2V0bj1mdW5jdGlvbihnLHkpe3AoIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgeD1nLzI2fDAsQz1nJTI2O3JldHVybiB0aGlzLl9leHBhbmQoeCsxKSx0aGlzLndvcmRzW3hdPXk/dGhpcy53b3Jkc1t4XXwxPDxDOnRoaXMud29yZHNbeF0mfigxPDxDKSx0'@; put 'aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oZyl7dmFyIHkseCxDO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Zy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHk9dGhpcy5pc3ViKGcpLHRoaXMubmVnYXRpdmVePTEsdGhpcy5fbm9ybVNpZ24oKTtpZigw'@; put 'PT09dGhpcy5uZWdhdGl2ZSYmMCE9PWcubmVnYXRpdmUpcmV0dXJuIGcubmVnYXRpdmU9MCx5PXRoaXMuaXN1YihnKSxnLm5lZ2F0aXZlPTEseS5fbm9ybVNpZ24oKTt0aGlzLmxlbmd0aD5nLmxlbmd0aD8oeD10aGlzLEM9Zyk6KHg9ZyxDPXRoaXMpO2Zvcih2YXIgVD0wLFY9MDtWPEMubGVu'@; put 'Z3RoO1YrKyl0aGlzLndvcmRzW1ZdPTY3MTA4ODYzJih5PSgwfHgud29yZHNbVl0pKygwfEMud29yZHNbVl0pK1QpLFQ9eT4+PjI2O2Zvcig7MCE9PVQmJlY8eC5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09NjcxMDg4NjMmKHk9KDB8eC53b3Jkc1tWXSkrVCksVD15Pj4+MjY7aWYodGhpcy5s'@; put 'ZW5ndGg9eC5sZW5ndGgsMCE9PVQpdGhpcy53b3Jkc1t0aGlzLmxlbmd0aF09VCx0aGlzLmxlbmd0aCsrO2Vsc2UgaWYoeCE9PXRoaXMpZm9yKDtWPHgubGVuZ3RoO1YrKyl0aGlzLndvcmRzW1ZdPXgud29yZHNbVl07cmV0dXJuIHRoaXN9LHcucHJvdG90eXBlLmFkZD1mdW5jdGlvbihnKXt2'@; put 'YXIgeTtyZXR1cm4gMCE9PWcubmVnYXRpdmUmJjA9PT10aGlzLm5lZ2F0aXZlPyhnLm5lZ2F0aXZlPTAseT10aGlzLnN1YihnKSxnLm5lZ2F0aXZlXj0xLHkpOjA9PT1nLm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLHk9Zy5zdWIodGhpcyksdGhpcy5uZWdh'@; put 'dGl2ZT0xLHkpOnRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRkKGcpOmcuY2xvbmUoKS5pYWRkKHRoaXMpfSx3LnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKGcpe2lmKDAhPT1nLm5lZ2F0aXZlKXtnLm5lZ2F0aXZlPTA7dmFyIHk9dGhpcy5pYWRkKGcpO3JldHVybiBnLm5l'@; put 'Z2F0aXZlPTEseS5fbm9ybVNpZ24oKX1pZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZChnKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fbm9ybVNpZ24oKTt2YXIgQyxULHg9dGhpcy5jbXAoZyk7aWYoMD09PXgpcmV0dXJuIHRoaXMubmVnYXRpdmU9'@; put 'MCx0aGlzLmxlbmd0aD0xLHRoaXMud29yZHNbMF09MCx0aGlzO3g+MD8oQz10aGlzLFQ9Zyk6KEM9ZyxUPXRoaXMpO2Zvcih2YXIgVj0wLFU9MDtVPFQubGVuZ3RoO1UrKylWPSh5PSgwfEMud29yZHNbVV0pLSgwfFQud29yZHNbVV0pK1YpPj4yNix0aGlzLndvcmRzW1VdPTY3MTA4ODYzJnk7'@; put 'Zm9yKDswIT09ViYmVTxDLmxlbmd0aDtVKyspVj0oeT0oMHxDLndvcmRzW1VdKStWKT4+MjYsdGhpcy53b3Jkc1tVXT02NzEwODg2MyZ5O2lmKDA9PT1WJiZVPEMubGVuZ3RoJiZDIT09dGhpcylmb3IoO1U8Qy5sZW5ndGg7VSsrKXRoaXMud29yZHNbVV09Qy53b3Jkc1tVXTtyZXR1cm4gdGhp'@; put 'cy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgsVSksQyE9PXRoaXMmJih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1YihnKX07dmFyIFo9ZnVuY3Rpb24oZyx5LHgpe3ZhciBFLG0sQSxD'@; put 'PWcud29yZHMsVD15LndvcmRzLFY9eC53b3JkcyxVPTAsYWU9MHxDWzBdLG5lPTgxOTEmYWUsbGU9YWU+Pj4xMyx3ZT0wfENbMV0sWmU9ODE5MSZ3ZSxRZT13ZT4+PjEzLGF0PTB8Q1syXSx4ZT04MTkxJmF0LHZlPWF0Pj4+MTMscWU9MHxDWzNdLGplPTgxOTEmcWUsQWU9cWU+Pj4xMyxGZT0w'@; put 'fENbNF0sUmU9ODE5MSZGZSxJZT1GZT4+PjEzLEhlPTB8Q1s1XSxEZT04MTkxJkhlLGtlPUhlPj4+MTMsX3Q9MHxDWzZdLG50PTgxOTEmX3QsSmU9X3Q+Pj4xMyxvbj0wfENbN10seXQ9ODE5MSZvbixNdD1vbj4+PjEzLEl0PTB8Q1s4XSxydD04MTkxJkl0LEtlPUl0Pj4+MTMsdHQ9MHxDWzld'@; put 'LE5lPTgxOTEmdHQsdXQ9dHQ+Pj4xMyxKdD0wfFRbMF0sTHQ9ODE5MSZKdCxQdD1KdD4+PjEzLG9pPTB8VFsxXSxlbj04MTkxJm9pLHNuPW9pPj4+MTMsSWk9MHxUWzJdLGRuPTgxOTEmSWksZnQ9SWk+Pj4xMyxGcj0wfFRbM10sWnQ9ODE5MSZGcixrdD1Gcj4+PjEzLExuPTB8VFs0XSxvdD04'@; put 'MTkxJkxuLHp0PUxuPj4+MTMsbmk9MHxUWzVdLFdlPTgxOTEmbmksQXQ9bmk+Pj4xMyxpcj0wfFRbNl0saHQ9ODE5MSZpcixFdD1pcj4+PjEzLHpuPTB8VFs3XSxhbj04MTkxJnpuLGp0PXpuPj4+MTMsZGk9MHxUWzhdLGNuPTgxOTEmZGksZm49ZGk+Pj4xMyxEaT0wfFRbOV0sUXQ9ODE5MSZE'@; put 'aSx0bj1EaT4+PjEzO3gubmVnYXRpdmU9Zy5uZWdhdGl2ZV55Lm5lZ2F0aXZlLHgubGVuZ3RoPTE5O3ZhciBjYT0oVSsoRT1NYXRoLmltdWwobmUsTHQpKXwwKSsoKDgxOTEmKG09KG09TWF0aC5pbXVsKG5lLFB0KSkrTWF0aC5pbXVsKGxlLEx0KXwwKSk8PDEzKXwwO1U9KChBPU1hdGguaW11'@; put 'bChsZSxQdCkpKyhtPj4+MTMpfDApKyhjYT4+PjI2KXwwLGNhJj02NzEwODg2MyxFPU1hdGguaW11bChaZSxMdCksbT0obT1NYXRoLmltdWwoWmUsUHQpKStNYXRoLmltdWwoUWUsTHQpfDAsQT1NYXRoLmltdWwoUWUsUHQpO3ZhciB4aT0oVSsoRT1FK01hdGguaW11bChuZSxlbil8MCl8MCkr'@; put 'KCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLHNuKXwwKStNYXRoLmltdWwobGUsZW4pfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwobGUsc24pfDApKyhtPj4+MTMpfDApKyh4aT4+PjI2KXwwLHhpJj02NzEwODg2MyxFPU1hdGguaW11bCh4ZSxMdCksbT0obT1NYXRoLmltdWwoeGUs'@; put 'UHQpKStNYXRoLmltdWwodmUsTHQpfDAsQT1NYXRoLmltdWwodmUsUHQpLEU9RStNYXRoLmltdWwoWmUsZW4pfDAsbT0obT1tK01hdGguaW11bChaZSxzbil8MCkrTWF0aC5pbXVsKFFlLGVuKXwwLEE9QStNYXRoLmltdWwoUWUsc24pfDA7dmFyIHlyPShVKyhFPUUrTWF0aC5pbXVsKG5lLGRu'@; put 'KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsZnQpfDApK01hdGguaW11bChsZSxkbil8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSxmdCl8MCkrKG0+Pj4xMyl8MCkrKHlyPj4+MjYpfDAseXImPTY3MTA4ODYzLEU9TWF0aC5pbXVsKGplLEx0KSxtPShtPU1hdGgu'@; put 'aW11bChqZSxQdCkpK01hdGguaW11bChBZSxMdCl8MCxBPU1hdGguaW11bChBZSxQdCksRT1FK01hdGguaW11bCh4ZSxlbil8MCxtPShtPW0rTWF0aC5pbXVsKHhlLHNuKXwwKStNYXRoLmltdWwodmUsZW4pfDAsQT1BK01hdGguaW11bCh2ZSxzbil8MCxFPUUrTWF0aC5pbXVsKFplLGRuKXww'@; put 'LG09KG09bStNYXRoLmltdWwoWmUsZnQpfDApK01hdGguaW11bChRZSxkbil8MCxBPUErTWF0aC5pbXVsKFFlLGZ0KXwwO3ZhciBHbj0oVSsoRT1FK01hdGguaW11bChuZSxadCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLGt0KXwwKStNYXRoLmltdWwobGUsWnQpfDApKTw8'@; put 'MTMpfDA7VT0oKEE9QStNYXRoLmltdWwobGUsa3QpfDApKyhtPj4+MTMpfDApKyhHbj4+PjI2KXwwLEduJj02NzEwODg2MyxFPU1hdGguaW11bChSZSxMdCksbT0obT1NYXRoLmltdWwoUmUsUHQpKStNYXRoLmltdWwoSWUsTHQpfDAsQT1NYXRoLmltdWwoSWUsUHQpLEU9RStNYXRoLmltdWwo'@; put 'amUsZW4pfDAsbT0obT1tK01hdGguaW11bChqZSxzbil8MCkrTWF0aC5pbXVsKEFlLGVuKXwwLEE9QStNYXRoLmltdWwoQWUsc24pfDAsRT1FK01hdGguaW11bCh4ZSxkbil8MCxtPShtPW0rTWF0aC5pbXVsKHhlLGZ0KXwwKStNYXRoLmltdWwodmUsZG4pfDAsQT1BK01hdGguaW11bCh2ZSxm'@; put 'dCl8MCxFPUUrTWF0aC5pbXVsKFplLFp0KXwwLG09KG09bStNYXRoLmltdWwoWmUsa3QpfDApK01hdGguaW11bChRZSxadCl8MCxBPUErTWF0aC5pbXVsKFFlLGt0KXwwO3ZhciBLaT0oVSsoRT1FK01hdGguaW11bChuZSxvdCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLHp0'@; put 'KXwwKStNYXRoLmltdWwobGUsb3QpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwobGUsenQpfDApKyhtPj4+MTMpfDApKyhLaT4+PjI2KXwwLEtpJj02NzEwODg2MyxFPU1hdGguaW11bChEZSxMdCksbT0obT1NYXRoLmltdWwoRGUsUHQpKStNYXRoLmltdWwoa2UsTHQpfDAsQT1NYXRo'@; put 'LmltdWwoa2UsUHQpLEU9RStNYXRoLmltdWwoUmUsZW4pfDAsbT0obT1tK01hdGguaW11bChSZSxzbil8MCkrTWF0aC5pbXVsKEllLGVuKXwwLEE9QStNYXRoLmltdWwoSWUsc24pfDAsRT1FK01hdGguaW11bChqZSxkbil8MCxtPShtPW0rTWF0aC5pbXVsKGplLGZ0KXwwKStNYXRoLmltdWwo'@; put 'QWUsZG4pfDAsQT1BK01hdGguaW11bChBZSxmdCl8MCxFPUUrTWF0aC5pbXVsKHhlLFp0KXwwLG09KG09bStNYXRoLmltdWwoeGUsa3QpfDApK01hdGguaW11bCh2ZSxadCl8MCxBPUErTWF0aC5pbXVsKHZlLGt0KXwwLEU9RStNYXRoLmltdWwoWmUsb3QpfDAsbT0obT1tK01hdGguaW11bCha'@; put 'ZSx6dCl8MCkrTWF0aC5pbXVsKFFlLG90KXwwLEE9QStNYXRoLmltdWwoUWUsenQpfDA7dmFyIEpyPShVKyhFPUUrTWF0aC5pbXVsKG5lLFdlKXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsQXQpfDApK01hdGguaW11bChsZSxXZSl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGgu'@; put 'aW11bChsZSxBdCl8MCkrKG0+Pj4xMyl8MCkrKEpyPj4+MjYpfDAsSnImPTY3MTA4ODYzLEU9TWF0aC5pbXVsKG50LEx0KSxtPShtPU1hdGguaW11bChudCxQdCkpK01hdGguaW11bChKZSxMdCl8MCxBPU1hdGguaW11bChKZSxQdCksRT1FK01hdGguaW11bChEZSxlbil8MCxtPShtPW0rTWF0'@; put 'aC5pbXVsKERlLHNuKXwwKStNYXRoLmltdWwoa2UsZW4pfDAsQT1BK01hdGguaW11bChrZSxzbil8MCxFPUUrTWF0aC5pbXVsKFJlLGRuKXwwLG09KG09bStNYXRoLmltdWwoUmUsZnQpfDApK01hdGguaW11bChJZSxkbil8MCxBPUErTWF0aC5pbXVsKEllLGZ0KXwwLEU9RStNYXRoLmltdWwo'@; put 'amUsWnQpfDAsbT0obT1tK01hdGguaW11bChqZSxrdCl8MCkrTWF0aC5pbXVsKEFlLFp0KXwwLEE9QStNYXRoLmltdWwoQWUsa3QpfDAsRT1FK01hdGguaW11bCh4ZSxvdCl8MCxtPShtPW0rTWF0aC5pbXVsKHhlLHp0KXwwKStNYXRoLmltdWwodmUsb3QpfDAsQT1BK01hdGguaW11bCh2ZSx6'@; put 'dCl8MCxFPUUrTWF0aC5pbXVsKFplLFdlKXwwLG09KG09bStNYXRoLmltdWwoWmUsQXQpfDApK01hdGguaW11bChRZSxXZSl8MCxBPUErTWF0aC5pbXVsKFFlLEF0KXwwO3ZhciBRcj0oVSsoRT1FK01hdGguaW11bChuZSxodCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLEV0'@; put 'KXwwKStNYXRoLmltdWwobGUsaHQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwobGUsRXQpfDApKyhtPj4+MTMpfDApKyhRcj4+PjI2KXwwLFFyJj02NzEwODg2MyxFPU1hdGguaW11bCh5dCxMdCksbT0obT1NYXRoLmltdWwoeXQsUHQpKStNYXRoLmltdWwoTXQsTHQpfDAsQT1NYXRo'@; put 'LmltdWwoTXQsUHQpLEU9RStNYXRoLmltdWwobnQsZW4pfDAsbT0obT1tK01hdGguaW11bChudCxzbil8MCkrTWF0aC5pbXVsKEplLGVuKXwwLEE9QStNYXRoLmltdWwoSmUsc24pfDAsRT1FK01hdGguaW11bChEZSxkbil8MCxtPShtPW0rTWF0aC5pbXVsKERlLGZ0KXwwKStNYXRoLmltdWwo'@; put 'a2UsZG4pfDAsQT1BK01hdGguaW11bChrZSxmdCl8MCxFPUUrTWF0aC5pbXVsKFJlLFp0KXwwLG09KG09bStNYXRoLmltdWwoUmUsa3QpfDApK01hdGguaW11bChJZSxadCl8MCxBPUErTWF0aC5pbXVsKEllLGt0KXwwLEU9RStNYXRoLmltdWwoamUsb3QpfDAsbT0obT1tK01hdGguaW11bChq'@; put 'ZSx6dCl8MCkrTWF0aC5pbXVsKEFlLG90KXwwLEE9QStNYXRoLmltdWwoQWUsenQpfDAsRT1FK01hdGguaW11bCh4ZSxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKHhlLEF0KXwwKStNYXRoLmltdWwodmUsV2UpfDAsQT1BK01hdGguaW11bCh2ZSxBdCl8MCxFPUUrTWF0aC5pbXVsKFplLGh0KXww'@; put 'LG09KG09bStNYXRoLmltdWwoWmUsRXQpfDApK01hdGguaW11bChRZSxodCl8MCxBPUErTWF0aC5pbXVsKFFlLEV0KXwwO3ZhciBOaT0oVSsoRT1FK01hdGguaW11bChuZSxhbil8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLGp0KXwwKStNYXRoLmltdWwobGUsYW4pfDApKTw8'@; put 'MTMpfDA7VT0oKEE9QStNYXRoLmltdWwobGUsanQpfDApKyhtPj4+MTMpfDApKyhOaT4+PjI2KXwwLE5pJj02NzEwODg2MyxFPU1hdGguaW11bChydCxMdCksbT0obT1NYXRoLmltdWwocnQsUHQpKStNYXRoLmltdWwoS2UsTHQpfDAsQT1NYXRoLmltdWwoS2UsUHQpLEU9RStNYXRoLmltdWwo'@; put 'eXQsZW4pfDAsbT0obT1tK01hdGguaW11bCh5dCxzbil8MCkrTWF0aC5pbXVsKE10LGVuKXwwLEE9QStNYXRoLmltdWwoTXQsc24pfDAsRT1FK01hdGguaW11bChudCxkbil8MCxtPShtPW0rTWF0aC5pbXVsKG50LGZ0KXwwKStNYXRoLmltdWwoSmUsZG4pfDAsQT1BK01hdGguaW11bChKZSxm'@; put 'dCl8MCxFPUUrTWF0aC5pbXVsKERlLFp0KXwwLG09KG09bStNYXRoLmltdWwoRGUsa3QpfDApK01hdGguaW11bChrZSxadCl8MCxBPUErTWF0aC5pbXVsKGtlLGt0KXwwLEU9RStNYXRoLmltdWwoUmUsb3QpfDAsbT0obT1tK01hdGguaW11bChSZSx6dCl8MCkrTWF0aC5pbXVsKEllLG90KXww'@; put 'LEE9QStNYXRoLmltdWwoSWUsenQpfDAsRT1FK01hdGguaW11bChqZSxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKGplLEF0KXwwKStNYXRoLmltdWwoQWUsV2UpfDAsQT1BK01hdGguaW11bChBZSxBdCl8MCxFPUUrTWF0aC5pbXVsKHhlLGh0KXwwLG09KG09bStNYXRoLmltdWwoeGUsRXQpfDAp'@; put 'K01hdGguaW11bCh2ZSxodCl8MCxBPUErTWF0aC5pbXVsKHZlLEV0KXwwLEU9RStNYXRoLmltdWwoWmUsYW4pfDAsbT0obT1tK01hdGguaW11bChaZSxqdCl8MCkrTWF0aC5pbXVsKFFlLGFuKXwwLEE9QStNYXRoLmltdWwoUWUsanQpfDA7dmFyIEhpPShVKyhFPUUrTWF0aC5pbXVsKG5lLGNu'@; put 'KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsZm4pfDApK01hdGguaW11bChsZSxjbil8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSxmbil8MCkrKG0+Pj4xMyl8MCkrKEhpPj4+MjYpfDAsSGkmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLEx0KSxtPShtPU1hdGgu'@; put 'aW11bChOZSxQdCkpK01hdGguaW11bCh1dCxMdCl8MCxBPU1hdGguaW11bCh1dCxQdCksRT1FK01hdGguaW11bChydCxlbil8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LHNuKXwwKStNYXRoLmltdWwoS2UsZW4pfDAsQT1BK01hdGguaW11bChLZSxzbil8MCxFPUUrTWF0aC5pbXVsKHl0LGRuKXww'@; put 'LG09KG09bStNYXRoLmltdWwoeXQsZnQpfDApK01hdGguaW11bChNdCxkbil8MCxBPUErTWF0aC5pbXVsKE10LGZ0KXwwLEU9RStNYXRoLmltdWwobnQsWnQpfDAsbT0obT1tK01hdGguaW11bChudCxrdCl8MCkrTWF0aC5pbXVsKEplLFp0KXwwLEE9QStNYXRoLmltdWwoSmUsa3QpfDAsRT1F'@; put 'K01hdGguaW11bChEZSxvdCl8MCxtPShtPW0rTWF0aC5pbXVsKERlLHp0KXwwKStNYXRoLmltdWwoa2Usb3QpfDAsQT1BK01hdGguaW11bChrZSx6dCl8MCxFPUUrTWF0aC5pbXVsKFJlLFdlKXwwLG09KG09bStNYXRoLmltdWwoUmUsQXQpfDApK01hdGguaW11bChJZSxXZSl8MCxBPUErTWF0'@; put 'aC5pbXVsKEllLEF0KXwwLEU9RStNYXRoLmltdWwoamUsaHQpfDAsbT0obT1tK01hdGguaW11bChqZSxFdCl8MCkrTWF0aC5pbXVsKEFlLGh0KXwwLEE9QStNYXRoLmltdWwoQWUsRXQpfDAsRT1FK01hdGguaW11bCh4ZSxhbil8MCxtPShtPW0rTWF0aC5pbXVsKHhlLGp0KXwwKStNYXRoLmlt'@; put 'dWwodmUsYW4pfDAsQT1BK01hdGguaW11bCh2ZSxqdCl8MCxFPUUrTWF0aC5pbXVsKFplLGNuKXwwLG09KG09bStNYXRoLmltdWwoWmUsZm4pfDApK01hdGguaW11bChRZSxjbil8MCxBPUErTWF0aC5pbXVsKFFlLGZuKXwwO3ZhciBJYT0oVSsoRT1FK01hdGguaW11bChuZSxRdCl8MCl8MCkr'@; put 'KCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLHRuKXwwKStNYXRoLmltdWwobGUsUXQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwobGUsdG4pfDApKyhtPj4+MTMpfDApKyhJYT4+PjI2KXwwLElhJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxlbiksbT0obT1NYXRoLmltdWwoTmUs'@; put 'c24pKStNYXRoLmltdWwodXQsZW4pfDAsQT1NYXRoLmltdWwodXQsc24pLEU9RStNYXRoLmltdWwocnQsZG4pfDAsbT0obT1tK01hdGguaW11bChydCxmdCl8MCkrTWF0aC5pbXVsKEtlLGRuKXwwLEE9QStNYXRoLmltdWwoS2UsZnQpfDAsRT1FK01hdGguaW11bCh5dCxadCl8MCxtPShtPW0r'@; put 'TWF0aC5pbXVsKHl0LGt0KXwwKStNYXRoLmltdWwoTXQsWnQpfDAsQT1BK01hdGguaW11bChNdCxrdCl8MCxFPUUrTWF0aC5pbXVsKG50LG90KXwwLG09KG09bStNYXRoLmltdWwobnQsenQpfDApK01hdGguaW11bChKZSxvdCl8MCxBPUErTWF0aC5pbXVsKEplLHp0KXwwLEU9RStNYXRoLmlt'@; put 'dWwoRGUsV2UpfDAsbT0obT1tK01hdGguaW11bChEZSxBdCl8MCkrTWF0aC5pbXVsKGtlLFdlKXwwLEE9QStNYXRoLmltdWwoa2UsQXQpfDAsRT1FK01hdGguaW11bChSZSxodCl8MCxtPShtPW0rTWF0aC5pbXVsKFJlLEV0KXwwKStNYXRoLmltdWwoSWUsaHQpfDAsQT1BK01hdGguaW11bChJ'@; put 'ZSxFdCl8MCxFPUUrTWF0aC5pbXVsKGplLGFuKXwwLG09KG09bStNYXRoLmltdWwoamUsanQpfDApK01hdGguaW11bChBZSxhbil8MCxBPUErTWF0aC5pbXVsKEFlLGp0KXwwLEU9RStNYXRoLmltdWwoeGUsY24pfDAsbT0obT1tK01hdGguaW11bCh4ZSxmbil8MCkrTWF0aC5pbXVsKHZlLGNu'@; put 'KXwwLEE9QStNYXRoLmltdWwodmUsZm4pfDA7dmFyIFByPShVKyhFPUUrTWF0aC5pbXVsKFplLFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwoWmUsdG4pfDApK01hdGguaW11bChRZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChRZSx0bil8MCkrKG0+Pj4xMyl8'@; put 'MCkrKFByPj4+MjYpfDAsUHImPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLGRuKSxtPShtPU1hdGguaW11bChOZSxmdCkpK01hdGguaW11bCh1dCxkbil8MCxBPU1hdGguaW11bCh1dCxmdCksRT1FK01hdGguaW11bChydCxadCl8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LGt0KXwwKStNYXRoLmlt'@; put 'dWwoS2UsWnQpfDAsQT1BK01hdGguaW11bChLZSxrdCl8MCxFPUUrTWF0aC5pbXVsKHl0LG90KXwwLG09KG09bStNYXRoLmltdWwoeXQsenQpfDApK01hdGguaW11bChNdCxvdCl8MCxBPUErTWF0aC5pbXVsKE10LHp0KXwwLEU9RStNYXRoLmltdWwobnQsV2UpfDAsbT0obT1tK01hdGguaW11'@; put 'bChudCxBdCl8MCkrTWF0aC5pbXVsKEplLFdlKXwwLEE9QStNYXRoLmltdWwoSmUsQXQpfDAsRT1FK01hdGguaW11bChEZSxodCl8MCxtPShtPW0rTWF0aC5pbXVsKERlLEV0KXwwKStNYXRoLmltdWwoa2UsaHQpfDAsQT1BK01hdGguaW11bChrZSxFdCl8MCxFPUUrTWF0aC5pbXVsKFJlLGFu'@; put 'KXwwLG09KG09bStNYXRoLmltdWwoUmUsanQpfDApK01hdGguaW11bChJZSxhbil8MCxBPUErTWF0aC5pbXVsKEllLGp0KXwwLEU9RStNYXRoLmltdWwoamUsY24pfDAsbT0obT1tK01hdGguaW11bChqZSxmbil8MCkrTWF0aC5pbXVsKEFlLGNuKXwwLEE9QStNYXRoLmltdWwoQWUsZm4pfDA7'@; put 'dmFyIFlpPShVKyhFPUUrTWF0aC5pbXVsKHhlLFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwoeGUsdG4pfDApK01hdGguaW11bCh2ZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bCh2ZSx0bil8MCkrKG0+Pj4xMyl8MCkrKFlpPj4+MjYpfDAsWWkmPTY3MTA4ODYz'@; put 'LEU9TWF0aC5pbXVsKE5lLFp0KSxtPShtPU1hdGguaW11bChOZSxrdCkpK01hdGguaW11bCh1dCxadCl8MCxBPU1hdGguaW11bCh1dCxrdCksRT1FK01hdGguaW11bChydCxvdCl8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LHp0KXwwKStNYXRoLmltdWwoS2Usb3QpfDAsQT1BK01hdGguaW11bChL'@; put 'ZSx6dCl8MCxFPUUrTWF0aC5pbXVsKHl0LFdlKXwwLG09KG09bStNYXRoLmltdWwoeXQsQXQpfDApK01hdGguaW11bChNdCxXZSl8MCxBPUErTWF0aC5pbXVsKE10LEF0KXwwLEU9RStNYXRoLmltdWwobnQsaHQpfDAsbT0obT1tK01hdGguaW11bChudCxFdCl8MCkrTWF0aC5pbXVsKEplLGh0'@; put 'KXwwLEE9QStNYXRoLmltdWwoSmUsRXQpfDAsRT1FK01hdGguaW11bChEZSxhbil8MCxtPShtPW0rTWF0aC5pbXVsKERlLGp0KXwwKStNYXRoLmltdWwoa2UsYW4pfDAsQT1BK01hdGguaW11bChrZSxqdCl8MCxFPUUrTWF0aC5pbXVsKFJlLGNuKXwwLG09KG09bStNYXRoLmltdWwoUmUsZm4p'@; put 'fDApK01hdGguaW11bChJZSxjbil8MCxBPUErTWF0aC5pbXVsKEllLGZuKXwwO3ZhciBmYT0oVSsoRT1FK01hdGguaW11bChqZSxRdCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKGplLHRuKXwwKStNYXRoLmltdWwoQWUsUXQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwo'@; put 'QWUsdG4pfDApKyhtPj4+MTMpfDApKyhmYT4+PjI2KXwwLGZhJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxvdCksbT0obT1NYXRoLmltdWwoTmUsenQpKStNYXRoLmltdWwodXQsb3QpfDAsQT1NYXRoLmltdWwodXQsenQpLEU9RStNYXRoLmltdWwocnQsV2UpfDAsbT0obT1tK01hdGguaW11'@; put 'bChydCxBdCl8MCkrTWF0aC5pbXVsKEtlLFdlKXwwLEE9QStNYXRoLmltdWwoS2UsQXQpfDAsRT1FK01hdGguaW11bCh5dCxodCl8MCxtPShtPW0rTWF0aC5pbXVsKHl0LEV0KXwwKStNYXRoLmltdWwoTXQsaHQpfDAsQT1BK01hdGguaW11bChNdCxFdCl8MCxFPUUrTWF0aC5pbXVsKG50LGFu'@; put 'KXwwLG09KG09bStNYXRoLmltdWwobnQsanQpfDApK01hdGguaW11bChKZSxhbil8MCxBPUErTWF0aC5pbXVsKEplLGp0KXwwLEU9RStNYXRoLmltdWwoRGUsY24pfDAsbT0obT1tK01hdGguaW11bChEZSxmbil8MCkrTWF0aC5pbXVsKGtlLGNuKXwwLEE9QStNYXRoLmltdWwoa2UsZm4pfDA7'@; put 'dmFyIG5yPShVKyhFPUUrTWF0aC5pbXVsKFJlLFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwoUmUsdG4pfDApK01hdGguaW11bChJZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChJZSx0bil8MCkrKG0+Pj4xMyl8MCkrKG5yPj4+MjYpfDAsbnImPTY3MTA4ODYz'@; put 'LEU9TWF0aC5pbXVsKE5lLFdlKSxtPShtPU1hdGguaW11bChOZSxBdCkpK01hdGguaW11bCh1dCxXZSl8MCxBPU1hdGguaW11bCh1dCxBdCksRT1FK01hdGguaW11bChydCxodCl8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LEV0KXwwKStNYXRoLmltdWwoS2UsaHQpfDAsQT1BK01hdGguaW11bChL'@; put 'ZSxFdCl8MCxFPUUrTWF0aC5pbXVsKHl0LGFuKXwwLG09KG09bStNYXRoLmltdWwoeXQsanQpfDApK01hdGguaW11bChNdCxhbil8MCxBPUErTWF0aC5pbXVsKE10LGp0KXwwLEU9RStNYXRoLmltdWwobnQsY24pfDAsbT0obT1tK01hdGguaW11bChudCxmbil8MCkrTWF0aC5pbXVsKEplLGNu'@; put 'KXwwLEE9QStNYXRoLmltdWwoSmUsZm4pfDA7dmFyIG9hPShVKyhFPUUrTWF0aC5pbXVsKERlLFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwoRGUsdG4pfDApK01hdGguaW11bChrZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChrZSx0bil8MCkrKG0+Pj4xMyl8'@; put 'MCkrKG9hPj4+MjYpfDAsb2EmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLGh0KSxtPShtPU1hdGguaW11bChOZSxFdCkpK01hdGguaW11bCh1dCxodCl8MCxBPU1hdGguaW11bCh1dCxFdCksRT1FK01hdGguaW11bChydCxhbil8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LGp0KXwwKStNYXRoLmlt'@; put 'dWwoS2UsYW4pfDAsQT1BK01hdGguaW11bChLZSxqdCl8MCxFPUUrTWF0aC5pbXVsKHl0LGNuKXwwLG09KG09bStNYXRoLmltdWwoeXQsZm4pfDApK01hdGguaW11bChNdCxjbil8MCxBPUErTWF0aC5pbXVsKE10LGZuKXwwO3ZhciBfYT0oVSsoRT1FK01hdGguaW11bChudCxRdCl8MCl8MCkr'@; put 'KCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG50LHRuKXwwKStNYXRoLmltdWwoSmUsUXQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwoSmUsdG4pfDApKyhtPj4+MTMpfDApKyhfYT4+PjI2KXwwLF9hJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxhbiksbT0obT1NYXRoLmltdWwoTmUs'@; put 'anQpKStNYXRoLmltdWwodXQsYW4pfDAsQT1NYXRoLmltdWwodXQsanQpLEU9RStNYXRoLmltdWwocnQsY24pfDAsbT0obT1tK01hdGguaW11bChydCxmbil8MCkrTWF0aC5pbXVsKEtlLGNuKXwwLEE9QStNYXRoLmltdWwoS2UsZm4pfDA7dmFyIE9hPShVKyhFPUUrTWF0aC5pbXVsKHl0LFF0'@; put 'KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwoeXQsdG4pfDApK01hdGguaW11bChNdCxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChNdCx0bil8MCkrKG0+Pj4xMyl8MCkrKE9hPj4+MjYpfDAsT2EmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLGNuKSxtPShtPU1hdGgu'@; put 'aW11bChOZSxmbikpK01hdGguaW11bCh1dCxjbil8MCxBPU1hdGguaW11bCh1dCxmbik7dmFyIE5hPShVKyhFPUUrTWF0aC5pbXVsKHJ0LFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwocnQsdG4pfDApK01hdGguaW11bChLZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGgu'@; put 'aW11bChLZSx0bil8MCkrKG0+Pj4xMyl8MCkrKE5hPj4+MjYpfDAsTmEmPTY3MTA4ODYzO3ZhciBlaT0oVSsoRT1NYXRoLmltdWwoTmUsUXQpKXwwKSsoKDgxOTEmKG09KG09TWF0aC5pbXVsKE5lLHRuKSkrTWF0aC5pbXVsKHV0LFF0KXwwKSk8PDEzKXwwO3JldHVybiBVPSgoQT1NYXRoLmlt'@; put 'dWwodXQsdG4pKSsobT4+PjEzKXwwKSsoZWk+Pj4yNil8MCxlaSY9NjcxMDg4NjMsVlswXT1jYSxWWzFdPXhpLFZbMl09eXIsVlszXT1HbixWWzRdPUtpLFZbNV09SnIsVls2XT1RcixWWzddPU5pLFZbOF09SGksVls5XT1JYSxWWzEwXT1QcixWWzExXT1ZaSxWWzEyXT1mYSxWWzEzXT1ucixW'@; put 'WzE0XT1vYSxWWzE1XT1fYSxWWzE2XT1PYSxWWzE3XT1OYSxWWzE4XT1laSwwIT09VSYmKFZbMTldPVUseC5sZW5ndGgrKykseH07ZnVuY3Rpb24gUSh6LGcseSl7cmV0dXJuKG5ldyBxKS5tdWxwKHosZyx5KX1mdW5jdGlvbiBxKHosZyl7dGhpcy54PXosdGhpcy55PWd9TWF0aC5pbXVsfHwo'@; put 'Wj1XKSx3LnByb3RvdHlwZS5tdWxUbz1mdW5jdGlvbihnLHkpe3ZhciB4LEM9dGhpcy5sZW5ndGgrZy5sZW5ndGg7cmV0dXJuIHg9MTA9PT10aGlzLmxlbmd0aCYmMTA9PT1nLmxlbmd0aD9aKHRoaXMsZyx5KTpDPDYzP1codGhpcyxnLHkpOkM8MTAyND9mdW5jdGlvbiBYKHosZyx5KXt5Lm5l'@; put 'Z2F0aXZlPWcubmVnYXRpdmVeei5uZWdhdGl2ZSx5Lmxlbmd0aD16Lmxlbmd0aCtnLmxlbmd0aDtmb3IodmFyIHg9MCxDPTAsVD0wO1Q8eS5sZW5ndGgtMTtUKyspe3ZhciBWPUM7Qz0wO2Zvcih2YXIgVT02NzEwODg2MyZ4LEU9TWF0aC5taW4oVCxnLmxlbmd0aC0xKSxtPU1hdGgubWF4KDAs'@; put 'VC16Lmxlbmd0aCsxKTttPD1FO20rKyl7dmFyIGxlPSgwfHoud29yZHNbVC1tXSkqKDB8Zy53b3Jkc1ttXSksd2U9NjcxMDg4NjMmbGU7VT02NzEwODg2MyYod2U9d2UrVXwwKSxDKz0oVj0oVj1WKyhsZS82NzEwODg2NHwwKXwwKSsod2U+Pj4yNil8MCk+Pj4yNixWJj02NzEwODg2M315Lndv'@; put 'cmRzW1RdPVUseD1WLFY9Q31yZXR1cm4gMCE9PXg/eS53b3Jkc1tUXT14OnkubGVuZ3RoLS0seS5zdHJpcCgpfSh0aGlzLGcseSk6USh0aGlzLGcseSkseH0scS5wcm90b3R5cGUubWFrZVJCVD1mdW5jdGlvbihnKXtmb3IodmFyIHk9bmV3IEFycmF5KGcpLHg9dy5wcm90b3R5cGUuX2NvdW50'@; put 'Qml0cyhnKS0xLEM9MDtDPGc7QysrKXlbQ109dGhpcy5yZXZCaW4oQyx4LGcpO3JldHVybiB5fSxxLnByb3RvdHlwZS5yZXZCaW49ZnVuY3Rpb24oZyx5LHgpe2lmKDA9PT1nfHxnPT09eC0xKXJldHVybiBnO2Zvcih2YXIgQz0wLFQ9MDtUPHk7VCsrKUN8PSgxJmcpPDx5LVQtMSxnPj49MTty'@; put 'ZXR1cm4gQ30scS5wcm90b3R5cGUucGVybXV0ZT1mdW5jdGlvbihnLHkseCxDLFQsVil7Zm9yKHZhciBVPTA7VTxWO1UrKylDW1VdPXlbZ1tVXV0sVFtVXT14W2dbVV1dfSxxLnByb3RvdHlwZS50cmFuc2Zvcm09ZnVuY3Rpb24oZyx5LHgsQyxULFYpe3RoaXMucGVybXV0ZShWLGcseSx4LEMs'@; put 'VCk7Zm9yKHZhciBVPTE7VTxUO1U8PD0xKWZvcih2YXIgRT1VPDwxLG09TWF0aC5jb3MoMipNYXRoLlBJL0UpLEE9TWF0aC5zaW4oMipNYXRoLlBJL0UpLGFlPTA7YWU8VDthZSs9RSlmb3IodmFyIG5lPW0sbGU9QSx3ZT0wO3dlPFU7d2UrKyl7dmFyIFplPXhbYWUrd2VdLFFlPUNbYWUrd2Vd'@; put 'LGF0PXhbYWUrd2UrVV0seGU9Q1thZSt3ZStVXSx2ZT1uZSphdC1sZSp4ZTt4ZT1uZSp4ZStsZSphdCx4W2FlK3dlXT1aZSsoYXQ9dmUpLENbYWUrd2VdPVFlK3hlLHhbYWUrd2UrVV09WmUtYXQsQ1thZSt3ZStVXT1RZS14ZSx3ZSE9PUUmJih2ZT1tKm5lLUEqbGUsbGU9bSpsZStBKm5lLG5l'@; put 'PXZlKX19LHEucHJvdG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKGcseSl7dmFyIHg9MXxNYXRoLm1heCh5LGcpLEM9MSZ4LFQ9MDtmb3IoeD14LzJ8MDt4O3g+Pj49MSlUKys7cmV0dXJuIDE8PFQrMStDfSxxLnByb3RvdHlwZS5jb25qdWdhdGU9ZnVuY3Rpb24oZyx5LHgpe2lmKCEoeDw9'@; put 'MSkpZm9yKHZhciBDPTA7Qzx4LzI7QysrKXt2YXIgVD1nW0NdO2dbQ109Z1t4LUMtMV0sZ1t4LUMtMV09VCxUPXlbQ10seVtDXT0teVt4LUMtMV0seVt4LUMtMV09LVR9fSxxLnByb3RvdHlwZS5ub3JtYWxpemUxM2I9ZnVuY3Rpb24oZyx5KXtmb3IodmFyIHg9MCxDPTA7Qzx5LzI7QysrKXt2'@; put 'YXIgVD04MTkyKk1hdGgucm91bmQoZ1syKkMrMV0veSkrTWF0aC5yb3VuZChnWzIqQ10veSkreDtnW0NdPTY3MTA4ODYzJlQseD1UPDY3MTA4ODY0PzA6VC82NzEwODg2NHwwfXJldHVybiBnfSxxLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKGcseSx4LEMpe2Zvcih2YXIgVD0wLFY9'@; put 'MDtWPHk7VisrKXhbMipWXT04MTkxJihUKz0wfGdbVl0pLHhbMipWKzFdPTgxOTEmKFQ+Pj49MTMpLFQ+Pj49MTM7Zm9yKFY9Mip5O1Y8QzsrK1YpeFtWXT0wO3AoMD09PVQpLHAoISgtODE5MiZUKSl9LHEucHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24oZyl7Zm9yKHZhciB5PW5ldyBBcnJheShn'@; put 'KSx4PTA7eDxnO3grKyl5W3hdPTA7cmV0dXJuIHl9LHEucHJvdG90eXBlLm11bHA9ZnVuY3Rpb24oZyx5LHgpe3ZhciBDPTIqdGhpcy5ndWVzc0xlbjEzYihnLmxlbmd0aCx5Lmxlbmd0aCksVD10aGlzLm1ha2VSQlQoQyksVj10aGlzLnN0dWIoQyksVT1uZXcgQXJyYXkoQyksRT1uZXcgQXJy'@; put 'YXkoQyksbT1uZXcgQXJyYXkoQyksQT1uZXcgQXJyYXkoQyksYWU9bmV3IEFycmF5KEMpLG5lPW5ldyBBcnJheShDKSxsZT14LndvcmRzO2xlLmxlbmd0aD1DLHRoaXMuY29udmVydDEzYihnLndvcmRzLGcubGVuZ3RoLFUsQyksdGhpcy5jb252ZXJ0MTNiKHkud29yZHMseS5sZW5ndGgsQSxD'@; put 'KSx0aGlzLnRyYW5zZm9ybShVLFYsRSxtLEMsVCksdGhpcy50cmFuc2Zvcm0oQSxWLGFlLG5lLEMsVCk7Zm9yKHZhciB3ZT0wO3dlPEM7d2UrKyl7dmFyIFplPUVbd2VdKmFlW3dlXS1tW3dlXSpuZVt3ZV07bVt3ZV09RVt3ZV0qbmVbd2VdK21bd2VdKmFlW3dlXSxFW3dlXT1aZX1yZXR1cm4g'@; put 'dGhpcy5jb25qdWdhdGUoRSxtLEMpLHRoaXMudHJhbnNmb3JtKEUsbSxsZSxWLEMsVCksdGhpcy5jb25qdWdhdGUobGUsVixDKSx0aGlzLm5vcm1hbGl6ZTEzYihsZSxDKSx4Lm5lZ2F0aXZlPWcubmVnYXRpdmVeeS5uZWdhdGl2ZSx4Lmxlbmd0aD1nLmxlbmd0aCt5Lmxlbmd0aCx4LnN0cmlw'@; put 'KCl9LHcucHJvdG90eXBlLm11bD1mdW5jdGlvbihnKXt2YXIgeT1uZXcgdyhudWxsKTtyZXR1cm4geS53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrZy5sZW5ndGgpLHRoaXMubXVsVG8oZyx5KX0sdy5wcm90b3R5cGUubXVsZj1mdW5jdGlvbihnKXt2YXIgeT1uZXcgdyhudWxsKTtyZXR1'@; put 'cm4geS53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrZy5sZW5ndGgpLFEodGhpcyxnLHkpfSx3LnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkubXVsVG8oZyx0aGlzKX0sdy5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24oZyl7cCgibnVtYmVyIj09dHlw'@; put 'ZW9mIGcpLHAoZzw2NzEwODg2NCk7Zm9yKHZhciB5PTAseD0wO3g8dGhpcy5sZW5ndGg7eCsrKXt2YXIgQz0oMHx0aGlzLndvcmRzW3hdKSpnLFQ9KDY3MTA4ODYzJkMpKyg2NzEwODg2MyZ5KTt5Pj49MjYseSs9Qy82NzEwODg2NHwwLHkrPVQ+Pj4yNix0aGlzLndvcmRzW3hdPTY3MTA4ODYz'@; put 'JlR9cmV0dXJuIDAhPT15JiYodGhpcy53b3Jkc1t4XT15LHRoaXMubGVuZ3RoKyspLHRoaXMubGVuZ3RoPTA9PT1nPzE6dGhpcy5sZW5ndGgsdGhpc30sdy5wcm90b3R5cGUubXVsbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltdWxuKGcpfSx3LnByb3RvdHlwZS5zcXI9ZnVu'@; put 'Y3Rpb24oKXtyZXR1cm4gdGhpcy5tdWwodGhpcyl9LHcucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbXVsKHRoaXMuY2xvbmUoKSl9LHcucHJvdG90eXBlLnBvdz1mdW5jdGlvbihnKXt2YXIgeT1mdW5jdGlvbiBCKHope2Zvcih2YXIgZz1uZXcgQXJyYXkoei5iaXRM'@; put 'ZW5ndGgoKSkseT0wO3k8Zy5sZW5ndGg7eSsrKXt2YXIgQz15JTI2O2dbeV09KHoud29yZHNbeS8yNnwwXSYxPDxDKT4+PkN9cmV0dXJuIGd9KGcpO2lmKDA9PT15Lmxlbmd0aClyZXR1cm4gbmV3IHcoMSk7Zm9yKHZhciB4PXRoaXMsQz0wO0M8eS5sZW5ndGgmJjA9PT15W0NdO0MrKyx4PXgu'@; put 'c3FyKCkpO2lmKCsrQzx5Lmxlbmd0aClmb3IodmFyIFQ9eC5zcXIoKTtDPHkubGVuZ3RoO0MrKyxUPVQuc3FyKCkpMCE9PXlbQ10mJih4PXgubXVsKFQpKTtyZXR1cm4geH0sdy5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKGcpe3AoIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgVCx5'@; put 'PWclMjYseD0oZy15KS8yNixDPTY3MTA4ODYzPj4+MjYteTw8MjYteTtpZigwIT09eSl7dmFyIFY9MDtmb3IoVD0wO1Q8dGhpcy5sZW5ndGg7VCsrKXt2YXIgVT10aGlzLndvcmRzW1RdJkM7dGhpcy53b3Jkc1tUXT0oMHx0aGlzLndvcmRzW1RdKS1VPDx5fFYsVj1VPj4+MjYteX1WJiYodGhp'@; put 'cy53b3Jkc1tUXT1WLHRoaXMubGVuZ3RoKyspfWlmKDAhPT14KXtmb3IoVD10aGlzLmxlbmd0aC0xO1Q+PTA7VC0tKXRoaXMud29yZHNbVCt4XT10aGlzLndvcmRzW1RdO2ZvcihUPTA7VDx4O1QrKyl0aGlzLndvcmRzW1RdPTA7dGhpcy5sZW5ndGgrPXh9cmV0dXJuIHRoaXMuc3RyaXAoKX0s'@; put 'dy5wcm90b3R5cGUuaXNobG49ZnVuY3Rpb24oZyl7cmV0dXJuIHAoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaGxuKGcpfSx3LnByb3RvdHlwZS5pdXNocm49ZnVuY3Rpb24oZyx5LHgpe3ZhciBDO3AoIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKSxDPXk/KHkteSUyNikvMjY6MDt2YXIg'@; put 'VD1nJTI2LFY9TWF0aC5taW4oKGctVCkvMjYsdGhpcy5sZW5ndGgpLFU9NjcxMDg4NjNeNjcxMDg4NjM+Pj5UPDxULEU9eDtpZihDLT1WLEM9TWF0aC5tYXgoMCxDKSxFKXtmb3IodmFyIG09MDttPFY7bSsrKUUud29yZHNbbV09dGhpcy53b3Jkc1ttXTtFLmxlbmd0aD1WfWlmKDAhPT1WKWlm'@; put 'KHRoaXMubGVuZ3RoPlYpZm9yKHRoaXMubGVuZ3RoLT1WLG09MDttPHRoaXMubGVuZ3RoO20rKyl0aGlzLndvcmRzW21dPXRoaXMud29yZHNbbStWXTtlbHNlIHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xO3ZhciBBPTA7Zm9yKG09dGhpcy5sZW5ndGgtMTttPj0wJiYoMCE9PUF8fG0+'@; put 'PUMpO20tLSl7dmFyIGFlPTB8dGhpcy53b3Jkc1ttXTt0aGlzLndvcmRzW21dPUE8PDI2LVR8YWU+Pj5ULEE9YWUmVX1yZXR1cm4gRSYmMCE9PUEmJihFLndvcmRzW0UubGVuZ3RoKytdPUEpLDA9PT10aGlzLmxlbmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLnN0'@; put 'cmlwKCl9LHcucHJvdG90eXBlLmlzaHJuPWZ1bmN0aW9uKGcseSx4KXtyZXR1cm4gcCgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4oZyx5LHgpfSx3LnByb3RvdHlwZS5zaGxuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaXNobG4oZyl9LHcucHJvdG90eXBlLnVzaGxu'@; put 'PWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaGxuKGcpfSx3LnByb3RvdHlwZS5zaHJuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaXNocm4oZyl9LHcucHJvdG90eXBlLnVzaHJuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaHJuKGcpfSx3'@; put 'LnByb3RvdHlwZS50ZXN0bj1mdW5jdGlvbihnKXtwKCJudW1iZXIiPT10eXBlb2YgZyYmZz49MCk7dmFyIHk9ZyUyNix4PShnLXkpLzI2O3JldHVybiEodGhpcy5sZW5ndGg8PXh8fCEodGhpcy53b3Jkc1t4XSYxPDx5KSl9LHcucHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbihnKXtwKCJudW1i'@; put 'ZXIiPT10eXBlb2YgZyYmZz49MCk7dmFyIHk9ZyUyNix4PShnLXkpLzI2O3JldHVybiBwKDA9PT10aGlzLm5lZ2F0aXZlLCJpbWFza24gd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlIG51bWJlcnMiKSx0aGlzLmxlbmd0aDw9eD90aGlzOigwIT09eSYmeCsrLHRoaXMubGVuZ3RoPU1hdGgubWlu'@; put 'KHgsdGhpcy5sZW5ndGgpLDAhPT15JiYodGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSY9NjcxMDg4NjNeNjcxMDg4NjM+Pj55PDx5KSx0aGlzLnN0cmlwKCkpfSx3LnByb3RvdHlwZS5tYXNrbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbihnKX0sdy5wcm90b3R5cGUu'@; put 'aWFkZG49ZnVuY3Rpb24oZyl7cmV0dXJuIHAoIm51bWJlciI9PXR5cGVvZiBnKSxwKGc8NjcxMDg4NjQpLGc8MD90aGlzLmlzdWJuKC1nKTowIT09dGhpcy5uZWdhdGl2ZT8xPT09dGhpcy5sZW5ndGgmJigwfHRoaXMud29yZHNbMF0pPGc/KHRoaXMud29yZHNbMF09Zy0oMHx0aGlzLndvcmRz'@; put 'WzBdKSx0aGlzLm5lZ2F0aXZlPTAsdGhpcyk6KHRoaXMubmVnYXRpdmU9MCx0aGlzLmlzdWJuKGcpLHRoaXMubmVnYXRpdmU9MSx0aGlzKTp0aGlzLl9pYWRkbihnKX0sdy5wcm90b3R5cGUuX2lhZGRuPWZ1bmN0aW9uKGcpe3RoaXMud29yZHNbMF0rPWc7Zm9yKHZhciB5PTA7eTx0aGlzLmxl'@; put 'bmd0aCYmdGhpcy53b3Jkc1t5XT49NjcxMDg4NjQ7eSsrKXRoaXMud29yZHNbeV0tPTY3MTA4ODY0LHk9PT10aGlzLmxlbmd0aC0xP3RoaXMud29yZHNbeSsxXT0xOnRoaXMud29yZHNbeSsxXSsrO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCx5KzEpLHRoaXN9LHcu'@; put 'cHJvdG90eXBlLmlzdWJuPWZ1bmN0aW9uKGcpe2lmKHAoIm51bWJlciI9PXR5cGVvZiBnKSxwKGc8NjcxMDg4NjQpLGc8MClyZXR1cm4gdGhpcy5pYWRkbigtZyk7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKGcpLHRoaXMubmVnYXRpdmU9'@; put 'MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPWcsMT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFyIHk9MDt5PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3ldPDA7eSsrKXRoaXMud29y'@; put 'ZHNbeV0rPTY3MTA4ODY0LHRoaXMud29yZHNbeSsxXS09MTtyZXR1cm4gdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaWFkZG4oZyl9LHcucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5p'@; put 'c3VibihnKX0sdy5wcm90b3R5cGUuaWFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30sdy5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCl9LHcucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbihnLHkseCl7dmFy'@; put 'IFQ7dGhpcy5fZXhwYW5kKGcubGVuZ3RoK3gpO3ZhciBWLFU9MDtmb3IoVD0wO1Q8Zy5sZW5ndGg7VCsrKXtWPSgwfHRoaXMud29yZHNbVCt4XSkrVTt2YXIgRT0oMHxnLndvcmRzW1RdKSp5O1U9KChWLT02NzEwODg2MyZFKT4+MjYpLShFLzY3MTA4ODY0fDApLHRoaXMud29yZHNbVCt4XT02'@; put 'NzEwODg2MyZWfWZvcig7VDx0aGlzLmxlbmd0aC14O1QrKylVPShWPSgwfHRoaXMud29yZHNbVCt4XSkrVSk+PjI2LHRoaXMud29yZHNbVCt4XT02NzEwODg2MyZWO2lmKDA9PT1VKXJldHVybiB0aGlzLnN0cmlwKCk7Zm9yKHAoLTE9PT1VKSxVPTAsVD0wO1Q8dGhpcy5sZW5ndGg7VCsrKVU9'@; put 'KFY9LSgwfHRoaXMud29yZHNbVF0pK1UpPj4yNix0aGlzLndvcmRzW1RdPTY3MTA4ODYzJlY7cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKGcseSl7dmFyIHgsQz10aGlzLmNsb25lKCksVD1nLFY9MHxULndvcmRzW1Qu'@; put 'bGVuZ3RoLTFdOzAhPSh4PTI2LXRoaXMuX2NvdW50Qml0cyhWKSkmJihUPVQudXNobG4oeCksQy5pdXNobG4oeCksVj0wfFQud29yZHNbVC5sZW5ndGgtMV0pO3ZhciBtLEU9Qy5sZW5ndGgtVC5sZW5ndGg7aWYoIm1vZCIhPT15KXsobT1uZXcgdyhudWxsKSkubGVuZ3RoPUUrMSxtLndvcmRz'@; put 'PW5ldyBBcnJheShtLmxlbmd0aCk7Zm9yKHZhciBBPTA7QTxtLmxlbmd0aDtBKyspbS53b3Jkc1tBXT0wfXZhciBhZT1DLmNsb25lKCkuX2lzaGxuc3VibXVsKFQsMSxFKTswPT09YWUubmVnYXRpdmUmJihDPWFlLG0mJihtLndvcmRzW0VdPTEpKTtmb3IodmFyIG5lPUUtMTtuZT49MDtuZS0t'@; put 'KXt2YXIgbGU9NjcxMDg4NjQqKDB8Qy53b3Jkc1tULmxlbmd0aCtuZV0pKygwfEMud29yZHNbVC5sZW5ndGgrbmUtMV0pO2ZvcihsZT1NYXRoLm1pbihsZS9WfDAsNjcxMDg4NjMpLEMuX2lzaGxuc3VibXVsKFQsbGUsbmUpOzAhPT1DLm5lZ2F0aXZlOylsZS0tLEMubmVnYXRpdmU9MCxDLl9p'@; put 'c2hsbnN1Ym11bChULDEsbmUpLEMuaXNaZXJvKCl8fChDLm5lZ2F0aXZlXj0xKTttJiYobS53b3Jkc1tuZV09bGUpfXJldHVybiBtJiZtLnN0cmlwKCksQy5zdHJpcCgpLCJkaXYiIT09eSYmMCE9PXgmJkMuaXVzaHJuKHgpLHtkaXY6bXx8bnVsbCxtb2Q6Q319LHcucHJvdG90eXBlLmRpdm1v'@; put 'ZD1mdW5jdGlvbihnLHkseCl7cmV0dXJuIHAoIWcuaXNaZXJvKCkpLHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgdygwKSxtb2Q6bmV3IHcoMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Zy5uZWdhdGl2ZT8oVj10aGlzLm5lZygpLmRpdm1vZChnLHkpLCJtb2QiIT09eSYmKEM9Vi5kaXYubmVn'@; put 'KCkpLCJkaXYiIT09eSYmKFQ9Vi5tb2QubmVnKCkseCYmMCE9PVQubmVnYXRpdmUmJlQuaWFkZChnKSkse2RpdjpDLG1vZDpUfSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT1nLm5lZ2F0aXZlPyhWPXRoaXMuZGl2bW9kKGcubmVnKCkseSksIm1vZCIhPT15JiYoQz1WLmRpdi5uZWcoKSkse2Rp'@; put 'djpDLG1vZDpWLm1vZH0pOnRoaXMubmVnYXRpdmUmZy5uZWdhdGl2ZT8oVj10aGlzLm5lZygpLmRpdm1vZChnLm5lZygpLHkpLCJkaXYiIT09eSYmKFQ9Vi5tb2QubmVnKCkseCYmMCE9PVQubmVnYXRpdmUmJlQuaXN1YihnKSkse2RpdjpWLmRpdixtb2Q6VH0pOmcubGVuZ3RoPnRoaXMubGVu'@; put 'Z3RofHx0aGlzLmNtcChnKTwwP3tkaXY6bmV3IHcoMCksbW9kOnRoaXN9OjE9PT1nLmxlbmd0aD8iZGl2Ij09PXk/e2Rpdjp0aGlzLmRpdm4oZy53b3Jkc1swXSksbW9kOm51bGx9OiJtb2QiPT09eT97ZGl2Om51bGwsbW9kOm5ldyB3KHRoaXMubW9kbihnLndvcmRzWzBdKSl9OntkaXY6dGhp'@; put 'cy5kaXZuKGcud29yZHNbMF0pLG1vZDpuZXcgdyh0aGlzLm1vZG4oZy53b3Jkc1swXSkpfTp0aGlzLl93b3JkRGl2KGcseSk7dmFyIEMsVCxWfSx3LnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuZGl2bW9kKGcsImRpdiIsITEpLmRpdn0sdy5wcm90b3R5cGUubW9kPWZ1'@; put 'bmN0aW9uKGcpe3JldHVybiB0aGlzLmRpdm1vZChnLCJtb2QiLCExKS5tb2R9LHcucHJvdG90eXBlLnVtb2Q9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuZGl2bW9kKGcsIm1vZCIsITApLm1vZH0sdy5wcm90b3R5cGUuZGl2Um91bmQ9ZnVuY3Rpb24oZyl7dmFyIHk9dGhpcy5kaXZtb2QoZyk7'@; put 'aWYoeS5tb2QuaXNaZXJvKCkpcmV0dXJuIHkuZGl2O3ZhciB4PTAhPT15LmRpdi5uZWdhdGl2ZT95Lm1vZC5pc3ViKGcpOnkubW9kLEM9Zy51c2hybigxKSxUPWcuYW5kbG4oMSksVj14LmNtcChDKTtyZXR1cm4gVjwwfHwxPT09VCYmMD09PVY/eS5kaXY6MCE9PXkuZGl2Lm5lZ2F0aXZlP3ku'@; put 'ZGl2LmlzdWJuKDEpOnkuZGl2LmlhZGRuKDEpfSx3LnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKGcpe3AoZzw9NjcxMDg4NjMpO2Zvcih2YXIgeT0oMTw8MjYpJWcseD0wLEM9dGhpcy5sZW5ndGgtMTtDPj0wO0MtLSl4PSh5KngrKDB8dGhpcy53b3Jkc1tDXSkpJWc7cmV0dXJuIHh9LHcucHJv'@; put 'dG90eXBlLmlkaXZuPWZ1bmN0aW9uKGcpe3AoZzw9NjcxMDg4NjMpO2Zvcih2YXIgeT0wLHg9dGhpcy5sZW5ndGgtMTt4Pj0wO3gtLSl7dmFyIEM9KDB8dGhpcy53b3Jkc1t4XSkrNjcxMDg4NjQqeTt0aGlzLndvcmRzW3hdPUMvZ3wwLHk9QyVnfXJldHVybiB0aGlzLnN0cmlwKCl9LHcucHJv'@; put 'dG90eXBlLmRpdm49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pZGl2bihnKX0sdy5wcm90b3R5cGUuZWdjZD1mdW5jdGlvbihnKXtwKDA9PT1nLm5lZ2F0aXZlKSxwKCFnLmlzWmVybygpKTt2YXIgeT10aGlzLHg9Zy5jbG9uZSgpO3k9MCE9PXkubmVnYXRpdmU/eS51bW9kKGcp'@; put 'OnkuY2xvbmUoKTtmb3IodmFyIEM9bmV3IHcoMSksVD1uZXcgdygwKSxWPW5ldyB3KDApLFU9bmV3IHcoMSksRT0wO3kuaXNFdmVuKCkmJnguaXNFdmVuKCk7KXkuaXVzaHJuKDEpLHguaXVzaHJuKDEpLCsrRTtmb3IodmFyIG09eC5jbG9uZSgpLEE9eS5jbG9uZSgpOyF5LmlzWmVybygpOyl7'@; put 'Zm9yKHZhciBhZT0wLG5lPTE7ISh5LndvcmRzWzBdJm5lKSYmYWU8MjY7KythZSxuZTw8PTEpO2lmKGFlPjApZm9yKHkuaXVzaHJuKGFlKTthZS0tID4wOykoQy5pc09kZCgpfHxULmlzT2RkKCkpJiYoQy5pYWRkKG0pLFQuaXN1YihBKSksQy5pdXNocm4oMSksVC5pdXNocm4oMSk7Zm9yKHZh'@; put 'ciBsZT0wLHdlPTE7ISh4LndvcmRzWzBdJndlKSYmbGU8MjY7KytsZSx3ZTw8PTEpO2lmKGxlPjApZm9yKHguaXVzaHJuKGxlKTtsZS0tID4wOykoVi5pc09kZCgpfHxVLmlzT2RkKCkpJiYoVi5pYWRkKG0pLFUuaXN1YihBKSksVi5pdXNocm4oMSksVS5pdXNocm4oMSk7eS5jbXAoeCk+PTA/'@; put 'KHkuaXN1Yih4KSxDLmlzdWIoViksVC5pc3ViKFUpKTooeC5pc3ViKHkpLFYuaXN1YihDKSxVLmlzdWIoVCkpfXJldHVybnthOlYsYjpVLGdjZDp4Lml1c2hsbihFKX19LHcucHJvdG90eXBlLl9pbnZtcD1mdW5jdGlvbihnKXtwKDA9PT1nLm5lZ2F0aXZlKSxwKCFnLmlzWmVybygpKTt2YXIg'@; put 'YWUseT10aGlzLHg9Zy5jbG9uZSgpO3k9MCE9PXkubmVnYXRpdmU/eS51bW9kKGcpOnkuY2xvbmUoKTtmb3IodmFyIEM9bmV3IHcoMSksVD1uZXcgdygwKSxWPXguY2xvbmUoKTt5LmNtcG4oMSk+MCYmeC5jbXBuKDEpPjA7KXtmb3IodmFyIFU9MCxFPTE7ISh5LndvcmRzWzBdJkUpJiZVPDI2'@; put 'OysrVSxFPDw9MSk7aWYoVT4wKWZvcih5Lml1c2hybihVKTtVLS0gPjA7KUMuaXNPZGQoKSYmQy5pYWRkKFYpLEMuaXVzaHJuKDEpO2Zvcih2YXIgbT0wLEE9MTshKHgud29yZHNbMF0mQSkmJm08MjY7KyttLEE8PD0xKTtpZihtPjApZm9yKHguaXVzaHJuKG0pO20tLSA+MDspVC5pc09kZCgp'@; put 'JiZULmlhZGQoViksVC5pdXNocm4oMSk7eS5jbXAoeCk+PTA/KHkuaXN1Yih4KSxDLmlzdWIoVCkpOih4LmlzdWIoeSksVC5pc3ViKEMpKX1yZXR1cm4oYWU9MD09PXkuY21wbigxKT9DOlQpLmNtcG4oMCk8MCYmYWUuaWFkZChnKSxhZX0sdy5wcm90b3R5cGUuZ2NkPWZ1bmN0aW9uKGcpe2lm'@; put 'KHRoaXMuaXNaZXJvKCkpcmV0dXJuIGcuYWJzKCk7aWYoZy5pc1plcm8oKSlyZXR1cm4gdGhpcy5hYnMoKTt2YXIgeT10aGlzLmNsb25lKCkseD1nLmNsb25lKCk7eS5uZWdhdGl2ZT0wLHgubmVnYXRpdmU9MDtmb3IodmFyIEM9MDt5LmlzRXZlbigpJiZ4LmlzRXZlbigpO0MrKyl5Lml1c2hy'@; put 'bigxKSx4Lml1c2hybigxKTtmb3IoOzspe2Zvcig7eS5pc0V2ZW4oKTspeS5pdXNocm4oMSk7Zm9yKDt4LmlzRXZlbigpOyl4Lml1c2hybigxKTt2YXIgVD15LmNtcCh4KTtpZihUPDApe3ZhciBWPXk7eT14LHg9Vn1lbHNlIGlmKDA9PT1UfHwwPT09eC5jbXBuKDEpKWJyZWFrO3kuaXN1Yih4'@; put 'KX1yZXR1cm4geC5pdXNobG4oQyl9LHcucHJvdG90eXBlLmludm09ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuZWdjZChnKS5hLnVtb2QoZyl9LHcucHJvdG90eXBlLmlzRXZlbj1mdW5jdGlvbigpe3JldHVybiEoMSZ0aGlzLndvcmRzWzBdKX0sdy5wcm90b3R5cGUuaXNPZGQ9ZnVuY3Rpb24o'@; put 'KXtyZXR1cm4hKDEmfnRoaXMud29yZHNbMF0pfSx3LnByb3RvdHlwZS5hbmRsbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy53b3Jkc1swXSZnfSx3LnByb3RvdHlwZS5iaW5jbj1mdW5jdGlvbihnKXtwKCJudW1iZXIiPT10eXBlb2YgZyk7dmFyIHk9ZyUyNix4PShnLXkpLzI2LEM9MTw8eTtp'@; put 'Zih0aGlzLmxlbmd0aDw9eClyZXR1cm4gdGhpcy5fZXhwYW5kKHgrMSksdGhpcy53b3Jkc1t4XXw9Qyx0aGlzO2Zvcih2YXIgVD1DLFY9eDswIT09VCYmVjx0aGlzLmxlbmd0aDtWKyspe3ZhciBVPTB8dGhpcy53b3Jkc1tWXTtUPShVKz1UKT4+PjI2LHRoaXMud29yZHNbVl09VSY9NjcxMDg4'@; put 'NjN9cmV0dXJuIDAhPT1UJiYodGhpcy53b3Jkc1tWXT1ULHRoaXMubGVuZ3RoKyspLHRoaXN9LHcucHJvdG90eXBlLmlzWmVybz1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdfSx3LnByb3RvdHlwZS5jbXBuPWZ1bmN0aW9uKGcpe3ZhciB4LHk9'@; put 'ZzwwO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYheSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmeSlyZXR1cm4gMTtpZih0aGlzLnN0cmlwKCksdGhpcy5sZW5ndGg+MSl4PTE7ZWxzZXt5JiYoZz0tZykscChnPD02NzEwODg2MywiTnVtYmVyIGlzIHRvbyBiaWciKTt2YXIgQz0wfHRo'@; put 'aXMud29yZHNbMF07eD1DPT09Zz8wOkM8Zz8tMToxfXJldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC14Onh9LHcucHJvdG90eXBlLmNtcD1mdW5jdGlvbihnKXtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PWcubmVnYXRpdmUpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT1n'@; put 'Lm5lZ2F0aXZlKXJldHVybiAxO3ZhciB5PXRoaXMudWNtcChnKTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwteTp5fSx3LnByb3RvdHlwZS51Y21wPWZ1bmN0aW9uKGcpe2lmKHRoaXMubGVuZ3RoPmcubGVuZ3RoKXJldHVybiAxO2lmKHRoaXMubGVuZ3RoPGcubGVuZ3RoKXJldHVybi0x'@; put 'O2Zvcih2YXIgeT0wLHg9dGhpcy5sZW5ndGgtMTt4Pj0wO3gtLSl7dmFyIEM9MHx0aGlzLndvcmRzW3hdLFQ9MHxnLndvcmRzW3hdO2lmKEMhPT1UKXtDPFQ/eT0tMTpDPlQmJih5PTEpO2JyZWFrfX1yZXR1cm4geX0sdy5wcm90b3R5cGUuZ3RuPWZ1bmN0aW9uKGcpe3JldHVybiAxPT09dGhp'@; put 'cy5jbXBuKGcpfSx3LnByb3RvdHlwZS5ndD1mdW5jdGlvbihnKXtyZXR1cm4gMT09PXRoaXMuY21wKGcpfSx3LnByb3RvdHlwZS5ndGVuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNtcG4oZyk+PTB9LHcucHJvdG90eXBlLmd0ZT1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbXAoZyk+PTB9'@; put 'LHcucHJvdG90eXBlLmx0bj1mdW5jdGlvbihnKXtyZXR1cm4tMT09PXRoaXMuY21wbihnKX0sdy5wcm90b3R5cGUubHQ9ZnVuY3Rpb24oZyl7cmV0dXJuLTE9PT10aGlzLmNtcChnKX0sdy5wcm90b3R5cGUubHRlbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbXBuKGcpPD0wfSx3LnByb3Rv'@; put 'dHlwZS5sdGU9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY21wKGcpPD0wfSx3LnByb3RvdHlwZS5lcW49ZnVuY3Rpb24oZyl7cmV0dXJuIDA9PT10aGlzLmNtcG4oZyl9LHcucHJvdG90eXBlLmVxPWZ1bmN0aW9uKGcpe3JldHVybiAwPT09dGhpcy5jbXAoZyl9LHcucmVkPWZ1bmN0aW9uKGcp'@; put 'e3JldHVybiBuZXcgU2UoZyl9LHcucHJvdG90eXBlLnRvUmVkPWZ1bmN0aW9uKGcpe3JldHVybiBwKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHAoMD09PXRoaXMubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksZy5j'@; put 'b252ZXJ0VG8odGhpcykuX2ZvcmNlUmVkKGcpfSx3LnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3aXRoIG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX0sdy5w'@; put 'cm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLnJlZD1nLHRoaXN9LHcucHJvdG90eXBlLmZvcmNlUmVkPWZ1bmN0aW9uKGcpe3JldHVybiBwKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMuX2ZvcmNlUmVkKGcp'@; put 'fSx3LnByb3RvdHlwZS5yZWRBZGQ9ZnVuY3Rpb24oZyl7cmV0dXJuIHAodGhpcy5yZWQsInJlZEFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5hZGQodGhpcyxnKX0sdy5wcm90b3R5cGUucmVkSUFkZD1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVk'@; put 'SUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMsZyl9LHcucHJvdG90eXBlLnJlZFN1Yj1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnN1Yih0aGlzLGcp'@; put 'fSx3LnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0aW9uKGcpe3JldHVybiBwKHRoaXMucmVkLCJyZWRJU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlzdWIodGhpcyxnKX0sdy5wcm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKGcpe3JldHVybiBwKHRoaXMucmVkLCJy'@; put 'ZWRTaGwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMsZyl9LHcucHJvdG90eXBlLnJlZE11bD1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRo'@; put 'aXMsZyksdGhpcy5yZWQubXVsKHRoaXMsZyl9LHcucHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24oZyl7cmV0dXJuIHAodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLGcpLHRoaXMucmVkLmltdWwodGhpcyxnKX0s'@; put 'dy5wcm90b3R5cGUucmVkU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5yZWQsInJlZFNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXIodGhpcyl9LHcucHJvdG90eXBlLnJlZElTcXI9ZnVuY3Rpb24oKXtyZXR1'@; put 'cm4gcCh0aGlzLnJlZCwicmVkSVNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pc3FyKHRoaXMpfSx3LnByb3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5yZWQsInJlZFNxcnQgd29ya3Mgb25s'@; put 'eSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FydCh0aGlzKX0sdy5wcm90b3R5cGUucmVkSW52bT1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMucmVkLCJyZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92'@; put 'ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmludm0odGhpcyl9LHcucHJvdG90eXBlLnJlZE5lZz1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMucmVkLCJyZWROZWcgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQubmVnKHRoaXMpfSx3'@; put 'LnByb3RvdHlwZS5yZWRQb3c9ZnVuY3Rpb24oZyl7cmV0dXJuIHAodGhpcy5yZWQmJiFnLnJlZCwicmVkUG93KG5vcm1hbE51bSkiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5wb3codGhpcyxnKX07dmFyIHRlPXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1'@; put 'MTk6bnVsbH07ZnVuY3Rpb24gaWUoeixnKXt0aGlzLm5hbWU9eix0aGlzLnA9bmV3IHcoZywxNiksdGhpcy5uPXRoaXMucC5iaXRMZW5ndGgoKSx0aGlzLms9bmV3IHcoMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApLHRoaXMudG1wPXRoaXMuX3RtcCgpfWZ1bmN0aW9uIHNlKCl7aWUu'@; put 'Y2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBnZSgpe2llLmNhbGwodGhpcywicDIyNCIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDAw'@; put 'MDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAxIil9ZnVuY3Rpb24gX2UoKXtpZS5jYWxsKHRoaXMsInAxOTIiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIpfWZ1bmN0aW9uIFRlKCl7aWUuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZm'@; put 'ZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBTZSh6KXtpZigic3RyaW5nIj09dHlwZW9mIHope3ZhciBnPXcuX3ByaW1lKHopO3RoaXMubT1nLnAsdGhpcy5wcmltZT1nfWVsc2UgcCh6Lmd0bigxKSwibW9kdWx1cyBt'@; put 'dXN0IGJlIGdyZWF0ZXIgdGhhbiAxIiksdGhpcy5tPXosdGhpcy5wcmltZT1udWxsfWZ1bmN0aW9uIHplKHope1NlLmNhbGwodGhpcyx6KSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5y'@; put 'PW5ldyB3KDEpLml1c2hsbih0aGlzLnNoaWZ0KSx0aGlzLnIyPXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIuX2ludm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3VibigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52'@; put 'LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9dGhpcy5yLnN1Yih0aGlzLm1pbnYpfWllLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFyIGc9bmV3IHcobnVsbCk7cmV0dXJuIGcud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKSxnfSxpZS5wcm90b3R5cGUuaXJlZHVjZT1m'@; put 'dW5jdGlvbihnKXt2YXIgeCx5PWc7ZG97dGhpcy5zcGxpdCh5LHRoaXMudG1wKSx4PSh5PSh5PXRoaXMuaW11bEsoeSkpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZSh4PnRoaXMubik7dmFyIEM9eDx0aGlzLm4/LTE6eS51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT1DPyh5Lndv'@; put 'cmRzWzBdPTAseS5sZW5ndGg9MSk6Qz4wP3kuaXN1Yih0aGlzLnApOnZvaWQgMCE9PXkuc3RyaXA/eS5zdHJpcCgpOnkuX3N0cmlwKCkseX0saWUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKGcseSl7Zy5pdXNocm4odGhpcy5uLDAseSl9LGllLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihn'@; put 'KXtyZXR1cm4gZy5pbXVsKHRoaXMuayl9LE4oc2UsaWUpLHNlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihnLHkpe2Zvcih2YXIgeD00MTk0MzAzLEM9TWF0aC5taW4oZy5sZW5ndGgsOSksVD0wO1Q8QztUKyspeS53b3Jkc1tUXT1nLndvcmRzW1RdO2lmKHkubGVuZ3RoPUMsZy5sZW5ndGg8'@; put 'PTkpcmV0dXJuIGcud29yZHNbMF09MCx2b2lkKGcubGVuZ3RoPTEpO3ZhciBWPWcud29yZHNbOV07Zm9yKHkud29yZHNbeS5sZW5ndGgrK109ViZ4LFQ9MTA7VDxnLmxlbmd0aDtUKyspe3ZhciBVPTB8Zy53b3Jkc1tUXTtnLndvcmRzW1QtMTBdPShVJngpPDw0fFY+Pj4yMixWPVV9Zy53b3Jk'@; put 'c1tULTEwXT1WPj4+PTIyLGcubGVuZ3RoLT0wPT09ViYmZy5sZW5ndGg+MTA/MTA6OX0sc2UucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKGcpe2cud29yZHNbZy5sZW5ndGhdPTAsZy53b3Jkc1tnLmxlbmd0aCsxXT0wLGcubGVuZ3RoKz0yO2Zvcih2YXIgeT0wLHg9MDt4PGcubGVuZ3RoO3gr'@; put 'Kyl7dmFyIEM9MHxnLndvcmRzW3hdO2cud29yZHNbeF09NjcxMDg4NjMmKHkrPTk3NypDKSx5PTY0KkMrKHkvNjcxMDg4NjR8MCl9cmV0dXJuIDA9PT1nLndvcmRzW2cubGVuZ3RoLTFdJiYoZy5sZW5ndGgtLSwwPT09Zy53b3Jkc1tnLmxlbmd0aC0xXSYmZy5sZW5ndGgtLSksZ30sTihnZSxp'@; put 'ZSksTihfZSxpZSksTihUZSxpZSksVGUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKGcpe2Zvcih2YXIgeT0wLHg9MDt4PGcubGVuZ3RoO3grKyl7dmFyIEM9MTkqKDB8Zy53b3Jkc1t4XSkreSxUPTY3MTA4ODYzJkM7Qz4+Pj0yNixnLndvcmRzW3hdPVQseT1DfXJldHVybiAwIT09eSYmKGcu'@; put 'd29yZHNbZy5sZW5ndGgrK109eSksZ30sdy5fcHJpbWU9ZnVuY3Rpb24oZyl7aWYodGVbZ10pcmV0dXJuIHRlW2ddO3ZhciB5O2lmKCJrMjU2Ij09PWcpeT1uZXcgc2U7ZWxzZSBpZigicDIyNCI9PT1nKXk9bmV3IGdlO2Vsc2UgaWYoInAxOTIiPT09Zyl5PW5ldyBfZTtlbHNle2lmKCJwMjU1'@; put 'MTkiIT09Zyl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gcHJpbWUgIitnKTt5PW5ldyBUZX1yZXR1cm4gdGVbZ109eSx5fSxTZS5wcm90b3R5cGUuX3ZlcmlmeTE9ZnVuY3Rpb24oZyl7cCgwPT09Zy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxwKGcucmVkLCJy'@; put 'ZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LFNlLnByb3RvdHlwZS5fdmVyaWZ5Mj1mdW5jdGlvbihnLHkpe3AoIShnLm5lZ2F0aXZlfHkubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLHAoZy5yZWQmJmcucmVkPT09eS5yZWQsInJlZCB3b3JrcyBv'@; put 'bmx5IHdpdGggcmVkIG51bWJlcnMiKX0sU2UucHJvdG90eXBlLmltb2Q9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKGcpLl9mb3JjZVJlZCh0aGlzKTpnLnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcyl9LFNlLnByb3RvdHlwZS5uZWc9ZnVuY3Rp'@; put 'b24oZyl7cmV0dXJuIGcuaXNaZXJvKCk/Zy5jbG9uZSgpOnRoaXMubS5zdWIoZykuX2ZvcmNlUmVkKHRoaXMpfSxTZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGcseSl7dGhpcy5fdmVyaWZ5MihnLHkpO3ZhciB4PWcuYWRkKHkpO3JldHVybiB4LmNtcCh0aGlzLm0pPj0wJiZ4LmlzdWIodGhp'@; put 'cy5tKSx4Ll9mb3JjZVJlZCh0aGlzKX0sU2UucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oZyx5KXt0aGlzLl92ZXJpZnkyKGcseSk7dmFyIHg9Zy5pYWRkKHkpO3JldHVybiB4LmNtcCh0aGlzLm0pPj0wJiZ4LmlzdWIodGhpcy5tKSx4fSxTZS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKGcseSl7'@; put 'dGhpcy5fdmVyaWZ5MihnLHkpO3ZhciB4PWcuc3ViKHkpO3JldHVybiB4LmNtcG4oMCk8MCYmeC5pYWRkKHRoaXMubSkseC5fZm9yY2VSZWQodGhpcyl9LFNlLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKGcseSl7dGhpcy5fdmVyaWZ5MihnLHkpO3ZhciB4PWcuaXN1Yih5KTtyZXR1cm4geC5j'@; put 'bXBuKDApPDAmJnguaWFkZCh0aGlzLm0pLHh9LFNlLnByb3RvdHlwZS5zaGw9ZnVuY3Rpb24oZyx5KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MShnKSx0aGlzLmltb2QoZy51c2hsbih5KSl9LFNlLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKGcseSl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoZyx5KSx0'@; put 'aGlzLmltb2QoZy5pbXVsKHkpKX0sU2UucHJvdG90eXBlLm11bD1mdW5jdGlvbihnLHkpe3JldHVybiB0aGlzLl92ZXJpZnkyKGcseSksdGhpcy5pbW9kKGcubXVsKHkpKX0sU2UucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuaW11bChnLGcuY2xvbmUoKSl9LFNlLnBy'@; put 'b3RvdHlwZS5zcXI9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubXVsKGcsZyl9LFNlLnByb3RvdHlwZS5zcXJ0PWZ1bmN0aW9uKGcpe2lmKGcuaXNaZXJvKCkpcmV0dXJuIGcuY2xvbmUoKTt2YXIgeT10aGlzLm0uYW5kbG4oMyk7aWYocCh5JTI9PTEpLDM9PT15KXt2YXIgeD10aGlzLm0uYWRk'@; put 'KG5ldyB3KDEpKS5pdXNocm4oMik7cmV0dXJuIHRoaXMucG93KGcseCl9Zm9yKHZhciBDPXRoaXMubS5zdWJuKDEpLFQ9MDshQy5pc1plcm8oKSYmMD09PUMuYW5kbG4oMSk7KVQrKyxDLml1c2hybigxKTtwKCFDLmlzWmVybygpKTt2YXIgVj1uZXcgdygxKS50b1JlZCh0aGlzKSxVPVYucmVk'@; put 'TmVnKCksRT10aGlzLm0uc3VibigxKS5pdXNocm4oMSksbT10aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKG09bmV3IHcoMiptKm0pLnRvUmVkKHRoaXMpOzAhPT10aGlzLnBvdyhtLEUpLmNtcChVKTspbS5yZWRJQWRkKFUpO2Zvcih2YXIgQT10aGlzLnBvdyhtLEMpLGFlPXRoaXMucG93KGcsQy5h'@; put 'ZGRuKDEpLml1c2hybigxKSksbmU9dGhpcy5wb3coZyxDKSxsZT1UOzAhPT1uZS5jbXAoVik7KXtmb3IodmFyIHdlPW5lLFplPTA7MCE9PXdlLmNtcChWKTtaZSsrKXdlPXdlLnJlZFNxcigpO3AoWmU8bGUpO3ZhciBRZT10aGlzLnBvdyhBLG5ldyB3KDEpLml1c2hsbihsZS1aZS0xKSk7YWU9'@; put 'YWUucmVkTXVsKFFlKSxBPVFlLnJlZFNxcigpLG5lPW5lLnJlZE11bChBKSxsZT1aZX1yZXR1cm4gYWV9LFNlLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKGcpe3ZhciB5PWcuX2ludm1wKHRoaXMubSk7cmV0dXJuIDAhPT15Lm5lZ2F0aXZlPyh5Lm5lZ2F0aXZlPTAsdGhpcy5pbW9kKHkpLnJl'@; put 'ZE5lZygpKTp0aGlzLmltb2QoeSl9LFNlLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oZyx5KXtpZih5LmlzWmVybygpKXJldHVybiBuZXcgdygxKS50b1JlZCh0aGlzKTtpZigwPT09eS5jbXBuKDEpKXJldHVybiBnLmNsb25lKCk7dmFyIEM9bmV3IEFycmF5KDE2KTtDWzBdPW5ldyB3KDEpLnRv'@; put 'UmVkKHRoaXMpLENbMV09Zztmb3IodmFyIFQ9MjtUPEMubGVuZ3RoO1QrKylDW1RdPXRoaXMubXVsKENbVC0xXSxnKTt2YXIgVj1DWzBdLFU9MCxFPTAsbT15LmJpdExlbmd0aCgpJTI2O2ZvcigwPT09bSYmKG09MjYpLFQ9eS5sZW5ndGgtMTtUPj0wO1QtLSl7Zm9yKHZhciBBPXkud29yZHNb'@; put 'VF0sYWU9bS0xO2FlPj0wO2FlLS0pe3ZhciBuZT1BPj5hZSYxO1YhPT1DWzBdJiYoVj10aGlzLnNxcihWKSksMCE9PW5lfHwwIT09VT8oVTw8PTEsVXw9bmUsKDQ9PSsrRXx8MD09PVQmJjA9PT1hZSkmJihWPXRoaXMubXVsKFYsQ1tVXSksRT0wLFU9MCkpOkU9MH1tPTI2fXJldHVybiBWfSxT'@; put 'ZS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKGcpe3ZhciB5PWcudW1vZCh0aGlzLm0pO3JldHVybiB5PT09Zz95LmNsb25lKCk6eX0sU2UucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKGcpe3ZhciB5PWcuY2xvbmUoKTtyZXR1cm4geS5yZWQ9bnVsbCx5fSx3Lm1vbnQ9ZnVu'@; put 'Y3Rpb24oZyl7cmV0dXJuIG5ldyB6ZShnKX0sTih6ZSxTZSksemUucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5pbW9kKGcudXNobG4odGhpcy5zaGlmdCkpfSx6ZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oZyl7dmFyIHk9dGhpcy5pbW9kKGcu'@; put 'bXVsKHRoaXMucmludikpO3JldHVybiB5LnJlZD1udWxsLHl9LHplLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKGcseSl7aWYoZy5pc1plcm8oKXx8eS5pc1plcm8oKSlyZXR1cm4gZy53b3Jkc1swXT0wLGcubGVuZ3RoPTEsZzt2YXIgeD1nLmltdWwoeSksQz14Lm1hc2tuKHRoaXMuc2hpZnQp'@; put 'Lm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxUPXguaXN1YihDKS5pdXNocm4odGhpcy5zaGlmdCksVj1UO3JldHVybiBULmNtcCh0aGlzLm0pPj0wP1Y9VC5pc3ViKHRoaXMubSk6VC5jbXBuKDApPDAmJihWPVQuaWFkZCh0aGlzLm0pKSxWLl9mb3JjZVJl'@; put 'ZCh0aGlzKX0semUucHJvdG90eXBlLm11bD1mdW5jdGlvbihnLHkpe2lmKGcuaXNaZXJvKCl8fHkuaXNaZXJvKCkpcmV0dXJuIG5ldyB3KDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgeD1nLm11bCh5KSxDPXgubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hp'@; put 'ZnQpLm11bCh0aGlzLm0pLFQ9eC5pc3ViKEMpLml1c2hybih0aGlzLnNoaWZ0KSxWPVQ7cmV0dXJuIFQuY21wKHRoaXMubSk+PTA/Vj1ULmlzdWIodGhpcy5tKTpULmNtcG4oMCk8MCYmKFY9VC5pYWRkKHRoaXMubSkpLFYuX2ZvcmNlUmVkKHRoaXMpfSx6ZS5wcm90b3R5cGUuaW52bT1mdW5j'@; put 'dGlvbihnKXtyZXR1cm4gdGhpcy5pbW9kKGcuX2ludm1wKHRoaXMubSkubXVsKHRoaXMucjIpKS5fZm9yY2VSZWQodGhpcyl9fShjZT1iLm5tZChjZSksdGhpcyl9LDQ1NzA6Y2U9PnsidXNlIHN0cmljdCI7dmFyIEo9T2JqZWN0LmRlZmluZVByb3BlcnR5fHwhMTtpZihKKXRyeXtKKHt9LCJh'@; put 'Iix7dmFsdWU6MX0pfWNhdGNoe0o9ITF9Y2UuZXhwb3J0cz1KfSwxNzU2OmNlPT57InVzZSBzdHJpY3QiO2NlLmV4cG9ydHM9RXZhbEVycm9yfSwzNzY0MDpjZT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPUVycm9yfSw3NzkzMzpjZT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPVJhbmdl'@; put 'RXJyb3J9LDY2MTM6Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz1SZWZlcmVuY2VFcnJvcn0sNTg0MTM6Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz1TeW50YXhFcnJvcn0sNDY3NTg6Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz1UeXBlRXJyb3J9LDUyODY6Y2U9PnsidXNl'@; put 'IHN0cmljdCI7Y2UuZXhwb3J0cz1VUklFcnJvcn0sNjU4OTE6Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz1PYmplY3R9LDQ0MzU2OmNlPT57InVzZSBzdHJpY3QiO3ZhciBELEo9Im9iamVjdCI9PXR5cGVvZiBSZWZsZWN0P1JlZmxlY3Q6bnVsbCxiPUomJiJmdW5jdGlvbiI9PXR5cGVv'@; put 'ZiBKLmFwcGx5P0ouYXBwbHk6ZnVuY3Rpb24oaWUsc2UsZ2Upe3JldHVybiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbChpZSxzZSxnZSl9O0Q9SiYmImZ1bmN0aW9uIj09dHlwZW9mIEoub3duS2V5cz9KLm93bktleXM6T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz9mdW5jdGlv'@; put 'bihpZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGllKS5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhpZSkpfTpmdW5jdGlvbihpZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGllKX07dmFyIHA9TnVtYmVyLmlzTmFOfHxmdW5jdGlv'@; put 'bihpZSl7cmV0dXJuIGllIT1pZX07ZnVuY3Rpb24gTigpe04uaW5pdC5jYWxsKHRoaXMpfWNlLmV4cG9ydHM9TixjZS5leHBvcnRzLm9uY2U9ZnVuY3Rpb24gWCh0ZSxpZSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHNlLGdlKXtmdW5jdGlvbiBfZShTZSl7dGUucmVtb3ZlTGlzdGVu'@; put 'ZXIoaWUsVGUpLGdlKFNlKX1mdW5jdGlvbiBUZSgpeyJmdW5jdGlvbiI9PXR5cGVvZiB0ZS5yZW1vdmVMaXN0ZW5lciYmdGUucmVtb3ZlTGlzdGVuZXIoImVycm9yIixfZSksc2UoW10uc2xpY2UuY2FsbChhcmd1bWVudHMpKX1xKHRlLGllLFRlLHtvbmNlOiEwfSksImVycm9yIiE9PWllJiZm'@; put 'dW5jdGlvbiBRKHRlLGllLHNlKXsiZnVuY3Rpb24iPT10eXBlb2YgdGUub24mJnEodGUsImVycm9yIixpZSxzZSl9KHRlLF9lLHtvbmNlOiEwfSl9KX0sTi5FdmVudEVtaXR0ZXI9TixOLnByb3RvdHlwZS5fZXZlbnRzPXZvaWQgMCxOLnByb3RvdHlwZS5fZXZlbnRzQ291bnQ9MCxOLnByb3Rv'@; put 'dHlwZS5fbWF4TGlzdGVuZXJzPXZvaWQgMDt2YXIgdz0xMDtmdW5jdGlvbiBGKHRlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdGUpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJsaXN0ZW5lciIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEZ1bmN0aW9uLiBSZWNlaXZlZCB0eXBlICcrdHlw'@; put 'ZW9mIHRlKX1mdW5jdGlvbiBIKHRlKXtyZXR1cm4gdm9pZCAwPT09dGUuX21heExpc3RlbmVycz9OLmRlZmF1bHRNYXhMaXN0ZW5lcnM6dGUuX21heExpc3RlbmVyc31mdW5jdGlvbiBSKHRlLGllLHNlLGdlKXt2YXIgX2UsVGUsU2U7aWYoRihzZSksdm9pZCAwPT09KFRlPXRlLl9ldmVudHMp'@; put 'PyhUZT10ZS5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksdGUuX2V2ZW50c0NvdW50PTApOih2b2lkIDAhPT1UZS5uZXdMaXN0ZW5lciYmKHRlLmVtaXQoIm5ld0xpc3RlbmVyIixpZSxzZS5saXN0ZW5lcj9zZS5saXN0ZW5lcjpzZSksVGU9dGUuX2V2ZW50cyksU2U9VGVbaWVdKSx2b2lk'@; put 'IDA9PT1TZSlTZT1UZVtpZV09c2UsKyt0ZS5fZXZlbnRzQ291bnQ7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgU2U/U2U9VGVbaWVdPWdlP1tzZSxTZV06W1NlLHNlXTpnZT9TZS51bnNoaWZ0KHNlKTpTZS5wdXNoKHNlKSwoX2U9SCh0ZSkpPjAmJlNlLmxlbmd0aD5fZSYmIVNlLndhcm5l'@; put 'ZCl7U2Uud2FybmVkPSEwO3ZhciB6ZT1uZXcgRXJyb3IoIlBvc3NpYmxlIEV2ZW50RW1pdHRlciBtZW1vcnkgbGVhayBkZXRlY3RlZC4gIitTZS5sZW5ndGgrIiAiK1N0cmluZyhpZSkrIiBsaXN0ZW5lcnMgYWRkZWQuIFVzZSBlbWl0dGVyLnNldE1heExpc3RlbmVycygpIHRvIGluY3JlYXNl'@; put 'IGxpbWl0Iik7emUubmFtZT0iTWF4TGlzdGVuZXJzRXhjZWVkZWRXYXJuaW5nIix6ZS5lbWl0dGVyPXRlLHplLnR5cGU9aWUsemUuY291bnQ9U2UubGVuZ3RoLGZ1bmN0aW9uIF8odGUpe2NvbnNvbGUmJmNvbnNvbGUud2FybiYmY29uc29sZS53YXJuKHRlKX0oemUpfXJldHVybiB0ZX1mdW5j'@; put 'dGlvbiBqKCl7aWYoIXRoaXMuZmlyZWQpcmV0dXJuIHRoaXMudGFyZ2V0LnJlbW92ZUxpc3RlbmVyKHRoaXMudHlwZSx0aGlzLndyYXBGbiksdGhpcy5maXJlZD0hMCwwPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLmxpc3RlbmVyLmNhbGwodGhpcy50YXJnZXQpOnRoaXMubGlzdGVuZXIuYXBw'@; put 'bHkodGhpcy50YXJnZXQsYXJndW1lbnRzKX1mdW5jdGlvbiBQKHRlLGllLHNlKXt2YXIgZ2U9e2ZpcmVkOiExLHdyYXBGbjp2b2lkIDAsdGFyZ2V0OnRlLHR5cGU6aWUsbGlzdGVuZXI6c2V9LF9lPWouYmluZChnZSk7cmV0dXJuIF9lLmxpc3RlbmVyPXNlLGdlLndyYXBGbj1fZSxfZX1mdW5j'@; put 'dGlvbiBMKHRlLGllLHNlKXt2YXIgZ2U9dGUuX2V2ZW50cztpZih2b2lkIDA9PT1nZSlyZXR1cm5bXTt2YXIgX2U9Z2VbaWVdO3JldHVybiB2b2lkIDA9PT1fZT9bXToiZnVuY3Rpb24iPT10eXBlb2YgX2U/c2U/W19lLmxpc3RlbmVyfHxfZV06W19lXTpzZT9mdW5jdGlvbiBaKHRlKXtmb3Io'@; put 'dmFyIGllPW5ldyBBcnJheSh0ZS5sZW5ndGgpLHNlPTA7c2U8aWUubGVuZ3RoOysrc2UpaWVbc2VdPXRlW3NlXS5saXN0ZW5lcnx8dGVbc2VdO3JldHVybiBpZX0oX2UpOkIoX2UsX2UubGVuZ3RoKX1mdW5jdGlvbiBZKHRlKXt2YXIgaWU9dGhpcy5fZXZlbnRzO2lmKHZvaWQgMCE9PWllKXt2'@; put 'YXIgc2U9aWVbdGVdO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBzZSlyZXR1cm4gMTtpZih2b2lkIDAhPT1zZSlyZXR1cm4gc2UubGVuZ3RofXJldHVybiAwfWZ1bmN0aW9uIEIodGUsaWUpe2Zvcih2YXIgc2U9bmV3IEFycmF5KGllKSxnZT0wO2dlPGllOysrZ2Upc2VbZ2VdPXRlW2dlXTtyZXR1'@; put 'cm4gc2V9ZnVuY3Rpb24gcSh0ZSxpZSxzZSxnZSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHRlLm9uKWdlLm9uY2U/dGUub25jZShpZSxzZSk6dGUub24oaWUsc2UpO2Vsc2V7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHRlLmFkZEV2ZW50TGlzdGVuZXIpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhl'@; put 'ICJlbWl0dGVyIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRXZlbnRFbWl0dGVyLiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIHRlKTt0ZS5hZGRFdmVudExpc3RlbmVyKGllLGZ1bmN0aW9uIF9lKFRlKXtnZS5vbmNlJiZ0ZS5yZW1vdmVFdmVudExpc3RlbmVyKGllLF9lKSxzZShUZSl9KX19'@; put 'T2JqZWN0LmRlZmluZVByb3BlcnR5KE4sImRlZmF1bHRNYXhMaXN0ZW5lcnMiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB3fSxzZXQ6ZnVuY3Rpb24odGUpe2lmKCJudW1iZXIiIT10eXBlb2YgdGV8fHRlPDB8fHAodGUpKXRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUg'@; put 'dmFsdWUgb2YgImRlZmF1bHRNYXhMaXN0ZW5lcnMiIGlzIG91dCBvZiByYW5nZS4gSXQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIuIFJlY2VpdmVkICcrdGUrIi4iKTt3PXRlfX0pLE4uaW5pdD1mdW5jdGlvbigpeyh2b2lkIDA9PT10aGlzLl9ldmVudHN8fHRoaXMuX2V2ZW50cz09'@; put 'PU9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKS5fZXZlbnRzKSYmKHRoaXMuX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuX2V2ZW50c0NvdW50PTApLHRoaXMuX21heExpc3RlbmVycz10aGlzLl9tYXhMaXN0ZW5lcnN8fHZvaWQgMH0sTi5wcm90b3R5cGUuc2V0TWF4TGlzdGVu'@; put 'ZXJzPWZ1bmN0aW9uKGllKXtpZigibnVtYmVyIiE9dHlwZW9mIGllfHxpZTwwfHxwKGllKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mICJuIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnK2llKyIuIik7cmV0'@; put 'dXJuIHRoaXMuX21heExpc3RlbmVycz1pZSx0aGlzfSxOLnByb3RvdHlwZS5nZXRNYXhMaXN0ZW5lcnM9ZnVuY3Rpb24oKXtyZXR1cm4gSCh0aGlzKX0sTi5wcm90b3R5cGUuZW1pdD1mdW5jdGlvbihpZSl7Zm9yKHZhciBzZT1bXSxnZT0xO2dlPGFyZ3VtZW50cy5sZW5ndGg7Z2UrKylzZS5w'@; put 'dXNoKGFyZ3VtZW50c1tnZV0pO3ZhciBfZT0iZXJyb3IiPT09aWUsVGU9dGhpcy5fZXZlbnRzO2lmKHZvaWQgMCE9PVRlKV9lPV9lJiZ2b2lkIDA9PT1UZS5lcnJvcjtlbHNlIGlmKCFfZSlyZXR1cm4hMTtpZihfZSl7dmFyIFNlO2lmKHNlLmxlbmd0aD4wJiYoU2U9c2VbMF0pLFNlIGluc3Rh'@; put 'bmNlb2YgRXJyb3IpdGhyb3cgU2U7dmFyIHplPW5ldyBFcnJvcigiVW5oYW5kbGVkIGVycm9yLiIrKFNlPyIgKCIrU2UubWVzc2FnZSsiKSI6IiIpKTt0aHJvdyB6ZS5jb250ZXh0PVNlLHplfXZhciB6PVRlW2llXTtpZih2b2lkIDA9PT16KXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVv'@; put 'ZiB6KWIoeix0aGlzLHNlKTtlbHNle3ZhciBnPXoubGVuZ3RoLHk9Qih6LGcpO2ZvcihnZT0wO2dlPGc7KytnZSliKHlbZ2VdLHRoaXMsc2UpfXJldHVybiEwfSxOLnByb3RvdHlwZS5vbj1OLnByb3RvdHlwZS5hZGRMaXN0ZW5lcj1mdW5jdGlvbihpZSxzZSl7cmV0dXJuIFIodGhpcyxpZSxz'@; put 'ZSwhMSl9LE4ucHJvdG90eXBlLnByZXBlbmRMaXN0ZW5lcj1mdW5jdGlvbihpZSxzZSl7cmV0dXJuIFIodGhpcyxpZSxzZSwhMCl9LE4ucHJvdG90eXBlLm9uY2U9ZnVuY3Rpb24oaWUsc2Upe3JldHVybiBGKHNlKSx0aGlzLm9uKGllLFAodGhpcyxpZSxzZSkpLHRoaXN9LE4ucHJvdG90eXBl'@; put 'LnByZXBlbmRPbmNlTGlzdGVuZXI9ZnVuY3Rpb24oaWUsc2Upe3JldHVybiBGKHNlKSx0aGlzLnByZXBlbmRMaXN0ZW5lcihpZSxQKHRoaXMsaWUsc2UpKSx0aGlzfSxOLnByb3RvdHlwZS5vZmY9Ti5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI9ZnVuY3Rpb24oaWUsc2Upe3ZhciBnZSxfZSxU'@; put 'ZSxTZSx6ZTtpZihGKHNlKSx2b2lkIDA9PT0oX2U9dGhpcy5fZXZlbnRzKSlyZXR1cm4gdGhpcztpZih2b2lkIDA9PT0oZ2U9X2VbaWVdKSlyZXR1cm4gdGhpcztpZihnZT09PXNlfHxnZS5saXN0ZW5lcj09PXNlKTA9PS0tdGhpcy5fZXZlbnRzQ291bnQ/dGhpcy5fZXZlbnRzPU9iamVjdC5j'@; put 'cmVhdGUobnVsbCk6KGRlbGV0ZSBfZVtpZV0sX2UucmVtb3ZlTGlzdGVuZXImJnRoaXMuZW1pdCgicmVtb3ZlTGlzdGVuZXIiLGllLGdlLmxpc3RlbmVyfHxzZSkpO2Vsc2UgaWYoImZ1bmN0aW9uIiE9dHlwZW9mIGdlKXtmb3IoVGU9LTEsU2U9Z2UubGVuZ3RoLTE7U2U+PTA7U2UtLSlpZihn'@; put 'ZVtTZV09PT1zZXx8Z2VbU2VdLmxpc3RlbmVyPT09c2Upe3plPWdlW1NlXS5saXN0ZW5lcixUZT1TZTticmVha31pZihUZTwwKXJldHVybiB0aGlzOzA9PT1UZT9nZS5zaGlmdCgpOmZ1bmN0aW9uIFcodGUsaWUpe2Zvcig7aWUrMTx0ZS5sZW5ndGg7aWUrKyl0ZVtpZV09dGVbaWUrMV07dGUu'@; put 'cG9wKCl9KGdlLFRlKSwxPT09Z2UubGVuZ3RoJiYoX2VbaWVdPWdlWzBdKSx2b2lkIDAhPT1fZS5yZW1vdmVMaXN0ZW5lciYmdGhpcy5lbWl0KCJyZW1vdmVMaXN0ZW5lciIsaWUsemV8fHNlKX1yZXR1cm4gdGhpc30sTi5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzPWZ1bmN0aW9uKGll'@; put 'KXt2YXIgc2UsZ2UsX2U7aWYodm9pZCAwPT09KGdlPXRoaXMuX2V2ZW50cykpcmV0dXJuIHRoaXM7aWYodm9pZCAwPT09Z2UucmVtb3ZlTGlzdGVuZXIpcmV0dXJuIDA9PT1hcmd1bWVudHMubGVuZ3RoPyh0aGlzLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9ldmVudHNDb3Vu'@; put 'dD0wKTp2b2lkIDAhPT1nZVtpZV0mJigwPT0tLXRoaXMuX2V2ZW50c0NvdW50P3RoaXMuX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpOmRlbGV0ZSBnZVtpZV0pLHRoaXM7aWYoMD09PWFyZ3VtZW50cy5sZW5ndGgpe3ZhciBTZSxUZT1PYmplY3Qua2V5cyhnZSk7Zm9yKF9lPTA7X2U8VGUu'@; put 'bGVuZ3RoOysrX2UpInJlbW92ZUxpc3RlbmVyIiE9PShTZT1UZVtfZV0pJiZ0aGlzLnJlbW92ZUFsbExpc3RlbmVycyhTZSk7cmV0dXJuIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCJyZW1vdmVMaXN0ZW5lciIpLHRoaXMuX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuX2V2ZW50'@; put 'c0NvdW50PTAsdGhpc31pZigiZnVuY3Rpb24iPT10eXBlb2Yoc2U9Z2VbaWVdKSl0aGlzLnJlbW92ZUxpc3RlbmVyKGllLHNlKTtlbHNlIGlmKHZvaWQgMCE9PXNlKWZvcihfZT1zZS5sZW5ndGgtMTtfZT49MDtfZS0tKXRoaXMucmVtb3ZlTGlzdGVuZXIoaWUsc2VbX2VdKTtyZXR1cm4gdGhp'@; put 'c30sTi5wcm90b3R5cGUubGlzdGVuZXJzPWZ1bmN0aW9uKGllKXtyZXR1cm4gTCh0aGlzLGllLCEwKX0sTi5wcm90b3R5cGUucmF3TGlzdGVuZXJzPWZ1bmN0aW9uKGllKXtyZXR1cm4gTCh0aGlzLGllLCExKX0sTi5saXN0ZW5lckNvdW50PWZ1bmN0aW9uKHRlLGllKXtyZXR1cm4iZnVuY3Rp'@; put 'b24iPT10eXBlb2YgdGUubGlzdGVuZXJDb3VudD90ZS5saXN0ZW5lckNvdW50KGllKTpZLmNhbGwodGUsaWUpfSxOLnByb3RvdHlwZS5saXN0ZW5lckNvdW50PVksTi5wcm90b3R5cGUuZXZlbnROYW1lcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9ldmVudHNDb3VudD4wP0QodGhpcy5fZXZl'@; put 'bnRzKTpbXX19LDE4MjExOihjZSxKLGIpPT57dmFyIEQ9YigyNzA1NCkuQnVmZmVyLF89YigzNDcyNSk7Y2UuZXhwb3J0cz1mdW5jdGlvbiBwKE4sdyxGLEgpe2lmKEQuaXNCdWZmZXIoTil8fChOPUQuZnJvbShOLCJiaW5hcnkiKSksdyYmKEQuaXNCdWZmZXIodyl8fCh3PUQuZnJvbSh3LCJi'@; put 'aW5hcnkiKSksOCE9PXcubGVuZ3RoKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigic2FsdCBzaG91bGQgYmUgQnVmZmVyIHdpdGggOCBieXRlIGxlbmd0aCIpO2Zvcih2YXIgUj1GLzgsaj1ELmFsbG9jKFIpLFA9RC5hbGxvYyhIfHwwKSxMPUQuYWxsb2MoMCk7Uj4wfHxIPjA7KXt2YXIgWT1uZXcg'@; put 'XztZLnVwZGF0ZShMKSxZLnVwZGF0ZShOKSx3JiZZLnVwZGF0ZSh3KSxMPVkuZGlnZXN0KCk7dmFyIEI9MDtpZihSPjApe3ZhciBXPWoubGVuZ3RoLVI7Qj1NYXRoLm1pbihSLEwubGVuZ3RoKSxMLmNvcHkoaixXLDAsQiksUi09Qn1pZihCPEwubGVuZ3RoJiZIPjApe3ZhciBaPVAubGVuZ3Ro'@; put 'LUgsWD1NYXRoLm1pbihILEwubGVuZ3RoLUIpO0wuY29weShQLFosQixCK1gpLEgtPVh9fXJldHVybiBMLmZpbGwoMCkse2tleTpqLGl2OlB9fX0sODk5OTk6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig1ODIzOSksXz1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLHA9T2JqZWN0'@; put 'LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtjZS5leHBvcnRzPWZ1bmN0aW9uKGosUCxMKXtpZighRChQKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJpdGVyYXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTt2YXIgWTthcmd1bWVudHMubGVuZ3RoPj0zJiYoWT1MKSxmdW5jdGlvbiBIKFIpe3JldHVy'@; put 'biJbb2JqZWN0IEFycmF5XSI9PT1fLmNhbGwoUil9KGopP2Z1bmN0aW9uKGosUCxMKXtmb3IodmFyIFk9MCxCPWoubGVuZ3RoO1k8QjtZKyspcC5jYWxsKGosWSkmJihudWxsPT1MP1AoaltZXSxZLGopOlAuY2FsbChMLGpbWV0sWSxqKSl9KGosUCxZKToic3RyaW5nIj09dHlwZW9mIGo/ZnVu'@; put 'Y3Rpb24oaixQLEwpe2Zvcih2YXIgWT0wLEI9ai5sZW5ndGg7WTxCO1krKyludWxsPT1MP1Aoai5jaGFyQXQoWSksWSxqKTpQLmNhbGwoTCxqLmNoYXJBdChZKSxZLGopfShqLFAsWSk6ZnVuY3Rpb24oaixQLEwpe2Zvcih2YXIgWSBpbiBqKXAuY2FsbChqLFkpJiYobnVsbD09TD9QKGpbWV0s'@; put 'WSxqKTpQLmNhbGwoTCxqW1ldLFksaikpfShqLFAsWSl9fSw0OTEzMjpjZT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgYj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLEQ9TWF0aC5tYXgscD1mdW5jdGlvbihILFIpe2Zvcih2YXIgaj1bXSxQPTA7UDxILmxlbmd0aDtQKz0xKWpbUF09SFtQXTtmb3Io'@; put 'dmFyIEw9MDtMPFIubGVuZ3RoO0wrPTEpaltMK0gubGVuZ3RoXT1SW0xdO3JldHVybiBqfTtjZS5leHBvcnRzPWZ1bmN0aW9uKEgpe3ZhciBSPXRoaXM7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFJ8fCJbb2JqZWN0IEZ1bmN0aW9uXSIhPT1iLmFwcGx5KFIpKXRocm93IG5ldyBUeXBlRXJyb3Io'@; put 'IkZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kIGNhbGxlZCBvbiBpbmNvbXBhdGlibGUgIitSKTtmb3IodmFyIFAsaj1mdW5jdGlvbihILFIpe2Zvcih2YXIgaj1bXSxQPTEsTD0wO1A8SC5sZW5ndGg7UCs9MSxMKz0xKWpbTF09SFtQXTtyZXR1cm4gan0oYXJndW1lbnRzKSxZPUQoMCxSLmxlbmd0'@; put 'aC1qLmxlbmd0aCksQj1bXSxXPTA7VzxZO1crKylCW1ddPSIkIitXO2lmKFA9RnVuY3Rpb24oImJpbmRlciIsInJldHVybiBmdW5jdGlvbiAoIitmdW5jdGlvbihGLEgpe2Zvcih2YXIgUj0iIixqPTA7ajxGLmxlbmd0aDtqKz0xKVIrPUZbal0saisxPEYubGVuZ3RoJiYoUis9IiwiKTtyZXR1'@; put 'cm4gUn0oQikrIil7IHJldHVybiBiaW5kZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpOyB9IikoZnVuY3Rpb24oKXtpZih0aGlzIGluc3RhbmNlb2YgUCl7dmFyIFg9Ui5hcHBseSh0aGlzLHAoaixhcmd1bWVudHMpKTtyZXR1cm4gT2JqZWN0KFgpPT09WD9YOnRoaXN9cmV0dXJuIFIuYXBwbHko'@; put 'SCxwKGosYXJndW1lbnRzKSl9KSxSLnByb3RvdHlwZSl7dmFyIFo9ZnVuY3Rpb24oKXt9O1oucHJvdG90eXBlPVIucHJvdG90eXBlLFAucHJvdG90eXBlPW5ldyBaLFoucHJvdG90eXBlPW51bGx9cmV0dXJuIFB9fSw2NTk5MjooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDQ5MTMy'@; put 'KTtjZS5leHBvcnRzPUZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kfHxEfSw5MDI1ODooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRCxfPWIoNjU4OTEpLHA9YigzNzY0MCksTj1iKDE3NTYpLHc9Yig3NzkzMyksRj1iKDY2MTMpLEg9Yig1ODQxMyksUj1iKDQ2NzU4KSxqPWIoNTI4NiksUD1i'@; put 'KDcwODM3KSxMPWIoMzM4MyksWT1iKDc5MDM5KSxCPWIoMTQ5ODEpLFc9Yig4MDk3NSksWj1iKDUzMzcpLFg9Yig0OTEyKSxRPUZ1bmN0aW9uLHE9ZnVuY3Rpb24odmUpe3RyeXtyZXR1cm4gUSgnInVzZSBzdHJpY3QiOyByZXR1cm4gKCcrdmUrIikuY29uc3RydWN0b3I7IikoKX1jYXRjaHt9'@; put 'fSx0ZT1iKDgzNzk4KSxpZT1iKDQ1NzApLHNlPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IFJ9LGdlPXRlP2Z1bmN0aW9uKCl7dHJ5e3JldHVybiBzZX1jYXRjaHt0cnl7cmV0dXJuIHRlKGFyZ3VtZW50cywiY2FsbGVlIikuZ2V0fWNhdGNoe3JldHVybiBzZX19fSgpOnNlLF9lPWIoMTk5MDApKCks'@; put 'VGU9Yig5MTYyNyksU2U9YigyNzIwMyksemU9Yig5NzY2OSksej1iKDc5NDc3KSxnPWIoNTk3MDUpLHk9e30seD10eXBlb2YgVWludDhBcnJheT4idSJ8fCFUZT9EOlRlKFVpbnQ4QXJyYXkpLEM9e19fcHJvdG9fXzpudWxsLCIlQWdncmVnYXRlRXJyb3IlIjp0eXBlb2YgQWdncmVnYXRlRXJy'@; put 'b3I+InUiP0Q6QWdncmVnYXRlRXJyb3IsIiVBcnJheSUiOkFycmF5LCIlQXJyYXlCdWZmZXIlIjp0eXBlb2YgQXJyYXlCdWZmZXI+InUiP0Q6QXJyYXlCdWZmZXIsIiVBcnJheUl0ZXJhdG9yUHJvdG90eXBlJSI6X2UmJlRlP1RlKFtdW1N5bWJvbC5pdGVyYXRvcl0oKSk6RCwiJUFzeW5jRnJv'@; put 'bVN5bmNJdGVyYXRvclByb3RvdHlwZSUiOkQsIiVBc3luY0Z1bmN0aW9uJSI6eSwiJUFzeW5jR2VuZXJhdG9yJSI6eSwiJUFzeW5jR2VuZXJhdG9yRnVuY3Rpb24lIjp5LCIlQXN5bmNJdGVyYXRvclByb3RvdHlwZSUiOnksIiVBdG9taWNzJSI6dHlwZW9mIEF0b21pY3M+InUiP0Q6QXRvbWlj'@; put 'cywiJUJpZ0ludCUiOnR5cGVvZiBCaWdJbnQ+InUiP0Q6QmlnSW50LCIlQmlnSW50NjRBcnJheSUiOnR5cGVvZiBCaWdJbnQ2NEFycmF5PiJ1Ij9EOkJpZ0ludDY0QXJyYXksIiVCaWdVaW50NjRBcnJheSUiOnR5cGVvZiBCaWdVaW50NjRBcnJheT4idSI/RDpCaWdVaW50NjRBcnJheSwiJUJv'@; put 'b2xlYW4lIjpCb29sZWFuLCIlRGF0YVZpZXclIjp0eXBlb2YgRGF0YVZpZXc+InUiP0Q6RGF0YVZpZXcsIiVEYXRlJSI6RGF0ZSwiJWRlY29kZVVSSSUiOmRlY29kZVVSSSwiJWRlY29kZVVSSUNvbXBvbmVudCUiOmRlY29kZVVSSUNvbXBvbmVudCwiJWVuY29kZVVSSSUiOmVuY29kZVVSSSwi'@; put 'JWVuY29kZVVSSUNvbXBvbmVudCUiOmVuY29kZVVSSUNvbXBvbmVudCwiJUVycm9yJSI6cCwiJWV2YWwlIjpldmFsLCIlRXZhbEVycm9yJSI6TiwiJUZsb2F0MTZBcnJheSUiOnR5cGVvZiBGbG9hdDE2QXJyYXk+InUiP0Q6RmxvYXQxNkFycmF5LCIlRmxvYXQzMkFycmF5JSI6dHlwZW9mIEZs'@; put 'b2F0MzJBcnJheT4idSI/RDpGbG9hdDMyQXJyYXksIiVGbG9hdDY0QXJyYXklIjp0eXBlb2YgRmxvYXQ2NEFycmF5PiJ1Ij9EOkZsb2F0NjRBcnJheSwiJUZpbmFsaXphdGlvblJlZ2lzdHJ5JSI6dHlwZW9mIEZpbmFsaXphdGlvblJlZ2lzdHJ5PiJ1Ij9EOkZpbmFsaXphdGlvblJlZ2lzdHJ5'@; put 'LCIlRnVuY3Rpb24lIjpRLCIlR2VuZXJhdG9yRnVuY3Rpb24lIjp5LCIlSW50OEFycmF5JSI6dHlwZW9mIEludDhBcnJheT4idSI/RDpJbnQ4QXJyYXksIiVJbnQxNkFycmF5JSI6dHlwZW9mIEludDE2QXJyYXk+InUiP0Q6SW50MTZBcnJheSwiJUludDMyQXJyYXklIjp0eXBlb2YgSW50MzJB'@; put 'cnJheT4idSI/RDpJbnQzMkFycmF5LCIlaXNGaW5pdGUlIjppc0Zpbml0ZSwiJWlzTmFOJSI6aXNOYU4sIiVJdGVyYXRvclByb3RvdHlwZSUiOl9lJiZUZT9UZShUZShbXVtTeW1ib2wuaXRlcmF0b3JdKCkpKTpELCIlSlNPTiUiOiJvYmplY3QiPT10eXBlb2YgSlNPTj9KU09OOkQsIiVNYXAl'@; put 'Ijp0eXBlb2YgTWFwPiJ1Ij9EOk1hcCwiJU1hcEl0ZXJhdG9yUHJvdG90eXBlJSI6dHlwZW9mIE1hcD4idSJ8fCFfZXx8IVRlP0Q6VGUoKG5ldyBNYXApW1N5bWJvbC5pdGVyYXRvcl0oKSksIiVNYXRoJSI6TWF0aCwiJU51bWJlciUiOk51bWJlciwiJU9iamVjdCUiOl8sIiVPYmplY3QuZ2V0'@; put 'T3duUHJvcGVydHlEZXNjcmlwdG9yJSI6dGUsIiVwYXJzZUZsb2F0JSI6cGFyc2VGbG9hdCwiJXBhcnNlSW50JSI6cGFyc2VJbnQsIiVQcm9taXNlJSI6dHlwZW9mIFByb21pc2U+InUiP0Q6UHJvbWlzZSwiJVByb3h5JSI6dHlwZW9mIFByb3h5PiJ1Ij9EOlByb3h5LCIlUmFuZ2VFcnJvciUi'@; put 'OncsIiVSZWZlcmVuY2VFcnJvciUiOkYsIiVSZWZsZWN0JSI6dHlwZW9mIFJlZmxlY3Q+InUiP0Q6UmVmbGVjdCwiJVJlZ0V4cCUiOlJlZ0V4cCwiJVNldCUiOnR5cGVvZiBTZXQ+InUiP0Q6U2V0LCIlU2V0SXRlcmF0b3JQcm90b3R5cGUlIjp0eXBlb2YgU2V0PiJ1Inx8IV9lfHwhVGU/RDpU'@; put 'ZSgobmV3IFNldClbU3ltYm9sLml0ZXJhdG9yXSgpKSwiJVNoYXJlZEFycmF5QnVmZmVyJSI6dHlwZW9mIFNoYXJlZEFycmF5QnVmZmVyPiJ1Ij9EOlNoYXJlZEFycmF5QnVmZmVyLCIlU3RyaW5nJSI6U3RyaW5nLCIlU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUlIjpfZSYmVGU/VGUoIiJbU3lt'@; put 'Ym9sLml0ZXJhdG9yXSgpKTpELCIlU3ltYm9sJSI6X2U/U3ltYm9sOkQsIiVTeW50YXhFcnJvciUiOkgsIiVUaHJvd1R5cGVFcnJvciUiOmdlLCIlVHlwZWRBcnJheSUiOngsIiVUeXBlRXJyb3IlIjpSLCIlVWludDhBcnJheSUiOnR5cGVvZiBVaW50OEFycmF5PiJ1Ij9EOlVpbnQ4QXJyYXks'@; put 'IiVVaW50OENsYW1wZWRBcnJheSUiOnR5cGVvZiBVaW50OENsYW1wZWRBcnJheT4idSI/RDpVaW50OENsYW1wZWRBcnJheSwiJVVpbnQxNkFycmF5JSI6dHlwZW9mIFVpbnQxNkFycmF5PiJ1Ij9EOlVpbnQxNkFycmF5LCIlVWludDMyQXJyYXklIjp0eXBlb2YgVWludDMyQXJyYXk+InUiP0Q6'@; put 'VWludDMyQXJyYXksIiVVUklFcnJvciUiOmosIiVXZWFrTWFwJSI6dHlwZW9mIFdlYWtNYXA+InUiP0Q6V2Vha01hcCwiJVdlYWtSZWYlIjp0eXBlb2YgV2Vha1JlZj4idSI/RDpXZWFrUmVmLCIlV2Vha1NldCUiOnR5cGVvZiBXZWFrU2V0PiJ1Ij9EOldlYWtTZXQsIiVGdW5jdGlvbi5wcm90'@; put 'b3R5cGUuY2FsbCUiOmcsIiVGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHklIjp6LCIlT2JqZWN0LmRlZmluZVByb3BlcnR5JSI6aWUsIiVPYmplY3QuZ2V0UHJvdG90eXBlT2YlIjpTZSwiJU1hdGguYWJzJSI6UCwiJU1hdGguZmxvb3IlIjpMLCIlTWF0aC5tYXglIjpZLCIlTWF0aC5taW4lIjpC'@; put 'LCIlTWF0aC5wb3clIjpXLCIlTWF0aC5yb3VuZCUiOlosIiVNYXRoLnNpZ24lIjpYLCIlUmVmbGVjdC5nZXRQcm90b3R5cGVPZiUiOnplfTtpZihUZSl0cnl7bnVsbC5lcnJvcn1jYXRjaCh2ZSl7dmFyIFQ9VGUoVGUodmUpKTtDWyIlRXJyb3IucHJvdG90eXBlJSJdPVR9dmFyIFY9ZnVuY3Rp'@; put 'b24gdmUocWUpe3ZhciBqZTtpZigiJUFzeW5jRnVuY3Rpb24lIj09PXFlKWplPXEoImFzeW5jIGZ1bmN0aW9uICgpIHt9Iik7ZWxzZSBpZigiJUdlbmVyYXRvckZ1bmN0aW9uJSI9PT1xZSlqZT1xKCJmdW5jdGlvbiogKCkge30iKTtlbHNlIGlmKCIlQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiUi'@; put 'PT09cWUpamU9cSgiYXN5bmMgZnVuY3Rpb24qICgpIHt9Iik7ZWxzZSBpZigiJUFzeW5jR2VuZXJhdG9yJSI9PT1xZSl7dmFyIEFlPXZlKCIlQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiUiKTtBZSYmKGplPUFlLnByb3RvdHlwZSl9ZWxzZSBpZigiJUFzeW5jSXRlcmF0b3JQcm90b3R5cGUlIj09'@; put 'PXFlKXt2YXIgRmU9dmUoIiVBc3luY0dlbmVyYXRvciUiKTtGZSYmVGUmJihqZT1UZShGZS5wcm90b3R5cGUpKX1yZXR1cm4gQ1txZV09amUsamV9LFU9e19fcHJvdG9fXzpudWxsLCIlQXJyYXlCdWZmZXJQcm90b3R5cGUlIjpbIkFycmF5QnVmZmVyIiwicHJvdG90eXBlIl0sIiVBcnJheVBy'@; put 'b3RvdHlwZSUiOlsiQXJyYXkiLCJwcm90b3R5cGUiXSwiJUFycmF5UHJvdG9fZW50cmllcyUiOlsiQXJyYXkiLCJwcm90b3R5cGUiLCJlbnRyaWVzIl0sIiVBcnJheVByb3RvX2ZvckVhY2glIjpbIkFycmF5IiwicHJvdG90eXBlIiwiZm9yRWFjaCJdLCIlQXJyYXlQcm90b19rZXlzJSI6WyJB'@; put 'cnJheSIsInByb3RvdHlwZSIsImtleXMiXSwiJUFycmF5UHJvdG9fdmFsdWVzJSI6WyJBcnJheSIsInByb3RvdHlwZSIsInZhbHVlcyJdLCIlQXN5bmNGdW5jdGlvblByb3RvdHlwZSUiOlsiQXN5bmNGdW5jdGlvbiIsInByb3RvdHlwZSJdLCIlQXN5bmNHZW5lcmF0b3IlIjpbIkFzeW5jR2Vu'@; put 'ZXJhdG9yRnVuY3Rpb24iLCJwcm90b3R5cGUiXSwiJUFzeW5jR2VuZXJhdG9yUHJvdG90eXBlJSI6WyJBc3luY0dlbmVyYXRvckZ1bmN0aW9uIiwicHJvdG90eXBlIiwicHJvdG90eXBlIl0sIiVCb29sZWFuUHJvdG90eXBlJSI6WyJCb29sZWFuIiwicHJvdG90eXBlIl0sIiVEYXRhVmlld1By'@; put 'b3RvdHlwZSUiOlsiRGF0YVZpZXciLCJwcm90b3R5cGUiXSwiJURhdGVQcm90b3R5cGUlIjpbIkRhdGUiLCJwcm90b3R5cGUiXSwiJUVycm9yUHJvdG90eXBlJSI6WyJFcnJvciIsInByb3RvdHlwZSJdLCIlRXZhbEVycm9yUHJvdG90eXBlJSI6WyJFdmFsRXJyb3IiLCJwcm90b3R5cGUiXSwi'@; put 'JUZsb2F0MzJBcnJheVByb3RvdHlwZSUiOlsiRmxvYXQzMkFycmF5IiwicHJvdG90eXBlIl0sIiVGbG9hdDY0QXJyYXlQcm90b3R5cGUlIjpbIkZsb2F0NjRBcnJheSIsInByb3RvdHlwZSJdLCIlRnVuY3Rpb25Qcm90b3R5cGUlIjpbIkZ1bmN0aW9uIiwicHJvdG90eXBlIl0sIiVHZW5lcmF0'@; put 'b3IlIjpbIkdlbmVyYXRvckZ1bmN0aW9uIiwicHJvdG90eXBlIl0sIiVHZW5lcmF0b3JQcm90b3R5cGUlIjpbIkdlbmVyYXRvckZ1bmN0aW9uIiwicHJvdG90eXBlIiwicHJvdG90eXBlIl0sIiVJbnQ4QXJyYXlQcm90b3R5cGUlIjpbIkludDhBcnJheSIsInByb3RvdHlwZSJdLCIlSW50MTZB'@; put 'cnJheVByb3RvdHlwZSUiOlsiSW50MTZBcnJheSIsInByb3RvdHlwZSJdLCIlSW50MzJBcnJheVByb3RvdHlwZSUiOlsiSW50MzJBcnJheSIsInByb3RvdHlwZSJdLCIlSlNPTlBhcnNlJSI6WyJKU09OIiwicGFyc2UiXSwiJUpTT05TdHJpbmdpZnklIjpbIkpTT04iLCJzdHJpbmdpZnkiXSwi'@; put 'JU1hcFByb3RvdHlwZSUiOlsiTWFwIiwicHJvdG90eXBlIl0sIiVOdW1iZXJQcm90b3R5cGUlIjpbIk51bWJlciIsInByb3RvdHlwZSJdLCIlT2JqZWN0UHJvdG90eXBlJSI6WyJPYmplY3QiLCJwcm90b3R5cGUiXSwiJU9ialByb3RvX3RvU3RyaW5nJSI6WyJPYmplY3QiLCJwcm90b3R5cGUi'@; put 'LCJ0b1N0cmluZyJdLCIlT2JqUHJvdG9fdmFsdWVPZiUiOlsiT2JqZWN0IiwicHJvdG90eXBlIiwidmFsdWVPZiJdLCIlUHJvbWlzZVByb3RvdHlwZSUiOlsiUHJvbWlzZSIsInByb3RvdHlwZSJdLCIlUHJvbWlzZVByb3RvX3RoZW4lIjpbIlByb21pc2UiLCJwcm90b3R5cGUiLCJ0aGVuIl0s'@; put 'IiVQcm9taXNlX2FsbCUiOlsiUHJvbWlzZSIsImFsbCJdLCIlUHJvbWlzZV9yZWplY3QlIjpbIlByb21pc2UiLCJyZWplY3QiXSwiJVByb21pc2VfcmVzb2x2ZSUiOlsiUHJvbWlzZSIsInJlc29sdmUiXSwiJVJhbmdlRXJyb3JQcm90b3R5cGUlIjpbIlJhbmdlRXJyb3IiLCJwcm90b3R5cGUi'@; put 'XSwiJVJlZmVyZW5jZUVycm9yUHJvdG90eXBlJSI6WyJSZWZlcmVuY2VFcnJvciIsInByb3RvdHlwZSJdLCIlUmVnRXhwUHJvdG90eXBlJSI6WyJSZWdFeHAiLCJwcm90b3R5cGUiXSwiJVNldFByb3RvdHlwZSUiOlsiU2V0IiwicHJvdG90eXBlIl0sIiVTaGFyZWRBcnJheUJ1ZmZlclByb3Rv'@; put 'dHlwZSUiOlsiU2hhcmVkQXJyYXlCdWZmZXIiLCJwcm90b3R5cGUiXSwiJVN0cmluZ1Byb3RvdHlwZSUiOlsiU3RyaW5nIiwicHJvdG90eXBlIl0sIiVTeW1ib2xQcm90b3R5cGUlIjpbIlN5bWJvbCIsInByb3RvdHlwZSJdLCIlU3ludGF4RXJyb3JQcm90b3R5cGUlIjpbIlN5bnRheEVycm9y'@; put 'IiwicHJvdG90eXBlIl0sIiVUeXBlZEFycmF5UHJvdG90eXBlJSI6WyJUeXBlZEFycmF5IiwicHJvdG90eXBlIl0sIiVUeXBlRXJyb3JQcm90b3R5cGUlIjpbIlR5cGVFcnJvciIsInByb3RvdHlwZSJdLCIlVWludDhBcnJheVByb3RvdHlwZSUiOlsiVWludDhBcnJheSIsInByb3RvdHlwZSJd'@; put 'LCIlVWludDhDbGFtcGVkQXJyYXlQcm90b3R5cGUlIjpbIlVpbnQ4Q2xhbXBlZEFycmF5IiwicHJvdG90eXBlIl0sIiVVaW50MTZBcnJheVByb3RvdHlwZSUiOlsiVWludDE2QXJyYXkiLCJwcm90b3R5cGUiXSwiJVVpbnQzMkFycmF5UHJvdG90eXBlJSI6WyJVaW50MzJBcnJheSIsInByb3Rv'@; put 'dHlwZSJdLCIlVVJJRXJyb3JQcm90b3R5cGUlIjpbIlVSSUVycm9yIiwicHJvdG90eXBlIl0sIiVXZWFrTWFwUHJvdG90eXBlJSI6WyJXZWFrTWFwIiwicHJvdG90eXBlIl0sIiVXZWFrU2V0UHJvdG90eXBlJSI6WyJXZWFrU2V0IiwicHJvdG90eXBlIl19LEU9Yig2NTk5MiksbT1iKDc4MzY4'@; put 'KSxBPUUuY2FsbChnLEFycmF5LnByb3RvdHlwZS5jb25jYXQpLGFlPUUuY2FsbCh6LEFycmF5LnByb3RvdHlwZS5zcGxpY2UpLG5lPUUuY2FsbChnLFN0cmluZy5wcm90b3R5cGUucmVwbGFjZSksbGU9RS5jYWxsKGcsU3RyaW5nLnByb3RvdHlwZS5zbGljZSksd2U9RS5jYWxsKGcsUmVnRXhw'@; put 'LnByb3RvdHlwZS5leGVjKSxaZT0vW14lLltcXV0rfFxbKD86KC0/XGQrKD86XC5cZCspPyl8KFsiJ10pKCg/Oig/IVwyKVteXFxdfFxcLikqPylcMilcXXwoPz0oPzpcLnxcW1xdKSg/OlwufFxbXF18JSQpKS9nLFFlPS9cXChcXCk/L2cseGU9ZnVuY3Rpb24ocWUsamUpe3ZhciBGZSxBZT1x'@; put 'ZTtpZihtKFUsQWUpJiYoQWU9IiUiKyhGZT1VW0FlXSlbMF0rIiUiKSxtKEMsQWUpKXt2YXIgUmU9Q1tBZV07aWYoUmU9PT15JiYoUmU9VihBZSkpLHR5cGVvZiBSZT4idSImJiFqZSl0aHJvdyBuZXcgUigiaW50cmluc2ljICIrcWUrIiBleGlzdHMsIGJ1dCBpcyBub3QgYXZhaWxhYmxlLiBQ'@; put 'bGVhc2UgZmlsZSBhbiBpc3N1ZSEiKTtyZXR1cm57YWxpYXM6RmUsbmFtZTpBZSx2YWx1ZTpSZX19dGhyb3cgbmV3IEgoImludHJpbnNpYyAiK3FlKyIgZG9lcyBub3QgZXhpc3QhIil9O2NlLmV4cG9ydHM9ZnVuY3Rpb24ocWUsamUpe2lmKCJzdHJpbmciIT10eXBlb2YgcWV8fDA9PT1xZS5s'@; put 'ZW5ndGgpdGhyb3cgbmV3IFIoImludHJpbnNpYyBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIik7aWYoYXJndW1lbnRzLmxlbmd0aD4xJiYiYm9vbGVhbiIhPXR5cGVvZiBqZSl0aHJvdyBuZXcgUignImFsbG93TWlzc2luZyIgYXJndW1lbnQgbXVzdCBiZSBhIGJvb2xlYW4nKTtp'@; put 'ZihudWxsPT09d2UoL14lP1teJV0qJT8kLyxxZSkpdGhyb3cgbmV3IEgoImAlYCBtYXkgbm90IGJlIHByZXNlbnQgYW55d2hlcmUgYnV0IGF0IHRoZSBiZWdpbm5pbmcgYW5kIGVuZCBvZiB0aGUgaW50cmluc2ljIG5hbWUiKTt2YXIgQWU9ZnVuY3Rpb24ocWUpe3ZhciBqZT1sZShxZSwwLDEp'@; put 'LEFlPWxlKHFlLC0xKTtpZigiJSI9PT1qZSYmIiUiIT09QWUpdGhyb3cgbmV3IEgoImludmFsaWQgaW50cmluc2ljIHN5bnRheCwgZXhwZWN0ZWQgY2xvc2luZyBgJWAiKTtpZigiJSI9PT1BZSYmIiUiIT09amUpdGhyb3cgbmV3IEgoImludmFsaWQgaW50cmluc2ljIHN5bnRheCwgZXhwZWN0'@; put 'ZWQgb3BlbmluZyBgJWAiKTt2YXIgRmU9W107cmV0dXJuIG5lKHFlLFplLGZ1bmN0aW9uKFJlLEllLEhlLERlKXtGZVtGZS5sZW5ndGhdPUhlP25lKERlLFFlLCIkMSIpOkllfHxSZX0pLEZlfShxZSksRmU9QWUubGVuZ3RoPjA/QWVbMF06IiIsUmU9eGUoIiUiK0ZlKyIlIixqZSksSWU9UmUu'@; put 'bmFtZSxIZT1SZS52YWx1ZSxEZT0hMSxrZT1SZS5hbGlhcztrZSYmKEZlPWtlWzBdLGFlKEFlLEEoWzAsMV0sa2UpKSk7Zm9yKHZhciBfdD0xLG50PSEwO190PEFlLmxlbmd0aDtfdCs9MSl7dmFyIEplPUFlW190XSxvbj1sZShKZSwwLDEpLHl0PWxlKEplLC0xKTtpZigoJyInPT09b258fCIn'@; put 'Ij09PW9ufHwiYCI9PT1vbnx8JyInPT09eXR8fCInIj09PXl0fHwiYCI9PT15dCkmJm9uIT09eXQpdGhyb3cgbmV3IEgoInByb3BlcnR5IG5hbWVzIHdpdGggcXVvdGVzIG11c3QgaGF2ZSBtYXRjaGluZyBxdW90ZXMiKTtpZigoImNvbnN0cnVjdG9yIj09PUplfHwhbnQpJiYoRGU9ITApLG0o'@; put 'QyxJZT0iJSIrKEZlKz0iLiIrSmUpKyIlIikpSGU9Q1tJZV07ZWxzZSBpZihudWxsIT1IZSl7aWYoIShKZSBpbiBIZSkpe2lmKCFqZSl0aHJvdyBuZXcgUigiYmFzZSBpbnRyaW5zaWMgZm9yICIrcWUrIiBleGlzdHMsIGJ1dCB0aGUgcHJvcGVydHkgaXMgbm90IGF2YWlsYWJsZS4iKTtyZXR1'@; put 'cm59aWYodGUmJl90KzE+PUFlLmxlbmd0aCl7dmFyIE10PXRlKEhlLEplKTtIZT0obnQ9ISFNdCkmJiJnZXQiaW4gTXQmJiEoIm9yaWdpbmFsVmFsdWUiaW4gTXQuZ2V0KT9NdC5nZXQ6SGVbSmVdfWVsc2UgbnQ9bShIZSxKZSksSGU9SGVbSmVdO250JiYhRGUmJihDW0llXT1IZSl9fXJldHVy'@; put 'biBIZX19LDI3MjAzOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNjU4OTEpO2NlLmV4cG9ydHM9RC5nZXRQcm90b3R5cGVPZnx8bnVsbH0sOTc2Njk6Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz10eXBlb2YgUmVmbGVjdDwidSImJlJlZmxlY3QuZ2V0UHJvdG90eXBlT2Z8'@; put 'fG51bGx9LDkxNjI3OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoOTc2NjkpLF89YigyNzIwMykscD1iKDYzMzYxKTtjZS5leHBvcnRzPUQ/ZnVuY3Rpb24odyl7cmV0dXJuIEQodyl9Ol8/ZnVuY3Rpb24odyl7aWYoIXd8fCJvYmplY3QiIT10eXBlb2YgdyYmImZ1bmN0aW9uIiE9'@; put 'dHlwZW9mIHcpdGhyb3cgbmV3IFR5cGVFcnJvcigiZ2V0UHJvdG86IG5vdCBhbiBvYmplY3QiKTtyZXR1cm4gXyh3KX06cD9mdW5jdGlvbih3KXtyZXR1cm4gcCh3KX06bnVsbH0sNTI3ODY6Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw'@; put 'dG9yfSw4Mzc5ODooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDUyNzg2KTtpZihEKXRyeXtEKFtdLCJsZW5ndGgiKX1jYXRjaHtEPW51bGx9Y2UuZXhwb3J0cz1EfSwzNTg2MTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDQ1NzApLF89ZnVuY3Rpb24oKXtyZXR1cm4h'@; put 'IUR9O18uaGFzQXJyYXlMZW5ndGhEZWZpbmVCdWc9ZnVuY3Rpb24oKXtpZighRClyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIDEhPT1EKFtdLCJsZW5ndGgiLHt2YWx1ZToxfSkubGVuZ3RofWNhdGNoe3JldHVybiEwfX0sY2UuZXhwb3J0cz1ffSwxOTkwMDooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0'@; put 'Ijt2YXIgRD10eXBlb2YgU3ltYm9sPCJ1IiYmU3ltYm9sLF89Yig0NTMxMCk7Y2UuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBEJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIEQoImZvbyIpJiYic3ltYm9sIj09dHlwZW9m'@; put 'IFN5bWJvbCgiYmFyIikmJl8oKX19LDQ1MzEwOmNlPT57InVzZSBzdHJpY3QiO2NlLmV4cG9ydHM9ZnVuY3Rpb24oKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgU3ltYm9sfHwiZnVuY3Rpb24iIT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scylyZXR1cm4hMTtpZigic3ltYm9s'@; put 'Ij09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcilyZXR1cm4hMDt2YXIgYj17fSxEPVN5bWJvbCgidGVzdCIpLF89T2JqZWN0KEQpO2lmKCJzdHJpbmciPT10eXBlb2YgRHx8IltvYmplY3QgU3ltYm9sXSIhPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoRCl8fCJbb2JqZWN0IFN5bWJv'@; put 'bF0iIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKF8pKXJldHVybiExO2Zvcih2YXIgTiBpbiBiW0RdPTQyLGIpcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5rZXlzJiYwIT09T2JqZWN0LmtleXMoYikubGVuZ3RofHwiZnVuY3Rpb24iPT10eXBlb2YgT2Jq'@; put 'ZWN0LmdldE93blByb3BlcnR5TmFtZXMmJjAhPT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhiKS5sZW5ndGgpcmV0dXJuITE7dmFyIHc9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhiKTtpZigxIT09dy5sZW5ndGh8fHdbMF0hPT1EfHwhT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0'@; put 'eUlzRW51bWVyYWJsZS5jYWxsKGIsRCkpcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ipe3ZhciBGPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYixEKTtpZig0MiE9PUYudmFsdWV8fCEwIT09Ri5lbnVtZXJhYmxl'@; put 'KXJldHVybiExfXJldHVybiEwfX0sODg3Nzk6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig0NTMxMCk7Y2UuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybiBEKCkmJiEhU3ltYm9sLnRvU3RyaW5nVGFnfX0sMTM2ODY6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigyNzA1'@; put 'NCkuQnVmZmVyLF89Yig3MDQ1KS5UcmFuc2Zvcm07ZnVuY3Rpb24gTihSKXtfLmNhbGwodGhpcyksdGhpcy5fYmxvY2s9RC5hbGxvY1Vuc2FmZShSKSx0aGlzLl9ibG9ja1NpemU9Uix0aGlzLl9ibG9ja09mZnNldD0wLHRoaXMuX2xlbmd0aD1bMCwwLDAsMF0sdGhpcy5fZmluYWxpemVkPSEx'@; put 'fWIoNzE5OTMpKE4sXyksTi5wcm90b3R5cGUuX3RyYW5zZm9ybT1mdW5jdGlvbihSLGosUCl7dmFyIEw9bnVsbDt0cnl7dGhpcy51cGRhdGUoUixqKX1jYXRjaChZKXtMPVl9UChMKX0sTi5wcm90b3R5cGUuX2ZsdXNoPWZ1bmN0aW9uKFIpe3ZhciBqPW51bGw7dHJ5e3RoaXMucHVzaCh0aGlz'@; put 'LmRpZ2VzdCgpKX1jYXRjaChQKXtqPVB9UihqKX07dmFyIHc9dHlwZW9mIFVpbnQ4QXJyYXk8InUiLEY9dHlwZW9mIEFycmF5QnVmZmVyPCJ1IiYmdHlwZW9mIFVpbnQ4QXJyYXk8InUiJiZBcnJheUJ1ZmZlci5pc1ZpZXcmJihELnByb3RvdHlwZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl8fEQu'@; put 'VFlQRURfQVJSQVlfU1VQUE9SVCk7Ti5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKFIsail7aWYodGhpcy5fZmluYWxpemVkKXRocm93IG5ldyBFcnJvcigiRGlnZXN0IGFscmVhZHkgY2FsbGVkIik7Uj1mdW5jdGlvbiBIKFIsail7aWYoUiBpbnN0YW5jZW9mIEQpcmV0dXJuIFI7aWYoInN0'@; put 'cmluZyI9PXR5cGVvZiBSKXJldHVybiBELmZyb20oUixqKTtpZihGJiZBcnJheUJ1ZmZlci5pc1ZpZXcoUikpe2lmKDA9PT1SLmJ5dGVMZW5ndGgpcmV0dXJuIEQuYWxsb2MoMCk7dmFyIFA9RC5mcm9tKFIuYnVmZmVyLFIuYnl0ZU9mZnNldCxSLmJ5dGVMZW5ndGgpO2lmKFAuYnl0ZUxlbmd0'@; put 'aD09PVIuYnl0ZUxlbmd0aClyZXR1cm4gUH1pZih3JiZSIGluc3RhbmNlb2YgVWludDhBcnJheXx8RC5pc0J1ZmZlcihSKSYmUi5jb25zdHJ1Y3RvciYmImZ1bmN0aW9uIj09dHlwZW9mIFIuY29uc3RydWN0b3IuaXNCdWZmZXImJlIuY29uc3RydWN0b3IuaXNCdWZmZXIoUikpcmV0dXJuIEQu'@; put 'ZnJvbShSKTt0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgImRhdGEiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBzdHJpbmcgb3IgYW4gaW5zdGFuY2Ugb2YgQnVmZmVyLCBUeXBlZEFycmF5LCBvciBEYXRhVmlldy4nKX0oUixqKTtmb3IodmFyIFA9dGhpcy5fYmxvY2ssTD0wO3RoaXMuX2Js'@; put 'b2NrT2Zmc2V0K1IubGVuZ3RoLUw+PXRoaXMuX2Jsb2NrU2l6ZTspe2Zvcih2YXIgWT10aGlzLl9ibG9ja09mZnNldDtZPHRoaXMuX2Jsb2NrU2l6ZTspUFtZKytdPVJbTCsrXTt0aGlzLl91cGRhdGUoKSx0aGlzLl9ibG9ja09mZnNldD0wfWZvcig7TDxSLmxlbmd0aDspUFt0aGlzLl9ibG9j'@; put 'a09mZnNldCsrXT1SW0wrK107Zm9yKHZhciBCPTAsVz04KlIubGVuZ3RoO1c+MDsrK0IpdGhpcy5fbGVuZ3RoW0JdKz1XLChXPXRoaXMuX2xlbmd0aFtCXS80Mjk0OTY3Mjk2fDApPjAmJih0aGlzLl9sZW5ndGhbQl0tPTQyOTQ5NjcyOTYqVyk7cmV0dXJuIHRoaXN9LE4ucHJvdG90eXBlLl91'@; put 'cGRhdGU9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIl91cGRhdGUgaXMgbm90IGltcGxlbWVudGVkIil9LE4ucHJvdG90eXBlLmRpZ2VzdD1mdW5jdGlvbihSKXtpZih0aGlzLl9maW5hbGl6ZWQpdGhyb3cgbmV3IEVycm9yKCJEaWdlc3QgYWxyZWFkeSBjYWxsZWQiKTt0aGlzLl9maW5h'@; put 'bGl6ZWQ9ITA7dmFyIGo9dGhpcy5fZGlnZXN0KCk7dm9pZCAwIT09UiYmKGo9ai50b1N0cmluZyhSKSksdGhpcy5fYmxvY2suZmlsbCgwKSx0aGlzLl9ibG9ja09mZnNldD0wO2Zvcih2YXIgUD0wO1A8NDsrK1ApdGhpcy5fbGVuZ3RoW1BdPTA7cmV0dXJuIGp9LE4ucHJvdG90eXBlLl9kaWdl'@; put 'c3Q9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIl9kaWdlc3QgaXMgbm90IGltcGxlbWVudGVkIil9LGNlLmV4cG9ydHM9Tn0sNTI1Mjk6KGNlLEosYik9Pnt2YXIgRD1KO0QudXRpbHM9Yig2ODI4MyksRC5jb21tb249YigxMjkwMSksRC5zaGE9Yig3ODUyOCksRC5yaXBlbWQ9YigxNTI4'@; put 'MyksRC5obWFjPWIoMzcxNjMpLEQuc2hhMT1ELnNoYS5zaGExLEQuc2hhMjU2PUQuc2hhLnNoYTI1NixELnNoYTIyND1ELnNoYS5zaGEyMjQsRC5zaGEzODQ9RC5zaGEuc2hhMzg0LEQuc2hhNTEyPUQuc2hhLnNoYTUxMixELnJpcGVtZDE2MD1ELnJpcGVtZC5yaXBlbWQxNjB9LDEyOTAxOihj'@; put 'ZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNjgyODMpLF89YigzOTIxMCk7ZnVuY3Rpb24gcCgpe3RoaXMucGVuZGluZz1udWxsLHRoaXMucGVuZGluZ1RvdGFsPTAsdGhpcy5ibG9ja1NpemU9dGhpcy5jb25zdHJ1Y3Rvci5ibG9ja1NpemUsdGhpcy5vdXRTaXplPXRoaXMuY29uc3Ry'@; put 'dWN0b3Iub3V0U2l6ZSx0aGlzLmhtYWNTdHJlbmd0aD10aGlzLmNvbnN0cnVjdG9yLmhtYWNTdHJlbmd0aCx0aGlzLnBhZExlbmd0aD10aGlzLmNvbnN0cnVjdG9yLnBhZExlbmd0aC84LHRoaXMuZW5kaWFuPSJiaWciLHRoaXMuX2RlbHRhOD10aGlzLmJsb2NrU2l6ZS84LHRoaXMuX2RlbHRh'@; put 'MzI9dGhpcy5ibG9ja1NpemUvMzJ9Si5CbG9ja0hhc2g9cCxwLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odyxGKXtpZih3PUQudG9BcnJheSh3LEYpLHRoaXMucGVuZGluZz10aGlzLnBlbmRpbmc/dGhpcy5wZW5kaW5nLmNvbmNhdCh3KTp3LHRoaXMucGVuZGluZ1RvdGFsKz13Lmxlbmd0'@; put 'aCx0aGlzLnBlbmRpbmcubGVuZ3RoPj10aGlzLl9kZWx0YTgpe3ZhciBIPSh3PXRoaXMucGVuZGluZykubGVuZ3RoJXRoaXMuX2RlbHRhODt0aGlzLnBlbmRpbmc9dy5zbGljZSh3Lmxlbmd0aC1ILHcubGVuZ3RoKSwwPT09dGhpcy5wZW5kaW5nLmxlbmd0aCYmKHRoaXMucGVuZGluZz1udWxs'@; put 'KSx3PUQuam9pbjMyKHcsMCx3Lmxlbmd0aC1ILHRoaXMuZW5kaWFuKTtmb3IodmFyIFI9MDtSPHcubGVuZ3RoO1IrPXRoaXMuX2RlbHRhMzIpdGhpcy5fdXBkYXRlKHcsUixSK3RoaXMuX2RlbHRhMzIpfXJldHVybiB0aGlzfSxwLnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24odyl7cmV0dXJu'@; put 'IHRoaXMudXBkYXRlKHRoaXMuX3BhZCgpKSxfKG51bGw9PT10aGlzLnBlbmRpbmcpLHRoaXMuX2RpZ2VzdCh3KX0scC5wcm90b3R5cGUuX3BhZD1mdW5jdGlvbigpe3ZhciB3PXRoaXMucGVuZGluZ1RvdGFsLEY9dGhpcy5fZGVsdGE4LEg9Ri0odyt0aGlzLnBhZExlbmd0aCklRixSPW5ldyBB'@; put 'cnJheShIK3RoaXMucGFkTGVuZ3RoKTtSWzBdPTEyODtmb3IodmFyIGo9MTtqPEg7aisrKVJbal09MDtpZih3PDw9MywiYmlnIj09PXRoaXMuZW5kaWFuKXtmb3IodmFyIFA9ODtQPHRoaXMucGFkTGVuZ3RoO1ArKylSW2orK109MDtSW2orK109MCxSW2orK109MCxSW2orK109MCxSW2orK109'@; put 'MCxSW2orK109dz4+PjI0JjI1NSxSW2orK109dz4+PjE2JjI1NSxSW2orK109dz4+PjgmMjU1LFJbaisrXT0yNTUmd31lbHNlIGZvcihSW2orK109MjU1JncsUltqKytdPXc+Pj44JjI1NSxSW2orK109dz4+PjE2JjI1NSxSW2orK109dz4+PjI0JjI1NSxSW2orK109MCxSW2orK109MCxSW2or'@; put 'K109MCxSW2orK109MCxQPTg7UDx0aGlzLnBhZExlbmd0aDtQKyspUltqKytdPTA7cmV0dXJuIFJ9fSwzNzE2MzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDY4MjgzKSxfPWIoMzkyMTApO2Z1bmN0aW9uIHAoTix3LEYpe2lmKCEodGhpcyBpbnN0YW5jZW9mIHApKXJldHVybiBu'@; put 'ZXcgcChOLHcsRik7dGhpcy5IYXNoPU4sdGhpcy5ibG9ja1NpemU9Ti5ibG9ja1NpemUvOCx0aGlzLm91dFNpemU9Ti5vdXRTaXplLzgsdGhpcy5pbm5lcj1udWxsLHRoaXMub3V0ZXI9bnVsbCx0aGlzLl9pbml0KEQudG9BcnJheSh3LEYpKX1jZS5leHBvcnRzPXAscC5wcm90b3R5cGUuX2lu'@; put 'aXQ9ZnVuY3Rpb24odyl7dy5sZW5ndGg+dGhpcy5ibG9ja1NpemUmJih3PShuZXcgdGhpcy5IYXNoKS51cGRhdGUodykuZGlnZXN0KCkpLF8ody5sZW5ndGg8PXRoaXMuYmxvY2tTaXplKTtmb3IodmFyIEY9dy5sZW5ndGg7Rjx0aGlzLmJsb2NrU2l6ZTtGKyspdy5wdXNoKDApO2ZvcihGPTA7'@; put 'Rjx3Lmxlbmd0aDtGKyspd1tGXV49NTQ7Zm9yKHRoaXMuaW5uZXI9KG5ldyB0aGlzLkhhc2gpLnVwZGF0ZSh3KSxGPTA7Rjx3Lmxlbmd0aDtGKyspd1tGXV49MTA2O3RoaXMub3V0ZXI9KG5ldyB0aGlzLkhhc2gpLnVwZGF0ZSh3KX0scC5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHcsRil7'@; put 'cmV0dXJuIHRoaXMuaW5uZXIudXBkYXRlKHcsRiksdGhpc30scC5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKHcpe3JldHVybiB0aGlzLm91dGVyLnVwZGF0ZSh0aGlzLmlubmVyLmRpZ2VzdCgpKSx0aGlzLm91dGVyLmRpZ2VzdCh3KX19LDE1MjgzOihjZSxKLGIpPT57InVzZSBzdHJpY3Qi'@; put 'O3ZhciBEPWIoNjgyODMpLF89YigxMjkwMSkscD1ELnJvdGwzMixOPUQuc3VtMzIsdz1ELnN1bTMyXzMsRj1ELnN1bTMyXzQsSD1fLkJsb2NrSGFzaDtmdW5jdGlvbiBSKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgUikpcmV0dXJuIG5ldyBSO0guY2FsbCh0aGlzKSx0aGlzLmg9WzE3MzI1ODQx'@; put 'OTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OCwzMjg1Mzc3NTIwXSx0aGlzLmVuZGlhbj0ibGl0dGxlIn1mdW5jdGlvbiBqKFgsUSxxLHRlKXtyZXR1cm4gWDw9MTU/UV5xXnRlOlg8PTMxP1EmcXx+USZ0ZTpYPD00Nz8oUXx+cSledGU6WDw9NjM/USZ0ZXxxJn50ZTpRXihxfH50'@; put 'ZSl9ZnVuY3Rpb24gTChYKXtyZXR1cm4gWDw9MTU/MTM1MjgyOTkyNjpYPD0zMT8xNTQ4NjAzNjg0Olg8PTQ3PzE4MzYwNzI2OTE6WDw9NjM/MjA1Mzk5NDIxNzowfUQuaW5oZXJpdHMoUixIKSxKLnJpcGVtZDE2MD1SLFIuYmxvY2tTaXplPTUxMixSLm91dFNpemU9MTYwLFIuaG1hY1N0cmVu'@; put 'Z3RoPTE5MixSLnBhZExlbmd0aD02NCxSLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKFEscSl7Zm9yKHZhciB0ZT10aGlzLmhbMF0saWU9dGhpcy5oWzFdLHNlPXRoaXMuaFsyXSxnZT10aGlzLmhbM10sX2U9dGhpcy5oWzRdLFRlPXRlLFNlPWllLHplPXNlLHo9Z2UsZz1fZSx5PTA7eTw4'@; put 'MDt5Kyspe3ZhciB4PU4ocChGKHRlLGooeSxpZSxzZSxnZSksUVtZW3ldK3FdLChYPXkpPD0xNT8wOlg8PTMxPzE1MTg1MDAyNDk6WDw9NDc/MTg1OTc3NTM5MzpYPD02Mz8yNDAwOTU5NzA4OjI4NDA4NTM4MzgpLFdbeV0pLF9lKTt0ZT1fZSxfZT1nZSxnZT1wKHNlLDEwKSxzZT1pZSxpZT14'@; put 'LHg9TihwKEYoVGUsaig3OS15LFNlLHplLHopLFFbQlt5XStxXSxMKHkpKSxaW3ldKSxnKSxUZT1nLGc9eix6PXAoemUsMTApLHplPVNlLFNlPXh9dmFyIFg7eD13KHRoaXMuaFsxXSxzZSx6KSx0aGlzLmhbMV09dyh0aGlzLmhbMl0sZ2UsZyksdGhpcy5oWzJdPXcodGhpcy5oWzNdLF9lLFRl'@; put 'KSx0aGlzLmhbM109dyh0aGlzLmhbNF0sdGUsU2UpLHRoaXMuaFs0XT13KHRoaXMuaFswXSxpZSx6ZSksdGhpcy5oWzBdPXh9LFIucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24oUSl7cmV0dXJuImhleCI9PT1RP0QudG9IZXgzMih0aGlzLmgsImxpdHRsZSIpOkQuc3BsaXQzMih0aGlzLmgs'@; put 'ImxpdHRsZSIpfTt2YXIgWT1bMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSw3LDQsMTMsMSwxMCw2LDE1LDMsMTIsMCw5LDUsMiwxNCwxMSw4LDMsMTAsMTQsNCw5LDE1LDgsMSwyLDcsMCw2LDEzLDExLDUsMTIsMSw5LDExLDEwLDAsOCwxMiw0LDEzLDMsNywxNSwxNCw1'@; put 'LDYsMiw0LDAsNSw5LDcsMTIsMiwxMCwxNCwxLDMsOCwxMSw2LDE1LDEzXSxCPVs1LDE0LDcsMCw5LDIsMTEsNCwxMyw2LDE1LDgsMSwxMCwzLDEyLDYsMTEsMyw3LDAsMTMsNSwxMCwxNCwxNSw4LDEyLDQsOSwxLDIsMTUsNSwxLDMsNywxNCw2LDksMTEsOCwxMiwyLDEwLDAsNCwxMyw4LDYs'@; put 'NCwxLDMsMTEsMTUsMCw1LDEyLDIsMTMsOSw3LDEwLDE0LDEyLDE1LDEwLDQsMSw1LDgsNyw2LDIsMTMsMTQsMCwzLDksMTFdLFc9WzExLDE0LDE1LDEyLDUsOCw3LDksMTEsMTMsMTQsMTUsNiw3LDksOCw3LDYsOCwxMywxMSw5LDcsMTUsNywxMiwxNSw5LDExLDcsMTMsMTIsMTEsMTMsNiw3'@; put 'LDE0LDksMTMsMTUsMTQsOCwxMyw2LDUsMTIsNyw1LDExLDEyLDE0LDE1LDE0LDE1LDksOCw5LDE0LDUsNiw4LDYsNSwxMiw5LDE1LDUsMTEsNiw4LDEzLDEyLDUsMTIsMTMsMTQsMTEsOCw1LDZdLFo9WzgsOSw5LDExLDEzLDE1LDE1LDUsNyw3LDgsMTEsMTQsMTQsMTIsNiw5LDEzLDE1LDcs'@; put 'MTIsOCw5LDExLDcsNywxMiw3LDYsMTUsMTMsMTEsOSw3LDE1LDExLDgsNiw2LDE0LDEyLDEzLDUsMTQsMTMsMTMsNyw1LDE1LDUsOCwxMSwxNCwxNCw2LDE0LDYsOSwxMiw5LDEyLDUsMTUsOCw4LDUsMTIsOSwxMiw1LDE0LDYsOCwxMyw2LDUsMTUsMTMsMTEsMTFdfSw3ODUyODooY2UsSixi'@; put 'KT0+eyJ1c2Ugc3RyaWN0IjtKLnNoYTE9YigzMzQ2OCksSi5zaGEyMjQ9Yig1NTYzKSxKLnNoYTI1Nj1iKDI3MTM4KSxKLnNoYTM4ND1iKDkzODk4KSxKLnNoYTUxMj1iKDEwODI3KX0sMzM0Njg6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig2ODI4MyksXz1iKDEyOTAxKSxwPWIo'@; put 'OTU1NDIpLE49RC5yb3RsMzIsdz1ELnN1bTMyLEY9RC5zdW0zMl81LEg9cC5mdF8xLFI9Xy5CbG9ja0hhc2gsaj1bMTUxODUwMDI0OSwxODU5Nzc1MzkzLDI0MDA5NTk3MDgsMzM5NTQ2OTc4Ml07ZnVuY3Rpb24gUCgpe2lmKCEodGhpcyBpbnN0YW5jZW9mIFApKXJldHVybiBuZXcgUDtSLmNh'@; put 'bGwodGhpcyksdGhpcy5oPVsxNzMyNTg0MTkzLDQwMjMyMzM0MTcsMjU2MjM4MzEwMiwyNzE3MzM4NzgsMzI4NTM3NzUyMF0sdGhpcy5XPW5ldyBBcnJheSg4MCl9RC5pbmhlcml0cyhQLFIpLGNlLmV4cG9ydHM9UCxQLmJsb2NrU2l6ZT01MTIsUC5vdXRTaXplPTE2MCxQLmhtYWNTdHJlbmd0'@; put 'aD04MCxQLnBhZExlbmd0aD02NCxQLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKFksQil7Zm9yKHZhciBXPXRoaXMuVyxaPTA7WjwxNjtaKyspV1taXT1ZW0IrWl07Zm9yKDtaPFcubGVuZ3RoO1orKylXW1pdPU4oV1taLTNdXldbWi04XV5XW1otMTRdXldbWi0xNl0sMSk7dmFyIFg9dGhp'@; put 'cy5oWzBdLFE9dGhpcy5oWzFdLHE9dGhpcy5oWzJdLHRlPXRoaXMuaFszXSxpZT10aGlzLmhbNF07Zm9yKFo9MDtaPFcubGVuZ3RoO1orKyl7dmFyIHNlPX5+KFovMjApLGdlPUYoTihYLDUpLEgoc2UsUSxxLHRlKSxpZSxXW1pdLGpbc2VdKTtpZT10ZSx0ZT1xLHE9TihRLDMwKSxRPVgsWD1n'@; put 'ZX10aGlzLmhbMF09dyh0aGlzLmhbMF0sWCksdGhpcy5oWzFdPXcodGhpcy5oWzFdLFEpLHRoaXMuaFsyXT13KHRoaXMuaFsyXSxxKSx0aGlzLmhbM109dyh0aGlzLmhbM10sdGUpLHRoaXMuaFs0XT13KHRoaXMuaFs0XSxpZSl9LFAucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24oWSl7cmV0'@; put 'dXJuImhleCI9PT1ZP0QudG9IZXgzMih0aGlzLmgsImJpZyIpOkQuc3BsaXQzMih0aGlzLmgsImJpZyIpfX0sNTU2MzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDY4MjgzKSxfPWIoMjcxMzgpO2Z1bmN0aW9uIHAoKXtpZighKHRoaXMgaW5zdGFuY2VvZiBwKSlyZXR1cm4gbmV3'@; put 'IHA7Xy5jYWxsKHRoaXMpLHRoaXMuaD1bMzIzODM3MTAzMiw5MTQxNTA2NjMsODEyNzAyOTk5LDQxNDQ5MTI2OTcsNDI5MDc3NTg1NywxNzUwNjAzMDI1LDE2OTQwNzY4MzksMzIwNDA3NTQyOF19RC5pbmhlcml0cyhwLF8pLGNlLmV4cG9ydHM9cCxwLmJsb2NrU2l6ZT01MTIscC5vdXRTaXpl'@; put 'PTIyNCxwLmhtYWNTdHJlbmd0aD0xOTIscC5wYWRMZW5ndGg9NjQscC5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbih3KXtyZXR1cm4iaGV4Ij09PXc/RC50b0hleDMyKHRoaXMuaC5zbGljZSgwLDcpLCJiaWciKTpELnNwbGl0MzIodGhpcy5oLnNsaWNlKDAsNyksImJpZyIpfX0sMjcxMzg6'@; put 'KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig2ODI4MyksXz1iKDEyOTAxKSxwPWIoOTU1NDIpLE49YigzOTIxMCksdz1ELnN1bTMyLEY9RC5zdW0zMl80LEg9RC5zdW0zMl81LFI9cC5jaDMyLGo9cC5tYWozMixQPXAuczBfMjU2LEw9cC5zMV8yNTYsWT1wLmcwXzI1NixCPXAuZzFf'@; put 'MjU2LFc9Xy5CbG9ja0hhc2gsWj1bMTExNjM1MjQwOCwxODk5NDQ3NDQxLDMwNDkzMjM0NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4NzA3NjMyMjEsMzYyNDM4MTA4MCwzMTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwyMTYy'@; put 'MDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQwMjIyMjQ3NzQsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5OTYwNjQ5ODYsMjU1NDIyMDg4MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMxMzY3MSwzMzM2NTcx'@; put 'ODkxLDM1ODQ1Mjg3MTEsMTEzOTI2OTkzLDMzODI0MTg5NSw2NjYzMDcyMDUsNzczNTI5OTEyLDEyOTQ3NTczNzIsMTM5NjE4MjI5MSwxNjk1MTgzNzAwLDE5ODY2NjEwNTEsMjE3NzAyNjM1MCwyNDU2OTU2MDM3LDI3MzA0ODU5MjEsMjgyMDMwMjQxMSwzMjU5NzMwODAwLDMzNDU3NjQ3NzEs'@; put 'MzUxNjA2NTgxNywzNjAwMzUyODA0LDQwOTQ1NzE5MDksMjc1NDIzMzQ0LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwxNTM3MDAyMDYzLDE3NDc4NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3MzA0NTIsMjM2MTg1'@; put 'MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5MzI1Mjk4XTtmdW5jdGlvbiBYKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgWCkpcmV0dXJuIG5ldyBYO1cuY2FsbCh0aGlzKSx0aGlzLmg9WzE3NzkwMzM3MDMsMzE0NDEzNDI3NywxMDEzOTA0MjQyLDI3NzM0ODA3NjIs'@; put 'MTM1OTg5MzExOSwyNjAwODIyOTI0LDUyODczNDYzNSwxNTQxNDU5MjI1XSx0aGlzLms9Wix0aGlzLlc9bmV3IEFycmF5KDY0KX1ELmluaGVyaXRzKFgsVyksY2UuZXhwb3J0cz1YLFguYmxvY2tTaXplPTUxMixYLm91dFNpemU9MjU2LFguaG1hY1N0cmVuZ3RoPTE5MixYLnBhZExlbmd0aD02'@; put 'NCxYLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHEsdGUpe2Zvcih2YXIgaWU9dGhpcy5XLHNlPTA7c2U8MTY7c2UrKylpZVtzZV09cVt0ZStzZV07Zm9yKDtzZTxpZS5sZW5ndGg7c2UrKylpZVtzZV09RihCKGllW3NlLTJdKSxpZVtzZS03XSxZKGllW3NlLTE1XSksaWVbc2UtMTZdKTt2'@; put 'YXIgZ2U9dGhpcy5oWzBdLF9lPXRoaXMuaFsxXSxUZT10aGlzLmhbMl0sU2U9dGhpcy5oWzNdLHplPXRoaXMuaFs0XSx6PXRoaXMuaFs1XSxnPXRoaXMuaFs2XSx5PXRoaXMuaFs3XTtmb3IoTih0aGlzLmsubGVuZ3RoPT09aWUubGVuZ3RoKSxzZT0wO3NlPGllLmxlbmd0aDtzZSsrKXt2YXIg'@; put 'eD1IKHksTCh6ZSksUih6ZSx6LGcpLHRoaXMua1tzZV0saWVbc2VdKSxDPXcoUChnZSksaihnZSxfZSxUZSkpO3k9ZyxnPXosej16ZSx6ZT13KFNlLHgpLFNlPVRlLFRlPV9lLF9lPWdlLGdlPXcoeCxDKX10aGlzLmhbMF09dyh0aGlzLmhbMF0sZ2UpLHRoaXMuaFsxXT13KHRoaXMuaFsxXSxf'@; put 'ZSksdGhpcy5oWzJdPXcodGhpcy5oWzJdLFRlKSx0aGlzLmhbM109dyh0aGlzLmhbM10sU2UpLHRoaXMuaFs0XT13KHRoaXMuaFs0XSx6ZSksdGhpcy5oWzVdPXcodGhpcy5oWzVdLHopLHRoaXMuaFs2XT13KHRoaXMuaFs2XSxnKSx0aGlzLmhbN109dyh0aGlzLmhbN10seSl9LFgucHJvdG90'@; put 'eXBlLl9kaWdlc3Q9ZnVuY3Rpb24ocSl7cmV0dXJuImhleCI9PT1xP0QudG9IZXgzMih0aGlzLmgsImJpZyIpOkQuc3BsaXQzMih0aGlzLmgsImJpZyIpfX0sOTM4OTg6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig2ODI4MyksXz1iKDEwODI3KTtmdW5jdGlvbiBwKCl7aWYoISh0'@; put 'aGlzIGluc3RhbmNlb2YgcCkpcmV0dXJuIG5ldyBwO18uY2FsbCh0aGlzKSx0aGlzLmg9WzM0MTgwNzAzNjUsMzIzODM3MTAzMiwxNjU0MjcwMjUwLDkxNDE1MDY2MywyNDM4NTI5MzcwLDgxMjcwMjk5OSwzNTU0NjIzNjAsNDE0NDkxMjY5NywxNzMxNDA1NDE1LDQyOTA3NzU4NTcsMjM5NDE4'@; put 'MDIzMSwxNzUwNjAzMDI1LDM2NzUwMDg1MjUsMTY5NDA3NjgzOSwxMjAzMDYyODEzLDMyMDQwNzU0MjhdfUQuaW5oZXJpdHMocCxfKSxjZS5leHBvcnRzPXAscC5ibG9ja1NpemU9MTAyNCxwLm91dFNpemU9Mzg0LHAuaG1hY1N0cmVuZ3RoPTE5MixwLnBhZExlbmd0aD0xMjgscC5wcm90b3R5'@; put 'cGUuX2RpZ2VzdD1mdW5jdGlvbih3KXtyZXR1cm4iaGV4Ij09PXc/RC50b0hleDMyKHRoaXMuaC5zbGljZSgwLDEyKSwiYmlnIik6RC5zcGxpdDMyKHRoaXMuaC5zbGljZSgwLDEyKSwiYmlnIil9fSwxMDgyNzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDY4MjgzKSxfPWIoMTI5'@; put 'MDEpLHA9YigzOTIxMCksTj1ELnJvdHI2NF9oaSx3PUQucm90cjY0X2xvLEY9RC5zaHI2NF9oaSxIPUQuc2hyNjRfbG8sUj1ELnN1bTY0LGo9RC5zdW02NF9oaSxQPUQuc3VtNjRfbG8sTD1ELnN1bTY0XzRfaGksWT1ELnN1bTY0XzRfbG8sQj1ELnN1bTY0XzVfaGksVz1ELnN1bTY0XzVfbG8s'@; put 'Wj1fLkJsb2NrSGFzaCxYPVsxMTE2MzUyNDA4LDM2MDk3Njc0NTgsMTg5OTQ0NzQ0MSw2MDI4OTE3MjUsMzA0OTMyMzQ3MSwzOTY0NDg0Mzk5LDM5MjEwMDk1NzMsMjE3MzI5NTU0OCw5NjE5ODcxNjMsNDA4MTYyODQ3MiwxNTA4OTcwOTkzLDMwNTM4MzQyNjUsMjQ1MzYzNTc0OCwyOTM3Njcx'@; put 'NTc5LDI4NzA3NjMyMjEsMzY2NDYwOTU2MCwzNjI0MzgxMDgwLDI3MzQ4ODMzOTQsMzEwNTk4NDAxLDExNjQ5OTY1NDIsNjA3MjI1Mjc4LDEzMjM2MTA3NjQsMTQyNjg4MTk4NywzNTkwMzA0OTk0LDE5MjUwNzgzODgsNDA2ODE4MjM4MywyMTYyMDc4MjA2LDk5MTMzNjExMywyNjE0ODg4MTAz'@; put 'LDYzMzgwMzMxNywzMjQ4MjIyNTgwLDM0Nzk3NzQ4NjgsMzgzNTM5MDQwMSwyNjY2NjEzNDU4LDQwMjIyMjQ3NzQsOTQ0NzExMTM5LDI2NDM0NzA3OCwyMzQxMjYyNzczLDYwNDgwNzYyOCwyMDA3ODAwOTMzLDc3MDI1NTk4MywxNDk1OTkwOTAxLDEyNDkxNTAxMjIsMTg1NjQzMTIzNSwxNTU1'@; put 'MDgxNjkyLDMxNzUyMTgxMzIsMTk5NjA2NDk4NiwyMTk4OTUwODM3LDI1NTQyMjA4ODIsMzk5OTcxOTMzOSwyODIxODM0MzQ5LDc2Njc4NDAxNiwyOTUyOTk2ODA4LDI1NjY1OTQ4NzksMzIxMDMxMzY3MSwzMjAzMzM3OTU2LDMzMzY1NzE4OTEsMTAzNDQ1NzAyNiwzNTg0NTI4NzExLDI0NjY5'@; put 'NDg5MDEsMTEzOTI2OTkzLDM3NTgzMjYzODMsMzM4MjQxODk1LDE2ODcxNzkzNiw2NjYzMDcyMDUsMTE4ODE3OTk2NCw3NzM1Mjk5MTIsMTU0NjA0NTczNCwxMjk0NzU3MzcyLDE1MjI4MDU0ODUsMTM5NjE4MjI5MSwyNjQzODMzODIzLDE2OTUxODM3MDAsMjM0MzUyNzM5MCwxOTg2NjYxMDUx'@; put 'LDEwMTQ0Nzc0ODAsMjE3NzAyNjM1MCwxMjA2NzU5MTQyLDI0NTY5NTYwMzcsMzQ0MDc3NjI3LDI3MzA0ODU5MjEsMTI5MDg2MzQ2MCwyODIwMzAyNDExLDMxNTg0NTQyNzMsMzI1OTczMDgwMCwzNTA1OTUyNjU3LDMzNDU3NjQ3NzEsMTA2MjE3MDA4LDM1MTYwNjU4MTcsMzYwNjAwODM0NCwz'@; put 'NjAwMzUyODA0LDE0MzI3MjU3NzYsNDA5NDU3MTkwOSwxNDY3MDMxNTk0LDI3NTQyMzM0NCw4NTExNjk3MjAsNDMwMjI3NzM0LDMxMDA4MjM3NTIsNTA2OTQ4NjE2LDEzNjMyNTgxOTUsNjU5MDYwNTU2LDM3NTA2ODU1OTMsODgzOTk3ODc3LDM3ODUwNTAyODAsOTU4MTM5NTcxLDMzMTgzMDc0'@; put 'MjcsMTMyMjgyMjIxOCwzODEyNzIzNDAzLDE1MzcwMDIwNjMsMjAwMzAzNDk5NSwxNzQ3ODczNzc5LDM2MDIwMzY4OTksMTk1NTU2MjIyMiwxNTc1OTkwMDEyLDIwMjQxMDQ4MTUsMTEyNTU5MjkyOCwyMjI3NzMwNDUyLDI3MTY5MDQzMDYsMjM2MTg1MjQyNCw0NDI3NzYwNDQsMjQyODQzNjQ3'@; put 'NCw1OTM2OTgzNDQsMjc1NjczNDE4NywzNzMzMTEwMjQ5LDMyMDQwMzE0NzksMjk5OTM1MTU3MywzMzI5MzI1Mjk4LDM4MTU5MjA0MjcsMzM5MTU2OTYxNCwzOTI4MzgzOTAwLDM1MTUyNjcyNzEsNTY2MjgwNzExLDM5NDAxODc2MDYsMzQ1NDA2OTUzNCw0MTE4NjMwMjcxLDQwMDAyMzk5OTIs'@; put 'MTE2NDE4NDc0LDE5MTQxMzg1NTQsMTc0MjkyNDIxLDI3MzEwNTUyNzAsMjg5MzgwMzU2LDMyMDM5OTMwMDYsNDYwMzkzMjY5LDMyMDYyMDMxNSw2ODU0NzE3MzMsNTg3NDk2ODM2LDg1MjE0Mjk3MSwxMDg2NzkyODUxLDEwMTcwMzYyOTgsMzY1NTQzMTAwLDExMjYwMDA1ODAsMjYxODI5NzY3'@; put 'NiwxMjg4MDMzNDcwLDM0MDk4NTUxNTgsMTUwMTUwNTk0OCw0MjM0NTA5ODY2LDE2MDcxNjc5MTUsOTg3MTY3NDY4LDE4MTY0MDIzMTYsMTI0NjE4OTU5MV07ZnVuY3Rpb24gUSgpe2lmKCEodGhpcyBpbnN0YW5jZW9mIFEpKXJldHVybiBuZXcgUTtaLmNhbGwodGhpcyksdGhpcy5oPVsxNzc5'@; put 'MDMzNzAzLDQwODkyMzU3MjAsMzE0NDEzNDI3NywyMjI3ODczNTk1LDEwMTM5MDQyNDIsNDI3MTE3NTcyMywyNzczNDgwNzYyLDE1OTU3NTAxMjksMTM1OTg5MzExOSwyOTE3NTY1MTM3LDI2MDA4MjI5MjQsNzI1NTExMTk5LDUyODczNDYzNSw0MjE1Mzg5NTQ3LDE1NDE0NTkyMjUsMzI3MDMz'@; put 'MjA5XSx0aGlzLms9WCx0aGlzLlc9bmV3IEFycmF5KDE2MCl9ZnVuY3Rpb24gcSh4LEMsVCxWLFUpe3ZhciBFPXgmVF5+eCZVO3JldHVybiBFPDAmJihFKz00Mjk0OTY3Mjk2KSxFfWZ1bmN0aW9uIHRlKHgsQyxULFYsVSxFKXt2YXIgbT1DJlZefkMmRTtyZXR1cm4gbTwwJiYobSs9NDI5NDk2'@; put 'NzI5NiksbX1mdW5jdGlvbiBpZSh4LEMsVCxWLFUpe3ZhciBFPXgmVF54JlVeVCZVO3JldHVybiBFPDAmJihFKz00Mjk0OTY3Mjk2KSxFfWZ1bmN0aW9uIHNlKHgsQyxULFYsVSxFKXt2YXIgbT1DJlZeQyZFXlYmRTtyZXR1cm4gbTwwJiYobSs9NDI5NDk2NzI5NiksbX1mdW5jdGlvbiBnZSh4'@; put 'LEMpe3ZhciBFPU4oeCxDLDI4KV5OKEMseCwyKV5OKEMseCw3KTtyZXR1cm4gRTwwJiYoRSs9NDI5NDk2NzI5NiksRX1mdW5jdGlvbiBfZSh4LEMpe3ZhciBFPXcoeCxDLDI4KV53KEMseCwyKV53KEMseCw3KTtyZXR1cm4gRTwwJiYoRSs9NDI5NDk2NzI5NiksRX1mdW5jdGlvbiBUZSh4LEMp'@; put 'e3ZhciBFPU4oeCxDLDE0KV5OKHgsQywxOCleTihDLHgsOSk7cmV0dXJuIEU8MCYmKEUrPTQyOTQ5NjcyOTYpLEV9ZnVuY3Rpb24gU2UoeCxDKXt2YXIgRT13KHgsQywxNCledyh4LEMsMTgpXncoQyx4LDkpO3JldHVybiBFPDAmJihFKz00Mjk0OTY3Mjk2KSxFfWZ1bmN0aW9uIHplKHgsQyl7'@; put 'dmFyIEU9Tih4LEMsMSleTih4LEMsOCleRih4LEMsNyk7cmV0dXJuIEU8MCYmKEUrPTQyOTQ5NjcyOTYpLEV9ZnVuY3Rpb24geih4LEMpe3ZhciBFPXcoeCxDLDEpXncoeCxDLDgpXkgoeCxDLDcpO3JldHVybiBFPDAmJihFKz00Mjk0OTY3Mjk2KSxFfWZ1bmN0aW9uIGcoeCxDKXt2YXIgRT1O'@; put 'KHgsQywxOSleTihDLHgsMjkpXkYoeCxDLDYpO3JldHVybiBFPDAmJihFKz00Mjk0OTY3Mjk2KSxFfWZ1bmN0aW9uIHkoeCxDKXt2YXIgRT13KHgsQywxOSledyhDLHgsMjkpXkgoeCxDLDYpO3JldHVybiBFPDAmJihFKz00Mjk0OTY3Mjk2KSxFfUQuaW5oZXJpdHMoUSxaKSxjZS5leHBvcnRz'@; put 'PVEsUS5ibG9ja1NpemU9MTAyNCxRLm91dFNpemU9NTEyLFEuaG1hY1N0cmVuZ3RoPTE5MixRLnBhZExlbmd0aD0xMjgsUS5wcm90b3R5cGUuX3ByZXBhcmVCbG9jaz1mdW5jdGlvbihDLFQpe2Zvcih2YXIgVj10aGlzLlcsVT0wO1U8MzI7VSsrKVZbVV09Q1tUK1VdO2Zvcig7VTxWLmxlbmd0'@; put 'aDtVKz0yKXt2YXIgRT1nKFZbVS00XSxWW1UtM10pLG09eShWW1UtNF0sVltVLTNdKSxBPVZbVS0xNF0sYWU9VltVLTEzXSxuZT16ZShWW1UtMzBdLFZbVS0yOV0pLGxlPXooVltVLTMwXSxWW1UtMjldKSx3ZT1WW1UtMzJdLFplPVZbVS0zMV07VltVXT1MKEUsbSxBLGFlLG5lLGxlLHdlLFpl'@; put 'KSxWW1UrMV09WShFLG0sQSxhZSxuZSxsZSx3ZSxaZSl9fSxRLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKEMsVCl7dGhpcy5fcHJlcGFyZUJsb2NrKEMsVCk7dmFyIFY9dGhpcy5XLFU9dGhpcy5oWzBdLEU9dGhpcy5oWzFdLG09dGhpcy5oWzJdLEE9dGhpcy5oWzNdLGFlPXRoaXMuaFs0'@; put 'XSxuZT10aGlzLmhbNV0sbGU9dGhpcy5oWzZdLHdlPXRoaXMuaFs3XSxaZT10aGlzLmhbOF0sUWU9dGhpcy5oWzldLGF0PXRoaXMuaFsxMF0seGU9dGhpcy5oWzExXSx2ZT10aGlzLmhbMTJdLHFlPXRoaXMuaFsxM10samU9dGhpcy5oWzE0XSxBZT10aGlzLmhbMTVdO3AodGhpcy5rLmxlbmd0'@; put 'aD09PVYubGVuZ3RoKTtmb3IodmFyIEZlPTA7RmU8Vi5sZW5ndGg7RmUrPTIpe3ZhciBSZT1qZSxJZT1BZSxIZT1UZShaZSxRZSksRGU9U2UoWmUsUWUpLGtlPXEoWmUsMCxhdCwwLHZlKSxfdD10ZSgwLFFlLDAseGUsMCxxZSksbnQ9dGhpcy5rW0ZlXSxKZT10aGlzLmtbRmUrMV0sb249VltG'@; put 'ZV0seXQ9VltGZSsxXSxNdD1CKFJlLEllLEhlLERlLGtlLF90LG50LEplLG9uLHl0KSxJdD1XKFJlLEllLEhlLERlLGtlLF90LG50LEplLG9uLHl0KTtSZT1nZShVLEUpLEllPV9lKFUsRSksSGU9aWUoVSwwLG0sMCxhZSksRGU9c2UoMCxFLDAsQSwwLG5lKTt2YXIgcnQ9aihSZSxJZSxIZSxE'@; put 'ZSksS2U9UChSZSxJZSxIZSxEZSk7amU9dmUsQWU9cWUsdmU9YXQscWU9eGUsYXQ9WmUseGU9UWUsWmU9aihsZSx3ZSxNdCxJdCksUWU9UCh3ZSx3ZSxNdCxJdCksbGU9YWUsd2U9bmUsYWU9bSxuZT1BLG09VSxBPUUsVT1qKE10LEl0LHJ0LEtlKSxFPVAoTXQsSXQscnQsS2UpfVIodGhpcy5o'@; put 'LDAsVSxFKSxSKHRoaXMuaCwyLG0sQSksUih0aGlzLmgsNCxhZSxuZSksUih0aGlzLmgsNixsZSx3ZSksUih0aGlzLmgsOCxaZSxRZSksUih0aGlzLmgsMTAsYXQseGUpLFIodGhpcy5oLDEyLHZlLHFlKSxSKHRoaXMuaCwxNCxqZSxBZSl9LFEucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24o'@; put 'Qyl7cmV0dXJuImhleCI9PT1DP0QudG9IZXgzMih0aGlzLmgsImJpZyIpOkQuc3BsaXQzMih0aGlzLmgsImJpZyIpfX0sOTU1NDI6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIF89Yig2ODI4Mykucm90cjMyO2Z1bmN0aW9uIE4oTCxZLEIpe3JldHVybiBMJllefkwmQn1mdW5jdGlvbiB3'@; put 'KEwsWSxCKXtyZXR1cm4gTCZZXkwmQl5ZJkJ9ZnVuY3Rpb24gRihMLFksQil7cmV0dXJuIExeWV5CfUouZnRfMT1mdW5jdGlvbiBwKEwsWSxCLFcpe3JldHVybiAwPT09TD9OKFksQixXKToxPT09THx8Mz09PUw/RihZLEIsVyk6Mj09PUw/dyhZLEIsVyk6dm9pZCAwfSxKLmNoMzI9TixKLm1h'@; put 'ajMyPXcsSi5wMzI9RixKLnMwXzI1Nj1mdW5jdGlvbiBIKEwpe3JldHVybiBfKEwsMileXyhMLDEzKV5fKEwsMjIpfSxKLnMxXzI1Nj1mdW5jdGlvbiBSKEwpe3JldHVybiBfKEwsNileXyhMLDExKV5fKEwsMjUpfSxKLmcwXzI1Nj1mdW5jdGlvbiBqKEwpe3JldHVybiBfKEwsNyleXyhMLDE4'@; put 'KV5MPj4+M30sSi5nMV8yNTY9ZnVuY3Rpb24gUChMKXtyZXR1cm4gXyhMLDE3KV5fKEwsMTkpXkw+Pj4xMH19LDY4MjgzOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMzkyMTApLF89Yig3MTk5Myk7ZnVuY3Rpb24gcCh5LHgpe3JldHVybiEoNTUyOTYhPSg2NDUxMiZ5LmNoYXJD'@; put 'b2RlQXQoeCkpfHx4PDB8fHgrMT49eS5sZW5ndGgpJiY1NjMyMD09KDY0NTEyJnkuY2hhckNvZGVBdCh4KzEpKX1mdW5jdGlvbiBGKHkpe3JldHVybih5Pj4+MjR8eT4+PjgmNjUyODB8eTw8OCYxNjcxMTY4MHwoMjU1JnkpPDwyNCk+Pj4wfWZ1bmN0aW9uIFIoeSl7cmV0dXJuIDE9PT15Lmxl'@; put 'bmd0aD8iMCIreTp5fWZ1bmN0aW9uIGooeSl7cmV0dXJuIDc9PT15Lmxlbmd0aD8iMCIreTo2PT09eS5sZW5ndGg/IjAwIit5OjU9PT15Lmxlbmd0aD8iMDAwIit5OjQ9PT15Lmxlbmd0aD8iMDAwMCIreTozPT09eS5sZW5ndGg/IjAwMDAwIit5OjI9PT15Lmxlbmd0aD8iMDAwMDAwIit5OjE9'@; put 'PT15Lmxlbmd0aD8iMDAwMDAwMCIreTp5fUouaW5oZXJpdHM9XyxKLnRvQXJyYXk9ZnVuY3Rpb24gTih5LHgpe2lmKEFycmF5LmlzQXJyYXkoeSkpcmV0dXJuIHkuc2xpY2UoKTtpZigheSlyZXR1cm5bXTt2YXIgQz1bXTtpZigic3RyaW5nIj09dHlwZW9mIHkpaWYoeCl7aWYoImhleCI9PT14'@; put 'KWZvcigoeT15LnJlcGxhY2UoL1teYS16MC05XSsvZ2ksIiIpKS5sZW5ndGglMiE9MCYmKHk9IjAiK3kpLFY9MDtWPHkubGVuZ3RoO1YrPTIpQy5wdXNoKHBhcnNlSW50KHlbVl0reVtWKzFdLDE2KSl9ZWxzZSBmb3IodmFyIFQ9MCxWPTA7Vjx5Lmxlbmd0aDtWKyspe3ZhciBVPXkuY2hhckNv'@; put 'ZGVBdChWKTtVPDEyOD9DW1QrK109VTpVPDIwNDg/KENbVCsrXT1VPj42fDE5MixDW1QrK109NjMmVXwxMjgpOnAoeSxWKT8oVT02NTUzNisoKDEwMjMmVSk8PDEwKSsoMTAyMyZ5LmNoYXJDb2RlQXQoKytWKSksQ1tUKytdPVU+PjE4fDI0MCxDW1QrK109VT4+MTImNjN8MTI4LENbVCsrXT1V'@; put 'Pj42JjYzfDEyOCxDW1QrK109NjMmVXwxMjgpOihDW1QrK109VT4+MTJ8MjI0LENbVCsrXT1VPj42JjYzfDEyOCxDW1QrK109NjMmVXwxMjgpfWVsc2UgZm9yKFY9MDtWPHkubGVuZ3RoO1YrKylDW1ZdPTB8eVtWXTtyZXR1cm4gQ30sSi50b0hleD1mdW5jdGlvbiB3KHkpe2Zvcih2YXIgeD0i'@; put 'IixDPTA7Qzx5Lmxlbmd0aDtDKyspeCs9Uih5W0NdLnRvU3RyaW5nKDE2KSk7cmV0dXJuIHh9LEouaHRvbmw9RixKLnRvSGV4MzI9ZnVuY3Rpb24gSCh5LHgpe2Zvcih2YXIgQz0iIixUPTA7VDx5Lmxlbmd0aDtUKyspe3ZhciBWPXlbVF07ImxpdHRsZSI9PT14JiYoVj1GKFYpKSxDKz1qKFYu'@; put 'dG9TdHJpbmcoMTYpKX1yZXR1cm4gQ30sSi56ZXJvMj1SLEouemVybzg9aixKLmpvaW4zMj1mdW5jdGlvbiBQKHkseCxDLFQpe3ZhciBWPUMteDtEKFYlND09MCk7Zm9yKHZhciBVPW5ldyBBcnJheShWLzQpLEU9MCxtPXg7RTxVLmxlbmd0aDtFKyssbSs9NClVW0VdPSgiYmlnIj09PVQ/eVtt'@; put 'XTw8MjR8eVttKzFdPDwxNnx5W20rMl08PDh8eVttKzNdOnlbbSszXTw8MjR8eVttKzJdPDwxNnx5W20rMV08PDh8eVttXSk+Pj4wO3JldHVybiBVfSxKLnNwbGl0MzI9ZnVuY3Rpb24gTCh5LHgpe2Zvcih2YXIgQz1uZXcgQXJyYXkoNCp5Lmxlbmd0aCksVD0wLFY9MDtUPHkubGVuZ3RoO1Qr'@; put 'KyxWKz00KXt2YXIgVT15W1RdOyJiaWciPT09eD8oQ1tWXT1VPj4+MjQsQ1tWKzFdPVU+Pj4xNiYyNTUsQ1tWKzJdPVU+Pj44JjI1NSxDW1YrM109MjU1JlUpOihDW1YrM109VT4+PjI0LENbVisyXT1VPj4+MTYmMjU1LENbVisxXT1VPj4+OCYyNTUsQ1tWXT0yNTUmVSl9cmV0dXJuIEN9LEou'@; put 'cm90cjMyPWZ1bmN0aW9uIFkoeSx4KXtyZXR1cm4geT4+Pnh8eTw8MzIteH0sSi5yb3RsMzI9ZnVuY3Rpb24gQih5LHgpe3JldHVybiB5PDx4fHk+Pj4zMi14fSxKLnN1bTMyPWZ1bmN0aW9uIFcoeSx4KXtyZXR1cm4geSt4Pj4+MH0sSi5zdW0zMl8zPWZ1bmN0aW9uIFooeSx4LEMpe3JldHVy'@; put 'biB5K3grQz4+PjB9LEouc3VtMzJfND1mdW5jdGlvbiBYKHkseCxDLFQpe3JldHVybiB5K3grQytUPj4+MH0sSi5zdW0zMl81PWZ1bmN0aW9uIFEoeSx4LEMsVCxWKXtyZXR1cm4geSt4K0MrVCtWPj4+MH0sSi5zdW02ND1mdW5jdGlvbiBxKHkseCxDLFQpe3ZhciBFPVQreVt4KzFdPj4+MDt5'@; put 'W3hdPShFPFQ/MTowKStDK3lbeF0+Pj4wLHlbeCsxXT1FfSxKLnN1bTY0X2hpPWZ1bmN0aW9uIHRlKHkseCxDLFQpe3JldHVybih4K1Q+Pj4wPHg/MTowKSt5K0M+Pj4wfSxKLnN1bTY0X2xvPWZ1bmN0aW9uIGllKHkseCxDLFQpe3JldHVybiB4K1Q+Pj4wfSxKLnN1bTY0XzRfaGk9ZnVuY3Rp'@; put 'b24gc2UoeSx4LEMsVCxWLFUsRSxtKXt2YXIgQT0wLGFlPXg7cmV0dXJuIEErPShhZT1hZStUPj4+MCk8eD8xOjAsQSs9KGFlPWFlK1U+Pj4wKTxVPzE6MCx5K0MrVitFKyhBKz0oYWU9YWUrbT4+PjApPG0/MTowKT4+PjB9LEouc3VtNjRfNF9sbz1mdW5jdGlvbiBnZSh5LHgsQyxULFYsVSxF'@; put 'LG0pe3JldHVybiB4K1QrVSttPj4+MH0sSi5zdW02NF81X2hpPWZ1bmN0aW9uIF9lKHkseCxDLFQsVixVLEUsbSxBLGFlKXt2YXIgbmU9MCxsZT14O3JldHVybiBuZSs9KGxlPWxlK1Q+Pj4wKTx4PzE6MCxuZSs9KGxlPWxlK1U+Pj4wKTxVPzE6MCxuZSs9KGxlPWxlK20+Pj4wKTxtPzE6MCx5'@; put 'K0MrVitFK0ErKG5lKz0obGU9bGUrYWU+Pj4wKTxhZT8xOjApPj4+MH0sSi5zdW02NF81X2xvPWZ1bmN0aW9uIFRlKHkseCxDLFQsVixVLEUsbSxBLGFlKXtyZXR1cm4geCtUK1UrbSthZT4+PjB9LEoucm90cjY0X2hpPWZ1bmN0aW9uIFNlKHkseCxDKXtyZXR1cm4oeDw8MzItQ3x5Pj4+Qyk+'@; put 'Pj4wfSxKLnJvdHI2NF9sbz1mdW5jdGlvbiB6ZSh5LHgsQyl7cmV0dXJuKHk8PDMyLUN8eD4+PkMpPj4+MH0sSi5zaHI2NF9oaT1mdW5jdGlvbiB6KHkseCxDKXtyZXR1cm4geT4+PkN9LEouc2hyNjRfbG89ZnVuY3Rpb24gZyh5LHgsQyl7cmV0dXJuKHk8PDMyLUN8eD4+PkMpPj4+MH19LDc4'@; put 'MzY4OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPUZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLF89T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxwPWIoNjU5OTIpO2NlLmV4cG9ydHM9cC5jYWxsKEQsXyl9LDMzNTU2OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIo'@; put 'NTI1MjkpLF89YigyMTgzMikscD1iKDM5MjEwKTtmdW5jdGlvbiBOKHcpe2lmKCEodGhpcyBpbnN0YW5jZW9mIE4pKXJldHVybiBuZXcgTih3KTt0aGlzLmhhc2g9dy5oYXNoLHRoaXMucHJlZFJlc2lzdD0hIXcucHJlZFJlc2lzdCx0aGlzLm91dExlbj10aGlzLmhhc2gub3V0U2l6ZSx0aGlz'@; put 'Lm1pbkVudHJvcHk9dy5taW5FbnRyb3B5fHx0aGlzLmhhc2guaG1hY1N0cmVuZ3RoLHRoaXMuX3Jlc2VlZD1udWxsLHRoaXMucmVzZWVkSW50ZXJ2YWw9bnVsbCx0aGlzLks9bnVsbCx0aGlzLlY9bnVsbDt2YXIgRj1fLnRvQXJyYXkody5lbnRyb3B5LHcuZW50cm9weUVuY3x8ImhleCIpLEg9'@; put 'Xy50b0FycmF5KHcubm9uY2Usdy5ub25jZUVuY3x8ImhleCIpLFI9Xy50b0FycmF5KHcucGVycyx3LnBlcnNFbmN8fCJoZXgiKTtwKEYubGVuZ3RoPj10aGlzLm1pbkVudHJvcHkvOCwiTm90IGVub3VnaCBlbnRyb3B5LiBNaW5pbXVtIGlzOiAiK3RoaXMubWluRW50cm9weSsiIGJpdHMiKSx0'@; put 'aGlzLl9pbml0KEYsSCxSKX1jZS5leHBvcnRzPU4sTi5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oRixILFIpe3ZhciBqPUYuY29uY2F0KEgpLmNvbmNhdChSKTt0aGlzLks9bmV3IEFycmF5KHRoaXMub3V0TGVuLzgpLHRoaXMuVj1uZXcgQXJyYXkodGhpcy5vdXRMZW4vOCk7Zm9yKHZhciBQ'@; put 'PTA7UDx0aGlzLlYubGVuZ3RoO1ArKyl0aGlzLktbUF09MCx0aGlzLlZbUF09MTt0aGlzLl91cGRhdGUoaiksdGhpcy5fcmVzZWVkPTEsdGhpcy5yZXNlZWRJbnRlcnZhbD0yODE0NzQ5NzY3MTA2NTZ9LE4ucHJvdG90eXBlLl9obWFjPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBELmhtYWModGhp'@; put 'cy5oYXNoLHRoaXMuSyl9LE4ucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oRil7dmFyIEg9dGhpcy5faG1hYygpLnVwZGF0ZSh0aGlzLlYpLnVwZGF0ZShbMF0pO0YmJihIPUgudXBkYXRlKEYpKSx0aGlzLks9SC5kaWdlc3QoKSx0aGlzLlY9dGhpcy5faG1hYygpLnVwZGF0ZSh0aGlzLlYp'@; put 'LmRpZ2VzdCgpLEYmJih0aGlzLks9dGhpcy5faG1hYygpLnVwZGF0ZSh0aGlzLlYpLnVwZGF0ZShbMV0pLnVwZGF0ZShGKS5kaWdlc3QoKSx0aGlzLlY9dGhpcy5faG1hYygpLnVwZGF0ZSh0aGlzLlYpLmRpZ2VzdCgpKX0sTi5wcm90b3R5cGUucmVzZWVkPWZ1bmN0aW9uKEYsSCxSLGopeyJz'@; put 'dHJpbmciIT10eXBlb2YgSCYmKGo9UixSPUgsSD1udWxsKSxGPV8udG9BcnJheShGLEgpLFI9Xy50b0FycmF5KFIsaikscChGLmxlbmd0aD49dGhpcy5taW5FbnRyb3B5LzgsIk5vdCBlbm91Z2ggZW50cm9weS4gTWluaW11bSBpczogIit0aGlzLm1pbkVudHJvcHkrIiBiaXRzIiksdGhpcy5f'@; put 'dXBkYXRlKEYuY29uY2F0KFJ8fFtdKSksdGhpcy5fcmVzZWVkPTF9LE4ucHJvdG90eXBlLmdlbmVyYXRlPWZ1bmN0aW9uKEYsSCxSLGope2lmKHRoaXMuX3Jlc2VlZD50aGlzLnJlc2VlZEludGVydmFsKXRocm93IG5ldyBFcnJvcigiUmVzZWVkIGlzIHJlcXVpcmVkIik7InN0cmluZyIhPXR5'@; put 'cGVvZiBIJiYoaj1SLFI9SCxIPW51bGwpLFImJihSPV8udG9BcnJheShSLGp8fCJoZXgiKSx0aGlzLl91cGRhdGUoUikpO2Zvcih2YXIgUD1bXTtQLmxlbmd0aDxGOyl0aGlzLlY9dGhpcy5faG1hYygpLnVwZGF0ZSh0aGlzLlYpLmRpZ2VzdCgpLFA9UC5jb25jYXQodGhpcy5WKTt2YXIgTD1Q'@; put 'LnNsaWNlKDAsRik7cmV0dXJuIHRoaXMuX3VwZGF0ZShSKSx0aGlzLl9yZXNlZWQrKyxfLmVuY29kZShMLEgpfX0sOTM2OTQ6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig5MzgwNykuQnVmZmVyO0ouX2RiY3M9ajtmb3IodmFyIF89LTEscD0tMixOPS0xMCx3PS0xZTMsRj1uZXcg'@; put 'QXJyYXkoMjU2KSxSPTA7UjwyNTY7UisrKUZbUl09XztmdW5jdGlvbiBqKEIsVyl7aWYodGhpcy5lbmNvZGluZ05hbWU9Qi5lbmNvZGluZ05hbWUsIUIpdGhyb3cgbmV3IEVycm9yKCJEQkNTIGNvZGVjIGlzIGNhbGxlZCB3aXRob3V0IHRoZSBkYXRhLiIpO2lmKCFCLnRhYmxlKXRocm93IG5l'@; put 'dyBFcnJvcigiRW5jb2RpbmcgJyIrdGhpcy5lbmNvZGluZ05hbWUrIicgaGFzIG5vIGRhdGEuIik7dmFyIFo9Qi50YWJsZSgpO3RoaXMuZGVjb2RlVGFibGVzPVtdLHRoaXMuZGVjb2RlVGFibGVzWzBdPUYuc2xpY2UoMCksdGhpcy5kZWNvZGVUYWJsZVNlcT1bXTtmb3IodmFyIFg9MDtYPFou'@; put 'bGVuZ3RoO1grKyl0aGlzLl9hZGREZWNvZGVDaHVuayhaW1hdKTt0aGlzLmRlZmF1bHRDaGFyVW5pY29kZT1XLmRlZmF1bHRDaGFyVW5pY29kZSx0aGlzLmVuY29kZVRhYmxlPVtdLHRoaXMuZW5jb2RlVGFibGVTZXE9W107dmFyIFE9e307aWYoQi5lbmNvZGVTa2lwVmFscylmb3IoWD0wO1g8'@; put 'Qi5lbmNvZGVTa2lwVmFscy5sZW5ndGg7WCsrKXt2YXIgcT1CLmVuY29kZVNraXBWYWxzW1hdO2lmKCJudW1iZXIiPT10eXBlb2YgcSlRW3FdPSEwO2Vsc2UgZm9yKHZhciB0ZT1xLmZyb207dGU8PXEudG87dGUrKylRW3RlXT0hMH1pZih0aGlzLl9maWxsRW5jb2RlVGFibGUoMCwwLFEpLEIu'@; put 'ZW5jb2RlQWRkKWZvcih2YXIgaWUgaW4gQi5lbmNvZGVBZGQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEIuZW5jb2RlQWRkLGllKSYmdGhpcy5fc2V0RW5jb2RlQ2hhcihpZS5jaGFyQ29kZUF0KDApLEIuZW5jb2RlQWRkW2llXSk7aWYodGhpcy5kZWZDaGFyU0I9dGhp'@; put 'cy5lbmNvZGVUYWJsZVswXVtXLmRlZmF1bHRDaGFyU2luZ2xlQnl0ZS5jaGFyQ29kZUF0KDApXSx0aGlzLmRlZkNoYXJTQj09PV8mJih0aGlzLmRlZkNoYXJTQj10aGlzLmVuY29kZVRhYmxlWzBdWyI/Il0pLHRoaXMuZGVmQ2hhclNCPT09XyYmKHRoaXMuZGVmQ2hhclNCPTYzKSwiZnVuY3Rp'@; put 'b24iPT10eXBlb2YgQi5nYjE4MDMwKXt0aGlzLmdiMTgwMzA9Qi5nYjE4MDMwKCk7dmFyIHNlPXRoaXMuZGVjb2RlVGFibGVzLmxlbmd0aCxnZT10aGlzLmRlY29kZVRhYmxlc1tzZV09Ri5zbGljZSgwKSxfZT10aGlzLmRlY29kZVRhYmxlcy5sZW5ndGgsVGU9dGhpcy5kZWNvZGVUYWJsZXNb'@; put 'X2VdPUYuc2xpY2UoMCk7Zm9yKFg9MTI5O1g8PTI1NDtYKyspe3ZhciB6ZT10aGlzLmRlY29kZVRhYmxlc1t3LXRoaXMuZGVjb2RlVGFibGVzWzBdW1hdXTtmb3IodGU9NDg7dGU8PTU3O3RlKyspemVbdGVdPXctc2V9Zm9yKFg9MTI5O1g8PTI1NDtYKyspZ2VbWF09dy1fZTtmb3IoWD00ODtY'@; put 'PD01NztYKyspVGVbWF09cH19ZnVuY3Rpb24gUChCLFcpe3RoaXMubGVhZFN1cnJvZ2F0ZT0tMSx0aGlzLnNlcU9iaj12b2lkIDAsdGhpcy5lbmNvZGVUYWJsZT1XLmVuY29kZVRhYmxlLHRoaXMuZW5jb2RlVGFibGVTZXE9Vy5lbmNvZGVUYWJsZVNlcSx0aGlzLmRlZmF1bHRDaGFyU2luZ2xl'@; put 'Qnl0ZT1XLmRlZkNoYXJTQix0aGlzLmdiMTgwMzA9Vy5nYjE4MDMwfWZ1bmN0aW9uIEwoQixXKXt0aGlzLm5vZGVJZHg9MCx0aGlzLnByZXZCdWY9RC5hbGxvYygwKSx0aGlzLmRlY29kZVRhYmxlcz1XLmRlY29kZVRhYmxlcyx0aGlzLmRlY29kZVRhYmxlU2VxPVcuZGVjb2RlVGFibGVTZXEs'@; put 'dGhpcy5kZWZhdWx0Q2hhclVuaWNvZGU9Vy5kZWZhdWx0Q2hhclVuaWNvZGUsdGhpcy5nYjE4MDMwPVcuZ2IxODAzMH1mdW5jdGlvbiBZKEIsVyl7aWYoQlswXT5XKXJldHVybi0xO2Zvcih2YXIgWj0wLFg9Qi5sZW5ndGg7WjxYLTE7KXt2YXIgUT1aK01hdGguZmxvb3IoKFgtWisxKS8yKTtC'@; put 'W1FdPD1XP1o9UTpYPVF9cmV0dXJuIFp9ai5wcm90b3R5cGUuZW5jb2Rlcj1QLGoucHJvdG90eXBlLmRlY29kZXI9TCxqLnByb3RvdHlwZS5fZ2V0RGVjb2RlVHJpZU5vZGU9ZnVuY3Rpb24oQil7Zm9yKHZhciBXPVtdO0I+MDtCPj49OClXLnB1c2goMjU1JkIpOzA9PVcubGVuZ3RoJiZXLnB1'@; put 'c2goMCk7Zm9yKHZhciBaPXRoaXMuZGVjb2RlVGFibGVzWzBdLFg9Vy5sZW5ndGgtMTtYPjA7WC0tKXt2YXIgUT1aW1dbWF1dO2lmKFE9PV8pWltXW1hdXT13LXRoaXMuZGVjb2RlVGFibGVzLmxlbmd0aCx0aGlzLmRlY29kZVRhYmxlcy5wdXNoKFo9Ri5zbGljZSgwKSk7ZWxzZXtpZighKFE8'@; put 'PXcpKXRocm93IG5ldyBFcnJvcigiT3ZlcndyaXRlIGJ5dGUgaW4gIit0aGlzLmVuY29kaW5nTmFtZSsiLCBhZGRyOiAiK0IudG9TdHJpbmcoMTYpKTtaPXRoaXMuZGVjb2RlVGFibGVzW3ctUV19fXJldHVybiBafSxqLnByb3RvdHlwZS5fYWRkRGVjb2RlQ2h1bms9ZnVuY3Rpb24oQil7dmFy'@; put 'IFc9cGFyc2VJbnQoQlswXSwxNiksWj10aGlzLl9nZXREZWNvZGVUcmllTm9kZShXKTtXJj0yNTU7Zm9yKHZhciBYPTE7WDxCLmxlbmd0aDtYKyspe3ZhciBRPUJbWF07aWYoInN0cmluZyI9PXR5cGVvZiBRKWZvcih2YXIgcT0wO3E8US5sZW5ndGg7KXt2YXIgdGU9US5jaGFyQ29kZUF0KHEr'@; put 'Kyk7aWYoNTUyOTY8PXRlJiZ0ZTw1NjMyMCl7dmFyIGllPVEuY2hhckNvZGVBdChxKyspO2lmKCEoNTYzMjA8PWllJiZpZTw1NzM0NCkpdGhyb3cgbmV3IEVycm9yKCJJbmNvcnJlY3Qgc3Vycm9nYXRlIHBhaXIgaW4gIit0aGlzLmVuY29kaW5nTmFtZSsiIGF0IGNodW5rICIrQlswXSk7WltX'@; put 'KytdPTY1NTM2KzEwMjQqKHRlLTU1Mjk2KSsoaWUtNTYzMjApfWVsc2UgaWYoNDA4MDx0ZSYmdGU8PTQwOTUpe2Zvcih2YXIgc2U9NDA5NS10ZSsyLGdlPVtdLF9lPTA7X2U8c2U7X2UrKylnZS5wdXNoKFEuY2hhckNvZGVBdChxKyspKTtaW1crK109Ti10aGlzLmRlY29kZVRhYmxlU2VxLmxl'@; put 'bmd0aCx0aGlzLmRlY29kZVRhYmxlU2VxLnB1c2goZ2UpfWVsc2UgWltXKytdPXRlfWVsc2V7aWYoIm51bWJlciIhPXR5cGVvZiBRKXRocm93IG5ldyBFcnJvcigiSW5jb3JyZWN0IHR5cGUgJyIrdHlwZW9mIFErIicgZ2l2ZW4gaW4gIit0aGlzLmVuY29kaW5nTmFtZSsiIGF0IGNodW5rICIr'@; put 'QlswXSk7dmFyIFRlPVpbVy0xXSsxO2ZvcihxPTA7cTxRO3ErKylaW1crK109VGUrK319aWYoVz4yNTUpdGhyb3cgbmV3IEVycm9yKCJJbmNvcnJlY3QgY2h1bmsgaW4gIit0aGlzLmVuY29kaW5nTmFtZSsiIGF0IGFkZHIgIitCWzBdKyI6IHRvbyBsb25nIitXKX0sai5wcm90b3R5cGUuX2dl'@; put 'dEVuY29kZUJ1Y2tldD1mdW5jdGlvbihCKXt2YXIgVz1CPj44O3JldHVybiB2b2lkIDA9PT10aGlzLmVuY29kZVRhYmxlW1ddJiYodGhpcy5lbmNvZGVUYWJsZVtXXT1GLnNsaWNlKDApKSx0aGlzLmVuY29kZVRhYmxlW1ddfSxqLnByb3RvdHlwZS5fc2V0RW5jb2RlQ2hhcj1mdW5jdGlvbihC'@; put 'LFcpe3ZhciBaPXRoaXMuX2dldEVuY29kZUJ1Y2tldChCKSxYPTI1NSZCO1pbWF08PU4/dGhpcy5lbmNvZGVUYWJsZVNlcVtOLVpbWF1dWy0xXT1XOlpbWF09PV8mJihaW1hdPVcpfSxqLnByb3RvdHlwZS5fc2V0RW5jb2RlU2VxdWVuY2U9ZnVuY3Rpb24oQixXKXt2YXIgcSxaPUJbMF0sWD10'@; put 'aGlzLl9nZXRFbmNvZGVCdWNrZXQoWiksUT0yNTUmWjtYW1FdPD1OP3E9dGhpcy5lbmNvZGVUYWJsZVNlcVtOLVhbUV1dOihxPXt9LFhbUV0hPT1fJiYocVstMV09WFtRXSksWFtRXT1OLXRoaXMuZW5jb2RlVGFibGVTZXEubGVuZ3RoLHRoaXMuZW5jb2RlVGFibGVTZXEucHVzaChxKSk7Zm9y'@; put 'KHZhciB0ZT0xO3RlPEIubGVuZ3RoLTE7dGUrKyl7dmFyIGllPXFbWl07Im9iamVjdCI9PXR5cGVvZiBpZT9xPWllOihxPXFbWl09e30sdm9pZCAwIT09aWUmJihxWy0xXT1pZSkpfXFbWj1CW0IubGVuZ3RoLTFdXT1XfSxqLnByb3RvdHlwZS5fZmlsbEVuY29kZVRhYmxlPWZ1bmN0aW9uKEIs'@; put 'VyxaKXtmb3IodmFyIFg9dGhpcy5kZWNvZGVUYWJsZXNbQl0sUT0wO1E8MjU2O1ErKyl7dmFyIHE9WFtRXSx0ZT1XK1E7Wlt0ZV18fChxPj0wP3RoaXMuX3NldEVuY29kZUNoYXIocSx0ZSk6cTw9dz90aGlzLl9maWxsRW5jb2RlVGFibGUody1xLHRlPDw4LFopOnE8PU4mJnRoaXMuX3NldEVu'@; put 'Y29kZVNlcXVlbmNlKHRoaXMuZGVjb2RlVGFibGVTZXFbTi1xXSx0ZSkpfX0sUC5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oQil7Zm9yKHZhciBXPUQuYWxsb2MoQi5sZW5ndGgqKHRoaXMuZ2IxODAzMD80OjMpKSxaPXRoaXMubGVhZFN1cnJvZ2F0ZSxYPXRoaXMuc2VxT2JqLFE9LTEscT0w'@; put 'LHRlPTA7Oyl7aWYoLTE9PT1RKXtpZihxPT1CLmxlbmd0aClicmVhazt2YXIgaWU9Qi5jaGFyQ29kZUF0KHErKyl9ZWxzZSBpZT1RLFE9LTE7aWYoNTUyOTY8PWllJiZpZTw1NzM0NClpZihpZTw1NjMyMCl7aWYoLTE9PT1aKXtaPWllO2NvbnRpbnVlfVo9aWUsaWU9X31lbHNlLTEhPT1aPyhp'@; put 'ZT02NTUzNisxMDI0KihaLTU1Mjk2KSsoaWUtNTYzMjApLFo9LTEpOmllPV87ZWxzZS0xIT09WiYmKFE9aWUsaWU9XyxaPS0xKTt2YXIgc2U9XztpZih2b2lkIDAhPT1YJiZpZSE9Xyl7dmFyIGdlPVhbaWVdO2lmKCJvYmplY3QiPT10eXBlb2YgZ2Upe1g9Z2U7Y29udGludWV9Im51bWJlciI9'@; put 'PXR5cGVvZiBnZT9zZT1nZTpudWxsPT1nZSYmdm9pZCAwIT09KGdlPVhbLTFdKSYmKHNlPWdlLFE9aWUpLFg9dm9pZCAwfWVsc2UgaWYoaWU+PTApe3ZhciBfZT10aGlzLmVuY29kZVRhYmxlW2llPj44XTtpZih2b2lkIDAhPT1fZSYmKHNlPV9lWzI1NSZpZV0pLHNlPD1OKXtYPXRoaXMuZW5j'@; put 'b2RlVGFibGVTZXFbTi1zZV07Y29udGludWV9aWYoc2U9PV8mJnRoaXMuZ2IxODAzMCl7dmFyIFRlPVkodGhpcy5nYjE4MDMwLnVDaGFycyxpZSk7aWYoLTEhPVRlKXtzZT10aGlzLmdiMTgwMzAuZ2JDaGFyc1tUZV0rKGllLXRoaXMuZ2IxODAzMC51Q2hhcnNbVGVdKSxXW3RlKytdPTEyOStN'@; put 'YXRoLmZsb29yKHNlLzEyNjAwKSxzZSU9MTI2MDAsV1t0ZSsrXT00OCtNYXRoLmZsb29yKHNlLzEyNjApLHNlJT0xMjYwLFdbdGUrK109MTI5K01hdGguZmxvb3Ioc2UvMTApLFdbdGUrK109NDgrKHNlJT0xMCk7Y29udGludWV9fX1zZT09PV8mJihzZT10aGlzLmRlZmF1bHRDaGFyU2luZ2xl'@; put 'Qnl0ZSksc2U8MjU2P1dbdGUrK109c2U6c2U8NjU1MzY/KFdbdGUrK109c2U+PjgsV1t0ZSsrXT0yNTUmc2UpOihXW3RlKytdPXNlPj4xNixXW3RlKytdPXNlPj44JjI1NSxXW3RlKytdPTI1NSZzZSl9cmV0dXJuIHRoaXMuc2VxT2JqPVgsdGhpcy5sZWFkU3Vycm9nYXRlPVosVy5zbGljZSgw'@; put 'LHRlKX0sUC5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7aWYoLTEhPT10aGlzLmxlYWRTdXJyb2dhdGV8fHZvaWQgMCE9PXRoaXMuc2VxT2JqKXt2YXIgQj1ELmFsbG9jKDEwKSxXPTA7aWYodGhpcy5zZXFPYmope3ZhciBaPXRoaXMuc2VxT2JqWy0xXTt2b2lkIDAhPT1aJiYoWjwyNTY/QltX'@; put 'KytdPVo6KEJbVysrXT1aPj44LEJbVysrXT0yNTUmWikpLHRoaXMuc2VxT2JqPXZvaWQgMH1yZXR1cm4tMSE9PXRoaXMubGVhZFN1cnJvZ2F0ZSYmKEJbVysrXT10aGlzLmRlZmF1bHRDaGFyU2luZ2xlQnl0ZSx0aGlzLmxlYWRTdXJyb2dhdGU9LTEpLEIuc2xpY2UoMCxXKX19LFAucHJvdG90'@; put 'eXBlLmZpbmRJZHg9WSxMLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihCKXt2YXIgVz1ELmFsbG9jKDIqQi5sZW5ndGgpLFo9dGhpcy5ub2RlSWR4LFg9dGhpcy5wcmV2QnVmLFE9dGhpcy5wcmV2QnVmLmxlbmd0aCxxPS10aGlzLnByZXZCdWYubGVuZ3RoO1E+MCYmKFg9RC5jb25jYXQoW1gs'@; put 'Qi5zbGljZSgwLDEwKV0pKTtmb3IodmFyIGllPTAsc2U9MDtpZTxCLmxlbmd0aDtpZSsrKXt2YXIgdGUsZ2U9aWU+PTA/QltpZV06WFtpZStRXTtpZighKCh0ZT10aGlzLmRlY29kZVRhYmxlc1taXVtnZV0pPj0wKSlpZih0ZT09PV8paWU9cSx0ZT10aGlzLmRlZmF1bHRDaGFyVW5pY29kZS5j'@; put 'aGFyQ29kZUF0KDApO2Vsc2UgaWYodGU9PT1wKXt2YXIgX2U9cT49MD9CLnNsaWNlKHEsaWUrMSk6WC5zbGljZShxK1EsaWUrMStRKSxUZT0xMjYwMCooX2VbMF0tMTI5KSsxMjYwKihfZVsxXS00OCkrMTAqKF9lWzJdLTEyOSkrKF9lWzNdLTQ4KSxTZT1ZKHRoaXMuZ2IxODAzMC5nYkNoYXJz'@; put 'LFRlKTt0ZT10aGlzLmdiMTgwMzAudUNoYXJzW1NlXStUZS10aGlzLmdiMTgwMzAuZ2JDaGFyc1tTZV19ZWxzZXtpZih0ZTw9dyl7Wj13LXRlO2NvbnRpbnVlfWlmKCEodGU8PU4pKXRocm93IG5ldyBFcnJvcigiaWNvbnYtbGl0ZSBpbnRlcm5hbCBlcnJvcjogaW52YWxpZCBkZWNvZGluZyB0'@; put 'YWJsZSB2YWx1ZSAiK3RlKyIgYXQgIitaKyIvIitnZSk7Zm9yKHZhciB6ZT10aGlzLmRlY29kZVRhYmxlU2VxW04tdGVdLHo9MDt6PHplLmxlbmd0aC0xO3orKylXW3NlKytdPTI1NSYodGU9emVbel0pLFdbc2UrK109dGU+Pjg7dGU9emVbemUubGVuZ3RoLTFdfWlmKHRlPjY1NTM1KXt0ZS09'@; put 'NjU1MzY7dmFyIGc9NTUyOTYrTWF0aC5mbG9vcih0ZS8xMDI0KTtXW3NlKytdPTI1NSZnLFdbc2UrK109Zz4+OCx0ZT01NjMyMCt0ZSUxMDI0fVdbc2UrK109MjU1JnRlLFdbc2UrK109dGU+PjgsWj0wLHE9aWUrMX1yZXR1cm4gdGhpcy5ub2RlSWR4PVosdGhpcy5wcmV2QnVmPXE+PTA/Qi5z'@; put 'bGljZShxKTpYLnNsaWNlKHErUSksVy5zbGljZSgwLHNlKS50b1N0cmluZygidWNzMiIpfSxMLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXtmb3IodmFyIEI9IiI7dGhpcy5wcmV2QnVmLmxlbmd0aD4wOyl7Qis9dGhpcy5kZWZhdWx0Q2hhclVuaWNvZGU7dmFyIFc9dGhpcy5wcmV2QnVmLnNs'@; put 'aWNlKDEpO3RoaXMucHJldkJ1Zj1ELmFsbG9jKDApLHRoaXMubm9kZUlkeD0wLFcubGVuZ3RoPjAmJihCKz10aGlzLndyaXRlKFcpKX1yZXR1cm4gdGhpcy5ub2RlSWR4PTAsQn19LDQ1Mjc4OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO2NlLmV4cG9ydHM9e3NoaWZ0amlzOnt0eXBlOiJfZGJj'@; put 'cyIsdGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gYig0MDY3OSl9LGVuY29kZUFkZDp7Ilx4YTUiOjkyLCJcdTIwM2UiOjEyNn0sZW5jb2RlU2tpcFZhbHM6W3tmcm9tOjYwNzM2LHRvOjYzODA4fV19LGNzc2hpZnRqaXM6InNoaWZ0amlzIixtc2thbmppOiJzaGlmdGppcyIsc2ppczoic2hpZnRq'@; put 'aXMiLHdpbmRvd3MzMWo6InNoaWZ0amlzIixtczMxajoic2hpZnRqaXMiLHhzamlzOiJzaGlmdGppcyIsd2luZG93czkzMjoic2hpZnRqaXMiLG1zOTMyOiJzaGlmdGppcyIsOTMyOiJzaGlmdGppcyIsY3A5MzI6InNoaWZ0amlzIixldWNqcDp7dHlwZToiX2RiY3MiLHRhYmxlOmZ1bmN0aW9u'@; put 'KCl7cmV0dXJuIGIoNTY0MDYpfSxlbmNvZGVBZGQ6eyJceGE1Ijo5MiwiXHUyMDNlIjoxMjZ9fSxnYjIzMTI6ImNwOTM2IixnYjIzMTI4MDoiY3A5MzYiLGdiMjMxMjE5ODA6ImNwOTM2Iixjc2diMjMxMjoiY3A5MzYiLGNzaXNvNThnYjIzMTI4MDoiY3A5MzYiLGV1Y2NuOiJjcDkzNiIsd2lu'@; put 'ZG93czkzNjoiY3A5MzYiLG1zOTM2OiJjcDkzNiIsOTM2OiJjcDkzNiIsY3A5MzY6e3R5cGU6Il9kYmNzIix0YWJsZTpmdW5jdGlvbigpe3JldHVybiBiKDc0NDg4KX19LGdiazp7dHlwZToiX2RiY3MiLHRhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIGIoNzQ0ODgpLmNvbmNhdChiKDU1OTE0KSl9'@; put 'fSx4Z2JrOiJnYmsiLGlzb2lyNTg6ImdiayIsZ2IxODAzMDp7dHlwZToiX2RiY3MiLHRhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIGIoNzQ0ODgpLmNvbmNhdChiKDU1OTE0KSl9LGdiMTgwMzA6ZnVuY3Rpb24oKXtyZXR1cm4gYig5OTEyOSl9LGVuY29kZVNraXBWYWxzOlsxMjhdLGVuY29kZUFk'@; put 'ZDp7Ilx1MjBhYyI6NDE2OTl9fSxjaGluZXNlOiJnYjE4MDMwIix3aW5kb3dzOTQ5OiJjcDk0OSIsbXM5NDk6ImNwOTQ5Iiw5NDk6ImNwOTQ5IixjcDk0OTp7dHlwZToiX2RiY3MiLHRhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIGIoMjExNjYpfX0sY3NldWNrcjoiY3A5NDkiLGNza3NjNTYwMTE5'@; put 'ODc6ImNwOTQ5IixldWNrcjoiY3A5NDkiLGlzb2lyMTQ5OiJjcDk0OSIsa29yZWFuOiJjcDk0OSIsa3NjNTYwMTE5ODc6ImNwOTQ5Iixrc2M1NjAxMTk4OToiY3A5NDkiLGtzYzU2MDE6ImNwOTQ5Iix3aW5kb3dzOTUwOiJjcDk1MCIsbXM5NTA6ImNwOTUwIiw5NTA6ImNwOTUwIixjcDk1MDp7'@; put 'dHlwZToiX2RiY3MiLHRhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIGIoNzIzMjQpfX0sYmlnNToiYmlnNWhrc2NzIixiaWc1aGtzY3M6e3R5cGU6Il9kYmNzIix0YWJsZTpmdW5jdGlvbigpe3JldHVybiBiKDcyMzI0KS5jb25jYXQoYig0MzI2NykpfSxlbmNvZGVTa2lwVmFsczpbNDE2NzZdfSxj'@; put 'bmJpZzU6ImJpZzVoa3NjcyIsY3NiaWc1OiJiaWc1aGtzY3MiLHh4YmlnNToiYmlnNWhrc2NzIn19LDcyODkzOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO2Zvcih2YXIgRD1bYigxNTI1OSksYigzNTA4OSksYig3MTc1KSxiKDk3NDcpLGIoNTg2NzcpLGIoNzYyMyksYigzMDE4NyksYig5MzY5'@; put 'NCksYig0NTI3OCldLF89MDtfPEQubGVuZ3RoO18rKyl7dmFyIHA9RFtfXTtmb3IodmFyIE4gaW4gcClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocCxOKSYmKEpbTl09cFtOXSl9fSwxNTI1OTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDkzODA3KS5CdWZm'@; put 'ZXI7ZnVuY3Rpb24gXyhqLFApe3RoaXMuZW5jPWouZW5jb2RpbmdOYW1lLHRoaXMuYm9tQXdhcmU9ai5ib21Bd2FyZSwiYmFzZTY0Ij09PXRoaXMuZW5jP3RoaXMuZW5jb2Rlcj1GOiJjZXN1OCI9PT10aGlzLmVuYyYmKHRoaXMuZW5jPSJ1dGY4Iix0aGlzLmVuY29kZXI9SCwiXHV7MWY0YTl9'@; put 'IiE9PUQuZnJvbSgiZWRhMGJkZWRiMmE5IiwiaGV4IikudG9TdHJpbmcoKSYmKHRoaXMuZGVjb2Rlcj1SLHRoaXMuZGVmYXVsdENoYXJVbmljb2RlPVAuZGVmYXVsdENoYXJVbmljb2RlKSl9Y2UuZXhwb3J0cz17dXRmODp7dHlwZToiX2ludGVybmFsIixib21Bd2FyZTohMH0sY2VzdTg6e3R5'@; put 'cGU6Il9pbnRlcm5hbCIsYm9tQXdhcmU6ITB9LHVuaWNvZGUxMXV0Zjg6InV0ZjgiLHVjczI6e3R5cGU6Il9pbnRlcm5hbCIsYm9tQXdhcmU6ITB9LHV0ZjE2bGU6InVjczIiLGJpbmFyeTp7dHlwZToiX2ludGVybmFsIn0sYmFzZTY0Ont0eXBlOiJfaW50ZXJuYWwifSxoZXg6e3R5cGU6Il9p'@; put 'bnRlcm5hbCJ9LF9pbnRlcm5hbDpffSxfLnByb3RvdHlwZS5lbmNvZGVyPXcsXy5wcm90b3R5cGUuZGVjb2Rlcj1OO3ZhciBwPWIoNzg0NTQpLkk7ZnVuY3Rpb24gTihqLFApe3AuY2FsbCh0aGlzLFAuZW5jKX1mdW5jdGlvbiB3KGosUCl7dGhpcy5lbmM9UC5lbmN9ZnVuY3Rpb24gRihqLFAp'@; put 'e3RoaXMucHJldlN0cj0iIn1mdW5jdGlvbiBIKGosUCl7fWZ1bmN0aW9uIFIoaixQKXt0aGlzLmFjYz0wLHRoaXMuY29udEJ5dGVzPTAsdGhpcy5hY2NCeXRlcz0wLHRoaXMuZGVmYXVsdENoYXJVbmljb2RlPVAuZGVmYXVsdENoYXJVbmljb2RlfXAucHJvdG90eXBlLmVuZHx8KHAucHJvdG90'@; put 'eXBlLmVuZD1mdW5jdGlvbigpe30pLE4ucHJvdG90eXBlPXAucHJvdG90eXBlLHcucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGope3JldHVybiBELmZyb20oaix0aGlzLmVuYyl9LHcucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe30sRi5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oail7dmFy'@; put 'IFA9KGo9dGhpcy5wcmV2U3RyK2opLmxlbmd0aC1qLmxlbmd0aCU0O3JldHVybiB0aGlzLnByZXZTdHI9ai5zbGljZShQKSxqPWouc2xpY2UoMCxQKSxELmZyb20oaiwiYmFzZTY0Iil9LEYucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe3JldHVybiBELmZyb20odGhpcy5wcmV2U3RyLCJiYXNl'@; put 'NjQiKX0sSC5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oail7Zm9yKHZhciBQPUQuYWxsb2MoMypqLmxlbmd0aCksTD0wLFk9MDtZPGoubGVuZ3RoO1krKyl7dmFyIEI9ai5jaGFyQ29kZUF0KFkpO0I8MTI4P1BbTCsrXT1COkI8MjA0OD8oUFtMKytdPTE5MisoQj4+PjYpLFBbTCsrXT0xMjgr'@; put 'KDYzJkIpKTooUFtMKytdPTIyNCsoQj4+PjEyKSxQW0wrK109MTI4KyhCPj4+NiY2MyksUFtMKytdPTEyOCsoNjMmQikpfXJldHVybiBQLnNsaWNlKDAsTCl9LEgucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe30sUi5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oail7Zm9yKHZhciBQPXRoaXMu'@; put 'YWNjLEw9dGhpcy5jb250Qnl0ZXMsWT10aGlzLmFjY0J5dGVzLEI9IiIsVz0wO1c8ai5sZW5ndGg7VysrKXt2YXIgWj1qW1ddOzEyOCE9KDE5MiZaKT8oTD4wJiYoQis9dGhpcy5kZWZhdWx0Q2hhclVuaWNvZGUsTD0wKSxaPDEyOD9CKz1TdHJpbmcuZnJvbUNoYXJDb2RlKFopOlo8MjI0PyhQ'@; put 'PTMxJlosTD0xLFk9MSk6WjwyNDA/KFA9MTUmWixMPTIsWT0xKTpCKz10aGlzLmRlZmF1bHRDaGFyVW5pY29kZSk6TD4wPyhQPVA8PDZ8NjMmWixZKyssMD09LS1MJiYoQis9Mj09PVkmJlA8MTI4JiZQPjB8fDM9PT1ZJiZQPDIwNDg/dGhpcy5kZWZhdWx0Q2hhclVuaWNvZGU6U3RyaW5nLmZy'@; put 'b21DaGFyQ29kZShQKSkpOkIrPXRoaXMuZGVmYXVsdENoYXJVbmljb2RlfXJldHVybiB0aGlzLmFjYz1QLHRoaXMuY29udEJ5dGVzPUwsdGhpcy5hY2NCeXRlcz1ZLEJ9LFIucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe3ZhciBqPTA7cmV0dXJuIHRoaXMuY29udEJ5dGVzPjAmJihqKz10aGlz'@; put 'LmRlZmF1bHRDaGFyVW5pY29kZSksan19LDU4Njc3OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoOTM4MDcpLkJ1ZmZlcjtmdW5jdGlvbiBfKHcsRil7aWYoIXcpdGhyb3cgbmV3IEVycm9yKCJTQkNTIGNvZGVjIGlzIGNhbGxlZCB3aXRob3V0IHRoZSBkYXRhLiIpO2lmKCF3LmNo'@; put 'YXJzfHwxMjghPT13LmNoYXJzLmxlbmd0aCYmMjU2IT09dy5jaGFycy5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJFbmNvZGluZyAnIit3LnR5cGUrIicgaGFzIGluY29ycmVjdCAnY2hhcnMnIChtdXN0IGJlIG9mIGxlbiAxMjggb3IgMjU2KSIpO2lmKDEyOD09PXcuY2hhcnMubGVuZ3RoKXtm'@; put 'b3IodmFyIEg9IiIsUj0wO1I8MTI4O1IrKylIKz1TdHJpbmcuZnJvbUNoYXJDb2RlKFIpO3cuY2hhcnM9SCt3LmNoYXJzfXRoaXMuZGVjb2RlQnVmPUQuZnJvbSh3LmNoYXJzLCJ1Y3MyIik7dmFyIGo9RC5hbGxvYyg2NTUzNixGLmRlZmF1bHRDaGFyU2luZ2xlQnl0ZS5jaGFyQ29kZUF0KDAp'@; put 'KTtmb3IoUj0wO1I8dy5jaGFycy5sZW5ndGg7UisrKWpbdy5jaGFycy5jaGFyQ29kZUF0KFIpXT1SO3RoaXMuZW5jb2RlQnVmPWp9ZnVuY3Rpb24gcCh3LEYpe3RoaXMuZW5jb2RlQnVmPUYuZW5jb2RlQnVmfWZ1bmN0aW9uIE4odyxGKXt0aGlzLmRlY29kZUJ1Zj1GLmRlY29kZUJ1Zn1KLl9z'@; put 'YmNzPV8sXy5wcm90b3R5cGUuZW5jb2Rlcj1wLF8ucHJvdG90eXBlLmRlY29kZXI9TixwLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbih3KXtmb3IodmFyIEY9RC5hbGxvYyh3Lmxlbmd0aCksSD0wO0g8dy5sZW5ndGg7SCsrKUZbSF09dGhpcy5lbmNvZGVCdWZbdy5jaGFyQ29kZUF0KEgpXTty'@; put 'ZXR1cm4gRn0scC5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7fSxOLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbih3KXtmb3IodmFyIEY9dGhpcy5kZWNvZGVCdWYsSD1ELmFsbG9jKDIqdy5sZW5ndGgpLFI9MCxqPTAsUD0wO1A8dy5sZW5ndGg7UCsrKUhbaj0yKlBdPUZbUj0yKndbUF1dLEhb'@; put 'aisxXT1GW1IrMV07cmV0dXJuIEgudG9TdHJpbmcoInVjczIiKX0sTi5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7fX0sMzAxODc6Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz17NDM3OiJjcDQzNyIsNzM3OiJjcDczNyIsNzc1OiJjcDc3NSIsODUwOiJjcDg1MCIsODUyOiJjcDg1MiIs'@; put 'ODU1OiJjcDg1NSIsODU2OiJjcDg1NiIsODU3OiJjcDg1NyIsODU4OiJjcDg1OCIsODYwOiJjcDg2MCIsODYxOiJjcDg2MSIsODYyOiJjcDg2MiIsODYzOiJjcDg2MyIsODY0OiJjcDg2NCIsODY1OiJjcDg2NSIsODY2OiJjcDg2NiIsODY5OiJjcDg2OSIsODc0OiJ3aW5kb3dzODc0Iiw5MjI6'@; put 'ImNwOTIyIiwxMDQ2OiJjcDEwNDYiLDExMjQ6ImNwMTEyNCIsMTEyNToiY3AxMTI1IiwxMTI5OiJjcDExMjkiLDExMzM6ImNwMTEzMyIsMTE2MToiY3AxMTYxIiwxMTYyOiJjcDExNjIiLDExNjM6ImNwMTE2MyIsMTI1MDoid2luZG93czEyNTAiLDEyNTE6IndpbmRvd3MxMjUxIiwxMjUyOiJ3'@; put 'aW5kb3dzMTI1MiIsMTI1Mzoid2luZG93czEyNTMiLDEyNTQ6IndpbmRvd3MxMjU0IiwxMjU1OiJ3aW5kb3dzMTI1NSIsMTI1Njoid2luZG93czEyNTYiLDEyNTc6IndpbmRvd3MxMjU3IiwxMjU4OiJ3aW5kb3dzMTI1OCIsMjg1OTE6Imlzbzg4NTkxIiwyODU5MjoiaXNvODg1OTIiLDI4NTkz'@; put 'OiJpc284ODU5MyIsMjg1OTQ6Imlzbzg4NTk0IiwyODU5NToiaXNvODg1OTUiLDI4NTk2OiJpc284ODU5NiIsMjg1OTc6Imlzbzg4NTk3IiwyODU5ODoiaXNvODg1OTgiLDI4NTk5OiJpc284ODU5OSIsMjg2MDA6Imlzbzg4NTkxMCIsMjg2MDE6Imlzbzg4NTkxMSIsMjg2MDM6Imlzbzg4NTkx'@; put 'MyIsMjg2MDQ6Imlzbzg4NTkxNCIsMjg2MDU6Imlzbzg4NTkxNSIsMjg2MDY6Imlzbzg4NTkxNiIsd2luZG93czg3NDp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTIwYWNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTIwMjZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRceGEwXHUwZTAxXHUwZTAyXHUwZTAzXHUwZTA0XHUwZTA1XHUwZTA2XHUwZTA3XHUw'@; put 'ZTA4XHUwZTA5XHUwZTBhXHUwZTBiXHUwZTBjXHUwZTBkXHUwZTBlXHUwZTBmXHUwZTEwXHUwZTExXHUwZTEyXHUwZTEzXHUwZTE0XHUwZTE1XHUwZTE2XHUwZTE3XHUwZTE4XHUwZTE5XHUwZTFhXHUwZTFiXHUwZTFjXHUwZTFkXHUwZTFlXHUwZTFmXHUwZTIwXHUwZTIxXHUwZTIyXHUwZTIz'@; put 'XHUwZTI0XHUwZTI1XHUwZTI2XHUwZTI3XHUwZTI4XHUwZTI5XHUwZTJhXHUwZTJiXHUwZTJjXHUwZTJkXHUwZTJlXHUwZTJmXHUwZTMwXHUwZTMxXHUwZTMyXHUwZTMzXHUwZTM0XHUwZTM1XHUwZTM2XHUwZTM3XHUwZTM4XHUwZTM5XHUwZTNhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUw'@; put 'ZTNmXHUwZTQwXHUwZTQxXHUwZTQyXHUwZTQzXHUwZTQ0XHUwZTQ1XHUwZTQ2XHUwZTQ3XHUwZTQ4XHUwZTQ5XHUwZTRhXHUwZTRiXHUwZTRjXHUwZTRkXHUwZTRlXHUwZTRmXHUwZTUwXHUwZTUxXHUwZTUyXHUwZTUzXHUwZTU0XHUwZTU1XHUwZTU2XHUwZTU3XHUwZTU4XHUwZTU5XHUwZTVh'@; put 'XHUwZTViXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIn0sd2luODc0OiJ3aW5kb3dzODc0IixjcDg3NDoid2luZG93czg3NCIsd2luZG93czEyNTA6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUyMGFjXHVmZmZkXHUyMDFhXHVmZmZkXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHVmZmZkXHUyMDMw'@; put 'XHUwMTYwXHUyMDM5XHUwMTVhXHUwMTY0XHUwMTdkXHUwMTc5XHVmZmZkXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHVmZmZkXHUyMTIyXHUwMTYxXHUyMDNhXHUwMTViXHUwMTY1XHUwMTdlXHUwMTdhXHhhMFx1MDJjN1x1MDJkOFx1MDE0MVx4YTRcdTAxMDRc'@; put 'eGE2XHhhN1x4YThceGE5XHUwMTVlXHhhYlx4YWNceGFkXHhhZVx1MDE3Ylx4YjBceGIxXHUwMmRiXHUwMTQyXHhiNFx4YjVceGI2XHhiN1x4YjhcdTAxMDVcdTAxNWZceGJiXHUwMTNkXHUwMmRkXHUwMTNlXHUwMTdjXHUwMTU0XHhjMVx4YzJcdTAxMDJceGM0XHUwMTM5XHUwMTA2XHhjN1x1'@; put 'MDEwY1x4YzlcdTAxMThceGNiXHUwMTFhXHhjZFx4Y2VcdTAxMGVcdTAxMTBcdTAxNDNcdTAxNDdceGQzXHhkNFx1MDE1MFx4ZDZceGQ3XHUwMTU4XHUwMTZlXHhkYVx1MDE3MFx4ZGNceGRkXHUwMTYyXHhkZlx1MDE1NVx4ZTFceGUyXHUwMTAzXHhlNFx1MDEzYVx1MDEwN1x4ZTdcdTAxMGRc'@; put 'eGU5XHUwMTE5XHhlYlx1MDExYlx4ZWRceGVlXHUwMTBmXHUwMTExXHUwMTQ0XHUwMTQ4XHhmM1x4ZjRcdTAxNTFceGY2XHhmN1x1MDE1OVx1MDE2Zlx4ZmFcdTAxNzFceGZjXHhmZFx1MDE2M1x1MDJkOSJ9LHdpbjEyNTA6IndpbmRvd3MxMjUwIixjcDEyNTA6IndpbmRvd3MxMjUwIix3aW5k'@; put 'b3dzMTI1MTp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTA0MDJcdTA0MDNcdTIwMWFcdTA0NTNcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdTIwYWNcdTIwMzBcdTA0MDlcdTIwMzlcdTA0MGFcdTA0MGNcdTA0MGJcdTA0MGZcdTA0NTJcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIw'@; put 'MTNcdTIwMTRcdWZmZmRcdTIxMjJcdTA0NTlcdTIwM2FcdTA0NWFcdTA0NWNcdTA0NWJcdTA0NWZceGEwXHUwNDBlXHUwNDVlXHUwNDA4XHhhNFx1MDQ5MFx4YTZceGE3XHUwNDAxXHhhOVx1MDQwNFx4YWJceGFjXHhhZFx4YWVcdTA0MDdceGIwXHhiMVx1MDQwNlx1MDQ1Nlx1MDQ5MVx4YjVc'@; put 'eGI2XHhiN1x1MDQ1MVx1MjExNlx1MDQ1NFx4YmJcdTA0NThcdTA0MDVcdTA0NTVcdTA0NTdcdTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0MTRcdTA0MTVcdTA0MTZcdTA0MTdcdTA0MThcdTA0MTlcdTA0MWFcdTA0MWJcdTA0MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MjBcdTA0MjFcdTA0'@; put 'MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0MjZcdTA0MjdcdTA0MjhcdTA0MjlcdTA0MmFcdTA0MmJcdTA0MmNcdTA0MmRcdTA0MmVcdTA0MmZcdTA0MzBcdTA0MzFcdTA0MzJcdTA0MzNcdTA0MzRcdTA0MzVcdTA0MzZcdTA0MzdcdTA0MzhcdTA0MzlcdTA0M2FcdTA0M2JcdTA0M2NcdTA0M2Rc'@; put 'dTA0M2VcdTA0M2ZcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0NDRcdTA0NDVcdTA0NDZcdTA0NDdcdTA0NDhcdTA0NDlcdTA0NGFcdTA0NGJcdTA0NGNcdTA0NGRcdTA0NGVcdTA0NGYifSx3aW4xMjUxOiJ3aW5kb3dzMTI1MSIsY3AxMjUxOiJ3aW5kb3dzMTI1MSIsd2luZG93czEyNTI6'@; put 'e3R5cGU6Il9zYmNzIixjaGFyczoiXHUyMGFjXHVmZmZkXHUyMDFhXHUwMTkyXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUwMmM2XHUyMDMwXHUwMTYwXHUyMDM5XHUwMTUyXHVmZmZkXHUwMTdkXHVmZmZkXHVmZmZkXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0'@; put 'XHUwMmRjXHUyMTIyXHUwMTYxXHUyMDNhXHUwMTUzXHVmZmZkXHUwMTdlXHUwMTc4XHhhMFx4YTFceGEyXHhhM1x4YTRceGE1XHhhNlx4YTdceGE4XHhhOVx4YWFceGFiXHhhY1x4YWRceGFlXHhhZlx4YjBceGIxXHhiMlx4YjNceGI0XHhiNVx4YjZceGI3XHhiOFx4YjlceGJhXHhiYlx4YmNc'@; put 'eGJkXHhiZVx4YmZceGMwXHhjMVx4YzJceGMzXHhjNFx4YzVceGM2XHhjN1x4YzhceGM5XHhjYVx4Y2JceGNjXHhjZFx4Y2VceGNmXHhkMFx4ZDFceGQyXHhkM1x4ZDRceGQ1XHhkNlx4ZDdceGQ4XHhkOVx4ZGFceGRiXHhkY1x4ZGRceGRlXHhkZlx4ZTBceGUxXHhlMlx4ZTNceGU0XHhlNVx4'@; put 'ZTZceGU3XHhlOFx4ZTlceGVhXHhlYlx4ZWNceGVkXHhlZVx4ZWZceGYwXHhmMVx4ZjJceGYzXHhmNFx4ZjVceGY2XHhmN1x4ZjhceGY5XHhmYVx4ZmJceGZjXHhmZFx4ZmVceGZmIn0sd2luMTI1Mjoid2luZG93czEyNTIiLGNwMTI1Mjoid2luZG93czEyNTIiLHdpbmRvd3MxMjUzOnt0eXBl'@; put 'OiJfc2JjcyIsY2hhcnM6Ilx1MjBhY1x1ZmZmZFx1MjAxYVx1MDE5Mlx1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1ZmZmZFx1MjAzMFx1ZmZmZFx1MjAzOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1ZmZm'@; put 'ZFx1MjEyMlx1ZmZmZFx1MjAzYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx4YTBcdTAzODVcdTAzODZceGEzXHhhNFx4YTVceGE2XHhhN1x4YThceGE5XHVmZmZkXHhhYlx4YWNceGFkXHhhZVx1MjAxNVx4YjBceGIxXHhiMlx4YjNcdTAzODRceGI1XHhiNlx4YjdcdTAzODhcdTAzODlcdTAz'@; put 'OGFceGJiXHUwMzhjXHhiZFx1MDM4ZVx1MDM4Zlx1MDM5MFx1MDM5MVx1MDM5Mlx1MDM5M1x1MDM5NFx1MDM5NVx1MDM5Nlx1MDM5N1x1MDM5OFx1MDM5OVx1MDM5YVx1MDM5Ylx1MDM5Y1x1MDM5ZFx1MDM5ZVx1MDM5Zlx1MDNhMFx1MDNhMVx1ZmZmZFx1MDNhM1x1MDNhNFx1MDNhNVx1MDNh'@; put 'Nlx1MDNhN1x1MDNhOFx1MDNhOVx1MDNhYVx1MDNhYlx1MDNhY1x1MDNhZFx1MDNhZVx1MDNhZlx1MDNiMFx1MDNiMVx1MDNiMlx1MDNiM1x1MDNiNFx1MDNiNVx1MDNiNlx1MDNiN1x1MDNiOFx1MDNiOVx1MDNiYVx1MDNiYlx1MDNiY1x1MDNiZFx1MDNiZVx1MDNiZlx1MDNjMFx1MDNjMVx1'@; put 'MDNjMlx1MDNjM1x1MDNjNFx1MDNjNVx1MDNjNlx1MDNjN1x1MDNjOFx1MDNjOVx1MDNjYVx1MDNjYlx1MDNjY1x1MDNjZFx1MDNjZVx1ZmZmZCJ9LHdpbjEyNTM6IndpbmRvd3MxMjUzIixjcDEyNTM6IndpbmRvd3MxMjUzIix3aW5kb3dzMTI1NDp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTIw'@; put 'YWNcdWZmZmRcdTIwMWFcdTAxOTJcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdTAyYzZcdTIwMzBcdTAxNjBcdTIwMzlcdTAxNTJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdTAyZGNcdTIxMjJcdTAxNjFcdTIwM2Fc'@; put 'dTAxNTNcdWZmZmRcdWZmZmRcdTAxNzhceGEwXHhhMVx4YTJceGEzXHhhNFx4YTVceGE2XHhhN1x4YThceGE5XHhhYVx4YWJceGFjXHhhZFx4YWVceGFmXHhiMFx4YjFceGIyXHhiM1x4YjRceGI1XHhiNlx4YjdceGI4XHhiOVx4YmFceGJiXHhiY1x4YmRceGJlXHhiZlx4YzBceGMxXHhjMlx4'@; put 'YzNceGM0XHhjNVx4YzZceGM3XHhjOFx4YzlceGNhXHhjYlx4Y2NceGNkXHhjZVx4Y2ZcdTAxMWVceGQxXHhkMlx4ZDNceGQ0XHhkNVx4ZDZceGQ3XHhkOFx4ZDlceGRhXHhkYlx4ZGNcdTAxMzBcdTAxNWVceGRmXHhlMFx4ZTFceGUyXHhlM1x4ZTRceGU1XHhlNlx4ZTdceGU4XHhlOVx4ZWFc'@; put 'eGViXHhlY1x4ZWRceGVlXHhlZlx1MDExZlx4ZjFceGYyXHhmM1x4ZjRceGY1XHhmNlx4ZjdceGY4XHhmOVx4ZmFceGZiXHhmY1x1MDEzMVx1MDE1Zlx4ZmYifSx3aW4xMjU0OiJ3aW5kb3dzMTI1NCIsY3AxMjU0OiJ3aW5kb3dzMTI1NCIsd2luZG93czEyNTU6e3R5cGU6Il9zYmNzIixjaGFy'@; put 'czoiXHUyMGFjXHVmZmZkXHUyMDFhXHUwMTkyXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUwMmM2XHUyMDMwXHVmZmZkXHUyMDM5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHUwMmRjXHUyMTIyXHVmZmZk'@; put 'XHUyMDNhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHhhMFx4YTFceGEyXHhhM1x1MjBhYVx4YTVceGE2XHhhN1x4YThceGE5XHhkN1x4YWJceGFjXHhhZFx4YWVceGFmXHhiMFx4YjFceGIyXHhiM1x4YjRceGI1XHhiNlx4YjdceGI4XHhiOVx4ZjdceGJiXHhiY1x4YmRceGJlXHhiZlx1MDVi'@; put 'MFx1MDViMVx1MDViMlx1MDViM1x1MDViNFx1MDViNVx1MDViNlx1MDViN1x1MDViOFx1MDViOVx1MDViYVx1MDViYlx1MDViY1x1MDViZFx1MDViZVx1MDViZlx1MDVjMFx1MDVjMVx1MDVjMlx1MDVjM1x1MDVmMFx1MDVmMVx1MDVmMlx1MDVmM1x1MDVmNFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDVkMFx1MDVkMVx1MDVkMlx1MDVkM1x1MDVkNFx1MDVkNVx1MDVkNlx1MDVkN1x1MDVkOFx1MDVkOVx1MDVkYVx1MDVkYlx1MDVkY1x1MDVkZFx1MDVkZVx1MDVkZlx1MDVlMFx1MDVlMVx1MDVlMlx1MDVlM1x1MDVlNFx1MDVlNVx1MDVlNlx1MDVl'@; put 'N1x1MDVlOFx1MDVlOVx1MDVlYVx1ZmZmZFx1ZmZmZFx1MjAwZVx1MjAwZlx1ZmZmZCJ9LHdpbjEyNTU6IndpbmRvd3MxMjU1IixjcDEyNTU6IndpbmRvd3MxMjU1Iix3aW5kb3dzMTI1Njp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTIwYWNcdTA2N2VcdTIwMWFcdTAxOTJcdTIwMWVcdTIwMjZc'@; put 'dTIwMjBcdTIwMjFcdTAyYzZcdTIwMzBcdTA2NzlcdTIwMzlcdTAxNTJcdTA2ODZcdTA2OThcdTA2ODhcdTA2YWZcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdTA2YTlcdTIxMjJcdTA2OTFcdTIwM2FcdTAxNTNcdTIwMGNcdTIwMGRcdTA2YmFceGEwXHUwNjBj'@; put 'XHhhMlx4YTNceGE0XHhhNVx4YTZceGE3XHhhOFx4YTlcdTA2YmVceGFiXHhhY1x4YWRceGFlXHhhZlx4YjBceGIxXHhiMlx4YjNceGI0XHhiNVx4YjZceGI3XHhiOFx4YjlcdTA2MWJceGJiXHhiY1x4YmRceGJlXHUwNjFmXHUwNmMxXHUwNjIxXHUwNjIyXHUwNjIzXHUwNjI0XHUwNjI1XHUw'@; put 'NjI2XHUwNjI3XHUwNjI4XHUwNjI5XHUwNjJhXHUwNjJiXHUwNjJjXHUwNjJkXHUwNjJlXHUwNjJmXHUwNjMwXHUwNjMxXHUwNjMyXHUwNjMzXHUwNjM0XHUwNjM1XHUwNjM2XHhkN1x1MDYzN1x1MDYzOFx1MDYzOVx1MDYzYVx1MDY0MFx1MDY0MVx1MDY0Mlx1MDY0M1x4ZTBcdTA2NDRceGUy'@; put 'XHUwNjQ1XHUwNjQ2XHUwNjQ3XHUwNjQ4XHhlN1x4ZThceGU5XHhlYVx4ZWJcdTA2NDlcdTA2NGFceGVlXHhlZlx1MDY0Ylx1MDY0Y1x1MDY0ZFx1MDY0ZVx4ZjRcdTA2NGZcdTA2NTBceGY3XHUwNjUxXHhmOVx1MDY1Mlx4ZmJceGZjXHUyMDBlXHUyMDBmXHUwNmQyIn0sd2luMTI1Njoid2lu'@; put 'ZG93czEyNTYiLGNwMTI1Njoid2luZG93czEyNTYiLHdpbmRvd3MxMjU3Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MjBhY1x1ZmZmZFx1MjAxYVx1ZmZmZFx1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1ZmZmZFx1MjAzMFx1ZmZmZFx1MjAzOVx1ZmZmZFx4YThcdTAyYzdceGI4XHVmZmZkXHUy'@; put 'MDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHVmZmZkXHUyMTIyXHVmZmZkXHUyMDNhXHVmZmZkXHhhZlx1MDJkYlx1ZmZmZFx4YTBcdWZmZmRceGEyXHhhM1x4YTRcdWZmZmRceGE2XHhhN1x4ZDhceGE5XHUwMTU2XHhhYlx4YWNceGFkXHhhZVx4YzZceGIwXHhiMVx4'@; put 'YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4ZjhceGI5XHUwMTU3XHhiYlx4YmNceGJkXHhiZVx4ZTZcdTAxMDRcdTAxMmVcdTAxMDBcdTAxMDZceGM0XHhjNVx1MDExOFx1MDExMlx1MDEwY1x4YzlcdTAxNzlcdTAxMTZcdTAxMjJcdTAxMzZcdTAxMmFcdTAxM2JcdTAxNjBcdTAxNDNcdTAxNDVc'@; put 'eGQzXHUwMTRjXHhkNVx4ZDZceGQ3XHUwMTcyXHUwMTQxXHUwMTVhXHUwMTZhXHhkY1x1MDE3Ylx1MDE3ZFx4ZGZcdTAxMDVcdTAxMmZcdTAxMDFcdTAxMDdceGU0XHhlNVx1MDExOVx1MDExM1x1MDEwZFx4ZTlcdTAxN2FcdTAxMTdcdTAxMjNcdTAxMzdcdTAxMmJcdTAxM2NcdTAxNjFcdTAx'@; put 'NDRcdTAxNDZceGYzXHUwMTRkXHhmNVx4ZjZceGY3XHUwMTczXHUwMTQyXHUwMTViXHUwMTZiXHhmY1x1MDE3Y1x1MDE3ZVx1MDJkOSJ9LHdpbjEyNTc6IndpbmRvd3MxMjU3IixjcDEyNTc6IndpbmRvd3MxMjU3Iix3aW5kb3dzMTI1ODp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTIwYWNcdWZm'@; put 'ZmRcdTIwMWFcdTAxOTJcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdTAyYzZcdTIwMzBcdWZmZmRcdTIwMzlcdTAxNTJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdTAyZGNcdTIxMjJcdWZmZmRcdTIwM2FcdTAxNTNc'@; put 'dWZmZmRcdWZmZmRcdTAxNzhceGEwXHhhMVx4YTJceGEzXHhhNFx4YTVceGE2XHhhN1x4YThceGE5XHhhYVx4YWJceGFjXHhhZFx4YWVceGFmXHhiMFx4YjFceGIyXHhiM1x4YjRceGI1XHhiNlx4YjdceGI4XHhiOVx4YmFceGJiXHhiY1x4YmRceGJlXHhiZlx4YzBceGMxXHhjMlx1MDEwMlx4'@; put 'YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHUwMzAwXHhjZFx4Y2VceGNmXHUwMTEwXHhkMVx1MDMwOVx4ZDNceGQ0XHUwMWEwXHhkNlx4ZDdceGQ4XHhkOVx4ZGFceGRiXHhkY1x1MDFhZlx1MDMwM1x4ZGZceGUwXHhlMVx4ZTJcdTAxMDNceGU0XHhlNVx4ZTZceGU3XHhlOFx4ZTlc'@; put 'eGVhXHhlYlx1MDMwMVx4ZWRceGVlXHhlZlx1MDExMVx4ZjFcdTAzMjNceGYzXHhmNFx1MDFhMVx4ZjZceGY3XHhmOFx4ZjlceGZhXHhmYlx4ZmNcdTAxYjBcdTIwYWJceGZmIn0sd2luMTI1ODoid2luZG93czEyNTgiLGNwMTI1ODoid2luZG93czEyNTgiLGlzbzg4NTkxOnt0eXBlOiJfc2Jj'@; put 'cyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx4YTFceGEyXHhhM1x4YTRceGE1XHhh'@; put 'Nlx4YTdceGE4XHhhOVx4YWFceGFiXHhhY1x4YWRceGFlXHhhZlx4YjBceGIxXHhiMlx4YjNceGI0XHhiNVx4YjZceGI3XHhiOFx4YjlceGJhXHhiYlx4YmNceGJkXHhiZVx4YmZceGMwXHhjMVx4YzJceGMzXHhjNFx4YzVceGM2XHhjN1x4YzhceGM5XHhjYVx4Y2JceGNjXHhjZFx4Y2VceGNm'@; put 'XHhkMFx4ZDFceGQyXHhkM1x4ZDRceGQ1XHhkNlx4ZDdceGQ4XHhkOVx4ZGFceGRiXHhkY1x4ZGRceGRlXHhkZlx4ZTBceGUxXHhlMlx4ZTNceGU0XHhlNVx4ZTZceGU3XHhlOFx4ZTlceGVhXHhlYlx4ZWNceGVkXHhlZVx4ZWZceGYwXHhmMVx4ZjJceGYzXHhmNFx4ZjVceGY2XHhmN1x4Zjhc'@; put 'eGY5XHhmYVx4ZmJceGZjXHhmZFx4ZmVceGZmIn0sY3AyODU5MToiaXNvODg1OTEiLGlzbzg4NTkyOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4'@; put 'OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx1MDEwNFx1MDJkOFx1MDE0MVx4YTRcdTAxM2RcdTAxNWFceGE3XHhhOFx1MDE2MFx1MDE1ZVx1MDE2NFx1MDE3OVx4YWRcdTAxN2RcdTAxN2JceGIwXHUwMTA1XHUwMmRiXHUwMTQyXHhiNFx1MDEzZVx1MDE1'@; put 'Ylx1MDJjN1x4YjhcdTAxNjFcdTAxNWZcdTAxNjVcdTAxN2FcdTAyZGRcdTAxN2VcdTAxN2NcdTAxNTRceGMxXHhjMlx1MDEwMlx4YzRcdTAxMzlcdTAxMDZceGM3XHUwMTBjXHhjOVx1MDExOFx4Y2JcdTAxMWFceGNkXHhjZVx1MDEwZVx1MDExMFx1MDE0M1x1MDE0N1x4ZDNceGQ0XHUwMTUw'@; put 'XHhkNlx4ZDdcdTAxNThcdTAxNmVceGRhXHUwMTcwXHhkY1x4ZGRcdTAxNjJceGRmXHUwMTU1XHhlMVx4ZTJcdTAxMDNceGU0XHUwMTNhXHUwMTA3XHhlN1x1MDEwZFx4ZTlcdTAxMTlceGViXHUwMTFiXHhlZFx4ZWVcdTAxMGZcdTAxMTFcdTAxNDRcdTAxNDhceGYzXHhmNFx1MDE1MVx4ZjZc'@; put 'eGY3XHUwMTU5XHUwMTZmXHhmYVx1MDE3MVx4ZmNceGZkXHUwMTYzXHUwMmQ5In0sY3AyODU5MjoiaXNvODg1OTIiLGlzbzg4NTkzOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkw'@; put 'XHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx1MDEyNlx1MDJkOFx4YTNceGE0XHVmZmZkXHUwMTI0XHhhN1x4YThcdTAxMzBcdTAxNWVcdTAxMWVcdTAxMzRceGFkXHVmZmZkXHUwMTdiXHhiMFx1MDEyN1x4YjJceGIzXHhi'@; put 'NFx4YjVcdTAxMjVceGI3XHhiOFx1MDEzMVx1MDE1Zlx1MDExZlx1MDEzNVx4YmRcdWZmZmRcdTAxN2NceGMwXHhjMVx4YzJcdWZmZmRceGM0XHUwMTBhXHUwMTA4XHhjN1x4YzhceGM5XHhjYVx4Y2JceGNjXHhjZFx4Y2VceGNmXHVmZmZkXHhkMVx4ZDJceGQzXHhkNFx1MDEyMFx4ZDZceGQ3'@; put 'XHUwMTFjXHhkOVx4ZGFceGRiXHhkY1x1MDE2Y1x1MDE1Y1x4ZGZceGUwXHhlMVx4ZTJcdWZmZmRceGU0XHUwMTBiXHUwMTA5XHhlN1x4ZThceGU5XHhlYVx4ZWJceGVjXHhlZFx4ZWVceGVmXHVmZmZkXHhmMVx4ZjJceGYzXHhmNFx1MDEyMVx4ZjZceGY3XHUwMTFkXHhmOVx4ZmFceGZiXHhm'@; put 'Y1x1MDE2ZFx1MDE1ZFx1MDJkOSJ9LGNwMjg1OTM6Imlzbzg4NTkzIixpc284ODU5NDp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4'@; put 'OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBcdTAxMDRcdTAxMzhcdTAxNTZceGE0XHUwMTI4XHUwMTNiXHhhN1x4YThcdTAxNjBcdTAxMTJcdTAxMjJcdTAxNjZceGFkXHUwMTdkXHhhZlx4YjBcdTAxMDVcdTAyZGJcdTAxNTdceGI0XHUwMTI5XHUwMTNjXHUwMmM3XHhi'@; put 'OFx1MDE2MVx1MDExM1x1MDEyM1x1MDE2N1x1MDE0YVx1MDE3ZVx1MDE0Ylx1MDEwMFx4YzFceGMyXHhjM1x4YzRceGM1XHhjNlx1MDEyZVx1MDEwY1x4YzlcdTAxMThceGNiXHUwMTE2XHhjZFx4Y2VcdTAxMmFcdTAxMTBcdTAxNDVcdTAxNGNcdTAxMzZceGQ0XHhkNVx4ZDZceGQ3XHhkOFx1'@; put 'MDE3Mlx4ZGFceGRiXHhkY1x1MDE2OFx1MDE2YVx4ZGZcdTAxMDFceGUxXHhlMlx4ZTNceGU0XHhlNVx4ZTZcdTAxMmZcdTAxMGRceGU5XHUwMTE5XHhlYlx1MDExN1x4ZWRceGVlXHUwMTJiXHUwMTExXHUwMTQ2XHUwMTRkXHUwMTM3XHhmNFx4ZjVceGY2XHhmN1x4ZjhcdTAxNzNceGZhXHhm'@; put 'Ylx4ZmNcdTAxNjlcdTAxNmJcdTAyZDkifSxjcDI4NTk0OiJpc284ODU5NCIsaXNvODg1OTU6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4'@; put 'OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHUwNDAxXHUwNDAyXHUwNDAzXHUwNDA0XHUwNDA1XHUwNDA2XHUwNDA3XHUwNDA4XHUwNDA5XHUwNDBhXHUwNDBiXHUwNDBjXHhhZFx1MDQwZVx1MDQwZlx1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQx'@; put 'NVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1MDQyZVx1MDQyZlx1MDQzMFx1'@; put 'MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0YVx1MDQ0Ylx1MDQ0'@; put 'Y1x1MDQ0ZFx1MDQ0ZVx1MDQ0Zlx1MjExNlx1MDQ1MVx1MDQ1Mlx1MDQ1M1x1MDQ1NFx1MDQ1NVx1MDQ1Nlx1MDQ1N1x1MDQ1OFx1MDQ1OVx1MDQ1YVx1MDQ1Ylx1MDQ1Y1x4YTdcdTA0NWVcdTA0NWYifSxjcDI4NTk1OiJpc284ODU5NSIsaXNvODg1OTY6e3R5cGU6Il9zYmNzIixjaGFyczoi'@; put 'XHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHVmZmZkXHVmZmZkXHVmZmZkXHhhNFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDYwY1x4YWRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTA2MWJcdWZmZmRcdWZmZmRcdWZmZmRcdTA2MWZcdWZmZmRcdTA2MjFcdTA2'@; put 'MjJcdTA2MjNcdTA2MjRcdTA2MjVcdTA2MjZcdTA2MjdcdTA2MjhcdTA2MjlcdTA2MmFcdTA2MmJcdTA2MmNcdTA2MmRcdTA2MmVcdTA2MmZcdTA2MzBcdTA2MzFcdTA2MzJcdTA2MzNcdTA2MzRcdTA2MzVcdTA2MzZcdTA2MzdcdTA2MzhcdTA2MzlcdTA2M2FcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdTA2NDBcdTA2NDFcdTA2NDJcdTA2NDNcdTA2NDRcdTA2NDVcdTA2NDZcdTA2NDdcdTA2NDhcdTA2NDlcdTA2NGFcdTA2NGJcdTA2NGNcdTA2NGRcdTA2NGVcdTA2NGZcdTA2NTBcdTA2NTFcdTA2NTJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQifSxjcDI4NTk2OiJpc284ODU5NiIsaXNvODg1OTc6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5'@; put 'Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHUyMDE4XHUyMDE5XHhhM1x1MjBhY1x1MjBhZlx4YTZceGE3XHhhOFx4YTlcdTAzN2FceGFiXHhhY1x4YWRcdWZmZmRcdTIwMTVceGIwXHhiMVx4YjJceGIzXHUwMzg0XHUwMzg1XHUwMzg2'@; put 'XHhiN1x1MDM4OFx1MDM4OVx1MDM4YVx4YmJcdTAzOGNceGJkXHUwMzhlXHUwMzhmXHUwMzkwXHUwMzkxXHUwMzkyXHUwMzkzXHUwMzk0XHUwMzk1XHUwMzk2XHUwMzk3XHUwMzk4XHUwMzk5XHUwMzlhXHUwMzliXHUwMzljXHUwMzlkXHUwMzllXHUwMzlmXHUwM2EwXHUwM2ExXHVmZmZkXHUw'@; put 'M2EzXHUwM2E0XHUwM2E1XHUwM2E2XHUwM2E3XHUwM2E4XHUwM2E5XHUwM2FhXHUwM2FiXHUwM2FjXHUwM2FkXHUwM2FlXHUwM2FmXHUwM2IwXHUwM2IxXHUwM2IyXHUwM2IzXHUwM2I0XHUwM2I1XHUwM2I2XHUwM2I3XHUwM2I4XHUwM2I5XHUwM2JhXHUwM2JiXHUwM2JjXHUwM2JkXHUwM2Jl'@; put 'XHUwM2JmXHUwM2MwXHUwM2MxXHUwM2MyXHUwM2MzXHUwM2M0XHUwM2M1XHUwM2M2XHUwM2M3XHUwM2M4XHUwM2M5XHUwM2NhXHUwM2NiXHUwM2NjXHUwM2NkXHUwM2NlXHVmZmZkIn0sY3AyODU5NzoiaXNvODg1OTciLGlzbzg4NTk4Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4'@; put 'Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx1ZmZmZFx4YTJceGEzXHhhNFx4YTVceGE2XHhhN1x4YThceGE5XHhkN1x4'@; put 'YWJceGFjXHhhZFx4YWVceGFmXHhiMFx4YjFceGIyXHhiM1x4YjRceGI1XHhiNlx4YjdceGI4XHhiOVx4ZjdceGJiXHhiY1x4YmRceGJlXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMDE3XHUwNWQwXHUwNWQxXHUwNWQyXHUwNWQzXHUwNWQ0XHUwNWQ1XHUwNWQ2XHUwNWQ3XHUwNWQ4'@; put 'XHUwNWQ5XHUwNWRhXHUwNWRiXHUwNWRjXHUwNWRkXHUwNWRlXHUwNWRmXHUwNWUwXHUwNWUxXHUwNWUyXHUwNWUzXHUwNWU0XHUwNWU1XHUwNWU2XHUwNWU3XHUwNWU4XHUwNWU5XHUwNWVhXHVmZmZkXHVmZmZkXHUyMDBlXHUyMDBmXHVmZmZkIn0sY3AyODU5ODoiaXNvODg1OTgiLGlzbzg4'@; put 'NTk5Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx4YTFceGEy'@; put 'XHhhM1x4YTRceGE1XHhhNlx4YTdceGE4XHhhOVx4YWFceGFiXHhhY1x4YWRceGFlXHhhZlx4YjBceGIxXHhiMlx4YjNceGI0XHhiNVx4YjZceGI3XHhiOFx4YjlceGJhXHhiYlx4YmNceGJkXHhiZVx4YmZceGMwXHhjMVx4YzJceGMzXHhjNFx4YzVceGM2XHhjN1x4YzhceGM5XHhjYVx4Y2Jc'@; put 'eGNjXHhjZFx4Y2VceGNmXHUwMTFlXHhkMVx4ZDJceGQzXHhkNFx4ZDVceGQ2XHhkN1x4ZDhceGQ5XHhkYVx4ZGJceGRjXHUwMTMwXHUwMTVlXHhkZlx4ZTBceGUxXHhlMlx4ZTNceGU0XHhlNVx4ZTZceGU3XHhlOFx4ZTlceGVhXHhlYlx4ZWNceGVkXHhlZVx4ZWZcdTAxMWZceGYxXHhmMlx4'@; put 'ZjNceGY0XHhmNVx4ZjZceGY3XHhmOFx4ZjlceGZhXHhmYlx4ZmNcdTAxMzFcdTAxNWZceGZmIn0sY3AyODU5OToiaXNvODg1OTkiLGlzbzg4NTkxMDp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4'@; put 'OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBcdTAxMDRcdTAxMTJcdTAxMjJcdTAxMmFcdTAxMjhcdTAxMzZceGE3XHUwMTNiXHUwMTEwXHUwMTYwXHUwMTY2XHUwMTdkXHhhZFx1MDE2YVx1MDE0YVx4YjBc'@; put 'dTAxMDVcdTAxMTNcdTAxMjNcdTAxMmJcdTAxMjlcdTAxMzdceGI3XHUwMTNjXHUwMTExXHUwMTYxXHUwMTY3XHUwMTdlXHUyMDE1XHUwMTZiXHUwMTRiXHUwMTAwXHhjMVx4YzJceGMzXHhjNFx4YzVceGM2XHUwMTJlXHUwMTBjXHhjOVx1MDExOFx4Y2JcdTAxMTZceGNkXHhjZVx4Y2ZceGQw'@; put 'XHUwMTQ1XHUwMTRjXHhkM1x4ZDRceGQ1XHhkNlx1MDE2OFx4ZDhcdTAxNzJceGRhXHhkYlx4ZGNceGRkXHhkZVx4ZGZcdTAxMDFceGUxXHhlMlx4ZTNceGU0XHhlNVx4ZTZcdTAxMmZcdTAxMGRceGU5XHUwMTE5XHhlYlx1MDExN1x4ZWRceGVlXHhlZlx4ZjBcdTAxNDZcdTAxNGRceGYzXHhm'@; put 'NFx4ZjVceGY2XHUwMTY5XHhmOFx1MDE3M1x4ZmFceGZiXHhmY1x4ZmRceGZlXHUwMTM4In0sY3AyODYwMDoiaXNvODg1OTEwIixpc284ODU5MTE6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhl'@; put 'XHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHUwZTAxXHUwZTAyXHUwZTAzXHUwZTA0XHUwZTA1XHUwZTA2XHUwZTA3XHUwZTA4XHUwZTA5XHUwZTBhXHUwZTBiXHUwZTBjXHUwZTBkXHUwZTBlXHUwZTBmXHUw'@; put 'ZTEwXHUwZTExXHUwZTEyXHUwZTEzXHUwZTE0XHUwZTE1XHUwZTE2XHUwZTE3XHUwZTE4XHUwZTE5XHUwZTFhXHUwZTFiXHUwZTFjXHUwZTFkXHUwZTFlXHUwZTFmXHUwZTIwXHUwZTIxXHUwZTIyXHUwZTIzXHUwZTI0XHUwZTI1XHUwZTI2XHUwZTI3XHUwZTI4XHUwZTI5XHUwZTJhXHUwZTJi'@; put 'XHUwZTJjXHUwZTJkXHUwZTJlXHUwZTJmXHUwZTMwXHUwZTMxXHUwZTMyXHUwZTMzXHUwZTM0XHUwZTM1XHUwZTM2XHUwZTM3XHUwZTM4XHUwZTM5XHUwZTNhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwZTNmXHUwZTQwXHUwZTQxXHUwZTQyXHUwZTQzXHUwZTQ0XHUwZTQ1XHUwZTQ2XHUw'@; put 'ZTQ3XHUwZTQ4XHUwZTQ5XHUwZTRhXHUwZTRiXHUwZTRjXHUwZTRkXHUwZTRlXHUwZTRmXHUwZTUwXHUwZTUxXHUwZTUyXHUwZTUzXHUwZTU0XHUwZTU1XHUwZTU2XHUwZTU3XHUwZTU4XHUwZTU5XHUwZTVhXHUwZTViXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIn0sY3AyODYwMToiaXNvODg1'@; put 'OTExIixpc284ODU5MTM6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZc'@; put 'eGEwXHUyMDFkXHhhMlx4YTNceGE0XHUyMDFlXHhhNlx4YTdceGQ4XHhhOVx1MDE1Nlx4YWJceGFjXHhhZFx4YWVceGM2XHhiMFx4YjFceGIyXHhiM1x1MjAxY1x4YjVceGI2XHhiN1x4ZjhceGI5XHUwMTU3XHhiYlx4YmNceGJkXHhiZVx4ZTZcdTAxMDRcdTAxMmVcdTAxMDBcdTAxMDZceGM0'@; put 'XHhjNVx1MDExOFx1MDExMlx1MDEwY1x4YzlcdTAxNzlcdTAxMTZcdTAxMjJcdTAxMzZcdTAxMmFcdTAxM2JcdTAxNjBcdTAxNDNcdTAxNDVceGQzXHUwMTRjXHhkNVx4ZDZceGQ3XHUwMTcyXHUwMTQxXHUwMTVhXHUwMTZhXHhkY1x1MDE3Ylx1MDE3ZFx4ZGZcdTAxMDVcdTAxMmZcdTAxMDFc'@; put 'dTAxMDdceGU0XHhlNVx1MDExOVx1MDExM1x1MDEwZFx4ZTlcdTAxN2FcdTAxMTdcdTAxMjNcdTAxMzdcdTAxMmJcdTAxM2NcdTAxNjFcdTAxNDRcdTAxNDZceGYzXHUwMTRkXHhmNVx4ZjZceGY3XHUwMTczXHUwMTQyXHUwMTViXHUwMTZiXHhmY1x1MDE3Y1x1MDE3ZVx1MjAxOSJ9LGNwMjg2'@; put 'MDM6Imlzbzg4NTkxMyIsaXNvODg1OTE0Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5'@; put 'ZFx4OWVceDlmXHhhMFx1MWUwMlx1MWUwM1x4YTNcdTAxMGFcdTAxMGJcdTFlMGFceGE3XHUxZTgwXHhhOVx1MWU4Mlx1MWUwYlx1MWVmMlx4YWRceGFlXHUwMTc4XHUxZTFlXHUxZTFmXHUwMTIwXHUwMTIxXHUxZTQwXHUxZTQxXHhiNlx1MWU1Nlx1MWU4MVx1MWU1N1x1MWU4M1x1MWU2MFx1'@; put 'MWVmM1x1MWU4NFx1MWU4NVx1MWU2MVx4YzBceGMxXHhjMlx4YzNceGM0XHhjNVx4YzZceGM3XHhjOFx4YzlceGNhXHhjYlx4Y2NceGNkXHhjZVx4Y2ZcdTAxNzRceGQxXHhkMlx4ZDNceGQ0XHhkNVx4ZDZcdTFlNmFceGQ4XHhkOVx4ZGFceGRiXHhkY1x4ZGRcdTAxNzZceGRmXHhlMFx4ZTFc'@; put 'eGUyXHhlM1x4ZTRceGU1XHhlNlx4ZTdceGU4XHhlOVx4ZWFceGViXHhlY1x4ZWRceGVlXHhlZlx1MDE3NVx4ZjFceGYyXHhmM1x4ZjRceGY1XHhmNlx1MWU2Ylx4ZjhceGY5XHhmYVx4ZmJceGZjXHhmZFx1MDE3N1x4ZmYifSxjcDI4NjA0OiJpc284ODU5MTQiLGlzbzg4NTkxNTp7dHlwZToi'@; put 'X3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBceGExXHhhMlx4YTNcdTIwYWNc'@; put 'eGE1XHUwMTYwXHhhN1x1MDE2MVx4YTlceGFhXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHUwMTdkXHhiNVx4YjZceGI3XHUwMTdlXHhiOVx4YmFceGJiXHUwMTUyXHUwMTUzXHUwMTc4XHhiZlx4YzBceGMxXHhjMlx4YzNceGM0XHhjNVx4YzZceGM3XHhjOFx4YzlceGNh'@; put 'XHhjYlx4Y2NceGNkXHhjZVx4Y2ZceGQwXHhkMVx4ZDJceGQzXHhkNFx4ZDVceGQ2XHhkN1x4ZDhceGQ5XHhkYVx4ZGJceGRjXHhkZFx4ZGVceGRmXHhlMFx4ZTFceGUyXHhlM1x4ZTRceGU1XHhlNlx4ZTdceGU4XHhlOVx4ZWFceGViXHhlY1x4ZWRceGVlXHhlZlx4ZjBceGYxXHhmMlx4ZjNc'@; put 'eGY0XHhmNVx4ZjZceGY3XHhmOFx4ZjlceGZhXHhmYlx4ZmNceGZkXHhmZVx4ZmYifSxjcDI4NjA1OiJpc284ODU5MTUiLGlzbzg4NTkxNjp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhm'@; put 'XHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBcdTAxMDRcdTAxMDVcdTAxNDFcdTIwYWNcdTIwMWVcdTAxNjBceGE3XHUwMTYxXHhhOVx1MDIxOFx4YWJcdTAxNzlceGFkXHUwMTdhXHUwMTdiXHhiMFx4YjFcdTAxMGNc'@; put 'dTAxNDJcdTAxN2RcdTIwMWRceGI2XHhiN1x1MDE3ZVx1MDEwZFx1MDIxOVx4YmJcdTAxNTJcdTAxNTNcdTAxNzhcdTAxN2NceGMwXHhjMVx4YzJcdTAxMDJceGM0XHUwMTA2XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHhjY1x4Y2RceGNlXHhjZlx1MDExMFx1MDE0M1x4ZDJceGQzXHhkNFx1'@; put 'MDE1MFx4ZDZcdTAxNWFcdTAxNzBceGQ5XHhkYVx4ZGJceGRjXHUwMTE4XHUwMjFhXHhkZlx4ZTBceGUxXHhlMlx1MDEwM1x4ZTRcdTAxMDdceGU2XHhlN1x4ZThceGU5XHhlYVx4ZWJceGVjXHhlZFx4ZWVceGVmXHUwMTExXHUwMTQ0XHhmMlx4ZjNceGY0XHUwMTUxXHhmNlx1MDE1Ylx1MDE3'@; put 'MVx4ZjlceGZhXHhmYlx4ZmNcdTAxMTlcdTAyMWJceGZmIn0sY3AyODYwNjoiaXNvODg1OTE2IixjcDQzNzp7dHlwZToiX3NiY3MiLGNoYXJzOiJceGM3XHhmY1x4ZTlceGUyXHhlNFx4ZTBceGU1XHhlN1x4ZWFceGViXHhlOFx4ZWZceGVlXHhlY1x4YzRceGM1XHhjOVx4ZTZceGM2XHhmNFx4'@; put 'ZjZceGYyXHhmYlx4ZjlceGZmXHhkNlx4ZGNceGEyXHhhM1x4YTVcdTIwYTdcdTAxOTJceGUxXHhlZFx4ZjNceGZhXHhmMVx4ZDFceGFhXHhiYVx4YmZcdTIzMTBceGFjXHhiZFx4YmNceGExXHhhYlx4YmJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFcdTI1NjJcdTI1NTZc'@; put 'dTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRcdTI1NWNcdTI1NWJcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTI1NWVcdTI1NWZcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNcdTI1NjdcdTI1NjhcdTI1NjRcdTI1NjVcdTI1'@; put 'NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NmJcdTI1NmFcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTI1OGNcdTI1OTBcdTI1ODBcdTAzYjFceGRmXHUwMzkzXHUwM2MwXHUwM2EzXHUwM2MzXHhiNVx1MDNjNFx1MDNhNlx1MDM5OFx1MDNhOVx1MDNiNFx1MjIxZVx1MDNjNlx1MDNiNVx1MjIy'@; put 'OVx1MjI2MVx4YjFcdTIyNjVcdTIyNjRcdTIzMjBcdTIzMjFceGY3XHUyMjQ4XHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIwN2ZceGIyXHUyNWEwXHhhMCJ9LGlibTQzNzoiY3A0MzciLGNzaWJtNDM3OiJjcDQzNyIsY3A3Mzc6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUwMzkxXHUwMzkyXHUwMzkz'@; put 'XHUwMzk0XHUwMzk1XHUwMzk2XHUwMzk3XHUwMzk4XHUwMzk5XHUwMzlhXHUwMzliXHUwMzljXHUwMzlkXHUwMzllXHUwMzlmXHUwM2EwXHUwM2ExXHUwM2EzXHUwM2E0XHUwM2E1XHUwM2E2XHUwM2E3XHUwM2E4XHUwM2E5XHUwM2IxXHUwM2IyXHUwM2IzXHUwM2I0XHUwM2I1XHUwM2I2XHUw'@; put 'M2I3XHUwM2I4XHUwM2I5XHUwM2JhXHUwM2JiXHUwM2JjXHUwM2JkXHUwM2JlXHUwM2JmXHUwM2MwXHUwM2MxXHUwM2MzXHUwM2MyXHUwM2M0XHUwM2M1XHUwM2M2XHUwM2M3XHUwM2M4XHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYz'@; put 'XHUyNTUxXHUyNTU3XHUyNTVkXHUyNTVjXHUyNTViXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUy'@; put 'NTUyXHUyNTUzXHUyNTZiXHUyNTZhXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwM2M5XHUwM2FjXHUwM2FkXHUwM2FlXHUwM2NhXHUwM2FmXHUwM2NjXHUwM2NkXHUwM2NiXHUwM2NlXHUwMzg2XHUwMzg4XHUwMzg5XHUwMzhhXHUwMzhjXHUwMzhlXHUwMzhm'@; put 'XHhiMVx1MjI2NVx1MjI2NFx1MDNhYVx1MDNhYlx4ZjdcdTIyNDhceGIwXHUyMjE5XHhiN1x1MjIxYVx1MjA3Zlx4YjJcdTI1YTBceGEwIn0saWJtNzM3OiJjcDczNyIsY3NpYm03Mzc6ImNwNzM3IixjcDc3NTp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTAxMDZceGZjXHhlOVx1MDEwMVx4ZTRc'@; put 'dTAxMjNceGU1XHUwMTA3XHUwMTQyXHUwMTEzXHUwMTU2XHUwMTU3XHUwMTJiXHUwMTc5XHhjNFx4YzVceGM5XHhlNlx4YzZcdTAxNGRceGY2XHUwMTIyXHhhMlx1MDE1YVx1MDE1Ylx4ZDZceGRjXHhmOFx4YTNceGQ4XHhkN1x4YTRcdTAxMDBcdTAxMmFceGYzXHUwMTdiXHUwMTdjXHUwMTdh'@; put 'XHUyMDFkXHhhNlx4YTlceGFlXHhhY1x4YmRceGJjXHUwMTQxXHhhYlx4YmJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTAxMDRcdTAxMGNcdTAxMThcdTAxMTZcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRcdTAxMmVcdTAxNjBcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNc'@; put 'dTI1MDBcdTI1M2NcdTAxNzJcdTAxNmFcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNcdTAxN2RcdTAxMDVcdTAxMGRcdTAxMTlcdTAxMTdcdTAxMmZcdTAxNjFcdTAxNzNcdTAxNmJcdTAxN2VcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTI1OGNcdTI1OTBcdTI1'@; put 'ODBceGQzXHhkZlx1MDE0Y1x1MDE0M1x4ZjVceGQ1XHhiNVx1MDE0NFx1MDEzNlx1MDEzN1x1MDEzYlx1MDEzY1x1MDE0Nlx1MDExMlx1MDE0NVx1MjAxOVx4YWRceGIxXHUyMDFjXHhiZVx4YjZceGE3XHhmN1x1MjAxZVx4YjBcdTIyMTlceGI3XHhiOVx4YjNceGIyXHUyNWEwXHhhMCJ9LGli'@; put 'bTc3NToiY3A3NzUiLGNzaWJtNzc1OiJjcDc3NSIsY3A4NTA6e3R5cGU6Il9zYmNzIixjaGFyczoiXHhjN1x4ZmNceGU5XHhlMlx4ZTRceGUwXHhlNVx4ZTdceGVhXHhlYlx4ZThceGVmXHhlZVx4ZWNceGM0XHhjNVx4YzlceGU2XHhjNlx4ZjRceGY2XHhmMlx4ZmJceGY5XHhmZlx4ZDZceGRj'@; put 'XHhmOFx4YTNceGQ4XHhkN1x1MDE5Mlx4ZTFceGVkXHhmM1x4ZmFceGYxXHhkMVx4YWFceGJhXHhiZlx4YWVceGFjXHhiZFx4YmNceGExXHhhYlx4YmJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRceGMxXHhjMlx4YzBceGE5XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHhhMlx4YTVc'@; put 'dTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NceGUzXHhjM1x1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x4YTRceGYwXHhkMFx4Y2FceGNiXHhjOFx1MDEzMVx4Y2RceGNlXHhjZlx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx4YTZceGNj'@; put 'XHUyNTgwXHhkM1x4ZGZceGQ0XHhkMlx4ZjVceGQ1XHhiNVx4ZmVceGRlXHhkYVx4ZGJceGQ5XHhmZFx4ZGRceGFmXHhiNFx4YWRceGIxXHUyMDE3XHhiZVx4YjZceGE3XHhmN1x4YjhceGIwXHhhOFx4YjdceGI5XHhiM1x4YjJcdTI1YTBceGEwIn0saWJtODUwOiJjcDg1MCIsY3NpYm04NTA6'@; put 'ImNwODUwIixjcDg1Mjp7dHlwZToiX3NiY3MiLGNoYXJzOiJceGM3XHhmY1x4ZTlceGUyXHhlNFx1MDE2Zlx1MDEwN1x4ZTdcdTAxNDJceGViXHUwMTUwXHUwMTUxXHhlZVx1MDE3OVx4YzRcdTAxMDZceGM5XHUwMTM5XHUwMTNhXHhmNFx4ZjZcdTAxM2RcdTAxM2VcdTAxNWFcdTAxNWJceGQ2'@; put 'XHhkY1x1MDE2NFx1MDE2NVx1MDE0MVx4ZDdcdTAxMGRceGUxXHhlZFx4ZjNceGZhXHUwMTA0XHUwMTA1XHUwMTdkXHUwMTdlXHUwMTE4XHUwMTE5XHhhY1x1MDE3YVx1MDEwY1x1MDE1Zlx4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHhjMVx4YzJcdTAxMWFcdTAxNWVc'@; put 'dTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRcdTAxN2JcdTAxN2NcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTAxMDJcdTAxMDNcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNceGE0XHUwMTExXHUwMTEwXHUwMTBlXHhjYlx1MDEwZlx1'@; put 'MDE0N1x4Y2RceGNlXHUwMTFiXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUwMTYyXHUwMTZlXHUyNTgwXHhkM1x4ZGZceGQ0XHUwMTQzXHUwMTQ0XHUwMTQ4XHUwMTYwXHUwMTYxXHUwMTU0XHhkYVx1MDE1NVx1MDE3MFx4ZmRceGRkXHUwMTYzXHhiNFx4YWRcdTAyZGRcdTAyZGJcdTAyYzdc'@; put 'dTAyZDhceGE3XHhmN1x4YjhceGIwXHhhOFx1MDJkOVx1MDE3MVx1MDE1OFx1MDE1OVx1MjVhMFx4YTAifSxpYm04NTI6ImNwODUyIixjc2libTg1MjoiY3A4NTIiLGNwODU1Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MDQ1Mlx1MDQwMlx1MDQ1M1x1MDQwM1x1MDQ1MVx1MDQwMVx1MDQ1NFx1'@; put 'MDQwNFx1MDQ1NVx1MDQwNVx1MDQ1Nlx1MDQwNlx1MDQ1N1x1MDQwN1x1MDQ1OFx1MDQwOFx1MDQ1OVx1MDQwOVx1MDQ1YVx1MDQwYVx1MDQ1Ylx1MDQwYlx1MDQ1Y1x1MDQwY1x1MDQ1ZVx1MDQwZVx1MDQ1Zlx1MDQwZlx1MDQ0ZVx1MDQyZVx1MDQ0YVx1MDQyYVx1MDQzMFx1MDQxMFx1MDQz'@; put 'MVx1MDQxMVx1MDQ0Nlx1MDQyNlx1MDQzNFx1MDQxNFx1MDQzNVx1MDQxNVx1MDQ0NFx1MDQyNFx1MDQzM1x1MDQxM1x4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUwNDQ1XHUwNDI1XHUwNDM4XHUwNDE4XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUwNDM5XHUwNDE5'@; put 'XHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUwNDNhXHUwNDFhXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHhhNFx1MDQzYlx1MDQxYlx1MDQzY1x1MDQxY1x1MDQzZFx1MDQxZFx1MDQzZVx1MDQxZVx1MDQzZlx1MjUxOFx1MjUw'@; put 'Y1x1MjU4OFx1MjU4NFx1MDQxZlx1MDQ0Zlx1MjU4MFx1MDQyZlx1MDQ0MFx1MDQyMFx1MDQ0MVx1MDQyMVx1MDQ0Mlx1MDQyMlx1MDQ0M1x1MDQyM1x1MDQzNlx1MDQxNlx1MDQzMlx1MDQxMlx1MDQ0Y1x1MDQyY1x1MjExNlx4YWRcdTA0NGJcdTA0MmJcdTA0MzdcdTA0MTdcdTA0NDhcdTA0'@; put 'MjhcdTA0NGRcdTA0MmRcdTA0NDlcdTA0MjlcdTA0NDdcdTA0MjdceGE3XHUyNWEwXHhhMCJ9LGlibTg1NToiY3A4NTUiLGNzaWJtODU1OiJjcDg1NSIsY3A4NTY6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUwNWQwXHUwNWQxXHUwNWQyXHUwNWQzXHUwNWQ0XHUwNWQ1XHUwNWQ2XHUwNWQ3XHUw'@; put 'NWQ4XHUwNWQ5XHUwNWRhXHUwNWRiXHUwNWRjXHUwNWRkXHUwNWRlXHUwNWRmXHUwNWUwXHUwNWUxXHUwNWUyXHUwNWUzXHUwNWU0XHUwNWU1XHUwNWU2XHUwNWU3XHUwNWU4XHUwNWU5XHUwNWVhXHVmZmZkXHhhM1x1ZmZmZFx4ZDdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm'@; put 'ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRceGFlXHhhY1x4YmRceGJjXHVmZmZkXHhhYlx4YmJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdWZmZmRcdWZmZmRcdWZmZmRceGE5XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHhhMlx4YTVcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNc'@; put 'dTI1MWNcdTI1MDBcdTI1M2NcdWZmZmRcdWZmZmRcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNceGE0XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHhhNlx1ZmZmZFx1'@; put 'MjU4MFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx4YjVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRceGFmXHhiNFx4YWRceGIxXHUyMDE3XHhiZVx4YjZceGE3XHhmN1x4YjhceGIwXHhhOFx4YjdceGI5XHhiM1x4YjJcdTI1YTBceGEwIn0s'@; put 'aWJtODU2OiJjcDg1NiIsY3NpYm04NTY6ImNwODU2IixjcDg1Nzp7dHlwZToiX3NiY3MiLGNoYXJzOiJceGM3XHhmY1x4ZTlceGUyXHhlNFx4ZTBceGU1XHhlN1x4ZWFceGViXHhlOFx4ZWZceGVlXHUwMTMxXHhjNFx4YzVceGM5XHhlNlx4YzZceGY0XHhmNlx4ZjJceGZiXHhmOVx1MDEzMFx4'@; put 'ZDZceGRjXHhmOFx4YTNceGQ4XHUwMTVlXHUwMTVmXHhlMVx4ZWRceGYzXHhmYVx4ZjFceGQxXHUwMTFlXHUwMTFmXHhiZlx4YWVceGFjXHhiZFx4YmNceGExXHhhYlx4YmJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRceGMxXHhjMlx4YzBceGE5XHUyNTYzXHUyNTUxXHUyNTU3XHUy'@; put 'NTVkXHhhMlx4YTVcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NceGUzXHhjM1x1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x4YTRceGJhXHhhYVx4Y2FceGNiXHhjOFx1ZmZmZFx4Y2RceGNlXHhjZlx1MjUxOFx1MjUwY1x1MjU4OFx1'@; put 'MjU4NFx4YTZceGNjXHUyNTgwXHhkM1x4ZGZceGQ0XHhkMlx4ZjVceGQ1XHhiNVx1ZmZmZFx4ZDdceGRhXHhkYlx4ZDlceGVjXHhmZlx4YWZceGI0XHhhZFx4YjFcdWZmZmRceGJlXHhiNlx4YTdceGY3XHhiOFx4YjBceGE4XHhiN1x4YjlceGIzXHhiMlx1MjVhMFx4YTAifSxpYm04NTc6ImNw'@; put 'ODU3Iixjc2libTg1NzoiY3A4NTciLGNwODU4Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4YzdceGZjXHhlOVx4ZTJceGU0XHhlMFx4ZTVceGU3XHhlYVx4ZWJceGU4XHhlZlx4ZWVceGVjXHhjNFx4YzVceGM5XHhlNlx4YzZceGY0XHhmNlx4ZjJceGZiXHhmOVx4ZmZceGQ2XHhkY1x4ZjhceGEz'@; put 'XHhkOFx4ZDdcdTAxOTJceGUxXHhlZFx4ZjNceGZhXHhmMVx4ZDFceGFhXHhiYVx4YmZceGFlXHhhY1x4YmRceGJjXHhhMVx4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHhjMVx4YzJceGMwXHhhOVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx4YTJceGE1XHUyNTEwXHUy'@; put 'NTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHhlM1x4YzNcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNceGE0XHhmMFx4ZDBceGNhXHhjYlx4YzhcdTIwYWNceGNkXHhjZVx4Y2ZcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRceGE2XHhjY1x1MjU4MFx4'@; put 'ZDNceGRmXHhkNFx4ZDJceGY1XHhkNVx4YjVceGZlXHhkZVx4ZGFceGRiXHhkOVx4ZmRceGRkXHhhZlx4YjRceGFkXHhiMVx1MjAxN1x4YmVceGI2XHhhN1x4ZjdceGI4XHhiMFx4YThceGI3XHhiOVx4YjNceGIyXHUyNWEwXHhhMCJ9LGlibTg1ODoiY3A4NTgiLGNzaWJtODU4OiJjcDg1OCIs'@; put 'Y3A4NjA6e3R5cGU6Il9zYmNzIixjaGFyczoiXHhjN1x4ZmNceGU5XHhlMlx4ZTNceGUwXHhjMVx4ZTdceGVhXHhjYVx4ZThceGNkXHhkNFx4ZWNceGMzXHhjMlx4YzlceGMwXHhjOFx4ZjRceGY1XHhmMlx4ZGFceGY5XHhjY1x4ZDVceGRjXHhhMlx4YTNceGQ5XHUyMGE3XHhkM1x4ZTFceGVk'@; put 'XHhmM1x4ZmFceGYxXHhkMVx4YWFceGJhXHhiZlx4ZDJceGFjXHhiZFx4YmNceGExXHhhYlx4YmJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFcdTI1NjJcdTI1NTZcdTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRcdTI1NWNcdTI1NWJcdTI1MTBcdTI1MTRcdTI1MzRc'@; put 'dTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTI1NWVcdTI1NWZcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNcdTI1NjdcdTI1NjhcdTI1NjRcdTI1NjVcdTI1NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NmJcdTI1NmFcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTI1'@; put 'OGNcdTI1OTBcdTI1ODBcdTAzYjFceGRmXHUwMzkzXHUwM2MwXHUwM2EzXHUwM2MzXHhiNVx1MDNjNFx1MDNhNlx1MDM5OFx1MDNhOVx1MDNiNFx1MjIxZVx1MDNjNlx1MDNiNVx1MjIyOVx1MjI2MVx4YjFcdTIyNjVcdTIyNjRcdTIzMjBcdTIzMjFceGY3XHUyMjQ4XHhiMFx1MjIxOVx4Yjdc'@; put 'dTIyMWFcdTIwN2ZceGIyXHUyNWEwXHhhMCJ9LGlibTg2MDoiY3A4NjAiLGNzaWJtODYwOiJjcDg2MCIsY3A4NjE6e3R5cGU6Il9zYmNzIixjaGFyczoiXHhjN1x4ZmNceGU5XHhlMlx4ZTRceGUwXHhlNVx4ZTdceGVhXHhlYlx4ZThceGQwXHhmMFx4ZGVceGM0XHhjNVx4YzlceGU2XHhjNlx4'@; put 'ZjRceGY2XHhmZVx4ZmJceGRkXHhmZFx4ZDZceGRjXHhmOFx4YTNceGQ4XHUyMGE3XHUwMTkyXHhlMVx4ZWRceGYzXHhmYVx4YzFceGNkXHhkM1x4ZGFceGJmXHUyMzEwXHhhY1x4YmRceGJjXHhhMVx4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUy'@; put 'NTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUyNTVjXHUyNTViXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1'@; put 'XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZiXHUyNTZhXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwM2IxXHhkZlx1MDM5M1x1MDNjMFx1MDNhM1x1MDNjM1x4YjVcdTAzYzRcdTAzYTZcdTAzOThcdTAzYTlcdTAzYjRcdTIyMWVcdTAzYzZcdTAzYjVc'@; put 'dTIyMjlcdTIyNjFceGIxXHUyMjY1XHUyMjY0XHUyMzIwXHUyMzIxXHhmN1x1MjI0OFx4YjBcdTIyMTlceGI3XHUyMjFhXHUyMDdmXHhiMlx1MjVhMFx4YTAifSxpYm04NjE6ImNwODYxIixjc2libTg2MToiY3A4NjEiLGNwODYyOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MDVkMFx1MDVkMVx1'@; put 'MDVkMlx1MDVkM1x1MDVkNFx1MDVkNVx1MDVkNlx1MDVkN1x1MDVkOFx1MDVkOVx1MDVkYVx1MDVkYlx1MDVkY1x1MDVkZFx1MDVkZVx1MDVkZlx1MDVlMFx1MDVlMVx1MDVlMlx1MDVlM1x1MDVlNFx1MDVlNVx1MDVlNlx1MDVlN1x1MDVlOFx1MDVlOVx1MDVlYVx4YTJceGEzXHhhNVx1MjBh'@; put 'N1x1MDE5Mlx4ZTFceGVkXHhmM1x4ZmFceGYxXHhkMVx4YWFceGJhXHhiZlx1MjMxMFx4YWNceGJkXHhiY1x4YTFceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1'@; put 'MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUw'@; put 'Y1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDNiMVx4ZGZcdTAzOTNcdTAzYzBcdTAzYTNcdTAzYzNceGI1XHUwM2M0XHUwM2E2XHUwMzk4XHUwM2E5XHUwM2I0XHUyMjFlXHUwM2M2XHUwM2I1XHUyMjI5XHUyMjYxXHhiMVx1MjI2NVx1MjI2NFx1MjMyMFx1MjMyMVx4ZjdcdTIy'@; put 'NDhceGIwXHUyMjE5XHhiN1x1MjIxYVx1MjA3Zlx4YjJcdTI1YTBceGEwIn0saWJtODYyOiJjcDg2MiIsY3NpYm04NjI6ImNwODYyIixjcDg2Mzp7dHlwZToiX3NiY3MiLGNoYXJzOiJceGM3XHhmY1x4ZTlceGUyXHhjMlx4ZTBceGI2XHhlN1x4ZWFceGViXHhlOFx4ZWZceGVlXHUyMDE3XHhj'@; put 'MFx4YTdceGM5XHhjOFx4Y2FceGY0XHhjYlx4Y2ZceGZiXHhmOVx4YTRceGQ0XHhkY1x4YTJceGEzXHhkOVx4ZGJcdTAxOTJceGE2XHhiNFx4ZjNceGZhXHhhOFx4YjhceGIzXHhhZlx4Y2VcdTIzMTBceGFjXHhiZFx4YmNceGJlXHhhYlx4YmJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1'@; put 'MjRcdTI1NjFcdTI1NjJcdTI1NTZcdTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRcdTI1NWNcdTI1NWJcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTI1NWVcdTI1NWZcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNcdTI1Njdc'@; put 'dTI1NjhcdTI1NjRcdTI1NjVcdTI1NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NmJcdTI1NmFcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTI1OGNcdTI1OTBcdTI1ODBcdTAzYjFceGRmXHUwMzkzXHUwM2MwXHUwM2EzXHUwM2MzXHhiNVx1MDNjNFx1MDNhNlx1MDM5OFx1MDNhOVx1MDNiNFx1'@; put 'MjIxZVx1MDNjNlx1MDNiNVx1MjIyOVx1MjI2MVx4YjFcdTIyNjVcdTIyNjRcdTIzMjBcdTIzMjFceGY3XHUyMjQ4XHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIwN2ZceGIyXHUyNWEwXHhhMCJ9LGlibTg2MzoiY3A4NjMiLGNzaWJtODYzOiJjcDg2MyIsY3A4NjQ6e3R5cGU6Il9zYmNzIixjaGFy'@; put 'czoiXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkXHUwNjZhJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJ'@; put 'SktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx4YjBceGI3XHUyMjE5XHUyMjFhXHUyNTkyXHUyNTAwXHUyNTAyXHUyNTNjXHUyNTI0XHUyNTJjXHUyNTFjXHUyNTM0XHUyNTEwXHUyNTBjXHUyNTE0XHUyNTE4XHUwM2IyXHUyMjFlXHUw'@; put 'M2M2XHhiMVx4YmRceGJjXHUyMjQ4XHhhYlx4YmJcdWZlZjdcdWZlZjhcdWZmZmRcdWZmZmRcdWZlZmJcdWZlZmNcdWZmZmRceGEwXHhhZFx1ZmU4Mlx4YTNceGE0XHVmZTg0XHVmZmZkXHVmZmZkXHVmZThlXHVmZThmXHVmZTk1XHVmZTk5XHUwNjBjXHVmZTlkXHVmZWExXHVmZWE1XHUwNjYw'@; put 'XHUwNjYxXHUwNjYyXHUwNjYzXHUwNjY0XHUwNjY1XHUwNjY2XHUwNjY3XHUwNjY4XHUwNjY5XHVmZWQxXHUwNjFiXHVmZWIxXHVmZWI1XHVmZWI5XHUwNjFmXHhhMlx1ZmU4MFx1ZmU4MVx1ZmU4M1x1ZmU4NVx1ZmVjYVx1ZmU4Ylx1ZmU4ZFx1ZmU5MVx1ZmU5M1x1ZmU5N1x1ZmU5Ylx1ZmU5'@; put 'Zlx1ZmVhM1x1ZmVhN1x1ZmVhOVx1ZmVhYlx1ZmVhZFx1ZmVhZlx1ZmViM1x1ZmViN1x1ZmViYlx1ZmViZlx1ZmVjMVx1ZmVjNVx1ZmVjYlx1ZmVjZlx4YTZceGFjXHhmN1x4ZDdcdWZlYzlcdTA2NDBcdWZlZDNcdWZlZDdcdWZlZGJcdWZlZGZcdWZlZTNcdWZlZTdcdWZlZWJcdWZlZWRcdWZl'@; put 'ZWZcdWZlZjNcdWZlYmRcdWZlY2NcdWZlY2VcdWZlY2RcdWZlZTFcdWZlN2RcdTA2NTFcdWZlZTVcdWZlZTlcdWZlZWNcdWZlZjBcdWZlZjJcdWZlZDBcdWZlZDVcdWZlZjVcdWZlZjZcdWZlZGRcdWZlZDlcdWZlZjFcdTI1YTBcdWZmZmQifSxpYm04NjQ6ImNwODY0Iixjc2libTg2NDoiY3A4'@; put 'NjQiLGNwODY1Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4YzdceGZjXHhlOVx4ZTJceGU0XHhlMFx4ZTVceGU3XHhlYVx4ZWJceGU4XHhlZlx4ZWVceGVjXHhjNFx4YzVceGM5XHhlNlx4YzZceGY0XHhmNlx4ZjJceGZiXHhmOVx4ZmZceGQ2XHhkY1x4ZjhceGEzXHhkOFx1MjBhN1x1MDE5Mlx4'@; put 'ZTFceGVkXHhmM1x4ZmFceGYxXHhkMVx4YWFceGJhXHhiZlx1MjMxMFx4YWNceGJkXHhiY1x4YTFceGFiXHhhNFx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUxMFx1MjUx'@; put 'NFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUwY1x1MjU4OFx1'@; put 'MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDNiMVx4ZGZcdTAzOTNcdTAzYzBcdTAzYTNcdTAzYzNceGI1XHUwM2M0XHUwM2E2XHUwMzk4XHUwM2E5XHUwM2I0XHUyMjFlXHUwM2M2XHUwM2I1XHUyMjI5XHUyMjYxXHhiMVx1MjI2NVx1MjI2NFx1MjMyMFx1MjMyMVx4ZjdcdTIyNDhceGIwXHUy'@; put 'MjE5XHhiN1x1MjIxYVx1MjA3Zlx4YjJcdTI1YTBceGEwIn0saWJtODY1OiJjcDg2NSIsY3NpYm04NjU6ImNwODY1IixjcDg2Njp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0MTRcdTA0MTVcdTA0MTZcdTA0MTdcdTA0MThcdTA0MTlcdTA0MWFcdTA0'@; put 'MWJcdTA0MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0MjZcdTA0MjdcdTA0MjhcdTA0MjlcdTA0MmFcdTA0MmJcdTA0MmNcdTA0MmRcdTA0MmVcdTA0MmZcdTA0MzBcdTA0MzFcdTA0MzJcdTA0MzNcdTA0MzRcdTA0MzVcdTA0MzZc'@; put 'dTA0MzdcdTA0MzhcdTA0MzlcdTA0M2FcdTA0M2JcdTA0M2NcdTA0M2RcdTA0M2VcdTA0M2ZcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFcdTI1NjJcdTI1NTZcdTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRcdTI1NWNcdTI1NWJcdTI1MTBcdTI1MTRcdTI1MzRcdTI1'@; put 'MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTI1NWVcdTI1NWZcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNcdTI1NjdcdTI1NjhcdTI1NjRcdTI1NjVcdTI1NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NmJcdTI1NmFcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTI1OGNc'@; put 'dTI1OTBcdTI1ODBcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0NDRcdTA0NDVcdTA0NDZcdTA0NDdcdTA0NDhcdTA0NDlcdTA0NGFcdTA0NGJcdTA0NGNcdTA0NGRcdTA0NGVcdTA0NGZcdTA0MDFcdTA0NTFcdTA0MDRcdTA0NTRcdTA0MDdcdTA0NTdcdTA0MGVcdTA0NWVceGIwXHUyMjE5'@; put 'XHhiN1x1MjIxYVx1MjExNlx4YTRcdTI1YTBceGEwIn0saWJtODY2OiJjcDg2NiIsY3NpYm04NjY6ImNwODY2IixjcDg2OTp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTAzODZcdWZmZmRceGI3XHhhY1x4YTZcdTIwMThcdTIwMTlc'@; put 'dTAzODhcdTIwMTVcdTAzODlcdTAzOGFcdTAzYWFcdTAzOGNcdWZmZmRcdWZmZmRcdTAzOGVcdTAzYWJceGE5XHUwMzhmXHhiMlx4YjNcdTAzYWNceGEzXHUwM2FkXHUwM2FlXHUwM2FmXHUwM2NhXHUwMzkwXHUwM2NjXHUwM2NkXHUwMzkxXHUwMzkyXHUwMzkzXHUwMzk0XHUwMzk1XHUwMzk2'@; put 'XHUwMzk3XHhiZFx1MDM5OFx1MDM5OVx4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUwMzlhXHUwMzliXHUwMzljXHUwMzlkXHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUwMzllXHUwMzlmXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUw'@; put 'M2EwXHUwM2ExXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUwM2EzXHUwM2E0XHUwM2E1XHUwM2E2XHUwM2E3XHUwM2E4XHUwM2E5XHUwM2IxXHUwM2IyXHUwM2IzXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUwM2I0XHUwM2I1XHUyNTgwXHUwM2I2XHUwM2I3'@; put 'XHUwM2I4XHUwM2I5XHUwM2JhXHUwM2JiXHUwM2JjXHUwM2JkXHUwM2JlXHUwM2JmXHUwM2MwXHUwM2MxXHUwM2MzXHUwM2MyXHUwM2M0XHUwMzg0XHhhZFx4YjFcdTAzYzVcdTAzYzZcdTAzYzdceGE3XHUwM2M4XHUwMzg1XHhiMFx4YThcdTAzYzlcdTAzY2JcdTAzYjBcdTAzY2VcdTI1YTBc'@; put 'eGEwIn0saWJtODY5OiJjcDg2OSIsY3NpYm04Njk6ImNwODY5IixjcDkyMjp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4'@; put 'XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBceGExXHhhMlx4YTNceGE0XHhhNVx4YTZceGE3XHhhOFx4YTlceGFhXHhhYlx4YWNceGFkXHhhZVx1MjAzZVx4YjBceGIxXHhiMlx4YjNceGI0XHhiNVx4YjZceGI3XHhiOFx4YjlceGJhXHhiYlx4YmNceGJkXHhiZVx4YmZceGMwXHhj'@; put 'MVx4YzJceGMzXHhjNFx4YzVceGM2XHhjN1x4YzhceGM5XHhjYVx4Y2JceGNjXHhjZFx4Y2VceGNmXHUwMTYwXHhkMVx4ZDJceGQzXHhkNFx4ZDVceGQ2XHhkN1x4ZDhceGQ5XHhkYVx4ZGJceGRjXHhkZFx1MDE3ZFx4ZGZceGUwXHhlMVx4ZTJceGUzXHhlNFx4ZTVceGU2XHhlN1x4ZThceGU5'@; put 'XHhlYVx4ZWJceGVjXHhlZFx4ZWVceGVmXHUwMTYxXHhmMVx4ZjJceGYzXHhmNFx4ZjVceGY2XHhmN1x4ZjhceGY5XHhmYVx4ZmJceGZjXHhmZFx1MDE3ZVx4ZmYifSxpYm05MjI6ImNwOTIyIixjc2libTkyMjoiY3A5MjIiLGNwMTA0Njp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdWZlODhceGQ3'@; put 'XHhmN1x1ZjhmNlx1ZjhmNVx1ZjhmNFx1ZjhmN1x1ZmU3MVx4ODhcdTI1YTBcdTI1MDJcdTI1MDBcdTI1MTBcdTI1MGNcdTI1MTRcdTI1MThcdWZlNzlcdWZlN2JcdWZlN2RcdWZlN2ZcdWZlNzdcdWZlOGFcdWZlZjBcdWZlZjNcdWZlZjJcdWZlY2VcdWZlY2ZcdWZlZDBcdWZlZjZcdWZlZjhc'@; put 'dWZlZmFcdWZlZmNceGEwXHVmOGZhXHVmOGY5XHVmOGY4XHhhNFx1ZjhmYlx1ZmU4Ylx1ZmU5MVx1ZmU5N1x1ZmU5Ylx1ZmU5Zlx1ZmVhM1x1MDYwY1x4YWRcdWZlYTdcdWZlYjNcdTA2NjBcdTA2NjFcdTA2NjJcdTA2NjNcdTA2NjRcdTA2NjVcdTA2NjZcdTA2NjdcdTA2NjhcdTA2NjlcdWZl'@; put 'YjdcdTA2MWJcdWZlYmJcdWZlYmZcdWZlY2FcdTA2MWZcdWZlY2JcdTA2MjFcdTA2MjJcdTA2MjNcdTA2MjRcdTA2MjVcdTA2MjZcdTA2MjdcdTA2MjhcdTA2MjlcdTA2MmFcdTA2MmJcdTA2MmNcdTA2MmRcdTA2MmVcdTA2MmZcdTA2MzBcdTA2MzFcdTA2MzJcdTA2MzNcdTA2MzRcdTA2MzVc'@; put 'dTA2MzZcdTA2MzdcdWZlYzdcdTA2MzlcdTA2M2FcdWZlY2NcdWZlODJcdWZlODRcdWZlOGVcdWZlZDNcdTA2NDBcdTA2NDFcdTA2NDJcdTA2NDNcdTA2NDRcdTA2NDVcdTA2NDZcdTA2NDdcdTA2NDhcdTA2NDlcdTA2NGFcdTA2NGJcdTA2NGNcdTA2NGRcdTA2NGVcdTA2NGZcdTA2NTBcdTA2'@; put 'NTFcdTA2NTJcdWZlZDdcdWZlZGJcdWZlZGZcdWY4ZmNcdWZlZjVcdWZlZjdcdWZlZjlcdWZlZmJcdWZlZTNcdWZlZTdcdWZlZWNcdWZlZTlcdWZmZmQifSxpYm0xMDQ2OiJjcDEwNDYiLGNzaWJtMTA0NjoiY3AxMDQ2IixjcDExMjQ6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFceDgy'@; put 'XHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHUwNDAxXHUwNDAyXHUwNDkwXHUwNDA0XHUwNDA1XHUwNDA2XHUwNDA3XHUw'@; put 'NDA4XHUwNDA5XHUwNDBhXHUwNDBiXHUwNDBjXHhhZFx1MDQwZVx1MDQwZlx1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1'@; put 'MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1MDQyZVx1MDQyZlx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQz'@; put 'Zlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0ZFx1MDQ0ZVx1MDQ0Zlx1MjExNlx1MDQ1MVx1MDQ1Mlx1MDQ5MVx1MDQ1NFx1MDQ1NVx1MDQ1Nlx1MDQ1N1x1MDQ1OFx1MDQ1OVx1MDQ1YVx1'@; put 'MDQ1Ylx1MDQ1Y1x4YTdcdTA0NWVcdTA0NWYifSxpYm0xMTI0OiJjcDExMjQiLGNzaWJtMTEyNDoiY3AxMTI0IixjcDExMjU6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUwNDEwXHUwNDExXHUwNDEyXHUwNDEzXHUwNDE0XHUwNDE1XHUwNDE2XHUwNDE3XHUwNDE4XHUwNDE5XHUwNDFhXHUwNDFi'@; put 'XHUwNDFjXHUwNDFkXHUwNDFlXHUwNDFmXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5XHUwNDJhXHUwNDJiXHUwNDJjXHUwNDJkXHUwNDJlXHUwNDJmXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDM2XHUw'@; put 'NDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUyNTVjXHUyNTViXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJj'@; put 'XHUyNTFjXHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZiXHUyNTZhXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUy'@; put 'NTkwXHUyNTgwXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHUwNDRmXHUwNDAxXHUwNDUxXHUwNDkwXHUwNDkxXHUwNDA0XHUwNDU0XHUwNDA2XHUwNDU2XHUwNDA3XHUwNDU3'@; put 'XHhiN1x1MjIxYVx1MjExNlx4YTRcdTI1YTBceGEwIn0saWJtMTEyNToiY3AxMTI1Iixjc2libTExMjU6ImNwMTEyNSIsY3AxMTI5Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkw'@; put 'XHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx4YTFceGEyXHhhM1x4YTRceGE1XHhhNlx4YTdcdTAxNTNceGE5XHhhYVx4YWJceGFjXHhhZFx4YWVceGFmXHhiMFx4YjFceGIyXHhiM1x1MDE3OFx4YjVceGI2XHhiN1x1MDE1'@; put 'Mlx4YjlceGJhXHhiYlx4YmNceGJkXHhiZVx4YmZceGMwXHhjMVx4YzJcdTAxMDJceGM0XHhjNVx4YzZceGM3XHhjOFx4YzlceGNhXHhjYlx1MDMwMFx4Y2RceGNlXHhjZlx1MDExMFx4ZDFcdTAzMDlceGQzXHhkNFx1MDFhMFx4ZDZceGQ3XHhkOFx4ZDlceGRhXHhkYlx4ZGNcdTAxYWZcdTAz'@; put 'MDNceGRmXHhlMFx4ZTFceGUyXHUwMTAzXHhlNFx4ZTVceGU2XHhlN1x4ZThceGU5XHhlYVx4ZWJcdTAzMDFceGVkXHhlZVx4ZWZcdTAxMTFceGYxXHUwMzIzXHhmM1x4ZjRcdTAxYTFceGY2XHhmN1x4ZjhceGY5XHhmYVx4ZmJceGZjXHUwMWIwXHUyMGFiXHhmZiJ9LGlibTExMjk6ImNwMTEy'@; put 'OSIsY3NpYm0xMTI5OiJjcDExMjkiLGNwMTEzMzp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5'@; put 'Y1x4OWRceDllXHg5Zlx4YTBcdTBlODFcdTBlODJcdTBlODRcdTBlODdcdTBlODhcdTBlYWFcdTBlOGFcdTBlOGRcdTBlOTRcdTBlOTVcdTBlOTZcdTBlOTdcdTBlOTlcdTBlOWFcdTBlOWJcdTBlOWNcdTBlOWRcdTBlOWVcdTBlOWZcdTBlYTFcdTBlYTJcdTBlYTNcdTBlYTVcdTBlYTdcdTBl'@; put 'YWJcdTBlYWRcdTBlYWVcdWZmZmRcdWZmZmRcdWZmZmRcdTBlYWZcdTBlYjBcdTBlYjJcdTBlYjNcdTBlYjRcdTBlYjVcdTBlYjZcdTBlYjdcdTBlYjhcdTBlYjlcdTBlYmNcdTBlYjFcdTBlYmJcdTBlYmRcdWZmZmRcdWZmZmRcdWZmZmRcdTBlYzBcdTBlYzFcdTBlYzJcdTBlYzNcdTBlYzRc'@; put 'dTBlYzhcdTBlYzlcdTBlY2FcdTBlY2JcdTBlY2NcdTBlY2RcdTBlYzZcdWZmZmRcdTBlZGNcdTBlZGRcdTIwYWRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTBl'@; put 'ZDBcdTBlZDFcdTBlZDJcdTBlZDNcdTBlZDRcdTBlZDVcdTBlZDZcdTBlZDdcdTBlZDhcdTBlZDlcdWZmZmRcdWZmZmRceGEyXHhhY1x4YTZcdWZmZmQifSxpYm0xMTMzOiJjcDExMzMiLGNzaWJtMTEzMzoiY3AxMTMzIixjcDExNjE6e3R5cGU6Il9zYmNzIixjaGFyczoiXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHUwZTQ4XHUwZTAxXHUwZTAyXHUwZTAzXHUwZTA0XHUwZTA1XHUwZTA2XHUwZTA3XHUwZTA4XHUwZTA5XHUwZTBhXHUwZTBiXHUwZTBjXHUwZTBkXHUwZTBlXHUwZTBmXHUwZTEwXHUwZTExXHUwZTEyXHUwZTEzXHUwZTE0XHUwZTE1XHUwZTE2XHUwZTE3XHUwZTE4'@; put 'XHUwZTE5XHUwZTFhXHUwZTFiXHUwZTFjXHUwZTFkXHUwZTFlXHUwZTFmXHUwZTIwXHUwZTIxXHUwZTIyXHUwZTIzXHUwZTI0XHUwZTI1XHUwZTI2XHUwZTI3XHUwZTI4XHUwZTI5XHUwZTJhXHUwZTJiXHUwZTJjXHUwZTJkXHUwZTJlXHUwZTJmXHUwZTMwXHUwZTMxXHUwZTMyXHUwZTMzXHUw'@; put 'ZTM0XHUwZTM1XHUwZTM2XHUwZTM3XHUwZTM4XHUwZTM5XHUwZTNhXHUwZTQ5XHUwZTRhXHUwZTRiXHUyMGFjXHUwZTNmXHUwZTQwXHUwZTQxXHUwZTQyXHUwZTQzXHUwZTQ0XHUwZTQ1XHUwZTQ2XHUwZTQ3XHUwZTQ4XHUwZTQ5XHUwZTRhXHUwZTRiXHUwZTRjXHUwZTRkXHUwZTRlXHUwZTRm'@; put 'XHUwZTUwXHUwZTUxXHUwZTUyXHUwZTUzXHUwZTU0XHUwZTU1XHUwZTU2XHUwZTU3XHUwZTU4XHUwZTU5XHUwZTVhXHUwZTViXHhhMlx4YWNceGE2XHhhMCJ9LGlibTExNjE6ImNwMTE2MSIsY3NpYm0xMTYxOiJjcDExNjEiLGNwMTE2Mjp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTIwYWNceDgx'@; put 'XHg4Mlx4ODNceDg0XHUyMDI2XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4Zlx4OTBcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBcdTBlMDFcdTBlMDJcdTBlMDNcdTBlMDRc'@; put 'dTBlMDVcdTBlMDZcdTBlMDdcdTBlMDhcdTBlMDlcdTBlMGFcdTBlMGJcdTBlMGNcdTBlMGRcdTBlMGVcdTBlMGZcdTBlMTBcdTBlMTFcdTBlMTJcdTBlMTNcdTBlMTRcdTBlMTVcdTBlMTZcdTBlMTdcdTBlMThcdTBlMTlcdTBlMWFcdTBlMWJcdTBlMWNcdTBlMWRcdTBlMWVcdTBlMWZcdTBl'@; put 'MjBcdTBlMjFcdTBlMjJcdTBlMjNcdTBlMjRcdTBlMjVcdTBlMjZcdTBlMjdcdTBlMjhcdTBlMjlcdTBlMmFcdTBlMmJcdTBlMmNcdTBlMmRcdTBlMmVcdTBlMmZcdTBlMzBcdTBlMzFcdTBlMzJcdTBlMzNcdTBlMzRcdTBlMzVcdTBlMzZcdTBlMzdcdTBlMzhcdTBlMzlcdTBlM2FcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdTBlM2ZcdTBlNDBcdTBlNDFcdTBlNDJcdTBlNDNcdTBlNDRcdTBlNDVcdTBlNDZcdTBlNDdcdTBlNDhcdTBlNDlcdTBlNGFcdTBlNGJcdTBlNGNcdTBlNGRcdTBlNGVcdTBlNGZcdTBlNTBcdTBlNTFcdTBlNTJcdTBlNTNcdTBlNTRcdTBlNTVcdTBlNTZcdTBl'@; put 'NTdcdTBlNThcdTBlNTlcdTBlNWFcdTBlNWJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQifSxpYm0xMTYyOiJjcDExNjIiLGNzaWJtMTE2MjoiY3AxMTYyIixjcDExNjM6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhi'@; put 'XHg4Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHhhMVx4YTJceGEzXHUyMGFjXHhhNVx4YTZceGE3XHUwMTUzXHhhOVx4YWFceGFiXHhhY1x4YWRceGFlXHhhZlx4YjBceGIxXHhiMlx4YjNc'@; put 'dTAxNzhceGI1XHhiNlx4YjdcdTAxNTJceGI5XHhiYVx4YmJceGJjXHhiZFx4YmVceGJmXHhjMFx4YzFceGMyXHUwMTAyXHhjNFx4YzVceGM2XHhjN1x4YzhceGM5XHhjYVx4Y2JcdTAzMDBceGNkXHhjZVx4Y2ZcdTAxMTBceGQxXHUwMzA5XHhkM1x4ZDRcdTAxYTBceGQ2XHhkN1x4ZDhceGQ5'@; put 'XHhkYVx4ZGJceGRjXHUwMWFmXHUwMzAzXHhkZlx4ZTBceGUxXHhlMlx1MDEwM1x4ZTRceGU1XHhlNlx4ZTdceGU4XHhlOVx4ZWFceGViXHUwMzAxXHhlZFx4ZWVceGVmXHUwMTExXHhmMVx1MDMyM1x4ZjNceGY0XHUwMWExXHhmNlx4ZjdceGY4XHhmOVx4ZmFceGZiXHhmY1x1MDFiMFx1MjBh'@; put 'Ylx4ZmYifSxpYm0xMTYzOiJjcDExNjMiLGNzaWJtMTE2MzoiY3AxMTYzIixtYWNjcm9hdGlhbjp7dHlwZToiX3NiY3MiLGNoYXJzOiJceGM0XHhjNVx4YzdceGM5XHhkMVx4ZDZceGRjXHhlMVx4ZTBceGUyXHhlNFx4ZTNceGU1XHhlN1x4ZTlceGU4XHhlYVx4ZWJceGVkXHhlY1x4ZWVceGVm'@; put 'XHhmMVx4ZjNceGYyXHhmNFx4ZjZceGY1XHhmYVx4ZjlceGZiXHhmY1x1MjAyMFx4YjBceGEyXHhhM1x4YTdcdTIwMjJceGI2XHhkZlx4YWVcdTAxNjBcdTIxMjJceGI0XHhhOFx1MjI2MFx1MDE3ZFx4ZDhcdTIyMWVceGIxXHUyMjY0XHUyMjY1XHUyMjA2XHhiNVx1MjIwMlx1MjIxMVx1MjIw'@; put 'Zlx1MDE2MVx1MjIyYlx4YWFceGJhXHUyMTI2XHUwMTdlXHhmOFx4YmZceGExXHhhY1x1MjIxYVx1MDE5Mlx1MjI0OFx1MDEwNlx4YWJcdTAxMGNcdTIwMjZceGEwXHhjMFx4YzNceGQ1XHUwMTUyXHUwMTUzXHUwMTEwXHUyMDE0XHUyMDFjXHUyMDFkXHUyMDE4XHUyMDE5XHhmN1x1MjVjYVx1'@; put 'ZmZmZFx4YTlcdTIwNDRceGE0XHUyMDM5XHUyMDNhXHhjNlx4YmJcdTIwMTNceGI3XHUyMDFhXHUyMDFlXHUyMDMwXHhjMlx1MDEwN1x4YzFcdTAxMGRceGM4XHhjZFx4Y2VceGNmXHhjY1x4ZDNceGQ0XHUwMTExXHhkMlx4ZGFceGRiXHhkOVx1MDEzMVx1MDJjNlx1MDJkY1x4YWZcdTAzYzBc'@; put 'eGNiXHUwMmRhXHhiOFx4Y2FceGU2XHUwMmM3In0sbWFjY3lyaWxsaWM6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUwNDEwXHUwNDExXHUwNDEyXHUwNDEzXHUwNDE0XHUwNDE1XHUwNDE2XHUwNDE3XHUwNDE4XHUwNDE5XHUwNDFhXHUwNDFiXHUwNDFjXHUwNDFkXHUwNDFlXHUwNDFmXHUwNDIw'@; put 'XHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5XHUwNDJhXHUwNDJiXHUwNDJjXHUwNDJkXHUwNDJlXHUwNDJmXHUyMDIwXHhiMFx4YTJceGEzXHhhN1x1MjAyMlx4YjZcdTA0MDZceGFlXHhhOVx1MjEyMlx1MDQwMlx1MDQ1Mlx1MjI2MFx1MDQw'@; put 'M1x1MDQ1M1x1MjIxZVx4YjFcdTIyNjRcdTIyNjVcdTA0NTZceGI1XHUyMjAyXHUwNDA4XHUwNDA0XHUwNDU0XHUwNDA3XHUwNDU3XHUwNDA5XHUwNDU5XHUwNDBhXHUwNDVhXHUwNDU4XHUwNDA1XHhhY1x1MjIxYVx1MDE5Mlx1MjI0OFx1MjIwNlx4YWJceGJiXHUyMDI2XHhhMFx1MDQwYlx1'@; put 'MDQ1Ylx1MDQwY1x1MDQ1Y1x1MDQ1NVx1MjAxM1x1MjAxNFx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTIwMWVcdTA0MGVcdTA0NWVcdTA0MGZcdTA0NWZcdTIxMTZcdTA0MDFcdTA0NTFcdTA0NGZcdTA0MzBcdTA0MzFcdTA0MzJcdTA0MzNcdTA0MzRcdTA0MzVcdTA0MzZcdTA0Mzdc'@; put 'dTA0MzhcdTA0MzlcdTA0M2FcdTA0M2JcdTA0M2NcdTA0M2RcdTA0M2VcdTA0M2ZcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0NDRcdTA0NDVcdTA0NDZcdTA0NDdcdTA0NDhcdTA0NDlcdTA0NGFcdTA0NGJcdTA0NGNcdTA0NGRcdTA0NGVceGE0In0sbWFjZ3JlZWs6e3R5cGU6Il9zYmNz'@; put 'IixjaGFyczoiXHhjNFx4YjlceGIyXHhjOVx4YjNceGQ2XHhkY1x1MDM4NVx4ZTBceGUyXHhlNFx1MDM4NFx4YThceGU3XHhlOVx4ZThceGVhXHhlYlx4YTNcdTIxMjJceGVlXHhlZlx1MjAyMlx4YmRcdTIwMzBceGY0XHhmNlx4YTZceGFkXHhmOVx4ZmJceGZjXHUyMDIwXHUwMzkzXHUwMzk0'@; put 'XHUwMzk4XHUwMzliXHUwMzllXHUwM2EwXHhkZlx4YWVceGE5XHUwM2EzXHUwM2FhXHhhN1x1MjI2MFx4YjBcdTAzODdcdTAzOTFceGIxXHUyMjY0XHUyMjY1XHhhNVx1MDM5Mlx1MDM5NVx1MDM5Nlx1MDM5N1x1MDM5OVx1MDM5YVx1MDM5Y1x1MDNhNlx1MDNhYlx1MDNhOFx1MDNhOVx1MDNh'@; put 'Y1x1MDM5ZFx4YWNcdTAzOWZcdTAzYTFcdTIyNDhcdTAzYTRceGFiXHhiYlx1MjAyNlx4YTBcdTAzYTVcdTAzYTdcdTAzODZcdTAzODhcdTAxNTNcdTIwMTNcdTIwMTVcdTIwMWNcdTIwMWRcdTIwMThcdTIwMTlceGY3XHUwMzg5XHUwMzhhXHUwMzhjXHUwMzhlXHUwM2FkXHUwM2FlXHUwM2Fm'@; put 'XHUwM2NjXHUwMzhmXHUwM2NkXHUwM2IxXHUwM2IyXHUwM2M4XHUwM2I0XHUwM2I1XHUwM2M2XHUwM2IzXHUwM2I3XHUwM2I5XHUwM2JlXHUwM2JhXHUwM2JiXHUwM2JjXHUwM2JkXHUwM2JmXHUwM2MwXHUwM2NlXHUwM2MxXHUwM2MzXHUwM2M0XHUwM2I4XHUwM2M5XHUwM2MyXHUwM2M3XHUw'@; put 'M2M1XHUwM2I2XHUwM2NhXHUwM2NiXHUwMzkwXHUwM2IwXHVmZmZkIn0sbWFjaWNlbGFuZDp7dHlwZToiX3NiY3MiLGNoYXJzOiJceGM0XHhjNVx4YzdceGM5XHhkMVx4ZDZceGRjXHhlMVx4ZTBceGUyXHhlNFx4ZTNceGU1XHhlN1x4ZTlceGU4XHhlYVx4ZWJceGVkXHhlY1x4ZWVceGVmXHhm'@; put 'MVx4ZjNceGYyXHhmNFx4ZjZceGY1XHhmYVx4ZjlceGZiXHhmY1x4ZGRceGIwXHhhMlx4YTNceGE3XHUyMDIyXHhiNlx4ZGZceGFlXHhhOVx1MjEyMlx4YjRceGE4XHUyMjYwXHhjNlx4ZDhcdTIyMWVceGIxXHUyMjY0XHUyMjY1XHhhNVx4YjVcdTIyMDJcdTIyMTFcdTIyMGZcdTAzYzBcdTIy'@; put 'MmJceGFhXHhiYVx1MjEyNlx4ZTZceGY4XHhiZlx4YTFceGFjXHUyMjFhXHUwMTkyXHUyMjQ4XHUyMjA2XHhhYlx4YmJcdTIwMjZceGEwXHhjMFx4YzNceGQ1XHUwMTUyXHUwMTUzXHUyMDEzXHUyMDE0XHUyMDFjXHUyMDFkXHUyMDE4XHUyMDE5XHhmN1x1MjVjYVx4ZmZcdTAxNzhcdTIwNDRc'@; put 'eGE0XHhkMFx4ZjBceGRlXHhmZVx4ZmRceGI3XHUyMDFhXHUyMDFlXHUyMDMwXHhjMlx4Y2FceGMxXHhjYlx4YzhceGNkXHhjZVx4Y2ZceGNjXHhkM1x4ZDRcdWZmZmRceGQyXHhkYVx4ZGJceGQ5XHUwMTMxXHUwMmM2XHUwMmRjXHhhZlx1MDJkOFx1MDJkOVx1MDJkYVx4YjhcdTAyZGRcdTAy'@; put 'ZGJcdTAyYzcifSxtYWNyb21hbjp7dHlwZToiX3NiY3MiLGNoYXJzOiJceGM0XHhjNVx4YzdceGM5XHhkMVx4ZDZceGRjXHhlMVx4ZTBceGUyXHhlNFx4ZTNceGU1XHhlN1x4ZTlceGU4XHhlYVx4ZWJceGVkXHhlY1x4ZWVceGVmXHhmMVx4ZjNceGYyXHhmNFx4ZjZceGY1XHhmYVx4ZjlceGZi'@; put 'XHhmY1x1MjAyMFx4YjBceGEyXHhhM1x4YTdcdTIwMjJceGI2XHhkZlx4YWVceGE5XHUyMTIyXHhiNFx4YThcdTIyNjBceGM2XHhkOFx1MjIxZVx4YjFcdTIyNjRcdTIyNjVceGE1XHhiNVx1MjIwMlx1MjIxMVx1MjIwZlx1MDNjMFx1MjIyYlx4YWFceGJhXHUyMTI2XHhlNlx4ZjhceGJmXHhh'@; put 'MVx4YWNcdTIyMWFcdTAxOTJcdTIyNDhcdTIyMDZceGFiXHhiYlx1MjAyNlx4YTBceGMwXHhjM1x4ZDVcdTAxNTJcdTAxNTNcdTIwMTNcdTIwMTRcdTIwMWNcdTIwMWRcdTIwMThcdTIwMTlceGY3XHUyNWNhXHhmZlx1MDE3OFx1MjA0NFx4YTRcdTIwMzlcdTIwM2FcdWZiMDFcdWZiMDJcdTIw'@; put 'MjFceGI3XHUyMDFhXHUyMDFlXHUyMDMwXHhjMlx4Y2FceGMxXHhjYlx4YzhceGNkXHhjZVx4Y2ZceGNjXHhkM1x4ZDRcdWZmZmRceGQyXHhkYVx4ZGJceGQ5XHUwMTMxXHUwMmM2XHUwMmRjXHhhZlx1MDJkOFx1MDJkOVx1MDJkYVx4YjhcdTAyZGRcdTAyZGJcdTAyYzcifSxtYWNyb21hbmlh'@; put 'Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4YzRceGM1XHhjN1x4YzlceGQxXHhkNlx4ZGNceGUxXHhlMFx4ZTJceGU0XHhlM1x4ZTVceGU3XHhlOVx4ZThceGVhXHhlYlx4ZWRceGVjXHhlZVx4ZWZceGYxXHhmM1x4ZjJceGY0XHhmNlx4ZjVceGZhXHhmOVx4ZmJceGZjXHUyMDIwXHhiMFx4YTJc'@; put 'eGEzXHhhN1x1MjAyMlx4YjZceGRmXHhhZVx4YTlcdTIxMjJceGI0XHhhOFx1MjI2MFx1MDEwMlx1MDE1ZVx1MjIxZVx4YjFcdTIyNjRcdTIyNjVceGE1XHhiNVx1MjIwMlx1MjIxMVx1MjIwZlx1MDNjMFx1MjIyYlx4YWFceGJhXHUyMTI2XHUwMTAzXHUwMTVmXHhiZlx4YTFceGFjXHUyMjFh'@; put 'XHUwMTkyXHUyMjQ4XHUyMjA2XHhhYlx4YmJcdTIwMjZceGEwXHhjMFx4YzNceGQ1XHUwMTUyXHUwMTUzXHUyMDEzXHUyMDE0XHUyMDFjXHUyMDFkXHUyMDE4XHUyMDE5XHhmN1x1MjVjYVx4ZmZcdTAxNzhcdTIwNDRceGE0XHUyMDM5XHUyMDNhXHUwMTYyXHUwMTYzXHUyMDIxXHhiN1x1MjAx'@; put 'YVx1MjAxZVx1MjAzMFx4YzJceGNhXHhjMVx4Y2JceGM4XHhjZFx4Y2VceGNmXHhjY1x4ZDNceGQ0XHVmZmZkXHhkMlx4ZGFceGRiXHhkOVx1MDEzMVx1MDJjNlx1MDJkY1x4YWZcdTAyZDhcdTAyZDlcdTAyZGFceGI4XHUwMmRkXHUwMmRiXHUwMmM3In0sbWFjdGhhaTp7dHlwZToiX3NiY3Mi'@; put 'LGNoYXJzOiJceGFiXHhiYlx1MjAyNlx1Zjg4Y1x1Zjg4Zlx1Zjg5Mlx1Zjg5NVx1Zjg5OFx1Zjg4Ylx1Zjg4ZVx1Zjg5MVx1Zjg5NFx1Zjg5N1x1MjAxY1x1MjAxZFx1Zjg5OVx1ZmZmZFx1MjAyMlx1Zjg4NFx1Zjg4OVx1Zjg4NVx1Zjg4Nlx1Zjg4N1x1Zjg4OFx1Zjg4YVx1Zjg4ZFx1Zjg5'@; put 'MFx1Zjg5M1x1Zjg5Nlx1MjAxOFx1MjAxOVx1ZmZmZFx4YTBcdTBlMDFcdTBlMDJcdTBlMDNcdTBlMDRcdTBlMDVcdTBlMDZcdTBlMDdcdTBlMDhcdTBlMDlcdTBlMGFcdTBlMGJcdTBlMGNcdTBlMGRcdTBlMGVcdTBlMGZcdTBlMTBcdTBlMTFcdTBlMTJcdTBlMTNcdTBlMTRcdTBlMTVcdTBl'@; put 'MTZcdTBlMTdcdTBlMThcdTBlMTlcdTBlMWFcdTBlMWJcdTBlMWNcdTBlMWRcdTBlMWVcdTBlMWZcdTBlMjBcdTBlMjFcdTBlMjJcdTBlMjNcdTBlMjRcdTBlMjVcdTBlMjZcdTBlMjdcdTBlMjhcdTBlMjlcdTBlMmFcdTBlMmJcdTBlMmNcdTBlMmRcdTBlMmVcdTBlMmZcdTBlMzBcdTBlMzFc'@; put 'dTBlMzJcdTBlMzNcdTBlMzRcdTBlMzVcdTBlMzZcdTBlMzdcdTBlMzhcdTBlMzlcdTBlM2FcdWZlZmZcdTIwMGJcdTIwMTNcdTIwMTRcdTBlM2ZcdTBlNDBcdTBlNDFcdTBlNDJcdTBlNDNcdTBlNDRcdTBlNDVcdTBlNDZcdTBlNDdcdTBlNDhcdTBlNDlcdTBlNGFcdTBlNGJcdTBlNGNcdTBl'@; put 'NGRcdTIxMjJcdTBlNGZcdTBlNTBcdTBlNTFcdTBlNTJcdTBlNTNcdTBlNTRcdTBlNTVcdTBlNTZcdTBlNTdcdTBlNThcdTBlNTlceGFlXHhhOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCJ9LG1hY3R1cmtpc2g6e3R5cGU6Il9zYmNzIixjaGFyczoiXHhjNFx4YzVceGM3XHhjOVx4ZDFceGQ2'@; put 'XHhkY1x4ZTFceGUwXHhlMlx4ZTRceGUzXHhlNVx4ZTdceGU5XHhlOFx4ZWFceGViXHhlZFx4ZWNceGVlXHhlZlx4ZjFceGYzXHhmMlx4ZjRceGY2XHhmNVx4ZmFceGY5XHhmYlx4ZmNcdTIwMjBceGIwXHhhMlx4YTNceGE3XHUyMDIyXHhiNlx4ZGZceGFlXHhhOVx1MjEyMlx4YjRceGE4XHUy'@; put 'MjYwXHhjNlx4ZDhcdTIyMWVceGIxXHUyMjY0XHUyMjY1XHhhNVx4YjVcdTIyMDJcdTIyMTFcdTIyMGZcdTAzYzBcdTIyMmJceGFhXHhiYVx1MjEyNlx4ZTZceGY4XHhiZlx4YTFceGFjXHUyMjFhXHUwMTkyXHUyMjQ4XHUyMjA2XHhhYlx4YmJcdTIwMjZceGEwXHhjMFx4YzNceGQ1XHUwMTUy'@; put 'XHUwMTUzXHUyMDEzXHUyMDE0XHUyMDFjXHUyMDFkXHUyMDE4XHUyMDE5XHhmN1x1MjVjYVx4ZmZcdTAxNzhcdTAxMWVcdTAxMWZcdTAxMzBcdTAxMzFcdTAxNWVcdTAxNWZcdTIwMjFceGI3XHUyMDFhXHUyMDFlXHUyMDMwXHhjMlx4Y2FceGMxXHhjYlx4YzhceGNkXHhjZVx4Y2ZceGNjXHhk'@; put 'M1x4ZDRcdWZmZmRceGQyXHhkYVx4ZGJceGQ5XHVmZmZkXHUwMmM2XHUwMmRjXHhhZlx1MDJkOFx1MDJkOVx1MDJkYVx4YjhcdTAyZGRcdTAyZGJcdTAyYzcifSxtYWN1a3JhaW5lOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQx'@; put 'Nlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1MDQyZVx1MDQyZlx1MjAyMFx4YjBcdTA0'@; put 'OTBceGEzXHhhN1x1MjAyMlx4YjZcdTA0MDZceGFlXHhhOVx1MjEyMlx1MDQwMlx1MDQ1Mlx1MjI2MFx1MDQwM1x1MDQ1M1x1MjIxZVx4YjFcdTIyNjRcdTIyNjVcdTA0NTZceGI1XHUwNDkxXHUwNDA4XHUwNDA0XHUwNDU0XHUwNDA3XHUwNDU3XHUwNDA5XHUwNDU5XHUwNDBhXHUwNDVhXHUw'@; put 'NDU4XHUwNDA1XHhhY1x1MjIxYVx1MDE5Mlx1MjI0OFx1MjIwNlx4YWJceGJiXHUyMDI2XHhhMFx1MDQwYlx1MDQ1Ylx1MDQwY1x1MDQ1Y1x1MDQ1NVx1MjAxM1x1MjAxNFx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTIwMWVcdTA0MGVcdTA0NWVcdTA0MGZcdTA0NWZcdTIxMTZcdTA0'@; put 'MDFcdTA0NTFcdTA0NGZcdTA0MzBcdTA0MzFcdTA0MzJcdTA0MzNcdTA0MzRcdTA0MzVcdTA0MzZcdTA0MzdcdTA0MzhcdTA0MzlcdTA0M2FcdTA0M2JcdTA0M2NcdTA0M2RcdTA0M2VcdTA0M2ZcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0NDRcdTA0NDVcdTA0NDZcdTA0NDdcdTA0NDhc'@; put 'dTA0NDlcdTA0NGFcdTA0NGJcdTA0NGNcdTA0NGRcdTA0NGVceGE0In0sa29pOHI6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUyNTAwXHUyNTAyXHUyNTBjXHUyNTEwXHUyNTE0XHUyNTE4XHUyNTFjXHUyNTI0XHUyNTJjXHUyNTM0XHUyNTNjXHUyNTgwXHUyNTg0XHUyNTg4XHUyNThjXHUyNTkw'@; put 'XHUyNTkxXHUyNTkyXHUyNTkzXHUyMzIwXHUyNWEwXHUyMjE5XHUyMjFhXHUyMjQ4XHUyMjY0XHUyMjY1XHhhMFx1MjMyMVx4YjBceGIyXHhiN1x4ZjdcdTI1NTBcdTI1NTFcdTI1NTJcdTA0NTFcdTI1NTNcdTI1NTRcdTI1NTVcdTI1NTZcdTI1NTdcdTI1NThcdTI1NTlcdTI1NWFcdTI1NWJc'@; put 'dTI1NWNcdTI1NWRcdTI1NWVcdTI1NWZcdTI1NjBcdTI1NjFcdTA0MDFcdTI1NjJcdTI1NjNcdTI1NjRcdTI1NjVcdTI1NjZcdTI1NjdcdTI1NjhcdTI1NjlcdTI1NmFcdTI1NmJcdTI1NmNceGE5XHUwNDRlXHUwNDMwXHUwNDMxXHUwNDQ2XHUwNDM0XHUwNDM1XHUwNDQ0XHUwNDMzXHUwNDQ1'@; put 'XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUwNDRmXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDM2XHUwNDMyXHUwNDRjXHUwNDRiXHUwNDM3XHUwNDQ4XHUwNDRkXHUwNDQ5XHUwNDQ3XHUwNDRhXHUwNDJlXHUwNDEwXHUwNDExXHUwNDI2XHUw'@; put 'NDE0XHUwNDE1XHUwNDI0XHUwNDEzXHUwNDI1XHUwNDE4XHUwNDE5XHUwNDFhXHUwNDFiXHUwNDFjXHUwNDFkXHUwNDFlXHUwNDFmXHUwNDJmXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDE2XHUwNDEyXHUwNDJjXHUwNDJiXHUwNDE3XHUwNDI4XHUwNDJkXHUwNDI5XHUwNDI3XHUwNDJh'@; put 'In0sa29pOHU6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUyNTAwXHUyNTAyXHUyNTBjXHUyNTEwXHUyNTE0XHUyNTE4XHUyNTFjXHUyNTI0XHUyNTJjXHUyNTM0XHUyNTNjXHUyNTgwXHUyNTg0XHUyNTg4XHUyNThjXHUyNTkwXHUyNTkxXHUyNTkyXHUyNTkzXHUyMzIwXHUyNWEwXHUyMjE5XHUy'@; put 'MjFhXHUyMjQ4XHUyMjY0XHUyMjY1XHhhMFx1MjMyMVx4YjBceGIyXHhiN1x4ZjdcdTI1NTBcdTI1NTFcdTI1NTJcdTA0NTFcdTA0NTRcdTI1NTRcdTA0NTZcdTA0NTdcdTI1NTdcdTI1NThcdTI1NTlcdTI1NWFcdTI1NWJcdTA0OTFcdTI1NWRcdTI1NWVcdTI1NWZcdTI1NjBcdTI1NjFcdTA0'@; put 'MDFcdTA0MDRcdTI1NjNcdTA0MDZcdTA0MDdcdTI1NjZcdTI1NjdcdTI1NjhcdTI1NjlcdTI1NmFcdTA0OTBcdTI1NmNceGE5XHUwNDRlXHUwNDMwXHUwNDMxXHUwNDQ2XHUwNDM0XHUwNDM1XHUwNDQ0XHUwNDMzXHUwNDQ1XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUw'@; put 'NDNlXHUwNDNmXHUwNDRmXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDM2XHUwNDMyXHUwNDRjXHUwNDRiXHUwNDM3XHUwNDQ4XHUwNDRkXHUwNDQ5XHUwNDQ3XHUwNDRhXHUwNDJlXHUwNDEwXHUwNDExXHUwNDI2XHUwNDE0XHUwNDE1XHUwNDI0XHUwNDEzXHUwNDI1XHUwNDE4XHUwNDE5'@; put 'XHUwNDFhXHUwNDFiXHUwNDFjXHUwNDFkXHUwNDFlXHUwNDFmXHUwNDJmXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDE2XHUwNDEyXHUwNDJjXHUwNDJiXHUwNDE3XHUwNDI4XHUwNDJkXHUwNDI5XHUwNDI3XHUwNDJhIn0sa29pOHJ1Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MjUwMFx1'@; put 'MjUwMlx1MjUwY1x1MjUxMFx1MjUxNFx1MjUxOFx1MjUxY1x1MjUyNFx1MjUyY1x1MjUzNFx1MjUzY1x1MjU4MFx1MjU4NFx1MjU4OFx1MjU4Y1x1MjU5MFx1MjU5MVx1MjU5Mlx1MjU5M1x1MjMyMFx1MjVhMFx1MjIxOVx1MjIxYVx1MjI0OFx1MjI2NFx1MjI2NVx4YTBcdTIzMjFceGIwXHhi'@; put 'Mlx4YjdceGY3XHUyNTUwXHUyNTUxXHUyNTUyXHUwNDUxXHUwNDU0XHUyNTU0XHUwNDU2XHUwNDU3XHUyNTU3XHUyNTU4XHUyNTU5XHUyNTVhXHUyNTViXHUwNDkxXHUwNDVlXHUyNTVlXHUyNTVmXHUyNTYwXHUyNTYxXHUwNDAxXHUwNDA0XHUyNTYzXHUwNDA2XHUwNDA3XHUyNTY2XHUyNTY3'@; put 'XHUyNTY4XHUyNTY5XHUyNTZhXHUwNDkwXHUwNDBlXHhhOVx1MDQ0ZVx1MDQzMFx1MDQzMVx1MDQ0Nlx1MDQzNFx1MDQzNVx1MDQ0NFx1MDQzM1x1MDQ0NVx1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MDQ0Zlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0'@; put 'M1x1MDQzNlx1MDQzMlx1MDQ0Y1x1MDQ0Ylx1MDQzN1x1MDQ0OFx1MDQ0ZFx1MDQ0OVx1MDQ0N1x1MDQ0YVx1MDQyZVx1MDQxMFx1MDQxMVx1MDQyNlx1MDQxNFx1MDQxNVx1MDQyNFx1MDQxM1x1MDQyNVx1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1'@; put 'MDQyZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQxNlx1MDQxMlx1MDQyY1x1MDQyYlx1MDQxN1x1MDQyOFx1MDQyZFx1MDQyOVx1MDQyN1x1MDQyYSJ9LGtvaTh0Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MDQ5Ylx1MDQ5M1x1MjAxYVx1MDQ5Mlx1MjAxZVx1MjAyNlx1MjAyMFx1MjAy'@; put 'MVx1ZmZmZFx1MjAzMFx1MDRiM1x1MjAzOVx1MDRiMlx1MDRiN1x1MDRiNlx1ZmZmZFx1MDQ5YVx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1ZmZmZFx1MjEyMlx1ZmZmZFx1MjAzYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDRlZlx1MDRlZVx1'@; put 'MDQ1MVx4YTRcdTA0ZTNceGE2XHhhN1x1ZmZmZFx1ZmZmZFx1ZmZmZFx4YWJceGFjXHhhZFx4YWVcdWZmZmRceGIwXHhiMVx4YjJcdTA0MDFcdWZmZmRcdTA0ZTJceGI2XHhiN1x1ZmZmZFx1MjExNlx1ZmZmZFx4YmJcdWZmZmRcdWZmZmRcdWZmZmRceGE5XHUwNDRlXHUwNDMwXHUwNDMxXHUw'@; put 'NDQ2XHUwNDM0XHUwNDM1XHUwNDQ0XHUwNDMzXHUwNDQ1XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUwNDRmXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDM2XHUwNDMyXHUwNDRjXHUwNDRiXHUwNDM3XHUwNDQ4XHUwNDRkXHUwNDQ5XHUwNDQ3'@; put 'XHUwNDRhXHUwNDJlXHUwNDEwXHUwNDExXHUwNDI2XHUwNDE0XHUwNDE1XHUwNDI0XHUwNDEzXHUwNDI1XHUwNDE4XHUwNDE5XHUwNDFhXHUwNDFiXHUwNDFjXHUwNDFkXHUwNDFlXHUwNDFmXHUwNDJmXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDE2XHUwNDEyXHUwNDJjXHUwNDJiXHUw'@; put 'NDE3XHUwNDI4XHUwNDJkXHUwNDI5XHUwNDI3XHUwNDJhIn0sYXJtc2NpaTg6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5'@; put 'OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHVmZmZkXHUwNTg3XHUwNTg5KShceGJiXHhhYlx1MjAxNC5cdTA1NWQsLVx1MDU4YVx1MjAyNlx1MDU1Y1x1MDU1Ylx1MDU1ZVx1MDUzMVx1MDU2MVx1MDUzMlx1MDU2Mlx1MDUzM1x1MDU2M1x1MDUzNFx1MDU2NFx1MDUzNVx1MDU2'@; put 'NVx1MDUzNlx1MDU2Nlx1MDUzN1x1MDU2N1x1MDUzOFx1MDU2OFx1MDUzOVx1MDU2OVx1MDUzYVx1MDU2YVx1MDUzYlx1MDU2Ylx1MDUzY1x1MDU2Y1x1MDUzZFx1MDU2ZFx1MDUzZVx1MDU2ZVx1MDUzZlx1MDU2Zlx1MDU0MFx1MDU3MFx1MDU0MVx1MDU3MVx1MDU0Mlx1MDU3Mlx1MDU0M1x1'@; put 'MDU3M1x1MDU0NFx1MDU3NFx1MDU0NVx1MDU3NVx1MDU0Nlx1MDU3Nlx1MDU0N1x1MDU3N1x1MDU0OFx1MDU3OFx1MDU0OVx1MDU3OVx1MDU0YVx1MDU3YVx1MDU0Ylx1MDU3Ylx1MDU0Y1x1MDU3Y1x1MDU0ZFx1MDU3ZFx1MDU0ZVx1MDU3ZVx1MDU0Zlx1MDU3Zlx1MDU1MFx1MDU4MFx1MDU1'@; put 'MVx1MDU4MVx1MDU1Mlx1MDU4Mlx1MDU1M1x1MDU4M1x1MDU1NFx1MDU4NFx1MDU1NVx1MDU4NVx1MDU1Nlx1MDU4Nlx1MDU1YVx1ZmZmZCJ9LHJrMTA0ODp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTA0MDJcdTA0MDNcdTIwMWFcdTA0NTNcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdTIwYWNc'@; put 'dTIwMzBcdTA0MDlcdTIwMzlcdTA0MGFcdTA0OWFcdTA0YmFcdTA0MGZcdTA0NTJcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdWZmZmRcdTIxMjJcdTA0NTlcdTIwM2FcdTA0NWFcdTA0OWJcdTA0YmJcdTA0NWZceGEwXHUwNGIwXHUwNGIxXHUwNGQ4XHhhNFx1'@; put 'MDRlOFx4YTZceGE3XHUwNDAxXHhhOVx1MDQ5Mlx4YWJceGFjXHhhZFx4YWVcdTA0YWVceGIwXHhiMVx1MDQwNlx1MDQ1Nlx1MDRlOVx4YjVceGI2XHhiN1x1MDQ1MVx1MjExNlx1MDQ5M1x4YmJcdTA0ZDlcdTA0YTJcdTA0YTNcdTA0YWZcdTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0MTRc'@; put 'dTA0MTVcdTA0MTZcdTA0MTdcdTA0MThcdTA0MTlcdTA0MWFcdTA0MWJcdTA0MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0MjZcdTA0MjdcdTA0MjhcdTA0MjlcdTA0MmFcdTA0MmJcdTA0MmNcdTA0MmRcdTA0MmVcdTA0MmZcdTA0'@; put 'MzBcdTA0MzFcdTA0MzJcdTA0MzNcdTA0MzRcdTA0MzVcdTA0MzZcdTA0MzdcdTA0MzhcdTA0MzlcdTA0M2FcdTA0M2JcdTA0M2NcdTA0M2RcdTA0M2VcdTA0M2ZcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0NDRcdTA0NDVcdTA0NDZcdTA0NDdcdTA0NDhcdTA0NDlcdTA0NGFcdTA0NGJc'@; put 'dTA0NGNcdTA0NGRcdTA0NGVcdTA0NGYifSx0Y3ZuOnt0eXBlOiJfc2JjcyIsY2hhcnM6IlwwXHhkYVx1MWVlNFx4MDNcdTFlZWFcdTFlZWNcdTFlZWVceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHUxZWU4XHUxZWYwXHUxZWYyXHUxZWY2XHUxZWY4XHhkZFx1MWVmNFx4MThceDE5XHgx'@; put 'YVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZceGMwXHUxZWEyXHhjM1x4YzFcdTFlYTBcdTFlYjZcdTFlYWNceGM4XHUx'@; put 'ZWJhXHUxZWJjXHhjOVx1MWViOFx1MWVjNlx4Y2NcdTFlYzhcdTAxMjhceGNkXHUxZWNhXHhkMlx1MWVjZVx4ZDVceGQzXHUxZWNjXHUxZWQ4XHUxZWRjXHUxZWRlXHUxZWUwXHUxZWRhXHUxZWUyXHhkOVx1MWVlNlx1MDE2OFx4YTBcdTAxMDJceGMyXHhjYVx4ZDRcdTAxYTBcdTAxYWZcdTAx'@; put 'MTBcdTAxMDNceGUyXHhlYVx4ZjRcdTAxYTFcdTAxYjBcdTAxMTFcdTFlYjBcdTAzMDBcdTAzMDlcdTAzMDNcdTAzMDFcdTAzMjNceGUwXHUxZWEzXHhlM1x4ZTFcdTFlYTFcdTFlYjJcdTFlYjFcdTFlYjNcdTFlYjVcdTFlYWZcdTFlYjRcdTFlYWVcdTFlYTZcdTFlYThcdTFlYWFcdTFlYTRc'@; put 'dTFlYzBcdTFlYjdcdTFlYTdcdTFlYTlcdTFlYWJcdTFlYTVcdTFlYWRceGU4XHUxZWMyXHUxZWJiXHUxZWJkXHhlOVx1MWViOVx1MWVjMVx1MWVjM1x1MWVjNVx1MWViZlx1MWVjN1x4ZWNcdTFlYzlcdTFlYzRcdTFlYmVcdTFlZDJcdTAxMjlceGVkXHUxZWNiXHhmMlx1MWVkNFx1MWVjZlx4'@; put 'ZjVceGYzXHUxZWNkXHUxZWQzXHUxZWQ1XHUxZWQ3XHUxZWQxXHUxZWQ5XHUxZWRkXHUxZWRmXHUxZWUxXHUxZWRiXHUxZWUzXHhmOVx1MWVkNlx1MWVlN1x1MDE2OVx4ZmFcdTFlZTVcdTFlZWJcdTFlZWRcdTFlZWZcdTFlZTlcdTFlZjFcdTFlZjNcdTFlZjdcdTFlZjlceGZkXHUxZWY1XHUx'@; put 'ZWQwIn0sZ2VvcmdpYW5hY2FkZW15Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHUyMDFhXHUwMTkyXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUwMmM2XHUyMDMwXHUwMTYwXHUyMDM5XHUwMTUyXHg4ZFx4OGVceDhmXHg5MFx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1'@; put 'MjAxM1x1MjAxNFx1MDJkY1x1MjEyMlx1MDE2MVx1MjAzYVx1MDE1M1x4OWRceDllXHUwMTc4XHhhMFx4YTFceGEyXHhhM1x4YTRceGE1XHhhNlx4YTdceGE4XHhhOVx4YWFceGFiXHhhY1x4YWRceGFlXHhhZlx4YjBceGIxXHhiMlx4YjNceGI0XHhiNVx4YjZceGI3XHhiOFx4YjlceGJhXHhi'@; put 'Ylx4YmNceGJkXHhiZVx4YmZcdTEwZDBcdTEwZDFcdTEwZDJcdTEwZDNcdTEwZDRcdTEwZDVcdTEwZDZcdTEwZDdcdTEwZDhcdTEwZDlcdTEwZGFcdTEwZGJcdTEwZGNcdTEwZGRcdTEwZGVcdTEwZGZcdTEwZTBcdTEwZTFcdTEwZTJcdTEwZTNcdTEwZTRcdTEwZTVcdTEwZTZcdTEwZTdcdTEw'@; put 'ZThcdTEwZTlcdTEwZWFcdTEwZWJcdTEwZWNcdTEwZWRcdTEwZWVcdTEwZWZcdTEwZjBcdTEwZjFcdTEwZjJcdTEwZjNcdTEwZjRcdTEwZjVcdTEwZjZceGU3XHhlOFx4ZTlceGVhXHhlYlx4ZWNceGVkXHhlZVx4ZWZceGYwXHhmMVx4ZjJceGYzXHhmNFx4ZjVceGY2XHhmN1x4ZjhceGY5XHhm'@; put 'YVx4ZmJceGZjXHhmZFx4ZmVceGZmIn0sZ2VvcmdpYW5wczp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx1MjAxYVx1MDE5Mlx1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1MDJjNlx1MjAzMFx1MDE2MFx1MjAzOVx1MDE1Mlx4OGRceDhlXHg4Zlx4OTBcdTIwMThcdTIwMTlcdTIwMWNc'@; put 'dTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdTAyZGNcdTIxMjJcdTAxNjFcdTIwM2FcdTAxNTNceDlkXHg5ZVx1MDE3OFx4YTBceGExXHhhMlx4YTNceGE0XHhhNVx4YTZceGE3XHhhOFx4YTlceGFhXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4'@; put 'YjhceGI5XHhiYVx4YmJceGJjXHhiZFx4YmVceGJmXHUxMGQwXHUxMGQxXHUxMGQyXHUxMGQzXHUxMGQ0XHUxMGQ1XHUxMGQ2XHUxMGYxXHUxMGQ3XHUxMGQ4XHUxMGQ5XHUxMGRhXHUxMGRiXHUxMGRjXHUxMGYyXHUxMGRkXHUxMGRlXHUxMGRmXHUxMGUwXHUxMGUxXHUxMGUyXHUxMGYzXHUx'@; put 'MGUzXHUxMGU0XHUxMGU1XHUxMGU2XHUxMGU3XHUxMGU4XHUxMGU5XHUxMGVhXHUxMGViXHUxMGVjXHUxMGVkXHUxMGVlXHUxMGY0XHUxMGVmXHUxMGYwXHUxMGY1XHhlNlx4ZTdceGU4XHhlOVx4ZWFceGViXHhlY1x4ZWRceGVlXHhlZlx4ZjBceGYxXHhmMlx4ZjNceGY0XHhmNVx4ZjZceGY3'@; put 'XHhmOFx4ZjlceGZhXHhmYlx4ZmNceGZkXHhmZVx4ZmYifSxwdDE1NDp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTA0OTZcdTA0OTJcdTA0ZWVcdTA0OTNcdTIwMWVcdTIwMjZcdTA0YjZcdTA0YWVcdTA0YjJcdTA0YWZcdTA0YTBcdTA0ZTJcdTA0YTJcdTA0OWFcdTA0YmFcdTA0YjhcdTA0OTdc'@; put 'dTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdTA0YjNcdTA0YjdcdTA0YTFcdTA0ZTNcdTA0YTNcdTA0OWJcdTA0YmJcdTA0YjlceGEwXHUwNDBlXHUwNDVlXHUwNDA4XHUwNGU4XHUwNDk4XHUwNGIwXHhhN1x1MDQwMVx4YTlcdTA0ZDhceGFiXHhhY1x1MDRlZlx4'@; put 'YWVcdTA0OWNceGIwXHUwNGIxXHUwNDA2XHUwNDU2XHUwNDk5XHUwNGU5XHhiNlx4YjdcdTA0NTFcdTIxMTZcdTA0ZDlceGJiXHUwNDU4XHUwNGFhXHUwNGFiXHUwNDlkXHUwNDEwXHUwNDExXHUwNDEyXHUwNDEzXHUwNDE0XHUwNDE1XHUwNDE2XHUwNDE3XHUwNDE4XHUwNDE5XHUwNDFhXHUw'@; put 'NDFiXHUwNDFjXHUwNDFkXHUwNDFlXHUwNDFmXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5XHUwNDJhXHUwNDJiXHUwNDJjXHUwNDJkXHUwNDJlXHUwNDJmXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDM2'@; put 'XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHUwNDRmIn0sdmlzY2lpOnt0eXBl'@; put 'OiJfc2JjcyIsY2hhcnM6IlwwXHgwMVx1MWViMlx4MDNceDA0XHUxZWI0XHUxZWFhXHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x1MWVmNlx4MTVceDE2XHgxN1x4MThcdTFlZjhceDFhXHgxYlx4MWNceDFkXHUxZWY0XHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1'@; put 'Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHUxZWEwXHUxZWFlXHUxZWIwXHUxZWI2XHUxZWE0XHUxZWE2XHUxZWE4XHUxZWFjXHUxZWJjXHUxZWI4XHUxZWJlXHUxZWMwXHUxZWMyXHUxZWM0XHUx'@; put 'ZWM2XHUxZWQwXHUxZWQyXHUxZWQ0XHUxZWQ2XHUxZWQ4XHUxZWUyXHUxZWRhXHUxZWRjXHUxZWRlXHUxZWNhXHUxZWNlXHUxZWNjXHUxZWM4XHUxZWU2XHUwMTY4XHUxZWU0XHUxZWYyXHhkNVx1MWVhZlx1MWViMVx1MWViN1x1MWVhNVx1MWVhN1x1MWVhOVx1MWVhZFx1MWViZFx1MWViOVx1'@; put 'MWViZlx1MWVjMVx1MWVjM1x1MWVjNVx1MWVjN1x1MWVkMVx1MWVkM1x1MWVkNVx1MWVkN1x1MWVlMFx1MDFhMFx1MWVkOVx1MWVkZFx1MWVkZlx1MWVjYlx1MWVmMFx1MWVlOFx1MWVlYVx1MWVlY1x1MDFhMVx1MWVkYlx1MDFhZlx4YzBceGMxXHhjMlx4YzNcdTFlYTJcdTAxMDJcdTFlYjNc'@; put 'dTFlYjVceGM4XHhjOVx4Y2FcdTFlYmFceGNjXHhjZFx1MDEyOFx1MWVmM1x1MDExMFx1MWVlOVx4ZDJceGQzXHhkNFx1MWVhMVx1MWVmN1x1MWVlYlx1MWVlZFx4ZDlceGRhXHUxZWY5XHUxZWY1XHhkZFx1MWVlMVx1MDFiMFx4ZTBceGUxXHhlMlx4ZTNcdTFlYTNcdTAxMDNcdTFlZWZcdTFl'@; put 'YWJceGU4XHhlOVx4ZWFcdTFlYmJceGVjXHhlZFx1MDEyOVx1MWVjOVx1MDExMVx1MWVmMVx4ZjJceGYzXHhmNFx4ZjVcdTFlY2ZcdTFlY2RcdTFlZTVceGY5XHhmYVx1MDE2OVx1MWVlN1x4ZmRcdTFlZTNcdTFlZWUifSxpc282NDZjbjp7dHlwZToiX3NiY3MiLGNoYXJzOiJcMFx4MDFceDAy'@; put 'XHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiI1x4YTUlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldY'@; put 'WVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1cdTIwM2VceDdmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIn0saXNvNjQ2'@; put 'anA6e3R5cGU6Il9zYmNzIixjaGFyczoiXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5'@; put 'Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1x4YTVdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1cdTIwM2VceDdmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm'@; put 'ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk'@; put 'XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIn0saHByb21hbjg6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlh'@; put 'XHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHhjMFx4YzJceGM4XHhjYVx4Y2JceGNlXHhjZlx4YjRcdTAyY2JcdTAyYzZceGE4XHUwMmRjXHhkOVx4ZGJcdTIwYTRceGFmXHhkZFx4ZmRceGIwXHhjN1x4ZTdceGQxXHhmMVx4YTFceGJmXHhhNFx4YTNceGE1XHhhN1x1MDE5Mlx4YTJceGUyXHhl'@; put 'YVx4ZjRceGZiXHhlMVx4ZTlceGYzXHhmYVx4ZTBceGU4XHhmMlx4ZjlceGU0XHhlYlx4ZjZceGZjXHhjNVx4ZWVceGQ4XHhjNlx4ZTVceGVkXHhmOFx4ZTZceGM0XHhlY1x4ZDZceGRjXHhjOVx4ZWZceGRmXHhkNFx4YzFceGMzXHhlM1x4ZDBceGYwXHhjZFx4Y2NceGQzXHhkMlx4ZDVceGY1'@; put 'XHUwMTYwXHUwMTYxXHhkYVx1MDE3OFx4ZmZceGRlXHhmZVx4YjdceGI1XHhiNlx4YmVcdTIwMTRceGJjXHhiZFx4YWFceGJhXHhhYlx1MjVhMFx4YmJceGIxXHVmZmZkIn0sbWFjaW50b3NoOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4YzRceGM1XHhjN1x4YzlceGQxXHhkNlx4ZGNceGUxXHhl'@; put 'MFx4ZTJceGU0XHhlM1x4ZTVceGU3XHhlOVx4ZThceGVhXHhlYlx4ZWRceGVjXHhlZVx4ZWZceGYxXHhmM1x4ZjJceGY0XHhmNlx4ZjVceGZhXHhmOVx4ZmJceGZjXHUyMDIwXHhiMFx4YTJceGEzXHhhN1x1MjAyMlx4YjZceGRmXHhhZVx4YTlcdTIxMjJceGI0XHhhOFx1MjI2MFx4YzZceGQ4'@; put 'XHUyMjFlXHhiMVx1MjI2NFx1MjI2NVx4YTVceGI1XHUyMjAyXHUyMjExXHUyMjBmXHUwM2MwXHUyMjJiXHhhYVx4YmFcdTIxMjZceGU2XHhmOFx4YmZceGExXHhhY1x1MjIxYVx1MDE5Mlx1MjI0OFx1MjIwNlx4YWJceGJiXHUyMDI2XHhhMFx4YzBceGMzXHhkNVx1MDE1Mlx1MDE1M1x1MjAx'@; put 'M1x1MjAxNFx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTI1Y2FceGZmXHUwMTc4XHUyMDQ0XHhhNFx1MjAzOVx1MjAzYVx1ZmIwMVx1ZmIwMlx1MjAyMVx4YjdcdTIwMWFcdTIwMWVcdTIwMzBceGMyXHhjYVx4YzFceGNiXHhjOFx4Y2RceGNlXHhjZlx4Y2NceGQzXHhkNFx1ZmZmZFx4'@; put 'ZDJceGRhXHhkYlx4ZDlcdTAxMzFcdTAyYzZcdTAyZGNceGFmXHUwMmQ4XHUwMmQ5XHUwMmRhXHhiOFx1MDJkZFx1MDJkYlx1MDJjNyJ9LGFzY2lpOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1'@; put 'ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm'@; put 'ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCJ9LHRpczYyMDp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTBlMDFcdTBlMDJcdTBlMDNcdTBlMDRcdTBlMDVcdTBlMDZcdTBlMDdcdTBlMDhcdTBl'@; put 'MDlcdTBlMGFcdTBlMGJcdTBlMGNcdTBlMGRcdTBlMGVcdTBlMGZcdTBlMTBcdTBlMTFcdTBlMTJcdTBlMTNcdTBlMTRcdTBlMTVcdTBlMTZcdTBlMTdcdTBlMThcdTBlMTlcdTBlMWFcdTBlMWJcdTBlMWNcdTBlMWRcdTBlMWVcdTBlMWZcdTBlMjBcdTBlMjFcdTBlMjJcdTBlMjNcdTBlMjRc'@; put 'dTBlMjVcdTBlMjZcdTBlMjdcdTBlMjhcdTBlMjlcdTBlMmFcdTBlMmJcdTBlMmNcdTBlMmRcdTBlMmVcdTBlMmZcdTBlMzBcdTBlMzFcdTBlMzJcdTBlMzNcdTBlMzRcdTBlMzVcdTBlMzZcdTBlMzdcdTBlMzhcdTBlMzlcdTBlM2FcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTBlM2ZcdTBl'@; put 'NDBcdTBlNDFcdTBlNDJcdTBlNDNcdTBlNDRcdTBlNDVcdTBlNDZcdTBlNDdcdTBlNDhcdTBlNDlcdTBlNGFcdTBlNGJcdTBlNGNcdTBlNGRcdTBlNGVcdTBlNGZcdTBlNTBcdTBlNTFcdTBlNTJcdTBlNTNcdTBlNTRcdTBlNTVcdTBlNTZcdTBlNTdcdTBlNThcdTBlNTlcdTBlNWFcdTBlNWJc'@; put 'dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQifX19LDc2MjM6Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz17MTAwMjk6Im1hY2NlbnRldXJvIixtYWNjZW50ZXVybzp7dHlwZToiX3NiY3MiLGNoYXJzOiJceGM0XHUwMTAwXHUwMTAxXHhjOVx1MDEwNFx4ZDZceGRjXHhlMVx1MDEwNVx1MDEw'@; put 'Y1x4ZTRcdTAxMGRcdTAxMDZcdTAxMDdceGU5XHUwMTc5XHUwMTdhXHUwMTBlXHhlZFx1MDEwZlx1MDExMlx1MDExM1x1MDExNlx4ZjNcdTAxMTdceGY0XHhmNlx4ZjVceGZhXHUwMTFhXHUwMTFiXHhmY1x1MjAyMFx4YjBcdTAxMThceGEzXHhhN1x1MjAyMlx4YjZceGRmXHhhZVx4YTlcdTIx'@; put 'MjJcdTAxMTlceGE4XHUyMjYwXHUwMTIzXHUwMTJlXHUwMTJmXHUwMTJhXHUyMjY0XHUyMjY1XHUwMTJiXHUwMTM2XHUyMjAyXHUyMjExXHUwMTQyXHUwMTNiXHUwMTNjXHUwMTNkXHUwMTNlXHUwMTM5XHUwMTNhXHUwMTQ1XHUwMTQ2XHUwMTQzXHhhY1x1MjIxYVx1MDE0NFx1MDE0N1x1MjIw'@; put 'Nlx4YWJceGJiXHUyMDI2XHhhMFx1MDE0OFx1MDE1MFx4ZDVcdTAxNTFcdTAxNGNcdTIwMTNcdTIwMTRcdTIwMWNcdTIwMWRcdTIwMThcdTIwMTlceGY3XHUyNWNhXHUwMTRkXHUwMTU0XHUwMTU1XHUwMTU4XHUyMDM5XHUyMDNhXHUwMTU5XHUwMTU2XHUwMTU3XHUwMTYwXHUyMDFhXHUyMDFl'@; put 'XHUwMTYxXHUwMTVhXHUwMTViXHhjMVx1MDE2NFx1MDE2NVx4Y2RcdTAxN2RcdTAxN2VcdTAxNmFceGQzXHhkNFx1MDE2Ylx1MDE2ZVx4ZGFcdTAxNmZcdTAxNzBcdTAxNzFcdTAxNzJcdTAxNzNceGRkXHhmZFx1MDEzN1x1MDE3Ylx1MDE0MVx1MDE3Y1x1MDEyMlx1MDJjNyJ9LDgwODoiY3A4'@; put 'MDgiLGlibTgwODoiY3A4MDgiLGNwODA4Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQy'@; put 'M1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1MDQyZVx1MDQyZlx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1'@; put 'MDQzZlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2'@; put 'OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1'@; put 'MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0ZFx1MDQ0ZVx1MDQ0Zlx1MDQwMVx1MDQ1MVx1MDQwNFx1MDQ1NFx1MDQwN1x1MDQ1N1x1MDQwZVx1MDQ1ZVx4YjBcdTIyMTlceGI3XHUyMjFhXHUyMTE2XHUyMGFjXHUyNWEwXHhhMCJ9LG1pazp7dHlwZToiX3Ni'@; put 'Y3MiLGNoYXJzOiJcdTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0MTRcdTA0MTVcdTA0MTZcdTA0MTdcdTA0MThcdTA0MTlcdTA0MWFcdTA0MWJcdTA0MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0MjZcdTA0MjdcdTA0MjhcdTA0'@; put 'MjlcdTA0MmFcdTA0MmJcdTA0MmNcdTA0MmRcdTA0MmVcdTA0MmZcdTA0MzBcdTA0MzFcdTA0MzJcdTA0MzNcdTA0MzRcdTA0MzVcdTA0MzZcdTA0MzdcdTA0MzhcdTA0MzlcdTA0M2FcdTA0M2JcdTA0M2NcdTA0M2RcdTA0M2VcdTA0M2ZcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0NDRc'@; put 'dTA0NDVcdTA0NDZcdTA0NDdcdTA0NDhcdTA0NDlcdTA0NGFcdTA0NGJcdTA0NGNcdTA0NGRcdTA0NGVcdTA0NGZcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTI1NjNcdTI1NTFcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNcdTI1MTBcdTI1'@; put 'OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTIxMTZceGE3XHUyNTU3XHUyNTVkXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwM2IxXHhkZlx1MDM5M1x1MDNjMFx1MDNhM1x1MDNjM1x4YjVcdTAzYzRcdTAzYTZcdTAzOThcdTAzYTlcdTAzYjRcdTIyMWVc'@; put 'dTAzYzZcdTAzYjVcdTIyMjlcdTIyNjFceGIxXHUyMjY1XHUyMjY0XHUyMzIwXHUyMzIxXHhmN1x1MjI0OFx4YjBcdTIyMTlceGI3XHUyMjFhXHUyMDdmXHhiMlx1MjVhMFx4YTAifSxjcDcyMDp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ZTlceGUyXHg4NFx4ZTBceDg2XHhlN1x4'@; put 'ZWFceGViXHhlOFx4ZWZceGVlXHg4ZFx4OGVceDhmXHg5MFx1MDY1MVx1MDY1Mlx4ZjRceGE0XHUwNjQwXHhmYlx4ZjlcdTA2MjFcdTA2MjJcdTA2MjNcdTA2MjRceGEzXHUwNjI1XHUwNjI2XHUwNjI3XHUwNjI4XHUwNjI5XHUwNjJhXHUwNjJiXHUwNjJjXHUwNjJkXHUwNjJlXHUwNjJmXHUw'@; put 'NjMwXHUwNjMxXHUwNjMyXHUwNjMzXHUwNjM0XHUwNjM1XHhhYlx4YmJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFcdTI1NjJcdTI1NTZcdTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRcdTI1NWNcdTI1NWJcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1'@; put 'MDBcdTI1M2NcdTI1NWVcdTI1NWZcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNcdTI1NjdcdTI1NjhcdTI1NjRcdTI1NjVcdTI1NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NmJcdTI1NmFcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTI1OGNcdTI1OTBcdTI1ODBc'@; put 'dTA2MzZcdTA2MzdcdTA2MzhcdTA2MzlcdTA2M2FcdTA2NDFceGI1XHUwNjQyXHUwNjQzXHUwNjQ0XHUwNjQ1XHUwNjQ2XHUwNjQ3XHUwNjQ4XHUwNjQ5XHUwNjRhXHUyMjYxXHUwNjRiXHUwNjRjXHUwNjRkXHUwNjRlXHUwNjRmXHUwNjUwXHUyMjQ4XHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIw'@; put 'N2ZceGIyXHUyNWEwXHhhMCJ9LGFzY2lpOGJpdDoiYXNjaWkiLHVzYXNjaWk6ImFzY2lpIixhbnNpeDM0OiJhc2NpaSIsYW5zaXgzNDE5Njg6ImFzY2lpIixhbnNpeDM0MTk4NjoiYXNjaWkiLGNzYXNjaWk6ImFzY2lpIixjcDM2NzoiYXNjaWkiLGlibTM2NzoiYXNjaWkiLGlzb2lyNjoiYXNj'@; put 'aWkiLGlzbzY0NnVzOiJhc2NpaSIsaXNvNjQ2aXJ2OiJhc2NpaSIsdXM6ImFzY2lpIixsYXRpbjE6Imlzbzg4NTkxIixsYXRpbjI6Imlzbzg4NTkyIixsYXRpbjM6Imlzbzg4NTkzIixsYXRpbjQ6Imlzbzg4NTk0IixsYXRpbjU6Imlzbzg4NTk5IixsYXRpbjY6Imlzbzg4NTkxMCIsbGF0aW43'@; put 'OiJpc284ODU5MTMiLGxhdGluODoiaXNvODg1OTE0IixsYXRpbjk6Imlzbzg4NTkxNSIsbGF0aW4xMDoiaXNvODg1OTE2Iixjc2lzb2xhdGluMToiaXNvODg1OTEiLGNzaXNvbGF0aW4yOiJpc284ODU5MiIsY3Npc29sYXRpbjM6Imlzbzg4NTkzIixjc2lzb2xhdGluNDoiaXNvODg1OTQiLGNz'@; put 'aXNvbGF0aW5jeXJpbGxpYzoiaXNvODg1OTUiLGNzaXNvbGF0aW5hcmFiaWM6Imlzbzg4NTk2Iixjc2lzb2xhdGluZ3JlZWs6Imlzbzg4NTk3Iixjc2lzb2xhdGluaGVicmV3OiJpc284ODU5OCIsY3Npc29sYXRpbjU6Imlzbzg4NTk5Iixjc2lzb2xhdGluNjoiaXNvODg1OTEwIixsMToiaXNv'@; put 'ODg1OTEiLGwyOiJpc284ODU5MiIsbDM6Imlzbzg4NTkzIixsNDoiaXNvODg1OTQiLGw1OiJpc284ODU5OSIsbDY6Imlzbzg4NTkxMCIsbDc6Imlzbzg4NTkxMyIsbDg6Imlzbzg4NTkxNCIsbDk6Imlzbzg4NTkxNSIsbDEwOiJpc284ODU5MTYiLGlzb2lyMTQ6ImlzbzY0NmpwIixpc29pcjU3'@; put 'OiJpc282NDZjbiIsaXNvaXIxMDA6Imlzbzg4NTkxIixpc29pcjEwMToiaXNvODg1OTIiLGlzb2lyMTA5OiJpc284ODU5MyIsaXNvaXIxMTA6Imlzbzg4NTk0Iixpc29pcjE0NDoiaXNvODg1OTUiLGlzb2lyMTI3OiJpc284ODU5NiIsaXNvaXIxMjY6Imlzbzg4NTk3Iixpc29pcjEzODoiaXNv'@; put 'ODg1OTgiLGlzb2lyMTQ4OiJpc284ODU5OSIsaXNvaXIxNTc6Imlzbzg4NTkxMCIsaXNvaXIxNjY6InRpczYyMCIsaXNvaXIxNzk6Imlzbzg4NTkxMyIsaXNvaXIxOTk6Imlzbzg4NTkxNCIsaXNvaXIyMDM6Imlzbzg4NTkxNSIsaXNvaXIyMjY6Imlzbzg4NTkxNiIsY3A4MTk6Imlzbzg4NTkx'@; put 'IixpYm04MTk6Imlzbzg4NTkxIixjeXJpbGxpYzoiaXNvODg1OTUiLGFyYWJpYzoiaXNvODg1OTYiLGFyYWJpYzg6Imlzbzg4NTk2IixlY21hMTE0OiJpc284ODU5NiIsYXNtbzcwODoiaXNvODg1OTYiLGdyZWVrOiJpc284ODU5NyIsZ3JlZWs4OiJpc284ODU5NyIsZWNtYTExODoiaXNvODg1'@; put 'OTciLGVsb3Q5Mjg6Imlzbzg4NTk3IixoZWJyZXc6Imlzbzg4NTk4IixoZWJyZXc4OiJpc284ODU5OCIsdHVya2lzaDoiaXNvODg1OTkiLHR1cmtpc2g4OiJpc284ODU5OSIsdGhhaToiaXNvODg1OTExIix0aGFpODoiaXNvODg1OTExIixjZWx0aWM6Imlzbzg4NTkxNCIsY2VsdGljODoiaXNv'@; put 'ODg1OTE0Iixpc29jZWx0aWM6Imlzbzg4NTkxNCIsdGlzNjIwMDoidGlzNjIwIix0aXM2MjAyNTI5MToidGlzNjIwIix0aXM2MjAyNTMzMDoidGlzNjIwIiwxZTQ6Im1hY3JvbWFuIiwxMDAwNjoibWFjZ3JlZWsiLDEwMDA3OiJtYWNjeXJpbGxpYyIsMTAwNzk6Im1hY2ljZWxhbmQiLDEwMDgx'@; put 'OiJtYWN0dXJraXNoIixjc3BjOGNvZGVwYWdlNDM3OiJjcDQzNyIsY3NwYzc3NWJhbHRpYzoiY3A3NzUiLGNzcGM4NTBtdWx0aWxpbmd1YWw6ImNwODUwIixjc3BjcDg1MjoiY3A4NTIiLGNzcGM4NjJsYXRpbmhlYnJldzoiY3A4NjIiLGNwZ3I6ImNwODY5Iixtc2VlOiJjcDEyNTAiLG1zY3ly'@; put 'bDoiY3AxMjUxIixtc2Fuc2k6ImNwMTI1MiIsbXNncmVlazoiY3AxMjUzIixtc3R1cms6ImNwMTI1NCIsbXNoZWJyOiJjcDEyNTUiLG1zYXJhYjoiY3AxMjU2Iix3aW5iYWx0cmltOiJjcDEyNTciLGNwMjA4NjY6ImtvaThyIiwyMDg2Njoia29pOHIiLGlibTg3ODoia29pOHIiLGNza29pOHI6'@; put 'ImtvaThyIixjcDIxODY2OiJrb2k4dSIsMjE4NjY6ImtvaTh1IixpYm0xMTY4OiJrb2k4dSIsc3RyazEwNDgyMDAyOiJyazEwNDgiLHRjdm41NzEyOiJ0Y3ZuIix0Y3ZuNTcxMjE6InRjdm4iLGdiMTk4ODgwOiJpc282NDZjbiIsY246ImlzbzY0NmNuIixjc2lzbzE0amlzYzYyMjBybzoiaXNv'@; put 'NjQ2anAiLGppc2M2MjIwMTk2OXJvOiJpc282NDZqcCIsanA6ImlzbzY0NmpwIixjc2hwcm9tYW44OiJocHJvbWFuOCIscjg6Imhwcm9tYW44Iixyb21hbjg6Imhwcm9tYW44Iix4cm9tYW44OiJocHJvbWFuOCIsaWJtMTA1MToiaHByb21hbjgiLG1hYzoibWFjaW50b3NoIixjc21hY2ludG9z'@; put 'aDoibWFjaW50b3NoIn19LDcxNzU6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig5MzgwNykuQnVmZmVyO2Z1bmN0aW9uIF8oKXt9ZnVuY3Rpb24gcCgpe31mdW5jdGlvbiBOKCl7dGhpcy5vdmVyZmxvd0J5dGU9LTF9ZnVuY3Rpb24gdyhqLFApe3RoaXMuaWNvbnY9UH1mdW5jdGlv'@; put 'biBGKGosUCl7dm9pZCAwPT09KGo9anx8e30pLmFkZEJPTSYmKGouYWRkQk9NPSEwKSx0aGlzLmVuY29kZXI9UC5pY29udi5nZXRFbmNvZGVyKCJ1dGYtMTZsZSIsail9ZnVuY3Rpb24gSChqLFApe3RoaXMuZGVjb2Rlcj1udWxsLHRoaXMuaW5pdGlhbEJ5dGVzPVtdLHRoaXMuaW5pdGlhbEJ5'@; put 'dGVzTGVuPTAsdGhpcy5vcHRpb25zPWp8fHt9LHRoaXMuaWNvbnY9UC5pY29udn1mdW5jdGlvbiBSKGosUCl7dmFyIEw9UHx8InV0Zi0xNmxlIjtpZihqLmxlbmd0aD49MilpZigyNTQ9PWpbMF0mJjI1NT09alsxXSlMPSJ1dGYtMTZiZSI7ZWxzZSBpZigyNTU9PWpbMF0mJjI1ND09alsxXSlM'@; put 'PSJ1dGYtMTZsZSI7ZWxzZXtmb3IodmFyIFk9MCxCPTAsVz1NYXRoLm1pbihqLmxlbmd0aC1qLmxlbmd0aCUyLDY0KSxaPTA7WjxXO1orPTIpMD09PWpbWl0mJjAhPT1qW1orMV0mJkIrKywwIT09altaXSYmMD09PWpbWisxXSYmWSsrO0I+WT9MPSJ1dGYtMTZiZSI6QjxZJiYoTD0idXRmLTE2'@; put 'bGUiKX1yZXR1cm4gTH1KLnV0ZjE2YmU9XyxfLnByb3RvdHlwZS5lbmNvZGVyPXAsXy5wcm90b3R5cGUuZGVjb2Rlcj1OLF8ucHJvdG90eXBlLmJvbUF3YXJlPSEwLHAucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGope2Zvcih2YXIgUD1ELmZyb20oaiwidWNzMiIpLEw9MDtMPFAubGVuZ3Ro'@; put 'O0wrPTIpe3ZhciBZPVBbTF07UFtMXT1QW0wrMV0sUFtMKzFdPVl9cmV0dXJuIFB9LHAucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe30sTi5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oail7aWYoMD09ai5sZW5ndGgpcmV0dXJuIiI7dmFyIFA9RC5hbGxvYyhqLmxlbmd0aCsxKSxMPTAsWT0w'@; put 'O2ZvcigtMSE9PXRoaXMub3ZlcmZsb3dCeXRlJiYoUFswXT1qWzBdLFBbMV09dGhpcy5vdmVyZmxvd0J5dGUsTD0xLFk9Mik7TDxqLmxlbmd0aC0xO0wrPTIsWSs9MilQW1ldPWpbTCsxXSxQW1krMV09altMXTtyZXR1cm4gdGhpcy5vdmVyZmxvd0J5dGU9TD09ai5sZW5ndGgtMT9qW2oubGVu'@; put 'Z3RoLTFdOi0xLFAuc2xpY2UoMCxZKS50b1N0cmluZygidWNzMiIpfSxOLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXt9LEoudXRmMTY9dyx3LnByb3RvdHlwZS5lbmNvZGVyPUYsdy5wcm90b3R5cGUuZGVjb2Rlcj1ILEYucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGope3JldHVybiB0aGlz'@; put 'LmVuY29kZXIud3JpdGUoail9LEYucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVuY29kZXIuZW5kKCl9LEgucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGope2lmKCF0aGlzLmRlY29kZXIpe2lmKHRoaXMuaW5pdGlhbEJ5dGVzLnB1c2goaiksdGhpcy5pbml0aWFsQnl0'@; put 'ZXNMZW4rPWoubGVuZ3RoLHRoaXMuaW5pdGlhbEJ5dGVzTGVuPDE2KXJldHVybiIiO3ZhciBQPVIoaj1ELmNvbmNhdCh0aGlzLmluaXRpYWxCeXRlcyksdGhpcy5vcHRpb25zLmRlZmF1bHRFbmNvZGluZyk7dGhpcy5kZWNvZGVyPXRoaXMuaWNvbnYuZ2V0RGVjb2RlcihQLHRoaXMub3B0aW9u'@; put 'cyksdGhpcy5pbml0aWFsQnl0ZXMubGVuZ3RoPXRoaXMuaW5pdGlhbEJ5dGVzTGVuPTB9cmV0dXJuIHRoaXMuZGVjb2Rlci53cml0ZShqKX0sSC5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7aWYoIXRoaXMuZGVjb2Rlcil7dmFyIGo9RC5jb25jYXQodGhpcy5pbml0aWFsQnl0ZXMpLFA9Uihq'@; put 'LHRoaXMub3B0aW9ucy5kZWZhdWx0RW5jb2RpbmcpO3RoaXMuZGVjb2Rlcj10aGlzLmljb252LmdldERlY29kZXIoUCx0aGlzLm9wdGlvbnMpO3ZhciBMPXRoaXMuZGVjb2Rlci53cml0ZShqKSxZPXRoaXMuZGVjb2Rlci5lbmQoKTtyZXR1cm4gWT9MK1k6TH1yZXR1cm4gdGhpcy5kZWNvZGVy'@; put 'LmVuZCgpfX0sMzUwODk6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig5MzgwNykuQnVmZmVyO2Z1bmN0aW9uIF8oaixQKXt0aGlzLmljb252PVAsdGhpcy5ib21Bd2FyZT0hMCx0aGlzLmlzTEU9ai5pc0xFfWZ1bmN0aW9uIHAoaixQKXt0aGlzLmlzTEU9UC5pc0xFLHRoaXMuaGln'@; put 'aFN1cnJvZ2F0ZT0wfWZ1bmN0aW9uIE4oaixQKXt0aGlzLmlzTEU9UC5pc0xFLHRoaXMuYmFkQ2hhcj1QLmljb252LmRlZmF1bHRDaGFyVW5pY29kZS5jaGFyQ29kZUF0KDApLHRoaXMub3ZlcmZsb3c9bnVsbH1mdW5jdGlvbiB3KGosUCl7dGhpcy5pY29udj1QfWZ1bmN0aW9uIEYoaixQKXt2'@; put 'b2lkIDA9PT0oaj1qfHx7fSkuYWRkQk9NJiYoai5hZGRCT009ITApLHRoaXMuZW5jb2Rlcj1QLmljb252LmdldEVuY29kZXIoai5kZWZhdWx0RW5jb2Rpbmd8fCJ1dGYtMzJsZSIsail9ZnVuY3Rpb24gSChqLFApe3RoaXMuZGVjb2Rlcj1udWxsLHRoaXMuaW5pdGlhbEJ5dGVzPVtdLHRoaXMu'@; put 'aW5pdGlhbEJ5dGVzTGVuPTAsdGhpcy5vcHRpb25zPWp8fHt9LHRoaXMuaWNvbnY9UC5pY29udn1mdW5jdGlvbiBSKGosUCl7dmFyIEw9UHx8InV0Zi0zMmxlIjtpZihqLmxlbmd0aD49NClpZig2NTI3OT09PWoucmVhZFVJbnQzMkJFKDApKUw9InV0Zi0zMmJlIjtlbHNlIGlmKDY1Mjc5PT09'@; put 'ai5yZWFkVUludDMyTEUoMCkpTD0idXRmLTMybGUiO2Vsc2V7Zm9yKHZhciBZPTAsQj0wLFc9MCxaPTAsWD1NYXRoLm1pbihqLmxlbmd0aC1qLmxlbmd0aCU0LDEyOCksUT0wO1E8WDtRKz00KXt2YXIgcT1qW1FdLHRlPWpbUSsxXSxpZT1qW1ErMl0sc2U9altRKzNdOygwIT09cXx8dGU+MTYp'@; put 'JiYrK0IsKDAhPT1zZXx8aWU+MTYpJiYrK1ksMD09PXEmJjA9PT10ZSYmMD09PWllJiYwIT09c2UmJlorKywwIT09cSYmMD09PXRlJiYwPT09aWUmJjA9PT1zZSYmVysrfUI8WT9MPSJ1dGYtMzJiZSI6WTxCJiYoTD0idXRmLTMybGUiKSxaPlc/TD0idXRmLTMyYmUiOlo8VyYmKEw9InV0Zi0z'@; put 'MmxlIil9cmV0dXJuIEx9Si5fdXRmMzI9XyxKLnV0ZjMybGU9e3R5cGU6Il91dGYzMiIsaXNMRTohMH0sSi51dGYzMmJlPXt0eXBlOiJfdXRmMzIiLGlzTEU6ITF9LEoudWNzNGxlPSJ1dGYzMmxlIixKLnVjczRiZT0idXRmMzJiZSIsXy5wcm90b3R5cGUuZW5jb2Rlcj1wLF8ucHJvdG90eXBl'@; put 'LmRlY29kZXI9TixwLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihqKXtmb3IodmFyIFA9RC5mcm9tKGosInVjczIiKSxMPUQuYWxsb2MoMipQLmxlbmd0aCksWT10aGlzLmlzTEU/TC53cml0ZVVJbnQzMkxFOkwud3JpdGVVSW50MzJCRSxCPTAsVz0wO1c8UC5sZW5ndGg7Vys9Mil7dmFyIFo9'@; put 'UC5yZWFkVUludDE2TEUoVyksWD01NTI5Njw9WiYmWjw1NjMyMDtpZih0aGlzLmhpZ2hTdXJyb2dhdGUpe2lmKCFYJiY1NjMyMDw9WiYmWjw1NzM0NCl7WS5jYWxsKEwsNjU1MzYrKHRoaXMuaGlnaFN1cnJvZ2F0ZS01NTI5Njw8MTB8Wi01NjMyMCksQiksQis9NCx0aGlzLmhpZ2hTdXJyb2dh'@; put 'dGU9MDtjb250aW51ZX1ZLmNhbGwoTCx0aGlzLmhpZ2hTdXJyb2dhdGUsQiksQis9NH1YP3RoaXMuaGlnaFN1cnJvZ2F0ZT1aOihZLmNhbGwoTCxaLEIpLEIrPTQsdGhpcy5oaWdoU3Vycm9nYXRlPTApfXJldHVybiBCPEwubGVuZ3RoJiYoTD1MLnNsaWNlKDAsQikpLEx9LHAucHJvdG90eXBl'@; put 'LmVuZD1mdW5jdGlvbigpe2lmKHRoaXMuaGlnaFN1cnJvZ2F0ZSl7dmFyIGo9RC5hbGxvYyg0KTtyZXR1cm4gdGhpcy5pc0xFP2oud3JpdGVVSW50MzJMRSh0aGlzLmhpZ2hTdXJyb2dhdGUsMCk6ai53cml0ZVVJbnQzMkJFKHRoaXMuaGlnaFN1cnJvZ2F0ZSwwKSx0aGlzLmhpZ2hTdXJyb2dh'@; put 'dGU9MCxqfX0sTi5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oail7aWYoMD09PWoubGVuZ3RoKXJldHVybiIiO3RoaXMub3ZlcmZsb3cmJihqPUQuY29uY2F0KFt0aGlzLm92ZXJmbG93LGpdKSk7dmFyIFA9ai5sZW5ndGgtai5sZW5ndGglNDtqLmxlbmd0aCE9PVA/KHRoaXMub3ZlcmZsb3c9'@; put 'ai5zbGljZShQKSxqPWouc2xpY2UoMCxQKSk6dGhpcy5vdmVyZmxvdz1udWxsO2Zvcih2YXIgTD1ELmFsbG9jKFApLFk9MCxCPTA7QjxQO0IrPTQpe3ZhciBXPXRoaXMuaXNMRT9qLnJlYWRVSW50MzJMRShCKTpqLnJlYWRVSW50MzJCRShCKTtpZihXPDY1NTM2KUwud3JpdGVVSW50MTZMRShX'@; put 'LFkpLFkrPTI7ZWxzZSBpZihXPjExMTQxMTEpTC53cml0ZVVJbnQxNkxFKHRoaXMuYmFkQ2hhcixZKSxZKz0yO2Vsc2V7dmFyIFg9NTYzMjArKDEwMjMmKFctPTY1NTM2KSk7TC53cml0ZVVJbnQxNkxFKDU1Mjk2fFc+PjEwLFkpLEwud3JpdGVVSW50MTZMRShYLFkrPTIpLFkrPTJ9fXJldHVy'@; put 'biBMLnNsaWNlKDAsWSkudG9TdHJpbmcoInVjczIiKX0sTi5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7dGhpcy5vdmVyZmxvdz1udWxsfSxKLnV0ZjMyPXcsSi51Y3M0PXcsdy5wcm90b3R5cGUuZW5jb2Rlcj1GLHcucHJvdG90eXBlLmRlY29kZXI9SCxGLnByb3RvdHlwZS53cml0ZT1mdW5j'@; put 'dGlvbihqKXtyZXR1cm4gdGhpcy5lbmNvZGVyLndyaXRlKGopfSxGLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmNvZGVyLmVuZCgpfSxILnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihqKXtpZighdGhpcy5kZWNvZGVyKXtpZih0aGlzLmluaXRpYWxCeXRlcy5wdXNo'@; put 'KGopLHRoaXMuaW5pdGlhbEJ5dGVzTGVuKz1qLmxlbmd0aCx0aGlzLmluaXRpYWxCeXRlc0xlbjwzMilyZXR1cm4iIjt2YXIgTD1SKEQuY29uY2F0KHRoaXMuaW5pdGlhbEJ5dGVzKSx0aGlzLm9wdGlvbnMuZGVmYXVsdEVuY29kaW5nKTt0aGlzLmRlY29kZXI9dGhpcy5pY29udi5nZXREZWNv'@; put 'ZGVyKEwsdGhpcy5vcHRpb25zKSx0aGlzLmluaXRpYWxCeXRlcy5sZW5ndGg9dGhpcy5pbml0aWFsQnl0ZXNMZW49MH1yZXR1cm4gdGhpcy5kZWNvZGVyLndyaXRlKGopfSxILnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXtpZighdGhpcy5kZWNvZGVyKXt2YXIgaj1ELmNvbmNhdCh0aGlzLmlu'@; put 'aXRpYWxCeXRlcyksUD1SKGosdGhpcy5vcHRpb25zLmRlZmF1bHRFbmNvZGluZyk7dGhpcy5kZWNvZGVyPXRoaXMuaWNvbnYuZ2V0RGVjb2RlcihQLHRoaXMub3B0aW9ucyk7dmFyIEw9dGhpcy5kZWNvZGVyLndyaXRlKGopLFk9dGhpcy5kZWNvZGVyLmVuZCgpO3JldHVybiBZP0wrWTpMfXJl'@; put 'dHVybiB0aGlzLmRlY29kZXIuZW5kKCl9fSw5NzQ3OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoOTM4MDcpLkJ1ZmZlcjtmdW5jdGlvbiBfKFgsUSl7dGhpcy5pY29udj1RfUoudXRmNz1fLEoudW5pY29kZTExdXRmNz0idXRmNyIsXy5wcm90b3R5cGUuZW5jb2Rlcj1OLF8ucHJv'@; put 'dG90eXBlLmRlY29kZXI9dyxfLnByb3RvdHlwZS5ib21Bd2FyZT0hMDt2YXIgcD0vW15BLVphLXowLTknXChcKSwtXC5cLzpcPyBcblxyXHRdKy9nO2Z1bmN0aW9uIE4oWCxRKXt0aGlzLmljb252PVEuaWNvbnZ9ZnVuY3Rpb24gdyhYLFEpe3RoaXMuaWNvbnY9US5pY29udix0aGlzLmluQmFz'@; put 'ZTY0PSExLHRoaXMuYmFzZTY0QWNjdW09IiJ9Ti5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oWCl7cmV0dXJuIEQuZnJvbShYLnJlcGxhY2UocCxmdW5jdGlvbihRKXtyZXR1cm4iKyIrKCIrIj09PVE/IiI6dGhpcy5pY29udi5lbmNvZGUoUSwidXRmMTYtYmUiKS50b1N0cmluZygiYmFzZTY0'@; put 'IikucmVwbGFjZSgvPSskLywiIikpKyItIn0uYmluZCh0aGlzKSkpfSxOLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXt9O2Zvcih2YXIgRj0vW0EtWmEtejAtOVwvK10vLEg9W10sUj0wO1I8MjU2O1IrKylIW1JdPUYudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKFIpKTt2YXIgUD00NTtmdW5j'@; put 'dGlvbiBZKFgsUSl7dGhpcy5pY29udj1RfWZ1bmN0aW9uIEIoWCxRKXt0aGlzLmljb252PVEuaWNvbnYsdGhpcy5pbkJhc2U2ND0hMSx0aGlzLmJhc2U2NEFjY3VtPUQuYWxsb2MoNiksdGhpcy5iYXNlNjRBY2N1bUlkeD0wfWZ1bmN0aW9uIFcoWCxRKXt0aGlzLmljb252PVEuaWNvbnYsdGhp'@; put 'cy5pbkJhc2U2ND0hMSx0aGlzLmJhc2U2NEFjY3VtPSIifXcucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKFgpe2Zvcih2YXIgUT0iIixxPTAsdGU9dGhpcy5pbkJhc2U2NCxpZT10aGlzLmJhc2U2NEFjY3VtLHNlPTA7c2U8WC5sZW5ndGg7c2UrKylpZih0ZSl7aWYoIUhbWFtzZV1dKXtpZihz'@; put 'ZT09cSYmWFtzZV09PVApUSs9IisiO2Vsc2V7dmFyIGdlPWllK1guc2xpY2UocSxzZSkudG9TdHJpbmcoKTtRKz10aGlzLmljb252LmRlY29kZShELmZyb20oZ2UsImJhc2U2NCIpLCJ1dGYxNi1iZSIpfVhbc2VdIT1QJiZzZS0tLHE9c2UrMSx0ZT0hMSxpZT0iIn19ZWxzZSA0Mz09WFtzZV0m'@; put 'JihRKz10aGlzLmljb252LmRlY29kZShYLnNsaWNlKHEsc2UpLCJhc2NpaSIpLHE9c2UrMSx0ZT0hMCk7aWYodGUpe3ZhciBfZT0oZ2U9aWUrWC5zbGljZShxKS50b1N0cmluZygpKS5sZW5ndGgtZ2UubGVuZ3RoJTg7aWU9Z2Uuc2xpY2UoX2UpLGdlPWdlLnNsaWNlKDAsX2UpLFErPXRoaXMu'@; put 'aWNvbnYuZGVjb2RlKEQuZnJvbShnZSwiYmFzZTY0IiksInV0ZjE2LWJlIil9ZWxzZSBRKz10aGlzLmljb252LmRlY29kZShYLnNsaWNlKHEpLCJhc2NpaSIpO3JldHVybiB0aGlzLmluQmFzZTY0PXRlLHRoaXMuYmFzZTY0QWNjdW09aWUsUX0sdy5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7'@; put 'dmFyIFg9IiI7cmV0dXJuIHRoaXMuaW5CYXNlNjQmJnRoaXMuYmFzZTY0QWNjdW0ubGVuZ3RoPjAmJihYPXRoaXMuaWNvbnYuZGVjb2RlKEQuZnJvbSh0aGlzLmJhc2U2NEFjY3VtLCJiYXNlNjQiKSwidXRmMTYtYmUiKSksdGhpcy5pbkJhc2U2ND0hMSx0aGlzLmJhc2U2NEFjY3VtPSIiLFh9'@; put 'LEoudXRmN2ltYXA9WSxZLnByb3RvdHlwZS5lbmNvZGVyPUIsWS5wcm90b3R5cGUuZGVjb2Rlcj1XLFkucHJvdG90eXBlLmJvbUF3YXJlPSEwLEIucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKFgpe2Zvcih2YXIgUT10aGlzLmluQmFzZTY0LHE9dGhpcy5iYXNlNjRBY2N1bSx0ZT10aGlzLmJh'@; put 'c2U2NEFjY3VtSWR4LGllPUQuYWxsb2MoNSpYLmxlbmd0aCsxMCksc2U9MCxnZT0wO2dlPFgubGVuZ3RoO2dlKyspe3ZhciBfZT1YLmNoYXJDb2RlQXQoZ2UpOzMyPD1fZSYmX2U8PTEyNj8oUSYmKHRlPjAmJihzZSs9aWUud3JpdGUocS5zbGljZSgwLHRlKS50b1N0cmluZygiYmFzZTY0Iiku'@; put 'cmVwbGFjZSgvXC8vZywiLCIpLnJlcGxhY2UoLz0rJC8sIiIpLHNlKSx0ZT0wKSxpZVtzZSsrXT1QLFE9ITEpLFF8fChpZVtzZSsrXT1fZSwzOD09PV9lJiYoaWVbc2UrK109UCkpKTooUXx8KGllW3NlKytdPTM4LFE9ITApLFEmJihxW3RlKytdPV9lPj44LHFbdGUrK109MjU1Jl9lLHRlPT1x'@; put 'Lmxlbmd0aCYmKHNlKz1pZS53cml0ZShxLnRvU3RyaW5nKCJiYXNlNjQiKS5yZXBsYWNlKC9cLy9nLCIsIiksc2UpLHRlPTApKSl9cmV0dXJuIHRoaXMuaW5CYXNlNjQ9USx0aGlzLmJhc2U2NEFjY3VtSWR4PXRlLGllLnNsaWNlKDAsc2UpfSxCLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXt2'@; put 'YXIgWD1ELmFsbG9jKDEwKSxRPTA7cmV0dXJuIHRoaXMuaW5CYXNlNjQmJih0aGlzLmJhc2U2NEFjY3VtSWR4PjAmJihRKz1YLndyaXRlKHRoaXMuYmFzZTY0QWNjdW0uc2xpY2UoMCx0aGlzLmJhc2U2NEFjY3VtSWR4KS50b1N0cmluZygiYmFzZTY0IikucmVwbGFjZSgvXC8vZywiLCIpLnJl'@; put 'cGxhY2UoLz0rJC8sIiIpLFEpLHRoaXMuYmFzZTY0QWNjdW1JZHg9MCksWFtRKytdPVAsdGhpcy5pbkJhc2U2ND0hMSksWC5zbGljZSgwLFEpfTt2YXIgWj1ILnNsaWNlKCk7Wls0NF09ITAsVy5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oWCl7Zm9yKHZhciBRPSIiLHE9MCx0ZT10aGlzLmlu'@; put 'QmFzZTY0LGllPXRoaXMuYmFzZTY0QWNjdW0sc2U9MDtzZTxYLmxlbmd0aDtzZSsrKWlmKHRlKXtpZighWltYW3NlXV0pe2lmKHNlPT1xJiZYW3NlXT09UClRKz0iJiI7ZWxzZXt2YXIgZ2U9aWUrWC5zbGljZShxLHNlKS50b1N0cmluZygpLnJlcGxhY2UoLywvZywiLyIpO1ErPXRoaXMuaWNv'@; put 'bnYuZGVjb2RlKEQuZnJvbShnZSwiYmFzZTY0IiksInV0ZjE2LWJlIil9WFtzZV0hPVAmJnNlLS0scT1zZSsxLHRlPSExLGllPSIifX1lbHNlIDM4PT1YW3NlXSYmKFErPXRoaXMuaWNvbnYuZGVjb2RlKFguc2xpY2UocSxzZSksImFzY2lpIikscT1zZSsxLHRlPSEwKTtpZih0ZSl7dmFyIF9l'@; put 'PShnZT1pZStYLnNsaWNlKHEpLnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCIvIikpLmxlbmd0aC1nZS5sZW5ndGglODtpZT1nZS5zbGljZShfZSksZ2U9Z2Uuc2xpY2UoMCxfZSksUSs9dGhpcy5pY29udi5kZWNvZGUoRC5mcm9tKGdlLCJiYXNlNjQiKSwidXRmMTYtYmUiKX1lbHNlIFErPXRo'@; put 'aXMuaWNvbnYuZGVjb2RlKFguc2xpY2UocSksImFzY2lpIik7cmV0dXJuIHRoaXMuaW5CYXNlNjQ9dGUsdGhpcy5iYXNlNjRBY2N1bT1pZSxRfSxXLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXt2YXIgWD0iIjtyZXR1cm4gdGhpcy5pbkJhc2U2NCYmdGhpcy5iYXNlNjRBY2N1bS5sZW5ndGg+'@; put 'MCYmKFg9dGhpcy5pY29udi5kZWNvZGUoRC5mcm9tKHRoaXMuYmFzZTY0QWNjdW0sImJhc2U2NCIpLCJ1dGYxNi1iZSIpKSx0aGlzLmluQmFzZTY0PSExLHRoaXMuYmFzZTY0QWNjdW09IiIsWH19LDI5NDIyOihjZSxKKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBEKHAsTil7dGhpcy5lbmNv'@; put 'ZGVyPXAsdGhpcy5hZGRCT009ITB9ZnVuY3Rpb24gXyhwLE4pe3RoaXMuZGVjb2Rlcj1wLHRoaXMucGFzcz0hMSx0aGlzLm9wdGlvbnM9Tnx8e319Si5QcmVwZW5kQk9NPUQsRC5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24ocCl7cmV0dXJuIHRoaXMuYWRkQk9NJiYocD0iXHVmZWZmIitwLHRo'@; put 'aXMuYWRkQk9NPSExKSx0aGlzLmVuY29kZXIud3JpdGUocCl9LEQucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVuY29kZXIuZW5kKCl9LEouU3RyaXBCT009XyxfLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihwKXt2YXIgTj10aGlzLmRlY29kZXIud3JpdGUocCk7cmV0'@; put 'dXJuIHRoaXMucGFzc3x8IU58fCgiXHVmZWZmIj09PU5bMF0mJihOPU4uc2xpY2UoMSksImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMub3B0aW9ucy5zdHJpcEJPTSYmdGhpcy5vcHRpb25zLnN0cmlwQk9NKCkpLHRoaXMucGFzcz0hMCksTn0sXy5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7cmV0'@; put 'dXJuIHRoaXMuZGVjb2Rlci5lbmQoKX19LDk0MjQ4OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoOTM4MDcpLkJ1ZmZlcixfPWIoMjk0MjIpLHA9Y2UuZXhwb3J0cztwLmVuY29kaW5ncz1udWxsLHAuZGVmYXVsdENoYXJVbmljb2RlPSJcdWZmZmQiLHAuZGVmYXVsdENoYXJTaW5n'@; put 'bGVCeXRlPSI/IixwLmVuY29kZT1mdW5jdGlvbihILFIsail7SD0iIisoSHx8IiIpO3ZhciBQPXAuZ2V0RW5jb2RlcihSLGopLEw9UC53cml0ZShIKSxZPVAuZW5kKCk7cmV0dXJuIFkmJlkubGVuZ3RoPjA/RC5jb25jYXQoW0wsWV0pOkx9LHAuZGVjb2RlPWZ1bmN0aW9uKEgsUixqKXsic3Ry'@; put 'aW5nIj09dHlwZW9mIEgmJihwLnNraXBEZWNvZGVXYXJuaW5nfHwoY29uc29sZS5lcnJvcigiSWNvbnYtbGl0ZSB3YXJuaW5nOiBkZWNvZGUoKS1pbmcgc3RyaW5ncyBpcyBkZXByZWNhdGVkLiBSZWZlciB0byBodHRwczovL2dpdGh1Yi5jb20vYXNodHVjaGtpbi9pY29udi1saXRlL3dpa2kv'@; put 'VXNlLUJ1ZmZlcnMtd2hlbi1kZWNvZGluZyIpLHAuc2tpcERlY29kZVdhcm5pbmc9ITApLEg9RC5mcm9tKCIiKyhIfHwiIiksImJpbmFyeSIpKTt2YXIgUD1wLmdldERlY29kZXIoUixqKSxMPVAud3JpdGUoSCksWT1QLmVuZCgpO3JldHVybiBZP0wrWTpMfSxwLmVuY29kaW5nRXhpc3RzPWZ1'@; put 'bmN0aW9uKEgpe3RyeXtyZXR1cm4gcC5nZXRDb2RlYyhIKSwhMH1jYXRjaHtyZXR1cm4hMX19LHAudG9FbmNvZGluZz1wLmVuY29kZSxwLmZyb21FbmNvZGluZz1wLmRlY29kZSxwLl9jb2RlY0RhdGFDYWNoZT17fSxwLmdldENvZGVjPWZ1bmN0aW9uKEgpe3AuZW5jb2RpbmdzfHwocC5lbmNv'@; put 'ZGluZ3M9Yig3Mjg5MykpO2Zvcih2YXIgUj1wLl9jYW5vbmljYWxpemVFbmNvZGluZyhIKSxqPXt9Ozspe3ZhciBQPXAuX2NvZGVjRGF0YUNhY2hlW1JdO2lmKFApcmV0dXJuIFA7dmFyIEw9cC5lbmNvZGluZ3NbUl07c3dpdGNoKHR5cGVvZiBMKXtjYXNlInN0cmluZyI6Uj1MO2JyZWFrO2Nh'@; put 'c2Uib2JqZWN0Ijpmb3IodmFyIFkgaW4gTClqW1ldPUxbWV07ai5lbmNvZGluZ05hbWV8fChqLmVuY29kaW5nTmFtZT1SKSxSPUwudHlwZTticmVhaztjYXNlImZ1bmN0aW9uIjpyZXR1cm4gai5lbmNvZGluZ05hbWV8fChqLmVuY29kaW5nTmFtZT1SKSxQPW5ldyBMKGoscCkscC5fY29kZWNE'@; put 'YXRhQ2FjaGVbai5lbmNvZGluZ05hbWVdPVAsUDtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiRW5jb2Rpbmcgbm90IHJlY29nbml6ZWQ6ICciK0grIicgKHNlYXJjaGVkIGFzOiAnIitSKyInKSIpfX19LHAuX2Nhbm9uaWNhbGl6ZUVuY29kaW5nPWZ1bmN0aW9uKEYpe3JldHVybigiIitGKS50'@; put 'b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLzpcZHs0fSR8W14wLTlhLXpdL2csIiIpfSxwLmdldEVuY29kZXI9ZnVuY3Rpb24oSCxSKXt2YXIgaj1wLmdldENvZGVjKEgpLFA9bmV3IGouZW5jb2RlcihSLGopO3JldHVybiBqLmJvbUF3YXJlJiZSJiZSLmFkZEJPTSYmKFA9bmV3IF8uUHJlcGVuZEJP'@; put 'TShQLFIpKSxQfSxwLmdldERlY29kZXI9ZnVuY3Rpb24oSCxSKXt2YXIgaj1wLmdldENvZGVjKEgpLFA9bmV3IGouZGVjb2RlcihSLGopO3JldHVybiBqLmJvbUF3YXJlJiYhKFImJiExPT09Ui5zdHJpcEJPTSkmJihQPW5ldyBfLlN0cmlwQk9NKFAsUikpLFB9O3ZhciBOPXR5cGVvZiBwcm9j'@; put 'ZXNzPCJ1IiYmcHJvY2Vzcy52ZXJzaW9ucyYmcHJvY2Vzcy52ZXJzaW9ucy5ub2RlO2lmKE4pe3ZhciB3PU4uc3BsaXQoIi4iKS5tYXAoTnVtYmVyKTsod1swXT4wfHx3WzFdPj0xMCkmJmIoNjEwOTMpKHApLGIoMTU3OTEpKHApfX0sMjIwMjA6KGNlLEopPT57Si5yZWFkPWZ1bmN0aW9uKGIs'@; put 'RCxfLHAsTil7dmFyIHcsRixIPTgqTi1wLTEsUj0oMTw8SCktMSxqPVI+PjEsUD0tNyxMPV8/Ti0xOjAsWT1fPy0xOjEsQj1iW0QrTF07Zm9yKEwrPVksdz1CJigxPDwtUCktMSxCPj49LVAsUCs9SDtQPjA7dz0yNTYqdytiW0QrTF0sTCs9WSxQLT04KTtmb3IoRj13JigxPDwtUCktMSx3Pj49'@; put 'LVAsUCs9cDtQPjA7Rj0yNTYqRitiW0QrTF0sTCs9WSxQLT04KTtpZigwPT09dyl3PTEtajtlbHNle2lmKHc9PT1SKXJldHVybiBGP05hTjoxLzAqKEI/LTE6MSk7Ris9TWF0aC5wb3coMixwKSx3LT1qfXJldHVybihCPy0xOjEpKkYqTWF0aC5wb3coMix3LXApfSxKLndyaXRlPWZ1bmN0aW9u'@; put 'KGIsRCxfLHAsTix3KXt2YXIgRixILFIsaj04KnctTi0xLFA9KDE8PGopLTEsTD1QPj4xLFk9MjM9PT1OP01hdGgucG93KDIsLTI0KS1NYXRoLnBvdygyLC03Nyk6MCxCPXA/MDp3LTEsVz1wPzE6LTEsWj1EPDB8fDA9PT1EJiYxL0Q8MD8xOjA7Zm9yKEQ9TWF0aC5hYnMoRCksaXNOYU4oRCl8'@; put 'fEQ9PT0xLzA/KEg9aXNOYU4oRCk/MTowLEY9UCk6KEY9TWF0aC5mbG9vcihNYXRoLmxvZyhEKS9NYXRoLkxOMiksRCooUj1NYXRoLnBvdygyLC1GKSk8MSYmKEYtLSxSKj0yKSwoRCs9RitMPj0xP1kvUjpZKk1hdGgucG93KDIsMS1MKSkqUj49MiYmKEYrKyxSLz0yKSxGK0w+PVA/KEg9MCxG'@; put 'PVApOkYrTD49MT8oSD0oRCpSLTEpKk1hdGgucG93KDIsTiksRis9TCk6KEg9RCpNYXRoLnBvdygyLEwtMSkqTWF0aC5wb3coMixOKSxGPTApKTtOPj04O2JbXytCXT0yNTUmSCxCKz1XLEgvPTI1NixOLT04KTtmb3IoRj1GPDxOfEgsais9TjtqPjA7YltfK0JdPTI1NSZGLEIrPVcsRi89MjU2'@; put 'LGotPTgpO2JbXytCLVddfD0xMjgqWn19LDcxOTkzOmNlPT57Y2UuZXhwb3J0cz0iZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihiLEQpe0QmJihiLnN1cGVyXz1ELGIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1'@; put 'ZTpiLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pKX06ZnVuY3Rpb24oYixEKXtpZihEKXtiLnN1cGVyXz1EO3ZhciBfPWZ1bmN0aW9uKCl7fTtfLnByb3RvdHlwZT1ELnByb3RvdHlwZSxiLnByb3RvdHlwZT1uZXcgXyxiLnByb3RvdHlwZS5jb25zdHJ1Y3Rv'@; put 'cj1ifX19LDU4MjM5OmNlPT57InVzZSBzdHJpY3QiO3ZhciBELF8sSj1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcsYj0ib2JqZWN0Ij09dHlwZW9mIFJlZmxlY3QmJm51bGwhPT1SZWZsZWN0JiZSZWZsZWN0LmFwcGx5O2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBiJiYiZnVuY3Rpb24iPT10'@; put 'eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnR5KXRyeXtEPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwibGVuZ3RoIix7Z2V0OmZ1bmN0aW9uKCl7dGhyb3cgX319KSxfPXt9LGIoZnVuY3Rpb24oKXt0aHJvdyA0Mn0sbnVsbCxEKX1jYXRjaChRKXtRIT09XyYmKGI9bnVsbCl9ZWxzZSBiPW51'@; put 'bGw7dmFyIHA9L15ccypjbGFzc1xiLyxOPWZ1bmN0aW9uKHEpe3RyeXt2YXIgdGU9Si5jYWxsKHEpO3JldHVybiBwLnRlc3QodGUpfWNhdGNoe3JldHVybiExfX0sdz1mdW5jdGlvbihxKXt0cnl7cmV0dXJuIU4ocSkmJihKLmNhbGwocSksITApfWNhdGNoe3JldHVybiExfX0sRj1PYmplY3Qu'@; put 'cHJvdG90eXBlLnRvU3RyaW5nLEI9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmISFTeW1ib2wudG9TdHJpbmdUYWcsVz0hKDAgaW5bLF0pLFo9ZnVuY3Rpb24oKXtyZXR1cm4hMX07aWYoIm9iamVjdCI9PXR5cGVvZiBkb2N1bWVudCl7dmFyIFg9ZG9jdW1lbnQuYWxsO0YuY2FsbChYKT09'@; put 'PUYuY2FsbChkb2N1bWVudC5hbGwpJiYoWj1mdW5jdGlvbihxKXtpZigoV3x8IXEpJiYodHlwZW9mIHE+InUifHwib2JqZWN0Ij09dHlwZW9mIHEpKXRyeXt2YXIgdGU9Ri5jYWxsKHEpO3JldHVybigiW29iamVjdCBIVE1MQWxsQ29sbGVjdGlvbl0iPT09dGV8fCJbb2JqZWN0IEhUTUwgZG9j'@; put 'dW1lbnQuYWxsIGNsYXNzXSI9PT10ZXx8IltvYmplY3QgSFRNTENvbGxlY3Rpb25dIj09PXRlfHwiW29iamVjdCBPYmplY3RdIj09PXRlKSYmbnVsbD09cSgiIil9Y2F0Y2h7fXJldHVybiExfSl9Y2UuZXhwb3J0cz1iP2Z1bmN0aW9uKHEpe2lmKFoocSkpcmV0dXJuITA7aWYoIXF8fCJmdW5j'@; put 'dGlvbiIhPXR5cGVvZiBxJiYib2JqZWN0IiE9dHlwZW9mIHEpcmV0dXJuITE7dHJ5e2IocSxudWxsLEQpfWNhdGNoKHRlKXtpZih0ZSE9PV8pcmV0dXJuITF9cmV0dXJuIU4ocSkmJncocSl9OmZ1bmN0aW9uKHEpe2lmKFoocSkpcmV0dXJuITA7aWYoIXF8fCJmdW5jdGlvbiIhPXR5cGVvZiBx'@; put 'JiYib2JqZWN0IiE9dHlwZW9mIHEpcmV0dXJuITE7aWYoQilyZXR1cm4gdyhxKTtpZihOKHEpKXJldHVybiExO3ZhciB0ZT1GLmNhbGwocSk7cmV0dXJuISgiW29iamVjdCBGdW5jdGlvbl0iIT09dGUmJiJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSIhPT10ZSYmIS9eXFtvYmplY3QgSFRN'@; put 'TC8udGVzdCh0ZSkpJiZ3KHEpfX0sNDcyOTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDQ0MDY4KTtjZS5leHBvcnRzPWZ1bmN0aW9uKHApe3JldHVybiEhRChwKX19LDIwMDUzOmNlPT57dmFyIEo9e30udG9TdHJpbmc7Y2UuZXhwb3J0cz1BcnJheS5pc0FycmF5fHxmdW5jdGlv'@; put 'bihiKXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT1KLmNhbGwoYil9fSw3MDgzNzpjZT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPU1hdGguYWJzfSwzMzgzOmNlPT57InVzZSBzdHJpY3QiO2NlLmV4cG9ydHM9TWF0aC5mbG9vcn0sODU0ODg6Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0'@; put 'cz1OdW1iZXIuaXNOYU58fGZ1bmN0aW9uKGIpe3JldHVybiBiIT1ifX0sNzkwMzk6Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz1NYXRoLm1heH0sMTQ5ODE6Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz1NYXRoLm1pbn0sODA5NzU6Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0'@; put 'cz1NYXRoLnBvd30sNTMzNzpjZT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPU1hdGgucm91bmR9LDQ5MTI6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig4NTQ4OCk7Y2UuZXhwb3J0cz1mdW5jdGlvbihwKXtyZXR1cm4gRChwKXx8MD09PXA/cDpwPDA/LTE6MX19LDM0NzI1Oihj'@; put 'ZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNzE5OTMpLF89YigxMzY4NikscD1iKDI3MDU0KS5CdWZmZXIsTj1uZXcgQXJyYXkoMTYpO2Z1bmN0aW9uIHcoKXtfLmNhbGwodGhpcyw2NCksdGhpcy5fYT0xNzMyNTg0MTkzLHRoaXMuX2I9NDAyMzIzMzQxNyx0aGlzLl9jPTI1NjIzODMx'@; put 'MDIsdGhpcy5fZD0yNzE3MzM4Nzh9ZnVuY3Rpb24gRihMLFkpe3JldHVybiBMPDxZfEw+Pj4zMi1ZfWZ1bmN0aW9uIEgoTCxZLEIsVyxaLFgsUSl7cmV0dXJuIEYoTCsoWSZCfH5ZJlcpK1orWHwwLFEpK1l8MH1mdW5jdGlvbiBSKEwsWSxCLFcsWixYLFEpe3JldHVybiBGKEwrKFkmV3xCJn5X'@; put 'KStaK1h8MCxRKStZfDB9ZnVuY3Rpb24gaihMLFksQixXLFosWCxRKXtyZXR1cm4gRihMKyhZXkJeVykrWitYfDAsUSkrWXwwfWZ1bmN0aW9uIFAoTCxZLEIsVyxaLFgsUSl7cmV0dXJuIEYoTCsoQl4oWXx+VykpK1orWHwwLFEpK1l8MH1EKHcsXyksdy5wcm90b3R5cGUuX3VwZGF0ZT1mdW5j'@; put 'dGlvbigpe2Zvcih2YXIgTD1OLFk9MDtZPDE2OysrWSlMW1ldPXRoaXMuX2Jsb2NrLnJlYWRJbnQzMkxFKDQqWSk7dmFyIEI9dGhpcy5fYSxXPXRoaXMuX2IsWj10aGlzLl9jLFg9dGhpcy5fZDtCPUgoQixXLFosWCxMWzBdLDM2MTQwOTAzNjAsNyksWD1IKFgsQixXLFosTFsxXSwzOTA1NDAy'@; put 'NzEwLDEyKSxaPUgoWixYLEIsVyxMWzJdLDYwNjEwNTgxOSwxNyksVz1IKFcsWixYLEIsTFszXSwzMjUwNDQxOTY2LDIyKSxCPUgoQixXLFosWCxMWzRdLDQxMTg1NDgzOTksNyksWD1IKFgsQixXLFosTFs1XSwxMjAwMDgwNDI2LDEyKSxaPUgoWixYLEIsVyxMWzZdLDI4MjE3MzU5NTUsMTcp'@; put 'LFc9SChXLFosWCxCLExbN10sNDI0OTI2MTMxMywyMiksQj1IKEIsVyxaLFgsTFs4XSwxNzcwMDM1NDE2LDcpLFg9SChYLEIsVyxaLExbOV0sMjMzNjU1Mjg3OSwxMiksWj1IKFosWCxCLFcsTFsxMF0sNDI5NDkyNTIzMywxNyksVz1IKFcsWixYLEIsTFsxMV0sMjMwNDU2MzEzNCwyMiksQj1I'@; put 'KEIsVyxaLFgsTFsxMl0sMTgwNDYwMzY4Miw3KSxYPUgoWCxCLFcsWixMWzEzXSw0MjU0NjI2MTk1LDEyKSxaPUgoWixYLEIsVyxMWzE0XSwyNzkyOTY1MDA2LDE3KSxCPVIoQixXPUgoVyxaLFgsQixMWzE1XSwxMjM2NTM1MzI5LDIyKSxaLFgsTFsxXSw0MTI5MTcwNzg2LDUpLFg9UihYLEIs'@; put 'VyxaLExbNl0sMzIyNTQ2NTY2NCw5KSxaPVIoWixYLEIsVyxMWzExXSw2NDM3MTc3MTMsMTQpLFc9UihXLFosWCxCLExbMF0sMzkyMTA2OTk5NCwyMCksQj1SKEIsVyxaLFgsTFs1XSwzNTkzNDA4NjA1LDUpLFg9UihYLEIsVyxaLExbMTBdLDM4MDE2MDgzLDkpLFo9UihaLFgsQixXLExbMTVd'@; put 'LDM2MzQ0ODg5NjEsMTQpLFc9UihXLFosWCxCLExbNF0sMzg4OTQyOTQ0OCwyMCksQj1SKEIsVyxaLFgsTFs5XSw1Njg0NDY0MzgsNSksWD1SKFgsQixXLFosTFsxNF0sMzI3NTE2MzYwNiw5KSxaPVIoWixYLEIsVyxMWzNdLDQxMDc2MDMzMzUsMTQpLFc9UihXLFosWCxCLExbOF0sMTE2MzUz'@; put 'MTUwMSwyMCksQj1SKEIsVyxaLFgsTFsxM10sMjg1MDI4NTgyOSw1KSxYPVIoWCxCLFcsWixMWzJdLDQyNDM1NjM1MTIsOSksWj1SKFosWCxCLFcsTFs3XSwxNzM1MzI4NDczLDE0KSxCPWooQixXPVIoVyxaLFgsQixMWzEyXSwyMzY4MzU5NTYyLDIwKSxaLFgsTFs1XSw0Mjk0NTg4NzM4LDQp'@; put 'LFg9aihYLEIsVyxaLExbOF0sMjI3MjM5MjgzMywxMSksWj1qKFosWCxCLFcsTFsxMV0sMTgzOTAzMDU2MiwxNiksVz1qKFcsWixYLEIsTFsxNF0sNDI1OTY1Nzc0MCwyMyksQj1qKEIsVyxaLFgsTFsxXSwyNzYzOTc1MjM2LDQpLFg9aihYLEIsVyxaLExbNF0sMTI3Mjg5MzM1MywxMSksWj1q'@; put 'KFosWCxCLFcsTFs3XSw0MTM5NDY5NjY0LDE2KSxXPWooVyxaLFgsQixMWzEwXSwzMjAwMjM2NjU2LDIzKSxCPWooQixXLFosWCxMWzEzXSw2ODEyNzkxNzQsNCksWD1qKFgsQixXLFosTFswXSwzOTM2NDMwMDc0LDExKSxaPWooWixYLEIsVyxMWzNdLDM1NzI0NDUzMTcsMTYpLFc9aihXLFos'@; put 'WCxCLExbNl0sNzYwMjkxODksMjMpLEI9aihCLFcsWixYLExbOV0sMzY1NDYwMjgwOSw0KSxYPWooWCxCLFcsWixMWzEyXSwzODczMTUxNDYxLDExKSxaPWooWixYLEIsVyxMWzE1XSw1MzA3NDI1MjAsMTYpLEI9UChCLFc9aihXLFosWCxCLExbMl0sMzI5OTYyODY0NSwyMyksWixYLExbMF0s'@; put 'NDA5NjMzNjQ1Miw2KSxYPVAoWCxCLFcsWixMWzddLDExMjY4OTE0MTUsMTApLFo9UChaLFgsQixXLExbMTRdLDI4Nzg2MTIzOTEsMTUpLFc9UChXLFosWCxCLExbNV0sNDIzNzUzMzI0MSwyMSksQj1QKEIsVyxaLFgsTFsxMl0sMTcwMDQ4NTU3MSw2KSxYPVAoWCxCLFcsWixMWzNdLDIzOTk5'@; put 'ODA2OTAsMTApLFo9UChaLFgsQixXLExbMTBdLDQyOTM5MTU3NzMsMTUpLFc9UChXLFosWCxCLExbMV0sMjI0MDA0NDQ5NywyMSksQj1QKEIsVyxaLFgsTFs4XSwxODczMzEzMzU5LDYpLFg9UChYLEIsVyxaLExbMTVdLDQyNjQzNTU1NTIsMTApLFo9UChaLFgsQixXLExbNl0sMjczNDc2ODkx'@; put 'NiwxNSksVz1QKFcsWixYLEIsTFsxM10sMTMwOTE1MTY0OSwyMSksQj1QKEIsVyxaLFgsTFs0XSw0MTQ5NDQ0MjI2LDYpLFg9UChYLEIsVyxaLExbMTFdLDMxNzQ3NTY5MTcsMTApLFo9UChaLFgsQixXLExbMl0sNzE4Nzg3MjU5LDE1KSxXPVAoVyxaLFgsQixMWzldLDM5NTE0ODE3NDUsMjEp'@; put 'LHRoaXMuX2E9dGhpcy5fYStCfDAsdGhpcy5fYj10aGlzLl9iK1d8MCx0aGlzLl9jPXRoaXMuX2MrWnwwLHRoaXMuX2Q9dGhpcy5fZCtYfDB9LHcucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24oKXt0aGlzLl9ibG9ja1t0aGlzLl9ibG9ja09mZnNldCsrXT0xMjgsdGhpcy5fYmxvY2tPZmZz'@; put 'ZXQ+NTYmJih0aGlzLl9ibG9jay5maWxsKDAsdGhpcy5fYmxvY2tPZmZzZXQsNjQpLHRoaXMuX3VwZGF0ZSgpLHRoaXMuX2Jsb2NrT2Zmc2V0PTApLHRoaXMuX2Jsb2NrLmZpbGwoMCx0aGlzLl9ibG9ja09mZnNldCw1NiksdGhpcy5fYmxvY2sud3JpdGVVSW50MzJMRSh0aGlzLl9sZW5ndGhb'@; put 'MF0sNTYpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyTEUodGhpcy5fbGVuZ3RoWzFdLDYwKSx0aGlzLl91cGRhdGUoKTt2YXIgTD1wLmFsbG9jVW5zYWZlKDE2KTtyZXR1cm4gTC53cml0ZUludDMyTEUodGhpcy5fYSwwKSxMLndyaXRlSW50MzJMRSh0aGlzLl9iLDQpLEwud3JpdGVJbnQzMkxF'@; put 'KHRoaXMuX2MsOCksTC53cml0ZUludDMyTEUodGhpcy5fZCwxMiksTH0sY2UuZXhwb3J0cz13fSw1MzQ1OTooY2UsSixiKT0+e3ZhciBEPWIoNTcyMjMpLF89YigzNTI5NCk7ZnVuY3Rpb24gcChOKXt0aGlzLnJhbmQ9Tnx8bmV3IF8uUmFuZH1jZS5leHBvcnRzPXAscC5jcmVhdGU9ZnVuY3Rp'@; put 'b24odyl7cmV0dXJuIG5ldyBwKHcpfSxwLnByb3RvdHlwZS5fcmFuZGJlbG93PWZ1bmN0aW9uKHcpe3ZhciBGPXcuYml0TGVuZ3RoKCksSD1NYXRoLmNlaWwoRi84KTtkb3t2YXIgUj1uZXcgRCh0aGlzLnJhbmQuZ2VuZXJhdGUoSCkpfXdoaWxlKFIuY21wKHcpPj0wKTtyZXR1cm4gUn0scC5w'@; put 'cm90b3R5cGUuX3JhbmRyYW5nZT1mdW5jdGlvbih3LEYpe3ZhciBIPUYuc3ViKHcpO3JldHVybiB3LmFkZCh0aGlzLl9yYW5kYmVsb3coSCkpfSxwLnByb3RvdHlwZS50ZXN0PWZ1bmN0aW9uKHcsRixIKXt2YXIgUj13LmJpdExlbmd0aCgpLGo9RC5tb250KHcpLFA9bmV3IEQoMSkudG9SZWQo'@; put 'aik7Rnx8KEY9TWF0aC5tYXgoMSxSLzQ4fDApKTtmb3IodmFyIEw9dy5zdWJuKDEpLFk9MDshTC50ZXN0bihZKTtZKyspO2Zvcih2YXIgQj13LnNocm4oWSksVz1MLnRvUmVkKGopO0Y+MDtGLS0pe3ZhciBYPXRoaXMuX3JhbmRyYW5nZShuZXcgRCgyKSxMKTtIJiZIKFgpO3ZhciBRPVgudG9S'@; put 'ZWQoaikucmVkUG93KEIpO2lmKDAhPT1RLmNtcChQKSYmMCE9PVEuY21wKFcpKXtmb3IodmFyIHE9MTtxPFk7cSsrKXtpZigwPT09KFE9US5yZWRTcXIoKSkuY21wKFApKXJldHVybiExO2lmKDA9PT1RLmNtcChXKSlicmVha31pZihxPT09WSlyZXR1cm4hMX19cmV0dXJuITB9LHAucHJvdG90'@; put 'eXBlLmdldERpdmlzb3I9ZnVuY3Rpb24odyxGKXt2YXIgSD13LmJpdExlbmd0aCgpLFI9RC5tb250KHcpLGo9bmV3IEQoMSkudG9SZWQoUik7Rnx8KEY9TWF0aC5tYXgoMSxILzQ4fDApKTtmb3IodmFyIFA9dy5zdWJuKDEpLEw9MDshUC50ZXN0bihMKTtMKyspO2Zvcih2YXIgWT13LnNocm4o'@; put 'TCksQj1QLnRvUmVkKFIpO0Y+MDtGLS0pe3ZhciBXPXRoaXMuX3JhbmRyYW5nZShuZXcgRCgyKSxQKSxaPXcuZ2NkKFcpO2lmKDAhPT1aLmNtcG4oMSkpcmV0dXJuIFo7dmFyIFg9Vy50b1JlZChSKS5yZWRQb3coWSk7aWYoMCE9PVguY21wKGopJiYwIT09WC5jbXAoQikpe2Zvcih2YXIgUT0x'@; put 'O1E8TDtRKyspe2lmKDA9PT0oWD1YLnJlZFNxcigpKS5jbXAoaikpcmV0dXJuIFguZnJvbVJlZCgpLnN1Ym4oMSkuZ2NkKHcpO2lmKDA9PT1YLmNtcChCKSlicmVha31pZihRPT09TClyZXR1cm4oWD1YLnJlZFNxcigpKS5mcm9tUmVkKCkuc3VibigxKS5nY2Qodyl9fXJldHVybiExfX0sNTcy'@; put 'MjM6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCxfKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcCh6LGcpe2lmKCF6KXRocm93IG5ldyBFcnJvcihnfHwiQXNzZXJ0aW9uIGZhaWxlZCIpfWZ1bmN0aW9uIE4oeixnKXt6LnN1cGVyXz1nO3ZhciB5PWZ1bmN0aW9uKCl7fTt5LnByb3RvdHlw'@; put 'ZT1nLnByb3RvdHlwZSx6LnByb3RvdHlwZT1uZXcgeSx6LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj16fWZ1bmN0aW9uIHcoeixnLHkpe2lmKHcuaXNCTih6KSlyZXR1cm4gejt0aGlzLm5lZ2F0aXZlPTAsdGhpcy53b3Jkcz1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5yZWQ9bnVsbCxudWxsIT09'@; put 'eiYmKCgibGUiPT09Z3x8ImJlIj09PWcpJiYoeT1nLGc9MTApLHRoaXMuX2luaXQoenx8MCxnfHwxMCx5fHwiYmUiKSl9dmFyIEY7Im9iamVjdCI9PXR5cGVvZiBEP0QuZXhwb3J0cz13Ol8uQk49dyx3LkJOPXcsdy53b3JkU2l6ZT0yNjt0cnl7Rj10eXBlb2Ygd2luZG93PCJ1IiYmdHlwZW9m'@; put 'IHdpbmRvdy5CdWZmZXI8InUiP3dpbmRvdy5CdWZmZXI6Yig2NDY4OCkuQnVmZmVyfWNhdGNoe31mdW5jdGlvbiBIKHosZyl7dmFyIHk9ei5jaGFyQ29kZUF0KGcpO3JldHVybiB5Pj02NSYmeTw9NzA/eS01NTp5Pj05NyYmeTw9MTAyP3ktODc6eS00OCYxNX1mdW5jdGlvbiBSKHosZyx5KXt2'@; put 'YXIgeD1IKHoseSk7cmV0dXJuIHktMT49ZyYmKHh8PUgoeix5LTEpPDw0KSx4fWZ1bmN0aW9uIGooeixnLHkseCl7Zm9yKHZhciBDPTAsVD1NYXRoLm1pbih6Lmxlbmd0aCx5KSxWPWc7VjxUO1YrKyl7dmFyIFU9ei5jaGFyQ29kZUF0KFYpLTQ4O0MqPXgsQys9VT49NDk/VS00OSsxMDpVPj0x'@; put 'Nz9VLTE3KzEwOlV9cmV0dXJuIEN9dy5pc0JOPWZ1bmN0aW9uKGcpe3JldHVybiBnIGluc3RhbmNlb2Ygd3x8bnVsbCE9PWcmJiJvYmplY3QiPT10eXBlb2YgZyYmZy5jb25zdHJ1Y3Rvci53b3JkU2l6ZT09PXcud29yZFNpemUmJkFycmF5LmlzQXJyYXkoZy53b3Jkcyl9LHcubWF4PWZ1bmN0'@; put 'aW9uKGcseSl7cmV0dXJuIGcuY21wKHkpPjA/Zzp5fSx3Lm1pbj1mdW5jdGlvbihnLHkpe3JldHVybiBnLmNtcCh5KTwwP2c6eX0sdy5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oZyx5LHgpe2lmKCJudW1iZXIiPT10eXBlb2YgZylyZXR1cm4gdGhpcy5faW5pdE51bWJlcihnLHkseCk7aWYo'@; put 'Im9iamVjdCI9PXR5cGVvZiBnKXJldHVybiB0aGlzLl9pbml0QXJyYXkoZyx5LHgpOyJoZXgiPT09eSYmKHk9MTYpLHAoeT09PSgwfHkpJiZ5Pj0yJiZ5PD0zNik7dmFyIEM9MDsiLSI9PT0oZz1nLnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpKVswXSYmKEMrKyx0aGlzLm5lZ2F0aXZl'@; put 'PTEpLEM8Zy5sZW5ndGgmJigxNj09PXk/dGhpcy5fcGFyc2VIZXgoZyxDLHgpOih0aGlzLl9wYXJzZUJhc2UoZyx5LEMpLCJsZSI9PT14JiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCkseSx4KSkpfSx3LnByb3RvdHlwZS5faW5pdE51bWJlcj1mdW5jdGlvbihnLHkseCl7ZzwwJiYo'@; put 'dGhpcy5uZWdhdGl2ZT0xLGc9LWcpLGc8NjcxMDg4NjQ/KHRoaXMud29yZHM9WzY3MTA4ODYzJmddLHRoaXMubGVuZ3RoPTEpOmc8NDUwMzU5OTYyNzM3MDQ5Nj8odGhpcy53b3Jkcz1bNjcxMDg4NjMmZyxnLzY3MTA4ODY0JjY3MTA4ODYzXSx0aGlzLmxlbmd0aD0yKToocChnPDkwMDcxOTky'@; put 'NTQ3NDA5OTIpLHRoaXMud29yZHM9WzY3MTA4ODYzJmcsZy82NzEwODg2NCY2NzEwODg2MywxXSx0aGlzLmxlbmd0aD0zKSwibGUiPT09eCYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLHkseCl9LHcucHJvdG90eXBlLl9pbml0QXJyYXk9ZnVuY3Rpb24oZyx5LHgpe2lmKHAoIm51'@; put 'bWJlciI9PXR5cGVvZiBnLmxlbmd0aCksZy5sZW5ndGg8PTApcmV0dXJuIHRoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTEsdGhpczt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoZy5sZW5ndGgvMyksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgQz0wO0M8dGhpcy5s'@; put 'ZW5ndGg7QysrKXRoaXMud29yZHNbQ109MDt2YXIgVCxWLFU9MDtpZigiYmUiPT09eClmb3IoQz1nLmxlbmd0aC0xLFQ9MDtDPj0wO0MtPTMpdGhpcy53b3Jkc1tUXXw9KFY9Z1tDXXxnW0MtMV08PDh8Z1tDLTJdPDwxNik8PFUmNjcxMDg4NjMsdGhpcy53b3Jkc1tUKzFdPVY+Pj4yNi1VJjY3'@; put 'MTA4ODYzLChVKz0yNCk+PTI2JiYoVS09MjYsVCsrKTtlbHNlIGlmKCJsZSI9PT14KWZvcihDPTAsVD0wO0M8Zy5sZW5ndGg7Qys9Myl0aGlzLndvcmRzW1RdfD0oVj1nW0NdfGdbQysxXTw8OHxnW0MrMl08PDE2KTw8VSY2NzEwODg2Myx0aGlzLndvcmRzW1QrMV09Vj4+PjI2LVUmNjcxMDg4'@; put 'NjMsKFUrPTI0KT49MjYmJihVLT0yNixUKyspO3JldHVybiB0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLl9wYXJzZUhleD1mdW5jdGlvbihnLHkseCl7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKChnLmxlbmd0aC15KS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZh'@; put 'ciBDPTA7Qzx0aGlzLmxlbmd0aDtDKyspdGhpcy53b3Jkc1tDXT0wO3ZhciBVLFQ9MCxWPTA7aWYoImJlIj09PXgpZm9yKEM9Zy5sZW5ndGgtMTtDPj15O0MtPTIpVT1SKGcseSxDKTw8VCx0aGlzLndvcmRzW1ZdfD02NzEwODg2MyZVLFQ+PTE4PyhULT0xOCx0aGlzLndvcmRzW1YrPTFdfD1V'@; put 'Pj4+MjYpOlQrPTg7ZWxzZSBmb3IoQz0oZy5sZW5ndGgteSklMj09MD95KzE6eTtDPGcubGVuZ3RoO0MrPTIpVT1SKGcseSxDKTw8VCx0aGlzLndvcmRzW1ZdfD02NzEwODg2MyZVLFQ+PTE4PyhULT0xOCx0aGlzLndvcmRzW1YrPTFdfD1VPj4+MjYpOlQrPTg7dGhpcy5zdHJpcCgpfSx3LnBy'@; put 'b3RvdHlwZS5fcGFyc2VCYXNlPWZ1bmN0aW9uKGcseSx4KXt0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xO2Zvcih2YXIgQz0wLFQ9MTtUPD02NzEwODg2MztUKj15KUMrKztDLS0sVD1UL3l8MDtmb3IodmFyIFY9Zy5sZW5ndGgteCxVPVYlQyxFPU1hdGgubWluKFYsVi1VKSt4LG09MCxB'@; put 'PXg7QTxFO0ErPUMpbT1qKGcsQSxBK0MseSksdGhpcy5pbXVsbihUKSx0aGlzLndvcmRzWzBdK208NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9bTp0aGlzLl9pYWRkbihtKTtpZigwIT09VSl7dmFyIGFlPTE7Zm9yKG09aihnLEEsZy5sZW5ndGgseSksQT0wO0E8VTtBKyspYWUqPXk7dGhpcy5p'@; put 'bXVsbihhZSksdGhpcy53b3Jkc1swXSttPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPW06dGhpcy5faWFkZG4obSl9dGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKGcpe2cud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHk9MDt5PHRoaXMubGVuZ3Ro'@; put 'O3krKylnLndvcmRzW3ldPXRoaXMud29yZHNbeV07Zy5sZW5ndGg9dGhpcy5sZW5ndGgsZy5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLGcucmVkPXRoaXMucmVkfSx3LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciBnPW5ldyB3KG51bGwpO3JldHVybiB0aGlzLmNvcHkoZyksZ30sdy5w'@; put 'cm90b3R5cGUuX2V4cGFuZD1mdW5jdGlvbihnKXtmb3IoO3RoaXMubGVuZ3RoPGc7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4gdGhpc30sdy5wcm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3Ro'@; put 'LTFdOyl0aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSx3LnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sdy5wcm90b3R5cGUuaW5zcGVjdD1m'@; put 'dW5jdGlvbigpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgUD1bIiIsIjAiLCIwMCIsIjAwMCIsIjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAiLCIwMDAwMDAwMCIsIjAwMDAwMDAwMCIsIjAwMDAwMDAwMDAiLCIw'@; put 'MDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAw'@; put 'MDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXSxMPVswLDAsMjUsMTYsMTIs'@; put 'MTEsMTAsOSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLFk9WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4'@; put 'MDgsNjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1'@; put 'NDQzMiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07ZnVuY3Rpb24gVyh6LGcseSl7eS5uZWdhdGl2ZT1nLm5lZ2F0aXZlXnoubmVnYXRpdmU7dmFyIHg9ei5sZW5ndGgrZy5sZW5ndGh8MDt5Lmxlbmd0aD14LHg9eC0xfDA7dmFyIEM9MHx6LndvcmRzWzBdLFQ9MHxnLndv'@; put 'cmRzWzBdLFY9QypULEU9Vi82NzEwODg2NHwwO3kud29yZHNbMF09NjcxMDg4NjMmVjtmb3IodmFyIG09MTttPHg7bSsrKXtmb3IodmFyIEE9RT4+PjI2LGFlPTY3MTA4ODYzJkUsbmU9TWF0aC5taW4obSxnLmxlbmd0aC0xKSxsZT1NYXRoLm1heCgwLG0tei5sZW5ndGgrMSk7bGU8PW5lO2xl'@; put 'KyspQSs9KFY9KEM9MHx6LndvcmRzW20tbGV8MF0pKihUPTB8Zy53b3Jkc1tsZV0pK2FlKS82NzEwODg2NHwwLGFlPTY3MTA4ODYzJlY7eS53b3Jkc1ttXT0wfGFlLEU9MHxBfXJldHVybiAwIT09RT95LndvcmRzW21dPTB8RTp5Lmxlbmd0aC0tLHkuc3RyaXAoKX13LnByb3RvdHlwZS50b1N0'@; put 'cmluZz1mdW5jdGlvbihnLHkpe3ZhciB4O2lmKHk9MHx5fHwxLDE2PT09KGc9Z3x8MTApfHwiaGV4Ij09PWcpe3g9IiI7Zm9yKHZhciBDPTAsVD0wLFY9MDtWPHRoaXMubGVuZ3RoO1YrKyl7dmFyIFU9dGhpcy53b3Jkc1tWXSxFPSgxNjc3NzIxNSYoVTw8Q3xUKSkudG9TdHJpbmcoMTYpO1Q9'@; put 'VT4+PjI0LUMmMTY3NzcyMTUsKEMrPTIpPj0yNiYmKEMtPTI2LFYtLSkseD0wIT09VHx8ViE9PXRoaXMubGVuZ3RoLTE/UFs2LUUubGVuZ3RoXStFK3g6RSt4fWZvcigwIT09VCYmKHg9VC50b1N0cmluZygxNikreCk7eC5sZW5ndGgleSE9MDspeD0iMCIreDtyZXR1cm4gMCE9PXRoaXMubmVn'@; put 'YXRpdmUmJih4PSItIit4KSx4fWlmKGc9PT0oMHxnKSYmZz49MiYmZzw9MzYpe3ZhciBtPUxbZ10sQT1ZW2ddO3g9IiI7dmFyIGFlPXRoaXMuY2xvbmUoKTtmb3IoYWUubmVnYXRpdmU9MDshYWUuaXNaZXJvKCk7KXt2YXIgbmU9YWUubW9kbihBKS50b1N0cmluZyhnKTt4PShhZT1hZS5pZGl2'@; put 'bihBKSkuaXNaZXJvKCk/bmUreDpQW20tbmUubGVuZ3RoXStuZSt4fWZvcih0aGlzLmlzWmVybygpJiYoeD0iMCIreCk7eC5sZW5ndGgleSE9MDspeD0iMCIreDtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJih4PSItIit4KSx4fXAoITEsIkJhc2Ugc2hvdWxkIGJlIGJldHdlZW4gMiBhbmQg'@; put 'MzYiKX0sdy5wcm90b3R5cGUudG9OdW1iZXI9ZnVuY3Rpb24oKXt2YXIgZz10aGlzLndvcmRzWzBdO3JldHVybiAyPT09dGhpcy5sZW5ndGg/Zys9NjcxMDg4NjQqdGhpcy53b3Jkc1sxXTozPT09dGhpcy5sZW5ndGgmJjE9PT10aGlzLndvcmRzWzJdP2crPTQ1MDM1OTk2MjczNzA0OTYrNjcx'@; put 'MDg4NjQqdGhpcy53b3Jkc1sxXTp0aGlzLmxlbmd0aD4yJiZwKCExLCJOdW1iZXIgY2FuIG9ubHkgc2FmZWx5IHN0b3JlIHVwIHRvIDUzIGJpdHMiKSwwIT09dGhpcy5uZWdhdGl2ZT8tZzpnfSx3LnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygxNil9'@; put 'LHcucHJvdG90eXBlLnRvQnVmZmVyPWZ1bmN0aW9uKGcseSl7cmV0dXJuIHAodHlwZW9mIEY8InUiKSx0aGlzLnRvQXJyYXlMaWtlKEYsZyx5KX0sdy5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbihnLHkpe3JldHVybiB0aGlzLnRvQXJyYXlMaWtlKEFycmF5LGcseSl9LHcucHJvdG90eXBl'@; put 'LnRvQXJyYXlMaWtlPWZ1bmN0aW9uKGcseSx4KXt2YXIgQz10aGlzLmJ5dGVMZW5ndGgoKSxUPXh8fE1hdGgubWF4KDEsQyk7cChDPD1ULCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIikscChUPjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpLHRoaXMuc3Ry'@; put 'aXAoKTt2YXIgRSxtLFY9ImxlIj09PXksVT1uZXcgZyhUKSxBPXRoaXMuY2xvbmUoKTtpZihWKXtmb3IobT0wOyFBLmlzWmVybygpO20rKylFPUEuYW5kbG4oMjU1KSxBLml1c2hybig4KSxVW21dPUU7Zm9yKDttPFQ7bSsrKVVbbV09MH1lbHNle2ZvcihtPTA7bTxULUM7bSsrKVVbbV09MDtm'@; put 'b3IobT0wOyFBLmlzWmVybygpO20rKylFPUEuYW5kbG4oMjU1KSxBLml1c2hybig4KSxVW1QtbS0xXT1FfXJldHVybiBVfSx3LnByb3RvdHlwZS5fY291bnRCaXRzPU1hdGguY2x6MzI/ZnVuY3Rpb24oZyl7cmV0dXJuIDMyLU1hdGguY2x6MzIoZyl9OmZ1bmN0aW9uKGcpe3ZhciB5PWcseD0w'@; put 'O3JldHVybiB5Pj00MDk2JiYoeCs9MTMseT4+Pj0xMykseT49NjQmJih4Kz03LHk+Pj49NykseT49OCYmKHgrPTQseT4+Pj00KSx5Pj0yJiYoeCs9Mix5Pj4+PTIpLHgreX0sdy5wcm90b3R5cGUuX3plcm9CaXRzPWZ1bmN0aW9uKGcpe2lmKDA9PT1nKXJldHVybiAyNjt2YXIgeT1nLHg9MDty'@; put 'ZXR1cm4gODE5MSZ5fHwoeCs9MTMseT4+Pj0xMyksMTI3Jnl8fCh4Kz03LHk+Pj49NyksMTUmeXx8KHgrPTQseT4+Pj00KSwzJnl8fCh4Kz0yLHk+Pj49MiksMSZ5fHx4KysseH0sdy5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5fY291bnRCaXRzKHRoaXMud29y'@; put 'ZHNbdGhpcy5sZW5ndGgtMV0pO3JldHVybiAyNioodGhpcy5sZW5ndGgtMSkreX0sdy5wcm90b3R5cGUuemVyb0JpdHM9ZnVuY3Rpb24oKXtpZih0aGlzLmlzWmVybygpKXJldHVybiAwO2Zvcih2YXIgZz0wLHk9MDt5PHRoaXMubGVuZ3RoO3krKyl7dmFyIHg9dGhpcy5femVyb0JpdHModGhp'@; put 'cy53b3Jkc1t5XSk7aWYoZys9eCwyNiE9PXgpYnJlYWt9cmV0dXJuIGd9LHcucHJvdG90eXBlLmJ5dGVMZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5jZWlsKHRoaXMuYml0TGVuZ3RoKCkvOCl9LHcucHJvdG90eXBlLnRvVHdvcz1mdW5jdGlvbihnKXtyZXR1cm4gMCE9PXRoaXMubmVn'@; put 'YXRpdmU/dGhpcy5hYnMoKS5pbm90bihnKS5pYWRkbigxKTp0aGlzLmNsb25lKCl9LHcucHJvdG90eXBlLmZyb21Ud29zPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLnRlc3RuKGctMSk/dGhpcy5ub3RuKGcpLmlhZGRuKDEpLmluZWcoKTp0aGlzLmNsb25lKCl9LHcucHJvdG90eXBlLmlzTmVn'@; put 'PWZ1bmN0aW9uKCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlfSx3LnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmluZWcoKX0sdy5wcm90b3R5cGUuaW5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzWmVybygpfHwodGhpcy5uZWdhdGl2ZV49MSksdGhp'@; put 'c30sdy5wcm90b3R5cGUuaXVvcj1mdW5jdGlvbihnKXtmb3IoO3RoaXMubGVuZ3RoPGcubGVuZ3RoOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7Zm9yKHZhciB5PTA7eTxnLmxlbmd0aDt5KyspdGhpcy53b3Jkc1t5XT10aGlzLndvcmRzW3ldfGcud29yZHNbeV07cmV0dXJuIHRoaXMu'@; put 'c3RyaXAoKX0sdy5wcm90b3R5cGUuaW9yPWZ1bmN0aW9uKGcpe3JldHVybiBwKCEodGhpcy5uZWdhdGl2ZXxnLm5lZ2F0aXZlKSksdGhpcy5pdW9yKGcpfSx3LnByb3RvdHlwZS5vcj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLmlvcihnKTpn'@; put 'LmNsb25lKCkuaW9yKHRoaXMpfSx3LnByb3RvdHlwZS51b3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdW9yKGcpOmcuY2xvbmUoKS5pdW9yKHRoaXMpfSx3LnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbihnKXt2YXIgeTt5PXRoaXMubGVu'@; put 'Z3RoPmcubGVuZ3RoP2c6dGhpcztmb3IodmFyIHg9MDt4PHkubGVuZ3RoO3grKyl0aGlzLndvcmRzW3hdPXRoaXMud29yZHNbeF0mZy53b3Jkc1t4XTtyZXR1cm4gdGhpcy5sZW5ndGg9eS5sZW5ndGgsdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKGcpe3JldHVybiBw'@; put 'KCEodGhpcy5uZWdhdGl2ZXxnLm5lZ2F0aXZlKSksdGhpcy5pdWFuZChnKX0sdy5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZChnKTpnLmNsb25lKCkuaWFuZCh0aGlzKX0sdy5wcm90b3R5cGUudWFuZD1mdW5j'@; put 'dGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLml1YW5kKGcpOmcuY2xvbmUoKS5pdWFuZCh0aGlzKX0sdy5wcm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24oZyl7dmFyIHkseDt0aGlzLmxlbmd0aD5nLmxlbmd0aD8oeT10aGlzLHg9Zyk6KHk9Zyx4PXRoaXMp'@; put 'O2Zvcih2YXIgQz0wO0M8eC5sZW5ndGg7QysrKXRoaXMud29yZHNbQ109eS53b3Jkc1tDXV54LndvcmRzW0NdO2lmKHRoaXMhPT15KWZvcig7Qzx5Lmxlbmd0aDtDKyspdGhpcy53b3Jkc1tDXT15LndvcmRzW0NdO3JldHVybiB0aGlzLmxlbmd0aD15Lmxlbmd0aCx0aGlzLnN0cmlwKCl9LHcu'@; put 'cHJvdG90eXBlLml4b3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHAoISh0aGlzLm5lZ2F0aXZlfGcubmVnYXRpdmUpKSx0aGlzLml1eG9yKGcpfSx3LnByb3RvdHlwZS54b3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5peG9yKGcpOmcuY2xvbmUo'@; put 'KS5peG9yKHRoaXMpfSx3LnByb3RvdHlwZS51eG9yPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaXV4b3IoZyk6Zy5jbG9uZSgpLml1eG9yKHRoaXMpfSx3LnByb3RvdHlwZS5pbm90bj1mdW5jdGlvbihnKXtwKCJudW1iZXIiPT10eXBlb2Yg'@; put 'ZyYmZz49MCk7dmFyIHk9MHxNYXRoLmNlaWwoZy8yNikseD1nJTI2O3RoaXMuX2V4cGFuZCh5KSx4PjAmJnktLTtmb3IodmFyIEM9MDtDPHk7QysrKXRoaXMud29yZHNbQ109NjcxMDg4NjMmfnRoaXMud29yZHNbQ107cmV0dXJuIHg+MCYmKHRoaXMud29yZHNbQ109fnRoaXMud29yZHNbQ10m'@; put 'NjcxMDg4NjM+PjI2LXgpLHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUubm90bj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlub3RuKGcpfSx3LnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uKGcseSl7cCgibnVtYmVyIj09dHlwZW9mIGcmJmc+PTApO3ZhciB4PWcvMjZ8MCxDPWcl'@; put 'MjY7cmV0dXJuIHRoaXMuX2V4cGFuZCh4KzEpLHRoaXMud29yZHNbeF09eT90aGlzLndvcmRzW3hdfDE8PEM6dGhpcy53b3Jkc1t4XSZ+KDE8PEMpLHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbihnKXt2YXIgeSx4LEM7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1n'@; put 'Lm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAseT10aGlzLmlzdWIoZyksdGhpcy5uZWdhdGl2ZV49MSx0aGlzLl9ub3JtU2lnbigpO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Zy5uZWdhdGl2ZSlyZXR1cm4gZy5uZWdhdGl2ZT0wLHk9dGhpcy5pc3ViKGcpLGcubmVnYXRpdmU9'@; put 'MSx5Ll9ub3JtU2lnbigpO3RoaXMubGVuZ3RoPmcubGVuZ3RoPyh4PXRoaXMsQz1nKTooeD1nLEM9dGhpcyk7Zm9yKHZhciBUPTAsVj0wO1Y8Qy5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09NjcxMDg4NjMmKHk9KDB8eC53b3Jkc1tWXSkrKDB8Qy53b3Jkc1tWXSkrVCksVD15Pj4+MjY7Zm9y'@; put 'KDswIT09VCYmVjx4Lmxlbmd0aDtWKyspdGhpcy53b3Jkc1tWXT02NzEwODg2MyYoeT0oMHx4LndvcmRzW1ZdKStUKSxUPXk+Pj4yNjtpZih0aGlzLmxlbmd0aD14Lmxlbmd0aCwwIT09VCl0aGlzLndvcmRzW3RoaXMubGVuZ3RoXT1ULHRoaXMubGVuZ3RoKys7ZWxzZSBpZih4IT09dGhpcylm'@; put 'b3IoO1Y8eC5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09eC53b3Jkc1tWXTtyZXR1cm4gdGhpc30sdy5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGcpe3ZhciB5O3JldHVybiAwIT09Zy5uZWdhdGl2ZSYmMD09PXRoaXMubmVnYXRpdmU/KGcubmVnYXRpdmU9MCx5PXRoaXMuc3ViKGcpLGcubmVn'@; put 'YXRpdmVePTEseSk6MD09PWcubmVnYXRpdmUmJjAhPT10aGlzLm5lZ2F0aXZlPyh0aGlzLm5lZ2F0aXZlPTAseT1nLnN1Yih0aGlzKSx0aGlzLm5lZ2F0aXZlPTEseSk6dGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhZGQoZyk6Zy5jbG9uZSgpLmlhZGQodGhpcyl9LHcucHJv'@; put 'dG90eXBlLmlzdWI9ZnVuY3Rpb24oZyl7aWYoMCE9PWcubmVnYXRpdmUpe2cubmVnYXRpdmU9MDt2YXIgeT10aGlzLmlhZGQoZyk7cmV0dXJuIGcubmVnYXRpdmU9MSx5Ll9ub3JtU2lnbigpfWlmKDAhPT10aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkKGcp'@; put 'LHRoaXMubmVnYXRpdmU9MSx0aGlzLl9ub3JtU2lnbigpO3ZhciBDLFQseD10aGlzLmNtcChnKTtpZigwPT09eClyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMubGVuZ3RoPTEsdGhpcy53b3Jkc1swXT0wLHRoaXM7eD4wPyhDPXRoaXMsVD1nKTooQz1nLFQ9dGhpcyk7Zm9yKHZhciBWPTAs'@; put 'VT0wO1U8VC5sZW5ndGg7VSsrKVY9KHk9KDB8Qy53b3Jkc1tVXSktKDB8VC53b3Jkc1tVXSkrVik+PjI2LHRoaXMud29yZHNbVV09NjcxMDg4NjMmeTtmb3IoOzAhPT1WJiZVPEMubGVuZ3RoO1UrKylWPSh5PSgwfEMud29yZHNbVV0pK1YpPj4yNix0aGlzLndvcmRzW1VdPTY3MTA4ODYzJnk7'@; put 'aWYoMD09PVYmJlU8Qy5sZW5ndGgmJkMhPT10aGlzKWZvcig7VTxDLmxlbmd0aDtVKyspdGhpcy53b3Jkc1tVXT1DLndvcmRzW1VdO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxVKSxDIT09dGhpcyYmKHRoaXMubmVnYXRpdmU9MSksdGhpcy5zdHJpcCgpfSx3LnBy'@; put 'b3RvdHlwZS5zdWI9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKGcpfTt2YXIgWj1mdW5jdGlvbihnLHkseCl7dmFyIEUsbSxBLEM9Zy53b3JkcyxUPXkud29yZHMsVj14LndvcmRzLFU9MCxhZT0wfENbMF0sbmU9ODE5MSZhZSxsZT1hZT4+PjEzLHdlPTB8Q1sxXSxaZT04'@; put 'MTkxJndlLFFlPXdlPj4+MTMsYXQ9MHxDWzJdLHhlPTgxOTEmYXQsdmU9YXQ+Pj4xMyxxZT0wfENbM10samU9ODE5MSZxZSxBZT1xZT4+PjEzLEZlPTB8Q1s0XSxSZT04MTkxJkZlLEllPUZlPj4+MTMsSGU9MHxDWzVdLERlPTgxOTEmSGUsa2U9SGU+Pj4xMyxfdD0wfENbNl0sbnQ9ODE5MSZf'@; put 'dCxKZT1fdD4+PjEzLG9uPTB8Q1s3XSx5dD04MTkxJm9uLE10PW9uPj4+MTMsSXQ9MHxDWzhdLHJ0PTgxOTEmSXQsS2U9SXQ+Pj4xMyx0dD0wfENbOV0sTmU9ODE5MSZ0dCx1dD10dD4+PjEzLEp0PTB8VFswXSxMdD04MTkxJkp0LFB0PUp0Pj4+MTMsb2k9MHxUWzFdLGVuPTgxOTEmb2ksc249'@; put 'b2k+Pj4xMyxJaT0wfFRbMl0sZG49ODE5MSZJaSxmdD1JaT4+PjEzLEZyPTB8VFszXSxadD04MTkxJkZyLGt0PUZyPj4+MTMsTG49MHxUWzRdLG90PTgxOTEmTG4senQ9TG4+Pj4xMyxuaT0wfFRbNV0sV2U9ODE5MSZuaSxBdD1uaT4+PjEzLGlyPTB8VFs2XSxodD04MTkxJmlyLEV0PWlyPj4+'@; put 'MTMsem49MHxUWzddLGFuPTgxOTEmem4sanQ9em4+Pj4xMyxkaT0wfFRbOF0sY249ODE5MSZkaSxmbj1kaT4+PjEzLERpPTB8VFs5XSxRdD04MTkxJkRpLHRuPURpPj4+MTM7eC5uZWdhdGl2ZT1nLm5lZ2F0aXZlXnkubmVnYXRpdmUseC5sZW5ndGg9MTk7dmFyIGNhPShVKyhFPU1hdGguaW11'@; put 'bChuZSxMdCkpfDApKygoODE5MSYobT0obT1NYXRoLmltdWwobmUsUHQpKStNYXRoLmltdWwobGUsTHQpfDApKTw8MTMpfDA7VT0oKEE9TWF0aC5pbXVsKGxlLFB0KSkrKG0+Pj4xMyl8MCkrKGNhPj4+MjYpfDAsY2EmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKFplLEx0KSxtPShtPU1hdGguaW11'@; put 'bChaZSxQdCkpK01hdGguaW11bChRZSxMdCl8MCxBPU1hdGguaW11bChRZSxQdCk7dmFyIHhpPShVKyhFPUUrTWF0aC5pbXVsKG5lLGVuKXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsc24pfDApK01hdGguaW11bChsZSxlbil8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11'@; put 'bChsZSxzbil8MCkrKG0+Pj4xMyl8MCkrKHhpPj4+MjYpfDAseGkmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKHhlLEx0KSxtPShtPU1hdGguaW11bCh4ZSxQdCkpK01hdGguaW11bCh2ZSxMdCl8MCxBPU1hdGguaW11bCh2ZSxQdCksRT1FK01hdGguaW11bChaZSxlbil8MCxtPShtPW0rTWF0aC5p'@; put 'bXVsKFplLHNuKXwwKStNYXRoLmltdWwoUWUsZW4pfDAsQT1BK01hdGguaW11bChRZSxzbil8MDt2YXIgeXI9KFUrKEU9RStNYXRoLmltdWwobmUsZG4pfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSxmdCl8MCkrTWF0aC5pbXVsKGxlLGRuKXwwKSk8PDEzKXwwO1U9KChBPUEr'@; put 'TWF0aC5pbXVsKGxlLGZ0KXwwKSsobT4+PjEzKXwwKSsoeXI+Pj4yNil8MCx5ciY9NjcxMDg4NjMsRT1NYXRoLmltdWwoamUsTHQpLG09KG09TWF0aC5pbXVsKGplLFB0KSkrTWF0aC5pbXVsKEFlLEx0KXwwLEE9TWF0aC5pbXVsKEFlLFB0KSxFPUUrTWF0aC5pbXVsKHhlLGVuKXwwLG09KG09'@; put 'bStNYXRoLmltdWwoeGUsc24pfDApK01hdGguaW11bCh2ZSxlbil8MCxBPUErTWF0aC5pbXVsKHZlLHNuKXwwLEU9RStNYXRoLmltdWwoWmUsZG4pfDAsbT0obT1tK01hdGguaW11bChaZSxmdCl8MCkrTWF0aC5pbXVsKFFlLGRuKXwwLEE9QStNYXRoLmltdWwoUWUsZnQpfDA7dmFyIEduPShV'@; put 'KyhFPUUrTWF0aC5pbXVsKG5lLFp0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsa3QpfDApK01hdGguaW11bChsZSxadCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSxrdCl8MCkrKG0+Pj4xMyl8MCkrKEduPj4+MjYpfDAsR24mPTY3MTA4ODYzLEU9TWF0aC5p'@; put 'bXVsKFJlLEx0KSxtPShtPU1hdGguaW11bChSZSxQdCkpK01hdGguaW11bChJZSxMdCl8MCxBPU1hdGguaW11bChJZSxQdCksRT1FK01hdGguaW11bChqZSxlbil8MCxtPShtPW0rTWF0aC5pbXVsKGplLHNuKXwwKStNYXRoLmltdWwoQWUsZW4pfDAsQT1BK01hdGguaW11bChBZSxzbil8MCxF'@; put 'PUUrTWF0aC5pbXVsKHhlLGRuKXwwLG09KG09bStNYXRoLmltdWwoeGUsZnQpfDApK01hdGguaW11bCh2ZSxkbil8MCxBPUErTWF0aC5pbXVsKHZlLGZ0KXwwLEU9RStNYXRoLmltdWwoWmUsWnQpfDAsbT0obT1tK01hdGguaW11bChaZSxrdCl8MCkrTWF0aC5pbXVsKFFlLFp0KXwwLEE9QStN'@; put 'YXRoLmltdWwoUWUsa3QpfDA7dmFyIEtpPShVKyhFPUUrTWF0aC5pbXVsKG5lLG90KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsenQpfDApK01hdGguaW11bChsZSxvdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSx6dCl8MCkrKG0+Pj4xMyl8MCkrKEtpPj4+'@; put 'MjYpfDAsS2kmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKERlLEx0KSxtPShtPU1hdGguaW11bChEZSxQdCkpK01hdGguaW11bChrZSxMdCl8MCxBPU1hdGguaW11bChrZSxQdCksRT1FK01hdGguaW11bChSZSxlbil8MCxtPShtPW0rTWF0aC5pbXVsKFJlLHNuKXwwKStNYXRoLmltdWwoSWUsZW4p'@; put 'fDAsQT1BK01hdGguaW11bChJZSxzbil8MCxFPUUrTWF0aC5pbXVsKGplLGRuKXwwLG09KG09bStNYXRoLmltdWwoamUsZnQpfDApK01hdGguaW11bChBZSxkbil8MCxBPUErTWF0aC5pbXVsKEFlLGZ0KXwwLEU9RStNYXRoLmltdWwoeGUsWnQpfDAsbT0obT1tK01hdGguaW11bCh4ZSxrdCl8'@; put 'MCkrTWF0aC5pbXVsKHZlLFp0KXwwLEE9QStNYXRoLmltdWwodmUsa3QpfDAsRT1FK01hdGguaW11bChaZSxvdCl8MCxtPShtPW0rTWF0aC5pbXVsKFplLHp0KXwwKStNYXRoLmltdWwoUWUsb3QpfDAsQT1BK01hdGguaW11bChRZSx6dCl8MDt2YXIgSnI9KFUrKEU9RStNYXRoLmltdWwobmUs'@; put 'V2UpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSxBdCl8MCkrTWF0aC5pbXVsKGxlLFdlKXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKGxlLEF0KXwwKSsobT4+PjEzKXwwKSsoSnI+Pj4yNil8MCxKciY9NjcxMDg4NjMsRT1NYXRoLmltdWwobnQsTHQpLG09KG09TWF0'@; put 'aC5pbXVsKG50LFB0KSkrTWF0aC5pbXVsKEplLEx0KXwwLEE9TWF0aC5pbXVsKEplLFB0KSxFPUUrTWF0aC5pbXVsKERlLGVuKXwwLG09KG09bStNYXRoLmltdWwoRGUsc24pfDApK01hdGguaW11bChrZSxlbil8MCxBPUErTWF0aC5pbXVsKGtlLHNuKXwwLEU9RStNYXRoLmltdWwoUmUsZG4p'@; put 'fDAsbT0obT1tK01hdGguaW11bChSZSxmdCl8MCkrTWF0aC5pbXVsKEllLGRuKXwwLEE9QStNYXRoLmltdWwoSWUsZnQpfDAsRT1FK01hdGguaW11bChqZSxadCl8MCxtPShtPW0rTWF0aC5pbXVsKGplLGt0KXwwKStNYXRoLmltdWwoQWUsWnQpfDAsQT1BK01hdGguaW11bChBZSxrdCl8MCxF'@; put 'PUUrTWF0aC5pbXVsKHhlLG90KXwwLG09KG09bStNYXRoLmltdWwoeGUsenQpfDApK01hdGguaW11bCh2ZSxvdCl8MCxBPUErTWF0aC5pbXVsKHZlLHp0KXwwLEU9RStNYXRoLmltdWwoWmUsV2UpfDAsbT0obT1tK01hdGguaW11bChaZSxBdCl8MCkrTWF0aC5pbXVsKFFlLFdlKXwwLEE9QStN'@; put 'YXRoLmltdWwoUWUsQXQpfDA7dmFyIFFyPShVKyhFPUUrTWF0aC5pbXVsKG5lLGh0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsRXQpfDApK01hdGguaW11bChsZSxodCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSxFdCl8MCkrKG0+Pj4xMyl8MCkrKFFyPj4+'@; put 'MjYpfDAsUXImPTY3MTA4ODYzLEU9TWF0aC5pbXVsKHl0LEx0KSxtPShtPU1hdGguaW11bCh5dCxQdCkpK01hdGguaW11bChNdCxMdCl8MCxBPU1hdGguaW11bChNdCxQdCksRT1FK01hdGguaW11bChudCxlbil8MCxtPShtPW0rTWF0aC5pbXVsKG50LHNuKXwwKStNYXRoLmltdWwoSmUsZW4p'@; put 'fDAsQT1BK01hdGguaW11bChKZSxzbil8MCxFPUUrTWF0aC5pbXVsKERlLGRuKXwwLG09KG09bStNYXRoLmltdWwoRGUsZnQpfDApK01hdGguaW11bChrZSxkbil8MCxBPUErTWF0aC5pbXVsKGtlLGZ0KXwwLEU9RStNYXRoLmltdWwoUmUsWnQpfDAsbT0obT1tK01hdGguaW11bChSZSxrdCl8'@; put 'MCkrTWF0aC5pbXVsKEllLFp0KXwwLEE9QStNYXRoLmltdWwoSWUsa3QpfDAsRT1FK01hdGguaW11bChqZSxvdCl8MCxtPShtPW0rTWF0aC5pbXVsKGplLHp0KXwwKStNYXRoLmltdWwoQWUsb3QpfDAsQT1BK01hdGguaW11bChBZSx6dCl8MCxFPUUrTWF0aC5pbXVsKHhlLFdlKXwwLG09KG09'@; put 'bStNYXRoLmltdWwoeGUsQXQpfDApK01hdGguaW11bCh2ZSxXZSl8MCxBPUErTWF0aC5pbXVsKHZlLEF0KXwwLEU9RStNYXRoLmltdWwoWmUsaHQpfDAsbT0obT1tK01hdGguaW11bChaZSxFdCl8MCkrTWF0aC5pbXVsKFFlLGh0KXwwLEE9QStNYXRoLmltdWwoUWUsRXQpfDA7dmFyIE5pPShV'@; put 'KyhFPUUrTWF0aC5pbXVsKG5lLGFuKXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsanQpfDApK01hdGguaW11bChsZSxhbil8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChsZSxqdCl8MCkrKG0+Pj4xMyl8MCkrKE5pPj4+MjYpfDAsTmkmPTY3MTA4ODYzLEU9TWF0aC5p'@; put 'bXVsKHJ0LEx0KSxtPShtPU1hdGguaW11bChydCxQdCkpK01hdGguaW11bChLZSxMdCl8MCxBPU1hdGguaW11bChLZSxQdCksRT1FK01hdGguaW11bCh5dCxlbil8MCxtPShtPW0rTWF0aC5pbXVsKHl0LHNuKXwwKStNYXRoLmltdWwoTXQsZW4pfDAsQT1BK01hdGguaW11bChNdCxzbil8MCxF'@; put 'PUUrTWF0aC5pbXVsKG50LGRuKXwwLG09KG09bStNYXRoLmltdWwobnQsZnQpfDApK01hdGguaW11bChKZSxkbil8MCxBPUErTWF0aC5pbXVsKEplLGZ0KXwwLEU9RStNYXRoLmltdWwoRGUsWnQpfDAsbT0obT1tK01hdGguaW11bChEZSxrdCl8MCkrTWF0aC5pbXVsKGtlLFp0KXwwLEE9QStN'@; put 'YXRoLmltdWwoa2Usa3QpfDAsRT1FK01hdGguaW11bChSZSxvdCl8MCxtPShtPW0rTWF0aC5pbXVsKFJlLHp0KXwwKStNYXRoLmltdWwoSWUsb3QpfDAsQT1BK01hdGguaW11bChJZSx6dCl8MCxFPUUrTWF0aC5pbXVsKGplLFdlKXwwLG09KG09bStNYXRoLmltdWwoamUsQXQpfDApK01hdGgu'@; put 'aW11bChBZSxXZSl8MCxBPUErTWF0aC5pbXVsKEFlLEF0KXwwLEU9RStNYXRoLmltdWwoeGUsaHQpfDAsbT0obT1tK01hdGguaW11bCh4ZSxFdCl8MCkrTWF0aC5pbXVsKHZlLGh0KXwwLEE9QStNYXRoLmltdWwodmUsRXQpfDAsRT1FK01hdGguaW11bChaZSxhbil8MCxtPShtPW0rTWF0aC5p'@; put 'bXVsKFplLGp0KXwwKStNYXRoLmltdWwoUWUsYW4pfDAsQT1BK01hdGguaW11bChRZSxqdCl8MDt2YXIgSGk9KFUrKEU9RStNYXRoLmltdWwobmUsY24pfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSxmbil8MCkrTWF0aC5pbXVsKGxlLGNuKXwwKSk8PDEzKXwwO1U9KChBPUEr'@; put 'TWF0aC5pbXVsKGxlLGZuKXwwKSsobT4+PjEzKXwwKSsoSGk+Pj4yNil8MCxIaSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsTHQpLG09KG09TWF0aC5pbXVsKE5lLFB0KSkrTWF0aC5pbXVsKHV0LEx0KXwwLEE9TWF0aC5pbXVsKHV0LFB0KSxFPUUrTWF0aC5pbXVsKHJ0LGVuKXwwLG09KG09'@; put 'bStNYXRoLmltdWwocnQsc24pfDApK01hdGguaW11bChLZSxlbil8MCxBPUErTWF0aC5pbXVsKEtlLHNuKXwwLEU9RStNYXRoLmltdWwoeXQsZG4pfDAsbT0obT1tK01hdGguaW11bCh5dCxmdCl8MCkrTWF0aC5pbXVsKE10LGRuKXwwLEE9QStNYXRoLmltdWwoTXQsZnQpfDAsRT1FK01hdGgu'@; put 'aW11bChudCxadCl8MCxtPShtPW0rTWF0aC5pbXVsKG50LGt0KXwwKStNYXRoLmltdWwoSmUsWnQpfDAsQT1BK01hdGguaW11bChKZSxrdCl8MCxFPUUrTWF0aC5pbXVsKERlLG90KXwwLG09KG09bStNYXRoLmltdWwoRGUsenQpfDApK01hdGguaW11bChrZSxvdCl8MCxBPUErTWF0aC5pbXVs'@; put 'KGtlLHp0KXwwLEU9RStNYXRoLmltdWwoUmUsV2UpfDAsbT0obT1tK01hdGguaW11bChSZSxBdCl8MCkrTWF0aC5pbXVsKEllLFdlKXwwLEE9QStNYXRoLmltdWwoSWUsQXQpfDAsRT1FK01hdGguaW11bChqZSxodCl8MCxtPShtPW0rTWF0aC5pbXVsKGplLEV0KXwwKStNYXRoLmltdWwoQWUs'@; put 'aHQpfDAsQT1BK01hdGguaW11bChBZSxFdCl8MCxFPUUrTWF0aC5pbXVsKHhlLGFuKXwwLG09KG09bStNYXRoLmltdWwoeGUsanQpfDApK01hdGguaW11bCh2ZSxhbil8MCxBPUErTWF0aC5pbXVsKHZlLGp0KXwwLEU9RStNYXRoLmltdWwoWmUsY24pfDAsbT0obT1tK01hdGguaW11bChaZSxm'@; put 'bil8MCkrTWF0aC5pbXVsKFFlLGNuKXwwLEE9QStNYXRoLmltdWwoUWUsZm4pfDA7dmFyIElhPShVKyhFPUUrTWF0aC5pbXVsKG5lLFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobmUsdG4pfDApK01hdGguaW11bChsZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11'@; put 'bChsZSx0bil8MCkrKG0+Pj4xMyl8MCkrKElhPj4+MjYpfDAsSWEmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLGVuKSxtPShtPU1hdGguaW11bChOZSxzbikpK01hdGguaW11bCh1dCxlbil8MCxBPU1hdGguaW11bCh1dCxzbiksRT1FK01hdGguaW11bChydCxkbil8MCxtPShtPW0rTWF0aC5p'@; put 'bXVsKHJ0LGZ0KXwwKStNYXRoLmltdWwoS2UsZG4pfDAsQT1BK01hdGguaW11bChLZSxmdCl8MCxFPUUrTWF0aC5pbXVsKHl0LFp0KXwwLG09KG09bStNYXRoLmltdWwoeXQsa3QpfDApK01hdGguaW11bChNdCxadCl8MCxBPUErTWF0aC5pbXVsKE10LGt0KXwwLEU9RStNYXRoLmltdWwobnQs'@; put 'b3QpfDAsbT0obT1tK01hdGguaW11bChudCx6dCl8MCkrTWF0aC5pbXVsKEplLG90KXwwLEE9QStNYXRoLmltdWwoSmUsenQpfDAsRT1FK01hdGguaW11bChEZSxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKERlLEF0KXwwKStNYXRoLmltdWwoa2UsV2UpfDAsQT1BK01hdGguaW11bChrZSxBdCl8'@; put 'MCxFPUUrTWF0aC5pbXVsKFJlLGh0KXwwLG09KG09bStNYXRoLmltdWwoUmUsRXQpfDApK01hdGguaW11bChJZSxodCl8MCxBPUErTWF0aC5pbXVsKEllLEV0KXwwLEU9RStNYXRoLmltdWwoamUsYW4pfDAsbT0obT1tK01hdGguaW11bChqZSxqdCl8MCkrTWF0aC5pbXVsKEFlLGFuKXwwLEE9'@; put 'QStNYXRoLmltdWwoQWUsanQpfDAsRT1FK01hdGguaW11bCh4ZSxjbil8MCxtPShtPW0rTWF0aC5pbXVsKHhlLGZuKXwwKStNYXRoLmltdWwodmUsY24pfDAsQT1BK01hdGguaW11bCh2ZSxmbil8MDt2YXIgUHI9KFUrKEU9RStNYXRoLmltdWwoWmUsUXQpfDApfDApKygoODE5MSYobT0obT1t'@; put 'K01hdGguaW11bChaZSx0bil8MCkrTWF0aC5pbXVsKFFlLFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKFFlLHRuKXwwKSsobT4+PjEzKXwwKSsoUHI+Pj4yNil8MCxQciY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsZG4pLG09KG09TWF0aC5pbXVsKE5lLGZ0KSkrTWF0aC5pbXVs'@; put 'KHV0LGRuKXwwLEE9TWF0aC5pbXVsKHV0LGZ0KSxFPUUrTWF0aC5pbXVsKHJ0LFp0KXwwLG09KG09bStNYXRoLmltdWwocnQsa3QpfDApK01hdGguaW11bChLZSxadCl8MCxBPUErTWF0aC5pbXVsKEtlLGt0KXwwLEU9RStNYXRoLmltdWwoeXQsb3QpfDAsbT0obT1tK01hdGguaW11bCh5dCx6'@; put 'dCl8MCkrTWF0aC5pbXVsKE10LG90KXwwLEE9QStNYXRoLmltdWwoTXQsenQpfDAsRT1FK01hdGguaW11bChudCxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKG50LEF0KXwwKStNYXRoLmltdWwoSmUsV2UpfDAsQT1BK01hdGguaW11bChKZSxBdCl8MCxFPUUrTWF0aC5pbXVsKERlLGh0KXwwLG09'@; put 'KG09bStNYXRoLmltdWwoRGUsRXQpfDApK01hdGguaW11bChrZSxodCl8MCxBPUErTWF0aC5pbXVsKGtlLEV0KXwwLEU9RStNYXRoLmltdWwoUmUsYW4pfDAsbT0obT1tK01hdGguaW11bChSZSxqdCl8MCkrTWF0aC5pbXVsKEllLGFuKXwwLEE9QStNYXRoLmltdWwoSWUsanQpfDAsRT1FK01h'@; put 'dGguaW11bChqZSxjbil8MCxtPShtPW0rTWF0aC5pbXVsKGplLGZuKXwwKStNYXRoLmltdWwoQWUsY24pfDAsQT1BK01hdGguaW11bChBZSxmbil8MDt2YXIgWWk9KFUrKEU9RStNYXRoLmltdWwoeGUsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bCh4ZSx0bil8MCkrTWF0aC5p'@; put 'bXVsKHZlLFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKHZlLHRuKXwwKSsobT4+PjEzKXwwKSsoWWk+Pj4yNil8MCxZaSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsWnQpLG09KG09TWF0aC5pbXVsKE5lLGt0KSkrTWF0aC5pbXVsKHV0LFp0KXwwLEE9TWF0aC5pbXVsKHV0LGt0'@; put 'KSxFPUUrTWF0aC5pbXVsKHJ0LG90KXwwLG09KG09bStNYXRoLmltdWwocnQsenQpfDApK01hdGguaW11bChLZSxvdCl8MCxBPUErTWF0aC5pbXVsKEtlLHp0KXwwLEU9RStNYXRoLmltdWwoeXQsV2UpfDAsbT0obT1tK01hdGguaW11bCh5dCxBdCl8MCkrTWF0aC5pbXVsKE10LFdlKXwwLEE9'@; put 'QStNYXRoLmltdWwoTXQsQXQpfDAsRT1FK01hdGguaW11bChudCxodCl8MCxtPShtPW0rTWF0aC5pbXVsKG50LEV0KXwwKStNYXRoLmltdWwoSmUsaHQpfDAsQT1BK01hdGguaW11bChKZSxFdCl8MCxFPUUrTWF0aC5pbXVsKERlLGFuKXwwLG09KG09bStNYXRoLmltdWwoRGUsanQpfDApK01h'@; put 'dGguaW11bChrZSxhbil8MCxBPUErTWF0aC5pbXVsKGtlLGp0KXwwLEU9RStNYXRoLmltdWwoUmUsY24pfDAsbT0obT1tK01hdGguaW11bChSZSxmbil8MCkrTWF0aC5pbXVsKEllLGNuKXwwLEE9QStNYXRoLmltdWwoSWUsZm4pfDA7dmFyIGZhPShVKyhFPUUrTWF0aC5pbXVsKGplLFF0KXww'@; put 'KXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwoamUsdG4pfDApK01hdGguaW11bChBZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11bChBZSx0bil8MCkrKG0+Pj4xMyl8MCkrKGZhPj4+MjYpfDAsZmEmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLG90KSxtPShtPU1hdGguaW11'@; put 'bChOZSx6dCkpK01hdGguaW11bCh1dCxvdCl8MCxBPU1hdGguaW11bCh1dCx6dCksRT1FK01hdGguaW11bChydCxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKHJ0LEF0KXwwKStNYXRoLmltdWwoS2UsV2UpfDAsQT1BK01hdGguaW11bChLZSxBdCl8MCxFPUUrTWF0aC5pbXVsKHl0LGh0KXwwLG09'@; put 'KG09bStNYXRoLmltdWwoeXQsRXQpfDApK01hdGguaW11bChNdCxodCl8MCxBPUErTWF0aC5pbXVsKE10LEV0KXwwLEU9RStNYXRoLmltdWwobnQsYW4pfDAsbT0obT1tK01hdGguaW11bChudCxqdCl8MCkrTWF0aC5pbXVsKEplLGFuKXwwLEE9QStNYXRoLmltdWwoSmUsanQpfDAsRT1FK01h'@; put 'dGguaW11bChEZSxjbil8MCxtPShtPW0rTWF0aC5pbXVsKERlLGZuKXwwKStNYXRoLmltdWwoa2UsY24pfDAsQT1BK01hdGguaW11bChrZSxmbil8MDt2YXIgbnI9KFUrKEU9RStNYXRoLmltdWwoUmUsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChSZSx0bil8MCkrTWF0aC5p'@; put 'bXVsKEllLFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKEllLHRuKXwwKSsobT4+PjEzKXwwKSsobnI+Pj4yNil8MCxuciY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsV2UpLG09KG09TWF0aC5pbXVsKE5lLEF0KSkrTWF0aC5pbXVsKHV0LFdlKXwwLEE9TWF0aC5pbXVsKHV0LEF0'@; put 'KSxFPUUrTWF0aC5pbXVsKHJ0LGh0KXwwLG09KG09bStNYXRoLmltdWwocnQsRXQpfDApK01hdGguaW11bChLZSxodCl8MCxBPUErTWF0aC5pbXVsKEtlLEV0KXwwLEU9RStNYXRoLmltdWwoeXQsYW4pfDAsbT0obT1tK01hdGguaW11bCh5dCxqdCl8MCkrTWF0aC5pbXVsKE10LGFuKXwwLEE9'@; put 'QStNYXRoLmltdWwoTXQsanQpfDAsRT1FK01hdGguaW11bChudCxjbil8MCxtPShtPW0rTWF0aC5pbXVsKG50LGZuKXwwKStNYXRoLmltdWwoSmUsY24pfDAsQT1BK01hdGguaW11bChKZSxmbil8MDt2YXIgb2E9KFUrKEU9RStNYXRoLmltdWwoRGUsUXQpfDApfDApKygoODE5MSYobT0obT1t'@; put 'K01hdGguaW11bChEZSx0bil8MCkrTWF0aC5pbXVsKGtlLFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKGtlLHRuKXwwKSsobT4+PjEzKXwwKSsob2E+Pj4yNil8MCxvYSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsaHQpLG09KG09TWF0aC5pbXVsKE5lLEV0KSkrTWF0aC5pbXVs'@; put 'KHV0LGh0KXwwLEE9TWF0aC5pbXVsKHV0LEV0KSxFPUUrTWF0aC5pbXVsKHJ0LGFuKXwwLG09KG09bStNYXRoLmltdWwocnQsanQpfDApK01hdGguaW11bChLZSxhbil8MCxBPUErTWF0aC5pbXVsKEtlLGp0KXwwLEU9RStNYXRoLmltdWwoeXQsY24pfDAsbT0obT1tK01hdGguaW11bCh5dCxm'@; put 'bil8MCkrTWF0aC5pbXVsKE10LGNuKXwwLEE9QStNYXRoLmltdWwoTXQsZm4pfDA7dmFyIF9hPShVKyhFPUUrTWF0aC5pbXVsKG50LFF0KXwwKXwwKSsoKDgxOTEmKG09KG09bStNYXRoLmltdWwobnQsdG4pfDApK01hdGguaW11bChKZSxRdCl8MCkpPDwxMyl8MDtVPSgoQT1BK01hdGguaW11'@; put 'bChKZSx0bil8MCkrKG0+Pj4xMyl8MCkrKF9hPj4+MjYpfDAsX2EmPTY3MTA4ODYzLEU9TWF0aC5pbXVsKE5lLGFuKSxtPShtPU1hdGguaW11bChOZSxqdCkpK01hdGguaW11bCh1dCxhbil8MCxBPU1hdGguaW11bCh1dCxqdCksRT1FK01hdGguaW11bChydCxjbil8MCxtPShtPW0rTWF0aC5p'@; put 'bXVsKHJ0LGZuKXwwKStNYXRoLmltdWwoS2UsY24pfDAsQT1BK01hdGguaW11bChLZSxmbil8MDt2YXIgT2E9KFUrKEU9RStNYXRoLmltdWwoeXQsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bCh5dCx0bil8MCkrTWF0aC5pbXVsKE10LFF0KXwwKSk8PDEzKXwwO1U9KChBPUEr'@; put 'TWF0aC5pbXVsKE10LHRuKXwwKSsobT4+PjEzKXwwKSsoT2E+Pj4yNil8MCxPYSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsY24pLG09KG09TWF0aC5pbXVsKE5lLGZuKSkrTWF0aC5pbXVsKHV0LGNuKXwwLEE9TWF0aC5pbXVsKHV0LGZuKTt2YXIgTmE9KFUrKEU9RStNYXRoLmltdWwocnQs'@; put 'UXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChydCx0bil8MCkrTWF0aC5pbXVsKEtlLFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKEtlLHRuKXwwKSsobT4+PjEzKXwwKSsoTmE+Pj4yNil8MCxOYSY9NjcxMDg4NjM7dmFyIGVpPShVKyhFPU1hdGguaW11bChOZSxR'@; put 'dCkpfDApKygoODE5MSYobT0obT1NYXRoLmltdWwoTmUsdG4pKStNYXRoLmltdWwodXQsUXQpfDApKTw8MTMpfDA7cmV0dXJuIFU9KChBPU1hdGguaW11bCh1dCx0bikpKyhtPj4+MTMpfDApKyhlaT4+PjI2KXwwLGVpJj02NzEwODg2MyxWWzBdPWNhLFZbMV09eGksVlsyXT15cixWWzNdPUdu'@; put 'LFZbNF09S2ksVls1XT1KcixWWzZdPVFyLFZbN109TmksVls4XT1IaSxWWzldPUlhLFZbMTBdPVByLFZbMTFdPVlpLFZbMTJdPWZhLFZbMTNdPW5yLFZbMTRdPW9hLFZbMTVdPV9hLFZbMTZdPU9hLFZbMTddPU5hLFZbMThdPWVpLDAhPT1VJiYoVlsxOV09VSx4Lmxlbmd0aCsrKSx4fTtmdW5j'@; put 'dGlvbiBRKHosZyx5KXtyZXR1cm4obmV3IHEpLm11bHAoeixnLHkpfWZ1bmN0aW9uIHEoeixnKXt0aGlzLng9eix0aGlzLnk9Z31NYXRoLmltdWx8fChaPVcpLHcucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKGcseSl7dmFyIHgsQz10aGlzLmxlbmd0aCtnLmxlbmd0aDtyZXR1cm4geD0xMD09'@; put 'PXRoaXMubGVuZ3RoJiYxMD09PWcubGVuZ3RoP1oodGhpcyxnLHkpOkM8NjM/Vyh0aGlzLGcseSk6QzwxMDI0P2Z1bmN0aW9uIFgoeixnLHkpe3kubmVnYXRpdmU9Zy5uZWdhdGl2ZV56Lm5lZ2F0aXZlLHkubGVuZ3RoPXoubGVuZ3RoK2cubGVuZ3RoO2Zvcih2YXIgeD0wLEM9MCxUPTA7VDx5'@; put 'Lmxlbmd0aC0xO1QrKyl7dmFyIFY9QztDPTA7Zm9yKHZhciBVPTY3MTA4ODYzJngsRT1NYXRoLm1pbihULGcubGVuZ3RoLTEpLG09TWF0aC5tYXgoMCxULXoubGVuZ3RoKzEpO208PUU7bSsrKXt2YXIgbGU9KDB8ei53b3Jkc1tULW1dKSooMHxnLndvcmRzW21dKSx3ZT02NzEwODg2MyZsZTtV'@; put 'PTY3MTA4ODYzJih3ZT13ZStVfDApLEMrPShWPShWPVYrKGxlLzY3MTA4ODY0fDApfDApKyh3ZT4+PjI2KXwwKT4+PjI2LFYmPTY3MTA4ODYzfXkud29yZHNbVF09VSx4PVYsVj1DfXJldHVybiAwIT09eD95LndvcmRzW1RdPXg6eS5sZW5ndGgtLSx5LnN0cmlwKCl9KHRoaXMsZyx5KTpRKHRo'@; put 'aXMsZyx5KSx4fSxxLnByb3RvdHlwZS5tYWtlUkJUPWZ1bmN0aW9uKGcpe2Zvcih2YXIgeT1uZXcgQXJyYXkoZykseD13LnByb3RvdHlwZS5fY291bnRCaXRzKGcpLTEsQz0wO0M8ZztDKyspeVtDXT10aGlzLnJldkJpbihDLHgsZyk7cmV0dXJuIHl9LHEucHJvdG90eXBlLnJldkJpbj1mdW5j'@; put 'dGlvbihnLHkseCl7aWYoMD09PWd8fGc9PT14LTEpcmV0dXJuIGc7Zm9yKHZhciBDPTAsVD0wO1Q8eTtUKyspQ3w9KDEmZyk8PHktVC0xLGc+Pj0xO3JldHVybiBDfSxxLnByb3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKGcseSx4LEMsVCxWKXtmb3IodmFyIFU9MDtVPFY7VSsrKUNbVV09eVtn'@; put 'W1VdXSxUW1VdPXhbZ1tVXV19LHEucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbihnLHkseCxDLFQsVil7dGhpcy5wZXJtdXRlKFYsZyx5LHgsQyxUKTtmb3IodmFyIFU9MTtVPFQ7VTw8PTEpZm9yKHZhciBFPVU8PDEsbT1NYXRoLmNvcygyKk1hdGguUEkvRSksQT1NYXRoLnNpbigyKk1h'@; put 'dGguUEkvRSksYWU9MDthZTxUO2FlKz1FKWZvcih2YXIgbmU9bSxsZT1BLHdlPTA7d2U8VTt3ZSsrKXt2YXIgWmU9eFthZSt3ZV0sUWU9Q1thZSt3ZV0sYXQ9eFthZSt3ZStVXSx4ZT1DW2FlK3dlK1VdLHZlPW5lKmF0LWxlKnhlO3hlPW5lKnhlK2xlKmF0LHhbYWUrd2VdPVplKyhhdD12ZSks'@; put 'Q1thZSt3ZV09UWUreGUseFthZSt3ZStVXT1aZS1hdCxDW2FlK3dlK1VdPVFlLXhlLHdlIT09RSYmKHZlPW0qbmUtQSpsZSxsZT1tKmxlK0EqbmUsbmU9dmUpfX0scS5wcm90b3R5cGUuZ3Vlc3NMZW4xM2I9ZnVuY3Rpb24oZyx5KXt2YXIgeD0xfE1hdGgubWF4KHksZyksQz0xJngsVD0wO2Zv'@; put 'cih4PXgvMnwwO3g7eD4+Pj0xKVQrKztyZXR1cm4gMTw8VCsxK0N9LHEucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbihnLHkseCl7aWYoISh4PD0xKSlmb3IodmFyIEM9MDtDPHgvMjtDKyspe3ZhciBUPWdbQ107Z1tDXT1nW3gtQy0xXSxnW3gtQy0xXT1ULFQ9eVtDXSx5W0NdPS15W3gt'@; put 'Qy0xXSx5W3gtQy0xXT0tVH19LHEucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbihnLHkpe2Zvcih2YXIgeD0wLEM9MDtDPHkvMjtDKyspe3ZhciBUPTgxOTIqTWF0aC5yb3VuZChnWzIqQysxXS95KStNYXRoLnJvdW5kKGdbMipDXS95KSt4O2dbQ109NjcxMDg4NjMmVCx4PVQ8Njcx'@; put 'MDg4NjQ/MDpULzY3MTA4ODY0fDB9cmV0dXJuIGd9LHEucHJvdG90eXBlLmNvbnZlcnQxM2I9ZnVuY3Rpb24oZyx5LHgsQyl7Zm9yKHZhciBUPTAsVj0wO1Y8eTtWKyspeFsyKlZdPTgxOTEmKFQrPTB8Z1tWXSkseFsyKlYrMV09ODE5MSYoVD4+Pj0xMyksVD4+Pj0xMztmb3IoVj0yKnk7VjxD'@; put 'OysrVil4W1ZdPTA7cCgwPT09VCkscCghKC04MTkyJlQpKX0scS5wcm90b3R5cGUuc3R1Yj1mdW5jdGlvbihnKXtmb3IodmFyIHk9bmV3IEFycmF5KGcpLHg9MDt4PGc7eCsrKXlbeF09MDtyZXR1cm4geX0scS5wcm90b3R5cGUubXVscD1mdW5jdGlvbihnLHkseCl7dmFyIEM9Mip0aGlzLmd1'@; put 'ZXNzTGVuMTNiKGcubGVuZ3RoLHkubGVuZ3RoKSxUPXRoaXMubWFrZVJCVChDKSxWPXRoaXMuc3R1YihDKSxVPW5ldyBBcnJheShDKSxFPW5ldyBBcnJheShDKSxtPW5ldyBBcnJheShDKSxBPW5ldyBBcnJheShDKSxhZT1uZXcgQXJyYXkoQyksbmU9bmV3IEFycmF5KEMpLGxlPXgud29yZHM7'@; put 'bGUubGVuZ3RoPUMsdGhpcy5jb252ZXJ0MTNiKGcud29yZHMsZy5sZW5ndGgsVSxDKSx0aGlzLmNvbnZlcnQxM2IoeS53b3Jkcyx5Lmxlbmd0aCxBLEMpLHRoaXMudHJhbnNmb3JtKFUsVixFLG0sQyxUKSx0aGlzLnRyYW5zZm9ybShBLFYsYWUsbmUsQyxUKTtmb3IodmFyIHdlPTA7d2U8Qzt3'@; put 'ZSsrKXt2YXIgWmU9RVt3ZV0qYWVbd2VdLW1bd2VdKm5lW3dlXTttW3dlXT1FW3dlXSpuZVt3ZV0rbVt3ZV0qYWVbd2VdLEVbd2VdPVplfXJldHVybiB0aGlzLmNvbmp1Z2F0ZShFLG0sQyksdGhpcy50cmFuc2Zvcm0oRSxtLGxlLFYsQyxUKSx0aGlzLmNvbmp1Z2F0ZShsZSxWLEMpLHRoaXMu'@; put 'bm9ybWFsaXplMTNiKGxlLEMpLHgubmVnYXRpdmU9Zy5uZWdhdGl2ZV55Lm5lZ2F0aXZlLHgubGVuZ3RoPWcubGVuZ3RoK3kubGVuZ3RoLHguc3RyaXAoKX0sdy5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGcpe3ZhciB5PW5ldyB3KG51bGwpO3JldHVybiB5LndvcmRzPW5ldyBBcnJheSh0aGlz'@; put 'Lmxlbmd0aCtnLmxlbmd0aCksdGhpcy5tdWxUbyhnLHkpfSx3LnByb3RvdHlwZS5tdWxmPWZ1bmN0aW9uKGcpe3ZhciB5PW5ldyB3KG51bGwpO3JldHVybiB5LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtnLmxlbmd0aCksUSh0aGlzLGcseSl9LHcucHJvdG90eXBlLmltdWw9ZnVuY3Rp'@; put 'b24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5tdWxUbyhnLHRoaXMpfSx3LnByb3RvdHlwZS5pbXVsbj1mdW5jdGlvbihnKXtwKCJudW1iZXIiPT10eXBlb2YgZykscChnPDY3MTA4ODY0KTtmb3IodmFyIHk9MCx4PTA7eDx0aGlzLmxlbmd0aDt4Kyspe3ZhciBDPSgwfHRoaXMud29yZHNbeF0p'@; put 'KmcsVD0oNjcxMDg4NjMmQykrKDY3MTA4ODYzJnkpO3k+Pj0yNix5Kz1DLzY3MTA4ODY0fDAseSs9VD4+PjI2LHRoaXMud29yZHNbeF09NjcxMDg4NjMmVH1yZXR1cm4gMCE9PXkmJih0aGlzLndvcmRzW3hdPXksdGhpcy5sZW5ndGgrKyksdGhpcy5sZW5ndGg9MD09PWc/MTp0aGlzLmxlbmd0'@; put 'aCx0aGlzfSx3LnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4oZyl9LHcucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sdy5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhp'@; put 'cy5jbG9uZSgpKX0sdy5wcm90b3R5cGUucG93PWZ1bmN0aW9uKGcpe3ZhciB5PWZ1bmN0aW9uIEIoeil7Zm9yKHZhciBnPW5ldyBBcnJheSh6LmJpdExlbmd0aCgpKSx5PTA7eTxnLmxlbmd0aDt5Kyspe3ZhciBDPXklMjY7Z1t5XT0oei53b3Jkc1t5LzI2fDBdJjE8PEMpPj4+Q31yZXR1cm4g'@; put 'Z30oZyk7aWYoMD09PXkubGVuZ3RoKXJldHVybiBuZXcgdygxKTtmb3IodmFyIHg9dGhpcyxDPTA7Qzx5Lmxlbmd0aCYmMD09PXlbQ107QysrLHg9eC5zcXIoKSk7aWYoKytDPHkubGVuZ3RoKWZvcih2YXIgVD14LnNxcigpO0M8eS5sZW5ndGg7QysrLFQ9VC5zcXIoKSkwIT09eVtDXSYmKHg9'@; put 'eC5tdWwoVCkpO3JldHVybiB4fSx3LnByb3RvdHlwZS5pdXNobG49ZnVuY3Rpb24oZyl7cCgibnVtYmVyIj09dHlwZW9mIGcmJmc+PTApO3ZhciBULHk9ZyUyNix4PShnLXkpLzI2LEM9NjcxMDg4NjM+Pj4yNi15PDwyNi15O2lmKDAhPT15KXt2YXIgVj0wO2ZvcihUPTA7VDx0aGlzLmxlbmd0'@; put 'aDtUKyspe3ZhciBVPXRoaXMud29yZHNbVF0mQzt0aGlzLndvcmRzW1RdPSgwfHRoaXMud29yZHNbVF0pLVU8PHl8VixWPVU+Pj4yNi15fVYmJih0aGlzLndvcmRzW1RdPVYsdGhpcy5sZW5ndGgrKyl9aWYoMCE9PXgpe2ZvcihUPXRoaXMubGVuZ3RoLTE7VD49MDtULS0pdGhpcy53b3Jkc1tU'@; put 'K3hdPXRoaXMud29yZHNbVF07Zm9yKFQ9MDtUPHg7VCsrKXRoaXMud29yZHNbVF09MDt0aGlzLmxlbmd0aCs9eH1yZXR1cm4gdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5pc2hsbj1mdW5jdGlvbihnKXtyZXR1cm4gcCgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNobG4oZyl9LHcucHJv'@; put 'dG90eXBlLml1c2hybj1mdW5jdGlvbihnLHkseCl7dmFyIEM7cCgibnVtYmVyIj09dHlwZW9mIGcmJmc+PTApLEM9eT8oeS15JTI2KS8yNjowO3ZhciBUPWclMjYsVj1NYXRoLm1pbigoZy1UKS8yNix0aGlzLmxlbmd0aCksVT02NzEwODg2M142NzEwODg2Mz4+PlQ8PFQsRT14O2lmKEMtPVYs'@; put 'Qz1NYXRoLm1heCgwLEMpLEUpe2Zvcih2YXIgbT0wO208VjttKyspRS53b3Jkc1ttXT10aGlzLndvcmRzW21dO0UubGVuZ3RoPVZ9aWYoMCE9PVYpaWYodGhpcy5sZW5ndGg+Vilmb3IodGhpcy5sZW5ndGgtPVYsbT0wO208dGhpcy5sZW5ndGg7bSsrKXRoaXMud29yZHNbbV09dGhpcy53b3Jk'@; put 'c1ttK1ZdO2Vsc2UgdGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTE7dmFyIEE9MDtmb3IobT10aGlzLmxlbmd0aC0xO20+PTAmJigwIT09QXx8bT49Qyk7bS0tKXt2YXIgYWU9MHx0aGlzLndvcmRzW21dO3RoaXMud29yZHNbbV09QTw8MjYtVHxhZT4+PlQsQT1hZSZVfXJldHVybiBFJiYw'@; put 'IT09QSYmKEUud29yZHNbRS5sZW5ndGgrK109QSksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24oZyx5LHgpe3JldHVybiBwKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hy'@; put 'bihnLHkseCl9LHcucHJvdG90eXBlLnNobG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbihnKX0sdy5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4oZyl9LHcucHJvdG90eXBlLnNocm49ZnVuY3Rpb24oZyl7cmV0dXJu'@; put 'IHRoaXMuY2xvbmUoKS5pc2hybihnKX0sdy5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4oZyl9LHcucHJvdG90eXBlLnRlc3RuPWZ1bmN0aW9uKGcpe3AoIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgeT1nJTI2LHg9KGcteSkvMjY7'@; put 'cmV0dXJuISh0aGlzLmxlbmd0aDw9eHx8ISh0aGlzLndvcmRzW3hdJjE8PHkpKX0sdy5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKGcpe3AoIm51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgeT1nJTI2LHg9KGcteSkvMjY7cmV0dXJuIHAoMD09PXRoaXMubmVnYXRpdmUsImltYXNrbiB3'@; put 'b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUgbnVtYmVycyIpLHRoaXMubGVuZ3RoPD14P3RoaXM6KDAhPT15JiZ4KyssdGhpcy5sZW5ndGg9TWF0aC5taW4oeCx0aGlzLmxlbmd0aCksMCE9PXkmJih0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj02NzEwODg2M142NzEwODg2Mz4+Pnk8PHkpLHRo'@; put 'aXMuc3RyaXAoKSl9LHcucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKGcpfSx3LnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbihnKXtyZXR1cm4gcCgibnVtYmVyIj09dHlwZW9mIGcpLHAoZzw2NzEwODg2NCksZzwwP3RoaXMuaXN1Ym4oLWcp'@; put 'OjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8Zz8odGhpcy53b3Jkc1swXT1nLSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oZyksdGhpcy5uZWdhdGl2ZT0xLHRoaXMp'@; put 'OnRoaXMuX2lhZGRuKGcpfSx3LnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24oZyl7dGhpcy53b3Jkc1swXSs9Zztmb3IodmFyIHk9MDt5PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3ldPj02NzEwODg2NDt5KyspdGhpcy53b3Jkc1t5XS09NjcxMDg4NjQseT09PXRoaXMubGVuZ3RoLTE/dGhp'@; put 'cy53b3Jkc1t5KzFdPTE6dGhpcy53b3Jkc1t5KzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLHkrMSksdGhpc30sdy5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24oZyl7aWYocCgibnVtYmVyIj09dHlwZW9mIGcpLHAoZzw2NzEwODg2NCksZzwwKXJldHVybiB0'@; put 'aGlzLmlhZGRuKC1nKTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oZyksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09ZywxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlz'@; put 'LndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgeT0wO3k8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbeV08MDt5KyspdGhpcy53b3Jkc1t5XSs9NjcxMDg4NjQsdGhpcy53b3Jkc1t5KzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLmFkZG49ZnVuY3Rp'@; put 'b24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbihnKX0sdy5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKGcpfSx3LnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSx3LnByb3RvdHlwZS5h'@; put 'YnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sdy5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKGcseSx4KXt2YXIgVDt0aGlzLl9leHBhbmQoZy5sZW5ndGgreCk7dmFyIFYsVT0wO2ZvcihUPTA7VDxnLmxlbmd0aDtUKyspe1Y9KDB8dGhpcy53b3Jkc1tU'@; put 'K3hdKStVO3ZhciBFPSgwfGcud29yZHNbVF0pKnk7VT0oKFYtPTY3MTA4ODYzJkUpPj4yNiktKEUvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1tUK3hdPTY3MTA4ODYzJlZ9Zm9yKDtUPHRoaXMubGVuZ3RoLXg7VCsrKVU9KFY9KDB8dGhpcy53b3Jkc1tUK3hdKStVKT4+MjYsdGhpcy53b3Jkc1tU'@; put 'K3hdPTY3MTA4ODYzJlY7aWYoMD09PVUpcmV0dXJuIHRoaXMuc3RyaXAoKTtmb3IocCgtMT09PVUpLFU9MCxUPTA7VDx0aGlzLmxlbmd0aDtUKyspVT0oVj0tKDB8dGhpcy53b3Jkc1tUXSkrVSk+PjI2LHRoaXMud29yZHNbVF09NjcxMDg4NjMmVjtyZXR1cm4gdGhpcy5uZWdhdGl2ZT0xLHRo'@; put 'aXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuX3dvcmREaXY9ZnVuY3Rpb24oZyx5KXt2YXIgeCxDPXRoaXMuY2xvbmUoKSxUPWcsVj0wfFQud29yZHNbVC5sZW5ndGgtMV07MCE9KHg9MjYtdGhpcy5fY291bnRCaXRzKFYpKSYmKFQ9VC51c2hsbih4KSxDLml1c2hsbih4KSxWPTB8VC53b3Jkc1tU'@; put 'Lmxlbmd0aC0xXSk7dmFyIG0sRT1DLmxlbmd0aC1ULmxlbmd0aDtpZigibW9kIiE9PXkpeyhtPW5ldyB3KG51bGwpKS5sZW5ndGg9RSsxLG0ud29yZHM9bmV3IEFycmF5KG0ubGVuZ3RoKTtmb3IodmFyIEE9MDtBPG0ubGVuZ3RoO0ErKyltLndvcmRzW0FdPTB9dmFyIGFlPUMuY2xvbmUoKS5f'@; put 'aXNobG5zdWJtdWwoVCwxLEUpOzA9PT1hZS5uZWdhdGl2ZSYmKEM9YWUsbSYmKG0ud29yZHNbRV09MSkpO2Zvcih2YXIgbmU9RS0xO25lPj0wO25lLS0pe3ZhciBsZT02NzEwODg2NCooMHxDLndvcmRzW1QubGVuZ3RoK25lXSkrKDB8Qy53b3Jkc1tULmxlbmd0aCtuZS0xXSk7Zm9yKGxlPU1h'@; put 'dGgubWluKGxlL1Z8MCw2NzEwODg2MyksQy5faXNobG5zdWJtdWwoVCxsZSxuZSk7MCE9PUMubmVnYXRpdmU7KWxlLS0sQy5uZWdhdGl2ZT0wLEMuX2lzaGxuc3VibXVsKFQsMSxuZSksQy5pc1plcm8oKXx8KEMubmVnYXRpdmVePTEpO20mJihtLndvcmRzW25lXT1sZSl9cmV0dXJuIG0mJm0u'@; put 'c3RyaXAoKSxDLnN0cmlwKCksImRpdiIhPT15JiYwIT09eCYmQy5pdXNocm4oeCkse2RpdjptfHxudWxsLG1vZDpDfX0sdy5wcm90b3R5cGUuZGl2bW9kPWZ1bmN0aW9uKGcseSx4KXtyZXR1cm4gcCghZy5pc1plcm8oKSksdGhpcy5pc1plcm8oKT97ZGl2Om5ldyB3KDApLG1vZDpuZXcgdygw'@; put 'KX06MCE9PXRoaXMubmVnYXRpdmUmJjA9PT1nLm5lZ2F0aXZlPyhWPXRoaXMubmVnKCkuZGl2bW9kKGcseSksIm1vZCIhPT15JiYoQz1WLmRpdi5uZWcoKSksImRpdiIhPT15JiYoVD1WLm1vZC5uZWcoKSx4JiYwIT09VC5uZWdhdGl2ZSYmVC5pYWRkKGcpKSx7ZGl2OkMsbW9kOlR9KTowPT09'@; put 'dGhpcy5uZWdhdGl2ZSYmMCE9PWcubmVnYXRpdmU/KFY9dGhpcy5kaXZtb2QoZy5uZWcoKSx5KSwibW9kIiE9PXkmJihDPVYuZGl2Lm5lZygpKSx7ZGl2OkMsbW9kOlYubW9kfSk6dGhpcy5uZWdhdGl2ZSZnLm5lZ2F0aXZlPyhWPXRoaXMubmVnKCkuZGl2bW9kKGcubmVnKCkseSksImRpdiIh'@; put 'PT15JiYoVD1WLm1vZC5uZWcoKSx4JiYwIT09VC5uZWdhdGl2ZSYmVC5pc3ViKGcpKSx7ZGl2OlYuZGl2LG1vZDpUfSk6Zy5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKGcpPDA/e2RpdjpuZXcgdygwKSxtb2Q6dGhpc306MT09PWcubGVuZ3RoPyJkaXYiPT09eT97ZGl2OnRoaXMuZGl2'@; put 'bihnLndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT15P3tkaXY6bnVsbCxtb2Q6bmV3IHcodGhpcy5tb2RuKGcud29yZHNbMF0pKX06e2Rpdjp0aGlzLmRpdm4oZy53b3Jkc1swXSksbW9kOm5ldyB3KHRoaXMubW9kbihnLndvcmRzWzBdKSl9OnRoaXMuX3dvcmREaXYoZyx5KTt2YXIgQyxU'@; put 'LFZ9LHcucHJvdG90eXBlLmRpdj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5kaXZtb2QoZywiZGl2IiwhMSkuZGl2fSx3LnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuZGl2bW9kKGcsIm1vZCIsITEpLm1vZH0sdy5wcm90b3R5cGUudW1vZD1mdW5jdGlvbihnKXtyZXR1'@; put 'cm4gdGhpcy5kaXZtb2QoZywibW9kIiwhMCkubW9kfSx3LnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbihnKXt2YXIgeT10aGlzLmRpdm1vZChnKTtpZih5Lm1vZC5pc1plcm8oKSlyZXR1cm4geS5kaXY7dmFyIHg9MCE9PXkuZGl2Lm5lZ2F0aXZlP3kubW9kLmlzdWIoZyk6eS5tb2QsQz1n'@; put 'LnVzaHJuKDEpLFQ9Zy5hbmRsbigxKSxWPXguY21wKEMpO3JldHVybiBWPDB8fDE9PT1UJiYwPT09Vj95LmRpdjowIT09eS5kaXYubmVnYXRpdmU/eS5kaXYuaXN1Ym4oMSk6eS5kaXYuaWFkZG4oMSl9LHcucHJvdG90eXBlLm1vZG49ZnVuY3Rpb24oZyl7cChnPD02NzEwODg2Myk7Zm9yKHZh'@; put 'ciB5PSgxPDwyNiklZyx4PTAsQz10aGlzLmxlbmd0aC0xO0M+PTA7Qy0tKXg9KHkqeCsoMHx0aGlzLndvcmRzW0NdKSklZztyZXR1cm4geH0sdy5wcm90b3R5cGUuaWRpdm49ZnVuY3Rpb24oZyl7cChnPD02NzEwODg2Myk7Zm9yKHZhciB5PTAseD10aGlzLmxlbmd0aC0xO3g+PTA7eC0tKXt2'@; put 'YXIgQz0oMHx0aGlzLndvcmRzW3hdKSs2NzEwODg2NCp5O3RoaXMud29yZHNbeF09Qy9nfDAseT1DJWd9cmV0dXJuIHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKGcpfSx3LnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9u'@; put 'KGcpe3AoMD09PWcubmVnYXRpdmUpLHAoIWcuaXNaZXJvKCkpO3ZhciB5PXRoaXMseD1nLmNsb25lKCk7eT0wIT09eS5uZWdhdGl2ZT95LnVtb2QoZyk6eS5jbG9uZSgpO2Zvcih2YXIgQz1uZXcgdygxKSxUPW5ldyB3KDApLFY9bmV3IHcoMCksVT1uZXcgdygxKSxFPTA7eS5pc0V2ZW4oKSYm'@; put 'eC5pc0V2ZW4oKTspeS5pdXNocm4oMSkseC5pdXNocm4oMSksKytFO2Zvcih2YXIgbT14LmNsb25lKCksQT15LmNsb25lKCk7IXkuaXNaZXJvKCk7KXtmb3IodmFyIGFlPTAsbmU9MTshKHkud29yZHNbMF0mbmUpJiZhZTwyNjsrK2FlLG5lPDw9MSk7aWYoYWU+MClmb3IoeS5pdXNocm4oYWUp'@; put 'O2FlLS0gPjA7KShDLmlzT2RkKCl8fFQuaXNPZGQoKSkmJihDLmlhZGQobSksVC5pc3ViKEEpKSxDLml1c2hybigxKSxULml1c2hybigxKTtmb3IodmFyIGxlPTAsd2U9MTshKHgud29yZHNbMF0md2UpJiZsZTwyNjsrK2xlLHdlPDw9MSk7aWYobGU+MClmb3IoeC5pdXNocm4obGUpO2xlLS0g'@; put 'PjA7KShWLmlzT2RkKCl8fFUuaXNPZGQoKSkmJihWLmlhZGQobSksVS5pc3ViKEEpKSxWLml1c2hybigxKSxVLml1c2hybigxKTt5LmNtcCh4KT49MD8oeS5pc3ViKHgpLEMuaXN1YihWKSxULmlzdWIoVSkpOih4LmlzdWIoeSksVi5pc3ViKEMpLFUuaXN1YihUKSl9cmV0dXJue2E6VixiOlUs'@; put 'Z2NkOnguaXVzaGxuKEUpfX0sdy5wcm90b3R5cGUuX2ludm1wPWZ1bmN0aW9uKGcpe3AoMD09PWcubmVnYXRpdmUpLHAoIWcuaXNaZXJvKCkpO3ZhciBhZSx5PXRoaXMseD1nLmNsb25lKCk7eT0wIT09eS5uZWdhdGl2ZT95LnVtb2QoZyk6eS5jbG9uZSgpO2Zvcih2YXIgQz1uZXcgdygxKSxU'@; put 'PW5ldyB3KDApLFY9eC5jbG9uZSgpO3kuY21wbigxKT4wJiZ4LmNtcG4oMSk+MDspe2Zvcih2YXIgVT0wLEU9MTshKHkud29yZHNbMF0mRSkmJlU8MjY7KytVLEU8PD0xKTtpZihVPjApZm9yKHkuaXVzaHJuKFUpO1UtLSA+MDspQy5pc09kZCgpJiZDLmlhZGQoViksQy5pdXNocm4oMSk7Zm9y'@; put 'KHZhciBtPTAsQT0xOyEoeC53b3Jkc1swXSZBKSYmbTwyNjsrK20sQTw8PTEpO2lmKG0+MClmb3IoeC5pdXNocm4obSk7bS0tID4wOylULmlzT2RkKCkmJlQuaWFkZChWKSxULml1c2hybigxKTt5LmNtcCh4KT49MD8oeS5pc3ViKHgpLEMuaXN1YihUKSk6KHguaXN1Yih5KSxULmlzdWIoQykp'@; put 'fXJldHVybihhZT0wPT09eS5jbXBuKDEpP0M6VCkuY21wbigwKTwwJiZhZS5pYWRkKGcpLGFlfSx3LnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24oZyl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gZy5hYnMoKTtpZihnLmlzWmVybygpKXJldHVybiB0aGlzLmFicygpO3ZhciB5PXRoaXMuY2xvbmUo'@; put 'KSx4PWcuY2xvbmUoKTt5Lm5lZ2F0aXZlPTAseC5uZWdhdGl2ZT0wO2Zvcih2YXIgQz0wO3kuaXNFdmVuKCkmJnguaXNFdmVuKCk7QysrKXkuaXVzaHJuKDEpLHguaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDt5LmlzRXZlbigpOyl5Lml1c2hybigxKTtmb3IoO3guaXNFdmVuKCk7KXguaXVzaHJu'@; put 'KDEpO3ZhciBUPXkuY21wKHgpO2lmKFQ8MCl7dmFyIFY9eTt5PXgseD1WfWVsc2UgaWYoMD09PVR8fDA9PT14LmNtcG4oMSkpYnJlYWs7eS5pc3ViKHgpfXJldHVybiB4Lml1c2hsbihDKX0sdy5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5lZ2NkKGcpLmEudW1vZChn'@; put 'KX0sdy5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuISgxJnRoaXMud29yZHNbMF0pfSx3LnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiEoMSZ+dGhpcy53b3Jkc1swXSl9LHcucHJvdG90eXBlLmFuZGxuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLndvcmRzWzBd'@; put 'Jmd9LHcucHJvdG90eXBlLmJpbmNuPWZ1bmN0aW9uKGcpe3AoIm51bWJlciI9PXR5cGVvZiBnKTt2YXIgeT1nJTI2LHg9KGcteSkvMjYsQz0xPDx5O2lmKHRoaXMubGVuZ3RoPD14KXJldHVybiB0aGlzLl9leHBhbmQoeCsxKSx0aGlzLndvcmRzW3hdfD1DLHRoaXM7Zm9yKHZhciBUPUMsVj14'@; put 'OzAhPT1UJiZWPHRoaXMubGVuZ3RoO1YrKyl7dmFyIFU9MHx0aGlzLndvcmRzW1ZdO1Q9KFUrPVQpPj4+MjYsdGhpcy53b3Jkc1tWXT1VJj02NzEwODg2M31yZXR1cm4gMCE9PVQmJih0aGlzLndvcmRzW1ZdPVQsdGhpcy5sZW5ndGgrKyksdGhpc30sdy5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0'@; put 'aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LHcucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24oZyl7dmFyIHgseT1nPDA7aWYoMCE9PXRoaXMubmVnYXRpdmUmJiF5KXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiZ5KXJldHVybiAxO2lmKHRoaXMu'@; put 'c3RyaXAoKSx0aGlzLmxlbmd0aD4xKXg9MTtlbHNle3kmJihnPS1nKSxwKGc8PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciBDPTB8dGhpcy53b3Jkc1swXTt4PUM9PT1nPzA6QzxnPy0xOjF9cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LXg6eH0sdy5wcm90b3R5cGUuY21w'@; put 'PWZ1bmN0aW9uKGcpe2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Zy5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PWcubmVnYXRpdmUpcmV0dXJuIDE7dmFyIHk9dGhpcy51Y21wKGcpO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC15Onl9LHcucHJvdG90'@; put 'eXBlLnVjbXA9ZnVuY3Rpb24oZyl7aWYodGhpcy5sZW5ndGg+Zy5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8Zy5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciB5PTAseD10aGlzLmxlbmd0aC0xO3g+PTA7eC0tKXt2YXIgQz0wfHRoaXMud29yZHNbeF0sVD0wfGcud29yZHNbeF07aWYo'@; put 'QyE9PVQpe0M8VD95PS0xOkM+VCYmKHk9MSk7YnJlYWt9fXJldHVybiB5fSx3LnByb3RvdHlwZS5ndG49ZnVuY3Rpb24oZyl7cmV0dXJuIDE9PT10aGlzLmNtcG4oZyl9LHcucHJvdG90eXBlLmd0PWZ1bmN0aW9uKGcpe3JldHVybiAxPT09dGhpcy5jbXAoZyl9LHcucHJvdG90eXBlLmd0ZW49'@; put 'ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY21wbihnKT49MH0sdy5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNtcChnKT49MH0sdy5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKGcpe3JldHVybi0xPT09dGhpcy5jbXBuKGcpfSx3LnByb3RvdHlwZS5sdD1mdW5jdGlvbihn'@; put 'KXtyZXR1cm4tMT09PXRoaXMuY21wKGcpfSx3LnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNtcG4oZyk8PTB9LHcucHJvdG90eXBlLmx0ZT1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbXAoZyk8PTB9LHcucHJvdG90eXBlLmVxbj1mdW5jdGlvbihnKXtyZXR1cm4g'@; put 'MD09PXRoaXMuY21wbihnKX0sdy5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oZyl7cmV0dXJuIDA9PT10aGlzLmNtcChnKX0sdy5yZWQ9ZnVuY3Rpb24oZyl7cmV0dXJuIG5ldyBTZShnKX0sdy5wcm90b3R5cGUudG9SZWQ9ZnVuY3Rpb24oZyl7cmV0dXJuIHAoIXRoaXMucmVkLCJBbHJlYWR5IGEg'@; put 'bnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IikscCgwPT09dGhpcy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxnLmNvbnZlcnRUbyh0aGlzKS5fZm9yY2VSZWQoZyl9LHcucHJvdG90eXBlLmZyb21SZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gcCh0aGlzLnJlZCwi'@; put 'ZnJvbVJlZCB3b3JrcyBvbmx5IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSx3LnByb3RvdHlwZS5fZm9yY2VSZWQ9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMucmVkPWcsdGhpc30sdy5wcm90b3R5cGUuZm9yY2VSZWQ9ZnVu'@; put 'Y3Rpb24oZyl7cmV0dXJuIHAoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VSZWQoZyl9LHcucHJvdG90eXBlLnJlZEFkZD1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQg'@; put 'bnVtYmVycyIpLHRoaXMucmVkLmFkZCh0aGlzLGcpfSx3LnByb3RvdHlwZS5yZWRJQWRkPWZ1bmN0aW9uKGcpe3JldHVybiBwKHRoaXMucmVkLCJyZWRJQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlhZGQodGhpcyxnKX0sdy5wcm90b3R5cGUucmVkU3ViPWZ1'@; put 'bmN0aW9uKGcpe3JldHVybiBwKHRoaXMucmVkLCJyZWRTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc3ViKHRoaXMsZyl9LHcucHJvdG90eXBlLnJlZElTdWI9ZnVuY3Rpb24oZyl7cmV0dXJuIHAodGhpcy5yZWQsInJlZElTdWIgd29ya3Mgb25seSB3aXRoIHJl'@; put 'ZCBudW1iZXJzIiksdGhpcy5yZWQuaXN1Yih0aGlzLGcpfSx3LnByb3RvdHlwZS5yZWRTaGw9ZnVuY3Rpb24oZyl7cmV0dXJuIHAodGhpcy5yZWQsInJlZFNobCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zaGwodGhpcyxnKX0sdy5wcm90b3R5cGUucmVkTXVsPWZ1'@; put 'bmN0aW9uKGcpe3JldHVybiBwKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxnKSx0aGlzLnJlZC5tdWwodGhpcyxnKX0sdy5wcm90b3R5cGUucmVkSU11bD1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCwi'@; put 'cmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsZyksdGhpcy5yZWQuaW11bCh0aGlzLGcpfSx3LnByb3RvdHlwZS5yZWRTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVt'@; put 'YmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcih0aGlzKX0sdy5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMucmVkLCJyZWRJU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRo'@; put 'aXMucmVkLmlzcXIodGhpcyl9LHcucHJvdG90eXBlLnJlZFNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXJ0KHRoaXMpfSx3LnByb3RvdHlwZS5y'@; put 'ZWRJbnZtPWZ1bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5yZWQsInJlZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaW52bSh0aGlzKX0sdy5wcm90b3R5cGUucmVkTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5y'@; put 'ZWQsInJlZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5uZWcodGhpcyl9LHcucHJvdG90eXBlLnJlZFBvdz1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCYmIWcucmVkLCJyZWRQb3cobm9ybWFsTnVtKSIpLHRo'@; put 'aXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnBvdyh0aGlzLGcpfTt2YXIgdGU9e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtmdW5jdGlvbiBpZSh6LGcpe3RoaXMubmFtZT16LHRoaXMucD1uZXcgdyhnLDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0'@; put 'aCgpLHRoaXMuaz1uZXcgdygxKS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9ZnVuY3Rpb24gc2UoKXtpZS5jYWxsKHRoaXMsImsyNTYiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZm'@; put 'ZSBmZmZmZmMyZiIpfWZ1bmN0aW9uIGdlKCl7aWUuY2FsbCh0aGlzLCJwMjI0IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEiKX1mdW5jdGlvbiBfZSgpe2llLmNhbGwodGhpcywicDE5MiIsImZmZmZmZmZmIGZmZmZmZmZm'@; put 'IGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIil9ZnVuY3Rpb24gVGUoKXtpZS5jYWxsKHRoaXMsIjI1NTE5IiwiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCIpfWZ1bmN0aW9uIFNlKHope2lmKCJz'@; put 'dHJpbmciPT10eXBlb2Ygeil7dmFyIGc9dy5fcHJpbWUoeik7dGhpcy5tPWcucCx0aGlzLnByaW1lPWd9ZWxzZSBwKHouZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlzLm09eix0aGlzLnByaW1lPW51bGx9ZnVuY3Rpb24gemUoeil7U2UuY2FsbCh0aGlzLHop'@; put 'LHRoaXMuc2hpZnQ9dGhpcy5tLmJpdExlbmd0aCgpLHRoaXMuc2hpZnQlMjYhPTAmJih0aGlzLnNoaWZ0Kz0yNi10aGlzLnNoaWZ0JTI2KSx0aGlzLnI9bmV3IHcoMSkuaXVzaGxuKHRoaXMuc2hpZnQpLHRoaXMucjI9dGhpcy5pbW9kKHRoaXMuci5zcXIoKSksdGhpcy5yaW52PXRoaXMuci5f'@; put 'aW52bXAodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5yaW52Lm11bCh0aGlzLnIpLmlzdWJuKDEpLmRpdih0aGlzLm0pLHRoaXMubWludj10aGlzLm1pbnYudW1vZCh0aGlzLnIpLHRoaXMubWludj10aGlzLnIuc3ViKHRoaXMubWludil9aWUucHJvdG90eXBlLl90bXA9ZnVuY3Rpb24oKXt2YXIg'@; put 'Zz1uZXcgdyhudWxsKTtyZXR1cm4gZy53b3Jkcz1uZXcgQXJyYXkoTWF0aC5jZWlsKHRoaXMubi8xMykpLGd9LGllLnByb3RvdHlwZS5pcmVkdWNlPWZ1bmN0aW9uKGcpe3ZhciB4LHk9Zztkb3t0aGlzLnNwbGl0KHksdGhpcy50bXApLHg9KHk9KHk9dGhpcy5pbXVsSyh5KSkuaWFkZCh0aGlz'@; put 'LnRtcCkpLmJpdExlbmd0aCgpfXdoaWxlKHg+dGhpcy5uKTt2YXIgQz14PHRoaXMubj8tMTp5LnVjbXAodGhpcy5wKTtyZXR1cm4gMD09PUM/KHkud29yZHNbMF09MCx5Lmxlbmd0aD0xKTpDPjA/eS5pc3ViKHRoaXMucCk6dm9pZCAwIT09eS5zdHJpcD95LnN0cmlwKCk6eS5fc3RyaXAoKSx5'@; put 'fSxpZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oZyx5KXtnLml1c2hybih0aGlzLm4sMCx5KX0saWUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKGcpe3JldHVybiBnLmltdWwodGhpcy5rKX0sTihzZSxpZSksc2UucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKGcseSl7Zm9yKHZhciB4PTQx'@; put 'OTQzMDMsQz1NYXRoLm1pbihnLmxlbmd0aCw5KSxUPTA7VDxDO1QrKyl5LndvcmRzW1RdPWcud29yZHNbVF07aWYoeS5sZW5ndGg9QyxnLmxlbmd0aDw9OSlyZXR1cm4gZy53b3Jkc1swXT0wLHZvaWQoZy5sZW5ndGg9MSk7dmFyIFY9Zy53b3Jkc1s5XTtmb3IoeS53b3Jkc1t5Lmxlbmd0aCsr'@; put 'XT1WJngsVD0xMDtUPGcubGVuZ3RoO1QrKyl7dmFyIFU9MHxnLndvcmRzW1RdO2cud29yZHNbVC0xMF09KFUmeCk8PDR8Vj4+PjIyLFY9VX1nLndvcmRzW1QtMTBdPVY+Pj49MjIsZy5sZW5ndGgtPTA9PT1WJiZnLmxlbmd0aD4xMD8xMDo5fSxzZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24o'@; put 'Zyl7Zy53b3Jkc1tnLmxlbmd0aF09MCxnLndvcmRzW2cubGVuZ3RoKzFdPTAsZy5sZW5ndGgrPTI7Zm9yKHZhciB5PTAseD0wO3g8Zy5sZW5ndGg7eCsrKXt2YXIgQz0wfGcud29yZHNbeF07Zy53b3Jkc1t4XT02NzEwODg2MyYoeSs9OTc3KkMpLHk9NjQqQysoeS82NzEwODg2NHwwKX1yZXR1'@; put 'cm4gMD09PWcud29yZHNbZy5sZW5ndGgtMV0mJihnLmxlbmd0aC0tLDA9PT1nLndvcmRzW2cubGVuZ3RoLTFdJiZnLmxlbmd0aC0tKSxnfSxOKGdlLGllKSxOKF9lLGllKSxOKFRlLGllKSxUZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oZyl7Zm9yKHZhciB5PTAseD0wO3g8Zy5sZW5ndGg7'@; put 'eCsrKXt2YXIgQz0xOSooMHxnLndvcmRzW3hdKSt5LFQ9NjcxMDg4NjMmQztDPj4+PTI2LGcud29yZHNbeF09VCx5PUN9cmV0dXJuIDAhPT15JiYoZy53b3Jkc1tnLmxlbmd0aCsrXT15KSxnfSx3Ll9wcmltZT1mdW5jdGlvbihnKXtpZih0ZVtnXSlyZXR1cm4gdGVbZ107dmFyIHk7aWYoImsy'@; put 'NTYiPT09Zyl5PW5ldyBzZTtlbHNlIGlmKCJwMjI0Ij09PWcpeT1uZXcgZ2U7ZWxzZSBpZigicDE5MiI9PT1nKXk9bmV3IF9lO2Vsc2V7aWYoInAyNTUxOSIhPT1nKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAiK2cpO3k9bmV3IFRlfXJldHVybiB0ZVtnXT15LHl9LFNlLnByb3Rv'@; put 'dHlwZS5fdmVyaWZ5MT1mdW5jdGlvbihnKXtwKDA9PT1nLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLHAoZy5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sU2UucHJvdG90eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKGcseSl7cCghKGcubmVn'@; put 'YXRpdmV8eS5uZWdhdGl2ZSksInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIikscChnLnJlZCYmZy5yZWQ9PT15LnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxTZS5wcm90b3R5cGUuaW1vZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5wcmltZT90aGlzLnBy'@; put 'aW1lLmlyZWR1Y2UoZykuX2ZvcmNlUmVkKHRoaXMpOmcudW1vZCh0aGlzLm0pLl9mb3JjZVJlZCh0aGlzKX0sU2UucHJvdG90eXBlLm5lZz1mdW5jdGlvbihnKXtyZXR1cm4gZy5pc1plcm8oKT9nLmNsb25lKCk6dGhpcy5tLnN1YihnKS5fZm9yY2VSZWQodGhpcyl9LFNlLnByb3RvdHlwZS5h'@; put 'ZGQ9ZnVuY3Rpb24oZyx5KXt0aGlzLl92ZXJpZnkyKGcseSk7dmFyIHg9Zy5hZGQoeSk7cmV0dXJuIHguY21wKHRoaXMubSk+PTAmJnguaXN1Yih0aGlzLm0pLHguX2ZvcmNlUmVkKHRoaXMpfSxTZS5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbihnLHkpe3RoaXMuX3ZlcmlmeTIoZyx5KTt2YXIg'@; put 'eD1nLmlhZGQoeSk7cmV0dXJuIHguY21wKHRoaXMubSk+PTAmJnguaXN1Yih0aGlzLm0pLHh9LFNlLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oZyx5KXt0aGlzLl92ZXJpZnkyKGcseSk7dmFyIHg9Zy5zdWIoeSk7cmV0dXJuIHguY21wbigwKTwwJiZ4LmlhZGQodGhpcy5tKSx4Ll9mb3JjZVJl'@; put 'ZCh0aGlzKX0sU2UucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24oZyx5KXt0aGlzLl92ZXJpZnkyKGcseSk7dmFyIHg9Zy5pc3ViKHkpO3JldHVybiB4LmNtcG4oMCk8MCYmeC5pYWRkKHRoaXMubSkseH0sU2UucHJvdG90eXBlLnNobD1mdW5jdGlvbihnLHkpe3JldHVybiB0aGlzLl92ZXJpZnkx'@; put 'KGcpLHRoaXMuaW1vZChnLnVzaGxuKHkpKX0sU2UucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oZyx5KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihnLHkpLHRoaXMuaW1vZChnLmltdWwoeSkpfSxTZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGcseSl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoZyx5KSx0'@; put 'aGlzLmltb2QoZy5tdWwoeSkpfSxTZS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5pbXVsKGcsZy5jbG9uZSgpKX0sU2UucHJvdG90eXBlLnNxcj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5tdWwoZyxnKX0sU2UucHJvdG90eXBlLnNxcnQ9ZnVuY3Rpb24oZyl7aWYo'@; put 'Zy5pc1plcm8oKSlyZXR1cm4gZy5jbG9uZSgpO3ZhciB5PXRoaXMubS5hbmRsbigzKTtpZihwKHklMj09MSksMz09PXkpe3ZhciB4PXRoaXMubS5hZGQobmV3IHcoMSkpLml1c2hybigyKTtyZXR1cm4gdGhpcy5wb3coZyx4KX1mb3IodmFyIEM9dGhpcy5tLnN1Ym4oMSksVD0wOyFDLmlzWmVy'@; put 'bygpJiYwPT09Qy5hbmRsbigxKTspVCsrLEMuaXVzaHJuKDEpO3AoIUMuaXNaZXJvKCkpO3ZhciBWPW5ldyB3KDEpLnRvUmVkKHRoaXMpLFU9Vi5yZWROZWcoKSxFPXRoaXMubS5zdWJuKDEpLml1c2hybigxKSxtPXRoaXMubS5iaXRMZW5ndGgoKTtmb3IobT1uZXcgdygyKm0qbSkudG9SZWQo'@; put 'dGhpcyk7MCE9PXRoaXMucG93KG0sRSkuY21wKFUpOyltLnJlZElBZGQoVSk7Zm9yKHZhciBBPXRoaXMucG93KG0sQyksYWU9dGhpcy5wb3coZyxDLmFkZG4oMSkuaXVzaHJuKDEpKSxuZT10aGlzLnBvdyhnLEMpLGxlPVQ7MCE9PW5lLmNtcChWKTspe2Zvcih2YXIgd2U9bmUsWmU9MDswIT09'@; put 'd2UuY21wKFYpO1plKyspd2U9d2UucmVkU3FyKCk7cChaZTxsZSk7dmFyIFFlPXRoaXMucG93KEEsbmV3IHcoMSkuaXVzaGxuKGxlLVplLTEpKTthZT1hZS5yZWRNdWwoUWUpLEE9UWUucmVkU3FyKCksbmU9bmUucmVkTXVsKEEpLGxlPVplfXJldHVybiBhZX0sU2UucHJvdG90eXBlLmludm09'@; put 'ZnVuY3Rpb24oZyl7dmFyIHk9Zy5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PXkubmVnYXRpdmU/KHkubmVnYXRpdmU9MCx0aGlzLmltb2QoeSkucmVkTmVnKCkpOnRoaXMuaW1vZCh5KX0sU2UucHJvdG90eXBlLnBvdz1mdW5jdGlvbihnLHkpe2lmKHkuaXNaZXJvKCkpcmV0dXJuIG5ldyB3'@; put 'KDEpLnRvUmVkKHRoaXMpO2lmKDA9PT15LmNtcG4oMSkpcmV0dXJuIGcuY2xvbmUoKTt2YXIgQz1uZXcgQXJyYXkoMTYpO0NbMF09bmV3IHcoMSkudG9SZWQodGhpcyksQ1sxXT1nO2Zvcih2YXIgVD0yO1Q8Qy5sZW5ndGg7VCsrKUNbVF09dGhpcy5tdWwoQ1tULTFdLGcpO3ZhciBWPUNbMF0s'@; put 'VT0wLEU9MCxtPXkuYml0TGVuZ3RoKCklMjY7Zm9yKDA9PT1tJiYobT0yNiksVD15Lmxlbmd0aC0xO1Q+PTA7VC0tKXtmb3IodmFyIEE9eS53b3Jkc1tUXSxhZT1tLTE7YWU+PTA7YWUtLSl7dmFyIG5lPUE+PmFlJjE7ViE9PUNbMF0mJihWPXRoaXMuc3FyKFYpKSwwIT09bmV8fDAhPT1VPyhV'@; put 'PDw9MSxVfD1uZSwoND09KytFfHwwPT09VCYmMD09PWFlKSYmKFY9dGhpcy5tdWwoVixDW1VdKSxFPTAsVT0wKSk6RT0wfW09MjZ9cmV0dXJuIFZ9LFNlLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oZyl7dmFyIHk9Zy51bW9kKHRoaXMubSk7cmV0dXJuIHk9PT1nP3kuY2xvbmUoKTp5'@; put 'fSxTZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oZyl7dmFyIHk9Zy5jbG9uZSgpO3JldHVybiB5LnJlZD1udWxsLHl9LHcubW9udD1mdW5jdGlvbihnKXtyZXR1cm4gbmV3IHplKGcpfSxOKHplLFNlKSx6ZS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKGcpe3JldHVybiB0'@; put 'aGlzLmltb2QoZy51c2hsbih0aGlzLnNoaWZ0KSl9LHplLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbihnKXt2YXIgeT10aGlzLmltb2QoZy5tdWwodGhpcy5yaW52KSk7cmV0dXJuIHkucmVkPW51bGwseX0semUucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oZyx5KXtpZihnLmlzWmVy'@; put 'bygpfHx5LmlzWmVybygpKXJldHVybiBnLndvcmRzWzBdPTAsZy5sZW5ndGg9MSxnO3ZhciB4PWcuaW11bCh5KSxDPXgubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLFQ9eC5pc3ViKEMpLml1c2hybih0aGlzLnNoaWZ0KSxW'@; put 'PVQ7cmV0dXJuIFQuY21wKHRoaXMubSk+PTA/Vj1ULmlzdWIodGhpcy5tKTpULmNtcG4oMCk8MCYmKFY9VC5pYWRkKHRoaXMubSkpLFYuX2ZvcmNlUmVkKHRoaXMpfSx6ZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGcseSl7aWYoZy5pc1plcm8oKXx8eS5pc1plcm8oKSlyZXR1cm4gbmV3IHco'@; put 'MCkuX2ZvcmNlUmVkKHRoaXMpO3ZhciB4PWcubXVsKHkpLEM9eC5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksVD14LmlzdWIoQykuaXVzaHJuKHRoaXMuc2hpZnQpLFY9VDtyZXR1cm4gVC5jbXAodGhpcy5tKT49MD9WPVQu'@; put 'aXN1Yih0aGlzLm0pOlQuY21wbigwKTwwJiYoVj1ULmlhZGQodGhpcy5tKSksVi5fZm9yY2VSZWQodGhpcyl9LHplLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmltb2QoZy5faW52bXAodGhpcy5tKS5tdWwodGhpcy5yMikpLl9mb3JjZVJlZCh0aGlzKX19KGNlPWIu'@; put 'bm1kKGNlKSx0aGlzKX0sMzkyMTA6Y2U9PntmdW5jdGlvbiBKKGIsRCl7aWYoIWIpdGhyb3cgbmV3IEVycm9yKER8fCJBc3NlcnRpb24gZmFpbGVkIil9Y2UuZXhwb3J0cz1KLEouZXF1YWw9ZnVuY3Rpb24oRCxfLHApe2lmKEQhPV8pdGhyb3cgbmV3IEVycm9yKHB8fCJBc3NlcnRpb24gZmFp'@; put 'bGVkOiAiK0QrIiAhPSAiK18pfX0sMjE4MzI6KGNlLEopPT57InVzZSBzdHJpY3QiO3ZhciBiPUo7ZnVuY3Rpb24gXyhOKXtyZXR1cm4gMT09PU4ubGVuZ3RoPyIwIitOOk59ZnVuY3Rpb24gcChOKXtmb3IodmFyIHc9IiIsRj0wO0Y8Ti5sZW5ndGg7RisrKXcrPV8oTltGXS50b1N0cmluZygx'@; put 'NikpO3JldHVybiB3fWIudG9BcnJheT1mdW5jdGlvbiBEKE4sdyl7aWYoQXJyYXkuaXNBcnJheShOKSlyZXR1cm4gTi5zbGljZSgpO2lmKCFOKXJldHVybltdO3ZhciBGPVtdO2lmKCJzdHJpbmciIT10eXBlb2YgTil7Zm9yKHZhciBIPTA7SDxOLmxlbmd0aDtIKyspRltIXT0wfE5bSF07cmV0'@; put 'dXJuIEZ9aWYoImhleCI9PT13KWZvcigoTj1OLnJlcGxhY2UoL1teYS16MC05XSsvZ2ksIiIpKS5sZW5ndGglMiE9MCYmKE49IjAiK04pLEg9MDtIPE4ubGVuZ3RoO0grPTIpRi5wdXNoKHBhcnNlSW50KE5bSF0rTltIKzFdLDE2KSk7ZWxzZSBmb3IoSD0wO0g8Ti5sZW5ndGg7SCsrKXt2YXIg'@; put 'Uj1OLmNoYXJDb2RlQXQoSCksaj1SPj44LFA9MjU1JlI7aj9GLnB1c2goaixQKTpGLnB1c2goUCl9cmV0dXJuIEZ9LGIuemVybzI9XyxiLnRvSGV4PXAsYi5lbmNvZGU9ZnVuY3Rpb24odyxGKXtyZXR1cm4iaGV4Ij09PUY/cCh3KTp3fX0sMTE1NDQ6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rp'@; put 'b24oRCl7InVzZSBzdHJpY3QiO0QuZGVmaW5lTG9jYWxlKCJhZiIse21vbnRoczoiSmFudWFyaWVfRmVicnVhcmllX01hYXJ0X0FwcmlsX01laV9KdW5pZV9KdWxpZV9BdWd1c3R1c19TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3ZlbWJlcl9EZXNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoi'@; put 'SmFuX0ZlYl9NcnRfQXByX01laV9KdW5fSnVsX0F1Z19TZXBfT2t0X05vdl9EZXMiLnNwbGl0KCJfIiksd2Vla2RheXM6IlNvbmRhZ19NYWFuZGFnX0RpbnNkYWdfV29lbnNkYWdfRG9uZGVyZGFnX1ZyeWRhZ19TYXRlcmRhZyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJTb25fTWFhX0Rp'@; put 'bl9Xb2VfRG9uX1ZyeV9TYXQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlNvX01hX0RpX1dvX0RvX1ZyX1NhIi5zcGxpdCgiXyIpLG1lcmlkaWVtUGFyc2U6L3ZtfG5tL2ksaXNQTTpmdW5jdGlvbihwKXtyZXR1cm4vXm5tJC9pLnRlc3QocCl9LG1lcmlkaWVtOmZ1bmN0aW9uKHAsTix3KXty'@; put 'ZXR1cm4gcDwxMj93PyJ2bSI6IlZNIjp3PyJubSI6Ik5NIn0sbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBISDptbSJ9'@; put 'LGNhbGVuZGFyOntzYW1lRGF5OiJbVmFuZGFnIG9tXSBMVCIsbmV4dERheToiW01ceGY0cmUgb21dIExUIixuZXh0V2VlazoiZGRkZCBbb21dIExUIixsYXN0RGF5OiJbR2lzdGVyIG9tXSBMVCIsbGFzdFdlZWs6IltMYWFzXSBkZGRkIFtvbV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVU'@; put 'aW1lOntmdXR1cmU6Im9vciAlcyIscGFzdDoiJXMgZ2VsZWRlIixzOiInbiBwYWFyIHNla29uZGVzIixzczoiJWQgc2Vrb25kZXMiLG06IiduIG1pbnV1dCIsbW06IiVkIG1pbnV0ZSIsaDoiJ24gdXVyIixoaDoiJWQgdXJlIixkOiInbiBkYWciLGRkOiIlZCBkYWUiLE06IiduIG1hYW5kIixN'@; put 'TToiJWQgbWFhbmRlIix5OiInbiBqYWFyIix5eToiJWQgamFhciJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oc3RlfGRlKS8sb3JkaW5hbDpmdW5jdGlvbihwKXtyZXR1cm4gcCsoMT09PXB8fDg9PT1wfHxwPj0yMD8ic3RlIjoiZGUiKX0sd2Vlazp7ZG93OjEsZG95OjR9fSl9'@; put 'KGIoOTc1ODYpKX0sNTIxNTU6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO3ZhciBfPWZ1bmN0aW9uKEgpe3JldHVybiAwPT09SD8wOjE9PT1IPzE6Mj09PUg/MjpIJTEwMD49MyYmSCUxMDA8PTEwPzM6SCUxMDA+PTExPzQ6NX0scD17czpbIlx1MDYyM1x1MDY0'@; put 'Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IiwiXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZlx1MDYyOSIsWyJcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MmFcdTA2MjdcdTA2NDYiLCJc'@; put 'dTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MmFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjJiXHUwNjQ4XHUwNjI3XHUwNjQ2IiwiJWQgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IiwiJWQgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5Il0sbTpbIlx1MDYyM1x1MDY0Mlx1'@; put 'MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5IiwiXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZlx1MDYyOSIsWyJcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MmFcdTA2MjdcdTA2NDYiLCJcdTA2'@; put 'MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MmFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjJmXHUwNjQyXHUwNjI3XHUwNjI2XHUwNjQyIiwiJWQgXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5IiwiJWQgXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5Il0saDpbIlx1MDYyM1x1MDY0'@; put 'Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IiwiXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZlx1MDYyOSIsWyJcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MmFcdTA2MjdcdTA2NDYiLCJcdTA2MzNcdTA2MjdcdTA2Mzlc'@; put 'dTA2MmFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI3XHUwNjJhIiwiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IiwiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5Il0sZDpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjRhXHUwNjQ4'@; put 'XHUwNjQ1IiwiXHUwNjRhXHUwNjQ4XHUwNjQ1IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZiIsWyJcdTA2NGFcdTA2NDhcdTA2NDVcdTA2MjdcdTA2NDYiLCJcdTA2NGFcdTA2NDhcdTA2NDVcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjIzXHUwNjRhXHUwNjI3XHUwNjQ1IiwiJWQgXHUwNjRhXHUw'@; put 'NjQ4XHUwNjQ1XHUwNjRiXHUwNjI3IiwiJWQgXHUwNjRhXHUwNjQ4XHUwNjQ1Il0sTTpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjM0XHUwNjQ3XHUwNjMxIiwiXHUwNjM0XHUwNjQ3XHUwNjMxIFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZiIsWyJcdTA2MzRcdTA2NDdc'@; put 'dTA2MzFcdTA2MjdcdTA2NDYiLCJcdTA2MzRcdTA2NDdcdTA2MzFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjIzXHUwNjM0XHUwNjQ3XHUwNjMxIiwiJWQgXHUwNjM0XHUwNjQ3XHUwNjMxXHUwNjI3IiwiJWQgXHUwNjM0XHUwNjQ3XHUwNjMxIl0seTpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2'@; put 'NDVcdTA2NDYgXHUwNjM5XHUwNjI3XHUwNjQ1IiwiXHUwNjM5XHUwNjI3XHUwNjQ1IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZiIsWyJcdTA2MzlcdTA2MjdcdTA2NDVcdTA2MjdcdTA2NDYiLCJcdTA2MzlcdTA2MjdcdTA2NDVcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjIzXHUwNjM5XHUwNjQ4'@; put 'XHUwNjI3XHUwNjQ1IiwiJWQgXHUwNjM5XHUwNjI3XHUwNjQ1XHUwNjRiXHUwNjI3IiwiJWQgXHUwNjM5XHUwNjI3XHUwNjQ1Il19LE49ZnVuY3Rpb24oSCl7cmV0dXJuIGZ1bmN0aW9uKFIsaixQLEwpe3ZhciBZPV8oUiksQj1wW0hdW18oUildO3JldHVybiAyPT09WSYmKEI9QltqPzA6MV0p'@; put 'LEIucmVwbGFjZSgvJWQvaSxSKX19LHc9WyJcdTA2MmNcdTA2MjdcdTA2NDZcdTA2NDFcdTA2NGEiLCJcdTA2NDFcdTA2NGFcdTA2NDFcdTA2MzFcdTA2NGEiLCJcdTA2NDVcdTA2MjdcdTA2MzFcdTA2MzMiLCJcdTA2MjNcdTA2NDFcdTA2MzFcdTA2NGFcdTA2NDQiLCJcdTA2NDVcdTA2Mjdc'@; put 'dTA2NGEiLCJcdTA2MmNcdTA2NDhcdTA2MjdcdTA2NDYiLCJcdTA2MmNcdTA2NDhcdTA2NGFcdTA2NDRcdTA2NGFcdTA2MjkiLCJcdTA2MjNcdTA2NDhcdTA2MmEiLCJcdTA2MzNcdTA2MjhcdTA2MmFcdTA2NDVcdTA2MjhcdTA2MzEiLCJcdTA2MjNcdTA2NDNcdTA2MmFcdTA2NDhcdTA2Mjhc'@; put 'dTA2MzEiLCJcdTA2NDZcdTA2NDhcdTA2NDFcdTA2NDVcdTA2MjhcdTA2MzEiLCJcdTA2MmZcdTA2NGFcdTA2MzNcdTA2NDVcdTA2MjhcdTA2MzEiXTtELmRlZmluZUxvY2FsZSgiYXItZHoiLHttb250aHM6dyxtb250aHNTaG9ydDp3LHdlZWtkYXlzOiJcdTA2MjdcdTA2NDRcdTA2MjNcdTA2'@; put 'MmRcdTA2MmZfXHUwNjI3XHUwNjQ0XHUwNjI1XHUwNjJiXHUwNjQ2XHUwNjRhXHUwNjQ2X1x1MDYyN1x1MDY0NFx1MDYyYlx1MDY0NFx1MDYyN1x1MDYyYlx1MDYyN1x1MDYyMV9cdTA2MjdcdTA2NDRcdTA2MjNcdTA2MzFcdTA2MjhcdTA2MzlcdTA2MjdcdTA2MjFfXHUwNjI3XHUwNjQ0XHUw'@; put 'NjJlXHUwNjQ1XHUwNjRhXHUwNjMzX1x1MDYyN1x1MDY0NFx1MDYyY1x1MDY0NVx1MDYzOVx1MDYyOV9cdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjhcdTA2MmEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNjIzXHUwNjJkXHUwNjJmX1x1MDYyNVx1MDYyYlx1MDY0Nlx1MDY0YVx1MDY0'@; put 'Nl9cdTA2MmJcdTA2NDRcdTA2MjdcdTA2MmJcdTA2MjdcdTA2MjFfXHUwNjIzXHUwNjMxXHUwNjI4XHUwNjM5XHUwNjI3XHUwNjIxX1x1MDYyZVx1MDY0NVx1MDY0YVx1MDYzM19cdTA2MmNcdTA2NDVcdTA2MzlcdTA2MjlfXHUwNjMzXHUwNjI4XHUwNjJhIi5zcGxpdCgiXyIpLHdlZWtkYXlz'@; put 'TWluOiJcdTA2MmRfXHUwNjQ2X1x1MDYyYl9cdTA2MzFfXHUwNjJlX1x1MDYyY19cdTA2MzMiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkQvXHUyMDBmTS9cdTIwMGZZWVlZIixMTDoiRCBNTU1N'@; put 'IFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTA2MzV8XHUwNjQ1Lyxpc1BNOmZ1bmN0aW9uKEgpe3JldHVybiJcdTA2NDUiPT09SH0sbWVyaWRpZW06ZnVuY3Rpb24oSCxSLGope3JldHVybiBIPDEy'@; put 'PyJcdTA2MzUiOiJcdTA2NDUifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDYyN1x1MDY0NFx1MDY0YVx1MDY0OFx1MDY0NSBcdTA2MzlcdTA2NDZcdTA2MmYgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dERheToiW1x1MDYzYVx1MDYyZlx1MDY0Ylx1MDYy'@; put 'NyBcdTA2MzlcdTA2NDZcdTA2MmYgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDYzOVx1MDY0Nlx1MDYyZiBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0RGF5OiJbXHUwNjIzXHUwNjQ1XHUw'@; put 'NjMzIFx1MDYzOVx1MDY0Nlx1MDYyZiBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0V2VlazoiZGRkZCBbXHUwNjM5XHUwNjQ2XHUwNjJmIFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVU'@; put 'aW1lOntmdXR1cmU6Ilx1MDYyOFx1MDYzOVx1MDYyZiAlcyIscGFzdDoiXHUwNjQ1XHUwNjQ2XHUwNjMwICVzIixzOk4oInMiKSxzczpOKCJzIiksbTpOKCJtIiksbW06TigibSIpLGg6TigiaCIpLGhoOk4oImgiKSxkOk4oImQiKSxkZDpOKCJkIiksTTpOKCJNIiksTU06TigiTSIpLHk6Tigi'@; put 'eSIpLHl5Ok4oInkiKX0scG9zdGZvcm1hdDpmdW5jdGlvbihIKXtyZXR1cm4gSC5yZXBsYWNlKC8sL2csIlx1MDYwYyIpfSx3ZWVrOntkb3c6MCxkb3k6NH19KX0oYig5NzU4NikpfSw1MzU4MzpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7RC5kZWZpbmVMb2Nh'@; put 'bGUoImFyLWt3Iix7bW9udGhzOiJcdTA2NGFcdTA2NDZcdTA2MjdcdTA2NGFcdTA2MzFfXHUwNjQxXHUwNjI4XHUwNjMxXHUwNjI3XHUwNjRhXHUwNjMxX1x1MDY0NVx1MDYyN1x1MDYzMVx1MDYzM19cdTA2MjNcdTA2MjhcdTA2MzFcdTA2NGFcdTA2NDRfXHUwNjQ1XHUwNjI3XHUwNjRhX1x1'@; put 'MDY0YVx1MDY0OFx1MDY0Nlx1MDY0YVx1MDY0OF9cdTA2NGFcdTA2NDhcdTA2NDRcdTA2NGFcdTA2NDhcdTA2MzJfXHUwNjNhXHUwNjM0XHUwNjJhX1x1MDYzNFx1MDYyYVx1MDY0Nlx1MDYyOFx1MDYzMV9cdTA2MjNcdTA2NDNcdTA2MmFcdTA2NDhcdTA2MjhcdTA2MzFfXHUwNjQ2XHUwNjQ4'@; put 'XHUwNjQ2XHUwNjI4XHUwNjMxX1x1MDYyZlx1MDYyY1x1MDY0Nlx1MDYyOFx1MDYzMSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwNjRhXHUwNjQ2XHUwNjI3XHUwNjRhXHUwNjMxX1x1MDY0MVx1MDYyOFx1MDYzMVx1MDYyN1x1MDY0YVx1MDYzMV9cdTA2NDVcdTA2MjdcdTA2MzFcdTA2'@; put 'MzNfXHUwNjIzXHUwNjI4XHUwNjMxXHUwNjRhXHUwNjQ0X1x1MDY0NVx1MDYyN1x1MDY0YV9cdTA2NGFcdTA2NDhcdTA2NDZcdTA2NGFcdTA2NDhfXHUwNjRhXHUwNjQ4XHUwNjQ0XHUwNjRhXHUwNjQ4XHUwNjMyX1x1MDYzYVx1MDYzNFx1MDYyYV9cdTA2MzRcdTA2MmFcdTA2NDZcdTA2Mjhc'@; put 'dTA2MzFfXHUwNjIzXHUwNjQzXHUwNjJhXHUwNjQ4XHUwNjI4XHUwNjMxX1x1MDY0Nlx1MDY0OFx1MDY0Nlx1MDYyOFx1MDYzMV9cdTA2MmZcdTA2MmNcdTA2NDZcdTA2MjhcdTA2MzEiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDYyN1x1MDY0NFx1MDYyM1x1MDYyZFx1MDYyZl9cdTA2Mjdc'@; put 'dTA2NDRcdTA2MjVcdTA2MmFcdTA2NDZcdTA2NGFcdTA2NDZfXHUwNjI3XHUwNjQ0XHUwNjJiXHUwNjQ0XHUwNjI3XHUwNjJiXHUwNjI3XHUwNjIxX1x1MDYyN1x1MDY0NFx1MDYyM1x1MDYzMVx1MDYyOFx1MDYzOVx1MDYyN1x1MDYyMV9cdTA2MjdcdTA2NDRcdTA2MmVcdTA2NDVcdTA2NGFc'@; put 'dTA2MzNfXHUwNjI3XHUwNjQ0XHUwNjJjXHUwNjQ1XHUwNjM5XHUwNjI5X1x1MDYyN1x1MDY0NFx1MDYzM1x1MDYyOFx1MDYyYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA2MjdcdTA2MmRcdTA2MmZfXHUwNjI3XHUwNjJhXHUwNjQ2XHUwNjRhXHUwNjQ2X1x1MDYyYlx1MDY0NFx1'@; put 'MDYyN1x1MDYyYlx1MDYyN1x1MDYyMV9cdTA2MjdcdTA2MzFcdTA2MjhcdTA2MzlcdTA2MjdcdTA2MjFfXHUwNjJlXHUwNjQ1XHUwNjRhXHUwNjMzX1x1MDYyY1x1MDY0NVx1MDYzOVx1MDYyOV9cdTA2MzNcdTA2MjhcdTA2MmEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDYyZF9cdTA2'@; put 'NDZfXHUwNjJiX1x1MDYzMV9cdTA2MmVfXHUwNjJjX1x1MDYzMyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhI'@; put 'Om1tIixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA2MjdcdTA2NDRcdTA2NGFcdTA2NDhcdTA2NDUgXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLG5leHREYXk6IltcdTA2M2Fc'@; put 'dTA2MmZcdTA2MjcgXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLG5leHRXZWVrOiJkZGRkIFtcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbGFzdERheToiW1x1MDYy'@; put 'M1x1MDY0NVx1MDYzMyBcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbGFzdFdlZWs6ImRkZGQgW1x1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixzYW1lRWxzZToiTCJ9'@; put 'LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTA2NDFcdTA2NGEgJXMiLHBhc3Q6Ilx1MDY0NVx1MDY0Nlx1MDYzMCAlcyIsczoiXHUwNjJiXHUwNjQ4XHUwNjI3XHUwNjQ2IixzczoiJWQgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IixtOiJcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJc'@; put 'dTA2MjkiLG1tOiIlZCBcdTA2MmZcdTA2NDJcdTA2MjdcdTA2MjZcdTA2NDIiLGg6Ilx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOSIsaGg6IiVkIFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyN1x1MDYyYSIsZDoiXHUwNjRhXHUwNjQ4XHUwNjQ1IixkZDoiJWQgXHUwNjIzXHUwNjRhXHUwNjI3XHUw'@; put 'NjQ1IixNOiJcdTA2MzRcdTA2NDdcdTA2MzEiLE1NOiIlZCBcdTA2MjNcdTA2MzRcdTA2NDdcdTA2MzEiLHk6Ilx1MDYzM1x1MDY0Nlx1MDYyOSIseXk6IiVkIFx1MDYzM1x1MDY0Nlx1MDY0OFx1MDYyN1x1MDYyYSJ9LHdlZWs6e2RvdzowLGRveToxMn19KX0oYig5NzU4NikpfSw0MTYzODpm'@; put 'dW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7dmFyIF89ezE6IjEiLDI6IjIiLDM6IjMiLDQ6IjQiLDU6IjUiLDY6IjYiLDc6IjciLDg6IjgiLDk6IjkiLDA6IjAifSxwPWZ1bmN0aW9uKFIpe3JldHVybiAwPT09Uj8wOjE9PT1SPzE6Mj09PVI/MjpSJTEwMD49MyYm'@; put 'UiUxMDA8PTEwPzM6UiUxMDA+PTExPzQ6NX0sTj17czpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IiwiXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZlx1MDYyOSIsWyJc'@; put 'dTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MmFcdTA2MjdcdTA2NDYiLCJcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MmFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjJiXHUwNjQ4XHUwNjI3XHUwNjQ2IiwiJWQgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IiwiJWQgXHUwNjJi'@; put 'XHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5Il0sbTpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5IiwiXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZlx1MDYyOSIsWyJcdTA2'@; put 'MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MmFcdTA2MjdcdTA2NDYiLCJcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MmFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjJmXHUwNjQyXHUwNjI3XHUwNjI2XHUwNjQyIiwiJWQgXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5IiwiJWQgXHUw'@; put 'NjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5Il0saDpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IiwiXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZlx1MDYyOSIsWyJcdTA2MzNcdTA2Mjdc'@; put 'dTA2MzlcdTA2MmFcdTA2MjdcdTA2NDYiLCJcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MmFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI3XHUwNjJhIiwiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IiwiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5Il0sZDpb'@; put 'Ilx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjRhXHUwNjQ4XHUwNjQ1IiwiXHUwNjRhXHUwNjQ4XHUwNjQ1IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZiIsWyJcdTA2NGFcdTA2NDhcdTA2NDVcdTA2MjdcdTA2NDYiLCJcdTA2NGFcdTA2NDhcdTA2NDVcdTA2NGFcdTA2NDYi'@; put 'XSwiJWQgXHUwNjIzXHUwNjRhXHUwNjI3XHUwNjQ1IiwiJWQgXHUwNjRhXHUwNjQ4XHUwNjQ1XHUwNjRiXHUwNjI3IiwiJWQgXHUwNjRhXHUwNjQ4XHUwNjQ1Il0sTTpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjM0XHUwNjQ3XHUwNjMxIiwiXHUwNjM0XHUwNjQ3XHUw'@; put 'NjMxIFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZiIsWyJcdTA2MzRcdTA2NDdcdTA2MzFcdTA2MjdcdTA2NDYiLCJcdTA2MzRcdTA2NDdcdTA2MzFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjIzXHUwNjM0XHUwNjQ3XHUwNjMxIiwiJWQgXHUwNjM0XHUwNjQ3XHUwNjMxXHUwNjI3IiwiJWQgXHUw'@; put 'NjM0XHUwNjQ3XHUwNjMxIl0seTpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjM5XHUwNjI3XHUwNjQ1IiwiXHUwNjM5XHUwNjI3XHUwNjQ1IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZiIsWyJcdTA2MzlcdTA2MjdcdTA2NDVcdTA2MjdcdTA2NDYiLCJcdTA2MzlcdTA2'@; put 'MjdcdTA2NDVcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjIzXHUwNjM5XHUwNjQ4XHUwNjI3XHUwNjQ1IiwiJWQgXHUwNjM5XHUwNjI3XHUwNjQ1XHUwNjRiXHUwNjI3IiwiJWQgXHUwNjM5XHUwNjI3XHUwNjQ1Il19LHc9ZnVuY3Rpb24oUil7cmV0dXJuIGZ1bmN0aW9uKGosUCxMLFkpe3ZhciBC'@; put 'PXAoaiksVz1OW1JdW3AoaildO3JldHVybiAyPT09QiYmKFc9V1tQPzA6MV0pLFcucmVwbGFjZSgvJWQvaSxqKX19LEY9WyJcdTA2NGFcdTA2NDZcdTA2MjdcdTA2NGFcdTA2MzEiLCJcdTA2NDFcdTA2MjhcdTA2MzFcdTA2MjdcdTA2NGFcdTA2MzEiLCJcdTA2NDVcdTA2MjdcdTA2MzFcdTA2'@; put 'MzMiLCJcdTA2MjNcdTA2MjhcdTA2MzFcdTA2NGFcdTA2NDQiLCJcdTA2NDVcdTA2MjdcdTA2NGFcdTA2NDgiLCJcdTA2NGFcdTA2NDhcdTA2NDZcdTA2NGFcdTA2NDgiLCJcdTA2NGFcdTA2NDhcdTA2NDRcdTA2NGFcdTA2NDgiLCJcdTA2MjNcdTA2M2FcdTA2MzNcdTA2MzdcdTA2MzMiLCJc'@; put 'dTA2MzNcdTA2MjhcdTA2MmFcdTA2NDVcdTA2MjhcdTA2MzEiLCJcdTA2MjNcdTA2NDNcdTA2MmFcdTA2NDhcdTA2MjhcdTA2MzEiLCJcdTA2NDZcdTA2NDhcdTA2NDFcdTA2NDVcdTA2MjhcdTA2MzEiLCJcdTA2MmZcdTA2NGFcdTA2MzNcdTA2NDVcdTA2MjhcdTA2MzEiXTtELmRlZmluZUxv'@; put 'Y2FsZSgiYXItbHkiLHttb250aHM6Rixtb250aHNTaG9ydDpGLHdlZWtkYXlzOiJcdTA2MjdcdTA2NDRcdTA2MjNcdTA2MmRcdTA2MmZfXHUwNjI3XHUwNjQ0XHUwNjI1XHUwNjJiXHUwNjQ2XHUwNjRhXHUwNjQ2X1x1MDYyN1x1MDY0NFx1MDYyYlx1MDY0NFx1MDYyN1x1MDYyYlx1MDYyN1x1'@; put 'MDYyMV9cdTA2MjdcdTA2NDRcdTA2MjNcdTA2MzFcdTA2MjhcdTA2MzlcdTA2MjdcdTA2MjFfXHUwNjI3XHUwNjQ0XHUwNjJlXHUwNjQ1XHUwNjRhXHUwNjMzX1x1MDYyN1x1MDY0NFx1MDYyY1x1MDY0NVx1MDYzOVx1MDYyOV9cdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjhcdTA2MmEiLnNwbGl0'@; put 'KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNjIzXHUwNjJkXHUwNjJmX1x1MDYyNVx1MDYyYlx1MDY0Nlx1MDY0YVx1MDY0Nl9cdTA2MmJcdTA2NDRcdTA2MjdcdTA2MmJcdTA2MjdcdTA2MjFfXHUwNjIzXHUwNjMxXHUwNjI4XHUwNjM5XHUwNjI3XHUwNjIxX1x1MDYyZVx1MDY0NVx1MDY0YVx1'@; put 'MDYzM19cdTA2MmNcdTA2NDVcdTA2MzlcdTA2MjlfXHUwNjMzXHUwNjI4XHUwNjJhIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA2MmRfXHUwNjQ2X1x1MDYyYl9cdTA2MzFfXHUwNjJlX1x1MDYyY19cdTA2MzMiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRl'@; put 'Rm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkQvXHUyMDBmTS9cdTIwMGZZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTA2MzV8XHUwNjQ1Lyxpc1BN'@; put 'OmZ1bmN0aW9uKFIpe3JldHVybiJcdTA2NDUiPT09Un0sbWVyaWRpZW06ZnVuY3Rpb24oUixqLFApe3JldHVybiBSPDEyPyJcdTA2MzUiOiJcdTA2NDUifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDYyN1x1MDY0NFx1MDY0YVx1MDY0OFx1MDY0NSBcdTA2MzlcdTA2NDZcdTA2MmYgXHUwNjI3'@; put 'XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dERheToiW1x1MDYzYVx1MDYyZlx1MDY0Ylx1MDYyNyBcdTA2MzlcdTA2NDZcdTA2MmYgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDYzOVx1MDY0Nlx1MDYy'@; put 'ZiBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0RGF5OiJbXHUwNjIzXHUwNjQ1XHUwNjMzIFx1MDYzOVx1MDY0Nlx1MDYyZiBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0V2VlazoiZGRkZCBbXHUwNjM5XHUwNjQ2XHUw'@; put 'NjJmIFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDYyOFx1MDYzOVx1MDYyZiAlcyIscGFzdDoiXHUwNjQ1XHUwNjQ2XHUwNjMwICVzIixzOncoInMiKSxzczp3KCJzIiksbTp3KCJtIiksbW06'@; put 'dygibSIpLGg6dygiaCIpLGhoOncoImgiKSxkOncoImQiKSxkZDp3KCJkIiksTTp3KCJNIiksTU06dygiTSIpLHk6dygieSIpLHl5OncoInkiKX0scHJlcGFyc2U6ZnVuY3Rpb24oUil7cmV0dXJuIFIucmVwbGFjZSgvXHUwNjBjL2csIiwiKX0scG9zdGZvcm1hdDpmdW5jdGlvbihSKXtyZXR1'@; put 'cm4gUi5yZXBsYWNlKC9cZC9nLGZ1bmN0aW9uKGope3JldHVybiBfW2pdfSkucmVwbGFjZSgvLC9nLCJcdTA2MGMiKX0sd2Vlazp7ZG93OjYsZG95OjEyfX0pfShiKDk3NTg2KSl9LDg3ODIzOmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0IjtELmRlZmluZUxvY2Fs'@; put 'ZSgiYXItbWEiLHttb250aHM6Ilx1MDY0YVx1MDY0Nlx1MDYyN1x1MDY0YVx1MDYzMV9cdTA2NDFcdTA2MjhcdTA2MzFcdTA2MjdcdTA2NGFcdTA2MzFfXHUwNjQ1XHUwNjI3XHUwNjMxXHUwNjMzX1x1MDYyM1x1MDYyOFx1MDYzMVx1MDY0YVx1MDY0NF9cdTA2NDVcdTA2MjdcdTA2NGFfXHUw'@; put 'NjRhXHUwNjQ4XHUwNjQ2XHUwNjRhXHUwNjQ4X1x1MDY0YVx1MDY0OFx1MDY0NFx1MDY0YVx1MDY0OFx1MDYzMl9cdTA2M2FcdTA2MzRcdTA2MmFfXHUwNjM0XHUwNjJhXHUwNjQ2XHUwNjI4XHUwNjMxX1x1MDYyM1x1MDY0M1x1MDYyYVx1MDY0OFx1MDYyOFx1MDYzMV9cdTA2NDZcdTA2NDhc'@; put 'dTA2NDZcdTA2MjhcdTA2MzFfXHUwNjJmXHUwNjJjXHUwNjQ2XHUwNjI4XHUwNjMxIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTA2NGFcdTA2NDZcdTA2MjdcdTA2NGFcdTA2MzFfXHUwNjQxXHUwNjI4XHUwNjMxXHUwNjI3XHUwNjRhXHUwNjMxX1x1MDY0NVx1MDYyN1x1MDYzMVx1MDYz'@; put 'M19cdTA2MjNcdTA2MjhcdTA2MzFcdTA2NGFcdTA2NDRfXHUwNjQ1XHUwNjI3XHUwNjRhX1x1MDY0YVx1MDY0OFx1MDY0Nlx1MDY0YVx1MDY0OF9cdTA2NGFcdTA2NDhcdTA2NDRcdTA2NGFcdTA2NDhcdTA2MzJfXHUwNjNhXHUwNjM0XHUwNjJhX1x1MDYzNFx1MDYyYVx1MDY0Nlx1MDYyOFx1'@; put 'MDYzMV9cdTA2MjNcdTA2NDNcdTA2MmFcdTA2NDhcdTA2MjhcdTA2MzFfXHUwNjQ2XHUwNjQ4XHUwNjQ2XHUwNjI4XHUwNjMxX1x1MDYyZlx1MDYyY1x1MDY0Nlx1MDYyOFx1MDYzMSIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjJkXHUwNjJmX1x1MDYyN1x1'@; put 'MDY0NFx1MDYyNVx1MDYyYlx1MDY0Nlx1MDY0YVx1MDY0Nl9cdTA2MjdcdTA2NDRcdTA2MmJcdTA2NDRcdTA2MjdcdTA2MmJcdTA2MjdcdTA2MjFfXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjMxXHUwNjI4XHUwNjM5XHUwNjI3XHUwNjIxX1x1MDYyN1x1MDY0NFx1MDYyZVx1MDY0NVx1MDY0YVx1'@; put 'MDYzM19cdTA2MjdcdTA2NDRcdTA2MmNcdTA2NDVcdTA2MzlcdTA2MjlfXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI4XHUwNjJhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDYyN1x1MDYyZFx1MDYyZl9cdTA2MjdcdTA2MmJcdTA2NDZcdTA2NGFcdTA2NDZfXHUwNjJiXHUwNjQ0XHUw'@; put 'NjI3XHUwNjJiXHUwNjI3XHUwNjIxX1x1MDYyN1x1MDYzMVx1MDYyOFx1MDYzOVx1MDYyN1x1MDYyMV9cdTA2MmVcdTA2NDVcdTA2NGFcdTA2MzNfXHUwNjJjXHUwNjQ1XHUwNjM5XHUwNjI5X1x1MDYzM1x1MDYyOFx1MDYyYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwNjJkX1x1MDY0'@; put 'Nl9cdTA2MmJfXHUwNjMxX1x1MDYyZV9cdTA2MmNfXHUwNjMzIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6'@; put 'bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDYyN1x1MDY0NFx1MDY0YVx1MDY0OFx1MDY0NSBcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dERheToiW1x1MDYzYVx1'@; put 'MDYyZlx1MDYyNyBcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0RGF5OiJbXHUwNjIz'@; put 'XHUwNjQ1XHUwNjMzIFx1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0V2VlazoiZGRkZCBbXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLHNhbWVFbHNlOiJMIn0s'@; put 'cmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDY0MVx1MDY0YSAlcyIscGFzdDoiXHUwNjQ1XHUwNjQ2XHUwNjMwICVzIixzOiJcdTA2MmJcdTA2NDhcdTA2MjdcdTA2NDYiLHNzOiIlZCBcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MjkiLG06Ilx1MDYyZlx1MDY0Mlx1MDY0YVx1MDY0Mlx1'@; put 'MDYyOSIsbW06IiVkIFx1MDYyZlx1MDY0Mlx1MDYyN1x1MDYyNlx1MDY0MiIsaDoiXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IixoaDoiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI3XHUwNjJhIixkOiJcdTA2NGFcdTA2NDhcdTA2NDUiLGRkOiIlZCBcdTA2MjNcdTA2NGFcdTA2MjdcdTA2'@; put 'NDUiLE06Ilx1MDYzNFx1MDY0N1x1MDYzMSIsTU06IiVkIFx1MDYyM1x1MDYzNFx1MDY0N1x1MDYzMSIseToiXHUwNjMzXHUwNjQ2XHUwNjI5Iix5eToiJWQgXHUwNjMzXHUwNjQ2XHUwNjQ4XHUwNjI3XHUwNjJhIn0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KGIoOTc1ODYpKX0sNzcxMjpmdW5j'@; put 'dGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7dmFyIF89ezE6Ilx1MDY2MSIsMjoiXHUwNjYyIiwzOiJcdTA2NjMiLDQ6Ilx1MDY2NCIsNToiXHUwNjY1Iiw2OiJcdTA2NjYiLDc6Ilx1MDY2NyIsODoiXHUwNjY4Iiw5OiJcdTA2NjkiLDA6Ilx1MDY2MCJ9LHA9eyJcdTA2'@; put 'NjEiOiIxIiwiXHUwNjYyIjoiMiIsIlx1MDY2MyI6IjMiLCJcdTA2NjQiOiI0IiwiXHUwNjY1IjoiNSIsIlx1MDY2NiI6IjYiLCJcdTA2NjciOiI3IiwiXHUwNjY4IjoiOCIsIlx1MDY2OSI6IjkiLCJcdTA2NjAiOiIwIn07RC5kZWZpbmVMb2NhbGUoImFyLXBzIix7bW9udGhzOiJcdTA2NDNc'@; put 'dTA2MjdcdTA2NDZcdTA2NDhcdTA2NDYgXHUwNjI3XHUwNjQ0XHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhX1x1MDYzNFx1MDYyOFx1MDYyN1x1MDYzN19cdTA2MjJcdTA2MzBcdTA2MjdcdTA2MzFfXHUwNjQ2XHUwNjRhXHUwNjMzXHUwNjI3XHUwNjQ2X1x1MDYyM1x1MDY0YVx1MDY1MVx1MDYy'@; put 'N1x1MDYzMV9cdTA2MmRcdTA2MzJcdTA2NGFcdTA2MzFcdTA2MjdcdTA2NDZfXHUwNjJhXHUwNjQ1XHUwNjUxXHUwNjQ4XHUwNjMyX1x1MDYyMlx1MDYyOF9cdTA2MjNcdTA2NGFcdTA2NDRcdTA2NDhcdTA2NDRfXHUwNjJhXHUwNjM0XHUwNjMxXHUwNjRhIFx1MDYyN1x1MDY0NFx1MDYyM1x1'@; put 'MDY0OFx1MDY1MVx1MDY0NF9cdTA2MmFcdTA2MzRcdTA2MzFcdTA2NGFcdTA2NDYgXHUwNjI3XHUwNjQ0XHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhX1x1MDY0M1x1MDYyN1x1MDY0Nlx1MDY0OFx1MDY0NiBcdTA2MjdcdTA2NDRcdTA2MjNcdTA2NDhcdTA2NTFcdTA2NDQiLnNwbGl0KCJfIiks'@; put 'bW9udGhzU2hvcnQ6Ilx1MDY0M1x1MDY2Ml9cdTA2MzRcdTA2MjhcdTA2MjdcdTA2MzdfXHUwNjIyXHUwNjMwXHUwNjI3XHUwNjMxX1x1MDY0Nlx1MDY0YVx1MDYzM1x1MDYyN1x1MDY0Nl9cdTA2MjNcdTA2NGFcdTA2NTFcdTA2MjdcdTA2MzFfXHUwNjJkXHUwNjMyXHUwNjRhXHUwNjMxXHUw'@; put 'NjI3XHUwNjQ2X1x1MDYyYVx1MDY0NVx1MDY1MVx1MDY0OFx1MDYzMl9cdTA2MjJcdTA2MjhfXHUwNjIzXHUwNjRhXHUwNjQ0XHUwNjQ4XHUwNjQ0X1x1MDYyYVx1MDY2MV9cdTA2MmFcdTA2NjJfXHUwNjQzXHUwNjYxIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTA2MjdcdTA2NDRcdTA2MjNc'@; put 'dTA2MmRcdTA2MmZfXHUwNjI3XHUwNjQ0XHUwNjI1XHUwNjJiXHUwNjQ2XHUwNjRhXHUwNjQ2X1x1MDYyN1x1MDY0NFx1MDYyYlx1MDY0NFx1MDYyN1x1MDYyYlx1MDYyN1x1MDYyMV9cdTA2MjdcdTA2NDRcdTA2MjNcdTA2MzFcdTA2MjhcdTA2MzlcdTA2MjdcdTA2MjFfXHUwNjI3XHUwNjQ0'@; put 'XHUwNjJlXHUwNjQ1XHUwNjRhXHUwNjMzX1x1MDYyN1x1MDY0NFx1MDYyY1x1MDY0NVx1MDYzOVx1MDYyOV9cdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjhcdTA2MmEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNjIzXHUwNjJkXHUwNjJmX1x1MDYyNVx1MDYyYlx1MDY0Nlx1MDY0YVx1'@; put 'MDY0Nl9cdTA2MmJcdTA2NDRcdTA2MjdcdTA2MmJcdTA2MjdcdTA2MjFfXHUwNjIzXHUwNjMxXHUwNjI4XHUwNjM5XHUwNjI3XHUwNjIxX1x1MDYyZVx1MDY0NVx1MDY0YVx1MDYzM19cdTA2MmNcdTA2NDVcdTA2MzlcdTA2MjlfXHUwNjMzXHUwNjI4XHUwNjJhIi5zcGxpdCgiXyIpLHdlZWtk'@; put 'YXlzTWluOiJcdTA2MmRfXHUwNjQ2X1x1MDYyYl9cdTA2MzFfXHUwNjJlX1x1MDYyY19cdTA2MzMiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIs'@; put 'TExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCBEIE1NTU0gWVlZWSBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1MDYzNXxcdTA2NDUvLGlzUE06ZnVuY3Rpb24odyl7cmV0dXJuIlx1MDY0NSI9PT13fSxtZXJpZGllbTpmdW5jdGlvbih3LEYsSCl7cmV0dXJuIHc8MTI/Ilx1MDYz'@; put 'NSI6Ilx1MDY0NSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNjI3XHUwNjQ0XHUwNjRhXHUwNjQ4XHUwNjQ1IFx1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixuZXh0RGF5OiJbXHUwNjNhXHUwNjJmXHUwNjI3IFx1MDYzOVx1MDY0'@; put 'NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixuZXh0V2VlazoiZGRkZCBbXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLGxhc3REYXk6IltcdTA2MjNcdTA2NDVcdTA2MzMgXHUwNjM5XHUw'@; put 'NjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLGxhc3RXZWVrOiJkZGRkIFtcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToi'@; put 'XHUwNjQxXHUwNjRhICVzIixwYXN0OiJcdTA2NDVcdTA2NDZcdTA2MzAgJXMiLHM6Ilx1MDYyYlx1MDY0OFx1MDYyN1x1MDY0NiIsc3M6IiVkIFx1MDYyYlx1MDYyN1x1MDY0Nlx1MDY0YVx1MDYyOSIsbToiXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5IixtbToiJWQgXHUwNjJmXHUw'@; put 'NjQyXHUwNjI3XHUwNjI2XHUwNjQyIixoOiJcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjkiLGhoOiIlZCBcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjdcdTA2MmEiLGQ6Ilx1MDY0YVx1MDY0OFx1MDY0NSIsZGQ6IiVkIFx1MDYyM1x1MDY0YVx1MDYyN1x1MDY0NSIsTToiXHUwNjM0XHUwNjQ3XHUw'@; put 'NjMxIixNTToiJWQgXHUwNjIzXHUwNjM0XHUwNjQ3XHUwNjMxIix5OiJcdTA2MzNcdTA2NDZcdTA2MjkiLHl5OiIlZCBcdTA2MzNcdTA2NDZcdTA2NDhcdTA2MjdcdTA2MmEifSxwcmVwYXJzZTpmdW5jdGlvbih3KXtyZXR1cm4gdy5yZXBsYWNlKC9bXHUwNjYzXHUwNjY0XHUwNjY1XHUwNjY2'@; put 'XHUwNjY3XHUwNjY4XHUwNjY5XHUwNjYwXS9nLGZ1bmN0aW9uKEYpe3JldHVybiBwW0ZdfSkuc3BsaXQoIiIpLnJldmVyc2UoKS5qb2luKCIiKS5yZXBsYWNlKC9bXHUwNjYxXHUwNjYyXSg/IVtcdTA2MmFcdTA2NDNdKS9nLGZ1bmN0aW9uKEYpe3JldHVybiBwW0ZdfSkuc3BsaXQoIiIpLnJl'@; put 'dmVyc2UoKS5qb2luKCIiKS5yZXBsYWNlKC9cdTA2MGMvZywiLCIpfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKHcpe3JldHVybiB3LnJlcGxhY2UoL1xkL2csZnVuY3Rpb24oRil7cmV0dXJuIF9bRl19KS5yZXBsYWNlKC8sL2csIlx1MDYwYyIpfSx3ZWVrOntkb3c6MCxkb3k6Nn19KX0oYig5NzU4'@; put 'NikpfSw3ODI2MTpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7dmFyIF89ezE6Ilx1MDY2MSIsMjoiXHUwNjYyIiwzOiJcdTA2NjMiLDQ6Ilx1MDY2NCIsNToiXHUwNjY1Iiw2OiJcdTA2NjYiLDc6Ilx1MDY2NyIsODoiXHUwNjY4Iiw5OiJcdTA2NjkiLDA6Ilx1'@; put 'MDY2MCJ9LHA9eyJcdTA2NjEiOiIxIiwiXHUwNjYyIjoiMiIsIlx1MDY2MyI6IjMiLCJcdTA2NjQiOiI0IiwiXHUwNjY1IjoiNSIsIlx1MDY2NiI6IjYiLCJcdTA2NjciOiI3IiwiXHUwNjY4IjoiOCIsIlx1MDY2OSI6IjkiLCJcdTA2NjAiOiIwIn07RC5kZWZpbmVMb2NhbGUoImFyLXNhIix7'@; put 'bW9udGhzOiJcdTA2NGFcdTA2NDZcdTA2MjdcdTA2NGFcdTA2MzFfXHUwNjQxXHUwNjI4XHUwNjMxXHUwNjI3XHUwNjRhXHUwNjMxX1x1MDY0NVx1MDYyN1x1MDYzMVx1MDYzM19cdTA2MjNcdTA2MjhcdTA2MzFcdTA2NGFcdTA2NDRfXHUwNjQ1XHUwNjI3XHUwNjRhXHUwNjQ4X1x1MDY0YVx1'@; put 'MDY0OFx1MDY0Nlx1MDY0YVx1MDY0OF9cdTA2NGFcdTA2NDhcdTA2NDRcdTA2NGFcdTA2NDhfXHUwNjIzXHUwNjNhXHUwNjMzXHUwNjM3XHUwNjMzX1x1MDYzM1x1MDYyOFx1MDYyYVx1MDY0NVx1MDYyOFx1MDYzMV9cdTA2MjNcdTA2NDNcdTA2MmFcdTA2NDhcdTA2MjhcdTA2MzFfXHUwNjQ2'@; put 'XHUwNjQ4XHUwNjQxXHUwNjQ1XHUwNjI4XHUwNjMxX1x1MDYyZlx1MDY0YVx1MDYzM1x1MDY0NVx1MDYyOFx1MDYzMSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwNjRhXHUwNjQ2XHUwNjI3XHUwNjRhXHUwNjMxX1x1MDY0MVx1MDYyOFx1MDYzMVx1MDYyN1x1MDY0YVx1MDYzMV9cdTA2'@; put 'NDVcdTA2MjdcdTA2MzFcdTA2MzNfXHUwNjIzXHUwNjI4XHUwNjMxXHUwNjRhXHUwNjQ0X1x1MDY0NVx1MDYyN1x1MDY0YVx1MDY0OF9cdTA2NGFcdTA2NDhcdTA2NDZcdTA2NGFcdTA2NDhfXHUwNjRhXHUwNjQ4XHUwNjQ0XHUwNjRhXHUwNjQ4X1x1MDYyM1x1MDYzYVx1MDYzM1x1MDYzN1x1'@; put 'MDYzM19cdTA2MzNcdTA2MjhcdTA2MmFcdTA2NDVcdTA2MjhcdTA2MzFfXHUwNjIzXHUwNjQzXHUwNjJhXHUwNjQ4XHUwNjI4XHUwNjMxX1x1MDY0Nlx1MDY0OFx1MDY0MVx1MDY0NVx1MDYyOFx1MDYzMV9cdTA2MmZcdTA2NGFcdTA2MzNcdTA2NDVcdTA2MjhcdTA2MzEiLnNwbGl0KCJfIiks'@; put 'd2Vla2RheXM6Ilx1MDYyN1x1MDY0NFx1MDYyM1x1MDYyZFx1MDYyZl9cdTA2MjdcdTA2NDRcdTA2MjVcdTA2MmJcdTA2NDZcdTA2NGFcdTA2NDZfXHUwNjI3XHUwNjQ0XHUwNjJiXHUwNjQ0XHUwNjI3XHUwNjJiXHUwNjI3XHUwNjIxX1x1MDYyN1x1MDY0NFx1MDYyM1x1MDYzMVx1MDYyOFx1'@; put 'MDYzOVx1MDYyN1x1MDYyMV9cdTA2MjdcdTA2NDRcdTA2MmVcdTA2NDVcdTA2NGFcdTA2MzNfXHUwNjI3XHUwNjQ0XHUwNjJjXHUwNjQ1XHUwNjM5XHUwNjI5X1x1MDYyN1x1MDY0NFx1MDYzM1x1MDYyOFx1MDYyYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA2MjNcdTA2MmRcdTA2'@; put 'MmZfXHUwNjI1XHUwNjJiXHUwNjQ2XHUwNjRhXHUwNjQ2X1x1MDYyYlx1MDY0NFx1MDYyN1x1MDYyYlx1MDYyN1x1MDYyMV9cdTA2MjNcdTA2MzFcdTA2MjhcdTA2MzlcdTA2MjdcdTA2MjFfXHUwNjJlXHUwNjQ1XHUwNjRhXHUwNjMzX1x1MDYyY1x1MDY0NVx1MDYzOVx1MDYyOV9cdTA2MzNc'@; put 'dTA2MjhcdTA2MmEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDYyZF9cdTA2NDZfXHUwNjJiX1x1MDYzMV9cdTA2MmVfXHUwNjJjX1x1MDYzMyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoi'@; put 'REQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sbWVyaWRpZW1QYXJzZTovXHUwNjM1fFx1MDY0NS8saXNQTTpmdW5jdGlvbih3KXtyZXR1cm4iXHUwNjQ1Ij09PXd9LG1lcmlkaWVtOmZ1bmN0'@; put 'aW9uKHcsRixIKXtyZXR1cm4gdzwxMj8iXHUwNjM1IjoiXHUwNjQ1In0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA2MjdcdTA2NDRcdTA2NGFcdTA2NDhcdTA2NDUgXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLG5leHREYXk6Iltc'@; put 'dTA2M2FcdTA2MmZcdTA2MjcgXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLG5leHRXZWVrOiJkZGRkIFtcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbGFzdERheToi'@; put 'W1x1MDYyM1x1MDY0NVx1MDYzMyBcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbGFzdFdlZWs6ImRkZGQgW1x1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixzYW1lRWxz'@; put 'ZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTA2NDFcdTA2NGEgJXMiLHBhc3Q6Ilx1MDY0NVx1MDY0Nlx1MDYzMCAlcyIsczoiXHUwNjJiXHUwNjQ4XHUwNjI3XHUwNjQ2IixzczoiJWQgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IixtOiJcdTA2MmZcdTA2NDJcdTA2NGFc'@; put 'dTA2NDJcdTA2MjkiLG1tOiIlZCBcdTA2MmZcdTA2NDJcdTA2MjdcdTA2MjZcdTA2NDIiLGg6Ilx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOSIsaGg6IiVkIFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyN1x1MDYyYSIsZDoiXHUwNjRhXHUwNjQ4XHUwNjQ1IixkZDoiJWQgXHUwNjIzXHUwNjRhXHUw'@; put 'NjI3XHUwNjQ1IixNOiJcdTA2MzRcdTA2NDdcdTA2MzEiLE1NOiIlZCBcdTA2MjNcdTA2MzRcdTA2NDdcdTA2MzEiLHk6Ilx1MDYzM1x1MDY0Nlx1MDYyOSIseXk6IiVkIFx1MDYzM1x1MDY0Nlx1MDY0OFx1MDYyN1x1MDYyYSJ9LHByZXBhcnNlOmZ1bmN0aW9uKHcpe3JldHVybiB3LnJlcGxh'@; put 'Y2UoL1tcdTA2NjFcdTA2NjJcdTA2NjNcdTA2NjRcdTA2NjVcdTA2NjZcdTA2NjdcdTA2NjhcdTA2NjlcdTA2NjBdL2csZnVuY3Rpb24oRil7cmV0dXJuIHBbRl19KS5yZXBsYWNlKC9cdTA2MGMvZywiLCIpfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKHcpe3JldHVybiB3LnJlcGxhY2UoL1xkL2cs'@; put 'ZnVuY3Rpb24oRil7cmV0dXJuIF9bRl19KS5yZXBsYWNlKC8sL2csIlx1MDYwYyIpfSx3ZWVrOntkb3c6MCxkb3k6Nn19KX0oYig5NzU4NikpfSw1NjcwMzpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7RC5kZWZpbmVMb2NhbGUoImFyLXRuIix7bW9udGhzOiJc'@; put 'dTA2MmNcdTA2MjdcdTA2NDZcdTA2NDFcdTA2NGFfXHUwNjQxXHUwNjRhXHUwNjQxXHUwNjMxXHUwNjRhX1x1MDY0NVx1MDYyN1x1MDYzMVx1MDYzM19cdTA2MjNcdTA2NDFcdTA2MzFcdTA2NGFcdTA2NDRfXHUwNjQ1XHUwNjI3XHUwNjRhX1x1MDYyY1x1MDY0OFx1MDYyN1x1MDY0Nl9cdTA2'@; put 'MmNcdTA2NDhcdTA2NGFcdTA2NDRcdTA2NGFcdTA2MjlfXHUwNjIzXHUwNjQ4XHUwNjJhX1x1MDYzM1x1MDYyOFx1MDYyYVx1MDY0NVx1MDYyOFx1MDYzMV9cdTA2MjNcdTA2NDNcdTA2MmFcdTA2NDhcdTA2MjhcdTA2MzFfXHUwNjQ2XHUwNjQ4XHUwNjQxXHUwNjQ1XHUwNjI4XHUwNjMxX1x1'@; put 'MDYyZlx1MDY0YVx1MDYzM1x1MDY0NVx1MDYyOFx1MDYzMSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwNjJjXHUwNjI3XHUwNjQ2XHUwNjQxXHUwNjRhX1x1MDY0MVx1MDY0YVx1MDY0MVx1MDYzMVx1MDY0YV9cdTA2NDVcdTA2MjdcdTA2MzFcdTA2MzNfXHUwNjIzXHUwNjQxXHUwNjMx'@; put 'XHUwNjRhXHUwNjQ0X1x1MDY0NVx1MDYyN1x1MDY0YV9cdTA2MmNcdTA2NDhcdTA2MjdcdTA2NDZfXHUwNjJjXHUwNjQ4XHUwNjRhXHUwNjQ0XHUwNjRhXHUwNjI5X1x1MDYyM1x1MDY0OFx1MDYyYV9cdTA2MzNcdTA2MjhcdTA2MmFcdTA2NDVcdTA2MjhcdTA2MzFfXHUwNjIzXHUwNjQzXHUw'@; put 'NjJhXHUwNjQ4XHUwNjI4XHUwNjMxX1x1MDY0Nlx1MDY0OFx1MDY0MVx1MDY0NVx1MDYyOFx1MDYzMV9cdTA2MmZcdTA2NGFcdTA2MzNcdTA2NDVcdTA2MjhcdTA2MzEiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDYyN1x1MDY0NFx1MDYyM1x1MDYyZFx1MDYyZl9cdTA2MjdcdTA2NDRcdTA2'@; put 'MjVcdTA2MmJcdTA2NDZcdTA2NGFcdTA2NDZfXHUwNjI3XHUwNjQ0XHUwNjJiXHUwNjQ0XHUwNjI3XHUwNjJiXHUwNjI3XHUwNjIxX1x1MDYyN1x1MDY0NFx1MDYyM1x1MDYzMVx1MDYyOFx1MDYzOVx1MDYyN1x1MDYyMV9cdTA2MjdcdTA2NDRcdTA2MmVcdTA2NDVcdTA2NGFcdTA2MzNfXHUw'@; put 'NjI3XHUwNjQ0XHUwNjJjXHUwNjQ1XHUwNjM5XHUwNjI5X1x1MDYyN1x1MDY0NFx1MDYzM1x1MDYyOFx1MDYyYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA2MjNcdTA2MmRcdTA2MmZfXHUwNjI1XHUwNjJiXHUwNjQ2XHUwNjRhXHUwNjQ2X1x1MDYyYlx1MDY0NFx1MDYyN1x1MDYy'@; put 'Ylx1MDYyN1x1MDYyMV9cdTA2MjNcdTA2MzFcdTA2MjhcdTA2MzlcdTA2MjdcdTA2MjFfXHUwNjJlXHUwNjQ1XHUwNjRhXHUwNjMzX1x1MDYyY1x1MDY0NVx1MDYzOVx1MDYyOV9cdTA2MzNcdTA2MjhcdTA2MmEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDYyZF9cdTA2NDZfXHUwNjJi'@; put 'X1x1MDYzMV9cdTA2MmVfXHUwNjJjX1x1MDYzMyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExM'@; put 'OiJkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA2MjdcdTA2NDRcdTA2NGFcdTA2NDhcdTA2NDUgXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLG5leHREYXk6IltcdTA2M2FcdTA2MmZcdTA2'@; put 'MjcgXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLG5leHRXZWVrOiJkZGRkIFtcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbGFzdERheToiW1x1MDYyM1x1MDY0NVx1'@; put 'MDYzMyBcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbGFzdFdlZWs6ImRkZGQgW1x1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZl'@; put 'VGltZTp7ZnV0dXJlOiJcdTA2NDFcdTA2NGEgJXMiLHBhc3Q6Ilx1MDY0NVx1MDY0Nlx1MDYzMCAlcyIsczoiXHUwNjJiXHUwNjQ4XHUwNjI3XHUwNjQ2IixzczoiJWQgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IixtOiJcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MjkiLG1t'@; put 'OiIlZCBcdTA2MmZcdTA2NDJcdTA2MjdcdTA2MjZcdTA2NDIiLGg6Ilx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOSIsaGg6IiVkIFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyN1x1MDYyYSIsZDoiXHUwNjRhXHUwNjQ4XHUwNjQ1IixkZDoiJWQgXHUwNjIzXHUwNjRhXHUwNjI3XHUwNjQ1IixNOiJc'@; put 'dTA2MzRcdTA2NDdcdTA2MzEiLE1NOiIlZCBcdTA2MjNcdTA2MzRcdTA2NDdcdTA2MzEiLHk6Ilx1MDYzM1x1MDY0Nlx1MDYyOSIseXk6IiVkIFx1MDYzM1x1MDY0Nlx1MDY0OFx1MDYyN1x1MDYyYSJ9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShiKDk3NTg2KSl9LDMzMTA4OmZ1bmN0aW9uKGNl'@; put 'LEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0Ijt2YXIgXz17MToiXHUwNjYxIiwyOiJcdTA2NjIiLDM6Ilx1MDY2MyIsNDoiXHUwNjY0Iiw1OiJcdTA2NjUiLDY6Ilx1MDY2NiIsNzoiXHUwNjY3Iiw4OiJcdTA2NjgiLDk6Ilx1MDY2OSIsMDoiXHUwNjYwIn0scD17Ilx1MDY2MSI6IjEi'@; put 'LCJcdTA2NjIiOiIyIiwiXHUwNjYzIjoiMyIsIlx1MDY2NCI6IjQiLCJcdTA2NjUiOiI1IiwiXHUwNjY2IjoiNiIsIlx1MDY2NyI6IjciLCJcdTA2NjgiOiI4IiwiXHUwNjY5IjoiOSIsIlx1MDY2MCI6IjAifSxOPWZ1bmN0aW9uKGope3JldHVybiAwPT09aj8wOjE9PT1qPzE6Mj09PWo/Mjpq'@; put 'JTEwMD49MyYmaiUxMDA8PTEwPzM6aiUxMDA+PTExPzQ6NX0sdz17czpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IiwiXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZlx1'@; put 'MDYyOSIsWyJcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MmFcdTA2MjdcdTA2NDYiLCJcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MmFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjJiXHUwNjQ4XHUwNjI3XHUwNjQ2IiwiJWQgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5Iiwi'@; put 'JWQgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5Il0sbTpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5IiwiXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZlx1MDYy'@; put 'OSIsWyJcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MmFcdTA2MjdcdTA2NDYiLCJcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MmFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjJmXHUwNjQyXHUwNjI3XHUwNjI2XHUwNjQyIiwiJWQgXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5'@; put 'IiwiJWQgXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5Il0saDpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IiwiXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZlx1MDYyOSIsWyJcdTA2'@; put 'MzNcdTA2MjdcdTA2MzlcdTA2MmFcdTA2MjdcdTA2NDYiLCJcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MmFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI3XHUwNjJhIiwiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IiwiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUw'@; put 'NjI5Il0sZDpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjRhXHUwNjQ4XHUwNjQ1IiwiXHUwNjRhXHUwNjQ4XHUwNjQ1IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZiIsWyJcdTA2NGFcdTA2NDhcdTA2NDVcdTA2MjdcdTA2NDYiLCJcdTA2NGFcdTA2NDhcdTA2NDVcdTA2'@; put 'NGFcdTA2NDYiXSwiJWQgXHUwNjIzXHUwNjRhXHUwNjI3XHUwNjQ1IiwiJWQgXHUwNjRhXHUwNjQ4XHUwNjQ1XHUwNjRiXHUwNjI3IiwiJWQgXHUwNjRhXHUwNjQ4XHUwNjQ1Il0sTTpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjM0XHUwNjQ3XHUwNjMxIiwiXHUwNjM0'@; put 'XHUwNjQ3XHUwNjMxIFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZiIsWyJcdTA2MzRcdTA2NDdcdTA2MzFcdTA2MjdcdTA2NDYiLCJcdTA2MzRcdTA2NDdcdTA2MzFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjIzXHUwNjM0XHUwNjQ3XHUwNjMxIiwiJWQgXHUwNjM0XHUwNjQ3XHUwNjMxXHUwNjI3'@; put 'IiwiJWQgXHUwNjM0XHUwNjQ3XHUwNjMxIl0seTpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjM5XHUwNjI3XHUwNjQ1IiwiXHUwNjM5XHUwNjI3XHUwNjQ1IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZiIsWyJcdTA2MzlcdTA2MjdcdTA2NDVcdTA2MjdcdTA2NDYiLCJc'@; put 'dTA2MzlcdTA2MjdcdTA2NDVcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjIzXHUwNjM5XHUwNjQ4XHUwNjI3XHUwNjQ1IiwiJWQgXHUwNjM5XHUwNjI3XHUwNjQ1XHUwNjRiXHUwNjI3IiwiJWQgXHUwNjM5XHUwNjI3XHUwNjQ1Il19LEY9ZnVuY3Rpb24oail7cmV0dXJuIGZ1bmN0aW9uKFAsTCxZ'@; put 'LEIpe3ZhciBXPU4oUCksWj13W2pdW04oUCldO3JldHVybiAyPT09VyYmKFo9WltMPzA6MV0pLFoucmVwbGFjZSgvJWQvaSxQKX19LEg9WyJcdTA2NGFcdTA2NDZcdTA2MjdcdTA2NGFcdTA2MzEiLCJcdTA2NDFcdTA2MjhcdTA2MzFcdTA2MjdcdTA2NGFcdTA2MzEiLCJcdTA2NDVcdTA2Mjdc'@; put 'dTA2MzFcdTA2MzMiLCJcdTA2MjNcdTA2MjhcdTA2MzFcdTA2NGFcdTA2NDQiLCJcdTA2NDVcdTA2MjdcdTA2NGFcdTA2NDgiLCJcdTA2NGFcdTA2NDhcdTA2NDZcdTA2NGFcdTA2NDgiLCJcdTA2NGFcdTA2NDhcdTA2NDRcdTA2NGFcdTA2NDgiLCJcdTA2MjNcdTA2M2FcdTA2MzNcdTA2Mzdc'@; put 'dTA2MzMiLCJcdTA2MzNcdTA2MjhcdTA2MmFcdTA2NDVcdTA2MjhcdTA2MzEiLCJcdTA2MjNcdTA2NDNcdTA2MmFcdTA2NDhcdTA2MjhcdTA2MzEiLCJcdTA2NDZcdTA2NDhcdTA2NDFcdTA2NDVcdTA2MjhcdTA2MzEiLCJcdTA2MmZcdTA2NGFcdTA2MzNcdTA2NDVcdTA2MjhcdTA2MzEiXTtE'@; put 'LmRlZmluZUxvY2FsZSgiYXIiLHttb250aHM6SCxtb250aHNTaG9ydDpILHdlZWtkYXlzOiJcdTA2MjdcdTA2NDRcdTA2MjNcdTA2MmRcdTA2MmZfXHUwNjI3XHUwNjQ0XHUwNjI1XHUwNjJiXHUwNjQ2XHUwNjRhXHUwNjQ2X1x1MDYyN1x1MDY0NFx1MDYyYlx1MDY0NFx1MDYyN1x1MDYyYlx1'@; put 'MDYyN1x1MDYyMV9cdTA2MjdcdTA2NDRcdTA2MjNcdTA2MzFcdTA2MjhcdTA2MzlcdTA2MjdcdTA2MjFfXHUwNjI3XHUwNjQ0XHUwNjJlXHUwNjQ1XHUwNjRhXHUwNjMzX1x1MDYyN1x1MDY0NFx1MDYyY1x1MDY0NVx1MDYzOVx1MDYyOV9cdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjhcdTA2MmEi'@; put 'LnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNjIzXHUwNjJkXHUwNjJmX1x1MDYyNVx1MDYyYlx1MDY0Nlx1MDY0YVx1MDY0Nl9cdTA2MmJcdTA2NDRcdTA2MjdcdTA2MmJcdTA2MjdcdTA2MjFfXHUwNjIzXHUwNjMxXHUwNjI4XHUwNjM5XHUwNjI3XHUwNjIxX1x1MDYyZVx1MDY0NVx1'@; put 'MDY0YVx1MDYzM19cdTA2MmNcdTA2NDVcdTA2MzlcdTA2MjlfXHUwNjMzXHUwNjI4XHUwNjJhIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA2MmRfXHUwNjQ2X1x1MDYyYl9cdTA2MzFfXHUwNjJlX1x1MDYyY19cdTA2MzMiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxv'@; put 'bmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkQvXHUyMDBmTS9cdTIwMGZZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTA2MzV8XHUwNjQ1'@; put 'Lyxpc1BNOmZ1bmN0aW9uKGope3JldHVybiJcdTA2NDUiPT09an0sbWVyaWRpZW06ZnVuY3Rpb24oaixQLEwpe3JldHVybiBqPDEyPyJcdTA2MzUiOiJcdTA2NDUifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDYyN1x1MDY0NFx1MDY0YVx1MDY0OFx1MDY0NSBcdTA2MzlcdTA2NDZcdTA2MmYg'@; put 'XHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dERheToiW1x1MDYzYVx1MDYyZlx1MDY0Ylx1MDYyNyBcdTA2MzlcdTA2NDZcdTA2MmYgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDYzOVx1MDY0'@; put 'Nlx1MDYyZiBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0RGF5OiJbXHUwNjIzXHUwNjQ1XHUwNjMzIFx1MDYzOVx1MDY0Nlx1MDYyZiBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0V2VlazoiZGRkZCBbXHUwNjM5XHUw'@; put 'NjQ2XHUwNjJmIFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDYyOFx1MDYzOVx1MDYyZiAlcyIscGFzdDoiXHUwNjQ1XHUwNjQ2XHUwNjMwICVzIixzOkYoInMiKSxzczpGKCJzIiksbTpGKCJt'@; put 'IiksbW06RigibSIpLGg6RigiaCIpLGhoOkYoImgiKSxkOkYoImQiKSxkZDpGKCJkIiksTTpGKCJNIiksTU06RigiTSIpLHk6RigieSIpLHl5OkYoInkiKX0scHJlcGFyc2U6ZnVuY3Rpb24oail7cmV0dXJuIGoucmVwbGFjZSgvW1x1MDY2MVx1MDY2Mlx1MDY2M1x1MDY2NFx1MDY2NVx1MDY2'@; put 'Nlx1MDY2N1x1MDY2OFx1MDY2OVx1MDY2MF0vZyxmdW5jdGlvbihQKXtyZXR1cm4gcFtQXX0pLnJlcGxhY2UoL1x1MDYwYy9nLCIsIil9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oail7cmV0dXJuIGoucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihQKXtyZXR1cm4gX1tQXX0pLnJlcGxhY2UoLywvZywi'@; put 'XHUwNjBjIil9LHdlZWs6e2Rvdzo2LGRveToxMn19KX0oYig5NzU4NikpfSw0NjUwODpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7dmFyIF89ezE6Ii1pbmNpIiw1OiItaW5jaSIsODoiLWluY2kiLDcwOiItaW5jaSIsODA6Ii1pbmNpIiwyOiItbmNpIiw3OiIt'@; put 'bmNpIiwyMDoiLW5jaSIsNTA6Ii1uY2kiLDM6Ii1ceGZjbmNceGZjIiw0OiItXHhmY25jXHhmYyIsMTAwOiItXHhmY25jXHhmYyIsNjoiLW5jXHUwMTMxIiw5OiItdW5jdSIsMTA6Ii11bmN1IiwzMDoiLXVuY3UiLDYwOiItXHUwMTMxbmNcdTAxMzEiLDkwOiItXHUwMTMxbmNcdTAxMzEifTtE'@; put 'LmRlZmluZUxvY2FsZSgiYXoiLHttb250aHM6InlhbnZhcl9mZXZyYWxfbWFydF9hcHJlbF9tYXlfaXl1bl9peXVsX2F2cXVzdF9zZW50eWFicl9va3R5YWJyX25veWFicl9kZWthYnIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Inlhbl9mZXZfbWFyX2Fwcl9tYXlfaXluX2l5bF9hdnFfc2Vu'@; put 'X29rdF9ub3lfZGVrIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJCYXphcl9CYXphciBlcnRcdTAyNTlzaV9ceGM3XHUwMjU5clx1MDE1Zlx1MDI1OW5iXHUwMjU5IGF4XHUwMTVmYW1cdTAxMzFfXHhjN1x1MDI1OXJcdTAxNWZcdTAyNTluYlx1MDI1OV9DXHhmY21cdTAyNTkgYXhcdTAxNWZhbVx1'@; put 'MDEzMV9DXHhmY21cdTAyNTlfXHUwMTVlXHUwMjU5bmJcdTAyNTkiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiQmF6X0J6RV9ceGM3QXhfXHhjN1x1MDI1OXJfQ0F4X0NceGZjbV9cdTAxNWVcdTAyNTluIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJCel9CRV9ceGM3QV9ceGM3XHUwMjU5'@; put 'X0NBX0NceGZjX1x1MDE1ZVx1MDI1OSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRk'@; put 'LCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbYnVnXHhmY24gc2FhdF0gTFQiLG5leHREYXk6IltzYWJhaCBzYWF0XSBMVCIsbmV4dFdlZWs6IltnXHUwMjU5bFx1MDI1OW4gaFx1MDI1OWZ0XHUwMjU5XSBkZGRkIFtzYWF0XSBMVCIsbGFzdERheToiW2RceGZjblx1'@; put 'MDI1OW5dIExUIixsYXN0V2VlazoiW2tlXHhlN1x1MDI1OW4gaFx1MDI1OWZ0XHUwMjU5XSBkZGRkIFtzYWF0XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgc29ucmEiLHBhc3Q6IiVzIFx1MDI1OXZ2XHUwMjU5bCIsczoiYmlyIG5lXHhlN1x1MDI1OSBzYW5p'@; put 'eVx1MDI1OSIsc3M6IiVkIHNhbml5XHUwMjU5IixtOiJiaXIgZFx1MDI1OXFpcVx1MDI1OSIsbW06IiVkIGRcdTAyNTlxaXFcdTAyNTkiLGg6ImJpciBzYWF0IixoaDoiJWQgc2FhdCIsZDoiYmlyIGdceGZjbiIsZGQ6IiVkIGdceGZjbiIsTToiYmlyIGF5IixNTToiJWQgYXkiLHk6ImJpciBp'@; put 'bCIseXk6IiVkIGlsIn0sbWVyaWRpZW1QYXJzZTovZ2VjXHUwMjU5fHNcdTAyNTloXHUwMjU5cnxnXHhmY25kXHhmY3p8YXhcdTAxNWZhbS8saXNQTTpmdW5jdGlvbihOKXtyZXR1cm4vXihnXHhmY25kXHhmY3p8YXhcdTAxNWZhbSkkLy50ZXN0KE4pfSxtZXJpZGllbTpmdW5jdGlvbihOLHcs'@; put 'Ril7cmV0dXJuIE48ND8iZ2VjXHUwMjU5IjpOPDEyPyJzXHUwMjU5aFx1MDI1OXIiOk48MTc/ImdceGZjbmRceGZjeiI6ImF4XHUwMTVmYW0ifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9LShcdTAxMzFuY1x1MDEzMXxpbmNpfG5jaXxceGZjbmNceGZjfG5jXHUwMTMxfHVuY3Up'@; put 'LyxvcmRpbmFsOmZ1bmN0aW9uKE4pe2lmKDA9PT1OKXJldHVybiBOKyItXHUwMTMxbmNcdTAxMzEiO3ZhciB3PU4lMTA7cmV0dXJuIE4rKF9bd118fF9bTiUxMDAtd118fF9bTj49MTAwPzEwMDpudWxsXSl9LHdlZWs6e2RvdzoxLGRveTo3fX0pfShiKDk3NTg2KSl9LDE2NzY2OmZ1bmN0aW9u'@; put 'KGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBwKHcsRixIKXtyZXR1cm4ibSI9PT1IP0Y/Ilx1MDQ0NVx1MDQzMlx1MDQ1Nlx1MDQzYlx1MDQ1Nlx1MDQzZFx1MDQzMCI6Ilx1MDQ0NVx1MDQzMlx1MDQ1Nlx1MDQzYlx1MDQ1Nlx1MDQzZFx1MDQ0MyI6ImgiPT09'@; put 'SD9GPyJcdTA0MzNcdTA0MzBcdTA0MzRcdTA0MzdcdTA0NTZcdTA0M2RcdTA0MzAiOiJcdTA0MzNcdTA0MzBcdTA0MzRcdTA0MzdcdTA0NTZcdTA0M2RcdTA0NDMiOncrIiAiK2Z1bmN0aW9uIF8odyxGKXt2YXIgSD13LnNwbGl0KCJfIik7cmV0dXJuIEYlMTA9PTEmJkYlMTAwIT0xMT9IWzBd'@; put 'OkYlMTA+PTImJkYlMTA8PTQmJihGJTEwMDwxMHx8RiUxMDA+PTIwKT9IWzFdOkhbMl19KHtzczpGPyJcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0MzBfXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDRiX1x1MDQ0MVx1MDQzNVx1MDQzYVx1'@; put 'MDQ0M1x1MDQzZFx1MDQzNCI6Ilx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQ0M19cdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0NGJfXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0IixtbTpGPyJcdTA0NDVcdTA0MzJcdTA0'@; put 'NTZcdTA0M2JcdTA0NTZcdTA0M2RcdTA0MzBfXHUwNDQ1XHUwNDMyXHUwNDU2XHUwNDNiXHUwNDU2XHUwNDNkXHUwNDRiX1x1MDQ0NVx1MDQzMlx1MDQ1Nlx1MDQzYlx1MDQ1Nlx1MDQzZCI6Ilx1MDQ0NVx1MDQzMlx1MDQ1Nlx1MDQzYlx1MDQ1Nlx1MDQzZFx1MDQ0M19cdTA0NDVcdTA0MzJc'@; put 'dTA0NTZcdTA0M2JcdTA0NTZcdTA0M2RcdTA0NGJfXHUwNDQ1XHUwNDMyXHUwNDU2XHUwNDNiXHUwNDU2XHUwNDNkIixoaDpGPyJcdTA0MzNcdTA0MzBcdTA0MzRcdTA0MzdcdTA0NTZcdTA0M2RcdTA0MzBfXHUwNDMzXHUwNDMwXHUwNDM0XHUwNDM3XHUwNDU2XHUwNDNkXHUwNDRiX1x1MDQz'@; put 'M1x1MDQzMFx1MDQzNFx1MDQzN1x1MDQ1Nlx1MDQzZCI6Ilx1MDQzM1x1MDQzMFx1MDQzNFx1MDQzN1x1MDQ1Nlx1MDQzZFx1MDQ0M19cdTA0MzNcdTA0MzBcdTA0MzRcdTA0MzdcdTA0NTZcdTA0M2RcdTA0NGJfXHUwNDMzXHUwNDMwXHUwNDM0XHUwNDM3XHUwNDU2XHUwNDNkIixkZDoiXHUw'@; put 'NDM0XHUwNDM3XHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQzNFx1MDQzZFx1MDQ1Nl9cdTA0MzRcdTA0MzdcdTA0NTFcdTA0M2QiLE1NOiJcdTA0M2NcdTA0MzVcdTA0NDFcdTA0NGZcdTA0NDZfXHUwNDNjXHUwNDM1XHUwNDQxXHUwNDRmXHUwNDQ2XHUwNDRiX1x1MDQzY1x1MDQzNVx1MDQ0MVx1'@; put 'MDQ0Zlx1MDQ0Nlx1MDQzMFx1MDQ1ZSIseXk6Ilx1MDQzM1x1MDQzZVx1MDQzNF9cdTA0MzNcdTA0MzBcdTA0MzRcdTA0NGJfXHUwNDMzXHUwNDMwXHUwNDM0XHUwNDNlXHUwNDVlIn1bSF0sK3cpfUQuZGVmaW5lTG9jYWxlKCJiZSIse21vbnRoczp7Zm9ybWF0OiJcdTA0NDFcdTA0NDJcdTA0'@; put 'NDNcdTA0MzRcdTA0MzdcdTA0MzVcdTA0M2RcdTA0NGZfXHUwNDNiXHUwNDRlXHUwNDQyXHUwNDMwXHUwNDMzXHUwNDMwX1x1MDQ0MVx1MDQzMFx1MDQzYVx1MDQzMFx1MDQzMlx1MDQ1Nlx1MDQzYVx1MDQzMF9cdTA0M2FcdTA0NDBcdTA0MzBcdTA0NDFcdTA0MzBcdTA0MzJcdTA0NTZcdTA0'@; put 'M2FcdTA0MzBfXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDVlXHUwNDNkXHUwNDRmX1x1MDQ0N1x1MDQ0ZFx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQzZFx1MDQ0Zl9cdTA0M2JcdTA0NTZcdTA0M2ZcdTA0MzVcdTA0M2RcdTA0NGZfXHUwNDM2XHUwNDNkXHUwNDU2XHUwNDVlXHUwNDNkXHUwNDRmX1x1'@; put 'MDQzMlx1MDQzNVx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQzZFx1MDQ0Zl9cdTA0M2FcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0NGJcdTA0NDdcdTA0M2RcdTA0NTZcdTA0M2FcdTA0MzBfXHUwNDNiXHUwNDU2XHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNmXHUwNDMwXHUwNDM0XHUwNDMwX1x1'@; put 'MDQ0MVx1MDQzZFx1MDQzNVx1MDQzNlx1MDQzZFx1MDQ0ZiIuc3BsaXQoIl8iKSxzdGFuZGFsb25lOiJcdTA0NDFcdTA0NDJcdTA0NDNcdTA0MzRcdTA0MzdcdTA0MzVcdTA0M2RcdTA0NGNfXHUwNDNiXHUwNDRlXHUwNDQyXHUwNDRiX1x1MDQ0MVx1MDQzMFx1MDQzYVx1MDQzMFx1MDQzMlx1'@; put 'MDQ1Nlx1MDQzYV9cdTA0M2FcdTA0NDBcdTA0MzBcdTA0NDFcdTA0MzBcdTA0MzJcdTA0NTZcdTA0M2FfXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQ0N1x1MDQ0ZFx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQzZFx1MDQ0Y19cdTA0M2JcdTA0NTZcdTA0M2Zc'@; put 'dTA0MzVcdTA0M2RcdTA0NGNfXHUwNDM2XHUwNDNkXHUwNDU2XHUwNDMyXHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQzZFx1MDQ0Y19cdTA0M2FcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0NGJcdTA0NDdcdTA0M2RcdTA0NTZc'@; put 'dTA0M2FfXHUwNDNiXHUwNDU2XHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNmXHUwNDMwXHUwNDM0X1x1MDQ0MVx1MDQzZFx1MDQzNVx1MDQzNlx1MDQzMFx1MDQzZFx1MDQ0YyIuc3BsaXQoIl8iKX0sbW9udGhzU2hvcnQ6Ilx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQzNF9cdTA0M2JcdTA0NGVcdTA0'@; put 'NDJfXHUwNDQxXHUwNDMwXHUwNDNhX1x1MDQzYVx1MDQ0MFx1MDQzMFx1MDQ0MV9cdTA0NDJcdTA0NDBcdTA0MzBcdTA0MzJfXHUwNDQ3XHUwNDRkXHUwNDQwXHUwNDMyX1x1MDQzYlx1MDQ1Nlx1MDQzZl9cdTA0MzZcdTA0M2RcdTA0NTZcdTA0MzJfXHUwNDMyXHUwNDM1XHUwNDQwX1x1MDQz'@; put 'YVx1MDQzMFx1MDQ0MVx1MDQ0Ml9cdTA0M2JcdTA0NTZcdTA0NDFcdTA0NDJfXHUwNDQxXHUwNDNkXHUwNDM1XHUwNDM2Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOntmb3JtYXQ6Ilx1MDQzZFx1MDQ0Zlx1MDQzNFx1MDQzN1x1MDQzNVx1MDQzYlx1MDQ0ZV9cdTA0M2ZcdTA0MzBcdTA0M2RcdTA0'@; put 'NGZcdTA0MzRcdTA0MzdcdTA0MzVcdTA0M2JcdTA0MzBcdTA0M2FfXHUwNDMwXHUwNDVlXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDMwXHUwNDNhX1x1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMFx1MDQzNFx1MDQ0M19cdTA0NDdcdTA0MzBcdTA0NDZcdTA0MzJcdTA0MzVcdTA0NDBfXHUwNDNmXHUw'@; put 'NDRmXHUwNDQyXHUwNDNkXHUwNDU2XHUwNDQ2XHUwNDQzX1x1MDQ0MVx1MDQ0M1x1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQ0MyIuc3BsaXQoIl8iKSxzdGFuZGFsb25lOiJcdTA0M2RcdTA0NGZcdTA0MzRcdTA0MzdcdTA0MzVcdTA0M2JcdTA0NGZfXHUwNDNmXHUwNDMwXHUwNDNkXHUwNDRmXHUw'@; put 'NDM0XHUwNDM3XHUwNDM1XHUwNDNiXHUwNDMwXHUwNDNhX1x1MDQzMFx1MDQ1ZVx1MDQ0Mlx1MDQzZVx1MDQ0MFx1MDQzMFx1MDQzYV9cdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzBcdTA0MzRcdTA0MzBfXHUwNDQ3XHUwNDMwXHUwNDQ2XHUwNDMyXHUwNDM1XHUwNDQwX1x1MDQzZlx1MDQ0Zlx1'@; put 'MDQ0Mlx1MDQzZFx1MDQ1Nlx1MDQ0Nlx1MDQzMF9cdTA0NDFcdTA0NDNcdTA0MzFcdTA0M2VcdTA0NDJcdTA0MzAiLnNwbGl0KCJfIiksaXNGb3JtYXQ6L1xbID9bXHUwNDIzXHUwNDQzXHUwNDVlXSA/KD86XHUwNDNjXHUwNDU2XHUwNDNkXHUwNDQzXHUwNDNiXHUwNDQzXHUwNDRlfFx1MDQz'@; put 'ZFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQzZlx1MDQzZFx1MDQ0M1x1MDQ0ZSk/ID9cXSA/ZGRkZC99LHdlZWtkYXlzU2hvcnQ6Ilx1MDQzZFx1MDQzNF9cdTA0M2ZcdTA0M2RfXHUwNDMwXHUwNDQyX1x1MDQ0MVx1MDQ0MF9cdTA0NDdcdTA0NDZfXHUwNDNmXHUwNDQyX1x1MDQ0MVx1'@; put 'MDQzMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwNDNkXHUwNDM0X1x1MDQzZlx1MDQzZF9cdTA0MzBcdTA0NDJfXHUwNDQxXHUwNDQwX1x1MDQ0N1x1MDQ0Nl9cdTA0M2ZcdTA0NDJfXHUwNDQxXHUwNDMxIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoi'@; put 'SEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJEIE1NTU0gWVlZWSBcdTA0MzMuIixMTEw6IkQgTU1NTSBZWVlZIFx1MDQzMy4sIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBcdTA0MzMuLCBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNDIxXHUwNDUxXHUwNDNkXHUw'@; put 'NDNkXHUwNDRmIFx1MDQ1ZV0gTFQiLG5leHREYXk6IltcdTA0MTdcdTA0MzBcdTA0NWVcdTA0NDJcdTA0NDBcdTA0MzAgXHUwNDVlXSBMVCIsbGFzdERheToiW1x1MDQyM1x1MDQ0N1x1MDQzZVx1MDQ0MFx1MDQzMCBcdTA0NWVdIExUIixuZXh0V2VlazpmdW5jdGlvbigpe3JldHVybiJbXHUw'@; put 'NDIzXSBkZGRkIFtcdTA0NWVdIExUIn0sbGFzdFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOmNhc2UgMzpjYXNlIDU6Y2FzZSA2OnJldHVybiJbXHUwNDIzIFx1MDQzY1x1MDQ1Nlx1MDQzZFx1MDQ0M1x1MDQzYlx1MDQ0M1x1MDQ0ZV0gZGRkZCBbXHUwNDVlXSBM'@; put 'VCI7Y2FzZSAxOmNhc2UgMjpjYXNlIDQ6cmV0dXJuIltcdTA0MjMgXHUwNDNjXHUwNDU2XHUwNDNkXHUwNDQzXHUwNDNiXHUwNDRiXSBkZGRkIFtcdTA0NWVdIExUIn19LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzNyAlcyIscGFz'@; put 'dDoiJXMgXHUwNDQyXHUwNDMwXHUwNDNjXHUwNDQzIixzOiJcdTA0M2RcdTA0MzVcdTA0M2FcdTA0MzBcdTA0M2JcdTA0NGNcdTA0M2FcdTA0NTYgXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0IixtOnAsbW06cCxoOnAsaGg6cCxkOiJcdTA0MzRcdTA0MzdcdTA0MzVcdTA0'@; put 'M2RcdTA0NGMiLGRkOnAsTToiXHUwNDNjXHUwNDM1XHUwNDQxXHUwNDRmXHUwNDQ2IixNTTpwLHk6Ilx1MDQzM1x1MDQzZVx1MDQzNCIseXk6cH0sbWVyaWRpZW1QYXJzZTovXHUwNDNkXHUwNDNlXHUwNDQ3XHUwNDRifFx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQ1Nlx1MDQ0Nlx1MDQ0YnxcdTA0'@; put 'MzRcdTA0M2RcdTA0NGZ8XHUwNDMyXHUwNDM1XHUwNDQ3XHUwNDMwXHUwNDQwXHUwNDMwLyxpc1BNOmZ1bmN0aW9uKHcpe3JldHVybi9eKFx1MDQzNFx1MDQzZFx1MDQ0ZnxcdTA0MzJcdTA0MzVcdTA0NDdcdTA0MzBcdTA0NDBcdTA0MzApJC8udGVzdCh3KX0sbWVyaWRpZW06ZnVuY3Rpb24o'@; put 'dyxGLEgpe3JldHVybiB3PDQ/Ilx1MDQzZFx1MDQzZVx1MDQ0N1x1MDQ0YiI6dzwxMj8iXHUwNDQwXHUwNDMwXHUwNDNkXHUwNDU2XHUwNDQ2XHUwNDRiIjp3PDE3PyJcdTA0MzRcdTA0M2RcdTA0NGYiOiJcdTA0MzJcdTA0MzVcdTA0NDdcdTA0MzBcdTA0NDBcdTA0MzAifSxkYXlPZk1vbnRo'@; put 'T3JkaW5hbFBhcnNlOi9cZHsxLDJ9LShcdTA0NTZ8XHUwNDRifFx1MDQzM1x1MDQzMCkvLG9yZGluYWw6ZnVuY3Rpb24odyxGKXtzd2l0Y2goRil7Y2FzZSJNIjpjYXNlImQiOmNhc2UiREREIjpjYXNlInciOmNhc2UiVyI6cmV0dXJuIHclMTAhPTImJnclMTAhPTN8fHclMTAwPT0xMnx8dyUx'@; put 'MDA9PTEzP3crIi1cdTA0NGIiOncrIi1cdTA0NTYiO2Nhc2UiRCI6cmV0dXJuIHcrIi1cdTA0MzNcdTA0MzAiO2RlZmF1bHQ6cmV0dXJuIHd9fSx3ZWVrOntkb3c6MSxkb3k6N319KX0oYig5NzU4NikpfSwyODU2NDpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7'@; put 'RC5kZWZpbmVMb2NhbGUoImJnIix7bW9udGhzOiJcdTA0NGZcdTA0M2RcdTA0NDNcdTA0MzBcdTA0NDBcdTA0MzhfXHUwNDQ0XHUwNDM1XHUwNDMyXHUwNDQwXHUwNDQzXHUwNDMwXHUwNDQwXHUwNDM4X1x1MDQzY1x1MDQzMFx1MDQ0MFx1MDQ0Ml9cdTA0MzBcdTA0M2ZcdTA0NDBcdTA0Mzhc'@; put 'dTA0M2JfXHUwNDNjXHUwNDMwXHUwNDM5X1x1MDQ0ZVx1MDQzZFx1MDQzOF9cdTA0NGVcdTA0M2JcdTA0MzhfXHUwNDMwXHUwNDMyXHUwNDMzXHUwNDQzXHUwNDQxXHUwNDQyX1x1MDQ0MVx1MDQzNVx1MDQzZlx1MDQ0Mlx1MDQzNVx1MDQzY1x1MDQzMlx1MDQ0MFx1MDQzOF9cdTA0M2VcdTA0'@; put 'M2FcdTA0NDJcdTA0M2VcdTA0M2NcdTA0MzJcdTA0NDBcdTA0MzhfXHUwNDNkXHUwNDNlXHUwNDM1XHUwNDNjXHUwNDMyXHUwNDQwXHUwNDM4X1x1MDQzNFx1MDQzNVx1MDQzYVx1MDQzNVx1MDQzY1x1MDQzMlx1MDQ0MFx1MDQzOCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwNDRmXHUw'@; put 'NDNkXHUwNDQzX1x1MDQ0NFx1MDQzNVx1MDQzMl9cdTA0M2NcdTA0MzBcdTA0NDBfXHUwNDMwXHUwNDNmXHUwNDQwX1x1MDQzY1x1MDQzMFx1MDQzOV9cdTA0NGVcdTA0M2RcdTA0MzhfXHUwNDRlXHUwNDNiXHUwNDM4X1x1MDQzMFx1MDQzMlx1MDQzM19cdTA0NDFcdTA0MzVcdTA0M2ZfXHUw'@; put 'NDNlXHUwNDNhXHUwNDQyX1x1MDQzZFx1MDQzZVx1MDQzNV9cdTA0MzRcdTA0MzVcdTA0M2EiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDQzZFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzYlx1MDQ0Zl9cdTA0M2ZcdTA0M2VcdTA0M2RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M2JcdTA0M2RcdTA0'@; put 'MzhcdTA0M2FfXHUwNDMyXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDNkXHUwNDM4XHUwNDNhX1x1MDQ0MVx1MDQ0MFx1MDQ0Zlx1MDQzNFx1MDQzMF9cdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzJcdTA0NGFcdTA0NDBcdTA0NDJcdTA0NGFcdTA0M2FfXHUwNDNmXHUwNDM1XHUwNDQyXHUwNDRhXHUw'@; put 'NDNhX1x1MDQ0MVx1MDQ0YVx1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQzMCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA0M2RcdTA0MzVcdTA0MzRfXHUwNDNmXHUwNDNlXHUwNDNkX1x1MDQzMlx1MDQ0Mlx1MDQzZV9cdTA0NDFcdTA0NDBcdTA0NGZfXHUwNDQ3XHUwNDM1XHUwNDQyX1x1'@; put 'MDQzZlx1MDQzNVx1MDQ0Ml9cdTA0NDFcdTA0NGFcdTA0MzEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDQzZFx1MDQzNF9cdTA0M2ZcdTA0M2RfXHUwNDMyXHUwNDQyX1x1MDQ0MVx1MDQ0MF9cdTA0NDdcdTA0NDJfXHUwNDNmXHUwNDQyX1x1MDQ0MVx1MDQzMSIuc3BsaXQoIl8iKSxs'@; put 'b25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiRC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNDE0XHUwNDNkXHUwNDM1XHUw'@; put 'NDQxIFx1MDQzMl0gTFQiLG5leHREYXk6IltcdTA0MjNcdTA0NDJcdTA0NDBcdTA0MzUgXHUwNDMyXSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDQzMl0gTFQiLGxhc3REYXk6IltcdTA0MTJcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzAgXHUwNDMyXSBMVCIsbGFzdFdlZWs6ZnVuY3Rpb24oKXtz'@; put 'd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOmNhc2UgMzpjYXNlIDY6cmV0dXJuIltcdTA0MWNcdTA0MzhcdTA0M2RcdTA0MzBcdTA0M2JcdTA0MzBcdTA0NDJcdTA0MzBdIGRkZGQgW1x1MDQzMl0gTFQiO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OmNhc2UgNTpyZXR1cm4iW1x1MDQxY1x1MDQzOFx1'@; put 'MDQzZFx1MDQzMFx1MDQzYlx1MDQzOFx1MDQ0Zl0gZGRkZCBbXHUwNDMyXSBMVCJ9fSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTA0NDFcdTA0M2JcdTA0MzVcdTA0MzQgJXMiLHBhc3Q6Ilx1MDQzZlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzOCAlcyIsczoiXHUwNDNk'@; put 'XHUwNDRmXHUwNDNhXHUwNDNlXHUwNDNiXHUwNDNhXHUwNDNlIFx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQzOCIsc3M6IiVkIFx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQzOCIsbToiXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDQy'@; put 'XHUwNDMwIixtbToiJWQgXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDQyXHUwNDM4IixoOiJcdTA0NDdcdTA0MzBcdTA0NDEiLGhoOiIlZCBcdTA0NDdcdTA0MzBcdTA0NDFcdTA0MzAiLGQ6Ilx1MDQzNFx1MDQzNVx1MDQzZCIsZGQ6IiVkIFx1MDQzNFx1MDQzNVx1MDQzZFx1MDQzMCIs'@; put 'dzoiXHUwNDQxXHUwNDM1XHUwNDM0XHUwNDNjXHUwNDM4XHUwNDQ2XHUwNDMwIix3dzoiJWQgXHUwNDQxXHUwNDM1XHUwNDM0XHUwNDNjXHUwNDM4XHUwNDQ2XHUwNDM4IixNOiJcdTA0M2NcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDYiLE1NOiIlZCBcdTA0M2NcdTA0MzVcdTA0NDFcdTA0MzVc'@; put 'dTA0NDZcdTA0MzAiLHk6Ilx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQzMCIseXk6IiVkIFx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQzOCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0tKFx1MDQzNVx1MDQzMnxcdTA0MzVcdTA0M2R8XHUwNDQy'@; put 'XHUwNDM4fFx1MDQzMlx1MDQzOHxcdTA0NDBcdTA0Mzh8XHUwNDNjXHUwNDM4KS8sb3JkaW5hbDpmdW5jdGlvbihwKXt2YXIgTj1wJTEwLHc9cCUxMDA7cmV0dXJuIDA9PT1wP3ArIi1cdTA0MzVcdTA0MzIiOjA9PT13P3ArIi1cdTA0MzVcdTA0M2QiOnc+MTAmJnc8MjA/cCsiLVx1MDQ0Mlx1'@; put 'MDQzOCI6MT09PU4/cCsiLVx1MDQzMlx1MDQzOCI6Mj09PU4/cCsiLVx1MDQ0MFx1MDQzOCI6Nz09PU58fDg9PT1OP3ArIi1cdTA0M2NcdTA0MzgiOnArIi1cdTA0NDJcdTA0MzgifSx3ZWVrOntkb3c6MSxkb3k6N319KX0oYig5NzU4NikpfSw5NzQ2MjpmdW5jdGlvbihjZSxKLGIpeyFmdW5j'@; put 'dGlvbihEKXsidXNlIHN0cmljdCI7RC5kZWZpbmVMb2NhbGUoImJtIix7bW9udGhzOiJaYW53dXlla2Fsb19GZXd1cnV5ZWthbG9fTWFyaXNpa2Fsb19Bd2lyaWxpa2Fsb19NXHUwMjVia2Fsb19adXdcdTAyNWJua2Fsb19adWx1eWVrYWxvX1V0aWthbG9fU1x1MDI1YnRhbmJ1cnVrYWxvX1x1'@; put 'MDI1NGt1dFx1MDI1NGJ1cnVrYWxvX05vd2FuYnVydWthbG9fRGVzYW5idXJ1a2FsbyIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiWmFuX0Zld19NYXJfQXdpX01cdTAyNWJfWnV3X1p1bF9VdGlfU1x1MDI1YnRfXHUwMjU0a3VfTm93X0RlcyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiS2FyaV9O'@; put 'dFx1MDI1Ym5cdTAyNWJuX1RhcmF0YV9BcmFiYV9BbGFtaXNhX0p1bWFfU2liaXJpIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ikthcl9OdFx1MDI1Yl9UYXJfQXJhX0FsYV9KdW1fU2liIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJLYV9OdF9UYV9Bcl9BbF9KdV9TaSIuc3BsaXQoIl8i'@; put 'KSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiTU1NTSBbdGlsZV0gRCBbc2FuXSBZWVlZIixMTEw6Ik1NTU0gW3RpbGVdIEQgW3Nhbl0gWVlZWSBbbFx1MDI1YnJcdTAyNWJdIEhIOm1tIixMTExMOiJkZGRkIE1NTU0gW3RpbGVd'@; put 'IEQgW3Nhbl0gWVlZWSBbbFx1MDI1YnJcdTAyNWJdIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltCaSBsXHUwMjViclx1MDI1Yl0gTFQiLG5leHREYXk6IltTaW5pIGxcdTAyNWJyXHUwMjViXSBMVCIsbmV4dFdlZWs6ImRkZGQgW2RvbiBsXHUwMjViclx1MDI1Yl0gTFQiLGxhc3REYXk6'@; put 'IltLdW51IGxcdTAyNWJyXHUwMjViXSBMVCIsbGFzdFdlZWs6ImRkZGQgW3RcdTAyNWJtXHUwMjVibmVuIGxcdTAyNWJyXHUwMjViXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMga1x1MDI1NG5cdTAyNTQiLHBhc3Q6ImEgYlx1MDI1YiAlcyBiXHUwMjU0Iixz'@; put 'OiJzYW5nYSBkYW1hIGRhbWEiLHNzOiJzZWtvbmRpICVkIixtOiJtaW5pdGkga2VsZW4iLG1tOiJtaW5pdGkgJWQiLGg6ImxcdTAyNWJyXHUwMjViIGtlbGVuIixoaDoibFx1MDI1YnJcdTAyNWIgJWQiLGQ6InRpbGUga2VsZW4iLGRkOiJ0aWxlICVkIixNOiJrYWxvIGtlbGVuIixNTToia2Fs'@; put 'byAlZCIseToic2FuIGtlbGVuIix5eToic2FuICVkIn0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KGIoOTc1ODYpKX0sNDM0Mzg6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO3ZhciBfPXsxOiJcdTA5ZTciLDI6Ilx1MDllOCIsMzoiXHUwOWU5Iiw0OiJcdTA5ZWEi'@; put 'LDU6Ilx1MDllYiIsNjoiXHUwOWVjIiw3OiJcdTA5ZWQiLDg6Ilx1MDllZSIsOToiXHUwOWVmIiwwOiJcdTA5ZTYifSxwPXsiXHUwOWU3IjoiMSIsIlx1MDllOCI6IjIiLCJcdTA5ZTkiOiIzIiwiXHUwOWVhIjoiNCIsIlx1MDllYiI6IjUiLCJcdTA5ZWMiOiI2IiwiXHUwOWVkIjoiNyIsIlx1'@; put 'MDllZSI6IjgiLCJcdTA5ZWYiOiI5IiwiXHUwOWU2IjoiMCJ9O0QuZGVmaW5lTG9jYWxlKCJibi1iZCIse21vbnRoczoiXHUwOTljXHUwOWJlXHUwOWE4XHUwOWMxXHUwOWRmXHUwOWJlXHUwOWIwXHUwOWJmX1x1MDlhYlx1MDljN1x1MDlhY1x1MDljZFx1MDliMFx1MDljMVx1MDlkZlx1MDli'@; put 'ZVx1MDliMFx1MDliZl9cdTA5YWVcdTA5YmVcdTA5YjBcdTA5Y2RcdTA5OWFfXHUwOThmXHUwOWFhXHUwOWNkXHUwOWIwXHUwOWJmXHUwOWIyX1x1MDlhZVx1MDljN19cdTA5OWNcdTA5YzFcdTA5YThfXHUwOTljXHUwOWMxXHUwOWIyXHUwOWJlXHUwOTg3X1x1MDk4Nlx1MDk5N1x1MDliOFx1'@; put 'MDljZFx1MDk5Zl9cdTA5YjhcdTA5YzdcdTA5YWFcdTA5Y2RcdTA5OWZcdTA5YzdcdTA5YWVcdTA5Y2RcdTA5YWNcdTA5YjBfXHUwOTg1XHUwOTk1XHUwOWNkXHUwOTlmXHUwOWNiXHUwOWFjXHUwOWIwX1x1MDlhOFx1MDlhZFx1MDljN1x1MDlhZVx1MDljZFx1MDlhY1x1MDliMF9cdTA5YTFc'@; put 'dTA5YmZcdTA5YjhcdTA5YzdcdTA5YWVcdTA5Y2RcdTA5YWNcdTA5YjAiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MDk5Y1x1MDliZVx1MDlhOFx1MDljMV9cdTA5YWJcdTA5YzdcdTA5YWNcdTA5Y2RcdTA5YjBcdTA5YzFfXHUwOWFlXHUwOWJlXHUwOWIwXHUwOWNkXHUwOTlhX1x1MDk4'@; put 'Zlx1MDlhYVx1MDljZFx1MDliMFx1MDliZlx1MDliMl9cdTA5YWVcdTA5YzdfXHUwOTljXHUwOWMxXHUwOWE4X1x1MDk5Y1x1MDljMVx1MDliMlx1MDliZVx1MDk4N19cdTA5ODZcdTA5OTdcdTA5YjhcdTA5Y2RcdTA5OWZfXHUwOWI4XHUwOWM3XHUwOWFhXHUwOWNkXHUwOTlmX1x1MDk4NVx1'@; put 'MDk5NVx1MDljZFx1MDk5Zlx1MDljYl9cdTA5YThcdTA5YWRcdTA5YzdfXHUwOWExXHUwOWJmXHUwOWI4XHUwOWM3Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTA5YjBcdTA5YWNcdTA5YmZcdTA5YWNcdTA5YmVcdTA5YjBfXHUwOWI4XHUwOWNiXHUwOWFlXHUwOWFjXHUwOWJlXHUwOWIwX1x1'@; put 'MDlhZVx1MDk5OVx1MDljZFx1MDk5N1x1MDliMlx1MDlhY1x1MDliZVx1MDliMF9cdTA5YWNcdTA5YzFcdTA5YTdcdTA5YWNcdTA5YmVcdTA5YjBfXHUwOWFjXHUwOWMzXHUwOWI5XHUwOWI4XHUwOWNkXHUwOWFhXHUwOWE0XHUwOWJmXHUwOWFjXHUwOWJlXHUwOWIwX1x1MDliNlx1MDljMVx1'@; put 'MDk5NVx1MDljZFx1MDliMFx1MDlhY1x1MDliZVx1MDliMF9cdTA5YjZcdTA5YThcdTA5YmZcdTA5YWNcdTA5YmVcdTA5YjAiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwOWIwXHUwOWFjXHUwOWJmX1x1MDliOFx1MDljYlx1MDlhZV9cdTA5YWVcdTA5OTlcdTA5Y2RcdTA5OTdcdTA5'@; put 'YjJfXHUwOWFjXHUwOWMxXHUwOWE3X1x1MDlhY1x1MDljM1x1MDliOVx1MDliOFx1MDljZFx1MDlhYVx1MDlhNFx1MDliZl9cdTA5YjZcdTA5YzFcdTA5OTVcdTA5Y2RcdTA5YjBfXHUwOWI2XHUwOWE4XHUwOWJmIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA5YjBcdTA5YWNcdTA5YmZf'@; put 'XHUwOWI4XHUwOWNiXHUwOWFlX1x1MDlhZVx1MDk5OVx1MDljZFx1MDk5N1x1MDliMl9cdTA5YWNcdTA5YzFcdTA5YTdfXHUwOWFjXHUwOWMzXHUwOWI5X1x1MDliNlx1MDljMVx1MDk5NVx1MDljZFx1MDliMF9cdTA5YjZcdTA5YThcdTA5YmYiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6'@; put 'e0xUOiJBIGg6bW0gXHUwOWI4XHUwOWFlXHUwOWRmIixMVFM6IkEgaDptbTpzcyBcdTA5YjhcdTA5YWVcdTA5ZGYiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSwgQSBoOm1tIFx1MDliOFx1MDlhZVx1MDlkZiIsTExMTDoiZGRkZCwgRCBNTU1NIFlZ'@; put 'WVksIEEgaDptbSBcdTA5YjhcdTA5YWVcdTA5ZGYifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDk4Nlx1MDk5Y10gTFQiLG5leHREYXk6IltcdTA5ODZcdTA5OTdcdTA5YmVcdTA5YWVcdTA5YzBcdTA5OTVcdTA5YmVcdTA5YjJdIExUIixuZXh0V2VlazoiZGRkZCwgTFQiLGxhc3REYXk6Iltc'@; put 'dTA5OTdcdTA5YTRcdTA5OTVcdTA5YmVcdTA5YjJdIExUIixsYXN0V2VlazoiW1x1MDk5N1x1MDlhNF0gZGRkZCwgTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIFx1MDlhYVx1MDliMFx1MDljNyIscGFzdDoiJXMgXHUwOTg2XHUwOTk3XHUwOWM3IixzOiJcdTA5'@; put 'OTVcdTA5ZGZcdTA5YzdcdTA5OTUgXHUwOWI4XHUwOWM3XHUwOTk1XHUwOWM3XHUwOWE4XHUwOWNkXHUwOWExIixzczoiJWQgXHUwOWI4XHUwOWM3XHUwOTk1XHUwOWM3XHUwOWE4XHUwOWNkXHUwOWExIixtOiJcdTA5OGZcdTA5OTUgXHUwOWFlXHUwOWJmXHUwOWE4XHUwOWJmXHUwOTlmIixt'@; put 'bToiJWQgXHUwOWFlXHUwOWJmXHUwOWE4XHUwOWJmXHUwOTlmIixoOiJcdTA5OGZcdTA5OTUgXHUwOTk4XHUwOWE4XHUwOWNkXHUwOTlmXHUwOWJlIixoaDoiJWQgXHUwOTk4XHUwOWE4XHUwOWNkXHUwOTlmXHUwOWJlIixkOiJcdTA5OGZcdTA5OTUgXHUwOWE2XHUwOWJmXHUwOWE4IixkZDoi'@; put 'JWQgXHUwOWE2XHUwOWJmXHUwOWE4IixNOiJcdTA5OGZcdTA5OTUgXHUwOWFlXHUwOWJlXHUwOWI4IixNTToiJWQgXHUwOWFlXHUwOWJlXHUwOWI4Iix5OiJcdTA5OGZcdTA5OTUgXHUwOWFjXHUwOTliXHUwOWIwIix5eToiJWQgXHUwOWFjXHUwOTliXHUwOWIwIn0scHJlcGFyc2U6ZnVuY3Rp'@; put 'b24odyl7cmV0dXJuIHcucmVwbGFjZSgvW1x1MDllN1x1MDllOFx1MDllOVx1MDllYVx1MDllYlx1MDllY1x1MDllZFx1MDllZVx1MDllZlx1MDllNl0vZyxmdW5jdGlvbihGKXtyZXR1cm4gcFtGXX0pfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKHcpe3JldHVybiB3LnJlcGxhY2UoL1xkL2csZnVu'@; put 'Y3Rpb24oRil7cmV0dXJuIF9bRl19KX0sbWVyaWRpZW1QYXJzZTovXHUwOWIwXHUwOWJlXHUwOWE0fFx1MDlhZFx1MDljYlx1MDliMHxcdTA5YjhcdTA5OTVcdTA5YmVcdTA5YjJ8XHUwOWE2XHUwOWMxXHUwOWFhXHUwOWMxXHUwOWIwfFx1MDlhY1x1MDliZlx1MDk5NVx1MDliZVx1MDliMnxc'@; put 'dTA5YjhcdTA5YThcdTA5Y2RcdTA5YTdcdTA5Y2RcdTA5YWZcdTA5YmV8XHUwOWIwXHUwOWJlXHUwOWE0LyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24odyxGKXtyZXR1cm4gMTI9PT13JiYodz0wKSwiXHUwOWIwXHUwOWJlXHUwOWE0Ij09PUY/dzw0P3c6dysxMjoiXHUwOWFkXHUwOWNiXHUwOWIw'@; put 'Ij09PUZ8fCJcdTA5YjhcdTA5OTVcdTA5YmVcdTA5YjIiPT09Rj93OiJcdTA5YTZcdTA5YzFcdTA5YWFcdTA5YzFcdTA5YjAiPT09Rj93Pj0zP3c6dysxMjoiXHUwOWFjXHUwOWJmXHUwOTk1XHUwOWJlXHUwOWIyIj09PUZ8fCJcdTA5YjhcdTA5YThcdTA5Y2RcdTA5YTdcdTA5Y2RcdTA5YWZc'@; put 'dTA5YmUiPT09Rj93KzEyOnZvaWQgMH0sbWVyaWRpZW06ZnVuY3Rpb24odyxGLEgpe3JldHVybiB3PDQ/Ilx1MDliMFx1MDliZVx1MDlhNCI6dzw2PyJcdTA5YWRcdTA5Y2JcdTA5YjAiOnc8MTI/Ilx1MDliOFx1MDk5NVx1MDliZVx1MDliMiI6dzwxNT8iXHUwOWE2XHUwOWMxXHUwOWFhXHUw'@; put 'OWMxXHUwOWIwIjp3PDE4PyJcdTA5YWNcdTA5YmZcdTA5OTVcdTA5YmVcdTA5YjIiOnc8MjA/Ilx1MDliOFx1MDlhOFx1MDljZFx1MDlhN1x1MDljZFx1MDlhZlx1MDliZSI6Ilx1MDliMFx1MDliZVx1MDlhNCJ9LHdlZWs6e2RvdzowLGRveTo2fX0pfShiKDk3NTg2KSl9LDE3MTA3OmZ1bmN0'@; put 'aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0Ijt2YXIgXz17MToiXHUwOWU3IiwyOiJcdTA5ZTgiLDM6Ilx1MDllOSIsNDoiXHUwOWVhIiw1OiJcdTA5ZWIiLDY6Ilx1MDllYyIsNzoiXHUwOWVkIiw4OiJcdTA5ZWUiLDk6Ilx1MDllZiIsMDoiXHUwOWU2In0scD17Ilx1MDll'@; put 'NyI6IjEiLCJcdTA5ZTgiOiIyIiwiXHUwOWU5IjoiMyIsIlx1MDllYSI6IjQiLCJcdTA5ZWIiOiI1IiwiXHUwOWVjIjoiNiIsIlx1MDllZCI6IjciLCJcdTA5ZWUiOiI4IiwiXHUwOWVmIjoiOSIsIlx1MDllNiI6IjAifTtELmRlZmluZUxvY2FsZSgiYm4iLHttb250aHM6Ilx1MDk5Y1x1MDli'@; put 'ZVx1MDlhOFx1MDljMVx1MDlkZlx1MDliZVx1MDliMFx1MDliZl9cdTA5YWJcdTA5YzdcdTA5YWNcdTA5Y2RcdTA5YjBcdTA5YzFcdTA5ZGZcdTA5YmVcdTA5YjBcdTA5YmZfXHUwOWFlXHUwOWJlXHUwOWIwXHUwOWNkXHUwOTlhX1x1MDk4Zlx1MDlhYVx1MDljZFx1MDliMFx1MDliZlx1MDli'@; put 'Ml9cdTA5YWVcdTA5YzdfXHUwOTljXHUwOWMxXHUwOWE4X1x1MDk5Y1x1MDljMVx1MDliMlx1MDliZVx1MDk4N19cdTA5ODZcdTA5OTdcdTA5YjhcdTA5Y2RcdTA5OWZfXHUwOWI4XHUwOWM3XHUwOWFhXHUwOWNkXHUwOTlmXHUwOWM3XHUwOWFlXHUwOWNkXHUwOWFjXHUwOWIwX1x1MDk4NVx1'@; put 'MDk5NVx1MDljZFx1MDk5Zlx1MDljYlx1MDlhY1x1MDliMF9cdTA5YThcdTA5YWRcdTA5YzdcdTA5YWVcdTA5Y2RcdTA5YWNcdTA5YjBfXHUwOWExXHUwOWJmXHUwOWI4XHUwOWM3XHUwOWFlXHUwOWNkXHUwOWFjXHUwOWIwIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTA5OWNcdTA5YmVc'@; put 'dTA5YThcdTA5YzFfXHUwOWFiXHUwOWM3XHUwOWFjXHUwOWNkXHUwOWIwXHUwOWMxX1x1MDlhZVx1MDliZVx1MDliMFx1MDljZFx1MDk5YV9cdTA5OGZcdTA5YWFcdTA5Y2RcdTA5YjBcdTA5YmZcdTA5YjJfXHUwOWFlXHUwOWM3X1x1MDk5Y1x1MDljMVx1MDlhOF9cdTA5OWNcdTA5YzFcdTA5'@; put 'YjJcdTA5YmVcdTA5ODdfXHUwOTg2XHUwOTk3XHUwOWI4XHUwOWNkXHUwOTlmX1x1MDliOFx1MDljN1x1MDlhYVx1MDljZFx1MDk5Zl9cdTA5ODVcdTA5OTVcdTA5Y2RcdTA5OWZcdTA5Y2JfXHUwOWE4XHUwOWFkXHUwOWM3X1x1MDlhMVx1MDliZlx1MDliOFx1MDljNyIuc3BsaXQoIl8iKSx3'@; put 'ZWVrZGF5czoiXHUwOWIwXHUwOWFjXHUwOWJmXHUwOWFjXHUwOWJlXHUwOWIwX1x1MDliOFx1MDljYlx1MDlhZVx1MDlhY1x1MDliZVx1MDliMF9cdTA5YWVcdTA5OTlcdTA5Y2RcdTA5OTdcdTA5YjJcdTA5YWNcdTA5YmVcdTA5YjBfXHUwOWFjXHUwOWMxXHUwOWE3XHUwOWFjXHUwOWJlXHUw'@; put 'OWIwX1x1MDlhY1x1MDljM1x1MDliOVx1MDliOFx1MDljZFx1MDlhYVx1MDlhNFx1MDliZlx1MDlhY1x1MDliZVx1MDliMF9cdTA5YjZcdTA5YzFcdTA5OTVcdTA5Y2RcdTA5YjBcdTA5YWNcdTA5YmVcdTA5YjBfXHUwOWI2XHUwOWE4XHUwOWJmXHUwOWFjXHUwOWJlXHUwOWIwIi5zcGxpdCgi'@; put 'XyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDliMFx1MDlhY1x1MDliZl9cdTA5YjhcdTA5Y2JcdTA5YWVfXHUwOWFlXHUwOTk5XHUwOWNkXHUwOTk3XHUwOWIyX1x1MDlhY1x1MDljMVx1MDlhN19cdTA5YWNcdTA5YzNcdTA5YjlcdTA5YjhcdTA5Y2RcdTA5YWFcdTA5YTRcdTA5YmZfXHUwOWI2XHUw'@; put 'OWMxXHUwOTk1XHUwOWNkXHUwOWIwX1x1MDliNlx1MDlhOFx1MDliZiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwOWIwXHUwOWFjXHUwOWJmX1x1MDliOFx1MDljYlx1MDlhZV9cdTA5YWVcdTA5OTlcdTA5Y2RcdTA5OTdcdTA5YjJfXHUwOWFjXHUwOWMxXHUwOWE3X1x1MDlhY1x1MDlj'@; put 'M1x1MDliOV9cdTA5YjZcdTA5YzFcdTA5OTVcdTA5Y2RcdTA5YjBfXHUwOWI2XHUwOWE4XHUwOWJmIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiQSBoOm1tIFx1MDliOFx1MDlhZVx1MDlkZiIsTFRTOiJBIGg6bW06c3MgXHUwOWI4XHUwOWFlXHUwOWRmIixMOiJERC9NTS9ZWVlZ'@; put 'IixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVksIEEgaDptbSBcdTA5YjhcdTA5YWVcdTA5ZGYiLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0gXHUwOWI4XHUwOWFlXHUwOWRmIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA5ODZcdTA5OWNdIExUIixuZXh0RGF5OiJb'@; put 'XHUwOTg2XHUwOTk3XHUwOWJlXHUwOWFlXHUwOWMwXHUwOTk1XHUwOWJlXHUwOWIyXSBMVCIsbmV4dFdlZWs6ImRkZGQsIExUIixsYXN0RGF5OiJbXHUwOTk3XHUwOWE0XHUwOTk1XHUwOWJlXHUwOWIyXSBMVCIsbGFzdFdlZWs6IltcdTA5OTdcdTA5YTRdIGRkZGQsIExUIixzYW1lRWxzZToi'@; put 'TCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBcdTA5YWFcdTA5YjBcdTA5YzciLHBhc3Q6IiVzIFx1MDk4Nlx1MDk5N1x1MDljNyIsczoiXHUwOTk1XHUwOWRmXHUwOWM3XHUwOTk1IFx1MDliOFx1MDljN1x1MDk5NVx1MDljN1x1MDlhOFx1MDljZFx1MDlhMSIsc3M6IiVkIFx1MDliOFx1'@; put 'MDljN1x1MDk5NVx1MDljN1x1MDlhOFx1MDljZFx1MDlhMSIsbToiXHUwOThmXHUwOTk1IFx1MDlhZVx1MDliZlx1MDlhOFx1MDliZlx1MDk5ZiIsbW06IiVkIFx1MDlhZVx1MDliZlx1MDlhOFx1MDliZlx1MDk5ZiIsaDoiXHUwOThmXHUwOTk1IFx1MDk5OFx1MDlhOFx1MDljZFx1MDk5Zlx1'@; put 'MDliZSIsaGg6IiVkIFx1MDk5OFx1MDlhOFx1MDljZFx1MDk5Zlx1MDliZSIsZDoiXHUwOThmXHUwOTk1IFx1MDlhNlx1MDliZlx1MDlhOCIsZGQ6IiVkIFx1MDlhNlx1MDliZlx1MDlhOCIsTToiXHUwOThmXHUwOTk1IFx1MDlhZVx1MDliZVx1MDliOCIsTU06IiVkIFx1MDlhZVx1MDliZVx1'@; put 'MDliOCIseToiXHUwOThmXHUwOTk1IFx1MDlhY1x1MDk5Ylx1MDliMCIseXk6IiVkIFx1MDlhY1x1MDk5Ylx1MDliMCJ9LHByZXBhcnNlOmZ1bmN0aW9uKHcpe3JldHVybiB3LnJlcGxhY2UoL1tcdTA5ZTdcdTA5ZThcdTA5ZTlcdTA5ZWFcdTA5ZWJcdTA5ZWNcdTA5ZWRcdTA5ZWVcdTA5ZWZc'@; put 'dTA5ZTZdL2csZnVuY3Rpb24oRil7cmV0dXJuIHBbRl19KX0scG9zdGZvcm1hdDpmdW5jdGlvbih3KXtyZXR1cm4gdy5yZXBsYWNlKC9cZC9nLGZ1bmN0aW9uKEYpe3JldHVybiBfW0ZdfSl9LG1lcmlkaWVtUGFyc2U6L1x1MDliMFx1MDliZVx1MDlhNHxcdTA5YjhcdTA5OTVcdTA5YmVcdTA5'@; put 'YjJ8XHUwOWE2XHUwOWMxXHUwOWFhXHUwOWMxXHUwOWIwfFx1MDlhY1x1MDliZlx1MDk5NVx1MDliZVx1MDliMnxcdTA5YjBcdTA5YmVcdTA5YTQvLG1lcmlkaWVtSG91cjpmdW5jdGlvbih3LEYpe3JldHVybiAxMj09PXcmJih3PTApLCJcdTA5YjBcdTA5YmVcdTA5YTQiPT09RiYmdz49NHx8'@; put 'Ilx1MDlhNlx1MDljMVx1MDlhYVx1MDljMVx1MDliMCI9PT1GJiZ3PDV8fCJcdTA5YWNcdTA5YmZcdTA5OTVcdTA5YmVcdTA5YjIiPT09Rj93KzEyOnd9LG1lcmlkaWVtOmZ1bmN0aW9uKHcsRixIKXtyZXR1cm4gdzw0PyJcdTA5YjBcdTA5YmVcdTA5YTQiOnc8MTA/Ilx1MDliOFx1MDk5NVx1'@; put 'MDliZVx1MDliMiI6dzwxNz8iXHUwOWE2XHUwOWMxXHUwOWFhXHUwOWMxXHUwOWIwIjp3PDIwPyJcdTA5YWNcdTA5YmZcdTA5OTVcdTA5YmVcdTA5YjIiOiJcdTA5YjBcdTA5YmVcdTA5YTQifSx3ZWVrOntkb3c6MCxkb3k6Nn19KX0oYig5NzU4NikpfSw5MDA0OmZ1bmN0aW9uKGNlLEosYil7'@; put 'IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0Ijt2YXIgXz17MToiXHUwZjIxIiwyOiJcdTBmMjIiLDM6Ilx1MGYyMyIsNDoiXHUwZjI0Iiw1OiJcdTBmMjUiLDY6Ilx1MGYyNiIsNzoiXHUwZjI3Iiw4OiJcdTBmMjgiLDk6Ilx1MGYyOSIsMDoiXHUwZjIwIn0scD17Ilx1MGYyMSI6IjEiLCJcdTBm'@; put 'MjIiOiIyIiwiXHUwZjIzIjoiMyIsIlx1MGYyNCI6IjQiLCJcdTBmMjUiOiI1IiwiXHUwZjI2IjoiNiIsIlx1MGYyNyI6IjciLCJcdTBmMjgiOiI4IiwiXHUwZjI5IjoiOSIsIlx1MGYyMCI6IjAifTtELmRlZmluZUxvY2FsZSgiYm8iLHttb250aHM6Ilx1MGY1Zlx1MGZiM1x1MGYwYlx1MGY1'@; put 'Nlx1MGYwYlx1MGY1MVx1MGY0NFx1MGYwYlx1MGY1NFx1MGY3Y19cdTBmNWZcdTBmYjNcdTBmMGJcdTBmNTZcdTBmMGJcdTBmNDJcdTBmNDlcdTBmNzJcdTBmNjZcdTBmMGJcdTBmNTRfXHUwZjVmXHUwZmIzXHUwZjBiXHUwZjU2XHUwZjBiXHUwZjQyXHUwZjY2XHUwZjc0XHUwZjU4XHUwZjBi'@; put 'XHUwZjU0X1x1MGY1Zlx1MGZiM1x1MGYwYlx1MGY1Nlx1MGYwYlx1MGY1Nlx1MGY1ZVx1MGY3Mlx1MGYwYlx1MGY1NF9cdTBmNWZcdTBmYjNcdTBmMGJcdTBmNTZcdTBmMGJcdTBmNjNcdTBmOTRcdTBmMGJcdTBmNTRfXHUwZjVmXHUwZmIzXHUwZjBiXHUwZjU2XHUwZjBiXHUwZjUxXHUwZmIy'@; put 'XHUwZjc0XHUwZjQyXHUwZjBiXHUwZjU0X1x1MGY1Zlx1MGZiM1x1MGYwYlx1MGY1Nlx1MGYwYlx1MGY1Nlx1MGY1MVx1MGY3NFx1MGY1M1x1MGYwYlx1MGY1NF9cdTBmNWZcdTBmYjNcdTBmMGJcdTBmNTZcdTBmMGJcdTBmNTZcdTBmNjJcdTBmOTJcdTBmYjFcdTBmNTFcdTBmMGJcdTBmNTRf'@; put 'XHUwZjVmXHUwZmIzXHUwZjBiXHUwZjU2XHUwZjBiXHUwZjUxXHUwZjQyXHUwZjc0XHUwZjBiXHUwZjU0X1x1MGY1Zlx1MGZiM1x1MGYwYlx1MGY1Nlx1MGYwYlx1MGY1Nlx1MGY0NVx1MGY3NFx1MGYwYlx1MGY1NF9cdTBmNWZcdTBmYjNcdTBmMGJcdTBmNTZcdTBmMGJcdTBmNTZcdTBmNDVc'@; put 'dTBmNzRcdTBmMGJcdTBmNDJcdTBmNDVcdTBmNzJcdTBmNDJcdTBmMGJcdTBmNTRfXHUwZjVmXHUwZmIzXHUwZjBiXHUwZjU2XHUwZjBiXHUwZjU2XHUwZjQ1XHUwZjc0XHUwZjBiXHUwZjQyXHUwZjQ5XHUwZjcyXHUwZjY2XHUwZjBiXHUwZjU0Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJc'@; put 'dTBmNWZcdTBmYjNcdTBmMGIxX1x1MGY1Zlx1MGZiM1x1MGYwYjJfXHUwZjVmXHUwZmIzXHUwZjBiM19cdTBmNWZcdTBmYjNcdTBmMGI0X1x1MGY1Zlx1MGZiM1x1MGYwYjVfXHUwZjVmXHUwZmIzXHUwZjBiNl9cdTBmNWZcdTBmYjNcdTBmMGI3X1x1MGY1Zlx1MGZiM1x1MGYwYjhfXHUwZjVm'@; put 'XHUwZmIzXHUwZjBiOV9cdTBmNWZcdTBmYjNcdTBmMGIxMF9cdTBmNWZcdTBmYjNcdTBmMGIxMV9cdTBmNWZcdTBmYjNcdTBmMGIxMiIuc3BsaXQoIl8iKSxtb250aHNTaG9ydFJlZ2V4Oi9eKFx1MGY1Zlx1MGZiM1x1MGYwYlxkezEsMn0pLyxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlz'@; put 'OiJcdTBmNDJcdTBmNWZcdTBmNjBcdTBmMGJcdTBmNDlcdTBmNzJcdTBmMGJcdTBmNThcdTBmMGJfXHUwZjQyXHUwZjVmXHUwZjYwXHUwZjBiXHUwZjVmXHUwZmIzXHUwZjBiXHUwZjU2XHUwZjBiX1x1MGY0Mlx1MGY1Zlx1MGY2MFx1MGYwYlx1MGY1OFx1MGY3Mlx1MGY0Mlx1MGYwYlx1MGY1'@; put 'MVx1MGY1OFx1MGY2Mlx1MGYwYl9cdTBmNDJcdTBmNWZcdTBmNjBcdTBmMGJcdTBmNjNcdTBmYjdcdTBmNDJcdTBmMGJcdTBmNTRcdTBmMGJfXHUwZjQyXHUwZjVmXHUwZjYwXHUwZjBiXHUwZjU1XHUwZjc0XHUwZjYyXHUwZjBiXHUwZjU2XHUwZjc0X1x1MGY0Mlx1MGY1Zlx1MGY2MFx1MGYw'@; put 'Ylx1MGY1NFx1MGYwYlx1MGY2Nlx1MGY0NFx1MGY2Nlx1MGYwYl9cdTBmNDJcdTBmNWZcdTBmNjBcdTBmMGJcdTBmNjZcdTBmYTRcdTBmN2FcdTBmNTNcdTBmMGJcdTBmNTRcdTBmMGIiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwZjQ5XHUwZjcyXHUwZjBiXHUwZjU4XHUwZjBiX1x1'@; put 'MGY1Zlx1MGZiM1x1MGYwYlx1MGY1Nlx1MGYwYl9cdTBmNThcdTBmNzJcdTBmNDJcdTBmMGJcdTBmNTFcdTBmNThcdTBmNjJcdTBmMGJfXHUwZjYzXHUwZmI3XHUwZjQyXHUwZjBiXHUwZjU0XHUwZjBiX1x1MGY1NVx1MGY3NFx1MGY2Mlx1MGYwYlx1MGY1Nlx1MGY3NF9cdTBmNTRcdTBmMGJc'@; put 'dTBmNjZcdTBmNDRcdTBmNjZcdTBmMGJfXHUwZjY2XHUwZmE0XHUwZjdhXHUwZjUzXHUwZjBiXHUwZjU0XHUwZjBiIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTBmNDlcdTBmNzJfXHUwZjVmXHUwZmIzX1x1MGY1OFx1MGY3Mlx1MGY0Ml9cdTBmNjNcdTBmYjdcdTBmNDJfXHUwZjU1XHUw'@; put 'Zjc0XHUwZjYyX1x1MGY2Nlx1MGY0NFx1MGY2Nl9cdTBmNjZcdTBmYTRcdTBmN2FcdTBmNTMiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJBIGg6bW0iLExUUzoiQSBoOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVksIEEgaDpt'@; put 'bSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVksIEEgaDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwZjUxXHUwZjcyXHUwZjBiXHUwZjYyXHUwZjcyXHUwZjQ0XSBMVCIsbmV4dERheToiW1x1MGY2Nlx1MGY0NFx1MGYwYlx1MGY0OVx1MGY3Mlx1MGY1M10gTFQiLG5leHRXZWVrOiJbXHUw'@; put 'ZjU2XHUwZjUxXHUwZjc0XHUwZjUzXHUwZjBiXHUwZjU1XHUwZmIyXHUwZjQyXHUwZjBiXHUwZjYyXHUwZjk3XHUwZjdhXHUwZjY2XHUwZjBiXHUwZjU4XSwgTFQiLGxhc3REYXk6IltcdTBmNDFcdTBmMGJcdTBmNjZcdTBmNDRdIExUIixsYXN0V2VlazoiW1x1MGY1Nlx1MGY1MVx1MGY3NFx1'@; put 'MGY1M1x1MGYwYlx1MGY1NVx1MGZiMlx1MGY0Mlx1MGYwYlx1MGY1OFx1MGY1MFx1MGY2MFx1MGYwYlx1MGY1OF0gZGRkZCwgTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIFx1MGY2M1x1MGYwYiIscGFzdDoiJXMgXHUwZjY2XHUwZjk0XHUwZjUzXHUwZjBiXHUw'@; put 'ZjYzIixzOiJcdTBmNjNcdTBmNThcdTBmMGJcdTBmNjZcdTBmNDQiLHNzOiIlZCBcdTBmNjZcdTBmOTBcdTBmNjJcdTBmMGJcdTBmNDZcdTBmMGQiLG06Ilx1MGY2Nlx1MGY5MFx1MGY2Mlx1MGYwYlx1MGY1OFx1MGYwYlx1MGY0Mlx1MGY0NVx1MGY3Mlx1MGY0MiIsbW06IiVkIFx1MGY2Nlx1'@; put 'MGY5MFx1MGY2Mlx1MGYwYlx1MGY1OCIsaDoiXHUwZjQ2XHUwZjc0XHUwZjBiXHUwZjVhXHUwZjdjXHUwZjUxXHUwZjBiXHUwZjQyXHUwZjQ1XHUwZjcyXHUwZjQyIixoaDoiJWQgXHUwZjQ2XHUwZjc0XHUwZjBiXHUwZjVhXHUwZjdjXHUwZjUxIixkOiJcdTBmNDlcdTBmNzJcdTBmNTNcdTBm'@; put 'MGJcdTBmNDJcdTBmNDVcdTBmNzJcdTBmNDIiLGRkOiIlZCBcdTBmNDlcdTBmNzJcdTBmNTNcdTBmMGIiLE06Ilx1MGY1Zlx1MGZiM1x1MGYwYlx1MGY1Nlx1MGYwYlx1MGY0Mlx1MGY0NVx1MGY3Mlx1MGY0MiIsTU06IiVkIFx1MGY1Zlx1MGZiM1x1MGYwYlx1MGY1NiIseToiXHUwZjYzXHUw'@; put 'ZjdjXHUwZjBiXHUwZjQyXHUwZjQ1XHUwZjcyXHUwZjQyIix5eToiJWQgXHUwZjYzXHUwZjdjIn0scHJlcGFyc2U6ZnVuY3Rpb24odyl7cmV0dXJuIHcucmVwbGFjZSgvW1x1MGYyMVx1MGYyMlx1MGYyM1x1MGYyNFx1MGYyNVx1MGYyNlx1MGYyN1x1MGYyOFx1MGYyOVx1MGYyMF0vZyxmdW5j'@; put 'dGlvbihGKXtyZXR1cm4gcFtGXX0pfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKHcpe3JldHVybiB3LnJlcGxhY2UoL1xkL2csZnVuY3Rpb24oRil7cmV0dXJuIF9bRl19KX0sbWVyaWRpZW1QYXJzZTovXHUwZjU4XHUwZjVhXHUwZjUzXHUwZjBiXHUwZjU4XHUwZjdjfFx1MGY1ZVx1MGY3Y1x1MGY0'@; put 'Mlx1MGY2Nlx1MGYwYlx1MGY0MFx1MGY2NnxcdTBmNDlcdTBmNzJcdTBmNTNcdTBmMGJcdTBmNDJcdTBmNzRcdTBmNDR8XHUwZjUxXHUwZjQyXHUwZjdjXHUwZjQ0XHUwZjBiXHUwZjUxXHUwZjQyfFx1MGY1OFx1MGY1YVx1MGY1M1x1MGYwYlx1MGY1OFx1MGY3Yy8sbWVyaWRpZW1Ib3VyOmZ1'@; put 'bmN0aW9uKHcsRil7cmV0dXJuIDEyPT09dyYmKHc9MCksIlx1MGY1OFx1MGY1YVx1MGY1M1x1MGYwYlx1MGY1OFx1MGY3YyI9PT1GJiZ3Pj00fHwiXHUwZjQ5XHUwZjcyXHUwZjUzXHUwZjBiXHUwZjQyXHUwZjc0XHUwZjQ0Ij09PUYmJnc8NXx8Ilx1MGY1MVx1MGY0Mlx1MGY3Y1x1MGY0NFx1'@; put 'MGYwYlx1MGY1MVx1MGY0MiI9PT1GP3crMTI6d30sbWVyaWRpZW06ZnVuY3Rpb24odyxGLEgpe3JldHVybiB3PDQ/Ilx1MGY1OFx1MGY1YVx1MGY1M1x1MGYwYlx1MGY1OFx1MGY3YyI6dzwxMD8iXHUwZjVlXHUwZjdjXHUwZjQyXHUwZjY2XHUwZjBiXHUwZjQwXHUwZjY2Ijp3PDE3PyJcdTBm'@; put 'NDlcdTBmNzJcdTBmNTNcdTBmMGJcdTBmNDJcdTBmNzRcdTBmNDQiOnc8MjA/Ilx1MGY1MVx1MGY0Mlx1MGY3Y1x1MGY0NFx1MGYwYlx1MGY1MVx1MGY0MiI6Ilx1MGY1OFx1MGY1YVx1MGY1M1x1MGYwYlx1MGY1OFx1MGY3YyJ9LHdlZWs6e2RvdzowLGRveTo2fX0pfShiKDk3NTg2KSl9LDUw'@; put 'OTI3OmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBfKFosWCxRKXtyZXR1cm4gWisiICIrZnVuY3Rpb24gdyhaLFgpe3JldHVybiAyPT09WD9mdW5jdGlvbiBGKFope3ZhciBYPXttOiJ2IixiOiJ2IixkOiJ6In07cmV0dXJuIHZvaWQgMD09PVhb'@; put 'Wi5jaGFyQXQoMCldP1o6WFtaLmNoYXJBdCgwKV0rWi5zdWJzdHJpbmcoMSl9KFopOlp9KHttbToibXVudXRlbm4iLE1NOiJtaXoiLGRkOiJkZXZlemgifVtRXSxaKX1mdW5jdGlvbiBOKFope3JldHVybiBaPjk/TihaJTEwKTpafXZhciBIPVsvXmdlbi9pLC9eY1tcdTAyYmNcJ11od2UvaSwv'@; put 'Xm1ldS9pLC9eZWJyL2ksL15tYWUvaSwvXihtZXp8ZXZlKS9pLC9eZ291L2ksL15lb3MvaSwvXmd3ZS9pLC9eaGVyL2ksL15kdS9pLC9ea2VyL2ldLFI9L14oZ2VudmVyfGNbXHUwMmJjXCddaHdldnJlcnxtZXVyemh8ZWJyZWx8bWFlfG1lemhldmVufGdvdWVyZXxlb3N0fGd3ZW5nb2xvfGhl'@; put 'cmV8ZHV8a2VyenV8Z2VufGNbXHUwMmJjXCddaHdlfG1ldXxlYnJ8bWFlfGV2ZXxnb3V8ZW9zfGd3ZXxoZXJ8ZHV8a2VyKS9pLEI9Wy9eU3UvaSwvXkx1L2ksL15NZShbXnJdfCQpL2ksL15NZXIvaSwvXllhL2ksL15Hdy9pLC9eU2EvaV07RC5kZWZpbmVMb2NhbGUoImJyIix7bW9udGhzOiJH'@; put 'ZW52ZXJfQ1x1MDJiY2h3ZXZyZXJfTWV1cnpoX0VicmVsX01hZV9NZXpoZXZlbl9Hb3VlcmVfRW9zdF9Hd2VuZ29sb19IZXJlX0R1X0tlcnp1Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJHZW5fQ1x1MDJiY2h3ZV9NZXVfRWJyX01hZV9FdmVfR291X0Vvc19Hd2VfSGVyX0R1X0tlciIuc3Bs'@; put 'aXQoIl8iKSx3ZWVrZGF5czoiU3VsX0x1bl9NZXVyemhfTWVyY1x1MDJiY2hlcl9ZYW91X0d3ZW5lcl9TYWRvcm4iLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiU3VsX0x1bl9NZXVfTWVyX1lhb19Hd2VfU2FkIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJTdV9MdV9NZV9NZXJfWWFfR3df'@; put 'U2EiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZTpCLGZ1bGxXZWVrZGF5c1BhcnNlOlsvXnN1bC9pLC9ebHVuL2ksL15tZXVyemgvaSwvXm1lcmNbXHUwMmJjXCddaGVyL2ksL155YW91L2ksL15nd2VuZXIvaSwvXnNhZG9ybi9pXSxzaG9ydFdlZWtkYXlzUGFyc2U6Wy9eU3VsL2ksL15MdW4v'@; put 'aSwvXk1ldS9pLC9eTWVyL2ksL15ZYW8vaSwvXkd3ZS9pLC9eU2FkL2ldLG1pbldlZWtkYXlzUGFyc2U6Qixtb250aHNSZWdleDpSLG1vbnRoc1Nob3J0UmVnZXg6Uixtb250aHNTdHJpY3RSZWdleDovXihnZW52ZXJ8Y1tcdTAyYmNcJ11od2V2cmVyfG1ldXJ6aHxlYnJlbHxtYWV8bWV6aGV2'@; put 'ZW58Z291ZXJlfGVvc3R8Z3dlbmdvbG98aGVyZXxkdXxrZXJ6dSkvaSxtb250aHNTaG9ydFN0cmljdFJlZ2V4Oi9eKGdlbnxjW1x1MDJiY1wnXWh3ZXxtZXV8ZWJyfG1hZXxldmV8Z291fGVvc3xnd2V8aGVyfGR1fGtlcikvaSxtb250aHNQYXJzZTpILGxvbmdNb250aHNQYXJzZTpILHNob3J0'@; put 'TW9udGhzUGFyc2U6SCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBbYSB2aXpdIE1NTU0gWVlZWSIsTExMOiJEIFthIHZpel0gTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIFthIHZpel0gTU1NTSBZWVlZIEhIOm1t'@; put 'In0sY2FsZW5kYXI6e3NhbWVEYXk6IltIaXppdiBkYV0gTFQiLG5leHREYXk6IltXYXJjXHUwMmJjaG9hemggZGFdIExUIixuZXh0V2VlazoiZGRkZCBbZGFdIExUIixsYXN0RGF5OiJbRGVjXHUwMmJjaCBkYV0gTFQiLGxhc3RXZWVrOiJkZGRkIFtwYXNldCBkYV0gTFQiLHNhbWVFbHNlOiJM'@; put 'In0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImEtYmVubiAlcyIscGFzdDoiJXMgXHUwMmJjem8iLHM6InVuIG5lYmV1ZCBzZWdvbmRlbm5vXHhmOSIsc3M6IiVkIGVpbGVubiIsbToidXIgdnVudXRlbm4iLG1tOl8saDoidW4gZXVyIixoaDoiJWQgZXVyIixkOiJ1biBkZXZlemgiLGRkOl8sTToi'@; put 'dXIgbWl6IixNTTpfLHk6InVyIGJsb2F6Iix5eTpmdW5jdGlvbiBwKFope3N3aXRjaChOKFopKXtjYXNlIDE6Y2FzZSAzOmNhc2UgNDpjYXNlIDU6Y2FzZSA5OnJldHVybiBaKyIgYmxvYXoiO2RlZmF1bHQ6cmV0dXJuIForIiB2bG9heiJ9fX0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7'@; put 'MSwyfShhXHhmMXx2ZXQpLyxvcmRpbmFsOmZ1bmN0aW9uKFope3JldHVybiBaKygxPT09Wj8iYVx4ZjEiOiJ2ZXQiKX0sd2Vlazp7ZG93OjEsZG95OjR9LG1lcmlkaWVtUGFyc2U6L2EubS58Zy5tLi8saXNQTTpmdW5jdGlvbihaKXtyZXR1cm4iZy5tLiI9PT1afSxtZXJpZGllbTpmdW5jdGlv'@; put 'bihaLFgsUSl7cmV0dXJuIFo8MTI/ImEubS4iOiJnLm0uIn19KX0oYig5NzU4NikpfSw4Nzc2ODpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcCh3LEYsSCl7dmFyIFI9dysiICI7c3dpdGNoKEgpe2Nhc2Uic3MiOnJldHVybiBSKygxPT09dz8i'@; put 'c2VrdW5kYSI6Mj09PXd8fDM9PT13fHw0PT09dz8ic2VrdW5kZSI6InNla3VuZGkiKTtjYXNlIm1tIjpyZXR1cm4gUisoMT09PXc/Im1pbnV0YSI6Mj09PXd8fDM9PT13fHw0PT09dz8ibWludXRlIjoibWludXRhIik7Y2FzZSJoIjpyZXR1cm4iamVkYW4gc2F0IjtjYXNlImhoIjpyZXR1cm4g'@; put 'UisoMT09PXc/InNhdCI6Mj09PXd8fDM9PT13fHw0PT09dz8ic2F0YSI6InNhdGkiKTtjYXNlImRkIjpyZXR1cm4gUisoMT09PXc/ImRhbiI6ImRhbmEiKTtjYXNlIk1NIjpyZXR1cm4gUisoMT09PXc/Im1qZXNlYyI6Mj09PXd8fDM9PT13fHw0PT09dz8ibWplc2VjYSI6Im1qZXNlY2kiKTtj'@; put 'YXNlInl5IjpyZXR1cm4gUisoMT09PXc/ImdvZGluYSI6Mj09PXd8fDM9PT13fHw0PT09dz8iZ29kaW5lIjoiZ29kaW5hIil9fUQuZGVmaW5lTG9jYWxlKCJicyIse21vbnRoczoiamFudWFyX2ZlYnJ1YXJfbWFydF9hcHJpbF9tYWpfanVuaV9qdWxpX2F1Z3VzdF9zZXB0ZW1iYXJfb2t0b2Jh'@; put 'cl9ub3ZlbWJhcl9kZWNlbWJhciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiamFuLl9mZWIuX21hci5fYXByLl9tYWouX2p1bi5fanVsLl9hdWcuX3NlcC5fb2t0Ll9ub3YuX2RlYy4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoibmVkamVsamFfcG9uZWRqZWxq'@; put 'YWtfdXRvcmFrX3NyaWplZGFfXHUwMTBkZXR2cnRha19wZXRha19zdWJvdGEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoibmVkLl9wb24uX3V0by5fc3JpLl9cdTAxMGRldC5fcGV0Ll9zdWIuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJuZV9wb191dF9zcl9cdTAxMGRlX3BlX3N1Ii5z'@; put 'cGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQuIE1NTU0gWVlZWSIsTExMOiJELiBNTU1NIFlZWVkgSDptbSIsTExMTDoiZGRkZCwgRC4gTU1NTSBZWVlZIEg6bW0ifSxjYWxl'@; put 'bmRhcjp7c2FtZURheToiW2RhbmFzIHVdIExUIixuZXh0RGF5OiJbc3V0cmEgdV0gTFQiLG5leHRXZWVrOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZGF5KCkpe2Nhc2UgMDpyZXR1cm4iW3VdIFtuZWRqZWxqdV0gW3VdIExUIjtjYXNlIDM6cmV0dXJuIlt1XSBbc3JpamVkdV0gW3VdIExUIjtj'@; put 'YXNlIDY6cmV0dXJuIlt1XSBbc3Vib3R1XSBbdV0gTFQiO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OmNhc2UgNTpyZXR1cm4iW3VdIGRkZGQgW3VdIExUIn19LGxhc3REYXk6IltqdVx1MDEwZGVyIHVdIExUIixsYXN0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6Y2Fz'@; put 'ZSAzOnJldHVybiJbcHJvXHUwMTYxbHVdIGRkZGQgW3VdIExUIjtjYXNlIDY6cmV0dXJuIltwcm9cdTAxNjFsZV0gW3N1Ym90ZV0gW3VdIExUIjtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpjYXNlIDU6cmV0dXJuIltwcm9cdTAxNjFsaV0gZGRkZCBbdV0gTFQifX0sc2FtZUVsc2U6IkwifSxyZWxh'@; put 'dGl2ZVRpbWU6e2Z1dHVyZToiemEgJXMiLHBhc3Q6InByaWplICVzIixzOiJwYXIgc2VrdW5kaSIsc3M6cCxtOmZ1bmN0aW9uIF8odyxGLEgsUil7aWYoIm0iPT09SClyZXR1cm4gRj8iamVkbmEgbWludXRhIjpSPyJqZWRudSBtaW51dHUiOiJqZWRuZSBtaW51dGUifSxtbTpwLGg6cCxoaDpw'@; put 'LGQ6ImRhbiIsZGQ6cCxNOiJtamVzZWMiLE1NOnAseToiZ29kaW51Iix5eTpwfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95Ojd9fSl9KGIoOTc1ODYpKX0sNTYyOTE6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7'@; put 'InVzZSBzdHJpY3QiO0QuZGVmaW5lTG9jYWxlKCJjYSIse21vbnRoczp7c3RhbmRhbG9uZToiZ2VuZXJfZmVicmVyX21hclx4ZTdfYWJyaWxfbWFpZ19qdW55X2p1bGlvbF9hZ29zdF9zZXRlbWJyZV9vY3R1YnJlX25vdmVtYnJlX2Rlc2VtYnJlIi5zcGxpdCgiXyIpLGZvcm1hdDoiZGUgZ2Vu'@; put 'ZXJfZGUgZmVicmVyX2RlIG1hclx4ZTdfZCdhYnJpbF9kZSBtYWlnX2RlIGp1bnlfZGUganVsaW9sX2QnYWdvc3RfZGUgc2V0ZW1icmVfZCdvY3R1YnJlX2RlIG5vdmVtYnJlX2RlIGRlc2VtYnJlIi5zcGxpdCgiXyIpLGlzRm9ybWF0Oi9EW29EXT8oXHMpK01NTU0vfSxtb250aHNTaG9ydDoi'@; put 'Z2VuLl9mZWJyLl9tYXJceGU3X2Fici5fbWFpZ19qdW55X2p1bC5fYWcuX3NldC5fb2N0Ll9ub3YuX2Rlcy4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiZGl1bWVuZ2VfZGlsbHVuc19kaW1hcnRzX2RpbWVjcmVzX2Rpam91c19kaXZlbmRyZXNfZGlzc2FidGUi'@; put 'LnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiZGcuX2RsLl9kdC5fZGMuX2RqLl9kdi5fZHMuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJkZ19kbF9kdF9kY19kal9kdl9kcyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6'@; put 'Ikg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gW2RlXSBZWVlZIixsbDoiRCBNTU0gWVlZWSIsTExMOiJEIE1NTU0gW2RlXSBZWVlZIFthIGxlc10gSDptbSIsbGxsOiJEIE1NTSBZWVlZLCBIOm1tIixMTExMOiJkZGRkIEQgTU1NTSBbZGVdIFlZWVkgW2EgbGVzXSBIOm1tIixs'@; put 'bGxsOiJkZGQgRCBNTU0gWVlZWSwgSDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OmZ1bmN0aW9uKCl7cmV0dXJuIlthdnVpIGEgIisoMSE9PXRoaXMuaG91cnMoKT8ibGVzIjoibGEiKSsiXSBMVCJ9LG5leHREYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW2RlbVx4ZTAgYSAiKygxIT09dGhpcy5ob3Vy'@; put 'cygpPyJsZXMiOiJsYSIpKyJdIExUIn0sbmV4dFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4iZGRkZCBbYSAiKygxIT09dGhpcy5ob3VycygpPyJsZXMiOiJsYSIpKyJdIExUIn0sbGFzdERheTpmdW5jdGlvbigpe3JldHVybiJbYWhpciBhICIrKDEhPT10aGlzLmhvdXJzKCk/ImxlcyI6ImxhIikr'@; put 'Il0gTFQifSxsYXN0V2VlazpmdW5jdGlvbigpe3JldHVybiJbZWxdIGRkZGQgW3Bhc3NhdCBhICIrKDEhPT10aGlzLmhvdXJzKCk/ImxlcyI6ImxhIikrIl0gTFQifSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJkJ2FxdVx4ZWQgJXMiLHBhc3Q6ImZhICVzIixzOiJ1bnMg'@; put 'c2Vnb25zIixzczoiJWQgc2Vnb25zIixtOiJ1biBtaW51dCIsbW06IiVkIG1pbnV0cyIsaDoidW5hIGhvcmEiLGhoOiIlZCBob3JlcyIsZDoidW4gZGlhIixkZDoiJWQgZGllcyIsTToidW4gbWVzIixNTToiJWQgbWVzb3MiLHk6InVuIGFueSIseXk6IiVkIGFueXMifSxkYXlPZk1vbnRoT3Jk'@; put 'aW5hbFBhcnNlOi9cZHsxLDJ9KHJ8bnx0fFx4ZTh8YSkvLG9yZGluYWw6ZnVuY3Rpb24ocCxOKXt2YXIgdz0xPT09cD8iciI6Mj09PXA/Im4iOjM9PT1wPyJyIjo0PT09cD8idCI6Ilx4ZTgiO3JldHVybigidyI9PT1OfHwiVyI9PT1OKSYmKHc9ImEiKSxwK3d9LHdlZWs6e2RvdzoxLGRveTo0'@; put 'fX0pfShiKDk3NTg2KSl9LDg1MzAxOmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0Ijt2YXIgXz17c3RhbmRhbG9uZToibGVkZW5fXHhmYW5vcl9iXHUwMTU5ZXplbl9kdWJlbl9rdlx1MDExYnRlbl9cdTAxMGRlcnZlbl9cdTAxMGRlcnZlbmVjX3NycGVuX3pceGUx'@; put 'XHUwMTU5XHhlZF9cdTAxNTlceGVkamVuX2xpc3RvcGFkX3Byb3NpbmVjIi5zcGxpdCgiXyIpLGZvcm1hdDoibGVkbmFfXHhmYW5vcmFfYlx1MDE1OWV6bmFfZHVibmFfa3ZcdTAxMWJ0bmFfXHUwMTBkZXJ2bmFfXHUwMTBkZXJ2ZW5jZV9zcnBuYV96XHhlMVx1MDE1OVx4ZWRfXHUwMTU5XHhl'@; put 'ZGpuYV9saXN0b3BhZHVfcHJvc2luY2UiLnNwbGl0KCJfIiksaXNGb3JtYXQ6L0REP1tvLl0/KFxbW15cW1xdXSpcXXxccykrTU1NTS99LHA9ImxlZF9ceGZhbm9fYlx1MDE1OWVfZHViX2t2XHUwMTFiX1x1MDEwZHZuX1x1MDEwZHZjX3NycF96XHhlMVx1MDE1OV9cdTAxNTlceGVkal9saXNf'@; put 'cHJvIi5zcGxpdCgiXyIpLE49Wy9ebGVkL2ksL15ceGZhbm8vaSwvXmJcdTAxNTllL2ksL15kdWIvaSwvXmt2XHUwMTFiL2ksL14oXHUwMTBkdm58XHUwMTBkZXJ2ZW4kfFx1MDEwZGVydm5hKS9pLC9eKFx1MDEwZHZjfFx1MDEwZGVydmVuZWN8XHUwMTBkZXJ2ZW5jZSkvaSwvXnNycC9pLC9e'@; put 'elx4ZTFcdTAxNTkvaSwvXlx1MDE1OVx4ZWRqL2ksL15saXMvaSwvXnByby9pXSx3PS9eKGxlZGVufFx4ZmFub3J8Ylx1MDE1OWV6ZW58ZHViZW58a3ZcdTAxMWJ0ZW58XHUwMTBkZXJ2ZW5lY3xcdTAxMGRlcnZlbmNlfFx1MDEwZGVydmVufFx1MDEwZGVydm5hfHNycGVufHpceGUxXHUwMTU5'@; put 'XHhlZHxcdTAxNTlceGVkamVufGxpc3RvcGFkfHByb3NpbmVjfGxlZHxceGZhbm98Ylx1MDE1OWV8ZHVifGt2XHUwMTFifFx1MDEwZHZufFx1MDEwZHZjfHNycHx6XHhlMVx1MDE1OXxcdTAxNTlceGVkanxsaXN8cHJvKS9pO2Z1bmN0aW9uIEYoail7cmV0dXJuIGo+MSYmajw1JiYxIT1+fihq'@; put 'LzEwKX1mdW5jdGlvbiBIKGosUCxMLFkpe3ZhciBCPWorIiAiO3N3aXRjaChMKXtjYXNlInMiOnJldHVybiBQfHxZPyJwXHhlMXIgc2VrdW5kIjoicFx4ZTFyIHNla3VuZGFtaSI7Y2FzZSJzcyI6cmV0dXJuIFB8fFk/QisoRihqKT8ic2VrdW5keSI6InNla3VuZCIpOkIrInNla3VuZGFtaSI7'@; put 'Y2FzZSJtIjpyZXR1cm4gUD8ibWludXRhIjpZPyJtaW51dHUiOiJtaW51dG91IjtjYXNlIm1tIjpyZXR1cm4gUHx8WT9CKyhGKGopPyJtaW51dHkiOiJtaW51dCIpOkIrIm1pbnV0YW1pIjtjYXNlImgiOnJldHVybiBQPyJob2RpbmEiOlk/ImhvZGludSI6ImhvZGlub3UiO2Nhc2UiaGgiOnJl'@; put 'dHVybiBQfHxZP0IrKEYoaik/ImhvZGlueSI6ImhvZGluIik6QisiaG9kaW5hbWkiO2Nhc2UiZCI6cmV0dXJuIFB8fFk/ImRlbiI6ImRuZW0iO2Nhc2UiZGQiOnJldHVybiBQfHxZP0IrKEYoaik/ImRueSI6ImRuXHhlZCIpOkIrImRueSI7Y2FzZSJNIjpyZXR1cm4gUHx8WT8ibVx1MDExYnNc'@; put 'eGVkYyI6Im1cdTAxMWJzXHhlZGNlbSI7Y2FzZSJNTSI6cmV0dXJuIFB8fFk/QisoRihqKT8ibVx1MDExYnNceGVkY2UiOiJtXHUwMTFic1x4ZWRjXHUwMTZmIik6QisibVx1MDExYnNceGVkY2kiO2Nhc2UieSI6cmV0dXJuIFB8fFk/InJvayI6InJva2VtIjtjYXNlInl5IjpyZXR1cm4gUHx8'@; put 'WT9CKyhGKGopPyJyb2t5IjoibGV0Iik6QisibGV0eSJ9fUQuZGVmaW5lTG9jYWxlKCJjcyIse21vbnRoczpfLG1vbnRoc1Nob3J0OnAsbW9udGhzUmVnZXg6dyxtb250aHNTaG9ydFJlZ2V4OncsbW9udGhzU3RyaWN0UmVnZXg6L14obGVkZW58bGVkbmF8XHhmYW5vcmF8XHhmYW5vcnxiXHUw'@; put 'MTU5ZXplbnxiXHUwMTU5ZXpuYXxkdWJlbnxkdWJuYXxrdlx1MDExYnRlbnxrdlx1MDExYnRuYXxcdTAxMGRlcnZlbmVjfFx1MDEwZGVydmVuY2V8XHUwMTBkZXJ2ZW58XHUwMTBkZXJ2bmF8c3JwZW58c3JwbmF8elx4ZTFcdTAxNTlceGVkfFx1MDE1OVx4ZWRqZW58XHUwMTU5XHhlZGpuYXxs'@; put 'aXN0b3BhZHV8bGlzdG9wYWR8cHJvc2luZWN8cHJvc2luY2UpL2ksbW9udGhzU2hvcnRTdHJpY3RSZWdleDovXihsZWR8XHhmYW5vfGJcdTAxNTllfGR1Ynxrdlx1MDExYnxcdTAxMGR2bnxcdTAxMGR2Y3xzcnB8elx4ZTFcdTAxNTl8XHUwMTU5XHhlZGp8bGlzfHBybykvaSxtb250aHNQYXJz'@; put 'ZTpOLGxvbmdNb250aHNQYXJzZTpOLHNob3J0TW9udGhzUGFyc2U6Tix3ZWVrZGF5czoibmVkXHUwMTFibGVfcG9uZFx1MDExYmxceGVkX1x4ZmF0ZXJceGZkX3N0XHUwMTU5ZWRhX1x1MDEwZHR2cnRla19wXHhlMXRla19zb2JvdGEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoibmVfcG9f'@; put 'XHhmYXRfc3RfXHUwMTBkdF9wXHhlMV9zbyIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoibmVfcG9fXHhmYXRfc3RfXHUwMTBkdF9wXHhlMV9zbyIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQuIE1NTU0gWVlZ'@; put 'WSIsTExMOiJELiBNTU1NIFlZWVkgSDptbSIsTExMTDoiZGRkZCBELiBNTU1NIFlZWVkgSDptbSIsbDoiRC4gTS4gWVlZWSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbZG5lcyB2XSBMVCIsbmV4dERheToiW3pceGVkdHJhIHZdIExUIixuZXh0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRh'@; put 'eSgpKXtjYXNlIDA6cmV0dXJuIlt2IG5lZFx1MDExYmxpIHZdIExUIjtjYXNlIDE6Y2FzZSAyOnJldHVybiJbdl0gZGRkZCBbdl0gTFQiO2Nhc2UgMzpyZXR1cm4iW3ZlIHN0XHUwMTU5ZWR1IHZdIExUIjtjYXNlIDQ6cmV0dXJuIlt2ZSBcdTAxMGR0dnJ0ZWsgdl0gTFQiO2Nhc2UgNTpyZXR1'@; put 'cm4iW3YgcFx4ZTF0ZWsgdl0gTFQiO2Nhc2UgNjpyZXR1cm4iW3Ygc29ib3R1IHZdIExUIn19LGxhc3REYXk6Ilt2XHUwMTBkZXJhIHZdIExUIixsYXN0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6cmV0dXJuIlttaW51bG91IG5lZFx1MDExYmxpIHZdIExUIjtj'@; put 'YXNlIDE6Y2FzZSAyOnJldHVybiJbbWludWxceGU5XSBkZGRkIFt2XSBMVCI7Y2FzZSAzOnJldHVybiJbbWludWxvdSBzdFx1MDE1OWVkdSB2XSBMVCI7Y2FzZSA0OmNhc2UgNTpyZXR1cm4iW21pbnVsXHhmZF0gZGRkZCBbdl0gTFQiO2Nhc2UgNjpyZXR1cm4iW21pbnVsb3Ugc29ib3R1IHZd'@; put 'IExUIn19LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6InphICVzIixwYXN0OiJwXHUwMTU5ZWQgJXMiLHM6SCxzczpILG06SCxtbTpILGg6SCxoaDpILGQ6SCxkZDpILE06SCxNTTpILHk6SCx5eTpIfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGlu'@; put 'YWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KGIoOTc1ODYpKX0sNjY2NjY6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO0QuZGVmaW5lTG9jYWxlKCJjdiIse21vbnRoczoiXHUwNDNhXHUwNGQxXHUwNDQwXHUwNDNiXHUwNDMwXHUwNDQ3X1x1MDQzZFx1'@; put 'MDQzMFx1MDQ0MFx1MDRkMVx1MDQ0MV9cdTA0M2ZcdTA0NDNcdTA0NDhfXHUwNDMwXHUwNDNhXHUwNDMwX1x1MDQzY1x1MDQzMFx1MDQzOV9cdTA0YWJcdTA0ZDdcdTA0NDBcdTA0NDJcdTA0M2NcdTA0MzVfXHUwNDQzXHUwNDQyXHUwNGQxX1x1MDRhYlx1MDQ0M1x1MDQ0MFx1MDQzYlx1MDQz'@; put 'MF9cdTA0MzBcdTA0MzJcdTA0ZDFcdTA0M2RfXHUwNDRlXHUwNDNmXHUwNDMwX1x1MDQ0N1x1MDRmM1x1MDQzYV9cdTA0NDBcdTA0MzBcdTA0NDhcdTA0NDJcdTA0MzBcdTA0MzIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MDQzYVx1MDRkMVx1MDQ0MF9cdTA0M2RcdTA0MzBcdTA0NDBf'@; put 'XHUwNDNmXHUwNDQzXHUwNDQ4X1x1MDQzMFx1MDQzYVx1MDQzMF9cdTA0M2NcdTA0MzBcdTA0MzlfXHUwNGFiXHUwNGQ3XHUwNDQwX1x1MDQ0M1x1MDQ0Mlx1MDRkMV9cdTA0YWJcdTA0NDNcdTA0NDBfXHUwNDMwXHUwNDMyXHUwNDNkX1x1MDQ0ZVx1MDQzZlx1MDQzMF9cdTA0NDdcdTA0ZjNc'@; put 'dTA0M2FfXHUwNDQwXHUwNDMwXHUwNDQ4Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTA0MzJcdTA0NGJcdTA0NDBcdTA0NDFcdTA0MzBcdTA0NDBcdTA0M2RcdTA0MzhcdTA0M2FcdTA0NDNcdTA0M2RfXHUwNDQyXHUwNDQzXHUwNDNkXHUwNDQyXHUwNDM4XHUwNDNhXHUwNDQzXHUwNDNkX1x1'@; put 'MDQ0Ylx1MDQ0Mlx1MDQzYlx1MDQzMFx1MDQ0MFx1MDQzOFx1MDQzYVx1MDQ0M1x1MDQzZF9cdTA0NGVcdTA0M2RcdTA0M2FcdTA0NDNcdTA0M2RfXHUwNDNhXHUwNGQ3XHUwNGFiXHUwNDNkXHUwNDM1XHUwNDQwXHUwNDNkXHUwNDM4XHUwNDNhXHUwNDQzXHUwNDNkX1x1MDQ0ZFx1MDQ0MFx1'@; put 'MDQzZFx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZF9cdTA0NDhcdTA0ZDFcdTA0M2NcdTA0MzBcdTA0NDJcdTA0M2FcdTA0NDNcdTA0M2QiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNDMyXHUwNDRiXHUwNDQwX1x1MDQ0Mlx1MDQ0M1x1MDQzZF9cdTA0NGJcdTA0NDJcdTA0M2JfXHUw'@; put 'NDRlXHUwNDNkX1x1MDQzYVx1MDRkN1x1MDRhYl9cdTA0NGRcdTA0NDBcdTA0M2RfXHUwNDQ4XHUwNGQxXHUwNDNjIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA0MzJcdTA0NDBfXHUwNDQyXHUwNDNkX1x1MDQ0Ylx1MDQ0Ml9cdTA0NGVcdTA0M2RfXHUwNDNhXHUwNGFiX1x1MDQ0ZFx1'@; put 'MDQ0MF9cdTA0NDhcdTA0M2MiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQtTU0tWVlZWSIsTEw6IllZWVkgW1x1MDRhYlx1MDQ0M1x1MDQzYlx1MDQ0NVx1MDQzOF0gTU1NTSBbXHUwNDQzXHUwNDM5XHUwNGQxXHUwNDQ1XHUwNGQ3'@; put 'XHUwNDNkXSBEWy1cdTA0M2NcdTA0ZDdcdTA0NDhcdTA0ZDddIixMTEw6IllZWVkgW1x1MDRhYlx1MDQ0M1x1MDQzYlx1MDQ0NVx1MDQzOF0gTU1NTSBbXHUwNDQzXHUwNDM5XHUwNGQxXHUwNDQ1XHUwNGQ3XHUwNDNkXSBEWy1cdTA0M2NcdTA0ZDdcdTA0NDhcdTA0ZDddLCBISDptbSIsTExM'@; put 'TDoiZGRkZCwgWVlZWSBbXHUwNGFiXHUwNDQzXHUwNDNiXHUwNDQ1XHUwNDM4XSBNTU1NIFtcdTA0NDNcdTA0MzlcdTA0ZDFcdTA0NDVcdTA0ZDdcdTA0M2RdIERbLVx1MDQzY1x1MDRkN1x1MDQ0OFx1MDRkN10sIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA0MWZcdTA0MzBcdTA0'@; put 'NGZcdTA0M2RdIExUIFtcdTA0NDFcdTA0MzVcdTA0NDVcdTA0MzVcdTA0NDJcdTA0NDBcdTA0MzVdIixuZXh0RGF5OiJbXHUwNDJiXHUwNDQwXHUwNDMwXHUwNDNkXSBMVCBbXHUwNDQxXHUwNDM1XHUwNDQ1XHUwNDM1XHUwNDQyXHUwNDQwXHUwNDM1XSIsbGFzdERheToiW1x1MDRkNlx1MDQz'@; put 'ZFx1MDQzNVx1MDQ0MF0gTFQgW1x1MDQ0MVx1MDQzNVx1MDQ0NVx1MDQzNVx1MDQ0Mlx1MDQ0MFx1MDQzNV0iLG5leHRXZWVrOiJbXHUwNGFhXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDQxXSBkZGRkIExUIFtcdTA0NDFcdTA0MzVcdTA0NDVcdTA0MzVcdTA0NDJcdTA0NDBcdTA0MzVdIixsYXN0'@; put 'V2VlazoiW1x1MDQxOFx1MDQ0MFx1MDQ0Mlx1MDQzZFx1MDRkN10gZGRkZCBMVCBbXHUwNDQxXHUwNDM1XHUwNDQ1XHUwNDM1XHUwNDQyXHUwNDQwXHUwNDM1XSIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTpmdW5jdGlvbihwKXtyZXR1cm4gcCsoL1x1MDQ0MVx1MDQzNVx1'@; put 'MDQ0NVx1MDQzNVx1MDQ0MiQvaS5leGVjKHApPyJcdTA0NDBcdTA0MzVcdTA0M2QiOi9cdTA0YWJcdTA0NDNcdTA0M2IkL2kuZXhlYyhwKT8iXHUwNDQyXHUwNDMwXHUwNDNkIjoiXHUwNDQwXHUwNDMwXHUwNDNkIil9LHBhc3Q6IiVzIFx1MDQzYVx1MDQzMFx1MDQ0Zlx1MDQzYlx1MDQzYlx1'@; put 'MDQzMCIsczoiXHUwNDNmXHUwNGQ3XHUwNDQwLVx1MDQzOFx1MDQzYSBcdTA0YWJcdTA0MzVcdTA0M2FcdTA0M2FcdTA0NDNcdTA0M2RcdTA0NDIiLHNzOiIlZCBcdTA0YWJcdTA0MzVcdTA0M2FcdTA0M2FcdTA0NDNcdTA0M2RcdTA0NDIiLG06Ilx1MDQzZlx1MDRkN1x1MDQ0MCBcdTA0M2Nc'@; put 'dTA0MzhcdTA0M2RcdTA0NDNcdTA0NDIiLG1tOiIlZCBcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDIiLGg6Ilx1MDQzZlx1MDRkN1x1MDQ0MCBcdTA0NDFcdTA0MzVcdTA0NDVcdTA0MzVcdTA0NDIiLGhoOiIlZCBcdTA0NDFcdTA0MzVcdTA0NDVcdTA0MzVcdTA0NDIiLGQ6Ilx1MDQz'@; put 'Zlx1MDRkN1x1MDQ0MCBcdTA0M2FcdTA0NDNcdTA0M2QiLGRkOiIlZCBcdTA0M2FcdTA0NDNcdTA0M2QiLE06Ilx1MDQzZlx1MDRkN1x1MDQ0MCBcdTA0NDNcdTA0MzlcdTA0ZDFcdTA0NDUiLE1NOiIlZCBcdTA0NDNcdTA0MzlcdTA0ZDFcdTA0NDUiLHk6Ilx1MDQzZlx1MDRkN1x1MDQ0MCBc'@; put 'dTA0YWJcdTA0NDNcdTA0M2IiLHl5OiIlZCBcdTA0YWJcdTA0NDNcdTA0M2IifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9LVx1MDQzY1x1MDRkN1x1MDQ0OC8sb3JkaW5hbDoiJWQtXHUwNDNjXHUwNGQ3XHUwNDQ4Iix3ZWVrOntkb3c6MSxkb3k6N319KX0oYig5NzU4NikpfSw1'@; put 'NTE2MzpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7RC5kZWZpbmVMb2NhbGUoImN5Iix7bW9udGhzOiJJb25hd3JfQ2h3ZWZyb3JfTWF3cnRoX0VicmlsbF9NYWlfTWVoZWZpbl9Hb3JmZmVubmFmX0F3c3RfTWVkaV9IeWRyZWZfVGFjaHdlZGRfUmhhZ2Z5ciIu'@; put 'c3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSW9uX0Nod2VfTWF3X0Vicl9NYWlfTWVoX0dvcl9Bd3NfTWVkX0h5ZF9UYWNoX1JoYWciLnNwbGl0KCJfIiksd2Vla2RheXM6IkR5ZGQgU3VsX0R5ZGQgTGx1bl9EeWRkIE1hd3J0aF9EeWRkIE1lcmNoZXJfRHlkZCBJYXVfRHlkZCBHd2VuZXJfRHlk'@; put 'ZCBTYWR3cm4iLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiU3VsX0xsdW5fTWF3X01lcl9JYXVfR3dlX1NhZCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiU3VfTGxfTWFfTWVfSWFfR3dfU2EiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoi'@; put 'SEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW0hlZGRpdyBhbV0gTFQiLG5leHREYXk6IltZZm9yeSBhbV0g'@; put 'TFQiLG5leHRXZWVrOiJkZGRkIFthbV0gTFQiLGxhc3REYXk6IltEZG9lIGFtXSBMVCIsbGFzdFdlZWs6ImRkZGQgW2Rpd2V0aGFmIGFtXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToibWV3biAlcyIscGFzdDoiJXMgeW4gXHhmNGwiLHM6InljaHlkaWcgZWlsaWFk'@; put 'YXUiLHNzOiIlZCBlaWxpYWQiLG06Im11bnVkIixtbToiJWQgbXVudWQiLGg6ImF3ciIsaGg6IiVkIGF3ciIsZDoiZGl3cm5vZCIsZGQ6IiVkIGRpd3Jub2QiLE06Im1pcyIsTU06IiVkIG1pcyIseToiYmx3eWRkeW4iLHl5OiIlZCBmbHluZWRkIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTov'@; put 'XGR7MSwyfShmZWR8YWlufGFmfGlsfHlkZHxlZHxlZykvLG9yZGluYWw6ZnVuY3Rpb24ocCl7dmFyIHc9IiI7cmV0dXJuIHA+MjA/dz00MD09PXB8fDUwPT09cHx8NjA9PT1wfHw4MD09PXB8fDEwMD09PXA/ImZlZCI6ImFpbiI6cD4wJiYodz1bIiIsImFmIiwiaWwiLCJ5ZGQiLCJ5ZGQiLCJl'@; put 'ZCIsImVkIiwiZWQiLCJmZWQiLCJmZWQiLCJmZWQiLCJlZyIsImZlZCIsImVnIiwiZWciLCJmZWQiLCJlZyIsImVnIiwiZmVkIiwiZWciLCJmZWQiXVtwXSkscCt3fSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oYig5NzU4NikpfSw4NzM2MDpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsi'@; put 'dXNlIHN0cmljdCI7RC5kZWZpbmVMb2NhbGUoImRhIix7bW9udGhzOiJqYW51YXJfZmVicnVhcl9tYXJ0c19hcHJpbF9tYWpfanVuaV9qdWxpX2F1Z3VzdF9zZXB0ZW1iZXJfb2t0b2Jlcl9ub3ZlbWJlcl9kZWNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiamFuX2ZlYl9tYXJfYXBy'@; put 'X21hal9qdW5fanVsX2F1Z19zZXBfb2t0X25vdl9kZWMiLnNwbGl0KCJfIiksd2Vla2RheXM6InNceGY4bmRhZ19tYW5kYWdfdGlyc2RhZ19vbnNkYWdfdG9yc2RhZ19mcmVkYWdfbFx4ZjhyZGFnIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6InNceGY4bl9tYW5fdGlyX29uc190b3JfZnJl'@; put 'X2xceGY4ciIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoic1x4ZjhfbWFfdGlfb25fdG9fZnJfbFx4ZjgiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQuIE1NTU0gWVlZWSIsTExMOiJELiBNTU1NIFlZWVkg'@; put 'SEg6bW0iLExMTEw6ImRkZGQgW2QuXSBELiBNTU1NIFlZWVkgW2tsLl0gSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2kgZGFnIGtsLl0gTFQiLG5leHREYXk6IltpIG1vcmdlbiBrbC5dIExUIixuZXh0V2VlazoicFx4ZTUgZGRkZCBba2wuXSBMVCIsbGFzdERheToiW2kgZ1x4ZTVyIGts'@; put 'Ll0gTFQiLGxhc3RXZWVrOiJbaV0gZGRkZFtzIGtsLl0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Im9tICVzIixwYXN0OiIlcyBzaWRlbiIsczoiZlx4ZTUgc2VrdW5kZXIiLHNzOiIlZCBzZWt1bmRlciIsbToiZXQgbWludXQiLG1tOiIlZCBtaW51dHRlciIsaDoi'@; put 'ZW4gdGltZSIsaGg6IiVkIHRpbWVyIixkOiJlbiBkYWciLGRkOiIlZCBkYWdlIixNOiJlbiBtXHhlNW5lZCIsTU06IiVkIG1ceGU1bmVkZXIiLHk6ImV0IFx4ZTVyIix5eToiJWQgXHhlNXIifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7'@; put 'ZG93OjEsZG95OjR9fSl9KGIoOTc1ODYpKX0sNDMyNDg6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIF8oTix3LEYsSCl7dmFyIFI9e206WyJlaW5lIE1pbnV0ZSIsImVpbmVyIE1pbnV0ZSJdLGg6WyJlaW5lIFN0dW5kZSIsImVpbmVyIFN0dW5k'@; put 'ZSJdLGQ6WyJlaW4gVGFnIiwiZWluZW0gVGFnIl0sZGQ6W04rIiBUYWdlIixOKyIgVGFnZW4iXSx3OlsiZWluZSBXb2NoZSIsImVpbmVyIFdvY2hlIl0sTTpbImVpbiBNb25hdCIsImVpbmVtIE1vbmF0Il0sTU06W04rIiBNb25hdGUiLE4rIiBNb25hdGVuIl0seTpbImVpbiBKYWhyIiwiZWlu'@; put 'ZW0gSmFociJdLHl5OltOKyIgSmFocmUiLE4rIiBKYWhyZW4iXX07cmV0dXJuIHc/UltGXVswXTpSW0ZdWzFdfUQuZGVmaW5lTG9jYWxlKCJkZS1hdCIse21vbnRoczoiSlx4ZTRubmVyX0ZlYnJ1YXJfTVx4ZTRyel9BcHJpbF9NYWlfSnVuaV9KdWxpX0F1Z3VzdF9TZXB0ZW1iZXJfT2t0b2Jl'@; put 'cl9Ob3ZlbWJlcl9EZXplbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSlx4ZTRuLl9GZWIuX01ceGU0cnpfQXByLl9NYWlfSnVuaV9KdWxpX0F1Zy5fU2VwLl9Pa3QuX05vdi5fRGV6LiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJTb25udGFnX01vbnRh'@; put 'Z19EaWVuc3RhZ19NaXR0d29jaF9Eb25uZXJzdGFnX0ZyZWl0YWdfU2Ftc3RhZyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJTby5fTW8uX0RpLl9NaS5fRG8uX0ZyLl9TYS4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlNvX01vX0RpX01pX0RvX0ZyX1NhIi5zcGxpdCgiXyIpLHdlZWtk'@; put 'YXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRC4gTU1NTSBZWVlZIixMTEw6IkQuIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRC4gTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVE'@; put 'YXk6IltoZXV0ZSB1bV0gTFQgW1Vocl0iLHNhbWVFbHNlOiJMIixuZXh0RGF5OiJbbW9yZ2VuIHVtXSBMVCBbVWhyXSIsbmV4dFdlZWs6ImRkZGQgW3VtXSBMVCBbVWhyXSIsbGFzdERheToiW2dlc3Rlcm4gdW1dIExUIFtVaHJdIixsYXN0V2VlazoiW2xldHp0ZW5dIGRkZGQgW3VtXSBMVCBb'@; put 'VWhyXSJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJpbiAlcyIscGFzdDoidm9yICVzIixzOiJlaW4gcGFhciBTZWt1bmRlbiIsc3M6IiVkIFNla3VuZGVuIixtOl8sbW06IiVkIE1pbnV0ZW4iLGg6XyxoaDoiJWQgU3R1bmRlbiIsZDpfLGRkOl8sdzpfLHd3OiIlZCBXb2NoZW4iLE06XyxNTTpf'@; put 'LHk6Xyx5eTpffSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KGIoOTc1ODYpKX0sODMyMjI6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIF8oTix3LEYsSCl7dmFy'@; put 'IFI9e206WyJlaW5lIE1pbnV0ZSIsImVpbmVyIE1pbnV0ZSJdLGg6WyJlaW5lIFN0dW5kZSIsImVpbmVyIFN0dW5kZSJdLGQ6WyJlaW4gVGFnIiwiZWluZW0gVGFnIl0sZGQ6W04rIiBUYWdlIixOKyIgVGFnZW4iXSx3OlsiZWluZSBXb2NoZSIsImVpbmVyIFdvY2hlIl0sTTpbImVpbiBNb25h'@; put 'dCIsImVpbmVtIE1vbmF0Il0sTU06W04rIiBNb25hdGUiLE4rIiBNb25hdGVuIl0seTpbImVpbiBKYWhyIiwiZWluZW0gSmFociJdLHl5OltOKyIgSmFocmUiLE4rIiBKYWhyZW4iXX07cmV0dXJuIHc/UltGXVswXTpSW0ZdWzFdfUQuZGVmaW5lTG9jYWxlKCJkZS1jaCIse21vbnRoczoiSmFu'@; put 'dWFyX0ZlYnJ1YXJfTVx4ZTRyel9BcHJpbF9NYWlfSnVuaV9KdWxpX0F1Z3VzdF9TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3ZlbWJlcl9EZXplbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFuLl9GZWIuX01ceGU0cnpfQXByLl9NYWlfSnVuaV9KdWxpX0F1Zy5fU2VwLl9Pa3QuX05vdi5f'@; put 'RGV6LiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJTb25udGFnX01vbnRhZ19EaWVuc3RhZ19NaXR0d29jaF9Eb25uZXJzdGFnX0ZyZWl0YWdfU2Ftc3RhZyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJTb19Nb19EaV9NaV9Eb19Gcl9TYSIuc3BsaXQoIl8i'@; put 'KSx3ZWVrZGF5c01pbjoiU29fTW9fRGlfTWlfRG9fRnJfU2EiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJELiBNTU1NIFlZWVkiLExMTDoiRC4gTU1NTSBZWVlZIEhI'@; put 'Om1tIixMTExMOiJkZGRkLCBELiBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2hldXRlIHVtXSBMVCBbVWhyXSIsc2FtZUVsc2U6IkwiLG5leHREYXk6Ilttb3JnZW4gdW1dIExUIFtVaHJdIixuZXh0V2VlazoiZGRkZCBbdW1dIExUIFtVaHJdIixsYXN0RGF5OiJbZ2Vz'@; put 'dGVybiB1bV0gTFQgW1Vocl0iLGxhc3RXZWVrOiJbbGV0enRlbl0gZGRkZCBbdW1dIExUIFtVaHJdIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImluICVzIixwYXN0OiJ2b3IgJXMiLHM6ImVpbiBwYWFyIFNla3VuZGVuIixzczoiJWQgU2VrdW5kZW4iLG06XyxtbToiJWQgTWludXRlbiIsaDpf'@; put 'LGhoOiIlZCBTdHVuZGVuIixkOl8sZGQ6Xyx3Ol8sd3c6IiVkIFdvY2hlbiIsTTpfLE1NOl8seTpfLHl5Ol99LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oYig5NzU4NikpfSw0NTkzMjpmdW5jdGlvbihjZSxK'@; put 'LGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gXyhOLHcsRixIKXt2YXIgUj17bTpbImVpbmUgTWludXRlIiwiZWluZXIgTWludXRlIl0saDpbImVpbmUgU3R1bmRlIiwiZWluZXIgU3R1bmRlIl0sZDpbImVpbiBUYWciLCJlaW5lbSBUYWciXSxkZDpbTisiIFRhZ2UiLE4r'@; put 'IiBUYWdlbiJdLHc6WyJlaW5lIFdvY2hlIiwiZWluZXIgV29jaGUiXSxNOlsiZWluIE1vbmF0IiwiZWluZW0gTW9uYXQiXSxNTTpbTisiIE1vbmF0ZSIsTisiIE1vbmF0ZW4iXSx5OlsiZWluIEphaHIiLCJlaW5lbSBKYWhyIl0seXk6W04rIiBKYWhyZSIsTisiIEphaHJlbiJdfTtyZXR1cm4g'@; put 'dz9SW0ZdWzBdOlJbRl1bMV19RC5kZWZpbmVMb2NhbGUoImRlIix7bW9udGhzOiJKYW51YXJfRmVicnVhcl9NXHhlNHJ6X0FwcmlsX01haV9KdW5pX0p1bGlfQXVndXN0X1NlcHRlbWJlcl9Pa3RvYmVyX05vdmVtYmVyX0RlemVtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW4uX0Zl'@; put 'Yi5fTVx4ZTRyel9BcHIuX01haV9KdW5pX0p1bGlfQXVnLl9TZXAuX09rdC5fTm92Ll9EZXouIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6IlNvbm50YWdfTW9udGFnX0RpZW5zdGFnX01pdHR3b2NoX0Rvbm5lcnN0YWdfRnJlaXRhZ19TYW1zdGFnIi5zcGxpdCgi'@; put 'XyIpLHdlZWtkYXlzU2hvcnQ6IlNvLl9Nby5fRGkuX01pLl9Eby5fRnIuX1NhLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiU29fTW9fRGlfTWlfRG9fRnJfU2EiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06'@; put 'c3MiLEw6IkRELk1NLllZWVkiLExMOiJELiBNTU1NIFlZWVkiLExMTDoiRC4gTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBELiBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2hldXRlIHVtXSBMVCBbVWhyXSIsc2FtZUVsc2U6IkwiLG5leHREYXk6Ilttb3JnZW4g'@; put 'dW1dIExUIFtVaHJdIixuZXh0V2VlazoiZGRkZCBbdW1dIExUIFtVaHJdIixsYXN0RGF5OiJbZ2VzdGVybiB1bV0gTFQgW1Vocl0iLGxhc3RXZWVrOiJbbGV0enRlbl0gZGRkZCBbdW1dIExUIFtVaHJdIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImluICVzIixwYXN0OiJ2b3IgJXMiLHM6ImVp'@; put 'biBwYWFyIFNla3VuZGVuIixzczoiJWQgU2VrdW5kZW4iLG06XyxtbToiJWQgTWludXRlbiIsaDpfLGhoOiIlZCBTdHVuZGVuIixkOl8sZGQ6Xyx3Ol8sd3c6IiVkIFdvY2hlbiIsTTpfLE1NOl8seTpfLHl5Ol99LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoi'@; put 'JWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oYig5NzU4NikpfSw2NDA1OmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0Ijt2YXIgXz1bIlx1MDc5Nlx1MDdhY1x1MDc4Mlx1MDdhYVx1MDc4N1x1MDdhNlx1MDc4M1x1MDdhOSIsIlx1MDc4YVx1MDdhY1x1MDc4NFx1'@; put 'MDdiMFx1MDc4M1x1MDdhYVx1MDc4N1x1MDdhNlx1MDc4M1x1MDdhOSIsIlx1MDc4OVx1MDdhN1x1MDc4M1x1MDdhOFx1MDc5N1x1MDdhYSIsIlx1MDc4N1x1MDdhZFx1MDc5NVx1MDdiMFx1MDc4M1x1MDdhOVx1MDc4ZFx1MDdhYSIsIlx1MDc4OVx1MDdhZCIsIlx1MDc5Nlx1MDdhYlx1MDc4'@; put 'Mlx1MDdiMCIsIlx1MDc5Nlx1MDdhYVx1MDc4ZFx1MDdhNlx1MDc4N1x1MDdhOCIsIlx1MDc4N1x1MDdhZlx1MDc4ZVx1MDdhNlx1MDc5MFx1MDdiMFx1MDc5M1x1MDdhYSIsIlx1MDc5MFx1MDdhY1x1MDc5NVx1MDdiMFx1MDc5M1x1MDdhY1x1MDc4OVx1MDdiMFx1MDc4NFx1MDdhNlx1MDc4'@; put 'M1x1MDdhYSIsIlx1MDc4N1x1MDdhZVx1MDc4Nlx1MDdiMFx1MDc5M1x1MDdhZlx1MDc4NFx1MDdhNlx1MDc4M1x1MDdhYSIsIlx1MDc4Mlx1MDdhZVx1MDc4OFx1MDdhY1x1MDc4OVx1MDdiMFx1MDc4NFx1MDdhNlx1MDc4M1x1MDdhYSIsIlx1MDc5MVx1MDdhOFx1MDc5MFx1MDdhY1x1MDc4'@; put 'OVx1MDdiMFx1MDc4NFx1MDdhNlx1MDc4M1x1MDdhYSJdLHA9WyJcdTA3ODdcdTA3YTdcdTA3OGJcdTA3YThcdTA3ODdcdTA3YjBcdTA3OGNcdTA3YTYiLCJcdTA3ODBcdTA3YWZcdTA3ODlcdTA3YTYiLCJcdTA3ODdcdTA3YTZcdTA3ODJcdTA3YjBcdTA3OGVcdTA3YTdcdTA3ODNcdTA3YTYi'@; put 'LCJcdTA3ODRcdTA3YWFcdTA3OGJcdTA3YTYiLCJcdTA3ODRcdTA3YWFcdTA3ODNcdTA3YTdcdTA3OTBcdTA3YjBcdTA3OGFcdTA3YTZcdTA3OGNcdTA3YTgiLCJcdTA3ODBcdTA3YWFcdTA3ODZcdTA3YWFcdTA3ODNcdTA3YWEiLCJcdTA3ODBcdTA3YWVcdTA3ODJcdTA3YThcdTA3ODBcdTA3'@; put 'YThcdTA3ODNcdTA3YWEiXTtELmRlZmluZUxvY2FsZSgiZHYiLHttb250aHM6Xyxtb250aHNTaG9ydDpfLHdlZWtkYXlzOnAsd2Vla2RheXNTaG9ydDpwLHdlZWtkYXlzTWluOiJcdTA3ODdcdTA3YTdcdTA3OGJcdTA3YThfXHUwNzgwXHUwN2FmXHUwNzg5XHUwN2E2X1x1MDc4N1x1MDdhNlx1'@; put 'MDc4Mlx1MDdiMF9cdTA3ODRcdTA3YWFcdTA3OGJcdTA3YTZfXHUwNzg0XHUwN2FhXHUwNzgzXHUwN2E3X1x1MDc4MFx1MDdhYVx1MDc4Nlx1MDdhYV9cdTA3ODBcdTA3YWVcdTA3ODJcdTA3YTgiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIs'@; put 'TDoiRC9NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCBEIE1NTU0gWVlZWSBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1MDc4OVx1MDc4NnxcdTA3ODlcdTA3OGEvLGlzUE06ZnVuY3Rpb24odyl7cmV0dXJuIlx1MDc4OVx1MDc4YSI9'@; put 'PT13fSxtZXJpZGllbTpmdW5jdGlvbih3LEYsSCl7cmV0dXJuIHc8MTI/Ilx1MDc4OVx1MDc4NiI6Ilx1MDc4OVx1MDc4YSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNzg5XHUwN2E4XHUwNzg3XHUwN2E2XHUwNzhiXHUwN2FhXSBMVCIsbmV4dERheToiW1x1MDc4OVx1MDdhN1x1MDc4Ylx1'@; put 'MDdhNlx1MDc4OVx1MDdhN10gTFQiLG5leHRXZWVrOiJkZGRkIExUIixsYXN0RGF5OiJbXHUwNzg3XHUwN2E4XHUwNzg3XHUwN2IwXHUwNzk0XHUwN2FjXSBMVCIsbGFzdFdlZWs6IltcdTA3OGFcdTA3YTdcdTA3ODdcdTA3YThcdTA3OGNcdTA3YWFcdTA3ODhcdTA3YThdIGRkZGQgTFQiLHNh'@; put 'bWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDc4Y1x1MDdhY1x1MDc4M1x1MDdhZFx1MDc4ZVx1MDdhNlx1MDc4N1x1MDdhOCAlcyIscGFzdDoiXHUwNzg2XHUwN2FhXHUwNzgzXHUwN2E4XHUwNzgyXHUwN2IwICVzIixzOiJcdTA3OTBcdTA3YThcdTA3ODZcdTA3YWFcdTA3'@; put 'ODJcdTA3YjBcdTA3OGNcdTA3YWFcdTA3ODZcdTA3YWVcdTA3ODVcdTA3YWNcdTA3ODdcdTA3YjAiLHNzOiJkJSBcdTA3OTBcdTA3YThcdTA3ODZcdTA3YWFcdTA3ODJcdTA3YjBcdTA3OGNcdTA3YWEiLG06Ilx1MDc4OVx1MDdhOFx1MDc4Mlx1MDdhOFx1MDc5M1x1MDdhY1x1MDc4N1x1MDdi'@; put 'MCIsbW06Ilx1MDc4OVx1MDdhOFx1MDc4Mlx1MDdhOFx1MDc5M1x1MDdhYSAlZCIsaDoiXHUwNzhlXHUwN2E2XHUwNzkxXHUwN2E4XHUwNzg3XHUwN2E4XHUwNzgzXHUwN2FjXHUwNzg3XHUwN2IwIixoaDoiXHUwNzhlXHUwN2E2XHUwNzkxXHUwN2E4XHUwNzg3XHUwN2E4XHUwNzgzXHUwN2Fh'@; put 'ICVkIixkOiJcdTA3OGJcdTA3YWFcdTA3ODhcdTA3YTZcdTA3ODBcdTA3YWNcdTA3ODdcdTA3YjAiLGRkOiJcdTA3OGJcdTA3YWFcdTA3ODhcdTA3YTZcdTA3OTBcdTA3YjAgJWQiLE06Ilx1MDc4OVx1MDdhNlx1MDc4MFx1MDdhY1x1MDc4N1x1MDdiMCIsTU06Ilx1MDc4OVx1MDdhNlx1MDc5'@; put 'MFx1MDdiMCAlZCIseToiXHUwNzg3XHUwN2E2XHUwNzgwXHUwN2E2XHUwNzgzXHUwN2FjXHUwNzg3XHUwN2IwIix5eToiXHUwNzg3XHUwN2E2XHUwNzgwXHUwN2E2XHUwNzgzXHUwN2FhICVkIn0scHJlcGFyc2U6ZnVuY3Rpb24odyl7cmV0dXJuIHcucmVwbGFjZSgvXHUwNjBjL2csIiwiKX0s'@; put 'cG9zdGZvcm1hdDpmdW5jdGlvbih3KXtyZXR1cm4gdy5yZXBsYWNlKC8sL2csIlx1MDYwYyIpfSx3ZWVrOntkb3c6Nyxkb3k6MTJ9fSl9KGIoOTc1ODYpKX0sNjA3MTg6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO0QuZGVmaW5lTG9jYWxlKCJlbCIse21vbnRo'@; put 'c05vbWluYXRpdmVFbDoiXHUwMzk5XHUwM2IxXHUwM2JkXHUwM2JmXHUwM2M1XHUwM2FjXHUwM2MxXHUwM2I5XHUwM2JmXHUwM2MyX1x1MDNhNlx1MDNiNVx1MDNiMlx1MDNjMVx1MDNiZlx1MDNjNVx1MDNhY1x1MDNjMVx1MDNiOVx1MDNiZlx1MDNjMl9cdTAzOWNcdTAzYWNcdTAzYzFcdTAz'@; put 'YzRcdTAzYjlcdTAzYmZcdTAzYzJfXHUwMzkxXHUwM2MwXHUwM2MxXHUwM2FmXHUwM2JiXHUwM2I5XHUwM2JmXHUwM2MyX1x1MDM5Y1x1MDNhY1x1MDNiOVx1MDNiZlx1MDNjMl9cdTAzOTlcdTAzYmZcdTAzY2RcdTAzYmRcdTAzYjlcdTAzYmZcdTAzYzJfXHUwMzk5XHUwM2JmXHUwM2NkXHUw'@; put 'M2JiXHUwM2I5XHUwM2JmXHUwM2MyX1x1MDM5MVx1MDNjZFx1MDNiM1x1MDNiZlx1MDNjNVx1MDNjM1x1MDNjNFx1MDNiZlx1MDNjMl9cdTAzYTNcdTAzYjVcdTAzYzBcdTAzYzRcdTAzYWRcdTAzYmNcdTAzYjJcdTAzYzFcdTAzYjlcdTAzYmZcdTAzYzJfXHUwMzlmXHUwM2JhXHUwM2M0XHUw'@; put 'M2NlXHUwM2IyXHUwM2MxXHUwM2I5XHUwM2JmXHUwM2MyX1x1MDM5ZFx1MDNiZlx1MDNhZFx1MDNiY1x1MDNiMlx1MDNjMVx1MDNiOVx1MDNiZlx1MDNjMl9cdTAzOTRcdTAzYjVcdTAzYmFcdTAzYWRcdTAzYmNcdTAzYjJcdTAzYzFcdTAzYjlcdTAzYmZcdTAzYzIiLnNwbGl0KCJfIiksbW9u'@; put 'dGhzR2VuaXRpdmVFbDoiXHUwMzk5XHUwM2IxXHUwM2JkXHUwM2JmXHUwM2M1XHUwM2IxXHUwM2MxXHUwM2FmXHUwM2JmXHUwM2M1X1x1MDNhNlx1MDNiNVx1MDNiMlx1MDNjMVx1MDNiZlx1MDNjNVx1MDNiMVx1MDNjMVx1MDNhZlx1MDNiZlx1MDNjNV9cdTAzOWNcdTAzYjFcdTAzYzFcdTAz'@; put 'YzRcdTAzYWZcdTAzYmZcdTAzYzVfXHUwMzkxXHUwM2MwXHUwM2MxXHUwM2I5XHUwM2JiXHUwM2FmXHUwM2JmXHUwM2M1X1x1MDM5Y1x1MDNiMVx1MDM5MFx1MDNiZlx1MDNjNV9cdTAzOTlcdTAzYmZcdTAzYzVcdTAzYmRcdTAzYWZcdTAzYmZcdTAzYzVfXHUwMzk5XHUwM2JmXHUwM2M1XHUw'@; put 'M2JiXHUwM2FmXHUwM2JmXHUwM2M1X1x1MDM5MVx1MDNjNVx1MDNiM1x1MDNiZlx1MDNjZFx1MDNjM1x1MDNjNFx1MDNiZlx1MDNjNV9cdTAzYTNcdTAzYjVcdTAzYzBcdTAzYzRcdTAzYjVcdTAzYmNcdTAzYjJcdTAzYzFcdTAzYWZcdTAzYmZcdTAzYzVfXHUwMzlmXHUwM2JhXHUwM2M0XHUw'@; put 'M2M5XHUwM2IyXHUwM2MxXHUwM2FmXHUwM2JmXHUwM2M1X1x1MDM5ZFx1MDNiZlx1MDNiNVx1MDNiY1x1MDNiMlx1MDNjMVx1MDNhZlx1MDNiZlx1MDNjNV9cdTAzOTRcdTAzYjVcdTAzYmFcdTAzYjVcdTAzYmNcdTAzYjJcdTAzYzFcdTAzYWZcdTAzYmZcdTAzYzUiLnNwbGl0KCJfIiksbW9u'@; put 'dGhzOmZ1bmN0aW9uKE4sdyl7cmV0dXJuIE4/InN0cmluZyI9PXR5cGVvZiB3JiYvRC8udGVzdCh3LnN1YnN0cmluZygwLHcuaW5kZXhPZigiTU1NTSIpKSk/dGhpcy5fbW9udGhzR2VuaXRpdmVFbFtOLm1vbnRoKCldOnRoaXMuX21vbnRoc05vbWluYXRpdmVFbFtOLm1vbnRoKCldOnRoaXMu'@; put 'X21vbnRoc05vbWluYXRpdmVFbH0sbW9udGhzU2hvcnQ6Ilx1MDM5OVx1MDNiMVx1MDNiZF9cdTAzYTZcdTAzYjVcdTAzYjJfXHUwMzljXHUwM2IxXHUwM2MxX1x1MDM5MVx1MDNjMFx1MDNjMV9cdTAzOWNcdTAzYjFcdTAzY2FfXHUwMzk5XHUwM2JmXHUwM2M1XHUwM2JkX1x1MDM5OVx1MDNi'@; put 'Zlx1MDNjNVx1MDNiYl9cdTAzOTFcdTAzYzVcdTAzYjNfXHUwM2EzXHUwM2I1XHUwM2MwX1x1MDM5Zlx1MDNiYVx1MDNjNF9cdTAzOWRcdTAzYmZcdTAzYjVfXHUwMzk0XHUwM2I1XHUwM2JhIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTAzOWFcdTAzYzVcdTAzYzFcdTAzYjlcdTAzYjFcdTAz'@; put 'YmFcdTAzYWVfXHUwMzk0XHUwM2I1XHUwM2M1XHUwM2M0XHUwM2FkXHUwM2MxXHUwM2IxX1x1MDNhNFx1MDNjMVx1MDNhZlx1MDNjNFx1MDNiN19cdTAzYTRcdTAzYjVcdTAzYzRcdTAzYWNcdTAzYzFcdTAzYzRcdTAzYjdfXHUwM2EwXHUwM2FkXHUwM2JjXHUwM2MwXHUwM2M0XHUwM2I3X1x1'@; put 'MDNhMFx1MDNiMVx1MDNjMVx1MDNiMVx1MDNjM1x1MDNiYVx1MDNiNVx1MDNjNVx1MDNhZV9cdTAzYTNcdTAzYWNcdTAzYjJcdTAzYjJcdTAzYjFcdTAzYzRcdTAzYmYiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwMzlhXHUwM2M1XHUwM2MxX1x1MDM5NFx1MDNiNVx1MDNjNV9cdTAz'@; put 'YTRcdTAzYzFcdTAzYjlfXHUwM2E0XHUwM2I1XHUwM2M0X1x1MDNhMFx1MDNiNVx1MDNiY19cdTAzYTBcdTAzYjFcdTAzYzFfXHUwM2EzXHUwM2IxXHUwM2IyIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTAzOWFcdTAzYzVfXHUwMzk0XHUwM2I1X1x1MDNhNFx1MDNjMV9cdTAzYTRcdTAz'@; put 'YjVfXHUwM2EwXHUwM2I1X1x1MDNhMFx1MDNiMV9cdTAzYTNcdTAzYjEiLnNwbGl0KCJfIiksbWVyaWRpZW06ZnVuY3Rpb24oTix3LEYpe3JldHVybiBOPjExP0Y/Ilx1MDNiY1x1MDNiYyI6Ilx1MDM5Y1x1MDM5YyI6Rj8iXHUwM2MwXHUwM2JjIjoiXHUwM2EwXHUwMzljIn0saXNQTTpmdW5j'@; put 'dGlvbihOKXtyZXR1cm4iXHUwM2JjIj09PShOKyIiKS50b0xvd2VyQ2FzZSgpWzBdfSxtZXJpZGllbVBhcnNlOi9bXHUwM2EwXHUwMzljXVwuP1x1MDM5Yz9cLj8vaSxsb25nRGF0ZUZvcm1hdDp7TFQ6Img6bW0gQSIsTFRTOiJoOm1tOnNzIEEiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0g'@; put 'WVlZWSIsTExMOiJEIE1NTU0gWVlZWSBoOm1tIEEiLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIGg6bW0gQSJ9LGNhbGVuZGFyRWw6e3NhbWVEYXk6IltcdTAzYTNcdTAzYWVcdTAzYmNcdTAzYjVcdTAzYzFcdTAzYjEge31dIExUIixuZXh0RGF5OiJbXHUwMzkxXHUwM2NkXHUwM2MxXHUwM2I5'@; put 'XHUwM2JmIHt9XSBMVCIsbmV4dFdlZWs6ImRkZGQgW3t9XSBMVCIsbGFzdERheToiW1x1MDNhN1x1MDNiOFx1MDNiNVx1MDNjMiB7fV0gTFQiLGxhc3RXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIDY9PT10aGlzLmRheSgpPyJbXHUwM2M0XHUwM2JmIFx1MDNjMFx1MDNjMVx1MDNiZlx1MDNiN1x1'@; put 'MDNiM1x1MDNiZlx1MDNjZFx1MDNiY1x1MDNiNVx1MDNiZFx1MDNiZl0gZGRkZCBbe31dIExUIjoiW1x1MDNjNFx1MDNiN1x1MDNiZCBcdTAzYzBcdTAzYzFcdTAzYmZcdTAzYjdcdTAzYjNcdTAzYmZcdTAzY2RcdTAzYmNcdTAzYjVcdTAzYmRcdTAzYjddIGRkZGQgW3t9XSBMVCJ9LHNhbWVF'@; put 'bHNlOiJMIn0sY2FsZW5kYXI6ZnVuY3Rpb24oTix3KXt2YXIgRj10aGlzLl9jYWxlbmRhckVsW05dLEg9dyYmdy5ob3VycygpO3JldHVybiBmdW5jdGlvbiBfKE4pe3JldHVybiB0eXBlb2YgRnVuY3Rpb248InUiJiZOIGluc3RhbmNlb2YgRnVuY3Rpb258fCJbb2JqZWN0IEZ1bmN0aW9uXSI9'@; put 'PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoTil9KEYpJiYoRj1GLmFwcGx5KHcpKSxGLnJlcGxhY2UoInt9IixIJTEyPT0xPyJcdTAzYzNcdTAzYzRcdTAzYjciOiJcdTAzYzNcdTAzYzRcdTAzYjlcdTAzYzIiKX0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDNjM1x1MDNiNSAl'@; put 'cyIscGFzdDoiJXMgXHUwM2MwXHUwM2MxXHUwM2I5XHUwM2JkIixzOiJcdTAzYmJcdTAzYWZcdTAzYjNcdTAzYjEgXHUwM2I0XHUwM2I1XHUwM2M1XHUwM2M0XHUwM2I1XHUwM2MxXHUwM2NjXHUwM2JiXHUwM2I1XHUwM2MwXHUwM2M0XHUwM2IxIixzczoiJWQgXHUwM2I0XHUwM2I1XHUwM2M1'@; put 'XHUwM2M0XHUwM2I1XHUwM2MxXHUwM2NjXHUwM2JiXHUwM2I1XHUwM2MwXHUwM2M0XHUwM2IxIixtOiJcdTAzYWRcdTAzYmRcdTAzYjEgXHUwM2JiXHUwM2I1XHUwM2MwXHUwM2M0XHUwM2NjIixtbToiJWQgXHUwM2JiXHUwM2I1XHUwM2MwXHUwM2M0XHUwM2FjIixoOiJcdTAzYmNcdTAzYWZc'@; put 'dTAzYjEgXHUwM2NlXHUwM2MxXHUwM2IxIixoaDoiJWQgXHUwM2NlXHUwM2MxXHUwM2I1XHUwM2MyIixkOiJcdTAzYmNcdTAzYWZcdTAzYjEgXHUwM2JjXHUwM2FkXHUwM2MxXHUwM2IxIixkZDoiJWQgXHUwM2JjXHUwM2FkXHUwM2MxXHUwM2I1XHUwM2MyIixNOiJcdTAzYWRcdTAzYmRcdTAz'@; put 'YjFcdTAzYzIgXHUwM2JjXHUwM2FlXHUwM2JkXHUwM2IxXHUwM2MyIixNTToiJWQgXHUwM2JjXHUwM2FlXHUwM2JkXHUwM2I1XHUwM2MyIix5OiJcdTAzYWRcdTAzYmRcdTAzYjFcdTAzYzIgXHUwM2M3XHUwM2MxXHUwM2NjXHUwM2JkXHUwM2JmXHUwM2MyIix5eToiJWQgXHUwM2M3XHUwM2Mx'@; put 'XHUwM2NjXHUwM2JkXHUwM2I5XHUwM2IxIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVx1MDNiNy8sb3JkaW5hbDoiJWRcdTAzYjciLHdlZWs6e2RvdzoxLGRveTo0fX0pfShiKDk3NTg2KSl9LDM2MzE5OmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0'@; put 'IjtELmRlZmluZUxvY2FsZSgiZW4tYXUiLHttb250aHM6IkphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikphbl9GZWJfTWFyX0Fwcl9NYXlf'@; put 'SnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQiLnNw'@; put 'bGl0KCJfIiksd2Vla2RheXNNaW46IlN1X01vX1R1X1dlX1RoX0ZyX1NhIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiaDptbSBBIixMVFM6Img6bW06c3MgQSIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIGg6bW0gQSIsTExMTDoiZGRk'@; put 'ZCwgRCBNTU1NIFlZWVkgaDptbSBBIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltUb2RheSBhdF0gTFQiLG5leHREYXk6IltUb21vcnJvdyBhdF0gTFQiLG5leHRXZWVrOiJkZGRkIFthdF0gTFQiLGxhc3REYXk6IltZZXN0ZXJkYXkgYXRdIExUIixsYXN0V2VlazoiW0xhc3RdIGRkZGQgW2F0XSBM'@; put 'VCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiaW4gJXMiLHBhc3Q6IiVzIGFnbyIsczoiYSBmZXcgc2Vjb25kcyIsc3M6IiVkIHNlY29uZHMiLG06ImEgbWludXRlIixtbToiJWQgbWludXRlcyIsaDoiYW4gaG91ciIsaGg6IiVkIGhvdXJzIixkOiJhIGRheSIsZGQ6IiVk'@; put 'IGRheXMiLE06ImEgbW9udGgiLE1NOiIlZCBtb250aHMiLHk6ImEgeWVhciIseXk6IiVkIHllYXJzIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShzdHxuZHxyZHx0aCkvLG9yZGluYWw6ZnVuY3Rpb24ocCl7dmFyIE49cCUxMDtyZXR1cm4gcCsoMT09fn4ocCUxMDAvMTApPyJ0'@; put 'aCI6MT09PU4/InN0IjoyPT09Tj8ibmQiOjM9PT1OPyJyZCI6InRoIil9LHdlZWs6e2RvdzowLGRveTo0fX0pfShiKDk3NTg2KSl9LDgwNTk3OmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0IjtELmRlZmluZUxvY2FsZSgiZW4tY2EiLHttb250aHM6IkphbnVhcnlf'@; put 'RmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikphbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjIi5zcGxpdCgiXyIpLHdl'@; put 'ZWtkYXlzOiJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlN1X01vX1R1X1dlX1RoX0ZyX1Nh'@; put 'Ii5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiaDptbSBBIixMVFM6Img6bW06c3MgQSIsTDoiWVlZWS1NTS1ERCIsTEw6Ik1NTU0gRCwgWVlZWSIsTExMOiJNTU1NIEQsIFlZWVkgaDptbSBBIixMTExMOiJkZGRkLCBNTU1NIEQsIFlZWVkgaDptbSBBIn0sY2FsZW5kYXI6e3NhbWVE'@; put 'YXk6IltUb2RheSBhdF0gTFQiLG5leHREYXk6IltUb21vcnJvdyBhdF0gTFQiLG5leHRXZWVrOiJkZGRkIFthdF0gTFQiLGxhc3REYXk6IltZZXN0ZXJkYXkgYXRdIExUIixsYXN0V2VlazoiW0xhc3RdIGRkZGQgW2F0XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToi'@; put 'aW4gJXMiLHBhc3Q6IiVzIGFnbyIsczoiYSBmZXcgc2Vjb25kcyIsc3M6IiVkIHNlY29uZHMiLG06ImEgbWludXRlIixtbToiJWQgbWludXRlcyIsaDoiYW4gaG91ciIsaGg6IiVkIGhvdXJzIixkOiJhIGRheSIsZGQ6IiVkIGRheXMiLE06ImEgbW9udGgiLE1NOiIlZCBtb250aHMiLHk6ImEg'@; put 'eWVhciIseXk6IiVkIHllYXJzIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShzdHxuZHxyZHx0aCkvLG9yZGluYWw6ZnVuY3Rpb24ocCl7dmFyIE49cCUxMDtyZXR1cm4gcCsoMT09fn4ocCUxMDAvMTApPyJ0aCI6MT09PU4/InN0IjoyPT09Tj8ibmQiOjM9PT1OPyJyZCI6InRo'@; put 'Iil9fSl9KGIoOTc1ODYpKX0sNTE4MDA6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO0QuZGVmaW5lTG9jYWxlKCJlbi1nYiIse21vbnRoczoiSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jl'@; put 'cl9Ob3ZlbWJlcl9EZWNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFuX0ZlYl9NYXJfQXByX01heV9KdW5fSnVsX0F1Z19TZXBfT2N0X05vdl9EZWMiLnNwbGl0KCJfIiksd2Vla2RheXM6IlN1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1Nh'@; put 'dHVyZGF5Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IlN1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiU3VfTW9fVHVfV2VfVGhfRnJfU2EiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoi'@; put 'REQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbVG9kYXkgYXRdIExUIixuZXh0RGF5OiJbVG9tb3Jyb3cgYXRdIExUIixuZXh0V2VlazoiZGRkZCBbYXRd'@; put 'IExUIixsYXN0RGF5OiJbWWVzdGVyZGF5IGF0XSBMVCIsbGFzdFdlZWs6IltMYXN0XSBkZGRkIFthdF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImluICVzIixwYXN0OiIlcyBhZ28iLHM6ImEgZmV3IHNlY29uZHMiLHNzOiIlZCBzZWNvbmRzIixtOiJhIG1pbnV0'@; put 'ZSIsbW06IiVkIG1pbnV0ZXMiLGg6ImFuIGhvdXIiLGhoOiIlZCBob3VycyIsZDoiYSBkYXkiLGRkOiIlZCBkYXlzIixNOiJhIG1vbnRoIixNTToiJWQgbW9udGhzIix5OiJhIHllYXIiLHl5OiIlZCB5ZWFycyJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oc3R8bmR8cmR8dGgp'@; put 'LyxvcmRpbmFsOmZ1bmN0aW9uKHApe3ZhciBOPXAlMTA7cmV0dXJuIHArKDE9PX5+KHAlMTAwLzEwKT8idGgiOjE9PT1OPyJzdCI6Mj09PU4/Im5kIjozPT09Tj8icmQiOiJ0aCIpfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oYig5NzU4NikpfSw4MDc6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rp'@; put 'b24oRCl7InVzZSBzdHJpY3QiO0QuZGVmaW5lTG9jYWxlKCJlbi1pZSIse21vbnRoczoiSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFu'@; put 'X0ZlYl9NYXJfQXByX01heV9KdW5fSnVsX0F1Z19TZXBfT2N0X05vdl9EZWMiLnNwbGl0KCJfIiksd2Vla2RheXM6IlN1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IlN1bl9Nb25fVHVlX1dl'@; put 'ZF9UaHVfRnJpX1NhdCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiU3VfTW9fVHVfV2VfVGhfRnJfU2EiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhI'@; put 'Om1tIixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltUb2RheSBhdF0gTFQiLG5leHREYXk6IltUb21vcnJvdyBhdF0gTFQiLG5leHRXZWVrOiJkZGRkIFthdF0gTFQiLGxhc3REYXk6IltZZXN0ZXJkYXkgYXRdIExUIixsYXN0V2VlazoiW0xhc3Rd'@; put 'IGRkZGQgW2F0XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiaW4gJXMiLHBhc3Q6IiVzIGFnbyIsczoiYSBmZXcgc2Vjb25kcyIsc3M6IiVkIHNlY29uZHMiLG06ImEgbWludXRlIixtbToiJWQgbWludXRlcyIsaDoiYW4gaG91ciIsaGg6IiVkIGhvdXJzIixkOiJh'@; put 'IGRheSIsZGQ6IiVkIGRheXMiLE06ImEgbW9udGgiLE1NOiIlZCBtb250aHMiLHk6ImEgeWVhciIseXk6IiVkIHllYXJzIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShzdHxuZHxyZHx0aCkvLG9yZGluYWw6ZnVuY3Rpb24ocCl7dmFyIE49cCUxMDtyZXR1cm4gcCsoMT09fn4o'@; put 'cCUxMDAvMTApPyJ0aCI6MT09PU4/InN0IjoyPT09Tj8ibmQiOjM9PT1OPyJyZCI6InRoIil9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShiKDk3NTg2KSl9LDk1OTYwOmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0IjtELmRlZmluZUxvY2FsZSgiZW4taWwiLHttb250'@; put 'aHM6IkphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikphbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjIi5z'@; put 'cGxpdCgiXyIpLHdlZWtkYXlzOiJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlN1X01vX1R1'@; put 'X1dlX1RoX0ZyX1NhIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7'@; put 'c2FtZURheToiW1RvZGF5IGF0XSBMVCIsbmV4dERheToiW1RvbW9ycm93IGF0XSBMVCIsbmV4dFdlZWs6ImRkZGQgW2F0XSBMVCIsbGFzdERheToiW1llc3RlcmRheSBhdF0gTFQiLGxhc3RXZWVrOiJbTGFzdF0gZGRkZCBbYXRdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0'@; put 'dXJlOiJpbiAlcyIscGFzdDoiJXMgYWdvIixzOiJhIGZldyBzZWNvbmRzIixzczoiJWQgc2Vjb25kcyIsbToiYSBtaW51dGUiLG1tOiIlZCBtaW51dGVzIixoOiJhbiBob3VyIixoaDoiJWQgaG91cnMiLGQ6ImEgZGF5IixkZDoiJWQgZGF5cyIsTToiYSBtb250aCIsTU06IiVkIG1vbnRocyIs'@; put 'eToiYSB5ZWFyIix5eToiJWQgeWVhcnMifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KHN0fG5kfHJkfHRoKS8sb3JkaW5hbDpmdW5jdGlvbihwKXt2YXIgTj1wJTEwO3JldHVybiBwKygxPT1+fihwJTEwMC8xMCk/InRoIjoxPT09Tj8ic3QiOjI9PT1OPyJuZCI6Mz09PU4/InJk'@; put 'IjoidGgiKX19KX0oYig5NzU4NikpfSw4NDQxODpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7RC5kZWZpbmVMb2NhbGUoImVuLWluIix7bW9udGhzOiJKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9P'@; put 'Y3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0RlYyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9Gcmlk'@; put 'YXlfU2F0dXJkYXkiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJTdV9Nb19UdV9XZV9UaF9Gcl9TYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6Img6bW0gQSIsTFRTOiJoOm1tOnNz'@; put 'IEEiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBoOm1tIEEiLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIGg6bW0gQSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbVG9kYXkgYXRdIExUIixuZXh0RGF5OiJbVG9tb3Jyb3cgYXRdIExUIixuZXh0V2Vlazoi'@; put 'ZGRkZCBbYXRdIExUIixsYXN0RGF5OiJbWWVzdGVyZGF5IGF0XSBMVCIsbGFzdFdlZWs6IltMYXN0XSBkZGRkIFthdF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImluICVzIixwYXN0OiIlcyBhZ28iLHM6ImEgZmV3IHNlY29uZHMiLHNzOiIlZCBzZWNvbmRzIixt'@; put 'OiJhIG1pbnV0ZSIsbW06IiVkIG1pbnV0ZXMiLGg6ImFuIGhvdXIiLGhoOiIlZCBob3VycyIsZDoiYSBkYXkiLGRkOiIlZCBkYXlzIixNOiJhIG1vbnRoIixNTToiJWQgbW9udGhzIix5OiJhIHllYXIiLHl5OiIlZCB5ZWFycyJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oc3R8'@; put 'bmR8cmR8dGgpLyxvcmRpbmFsOmZ1bmN0aW9uKHApe3ZhciBOPXAlMTA7cmV0dXJuIHArKDE9PX5+KHAlMTAwLzEwKT8idGgiOjE9PT1OPyJzdCI6Mj09PU4/Im5kIjozPT09Tj8icmQiOiJ0aCIpfSx3ZWVrOntkb3c6MCxkb3k6Nn19KX0oYig5NzU4NikpfSw0Njg2NTpmdW5jdGlvbihjZSxK'@; put 'LGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7RC5kZWZpbmVMb2NhbGUoImVuLW56Iix7bW9udGhzOiJKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRo'@; put 'c1Nob3J0OiJKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0RlYyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXkiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiU3Vu'@; put 'X01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJTdV9Nb19UdV9XZV9UaF9Gcl9TYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6Img6bW0gQSIsTFRTOiJoOm1tOnNzIEEiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJE'@; put 'IE1NTU0gWVlZWSBoOm1tIEEiLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIGg6bW0gQSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbVG9kYXkgYXRdIExUIixuZXh0RGF5OiJbVG9tb3Jyb3cgYXRdIExUIixuZXh0V2VlazoiZGRkZCBbYXRdIExUIixsYXN0RGF5OiJbWWVzdGVyZGF5IGF0XSBMVCIs'@; put 'bGFzdFdlZWs6IltMYXN0XSBkZGRkIFthdF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImluICVzIixwYXN0OiIlcyBhZ28iLHM6ImEgZmV3IHNlY29uZHMiLHNzOiIlZCBzZWNvbmRzIixtOiJhIG1pbnV0ZSIsbW06IiVkIG1pbnV0ZXMiLGg6ImFuIGhvdXIiLGho'@; put 'OiIlZCBob3VycyIsZDoiYSBkYXkiLGRkOiIlZCBkYXlzIixNOiJhIG1vbnRoIixNTToiJWQgbW9udGhzIix5OiJhIHllYXIiLHl5OiIlZCB5ZWFycyJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oc3R8bmR8cmR8dGgpLyxvcmRpbmFsOmZ1bmN0aW9uKHApe3ZhciBOPXAlMTA7'@; put 'cmV0dXJuIHArKDE9PX5+KHAlMTAwLzEwKT8idGgiOjE9PT1OPyJzdCI6Mj09PU4/Im5kIjozPT09Tj8icmQiOiJ0aCIpfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oYig5NzU4NikpfSwzMjY0NzpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7RC5kZWZpbmVMb2Nh'@; put 'bGUoImVuLXNnIix7bW9udGhzOiJKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1Nl'@; put 'cF9PY3RfTm92X0RlYyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXkiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Ii5zcGxpdCgiXyIpLHdlZWtk'@; put 'YXlzTWluOiJTdV9Nb19UdV9XZV9UaF9Gcl9TYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhI'@; put 'Om1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltUb2RheSBhdF0gTFQiLG5leHREYXk6IltUb21vcnJvdyBhdF0gTFQiLG5leHRXZWVrOiJkZGRkIFthdF0gTFQiLGxhc3REYXk6IltZZXN0ZXJkYXkgYXRdIExUIixsYXN0V2VlazoiW0xhc3RdIGRkZGQgW2F0XSBMVCIsc2FtZUVsc2U6IkwifSxy'@; put 'ZWxhdGl2ZVRpbWU6e2Z1dHVyZToiaW4gJXMiLHBhc3Q6IiVzIGFnbyIsczoiYSBmZXcgc2Vjb25kcyIsc3M6IiVkIHNlY29uZHMiLG06ImEgbWludXRlIixtbToiJWQgbWludXRlcyIsaDoiYW4gaG91ciIsaGg6IiVkIGhvdXJzIixkOiJhIGRheSIsZGQ6IiVkIGRheXMiLE06ImEgbW9udGgi'@; put 'LE1NOiIlZCBtb250aHMiLHk6ImEgeWVhciIseXk6IiVkIHllYXJzIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShzdHxuZHxyZHx0aCkvLG9yZGluYWw6ZnVuY3Rpb24ocCl7dmFyIE49cCUxMDtyZXR1cm4gcCsoMT09fn4ocCUxMDAvMTApPyJ0aCI6MT09PU4/InN0IjoyPT09'@; put 'Tj8ibmQiOjM9PT1OPyJyZCI6InRoIil9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShiKDk3NTg2KSl9LDYxOTMxOmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0IjtELmRlZmluZUxvY2FsZSgiZW8iLHttb250aHM6ImphbnVhcm9fZmVicnVhcm9fbWFydG9fYXByaWxv'@; put 'X21ham9fanVuaW9fanVsaW9fYVx1MDE2ZGd1c3RvX3NlcHRlbWJyb19va3RvYnJvX25vdmVtYnJvX2RlY2VtYnJvIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJqYW5fZmViX21hcnRfYXByX21hal9qdW5fanVsX2FcdTAxNmRnX3NlcHRfb2t0X25vdl9kZWMiLnNwbGl0KCJfIiksd2Vla2Rh'@; put 'eXM6ImRpbWFuXHUwMTA5b19sdW5kb19tYXJkb19tZXJrcmVkb19cdTAxMzVhXHUwMTZkZG9fdmVuZHJlZG9fc2FiYXRvIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRpbV9sdW5fbWFyZF9tZXJrX1x1MDEzNWFcdTAxNmRfdmVuX3NhYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiZGlf'@; put 'bHVfbWFfbWVfXHUwMTM1YV92ZV9zYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJZWVlZLU1NLUREIixMTDoiW2xhXSBEWy1hbiBkZV0gTU1NTSwgWVlZWSIsTExMOiJbbGFdIERbLWFuIGRlXSBNTU1NLCBZWVlZIEhIOm1tIixMTExM'@; put 'OiJkZGRkW25dLCBbbGFdIERbLWFuIGRlXSBNTU1NLCBZWVlZIEhIOm1tIixsbGxsOiJkZGQsIFtsYV0gRFstYW4gZGVdIE1NTSwgWVlZWSBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1thcF1cLnRcLm0vaSxpc1BNOmZ1bmN0aW9uKHApe3JldHVybiJwIj09PXAuY2hhckF0KDApLnRvTG93ZXJD'@; put 'YXNlKCl9LG1lcmlkaWVtOmZ1bmN0aW9uKHAsTix3KXtyZXR1cm4gcD4xMT93PyJwLnQubS4iOiJQLlQuTS4iOnc/ImEudC5tLiI6IkEuVC5NLiJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbSG9kaWFcdTAxNmQgamVdIExUIixuZXh0RGF5OiJbTW9yZ2FcdTAxNmQgamVdIExUIixuZXh0V2Vlazoi'@; put 'ZGRkZFtuIGplXSBMVCIsbGFzdERheToiW0hpZXJhXHUwMTZkIGplXSBMVCIsbGFzdFdlZWs6IltwYXNpbnRhbl0gZGRkZFtuIGplXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToicG9zdCAlcyIscGFzdDoiYW50YVx1MDE2ZCAlcyIsczoia2Vsa2FqIHNla3VuZG9q'@; put 'IixzczoiJWQgc2VrdW5kb2oiLG06InVudSBtaW51dG8iLG1tOiIlZCBtaW51dG9qIixoOiJ1bnUgaG9ybyIsaGg6IiVkIGhvcm9qIixkOiJ1bnUgdGFnbyIsZGQ6IiVkIHRhZ29qIixNOiJ1bnUgbW9uYXRvIixNTToiJWQgbW9uYXRvaiIseToidW51IGphcm8iLHl5OiIlZCBqYXJvaiJ9LGRh'@; put 'eU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1hLyxvcmRpbmFsOiIlZGEiLHdlZWs6e2RvdzoxLGRveTo3fX0pfShiKDk3NTg2KSl9LDQxODA1OmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0Ijt2YXIgXz0iZW5lLl9mZWIuX21hci5fYWJyLl9tYXkuX2p1bi5f'@; put 'anVsLl9hZ28uX3NlcC5fb2N0Ll9ub3YuX2RpYy4iLnNwbGl0KCJfIikscD0iZW5lX2ZlYl9tYXJfYWJyX21heV9qdW5fanVsX2Fnb19zZXBfb2N0X25vdl9kaWMiLnNwbGl0KCJfIiksTj1bL15lbmUvaSwvXmZlYi9pLC9ebWFyL2ksL15hYnIvaSwvXm1heS9pLC9eanVuL2ksL15qdWwvaSwv'@; put 'XmFnby9pLC9ec2VwL2ksL15vY3QvaSwvXm5vdi9pLC9eZGljL2ldLHc9L14oZW5lcm98ZmVicmVyb3xtYXJ6b3xhYnJpbHxtYXlvfGp1bmlvfGp1bGlvfGFnb3N0b3xzZXB0aWVtYnJlfG9jdHVicmV8bm92aWVtYnJlfGRpY2llbWJyZXxlbmVcLj98ZmViXC4/fG1hclwuP3xhYnJcLj98bWF5'@; put 'XC4/fGp1blwuP3xqdWxcLj98YWdvXC4/fHNlcFwuP3xvY3RcLj98bm92XC4/fGRpY1wuPykvaTtELmRlZmluZUxvY2FsZSgiZXMtZG8iLHttb250aHM6ImVuZXJvX2ZlYnJlcm9fbWFyem9fYWJyaWxfbWF5b19qdW5pb19qdWxpb19hZ29zdG9fc2VwdGllbWJyZV9vY3R1YnJlX25vdmllbWJy'@; put 'ZV9kaWNpZW1icmUiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6ZnVuY3Rpb24oSCxSKXtyZXR1cm4gSD8vLU1NTS0vLnRlc3QoUik/cFtILm1vbnRoKCldOl9bSC5tb250aCgpXTpffSxtb250aHNSZWdleDp3LG1vbnRoc1Nob3J0UmVnZXg6dyxtb250aHNTdHJpY3RSZWdleDovXihlbmVyb3xm'@; put 'ZWJyZXJvfG1hcnpvfGFicmlsfG1heW98anVuaW98anVsaW98YWdvc3RvfHNlcHRpZW1icmV8b2N0dWJyZXxub3ZpZW1icmV8ZGljaWVtYnJlKS9pLG1vbnRoc1Nob3J0U3RyaWN0UmVnZXg6L14oZW5lXC4/fGZlYlwuP3xtYXJcLj98YWJyXC4/fG1heVwuP3xqdW5cLj98anVsXC4/fGFnb1wu'@; put 'P3xzZXBcLj98b2N0XC4/fG5vdlwuP3xkaWNcLj8pL2ksbW9udGhzUGFyc2U6Tixsb25nTW9udGhzUGFyc2U6TixzaG9ydE1vbnRoc1BhcnNlOk4sd2Vla2RheXM6ImRvbWluZ29fbHVuZXNfbWFydGVzX21pXHhlOXJjb2xlc19qdWV2ZXNfdmllcm5lc19zXHhlMWJhZG8iLnNwbGl0KCJfIiks'@; put 'd2Vla2RheXNTaG9ydDoiZG9tLl9sdW4uX21hci5fbWlceGU5Ll9qdWUuX3ZpZS5fc1x4ZTFiLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiZG9fbHVfbWFfbWlfanVfdmlfc1x4ZTEiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiaDptbSBB'@; put 'IixMVFM6Img6bW06c3MgQSIsTDoiREQvTU0vWVlZWSIsTEw6IkQgW2RlXSBNTU1NIFtkZV0gWVlZWSIsTExMOiJEIFtkZV0gTU1NTSBbZGVdIFlZWVkgaDptbSBBIixMTExMOiJkZGRkLCBEIFtkZV0gTU1NTSBbZGVdIFlZWVkgaDptbSBBIn0sY2FsZW5kYXI6e3NhbWVEYXk6ZnVuY3Rpb24o'@; put 'KXtyZXR1cm4iW2hveSBhIGxhIisoMSE9PXRoaXMuaG91cnMoKT8icyI6IiIpKyJdIExUIn0sbmV4dERheTpmdW5jdGlvbigpe3JldHVybiJbbWFceGYxYW5hIGEgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxuZXh0V2VlazpmdW5jdGlvbigpe3JldHVybiJkZGRkIFth'@; put 'IGxhIisoMSE9PXRoaXMuaG91cnMoKT8icyI6IiIpKyJdIExUIn0sbGFzdERheTpmdW5jdGlvbigpe3JldHVybiJbYXllciBhIGxhIisoMSE9PXRoaXMuaG91cnMoKT8icyI6IiIpKyJdIExUIn0sbGFzdFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4iW2VsXSBkZGRkIFtwYXNhZG8gYSBsYSIrKDEh'@; put 'PT10aGlzLmhvdXJzKCk/InMiOiIiKSsiXSBMVCJ9LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImVuICVzIixwYXN0OiJoYWNlICVzIixzOiJ1bm9zIHNlZ3VuZG9zIixzczoiJWQgc2VndW5kb3MiLG06InVuIG1pbnV0byIsbW06IiVkIG1pbnV0b3MiLGg6InVuYSBob3Jh'@; put 'IixoaDoiJWQgaG9yYXMiLGQ6InVuIGRceGVkYSIsZGQ6IiVkIGRceGVkYXMiLHc6InVuYSBzZW1hbmEiLHd3OiIlZCBzZW1hbmFzIixNOiJ1biBtZXMiLE1NOiIlZCBtZXNlcyIseToidW4gYVx4ZjFvIix5eToiJWQgYVx4ZjFvcyJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1c'@; put 'eGJhLyxvcmRpbmFsOiIlZFx4YmEiLHdlZWs6e2RvdzoxLGRveTo0fX0pfShiKDk3NTg2KSl9LDgzNDQ1OmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0Ijt2YXIgXz0iZW5lLl9mZWIuX21hci5fYWJyLl9tYXkuX2p1bi5fanVsLl9hZ28uX3NlcC5fb2N0Ll9ub3Yu'@; put 'X2RpYy4iLnNwbGl0KCJfIikscD0iZW5lX2ZlYl9tYXJfYWJyX21heV9qdW5fanVsX2Fnb19zZXBfb2N0X25vdl9kaWMiLnNwbGl0KCJfIiksTj1bL15lbmUvaSwvXmZlYi9pLC9ebWFyL2ksL15hYnIvaSwvXm1heS9pLC9eanVuL2ksL15qdWwvaSwvXmFnby9pLC9ec2VwL2ksL15vY3QvaSwv'@; put 'Xm5vdi9pLC9eZGljL2ldLHc9L14oZW5lcm98ZmVicmVyb3xtYXJ6b3xhYnJpbHxtYXlvfGp1bmlvfGp1bGlvfGFnb3N0b3xzZXB0aWVtYnJlfG9jdHVicmV8bm92aWVtYnJlfGRpY2llbWJyZXxlbmVcLj98ZmViXC4/fG1hclwuP3xhYnJcLj98bWF5XC4/fGp1blwuP3xqdWxcLj98YWdvXC4/'@; put 'fHNlcFwuP3xvY3RcLj98bm92XC4/fGRpY1wuPykvaTtELmRlZmluZUxvY2FsZSgiZXMtbXgiLHttb250aHM6ImVuZXJvX2ZlYnJlcm9fbWFyem9fYWJyaWxfbWF5b19qdW5pb19qdWxpb19hZ29zdG9fc2VwdGllbWJyZV9vY3R1YnJlX25vdmllbWJyZV9kaWNpZW1icmUiLnNwbGl0KCJfIiks'@; put 'bW9udGhzU2hvcnQ6ZnVuY3Rpb24oSCxSKXtyZXR1cm4gSD8vLU1NTS0vLnRlc3QoUik/cFtILm1vbnRoKCldOl9bSC5tb250aCgpXTpffSxtb250aHNSZWdleDp3LG1vbnRoc1Nob3J0UmVnZXg6dyxtb250aHNTdHJpY3RSZWdleDovXihlbmVyb3xmZWJyZXJvfG1hcnpvfGFicmlsfG1heW98'@; put 'anVuaW98anVsaW98YWdvc3RvfHNlcHRpZW1icmV8b2N0dWJyZXxub3ZpZW1icmV8ZGljaWVtYnJlKS9pLG1vbnRoc1Nob3J0U3RyaWN0UmVnZXg6L14oZW5lXC4/fGZlYlwuP3xtYXJcLj98YWJyXC4/fG1heVwuP3xqdW5cLj98anVsXC4/fGFnb1wuP3xzZXBcLj98b2N0XC4/fG5vdlwuP3xk'@; put 'aWNcLj8pL2ksbW9udGhzUGFyc2U6Tixsb25nTW9udGhzUGFyc2U6TixzaG9ydE1vbnRoc1BhcnNlOk4sd2Vla2RheXM6ImRvbWluZ29fbHVuZXNfbWFydGVzX21pXHhlOXJjb2xlc19qdWV2ZXNfdmllcm5lc19zXHhlMWJhZG8iLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiZG9tLl9sdW4u'@; put 'X21hci5fbWlceGU5Ll9qdWUuX3ZpZS5fc1x4ZTFiLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiZG9fbHVfbWFfbWlfanVfdmlfc1x4ZTEiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJERC9NTS9Z'@; put 'WVlZIixMTDoiRCBbZGVdIE1NTU0gW2RlXSBZWVlZIixMTEw6IkQgW2RlXSBNTU1NIFtkZV0gWVlZWSBIOm1tIixMTExMOiJkZGRkLCBEIFtkZV0gTU1NTSBbZGVdIFlZWVkgSDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OmZ1bmN0aW9uKCl7cmV0dXJuIltob3kgYSBsYSIrKDEhPT10aGlzLmhv'@; put 'dXJzKCk/InMiOiIiKSsiXSBMVCJ9LG5leHREYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW21hXHhmMWFuYSBhIGxhIisoMSE9PXRoaXMuaG91cnMoKT8icyI6IiIpKyJdIExUIn0sbmV4dFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4iZGRkZCBbYSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIiKSsi'@; put 'XSBMVCJ9LGxhc3REYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW2F5ZXIgYSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIiKSsiXSBMVCJ9LGxhc3RXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIltlbF0gZGRkZCBbcGFzYWRvIGEgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxz'@; put 'YW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJlbiAlcyIscGFzdDoiaGFjZSAlcyIsczoidW5vcyBzZWd1bmRvcyIsc3M6IiVkIHNlZ3VuZG9zIixtOiJ1biBtaW51dG8iLG1tOiIlZCBtaW51dG9zIixoOiJ1bmEgaG9yYSIsaGg6IiVkIGhvcmFzIixkOiJ1biBkXHhlZGEiLGRk'@; put 'OiIlZCBkXHhlZGFzIix3OiJ1bmEgc2VtYW5hIix3dzoiJWQgc2VtYW5hcyIsTToidW4gbWVzIixNTToiJWQgbWVzZXMiLHk6InVuIGFceGYxbyIseXk6IiVkIGFceGYxb3MifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XHhiYS8sb3JkaW5hbDoiJWRceGJhIix3ZWVrOntkb3c6'@; put 'MCxkb3k6NH0saW52YWxpZERhdGU6IkZlY2hhIGludlx4ZTFsaWRhIn0pfShiKDk3NTg2KSl9LDgxNTE2OmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0Ijt2YXIgXz0iZW5lLl9mZWIuX21hci5fYWJyLl9tYXkuX2p1bi5fanVsLl9hZ28uX3NlcC5fb2N0Ll9ub3Yu'@; put 'X2RpYy4iLnNwbGl0KCJfIikscD0iZW5lX2ZlYl9tYXJfYWJyX21heV9qdW5fanVsX2Fnb19zZXBfb2N0X25vdl9kaWMiLnNwbGl0KCJfIiksTj1bL15lbmUvaSwvXmZlYi9pLC9ebWFyL2ksL15hYnIvaSwvXm1heS9pLC9eanVuL2ksL15qdWwvaSwvXmFnby9pLC9ec2VwL2ksL15vY3QvaSwv'@; put 'Xm5vdi9pLC9eZGljL2ldLHc9L14oZW5lcm98ZmVicmVyb3xtYXJ6b3xhYnJpbHxtYXlvfGp1bmlvfGp1bGlvfGFnb3N0b3xzZXB0aWVtYnJlfG9jdHVicmV8bm92aWVtYnJlfGRpY2llbWJyZXxlbmVcLj98ZmViXC4/fG1hclwuP3xhYnJcLj98bWF5XC4/fGp1blwuP3xqdWxcLj98YWdvXC4/'@; put 'fHNlcFwuP3xvY3RcLj98bm92XC4/fGRpY1wuPykvaTtELmRlZmluZUxvY2FsZSgiZXMtdXMiLHttb250aHM6ImVuZXJvX2ZlYnJlcm9fbWFyem9fYWJyaWxfbWF5b19qdW5pb19qdWxpb19hZ29zdG9fc2VwdGllbWJyZV9vY3R1YnJlX25vdmllbWJyZV9kaWNpZW1icmUiLnNwbGl0KCJfIiks'@; put 'bW9udGhzU2hvcnQ6ZnVuY3Rpb24oSCxSKXtyZXR1cm4gSD8vLU1NTS0vLnRlc3QoUik/cFtILm1vbnRoKCldOl9bSC5tb250aCgpXTpffSxtb250aHNSZWdleDp3LG1vbnRoc1Nob3J0UmVnZXg6dyxtb250aHNTdHJpY3RSZWdleDovXihlbmVyb3xmZWJyZXJvfG1hcnpvfGFicmlsfG1heW98'@; put 'anVuaW98anVsaW98YWdvc3RvfHNlcHRpZW1icmV8b2N0dWJyZXxub3ZpZW1icmV8ZGljaWVtYnJlKS9pLG1vbnRoc1Nob3J0U3RyaWN0UmVnZXg6L14oZW5lXC4/fGZlYlwuP3xtYXJcLj98YWJyXC4/fG1heVwuP3xqdW5cLj98anVsXC4/fGFnb1wuP3xzZXBcLj98b2N0XC4/fG5vdlwuP3xk'@; put 'aWNcLj8pL2ksbW9udGhzUGFyc2U6Tixsb25nTW9udGhzUGFyc2U6TixzaG9ydE1vbnRoc1BhcnNlOk4sd2Vla2RheXM6ImRvbWluZ29fbHVuZXNfbWFydGVzX21pXHhlOXJjb2xlc19qdWV2ZXNfdmllcm5lc19zXHhlMWJhZG8iLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiZG9tLl9sdW4u'@; put 'X21hci5fbWlceGU5Ll9qdWUuX3ZpZS5fc1x4ZTFiLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiZG9fbHVfbWFfbWlfanVfdmlfc1x4ZTEiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiaDptbSBBIixMVFM6Img6bW06c3MgQSIsTDoiTU0v'@; put 'REQvWVlZWSIsTEw6IkQgW2RlXSBNTU1NIFtkZV0gWVlZWSIsTExMOiJEIFtkZV0gTU1NTSBbZGVdIFlZWVkgaDptbSBBIixMTExMOiJkZGRkLCBEIFtkZV0gTU1NTSBbZGVdIFlZWVkgaDptbSBBIn0sY2FsZW5kYXI6e3NhbWVEYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW2hveSBhIGxhIisoMSE9'@; put 'PXRoaXMuaG91cnMoKT8icyI6IiIpKyJdIExUIn0sbmV4dERheTpmdW5jdGlvbigpe3JldHVybiJbbWFceGYxYW5hIGEgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxuZXh0V2VlazpmdW5jdGlvbigpe3JldHVybiJkZGRkIFthIGxhIisoMSE9PXRoaXMuaG91cnMoKT8i'@; put 'cyI6IiIpKyJdIExUIn0sbGFzdERheTpmdW5jdGlvbigpe3JldHVybiJbYXllciBhIGxhIisoMSE9PXRoaXMuaG91cnMoKT8icyI6IiIpKyJdIExUIn0sbGFzdFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4iW2VsXSBkZGRkIFtwYXNhZG8gYSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIiKSsi'@; put 'XSBMVCJ9LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImVuICVzIixwYXN0OiJoYWNlICVzIixzOiJ1bm9zIHNlZ3VuZG9zIixzczoiJWQgc2VndW5kb3MiLG06InVuIG1pbnV0byIsbW06IiVkIG1pbnV0b3MiLGg6InVuYSBob3JhIixoaDoiJWQgaG9yYXMiLGQ6InVuIGRc'@; put 'eGVkYSIsZGQ6IiVkIGRceGVkYXMiLHc6InVuYSBzZW1hbmEiLHd3OiIlZCBzZW1hbmFzIixNOiJ1biBtZXMiLE1NOiIlZCBtZXNlcyIseToidW4gYVx4ZjFvIix5eToiJWQgYVx4ZjFvcyJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1ceGJhLyxvcmRpbmFsOiIlZFx4YmEiLHdl'@; put 'ZWs6e2RvdzowLGRveTo2fX0pfShiKDk3NTg2KSl9LDQ2Njc5OmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0Ijt2YXIgXz0iZW5lLl9mZWIuX21hci5fYWJyLl9tYXkuX2p1bi5fanVsLl9hZ28uX3NlcC5fb2N0Ll9ub3YuX2RpYy4iLnNwbGl0KCJfIikscD0iZW5l'@; put 'X2ZlYl9tYXJfYWJyX21heV9qdW5fanVsX2Fnb19zZXBfb2N0X25vdl9kaWMiLnNwbGl0KCJfIiksTj1bL15lbmUvaSwvXmZlYi9pLC9ebWFyL2ksL15hYnIvaSwvXm1heS9pLC9eanVuL2ksL15qdWwvaSwvXmFnby9pLC9ec2VwL2ksL15vY3QvaSwvXm5vdi9pLC9eZGljL2ldLHc9L14oZW5l'@; put 'cm98ZmVicmVyb3xtYXJ6b3xhYnJpbHxtYXlvfGp1bmlvfGp1bGlvfGFnb3N0b3xzZXB0aWVtYnJlfG9jdHVicmV8bm92aWVtYnJlfGRpY2llbWJyZXxlbmVcLj98ZmViXC4/fG1hclwuP3xhYnJcLj98bWF5XC4/fGp1blwuP3xqdWxcLj98YWdvXC4/fHNlcFwuP3xvY3RcLj98bm92XC4/fGRp'@; put 'Y1wuPykvaTtELmRlZmluZUxvY2FsZSgiZXMiLHttb250aHM6ImVuZXJvX2ZlYnJlcm9fbWFyem9fYWJyaWxfbWF5b19qdW5pb19qdWxpb19hZ29zdG9fc2VwdGllbWJyZV9vY3R1YnJlX25vdmllbWJyZV9kaWNpZW1icmUiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6ZnVuY3Rpb24oSCxSKXty'@; put 'ZXR1cm4gSD8vLU1NTS0vLnRlc3QoUik/cFtILm1vbnRoKCldOl9bSC5tb250aCgpXTpffSxtb250aHNSZWdleDp3LG1vbnRoc1Nob3J0UmVnZXg6dyxtb250aHNTdHJpY3RSZWdleDovXihlbmVyb3xmZWJyZXJvfG1hcnpvfGFicmlsfG1heW98anVuaW98anVsaW98YWdvc3RvfHNlcHRpZW1i'@; put 'cmV8b2N0dWJyZXxub3ZpZW1icmV8ZGljaWVtYnJlKS9pLG1vbnRoc1Nob3J0U3RyaWN0UmVnZXg6L14oZW5lXC4/fGZlYlwuP3xtYXJcLj98YWJyXC4/fG1heVwuP3xqdW5cLj98anVsXC4/fGFnb1wuP3xzZXBcLj98b2N0XC4/fG5vdlwuP3xkaWNcLj8pL2ksbW9udGhzUGFyc2U6Tixsb25n'@; put 'TW9udGhzUGFyc2U6TixzaG9ydE1vbnRoc1BhcnNlOk4sd2Vla2RheXM6ImRvbWluZ29fbHVuZXNfbWFydGVzX21pXHhlOXJjb2xlc19qdWV2ZXNfdmllcm5lc19zXHhlMWJhZG8iLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiZG9tLl9sdW4uX21hci5fbWlceGU5Ll9qdWUuX3ZpZS5fc1x4'@; put 'ZTFiLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiZG9fbHVfbWFfbWlfanVfdmlfc1x4ZTEiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBbZGVdIE1NTU0gW2RlXSBZ'@; put 'WVlZIixMTEw6IkQgW2RlXSBNTU1NIFtkZV0gWVlZWSBIOm1tIixMTExMOiJkZGRkLCBEIFtkZV0gTU1NTSBbZGVdIFlZWVkgSDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OmZ1bmN0aW9uKCl7cmV0dXJuIltob3kgYSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIiKSsiXSBMVCJ9LG5leHRE'@; put 'YXk6ZnVuY3Rpb24oKXtyZXR1cm4iW21hXHhmMWFuYSBhIGxhIisoMSE9PXRoaXMuaG91cnMoKT8icyI6IiIpKyJdIExUIn0sbmV4dFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4iZGRkZCBbYSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIiKSsiXSBMVCJ9LGxhc3REYXk6ZnVuY3Rpb24oKXty'@; put 'ZXR1cm4iW2F5ZXIgYSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIiKSsiXSBMVCJ9LGxhc3RXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIltlbF0gZGRkZCBbcGFzYWRvIGEgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7'@; put 'ZnV0dXJlOiJlbiAlcyIscGFzdDoiaGFjZSAlcyIsczoidW5vcyBzZWd1bmRvcyIsc3M6IiVkIHNlZ3VuZG9zIixtOiJ1biBtaW51dG8iLG1tOiIlZCBtaW51dG9zIixoOiJ1bmEgaG9yYSIsaGg6IiVkIGhvcmFzIixkOiJ1biBkXHhlZGEiLGRkOiIlZCBkXHhlZGFzIix3OiJ1bmEgc2VtYW5h'@; put 'Iix3dzoiJWQgc2VtYW5hcyIsTToidW4gbWVzIixNTToiJWQgbWVzZXMiLHk6InVuIGFceGYxbyIseXk6IiVkIGFceGYxb3MifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XHhiYS8sb3JkaW5hbDoiJWRceGJhIix3ZWVrOntkb3c6MSxkb3k6NH0saW52YWxpZERhdGU6IkZlY2hh'@; put 'IGludlx4ZTFsaWRhIn0pfShiKDk3NTg2KSl9LDg4MTUwOmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBfKE4sdyxGLEgpe3ZhciBSPXtzOlsibVx4ZjVuZSBzZWt1bmRpIiwibVx4ZjVuaSBzZWt1bmQiLCJwYWFyIHNla3VuZGl0Il0sc3M6W04r'@; put 'InNla3VuZGkiLE4rInNla3VuZGl0Il0sbTpbIlx4ZmNoZSBtaW51dGkiLCJceGZja3MgbWludXQiXSxtbTpbTisiIG1pbnV0aSIsTisiIG1pbnV0aXQiXSxoOlsiXHhmY2hlIHR1bm5pIiwidHVuZCBhZWdhIiwiXHhmY2tzIHR1bmQiXSxoaDpbTisiIHR1bm5pIixOKyIgdHVuZGkiXSxkOlsi'@; put 'XHhmY2hlIHBceGU0ZXZhIiwiXHhmY2tzIHBceGU0ZXYiXSxNOlsia3V1IGFqYSIsImt1dSBhZWdhIiwiXHhmY2tzIGt1dSJdLE1NOltOKyIga3V1IixOKyIga3V1ZCJdLHk6WyJceGZjaGUgYWFzdGEiLCJhYXN0YSIsIlx4ZmNrcyBhYXN0YSJdLHl5OltOKyIgYWFzdGEiLE4rIiBhYXN0YXQi'@; put 'XX07cmV0dXJuIHc/UltGXVsyXT9SW0ZdWzJdOlJbRl1bMV06SD9SW0ZdWzBdOlJbRl1bMV19RC5kZWZpbmVMb2NhbGUoImV0Iix7bW9udGhzOiJqYWFudWFyX3ZlZWJydWFyX21ceGU0cnRzX2FwcmlsbF9tYWlfanV1bmlfanV1bGlfYXVndXN0X3NlcHRlbWJlcl9va3Rvb2Jlcl9ub3ZlbWJl'@; put 'cl9kZXRzZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6ImphYW5fdmVlYnJfbVx4ZTRydHNfYXByX21haV9qdXVuaV9qdXVsaV9hdWdfc2VwdF9va3Rfbm92X2RldHMiLnNwbGl0KCJfIiksd2Vla2RheXM6InBceGZjaGFwXHhlNGV2X2VzbWFzcFx4ZTRldl90ZWlzaXBceGU0ZXZfa29s'@; put 'bWFwXHhlNGV2X25lbGphcFx4ZTRldl9yZWVkZV9sYXVwXHhlNGV2Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IlBfRV9UX0tfTl9SX0wiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlBfRV9UX0tfTl9SX0wiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6'@; put 'bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJELiBNTU1NIFlZWVkiLExMTDoiRC4gTU1NTSBZWVlZIEg6bW0iLExMTEw6ImRkZGQsIEQuIE1NTU0gWVlZWSBIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltUXHhlNG5hLF0gTFQiLG5leHREYXk6IltIb21tZSxdIExUIixuZXh0V2VlazoiW0pc'@; put 'eGU0cmdtaW5lXSBkZGRkIExUIixsYXN0RGF5OiJbRWlsZSxdIExUIixsYXN0V2VlazoiW0VlbG1pbmVdIGRkZGQgTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIHBceGU0cmFzdCIscGFzdDoiJXMgdGFnYXNpIixzOl8sc3M6XyxtOl8sbW06XyxoOl8saGg6Xyxk'@; put 'Ol8sZGQ6IiVkIHBceGU0ZXZhIixNOl8sTU06Xyx5Ol8seXk6X30sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo0fX0pfShiKDk3NTg2KSl9LDgwNzU3OmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3Ry'@; put 'aWN0IjtELmRlZmluZUxvY2FsZSgiZXUiLHttb250aHM6InVydGFycmlsYV9vdHNhaWxhX21hcnR4b2FfYXBpcmlsYV9tYWlhdHphX2VrYWluYV91enRhaWxhX2FidXp0dWFfaXJhaWxhX3VycmlhX2F6YXJvYV9hYmVuZHVhIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJ1cnQuX290cy5fbWFy'@; put 'Ll9hcGkuX21haS5fZWthLl91enQuX2FidS5faXJhLl91cnIuX2F6YS5fYWJlLiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJpZ2FuZGVhX2FzdGVsZWhlbmFfYXN0ZWFydGVhX2FzdGVhemtlbmFfb3N0ZWd1bmFfb3N0aXJhbGFfbGFydW5iYXRhIi5zcGxpdCgi'@; put 'XyIpLHdlZWtkYXlzU2hvcnQ6ImlnLl9hbC5fYXIuX2F6Ll9vZy5fb2wuX2xyLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiaWdfYWxfYXJfYXpfb2dfb2xfbHIiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06'@; put 'c3MiLEw6IllZWVktTU0tREQiLExMOiJZWVlZW2tvXSBNTU1NW3Jlbl0gRFthXSIsTExMOiJZWVlZW2tvXSBNTU1NW3Jlbl0gRFthXSBISDptbSIsTExMTDoiZGRkZCwgWVlZWVtrb10gTU1NTVtyZW5dIERbYV0gSEg6bW0iLGw6IllZWVktTS1EIixsbDoiWVlZWVtrb10gTU1NIERbYV0iLGxs'@; put 'bDoiWVlZWVtrb10gTU1NIERbYV0gSEg6bW0iLGxsbGw6ImRkZCwgWVlZWVtrb10gTU1NIERbYV0gSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2dhdXJdIExUW2V0YW5dIixuZXh0RGF5OiJbYmloYXJdIExUW2V0YW5dIixuZXh0V2VlazoiZGRkZCBMVFtldGFuXSIsbGFzdERheToiW2F0'@; put 'em9dIExUW2V0YW5dIixsYXN0V2VlazoiW2F1cnJla29dIGRkZGQgTFRbZXRhbl0iLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIGJhcnJ1IixwYXN0OiJkdWVsYSAlcyIsczoic2VndW5kbyBiYXR6dWsiLHNzOiIlZCBzZWd1bmRvIixtOiJtaW51dHUgYmF0IixtbToi'@; put 'JWQgbWludXR1IixoOiJvcmR1IGJhdCIsaGg6IiVkIG9yZHUiLGQ6ImVndW4gYmF0IixkZDoiJWQgZWd1biIsTToiaGlsYWJldGUgYmF0IixNTToiJWQgaGlsYWJldGUiLHk6InVydGUgYmF0Iix5eToiJWQgdXJ0ZSJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5h'@; put 'bDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6N319KX0oYig5NzU4NikpfSw2NTc0MjpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7dmFyIF89ezE6Ilx1MDZmMSIsMjoiXHUwNmYyIiwzOiJcdTA2ZjMiLDQ6Ilx1MDZmNCIsNToiXHUwNmY1Iiw2OiJcdTA2ZjYiLDc6'@; put 'Ilx1MDZmNyIsODoiXHUwNmY4Iiw5OiJcdTA2ZjkiLDA6Ilx1MDZmMCJ9LHA9eyJcdTA2ZjEiOiIxIiwiXHUwNmYyIjoiMiIsIlx1MDZmMyI6IjMiLCJcdTA2ZjQiOiI0IiwiXHUwNmY1IjoiNSIsIlx1MDZmNiI6IjYiLCJcdTA2ZjciOiI3IiwiXHUwNmY4IjoiOCIsIlx1MDZmOSI6IjkiLCJc'@; put 'dTA2ZjAiOiIwIn07RC5kZWZpbmVMb2NhbGUoImZhIix7bW9udGhzOiJcdTA2OThcdTA2MjdcdTA2NDZcdTA2NDhcdTA2Y2NcdTA2NDdfXHUwNjQxXHUwNjQ4XHUwNjMxXHUwNmNjXHUwNjQ3X1x1MDY0NVx1MDYyN1x1MDYzMVx1MDYzM19cdTA2MjJcdTA2NDhcdTA2MzFcdTA2Y2NcdTA2NDRf'@; put 'XHUwNjQ1XHUwNjQ3X1x1MDY5OFx1MDY0OFx1MDYyNlx1MDY0Nl9cdTA2OThcdTA2NDhcdTA2MjZcdTA2Y2NcdTA2NDdfXHUwNjI3XHUwNjQ4XHUwNjJhX1x1MDYzM1x1MDY3ZVx1MDYyYVx1MDYyN1x1MDY0NVx1MDYyOFx1MDYzMV9cdTA2MjdcdTA2YTlcdTA2MmFcdTA2MjhcdTA2MzFfXHUw'@; put 'NjQ2XHUwNjQ4XHUwNjI3XHUwNjQ1XHUwNjI4XHUwNjMxX1x1MDYyZlx1MDYzM1x1MDYyN1x1MDY0NVx1MDYyOFx1MDYzMSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwNjk4XHUwNjI3XHUwNjQ2XHUwNjQ4XHUwNmNjXHUwNjQ3X1x1MDY0MVx1MDY0OFx1MDYzMVx1MDZjY1x1MDY0N19c'@; put 'dTA2NDVcdTA2MjdcdTA2MzFcdTA2MzNfXHUwNjIyXHUwNjQ4XHUwNjMxXHUwNmNjXHUwNjQ0X1x1MDY0NVx1MDY0N19cdTA2OThcdTA2NDhcdTA2MjZcdTA2NDZfXHUwNjk4XHUwNjQ4XHUwNjI2XHUwNmNjXHUwNjQ3X1x1MDYyN1x1MDY0OFx1MDYyYV9cdTA2MzNcdTA2N2VcdTA2MmFcdTA2'@; put 'MjdcdTA2NDVcdTA2MjhcdTA2MzFfXHUwNjI3XHUwNmE5XHUwNjJhXHUwNjI4XHUwNjMxX1x1MDY0Nlx1MDY0OFx1MDYyN1x1MDY0NVx1MDYyOFx1MDYzMV9cdTA2MmZcdTA2MzNcdTA2MjdcdTA2NDVcdTA2MjhcdTA2MzEiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDZjY1x1MDZhOVx1MjAw'@; put 'Y1x1MDYzNFx1MDY0Nlx1MDYyOFx1MDY0N19cdTA2MmZcdTA2NDhcdTA2MzRcdTA2NDZcdTA2MjhcdTA2NDdfXHUwNjMzXHUwNjQ3XHUyMDBjXHUwNjM0XHUwNjQ2XHUwNjI4XHUwNjQ3X1x1MDY4Nlx1MDY0N1x1MDYyN1x1MDYzMVx1MDYzNFx1MDY0Nlx1MDYyOFx1MDY0N19cdTA2N2VcdTA2'@; put 'NDZcdTA2MmNcdTIwMGNcdTA2MzRcdTA2NDZcdTA2MjhcdTA2NDdfXHUwNjJjXHUwNjQ1XHUwNjM5XHUwNjQ3X1x1MDYzNFx1MDY0Nlx1MDYyOFx1MDY0NyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA2Y2NcdTA2YTlcdTIwMGNcdTA2MzRcdTA2NDZcdTA2MjhcdTA2NDdfXHUwNjJm'@; put 'XHUwNjQ4XHUwNjM0XHUwNjQ2XHUwNjI4XHUwNjQ3X1x1MDYzM1x1MDY0N1x1MjAwY1x1MDYzNFx1MDY0Nlx1MDYyOFx1MDY0N19cdTA2ODZcdTA2NDdcdTA2MjdcdTA2MzFcdTA2MzRcdTA2NDZcdTA2MjhcdTA2NDdfXHUwNjdlXHUwNjQ2XHUwNjJjXHUyMDBjXHUwNjM0XHUwNjQ2XHUwNjI4'@; put 'XHUwNjQ3X1x1MDYyY1x1MDY0NVx1MDYzOVx1MDY0N19cdTA2MzRcdTA2NDZcdTA2MjhcdTA2NDciLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDZjY19cdTA2MmZfXHUwNjMzX1x1MDY4Nl9cdTA2N2VfXHUwNjJjX1x1MDYzNCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAs'@; put 'bG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1MDY0Mlx1MDYyOFx1MDY0NCBc'@; put 'dTA2MjdcdTA2MzIgXHUwNjM4XHUwNjQ3XHUwNjMxfFx1MDYyOFx1MDYzOVx1MDYyZiBcdTA2MjdcdTA2MzIgXHUwNjM4XHUwNjQ3XHUwNjMxLyxpc1BNOmZ1bmN0aW9uKHcpe3JldHVybi9cdTA2MjhcdTA2MzlcdTA2MmYgXHUwNjI3XHUwNjMyIFx1MDYzOFx1MDY0N1x1MDYzMS8udGVzdCh3'@; put 'KX0sbWVyaWRpZW06ZnVuY3Rpb24odyxGLEgpe3JldHVybiB3PDEyPyJcdTA2NDJcdTA2MjhcdTA2NDQgXHUwNjI3XHUwNjMyIFx1MDYzOFx1MDY0N1x1MDYzMSI6Ilx1MDYyOFx1MDYzOVx1MDYyZiBcdTA2MjdcdTA2MzIgXHUwNjM4XHUwNjQ3XHUwNjMxIn0sY2FsZW5kYXI6e3NhbWVEYXk6'@; put 'IltcdTA2MjdcdTA2NDVcdTA2MzFcdTA2NDhcdTA2MzIgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjJhXSBMVCIsbmV4dERheToiW1x1MDY0MVx1MDYzMVx1MDYyZlx1MDYyNyBcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MmFdIExUIixuZXh0V2VlazoiZGRkZCBbXHUwNjMzXHUwNjI3XHUwNjM5XHUw'@; put 'NjJhXSBMVCIsbGFzdERheToiW1x1MDYyZlx1MDZjY1x1MDYzMVx1MDY0OFx1MDYzMiBcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MmFdIExUIixsYXN0V2VlazoiZGRkZCBbXHUwNjdlXHUwNmNjXHUwNjM0XSBbXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjJhXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxh'@; put 'dGl2ZVRpbWU6e2Z1dHVyZToiXHUwNjJmXHUwNjMxICVzIixwYXN0OiIlcyBcdTA2N2VcdTA2Y2NcdTA2MzQiLHM6Ilx1MDY4Nlx1MDY0Nlx1MDYyZiBcdTA2MmJcdTA2MjdcdTA2NDZcdTA2Y2NcdTA2NDciLHNzOiIlZCBcdTA2MmJcdTA2MjdcdTA2NDZcdTA2Y2NcdTA2NDciLG06Ilx1MDZj'@; put 'Y1x1MDZhOSBcdTA2MmZcdTA2NDJcdTA2Y2NcdTA2NDJcdTA2NDciLG1tOiIlZCBcdTA2MmZcdTA2NDJcdTA2Y2NcdTA2NDJcdTA2NDciLGg6Ilx1MDZjY1x1MDZhOSBcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MmEiLGhoOiIlZCBcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MmEiLGQ6Ilx1MDZjY1x1'@; put 'MDZhOSBcdTA2MzFcdTA2NDhcdTA2MzIiLGRkOiIlZCBcdTA2MzFcdTA2NDhcdTA2MzIiLE06Ilx1MDZjY1x1MDZhOSBcdTA2NDVcdTA2MjdcdTA2NDciLE1NOiIlZCBcdTA2NDVcdTA2MjdcdTA2NDciLHk6Ilx1MDZjY1x1MDZhOSBcdTA2MzNcdTA2MjdcdTA2NDQiLHl5OiIlZCBcdTA2MzNc'@; put 'dTA2MjdcdTA2NDQifSxwcmVwYXJzZTpmdW5jdGlvbih3KXtyZXR1cm4gdy5yZXBsYWNlKC9bXHUwNmYwLVx1MDZmOV0vZyxmdW5jdGlvbihGKXtyZXR1cm4gcFtGXX0pLnJlcGxhY2UoL1x1MDYwYy9nLCIsIil9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24odyl7cmV0dXJuIHcucmVwbGFjZSgvXGQv'@; put 'ZyxmdW5jdGlvbihGKXtyZXR1cm4gX1tGXX0pLnJlcGxhY2UoLywvZywiXHUwNjBjIil9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cdTA2NDUvLG9yZGluYWw6IiVkXHUwNjQ1Iix3ZWVrOntkb3c6Nixkb3k6MTJ9fSl9KGIoOTc1ODYpKX0sMzM5NTg6ZnVuY3Rpb24oY2UsSixi'@; put 'KXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO3ZhciBfPSJub2xsYSB5a3NpIGtha3NpIGtvbG1lIG5lbGpceGU0IHZpaXNpIGt1dXNpIHNlaXRzZW1ceGU0biBrYWhkZWtzYW4geWhkZWtzXHhlNG4iLnNwbGl0KCIgIikscD1bIm5vbGxhIiwieWhkZW4iLCJrYWhkZW4iLCJrb2xtZW4iLCJu'@; put 'ZWxqXHhlNG4iLCJ2aWlkZW4iLCJrdXVkZW4iLF9bN10sX1s4XSxfWzldXTtmdW5jdGlvbiBOKEgsUixqLFApe3ZhciBMPSIiO3N3aXRjaChqKXtjYXNlInMiOnJldHVybiBQPyJtdXV0YW1hbiBzZWt1bm5pbiI6Im11dXRhbWEgc2VrdW50aSI7Y2FzZSJzcyI6TD1QPyJzZWt1bm5pbiI6InNl'@; put 'a3VudGlhIjticmVhaztjYXNlIm0iOnJldHVybiBQPyJtaW51dXRpbiI6Im1pbnV1dHRpIjtjYXNlIm1tIjpMPVA/Im1pbnV1dGluIjoibWludXV0dGlhIjticmVhaztjYXNlImgiOnJldHVybiBQPyJ0dW5uaW4iOiJ0dW50aSI7Y2FzZSJoaCI6TD1QPyJ0dW5uaW4iOiJ0dW50aWEiO2JyZWFr'@; put 'O2Nhc2UiZCI6cmV0dXJuIFA/InBceGU0aXZceGU0biI6InBceGU0aXZceGU0IjtjYXNlImRkIjpMPVA/InBceGU0aXZceGU0biI6InBceGU0aXZceGU0XHhlNCI7YnJlYWs7Y2FzZSJNIjpyZXR1cm4gUD8ia3V1a2F1ZGVuIjoia3V1a2F1c2kiO2Nhc2UiTU0iOkw9UD8ia3V1a2F1ZGVuIjoi'@; put 'a3V1a2F1dHRhIjticmVhaztjYXNlInkiOnJldHVybiBQPyJ2dW9kZW4iOiJ2dW9zaSI7Y2FzZSJ5eSI6TD1QPyJ2dW9kZW4iOiJ2dW90dGEifXJldHVybiBmdW5jdGlvbiB3KEgsUil7cmV0dXJuIEg8MTA/Uj9wW0hdOl9bSF06SH0oSCxQKSsiICIrTH1ELmRlZmluZUxvY2FsZSgiZmkiLHtt'@; put 'b250aHM6InRhbW1pa3V1X2hlbG1pa3V1X21hYWxpc2t1dV9odWh0aWt1dV90b3Vrb2t1dV9rZXNceGU0a3V1X2hlaW5ceGU0a3V1X2Vsb2t1dV9zeXlza3V1X2xva2FrdXVfbWFycmFza3V1X2pvdWx1a3V1Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJ0YW1taV9oZWxtaV9tYWFsaXNfaHVo'@; put 'dGlfdG91a29fa2VzXHhlNF9oZWluXHhlNF9lbG9fc3l5c19sb2thX21hcnJhc19qb3VsdSIuc3BsaXQoIl8iKSx3ZWVrZGF5czoic3VubnVudGFpX21hYW5hbnRhaV90aWlzdGFpX2tlc2tpdmlpa2tvX3RvcnN0YWlfcGVyamFudGFpX2xhdWFudGFpIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hv'@; put 'cnQ6InN1X21hX3RpX2tlX3RvX3BlX2xhIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJzdV9tYV90aV9rZV90b19wZV9sYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhILm1tIixMVFM6IkhILm1tLnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRG8gTU1NTVt0YV0gWVlZWSIsTExM'@; put 'OiJEbyBNTU1NW3RhXSBZWVlZLCBba2xvXSBISC5tbSIsTExMTDoiZGRkZCwgRG8gTU1NTVt0YV0gWVlZWSwgW2tsb10gSEgubW0iLGw6IkQuTS5ZWVlZIixsbDoiRG8gTU1NIFlZWVkiLGxsbDoiRG8gTU1NIFlZWVksIFtrbG9dIEhILm1tIixsbGxsOiJkZGQsIERvIE1NTSBZWVlZLCBba2xv'@; put 'XSBISC5tbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbdFx4ZTRuXHhlNFx4ZTRuXSBba2xvXSBMVCIsbmV4dERheToiW2h1b21lbm5hXSBba2xvXSBMVCIsbmV4dFdlZWs6ImRkZGQgW2tsb10gTFQiLGxhc3REYXk6IltlaWxlbl0gW2tsb10gTFQiLGxhc3RXZWVrOiJbdmlpbWVdIGRkZGRbbmFd'@; put 'IFtrbG9dIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBwXHhlNFx4ZTRzdFx4ZTQiLHBhc3Q6IiVzIHNpdHRlbiIsczpOLHNzOk4sbTpOLG1tOk4saDpOLGhoOk4sZDpOLGRkOk4sTTpOLE1NOk4seTpOLHl5Ok59LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xk'@; put 'ezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oYig5NzU4NikpfSw0NjcyMDpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7RC5kZWZpbmVMb2NhbGUoImZpbCIse21vbnRoczoiRW5lcm9fUGVicmVyb19NYXJzb19BYnJpbF9NYXlv'@; put 'X0h1bnlvX0h1bHlvX0Fnb3N0b19TZXR5ZW1icmVfT2t0dWJyZV9Ob2J5ZW1icmVfRGlzeWVtYnJlIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJFbmVfUGViX01hcl9BYnJfTWF5X0h1bl9IdWxfQWdvX1NldF9Pa3RfTm9iX0RpcyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiTGluZ2dvX0x1bmVz'@; put 'X01hcnRlc19NaXllcmt1bGVzX0h1d2ViZXNfQml5ZXJuZXNfU2FiYWRvIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ikxpbl9MdW5fTWFyX01peV9IdXdfQml5X1NhYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiTGlfTHVfTWFfTWlfSHVfQmlfU2FiIi5zcGxpdCgiXyIpLGxvbmdEYXRl'@; put 'Rm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6Ik1NL0QvWVlZWSIsTEw6Ik1NTU0gRCwgWVlZWSIsTExMOiJNTU1NIEQsIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIE1NTU0gREQsIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiTFQgW25nYXlvbmcgYXJhd10iLG5l'@; put 'eHREYXk6IltCdWthcyBuZ10gTFQiLG5leHRXZWVrOiJMVCBbc2Egc3VzdW5vZCBuYV0gZGRkZCIsbGFzdERheToiTFQgW2thaGFwb25dIixsYXN0V2VlazoiTFQgW25vb25nIG5ha2FyYWFuZ10gZGRkZCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToic2EgbG9vYiBuZyAl'@; put 'cyIscGFzdDoiJXMgYW5nIG5ha2FsaXBhcyIsczoiaWxhbmcgc2VndW5kbyIsc3M6IiVkIHNlZ3VuZG8iLG06ImlzYW5nIG1pbnV0byIsbW06IiVkIG1pbnV0byIsaDoiaXNhbmcgb3JhcyIsaGg6IiVkIG9yYXMiLGQ6ImlzYW5nIGFyYXciLGRkOiIlZCBhcmF3IixNOiJpc2FuZyBidXdhbiIs'@; put 'TU06IiVkIGJ1d2FuIix5OiJpc2FuZyB0YW9uIix5eToiJWQgdGFvbiJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0vLG9yZGluYWw6ZnVuY3Rpb24ocCl7cmV0dXJuIHB9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShiKDk3NTg2KSl9LDk4MzUyOmZ1bmN0aW9uKGNlLEosYil7IWZ1'@; put 'bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0IjtELmRlZmluZUxvY2FsZSgiZm8iLHttb250aHM6ImphbnVhcl9mZWJydWFyX21hcnNfYXByXHhlZGxfbWFpX2p1bmlfanVsaV9hdWd1c3Rfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJfZGVzZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Imph'@; put 'bl9mZWJfbWFyX2Fwcl9tYWlfanVuX2p1bF9hdWdfc2VwX29rdF9ub3ZfZGVzIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJzdW5udWRhZ3VyX21ceGUxbmFkYWd1cl90XHhmZHNkYWd1cl9taWt1ZGFndXJfaFx4ZjNzZGFndXJfZnJceGVkZ2dqYWRhZ3VyX2xleWdhcmRhZ3VyIi5zcGxpdCgiXyIp'@; put 'LHdlZWtkYXlzU2hvcnQ6InN1bl9tXHhlMW5fdFx4ZmRzX21pa19oXHhmM3NfZnJceGVkX2xleSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoic3VfbVx4ZTFfdFx4ZmRfbWlfaFx4ZjNfZnJfbGUiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIs'@; put 'TDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQuIE1NTU0sIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x4Y2QgZGFnIGtsLl0gTFQiLG5leHREYXk6IltceGNkIG1vcmdpbiBrbC5dIExUIixuZXh0V2Vl'@; put 'azoiZGRkZCBba2wuXSBMVCIsbGFzdERheToiW1x4Y2QgZ2pceGUxciBrbC5dIExUIixsYXN0V2VlazoiW3NceGVkXHhmMHN0dV0gZGRkZCBba2xdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJ1bSAlcyIscGFzdDoiJXMgc1x4ZWRceGYwYW5pIixzOiJmXHhlMSBz'@; put 'ZWt1bmQiLHNzOiIlZCBzZWt1bmRpciIsbToiZWluIG1pbnV0dHVyIixtbToiJWQgbWludXR0aXIiLGg6ImVpbiB0XHhlZG1pIixoaDoiJWQgdFx4ZWRtYXIiLGQ6ImVpbiBkYWd1ciIsZGQ6IiVkIGRhZ2FyIixNOiJlaW4gbVx4ZTFuYVx4ZjB1ciIsTU06IiVkIG1ceGUxbmFceGYwaXIiLHk6'@; put 'ImVpdHQgXHhlMXIiLHl5OiIlZCBceGUxciJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oYig5NzU4NikpfSw0MjA5NjpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7RC5kZWZp'@; put 'bmVMb2NhbGUoImZyLWNhIix7bW9udGhzOiJqYW52aWVyX2ZceGU5dnJpZXJfbWFyc19hdnJpbF9tYWlfanVpbl9qdWlsbGV0X2FvXHhmYnRfc2VwdGVtYnJlX29jdG9icmVfbm92ZW1icmVfZFx4ZTljZW1icmUiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6ImphbnYuX2ZceGU5dnIuX21hcnNf'@; put 'YXZyLl9tYWlfanVpbl9qdWlsLl9hb1x4ZmJ0X3NlcHQuX29jdC5fbm92Ll9kXHhlOWMuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6ImRpbWFuY2hlX2x1bmRpX21hcmRpX21lcmNyZWRpX2pldWRpX3ZlbmRyZWRpX3NhbWVkaSIuc3BsaXQoIl8iKSx3ZWVrZGF5'@; put 'c1Nob3J0OiJkaW0uX2x1bi5fbWFyLl9tZXIuX2pldS5fdmVuLl9zYW0uIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJkaV9sdV9tYV9tZV9qZV92ZV9zYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIs'@; put 'TDoiWVlZWS1NTS1ERCIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltBdWpvdXJkXHUyMDE5aHVpIFx4ZTBdIExUIixuZXh0RGF5OiJbRGVtYWluIFx4ZTBdIExUIixuZXh0'@; put 'V2VlazoiZGRkZCBbXHhlMF0gTFQiLGxhc3REYXk6IltIaWVyIFx4ZTBdIExUIixsYXN0V2VlazoiZGRkZCBbZGVybmllciBceGUwXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiZGFucyAlcyIscGFzdDoiaWwgeSBhICVzIixzOiJxdWVscXVlcyBzZWNvbmRlcyIs'@; put 'c3M6IiVkIHNlY29uZGVzIixtOiJ1bmUgbWludXRlIixtbToiJWQgbWludXRlcyIsaDoidW5lIGhldXJlIixoaDoiJWQgaGV1cmVzIixkOiJ1biBqb3VyIixkZDoiJWQgam91cnMiLE06InVuIG1vaXMiLE1NOiIlZCBtb2lzIix5OiJ1biBhbiIseXk6IiVkIGFucyJ9LGRheU9mTW9udGhPcmRp'@; put 'bmFsUGFyc2U6L1xkezEsMn0oZXJ8ZSkvLG9yZGluYWw6ZnVuY3Rpb24ocCxOKXtzd2l0Y2goTil7ZGVmYXVsdDpjYXNlIk0iOmNhc2UiUSI6Y2FzZSJEIjpjYXNlIkRERCI6Y2FzZSJkIjpyZXR1cm4gcCsoMT09PXA/ImVyIjoiZSIpO2Nhc2UidyI6Y2FzZSJXIjpyZXR1cm4gcCsoMT09PXA/'@; put 'InJlIjoiZSIpfX19KX0oYig5NzU4NikpfSw5NTc1OTpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7RC5kZWZpbmVMb2NhbGUoImZyLWNoIix7bW9udGhzOiJqYW52aWVyX2ZceGU5dnJpZXJfbWFyc19hdnJpbF9tYWlfanVpbl9qdWlsbGV0X2FvXHhmYnRfc2Vw'@; put 'dGVtYnJlX29jdG9icmVfbm92ZW1icmVfZFx4ZTljZW1icmUiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6ImphbnYuX2ZceGU5dnIuX21hcnNfYXZyLl9tYWlfanVpbl9qdWlsLl9hb1x4ZmJ0X3NlcHQuX29jdC5fbm92Ll9kXHhlOWMuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAs'@; put 'd2Vla2RheXM6ImRpbWFuY2hlX2x1bmRpX21hcmRpX21lcmNyZWRpX2pldWRpX3ZlbmRyZWRpX3NhbWVkaSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJkaW0uX2x1bi5fbWFyLl9tZXIuX2pldS5fdmVuLl9zYW0uIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJkaV9sdV9tYV9tZV9qZV92'@; put 'ZV9zYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIEhIOm1t'@; put 'In0sY2FsZW5kYXI6e3NhbWVEYXk6IltBdWpvdXJkXHUyMDE5aHVpIFx4ZTBdIExUIixuZXh0RGF5OiJbRGVtYWluIFx4ZTBdIExUIixuZXh0V2VlazoiZGRkZCBbXHhlMF0gTFQiLGxhc3REYXk6IltIaWVyIFx4ZTBdIExUIixsYXN0V2VlazoiZGRkZCBbZGVybmllciBceGUwXSBMVCIsc2Ft'@; put 'ZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiZGFucyAlcyIscGFzdDoiaWwgeSBhICVzIixzOiJxdWVscXVlcyBzZWNvbmRlcyIsc3M6IiVkIHNlY29uZGVzIixtOiJ1bmUgbWludXRlIixtbToiJWQgbWludXRlcyIsaDoidW5lIGhldXJlIixoaDoiJWQgaGV1cmVzIixkOiJ1biBq'@; put 'b3VyIixkZDoiJWQgam91cnMiLE06InVuIG1vaXMiLE1NOiIlZCBtb2lzIix5OiJ1biBhbiIseXk6IiVkIGFucyJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oZXJ8ZSkvLG9yZGluYWw6ZnVuY3Rpb24ocCxOKXtzd2l0Y2goTil7ZGVmYXVsdDpjYXNlIk0iOmNhc2UiUSI6Y2Fz'@; put 'ZSJEIjpjYXNlIkRERCI6Y2FzZSJkIjpyZXR1cm4gcCsoMT09PXA/ImVyIjoiZSIpO2Nhc2UidyI6Y2FzZSJXIjpyZXR1cm4gcCsoMT09PXA/InJlIjoiZSIpfX0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KGIoOTc1ODYpKX0sNDA1OTpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNl'@; put 'IHN0cmljdCI7dmFyIE49LyhqYW52XC4/fGZceGU5dnJcLj98bWFyc3xhdnJcLj98bWFpfGp1aW58anVpbFwuP3xhb1x4ZmJ0fHNlcHRcLj98b2N0XC4/fG5vdlwuP3xkXHhlOWNcLj98amFudmllcnxmXHhlOXZyaWVyfG1hcnN8YXZyaWx8bWFpfGp1aW58anVpbGxldHxhb1x4ZmJ0fHNlcHRl'@; put 'bWJyZXxvY3RvYnJlfG5vdmVtYnJlfGRceGU5Y2VtYnJlKS9pLHc9Wy9eamFudi9pLC9eZlx4ZTl2ci9pLC9ebWFycy9pLC9eYXZyL2ksL15tYWkvaSwvXmp1aW4vaSwvXmp1aWwvaSwvXmFvXHhmYnQvaSwvXnNlcHQvaSwvXm9jdC9pLC9ebm92L2ksL15kXHhlOWMvaV07RC5kZWZpbmVMb2Nh'@; put 'bGUoImZyIix7bW9udGhzOiJqYW52aWVyX2ZceGU5dnJpZXJfbWFyc19hdnJpbF9tYWlfanVpbl9qdWlsbGV0X2FvXHhmYnRfc2VwdGVtYnJlX29jdG9icmVfbm92ZW1icmVfZFx4ZTljZW1icmUiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6ImphbnYuX2ZceGU5dnIuX21hcnNfYXZyLl9tYWlf'@; put 'anVpbl9qdWlsLl9hb1x4ZmJ0X3NlcHQuX29jdC5fbm92Ll9kXHhlOWMuIi5zcGxpdCgiXyIpLG1vbnRoc1JlZ2V4Ok4sbW9udGhzU2hvcnRSZWdleDpOLG1vbnRoc1N0cmljdFJlZ2V4Oi9eKGphbnZpZXJ8Zlx4ZTl2cmllcnxtYXJzfGF2cmlsfG1haXxqdWlufGp1aWxsZXR8YW9ceGZidHxz'@; put 'ZXB0ZW1icmV8b2N0b2JyZXxub3ZlbWJyZXxkXHhlOWNlbWJyZSkvaSxtb250aHNTaG9ydFN0cmljdFJlZ2V4Oi8oamFudlwuP3xmXHhlOXZyXC4/fG1hcnN8YXZyXC4/fG1haXxqdWlufGp1aWxcLj98YW9ceGZidHxzZXB0XC4/fG9jdFwuP3xub3ZcLj98ZFx4ZTljXC4/KS9pLG1vbnRoc1Bh'@; put 'cnNlOncsbG9uZ01vbnRoc1BhcnNlOncsc2hvcnRNb250aHNQYXJzZTp3LHdlZWtkYXlzOiJkaW1hbmNoZV9sdW5kaV9tYXJkaV9tZXJjcmVkaV9qZXVkaV92ZW5kcmVkaV9zYW1lZGkiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiZGltLl9sdW4uX21hci5fbWVyLl9qZXUuX3Zlbi5fc2Ft'@; put 'LiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiZGlfbHVfbWFfbWVfamVfdmVfc2EiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1N'@; put 'TU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbQXVqb3VyZFx1MjAxOWh1aSBceGUwXSBMVCIsbmV4dERheToiW0RlbWFpbiBceGUwXSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x4ZTBdIExUIixsYXN0RGF5OiJbSGllciBceGUw'@; put 'XSBMVCIsbGFzdFdlZWs6ImRkZGQgW2Rlcm5pZXIgXHhlMF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImRhbnMgJXMiLHBhc3Q6ImlsIHkgYSAlcyIsczoicXVlbHF1ZXMgc2Vjb25kZXMiLHNzOiIlZCBzZWNvbmRlcyIsbToidW5lIG1pbnV0ZSIsbW06IiVkIG1p'@; put 'bnV0ZXMiLGg6InVuZSBoZXVyZSIsaGg6IiVkIGhldXJlcyIsZDoidW4gam91ciIsZGQ6IiVkIGpvdXJzIix3OiJ1bmUgc2VtYWluZSIsd3c6IiVkIHNlbWFpbmVzIixNOiJ1biBtb2lzIixNTToiJWQgbW9pcyIseToidW4gYW4iLHl5OiIlZCBhbnMifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNl'@; put 'Oi9cZHsxLDJ9KGVyfCkvLG9yZGluYWw6ZnVuY3Rpb24oSCxSKXtzd2l0Y2goUil7Y2FzZSJEIjpyZXR1cm4gSCsoMT09PUg/ImVyIjoiIik7ZGVmYXVsdDpjYXNlIk0iOmNhc2UiUSI6Y2FzZSJEREQiOmNhc2UiZCI6cmV0dXJuIEgrKDE9PT1IPyJlciI6ImUiKTtjYXNlInciOmNhc2UiVyI6'@; put 'cmV0dXJuIEgrKDE9PT1IPyJyZSI6ImUiKX19LHdlZWs6e2RvdzoxLGRveTo0fX0pfShiKDk3NTg2KSl9LDE1OTU4OmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0Ijt2YXIgXz0iamFuLl9mZWIuX21ydC5fYXByLl9tYWlfanVuLl9qdWwuX2F1Zy5fc2VwLl9va3Qu'@; put 'X25vdi5fZGVzLiIuc3BsaXQoIl8iKSxwPSJqYW5fZmViX21ydF9hcHJfbWFpX2p1bl9qdWxfYXVnX3NlcF9va3Rfbm92X2RlcyIuc3BsaXQoIl8iKTtELmRlZmluZUxvY2FsZSgiZnkiLHttb250aHM6Imphbm5ld2FyaXNfZmVicmV3YXJpc19tYWFydF9hcHJpbF9tYWFpZV9qdW55X2p1bHlf'@; put 'YXVndXN0dXNfc2VwdGltYmVyX29rdG9iZXJfbm92aW1iZXJfZGVzaW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6ZnVuY3Rpb24odyxGKXtyZXR1cm4gdz8vLU1NTS0vLnRlc3QoRik/cFt3Lm1vbnRoKCldOl9bdy5tb250aCgpXTpffSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlz'@; put 'OiJzbmVpbl9tb2FuZGVpX3RpaXNkZWlfd29hbnNkZWlfdG9uZ2Vyc2RlaV9mcmVlZF9zbmVvbiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJzaS5fbW8uX3RpLl93by5fdG8uX2ZyLl9zby4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlNpX01vX1RpX1dvX1RvX0ZyX1NvIi5zcGxpdCgi'@; put 'XyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC1NTS1ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7'@; put 'c2FtZURheToiW2hqb2VkIG9tXSBMVCIsbmV4dERheToiW21vYXJuIG9tXSBMVCIsbmV4dFdlZWs6ImRkZGQgW29tXSBMVCIsbGFzdERheToiW2p1c3RlciBvbV0gTFQiLGxhc3RXZWVrOiJbXHhmNGZyXHhmYm5lXSBkZGRkIFtvbV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntm'@; put 'dXR1cmU6Im9lciAlcyIscGFzdDoiJXMgbHluIixzOiJpbiBwZWFyIHNla29uZGVuIixzczoiJWQgc2Vrb25kZW4iLG06ImllbiBtaW5ceGZhdCIsbW06IiVkIG1pbnV0ZW4iLGg6ImllbiBvZXJlIixoaDoiJWQgb2VyZW4iLGQ6ImllbiBkZWkiLGRkOiIlZCBkYWdlbiIsTToiaWVuIG1vYW5u'@; put 'ZSIsTU06IiVkIG1vYW5uZW4iLHk6ImllbiBqaWVyIix5eToiJWQgamllcnJlbiJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oc3RlfGRlKS8sb3JkaW5hbDpmdW5jdGlvbih3KXtyZXR1cm4gdysoMT09PXd8fDg9PT13fHx3Pj0yMD8ic3RlIjoiZGUiKX0sd2Vlazp7ZG93OjEs'@; put 'ZG95OjR9fSl9KGIoOTc1ODYpKX0sOTQxNDM6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO0QuZGVmaW5lTG9jYWxlKCJnYSIse21vbnRoczpbIkVhblx4ZTFpciIsIkZlYWJocmEiLCJNXHhlMXJ0YSIsIkFpYnJlXHhlMW4iLCJCZWFsdGFpbmUiLCJNZWl0aGVh'@; put 'bWgiLCJJXHhmYWlsIiwiTFx4ZmFuYXNhIiwiTWVceGUxbiBGXHhmM21oYWlyIiwiRGVpcmVhZGggRlx4ZjNtaGFpciIsIlNhbWhhaW4iLCJOb2xsYWlnIl0sbW9udGhzU2hvcnQ6WyJFYW4iLCJGZWFiaCIsIk1ceGUxcnQiLCJBaWIiLCJCZWFsIiwiTWVpdGgiLCJJXHhmYWlsIiwiTFx4ZmFu'@; put 'IiwiTS5GLiIsIkQuRi4iLCJTYW1oIiwiTm9sbCJdLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6WyJEXHhlOSBEb21obmFpZ2giLCJEXHhlOSBMdWFpbiIsIkRceGU5IE1ceGUxaXJ0IiwiRFx4ZTkgQ1x4ZTlhZGFvaW4iLCJEXHhlOWFyZGFvaW4iLCJEXHhlOSBoQW9pbmUiLCJEXHhl'@; put 'OSBTYXRoYWlybiJdLHdlZWtkYXlzU2hvcnQ6WyJEb21oIiwiTHVhbiIsIk1ceGUxaXJ0IiwiQ1x4ZTlhZCIsIkRceGU5YXIiLCJBb2luZSIsIlNhdGgiXSx3ZWVrZGF5c01pbjpbIkRvIiwiTHUiLCJNXHhlMSIsIkNceGU5IiwiRFx4ZTkiLCJBIiwiU2EiXSxsb25nRGF0ZUZvcm1hdDp7TFQ6'@; put 'IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltJbm5pdSBhZ10gTFQiLG5leHREYXk6IltBbVx4ZTFyYWNo'@; put 'IGFnXSBMVCIsbmV4dFdlZWs6ImRkZGQgW2FnXSBMVCIsbGFzdERheToiW0lublx4ZTkgYWddIExUIixsYXN0V2VlazoiZGRkZCBbc2VvIGNhaXRlXSBbYWddIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJpICVzIixwYXN0OiIlcyBceGYzIHNoaW4iLHM6ImNceGZh'@; put 'cGxhIHNvaWNpbmQiLHNzOiIlZCBzb2ljaW5kIixtOiJuXHhmM2ltXHhlOWFkIixtbToiJWQgblx4ZjNpbVx4ZTlhZCIsaDoidWFpciBhbiBjaGxvaWciLGhoOiIlZCB1YWlyIGFuIGNobG9pZyIsZDoibFx4ZTEiLGRkOiIlZCBsXHhlMSIsTToibVx4ZWQiLE1NOiIlZCBtXHhlZG9ubmEiLHk6'@; put 'ImJsaWFpbiIseXk6IiVkIGJsaWFpbiJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oZHxuYXxtaCkvLG9yZGluYWw6ZnVuY3Rpb24oUil7cmV0dXJuIFIrKDE9PT1SPyJkIjpSJTEwPT0yPyJuYSI6Im1oIil9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShiKDk3NTg2KSl9LDY3MDI4'@; put 'OmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0IjtELmRlZmluZUxvY2FsZSgiZ2QiLHttb250aHM6WyJBbSBGYW9pbGxlYWNoIiwiQW4gR2VhcnJhbiIsIkFtIE1ceGUwcnQiLCJBbiBHaWJsZWFuIiwiQW4gQ1x4ZThpdGVhbiIsIkFuIHQtXHhkMmdtaGlvcyIsIkFu'@; put 'IHQtSXVjaGFyIiwiQW4gTFx4ZjluYXN0YWwiLCJBbiB0LVN1bHRhaW4iLCJBbiBEXHhlMG1oYWlyIiwiQW4gdC1TYW1oYWluIiwiQW4gRFx4ZjliaGxhY2hkIl0sbW9udGhzU2hvcnQ6WyJGYW9pIiwiR2VhciIsIk1ceGUwcnQiLCJHaWJsIiwiQ1x4ZThpdCIsIlx4ZDJnbWgiLCJJdWNoIiwi'@; put 'TFx4ZjluIiwiU3VsdCIsIkRceGUwbWgiLCJTYW1oIiwiRFx4ZjliaCJdLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6WyJEaWRceGYybWhuYWljaCIsIkRpbHVhaW4iLCJEaW1ceGUwaXJ0IiwiRGljaWFkYWluIiwiRGlhcmRhb2luIiwiRGloYW9pbmUiLCJEaXNhdGhhaXJuZSJdLHdl'@; put 'ZWtkYXlzU2hvcnQ6WyJEaWQiLCJEaWwiLCJEaW0iLCJEaWMiLCJEaWEiLCJEaWgiLCJEaXMiXSx3ZWVrZGF5c01pbjpbIkRceGYyIiwiTHUiLCJNXHhlMCIsIkNpIiwiQXIiLCJIYSIsIlNhIl0sbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZ'@; put 'WSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbQW4tZGl1Z2ggYWlnXSBMVCIsbmV4dERheToiW0EtbVx4ZTBpcmVhY2ggYWlnXSBMVCIsbmV4dFdlZWs6ImRkZGQgW2Fp'@; put 'Z10gTFQiLGxhc3REYXk6IltBbi1kXHhlOCBhaWddIExUIixsYXN0V2VlazoiZGRkZCBbc2VvIGNoYWlkaF0gW2FpZ10gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImFubiBhbiAlcyIscGFzdDoiYmhvIGNoaW9ubiAlcyIsczoiYmVhZ2FuIGRpb2dhbiIsc3M6IiVk'@; put 'IGRpb2dhbiIsbToibWlvbmFpZCIsbW06IiVkIG1pb25haWRlYW4iLGg6InVhaXIiLGhoOiIlZCB1YWlyZWFuIixkOiJsYXRoYSIsZGQ6IiVkIGxhdGhhIixNOiJtXHhlY29zIixNTToiJWQgbVx4ZWNvc2FuIix5OiJibGlhZGhuYSIseXk6IiVkIGJsaWFkaG5hIn0sZGF5T2ZNb250aE9yZGlu'@; put 'YWxQYXJzZTovXGR7MSwyfShkfG5hfG1oKS8sb3JkaW5hbDpmdW5jdGlvbihSKXtyZXR1cm4gUisoMT09PVI/ImQiOlIlMTA9PTI/Im5hIjoibWgiKX0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KGIoOTc1ODYpKX0sODA0Mjg6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJp'@; put 'Y3QiO0QuZGVmaW5lTG9jYWxlKCJnbCIse21vbnRoczoieGFuZWlyb19mZWJyZWlyb19tYXJ6b19hYnJpbF9tYWlvX3h1XHhmMW9feHVsbG9fYWdvc3RvX3NldGVtYnJvX291dHVicm9fbm92ZW1icm9fZGVjZW1icm8iLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Inhhbi5fZmViLl9tYXIuX2Fi'@; put 'ci5fbWFpLl94dVx4ZjEuX3h1bC5fYWdvLl9zZXQuX291dC5fbm92Ll9kZWMuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6ImRvbWluZ29fbHVuc19tYXJ0ZXNfbVx4ZTlyY29yZXNfeG92ZXNfdmVucmVzX3NceGUxYmFkbyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1No'@; put 'b3J0OiJkb20uX2x1bi5fbWFyLl9tXHhlOXIuX3hvdi5fdmVuLl9zXHhlMWIuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJkb19sdV9tYV9tXHhlOV94b192ZV9zXHhlMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6'@; put 'bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIFtkZV0gTU1NTSBbZGVdIFlZWVkiLExMTDoiRCBbZGVdIE1NTU0gW2RlXSBZWVlZIEg6bW0iLExMTEw6ImRkZGQsIEQgW2RlXSBNTU1NIFtkZV0gWVlZWSBIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW2hveGUg'@; put 'IisoMSE9PXRoaXMuaG91cnMoKT8iXHhlMXMiOiJceGUxIikrIl0gTFQifSxuZXh0RGF5OmZ1bmN0aW9uKCl7cmV0dXJuIlttYVx4ZjFceGUxICIrKDEhPT10aGlzLmhvdXJzKCk/Ilx4ZTFzIjoiXHhlMSIpKyJdIExUIn0sbmV4dFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4iZGRkZCBbIisoMSE9'@; put 'PXRoaXMuaG91cnMoKT8iXHhlMXMiOiJhIikrIl0gTFQifSxsYXN0RGF5OmZ1bmN0aW9uKCl7cmV0dXJuIltvbnRlICIrKDEhPT10aGlzLmhvdXJzKCk/Ilx4ZTEiOiJhIikrIl0gTFQifSxsYXN0V2VlazpmdW5jdGlvbigpe3JldHVybiJbb10gZGRkZCBbcGFzYWRvICIrKDEhPT10aGlzLmhv'@; put 'dXJzKCk/Ilx4ZTFzIjoiYSIpKyJdIExUIn0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTpmdW5jdGlvbihwKXtyZXR1cm4gMD09PXAuaW5kZXhPZigidW4iKT8ibiIrcDoiZW4gIitwfSxwYXN0OiJoYWkgJXMiLHM6InVucyBzZWd1bmRvcyIsc3M6IiVkIHNlZ3VuZG9zIixt'@; put 'OiJ1biBtaW51dG8iLG1tOiIlZCBtaW51dG9zIixoOiJ1bmhhIGhvcmEiLGhoOiIlZCBob3JhcyIsZDoidW4gZFx4ZWRhIixkZDoiJWQgZFx4ZWRhcyIsTToidW4gbWVzIixNTToiJWQgbWVzZXMiLHk6InVuIGFubyIseXk6IiVkIGFub3MifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsx'@; put 'LDJ9XHhiYS8sb3JkaW5hbDoiJWRceGJhIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oYig5NzU4NikpfSw3Njg2MTpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gXyhOLHcsRixIKXt2YXIgUj17czpbIlx1MDkyNVx1MDk0Ylx1MDkyMVx1MDkyZlx1'@; put 'MDkzZSBcdTA5MzhcdTA5NDVcdTA5MTVcdTA5MDJcdTA5MjFcdTA5M2VcdTA5MDJcdTA5MjhcdTA5NDAiLCJcdTA5MjVcdTA5NGJcdTA5MjFcdTA5NDcgXHUwOTM4XHUwOTQ1XHUwOTE1XHUwOTAyXHUwOTIxIl0sc3M6W04rIiBcdTA5MzhcdTA5NDVcdTA5MTVcdTA5MDJcdTA5MjFcdTA5M2Vc'@; put 'dTA5MDJcdTA5MjhcdTA5NDAiLE4rIiBcdTA5MzhcdTA5NDVcdTA5MTVcdTA5MDJcdTA5MjEiXSxtOlsiXHUwOTBmXHUwOTE1XHUwOTNlIFx1MDkyZVx1MDkzZlx1MDkyM1x1MDkxZlx1MDkzZVx1MDkyOCIsIlx1MDkwZlx1MDkxNSBcdTA5MmVcdTA5M2ZcdTA5MjhcdTA5NDJcdTA5MWYiXSxt'@; put 'bTpbTisiIFx1MDkyZVx1MDkzZlx1MDkyM1x1MDkxZlx1MDkzZVx1MDkwMlx1MDkyOFx1MDk0MCIsTisiIFx1MDkyZVx1MDkzZlx1MDkyM1x1MDkxZlx1MDkzZVx1MDkwMiJdLGg6WyJcdTA5MGZcdTA5MTVcdTA5M2UgXHUwOTM1XHUwOTMwXHUwOTNlXHUwOTI4IiwiXHUwOTBmXHUwOTE1IFx1'@; put 'MDkzNVx1MDkzMCJdLGhoOltOKyIgXHUwOTM1XHUwOTMwXHUwOTNlXHUwOTAyXHUwOTI4XHUwOTQwIixOKyIgXHUwOTM1XHUwOTMwXHUwOTNlXHUwOTAyIl0sZDpbIlx1MDkwZlx1MDkxNVx1MDkzZSBcdTA5MjZcdTA5M2ZcdTA5MzhcdTA5M2VcdTA5MjgiLCJcdTA5MGZcdTA5MTUgXHUwOTI2'@; put 'XHUwOTQwXHUwOTM4Il0sZGQ6W04rIiBcdTA5MjZcdTA5M2ZcdTA5MzhcdTA5M2VcdTA5MDJcdTA5MjhcdTA5NDAiLE4rIiBcdTA5MjZcdTA5NDBcdTA5MzgiXSxNOlsiXHUwOTBmXHUwOTE1XHUwOTNlIFx1MDkyZVx1MDk0ZFx1MDkzOVx1MDkyZlx1MDkyOFx1MDk0ZFx1MDkyZlx1MDkzZVx1'@; put 'MDkyOCIsIlx1MDkwZlx1MDkxNSBcdTA5MmVcdTA5NGRcdTA5MzlcdTA5MmZcdTA5MjhcdTA5NGIiXSxNTTpbTisiIFx1MDkyZVx1MDk0ZFx1MDkzOVx1MDkyZlx1MDkyOFx1MDk0ZFx1MDkyZlx1MDkzZVx1MDkyOFx1MDk0MCIsTisiIFx1MDkyZVx1MDk0ZFx1MDkzOVx1MDkyZlx1MDkyOFx1'@; put 'MDk0NyJdLHk6WyJcdTA5MGZcdTA5MTVcdTA5M2UgXHUwOTM1XHUwOTMwXHUwOTRkXHUwOTM4XHUwOTNlXHUwOTI4IiwiXHUwOTBmXHUwOTE1IFx1MDkzNVx1MDkzMFx1MDk0ZFx1MDkzOCJdLHl5OltOKyIgXHUwOTM1XHUwOTMwXHUwOTRkXHUwOTM4XHUwOTNlXHUwOTAyXHUwOTI4XHUwOTQw'@; put 'IixOKyIgXHUwOTM1XHUwOTMwXHUwOTRkXHUwOTM4XHUwOTNlXHUwOTAyIl19O3JldHVybiBIP1JbRl1bMF06UltGXVsxXX1ELmRlZmluZUxvY2FsZSgiZ29tLWRldmEiLHttb250aHM6e3N0YW5kYWxvbmU6Ilx1MDkxY1x1MDkzZVx1MDkyOFx1MDk0N1x1MDkzNVx1MDkzZVx1MDkzMFx1MDk0'@; put 'MF9cdTA5MmJcdTA5NDdcdTA5MmNcdTA5NGRcdTA5MzBcdTA5NDFcdTA5MzVcdTA5M2VcdTA5MzBcdTA5NDBfXHUwOTJlXHUwOTNlXHUwOTMwXHUwOTRkXHUwOTFhX1x1MDkwZlx1MDkyYVx1MDk0ZFx1MDkzMFx1MDk0MFx1MDkzMl9cdTA5MmVcdTA5NDdfXHUwOTFjXHUwOTQyXHUwOTI4X1x1'@; put 'MDkxY1x1MDk0MVx1MDkzMlx1MDkyZl9cdTA5MTFcdTA5MTdcdTA5MzhcdTA5NGRcdTA5MWZfXHUwOTM4XHUwOTJhXHUwOTRkXHUwOTFmXHUwOTQ3XHUwOTAyXHUwOTJjXHUwOTMwX1x1MDkxMVx1MDkxNVx1MDk0ZFx1MDkxZlx1MDk0Ylx1MDkyY1x1MDkzMF9cdTA5MjhcdTA5NGJcdTA5MzVc'@; put 'dTA5NGRcdTA5MzlcdTA5NDdcdTA5MDJcdTA5MmNcdTA5MzBfXHUwOTIxXHUwOTNmXHUwOTM4XHUwOTQ3XHUwOTAyXHUwOTJjXHUwOTMwIi5zcGxpdCgiXyIpLGZvcm1hdDoiXHUwOTFjXHUwOTNlXHUwOTI4XHUwOTQ3XHUwOTM1XHUwOTNlXHUwOTMwXHUwOTQwXHUwOTFhXHUwOTRkXHUwOTJm'@; put 'XHUwOTNlX1x1MDkyYlx1MDk0N1x1MDkyY1x1MDk0ZFx1MDkzMFx1MDk0MVx1MDkzNVx1MDkzZVx1MDkzMFx1MDk0MFx1MDkxYVx1MDk0ZFx1MDkyZlx1MDkzZV9cdTA5MmVcdTA5M2VcdTA5MzBcdTA5NGRcdTA5MWFcdTA5M2VcdTA5MWFcdTA5NGRcdTA5MmZcdTA5M2VfXHUwOTBmXHUwOTJh'@; put 'XHUwOTRkXHUwOTMwXHUwOTQwXHUwOTMyXHUwOTNlXHUwOTFhXHUwOTRkXHUwOTJmXHUwOTNlX1x1MDkyZVx1MDk0N1x1MDkyZlx1MDkzZVx1MDkxYVx1MDk0ZFx1MDkyZlx1MDkzZV9cdTA5MWNcdTA5NDJcdTA5MjhcdTA5M2VcdTA5MWFcdTA5NGRcdTA5MmZcdTA5M2VfXHUwOTFjXHUwOTQx'@; put 'XHUwOTMyXHUwOTJmXHUwOTNlXHUwOTFhXHUwOTRkXHUwOTJmXHUwOTNlX1x1MDkxMVx1MDkxN1x1MDkzOFx1MDk0ZFx1MDkxZlx1MDkzZVx1MDkxYVx1MDk0ZFx1MDkyZlx1MDkzZV9cdTA5MzhcdTA5MmFcdTA5NGRcdTA5MWZcdTA5NDdcdTA5MDJcdTA5MmNcdTA5MzBcdTA5M2VcdTA5MWFc'@; put 'dTA5NGRcdTA5MmZcdTA5M2VfXHUwOTExXHUwOTE1XHUwOTRkXHUwOTFmXHUwOTRiXHUwOTJjXHUwOTMwXHUwOTNlXHUwOTFhXHUwOTRkXHUwOTJmXHUwOTNlX1x1MDkyOFx1MDk0Ylx1MDkzNVx1MDk0ZFx1MDkzOVx1MDk0N1x1MDkwMlx1MDkyY1x1MDkzMFx1MDkzZVx1MDkxYVx1MDk0ZFx1'@; put 'MDkyZlx1MDkzZV9cdTA5MjFcdTA5M2ZcdTA5MzhcdTA5NDdcdTA5MDJcdTA5MmNcdTA5MzBcdTA5M2VcdTA5MWFcdTA5NGRcdTA5MmZcdTA5M2UiLnNwbGl0KCJfIiksaXNGb3JtYXQ6L01NTU0oXHMpK0Rbb0RdPy99LG1vbnRoc1Nob3J0OiJcdTA5MWNcdTA5M2VcdTA5MjhcdTA5NDcuX1x1'@; put 'MDkyYlx1MDk0N1x1MDkyY1x1MDk0ZFx1MDkzMFx1MDk0MS5fXHUwOTJlXHUwOTNlXHUwOTMwXHUwOTRkXHUwOTFhX1x1MDkwZlx1MDkyYVx1MDk0ZFx1MDkzMFx1MDk0MC5fXHUwOTJlXHUwOTQ3X1x1MDkxY1x1MDk0Mlx1MDkyOF9cdTA5MWNcdTA5NDFcdTA5MzIuX1x1MDkxMVx1MDkxNy5f'@; put 'XHUwOTM4XHUwOTJhXHUwOTRkXHUwOTFmXHUwOTQ3XHUwOTAyLl9cdTA5MTFcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NGIuX1x1MDkyOFx1MDk0Ylx1MDkzNVx1MDk0ZFx1MDkzOVx1MDk0N1x1MDkwMi5fXHUwOTIxXHUwOTNmXHUwOTM4XHUwOTQ3XHUwOTAyLiIuc3BsaXQoIl8iKSxtb250aHNQ'@; put 'YXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJcdTA5MDZcdTA5MmZcdTA5MjRcdTA5M2VcdTA5MzBfXHUwOTM4XHUwOTRiXHUwOTJlXHUwOTNlXHUwOTMwX1x1MDkyZVx1MDkwMlx1MDkxN1x1MDkzM1x1MDkzZVx1MDkzMF9cdTA5MmNcdTA5NDFcdTA5MjdcdTA5MzVcdTA5M2VcdTA5MzBfXHUwOTJj'@; put 'XHUwOTNmXHUwOTMwXHUwOTQ3XHUwOTM4XHUwOTRkXHUwOTI0XHUwOTNlXHUwOTMwX1x1MDkzOFx1MDk0MVx1MDkxNVx1MDk0ZFx1MDkzMFx1MDkzZVx1MDkzMF9cdTA5MzZcdTA5NDdcdTA5MjhcdTA5MzVcdTA5M2VcdTA5MzAiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwOTA2XHUw'@; put 'OTJmXHUwOTI0Ll9cdTA5MzhcdTA5NGJcdTA5MmUuX1x1MDkyZVx1MDkwMlx1MDkxN1x1MDkzMy5fXHUwOTJjXHUwOTQxXHUwOTI3Ll9cdTA5MmNcdTA5NGRcdTA5MzBcdTA5NDdcdTA5MzhcdTA5NGRcdTA5MjQuX1x1MDkzOFx1MDk0MVx1MDkxNVx1MDk0ZFx1MDkzMC5fXHUwOTM2XHUwOTQ3'@; put 'XHUwOTI4LiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwOTA2X1x1MDkzOFx1MDk0Yl9cdTA5MmVcdTA5MDJfXHUwOTJjXHUwOTQxX1x1MDkyY1x1MDk0ZFx1MDkzMFx1MDk0N19cdTA5MzhcdTA5NDFfXHUwOTM2XHUwOTQ3Ii5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxs'@; put 'b25nRGF0ZUZvcm1hdDp7TFQ6IkEgaDptbSBbXHUwOTM1XHUwOTNlXHUwOTFjXHUwOTI0XHUwOTNlXHUwOTAyXSIsTFRTOiJBIGg6bW06c3MgW1x1MDkzNVx1MDkzZVx1MDkxY1x1MDkyNFx1MDkzZVx1MDkwMl0iLEw6IkRELU1NLVlZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0g'@; put 'WVlZWSBBIGg6bW0gW1x1MDkzNVx1MDkzZVx1MDkxY1x1MDkyNFx1MDkzZVx1MDkwMl0iLExMTEw6ImRkZGQsIE1NTU0gRG8sIFlZWVksIEEgaDptbSBbXHUwOTM1XHUwOTNlXHUwOTFjXHUwOTI0XHUwOTNlXHUwOTAyXSIsbGxsbDoiZGRkLCBEIE1NTSBZWVlZLCBBIGg6bW0gW1x1MDkzNVx1'@; put 'MDkzZVx1MDkxY1x1MDkyNFx1MDkzZVx1MDkwMl0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDkwNlx1MDkyZlx1MDkxY10gTFQiLG5leHREYXk6IltcdTA5MmJcdTA5M2VcdTA5MzJcdTA5NGRcdTA5MmZcdTA5M2VcdTA5MDJdIExUIixuZXh0V2VlazoiW1x1MDkyYlx1MDk0MVx1MDkyMVx1'@; put 'MDkzMlx1MDk0Yl0gZGRkZFssXSBMVCIsbGFzdERheToiW1x1MDkxNVx1MDkzZVx1MDkzMl0gTFQiLGxhc3RXZWVrOiJbXHUwOTJiXHUwOTNlXHUwOTFmXHUwOTMyXHUwOTRiXSBkZGRkWyxdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyIscGFzdDoiJXMgXHUw'@; put 'OTA2XHUwOTI2XHUwOTQwXHUwOTAyIixzOl8sc3M6XyxtOl8sbW06XyxoOl8saGg6XyxkOl8sZGQ6XyxNOl8sTU06Xyx5Ol8seXk6X30sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShcdTA5MzVcdTA5NDdcdTA5MzApLyxvcmRpbmFsOmZ1bmN0aW9uKE4sdyl7cmV0dXJuIkQiPT09'@; put 'dz9OKyJcdTA5MzVcdTA5NDdcdTA5MzAiOk59LHdlZWs6e2RvdzowLGRveTozfSxtZXJpZGllbVBhcnNlOi9cdTA5MzBcdTA5M2VcdTA5MjRcdTA5NDB8XHUwOTM4XHUwOTE1XHUwOTNlXHUwOTMzXHUwOTQwXHUwOTAyfFx1MDkyNlx1MDkyOFx1MDkyYVx1MDkzZVx1MDkzMFx1MDkzZVx1MDkw'@; put 'MnxcdTA5MzhcdTA5M2VcdTA5MDJcdTA5MWNcdTA5NDcvLG1lcmlkaWVtSG91cjpmdW5jdGlvbihOLHcpe3JldHVybiAxMj09PU4mJihOPTApLCJcdTA5MzBcdTA5M2VcdTA5MjRcdTA5NDAiPT09dz9OPDQ/TjpOKzEyOiJcdTA5MzhcdTA5MTVcdTA5M2VcdTA5MzNcdTA5NDBcdTA5MDIiPT09'@; put 'dz9OOiJcdTA5MjZcdTA5MjhcdTA5MmFcdTA5M2VcdTA5MzBcdTA5M2VcdTA5MDIiPT09dz9OPjEyP046TisxMjoiXHUwOTM4XHUwOTNlXHUwOTAyXHUwOTFjXHUwOTQ3Ij09PXc/TisxMjp2b2lkIDB9LG1lcmlkaWVtOmZ1bmN0aW9uKE4sdyxGKXtyZXR1cm4gTjw0PyJcdTA5MzBcdTA5M2Vc'@; put 'dTA5MjRcdTA5NDAiOk48MTI/Ilx1MDkzOFx1MDkxNVx1MDkzZVx1MDkzM1x1MDk0MFx1MDkwMiI6TjwxNj8iXHUwOTI2XHUwOTI4XHUwOTJhXHUwOTNlXHUwOTMwXHUwOTNlXHUwOTAyIjpOPDIwPyJcdTA5MzhcdTA5M2VcdTA5MDJcdTA5MWNcdTA5NDciOiJcdTA5MzBcdTA5M2VcdTA5MjRc'@; put 'dTA5NDAifX0pfShiKDk3NTg2KSl9LDU3NzE4OmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBfKE4sdyxGLEgpe3ZhciBSPXtzOlsidGhvZGRlYSBzZWtvbmRhbW5pIiwidGhvZGRlIHNla29uZCJdLHNzOltOKyIgc2Vrb25kYW1uaSIsTisiIHNl'@; put 'a29uZCJdLG06WyJla2EgbWludGFuIiwiZWsgbWludXQiXSxtbTpbTisiIG1pbnRhbW5pIixOKyIgbWludGFtIl0saDpbImVrYSB2b3JhbiIsImVrIHZvciJdLGhoOltOKyIgdm9yYW1uaSIsTisiIHZvcmFtIl0sZDpbImVrYSBkaXNhbiIsImVrIGRpcyJdLGRkOltOKyIgZGlzYW1uaSIsTisi'@; put 'IGRpcyJdLE06WyJla2EgbWhvaW5lYW4iLCJlayBtaG9pbm8iXSxNTTpbTisiIG1ob2luZWFtbmkiLE4rIiBtaG9pbmUiXSx5OlsiZWthIHZvcnNhbiIsImVrIHZvcm9zIl0seXk6W04rIiB2b3JzYW1uaSIsTisiIHZvcnNhbSJdfTtyZXR1cm4gSD9SW0ZdWzBdOlJbRl1bMV19RC5kZWZpbmVM'@; put 'b2NhbGUoImdvbS1sYXRuIix7bW9udGhzOntzdGFuZGFsb25lOiJKYW5lcl9GZWJyZXJfTWFyc19BYnJpbF9NYWlfSnVuX0p1bGFpX0Fnb3N0X1NldGVtYnJfT3R1YnJfTm92ZW1icl9EZXplbWJyIi5zcGxpdCgiXyIpLGZvcm1hdDoiSmFuZXJhY2hlYV9GZWJyZXJhY2hlYV9NYXJzYWNoZWFf'@; put 'QWJyaWxhY2hlYV9NYWlhY2hlYV9KdW5hY2hlYV9KdWxhaWFjaGVhX0Fnb3N0YWNoZWFfU2V0ZW1icmFjaGVhX090dWJyYWNoZWFfTm92ZW1icmFjaGVhX0RlemVtYnJhY2hlYSIuc3BsaXQoIl8iKSxpc0Zvcm1hdDovTU1NTShccykrRFtvRF0/L30sbW9udGhzU2hvcnQ6Ikphbi5fRmViLl9N'@; put 'YXJzX0Fici5fTWFpX0p1bl9KdWwuX0Fnby5fU2V0Ll9PdHUuX05vdi5fRGV6LiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJBaXRhcl9Tb21hcl9Nb25nbGxhcl9CdWRodmFyX0JpcmVzdGFyX1N1a3Jhcl9Tb24ndmFyIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hv'@; put 'cnQ6IkFpdC5fU29tLl9Nb24uX0J1ZC5fQnJlLl9TdWsuX1Nvbi4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IkFpX1NtX01vX0J1X0JyX1N1X1NuIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkEgaDptbSBbdmF6dGFdIixMVFM6IkEgaDpt'@; put 'bTpzcyBbdmF6dGFdIixMOiJERC1NTS1ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgQSBoOm1tIFt2YXp0YV0iLExMTEw6ImRkZGQsIE1NTU0gRG8sIFlZWVksIEEgaDptbSBbdmF6dGFdIixsbGxsOiJkZGQsIEQgTU1NIFlZWVksIEEgaDptbSBbdmF6dGFdIn0sY2Fs'@; put 'ZW5kYXI6e3NhbWVEYXk6IltBaXpdIExUIixuZXh0RGF5OiJbRmFsZWFtXSBMVCIsbmV4dFdlZWs6IltGdWRkbG9dIGRkZGRbLF0gTFQiLGxhc3REYXk6IltLYWxdIExUIixsYXN0V2VlazoiW0ZhdHRsb10gZGRkZFssXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToi'@; put 'JXMiLHBhc3Q6IiVzIGFkaW0iLHM6XyxzczpfLG06XyxtbTpfLGg6XyxoaDpfLGQ6XyxkZDpfLE06XyxNTTpfLHk6Xyx5eTpffSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KGVyKS8sb3JkaW5hbDpmdW5jdGlvbihOLHcpe3JldHVybiJEIj09PXc/TisiZXIiOk59LHdlZWs6e2Rv'@; put 'dzowLGRveTozfSxtZXJpZGllbVBhcnNlOi9yYXRpfHNva2FsbGltfGRvbnBhcmFtfHNhbmplLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oTix3KXtyZXR1cm4gMTI9PT1OJiYoTj0wKSwicmF0aSI9PT13P048ND9OOk4rMTI6InNva2FsbGltIj09PXc/TjoiZG9ucGFyYW0iPT09dz9OPjEyP046'@; put 'TisxMjoic2FuamUiPT09dz9OKzEyOnZvaWQgMH0sbWVyaWRpZW06ZnVuY3Rpb24oTix3LEYpe3JldHVybiBOPDQ/InJhdGkiOk48MTI/InNva2FsbGltIjpOPDE2PyJkb25wYXJhbSI6TjwyMD8ic2FuamUiOiJyYXRpIn19KX0oYig5NzU4NikpfSwyNjgyNzpmdW5jdGlvbihjZSxKLGIpeyFm'@; put 'dW5jdGlvbihEKXsidXNlIHN0cmljdCI7dmFyIF89ezE6Ilx1MGFlNyIsMjoiXHUwYWU4IiwzOiJcdTBhZTkiLDQ6Ilx1MGFlYSIsNToiXHUwYWViIiw2OiJcdTBhZWMiLDc6Ilx1MGFlZCIsODoiXHUwYWVlIiw5OiJcdTBhZWYiLDA6Ilx1MGFlNiJ9LHA9eyJcdTBhZTciOiIxIiwiXHUwYWU4'@; put 'IjoiMiIsIlx1MGFlOSI6IjMiLCJcdTBhZWEiOiI0IiwiXHUwYWViIjoiNSIsIlx1MGFlYyI6IjYiLCJcdTBhZWQiOiI3IiwiXHUwYWVlIjoiOCIsIlx1MGFlZiI6IjkiLCJcdTBhZTYiOiIwIn07RC5kZWZpbmVMb2NhbGUoImd1Iix7bW9udGhzOiJcdTBhOWNcdTBhYmVcdTBhYThcdTBhY2Rc'@; put 'dTBhYWZcdTBhYzFcdTBhODZcdTBhYjBcdTBhYzBfXHUwYWFiXHUwYWM3XHUwYWFjXHUwYWNkXHUwYWIwXHUwYWMxXHUwYTg2XHUwYWIwXHUwYWMwX1x1MGFhZVx1MGFiZVx1MGFiMFx1MGFjZFx1MGE5YV9cdTBhOGZcdTBhYWFcdTBhY2RcdTBhYjBcdTBhYmZcdTBhYjJfXHUwYWFlXHUwYWM3'@; put 'X1x1MGE5Y1x1MGFjMlx1MGFhOF9cdTBhOWNcdTBhYzFcdTBhYjJcdTBhYmVcdTBhODhfXHUwYTkxXHUwYTk3XHUwYWI4XHUwYWNkXHUwYTlmX1x1MGFiOFx1MGFhYVx1MGFjZFx1MGE5Zlx1MGFjN1x1MGFhZVx1MGFjZFx1MGFhY1x1MGFiMF9cdTBhOTFcdTBhOTVcdTBhY2RcdTBhOWZcdTBh'@; put 'Y2RcdTBhYWNcdTBhYjBfXHUwYWE4XHUwYWI1XHUwYWM3XHUwYWFlXHUwYWNkXHUwYWFjXHUwYWIwX1x1MGFhMVx1MGFiZlx1MGFiOFx1MGFjN1x1MGFhZVx1MGFjZFx1MGFhY1x1MGFiMCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwYTljXHUwYWJlXHUwYWE4XHUwYWNkXHUwYWFmXHUw'@; put 'YWMxLl9cdTBhYWJcdTBhYzdcdTBhYWNcdTBhY2RcdTBhYjBcdTBhYzEuX1x1MGFhZVx1MGFiZVx1MGFiMFx1MGFjZFx1MGE5YV9cdTBhOGZcdTBhYWFcdTBhY2RcdTBhYjBcdTBhYmYuX1x1MGFhZVx1MGFjN19cdTBhOWNcdTBhYzJcdTBhYThfXHUwYTljXHUwYWMxXHUwYWIyXHUwYWJlLl9c'@; put 'dTBhOTFcdTBhOTcuX1x1MGFiOFx1MGFhYVx1MGFjZFx1MGE5Zlx1MGFjNy5fXHUwYTkxXHUwYTk1XHUwYWNkXHUwYTlmXHUwYWNkLl9cdTBhYThcdTBhYjVcdTBhYzcuX1x1MGFhMVx1MGFiZlx1MGFiOFx1MGFjNy4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoi'@; put 'XHUwYWIwXHUwYWI1XHUwYWJmXHUwYWI1XHUwYWJlXHUwYWIwX1x1MGFiOFx1MGFjYlx1MGFhZVx1MGFiNVx1MGFiZVx1MGFiMF9cdTBhYWVcdTBhODJcdTBhOTdcdTBhYjNcdTBhYjVcdTBhYmVcdTBhYjBfXHUwYWFjXHUwYWMxXHUwYWE3XHUwYWNkXHUwYWI1XHUwYWJlXHUwYWIwX1x1MGE5'@; put 'N1x1MGFjMVx1MGFiMFx1MGFjMVx1MGFiNVx1MGFiZVx1MGFiMF9cdTBhYjZcdTBhYzFcdTBhOTVcdTBhY2RcdTBhYjBcdTBhYjVcdTBhYmVcdTBhYjBfXHUwYWI2XHUwYWE4XHUwYWJmXHUwYWI1XHUwYWJlXHUwYWIwIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MGFiMFx1MGFiNVx1'@; put 'MGFiZl9cdTBhYjhcdTBhY2JcdTBhYWVfXHUwYWFlXHUwYTgyXHUwYTk3XHUwYWIzX1x1MGFhY1x1MGFjMVx1MGFhN1x1MGFjZF9cdTBhOTdcdTBhYzFcdTBhYjBcdTBhYzFfXHUwYWI2XHUwYWMxXHUwYTk1XHUwYWNkXHUwYWIwX1x1MGFiNlx1MGFhOFx1MGFiZiIuc3BsaXQoIl8iKSx3ZWVr'@; put 'ZGF5c01pbjoiXHUwYWIwX1x1MGFiOFx1MGFjYl9cdTBhYWVcdTBhODJfXHUwYWFjXHUwYWMxX1x1MGE5N1x1MGFjMV9cdTBhYjZcdTBhYzFfXHUwYWI2Ii5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiQSBoOm1tIFx1MGFiNVx1MGFiZVx1MGE5N1x1MGFjZFx1MGFhZlx1MGFjNyIs'@; put 'TFRTOiJBIGg6bW06c3MgXHUwYWI1XHUwYWJlXHUwYTk3XHUwYWNkXHUwYWFmXHUwYWM3IixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVksIEEgaDptbSBcdTBhYjVcdTBhYmVcdTBhOTdcdTBhY2RcdTBhYWZcdTBhYzciLExMTEw6ImRkZGQsIEQgTU1N'@; put 'TSBZWVlZLCBBIGg6bW0gXHUwYWI1XHUwYWJlXHUwYTk3XHUwYWNkXHUwYWFmXHUwYWM3In0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTBhODZcdTBhOWNdIExUIixuZXh0RGF5OiJbXHUwYTk1XHUwYWJlXHUwYWIyXHUwYWM3XSBMVCIsbmV4dFdlZWs6ImRkZGQsIExUIixsYXN0RGF5OiJbXHUw'@; put 'YTk3XHUwYTg3XHUwYTk1XHUwYWJlXHUwYWIyXHUwYWM3XSBMVCIsbGFzdFdlZWs6IltcdTBhYWFcdTBhYmVcdTBhOWJcdTBhYjJcdTBhYmVdIGRkZGQsIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBcdTBhYWVcdTBhYmUiLHBhc3Q6IiVzIFx1MGFhYVx1MGFi'@; put 'OVx1MGFjN1x1MGFiMlx1MGFiZSIsczoiXHUwYTg1XHUwYWFlXHUwYWMxXHUwYTk1IFx1MGFhYVx1MGFiM1x1MGFjYiIsc3M6IiVkIFx1MGFiOFx1MGFjN1x1MGE5NVx1MGE4Mlx1MGFhMSIsbToiXHUwYThmXHUwYTk1IFx1MGFhZVx1MGFiZlx1MGFhOFx1MGFiZlx1MGE5ZiIsbW06IiVkIFx1'@; put 'MGFhZVx1MGFiZlx1MGFhOFx1MGFiZlx1MGE5ZiIsaDoiXHUwYThmXHUwYTk1IFx1MGE5NVx1MGFiMlx1MGFiZVx1MGE5NSIsaGg6IiVkIFx1MGE5NVx1MGFiMlx1MGFiZVx1MGE5NSIsZDoiXHUwYThmXHUwYTk1IFx1MGFhNlx1MGFiZlx1MGFiNVx1MGFiOCIsZGQ6IiVkIFx1MGFhNlx1MGFi'@; put 'Zlx1MGFiNVx1MGFiOCIsTToiXHUwYThmXHUwYTk1IFx1MGFhZVx1MGFiOVx1MGFiZlx1MGFhOFx1MGFjYiIsTU06IiVkIFx1MGFhZVx1MGFiOVx1MGFiZlx1MGFhOFx1MGFjYiIseToiXHUwYThmXHUwYTk1IFx1MGFiNVx1MGFiMFx1MGFjZFx1MGFiNyIseXk6IiVkIFx1MGFiNVx1MGFiMFx1'@; put 'MGFjZFx1MGFiNyJ9LHByZXBhcnNlOmZ1bmN0aW9uKHcpe3JldHVybiB3LnJlcGxhY2UoL1tcdTBhZTdcdTBhZThcdTBhZTlcdTBhZWFcdTBhZWJcdTBhZWNcdTBhZWRcdTBhZWVcdTBhZWZcdTBhZTZdL2csZnVuY3Rpb24oRil7cmV0dXJuIHBbRl19KX0scG9zdGZvcm1hdDpmdW5jdGlvbih3'@; put 'KXtyZXR1cm4gdy5yZXBsYWNlKC9cZC9nLGZ1bmN0aW9uKEYpe3JldHVybiBfW0ZdfSl9LG1lcmlkaWVtUGFyc2U6L1x1MGFiMFx1MGFiZVx1MGFhNHxcdTBhYWNcdTBhYWFcdTBhY2JcdTBhYjB8XHUwYWI4XHUwYWI1XHUwYWJlXHUwYWIwfFx1MGFiOFx1MGFiZVx1MGE4Mlx1MGE5Yy8sbWVy'@; put 'aWRpZW1Ib3VyOmZ1bmN0aW9uKHcsRil7cmV0dXJuIDEyPT09dyYmKHc9MCksIlx1MGFiMFx1MGFiZVx1MGFhNCI9PT1GP3c8ND93OncrMTI6Ilx1MGFiOFx1MGFiNVx1MGFiZVx1MGFiMCI9PT1GP3c6Ilx1MGFhY1x1MGFhYVx1MGFjYlx1MGFiMCI9PT1GP3c+PTEwP3c6dysxMjoiXHUwYWI4'@; put 'XHUwYWJlXHUwYTgyXHUwYTljIj09PUY/dysxMjp2b2lkIDB9LG1lcmlkaWVtOmZ1bmN0aW9uKHcsRixIKXtyZXR1cm4gdzw0PyJcdTBhYjBcdTBhYmVcdTBhYTQiOnc8MTA/Ilx1MGFiOFx1MGFiNVx1MGFiZVx1MGFiMCI6dzwxNz8iXHUwYWFjXHUwYWFhXHUwYWNiXHUwYWIwIjp3PDIwPyJc'@; put 'dTBhYjhcdTBhYmVcdTBhODJcdTBhOWMiOiJcdTBhYjBcdTBhYmVcdTBhYTQifSx3ZWVrOntkb3c6MCxkb3k6Nn19KX0oYig5NzU4NikpfSwyMTkzNjpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7RC5kZWZpbmVMb2NhbGUoImhlIix7bW9udGhzOiJcdTA1ZDlc'@; put 'dTA1ZTBcdTA1ZDVcdTA1ZDBcdTA1ZThfXHUwNWU0XHUwNWQxXHUwNWU4XHUwNWQ1XHUwNWQwXHUwNWU4X1x1MDVkZVx1MDVlOFx1MDVlNV9cdTA1ZDBcdTA1ZTRcdTA1ZThcdTA1ZDlcdTA1ZGNfXHUwNWRlXHUwNWQwXHUwNWQ5X1x1MDVkOVx1MDVkNVx1MDVlMFx1MDVkOV9cdTA1ZDlcdTA1'@; put 'ZDVcdTA1ZGNcdTA1ZDlfXHUwNWQwXHUwNWQ1XHUwNWQyXHUwNWQ1XHUwNWUxXHUwNWQ4X1x1MDVlMVx1MDVlNFx1MDVkOFx1MDVkZVx1MDVkMVx1MDVlOF9cdTA1ZDBcdTA1ZDVcdTA1ZTdcdTA1ZDhcdTA1ZDVcdTA1ZDFcdTA1ZThfXHUwNWUwXHUwNWQ1XHUwNWQxXHUwNWRlXHUwNWQxXHUw'@; put 'NWU4X1x1MDVkM1x1MDVlNlx1MDVkZVx1MDVkMVx1MDVlOCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwNWQ5XHUwNWUwXHUwNWQ1XHUwNWYzX1x1MDVlNFx1MDVkMVx1MDVlOFx1MDVmM19cdTA1ZGVcdTA1ZThcdTA1ZTVfXHUwNWQwXHUwNWU0XHUwNWU4XHUwNWYzX1x1MDVkZVx1MDVk'@; put 'MFx1MDVkOV9cdTA1ZDlcdTA1ZDVcdTA1ZTBcdTA1ZDlfXHUwNWQ5XHUwNWQ1XHUwNWRjXHUwNWQ5X1x1MDVkMFx1MDVkNVx1MDVkMlx1MDVmM19cdTA1ZTFcdTA1ZTRcdTA1ZDhcdTA1ZjNfXHUwNWQwXHUwNWQ1XHUwNWU3XHUwNWYzX1x1MDVlMFx1MDVkNVx1MDVkMVx1MDVmM19cdTA1ZDNc'@; put 'dTA1ZTZcdTA1ZGVcdTA1ZjMiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDVlOFx1MDVkMFx1MDVlOVx1MDVkNVx1MDVkZl9cdTA1ZTlcdTA1ZTBcdTA1ZDlfXHUwNWU5XHUwNWRjXHUwNWQ5XHUwNWU5XHUwNWQ5X1x1MDVlOFx1MDVkMVx1MDVkOVx1MDVlMlx1MDVkOV9cdTA1ZDdcdTA1ZGVc'@; put 'dTA1ZDlcdTA1ZTlcdTA1ZDlfXHUwNWU5XHUwNWQ5XHUwNWU5XHUwNWQ5X1x1MDVlOVx1MDVkMVx1MDVlYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA1ZDBcdTA1ZjNfXHUwNWQxXHUwNWYzX1x1MDVkMlx1MDVmM19cdTA1ZDNcdTA1ZjNfXHUwNWQ0XHUwNWYzX1x1MDVkNVx1MDVm'@; put 'M19cdTA1ZTlcdTA1ZjMiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDVkMF9cdTA1ZDFfXHUwNWQyX1x1MDVkM19cdTA1ZDRfXHUwNWQ1X1x1MDVlOSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBb'@; put 'XHUwNWQxXU1NTU0gWVlZWSIsTExMOiJEIFtcdTA1ZDFdTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIFtcdTA1ZDFdTU1NTSBZWVlZIEhIOm1tIixsOiJEL00vWVlZWSIsbGw6IkQgTU1NIFlZWVkiLGxsbDoiRCBNTU0gWVlZWSBISDptbSIsbGxsbDoiZGRkLCBEIE1NTSBZWVlZIEhI'@; put 'Om1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA1ZDRcdTA1ZDlcdTA1ZDVcdTA1ZGQgXHUwNWQxXHUwNWJlXUxUIixuZXh0RGF5OiJbXHUwNWRlXHUwNWQ3XHUwNWU4IFx1MDVkMVx1MDViZV1MVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDVkMVx1MDVlOVx1MDVlMlx1MDVkNF0gTFQiLGxhc3RE'@; put 'YXk6IltcdTA1ZDBcdTA1ZWFcdTA1ZGVcdTA1ZDVcdTA1ZGMgXHUwNWQxXHUwNWJlXUxUIixsYXN0V2VlazoiW1x1MDVkMVx1MDVkOVx1MDVkNVx1MDVkZF0gZGRkZCBbXHUwNWQ0XHUwNWQwXHUwNWQ3XHUwNWU4XHUwNWQ1XHUwNWRmIFx1MDVkMVx1MDVlOVx1MDVlMlx1MDVkNF0gTFQiLHNh'@; put 'bWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDVkMVx1MDVlMlx1MDVkNVx1MDVkMyAlcyIscGFzdDoiXHUwNWRjXHUwNWU0XHUwNWUwXHUwNWQ5ICVzIixzOiJcdTA1ZGVcdTA1ZTFcdTA1ZTRcdTA1ZTggXHUwNWU5XHUwNWUwXHUwNWQ5XHUwNWQ1XHUwNWVhIixzczoiJWQg'@; put 'XHUwNWU5XHUwNWUwXHUwNWQ5XHUwNWQ1XHUwNWVhIixtOiJcdTA1ZDNcdTA1ZTdcdTA1ZDQiLG1tOiIlZCBcdTA1ZDNcdTA1ZTdcdTA1ZDVcdTA1ZWEiLGg6Ilx1MDVlOVx1MDVlMlx1MDVkNCIsaGg6ZnVuY3Rpb24ocCl7cmV0dXJuIDI9PT1wPyJcdTA1ZTlcdTA1ZTJcdTA1ZWFcdTA1ZDlc'@; put 'dTA1ZDlcdTA1ZGQiOnArIiBcdTA1ZTlcdTA1ZTJcdTA1ZDVcdTA1ZWEifSxkOiJcdTA1ZDlcdTA1ZDVcdTA1ZGQiLGRkOmZ1bmN0aW9uKHApe3JldHVybiAyPT09cD8iXHUwNWQ5XHUwNWQ1XHUwNWRlXHUwNWQ5XHUwNWQ5XHUwNWRkIjpwKyIgXHUwNWQ5XHUwNWRlXHUwNWQ5XHUwNWRkIn0s'@; put 'TToiXHUwNWQ3XHUwNWQ1XHUwNWQzXHUwNWU5IixNTTpmdW5jdGlvbihwKXtyZXR1cm4gMj09PXA/Ilx1MDVkN1x1MDVkNVx1MDVkM1x1MDVlOVx1MDVkOVx1MDVkOVx1MDVkZCI6cCsiIFx1MDVkN1x1MDVkNVx1MDVkM1x1MDVlOVx1MDVkOVx1MDVkZCJ9LHk6Ilx1MDVlOVx1MDVlMFx1MDVk'@; put 'NCIseXk6ZnVuY3Rpb24ocCl7cmV0dXJuIDI9PT1wPyJcdTA1ZTlcdTA1ZTBcdTA1ZWFcdTA1ZDlcdTA1ZDlcdTA1ZGQiOnAlMTA9PTAmJjEwIT09cD9wKyIgXHUwNWU5XHUwNWUwXHUwNWQ0IjpwKyIgXHUwNWU5XHUwNWUwXHUwNWQ5XHUwNWRkIn19LG1lcmlkaWVtUGFyc2U6L1x1MDVkMFx1'@; put 'MDVkN1x1MDVkNCJcdTA1ZTZ8XHUwNWRjXHUwNWU0XHUwNWUwXHUwNWQ0Ilx1MDVlNnxcdTA1ZDBcdTA1ZDdcdTA1ZThcdTA1ZDkgXHUwNWQ0XHUwNWU2XHUwNWQ0XHUwNWU4XHUwNWQ5XHUwNWQ5XHUwNWRkfFx1MDVkY1x1MDVlNFx1MDVlMFx1MDVkOSBcdTA1ZDRcdTA1ZTZcdTA1ZDRcdTA1'@; put 'ZThcdTA1ZDlcdTA1ZDlcdTA1ZGR8XHUwNWRjXHUwNWU0XHUwNWUwXHUwNWQ1XHUwNWVhIFx1MDVkMVx1MDVkNVx1MDVlN1x1MDVlOHxcdTA1ZDFcdTA1ZDFcdTA1ZDVcdTA1ZTdcdTA1ZTh8XHUwNWQxXHUwNWUyXHUwNWU4XHUwNWQxL2ksaXNQTTpmdW5jdGlvbihwKXtyZXR1cm4vXihcdTA1'@; put 'ZDBcdTA1ZDdcdTA1ZDQiXHUwNWU2fFx1MDVkMFx1MDVkN1x1MDVlOFx1MDVkOSBcdTA1ZDRcdTA1ZTZcdTA1ZDRcdTA1ZThcdTA1ZDlcdTA1ZDlcdTA1ZGR8XHUwNWQxXHUwNWUyXHUwNWU4XHUwNWQxKSQvLnRlc3QocCl9LG1lcmlkaWVtOmZ1bmN0aW9uKHAsTix3KXtyZXR1cm4gcDw1PyJc'@; put 'dTA1ZGNcdTA1ZTRcdTA1ZTBcdTA1ZDVcdTA1ZWEgXHUwNWQxXHUwNWQ1XHUwNWU3XHUwNWU4IjpwPDEwPyJcdTA1ZDFcdTA1ZDFcdTA1ZDVcdTA1ZTdcdTA1ZTgiOnA8MTI/dz8nXHUwNWRjXHUwNWU0XHUwNWUwXHUwNWQ0Ilx1MDVlNic6Ilx1MDVkY1x1MDVlNFx1MDVlMFx1MDVkOSBcdTA1'@; put 'ZDRcdTA1ZTZcdTA1ZDRcdTA1ZThcdTA1ZDlcdTA1ZDlcdTA1ZGQiOnA8MTg/dz8nXHUwNWQwXHUwNWQ3XHUwNWQ0Ilx1MDVlNic6Ilx1MDVkMFx1MDVkN1x1MDVlOFx1MDVkOSBcdTA1ZDRcdTA1ZTZcdTA1ZDRcdTA1ZThcdTA1ZDlcdTA1ZDlcdTA1ZGQiOiJcdTA1ZDFcdTA1ZTJcdTA1ZThc'@; put 'dTA1ZDEifX0pfShiKDk3NTg2KSl9LDMxMzMyOmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0Ijt2YXIgXz17MToiXHUwOTY3IiwyOiJcdTA5NjgiLDM6Ilx1MDk2OSIsNDoiXHUwOTZhIiw1OiJcdTA5NmIiLDY6Ilx1MDk2YyIsNzoiXHUwOTZkIiw4OiJcdTA5NmUi'@; put 'LDk6Ilx1MDk2ZiIsMDoiXHUwOTY2In0scD17Ilx1MDk2NyI6IjEiLCJcdTA5NjgiOiIyIiwiXHUwOTY5IjoiMyIsIlx1MDk2YSI6IjQiLCJcdTA5NmIiOiI1IiwiXHUwOTZjIjoiNiIsIlx1MDk2ZCI6IjciLCJcdTA5NmUiOiI4IiwiXHUwOTZmIjoiOSIsIlx1MDk2NiI6IjAifSxOPVsvXlx1'@; put 'MDkxY1x1MDkyOC9pLC9eXHUwOTJiXHUwOTNjXHUwOTMwfFx1MDkyYlx1MDkzMC9pLC9eXHUwOTJlXHUwOTNlXHUwOTMwXHUwOTRkXHUwOTFhL2ksL15cdTA5MDVcdTA5MmFcdTA5NGRcdTA5MzBcdTA5NDgvaSwvXlx1MDkyZVx1MDkwOC9pLC9eXHUwOTFjXHUwOTQyXHUwOTI4L2ksL15cdTA5'@; put 'MWNcdTA5NDFcdTA5MzIvaSwvXlx1MDkwNVx1MDkxNy9pLC9eXHUwOTM4XHUwOTNmXHUwOTI0XHUwOTAyfFx1MDkzOFx1MDkzZlx1MDkyNC9pLC9eXHUwOTA1XHUwOTE1XHUwOTRkXHUwOTFmXHUwOTQyL2ksL15cdTA5MjhcdTA5MzV8XHUwOTI4XHUwOTM1XHUwOTAyL2ksL15cdTA5MjZcdTA5'@; put 'M2ZcdTA5MzhcdTA5MDJ8XHUwOTI2XHUwOTNmXHUwOTM4L2ldO0QuZGVmaW5lTG9jYWxlKCJoaSIse21vbnRoczp7Zm9ybWF0OiJcdTA5MWNcdTA5MjhcdTA5MzVcdTA5MzBcdTA5NDBfXHUwOTJiXHUwOTNjXHUwOTMwXHUwOTM1XHUwOTMwXHUwOTQwX1x1MDkyZVx1MDkzZVx1MDkzMFx1MDk0'@; put 'ZFx1MDkxYV9cdTA5MDVcdTA5MmFcdTA5NGRcdTA5MzBcdTA5NDhcdTA5MzJfXHUwOTJlXHUwOTA4X1x1MDkxY1x1MDk0Mlx1MDkyOF9cdTA5MWNcdTA5NDFcdTA5MzJcdTA5M2VcdTA5MDhfXHUwOTA1XHUwOTE3XHUwOTM4XHUwOTRkXHUwOTI0X1x1MDkzOFx1MDkzZlx1MDkyNFx1MDkyZVx1'@; put 'MDk0ZFx1MDkyY1x1MDkzMF9cdTA5MDVcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NDJcdTA5MmNcdTA5MzBfXHUwOTI4XHUwOTM1XHUwOTJlXHUwOTRkXHUwOTJjXHUwOTMwX1x1MDkyNlx1MDkzZlx1MDkzOFx1MDkyZVx1MDk0ZFx1MDkyY1x1MDkzMCIuc3BsaXQoIl8iKSxzdGFuZGFsb25lOiJc'@; put 'dTA5MWNcdTA5MjhcdTA5MzVcdTA5MzBcdTA5NDBfXHUwOTJiXHUwOTMwXHUwOTM1XHUwOTMwXHUwOTQwX1x1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYV9cdTA5MDVcdTA5MmFcdTA5NGRcdTA5MzBcdTA5NDhcdTA5MzJfXHUwOTJlXHUwOTA4X1x1MDkxY1x1MDk0Mlx1MDkyOF9cdTA5'@; put 'MWNcdTA5NDFcdTA5MzJcdTA5M2VcdTA5MDhfXHUwOTA1XHUwOTE3XHUwOTM4XHUwOTRkXHUwOTI0X1x1MDkzOFx1MDkzZlx1MDkyNFx1MDkwMlx1MDkyY1x1MDkzMF9cdTA5MDVcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NDJcdTA5MmNcdTA5MzBfXHUwOTI4XHUwOTM1XHUwOTAyXHUwOTJjXHUw'@; put 'OTMwX1x1MDkyNlx1MDkzZlx1MDkzOFx1MDkwMlx1MDkyY1x1MDkzMCIuc3BsaXQoIl8iKX0sbW9udGhzU2hvcnQ6Ilx1MDkxY1x1MDkyOC5fXHUwOTJiXHUwOTNjXHUwOTMwLl9cdTA5MmVcdTA5M2VcdTA5MzBcdTA5NGRcdTA5MWFfXHUwOTA1XHUwOTJhXHUwOTRkXHUwOTMwXHUwOTQ4Ll9c'@; put 'dTA5MmVcdTA5MDhfXHUwOTFjXHUwOTQyXHUwOTI4X1x1MDkxY1x1MDk0MVx1MDkzMi5fXHUwOTA1XHUwOTE3Ll9cdTA5MzhcdTA5M2ZcdTA5MjQuX1x1MDkwNVx1MDkxNVx1MDk0ZFx1MDkxZlx1MDk0Mi5fXHUwOTI4XHUwOTM1Ll9cdTA5MjZcdTA5M2ZcdTA5MzguIi5zcGxpdCgiXyIpLHdl'@; put 'ZWtkYXlzOiJcdTA5MzBcdTA5MzVcdTA5M2ZcdTA5MzVcdTA5M2VcdTA5MzBfXHUwOTM4XHUwOTRiXHUwOTJlXHUwOTM1XHUwOTNlXHUwOTMwX1x1MDkyZVx1MDkwMlx1MDkxN1x1MDkzMlx1MDkzNVx1MDkzZVx1MDkzMF9cdTA5MmNcdTA5NDFcdTA5MjdcdTA5MzVcdTA5M2VcdTA5MzBfXHUw'@; put 'OTE3XHUwOTQxXHUwOTMwXHUwOTQyXHUwOTM1XHUwOTNlXHUwOTMwX1x1MDkzNlx1MDk0MVx1MDkxNVx1MDk0ZFx1MDkzMFx1MDkzNVx1MDkzZVx1MDkzMF9cdTA5MzZcdTA5MjhcdTA5M2ZcdTA5MzVcdTA5M2VcdTA5MzAiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwOTMwXHUwOTM1'@; put 'XHUwOTNmX1x1MDkzOFx1MDk0Ylx1MDkyZV9cdTA5MmVcdTA5MDJcdTA5MTdcdTA5MzJfXHUwOTJjXHUwOTQxXHUwOTI3X1x1MDkxN1x1MDk0MVx1MDkzMFx1MDk0Ml9cdTA5MzZcdTA5NDFcdTA5MTVcdTA5NGRcdTA5MzBfXHUwOTM2XHUwOTI4XHUwOTNmIi5zcGxpdCgiXyIpLHdlZWtkYXlz'@; put 'TWluOiJcdTA5MzBfXHUwOTM4XHUwOTRiX1x1MDkyZVx1MDkwMl9cdTA5MmNcdTA5NDFfXHUwOTE3XHUwOTQxX1x1MDkzNlx1MDk0MV9cdTA5MzYiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJBIGg6bW0gXHUwOTJjXHUwOTFjXHUwOTQ3IixMVFM6IkEgaDptbTpzcyBcdTA5MmNc'@; put 'dTA5MWNcdTA5NDciLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSwgQSBoOm1tIFx1MDkyY1x1MDkxY1x1MDk0NyIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVksIEEgaDptbSBcdTA5MmNcdTA5MWNcdTA5NDcifSxtb250aHNQYXJzZTpOLGxvbmdNb250'@; put 'aHNQYXJzZTpOLHNob3J0TW9udGhzUGFyc2U6Wy9eXHUwOTFjXHUwOTI4L2ksL15cdTA5MmJcdTA5M2NcdTA5MzAvaSwvXlx1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYS9pLC9eXHUwOTA1XHUwOTJhXHUwOTRkXHUwOTMwXHUwOTQ4L2ksL15cdTA5MmVcdTA5MDgvaSwvXlx1MDkxY1x1'@; put 'MDk0Mlx1MDkyOC9pLC9eXHUwOTFjXHUwOTQxXHUwOTMyL2ksL15cdTA5MDVcdTA5MTcvaSwvXlx1MDkzOFx1MDkzZlx1MDkyNC9pLC9eXHUwOTA1XHUwOTE1XHUwOTRkXHUwOTFmXHUwOTQyL2ksL15cdTA5MjhcdTA5MzUvaSwvXlx1MDkyNlx1MDkzZlx1MDkzOC9pXSxtb250aHNSZWdleDov'@; put 'XihcdTA5MWNcdTA5MjhcdTA5MzVcdTA5MzBcdTA5NDB8XHUwOTFjXHUwOTI4XC4/fFx1MDkyYlx1MDkzY1x1MDkzMFx1MDkzNVx1MDkzMFx1MDk0MHxcdTA5MmJcdTA5MzBcdTA5MzVcdTA5MzBcdTA5NDB8XHUwOTJiXHUwOTNjXHUwOTMwXC4/fFx1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1'@; put 'MDkxYT98XHUwOTA1XHUwOTJhXHUwOTRkXHUwOTMwXHUwOTQ4XHUwOTMyfFx1MDkwNVx1MDkyYVx1MDk0ZFx1MDkzMFx1MDk0OFwuP3xcdTA5MmVcdTA5MDg/fFx1MDkxY1x1MDk0Mlx1MDkyOD98XHUwOTFjXHUwOTQxXHUwOTMyXHUwOTNlXHUwOTA4fFx1MDkxY1x1MDk0MVx1MDkzMlwuP3xc'@; put 'dTA5MDVcdTA5MTdcdTA5MzhcdTA5NGRcdTA5MjR8XHUwOTA1XHUwOTE3XC4/fFx1MDkzOFx1MDkzZlx1MDkyNFx1MDkyZVx1MDk0ZFx1MDkyY1x1MDkzMHxcdTA5MzhcdTA5M2ZcdTA5MjRcdTA5MDJcdTA5MmNcdTA5MzB8XHUwOTM4XHUwOTNmXHUwOTI0XC4/fFx1MDkwNVx1MDkxNVx1MDk0'@; put 'ZFx1MDkxZlx1MDk0Mlx1MDkyY1x1MDkzMHxcdTA5MDVcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NDJcLj98XHUwOTI4XHUwOTM1XHUwOTJlXHUwOTRkXHUwOTJjXHUwOTMwfFx1MDkyOFx1MDkzNVx1MDkwMlx1MDkyY1x1MDkzMHxcdTA5MjhcdTA5MzVcLj98XHUwOTI2XHUwOTNmXHUwOTM4XHUw'@; put 'OTJlXHUwOTRkXHUwOTJjXHUwOTMwfFx1MDkyNlx1MDkzZlx1MDkzOFx1MDkwMlx1MDkyY1x1MDkzMHxcdTA5MjZcdTA5M2ZcdTA5MzhcLj8pL2ksbW9udGhzU2hvcnRSZWdleDovXihcdTA5MWNcdTA5MjhcdTA5MzVcdTA5MzBcdTA5NDB8XHUwOTFjXHUwOTI4XC4/fFx1MDkyYlx1MDkzY1x1'@; put 'MDkzMFx1MDkzNVx1MDkzMFx1MDk0MHxcdTA5MmJcdTA5MzBcdTA5MzVcdTA5MzBcdTA5NDB8XHUwOTJiXHUwOTNjXHUwOTMwXC4/fFx1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYT98XHUwOTA1XHUwOTJhXHUwOTRkXHUwOTMwXHUwOTQ4XHUwOTMyfFx1MDkwNVx1MDkyYVx1MDk0ZFx1'@; put 'MDkzMFx1MDk0OFwuP3xcdTA5MmVcdTA5MDg/fFx1MDkxY1x1MDk0Mlx1MDkyOD98XHUwOTFjXHUwOTQxXHUwOTMyXHUwOTNlXHUwOTA4fFx1MDkxY1x1MDk0MVx1MDkzMlwuP3xcdTA5MDVcdTA5MTdcdTA5MzhcdTA5NGRcdTA5MjR8XHUwOTA1XHUwOTE3XC4/fFx1MDkzOFx1MDkzZlx1MDky'@; put 'NFx1MDkyZVx1MDk0ZFx1MDkyY1x1MDkzMHxcdTA5MzhcdTA5M2ZcdTA5MjRcdTA5MDJcdTA5MmNcdTA5MzB8XHUwOTM4XHUwOTNmXHUwOTI0XC4/fFx1MDkwNVx1MDkxNVx1MDk0ZFx1MDkxZlx1MDk0Mlx1MDkyY1x1MDkzMHxcdTA5MDVcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NDJcLj98XHUw'@; put 'OTI4XHUwOTM1XHUwOTJlXHUwOTRkXHUwOTJjXHUwOTMwfFx1MDkyOFx1MDkzNVx1MDkwMlx1MDkyY1x1MDkzMHxcdTA5MjhcdTA5MzVcLj98XHUwOTI2XHUwOTNmXHUwOTM4XHUwOTJlXHUwOTRkXHUwOTJjXHUwOTMwfFx1MDkyNlx1MDkzZlx1MDkzOFx1MDkwMlx1MDkyY1x1MDkzMHxcdTA5'@; put 'MjZcdTA5M2ZcdTA5MzhcLj8pL2ksbW9udGhzU3RyaWN0UmVnZXg6L14oXHUwOTFjXHUwOTI4XHUwOTM1XHUwOTMwXHUwOTQwP3xcdTA5MmJcdTA5M2NcdTA5MzBcdTA5MzVcdTA5MzBcdTA5NDB8XHUwOTJiXHUwOTMwXHUwOTM1XHUwOTMwXHUwOTQwP3xcdTA5MmVcdTA5M2VcdTA5MzBcdTA5'@; put 'NGRcdTA5MWE/fFx1MDkwNVx1MDkyYVx1MDk0ZFx1MDkzMFx1MDk0OFx1MDkzMj98XHUwOTJlXHUwOTA4P3xcdTA5MWNcdTA5NDJcdTA5Mjg/fFx1MDkxY1x1MDk0MVx1MDkzMlx1MDkzZVx1MDkwOD98XHUwOTA1XHUwOTE3XHUwOTM4XHUwOTRkXHUwOTI0P3xcdTA5MzhcdTA5M2ZcdTA5MjRc'@; put 'dTA5MmVcdTA5NGRcdTA5MmNcdTA5MzB8XHUwOTM4XHUwOTNmXHUwOTI0XHUwOTAyXHUwOTJjXHUwOTMwfFx1MDkzOFx1MDkzZlx1MDkyND9cLj98XHUwOTA1XHUwOTE1XHUwOTRkXHUwOTFmXHUwOTQyXHUwOTJjXHUwOTMwfFx1MDkwNVx1MDkxNVx1MDk0ZFx1MDkxZlx1MDk0MlwuP3xcdTA5'@; put 'MjhcdTA5MzVcdTA5MmVcdTA5NGRcdTA5MmNcdTA5MzB8XHUwOTI4XHUwOTM1XHUwOTAyXHUwOTJjXHUwOTMwP3xcdTA5MjZcdTA5M2ZcdTA5MzhcdTA5MmVcdTA5NGRcdTA5MmNcdTA5MzB8XHUwOTI2XHUwOTNmXHUwOTM4XHUwOTAyXHUwOTJjXHUwOTMwPykvaSxtb250aHNTaG9ydFN0cmlj'@; put 'dFJlZ2V4Oi9eKFx1MDkxY1x1MDkyOFwuP3xcdTA5MmJcdTA5M2NcdTA5MzBcLj98XHUwOTJlXHUwOTNlXHUwOTMwXHUwOTRkXHUwOTFhP3xcdTA5MDVcdTA5MmFcdTA5NGRcdTA5MzBcdTA5NDhcLj98XHUwOTJlXHUwOTA4P3xcdTA5MWNcdTA5NDJcdTA5Mjg/fFx1MDkxY1x1MDk0MVx1MDkz'@; put 'MlwuP3xcdTA5MDVcdTA5MTdcLj98XHUwOTM4XHUwOTNmXHUwOTI0XC4/fFx1MDkwNVx1MDkxNVx1MDk0ZFx1MDkxZlx1MDk0MlwuP3xcdTA5MjhcdTA5MzVcLj98XHUwOTI2XHUwOTNmXHUwOTM4XC4/KS9pLGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwOTA2XHUwOTFjXSBMVCIsbmV4dERheToi'@; put 'W1x1MDkxNVx1MDkzMl0gTFQiLG5leHRXZWVrOiJkZGRkLCBMVCIsbGFzdERheToiW1x1MDkxNVx1MDkzMl0gTFQiLGxhc3RXZWVrOiJbXHUwOTJhXHUwOTNmXHUwOTFiXHUwOTMyXHUwOTQ3XSBkZGRkLCBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwOTJl'@; put 'XHUwOTQ3XHUwOTAyIixwYXN0OiIlcyBcdTA5MmFcdTA5MzlcdTA5MzJcdTA5NDciLHM6Ilx1MDkxNVx1MDk0MVx1MDkxYiBcdTA5MzlcdTA5NDAgXHUwOTE1XHUwOTRkXHUwOTM3XHUwOTIzIixzczoiJWQgXHUwOTM4XHUwOTQ3XHUwOTE1XHUwOTAyXHUwOTIxIixtOiJcdTA5MGZcdTA5MTUg'@; put 'XHUwOTJlXHUwOTNmXHUwOTI4XHUwOTFmIixtbToiJWQgXHUwOTJlXHUwOTNmXHUwOTI4XHUwOTFmIixoOiJcdTA5MGZcdTA5MTUgXHUwOTE4XHUwOTAyXHUwOTFmXHUwOTNlIixoaDoiJWQgXHUwOTE4XHUwOTAyXHUwOTFmXHUwOTQ3IixkOiJcdTA5MGZcdTA5MTUgXHUwOTI2XHUwOTNmXHUw'@; put 'OTI4IixkZDoiJWQgXHUwOTI2XHUwOTNmXHUwOTI4IixNOiJcdTA5MGZcdTA5MTUgXHUwOTJlXHUwOTM5XHUwOTQwXHUwOTI4XHUwOTQ3IixNTToiJWQgXHUwOTJlXHUwOTM5XHUwOTQwXHUwOTI4XHUwOTQ3Iix5OiJcdTA5MGZcdTA5MTUgXHUwOTM1XHUwOTMwXHUwOTRkXHUwOTM3Iix5eToi'@; put 'JWQgXHUwOTM1XHUwOTMwXHUwOTRkXHUwOTM3In0scHJlcGFyc2U6ZnVuY3Rpb24oSCl7cmV0dXJuIEgucmVwbGFjZSgvW1x1MDk2N1x1MDk2OFx1MDk2OVx1MDk2YVx1MDk2Ylx1MDk2Y1x1MDk2ZFx1MDk2ZVx1MDk2Zlx1MDk2Nl0vZyxmdW5jdGlvbihSKXtyZXR1cm4gcFtSXX0pfSxwb3N0'@; put 'Zm9ybWF0OmZ1bmN0aW9uKEgpe3JldHVybiBILnJlcGxhY2UoL1xkL2csZnVuY3Rpb24oUil7cmV0dXJuIF9bUl19KX0sbWVyaWRpZW1QYXJzZTovXHUwOTMwXHUwOTNlXHUwOTI0fFx1MDkzOFx1MDk0MVx1MDkyY1x1MDkzOXxcdTA5MjZcdTA5NGJcdTA5MmFcdTA5MzlcdTA5MzB8XHUwOTM2'@; put 'XHUwOTNlXHUwOTJlLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oSCxSKXtyZXR1cm4gMTI9PT1IJiYoSD0wKSwiXHUwOTMwXHUwOTNlXHUwOTI0Ij09PVI/SDw0P0g6SCsxMjoiXHUwOTM4XHUwOTQxXHUwOTJjXHUwOTM5Ij09PVI/SDoiXHUwOTI2XHUwOTRiXHUwOTJhXHUwOTM5XHUwOTMwIj09'@; put 'PVI/SD49MTA/SDpIKzEyOiJcdTA5MzZcdTA5M2VcdTA5MmUiPT09Uj9IKzEyOnZvaWQgMH0sbWVyaWRpZW06ZnVuY3Rpb24oSCxSLGope3JldHVybiBIPDQ/Ilx1MDkzMFx1MDkzZVx1MDkyNCI6SDwxMD8iXHUwOTM4XHUwOTQxXHUwOTJjXHUwOTM5IjpIPDE3PyJcdTA5MjZcdTA5NGJcdTA5'@; put 'MmFcdTA5MzlcdTA5MzAiOkg8MjA/Ilx1MDkzNlx1MDkzZVx1MDkyZSI6Ilx1MDkzMFx1MDkzZVx1MDkyNCJ9LHdlZWs6e2RvdzowLGRveTo2fX0pfShiKDk3NTg2KSl9LDkxOTU3OmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBfKE4sdyxGKXt2'@; put 'YXIgSD1OKyIgIjtzd2l0Y2goRil7Y2FzZSJzcyI6cmV0dXJuIEgrKDE9PT1OPyJzZWt1bmRhIjoyPT09Tnx8Mz09PU58fDQ9PT1OPyJzZWt1bmRlIjoic2VrdW5kaSIpO2Nhc2UibSI6cmV0dXJuIHc/ImplZG5hIG1pbnV0YSI6ImplZG5lIG1pbnV0ZSI7Y2FzZSJtbSI6cmV0dXJuIEgrKDE9'@; put 'PT1OPyJtaW51dGEiOjI9PT1OfHwzPT09Tnx8ND09PU4/Im1pbnV0ZSI6Im1pbnV0YSIpO2Nhc2UiaCI6cmV0dXJuIHc/ImplZGFuIHNhdCI6ImplZG5vZyBzYXRhIjtjYXNlImhoIjpyZXR1cm4gSCsoMT09PU4/InNhdCI6Mj09PU58fDM9PT1OfHw0PT09Tj8ic2F0YSI6InNhdGkiKTtjYXNl'@; put 'ImRkIjpyZXR1cm4gSCsoMT09PU4/ImRhbiI6ImRhbmEiKTtjYXNlIk1NIjpyZXR1cm4gSCsoMT09PU4/Im1qZXNlYyI6Mj09PU58fDM9PT1OfHw0PT09Tj8ibWplc2VjYSI6Im1qZXNlY2kiKTtjYXNlInl5IjpyZXR1cm4gSCsoMT09PU4/ImdvZGluYSI6Mj09PU58fDM9PT1OfHw0PT09Tj8i'@; put 'Z29kaW5lIjoiZ29kaW5hIil9fUQuZGVmaW5lTG9jYWxlKCJociIse21vbnRoczp7Zm9ybWF0OiJzaWplXHUwMTBkbmphX3ZlbGphXHUwMTBkZV9vXHUwMTdldWprYV90cmF2bmphX3N2aWJuamFfbGlwbmphX3NycG5qYV9rb2xvdm96YV9ydWpuYV9saXN0b3BhZGFfc3R1ZGVub2dhX3Byb3Np'@; put 'bmNhIi5zcGxpdCgiXyIpLHN0YW5kYWxvbmU6InNpamVcdTAxMGRhbmpfdmVsamFcdTAxMGRhX29cdTAxN2V1amFrX3RyYXZhbmpfc3ZpYmFual9saXBhbmpfc3JwYW5qX2tvbG92b3pfcnVqYW5fbGlzdG9wYWRfc3R1ZGVuaV9wcm9zaW5hYyIuc3BsaXQoIl8iKX0sbW9udGhzU2hvcnQ6InNp'@; put 'ai5fdmVsai5fb1x1MDE3ZXUuX3RyYS5fc3ZpLl9saXAuX3NycC5fa29sLl9ydWouX2xpcy5fc3R1Ll9wcm8uIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Im5lZGplbGphX3BvbmVkamVsamFrX3V0b3Jha19zcmlqZWRhX1x1MDEwZGV0dnJ0YWtfcGV0YWtfc3Vi'@; put 'b3RhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Im5lZC5fcG9uLl91dG8uX3NyaS5fXHUwMTBkZXQuX3BldC5fc3ViLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoibmVfcG9fdXRfc3JfXHUwMTBkZV9wZV9zdSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVG'@; put 'b3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJEbyBNTU1NIFlZWVkiLExMTDoiRG8gTU1NTSBZWVlZIEg6bW0iLExMTEw6ImRkZGQsIERvIE1NTU0gWVlZWSBIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltkYW5hcyB1XSBMVCIsbmV4dERheToiW3N1'@; put 'dHJhIHVdIExUIixuZXh0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6cmV0dXJuIlt1XSBbbmVkamVsanVdIFt1XSBMVCI7Y2FzZSAzOnJldHVybiJbdV0gW3NyaWplZHVdIFt1XSBMVCI7Y2FzZSA2OnJldHVybiJbdV0gW3N1Ym90dV0gW3VdIExUIjtjYXNlIDE6'@; put 'Y2FzZSAyOmNhc2UgNDpjYXNlIDU6cmV0dXJuIlt1XSBkZGRkIFt1XSBMVCJ9fSxsYXN0RGF5OiJbanVcdTAxMGRlciB1XSBMVCIsbGFzdFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOnJldHVybiJbcHJvXHUwMTYxbHVdIFtuZWRqZWxqdV0gW3VdIExUIjtjYXNl'@; put 'IDM6cmV0dXJuIltwcm9cdTAxNjFsdV0gW3NyaWplZHVdIFt1XSBMVCI7Y2FzZSA2OnJldHVybiJbcHJvXHUwMTYxbGVdIFtzdWJvdGVdIFt1XSBMVCI7Y2FzZSAxOmNhc2UgMjpjYXNlIDQ6Y2FzZSA1OnJldHVybiJbcHJvXHUwMTYxbGldIGRkZGQgW3VdIExUIn19LHNhbWVFbHNlOiJMIn0s'@; put 'cmVsYXRpdmVUaW1lOntmdXR1cmU6InphICVzIixwYXN0OiJwcmlqZSAlcyIsczoicGFyIHNla3VuZGkiLHNzOl8sbTpfLG1tOl8saDpfLGhoOl8sZDoiZGFuIixkZDpfLE06Im1qZXNlYyIsTU06Xyx5OiJnb2RpbnUiLHl5Ol99LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8s'@; put 'b3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6N319KX0oYig5NzU4NikpfSw0ODkyODpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7dmFyIF89InZhc1x4ZTFybmFwIGhceGU5dGZcdTAxNTFuIGtlZGRlbiBzemVyZFx4ZTFuIGNzXHhmY3RceGY2cnRceGY2'@; put 'a1x4ZjZuIHBceGU5bnRla2VuIHN6b21iYXRvbiIuc3BsaXQoIiAiKTtmdW5jdGlvbiBwKEYsSCxSLGope3ZhciBQPUY7c3dpdGNoKFIpe2Nhc2UicyI6cmV0dXJuIGp8fEg/Im5ceGU5aFx4ZTFueSBtXHhlMXNvZHBlcmMiOiJuXHhlOWhceGUxbnkgbVx4ZTFzb2RwZXJjZSI7Y2FzZSJzcyI6'@; put 'cmV0dXJuIFArKGp8fEgpPyIgbVx4ZTFzb2RwZXJjIjoiIG1ceGUxc29kcGVyY2UiO2Nhc2UibSI6cmV0dXJuImVneSIrKGp8fEg/IiBwZXJjIjoiIHBlcmNlIik7Y2FzZSJtbSI6cmV0dXJuIFArKGp8fEg/IiBwZXJjIjoiIHBlcmNlIik7Y2FzZSJoIjpyZXR1cm4iZWd5Iisoanx8SD8iIFx4'@; put 'ZjNyYSI6IiBceGYzclx4ZTFqYSIpO2Nhc2UiaGgiOnJldHVybiBQKyhqfHxIPyIgXHhmM3JhIjoiIFx4ZjNyXHhlMWphIik7Y2FzZSJkIjpyZXR1cm4iZWd5Iisoanx8SD8iIG5hcCI6IiBuYXBqYSIpO2Nhc2UiZGQiOnJldHVybiBQKyhqfHxIPyIgbmFwIjoiIG5hcGphIik7Y2FzZSJNIjpy'@; put 'ZXR1cm4iZWd5Iisoanx8SD8iIGhceGYzbmFwIjoiIGhceGYzbmFwamEiKTtjYXNlIk1NIjpyZXR1cm4gUCsoanx8SD8iIGhceGYzbmFwIjoiIGhceGYzbmFwamEiKTtjYXNlInkiOnJldHVybiJlZ3kiKyhqfHxIPyIgXHhlOXYiOiIgXHhlOXZlIik7Y2FzZSJ5eSI6cmV0dXJuIFArKGp8fEg/'@; put 'IiBceGU5diI6IiBceGU5dmUiKX1yZXR1cm4iIn1mdW5jdGlvbiBOKEYpe3JldHVybihGPyIiOiJbbVx4ZmFsdF0gIikrIlsiK19bdGhpcy5kYXkoKV0rIl0gTFRbLWtvcl0ifUQuZGVmaW5lTG9jYWxlKCJodSIse21vbnRoczoiamFudVx4ZTFyX2ZlYnJ1XHhlMXJfbVx4ZTFyY2l1c19ceGUx'@; put 'cHJpbGlzX21ceGUxanVzX2pceGZhbml1c19qXHhmYWxpdXNfYXVndXN6dHVzX3N6ZXB0ZW1iZXJfb2t0XHhmM2Jlcl9ub3ZlbWJlcl9kZWNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiamFuLl9mZWIuX21ceGUxcmMuX1x4ZTFwci5fbVx4ZTFqLl9qXHhmYW4uX2pceGZhbC5fYXVn'@; put 'Ll9zemVwdC5fb2t0Ll9ub3YuX2RlYy4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoidmFzXHhlMXJuYXBfaFx4ZTl0Zlx1MDE1MV9rZWRkX3N6ZXJkYV9jc1x4ZmN0XHhmNnJ0XHhmNmtfcFx4ZTludGVrX3N6b21iYXQiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9y'@; put 'dDoidmFzX2hceGU5dF9rZWRkX3N6ZV9jc1x4ZmN0X3BceGU5bl9zem8iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46InZfaF9rX3N6ZV9jc19wX3N6byIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiWVlZWS5NTS5ERC4iLExMOiJZWVlZLiBN'@; put 'TU1NIEQuIixMTEw6IllZWVkuIE1NTU0gRC4gSDptbSIsTExMTDoiWVlZWS4gTU1NTSBELiwgZGRkZCBIOm1tIn0sbWVyaWRpZW1QYXJzZTovZGV8ZHUvaSxpc1BNOmZ1bmN0aW9uKEYpe3JldHVybiJ1Ij09PUYuY2hhckF0KDEpLnRvTG93ZXJDYXNlKCl9LG1lcmlkaWVtOmZ1bmN0aW9uKEYs'@; put 'SCxSKXtyZXR1cm4gRjwxMj8hMD09PVI/ImRlIjoiREUiOiEwPT09Uj8iZHUiOiJEVSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbbWFdIExUWy1rb3JdIixuZXh0RGF5OiJbaG9sbmFwXSBMVFsta29yXSIsbmV4dFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4gTi5jYWxsKHRoaXMsITApfSxsYXN0RGF5'@; put 'OiJbdGVnbmFwXSBMVFsta29yXSIsbGFzdFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4gTi5jYWxsKHRoaXMsITEpfSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBtXHhmYWx2YSIscGFzdDoiJXMiLHM6cCxzczpwLG06cCxtbTpwLGg6cCxoaDpwLGQ6cCxkZDpwLE06cCxN'@; put 'TTpwLHk6cCx5eTpwfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KGIoOTc1ODYpKX0sNTYyMTU6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO0QuZGVmaW5lTG9jYWxlKCJoeS1h'@; put 'bSIse21vbnRoczp7Zm9ybWF0OiJcdTA1NzBcdTA1NzhcdTA1ODJcdTA1NzZcdTA1N2VcdTA1NjFcdTA1ODBcdTA1NmJfXHUwNTgzXHUwNTY1XHUwNTdmXHUwNTgwXHUwNTdlXHUwNTYxXHUwNTgwXHUwNTZiX1x1MDU3NFx1MDU2MVx1MDU4MFx1MDU3Zlx1MDU2Yl9cdTA1NjFcdTA1N2FcdTA1'@; put 'ODBcdTA1NmJcdTA1NmNcdTA1NmJfXHUwNTc0XHUwNTYxXHUwNTc1XHUwNTZiXHUwNTdkXHUwNTZiX1x1MDU3MFx1MDU3OFx1MDU4Mlx1MDU3Nlx1MDU2Ylx1MDU3ZFx1MDU2Yl9cdTA1NzBcdTA1NzhcdTA1ODJcdTA1NmNcdTA1NmJcdTA1N2RcdTA1NmJfXHUwNTg1XHUwNTYzXHUwNTc4XHUw'@; put 'NTdkXHUwNTdmXHUwNTc4XHUwNTdkXHUwNTZiX1x1MDU3ZFx1MDU2NVx1MDU3YVx1MDU3Zlx1MDU2NVx1MDU3NFx1MDU2Mlx1MDU2NVx1MDU4MFx1MDU2Yl9cdTA1NzBcdTA1NzhcdTA1NmZcdTA1N2ZcdTA1NjVcdTA1NzRcdTA1NjJcdTA1NjVcdTA1ODBcdTA1NmJfXHUwNTc2XHUwNTc4XHUw'@; put 'NTc1XHUwNTY1XHUwNTc0XHUwNTYyXHUwNTY1XHUwNTgwXHUwNTZiX1x1MDU2NFx1MDU2NVx1MDU2Zlx1MDU3Zlx1MDU2NVx1MDU3NFx1MDU2Mlx1MDU2NVx1MDU4MFx1MDU2YiIuc3BsaXQoIl8iKSxzdGFuZGFsb25lOiJcdTA1NzBcdTA1NzhcdTA1ODJcdTA1NzZcdTA1N2VcdTA1NjFcdTA1'@; put 'ODBfXHUwNTgzXHUwNTY1XHUwNTdmXHUwNTgwXHUwNTdlXHUwNTYxXHUwNTgwX1x1MDU3NFx1MDU2MVx1MDU4MFx1MDU3Zl9cdTA1NjFcdTA1N2FcdTA1ODBcdTA1NmJcdTA1NmNfXHUwNTc0XHUwNTYxXHUwNTc1XHUwNTZiXHUwNTdkX1x1MDU3MFx1MDU3OFx1MDU4Mlx1MDU3Nlx1MDU2Ylx1'@; put 'MDU3ZF9cdTA1NzBcdTA1NzhcdTA1ODJcdTA1NmNcdTA1NmJcdTA1N2RfXHUwNTg1XHUwNTYzXHUwNTc4XHUwNTdkXHUwNTdmXHUwNTc4XHUwNTdkX1x1MDU3ZFx1MDU2NVx1MDU3YVx1MDU3Zlx1MDU2NVx1MDU3NFx1MDU2Mlx1MDU2NVx1MDU4MF9cdTA1NzBcdTA1NzhcdTA1NmZcdTA1N2Zc'@; put 'dTA1NjVcdTA1NzRcdTA1NjJcdTA1NjVcdTA1ODBfXHUwNTc2XHUwNTc4XHUwNTc1XHUwNTY1XHUwNTc0XHUwNTYyXHUwNTY1XHUwNTgwX1x1MDU2NFx1MDU2NVx1MDU2Zlx1MDU3Zlx1MDU2NVx1MDU3NFx1MDU2Mlx1MDU2NVx1MDU4MCIuc3BsaXQoIl8iKX0sbW9udGhzU2hvcnQ6Ilx1MDU3'@; put 'MFx1MDU3Nlx1MDU3ZV9cdTA1ODNcdTA1N2ZcdTA1ODBfXHUwNTc0XHUwNTgwXHUwNTdmX1x1MDU2MVx1MDU3YVx1MDU4MF9cdTA1NzRcdTA1NzVcdTA1N2RfXHUwNTcwXHUwNTc2XHUwNTdkX1x1MDU3MFx1MDU2Y1x1MDU3ZF9cdTA1ODVcdTA1NjNcdTA1N2RfXHUwNTdkXHUwNTdhXHUwNTdm'@; put 'X1x1MDU3MFx1MDU2Zlx1MDU3Zl9cdTA1NzZcdTA1NzRcdTA1NjJfXHUwNTY0XHUwNTZmXHUwNTdmIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTA1NmZcdTA1NmJcdTA1ODBcdTA1NjFcdTA1NmZcdTA1NmJfXHUwNTY1XHUwNTgwXHUwNTZmXHUwNTc4XHUwNTgyXHUwNTc3XHUwNTYxXHUwNTYy'@; put 'XHUwNTY5XHUwNTZiX1x1MDU2NVx1MDU4MFx1MDU2NVx1MDU4NFx1MDU3N1x1MDU2MVx1MDU2Mlx1MDU2OVx1MDU2Yl9cdTA1NzlcdTA1NzhcdTA1ODBcdTA1NjVcdTA1ODRcdTA1NzdcdTA1NjFcdTA1NjJcdTA1NjlcdTA1NmJfXHUwNTcwXHUwNTZiXHUwNTc2XHUwNTYzXHUwNTc3XHUwNTYx'@; put 'XHUwNTYyXHUwNTY5XHUwNTZiX1x1MDU3OFx1MDU4Mlx1MDU4MFx1MDU2Mlx1MDU2MVx1MDU2OV9cdTA1NzdcdTA1NjFcdTA1NjJcdTA1NjFcdTA1NjkiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNTZmXHUwNTgwXHUwNTZmX1x1MDU2NVx1MDU4MFx1MDU2Zl9cdTA1NjVcdTA1ODBc'@; put 'dTA1ODRfXHUwNTc5XHUwNTgwXHUwNTg0X1x1MDU3MFx1MDU3Nlx1MDU2M19cdTA1NzhcdTA1ODJcdTA1ODBcdTA1NjJfXHUwNTc3XHUwNTYyXHUwNTY5Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA1NmZcdTA1ODBcdTA1NmZfXHUwNTY1XHUwNTgwXHUwNTZmX1x1MDU2NVx1MDU4MFx1'@; put 'MDU4NF9cdTA1NzlcdTA1ODBcdTA1ODRfXHUwNTcwXHUwNTc2XHUwNTYzX1x1MDU3OFx1MDU4Mlx1MDU4MFx1MDU2Ml9cdTA1NzdcdTA1NjJcdTA1NjkiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQgTU1N'@; put 'TSBZWVlZIFx1MDU2OS4iLExMTDoiRCBNTU1NIFlZWVkgXHUwNTY5LiwgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIFx1MDU2OS4sIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA1NjFcdTA1NzVcdTA1N2RcdTA1ODVcdTA1ODBdIExUIixuZXh0RGF5OiJbXHUwNTdlXHUw'@; put 'NTYxXHUwNTcyXHUwNTY4XSBMVCIsbGFzdERheToiW1x1MDU2NVx1MDU4MFx1MDU2NVx1MDU2Zl0gTFQiLG5leHRXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuImRkZGQgW1x1MDU4NVx1MDU4MFx1MDU2OCBcdTA1NmFcdTA1NjFcdTA1NzRcdTA1NjhdIExUIn0sbGFzdFdlZWs6ZnVuY3Rpb24oKXty'@; put 'ZXR1cm4iW1x1MDU2MVx1MDU3Nlx1MDU4MVx1MDU2MVx1MDU2ZV0gZGRkZCBbXHUwNTg1XHUwNTgwXHUwNTY4IFx1MDU2YVx1MDU2MVx1MDU3NFx1MDU2OF0gTFQifSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBcdTA1NzBcdTA1NjVcdTA1N2ZcdTA1NzgiLHBhc3Q6'@; put 'IiVzIFx1MDU2MVx1MDU3Y1x1MDU2MVx1MDU3YiIsczoiXHUwNTc0XHUwNTZiIFx1MDU4NFx1MDU2MVx1MDU3Nlx1MDU2YiBcdTA1N2VcdTA1NjFcdTA1NzVcdTA1ODBcdTA1NmZcdTA1NzVcdTA1NjFcdTA1NzYiLHNzOiIlZCBcdTA1N2VcdTA1NjFcdTA1NzVcdTA1ODBcdTA1NmZcdTA1NzVc'@; put 'dTA1NjFcdTA1NzYiLG06Ilx1MDU4MFx1MDU3OFx1MDU3YVx1MDU2NSIsbW06IiVkIFx1MDU4MFx1MDU3OFx1MDU3YVx1MDU2NSIsaDoiXHUwNTZhXHUwNTYxXHUwNTc0IixoaDoiJWQgXHUwNTZhXHUwNTYxXHUwNTc0IixkOiJcdTA1ODVcdTA1ODAiLGRkOiIlZCBcdTA1ODVcdTA1ODAiLE06'@; put 'Ilx1MDU2MVx1MDU3NFx1MDU2Ylx1MDU3ZCIsTU06IiVkIFx1MDU2MVx1MDU3NFx1MDU2Ylx1MDU3ZCIseToiXHUwNTdmXHUwNTYxXHUwNTgwXHUwNTZiIix5eToiJWQgXHUwNTdmXHUwNTYxXHUwNTgwXHUwNTZiIn0sbWVyaWRpZW1QYXJzZTovXHUwNTYzXHUwNTZiXHUwNTc3XHUwNTY1XHUw'@; put 'NTgwXHUwNTdlXHUwNTYxfFx1MDU2MVx1MDU3Y1x1MDU2MVx1MDU3ZVx1MDU3OFx1MDU3Zlx1MDU3ZVx1MDU2MXxcdTA1ODFcdTA1NjVcdTA1ODBcdTA1NjVcdTA1NmZcdTA1N2VcdTA1NjF8XHUwNTY1XHUwNTgwXHUwNTY1XHUwNTZmXHUwNTc4XHUwNTc1XHUwNTYxXHUwNTc2Lyxpc1BNOmZ1'@; put 'bmN0aW9uKHApe3JldHVybi9eKFx1MDU4MVx1MDU2NVx1MDU4MFx1MDU2NVx1MDU2Zlx1MDU3ZVx1MDU2MXxcdTA1NjVcdTA1ODBcdTA1NjVcdTA1NmZcdTA1NzhcdTA1NzVcdTA1NjFcdTA1NzYpJC8udGVzdChwKX0sbWVyaWRpZW06ZnVuY3Rpb24ocCl7cmV0dXJuIHA8ND8iXHUwNTYzXHUw'@; put 'NTZiXHUwNTc3XHUwNTY1XHUwNTgwXHUwNTdlXHUwNTYxIjpwPDEyPyJcdTA1NjFcdTA1N2NcdTA1NjFcdTA1N2VcdTA1NzhcdTA1N2ZcdTA1N2VcdTA1NjEiOnA8MTc/Ilx1MDU4MVx1MDU2NVx1MDU4MFx1MDU2NVx1MDU2Zlx1MDU3ZVx1MDU2MSI6Ilx1MDU2NVx1MDU4MFx1MDU2NVx1MDU2'@; put 'Zlx1MDU3OFx1MDU3NVx1MDU2MVx1MDU3NiJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn18XGR7MSwyfS0oXHUwNTZiXHUwNTc2fFx1MDU4MFx1MDU2NCkvLG9yZGluYWw6ZnVuY3Rpb24ocCxOKXtzd2l0Y2goTil7Y2FzZSJEREQiOmNhc2UidyI6Y2FzZSJXIjpjYXNlIkRERG8i'@; put 'OnJldHVybiAxPT09cD9wKyItXHUwNTZiXHUwNTc2IjpwKyItXHUwNTgwXHUwNTY0IjtkZWZhdWx0OnJldHVybiBwfX0sd2Vlazp7ZG93OjEsZG95Ojd9fSl9KGIoOTc1ODYpKX0sNTg2OmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0IjtELmRlZmluZUxvY2FsZSgi'@; put 'aWQiLHttb250aHM6IkphbnVhcmlfRmVicnVhcmlfTWFyZXRfQXByaWxfTWVpX0p1bmlfSnVsaV9BZ3VzdHVzX1NlcHRlbWJlcl9Pa3RvYmVyX05vdmVtYmVyX0Rlc2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fRmViX01hcl9BcHJfTWVpX0p1bl9KdWxfQWd0X1NlcF9Pa3Rf'@; put 'Tm92X0RlcyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiTWluZ2d1X1NlbmluX1NlbGFzYV9SYWJ1X0thbWlzX0p1bWF0X1NhYnR1Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ik1pbl9TZW5fU2VsX1JhYl9LYW1fSnVtX1NhYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiTWdfU25fU2xfUmJf'@; put 'S21fSm1fU2IiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISC5tbSIsTFRTOiJISC5tbS5zcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIFtwdWt1bF0gSEgubW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIFtwdWt1bF0gSEgubW0i'@; put 'fSxtZXJpZGllbVBhcnNlOi9wYWdpfHNpYW5nfHNvcmV8bWFsYW0vLG1lcmlkaWVtSG91cjpmdW5jdGlvbihwLE4pe3JldHVybiAxMj09PXAmJihwPTApLCJwYWdpIj09PU4/cDoic2lhbmciPT09Tj9wPj0xMT9wOnArMTI6InNvcmUiPT09Tnx8Im1hbGFtIj09PU4/cCsxMjp2b2lkIDB9LG1l'@; put 'cmlkaWVtOmZ1bmN0aW9uKHAsTix3KXtyZXR1cm4gcDwxMT8icGFnaSI6cDwxNT8ic2lhbmciOnA8MTk/InNvcmUiOiJtYWxhbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbSGFyaSBpbmkgcHVrdWxdIExUIixuZXh0RGF5OiJbQmVzb2sgcHVrdWxdIExUIixuZXh0V2VlazoiZGRkZCBbcHVrdWxd'@; put 'IExUIixsYXN0RGF5OiJbS2VtYXJpbiBwdWt1bF0gTFQiLGxhc3RXZWVrOiJkZGRkIFtsYWx1IHB1a3VsXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiZGFsYW0gJXMiLHBhc3Q6IiVzIHlhbmcgbGFsdSIsczoiYmViZXJhcGEgZGV0aWsiLHNzOiIlZCBkZXRpayIs'@; put 'bToic2VtZW5pdCIsbW06IiVkIG1lbml0IixoOiJzZWphbSIsaGg6IiVkIGphbSIsZDoic2VoYXJpIixkZDoiJWQgaGFyaSIsTToic2VidWxhbiIsTU06IiVkIGJ1bGFuIix5OiJzZXRhaHVuIix5eToiJWQgdGFodW4ifSx3ZWVrOntkb3c6MCxkb3k6Nn19KX0oYig5NzU4NikpfSw5MDIxMTpm'@; put 'dW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gXyh3KXtyZXR1cm4gdyUxMDA9PTExfHx3JTEwIT0xfWZ1bmN0aW9uIHAodyxGLEgsUil7dmFyIGo9dysiICI7c3dpdGNoKEgpe2Nhc2UicyI6cmV0dXJuIEZ8fFI/Im5va2tyYXIgc2VrXHhmYW5kdXIi'@; put 'OiJub2trcnVtIHNla1x4ZmFuZHVtIjtjYXNlInNzIjpyZXR1cm4gXyh3KT9qKyhGfHxSPyJzZWtceGZhbmR1ciI6InNla1x4ZmFuZHVtIik6aisic2VrXHhmYW5kYSI7Y2FzZSJtIjpyZXR1cm4gRj8ibVx4ZWRuXHhmYXRhIjoibVx4ZWRuXHhmYXR1IjtjYXNlIm1tIjpyZXR1cm4gXyh3KT9q'@; put 'KyhGfHxSPyJtXHhlZG5ceGZhdHVyIjoibVx4ZWRuXHhmYXR1bSIpOkY/aisibVx4ZWRuXHhmYXRhIjpqKyJtXHhlZG5ceGZhdHUiO2Nhc2UiaGgiOnJldHVybiBfKHcpP2orKEZ8fFI/ImtsdWtrdXN0dW5kaXIiOiJrbHVra3VzdHVuZHVtIik6aisia2x1a2t1c3R1bmQiO2Nhc2UiZCI6cmV0'@; put 'dXJuIEY/ImRhZ3VyIjpSPyJkYWciOiJkZWdpIjtjYXNlImRkIjpyZXR1cm4gXyh3KT9GP2orImRhZ2FyIjpqKyhSPyJkYWdhIjoiZFx4ZjZndW0iKTpGP2orImRhZ3VyIjpqKyhSPyJkYWciOiJkZWdpIik7Y2FzZSJNIjpyZXR1cm4gRj8ibVx4ZTFudVx4ZjB1ciI6Uj8ibVx4ZTFudVx4ZjAi'@; put 'OiJtXHhlMW51XHhmMGkiO2Nhc2UiTU0iOnJldHVybiBfKHcpP0Y/aisibVx4ZTFudVx4ZjBpciI6aisoUj8ibVx4ZTFudVx4ZjBpIjoibVx4ZTFudVx4ZjB1bSIpOkY/aisibVx4ZTFudVx4ZjB1ciI6aisoUj8ibVx4ZTFudVx4ZjAiOiJtXHhlMW51XHhmMGkiKTtjYXNlInkiOnJldHVybiBG'@; put 'fHxSPyJceGUxciI6Ilx4ZTFyaSI7Y2FzZSJ5eSI6cmV0dXJuIF8odyk/aisoRnx8Uj8iXHhlMXIiOiJceGUxcnVtIik6aisoRnx8Uj8iXHhlMXIiOiJceGUxcmkiKX19RC5kZWZpbmVMb2NhbGUoImlzIix7bW9udGhzOiJqYW5ceGZhYXJfZmViclx4ZmFhcl9tYXJzX2Fwclx4ZWRsX21hXHhl'@; put 'ZF9qXHhmYW5ceGVkX2pceGZhbFx4ZWRfXHhlMWdceGZhc3Rfc2VwdGVtYmVyX29rdFx4ZjNiZXJfblx4ZjN2ZW1iZXJfZGVzZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Imphbl9mZWJfbWFyX2Fwcl9tYVx4ZWRfalx4ZmFuX2pceGZhbF9ceGUxZ1x4ZmFfc2VwX29rdF9uXHhmM3Zf'@; put 'ZGVzIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJzdW5udWRhZ3VyX21ceGUxbnVkYWd1cl9ceGZlcmlceGYwanVkYWd1cl9taVx4ZjB2aWt1ZGFndXJfZmltbXR1ZGFndXJfZlx4ZjZzdHVkYWd1cl9sYXVnYXJkYWd1ciIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJzdW5fbVx4ZTFuX1x4ZmVy'@; put 'aV9taVx4ZjBfZmltX2ZceGY2c19sYXUiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlN1X01ceGUxX1x4ZGVyX01pX0ZpX0ZceGY2X0xhIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRC4gTU1NTSBZWVlZIixM'@; put 'TEw6IkQuIE1NTU0gWVlZWSBba2wuXSBIOm1tIixMTExMOiJkZGRkLCBELiBNTU1NIFlZWVkgW2tsLl0gSDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHhlZCBkYWcga2wuXSBMVCIsbmV4dERheToiW1x4ZTEgbW9yZ3VuIGtsLl0gTFQiLG5leHRXZWVrOiJkZGRkIFtrbC5dIExUIixsYXN0'@; put 'RGF5OiJbXHhlZCBnXHhlNnIga2wuXSBMVCIsbGFzdFdlZWs6IltzXHhlZFx4ZjBhc3RhXSBkZGRkIFtrbC5dIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJlZnRpciAlcyIscGFzdDoiZnlyaXIgJXMgc1x4ZWRceGYwYW4iLHM6cCxzczpwLG06cCxtbTpwLGg6Imts'@; put 'dWtrdXN0dW5kIixoaDpwLGQ6cCxkZDpwLE06cCxNTTpwLHk6cCx5eTpwfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KGIoOTc1ODYpKX0sMjIzNDA6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVz'@; put 'ZSBzdHJpY3QiO0QuZGVmaW5lTG9jYWxlKCJpdC1jaCIse21vbnRoczoiZ2VubmFpb19mZWJicmFpb19tYXJ6b19hcHJpbGVfbWFnZ2lvX2dpdWdub19sdWdsaW9fYWdvc3RvX3NldHRlbWJyZV9vdHRvYnJlX25vdmVtYnJlX2RpY2VtYnJlIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJnZW5f'@; put 'ZmViX21hcl9hcHJfbWFnX2dpdV9sdWdfYWdvX3NldF9vdHRfbm92X2RpYyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiZG9tZW5pY2FfbHVuZWRceGVjX21hcnRlZFx4ZWNfbWVyY29sZWRceGVjX2dpb3ZlZFx4ZWNfdmVuZXJkXHhlY19zYWJhdG8iLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoi'@; put 'ZG9tX2x1bl9tYXJfbWVyX2dpb192ZW5fc2FiIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJkb19sdV9tYV9tZV9naV92ZV9zYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoi'@; put 'RCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW09nZ2kgYWxsZV0gTFQiLG5leHREYXk6IltEb21hbmkgYWxsZV0gTFQiLG5leHRXZWVrOiJkZGRkIFthbGxlXSBMVCIsbGFzdERheToiW0llcmkgYWxsZV0gTFQiLGxh'@; put 'c3RXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLmRheSgpPyJbbGEgc2NvcnNhXSBkZGRkIFthbGxlXSBMVCI6IltsbyBzY29yc29dIGRkZGQgW2FsbGVdIExUIn0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTpmdW5jdGlvbihwKXtyZXR1cm4oL15bMC05XS4rJC8u'@; put 'dGVzdChwKT8idHJhIjoiaW4iKSsiICIrcH0scGFzdDoiJXMgZmEiLHM6ImFsY3VuaSBzZWNvbmRpIixzczoiJWQgc2Vjb25kaSIsbToidW4gbWludXRvIixtbToiJWQgbWludXRpIixoOiJ1bidvcmEiLGhoOiIlZCBvcmUiLGQ6InVuIGdpb3JubyIsZGQ6IiVkIGdpb3JuaSIsTToidW4gbWVz'@; put 'ZSIsTU06IiVkIG1lc2kiLHk6InVuIGFubm8iLHl5OiIlZCBhbm5pIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVx4YmEvLG9yZGluYWw6IiVkXHhiYSIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KGIoOTc1ODYpKX0sNzAxNzA6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7'@; put 'InVzZSBzdHJpY3QiO0QuZGVmaW5lTG9jYWxlKCJpdCIse21vbnRoczoiZ2VubmFpb19mZWJicmFpb19tYXJ6b19hcHJpbGVfbWFnZ2lvX2dpdWdub19sdWdsaW9fYWdvc3RvX3NldHRlbWJyZV9vdHRvYnJlX25vdmVtYnJlX2RpY2VtYnJlIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJnZW5f'@; put 'ZmViX21hcl9hcHJfbWFnX2dpdV9sdWdfYWdvX3NldF9vdHRfbm92X2RpYyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiZG9tZW5pY2FfbHVuZWRceGVjX21hcnRlZFx4ZWNfbWVyY29sZWRceGVjX2dpb3ZlZFx4ZWNfdmVuZXJkXHhlY19zYWJhdG8iLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoi'@; put 'ZG9tX2x1bl9tYXJfbWVyX2dpb192ZW5fc2FiIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJkb19sdV9tYV9tZV9naV92ZV9zYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoi'@; put 'RCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheTpmdW5jdGlvbigpe3JldHVybiJbT2dnaSBhIisodGhpcy5ob3VycygpPjE/ImxsZSAiOjA9PT10aGlzLmhvdXJzKCk/IiAiOiJsbCciKSsiXUxUIn0sbmV4dERheTpmdW5j'@; put 'dGlvbigpe3JldHVybiJbRG9tYW5pIGEiKyh0aGlzLmhvdXJzKCk+MT8ibGxlICI6MD09PXRoaXMuaG91cnMoKT8iICI6ImxsJyIpKyJdTFQifSxuZXh0V2VlazpmdW5jdGlvbigpe3JldHVybiJkZGRkIFthIisodGhpcy5ob3VycygpPjE/ImxsZSAiOjA9PT10aGlzLmhvdXJzKCk/IiAiOiJs'@; put 'bCciKSsiXUxUIn0sbGFzdERheTpmdW5jdGlvbigpe3JldHVybiJbSWVyaSBhIisodGhpcy5ob3VycygpPjE/ImxsZSAiOjA9PT10aGlzLmhvdXJzKCk/IiAiOiJsbCciKSsiXUxUIn0sbGFzdFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuZGF5KCk/IltMYSBzY29yc2FdIGRkZGQg'@; put 'W2EiKyh0aGlzLmhvdXJzKCk+MT8ibGxlICI6MD09PXRoaXMuaG91cnMoKT8iICI6ImxsJyIpKyJdTFQiOiJbTG8gc2NvcnNvXSBkZGRkIFthIisodGhpcy5ob3VycygpPjE/ImxsZSAiOjA9PT10aGlzLmhvdXJzKCk/IiAiOiJsbCciKSsiXUxUIn0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRp'@; put 'bWU6e2Z1dHVyZToidHJhICVzIixwYXN0OiIlcyBmYSIsczoiYWxjdW5pIHNlY29uZGkiLHNzOiIlZCBzZWNvbmRpIixtOiJ1biBtaW51dG8iLG1tOiIlZCBtaW51dGkiLGg6InVuJ29yYSIsaGg6IiVkIG9yZSIsZDoidW4gZ2lvcm5vIixkZDoiJWQgZ2lvcm5pIix3OiJ1bmEgc2V0dGltYW5h'@; put 'Iix3dzoiJWQgc2V0dGltYW5lIixNOiJ1biBtZXNlIixNTToiJWQgbWVzaSIseToidW4gYW5ubyIseXk6IiVkIGFubmkifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XHhiYS8sb3JkaW5hbDoiJWRceGJhIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oYig5NzU4NikpfSwzOTc3MDpm'@; put 'dW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7RC5kZWZpbmVMb2NhbGUoImphIix7ZXJhczpbe3NpbmNlOiIyMDE5LTA1LTAxIixvZmZzZXQ6MSxuYW1lOiJcdTRlZTRcdTU0OGMiLG5hcnJvdzoiXHUzMmZmIixhYmJyOiJSIn0se3NpbmNlOiIxOTg5LTAxLTA4Iix1'@; put 'bnRpbDoiMjAxOS0wNC0zMCIsb2Zmc2V0OjEsbmFtZToiXHU1ZTczXHU2MjEwIixuYXJyb3c6Ilx1MzM3YiIsYWJicjoiSCJ9LHtzaW5jZToiMTkyNi0xMi0yNSIsdW50aWw6IjE5ODktMDEtMDciLG9mZnNldDoxLG5hbWU6Ilx1NjYyZFx1NTQ4YyIsbmFycm93OiJcdTMzN2MiLGFiYnI6IlMi'@; put 'fSx7c2luY2U6IjE5MTItMDctMzAiLHVudGlsOiIxOTI2LTEyLTI0IixvZmZzZXQ6MSxuYW1lOiJcdTU5MjdcdTZiNjMiLG5hcnJvdzoiXHUzMzdkIixhYmJyOiJUIn0se3NpbmNlOiIxODczLTAxLTAxIix1bnRpbDoiMTkxMi0wNy0yOSIsb2Zmc2V0OjYsbmFtZToiXHU2NjBlXHU2Y2JiIixu'@; put 'YXJyb3c6Ilx1MzM3ZSIsYWJicjoiTSJ9LHtzaW5jZToiMDAwMS0wMS0wMSIsdW50aWw6IjE4NzMtMTItMzEiLG9mZnNldDoxLG5hbWU6Ilx1ODk3Zlx1NjZhNiIsbmFycm93OiJBRCIsYWJicjoiQUQifSx7c2luY2U6IjAwMDAtMTItMzEiLHVudGlsOi0xLzAsb2Zmc2V0OjEsbmFtZToiXHU3'@; put 'ZDAwXHU1MTQzXHU1MjRkIixuYXJyb3c6IkJDIixhYmJyOiJCQyJ9XSxlcmFZZWFyT3JkaW5hbFJlZ2V4Oi8oXHU1MTQzfFxkKylcdTVlNzQvLGVyYVllYXJPcmRpbmFsUGFyc2U6ZnVuY3Rpb24ocCxOKXtyZXR1cm4iXHU1MTQzIj09PU5bMV0/MTpwYXJzZUludChOWzFdfHxwLDEwKX0sbW9u'@; put 'dGhzOiIxXHU2NzA4XzJcdTY3MDhfM1x1NjcwOF80XHU2NzA4XzVcdTY3MDhfNlx1NjcwOF83XHU2NzA4XzhcdTY3MDhfOVx1NjcwOF8xMFx1NjcwOF8xMVx1NjcwOF8xMlx1NjcwOCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiMVx1NjcwOF8yXHU2NzA4XzNcdTY3MDhfNFx1NjcwOF81XHU2'@; put 'NzA4XzZcdTY3MDhfN1x1NjcwOF84XHU2NzA4XzlcdTY3MDhfMTBcdTY3MDhfMTFcdTY3MDhfMTJcdTY3MDgiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1NjVlNVx1NjZkY1x1NjVlNV9cdTY3MDhcdTY2ZGNcdTY1ZTVfXHU3MDZiXHU2NmRjXHU2NWU1X1x1NmMzNFx1NjZkY1x1NjVlNV9cdTY3'@; put 'MjhcdTY2ZGNcdTY1ZTVfXHU5MWQxXHU2NmRjXHU2NWU1X1x1NTcxZlx1NjZkY1x1NjVlNSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTY1ZTVfXHU2NzA4X1x1NzA2Yl9cdTZjMzRfXHU2NzI4X1x1OTFkMV9cdTU3MWYiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1NjVlNV9cdTY3'@; put 'MDhfXHU3MDZiX1x1NmMzNF9cdTY3MjhfXHU5MWQxX1x1NTcxZiIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJZWVlZL01NL0REIixMTDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IixMTEw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVl'@; put 'NSBISDptbSIsTExMTDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IGRkZGQgSEg6bW0iLGw6IllZWVkvTU0vREQiLGxsOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUiLGxsbDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IEhIOm1tIixsbGxsOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUo'@; put 'ZGRkKSBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1NTM0OFx1NTI0ZHxcdTUzNDhcdTVmOGMvaSxpc1BNOmZ1bmN0aW9uKHApe3JldHVybiJcdTUzNDhcdTVmOGMiPT09cH0sbWVyaWRpZW06ZnVuY3Rpb24ocCxOLHcpe3JldHVybiBwPDEyPyJcdTUzNDhcdTUyNGQiOiJcdTUzNDhcdTVmOGMi'@; put 'fSxjYWxlbmRhcjp7c2FtZURheToiW1x1NGVjYVx1NjVlNV0gTFQiLG5leHREYXk6IltcdTY2MGVcdTY1ZTVdIExUIixuZXh0V2VlazpmdW5jdGlvbihwKXtyZXR1cm4gcC53ZWVrKCkhPT10aGlzLndlZWsoKT8iW1x1Njc2NVx1OTAzMV1kZGRkIExUIjoiZGRkZCBMVCJ9LGxhc3REYXk6Iltc'@; put 'dTY2MjhcdTY1ZTVdIExUIixsYXN0V2VlazpmdW5jdGlvbihwKXtyZXR1cm4gdGhpcy53ZWVrKCkhPT1wLndlZWsoKT8iW1x1NTE0OFx1OTAzMV1kZGRkIExUIjoiZGRkZCBMVCJ9LHNhbWVFbHNlOiJMIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVx1NjVlNS8sb3JkaW5hbDpm'@; put 'dW5jdGlvbihwLE4pe3N3aXRjaChOKXtjYXNlInkiOnJldHVybiAxPT09cD8iXHU1MTQzXHU1ZTc0IjpwKyJcdTVlNzQiO2Nhc2UiZCI6Y2FzZSJEIjpjYXNlIkRERCI6cmV0dXJuIHArIlx1NjVlNSI7ZGVmYXVsdDpyZXR1cm4gcH19LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlc1x1NWY4YyIs'@; put 'cGFzdDoiJXNcdTUyNGQiLHM6Ilx1NjU3MFx1NzlkMiIsc3M6IiVkXHU3OWQyIixtOiIxXHU1MjA2IixtbToiJWRcdTUyMDYiLGg6IjFcdTY2NDJcdTk1OTMiLGhoOiIlZFx1NjY0Mlx1OTU5MyIsZDoiMVx1NjVlNSIsZGQ6IiVkXHU2NWU1IixNOiIxXHUzMGY2XHU2NzA4IixNTToiJWRcdTMw'@; put 'ZjZcdTY3MDgiLHk6IjFcdTVlNzQiLHl5OiIlZFx1NWU3NCJ9fSl9KGIoOTc1ODYpKX0sNzM4NzU6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO0QuZGVmaW5lTG9jYWxlKCJqdiIse21vbnRoczoiSmFudWFyaV9GZWJydWFyaV9NYXJldF9BcHJpbF9NZWlfSnVu'@; put 'aV9KdWxpX0FndXN0dXNfU2VwdGVtYmVyX09rdG9iZXJfTm9wZW1iZXJfRGVzZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikphbl9GZWJfTWFyX0Fwcl9NZWlfSnVuX0p1bF9BZ3NfU2VwX09rdF9Ob3BfRGVzIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJNaW5nZ3VfU2VuZW5fU2Vsb3Nv'@; put 'X1JlYnVfS2VtaXNfSmVtdXdhaF9TZXB0dSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJNaW5fU2VuX1NlbF9SZWJfS2VtX0plbV9TZXAiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ik1nX1NuX1NsX1JiX0ttX0ptX1NwIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEgubW0i'@; put 'LExUUzoiSEgubW0uc3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBbcHVrdWxdIEhILm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBbcHVrdWxdIEhILm1tIn0sbWVyaWRpZW1QYXJzZTovZW5qaW5nfHNpeWFuZ3xzb250ZW58bmRhbHUvLG1l'@; put 'cmlkaWVtSG91cjpmdW5jdGlvbihwLE4pe3JldHVybiAxMj09PXAmJihwPTApLCJlbmppbmciPT09Tj9wOiJzaXlhbmciPT09Tj9wPj0xMT9wOnArMTI6InNvbnRlbiI9PT1OfHwibmRhbHUiPT09Tj9wKzEyOnZvaWQgMH0sbWVyaWRpZW06ZnVuY3Rpb24ocCxOLHcpe3JldHVybiBwPDExPyJl'@; put 'bmppbmciOnA8MTU/InNpeWFuZyI6cDwxOT8ic29udGVuIjoibmRhbHUifSxjYWxlbmRhcjp7c2FtZURheToiW0RpbnRlbiBwdW5pa28gcHVrdWxdIExUIixuZXh0RGF5OiJbTWJlbmphbmcgcHVrdWxdIExUIixuZXh0V2VlazoiZGRkZCBbcHVrdWxdIExUIixsYXN0RGF5OiJbS2FsYSB3aW5n'@; put 'aSBwdWt1bF0gTFQiLGxhc3RXZWVrOiJkZGRkIFtrZXBlbmdrZXIgcHVrdWxdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJ3b250ZW4gaW5nICVzIixwYXN0OiIlcyBpbmdrYW5nIGtlcGVuZ2tlciIsczoic2F3ZXRhd2lzIGRldGlrIixzczoiJWQgZGV0aWsiLG06'@; put 'InNldHVuZ2dhbCBtZW5pdCIsbW06IiVkIG1lbml0IixoOiJzZXR1bmdnYWwgamFtIixoaDoiJWQgamFtIixkOiJzZWRpbnRlbiIsZGQ6IiVkIGRpbnRlbiIsTToic2V3dWxhbiIsTU06IiVkIHd1bGFuIix5OiJzZXRhdW4iLHl5OiIlZCB0YXVuIn0sd2Vlazp7ZG93OjEsZG95Ojd9fSl9KGIo'@; put 'OTc1ODYpKX0sNzk0OTk6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO0QuZGVmaW5lTG9jYWxlKCJrYSIse21vbnRoczoiXHUxMGQ4XHUxMGQwXHUxMGRjXHUxMGQ1XHUxMGQwXHUxMGUwXHUxMGQ4X1x1MTBkN1x1MTBkNFx1MTBkMVx1MTBkNFx1MTBlMFx1MTBk'@; put 'NVx1MTBkMFx1MTBkYVx1MTBkOF9cdTEwZGJcdTEwZDBcdTEwZTBcdTEwZTJcdTEwZDhfXHUxMGQwXHUxMGRlXHUxMGUwXHUxMGQ4XHUxMGRhXHUxMGQ4X1x1MTBkYlx1MTBkMFx1MTBkOFx1MTBlMVx1MTBkOF9cdTEwZDhcdTEwZDVcdTEwZGNcdTEwZDhcdTEwZTFcdTEwZDhfXHUxMGQ4XHUx'@; put 'MGQ1XHUxMGRhXHUxMGQ4XHUxMGUxXHUxMGQ4X1x1MTBkMFx1MTBkMlx1MTBkNVx1MTBkOFx1MTBlMVx1MTBlMlx1MTBkZF9cdTEwZTFcdTEwZDRcdTEwZTVcdTEwZTJcdTEwZDRcdTEwZGJcdTEwZDFcdTEwZDRcdTEwZTBcdTEwZDhfXHUxMGRkXHUxMGU1XHUxMGUyXHUxMGRkXHUxMGRiXHUx'@; put 'MGQxXHUxMGQ0XHUxMGUwXHUxMGQ4X1x1MTBkY1x1MTBkZFx1MTBkNFx1MTBkYlx1MTBkMVx1MTBkNFx1MTBlMFx1MTBkOF9cdTEwZDNcdTEwZDRcdTEwZDlcdTEwZDRcdTEwZGJcdTEwZDFcdTEwZDRcdTEwZTBcdTEwZDgiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MTBkOFx1MTBkMFx1'@; put 'MTBkY19cdTEwZDdcdTEwZDRcdTEwZDFfXHUxMGRiXHUxMGQwXHUxMGUwX1x1MTBkMFx1MTBkZVx1MTBlMF9cdTEwZGJcdTEwZDBcdTEwZDhfXHUxMGQ4XHUxMGQ1XHUxMGRjX1x1MTBkOFx1MTBkNVx1MTBkYV9cdTEwZDBcdTEwZDJcdTEwZDVfXHUxMGUxXHUxMGQ0XHUxMGU1X1x1MTBkZFx1'@; put 'MTBlNVx1MTBlMl9cdTEwZGNcdTEwZGRcdTEwZDRfXHUxMGQzXHUxMGQ0XHUxMGQ5Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOntzdGFuZGFsb25lOiJcdTEwZDlcdTEwZDVcdTEwZDhcdTEwZTBcdTEwZDBfXHUxMGRkXHUxMGUwXHUxMGU4XHUxMGQwXHUxMGQxXHUxMGQwXHUxMGQ3XHUxMGQ4X1x1'@; put 'MTBlMVx1MTBkMFx1MTBkYlx1MTBlOFx1MTBkMFx1MTBkMVx1MTBkMFx1MTBkN1x1MTBkOF9cdTEwZGRcdTEwZDdcdTEwZWVcdTEwZThcdTEwZDBcdTEwZDFcdTEwZDBcdTEwZDdcdTEwZDhfXHUxMGVlXHUxMGUzXHUxMGQ3XHUxMGU4XHUxMGQwXHUxMGQxXHUxMGQwXHUxMGQ3XHUxMGQ4X1x1'@; put 'MTBkZVx1MTBkMFx1MTBlMFx1MTBkMFx1MTBlMVx1MTBkOVx1MTBkNFx1MTBkNVx1MTBkOF9cdTEwZThcdTEwZDBcdTEwZDFcdTEwZDBcdTEwZDdcdTEwZDgiLnNwbGl0KCJfIiksZm9ybWF0OiJcdTEwZDlcdTEwZDVcdTEwZDhcdTEwZTBcdTEwZDBcdTEwZTFfXHUxMGRkXHUxMGUwXHUxMGU4'@; put 'XHUxMGQwXHUxMGQxXHUxMGQwXHUxMGQ3XHUxMGUxX1x1MTBlMVx1MTBkMFx1MTBkYlx1MTBlOFx1MTBkMFx1MTBkMVx1MTBkMFx1MTBkN1x1MTBlMV9cdTEwZGRcdTEwZDdcdTEwZWVcdTEwZThcdTEwZDBcdTEwZDFcdTEwZDBcdTEwZDdcdTEwZTFfXHUxMGVlXHUxMGUzXHUxMGQ3XHUxMGU4'@; put 'XHUxMGQwXHUxMGQxXHUxMGQwXHUxMGQ3XHUxMGUxX1x1MTBkZVx1MTBkMFx1MTBlMFx1MTBkMFx1MTBlMVx1MTBkOVx1MTBkNFx1MTBkNVx1MTBlMV9cdTEwZThcdTEwZDBcdTEwZDFcdTEwZDBcdTEwZDdcdTEwZTEiLnNwbGl0KCJfIiksaXNGb3JtYXQ6LyhcdTEwZWNcdTEwZDhcdTEwZGNc'@; put 'dTEwZDB8XHUxMGU4XHUxMGQ0XHUxMGRiXHUxMGQzXHUxMGQ0XHUxMGQyKS99LHdlZWtkYXlzU2hvcnQ6Ilx1MTBkOVx1MTBkNVx1MTBkOF9cdTEwZGRcdTEwZTBcdTEwZThfXHUxMGUxXHUxMGQwXHUxMGRiX1x1MTBkZFx1MTBkN1x1MTBlZV9cdTEwZWVcdTEwZTNcdTEwZDdfXHUxMGRlXHUx'@; put 'MGQwXHUxMGUwX1x1MTBlOFx1MTBkMFx1MTBkMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUxMGQ5XHUxMGQ1X1x1MTBkZFx1MTBlMF9cdTEwZTFcdTEwZDBfXHUxMGRkXHUxMGQ3X1x1MTBlZVx1MTBlM19cdTEwZGVcdTEwZDBfXHUxMGU4XHUxMGQwIi5zcGxpdCgiXyIpLGxvbmdEYXRl'@; put 'Rm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MTBkM1x1MTBlNlx1MTBkNFx1MTBl'@; put 'MV0gTFRbLVx1MTBkNlx1MTBkNF0iLG5leHREYXk6IltcdTEwZWVcdTEwZDVcdTEwZDBcdTEwZGFdIExUWy1cdTEwZDZcdTEwZDRdIixsYXN0RGF5OiJbXHUxMGQyXHUxMGUzXHUxMGU4XHUxMGQ4XHUxMGRjXSBMVFstXHUxMGQ2XHUxMGQ0XSIsbmV4dFdlZWs6IltcdTEwZThcdTEwZDRcdTEw'@; put 'ZGJcdTEwZDNcdTEwZDRcdTEwZDJdIGRkZGQgTFRbLVx1MTBkNlx1MTBkNF0iLGxhc3RXZWVrOiJbXHUxMGVjXHUxMGQ4XHUxMGRjXHUxMGQwXSBkZGRkIExULVx1MTBkNlx1MTBkNCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTpmdW5jdGlvbihwKXtyZXR1cm4gcC5yZXBs'@; put 'YWNlKC8oXHUxMGVjXHUxMGQwXHUxMGRifFx1MTBlY1x1MTBlM1x1MTBkN3xcdTEwZTFcdTEwZDBcdTEwZDBcdTEwZDd8XHUxMGVjXHUxMGQ0XHUxMGRhfFx1MTBkM1x1MTBlNnxcdTEwZDdcdTEwZDUpKFx1MTBkOHxcdTEwZDQpLyxmdW5jdGlvbihOLHcsRil7cmV0dXJuIlx1MTBkOCI9PT1G'@; put 'P3crIlx1MTBlOFx1MTBkOCI6dytGKyJcdTEwZThcdTEwZDgifSl9LHBhc3Q6ZnVuY3Rpb24ocCl7cmV0dXJuLyhcdTEwZWNcdTEwZDBcdTEwZGJcdTEwZDh8XHUxMGVjXHUxMGUzXHUxMGQ3XHUxMGQ4fFx1MTBlMVx1MTBkMFx1MTBkMFx1MTBkN1x1MTBkOHxcdTEwZDNcdTEwZTZcdTEwZDR8'@; put 'XHUxMGQ3XHUxMGQ1XHUxMGQ0KS8udGVzdChwKT9wLnJlcGxhY2UoLyhcdTEwZDh8XHUxMGQ0KSQvLCJcdTEwZDhcdTEwZTEgXHUxMGVjXHUxMGQ4XHUxMGRjIik6L1x1MTBlY1x1MTBkNFx1MTBkYVx1MTBkOC8udGVzdChwKT9wLnJlcGxhY2UoL1x1MTBlY1x1MTBkNFx1MTBkYVx1MTBkOCQv'@; put 'LCJcdTEwZWNcdTEwZGFcdTEwZDhcdTEwZTEgXHUxMGVjXHUxMGQ4XHUxMGRjIik6cH0sczoiXHUxMGUwXHUxMGQwXHUxMGRiXHUxMGQzXHUxMGQ0XHUxMGRjXHUxMGQ4XHUxMGRiXHUxMGQ0IFx1MTBlY1x1MTBkMFx1MTBkYlx1MTBkOCIsc3M6IiVkIFx1MTBlY1x1MTBkMFx1MTBkYlx1MTBk'@; put 'OCIsbToiXHUxMGVjXHUxMGUzXHUxMGQ3XHUxMGQ4IixtbToiJWQgXHUxMGVjXHUxMGUzXHUxMGQ3XHUxMGQ4IixoOiJcdTEwZTFcdTEwZDBcdTEwZDBcdTEwZDdcdTEwZDgiLGhoOiIlZCBcdTEwZTFcdTEwZDBcdTEwZDBcdTEwZDdcdTEwZDgiLGQ6Ilx1MTBkM1x1MTBlNlx1MTBkNCIsZGQ6'@; put 'IiVkIFx1MTBkM1x1MTBlNlx1MTBkNCIsTToiXHUxMGQ3XHUxMGQ1XHUxMGQ0IixNTToiJWQgXHUxMGQ3XHUxMGQ1XHUxMGQ0Iix5OiJcdTEwZWNcdTEwZDRcdTEwZGFcdTEwZDgiLHl5OiIlZCBcdTEwZWNcdTEwZDRcdTEwZGFcdTEwZDgifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi8wfDEt'@; put 'XHUxMGRhXHUxMGQ4fFx1MTBkYlx1MTBkNC1cZHsxLDJ9fFxkezEsMn0tXHUxMGQ0LyxvcmRpbmFsOmZ1bmN0aW9uKHApe3JldHVybiAwPT09cD9wOjE9PT1wP3ArIi1cdTEwZGFcdTEwZDgiOnA8MjB8fHA8PTEwMCYmcCUyMD09MHx8cCUxMDA9PTA/Ilx1MTBkYlx1MTBkNC0iK3A6cCsiLVx1'@; put 'MTBkNCJ9LHdlZWs6e2RvdzoxLGRveTo3fX0pfShiKDk3NTg2KSl9LDkzNTczOmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0Ijt2YXIgXz17MDoiLVx1MDQ0OFx1MDQ1NiIsMToiLVx1MDQ0OFx1MDQ1NiIsMjoiLVx1MDQ0OFx1MDQ1NiIsMzoiLVx1MDQ0OFx1MDQ1'@; put 'NiIsNDoiLVx1MDQ0OFx1MDQ1NiIsNToiLVx1MDQ0OFx1MDQ1NiIsNjoiLVx1MDQ0OFx1MDQ0YiIsNzoiLVx1MDQ0OFx1MDQ1NiIsODoiLVx1MDQ0OFx1MDQ1NiIsOToiLVx1MDQ0OFx1MDQ0YiIsMTA6Ii1cdTA0NDhcdTA0NGIiLDIwOiItXHUwNDQ4XHUwNDRiIiwzMDoiLVx1MDQ0OFx1MDQ0'@; put 'YiIsNDA6Ii1cdTA0NDhcdTA0NGIiLDUwOiItXHUwNDQ4XHUwNDU2Iiw2MDoiLVx1MDQ0OFx1MDQ0YiIsNzA6Ii1cdTA0NDhcdTA0NTYiLDgwOiItXHUwNDQ4XHUwNDU2Iiw5MDoiLVx1MDQ0OFx1MDQ0YiIsMTAwOiItXHUwNDQ4XHUwNDU2In07RC5kZWZpbmVMb2NhbGUoImtrIix7bW9udGhz'@; put 'OiJcdTA0OWJcdTA0MzBcdTA0YTNcdTA0NDJcdTA0MzBcdTA0NDBfXHUwNDMwXHUwNDliXHUwNDNmXHUwNDMwXHUwNDNkX1x1MDQzZFx1MDQzMFx1MDQ0M1x1MDQ0MFx1MDQ0Ylx1MDQzN19cdTA0NDFcdTA0ZDlcdTA0NDNcdTA0NTZcdTA0NDBfXHUwNDNjXHUwNDMwXHUwNDNjXHUwNDRiXHUw'@; put 'NDQwX1x1MDQzY1x1MDQzMFx1MDQ0M1x1MDQ0MVx1MDQ0Ylx1MDQzY19cdTA0NDhcdTA0NTZcdTA0M2JcdTA0MzRcdTA0MzVfXHUwNDQyXHUwNDMwXHUwNDNjXHUwNDRiXHUwNDM3X1x1MDQ5Ylx1MDQ0Ylx1MDQ0MFx1MDQzYVx1MDRhZlx1MDQzOVx1MDQzNVx1MDQzYV9cdTA0OWJcdTA0MzBc'@; put 'dTA0MzdcdTA0MzBcdTA0M2RfXHUwNDliXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDQ4XHUwNDMwX1x1MDQzNlx1MDQzNVx1MDQzYlx1MDQ0Mlx1MDQzZVx1MDQ5Ylx1MDQ0MVx1MDQzMFx1MDQzZCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwNDliXHUwNDMwXHUwNGEzX1x1MDQzMFx1MDQ5'@; put 'Ylx1MDQzZl9cdTA0M2RcdTA0MzBcdTA0NDNfXHUwNDQxXHUwNGQ5XHUwNDQzX1x1MDQzY1x1MDQzMFx1MDQzY19cdTA0M2NcdTA0MzBcdTA0NDNfXHUwNDQ4XHUwNDU2XHUwNDNiX1x1MDQ0Mlx1MDQzMFx1MDQzY19cdTA0OWJcdTA0NGJcdTA0NDBfXHUwNDliXHUwNDMwXHUwNDM3X1x1MDQ5'@; put 'Ylx1MDQzMFx1MDQ0MF9cdTA0MzZcdTA0MzVcdTA0M2IiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDQzNlx1MDQzNVx1MDQzYVx1MDQ0MVx1MDQzNVx1MDQzZFx1MDQzMVx1MDQ1Nl9cdTA0MzRcdTA0YWZcdTA0MzlcdTA0NDFcdTA0MzVcdTA0M2RcdTA0MzFcdTA0NTZfXHUwNDQxXHUwNDM1'@; put 'XHUwNDM5XHUwNDQxXHUwNDM1XHUwNDNkXHUwNDMxXHUwNDU2X1x1MDQ0MVx1MDRkOVx1MDQ0MFx1MDQ0MVx1MDQzNVx1MDQzZFx1MDQzMVx1MDQ1Nl9cdTA0MzFcdTA0MzVcdTA0MzlcdTA0NDFcdTA0MzVcdTA0M2RcdTA0MzFcdTA0NTZfXHUwNDM2XHUwNGIxXHUwNDNjXHUwNDMwX1x1MDQ0'@; put 'MVx1MDQzNVx1MDQzZFx1MDQzMVx1MDQ1NiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA0MzZcdTA0MzVcdTA0M2FfXHUwNDM0XHUwNGFmXHUwNDM5X1x1MDQ0MVx1MDQzNVx1MDQzOV9cdTA0NDFcdTA0ZDlcdTA0NDBfXHUwNDMxXHUwNDM1XHUwNDM5X1x1MDQzNlx1MDRiMVx1MDQz'@; put 'Y19cdTA0NDFcdTA0MzVcdTA0M2QiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDQzNlx1MDQzYV9cdTA0MzRcdTA0MzlfXHUwNDQxXHUwNDM5X1x1MDQ0MVx1MDQ0MF9cdTA0MzFcdTA0MzlfXHUwNDM2XHUwNDNjX1x1MDQ0MVx1MDQzZCIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7'@; put 'TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA0MTFcdTA0YWZcdTA0MzNcdTA0NTZcdTA0M2Qg'@; put 'XHUwNDQxXHUwNDMwXHUwNDkzXHUwNDMwXHUwNDQyXSBMVCIsbmV4dERheToiW1x1MDQxNVx1MDQ0MFx1MDQ0Mlx1MDQzNVx1MDRhMyBcdTA0NDFcdTA0MzBcdTA0OTNcdTA0MzBcdTA0NDJdIExUIixuZXh0V2VlazoiZGRkZCBbXHUwNDQxXHUwNDMwXHUwNDkzXHUwNDMwXHUwNDQyXSBMVCIs'@; put 'bGFzdERheToiW1x1MDQxYVx1MDQzNVx1MDQ0OFx1MDQzNSBcdTA0NDFcdTA0MzBcdTA0OTNcdTA0MzBcdTA0NDJdIExUIixsYXN0V2VlazoiW1x1MDRlOFx1MDQ0Mlx1MDQzYVx1MDQzNVx1MDQzZCBcdTA0MzBcdTA0M2ZcdTA0NDJcdTA0MzBcdTA0M2RcdTA0NGJcdTA0YTNdIGRkZGQgW1x1'@; put 'MDQ0MVx1MDQzMFx1MDQ5M1x1MDQzMFx1MDQ0Ml0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIFx1MDQ1Nlx1MDQ0OFx1MDQ1Nlx1MDQzZFx1MDQzNFx1MDQzNSIscGFzdDoiJXMgXHUwNDMxXHUwNGIxXHUwNDQwXHUwNDRiXHUwNDNkIixzOiJcdTA0MzFcdTA0'@; put 'NTZcdTA0NDBcdTA0M2RcdTA0MzVcdTA0NDhcdTA0MzUgXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0IixzczoiJWQgXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0IixtOiJcdTA0MzFcdTA0NTZcdTA0NDAgXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUw'@; put 'NDQyIixtbToiJWQgXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDQyIixoOiJcdTA0MzFcdTA0NTZcdTA0NDAgXHUwNDQxXHUwNDMwXHUwNDkzXHUwNDMwXHUwNDQyIixoaDoiJWQgXHUwNDQxXHUwNDMwXHUwNDkzXHUwNDMwXHUwNDQyIixkOiJcdTA0MzFcdTA0NTZcdTA0NDAgXHUwNDNh'@; put 'XHUwNGFmXHUwNDNkIixkZDoiJWQgXHUwNDNhXHUwNGFmXHUwNDNkIixNOiJcdTA0MzFcdTA0NTZcdTA0NDAgXHUwNDMwXHUwNDM5IixNTToiJWQgXHUwNDMwXHUwNDM5Iix5OiJcdTA0MzFcdTA0NTZcdTA0NDAgXHUwNDM2XHUwNDRiXHUwNDNiIix5eToiJWQgXHUwNDM2XHUwNDRiXHUwNDNi'@; put 'In0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfS0oXHUwNDQ4XHUwNDU2fFx1MDQ0OFx1MDQ0YikvLG9yZGluYWw6ZnVuY3Rpb24oTil7cmV0dXJuIE4rKF9bTl18fF9bTiUxMF18fF9bTj49MTAwPzEwMDpudWxsXSl9LHdlZWs6e2RvdzoxLGRveTo3fX0pfShiKDk3NTg2KSl9LDY4'@; put 'ODA3OmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0Ijt2YXIgXz17MToiXHUxN2UxIiwyOiJcdTE3ZTIiLDM6Ilx1MTdlMyIsNDoiXHUxN2U0Iiw1OiJcdTE3ZTUiLDY6Ilx1MTdlNiIsNzoiXHUxN2U3Iiw4OiJcdTE3ZTgiLDk6Ilx1MTdlOSIsMDoiXHUxN2UwIn0s'@; put 'cD17Ilx1MTdlMSI6IjEiLCJcdTE3ZTIiOiIyIiwiXHUxN2UzIjoiMyIsIlx1MTdlNCI6IjQiLCJcdTE3ZTUiOiI1IiwiXHUxN2U2IjoiNiIsIlx1MTdlNyI6IjciLCJcdTE3ZTgiOiI4IiwiXHUxN2U5IjoiOSIsIlx1MTdlMCI6IjAifTtELmRlZmluZUxvY2FsZSgia20iLHttb250aHM6Ilx1'@; put 'MTc5OFx1MTc4MFx1MTc5YVx1MTdiNl9cdTE3ODBcdTE3YmJcdTE3OThcdTE3ZDJcdTE3OTdcdTE3YzhfXHUxNzk4XHUxN2I4XHUxNzkzXHUxN2I2X1x1MTc5OFx1MTdjMVx1MTc5Zlx1MTdiNl9cdTE3YTdcdTE3OWZcdTE3OTdcdTE3YjZfXHUxNzk4XHUxN2I3XHUxNzkwXHUxN2JiXHUxNzkz'@; put 'XHUxN2I2X1x1MTc4MFx1MTc4MFx1MTdkMlx1MTc4MFx1MTc4YVx1MTdiNl9cdTE3OWZcdTE3YjhcdTE3YTBcdTE3YjZfXHUxNzgwXHUxNzg5XHUxN2QyXHUxNzg5XHUxN2I2X1x1MTc4Zlx1MTdiYlx1MTc5Ylx1MTdiNl9cdTE3OWNcdTE3YjdcdTE3ODVcdTE3ZDJcdTE3ODZcdTE3YjdcdTE3'@; put 'ODBcdTE3YjZfXHUxNzkyXHUxN2QyXHUxNzkzXHUxN2JjIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTE3OThcdTE3ODBcdTE3OWFcdTE3YjZfXHUxNzgwXHUxN2JiXHUxNzk4XHUxN2QyXHUxNzk3XHUxN2M4X1x1MTc5OFx1MTdiOFx1MTc5M1x1MTdiNl9cdTE3OThcdTE3YzFcdTE3OWZc'@; put 'dTE3YjZfXHUxN2E3XHUxNzlmXHUxNzk3XHUxN2I2X1x1MTc5OFx1MTdiN1x1MTc5MFx1MTdiYlx1MTc5M1x1MTdiNl9cdTE3ODBcdTE3ODBcdTE3ZDJcdTE3ODBcdTE3OGFcdTE3YjZfXHUxNzlmXHUxN2I4XHUxN2EwXHUxN2I2X1x1MTc4MFx1MTc4OVx1MTdkMlx1MTc4OVx1MTdiNl9cdTE3'@; put 'OGZcdTE3YmJcdTE3OWJcdTE3YjZfXHUxNzljXHUxN2I3XHUxNzg1XHUxN2QyXHUxNzg2XHUxN2I3XHUxNzgwXHUxN2I2X1x1MTc5Mlx1MTdkMlx1MTc5M1x1MTdiYyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUxN2EyXHUxN2I2XHUxNzkxXHUxN2I3XHUxNzhmXHUxN2QyXHUxNzk5X1x1MTc4'@; put 'NVx1MTdkMFx1MTc5M1x1MTdkMlx1MTc5MV9cdTE3YTJcdTE3ODRcdTE3ZDJcdTE3ODJcdTE3YjZcdTE3OWFfXHUxNzk2XHUxN2JiXHUxNzkyX1x1MTc5Nlx1MTdkMlx1MTc5YVx1MTdhMFx1MTc5Zlx1MTdkMlx1MTc5NFx1MTc4Zlx1MTdiN1x1MTdjZF9cdTE3OWZcdTE3YmJcdTE3ODBcdTE3'@; put 'ZDJcdTE3OWFfXHUxNzlmXHUxN2M1XHUxNzlhXHUxN2NkIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MTdhMlx1MTdiNl9cdTE3ODVfXHUxN2EyX1x1MTc5Nl9cdTE3OTZcdTE3ZDJcdTE3OWFfXHUxNzlmXHUxN2JiX1x1MTc5ZiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUxN2Ey'@; put 'XHUxN2I2X1x1MTc4NV9cdTE3YTJfXHUxNzk2X1x1MTc5Nlx1MTdkMlx1MTc5YV9cdTE3OWZcdTE3YmJfXHUxNzlmIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBN'@; put 'TU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sbWVyaWRpZW1QYXJzZTovXHUxNzk2XHUxN2QyXHUxNzlhXHUxN2I5XHUxNzgwfFx1MTc5Ylx1MTdkMlx1MTc4NFx1MTdiNlx1MTc4NS8saXNQTTpmdW5jdGlvbih3KXtyZXR1'@; put 'cm4iXHUxNzliXHUxN2QyXHUxNzg0XHUxN2I2XHUxNzg1Ij09PXd9LG1lcmlkaWVtOmZ1bmN0aW9uKHcsRixIKXtyZXR1cm4gdzwxMj8iXHUxNzk2XHUxN2QyXHUxNzlhXHUxN2I5XHUxNzgwIjoiXHUxNzliXHUxN2QyXHUxNzg0XHUxN2I2XHUxNzg1In0sY2FsZW5kYXI6e3NhbWVEYXk6Iltc'@; put 'dTE3OTBcdTE3ZDJcdTE3ODRcdTE3YzNcdTE3OTNcdTE3YzFcdTE3YzcgXHUxNzk4XHUxN2M5XHUxN2M0XHUxNzg0XSBMVCIsbmV4dERheToiW1x1MTc5Zlx1MTdkMlx1MTdhMlx1MTdjMlx1MTc4MCBcdTE3OThcdTE3YzlcdTE3YzRcdTE3ODRdIExUIixuZXh0V2VlazoiZGRkZCBbXHUxNzk4'@; put 'XHUxN2M5XHUxN2M0XHUxNzg0XSBMVCIsbGFzdERheToiW1x1MTc5OFx1MTdkMlx1MTc5Zlx1MTdiN1x1MTc5Ylx1MTc5OFx1MTdiN1x1MTc4OSBcdTE3OThcdTE3YzlcdTE3YzRcdTE3ODRdIExUIixsYXN0V2VlazoiZGRkZCBbXHUxNzlmXHUxNzk0XHUxN2QyXHUxNzhmXHUxN2I2XHUxN2Ew'@; put 'XHUxN2NkXHUxNzk4XHUxN2JiXHUxNzkzXSBbXHUxNzk4XHUxN2M5XHUxN2M0XHUxNzg0XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXNcdTE3OTFcdTE3YzBcdTE3OGYiLHBhc3Q6IiVzXHUxNzk4XHUxN2JiXHUxNzkzIixzOiJcdTE3OTRcdTE3YzlcdTE3YmJc'@; put 'dTE3OTNcdTE3ZDJcdTE3OThcdTE3YjZcdTE3OTNcdTE3OWNcdTE3YjdcdTE3OTNcdTE3YjZcdTE3OTFcdTE3YjgiLHNzOiIlZCBcdTE3OWNcdTE3YjdcdTE3OTNcdTE3YjZcdTE3OTFcdTE3YjgiLG06Ilx1MTc5OFx1MTdiZFx1MTc5OVx1MTc5M1x1MTdiNlx1MTc5MVx1MTdiOCIsbW06IiVk'@; put 'IFx1MTc5M1x1MTdiNlx1MTc5MVx1MTdiOCIsaDoiXHUxNzk4XHUxN2JkXHUxNzk5XHUxNzk4XHUxN2M5XHUxN2M0XHUxNzg0IixoaDoiJWQgXHUxNzk4XHUxN2M5XHUxN2M0XHUxNzg0IixkOiJcdTE3OThcdTE3YmRcdTE3OTlcdTE3OTBcdTE3ZDJcdTE3ODRcdTE3YzMiLGRkOiIlZCBcdTE3'@; put 'OTBcdTE3ZDJcdTE3ODRcdTE3YzMiLE06Ilx1MTc5OFx1MTdiZFx1MTc5OVx1MTc4MVx1MTdjMiIsTU06IiVkIFx1MTc4MVx1MTdjMiIseToiXHUxNzk4XHUxN2JkXHUxNzk5XHUxNzg2XHUxN2QyXHUxNzkzXHUxN2I2XHUxN2M2Iix5eToiJWQgXHUxNzg2XHUxN2QyXHUxNzkzXHUxN2I2XHUx'@; put 'N2M2In0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXHUxNzkxXHUxN2I4XGR7MSwyfS8sb3JkaW5hbDoiXHUxNzkxXHUxN2I4JWQiLHByZXBhcnNlOmZ1bmN0aW9uKHcpe3JldHVybiB3LnJlcGxhY2UoL1tcdTE3ZTFcdTE3ZTJcdTE3ZTNcdTE3ZTRcdTE3ZTVcdTE3ZTZcdTE3ZTdcdTE3ZThc'@; put 'dTE3ZTlcdTE3ZTBdL2csZnVuY3Rpb24oRil7cmV0dXJuIHBbRl19KX0scG9zdGZvcm1hdDpmdW5jdGlvbih3KXtyZXR1cm4gdy5yZXBsYWNlKC9cZC9nLGZ1bmN0aW9uKEYpe3JldHVybiBfW0ZdfSl9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShiKDk3NTg2KSl9LDY1MDgyOmZ1bmN0aW9uKGNl'@; put 'LEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0Ijt2YXIgXz17MToiXHUwY2U3IiwyOiJcdTBjZTgiLDM6Ilx1MGNlOSIsNDoiXHUwY2VhIiw1OiJcdTBjZWIiLDY6Ilx1MGNlYyIsNzoiXHUwY2VkIiw4OiJcdTBjZWUiLDk6Ilx1MGNlZiIsMDoiXHUwY2U2In0scD17Ilx1MGNlNyI6IjEi'@; put 'LCJcdTBjZTgiOiIyIiwiXHUwY2U5IjoiMyIsIlx1MGNlYSI6IjQiLCJcdTBjZWIiOiI1IiwiXHUwY2VjIjoiNiIsIlx1MGNlZCI6IjciLCJcdTBjZWUiOiI4IiwiXHUwY2VmIjoiOSIsIlx1MGNlNiI6IjAifTtELmRlZmluZUxvY2FsZSgia24iLHttb250aHM6Ilx1MGM5Y1x1MGNhOFx1MGNi'@; put 'NVx1MGNiMFx1MGNiZl9cdTBjYWJcdTBjYzZcdTBjYWNcdTBjY2RcdTBjYjBcdTBjYjVcdTBjYjBcdTBjYmZfXHUwY2FlXHUwY2JlXHUwY2IwXHUwY2NkXHUwYzlhXHUwY2NkX1x1MGM4Zlx1MGNhYVx1MGNjZFx1MGNiMFx1MGNiZlx1MGNiMlx1MGNjZF9cdTBjYWVcdTBjYzZcdTBjZDVfXHUw'@; put 'YzljXHUwY2MyXHUwY2E4XHUwY2NkX1x1MGM5Y1x1MGNjMVx1MGNiMlx1MGNjNlx1MGNkNl9cdTBjODZcdTBjOTdcdTBjYjhcdTBjY2RcdTBjOWZcdTBjY2RfXHUwY2I4XHUwY2M2XHUwY2FhXHUwY2NkXHUwYzlmXHUwY2M2XHUwYzgyXHUwY2FjXHUwY2IwXHUwY2NkX1x1MGM4NVx1MGM5NVx1'@; put 'MGNjZFx1MGM5Zlx1MGNjNlx1MGNjMlx1MGNkNVx1MGNhY1x1MGNiMFx1MGNjZF9cdTBjYThcdTBjYjVcdTBjYzZcdTBjODJcdTBjYWNcdTBjYjBcdTBjY2RfXHUwY2ExXHUwY2JmXHUwY2I4XHUwY2M2XHUwYzgyXHUwY2FjXHUwY2IwXHUwY2NkIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJc'@; put 'dTBjOWNcdTBjYThfXHUwY2FiXHUwY2M2XHUwY2FjXHUwY2NkXHUwY2IwX1x1MGNhZVx1MGNiZVx1MGNiMFx1MGNjZFx1MGM5YVx1MGNjZF9cdTBjOGZcdTBjYWFcdTBjY2RcdTBjYjBcdTBjYmZcdTBjYjJcdTBjY2RfXHUwY2FlXHUwY2M2XHUwY2Q1X1x1MGM5Y1x1MGNjMlx1MGNhOFx1MGNj'@; put 'ZF9cdTBjOWNcdTBjYzFcdTBjYjJcdTBjYzZcdTBjZDZfXHUwYzg2XHUwYzk3XHUwY2I4XHUwY2NkXHUwYzlmXHUwY2NkX1x1MGNiOFx1MGNjNlx1MGNhYVx1MGNjZFx1MGM5Zlx1MGNjNlx1MGM4Ml9cdTBjODVcdTBjOTVcdTBjY2RcdTBjOWZcdTBjYzZcdTBjYzJcdTBjZDVfXHUwY2E4XHUw'@; put 'Y2I1XHUwY2M2XHUwYzgyX1x1MGNhMVx1MGNiZlx1MGNiOFx1MGNjNlx1MGM4MiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJcdTBjYWRcdTBjYmVcdTBjYThcdTBjYzFcdTBjYjVcdTBjYmVcdTBjYjBfXHUwY2I4XHUwY2M2XHUwY2MyXHUwY2Q1XHUwY2FlXHUw'@; put 'Y2I1XHUwY2JlXHUwY2IwX1x1MGNhZVx1MGM4Mlx1MGM5N1x1MGNiM1x1MGNiNVx1MGNiZVx1MGNiMF9cdTBjYWNcdTBjYzFcdTBjYTdcdTBjYjVcdTBjYmVcdTBjYjBfXHUwYzk3XHUwY2MxXHUwY2IwXHUwY2MxXHUwY2I1XHUwY2JlXHUwY2IwX1x1MGNiNlx1MGNjMVx1MGM5NVx1MGNjZFx1'@; put 'MGNiMFx1MGNiNVx1MGNiZVx1MGNiMF9cdTBjYjZcdTBjYThcdTBjYmZcdTBjYjVcdTBjYmVcdTBjYjAiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwY2FkXHUwY2JlXHUwY2E4XHUwY2MxX1x1MGNiOFx1MGNjNlx1MGNjMlx1MGNkNVx1MGNhZV9cdTBjYWVcdTBjODJcdTBjOTdcdTBj'@; put 'YjNfXHUwY2FjXHUwY2MxXHUwY2E3X1x1MGM5N1x1MGNjMVx1MGNiMFx1MGNjMV9cdTBjYjZcdTBjYzFcdTBjOTVcdTBjY2RcdTBjYjBfXHUwY2I2XHUwY2E4XHUwY2JmIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTBjYWRcdTBjYmVfXHUwY2I4XHUwY2M2XHUwY2MyXHUwY2Q1X1x1MGNh'@; put 'ZVx1MGM4Ml9cdTBjYWNcdTBjYzFfXHUwYzk3XHUwY2MxX1x1MGNiNlx1MGNjMV9cdTBjYjYiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJBIGg6bW0iLExUUzoiQSBoOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVksIEEgaDpt'@; put 'bSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVksIEEgaDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwYzg3XHUwYzgyXHUwY2E2XHUwY2MxXSBMVCIsbmV4dERheToiW1x1MGNhOFx1MGNiZVx1MGNiM1x1MGNjNl0gTFQiLG5leHRXZWVrOiJkZGRkLCBMVCIsbGFzdERheToiW1x1MGNhOFx1'@; put 'MGNiZlx1MGNhOFx1MGNjZFx1MGNhOFx1MGNjNl0gTFQiLGxhc3RXZWVrOiJbXHUwYzk1XHUwY2M2XHUwY2MyXHUwY2E4XHUwY2M2XHUwY2FmXSBkZGRkLCBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwY2E4XHUwYzgyXHUwY2E0XHUwY2IwIixwYXN0OiIl'@; put 'cyBcdTBjYjlcdTBjYmZcdTBjODJcdTBjYTZcdTBjYzYiLHM6Ilx1MGM5NVx1MGNjNlx1MGNiMlx1MGNiNVx1MGNjMSBcdTBjOTVcdTBjY2RcdTBjYjdcdTBjYTNcdTBjOTdcdTBjYjNcdTBjYzEiLHNzOiIlZCBcdTBjYjhcdTBjYzZcdTBjOTVcdTBjYzZcdTBjODJcdTBjYTFcdTBjYzFcdTBj'@; put 'OTdcdTBjYjNcdTBjYzEiLG06Ilx1MGM5Mlx1MGM4Mlx1MGNhNlx1MGNjMSBcdTBjYThcdTBjYmZcdTBjYWVcdTBjYmZcdTBjYjciLG1tOiIlZCBcdTBjYThcdTBjYmZcdTBjYWVcdTBjYmZcdTBjYjciLGg6Ilx1MGM5Mlx1MGM4Mlx1MGNhNlx1MGNjMSBcdTBjOTdcdTBjODJcdTBjOWZcdTBj'@; put 'YzYiLGhoOiIlZCBcdTBjOTdcdTBjODJcdTBjOWZcdTBjYzYiLGQ6Ilx1MGM5Mlx1MGM4Mlx1MGNhNlx1MGNjMSBcdTBjYTZcdTBjYmZcdTBjYTgiLGRkOiIlZCBcdTBjYTZcdTBjYmZcdTBjYTgiLE06Ilx1MGM5Mlx1MGM4Mlx1MGNhNlx1MGNjMSBcdTBjYTRcdTBjYmZcdTBjODJcdTBjOTdc'@; put 'dTBjYjNcdTBjYzEiLE1NOiIlZCBcdTBjYTRcdTBjYmZcdTBjODJcdTBjOTdcdTBjYjNcdTBjYzEiLHk6Ilx1MGM5Mlx1MGM4Mlx1MGNhNlx1MGNjMSBcdTBjYjVcdTBjYjBcdTBjY2RcdTBjYjciLHl5OiIlZCBcdTBjYjVcdTBjYjBcdTBjY2RcdTBjYjcifSxwcmVwYXJzZTpmdW5jdGlvbih3'@; put 'KXtyZXR1cm4gdy5yZXBsYWNlKC9bXHUwY2U3XHUwY2U4XHUwY2U5XHUwY2VhXHUwY2ViXHUwY2VjXHUwY2VkXHUwY2VlXHUwY2VmXHUwY2U2XS9nLGZ1bmN0aW9uKEYpe3JldHVybiBwW0ZdfSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24odyl7cmV0dXJuIHcucmVwbGFjZSgvXGQvZyxmdW5jdGlv'@; put 'bihGKXtyZXR1cm4gX1tGXX0pfSxtZXJpZGllbVBhcnNlOi9cdTBjYjBcdTBjYmVcdTBjYTRcdTBjY2RcdTBjYjBcdTBjYmZ8XHUwY2FjXHUwY2M2XHUwY2IzXHUwY2JmXHUwYzk3XHUwY2NkXHUwYzk3XHUwY2M2fFx1MGNhZVx1MGNhN1x1MGNjZFx1MGNhZlx1MGNiZVx1MGNiOVx1MGNjZFx1'@; put 'MGNhOHxcdTBjYjhcdTBjODJcdTBjOWNcdTBjYzYvLG1lcmlkaWVtSG91cjpmdW5jdGlvbih3LEYpe3JldHVybiAxMj09PXcmJih3PTApLCJcdTBjYjBcdTBjYmVcdTBjYTRcdTBjY2RcdTBjYjBcdTBjYmYiPT09Rj93PDQ/dzp3KzEyOiJcdTBjYWNcdTBjYzZcdTBjYjNcdTBjYmZcdTBjOTdc'@; put 'dTBjY2RcdTBjOTdcdTBjYzYiPT09Rj93OiJcdTBjYWVcdTBjYTdcdTBjY2RcdTBjYWZcdTBjYmVcdTBjYjlcdTBjY2RcdTBjYTgiPT09Rj93Pj0xMD93OncrMTI6Ilx1MGNiOFx1MGM4Mlx1MGM5Y1x1MGNjNiI9PT1GP3crMTI6dm9pZCAwfSxtZXJpZGllbTpmdW5jdGlvbih3LEYsSCl7cmV0'@; put 'dXJuIHc8ND8iXHUwY2IwXHUwY2JlXHUwY2E0XHUwY2NkXHUwY2IwXHUwY2JmIjp3PDEwPyJcdTBjYWNcdTBjYzZcdTBjYjNcdTBjYmZcdTBjOTdcdTBjY2RcdTBjOTdcdTBjYzYiOnc8MTc/Ilx1MGNhZVx1MGNhN1x1MGNjZFx1MGNhZlx1MGNiZVx1MGNiOVx1MGNjZFx1MGNhOCI6dzwyMD8i'@; put 'XHUwY2I4XHUwYzgyXHUwYzljXHUwY2M2IjoiXHUwY2IwXHUwY2JlXHUwY2E0XHUwY2NkXHUwY2IwXHUwY2JmIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShcdTBjYThcdTBjYzZcdTBjZDUpLyxvcmRpbmFsOmZ1bmN0aW9uKHcpe3JldHVybiB3KyJcdTBjYThcdTBjYzZcdTBj'@; put 'ZDUifSx3ZWVrOntkb3c6MCxkb3k6Nn19KX0oYig5NzU4NikpfSwyMDEzNzpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7RC5kZWZpbmVMb2NhbGUoImtvIix7bW9udGhzOiIxXHVjNmQ0XzJcdWM2ZDRfM1x1YzZkNF80XHVjNmQ0XzVcdWM2ZDRfNlx1YzZkNF83'@; put 'XHVjNmQ0XzhcdWM2ZDRfOVx1YzZkNF8xMFx1YzZkNF8xMVx1YzZkNF8xMlx1YzZkNCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiMVx1YzZkNF8yXHVjNmQ0XzNcdWM2ZDRfNFx1YzZkNF81XHVjNmQ0XzZcdWM2ZDRfN1x1YzZkNF84XHVjNmQ0XzlcdWM2ZDRfMTBcdWM2ZDRfMTFcdWM2ZDRf'@; put 'MTJcdWM2ZDQiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1Yzc3Y1x1YzY5NFx1Yzc3Y19cdWM2ZDRcdWM2OTRcdWM3N2NfXHVkNjU0XHVjNjk0XHVjNzdjX1x1YzIxOFx1YzY5NFx1Yzc3Y19cdWJhYTlcdWM2OTRcdWM3N2NfXHVhZTA4XHVjNjk0XHVjNzdjX1x1ZDFhMFx1YzY5NFx1Yzc3YyIu'@; put 'c3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdWM3N2NfXHVjNmQ0X1x1ZDY1NF9cdWMyMThfXHViYWE5X1x1YWUwOF9cdWQxYTAiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1Yzc3Y19cdWM2ZDRfXHVkNjU0X1x1YzIxOF9cdWJhYTlfXHVhZTA4X1x1ZDFhMCIuc3BsaXQoIl8iKSxsb25n'@; put 'RGF0ZUZvcm1hdDp7TFQ6IkEgaDptbSIsTFRTOiJBIGg6bW06c3MiLEw6IllZWVkuTU0uREQuIixMTDoiWVlZWVx1YjE0NCBNTU1NIERcdWM3N2MiLExMTDoiWVlZWVx1YjE0NCBNTU1NIERcdWM3N2MgQSBoOm1tIixMTExMOiJZWVlZXHViMTQ0IE1NTU0gRFx1Yzc3YyBkZGRkIEEgaDptbSIs'@; put 'bDoiWVlZWS5NTS5ERC4iLGxsOiJZWVlZXHViMTQ0IE1NTU0gRFx1Yzc3YyIsbGxsOiJZWVlZXHViMTQ0IE1NTU0gRFx1Yzc3YyBBIGg6bW0iLGxsbGw6IllZWVlcdWIxNDQgTU1NTSBEXHVjNzdjIGRkZGQgQSBoOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6Ilx1YzYyNFx1YjI5OCBMVCIsbmV4'@; put 'dERheToiXHViMGI0XHVjNzdjIExUIixuZXh0V2VlazoiZGRkZCBMVCIsbGFzdERheToiXHVjNWI0XHVjODFjIExUIixsYXN0V2VlazoiXHVjOWMwXHViMDljXHVjOGZjIGRkZGQgTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIFx1ZDZjNCIscGFzdDoiJXMgXHVj'@; put 'ODA0IixzOiJcdWJhODcgXHVjZDA4IixzczoiJWRcdWNkMDgiLG06IjFcdWJkODQiLG1tOiIlZFx1YmQ4NCIsaDoiXHVkNTVjIFx1YzJkY1x1YWMwNCIsaGg6IiVkXHVjMmRjXHVhYzA0IixkOiJcdWQ1NThcdWI4ZTgiLGRkOiIlZFx1Yzc3YyIsTToiXHVkNTVjIFx1YjJlYyIsTU06IiVkXHVi'@; put 'MmVjIix5OiJcdWM3N2MgXHViMTQ0Iix5eToiJWRcdWIxNDQifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KFx1Yzc3Y3xcdWM2ZDR8XHVjOGZjKS8sb3JkaW5hbDpmdW5jdGlvbihwLE4pe3N3aXRjaChOKXtjYXNlImQiOmNhc2UiRCI6Y2FzZSJEREQiOnJldHVybiBwKyJcdWM3'@; put 'N2MiO2Nhc2UiTSI6cmV0dXJuIHArIlx1YzZkNCI7Y2FzZSJ3IjpjYXNlIlciOnJldHVybiBwKyJcdWM4ZmMiO2RlZmF1bHQ6cmV0dXJuIHB9fSxtZXJpZGllbVBhcnNlOi9cdWM2MjRcdWM4MDR8XHVjNjI0XHVkNmM0Lyxpc1BNOmZ1bmN0aW9uKHApe3JldHVybiJcdWM2MjRcdWQ2YzQiPT09'@; put 'cH0sbWVyaWRpZW06ZnVuY3Rpb24ocCxOLHcpe3JldHVybiBwPDEyPyJcdWM2MjRcdWM4MDQiOiJcdWM2MjRcdWQ2YzQifX0pfShiKDk3NTg2KSl9LDYzNzQ0OmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBfKHcsRixILFIpe3ZhciBqPXtzOlsi'@; put 'XHhlN2VuZCBzYW5ceGVleWUiLCJceGU3ZW5kIHNhblx4ZWV5ZXlhbiJdLHNzOlt3KyIgc2FuXHhlZXllIix3KyIgc2FuXHhlZXlleWFuIl0sbTpbImRlcVx4ZWVxZXllayIsImRlcVx4ZWVxZXlla1x4ZWEiXSxtbTpbdysiIGRlcVx4ZWVxZSIsdysiIGRlcVx4ZWVxZXlhbiJdLGg6WyJzYWV0'@; put 'ZWsiLCJzYWV0ZWtceGVhIl0saGg6W3crIiBzYWV0Iix3KyIgc2FldGFuIl0sZDpbInJvamVrIiwicm9qZWtceGVhIl0sZGQ6W3crIiByb2oiLHcrIiByb2phbiJdLHc6WyJoZWZ0ZXllayIsImhlZnRleWVrXHhlYSJdLHd3Olt3KyIgaGVmdGUiLHcrIiBoZWZ0ZXlhbiJdLE06WyJtZWhlayIs'@; put 'Im1laGVrXHhlYSJdLE1NOlt3KyIgbWVoIix3KyIgbWVoYW4iXSx5Olsic2FsZWsiLCJzYWxla1x4ZWEiXSx5eTpbdysiIHNhbCIsdysiIHNhbGFuIl19O3JldHVybiBGP2pbSF1bMF06altIXVsxXX1ELmRlZmluZUxvY2FsZSgia3Uta21yIix7bW9udGhzOiJSXHhlYWJlbmRhbl9TaWJhdF9B'@; put 'ZGFyX05ceGVlc2FuX0d1bGFuX0hlelx4ZWVyYW5fVFx4ZWVybWVoX1RlYmF4X1x4Y2Vsb25fQ290bWVoX01pamRhcl9CZXJmYW5iYXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6IlJceGVhYl9TaWJfQWRhX05ceGVlc19HdWxfSGV6X1RceGVlcl9UZWJfXHhjZWxvX0NvdF9NaWpfQmVyIi5z'@; put 'cGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Illla1x1MDE1ZmVtX0R1XHUwMTVmZW1fU1x4ZWFcdTAxNWZlbV9ceGM3YXJcdTAxNWZlbV9QXHhlYW5jXHUwMTVmZW1fXHhjZW5fXHUwMTVlZW1ceGVlIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Illla19EdV9TXHhl'@; put 'YV9ceGM3YXJfUFx4ZWFuX1x4Y2VuX1x1MDE1ZWVtIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJZZV9EdV9TXHhlYV9ceGM3YV9QXHhlYV9ceGNlbl9cdTAxNWVlIi5zcGxpdCgiXyIpLG1lcmlkaWVtOmZ1bmN0aW9uKHcsRixIKXtyZXR1cm4gdzwxMj9IPyJibiI6IkJOIjpIPyJwbiI6IlBO'@; put 'In0sbWVyaWRpZW1QYXJzZTovYm58Qk58cG58UE4vLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJEbyBNTU1NW2FdIFlZWVlbYW5dIixMTEw6IkRvIE1NTU1bYV0gWVlZWVthbl0gSEg6bW0iLExMTEw6ImRkZGQsIERvIE1NTU1b'@; put 'YV0gWVlZWVthbl0gSEg6bW0iLGxsOiJEbyBNTU1bLl0gWVlZWVthbl0iLGxsbDoiRG8gTU1NWy5dIFlZWVlbYW5dIEhIOm1tIixsbGxsOiJkZGRbLl0sIERvIE1NTVsuXSBZWVlZW2FuXSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHhjZXJvIGRpIHNhZXRdIExUIFtkZV0iLG5leHRE'@; put 'YXk6IltTaWJceGVhIGRpIHNhZXRdIExUIFtkZV0iLG5leHRXZWVrOiJkZGRkIFtkaSBzYWV0XSBMVCBbZGVdIixsYXN0RGF5OiJbRHVoIGRpIHNhZXRdIExUIFtkZV0iLGxhc3RXZWVrOiJkZGRkW2EgYm9yXHhlZSBkaSBzYWV0XSBMVCBbZGVdIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGlt'@; put 'ZTp7ZnV0dXJlOiJkaSAlcyBkZSIscGFzdDoiYmVyXHhlZSAlcyIsczpfLHNzOl8sbTpfLG1tOl8saDpfLGhoOl8sZDpfLGRkOl8sdzpfLHd3Ol8sTTpfLE1NOl8seTpfLHl5Ol99LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oPzp5XHhlYXxceGVhfFwuKS8sb3JkaW5hbDpmdW5j'@; put 'dGlvbih3LEYpe3ZhciBIPUYudG9Mb3dlckNhc2UoKTtyZXR1cm4gSC5pbmNsdWRlcygidyIpfHxILmluY2x1ZGVzKCJtIik/dysiLiI6dytmdW5jdGlvbiBwKHcpe3ZhciBGPSh3PSIiK3cpLnN1YnN0cmluZyh3Lmxlbmd0aC0xKSxIPXcubGVuZ3RoPjE/dy5zdWJzdHJpbmcody5sZW5ndGgt'@; put 'Mik6IiI7cmV0dXJuIDEyPT1IfHwxMz09SHx8IjIiIT1GJiYiMyIhPUYmJiI1MCIhPUgmJiI3MCIhPUYmJiI4MCIhPUY/Ilx4ZWEiOiJ5XHhlYSJ9KHcpfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oYig5NzU4NikpfSw3MDExMTpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0'@; put 'cmljdCI7dmFyIF89ezE6Ilx1MDY2MSIsMjoiXHUwNjYyIiwzOiJcdTA2NjMiLDQ6Ilx1MDY2NCIsNToiXHUwNjY1Iiw2OiJcdTA2NjYiLDc6Ilx1MDY2NyIsODoiXHUwNjY4Iiw5OiJcdTA2NjkiLDA6Ilx1MDY2MCJ9LHA9eyJcdTA2NjEiOiIxIiwiXHUwNjYyIjoiMiIsIlx1MDY2MyI6IjMi'@; put 'LCJcdTA2NjQiOiI0IiwiXHUwNjY1IjoiNSIsIlx1MDY2NiI6IjYiLCJcdTA2NjciOiI3IiwiXHUwNjY4IjoiOCIsIlx1MDY2OSI6IjkiLCJcdTA2NjAiOiIwIn0sTj1bIlx1MDZhOVx1MDYyN1x1MDY0Nlx1MDY0OFx1MDY0Nlx1MDZjYyBcdTA2MmZcdTA2NDhcdTA2NDhcdTA2ZDVcdTA2NDUi'@; put 'LCJcdTA2MzRcdTA2NDhcdTA2MjhcdTA2MjdcdTA2MmEiLCJcdTA2MjZcdTA2MjdcdTA2MzJcdTA2MjdcdTA2MzEiLCJcdTA2NDZcdTA2Y2NcdTA2MzNcdTA2MjdcdTA2NDYiLCJcdTA2MjZcdTA2MjdcdTA2Y2NcdTA2MjdcdTA2MzEiLCJcdTA2MmRcdTA2NDhcdTA2MzJcdTA2ZDVcdTA2Y2Nc'@; put 'dTA2MzFcdTA2MjdcdTA2NDYiLCJcdTA2MmFcdTA2ZDVcdTA2NDVcdTA2NDVcdTA2NDhcdTA2MzIiLCJcdTA2MjZcdTA2MjdcdTA2MjgiLCJcdTA2MjZcdTA2ZDVcdTA2Y2NcdTA2NDRcdTA2NDhcdTA2NDhcdTA2NDQiLCJcdTA2MmFcdTA2MzRcdTA2MzFcdTA2Y2NcdTA2NDZcdTA2Y2MgXHUw'@; put 'NmNjXHUwNmQ1XHUwNjQzXHUwNmQ1XHUwNjQ1IiwiXHUwNjJhXHUwNjM0XHUwNjMxXHUwNmNjXHUwNjQ2XHUwNmNjIFx1MDYyZlx1MDY0OFx1MDY0OFx1MDZkNVx1MDY0NSIsIlx1MDY0M1x1MDYyN1x1MDY0Nlx1MDY0OFx1MDY0Nlx1MDZjYyBcdTA2Y2NcdTA2ZDVcdTA2YTlcdTA2ZDVcdTA2'@; put 'NDUiXTtELmRlZmluZUxvY2FsZSgia3UiLHttb250aHM6Tixtb250aHNTaG9ydDpOLHdlZWtkYXlzOiJcdTA2Y2NcdTA2NDdcdTIwMGNcdTA2NDNcdTA2MzRcdTA2NDdcdTIwMGNcdTA2NDVcdTA2NDVcdTA2NDdcdTIwMGNfXHUwNjJmXHUwNjQ4XHUwNjQ4XHUwNjM0XHUwNjQ3XHUyMDBjXHUw'@; put 'NjQ1XHUwNjQ1XHUwNjQ3XHUyMDBjX1x1MDYzM1x1MDZjZVx1MDYzNFx1MDY0N1x1MjAwY1x1MDY0NVx1MDY0NVx1MDY0N1x1MjAwY19cdTA2ODZcdTA2NDhcdTA2MjdcdTA2MzFcdTA2MzRcdTA2NDdcdTIwMGNcdTA2NDVcdTA2NDVcdTA2NDdcdTIwMGNfXHUwNjdlXHUwNmNlXHUwNjQ2XHUw'@; put 'NjJjXHUwNjM0XHUwNjQ3XHUyMDBjXHUwNjQ1XHUwNjQ1XHUwNjQ3XHUyMDBjX1x1MDY0N1x1MDY0N1x1MjAwY1x1MDZjY1x1MDY0Nlx1MDZjY19cdTA2MzRcdTA2NDdcdTIwMGNcdTA2NDVcdTA2NDVcdTA2NDdcdTIwMGMiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNmNjXHUwNjQ3'@; put 'XHUyMDBjXHUwNjQzXHUwNjM0XHUwNjQ3XHUyMDBjXHUwNjQ1X1x1MDYyZlx1MDY0OFx1MDY0OFx1MDYzNFx1MDY0N1x1MjAwY1x1MDY0NV9cdTA2MzNcdTA2Y2VcdTA2MzRcdTA2NDdcdTIwMGNcdTA2NDVfXHUwNjg2XHUwNjQ4XHUwNjI3XHUwNjMxXHUwNjM0XHUwNjQ3XHUyMDBjXHUwNjQ1'@; put 'X1x1MDY3ZVx1MDZjZVx1MDY0Nlx1MDYyY1x1MDYzNFx1MDY0N1x1MjAwY1x1MDY0NV9cdTA2NDdcdTA2NDdcdTIwMGNcdTA2Y2NcdTA2NDZcdTA2Y2NfXHUwNjM0XHUwNjQ3XHUyMDBjXHUwNjQ1XHUwNjQ1XHUwNjQ3XHUyMDBjIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA2Y2NfXHUw'@; put 'NjJmX1x1MDYzM19cdTA2ODZfXHUwNjdlX1x1MDY0N19cdTA2MzQiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBI'@; put 'SDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTA2MjZcdTA2Y2VcdTA2NDhcdTA2MjdcdTA2MzFcdTA2NDdcdTIwMGN8XHUwNjI4XHUwNjQ3XHUyMDBjXHUwNmNjXHUwNjI3XHUwNjQ2XHUwNmNjLyxpc1BNOmZ1bmN0aW9uKEYpe3JldHVybi9c'@; put 'dTA2MjZcdTA2Y2VcdTA2NDhcdTA2MjdcdTA2MzFcdTA2NDdcdTIwMGMvLnRlc3QoRil9LG1lcmlkaWVtOmZ1bmN0aW9uKEYsSCxSKXtyZXR1cm4gRjwxMj8iXHUwNjI4XHUwNjQ3XHUyMDBjXHUwNmNjXHUwNjI3XHUwNjQ2XHUwNmNjIjoiXHUwNjI2XHUwNmNlXHUwNjQ4XHUwNjI3XHUwNjMx'@; put 'XHUwNjQ3XHUyMDBjIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA2MjZcdTA2NDdcdTIwMGNcdTA2NDVcdTA2MzFcdTA2YzYgXHUwNjQzXHUwNjI3XHUwNjJhXHUwNjk4XHUwNjQ1XHUwNmNlXHUwNjMxXSBMVCIsbmV4dERheToiW1x1MDYyOFx1MDY0N1x1MjAwY1x1MDZjY1x1MDYyN1x1MDY0'@; put 'Nlx1MDZjYyBcdTA2NDNcdTA2MjdcdTA2MmFcdTA2OThcdTA2NDVcdTA2Y2VcdTA2MzFdIExUIixuZXh0V2VlazoiZGRkZCBbXHUwNjQzXHUwNjI3XHUwNjJhXHUwNjk4XHUwNjQ1XHUwNmNlXHUwNjMxXSBMVCIsbGFzdERheToiW1x1MDYyZlx1MDY0OFx1MDZjZVx1MDY0Nlx1MDZjZSBcdTA2'@; put 'NDNcdTA2MjdcdTA2MmFcdTA2OThcdTA2NDVcdTA2Y2VcdTA2MzFdIExUIixsYXN0V2VlazoiZGRkZCBbXHUwNjQzXHUwNjI3XHUwNjJhXHUwNjk4XHUwNjQ1XHUwNmNlXHUwNjMxXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNjQ0XHUwNjQ3XHUyMDBjICVz'@; put 'IixwYXN0OiIlcyIsczoiXHUwNjg2XHUwNjQ3XHUyMDBjXHUwNjQ2XHUwNjJmIFx1MDY4Nlx1MDYzMVx1MDY0M1x1MDY0N1x1MjAwY1x1MDZjY1x1MDY0N1x1MjAwY1x1MDY0MyIsc3M6Ilx1MDY4Nlx1MDYzMVx1MDY0M1x1MDY0N1x1MjAwYyAlZCIsbToiXHUwNmNjXHUwNjQ3XHUyMDBjXHUw'@; put 'NjQzIFx1MDYyZVx1MDY0OFx1MDY0NFx1MDY0N1x1MjAwY1x1MDY0MyIsbW06IiVkIFx1MDYyZVx1MDY0OFx1MDY0NFx1MDY0N1x1MjAwY1x1MDY0MyIsaDoiXHUwNmNjXHUwNjQ3XHUyMDBjXHUwNjQzIFx1MDY0M1x1MDYyN1x1MDYyYVx1MDY5OFx1MDY0NVx1MDZjZVx1MDYzMSIsaGg6IiVk'@; put 'IFx1MDY0M1x1MDYyN1x1MDYyYVx1MDY5OFx1MDY0NVx1MDZjZVx1MDYzMSIsZDoiXHUwNmNjXHUwNjQ3XHUyMDBjXHUwNjQzIFx1MDY5NVx1MDZjNlx1MDY5OCIsZGQ6IiVkIFx1MDY5NVx1MDZjNlx1MDY5OCIsTToiXHUwNmNjXHUwNjQ3XHUyMDBjXHUwNjQzIFx1MDY0NVx1MDYyN1x1MDY0'@; put 'Nlx1MDZhZiIsTU06IiVkIFx1MDY0NVx1MDYyN1x1MDY0Nlx1MDZhZiIseToiXHUwNmNjXHUwNjQ3XHUyMDBjXHUwNjQzIFx1MDYzM1x1MDYyN1x1MDZiNSIseXk6IiVkIFx1MDYzM1x1MDYyN1x1MDZiNSJ9LHByZXBhcnNlOmZ1bmN0aW9uKEYpe3JldHVybiBGLnJlcGxhY2UoL1tcdTA2NjFc'@; put 'dTA2NjJcdTA2NjNcdTA2NjRcdTA2NjVcdTA2NjZcdTA2NjdcdTA2NjhcdTA2NjlcdTA2NjBdL2csZnVuY3Rpb24oSCl7cmV0dXJuIHBbSF19KS5yZXBsYWNlKC9cdTA2MGMvZywiLCIpfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKEYpe3JldHVybiBGLnJlcGxhY2UoL1xkL2csZnVuY3Rpb24oSCl7'@; put 'cmV0dXJuIF9bSF19KS5yZXBsYWNlKC8sL2csIlx1MDYwYyIpfSx3ZWVrOntkb3c6Nixkb3k6MTJ9fSl9KGIoOTc1ODYpKX0sOTkxODc6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO3ZhciBfPXswOiItXHUwNDQ3XHUwNGFmIiwxOiItXHUwNDQ3XHUwNDM4Iiwy'@; put 'OiItXHUwNDQ3XHUwNDM4IiwzOiItXHUwNDQ3XHUwNGFmIiw0OiItXHUwNDQ3XHUwNGFmIiw1OiItXHUwNDQ3XHUwNDM4Iiw2OiItXHUwNDQ3XHUwNDRiIiw3OiItXHUwNDQ3XHUwNDM4Iiw4OiItXHUwNDQ3XHUwNDM4Iiw5OiItXHUwNDQ3XHUwNDQzIiwxMDoiLVx1MDQ0N1x1MDQ0MyIsMjA6'@; put 'Ii1cdTA0NDdcdTA0NGIiLDMwOiItXHUwNDQ3XHUwNDQzIiw0MDoiLVx1MDQ0N1x1MDQ0YiIsNTA6Ii1cdTA0NDdcdTA0YWYiLDYwOiItXHUwNDQ3XHUwNDRiIiw3MDoiLVx1MDQ0N1x1MDQzOCIsODA6Ii1cdTA0NDdcdTA0MzgiLDkwOiItXHUwNDQ3XHUwNDQzIiwxMDA6Ii1cdTA0NDdcdTA0'@; put 'YWYifTtELmRlZmluZUxvY2FsZSgia3kiLHttb250aHM6Ilx1MDQ0Zlx1MDQzZFx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0Y19cdTA0NDRcdTA0MzVcdTA0MzJcdTA0NDBcdTA0MzBcdTA0M2JcdTA0NGNfXHUwNDNjXHUwNDMwXHUwNDQwXHUwNDQyX1x1MDQzMFx1MDQzZlx1MDQ0MFx1MDQzNVx1'@; put 'MDQzYlx1MDQ0Y19cdTA0M2NcdTA0MzBcdTA0MzlfXHUwNDM4XHUwNDRlXHUwNDNkXHUwNDRjX1x1MDQzOFx1MDQ0ZVx1MDQzYlx1MDQ0Y19cdTA0MzBcdTA0MzJcdTA0MzNcdTA0NDNcdTA0NDFcdTA0NDJfXHUwNDQxXHUwNDM1XHUwNDNkXHUwNDQyXHUwNDRmXHUwNDMxXHUwNDQwXHUwNDRj'@; put 'X1x1MDQzZVx1MDQzYVx1MDQ0Mlx1MDQ0Zlx1MDQzMVx1MDQ0MFx1MDQ0Y19cdTA0M2RcdTA0M2VcdTA0NGZcdTA0MzFcdTA0NDBcdTA0NGNfXHUwNDM0XHUwNDM1XHUwNDNhXHUwNDMwXHUwNDMxXHUwNDQwXHUwNDRjIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTA0NGZcdTA0M2RcdTA0'@; put 'MzJfXHUwNDQ0XHUwNDM1XHUwNDMyX1x1MDQzY1x1MDQzMFx1MDQ0MFx1MDQ0Ml9cdTA0MzBcdTA0M2ZcdTA0NDBfXHUwNDNjXHUwNDMwXHUwNDM5X1x1MDQzOFx1MDQ0ZVx1MDQzZFx1MDQ0Y19cdTA0MzhcdTA0NGVcdTA0M2JcdTA0NGNfXHUwNDMwXHUwNDMyXHUwNDMzX1x1MDQ0MVx1MDQz'@; put 'NVx1MDQzZF9cdTA0M2VcdTA0M2FcdTA0NDJfXHUwNDNkXHUwNDNlXHUwNDRmX1x1MDQzNFx1MDQzNVx1MDQzYSIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwNDE2XHUwNDM1XHUwNDNhXHUwNDQ4XHUwNDM1XHUwNDNjXHUwNDMxXHUwNDM4X1x1MDQxNFx1MDRhZlx1MDQzOVx1MDQ0OFx1MDRl'@; put 'OVx1MDQzY1x1MDQzMVx1MDRhZl9cdTA0MjhcdTA0MzVcdTA0MzlcdTA0NDhcdTA0MzVcdTA0M2NcdTA0MzFcdTA0MzhfXHUwNDI4XHUwNDMwXHUwNDQwXHUwNDQ4XHUwNDM1XHUwNDNjXHUwNDMxXHUwNDM4X1x1MDQxMVx1MDQzNVx1MDQzOVx1MDQ0OFx1MDQzNVx1MDQzY1x1MDQzMVx1MDQz'@; put 'OF9cdTA0MTZcdTA0NDNcdTA0M2NcdTA0MzBfXHUwNDE4XHUwNDQ4XHUwNDM1XHUwNDNjXHUwNDMxXHUwNDM4Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDQxNlx1MDQzNVx1MDQzYV9cdTA0MTRcdTA0YWZcdTA0MzlfXHUwNDI4XHUwNDM1XHUwNDM5X1x1MDQyOFx1MDQzMFx1MDQ0'@; put 'MF9cdTA0MTFcdTA0MzVcdTA0MzlfXHUwNDE2XHUwNDQzXHUwNDNjX1x1MDQxOFx1MDQ0OFx1MDQzNSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwNDE2XHUwNDNhX1x1MDQxNFx1MDQzOV9cdTA0MjhcdTA0MzlfXHUwNDI4XHUwNDQwX1x1MDQxMVx1MDQzOV9cdTA0MTZcdTA0M2NfXHUw'@; put 'NDE4XHUwNDQ4Ii5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2Ft'@; put 'ZURheToiW1x1MDQxMVx1MDRhZlx1MDQzM1x1MDRhZlx1MDQzZCBcdTA0NDFcdTA0MzBcdTA0MzBcdTA0NDJdIExUIixuZXh0RGF5OiJbXHUwNDJkXHUwNDQwXHUwNDQyXHUwNDM1XHUwNGEzIFx1MDQ0MVx1MDQzMFx1MDQzMFx1MDQ0Ml0gTFQiLG5leHRXZWVrOiJkZGRkIFtcdTA0NDFcdTA0'@; put 'MzBcdTA0MzBcdTA0NDJdIExUIixsYXN0RGF5OiJbXHUwNDFhXHUwNDM1XHUwNDQ3XHUwNDRkXHUwNDRkIFx1MDQ0MVx1MDQzMFx1MDQzMFx1MDQ0Ml0gTFQiLGxhc3RXZWVrOiJbXHUwNGU4XHUwNDQyXHUwNDNhXHUwNGU5XHUwNDNkIFx1MDQzMFx1MDQzZlx1MDQ0Mlx1MDQzMFx1MDQzZFx1'@; put 'MDQ0Ylx1MDQzZF0gZGRkZCBbXHUwNDNhXHUwNGFmXHUwNDNkXHUwNGFmXSBbXHUwNDQxXHUwNDMwXHUwNDMwXHUwNDQyXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwNDM4XHUwNDQ3XHUwNDM4XHUwNDNkXHUwNDM0XHUwNDM1IixwYXN0OiIlcyBcdTA0'@; put 'M2NcdTA0NDNcdTA0NDBcdTA0NDNcdTA0M2QiLHM6Ilx1MDQzMVx1MDQzOFx1MDQ0MFx1MDQzZFx1MDQzNVx1MDQ0N1x1MDQzNSBcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzQiLHNzOiIlZCBcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzQiLG06Ilx1MDQz'@; put 'MVx1MDQzOFx1MDQ0MCBcdTA0M2NcdTA0YWZcdTA0M2RcdTA0ZTlcdTA0NDIiLG1tOiIlZCBcdTA0M2NcdTA0YWZcdTA0M2RcdTA0ZTlcdTA0NDIiLGg6Ilx1MDQzMVx1MDQzOFx1MDQ0MCBcdTA0NDFcdTA0MzBcdTA0MzBcdTA0NDIiLGhoOiIlZCBcdTA0NDFcdTA0MzBcdTA0MzBcdTA0NDIi'@; put 'LGQ6Ilx1MDQzMVx1MDQzOFx1MDQ0MCBcdTA0M2FcdTA0YWZcdTA0M2QiLGRkOiIlZCBcdTA0M2FcdTA0YWZcdTA0M2QiLE06Ilx1MDQzMVx1MDQzOFx1MDQ0MCBcdTA0MzBcdTA0MzkiLE1NOiIlZCBcdTA0MzBcdTA0MzkiLHk6Ilx1MDQzMVx1MDQzOFx1MDQ0MCBcdTA0MzZcdTA0NGJcdTA0'@; put 'M2IiLHl5OiIlZCBcdTA0MzZcdTA0NGJcdTA0M2IifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9LShcdTA0NDdcdTA0Mzh8XHUwNDQ3XHUwNDRifFx1MDQ0N1x1MDRhZnxcdTA0NDdcdTA0NDMpLyxvcmRpbmFsOmZ1bmN0aW9uKE4pe3JldHVybiBOKyhfW05dfHxfW04lMTBdfHxf'@; put 'W04+PTEwMD8xMDA6bnVsbF0pfSx3ZWVrOntkb3c6MSxkb3k6N319KX0oYig5NzU4NikpfSwzNTk2OTpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gXyhILFIsaixQKXt2YXIgTD17bTpbImVuZyBNaW51dHQiLCJlbmdlciBNaW51dHQiXSxoOlsi'@; put 'ZW5nIFN0b25uIiwiZW5nZXIgU3Rvbm4iXSxkOlsiZWVuIERhZyIsImVuZ2VtIERhZyJdLE06WyJlZSBNb3VudCIsImVuZ2VtIE1vdW50Il0seTpbImVlIEpvZXIiLCJlbmdlbSBKb2VyIl19O3JldHVybiBSP0xbal1bMF06TFtqXVsxXX1mdW5jdGlvbiB3KEgpe2lmKEg9cGFyc2VJbnQoSCwx'@; put 'MCksaXNOYU4oSCkpcmV0dXJuITE7aWYoSDwwKXJldHVybiEwO2lmKEg8MTApcmV0dXJuIDQ8PUgmJkg8PTc7aWYoSDwxMDApe3ZhciBSPUglMTA7cmV0dXJuIHcoMD09PVI/SC8xMDpSKX1pZihIPDFlNCl7Zm9yKDtIPj0xMDspSC89MTA7cmV0dXJuIHcoSCl9cmV0dXJuIHcoSC89MWUzKX1E'@; put 'LmRlZmluZUxvY2FsZSgibGIiLHttb250aHM6IkphbnVhcl9GZWJydWFyX01ceGU0ZXJ6X0Ficlx4ZWJsbF9NZWVfSnVuaV9KdWxpX0F1Z3VzdF9TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3ZlbWJlcl9EZXplbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFuLl9GZWJyLl9NcnouX0Fici5f'@; put 'TWVlX0p1bi5fSnVsLl9BdWcuX1NlcHQuX09rdC5fTm92Ll9EZXouIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6IlNvbm5kZWdfTVx4ZTlpbmRlZ19EXHhlYm5zY2hkZWdfTVx4ZWJ0dHdvY2hfRG9ubmVzY2hkZWdfRnJlaWRlZ19TYW1zY2hkZWciLnNwbGl0KCJf'@; put 'Iiksd2Vla2RheXNTaG9ydDoiU28uX01ceGU5Ll9EXHhlYi5fTVx4ZWIuX0RvLl9Gci5fU2EuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJTb19NXHhlOV9EXHhlYl9NXHhlYl9Eb19Gcl9TYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJI'@; put 'Om1tIFtBdWVyXSIsTFRTOiJIOm1tOnNzIFtBdWVyXSIsTDoiREQuTU0uWVlZWSIsTEw6IkQuIE1NTU0gWVlZWSIsTExMOiJELiBNTU1NIFlZWVkgSDptbSBbQXVlcl0iLExMTEw6ImRkZGQsIEQuIE1NTU0gWVlZWSBIOm1tIFtBdWVyXSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbSGF1dCB1bV0g'@; put 'TFQiLHNhbWVFbHNlOiJMIixuZXh0RGF5OiJbTXVlciB1bV0gTFQiLG5leHRXZWVrOiJkZGRkIFt1bV0gTFQiLGxhc3REYXk6IltHXHhlYnNjaHRlciB1bV0gTFQiLGxhc3RXZWVrOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZGF5KCkpe2Nhc2UgMjpjYXNlIDQ6cmV0dXJuIltMZXNjaHRlbl0g'@; put 'ZGRkZCBbdW1dIExUIjtkZWZhdWx0OnJldHVybiJbTGVzY2h0ZV0gZGRkZCBbdW1dIExUIn19fSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTpmdW5jdGlvbiBwKEgpe3JldHVybiB3KEguc3Vic3RyKDAsSC5pbmRleE9mKCIgIikpKT8iYSAiK0g6ImFuICIrSH0scGFzdDpmdW5jdGlvbiBOKEgpe3Jl'@; put 'dHVybiB3KEguc3Vic3RyKDAsSC5pbmRleE9mKCIgIikpKT8idmlydSAiK0g6InZpcnVuICIrSH0sczoiZSBwdWVyIFNla29ubmVuIixzczoiJWQgU2Vrb25uZW4iLG06XyxtbToiJWQgTWludXR0ZW4iLGg6XyxoaDoiJWQgU3Rvbm5lbiIsZDpfLGRkOiIlZCBEZWVnIixNOl8sTU06IiVkIE1c'@; put 'eGU5aW50Iix5Ol8seXk6IiVkIEpvZXIifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KGIoOTc1ODYpKX0sMzM1MjY6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO0QuZGVmaW5l'@; put 'TG9jYWxlKCJsbyIse21vbnRoczoiXHUwZWExXHUwZWIxXHUwZTg3XHUwZTgxXHUwZWFkXHUwZTk5X1x1MGU4MVx1MGViOFx1MGVhMVx1MGU5ZVx1MGViMl9cdTBlYTFcdTBlYjVcdTBlOTlcdTBlYjJfXHUwZWMwXHUwZWExXHUwZWFhXHUwZWIyX1x1MGU5ZVx1MGViNlx1MGU5NFx1MGVhYVx1'@; put 'MGViMFx1MGU5ZVx1MGViMl9cdTBlYTFcdTBlYjRcdTBlOTZcdTBlYjhcdTBlOTlcdTBlYjJfXHUwZTgxXHUwZWNkXHUwZWE1XHUwZWIwXHUwZTgxXHUwZWJiXHUwZTk0X1x1MGVhYVx1MGViNFx1MGU4N1x1MGVhYlx1MGViMl9cdTBlODFcdTBlYjFcdTBlOTlcdTBlOGRcdTBlYjJfXHUwZTk1'@; put 'XHUwZWI4XHUwZWE1XHUwZWIyX1x1MGU5ZVx1MGViMFx1MGU4OFx1MGViNFx1MGU4MV9cdTBlOTdcdTBlYjFcdTBlOTlcdTBlYTdcdTBlYjIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MGVhMVx1MGViMVx1MGU4N1x1MGU4MVx1MGVhZFx1MGU5OV9cdTBlODFcdTBlYjhcdTBlYTFcdTBl'@; put 'OWVcdTBlYjJfXHUwZWExXHUwZWI1XHUwZTk5XHUwZWIyX1x1MGVjMFx1MGVhMVx1MGVhYVx1MGViMl9cdTBlOWVcdTBlYjZcdTBlOTRcdTBlYWFcdTBlYjBcdTBlOWVcdTBlYjJfXHUwZWExXHUwZWI0XHUwZTk2XHUwZWI4XHUwZTk5XHUwZWIyX1x1MGU4MVx1MGVjZFx1MGVhNVx1MGViMFx1'@; put 'MGU4MVx1MGViYlx1MGU5NF9cdTBlYWFcdTBlYjRcdTBlODdcdTBlYWJcdTBlYjJfXHUwZTgxXHUwZWIxXHUwZTk5XHUwZThkXHUwZWIyX1x1MGU5NVx1MGViOFx1MGVhNVx1MGViMl9cdTBlOWVcdTBlYjBcdTBlODhcdTBlYjRcdTBlODFfXHUwZTk3XHUwZWIxXHUwZTk5XHUwZWE3XHUwZWIy'@; put 'Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTBlYWRcdTBlYjJcdTBlOTdcdTBlYjRcdTBlOTRfXHUwZTg4XHUwZWIxXHUwZTk5X1x1MGVhZFx1MGViMVx1MGU4N1x1MGU4NFx1MGViMlx1MGU5OV9cdTBlOWVcdTBlYjhcdTBlOTRfXHUwZTllXHUwZWIwXHUwZWFiXHUwZWIxXHUwZTk0X1x1MGVh'@; put 'YVx1MGViOFx1MGU4MV9cdTBlYzBcdTBlYWFcdTBlYmJcdTBlYjIiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwZTk3XHUwZWI0XHUwZTk0X1x1MGU4OFx1MGViMVx1MGU5OV9cdTBlYWRcdTBlYjFcdTBlODdcdTBlODRcdTBlYjJcdTBlOTlfXHUwZTllXHUwZWI4XHUwZTk0X1x1MGU5'@; put 'ZVx1MGViMFx1MGVhYlx1MGViMVx1MGU5NF9cdTBlYWFcdTBlYjhcdTBlODFfXHUwZWMwXHUwZWFhXHUwZWJiXHUwZWIyIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTBlOTdfXHUwZTg4X1x1MGVhZFx1MGU4NF9cdTBlOWVfXHUwZTllXHUwZWFiX1x1MGVhYVx1MGU4MV9cdTBlYWEiLnNw'@; put 'bGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiXHUwZWE3XHUwZWIxXHUwZTk5ZGRkZCBEIE1NTU0g'@; put 'WVlZWSBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1MGU5NVx1MGVhZFx1MGU5OVx1MGVjMFx1MGU4YVx1MGViYlx1MGVjOVx1MGViMnxcdTBlOTVcdTBlYWRcdTBlOTlcdTBlYzFcdTBlYTVcdTBlODcvLGlzUE06ZnVuY3Rpb24ocCl7cmV0dXJuIlx1MGU5NVx1MGVhZFx1MGU5OVx1MGVjMVx1'@; put 'MGVhNVx1MGU4NyI9PT1wfSxtZXJpZGllbTpmdW5jdGlvbihwLE4sdyl7cmV0dXJuIHA8MTI/Ilx1MGU5NVx1MGVhZFx1MGU5OVx1MGVjMFx1MGU4YVx1MGViYlx1MGVjOVx1MGViMiI6Ilx1MGU5NVx1MGVhZFx1MGU5OVx1MGVjMVx1MGVhNVx1MGU4NyJ9LGNhbGVuZGFyOntzYW1lRGF5OiJb'@; put 'XHUwZWExXHUwZWI3XHUwZWM5XHUwZTk5XHUwZWI1XHUwZWM5XHUwZWMwXHUwZWE3XHUwZWE1XHUwZWIyXSBMVCIsbmV4dERheToiW1x1MGVhMVx1MGViN1x1MGVjOVx1MGVhZFx1MGViN1x1MGVjOFx1MGU5OVx1MGVjMFx1MGVhN1x1MGVhNVx1MGViMl0gTFQiLG5leHRXZWVrOiJbXHUwZWE3'@; put 'XHUwZWIxXHUwZTk5XWRkZGRbXHUwZWRjXHUwZWM5XHUwZWIyXHUwZWMwXHUwZWE3XHUwZWE1XHUwZWIyXSBMVCIsbGFzdERheToiW1x1MGVhMVx1MGViN1x1MGVjOVx1MGVhN1x1MGViMlx1MGU5OVx1MGU5OVx1MGViNVx1MGVjOVx1MGVjMFx1MGVhN1x1MGVhNVx1MGViMl0gTFQiLGxhc3RX'@; put 'ZWVrOiJbXHUwZWE3XHUwZWIxXHUwZTk5XWRkZGRbXHUwZWMxXHUwZWE1XHUwZWM5XHUwZWE3XHUwZTk5XHUwZWI1XHUwZWM5XHUwZWMwXHUwZWE3XHUwZWE1XHUwZWIyXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwZWFkXHUwZWI1XHUwZTgxICVzIixwYXN0'@; put 'OiIlc1x1MGU5Y1x1MGVjOFx1MGViMlx1MGU5OVx1MGVhMVx1MGViMiIsczoiXHUwZTlhXHUwZWNkXHUwZWM4XHUwZWMwXHUwZTk3XHUwZWJiXHUwZWM4XHUwZWIyXHUwZWMzXHUwZTk0XHUwZWE3XHUwZWI0XHUwZTk5XHUwZWIyXHUwZTk3XHUwZWI1IixzczoiJWQgXHUwZWE3XHUwZWI0XHUw'@; put 'ZTk5XHUwZWIyXHUwZTk3XHUwZWI1IixtOiIxIFx1MGU5OVx1MGViMlx1MGU5N1x1MGViNSIsbW06IiVkIFx1MGU5OVx1MGViMlx1MGU5N1x1MGViNSIsaDoiMSBcdTBlOGFcdTBlYmJcdTBlYzhcdTBlYTdcdTBlYzJcdTBlYTFcdTBlODciLGhoOiIlZCBcdTBlOGFcdTBlYmJcdTBlYzhcdTBl'@; put 'YTdcdTBlYzJcdTBlYTFcdTBlODciLGQ6IjEgXHUwZWExXHUwZWI3XHUwZWM5IixkZDoiJWQgXHUwZWExXHUwZWI3XHUwZWM5IixNOiIxIFx1MGVjMFx1MGU5NFx1MGViN1x1MGVhZFx1MGU5OSIsTU06IiVkIFx1MGVjMFx1MGU5NFx1MGViN1x1MGVhZFx1MGU5OSIseToiMSBcdTBlOWJcdTBl'@; put 'YjUiLHl5OiIlZCBcdTBlOWJcdTBlYjUifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi8oXHUwZTk3XHUwZWI1XHUwZWM4KVxkezEsMn0vLG9yZGluYWw6ZnVuY3Rpb24ocCl7cmV0dXJuIlx1MGU5N1x1MGViNVx1MGVjOCIrcH19KX0oYig5NzU4NikpfSw5MDQxMTpmdW5jdGlvbihjZSxKLGIp'@; put 'eyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7dmFyIF89e3NzOiJzZWt1bmRcdTAxMTdfc2VrdW5kXHUwMTdlaVx1MDE3M19zZWt1bmRlcyIsbToibWludXRcdTAxMTdfbWludXRcdTAxMTdzX21pbnV0XHUwMTE5IixtbToibWludXRcdTAxMTdzX21pbnVcdTAxMGRpXHUwMTczX21pbnV0ZXMi'@; put 'LGg6InZhbGFuZGFfdmFsYW5kb3NfdmFsYW5kXHUwMTA1IixoaDoidmFsYW5kb3NfdmFsYW5kXHUwMTczX3ZhbGFuZGFzIixkOiJkaWVuYV9kaWVub3NfZGllblx1MDEwNSIsZGQ6ImRpZW5vc19kaWVuXHUwMTczX2RpZW5hcyIsTToibVx1MDExN251b19tXHUwMTE3bmVzaW9fbVx1MDExN25l'@; put 'c1x1MDEyZiIsTU06Im1cdTAxMTduZXNpYWlfbVx1MDExN25lc2lcdTAxNzNfbVx1MDExN25lc2l1cyIseToibWV0YWlfbWV0XHUwMTczX21ldHVzIix5eToibWV0YWlfbWV0XHUwMTczX21ldHVzIn07ZnVuY3Rpb24gTihqLFAsTCxZKXtyZXR1cm4gUD9GKEwpWzBdOlk/RihMKVsxXTpGKEwp'@; put 'WzJdfWZ1bmN0aW9uIHcoail7cmV0dXJuIGolMTA9PTB8fGo+MTAmJmo8MjB9ZnVuY3Rpb24gRihqKXtyZXR1cm4gX1tqXS5zcGxpdCgiXyIpfWZ1bmN0aW9uIEgoaixQLEwsWSl7dmFyIEI9aisiICI7cmV0dXJuIDE9PT1qP0IrTigwLFAsTFswXSxZKTpQP0IrKHcoaik/RihMKVsxXTpGKEwp'@; put 'WzBdKTpZP0IrRihMKVsxXTpCKyh3KGopP0YoTClbMV06RihMKVsyXSl9RC5kZWZpbmVMb2NhbGUoImx0Iix7bW9udGhzOntmb3JtYXQ6InNhdXNpb192YXNhcmlvX2tvdm9fYmFsYW5kXHUwMTdlaW9fZ2VndVx1MDE3ZVx1MDExN3NfYmlyXHUwMTdlZWxpb19saWVwb3NfcnVncGpcdTAxNmJc'@; put 'dTAxMGRpb19ydWdzXHUwMTE3am9fc3BhbGlvX2xhcGtyaVx1MDEwZGlvX2dydW9kXHUwMTdlaW8iLnNwbGl0KCJfIiksc3RhbmRhbG9uZToic2F1c2lzX3Zhc2FyaXNfa292YXNfYmFsYW5kaXNfZ2VndVx1MDE3ZVx1MDExN19iaXJcdTAxN2VlbGlzX2xpZXBhX3J1Z3BqXHUwMTZidGlzX3J1'@; put 'Z3NcdTAxMTdqaXNfc3BhbGlzX2xhcGtyaXRpc19ncnVvZGlzIi5zcGxpdCgiXyIpLGlzRm9ybWF0Oi9EW29EXT8oXFtbXlxbXF1dKlxdfFxzKStNTU1NP3xNTU1NPyhcW1teXFtcXV0qXF18XHMpK0Rbb0RdPy99LG1vbnRoc1Nob3J0OiJzYXVfdmFzX2tvdl9iYWxfZ2VnX2Jpcl9saWVfcmdw'@; put 'X3Jnc19zcGFfbGFwX2dyZCIuc3BsaXQoIl8iKSx3ZWVrZGF5czp7Zm9ybWF0OiJzZWttYWRpZW5cdTAxMmZfcGlybWFkaWVuXHUwMTJmX2FudHJhZGllblx1MDEyZl90cmVcdTAxMGRpYWRpZW5cdTAxMmZfa2V0dmlydGFkaWVuXHUwMTJmX3Blbmt0YWRpZW5cdTAxMmZfXHUwMTYxZVx1MDE2'@; put 'MXRhZGllblx1MDEyZiIuc3BsaXQoIl8iKSxzdGFuZGFsb25lOiJzZWttYWRpZW5pc19waXJtYWRpZW5pc19hbnRyYWRpZW5pc190cmVcdTAxMGRpYWRpZW5pc19rZXR2aXJ0YWRpZW5pc19wZW5rdGFkaWVuaXNfXHUwMTYxZVx1MDE2MXRhZGllbmlzIi5zcGxpdCgiXyIpLGlzRm9ybWF0Oi9k'@; put 'ZGRkIEhIOm1tL30sd2Vla2RheXNTaG9ydDoiU2VrX1Bpcl9BbnRfVHJlX0tldF9QZW5fXHUwMTYwZVx1MDE2MSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiU19QX0FfVF9LX1BuX1x1MDE2MCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJI'@; put 'SDptbSIsTFRTOiJISDptbTpzcyIsTDoiWVlZWS1NTS1ERCIsTEw6IllZWVkgW20uXSBNTU1NIEQgW2QuXSIsTExMOiJZWVlZIFttLl0gTU1NTSBEIFtkLl0sIEhIOm1tIFt2YWwuXSIsTExMTDoiWVlZWSBbbS5dIE1NTU0gRCBbZC5dLCBkZGRkLCBISDptbSBbdmFsLl0iLGw6IllZWVktTU0t'@; put 'REQiLGxsOiJZWVlZIFttLl0gTU1NTSBEIFtkLl0iLGxsbDoiWVlZWSBbbS5dIE1NTU0gRCBbZC5dLCBISDptbSBbdmFsLl0iLGxsbGw6IllZWVkgW20uXSBNTU1NIEQgW2QuXSwgZGRkLCBISDptbSBbdmFsLl0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDE2MGlhbmRpZW5dIExUIixuZXh0'@; put 'RGF5OiJbUnl0b2pdIExUIixuZXh0V2VlazoiZGRkZCBMVCIsbGFzdERheToiW1Zha2FyXSBMVCIsbGFzdFdlZWs6IltQcmFcdTAxMTdqdXNcdTAxMmZdIGRkZGQgTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6InBvICVzIixwYXN0OiJwcmllXHUwMTYxICVzIixzOmZ1'@; put 'bmN0aW9uIHAoaixQLEwsWSl7cmV0dXJuIFA/ImtlbGlvcyBzZWt1bmRcdTAxMTdzIjpZPyJrZWxpXHUwMTczIHNla3VuZFx1MDE3ZWlcdTAxNzMiOiJrZWxpYXMgc2VrdW5kZXMifSxzczpILG06TixtbTpILGg6TixoaDpILGQ6TixkZDpILE06TixNTTpILHk6Tix5eTpIfSxkYXlPZk1vbnRo'@; put 'T3JkaW5hbFBhcnNlOi9cZHsxLDJ9LW9qaS8sb3JkaW5hbDpmdW5jdGlvbihqKXtyZXR1cm4gaisiLW9qaSJ9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShiKDk3NTg2KSl9LDMyNjIxOmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0Ijt2YXIgXz17c3M6InNla3VuZGVz'@; put 'X3Nla3VuZFx1MDExM21fc2VrdW5kZV9zZWt1bmRlcyIuc3BsaXQoIl8iKSxtOiJtaW5cdTAxNmJ0ZXNfbWluXHUwMTZidFx1MDExM21fbWluXHUwMTZidGVfbWluXHUwMTZidGVzIi5zcGxpdCgiXyIpLG1tOiJtaW5cdTAxNmJ0ZXNfbWluXHUwMTZidFx1MDExM21fbWluXHUwMTZidGVfbWlu'@; put 'XHUwMTZidGVzIi5zcGxpdCgiXyIpLGg6InN0dW5kYXNfc3R1bmRcdTAxMDFtX3N0dW5kYV9zdHVuZGFzIi5zcGxpdCgiXyIpLGhoOiJzdHVuZGFzX3N0dW5kXHUwMTAxbV9zdHVuZGFfc3R1bmRhcyIuc3BsaXQoIl8iKSxkOiJkaWVuYXNfZGllblx1MDEwMW1fZGllbmFfZGllbmFzIi5zcGxp'@; put 'dCgiXyIpLGRkOiJkaWVuYXNfZGllblx1MDEwMW1fZGllbmFfZGllbmFzIi5zcGxpdCgiXyIpLE06Im1cdTAxMTNuZVx1MDE2MWFfbVx1MDExM25lXHUwMTYxaWVtX21cdTAxMTNuZXNpc19tXHUwMTEzbmVcdTAxNjFpIi5zcGxpdCgiXyIpLE1NOiJtXHUwMTEzbmVcdTAxNjFhX21cdTAxMTNu'@; put 'ZVx1MDE2MWllbV9tXHUwMTEzbmVzaXNfbVx1MDExM25lXHUwMTYxaSIuc3BsaXQoIl8iKSx5OiJnYWRhX2dhZGllbV9nYWRzX2dhZGkiLnNwbGl0KCJfIikseXk6ImdhZGFfZ2FkaWVtX2dhZHNfZ2FkaSIuc3BsaXQoIl8iKX07ZnVuY3Rpb24gcChSLGosUCl7cmV0dXJuIFA/aiUxMD09MSYm'@; put 'aiUxMDAhPTExP1JbMl06UlszXTpqJTEwPT0xJiZqJTEwMCE9MTE/UlswXTpSWzFdfWZ1bmN0aW9uIE4oUixqLFApe3JldHVybiBSKyIgIitwKF9bUF0sUixqKX1mdW5jdGlvbiB3KFIsaixQKXtyZXR1cm4gcChfW1BdLFIsail9RC5kZWZpbmVMb2NhbGUoImx2Iix7bW9udGhzOiJqYW52XHUw'@; put 'MTAxcmlzX2ZlYnJ1XHUwMTAxcmlzX21hcnRzX2Fwclx1MDEyYmxpc19tYWlqc19qXHUwMTZibmlqc19qXHUwMTZibGlqc19hdWd1c3RzX3NlcHRlbWJyaXNfb2t0b2JyaXNfbm92ZW1icmlzX2RlY2VtYnJpcyIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiamFuX2ZlYl9tYXJfYXByX21haV9q'@; put 'XHUwMTZibl9qXHUwMTZibF9hdWdfc2VwX29rdF9ub3ZfZGVjIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJzdlx1MDExM3RkaWVuYV9waXJtZGllbmFfb3RyZGllbmFfdHJlXHUwMTYxZGllbmFfY2V0dXJ0ZGllbmFfcGlla3RkaWVuYV9zZXN0ZGllbmEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9y'@; put 'dDoiU3ZfUF9PX1RfQ19Qa19TIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJTdl9QX09fVF9DX1BrX1MiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkuIixMTDoiWVlZWS4gW2dh'@; put 'ZGFdIEQuIE1NTU0iLExMTDoiWVlZWS4gW2dhZGFdIEQuIE1NTU0sIEhIOm1tIixMTExMOiJZWVlZLiBbZ2FkYV0gRC4gTU1NTSwgZGRkZCwgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDE2MG9kaWVuIHB1bGtzdGVuXSBMVCIsbmV4dERheToiW1JcdTAxMmJ0IHB1bGtzdGVuXSBM'@; put 'VCIsbmV4dFdlZWs6ImRkZGQgW3B1bGtzdGVuXSBMVCIsbGFzdERheToiW1Zha2FyIHB1bGtzdGVuXSBMVCIsbGFzdFdlZWs6IltQYWdcdTAxMDFqdVx1MDE2MVx1MDEwMV0gZGRkZCBbcHVsa3N0ZW5dIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJwXHUwMTEzYyAl'@; put 'cyIscGFzdDoicGlybXMgJXMiLHM6ZnVuY3Rpb24gRihSLGope3JldHVybiBqPyJkYVx1MDE3ZWFzIHNla3VuZGVzIjoiZGFcdTAxN2VcdTAxMDFtIHNla3VuZFx1MDExM20ifSxzczpOLG06dyxtbTpOLGg6dyxoaDpOLGQ6dyxkZDpOLE06dyxNTTpOLHk6dyx5eTpOfSxkYXlPZk1vbnRoT3Jk'@; put 'aW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KGIoOTc1ODYpKX0sODU4Njk6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO3ZhciBfPXt3b3Jkczp7c3M6WyJzZWt1bmQiLCJzZWt1bmRhIiwic2VrdW5kaSJd'@; put 'LG06WyJqZWRhbiBtaW51dCIsImplZG5vZyBtaW51dGEiXSxtbTpbIm1pbnV0IiwibWludXRhIiwibWludXRhIl0saDpbImplZGFuIHNhdCIsImplZG5vZyBzYXRhIl0saGg6WyJzYXQiLCJzYXRhIiwic2F0aSJdLGRkOlsiZGFuIiwiZGFuYSIsImRhbmEiXSxNTTpbIm1qZXNlYyIsIm1qZXNl'@; put 'Y2EiLCJtamVzZWNpIl0seXk6WyJnb2RpbmEiLCJnb2RpbmUiLCJnb2RpbmEiXX0sY29ycmVjdEdyYW1tYXRpY2FsQ2FzZTpmdW5jdGlvbihOLHcpe3JldHVybiAxPT09Tj93WzBdOk4+PTImJk48PTQ/d1sxXTp3WzJdfSx0cmFuc2xhdGU6ZnVuY3Rpb24oTix3LEYpe3ZhciBIPV8ud29yZHNb'@; put 'Rl07cmV0dXJuIDE9PT1GLmxlbmd0aD93P0hbMF06SFsxXTpOKyIgIitfLmNvcnJlY3RHcmFtbWF0aWNhbENhc2UoTixIKX19O0QuZGVmaW5lTG9jYWxlKCJtZSIse21vbnRoczoiamFudWFyX2ZlYnJ1YXJfbWFydF9hcHJpbF9tYWpfanVuX2p1bF9hdmd1c3Rfc2VwdGVtYmFyX29rdG9iYXJf'@; put 'bm92ZW1iYXJfZGVjZW1iYXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Imphbi5fZmViLl9tYXIuX2Fwci5fbWFqX2p1bl9qdWxfYXZnLl9zZXAuX29rdC5fbm92Ll9kZWMuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Im5lZGplbGphX3BvbmVkamVsamFrX3V0'@; put 'b3Jha19zcmlqZWRhX1x1MDEwZGV0dnJ0YWtfcGV0YWtfc3Vib3RhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Im5lZC5fcG9uLl91dG8uX3NyaS5fXHUwMTBkZXQuX3BldC5fc3ViLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoibmVfcG9fdXRfc3JfXHUwMTBkZV9wZV9zdSIuc3BsaXQo'@; put 'Il8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJELiBNTU1NIFlZWVkiLExMTDoiRC4gTU1NTSBZWVlZIEg6bW0iLExMTEw6ImRkZGQsIEQuIE1NTU0gWVlZWSBIOm1tIn0sY2FsZW5kYXI6'@; put 'e3NhbWVEYXk6IltkYW5hcyB1XSBMVCIsbmV4dERheToiW3NqdXRyYSB1XSBMVCIsbmV4dFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOnJldHVybiJbdV0gW25lZGplbGp1XSBbdV0gTFQiO2Nhc2UgMzpyZXR1cm4iW3VdIFtzcmlqZWR1XSBbdV0gTFQiO2Nhc2Ug'@; put 'NjpyZXR1cm4iW3VdIFtzdWJvdHVdIFt1XSBMVCI7Y2FzZSAxOmNhc2UgMjpjYXNlIDQ6Y2FzZSA1OnJldHVybiJbdV0gZGRkZCBbdV0gTFQifX0sbGFzdERheToiW2p1XHUwMTBkZSB1XSBMVCIsbGFzdFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm5bIltwcm9cdTAxNjFsZV0gW25lZGplbGplXSBb'@; put 'dV0gTFQiLCJbcHJvXHUwMTYxbG9nXSBbcG9uZWRqZWxqa2FdIFt1XSBMVCIsIltwcm9cdTAxNjFsb2ddIFt1dG9ya2FdIFt1XSBMVCIsIltwcm9cdTAxNjFsZV0gW3NyaWplZGVdIFt1XSBMVCIsIltwcm9cdTAxNjFsb2ddIFtcdTAxMGRldHZydGthXSBbdV0gTFQiLCJbcHJvXHUwMTYxbG9n'@; put 'XSBbcGV0a2FdIFt1XSBMVCIsIltwcm9cdTAxNjFsZV0gW3N1Ym90ZV0gW3VdIExUIl1bdGhpcy5kYXkoKV19LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6InphICVzIixwYXN0OiJwcmlqZSAlcyIsczoibmVrb2xpa28gc2VrdW5kaSIsc3M6Xy50cmFuc2xhdGUsbTpfLnRy'@; put 'YW5zbGF0ZSxtbTpfLnRyYW5zbGF0ZSxoOl8udHJhbnNsYXRlLGhoOl8udHJhbnNsYXRlLGQ6ImRhbiIsZGQ6Xy50cmFuc2xhdGUsTToibWplc2VjIixNTTpfLnRyYW5zbGF0ZSx5OiJnb2RpbnUiLHl5Ol8udHJhbnNsYXRlfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9y'@; put 'ZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95Ojd9fSl9KGIoOTc1ODYpKX0sMzU4ODE6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO0QuZGVmaW5lTG9jYWxlKCJtaSIse21vbnRoczoiS29oaS10XHUwMTAxdGVfSHVpLXRhbmd1cnVfUG91dFx1MDE2Yi10ZS1y'@; put 'YW5naV9QYWVuZ2Etd2hcdTAxMDF3aFx1MDEwMV9IYXJhdHVhX1BpcGlyaV9IXHUwMTRkbmdvaW5nb2lfSGVyZS10dXJpLWtcdTAxNGRrXHUwMTAxX01haHVydV9XaGlyaW5nYS1cdTAxMDEtbnVrdV9XaGlyaW5nYS1cdTAxMDEtcmFuZ2lfSGFraWhlYSIuc3BsaXQoIl8iKSxtb250aHNTaG9y'@; put 'dDoiS29oaV9IdWlfUG91X1BhZV9IYXJhX1BpcGlfSFx1MDE0ZG5nb2lfSGVyZV9NYWh1X1doaS1udV9XaGktcmFfSGFraSIuc3BsaXQoIl8iKSxtb250aHNSZWdleDovKD86WydhLXpcdTAxMDFcdTAxNERcdTAxNkJdK1wtPyl7MSwzfS9pLG1vbnRoc1N0cmljdFJlZ2V4Oi8oPzpbJ2Etelx1'@; put 'MDEwMVx1MDE0RFx1MDE2Ql0rXC0/KXsxLDN9L2ksbW9udGhzU2hvcnRSZWdleDovKD86WydhLXpcdTAxMDFcdTAxNERcdTAxNkJdK1wtPyl7MSwzfS9pLG1vbnRoc1Nob3J0U3RyaWN0UmVnZXg6Lyg/OlsnYS16XHUwMTAxXHUwMTREXHUwMTZCXStcLT8pezEsMn0vaSx3ZWVrZGF5czoiUlx1'@; put 'MDEwMXRhcHVfTWFuZV9UXHUwMTZicmVpX1dlbmVyZWlfVFx1MDEwMWl0ZV9QYXJhaXJlX0hcdTAxMDF0YXJlaSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJUYV9NYV9UXHUwMTZiX1dlX1RcdTAxMDFpX1BhX0hcdTAxMDEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlRhX01hX1RcdTAx'@; put 'NmJfV2VfVFx1MDEwMWlfUGFfSFx1MDEwMSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgW2ldIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBb'@; put 'aV0gSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2kgdGVpZSBtYWhhbmEsIGldIExUIixuZXh0RGF5OiJbYXBvcG8gaV0gTFQiLG5leHRXZWVrOiJkZGRkIFtpXSBMVCIsbGFzdERheToiW2luYW5haGkgaV0gTFQiLGxhc3RXZWVrOiJkZGRkIFt3aGFrYW11dHVuZ2EgaV0gTFQiLHNhbWVF'@; put 'bHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Imkgcm90byBpICVzIixwYXN0OiIlcyBpIG11YSIsczoidGUgaFx1MDExM2tvbmEgcnVhcnVhIixzczoiJWQgaFx1MDExM2tvbmEiLG06ImhlIG1lbmV0aSIsbW06IiVkIG1lbmV0aSIsaDoidGUgaGFvcmEiLGhoOiIlZCBoYW9yYSIsZDoi'@; put 'aGUgcmEiLGRkOiIlZCByYSIsTToiaGUgbWFyYW1hIixNTToiJWQgbWFyYW1hIix5OiJoZSB0YXUiLHl5OiIlZCB0YXUifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XHhiYS8sb3JkaW5hbDoiJWRceGJhIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oYig5NzU4NikpfSw5MjM5MTpm'@; put 'dW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7RC5kZWZpbmVMb2NhbGUoIm1rIix7bW9udGhzOiJcdTA0NThcdTA0MzBcdTA0M2RcdTA0NDNcdTA0MzBcdTA0NDBcdTA0MzhfXHUwNDQ0XHUwNDM1XHUwNDMyXHUwNDQwXHUwNDQzXHUwNDMwXHUwNDQwXHUwNDM4X1x1'@; put 'MDQzY1x1MDQzMFx1MDQ0MFx1MDQ0Ml9cdTA0MzBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2JfXHUwNDNjXHUwNDMwXHUwNDU4X1x1MDQ1OFx1MDQ0M1x1MDQzZFx1MDQzOF9cdTA0NThcdTA0NDNcdTA0M2JcdTA0MzhfXHUwNDMwXHUwNDMyXHUwNDMzXHUwNDQzXHUwNDQxXHUwNDQyX1x1MDQ0'@; put 'MVx1MDQzNVx1MDQzZlx1MDQ0Mlx1MDQzNVx1MDQzY1x1MDQzMlx1MDQ0MFx1MDQzOF9cdTA0M2VcdTA0M2FcdTA0NDJcdTA0M2VcdTA0M2NcdTA0MzJcdTA0NDBcdTA0MzhfXHUwNDNkXHUwNDNlXHUwNDM1XHUwNDNjXHUwNDMyXHUwNDQwXHUwNDM4X1x1MDQzNFx1MDQzNVx1MDQzYVx1MDQz'@; put 'NVx1MDQzY1x1MDQzMlx1MDQ0MFx1MDQzOCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwNDU4XHUwNDMwXHUwNDNkX1x1MDQ0NFx1MDQzNVx1MDQzMl9cdTA0M2NcdTA0MzBcdTA0NDBfXHUwNDMwXHUwNDNmXHUwNDQwX1x1MDQzY1x1MDQzMFx1MDQ1OF9cdTA0NThcdTA0NDNcdTA0M2Rf'@; put 'XHUwNDU4XHUwNDQzXHUwNDNiX1x1MDQzMFx1MDQzMlx1MDQzM19cdTA0NDFcdTA0MzVcdTA0M2ZfXHUwNDNlXHUwNDNhXHUwNDQyX1x1MDQzZFx1MDQzZVx1MDQzNV9cdTA0MzRcdTA0MzVcdTA0M2EiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDQzZFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQz'@; put 'Ylx1MDQzMF9cdTA0M2ZcdTA0M2VcdTA0M2RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M2JcdTA0M2RcdTA0MzhcdTA0M2FfXHUwNDMyXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDNkXHUwNDM4XHUwNDNhX1x1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzMF9cdTA0NDdcdTA0MzVcdTA0NDJcdTA0'@; put 'MzJcdTA0NDBcdTA0NDJcdTA0M2VcdTA0M2FfXHUwNDNmXHUwNDM1XHUwNDQyXHUwNDNlXHUwNDNhX1x1MDQ0MVx1MDQzMFx1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQzMCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA0M2RcdTA0MzVcdTA0MzRfXHUwNDNmXHUwNDNlXHUwNDNkX1x1MDQz'@; put 'Mlx1MDQ0Mlx1MDQzZV9cdTA0NDFcdTA0NDBcdTA0MzVfXHUwNDQ3XHUwNDM1XHUwNDQyX1x1MDQzZlx1MDQzNVx1MDQ0Ml9cdTA0NDFcdTA0MzBcdTA0MzEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDQzZGVfXHUwNDNmb19cdTA0MzJcdTA0NDJfXHUwNDQxXHUwNDQwX1x1MDQ0N1x1'@; put 'MDQzNV9cdTA0M2ZcdTA0MzVfXHUwNDQxYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiRC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSDptbSJ9LGNh'@; put 'bGVuZGFyOntzYW1lRGF5OiJbXHUwNDE0XHUwNDM1XHUwNDNkXHUwNDM1XHUwNDQxIFx1MDQzMlx1MDQzZV0gTFQiLG5leHREYXk6IltcdTA0MjNcdTA0NDJcdTA0NDBcdTA0MzUgXHUwNDMyXHUwNDNlXSBMVCIsbmV4dFdlZWs6IltcdTA0MTJcdTA0M2VdIGRkZGQgW1x1MDQzMlx1MDQzZV0g'@; put 'TFQiLGxhc3REYXk6IltcdTA0MTJcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzAgXHUwNDMyXHUwNDNlXSBMVCIsbGFzdFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOmNhc2UgMzpjYXNlIDY6cmV0dXJuIltcdTA0MThcdTA0MzdcdTA0M2NcdTA0MzhcdTA0M2RcdTA0'@; put 'MzBcdTA0NDJcdTA0MzBcdTA0NDJcdTA0MzBdIGRkZGQgW1x1MDQzMlx1MDQzZV0gTFQiO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OmNhc2UgNTpyZXR1cm4iW1x1MDQxOFx1MDQzN1x1MDQzY1x1MDQzOFx1MDQzZFx1MDQzMFx1MDQ0Mlx1MDQzOFx1MDQzZVx1MDQ0Ml0gZGRkZCBbXHUwNDMyXHUw'@; put 'NDNlXSBMVCJ9fSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTA0MzdcdTA0MzAgJXMiLHBhc3Q6Ilx1MDQzZlx1MDQ0MFx1MDQzNVx1MDQzNCAlcyIsczoiXHUwNDNkXHUwNDM1XHUwNDNhXHUwNDNlXHUwNDNiXHUwNDNhXHUwNDQzIFx1MDQ0MVx1MDQzNVx1MDQzYVx1'@; put 'MDQ0M1x1MDQzZFx1MDQzNFx1MDQzOCIsc3M6IiVkIFx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQzOCIsbToiXHUwNDM1XHUwNDM0XHUwNDNkXHUwNDMwIFx1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQ0Mlx1MDQzMCIsbW06IiVkIFx1MDQzY1x1MDQzOFx1MDQz'@; put 'ZFx1MDQ0M1x1MDQ0Mlx1MDQzOCIsaDoiXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNkIFx1MDQ0N1x1MDQzMFx1MDQ0MSIsaGg6IiVkIFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQzMCIsZDoiXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNkIFx1MDQzNFx1MDQzNVx1MDQzZCIsZGQ6IiVkIFx1MDQzNFx1'@; put 'MDQzNVx1MDQzZFx1MDQzMCIsTToiXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNkIFx1MDQzY1x1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0NiIsTU06IiVkIFx1MDQzY1x1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0Nlx1MDQzOCIseToiXHUwNDM1XHUwNDM0XHUwNDNkXHUwNDMwIFx1MDQzM1x1MDQzZVx1'@; put 'MDQzNFx1MDQzOFx1MDQzZFx1MDQzMCIseXk6IiVkIFx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQzOCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0tKFx1MDQzNVx1MDQzMnxcdTA0MzVcdTA0M2R8XHUwNDQyXHUwNDM4fFx1MDQzMlx1MDQzOHxcdTA0NDBcdTA0'@; put 'Mzh8XHUwNDNjXHUwNDM4KS8sb3JkaW5hbDpmdW5jdGlvbihwKXt2YXIgTj1wJTEwLHc9cCUxMDA7cmV0dXJuIDA9PT1wP3ArIi1cdTA0MzVcdTA0MzIiOjA9PT13P3ArIi1cdTA0MzVcdTA0M2QiOnc+MTAmJnc8MjA/cCsiLVx1MDQ0Mlx1MDQzOCI6MT09PU4/cCsiLVx1MDQzMlx1MDQzOCI6'@; put 'Mj09PU4/cCsiLVx1MDQ0MFx1MDQzOCI6Nz09PU58fDg9PT1OP3ArIi1cdTA0M2NcdTA0MzgiOnArIi1cdTA0NDJcdTA0MzgifSx3ZWVrOntkb3c6MSxkb3k6N319KX0oYig5NzU4NikpfSwyMTEyNjpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7RC5kZWZpbmVM'@; put 'b2NhbGUoIm1sIix7bW9udGhzOiJcdTBkMWNcdTBkMjhcdTBkNDFcdTBkMzVcdTBkMzBcdTBkM2ZfXHUwZDJiXHUwZDQ2XHUwZDJjXHUwZDRkXHUwZDMwXHUwZDQxXHUwZDM1XHUwZDMwXHUwZDNmX1x1MGQyZVx1MGQzZVx1MGQ3Y1x1MGQxYVx1MGQ0ZFx1MGQxYVx1MGQ0ZF9cdTBkMGZcdTBk'@; put 'MmFcdTBkNGRcdTBkMzBcdTBkM2ZcdTBkN2RfXHUwZDJlXHUwZDQ3XHUwZDJmXHUwZDRkX1x1MGQxY1x1MGQ0Mlx1MGQ3YV9cdTBkMWNcdTBkNDJcdTBkMzJcdTBkNDhfXHUwZDEzXHUwZDE3XHUwZDM4XHUwZDRkXHUwZDMxXHUwZDRkXHUwZDMxXHUwZDRkX1x1MGQzOFx1MGQ0Nlx1MGQyYVx1'@; put 'MGQ0ZFx1MGQzMVx1MGQ0ZFx1MGQzMVx1MGQwMlx1MGQyY1x1MGQ3Y19cdTBkMTJcdTBkMTVcdTBkNGRcdTBkMWZcdTBkNGJcdTBkMmNcdTBkN2NfXHUwZDI4XHUwZDM1XHUwZDAyXHUwZDJjXHUwZDdjX1x1MGQyMVx1MGQzZlx1MGQzOFx1MGQwMlx1MGQyY1x1MGQ3YyIuc3BsaXQoIl8iKSxt'@; put 'b250aHNTaG9ydDoiXHUwZDFjXHUwZDI4XHUwZDQxLl9cdTBkMmJcdTBkNDZcdTBkMmNcdTBkNGRcdTBkMzBcdTBkNDEuX1x1MGQyZVx1MGQzZVx1MGQ3Yy5fXHUwZDBmXHUwZDJhXHUwZDRkXHUwZDMwXHUwZDNmLl9cdTBkMmVcdTBkNDdcdTBkMmZcdTBkNGRfXHUwZDFjXHUwZDQyXHUwZDdh'@; put 'X1x1MGQxY1x1MGQ0Mlx1MGQzMlx1MGQ0OC5fXHUwZDEzXHUwZDE3Ll9cdTBkMzhcdTBkNDZcdTBkMmFcdTBkNGRcdTBkMzFcdTBkNGRcdTBkMzEuX1x1MGQxMlx1MGQxNVx1MGQ0ZFx1MGQxZlx1MGQ0Yi5fXHUwZDI4XHUwZDM1XHUwZDAyLl9cdTBkMjFcdTBkM2ZcdTBkMzhcdTBkMDIuIi5z'@; put 'cGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Ilx1MGQxZVx1MGQzZVx1MGQyZlx1MGQzMVx1MGQzZVx1MGQzNFx1MGQ0ZFx1MGQxYV9cdTBkMjRcdTBkM2ZcdTBkMTlcdTBkNGRcdTBkMTVcdTBkMzNcdTBkM2VcdTBkMzRcdTBkNGRcdTBkMWFfXHUwZDFhXHUwZDRhXHUw'@; put 'ZDM1XHUwZDRkXHUwZDM1XHUwZDNlXHUwZDM0XHUwZDRkXHUwZDFhX1x1MGQyY1x1MGQ0MVx1MGQyN1x1MGQyOFx1MGQzZVx1MGQzNFx1MGQ0ZFx1MGQxYV9cdTBkMzVcdTBkNGRcdTBkMmZcdTBkM2VcdTBkMzRcdTBkM2VcdTBkMzRcdTBkNGRcdTBkMWFfXHUwZDM1XHUwZDQ2XHUwZDMzXHUw'@; put 'ZDRkXHUwZDMzXHUwZDNmXHUwZDJmXHUwZDNlXHUwZDM0XHUwZDRkXHUwZDFhX1x1MGQzNlx1MGQyOFx1MGQzZlx1MGQyZlx1MGQzZVx1MGQzNFx1MGQ0ZFx1MGQxYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTBkMWVcdTBkM2VcdTBkMmZcdTBkN2NfXHUwZDI0XHUwZDNmXHUwZDE5'@; put 'XHUwZDRkXHUwZDE1XHUwZDdlX1x1MGQxYVx1MGQ0YVx1MGQzNVx1MGQ0ZFx1MGQzNV9cdTBkMmNcdTBkNDFcdTBkMjdcdTBkN2JfXHUwZDM1XHUwZDRkXHUwZDJmXHUwZDNlXHUwZDM0XHUwZDAyX1x1MGQzNVx1MGQ0Nlx1MGQzM1x1MGQ0ZFx1MGQzM1x1MGQzZl9cdTBkMzZcdTBkMjhcdTBk'@; put 'M2YiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MGQxZVx1MGQzZV9cdTBkMjRcdTBkM2ZfXHUwZDFhXHUwZDRhX1x1MGQyY1x1MGQ0MV9cdTBkMzVcdTBkNGRcdTBkMmZcdTBkM2VfXHUwZDM1XHUwZDQ2X1x1MGQzNiIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkEgaDptbSAt'@; put 'XHUwZDI4XHUwZDQxIixMVFM6IkEgaDptbTpzcyAtXHUwZDI4XHUwZDQxIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVksIEEgaDptbSAtXHUwZDI4XHUwZDQxIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIC1cdTBkMjhcdTBkNDEifSxj'@; put 'YWxlbmRhcjp7c2FtZURheToiW1x1MGQwN1x1MGQyOFx1MGQ0ZFx1MGQyOFx1MGQ0ZF0gTFQiLG5leHREYXk6IltcdTBkMjhcdTBkM2VcdTBkMzNcdTBkNDZdIExUIixuZXh0V2VlazoiZGRkZCwgTFQiLGxhc3REYXk6IltcdTBkMDdcdTBkMjhcdTBkNGRcdTBkMjhcdTBkMzJcdTBkNDZdIExU'@; put 'IixsYXN0V2VlazoiW1x1MGQxNVx1MGQzNFx1MGQzZlx1MGQxZVx1MGQ0ZFx1MGQxZV0gZGRkZCwgTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIFx1MGQxNVx1MGQzNFx1MGQzZlx1MGQxZVx1MGQ0ZFx1MGQxZVx1MGQ0ZCIscGFzdDoiJXMgXHUwZDJlXHUwZDQx'@; put 'XHUwZDdiXHUwZDJhXHUwZDRkIixzOiJcdTBkMDVcdTBkN2RcdTBkMmEgXHUwZDI4XHUwZDNmXHUwZDJlXHUwZDNmXHUwZDM3XHUwZDE5XHUwZDRkXHUwZDE5XHUwZDdlIixzczoiJWQgXHUwZDM4XHUwZDQ2XHUwZDE1XHUwZDRkXHUwZDE1XHUwZDdiXHUwZDIxXHUwZDRkIixtOiJcdTBkMTJc'@; put 'dTBkMzBcdTBkNDEgXHUwZDJlXHUwZDNmXHUwZDI4XHUwZDNmXHUwZDMxXHUwZDRkXHUwZDMxXHUwZDRkIixtbToiJWQgXHUwZDJlXHUwZDNmXHUwZDI4XHUwZDNmXHUwZDMxXHUwZDRkXHUwZDMxXHUwZDRkIixoOiJcdTBkMTJcdTBkMzBcdTBkNDEgXHUwZDJlXHUwZDIzXHUwZDNmXHUwZDE1'@; put 'XHUwZDRkXHUwZDE1XHUwZDQyXHUwZDdjIixoaDoiJWQgXHUwZDJlXHUwZDIzXHUwZDNmXHUwZDE1XHUwZDRkXHUwZDE1XHUwZDQyXHUwZDdjIixkOiJcdTBkMTJcdTBkMzBcdTBkNDEgXHUwZDI2XHUwZDNmXHUwZDM1XHUwZDM4XHUwZDAyIixkZDoiJWQgXHUwZDI2XHUwZDNmXHUwZDM1XHUw'@; put 'ZDM4XHUwZDAyIixNOiJcdTBkMTJcdTBkMzBcdTBkNDEgXHUwZDJlXHUwZDNlXHUwZDM4XHUwZDAyIixNTToiJWQgXHUwZDJlXHUwZDNlXHUwZDM4XHUwZDAyIix5OiJcdTBkMTJcdTBkMzBcdTBkNDEgXHUwZDM1XHUwZDdjXHUwZDM3XHUwZDAyIix5eToiJWQgXHUwZDM1XHUwZDdjXHUwZDM3'@; put 'XHUwZDAyIn0sbWVyaWRpZW1QYXJzZTovXHUwZDMwXHUwZDNlXHUwZDI0XHUwZDRkXHUwZDMwXHUwZDNmfFx1MGQzMFx1MGQzZVx1MGQzNVx1MGQzZlx1MGQzMlx1MGQ0NnxcdTBkMDlcdTBkMWFcdTBkNGRcdTBkMWEgXHUwZDE1XHUwZDM0XHUwZDNmXHUwZDFlXHUwZDRkXHUwZDFlXHUwZDRk'@; put 'fFx1MGQzNVx1MGQ0OFx1MGQxNVx1MGQ0MVx1MGQyOFx1MGQ0ZFx1MGQyOFx1MGQ0N1x1MGQzMFx1MGQwMnxcdTBkMzBcdTBkM2VcdTBkMjRcdTBkNGRcdTBkMzBcdTBkM2YvaSxtZXJpZGllbUhvdXI6ZnVuY3Rpb24ocCxOKXtyZXR1cm4gMTI9PT1wJiYocD0wKSwiXHUwZDMwXHUwZDNlXHUw'@; put 'ZDI0XHUwZDRkXHUwZDMwXHUwZDNmIj09PU4mJnA+PTR8fCJcdTBkMDlcdTBkMWFcdTBkNGRcdTBkMWEgXHUwZDE1XHUwZDM0XHUwZDNmXHUwZDFlXHUwZDRkXHUwZDFlXHUwZDRkIj09PU58fCJcdTBkMzVcdTBkNDhcdTBkMTVcdTBkNDFcdTBkMjhcdTBkNGRcdTBkMjhcdTBkNDdcdTBkMzBc'@; put 'dTBkMDIiPT09Tj9wKzEyOnB9LG1lcmlkaWVtOmZ1bmN0aW9uKHAsTix3KXtyZXR1cm4gcDw0PyJcdTBkMzBcdTBkM2VcdTBkMjRcdTBkNGRcdTBkMzBcdTBkM2YiOnA8MTI/Ilx1MGQzMFx1MGQzZVx1MGQzNVx1MGQzZlx1MGQzMlx1MGQ0NiI6cDwxNz8iXHUwZDA5XHUwZDFhXHUwZDRkXHUw'@; put 'ZDFhIFx1MGQxNVx1MGQzNFx1MGQzZlx1MGQxZVx1MGQ0ZFx1MGQxZVx1MGQ0ZCI6cDwyMD8iXHUwZDM1XHUwZDQ4XHUwZDE1XHUwZDQxXHUwZDI4XHUwZDRkXHUwZDI4XHUwZDQ3XHUwZDMwXHUwZDAyIjoiXHUwZDMwXHUwZDNlXHUwZDI0XHUwZDRkXHUwZDMwXHUwZDNmIn19KX0oYig5NzU4'@; put 'NikpfSw0NDg5MjpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gXyhOLHcsRixIKXtzd2l0Y2goRil7Y2FzZSJzIjpyZXR1cm4gdz8iXHUwNDQ1XHUwNDRkXHUwNDM0XHUwNDQ1XHUwNDRkXHUwNDNkIFx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1'@; put 'MDQzZFx1MDQzNCI6Ilx1MDQ0NVx1MDQ0ZFx1MDQzNFx1MDQ0NVx1MDQ0ZFx1MDQzZCBcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0NGJcdTA0M2QiO2Nhc2Uic3MiOnJldHVybiBOKyh3PyIgXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0IjoiIFx1'@; put 'MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQ0Ylx1MDQzZCIpO2Nhc2UibSI6Y2FzZSJtbSI6cmV0dXJuIE4rKHc/IiBcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDIiOiIgXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDQyXHUwNDRiXHUwNDNkIik7Y2FzZSJo'@; put 'IjpjYXNlImhoIjpyZXR1cm4gTisodz8iIFx1MDQ0Nlx1MDQzMFx1MDQzMyI6IiBcdTA0NDZcdTA0MzBcdTA0MzNcdTA0MzhcdTA0MzlcdTA0M2QiKTtjYXNlImQiOmNhc2UiZGQiOnJldHVybiBOKyh3PyIgXHUwNGU5XHUwNDM0XHUwNGU5XHUwNDQwIjoiIFx1MDRlOVx1MDQzNFx1MDQ0MFx1'@; put 'MDQzOFx1MDQzOVx1MDQzZCIpO2Nhc2UiTSI6Y2FzZSJNTSI6cmV0dXJuIE4rKHc/IiBcdTA0NDFcdTA0MzBcdTA0NDAiOiIgXHUwNDQxXHUwNDMwXHUwNDQwXHUwNDRiXHUwNDNkIik7Y2FzZSJ5IjpjYXNlInl5IjpyZXR1cm4gTisodz8iIFx1MDQzNlx1MDQzOFx1MDQzYiI6IiBcdTA0MzZc'@; put 'dTA0MzhcdTA0M2JcdTA0MzhcdTA0MzlcdTA0M2QiKTtkZWZhdWx0OnJldHVybiBOfX1ELmRlZmluZUxvY2FsZSgibW4iLHttb250aHM6Ilx1MDQxZFx1MDQ0ZFx1MDQzM1x1MDQzNFx1MDRhZlx1MDQzM1x1MDQ0ZFx1MDQ0ZFx1MDQ0MCBcdTA0NDFcdTA0MzBcdTA0NDBfXHUwNDI1XHUwNDNl'@; put 'XHUwNDUxXHUwNDQwXHUwNDM0XHUwNDQzXHUwNDMzXHUwNDMwXHUwNDMwXHUwNDQwIFx1MDQ0MVx1MDQzMFx1MDQ0MF9cdTA0MTNcdTA0NDNcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzRcdTA0NDNcdTA0MzNcdTA0MzBcdTA0MzBcdTA0NDAgXHUwNDQxXHUwNDMwXHUwNDQwX1x1MDQxNFx1MDRl'@; put 'OVx1MDQ0MFx1MDRlOVx1MDQzMlx1MDQzNFx1MDRhZlx1MDQzM1x1MDQ0ZFx1MDQ0ZFx1MDQ0MCBcdTA0NDFcdTA0MzBcdTA0NDBfXHUwNDIyXHUwNDMwXHUwNDMyXHUwNDM0XHUwNDQzXHUwNDMzXHUwNDMwXHUwNDMwXHUwNDQwIFx1MDQ0MVx1MDQzMFx1MDQ0MF9cdTA0MTdcdTA0NDNcdTA0'@; put 'NDBcdTA0MzNcdTA0MzBcdTA0MzRcdTA0NDNcdTA0MzNcdTA0MzBcdTA0MzBcdTA0NDAgXHUwNDQxXHUwNDMwXHUwNDQwX1x1MDQxNFx1MDQzZVx1MDQzYlx1MDQzNFx1MDQ0M1x1MDQzM1x1MDQzMFx1MDQzMFx1MDQ0MCBcdTA0NDFcdTA0MzBcdTA0NDBfXHUwNDFkXHUwNDMwXHUwNDM5XHUw'@; put 'NDNjXHUwNDM0XHUwNDQzXHUwNDMzXHUwNDMwXHUwNDMwXHUwNDQwIFx1MDQ0MVx1MDQzMFx1MDQ0MF9cdTA0MTVcdTA0NDFcdTA0MzRcdTA0YWZcdTA0MzNcdTA0NGRcdTA0NGRcdTA0NDAgXHUwNDQxXHUwNDMwXHUwNDQwX1x1MDQxMFx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzNFx1MDQ0M1x1'@; put 'MDQzM1x1MDQzMFx1MDQzMFx1MDQ0MCBcdTA0NDFcdTA0MzBcdTA0NDBfXHUwNDEwXHUwNDQwXHUwNDMyXHUwNDMwXHUwNDNkIFx1MDQzZFx1MDQ0ZFx1MDQzM1x1MDQzNFx1MDRhZlx1MDQzM1x1MDQ0ZFx1MDQ0ZFx1MDQ0MCBcdTA0NDFcdTA0MzBcdTA0NDBfXHUwNDEwXHUwNDQwXHUwNDMy'@; put 'XHUwNDMwXHUwNDNkIFx1MDQ0NVx1MDQzZVx1MDQ1MVx1MDQ0MFx1MDQzNFx1MDQ0M1x1MDQzM1x1MDQzMFx1MDQzMFx1MDQ0MCBcdTA0NDFcdTA0MzBcdTA0NDAiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6IjEgXHUwNDQxXHUwNDMwXHUwNDQwXzIgXHUwNDQxXHUwNDMwXHUwNDQwXzMgXHUw'@; put 'NDQxXHUwNDMwXHUwNDQwXzQgXHUwNDQxXHUwNDMwXHUwNDQwXzUgXHUwNDQxXHUwNDMwXHUwNDQwXzYgXHUwNDQxXHUwNDMwXHUwNDQwXzcgXHUwNDQxXHUwNDMwXHUwNDQwXzggXHUwNDQxXHUwNDMwXHUwNDQwXzkgXHUwNDQxXHUwNDMwXHUwNDQwXzEwIFx1MDQ0MVx1MDQzMFx1MDQ0MF8x'@; put 'MSBcdTA0NDFcdTA0MzBcdTA0NDBfMTIgXHUwNDQxXHUwNDMwXHUwNDQwIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Ilx1MDQxZFx1MDQ0Zlx1MDQzY19cdTA0MTRcdTA0MzBcdTA0MzJcdTA0MzBcdTA0MzBfXHUwNDFjXHUwNDRmXHUwNDMzXHUwNDNjXHUwNDMw'@; put 'XHUwNDQwX1x1MDQxYlx1MDQ0NVx1MDQzMFx1MDQzM1x1MDQzMlx1MDQzMF9cdTA0MWZcdTA0YWZcdTA0NDBcdTA0NGRcdTA0MzJfXHUwNDExXHUwNDMwXHUwNDMwXHUwNDQxXHUwNDMwXHUwNDNkX1x1MDQxMVx1MDQ0Zlx1MDQzY1x1MDQzMVx1MDQzMCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1No'@; put 'b3J0OiJcdTA0MWRcdTA0NGZcdTA0M2NfXHUwNDE0XHUwNDMwXHUwNDMyX1x1MDQxY1x1MDQ0Zlx1MDQzM19cdTA0MWJcdTA0NDVcdTA0MzBfXHUwNDFmXHUwNGFmXHUwNDQwX1x1MDQxMVx1MDQzMFx1MDQzMF9cdTA0MTFcdTA0NGZcdTA0M2MiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1'@; put 'MDQxZFx1MDQ0Zl9cdTA0MTRcdTA0MzBfXHUwNDFjXHUwNDRmX1x1MDQxYlx1MDQ0NV9cdTA0MWZcdTA0YWZfXHUwNDExXHUwNDMwX1x1MDQxMVx1MDQ0ZiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIs'@; put 'TDoiWVlZWS1NTS1ERCIsTEw6IllZWVkgXHUwNDNlXHUwNDNkXHUwNDRiIE1NTU1cdTA0NGJcdTA0M2QgRCIsTExMOiJZWVlZIFx1MDQzZVx1MDQzZFx1MDQ0YiBNTU1NXHUwNDRiXHUwNDNkIEQgSEg6bW0iLExMTEw6ImRkZGQsIFlZWVkgXHUwNDNlXHUwNDNkXHUwNDRiIE1NTU1cdTA0NGJc'@; put 'dTA0M2QgRCBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1MDRhZVx1MDRlOHxcdTA0YWVcdTA0MjUvaSxpc1BNOmZ1bmN0aW9uKE4pe3JldHVybiJcdTA0YWVcdTA0MjUiPT09Tn0sbWVyaWRpZW06ZnVuY3Rpb24oTix3LEYpe3JldHVybiBOPDEyPyJcdTA0YWVcdTA0ZTgiOiJcdTA0YWVcdTA0'@; put 'MjUifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDRlOFx1MDQzZFx1MDRlOVx1MDRlOVx1MDQzNFx1MDRlOVx1MDQ0MF0gTFQiLG5leHREYXk6IltcdTA0MWNcdTA0MzBcdTA0NDBcdTA0MzNcdTA0MzBcdTA0MzBcdTA0NDhdIExUIixuZXh0V2VlazoiW1x1MDQxOFx1MDQ0MFx1MDQ0ZFx1MDQ0'@; put 'NV0gZGRkZCBMVCIsbGFzdERheToiW1x1MDRlOFx1MDQ0N1x1MDQzOFx1MDQzM1x1MDQzNFx1MDRlOVx1MDQ0MF0gTFQiLGxhc3RXZWVrOiJbXHUwNGU4XHUwNDNkXHUwNDMzXHUwNGU5XHUwNDQwXHUwNDQxXHUwNGU5XHUwNDNkXSBkZGRkIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGlt'@; put 'ZTp7ZnV0dXJlOiIlcyBcdTA0MzRcdTA0MzBcdTA0NDBcdTA0MzBcdTA0MzAiLHBhc3Q6IiVzIFx1MDRlOVx1MDQzY1x1MDQzZFx1MDRlOSIsczpfLHNzOl8sbTpfLG1tOl8saDpfLGhoOl8sZDpfLGRkOl8sTTpfLE1NOl8seTpfLHl5Ol99LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEs'@; put 'Mn0gXHUwNGU5XHUwNDM0XHUwNGU5XHUwNDQwLyxvcmRpbmFsOmZ1bmN0aW9uKE4sdyl7c3dpdGNoKHcpe2Nhc2UiZCI6Y2FzZSJEIjpjYXNlIkRERCI6cmV0dXJuIE4rIiBcdTA0ZTlcdTA0MzRcdTA0ZTlcdTA0NDAiO2RlZmF1bHQ6cmV0dXJuIE59fX0pfShiKDk3NTg2KSl9LDU5MDgwOmZ1'@; put 'bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0Ijt2YXIgXz17MToiXHUwOTY3IiwyOiJcdTA5NjgiLDM6Ilx1MDk2OSIsNDoiXHUwOTZhIiw1OiJcdTA5NmIiLDY6Ilx1MDk2YyIsNzoiXHUwOTZkIiw4OiJcdTA5NmUiLDk6Ilx1MDk2ZiIsMDoiXHUwOTY2In0scD17Ilx1'@; put 'MDk2NyI6IjEiLCJcdTA5NjgiOiIyIiwiXHUwOTY5IjoiMyIsIlx1MDk2YSI6IjQiLCJcdTA5NmIiOiI1IiwiXHUwOTZjIjoiNiIsIlx1MDk2ZCI6IjciLCJcdTA5NmUiOiI4IiwiXHUwOTZmIjoiOSIsIlx1MDk2NiI6IjAifTtmdW5jdGlvbiBOKEYsSCxSLGope3ZhciBQPSIiO2lmKEgpc3dp'@; put 'dGNoKFIpe2Nhc2UicyI6UD0iXHUwOTE1XHUwOTNlXHUwOTM5XHUwOTQwIFx1MDkzOFx1MDk0N1x1MDkxNVx1MDkwMlx1MDkyNiI7YnJlYWs7Y2FzZSJzcyI6UD0iJWQgXHUwOTM4XHUwOTQ3XHUwOTE1XHUwOTAyXHUwOTI2IjticmVhaztjYXNlIm0iOlA9Ilx1MDkwZlx1MDkxNSBcdTA5MmVc'@; put 'dTA5M2ZcdTA5MjhcdTA5M2ZcdTA5MWYiO2JyZWFrO2Nhc2UibW0iOlA9IiVkIFx1MDkyZVx1MDkzZlx1MDkyOFx1MDkzZlx1MDkxZlx1MDk0NyI7YnJlYWs7Y2FzZSJoIjpQPSJcdTA5MGZcdTA5MTUgXHUwOTI0XHUwOTNlXHUwOTM4IjticmVhaztjYXNlImhoIjpQPSIlZCBcdTA5MjRcdTA5'@; put 'M2VcdTA5MzgiO2JyZWFrO2Nhc2UiZCI6UD0iXHUwOTBmXHUwOTE1IFx1MDkyNlx1MDkzZlx1MDkzNVx1MDkzOCI7YnJlYWs7Y2FzZSJkZCI6UD0iJWQgXHUwOTI2XHUwOTNmXHUwOTM1XHUwOTM4IjticmVhaztjYXNlIk0iOlA9Ilx1MDkwZlx1MDkxNSBcdTA5MmVcdTA5MzlcdTA5M2ZcdTA5'@; put 'MjhcdTA5M2UiO2JyZWFrO2Nhc2UiTU0iOlA9IiVkIFx1MDkyZVx1MDkzOVx1MDkzZlx1MDkyOFx1MDk0NyI7YnJlYWs7Y2FzZSJ5IjpQPSJcdTA5MGZcdTA5MTUgXHUwOTM1XHUwOTMwXHUwOTRkXHUwOTM3IjticmVhaztjYXNlInl5IjpQPSIlZCBcdTA5MzVcdTA5MzBcdTA5NGRcdTA5Mzdc'@; put 'dTA5NDcifWVsc2Ugc3dpdGNoKFIpe2Nhc2UicyI6UD0iXHUwOTE1XHUwOTNlXHUwOTM5XHUwOTQwIFx1MDkzOFx1MDk0N1x1MDkxNVx1MDkwMlx1MDkyNlx1MDkzZVx1MDkwMiI7YnJlYWs7Y2FzZSJzcyI6UD0iJWQgXHUwOTM4XHUwOTQ3XHUwOTE1XHUwOTAyXHUwOTI2XHUwOTNlXHUwOTAy'@; put 'IjticmVhaztjYXNlIm0iOlA9Ilx1MDkwZlx1MDkxNVx1MDkzZSBcdTA5MmVcdTA5M2ZcdTA5MjhcdTA5M2ZcdTA5MWZcdTA5M2UiO2JyZWFrO2Nhc2UibW0iOlA9IiVkIFx1MDkyZVx1MDkzZlx1MDkyOFx1MDkzZlx1MDkxZlx1MDkzZVx1MDkwMiI7YnJlYWs7Y2FzZSJoIjpQPSJcdTA5MGZc'@; put 'dTA5MTVcdTA5M2UgXHUwOTI0XHUwOTNlXHUwOTM4XHUwOTNlIjticmVhaztjYXNlImhoIjpQPSIlZCBcdTA5MjRcdTA5M2VcdTA5MzhcdTA5M2VcdTA5MDIiO2JyZWFrO2Nhc2UiZCI6UD0iXHUwOTBmXHUwOTE1XHUwOTNlIFx1MDkyNlx1MDkzZlx1MDkzNVx1MDkzOFx1MDkzZSI7YnJlYWs7'@; put 'Y2FzZSJkZCI6UD0iJWQgXHUwOTI2XHUwOTNmXHUwOTM1XHUwOTM4XHUwOTNlXHUwOTAyIjticmVhaztjYXNlIk0iOlA9Ilx1MDkwZlx1MDkxNVx1MDkzZSBcdTA5MmVcdTA5MzlcdTA5M2ZcdTA5MjhcdTA5NGRcdTA5MmZcdTA5M2UiO2JyZWFrO2Nhc2UiTU0iOlA9IiVkIFx1MDkyZVx1MDkz'@; put 'OVx1MDkzZlx1MDkyOFx1MDk0ZFx1MDkyZlx1MDkzZVx1MDkwMiI7YnJlYWs7Y2FzZSJ5IjpQPSJcdTA5MGZcdTA5MTVcdTA5M2UgXHUwOTM1XHUwOTMwXHUwOTRkXHUwOTM3XHUwOTNlIjticmVhaztjYXNlInl5IjpQPSIlZCBcdTA5MzVcdTA5MzBcdTA5NGRcdTA5MzdcdTA5M2VcdTA5MDIi'@; put 'fXJldHVybiBQLnJlcGxhY2UoLyVkL2ksRil9RC5kZWZpbmVMb2NhbGUoIm1yIix7bW9udGhzOiJcdTA5MWNcdTA5M2VcdTA5MjhcdTA5NDdcdTA5MzVcdTA5M2VcdTA5MzBcdTA5NDBfXHUwOTJiXHUwOTQ3XHUwOTJjXHUwOTRkXHUwOTMwXHUwOTQxXHUwOTM1XHUwOTNlXHUwOTMwXHUwOTQw'@; put 'X1x1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYV9cdTA5MGZcdTA5MmFcdTA5NGRcdTA5MzBcdTA5M2ZcdTA5MzJfXHUwOTJlXHUwOTQ3X1x1MDkxY1x1MDk0Mlx1MDkyOF9cdTA5MWNcdTA5NDFcdTA5MzJcdTA5NDhfXHUwOTExXHUwOTE3XHUwOTM4XHUwOTRkXHUwOTFmX1x1MDkzOFx1'@; put 'MDkyYVx1MDk0ZFx1MDkxZlx1MDk0N1x1MDkwMlx1MDkyY1x1MDkzMF9cdTA5MTFcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NGJcdTA5MmNcdTA5MzBfXHUwOTI4XHUwOTRiXHUwOTM1XHUwOTRkXHUwOTM5XHUwOTQ3XHUwOTAyXHUwOTJjXHUwOTMwX1x1MDkyMVx1MDkzZlx1MDkzOFx1MDk0N1x1'@; put 'MDkwMlx1MDkyY1x1MDkzMCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwOTFjXHUwOTNlXHUwOTI4XHUwOTQ3Ll9cdTA5MmJcdTA5NDdcdTA5MmNcdTA5NGRcdTA5MzBcdTA5NDEuX1x1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYS5fXHUwOTBmXHUwOTJhXHUwOTRkXHUwOTMwXHUw'@; put 'OTNmLl9cdTA5MmVcdTA5NDcuX1x1MDkxY1x1MDk0Mlx1MDkyOC5fXHUwOTFjXHUwOTQxXHUwOTMyXHUwOTQ4Ll9cdTA5MTFcdTA5MTcuX1x1MDkzOFx1MDkyYVx1MDk0ZFx1MDkxZlx1MDk0N1x1MDkwMi5fXHUwOTExXHUwOTE1XHUwOTRkXHUwOTFmXHUwOTRiLl9cdTA5MjhcdTA5NGJcdTA5'@; put 'MzVcdTA5NGRcdTA5MzlcdTA5NDdcdTA5MDIuX1x1MDkyMVx1MDkzZlx1MDkzOFx1MDk0N1x1MDkwMi4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiXHUwOTMwXHUwOTM1XHUwOTNmXHUwOTM1XHUwOTNlXHUwOTMwX1x1MDkzOFx1MDk0Ylx1MDkyZVx1MDkzNVx1'@; put 'MDkzZVx1MDkzMF9cdTA5MmVcdTA5MDJcdTA5MTdcdTA5MzNcdTA5MzVcdTA5M2VcdTA5MzBfXHUwOTJjXHUwOTQxXHUwOTI3XHUwOTM1XHUwOTNlXHUwOTMwX1x1MDkxN1x1MDk0MVx1MDkzMFx1MDk0Mlx1MDkzNVx1MDkzZVx1MDkzMF9cdTA5MzZcdTA5NDFcdTA5MTVcdTA5NGRcdTA5MzBc'@; put 'dTA5MzVcdTA5M2VcdTA5MzBfXHUwOTM2XHUwOTI4XHUwOTNmXHUwOTM1XHUwOTNlXHUwOTMwIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDkzMFx1MDkzNVx1MDkzZl9cdTA5MzhcdTA5NGJcdTA5MmVfXHUwOTJlXHUwOTAyXHUwOTE3XHUwOTMzX1x1MDkyY1x1MDk0MVx1MDkyN19c'@; put 'dTA5MTdcdTA5NDFcdTA5MzBcdTA5NDJfXHUwOTM2XHUwOTQxXHUwOTE1XHUwOTRkXHUwOTMwX1x1MDkzNlx1MDkyOFx1MDkzZiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwOTMwX1x1MDkzOFx1MDk0Yl9cdTA5MmVcdTA5MDJfXHUwOTJjXHUwOTQxX1x1MDkxN1x1MDk0MV9cdTA5MzZc'@; put 'dTA5NDFfXHUwOTM2Ii5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiQSBoOm1tIFx1MDkzNVx1MDkzZVx1MDkxY1x1MDkyNFx1MDkzZSIsTFRTOiJBIGg6bW06c3MgXHUwOTM1XHUwOTNlXHUwOTFjXHUwOTI0XHUwOTNlIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExM'@; put 'TDoiRCBNTU1NIFlZWVksIEEgaDptbSBcdTA5MzVcdTA5M2VcdTA5MWNcdTA5MjRcdTA5M2UiLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0gXHUwOTM1XHUwOTNlXHUwOTFjXHUwOTI0XHUwOTNlIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA5MDZcdTA5MWNdIExUIixuZXh0RGF5'@; put 'OiJbXHUwOTA5XHUwOTI2XHUwOTRkXHUwOTJmXHUwOTNlXSBMVCIsbmV4dFdlZWs6ImRkZGQsIExUIixsYXN0RGF5OiJbXHUwOTE1XHUwOTNlXHUwOTMyXSBMVCIsbGFzdFdlZWs6IltcdTA5MmVcdTA5M2VcdTA5MTdcdTA5NDBcdTA5MzJdIGRkZGQsIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0'@; put 'aXZlVGltZTp7ZnV0dXJlOiIlc1x1MDkyZVx1MDkyN1x1MDk0ZFx1MDkyZlx1MDk0NyIscGFzdDoiJXNcdTA5MmFcdTA5NDJcdTA5MzBcdTA5NGRcdTA5MzVcdTA5NDAiLHM6TixzczpOLG06TixtbTpOLGg6TixoaDpOLGQ6TixkZDpOLE06TixNTTpOLHk6Tix5eTpOfSxwcmVwYXJzZTpmdW5j'@; put 'dGlvbihGKXtyZXR1cm4gRi5yZXBsYWNlKC9bXHUwOTY3XHUwOTY4XHUwOTY5XHUwOTZhXHUwOTZiXHUwOTZjXHUwOTZkXHUwOTZlXHUwOTZmXHUwOTY2XS9nLGZ1bmN0aW9uKEgpe3JldHVybiBwW0hdfSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oRil7cmV0dXJuIEYucmVwbGFjZSgvXGQvZyxm'@; put 'dW5jdGlvbihIKXtyZXR1cm4gX1tIXX0pfSxtZXJpZGllbVBhcnNlOi9cdTA5MmFcdTA5MzlcdTA5M2VcdTA5MWZcdTA5NDd8XHUwOTM4XHUwOTE1XHUwOTNlXHUwOTMzXHUwOTQwfFx1MDkyNlx1MDk0MVx1MDkyYVx1MDkzZVx1MDkzMFx1MDk0MHxcdTA5MzhcdTA5M2VcdTA5MmZcdTA5MDJc'@; put 'dTA5MTVcdTA5M2VcdTA5MzNcdTA5NDB8XHUwOTMwXHUwOTNlXHUwOTI0XHUwOTRkXHUwOTMwXHUwOTQwLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oRixIKXtyZXR1cm4gMTI9PT1GJiYoRj0wKSwiXHUwOTJhXHUwOTM5XHUwOTNlXHUwOTFmXHUwOTQ3Ij09PUh8fCJcdTA5MzhcdTA5MTVcdTA5'@; put 'M2VcdTA5MzNcdTA5NDAiPT09SD9GOiJcdTA5MjZcdTA5NDFcdTA5MmFcdTA5M2VcdTA5MzBcdTA5NDAiPT09SHx8Ilx1MDkzOFx1MDkzZVx1MDkyZlx1MDkwMlx1MDkxNVx1MDkzZVx1MDkzM1x1MDk0MCI9PT1IfHwiXHUwOTMwXHUwOTNlXHUwOTI0XHUwOTRkXHUwOTMwXHUwOTQwIj09PUg/'@; put 'Rj49MTI/RjpGKzEyOnZvaWQgMH0sbWVyaWRpZW06ZnVuY3Rpb24oRixILFIpe3JldHVybiBGPj0wJiZGPDY/Ilx1MDkyYVx1MDkzOVx1MDkzZVx1MDkxZlx1MDk0NyI6RjwxMj8iXHUwOTM4XHUwOTE1XHUwOTNlXHUwOTMzXHUwOTQwIjpGPDE3PyJcdTA5MjZcdTA5NDFcdTA5MmFcdTA5M2Vc'@; put 'dTA5MzBcdTA5NDAiOkY8MjA/Ilx1MDkzOFx1MDkzZVx1MDkyZlx1MDkwMlx1MDkxNVx1MDkzZVx1MDkzM1x1MDk0MCI6Ilx1MDkzMFx1MDkzZVx1MDkyNFx1MDk0ZFx1MDkzMFx1MDk0MCJ9LHdlZWs6e2RvdzowLGRveTo2fX0pfShiKDk3NTg2KSl9LDI1OTUwOmZ1bmN0aW9uKGNlLEosYil7'@; put 'IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0IjtELmRlZmluZUxvY2FsZSgibXMtbXkiLHttb250aHM6IkphbnVhcmlfRmVicnVhcmlfTWFjX0FwcmlsX01laV9KdW5fSnVsYWlfT2dvc19TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3ZlbWJlcl9EaXNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoi'@; put 'SmFuX0ZlYl9NYWNfQXByX01laV9KdW5fSnVsX09nc19TZXBfT2t0X05vdl9EaXMiLnNwbGl0KCJfIiksd2Vla2RheXM6IkFoYWRfSXNuaW5fU2VsYXNhX1JhYnVfS2hhbWlzX0p1bWFhdF9TYWJ0dSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJBaGRfSXNuX1NlbF9SYWJfS2hhX0p1bV9T'@; put 'YWIiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IkFoX0lzX1NsX1JiX0ttX0ptX1NiIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEgubW0iLExUUzoiSEgubW0uc3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBbcHVrdWxdIEhILm1t'@; put 'IixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBbcHVrdWxdIEhILm1tIn0sbWVyaWRpZW1QYXJzZTovcGFnaXx0ZW5nYWhhcml8cGV0YW5nfG1hbGFtLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24ocCxOKXtyZXR1cm4gMTI9PT1wJiYocD0wKSwicGFnaSI9PT1OP3A6InRlbmdhaGFyaSI9PT1OP3A+'@; put 'PTExP3A6cCsxMjoicGV0YW5nIj09PU58fCJtYWxhbSI9PT1OP3ArMTI6dm9pZCAwfSxtZXJpZGllbTpmdW5jdGlvbihwLE4sdyl7cmV0dXJuIHA8MTE/InBhZ2kiOnA8MTU/InRlbmdhaGFyaSI6cDwxOT8icGV0YW5nIjoibWFsYW0ifSxjYWxlbmRhcjp7c2FtZURheToiW0hhcmkgaW5pIHB1'@; put 'a3VsXSBMVCIsbmV4dERheToiW0Vzb2sgcHVrdWxdIExUIixuZXh0V2VlazoiZGRkZCBbcHVrdWxdIExUIixsYXN0RGF5OiJbS2VsbWFyaW4gcHVrdWxdIExUIixsYXN0V2VlazoiZGRkZCBbbGVwYXMgcHVrdWxdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJkYWxh'@; put 'bSAlcyIscGFzdDoiJXMgeWFuZyBsZXBhcyIsczoiYmViZXJhcGEgc2FhdCIsc3M6IiVkIHNhYXQiLG06InNlbWluaXQiLG1tOiIlZCBtaW5pdCIsaDoic2VqYW0iLGhoOiIlZCBqYW0iLGQ6InNlaGFyaSIsZGQ6IiVkIGhhcmkiLE06InNlYnVsYW4iLE1NOiIlZCBidWxhbiIseToic2V0YWh1'@; put 'biIseXk6IiVkIHRhaHVuIn0sd2Vlazp7ZG93OjEsZG95Ojd9fSl9KGIoOTc1ODYpKX0sNzAzOTk6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO0QuZGVmaW5lTG9jYWxlKCJtcyIse21vbnRoczoiSmFudWFyaV9GZWJydWFyaV9NYWNfQXByaWxfTWVpX0p1bl9K'@; put 'dWxhaV9PZ29zX1NlcHRlbWJlcl9Pa3RvYmVyX05vdmVtYmVyX0Rpc2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fRmViX01hY19BcHJfTWVpX0p1bl9KdWxfT2dzX1NlcF9Pa3RfTm92X0RpcyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiQWhhZF9Jc25pbl9TZWxhc2FfUmFidV9L'@; put 'aGFtaXNfSnVtYWF0X1NhYnR1Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IkFoZF9Jc25fU2VsX1JhYl9LaGFfSnVtX1NhYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiQWhfSXNfU2xfUmJfS21fSm1fU2IiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISC5tbSIsTFRTOiJI'@; put 'SC5tbS5zcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIFtwdWt1bF0gSEgubW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIFtwdWt1bF0gSEgubW0ifSxtZXJpZGllbVBhcnNlOi9wYWdpfHRlbmdhaGFyaXxwZXRhbmd8bWFsYW0vLG1lcmlkaWVt'@; put 'SG91cjpmdW5jdGlvbihwLE4pe3JldHVybiAxMj09PXAmJihwPTApLCJwYWdpIj09PU4/cDoidGVuZ2FoYXJpIj09PU4/cD49MTE/cDpwKzEyOiJwZXRhbmciPT09Tnx8Im1hbGFtIj09PU4/cCsxMjp2b2lkIDB9LG1lcmlkaWVtOmZ1bmN0aW9uKHAsTix3KXtyZXR1cm4gcDwxMT8icGFnaSI6'@; put 'cDwxNT8idGVuZ2FoYXJpIjpwPDE5PyJwZXRhbmciOiJtYWxhbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbSGFyaSBpbmkgcHVrdWxdIExUIixuZXh0RGF5OiJbRXNvayBwdWt1bF0gTFQiLG5leHRXZWVrOiJkZGRkIFtwdWt1bF0gTFQiLGxhc3REYXk6IltLZWxtYXJpbiBwdWt1bF0gTFQiLGxh'@; put 'c3RXZWVrOiJkZGRkIFtsZXBhcyBwdWt1bF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImRhbGFtICVzIixwYXN0OiIlcyB5YW5nIGxlcGFzIixzOiJiZWJlcmFwYSBzYWF0IixzczoiJWQgc2FhdCIsbToic2VtaW5pdCIsbW06IiVkIG1pbml0IixoOiJzZWphbSIs'@; put 'aGg6IiVkIGphbSIsZDoic2VoYXJpIixkZDoiJWQgaGFyaSIsTToic2VidWxhbiIsTU06IiVkIGJ1bGFuIix5OiJzZXRhaHVuIix5eToiJWQgdGFodW4ifSx3ZWVrOntkb3c6MSxkb3k6N319KX0oYig5NzU4NikpfSw3OTkwMjpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0'@; put 'cmljdCI7RC5kZWZpbmVMb2NhbGUoIm10Iix7bW9udGhzOiJKYW5uYXJfRnJhcl9NYXJ6dV9BcHJpbF9NZWpqdV9cdTAxMjB1bmp1X0x1bGp1X0F3d2lzc3VfU2V0dGVtYnJ1X090dHVicnVfTm92ZW1icnVfRGlcdTAxMGJlbWJydSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFuX0ZyYV9N'@; put 'YXJfQXByX01lal9cdTAxMjB1bl9MdWxfQXd3X1NldF9PdHRfTm92X0RpXHUwMTBiIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJJbC1cdTAxMjZhZGRfSXQtVG5lam5fSXQtVGxpZXRhX0wtRXJiZ1x1MDEyN2FfSWwtXHUwMTI2YW1pc19JbC1cdTAxMjBpbWdcdTAxMjdhX0lzLVNpYnQiLnNwbGl0'@; put 'KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwMTI2YWRfVG5lX1RsaV9FcmJfXHUwMTI2YW1fXHUwMTIwaW1fU2liIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTAxMjZhX1RuX1RsX0VyX1x1MDEyNmFfXHUwMTIwaV9TaSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixM'@; put 'VFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltJbGx1bSBmaWwtXUxUIixuZXh0RGF5OiJbR1x1MDEyN2FkYSBmaWwtXUxU'@; put 'IixuZXh0V2VlazoiZGRkZCBbZmlsLV1MVCIsbGFzdERheToiW0lsLWJpZXJhXHUwMTI3IGZpbC1dTFQiLGxhc3RXZWVrOiJkZGRkIFtsaSBnXHUwMTI3YWRkYV0gW2ZpbC1dTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImZcdTIwMTkgJXMiLHBhc3Q6IiVzIGlsdSIs'@; put 'czoiZnRpdCBzZWtvbmRpIixzczoiJWQgc2Vrb25kaSIsbToibWludXRhIixtbToiJWQgbWludXRpIixoOiJzaWVnXHUwMTI3YSIsaGg6IiVkIHNpZWdcdTAxMjdhdCIsZDoiXHUwMTIxdXJuYXRhIixkZDoiJWQgXHUwMTIxcmFuZXQiLE06InhhaGFyIixNTToiJWQgeGh1ciIseToic2VuYSIs'@; put 'eXk6IiVkIHNuaSJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1ceGJhLyxvcmRpbmFsOiIlZFx4YmEiLHdlZWs6e2RvdzoxLGRveTo0fX0pfShiKDk3NTg2KSl9LDcyOTg1OmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0Ijt2YXIgXz17MToiXHUxMDQx'@; put 'IiwyOiJcdTEwNDIiLDM6Ilx1MTA0MyIsNDoiXHUxMDQ0Iiw1OiJcdTEwNDUiLDY6Ilx1MTA0NiIsNzoiXHUxMDQ3Iiw4OiJcdTEwNDgiLDk6Ilx1MTA0OSIsMDoiXHUxMDQwIn0scD17Ilx1MTA0MSI6IjEiLCJcdTEwNDIiOiIyIiwiXHUxMDQzIjoiMyIsIlx1MTA0NCI6IjQiLCJcdTEwNDUi'@; put 'OiI1IiwiXHUxMDQ2IjoiNiIsIlx1MTA0NyI6IjciLCJcdTEwNDgiOiI4IiwiXHUxMDQ5IjoiOSIsIlx1MTA0MCI6IjAifTtELmRlZmluZUxvY2FsZSgibXkiLHttb250aHM6Ilx1MTAwN1x1MTAxNFx1MTAzYVx1MTAxNFx1MTAxZFx1MTAyYlx1MTAxYlx1MTAyZV9cdTEwMTZcdTEwMzFcdTEw'@; put 'MTZcdTEwMzFcdTEwMmNcdTEwM2FcdTEwMWRcdTEwMmJcdTEwMWJcdTEwMmVfXHUxMDE5XHUxMDEwXHUxMDNhX1x1MTAyN1x1MTAxNVx1MTAzY1x1MTAyZV9cdTEwMTlcdTEwMzFfXHUxMDA3XHUxMDNkXHUxMDE0XHUxMDNhX1x1MTAwN1x1MTAzMFx1MTAxY1x1MTAyZFx1MTAyZlx1MTAwNFx1'@; put 'MTAzYV9cdTEwMWVcdTEwM2NcdTEwMDJcdTEwMmZcdTEwMTBcdTEwM2FfXHUxMDA1XHUxMDAwXHUxMDNhXHUxMDEwXHUxMDA0XHUxMDNhXHUxMDE4XHUxMDJjX1x1MTAyMVx1MTAzMVx1MTAyY1x1MTAwMFx1MTAzYVx1MTAxMFx1MTAyZFx1MTAyZlx1MTAxOFx1MTAyY19cdTEwMTRcdTEwMmRc'@; put 'dTEwMmZcdTEwMWRcdTEwMDRcdTEwM2FcdTEwMThcdTEwMmNfXHUxMDEyXHUxMDJlXHUxMDA3XHUxMDA0XHUxMDNhXHUxMDE4XHUxMDJjIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTEwMDdcdTEwMTRcdTEwM2FfXHUxMDE2XHUxMDMxX1x1MTAxOVx1MTAxMFx1MTAzYV9cdTEwMTVcdTEw'@; put 'M2NcdTEwMmVfXHUxMDE5XHUxMDMxX1x1MTAwN1x1MTAzZFx1MTAxNFx1MTAzYV9cdTEwMWNcdTEwMmRcdTEwMmZcdTEwMDRcdTEwM2FfXHUxMDFlXHUxMDNjX1x1MTAwNVx1MTAwMFx1MTAzYV9cdTEwMjFcdTEwMzFcdTEwMmNcdTEwMDBcdTEwM2FfXHUxMDE0XHUxMDJkXHUxMDJmX1x1MTAx'@; put 'Mlx1MTAyZSIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUxMDEwXHUxMDE0XHUxMDA0XHUxMDNhXHUxMDM5XHUxMDAyXHUxMDE0XHUxMDNkXHUxMDMxX1x1MTAxMFx1MTAxNFx1MTAwNFx1MTAzYVx1MTAzOVx1MTAxY1x1MTAyY19cdTEwMjFcdTEwMDRcdTEwM2FcdTEwMzlcdTEwMDJcdTEwMmJf'@; put 'XHUxMDE3XHUxMDJmXHUxMDEyXHUxMDM5XHUxMDEzXHUxMDFmXHUxMDMwXHUxMDM4X1x1MTAwMFx1MTAzY1x1MTAyY1x1MTAxZVx1MTAxNVx1MTAxMFx1MTAzMVx1MTAzOF9cdTEwMWVcdTEwMzFcdTEwMmNcdTEwMDBcdTEwM2NcdTEwMmNfXHUxMDA1XHUxMDE0XHUxMDMxIi5zcGxpdCgiXyIp'@; put 'LHdlZWtkYXlzU2hvcnQ6Ilx1MTAxNFx1MTAzZFx1MTAzMV9cdTEwMWNcdTEwMmNfXHUxMDAyXHUxMDJiX1x1MTAxZlx1MTAzMFx1MTAzOF9cdTEwMDBcdTEwM2NcdTEwMmNfXHUxMDFlXHUxMDMxXHUxMDJjX1x1MTAxNFx1MTAzMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUxMDE0XHUx'@; put 'MDNkXHUxMDMxX1x1MTAxY1x1MTAyY19cdTEwMDJcdTEwMmJfXHUxMDFmXHUxMDMwXHUxMDM4X1x1MTAwMFx1MTAzY1x1MTAyY19cdTEwMWVcdTEwMzFcdTEwMmNfXHUxMDE0XHUxMDMxIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRE'@; put 'L01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUxMDFhXHUxMDE0XHUxMDMxLl0gTFQgW1x1MTAxOVx1MTAzZVx1MTAyY10iLG5leHREYXk6IltcdTEwMTlc'@; put 'dTEwMTRcdTEwMDBcdTEwM2FcdTEwMTZcdTEwM2NcdTEwMTRcdTEwM2FdIExUIFtcdTEwMTlcdTEwM2VcdTEwMmNdIixuZXh0V2VlazoiZGRkZCBMVCBbXHUxMDE5XHUxMDNlXHUxMDJjXSIsbGFzdERheToiW1x1MTAxOVx1MTAxNFx1MTAzMS5cdTEwMDBdIExUIFtcdTEwMTlcdTEwM2VcdTEw'@; put 'MmNdIixsYXN0V2VlazoiW1x1MTAxNVx1MTAzY1x1MTAyZVx1MTAzOFx1MTAwMVx1MTAzMlx1MTAzN1x1MTAxZVx1MTAzMVx1MTAyY10gZGRkZCBMVCBbXHUxMDE5XHUxMDNlXHUxMDJjXSIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUxMDFjXHUxMDJjXHUxMDE5XHUx'@; put 'MDBhXHUxMDNhXHUxMDM3ICVzIFx1MTAxOVx1MTAzZVx1MTAyYyIscGFzdDoiXHUxMDFjXHUxMDNkXHUxMDE0XHUxMDNhXHUxMDAxXHUxMDMyXHUxMDM3XHUxMDFlXHUxMDMxXHUxMDJjICVzIFx1MTAwMCIsczoiXHUxMDA1XHUxMDAwXHUxMDM5XHUxMDAwXHUxMDE0XHUxMDNhLlx1MTAyMVx1'@; put 'MTAxNFx1MTAwYVx1MTAzYVx1MTAzOFx1MTAwNFx1MTAxYVx1MTAzYSIsc3M6IiVkIFx1MTAwNVx1MTAwMFx1MTAzOVx1MTAwMFx1MTAxNFx1MTAzN1x1MTAzYSIsbToiXHUxMDEwXHUxMDA1XHUxMDNhXHUxMDE5XHUxMDJkXHUxMDE0XHUxMDA1XHUxMDNhIixtbToiJWQgXHUxMDE5XHUxMDJk'@; put 'XHUxMDE0XHUxMDA1XHUxMDNhIixoOiJcdTEwMTBcdTEwMDVcdTEwM2FcdTEwMTRcdTEwMmNcdTEwMWJcdTEwMmUiLGhoOiIlZCBcdTEwMTRcdTEwMmNcdTEwMWJcdTEwMmUiLGQ6Ilx1MTAxMFx1MTAwNVx1MTAzYVx1MTAxYlx1MTAwMFx1MTAzYSIsZGQ6IiVkIFx1MTAxYlx1MTAwMFx1MTAz'@; put 'YSIsTToiXHUxMDEwXHUxMDA1XHUxMDNhXHUxMDFjIixNTToiJWQgXHUxMDFjIix5OiJcdTEwMTBcdTEwMDVcdTEwM2FcdTEwMTRcdTEwM2VcdTEwMDVcdTEwM2EiLHl5OiIlZCBcdTEwMTRcdTEwM2VcdTEwMDVcdTEwM2EifSxwcmVwYXJzZTpmdW5jdGlvbih3KXtyZXR1cm4gdy5yZXBsYWNl'@; put 'KC9bXHUxMDQxXHUxMDQyXHUxMDQzXHUxMDQ0XHUxMDQ1XHUxMDQ2XHUxMDQ3XHUxMDQ4XHUxMDQ5XHUxMDQwXS9nLGZ1bmN0aW9uKEYpe3JldHVybiBwW0ZdfSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24odyl7cmV0dXJuIHcucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihGKXtyZXR1cm4gX1tGXX0p'@; put 'fSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oYig5NzU4NikpfSw2Nzg1OTpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7RC5kZWZpbmVMb2NhbGUoIm5iIix7bW9udGhzOiJqYW51YXJfZmVicnVhcl9tYXJzX2FwcmlsX21haV9qdW5pX2p1bGlfYXVndXN0X3NlcHRl'@; put 'bWJlcl9va3RvYmVyX25vdmVtYmVyX2Rlc2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJqYW4uX2ZlYi5fbWFyc19hcHIuX21haV9qdW5pX2p1bGlfYXVnLl9zZXAuX29rdC5fbm92Ll9kZXMuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6InNceGY4bmRh'@; put 'Z19tYW5kYWdfdGlyc2RhZ19vbnNkYWdfdG9yc2RhZ19mcmVkYWdfbFx4ZjhyZGFnIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6InNceGY4Ll9tYS5fdGkuX29uLl90by5fZnIuX2xceGY4LiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoic1x4ZjhfbWFfdGlfb25fdG9fZnJfbFx4ZjgiLnNw'@; put 'bGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJELiBNTU1NIFlZWVkiLExMTDoiRC4gTU1NTSBZWVlZIFtrbC5dIEhIOm1tIixMTExMOiJkZGRkIEQuIE1NTU0gWVlZWSBba2wu'@; put 'XSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbaSBkYWcga2wuXSBMVCIsbmV4dERheToiW2kgbW9yZ2VuIGtsLl0gTFQiLG5leHRXZWVrOiJkZGRkIFtrbC5dIExUIixsYXN0RGF5OiJbaSBnXHhlNXIga2wuXSBMVCIsbGFzdFdlZWs6Iltmb3JyaWdlXSBkZGRkIFtrbC5dIExUIixzYW1l'@; put 'RWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJvbSAlcyIscGFzdDoiJXMgc2lkZW4iLHM6Im5vZW4gc2VrdW5kZXIiLHNzOiIlZCBzZWt1bmRlciIsbToiZXR0IG1pbnV0dCIsbW06IiVkIG1pbnV0dGVyIixoOiJceGU5biB0aW1lIixoaDoiJWQgdGltZXIiLGQ6Ilx4ZTluIGRhZyIs'@; put 'ZGQ6IiVkIGRhZ2VyIix3OiJceGU5biB1a2UiLHd3OiIlZCB1a2VyIixNOiJceGU5biBtXHhlNW5lZCIsTU06IiVkIG1ceGU1bmVkZXIiLHk6ImV0dCBceGU1ciIseXk6IiVkIFx4ZTVyIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2Rv'@; put 'dzoxLGRveTo0fX0pfShiKDk3NTg2KSl9LDEzNjQyOmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0Ijt2YXIgXz17MToiXHUwOTY3IiwyOiJcdTA5NjgiLDM6Ilx1MDk2OSIsNDoiXHUwOTZhIiw1OiJcdTA5NmIiLDY6Ilx1MDk2YyIsNzoiXHUwOTZkIiw4OiJcdTA5'@; put 'NmUiLDk6Ilx1MDk2ZiIsMDoiXHUwOTY2In0scD17Ilx1MDk2NyI6IjEiLCJcdTA5NjgiOiIyIiwiXHUwOTY5IjoiMyIsIlx1MDk2YSI6IjQiLCJcdTA5NmIiOiI1IiwiXHUwOTZjIjoiNiIsIlx1MDk2ZCI6IjciLCJcdTA5NmUiOiI4IiwiXHUwOTZmIjoiOSIsIlx1MDk2NiI6IjAifTtELmRl'@; put 'ZmluZUxvY2FsZSgibmUiLHttb250aHM6Ilx1MDkxY1x1MDkyOFx1MDkzNVx1MDkzMFx1MDk0MF9cdTA5MmJcdTA5NDdcdTA5MmNcdTA5NGRcdTA5MzBcdTA5NDFcdTA5MzVcdTA5MzBcdTA5NDBfXHUwOTJlXHUwOTNlXHUwOTMwXHUwOTRkXHUwOTFhX1x1MDkwNVx1MDkyYVx1MDk0ZFx1MDkz'@; put 'MFx1MDkzZlx1MDkzMl9cdTA5MmVcdTA5MDhfXHUwOTFjXHUwOTQxXHUwOTI4X1x1MDkxY1x1MDk0MVx1MDkzMlx1MDkzZVx1MDkwOF9cdTA5MDVcdTA5MTdcdTA5MzdcdTA5NGRcdTA5MWZfXHUwOTM4XHUwOTQ3XHUwOTJhXHUwOTRkXHUwOTFmXHUwOTQ3XHUwOTJlXHUwOTRkXHUwOTJjXHUw'@; put 'OTMwX1x1MDkwNVx1MDkxNVx1MDk0ZFx1MDkxZlx1MDk0Ylx1MDkyY1x1MDkzMF9cdTA5MjhcdTA5NGJcdTA5MmRcdTA5NDdcdTA5MmVcdTA5NGRcdTA5MmNcdTA5MzBfXHUwOTIxXHUwOTNmXHUwOTM4XHUwOTQ3XHUwOTJlXHUwOTRkXHUwOTJjXHUwOTMwIi5zcGxpdCgiXyIpLG1vbnRoc1No'@; put 'b3J0OiJcdTA5MWNcdTA5MjguX1x1MDkyYlx1MDk0N1x1MDkyY1x1MDk0ZFx1MDkzMFx1MDk0MS5fXHUwOTJlXHUwOTNlXHUwOTMwXHUwOTRkXHUwOTFhX1x1MDkwNVx1MDkyYVx1MDk0ZFx1MDkzMFx1MDkzZi5fXHUwOTJlXHUwOTA4X1x1MDkxY1x1MDk0MVx1MDkyOF9cdTA5MWNcdTA5NDFc'@; put 'dTA5MzJcdTA5M2VcdTA5MDguX1x1MDkwNVx1MDkxNy5fXHUwOTM4XHUwOTQ3XHUwOTJhXHUwOTRkXHUwOTFmLl9cdTA5MDVcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NGIuX1x1MDkyOFx1MDk0Ylx1MDkyZFx1MDk0Ny5fXHUwOTIxXHUwOTNmXHUwOTM4XHUwOTQ3LiIuc3BsaXQoIl8iKSxtb250'@; put 'aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJcdTA5MDZcdTA5MDdcdTA5MjRcdTA5MmNcdTA5M2VcdTA5MzBfXHUwOTM4XHUwOTRiXHUwOTJlXHUwOTJjXHUwOTNlXHUwOTMwX1x1MDkyZVx1MDkxOVx1MDk0ZFx1MDkxN1x1MDkzMlx1MDkyY1x1MDkzZVx1MDkzMF9cdTA5MmNcdTA5NDFcdTA5'@; put 'MjdcdTA5MmNcdTA5M2VcdTA5MzBfXHUwOTJjXHUwOTNmXHUwOTM5XHUwOTNmXHUwOTJjXHUwOTNlXHUwOTMwX1x1MDkzNlx1MDk0MVx1MDkxNVx1MDk0ZFx1MDkzMFx1MDkyY1x1MDkzZVx1MDkzMF9cdTA5MzZcdTA5MjhcdTA5M2ZcdTA5MmNcdTA5M2VcdTA5MzAiLnNwbGl0KCJfIiksd2Vl'@; put 'a2RheXNTaG9ydDoiXHUwOTA2XHUwOTA3XHUwOTI0Ll9cdTA5MzhcdTA5NGJcdTA5MmUuX1x1MDkyZVx1MDkxOVx1MDk0ZFx1MDkxN1x1MDkzMi5fXHUwOTJjXHUwOTQxXHUwOTI3Ll9cdTA5MmNcdTA5M2ZcdTA5MzlcdTA5M2YuX1x1MDkzNlx1MDk0MVx1MDkxNVx1MDk0ZFx1MDkzMC5fXHUw'@; put 'OTM2XHUwOTI4XHUwOTNmLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwOTA2Ll9cdTA5MzhcdTA5NGIuX1x1MDkyZVx1MDkwMi5fXHUwOTJjXHUwOTQxLl9cdTA5MmNcdTA5M2YuX1x1MDkzNlx1MDk0MS5fXHUwOTM2LiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9u'@; put 'Z0RhdGVGb3JtYXQ6e0xUOiJBXHUwOTE1XHUwOTRiIGg6bW0gXHUwOTJjXHUwOTFjXHUwOTQ3IixMVFM6IkFcdTA5MTVcdTA5NGIgaDptbTpzcyBcdTA5MmNcdTA5MWNcdTA5NDciLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSwgQVx1MDkxNVx1MDk0'@; put 'YiBoOm1tIFx1MDkyY1x1MDkxY1x1MDk0NyIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVksIEFcdTA5MTVcdTA5NGIgaDptbSBcdTA5MmNcdTA5MWNcdTA5NDcifSxwcmVwYXJzZTpmdW5jdGlvbih3KXtyZXR1cm4gdy5yZXBsYWNlKC9bXHUwOTY3XHUwOTY4XHUwOTY5XHUwOTZhXHUwOTZiXHUw'@; put 'OTZjXHUwOTZkXHUwOTZlXHUwOTZmXHUwOTY2XS9nLGZ1bmN0aW9uKEYpe3JldHVybiBwW0ZdfSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24odyl7cmV0dXJuIHcucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihGKXtyZXR1cm4gX1tGXX0pfSxtZXJpZGllbVBhcnNlOi9cdTA5MzBcdTA5M2VcdTA5MjRc'@; put 'dTA5M2Z8XHUwOTJjXHUwOTNmXHUwOTM5XHUwOTNlXHUwOTI4fFx1MDkyNlx1MDkzZlx1MDkwOVx1MDkwMVx1MDkzOFx1MDk0YnxcdTA5MzhcdTA5M2VcdTA5MDFcdTA5MWQvLG1lcmlkaWVtSG91cjpmdW5jdGlvbih3LEYpe3JldHVybiAxMj09PXcmJih3PTApLCJcdTA5MzBcdTA5M2VcdTA5'@; put 'MjRcdTA5M2YiPT09Rj93PDQ/dzp3KzEyOiJcdTA5MmNcdTA5M2ZcdTA5MzlcdTA5M2VcdTA5MjgiPT09Rj93OiJcdTA5MjZcdTA5M2ZcdTA5MDlcdTA5MDFcdTA5MzhcdTA5NGIiPT09Rj93Pj0xMD93OncrMTI6Ilx1MDkzOFx1MDkzZVx1MDkwMVx1MDkxZCI9PT1GP3crMTI6dm9pZCAwfSxt'@; put 'ZXJpZGllbTpmdW5jdGlvbih3LEYsSCl7cmV0dXJuIHc8Mz8iXHUwOTMwXHUwOTNlXHUwOTI0XHUwOTNmIjp3PDEyPyJcdTA5MmNcdTA5M2ZcdTA5MzlcdTA5M2VcdTA5MjgiOnc8MTY/Ilx1MDkyNlx1MDkzZlx1MDkwOVx1MDkwMVx1MDkzOFx1MDk0YiI6dzwyMD8iXHUwOTM4XHUwOTNlXHUw'@; put 'OTAxXHUwOTFkIjoiXHUwOTMwXHUwOTNlXHUwOTI0XHUwOTNmIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA5MDZcdTA5MWNdIExUIixuZXh0RGF5OiJbXHUwOTJkXHUwOTRiXHUwOTMyXHUwOTNmXSBMVCIsbmV4dFdlZWs6IltcdTA5MDZcdTA5MDlcdTA5MDFcdTA5MjZcdTA5NGJdIGRkZGRb'@; put 'LF0gTFQiLGxhc3REYXk6IltcdTA5MzlcdTA5M2ZcdTA5MWNcdTA5NGJdIExUIixsYXN0V2VlazoiW1x1MDkxN1x1MDkwZlx1MDkxNVx1MDk0Yl0gZGRkZFssXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXNcdTA5MmVcdTA5M2UiLHBhc3Q6IiVzIFx1MDkwNVx1'@; put 'MDkxN1x1MDkzZVx1MDkyMVx1MDkzZiIsczoiXHUwOTE1XHUwOTQ3XHUwOTM5XHUwOTQwIFx1MDkxNVx1MDk0ZFx1MDkzN1x1MDkyMyIsc3M6IiVkIFx1MDkzOFx1MDk0N1x1MDkxNVx1MDk0N1x1MDkyM1x1MDk0ZFx1MDkyMSIsbToiXHUwOTBmXHUwOTE1IFx1MDkyZVx1MDkzZlx1MDkyOFx1'@; put 'MDk0N1x1MDkxZiIsbW06IiVkIFx1MDkyZVx1MDkzZlx1MDkyOFx1MDk0N1x1MDkxZiIsaDoiXHUwOTBmXHUwOTE1IFx1MDkxOFx1MDkyM1x1MDk0ZFx1MDkxZlx1MDkzZSIsaGg6IiVkIFx1MDkxOFx1MDkyM1x1MDk0ZFx1MDkxZlx1MDkzZSIsZDoiXHUwOTBmXHUwOTE1IFx1MDkyNlx1MDkz'@; put 'Zlx1MDkyOCIsZGQ6IiVkIFx1MDkyNlx1MDkzZlx1MDkyOCIsTToiXHUwOTBmXHUwOTE1IFx1MDkyZVx1MDkzOVx1MDkzZlx1MDkyOFx1MDkzZSIsTU06IiVkIFx1MDkyZVx1MDkzOVx1MDkzZlx1MDkyOFx1MDkzZSIseToiXHUwOTBmXHUwOTE1IFx1MDkyY1x1MDkzMFx1MDk0ZFx1MDkzNyIs'@; put 'eXk6IiVkIFx1MDkyY1x1MDkzMFx1MDk0ZFx1MDkzNyJ9LHdlZWs6e2RvdzowLGRveTo2fX0pfShiKDk3NTg2KSl9LDk5ODc1OmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0Ijt2YXIgXz0iamFuLl9mZWIuX21ydC5fYXByLl9tZWlfanVuLl9qdWwuX2F1Zy5fc2Vw'@; put 'Ll9va3QuX25vdi5fZGVjLiIuc3BsaXQoIl8iKSxwPSJqYW5fZmViX21ydF9hcHJfbWVpX2p1bl9qdWxfYXVnX3NlcF9va3Rfbm92X2RlYyIuc3BsaXQoIl8iKSxOPVsvXmphbi9pLC9eZmViL2ksL14obWFhcnR8bXJ0XC4/KSQvaSwvXmFwci9pLC9ebWVpJC9pLC9eanVuW2kuXT8kL2ksL15q'@; put 'dWxbaS5dPyQvaSwvXmF1Zy9pLC9ec2VwL2ksL15va3QvaSwvXm5vdi9pLC9eZGVjL2ldLHc9L14oamFudWFyaXxmZWJydWFyaXxtYWFydHxhcHJpbHxtZWl8anVbbmxdaXxhdWd1c3R1c3xzZXB0ZW1iZXJ8b2t0b2Jlcnxub3ZlbWJlcnxkZWNlbWJlcnxqYW5cLj98ZmViXC4/fG1ydFwuP3xh'@; put 'cHJcLj98anVbbmxdXC4/fGF1Z1wuP3xzZXBcLj98b2t0XC4/fG5vdlwuP3xkZWNcLj8pL2k7RC5kZWZpbmVMb2NhbGUoIm5sLWJlIix7bW9udGhzOiJqYW51YXJpX2ZlYnJ1YXJpX21hYXJ0X2FwcmlsX21laV9qdW5pX2p1bGlfYXVndXN0dXNfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJf'@; put 'ZGVjZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6ZnVuY3Rpb24oSCxSKXtyZXR1cm4gSD8vLU1NTS0vLnRlc3QoUik/cFtILm1vbnRoKCldOl9bSC5tb250aCgpXTpffSxtb250aHNSZWdleDp3LG1vbnRoc1Nob3J0UmVnZXg6dyxtb250aHNTdHJpY3RSZWdleDovXihqYW51YXJpfGZl'@; put 'YnJ1YXJpfG1hYXJ0fGFwcmlsfG1laXxqdVtubF1pfGF1Z3VzdHVzfHNlcHRlbWJlcnxva3RvYmVyfG5vdmVtYmVyfGRlY2VtYmVyKS9pLG1vbnRoc1Nob3J0U3RyaWN0UmVnZXg6L14oamFuXC4/fGZlYlwuP3xtcnRcLj98YXByXC4/fG1laXxqdVtubF1cLj98YXVnXC4/fHNlcFwuP3xva3Rc'@; put 'Lj98bm92XC4/fGRlY1wuPykvaSxtb250aHNQYXJzZTpOLGxvbmdNb250aHNQYXJzZTpOLHNob3J0TW9udGhzUGFyc2U6Tix3ZWVrZGF5czoiem9uZGFnX21hYW5kYWdfZGluc2RhZ193b2Vuc2RhZ19kb25kZXJkYWdfdnJpamRhZ196YXRlcmRhZyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0'@; put 'OiJ6by5fbWEuX2RpLl93by5fZG8uX3ZyLl96YS4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46InpvX21hX2RpX3dvX2RvX3ZyX3phIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZ'@; put 'IixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW3ZhbmRhYWcgb21dIExUIixuZXh0RGF5OiJbbW9yZ2VuIG9tXSBMVCIsbmV4dFdlZWs6ImRkZGQgW29tXSBMVCIsbGFzdERh'@; put 'eToiW2dpc3RlcmVuIG9tXSBMVCIsbGFzdFdlZWs6IlthZmdlbG9wZW5dIGRkZGQgW29tXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToib3ZlciAlcyIscGFzdDoiJXMgZ2VsZWRlbiIsczoiZWVuIHBhYXIgc2Vjb25kZW4iLHNzOiIlZCBzZWNvbmRlbiIsbToiXHhl'@; put 'OVx4ZTluIG1pbnV1dCIsbW06IiVkIG1pbnV0ZW4iLGg6Ilx4ZTlceGU5biB1dXIiLGhoOiIlZCB1dXIiLGQ6Ilx4ZTlceGU5biBkYWciLGRkOiIlZCBkYWdlbiIsTToiXHhlOVx4ZTluIG1hYW5kIixNTToiJWQgbWFhbmRlbiIseToiXHhlOVx4ZTluIGphYXIiLHl5OiIlZCBqYWFyIn0sZGF5'@; put 'T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShzdGV8ZGUpLyxvcmRpbmFsOmZ1bmN0aW9uKEgpe3JldHVybiBIKygxPT09SHx8OD09PUh8fEg+PTIwPyJzdGUiOiJkZSIpfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oYig5NzU4NikpfSw2NTQ0MTpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlv'@; put 'bihEKXsidXNlIHN0cmljdCI7dmFyIF89Imphbi5fZmViLl9tcnQuX2Fwci5fbWVpX2p1bi5fanVsLl9hdWcuX3NlcC5fb2t0Ll9ub3YuX2RlYy4iLnNwbGl0KCJfIikscD0iamFuX2ZlYl9tcnRfYXByX21laV9qdW5fanVsX2F1Z19zZXBfb2t0X25vdl9kZWMiLnNwbGl0KCJfIiksTj1bL15q'@; put 'YW4vaSwvXmZlYi9pLC9eKG1hYXJ0fG1ydFwuPykkL2ksL15hcHIvaSwvXm1laSQvaSwvXmp1bltpLl0/JC9pLC9eanVsW2kuXT8kL2ksL15hdWcvaSwvXnNlcC9pLC9eb2t0L2ksL15ub3YvaSwvXmRlYy9pXSx3PS9eKGphbnVhcml8ZmVicnVhcml8bWFhcnR8YXByaWx8bWVpfGp1W25sXWl8'@; put 'YXVndXN0dXN8c2VwdGVtYmVyfG9rdG9iZXJ8bm92ZW1iZXJ8ZGVjZW1iZXJ8amFuXC4/fGZlYlwuP3xtcnRcLj98YXByXC4/fGp1W25sXVwuP3xhdWdcLj98c2VwXC4/fG9rdFwuP3xub3ZcLj98ZGVjXC4/KS9pO0QuZGVmaW5lTG9jYWxlKCJubCIse21vbnRoczoiamFudWFyaV9mZWJydWFy'@; put 'aV9tYWFydF9hcHJpbF9tZWlfanVuaV9qdWxpX2F1Z3VzdHVzX3NlcHRlbWJlcl9va3RvYmVyX25vdmVtYmVyX2RlY2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OmZ1bmN0aW9uKEgsUil7cmV0dXJuIEg/Ly1NTU0tLy50ZXN0KFIpP3BbSC5tb250aCgpXTpfW0gubW9udGgoKV06X30s'@; put 'bW9udGhzUmVnZXg6dyxtb250aHNTaG9ydFJlZ2V4OncsbW9udGhzU3RyaWN0UmVnZXg6L14oamFudWFyaXxmZWJydWFyaXxtYWFydHxhcHJpbHxtZWl8anVbbmxdaXxhdWd1c3R1c3xzZXB0ZW1iZXJ8b2t0b2Jlcnxub3ZlbWJlcnxkZWNlbWJlcikvaSxtb250aHNTaG9ydFN0cmljdFJlZ2V4'@; put 'Oi9eKGphblwuP3xmZWJcLj98bXJ0XC4/fGFwclwuP3xtZWl8anVbbmxdXC4/fGF1Z1wuP3xzZXBcLj98b2t0XC4/fG5vdlwuP3xkZWNcLj8pL2ksbW9udGhzUGFyc2U6Tixsb25nTW9udGhzUGFyc2U6TixzaG9ydE1vbnRoc1BhcnNlOk4sd2Vla2RheXM6InpvbmRhZ19tYWFuZGFnX2RpbnNk'@; put 'YWdfd29lbnNkYWdfZG9uZGVyZGFnX3ZyaWpkYWdfemF0ZXJkYWciLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiem8uX21hLl9kaS5fd28uX2RvLl92ci5femEuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJ6b19tYV9kaV93b19kb192cl96YSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNl'@; put 'RXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQtTU0tWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6Ilt2YW5kYWFn'@; put 'IG9tXSBMVCIsbmV4dERheToiW21vcmdlbiBvbV0gTFQiLG5leHRXZWVrOiJkZGRkIFtvbV0gTFQiLGxhc3REYXk6IltnaXN0ZXJlbiBvbV0gTFQiLGxhc3RXZWVrOiJbYWZnZWxvcGVuXSBkZGRkIFtvbV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Im92ZXIgJXMi'@; put 'LHBhc3Q6IiVzIGdlbGVkZW4iLHM6ImVlbiBwYWFyIHNlY29uZGVuIixzczoiJWQgc2Vjb25kZW4iLG06Ilx4ZTlceGU5biBtaW51dXQiLG1tOiIlZCBtaW51dGVuIixoOiJceGU5XHhlOW4gdXVyIixoaDoiJWQgdXVyIixkOiJceGU5XHhlOW4gZGFnIixkZDoiJWQgZGFnZW4iLHc6Ilx4ZTlc'@; put 'eGU5biB3ZWVrIix3dzoiJWQgd2VrZW4iLE06Ilx4ZTlceGU5biBtYWFuZCIsTU06IiVkIG1hYW5kZW4iLHk6Ilx4ZTlceGU5biBqYWFyIix5eToiJWQgamFhciJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oc3RlfGRlKS8sb3JkaW5hbDpmdW5jdGlvbihIKXtyZXR1cm4gSCso'@; put 'MT09PUh8fDg9PT1IfHxIPj0yMD8ic3RlIjoiZGUiKX0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KGIoOTc1ODYpKX0sODEzMTE6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO0QuZGVmaW5lTG9jYWxlKCJubiIse21vbnRoczoiamFudWFyX2ZlYnJ1YXJfbWFyc19h'@; put 'cHJpbF9tYWlfanVuaV9qdWxpX2F1Z3VzdF9zZXB0ZW1iZXJfb2t0b2Jlcl9ub3ZlbWJlcl9kZXNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiamFuLl9mZWIuX21hcnNfYXByLl9tYWlfanVuaV9qdWxpX2F1Zy5fc2VwLl9va3QuX25vdi5fZGVzLiIuc3BsaXQoIl8iKSxtb250aHNQ'@; put 'YXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJzdW5kYWdfbVx4ZTVuZGFnX3R5c2RhZ19vbnNkYWdfdG9yc2RhZ19mcmVkYWdfbGF1cmRhZyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJzdS5fbVx4ZTUuX3R5Ll9vbi5fdG8uX2ZyLl9sYXUuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJzdV9t'@; put 'XHhlNV90eV9vbl90b19mcl9sYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQuIE1NTU0gWVlZWSIsTExMOiJELiBNTU1NIFlZWVkgW2tsLl0gSDptbSIsTExMTDoi'@; put 'ZGRkZCBELiBNTU1NIFlZWVkgW2tsLl0gSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW0kgZGFnIGtsb2trYV0gTFQiLG5leHREYXk6IltJIG1vcmdvbiBrbG9ra2FdIExUIixuZXh0V2VlazoiZGRkZCBba2xva2thXSBMVCIsbGFzdERheToiW0kgZ1x4ZTVyIGtsb2trYV0gTFQiLGxhc3RX'@; put 'ZWVrOiJbRlx4ZjhyZWdceGU1YW5kZV0gZGRkZCBba2xva2thXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToib20gJXMiLHBhc3Q6IiVzIHNpZGFuIixzOiJub2tyZSBzZWt1bmQiLHNzOiIlZCBzZWt1bmQiLG06ImVpdCBtaW51dHQiLG1tOiIlZCBtaW51dHQiLGg6'@; put 'ImVpbiB0aW1lIixoaDoiJWQgdGltYXIiLGQ6ImVpbiBkYWciLGRkOiIlZCBkYWdhciIsdzoiZWkgdmVrZSIsd3c6IiVkIHZla2VyIixNOiJlaW4gbVx4ZTVuYWQiLE1NOiIlZCBtXHhlNW5hZGVyIix5OiJlaXQgXHhlNXIiLHl5OiIlZCBceGU1ciJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6'@; put 'L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oYig5NzU4NikpfSw3MjU2NzpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7RC5kZWZpbmVMb2NhbGUoIm9jLWxuYyIse21vbnRoczp7c3RhbmRhbG9uZToiZ2VuaVx4ZThyX2Zl'@; put 'YnJpXHhlOHJfbWFyXHhlN19hYnJpbF9tYWlfanVuaF9qdWxoZXRfYWdvc3Rfc2V0ZW1icmVfb2N0XHhmMmJyZV9ub3ZlbWJyZV9kZWNlbWJyZSIuc3BsaXQoIl8iKSxmb3JtYXQ6ImRlIGdlbmlceGU4cl9kZSBmZWJyaVx4ZThyX2RlIG1hclx4ZTdfZCdhYnJpbF9kZSBtYWlfZGUganVuaF9k'@; put 'ZSBqdWxoZXRfZCdhZ29zdF9kZSBzZXRlbWJyZV9kJ29jdFx4ZjJicmVfZGUgbm92ZW1icmVfZGUgZGVjZW1icmUiLnNwbGl0KCJfIiksaXNGb3JtYXQ6L0Rbb0RdPyhccykrTU1NTS99LG1vbnRoc1Nob3J0OiJnZW4uX2ZlYnIuX21hclx4ZTdfYWJyLl9tYWlfanVuaF9qdWxoLl9hZ28uX3Nl'@; put 'dC5fb2N0Ll9ub3YuX2RlYy4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiZGltZW5nZV9kaWx1bnNfZGltYXJzX2RpbVx4ZThjcmVzX2Rpalx4ZjJ1c19kaXZlbmRyZXNfZGlzc2FidGUiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiZGcuX2RsLl9kbS5fZGMu'@; put 'X2RqLl9kdi5fZHMuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJkZ19kbF9kbV9kY19kal9kdl9kcyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gW2RlXSBZ'@; put 'WVlZIixsbDoiRCBNTU0gWVlZWSIsTExMOiJEIE1NTU0gW2RlXSBZWVlZIFthXSBIOm1tIixsbGw6IkQgTU1NIFlZWVksIEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFtkZV0gWVlZWSBbYV0gSDptbSIsbGxsbDoiZGRkIEQgTU1NIFlZWVksIEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW3Vc'@; put 'eGU4aSBhXSBMVCIsbmV4dERheToiW2RlbWFuIGFdIExUIixuZXh0V2VlazoiZGRkZCBbYV0gTFQiLGxhc3REYXk6IltpXHhlOHIgYV0gTFQiLGxhc3RXZWVrOiJkZGRkIFtwYXNzYXQgYV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImQnYXF1XHhlZCAlcyIscGFz'@; put 'dDoiZmEgJXMiLHM6InVuYXMgc2Vnb25kYXMiLHNzOiIlZCBzZWdvbmRhcyIsbToidW5hIG1pbnV0YSIsbW06IiVkIG1pbnV0YXMiLGg6InVuYSBvcmEiLGhoOiIlZCBvcmFzIixkOiJ1biBqb3JuIixkZDoiJWQgam9ybnMiLE06InVuIG1lcyIsTU06IiVkIG1lc2VzIix5OiJ1biBhbiIseXk6'@; put 'IiVkIGFucyJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0ocnxufHR8XHhlOHxhKS8sb3JkaW5hbDpmdW5jdGlvbihwLE4pe3ZhciB3PTE9PT1wPyJyIjoyPT09cD8ibiI6Mz09PXA/InIiOjQ9PT1wPyJ0IjoiXHhlOCI7cmV0dXJuKCJ3Ij09PU58fCJXIj09PU4pJiYodz0iYSIp'@; put 'LHArd30sd2Vlazp7ZG93OjEsZG95OjR9fSl9KGIoOTc1ODYpKX0sNTY5NjI6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO3ZhciBfPXsxOiJcdTBhNjciLDI6Ilx1MGE2OCIsMzoiXHUwYTY5Iiw0OiJcdTBhNmEiLDU6Ilx1MGE2YiIsNjoiXHUwYTZjIiw3OiJc'@; put 'dTBhNmQiLDg6Ilx1MGE2ZSIsOToiXHUwYTZmIiwwOiJcdTBhNjYifSxwPXsiXHUwYTY3IjoiMSIsIlx1MGE2OCI6IjIiLCJcdTBhNjkiOiIzIiwiXHUwYTZhIjoiNCIsIlx1MGE2YiI6IjUiLCJcdTBhNmMiOiI2IiwiXHUwYTZkIjoiNyIsIlx1MGE2ZSI6IjgiLCJcdTBhNmYiOiI5IiwiXHUw'@; put 'YTY2IjoiMCJ9O0QuZGVmaW5lTG9jYWxlKCJwYS1pbiIse21vbnRoczoiXHUwYTFjXHUwYTI4XHUwYTM1XHUwYTMwXHUwYTQwX1x1MGEyYlx1MGEzY1x1MGEzMFx1MGEzNVx1MGEzMFx1MGE0MF9cdTBhMmVcdTBhM2VcdTBhMzBcdTBhMWFfXHUwYTA1XHUwYTJhXHUwYTRkXHUwYTMwXHUwYTQ4'@; put 'XHUwYTMyX1x1MGEyZVx1MGEwOF9cdTBhMWNcdTBhNDJcdTBhMjhfXHUwYTFjXHUwYTQxXHUwYTMyXHUwYTNlXHUwYTA4X1x1MGEwNVx1MGExN1x1MGEzOFx1MGEyNF9cdTBhMzhcdTBhMjRcdTBhNzBcdTBhMmNcdTBhMzBfXHUwYTA1XHUwYTE1XHUwYTI0XHUwYTQyXHUwYTJjXHUwYTMwX1x1'@; put 'MGEyOFx1MGEzNVx1MGE3MFx1MGEyY1x1MGEzMF9cdTBhMjZcdTBhMzhcdTBhNzBcdTBhMmNcdTBhMzAiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MGExY1x1MGEyOFx1MGEzNVx1MGEzMFx1MGE0MF9cdTBhMmJcdTBhM2NcdTBhMzBcdTBhMzVcdTBhMzBcdTBhNDBfXHUwYTJlXHUwYTNl'@; put 'XHUwYTMwXHUwYTFhX1x1MGEwNVx1MGEyYVx1MGE0ZFx1MGEzMFx1MGE0OFx1MGEzMl9cdTBhMmVcdTBhMDhfXHUwYTFjXHUwYTQyXHUwYTI4X1x1MGExY1x1MGE0MVx1MGEzMlx1MGEzZVx1MGEwOF9cdTBhMDVcdTBhMTdcdTBhMzhcdTBhMjRfXHUwYTM4XHUwYTI0XHUwYTcwXHUwYTJjXHUw'@; put 'YTMwX1x1MGEwNVx1MGExNVx1MGEyNFx1MGE0Mlx1MGEyY1x1MGEzMF9cdTBhMjhcdTBhMzVcdTBhNzBcdTBhMmNcdTBhMzBfXHUwYTI2XHUwYTM4XHUwYTcwXHUwYTJjXHUwYTMwIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTBhMTBcdTBhMjRcdTBhMzVcdTBhM2VcdTBhMzBfXHUwYTM4XHUw'@; put 'YTRiXHUwYTJlXHUwYTM1XHUwYTNlXHUwYTMwX1x1MGEyZVx1MGE3MFx1MGExN1x1MGEzMlx1MGEzNVx1MGEzZVx1MGEzMF9cdTBhMmNcdTBhNDFcdTBhMjdcdTBhMzVcdTBhM2VcdTBhMzBfXHUwYTM1XHUwYTQwXHUwYTMwXHUwYTM1XHUwYTNlXHUwYTMwX1x1MGEzOFx1MGEzY1x1MGE0MVx1'@; put 'MGE3MVx1MGExNVx1MGEzMFx1MGEzNVx1MGEzZVx1MGEzMF9cdTBhMzhcdTBhM2NcdTBhMjhcdTBhNDBcdTBhMWFcdTBhMzBcdTBhMzVcdTBhM2VcdTBhMzAiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwYTEwXHUwYTI0X1x1MGEzOFx1MGE0Ylx1MGEyZV9cdTBhMmVcdTBhNzBcdTBh'@; put 'MTdcdTBhMzJfXHUwYTJjXHUwYTQxXHUwYTI3X1x1MGEzNVx1MGE0MFx1MGEzMF9cdTBhMzhcdTBhM2NcdTBhNDFcdTBhMTVcdTBhMzBfXHUwYTM4XHUwYTNjXHUwYTI4XHUwYTQwIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTBhMTBcdTBhMjRfXHUwYTM4XHUwYTRiXHUwYTJlX1x1MGEy'@; put 'ZVx1MGE3MFx1MGExN1x1MGEzMl9cdTBhMmNcdTBhNDFcdTBhMjdfXHUwYTM1XHUwYTQwXHUwYTMwX1x1MGEzOFx1MGEzY1x1MGE0MVx1MGExNVx1MGEzMF9cdTBhMzhcdTBhM2NcdTBhMjhcdTBhNDAiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJBIGg6bW0gXHUwYTM1XHUwYTFj'@; put 'XHUwYTQ3IixMVFM6IkEgaDptbTpzcyBcdTBhMzVcdTBhMWNcdTBhNDciLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSwgQSBoOm1tIFx1MGEzNVx1MGExY1x1MGE0NyIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVksIEEgaDptbSBcdTBhMzVcdTBhMWNc'@; put 'dTBhNDcifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MGEwNVx1MGExY10gTFQiLG5leHREYXk6IltcdTBhMTVcdTBhMzJdIExUIixuZXh0V2VlazoiW1x1MGEwNVx1MGExN1x1MGEzMlx1MGEzZV0gZGRkZCwgTFQiLGxhc3REYXk6IltcdTBhMTVcdTBhMzJdIExUIixsYXN0V2VlazoiW1x1MGEy'@; put 'YVx1MGEzZlx1MGExYlx1MGEzMlx1MGE0N10gZGRkZCwgTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIFx1MGEzNVx1MGEzZlx1MGE3MVx1MGExYSIscGFzdDoiJXMgXHUwYTJhXHUwYTNmXHUwYTFiXHUwYTMyXHUwYTQ3IixzOiJcdTBhMTVcdTBhNDFcdTBhMWQg'@; put 'XHUwYTM4XHUwYTE1XHUwYTNmXHUwYTcwXHUwYTFmIixzczoiJWQgXHUwYTM4XHUwYTE1XHUwYTNmXHUwYTcwXHUwYTFmIixtOiJcdTBhMDdcdTBhMTUgXHUwYTJlXHUwYTNmXHUwYTcwXHUwYTFmIixtbToiJWQgXHUwYTJlXHUwYTNmXHUwYTcwXHUwYTFmIixoOiJcdTBhMDdcdTBhNzFcdTBh'@; put 'MTUgXHUwYTE4XHUwYTcwXHUwYTFmXHUwYTNlIixoaDoiJWQgXHUwYTE4XHUwYTcwXHUwYTFmXHUwYTQ3IixkOiJcdTBhMDdcdTBhNzFcdTBhMTUgXHUwYTI2XHUwYTNmXHUwYTI4IixkZDoiJWQgXHUwYTI2XHUwYTNmXHUwYTI4IixNOiJcdTBhMDdcdTBhNzFcdTBhMTUgXHUwYTJlXHUwYTM5'@; put 'XHUwYTQwXHUwYTI4XHUwYTNlIixNTToiJWQgXHUwYTJlXHUwYTM5XHUwYTQwXHUwYTI4XHUwYTQ3Iix5OiJcdTBhMDdcdTBhNzFcdTBhMTUgXHUwYTM4XHUwYTNlXHUwYTMyIix5eToiJWQgXHUwYTM4XHUwYTNlXHUwYTMyIn0scHJlcGFyc2U6ZnVuY3Rpb24odyl7cmV0dXJuIHcucmVwbGFj'@; put 'ZSgvW1x1MGE2N1x1MGE2OFx1MGE2OVx1MGE2YVx1MGE2Ylx1MGE2Y1x1MGE2ZFx1MGE2ZVx1MGE2Zlx1MGE2Nl0vZyxmdW5jdGlvbihGKXtyZXR1cm4gcFtGXX0pfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKHcpe3JldHVybiB3LnJlcGxhY2UoL1xkL2csZnVuY3Rpb24oRil7cmV0dXJuIF9bRl19'@; put 'KX0sbWVyaWRpZW1QYXJzZTovXHUwYTMwXHUwYTNlXHUwYTI0fFx1MGEzOFx1MGEzNVx1MGE0N1x1MGEzMHxcdTBhMjZcdTBhNDFcdTBhMmFcdTBhMzlcdTBhM2ZcdTBhMzB8XHUwYTM4XHUwYTNjXHUwYTNlXHUwYTJlLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24odyxGKXtyZXR1cm4gMTI9PT13'@; put 'JiYodz0wKSwiXHUwYTMwXHUwYTNlXHUwYTI0Ij09PUY/dzw0P3c6dysxMjoiXHUwYTM4XHUwYTM1XHUwYTQ3XHUwYTMwIj09PUY/dzoiXHUwYTI2XHUwYTQxXHUwYTJhXHUwYTM5XHUwYTNmXHUwYTMwIj09PUY/dz49MTA/dzp3KzEyOiJcdTBhMzhcdTBhM2NcdTBhM2VcdTBhMmUiPT09Rj93'@; put 'KzEyOnZvaWQgMH0sbWVyaWRpZW06ZnVuY3Rpb24odyxGLEgpe3JldHVybiB3PDQ/Ilx1MGEzMFx1MGEzZVx1MGEyNCI6dzwxMD8iXHUwYTM4XHUwYTM1XHUwYTQ3XHUwYTMwIjp3PDE3PyJcdTBhMjZcdTBhNDFcdTBhMmFcdTBhMzlcdTBhM2ZcdTBhMzAiOnc8MjA/Ilx1MGEzOFx1MGEzY1x1'@; put 'MGEzZVx1MGEyZSI6Ilx1MGEzMFx1MGEzZVx1MGEyNCJ9LHdlZWs6e2RvdzowLGRveTo2fX0pfShiKDk3NTg2KSl9LDYxMDYzOmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0Ijt2YXIgXz0ic3R5Y3plXHUwMTQ0X2x1dHlfbWFyemVjX2t3aWVjaWVcdTAxNDRfbWFq'@; put 'X2N6ZXJ3aWVjX2xpcGllY19zaWVycGllXHUwMTQ0X3dyemVzaWVcdTAxNDRfcGFcdTAxN2Fkemllcm5pa19saXN0b3BhZF9ncnVkemllXHUwMTQ0Ii5zcGxpdCgiXyIpLHA9InN0eWN6bmlhX2x1dGVnb19tYXJjYV9rd2lldG5pYV9tYWphX2N6ZXJ3Y2FfbGlwY2Ffc2llcnBuaWFfd3J6ZVx1'@; put 'MDE1Ym5pYV9wYVx1MDE3YWR6aWVybmlrYV9saXN0b3BhZGFfZ3J1ZG5pYSIuc3BsaXQoIl8iKSxOPVsvXnN0eS9pLC9ebHV0L2ksL15tYXIvaSwvXmt3aS9pLC9ebWFqL2ksL15jemUvaSwvXmxpcC9pLC9ec2llL2ksL153cnovaSwvXnBhXHUwMTdhL2ksL15saXMvaSwvXmdydS9pXTtmdW5j'@; put 'dGlvbiB3KFIpe3JldHVybiBSJTEwPDUmJlIlMTA+MSYmfn4oUi8xMCklMTAhPTF9ZnVuY3Rpb24gRihSLGosUCl7dmFyIEw9UisiICI7c3dpdGNoKFApe2Nhc2Uic3MiOnJldHVybiBMKyh3KFIpPyJzZWt1bmR5Ijoic2VrdW5kIik7Y2FzZSJtIjpyZXR1cm4gaj8ibWludXRhIjoibWludXRc'@; put 'dTAxMTkiO2Nhc2UibW0iOnJldHVybiBMKyh3KFIpPyJtaW51dHkiOiJtaW51dCIpO2Nhc2UiaCI6cmV0dXJuIGo/ImdvZHppbmEiOiJnb2R6aW5cdTAxMTkiO2Nhc2UiaGgiOnJldHVybiBMKyh3KFIpPyJnb2R6aW55IjoiZ29kemluIik7Y2FzZSJ3dyI6cmV0dXJuIEwrKHcoUik/InR5Z29k'@; put 'bmllIjoidHlnb2RuaSIpO2Nhc2UiTU0iOnJldHVybiBMKyh3KFIpPyJtaWVzaVx1MDEwNWNlIjoibWllc2lcdTAxMTljeSIpO2Nhc2UieXkiOnJldHVybiBMKyh3KFIpPyJsYXRhIjoibGF0Iil9fUQuZGVmaW5lTG9jYWxlKCJwbCIse21vbnRoczpmdW5jdGlvbihSLGope3JldHVybiBSPy9E'@; put 'IE1NTU0vLnRlc3Qoaik/cFtSLm1vbnRoKCldOl9bUi5tb250aCgpXTpffSxtb250aHNTaG9ydDoic3R5X2x1dF9tYXJfa3dpX21hal9jemVfbGlwX3NpZV93cnpfcGFcdTAxN2FfbGlzX2dydSIuc3BsaXQoIl8iKSxtb250aHNQYXJzZTpOLGxvbmdNb250aHNQYXJzZTpOLHNob3J0TW9udGhz'@; put 'UGFyc2U6Tix3ZWVrZGF5czoibmllZHppZWxhX3BvbmllZHppYVx1MDE0MmVrX3d0b3Jla19cdTAxNWJyb2RhX2N6d2FydGVrX3BpXHUwMTA1dGVrX3NvYm90YSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJuZHpfcG9uX3d0X1x1MDE1YnJfY3p3X3B0X3NvYiIuc3BsaXQoIl8iKSx3ZWVr'@; put 'ZGF5c01pbjoiTmRfUG5fV3RfXHUwMTVhcl9Del9QdF9TbyIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZ'@; put 'WVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltEemlcdTAxNWIgb10gTFQiLG5leHREYXk6IltKdXRybyBvXSBMVCIsbmV4dFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOnJldHVybiJbVyBuaWVkemllbFx1MDExOSBvXSBMVCI7Y2FzZSAyOnJldHVybiJb'@; put 'V2Ugd3RvcmVrIG9dIExUIjtjYXNlIDM6cmV0dXJuIltXIFx1MDE1YnJvZFx1MDExOSBvXSBMVCI7Y2FzZSA2OnJldHVybiJbVyBzb2JvdFx1MDExOSBvXSBMVCI7ZGVmYXVsdDpyZXR1cm4iW1ddIGRkZGQgW29dIExUIn19LGxhc3REYXk6IltXY3pvcmFqIG9dIExUIixsYXN0V2VlazpmdW5j'@; put 'dGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6cmV0dXJuIltXIHplc3pcdTAxNDJcdTAxMDUgbmllZHppZWxcdTAxMTkgb10gTFQiO2Nhc2UgMzpyZXR1cm4iW1cgemVzelx1MDE0Mlx1MDEwNSBcdTAxNWJyb2RcdTAxMTkgb10gTFQiO2Nhc2UgNjpyZXR1cm4iW1cgemVzelx1MDE0'@; put 'Mlx1MDEwNSBzb2JvdFx1MDExOSBvXSBMVCI7ZGVmYXVsdDpyZXR1cm4iW1cgemVzelx1MDE0MnldIGRkZGQgW29dIExUIn19LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6InphICVzIixwYXN0OiIlcyB0ZW11IixzOiJraWxrYSBzZWt1bmQiLHNzOkYsbTpGLG1tOkYsaDpG'@; put 'LGhoOkYsZDoiMSBkemllXHUwMTQ0IixkZDoiJWQgZG5pIix3OiJ0eWR6aWVcdTAxNDQiLHd3OkYsTToibWllc2lcdTAxMDVjIixNTTpGLHk6InJvayIseXk6Rn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo0fX0pfShi'@; put 'KDk3NTg2KSl9LDk3NDc2OmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0IjtELmRlZmluZUxvY2FsZSgicHQtYnIiLHttb250aHM6ImphbmVpcm9fZmV2ZXJlaXJvX21hclx4ZTdvX2FicmlsX21haW9fanVuaG9fanVsaG9fYWdvc3RvX3NldGVtYnJvX291dHVicm9f'@; put 'bm92ZW1icm9fZGV6ZW1icm8iLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Imphbl9mZXZfbWFyX2Ficl9tYWlfanVuX2p1bF9hZ29fc2V0X291dF9ub3ZfZGV6Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOiJkb21pbmdvX3NlZ3VuZGEtZmVpcmFfdGVyXHhlN2EtZmVpcmFfcXVhcnRhLWZlaXJhX3F1'@; put 'aW50YS1mZWlyYV9zZXh0YS1mZWlyYV9zXHhlMWJhZG8iLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiZG9tX3NlZ190ZXJfcXVhX3F1aV9zZXhfc1x4ZTFiIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJkb18yXHhhYV8zXHhhYV80XHhhYV81XHhhYV82XHhhYV9zXHhlMSIuc3BsaXQoIl8i'@; put 'KSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgW2RlXSBNTU1NIFtkZV0gWVlZWSIsTExMOiJEIFtkZV0gTU1NTSBbZGVdIFlZWVkgW1x4ZTBzXSBISDptbSIsTExMTDoiZGRkZCwgRCBb'@; put 'ZGVdIE1NTU0gW2RlXSBZWVlZIFtceGUwc10gSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW0hvamUgXHhlMHNdIExUIixuZXh0RGF5OiJbQW1hbmhceGUzIFx4ZTBzXSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x4ZTBzXSBMVCIsbGFzdERheToiW09udGVtIFx4ZTBzXSBMVCIsbGFzdFdlZWs6'@; put 'ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuZGF5KCl8fDY9PT10aGlzLmRheSgpPyJbXHhkYWx0aW1vXSBkZGRkIFtceGUwc10gTFQiOiJbXHhkYWx0aW1hXSBkZGRkIFtceGUwc10gTFQifSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJlbSAlcyIscGFzdDoiaFx4ZTEg'@; put 'JXMiLHM6InBvdWNvcyBzZWd1bmRvcyIsc3M6IiVkIHNlZ3VuZG9zIixtOiJ1bSBtaW51dG8iLG1tOiIlZCBtaW51dG9zIixoOiJ1bWEgaG9yYSIsaGg6IiVkIGhvcmFzIixkOiJ1bSBkaWEiLGRkOiIlZCBkaWFzIixNOiJ1bSBtXHhlYXMiLE1NOiIlZCBtZXNlcyIseToidW0gYW5vIix5eToi'@; put 'JWQgYW5vcyJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1ceGJhLyxvcmRpbmFsOiIlZFx4YmEiLGludmFsaWREYXRlOiJEYXRhIGludlx4ZTFsaWRhIn0pfShiKDk3NTg2KSl9LDc4NzE5OmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0IjtELmRlZmlu'@; put 'ZUxvY2FsZSgicHQiLHttb250aHM6ImphbmVpcm9fZmV2ZXJlaXJvX21hclx4ZTdvX2FicmlsX21haW9fanVuaG9fanVsaG9fYWdvc3RvX3NldGVtYnJvX291dHVicm9fbm92ZW1icm9fZGV6ZW1icm8iLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Imphbl9mZXZfbWFyX2Ficl9tYWlfanVuX2p1'@; put 'bF9hZ29fc2V0X291dF9ub3ZfZGV6Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOiJEb21pbmdvX1NlZ3VuZGEtZmVpcmFfVGVyXHhlN2EtZmVpcmFfUXVhcnRhLWZlaXJhX1F1aW50YS1mZWlyYV9TZXh0YS1mZWlyYV9TXHhlMWJhZG8iLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiRG9tX1NlZ19U'@; put 'ZXJfUXVhX1F1aV9TZXhfU1x4ZTFiIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJEb18yXHhhYV8zXHhhYV80XHhhYV81XHhhYV82XHhhYV9TXHhlMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoi'@; put 'REQvTU0vWVlZWSIsTEw6IkQgW2RlXSBNTU1NIFtkZV0gWVlZWSIsTExMOiJEIFtkZV0gTU1NTSBbZGVdIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgW2RlXSBNTU1NIFtkZV0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbSG9qZSBceGUwc10gTFQiLG5leHREYXk6IltBbWFu'@; put 'aFx4ZTMgXHhlMHNdIExUIixuZXh0V2VlazoiZGRkZCBbXHhlMHNdIExUIixsYXN0RGF5OiJbT250ZW0gXHhlMHNdIExUIixsYXN0V2VlazpmdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5kYXkoKXx8Nj09PXRoaXMuZGF5KCk/IltceGRhbHRpbW9dIGRkZGQgW1x4ZTBzXSBMVCI6IltceGRh'@; put 'bHRpbWFdIGRkZGQgW1x4ZTBzXSBMVCJ9LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImVtICVzIixwYXN0OiJoXHhlMSAlcyIsczoic2VndW5kb3MiLHNzOiIlZCBzZWd1bmRvcyIsbToidW0gbWludXRvIixtbToiJWQgbWludXRvcyIsaDoidW1hIGhvcmEiLGhoOiIlZCBo'@; put 'b3JhcyIsZDoidW0gZGlhIixkZDoiJWQgZGlhcyIsdzoidW1hIHNlbWFuYSIsd3c6IiVkIHNlbWFuYXMiLE06InVtIG1ceGVhcyIsTU06IiVkIG1lc2VzIix5OiJ1bSBhbm8iLHl5OiIlZCBhbm9zIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVx4YmEvLG9yZGluYWw6IiVkXHhi'@; put 'YSIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KGIoOTc1ODYpKX0sNTEwMDQ6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIF8oTix3LEYpe3ZhciBSPSIgIjtyZXR1cm4oTiUxMDA+PTIwfHxOPj0xMDAmJk4lMTAwPT0wKSYmKFI9IiBkZSAiKSxOK1Ir'@; put 'e3NzOiJzZWN1bmRlIixtbToibWludXRlIixoaDoib3JlIixkZDoiemlsZSIsd3c6InNcdTAxMDNwdFx1MDEwM21ceGUybmkiLE1NOiJsdW5pIix5eToiYW5pIn1bRl19RC5kZWZpbmVMb2NhbGUoInJvIix7bW9udGhzOiJpYW51YXJpZV9mZWJydWFyaWVfbWFydGllX2FwcmlsaWVfbWFpX2l1'@; put 'bmllX2l1bGllX2F1Z3VzdF9zZXB0ZW1icmllX29jdG9tYnJpZV9ub2llbWJyaWVfZGVjZW1icmllIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJpYW4uX2ZlYi5fbWFydC5fYXByLl9tYWlfaXVuLl9pdWwuX2F1Zy5fc2VwdC5fb2N0Ll9ub3YuX2RlYy4iLnNwbGl0KCJfIiksbW9udGhzUGFy'@; put 'c2VFeGFjdDohMCx3ZWVrZGF5czoiZHVtaW5pY1x1MDEwM19sdW5pX21hclx1MDIxYmlfbWllcmN1cmlfam9pX3ZpbmVyaV9zXHhlMm1iXHUwMTAzdFx1MDEwMyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJEdW1fTHVuX01hcl9NaWVfSm9pX1Zpbl9TXHhlMm0iLnNwbGl0KCJfIiksd2Vl'@; put 'a2RheXNNaW46IkR1X0x1X01hX01pX0pvX1ZpX1NceGUyIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkg'@; put 'SDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbYXppIGxhXSBMVCIsbmV4dERheToiW21ceGUyaW5lIGxhXSBMVCIsbmV4dFdlZWs6ImRkZGQgW2xhXSBMVCIsbGFzdERheToiW2llcmkgbGFdIExUIixsYXN0V2VlazoiW2Zvc3RhXSBkZGRkIFtsYV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRp'@; put 'dmVUaW1lOntmdXR1cmU6InBlc3RlICVzIixwYXN0OiIlcyBceGVlbiB1cm1cdTAxMDMiLHM6ImNceGUydGV2YSBzZWN1bmRlIixzczpfLG06InVuIG1pbnV0IixtbTpfLGg6Im8gb3JcdTAxMDMiLGhoOl8sZDoibyB6aSIsZGQ6Xyx3OiJvIHNcdTAxMDNwdFx1MDEwM21ceGUyblx1MDEwMyIs'@; put 'd3c6XyxNOiJvIGx1blx1MDEwMyIsTU06Xyx5OiJ1biBhbiIseXk6X30sd2Vlazp7ZG93OjEsZG95Ojd9fSl9KGIoOTc1ODYpKX0sNTEzMjY6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHAoRixILFIpe3JldHVybiJtIj09PVI/SD8iXHUwNDNj'@; put 'XHUwNDM4XHUwNDNkXHUwNDQzXHUwNDQyXHUwNDMwIjoiXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDQyXHUwNDQzIjpGKyIgIitmdW5jdGlvbiBfKEYsSCl7dmFyIFI9Ri5zcGxpdCgiXyIpO3JldHVybiBIJTEwPT0xJiZIJTEwMCE9MTE/UlswXTpIJTEwPj0yJiZIJTEwPD00JiYoSCUx'@; put 'MDA8MTB8fEglMTAwPj0yMCk/UlsxXTpSWzJdfSh7c3M6SD8iXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDMwX1x1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQ0Yl9cdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzQiOiJcdTA0'@; put 'NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0NDNfXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDRiX1x1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNCIsbW06SD8iXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDQyXHUwNDMwX1x1'@; put 'MDQzY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQ0Mlx1MDQ0Yl9cdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDIiOiJcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDJcdTA0NDNfXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDQyXHUwNDRiX1x1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0'@; put 'M1x1MDQ0MiIsaGg6Ilx1MDQ0N1x1MDQzMFx1MDQ0MV9cdTA0NDdcdTA0MzBcdTA0NDFcdTA0MzBfXHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDNlXHUwNDMyIixkZDoiXHUwNDM0XHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQzNFx1MDQzZFx1MDQ0Zl9cdTA0MzRcdTA0M2RcdTA0MzVcdTA0MzkiLHd3'@; put 'OiJcdTA0M2RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M2JcdTA0NGZfXHUwNDNkXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNiXHUwNDM4X1x1MDQzZFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzYlx1MDQ0YyIsTU06Ilx1MDQzY1x1MDQzNVx1MDQ0MVx1MDQ0Zlx1MDQ0Nl9cdTA0M2NcdTA0MzVcdTA0'@; put 'NDFcdTA0NGZcdTA0NDZcdTA0MzBfXHUwNDNjXHUwNDM1XHUwNDQxXHUwNDRmXHUwNDQ2XHUwNDM1XHUwNDMyIix5eToiXHUwNDMzXHUwNDNlXHUwNDM0X1x1MDQzM1x1MDQzZVx1MDQzNFx1MDQzMF9cdTA0M2JcdTA0MzVcdTA0NDIifVtSXSwrRil9dmFyIE49Wy9eXHUwNDRmXHUwNDNkXHUw'@; put 'NDMyL2ksL15cdTA0NDRcdTA0MzVcdTA0MzIvaSwvXlx1MDQzY1x1MDQzMFx1MDQ0MC9pLC9eXHUwNDMwXHUwNDNmXHUwNDQwL2ksL15cdTA0M2NcdTA0MzBbXHUwNDM5XHUwNDRmXS9pLC9eXHUwNDM4XHUwNDRlXHUwNDNkL2ksL15cdTA0MzhcdTA0NGVcdTA0M2IvaSwvXlx1MDQzMFx1MDQz'@; put 'Mlx1MDQzMy9pLC9eXHUwNDQxXHUwNDM1XHUwNDNkL2ksL15cdTA0M2VcdTA0M2FcdTA0NDIvaSwvXlx1MDQzZFx1MDQzZVx1MDQ0Zi9pLC9eXHUwNDM0XHUwNDM1XHUwNDNhL2ldO0QuZGVmaW5lTG9jYWxlKCJydSIse21vbnRoczp7Zm9ybWF0OiJcdTA0NGZcdTA0M2RcdTA0MzJcdTA0MzBc'@; put 'dTA0NDBcdTA0NGZfXHUwNDQ0XHUwNDM1XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDNiXHUwNDRmX1x1MDQzY1x1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzMF9cdTA0MzBcdTA0M2ZcdTA0NDBcdTA0MzVcdTA0M2JcdTA0NGZfXHUwNDNjXHUwNDMwXHUwNDRmX1x1MDQzOFx1MDQ0ZVx1MDQzZFx1MDQ0'@; put 'Zl9cdTA0MzhcdTA0NGVcdTA0M2JcdTA0NGZfXHUwNDMwXHUwNDMyXHUwNDMzXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwX1x1MDQ0MVx1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQ0Zlx1MDQzMVx1MDQ0MFx1MDQ0Zl9cdTA0M2VcdTA0M2FcdTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBcdTA0NGZfXHUw'@; put 'NDNkXHUwNDNlXHUwNDRmXHUwNDMxXHUwNDQwXHUwNDRmX1x1MDQzNFx1MDQzNVx1MDQzYVx1MDQzMFx1MDQzMVx1MDQ0MFx1MDQ0ZiIuc3BsaXQoIl8iKSxzdGFuZGFsb25lOiJcdTA0NGZcdTA0M2RcdTA0MzJcdTA0MzBcdTA0NDBcdTA0NGNfXHUwNDQ0XHUwNDM1XHUwNDMyXHUwNDQwXHUw'@; put 'NDMwXHUwNDNiXHUwNDRjX1x1MDQzY1x1MDQzMFx1MDQ0MFx1MDQ0Ml9cdTA0MzBcdTA0M2ZcdTA0NDBcdTA0MzVcdTA0M2JcdTA0NGNfXHUwNDNjXHUwNDMwXHUwNDM5X1x1MDQzOFx1MDQ0ZVx1MDQzZFx1MDQ0Y19cdTA0MzhcdTA0NGVcdTA0M2JcdTA0NGNfXHUwNDMwXHUwNDMyXHUwNDMz'@; put 'XHUwNDQzXHUwNDQxXHUwNDQyX1x1MDQ0MVx1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQ0Zlx1MDQzMVx1MDQ0MFx1MDQ0Y19cdTA0M2VcdTA0M2FcdTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBcdTA0NGNfXHUwNDNkXHUwNDNlXHUwNDRmXHUwNDMxXHUwNDQwXHUwNDRjX1x1MDQzNFx1MDQzNVx1MDQz'@; put 'YVx1MDQzMFx1MDQzMVx1MDQ0MFx1MDQ0YyIuc3BsaXQoIl8iKX0sbW9udGhzU2hvcnQ6e2Zvcm1hdDoiXHUwNDRmXHUwNDNkXHUwNDMyLl9cdTA0NDRcdTA0MzVcdTA0MzJcdTA0NDAuX1x1MDQzY1x1MDQzMFx1MDQ0MC5fXHUwNDMwXHUwNDNmXHUwNDQwLl9cdTA0M2NcdTA0MzBcdTA0NGZf'@; put 'XHUwNDM4XHUwNDRlXHUwNDNkXHUwNDRmX1x1MDQzOFx1MDQ0ZVx1MDQzYlx1MDQ0Zl9cdTA0MzBcdTA0MzJcdTA0MzMuX1x1MDQ0MVx1MDQzNVx1MDQzZFx1MDQ0Mi5fXHUwNDNlXHUwNDNhXHUwNDQyLl9cdTA0M2RcdTA0M2VcdTA0NGZcdTA0MzEuX1x1MDQzNFx1MDQzNVx1MDQzYS4iLnNw'@; put 'bGl0KCJfIiksc3RhbmRhbG9uZToiXHUwNDRmXHUwNDNkXHUwNDMyLl9cdTA0NDRcdTA0MzVcdTA0MzJcdTA0NDAuX1x1MDQzY1x1MDQzMFx1MDQ0MFx1MDQ0Ml9cdTA0MzBcdTA0M2ZcdTA0NDAuX1x1MDQzY1x1MDQzMFx1MDQzOV9cdTA0MzhcdTA0NGVcdTA0M2RcdTA0NGNfXHUwNDM4XHUw'@; put 'NDRlXHUwNDNiXHUwNDRjX1x1MDQzMFx1MDQzMlx1MDQzMy5fXHUwNDQxXHUwNDM1XHUwNDNkXHUwNDQyLl9cdTA0M2VcdTA0M2FcdTA0NDIuX1x1MDQzZFx1MDQzZVx1MDQ0Zlx1MDQzMS5fXHUwNDM0XHUwNDM1XHUwNDNhLiIuc3BsaXQoIl8iKX0sd2Vla2RheXM6e3N0YW5kYWxvbmU6Ilx1'@; put 'MDQzMlx1MDQzZVx1MDQ0MVx1MDQzYVx1MDQ0MFx1MDQzNVx1MDQ0MVx1MDQzNVx1MDQzZFx1MDQ0Y1x1MDQzNV9cdTA0M2ZcdTA0M2VcdTA0M2RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2RcdTA0MzhcdTA0M2FfXHUwNDMyXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDNkXHUw'@; put 'NDM4XHUwNDNhX1x1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzMF9cdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzNfXHUwNDNmXHUwNDRmXHUwNDQyXHUwNDNkXHUwNDM4XHUwNDQ2XHUwNDMwX1x1MDQ0MVx1MDQ0M1x1MDQzMVx1MDQzMVx1MDQzZVx1MDQ0Mlx1'@; put 'MDQzMCIuc3BsaXQoIl8iKSxmb3JtYXQ6Ilx1MDQzMlx1MDQzZVx1MDQ0MVx1MDQzYVx1MDQ0MFx1MDQzNVx1MDQ0MVx1MDQzNVx1MDQzZFx1MDQ0Y1x1MDQzNV9cdTA0M2ZcdTA0M2VcdTA0M2RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M2JcdTA0NGNcdTA0M2RcdTA0MzhcdTA0M2FfXHUwNDMy'@; put 'XHUwNDQyXHUwNDNlXHUwNDQwXHUwNDNkXHUwNDM4XHUwNDNhX1x1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0M19cdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzNfXHUwNDNmXHUwNDRmXHUwNDQyXHUwNDNkXHUwNDM4XHUwNDQ2XHUwNDQzX1x1MDQ0MVx1MDQ0'@; put 'M1x1MDQzMVx1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQ0MyIuc3BsaXQoIl8iKSxpc0Zvcm1hdDovXFsgP1tcdTA0MTJcdTA0MzJdID8oPzpcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDhcdTA0M2JcdTA0NDNcdTA0NGV8XHUwNDQxXHUwNDNiXHUwNDM1XHUwNDM0XHUwNDQzXHUwNDRlXHUwNDQ5XHUw'@; put 'NDQzXHUwNDRlfFx1MDQ0ZFx1MDQ0Mlx1MDQ0Myk/ID9dID9kZGRkL30sd2Vla2RheXNTaG9ydDoiXHUwNDMyXHUwNDQxX1x1MDQzZlx1MDQzZF9cdTA0MzJcdTA0NDJfXHUwNDQxXHUwNDQwX1x1MDQ0N1x1MDQ0Ml9cdTA0M2ZcdTA0NDJfXHUwNDQxXHUwNDMxIi5zcGxpdCgiXyIpLHdlZWtk'@; put 'YXlzTWluOiJcdTA0MzJcdTA0NDFfXHUwNDNmXHUwNDNkX1x1MDQzMlx1MDQ0Ml9cdTA0NDFcdTA0NDBfXHUwNDQ3XHUwNDQyX1x1MDQzZlx1MDQ0Ml9cdTA0NDFcdTA0MzEiLnNwbGl0KCJfIiksbW9udGhzUGFyc2U6Tixsb25nTW9udGhzUGFyc2U6TixzaG9ydE1vbnRoc1BhcnNlOk4sbW9u'@; put 'dGhzUmVnZXg6L14oXHUwNDRmXHUwNDNkXHUwNDMyXHUwNDMwXHUwNDQwW1x1MDQ0Y1x1MDQ0Zl18XHUwNDRmXHUwNDNkXHUwNDMyXC4/fFx1MDQ0NFx1MDQzNVx1MDQzMlx1MDQ0MFx1MDQzMFx1MDQzYltcdTA0NGNcdTA0NGZdfFx1MDQ0NFx1MDQzNVx1MDQzMlx1MDQ0MD9cLj98XHUwNDNj'@; put 'XHUwNDMwXHUwNDQwXHUwNDQyXHUwNDMwP3xcdTA0M2NcdTA0MzBcdTA0NDBcLj98XHUwNDMwXHUwNDNmXHUwNDQwXHUwNDM1XHUwNDNiW1x1MDQ0Y1x1MDQ0Zl18XHUwNDMwXHUwNDNmXHUwNDQwXC4/fFx1MDQzY1x1MDQzMFtcdTA0MzlcdTA0NGZdfFx1MDQzOFx1MDQ0ZVx1MDQzZFtcdTA0'@; put 'NGNcdTA0NGZdfFx1MDQzOFx1MDQ0ZVx1MDQzZFwuP3xcdTA0MzhcdTA0NGVcdTA0M2JbXHUwNDRjXHUwNDRmXXxcdTA0MzhcdTA0NGVcdTA0M2JcLj98XHUwNDMwXHUwNDMyXHUwNDMzXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwP3xcdTA0MzBcdTA0MzJcdTA0MzNcLj98XHUwNDQxXHUwNDM1'@; put 'XHUwNDNkXHUwNDQyXHUwNDRmXHUwNDMxXHUwNDQwW1x1MDQ0Y1x1MDQ0Zl18XHUwNDQxXHUwNDM1XHUwNDNkXHUwNDQyP1wuP3xcdTA0M2VcdTA0M2FcdTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBbXHUwNDRjXHUwNDRmXXxcdTA0M2VcdTA0M2FcdTA0NDJcLj98XHUwNDNkXHUwNDNlXHUwNDRm'@; put 'XHUwNDMxXHUwNDQwW1x1MDQ0Y1x1MDQ0Zl18XHUwNDNkXHUwNDNlXHUwNDRmXHUwNDMxP1wuP3xcdTA0MzRcdTA0MzVcdTA0M2FcdTA0MzBcdTA0MzFcdTA0NDBbXHUwNDRjXHUwNDRmXXxcdTA0MzRcdTA0MzVcdTA0M2FcLj8pL2ksbW9udGhzU2hvcnRSZWdleDovXihcdTA0NGZcdTA0M2Rc'@; put 'dTA0MzJcdTA0MzBcdTA0NDBbXHUwNDRjXHUwNDRmXXxcdTA0NGZcdTA0M2RcdTA0MzJcLj98XHUwNDQ0XHUwNDM1XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDNiW1x1MDQ0Y1x1MDQ0Zl18XHUwNDQ0XHUwNDM1XHUwNDMyXHUwNDQwP1wuP3xcdTA0M2NcdTA0MzBcdTA0NDBcdTA0NDJcdTA0MzA/'@; put 'fFx1MDQzY1x1MDQzMFx1MDQ0MFwuP3xcdTA0MzBcdTA0M2ZcdTA0NDBcdTA0MzVcdTA0M2JbXHUwNDRjXHUwNDRmXXxcdTA0MzBcdTA0M2ZcdTA0NDBcLj98XHUwNDNjXHUwNDMwW1x1MDQzOVx1MDQ0Zl18XHUwNDM4XHUwNDRlXHUwNDNkW1x1MDQ0Y1x1MDQ0Zl18XHUwNDM4XHUwNDRlXHUw'@; put 'NDNkXC4/fFx1MDQzOFx1MDQ0ZVx1MDQzYltcdTA0NGNcdTA0NGZdfFx1MDQzOFx1MDQ0ZVx1MDQzYlwuP3xcdTA0MzBcdTA0MzJcdTA0MzNcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzA/fFx1MDQzMFx1MDQzMlx1MDQzM1wuP3xcdTA0NDFcdTA0MzVcdTA0M2RcdTA0NDJcdTA0NGZcdTA0MzFc'@; put 'dTA0NDBbXHUwNDRjXHUwNDRmXXxcdTA0NDFcdTA0MzVcdTA0M2RcdTA0NDI/XC4/fFx1MDQzZVx1MDQzYVx1MDQ0Mlx1MDQ0Zlx1MDQzMVx1MDQ0MFtcdTA0NGNcdTA0NGZdfFx1MDQzZVx1MDQzYVx1MDQ0MlwuP3xcdTA0M2RcdTA0M2VcdTA0NGZcdTA0MzFcdTA0NDBbXHUwNDRjXHUwNDRm'@; put 'XXxcdTA0M2RcdTA0M2VcdTA0NGZcdTA0MzE/XC4/fFx1MDQzNFx1MDQzNVx1MDQzYVx1MDQzMFx1MDQzMVx1MDQ0MFtcdTA0NGNcdTA0NGZdfFx1MDQzNFx1MDQzNVx1MDQzYVwuPykvaSxtb250aHNTdHJpY3RSZWdleDovXihcdTA0NGZcdTA0M2RcdTA0MzJcdTA0MzBcdTA0NDBbXHUwNDRm'@; put 'XHUwNDRjXXxcdTA0NDRcdTA0MzVcdTA0MzJcdTA0NDBcdTA0MzBcdTA0M2JbXHUwNDRmXHUwNDRjXXxcdTA0M2NcdTA0MzBcdTA0NDBcdTA0NDJcdTA0MzA/fFx1MDQzMFx1MDQzZlx1MDQ0MFx1MDQzNVx1MDQzYltcdTA0NGZcdTA0NGNdfFx1MDQzY1x1MDQzMFtcdTA0NGZcdTA0MzldfFx1'@; put 'MDQzOFx1MDQ0ZVx1MDQzZFtcdTA0NGZcdTA0NGNdfFx1MDQzOFx1MDQ0ZVx1MDQzYltcdTA0NGZcdTA0NGNdfFx1MDQzMFx1MDQzMlx1MDQzM1x1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMD98XHUwNDQxXHUwNDM1XHUwNDNkXHUwNDQyXHUwNDRmXHUwNDMxXHUwNDQwW1x1MDQ0Zlx1MDQ0Y118'@; put 'XHUwNDNlXHUwNDNhXHUwNDQyXHUwNDRmXHUwNDMxXHUwNDQwW1x1MDQ0Zlx1MDQ0Y118XHUwNDNkXHUwNDNlXHUwNDRmXHUwNDMxXHUwNDQwW1x1MDQ0Zlx1MDQ0Y118XHUwNDM0XHUwNDM1XHUwNDNhXHUwNDMwXHUwNDMxXHUwNDQwW1x1MDQ0Zlx1MDQ0Y10pL2ksbW9udGhzU2hvcnRTdHJp'@; put 'Y3RSZWdleDovXihcdTA0NGZcdTA0M2RcdTA0MzJcLnxcdTA0NDRcdTA0MzVcdTA0MzJcdTA0NDA/XC58XHUwNDNjXHUwNDMwXHUwNDQwW1x1MDQ0Mi5dfFx1MDQzMFx1MDQzZlx1MDQ0MFwufFx1MDQzY1x1MDQzMFtcdTA0NGZcdTA0MzldfFx1MDQzOFx1MDQ0ZVx1MDQzZFtcdTA0NGNcdTA0'@; put 'NGYuXXxcdTA0MzhcdTA0NGVcdTA0M2JbXHUwNDRjXHUwNDRmLl18XHUwNDMwXHUwNDMyXHUwNDMzXC58XHUwNDQxXHUwNDM1XHUwNDNkXHUwNDQyP1wufFx1MDQzZVx1MDQzYVx1MDQ0MlwufFx1MDQzZFx1MDQzZVx1MDQ0Zlx1MDQzMT9cLnxcdTA0MzRcdTA0MzVcdTA0M2FcLikvaSxsb25n'@; put 'RGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQgTU1NTSBZWVlZIFx1MDQzMy4iLExMTDoiRCBNTU1NIFlZWVkgXHUwNDMzLiwgSDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgXHUwNDMzLiwgSDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5'@; put 'OiJbXHUwNDIxXHUwNDM1XHUwNDMzXHUwNDNlXHUwNDM0XHUwNDNkXHUwNDRmLCBcdTA0MzJdIExUIixuZXh0RGF5OiJbXHUwNDE3XHUwNDMwXHUwNDMyXHUwNDQyXHUwNDQwXHUwNDMwLCBcdTA0MzJdIExUIixsYXN0RGF5OiJbXHUwNDEyXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDMwLCBcdTA0'@; put 'MzJdIExUIixuZXh0V2VlazpmdW5jdGlvbihGKXtpZihGLndlZWsoKT09PXRoaXMud2VlaygpKXJldHVybiAyPT09dGhpcy5kYXkoKT8iW1x1MDQxMlx1MDQzZV0gZGRkZCwgW1x1MDQzMl0gTFQiOiJbXHUwNDEyXSBkZGRkLCBbXHUwNDMyXSBMVCI7c3dpdGNoKHRoaXMuZGF5KCkpe2Nhc2Ug'@; put 'MDpyZXR1cm4iW1x1MDQxMiBcdTA0NDFcdTA0M2JcdTA0MzVcdTA0MzRcdTA0NDNcdTA0NGVcdTA0NDlcdTA0MzVcdTA0MzVdIGRkZGQsIFtcdTA0MzJdIExUIjtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpyZXR1cm4iW1x1MDQxMiBcdTA0NDFcdTA0M2JcdTA0MzVcdTA0MzRcdTA0NDNcdTA0NGVc'@; put 'dTA0NDlcdTA0MzhcdTA0MzldIGRkZGQsIFtcdTA0MzJdIExUIjtjYXNlIDM6Y2FzZSA1OmNhc2UgNjpyZXR1cm4iW1x1MDQxMiBcdTA0NDFcdTA0M2JcdTA0MzVcdTA0MzRcdTA0NDNcdTA0NGVcdTA0NDlcdTA0NDNcdTA0NGVdIGRkZGQsIFtcdTA0MzJdIExUIn19LGxhc3RXZWVrOmZ1bmN0'@; put 'aW9uKEYpe2lmKEYud2VlaygpPT09dGhpcy53ZWVrKCkpcmV0dXJuIDI9PT10aGlzLmRheSgpPyJbXHUwNDEyXHUwNDNlXSBkZGRkLCBbXHUwNDMyXSBMVCI6IltcdTA0MTJdIGRkZGQsIFtcdTA0MzJdIExUIjtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOnJldHVybiJbXHUwNDEyIFx1MDQz'@; put 'Zlx1MDQ0MFx1MDQzZVx1MDQ0OFx1MDQzYlx1MDQzZVx1MDQzNV0gZGRkZCwgW1x1MDQzMl0gTFQiO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OnJldHVybiJbXHUwNDEyIFx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0OFx1MDQzYlx1MDQ0Ylx1MDQzOV0gZGRkZCwgW1x1MDQzMl0gTFQiO2Nhc2UgMzpj'@; put 'YXNlIDU6Y2FzZSA2OnJldHVybiJbXHUwNDEyIFx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0OFx1MDQzYlx1MDQ0M1x1MDQ0ZV0gZGRkZCwgW1x1MDQzMl0gTFQifX0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM3ICVzIixw'@; put 'YXN0OiIlcyBcdTA0M2RcdTA0MzBcdTA0MzdcdTA0MzBcdTA0MzQiLHM6Ilx1MDQzZFx1MDQzNVx1MDQ0MVx1MDQzYVx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQzZSBcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzQiLHNzOnAsbTpwLG1tOnAsaDoiXHUwNDQ3XHUwNDMw'@; put 'XHUwNDQxIixoaDpwLGQ6Ilx1MDQzNFx1MDQzNVx1MDQzZFx1MDQ0YyIsZGQ6cCx3OiJcdTA0M2RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M2JcdTA0NGYiLHd3OnAsTToiXHUwNDNjXHUwNDM1XHUwNDQxXHUwNDRmXHUwNDQ2IixNTTpwLHk6Ilx1MDQzM1x1MDQzZVx1MDQzNCIseXk6cH0sbWVy'@; put 'aWRpZW1QYXJzZTovXHUwNDNkXHUwNDNlXHUwNDQ3XHUwNDM4fFx1MDQ0M1x1MDQ0Mlx1MDQ0MFx1MDQzMHxcdTA0MzRcdTA0M2RcdTA0NGZ8XHUwNDMyXHUwNDM1XHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDMwL2ksaXNQTTpmdW5jdGlvbihGKXtyZXR1cm4vXihcdTA0MzRcdTA0M2RcdTA0NGZ8'@; put 'XHUwNDMyXHUwNDM1XHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDMwKSQvLnRlc3QoRil9LG1lcmlkaWVtOmZ1bmN0aW9uKEYsSCxSKXtyZXR1cm4gRjw0PyJcdTA0M2RcdTA0M2VcdTA0NDdcdTA0MzgiOkY8MTI/Ilx1MDQ0M1x1MDQ0Mlx1MDQ0MFx1MDQzMCI6RjwxNz8iXHUwNDM0XHUwNDNkXHUw'@; put 'NDRmIjoiXHUwNDMyXHUwNDM1XHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDMwIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfS0oXHUwNDM5fFx1MDQzM1x1MDQzZXxcdTA0NGYpLyxvcmRpbmFsOmZ1bmN0aW9uKEYsSCl7c3dpdGNoKEgpe2Nhc2UiTSI6Y2FzZSJkIjpjYXNlIkRERCI6'@; put 'cmV0dXJuIEYrIi1cdTA0MzkiO2Nhc2UiRCI6cmV0dXJuIEYrIi1cdTA0MzNcdTA0M2UiO2Nhc2UidyI6Y2FzZSJXIjpyZXR1cm4gRisiLVx1MDQ0ZiI7ZGVmYXVsdDpyZXR1cm4gRn19LHdlZWs6e2RvdzoxLGRveTo0fX0pfShiKDk3NTg2KSl9LDcyNjA4OmZ1bmN0aW9uKGNlLEosYil7IWZ1'@; put 'bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0Ijt2YXIgXz1bIlx1MDYyY1x1MDY0Nlx1MDY0OFx1MDYzMVx1MDY0YSIsIlx1MDY0MVx1MDY0YVx1MDYyOFx1MDYzMVx1MDY0OFx1MDYzMVx1MDY0YSIsIlx1MDY0NVx1MDYyN1x1MDYzMVx1MDY4NiIsIlx1MDYyN1x1MDY3ZVx1MDYzMVx1MDY0YVx1MDY0'@; put 'NCIsIlx1MDY0NVx1MDYyNlx1MDY0YSIsIlx1MDYyY1x1MDY0OFx1MDY0NiIsIlx1MDYyY1x1MDY0OFx1MDY0NFx1MDYyN1x1MDYyMVx1MDY1MCIsIlx1MDYyMlx1MDZhZlx1MDYzM1x1MDY3ZCIsIlx1MDYzM1x1MDY0YVx1MDY3ZVx1MDY3ZFx1MDY0NVx1MDYyOFx1MDYzMSIsIlx1MDYyMlx1'@; put 'MDZhYVx1MDY3ZFx1MDY0OFx1MDYyOFx1MDYzMSIsIlx1MDY0Nlx1MDY0OFx1MDY0NVx1MDYyOFx1MDYzMSIsIlx1MDY4YVx1MDYzM1x1MDY0NVx1MDYyOFx1MDYzMSJdLHA9WyJcdTA2MjJcdTA2ODZcdTA2MzEiLCJcdTA2MzNcdTA2NDhcdTA2NDVcdTA2MzEiLCJcdTA2MjdcdTA2YjFcdTA2'@; put 'MjdcdTA2MzFcdTA2NDgiLCJcdTA2MjdcdTA2MzFcdTA2MjhcdTA2MzkiLCJcdTA2MmVcdTA2NDVcdTA2NGFcdTA2MzMiLCJcdTA2MmNcdTA2NDVcdTA2MzkiLCJcdTA2ODdcdTA2NDZcdTA2ODdcdTA2MzEiXTtELmRlZmluZUxvY2FsZSgic2QiLHttb250aHM6Xyxtb250aHNTaG9ydDpfLHdl'@; put 'ZWtkYXlzOnAsd2Vla2RheXNTaG9ydDpwLHdlZWtkYXlzTWluOnAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkXHUwNjBjIEQgTU1NTSBZWVlZ'@; put 'IEhIOm1tIn0sbWVyaWRpZW1QYXJzZTovXHUwNjM1XHUwNjI4XHUwNjJkfFx1MDYzNFx1MDYyN1x1MDY0NS8saXNQTTpmdW5jdGlvbih3KXtyZXR1cm4iXHUwNjM0XHUwNjI3XHUwNjQ1Ij09PXd9LG1lcmlkaWVtOmZ1bmN0aW9uKHcsRixIKXtyZXR1cm4gdzwxMj8iXHUwNjM1XHUwNjI4XHUw'@; put 'NjJkIjoiXHUwNjM0XHUwNjI3XHUwNjQ1In0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA2MjdcdTA2ODRdIExUIixuZXh0RGF5OiJbXHUwNjMzXHUwNjgwXHUwNjI3XHUwNmJiXHUwNjRhXSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDYyN1x1MDZiM1x1MDY0YVx1MDY0NiBcdTA2NDdcdTA2NDFc'@; put 'dTA2MmFcdTA2NGEgXHUwNjJhXHUwNjRhXSBMVCIsbGFzdERheToiW1x1MDZhYVx1MDYyN1x1MDY0NFx1MDY0N1x1MDY0N10gTFQiLGxhc3RXZWVrOiJbXHUwNmFmXHUwNjMyXHUwNjMxXHUwNjRhXHUwNjQ0IFx1MDY0N1x1MDY0MVx1MDYyYVx1MDY0YV0gZGRkZCBbXHUwNjJhXHUwNjRhXSBM'@; put 'VCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwNjdlXHUwNjQ4XHUwNjIxIixwYXN0OiIlcyBcdTA2MjdcdTA2YjMiLHM6Ilx1MDY4Nlx1MDY0Nlx1MDYyZiBcdTA2MzNcdTA2NGFcdTA2YWFcdTA2NDZcdTA2OGEiLHNzOiIlZCBcdTA2MzNcdTA2NGFcdTA2YWFc'@; put 'dTA2NDZcdTA2OGEiLG06Ilx1MDY0N1x1MDZhYSBcdTA2NDVcdTA2NDZcdTA2N2QiLG1tOiIlZCBcdTA2NDVcdTA2NDZcdTA2N2QiLGg6Ilx1MDY0N1x1MDZhYSBcdTA2YWFcdTA2NDRcdTA2MjdcdTA2YWEiLGhoOiIlZCBcdTA2YWFcdTA2NDRcdTA2MjdcdTA2YWEiLGQ6Ilx1MDY0N1x1MDZh'@; put 'YSBcdTA2OGZcdTA2NGFcdTA2NDZcdTA2NDdcdTA2NDYiLGRkOiIlZCBcdTA2OGZcdTA2NGFcdTA2NDZcdTA2NDdcdTA2NDYiLE06Ilx1MDY0N1x1MDZhYSBcdTA2NDVcdTA2NDdcdTA2NGFcdTA2NDZcdTA2NDgiLE1NOiIlZCBcdTA2NDVcdTA2NDdcdTA2NGFcdTA2NDZcdTA2MjciLHk6Ilx1'@; put 'MDY0N1x1MDZhYSBcdTA2MzNcdTA2MjdcdTA2NDQiLHl5OiIlZCBcdTA2MzNcdTA2MjdcdTA2NDQifSxwcmVwYXJzZTpmdW5jdGlvbih3KXtyZXR1cm4gdy5yZXBsYWNlKC9cdTA2MGMvZywiLCIpfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKHcpe3JldHVybiB3LnJlcGxhY2UoLywvZywiXHUwNjBj'@; put 'Iil9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShiKDk3NTg2KSl9LDEzOTExOmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0IjtELmRlZmluZUxvY2FsZSgic2UiLHttb250aHM6Im9cdTAxMTFcdTAxMTFhamFnZW1ceGUxbm51X2d1b3Z2YW1ceGUxbm51X25qdWtcdTAx'@; put 'MGRhbVx4ZTFubnVfY3VvXHUwMTRib21ceGUxbm51X21pZXNzZW1ceGUxbm51X2dlYXNzZW1ceGUxbm51X3N1b2lkbmVtXHhlMW5udV9ib3JnZW1ceGUxbm51X1x1MDEwZGFrXHUwMTBkYW1ceGUxbm51X2dvbGdnb3RtXHhlMW5udV9za1x4ZTFibWFtXHhlMW5udV9qdW92bGFtXHhlMW5udSIu'@; put 'c3BsaXQoIl8iKSxtb250aHNTaG9ydDoib1x1MDExMVx1MDExMWpfZ3Vvdl9uanVrX2N1b19taWVzX2dlYXNfc3VvaV9ib3JnX1x1MDEwZGFrXHUwMTBkX2dvbGdfc2tceGUxYl9qdW92Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOiJzb3RuYWJlYWl2aV92dW9zc1x4ZTFyZ2FfbWFcdTAxNGJcdTAx'@; put 'NGJlYlx4ZTFyZ2FfZ2Fza2F2YWhra3VfZHVvcmFzdGF0X2JlYXJqYWRhdF9sXHhlMXZ2YXJkYXQiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoic290bl92dW9zX21hXHUwMTRiX2dhc2tfZHVvcl9iZWFyX2xceGUxdiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoic192X21fZ19kX2JfTCIu'@; put 'c3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiTU1NTSBELiBbYi5dIFlZWVkiLExMTDoiTU1NTSBELiBbYi5dIFlZWVkgW3RpLl0gSEg6bW0iLExMTEw6ImRkZGQsIE1NTU0gRC4gW2IuXSBZWVlZIFt0aS5dIEhI'@; put 'Om1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltvdG5lIHRpXSBMVCIsbmV4dERheToiW2lodHRpbiB0aV0gTFQiLG5leHRXZWVrOiJkZGRkIFt0aV0gTFQiLGxhc3REYXk6Iltpa3RlIHRpXSBMVCIsbGFzdFdlZWs6IltvdmRkaXRdIGRkZGQgW3RpXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2'@; put 'ZVRpbWU6e2Z1dHVyZToiJXMgZ2VhXHUwMTdlZXMiLHBhc3Q6Im1hXHUwMTRiaXQgJXMiLHM6Im1vYWRkZSBzZWt1bmRkYXQiLHNzOiIlZCBzZWt1bmRkYXQiLG06Im9rdGEgbWludWh0YSIsbW06IiVkIG1pbnVodGF0IixoOiJva3RhIGRpaW1tdSIsaGg6IiVkIGRpaW1tdXQiLGQ6Im9rdGEg'@; put 'YmVhaXZpIixkZDoiJWQgYmVhaXZ2aXQiLE06Im9rdGEgbVx4ZTFubnUiLE1NOiIlZCBtXHhlMW51dCIseToib2t0YSBqYWhraSIseXk6IiVkIGphZ2l0In0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo0fX0pfShiKDk3'@; put 'NTg2KSl9LDI1MTQ3OmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0IjtELmRlZmluZUxvY2FsZSgic2kiLHttb250aHM6Ilx1MGRhMlx1MGRiMVx1MGRjMFx1MGRjZlx1MGRiYlx1MGRkMl9cdTBkYjRcdTBkZDlcdTBkYjZcdTBkYmJcdTBkYzBcdTBkY2ZcdTBkYmJc'@; put 'dTBkZDJfXHUwZGI4XHUwZGNmXHUwZGJiXHUwZGNhXHUwZGFkXHUwZGQ0X1x1MGQ4NVx1MGRiNFx1MGRjYVx1MjAwZFx1MGRiYlx1MGRkYVx1MGRiZFx1MGRjYV9cdTBkYjhcdTBkZDBcdTBkYmFcdTBkZDJfXHUwZGEyXHUwZGQ2XHUwZGIxXHUwZGQyX1x1MGRhMlx1MGRkNlx1MGRiZFx1MGRk'@; put 'Ml9cdTBkODVcdTBkOWNcdTBkZGRcdTBkYzNcdTBkY2FcdTBkYWRcdTBkZDRfXHUwZGMzXHUwZGQwXHUwZGI0XHUwZGNhXHUwZGFkXHUwZGQwXHUwZGI4XHUwZGNhXHUwZGI2XHUwZGJiXHUwZGNhX1x1MGQ5NFx1MGQ5YVx1MGRjYVx1MGRhZFx1MGRkZFx1MGRiNlx1MGRiYlx1MGRjYV9cdTBk'@; put 'YjFcdTBkZGNcdTBkYzBcdTBkZDBcdTBkYjhcdTBkY2FcdTBkYjZcdTBkYmJcdTBkY2FfXHUwZGFmXHUwZGQ5XHUwZGMzXHUwZGQwXHUwZGI4XHUwZGNhXHUwZGI2XHUwZGJiXHUwZGNhIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTBkYTJcdTBkYjFfXHUwZGI0XHUwZGQ5XHUwZGI2X1x1'@; put 'MGRiOFx1MGRjZlx1MGRiYlx1MGRjYV9cdTBkODVcdTBkYjRcdTBkY2FfXHUwZGI4XHUwZGQwXHUwZGJhXHUwZGQyX1x1MGRhMlx1MGRkNlx1MGRiMVx1MGRkMl9cdTBkYTJcdTBkZDZcdTBkYmRcdTBkZDJfXHUwZDg1XHUwZDljXHUwZGRkX1x1MGRjM1x1MGRkMFx1MGRiNFx1MGRjYV9cdTBk'@; put 'OTRcdTBkOWFcdTBkY2FfXHUwZGIxXHUwZGRjXHUwZGMwXHUwZGQwX1x1MGRhZlx1MGRkOVx1MGRjM1x1MGRkMCIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwZDg5XHUwZGJiXHUwZGQyXHUwZGFmXHUwZGNmX1x1MGRjM1x1MGRiM1x1MGRkNFx1MGRhZlx1MGRjZl9cdTBkODVcdTBkOWZcdTBk'@; put 'YzRcdTBkYmJcdTBkZDRcdTBkYzBcdTBkY2ZcdTBkYWZcdTBkY2ZfXHUwZGI2XHUwZGFmXHUwZGNmXHUwZGFmXHUwZGNmX1x1MGRiNlx1MGRjYVx1MjAwZFx1MGRiYlx1MGRjNFx1MGRjM1x1MGRjYVx1MGRiNFx1MGRhZFx1MGRkMlx1MGRiMVx1MGRjYVx1MGRhZlx1MGRjZl9cdTBkYzNcdTBk'@; put 'ZDJcdTBkOWFcdTBkZDRcdTBkYmJcdTBkY2ZcdTBkYWZcdTBkY2ZfXHUwZGMzXHUwZGQ5XHUwZGIxXHUwZGMzXHUwZGQ0XHUwZGJiXHUwZGNmXHUwZGFmXHUwZGNmIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MGQ4OVx1MGRiYlx1MGRkMl9cdTBkYzNcdTBkYjNcdTBkZDRfXHUwZDg1'@; put 'XHUwZDlmX1x1MGRiNlx1MGRhZlx1MGRjZl9cdTBkYjZcdTBkY2FcdTIwMGRcdTBkYmJcdTBkYzRfXHUwZGMzXHUwZGQyXHUwZDlhXHUwZGQ0X1x1MGRjM1x1MGRkOVx1MGRiMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwZDg5X1x1MGRjM19cdTBkODVfXHUwZGI2X1x1MGRiNlx1MGRj'@; put 'YVx1MjAwZFx1MGRiYl9cdTBkYzNcdTBkZDJfXHUwZGMzXHUwZGQ5Ii5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6ImEgaDptbSIsTFRTOiJhIGg6bW06c3MiLEw6IllZWVkvTU0vREQiLExMOiJZWVlZIE1NTU0gRCIsTExMOiJZWVlZIE1NTU0g'@; put 'RCwgYSBoOm1tIixMTExMOiJZWVlZIE1NTU0gRCBbXHUwZGMwXHUwZGQwXHUwZGIxXHUwZGQyXSBkZGRkLCBhIGg6bW06c3MifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MGQ4NVx1MGRhZl0gTFRbXHUwZGE3XSIsbmV4dERheToiW1x1MGRjNFx1MGRkOVx1MGRhN10gTFRbXHUwZGE3XSIsbmV4'@; put 'dFdlZWs6ImRkZGQgTFRbXHUwZGE3XSIsbGFzdERheToiW1x1MGQ4YVx1MGRiYVx1MGRkYV0gTFRbXHUwZGE3XSIsbGFzdFdlZWs6IltcdTBkYjRcdTBkYzNcdTBkZDRcdTBkOWNcdTBkZDJcdTBkYmFdIGRkZGQgTFRbXHUwZGE3XSIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVy'@; put 'ZToiJXNcdTBkOWFcdTBkZDJcdTBkYjFcdTBkY2EiLHBhc3Q6IiVzXHUwZDlhXHUwZGE3IFx1MGRiNFx1MGRkOVx1MGRiYiIsczoiXHUwZGFkXHUwZGFkXHUwZGNhXHUwZGI0XHUwZGJiIFx1MGQ5YVx1MGRkMlx1MGRjNFx1MGRkMlx1MGRiNFx1MGRiYSIsc3M6Ilx1MGRhZFx1MGRhZFx1MGRj'@; put 'YVx1MGRiNFx1MGRiYiAlZCIsbToiXHUwZGI4XHUwZGQyXHUwZGIxXHUwZGQyXHUwZGFkXHUwZGNhXHUwZGFkXHUwZGQ0XHUwZGMwIixtbToiXHUwZGI4XHUwZGQyXHUwZGIxXHUwZGQyXHUwZGFkXHUwZGNhXHUwZGFkXHUwZGQ0ICVkIixoOiJcdTBkYjRcdTBkZDBcdTBkYmEiLGhoOiJcdTBk'@; put 'YjRcdTBkZDBcdTBkYmEgJWQiLGQ6Ilx1MGRhZlx1MGRkMlx1MGRiMVx1MGRiYSIsZGQ6Ilx1MGRhZlx1MGRkMlx1MGRiMSAlZCIsTToiXHUwZGI4XHUwZGNmXHUwZGMzXHUwZGJhIixNTToiXHUwZGI4XHUwZGNmXHUwZGMzICVkIix5OiJcdTBkYzBcdTBkYzNcdTBkYmIiLHl5OiJcdTBkYzBc'@; put 'dTBkYzNcdTBkYmIgJWQifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9IFx1MGRjMFx1MGRkMFx1MGRiMVx1MGRkMi8sb3JkaW5hbDpmdW5jdGlvbihwKXtyZXR1cm4gcCsiIFx1MGRjMFx1MGRkMFx1MGRiMVx1MGRkMiJ9LG1lcmlkaWVtUGFyc2U6L1x1MGRiNFx1MGRkOVx1MGRi'@; put 'YiBcdTBkYzBcdTBkYmJcdTBkZDR8XHUwZGI0XHUwZGMzXHUwZGNhIFx1MGRjMFx1MGRiYlx1MGRkNHxcdTBkYjRcdTBkZDkuXHUwZGMwfFx1MGRiNC5cdTBkYzAuLyxpc1BNOmZ1bmN0aW9uKHApe3JldHVybiJcdTBkYjQuXHUwZGMwLiI9PT1wfHwiXHUwZGI0XHUwZGMzXHUwZGNhIFx1MGRj'@; put 'MFx1MGRiYlx1MGRkNCI9PT1wfSxtZXJpZGllbTpmdW5jdGlvbihwLE4sdyl7cmV0dXJuIHA+MTE/dz8iXHUwZGI0Llx1MGRjMC4iOiJcdTBkYjRcdTBkYzNcdTBkY2EgXHUwZGMwXHUwZGJiXHUwZGQ0Ijp3PyJcdTBkYjRcdTBkZDkuXHUwZGMwLiI6Ilx1MGRiNFx1MGRkOVx1MGRiYiBcdTBk'@; put 'YzBcdTBkYmJcdTBkZDQifX0pfShiKDk3NTg2KSl9LDIzNzQxOmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0Ijt2YXIgXz0iamFudVx4ZTFyX2ZlYnJ1XHhlMXJfbWFyZWNfYXByXHhlZGxfbVx4ZTFqX2pceGZhbl9qXHhmYWxfYXVndXN0X3NlcHRlbWJlcl9va3Rc'@; put 'eGYzYmVyX25vdmVtYmVyX2RlY2VtYmVyIi5zcGxpdCgiXyIpLHA9Imphbl9mZWJfbWFyX2Fwcl9tXHhlMWpfalx4ZmFuX2pceGZhbF9hdWdfc2VwX29rdF9ub3ZfZGVjIi5zcGxpdCgiXyIpO2Z1bmN0aW9uIE4oSCl7cmV0dXJuIEg+MSYmSDw1fWZ1bmN0aW9uIHcoSCxSLGosUCl7dmFyIEw9'@; put 'SCsiICI7c3dpdGNoKGope2Nhc2UicyI6cmV0dXJuIFJ8fFA/InBceGUxciBzZWtceGZhbmQiOiJwXHhlMXIgc2VrdW5kYW1pIjtjYXNlInNzIjpyZXR1cm4gUnx8UD9MKyhOKEgpPyJzZWt1bmR5Ijoic2VrXHhmYW5kIik6TCsic2VrdW5kYW1pIjtjYXNlIm0iOnJldHVybiBSPyJtaW5ceGZh'@; put 'dGEiOlA/Im1pblx4ZmF0dSI6Im1pblx4ZmF0b3UiO2Nhc2UibW0iOnJldHVybiBSfHxQP0wrKE4oSCk/Im1pblx4ZmF0eSI6Im1pblx4ZmF0Iik6TCsibWluXHhmYXRhbWkiO2Nhc2UiaCI6cmV0dXJuIFI/ImhvZGluYSI6UD8iaG9kaW51IjoiaG9kaW5vdSI7Y2FzZSJoaCI6cmV0dXJuIFJ8'@; put 'fFA/TCsoTihIKT8iaG9kaW55IjoiaG9kXHhlZG4iKTpMKyJob2RpbmFtaSI7Y2FzZSJkIjpyZXR1cm4gUnx8UD8iZGVcdTAxNDgiOiJkXHUwMTQ4b20iO2Nhc2UiZGQiOnJldHVybiBSfHxQP0wrKE4oSCk/ImRuaSI6ImRuXHhlZCIpOkwrImRcdTAxNDhhbWkiO2Nhc2UiTSI6cmV0dXJuIFJ8'@; put 'fFA/Im1lc2lhYyI6Im1lc2lhY29tIjtjYXNlIk1NIjpyZXR1cm4gUnx8UD9MKyhOKEgpPyJtZXNpYWNlIjoibWVzaWFjb3YiKTpMKyJtZXNpYWNtaSI7Y2FzZSJ5IjpyZXR1cm4gUnx8UD8icm9rIjoicm9rb20iO2Nhc2UieXkiOnJldHVybiBSfHxQP0wrKE4oSCk/InJva3kiOiJyb2tvdiIp'@; put 'OkwrInJva21pIn19RC5kZWZpbmVMb2NhbGUoInNrIix7bW9udGhzOl8sbW9udGhzU2hvcnQ6cCx3ZWVrZGF5czoibmVkZVx1MDEzZWFfcG9uZGVsb2tfdXRvcm9rX3N0cmVkYV9cdTAxNjF0dnJ0b2tfcGlhdG9rX3NvYm90YSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJuZV9wb191dF9z'@; put 'dF9cdTAxNjF0X3BpX3NvIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJuZV9wb191dF9zdF9cdTAxNjF0X3BpX3NvIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRC4gTU1NTSBZWVlZIixMTEw6IkQuIE1NTU0g'@; put 'WVlZWSBIOm1tIixMTExMOiJkZGRkIEQuIE1NTU0gWVlZWSBIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltkbmVzIG9dIExUIixuZXh0RGF5OiJbemFqdHJhIG9dIExUIixuZXh0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6cmV0dXJuIlt2IG5lZGVcdTAxM2V1'@; put 'IG9dIExUIjtjYXNlIDE6Y2FzZSAyOnJldHVybiJbdl0gZGRkZCBbb10gTFQiO2Nhc2UgMzpyZXR1cm4iW3Ygc3RyZWR1IG9dIExUIjtjYXNlIDQ6cmV0dXJuIlt2byBcdTAxNjF0dnJ0b2sgb10gTFQiO2Nhc2UgNTpyZXR1cm4iW3YgcGlhdG9rIG9dIExUIjtjYXNlIDY6cmV0dXJuIlt2IHNv'@; put 'Ym90dSBvXSBMVCJ9fSxsYXN0RGF5OiJbdlx1MDEwZGVyYSBvXSBMVCIsbGFzdFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOnJldHVybiJbbWludWxceGZhIG5lZGVcdTAxM2V1IG9dIExUIjtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpjYXNlIDU6cmV0dXJuIlttaW51'@; put 'bFx4ZmRdIGRkZGQgW29dIExUIjtjYXNlIDM6cmV0dXJuIlttaW51bFx4ZmEgc3RyZWR1IG9dIExUIjtjYXNlIDY6cmV0dXJuIlttaW51bFx4ZmEgc29ib3R1IG9dIExUIn19LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6InphICVzIixwYXN0OiJwcmVkICVzIixzOncsc3M6'@; put 'dyxtOncsbW06dyxoOncsaGg6dyxkOncsZGQ6dyxNOncsTU06dyx5OncseXk6d30sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo0fX0pfShiKDk3NTg2KSl9LDkzZTM6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7'@; put 'InVzZSBzdHJpY3QiO2Z1bmN0aW9uIF8oTix3LEYsSCl7dmFyIFI9TisiICI7c3dpdGNoKEYpe2Nhc2UicyI6cmV0dXJuIHd8fEg/Im5la2FqIHNla3VuZCI6Im5la2FqIHNla3VuZGFtaSI7Y2FzZSJzcyI6cmV0dXJuIFIrKDE9PT1OP3c/InNla3VuZG8iOiJzZWt1bmRpIjoyPT09Tj93fHxI'@; put 'PyJzZWt1bmRpIjoic2VrdW5kYWgiOk48NT93fHxIPyJzZWt1bmRlIjoic2VrdW5kYWgiOiJzZWt1bmQiKTtjYXNlIm0iOnJldHVybiB3PyJlbmEgbWludXRhIjoiZW5vIG1pbnV0byI7Y2FzZSJtbSI6cmV0dXJuIFIrKDE9PT1OP3c/Im1pbnV0YSI6Im1pbnV0byI6Mj09PU4/d3x8SD8ibWlu'@; put 'dXRpIjoibWludXRhbWEiOk48NT93fHxIPyJtaW51dGUiOiJtaW51dGFtaSI6d3x8SD8ibWludXQiOiJtaW51dGFtaSIpO2Nhc2UiaCI6cmV0dXJuIHc/ImVuYSB1cmEiOiJlbm8gdXJvIjtjYXNlImhoIjpyZXR1cm4gUisoMT09PU4/dz8idXJhIjoidXJvIjoyPT09Tj93fHxIPyJ1cmkiOiJ1'@; put 'cmFtYSI6Tjw1P3d8fEg/InVyZSI6InVyYW1pIjp3fHxIPyJ1ciI6InVyYW1pIik7Y2FzZSJkIjpyZXR1cm4gd3x8SD8iZW4gZGFuIjoiZW5pbSBkbmVtIjtjYXNlImRkIjpyZXR1cm4gUisoMT09PU4/d3x8SD8iZGFuIjoiZG5lbSI6Mj09PU4/d3x8SD8iZG5pIjoiZG5ldm9tYSI6d3x8SD8i'@; put 'ZG5pIjoiZG5ldmkiKTtjYXNlIk0iOnJldHVybiB3fHxIPyJlbiBtZXNlYyI6ImVuaW0gbWVzZWNlbSI7Y2FzZSJNTSI6cmV0dXJuIFIrKDE9PT1OP3d8fEg/Im1lc2VjIjoibWVzZWNlbSI6Mj09PU4/d3x8SD8ibWVzZWNhIjoibWVzZWNlbWEiOk48NT93fHxIPyJtZXNlY2UiOiJtZXNlY2ki'@; put 'Ond8fEg/Im1lc2VjZXYiOiJtZXNlY2kiKTtjYXNlInkiOnJldHVybiB3fHxIPyJlbm8gbGV0byI6ImVuaW0gbGV0b20iO2Nhc2UieXkiOnJldHVybiBSKygxPT09Tj93fHxIPyJsZXRvIjoibGV0b20iOjI9PT1OP3d8fEg/ImxldGkiOiJsZXRvbWEiOk48NT93fHxIPyJsZXRhIjoibGV0aSI6'@; put 'd3x8SD8ibGV0IjoibGV0aSIpfX1ELmRlZmluZUxvY2FsZSgic2wiLHttb250aHM6ImphbnVhcl9mZWJydWFyX21hcmVjX2FwcmlsX21hal9qdW5pal9qdWxpal9hdmd1c3Rfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJfZGVjZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Imphbi5f'@; put 'ZmViLl9tYXIuX2Fwci5fbWFqLl9qdW4uX2p1bC5fYXZnLl9zZXAuX29rdC5fbm92Ll9kZWMuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Im5lZGVsamFfcG9uZWRlbGpla190b3Jla19zcmVkYV9cdTAxMGRldHJ0ZWtfcGV0ZWtfc29ib3RhIi5zcGxpdCgiXyIp'@; put 'LHdlZWtkYXlzU2hvcnQ6Im5lZC5fcG9uLl90b3IuX3NyZS5fXHUwMTBkZXQuX3BldC5fc29iLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoibmVfcG9fdG9fc3JfXHUwMTBkZV9wZV9zbyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1t'@; put 'IixMVFM6Ikg6bW06c3MiLEw6IkRELiBNTS4gWVlZWSIsTEw6IkQuIE1NTU0gWVlZWSIsTExMOiJELiBNTU1NIFlZWVkgSDptbSIsTExMTDoiZGRkZCwgRC4gTU1NTSBZWVlZIEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2RhbmVzIG9iXSBMVCIsbmV4dERheToiW2p1dHJpIG9iXSBMVCIs'@; put 'bmV4dFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOnJldHVybiJbdl0gW25lZGVsam9dIFtvYl0gTFQiO2Nhc2UgMzpyZXR1cm4iW3ZdIFtzcmVkb10gW29iXSBMVCI7Y2FzZSA2OnJldHVybiJbdl0gW3NvYm90b10gW29iXSBMVCI7Y2FzZSAxOmNhc2UgMjpjYXNl'@; put 'IDQ6Y2FzZSA1OnJldHVybiJbdl0gZGRkZCBbb2JdIExUIn19LGxhc3REYXk6Ilt2XHUwMTBkZXJhaiBvYl0gTFQiLGxhc3RXZWVrOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZGF5KCkpe2Nhc2UgMDpyZXR1cm4iW3ByZWpcdTAxNjFuam9dIFtuZWRlbGpvXSBbb2JdIExUIjtjYXNlIDM6cmV0'@; put 'dXJuIltwcmVqXHUwMTYxbmpvXSBbc3JlZG9dIFtvYl0gTFQiO2Nhc2UgNjpyZXR1cm4iW3ByZWpcdTAxNjFuam9dIFtzb2JvdG9dIFtvYl0gTFQiO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OmNhc2UgNTpyZXR1cm4iW3ByZWpcdTAxNjFuamldIGRkZGQgW29iXSBMVCJ9fSxzYW1lRWxzZToiTCJ9'@; put 'LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTAxMGRleiAlcyIscGFzdDoicHJlZCAlcyIsczpfLHNzOl8sbTpfLG1tOl8saDpfLGhoOl8sZDpfLGRkOl8sTTpfLE1NOl8seTpfLHl5Ol99LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6'@; put 'MSxkb3k6N319KX0oYig5NzU4NikpfSw2MDQ1MTpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7RC5kZWZpbmVMb2NhbGUoInNxIix7bW9udGhzOiJKYW5hcl9TaGt1cnRfTWFyc19QcmlsbF9NYWpfUWVyc2hvcl9Lb3JyaWtfR3VzaHRfU2h0YXRvcl9UZXRvcl9O'@; put 'XHhlYm50b3JfRGhqZXRvciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFuX1Noa19NYXJfUHJpX01hal9RZXJfS29yX0d1c19TaHRfVGV0X05ceGVibl9EaGoiLnNwbGl0KCJfIiksd2Vla2RheXM6IkUgRGllbF9FIEhceGViblx4ZWJfRSBNYXJ0XHhlYl9FIE1ceGVicmt1clx4ZWJfRSBF'@; put 'bmp0ZV9FIFByZW10ZV9FIFNodHVuXHhlYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJEaWVfSFx4ZWJuX01hcl9NXHhlYnJfRW5qX1ByZV9TaHQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IkRfSF9NYV9NXHhlYl9FX1BfU2giLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEw'@; put 'LG1lcmlkaWVtUGFyc2U6L1BEfE1ELyxpc1BNOmZ1bmN0aW9uKHApe3JldHVybiJNIj09PXAuY2hhckF0KDApfSxtZXJpZGllbTpmdW5jdGlvbihwLE4sdyl7cmV0dXJuIHA8MTI/IlBEIjoiTUQifSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9Z'@; put 'WVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltTb3Qgblx4ZWJdIExUIixuZXh0RGF5OiJbTmVzXHhlYnIgblx4ZWJdIExUIixuZXh0V2VlazoiZGRkZCBbblx4ZWJd'@; put 'IExUIixsYXN0RGF5OiJbRGplIG5ceGViXSBMVCIsbGFzdFdlZWs6ImRkZGQgW2Uga2FsdWFyIG5ceGViXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiblx4ZWIgJXMiLHBhc3Q6IiVzIG1ceGViIHBhclx4ZWIiLHM6ImRpc2Egc2Vrb25kYSIsc3M6IiVkIHNla29u'@; put 'ZGEiLG06Im5qXHhlYiBtaW51dFx4ZWIiLG1tOiIlZCBtaW51dGEiLGg6Im5qXHhlYiBvclx4ZWIiLGhoOiIlZCBvclx4ZWIiLGQ6Im5qXHhlYiBkaXRceGViIixkZDoiJWQgZGl0XHhlYiIsTToibmpceGViIG11YWoiLE1NOiIlZCBtdWFqIix5OiJualx4ZWIgdml0Iix5eToiJWQgdml0ZSJ9'@; put 'LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oYig5NzU4NikpfSw0MDkwNTpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7dmFyIF89e3dvcmRzOntzczpbIlx1MDQ0MVx1MDQzNVx1'@; put 'MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQzMCIsIlx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQzNSIsIlx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQzOCJdLG06WyJcdTA0NThcdTA0MzVcdTA0MzRcdTA0MzBcdTA0M2QgXHUwNDNjXHUw'@; put 'NDM4XHUwNDNkXHUwNDQzXHUwNDQyIiwiXHUwNDU4XHUwNDM1XHUwNDM0XHUwNDNkXHUwNDNlXHUwNDMzIFx1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQ0Mlx1MDQzMCJdLG1tOlsiXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDQyIiwiXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUw'@; put 'NDQyXHUwNDMwIiwiXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDQyXHUwNDMwIl0saDpbIlx1MDQ1OFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzZCBcdTA0NDFcdTA0MzBcdTA0NDIiLCJcdTA0NThcdTA0MzVcdTA0MzRcdTA0M2RcdTA0M2VcdTA0MzMgXHUwNDQxXHUwNDMwXHUwNDQyXHUw'@; put 'NDMwIl0saGg6WyJcdTA0NDFcdTA0MzBcdTA0NDIiLCJcdTA0NDFcdTA0MzBcdTA0NDJcdTA0MzAiLCJcdTA0NDFcdTA0MzBcdTA0NDJcdTA0MzgiXSxkOlsiXHUwNDU4XHUwNDM1XHUwNDM0XHUwNDMwXHUwNDNkIFx1MDQzNFx1MDQzMFx1MDQzZCIsIlx1MDQ1OFx1MDQzNVx1MDQzNFx1MDQz'@; put 'ZFx1MDQzZVx1MDQzMyBcdTA0MzRcdTA0MzBcdTA0M2RcdTA0MzAiXSxkZDpbIlx1MDQzNFx1MDQzMFx1MDQzZCIsIlx1MDQzNFx1MDQzMFx1MDQzZFx1MDQzMCIsIlx1MDQzNFx1MDQzMFx1MDQzZFx1MDQzMCJdLE06WyJcdTA0NThcdTA0MzVcdTA0MzRcdTA0MzBcdTA0M2QgXHUwNDNjXHUw'@; put 'NDM1XHUwNDQxXHUwNDM1XHUwNDQ2IiwiXHUwNDU4XHUwNDM1XHUwNDM0XHUwNDNkXHUwNDNlXHUwNDMzIFx1MDQzY1x1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0Nlx1MDQzMCJdLE1NOlsiXHUwNDNjXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDQ2IiwiXHUwNDNjXHUwNDM1XHUwNDQxXHUwNDM1XHUw'@; put 'NDQ2XHUwNDMwIiwiXHUwNDNjXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDQ2XHUwNDM4Il0seTpbIlx1MDQ1OFx1MDQzNVx1MDQzNFx1MDQzZFx1MDQ0MyBcdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0NDMiLCJcdTA0NThcdTA0MzVcdTA0MzRcdTA0M2RcdTA0MzUgXHUwNDMzXHUw'@; put 'NDNlXHUwNDM0XHUwNDM4XHUwNDNkXHUwNDM1Il0seXk6WyJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0NDMiLCJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzUiLCJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzAiXX0sY29ycmVjdEdyYW1t'@; put 'YXRpY2FsQ2FzZTpmdW5jdGlvbihOLHcpe3JldHVybiBOJTEwPj0xJiZOJTEwPD00JiYoTiUxMDA8MTB8fE4lMTAwPj0yMCk/TiUxMD09MT93WzBdOndbMV06d1syXX0sdHJhbnNsYXRlOmZ1bmN0aW9uKE4sdyxGLEgpe3ZhciBqLFI9Xy53b3Jkc1tGXTtyZXR1cm4gMT09PUYubGVuZ3RoPyJ5'@; put 'Ij09PUYmJnc/Ilx1MDQ1OFx1MDQzNVx1MDQzNFx1MDQzZFx1MDQzMCBcdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzAiOkh8fHc/UlswXTpSWzFdOihqPV8uY29ycmVjdEdyYW1tYXRpY2FsQ2FzZShOLFIpLCJ5eSI9PT1GJiZ3JiYiXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDM4'@; put 'XHUwNDNkXHUwNDQzIj09PWo/TisiIFx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQzMCI6TisiICIrail9fTtELmRlZmluZUxvY2FsZSgic3ItY3lybCIse21vbnRoczoiXHUwNDU4XHUwNDMwXHUwNDNkXHUwNDQzXHUwNDMwXHUwNDQwX1x1MDQ0NFx1MDQzNVx1MDQzMVx1MDQ0'@; put 'MFx1MDQ0M1x1MDQzMFx1MDQ0MF9cdTA0M2NcdTA0MzBcdTA0NDBcdTA0NDJfXHUwNDMwXHUwNDNmXHUwNDQwXHUwNDM4XHUwNDNiX1x1MDQzY1x1MDQzMFx1MDQ1OF9cdTA0NThcdTA0NDNcdTA0M2RfXHUwNDU4XHUwNDQzXHUwNDNiX1x1MDQzMFx1MDQzMlx1MDQzM1x1MDQ0M1x1MDQ0MVx1'@; put 'MDQ0Ml9cdTA0NDFcdTA0MzVcdTA0M2ZcdTA0NDJcdTA0MzVcdTA0M2NcdTA0MzFcdTA0MzBcdTA0NDBfXHUwNDNlXHUwNDNhXHUwNDQyXHUwNDNlXHUwNDMxXHUwNDMwXHUwNDQwX1x1MDQzZFx1MDQzZVx1MDQzMlx1MDQzNVx1MDQzY1x1MDQzMVx1MDQzMFx1MDQ0MF9cdTA0MzRcdTA0MzVc'@; put 'dTA0NDZcdTA0MzVcdTA0M2NcdTA0MzFcdTA0MzBcdTA0NDAiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MDQ1OFx1MDQzMFx1MDQzZC5fXHUwNDQ0XHUwNDM1XHUwNDMxLl9cdTA0M2NcdTA0MzBcdTA0NDAuX1x1MDQzMFx1MDQzZlx1MDQ0MC5fXHUwNDNjXHUwNDMwXHUwNDU4X1x1MDQ1'@; put 'OFx1MDQ0M1x1MDQzZF9cdTA0NThcdTA0NDNcdTA0M2JfXHUwNDMwXHUwNDMyXHUwNDMzLl9cdTA0NDFcdTA0MzVcdTA0M2YuX1x1MDQzZVx1MDQzYVx1MDQ0Mi5fXHUwNDNkXHUwNDNlXHUwNDMyLl9cdTA0MzRcdTA0MzVcdTA0NDYuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAs'@; put 'd2Vla2RheXM6Ilx1MDQzZFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQ1OVx1MDQzMF9cdTA0M2ZcdTA0M2VcdTA0M2RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0NTlcdTA0MzBcdTA0M2FfXHUwNDQzXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDMwXHUwNDNhX1x1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1'@; put 'MDQzMF9cdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzJcdTA0NDBcdTA0NDJcdTA0MzBcdTA0M2FfXHUwNDNmXHUwNDM1XHUwNDQyXHUwNDMwXHUwNDNhX1x1MDQ0MVx1MDQ0M1x1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQzMCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA0M2RcdTA0MzVcdTA0'@; put 'MzQuX1x1MDQzZlx1MDQzZVx1MDQzZC5fXHUwNDQzXHUwNDQyXHUwNDNlLl9cdTA0NDFcdTA0NDBcdTA0MzUuX1x1MDQ0N1x1MDQzNVx1MDQ0Mi5fXHUwNDNmXHUwNDM1XHUwNDQyLl9cdTA0NDFcdTA0NDNcdTA0MzEuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA0M2RcdTA0MzVfXHUw'@; put 'NDNmXHUwNDNlX1x1MDQ0M1x1MDQ0Ml9cdTA0NDFcdTA0NDBfXHUwNDQ3XHUwNDM1X1x1MDQzZlx1MDQzNV9cdTA0NDFcdTA0NDMiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJELiBNLiBZWVlZLiIs'@; put 'TEw6IkQuIE1NTU0gWVlZWS4iLExMTDoiRC4gTU1NTSBZWVlZLiBIOm1tIixMTExMOiJkZGRkLCBELiBNTU1NIFlZWVkuIEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDQzNFx1MDQzMFx1MDQzZFx1MDQzMFx1MDQ0MSBcdTA0NDNdIExUIixuZXh0RGF5OiJbXHUwNDQxXHUwNDQzXHUw'@; put 'NDQyXHUwNDQwXHUwNDMwIFx1MDQ0M10gTFQiLG5leHRXZWVrOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZGF5KCkpe2Nhc2UgMDpyZXR1cm4iW1x1MDQ0M10gW1x1MDQzZFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQ1OVx1MDQ0M10gW1x1MDQ0M10gTFQiO2Nhc2UgMzpyZXR1cm4iW1x1MDQ0M10g'@; put 'W1x1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0M10gW1x1MDQ0M10gTFQiO2Nhc2UgNjpyZXR1cm4iW1x1MDQ0M10gW1x1MDQ0MVx1MDQ0M1x1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQ0M10gW1x1MDQ0M10gTFQiO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OmNhc2UgNTpyZXR1cm4iW1x1MDQ0M10g'@; put 'ZGRkZCBbXHUwNDQzXSBMVCJ9fSxsYXN0RGF5OiJbXHUwNDU4XHUwNDQzXHUwNDQ3XHUwNDM1IFx1MDQ0M10gTFQiLGxhc3RXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuWyJbXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDQ4XHUwNDNiXHUwNDM1XSBbXHUwNDNkXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDU5'@; put 'XHUwNDM1XSBbXHUwNDQzXSBMVCIsIltcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDhcdTA0M2JcdTA0M2VcdTA0MzNdIFtcdTA0M2ZcdTA0M2VcdTA0M2RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0NTlcdTA0M2FcdTA0MzBdIFtcdTA0NDNdIExUIiwiW1x1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0OFx1'@; put 'MDQzYlx1MDQzZVx1MDQzM10gW1x1MDQ0M1x1MDQ0Mlx1MDQzZVx1MDQ0MFx1MDQzYVx1MDQzMF0gW1x1MDQ0M10gTFQiLCJbXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDQ4XHUwNDNiXHUwNDM1XSBbXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XSBbXHUwNDQzXSBMVCIsIltcdTA0M2Zc'@; put 'dTA0NDBcdTA0M2VcdTA0NDhcdTA0M2JcdTA0M2VcdTA0MzNdIFtcdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzJcdTA0NDBcdTA0NDJcdTA0M2FcdTA0MzBdIFtcdTA0NDNdIExUIiwiW1x1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0OFx1MDQzYlx1MDQzZVx1MDQzM10gW1x1MDQzZlx1MDQzNVx1MDQ0'@; put 'Mlx1MDQzYVx1MDQzMF0gW1x1MDQ0M10gTFQiLCJbXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDQ4XHUwNDNiXHUwNDM1XSBbXHUwNDQxXHUwNDQzXHUwNDMxXHUwNDNlXHUwNDQyXHUwNDM1XSBbXHUwNDQzXSBMVCJdW3RoaXMuZGF5KCldfSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0'@; put 'dXJlOiJcdTA0MzdcdTA0MzAgJXMiLHBhc3Q6Ilx1MDQzZlx1MDQ0MFx1MDQzNSAlcyIsczoiXHUwNDNkXHUwNDM1XHUwNDNhXHUwNDNlXHUwNDNiXHUwNDM4XHUwNDNhXHUwNDNlIFx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQzOCIsc3M6Xy50cmFuc2xhdGUsbTpf'@; put 'LnRyYW5zbGF0ZSxtbTpfLnRyYW5zbGF0ZSxoOl8udHJhbnNsYXRlLGhoOl8udHJhbnNsYXRlLGQ6Xy50cmFuc2xhdGUsZGQ6Xy50cmFuc2xhdGUsTTpfLnRyYW5zbGF0ZSxNTTpfLnRyYW5zbGF0ZSx5Ol8udHJhbnNsYXRlLHl5Ol8udHJhbnNsYXRlfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNl'@; put 'Oi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95Ojd9fSl9KGIoOTc1ODYpKX0sNTUwNDY6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO3ZhciBfPXt3b3Jkczp7c3M6WyJzZWt1bmRhIiwic2VrdW5kZSIsInNla3VuZGkiXSxtOlsiamVk'@; put 'YW4gbWludXQiLCJqZWRub2cgbWludXRhIl0sbW06WyJtaW51dCIsIm1pbnV0YSIsIm1pbnV0YSJdLGg6WyJqZWRhbiBzYXQiLCJqZWRub2cgc2F0YSJdLGhoOlsic2F0Iiwic2F0YSIsInNhdGkiXSxkOlsiamVkYW4gZGFuIiwiamVkbm9nIGRhbmEiXSxkZDpbImRhbiIsImRhbmEiLCJkYW5h'@; put 'Il0sTTpbImplZGFuIG1lc2VjIiwiamVkbm9nIG1lc2VjYSJdLE1NOlsibWVzZWMiLCJtZXNlY2EiLCJtZXNlY2kiXSx5OlsiamVkbnUgZ29kaW51IiwiamVkbmUgZ29kaW5lIl0seXk6WyJnb2RpbnUiLCJnb2RpbmUiLCJnb2RpbmEiXX0sY29ycmVjdEdyYW1tYXRpY2FsQ2FzZTpmdW5jdGlv'@; put 'bihOLHcpe3JldHVybiBOJTEwPj0xJiZOJTEwPD00JiYoTiUxMDA8MTB8fE4lMTAwPj0yMCk/TiUxMD09MT93WzBdOndbMV06d1syXX0sdHJhbnNsYXRlOmZ1bmN0aW9uKE4sdyxGLEgpe3ZhciBqLFI9Xy53b3Jkc1tGXTtyZXR1cm4gMT09PUYubGVuZ3RoPyJ5Ij09PUYmJnc/ImplZG5hIGdv'@; put 'ZGluYSI6SHx8dz9SWzBdOlJbMV06KGo9Xy5jb3JyZWN0R3JhbW1hdGljYWxDYXNlKE4sUiksInl5Ij09PUYmJncmJiJnb2RpbnUiPT09aj9OKyIgZ29kaW5hIjpOKyIgIitqKX19O0QuZGVmaW5lTG9jYWxlKCJzciIse21vbnRoczoiamFudWFyX2ZlYnJ1YXJfbWFydF9hcHJpbF9tYWpfanVu'@; put 'X2p1bF9hdmd1c3Rfc2VwdGVtYmFyX29rdG9iYXJfbm92ZW1iYXJfZGVjZW1iYXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Imphbi5fZmViLl9tYXIuX2Fwci5fbWFqX2p1bl9qdWxfYXZnLl9zZXAuX29rdC5fbm92Ll9kZWMuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vl'@; put 'a2RheXM6Im5lZGVsamFfcG9uZWRlbGpha191dG9yYWtfc3JlZGFfXHUwMTBkZXR2cnRha19wZXRha19zdWJvdGEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoibmVkLl9wb24uX3V0by5fc3JlLl9cdTAxMGRldC5fcGV0Ll9zdWIuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJuZV9wb191'@; put 'dF9zcl9cdTAxMGRlX3BlX3N1Ii5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiRC4gTS4gWVlZWS4iLExMOiJELiBNTU1NIFlZWVkuIixMTEw6IkQuIE1NTU0gWVlZWS4gSDptbSIsTExMTDoiZGRkZCwg'@; put 'RC4gTU1NTSBZWVlZLiBIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltkYW5hcyB1XSBMVCIsbmV4dERheToiW3N1dHJhIHVdIExUIixuZXh0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6cmV0dXJuIlt1XSBbbmVkZWxqdV0gW3VdIExUIjtjYXNlIDM6cmV0dXJu'@; put 'Ilt1XSBbc3JlZHVdIFt1XSBMVCI7Y2FzZSA2OnJldHVybiJbdV0gW3N1Ym90dV0gW3VdIExUIjtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpjYXNlIDU6cmV0dXJuIlt1XSBkZGRkIFt1XSBMVCJ9fSxsYXN0RGF5OiJbanVcdTAxMGRlIHVdIExUIixsYXN0V2VlazpmdW5jdGlvbigpe3JldHVyblsi'@; put 'W3Byb1x1MDE2MWxlXSBbbmVkZWxqZV0gW3VdIExUIiwiW3Byb1x1MDE2MWxvZ10gW3BvbmVkZWxqa2FdIFt1XSBMVCIsIltwcm9cdTAxNjFsb2ddIFt1dG9ya2FdIFt1XSBMVCIsIltwcm9cdTAxNjFsZV0gW3NyZWRlXSBbdV0gTFQiLCJbcHJvXHUwMTYxbG9nXSBbXHUwMTBkZXR2cnRrYV0g'@; put 'W3VdIExUIiwiW3Byb1x1MDE2MWxvZ10gW3BldGthXSBbdV0gTFQiLCJbcHJvXHUwMTYxbGVdIFtzdWJvdGVdIFt1XSBMVCJdW3RoaXMuZGF5KCldfSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJ6YSAlcyIscGFzdDoicHJlICVzIixzOiJuZWtvbGlrbyBzZWt1bmRpIixz'@; put 'czpfLnRyYW5zbGF0ZSxtOl8udHJhbnNsYXRlLG1tOl8udHJhbnNsYXRlLGg6Xy50cmFuc2xhdGUsaGg6Xy50cmFuc2xhdGUsZDpfLnRyYW5zbGF0ZSxkZDpfLnRyYW5zbGF0ZSxNOl8udHJhbnNsYXRlLE1NOl8udHJhbnNsYXRlLHk6Xy50cmFuc2xhdGUseXk6Xy50cmFuc2xhdGV9LGRheU9m'@; put 'TW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6N319KX0oYig5NzU4NikpfSw4NTc2NTpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7RC5kZWZpbmVMb2NhbGUoInNzIix7bW9udGhzOiJCaGltYmlkdndh'@; put 'bmVfSW5kbG92YW5hX0luZGxvdidsZW5raHVsdV9NYWJhc2FfSW5raHdla2h3ZXRpX0luaGxhYmFfS2hvbHdhbmVfSW5nY2lfSW55b25pX0ltcGhhbGFfTHdldGlfSW5nb25nb25pIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJCaGlfSW5hX0ludV9NYWJfSW5rX0luaF9LaG9fSWdjX0lueV9J'@; put 'bXBfTHdlX0lnbyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiTGlzb250Zm9fVW1zb21idWx1a29fTGVzaWJpbGlfTGVzaXRzYXRmdV9MZXNpbmVfTGVzaWhsYW51X1VtZ2NpYmVsbyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJMaXNfVW1iX0xzYl9MZXNfTHNpX0xzaF9VbWciLnNwbGl0KCJf'@; put 'Iiksd2Vla2RheXNNaW46IkxpX1VzX0xiX0x0X0xzX0xoX1VnIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6Img6bW0gQSIsTFRTOiJoOm1tOnNzIEEiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBo'@; put 'Om1tIEEiLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIGg6bW0gQSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbTmFtdWhsYSBuZ2FdIExUIixuZXh0RGF5OiJbS3VzYXNhIG5nYV0gTFQiLG5leHRXZWVrOiJkZGRkIFtuZ2FdIExUIixsYXN0RGF5OiJbSXRvbG8gbmdhXSBMVCIsbGFzdFdlZWs6ImRk'@; put 'ZGQgW2xlbGlwaGVsaWxlXSBbbmdhXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToibmdhICVzIixwYXN0OiJ3ZW50ZWthIG5nYSAlcyIsczoiZW1penV6d2FuYSBsb21jYW5lIixzczoiJWQgbXp1endhbmEiLG06InVtenV6dSIsbW06IiVkIGVtaXp1enUiLGg6Imxp'@; put 'aG9yYSIsaGg6IiVkIGVtYWhvcmEiLGQ6ImxpbGFuZ2EiLGRkOiIlZCBlbWFsYW5nYSIsTToiaW55YW5nYSIsTU06IiVkIHRpbnlhbmdhIix5OiJ1bW55YWthIix5eToiJWQgaW1pbnlha2EifSxtZXJpZGllbVBhcnNlOi9la3VzZW5pfGVtaW5pfGVudHNhbWJhbWF8ZWJ1c3VrdS8sbWVyaWRp'@; put 'ZW06ZnVuY3Rpb24ocCxOLHcpe3JldHVybiBwPDExPyJla3VzZW5pIjpwPDE1PyJlbWluaSI6cDwxOT8iZW50c2FtYmFtYSI6ImVidXN1a3UifSxtZXJpZGllbUhvdXI6ZnVuY3Rpb24ocCxOKXtyZXR1cm4gMTI9PT1wJiYocD0wKSwiZWt1c2VuaSI9PT1OP3A6ImVtaW5pIj09PU4/cD49MTE/'@; put 'cDpwKzEyOiJlbnRzYW1iYW1hIj09PU58fCJlYnVzdWt1Ij09PU4/MD09PXA/MDpwKzEyOnZvaWQgMH0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfS8sb3JkaW5hbDoiJWQiLHdlZWs6e2RvdzoxLGRveTo0fX0pfShiKDk3NTg2KSl9LDk5MjkwOmZ1bmN0aW9uKGNlLEosYil7IWZ1'@; put 'bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0IjtELmRlZmluZUxvY2FsZSgic3YiLHttb250aHM6ImphbnVhcmlfZmVicnVhcmlfbWFyc19hcHJpbF9tYWpfanVuaV9qdWxpX2F1Z3VzdGlfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJfZGVjZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Imph'@; put 'bl9mZWJfbWFyX2Fwcl9tYWpfanVuX2p1bF9hdWdfc2VwX29rdF9ub3ZfZGVjIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJzXHhmNm5kYWdfbVx4ZTVuZGFnX3Rpc2RhZ19vbnNkYWdfdG9yc2RhZ19mcmVkYWdfbFx4ZjZyZGFnIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6InNceGY2bl9tXHhl'@; put 'NW5fdGlzX29uc190b3JfZnJlX2xceGY2ciIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoic1x4ZjZfbVx4ZTVfdGlfb25fdG9fZnJfbFx4ZjYiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiWVlZWS1NTS1ERCIsTEw6IkQgTU1NTSBZWVlZ'@; put 'IixMTEw6IkQgTU1NTSBZWVlZIFtrbC5dIEhIOm1tIixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIFtrbC5dIEhIOm1tIixsbGw6IkQgTU1NIFlZWVkgSEg6bW0iLGxsbGw6ImRkZCBEIE1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltJZGFnXSBMVCIsbmV4dERheToiW0ltb3Jn'@; put 'b25dIExUIixsYXN0RGF5OiJbSWdceGU1cl0gTFQiLG5leHRXZWVrOiJbUFx4ZTVdIGRkZGQgTFQiLGxhc3RXZWVrOiJbSV0gZGRkZFtzXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToib20gJXMiLHBhc3Q6ImZceGY2ciAlcyBzZWRhbiIsczoiblx4ZTVncmEgc2Vr'@; put 'dW5kZXIiLHNzOiIlZCBzZWt1bmRlciIsbToiZW4gbWludXQiLG1tOiIlZCBtaW51dGVyIixoOiJlbiB0aW1tZSIsaGg6IiVkIHRpbW1hciIsZDoiZW4gZGFnIixkZDoiJWQgZGFnYXIiLE06ImVuIG1ceGU1bmFkIixNTToiJWQgbVx4ZTVuYWRlciIseToiZXR0IFx4ZTVyIix5eToiJWQgXHhl'@; put 'NXIifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KFw6ZXxcOmEpLyxvcmRpbmFsOmZ1bmN0aW9uKHApe3ZhciBOPXAlMTA7cmV0dXJuIHArKDE9PX5+KHAlMTAwLzEwKT8iOmUiOjE9PT1OfHwyPT09Tj8iOmEiOiI6ZSIpfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oYig5NzU4Nikp'@; put 'fSw1MzQ0OTpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7RC5kZWZpbmVMb2NhbGUoInN3Iix7bW9udGhzOiJKYW51YXJpX0ZlYnJ1YXJpX01hY2hpX0FwcmlsaV9NZWlfSnVuaV9KdWxhaV9BZ29zdGlfU2VwdGVtYmFfT2t0b2JhX05vdmVtYmFfRGVzZW1iYSIu'@; put 'c3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFuX0ZlYl9NYWNfQXByX01laV9KdW5fSnVsX0Fnb19TZXBfT2t0X05vdl9EZXMiLnNwbGl0KCJfIiksd2Vla2RheXM6Ikp1bWFwaWxpX0p1bWF0YXR1X0p1bWFubmVfSnVtYXRhbm9fQWxoYW1pc2lfSWp1bWFhX0p1bWFtb3NpIi5zcGxpdCgiXyIp'@; put 'LHdlZWtkYXlzU2hvcnQ6IkpwbF9KdGF0X0pubmVfSnRhbl9BbGhfSWptX0ptb3MiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IkoyX0ozX0o0X0o1X0FsX0lqX0oxIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6ImhoOm1tIEEiLExUUzoiSEg6'@; put 'bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2xlbyBzYWFdIExUIixuZXh0RGF5OiJba2VzaG8gc2FhXSBMVCIsbmV4dFdlZWs6Ilt3'@; put 'aWtpIGlqYXlvXSBkZGRkIFtzYWF0XSBMVCIsbGFzdERheToiW2phbmFdIExUIixsYXN0V2VlazoiW3dpa2kgaWxpeW9waXRhXSBkZGRkIFtzYWF0XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgYmFhZGF5ZSIscGFzdDoidG9rZWEgJXMiLHM6ImhpdmkgcHVu'@; put 'ZGUiLHNzOiJzZWt1bmRlICVkIixtOiJkYWtpa2EgbW9qYSIsbW06ImRha2lrYSAlZCIsaDoic2FhIGxpbW9qYSIsaGg6Im1hc2FhICVkIixkOiJzaWt1IG1vamEiLGRkOiJzaWt1ICVkIixNOiJtd2V6aSBtbW9qYSIsTU06Im1pZXppICVkIix5OiJtd2FrYSBtbW9qYSIseXk6Im1pYWthICVk'@; put 'In0sd2Vlazp7ZG93OjEsZG95Ojd9fSl9KGIoOTc1ODYpKX0sNzI2ODg6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO3ZhciBfPXsxOiJcdTBiZTciLDI6Ilx1MGJlOCIsMzoiXHUwYmU5Iiw0OiJcdTBiZWEiLDU6Ilx1MGJlYiIsNjoiXHUwYmVjIiw3OiJcdTBi'@; put 'ZWQiLDg6Ilx1MGJlZSIsOToiXHUwYmVmIiwwOiJcdTBiZTYifSxwPXsiXHUwYmU3IjoiMSIsIlx1MGJlOCI6IjIiLCJcdTBiZTkiOiIzIiwiXHUwYmVhIjoiNCIsIlx1MGJlYiI6IjUiLCJcdTBiZWMiOiI2IiwiXHUwYmVkIjoiNyIsIlx1MGJlZSI6IjgiLCJcdTBiZWYiOiI5IiwiXHUwYmU2'@; put 'IjoiMCJ9O0QuZGVmaW5lTG9jYWxlKCJ0YSIse21vbnRoczoiXHUwYjljXHUwYmE5XHUwYmI1XHUwYmIwXHUwYmJmX1x1MGJhYVx1MGJiZlx1MGJhYVx1MGJjZFx1MGJiMFx1MGJiNVx1MGJiMFx1MGJiZl9cdTBiYWVcdTBiYmVcdTBiYjBcdTBiY2RcdTBiOWFcdTBiY2RfXHUwYjhmXHUwYmFh'@; put 'XHUwYmNkXHUwYmIwXHUwYmIyXHUwYmNkX1x1MGJhZVx1MGJjN19cdTBiOWNcdTBiYzJcdTBiYTlcdTBiY2RfXHUwYjljXHUwYmMyXHUwYmIyXHUwYmM4X1x1MGI4Nlx1MGI5NVx1MGJiOFx1MGJjZFx1MGI5Zlx1MGJjZF9cdTBiOWFcdTBiYzZcdTBiYWFcdTBiY2RcdTBiOWZcdTBiYzZcdTBi'@; put 'YWVcdTBiY2RcdTBiYWFcdTBiYjBcdTBiY2RfXHUwYjg1XHUwYjk1XHUwYmNkXHUwYjlmXHUwYmM3XHUwYmJlXHUwYmFhXHUwYmIwXHUwYmNkX1x1MGJhOFx1MGJiNVx1MGJhZVx1MGJjZFx1MGJhYVx1MGJiMFx1MGJjZF9cdTBiOWZcdTBiYmZcdTBiOWFcdTBiYWVcdTBiY2RcdTBiYWFcdTBi'@; put 'YjBcdTBiY2QiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MGI5Y1x1MGJhOVx1MGJiNVx1MGJiMFx1MGJiZl9cdTBiYWFcdTBiYmZcdTBiYWFcdTBiY2RcdTBiYjBcdTBiYjVcdTBiYjBcdTBiYmZfXHUwYmFlXHUwYmJlXHUwYmIwXHUwYmNkXHUwYjlhXHUwYmNkX1x1MGI4Zlx1MGJhYVx1'@; put 'MGJjZFx1MGJiMFx1MGJiMlx1MGJjZF9cdTBiYWVcdTBiYzdfXHUwYjljXHUwYmMyXHUwYmE5XHUwYmNkX1x1MGI5Y1x1MGJjMlx1MGJiMlx1MGJjOF9cdTBiODZcdTBiOTVcdTBiYjhcdTBiY2RcdTBiOWZcdTBiY2RfXHUwYjlhXHUwYmM2XHUwYmFhXHUwYmNkXHUwYjlmXHUwYmM2XHUwYmFl'@; put 'XHUwYmNkXHUwYmFhXHUwYmIwXHUwYmNkX1x1MGI4NVx1MGI5NVx1MGJjZFx1MGI5Zlx1MGJjN1x1MGJiZVx1MGJhYVx1MGJiMFx1MGJjZF9cdTBiYThcdTBiYjVcdTBiYWVcdTBiY2RcdTBiYWFcdTBiYjBcdTBiY2RfXHUwYjlmXHUwYmJmXHUwYjlhXHUwYmFlXHUwYmNkXHUwYmFhXHUwYmIw'@; put 'XHUwYmNkIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTBiOWVcdTBiYmVcdTBiYWZcdTBiYmZcdTBiYjFcdTBiY2RcdTBiYjFcdTBiYzFcdTBiOTVcdTBiY2RcdTBiOTVcdTBiYmZcdTBiYjRcdTBiYWVcdTBiYzhfXHUwYmE0XHUwYmJmXHUwYjk5XHUwYmNkXHUwYjk1XHUwYjlmXHUwYmNkXHUw'@; put 'Yjk1XHUwYmJmXHUwYmI0XHUwYmFlXHUwYmM4X1x1MGI5YVx1MGJjNlx1MGJiNVx1MGJjZFx1MGJiNVx1MGJiZVx1MGJhZlx1MGJjZFx1MGI5NVx1MGJiZlx1MGJiNFx1MGJhZVx1MGJjOF9cdTBiYWFcdTBiYzFcdTBiYTRcdTBiYTlcdTBiY2RcdTBiOTVcdTBiYmZcdTBiYjRcdTBiYWVcdTBi'@; put 'YzhfXHUwYmI1XHUwYmJmXHUwYmFmXHUwYmJlXHUwYmI0XHUwYjk1XHUwYmNkXHUwYjk1XHUwYmJmXHUwYmI0XHUwYmFlXHUwYmM4X1x1MGJiNVx1MGJjNlx1MGJiM1x1MGJjZFx1MGJiM1x1MGJiZlx1MGI5NVx1MGJjZFx1MGI5NVx1MGJiZlx1MGJiNFx1MGJhZVx1MGJjOF9cdTBiOWFcdTBi'@; put 'YTlcdTBiYmZcdTBiOTVcdTBiY2RcdTBiOTVcdTBiYmZcdTBiYjRcdTBiYWVcdTBiYzgiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwYjllXHUwYmJlXHUwYmFmXHUwYmJmXHUwYmIxXHUwYmMxX1x1MGJhNFx1MGJiZlx1MGI5OVx1MGJjZFx1MGI5NVx1MGJiM1x1MGJjZF9cdTBiOWFc'@; put 'dTBiYzZcdTBiYjVcdTBiY2RcdTBiYjVcdTBiYmVcdTBiYWZcdTBiY2RfXHUwYmFhXHUwYmMxXHUwYmE0XHUwYmE5XHUwYmNkX1x1MGJiNVx1MGJiZlx1MGJhZlx1MGJiZVx1MGJiNFx1MGJhOVx1MGJjZF9cdTBiYjVcdTBiYzZcdTBiYjNcdTBiY2RcdTBiYjNcdTBiYmZfXHUwYjlhXHUwYmE5'@; put 'XHUwYmJmIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTBiOWVcdTBiYmVfXHUwYmE0XHUwYmJmX1x1MGI5YVx1MGJjNl9cdTBiYWFcdTBiYzFfXHUwYmI1XHUwYmJmX1x1MGJiNVx1MGJjNl9cdTBiOWEiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDpt'@; put 'bTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZLCBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVksIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTBiODdcdTBiYTlcdTBiY2RcdTBiYjFcdTBiYzFdIExUIixuZXh0RGF5OiJbXHUw'@; put 'YmE4XHUwYmJlXHUwYmIzXHUwYmM4XSBMVCIsbmV4dFdlZWs6ImRkZGQsIExUIixsYXN0RGF5OiJbXHUwYmE4XHUwYmM3XHUwYmIxXHUwYmNkXHUwYmIxXHUwYmMxXSBMVCIsbGFzdFdlZWs6IltcdTBiOTVcdTBiOWZcdTBiYThcdTBiY2RcdTBiYTQgXHUwYmI1XHUwYmJlXHUwYmIwXHUwYmFl'@; put 'XHUwYmNkXSBkZGRkLCBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwYjg3XHUwYmIyXHUwYmNkIixwYXN0OiIlcyBcdTBiYWVcdTBiYzFcdTBiYTlcdTBiY2QiLHM6Ilx1MGI5Mlx1MGJiMFx1MGJjMSBcdTBiOWFcdTBiYmZcdTBiYjIgXHUwYmI1XHUwYmJm'@; put 'XHUwYmE4XHUwYmJlXHUwYjlmXHUwYmJmXHUwYjk1XHUwYmIzXHUwYmNkIixzczoiJWQgXHUwYmI1XHUwYmJmXHUwYmE4XHUwYmJlXHUwYjlmXHUwYmJmXHUwYjk1XHUwYmIzXHUwYmNkIixtOiJcdTBiOTJcdTBiYjBcdTBiYzEgXHUwYmE4XHUwYmJmXHUwYmFlXHUwYmJmXHUwYjlmXHUwYmFl'@; put 'XHUwYmNkIixtbToiJWQgXHUwYmE4XHUwYmJmXHUwYmFlXHUwYmJmXHUwYjlmXHUwYjk5XHUwYmNkXHUwYjk1XHUwYmIzXHUwYmNkIixoOiJcdTBiOTJcdTBiYjBcdTBiYzEgXHUwYmFlXHUwYmEzXHUwYmJmIFx1MGJhOFx1MGJjN1x1MGJiMFx1MGJhZVx1MGJjZCIsaGg6IiVkIFx1MGJhZVx1'@; put 'MGJhM1x1MGJiZiBcdTBiYThcdTBiYzdcdTBiYjBcdTBiYWVcdTBiY2QiLGQ6Ilx1MGI5Mlx1MGJiMFx1MGJjMSBcdTBiYThcdTBiYmVcdTBiYjNcdTBiY2QiLGRkOiIlZCBcdTBiYThcdTBiYmVcdTBiOWZcdTBiY2RcdTBiOTVcdTBiYjNcdTBiY2QiLE06Ilx1MGI5Mlx1MGJiMFx1MGJjMSBc'@; put 'dTBiYWVcdTBiYmVcdTBiYTRcdTBiYWVcdTBiY2QiLE1NOiIlZCBcdTBiYWVcdTBiYmVcdTBiYTRcdTBiOTlcdTBiY2RcdTBiOTVcdTBiYjNcdTBiY2QiLHk6Ilx1MGI5Mlx1MGJiMFx1MGJjMSBcdTBiYjVcdTBiYjBcdTBiYzFcdTBiOWZcdTBiYWVcdTBiY2QiLHl5OiIlZCBcdTBiODZcdTBi'@; put 'YTNcdTBiY2RcdTBiOWZcdTBiYzFcdTBiOTVcdTBiYjNcdTBiY2QifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XHUwYmI1XHUwYmE0XHUwYmMxLyxvcmRpbmFsOmZ1bmN0aW9uKHcpe3JldHVybiB3KyJcdTBiYjVcdTBiYTRcdTBiYzEifSxwcmVwYXJzZTpmdW5jdGlvbih3KXty'@; put 'ZXR1cm4gdy5yZXBsYWNlKC9bXHUwYmU3XHUwYmU4XHUwYmU5XHUwYmVhXHUwYmViXHUwYmVjXHUwYmVkXHUwYmVlXHUwYmVmXHUwYmU2XS9nLGZ1bmN0aW9uKEYpe3JldHVybiBwW0ZdfSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24odyl7cmV0dXJuIHcucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihG'@; put 'KXtyZXR1cm4gX1tGXX0pfSxtZXJpZGllbVBhcnNlOi9cdTBiYWZcdTBiYmVcdTBiYWVcdTBiYWVcdTBiY2R8XHUwYmI1XHUwYmM4XHUwYjk1XHUwYmIxXHUwYmM4fFx1MGI5NVx1MGJiZVx1MGJiMlx1MGJjOHxcdTBiYThcdTBiYTNcdTBiY2RcdTBiYWFcdTBiOTVcdTBiYjJcdTBiY2R8XHUw'@; put 'YjhlXHUwYmIxXHUwYmNkXHUwYmFhXHUwYmJlXHUwYjlmXHUwYmMxfFx1MGJhZVx1MGJiZVx1MGJiMlx1MGJjOC8sbWVyaWRpZW06ZnVuY3Rpb24odyxGLEgpe3JldHVybiB3PDI/IiBcdTBiYWZcdTBiYmVcdTBiYWVcdTBiYWVcdTBiY2QiOnc8Nj8iIFx1MGJiNVx1MGJjOFx1MGI5NVx1MGJi'@; put 'MVx1MGJjOCI6dzwxMD8iIFx1MGI5NVx1MGJiZVx1MGJiMlx1MGJjOCI6dzwxND8iIFx1MGJhOFx1MGJhM1x1MGJjZFx1MGJhYVx1MGI5NVx1MGJiMlx1MGJjZCI6dzwxOD8iIFx1MGI4ZVx1MGJiMVx1MGJjZFx1MGJhYVx1MGJiZVx1MGI5Zlx1MGJjMSI6dzwyMj8iIFx1MGJhZVx1MGJiZVx1'@; put 'MGJiMlx1MGJjOCI6IiBcdTBiYWZcdTBiYmVcdTBiYWVcdTBiYWVcdTBiY2QifSxtZXJpZGllbUhvdXI6ZnVuY3Rpb24odyxGKXtyZXR1cm4gMTI9PT13JiYodz0wKSwiXHUwYmFmXHUwYmJlXHUwYmFlXHUwYmFlXHUwYmNkIj09PUY/dzwyP3c6dysxMjoiXHUwYmI1XHUwYmM4XHUwYjk1XHUw'@; put 'YmIxXHUwYmM4Ij09PUZ8fCJcdTBiOTVcdTBiYmVcdTBiYjJcdTBiYzgiPT09Rnx8Ilx1MGJhOFx1MGJhM1x1MGJjZFx1MGJhYVx1MGI5NVx1MGJiMlx1MGJjZCI9PT1GJiZ3Pj0xMD93OncrMTJ9LHdlZWs6e2RvdzowLGRveTo2fX0pfShiKDk3NTg2KSl9LDMyMDYwOmZ1bmN0aW9uKGNlLEos'@; put 'Yil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0IjtELmRlZmluZUxvY2FsZSgidGUiLHttb250aHM6Ilx1MGMxY1x1MGMyOFx1MGMzNVx1MGMzMFx1MGMzZl9cdTBjMmJcdTBjM2ZcdTBjMmNcdTBjNGRcdTBjMzBcdTBjMzVcdTBjMzBcdTBjM2ZfXHUwYzJlXHUwYzNlXHUwYzMwXHUwYzRkXHUw'@; put 'YzFhXHUwYzNmX1x1MGMwZlx1MGMyYVx1MGM0ZFx1MGMzMFx1MGMzZlx1MGMzMlx1MGM0ZF9cdTBjMmVcdTBjNDdfXHUwYzFjXHUwYzQyXHUwYzI4XHUwYzRkX1x1MGMxY1x1MGM0MVx1MGMzMlx1MGM0OF9cdTBjMDZcdTBjMTdcdTBjMzhcdTBjNGRcdTBjMWZcdTBjNDFfXHUwYzM4XHUwYzQ2'@; put 'XHUwYzJhXHUwYzRkXHUwYzFmXHUwYzQ2XHUwYzAyXHUwYzJjXHUwYzMwXHUwYzRkX1x1MGMwNVx1MGMxNVx1MGM0ZFx1MGMxZlx1MGM0Ylx1MGMyY1x1MGMzMFx1MGM0ZF9cdTBjMjhcdTBjMzVcdTBjMDJcdTBjMmNcdTBjMzBcdTBjNGRfXHUwYzIxXHUwYzNmXHUwYzM4XHUwYzQ2XHUwYzAy'@; put 'XHUwYzJjXHUwYzMwXHUwYzRkIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTBjMWNcdTBjMjguX1x1MGMyYlx1MGMzZlx1MGMyY1x1MGM0ZFx1MGMzMC5fXHUwYzJlXHUwYzNlXHUwYzMwXHUwYzRkXHUwYzFhXHUwYzNmX1x1MGMwZlx1MGMyYVx1MGM0ZFx1MGMzMFx1MGMzZi5fXHUwYzJl'@; put 'XHUwYzQ3X1x1MGMxY1x1MGM0Mlx1MGMyOFx1MGM0ZF9cdTBjMWNcdTBjNDFcdTBjMzJcdTBjNDhfXHUwYzA2XHUwYzE3Ll9cdTBjMzhcdTBjNDZcdTBjMmFcdTBjNGQuX1x1MGMwNVx1MGMxNVx1MGM0ZFx1MGMxZlx1MGM0Yi5fXHUwYzI4XHUwYzM1Ll9cdTBjMjFcdTBjM2ZcdTBjMzhcdTBj'@; put 'NDYuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Ilx1MGMwNlx1MGMyNlx1MGMzZlx1MGMzNVx1MGMzZVx1MGMzMFx1MGMwMl9cdTBjMzhcdTBjNGJcdTBjMmVcdTBjMzVcdTBjM2VcdTBjMzBcdTBjMDJfXHUwYzJlXHUwYzAyXHUwYzE3XHUwYzMzXHUwYzM1XHUw'@; put 'YzNlXHUwYzMwXHUwYzAyX1x1MGMyY1x1MGM0MVx1MGMyN1x1MGMzNVx1MGMzZVx1MGMzMFx1MGMwMl9cdTBjMTdcdTBjNDFcdTBjMzBcdTBjNDFcdTBjMzVcdTBjM2VcdTBjMzBcdTBjMDJfXHUwYzM2XHUwYzQxXHUwYzE1XHUwYzRkXHUwYzMwXHUwYzM1XHUwYzNlXHUwYzMwXHUwYzAyX1x1'@; put 'MGMzNlx1MGMyOFx1MGMzZlx1MGMzNVx1MGMzZVx1MGMzMFx1MGMwMiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTBjMDZcdTBjMjZcdTBjM2ZfXHUwYzM4XHUwYzRiXHUwYzJlX1x1MGMyZVx1MGMwMlx1MGMxN1x1MGMzM19cdTBjMmNcdTBjNDFcdTBjMjdfXHUwYzE3XHUwYzQxXHUw'@; put 'YzMwXHUwYzQxX1x1MGMzNlx1MGM0MVx1MGMxNVx1MGM0ZFx1MGMzMF9cdTBjMzZcdTBjMjhcdTBjM2YiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MGMwNl9cdTBjMzhcdTBjNGJfXHUwYzJlXHUwYzAyX1x1MGMyY1x1MGM0MV9cdTBjMTdcdTBjNDFfXHUwYzM2XHUwYzQxX1x1MGMzNiIu'@; put 'c3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkEgaDptbSIsTFRTOiJBIGg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSwgQSBoOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6'@; put 'IltcdTBjMjhcdTBjNDdcdTBjMjFcdTBjNDFdIExUIixuZXh0RGF5OiJbXHUwYzMwXHUwYzQ3XHUwYzJhXHUwYzQxXSBMVCIsbmV4dFdlZWs6ImRkZGQsIExUIixsYXN0RGF5OiJbXHUwYzI4XHUwYzNmXHUwYzI4XHUwYzRkXHUwYzI4XSBMVCIsbGFzdFdlZWs6IltcdTBjMTdcdTBjMjRdIGRk'@; put 'ZGQsIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBcdTBjMzJcdTBjNGIiLHBhc3Q6IiVzIFx1MGMxNVx1MGM0ZFx1MGMzMFx1MGMzZlx1MGMyNFx1MGMwMiIsczoiXHUwYzE1XHUwYzRhXHUwYzI4XHUwYzRkXHUwYzI4XHUwYzNmIFx1MGMxNVx1MGM0ZFx1MGMz'@; put 'N1x1MGMyM1x1MGMzZVx1MGMzMlx1MGM0MSIsc3M6IiVkIFx1MGMzOFx1MGM0Nlx1MGMxNVx1MGMyOFx1MGM0ZFx1MGMzMlx1MGM0MSIsbToiXHUwYzEyXHUwYzE1IFx1MGMyOFx1MGMzZlx1MGMyZVx1MGMzZlx1MGMzN1x1MGMwMiIsbW06IiVkIFx1MGMyOFx1MGMzZlx1MGMyZVx1MGMzZlx1'@; put 'MGMzN1x1MGMzZVx1MGMzMlx1MGM0MSIsaDoiXHUwYzEyXHUwYzE1IFx1MGMxN1x1MGMwMlx1MGMxZiIsaGg6IiVkIFx1MGMxN1x1MGMwMlx1MGMxZlx1MGMzMlx1MGM0MSIsZDoiXHUwYzEyXHUwYzE1IFx1MGMzMFx1MGM0Ylx1MGMxY1x1MGM0MSIsZGQ6IiVkIFx1MGMzMFx1MGM0Ylx1MGMx'@; put 'Y1x1MGM0MVx1MGMzMlx1MGM0MSIsTToiXHUwYzEyXHUwYzE1IFx1MGMyOFx1MGM0Nlx1MGMzMiIsTU06IiVkIFx1MGMyOFx1MGM0Nlx1MGMzMlx1MGMzMlx1MGM0MSIseToiXHUwYzEyXHUwYzE1IFx1MGMzOFx1MGMwMlx1MGMzNVx1MGMyNFx1MGM0ZFx1MGMzOFx1MGMzMFx1MGMwMiIseXk6'@; put 'IiVkIFx1MGMzOFx1MGMwMlx1MGMzNVx1MGMyNFx1MGM0ZFx1MGMzOFx1MGMzMFx1MGMzZVx1MGMzMlx1MGM0MSJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cdTBjMzUvLG9yZGluYWw6IiVkXHUwYzM1IixtZXJpZGllbVBhcnNlOi9cdTBjMzBcdTBjM2VcdTBjMjRcdTBjNGRc'@; put 'dTBjMzBcdTBjM2Z8XHUwYzA5XHUwYzI2XHUwYzJmXHUwYzAyfFx1MGMyZVx1MGMyN1x1MGM0ZFx1MGMyZlx1MGMzZVx1MGMzOVx1MGM0ZFx1MGMyOFx1MGMwMnxcdTBjMzhcdTBjM2VcdTBjMmZcdTBjMDJcdTBjMjRcdTBjNGRcdTBjMzBcdTBjMDIvLG1lcmlkaWVtSG91cjpmdW5jdGlvbihw'@; put 'LE4pe3JldHVybiAxMj09PXAmJihwPTApLCJcdTBjMzBcdTBjM2VcdTBjMjRcdTBjNGRcdTBjMzBcdTBjM2YiPT09Tj9wPDQ/cDpwKzEyOiJcdTBjMDlcdTBjMjZcdTBjMmZcdTBjMDIiPT09Tj9wOiJcdTBjMmVcdTBjMjdcdTBjNGRcdTBjMmZcdTBjM2VcdTBjMzlcdTBjNGRcdTBjMjhcdTBj'@; put 'MDIiPT09Tj9wPj0xMD9wOnArMTI6Ilx1MGMzOFx1MGMzZVx1MGMyZlx1MGMwMlx1MGMyNFx1MGM0ZFx1MGMzMFx1MGMwMiI9PT1OP3ArMTI6dm9pZCAwfSxtZXJpZGllbTpmdW5jdGlvbihwLE4sdyl7cmV0dXJuIHA8ND8iXHUwYzMwXHUwYzNlXHUwYzI0XHUwYzRkXHUwYzMwXHUwYzNmIjpw'@; put 'PDEwPyJcdTBjMDlcdTBjMjZcdTBjMmZcdTBjMDIiOnA8MTc/Ilx1MGMyZVx1MGMyN1x1MGM0ZFx1MGMyZlx1MGMzZVx1MGMzOVx1MGM0ZFx1MGMyOFx1MGMwMiI6cDwyMD8iXHUwYzM4XHUwYzNlXHUwYzJmXHUwYzAyXHUwYzI0XHUwYzRkXHUwYzMwXHUwYzAyIjoiXHUwYzMwXHUwYzNlXHUw'@; put 'YzI0XHUwYzRkXHUwYzMwXHUwYzNmIn0sd2Vlazp7ZG93OjAsZG95OjZ9fSl9KGIoOTc1ODYpKX0sOTMyOTA6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO0QuZGVmaW5lTG9jYWxlKCJ0ZXQiLHttb250aHM6IkphbmVpcnVfRmV2ZXJlaXJ1X01hcnN1X0Ficmls'@; put 'X01haXVfSnVceGYxdV9KdWxsdV9BZ3VzdHVfU2V0ZW1icnVfT3V0dWJydV9Ob3ZlbWJydV9EZXplbWJydSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFuX0Zldl9NYXJfQWJyX01haV9KdW5fSnVsX0Fnb19TZXRfT3V0X05vdl9EZXoiLnNwbGl0KCJfIiksd2Vla2RheXM6IkRvbWluZ3Vf'@; put 'U2VndW5kYV9UZXJzYV9LdWFydGFfS2ludGFfU2VzdGFfU2FiYWR1Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IkRvbV9TZWdfVGVyc19LdWFfS2ludF9TZXN0X1NhYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiRG9fU2VnX1RlX0t1X0tpX1Nlc19TYSIuc3BsaXQoIl8iKSxsb25nRGF0'@; put 'ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltPaGluIGloYV0gTFQiLG5leHREYXk6'@; put 'IltBYmFuIGloYV0gTFQiLG5leHRXZWVrOiJkZGRkIFtpaGFdIExUIixsYXN0RGF5OiJbSG9yaXNlaWsgaWhhXSBMVCIsbGFzdFdlZWs6ImRkZGQgW3NlbWFuYSBrb3R1a10gW2loYV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImloYSAlcyIscGFzdDoiJXMgbGl1'@; put 'YmEiLHM6InNlZ3VuZHUgYmFsdW4iLHNzOiJzZWd1bmR1ICVkIixtOiJtaW51dHUgaWRhIixtbToibWludXR1ICVkIixoOiJvcmFzIGlkYSIsaGg6Im9yYXMgJWQiLGQ6Imxvcm9uIGlkYSIsZGQ6Imxvcm9uICVkIixNOiJmdWxhbiBpZGEiLE1NOiJmdWxhbiAlZCIseToidGluYW4gaWRhIix5'@; put 'eToidGluYW4gJWQifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KHN0fG5kfHJkfHRoKS8sb3JkaW5hbDpmdW5jdGlvbihwKXt2YXIgTj1wJTEwO3JldHVybiBwKygxPT1+fihwJTEwMC8xMCk/InRoIjoxPT09Tj8ic3QiOjI9PT1OPyJuZCI6Mz09PU4/InJkIjoidGgiKX0sd2Vl'@; put 'azp7ZG93OjEsZG95OjR9fSl9KGIoOTc1ODYpKX0sODI5NDpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7dmFyIF89ezA6Ii1cdTA0NDNcdTA0M2MiLDE6Ii1cdTA0NDNcdTA0M2MiLDI6Ii1cdTA0NGVcdTA0M2MiLDM6Ii1cdTA0NGVcdTA0M2MiLDQ6Ii1cdTA0'@; put 'NDNcdTA0M2MiLDU6Ii1cdTA0NDNcdTA0M2MiLDY6Ii1cdTA0NDNcdTA0M2MiLDc6Ii1cdTA0NDNcdTA0M2MiLDg6Ii1cdTA0NDNcdTA0M2MiLDk6Ii1cdTA0NDNcdTA0M2MiLDEwOiItXHUwNDQzXHUwNDNjIiwxMjoiLVx1MDQ0M1x1MDQzYyIsMTM6Ii1cdTA0NDNcdTA0M2MiLDIwOiItXHUw'@; put 'NDQzXHUwNDNjIiwzMDoiLVx1MDQ0ZVx1MDQzYyIsNDA6Ii1cdTA0NDNcdTA0M2MiLDUwOiItXHUwNDQzXHUwNDNjIiw2MDoiLVx1MDQ0M1x1MDQzYyIsNzA6Ii1cdTA0NDNcdTA0M2MiLDgwOiItXHUwNDQzXHUwNDNjIiw5MDoiLVx1MDQ0M1x1MDQzYyIsMTAwOiItXHUwNDQzXHUwNDNjIn07'@; put 'RC5kZWZpbmVMb2NhbGUoInRnIix7bW9udGhzOntmb3JtYXQ6Ilx1MDQ0Zlx1MDQzZFx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQzOF9cdTA0NDRcdTA0MzVcdTA0MzJcdTA0NDBcdTA0MzBcdTA0M2JcdTA0MzhfXHUwNDNjXHUwNDMwXHUwNDQwXHUwNDQyXHUwNDM4X1x1MDQzMFx1MDQzZlx1MDQ0'@; put 'MFx1MDQzNVx1MDQzYlx1MDQzOF9cdTA0M2NcdTA0MzBcdTA0MzlcdTA0MzhfXHUwNDM4XHUwNDRlXHUwNDNkXHUwNDM4X1x1MDQzOFx1MDQ0ZVx1MDQzYlx1MDQzOF9cdTA0MzBcdTA0MzJcdTA0MzNcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzhfXHUwNDQxXHUwNDM1XHUwNDNkXHUwNDQyXHUw'@; put 'NDRmXHUwNDMxXHUwNDQwXHUwNDM4X1x1MDQzZVx1MDQzYVx1MDQ0Mlx1MDQ0Zlx1MDQzMVx1MDQ0MFx1MDQzOF9cdTA0M2RcdTA0M2VcdTA0NGZcdTA0MzFcdTA0NDBcdTA0MzhfXHUwNDM0XHUwNDM1XHUwNDNhXHUwNDMwXHUwNDMxXHUwNDQwXHUwNDM4Ii5zcGxpdCgiXyIpLHN0YW5kYWxv'@; put 'bmU6Ilx1MDQ0Zlx1MDQzZFx1MDQzMlx1MDQzMFx1MDQ0MF9cdTA0NDRcdTA0MzVcdTA0MzJcdTA0NDBcdTA0MzBcdTA0M2JfXHUwNDNjXHUwNDMwXHUwNDQwXHUwNDQyX1x1MDQzMFx1MDQzZlx1MDQ0MFx1MDQzNVx1MDQzYl9cdTA0M2NcdTA0MzBcdTA0MzlfXHUwNDM4XHUwNDRlXHUwNDNk'@; put 'X1x1MDQzOFx1MDQ0ZVx1MDQzYl9cdTA0MzBcdTA0MzJcdTA0MzNcdTA0NDNcdTA0NDFcdTA0NDJfXHUwNDQxXHUwNDM1XHUwNDNkXHUwNDQyXHUwNDRmXHUwNDMxXHUwNDQwX1x1MDQzZVx1MDQzYVx1MDQ0Mlx1MDQ0Zlx1MDQzMVx1MDQ0MF9cdTA0M2RcdTA0M2VcdTA0NGZcdTA0MzFcdTA0'@; put 'NDBfXHUwNDM0XHUwNDM1XHUwNDNhXHUwNDMwXHUwNDMxXHUwNDQwIi5zcGxpdCgiXyIpfSxtb250aHNTaG9ydDoiXHUwNDRmXHUwNDNkXHUwNDMyX1x1MDQ0NFx1MDQzNVx1MDQzMl9cdTA0M2NcdTA0MzBcdTA0NDBfXHUwNDMwXHUwNDNmXHUwNDQwX1x1MDQzY1x1MDQzMFx1MDQzOV9cdTA0'@; put 'MzhcdTA0NGVcdTA0M2RfXHUwNDM4XHUwNDRlXHUwNDNiX1x1MDQzMFx1MDQzMlx1MDQzM19cdTA0NDFcdTA0MzVcdTA0M2RfXHUwNDNlXHUwNDNhXHUwNDQyX1x1MDQzZFx1MDQzZVx1MDQ0Zl9cdTA0MzRcdTA0MzVcdTA0M2EiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDQ0Zlx1MDQzYVx1'@; put 'MDQ0OFx1MDQzMFx1MDQzZFx1MDQzMVx1MDQzNV9cdTA0MzRcdTA0NDNcdTA0NDhcdTA0MzBcdTA0M2RcdTA0MzFcdTA0MzVfXHUwNDQxXHUwNDM1XHUwNDQ4XHUwNDMwXHUwNDNkXHUwNDMxXHUwNDM1X1x1MDQ0N1x1MDQzZVx1MDQ0MFx1MDQ0OFx1MDQzMFx1MDQzZFx1MDQzMVx1MDQzNV9c'@; put 'dTA0M2ZcdTA0MzBcdTA0M2RcdTA0YjdcdTA0NDhcdTA0MzBcdTA0M2RcdTA0MzFcdTA0MzVfXHUwNGI3XHUwNDQzXHUwNDNjXHUwNDRhXHUwNDMwX1x1MDQ0OFx1MDQzMFx1MDQzZFx1MDQzMVx1MDQzNSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA0NGZcdTA0NDhcdTA0MzFfXHUw'@; put 'NDM0XHUwNDQ4XHUwNDMxX1x1MDQ0MVx1MDQ0OFx1MDQzMV9cdTA0NDdcdTA0NDhcdTA0MzFfXHUwNDNmXHUwNDQ4XHUwNDMxX1x1MDRiN1x1MDQ0M1x1MDQzY19cdTA0NDhcdTA0M2RcdTA0MzEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDQ0Zlx1MDQ0OF9cdTA0MzRcdTA0NDhfXHUw'@; put 'NDQxXHUwNDQ4X1x1MDQ0N1x1MDQ0OF9cdTA0M2ZcdTA0NDhfXHUwNGI3XHUwNDNjX1x1MDQ0OFx1MDQzMSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkg'@; put 'SEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA0MThcdTA0M2NcdTA0NDBcdTA0ZWZcdTA0MzcgXHUwNDQxXHUwNDNlXHUwNDMwXHUwNDQyXHUwNDM4XSBMVCIsbmV4dERheToiW1x1MDQyNFx1MDQzMFx1MDQ0MFx1MDQzNFx1MDQz'@; put 'ZSBcdTA0NDFcdTA0M2VcdTA0MzBcdTA0NDJcdTA0MzhdIExUIixsYXN0RGF5OiJbXHUwNDE0XHUwNDM4XHUwNDQwXHUwNGVmXHUwNDM3IFx1MDQ0MVx1MDQzZVx1MDQzMFx1MDQ0Mlx1MDQzOF0gTFQiLG5leHRXZWVrOiJkZGRkW1x1MDQzOF0gW1x1MDRiM1x1MDQzMFx1MDQ0NFx1MDQ0Mlx1'@; put 'MDQzMFx1MDQzOCBcdTA0M2VcdTA0NGZcdTA0M2RcdTA0MzRcdTA0MzAgXHUwNDQxXHUwNDNlXHUwNDMwXHUwNDQyXHUwNDM4XSBMVCIsbGFzdFdlZWs6ImRkZGRbXHUwNDM4XSBbXHUwNGIzXHUwNDMwXHUwNDQ0XHUwNDQyXHUwNDMwXHUwNDM4IFx1MDQzM1x1MDQ0M1x1MDQzN1x1MDQzMFx1'@; put 'MDQ0OFx1MDQ0Mlx1MDQzMCBcdTA0NDFcdTA0M2VcdTA0MzBcdTA0NDJcdTA0MzhdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTA0MzFcdTA0MzBcdTA0NGFcdTA0MzRcdTA0MzggJXMiLHBhc3Q6IiVzIFx1MDQzZlx1MDQzNVx1MDQ0OCIsczoiXHUwNDRmXHUw'@; put 'NDNhXHUwNDQ3XHUwNDMwXHUwNDNkXHUwNDM0IFx1MDQ0MVx1MDQzZVx1MDQzZFx1MDQzOFx1MDQ0ZiIsbToiXHUwNDRmXHUwNDNhIFx1MDQzNFx1MDQzMFx1MDQ5Ylx1MDQzOFx1MDQ5Ylx1MDQzMCIsbW06IiVkIFx1MDQzNFx1MDQzMFx1MDQ5Ylx1MDQzOFx1MDQ5Ylx1MDQzMCIsaDoiXHUw'@; put 'NDRmXHUwNDNhIFx1MDQ0MVx1MDQzZVx1MDQzMFx1MDQ0MiIsaGg6IiVkIFx1MDQ0MVx1MDQzZVx1MDQzMFx1MDQ0MiIsZDoiXHUwNDRmXHUwNDNhIFx1MDQ0MFx1MDRlZlx1MDQzNyIsZGQ6IiVkIFx1MDQ0MFx1MDRlZlx1MDQzNyIsTToiXHUwNDRmXHUwNDNhIFx1MDQzY1x1MDQzZVx1MDRi'@; put 'MyIsTU06IiVkIFx1MDQzY1x1MDQzZVx1MDRiMyIseToiXHUwNDRmXHUwNDNhIFx1MDQ0MVx1MDQzZVx1MDQzYiIseXk6IiVkIFx1MDQ0MVx1MDQzZVx1MDQzYiJ9LG1lcmlkaWVtUGFyc2U6L1x1MDQ0OFx1MDQzMFx1MDQzMXxcdTA0NDFcdTA0NDNcdTA0MzFcdTA0YjN8XHUwNDQwXHUwNGVm'@; put 'XHUwNDM3fFx1MDQzMVx1MDQzNVx1MDQzM1x1MDQzZVx1MDRiMy8sbWVyaWRpZW1Ib3VyOmZ1bmN0aW9uKE4sdyl7cmV0dXJuIDEyPT09TiYmKE49MCksIlx1MDQ0OFx1MDQzMFx1MDQzMSI9PT13P048ND9OOk4rMTI6Ilx1MDQ0MVx1MDQ0M1x1MDQzMVx1MDRiMyI9PT13P046Ilx1MDQ0MFx1'@; put 'MDRlZlx1MDQzNyI9PT13P04+PTExP046TisxMjoiXHUwNDMxXHUwNDM1XHUwNDMzXHUwNDNlXHUwNGIzIj09PXc/TisxMjp2b2lkIDB9LG1lcmlkaWVtOmZ1bmN0aW9uKE4sdyxGKXtyZXR1cm4gTjw0PyJcdTA0NDhcdTA0MzBcdTA0MzEiOk48MTE/Ilx1MDQ0MVx1MDQ0M1x1MDQzMVx1MDRi'@; put 'MyI6TjwxNj8iXHUwNDQwXHUwNGVmXHUwNDM3IjpOPDE5PyJcdTA0MzFcdTA0MzVcdTA0MzNcdTA0M2VcdTA0YjMiOiJcdTA0NDhcdTA0MzBcdTA0MzEifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9LShcdTA0NDNcdTA0M2N8XHUwNDRlXHUwNDNjKS8sb3JkaW5hbDpmdW5jdGlv'@; put 'bihOKXtyZXR1cm4gTisoX1tOXXx8X1tOJTEwXXx8X1tOPj0xMDA/MTAwOm51bGxdKX0sd2Vlazp7ZG93OjEsZG95Ojd9fSl9KGIoOTc1ODYpKX0sMTIzMTpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7RC5kZWZpbmVMb2NhbGUoInRoIix7bW9udGhzOiJcdTBl'@; put 'MjFcdTBlMDFcdTBlMjNcdTBlMzJcdTBlMDRcdTBlMjFfXHUwZTAxXHUwZTM4XHUwZTIxXHUwZTIwXHUwZTMyXHUwZTFlXHUwZTMxXHUwZTE5XHUwZTE4XHUwZTRjX1x1MGUyMVx1MGUzNVx1MGUxOVx1MGUzMlx1MGUwNFx1MGUyMV9cdTBlNDBcdTBlMjFcdTBlMjlcdTBlMzJcdTBlMjJcdTBl'@; put 'MTlfXHUwZTFlXHUwZTI0XHUwZTI5XHUwZTIwXHUwZTMyXHUwZTA0XHUwZTIxX1x1MGUyMVx1MGUzNFx1MGUxNlx1MGUzOFx1MGUxOVx1MGUzMlx1MGUyMlx1MGUxOV9cdTBlMDFcdTBlMjNcdTBlMDFcdTBlMGVcdTBlMzJcdTBlMDRcdTBlMjFfXHUwZTJhXHUwZTM0XHUwZTA3XHUwZTJiXHUw'@; put 'ZTMyXHUwZTA0XHUwZTIxX1x1MGUwMVx1MGUzMVx1MGUxOVx1MGUyMlx1MGUzMlx1MGUyMlx1MGUxOV9cdTBlMTVcdTBlMzhcdTBlMjVcdTBlMzJcdTBlMDRcdTBlMjFfXHUwZTFlXHUwZTI0XHUwZTI4XHUwZTA4XHUwZTM0XHUwZTAxXHUwZTMyXHUwZTIyXHUwZTE5X1x1MGUxOFx1MGUzMVx1'@; put 'MGUxOVx1MGUyN1x1MGUzMlx1MGUwNFx1MGUyMSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwZTIxLlx1MGUwNC5fXHUwZTAxLlx1MGUxZS5fXHUwZTIxXHUwZTM1Llx1MGUwNC5fXHUwZTQwXHUwZTIxLlx1MGUyMi5fXHUwZTFlLlx1MGUwNC5fXHUwZTIxXHUwZTM0Llx1MGUyMi5fXHUw'@; put 'ZTAxLlx1MGUwNC5fXHUwZTJhLlx1MGUwNC5fXHUwZTAxLlx1MGUyMi5fXHUwZTE1Llx1MGUwNC5fXHUwZTFlLlx1MGUyMi5fXHUwZTE4Llx1MGUwNC4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiXHUwZTJkXHUwZTMyXHUwZTE3XHUwZTM0XHUwZTE1XHUwZTIy'@; put 'XHUwZTRjX1x1MGUwOFx1MGUzMVx1MGUxOVx1MGUxN1x1MGUyM1x1MGU0Y19cdTBlMmRcdTBlMzFcdTBlMDdcdTBlMDRcdTBlMzJcdTBlMjNfXHUwZTFlXHUwZTM4XHUwZTE4X1x1MGUxZVx1MGUyNFx1MGUyYlx1MGUzMVx1MGUyYVx1MGUxYVx1MGUxNFx1MGUzNV9cdTBlMjhcdTBlMzhcdTBl'@; put 'MDFcdTBlMjNcdTBlNGNfXHUwZTQwXHUwZTJhXHUwZTMyXHUwZTIzXHUwZTRjIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MGUyZFx1MGUzMlx1MGUxN1x1MGUzNFx1MGUxNVx1MGUyMlx1MGU0Y19cdTBlMDhcdTBlMzFcdTBlMTlcdTBlMTdcdTBlMjNcdTBlNGNfXHUwZTJkXHUwZTMx'@; put 'XHUwZTA3XHUwZTA0XHUwZTMyXHUwZTIzX1x1MGUxZVx1MGUzOFx1MGUxOF9cdTBlMWVcdTBlMjRcdTBlMmJcdTBlMzFcdTBlMmFfXHUwZTI4XHUwZTM4XHUwZTAxXHUwZTIzXHUwZTRjX1x1MGU0MFx1MGUyYVx1MGUzMlx1MGUyM1x1MGU0YyIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUw'@; put 'ZTJkXHUwZTMyLl9cdTBlMDguX1x1MGUyZC5fXHUwZTFlLl9cdTBlMWVcdTBlMjQuX1x1MGUyOC5fXHUwZTJhLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0g'@; put 'WVlZWSIsTExMOiJEIE1NTU0gWVlZWSBcdTBlNDBcdTBlMjdcdTBlMjVcdTBlMzIgSDptbSIsTExMTDoiXHUwZTI3XHUwZTMxXHUwZTE5ZGRkZFx1MGUxN1x1MGUzNVx1MGU0OCBEIE1NTU0gWVlZWSBcdTBlNDBcdTBlMjdcdTBlMjVcdTBlMzIgSDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1MGUw'@; put 'MVx1MGU0OFx1MGUyZFx1MGUxOVx1MGU0MFx1MGUxN1x1MGUzNVx1MGU0OFx1MGUyMlx1MGUwN3xcdTBlMmJcdTBlMjVcdTBlMzFcdTBlMDdcdTBlNDBcdTBlMTdcdTBlMzVcdTBlNDhcdTBlMjJcdTBlMDcvLGlzUE06ZnVuY3Rpb24ocCl7cmV0dXJuIlx1MGUyYlx1MGUyNVx1MGUzMVx1MGUw'@; put 'N1x1MGU0MFx1MGUxN1x1MGUzNVx1MGU0OFx1MGUyMlx1MGUwNyI9PT1wfSxtZXJpZGllbTpmdW5jdGlvbihwLE4sdyl7cmV0dXJuIHA8MTI/Ilx1MGUwMVx1MGU0OFx1MGUyZFx1MGUxOVx1MGU0MFx1MGUxN1x1MGUzNVx1MGU0OFx1MGUyMlx1MGUwNyI6Ilx1MGUyYlx1MGUyNVx1MGUzMVx1'@; put 'MGUwN1x1MGU0MFx1MGUxN1x1MGUzNVx1MGU0OFx1MGUyMlx1MGUwNyJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwZTI3XHUwZTMxXHUwZTE5XHUwZTE5XHUwZTM1XHUwZTQ5IFx1MGU0MFx1MGUyN1x1MGUyNVx1MGUzMl0gTFQiLG5leHREYXk6IltcdTBlMWVcdTBlMjNcdTBlMzhcdTBlNDhc'@; put 'dTBlMDdcdTBlMTlcdTBlMzVcdTBlNDkgXHUwZTQwXHUwZTI3XHUwZTI1XHUwZTMyXSBMVCIsbmV4dFdlZWs6ImRkZGRbXHUwZTJiXHUwZTE5XHUwZTQ5XHUwZTMyIFx1MGU0MFx1MGUyN1x1MGUyNVx1MGUzMl0gTFQiLGxhc3REYXk6IltcdTBlNDBcdTBlMjFcdTBlMzdcdTBlNDhcdTBlMmRc'@; put 'dTBlMjdcdTBlMzJcdTBlMTlcdTBlMTlcdTBlMzVcdTBlNDkgXHUwZTQwXHUwZTI3XHUwZTI1XHUwZTMyXSBMVCIsbGFzdFdlZWs6IltcdTBlMjdcdTBlMzFcdTBlMTldZGRkZFtcdTBlMTdcdTBlMzVcdTBlNDhcdTBlNDFcdTBlMjVcdTBlNDlcdTBlMjcgXHUwZTQwXHUwZTI3XHUwZTI1XHUw'@; put 'ZTMyXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwZTJkXHUwZTM1XHUwZTAxICVzIixwYXN0OiIlc1x1MGUxN1x1MGUzNVx1MGU0OFx1MGU0MVx1MGUyNVx1MGU0OVx1MGUyNyIsczoiXHUwZTQ0XHUwZTIxXHUwZTQ4XHUwZTAxXHUwZTM1XHUwZTQ4XHUwZTI3'@; put 'XHUwZTM0XHUwZTE5XHUwZTMyXHUwZTE3XHUwZTM1IixzczoiJWQgXHUwZTI3XHUwZTM0XHUwZTE5XHUwZTMyXHUwZTE3XHUwZTM1IixtOiIxIFx1MGUxOVx1MGUzMlx1MGUxN1x1MGUzNSIsbW06IiVkIFx1MGUxOVx1MGUzMlx1MGUxN1x1MGUzNSIsaDoiMSBcdTBlMGFcdTBlMzFcdTBlNDhc'@; put 'dTBlMjdcdTBlNDJcdTBlMjFcdTBlMDciLGhoOiIlZCBcdTBlMGFcdTBlMzFcdTBlNDhcdTBlMjdcdTBlNDJcdTBlMjFcdTBlMDciLGQ6IjEgXHUwZTI3XHUwZTMxXHUwZTE5IixkZDoiJWQgXHUwZTI3XHUwZTMxXHUwZTE5Iix3OiIxIFx1MGUyYVx1MGUzMVx1MGUxYlx1MGUxNFx1MGUzMlx1'@; put 'MGUyYlx1MGU0YyIsd3c6IiVkIFx1MGUyYVx1MGUzMVx1MGUxYlx1MGUxNFx1MGUzMlx1MGUyYlx1MGU0YyIsTToiMSBcdTBlNDBcdTBlMTRcdTBlMzdcdTBlMmRcdTBlMTkiLE1NOiIlZCBcdTBlNDBcdTBlMTRcdTBlMzdcdTBlMmRcdTBlMTkiLHk6IjEgXHUwZTFiXHUwZTM1Iix5eToiJWQg'@; put 'XHUwZTFiXHUwZTM1In19KX0oYig5NzU4NikpfSwzNzQ2OmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0Ijt2YXIgXz17MToiJ2luamkiLDU6IidpbmppIiw4OiInaW5qaSIsNzA6IidpbmppIiw4MDoiJ2luamkiLDI6IiduamkiLDc6IiduamkiLDIwOiInbmppIiw1'@; put 'MDoiJ25qaSIsMzoiJ1x4ZmNuamkiLDQ6IidceGZjbmppIiwxMDA6IidceGZjbmppIiw2OiInbmp5Iiw5OiIndW5qeSIsMTA6Iid1bmp5IiwzMDoiJ3VuankiLDYwOiIneW5qeSIsOTA6Iid5bmp5In07RC5kZWZpbmVMb2NhbGUoInRrIix7bW9udGhzOiJceGRkYW53YXJfRmV3cmFsX01hcnRf'@; put 'QXByZWxfTWFceGZkX0lceGZkdW5fSVx4ZmR1bF9Bd2d1c3RfU2VudFx4ZmRhYnJfT2t0XHhmZGFicl9Ob1x4ZmRhYnJfRGVrYWJyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJceGRkYW5fRmV3X01hcl9BcHJfTWFceGZkX0lceGZkbl9JXHhmZGxfQXdnX1Nlbl9Pa3RfTm9ceGZkX0RlayIu'@; put 'c3BsaXQoIl8iKSx3ZWVrZGF5czoiXHhkZGVrXHUwMTVmZW5iZV9EdVx1MDE1ZmVuYmVfU2lcdTAxNWZlbmJlX1x4Yzdhclx1MDE1ZmVuYmVfUGVuXHUwMTVmZW5iZV9Bbm5hX1x1MDE1ZWVuYmUiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHhkZGVrX0R1XHUwMTVmX1NpXHUwMTVmX1x4'@; put 'Yzdhcl9QZW5fQW5uX1x1MDE1ZWVuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJceGRka19EXHUwMTVmX1NcdTAxNWZfXHhjN3JfUG5fQW5fXHUwMTVlbiIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRCBN'@; put 'TU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltidWdceGZjbiBzYWdhdF0gTFQiLG5leHREYXk6IltlcnRpciBzYWdhdF0gTFQiLG5leHRXZWVrOiJbaW5kaWtpXSBkZGRkIFtzYWdhdF0g'@; put 'TFQiLGxhc3REYXk6IltkXHhmY1x4ZmRuXSBMVCIsbGFzdFdlZWs6IltnZVx4ZTdlbl0gZGRkZCBbc2FnYXRdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBzb1x1MDE0OCIscGFzdDoiJXMgXHhmNlx1MDE0OCIsczoiYmlyblx4ZTRceGU3ZSBzZWt1bnQiLG06'@; put 'ImJpciBtaW51dCIsbW06IiVkIG1pbnV0IixoOiJiaXIgc2FnYXQiLGhoOiIlZCBzYWdhdCIsZDoiYmlyIGdceGZjbiIsZGQ6IiVkIGdceGZjbiIsTToiYmlyIGFceGZkIixNTToiJWQgYVx4ZmQiLHk6ImJpciBceGZkeWwiLHl5OiIlZCBceGZkeWwifSxvcmRpbmFsOmZ1bmN0aW9uKE4sdyl7'@; put 'c3dpdGNoKHcpe2Nhc2UiZCI6Y2FzZSJEIjpjYXNlIkRvIjpjYXNlIkREIjpyZXR1cm4gTjtkZWZhdWx0OmlmKDA9PT1OKXJldHVybiBOKyIndW5qeSI7dmFyIEY9TiUxMDtyZXR1cm4gTisoX1tGXXx8X1tOJTEwMC1GXXx8X1tOPj0xMDA/MTAwOm51bGxdKX19LHdlZWs6e2RvdzoxLGRveTo3'@; put 'fX0pfShiKDk3NTg2KSl9LDQ5MDQwOmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0IjtELmRlZmluZUxvY2FsZSgidGwtcGgiLHttb250aHM6IkVuZXJvX1BlYnJlcm9fTWFyc29fQWJyaWxfTWF5b19IdW55b19IdWx5b19BZ29zdG9fU2V0eWVtYnJlX09rdHVicmVf'@; put 'Tm9ieWVtYnJlX0Rpc3llbWJyZSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiRW5lX1BlYl9NYXJfQWJyX01heV9IdW5fSHVsX0Fnb19TZXRfT2t0X05vYl9EaXMiLnNwbGl0KCJfIiksd2Vla2RheXM6Ikxpbmdnb19MdW5lc19NYXJ0ZXNfTWl5ZXJrdWxlc19IdXdlYmVzX0JpeWVybmVzX1Nh'@; put 'YmFkbyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJMaW5fTHVuX01hcl9NaXlfSHV3X0JpeV9TYWIiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IkxpX0x1X01hX01pX0h1X0JpX1NhYiIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJN'@; put 'TS9EL1lZWVkiLExMOiJNTU1NIEQsIFlZWVkiLExMTDoiTU1NTSBELCBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBNTU1NIERELCBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IkxUIFtuZ2F5b25nIGFyYXddIixuZXh0RGF5OiJbQnVrYXMgbmddIExUIixuZXh0V2VlazoiTFQgW3Nh'@; put 'IHN1c3Vub2QgbmFdIGRkZGQiLGxhc3REYXk6IkxUIFtrYWhhcG9uXSIsbGFzdFdlZWs6IkxUIFtub29uZyBuYWthcmFhbmddIGRkZGQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6InNhIGxvb2IgbmcgJXMiLHBhc3Q6IiVzIGFuZyBuYWthbGlwYXMiLHM6ImlsYW5nIHNl'@; put 'Z3VuZG8iLHNzOiIlZCBzZWd1bmRvIixtOiJpc2FuZyBtaW51dG8iLG1tOiIlZCBtaW51dG8iLGg6ImlzYW5nIG9yYXMiLGhoOiIlZCBvcmFzIixkOiJpc2FuZyBhcmF3IixkZDoiJWQgYXJhdyIsTToiaXNhbmcgYnV3YW4iLE1NOiIlZCBidXdhbiIseToiaXNhbmcgdGFvbiIseXk6IiVkIHRh'@; put 'b24ifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9LyxvcmRpbmFsOmZ1bmN0aW9uKHApe3JldHVybiBwfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oYig5NzU4NikpfSwxNzE4NzpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7dmFyIF89InBhZ2hfd2Fc'@; put 'dTIwMTlfY2hhXHUyMDE5X3dlal9sb1NfdmFnaF9qYXZfU29jaF9jaG9yZ2hfSHV0Ii5zcGxpdCgiXyIpO2Z1bmN0aW9uIHcoUixqLFAsTCl7dmFyIFk9ZnVuY3Rpb24gRihSKXt2YXIgaj1NYXRoLmZsb29yKFIlMWUzLzEwMCksUD1NYXRoLmZsb29yKFIlMTAwLzEwKSxMPVIlMTAsWT0iIjty'@; put 'ZXR1cm4gaj4wJiYoWSs9X1tqXSsidmF0bGgiKSxQPjAmJihZKz0oIiIhPT1ZPyIgIjoiIikrX1tQXSsibWFIIiksTD4wJiYoWSs9KCIiIT09WT8iICI6IiIpK19bTF0pLCIiPT09WT8icGFnaCI6WX0oUik7c3dpdGNoKFApe2Nhc2Uic3MiOnJldHVybiBZKyIgbHVwIjtjYXNlIm1tIjpyZXR1'@; put 'cm4gWSsiIHR1cCI7Y2FzZSJoaCI6cmV0dXJuIFkrIiByZXAiO2Nhc2UiZGQiOnJldHVybiBZKyIgamFqIjtjYXNlIk1NIjpyZXR1cm4gWSsiIGphciI7Y2FzZSJ5eSI6cmV0dXJuIFkrIiBESVMifX1ELmRlZmluZUxvY2FsZSgidGxoIix7bW9udGhzOiJ0ZXJhXHUyMDE5IGphciB3YVx1MjAx'@; put 'OV90ZXJhXHUyMDE5IGphciBjaGFcdTIwMTlfdGVyYVx1MjAxOSBqYXIgd2VqX3RlcmFcdTIwMTkgamFyIGxvU190ZXJhXHUyMDE5IGphciB2YWdoX3RlcmFcdTIwMTkgamFyIGphdl90ZXJhXHUyMDE5IGphciBTb2NoX3RlcmFcdTIwMTkgamFyIGNob3JnaF90ZXJhXHUyMDE5IGphciBIdXRf'@; put 'dGVyYVx1MjAxOSBqYXIgd2FcdTIwMTltYUhfdGVyYVx1MjAxOSBqYXIgd2FcdTIwMTltYUggd2FcdTIwMTlfdGVyYVx1MjAxOSBqYXIgd2FcdTIwMTltYUggY2hhXHUyMDE5Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJqYXIgd2FcdTIwMTlfamFyIGNoYVx1MjAxOV9qYXIgd2VqX2phciBs'@; put 'b1NfamFyIHZhZ2hfamFyIGphdl9qYXIgU29jaF9qYXIgY2hvcmdoX2phciBIdXRfamFyIHdhXHUyMDE5bWFIX2phciB3YVx1MjAxOW1hSCB3YVx1MjAxOV9qYXIgd2FcdTIwMTltYUggY2hhXHUyMDE5Ii5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Imxvam1JdGph'@; put 'al9EYVNqYWpfcG92amFqX2doSXRsaGphal9sb2doamFqX2J1cWphal9naEluamFqIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Imxvam1JdGphal9EYVNqYWpfcG92amFqX2doSXRsaGphal9sb2doamFqX2J1cWphal9naEluamFqIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJsb2ptSXRq'@; put 'YWpfRGFTamFqX3Bvdmphal9naEl0bGhqYWpfbG9naGphal9idXFqYWpfZ2hJbmphaiIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6'@; put 'ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltEYUhqYWpdIExUIixuZXh0RGF5OiJbd2FcdTIwMTlsZVNdIExUIixuZXh0V2VlazoiTExMIixsYXN0RGF5OiJbd2FcdTIwMTlIdVx1MjAxOV0gTFQiLGxhc3RXZWVrOiJMTEwiLHNhbWVFbHNlOiJMIn0scmVs'@; put 'YXRpdmVUaW1lOntmdXR1cmU6ZnVuY3Rpb24gcChSKXt2YXIgaj1SO3JldHVybi0xIT09Ui5pbmRleE9mKCJqYWoiKT9qLnNsaWNlKDAsLTMpKyJsZVMiOi0xIT09Ui5pbmRleE9mKCJqYXIiKT9qLnNsaWNlKDAsLTMpKyJ3YVEiOi0xIT09Ui5pbmRleE9mKCJESVMiKT9qLnNsaWNlKDAsLTMp'@; put 'KyJuZW0iOmorIiBwSXEifSxwYXN0OmZ1bmN0aW9uIE4oUil7dmFyIGo9UjtyZXR1cm4tMSE9PVIuaW5kZXhPZigiamFqIik/ai5zbGljZSgwLC0zKSsiSHVcdTIwMTkiOi0xIT09Ui5pbmRleE9mKCJqYXIiKT9qLnNsaWNlKDAsLTMpKyJ3ZW4iOi0xIT09Ui5pbmRleE9mKCJESVMiKT9qLnNs'@; put 'aWNlKDAsLTMpKyJiZW4iOmorIiByZXQifSxzOiJwdVMgbHVwIixzczp3LG06IndhXHUyMDE5IHR1cCIsbW06dyxoOiJ3YVx1MjAxOSByZXAiLGhoOncsZDoid2FcdTIwMTkgamFqIixkZDp3LE06IndhXHUyMDE5IGphciIsTU06dyx5OiJ3YVx1MjAxOSBESVMiLHl5Ond9LGRheU9mTW9udGhP'@; put 'cmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oYig5NzU4NikpfSw2MDE1MzpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7dmFyIF89ezE6IidpbmNpIiw1OiInaW5jaSIsODoiJ2luY2kiLDcwOiInaW5j'@; put 'aSIsODA6IidpbmNpIiwyOiInbmNpIiw3OiInbmNpIiwyMDoiJ25jaSIsNTA6IiduY2kiLDM6IidceGZjbmNceGZjIiw0OiInXHhmY25jXHhmYyIsMTAwOiInXHhmY25jXHhmYyIsNjoiJ25jXHUwMTMxIiw5OiIndW5jdSIsMTA6Iid1bmN1IiwzMDoiJ3VuY3UiLDYwOiInXHUwMTMxbmNcdTAx'@; put 'MzEiLDkwOiInXHUwMTMxbmNcdTAxMzEifTtELmRlZmluZUxvY2FsZSgidHIiLHttb250aHM6Ik9jYWtfXHUwMTVldWJhdF9NYXJ0X05pc2FuX01heVx1MDEzMXNfSGF6aXJhbl9UZW1tdXpfQVx1MDExZnVzdG9zX0V5bFx4ZmNsX0VraW1fS2FzXHUwMTMxbV9BcmFsXHUwMTMxayIuc3BsaXQo'@; put 'Il8iKSxtb250aHNTaG9ydDoiT2NhX1x1MDE1ZXViX01hcl9OaXNfTWF5X0hhel9UZW1fQVx1MDExZnVfRXlsX0VraV9LYXNfQXJhIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJQYXphcl9QYXphcnRlc2lfU2FsXHUwMTMxX1x4Yzdhclx1MDE1ZmFtYmFfUGVyXHUwMTVmZW1iZV9DdW1hX0N1bWFy'@; put 'dGVzaSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJQYXpfUHp0X1NhbF9ceGM3YXJfUGVyX0N1bV9DbXQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlB6X1B0X1NhX1x4YzdhX1BlX0N1X0N0Ii5zcGxpdCgiXyIpLG1lcmlkaWVtOmZ1bmN0aW9uKE4sdyxGKXtyZXR1cm4gTjwxMj9GPyJc'@; put 'eGY2XHhmNiI6Ilx4ZDZceGQ2IjpGPyJceGY2cyI6Ilx4ZDZTIn0sbWVyaWRpZW1QYXJzZTovXHhmNlx4ZjZ8XHhkNlx4ZDZ8XHhmNnN8XHhkNlMvLGlzUE06ZnVuY3Rpb24oTil7cmV0dXJuIlx4ZjZzIj09PU58fCJceGQ2UyI9PT1OfSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6'@; put 'IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltidWdceGZjbiBzYWF0XSBMVCIsbmV4dERheToiW3lhclx1MDEzMW4gc2FhdF0g'@; put 'TFQiLG5leHRXZWVrOiJbZ2VsZWNla10gZGRkZCBbc2FhdF0gTFQiLGxhc3REYXk6IltkXHhmY25dIExUIixsYXN0V2VlazoiW2dlXHhlN2VuXSBkZGRkIFtzYWF0XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgc29ucmEiLHBhc3Q6IiVzIFx4ZjZuY2UiLHM6'@; put 'ImJpcmthXHhlNyBzYW5peWUiLHNzOiIlZCBzYW5peWUiLG06ImJpciBkYWtpa2EiLG1tOiIlZCBkYWtpa2EiLGg6ImJpciBzYWF0IixoaDoiJWQgc2FhdCIsZDoiYmlyIGdceGZjbiIsZGQ6IiVkIGdceGZjbiIsdzoiYmlyIGhhZnRhIix3dzoiJWQgaGFmdGEiLE06ImJpciBheSIsTU06IiVk'@; put 'IGF5Iix5OiJiaXIgeVx1MDEzMWwiLHl5OiIlZCB5XHUwMTMxbCJ9LG9yZGluYWw6ZnVuY3Rpb24oTix3KXtzd2l0Y2godyl7Y2FzZSJkIjpjYXNlIkQiOmNhc2UiRG8iOmNhc2UiREQiOnJldHVybiBOO2RlZmF1bHQ6aWYoMD09PU4pcmV0dXJuIE4rIidcdTAxMzFuY1x1MDEzMSI7dmFyIEY9'@; put 'TiUxMDtyZXR1cm4gTisoX1tGXXx8X1tOJTEwMC1GXXx8X1tOPj0xMDA/MTAwOm51bGxdKX19LHdlZWs6e2RvdzoxLGRveTo3fX0pfShiKDk3NTg2KSl9LDg4NTIxOmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBwKE4sdyxGLEgpe3ZhciBSPXtz'@; put 'OlsidmllbnNhcyBzZWN1bmRzIiwiJ2llbnNhcyBzZWN1bmRzIl0sc3M6W04rIiBzZWN1bmRzIixOKyIgc2VjdW5kcyJdLG06WyInbiBtXHhlZHV0IiwiJ2llbnMgbVx4ZWR1dCJdLG1tOltOKyIgbVx4ZWR1dHMiLE4rIiBtXHhlZHV0cyJdLGg6WyInbiBceGZlb3JhIiwiJ2llbnNhIFx4ZmVv'@; put 'cmEiXSxoaDpbTisiIFx4ZmVvcmFzIixOKyIgXHhmZW9yYXMiXSxkOlsiJ24geml1YSIsIidpZW5zYSB6aXVhIl0sZGQ6W04rIiB6aXVhcyIsTisiIHppdWFzIl0sTTpbIiduIG1lcyIsIidpZW5zIG1lcyJdLE1NOltOKyIgbWVzZW4iLE4rIiBtZXNlbiJdLHk6WyInbiBhciIsIidpZW5zIGFy'@; put 'Il0seXk6W04rIiBhcnMiLE4rIiBhcnMiXX07cmV0dXJuIEh8fHc/UltGXVswXTpSW0ZdWzFdfUQuZGVmaW5lTG9jYWxlKCJ0emwiLHttb250aHM6IkphbnVhcl9GZXZyYWdsaF9NYXJceGU3X0F2clx4ZWZ1X01haV9HXHhmY25fSnVsaWFfR3VzY2h0X1NldGVtdmFyX0xpc3RvcFx4ZTR0c19O'@; put 'b2VtdmFyX1plY2VtdmFyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fRmV2X01hcl9BdnJfTWFpX0dceGZjbl9KdWxfR3VzX1NldF9MaXNfTm9lX1plYyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiU1x4ZmFsYWRpX0xceGZhbmVceGU3aV9NYWl0emlfTVx4ZTFyY3VyaV9YaFx4ZmFhZGlf'@; put 'VmlceGU5bmVyXHhlN2lfU1x4ZTF0dXJpIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IlNceGZhbF9MXHhmYW5fTWFpX01ceGUxcl9YaFx4ZmFfVmlceGU5X1NceGUxdCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiU1x4ZmFfTFx4ZmFfTWFfTVx4ZTFfWGhfVmlfU1x4ZTEiLnNwbGl0KCJf'@; put 'IiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISC5tbSIsTFRTOiJISC5tbS5zcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQuIE1NTU0gW2RhbGxhc10gWVlZWSIsTExMOiJELiBNTU1NIFtkYWxsYXNdIFlZWVkgSEgubW0iLExMTEw6ImRkZGQsIFtsaV0gRC4gTU1NTSBbZGFsbGFzXSBZWVlZIEhILm1t'@; put 'In0sbWVyaWRpZW1QYXJzZTovZFwnb3xkXCdhL2ksaXNQTTpmdW5jdGlvbihOKXtyZXR1cm4iZCdvIj09PU4udG9Mb3dlckNhc2UoKX0sbWVyaWRpZW06ZnVuY3Rpb24oTix3LEYpe3JldHVybiBOPjExP0Y/ImQnbyI6IkQnTyI6Rj8iZCdhIjoiRCdBIn0sY2FsZW5kYXI6e3NhbWVEYXk6Iltv'@; put 'eGhpIFx4ZTBdIExUIixuZXh0RGF5OiJbZGVtXHhlMCBceGUwXSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x4ZTBdIExUIixsYXN0RGF5OiJbaWVpcmkgXHhlMF0gTFQiLGxhc3RXZWVrOiJbc1x4ZmNyIGVsXSBkZGRkIFtsYXN0ZXUgXHhlMF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1l'@; put 'OntmdXR1cmU6Im9zcHJlaSAlcyIscGFzdDoiamElcyIsczpwLHNzOnAsbTpwLG1tOnAsaDpwLGhoOnAsZDpwLGRkOnAsTTpwLE1NOnAseTpwLHl5OnB9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oYig5NzU4'@; put 'NikpfSwyMjIzNDpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7RC5kZWZpbmVMb2NhbGUoInR6bS1sYXRuIix7bW9udGhzOiJpbm5heXJfYnJcdTAyZTRheXJcdTAyZTRfbWFyXHUwMmU0c1x1MDJlNF9pYnJpcl9tYXl5d195d255d195d2x5d3pfXHUwMjYzd1x1'@; put 'MDE2MXRfXHUwMTYxd3RhbmJpcl9rdFx1MDJlNHdiclx1MDJlNF9ud3dhbmJpcl9kd2puYmlyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJpbm5heXJfYnJcdTAyZTRheXJcdTAyZTRfbWFyXHUwMmU0c1x1MDJlNF9pYnJpcl9tYXl5d195d255d195d2x5d3pfXHUwMjYzd1x1MDE2MXRfXHUw'@; put 'MTYxd3RhbmJpcl9rdFx1MDJlNHdiclx1MDJlNF9ud3dhbmJpcl9kd2puYmlyIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJhc2FtYXNfYXluYXNfYXNpbmFzX2FrcmFzX2Frd2FzX2FzaW13YXNfYXNpXHUxZTBkeWFzIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImFzYW1hc19heW5hc19hc2lu'@; put 'YXNfYWtyYXNfYWt3YXNfYXNpbXdhc19hc2lcdTFlMGR5YXMiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46ImFzYW1hc19heW5hc19hc2luYXNfYWtyYXNfYWt3YXNfYXNpbXdhc19hc2lcdTFlMGR5YXMiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpz'@; put 'cyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6Ilthc2RraCBnXSBMVCIsbmV4dERheToiW2Fza2EgZ10gTFQiLG5leHRXZWVrOiJkZGRkIFtnXSBM'@; put 'VCIsbGFzdERheToiW2Fzc2FudCBnXSBMVCIsbGFzdFdlZWs6ImRkZGQgW2ddIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJkYWRraCBzIHlhbiAlcyIscGFzdDoieWFuICVzIixzOiJpbWlrIixzczoiJWQgaW1payIsbToibWludVx1MWUwZCIsbW06IiVkIG1pbnVc'@; put 'dTFlMGQiLGg6InNhXHUwMjViYSIsaGg6IiVkIHRhc3NhXHUwMjViaW4iLGQ6ImFzcyIsZGQ6IiVkIG9zc2FuIixNOiJheW93ciIsTU06IiVkIGl5eWlybiIseToiYXNnYXMiLHl5OiIlZCBpc2dhc24ifSx3ZWVrOntkb3c6Nixkb3k6MTJ9fSl9KGIoOTc1ODYpKX0sMTgwMTA6ZnVuY3Rpb24o'@; put 'Y2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO0QuZGVmaW5lTG9jYWxlKCJ0em0iLHttb250aHM6Ilx1MmQ0OVx1MmQ0Zlx1MmQ0Zlx1MmQzMFx1MmQ2Mlx1MmQ1NF9cdTJkMzFcdTJkNTVcdTJkMzBcdTJkNjJcdTJkNTVfXHUyZDRlXHUyZDMwXHUyZDU1XHUyZDVhX1x1MmQ0OVx1'@; put 'MmQzMVx1MmQ1NFx1MmQ0OVx1MmQ1NF9cdTJkNGVcdTJkMzBcdTJkNjJcdTJkNjJcdTJkNTNfXHUyZDYyXHUyZDUzXHUyZDRmXHUyZDYyXHUyZDUzX1x1MmQ2Mlx1MmQ1M1x1MmQ0ZFx1MmQ2Mlx1MmQ1M1x1MmQ2M19cdTJkNTZcdTJkNTNcdTJkNWJcdTJkNWNfXHUyZDViXHUyZDUzXHUyZDVj'@; put 'XHUyZDMwXHUyZDRmXHUyZDMxXHUyZDQ5XHUyZDU0X1x1MmQzZFx1MmQ1Zlx1MmQ1M1x1MmQzMVx1MmQ1NV9cdTJkNGZcdTJkNTNcdTJkNjFcdTJkMzBcdTJkNGZcdTJkMzFcdTJkNDlcdTJkNTRfXHUyZDM3XHUyZDUzXHUyZDRhXHUyZDRmXHUyZDMxXHUyZDQ5XHUyZDU0Ii5zcGxpdCgiXyIp'@; put 'LG1vbnRoc1Nob3J0OiJcdTJkNDlcdTJkNGZcdTJkNGZcdTJkMzBcdTJkNjJcdTJkNTRfXHUyZDMxXHUyZDU1XHUyZDMwXHUyZDYyXHUyZDU1X1x1MmQ0ZVx1MmQzMFx1MmQ1NVx1MmQ1YV9cdTJkNDlcdTJkMzFcdTJkNTRcdTJkNDlcdTJkNTRfXHUyZDRlXHUyZDMwXHUyZDYyXHUyZDYyXHUy'@; put 'ZDUzX1x1MmQ2Mlx1MmQ1M1x1MmQ0Zlx1MmQ2Mlx1MmQ1M19cdTJkNjJcdTJkNTNcdTJkNGRcdTJkNjJcdTJkNTNcdTJkNjNfXHUyZDU2XHUyZDUzXHUyZDViXHUyZDVjX1x1MmQ1Ylx1MmQ1M1x1MmQ1Y1x1MmQzMFx1MmQ0Zlx1MmQzMVx1MmQ0OVx1MmQ1NF9cdTJkM2RcdTJkNWZcdTJkNTNc'@; put 'dTJkMzFcdTJkNTVfXHUyZDRmXHUyZDUzXHUyZDYxXHUyZDMwXHUyZDRmXHUyZDMxXHUyZDQ5XHUyZDU0X1x1MmQzN1x1MmQ1M1x1MmQ0YVx1MmQ0Zlx1MmQzMVx1MmQ0OVx1MmQ1NCIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUyZDMwXHUyZDU5XHUyZDMwXHUyZDRlXHUyZDMwXHUyZDU5X1x1'@; put 'MmQzMFx1MmQ2Mlx1MmQ0Zlx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkNTlcdTJkNDlcdTJkNGZcdTJkMzBcdTJkNTlfXHUyZDMwXHUyZDNkXHUyZDU0XHUyZDMwXHUyZDU5X1x1MmQzMFx1MmQzZFx1MmQ2MVx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkNTlcdTJkNDlcdTJkNGVcdTJkNjFcdTJkMzBc'@; put 'dTJkNTlfXHUyZDMwXHUyZDU5XHUyZDQ5XHUyZDM5XHUyZDYyXHUyZDMwXHUyZDU5Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MmQzMFx1MmQ1OVx1MmQzMFx1MmQ0ZVx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkNjJcdTJkNGZcdTJkMzBcdTJkNTlfXHUyZDMwXHUyZDU5XHUyZDQ5XHUy'@; put 'ZDRmXHUyZDMwXHUyZDU5X1x1MmQzMFx1MmQzZFx1MmQ1NFx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkM2RcdTJkNjFcdTJkMzBcdTJkNTlfXHUyZDMwXHUyZDU5XHUyZDQ5XHUyZDRlXHUyZDYxXHUyZDMwXHUyZDU5X1x1MmQzMFx1MmQ1OVx1MmQ0OVx1MmQzOVx1MmQ2Mlx1MmQzMFx1MmQ1OSIu'@; put 'c3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUyZDMwXHUyZDU5XHUyZDMwXHUyZDRlXHUyZDMwXHUyZDU5X1x1MmQzMFx1MmQ2Mlx1MmQ0Zlx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkNTlcdTJkNDlcdTJkNGZcdTJkMzBcdTJkNTlfXHUyZDMwXHUyZDNkXHUyZDU0XHUyZDMwXHUyZDU5X1x1MmQz'@; put 'MFx1MmQzZFx1MmQ2MVx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkNTlcdTJkNDlcdTJkNGVcdTJkNjFcdTJkMzBcdTJkNTlfXHUyZDMwXHUyZDU5XHUyZDQ5XHUyZDM5XHUyZDYyXHUyZDMwXHUyZDU5Ii5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3Mi'@; put 'LEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUyZDMwXHUyZDU5XHUyZDM3XHUyZDQ1IFx1MmQzNF0gTFQiLG5leHREYXk6IltcdTJkMzBcdTJk'@; put 'NTlcdTJkM2RcdTJkMzAgXHUyZDM0XSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MmQzNF0gTFQiLGxhc3REYXk6IltcdTJkMzBcdTJkNWFcdTJkMzBcdTJkNGZcdTJkNWMgXHUyZDM0XSBMVCIsbGFzdFdlZWs6ImRkZGQgW1x1MmQzNF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntm'@; put 'dXR1cmU6Ilx1MmQzN1x1MmQzMFx1MmQzN1x1MmQ0NSBcdTJkNTkgXHUyZDYyXHUyZDMwXHUyZDRmICVzIixwYXN0OiJcdTJkNjJcdTJkMzBcdTJkNGYgJXMiLHM6Ilx1MmQ0OVx1MmQ0ZVx1MmQ0OVx1MmQzZCIsc3M6IiVkIFx1MmQ0OVx1MmQ0ZVx1MmQ0OVx1MmQzZCIsbToiXHUyZDRlXHUy'@; put 'ZDQ5XHUyZDRmXHUyZDUzXHUyZDNhIixtbToiJWQgXHUyZDRlXHUyZDQ5XHUyZDRmXHUyZDUzXHUyZDNhIixoOiJcdTJkNTlcdTJkMzBcdTJkNDRcdTJkMzAiLGhoOiIlZCBcdTJkNWNcdTJkMzBcdTJkNTlcdTJkNTlcdTJkMzBcdTJkNDRcdTJkNDlcdTJkNGYiLGQ6Ilx1MmQzMFx1MmQ1OVx1'@; put 'MmQ1OSIsZGQ6IiVkIG9cdTJkNTlcdTJkNTlcdTJkMzBcdTJkNGYiLE06Ilx1MmQzMFx1MmQ2Mm9cdTJkNTNcdTJkNTQiLE1NOiIlZCBcdTJkNDlcdTJkNjJcdTJkNjJcdTJkNDlcdTJkNTRcdTJkNGYiLHk6Ilx1MmQzMFx1MmQ1OVx1MmQzM1x1MmQzMFx1MmQ1OSIseXk6IiVkIFx1MmQ0OVx1'@; put 'MmQ1OVx1MmQzM1x1MmQzMFx1MmQ1OVx1MmQ0ZiJ9LHdlZWs6e2Rvdzo2LGRveToxMn19KX0oYig5NzU4NikpfSw2MzM0OTpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7RC5kZWZpbmVMb2NhbGUoInVnLWNuIix7bW9udGhzOiJcdTA2NGFcdTA2MjdcdTA2NDZc'@; put 'dTA2Y2JcdTA2MjdcdTA2MzFfXHUwNjQxXHUwNmQwXHUwNmNiXHUwNjMxXHUwNjI3XHUwNjQ0X1x1MDY0NVx1MDYyN1x1MDYzMVx1MDYyYV9cdTA2MjZcdTA2MjdcdTA2N2VcdTA2MzFcdTA2ZDBcdTA2NDRfXHUwNjQ1XHUwNjI3XHUwNjRhX1x1MDYyNlx1MDY0OVx1MDY0YVx1MDZjN1x1MDY0'@; put 'Nl9cdTA2MjZcdTA2NDlcdTA2NGFcdTA2YzdcdTA2NDRfXHUwNjI2XHUwNjI3XHUwNmNiXHUwNjNhXHUwNmM3XHUwNjMzXHUwNjJhX1x1MDYzM1x1MDZkMFx1MDY0Nlx1MDYyYVx1MDZkNVx1MDYyOFx1MDY0OVx1MDYzMV9cdTA2MjZcdTA2YzZcdTA2NDNcdTA2MmFcdTA2ZDVcdTA2MjhcdTA2'@; put 'NDlcdTA2MzFfXHUwNjQ2XHUwNjQ4XHUwNjRhXHUwNjI3XHUwNjI4XHUwNjQ5XHUwNjMxX1x1MDYyZlx1MDZkMFx1MDY0M1x1MDYyN1x1MDYyOFx1MDY0OVx1MDYzMSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwNjRhXHUwNjI3XHUwNjQ2XHUwNmNiXHUwNjI3XHUwNjMxX1x1MDY0MVx1'@; put 'MDZkMFx1MDZjYlx1MDYzMVx1MDYyN1x1MDY0NF9cdTA2NDVcdTA2MjdcdTA2MzFcdTA2MmFfXHUwNjI2XHUwNjI3XHUwNjdlXHUwNjMxXHUwNmQwXHUwNjQ0X1x1MDY0NVx1MDYyN1x1MDY0YV9cdTA2MjZcdTA2NDlcdTA2NGFcdTA2YzdcdTA2NDZfXHUwNjI2XHUwNjQ5XHUwNjRhXHUwNmM3'@; put 'XHUwNjQ0X1x1MDYyNlx1MDYyN1x1MDZjYlx1MDYzYVx1MDZjN1x1MDYzM1x1MDYyYV9cdTA2MzNcdTA2ZDBcdTA2NDZcdTA2MmFcdTA2ZDVcdTA2MjhcdTA2NDlcdTA2MzFfXHUwNjI2XHUwNmM2XHUwNjQzXHUwNjJhXHUwNmQ1XHUwNjI4XHUwNjQ5XHUwNjMxX1x1MDY0Nlx1MDY0OFx1MDY0'@; put 'YVx1MDYyN1x1MDYyOFx1MDY0OVx1MDYzMV9cdTA2MmZcdTA2ZDBcdTA2NDNcdTA2MjdcdTA2MjhcdTA2NDlcdTA2MzEiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDY0YVx1MDZkNVx1MDY0M1x1MDYzNFx1MDZkNVx1MDY0Nlx1MDYyOFx1MDZkNV9cdTA2MmZcdTA2YzhcdTA2MzRcdTA2ZDVc'@; put 'dTA2NDZcdTA2MjhcdTA2ZDVfXHUwNjMzXHUwNmQ1XHUwNjRhXHUwNjM0XHUwNmQ1XHUwNjQ2XHUwNjI4XHUwNmQ1X1x1MDY4Nlx1MDYyN1x1MDYzMVx1MDYzNFx1MDZkNVx1MDY0Nlx1MDYyOFx1MDZkNV9cdTA2N2VcdTA2ZDVcdTA2NGFcdTA2MzRcdTA2ZDVcdTA2NDZcdTA2MjhcdTA2ZDVf'@; put 'XHUwNjJjXHUwNmM4XHUwNjQ1XHUwNmQ1X1x1MDYzNFx1MDZkNVx1MDY0Nlx1MDYyOFx1MDZkNSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA2NGFcdTA2ZDVfXHUwNjJmXHUwNmM4X1x1MDYzM1x1MDZkNV9cdTA2ODZcdTA2MjdfXHUwNjdlXHUwNmQ1X1x1MDYyY1x1MDZjOF9cdTA2'@; put 'MzRcdTA2ZDUiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDY0YVx1MDZkNV9cdTA2MmZcdTA2YzhfXHUwNjMzXHUwNmQ1X1x1MDY4Nlx1MDYyN19cdTA2N2VcdTA2ZDVfXHUwNjJjXHUwNmM4X1x1MDYzNFx1MDZkNSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixM'@; put 'VFM6IkhIOm1tOnNzIixMOiJZWVlZLU1NLUREIixMTDoiWVlZWS1cdTA2NGFcdTA2NDlcdTA2NDRcdTA2NDlNLVx1MDYyNlx1MDYyN1x1MDY0YVx1MDY0Nlx1MDY0OVx1MDZhZEQtXHUwNjQzXHUwNmM4XHUwNjQ2XHUwNjQ5IixMTEw6IllZWVktXHUwNjRhXHUwNjQ5XHUwNjQ0XHUwNjQ5TS1c'@; put 'dTA2MjZcdTA2MjdcdTA2NGFcdTA2NDZcdTA2NDlcdTA2YWRELVx1MDY0M1x1MDZjOFx1MDY0Nlx1MDY0OVx1MDYwYyBISDptbSIsTExMTDoiZGRkZFx1MDYwYyBZWVlZLVx1MDY0YVx1MDY0OVx1MDY0NFx1MDY0OU0tXHUwNjI2XHUwNjI3XHUwNjRhXHUwNjQ2XHUwNjQ5XHUwNmFkRC1cdTA2'@; put 'NDNcdTA2YzhcdTA2NDZcdTA2NDlcdTA2MGMgSEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTA2NGFcdTA2ZDBcdTA2MzFcdTA2NDlcdTA2NDUgXHUwNjQzXHUwNmQwXHUwNjg2XHUwNmQ1fFx1MDYzM1x1MDZkNVx1MDZiZVx1MDZkNVx1MDYzMXxcdTA2ODZcdTA2YzhcdTA2MzRcdTA2MmFcdTA2'@; put 'NDlcdTA2NDYgXHUwNjI4XHUwNmM3XHUwNjMxXHUwNmM3XHUwNjQ2fFx1MDY4Nlx1MDZjOFx1MDYzNHxcdTA2ODZcdTA2YzhcdTA2MzRcdTA2MmFcdTA2NDlcdTA2NDYgXHUwNjQzXHUwNmQwXHUwNjRhXHUwNjQ5XHUwNjQ2fFx1MDY0M1x1MDZkNVx1MDY4Ni8sbWVyaWRpZW1Ib3VyOmZ1bmN0'@; put 'aW9uKHAsTil7cmV0dXJuIDEyPT09cCYmKHA9MCksIlx1MDY0YVx1MDZkMFx1MDYzMVx1MDY0OVx1MDY0NSBcdTA2NDNcdTA2ZDBcdTA2ODZcdTA2ZDUiPT09Tnx8Ilx1MDYzM1x1MDZkNVx1MDZiZVx1MDZkNVx1MDYzMSI9PT1OfHwiXHUwNjg2XHUwNmM4XHUwNjM0XHUwNjJhXHUwNjQ5XHUw'@; put 'NjQ2IFx1MDYyOFx1MDZjN1x1MDYzMVx1MDZjN1x1MDY0NiI9PT1OP3A6Ilx1MDY4Nlx1MDZjOFx1MDYzNFx1MDYyYVx1MDY0OVx1MDY0NiBcdTA2NDNcdTA2ZDBcdTA2NGFcdTA2NDlcdTA2NDYiPT09Tnx8Ilx1MDY0M1x1MDZkNVx1MDY4NiI9PT1OP3ArMTI6cD49MTE/cDpwKzEyfSxtZXJp'@; put 'ZGllbTpmdW5jdGlvbihwLE4sdyl7dmFyIEY9MTAwKnArTjtyZXR1cm4gRjw2MDA/Ilx1MDY0YVx1MDZkMFx1MDYzMVx1MDY0OVx1MDY0NSBcdTA2NDNcdTA2ZDBcdTA2ODZcdTA2ZDUiOkY8OTAwPyJcdTA2MzNcdTA2ZDVcdTA2YmVcdTA2ZDVcdTA2MzEiOkY8MTEzMD8iXHUwNjg2XHUwNmM4'@; put 'XHUwNjM0XHUwNjJhXHUwNjQ5XHUwNjQ2IFx1MDYyOFx1MDZjN1x1MDYzMVx1MDZjN1x1MDY0NiI6RjwxMjMwPyJcdTA2ODZcdTA2YzhcdTA2MzQiOkY8MTgwMD8iXHUwNjg2XHUwNmM4XHUwNjM0XHUwNjJhXHUwNjQ5XHUwNjQ2IFx1MDY0M1x1MDZkMFx1MDY0YVx1MDY0OVx1MDY0NiI6Ilx1'@; put 'MDY0M1x1MDZkNVx1MDY4NiJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNjI4XHUwNmM4XHUwNmFmXHUwNmM4XHUwNjQ2IFx1MDYzM1x1MDYyN1x1MDYyNlx1MDZkNVx1MDYyYV0gTFQiLG5leHREYXk6IltcdTA2MjZcdTA2ZDVcdTA2MmFcdTA2ZDUgXHUwNjMzXHUwNjI3XHUwNjI2XHUwNmQ1'@; put 'XHUwNjJhXSBMVCIsbmV4dFdlZWs6IltcdTA2NDNcdTA2ZDBcdTA2NDRcdTA2ZDVcdTA2MzFcdTA2NDNcdTA2NDldIGRkZGQgW1x1MDYzM1x1MDYyN1x1MDYyNlx1MDZkNVx1MDYyYV0gTFQiLGxhc3REYXk6IltcdTA2MmFcdTA2YzZcdTA2NDZcdTA2YzhcdTA2YWZcdTA2YzhcdTA2NDZdIExU'@; put 'IixsYXN0V2VlazoiW1x1MDYyNlx1MDYyN1x1MDY0NFx1MDYyZlx1MDY0OVx1MDY0Nlx1MDY0Mlx1MDY0OV0gZGRkZCBbXHUwNjMzXHUwNjI3XHUwNjI2XHUwNmQ1XHUwNjJhXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwNjQzXHUwNmQwXHUwNjRhXHUw'@; put 'NjQ5XHUwNjQ2IixwYXN0OiIlcyBcdTA2MjhcdTA2YzdcdTA2MzFcdTA2YzdcdTA2NDYiLHM6Ilx1MDY0Nlx1MDZkNVx1MDY4Nlx1MDY4Nlx1MDZkNSBcdTA2MzNcdTA2ZDBcdTA2NDNcdTA2NDhcdTA2NDZcdTA2MmEiLHNzOiIlZCBcdTA2MzNcdTA2ZDBcdTA2NDNcdTA2NDhcdTA2NDZcdTA2'@; put 'MmEiLG06Ilx1MDYyOFx1MDY0OVx1MDYzMSBcdTA2NDVcdTA2NDlcdTA2NDZcdTA2YzdcdTA2MmEiLG1tOiIlZCBcdTA2NDVcdTA2NDlcdTA2NDZcdTA2YzdcdTA2MmEiLGg6Ilx1MDYyOFx1MDY0OVx1MDYzMSBcdTA2MzNcdTA2MjdcdTA2MjZcdTA2ZDVcdTA2MmEiLGhoOiIlZCBcdTA2MzNc'@; put 'dTA2MjdcdTA2MjZcdTA2ZDVcdTA2MmEiLGQ6Ilx1MDYyOFx1MDY0OVx1MDYzMSBcdTA2NDNcdTA2YzhcdTA2NDYiLGRkOiIlZCBcdTA2NDNcdTA2YzhcdTA2NDYiLE06Ilx1MDYyOFx1MDY0OVx1MDYzMSBcdTA2MjZcdTA2MjdcdTA2NGEiLE1NOiIlZCBcdTA2MjZcdTA2MjdcdTA2NGEiLHk6'@; put 'Ilx1MDYyOFx1MDY0OVx1MDYzMSBcdTA2NGFcdTA2NDlcdTA2NDQiLHl5OiIlZCBcdTA2NGFcdTA2NDlcdTA2NDQifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KC1cdTA2NDNcdTA2YzhcdTA2NDZcdTA2NDl8LVx1MDYyNlx1MDYyN1x1MDY0YXwtXHUwNmJlXHUwNmQ1XHUwNjdl'@; put 'XHUwNjJhXHUwNmQ1KS8sb3JkaW5hbDpmdW5jdGlvbihwLE4pe3N3aXRjaChOKXtjYXNlImQiOmNhc2UiRCI6Y2FzZSJEREQiOnJldHVybiBwKyItXHUwNjQzXHUwNmM4XHUwNjQ2XHUwNjQ5IjtjYXNlInciOmNhc2UiVyI6cmV0dXJuIHArIi1cdTA2YmVcdTA2ZDVcdTA2N2VcdTA2MmFcdTA2'@; put 'ZDUiO2RlZmF1bHQ6cmV0dXJuIHB9fSxwcmVwYXJzZTpmdW5jdGlvbihwKXtyZXR1cm4gcC5yZXBsYWNlKC9cdTA2MGMvZywiLCIpfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKHApe3JldHVybiBwLnJlcGxhY2UoLywvZywiXHUwNjBjIil9LHdlZWs6e2RvdzoxLGRveTo3fX0pfShiKDk3NTg2KSl9'@; put 'LDY4NDc5OmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBwKEgsUixqKXtyZXR1cm4ibSI9PT1qP1I/Ilx1MDQ0NVx1MDQzMlx1MDQzOFx1MDQzYlx1MDQzOFx1MDQzZFx1MDQzMCI6Ilx1MDQ0NVx1MDQzMlx1MDQzOFx1MDQzYlx1MDQzOFx1MDQz'@; put 'ZFx1MDQ0MyI6ImgiPT09aj9SPyJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzAiOiJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0NDMiOkgrIiAiK2Z1bmN0aW9uIF8oSCxSKXt2YXIgaj1ILnNwbGl0KCJfIik7cmV0dXJuIFIlMTA9PTEmJlIlMTAwIT0xMT9q'@; put 'WzBdOlIlMTA+PTImJlIlMTA8PTQmJihSJTEwMDwxMHx8UiUxMDA+PTIwKT9qWzFdOmpbMl19KHtzczpSPyJcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0MzBfXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDM4X1x1MDQ0MVx1MDQzNVx1MDQz'@; put 'YVx1MDQ0M1x1MDQzZFx1MDQzNCI6Ilx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQ0M19cdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0MzhfXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0IixtbTpSPyJcdTA0NDVcdTA0MzJc'@; put 'dTA0MzhcdTA0M2JcdTA0MzhcdTA0M2RcdTA0MzBfXHUwNDQ1XHUwNDMyXHUwNDM4XHUwNDNiXHUwNDM4XHUwNDNkXHUwNDM4X1x1MDQ0NVx1MDQzMlx1MDQzOFx1MDQzYlx1MDQzOFx1MDQzZCI6Ilx1MDQ0NVx1MDQzMlx1MDQzOFx1MDQzYlx1MDQzOFx1MDQzZFx1MDQ0M19cdTA0NDVcdTA0'@; put 'MzJcdTA0MzhcdTA0M2JcdTA0MzhcdTA0M2RcdTA0MzhfXHUwNDQ1XHUwNDMyXHUwNDM4XHUwNDNiXHUwNDM4XHUwNDNkIixoaDpSPyJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzBfXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDM4XHUwNDNkXHUwNDM4X1x1MDQzM1x1MDQzZVx1'@; put 'MDQzNFx1MDQzOFx1MDQzZCI6Ilx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQ0M19cdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzhfXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDM4XHUwNDNkIixkZDoiXHUwNDM0XHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQzNFx1MDQz'@; put 'ZFx1MDQ1Nl9cdTA0MzRcdTA0M2RcdTA0NTZcdTA0MzIiLE1NOiJcdTA0M2NcdTA0NTZcdTA0NDFcdTA0NGZcdTA0NDZcdTA0NGNfXHUwNDNjXHUwNDU2XHUwNDQxXHUwNDRmXHUwNDQ2XHUwNDU2X1x1MDQzY1x1MDQ1Nlx1MDQ0MVx1MDQ0Zlx1MDQ0Nlx1MDQ1Nlx1MDQzMiIseXk6Ilx1MDQ0'@; put 'MFx1MDQ1Nlx1MDQzYV9cdTA0NDBcdTA0M2VcdTA0M2FcdTA0MzhfXHUwNDQwXHUwNDNlXHUwNDNhXHUwNDU2XHUwNDMyIn1bal0sK0gpfWZ1bmN0aW9uIHcoSCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEgrIlx1MDQzZSIrKDExPT09dGhpcy5ob3VycygpPyJcdTA0MzEiOiIiKSsiXSBM'@; put 'VCJ9fUQuZGVmaW5lTG9jYWxlKCJ1ayIse21vbnRoczp7Zm9ybWF0OiJcdTA0NDFcdTA0NTZcdTA0NDdcdTA0M2RcdTA0NGZfXHUwNDNiXHUwNDRlXHUwNDQyXHUwNDNlXHUwNDMzXHUwNDNlX1x1MDQzMVx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzN1x1MDQzZFx1MDQ0Zl9cdTA0M2FcdTA0MzJc'@; put 'dTA0NTZcdTA0NDJcdTA0M2RcdTA0NGZfXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNkXHUwNDRmX1x1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzZFx1MDQ0Zl9cdTA0M2JcdTA0MzhcdTA0M2ZcdTA0M2RcdTA0NGZfXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDNmXHUwNDNkXHUwNDRm'@; put 'X1x1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQ0MVx1MDQzZFx1MDQ0Zl9cdTA0MzZcdTA0M2VcdTA0MzJcdTA0NDJcdTA0M2RcdTA0NGZfXHUwNDNiXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDNlXHUwNDNmXHUwNDMwXHUwNDM0XHUwNDMwX1x1MDQzM1x1MDQ0MFx1MDQ0M1x1MDQzNFx1MDQz'@; put 'ZFx1MDQ0ZiIuc3BsaXQoIl8iKSxzdGFuZGFsb25lOiJcdTA0NDFcdTA0NTZcdTA0NDdcdTA0MzVcdTA0M2RcdTA0NGNfXHUwNDNiXHUwNDRlXHUwNDQyXHUwNDM4XHUwNDM5X1x1MDQzMVx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzN1x1MDQzNVx1MDQzZFx1MDQ0Y19cdTA0M2FcdTA0MzJcdTA0'@; put 'NTZcdTA0NDJcdTA0MzVcdTA0M2RcdTA0NGNfXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQzZFx1MDQ0Y19cdTA0M2JcdTA0MzhcdTA0M2ZcdTA0MzVcdTA0M2RcdTA0NGNfXHUwNDQxXHUwNDM1XHUw'@; put 'NDQwXHUwNDNmXHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQ0MVx1MDQzNVx1MDQzZFx1MDQ0Y19cdTA0MzZcdTA0M2VcdTA0MzJcdTA0NDJcdTA0MzVcdTA0M2RcdTA0NGNfXHUwNDNiXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDNlXHUwNDNmXHUwNDMwXHUw'@; put 'NDM0X1x1MDQzM1x1MDQ0MFx1MDQ0M1x1MDQzNFx1MDQzNVx1MDQzZFx1MDQ0YyIuc3BsaXQoIl8iKX0sbW9udGhzU2hvcnQ6Ilx1MDQ0MVx1MDQ1Nlx1MDQ0N19cdTA0M2JcdTA0NGVcdTA0NDJfXHUwNDMxXHUwNDM1XHUwNDQwX1x1MDQzYVx1MDQzMlx1MDQ1Nlx1MDQ0Ml9cdTA0NDJcdTA0'@; put 'NDBcdTA0MzBcdTA0MzJfXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDMyX1x1MDQzYlx1MDQzOFx1MDQzZl9cdTA0NDFcdTA0MzVcdTA0NDBcdTA0M2ZfXHUwNDMyXHUwNDM1XHUwNDQwX1x1MDQzNlx1MDQzZVx1MDQzMlx1MDQ0Ml9cdTA0M2JcdTA0MzhcdTA0NDFcdTA0NDJfXHUwNDMzXHUwNDQw'@; put 'XHUwNDQzXHUwNDM0Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOmZ1bmN0aW9uIE4oSCxSKXt2YXIgaj17bm9taW5hdGl2ZToiXHUwNDNkXHUwNDM1XHUwNDM0XHUwNDU2XHUwNDNiXHUwNDRmX1x1MDQzZlx1MDQzZVx1MDQzZFx1MDQzNVx1MDQzNFx1MDQ1Nlx1MDQzYlx1MDQzZVx1MDQzYV9cdTA0'@; put 'MzJcdTA0NTZcdTA0MzJcdTA0NDJcdTA0M2VcdTA0NDBcdTA0M2VcdTA0M2FfXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM0XHUwNDMwX1x1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0MF9cdTA0M2ZcdTIwMTlcdTA0NGZcdTA0NDJcdTA0M2RcdTA0MzhcdTA0NDZcdTA0'@; put 'NGZfXHUwNDQxXHUwNDQzXHUwNDMxXHUwNDNlXHUwNDQyXHUwNDMwIi5zcGxpdCgiXyIpLGFjY3VzYXRpdmU6Ilx1MDQzZFx1MDQzNVx1MDQzNFx1MDQ1Nlx1MDQzYlx1MDQ0ZV9cdTA0M2ZcdTA0M2VcdTA0M2RcdTA0MzVcdTA0MzRcdTA0NTZcdTA0M2JcdTA0M2VcdTA0M2FfXHUwNDMyXHUw'@; put 'NDU2XHUwNDMyXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDNlXHUwNDNhX1x1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0M19cdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDBfXHUwNDNmXHUyMDE5XHUwNDRmXHUwNDQyXHUwNDNkXHUwNDM4XHUwNDQ2XHUwNDRlX1x1'@; put 'MDQ0MVx1MDQ0M1x1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQ0MyIuc3BsaXQoIl8iKSxnZW5pdGl2ZToiXHUwNDNkXHUwNDM1XHUwNDM0XHUwNDU2XHUwNDNiXHUwNDU2X1x1MDQzZlx1MDQzZVx1MDQzZFx1MDQzNVx1MDQzNFx1MDQ1Nlx1MDQzYlx1MDQzYVx1MDQzMF9cdTA0MzJcdTA0NTZcdTA0'@; put 'MzJcdTA0NDJcdTA0M2VcdTA0NDBcdTA0M2FcdTA0MzBfXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM4X1x1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzM1x1MDQzMF9cdTA0M2ZcdTIwMTlcdTA0NGZcdTA0NDJcdTA0M2RcdTA0MzhcdTA0NDZcdTA0'@; put 'NTZfXHUwNDQxXHUwNDQzXHUwNDMxXHUwNDNlXHUwNDQyXHUwNDM4Ii5zcGxpdCgiXyIpfTtyZXR1cm4hMD09PUg/ai5ub21pbmF0aXZlLnNsaWNlKDEsNykuY29uY2F0KGoubm9taW5hdGl2ZS5zbGljZSgwLDEpKTpIP2pbLyhcW1tcdTA0MTJcdTA0MzJcdTA0MjNcdTA0NDNdXF0pID9kZGRk'@; put 'Ly50ZXN0KFIpPyJhY2N1c2F0aXZlIjovXFs/KD86XHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDNiXHUwNDNlXHUwNDU3fFx1MDQzZFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQzZlx1MDQzZFx1MDQzZVx1MDQ1Nyk/ID9cXSA/ZGRkZC8udGVzdChSKT8iZ2VuaXRpdmUiOiJub21p'@; put 'bmF0aXZlIl1bSC5kYXkoKV06ai5ub21pbmF0aXZlfSx3ZWVrZGF5c1Nob3J0OiJcdTA0M2RcdTA0MzRfXHUwNDNmXHUwNDNkX1x1MDQzMlx1MDQ0Ml9cdTA0NDFcdTA0NDBfXHUwNDQ3XHUwNDQyX1x1MDQzZlx1MDQ0Ml9cdTA0NDFcdTA0MzEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1'@; put 'MDQzZFx1MDQzNF9cdTA0M2ZcdTA0M2RfXHUwNDMyXHUwNDQyX1x1MDQ0MVx1MDQ0MF9cdTA0NDdcdTA0NDJfXHUwNDNmXHUwNDQyX1x1MDQ0MVx1MDQzMSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRCBN'@; put 'TU1NIFlZWVkgXHUwNDQwLiIsTExMOiJEIE1NTU0gWVlZWSBcdTA0NDAuLCBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgXHUwNDQwLiwgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheTp3KCJbXHUwNDIxXHUwNDRjXHUwNDNlXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDNkXHUwNDU2ICIp'@; put 'LG5leHREYXk6dygiW1x1MDQxN1x1MDQzMFx1MDQzMlx1MDQ0Mlx1MDQ0MFx1MDQzMCAiKSxsYXN0RGF5OncoIltcdTA0MTJcdTA0NDdcdTA0M2VcdTA0NDBcdTA0MzAgIiksbmV4dFdlZWs6dygiW1x1MDQyM10gZGRkZCBbIiksbGFzdFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXko'@; put 'KSl7Y2FzZSAwOmNhc2UgMzpjYXNlIDU6Y2FzZSA2OnJldHVybiB3KCJbXHUwNDFjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDNiXHUwNDNlXHUwNDU3XSBkZGRkIFsiKS5jYWxsKHRoaXMpO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OnJldHVybiB3KCJbXHUwNDFjXHUwNDM4XHUwNDNkXHUwNDQzXHUw'@; put 'NDNiXHUwNDNlXHUwNDMzXHUwNDNlXSBkZGRkIFsiKS5jYWxsKHRoaXMpfX0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNDM3XHUwNDMwICVzIixwYXN0OiIlcyBcdTA0NDJcdTA0M2VcdTA0M2NcdTA0NDMiLHM6Ilx1MDQzNFx1MDQzNVx1MDQzYVx1MDQ1Nlx1MDQz'@; put 'Ylx1MDQ0Y1x1MDQzYVx1MDQzMCBcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzQiLHNzOnAsbTpwLG1tOnAsaDoiXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDM4XHUwNDNkXHUwNDQzIixoaDpwLGQ6Ilx1MDQzNFx1MDQzNVx1MDQzZFx1MDQ0YyIsZGQ6cCxNOiJcdTA0M2NcdTA0'@; put 'NTZcdTA0NDFcdTA0NGZcdTA0NDZcdTA0NGMiLE1NOnAseToiXHUwNDQwXHUwNDU2XHUwNDNhIix5eTpwfSxtZXJpZGllbVBhcnNlOi9cdTA0M2RcdTA0M2VcdTA0NDdcdTA0NTZ8XHUwNDQwXHUwNDMwXHUwNDNkXHUwNDNhXHUwNDQzfFx1MDQzNFx1MDQzZFx1MDQ0ZnxcdTA0MzJcdTA0MzVc'@; put 'dTA0NDdcdTA0M2VcdTA0NDBcdTA0MzAvLGlzUE06ZnVuY3Rpb24oSCl7cmV0dXJuL14oXHUwNDM0XHUwNDNkXHUwNDRmfFx1MDQzMlx1MDQzNVx1MDQ0N1x1MDQzZVx1MDQ0MFx1MDQzMCkkLy50ZXN0KEgpfSxtZXJpZGllbTpmdW5jdGlvbihILFIsail7cmV0dXJuIEg8ND8iXHUwNDNkXHUw'@; put 'NDNlXHUwNDQ3XHUwNDU2IjpIPDEyPyJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0M2FcdTA0NDMiOkg8MTc/Ilx1MDQzNFx1MDQzZFx1MDQ0ZiI6Ilx1MDQzMlx1MDQzNVx1MDQ0N1x1MDQzZVx1MDQ0MFx1MDQzMCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0tKFx1MDQzOXxcdTA0'@; put 'MzNcdTA0M2UpLyxvcmRpbmFsOmZ1bmN0aW9uKEgsUil7c3dpdGNoKFIpe2Nhc2UiTSI6Y2FzZSJkIjpjYXNlIkRERCI6Y2FzZSJ3IjpjYXNlIlciOnJldHVybiBIKyItXHUwNDM5IjtjYXNlIkQiOnJldHVybiBIKyItXHUwNDMzXHUwNDNlIjtkZWZhdWx0OnJldHVybiBIfX0sd2Vlazp7ZG93'@; put 'OjEsZG95Ojd9fSl9KGIoOTc1ODYpKX0sNDMwMjQ6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO3ZhciBfPVsiXHUwNjJjXHUwNjQ2XHUwNjQ4XHUwNjMxXHUwNmNjIiwiXHUwNjQxXHUwNjMxXHUwNjQ4XHUwNjMxXHUwNmNjIiwiXHUwNjQ1XHUwNjI3XHUwNjMx'@; put 'XHUwNjg2IiwiXHUwNjI3XHUwNjdlXHUwNjMxXHUwNmNjXHUwNjQ0IiwiXHUwNjQ1XHUwNjI2XHUwNmNjIiwiXHUwNjJjXHUwNjQ4XHUwNjQ2IiwiXHUwNjJjXHUwNjQ4XHUwNjQ0XHUwNjI3XHUwNjI2XHUwNmNjIiwiXHUwNjI3XHUwNmFmXHUwNjMzXHUwNjJhIiwiXHUwNjMzXHUwNjJhXHUw'@; put 'NjQ1XHUwNjI4XHUwNjMxIiwiXHUwNjI3XHUwNmE5XHUwNjJhXHUwNjQ4XHUwNjI4XHUwNjMxIiwiXHUwNjQ2XHUwNjQ4XHUwNjQ1XHUwNjI4XHUwNjMxIiwiXHUwNjJmXHUwNjMzXHUwNjQ1XHUwNjI4XHUwNjMxIl0scD1bIlx1MDYyN1x1MDYyYVx1MDY0OFx1MDYyN1x1MDYzMSIsIlx1MDY3'@; put 'ZVx1MDZjY1x1MDYzMSIsIlx1MDY0NVx1MDY0Nlx1MDZhZlx1MDY0NCIsIlx1MDYyOFx1MDYyZlx1MDZiZSIsIlx1MDYyY1x1MDY0NVx1MDYzOVx1MDYzMVx1MDYyN1x1MDYyYSIsIlx1MDYyY1x1MDY0NVx1MDYzOVx1MDZjMSIsIlx1MDZjMVx1MDY0MVx1MDYyYVx1MDZjMSJdO0QuZGVmaW5l'@; put 'TG9jYWxlKCJ1ciIse21vbnRoczpfLG1vbnRoc1Nob3J0Ol8sd2Vla2RheXM6cCx3ZWVrZGF5c1Nob3J0OnAsd2Vla2RheXNNaW46cCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZ'@; put 'WVkgSEg6bW0iLExMTEw6ImRkZGRcdTA2MGMgRCBNTU1NIFlZWVkgSEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTA2MzVcdTA2MjhcdTA2MmR8XHUwNjM0XHUwNjI3XHUwNjQ1Lyxpc1BNOmZ1bmN0aW9uKHcpe3JldHVybiJcdTA2MzRcdTA2MjdcdTA2NDUiPT09d30sbWVyaWRpZW06ZnVuY3Rp'@; put 'b24odyxGLEgpe3JldHVybiB3PDEyPyJcdTA2MzVcdTA2MjhcdTA2MmQiOiJcdTA2MzRcdTA2MjdcdTA2NDUifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDYyMlx1MDYyYyBcdTA2MjhcdTA2NDhcdTA2NDJcdTA2MmFdIExUIixuZXh0RGF5OiJbXHUwNmE5XHUwNjQ0IFx1MDYyOFx1MDY0OFx1'@; put 'MDY0Mlx1MDYyYV0gTFQiLG5leHRXZWVrOiJkZGRkIFtcdTA2MjhcdTA2NDhcdTA2NDJcdTA2MmFdIExUIixsYXN0RGF5OiJbXHUwNmFmXHUwNjMwXHUwNjM0XHUwNjJhXHUwNmMxIFx1MDYzMVx1MDY0OFx1MDYzMiBcdTA2MjhcdTA2NDhcdTA2NDJcdTA2MmFdIExUIixsYXN0V2VlazoiW1x1'@; put 'MDZhZlx1MDYzMFx1MDYzNFx1MDYyYVx1MDZjMV0gZGRkZCBbXHUwNjI4XHUwNjQ4XHUwNjQyXHUwNjJhXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwNjI4XHUwNjM5XHUwNjJmIixwYXN0OiIlcyBcdTA2NDJcdTA2MjhcdTA2NDQiLHM6Ilx1MDY4Nlx1'@; put 'MDY0Nlx1MDYyZiBcdTA2MzNcdTA2Y2NcdTA2YTlcdTA2NDZcdTA2ODgiLHNzOiIlZCBcdTA2MzNcdTA2Y2NcdTA2YTlcdTA2NDZcdTA2ODgiLG06Ilx1MDYyN1x1MDZjY1x1MDZhOSBcdTA2NDVcdTA2NDZcdTA2NzkiLG1tOiIlZCBcdTA2NDVcdTA2NDZcdTA2NzkiLGg6Ilx1MDYyN1x1MDZj'@; put 'Y1x1MDZhOSBcdTA2YWZcdTA2YmVcdTA2NDZcdTA2NzlcdTA2YzEiLGhoOiIlZCBcdTA2YWZcdTA2YmVcdTA2NDZcdTA2NzlcdTA2ZDIiLGQ6Ilx1MDYyN1x1MDZjY1x1MDZhOSBcdTA2MmZcdTA2NDYiLGRkOiIlZCBcdTA2MmZcdTA2NDYiLE06Ilx1MDYyN1x1MDZjY1x1MDZhOSBcdTA2NDVc'@; put 'dTA2MjdcdTA2YzEiLE1NOiIlZCBcdTA2NDVcdTA2MjdcdTA2YzEiLHk6Ilx1MDYyN1x1MDZjY1x1MDZhOSBcdTA2MzNcdTA2MjdcdTA2NDQiLHl5OiIlZCBcdTA2MzNcdTA2MjdcdTA2NDQifSxwcmVwYXJzZTpmdW5jdGlvbih3KXtyZXR1cm4gdy5yZXBsYWNlKC9cdTA2MGMvZywiLCIpfSxw'@; put 'b3N0Zm9ybWF0OmZ1bmN0aW9uKHcpe3JldHVybiB3LnJlcGxhY2UoLywvZywiXHUwNjBjIil9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShiKDk3NTg2KSl9LDcyMzc2OmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0IjtELmRlZmluZUxvY2FsZSgidXotbGF0biIse21v'@; put 'bnRoczoiWWFudmFyX0ZldnJhbF9NYXJ0X0FwcmVsX01heV9JeXVuX0l5dWxfQXZndXN0X1NlbnRhYnJfT2t0YWJyX05veWFicl9EZWthYnIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Illhbl9GZXZfTWFyX0Fwcl9NYXlfSXl1bl9JeXVsX0F2Z19TZW5fT2t0X05veV9EZWsiLnNwbGl0KCJf'@; put 'Iiksd2Vla2RheXM6Illha3NoYW5iYV9EdXNoYW5iYV9TZXNoYW5iYV9DaG9yc2hhbmJhX1BheXNoYW5iYV9KdW1hX1NoYW5iYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJZYWtfRHVzaF9TZXNoX0Nob3JfUGF5X0p1bV9TaGFuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJZYV9EdV9T'@; put 'ZV9DaG9fUGFfSnVfU2hhIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiRCBNTU1NIFlZWVksIGRkZGQgSEg6bW0ifSxjYWxlbmRh'@; put 'cjp7c2FtZURheToiW0J1Z3VuIHNvYXRdIExUIFtkYV0iLG5leHREYXk6IltFcnRhZ2FdIExUIFtkYV0iLG5leHRXZWVrOiJkZGRkIFtrdW5pIHNvYXRdIExUIFtkYV0iLGxhc3REYXk6IltLZWNoYSBzb2F0XSBMVCBbZGFdIixsYXN0V2VlazoiW08ndGdhbl0gZGRkZCBba3VuaSBzb2F0XSBM'@; put 'VCBbZGFdIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJZYXFpbiAlcyBpY2hpZGEiLHBhc3Q6IkJpciBuZWNoYSAlcyBvbGRpbiIsczoic29uaXlhIixzczoiJWQgc29uaXlhIixtOiJiaXIgZGFxaXFhIixtbToiJWQgZGFxaXFhIixoOiJiaXIgc29hdCIsaGg6IiVkIHNv'@; put 'YXQiLGQ6ImJpciBrdW4iLGRkOiIlZCBrdW4iLE06ImJpciBveSIsTU06IiVkIG95Iix5OiJiaXIgeWlsIix5eToiJWQgeWlsIn0sd2Vlazp7ZG93OjEsZG95Ojd9fSl9KGIoOTc1ODYpKX0sMTk4MDA6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO0QuZGVmaW5l'@; put 'TG9jYWxlKCJ1eiIse21vbnRoczoiXHUwNDRmXHUwNDNkXHUwNDMyXHUwNDMwXHUwNDQwX1x1MDQ0NFx1MDQzNVx1MDQzMlx1MDQ0MFx1MDQzMFx1MDQzYl9cdTA0M2NcdTA0MzBcdTA0NDBcdTA0NDJfXHUwNDMwXHUwNDNmXHUwNDQwXHUwNDM1XHUwNDNiX1x1MDQzY1x1MDQzMFx1MDQzOV9c'@; put 'dTA0MzhcdTA0NGVcdTA0M2RfXHUwNDM4XHUwNDRlXHUwNDNiX1x1MDQzMFx1MDQzMlx1MDQzM1x1MDQ0M1x1MDQ0MVx1MDQ0Ml9cdTA0NDFcdTA0MzVcdTA0M2RcdTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBfXHUwNDNlXHUwNDNhXHUwNDQyXHUwNDRmXHUwNDMxXHUwNDQwX1x1MDQzZFx1MDQz'@; put 'ZVx1MDQ0Zlx1MDQzMVx1MDQ0MF9cdTA0MzRcdTA0MzVcdTA0M2FcdTA0MzBcdTA0MzFcdTA0NDAiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MDQ0Zlx1MDQzZFx1MDQzMl9cdTA0NDRcdTA0MzVcdTA0MzJfXHUwNDNjXHUwNDMwXHUwNDQwX1x1MDQzMFx1MDQzZlx1MDQ0MF9cdTA0M2Nc'@; put 'dTA0MzBcdTA0MzlfXHUwNDM4XHUwNDRlXHUwNDNkX1x1MDQzOFx1MDQ0ZVx1MDQzYl9cdTA0MzBcdTA0MzJcdTA0MzNfXHUwNDQxXHUwNDM1XHUwNDNkX1x1MDQzZVx1MDQzYVx1MDQ0Ml9cdTA0M2RcdTA0M2VcdTA0NGZfXHUwNDM0XHUwNDM1XHUwNDNhIi5zcGxpdCgiXyIpLHdlZWtkYXlz'@; put 'OiJcdTA0MmZcdTA0M2FcdTA0NDhcdTA0MzBcdTA0M2RcdTA0MzFcdTA0MzBfXHUwNDE0XHUwNDQzXHUwNDQ4XHUwNDMwXHUwNDNkXHUwNDMxXHUwNDMwX1x1MDQyMVx1MDQzNVx1MDQ0OFx1MDQzMFx1MDQzZFx1MDQzMVx1MDQzMF9cdTA0MjdcdTA0M2VcdTA0NDBcdTA0NDhcdTA0MzBcdTA0'@; put 'M2RcdTA0MzFcdTA0MzBfXHUwNDFmXHUwNDMwXHUwNDM5XHUwNDQ4XHUwNDMwXHUwNDNkXHUwNDMxXHUwNDMwX1x1MDQxNlx1MDQ0M1x1MDQzY1x1MDQzMF9cdTA0MjhcdTA0MzBcdTA0M2RcdTA0MzFcdTA0MzAiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNDJmXHUwNDNhXHUwNDQ4'@; put 'X1x1MDQxNFx1MDQ0M1x1MDQ0OF9cdTA0MjFcdTA0MzVcdTA0NDhfXHUwNDI3XHUwNDNlXHUwNDQwX1x1MDQxZlx1MDQzMFx1MDQzOV9cdTA0MTZcdTA0NDNcdTA0M2NfXHUwNDI4XHUwNDMwXHUwNDNkIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA0MmZcdTA0M2FfXHUwNDE0XHUwNDQz'@; put 'X1x1MDQyMVx1MDQzNV9cdTA0MjdcdTA0M2VfXHUwNDFmXHUwNDMwX1x1MDQxNlx1MDQ0M19cdTA0MjhcdTA0MzAiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZ'@; put 'WVlZIEhIOm1tIixMTExMOiJEIE1NTU0gWVlZWSwgZGRkZCBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNDExXHUwNDQzXHUwNDMzXHUwNDQzXHUwNDNkIFx1MDQ0MVx1MDQzZVx1MDQzMFx1MDQ0Ml0gTFQgW1x1MDQzNFx1MDQzMF0iLG5leHREYXk6IltcdTA0MmRcdTA0NDBcdTA0'@; put 'NDJcdTA0MzBcdTA0MzNcdTA0MzBdIExUIFtcdTA0MzRcdTA0MzBdIixuZXh0V2VlazoiZGRkZCBbXHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM4IFx1MDQ0MVx1MDQzZVx1MDQzMFx1MDQ0Ml0gTFQgW1x1MDQzNFx1MDQzMF0iLGxhc3REYXk6IltcdTA0MWFcdTA0MzVcdTA0NDdcdTA0MzAgXHUw'@; put 'NDQxXHUwNDNlXHUwNDMwXHUwNDQyXSBMVCBbXHUwNDM0XHUwNDMwXSIsbGFzdFdlZWs6IltcdTA0MjNcdTA0NDJcdTA0MzNcdTA0MzBcdTA0M2RdIGRkZGQgW1x1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzOCBcdTA0NDFcdTA0M2VcdTA0MzBcdTA0NDJdIExUIFtcdTA0MzRcdTA0MzBdIixzYW1l'@; put 'RWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTA0MmZcdTA0M2FcdTA0MzhcdTA0M2QgJXMgXHUwNDM4XHUwNDQ3XHUwNDM4XHUwNDM0XHUwNDMwIixwYXN0OiJcdTA0MTFcdTA0MzhcdTA0NDAgXHUwNDNkXHUwNDM1XHUwNDQ3XHUwNDMwICVzIFx1MDQzZVx1MDQzYlx1MDQzNFx1'@; put 'MDQzOFx1MDQzZCIsczoiXHUwNDQ0XHUwNDQzXHUwNDQwXHUwNDQxXHUwNDMwXHUwNDQyIixzczoiJWQgXHUwNDQ0XHUwNDQzXHUwNDQwXHUwNDQxXHUwNDMwXHUwNDQyIixtOiJcdTA0MzFcdTA0MzhcdTA0NDAgXHUwNDM0XHUwNDMwXHUwNDNhXHUwNDM4XHUwNDNhXHUwNDMwIixtbToiJWQg'@; put 'XHUwNDM0XHUwNDMwXHUwNDNhXHUwNDM4XHUwNDNhXHUwNDMwIixoOiJcdTA0MzFcdTA0MzhcdTA0NDAgXHUwNDQxXHUwNDNlXHUwNDMwXHUwNDQyIixoaDoiJWQgXHUwNDQxXHUwNDNlXHUwNDMwXHUwNDQyIixkOiJcdTA0MzFcdTA0MzhcdTA0NDAgXHUwNDNhXHUwNDQzXHUwNDNkIixkZDoi'@; put 'JWQgXHUwNDNhXHUwNDQzXHUwNDNkIixNOiJcdTA0MzFcdTA0MzhcdTA0NDAgXHUwNDNlXHUwNDM5IixNTToiJWQgXHUwNDNlXHUwNDM5Iix5OiJcdTA0MzFcdTA0MzhcdTA0NDAgXHUwNDM5XHUwNDM4XHUwNDNiIix5eToiJWQgXHUwNDM5XHUwNDM4XHUwNDNiIn0sd2Vlazp7ZG93OjEsZG95'@; put 'Ojd9fSl9KGIoOTc1ODYpKX0sODkzNjY6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO0QuZGVmaW5lTG9jYWxlKCJ2aSIse21vbnRoczoidGhceGUxbmcgMV90aFx4ZTFuZyAyX3RoXHhlMW5nIDNfdGhceGUxbmcgNF90aFx4ZTFuZyA1X3RoXHhlMW5nIDZfdGhc'@; put 'eGUxbmcgN190aFx4ZTFuZyA4X3RoXHhlMW5nIDlfdGhceGUxbmcgMTBfdGhceGUxbmcgMTFfdGhceGUxbmcgMTIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6IlRoZyAwMV9UaGcgMDJfVGhnIDAzX1RoZyAwNF9UaGcgMDVfVGhnIDA2X1RoZyAwN19UaGcgMDhfVGhnIDA5X1RoZyAxMF9UaGcg'@; put 'MTFfVGhnIDEyIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6ImNoXHUxZWU3IG5oXHUxZWFkdF90aFx1MWVlOSBoYWlfdGhcdTFlZTkgYmFfdGhcdTFlZTkgdFx1MDFiMF90aFx1MWVlOSBuXHUwMTAzbV90aFx1MWVlOSBzXHhlMXVfdGhcdTFlZTkgYlx1MWVhM3ki'@; put 'LnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiQ05fVDJfVDNfVDRfVDVfVDZfVDciLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IkNOX1QyX1QzX1Q0X1Q1X1Q2X1Q3Ii5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxtZXJpZGllbVBhcnNlOi9zYXxjaC9pLGlzUE06ZnVuY3Rpb24o'@; put 'cCl7cmV0dXJuL15jaCQvaS50ZXN0KHApfSxtZXJpZGllbTpmdW5jdGlvbihwLE4sdyl7cmV0dXJuIHA8MTI/dz8ic2EiOiJTQSI6dz8iY2giOiJDSCJ9LGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gW25cdTAxMDNt'@; put 'XSBZWVlZIixMTEw6IkQgTU1NTSBbblx1MDEwM21dIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBbblx1MDEwM21dIFlZWVkgSEg6bW0iLGw6IkREL00vWVlZWSIsbGw6IkQgTU1NIFlZWVkiLGxsbDoiRCBNTU0gWVlZWSBISDptbSIsbGxsbDoiZGRkLCBEIE1NTSBZWVlZIEhIOm1t'@; put 'In0sY2FsZW5kYXI6e3NhbWVEYXk6IltIXHhmNG0gbmF5IGxceGZhY10gTFQiLG5leHREYXk6IltOZ1x4ZTB5IG1haSBsXHhmYWNdIExUIixuZXh0V2VlazoiZGRkZCBbdHVcdTFlYTduIHRcdTFlZGJpIGxceGZhY10gTFQiLGxhc3REYXk6IltIXHhmNG0gcXVhIGxceGZhY10gTFQiLGxhc3RX'@; put 'ZWVrOiJkZGRkIFt0dVx1MWVhN24gdHJcdTAxYjBcdTFlZGJjIGxceGZhY10gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIHRcdTFlZGJpIixwYXN0OiIlcyB0clx1MDFiMFx1MWVkYmMiLHM6InZceGUwaSBnaVx4ZTJ5IixzczoiJWQgZ2lceGUyeSIsbToibVx1'@; put 'MWVkOXQgcGhceGZhdCIsbW06IiVkIHBoXHhmYXQiLGg6Im1cdTFlZDl0IGdpXHUxZWRkIixoaDoiJWQgZ2lcdTFlZGQiLGQ6Im1cdTFlZDl0IG5nXHhlMHkiLGRkOiIlZCBuZ1x4ZTB5Iix3OiJtXHUxZWQ5dCB0dVx1MWVhN24iLHd3OiIlZCB0dVx1MWVhN24iLE06Im1cdTFlZDl0IHRoXHhl'@; put 'MW5nIixNTToiJWQgdGhceGUxbmciLHk6Im1cdTFlZDl0IG5cdTAxMDNtIix5eToiJWQgblx1MDEwM20ifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9LyxvcmRpbmFsOmZ1bmN0aW9uKHApe3JldHVybiBwfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oYig5NzU4NikpfSw2OTcwMjpm'@; put 'dW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7RC5kZWZpbmVMb2NhbGUoIngtcHNldWRvIix7bW9udGhzOiJKflx4ZTFceGYxXHhmYVx4ZTF+clx4ZmRfRn5ceGU5YnJceGZhflx4ZTFyXHhmZF9+TVx4ZTFyY35oX1x4YzFwfnJceGVkbF9+TVx4ZTFceGZkX35KXHhm'@; put 'YVx4ZjFceGU5fl9KXHhmYWx+XHhmZF9ceGMxXHhmYX5nXHhmYXN0fl9TXHhlOXB+dFx4ZTltYn5ceGU5cl9ceGQzfmN0XHhmM2J+XHhlOXJfXHhkMX5ceGYzdlx4ZTltfmJceGU5cl9+RFx4ZTljXHhlOX5tYlx4ZTlyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKflx4ZTFceGYxX35GXHhl'@; put 'OWJffk1ceGUxcl9+XHhjMXByX35NXHhlMVx4ZmRffkpceGZhXHhmMV9+Slx4ZmFsX35ceGMxXHhmYWdfflNceGU5cF9+XHhkM2N0X35ceGQxXHhmM3ZffkRceGU5YyIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJTflx4ZmFceGYxZFx4ZTF+XHhmZF9NXHhmM35c'@; put 'eGYxZFx4ZTFceGZkfl9UXHhmYVx4ZTl+c2RceGUxXHhmZH5fV1x4ZTlkflx4ZjFceGU5c2R+XHhlMVx4ZmRfVH5oXHhmYXJzfmRceGUxXHhmZF9+RnJceGVkZH5ceGUxXHhmZF9Tflx4ZTF0XHhmYXJ+ZFx4ZTFceGZkIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IlN+XHhmYVx4ZjFffk1c'@; put 'eGYzXHhmMV9+VFx4ZmFceGU5X35XXHhlOWRfflRoXHhmYV9+RnJceGVkX35TXHhlMXQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlN+XHhmYV9NXHhmM35fVFx4ZmFffldceGU5X1R+aF9Gcn5fU1x4ZTEiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0'@; put 'OntMVDoiSEg6bW0iLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1R+XHhmM2RceGUxflx4ZmQgXHhlMXRdIExUIixuZXh0RGF5OiJbVH5ceGYz'@; put 'bVx4ZjN+cnJceGYzfncgXHhlMXRdIExUIixuZXh0V2VlazoiZGRkZCBbXHhlMXRdIExUIixsYXN0RGF5OiJbXHhkZH5ceGU5c3R+XHhlOXJkXHhlMX5ceGZkIFx4ZTF0XSBMVCIsbGFzdFdlZWs6IltMflx4ZTFzdF0gZGRkZCBbXHhlMXRdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGlt'@; put 'ZTp7ZnV0dXJlOiJceGVkflx4ZjEgJXMiLHBhc3Q6IiVzIFx4ZTF+Z1x4ZjMiLHM6Ilx4ZTEgfmZceGU5dyB+c1x4ZTljXHhmM35ceGYxZHMiLHNzOiIlZCBzflx4ZTljXHhmM1x4ZjF+ZHMiLG06Ilx4ZTEgfm1ceGVkXHhmMX5ceGZhdFx4ZTkiLG1tOiIlZCBtflx4ZWRceGYxXHhmYX50XHhl'@; put 'OXMiLGg6Ilx4ZTF+XHhmMSBoXHhmM35ceGZhciIsaGg6IiVkIGh+XHhmM1x4ZmFycyIsZDoiXHhlMSB+ZFx4ZTFceGZkIixkZDoiJWQgZH5ceGUxXHhmZHMiLE06Ilx4ZTEgfm1ceGYzXHhmMX50aCIsTU06IiVkIG1+XHhmM1x4ZjF0fmhzIix5OiJceGUxIH5ceGZkXHhlOVx4ZTFyIix5eToi'@; put 'JWQgXHhmZH5ceGU5XHhlMXJzIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfSh0aHxzdHxuZHxyZCkvLG9yZGluYWw6ZnVuY3Rpb24ocCl7dmFyIE49cCUxMDtyZXR1cm4gcCsoMT09fn4ocCUxMDAvMTApPyJ0aCI6MT09PU4/InN0IjoyPT09Tj8ibmQiOjM9PT1OPyJyZCI6InRo'@; put 'Iil9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShiKDk3NTg2KSl9LDcyNjU1OmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0IjtELmRlZmluZUxvY2FsZSgieW8iLHttb250aHM6IlNcdTFlYjlcdTAzMDFyXHUxZWI5XHUwMzAxX0VcdTAzMDByZVx1MDMwMGxlXHUwMzAw'@; put 'X1x1MWViOHJcdTFlYjlcdTAzMDBuYVx1MDMwMF9JXHUwMzAwZ2JlXHUwMzAxX0VcdTAzMDBiaWJpX09cdTAzMDBrdVx1MDMwMGR1X0FnXHUxZWI5bW9fT1x1MDMwMGd1XHUwMzAxbl9Pd2V3ZV9cdTFlY2NcdTAzMDB3YVx1MDMwMHJhXHUwMzAwX0JlXHUwMzAxbHVcdTAzMDFfXHUxZWNjXHUw'@; put 'MzAwcFx1MWViOVx1MDMwMFx1MDMwMCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiU1x1MWViOVx1MDMwMXJfRVx1MDMwMHJsX1x1MWViOHJuX0lcdTAzMDBnYl9FXHUwMzAwYmlfT1x1MDMwMGt1XHUwMzAwX0FnXHUxZWI5X09cdTAzMDBndVx1MDMwMV9Pd2VfXHUxZWNjXHUwMzAwd2FcdTAz'@; put 'MDBfQmVcdTAzMDFsX1x1MWVjY1x1MDMwMHBcdTFlYjlcdTAzMDBcdTAzMDAiLnNwbGl0KCJfIiksd2Vla2RheXM6IkFcdTAzMDBpXHUwMzAwa3VcdTAzMDFfQWplXHUwMzAxX0lcdTAzMDBzXHUxZWI5XHUwMzAxZ3VuX1x1MWVjY2pcdTFlY2RcdTAzMDFydVx1MDMwMV9cdTFlY2NqXHUxZWNk'@; put 'XHUwMzAxYlx1MWVjZF9cdTFlYjh0aVx1MDMwMF9BXHUwMzAwYmFcdTAzMDFtXHUxZWI5XHUwMzAxdGEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiQVx1MDMwMGlcdTAzMDBrX0FqZVx1MDMwMV9JXHUwMzAwc1x1MWViOVx1MDMwMV9cdTFlY2Nqcl9cdTFlY2NqYl9cdTFlYjh0aVx1MDMw'@; put 'MF9BXHUwMzAwYmFcdTAzMDEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IkFcdTAzMDBpXHUwMzAwX0FqX0lcdTAzMDBzX1x1MWVjY3JfXHUxZWNjYl9cdTFlYjh0X0FcdTAzMDBiIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiaDptbSBBIixMVFM6Img6bW06c3MgQSIsTDoiREQv'@; put 'TU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIGg6bW0gQSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgaDptbSBBIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltPXHUwMzAwbmlcdTAzMDAgbmldIExUIixuZXh0RGF5OiJbXHUxZWNjXHUwMzAwbGEgbmldIExUIixuZXh0'@; put 'V2VlazoiZGRkZCBbXHUxZWNjc1x1MWViOVx1MDMwMCB0b1x1MDMwMW4nYlx1MWVjZF0gW25pXSBMVCIsbGFzdERheToiW0FcdTAzMDBuYSBuaV0gTFQiLGxhc3RXZWVrOiJkZGRkIFtcdTFlY2NzXHUxZWI5XHUwMzAwIHRvXHUwMzAxbFx1MWVjZFx1MDMwMV0gW25pXSBMVCIsc2FtZUVsc2U6'@; put 'IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToibmlcdTAzMDEgJXMiLHBhc3Q6IiVzIGtcdTFlY2RqYVx1MDMwMSIsczoiaVx1MDMwMHNcdTFlYjlqdVx1MDMwMSBhYXlhXHUwMzAxIGRpZSIsc3M6ImFheWFcdTAzMDEgJWQiLG06ImlcdTAzMDBzXHUxZWI5anVcdTAzMDEga2FuIixtbToiaVx1'@; put 'MDMwMHNcdTFlYjlqdVx1MDMwMSAlZCIsaDoid2FcdTAzMDFrYXRpIGthbiIsaGg6IndhXHUwMzAxa2F0aSAlZCIsZDoiXHUxZWNkalx1MWVjZFx1MDMwMSBrYW4iLGRkOiJcdTFlY2RqXHUxZWNkXHUwMzAxICVkIixNOiJvc3VcdTAzMDAga2FuIixNTToib3N1XHUwMzAwICVkIix5OiJcdTFl'@; put 'Y2RkdVx1MDMwMW4ga2FuIix5eToiXHUxZWNkZHVcdTAzMDFuICVkIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXHUxZWNkalx1MWVjZFx1MDMwMVxzXGR7MSwyfS8sb3JkaW5hbDoiXHUxZWNkalx1MWVjZFx1MDMwMSAlZCIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KGIoOTc1ODYpKX0sNTc1'@; put 'OmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0IjtELmRlZmluZUxvY2FsZSgiemgtY24iLHttb250aHM6Ilx1NGUwMFx1NjcwOF9cdTRlOGNcdTY3MDhfXHU0ZTA5XHU2NzA4X1x1NTZkYlx1NjcwOF9cdTRlOTRcdTY3MDhfXHU1MTZkXHU2NzA4X1x1NGUwM1x1Njcw'@; put 'OF9cdTUxNmJcdTY3MDhfXHU0ZTVkXHU2NzA4X1x1NTM0MVx1NjcwOF9cdTUzNDFcdTRlMDBcdTY3MDhfXHU1MzQxXHU0ZThjXHU2NzA4Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiIxXHU2NzA4XzJcdTY3MDhfM1x1NjcwOF80XHU2NzA4XzVcdTY3MDhfNlx1NjcwOF83XHU2NzA4XzhcdTY3'@; put 'MDhfOVx1NjcwOF8xMFx1NjcwOF8xMVx1NjcwOF8xMlx1NjcwOCIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHU2NjFmXHU2NzFmXHU2NWU1X1x1NjYxZlx1NjcxZlx1NGUwMF9cdTY2MWZcdTY3MWZcdTRlOGNfXHU2NjFmXHU2NzFmXHU0ZTA5X1x1NjYxZlx1NjcxZlx1NTZkYl9cdTY2MWZcdTY3'@; put 'MWZcdTRlOTRfXHU2NjFmXHU2NzFmXHU1MTZkIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1NTQ2OFx1NjVlNV9cdTU0NjhcdTRlMDBfXHU1NDY4XHU0ZThjX1x1NTQ2OFx1NGUwOV9cdTU0NjhcdTU2ZGJfXHU1NDY4XHU0ZTk0X1x1NTQ2OFx1NTE2ZCIuc3BsaXQoIl8iKSx3ZWVrZGF5'@; put 'c01pbjoiXHU2NWU1X1x1NGUwMF9cdTRlOGNfXHU0ZTA5X1x1NTZkYl9cdTRlOTRfXHU1MTZkIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IllZWVkvTU0vREQiLExMOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUiLExMTDoiWVlZWVx1'@; put 'NWU3NE1cdTY3MDhEXHU2NWU1QWhcdTcwYjltbVx1NTIwNiIsTExMTDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1ZGRkZEFoXHU3MGI5bW1cdTUyMDYiLGw6IllZWVkvTS9EIixsbDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IixsbGw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSBISDpt'@; put 'bSIsbGxsbDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1ZGRkZCBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1NTFjY1x1NjY2OHxcdTY1ZTlcdTRlMGF8XHU0ZTBhXHU1MzQ4fFx1NGUyZFx1NTM0OHxcdTRlMGJcdTUzNDh8XHU2NjVhXHU0ZTBhLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24ocCxO'@; put 'KXtyZXR1cm4gMTI9PT1wJiYocD0wKSwiXHU1MWNjXHU2NjY4Ij09PU58fCJcdTY1ZTlcdTRlMGEiPT09Tnx8Ilx1NGUwYVx1NTM0OCI9PT1OP3A6Ilx1NGUwYlx1NTM0OCI9PT1OfHwiXHU2NjVhXHU0ZTBhIj09PU4/cCsxMjpwPj0xMT9wOnArMTJ9LG1lcmlkaWVtOmZ1bmN0aW9uKHAsTix3'@; put 'KXt2YXIgRj0xMDAqcCtOO3JldHVybiBGPDYwMD8iXHU1MWNjXHU2NjY4IjpGPDkwMD8iXHU2NWU5XHU0ZTBhIjpGPDExMzA/Ilx1NGUwYVx1NTM0OCI6RjwxMjMwPyJcdTRlMmRcdTUzNDgiOkY8MTgwMD8iXHU0ZTBiXHU1MzQ4IjoiXHU2NjVhXHU0ZTBhIn0sY2FsZW5kYXI6e3NhbWVEYXk6'@; put 'IltcdTRlY2FcdTU5MjldTFQiLG5leHREYXk6IltcdTY2MGVcdTU5MjldTFQiLG5leHRXZWVrOmZ1bmN0aW9uKHApe3JldHVybiBwLndlZWsoKSE9PXRoaXMud2VlaygpPyJbXHU0ZTBiXWRkZExUIjoiW1x1NjcyY11kZGRMVCJ9LGxhc3REYXk6IltcdTY2MjhcdTU5MjldTFQiLGxhc3RXZWVr'@; put 'OmZ1bmN0aW9uKHApe3JldHVybiB0aGlzLndlZWsoKSE9PXAud2VlaygpPyJbXHU0ZTBhXWRkZExUIjoiW1x1NjcyY11kZGRMVCJ9LHNhbWVFbHNlOiJMIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShcdTY1ZTV8XHU2NzA4fFx1NTQ2OCkvLG9yZGluYWw6ZnVuY3Rpb24ocCxO'@; put 'KXtzd2l0Y2goTil7Y2FzZSJkIjpjYXNlIkQiOmNhc2UiREREIjpyZXR1cm4gcCsiXHU2NWU1IjtjYXNlIk0iOnJldHVybiBwKyJcdTY3MDgiO2Nhc2UidyI6Y2FzZSJXIjpyZXR1cm4gcCsiXHU1NDY4IjtkZWZhdWx0OnJldHVybiBwfX0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzXHU1NDBl'@; put 'IixwYXN0OiIlc1x1NTI0ZCIsczoiXHU1MWUwXHU3OWQyIixzczoiJWQgXHU3OWQyIixtOiIxIFx1NTIwNlx1OTQ5ZiIsbW06IiVkIFx1NTIwNlx1OTQ5ZiIsaDoiMSBcdTVjMGZcdTY1ZjYiLGhoOiIlZCBcdTVjMGZcdTY1ZjYiLGQ6IjEgXHU1OTI5IixkZDoiJWQgXHU1OTI5Iix3OiIxIFx1'@; put 'NTQ2OCIsd3c6IiVkIFx1NTQ2OCIsTToiMSBcdTRlMmFcdTY3MDgiLE1NOiIlZCBcdTRlMmFcdTY3MDgiLHk6IjEgXHU1ZTc0Iix5eToiJWQgXHU1ZTc0In0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KGIoOTc1ODYpKX0sMTgzNTE6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBz'@; put 'dHJpY3QiO0QuZGVmaW5lTG9jYWxlKCJ6aC1oayIse21vbnRoczoiXHU0ZTAwXHU2NzA4X1x1NGU4Y1x1NjcwOF9cdTRlMDlcdTY3MDhfXHU1NmRiXHU2NzA4X1x1NGU5NFx1NjcwOF9cdTUxNmRcdTY3MDhfXHU0ZTAzXHU2NzA4X1x1NTE2Ylx1NjcwOF9cdTRlNWRcdTY3MDhfXHU1MzQxXHU2'@; put 'NzA4X1x1NTM0MVx1NGUwMFx1NjcwOF9cdTUzNDFcdTRlOGNcdTY3MDgiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6IjFcdTY3MDhfMlx1NjcwOF8zXHU2NzA4XzRcdTY3MDhfNVx1NjcwOF82XHU2NzA4XzdcdTY3MDhfOFx1NjcwOF85XHU2NzA4XzEwXHU2NzA4XzExXHU2NzA4XzEyXHU2NzA4'@; put 'Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTY2MWZcdTY3MWZcdTY1ZTVfXHU2NjFmXHU2NzFmXHU0ZTAwX1x1NjYxZlx1NjcxZlx1NGU4Y19cdTY2MWZcdTY3MWZcdTRlMDlfXHU2NjFmXHU2NzFmXHU1NmRiX1x1NjYxZlx1NjcxZlx1NGU5NF9cdTY2MWZcdTY3MWZcdTUxNmQiLnNwbGl0KCJf'@; put 'Iiksd2Vla2RheXNTaG9ydDoiXHU5MDMxXHU2NWU1X1x1OTAzMVx1NGUwMF9cdTkwMzFcdTRlOGNfXHU5MDMxXHU0ZTA5X1x1OTAzMVx1NTZkYl9cdTkwMzFcdTRlOTRfXHU5MDMxXHU1MTZkIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTY1ZTVfXHU0ZTAwX1x1NGU4Y19cdTRlMDlfXHU1'@; put 'NmRiX1x1NGU5NF9cdTUxNmQiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiWVlZWS9NTS9ERCIsTEw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSIsTExMOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUgSEg6bW0iLExMTEw6IllZWVlc'@; put 'dTVlNzRNXHU2NzA4RFx1NjVlNWRkZGQgSEg6bW0iLGw6IllZWVkvTS9EIixsbDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IixsbGw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSBISDptbSIsbGxsbDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1ZGRkZCBISDptbSJ9LG1lcmlkaWVtUGFy'@; put 'c2U6L1x1NTFjY1x1NjY2OHxcdTY1ZTlcdTRlMGF8XHU0ZTBhXHU1MzQ4fFx1NGUyZFx1NTM0OHxcdTRlMGJcdTUzNDh8XHU2NjVhXHU0ZTBhLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24ocCxOKXtyZXR1cm4gMTI9PT1wJiYocD0wKSwiXHU1MWNjXHU2NjY4Ij09PU58fCJcdTY1ZTlcdTRlMGEi'@; put 'PT09Tnx8Ilx1NGUwYVx1NTM0OCI9PT1OP3A6Ilx1NGUyZFx1NTM0OCI9PT1OP3A+PTExP3A6cCsxMjoiXHU0ZTBiXHU1MzQ4Ij09PU58fCJcdTY2NWFcdTRlMGEiPT09Tj9wKzEyOnZvaWQgMH0sbWVyaWRpZW06ZnVuY3Rpb24ocCxOLHcpe3ZhciBGPTEwMCpwK047cmV0dXJuIEY8NjAwPyJc'@; put 'dTUxY2NcdTY2NjgiOkY8OTAwPyJcdTY1ZTlcdTRlMGEiOkY8MTIwMD8iXHU0ZTBhXHU1MzQ4IjoxMjAwPT09Rj8iXHU0ZTJkXHU1MzQ4IjpGPDE4MDA/Ilx1NGUwYlx1NTM0OCI6Ilx1NjY1YVx1NGUwYSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHU0ZWNhXHU1OTI5XUxUIixuZXh0RGF5OiJb'@; put 'XHU2NjBlXHU1OTI5XUxUIixuZXh0V2VlazoiW1x1NGUwYl1kZGRkTFQiLGxhc3REYXk6IltcdTY2MjhcdTU5MjldTFQiLGxhc3RXZWVrOiJbXHU0ZTBhXWRkZGRMVCIsc2FtZUVsc2U6IkwifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KFx1NjVlNXxcdTY3MDh8XHU5MDMxKS8s'@; put 'b3JkaW5hbDpmdW5jdGlvbihwLE4pe3N3aXRjaChOKXtjYXNlImQiOmNhc2UiRCI6Y2FzZSJEREQiOnJldHVybiBwKyJcdTY1ZTUiO2Nhc2UiTSI6cmV0dXJuIHArIlx1NjcwOCI7Y2FzZSJ3IjpjYXNlIlciOnJldHVybiBwKyJcdTkwMzEiO2RlZmF1bHQ6cmV0dXJuIHB9fSxyZWxhdGl2ZVRp'@; put 'bWU6e2Z1dHVyZToiJXNcdTVmOGMiLHBhc3Q6IiVzXHU1MjRkIixzOiJcdTVlN2VcdTc5ZDIiLHNzOiIlZCBcdTc5ZDIiLG06IjEgXHU1MjA2XHU5NDE4IixtbToiJWQgXHU1MjA2XHU5NDE4IixoOiIxIFx1NWMwZlx1NjY0MiIsaGg6IiVkIFx1NWMwZlx1NjY0MiIsZDoiMSBcdTU5MjkiLGRk'@; put 'OiIlZCBcdTU5MjkiLE06IjEgXHU1MDBiXHU2NzA4IixNTToiJWQgXHU1MDBiXHU2NzA4Iix5OiIxIFx1NWU3NCIseXk6IiVkIFx1NWU3NCJ9fSl9KGIoOTc1ODYpKX0sNTE2MjY6ZnVuY3Rpb24oY2UsSixiKXshZnVuY3Rpb24oRCl7InVzZSBzdHJpY3QiO0QuZGVmaW5lTG9jYWxlKCJ6aC1t'@; put 'byIse21vbnRoczoiXHU0ZTAwXHU2NzA4X1x1NGU4Y1x1NjcwOF9cdTRlMDlcdTY3MDhfXHU1NmRiXHU2NzA4X1x1NGU5NFx1NjcwOF9cdTUxNmRcdTY3MDhfXHU0ZTAzXHU2NzA4X1x1NTE2Ylx1NjcwOF9cdTRlNWRcdTY3MDhfXHU1MzQxXHU2NzA4X1x1NTM0MVx1NGUwMFx1NjcwOF9cdTUz'@; put 'NDFcdTRlOGNcdTY3MDgiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6IjFcdTY3MDhfMlx1NjcwOF8zXHU2NzA4XzRcdTY3MDhfNVx1NjcwOF82XHU2NzA4XzdcdTY3MDhfOFx1NjcwOF85XHU2NzA4XzEwXHU2NzA4XzExXHU2NzA4XzEyXHU2NzA4Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTY2'@; put 'MWZcdTY3MWZcdTY1ZTVfXHU2NjFmXHU2NzFmXHU0ZTAwX1x1NjYxZlx1NjcxZlx1NGU4Y19cdTY2MWZcdTY3MWZcdTRlMDlfXHU2NjFmXHU2NzFmXHU1NmRiX1x1NjYxZlx1NjcxZlx1NGU5NF9cdTY2MWZcdTY3MWZcdTUxNmQiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHU5MDMxXHU2'@; put 'NWU1X1x1OTAzMVx1NGUwMF9cdTkwMzFcdTRlOGNfXHU5MDMxXHU0ZTA5X1x1OTAzMVx1NTZkYl9cdTkwMzFcdTRlOTRfXHU5MDMxXHU1MTZkIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTY1ZTVfXHU0ZTAwX1x1NGU4Y19cdTRlMDlfXHU1NmRiX1x1NGU5NF9cdTUxNmQiLnNwbGl0KCJf'@; put 'IiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSIsTExMOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUgSEg6bW0iLExMTEw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNWRkZGQgSEg6'@; put 'bW0iLGw6IkQvTS9ZWVlZIixsbDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IixsbGw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSBISDptbSIsbGxsbDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1ZGRkZCBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1NTFjY1x1NjY2OHxcdTY1ZTlcdTRl'@; put 'MGF8XHU0ZTBhXHU1MzQ4fFx1NGUyZFx1NTM0OHxcdTRlMGJcdTUzNDh8XHU2NjVhXHU0ZTBhLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24ocCxOKXtyZXR1cm4gMTI9PT1wJiYocD0wKSwiXHU1MWNjXHU2NjY4Ij09PU58fCJcdTY1ZTlcdTRlMGEiPT09Tnx8Ilx1NGUwYVx1NTM0OCI9PT1OP3A6'@; put 'Ilx1NGUyZFx1NTM0OCI9PT1OP3A+PTExP3A6cCsxMjoiXHU0ZTBiXHU1MzQ4Ij09PU58fCJcdTY2NWFcdTRlMGEiPT09Tj9wKzEyOnZvaWQgMH0sbWVyaWRpZW06ZnVuY3Rpb24ocCxOLHcpe3ZhciBGPTEwMCpwK047cmV0dXJuIEY8NjAwPyJcdTUxY2NcdTY2NjgiOkY8OTAwPyJcdTY1ZTlc'@; put 'dTRlMGEiOkY8MTEzMD8iXHU0ZTBhXHU1MzQ4IjpGPDEyMzA/Ilx1NGUyZFx1NTM0OCI6RjwxODAwPyJcdTRlMGJcdTUzNDgiOiJcdTY2NWFcdTRlMGEifSxjYWxlbmRhcjp7c2FtZURheToiW1x1NGVjYVx1NTkyOV0gTFQiLG5leHREYXk6IltcdTY2MGVcdTU5MjldIExUIixuZXh0V2Vlazoi'@; put 'W1x1NGUwYl1kZGRkIExUIixsYXN0RGF5OiJbXHU2NjI4XHU1OTI5XSBMVCIsbGFzdFdlZWs6IltcdTRlMGFdZGRkZCBMVCIsc2FtZUVsc2U6IkwifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KFx1NjVlNXxcdTY3MDh8XHU5MDMxKS8sb3JkaW5hbDpmdW5jdGlvbihwLE4pe3N3'@; put 'aXRjaChOKXtjYXNlImQiOmNhc2UiRCI6Y2FzZSJEREQiOnJldHVybiBwKyJcdTY1ZTUiO2Nhc2UiTSI6cmV0dXJuIHArIlx1NjcwOCI7Y2FzZSJ3IjpjYXNlIlciOnJldHVybiBwKyJcdTkwMzEiO2RlZmF1bHQ6cmV0dXJuIHB9fSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXNcdTUxNjciLHBh'@; put 'c3Q6IiVzXHU1MjRkIixzOiJcdTVlN2VcdTc5ZDIiLHNzOiIlZCBcdTc5ZDIiLG06IjEgXHU1MjA2XHU5NDE4IixtbToiJWQgXHU1MjA2XHU5NDE4IixoOiIxIFx1NWMwZlx1NjY0MiIsaGg6IiVkIFx1NWMwZlx1NjY0MiIsZDoiMSBcdTU5MjkiLGRkOiIlZCBcdTU5MjkiLE06IjEgXHU1MDBi'@; put 'XHU2NzA4IixNTToiJWQgXHU1MDBiXHU2NzA4Iix5OiIxIFx1NWU3NCIseXk6IiVkIFx1NWU3NCJ9fSl9KGIoOTc1ODYpKX0sODg4NzpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7RC5kZWZpbmVMb2NhbGUoInpoLXR3Iix7bW9udGhzOiJcdTRlMDBcdTY3MDhf'@; put 'XHU0ZThjXHU2NzA4X1x1NGUwOVx1NjcwOF9cdTU2ZGJcdTY3MDhfXHU0ZTk0XHU2NzA4X1x1NTE2ZFx1NjcwOF9cdTRlMDNcdTY3MDhfXHU1MTZiXHU2NzA4X1x1NGU1ZFx1NjcwOF9cdTUzNDFcdTY3MDhfXHU1MzQxXHU0ZTAwXHU2NzA4X1x1NTM0MVx1NGU4Y1x1NjcwOCIuc3BsaXQoIl8i'@; put 'KSxtb250aHNTaG9ydDoiMVx1NjcwOF8yXHU2NzA4XzNcdTY3MDhfNFx1NjcwOF81XHU2NzA4XzZcdTY3MDhfN1x1NjcwOF84XHU2NzA4XzlcdTY3MDhfMTBcdTY3MDhfMTFcdTY3MDhfMTJcdTY3MDgiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1NjYxZlx1NjcxZlx1NjVlNV9cdTY2MWZcdTY3'@; put 'MWZcdTRlMDBfXHU2NjFmXHU2NzFmXHU0ZThjX1x1NjYxZlx1NjcxZlx1NGUwOV9cdTY2MWZcdTY3MWZcdTU2ZGJfXHU2NjFmXHU2NzFmXHU0ZTk0X1x1NjYxZlx1NjcxZlx1NTE2ZCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTkwMzFcdTY1ZTVfXHU5MDMxXHU0ZTAwX1x1OTAzMVx1'@; put 'NGU4Y19cdTkwMzFcdTRlMDlfXHU5MDMxXHU1NmRiX1x1OTAzMVx1NGU5NF9cdTkwMzFcdTUxNmQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1NjVlNV9cdTRlMDBfXHU0ZThjX1x1NGUwOV9cdTU2ZGJfXHU0ZTk0X1x1NTE2ZCIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhI'@; put 'Om1tIixMVFM6IkhIOm1tOnNzIixMOiJZWVlZL01NL0REIixMTDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IixMTEw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSBISDptbSIsTExMTDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1ZGRkZCBISDptbSIsbDoiWVlZWS9NL0QiLGxsOiJZWVlZ'@; put 'XHU1ZTc0TVx1NjcwOERcdTY1ZTUiLGxsbDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IEhIOm1tIixsbGxsOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTVkZGRkIEhIOm1tIn0sbWVyaWRpZW1QYXJzZTovXHU1MWNjXHU2NjY4fFx1NjVlOVx1NGUwYXxcdTRlMGFcdTUzNDh8XHU0ZTJkXHU1'@; put 'MzQ4fFx1NGUwYlx1NTM0OHxcdTY2NWFcdTRlMGEvLG1lcmlkaWVtSG91cjpmdW5jdGlvbihwLE4pe3JldHVybiAxMj09PXAmJihwPTApLCJcdTUxY2NcdTY2NjgiPT09Tnx8Ilx1NjVlOVx1NGUwYSI9PT1OfHwiXHU0ZTBhXHU1MzQ4Ij09PU4/cDoiXHU0ZTJkXHU1MzQ4Ij09PU4/cD49MTE/'@; put 'cDpwKzEyOiJcdTRlMGJcdTUzNDgiPT09Tnx8Ilx1NjY1YVx1NGUwYSI9PT1OP3ArMTI6dm9pZCAwfSxtZXJpZGllbTpmdW5jdGlvbihwLE4sdyl7dmFyIEY9MTAwKnArTjtyZXR1cm4gRjw2MDA/Ilx1NTFjY1x1NjY2OCI6Rjw5MDA/Ilx1NjVlOVx1NGUwYSI6RjwxMTMwPyJcdTRlMGFcdTUz'@; put 'NDgiOkY8MTIzMD8iXHU0ZTJkXHU1MzQ4IjpGPDE4MDA/Ilx1NGUwYlx1NTM0OCI6Ilx1NjY1YVx1NGUwYSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHU0ZWNhXHU1OTI5XSBMVCIsbmV4dERheToiW1x1NjYwZVx1NTkyOV0gTFQiLG5leHRXZWVrOiJbXHU0ZTBiXWRkZGQgTFQiLGxhc3REYXk6'@; put 'IltcdTY2MjhcdTU5MjldIExUIixsYXN0V2VlazoiW1x1NGUwYV1kZGRkIExUIixzYW1lRWxzZToiTCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oXHU2NWU1fFx1NjcwOHxcdTkwMzEpLyxvcmRpbmFsOmZ1bmN0aW9uKHAsTil7c3dpdGNoKE4pe2Nhc2UiZCI6Y2FzZSJEIjpj'@; put 'YXNlIkRERCI6cmV0dXJuIHArIlx1NjVlNSI7Y2FzZSJNIjpyZXR1cm4gcCsiXHU2NzA4IjtjYXNlInciOmNhc2UiVyI6cmV0dXJuIHArIlx1OTAzMSI7ZGVmYXVsdDpyZXR1cm4gcH19LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlc1x1NWY4YyIscGFzdDoiJXNcdTUyNGQiLHM6Ilx1NWU3ZVx1'@; put 'NzlkMiIsc3M6IiVkIFx1NzlkMiIsbToiMSBcdTUyMDZcdTk0MTgiLG1tOiIlZCBcdTUyMDZcdTk0MTgiLGg6IjEgXHU1YzBmXHU2NjQyIixoaDoiJWQgXHU1YzBmXHU2NjQyIixkOiIxIFx1NTkyOSIsZGQ6IiVkIFx1NTkyOSIsTToiMSBcdTUwMGJcdTY3MDgiLE1NOiIlZCBcdTUwMGJcdTY3'@; put 'MDgiLHk6IjEgXHU1ZTc0Iix5eToiJWQgXHU1ZTc0In19KX0oYig5NzU4NikpfSw5NzU4NjpmdW5jdGlvbihjZSxKLGIpeyhjZT1iLm5tZChjZSkpLmV4cG9ydHM9ZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIEQsWDtmdW5jdGlvbiBfKCl7cmV0dXJuIEQuYXBwbHkobnVsbCxhcmd1bWVu'@; put 'dHMpfWZ1bmN0aW9uIE4oQ2Upe3JldHVybiBDZSBpbnN0YW5jZW9mIEFycmF5fHwiW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKENlKX1mdW5jdGlvbiB3KENlKXtyZXR1cm4gbnVsbCE9Q2UmJiJbb2JqZWN0IE9iamVjdF0iPT09T2JqZWN0LnByb3Rv'@; put 'dHlwZS50b1N0cmluZy5jYWxsKENlKX1mdW5jdGlvbiBGKENlLFhlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKENlLFhlKX1mdW5jdGlvbiBIKENlKXtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcylyZXR1cm4gMD09PU9iamVjdC5nZXRPd25Qcm9w'@; put 'ZXJ0eU5hbWVzKENlKS5sZW5ndGg7dmFyIFhlO2ZvcihYZSBpbiBDZSlpZihGKENlLFhlKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBSKENlKXtyZXR1cm4gdm9pZCAwPT09Q2V9ZnVuY3Rpb24gaihDZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBDZXx8IltvYmplY3QgTnVtYmVyXSI9'@; put 'PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoQ2UpfWZ1bmN0aW9uIFAoQ2Upe3JldHVybiBDZSBpbnN0YW5jZW9mIERhdGV8fCJbb2JqZWN0IERhdGVdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChDZSl9ZnVuY3Rpb24gTChDZSxYZSl7dmFyIFJ0LG10PVtdLHVu'@; put 'PUNlLmxlbmd0aDtmb3IoUnQ9MDtSdDx1bjsrK1J0KW10LnB1c2goWGUoQ2VbUnRdLFJ0KSk7cmV0dXJuIG10fWZ1bmN0aW9uIFkoQ2UsWGUpe2Zvcih2YXIgbXQgaW4gWGUpRihYZSxtdCkmJihDZVttdF09WGVbbXRdKTtyZXR1cm4gRihYZSwidG9TdHJpbmciKSYmKENlLnRvU3RyaW5nPVhl'@; put 'LnRvU3RyaW5nKSxGKFhlLCJ2YWx1ZU9mIikmJihDZS52YWx1ZU9mPVhlLnZhbHVlT2YpLENlfWZ1bmN0aW9uIEIoQ2UsWGUsbXQsUnQpe3JldHVybiBhdihDZSxYZSxtdCxSdCwhMCkudXRjKCl9ZnVuY3Rpb24gWihDZSl7cmV0dXJuIG51bGw9PUNlLl9wZiYmKENlLl9wZj17ZW1wdHk6ITEs'@; put 'dW51c2VkVG9rZW5zOltdLHVudXNlZElucHV0OltdLG92ZXJmbG93Oi0yLGNoYXJzTGVmdE92ZXI6MCxudWxsSW5wdXQ6ITEsaW52YWxpZEVyYTpudWxsLGludmFsaWRNb250aDpudWxsLGludmFsaWRGb3JtYXQ6ITEsdXNlckludmFsaWRhdGVkOiExLGlzbzohMSxwYXJzZWREYXRlUGFydHM6'@; put 'W10sZXJhOm51bGwsbWVyaWRpZW06bnVsbCxyZmMyODIyOiExLHdlZWtkYXlNaXNtYXRjaDohMX0pLENlLl9wZn1mdW5jdGlvbiBRKENlKXt2YXIgWGU9bnVsbCxtdD0hMSxSdD1DZS5fZCYmIWlzTmFOKENlLl9kLmdldFRpbWUoKSk7cmV0dXJuIFJ0JiYoWGU9WihDZSksbXQ9WC5jYWxsKFhl'@; put 'LnBhcnNlZERhdGVQYXJ0cyxmdW5jdGlvbih1bil7cmV0dXJuIG51bGwhPXVufSksUnQ9WGUub3ZlcmZsb3c8MCYmIVhlLmVtcHR5JiYhWGUuaW52YWxpZEVyYSYmIVhlLmludmFsaWRNb250aCYmIVhlLmludmFsaWRXZWVrZGF5JiYhWGUud2Vla2RheU1pc21hdGNoJiYhWGUubnVsbElucHV0'@; put 'JiYhWGUuaW52YWxpZEZvcm1hdCYmIVhlLnVzZXJJbnZhbGlkYXRlZCYmKCFYZS5tZXJpZGllbXx8WGUubWVyaWRpZW0mJm10KSxDZS5fc3RyaWN0JiYoUnQ9UnQmJjA9PT1YZS5jaGFyc0xlZnRPdmVyJiYwPT09WGUudW51c2VkVG9rZW5zLmxlbmd0aCYmdm9pZCAwPT09WGUuYmlnSG91cikp'@; put 'LG51bGwhPU9iamVjdC5pc0Zyb3plbiYmT2JqZWN0LmlzRnJvemVuKENlKT9SdDooQ2UuX2lzVmFsaWQ9UnQsQ2UuX2lzVmFsaWQpfWZ1bmN0aW9uIHEoQ2Upe3ZhciBYZT1CKE5hTik7cmV0dXJuIG51bGwhPUNlP1koWihYZSksQ2UpOlooWGUpLnVzZXJJbnZhbGlkYXRlZD0hMCxYZX1YPUFy'@; put 'cmF5LnByb3RvdHlwZS5zb21lP0FycmF5LnByb3RvdHlwZS5zb21lOmZ1bmN0aW9uKENlKXt2YXIgUnQsWGU9T2JqZWN0KHRoaXMpLG10PVhlLmxlbmd0aD4+PjA7Zm9yKFJ0PTA7UnQ8bXQ7UnQrKylpZihSdCBpbiBYZSYmQ2UuY2FsbCh0aGlzLFhlW1J0XSxSdCxYZSkpcmV0dXJuITA7cmV0'@; put 'dXJuITF9O3ZhciB0ZT1fLm1vbWVudFByb3BlcnRpZXM9W10saWU9ITE7ZnVuY3Rpb24gc2UoQ2UsWGUpe3ZhciBtdCxSdCx1bixRbj10ZS5sZW5ndGg7aWYoUihYZS5faXNBTW9tZW50T2JqZWN0KXx8KENlLl9pc0FNb21lbnRPYmplY3Q9WGUuX2lzQU1vbWVudE9iamVjdCksUihYZS5faSl8'@; put 'fChDZS5faT1YZS5faSksUihYZS5fZil8fChDZS5fZj1YZS5fZiksUihYZS5fbCl8fChDZS5fbD1YZS5fbCksUihYZS5fc3RyaWN0KXx8KENlLl9zdHJpY3Q9WGUuX3N0cmljdCksUihYZS5fdHptKXx8KENlLl90em09WGUuX3R6bSksUihYZS5faXNVVEMpfHwoQ2UuX2lzVVRDPVhlLl9pc1VU'@; put 'QyksUihYZS5fb2Zmc2V0KXx8KENlLl9vZmZzZXQ9WGUuX29mZnNldCksUihYZS5fcGYpfHwoQ2UuX3BmPVooWGUpKSxSKFhlLl9sb2NhbGUpfHwoQ2UuX2xvY2FsZT1YZS5fbG9jYWxlKSxRbj4wKWZvcihtdD0wO210PFFuO210KyspUih1bj1YZVtSdD10ZVttdF1dKXx8KENlW1J0XT11bik7'@; put 'cmV0dXJuIENlfWZ1bmN0aW9uIGdlKENlKXtzZSh0aGlzLENlKSx0aGlzLl9kPW5ldyBEYXRlKG51bGwhPUNlLl9kP0NlLl9kLmdldFRpbWUoKTpOYU4pLHRoaXMuaXNWYWxpZCgpfHwodGhpcy5fZD1uZXcgRGF0ZShOYU4pKSwhMT09PWllJiYoaWU9ITAsXy51cGRhdGVPZmZzZXQodGhpcyks'@; put 'aWU9ITEpfWZ1bmN0aW9uIF9lKENlKXtyZXR1cm4gQ2UgaW5zdGFuY2VvZiBnZXx8bnVsbCE9Q2UmJm51bGwhPUNlLl9pc0FNb21lbnRPYmplY3R9ZnVuY3Rpb24gVGUoQ2UpeyExPT09Xy5zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZ3MmJnR5cGVvZiBjb25zb2xlPCJ1IiYmY29uc29sZS53'@; put 'YXJuJiZjb25zb2xlLndhcm4oIkRlcHJlY2F0aW9uIHdhcm5pbmc6ICIrQ2UpfWZ1bmN0aW9uIFNlKENlLFhlKXt2YXIgbXQ9ITA7cmV0dXJuIFkoZnVuY3Rpb24oKXtpZihudWxsIT1fLmRlcHJlY2F0aW9uSGFuZGxlciYmXy5kZXByZWNhdGlvbkhhbmRsZXIobnVsbCxDZSksbXQpe3ZhciB1'@; put 'bixRbixyaSxSdD1bXSxSYT1hcmd1bWVudHMubGVuZ3RoO2ZvcihRbj0wO1FuPFJhO1FuKyspe2lmKHVuPSIiLCJvYmplY3QiPT10eXBlb2YgYXJndW1lbnRzW1FuXSl7Zm9yKHJpIGluIHVuKz0iXG5bIitRbisiXSAiLGFyZ3VtZW50c1swXSlGKGFyZ3VtZW50c1swXSxyaSkmJih1bis9cmkr'@; put 'IjogIithcmd1bWVudHNbMF1bcmldKyIsICIpO3VuPXVuLnNsaWNlKDAsLTIpfWVsc2UgdW49YXJndW1lbnRzW1FuXTtSdC5wdXNoKHVuKX1UZShDZSsiXG5Bcmd1bWVudHM6ICIrQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoUnQpLmpvaW4oIiIpKyJcbiIrKG5ldyBFcnJvcikuc3RhY2sp'@; put 'LG10PSExfXJldHVybiBYZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LFhlKX12YXIgVCx6ZT17fTtmdW5jdGlvbiB6KENlLFhlKXtudWxsIT1fLmRlcHJlY2F0aW9uSGFuZGxlciYmXy5kZXByZWNhdGlvbkhhbmRsZXIoQ2UsWGUpLHplW0NlXXx8KFRlKFhlKSx6ZVtDZV09ITApfWZ1bmN0aW9u'@; put 'IGcoQ2Upe3JldHVybiB0eXBlb2YgRnVuY3Rpb248InUiJiZDZSBpbnN0YW5jZW9mIEZ1bmN0aW9ufHwiW29iamVjdCBGdW5jdGlvbl0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKENlKX1mdW5jdGlvbiB4KENlLFhlKXt2YXIgUnQsbXQ9WSh7fSxDZSk7Zm9yKFJ0IGluIFhl'@; put 'KUYoWGUsUnQpJiYodyhDZVtSdF0pJiZ3KFhlW1J0XSk/KG10W1J0XT17fSxZKG10W1J0XSxDZVtSdF0pLFkobXRbUnRdLFhlW1J0XSkpOm51bGwhPVhlW1J0XT9tdFtSdF09WGVbUnRdOmRlbGV0ZSBtdFtSdF0pO2ZvcihSdCBpbiBDZSlGKENlLFJ0KSYmIUYoWGUsUnQpJiZ3KENlW1J0XSkm'@; put 'JihtdFtSdF09WSh7fSxtdFtSdF0pKTtyZXR1cm4gbXR9ZnVuY3Rpb24gQyhDZSl7bnVsbCE9Q2UmJnRoaXMuc2V0KENlKX1fLnN1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5ncz0hMSxfLmRlcHJlY2F0aW9uSGFuZGxlcj1udWxsLFQ9T2JqZWN0LmtleXM/T2JqZWN0LmtleXM6ZnVuY3Rpb24o'@; put 'Q2Upe3ZhciBYZSxtdD1bXTtmb3IoWGUgaW4gQ2UpRihDZSxYZSkmJm10LnB1c2goWGUpO3JldHVybiBtdH07ZnVuY3Rpb24gRShDZSxYZSxtdCl7dmFyIFJ0PSIiK01hdGguYWJzKENlKTtyZXR1cm4oQ2U+PTA/bXQ/IisiOiIiOiItIikrTWF0aC5wb3coMTAsTWF0aC5tYXgoMCxYZS1SdC5s'@; put 'ZW5ndGgpKS50b1N0cmluZygpLnN1YnN0cigxKStSdH12YXIgbT0vKFxbW15cW10qXF0pfChcXCk/KFtIaF1tbShzcyk/fE1vfE1NP00/TT98RG98REREb3xERD9EP0Q/fGRkZD9kP3xkbz98d1tvfHddP3xXW298V10/fFFvP3xOezEsNX18WVlZWVlZfFlZWVlZfFlZWVl8WVl8eXsyLDR9fHlv'@; put 'P3xnZyhnZ2c/KT98R0coR0dHPyk/fGV8RXxhfEF8aGg/fEhIP3xraz98bW0/fHNzP3xTezEsOX18eHxYfHp6P3xaWj98LikvZyxBPS8oXFtbXlxbXSpcXSl8KFxcKT8oTFRTfExUfExMP0w/TD98bHsxLDR9KS9nLGFlPXt9LG5lPXt9O2Z1bmN0aW9uIGxlKENlLFhlLG10LFJ0KXt2YXIgdW49'@; put 'UnQ7InN0cmluZyI9PXR5cGVvZiBSdCYmKHVuPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbUnRdKCl9KSxDZSYmKG5lW0NlXT11biksWGUmJihuZVtYZVswXV09ZnVuY3Rpb24oKXtyZXR1cm4gRSh1bi5hcHBseSh0aGlzLGFyZ3VtZW50cyksWGVbMV0sWGVbMl0pfSksbXQmJihuZVttdF09ZnVu'@; put 'Y3Rpb24oKXtyZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkub3JkaW5hbCh1bi5hcHBseSh0aGlzLGFyZ3VtZW50cyksQ2UpfSl9ZnVuY3Rpb24gd2UoQ2Upe3JldHVybiBDZS5tYXRjaCgvXFtbXHNcU10vKT9DZS5yZXBsYWNlKC9eXFt8XF0kL2csIiIpOkNlLnJlcGxhY2UoL1xcL2csIiIpfWZ1'@; put 'bmN0aW9uIFFlKENlLFhlKXtyZXR1cm4gQ2UuaXNWYWxpZCgpPyhYZT1hdChYZSxDZS5sb2NhbGVEYXRhKCkpLGFlW1hlXT1hZVtYZV18fGZ1bmN0aW9uIFplKENlKXt2YXIgbXQsUnQsWGU9Q2UubWF0Y2gobSk7Zm9yKG10PTAsUnQ9WGUubGVuZ3RoO210PFJ0O210KyspWGVbbXRdPW5lW1hl'@; put 'W210XV0/bmVbWGVbbXRdXTp3ZShYZVttdF0pO3JldHVybiBmdW5jdGlvbih1bil7dmFyIHJpLFFuPSIiO2ZvcihyaT0wO3JpPFJ0O3JpKyspUW4rPWcoWGVbcmldKT9YZVtyaV0uY2FsbCh1bixDZSk6WGVbcmldO3JldHVybiBRbn19KFhlKSxhZVtYZV0oQ2UpKTpDZS5sb2NhbGVEYXRhKCku'@; put 'aW52YWxpZERhdGUoKX1mdW5jdGlvbiBhdChDZSxYZSl7dmFyIG10PTU7ZnVuY3Rpb24gUnQodW4pe3JldHVybiBYZS5sb25nRGF0ZUZvcm1hdCh1bil8fHVufWZvcihBLmxhc3RJbmRleD0wO210Pj0wJiZBLnRlc3QoQ2UpOylDZT1DZS5yZXBsYWNlKEEsUnQpLEEubGFzdEluZGV4PTAsbXQt'@; put 'PTE7cmV0dXJuIENlfXZhciBrZT17RDoiZGF0ZSIsZGF0ZXM6ImRhdGUiLGRhdGU6ImRhdGUiLGQ6ImRheSIsZGF5czoiZGF5IixkYXk6ImRheSIsZToid2Vla2RheSIsd2Vla2RheXM6IndlZWtkYXkiLHdlZWtkYXk6IndlZWtkYXkiLEU6Imlzb1dlZWtkYXkiLGlzb3dlZWtkYXlzOiJpc29X'@; put 'ZWVrZGF5Iixpc293ZWVrZGF5OiJpc29XZWVrZGF5IixEREQ6ImRheU9mWWVhciIsZGF5b2Z5ZWFyczoiZGF5T2ZZZWFyIixkYXlvZnllYXI6ImRheU9mWWVhciIsaDoiaG91ciIsaG91cnM6ImhvdXIiLGhvdXI6ImhvdXIiLG1zOiJtaWxsaXNlY29uZCIsbWlsbGlzZWNvbmRzOiJtaWxsaXNl'@; put 'Y29uZCIsbWlsbGlzZWNvbmQ6Im1pbGxpc2Vjb25kIixtOiJtaW51dGUiLG1pbnV0ZXM6Im1pbnV0ZSIsbWludXRlOiJtaW51dGUiLE06Im1vbnRoIixtb250aHM6Im1vbnRoIixtb250aDoibW9udGgiLFE6InF1YXJ0ZXIiLHF1YXJ0ZXJzOiJxdWFydGVyIixxdWFydGVyOiJxdWFydGVyIixz'@; put 'OiJzZWNvbmQiLHNlY29uZHM6InNlY29uZCIsc2Vjb25kOiJzZWNvbmQiLGdnOiJ3ZWVrWWVhciIsd2Vla3llYXJzOiJ3ZWVrWWVhciIsd2Vla3llYXI6IndlZWtZZWFyIixHRzoiaXNvV2Vla1llYXIiLGlzb3dlZWt5ZWFyczoiaXNvV2Vla1llYXIiLGlzb3dlZWt5ZWFyOiJpc29XZWVrWWVh'@; put 'ciIsdzoid2VlayIsd2Vla3M6IndlZWsiLHdlZWs6IndlZWsiLFc6Imlzb1dlZWsiLGlzb3dlZWtzOiJpc29XZWVrIixpc293ZWVrOiJpc29XZWVrIix5OiJ5ZWFyIix5ZWFyczoieWVhciIseWVhcjoieWVhciJ9O2Z1bmN0aW9uIF90KENlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIENlP2tl'@; put 'W0NlXXx8a2VbQ2UudG9Mb3dlckNhc2UoKV06dm9pZCAwfWZ1bmN0aW9uIG50KENlKXt2YXIgbXQsUnQsWGU9e307Zm9yKFJ0IGluIENlKUYoQ2UsUnQpJiYobXQ9X3QoUnQpKSYmKFhlW210XT1DZVtSdF0pO3JldHVybiBYZX12YXIgSmU9e2RhdGU6OSxkYXk6MTEsd2Vla2RheToxMSxpc29X'@; put 'ZWVrZGF5OjExLGRheU9mWWVhcjo0LGhvdXI6MTMsbWlsbGlzZWNvbmQ6MTYsbWludXRlOjE0LG1vbnRoOjgscXVhcnRlcjo3LHNlY29uZDoxNSx3ZWVrWWVhcjoxLGlzb1dlZWtZZWFyOjEsd2Vlazo1LGlzb1dlZWs6NSx5ZWFyOjF9O3ZhciBrdCx5dD0vXGQvLE10PS9cZFxkLyxJdD0vXGR7'@; put 'M30vLHJ0PS9cZHs0fS8sS2U9L1srLV0/XGR7Nn0vLHR0PS9cZFxkPy8sTmU9L1xkXGRcZFxkPy8sdXQ9L1xkXGRcZFxkXGRcZD8vLEp0PS9cZHsxLDN9LyxMdD0vXGR7MSw0fS8sUHQ9L1srLV0/XGR7MSw2fS8sb2k9L1xkKy8sZW49L1srLV0/XGQrLyxzbj0vWnxbKy1dXGRcZDo/XGRcZC9n'@; put 'aSxJaT0vWnxbKy1dXGRcZCg/Ojo/XGRcZCk/L2dpLGZ0PS9bMC05XXswLDI1Nn1bJ2Etelx1MDBBMC1cdTA1RkZcdTA3MDAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGMDdcdUZGMTAtXHVGRkVGXXsxLDI1Nn18W1x1MDYwMC1cdTA2RkZcL117MSwyNTZ9KFxzKj9bXHUwNjAwLVx1'@; put 'MDZGRl17MSwyNTZ9KXsxLDJ9L2ksRnI9L15bMS05XVxkPy8sWnQ9L14oWzEtOV1cZHxcZCkvO2Z1bmN0aW9uIExuKENlLFhlLG10KXtrdFtDZV09ZyhYZSk/WGU6ZnVuY3Rpb24oUnQsdW4pe3JldHVybiBSdCYmbXQ/bXQ6WGV9fWZ1bmN0aW9uIG90KENlLFhlKXtyZXR1cm4gRihrdCxDZSk/'@; put 'a3RbQ2VdKFhlLl9zdHJpY3QsWGUuX2xvY2FsZSk6bmV3IFJlZ0V4cChmdW5jdGlvbiB6dChDZSl7cmV0dXJuIG5pKENlLnJlcGxhY2UoIlxcIiwiIikucmVwbGFjZSgvXFwoXFspfFxcKFxdKXxcWyhbXlxdXFtdKilcXXxcXCguKS9nLGZ1bmN0aW9uKFhlLG10LFJ0LHVuLFFuKXtyZXR1cm4g'@; put 'bXR8fFJ0fHx1bnx8UW59KSl9KENlKSl9ZnVuY3Rpb24gbmkoQ2Upe3JldHVybiBDZS5yZXBsYWNlKC9bLVwvXFxeJCorPy4oKXxbXF17fV0vZywiXFwkJiIpfWZ1bmN0aW9uIFdlKENlKXtyZXR1cm4gQ2U8MD9NYXRoLmNlaWwoQ2UpfHwwOk1hdGguZmxvb3IoQ2UpfWZ1bmN0aW9uIEF0KENl'@; put 'KXt2YXIgWGU9K0NlLG10PTA7cmV0dXJuIDAhPT1YZSYmaXNGaW5pdGUoWGUpJiYobXQ9V2UoWGUpKSxtdH1rdD17fTt2YXIgaXI9e307ZnVuY3Rpb24gaHQoQ2UsWGUpe3ZhciBtdCx1bixSdD1YZTtmb3IoInN0cmluZyI9PXR5cGVvZiBDZSYmKENlPVtDZV0pLGooWGUpJiYoUnQ9ZnVuY3Rp'@; put 'b24oUW4scmkpe3JpW1hlXT1BdChRbil9KSx1bj1DZS5sZW5ndGgsbXQ9MDttdDx1bjttdCsrKWlyW0NlW210XV09UnR9ZnVuY3Rpb24gRXQoQ2UsWGUpe2h0KENlLGZ1bmN0aW9uKG10LFJ0LHVuLFFuKXt1bi5fdz11bi5fd3x8e30sWGUobXQsdW4uX3csdW4sUW4pfSl9ZnVuY3Rpb24gem4o'@; put 'Q2UsWGUsbXQpe251bGwhPVhlJiZGKGlyLENlKSYmaXJbQ2VdKFhlLG10Ll9hLG10LENlKX1mdW5jdGlvbiBhbihDZSl7cmV0dXJuIENlJTQ9PTAmJkNlJTEwMCE9MHx8Q2UlNDAwPT0wfXZhciBqdD0wLGRpPTEsY249Mixmbj0zLERpPTQsUXQ9NSx0bj02LGNhPTcseGk9ODtmdW5jdGlvbiB5'@; put 'cihDZSl7cmV0dXJuIGFuKENlKT8zNjY6MzY1fWxlKCJZIiwwLDAsZnVuY3Rpb24oKXt2YXIgQ2U9dGhpcy55ZWFyKCk7cmV0dXJuIENlPD05OTk5P0UoQ2UsNCk6IisiK0NlfSksbGUoMCxbIllZIiwyXSwwLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueWVhcigpJTEwMH0pLGxlKDAsWyJZWVlZ'@; put 'Iiw0XSwwLCJ5ZWFyIiksbGUoMCxbIllZWVlZIiw1XSwwLCJ5ZWFyIiksbGUoMCxbIllZWVlZWSIsNiwhMF0sMCwieWVhciIpLExuKCJZIixlbiksTG4oIllZIix0dCxNdCksTG4oIllZWVkiLEx0LHJ0KSxMbigiWVlZWVkiLFB0LEtlKSxMbigiWVlZWVlZIixQdCxLZSksaHQoWyJZWVlZWSIs'@; put 'IllZWVlZWSJdLGp0KSxodCgiWVlZWSIsZnVuY3Rpb24oQ2UsWGUpe1hlW2p0XT0yPT09Q2UubGVuZ3RoP18ucGFyc2VUd29EaWdpdFllYXIoQ2UpOkF0KENlKX0pLGh0KCJZWSIsZnVuY3Rpb24oQ2UsWGUpe1hlW2p0XT1fLnBhcnNlVHdvRGlnaXRZZWFyKENlKX0pLGh0KCJZIixmdW5jdGlv'@; put 'bihDZSxYZSl7WGVbanRdPXBhcnNlSW50KENlLDEwKX0pLF8ucGFyc2VUd29EaWdpdFllYXI9ZnVuY3Rpb24oQ2Upe3JldHVybiBBdChDZSkrKEF0KENlKT42OD8xOTAwOjJlMyl9O3ZhciBZaSxHbj1KcigiRnVsbFllYXIiLCEwKTtmdW5jdGlvbiBKcihDZSxYZSl7cmV0dXJuIGZ1bmN0aW9u'@; put 'KG10KXtyZXR1cm4gbnVsbCE9bXQ/KE5pKHRoaXMsQ2UsbXQpLF8udXBkYXRlT2Zmc2V0KHRoaXMsWGUpLHRoaXMpOlFyKHRoaXMsQ2UpfX1mdW5jdGlvbiBRcihDZSxYZSl7aWYoIUNlLmlzVmFsaWQoKSlyZXR1cm4gTmFOO3ZhciBtdD1DZS5fZCxSdD1DZS5faXNVVEM7c3dpdGNoKFhlKXtj'@; put 'YXNlIk1pbGxpc2Vjb25kcyI6cmV0dXJuIFJ0P210LmdldFVUQ01pbGxpc2Vjb25kcygpOm10LmdldE1pbGxpc2Vjb25kcygpO2Nhc2UiU2Vjb25kcyI6cmV0dXJuIFJ0P210LmdldFVUQ1NlY29uZHMoKTptdC5nZXRTZWNvbmRzKCk7Y2FzZSJNaW51dGVzIjpyZXR1cm4gUnQ/bXQuZ2V0VVRD'@; put 'TWludXRlcygpOm10LmdldE1pbnV0ZXMoKTtjYXNlIkhvdXJzIjpyZXR1cm4gUnQ/bXQuZ2V0VVRDSG91cnMoKTptdC5nZXRIb3VycygpO2Nhc2UiRGF0ZSI6cmV0dXJuIFJ0P210LmdldFVUQ0RhdGUoKTptdC5nZXREYXRlKCk7Y2FzZSJEYXkiOnJldHVybiBSdD9tdC5nZXRVVENEYXkoKTpt'@; put 'dC5nZXREYXkoKTtjYXNlIk1vbnRoIjpyZXR1cm4gUnQ/bXQuZ2V0VVRDTW9udGgoKTptdC5nZXRNb250aCgpO2Nhc2UiRnVsbFllYXIiOnJldHVybiBSdD9tdC5nZXRVVENGdWxsWWVhcigpOm10LmdldEZ1bGxZZWFyKCk7ZGVmYXVsdDpyZXR1cm4gTmFOfX1mdW5jdGlvbiBOaShDZSxYZSxt'@; put 'dCl7dmFyIFJ0LHVuLFFuLHJpLFJhO2lmKENlLmlzVmFsaWQoKSYmIWlzTmFOKG10KSl7c3dpdGNoKFJ0PUNlLl9kLHVuPUNlLl9pc1VUQyxYZSl7Y2FzZSJNaWxsaXNlY29uZHMiOnJldHVybiB2b2lkKHVuP1J0LnNldFVUQ01pbGxpc2Vjb25kcyhtdCk6UnQuc2V0TWlsbGlzZWNvbmRzKG10'@; put 'KSk7Y2FzZSJTZWNvbmRzIjpyZXR1cm4gdm9pZCh1bj9SdC5zZXRVVENTZWNvbmRzKG10KTpSdC5zZXRTZWNvbmRzKG10KSk7Y2FzZSJNaW51dGVzIjpyZXR1cm4gdm9pZCh1bj9SdC5zZXRVVENNaW51dGVzKG10KTpSdC5zZXRNaW51dGVzKG10KSk7Y2FzZSJIb3VycyI6cmV0dXJuIHZvaWQo'@; put 'dW4/UnQuc2V0VVRDSG91cnMobXQpOlJ0LnNldEhvdXJzKG10KSk7Y2FzZSJEYXRlIjpyZXR1cm4gdm9pZCh1bj9SdC5zZXRVVENEYXRlKG10KTpSdC5zZXREYXRlKG10KSk7Y2FzZSJGdWxsWWVhciI6YnJlYWs7ZGVmYXVsdDpyZXR1cm59UW49bXQscmk9Q2UubW9udGgoKSxSYT0yOSE9PShS'@; put 'YT1DZS5kYXRlKCkpfHwxIT09cml8fGFuKFFuKT9SYToyOCx1bj9SdC5zZXRVVENGdWxsWWVhcihRbixyaSxSYSk6UnQuc2V0RnVsbFllYXIoUW4scmksUmEpfX1mdW5jdGlvbiBmYShDZSxYZSl7aWYoaXNOYU4oQ2UpfHxpc05hTihYZSkpcmV0dXJuIE5hTjt2YXIgbXQ9ZnVuY3Rpb24gUHIo'@; put 'Q2UsWGUpe3JldHVybihDZSVYZStYZSklWGV9KFhlLDEyKTtyZXR1cm4gQ2UrPShYZS1tdCkvMTIsMT09PW10P2FuKENlKT8yOToyODozMS1tdCU3JTJ9WWk9QXJyYXkucHJvdG90eXBlLmluZGV4T2Y/QXJyYXkucHJvdG90eXBlLmluZGV4T2Y6ZnVuY3Rpb24oQ2Upe3ZhciBYZTtmb3IoWGU9'@; put 'MDtYZTx0aGlzLmxlbmd0aDsrK1hlKWlmKHRoaXNbWGVdPT09Q2UpcmV0dXJuIFhlO3JldHVybi0xfSxsZSgiTSIsWyJNTSIsMl0sIk1vIixmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vbnRoKCkrMX0pLGxlKCJNTU0iLDAsMCxmdW5jdGlvbihDZSl7cmV0dXJuIHRoaXMubG9jYWxlRGF0YSgp'@; put 'Lm1vbnRoc1Nob3J0KHRoaXMsQ2UpfSksbGUoIk1NTU0iLDAsMCxmdW5jdGlvbihDZSl7cmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLm1vbnRocyh0aGlzLENlKX0pLExuKCJNIix0dCxGciksTG4oIk1NIix0dCxNdCksTG4oIk1NTSIsZnVuY3Rpb24oQ2UsWGUpe3JldHVybiBYZS5tb250aHNT'@; put 'aG9ydFJlZ2V4KENlKX0pLExuKCJNTU1NIixmdW5jdGlvbihDZSxYZSl7cmV0dXJuIFhlLm1vbnRoc1JlZ2V4KENlKX0pLGh0KFsiTSIsIk1NIl0sZnVuY3Rpb24oQ2UsWGUpe1hlW2RpXT1BdChDZSktMX0pLGh0KFsiTU1NIiwiTU1NTSJdLGZ1bmN0aW9uKENlLFhlLG10LFJ0KXt2YXIgdW49'@; put 'bXQuX2xvY2FsZS5tb250aHNQYXJzZShDZSxSdCxtdC5fc3RyaWN0KTtudWxsIT11bj9YZVtkaV09dW46WihtdCkuaW52YWxpZE1vbnRoPUNlfSk7dmFyIG5yPSJKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVt'@; put 'YmVyX0RlY2VtYmVyIi5zcGxpdCgiXyIpLG9hPSJKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0RlYyIuc3BsaXQoIl8iKSxfYT0vRFtvRF0/KFxbW15cW1xdXSpcXXxccykrTU1NTT8vLE9hPWZ0LE5hPWZ0O2Z1bmN0aW9uIEhvKENlLFhlLG10KXt2YXIgUnQs'@; put 'dW4sUW4scmk9Q2UudG9Mb2NhbGVMb3dlckNhc2UoKTtpZighdGhpcy5fbW9udGhzUGFyc2UpZm9yKHRoaXMuX21vbnRoc1BhcnNlPVtdLHRoaXMuX2xvbmdNb250aHNQYXJzZT1bXSx0aGlzLl9zaG9ydE1vbnRoc1BhcnNlPVtdLFJ0PTA7UnQ8MTI7KytSdClRbj1CKFsyZTMsUnRdKSx0aGlz'@; put 'Ll9zaG9ydE1vbnRoc1BhcnNlW1J0XT10aGlzLm1vbnRoc1Nob3J0KFFuLCIiKS50b0xvY2FsZUxvd2VyQ2FzZSgpLHRoaXMuX2xvbmdNb250aHNQYXJzZVtSdF09dGhpcy5tb250aHMoUW4sIiIpLnRvTG9jYWxlTG93ZXJDYXNlKCk7cmV0dXJuIG10PyJNTU0iPT09WGU/LTEhPT0odW49WWku'@; put 'Y2FsbCh0aGlzLl9zaG9ydE1vbnRoc1BhcnNlLHJpKSk/dW46bnVsbDotMSE9PSh1bj1ZaS5jYWxsKHRoaXMuX2xvbmdNb250aHNQYXJzZSxyaSkpP3VuOm51bGw6Ik1NTSI9PT1YZT8tMSE9PSh1bj1ZaS5jYWxsKHRoaXMuX3Nob3J0TW9udGhzUGFyc2UscmkpKXx8LTEhPT0odW49WWkuY2Fs'@; put 'bCh0aGlzLl9sb25nTW9udGhzUGFyc2UscmkpKT91bjpudWxsOi0xIT09KHVuPVlpLmNhbGwodGhpcy5fbG9uZ01vbnRoc1BhcnNlLHJpKSl8fC0xIT09KHVuPVlpLmNhbGwodGhpcy5fc2hvcnRNb250aHNQYXJzZSxyaSkpP3VuOm51bGx9ZnVuY3Rpb24gdXUoQ2UsWGUpe2lmKCFDZS5pc1Zh'@; put 'bGlkKCkpcmV0dXJuIENlO2lmKCJzdHJpbmciPT10eXBlb2YgWGUpaWYoL15cZCskLy50ZXN0KFhlKSlYZT1BdChYZSk7ZWxzZSBpZighaihYZT1DZS5sb2NhbGVEYXRhKCkubW9udGhzUGFyc2UoWGUpKSlyZXR1cm4gQ2U7dmFyIG10PVhlLFJ0PUNlLmRhdGUoKTtyZXR1cm4gUnQ9UnQ8Mjk/'@; put 'UnQ6TWF0aC5taW4oUnQsZmEoQ2UueWVhcigpLG10KSksQ2UuX2lzVVRDP0NlLl9kLnNldFVUQ01vbnRoKG10LFJ0KTpDZS5fZC5zZXRNb250aChtdCxSdCksQ2V9ZnVuY3Rpb24gSWMoQ2Upe3JldHVybiBudWxsIT1DZT8odXUodGhpcyxDZSksXy51cGRhdGVPZmZzZXQodGhpcywhMCksdGhp'@; put 'cyk6UXIodGhpcywiTW9udGgiKX1mdW5jdGlvbiBsaSgpe2Z1bmN0aW9uIENlKENzLGhvKXtyZXR1cm4gaG8ubGVuZ3RoLUNzLmxlbmd0aH12YXIgdW4sUW4scmksUmEsWGU9W10sbXQ9W10sUnQ9W107Zm9yKHVuPTA7dW48MTI7dW4rKylRbj1CKFsyZTMsdW5dKSxyaT1uaSh0aGlzLm1vbnRo'@; put 'c1Nob3J0KFFuLCIiKSksUmE9bmkodGhpcy5tb250aHMoUW4sIiIpKSxYZS5wdXNoKHJpKSxtdC5wdXNoKFJhKSxSdC5wdXNoKFJhKSxSdC5wdXNoKHJpKTtYZS5zb3J0KENlKSxtdC5zb3J0KENlKSxSdC5zb3J0KENlKSx0aGlzLl9tb250aHNSZWdleD1uZXcgUmVnRXhwKCJeKCIrUnQuam9p'@; put 'bigifCIpKyIpIiwiaSIpLHRoaXMuX21vbnRoc1Nob3J0UmVnZXg9dGhpcy5fbW9udGhzUmVnZXgsdGhpcy5fbW9udGhzU3RyaWN0UmVnZXg9bmV3IFJlZ0V4cCgiXigiK210LmpvaW4oInwiKSsiKSIsImkiKSx0aGlzLl9tb250aHNTaG9ydFN0cmljdFJlZ2V4PW5ldyBSZWdFeHAoIl4oIitY'@; put 'ZS5qb2luKCJ8IikrIikiLCJpIil9ZnVuY3Rpb24gTnQoQ2UsWGUsbXQsUnQsdW4sUW4scmkpe3ZhciBSYTtyZXR1cm4gQ2U8MTAwJiZDZT49MD8oUmE9bmV3IERhdGUoQ2UrNDAwLFhlLG10LFJ0LHVuLFFuLHJpKSxpc0Zpbml0ZShSYS5nZXRGdWxsWWVhcigpKSYmUmEuc2V0RnVsbFllYXIo'@; put 'Q2UpKTpSYT1uZXcgRGF0ZShDZSxYZSxtdCxSdCx1bixRbixyaSksUmF9ZnVuY3Rpb24gWHIoQ2Upe3ZhciBYZSxtdDtyZXR1cm4gQ2U8MTAwJiZDZT49MD8oKG10PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykpWzBdPUNlKzQwMCxYZT1uZXcgRGF0ZShEYXRlLlVUQy5h'@; put 'cHBseShudWxsLG10KSksaXNGaW5pdGUoWGUuZ2V0VVRDRnVsbFllYXIoKSkmJlhlLnNldFVUQ0Z1bGxZZWFyKENlKSk6WGU9bmV3IERhdGUoRGF0ZS5VVEMuYXBwbHkobnVsbCxhcmd1bWVudHMpKSxYZX1mdW5jdGlvbiBnMChDZSxYZSxtdCl7dmFyIFJ0PTcrWGUtbXQ7cmV0dXJuLSg3K1hy'@; put 'KENlLDAsUnQpLmdldFVUQ0RheSgpLVhlKSU3K1J0LTF9ZnVuY3Rpb24gVmEoQ2UsWGUsbXQsUnQsdW4pe3ZhciBDcyxobyxSYT0xKzcqKFhlLTEpKyg3K210LVJ0KSU3K2cwKENlLFJ0LHVuKTtyZXR1cm4gUmE8PTA/aG89eXIoQ3M9Q2UtMSkrUmE6UmE+eXIoQ2UpPyhDcz1DZSsxLGhvPVJh'@; put 'LXlyKENlKSk6KENzPUNlLGhvPVJhKSx7eWVhcjpDcyxkYXlPZlllYXI6aG99fWZ1bmN0aW9uIER1KENlLFhlLG10KXt2YXIgUW4scmksUnQ9ZzAoQ2UueWVhcigpLFhlLG10KSx1bj1NYXRoLmZsb29yKChDZS5kYXlPZlllYXIoKS1SdC0xKS83KSsxO3JldHVybiB1bjwxP1FuPXVuK0hyKHJp'@; put 'PUNlLnllYXIoKS0xLFhlLG10KTp1bj5IcihDZS55ZWFyKCksWGUsbXQpPyhRbj11bi1IcihDZS55ZWFyKCksWGUsbXQpLHJpPUNlLnllYXIoKSsxKToocmk9Q2UueWVhcigpLFFuPXVuKSx7d2VlazpRbix5ZWFyOnJpfX1mdW5jdGlvbiBIcihDZSxYZSxtdCl7dmFyIFJ0PWcwKENlLFhlLG10'@; put 'KSx1bj1nMChDZSsxLFhlLG10KTtyZXR1cm4oeXIoQ2UpLVJ0K3VuKS83fWxlKCJ3IixbInd3IiwyXSwid28iLCJ3ZWVrIiksbGUoIlciLFsiV1ciLDJdLCJXbyIsImlzb1dlZWsiKSxMbigidyIsdHQsRnIpLExuKCJ3dyIsdHQsTXQpLExuKCJXIix0dCxGciksTG4oIldXIix0dCxNdCksRXQo'@; put 'WyJ3Iiwid3ciLCJXIiwiV1ciXSxmdW5jdGlvbihDZSxYZSxtdCxSdCl7WGVbUnQuc3Vic3RyKDAsMSldPUF0KENlKX0pO2Z1bmN0aW9uIG0wKENlLFhlKXtyZXR1cm4gQ2Uuc2xpY2UoWGUsNykuY29uY2F0KENlLnNsaWNlKDAsWGUpKX1sZSgiZCIsMCwiZG8iLCJkYXkiKSxsZSgiZGQiLDAs'@; put 'MCxmdW5jdGlvbihDZSl7cmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLndlZWtkYXlzTWluKHRoaXMsQ2UpfSksbGUoImRkZCIsMCwwLGZ1bmN0aW9uKENlKXtyZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkud2Vla2RheXNTaG9ydCh0aGlzLENlKX0pLGxlKCJkZGRkIiwwLDAsZnVuY3Rpb24oQ2Up'@; put 'e3JldHVybiB0aGlzLmxvY2FsZURhdGEoKS53ZWVrZGF5cyh0aGlzLENlKX0pLGxlKCJlIiwwLDAsIndlZWtkYXkiKSxsZSgiRSIsMCwwLCJpc29XZWVrZGF5IiksTG4oImQiLHR0KSxMbigiZSIsdHQpLExuKCJFIix0dCksTG4oImRkIixmdW5jdGlvbihDZSxYZSl7cmV0dXJuIFhlLndlZWtk'@; put 'YXlzTWluUmVnZXgoQ2UpfSksTG4oImRkZCIsZnVuY3Rpb24oQ2UsWGUpe3JldHVybiBYZS53ZWVrZGF5c1Nob3J0UmVnZXgoQ2UpfSksTG4oImRkZGQiLGZ1bmN0aW9uKENlLFhlKXtyZXR1cm4gWGUud2Vla2RheXNSZWdleChDZSl9KSxFdChbImRkIiwiZGRkIiwiZGRkZCJdLGZ1bmN0aW9u'@; put 'KENlLFhlLG10LFJ0KXt2YXIgdW49bXQuX2xvY2FsZS53ZWVrZGF5c1BhcnNlKENlLFJ0LG10Ll9zdHJpY3QpO251bGwhPXVuP1hlLmQ9dW46WihtdCkuaW52YWxpZFdlZWtkYXk9Q2V9KSxFdChbImQiLCJlIiwiRSJdLGZ1bmN0aW9uKENlLFhlLG10LFJ0KXtYZVtSdF09QXQoQ2UpfSk7dmFy'@; put 'IGU1PSJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheSIuc3BsaXQoIl8iKSxJbD0iU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Ii5zcGxpdCgiXyIpLGdmPSJTdV9Nb19UdV9XZV9UaF9Gcl9TYSIuc3BsaXQoIl8iKSxjZD1mdCxtZj1m'@; put 'dCxEMT1mdDtmdW5jdGlvbiBLaChDZSxYZSxtdCl7dmFyIFJ0LHVuLFFuLHJpPUNlLnRvTG9jYWxlTG93ZXJDYXNlKCk7aWYoIXRoaXMuX3dlZWtkYXlzUGFyc2UpZm9yKHRoaXMuX3dlZWtkYXlzUGFyc2U9W10sdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlPVtdLHRoaXMuX21pbldlZWtkYXlz'@; put 'UGFyc2U9W10sUnQ9MDtSdDw3OysrUnQpUW49QihbMmUzLDFdKS5kYXkoUnQpLHRoaXMuX21pbldlZWtkYXlzUGFyc2VbUnRdPXRoaXMud2Vla2RheXNNaW4oUW4sIiIpLnRvTG9jYWxlTG93ZXJDYXNlKCksdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlW1J0XT10aGlzLndlZWtkYXlzU2hvcnQo'@; put 'UW4sIiIpLnRvTG9jYWxlTG93ZXJDYXNlKCksdGhpcy5fd2Vla2RheXNQYXJzZVtSdF09dGhpcy53ZWVrZGF5cyhRbiwiIikudG9Mb2NhbGVMb3dlckNhc2UoKTtyZXR1cm4gbXQ/ImRkZGQiPT09WGU/LTEhPT0odW49WWkuY2FsbCh0aGlzLl93ZWVrZGF5c1BhcnNlLHJpKSk/dW46bnVsbDoi'@; put 'ZGRkIj09PVhlPy0xIT09KHVuPVlpLmNhbGwodGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlLHJpKSk/dW46bnVsbDotMSE9PSh1bj1ZaS5jYWxsKHRoaXMuX21pbldlZWtkYXlzUGFyc2UscmkpKT91bjpudWxsOiJkZGRkIj09PVhlPy0xIT09KHVuPVlpLmNhbGwodGhpcy5fd2Vla2RheXNQYXJz'@; put 'ZSxyaSkpfHwtMSE9PSh1bj1ZaS5jYWxsKHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZSxyaSkpfHwtMSE9PSh1bj1ZaS5jYWxsKHRoaXMuX21pbldlZWtkYXlzUGFyc2UscmkpKT91bjpudWxsOiJkZGQiPT09WGU/LTEhPT0odW49WWkuY2FsbCh0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2Uscmkp'@; put 'KXx8LTEhPT0odW49WWkuY2FsbCh0aGlzLl93ZWVrZGF5c1BhcnNlLHJpKSl8fC0xIT09KHVuPVlpLmNhbGwodGhpcy5fbWluV2Vla2RheXNQYXJzZSxyaSkpP3VuOm51bGw6LTEhPT0odW49WWkuY2FsbCh0aGlzLl9taW5XZWVrZGF5c1BhcnNlLHJpKSl8fC0xIT09KHVuPVlpLmNhbGwodGhp'@; put 'cy5fd2Vla2RheXNQYXJzZSxyaSkpfHwtMSE9PSh1bj1ZaS5jYWxsKHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZSxyaSkpP3VuOm51bGx9ZnVuY3Rpb24gcm4oKXtmdW5jdGlvbiBDZShQdSxmZCl7cmV0dXJuIGZkLmxlbmd0aC1QdS5sZW5ndGh9dmFyIFFuLHJpLFJhLENzLGhvLFhlPVtdLG10'@; put 'PVtdLFJ0PVtdLHVuPVtdO2ZvcihRbj0wO1FuPDc7UW4rKylyaT1CKFsyZTMsMV0pLmRheShRbiksUmE9bmkodGhpcy53ZWVrZGF5c01pbihyaSwiIikpLENzPW5pKHRoaXMud2Vla2RheXNTaG9ydChyaSwiIikpLGhvPW5pKHRoaXMud2Vla2RheXMocmksIiIpKSxYZS5wdXNoKFJhKSxtdC5w'@; put 'dXNoKENzKSxSdC5wdXNoKGhvKSx1bi5wdXNoKFJhKSx1bi5wdXNoKENzKSx1bi5wdXNoKGhvKTtYZS5zb3J0KENlKSxtdC5zb3J0KENlKSxSdC5zb3J0KENlKSx1bi5zb3J0KENlKSx0aGlzLl93ZWVrZGF5c1JlZ2V4PW5ldyBSZWdFeHAoIl4oIit1bi5qb2luKCJ8IikrIikiLCJpIiksdGhp'@; put 'cy5fd2Vla2RheXNTaG9ydFJlZ2V4PXRoaXMuX3dlZWtkYXlzUmVnZXgsdGhpcy5fd2Vla2RheXNNaW5SZWdleD10aGlzLl93ZWVrZGF5c1JlZ2V4LHRoaXMuX3dlZWtkYXlzU3RyaWN0UmVnZXg9bmV3IFJlZ0V4cCgiXigiK1J0LmpvaW4oInwiKSsiKSIsImkiKSx0aGlzLl93ZWVrZGF5c1No'@; put 'b3J0U3RyaWN0UmVnZXg9bmV3IFJlZ0V4cCgiXigiK210LmpvaW4oInwiKSsiKSIsImkiKSx0aGlzLl93ZWVrZGF5c01pblN0cmljdFJlZ2V4PW5ldyBSZWdFeHAoIl4oIitYZS5qb2luKCJ8IikrIikiLCJpIil9ZnVuY3Rpb24gbWkoKXtyZXR1cm4gdGhpcy5ob3VycygpJTEyfHwxMn1mdW5j'@; put 'dGlvbiBGcyhDZSxYZSl7bGUoQ2UsMCwwLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLm1lcmlkaWVtKHRoaXMuaG91cnMoKSx0aGlzLm1pbnV0ZXMoKSxYZSl9KX1mdW5jdGlvbiBRYShDZSxYZSl7cmV0dXJuIFhlLl9tZXJpZGllbVBhcnNlfWxlKCJIIixbIkhIIiwyXSww'@; put 'LCJob3VyIiksbGUoImgiLFsiaGgiLDJdLDAsbWkpLGxlKCJrIixbImtrIiwyXSwwLGZ1bmN0aW9uIEFyKCl7cmV0dXJuIHRoaXMuaG91cnMoKXx8MjR9KSxsZSgiaG1tIiwwLDAsZnVuY3Rpb24oKXtyZXR1cm4iIittaS5hcHBseSh0aGlzKStFKHRoaXMubWludXRlcygpLDIpfSksbGUoImht'@; put 'bXNzIiwwLDAsZnVuY3Rpb24oKXtyZXR1cm4iIittaS5hcHBseSh0aGlzKStFKHRoaXMubWludXRlcygpLDIpK0UodGhpcy5zZWNvbmRzKCksMil9KSxsZSgiSG1tIiwwLDAsZnVuY3Rpb24oKXtyZXR1cm4iIit0aGlzLmhvdXJzKCkrRSh0aGlzLm1pbnV0ZXMoKSwyKX0pLGxlKCJIbW1zcyIs'@; put 'MCwwLGZ1bmN0aW9uKCl7cmV0dXJuIiIrdGhpcy5ob3VycygpK0UodGhpcy5taW51dGVzKCksMikrRSh0aGlzLnNlY29uZHMoKSwyKX0pLEZzKCJhIiwhMCksRnMoIkEiLCExKSxMbigiYSIsUWEpLExuKCJBIixRYSksTG4oIkgiLHR0LFp0KSxMbigiaCIsdHQsRnIpLExuKCJrIix0dCxGciks'@; put 'TG4oIkhIIix0dCxNdCksTG4oImhoIix0dCxNdCksTG4oImtrIix0dCxNdCksTG4oImhtbSIsTmUpLExuKCJobW1zcyIsdXQpLExuKCJIbW0iLE5lKSxMbigiSG1tc3MiLHV0KSxodChbIkgiLCJISCJdLGZuKSxodChbImsiLCJrayJdLGZ1bmN0aW9uKENlLFhlLG10KXt2YXIgUnQ9QXQoQ2Up'@; put 'O1hlW2ZuXT0yND09PVJ0PzA6UnR9KSxodChbImEiLCJBIl0sZnVuY3Rpb24oQ2UsWGUsbXQpe210Ll9pc1BtPW10Ll9sb2NhbGUuaXNQTShDZSksbXQuX21lcmlkaWVtPUNlfSksaHQoWyJoIiwiaGgiXSxmdW5jdGlvbihDZSxYZSxtdCl7WGVbZm5dPUF0KENlKSxaKG10KS5iaWdIb3VyPSEw'@; put 'fSksaHQoImhtbSIsZnVuY3Rpb24oQ2UsWGUsbXQpe3ZhciBSdD1DZS5sZW5ndGgtMjtYZVtmbl09QXQoQ2Uuc3Vic3RyKDAsUnQpKSxYZVtEaV09QXQoQ2Uuc3Vic3RyKFJ0KSksWihtdCkuYmlnSG91cj0hMH0pLGh0KCJobW1zcyIsZnVuY3Rpb24oQ2UsWGUsbXQpe3ZhciBSdD1DZS5sZW5n'@; put 'dGgtNCx1bj1DZS5sZW5ndGgtMjtYZVtmbl09QXQoQ2Uuc3Vic3RyKDAsUnQpKSxYZVtEaV09QXQoQ2Uuc3Vic3RyKFJ0LDIpKSxYZVtRdF09QXQoQ2Uuc3Vic3RyKHVuKSksWihtdCkuYmlnSG91cj0hMH0pLGh0KCJIbW0iLGZ1bmN0aW9uKENlLFhlLG10KXt2YXIgUnQ9Q2UubGVuZ3RoLTI7'@; put 'WGVbZm5dPUF0KENlLnN1YnN0cigwLFJ0KSksWGVbRGldPUF0KENlLnN1YnN0cihSdCkpfSksaHQoIkhtbXNzIixmdW5jdGlvbihDZSxYZSxtdCl7dmFyIFJ0PUNlLmxlbmd0aC00LHVuPUNlLmxlbmd0aC0yO1hlW2ZuXT1BdChDZS5zdWJzdHIoMCxSdCkpLFhlW0RpXT1BdChDZS5zdWJzdHIo'@; put 'UnQsMikpLFhlW1F0XT1BdChDZS5zdWJzdHIodW4pKX0pO3ZhciBObz1KcigiSG91cnMiLCEwKTt2YXIgU3QsTmw9e2NhbGVuZGFyOntzYW1lRGF5OiJbVG9kYXkgYXRdIExUIixuZXh0RGF5OiJbVG9tb3Jyb3cgYXRdIExUIixuZXh0V2VlazoiZGRkZCBbYXRdIExUIixsYXN0RGF5OiJbWWVz'@; put 'dGVyZGF5IGF0XSBMVCIsbGFzdFdlZWs6IltMYXN0XSBkZGRkIFthdF0gTFQiLHNhbWVFbHNlOiJMIn0sbG9uZ0RhdGVGb3JtYXQ6e0xUUzoiaDptbTpzcyBBIixMVDoiaDptbSBBIixMOiJNTS9ERC9ZWVlZIixMTDoiTU1NTSBELCBZWVlZIixMTEw6Ik1NTU0gRCwgWVlZWSBoOm1tIEEiLExM'@; put 'TEw6ImRkZGQsIE1NTU0gRCwgWVlZWSBoOm1tIEEifSxpbnZhbGlkRGF0ZToiSW52YWxpZCBkYXRlIixvcmRpbmFsOiIlZCIsZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfS8scmVsYXRpdmVUaW1lOntmdXR1cmU6ImluICVzIixwYXN0OiIlcyBhZ28iLHM6ImEgZmV3IHNlY29uZHMi'@; put 'LHNzOiIlZCBzZWNvbmRzIixtOiJhIG1pbnV0ZSIsbW06IiVkIG1pbnV0ZXMiLGg6ImFuIGhvdXIiLGhoOiIlZCBob3VycyIsZDoiYSBkYXkiLGRkOiIlZCBkYXlzIix3OiJhIHdlZWsiLHd3OiIlZCB3ZWVrcyIsTToiYSBtb250aCIsTU06IiVkIG1vbnRocyIseToiYSB5ZWFyIix5eToiJWQg'@; put 'eWVhcnMifSxtb250aHM6bnIsbW9udGhzU2hvcnQ6b2Esd2Vlazp7ZG93OjAsZG95OjZ9LHdlZWtkYXlzOmU1LHdlZWtkYXlzTWluOmdmLHdlZWtkYXlzU2hvcnQ6SWwsbWVyaWRpZW1QYXJzZTovW2FwXVwuP20/XC4/L2l9LE5zPXt9LElzPXt9O2Z1bmN0aW9uIFZ0KENlLFhlKXt2YXIgbXQs'@; put 'UnQ9TWF0aC5taW4oQ2UubGVuZ3RoLFhlLmxlbmd0aCk7Zm9yKG10PTA7bXQ8UnQ7bXQrPTEpaWYoQ2VbbXRdIT09WGVbbXRdKXJldHVybiBtdDtyZXR1cm4gUnR9ZnVuY3Rpb24geW4oQ2Upe3JldHVybiBDZSYmQ2UudG9Mb3dlckNhc2UoKS5yZXBsYWNlKCJfIiwiLSIpfWZ1bmN0aW9uIHZu'@; put 'KENlKXt2YXIgWGU9bnVsbDtpZih2b2lkIDA9PT1Oc1tDZV0mJmNlJiZjZS5leHBvcnRzJiZmdW5jdGlvbiBSbihDZSl7cmV0dXJuISghQ2V8fCFDZS5tYXRjaCgiXlteL1xcXFxdKiQiKSl9KENlKSl0cnl7WGU9U3QuX2FiYnIsYigzNTM1OCkoIi4vIitDZSksZHIoWGUpfWNhdGNoe05zW0Nl'@; put 'XT1udWxsfXJldHVybiBOc1tDZV19ZnVuY3Rpb24gZHIoQ2UsWGUpe3ZhciBtdDtyZXR1cm4gQ2UmJigobXQ9UihYZSk/dGEoQ2UpOnZpKENlLFhlKSk/U3Q9bXQ6dHlwZW9mIGNvbnNvbGU8InUiJiZjb25zb2xlLndhcm4mJmNvbnNvbGUud2FybigiTG9jYWxlICIrQ2UrIiBub3QgZm91bmQu'@; put 'IERpZCB5b3UgZm9yZ2V0IHRvIGxvYWQgaXQ/IikpLFN0Ll9hYmJyfWZ1bmN0aW9uIHZpKENlLFhlKXtpZihudWxsIT09WGUpe3ZhciBtdCxSdD1ObDtpZihYZS5hYmJyPUNlLG51bGwhPU5zW0NlXSl6KCJkZWZpbmVMb2NhbGVPdmVycmlkZSIsInVzZSBtb21lbnQudXBkYXRlTG9jYWxlKGxv'@; put 'Y2FsZU5hbWUsIGNvbmZpZykgdG8gY2hhbmdlIGFuIGV4aXN0aW5nIGxvY2FsZS4gbW9tZW50LmRlZmluZUxvY2FsZShsb2NhbGVOYW1lLCBjb25maWcpIHNob3VsZCBvbmx5IGJlIHVzZWQgZm9yIGNyZWF0aW5nIGEgbmV3IGxvY2FsZSBTZWUgaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMv'@; put 'Iy93YXJuaW5ncy9kZWZpbmUtbG9jYWxlLyBmb3IgbW9yZSBpbmZvLiIpLFJ0PU5zW0NlXS5fY29uZmlnO2Vsc2UgaWYobnVsbCE9WGUucGFyZW50TG9jYWxlKWlmKG51bGwhPU5zW1hlLnBhcmVudExvY2FsZV0pUnQ9TnNbWGUucGFyZW50TG9jYWxlXS5fY29uZmlnO2Vsc2V7aWYobnVsbD09'@; put 'KG10PXZuKFhlLnBhcmVudExvY2FsZSkpKXJldHVybiBJc1tYZS5wYXJlbnRMb2NhbGVdfHwoSXNbWGUucGFyZW50TG9jYWxlXT1bXSksSXNbWGUucGFyZW50TG9jYWxlXS5wdXNoKHtuYW1lOkNlLGNvbmZpZzpYZX0pLG51bGw7UnQ9bXQuX2NvbmZpZ31yZXR1cm4gTnNbQ2VdPW5ldyBDKHgo'@; put 'UnQsWGUpKSxJc1tDZV0mJklzW0NlXS5mb3JFYWNoKGZ1bmN0aW9uKHVuKXt2aSh1bi5uYW1lLHVuLmNvbmZpZyl9KSxkcihDZSksTnNbQ2VdfXJldHVybiBkZWxldGUgTnNbQ2VdLG51bGx9ZnVuY3Rpb24gdGEoQ2Upe3ZhciBYZTtpZihDZSYmQ2UuX2xvY2FsZSYmQ2UuX2xvY2FsZS5fYWJi'@; put 'ciYmKENlPUNlLl9sb2NhbGUuX2FiYnIpLCFDZSlyZXR1cm4gU3Q7aWYoIU4oQ2UpKXtpZihYZT12bihDZSkpcmV0dXJuIFhlO0NlPVtDZV19cmV0dXJuIGZ1bmN0aW9uIGduKENlKXtmb3IodmFyIG10LFJ0LHVuLFFuLFhlPTA7WGU8Q2UubGVuZ3RoOyl7Zm9yKG10PShRbj15bihDZVtYZV0p'@; put 'LnNwbGl0KCItIikpLmxlbmd0aCxSdD0oUnQ9eW4oQ2VbWGUrMV0pKT9SdC5zcGxpdCgiLSIpOm51bGw7bXQ+MDspe2lmKHVuPXZuKFFuLnNsaWNlKDAsbXQpLmpvaW4oIi0iKSkpcmV0dXJuIHVuO2lmKFJ0JiZSdC5sZW5ndGg+PW10JiZWdChRbixSdCk+PW10LTEpYnJlYWs7bXQtLX1YZSsr'@; put 'fXJldHVybiBTdH0oQ2UpfWZ1bmN0aW9uIGphKENlKXt2YXIgWGUsbXQ9Q2UuX2E7cmV0dXJuIG10JiYtMj09PVooQ2UpLm92ZXJmbG93JiYoWGU9bXRbZGldPDB8fG10W2RpXT4xMT9kaTptdFtjbl08MXx8bXRbY25dPmZhKG10W2p0XSxtdFtkaV0pP2NuOm10W2ZuXTwwfHxtdFtmbl0+MjR8'@; put 'fDI0PT09bXRbZm5dJiYoMCE9PW10W0RpXXx8MCE9PW10W1F0XXx8MCE9PW10W3RuXSk/Zm46bXRbRGldPDB8fG10W0RpXT41OT9EaTptdFtRdF08MHx8bXRbUXRdPjU5P1F0Om10W3RuXTwwfHxtdFt0bl0+OTk5P3RuOi0xLFooQ2UpLl9vdmVyZmxvd0RheU9mWWVhciYmKFhlPGp0fHxYZT5j'@; put 'bikmJihYZT1jbiksWihDZSkuX292ZXJmbG93V2Vla3MmJi0xPT09WGUmJihYZT1jYSksWihDZSkuX292ZXJmbG93V2Vla2RheSYmLTE9PT1YZSYmKFhlPXhpKSxaKENlKS5vdmVyZmxvdz1YZSksQ2V9dmFyICRzPS9eXHMqKCg/OlsrLV1cZHs2fXxcZHs0fSktKD86XGRcZC1cZFxkfFdcZFxk'@; put 'LVxkfFdcZFxkfFxkXGRcZHxcZFxkKSkoPzooVHwgKShcZFxkKD86OlxkXGQoPzo6XGRcZCg/OlsuLF1cZCspPyk/KT8pKFsrLV1cZFxkKD86Oj9cZFxkKT98XHMqWik/KT8kLyxLbD0vXlxzKigoPzpbKy1dXGR7Nn18XGR7NH0pKD86XGRcZFxkXGR8V1xkXGRcZHxXXGRcZHxcZFxkXGR8XGRc'@; put 'ZHwpKSg/OihUfCApKFxkXGQoPzpcZFxkKD86XGRcZCg/OlsuLF1cZCspPyk/KT8pKFsrLV1cZFxkKD86Oj9cZFxkKT98XHMqWik/KT8kLyxlcz0vWnxbKy1dXGRcZCg/Ojo/XGRcZCk/Lyxicz1bWyJZWVlZWVktTU0tREQiLC9bKy1dXGR7Nn0tXGRcZC1cZFxkL10sWyJZWVlZLU1NLUREIiwv'@; put 'XGR7NH0tXGRcZC1cZFxkL10sWyJHR0dHLVtXXVdXLUUiLC9cZHs0fS1XXGRcZC1cZC9dLFsiR0dHRy1bV11XVyIsL1xkezR9LVdcZFxkLywhMV0sWyJZWVlZLURERCIsL1xkezR9LVxkezN9L10sWyJZWVlZLU1NIiwvXGR7NH0tXGRcZC8sITFdLFsiWVlZWVlZTU1ERCIsL1srLV1cZHsxMH0v'@; put 'XSxbIllZWVlNTUREIiwvXGR7OH0vXSxbIkdHR0dbV11XV0UiLC9cZHs0fVdcZHszfS9dLFsiR0dHR1tXXVdXIiwvXGR7NH1XXGR7Mn0vLCExXSxbIllZWVlEREQiLC9cZHs3fS9dLFsiWVlZWU1NIiwvXGR7Nn0vLCExXSxbIllZWVkiLC9cZHs0fS8sITFdXSxqaT1bWyJISDptbTpzcy5TU1NT'@; put 'IiwvXGRcZDpcZFxkOlxkXGRcLlxkKy9dLFsiSEg6bW06c3MsU1NTUyIsL1xkXGQ6XGRcZDpcZFxkLFxkKy9dLFsiSEg6bW06c3MiLC9cZFxkOlxkXGQ6XGRcZC9dLFsiSEg6bW0iLC9cZFxkOlxkXGQvXSxbIkhIbW1zcy5TU1NTIiwvXGRcZFxkXGRcZFxkXC5cZCsvXSxbIkhIbW1zcyxTU1NT'@; put 'IiwvXGRcZFxkXGRcZFxkLFxkKy9dLFsiSEhtbXNzIiwvXGRcZFxkXGRcZFxkL10sWyJISG1tIiwvXGRcZFxkXGQvXSxbIkhIIiwvXGRcZC9dXSxMYz0vXlwvP0RhdGVcKCgtP1xkKykvaSxWbD0vXig/OihNb258VHVlfFdlZHxUaHV8RnJpfFNhdHxTdW4pLD9ccyk/KFxkezEsMn0pXHMoSmFu'@; put 'fEZlYnxNYXJ8QXByfE1heXxKdW58SnVsfEF1Z3xTZXB8T2N0fE5vdnxEZWMpXHMoXGR7Miw0fSlccyhcZFxkKTooXGRcZCkoPzo6KFxkXGQpKT9ccyg/OihVVHxHTVR8W0VDTVBdW1NEXVQpfChbWnpdKXwoWystXVxkezR9KSkkLyxTYT17VVQ6MCxHTVQ6MCxFRFQ6LTI0MCxFU1Q6LTMwMCxD'@; put 'RFQ6LTMwMCxDU1Q6LTM2MCxNRFQ6LTM2MCxNU1Q6LTQyMCxQRFQ6LTQyMCxQU1Q6LTQ4MH07ZnVuY3Rpb24ga2EoQ2Upe3ZhciBYZSxtdCxRbixyaSxSYSxDcyxSdD1DZS5faSx1bj0kcy5leGVjKFJ0KXx8S2wuZXhlYyhSdCksaG89YnMubGVuZ3RoLFB1PWppLmxlbmd0aDtpZih1bil7Zm9y'@; put 'KFooQ2UpLmlzbz0hMCxYZT0wLG10PWhvO1hlPG10O1hlKyspaWYoYnNbWGVdWzFdLmV4ZWModW5bMV0pKXtyaT1ic1tYZV1bMF0sUW49ITEhPT1ic1tYZV1bMl07YnJlYWt9aWYobnVsbD09cmkpcmV0dXJuIHZvaWQoQ2UuX2lzVmFsaWQ9ITEpO2lmKHVuWzNdKXtmb3IoWGU9MCxtdD1QdTtY'@; put 'ZTxtdDtYZSsrKWlmKGppW1hlXVsxXS5leGVjKHVuWzNdKSl7UmE9KHVuWzJdfHwiICIpK2ppW1hlXVswXTticmVha31pZihudWxsPT1SYSlyZXR1cm4gdm9pZChDZS5faXNWYWxpZD0hMSl9aWYoIVFuJiZudWxsIT1SYSlyZXR1cm4gdm9pZChDZS5faXNWYWxpZD0hMSk7aWYodW5bNF0pe2lm'@; put 'KCFlcy5leGVjKHVuWzRdKSlyZXR1cm4gdm9pZChDZS5faXNWYWxpZD0hMSk7Q3M9IloifUNlLl9mPXJpKyhSYXx8IiIpKyhDc3x8IiIpLGY0KENlKX1lbHNlIENlLl9pc1ZhbGlkPSExfWZ1bmN0aW9uIFkwKENlKXt2YXIgWGU9cGFyc2VJbnQoQ2UsMTApO3JldHVybiBYZTw9NDk/MmUzK1hl'@; put 'OlhlPD05OTk/MTkwMCtYZTpYZX1mdW5jdGlvbiBTbyhDZSl7dmFyIG10LFhlPVZsLmV4ZWMoZnVuY3Rpb24gRzAoQ2Upe3JldHVybiBDZS5yZXBsYWNlKC9cKFteKCldKlwpfFtcblx0XS9nLCIgIikucmVwbGFjZSgvKFxzXHMrKS9nLCIgIikucmVwbGFjZSgvXlxzXHMqLywiIikucmVwbGFj'@; put 'ZSgvXHNccyokLywiIil9KENlLl9pKSk7aWYoWGUpe2lmKG10PWZ1bmN0aW9uIFFoKENlLFhlLG10LFJ0LHVuLFFuKXt2YXIgcmk9W1kwKENlKSxvYS5pbmRleE9mKFhlKSxwYXJzZUludChtdCwxMCkscGFyc2VJbnQoUnQsMTApLHBhcnNlSW50KHVuLDEwKV07cmV0dXJuIFFuJiZyaS5wdXNo'@; put 'KHBhcnNlSW50KFFuLDEwKSkscml9KFhlWzRdLFhlWzNdLFhlWzJdLFhlWzVdLFhlWzZdLFhlWzddKSwhZnVuY3Rpb24gVnMoQ2UsWGUsbXQpe3JldHVybiFDZXx8SWwuaW5kZXhPZihDZSk9PT1uZXcgRGF0ZShYZVswXSxYZVsxXSxYZVsyXSkuZ2V0RGF5KCl8fChaKG10KS53ZWVrZGF5TWlz'@; put 'bWF0Y2g9ITAsbXQuX2lzVmFsaWQ9ITEsITEpfShYZVsxXSxtdCxDZSkpcmV0dXJuO0NlLl9hPW10LENlLl90em09ZnVuY3Rpb24gcWkoQ2UsWGUsbXQpe2lmKENlKXJldHVybiBTYVtDZV07aWYoWGUpcmV0dXJuIDA7dmFyIFJ0PXBhcnNlSW50KG10LDEwKSx1bj1SdCUxMDA7cmV0dXJuKFJ0'@; put 'LXVuKS8xMDAqNjArdW59KFhlWzhdLFhlWzldLFhlWzEwXSksQ2UuX2Q9WHIuYXBwbHkobnVsbCxDZS5fYSksQ2UuX2Quc2V0VVRDTWludXRlcyhDZS5fZC5nZXRVVENNaW51dGVzKCktQ2UuX3R6bSksWihDZSkucmZjMjgyMj0hMH1lbHNlIENlLl9pc1ZhbGlkPSExfWZ1bmN0aW9uIHNzKENl'@; put 'LFhlLG10KXtyZXR1cm4gQ2U/P1hlPz9tdH1mdW5jdGlvbiB5bChDZSl7dmFyIFhlLG10LHVuLFFuLHJpLFJ0PVtdO2lmKCFDZS5fZCl7Zm9yKHVuPWZ1bmN0aW9uIHQ1KENlKXt2YXIgWGU9bmV3IERhdGUoXy5ub3coKSk7cmV0dXJuIENlLl91c2VVVEM/W1hlLmdldFVUQ0Z1bGxZZWFyKCks'@; put 'WGUuZ2V0VVRDTW9udGgoKSxYZS5nZXRVVENEYXRlKCldOltYZS5nZXRGdWxsWWVhcigpLFhlLmdldE1vbnRoKCksWGUuZ2V0RGF0ZSgpXX0oQ2UpLENlLl93JiZudWxsPT1DZS5fYVtjbl0mJm51bGw9PUNlLl9hW2RpXSYmZnVuY3Rpb24gdGgoQ2Upe3ZhciBYZSxtdCxSdCx1bixRbixyaSxS'@; put 'YSxDcyxobztudWxsIT0oWGU9Q2UuX3cpLkdHfHxudWxsIT1YZS5XfHxudWxsIT1YZS5FPyhRbj0xLHJpPTQsbXQ9c3MoWGUuR0csQ2UuX2FbanRdLER1KGlsKCksMSw0KS55ZWFyKSxSdD1zcyhYZS5XLDEpLCgodW49c3MoWGUuRSwxKSk8MXx8dW4+NykmJihDcz0hMCkpOihRbj1DZS5fbG9j'@; put 'YWxlLl93ZWVrLmRvdyxyaT1DZS5fbG9jYWxlLl93ZWVrLmRveSxobz1EdShpbCgpLFFuLHJpKSxtdD1zcyhYZS5nZyxDZS5fYVtqdF0saG8ueWVhciksUnQ9c3MoWGUudyxoby53ZWVrKSxudWxsIT1YZS5kPygodW49WGUuZCk8MHx8dW4+NikmJihDcz0hMCk6bnVsbCE9WGUuZT8odW49WGUu'@; put 'ZStRbiwoWGUuZTwwfHxYZS5lPjYpJiYoQ3M9ITApKTp1bj1RbiksUnQ8MXx8UnQ+SHIobXQsUW4scmkpP1ooQ2UpLl9vdmVyZmxvd1dlZWtzPSEwOm51bGwhPUNzP1ooQ2UpLl9vdmVyZmxvd1dlZWtkYXk9ITA6KFJhPVZhKG10LFJ0LHVuLFFuLHJpKSxDZS5fYVtqdF09UmEueWVhcixDZS5f'@; put 'ZGF5T2ZZZWFyPVJhLmRheU9mWWVhcil9KENlKSxudWxsIT1DZS5fZGF5T2ZZZWFyJiYocmk9c3MoQ2UuX2FbanRdLHVuW2p0XSksKENlLl9kYXlPZlllYXI+eXIocmkpfHwwPT09Q2UuX2RheU9mWWVhcikmJihaKENlKS5fb3ZlcmZsb3dEYXlPZlllYXI9ITApLG10PVhyKHJpLDAsQ2UuX2Rh'@; put 'eU9mWWVhciksQ2UuX2FbZGldPW10LmdldFVUQ01vbnRoKCksQ2UuX2FbY25dPW10LmdldFVUQ0RhdGUoKSksWGU9MDtYZTwzJiZudWxsPT1DZS5fYVtYZV07KytYZSlDZS5fYVtYZV09UnRbWGVdPXVuW1hlXTtmb3IoO1hlPDc7WGUrKylDZS5fYVtYZV09UnRbWGVdPW51bGw9PUNlLl9hW1hl'@; put 'XT8yPT09WGU/MTowOkNlLl9hW1hlXTsyND09PUNlLl9hW2ZuXSYmMD09PUNlLl9hW0RpXSYmMD09PUNlLl9hW1F0XSYmMD09PUNlLl9hW3RuXSYmKENlLl9uZXh0RGF5PSEwLENlLl9hW2ZuXT0wKSxDZS5fZD0oQ2UuX3VzZVVUQz9YcjpOdCkuYXBwbHkobnVsbCxSdCksUW49Q2UuX3VzZVVU'@; put 'Qz9DZS5fZC5nZXRVVENEYXkoKTpDZS5fZC5nZXREYXkoKSxudWxsIT1DZS5fdHptJiZDZS5fZC5zZXRVVENNaW51dGVzKENlLl9kLmdldFVUQ01pbnV0ZXMoKS1DZS5fdHptKSxDZS5fbmV4dERheSYmKENlLl9hW2ZuXT0yNCksQ2UuX3cmJnR5cGVvZiBDZS5fdy5kPCJ1IiYmQ2UuX3cuZCE9'@; put 'PVFuJiYoWihDZSkud2Vla2RheU1pc21hdGNoPSEwKX19ZnVuY3Rpb24gZjQoQ2Upe2lmKENlLl9mIT09Xy5JU09fODYwMSlpZihDZS5fZiE9PV8uUkZDXzI4MjIpe0NlLl9hPVtdLFooQ2UpLmVtcHR5PSEwO3ZhciBtdCxSdCx1bixRbixyaSxobyxQdSxYZT0iIitDZS5faSxSYT1YZS5sZW5n'@; put 'dGgsQ3M9MDtmb3IoUHU9KHVuPWF0KENlLl9mLENlLl9sb2NhbGUpLm1hdGNoKG0pfHxbXSkubGVuZ3RoLG10PTA7bXQ8UHU7bXQrKykoUnQ9KFhlLm1hdGNoKG90KFFuPXVuW210XSxDZSkpfHxbXSlbMF0pJiYoKHJpPVhlLnN1YnN0cigwLFhlLmluZGV4T2YoUnQpKSkubGVuZ3RoPjAmJloo'@; put 'Q2UpLnVudXNlZElucHV0LnB1c2gocmkpLFhlPVhlLnNsaWNlKFhlLmluZGV4T2YoUnQpK1J0Lmxlbmd0aCksQ3MrPVJ0Lmxlbmd0aCksbmVbUW5dPyhSdD9aKENlKS5lbXB0eT0hMTpaKENlKS51bnVzZWRUb2tlbnMucHVzaChRbiksem4oUW4sUnQsQ2UpKTpDZS5fc3RyaWN0JiYhUnQmJloo'@; put 'Q2UpLnVudXNlZFRva2Vucy5wdXNoKFFuKTtaKENlKS5jaGFyc0xlZnRPdmVyPVJhLUNzLFhlLmxlbmd0aD4wJiZaKENlKS51bnVzZWRJbnB1dC5wdXNoKFhlKSxDZS5fYVtmbl08PTEyJiYhMD09PVooQ2UpLmJpZ0hvdXImJkNlLl9hW2ZuXT4wJiYoWihDZSkuYmlnSG91cj12b2lkIDApLFoo'@; put 'Q2UpLnBhcnNlZERhdGVQYXJ0cz1DZS5fYS5zbGljZSgwKSxaKENlKS5tZXJpZGllbT1DZS5fbWVyaWRpZW0sQ2UuX2FbZm5dPWZ1bmN0aW9uIHA0KENlLFhlLG10KXt2YXIgUnQ7cmV0dXJuIG51bGw9PW10P1hlOm51bGwhPUNlLm1lcmlkaWVtSG91cj9DZS5tZXJpZGllbUhvdXIoWGUsbXQp'@; put 'OihudWxsIT1DZS5pc1BNJiYoKFJ0PUNlLmlzUE0obXQpKSYmWGU8MTImJihYZSs9MTIpLCFSdCYmMTI9PT1YZSYmKFhlPTApKSxYZSl9KENlLl9sb2NhbGUsQ2UuX2FbZm5dLENlLl9tZXJpZGllbSksbnVsbCE9PShobz1aKENlKS5lcmEpJiYoQ2UuX2FbanRdPUNlLl9sb2NhbGUuZXJhc0Nv'@; put 'bnZlcnRZZWFyKGhvLENlLl9hW2p0XSkpLHlsKENlKSxqYShDZSl9ZWxzZSBTbyhDZSk7ZWxzZSBrYShDZSl9ZnVuY3Rpb24gaXYoQ2Upe3ZhciBYZT1DZS5faSxtdD1DZS5fZjtyZXR1cm4gQ2UuX2xvY2FsZT1DZS5fbG9jYWxlfHx0YShDZS5fbCksbnVsbD09PVhlfHx2b2lkIDA9PT1tdCYm'@; put 'IiI9PT1YZT9xKHtudWxsSW5wdXQ6ITB9KTooInN0cmluZyI9PXR5cGVvZiBYZSYmKENlLl9pPVhlPUNlLl9sb2NhbGUucHJlcGFyc2UoWGUpKSxfZShYZSk/bmV3IGdlKGphKFhlKSk6KFAoWGUpP0NlLl9kPVhlOk4obXQpP2Z1bmN0aW9uICQwKENlKXt2YXIgWGUsbXQsUnQsdW4sUW4scmks'@; put 'UmE9ITEsQ3M9Q2UuX2YubGVuZ3RoO2lmKDA9PT1DcylyZXR1cm4gWihDZSkuaW52YWxpZEZvcm1hdD0hMCx2b2lkKENlLl9kPW5ldyBEYXRlKE5hTikpO2Zvcih1bj0wO3VuPENzO3VuKyspUW49MCxyaT0hMSxYZT1zZSh7fSxDZSksbnVsbCE9Q2UuX3VzZVVUQyYmKFhlLl91c2VVVEM9Q2Uu'@; put 'X3VzZVVUQyksWGUuX2Y9Q2UuX2ZbdW5dLGY0KFhlKSxRKFhlKSYmKHJpPSEwKSxRbis9WihYZSkuY2hhcnNMZWZ0T3ZlcixRbis9MTAqWihYZSkudW51c2VkVG9rZW5zLmxlbmd0aCxaKFhlKS5zY29yZT1RbixSYT9RbjxSdCYmKFJ0PVFuLG10PVhlKToobnVsbD09UnR8fFFuPFJ0fHxyaSkm'@; put 'JihSdD1RbixtdD1YZSxyaSYmKFJhPSEwKSk7WShDZSxtdHx8WGUpfShDZSk6bXQ/ZjQoQ2UpOmZ1bmN0aW9uIEh3KENlKXt2YXIgWGU9Q2UuX2k7UihYZSk/Q2UuX2Q9bmV3IERhdGUoXy5ub3coKSk6UChYZSk/Q2UuX2Q9bmV3IERhdGUoWGUudmFsdWVPZigpKToic3RyaW5nIj09dHlwZW9m'@; put 'IFhlP2Z1bmN0aW9uIHJhKENlKXt2YXIgWGU9TGMuZXhlYyhDZS5faSk7bnVsbD09PVhlPyhrYShDZSksITE9PT1DZS5faXNWYWxpZCYmKGRlbGV0ZSBDZS5faXNWYWxpZCxTbyhDZSksITE9PT1DZS5faXNWYWxpZCYmKGRlbGV0ZSBDZS5faXNWYWxpZCxDZS5fc3RyaWN0P0NlLl9pc1ZhbGlk'@; put 'PSExOl8uY3JlYXRlRnJvbUlucHV0RmFsbGJhY2soQ2UpKSkpOkNlLl9kPW5ldyBEYXRlKCtYZVsxXSl9KENlKTpOKFhlKT8oQ2UuX2E9TChYZS5zbGljZSgwKSxmdW5jdGlvbihtdCl7cmV0dXJuIHBhcnNlSW50KG10LDEwKX0pLHlsKENlKSk6dyhYZSk/ZnVuY3Rpb24gZHUoQ2Upe2lmKCFD'@; put 'ZS5fZCl7dmFyIFhlPW50KENlLl9pKTtDZS5fYT1MKFtYZS55ZWFyLFhlLm1vbnRoLHZvaWQgMD09PVhlLmRheT9YZS5kYXRlOlhlLmRheSxYZS5ob3VyLFhlLm1pbnV0ZSxYZS5zZWNvbmQsWGUubWlsbGlzZWNvbmRdLGZ1bmN0aW9uKFJ0KXtyZXR1cm4gUnQmJnBhcnNlSW50KFJ0LDEwKX0p'@; put 'LHlsKENlKX19KENlKTpqKFhlKT9DZS5fZD1uZXcgRGF0ZShYZSk6Xy5jcmVhdGVGcm9tSW5wdXRGYWxsYmFjayhDZSl9KENlKSxRKENlKXx8KENlLl9kPW51bGwpLENlKSl9ZnVuY3Rpb24gYXYoQ2UsWGUsbXQsUnQsdW4pe3ZhciBRbj17fTtyZXR1cm4oITA9PT1YZXx8ITE9PT1YZSkmJihS'@; put 'dD1YZSxYZT12b2lkIDApLCghMD09PW10fHwhMT09PW10KSYmKFJ0PW10LG10PXZvaWQgMCksKHcoQ2UpJiZIKENlKXx8TihDZSkmJjA9PT1DZS5sZW5ndGgpJiYoQ2U9dm9pZCAwKSxRbi5faXNBTW9tZW50T2JqZWN0PSEwLFFuLl91c2VVVEM9UW4uX2lzVVRDPXVuLFFuLl9sPW10LFFuLl9p'@; put 'PUNlLFFuLl9mPVhlLFFuLl9zdHJpY3Q9UnQsZnVuY3Rpb24gT2MoQ2Upe3ZhciBYZT1uZXcgZ2UoamEoaXYoQ2UpKSk7cmV0dXJuIFhlLl9uZXh0RGF5JiYoWGUuYWRkKDEsImQiKSxYZS5fbmV4dERheT12b2lkIDApLFhlfShRbil9ZnVuY3Rpb24gaWwoQ2UsWGUsbXQsUnQpe3JldHVybiBh'@; put 'dihDZSxYZSxtdCxSdCwhMSl9Xy5jcmVhdGVGcm9tSW5wdXRGYWxsYmFjaz1TZSgidmFsdWUgcHJvdmlkZWQgaXMgbm90IGluIGEgcmVjb2duaXplZCBSRkMyODIyIG9yIElTTyBmb3JtYXQuIG1vbWVudCBjb25zdHJ1Y3Rpb24gZmFsbHMgYmFjayB0byBqcyBEYXRlKCksIHdoaWNoIGlzIG5v'@; put 'dCByZWxpYWJsZSBhY3Jvc3MgYWxsIGJyb3dzZXJzIGFuZCB2ZXJzaW9ucy4gTm9uIFJGQzI4MjIvSVNPIGRhdGUgZm9ybWF0cyBhcmUgZGlzY291cmFnZWQuIFBsZWFzZSByZWZlciB0byBodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL2pzLWRhdGUvIGZvciBtb3JlIGlu'@; put 'Zm8uIixmdW5jdGlvbihDZSl7Q2UuX2Q9bmV3IERhdGUoQ2UuX2krKENlLl91c2VVVEM/IiBVVEMiOiIiKSl9KSxfLklTT184NjAxPWZ1bmN0aW9uKCl7fSxfLlJGQ18yODIyPWZ1bmN0aW9uKCl7fTt2YXIgUjM9U2UoIm1vbWVudCgpLm1pbiBpcyBkZXByZWNhdGVkLCB1c2UgbW9tZW50Lm1h'@; put 'eCBpbnN0ZWFkLiBodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL21pbi1tYXgvIixmdW5jdGlvbigpe3ZhciBDZT1pbC5hcHBseShudWxsLGFyZ3VtZW50cyk7cmV0dXJuIHRoaXMuaXNWYWxpZCgpJiZDZS5pc1ZhbGlkKCk/Q2U8dGhpcz90aGlzOkNlOnEoKX0pLE53PVNl'@; put 'KCJtb21lbnQoKS5tYXggaXMgZGVwcmVjYXRlZCwgdXNlIG1vbWVudC5taW4gaW5zdGVhZC4gaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9taW4tbWF4LyIsZnVuY3Rpb24oKXt2YXIgQ2U9aWwuYXBwbHkobnVsbCxhcmd1bWVudHMpO3JldHVybiB0aGlzLmlzVmFsaWQo'@; put 'KSYmQ2UuaXNWYWxpZCgpP0NlPnRoaXM/dGhpczpDZTpxKCl9KTtmdW5jdGlvbiBuaChDZSxYZSl7dmFyIG10LFJ0O2lmKDE9PT1YZS5sZW5ndGgmJk4oWGVbMF0pJiYoWGU9WGVbMF0pLCFYZS5sZW5ndGgpcmV0dXJuIGlsKCk7Zm9yKG10PVhlWzBdLFJ0PTE7UnQ8WGUubGVuZ3RoOysrUnQp'@; put 'KCFYZVtSdF0uaXNWYWxpZCgpfHxYZVtSdF1bQ2VdKG10KSkmJihtdD1YZVtSdF0pO3JldHVybiBtdH12YXIgaGk9WyJ5ZWFyIiwicXVhcnRlciIsIm1vbnRoIiwid2VlayIsImRheSIsImhvdXIiLCJtaW51dGUiLCJzZWNvbmQiLCJtaWxsaXNlY29uZCJdO2Z1bmN0aW9uIGJmKENlKXt2YXIg'@; put 'WGU9bnQoQ2UpLG10PVhlLnllYXJ8fDAsUnQ9WGUucXVhcnRlcnx8MCx1bj1YZS5tb250aHx8MCxRbj1YZS53ZWVrfHxYZS5pc29XZWVrfHwwLHJpPVhlLmRheXx8MCxSYT1YZS5ob3VyfHwwLENzPVhlLm1pbnV0ZXx8MCxobz1YZS5zZWNvbmR8fDAsUHU9WGUubWlsbGlzZWNvbmR8fDA7dGhp'@; put 'cy5faXNWYWxpZD1mdW5jdGlvbiBuNShDZSl7dmFyIFhlLFJ0LG10PSExLHVuPWhpLmxlbmd0aDtmb3IoWGUgaW4gQ2UpaWYoRihDZSxYZSkmJigtMT09PVlpLmNhbGwoaGksWGUpfHxudWxsIT1DZVtYZV0mJmlzTmFOKENlW1hlXSkpKXJldHVybiExO2ZvcihSdD0wO1J0PHVuOysrUnQpaWYo'@; put 'Q2VbaGlbUnRdXSl7aWYobXQpcmV0dXJuITE7cGFyc2VGbG9hdChDZVtoaVtSdF1dKSE9PUF0KENlW2hpW1J0XV0pJiYobXQ9ITApfXJldHVybiEwfShYZSksdGhpcy5fbWlsbGlzZWNvbmRzPStQdSsxZTMqaG8rNmU0KkNzKzFlMypSYSo2MCo2MCx0aGlzLl9kYXlzPStyaSs3KlFuLHRoaXMu'@; put 'X21vbnRocz0rdW4rMypSdCsxMiptdCx0aGlzLl9kYXRhPXt9LHRoaXMuX2xvY2FsZT10YSgpLHRoaXMuX2J1YmJsZSgpfWZ1bmN0aW9uIGE1KENlKXtyZXR1cm4gQ2UgaW5zdGFuY2VvZiBiZn1mdW5jdGlvbiBnNChDZSl7cmV0dXJuIENlPDA/LTEqTWF0aC5yb3VuZCgtMSpDZSk6TWF0aC5y'@; put 'b3VuZChDZSl9ZnVuY3Rpb24gUjEoQ2UsWGUpe2xlKENlLDAsMCxmdW5jdGlvbigpe3ZhciBtdD10aGlzLnV0Y09mZnNldCgpLFJ0PSIrIjtyZXR1cm4gbXQ8MCYmKG10PS1tdCxSdD0iLSIpLFJ0K0Uofn4obXQvNjApLDIpK1hlK0Uofn5tdCU2MCwyKX0pfVIxKCJaIiwiOiIpLFIxKCJaWiIs'@; put 'IiIpLExuKCJaIixJaSksTG4oIlpaIixJaSksaHQoWyJaIiwiWloiXSxmdW5jdGlvbihDZSxYZSxtdCl7bXQuX3VzZVVUQz0hMCxtdC5fdHptPXVkKElpLENlKX0pO3ZhciBzdj0vKFtcK1wtXXxcZFxkKS9naTtmdW5jdGlvbiB1ZChDZSxYZSl7dmFyIHVuLFFuLG10PShYZXx8IiIpLm1hdGNo'@; put 'KENlKTtyZXR1cm4gbnVsbD09PW10P251bGw6MD09PShRbj02MCoodW49KChtdFttdC5sZW5ndGgtMV18fFtdKSsiIikubWF0Y2goc3YpfHxbIi0iLDAsMF0pWzFdK0F0KHVuWzJdKSk/MDoiKyI9PT11blswXT9RbjotUW59ZnVuY3Rpb24gVDYoQ2UsWGUpe3ZhciBtdCxSdDtyZXR1cm4gWGUu'@; put 'X2lzVVRDPyhtdD1YZS5jbG9uZSgpLFJ0PShfZShDZSl8fFAoQ2UpP0NlLnZhbHVlT2YoKTppbChDZSkudmFsdWVPZigpKS1tdC52YWx1ZU9mKCksbXQuX2Quc2V0VGltZShtdC5fZC52YWx1ZU9mKCkrUnQpLF8udXBkYXRlT2Zmc2V0KG10LCExKSxtdCk6aWwoQ2UpLmxvY2FsKCl9ZnVuY3Rp'@; put 'b24gaHUoQ2Upe3JldHVybi1NYXRoLnJvdW5kKENlLl9kLmdldFRpbWV6b25lT2Zmc2V0KCkpfWZ1bmN0aW9uIHYwKCl7cmV0dXJuISF0aGlzLmlzVmFsaWQoKSYmdGhpcy5faXNVVEMmJjA9PT10aGlzLl9vZmZzZXR9Xy51cGRhdGVPZmZzZXQ9ZnVuY3Rpb24oKXt9O3ZhciBBNj0vXigtfFwr'@; put 'KT8oPzooXGQqKVsuIF0pPyhcZCspOihcZCspKD86OihcZCspKFwuXGQqKT8pPyQvLG4yPS9eKC18XCspP1AoPzooWy0rXT9bMC05LC5dKilZKT8oPzooWy0rXT9bMC05LC5dKilNKT8oPzooWy0rXT9bMC05LC5dKilXKT8oPzooWy0rXT9bMC05LC5dKilEKT8oPzpUKD86KFstK10/WzAtOSwu'@; put 'XSopSCk/KD86KFstK10/WzAtOSwuXSopTSk/KD86KFstK10/WzAtOSwuXSopUyk/KT8kLztmdW5jdGlvbiBYbChDZSxYZSl7dmFyIHVuLFFuLHJpLG10PUNlLFJ0PW51bGw7cmV0dXJuIGE1KENlKT9tdD17bXM6Q2UuX21pbGxpc2Vjb25kcyxkOkNlLl9kYXlzLE06Q2UuX21vbnRoc306aihD'@; put 'ZSl8fCFpc05hTigrQ2UpPyhtdD17fSxYZT9tdFtYZV09K0NlOm10Lm1pbGxpc2Vjb25kcz0rQ2UpOihSdD1BNi5leGVjKENlKSk/KHVuPSItIj09PVJ0WzFdPy0xOjEsbXQ9e3k6MCxkOkF0KFJ0W2NuXSkqdW4saDpBdChSdFtmbl0pKnVuLG06QXQoUnRbRGldKSp1bixzOkF0KFJ0W1F0XSkq'@; put 'dW4sbXM6QXQoZzQoMWUzKlJ0W3RuXSkpKnVufSk6KFJ0PW4yLmV4ZWMoQ2UpKT9tdD17eTpMMShSdFsyXSx1bj0iLSI9PT1SdFsxXT8tMToxKSxNOkwxKFJ0WzNdLHVuKSx3OkwxKFJ0WzRdLHVuKSxkOkwxKFJ0WzVdLHVuKSxoOkwxKFJ0WzZdLHVuKSxtOkwxKFJ0WzddLHVuKSxzOkwxKFJ0'@; put 'WzhdLHVuKX06bnVsbD09bXQ/bXQ9e306Im9iamVjdCI9PXR5cGVvZiBtdCYmKCJmcm9tImluIG10fHwidG8iaW4gbXQpJiYocmk9ZnVuY3Rpb24gSnMoQ2UsWGUpe3ZhciBtdDtyZXR1cm4gQ2UuaXNWYWxpZCgpJiZYZS5pc1ZhbGlkKCk/KFhlPVQ2KFhlLENlKSxDZS5pc0JlZm9yZShYZSk/'@; put 'bXQ9azAoQ2UsWGUpOigobXQ9azAoWGUsQ2UpKS5taWxsaXNlY29uZHM9LW10Lm1pbGxpc2Vjb25kcyxtdC5tb250aHM9LW10Lm1vbnRocyksbXQpOnttaWxsaXNlY29uZHM6MCxtb250aHM6MH19KGlsKG10LmZyb20pLGlsKG10LnRvKSksKG10PXt9KS5tcz1yaS5taWxsaXNlY29uZHMsbXQu'@; put 'TT1yaS5tb250aHMpLFFuPW5ldyBiZihtdCksYTUoQ2UpJiZGKENlLCJfbG9jYWxlIikmJihRbi5fbG9jYWxlPUNlLl9sb2NhbGUpLGE1KENlKSYmRihDZSwiX2lzVmFsaWQiKSYmKFFuLl9pc1ZhbGlkPUNlLl9pc1ZhbGlkKSxRbn1mdW5jdGlvbiBMMShDZSxYZSl7dmFyIG10PUNlJiZwYXJz'@; put 'ZUZsb2F0KENlLnJlcGxhY2UoIiwiLCIuIikpO3JldHVybihpc05hTihtdCk/MDptdCkqWGV9ZnVuY3Rpb24gazAoQ2UsWGUpe3ZhciBtdD17fTtyZXR1cm4gbXQubW9udGhzPVhlLm1vbnRoKCktQ2UubW9udGgoKSsxMiooWGUueWVhcigpLUNlLnllYXIoKSksQ2UuY2xvbmUoKS5hZGQobXQu'@; put 'bW9udGhzLCJNIikuaXNBZnRlcihYZSkmJi0tbXQubW9udGhzLG10Lm1pbGxpc2Vjb25kcz0rWGUtK0NlLmNsb25lKCkuYWRkKG10Lm1vbnRocywiTSIpLG10fWZ1bmN0aW9uIHIyKENlLFhlKXtyZXR1cm4gZnVuY3Rpb24obXQsUnQpe3ZhciBRbjtyZXR1cm4gbnVsbCE9PVJ0JiYhaXNOYU4o'@; put 'K1J0KSYmKHooWGUsIm1vbWVudCgpLiIrWGUrIihwZXJpb2QsIG51bWJlcikgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBtb21lbnQoKS4iK1hlKyIobnVtYmVyLCBwZXJpb2QpLiBTZWUgaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9hZGQtaW52ZXJ0ZWQtcGFyYW0v'@; put 'IGZvciBtb3JlIGluZm8uIiksUW49bXQsbXQ9UnQsUnQ9UW4pLE8zKHRoaXMsWGwobXQsUnQpLENlKSx0aGlzfX1mdW5jdGlvbiBPMyhDZSxYZSxtdCxSdCl7dmFyIHVuPVhlLl9taWxsaXNlY29uZHMsUW49ZzQoWGUuX2RheXMpLHJpPWc0KFhlLl9tb250aHMpO0NlLmlzVmFsaWQoKSYmKFJ0'@; put 'PVJ0Pz8hMCxyaSYmdXUoQ2UsUXIoQ2UsIk1vbnRoIikrcmkqbXQpLFFuJiZOaShDZSwiRGF0ZSIsUXIoQ2UsIkRhdGUiKStRbiptdCksdW4mJkNlLl9kLnNldFRpbWUoQ2UuX2QudmFsdWVPZigpK3VuKm10KSxSdCYmXy51cGRhdGVPZmZzZXQoQ2UsUW58fHJpKSl9WGwuZm49YmYucHJvdG90'@; put 'eXBlLFhsLmludmFsaWQ9ZnVuY3Rpb24gUXUoKXtyZXR1cm4gWGwoTmFOKX07dmFyIGs2PXIyKDEsImFkZCIpLG81PXIyKC0xLCJzdWJ0cmFjdCIpO2Z1bmN0aW9uIFAzKENlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIENlfHxDZSBpbnN0YW5jZW9mIFN0cmluZ31mdW5jdGlvbiBxbyhDZSl7'@; put 'cmV0dXJuIF9lKENlKXx8UChDZSl8fFAzKENlKXx8aihDZSl8fGZ1bmN0aW9uIGp3KENlKXt2YXIgWGU9TihDZSksbXQ9ITE7cmV0dXJuIFhlJiYobXQ9MD09PUNlLmZpbHRlcihmdW5jdGlvbihSdCl7cmV0dXJuIWooUnQpJiZQMyhDZSl9KS5sZW5ndGgpLFhlJiZtdH0oQ2UpfHxmdW5jdGlv'@; put 'biBWbihDZSl7dmFyIHVuLFhlPXcoQ2UpJiYhSChDZSksbXQ9ITEsUnQ9WyJ5ZWFycyIsInllYXIiLCJ5IiwibW9udGhzIiwibW9udGgiLCJNIiwiZGF5cyIsImRheSIsImQiLCJkYXRlcyIsImRhdGUiLCJEIiwiaG91cnMiLCJob3VyIiwiaCIsIm1pbnV0ZXMiLCJtaW51dGUiLCJtIiwic2Vj'@; put 'b25kcyIsInNlY29uZCIsInMiLCJtaWxsaXNlY29uZHMiLCJtaWxsaXNlY29uZCIsIm1zIl0scmk9UnQubGVuZ3RoO2Zvcih1bj0wO3VuPHJpO3VuKz0xKW10PW10fHxGKENlLFJ0W3VuXSk7cmV0dXJuIFhlJiZtdH0oQ2UpfHxudWxsPT1DZX1mdW5jdGlvbiBGMyhDZSxYZSl7aWYoQ2UuZGF0'@; put 'ZSgpPFhlLmRhdGUoKSlyZXR1cm4tRjMoWGUsQ2UpO3ZhciBtdD0xMiooWGUueWVhcigpLUNlLnllYXIoKSkrKFhlLm1vbnRoKCktQ2UubW9udGgoKSksUnQ9Q2UuY2xvbmUoKS5hZGQobXQsIm1vbnRocyIpO3JldHVybi0obXQrKFhlLVJ0PDA/KFhlLVJ0KS8oUnQtQ2UuY2xvbmUoKS5hZGQo'@; put 'bXQtMSwibW9udGhzIikpOihYZS1SdCkvKENlLmNsb25lKCkuYWRkKG10KzEsIm1vbnRocyIpLVJ0KSkpfHwwfWZ1bmN0aW9uIFhhKENlKXt2YXIgWGU7cmV0dXJuIHZvaWQgMD09PUNlP3RoaXMuX2xvY2FsZS5fYWJicjoobnVsbCE9KFhlPXRhKENlKSkmJih0aGlzLl9sb2NhbGU9WGUpLHRo'@; put 'aXMpfV8uZGVmYXVsdEZvcm1hdD0iWVlZWS1NTS1ERFRISDptbTpzc1oiLF8uZGVmYXVsdEZvcm1hdFV0Yz0iWVlZWS1NTS1ERFRISDptbTpzc1taXSI7dmFyIE5yPVNlKCJtb21lbnQoKS5sYW5nKCkgaXMgZGVwcmVjYXRlZC4gSW5zdGVhZCwgdXNlIG1vbWVudCgpLmxvY2FsZURhdGEoKSB0'@; put 'byBnZXQgdGhlIGxhbmd1YWdlIGNvbmZpZ3VyYXRpb24uIFVzZSBtb21lbnQoKS5sb2NhbGUoKSB0byBjaGFuZ2UgbGFuZ3VhZ2VzLiIsZnVuY3Rpb24oQ2Upe3JldHVybiB2b2lkIDA9PT1DZT90aGlzLmxvY2FsZURhdGEoKTp0aGlzLmxvY2FsZShDZSl9KTtmdW5jdGlvbiBTZigpe3JldHVy'@; put 'biB0aGlzLl9sb2NhbGV9dmFyIEFpPTZlNCxiND02MCpBaSxFcj0zNTA2MzI4KmI0O2Z1bmN0aW9uIGFsKENlLFhlKXtyZXR1cm4oQ2UlWGUrWGUpJVhlfWZ1bmN0aW9uIEJzKENlLFhlLG10KXtyZXR1cm4gQ2U8MTAwJiZDZT49MD9uZXcgRGF0ZShDZSs0MDAsWGUsbXQpLUVyOm5ldyBEYXRl'@; put 'KENlLFhlLG10KS52YWx1ZU9mKCl9ZnVuY3Rpb24gU2MoQ2UsWGUsbXQpe3JldHVybiBDZTwxMDAmJkNlPj0wP0RhdGUuVVRDKENlKzQwMCxYZSxtdCktRXI6RGF0ZS5VVEMoQ2UsWGUsbXQpfWZ1bmN0aW9uIEgzKENlLFhlKXtyZXR1cm4gWGUuZXJhc0FiYnJSZWdleChDZSl9ZnVuY3Rpb24g'@; put 'cWwoKXt2YXIgdW4sUW4scmksUmEsQ3MsQ2U9W10sWGU9W10sbXQ9W10sUnQ9W10saG89dGhpcy5lcmFzKCk7Zm9yKHVuPTAsUW49aG8ubGVuZ3RoO3VuPFFuOysrdW4pcmk9bmkoaG9bdW5dLm5hbWUpLFJhPW5pKGhvW3VuXS5hYmJyKSxDcz1uaShob1t1bl0ubmFycm93KSxYZS5wdXNoKHJp'@; put 'KSxDZS5wdXNoKFJhKSxtdC5wdXNoKENzKSxSdC5wdXNoKHJpKSxSdC5wdXNoKFJhKSxSdC5wdXNoKENzKTt0aGlzLl9lcmFzUmVnZXg9bmV3IFJlZ0V4cCgiXigiK1J0LmpvaW4oInwiKSsiKSIsImkiKSx0aGlzLl9lcmFzTmFtZVJlZ2V4PW5ldyBSZWdFeHAoIl4oIitYZS5qb2luKCJ8Iikr'@; put 'IikiLCJpIiksdGhpcy5fZXJhc0FiYnJSZWdleD1uZXcgUmVnRXhwKCJeKCIrQ2Uuam9pbigifCIpKyIpIiwiaSIpLHRoaXMuX2VyYXNOYXJyb3dSZWdleD1uZXcgUmVnRXhwKCJeKCIrbXQuam9pbigifCIpKyIpIiwiaSIpfWZ1bmN0aW9uIGRkKENlLFhlKXtsZSgwLFtDZSxDZS5sZW5ndGhd'@; put 'LDAsWGUpfWZ1bmN0aW9uIGJ2KENlLFhlLG10LFJ0LHVuKXt2YXIgUW47cmV0dXJuIG51bGw9PUNlP0R1KHRoaXMsUnQsdW4pLnllYXI6KFhlPihRbj1IcihDZSxSdCx1bikpJiYoWGU9UW4pLHF3LmNhbGwodGhpcyxDZSxYZSxtdCxSdCx1bikpfWZ1bmN0aW9uIHF3KENlLFhlLG10LFJ0LHVu'@; put 'KXt2YXIgUW49VmEoQ2UsWGUsbXQsUnQsdW4pLHJpPVhyKFFuLnllYXIsMCxRbi5kYXlPZlllYXIpO3JldHVybiB0aGlzLnllYXIocmkuZ2V0VVRDRnVsbFllYXIoKSksdGhpcy5tb250aChyaS5nZXRVVENNb250aCgpKSx0aGlzLmRhdGUocmkuZ2V0VVRDRGF0ZSgpKSx0aGlzfWxlKCJOIiww'@; put 'LDAsImVyYUFiYnIiKSxsZSgiTk4iLDAsMCwiZXJhQWJiciIpLGxlKCJOTk4iLDAsMCwiZXJhQWJiciIpLGxlKCJOTk5OIiwwLDAsImVyYU5hbWUiKSxsZSgiTk5OTk4iLDAsMCwiZXJhTmFycm93IiksbGUoInkiLFsieSIsMV0sInlvIiwiZXJhWWVhciIpLGxlKCJ5IixbInl5IiwyXSwwLCJl'@; put 'cmFZZWFyIiksbGUoInkiLFsieXl5IiwzXSwwLCJlcmFZZWFyIiksbGUoInkiLFsieXl5eSIsNF0sMCwiZXJhWWVhciIpLExuKCJOIixIMyksTG4oIk5OIixIMyksTG4oIk5OTiIsSDMpLExuKCJOTk5OIixmdW5jdGlvbiBLdyhDZSxYZSl7cmV0dXJuIFhlLmVyYXNOYW1lUmVnZXgoQ2UpfSks'@; put 'TG4oIk5OTk5OIixmdW5jdGlvbiBINihDZSxYZSl7cmV0dXJuIFhlLmVyYXNOYXJyb3dSZWdleChDZSl9KSxodChbIk4iLCJOTiIsIk5OTiIsIk5OTk4iLCJOTk5OTiJdLGZ1bmN0aW9uKENlLFhlLG10LFJ0KXt2YXIgdW49bXQuX2xvY2FsZS5lcmFzUGFyc2UoQ2UsUnQsbXQuX3N0cmljdCk7'@; put 'dW4/WihtdCkuZXJhPXVuOloobXQpLmludmFsaWRFcmE9Q2V9KSxMbigieSIsb2kpLExuKCJ5eSIsb2kpLExuKCJ5eXkiLG9pKSxMbigieXl5eSIsb2kpLExuKCJ5byIsZnVuY3Rpb24gTjMoQ2UsWGUpe3JldHVybiBYZS5fZXJhWWVhck9yZGluYWxSZWdleHx8b2l9KSxodChbInkiLCJ5eSIs'@; put 'Inl5eSIsInl5eXkiXSxqdCksaHQoWyJ5byJdLGZ1bmN0aW9uKENlLFhlLG10LFJ0KXt2YXIgdW47bXQuX2xvY2FsZS5fZXJhWWVhck9yZGluYWxSZWdleCYmKHVuPUNlLm1hdGNoKG10Ll9sb2NhbGUuX2VyYVllYXJPcmRpbmFsUmVnZXgpKSxYZVtqdF09bXQuX2xvY2FsZS5lcmFZZWFyT3Jk'@; put 'aW5hbFBhcnNlP210Ll9sb2NhbGUuZXJhWWVhck9yZGluYWxQYXJzZShDZSx1bik6cGFyc2VJbnQoQ2UsMTApfSksbGUoMCxbImdnIiwyXSwwLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMud2Vla1llYXIoKSUxMDB9KSxsZSgwLFsiR0ciLDJdLDAsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc29X'@; put 'ZWVrWWVhcigpJTEwMH0pLGRkKCJnZ2dnIiwid2Vla1llYXIiKSxkZCgiZ2dnZ2ciLCJ3ZWVrWWVhciIpLGRkKCJHR0dHIiwiaXNvV2Vla1llYXIiKSxkZCgiR0dHR0ciLCJpc29XZWVrWWVhciIpLExuKCJHIixlbiksTG4oImciLGVuKSxMbigiR0ciLHR0LE10KSxMbigiZ2ciLHR0LE10KSxM'@; put 'bigiR0dHRyIsTHQscnQpLExuKCJnZ2dnIixMdCxydCksTG4oIkdHR0dHIixQdCxLZSksTG4oImdnZ2dnIixQdCxLZSksRXQoWyJnZ2dnIiwiZ2dnZ2ciLCJHR0dHIiwiR0dHR0ciXSxmdW5jdGlvbihDZSxYZSxtdCxSdCl7WGVbUnQuc3Vic3RyKDAsMildPUF0KENlKX0pLEV0KFsiZ2ciLCJH'@; put 'RyJdLGZ1bmN0aW9uKENlLFhlLG10LFJ0KXtYZVtSdF09Xy5wYXJzZVR3b0RpZ2l0WWVhcihDZSl9KSxsZSgiUSIsMCwiUW8iLCJxdWFydGVyIiksTG4oIlEiLHl0KSxodCgiUSIsZnVuY3Rpb24oQ2UsWGUpe1hlW2RpXT0zKihBdChDZSktMSl9KSxsZSgiRCIsWyJERCIsMl0sIkRvIiwiZGF0'@; put 'ZSIpLExuKCJEIix0dCxGciksTG4oIkREIix0dCxNdCksTG4oIkRvIixmdW5jdGlvbihDZSxYZSl7cmV0dXJuIENlP1hlLl9kYXlPZk1vbnRoT3JkaW5hbFBhcnNlfHxYZS5fb3JkaW5hbFBhcnNlOlhlLl9kYXlPZk1vbnRoT3JkaW5hbFBhcnNlTGVuaWVudH0pLGh0KFsiRCIsIkREIl0sY24p'@; put 'LGh0KCJEbyIsZnVuY3Rpb24oQ2UsWGUpe1hlW2NuXT1BdChDZS5tYXRjaCh0dClbMF0pfSk7dmFyIEswPUpyKCJEYXRlIiwhMCk7bGUoIkRERCIsWyJEREREIiwzXSwiREREbyIsImRheU9mWWVhciIpLExuKCJEREQiLEp0KSxMbigiRERERCIsSXQpLGh0KFsiREREIiwiRERERCJdLGZ1bmN0'@; put 'aW9uKENlLFhlLG10KXttdC5fZGF5T2ZZZWFyPUF0KENlKX0pLGxlKCJtIixbIm1tIiwyXSwwLCJtaW51dGUiKSxMbigibSIsdHQsWnQpLExuKCJtbSIsdHQsTXQpLGh0KFsibSIsIm1tIl0sRGkpO3ZhciBFZj1KcigiTWludXRlcyIsITEpO2xlKCJzIixbInNzIiwyXSwwLCJzZWNvbmQiKSxM'@; put 'bigicyIsdHQsWnQpLExuKCJzcyIsdHQsTXQpLGh0KFsicyIsInNzIl0sUXQpO3ZhciBpaCxWNixUZj1KcigiU2Vjb25kcyIsITEpO2ZvcihsZSgiUyIsMCwwLGZ1bmN0aW9uKCl7cmV0dXJufn4odGhpcy5taWxsaXNlY29uZCgpLzEwMCl9KSxsZSgwLFsiU1MiLDJdLDAsZnVuY3Rpb24oKXty'@; put 'ZXR1cm5+fih0aGlzLm1pbGxpc2Vjb25kKCkvMTApfSksbGUoMCxbIlNTUyIsM10sMCwibWlsbGlzZWNvbmQiKSxsZSgwLFsiU1NTUyIsNF0sMCxmdW5jdGlvbigpe3JldHVybiAxMCp0aGlzLm1pbGxpc2Vjb25kKCl9KSxsZSgwLFsiU1NTU1MiLDVdLDAsZnVuY3Rpb24oKXtyZXR1cm4gMTAw'@; put 'KnRoaXMubWlsbGlzZWNvbmQoKX0pLGxlKDAsWyJTU1NTU1MiLDZdLDAsZnVuY3Rpb24oKXtyZXR1cm4gMWUzKnRoaXMubWlsbGlzZWNvbmQoKX0pLGxlKDAsWyJTU1NTU1NTIiw3XSwwLGZ1bmN0aW9uKCl7cmV0dXJuIDFlNCp0aGlzLm1pbGxpc2Vjb25kKCl9KSxsZSgwLFsiU1NTU1NTU1Mi'@; put 'LDhdLDAsZnVuY3Rpb24oKXtyZXR1cm4gMWU1KnRoaXMubWlsbGlzZWNvbmQoKX0pLGxlKDAsWyJTU1NTU1NTU1MiLDldLDAsZnVuY3Rpb24oKXtyZXR1cm4gMWU2KnRoaXMubWlsbGlzZWNvbmQoKX0pLExuKCJTIixKdCx5dCksTG4oIlNTIixKdCxNdCksTG4oIlNTUyIsSnQsSXQpLGloPSJT'@; put 'U1NTIjtpaC5sZW5ndGg8PTk7aWgrPSJTIilMbihpaCxvaSk7ZnVuY3Rpb24gUGMoQ2UsWGUpe1hlW3RuXT1BdCgxZTMqKCIwLiIrQ2UpKX1mb3IoaWg9IlMiO2loLmxlbmd0aDw9OTtpaCs9IlMiKWh0KGloLFBjKTtWNj1KcigiTWlsbGlzZWNvbmRzIiwhMSksbGUoInoiLDAsMCwiem9uZUFi'@; put 'YnIiKSxsZSgienoiLDAsMCwiem9uZU5hbWUiKTt2YXIgemk9Z2UucHJvdG90eXBlO2Z1bmN0aW9uIHd2KENlKXtyZXR1cm4gQ2V9emkuYWRkPWs2LHppLmNhbGVuZGFyPWZ1bmN0aW9uIGM1KENlLFhlKXsxPT09YXJndW1lbnRzLmxlbmd0aCYmKGFyZ3VtZW50c1swXT9xbyhhcmd1bWVudHNb'@; put 'MF0pPyhDZT1hcmd1bWVudHNbMF0sWGU9dm9pZCAwKTpmdW5jdGlvbiBtNChDZSl7dmFyIHVuLFhlPXcoQ2UpJiYhSChDZSksbXQ9ITEsUnQ9WyJzYW1lRGF5IiwibmV4dERheSIsImxhc3REYXkiLCJuZXh0V2VlayIsImxhc3RXZWVrIiwic2FtZUVsc2UiXTtmb3IodW49MDt1bjxSdC5sZW5n'@; put 'dGg7dW4rPTEpbXQ9bXR8fEYoQ2UsUnRbdW5dKTtyZXR1cm4gWGUmJm10fShhcmd1bWVudHNbMF0pJiYoWGU9YXJndW1lbnRzWzBdLENlPXZvaWQgMCk6KENlPXZvaWQgMCxYZT12b2lkIDApKTt2YXIgbXQ9Q2V8fGlsKCksUnQ9VDYobXQsdGhpcykuc3RhcnRPZigiZGF5IiksdW49Xy5jYWxl'@; put 'bmRhckZvcm1hdCh0aGlzLFJ0KXx8InNhbWVFbHNlIixRbj1YZSYmKGcoWGVbdW5dKT9YZVt1bl0uY2FsbCh0aGlzLG10KTpYZVt1bl0pO3JldHVybiB0aGlzLmZvcm1hdChRbnx8dGhpcy5sb2NhbGVEYXRhKCkuY2FsZW5kYXIodW4sdGhpcyxpbChtdCkpKX0semkuY2xvbmU9ZnVuY3Rpb24g'@; put 'Q2YoKXtyZXR1cm4gbmV3IGdlKHRoaXMpfSx6aS5kaWZmPWZ1bmN0aW9uIENjKENlLFhlLG10KXt2YXIgUnQsdW4sUW47aWYoIXRoaXMuaXNWYWxpZCgpKXJldHVybiBOYU47aWYoIShSdD1UNihDZSx0aGlzKSkuaXNWYWxpZCgpKXJldHVybiBOYU47c3dpdGNoKHVuPTZlNCooUnQudXRjT2Zm'@; put 'c2V0KCktdGhpcy51dGNPZmZzZXQoKSksWGU9X3QoWGUpKXtjYXNlInllYXIiOlFuPUYzKHRoaXMsUnQpLzEyO2JyZWFrO2Nhc2UibW9udGgiOlFuPUYzKHRoaXMsUnQpO2JyZWFrO2Nhc2UicXVhcnRlciI6UW49RjModGhpcyxSdCkvMzticmVhaztjYXNlInNlY29uZCI6UW49KHRoaXMtUnQp'@; put 'LzFlMzticmVhaztjYXNlIm1pbnV0ZSI6UW49KHRoaXMtUnQpLzZlNDticmVhaztjYXNlImhvdXIiOlFuPSh0aGlzLVJ0KS8zNmU1O2JyZWFrO2Nhc2UiZGF5IjpRbj0odGhpcy1SdC11bikvODY0ZTU7YnJlYWs7Y2FzZSJ3ZWVrIjpRbj0odGhpcy1SdC11bikvNjA0OGU1O2JyZWFrO2RlZmF1'@; put 'bHQ6UW49dGhpcy1SdH1yZXR1cm4gbXQ/UW46V2UoUW4pfSx6aS5lbmRPZj1mdW5jdGlvbiBhMihDZSl7dmFyIFhlLG10O2lmKHZvaWQgMD09PShDZT1fdChDZSkpfHwibWlsbGlzZWNvbmQiPT09Q2V8fCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4gdGhpcztzd2l0Y2gobXQ9dGhpcy5faXNVVEM/'@; put 'U2M6QnMsQ2Upe2Nhc2UieWVhciI6WGU9bXQodGhpcy55ZWFyKCkrMSwwLDEpLTE7YnJlYWs7Y2FzZSJxdWFydGVyIjpYZT1tdCh0aGlzLnllYXIoKSx0aGlzLm1vbnRoKCktdGhpcy5tb250aCgpJTMrMywxKS0xO2JyZWFrO2Nhc2UibW9udGgiOlhlPW10KHRoaXMueWVhcigpLHRoaXMubW9u'@; put 'dGgoKSsxLDEpLTE7YnJlYWs7Y2FzZSJ3ZWVrIjpYZT1tdCh0aGlzLnllYXIoKSx0aGlzLm1vbnRoKCksdGhpcy5kYXRlKCktdGhpcy53ZWVrZGF5KCkrNyktMTticmVhaztjYXNlImlzb1dlZWsiOlhlPW10KHRoaXMueWVhcigpLHRoaXMubW9udGgoKSx0aGlzLmRhdGUoKS0odGhpcy5pc29X'@; put 'ZWVrZGF5KCktMSkrNyktMTticmVhaztjYXNlImRheSI6Y2FzZSJkYXRlIjpYZT1tdCh0aGlzLnllYXIoKSx0aGlzLm1vbnRoKCksdGhpcy5kYXRlKCkrMSktMTticmVhaztjYXNlImhvdXIiOlhlPXRoaXMuX2QudmFsdWVPZigpLFhlKz1iNC1hbChYZSsodGhpcy5faXNVVEM/MDp0aGlzLnV0'@; put 'Y09mZnNldCgpKkFpKSxiNCktMTticmVhaztjYXNlIm1pbnV0ZSI6WGU9dGhpcy5fZC52YWx1ZU9mKCksWGUrPUFpLWFsKFhlLEFpKS0xO2JyZWFrO2Nhc2Uic2Vjb25kIjpYZT10aGlzLl9kLnZhbHVlT2YoKSxYZSs9MWUzLWFsKFhlLDFlMyktMX1yZXR1cm4gdGhpcy5fZC5zZXRUaW1lKFhl'@; put 'KSxfLnVwZGF0ZU9mZnNldCh0aGlzLCEwKSx0aGlzfSx6aS5mb3JtYXQ9ZnVuY3Rpb24gZHYoQ2Upe0NlfHwoQ2U9dGhpcy5pc1V0YygpP18uZGVmYXVsdEZvcm1hdFV0YzpfLmRlZmF1bHRGb3JtYXQpO3ZhciBYZT1RZSh0aGlzLENlKTtyZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkucG9zdGZv'@; put 'cm1hdChYZSl9LHppLmZyb209ZnVuY3Rpb24gVXcoQ2UsWGUpe3JldHVybiB0aGlzLmlzVmFsaWQoKSYmKF9lKENlKSYmQ2UuaXNWYWxpZCgpfHxpbChDZSkuaXNWYWxpZCgpKT9YbCh7dG86dGhpcyxmcm9tOkNlfSkubG9jYWxlKHRoaXMubG9jYWxlKCkpLmh1bWFuaXplKCFYZSk6dGhpcy5s'@; put 'b2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKX0semkuZnJvbU5vdz1mdW5jdGlvbiBodihDZSl7cmV0dXJuIHRoaXMuZnJvbShpbCgpLENlKX0semkudG89ZnVuY3Rpb24gWncoQ2UsWGUpe3JldHVybiB0aGlzLmlzVmFsaWQoKSYmKF9lKENlKSYmQ2UuaXNWYWxpZCgpfHxpbChDZSkuaXNWYWxp'@; put 'ZCgpKT9YbCh7ZnJvbTp0aGlzLHRvOkNlfSkubG9jYWxlKHRoaXMubG9jYWxlKCkpLmh1bWFuaXplKCFYZSk6dGhpcy5sb2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKX0semkudG9Ob3c9ZnVuY3Rpb24gV3coQ2Upe3JldHVybiB0aGlzLnRvKGlsKCksQ2UpfSx6aS5nZXQ9ZnVuY3Rpb24gSGko'@; put 'Q2Upe3JldHVybiBnKHRoaXNbQ2U9X3QoQ2UpXSk/dGhpc1tDZV0oKTp0aGlzfSx6aS5pbnZhbGlkQXQ9ZnVuY3Rpb24gcmgoKXtyZXR1cm4gWih0aGlzKS5vdmVyZmxvd30semkuaXNBZnRlcj1mdW5jdGlvbiBENihDZSxYZSl7dmFyIG10PV9lKENlKT9DZTppbChDZSk7cmV0dXJuISghdGhp'@; put 'cy5pc1ZhbGlkKCl8fCFtdC5pc1ZhbGlkKCkpJiYoIm1pbGxpc2Vjb25kIj09PShYZT1fdChYZSl8fCJtaWxsaXNlY29uZCIpP3RoaXMudmFsdWVPZigpPm10LnZhbHVlT2YoKTptdC52YWx1ZU9mKCk8dGhpcy5jbG9uZSgpLnN0YXJ0T2YoWGUpLnZhbHVlT2YoKSl9LHppLmlzQmVmb3JlPWZ1'@; put 'bmN0aW9uIGx2KENlLFhlKXt2YXIgbXQ9X2UoQ2UpP0NlOmlsKENlKTtyZXR1cm4hKCF0aGlzLmlzVmFsaWQoKXx8IW10LmlzVmFsaWQoKSkmJigibWlsbGlzZWNvbmQiPT09KFhlPV90KFhlKXx8Im1pbGxpc2Vjb25kIik/dGhpcy52YWx1ZU9mKCk8bXQudmFsdWVPZigpOnRoaXMuY2xvbmUo'@; put 'KS5lbmRPZihYZSkudmFsdWVPZigpPG10LnZhbHVlT2YoKSl9LHppLmlzQmV0d2Vlbj1mdW5jdGlvbiBJNihDZSxYZSxtdCxSdCl7dmFyIHVuPV9lKENlKT9DZTppbChDZSksUW49X2UoWGUpP1hlOmlsKFhlKTtyZXR1cm4hISh0aGlzLmlzVmFsaWQoKSYmdW4uaXNWYWxpZCgpJiZRbi5pc1Zh'@; put 'bGlkKCkpJiYoIigiPT09KFJ0PVJ0fHwiKCkiKVswXT90aGlzLmlzQWZ0ZXIodW4sbXQpOiF0aGlzLmlzQmVmb3JlKHVuLG10KSkmJigiKSI9PT1SdFsxXT90aGlzLmlzQmVmb3JlKFFuLG10KTohdGhpcy5pc0FmdGVyKFFuLG10KSl9LHppLmlzU2FtZT1mdW5jdGlvbiB2NChDZSxYZSl7dmFy'@; put 'IFJ0LG10PV9lKENlKT9DZTppbChDZSk7cmV0dXJuISghdGhpcy5pc1ZhbGlkKCl8fCFtdC5pc1ZhbGlkKCkpJiYoIm1pbGxpc2Vjb25kIj09PShYZT1fdChYZSl8fCJtaWxsaXNlY29uZCIpP3RoaXMudmFsdWVPZigpPT09bXQudmFsdWVPZigpOihSdD1tdC52YWx1ZU9mKCksdGhpcy5jbG9u'@; put 'ZSgpLnN0YXJ0T2YoWGUpLnZhbHVlT2YoKTw9UnQmJlJ0PD10aGlzLmNsb25lKCkuZW5kT2YoWGUpLnZhbHVlT2YoKSkpfSx6aS5pc1NhbWVPckFmdGVyPWZ1bmN0aW9uIHQwKENlLFhlKXtyZXR1cm4gdGhpcy5pc1NhbWUoQ2UsWGUpfHx0aGlzLmlzQWZ0ZXIoQ2UsWGUpfSx6aS5pc1NhbWVP'@; put 'ckJlZm9yZT1mdW5jdGlvbiB6dyhDZSxYZSl7cmV0dXJuIHRoaXMuaXNTYW1lKENlLFhlKXx8dGhpcy5pc0JlZm9yZShDZSxYZSl9LHppLmlzVmFsaWQ9ZnVuY3Rpb24gTWYoKXtyZXR1cm4gUSh0aGlzKX0semkubGFuZz1Ocix6aS5sb2NhbGU9WGEsemkubG9jYWxlRGF0YT1TZix6aS5tYXg9'@; put 'TncsemkubWluPVIzLHppLnBhcnNpbmdGbGFncz1mdW5jdGlvbiBHdygpe3JldHVybiBZKHt9LFoodGhpcykpfSx6aS5zZXQ9ZnVuY3Rpb24gSWEoQ2UsWGUpe2lmKCJvYmplY3QiPT10eXBlb2YgQ2Upe3ZhciBSdCxtdD1mdW5jdGlvbiBvbihDZSl7dmFyIG10LFhlPVtdO2ZvcihtdCBpbiBD'@; put 'ZSlGKENlLG10KSYmWGUucHVzaCh7dW5pdDptdCxwcmlvcml0eTpKZVttdF19KTtyZXR1cm4gWGUuc29ydChmdW5jdGlvbihSdCx1bil7cmV0dXJuIFJ0LnByaW9yaXR5LXVuLnByaW9yaXR5fSksWGV9KENlPW50KENlKSksdW49bXQubGVuZ3RoO2ZvcihSdD0wO1J0PHVuO1J0KyspdGhpc1tt'@; put 'dFtSdF0udW5pdF0oQ2VbbXRbUnRdLnVuaXRdKX1lbHNlIGlmKGcodGhpc1tDZT1fdChDZSldKSlyZXR1cm4gdGhpc1tDZV0oWGUpO3JldHVybiB0aGlzfSx6aS5zdGFydE9mPWZ1bmN0aW9uIHFjKENlKXt2YXIgWGUsbXQ7aWYodm9pZCAwPT09KENlPV90KENlKSl8fCJtaWxsaXNlY29uZCI9'@; put 'PT1DZXx8IXRoaXMuaXNWYWxpZCgpKXJldHVybiB0aGlzO3N3aXRjaChtdD10aGlzLl9pc1VUQz9TYzpCcyxDZSl7Y2FzZSJ5ZWFyIjpYZT1tdCh0aGlzLnllYXIoKSwwLDEpO2JyZWFrO2Nhc2UicXVhcnRlciI6WGU9bXQodGhpcy55ZWFyKCksdGhpcy5tb250aCgpLXRoaXMubW9udGgoKSUz'@; put 'LDEpO2JyZWFrO2Nhc2UibW9udGgiOlhlPW10KHRoaXMueWVhcigpLHRoaXMubW9udGgoKSwxKTticmVhaztjYXNlIndlZWsiOlhlPW10KHRoaXMueWVhcigpLHRoaXMubW9udGgoKSx0aGlzLmRhdGUoKS10aGlzLndlZWtkYXkoKSk7YnJlYWs7Y2FzZSJpc29XZWVrIjpYZT1tdCh0aGlzLnll'@; put 'YXIoKSx0aGlzLm1vbnRoKCksdGhpcy5kYXRlKCktKHRoaXMuaXNvV2Vla2RheSgpLTEpKTticmVhaztjYXNlImRheSI6Y2FzZSJkYXRlIjpYZT1tdCh0aGlzLnllYXIoKSx0aGlzLm1vbnRoKCksdGhpcy5kYXRlKCkpO2JyZWFrO2Nhc2UiaG91ciI6WGU9dGhpcy5fZC52YWx1ZU9mKCksWGUt'@; put 'PWFsKFhlKyh0aGlzLl9pc1VUQz8wOnRoaXMudXRjT2Zmc2V0KCkqQWkpLGI0KTticmVhaztjYXNlIm1pbnV0ZSI6WGU9dGhpcy5fZC52YWx1ZU9mKCksWGUtPWFsKFhlLEFpKTticmVhaztjYXNlInNlY29uZCI6WGU9dGhpcy5fZC52YWx1ZU9mKCksWGUtPWFsKFhlLDFlMyl9cmV0dXJuIHRo'@; put 'aXMuX2Quc2V0VGltZShYZSksXy51cGRhdGVPZmZzZXQodGhpcywhMCksdGhpc30semkuc3VidHJhY3Q9bzUsemkudG9BcnJheT1mdW5jdGlvbiBkNSgpe3ZhciBDZT10aGlzO3JldHVybltDZS55ZWFyKCksQ2UubW9udGgoKSxDZS5kYXRlKCksQ2UuaG91cigpLENlLm1pbnV0ZSgpLENlLnNl'@; put 'Y29uZCgpLENlLm1pbGxpc2Vjb25kKCldfSx6aS50b09iamVjdD1mdW5jdGlvbiBmdigpe3ZhciBDZT10aGlzO3JldHVybnt5ZWFyczpDZS55ZWFyKCksbW9udGhzOkNlLm1vbnRoKCksZGF0ZTpDZS5kYXRlKCksaG91cnM6Q2UuaG91cnMoKSxtaW51dGVzOkNlLm1pbnV0ZXMoKSxzZWNvbmRz'@; put 'OkNlLnNlY29uZHMoKSxtaWxsaXNlY29uZHM6Q2UubWlsbGlzZWNvbmRzKCl9fSx6aS50b0RhdGU9ZnVuY3Rpb24gRDAoKXtyZXR1cm4gbmV3IERhdGUodGhpcy52YWx1ZU9mKCkpfSx6aS50b0lTT1N0cmluZz1mdW5jdGlvbiBjdihDZSl7aWYoIXRoaXMuaXNWYWxpZCgpKXJldHVybiBudWxs'@; put 'O3ZhciBYZT0hMCE9PUNlLG10PVhlP3RoaXMuY2xvbmUoKS51dGMoKTp0aGlzO3JldHVybiBtdC55ZWFyKCk8MHx8bXQueWVhcigpPjk5OTk/UWUobXQsWGU/IllZWVlZWS1NTS1ERFtUXUhIOm1tOnNzLlNTU1taXSI6IllZWVlZWS1NTS1ERFtUXUhIOm1tOnNzLlNTU1oiKTpnKERhdGUucHJv'@; put 'dG90eXBlLnRvSVNPU3RyaW5nKT9YZT90aGlzLnRvRGF0ZSgpLnRvSVNPU3RyaW5nKCk6bmV3IERhdGUodGhpcy52YWx1ZU9mKCkrNjAqdGhpcy51dGNPZmZzZXQoKSoxZTMpLnRvSVNPU3RyaW5nKCkucmVwbGFjZSgiWiIsUWUobXQsIloiKSk6UWUobXQsWGU/IllZWVktTU0tRERbVF1ISDpt'@; put 'bTpzcy5TU1NbWl0iOiJZWVlZLU1NLUREW1RdSEg6bW06c3MuU1NTWiIpfSx6aS5pbnNwZWN0PWZ1bmN0aW9uIHV2KCl7aWYoIXRoaXMuaXNWYWxpZCgpKXJldHVybiJtb21lbnQuaW52YWxpZCgvKiAiK3RoaXMuX2krIiAqLykiO3ZhciBtdCxSdCxDZT0ibW9tZW50IixYZT0iIjtyZXR1cm4g'@; put 'dGhpcy5pc0xvY2FsKCl8fChDZT0wPT09dGhpcy51dGNPZmZzZXQoKT8ibW9tZW50LnV0YyI6Im1vbWVudC5wYXJzZVpvbmUiLFhlPSJaIiksbXQ9IlsiK0NlKycoIl0nLFJ0PTA8PXRoaXMueWVhcigpJiZ0aGlzLnllYXIoKTw9OTk5OT8iWVlZWSI6IllZWVlZWSIsdGhpcy5mb3JtYXQobXQr'@; put 'UnQrIi1NTS1ERFtUXUhIOm1tOnNzLlNTUyIrWGUrJ1siKV0nKX0sdHlwZW9mIFN5bWJvbDwidSImJm51bGwhPVN5bWJvbC5mb3ImJih6aVtTeW1ib2wuZm9yKCJub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbSIpXT1mdW5jdGlvbigpe3JldHVybiJNb21lbnQ8Iit0aGlzLmZvcm1hdCgpKyI+'@; put 'In0pLHppLnRvSlNPTj1mdW5jdGlvbiBZdygpe3JldHVybiB0aGlzLmlzVmFsaWQoKT90aGlzLnRvSVNPU3RyaW5nKCk6bnVsbH0semkudG9TdHJpbmc9ZnVuY3Rpb24geTQoKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmxvY2FsZSgiZW4iKS5mb3JtYXQoImRkZCBNTU0gREQgWVlZWSBISDptbTpz'@; put 'cyBbR01UXVpaIil9LHppLnVuaXg9ZnVuY3Rpb24gUjYoKXtyZXR1cm4gTWF0aC5mbG9vcih0aGlzLnZhbHVlT2YoKS8xZTMpfSx6aS52YWx1ZU9mPWZ1bmN0aW9uIFJ1KCl7cmV0dXJuIHRoaXMuX2QudmFsdWVPZigpLTZlNCoodGhpcy5fb2Zmc2V0fHwwKX0semkuY3JlYXRpb25EYXRhPWZ1'@; put 'bmN0aW9uIHB2KCl7cmV0dXJue2lucHV0OnRoaXMuX2ksZm9ybWF0OnRoaXMuX2YsbG9jYWxlOnRoaXMuX2xvY2FsZSxpc1VUQzp0aGlzLl9pc1VUQyxzdHJpY3Q6dGhpcy5fc3RyaWN0fX0semkuZXJhTmFtZT1mdW5jdGlvbiAkdygpe3ZhciBDZSxYZSxtdCxSdD10aGlzLmxvY2FsZURhdGEo'@; put 'KS5lcmFzKCk7Zm9yKENlPTAsWGU9UnQubGVuZ3RoO0NlPFhlOysrQ2UpaWYobXQ9dGhpcy5jbG9uZSgpLnN0YXJ0T2YoImRheSIpLnZhbHVlT2YoKSxSdFtDZV0uc2luY2U8PW10JiZtdDw9UnRbQ2VdLnVudGlsfHxSdFtDZV0udW50aWw8PW10JiZtdDw9UnRbQ2VdLnNpbmNlKXJldHVybiBS'@; put 'dFtDZV0ubmFtZTtyZXR1cm4iIn0semkuZXJhTmFycm93PWZ1bmN0aW9uIE82KCl7dmFyIENlLFhlLG10LFJ0PXRoaXMubG9jYWxlRGF0YSgpLmVyYXMoKTtmb3IoQ2U9MCxYZT1SdC5sZW5ndGg7Q2U8WGU7KytDZSlpZihtdD10aGlzLmNsb25lKCkuc3RhcnRPZigiZGF5IikudmFsdWVPZigp'@; put 'LFJ0W0NlXS5zaW5jZTw9bXQmJm10PD1SdFtDZV0udW50aWx8fFJ0W0NlXS51bnRpbDw9bXQmJm10PD1SdFtDZV0uc2luY2UpcmV0dXJuIFJ0W0NlXS5uYXJyb3c7cmV0dXJuIiJ9LHppLmVyYUFiYnI9ZnVuY3Rpb24gZ3YoKXt2YXIgQ2UsWGUsbXQsUnQ9dGhpcy5sb2NhbGVEYXRhKCkuZXJh'@; put 'cygpO2ZvcihDZT0wLFhlPVJ0Lmxlbmd0aDtDZTxYZTsrK0NlKWlmKG10PXRoaXMuY2xvbmUoKS5zdGFydE9mKCJkYXkiKS52YWx1ZU9mKCksUnRbQ2VdLnNpbmNlPD1tdCYmbXQ8PVJ0W0NlXS51bnRpbHx8UnRbQ2VdLnVudGlsPD1tdCYmbXQ8PVJ0W0NlXS5zaW5jZSlyZXR1cm4gUnRbQ2Vd'@; put 'LmFiYnI7cmV0dXJuIiJ9LHppLmVyYVllYXI9ZnVuY3Rpb24gbXYoKXt2YXIgQ2UsWGUsbXQsUnQsdW49dGhpcy5sb2NhbGVEYXRhKCkuZXJhcygpO2ZvcihDZT0wLFhlPXVuLmxlbmd0aDtDZTxYZTsrK0NlKWlmKG10PXVuW0NlXS5zaW5jZTw9dW5bQ2VdLnVudGlsPzE6LTEsUnQ9dGhpcy5j'@; put 'bG9uZSgpLnN0YXJ0T2YoImRheSIpLnZhbHVlT2YoKSx1bltDZV0uc2luY2U8PVJ0JiZSdDw9dW5bQ2VdLnVudGlsfHx1bltDZV0udW50aWw8PVJ0JiZSdDw9dW5bQ2VdLnNpbmNlKXJldHVybih0aGlzLnllYXIoKS1fKHVuW0NlXS5zaW5jZSkueWVhcigpKSptdCt1bltDZV0ub2Zmc2V0O3Jl'@; put 'dHVybiB0aGlzLnllYXIoKX0semkueWVhcj1Hbix6aS5pc0xlYXBZZWFyPWZ1bmN0aW9uIEtpKCl7cmV0dXJuIGFuKHRoaXMueWVhcigpKX0semkud2Vla1llYXI9ZnVuY3Rpb24gaDUoQ2Upe3JldHVybiBidi5jYWxsKHRoaXMsQ2UsdGhpcy53ZWVrKCksdGhpcy53ZWVrZGF5KCkrdGhpcy5s'@; put 'b2NhbGVEYXRhKCkuX3dlZWsuZG93LHRoaXMubG9jYWxlRGF0YSgpLl93ZWVrLmRvdyx0aGlzLmxvY2FsZURhdGEoKS5fd2Vlay5kb3kpfSx6aS5pc29XZWVrWWVhcj1mdW5jdGlvbiB2dihDZSl7cmV0dXJuIGJ2LmNhbGwodGhpcyxDZSx0aGlzLmlzb1dlZWsoKSx0aGlzLmlzb1dlZWtkYXko'@; put 'KSwxLDQpfSx6aS5xdWFydGVyPXppLnF1YXJ0ZXJzPWZ1bmN0aW9uIGY1KENlKXtyZXR1cm4gbnVsbD09Q2U/TWF0aC5jZWlsKCh0aGlzLm1vbnRoKCkrMSkvMyk6dGhpcy5tb250aCgzKihDZS0xKSt0aGlzLm1vbnRoKCklMyl9LHppLm1vbnRoPUljLHppLmRheXNJbk1vbnRoPWZ1bmN0aW9u'@; put 'IEEwKCl7cmV0dXJuIGZhKHRoaXMueWVhcigpLHRoaXMubW9udGgoKSl9LHppLndlZWs9emkud2Vla3M9ZnVuY3Rpb24gR2koQ2Upe3ZhciBYZT10aGlzLmxvY2FsZURhdGEoKS53ZWVrKHRoaXMpO3JldHVybiBudWxsPT1DZT9YZTp0aGlzLmFkZCg3KihDZS1YZSksImQiKX0semkuaXNvV2Vl'@; put 'az16aS5pc29XZWVrcz1mdW5jdGlvbiB2bChDZSl7dmFyIFhlPUR1KHRoaXMsMSw0KS53ZWVrO3JldHVybiBudWxsPT1DZT9YZTp0aGlzLmFkZCg3KihDZS1YZSksImQiKX0semkud2Vla3NJblllYXI9ZnVuY3Rpb24gVjMoKXt2YXIgQ2U9dGhpcy5sb2NhbGVEYXRhKCkuX3dlZWs7cmV0dXJu'@; put 'IEhyKHRoaXMueWVhcigpLENlLmRvdyxDZS5kb3kpfSx6aS53ZWVrc0luV2Vla1llYXI9ZnVuY3Rpb24gWHcoKXt2YXIgQ2U9dGhpcy5sb2NhbGVEYXRhKCkuX3dlZWs7cmV0dXJuIEhyKHRoaXMud2Vla1llYXIoKSxDZS5kb3csQ2UuZG95KX0semkuaXNvV2Vla3NJblllYXI9ZnVuY3Rpb24g'@; put 'TjYoKXtyZXR1cm4gSHIodGhpcy55ZWFyKCksMSw0KX0semkuaXNvV2Vla3NJbklTT1dlZWtZZWFyPWZ1bmN0aW9uIHl2KCl7cmV0dXJuIEhyKHRoaXMuaXNvV2Vla1llYXIoKSwxLDQpfSx6aS5kYXRlPUswLHppLmRheT16aS5kYXlzPWZ1bmN0aW9uIEJhKENlKXtpZighdGhpcy5pc1ZhbGlk'@; put 'KCkpcmV0dXJuIG51bGwhPUNlP3RoaXM6TmFOO3ZhciBYZT1Rcih0aGlzLCJEYXkiKTtyZXR1cm4gbnVsbCE9Q2U/KENlPWZ1bmN0aW9uIFhjKENlLFhlKXtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIENlP0NlOmlzTmFOKENlKT8ibnVtYmVyIj09dHlwZW9mKENlPVhlLndlZWtkYXlzUGFyc2Uo'@; put 'Q2UpKT9DZTpudWxsOnBhcnNlSW50KENlLDEwKX0oQ2UsdGhpcy5sb2NhbGVEYXRhKCkpLHRoaXMuYWRkKENlLVhlLCJkIikpOlhlfSx6aS53ZWVrZGF5PWZ1bmN0aW9uIEkzKENlKXtpZighdGhpcy5pc1ZhbGlkKCkpcmV0dXJuIG51bGwhPUNlP3RoaXM6TmFOO3ZhciBYZT0odGhpcy5kYXko'@; put 'KSs3LXRoaXMubG9jYWxlRGF0YSgpLl93ZWVrLmRvdyklNztyZXR1cm4gbnVsbD09Q2U/WGU6dGhpcy5hZGQoQ2UtWGUsImQiKX0semkuaXNvV2Vla2RheT1mdW5jdGlvbiBYaChDZSl7aWYoIXRoaXMuaXNWYWxpZCgpKXJldHVybiBudWxsIT1DZT90aGlzOk5hTjtpZihudWxsIT1DZSl7dmFy'@; put 'IFhlPWZ1bmN0aW9uIFFnKENlLFhlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIENlP1hlLndlZWtkYXlzUGFyc2UoQ2UpJTd8fDc6aXNOYU4oQ2UpP251bGw6Q2V9KENlLHRoaXMubG9jYWxlRGF0YSgpKTtyZXR1cm4gdGhpcy5kYXkodGhpcy5kYXkoKSU3P1hlOlhlLTcpfXJldHVybiB0aGlz'@; put 'LmRheSgpfHw3fSx6aS5kYXlPZlllYXI9ZnVuY3Rpb24gX3YoQ2Upe3ZhciBYZT1NYXRoLnJvdW5kKCh0aGlzLmNsb25lKCkuc3RhcnRPZigiZGF5IiktdGhpcy5jbG9uZSgpLnN0YXJ0T2YoInllYXIiKSkvODY0ZTUpKzE7cmV0dXJuIG51bGw9PUNlP1hlOnRoaXMuYWRkKENlLVhlLCJkIil9'@; put 'LHppLmhvdXI9emkuaG91cnM9Tm8semkubWludXRlPXppLm1pbnV0ZXM9RWYsemkuc2Vjb25kPXppLnNlY29uZHM9VGYsemkubWlsbGlzZWNvbmQ9emkubWlsbGlzZWNvbmRzPVY2LHppLnV0Y09mZnNldD1mdW5jdGlvbiBfZihDZSxYZSxtdCl7dmFyIHVuLFJ0PXRoaXMuX29mZnNldHx8MDtp'@; put 'ZighdGhpcy5pc1ZhbGlkKCkpcmV0dXJuIG51bGwhPUNlP3RoaXM6TmFOO2lmKG51bGwhPUNlKXtpZigic3RyaW5nIj09dHlwZW9mIENlKXtpZihudWxsPT09KENlPXVkKElpLENlKSkpcmV0dXJuIHRoaXN9ZWxzZSBNYXRoLmFicyhDZSk8MTYmJiFtdCYmKENlKj02MCk7cmV0dXJuIXRoaXMu'@; put 'X2lzVVRDJiZYZSYmKHVuPWh1KHRoaXMpKSx0aGlzLl9vZmZzZXQ9Q2UsdGhpcy5faXNVVEM9ITAsbnVsbCE9dW4mJnRoaXMuYWRkKHVuLCJtIiksUnQhPT1DZSYmKCFYZXx8dGhpcy5fY2hhbmdlSW5Qcm9ncmVzcz9PMyh0aGlzLFhsKENlLVJ0LCJtIiksMSwhMSk6dGhpcy5fY2hhbmdlSW5Q'@; put 'cm9ncmVzc3x8KHRoaXMuX2NoYW5nZUluUHJvZ3Jlc3M9ITAsXy51cGRhdGVPZmZzZXQodGhpcywhMCksdGhpcy5fY2hhbmdlSW5Qcm9ncmVzcz1udWxsKSksdGhpc31yZXR1cm4gdGhpcy5faXNVVEM/UnQ6aHUodGhpcyl9LHppLnV0Yz1mdW5jdGlvbiBMMyhDZSl7cmV0dXJuIHRoaXMudXRj'@; put 'T2Zmc2V0KDAsQ2UpfSx6aS5sb2NhbD1mdW5jdGlvbiBSbChDZSl7cmV0dXJuIHRoaXMuX2lzVVRDJiYodGhpcy51dGNPZmZzZXQoMCxDZSksdGhpcy5faXNVVEM9ITEsQ2UmJnRoaXMuc3VidHJhY3QoaHUodGhpcyksIm0iKSksdGhpc30semkucGFyc2Vab25lPWZ1bmN0aW9uIEl1KCl7aWYo'@; put 'bnVsbCE9dGhpcy5fdHptKXRoaXMudXRjT2Zmc2V0KHRoaXMuX3R6bSwhMSwhMCk7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIHRoaXMuX2kpe3ZhciBDZT11ZChzbix0aGlzLl9pKTtudWxsIT1DZT90aGlzLnV0Y09mZnNldChDZSk6dGhpcy51dGNPZmZzZXQoMCwhMCl9cmV0dXJuIHRoaXN9'@; put 'LHppLmhhc0FsaWduZWRIb3VyT2Zmc2V0PWZ1bmN0aW9uIHQyKENlKXtyZXR1cm4hIXRoaXMuaXNWYWxpZCgpJiYoQ2U9Q2U/aWwoQ2UpLnV0Y09mZnNldCgpOjAsKHRoaXMudXRjT2Zmc2V0KCktQ2UpJTYwPT0wKX0semkuaXNEU1Q9ZnVuY3Rpb24gd2YoKXtyZXR1cm4gdGhpcy51dGNPZmZz'@; put 'ZXQoKT50aGlzLmNsb25lKCkubW9udGgoMCkudXRjT2Zmc2V0KCl8fHRoaXMudXRjT2Zmc2V0KCk+dGhpcy5jbG9uZSgpLm1vbnRoKDUpLnV0Y09mZnNldCgpfSx6aS5pc0xvY2FsPWZ1bmN0aW9uIG92KCl7cmV0dXJuISF0aGlzLmlzVmFsaWQoKSYmIXRoaXMuX2lzVVRDfSx6aS5pc1V0Y09m'@; put 'ZnNldD1mdW5jdGlvbiBCdygpe3JldHVybiEhdGhpcy5pc1ZhbGlkKCkmJnRoaXMuX2lzVVRDfSx6aS5pc1V0Yz12MCx6aS5pc1VUQz12MCx6aS56b25lQWJicj1mdW5jdGlvbiBCNigpe3JldHVybiB0aGlzLl9pc1VUQz8iVVRDIjoiIn0semkuem9uZU5hbWU9ZnVuY3Rpb24gajYoKXtyZXR1'@; put 'cm4gdGhpcy5faXNVVEM/IkNvb3JkaW5hdGVkIFVuaXZlcnNhbCBUaW1lIjoiIn0semkuZGF0ZXM9U2UoImRhdGVzIGFjY2Vzc29yIGlzIGRlcHJlY2F0ZWQuIFVzZSBkYXRlIGluc3RlYWQuIixLMCksemkubW9udGhzPVNlKCJtb250aHMgYWNjZXNzb3IgaXMgZGVwcmVjYXRlZC4gVXNlIG1v'@; put 'bnRoIGluc3RlYWQiLEljKSx6aS55ZWFycz1TZSgieWVhcnMgYWNjZXNzb3IgaXMgZGVwcmVjYXRlZC4gVXNlIHllYXIgaW5zdGVhZCIsR24pLHppLnpvbmU9U2UoIm1vbWVudCgpLnpvbmUgaXMgZGVwcmVjYXRlZCwgdXNlIG1vbWVudCgpLnV0Y09mZnNldCBpbnN0ZWFkLiBodHRwOi8vbW9t'@; put 'ZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL3pvbmUvIixmdW5jdGlvbiBlMChDZSxYZSl7cmV0dXJuIG51bGwhPUNlPygic3RyaW5nIiE9dHlwZW9mIENlJiYoQ2U9LUNlKSx0aGlzLnV0Y09mZnNldChDZSxYZSksdGhpcyk6LXRoaXMudXRjT2Zmc2V0KCl9KSx6aS5pc0RTVFNoaWZ0ZWQ9'@; put 'U2UoImlzRFNUU2hpZnRlZCBpcyBkZXByZWNhdGVkLiBTZWUgaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9kc3Qtc2hpZnRlZC8gZm9yIG1vcmUgaW5mb3JtYXRpb24iLGZ1bmN0aW9uIFZ3KCl7aWYoIVIodGhpcy5faXNEU1RTaGlmdGVkKSlyZXR1cm4gdGhpcy5faXNE'@; put 'U1RTaGlmdGVkO3ZhciBYZSxDZT17fTtyZXR1cm4gc2UoQ2UsdGhpcyksKENlPWl2KENlKSkuX2E/KFhlPUNlLl9pc1VUQz9CKENlLl9hKTppbChDZS5fYSksdGhpcy5faXNEU1RTaGlmdGVkPXRoaXMuaXNWYWxpZCgpJiZmdW5jdGlvbiBzNShDZSxYZSxtdCl7dmFyIHJpLFJ0PU1hdGgubWlu'@; put 'KENlLmxlbmd0aCxYZS5sZW5ndGgpLHVuPU1hdGguYWJzKENlLmxlbmd0aC1YZS5sZW5ndGgpLFFuPTA7Zm9yKHJpPTA7cmk8UnQ7cmkrKykobXQmJkNlW3JpXSE9PVhlW3JpXXx8IW10JiZBdChDZVtyaV0pIT09QXQoWGVbcmldKSkmJlFuKys7cmV0dXJuIFFuK3VufShDZS5fYSxYZS50b0Fy'@; put 'cmF5KCkpPjApOnRoaXMuX2lzRFNUU2hpZnRlZD0hMSx0aGlzLl9pc0RTVFNoaWZ0ZWR9KTt2YXIgY3M9Qy5wcm90b3R5cGU7ZnVuY3Rpb24gSmMoQ2UsWGUsbXQsUnQpe3ZhciB1bj10YSgpLFFuPUIoKS5zZXQoUnQsWGUpO3JldHVybiB1blttdF0oUW4sQ2UpfWZ1bmN0aW9uIE1jKENlLFhl'@; put 'LG10KXtpZihqKENlKSYmKFhlPUNlLENlPXZvaWQgMCksQ2U9Q2V8fCIiLG51bGwhPVhlKXJldHVybiBKYyhDZSxYZSxtdCwibW9udGgiKTt2YXIgUnQsdW49W107Zm9yKFJ0PTA7UnQ8MTI7UnQrKyl1bltSdF09SmMoQ2UsUnQsbXQsIm1vbnRoIik7cmV0dXJuIHVufWZ1bmN0aW9uIG4wKENl'@; put 'LFhlLG10LFJ0KXsiYm9vbGVhbiI9PXR5cGVvZiBDZT8oaihYZSkmJihtdD1YZSxYZT12b2lkIDApLFhlPVhlfHwiIik6KG10PVhlPUNlLENlPSExLGooWGUpJiYobXQ9WGUsWGU9dm9pZCAwKSxYZT1YZXx8IiIpO3ZhciByaSx1bj10YSgpLFFuPUNlP3VuLl93ZWVrLmRvdzowLFJhPVtdO2lm'@; put 'KG51bGwhPW10KXJldHVybiBKYyhYZSwobXQrUW4pJTcsUnQsImRheSIpO2ZvcihyaT0wO3JpPDc7cmkrKylSYVtyaV09SmMoWGUsKHJpK1FuKSU3LFJ0LCJkYXkiKTtyZXR1cm4gUmF9Y3MuY2FsZW5kYXI9ZnVuY3Rpb24gVShDZSxYZSxtdCl7dmFyIFJ0PXRoaXMuX2NhbGVuZGFyW0NlXXx8'@; put 'dGhpcy5fY2FsZW5kYXIuc2FtZUVsc2U7cmV0dXJuIGcoUnQpP1J0LmNhbGwoWGUsbXQpOlJ0fSxjcy5sb25nRGF0ZUZvcm1hdD1mdW5jdGlvbiB2ZShDZSl7dmFyIFhlPXRoaXMuX2xvbmdEYXRlRm9ybWF0W0NlXSxtdD10aGlzLl9sb25nRGF0ZUZvcm1hdFtDZS50b1VwcGVyQ2FzZSgpXTty'@; put 'ZXR1cm4gWGV8fCFtdD9YZToodGhpcy5fbG9uZ0RhdGVGb3JtYXRbQ2VdPW10Lm1hdGNoKG0pLm1hcChmdW5jdGlvbihSdCl7cmV0dXJuIk1NTU0iPT09UnR8fCJNTSI9PT1SdHx8IkREIj09PVJ0fHwiZGRkZCI9PT1SdD9SdC5zbGljZSgxKTpSdH0pLmpvaW4oIiIpLHRoaXMuX2xvbmdEYXRl'@; put 'Rm9ybWF0W0NlXSl9LGNzLmludmFsaWREYXRlPWZ1bmN0aW9uIGplKCl7cmV0dXJuIHRoaXMuX2ludmFsaWREYXRlfSxjcy5vcmRpbmFsPWZ1bmN0aW9uIFJlKENlKXtyZXR1cm4gdGhpcy5fb3JkaW5hbC5yZXBsYWNlKCIlZCIsQ2UpfSxjcy5wcmVwYXJzZT13dixjcy5wb3N0Zm9ybWF0PXd2'@; put 'LGNzLnJlbGF0aXZlVGltZT1mdW5jdGlvbiBIZShDZSxYZSxtdCxSdCl7dmFyIHVuPXRoaXMuX3JlbGF0aXZlVGltZVttdF07cmV0dXJuIGcodW4pP3VuKENlLFhlLG10LFJ0KTp1bi5yZXBsYWNlKC8lZC9pLENlKX0sY3MucGFzdEZ1dHVyZT1mdW5jdGlvbiBEZShDZSxYZSl7dmFyIG10PXRo'@; put 'aXMuX3JlbGF0aXZlVGltZVtDZT4wPyJmdXR1cmUiOiJwYXN0Il07cmV0dXJuIGcobXQpP210KFhlKTptdC5yZXBsYWNlKC8lcy9pLFhlKX0sY3Muc2V0PWZ1bmN0aW9uIHkoQ2Upe3ZhciBYZSxtdDtmb3IobXQgaW4gQ2UpRihDZSxtdCkmJihnKFhlPUNlW210XSk/dGhpc1ttdF09WGU6dGhp'@; put 'c1siXyIrbXRdPVhlKTt0aGlzLl9jb25maWc9Q2UsdGhpcy5fZGF5T2ZNb250aE9yZGluYWxQYXJzZUxlbmllbnQ9bmV3IFJlZ0V4cCgodGhpcy5fZGF5T2ZNb250aE9yZGluYWxQYXJzZS5zb3VyY2V8fHRoaXMuX29yZGluYWxQYXJzZS5zb3VyY2UpKyJ8IisvXGR7MSwyfS8uc291cmNlKX0s'@; put 'Y3MuZXJhcz1mdW5jdGlvbiBfNChDZSxYZSl7dmFyIG10LFJ0LHVuLFFuPXRoaXMuX2VyYXN8fHRhKCJlbiIpLl9lcmFzO2ZvcihtdD0wLFJ0PVFuLmxlbmd0aDttdDxSdDsrK210KXN3aXRjaCgic3RyaW5nIj09dHlwZW9mIFFuW210XS5zaW5jZSYmKHVuPV8oUW5bbXRdLnNpbmNlKS5zdGFy'@; put 'dE9mKCJkYXkiKSxRblttdF0uc2luY2U9dW4udmFsdWVPZigpKSx0eXBlb2YgUW5bbXRdLnVudGlsKXtjYXNlInVuZGVmaW5lZCI6UW5bbXRdLnVudGlsPTEvMDticmVhaztjYXNlInN0cmluZyI6dW49XyhRblttdF0udW50aWwpLnN0YXJ0T2YoImRheSIpLnZhbHVlT2YoKSxRblttdF0udW50'@; put 'aWw9dW4udmFsdWVPZigpfXJldHVybiBRbn0sY3MuZXJhc1BhcnNlPWZ1bmN0aW9uICRBKENlLFhlLG10KXt2YXIgUnQsdW4scmksUmEsQ3MsUW49dGhpcy5lcmFzKCk7Zm9yKENlPUNlLnRvVXBwZXJDYXNlKCksUnQ9MCx1bj1Rbi5sZW5ndGg7UnQ8dW47KytSdClpZihyaT1RbltSdF0ubmFt'@; put 'ZS50b1VwcGVyQ2FzZSgpLFJhPVFuW1J0XS5hYmJyLnRvVXBwZXJDYXNlKCksQ3M9UW5bUnRdLm5hcnJvdy50b1VwcGVyQ2FzZSgpLG10KXN3aXRjaChYZSl7Y2FzZSJOIjpjYXNlIk5OIjpjYXNlIk5OTiI6aWYoUmE9PT1DZSlyZXR1cm4gUW5bUnRdO2JyZWFrO2Nhc2UiTk5OTiI6aWYocmk9'@; put 'PT1DZSlyZXR1cm4gUW5bUnRdO2JyZWFrO2Nhc2UiTk5OTk4iOmlmKENzPT09Q2UpcmV0dXJuIFFuW1J0XX1lbHNlIGlmKFtyaSxSYSxDc10uaW5kZXhPZihDZSk+PTApcmV0dXJuIFFuW1J0XX0sY3MuZXJhc0NvbnZlcnRZZWFyPWZ1bmN0aW9uIEw2KENlLFhlKXt2YXIgbXQ9Q2Uuc2luY2U8'@; put 'PUNlLnVudGlsPzE6LTE7cmV0dXJuIHZvaWQgMD09PVhlP18oQ2Uuc2luY2UpLnllYXIoKTpfKENlLnNpbmNlKS55ZWFyKCkrKFhlLUNlLm9mZnNldCkqbXR9LGNzLmVyYXNBYmJyUmVnZXg9ZnVuY3Rpb24gUDYoQ2Upe3JldHVybiBGKHRoaXMsIl9lcmFzQWJiclJlZ2V4Iil8fHFsLmNhbGwo'@; put 'dGhpcyksQ2U/dGhpcy5fZXJhc0FiYnJSZWdleDp0aGlzLl9lcmFzUmVnZXh9LGNzLmVyYXNOYW1lUmVnZXg9ZnVuY3Rpb24geGYoQ2Upe3JldHVybiBGKHRoaXMsIl9lcmFzTmFtZVJlZ2V4Iil8fHFsLmNhbGwodGhpcyksQ2U/dGhpcy5fZXJhc05hbWVSZWdleDp0aGlzLl9lcmFzUmVnZXh9'@; put 'LGNzLmVyYXNOYXJyb3dSZWdleD1mdW5jdGlvbiBGNihDZSl7cmV0dXJuIEYodGhpcywiX2VyYXNOYXJyb3dSZWdleCIpfHxxbC5jYWxsKHRoaXMpLENlP3RoaXMuX2VyYXNOYXJyb3dSZWdleDp0aGlzLl9lcmFzUmVnZXh9LGNzLm1vbnRocz1mdW5jdGlvbiBlaShDZSxYZSl7cmV0dXJuIENl'@; put 'P04odGhpcy5fbW9udGhzKT90aGlzLl9tb250aHNbQ2UubW9udGgoKV06dGhpcy5fbW9udGhzWyh0aGlzLl9tb250aHMuaXNGb3JtYXR8fF9hKS50ZXN0KFhlKT8iZm9ybWF0Ijoic3RhbmRhbG9uZSJdW0NlLm1vbnRoKCldOk4odGhpcy5fbW9udGhzKT90aGlzLl9tb250aHM6dGhpcy5fbW9u'@; put 'dGhzLnN0YW5kYWxvbmV9LGNzLm1vbnRoc1Nob3J0PWZ1bmN0aW9uIGZzKENlLFhlKXtyZXR1cm4gQ2U/Tih0aGlzLl9tb250aHNTaG9ydCk/dGhpcy5fbW9udGhzU2hvcnRbQ2UubW9udGgoKV06dGhpcy5fbW9udGhzU2hvcnRbX2EudGVzdChYZSk/ImZvcm1hdCI6InN0YW5kYWxvbmUiXVtD'@; put 'ZS5tb250aCgpXTpOKHRoaXMuX21vbnRoc1Nob3J0KT90aGlzLl9tb250aHNTaG9ydDp0aGlzLl9tb250aHNTaG9ydC5zdGFuZGFsb25lfSxjcy5tb250aHNQYXJzZT1mdW5jdGlvbiBtbChDZSxYZSxtdCl7dmFyIFJ0LHVuLFFuO2lmKHRoaXMuX21vbnRoc1BhcnNlRXhhY3QpcmV0dXJuIEhv'@; put 'LmNhbGwodGhpcyxDZSxYZSxtdCk7Zm9yKHRoaXMuX21vbnRoc1BhcnNlfHwodGhpcy5fbW9udGhzUGFyc2U9W10sdGhpcy5fbG9uZ01vbnRoc1BhcnNlPVtdLHRoaXMuX3Nob3J0TW9udGhzUGFyc2U9W10pLFJ0PTA7UnQ8MTI7UnQrKyl7aWYodW49QihbMmUzLFJ0XSksbXQmJiF0aGlzLl9s'@; put 'b25nTW9udGhzUGFyc2VbUnRdJiYodGhpcy5fbG9uZ01vbnRoc1BhcnNlW1J0XT1uZXcgUmVnRXhwKCJeIit0aGlzLm1vbnRocyh1biwiIikucmVwbGFjZSgiLiIsIiIpKyIkIiwiaSIpLHRoaXMuX3Nob3J0TW9udGhzUGFyc2VbUnRdPW5ldyBSZWdFeHAoIl4iK3RoaXMubW9udGhzU2hvcnQo'@; put 'dW4sIiIpLnJlcGxhY2UoIi4iLCIiKSsiJCIsImkiKSksIW10JiYhdGhpcy5fbW9udGhzUGFyc2VbUnRdJiYoUW49Il4iK3RoaXMubW9udGhzKHVuLCIiKSsifF4iK3RoaXMubW9udGhzU2hvcnQodW4sIiIpLHRoaXMuX21vbnRoc1BhcnNlW1J0XT1uZXcgUmVnRXhwKFFuLnJlcGxhY2UoIi4i'@; put 'LCIiKSwiaSIpKSxtdCYmIk1NTU0iPT09WGUmJnRoaXMuX2xvbmdNb250aHNQYXJzZVtSdF0udGVzdChDZSkpcmV0dXJuIFJ0O2lmKG10JiYiTU1NIj09PVhlJiZ0aGlzLl9zaG9ydE1vbnRoc1BhcnNlW1J0XS50ZXN0KENlKSlyZXR1cm4gUnQ7aWYoIW10JiZ0aGlzLl9tb250aHNQYXJzZVtS'@; put 'dF0udGVzdChDZSkpcmV0dXJuIFJ0fX0sY3MubW9udGhzUmVnZXg9ZnVuY3Rpb24gVGEoQ2Upe3JldHVybiB0aGlzLl9tb250aHNQYXJzZUV4YWN0PyhGKHRoaXMsIl9tb250aHNSZWdleCIpfHxsaS5jYWxsKHRoaXMpLENlP3RoaXMuX21vbnRoc1N0cmljdFJlZ2V4OnRoaXMuX21vbnRoc1Jl'@; put 'Z2V4KTooRih0aGlzLCJfbW9udGhzUmVnZXgiKXx8KHRoaXMuX21vbnRoc1JlZ2V4PU5hKSx0aGlzLl9tb250aHNTdHJpY3RSZWdleCYmQ2U/dGhpcy5fbW9udGhzU3RyaWN0UmVnZXg6dGhpcy5fbW9udGhzUmVnZXgpfSxjcy5tb250aHNTaG9ydFJlZ2V4PWZ1bmN0aW9uIG9yKENlKXtyZXR1'@; put 'cm4gdGhpcy5fbW9udGhzUGFyc2VFeGFjdD8oRih0aGlzLCJfbW9udGhzUmVnZXgiKXx8bGkuY2FsbCh0aGlzKSxDZT90aGlzLl9tb250aHNTaG9ydFN0cmljdFJlZ2V4OnRoaXMuX21vbnRoc1Nob3J0UmVnZXgpOihGKHRoaXMsIl9tb250aHNTaG9ydFJlZ2V4Iil8fCh0aGlzLl9tb250aHNT'@; put 'aG9ydFJlZ2V4PU9hKSx0aGlzLl9tb250aHNTaG9ydFN0cmljdFJlZ2V4JiZDZT90aGlzLl9tb250aHNTaG9ydFN0cmljdFJlZ2V4OnRoaXMuX21vbnRoc1Nob3J0UmVnZXgpfSxjcy53ZWVrPWZ1bmN0aW9uIGxkKENlKXtyZXR1cm4gRHUoQ2UsdGhpcy5fd2Vlay5kb3csdGhpcy5fd2Vlay5k'@; put 'b3kpLndlZWt9LGNzLmZpcnN0RGF5T2ZZZWFyPWZ1bmN0aW9uIHdvKCl7cmV0dXJuIHRoaXMuX3dlZWsuZG95fSxjcy5maXJzdERheU9mV2Vlaz1mdW5jdGlvbiBwZigpe3JldHVybiB0aGlzLl93ZWVrLmRvd30sY3Mud2Vla2RheXM9ZnVuY3Rpb24gdmYoQ2UsWGUpe3ZhciBtdD1OKHRoaXMu'@; put 'X3dlZWtkYXlzKT90aGlzLl93ZWVrZGF5czp0aGlzLl93ZWVrZGF5c1tDZSYmITAhPT1DZSYmdGhpcy5fd2Vla2RheXMuaXNGb3JtYXQudGVzdChYZSk/ImZvcm1hdCI6InN0YW5kYWxvbmUiXTtyZXR1cm4hMD09PUNlP20wKG10LHRoaXMuX3dlZWsuZG93KTpDZT9tdFtDZS5kYXkoKV06bXR9'@; put 'LGNzLndlZWtkYXlzTWluPWZ1bmN0aW9uIHlmKENlKXtyZXR1cm4hMD09PUNlP20wKHRoaXMuX3dlZWtkYXlzTWluLHRoaXMuX3dlZWsuZG93KTpDZT90aGlzLl93ZWVrZGF5c01pbltDZS5kYXkoKV06dGhpcy5fd2Vla2RheXNNaW59LGNzLndlZWtkYXlzU2hvcnQ9ZnVuY3Rpb24gZWgoQ2Up'@; put 'e3JldHVybiEwPT09Q2U/bTAodGhpcy5fd2Vla2RheXNTaG9ydCx0aGlzLl93ZWVrLmRvdyk6Q2U/dGhpcy5fd2Vla2RheXNTaG9ydFtDZS5kYXkoKV06dGhpcy5fd2Vla2RheXNTaG9ydH0sY3Mud2Vla2RheXNQYXJzZT1mdW5jdGlvbiBSYyhDZSxYZSxtdCl7dmFyIFJ0LHVuLFFuO2lmKHRo'@; put 'aXMuX3dlZWtkYXlzUGFyc2VFeGFjdClyZXR1cm4gS2guY2FsbCh0aGlzLENlLFhlLG10KTtmb3IodGhpcy5fd2Vla2RheXNQYXJzZXx8KHRoaXMuX3dlZWtkYXlzUGFyc2U9W10sdGhpcy5fbWluV2Vla2RheXNQYXJzZT1bXSx0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2U9W10sdGhpcy5fZnVs'@; put 'bFdlZWtkYXlzUGFyc2U9W10pLFJ0PTA7UnQ8NztSdCsrKXtpZih1bj1CKFsyZTMsMV0pLmRheShSdCksbXQmJiF0aGlzLl9mdWxsV2Vla2RheXNQYXJzZVtSdF0mJih0aGlzLl9mdWxsV2Vla2RheXNQYXJzZVtSdF09bmV3IFJlZ0V4cCgiXiIrdGhpcy53ZWVrZGF5cyh1biwiIikucmVwbGFj'@; put 'ZSgiLiIsIlxcLj8iKSsiJCIsImkiKSx0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2VbUnRdPW5ldyBSZWdFeHAoIl4iK3RoaXMud2Vla2RheXNTaG9ydCh1biwiIikucmVwbGFjZSgiLiIsIlxcLj8iKSsiJCIsImkiKSx0aGlzLl9taW5XZWVrZGF5c1BhcnNlW1J0XT1uZXcgUmVnRXhwKCJeIit0'@; put 'aGlzLndlZWtkYXlzTWluKHVuLCIiKS5yZXBsYWNlKCIuIiwiXFwuPyIpKyIkIiwiaSIpKSx0aGlzLl93ZWVrZGF5c1BhcnNlW1J0XXx8KFFuPSJeIit0aGlzLndlZWtkYXlzKHVuLCIiKSsifF4iK3RoaXMud2Vla2RheXNTaG9ydCh1biwiIikrInxeIit0aGlzLndlZWtkYXlzTWluKHVuLCIi'@; put 'KSx0aGlzLl93ZWVrZGF5c1BhcnNlW1J0XT1uZXcgUmVnRXhwKFFuLnJlcGxhY2UoIi4iLCIiKSwiaSIpKSxtdCYmImRkZGQiPT09WGUmJnRoaXMuX2Z1bGxXZWVrZGF5c1BhcnNlW1J0XS50ZXN0KENlKSlyZXR1cm4gUnQ7aWYobXQmJiJkZGQiPT09WGUmJnRoaXMuX3Nob3J0V2Vla2RheXNQ'@; put 'YXJzZVtSdF0udGVzdChDZSkpcmV0dXJuIFJ0O2lmKG10JiYiZGQiPT09WGUmJnRoaXMuX21pbldlZWtkYXlzUGFyc2VbUnRdLnRlc3QoQ2UpKXJldHVybiBSdDtpZighbXQmJnRoaXMuX3dlZWtkYXlzUGFyc2VbUnRdLnRlc3QoQ2UpKXJldHVybiBSdH19LGNzLndlZWtkYXlzUmVnZXg9ZnVu'@; put 'Y3Rpb24gcWgoQ2Upe3JldHVybiB0aGlzLl93ZWVrZGF5c1BhcnNlRXhhY3Q/KEYodGhpcywiX3dlZWtkYXlzUmVnZXgiKXx8cm4uY2FsbCh0aGlzKSxDZT90aGlzLl93ZWVrZGF5c1N0cmljdFJlZ2V4OnRoaXMuX3dlZWtkYXlzUmVnZXgpOihGKHRoaXMsIl93ZWVrZGF5c1JlZ2V4Iil8fCh0'@; put 'aGlzLl93ZWVrZGF5c1JlZ2V4PWNkKSx0aGlzLl93ZWVrZGF5c1N0cmljdFJlZ2V4JiZDZT90aGlzLl93ZWVrZGF5c1N0cmljdFJlZ2V4OnRoaXMuX3dlZWtkYXlzUmVnZXgpfSxjcy53ZWVrZGF5c1Nob3J0UmVnZXg9ZnVuY3Rpb24gSmgoQ2Upe3JldHVybiB0aGlzLl93ZWVrZGF5c1BhcnNl'@; put 'RXhhY3Q/KEYodGhpcywiX3dlZWtkYXlzUmVnZXgiKXx8cm4uY2FsbCh0aGlzKSxDZT90aGlzLl93ZWVrZGF5c1Nob3J0U3RyaWN0UmVnZXg6dGhpcy5fd2Vla2RheXNTaG9ydFJlZ2V4KTooRih0aGlzLCJfd2Vla2RheXNTaG9ydFJlZ2V4Iil8fCh0aGlzLl93ZWVrZGF5c1Nob3J0UmVnZXg9'@; put 'bWYpLHRoaXMuX3dlZWtkYXlzU2hvcnRTdHJpY3RSZWdleCYmQ2U/dGhpcy5fd2Vla2RheXNTaG9ydFN0cmljdFJlZ2V4OnRoaXMuX3dlZWtkYXlzU2hvcnRSZWdleCl9LGNzLndlZWtkYXlzTWluUmVnZXg9ZnVuY3Rpb24gQW4oQ2Upe3JldHVybiB0aGlzLl93ZWVrZGF5c1BhcnNlRXhhY3Q/'@; put 'KEYodGhpcywiX3dlZWtkYXlzUmVnZXgiKXx8cm4uY2FsbCh0aGlzKSxDZT90aGlzLl93ZWVrZGF5c01pblN0cmljdFJlZ2V4OnRoaXMuX3dlZWtkYXlzTWluUmVnZXgpOihGKHRoaXMsIl93ZWVrZGF5c01pblJlZ2V4Iil8fCh0aGlzLl93ZWVrZGF5c01pblJlZ2V4PUQxKSx0aGlzLl93ZWVr'@; put 'ZGF5c01pblN0cmljdFJlZ2V4JiZDZT90aGlzLl93ZWVrZGF5c01pblN0cmljdFJlZ2V4OnRoaXMuX3dlZWtkYXlzTWluUmVnZXgpfSxjcy5pc1BNPWZ1bmN0aW9uIHJsKENlKXtyZXR1cm4icCI9PT0oQ2UrIiIpLnRvTG93ZXJDYXNlKCkuY2hhckF0KDApfSxjcy5tZXJpZGllbT1mdW5jdGlv'@; put 'biBDbyhDZSxYZSxtdCl7cmV0dXJuIENlPjExP210PyJwbSI6IlBNIjptdD8iYW0iOiJBTSJ9LGRyKCJlbiIse2VyYXM6W3tzaW5jZToiMDAwMS0wMS0wMSIsdW50aWw6MS8wLG9mZnNldDoxLG5hbWU6IkFubm8gRG9taW5pIixuYXJyb3c6IkFEIixhYmJyOiJBRCJ9LHtzaW5jZToiMDAwMC0x'@; put 'Mi0zMSIsdW50aWw6LTEvMCxvZmZzZXQ6MSxuYW1lOiJCZWZvcmUgQ2hyaXN0IixuYXJyb3c6IkJDIixhYmJyOiJCQyJ9XSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KHRofHN0fG5kfHJkKS8sb3JkaW5hbDpmdW5jdGlvbihDZSl7dmFyIFhlPUNlJTEwO3JldHVybiBDZSsoMT09'@; put 'PUF0KENlJTEwMC8xMCk/InRoIjoxPT09WGU/InN0IjoyPT09WGU/Im5kIjozPT09WGU/InJkIjoidGgiKX19KSxfLmxhbmc9U2UoIm1vbWVudC5sYW5nIGlzIGRlcHJlY2F0ZWQuIFVzZSBtb21lbnQubG9jYWxlIGluc3RlYWQuIixkciksXy5sYW5nRGF0YT1TZSgibW9tZW50LmxhbmdEYXRh'@; put 'IGlzIGRlcHJlY2F0ZWQuIFVzZSBtb21lbnQubG9jYWxlRGF0YSBpbnN0ZWFkLiIsdGEpO3ZhciBGYz1NYXRoLmFicztmdW5jdGlvbiBRYyhDZSxYZSxtdCxSdCl7dmFyIHVuPVhsKFhlLG10KTtyZXR1cm4gQ2UuX21pbGxpc2Vjb25kcys9UnQqdW4uX21pbGxpc2Vjb25kcyxDZS5fZGF5cys9'@; put 'UnQqdW4uX2RheXMsQ2UuX21vbnRocys9UnQqdW4uX21vbnRocyxDZS5fYnViYmxlKCl9ZnVuY3Rpb24gaGMoQ2Upe3JldHVybiBDZTwwP01hdGguZmxvb3IoQ2UpOk1hdGguY2VpbChDZSl9ZnVuY3Rpb24gdnMoQ2Upe3JldHVybiA0ODAwKkNlLzE0NjA5N31mdW5jdGlvbiBBZihDZSl7cmV0'@; put 'dXJuIDE0NjA5NypDZS80ODAwfWZ1bmN0aW9uIHIwKENlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcyhDZSl9fXZhciBqbD1yMCgibXMiKSxTND1yMCgicyIpLGtmPXIwKCJtIiksaGQ9cjAoImgiKSx5MD1yMCgiZCIpLG8yPXIwKCJ3IiksbDI9cjAoIk0iKSxwNT1yMCgiUSIp'@; put 'LERmPXIwKCJ5IiksX3M9amw7ZnVuY3Rpb24gZnUoQ2Upe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzVmFsaWQoKT90aGlzLl9kYXRhW0NlXTpOYU59fXZhciBNND1mdSgibWlsbGlzZWNvbmRzIiksQjM9ZnUoInNlY29uZHMiKSxmYz1mdSgibWludXRlcyIpLGc1PWZ1KCJob3Vy'@; put 'cyIpLEx1PWZ1KCJkYXlzIiksT3U9ZnUoIm1vbnRocyIpLGV1PWZ1KCJ5ZWFycyIpO3ZhciBxMD1NYXRoLnJvdW5kLEhjPXtzczo0NCxzOjQ1LG06NDUsaDoyMixkOjI2LHc6bnVsbCxNOjExfTtmdW5jdGlvbiB4NChDZSxYZSxtdCxSdCx1bil7cmV0dXJuIHVuLnJlbGF0aXZlVGltZShYZXx8'@; put 'MSwhIW10LENlLFJ0KX12YXIgWjY9TWF0aC5hYnM7ZnVuY3Rpb24gdTIoQ2Upe3JldHVybihDZT4wKS0oQ2U8MCl8fCtDZX1mdW5jdGlvbiBXNigpe2lmKCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKTt2YXIgUnQsdW4sUW4scmksQ3MsaG8s'@; put 'UHUsZmQsQ2U9WjYodGhpcy5fbWlsbGlzZWNvbmRzKS8xZTMsWGU9WjYodGhpcy5fZGF5cyksbXQ9WjYodGhpcy5fbW9udGhzKSxSYT10aGlzLmFzU2Vjb25kcygpO3JldHVybiBSYT8oUnQ9V2UoQ2UvNjApLHVuPVdlKFJ0LzYwKSxDZSU9NjAsUnQlPTYwLFFuPVdlKG10LzEyKSxtdCU9MTIs'@; put 'cmk9Q2U/Q2UudG9GaXhlZCgzKS5yZXBsYWNlKC9cLj8wKyQvLCIiKToiIixDcz1SYTwwPyItIjoiIixobz11Mih0aGlzLl9tb250aHMpIT09dTIoUmEpPyItIjoiIixQdT11Mih0aGlzLl9kYXlzKSE9PXUyKFJhKT8iLSI6IiIsZmQ9dTIodGhpcy5fbWlsbGlzZWNvbmRzKSE9PXUyKFJhKT8i'@; put 'LSI6IiIsQ3MrIlAiKyhRbj9obytRbisiWSI6IiIpKyhtdD9obyttdCsiTSI6IiIpKyhYZT9QdStYZSsiRCI6IiIpKyh1bnx8UnR8fENlPyJUIjoiIikrKHVuP2ZkK3VuKyJIIjoiIikrKFJ0P2ZkK1J0KyJNIjoiIikrKENlP2ZkK3JpKyJTIjoiIikpOiJQMEQifXZhciBnbz1iZi5wcm90b3R5'@; put 'cGU7cmV0dXJuIGdvLmlzVmFsaWQ9ZnVuY3Rpb24gcjUoKXtyZXR1cm4gdGhpcy5faXNWYWxpZH0sZ28uYWJzPWZ1bmN0aW9uIG5jKCl7dmFyIENlPXRoaXMuX2RhdGE7cmV0dXJuIHRoaXMuX21pbGxpc2Vjb25kcz1GYyh0aGlzLl9taWxsaXNlY29uZHMpLHRoaXMuX2RheXM9RmModGhpcy5f'@; put 'ZGF5cyksdGhpcy5fbW9udGhzPUZjKHRoaXMuX21vbnRocyksQ2UubWlsbGlzZWNvbmRzPUZjKENlLm1pbGxpc2Vjb25kcyksQ2Uuc2Vjb25kcz1GYyhDZS5zZWNvbmRzKSxDZS5taW51dGVzPUZjKENlLm1pbnV0ZXMpLENlLmhvdXJzPUZjKENlLmhvdXJzKSxDZS5tb250aHM9RmMoQ2UubW9u'@; put 'dGhzKSxDZS55ZWFycz1GYyhDZS55ZWFycyksdGhpc30sZ28uYWRkPWZ1bmN0aW9uIFgwKENlLFhlKXtyZXR1cm4gUWModGhpcyxDZSxYZSwxKX0sZ28uc3VidHJhY3Q9ZnVuY3Rpb24gc2woQ2UsWGUpe3JldHVybiBRYyh0aGlzLENlLFhlLC0xKX0sZ28uYXM9ZnVuY3Rpb24gQzQoQ2Upe2lm'@; put 'KCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4gTmFOO3ZhciBYZSxtdCxSdD10aGlzLl9taWxsaXNlY29uZHM7aWYoIm1vbnRoIj09PShDZT1fdChDZSkpfHwicXVhcnRlciI9PT1DZXx8InllYXIiPT09Q2Upc3dpdGNoKFhlPXRoaXMuX2RheXMrUnQvODY0ZTUsbXQ9dGhpcy5fbW9udGhzK3ZzKFhl'@; put 'KSxDZSl7Y2FzZSJtb250aCI6cmV0dXJuIG10O2Nhc2UicXVhcnRlciI6cmV0dXJuIG10LzM7Y2FzZSJ5ZWFyIjpyZXR1cm4gbXQvMTJ9ZWxzZSBzd2l0Y2goWGU9dGhpcy5fZGF5cytNYXRoLnJvdW5kKEFmKHRoaXMuX21vbnRocykpLENlKXtjYXNlIndlZWsiOnJldHVybiBYZS83K1J0LzYw'@; put 'NDhlNTtjYXNlImRheSI6cmV0dXJuIFhlK1J0Lzg2NGU1O2Nhc2UiaG91ciI6cmV0dXJuIDI0KlhlK1J0LzM2ZTU7Y2FzZSJtaW51dGUiOnJldHVybiAxNDQwKlhlK1J0LzZlNDtjYXNlInNlY29uZCI6cmV0dXJuIDg2NDAwKlhlK1J0LzFlMztjYXNlIm1pbGxpc2Vjb25kIjpyZXR1cm4gTWF0'@; put 'aC5mbG9vcig4NjRlNSpYZSkrUnQ7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gdW5pdCAiK0NlKX19LGdvLmFzTWlsbGlzZWNvbmRzPWpsLGdvLmFzU2Vjb25kcz1TNCxnby5hc01pbnV0ZXM9a2YsZ28uYXNIb3Vycz1oZCxnby5hc0RheXM9eTAsZ28uYXNXZWVrcz1vMixnby5h'@; put 'c01vbnRocz1sMixnby5hc1F1YXJ0ZXJzPXA1LGdvLmFzWWVhcnM9RGYsZ28udmFsdWVPZj1fcyxnby5fYnViYmxlPWZ1bmN0aW9uIE8xKCl7dmFyIHVuLFFuLHJpLFJhLENzLENlPXRoaXMuX21pbGxpc2Vjb25kcyxYZT10aGlzLl9kYXlzLG10PXRoaXMuX21vbnRocyxSdD10aGlzLl9kYXRh'@; put 'O3JldHVybiBDZT49MCYmWGU+PTAmJm10Pj0wfHxDZTw9MCYmWGU8PTAmJm10PD0wfHwoQ2UrPTg2NGU1KmhjKEFmKG10KStYZSksWGU9MCxtdD0wKSxSdC5taWxsaXNlY29uZHM9Q2UlMWUzLHVuPVdlKENlLzFlMyksUnQuc2Vjb25kcz11biU2MCxRbj1XZSh1bi82MCksUnQubWludXRlcz1R'@; put 'biU2MCxyaT1XZShRbi82MCksUnQuaG91cnM9cmklMjQsWGUrPVdlKHJpLzI0KSxtdCs9Q3M9V2UodnMoWGUpKSxYZS09aGMoQWYoQ3MpKSxSYT1XZShtdC8xMiksbXQlPTEyLFJ0LmRheXM9WGUsUnQubW9udGhzPW10LFJ0LnllYXJzPVJhLHRoaXN9LGdvLmNsb25lPWZ1bmN0aW9uIHo2KCl7'@; put 'cmV0dXJuIFhsKHRoaXMpfSxnby5nZXQ9ZnVuY3Rpb24gYzIoQ2Upe3JldHVybiBDZT1fdChDZSksdGhpcy5pc1ZhbGlkKCk/dGhpc1tDZSsicyJdKCk6TmFOfSxnby5taWxsaXNlY29uZHM9TTQsZ28uc2Vjb25kcz1CMyxnby5taW51dGVzPWZjLGdvLmhvdXJzPWc1LGdvLmRheXM9THUsZ28u'@; put 'd2Vla3M9ZnVuY3Rpb24gSWYoKXtyZXR1cm4gV2UodGhpcy5kYXlzKCkvNyl9LGdvLm1vbnRocz1PdSxnby55ZWFycz1ldSxnby5odW1hbml6ZT1mdW5jdGlvbiBDdihDZSxYZSl7aWYoIXRoaXMuaXNWYWxpZCgpKXJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5pbnZhbGlkRGF0ZSgpO3ZhciB1'@; put 'bixRbixtdD0hMSxSdD1IYztyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIENlJiYoWGU9Q2UsQ2U9ITEpLCJib29sZWFuIj09dHlwZW9mIENlJiYobXQ9Q2UpLCJvYmplY3QiPT10eXBlb2YgWGUmJihSdD1PYmplY3QuYXNzaWduKHt9LEhjLFhlKSxudWxsIT1YZS5zJiZudWxsPT1YZS5zcyYmKFJ0'@; put 'LnNzPVhlLnMtMSkpLFFuPWZ1bmN0aW9uIFF3KENlLFhlLG10LFJ0KXt2YXIgdW49WGwoQ2UpLmFicygpLFFuPXEwKHVuLmFzKCJzIikpLHJpPXEwKHVuLmFzKCJtIikpLFJhPXEwKHVuLmFzKCJoIikpLENzPXEwKHVuLmFzKCJkIikpLGhvPXEwKHVuLmFzKCJNIikpLFB1PXEwKHVuLmFzKCJ3'@; put 'IikpLGZkPXEwKHVuLmFzKCJ5IikpLGQyPVFuPD1tdC5zcyYmWyJzIixRbl18fFFuPG10LnMmJlsic3MiLFFuXXx8cmk8PTEmJlsibSJdfHxyaTxtdC5tJiZbIm1tIixyaV18fFJhPD0xJiZbImgiXXx8UmE8bXQuaCYmWyJoaCIsUmFdfHxDczw9MSYmWyJkIl18fENzPG10LmQmJlsiZGQiLENz'@; put 'XTtyZXR1cm4gbnVsbCE9bXQudyYmKGQyPWQyfHxQdTw9MSYmWyJ3Il18fFB1PG10LncmJlsid3ciLFB1XSksKGQyPWQyfHxobzw9MSYmWyJNIl18fGhvPG10Lk0mJlsiTU0iLGhvXXx8ZmQ8PTEmJlsieSJdfHxbInl5IixmZF0pWzJdPVhlLGQyWzNdPStDZT4wLGQyWzRdPVJ0LHg0LmFwcGx5'@; put 'KG51bGwsZDIpfSh0aGlzLCFtdCxSdCx1bj10aGlzLmxvY2FsZURhdGEoKSksbXQmJihRbj11bi5wYXN0RnV0dXJlKCt0aGlzLFFuKSksdW4ucG9zdGZvcm1hdChRbil9LGdvLnRvSVNPU3RyaW5nPVc2LGdvLnRvU3RyaW5nPVc2LGdvLnRvSlNPTj1XNixnby5sb2NhbGU9WGEsZ28ubG9jYWxl'@; put 'RGF0YT1TZixnby50b0lzb1N0cmluZz1TZSgidG9Jc29TdHJpbmcoKSBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIHRvSVNPU3RyaW5nKCkgaW5zdGVhZCAobm90aWNlIHRoZSBjYXBpdGFscykiLFc2KSxnby5sYW5nPU5yLGxlKCJYIiwwLDAsInVuaXgiKSxsZSgieCIsMCwwLCJ2YWx1ZU9m'@; put 'IiksTG4oIngiLGVuKSxMbigiWCIsL1srLV0/XGQrKFwuXGR7MSwzfSk/LyksaHQoIlgiLGZ1bmN0aW9uKENlLFhlLG10KXttdC5fZD1uZXcgRGF0ZSgxZTMqcGFyc2VGbG9hdChDZSkpfSksaHQoIngiLGZ1bmN0aW9uKENlLFhlLG10KXttdC5fZD1uZXcgRGF0ZShBdChDZSkpfSksXy52ZXJz'@; put 'aW9uPSIyLjMwLjEiLGZ1bmN0aW9uIHAoQ2Upe0Q9Q2V9KGlsKSxfLmZuPXppLF8ubWluPWZ1bmN0aW9uIEkxKCl7cmV0dXJuIG5oKCJpc0JlZm9yZSIsW10uc2xpY2UuY2FsbChhcmd1bWVudHMsMCkpfSxfLm1heD1mdW5jdGlvbiBDcigpe3JldHVybiBuaCgiaXNBZnRlciIsW10uc2xpY2Uu'@; put 'Y2FsbChhcmd1bWVudHMsMCkpfSxfLm5vdz1mdW5jdGlvbigpe3JldHVybiBEYXRlLm5vdz9EYXRlLm5vdygpOituZXcgRGF0ZX0sXy51dGM9QixfLnVuaXg9ZnVuY3Rpb24gczIoQ2Upe3JldHVybiBpbCgxZTMqQ2UpfSxfLm1vbnRocz1mdW5jdGlvbiB3NChDZSxYZSl7cmV0dXJuIE1jKENl'@; put 'LFhlLCJtb250aHMiKX0sXy5pc0RhdGU9UCxfLmxvY2FsZT1kcixfLmludmFsaWQ9cSxfLmR1cmF0aW9uPVhsLF8uaXNNb21lbnQ9X2UsXy53ZWVrZGF5cz1mdW5jdGlvbiBYaShDZSxYZSxtdCl7cmV0dXJuIG4wKENlLFhlLG10LCJ3ZWVrZGF5cyIpfSxfLnBhcnNlWm9uZT1mdW5jdGlvbiBK'@; put 'dygpe3JldHVybiBpbC5hcHBseShudWxsLGFyZ3VtZW50cykucGFyc2Vab25lKCl9LF8ubG9jYWxlRGF0YT10YSxfLmlzRHVyYXRpb249YTUsXy5tb250aHNTaG9ydD1mdW5jdGlvbiBCbChDZSxYZSl7cmV0dXJuIE1jKENlLFhlLCJtb250aHNTaG9ydCIpfSxfLndlZWtkYXlzTWluPWZ1bmN0'@; put 'aW9uIGRjKENlLFhlLG10KXtyZXR1cm4gbjAoQ2UsWGUsbXQsIndlZWtkYXlzTWluIil9LF8uZGVmaW5lTG9jYWxlPXZpLF8udXBkYXRlTG9jYWxlPWZ1bmN0aW9uIFZyKENlLFhlKXtpZihudWxsIT1YZSl7dmFyIG10LFJ0LHVuPU5sO251bGwhPU5zW0NlXSYmbnVsbCE9TnNbQ2VdLnBhcmVu'@; put 'dExvY2FsZT9Oc1tDZV0uc2V0KHgoTnNbQ2VdLl9jb25maWcsWGUpKToobnVsbCE9KFJ0PXZuKENlKSkmJih1bj1SdC5fY29uZmlnKSxYZT14KHVuLFhlKSxudWxsPT1SdCYmKFhlLmFiYnI9Q2UpLChtdD1uZXcgQyhYZSkpLnBhcmVudExvY2FsZT1Oc1tDZV0sTnNbQ2VdPW10KSxkcihDZSl9'@; put 'ZWxzZSBudWxsIT1Oc1tDZV0mJihudWxsIT1Oc1tDZV0ucGFyZW50TG9jYWxlPyhOc1tDZV09TnNbQ2VdLnBhcmVudExvY2FsZSxDZT09PWRyKCkmJmRyKENlKSk6bnVsbCE9TnNbQ2VdJiZkZWxldGUgTnNbQ2VdKTtyZXR1cm4gTnNbQ2VdfSxfLmxvY2FsZXM9ZnVuY3Rpb24gYWEoKXtyZXR1'@; put 'cm4gVChOcyl9LF8ud2Vla2RheXNTaG9ydD1mdW5jdGlvbiBXYShDZSxYZSxtdCl7cmV0dXJuIG4wKENlLFhlLG10LCJ3ZWVrZGF5c1Nob3J0Iil9LF8ubm9ybWFsaXplVW5pdHM9X3QsXy5yZWxhdGl2ZVRpbWVSb3VuZGluZz1mdW5jdGlvbiBlQyhDZSl7cmV0dXJuIHZvaWQgMD09PUNlP3Ew'@; put 'OiJmdW5jdGlvbiI9PXR5cGVvZiBDZSYmKHEwPUNlLCEwKX0sXy5yZWxhdGl2ZVRpbWVUaHJlc2hvbGQ9ZnVuY3Rpb24gVTYoQ2UsWGUpe3JldHVybiB2b2lkIDAhPT1IY1tDZV0mJih2b2lkIDA9PT1YZT9IY1tDZV06KEhjW0NlXT1YZSwicyI9PT1DZSYmKEhjLnNzPVhlLTEpLCEwKSl9LF8u'@; put 'Y2FsZW5kYXJGb3JtYXQ9ZnVuY3Rpb24gbDUoQ2UsWGUpe3ZhciBtdD1DZS5kaWZmKFhlLCJkYXlzIiwhMCk7cmV0dXJuIG10PC02PyJzYW1lRWxzZSI6bXQ8LTE/Imxhc3RXZWVrIjptdDwwPyJsYXN0RGF5IjptdDwxPyJzYW1lRGF5IjptdDwyPyJuZXh0RGF5IjptdDw3PyJuZXh0V2VlayI6'@; put 'InNhbWVFbHNlIn0sXy5wcm90b3R5cGU9emksXy5IVE1MNV9GTVQ9e0RBVEVUSU1FX0xPQ0FMOiJZWVlZLU1NLUREVEhIOm1tIixEQVRFVElNRV9MT0NBTF9TRUNPTkRTOiJZWVlZLU1NLUREVEhIOm1tOnNzIixEQVRFVElNRV9MT0NBTF9NUzoiWVlZWS1NTS1ERFRISDptbTpzcy5TU1MiLERB'@; put 'VEU6IllZWVktTU0tREQiLFRJTUU6IkhIOm1tIixUSU1FX1NFQ09ORFM6IkhIOm1tOnNzIixUSU1FX01TOiJISDptbTpzcy5TU1MiLFdFRUs6IkdHR0ctW1ddV1ciLE1PTlRIOiJZWVlZLU1NIn0sX30oKX0sNzgzNzU6ZnVuY3Rpb24oY2Upe2NlLmV4cG9ydHM9ZnVuY3Rpb24oKXsidXNlIHN0'@; put 'cmljdCI7dHlwZW9mIGdsb2JhbFRoaXM8InUifHx0eXBlb2Ygd2luZG93PCJ1Inx8dHlwZW9mIGdsb2JhbDwidSImJmdsb2JhbDt2YXIgYj17fSxEPXtleHBvcnRzOnt9fTtELmV4cG9ydHM9ZnVuY3Rpb24gbGkoTnQpe3JldHVybiBOdCYmTnQuX19lc01vZHVsZSYmT2JqZWN0LnByb3RvdHlw'@; put 'ZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE50LCJkZWZhdWx0Iik/TnQuZGVmYXVsdDpOdH0oe2xhbmd1YWdlVGFnOiJiZyIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIgIixkZWNpbWFsOiIsIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6Ilx1MDQxOCIsbWlsbGlvbjoiXHUwNDEwIixiaWxsaW9u'@; put 'OiJNIix0cmlsbGlvbjoiVCJ9LG9yZGluYWw6KCk9PiIuIixjdXJyZW5jeTp7c3ltYm9sOiJcdTA0M2JcdTA0MzIuIixjb2RlOiJCR04ifX0pO3ZhciBfPUQuZXhwb3J0cyxwPXtleHBvcnRzOnt9fTtwLmV4cG9ydHM9ZnVuY3Rpb24gbGkoTnQpe3JldHVybiBOdCYmTnQuX19lc01vZHVsZSYm'@; put 'T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE50LCJkZWZhdWx0Iik/TnQuZGVmYXVsdDpOdH0oe2xhbmd1YWdlVGFnOiJjcy1DWiIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiJceGEwIixkZWNpbWFsOiIsIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6InRpcy4iLG1pbGxp'@; put 'b246Im1pbC4iLGJpbGxpb246Im1sZC4iLHRyaWxsaW9uOiJiaWwuIn0sb3JkaW5hbDpmdW5jdGlvbigpe3JldHVybiIuIn0sc3BhY2VTZXBhcmF0ZWQ6ITAsY3VycmVuY3k6e3N5bWJvbDoiS1x1MDEwZCIscG9zaXRpb246InBvc3RmaXgiLGNvZGU6IkNaSyJ9LGN1cnJlbmN5Rm9ybWF0Ont0'@; put 'aG91c2FuZFNlcGFyYXRlZDohMCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLHNwYWNlU2VwYXJhdGVkQ3VycmVuY3k6ITAsc3BhY2VTZXBhcmF0ZWRBYmJyZXZpYXRpb246ITAsYXZlcmFnZTohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFy'@; put 'YXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixtYW50aXNzYToyLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7bWFudGlzc2E6Mix0aG91c2FuZFNlcGFy'@; put 'YXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYTowfX19KTt2YXIgTj1wLmV4cG9ydHMsdz17ZXhwb3J0czp7fX07IWZ1bmN0aW9uKG9yLFRhKXtvci5leHBvcnRzPWZ1bmN0'@; put 'aW9uIGxpKE50KXtyZXR1cm4gTnQmJk50Ll9fZXNNb2R1bGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChOdCwiZGVmYXVsdCIpP050LmRlZmF1bHQ6TnR9KHtsYW5ndWFnZVRhZzoiZGEtREsiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiLiIsZGVjaW1hbDoiLCJ9LGFi'@; put 'YnJldmlhdGlvbnM6e3Rob3VzYW5kOiJ0IixtaWxsaW9uOiJtaW8iLGJpbGxpb246Im1pYSIsdHJpbGxpb246ImIifSxvcmRpbmFsOmZ1bmN0aW9uKCl7cmV0dXJuIi4ifSxjdXJyZW5jeTp7c3ltYm9sOiJrciIscG9zaXRpb246InBvc3RmaXgiLGNvZGU6IkRLSyJ9LGN1cnJlbmN5Rm9ybWF0'@; put 'Ont0aG91c2FuZFNlcGFyYXRlZDohMCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLHNwYWNlU2VwYXJhdGVkQ3VycmVuY3k6ITAsYXZlcmFnZTohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0'@; put 'aFR3b0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixtYW50aXNzYToyLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7bWFudGlzc2E6Mix0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxz'@; put 'OntvdXRwdXQ6ImN1cnJlbmN5IixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYTowfX19KX0odyk7dmFyIEY9dy5leHBvcnRzLEg9e2V4cG9ydHM6e319OyFmdW5jdGlvbihvcixUYSl7b3IuZXhwb3J0cz1mdW5jdGlvbiBsaShOdCl7cmV0dXJuIE50JiZO'@; put 'dC5fX2VzTW9kdWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTnQsImRlZmF1bHQiKT9OdC5kZWZhdWx0Ok50fSh7bGFuZ3VhZ2VUYWc6ImRlLUFUIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiAiLGRlY2ltYWw6IiwifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoi'@; put 'ayIsbWlsbGlvbjoibSIsYmlsbGlvbjoiYiIsdHJpbGxpb246InQifSxvcmRpbmFsOmZ1bmN0aW9uKCl7cmV0dXJuIi4ifSxjdXJyZW5jeTp7c3ltYm9sOiJcdTIwYWMiLGNvZGU6IkVVUiJ9fSl9KEgpO3ZhciBSPUguZXhwb3J0cyxqPXtleHBvcnRzOnt9fTshZnVuY3Rpb24ob3IsVGEpe29y'@; put 'LmV4cG9ydHM9ZnVuY3Rpb24gbGkoTnQpe3JldHVybiBOdCYmTnQuX19lc01vZHVsZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE50LCJkZWZhdWx0Iik/TnQuZGVmYXVsdDpOdH0oe2xhbmd1YWdlVGFnOiJkZS1DSCIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiJcdTIw'@; put 'MTkiLGRlY2ltYWw6Ii4ifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiayIsbWlsbGlvbjoibSIsYmlsbGlvbjoiYiIsdHJpbGxpb246InQifSxvcmRpbmFsOmZ1bmN0aW9uKCl7cmV0dXJuIi4ifSxjdXJyZW5jeTp7c3ltYm9sOiJDSEYiLHBvc2l0aW9uOiJwb3N0Zml4Iixjb2RlOiJDSEYi'@; put 'fSxjdXJyZW5jeUZvcm1hdDp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmb3JtYXRzOntmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1h'@; put 'bHM6e291dHB1dDoiY3VycmVuY3kiLG1hbnRpc3NhOjIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoi'@; put 'Y3VycmVuY3kiLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjB9fX0pfShqKTt2YXIgUD1qLmV4cG9ydHMsTD17ZXhwb3J0czp7fX07IWZ1bmN0aW9uKG9yLFRhKXtvci5leHBvcnRzPWZ1bmN0aW9uIGxpKE50KXtyZXR1cm4gTnQmJk50Ll9fZXNNb2R1'@; put 'bGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChOdCwiZGVmYXVsdCIpP050LmRlZmF1bHQ6TnR9KHtsYW5ndWFnZVRhZzoiZGUtREUiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiLiIsZGVjaW1hbDoiLCJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJrIixtaWxsaW9u'@; put 'OiJNaSIsYmlsbGlvbjoiTWEiLHRyaWxsaW9uOiJCaSJ9LG9yZGluYWw6ZnVuY3Rpb24oKXtyZXR1cm4iLiJ9LHNwYWNlU2VwYXJhdGVkOiEwLGN1cnJlbmN5OntzeW1ib2w6Ilx1MjBhYyIscG9zaXRpb246InBvc3RmaXgiLGNvZGU6IkVVUiJ9LGN1cnJlbmN5Rm9ybWF0Ont0b3RhbExlbmd0'@; put 'aDo0LHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmb3JtYXRzOntmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLG1hbnRpc3NhOjIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNh'@; put 'bmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3Nh'@; put 'OjB9fX0pfShMKTt2YXIgWT1MLmV4cG9ydHMsQj17ZXhwb3J0czp7fX07IWZ1bmN0aW9uKG9yLFRhKXtvci5leHBvcnRzPWZ1bmN0aW9uIGxpKE50KXtyZXR1cm4gTnQmJk50Ll9fZXNNb2R1bGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChOdCwiZGVmYXVsdCIpP050'@; put 'LmRlZmF1bHQ6TnR9KHtsYW5ndWFnZVRhZzoiZGUtTEkiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiJyIsZGVjaW1hbDoiLiJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJrIixtaWxsaW9uOiJtIixiaWxsaW9uOiJiIix0cmlsbGlvbjoidCJ9LG9yZGluYWw6ZnVuY3Rpb24oKXtyZXR1cm4i'@; put 'LiJ9LGN1cnJlbmN5OntzeW1ib2w6IkNIRiIscG9zaXRpb246InBvc3RmaXgiLGNvZGU6IkNIRiJ9LGN1cnJlbmN5Rm9ybWF0Ont0aG91c2FuZFNlcGFyYXRlZDohMCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLHNwYWNlU2VwYXJhdGVkQ3VycmVuY3k6ITAsYXZlcmFnZTohMH0s'@; put 'Zm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixtYW50aXNzYToyLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aFR3'@; put 'b0RlY2ltYWxzTm9DdXJyZW5jeTp7bWFudGlzc2E6Mix0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYTowfX19KX0oQik7dmFyIFc9Qi5leHBvcnRz'@; put 'LFo9e2V4cG9ydHM6e319OyFmdW5jdGlvbihvcixUYSl7b3IuZXhwb3J0cz1mdW5jdGlvbiBsaShOdCl7cmV0dXJuIE50JiZOdC5fX2VzTW9kdWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTnQsImRlZmF1bHQiKT9OdC5kZWZhdWx0Ok50fSh7bGFuZ3VhZ2VUYWc6'@; put 'ImVsIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6Ii4iLGRlY2ltYWw6IiwifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiXHUwM2M3IixtaWxsaW9uOiJcdTAzYjUiLGJpbGxpb246Ilx1MDNiNCIsdHJpbGxpb246Ilx1MDNjNCJ9LG9yZGluYWw6ZnVuY3Rpb24oKXtyZXR1cm4iLiJ9LGN1cnJl'@; put 'bmN5OntzeW1ib2w6Ilx1MjBhYyIsY29kZToiRVVSIn19KX0oWik7dmFyIFg9Wi5leHBvcnRzLFE9e2V4cG9ydHM6e319OyFmdW5jdGlvbihvcixUYSl7b3IuZXhwb3J0cz1mdW5jdGlvbiBsaShOdCl7cmV0dXJuIE50JiZOdC5fX2VzTW9kdWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blBy'@; put 'b3BlcnR5LmNhbGwoTnQsImRlZmF1bHQiKT9OdC5kZWZhdWx0Ok50fSh7bGFuZ3VhZ2VUYWc6ImVuLUFVIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiwiLGRlY2ltYWw6Ii4ifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiayIsbWlsbGlvbjoibSIsYmlsbGlvbjoiYiIsdHJpbGxpb246InQi'@; put 'fSxvcmRpbmFsOk50PT57bGV0IFhyPU50JTEwO3JldHVybiAxPT1+fihOdCUxMDAvMTApPyJ0aCI6MT09PVhyPyJzdCI6Mj09PVhyPyJuZCI6Mz09PVhyPyJyZCI6InRoIn0sY3VycmVuY3k6e3N5bWJvbDoiJCIscG9zaXRpb246InByZWZpeCIsY29kZToiQVVEIn0sY3VycmVuY3lGb3JtYXQ6'@; put 'e3Rob3VzYW5kU2VwYXJhdGVkOiEwLHRvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsc3BhY2VTZXBhcmF0ZWRDdXJyZW5jeTohMCxhdmVyYWdlOiEwfSxmb3JtYXRzOntmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRo'@; put 'VHdvRGVjaW1hbHM6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjJ9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLHRob3VzYW5kU2VwYXJhdGVk'@; put 'OiEwLG1hbnRpc3NhOjB9fX0pfShRKTt2YXIgcT1RLmV4cG9ydHMsdGU9e2V4cG9ydHM6e319OyFmdW5jdGlvbihvcixUYSl7b3IuZXhwb3J0cz1mdW5jdGlvbiBsaShOdCl7cmV0dXJuIE50JiZOdC5fX2VzTW9kdWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTnQs'@; put 'ImRlZmF1bHQiKT9OdC5kZWZhdWx0Ok50fSh7bGFuZ3VhZ2VUYWc6ImVuLUdCIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiwiLGRlY2ltYWw6Ii4ifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiayIsbWlsbGlvbjoibSIsYmlsbGlvbjoiYiIsdHJpbGxpb246InQifSxvcmRpbmFsOk50PT57'@; put 'bGV0IFhyPU50JTEwO3JldHVybiAxPT1+fihOdCUxMDAvMTApPyJ0aCI6MT09PVhyPyJzdCI6Mj09PVhyPyJuZCI6Mz09PVhyPyJyZCI6InRoIn0sY3VycmVuY3k6e3N5bWJvbDoiXHhhMyIscG9zaXRpb246InByZWZpeCIsY29kZToiR0JQIn0sY3VycmVuY3lGb3JtYXQ6e3Rob3VzYW5kU2Vw'@; put 'YXJhdGVkOiEwLHRvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITEsc3BhY2VTZXBhcmF0ZWRDdXJyZW5jeTohMSxhdmVyYWdlOiEwfSxmb3JtYXRzOntmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiExLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6'@; put 'e291dHB1dDoiY3VycmVuY3kiLHRob3VzYW5kU2VwYXJhdGVkOiEwLHNwYWNlU2VwYXJhdGVkOiExLG1hbnRpc3NhOjJ9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3Vy'@; put 'cmVuY3kiLHRob3VzYW5kU2VwYXJhdGVkOiEwLHNwYWNlU2VwYXJhdGVkOiExLG1hbnRpc3NhOjB9fX0pfSh0ZSk7dmFyIGllPXRlLmV4cG9ydHMsc2U9e2V4cG9ydHM6e319OyFmdW5jdGlvbihvcixUYSl7b3IuZXhwb3J0cz1mdW5jdGlvbiBsaShOdCl7cmV0dXJuIE50JiZOdC5fX2VzTW9k'@; put 'dWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTnQsImRlZmF1bHQiKT9OdC5kZWZhdWx0Ok50fSh7bGFuZ3VhZ2VUYWc6ImVuLUlFIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiwiLGRlY2ltYWw6Ii4ifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiayIsbWlsbGlv'@; put 'bjoibSIsYmlsbGlvbjoiYiIsdHJpbGxpb246InQifSxvcmRpbmFsOk50PT57bGV0IFhyPU50JTEwO3JldHVybiAxPT1+fihOdCUxMDAvMTApPyJ0aCI6MT09PVhyPyJzdCI6Mj09PVhyPyJuZCI6Mz09PVhyPyJyZCI6InRoIn0sY3VycmVuY3k6e3N5bWJvbDoiXHUyMGFjIixwb3NpdGlvbjoi'@; put 'cHJlZml4Iixjb2RlOiJFVVIifX0pfShzZSk7dmFyIGdlPXNlLmV4cG9ydHMsX2U9e2V4cG9ydHM6e319OyFmdW5jdGlvbihvcixUYSl7b3IuZXhwb3J0cz1mdW5jdGlvbiBsaShOdCl7cmV0dXJuIE50JiZOdC5fX2VzTW9kdWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNh'@; put 'bGwoTnQsImRlZmF1bHQiKT9OdC5kZWZhdWx0Ok50fSh7bGFuZ3VhZ2VUYWc6ImVuLU5aIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiwiLGRlY2ltYWw6Ii4ifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiayIsbWlsbGlvbjoibSIsYmlsbGlvbjoiYiIsdHJpbGxpb246InQifSxvcmRpbmFs'@; put 'Ok50PT57bGV0IFhyPU50JTEwO3JldHVybiAxPT1+fihOdCUxMDAvMTApPyJ0aCI6MT09PVhyPyJzdCI6Mj09PVhyPyJuZCI6Mz09PVhyPyJyZCI6InRoIn0sY3VycmVuY3k6e3N5bWJvbDoiJCIscG9zaXRpb246InByZWZpeCIsY29kZToiTlpEIn0sY3VycmVuY3lGb3JtYXQ6e3Rob3VzYW5k'@; put 'U2VwYXJhdGVkOiEwLHRvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsc3BhY2VTZXBhcmF0ZWRDdXJyZW5jeTohMCxhdmVyYWdlOiEwfSxmb3JtYXRzOntmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1h'@; put 'bHM6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjJ9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRp'@; put 'c3NhOjB9fX0pfShfZSk7dmFyIFRlPV9lLmV4cG9ydHMsU2U9e2V4cG9ydHM6e319OyFmdW5jdGlvbihvcixUYSl7b3IuZXhwb3J0cz1mdW5jdGlvbiBsaShOdCl7cmV0dXJuIE50JiZOdC5fX2VzTW9kdWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTnQsImRlZmF1'@; put 'bHQiKT9OdC5kZWZhdWx0Ok50fSh7bGFuZ3VhZ2VUYWc6ImVuLVpBIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiAiLGRlY2ltYWw6IiwifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiayIsbWlsbGlvbjoibSIsYmlsbGlvbjoiYiIsdHJpbGxpb246InQifSxvcmRpbmFsOk50PT57bGV0IFhy'@; put 'PU50JTEwO3JldHVybiAxPT1+fihOdCUxMDAvMTApPyJ0aCI6MT09PVhyPyJzdCI6Mj09PVhyPyJuZCI6Mz09PVhyPyJyZCI6InRoIn0sY3VycmVuY3k6e3N5bWJvbDoiUiIscG9zaXRpb246InByZWZpeCIsY29kZToiWkFSIn0sY3VycmVuY3lGb3JtYXQ6e3Rob3VzYW5kU2VwYXJhdGVkOiEw'@; put 'LHRvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsc3BhY2VTZXBhcmF0ZWRDdXJyZW5jeTohMCxhdmVyYWdlOiEwfSxmb3JtYXRzOntmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e3Rob3VzYW5k'@; put 'U2VwYXJhdGVkOiEwLG1hbnRpc3NhOjJ9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjB9fX0pfShT'@; put 'ZSk7dmFyIHplPVNlLmV4cG9ydHMsej17ZXhwb3J0czp7fX07IWZ1bmN0aW9uKG9yLFRhKXtvci5leHBvcnRzPWZ1bmN0aW9uIGxpKE50KXtyZXR1cm4gTnQmJk50Ll9fZXNNb2R1bGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChOdCwiZGVmYXVsdCIpP050LmRlZmF1'@; put 'bHQ6TnR9KHtsYW5ndWFnZVRhZzoiZXMtQVIiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiLiIsZGVjaW1hbDoiLCJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJrIixtaWxsaW9uOiJtbSIsYmlsbGlvbjoiYiIsdHJpbGxpb246InQifSxvcmRpbmFsOk50PT57bGV0IFhyPU50JTEwO3JldHVy'@; put 'biAxPT09WHJ8fDM9PT1Ycj8iZXIiOjI9PT1Ycj8iZG8iOjc9PT1Ycnx8MD09PVhyPyJtbyI6OD09PVhyPyJ2byI6OT09PVhyPyJubyI6InRvIn0sY3VycmVuY3k6e3N5bWJvbDoiJCIscG9zaXRpb246InBvc3RmaXgiLGNvZGU6IkFSUyJ9LGN1cnJlbmN5Rm9ybWF0Ont0aG91c2FuZFNlcGFy'@; put 'YXRlZDohMCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLHNwYWNlU2VwYXJhdGVkQ3VycmVuY3k6ITAsYXZlcmFnZTohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzOntv'@; put 'dXRwdXQ6ImN1cnJlbmN5IixtYW50aXNzYToyLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7bWFudGlzc2E6Mix0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJl'@; put 'bmN5IixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYTowfX19KX0oeik7dmFyIGc9ei5leHBvcnRzLHk9e2V4cG9ydHM6e319OyFmdW5jdGlvbihvcixUYSl7b3IuZXhwb3J0cz1mdW5jdGlvbiBsaShOdCl7cmV0dXJuIE50JiZOdC5fX2VzTW9kdWxlJiZP'@; put 'YmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTnQsImRlZmF1bHQiKT9OdC5kZWZhdWx0Ok50fSh7bGFuZ3VhZ2VUYWc6ImVzLUNMIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6Ii4iLGRlY2ltYWw6IiwifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiayIsbWlsbGlvbjoibW0i'@; put 'LGJpbGxpb246ImIiLHRyaWxsaW9uOiJ0In0sb3JkaW5hbDpOdD0+e2xldCBYcj1OdCUxMDtyZXR1cm4gMT09PVhyfHwzPT09WHI/ImVyIjoyPT09WHI/ImRvIjo3PT09WHJ8fDA9PT1Ycj8ibW8iOjg9PT1Ycj8idm8iOjk9PT1Ycj8ibm8iOiJ0byJ9LGN1cnJlbmN5OntzeW1ib2w6IiQiLHBv'@; put 'c2l0aW9uOiJwcmVmaXgiLGNvZGU6IkNMUCJ9LGN1cnJlbmN5Rm9ybWF0OntvdXRwdXQ6ImN1cnJlbmN5Iix0aG91c2FuZFNlcGFyYXRlZDohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0aFR3b0RlY2lt'@; put 'YWxzOntvdXRwdXQ6ImN1cnJlbmN5IixtYW50aXNzYToyLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7bWFudGlzc2E6Mix0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxzOntvdXRwdXQ6'@; put 'ImN1cnJlbmN5IixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYTowfX19KX0oeSk7dmFyIHg9eS5leHBvcnRzLEM9e2V4cG9ydHM6e319OyFmdW5jdGlvbihvcixUYSl7b3IuZXhwb3J0cz1mdW5jdGlvbiBsaShOdCl7cmV0dXJuIE50JiZOdC5fX2VzTW9k'@; put 'dWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTnQsImRlZmF1bHQiKT9OdC5kZWZhdWx0Ok50fSh7bGFuZ3VhZ2VUYWc6ImVzLUNPIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6Ii4iLGRlY2ltYWw6IiwifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiayIsbWlsbGlv'@; put 'bjoibW0iLGJpbGxpb246ImIiLHRyaWxsaW9uOiJ0In0sb3JkaW5hbDpOdD0+e2xldCBYcj1OdCUxMDtyZXR1cm4gMT09PVhyfHwzPT09WHI/ImVyIjoyPT09WHI/ImRvIjo3PT09WHJ8fDA9PT1Ycj8ibW8iOjg9PT1Ycj8idm8iOjk9PT1Ycj8ibm8iOiJ0byJ9LGN1cnJlbmN5OntzeW1ib2w6'@; put 'Ilx1MjBhYyIscG9zaXRpb246InBvc3RmaXgiLGNvZGU6IkVVUiJ9LGN1cnJlbmN5Rm9ybWF0Ont0aG91c2FuZFNlcGFyYXRlZDohMCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZvcm1hdHM6e2ZvdXJEaWdpdHM6e3RvdGFsTGVuZ3RoOjQsc3BhY2VTZXBh'@; put 'cmF0ZWQ6ITAsYXZlcmFnZTohMH0sZnVsbFdpdGhUd29EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsbWFudGlzc2E6MixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhUd29EZWNpbWFsc05vQ3VycmVuY3k6e21hbnRpc3NhOjIsdGhvdXNhbmRTZXBh'@; put 'cmF0ZWQ6ITB9LGZ1bGxXaXRoTm9EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFudGlzc2E6MH19fSl9KEMpO3ZhciBUPUMuZXhwb3J0cyxWPXtleHBvcnRzOnt9fTshZnVuY3Rpb24ob3IsVGEpe29yLmV4cG9ydHM9'@; put 'ZnVuY3Rpb24gbGkoTnQpe3JldHVybiBOdCYmTnQuX19lc01vZHVsZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE50LCJkZWZhdWx0Iik/TnQuZGVmYXVsdDpOdH0oe2xhbmd1YWdlVGFnOiJlcy1DUiIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIgIixkZWNpbWFsOiIs'@; put 'In0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6ImsiLG1pbGxpb246Im1tIixiaWxsaW9uOiJiIix0cmlsbGlvbjoidCJ9LG9yZGluYWw6TnQ9PntsZXQgWHI9TnQlMTA7cmV0dXJuIDE9PT1Ycnx8Mz09PVhyPyJlciI6Mj09PVhyPyJkbyI6Nz09PVhyfHwwPT09WHI/Im1vIjo4PT09WHI/InZv'@; put 'Ijo5PT09WHI/Im5vIjoidG8ifSxjdXJyZW5jeTp7c3ltYm9sOiJcdTIwYTEiLHBvc2l0aW9uOiJwb3N0Zml4Iixjb2RlOiJDUkMifSxjdXJyZW5jeUZvcm1hdDp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxzcGFjZVNlcGFyYXRlZEN1cnJl'@; put 'bmN5OiEwLGF2ZXJhZ2U6ITB9LGZvcm1hdHM6e2ZvdXJEaWdpdHM6e3RvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZnVsbFdpdGhUd29EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsbWFudGlzc2E6MixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFy'@; put 'YXRlZDohMH0sZnVsbFdpdGhUd29EZWNpbWFsc05vQ3VycmVuY3k6e21hbnRpc3NhOjIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoTm9EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFudGlzc2E6MH19fSl9'@; put 'KFYpO3ZhciBVPVYuZXhwb3J0cyxFPXtleHBvcnRzOnt9fTshZnVuY3Rpb24ob3IsVGEpe29yLmV4cG9ydHM9ZnVuY3Rpb24gbGkoTnQpe3JldHVybiBOdCYmTnQuX19lc01vZHVsZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE50LCJkZWZhdWx0Iik/TnQuZGVmYXVs'@; put 'dDpOdH0oe2xhbmd1YWdlVGFnOiJlcy1FUyIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIuIixkZWNpbWFsOiIsIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6ImsiLG1pbGxpb246Im1tIixiaWxsaW9uOiJiIix0cmlsbGlvbjoidCJ9LG9yZGluYWw6TnQ9PntsZXQgWHI9TnQlMTA7cmV0dXJu'@; put 'IDE9PT1Ycnx8Mz09PVhyPyJlciI6Mj09PVhyPyJkbyI6Nz09PVhyfHwwPT09WHI/Im1vIjo4PT09WHI/InZvIjo5PT09WHI/Im5vIjoidG8ifSxjdXJyZW5jeTp7c3ltYm9sOiJcdTIwYWMiLHBvc2l0aW9uOiJwb3N0Zml4Iixjb2RlOiJFVVIifSxjdXJyZW5jeUZvcm1hdDp7dGhvdXNhbmRT'@; put 'ZXBhcmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxzcGFjZVNlcGFyYXRlZEN1cnJlbmN5OiEwLGF2ZXJhZ2U6ITB9LGZvcm1hdHM6e2ZvdXJEaWdpdHM6e3RvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZnVsbFdpdGhUd29EZWNpbWFs'@; put 'czp7b3V0cHV0OiJjdXJyZW5jeSIsbWFudGlzc2E6MixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhUd29EZWNpbWFsc05vQ3VycmVuY3k6e21hbnRpc3NhOjIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoTm9EZWNpbWFsczp7b3V0cHV0OiJj'@; put 'dXJyZW5jeSIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFudGlzc2E6MH19fSl9KEUpO3ZhciBtPUUuZXhwb3J0cyxBPXtleHBvcnRzOnt9fTshZnVuY3Rpb24ob3IsVGEpe29yLmV4cG9ydHM9ZnVuY3Rpb24gbGkoTnQpe3JldHVybiBOdCYmTnQuX19lc01vZHVs'@; put 'ZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE50LCJkZWZhdWx0Iik/TnQuZGVmYXVsdDpOdH0oe2xhbmd1YWdlVGFnOiJlcy1NWCIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIsIixkZWNpbWFsOiIuIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6ImsiLG1pbGxpb246'@; put 'Im1tIixiaWxsaW9uOiJiIix0cmlsbGlvbjoidCJ9LG9yZGluYWw6ZnVuY3Rpb24oTnQpe2xldCBYcj1OdCUxMDtyZXR1cm4gMT09PVhyfHwzPT09WHI/ImVyIjoyPT09WHI/ImRvIjo3PT09WHJ8fDA9PT1Ycj8ibW8iOjg9PT1Ycj8idm8iOjk9PT1Ycj8ibm8iOiJ0byJ9LGN1cnJlbmN5Ontz'@; put 'eW1ib2w6IiQiLHBvc2l0aW9uOiJwb3N0Zml4Iixjb2RlOiJNWE4ifSxjdXJyZW5jeUZvcm1hdDp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmb3JtYXRzOntmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2Vw'@; put 'YXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLG1hbnRpc3NhOjIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2Vw'@; put 'YXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjB9fX0pfShBKTt2YXIgYWU9QS5leHBvcnRzLG5lPXtleHBvcnRzOnt9fTshZnVuY3Rpb24ob3IsVGEpe29yLmV4cG9y'@; put 'dHM9ZnVuY3Rpb24gbGkoTnQpe3JldHVybiBOdCYmTnQuX19lc01vZHVsZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE50LCJkZWZhdWx0Iik/TnQuZGVmYXVsdDpOdH0oe2xhbmd1YWdlVGFnOiJlcy1OSSIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIsIixkZWNpbWFs'@; put 'OiIuIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6ImsiLG1pbGxpb246Im1tIixiaWxsaW9uOiJiIix0cmlsbGlvbjoidCJ9LG9yZGluYWw6TnQ9PntsZXQgWHI9TnQlMTA7cmV0dXJuIDE9PT1Ycnx8Mz09PVhyPyJlciI6Mj09PVhyPyJkbyI6Nz09PVhyfHwwPT09WHI/Im1vIjo4PT09WHI/'@; put 'InZvIjo5PT09WHI/Im5vIjoidG8ifSxjdXJyZW5jeTp7c3ltYm9sOiJDJCIscG9zaXRpb246InByZWZpeCIsY29kZToiTklPIn0sY3VycmVuY3lGb3JtYXQ6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLHRvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsc3BhY2VTZXBhcmF0ZWRDdXJyZW5j'@; put 'eTohMCxhdmVyYWdlOiEwfSxmb3JtYXRzOntmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLG1hbnRpc3NhOjIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0'@; put 'ZWQ6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjB9fX0pfShu'@; put 'ZSk7dmFyIGxlPW5lLmV4cG9ydHMsd2U9e2V4cG9ydHM6e319OyFmdW5jdGlvbihvcixUYSl7b3IuZXhwb3J0cz1mdW5jdGlvbiBsaShOdCl7cmV0dXJuIE50JiZOdC5fX2VzTW9kdWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTnQsImRlZmF1bHQiKT9OdC5kZWZh'@; put 'dWx0Ok50fSh7bGFuZ3VhZ2VUYWc6ImVzLVBFIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiwiLGRlY2ltYWw6Ii4ifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiayIsbWlsbGlvbjoibW0iLGJpbGxpb246ImIiLHRyaWxsaW9uOiJ0In0sb3JkaW5hbDpOdD0+e2xldCBYcj1OdCUxMDtyZXR1'@; put 'cm4gMT09PVhyfHwzPT09WHI/ImVyIjoyPT09WHI/ImRvIjo3PT09WHJ8fDA9PT1Ycj8ibW8iOjg9PT1Ycj8idm8iOjk9PT1Ycj8ibm8iOiJ0byJ9LGN1cnJlbmN5OntzeW1ib2w6IlMvLiIscG9zaXRpb246InByZWZpeCIsY29kZToiUEVOIn0sY3VycmVuY3lGb3JtYXQ6e3Rob3VzYW5kU2Vw'@; put 'YXJhdGVkOiEwLHRvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsc3BhY2VTZXBhcmF0ZWRDdXJyZW5jeTohMCxhdmVyYWdlOiEwfSxmb3JtYXRzOntmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6'@; put 'e291dHB1dDoiY3VycmVuY3kiLG1hbnRpc3NhOjIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3Vy'@; put 'cmVuY3kiLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjB9fX0pfSh3ZSk7dmFyIFplPXdlLmV4cG9ydHMsUWU9e2V4cG9ydHM6e319OyFmdW5jdGlvbihvcixUYSl7b3IuZXhwb3J0cz1mdW5jdGlvbiBsaShOdCl7cmV0dXJuIE50JiZOdC5fX2VzTW9k'@; put 'dWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTnQsImRlZmF1bHQiKT9OdC5kZWZhdWx0Ok50fSh7bGFuZ3VhZ2VUYWc6ImVzLVBSIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiwiLGRlY2ltYWw6Ii4ifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiayIsbWlsbGlv'@; put 'bjoibW0iLGJpbGxpb246ImIiLHRyaWxsaW9uOiJ0In0sb3JkaW5hbDpOdD0+e2xldCBYcj1OdCUxMDtyZXR1cm4gMT09PVhyfHwzPT09WHI/ImVyIjoyPT09WHI/ImRvIjo3PT09WHJ8fDA9PT1Ycj8ibW8iOjg9PT1Ycj8idm8iOjk9PT1Ycj8ibm8iOiJ0byJ9LGN1cnJlbmN5OntzeW1ib2w6'@; put 'IiQiLHBvc2l0aW9uOiJwcmVmaXgiLGNvZGU6IlVTRCJ9LGN1cnJlbmN5Rm9ybWF0Ont0aG91c2FuZFNlcGFyYXRlZDohMCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLHNwYWNlU2VwYXJhdGVkQ3VycmVuY3k6ITAsYXZlcmFnZTohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90'@; put 'YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixtYW50aXNzYToyLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7bWFu'@; put 'dGlzc2E6Mix0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYTowfX19KX0oUWUpO3ZhciBhdD1RZS5leHBvcnRzLHhlPXtleHBvcnRzOnt9fTshZnVu'@; put 'Y3Rpb24ob3IsVGEpe29yLmV4cG9ydHM9ZnVuY3Rpb24gbGkoTnQpe3JldHVybiBOdCYmTnQuX19lc01vZHVsZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE50LCJkZWZhdWx0Iik/TnQuZGVmYXVsdDpOdH0oe2xhbmd1YWdlVGFnOiJlcy1TViIsZGVsaW1pdGVyczp7'@; put 'dGhvdXNhbmRzOiIsIixkZWNpbWFsOiIuIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6ImsiLG1pbGxpb246Im1tIixiaWxsaW9uOiJiIix0cmlsbGlvbjoidCJ9LG9yZGluYWw6TnQ9PntsZXQgWHI9TnQlMTA7cmV0dXJuIDE9PT1Ycnx8Mz09PVhyPyJlciI6Mj09PVhyPyJkbyI6Nz09PVhy'@; put 'fHwwPT09WHI/Im1vIjo4PT09WHI/InZvIjo5PT09WHI/Im5vIjoidG8ifSxjdXJyZW5jeTp7c3ltYm9sOiIkIixwb3NpdGlvbjoicHJlZml4Iixjb2RlOiJTVkMifSxjdXJyZW5jeUZvcm1hdDp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxz'@; put 'cGFjZVNlcGFyYXRlZEN1cnJlbmN5OiEwLGF2ZXJhZ2U6ITB9LGZvcm1hdHM6e2ZvdXJEaWdpdHM6e3RvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZnVsbFdpdGhUd29EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsbWFudGlzc2E6MixzcGFjZVNlcGFyYXRl'@; put 'ZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhUd29EZWNpbWFsc05vQ3VycmVuY3k6e21hbnRpc3NhOjIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoTm9EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6'@; put 'ITAsbWFudGlzc2E6MH19fSl9KHhlKTt2YXIgdmU9eGUuZXhwb3J0cyxxZT17ZXhwb3J0czp7fX07IWZ1bmN0aW9uKG9yLFRhKXtvci5leHBvcnRzPWZ1bmN0aW9uIGxpKE50KXtyZXR1cm4gTnQmJk50Ll9fZXNNb2R1bGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChO'@; put 'dCwiZGVmYXVsdCIpP050LmRlZmF1bHQ6TnR9KHtsYW5ndWFnZVRhZzoiZXQtRUUiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiICIsZGVjaW1hbDoiLCJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJ0dWgiLG1pbGxpb246Im1sbiIsYmlsbGlvbjoibWxkIix0cmlsbGlvbjoidHJsIn0sb3Jk'@; put 'aW5hbDpmdW5jdGlvbigpe3JldHVybiIuIn0sY3VycmVuY3k6e3N5bWJvbDoiXHUyMGFjIixwb3NpdGlvbjoicG9zdGZpeCIsY29kZToiRVVSIn0sY3VycmVuY3lGb3JtYXQ6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLHRvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsc3BhY2VTZXBhcmF0'@; put 'ZWRDdXJyZW5jeTohMCxhdmVyYWdlOiEwfSxmb3JtYXRzOntmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLG1hbnRpc3NhOjIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNh'@; put 'bmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3Nh'@; put 'OjB9fX0pfShxZSk7dmFyIGplPXFlLmV4cG9ydHMsQWU9e2V4cG9ydHM6e319OyFmdW5jdGlvbihvcixUYSl7b3IuZXhwb3J0cz1mdW5jdGlvbiBsaShOdCl7cmV0dXJuIE50JiZOdC5fX2VzTW9kdWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTnQsImRlZmF1bHQi'@; put 'KT9OdC5kZWZhdWx0Ok50fSh7bGFuZ3VhZ2VUYWc6ImZhLUlSIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6Ilx1MDYwYyIsZGVjaW1hbDoiLiJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJcdTA2NDdcdTA2MzJcdTA2MjdcdTA2MzEiLG1pbGxpb246Ilx1MDY0NVx1MDZjY1x1MDY0NFx1MDZj'@; put 'Y1x1MDY0OFx1MDY0NiIsYmlsbGlvbjoiXHUwNjQ1XHUwNmNjXHUwNjQ0XHUwNmNjXHUwNjI3XHUwNjMxXHUwNjJmIix0cmlsbGlvbjoiXHUwNjJhXHUwNjMxXHUwNmNjXHUwNjQ0XHUwNmNjXHUwNjQ4XHUwNjQ2In0sb3JkaW5hbDpmdW5jdGlvbigpe3JldHVybiJcdTA2MjdcdTA2NDUifSxj'@; put 'dXJyZW5jeTp7c3ltYm9sOiJcdWZkZmMiLGNvZGU6IklSUiJ9fSl9KEFlKTt2YXIgRmU9QWUuZXhwb3J0cyxSZT17ZXhwb3J0czp7fX07IWZ1bmN0aW9uKG9yLFRhKXtvci5leHBvcnRzPWZ1bmN0aW9uIGxpKE50KXtyZXR1cm4gTnQmJk50Ll9fZXNNb2R1bGUmJk9iamVjdC5wcm90b3R5cGUu'@; put 'aGFzT3duUHJvcGVydHkuY2FsbChOdCwiZGVmYXVsdCIpP050LmRlZmF1bHQ6TnR9KHtsYW5ndWFnZVRhZzoiZmktRkkiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiICIsZGVjaW1hbDoiLCJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJrIixtaWxsaW9uOiJNIixiaWxsaW9uOiJHIix0cmls'@; put 'bGlvbjoiVCJ9LG9yZGluYWw6ZnVuY3Rpb24oKXtyZXR1cm4iLiJ9LGN1cnJlbmN5OntzeW1ib2w6Ilx1MjBhYyIscG9zaXRpb246InBvc3RmaXgiLGNvZGU6IkVVUiJ9LGN1cnJlbmN5Rm9ybWF0Ont0aG91c2FuZFNlcGFyYXRlZDohMCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEw'@; put 'LHNwYWNlU2VwYXJhdGVkQ3VycmVuY3k6ITAsYXZlcmFnZTohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixtYW50aXNzYToyLHNwYWNlU2VwYXJh'@; put 'dGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7bWFudGlzc2E6Mix0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRl'@; put 'ZDohMCxtYW50aXNzYTowfX19KX0oUmUpO3ZhciBJZT1SZS5leHBvcnRzLEhlPXtleHBvcnRzOnt9fTshZnVuY3Rpb24ob3IsVGEpe29yLmV4cG9ydHM9ZnVuY3Rpb24gbGkoTnQpe3JldHVybiBOdCYmTnQuX19lc01vZHVsZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxs'@; put 'KE50LCJkZWZhdWx0Iik/TnQuZGVmYXVsdDpOdH0oe2xhbmd1YWdlVGFnOiJmaWwtUEgiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiLCIsZGVjaW1hbDoiLiJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJrIixtaWxsaW9uOiJtIixiaWxsaW9uOiJiIix0cmlsbGlvbjoidCJ9LG9yZGluYWw6'@; put 'TnQ9PntsZXQgWHI9TnQlMTA7cmV0dXJuIDE9PX5+KE50JTEwMC8xMCk/InRoIjoxPT09WHI/InN0IjoyPT09WHI/Im5kIjozPT09WHI/InJkIjoidGgifSxjdXJyZW5jeTp7c3ltYm9sOiJcdTIwYjEiLGNvZGU6IlBIUCJ9fSl9KEhlKTt2YXIgRGU9SGUuZXhwb3J0cyxrZT17ZXhwb3J0czp7'@; put 'fX07IWZ1bmN0aW9uKG9yLFRhKXtvci5leHBvcnRzPWZ1bmN0aW9uIGxpKE50KXtyZXR1cm4gTnQmJk50Ll9fZXNNb2R1bGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChOdCwiZGVmYXVsdCIpP050LmRlZmF1bHQ6TnR9KHtsYW5ndWFnZVRhZzoiZnItQ0EiLGRlbGlt'@; put 'aXRlcnM6e3Rob3VzYW5kczoiICIsZGVjaW1hbDoiLCJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJrIixtaWxsaW9uOiJNIixiaWxsaW9uOiJHIix0cmlsbGlvbjoiVCJ9LG9yZGluYWw6TnQ9PjE9PT1OdD8iZXIiOiJceGU4bWUiLHNwYWNlU2VwYXJhdGVkOiEwLGN1cnJlbmN5OntzeW1i'@; put 'b2w6IiQiLHBvc2l0aW9uOiJwb3N0Zml4Iixjb2RlOiJVU0QifSxjdXJyZW5jeUZvcm1hdDp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmb3JtYXRzOntmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJh'@; put 'dGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjJ9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoi'@; put 'Y3VycmVuY3kiLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjB9fX0pfShrZSk7dmFyIF90PWtlLmV4cG9ydHMsbnQ9e2V4cG9ydHM6e319OyFmdW5jdGlvbihvcixUYSl7b3IuZXhwb3J0cz1mdW5jdGlvbiBsaShOdCl7cmV0dXJuIE50JiZOdC5fX2VzTW9kdWxlJiZPYmplY3QucHJv'@; put 'dG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTnQsImRlZmF1bHQiKT9OdC5kZWZhdWx0Ok50fSh7bGFuZ3VhZ2VUYWc6ImZyLUNIIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiAiLGRlY2ltYWw6Ii4ifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiayIsbWlsbGlvbjoibSIsYmlsbGlvbjoi'@; put 'YiIsdHJpbGxpb246InQifSxvcmRpbmFsOk50PT4xPT09TnQ/ImVyIjoiXHhlOG1lIixjdXJyZW5jeTp7c3ltYm9sOiJDSEYiLHBvc2l0aW9uOiJwb3N0Zml4Iixjb2RlOiJDSEYifSxjdXJyZW5jeUZvcm1hdDp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxzcGFjZVNlcGFy'@; put 'YXRlZDohMCxzcGFjZVNlcGFyYXRlZEN1cnJlbmN5OiEwLGF2ZXJhZ2U6ITB9LGZvcm1hdHM6e2ZvdXJEaWdpdHM6e3RvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZnVsbFdpdGhUd29EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsbWFudGlzc2E6MixzcGFj'@; put 'ZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhUd29EZWNpbWFsc05vQ3VycmVuY3k6e21hbnRpc3NhOjIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoTm9EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRT'@; put 'ZXBhcmF0ZWQ6ITAsbWFudGlzc2E6MH19fSl9KG50KTt2YXIgSmU9bnQuZXhwb3J0cyxvbj17ZXhwb3J0czp7fX07IWZ1bmN0aW9uKG9yLFRhKXtvci5leHBvcnRzPWZ1bmN0aW9uIGxpKE50KXtyZXR1cm4gTnQmJk50Ll9fZXNNb2R1bGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVy'@; put 'dHkuY2FsbChOdCwiZGVmYXVsdCIpP050LmRlZmF1bHQ6TnR9KHtsYW5ndWFnZVRhZzoiZnItRlIiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiICIsZGVjaW1hbDoiLCJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJrIixtaWxsaW9uOiJNIixiaWxsaW9uOiJNcmQiLHRyaWxsaW9uOiJiaWxs'@; put 'aW9uIn0sb3JkaW5hbDpOdD0+MT09PU50PyJlciI6Ilx4ZThtZSIsYnl0ZXM6e2JpbmFyeVN1ZmZpeGVzOlsibyIsIktpbyIsIk1pbyIsIkdpbyIsIlRpbyIsIlBpbyIsIkVpbyIsIlppbyIsIllpbyJdLGRlY2ltYWxTdWZmaXhlczpbIm8iLCJLbyIsIk1vIiwiR28iLCJUbyIsIlBvIiwiRW8i'@; put 'LCJabyIsIllvIl19LGN1cnJlbmN5OntzeW1ib2w6Ilx1MjBhYyIscG9zaXRpb246InBvc3RmaXgiLGNvZGU6IkVVUiJ9LGN1cnJlbmN5Rm9ybWF0Ont0aG91c2FuZFNlcGFyYXRlZDohMCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLHNwYWNlU2VwYXJhdGVkQ3VycmVuY3k6ITAs'@; put 'YXZlcmFnZTohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixtYW50aXNzYToyLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEw'@; put 'fSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7bWFudGlzc2E6Mix0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYTowfX19KX0ob24pO3Zh'@; put 'ciB5dD1vbi5leHBvcnRzLE10PXtleHBvcnRzOnt9fTshZnVuY3Rpb24ob3IsVGEpe29yLmV4cG9ydHM9ZnVuY3Rpb24gbGkoTnQpe3JldHVybiBOdCYmTnQuX19lc01vZHVsZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE50LCJkZWZhdWx0Iik/TnQuZGVmYXVsdDpO'@; put 'dH0oe2xhbmd1YWdlVGFnOiJoZS1JTCIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIsIixkZWNpbWFsOiIuIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6Ilx1MDVkMFx1MDVkY1x1MDVlMyIsbWlsbGlvbjoiXHUwNWRlXHUwNWQ5XHUwNWRjXHUwNWQ5XHUwNWQ1XHUwNWRmIixiaWxsaW9uOiJc'@; put 'dTA1ZGVcdTA1ZDlcdTA1ZGNcdTA1ZDlcdTA1ZDBcdTA1ZThcdTA1ZDMiLHRyaWxsaW9uOiJcdTA1ZDhcdTA1ZThcdTA1ZDlcdTA1ZGNcdTA1ZDlcdTA1ZDVcdTA1ZGYifSxjdXJyZW5jeTp7c3ltYm9sOiJcdTIwYWEiLHBvc2l0aW9uOiJwcmVmaXgiLGNvZGU6IklMUyJ9LG9yZGluYWw6KCk9'@; put 'PiIiLGN1cnJlbmN5Rm9ybWF0Ont0aG91c2FuZFNlcGFyYXRlZDohMCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLHNwYWNlU2VwYXJhdGVkQ3VycmVuY3k6ITAsYXZlcmFnZTohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxh'@; put 'dmVyYWdlOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixtYW50aXNzYToyLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7bWFudGlzc2E6Mix0aG91c2FuZFNlcGFyYXRlZDohMH0s'@; put 'ZnVsbFdpdGhOb0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYTowfX19KX0oTXQpO3ZhciBJdD1NdC5leHBvcnRzLHJ0PXtleHBvcnRzOnt9fTshZnVuY3Rpb24ob3IsVGEpe29yLmV4cG9ydHM9ZnVuY3Rp'@; put 'b24gbGkoTnQpe3JldHVybiBOdCYmTnQuX19lc01vZHVsZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE50LCJkZWZhdWx0Iik/TnQuZGVmYXVsdDpOdH0oe2xhbmd1YWdlVGFnOiJodS1IVSIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIgIixkZWNpbWFsOiIsIn0sYWJi'@; put 'cmV2aWF0aW9uczp7dGhvdXNhbmQ6IkUiLG1pbGxpb246Ik0iLGJpbGxpb246Ik1yZCIsdHJpbGxpb246IlQifSxvcmRpbmFsOmZ1bmN0aW9uKCl7cmV0dXJuIi4ifSxjdXJyZW5jeTp7c3ltYm9sOiJGdCIscG9zaXRpb246InBvc3RmaXgiLGNvZGU6IkhVRiJ9LGN1cnJlbmN5Rm9ybWF0Ont0'@; put 'aG91c2FuZFNlcGFyYXRlZDohMCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLHNwYWNlU2VwYXJhdGVkQ3VycmVuY3k6ITAsYXZlcmFnZTohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0aFR3'@; put 'b0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixtYW50aXNzYToyLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7bWFudGlzc2E6Mix0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxzOntv'@; put 'dXRwdXQ6ImN1cnJlbmN5IixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYTowfX19KX0ocnQpO3ZhciBLZT1ydC5leHBvcnRzLHR0PXtleHBvcnRzOnt9fTshZnVuY3Rpb24ob3IsVGEpe29yLmV4cG9ydHM9ZnVuY3Rpb24gbGkoTnQpe3JldHVybiBOdCYm'@; put 'TnQuX19lc01vZHVsZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE50LCJkZWZhdWx0Iik/TnQuZGVmYXVsdDpOdH0oe2xhbmd1YWdlVGFnOiJpZCIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIuIixkZWNpbWFsOiIsIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6InIi'@; put 'LG1pbGxpb246ImoiLGJpbGxpb246Im0iLHRyaWxsaW9uOiJ0In0sb3JkaW5hbDpmdW5jdGlvbigpe3JldHVybiIuIn0sY3VycmVuY3k6e3N5bWJvbDoiUnAiLGNvZGU6IklEUiJ9fSl9KHR0KTt2YXIgTmU9dHQuZXhwb3J0cyx1dD17ZXhwb3J0czp7fX07IWZ1bmN0aW9uKG9yLFRhKXtvci5l'@; put 'eHBvcnRzPWZ1bmN0aW9uIGxpKE50KXtyZXR1cm4gTnQmJk50Ll9fZXNNb2R1bGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChOdCwiZGVmYXVsdCIpP050LmRlZmF1bHQ6TnR9KHtsYW5ndWFnZVRhZzoiaXQtQ0giLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiJyIsZGVj'@; put 'aW1hbDoiLiJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJtaWxhIixtaWxsaW9uOiJtaWwiLGJpbGxpb246ImIiLHRyaWxsaW9uOiJ0In0sb3JkaW5hbDpmdW5jdGlvbigpe3JldHVybiJceGIwIn0sY3VycmVuY3k6e3N5bWJvbDoiQ0hGIixjb2RlOiJDSEYifX0pfSh1dCk7dmFyIEp0PXV0'@; put 'LmV4cG9ydHMsTHQ9e2V4cG9ydHM6e319OyFmdW5jdGlvbihvcixUYSl7b3IuZXhwb3J0cz1mdW5jdGlvbiBsaShOdCl7cmV0dXJuIE50JiZOdC5fX2VzTW9kdWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTnQsImRlZmF1bHQiKT9OdC5kZWZhdWx0Ok50fSh7bGFu'@; put 'Z3VhZ2VUYWc6Iml0LUlUIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6Ii4iLGRlY2ltYWw6IiwifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoibWlsYSIsbWlsbGlvbjoibWlsIixiaWxsaW9uOiJiIix0cmlsbGlvbjoidCJ9LG9yZGluYWw6ZnVuY3Rpb24oKXtyZXR1cm4iXHhiYSJ9LGN1cnJl'@; put 'bmN5OntzeW1ib2w6Ilx1MjBhYyIscG9zaXRpb246InBvc3RmaXgiLGNvZGU6IkVVUiJ9LGN1cnJlbmN5Rm9ybWF0Ont0aG91c2FuZFNlcGFyYXRlZDohMCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLHNwYWNlU2VwYXJhdGVkQ3VycmVuY3k6ITAsYXZlcmFnZTohMH0sZm9ybWF0'@; put 'czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixtYW50aXNzYToyLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aFR3b0RlY2lt'@; put 'YWxzTm9DdXJyZW5jeTp7bWFudGlzc2E6Mix0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYTowfX19KX0oTHQpO3ZhciBQdD1MdC5leHBvcnRzLG9p'@; put 'PXtleHBvcnRzOnt9fTshZnVuY3Rpb24ob3IsVGEpe29yLmV4cG9ydHM9ZnVuY3Rpb24gbGkoTnQpe3JldHVybiBOdCYmTnQuX19lc01vZHVsZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE50LCJkZWZhdWx0Iik/TnQuZGVmYXVsdDpOdH0oe2xhbmd1YWdlVGFnOiJq'@; put 'YS1KUCIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIsIixkZWNpbWFsOiIuIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6Ilx1NTM0MyIsbWlsbGlvbjoiXHU3NjdlXHU0ZTA3IixiaWxsaW9uOiJcdTUzNDFcdTUxMDQiLHRyaWxsaW9uOiJcdTUxNDYifSxvcmRpbmFsOmZ1bmN0aW9uKCl7cmV0'@; put 'dXJuIi4ifSxjdXJyZW5jeTp7c3ltYm9sOiJceGE1Iixwb3NpdGlvbjoicHJlZml4Iixjb2RlOiJKUFkifSxjdXJyZW5jeUZvcm1hdDp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxzcGFjZVNlcGFyYXRlZEN1cnJlbmN5OiEwLGF2ZXJhZ2U6'@; put 'ITB9LGZvcm1hdHM6e2ZvdXJEaWdpdHM6e3RvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZnVsbFdpdGhUd29EZWNpbWFsczp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFudGlzc2E6Mn0sZnVsbFdpdGhUd29EZWNpbWFsc05vQ3VycmVuY3k6e21hbnRpc3NhOjIs'@; put 'dGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoTm9EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFudGlzc2E6MH19fSl9KG9pKTt2YXIgZW49b2kuZXhwb3J0cyxzbj17ZXhwb3J0czp7fX07IWZ1bmN0aW9uKG9yLFRhKXtvci5leHBvcnRzPWZ1'@; put 'bmN0aW9uIGxpKE50KXtyZXR1cm4gTnQmJk50Ll9fZXNNb2R1bGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChOdCwiZGVmYXVsdCIpP050LmRlZmF1bHQ6TnR9KHtsYW5ndWFnZVRhZzoia28tS1IiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiLCIsZGVjaW1hbDoiLiJ9'@; put 'LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJcdWNjOWMiLG1pbGxpb246Ilx1YmMzMVx1YjljYyIsYmlsbGlvbjoiXHVjMmVkXHVjNWI1Iix0cmlsbGlvbjoiXHVjNzdjXHVjODcwIn0sb3JkaW5hbDpmdW5jdGlvbigpe3JldHVybiIuIn0sY3VycmVuY3k6e3N5bWJvbDoiXHUyMGE5Iixjb2Rl'@; put 'OiJLUFcifX0pfShzbik7dmFyIElpPXNuLmV4cG9ydHMsZG49e2V4cG9ydHM6e319OyFmdW5jdGlvbihvcixUYSl7b3IuZXhwb3J0cz1mdW5jdGlvbiBsaShOdCl7cmV0dXJuIE50JiZOdC5fX2VzTW9kdWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTnQsImRlZmF1'@; put 'bHQiKT9OdC5kZWZhdWx0Ok50fSh7bGFuZ3VhZ2VUYWc6Imx2LUxWIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiAiLGRlY2ltYWw6IiwifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoidFx1MDE2YmtzdC4iLG1pbGxpb246Im1pbGouIixiaWxsaW9uOiJtbGpyZC4iLHRyaWxsaW9uOiJ0cmls'@; put 'ai4ifSxvcmRpbmFsOmZ1bmN0aW9uKCl7cmV0dXJuIi4ifSxjdXJyZW5jeTp7c3ltYm9sOiJcdTIwYWMiLHBvc2l0aW9uOiJwb3N0Zml4Iixjb2RlOiJFVVIifSxjdXJyZW5jeUZvcm1hdDp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxzcGFj'@; put 'ZVNlcGFyYXRlZEN1cnJlbmN5OiEwLGF2ZXJhZ2U6ITB9LGZvcm1hdHM6e2ZvdXJEaWdpdHM6e3RvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZnVsbFdpdGhUd29EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsbWFudGlzc2E6MixzcGFjZVNlcGFyYXRlZDoh'@; put 'MCx0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhUd29EZWNpbWFsc05vQ3VycmVuY3k6e21hbnRpc3NhOjIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoTm9EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITAs'@; put 'bWFudGlzc2E6MH19fSl9KGRuKTt2YXIgZnQ9ZG4uZXhwb3J0cyxGcj17ZXhwb3J0czp7fX07IWZ1bmN0aW9uKG9yLFRhKXtvci5leHBvcnRzPWZ1bmN0aW9uIGxpKE50KXtyZXR1cm4gTnQmJk50Ll9fZXNNb2R1bGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChOdCwi'@; put 'ZGVmYXVsdCIpP050LmRlZmF1bHQ6TnR9KHtsYW5ndWFnZVRhZzoibmItTk8iLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiICIsZGVjaW1hbDoiLCJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJ0IixtaWxsaW9uOiJNIixiaWxsaW9uOiJtZCIsdHJpbGxpb246ImIifSxvcmRpbmFsOigpPT4i'@; put 'IixjdXJyZW5jeTp7c3ltYm9sOiJrciIscG9zaXRpb246InBvc3RmaXgiLGNvZGU6Ik5PSyJ9LGN1cnJlbmN5Rm9ybWF0Ont0aG91c2FuZFNlcGFyYXRlZDohMCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLHNwYWNlU2VwYXJhdGVkQ3VycmVuY3k6ITAsYXZlcmFnZTohMH0sZm9y'@; put 'bWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixtYW50aXNzYToyLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aFR3b0Rl'@; put 'Y2ltYWxzTm9DdXJyZW5jeTp7bWFudGlzc2E6Mix0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYTowfX19KX0oRnIpO3ZhciBadD1Gci5leHBvcnRz'@; put 'LGt0PXtleHBvcnRzOnt9fTshZnVuY3Rpb24ob3IsVGEpe29yLmV4cG9ydHM9ZnVuY3Rpb24gbGkoTnQpe3JldHVybiBOdCYmTnQuX19lc01vZHVsZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE50LCJkZWZhdWx0Iik/TnQuZGVmYXVsdDpOdH0oe2xhbmd1YWdlVGFn'@; put 'OiJuYiIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIgIixkZWNpbWFsOiIsIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6InQiLG1pbGxpb246Im1pbCIsYmlsbGlvbjoibWlhIix0cmlsbGlvbjoiYiJ9LG9yZGluYWw6ZnVuY3Rpb24oKXtyZXR1cm4iLiJ9LGN1cnJlbmN5OntzeW1ib2w6Imty'@; put 'Iixjb2RlOiJOT0sifX0pfShrdCk7dmFyIExuPWt0LmV4cG9ydHMsb3Q9e2V4cG9ydHM6e319OyFmdW5jdGlvbihvcixUYSl7b3IuZXhwb3J0cz1mdW5jdGlvbiBsaShOdCl7cmV0dXJuIE50JiZOdC5fX2VzTW9kdWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTnQs'@; put 'ImRlZmF1bHQiKT9OdC5kZWZhdWx0Ok50fSh7bGFuZ3VhZ2VUYWc6Im5sLUJFIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiAiLGRlY2ltYWw6IiwifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiayIsbWlsbGlvbjoibWxuIixiaWxsaW9uOiJtbGQiLHRyaWxsaW9uOiJibG4ifSxvcmRpbmFs'@; put 'Ok50PT57bGV0IFhyPU50JTEwMDtyZXR1cm4gMCE9PU50JiZYcjw9MXx8OD09PVhyfHxYcj49MjA/InN0ZSI6ImRlIn0sY3VycmVuY3k6e3N5bWJvbDoiXHUyMGFjIixwb3NpdGlvbjoicG9zdGZpeCIsY29kZToiRVVSIn0sY3VycmVuY3lGb3JtYXQ6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLHRv'@; put 'dGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixtYW50aXNzYToyLHNwYWNlU2Vw'@; put 'YXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7bWFudGlzc2E6Mix0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFy'@; put 'YXRlZDohMCxtYW50aXNzYTowfX19KX0ob3QpO3ZhciB6dD1vdC5leHBvcnRzLG5pPXtleHBvcnRzOnt9fTshZnVuY3Rpb24ob3IsVGEpe29yLmV4cG9ydHM9ZnVuY3Rpb24gbGkoTnQpe3JldHVybiBOdCYmTnQuX19lc01vZHVsZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5j'@; put 'YWxsKE50LCJkZWZhdWx0Iik/TnQuZGVmYXVsdDpOdH0oe2xhbmd1YWdlVGFnOiJubC1OTCIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIuIixkZWNpbWFsOiIsIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6ImsiLG1pbGxpb246Im1sbiIsYmlsbGlvbjoibXJkIix0cmlsbGlvbjoiYmxuIn0s'@; put 'b3JkaW5hbDpOdD0+e2xldCBYcj1OdCUxMDA7cmV0dXJuIDAhPT1OdCYmWHI8PTF8fDg9PT1Ycnx8WHI+PTIwPyJzdGUiOiJkZSJ9LGN1cnJlbmN5OntzeW1ib2w6Ilx1MjBhYyIscG9zaXRpb246InByZWZpeCIsY29kZToiRVVSIn0sY3VycmVuY3lGb3JtYXQ6e3Rob3VzYW5kU2VwYXJhdGVk'@; put 'OiEwLHRvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsc3BhY2VTZXBhcmF0ZWRDdXJyZW5jeTohMCxhdmVyYWdlOiEwfSxmb3JtYXRzOntmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e291dHB1'@; put 'dDoiY3VycmVuY3kiLG1hbnRpc3NhOjIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3ki'@; put 'LHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjB9fX0pfShuaSk7dmFyIFdlPW5pLmV4cG9ydHMsQXQ9e2V4cG9ydHM6e319OyFmdW5jdGlvbihvcixUYSl7b3IuZXhwb3J0cz1mdW5jdGlvbiBsaShOdCl7cmV0dXJuIE50JiZOdC5fX2VzTW9kdWxlJiZP'@; put 'YmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTnQsImRlZmF1bHQiKT9OdC5kZWZhdWx0Ok50fSh7bGFuZ3VhZ2VUYWc6Im5uIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiAiLGRlY2ltYWw6IiwifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoidCIsbWlsbGlvbjoibWlsIixi'@; put 'aWxsaW9uOiJtaWEiLHRyaWxsaW9uOiJiIn0sb3JkaW5hbDpmdW5jdGlvbigpe3JldHVybiIuIn0sY3VycmVuY3k6e3N5bWJvbDoia3IiLGNvZGU6Ik5PSyJ9fSl9KEF0KTt2YXIgaXI9QXQuZXhwb3J0cyxodD17ZXhwb3J0czp7fX07IWZ1bmN0aW9uKG9yLFRhKXtvci5leHBvcnRzPWZ1bmN0'@; put 'aW9uIGxpKE50KXtyZXR1cm4gTnQmJk50Ll9fZXNNb2R1bGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChOdCwiZGVmYXVsdCIpP050LmRlZmF1bHQ6TnR9KHtsYW5ndWFnZVRhZzoicGwtUEwiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiICIsZGVjaW1hbDoiLCJ9LGFi'@; put 'YnJldmlhdGlvbnM6e3Rob3VzYW5kOiJ0eXMuIixtaWxsaW9uOiJtbG4iLGJpbGxpb246Im1sZCIsdHJpbGxpb246ImJsbiJ9LG9yZGluYWw6KCk9PiIuIixjdXJyZW5jeTp7c3ltYm9sOiIgelx1MDE0MiIscG9zaXRpb246InBvc3RmaXgiLGNvZGU6IlBMTiJ9LGN1cnJlbmN5Rm9ybWF0Ont0'@; put 'aG91c2FuZFNlcGFyYXRlZDohMCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLHNwYWNlU2VwYXJhdGVkQ3VycmVuY3k6ITAsYXZlcmFnZTohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0aFR3'@; put 'b0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixtYW50aXNzYToyLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7bWFudGlzc2E6Mix0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxzOntv'@; put 'dXRwdXQ6ImN1cnJlbmN5IixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYTowfX19KX0oaHQpO3ZhciBFdD1odC5leHBvcnRzLHpuPXtleHBvcnRzOnt9fTshZnVuY3Rpb24ob3IsVGEpe29yLmV4cG9ydHM9ZnVuY3Rpb24gbGkoTnQpe3JldHVybiBOdCYm'@; put 'TnQuX19lc01vZHVsZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE50LCJkZWZhdWx0Iik/TnQuZGVmYXVsdDpOdH0oe2xhbmd1YWdlVGFnOiJwdC1CUiIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIuIixkZWNpbWFsOiIsIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6'@; put 'Im1pbCIsbWlsbGlvbjoibWlsaFx4ZjVlcyIsYmlsbGlvbjoiYiIsdHJpbGxpb246InQifSxvcmRpbmFsOmZ1bmN0aW9uKCl7cmV0dXJuIlx4YmEifSxjdXJyZW5jeTp7c3ltYm9sOiJSJCIscG9zaXRpb246InByZWZpeCIsY29kZToiQlJMIn0sY3VycmVuY3lGb3JtYXQ6e3Rob3VzYW5kU2Vw'@; put 'YXJhdGVkOiEwLHRvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixtYW50aXNz'@; put 'YToyLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7bWFudGlzc2E6Mix0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixzcGFjZVNlcGFyYXRlZDohMCx0'@; put 'aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYTowfX19KX0oem4pO3ZhciBhbj16bi5leHBvcnRzLGp0PXtleHBvcnRzOnt9fTshZnVuY3Rpb24ob3IsVGEpe29yLmV4cG9ydHM9ZnVuY3Rpb24gbGkoTnQpe3JldHVybiBOdCYmTnQuX19lc01vZHVsZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNP'@; put 'd25Qcm9wZXJ0eS5jYWxsKE50LCJkZWZhdWx0Iik/TnQuZGVmYXVsdDpOdH0oe2xhbmd1YWdlVGFnOiJwdC1QVCIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIgIixkZWNpbWFsOiIsIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6ImsiLG1pbGxpb246Im0iLGJpbGxpb246ImIiLHRyaWxsaW9u'@; put 'OiJ0In0sb3JkaW5hbDpmdW5jdGlvbigpe3JldHVybiJceGJhIn0sY3VycmVuY3k6e3N5bWJvbDoiXHUyMGFjIixwb3NpdGlvbjoicG9zdGZpeCIsY29kZToiRVVSIn0sY3VycmVuY3lGb3JtYXQ6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLHRvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAs'@; put 'YXZlcmFnZTohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixtYW50aXNzYToyLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEw'@; put 'fSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7bWFudGlzc2E6Mix0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYTowfX19KX0oanQpO3Zh'@; put 'ciBkaT1qdC5leHBvcnRzLGNuPXtleHBvcnRzOnt9fTshZnVuY3Rpb24ob3IsVGEpe29yLmV4cG9ydHM9ZnVuY3Rpb24gbGkoTnQpe3JldHVybiBOdCYmTnQuX19lc01vZHVsZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE50LCJkZWZhdWx0Iik/TnQuZGVmYXVsdDpO'@; put 'dH0oe2xhbmd1YWdlVGFnOiJyby1STyIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIuIixkZWNpbWFsOiIsIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6Im1paSIsbWlsbGlvbjoibWlsIixiaWxsaW9uOiJtbGQiLHRyaWxsaW9uOiJibG4ifSxvcmRpbmFsOmZ1bmN0aW9uKCl7cmV0dXJuIi4i'@; put 'fSxjdXJyZW5jeTp7c3ltYm9sOiIgbGVpIixwb3NpdGlvbjoicG9zdGZpeCIsY29kZToiUk9OIn0sY3VycmVuY3lGb3JtYXQ6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLHRvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsc3BhY2VTZXBhcmF0ZWRDdXJyZW5jeTohMCxhdmVyYWdlOiEwfSxm'@; put 'b3JtYXRzOntmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLG1hbnRpc3NhOjIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoVHdv'@; put 'RGVjaW1hbHNOb0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjB9fX0pfShjbik7dmFyIGZuPWNuLmV4cG9y'@; put 'dHMsRGk9e2V4cG9ydHM6e319OyFmdW5jdGlvbihvcixUYSl7b3IuZXhwb3J0cz1mdW5jdGlvbiBsaShOdCl7cmV0dXJuIE50JiZOdC5fX2VzTW9kdWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTnQsImRlZmF1bHQiKT9OdC5kZWZhdWx0Ok50fSh7bGFuZ3VhZ2VU'@; put 'YWc6InJvLVJPIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6Ii4iLGRlY2ltYWw6IiwifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoibWlpIixtaWxsaW9uOiJtaWwiLGJpbGxpb246Im1sZCIsdHJpbGxpb246ImJsbiJ9LG9yZGluYWw6ZnVuY3Rpb24oKXtyZXR1cm4iLiJ9LGN1cnJlbmN5Ontz'@; put 'eW1ib2w6IiBsZWkiLHBvc2l0aW9uOiJwb3N0Zml4Iixjb2RlOiJST04ifSxjdXJyZW5jeUZvcm1hdDp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxzcGFjZVNlcGFyYXRlZEN1cnJlbmN5OiEwLGF2ZXJhZ2U6ITB9LGZvcm1hdHM6e2ZvdXJE'@; put 'aWdpdHM6e3RvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZnVsbFdpdGhUd29EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsbWFudGlzc2E6MixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhUd29EZWNpbWFsc05vQ3Vy'@; put 'cmVuY3k6e21hbnRpc3NhOjIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoTm9EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFudGlzc2E6MH19fSl9KERpKTt2YXIgUXQ9RGkuZXhwb3J0cyx0bj17ZXhwb3J0'@; put 'czp7fX07IWZ1bmN0aW9uKG9yLFRhKXtvci5leHBvcnRzPWZ1bmN0aW9uIGxpKE50KXtyZXR1cm4gTnQmJk50Ll9fZXNNb2R1bGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChOdCwiZGVmYXVsdCIpP050LmRlZmF1bHQ6TnR9KHtsYW5ndWFnZVRhZzoicnUtUlUiLGRl'@; put 'bGltaXRlcnM6e3Rob3VzYW5kczoiICIsZGVjaW1hbDoiLCJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJcdTA0NDJcdTA0NGJcdTA0NDEuIixtaWxsaW9uOiJcdTA0M2NcdTA0M2JcdTA0M2QiLGJpbGxpb246ImIiLHRyaWxsaW9uOiJ0In0sb3JkaW5hbDpmdW5jdGlvbigpe3JldHVybiIu'@; put 'In0sY3VycmVuY3k6e3N5bWJvbDoiXHUwNDQwXHUwNDQzXHUwNDMxLiIscG9zaXRpb246InBvc3RmaXgiLGNvZGU6IlJVQiJ9LGN1cnJlbmN5Rm9ybWF0Ont0aG91c2FuZFNlcGFyYXRlZDohMCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZvcm1hdHM6e2Zv'@; put 'dXJEaWdpdHM6e3RvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZnVsbFdpdGhUd29EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsbWFudGlzc2E6MixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhUd29EZWNpbWFsc05v'@; put 'Q3VycmVuY3k6e21hbnRpc3NhOjIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoTm9EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFudGlzc2E6MH19fSl9KHRuKTt2YXIgY2E9dG4uZXhwb3J0cyx4aT17ZXhw'@; put 'b3J0czp7fX07IWZ1bmN0aW9uKG9yLFRhKXtvci5leHBvcnRzPWZ1bmN0aW9uIGxpKE50KXtyZXR1cm4gTnQmJk50Ll9fZXNNb2R1bGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChOdCwiZGVmYXVsdCIpP050LmRlZmF1bHQ6TnR9KHtsYW5ndWFnZVRhZzoicnUtVUEi'@; put 'LGRlbGltaXRlcnM6e3Rob3VzYW5kczoiICIsZGVjaW1hbDoiLCJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJcdTA0NDJcdTA0NGJcdTA0NDEuIixtaWxsaW9uOiJcdTA0M2NcdTA0M2JcdTA0M2QiLGJpbGxpb246ImIiLHRyaWxsaW9uOiJ0In0sb3JkaW5hbDpmdW5jdGlvbigpe3JldHVy'@; put 'biIuIn0sY3VycmVuY3k6e3N5bWJvbDoiXHUyMGI0Iixwb3NpdGlvbjoicG9zdGZpeCIsY29kZToiVUFIIn0sY3VycmVuY3lGb3JtYXQ6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLHRvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7'@; put 'dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixtYW50aXNzYToyLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7'@; put 'bWFudGlzc2E6Mix0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYTowfX19KX0oeGkpO3ZhciB5cj14aS5leHBvcnRzLEduPXtleHBvcnRzOnt9fTsh'@; put 'ZnVuY3Rpb24ob3IsVGEpe29yLmV4cG9ydHM9ZnVuY3Rpb24gbGkoTnQpe3JldHVybiBOdCYmTnQuX19lc01vZHVsZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE50LCJkZWZhdWx0Iik/TnQuZGVmYXVsdDpOdH0oe2xhbmd1YWdlVGFnOiJzay1TSyIsZGVsaW1pdGVy'@; put 'czp7dGhvdXNhbmRzOiJceGEwIixkZWNpbWFsOiIsIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6InRpcy4iLG1pbGxpb246Im1pbC4iLGJpbGxpb246Im1sZC4iLHRyaWxsaW9uOiJiaWwuIn0sb3JkaW5hbDpmdW5jdGlvbigpe3JldHVybiIuIn0sc3BhY2VTZXBhcmF0ZWQ6ITAsY3VycmVu'@; put 'Y3k6e3N5bWJvbDoiXHUyMGFjIixwb3NpdGlvbjoicG9zdGZpeCIsY29kZToiRVVSIn0sY3VycmVuY3lGb3JtYXQ6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLHRvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsc3BhY2VTZXBhcmF0ZWRDdXJyZW5jeTohMCxhdmVyYWdlOiEwfSxmb3JtYXRz'@; put 'Ontmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLG1hbnRpc3NhOjIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoVHdvRGVjaW1h'@; put 'bHNOb0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjB9fX0pfShHbik7dmFyIEtpPUduLmV4cG9ydHMsSnI9'@; put 'e2V4cG9ydHM6e319OyFmdW5jdGlvbihvcixUYSl7b3IuZXhwb3J0cz1mdW5jdGlvbiBsaShOdCl7cmV0dXJuIE50JiZOdC5fX2VzTW9kdWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTnQsImRlZmF1bHQiKT9OdC5kZWZhdWx0Ok50fSh7bGFuZ3VhZ2VUYWc6InNs'@; put 'IixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6Ii4iLGRlY2ltYWw6IiwifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoidGlzLiIsbWlsbGlvbjoibWlsLiIsYmlsbGlvbjoiYiIsdHJpbGxpb246InQifSxvcmRpbmFsOmZ1bmN0aW9uKCl7cmV0dXJuIi4ifSxjdXJyZW5jeTp7c3ltYm9sOiJcdTIw'@; put 'YWMiLGNvZGU6IkVVUiJ9fSl9KEpyKTt2YXIgUXI9SnIuZXhwb3J0cyxOaT17ZXhwb3J0czp7fX07IWZ1bmN0aW9uKG9yLFRhKXtvci5leHBvcnRzPWZ1bmN0aW9uIGxpKE50KXtyZXR1cm4gTnQmJk50Ll9fZXNNb2R1bGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChO'@; put 'dCwiZGVmYXVsdCIpP050LmRlZmF1bHQ6TnR9KHtsYW5ndWFnZVRhZzoic3ItQ3lybC1SUyIsZGVsaW1pdGVyczp7dGhvdXNhbmRzOiIuIixkZWNpbWFsOiIsIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6Ilx1MDQ0Mlx1MDQ0Ylx1MDQ0MS4iLG1pbGxpb246Ilx1MDQzY1x1MDQzYlx1MDQz'@; put 'ZCIsYmlsbGlvbjoiYiIsdHJpbGxpb246InQifSxvcmRpbmFsOigpPT4iLiIsY3VycmVuY3k6e3N5bWJvbDoiUlNEIixjb2RlOiJSU0QifX0pfShOaSk7dmFyIEhpPU5pLmV4cG9ydHMsSWE9e2V4cG9ydHM6e319OyFmdW5jdGlvbihvcixUYSl7b3IuZXhwb3J0cz1mdW5jdGlvbiBsaShOdCl7'@; put 'cmV0dXJuIE50JiZOdC5fX2VzTW9kdWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTnQsImRlZmF1bHQiKT9OdC5kZWZhdWx0Ok50fSh7bGFuZ3VhZ2VUYWc6InN2LVNFIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiAiLGRlY2ltYWw6IiwifSxhYmJyZXZpYXRpb25z'@; put 'Ont0aG91c2FuZDoidCIsbWlsbGlvbjoiTSIsYmlsbGlvbjoibWQiLHRyaWxsaW9uOiJ0bWQifSxvcmRpbmFsOigpPT4iIixjdXJyZW5jeTp7c3ltYm9sOiJrciIscG9zaXRpb246InBvc3RmaXgiLGNvZGU6IlNFSyJ9LGN1cnJlbmN5Rm9ybWF0Ont0aG91c2FuZFNlcGFyYXRlZDohMCx0b3Rh'@; put 'bExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZvcm1hdHM6e2ZvdXJEaWdpdHM6e3RvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZnVsbFdpdGhUd29EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsbWFudGlzc2E6MixzcGFjZVNlcGFy'@; put 'YXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMH0sZnVsbFdpdGhUd29EZWNpbWFsc05vQ3VycmVuY3k6e21hbnRpc3NhOjIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoTm9EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0'@; put 'ZWQ6ITAsbWFudGlzc2E6MH19fSl9KElhKTt2YXIgUHI9SWEuZXhwb3J0cyxZaT17ZXhwb3J0czp7fX07IWZ1bmN0aW9uKG9yLFRhKXtvci5leHBvcnRzPWZ1bmN0aW9uIGxpKE50KXtyZXR1cm4gTnQmJk50Ll9fZXNNb2R1bGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2Fs'@; put 'bChOdCwiZGVmYXVsdCIpP050LmRlZmF1bHQ6TnR9KHtsYW5ndWFnZVRhZzoidGgtVEgiLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiLCIsZGVjaW1hbDoiLiJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJcdTBlMWVcdTBlMzFcdTBlMTkiLG1pbGxpb246Ilx1MGUyNVx1MGU0OVx1MGUzMlx1'@; put 'MGUxOSIsYmlsbGlvbjoiXHUwZTFlXHUwZTMxXHUwZTE5XHUwZTI1XHUwZTQ5XHUwZTMyXHUwZTE5Iix0cmlsbGlvbjoiXHUwZTI1XHUwZTQ5XHUwZTMyXHUwZTE5XHUwZTI1XHUwZTQ5XHUwZTMyXHUwZTE5In0sb3JkaW5hbDpmdW5jdGlvbigpe3JldHVybiIuIn0sY3VycmVuY3k6e3N5bWJv'@; put 'bDoiXHUwZTNmIixwb3NpdGlvbjoicG9zdGZpeCIsY29kZToiVEhCIn0sY3VycmVuY3lGb3JtYXQ6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLHRvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNl'@; put 'cGFyYXRlZDohMCxhdmVyYWdlOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixtYW50aXNzYToyLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aFR3b0RlY2ltYWxzTm9DdXJyZW5jeTp7bWFudGlzc2E6Mix0aG91c2FuZFNl'@; put 'cGFyYXRlZDohMH0sZnVsbFdpdGhOb0RlY2ltYWxzOntvdXRwdXQ6ImN1cnJlbmN5IixzcGFjZVNlcGFyYXRlZDohMCx0aG91c2FuZFNlcGFyYXRlZDohMCxtYW50aXNzYTowfX19KX0oWWkpO3ZhciBmYT1ZaS5leHBvcnRzLG5yPXtleHBvcnRzOnt9fTshZnVuY3Rpb24ob3IsVGEpe29yLmV4'@; put 'cG9ydHM9ZnVuY3Rpb24oKXtjb25zdCBOdD17MToiJ2luY2kiLDU6IidpbmNpIiw4OiInaW5jaSIsNzA6IidpbmNpIiw4MDoiJ2luY2kiLDI6IiduY2kiLDc6IiduY2kiLDIwOiInbmNpIiw1MDoiJ25jaSIsMzoiJ1x4ZmNuY1x4ZmMiLDQ6IidceGZjbmNceGZjIiwxMDA6IidceGZjbmNceGZj'@; put 'Iiw2OiInbmNcdTAxMzEiLDk6Iid1bmN1IiwxMDoiJ3VuY3UiLDMwOiIndW5jdSIsNDA6IidcdTAxMzFuY1x1MDEzMSIsNjA6IidcdTAxMzFuY1x1MDEzMSIsOTA6IidcdTAxMzFuY1x1MDEzMSJ9O3JldHVybiBmdW5jdGlvbiBsaShYcil7cmV0dXJuIFhyJiZYci5fX2VzTW9kdWxlJiZPYmpl'@; put 'Y3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoWHIsImRlZmF1bHQiKT9Yci5kZWZhdWx0OlhyfSh7bGFuZ3VhZ2VUYWc6InRyLVRSIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6Ii4iLGRlY2ltYWw6IiwifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiYmluIixtaWxsaW9uOiJtaWx5'@; put 'b24iLGJpbGxpb246Im1pbHlhciIsdHJpbGxpb246InRyaWx5b24ifSxvcmRpbmFsOlhyPT57aWYoMD09PVhyKXJldHVybiInXHUwMTMxbmNcdTAxMzEiO2xldCBnMD1YciUxMDtyZXR1cm4gTnRbZzBdfHxOdFtYciUxMDAtZzBdfHxOdFtYcj49MTAwPzEwMDpudWxsXX0sY3VycmVuY3k6e3N5'@; put 'bWJvbDoiXHUyMGJhIixwb3NpdGlvbjoicG9zdGZpeCIsY29kZToiVFJZIn0sY3VycmVuY3lGb3JtYXQ6e3Rob3VzYW5kU2VwYXJhdGVkOiEwLHRvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsc3BhY2VTZXBhcmF0ZWRDdXJyZW5jeTohMCxhdmVyYWdlOiEwfSxmb3JtYXRzOntmb3Vy'@; put 'RGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLG1hbnRpc3NhOjIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1'@; put 'cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjB9fX0pfSgpfShucik7dmFyIG9hPW5yLmV4cG9ydHMsX2E9e2V4'@; put 'cG9ydHM6e319OyFmdW5jdGlvbihvcixUYSl7b3IuZXhwb3J0cz1mdW5jdGlvbiBsaShOdCl7cmV0dXJuIE50JiZOdC5fX2VzTW9kdWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTnQsImRlZmF1bHQiKT9OdC5kZWZhdWx0Ok50fSh7bGFuZ3VhZ2VUYWc6InVrLVVB'@; put 'IixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiAiLGRlY2ltYWw6IiwifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiXHUwNDQyXHUwNDM4XHUwNDQxLiIsbWlsbGlvbjoiXHUwNDNjXHUwNDNiXHUwNDNkIixiaWxsaW9uOiJcdTA0M2NcdTA0M2JcdTA0NDBcdTA0MzQiLHRyaWxsaW9uOiJcdTA0'@; put 'MzFcdTA0M2JcdTA0M2QifSxvcmRpbmFsOigpPT4iIixjdXJyZW5jeTp7c3ltYm9sOiJcdTIwYjQiLHBvc2l0aW9uOiJwb3N0Zml4Iixjb2RlOiJVQUgifSxjdXJyZW5jeUZvcm1hdDp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMCxhdmVyYWdl'@; put 'OiEwfSxmb3JtYXRzOntmb3VyRGlnaXRzOnt0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLG1hbnRpc3NhOjIsc3BhY2VTZXBhcmF0ZWQ6ITAsdGhvdXNhbmRTZXBhcmF0ZWQ6ITB9LGZ1bGxX'@; put 'aXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5OnttYW50aXNzYToyLHRob3VzYW5kU2VwYXJhdGVkOiEwfSxmdWxsV2l0aE5vRGVjaW1hbHM6e291dHB1dDoiY3VycmVuY3kiLHNwYWNlU2VwYXJhdGVkOiEwLHRob3VzYW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjB9fX0pfShfYSk7dmFyIE9hPV9h'@; put 'LmV4cG9ydHMsTmE9e2V4cG9ydHM6e319OyFmdW5jdGlvbihvcixUYSl7b3IuZXhwb3J0cz1mdW5jdGlvbiBsaShOdCl7cmV0dXJuIE50JiZOdC5fX2VzTW9kdWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTnQsImRlZmF1bHQiKT9OdC5kZWZhdWx0Ok50fSh7bGFu'@; put 'Z3VhZ2VUYWc6InpoLUNOIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiwiLGRlY2ltYWw6Ii4ifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiXHU1MzQzIixtaWxsaW9uOiJcdTc2N2VcdTRlMDciLGJpbGxpb246Ilx1NTM0MVx1NGViZiIsdHJpbGxpb246Ilx1NTE0NiJ9LG9yZGluYWw6ZnVu'@; put 'Y3Rpb24oKXtyZXR1cm4iLiJ9LGN1cnJlbmN5OntzeW1ib2w6Ilx4YTUiLHBvc2l0aW9uOiJwcmVmaXgiLGNvZGU6IkNOWSJ9LGN1cnJlbmN5Rm9ybWF0Ont0aG91c2FuZFNlcGFyYXRlZDohMCx0b3RhbExlbmd0aDo0LHNwYWNlU2VwYXJhdGVkOiEwLGF2ZXJhZ2U6ITB9LGZvcm1hdHM6e2Zv'@; put 'dXJEaWdpdHM6e3RvdGFsTGVuZ3RoOjQsc3BhY2VTZXBhcmF0ZWQ6ITAsYXZlcmFnZTohMH0sZnVsbFdpdGhUd29EZWNpbWFsczp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFudGlzc2E6Mn0sZnVsbFdpdGhUd29EZWNpbWFsc05vQ3VycmVuY3k6e21hbnRpc3NhOjIsdGhvdXNhbmRTZXBhcmF0'@; put 'ZWQ6ITB9LGZ1bGxXaXRoTm9EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFudGlzc2E6MH19fSl9KE5hKTt2YXIgZWk9TmEuZXhwb3J0cyxmcz17ZXhwb3J0czp7fX07IWZ1bmN0aW9uKG9yLFRhKXtvci5leHBvcnRzPWZ1bmN0aW9uIGxpKE50KXty'@; put 'ZXR1cm4gTnQmJk50Ll9fZXNNb2R1bGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChOdCwiZGVmYXVsdCIpP050LmRlZmF1bHQ6TnR9KHtsYW5ndWFnZVRhZzoiemgtTU8iLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiLCIsZGVjaW1hbDoiLiJ9LGFiYnJldmlhdGlvbnM6'@; put 'e3Rob3VzYW5kOiJcdTUzNDMiLG1pbGxpb246Ilx1NzY3ZVx1ODQyYyIsYmlsbGlvbjoiXHU1MzQxXHU1MTA0Iix0cmlsbGlvbjoiXHU1MTQ2In0sb3JkaW5hbDpmdW5jdGlvbigpe3JldHVybiIuIn0sY3VycmVuY3k6e3N5bWJvbDoiTU9QIixjb2RlOiJNT1AifX0pfShmcyk7dmFyIEhvPWZz'@; put 'LmV4cG9ydHMsbWw9e2V4cG9ydHM6e319OyFmdW5jdGlvbihvcixUYSl7b3IuZXhwb3J0cz1mdW5jdGlvbiBsaShOdCl7cmV0dXJuIE50JiZOdC5fX2VzTW9kdWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTnQsImRlZmF1bHQiKT9OdC5kZWZhdWx0Ok50fSh7bGFu'@; put 'Z3VhZ2VUYWc6InpoLVNHIixkZWxpbWl0ZXJzOnt0aG91c2FuZHM6IiwiLGRlY2ltYWw6Ii4ifSxhYmJyZXZpYXRpb25zOnt0aG91c2FuZDoiXHU1MzQzIixtaWxsaW9uOiJcdTc2N2VcdTRlMDciLGJpbGxpb246Ilx1NTM0MVx1NGViZiIsdHJpbGxpb246Ilx1NTE0NiJ9LG9yZGluYWw6ZnVu'@; put 'Y3Rpb24oKXtyZXR1cm4iLiJ9LGN1cnJlbmN5OntzeW1ib2w6IiQiLGNvZGU6IlNHRCJ9fSl9KG1sKTt2YXIgdXU9bWwuZXhwb3J0cyxJYz17ZXhwb3J0czp7fX07IWZ1bmN0aW9uKG9yLFRhKXtvci5leHBvcnRzPWZ1bmN0aW9uIGxpKE50KXtyZXR1cm4gTnQmJk50Ll9fZXNNb2R1bGUmJk9i'@; put 'amVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChOdCwiZGVmYXVsdCIpP050LmRlZmF1bHQ6TnR9KHtsYW5ndWFnZVRhZzoiemgtVFciLGRlbGltaXRlcnM6e3Rob3VzYW5kczoiLCIsZGVjaW1hbDoiLiJ9LGFiYnJldmlhdGlvbnM6e3Rob3VzYW5kOiJcdTUzNDMiLG1pbGxpb246'@; put 'Ilx1NzY3ZVx1ODQyYyIsYmlsbGlvbjoiXHU1MzQxXHU1MTA0Iix0cmlsbGlvbjoiXHU1MTQ2In0sb3JkaW5hbDpmdW5jdGlvbigpe3JldHVybiJcdTdiMmMifSxjdXJyZW5jeTp7c3ltYm9sOiJOVCQiLGNvZGU6IlRXRCJ9fSl9KEljKTt2YXIgQTA9SWMuZXhwb3J0cztyZXR1cm4gZnVuY3Rp'@; put 'b24ob3Ipe29yLmJnPV8sb3JbImNzLUNaIl09TixvclsiZGEtREsiXT1GLG9yWyJkZS1BVCJdPVIsb3JbImRlLUNIIl09UCxvclsiZGUtREUiXT1ZLG9yWyJkZS1MSSJdPVcsb3IuZWw9WCxvclsiZW4tQVUiXT1xLG9yWyJlbi1HQiJdPWllLG9yWyJlbi1JRSJdPWdlLG9yWyJlbi1OWiJdPVRl'@; put 'LG9yWyJlbi1aQSJdPXplLG9yWyJlcy1BUiJdPWcsb3JbImVzLUNMIl09eCxvclsiZXMtQ08iXT1ULG9yWyJlcy1DUiJdPVUsb3JbImVzLUVTIl09bSxvclsiZXMtTVgiXT1hZSxvclsiZXMtTkkiXT1sZSxvclsiZXMtUEUiXT1aZSxvclsiZXMtUFIiXT1hdCxvclsiZXMtU1YiXT12ZSxvclsi'@; put 'ZXQtRUUiXT1qZSxvclsiZmEtSVIiXT1GZSxvclsiZmktRkkiXT1JZSxvclsiZmlsLVBIIl09RGUsb3JbImZyLUNBIl09X3Qsb3JbImZyLUNIIl09SmUsb3JbImZyLUZSIl09eXQsb3JbImhlLUlMIl09SXQsb3JbImh1LUhVIl09S2Usb3IuaWQ9TmUsb3JbIml0LUNIIl09SnQsb3JbIml0LUlU'@; put 'Il09UHQsb3JbImphLUpQIl09ZW4sb3JbImtvLUtSIl09SWksb3JbImx2LUxWIl09ZnQsb3JbIm5iLU5PIl09WnQsb3IubmI9TG4sb3JbIm5sLUJFIl09enQsb3JbIm5sLU5MIl09V2Usb3Iubm49aXIsb3JbInBsLVBMIl09RXQsb3JbInB0LUJSIl09YW4sb3JbInB0LVBUIl09ZGksb3JbInJv'@; put 'LVJPIl09Zm4sb3Iucm89UXQsb3JbInJ1LVJVIl09Y2Esb3JbInJ1LVVBIl09eXIsb3JbInNrLVNLIl09S2ksb3Iuc2w9UXIsb3JbInNyLUN5cmwtUlMiXT1IaSxvclsic3YtU0UiXT1QcixvclsidGgtVEgiXT1mYSxvclsidHItVFIiXT1vYSxvclsidWstVUEiXT1PYSxvclsiemgtQ04iXT1l'@; put 'aSxvclsiemgtTU8iXT1IbyxvclsiemgtU0ciXT11dSxvclsiemgtVFciXT1BMH0oYiksZnVuY3Rpb24gSihvcil7cmV0dXJuIG9yJiZvci5fX2VzTW9kdWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob3IsImRlZmF1bHQiKT9vci5kZWZhdWx0Om9yfShiKX0oKX0s'@; put 'ODMxMzg6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig0OTYwOSk7Si5jZXJ0aWZpY2F0ZT1iKDk0NzcyKTt2YXIgXz1ELmRlZmluZSgiUlNBUHJpdmF0ZUtleSIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgidmVyc2lvbiIpLmludCgpLHRoaXMua2V5KCJtb2R1'@; put 'bHVzIikuaW50KCksdGhpcy5rZXkoInB1YmxpY0V4cG9uZW50IikuaW50KCksdGhpcy5rZXkoInByaXZhdGVFeHBvbmVudCIpLmludCgpLHRoaXMua2V5KCJwcmltZTEiKS5pbnQoKSx0aGlzLmtleSgicHJpbWUyIikuaW50KCksdGhpcy5rZXkoImV4cG9uZW50MSIpLmludCgpLHRoaXMua2V5'@; put 'KCJleHBvbmVudDIiKS5pbnQoKSx0aGlzLmtleSgiY29lZmZpY2llbnQiKS5pbnQoKSl9KTtKLlJTQVByaXZhdGVLZXk9Xzt2YXIgcD1ELmRlZmluZSgiUlNBUHVibGljS2V5IixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJtb2R1bHVzIikuaW50KCksdGhpcy5rZXkoInB1'@; put 'YmxpY0V4cG9uZW50IikuaW50KCkpfSk7Si5SU0FQdWJsaWNLZXk9cDt2YXIgTj1ELmRlZmluZSgiQWxnb3JpdGhtSWRlbnRpZmllciIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgiYWxnb3JpdGhtIikub2JqaWQoKSx0aGlzLmtleSgibm9uZSIpLm51bGxfKCkub3B0aW9u'@; put 'YWwoKSx0aGlzLmtleSgiY3VydmUiKS5vYmppZCgpLm9wdGlvbmFsKCksdGhpcy5rZXkoInBhcmFtcyIpLnNlcSgpLm9iaih0aGlzLmtleSgicCIpLmludCgpLHRoaXMua2V5KCJxIikuaW50KCksdGhpcy5rZXkoImciKS5pbnQoKSkub3B0aW9uYWwoKSl9KSx3PUQuZGVmaW5lKCJTdWJqZWN0'@; put 'UHVibGljS2V5SW5mbyIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgiYWxnb3JpdGhtIikudXNlKE4pLHRoaXMua2V5KCJzdWJqZWN0UHVibGljS2V5IikuYml0c3RyKCkpfSk7Si5QdWJsaWNLZXk9dzt2YXIgRj1ELmRlZmluZSgiUHJpdmF0ZUtleUluZm8iLGZ1bmN0aW9u'@; put 'KCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInZlcnNpb24iKS5pbnQoKSx0aGlzLmtleSgiYWxnb3JpdGhtIikudXNlKE4pLHRoaXMua2V5KCJzdWJqZWN0UHJpdmF0ZUtleSIpLm9jdHN0cigpKX0pO0ouUHJpdmF0ZUtleT1GO3ZhciBIPUQuZGVmaW5lKCJFbmNyeXB0ZWRQcml2YXRlS2V5'@; put 'SW5mbyIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgiYWxnb3JpdGhtIikuc2VxKCkub2JqKHRoaXMua2V5KCJpZCIpLm9iamlkKCksdGhpcy5rZXkoImRlY3J5cHQiKS5zZXEoKS5vYmoodGhpcy5rZXkoImtkZSIpLnNlcSgpLm9iaih0aGlzLmtleSgiaWQiKS5vYmppZCgp'@; put 'LHRoaXMua2V5KCJrZGVwYXJhbXMiKS5zZXEoKS5vYmoodGhpcy5rZXkoInNhbHQiKS5vY3RzdHIoKSx0aGlzLmtleSgiaXRlcnMiKS5pbnQoKSkpLHRoaXMua2V5KCJjaXBoZXIiKS5zZXEoKS5vYmoodGhpcy5rZXkoImFsZ28iKS5vYmppZCgpLHRoaXMua2V5KCJpdiIpLm9jdHN0cigpKSkp'@; put 'LHRoaXMua2V5KCJzdWJqZWN0UHJpdmF0ZUtleSIpLm9jdHN0cigpKX0pO0ouRW5jcnlwdGVkUHJpdmF0ZUtleT1IO3ZhciBSPUQuZGVmaW5lKCJEU0FQcml2YXRlS2V5IixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ2ZXJzaW9uIikuaW50KCksdGhpcy5rZXkoInAiKS5p'@; put 'bnQoKSx0aGlzLmtleSgicSIpLmludCgpLHRoaXMua2V5KCJnIikuaW50KCksdGhpcy5rZXkoInB1Yl9rZXkiKS5pbnQoKSx0aGlzLmtleSgicHJpdl9rZXkiKS5pbnQoKSl9KTtKLkRTQVByaXZhdGVLZXk9UixKLkRTQXBhcmFtPUQuZGVmaW5lKCJEU0FwYXJhbSIsZnVuY3Rpb24oKXt0aGlz'@; put 'LmludCgpfSk7dmFyIGo9RC5kZWZpbmUoIkVDUGFyYW1ldGVycyIsZnVuY3Rpb24oKXt0aGlzLmNob2ljZSh7bmFtZWRDdXJ2ZTp0aGlzLm9iamlkKCl9KX0pLFA9RC5kZWZpbmUoIkVDUHJpdmF0ZUtleSIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgidmVyc2lvbiIpLmlu'@; put 'dCgpLHRoaXMua2V5KCJwcml2YXRlS2V5Iikub2N0c3RyKCksdGhpcy5rZXkoInBhcmFtZXRlcnMiKS5vcHRpb25hbCgpLmV4cGxpY2l0KDApLnVzZShqKSx0aGlzLmtleSgicHVibGljS2V5Iikub3B0aW9uYWwoKS5leHBsaWNpdCgxKS5iaXRzdHIoKSl9KTtKLkVDUHJpdmF0ZUtleT1QLEou'@; put 'c2lnbmF0dXJlPUQuZGVmaW5lKCJzaWduYXR1cmUiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInIiKS5pbnQoKSx0aGlzLmtleSgicyIpLmludCgpKX0pfSw5NDc3MjooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDQ5NjA5KSxfPUQuZGVmaW5lKCJUaW1lIixm'@; put 'dW5jdGlvbigpe3RoaXMuY2hvaWNlKHt1dGNUaW1lOnRoaXMudXRjdGltZSgpLGdlbmVyYWxUaW1lOnRoaXMuZ2VudGltZSgpfSl9KSxwPUQuZGVmaW5lKCJBdHRyaWJ1dGVUeXBlVmFsdWUiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInR5cGUiKS5vYmppZCgpLHRoaXMu'@; put 'a2V5KCJ2YWx1ZSIpLmFueSgpKX0pLE49RC5kZWZpbmUoIkFsZ29yaXRobUlkZW50aWZpZXIiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoImFsZ29yaXRobSIpLm9iamlkKCksdGhpcy5rZXkoInBhcmFtZXRlcnMiKS5vcHRpb25hbCgpLHRoaXMua2V5KCJjdXJ2ZSIpLm9i'@; put 'amlkKCkub3B0aW9uYWwoKSl9KSx3PUQuZGVmaW5lKCJTdWJqZWN0UHVibGljS2V5SW5mbyIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgiYWxnb3JpdGhtIikudXNlKE4pLHRoaXMua2V5KCJzdWJqZWN0UHVibGljS2V5IikuYml0c3RyKCkpfSksRj1ELmRlZmluZSgiUmVs'@; put 'YXRpdmVEaXN0aW5ndWlzaGVkTmFtZSIsZnVuY3Rpb24oKXt0aGlzLnNldG9mKHApfSksSD1ELmRlZmluZSgiUkROU2VxdWVuY2UiLGZ1bmN0aW9uKCl7dGhpcy5zZXFvZihGKX0pLFI9RC5kZWZpbmUoIk5hbWUiLGZ1bmN0aW9uKCl7dGhpcy5jaG9pY2Uoe3JkblNlcXVlbmNlOnRoaXMudXNl'@; put 'KEgpfSl9KSxqPUQuZGVmaW5lKCJWYWxpZGl0eSIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgibm90QmVmb3JlIikudXNlKF8pLHRoaXMua2V5KCJub3RBZnRlciIpLnVzZShfKSl9KSxQPUQuZGVmaW5lKCJFeHRlbnNpb24iLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoo'@; put 'dGhpcy5rZXkoImV4dG5JRCIpLm9iamlkKCksdGhpcy5rZXkoImNyaXRpY2FsIikuYm9vbCgpLmRlZighMSksdGhpcy5rZXkoImV4dG5WYWx1ZSIpLm9jdHN0cigpKX0pLEw9RC5kZWZpbmUoIlRCU0NlcnRpZmljYXRlIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ2ZXJz'@; put 'aW9uIikuZXhwbGljaXQoMCkuaW50KCkub3B0aW9uYWwoKSx0aGlzLmtleSgic2VyaWFsTnVtYmVyIikuaW50KCksdGhpcy5rZXkoInNpZ25hdHVyZSIpLnVzZShOKSx0aGlzLmtleSgiaXNzdWVyIikudXNlKFIpLHRoaXMua2V5KCJ2YWxpZGl0eSIpLnVzZShqKSx0aGlzLmtleSgic3ViamVj'@; put 'dCIpLnVzZShSKSx0aGlzLmtleSgic3ViamVjdFB1YmxpY0tleUluZm8iKS51c2UodyksdGhpcy5rZXkoImlzc3VlclVuaXF1ZUlEIikuaW1wbGljaXQoMSkuYml0c3RyKCkub3B0aW9uYWwoKSx0aGlzLmtleSgic3ViamVjdFVuaXF1ZUlEIikuaW1wbGljaXQoMikuYml0c3RyKCkub3B0aW9u'@; put 'YWwoKSx0aGlzLmtleSgiZXh0ZW5zaW9ucyIpLmV4cGxpY2l0KDMpLnNlcW9mKFApLm9wdGlvbmFsKCkpfSksWT1ELmRlZmluZSgiWDUwOUNlcnRpZmljYXRlIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ0YnNDZXJ0aWZpY2F0ZSIpLnVzZShMKSx0aGlzLmtleSgic2ln'@; put 'bmF0dXJlQWxnb3JpdGhtIikudXNlKE4pLHRoaXMua2V5KCJzaWduYXR1cmVWYWx1ZSIpLmJpdHN0cigpKX0pO2NlLmV4cG9ydHM9WX0sODk0NzI6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9L1Byb2MtVHlwZTogNCxFTkNSWVBURURbXG5ccl0rREVLLUluZm86IEFFUy0oKD86MTI4'@; put 'KXwoPzoxOTIpfCg/OjI1NikpLUNCQywoWzAtOUEtSF0rKVtcblxyXSsoWzAtOUEtelxuXHIrLz1dKylbXG5ccl0rL20sXz0vXi0tLS0tQkVHSU4gKCg/Oi4qPyBLRVkpfENFUlRJRklDQVRFKS0tLS0tL20scD0vXi0tLS0tQkVHSU4gKCg/Oi4qPyBLRVkpfENFUlRJRklDQVRFKS0tLS0tKFsw'@; put 'LTlBLXpcblxyKy89XSspLS0tLS1FTkQgXDEtLS0tLSQvbSxOPWIoMTgyMTEpLHc9Yig0MzM4OCksRj1iKDI3MDU0KS5CdWZmZXI7Y2UuZXhwb3J0cz1mdW5jdGlvbihILFIpe3ZhciBMLGo9SC50b1N0cmluZygpLFA9ai5tYXRjaChEKTtpZihQKXt2YXIgQj0iYWVzIitQWzFdLFc9Ri5mcm9t'@; put 'KFBbMl0sImhleCIpLFo9Ri5mcm9tKFBbM10ucmVwbGFjZSgvW1xyXG5dL2csIiIpLCJiYXNlNjQiKSxYPU4oUixXLnNsaWNlKDAsOCkscGFyc2VJbnQoUFsxXSwxMCkpLmtleSxRPVtdLHE9dy5jcmVhdGVEZWNpcGhlcml2KEIsWCxXKTtRLnB1c2gocS51cGRhdGUoWikpLFEucHVzaChxLmZp'@; put 'bmFsKCkpLEw9Ri5jb25jYXQoUSl9ZWxzZXt2YXIgWT1qLm1hdGNoKHApO0w9Ri5mcm9tKFlbMl0ucmVwbGFjZSgvW1xyXG5dL2csIiIpLCJiYXNlNjQiKX1yZXR1cm57dGFnOmoubWF0Y2goXylbMV0sZGF0YTpMfX19LDY1NjY3OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoODMx'@; put 'MzgpLF89YigxNTU3OSkscD1iKDg5NDcyKSxOPWIoNDMzODgpLHc9Yig5MzM5NyksRj1iKDI3MDU0KS5CdWZmZXI7ZnVuY3Rpb24gUihqKXt2YXIgUDsib2JqZWN0Ij09dHlwZW9mIGomJiFGLmlzQnVmZmVyKGopJiYoUD1qLnBhc3NwaHJhc2Usaj1qLmtleSksInN0cmluZyI9PXR5cGVvZiBq'@; put 'JiYoaj1GLmZyb20oaikpO3ZhciBXLFosTD1wKGosUCksWT1MLnRhZyxCPUwuZGF0YTtzd2l0Y2goWSl7Y2FzZSJDRVJUSUZJQ0FURSI6Wj1ELmNlcnRpZmljYXRlLmRlY29kZShCLCJkZXIiKS50YnNDZXJ0aWZpY2F0ZS5zdWJqZWN0UHVibGljS2V5SW5mbztjYXNlIlBVQkxJQyBLRVkiOnN3'@; put 'aXRjaChafHwoWj1ELlB1YmxpY0tleS5kZWNvZGUoQiwiZGVyIikpLFc9Wi5hbGdvcml0aG0uYWxnb3JpdGhtLmpvaW4oIi4iKSl7Y2FzZSIxLjIuODQwLjExMzU0OS4xLjEuMSI6cmV0dXJuIEQuUlNBUHVibGljS2V5LmRlY29kZShaLnN1YmplY3RQdWJsaWNLZXkuZGF0YSwiZGVyIik7Y2Fz'@; put 'ZSIxLjIuODQwLjEwMDQ1LjIuMSI6cmV0dXJuIFouc3ViamVjdFByaXZhdGVLZXk9Wi5zdWJqZWN0UHVibGljS2V5LHt0eXBlOiJlYyIsZGF0YTpafTtjYXNlIjEuMi44NDAuMTAwNDAuNC4xIjpyZXR1cm4gWi5hbGdvcml0aG0ucGFyYW1zLnB1Yl9rZXk9RC5EU0FwYXJhbS5kZWNvZGUoWi5z'@; put 'dWJqZWN0UHVibGljS2V5LmRhdGEsImRlciIpLHt0eXBlOiJkc2EiLGRhdGE6Wi5hbGdvcml0aG0ucGFyYW1zfTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigidW5rbm93biBrZXkgaWQgIitXKX1jYXNlIkVOQ1JZUFRFRCBQUklWQVRFIEtFWSI6Qj1mdW5jdGlvbiBIKGosUCl7dmFyIEw9ai5h'@; put 'bGdvcml0aG0uZGVjcnlwdC5rZGUua2RlcGFyYW1zLnNhbHQsWT1wYXJzZUludChqLmFsZ29yaXRobS5kZWNyeXB0LmtkZS5rZGVwYXJhbXMuaXRlcnMudG9TdHJpbmcoKSwxMCksQj1fW2ouYWxnb3JpdGhtLmRlY3J5cHQuY2lwaGVyLmFsZ28uam9pbigiLiIpXSxXPWouYWxnb3JpdGhtLmRl'@; put 'Y3J5cHQuY2lwaGVyLml2LFo9ai5zdWJqZWN0UHJpdmF0ZUtleSxYPXBhcnNlSW50KEIuc3BsaXQoIi0iKVsxXSwxMCkvOCxRPXcucGJrZGYyU3luYyhQLEwsWSxYLCJzaGExIikscT1OLmNyZWF0ZURlY2lwaGVyaXYoQixRLFcpLHRlPVtdO3JldHVybiB0ZS5wdXNoKHEudXBkYXRlKFopKSx0'@; put 'ZS5wdXNoKHEuZmluYWwoKSksRi5jb25jYXQodGUpfShCPUQuRW5jcnlwdGVkUHJpdmF0ZUtleS5kZWNvZGUoQiwiZGVyIiksUCk7Y2FzZSJQUklWQVRFIEtFWSI6c3dpdGNoKFc9KFo9RC5Qcml2YXRlS2V5LmRlY29kZShCLCJkZXIiKSkuYWxnb3JpdGhtLmFsZ29yaXRobS5qb2luKCIuIikp'@; put 'e2Nhc2UiMS4yLjg0MC4xMTM1NDkuMS4xLjEiOnJldHVybiBELlJTQVByaXZhdGVLZXkuZGVjb2RlKFouc3ViamVjdFByaXZhdGVLZXksImRlciIpO2Nhc2UiMS4yLjg0MC4xMDA0NS4yLjEiOnJldHVybntjdXJ2ZTpaLmFsZ29yaXRobS5jdXJ2ZSxwcml2YXRlS2V5OkQuRUNQcml2YXRlS2V5'@; put 'LmRlY29kZShaLnN1YmplY3RQcml2YXRlS2V5LCJkZXIiKS5wcml2YXRlS2V5fTtjYXNlIjEuMi44NDAuMTAwNDAuNC4xIjpyZXR1cm4gWi5hbGdvcml0aG0ucGFyYW1zLnByaXZfa2V5PUQuRFNBcGFyYW0uZGVjb2RlKFouc3ViamVjdFByaXZhdGVLZXksImRlciIpLHt0eXBlOiJkc2EiLHBh'@; put 'cmFtczpaLmFsZ29yaXRobS5wYXJhbXN9O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGtleSBpZCAiK1cpfWNhc2UiUlNBIFBVQkxJQyBLRVkiOnJldHVybiBELlJTQVB1YmxpY0tleS5kZWNvZGUoQiwiZGVyIik7Y2FzZSJSU0EgUFJJVkFURSBLRVkiOnJldHVybiBELlJTQVBy'@; put 'aXZhdGVLZXkuZGVjb2RlKEIsImRlciIpO2Nhc2UiRFNBIFBSSVZBVEUgS0VZIjpyZXR1cm57dHlwZToiZHNhIixwYXJhbXM6RC5EU0FQcml2YXRlS2V5LmRlY29kZShCLCJkZXIiKX07Y2FzZSJFQyBQUklWQVRFIEtFWSI6cmV0dXJue2N1cnZlOihCPUQuRUNQcml2YXRlS2V5LmRlY29kZShC'@; put 'LCJkZXIiKSkucGFyYW1ldGVycy52YWx1ZSxwcml2YXRlS2V5OkIucHJpdmF0ZUtleX07ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoInVua25vd24ga2V5IHR5cGUgIitZKX19Ui5zaWduYXR1cmU9RC5zaWduYXR1cmUsY2UuZXhwb3J0cz1SfSw5MzM5NzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0'@; put 'IjtKLnBia2RmMj1iKDgyNjg1KSxKLnBia2RmMlN5bmM9Yig1OTExMSl9LDgyNjg1OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBGLFAsRD1iKDI3MDU0KS5CdWZmZXIsXz1iKDg2MTExKSxwPWIoNDUzOTIpLE49Yig1OTExMSksdz1iKDc2NjQzKSxIPWdsb2JhbC5jcnlwdG8mJmdsb2Jh'@; put 'bC5jcnlwdG8uc3VidGxlLFI9e3NoYToiU0hBLTEiLCJzaGEtMSI6IlNIQS0xIixzaGExOiJTSEEtMSIsc2hhMjU2OiJTSEEtMjU2Iiwic2hhLTI1NiI6IlNIQS0yNTYiLHNoYTM4NDoiU0hBLTM4NCIsInNoYS0zODQiOiJTSEEtMzg0Iiwic2hhLTUxMiI6IlNIQS01MTIiLHNoYTUxMjoiU0hB'@; put 'LTUxMiJ9LGo9W107ZnVuY3Rpb24gTCgpe3JldHVybiBQfHwoUD1nbG9iYWwucHJvY2VzcyYmZ2xvYmFsLnByb2Nlc3MubmV4dFRpY2s/Z2xvYmFsLnByb2Nlc3MubmV4dFRpY2s6Z2xvYmFsLnF1ZXVlTWljcm90YXNrP2dsb2JhbC5xdWV1ZU1pY3JvdGFzazpnbG9iYWwuc2V0SW1tZWRpYXRl'@; put 'P2dsb2JhbC5zZXRJbW1lZGlhdGU6Z2xvYmFsLnNldFRpbWVvdXQpfWZ1bmN0aW9uIFkoWixYLFEscSx0ZSl7cmV0dXJuIEguaW1wb3J0S2V5KCJyYXciLFose25hbWU6IlBCS0RGMiJ9LCExLFsiZGVyaXZlQml0cyJdKS50aGVuKGZ1bmN0aW9uKGllKXtyZXR1cm4gSC5kZXJpdmVCaXRzKHtu'@; put 'YW1lOiJQQktERjIiLHNhbHQ6WCxpdGVyYXRpb25zOlEsaGFzaDp7bmFtZTp0ZX19LGllLHE8PDMpfSkudGhlbihmdW5jdGlvbihpZSl7cmV0dXJuIEQuZnJvbShpZSl9KX1jZS5leHBvcnRzPWZ1bmN0aW9uKFosWCxRLHEsdGUsaWUpeyJmdW5jdGlvbiI9PXR5cGVvZiB0ZSYmKGllPXRlLHRl'@; put 'PXZvaWQgMCk7dmFyIHNlPVJbKHRlPXRlfHwic2hhMSIpLnRvTG93ZXJDYXNlKCldO2lmKHNlJiYiZnVuY3Rpb24iPT10eXBlb2YgZ2xvYmFsLlByb21pc2Upe2lmKF8oUSxxKSxaPXcoWixwLCJQYXNzd29yZCIpLFg9dyhYLHAsIlNhbHQiKSwiZnVuY3Rpb24iIT10eXBlb2YgaWUpdGhyb3cg'@; put 'bmV3IEVycm9yKCJObyBjYWxsYmFjayBwcm92aWRlZCB0byBwYmtkZjIiKTshZnVuY3Rpb24gVyhaLFgpe1oudGhlbihmdW5jdGlvbihRKXtMKCkoZnVuY3Rpb24oKXtYKG51bGwsUSl9KX0sZnVuY3Rpb24oUSl7TCgpKGZ1bmN0aW9uKCl7WChRKX0pfSl9KGZ1bmN0aW9uIEIoWil7aWYoZ2xv'@; put 'YmFsLnByb2Nlc3MmJiFnbG9iYWwucHJvY2Vzcy5icm93c2VyfHwhSHx8IUguaW1wb3J0S2V5fHwhSC5kZXJpdmVCaXRzKXJldHVybiBQcm9taXNlLnJlc29sdmUoITEpO2lmKHZvaWQgMCE9PWpbWl0pcmV0dXJuIGpbWl07dmFyIFg9WShGPUZ8fEQuYWxsb2MoOCksRiwxMCwxMjgsWikudGhl'@; put 'bihmdW5jdGlvbigpe3JldHVybiEwfSxmdW5jdGlvbigpe3JldHVybiExfSk7cmV0dXJuIGpbWl09WCxYfShzZSkudGhlbihmdW5jdGlvbihnZSl7cmV0dXJuIGdlP1koWixYLFEscSxzZSk6TihaLFgsUSxxLHRlKX0pLGllKX1lbHNlIEwoKShmdW5jdGlvbigpe3ZhciBnZTt0cnl7Z2U9Tiha'@; put 'LFgsUSxxLHRlKX1jYXRjaChfZSl7cmV0dXJuIHZvaWQgaWUoX2UpfWllKG51bGwsZ2UpfSl9fSw0NTM5MjpjZT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgSjtKPWdsb2JhbC5wcm9jZXNzJiZnbG9iYWwucHJvY2Vzcy5icm93c2VyPyJ1dGYtOCI6Z2xvYmFsLnByb2Nlc3MmJmdsb2JhbC5wcm9jZXNz'@; put 'LnZlcnNpb24/cGFyc2VJbnQocHJvY2Vzcy52ZXJzaW9uLnNwbGl0KCIuIilbMF0uc2xpY2UoMSksMTApPj02PyJ1dGYtOCI6ImJpbmFyeSI6InV0Zi04IixjZS5leHBvcnRzPUp9LDg2MTExOmNlPT57InVzZSBzdHJpY3QiO3ZhciBKPU1hdGgucG93KDIsMzApLTE7Y2UuZXhwb3J0cz1mdW5j'@; put 'dGlvbihiLEQpe2lmKCJudW1iZXIiIT10eXBlb2YgYil0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRpb25zIG5vdCBhIG51bWJlciIpO2lmKGI8MCl0aHJvdyBuZXcgVHlwZUVycm9yKCJCYWQgaXRlcmF0aW9ucyIpO2lmKCJudW1iZXIiIT10eXBlb2YgRCl0aHJvdyBuZXcgVHlwZUVycm9y'@; put 'KCJLZXkgbGVuZ3RoIG5vdCBhIG51bWJlciIpO2lmKEQ8MHx8RD5KfHxEIT1EKXRocm93IG5ldyBUeXBlRXJyb3IoIkJhZCBrZXkgbGVuZ3RoIil9fSw1OTExMTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDI1MDU2KSxfPWIoMjA2MDMpLHA9YigyNTQ0MyksTj1iKDI3MDU0KS5C'@; put 'dWZmZXIsdz1iKDg2MTExKSxGPWIoNDUzOTIpLEg9Yig3NjY0MyksUj1OLmFsbG9jKDEyOCksaj17X19wcm90b19fOm51bGwsbWQ1OjE2LHNoYTE6MjAsc2hhMjI0OjI4LHNoYTI1NjozMixzaGEzODQ6NDgsc2hhNTEyOjY0LCJzaGE1MTItMjU2IjozMixyaXBlbWQxNjA6MjAscm1kMTYwOjIw'@; put 'fSxQPXtfX3Byb3RvX186bnVsbCwic2hhLTEiOiJzaGExIiwic2hhLTIyNCI6InNoYTIyNCIsInNoYS0yNTYiOiJzaGEyNTYiLCJzaGEtMzg0Ijoic2hhMzg0Iiwic2hhLTUxMiI6InNoYTUxMiIsInJpcGVtZC0xNjAiOiJyaXBlbWQxNjAifTtmdW5jdGlvbiBMKFope3JldHVybihuZXcgXyku'@; put 'dXBkYXRlKFopLmRpZ2VzdCgpfWZ1bmN0aW9uIEIoWixYLFEpe3ZhciBxPWZ1bmN0aW9uIFkoWil7cmV0dXJuInJtZDE2MCI9PT1afHwicmlwZW1kMTYwIj09PVo/TDoibWQ1Ij09PVo/RDpmdW5jdGlvbiBYKFEpe3JldHVybiBwKFopLnVwZGF0ZShRKS5kaWdlc3QoKX19KFopLHRlPSJzaGE1'@; put 'MTIiPT09Wnx8InNoYTM4NCI9PT1aPzEyODo2NDtYLmxlbmd0aD50ZT9YPXEoWCk6WC5sZW5ndGg8dGUmJihYPU4uY29uY2F0KFtYLFJdLHRlKSk7Zm9yKHZhciBpZT1OLmFsbG9jVW5zYWZlKHRlK2pbWl0pLHNlPU4uYWxsb2NVbnNhZmUodGUraltaXSksZ2U9MDtnZTx0ZTtnZSsrKWllW2dl'@; put 'XT01NF5YW2dlXSxzZVtnZV09OTJeWFtnZV07dmFyIF9lPU4uYWxsb2NVbnNhZmUodGUrUSs0KTtpZS5jb3B5KF9lLDAsMCx0ZSksdGhpcy5pcGFkMT1fZSx0aGlzLmlwYWQyPWllLHRoaXMub3BhZD1zZSx0aGlzLmFsZz1aLHRoaXMuYmxvY2tzaXplPXRlLHRoaXMuaGFzaD1xLHRoaXMuc2l6'@; put 'ZT1qW1pdfUIucHJvdG90eXBlLnJ1bj1mdW5jdGlvbihaLFgpe3JldHVybiBaLmNvcHkoWCx0aGlzLmJsb2Nrc2l6ZSksdGhpcy5oYXNoKFgpLmNvcHkodGhpcy5vcGFkLHRoaXMuYmxvY2tzaXplKSx0aGlzLmhhc2godGhpcy5vcGFkKX0sY2UuZXhwb3J0cz1mdW5jdGlvbiBXKFosWCxRLHEs'@; put 'dGUpe3coUSxxKSxaPUgoWixGLCJQYXNzd29yZCIpLFg9SChYLEYsIlNhbHQiKTt2YXIgaWU9KHRlfHwic2hhMSIpLnRvTG93ZXJDYXNlKCksc2U9UFtpZV18fGllLGdlPWpbc2VdO2lmKCJudW1iZXIiIT10eXBlb2YgZ2V8fCFnZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJEaWdlc3QgYWxnb3Jp'@; put 'dGhtIG5vdCBzdXBwb3J0ZWQ6ICIrdGUpO3ZhciBfZT1uZXcgQihzZSxaLFgubGVuZ3RoKSxUZT1OLmFsbG9jVW5zYWZlKHEpLFNlPU4uYWxsb2NVbnNhZmUoWC5sZW5ndGgrNCk7WC5jb3B5KFNlLDAsMCxYLmxlbmd0aCk7Zm9yKHZhciB6ZT0wLHo9Z2UsZz1NYXRoLmNlaWwocS96KSx5PTE7'@; put 'eTw9Zzt5Kyspe1NlLndyaXRlVUludDMyQkUoeSxYLmxlbmd0aCk7Zm9yKHZhciB4PV9lLnJ1bihTZSxfZS5pcGFkMSksQz14LFQ9MTtUPFE7VCsrKXtDPV9lLnJ1bihDLF9lLmlwYWQyKTtmb3IodmFyIFY9MDtWPHo7VisrKXhbVl1ePUNbVl19eC5jb3B5KFRlLHplKSx6ZSs9en1yZXR1cm4g'@; put 'VGV9fSw3NjY0MzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDI3MDU0KS5CdWZmZXIsXz1iKDQxMDkwKSxwPXR5cGVvZiBVaW50OEFycmF5PCJ1Iix3PXAmJnR5cGVvZiBBcnJheUJ1ZmZlcjwidSImJkFycmF5QnVmZmVyLmlzVmlldztjZS5leHBvcnRzPWZ1bmN0aW9uKEYsSCxS'@; put 'KXtpZigic3RyaW5nIj09dHlwZW9mIEZ8fEQuaXNCdWZmZXIoRil8fHAmJkYgaW5zdGFuY2VvZiBVaW50OEFycmF5fHx3JiZ3KEYpKXJldHVybiBfKEYsSCk7dGhyb3cgbmV3IFR5cGVFcnJvcihSKyIgbXVzdCBiZSBhIHN0cmluZywgYSBCdWZmZXIsIGEgVWludDhBcnJheSwgb3IgYSBEYXRh'@; put 'VmlldyIpfX0sODYwNjk6Y2U9PnsidXNlIHN0cmljdCI7dmFyIGI9bmV3IEJ1ZmZlcig0KTtiLmZpbGwoMCksY2UuZXhwb3J0cz1mdW5jdGlvbih3LEYpe3ZhciBIPUYoZnVuY3Rpb24gcChOKXtOLmxlbmd0aCU0IT0wJiYoTj1CdWZmZXIuY29uY2F0KFtOLGJdLE4ubGVuZ3RoKyg0LU4ubGVu'@; put 'Z3RoJTQpKSk7Zm9yKHZhciBGPW5ldyBBcnJheShOLmxlbmd0aD4+PjIpLEg9MCxSPTA7SDxOLmxlbmd0aDtIKz00LFIrKylGW1JdPU4ucmVhZEludDMyTEUoSCk7cmV0dXJuIEZ9KHcpLDgqdy5sZW5ndGgpO3c9bmV3IEJ1ZmZlcigxNik7Zm9yKHZhciBSPTA7UjxILmxlbmd0aDtSKyspdy53'@; put 'cml0ZUludDMyTEUoSFtSXSxSPDwyLCEwKTtyZXR1cm4gd319LDI1MDU2OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoODYwNjkpO2Z1bmN0aW9uIF8oUCxMKXtQW0w+PjVdfD0xMjg8PEwlMzIsUFsxNCsoTCs2ND4+Pjk8PDQpXT1MO2Zvcih2YXIgWT0xNzMyNTg0MTkzLEI9LTI3'@; put 'MTczMzg3OSxXPS0xNzMyNTg0MTk0LFo9MjcxNzMzODc4LFg9MDtYPFAubGVuZ3RoO1grPTE2KXt2YXIgUT1ZLHE9Qix0ZT1XLGllPVo7WT1OKFksQixXLFosUFtYKzBdLDcsLTY4MDg3NjkzNiksWj1OKFosWSxCLFcsUFtYKzFdLDEyLC0zODk1NjQ1ODYpLFc9TihXLFosWSxCLFBbWCsyXSwx'@; put 'Nyw2MDYxMDU4MTkpLEI9TihCLFcsWixZLFBbWCszXSwyMiwtMTA0NDUyNTMzMCksWT1OKFksQixXLFosUFtYKzRdLDcsLTE3NjQxODg5NyksWj1OKFosWSxCLFcsUFtYKzVdLDEyLDEyMDAwODA0MjYpLFc9TihXLFosWSxCLFBbWCs2XSwxNywtMTQ3MzIzMTM0MSksQj1OKEIsVyxaLFksUFtY'@; put 'KzddLDIyLC00NTcwNTk4MyksWT1OKFksQixXLFosUFtYKzhdLDcsMTc3MDAzNTQxNiksWj1OKFosWSxCLFcsUFtYKzldLDEyLC0xOTU4NDE0NDE3KSxXPU4oVyxaLFksQixQW1grMTBdLDE3LC00MjA2MyksQj1OKEIsVyxaLFksUFtYKzExXSwyMiwtMTk5MDQwNDE2MiksWT1OKFksQixXLFos'@; put 'UFtYKzEyXSw3LDE4MDQ2MDM2ODIpLFo9TihaLFksQixXLFBbWCsxM10sMTIsLTQwMzQxMTAxKSxXPU4oVyxaLFksQixQW1grMTRdLDE3LC0xNTAyMDAyMjkwKSxZPXcoWSxCPU4oQixXLFosWSxQW1grMTVdLDIyLDEyMzY1MzUzMjkpLFcsWixQW1grMV0sNSwtMTY1Nzk2NTEwKSxaPXcoWixZ'@; put 'LEIsVyxQW1grNl0sOSwtMTA2OTUwMTYzMiksVz13KFcsWixZLEIsUFtYKzExXSwxNCw2NDM3MTc3MTMpLEI9dyhCLFcsWixZLFBbWCswXSwyMCwtMzczODk3MzAyKSxZPXcoWSxCLFcsWixQW1grNV0sNSwtNzAxNTU4NjkxKSxaPXcoWixZLEIsVyxQW1grMTBdLDksMzgwMTYwODMpLFc9dyhX'@; put 'LFosWSxCLFBbWCsxNV0sMTQsLTY2MDQ3ODMzNSksQj13KEIsVyxaLFksUFtYKzRdLDIwLC00MDU1Mzc4NDgpLFk9dyhZLEIsVyxaLFBbWCs5XSw1LDU2ODQ0NjQzOCksWj13KFosWSxCLFcsUFtYKzE0XSw5LC0xMDE5ODAzNjkwKSxXPXcoVyxaLFksQixQW1grM10sMTQsLTE4NzM2Mzk2MSks'@; put 'Qj13KEIsVyxaLFksUFtYKzhdLDIwLDExNjM1MzE1MDEpLFk9dyhZLEIsVyxaLFBbWCsxM10sNSwtMTQ0NDY4MTQ2NyksWj13KFosWSxCLFcsUFtYKzJdLDksLTUxNDAzNzg0KSxXPXcoVyxaLFksQixQW1grN10sMTQsMTczNTMyODQ3MyksWT1GKFksQj13KEIsVyxaLFksUFtYKzEyXSwyMCwt'@; put 'MTkyNjYwNzczNCksVyxaLFBbWCs1XSw0LC0zNzg1NTgpLFo9RihaLFksQixXLFBbWCs4XSwxMSwtMjAyMjU3NDQ2MyksVz1GKFcsWixZLEIsUFtYKzExXSwxNiwxODM5MDMwNTYyKSxCPUYoQixXLFosWSxQW1grMTRdLDIzLC0zNTMwOTU1NiksWT1GKFksQixXLFosUFtYKzFdLDQsLTE1MzA5'@; put 'OTIwNjApLFo9RihaLFksQixXLFBbWCs0XSwxMSwxMjcyODkzMzUzKSxXPUYoVyxaLFksQixQW1grN10sMTYsLTE1NTQ5NzYzMiksQj1GKEIsVyxaLFksUFtYKzEwXSwyMywtMTA5NDczMDY0MCksWT1GKFksQixXLFosUFtYKzEzXSw0LDY4MTI3OTE3NCksWj1GKFosWSxCLFcsUFtYKzBdLDEx'@; put 'LC0zNTg1MzcyMjIpLFc9RihXLFosWSxCLFBbWCszXSwxNiwtNzIyNTIxOTc5KSxCPUYoQixXLFosWSxQW1grNl0sMjMsNzYwMjkxODkpLFk9RihZLEIsVyxaLFBbWCs5XSw0LC02NDAzNjQ0ODcpLFo9RihaLFksQixXLFBbWCsxMl0sMTEsLTQyMTgxNTgzNSksVz1GKFcsWixZLEIsUFtYKzE1'@; put 'XSwxNiw1MzA3NDI1MjApLFk9SChZLEI9RihCLFcsWixZLFBbWCsyXSwyMywtOTk1MzM4NjUxKSxXLFosUFtYKzBdLDYsLTE5ODYzMDg0NCksWj1IKFosWSxCLFcsUFtYKzddLDEwLDExMjY4OTE0MTUpLFc9SChXLFosWSxCLFBbWCsxNF0sMTUsLTE0MTYzNTQ5MDUpLEI9SChCLFcsWixZLFBb'@; put 'WCs1XSwyMSwtNTc0MzQwNTUpLFk9SChZLEIsVyxaLFBbWCsxMl0sNiwxNzAwNDg1NTcxKSxaPUgoWixZLEIsVyxQW1grM10sMTAsLTE4OTQ5ODY2MDYpLFc9SChXLFosWSxCLFBbWCsxMF0sMTUsLTEwNTE1MjMpLEI9SChCLFcsWixZLFBbWCsxXSwyMSwtMjA1NDkyMjc5OSksWT1IKFksQixX'@; put 'LFosUFtYKzhdLDYsMTg3MzMxMzM1OSksWj1IKFosWSxCLFcsUFtYKzE1XSwxMCwtMzA2MTE3NDQpLFc9SChXLFosWSxCLFBbWCs2XSwxNSwtMTU2MDE5ODM4MCksQj1IKEIsVyxaLFksUFtYKzEzXSwyMSwxMzA5MTUxNjQ5KSxZPUgoWSxCLFcsWixQW1grNF0sNiwtMTQ1NTIzMDcwKSxaPUgo'@; put 'WixZLEIsVyxQW1grMTFdLDEwLC0xMTIwMjEwMzc5KSxXPUgoVyxaLFksQixQW1grMl0sMTUsNzE4Nzg3MjU5KSxCPUgoQixXLFosWSxQW1grOV0sMjEsLTM0MzQ4NTU1MSksWT1SKFksUSksQj1SKEIscSksVz1SKFcsdGUpLFo9UihaLGllKX1yZXR1cm5bWSxCLFcsWl19ZnVuY3Rpb24gcChQ'@; put 'LEwsWSxCLFcsWil7cmV0dXJuIFIoZnVuY3Rpb24gaihQLEwpe3JldHVybiBQPDxMfFA+Pj4zMi1MfShSKFIoTCxQKSxSKEIsWikpLFcpLFkpfWZ1bmN0aW9uIE4oUCxMLFksQixXLFosWCl7cmV0dXJuIHAoTCZZfH5MJkIsUCxMLFcsWixYKX1mdW5jdGlvbiB3KFAsTCxZLEIsVyxaLFgpe3Jl'@; put 'dHVybiBwKEwmQnxZJn5CLFAsTCxXLFosWCl9ZnVuY3Rpb24gRihQLEwsWSxCLFcsWixYKXtyZXR1cm4gcChMXlleQixQLEwsVyxaLFgpfWZ1bmN0aW9uIEgoUCxMLFksQixXLFosWCl7cmV0dXJuIHAoWV4oTHx+QiksUCxMLFcsWixYKX1mdW5jdGlvbiBSKFAsTCl7dmFyIFk9KDY1NTM1JlAp'@; put 'Kyg2NTUzNSZMKTtyZXR1cm4oUD4+MTYpKyhMPj4xNikrKFk+PjE2KTw8MTZ8NjU1MzUmWX1jZS5leHBvcnRzPWZ1bmN0aW9uKEwpe3JldHVybiBEKEwsXyl9fSw4MzgzMzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDcwNDUpLlRyYW5zZm9ybTtmdW5jdGlvbiBwKE4pe0QuY2Fs'@; put 'bCh0aGlzKSx0aGlzLl9ibG9jaz1uZXcgQnVmZmVyKE4pLHRoaXMuX2Jsb2NrU2l6ZT1OLHRoaXMuX2Jsb2NrT2Zmc2V0PTAsdGhpcy5fbGVuZ3RoPVswLDAsMCwwXSx0aGlzLl9maW5hbGl6ZWQ9ITF9Yig3MTk5MykocCxEKSxwLnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1bmN0aW9uKE4sdyxG'@; put 'KXt2YXIgSD1udWxsO3RyeXsiYnVmZmVyIiE9PXcmJihOPW5ldyBCdWZmZXIoTix3KSksdGhpcy51cGRhdGUoTil9Y2F0Y2goUil7SD1SfUYoSCl9LHAucHJvdG90eXBlLl9mbHVzaD1mdW5jdGlvbihOKXt2YXIgdz1udWxsO3RyeXt0aGlzLnB1c2godGhpcy5fZGlnZXN0KCkpfWNhdGNoKEYp'@; put 'e3c9Rn1OKHcpfSxwLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oTix3KXtpZighQnVmZmVyLmlzQnVmZmVyKE4pJiYic3RyaW5nIiE9dHlwZW9mIE4pdGhyb3cgbmV3IFR5cGVFcnJvcigiRGF0YSBtdXN0IGJlIGEgc3RyaW5nIG9yIGEgYnVmZmVyIik7aWYodGhpcy5fZmluYWxpemVkKXRo'@; put 'cm93IG5ldyBFcnJvcigiRGlnZXN0IGFscmVhZHkgY2FsbGVkIik7QnVmZmVyLmlzQnVmZmVyKE4pfHwoTj1uZXcgQnVmZmVyKE4sd3x8ImJpbmFyeSIpKTtmb3IodmFyIEY9dGhpcy5fYmxvY2ssSD0wO3RoaXMuX2Jsb2NrT2Zmc2V0K04ubGVuZ3RoLUg+PXRoaXMuX2Jsb2NrU2l6ZTspe2Zv'@; put 'cih2YXIgUj10aGlzLl9ibG9ja09mZnNldDtSPHRoaXMuX2Jsb2NrU2l6ZTspRltSKytdPU5bSCsrXTt0aGlzLl91cGRhdGUoKSx0aGlzLl9ibG9ja09mZnNldD0wfWZvcig7SDxOLmxlbmd0aDspRlt0aGlzLl9ibG9ja09mZnNldCsrXT1OW0grK107Zm9yKHZhciBqPTAsUD04Kk4ubGVuZ3Ro'@; put 'O1A+MDsrK2opdGhpcy5fbGVuZ3RoW2pdKz1QLChQPXRoaXMuX2xlbmd0aFtqXS80Mjk0OTY3Mjk2fDApPjAmJih0aGlzLl9sZW5ndGhbal0tPTQyOTQ5NjcyOTYqUCk7cmV0dXJuIHRoaXN9LHAucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oTil7dGhyb3cgbmV3IEVycm9yKCJfdXBkYXRl'@; put 'IGlzIG5vdCBpbXBsZW1lbnRlZCIpfSxwLnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24oTil7aWYodGhpcy5fZmluYWxpemVkKXRocm93IG5ldyBFcnJvcigiRGlnZXN0IGFscmVhZHkgY2FsbGVkIik7dGhpcy5fZmluYWxpemVkPSEwO3ZhciB3PXRoaXMuX2RpZ2VzdCgpO3JldHVybiB2b2lk'@; put 'IDAhPT1OJiYodz13LnRvU3RyaW5nKE4pKSx3fSxwLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJfZGlnZXN0IGlzIG5vdCBpbXBsZW1lbnRlZCIpfSxjZS5leHBvcnRzPXB9LDIwNjAzOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNzE5OTMp'@; put 'LF89Yig4MzgzMyk7ZnVuY3Rpb24gcCgpe18uY2FsbCh0aGlzLDY0KSx0aGlzLl9hPTE3MzI1ODQxOTMsdGhpcy5fYj00MDIzMjMzNDE3LHRoaXMuX2M9MjU2MjM4MzEwMix0aGlzLl9kPTI3MTczMzg3OCx0aGlzLl9lPTMyODUzNzc1MjB9ZnVuY3Rpb24gTihQLEwpe3JldHVybiBQPDxMfFA+'@; put 'Pj4zMi1MfWZ1bmN0aW9uIHcoUCxMLFksQixXLFosWCxRKXtyZXR1cm4gTihQKyhMXlleQikrWitYfDAsUSkrV3wwfWZ1bmN0aW9uIEYoUCxMLFksQixXLFosWCxRKXtyZXR1cm4gTihQKyhMJll8fkwmQikrWitYfDAsUSkrV3wwfWZ1bmN0aW9uIEgoUCxMLFksQixXLFosWCxRKXtyZXR1cm4g'@; put 'TihQKygoTHx+WSleQikrWitYfDAsUSkrV3wwfWZ1bmN0aW9uIFIoUCxMLFksQixXLFosWCxRKXtyZXR1cm4gTihQKyhMJkJ8WSZ+QikrWitYfDAsUSkrV3wwfWZ1bmN0aW9uIGooUCxMLFksQixXLFosWCxRKXtyZXR1cm4gTihQKyhMXihZfH5CKSkrWitYfDAsUSkrV3wwfUQocCxfKSxwLnBy'@; put 'b3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKCl7Zm9yKHZhciBQPW5ldyBBcnJheSgxNiksTD0wO0w8MTY7KytMKVBbTF09dGhpcy5fYmxvY2sucmVhZEludDMyTEUoNCpMKTt2YXIgWT10aGlzLl9hLEI9dGhpcy5fYixXPXRoaXMuX2MsWj10aGlzLl9kLFg9dGhpcy5fZTtZPXcoWSxCLFcsWixY'@; put 'LFBbMF0sMCwxMSksWD13KFgsWSxCLFc9TihXLDEwKSxaLFBbMV0sMCwxNCksWj13KFosWCxZLEI9TihCLDEwKSxXLFBbMl0sMCwxNSksVz13KFcsWixYLFk9TihZLDEwKSxCLFBbM10sMCwxMiksQj13KEIsVyxaLFg9TihYLDEwKSxZLFBbNF0sMCw1KSxZPXcoWSxCLFcsWj1OKFosMTApLFgs'@; put 'UFs1XSwwLDgpLFg9dyhYLFksQixXPU4oVywxMCksWixQWzZdLDAsNyksWj13KFosWCxZLEI9TihCLDEwKSxXLFBbN10sMCw5KSxXPXcoVyxaLFgsWT1OKFksMTApLEIsUFs4XSwwLDExKSxCPXcoQixXLFosWD1OKFgsMTApLFksUFs5XSwwLDEzKSxZPXcoWSxCLFcsWj1OKFosMTApLFgsUFsx'@; put 'MF0sMCwxNCksWD13KFgsWSxCLFc9TihXLDEwKSxaLFBbMTFdLDAsMTUpLFo9dyhaLFgsWSxCPU4oQiwxMCksVyxQWzEyXSwwLDYpLFc9dyhXLFosWCxZPU4oWSwxMCksQixQWzEzXSwwLDcpLEI9dyhCLFcsWixYPU4oWCwxMCksWSxQWzE0XSwwLDkpLFg9RihYLFk9dyhZLEIsVyxaPU4oWiwx'@; put 'MCksWCxQWzE1XSwwLDgpLEIsVz1OKFcsMTApLFosUFs3XSwxNTE4NTAwMjQ5LDcpLFo9RihaLFgsWSxCPU4oQiwxMCksVyxQWzRdLDE1MTg1MDAyNDksNiksVz1GKFcsWixYLFk9TihZLDEwKSxCLFBbMTNdLDE1MTg1MDAyNDksOCksQj1GKEIsVyxaLFg9TihYLDEwKSxZLFBbMV0sMTUxODUw'@; put 'MDI0OSwxMyksWT1GKFksQixXLFo9TihaLDEwKSxYLFBbMTBdLDE1MTg1MDAyNDksMTEpLFg9RihYLFksQixXPU4oVywxMCksWixQWzZdLDE1MTg1MDAyNDksOSksWj1GKFosWCxZLEI9TihCLDEwKSxXLFBbMTVdLDE1MTg1MDAyNDksNyksVz1GKFcsWixYLFk9TihZLDEwKSxCLFBbM10sMTUx'@; put 'ODUwMDI0OSwxNSksQj1GKEIsVyxaLFg9TihYLDEwKSxZLFBbMTJdLDE1MTg1MDAyNDksNyksWT1GKFksQixXLFo9TihaLDEwKSxYLFBbMF0sMTUxODUwMDI0OSwxMiksWD1GKFgsWSxCLFc9TihXLDEwKSxaLFBbOV0sMTUxODUwMDI0OSwxNSksWj1GKFosWCxZLEI9TihCLDEwKSxXLFBbNV0s'@; put 'MTUxODUwMDI0OSw5KSxXPUYoVyxaLFgsWT1OKFksMTApLEIsUFsyXSwxNTE4NTAwMjQ5LDExKSxCPUYoQixXLFosWD1OKFgsMTApLFksUFsxNF0sMTUxODUwMDI0OSw3KSxZPUYoWSxCLFcsWj1OKFosMTApLFgsUFsxMV0sMTUxODUwMDI0OSwxMyksWj1IKFosWD1GKFgsWSxCLFc9TihXLDEw'@; put 'KSxaLFBbOF0sMTUxODUwMDI0OSwxMiksWSxCPU4oQiwxMCksVyxQWzNdLDE4NTk3NzUzOTMsMTEpLFc9SChXLFosWCxZPU4oWSwxMCksQixQWzEwXSwxODU5Nzc1MzkzLDEzKSxCPUgoQixXLFosWD1OKFgsMTApLFksUFsxNF0sMTg1OTc3NTM5Myw2KSxZPUgoWSxCLFcsWj1OKFosMTApLFgs'@; put 'UFs0XSwxODU5Nzc1MzkzLDcpLFg9SChYLFksQixXPU4oVywxMCksWixQWzldLDE4NTk3NzUzOTMsMTQpLFo9SChaLFgsWSxCPU4oQiwxMCksVyxQWzE1XSwxODU5Nzc1MzkzLDkpLFc9SChXLFosWCxZPU4oWSwxMCksQixQWzhdLDE4NTk3NzUzOTMsMTMpLEI9SChCLFcsWixYPU4oWCwxMCks'@; put 'WSxQWzFdLDE4NTk3NzUzOTMsMTUpLFk9SChZLEIsVyxaPU4oWiwxMCksWCxQWzJdLDE4NTk3NzUzOTMsMTQpLFg9SChYLFksQixXPU4oVywxMCksWixQWzddLDE4NTk3NzUzOTMsOCksWj1IKFosWCxZLEI9TihCLDEwKSxXLFBbMF0sMTg1OTc3NTM5MywxMyksVz1IKFcsWixYLFk9TihZLDEw'@; put 'KSxCLFBbNl0sMTg1OTc3NTM5Myw2KSxCPUgoQixXLFosWD1OKFgsMTApLFksUFsxM10sMTg1OTc3NTM5Myw1KSxZPUgoWSxCLFcsWj1OKFosMTApLFgsUFsxMV0sMTg1OTc3NTM5MywxMiksWD1IKFgsWSxCLFc9TihXLDEwKSxaLFBbNV0sMTg1OTc3NTM5Myw3KSxXPVIoVyxaPUgoWixYLFks'@; put 'Qj1OKEIsMTApLFcsUFsxMl0sMTg1OTc3NTM5Myw1KSxYLFk9TihZLDEwKSxCLFBbMV0sMjQwMDk1OTcwOCwxMSksQj1SKEIsVyxaLFg9TihYLDEwKSxZLFBbOV0sMjQwMDk1OTcwOCwxMiksWT1SKFksQixXLFo9TihaLDEwKSxYLFBbMTFdLDI0MDA5NTk3MDgsMTQpLFg9UihYLFksQixXPU4o'@; put 'VywxMCksWixQWzEwXSwyNDAwOTU5NzA4LDE1KSxaPVIoWixYLFksQj1OKEIsMTApLFcsUFswXSwyNDAwOTU5NzA4LDE0KSxXPVIoVyxaLFgsWT1OKFksMTApLEIsUFs4XSwyNDAwOTU5NzA4LDE1KSxCPVIoQixXLFosWD1OKFgsMTApLFksUFsxMl0sMjQwMDk1OTcwOCw5KSxZPVIoWSxCLFcs'@; put 'Wj1OKFosMTApLFgsUFs0XSwyNDAwOTU5NzA4LDgpLFg9UihYLFksQixXPU4oVywxMCksWixQWzEzXSwyNDAwOTU5NzA4LDkpLFo9UihaLFgsWSxCPU4oQiwxMCksVyxQWzNdLDI0MDA5NTk3MDgsMTQpLFc9UihXLFosWCxZPU4oWSwxMCksQixQWzddLDI0MDA5NTk3MDgsNSksQj1SKEIsVyxa'@; put 'LFg9TihYLDEwKSxZLFBbMTVdLDI0MDA5NTk3MDgsNiksWT1SKFksQixXLFo9TihaLDEwKSxYLFBbMTRdLDI0MDA5NTk3MDgsOCksWD1SKFgsWSxCLFc9TihXLDEwKSxaLFBbNV0sMjQwMDk1OTcwOCw2KSxaPVIoWixYLFksQj1OKEIsMTApLFcsUFs2XSwyNDAwOTU5NzA4LDUpLEI9aihCLFc9'@; put 'UihXLFosWCxZPU4oWSwxMCksQixQWzJdLDI0MDA5NTk3MDgsMTIpLFosWD1OKFgsMTApLFksUFs0XSwyODQwODUzODM4LDkpLFk9aihZLEIsVyxaPU4oWiwxMCksWCxQWzBdLDI4NDA4NTM4MzgsMTUpLFg9aihYLFksQixXPU4oVywxMCksWixQWzVdLDI4NDA4NTM4MzgsNSksWj1qKFosWCxZ'@; put 'LEI9TihCLDEwKSxXLFBbOV0sMjg0MDg1MzgzOCwxMSksVz1qKFcsWixYLFk9TihZLDEwKSxCLFBbN10sMjg0MDg1MzgzOCw2KSxCPWooQixXLFosWD1OKFgsMTApLFksUFsxMl0sMjg0MDg1MzgzOCw4KSxZPWooWSxCLFcsWj1OKFosMTApLFgsUFsyXSwyODQwODUzODM4LDEzKSxYPWooWCxZ'@; put 'LEIsVz1OKFcsMTApLFosUFsxMF0sMjg0MDg1MzgzOCwxMiksWj1qKFosWCxZLEI9TihCLDEwKSxXLFBbMTRdLDI4NDA4NTM4MzgsNSksVz1qKFcsWixYLFk9TihZLDEwKSxCLFBbMV0sMjg0MDg1MzgzOCwxMiksQj1qKEIsVyxaLFg9TihYLDEwKSxZLFBbM10sMjg0MDg1MzgzOCwxMyksWT1q'@; put 'KFksQixXLFo9TihaLDEwKSxYLFBbOF0sMjg0MDg1MzgzOCwxNCksWD1qKFgsWSxCLFc9TihXLDEwKSxaLFBbMTFdLDI4NDA4NTM4MzgsMTEpLFo9aihaLFgsWSxCPU4oQiwxMCksVyxQWzZdLDI4NDA4NTM4MzgsOCksVz1qKFcsWixYLFk9TihZLDEwKSxCLFBbMTVdLDI4NDA4NTM4MzgsNSks'@; put 'Qj1qKEIsVyxaLFg9TihYLDEwKSxZLFBbMTNdLDI4NDA4NTM4MzgsNiksWj1OKFosMTApO3ZhciBRPXRoaXMuX2EscT10aGlzLl9iLHRlPXRoaXMuX2MsaWU9dGhpcy5fZCxzZT10aGlzLl9lO1E9aihRLHEsdGUsaWUsc2UsUFs1XSwxMzUyODI5OTI2LDgpLHNlPWooc2UsUSxxLHRlPU4odGUs'@; put 'MTApLGllLFBbMTRdLDEzNTI4Mjk5MjYsOSksaWU9aihpZSxzZSxRLHE9TihxLDEwKSx0ZSxQWzddLDEzNTI4Mjk5MjYsOSksdGU9aih0ZSxpZSxzZSxRPU4oUSwxMCkscSxQWzBdLDEzNTI4Mjk5MjYsMTEpLHE9aihxLHRlLGllLHNlPU4oc2UsMTApLFEsUFs5XSwxMzUyODI5OTI2LDEzKSxR'@; put 'PWooUSxxLHRlLGllPU4oaWUsMTApLHNlLFBbMl0sMTM1MjgyOTkyNiwxNSksc2U9aihzZSxRLHEsdGU9Tih0ZSwxMCksaWUsUFsxMV0sMTM1MjgyOTkyNiwxNSksaWU9aihpZSxzZSxRLHE9TihxLDEwKSx0ZSxQWzRdLDEzNTI4Mjk5MjYsNSksdGU9aih0ZSxpZSxzZSxRPU4oUSwxMCkscSxQ'@; put 'WzEzXSwxMzUyODI5OTI2LDcpLHE9aihxLHRlLGllLHNlPU4oc2UsMTApLFEsUFs2XSwxMzUyODI5OTI2LDcpLFE9aihRLHEsdGUsaWU9TihpZSwxMCksc2UsUFsxNV0sMTM1MjgyOTkyNiw4KSxzZT1qKHNlLFEscSx0ZT1OKHRlLDEwKSxpZSxQWzhdLDEzNTI4Mjk5MjYsMTEpLGllPWooaWUs'@; put 'c2UsUSxxPU4ocSwxMCksdGUsUFsxXSwxMzUyODI5OTI2LDE0KSx0ZT1qKHRlLGllLHNlLFE9TihRLDEwKSxxLFBbMTBdLDEzNTI4Mjk5MjYsMTQpLHE9aihxLHRlLGllLHNlPU4oc2UsMTApLFEsUFszXSwxMzUyODI5OTI2LDEyKSxzZT1SKHNlLFE9aihRLHEsdGUsaWU9TihpZSwxMCksc2Us'@; put 'UFsxMl0sMTM1MjgyOTkyNiw2KSxxLHRlPU4odGUsMTApLGllLFBbNl0sMTU0ODYwMzY4NCw5KSxpZT1SKGllLHNlLFEscT1OKHEsMTApLHRlLFBbMTFdLDE1NDg2MDM2ODQsMTMpLHRlPVIodGUsaWUsc2UsUT1OKFEsMTApLHEsUFszXSwxNTQ4NjAzNjg0LDE1KSxxPVIocSx0ZSxpZSxzZT1O'@; put 'KHNlLDEwKSxRLFBbN10sMTU0ODYwMzY4NCw3KSxRPVIoUSxxLHRlLGllPU4oaWUsMTApLHNlLFBbMF0sMTU0ODYwMzY4NCwxMiksc2U9UihzZSxRLHEsdGU9Tih0ZSwxMCksaWUsUFsxM10sMTU0ODYwMzY4NCw4KSxpZT1SKGllLHNlLFEscT1OKHEsMTApLHRlLFBbNV0sMTU0ODYwMzY4NCw5'@; put 'KSx0ZT1SKHRlLGllLHNlLFE9TihRLDEwKSxxLFBbMTBdLDE1NDg2MDM2ODQsMTEpLHE9UihxLHRlLGllLHNlPU4oc2UsMTApLFEsUFsxNF0sMTU0ODYwMzY4NCw3KSxRPVIoUSxxLHRlLGllPU4oaWUsMTApLHNlLFBbMTVdLDE1NDg2MDM2ODQsNyksc2U9UihzZSxRLHEsdGU9Tih0ZSwxMCks'@; put 'aWUsUFs4XSwxNTQ4NjAzNjg0LDEyKSxpZT1SKGllLHNlLFEscT1OKHEsMTApLHRlLFBbMTJdLDE1NDg2MDM2ODQsNyksdGU9Uih0ZSxpZSxzZSxRPU4oUSwxMCkscSxQWzRdLDE1NDg2MDM2ODQsNikscT1SKHEsdGUsaWUsc2U9TihzZSwxMCksUSxQWzldLDE1NDg2MDM2ODQsMTUpLFE9UihR'@; put 'LHEsdGUsaWU9TihpZSwxMCksc2UsUFsxXSwxNTQ4NjAzNjg0LDEzKSxpZT1IKGllLHNlPVIoc2UsUSxxLHRlPU4odGUsMTApLGllLFBbMl0sMTU0ODYwMzY4NCwxMSksUSxxPU4ocSwxMCksdGUsUFsxNV0sMTgzNjA3MjY5MSw5KSx0ZT1IKHRlLGllLHNlLFE9TihRLDEwKSxxLFBbNV0sMTgz'@; put 'NjA3MjY5MSw3KSxxPUgocSx0ZSxpZSxzZT1OKHNlLDEwKSxRLFBbMV0sMTgzNjA3MjY5MSwxNSksUT1IKFEscSx0ZSxpZT1OKGllLDEwKSxzZSxQWzNdLDE4MzYwNzI2OTEsMTEpLHNlPUgoc2UsUSxxLHRlPU4odGUsMTApLGllLFBbN10sMTgzNjA3MjY5MSw4KSxpZT1IKGllLHNlLFEscT1O'@; put 'KHEsMTApLHRlLFBbMTRdLDE4MzYwNzI2OTEsNiksdGU9SCh0ZSxpZSxzZSxRPU4oUSwxMCkscSxQWzZdLDE4MzYwNzI2OTEsNikscT1IKHEsdGUsaWUsc2U9TihzZSwxMCksUSxQWzldLDE4MzYwNzI2OTEsMTQpLFE9SChRLHEsdGUsaWU9TihpZSwxMCksc2UsUFsxMV0sMTgzNjA3MjY5MSwx'@; put 'Miksc2U9SChzZSxRLHEsdGU9Tih0ZSwxMCksaWUsUFs4XSwxODM2MDcyNjkxLDEzKSxpZT1IKGllLHNlLFEscT1OKHEsMTApLHRlLFBbMTJdLDE4MzYwNzI2OTEsNSksdGU9SCh0ZSxpZSxzZSxRPU4oUSwxMCkscSxQWzJdLDE4MzYwNzI2OTEsMTQpLHE9SChxLHRlLGllLHNlPU4oc2UsMTAp'@; put 'LFEsUFsxMF0sMTgzNjA3MjY5MSwxMyksUT1IKFEscSx0ZSxpZT1OKGllLDEwKSxzZSxQWzBdLDE4MzYwNzI2OTEsMTMpLHNlPUgoc2UsUSxxLHRlPU4odGUsMTApLGllLFBbNF0sMTgzNjA3MjY5MSw3KSx0ZT1GKHRlLGllPUgoaWUsc2UsUSxxPU4ocSwxMCksdGUsUFsxM10sMTgzNjA3MjY5'@; put 'MSw1KSxzZSxRPU4oUSwxMCkscSxQWzhdLDIwNTM5OTQyMTcsMTUpLHE9RihxLHRlLGllLHNlPU4oc2UsMTApLFEsUFs2XSwyMDUzOTk0MjE3LDUpLFE9RihRLHEsdGUsaWU9TihpZSwxMCksc2UsUFs0XSwyMDUzOTk0MjE3LDgpLHNlPUYoc2UsUSxxLHRlPU4odGUsMTApLGllLFBbMV0sMjA1'@; put 'Mzk5NDIxNywxMSksaWU9RihpZSxzZSxRLHE9TihxLDEwKSx0ZSxQWzNdLDIwNTM5OTQyMTcsMTQpLHRlPUYodGUsaWUsc2UsUT1OKFEsMTApLHEsUFsxMV0sMjA1Mzk5NDIxNywxNCkscT1GKHEsdGUsaWUsc2U9TihzZSwxMCksUSxQWzE1XSwyMDUzOTk0MjE3LDYpLFE9RihRLHEsdGUsaWU9'@; put 'TihpZSwxMCksc2UsUFswXSwyMDUzOTk0MjE3LDE0KSxzZT1GKHNlLFEscSx0ZT1OKHRlLDEwKSxpZSxQWzVdLDIwNTM5OTQyMTcsNiksaWU9RihpZSxzZSxRLHE9TihxLDEwKSx0ZSxQWzEyXSwyMDUzOTk0MjE3LDkpLHRlPUYodGUsaWUsc2UsUT1OKFEsMTApLHEsUFsyXSwyMDUzOTk0MjE3'@; put 'LDEyKSxxPUYocSx0ZSxpZSxzZT1OKHNlLDEwKSxRLFBbMTNdLDIwNTM5OTQyMTcsOSksUT1GKFEscSx0ZSxpZT1OKGllLDEwKSxzZSxQWzldLDIwNTM5OTQyMTcsMTIpLHNlPUYoc2UsUSxxLHRlPU4odGUsMTApLGllLFBbN10sMjA1Mzk5NDIxNyw1KSxpZT1GKGllLHNlLFEscT1OKHEsMTAp'@; put 'LHRlLFBbMTBdLDIwNTM5OTQyMTcsMTUpLHE9dyhxLHRlPUYodGUsaWUsc2UsUT1OKFEsMTApLHEsUFsxNF0sMjA1Mzk5NDIxNyw4KSxpZSxzZT1OKHNlLDEwKSxRLFBbMTJdLDAsOCksUT13KFEscSx0ZSxpZT1OKGllLDEwKSxzZSxQWzE1XSwwLDUpLHNlPXcoc2UsUSxxLHRlPU4odGUsMTAp'@; put 'LGllLFBbMTBdLDAsMTIpLGllPXcoaWUsc2UsUSxxPU4ocSwxMCksdGUsUFs0XSwwLDkpLHRlPXcodGUsaWUsc2UsUT1OKFEsMTApLHEsUFsxXSwwLDEyKSxxPXcocSx0ZSxpZSxzZT1OKHNlLDEwKSxRLFBbNV0sMCw1KSxRPXcoUSxxLHRlLGllPU4oaWUsMTApLHNlLFBbOF0sMCwxNCksc2U9'@; put 'dyhzZSxRLHEsdGU9Tih0ZSwxMCksaWUsUFs3XSwwLDYpLGllPXcoaWUsc2UsUSxxPU4ocSwxMCksdGUsUFs2XSwwLDgpLHRlPXcodGUsaWUsc2UsUT1OKFEsMTApLHEsUFsyXSwwLDEzKSxxPXcocSx0ZSxpZSxzZT1OKHNlLDEwKSxRLFBbMTNdLDAsNiksUT13KFEscSx0ZSxpZT1OKGllLDEw'@; put 'KSxzZSxQWzE0XSwwLDUpLHNlPXcoc2UsUSxxLHRlPU4odGUsMTApLGllLFBbMF0sMCwxNSksaWU9dyhpZSxzZSxRLHE9TihxLDEwKSx0ZSxQWzNdLDAsMTMpLHRlPXcodGUsaWUsc2UsUT1OKFEsMTApLHEsUFs5XSwwLDExKSxxPXcocSx0ZSxpZSxzZT1OKHNlLDEwKSxRLFBbMTFdLDAsMTEp'@; put 'LGllPU4oaWUsMTApO3ZhciBnZT10aGlzLl9iK1craWV8MDt0aGlzLl9iPXRoaXMuX2MrWitzZXwwLHRoaXMuX2M9dGhpcy5fZCtYK1F8MCx0aGlzLl9kPXRoaXMuX2UrWStxfDAsdGhpcy5fZT10aGlzLl9hK0IrdGV8MCx0aGlzLl9hPWdlfSxwLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9u'@; put 'KCl7dGhpcy5fYmxvY2tbdGhpcy5fYmxvY2tPZmZzZXQrK109MTI4LHRoaXMuX2Jsb2NrT2Zmc2V0PjU2JiYodGhpcy5fYmxvY2suZmlsbCgwLHRoaXMuX2Jsb2NrT2Zmc2V0LDY0KSx0aGlzLl91cGRhdGUoKSx0aGlzLl9ibG9ja09mZnNldD0wKSx0aGlzLl9ibG9jay5maWxsKDAsdGhpcy5f'@; put 'YmxvY2tPZmZzZXQsNTYpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyTEUodGhpcy5fbGVuZ3RoWzBdLDU2KSx0aGlzLl9ibG9jay53cml0ZVVJbnQzMkxFKHRoaXMuX2xlbmd0aFsxXSw2MCksdGhpcy5fdXBkYXRlKCk7dmFyIFA9bmV3IEJ1ZmZlcigyMCk7cmV0dXJuIFAud3JpdGVJbnQzMkxF'@; put 'KHRoaXMuX2EsMCksUC53cml0ZUludDMyTEUodGhpcy5fYiw0KSxQLndyaXRlSW50MzJMRSh0aGlzLl9jLDgpLFAud3JpdGVJbnQzMkxFKHRoaXMuX2QsMTIpLFAud3JpdGVJbnQzMkxFKHRoaXMuX2UsMTYpLFB9LGNlLmV4cG9ydHM9cH0sNTAxOTpjZT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBv'@; put 'cnRzPVsiRmxvYXQxNkFycmF5IiwiRmxvYXQzMkFycmF5IiwiRmxvYXQ2NEFycmF5IiwiSW50OEFycmF5IiwiSW50MTZBcnJheSIsIkludDMyQXJyYXkiLCJVaW50OEFycmF5IiwiVWludDhDbGFtcGVkQXJyYXkiLCJVaW50MTZBcnJheSIsIlVpbnQzMkFycmF5IiwiQmlnSW50NjRBcnJheSIs'@; put 'IkJpZ1VpbnQ2NEFycmF5Il19LDk2NTY6Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz10eXBlb2YgcHJvY2Vzcz4idSJ8fCFwcm9jZXNzLnZlcnNpb258fDA9PT1wcm9jZXNzLnZlcnNpb24uaW5kZXhPZigidjAuIil8fDA9PT1wcm9jZXNzLnZlcnNpb24uaW5kZXhPZigidjEuIikmJjAh'@; put 'PT1wcm9jZXNzLnZlcnNpb24uaW5kZXhPZigidjEuOC4iKT97bmV4dFRpY2s6ZnVuY3Rpb24gSihiLEQsXyxwKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgYil0aHJvdyBuZXcgVHlwZUVycm9yKCciY2FsbGJhY2siIGFyZ3VtZW50IG11c3QgYmUgYSBmdW5jdGlvbicpO3ZhciB3LEYsTj1hcmd1'@; put 'bWVudHMubGVuZ3RoO3N3aXRjaChOKXtjYXNlIDA6Y2FzZSAxOnJldHVybiBwcm9jZXNzLm5leHRUaWNrKGIpO2Nhc2UgMjpyZXR1cm4gcHJvY2Vzcy5uZXh0VGljayhmdW5jdGlvbigpe2IuY2FsbChudWxsLEQpfSk7Y2FzZSAzOnJldHVybiBwcm9jZXNzLm5leHRUaWNrKGZ1bmN0aW9uKCl7'@; put 'Yi5jYWxsKG51bGwsRCxfKX0pO2Nhc2UgNDpyZXR1cm4gcHJvY2Vzcy5uZXh0VGljayhmdW5jdGlvbigpe2IuY2FsbChudWxsLEQsXyxwKX0pO2RlZmF1bHQ6Zm9yKHc9bmV3IEFycmF5KE4tMSksRj0wO0Y8dy5sZW5ndGg7KXdbRisrXT1hcmd1bWVudHNbRl07cmV0dXJuIHByb2Nlc3MubmV4'@; put 'dFRpY2soZnVuY3Rpb24oKXtiLmFwcGx5KG51bGwsdyl9KX19fTpwcm9jZXNzfSw1Mjk2NTooY2UsSixiKT0+e0oucHVibGljRW5jcnlwdD1iKDg3MjY3KSxKLnByaXZhdGVEZWNyeXB0PWIoOTg2MTMpLEoucHJpdmF0ZUVuY3J5cHQ9ZnVuY3Rpb24oXyxwKXtyZXR1cm4gSi5wdWJsaWNFbmNy'@; put 'eXB0KF8scCwhMCl9LEoucHVibGljRGVjcnlwdD1mdW5jdGlvbihfLHApe3JldHVybiBKLnByaXZhdGVEZWNyeXB0KF8scCwhMCl9fSwzMDcxNTooY2UsSixiKT0+e3ZhciBEPWIoNjcyMTEpLF89YigyNzA1NCkuQnVmZmVyO2Z1bmN0aW9uIHAoTil7dmFyIHc9Xy5hbGxvY1Vuc2FmZSg0KTty'@; put 'ZXR1cm4gdy53cml0ZVVJbnQzMkJFKE4sMCksd31jZS5leHBvcnRzPWZ1bmN0aW9uKE4sdyl7Zm9yKHZhciBSLEY9Xy5hbGxvYygwKSxIPTA7Ri5sZW5ndGg8dzspUj1wKEgrKyksRj1fLmNvbmNhdChbRixEKCJzaGExIikudXBkYXRlKE4pLnVwZGF0ZShSKS5kaWdlc3QoKV0pO3JldHVybiBG'@; put 'LnNsaWNlKDAsdyl9fSwxNjUwODpmdW5jdGlvbihjZSxKLGIpeyFmdW5jdGlvbihELF8peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBwKHosZyl7aWYoIXopdGhyb3cgbmV3IEVycm9yKGd8fCJBc3NlcnRpb24gZmFpbGVkIil9ZnVuY3Rpb24gTih6LGcpe3ouc3VwZXJfPWc7dmFyIHk9ZnVuY3Rp'@; put 'b24oKXt9O3kucHJvdG90eXBlPWcucHJvdG90eXBlLHoucHJvdG90eXBlPW5ldyB5LHoucHJvdG90eXBlLmNvbnN0cnVjdG9yPXp9ZnVuY3Rpb24gdyh6LGcseSl7aWYody5pc0JOKHopKXJldHVybiB6O3RoaXMubmVnYXRpdmU9MCx0aGlzLndvcmRzPW51bGwsdGhpcy5sZW5ndGg9MCx0aGlz'@; put 'LnJlZD1udWxsLG51bGwhPT16JiYoKCJsZSI9PT1nfHwiYmUiPT09ZykmJih5PWcsZz0xMCksdGhpcy5faW5pdCh6fHwwLGd8fDEwLHl8fCJiZSIpKX12YXIgRjsib2JqZWN0Ij09dHlwZW9mIEQ/RC5leHBvcnRzPXc6Xy5CTj13LHcuQk49dyx3LndvcmRTaXplPTI2O3RyeXtGPXR5cGVvZiB3'@; put 'aW5kb3c8InUiJiZ0eXBlb2Ygd2luZG93LkJ1ZmZlcjwidSI/d2luZG93LkJ1ZmZlcjpiKDUxMDY5KS5CdWZmZXJ9Y2F0Y2h7fWZ1bmN0aW9uIEgoeixnKXt2YXIgeT16LmNoYXJDb2RlQXQoZyk7cmV0dXJuIHk+PTY1JiZ5PD03MD95LTU1Onk+PTk3JiZ5PD0xMDI/eS04Nzp5LTQ4JjE1fWZ1'@; put 'bmN0aW9uIFIoeixnLHkpe3ZhciB4PUgoeix5KTtyZXR1cm4geS0xPj1nJiYoeHw9SCh6LHktMSk8PDQpLHh9ZnVuY3Rpb24gaih6LGcseSx4KXtmb3IodmFyIEM9MCxUPU1hdGgubWluKHoubGVuZ3RoLHkpLFY9ZztWPFQ7VisrKXt2YXIgVT16LmNoYXJDb2RlQXQoViktNDg7Qyo9eCxDKz1V'@; put 'Pj00OT9VLTQ5KzEwOlU+PTE3P1UtMTcrMTA6VX1yZXR1cm4gQ313LmlzQk49ZnVuY3Rpb24oZyl7cmV0dXJuIGcgaW5zdGFuY2VvZiB3fHxudWxsIT09ZyYmIm9iamVjdCI9PXR5cGVvZiBnJiZnLmNvbnN0cnVjdG9yLndvcmRTaXplPT09dy53b3JkU2l6ZSYmQXJyYXkuaXNBcnJheShnLndv'@; put 'cmRzKX0sdy5tYXg9ZnVuY3Rpb24oZyx5KXtyZXR1cm4gZy5jbXAoeSk+MD9nOnl9LHcubWluPWZ1bmN0aW9uKGcseSl7cmV0dXJuIGcuY21wKHkpPDA/Zzp5fSx3LnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbihnLHkseCl7aWYoIm51bWJlciI9PXR5cGVvZiBnKXJldHVybiB0aGlzLl9pbml0'@; put 'TnVtYmVyKGcseSx4KTtpZigib2JqZWN0Ij09dHlwZW9mIGcpcmV0dXJuIHRoaXMuX2luaXRBcnJheShnLHkseCk7ImhleCI9PT15JiYoeT0xNikscCh5PT09KDB8eSkmJnk+PTImJnk8PTM2KTt2YXIgQz0wOyItIj09PShnPWcudG9TdHJpbmcoKS5yZXBsYWNlKC9ccysvZywiIikpWzBdJiYo'@; put 'QysrLHRoaXMubmVnYXRpdmU9MSksQzxnLmxlbmd0aCYmKDE2PT09eT90aGlzLl9wYXJzZUhleChnLEMseCk6KHRoaXMuX3BhcnNlQmFzZShnLHksQyksImxlIj09PXgmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSx5LHgpKSl9LHcucHJvdG90eXBlLl9pbml0TnVtYmVyPWZ1bmN0'@; put 'aW9uKGcseSx4KXtnPDAmJih0aGlzLm5lZ2F0aXZlPTEsZz0tZyksZzw2NzEwODg2ND8odGhpcy53b3Jkcz1bNjcxMDg4NjMmZ10sdGhpcy5sZW5ndGg9MSk6Zzw0NTAzNTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZnLGcvNjcxMDg4NjQmNjcxMDg4NjNdLHRoaXMubGVuZ3Ro'@; put 'PTIpOihwKGc8OTAwNzE5OTI1NDc0MDk5MiksdGhpcy53b3Jkcz1bNjcxMDg4NjMmZyxnLzY3MTA4ODY0JjY3MTA4ODYzLDFdLHRoaXMubGVuZ3RoPTMpLCJsZSI9PT14JiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCkseSx4KX0sdy5wcm90b3R5cGUuX2luaXRBcnJheT1mdW5jdGlv'@; put 'bihnLHkseCl7aWYocCgibnVtYmVyIj09dHlwZW9mIGcubGVuZ3RoKSxnLmxlbmd0aDw9MClyZXR1cm4gdGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMubGVuZ3RoPU1hdGguY2VpbChnLmxlbmd0aC8zKSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9y'@; put 'KHZhciBDPTA7Qzx0aGlzLmxlbmd0aDtDKyspdGhpcy53b3Jkc1tDXT0wO3ZhciBULFYsVT0wO2lmKCJiZSI9PT14KWZvcihDPWcubGVuZ3RoLTEsVD0wO0M+PTA7Qy09Myl0aGlzLndvcmRzW1RdfD0oVj1nW0NdfGdbQy0xXTw8OHxnW0MtMl08PDE2KTw8VSY2NzEwODg2Myx0aGlzLndvcmRz'@; put 'W1QrMV09Vj4+PjI2LVUmNjcxMDg4NjMsKFUrPTI0KT49MjYmJihVLT0yNixUKyspO2Vsc2UgaWYoImxlIj09PXgpZm9yKEM9MCxUPTA7QzxnLmxlbmd0aDtDKz0zKXRoaXMud29yZHNbVF18PShWPWdbQ118Z1tDKzFdPDw4fGdbQysyXTw8MTYpPDxVJjY3MTA4ODYzLHRoaXMud29yZHNbVCsx'@; put 'XT1WPj4+MjYtVSY2NzEwODg2MywoVSs9MjQpPj0yNiYmKFUtPTI2LFQrKyk7cmV0dXJuIHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKGcseSx4KXt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoKGcubGVuZ3RoLXkpLzYpLHRoaXMud29yZHM9bmV3IEFycmF5KHRo'@; put 'aXMubGVuZ3RoKTtmb3IodmFyIEM9MDtDPHRoaXMubGVuZ3RoO0MrKyl0aGlzLndvcmRzW0NdPTA7dmFyIFUsVD0wLFY9MDtpZigiYmUiPT09eClmb3IoQz1nLmxlbmd0aC0xO0M+PXk7Qy09MilVPVIoZyx5LEMpPDxULHRoaXMud29yZHNbVl18PTY3MTA4ODYzJlUsVD49MTg/KFQtPTE4LHRo'@; put 'aXMud29yZHNbVis9MV18PVU+Pj4yNik6VCs9ODtlbHNlIGZvcihDPShnLmxlbmd0aC15KSUyPT0wP3krMTp5O0M8Zy5sZW5ndGg7Qys9MilVPVIoZyx5LEMpPDxULHRoaXMud29yZHNbVl18PTY3MTA4ODYzJlUsVD49MTg/KFQtPTE4LHRoaXMud29yZHNbVis9MV18PVU+Pj4yNik6VCs9ODt0'@; put 'aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLl9wYXJzZUJhc2U9ZnVuY3Rpb24oZyx5LHgpe3RoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTE7Zm9yKHZhciBDPTAsVD0xO1Q8PTY3MTA4ODYzO1QqPXkpQysrO0MtLSxUPVQveXwwO2Zvcih2YXIgVj1nLmxlbmd0aC14LFU9ViVDLEU9TWF0aC5t'@; put 'aW4oVixWLVUpK3gsbT0wLEE9eDtBPEU7QSs9QyltPWooZyxBLEErQyx5KSx0aGlzLmltdWxuKFQpLHRoaXMud29yZHNbMF0rbTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1tOnRoaXMuX2lhZGRuKG0pO2lmKDAhPT1VKXt2YXIgYWU9MTtmb3IobT1qKGcsQSxnLmxlbmd0aCx5KSxBPTA7QTxV'@; put 'O0ErKylhZSo9eTt0aGlzLmltdWxuKGFlKSx0aGlzLndvcmRzWzBdK208NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9bTp0aGlzLl9pYWRkbihtKX10aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24oZyl7Zy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIg'@; put 'eT0wO3k8dGhpcy5sZW5ndGg7eSsrKWcud29yZHNbeV09dGhpcy53b3Jkc1t5XTtnLmxlbmd0aD10aGlzLmxlbmd0aCxnLm5lZ2F0aXZlPXRoaXMubmVnYXRpdmUsZy5yZWQ9dGhpcy5yZWR9LHcucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIGc9bmV3IHcobnVsbCk7cmV0dXJuIHRo'@; put 'aXMuY29weShnKSxnfSx3LnByb3RvdHlwZS5fZXhwYW5kPWZ1bmN0aW9uKGcpe2Zvcig7dGhpcy5sZW5ndGg8ZzspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO3JldHVybiB0aGlzfSx3LnByb3RvdHlwZS5zdHJpcD1mdW5jdGlvbigpe2Zvcig7dGhpcy5sZW5ndGg+MSYmMD09PXRoaXMu'@; put 'd29yZHNbdGhpcy5sZW5ndGgtMV07KXRoaXMubGVuZ3RoLS07cmV0dXJuIHRoaXMuX25vcm1TaWduKCl9LHcucHJvdG90eXBlLl9ub3JtU2lnbj1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdJiYodGhpcy5uZWdhdGl2ZT0wKSx0aGlzfSx3LnBy'@; put 'b3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMucmVkPyI8Qk4tUjogIjoiPEJOOiAiKSt0aGlzLnRvU3RyaW5nKDE2KSsiPiJ9O3ZhciBQPVsiIiwiMCIsIjAwIiwiMDAwIiwiMDAwMCIsIjAwMDAwIiwiMDAwMDAwIiwiMDAwMDAwMCIsIjAwMDAwMDAwIiwiMDAwMDAwMDAw'@; put 'IiwiMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAw'@; put 'MDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCJd'@; put 'LEw9WzAsMCwyNSwxNiwxMiwxMSwxMCw5LDgsOCw3LDcsNyw3LDYsNiw2LDYsNiw2LDYsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNV0sWT1bMCwwLDMzNTU0NDMyLDQzMDQ2NzIxLDE2Nzc3MjE2LDQ4ODI4MTI1LDYwNDY2MTc2LDQwMzUzNjA3LDE2Nzc3MjE2LDQzMDQ2NzIxLDFl'@; put 'NywxOTQ4NzE3MSwzNTgzMTgwOCw2Mjc0ODUxNyw3NTI5NTM2LDExMzkwNjI1LDE2Nzc3MjE2LDI0MTM3NTY5LDM0MDEyMjI0LDQ3MDQ1ODgxLDY0ZTYsNDA4NDEwMSw1MTUzNjMyLDY0MzYzNDMsNzk2MjYyNCw5NzY1NjI1LDExODgxMzc2LDE0MzQ4OTA3LDE3MjEwMzY4LDIwNTExMTQ5LDI0'@; put 'M2U1LDI4NjI5MTUxLDMzNTU0NDMyLDM5MTM1MzkzLDQ1NDM1NDI0LDUyNTIxODc1LDYwNDY2MTc2XTtmdW5jdGlvbiBXKHosZyx5KXt5Lm5lZ2F0aXZlPWcubmVnYXRpdmVeei5uZWdhdGl2ZTt2YXIgeD16Lmxlbmd0aCtnLmxlbmd0aHwwO3kubGVuZ3RoPXgseD14LTF8MDt2YXIgQz0wfHou'@; put 'd29yZHNbMF0sVD0wfGcud29yZHNbMF0sVj1DKlQsRT1WLzY3MTA4ODY0fDA7eS53b3Jkc1swXT02NzEwODg2MyZWO2Zvcih2YXIgbT0xO208eDttKyspe2Zvcih2YXIgQT1FPj4+MjYsYWU9NjcxMDg4NjMmRSxuZT1NYXRoLm1pbihtLGcubGVuZ3RoLTEpLGxlPU1hdGgubWF4KDAsbS16Lmxl'@; put 'bmd0aCsxKTtsZTw9bmU7bGUrKylBKz0oVj0oQz0wfHoud29yZHNbbS1sZXwwXSkqKFQ9MHxnLndvcmRzW2xlXSkrYWUpLzY3MTA4ODY0fDAsYWU9NjcxMDg4NjMmVjt5LndvcmRzW21dPTB8YWUsRT0wfEF9cmV0dXJuIDAhPT1FP3kud29yZHNbbV09MHxFOnkubGVuZ3RoLS0seS5zdHJpcCgp'@; put 'fXcucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKGcseSl7dmFyIHg7aWYoeT0wfHl8fDEsMTY9PT0oZz1nfHwxMCl8fCJoZXgiPT09Zyl7eD0iIjtmb3IodmFyIEM9MCxUPTAsVj0wO1Y8dGhpcy5sZW5ndGg7VisrKXt2YXIgVT10aGlzLndvcmRzW1ZdLEU9KDE2Nzc3MjE1JihVPDxDfFQp'@; put 'KS50b1N0cmluZygxNik7VD1VPj4+MjQtQyYxNjc3NzIxNSwoQys9Mik+PTI2JiYoQy09MjYsVi0tKSx4PTAhPT1UfHxWIT09dGhpcy5sZW5ndGgtMT9QWzYtRS5sZW5ndGhdK0UreDpFK3h9Zm9yKDAhPT1UJiYoeD1ULnRvU3RyaW5nKDE2KSt4KTt4Lmxlbmd0aCV5IT0wOyl4PSIwIit4O3Jl'@; put 'dHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKHg9Ii0iK3gpLHh9aWYoZz09PSgwfGcpJiZnPj0yJiZnPD0zNil7dmFyIG09TFtnXSxBPVlbZ107eD0iIjt2YXIgYWU9dGhpcy5jbG9uZSgpO2ZvcihhZS5uZWdhdGl2ZT0wOyFhZS5pc1plcm8oKTspe3ZhciBuZT1hZS5tb2RuKEEpLnRvU3RyaW5n'@; put 'KGcpO3g9KGFlPWFlLmlkaXZuKEEpKS5pc1plcm8oKT9uZSt4OlBbbS1uZS5sZW5ndGhdK25lK3h9Zm9yKHRoaXMuaXNaZXJvKCkmJih4PSIwIit4KTt4Lmxlbmd0aCV5IT0wOyl4PSIwIit4O3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKHg9Ii0iK3gpLHh9cCghMSwiQmFzZSBzaG91bGQg'@; put 'YmUgYmV0d2VlbiAyIGFuZCAzNiIpfSx3LnByb3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigpe3ZhciBnPXRoaXMud29yZHNbMF07cmV0dXJuIDI9PT10aGlzLmxlbmd0aD9nKz02NzEwODg2NCp0aGlzLndvcmRzWzFdOjM9PT10aGlzLmxlbmd0aCYmMT09PXRoaXMud29yZHNbMl0/Zys9NDUw'@; put 'MzU5OTYyNzM3MDQ5Nis2NzEwODg2NCp0aGlzLndvcmRzWzFdOnRoaXMubGVuZ3RoPjImJnAoITEsIk51bWJlciBjYW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLDAhPT10aGlzLm5lZ2F0aXZlPy1nOmd9LHcucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0'@; put 'aGlzLnRvU3RyaW5nKDE2KX0sdy5wcm90b3R5cGUudG9CdWZmZXI9ZnVuY3Rpb24oZyx5KXtyZXR1cm4gcCh0eXBlb2YgRjwidSIpLHRoaXMudG9BcnJheUxpa2UoRixnLHkpfSx3LnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKGcseSl7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoQXJyYXks'@; put 'Zyx5KX0sdy5wcm90b3R5cGUudG9BcnJheUxpa2U9ZnVuY3Rpb24oZyx5LHgpe3ZhciBDPXRoaXMuYnl0ZUxlbmd0aCgpLFQ9eHx8TWF0aC5tYXgoMSxDKTtwKEM8PVQsImJ5dGUgYXJyYXkgbG9uZ2VyIHRoYW4gZGVzaXJlZCBsZW5ndGgiKSxwKFQ+MCwiUmVxdWVzdGVkIGFycmF5IGxlbmd0'@; put 'aCA8PSAwIiksdGhpcy5zdHJpcCgpO3ZhciBFLG0sVj0ibGUiPT09eSxVPW5ldyBnKFQpLEE9dGhpcy5jbG9uZSgpO2lmKFYpe2ZvcihtPTA7IUEuaXNaZXJvKCk7bSsrKUU9QS5hbmRsbigyNTUpLEEuaXVzaHJuKDgpLFVbbV09RTtmb3IoO208VDttKyspVVttXT0wfWVsc2V7Zm9yKG09MDtt'@; put 'PFQtQzttKyspVVttXT0wO2ZvcihtPTA7IUEuaXNaZXJvKCk7bSsrKUU9QS5hbmRsbigyNTUpLEEuaXVzaHJuKDgpLFVbVC1tLTFdPUV9cmV0dXJuIFV9LHcucHJvdG90eXBlLl9jb3VudEJpdHM9TWF0aC5jbHozMj9mdW5jdGlvbihnKXtyZXR1cm4gMzItTWF0aC5jbHozMihnKX06ZnVuY3Rp'@; put 'b24oZyl7dmFyIHk9Zyx4PTA7cmV0dXJuIHk+PTQwOTYmJih4Kz0xMyx5Pj4+PTEzKSx5Pj02NCYmKHgrPTcseT4+Pj03KSx5Pj04JiYoeCs9NCx5Pj4+PTQpLHk+PTImJih4Kz0yLHk+Pj49MikseCt5fSx3LnByb3RvdHlwZS5femVyb0JpdHM9ZnVuY3Rpb24oZyl7aWYoMD09PWcpcmV0dXJu'@; put 'IDI2O3ZhciB5PWcseD0wO3JldHVybiA4MTkxJnl8fCh4Kz0xMyx5Pj4+PTEzKSwxMjcmeXx8KHgrPTcseT4+Pj03KSwxNSZ5fHwoeCs9NCx5Pj4+PTQpLDMmeXx8KHgrPTIseT4+Pj0yKSwxJnl8fHgrKyx4fSx3LnByb3RvdHlwZS5iaXRMZW5ndGg9ZnVuY3Rpb24oKXt2YXIgeT10aGlzLl9j'@; put 'b3VudEJpdHModGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSk7cmV0dXJuIDI2Kih0aGlzLmxlbmd0aC0xKSt5fSx3LnByb3RvdHlwZS56ZXJvQml0cz1mdW5jdGlvbigpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIDA7Zm9yKHZhciBnPTAseT0wO3k8dGhpcy5sZW5ndGg7eSsrKXt2YXIgeD10'@; put 'aGlzLl96ZXJvQml0cyh0aGlzLndvcmRzW3ldKTtpZihnKz14LDI2IT09eClicmVha31yZXR1cm4gZ30sdy5wcm90b3R5cGUuYnl0ZUxlbmd0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmNlaWwodGhpcy5iaXRMZW5ndGgoKS84KX0sdy5wcm90b3R5cGUudG9Ud29zPWZ1bmN0aW9uKGcpe3Jl'@; put 'dHVybiAwIT09dGhpcy5uZWdhdGl2ZT90aGlzLmFicygpLmlub3RuKGcpLmlhZGRuKDEpOnRoaXMuY2xvbmUoKX0sdy5wcm90b3R5cGUuZnJvbVR3b3M9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMudGVzdG4oZy0xKT90aGlzLm5vdG4oZykuaWFkZG4oMSkuaW5lZygpOnRoaXMuY2xvbmUoKX0s'@; put 'dy5wcm90b3R5cGUuaXNOZWc9ZnVuY3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmV9LHcucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaW5lZygpfSx3LnByb3RvdHlwZS5pbmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNaZXJvKCl8fCh0aGlz'@; put 'Lm5lZ2F0aXZlXj0xKSx0aGlzfSx3LnByb3RvdHlwZS5pdW9yPWZ1bmN0aW9uKGcpe2Zvcig7dGhpcy5sZW5ndGg8Zy5sZW5ndGg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtmb3IodmFyIHk9MDt5PGcubGVuZ3RoO3krKyl0aGlzLndvcmRzW3ldPXRoaXMud29yZHNbeV18Zy53b3Jk'@; put 'c1t5XTtyZXR1cm4gdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5pb3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHAoISh0aGlzLm5lZ2F0aXZlfGcubmVnYXRpdmUpKSx0aGlzLml1b3IoZyl9LHcucHJvdG90eXBlLm9yPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlz'@; put 'LmNsb25lKCkuaW9yKGcpOmcuY2xvbmUoKS5pb3IodGhpcyl9LHcucHJvdG90eXBlLnVvcj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgpLml1b3IoZyk6Zy5jbG9uZSgpLml1b3IodGhpcyl9LHcucHJvdG90eXBlLml1YW5kPWZ1bmN0aW9uKGcp'@; put 'e3ZhciB5O3k9dGhpcy5sZW5ndGg+Zy5sZW5ndGg/Zzp0aGlzO2Zvcih2YXIgeD0wO3g8eS5sZW5ndGg7eCsrKXRoaXMud29yZHNbeF09dGhpcy53b3Jkc1t4XSZnLndvcmRzW3hdO3JldHVybiB0aGlzLmxlbmd0aD15Lmxlbmd0aCx0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLmlhbmQ9ZnVu'@; put 'Y3Rpb24oZyl7cmV0dXJuIHAoISh0aGlzLm5lZ2F0aXZlfGcubmVnYXRpdmUpKSx0aGlzLml1YW5kKGcpfSx3LnByb3RvdHlwZS5hbmQ9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYW5kKGcpOmcuY2xvbmUoKS5pYW5kKHRoaXMpfSx3LnBy'@; put 'b3RvdHlwZS51YW5kPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaXVhbmQoZyk6Zy5jbG9uZSgpLml1YW5kKHRoaXMpfSx3LnByb3RvdHlwZS5pdXhvcj1mdW5jdGlvbihnKXt2YXIgeSx4O3RoaXMubGVuZ3RoPmcubGVuZ3RoPyh5PXRoaXMs'@; put 'eD1nKTooeT1nLHg9dGhpcyk7Zm9yKHZhciBDPTA7Qzx4Lmxlbmd0aDtDKyspdGhpcy53b3Jkc1tDXT15LndvcmRzW0NdXngud29yZHNbQ107aWYodGhpcyE9PXkpZm9yKDtDPHkubGVuZ3RoO0MrKyl0aGlzLndvcmRzW0NdPXkud29yZHNbQ107cmV0dXJuIHRoaXMubGVuZ3RoPXkubGVuZ3Ro'@; put 'LHRoaXMuc3RyaXAoKX0sdy5wcm90b3R5cGUuaXhvcj1mdW5jdGlvbihnKXtyZXR1cm4gcCghKHRoaXMubmVnYXRpdmV8Zy5uZWdhdGl2ZSkpLHRoaXMuaXV4b3IoZyl9LHcucHJvdG90eXBlLnhvcj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5sZW5ndGg+Zy5sZW5ndGg/dGhpcy5jbG9uZSgp'@; put 'Lml4b3IoZyk6Zy5jbG9uZSgpLml4b3IodGhpcyl9LHcucHJvdG90eXBlLnV4b3I9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMubGVuZ3RoPmcubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdXhvcihnKTpnLmNsb25lKCkuaXV4b3IodGhpcyl9LHcucHJvdG90eXBlLmlub3RuPWZ1bmN0aW9uKGcpe3Ao'@; put 'Im51bWJlciI9PXR5cGVvZiBnJiZnPj0wKTt2YXIgeT0wfE1hdGguY2VpbChnLzI2KSx4PWclMjY7dGhpcy5fZXhwYW5kKHkpLHg+MCYmeS0tO2Zvcih2YXIgQz0wO0M8eTtDKyspdGhpcy53b3Jkc1tDXT02NzEwODg2MyZ+dGhpcy53b3Jkc1tDXTtyZXR1cm4geD4wJiYodGhpcy53b3Jkc1tD'@; put 'XT1+dGhpcy53b3Jkc1tDXSY2NzEwODg2Mz4+MjYteCksdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5ub3RuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4oZyl9LHcucHJvdG90eXBlLnNldG49ZnVuY3Rpb24oZyx5KXtwKCJudW1iZXIiPT10eXBlb2YgZyYmZz49MCk7'@; put 'dmFyIHg9Zy8yNnwwLEM9ZyUyNjtyZXR1cm4gdGhpcy5fZXhwYW5kKHgrMSksdGhpcy53b3Jkc1t4XT15P3RoaXMud29yZHNbeF18MTw8Qzp0aGlzLndvcmRzW3hdJn4oMTw8QyksdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKGcpe3ZhciB5LHgsQztpZigwIT09dGhp'@; put 'cy5uZWdhdGl2ZSYmMD09PWcubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx5PXRoaXMuaXN1YihnKSx0aGlzLm5lZ2F0aXZlXj0xLHRoaXMuX25vcm1TaWduKCk7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT1nLm5lZ2F0aXZlKXJldHVybiBnLm5lZ2F0aXZlPTAseT10aGlzLmlz'@; put 'dWIoZyksZy5uZWdhdGl2ZT0xLHkuX25vcm1TaWduKCk7dGhpcy5sZW5ndGg+Zy5sZW5ndGg/KHg9dGhpcyxDPWcpOih4PWcsQz10aGlzKTtmb3IodmFyIFQ9MCxWPTA7VjxDLmxlbmd0aDtWKyspdGhpcy53b3Jkc1tWXT02NzEwODg2MyYoeT0oMHx4LndvcmRzW1ZdKSsoMHxDLndvcmRzW1Zd'@; put 'KStUKSxUPXk+Pj4yNjtmb3IoOzAhPT1UJiZWPHgubGVuZ3RoO1YrKyl0aGlzLndvcmRzW1ZdPTY3MTA4ODYzJih5PSgwfHgud29yZHNbVl0pK1QpLFQ9eT4+PjI2O2lmKHRoaXMubGVuZ3RoPXgubGVuZ3RoLDAhPT1UKXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPVQsdGhpcy5sZW5ndGgrKztl'@; put 'bHNlIGlmKHghPT10aGlzKWZvcig7Vjx4Lmxlbmd0aDtWKyspdGhpcy53b3Jkc1tWXT14LndvcmRzW1ZdO3JldHVybiB0aGlzfSx3LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZyl7dmFyIHk7cmV0dXJuIDAhPT1nLm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oZy5uZWdhdGl2ZT0wLHk9'@; put 'dGhpcy5zdWIoZyksZy5uZWdhdGl2ZV49MSx5KTowPT09Zy5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMubmVnYXRpdmU9MCx5PWcuc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSx5KTp0aGlzLmxlbmd0aD5nLmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZChnKTpnLmNsb25lKCku'@; put 'aWFkZCh0aGlzKX0sdy5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihnKXtpZigwIT09Zy5uZWdhdGl2ZSl7Zy5uZWdhdGl2ZT0wO3ZhciB5PXRoaXMuaWFkZChnKTtyZXR1cm4gZy5uZWdhdGl2ZT0xLHkuX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRp'@; put 'dmU9MCx0aGlzLmlhZGQoZyksdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIEMsVCx4PXRoaXMuY21wKGcpO2lmKDA9PT14KXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpczt4PjA/KEM9dGhpcyxUPWcpOihDPWcsVD10'@; put 'aGlzKTtmb3IodmFyIFY9MCxVPTA7VTxULmxlbmd0aDtVKyspVj0oeT0oMHxDLndvcmRzW1VdKS0oMHxULndvcmRzW1VdKStWKT4+MjYsdGhpcy53b3Jkc1tVXT02NzEwODg2MyZ5O2Zvcig7MCE9PVYmJlU8Qy5sZW5ndGg7VSsrKVY9KHk9KDB8Qy53b3Jkc1tVXSkrVik+PjI2LHRoaXMud29y'@; put 'ZHNbVV09NjcxMDg4NjMmeTtpZigwPT09ViYmVTxDLmxlbmd0aCYmQyE9PXRoaXMpZm9yKDtVPEMubGVuZ3RoO1UrKyl0aGlzLndvcmRzW1VdPUMud29yZHNbVV07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLFUpLEMhPT10aGlzJiYodGhpcy5uZWdhdGl2ZT0xKSx0'@; put 'aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLnN1Yj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWIoZyl9O3ZhciBaPWZ1bmN0aW9uKGcseSx4KXt2YXIgRSxtLEEsQz1nLndvcmRzLFQ9eS53b3JkcyxWPXgud29yZHMsVT0wLGFlPTB8Q1swXSxuZT04MTkxJmFlLGxlPWFlPj4+'@; put 'MTMsd2U9MHxDWzFdLFplPTgxOTEmd2UsUWU9d2U+Pj4xMyxhdD0wfENbMl0seGU9ODE5MSZhdCx2ZT1hdD4+PjEzLHFlPTB8Q1szXSxqZT04MTkxJnFlLEFlPXFlPj4+MTMsRmU9MHxDWzRdLFJlPTgxOTEmRmUsSWU9RmU+Pj4xMyxIZT0wfENbNV0sRGU9ODE5MSZIZSxrZT1IZT4+PjEzLF90'@; put 'PTB8Q1s2XSxudD04MTkxJl90LEplPV90Pj4+MTMsb249MHxDWzddLHl0PTgxOTEmb24sTXQ9b24+Pj4xMyxJdD0wfENbOF0scnQ9ODE5MSZJdCxLZT1JdD4+PjEzLHR0PTB8Q1s5XSxOZT04MTkxJnR0LHV0PXR0Pj4+MTMsSnQ9MHxUWzBdLEx0PTgxOTEmSnQsUHQ9SnQ+Pj4xMyxvaT0wfFRb'@; put 'MV0sZW49ODE5MSZvaSxzbj1vaT4+PjEzLElpPTB8VFsyXSxkbj04MTkxJklpLGZ0PUlpPj4+MTMsRnI9MHxUWzNdLFp0PTgxOTEmRnIsa3Q9RnI+Pj4xMyxMbj0wfFRbNF0sb3Q9ODE5MSZMbix6dD1Mbj4+PjEzLG5pPTB8VFs1XSxXZT04MTkxJm5pLEF0PW5pPj4+MTMsaXI9MHxUWzZdLGh0'@; put 'PTgxOTEmaXIsRXQ9aXI+Pj4xMyx6bj0wfFRbN10sYW49ODE5MSZ6bixqdD16bj4+PjEzLGRpPTB8VFs4XSxjbj04MTkxJmRpLGZuPWRpPj4+MTMsRGk9MHxUWzldLFF0PTgxOTEmRGksdG49RGk+Pj4xMzt4Lm5lZ2F0aXZlPWcubmVnYXRpdmVeeS5uZWdhdGl2ZSx4Lmxlbmd0aD0xOTt2YXIg'@; put 'Y2E9KFUrKEU9TWF0aC5pbXVsKG5lLEx0KSl8MCkrKCg4MTkxJihtPShtPU1hdGguaW11bChuZSxQdCkpK01hdGguaW11bChsZSxMdCl8MCkpPDwxMyl8MDtVPSgoQT1NYXRoLmltdWwobGUsUHQpKSsobT4+PjEzKXwwKSsoY2E+Pj4yNil8MCxjYSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoWmUs'@; put 'THQpLG09KG09TWF0aC5pbXVsKFplLFB0KSkrTWF0aC5pbXVsKFFlLEx0KXwwLEE9TWF0aC5pbXVsKFFlLFB0KTt2YXIgeGk9KFUrKEU9RStNYXRoLmltdWwobmUsZW4pfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSxzbil8MCkrTWF0aC5pbXVsKGxlLGVuKXwwKSk8PDEzKXww'@; put 'O1U9KChBPUErTWF0aC5pbXVsKGxlLHNuKXwwKSsobT4+PjEzKXwwKSsoeGk+Pj4yNil8MCx4aSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoeGUsTHQpLG09KG09TWF0aC5pbXVsKHhlLFB0KSkrTWF0aC5pbXVsKHZlLEx0KXwwLEE9TWF0aC5pbXVsKHZlLFB0KSxFPUUrTWF0aC5pbXVsKFplLGVu'@; put 'KXwwLG09KG09bStNYXRoLmltdWwoWmUsc24pfDApK01hdGguaW11bChRZSxlbil8MCxBPUErTWF0aC5pbXVsKFFlLHNuKXwwO3ZhciB5cj0oVSsoRT1FK01hdGguaW11bChuZSxkbil8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLGZ0KXwwKStNYXRoLmltdWwobGUsZG4pfDAp'@; put 'KTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwobGUsZnQpfDApKyhtPj4+MTMpfDApKyh5cj4+PjI2KXwwLHlyJj02NzEwODg2MyxFPU1hdGguaW11bChqZSxMdCksbT0obT1NYXRoLmltdWwoamUsUHQpKStNYXRoLmltdWwoQWUsTHQpfDAsQT1NYXRoLmltdWwoQWUsUHQpLEU9RStNYXRoLmlt'@; put 'dWwoeGUsZW4pfDAsbT0obT1tK01hdGguaW11bCh4ZSxzbil8MCkrTWF0aC5pbXVsKHZlLGVuKXwwLEE9QStNYXRoLmltdWwodmUsc24pfDAsRT1FK01hdGguaW11bChaZSxkbil8MCxtPShtPW0rTWF0aC5pbXVsKFplLGZ0KXwwKStNYXRoLmltdWwoUWUsZG4pfDAsQT1BK01hdGguaW11bChR'@; put 'ZSxmdCl8MDt2YXIgR249KFUrKEU9RStNYXRoLmltdWwobmUsWnQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSxrdCl8MCkrTWF0aC5pbXVsKGxlLFp0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKGxlLGt0KXwwKSsobT4+PjEzKXwwKSsoR24+Pj4yNil8MCxHbiY9'@; put 'NjcxMDg4NjMsRT1NYXRoLmltdWwoUmUsTHQpLG09KG09TWF0aC5pbXVsKFJlLFB0KSkrTWF0aC5pbXVsKEllLEx0KXwwLEE9TWF0aC5pbXVsKEllLFB0KSxFPUUrTWF0aC5pbXVsKGplLGVuKXwwLG09KG09bStNYXRoLmltdWwoamUsc24pfDApK01hdGguaW11bChBZSxlbil8MCxBPUErTWF0'@; put 'aC5pbXVsKEFlLHNuKXwwLEU9RStNYXRoLmltdWwoeGUsZG4pfDAsbT0obT1tK01hdGguaW11bCh4ZSxmdCl8MCkrTWF0aC5pbXVsKHZlLGRuKXwwLEE9QStNYXRoLmltdWwodmUsZnQpfDAsRT1FK01hdGguaW11bChaZSxadCl8MCxtPShtPW0rTWF0aC5pbXVsKFplLGt0KXwwKStNYXRoLmlt'@; put 'dWwoUWUsWnQpfDAsQT1BK01hdGguaW11bChRZSxrdCl8MDt2YXIgS2k9KFUrKEU9RStNYXRoLmltdWwobmUsb3QpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSx6dCl8MCkrTWF0aC5pbXVsKGxlLG90KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKGxlLHp0KXwwKSso'@; put 'bT4+PjEzKXwwKSsoS2k+Pj4yNil8MCxLaSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoRGUsTHQpLG09KG09TWF0aC5pbXVsKERlLFB0KSkrTWF0aC5pbXVsKGtlLEx0KXwwLEE9TWF0aC5pbXVsKGtlLFB0KSxFPUUrTWF0aC5pbXVsKFJlLGVuKXwwLG09KG09bStNYXRoLmltdWwoUmUsc24pfDAp'@; put 'K01hdGguaW11bChJZSxlbil8MCxBPUErTWF0aC5pbXVsKEllLHNuKXwwLEU9RStNYXRoLmltdWwoamUsZG4pfDAsbT0obT1tK01hdGguaW11bChqZSxmdCl8MCkrTWF0aC5pbXVsKEFlLGRuKXwwLEE9QStNYXRoLmltdWwoQWUsZnQpfDAsRT1FK01hdGguaW11bCh4ZSxadCl8MCxtPShtPW0r'@; put 'TWF0aC5pbXVsKHhlLGt0KXwwKStNYXRoLmltdWwodmUsWnQpfDAsQT1BK01hdGguaW11bCh2ZSxrdCl8MCxFPUUrTWF0aC5pbXVsKFplLG90KXwwLG09KG09bStNYXRoLmltdWwoWmUsenQpfDApK01hdGguaW11bChRZSxvdCl8MCxBPUErTWF0aC5pbXVsKFFlLHp0KXwwO3ZhciBKcj0oVSso'@; put 'RT1FK01hdGguaW11bChuZSxXZSl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLEF0KXwwKStNYXRoLmltdWwobGUsV2UpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwobGUsQXQpfDApKyhtPj4+MTMpfDApKyhKcj4+PjI2KXwwLEpyJj02NzEwODg2MyxFPU1hdGguaW11'@; put 'bChudCxMdCksbT0obT1NYXRoLmltdWwobnQsUHQpKStNYXRoLmltdWwoSmUsTHQpfDAsQT1NYXRoLmltdWwoSmUsUHQpLEU9RStNYXRoLmltdWwoRGUsZW4pfDAsbT0obT1tK01hdGguaW11bChEZSxzbil8MCkrTWF0aC5pbXVsKGtlLGVuKXwwLEE9QStNYXRoLmltdWwoa2Usc24pfDAsRT1F'@; put 'K01hdGguaW11bChSZSxkbil8MCxtPShtPW0rTWF0aC5pbXVsKFJlLGZ0KXwwKStNYXRoLmltdWwoSWUsZG4pfDAsQT1BK01hdGguaW11bChJZSxmdCl8MCxFPUUrTWF0aC5pbXVsKGplLFp0KXwwLG09KG09bStNYXRoLmltdWwoamUsa3QpfDApK01hdGguaW11bChBZSxadCl8MCxBPUErTWF0'@; put 'aC5pbXVsKEFlLGt0KXwwLEU9RStNYXRoLmltdWwoeGUsb3QpfDAsbT0obT1tK01hdGguaW11bCh4ZSx6dCl8MCkrTWF0aC5pbXVsKHZlLG90KXwwLEE9QStNYXRoLmltdWwodmUsenQpfDAsRT1FK01hdGguaW11bChaZSxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKFplLEF0KXwwKStNYXRoLmlt'@; put 'dWwoUWUsV2UpfDAsQT1BK01hdGguaW11bChRZSxBdCl8MDt2YXIgUXI9KFUrKEU9RStNYXRoLmltdWwobmUsaHQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSxFdCl8MCkrTWF0aC5pbXVsKGxlLGh0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKGxlLEV0KXwwKSso'@; put 'bT4+PjEzKXwwKSsoUXI+Pj4yNil8MCxRciY9NjcxMDg4NjMsRT1NYXRoLmltdWwoeXQsTHQpLG09KG09TWF0aC5pbXVsKHl0LFB0KSkrTWF0aC5pbXVsKE10LEx0KXwwLEE9TWF0aC5pbXVsKE10LFB0KSxFPUUrTWF0aC5pbXVsKG50LGVuKXwwLG09KG09bStNYXRoLmltdWwobnQsc24pfDAp'@; put 'K01hdGguaW11bChKZSxlbil8MCxBPUErTWF0aC5pbXVsKEplLHNuKXwwLEU9RStNYXRoLmltdWwoRGUsZG4pfDAsbT0obT1tK01hdGguaW11bChEZSxmdCl8MCkrTWF0aC5pbXVsKGtlLGRuKXwwLEE9QStNYXRoLmltdWwoa2UsZnQpfDAsRT1FK01hdGguaW11bChSZSxadCl8MCxtPShtPW0r'@; put 'TWF0aC5pbXVsKFJlLGt0KXwwKStNYXRoLmltdWwoSWUsWnQpfDAsQT1BK01hdGguaW11bChJZSxrdCl8MCxFPUUrTWF0aC5pbXVsKGplLG90KXwwLG09KG09bStNYXRoLmltdWwoamUsenQpfDApK01hdGguaW11bChBZSxvdCl8MCxBPUErTWF0aC5pbXVsKEFlLHp0KXwwLEU9RStNYXRoLmlt'@; put 'dWwoeGUsV2UpfDAsbT0obT1tK01hdGguaW11bCh4ZSxBdCl8MCkrTWF0aC5pbXVsKHZlLFdlKXwwLEE9QStNYXRoLmltdWwodmUsQXQpfDAsRT1FK01hdGguaW11bChaZSxodCl8MCxtPShtPW0rTWF0aC5pbXVsKFplLEV0KXwwKStNYXRoLmltdWwoUWUsaHQpfDAsQT1BK01hdGguaW11bChR'@; put 'ZSxFdCl8MDt2YXIgTmk9KFUrKEU9RStNYXRoLmltdWwobmUsYW4pfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSxqdCl8MCkrTWF0aC5pbXVsKGxlLGFuKXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKGxlLGp0KXwwKSsobT4+PjEzKXwwKSsoTmk+Pj4yNil8MCxOaSY9'@; put 'NjcxMDg4NjMsRT1NYXRoLmltdWwocnQsTHQpLG09KG09TWF0aC5pbXVsKHJ0LFB0KSkrTWF0aC5pbXVsKEtlLEx0KXwwLEE9TWF0aC5pbXVsKEtlLFB0KSxFPUUrTWF0aC5pbXVsKHl0LGVuKXwwLG09KG09bStNYXRoLmltdWwoeXQsc24pfDApK01hdGguaW11bChNdCxlbil8MCxBPUErTWF0'@; put 'aC5pbXVsKE10LHNuKXwwLEU9RStNYXRoLmltdWwobnQsZG4pfDAsbT0obT1tK01hdGguaW11bChudCxmdCl8MCkrTWF0aC5pbXVsKEplLGRuKXwwLEE9QStNYXRoLmltdWwoSmUsZnQpfDAsRT1FK01hdGguaW11bChEZSxadCl8MCxtPShtPW0rTWF0aC5pbXVsKERlLGt0KXwwKStNYXRoLmlt'@; put 'dWwoa2UsWnQpfDAsQT1BK01hdGguaW11bChrZSxrdCl8MCxFPUUrTWF0aC5pbXVsKFJlLG90KXwwLG09KG09bStNYXRoLmltdWwoUmUsenQpfDApK01hdGguaW11bChJZSxvdCl8MCxBPUErTWF0aC5pbXVsKEllLHp0KXwwLEU9RStNYXRoLmltdWwoamUsV2UpfDAsbT0obT1tK01hdGguaW11'@; put 'bChqZSxBdCl8MCkrTWF0aC5pbXVsKEFlLFdlKXwwLEE9QStNYXRoLmltdWwoQWUsQXQpfDAsRT1FK01hdGguaW11bCh4ZSxodCl8MCxtPShtPW0rTWF0aC5pbXVsKHhlLEV0KXwwKStNYXRoLmltdWwodmUsaHQpfDAsQT1BK01hdGguaW11bCh2ZSxFdCl8MCxFPUUrTWF0aC5pbXVsKFplLGFu'@; put 'KXwwLG09KG09bStNYXRoLmltdWwoWmUsanQpfDApK01hdGguaW11bChRZSxhbil8MCxBPUErTWF0aC5pbXVsKFFlLGp0KXwwO3ZhciBIaT0oVSsoRT1FK01hdGguaW11bChuZSxjbil8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKG5lLGZuKXwwKStNYXRoLmltdWwobGUsY24pfDAp'@; put 'KTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwobGUsZm4pfDApKyhtPj4+MTMpfDApKyhIaT4+PjI2KXwwLEhpJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxMdCksbT0obT1NYXRoLmltdWwoTmUsUHQpKStNYXRoLmltdWwodXQsTHQpfDAsQT1NYXRoLmltdWwodXQsUHQpLEU9RStNYXRoLmlt'@; put 'dWwocnQsZW4pfDAsbT0obT1tK01hdGguaW11bChydCxzbil8MCkrTWF0aC5pbXVsKEtlLGVuKXwwLEE9QStNYXRoLmltdWwoS2Usc24pfDAsRT1FK01hdGguaW11bCh5dCxkbil8MCxtPShtPW0rTWF0aC5pbXVsKHl0LGZ0KXwwKStNYXRoLmltdWwoTXQsZG4pfDAsQT1BK01hdGguaW11bChN'@; put 'dCxmdCl8MCxFPUUrTWF0aC5pbXVsKG50LFp0KXwwLG09KG09bStNYXRoLmltdWwobnQsa3QpfDApK01hdGguaW11bChKZSxadCl8MCxBPUErTWF0aC5pbXVsKEplLGt0KXwwLEU9RStNYXRoLmltdWwoRGUsb3QpfDAsbT0obT1tK01hdGguaW11bChEZSx6dCl8MCkrTWF0aC5pbXVsKGtlLG90'@; put 'KXwwLEE9QStNYXRoLmltdWwoa2UsenQpfDAsRT1FK01hdGguaW11bChSZSxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKFJlLEF0KXwwKStNYXRoLmltdWwoSWUsV2UpfDAsQT1BK01hdGguaW11bChJZSxBdCl8MCxFPUUrTWF0aC5pbXVsKGplLGh0KXwwLG09KG09bStNYXRoLmltdWwoamUsRXQp'@; put 'fDApK01hdGguaW11bChBZSxodCl8MCxBPUErTWF0aC5pbXVsKEFlLEV0KXwwLEU9RStNYXRoLmltdWwoeGUsYW4pfDAsbT0obT1tK01hdGguaW11bCh4ZSxqdCl8MCkrTWF0aC5pbXVsKHZlLGFuKXwwLEE9QStNYXRoLmltdWwodmUsanQpfDAsRT1FK01hdGguaW11bChaZSxjbil8MCxtPSht'@; put 'PW0rTWF0aC5pbXVsKFplLGZuKXwwKStNYXRoLmltdWwoUWUsY24pfDAsQT1BK01hdGguaW11bChRZSxmbil8MDt2YXIgSWE9KFUrKEU9RStNYXRoLmltdWwobmUsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChuZSx0bil8MCkrTWF0aC5pbXVsKGxlLFF0KXwwKSk8PDEzKXww'@; put 'O1U9KChBPUErTWF0aC5pbXVsKGxlLHRuKXwwKSsobT4+PjEzKXwwKSsoSWE+Pj4yNil8MCxJYSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsZW4pLG09KG09TWF0aC5pbXVsKE5lLHNuKSkrTWF0aC5pbXVsKHV0LGVuKXwwLEE9TWF0aC5pbXVsKHV0LHNuKSxFPUUrTWF0aC5pbXVsKHJ0LGRu'@; put 'KXwwLG09KG09bStNYXRoLmltdWwocnQsZnQpfDApK01hdGguaW11bChLZSxkbil8MCxBPUErTWF0aC5pbXVsKEtlLGZ0KXwwLEU9RStNYXRoLmltdWwoeXQsWnQpfDAsbT0obT1tK01hdGguaW11bCh5dCxrdCl8MCkrTWF0aC5pbXVsKE10LFp0KXwwLEE9QStNYXRoLmltdWwoTXQsa3QpfDAs'@; put 'RT1FK01hdGguaW11bChudCxvdCl8MCxtPShtPW0rTWF0aC5pbXVsKG50LHp0KXwwKStNYXRoLmltdWwoSmUsb3QpfDAsQT1BK01hdGguaW11bChKZSx6dCl8MCxFPUUrTWF0aC5pbXVsKERlLFdlKXwwLG09KG09bStNYXRoLmltdWwoRGUsQXQpfDApK01hdGguaW11bChrZSxXZSl8MCxBPUEr'@; put 'TWF0aC5pbXVsKGtlLEF0KXwwLEU9RStNYXRoLmltdWwoUmUsaHQpfDAsbT0obT1tK01hdGguaW11bChSZSxFdCl8MCkrTWF0aC5pbXVsKEllLGh0KXwwLEE9QStNYXRoLmltdWwoSWUsRXQpfDAsRT1FK01hdGguaW11bChqZSxhbil8MCxtPShtPW0rTWF0aC5pbXVsKGplLGp0KXwwKStNYXRo'@; put 'LmltdWwoQWUsYW4pfDAsQT1BK01hdGguaW11bChBZSxqdCl8MCxFPUUrTWF0aC5pbXVsKHhlLGNuKXwwLG09KG09bStNYXRoLmltdWwoeGUsZm4pfDApK01hdGguaW11bCh2ZSxjbil8MCxBPUErTWF0aC5pbXVsKHZlLGZuKXwwO3ZhciBQcj0oVSsoRT1FK01hdGguaW11bChaZSxRdCl8MCl8'@; put 'MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKFplLHRuKXwwKStNYXRoLmltdWwoUWUsUXQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwoUWUsdG4pfDApKyhtPj4+MTMpfDApKyhQcj4+PjI2KXwwLFByJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxkbiksbT0obT1NYXRoLmltdWwo'@; put 'TmUsZnQpKStNYXRoLmltdWwodXQsZG4pfDAsQT1NYXRoLmltdWwodXQsZnQpLEU9RStNYXRoLmltdWwocnQsWnQpfDAsbT0obT1tK01hdGguaW11bChydCxrdCl8MCkrTWF0aC5pbXVsKEtlLFp0KXwwLEE9QStNYXRoLmltdWwoS2Usa3QpfDAsRT1FK01hdGguaW11bCh5dCxvdCl8MCxtPSht'@; put 'PW0rTWF0aC5pbXVsKHl0LHp0KXwwKStNYXRoLmltdWwoTXQsb3QpfDAsQT1BK01hdGguaW11bChNdCx6dCl8MCxFPUUrTWF0aC5pbXVsKG50LFdlKXwwLG09KG09bStNYXRoLmltdWwobnQsQXQpfDApK01hdGguaW11bChKZSxXZSl8MCxBPUErTWF0aC5pbXVsKEplLEF0KXwwLEU9RStNYXRo'@; put 'LmltdWwoRGUsaHQpfDAsbT0obT1tK01hdGguaW11bChEZSxFdCl8MCkrTWF0aC5pbXVsKGtlLGh0KXwwLEE9QStNYXRoLmltdWwoa2UsRXQpfDAsRT1FK01hdGguaW11bChSZSxhbil8MCxtPShtPW0rTWF0aC5pbXVsKFJlLGp0KXwwKStNYXRoLmltdWwoSWUsYW4pfDAsQT1BK01hdGguaW11'@; put 'bChJZSxqdCl8MCxFPUUrTWF0aC5pbXVsKGplLGNuKXwwLG09KG09bStNYXRoLmltdWwoamUsZm4pfDApK01hdGguaW11bChBZSxjbil8MCxBPUErTWF0aC5pbXVsKEFlLGZuKXwwO3ZhciBZaT0oVSsoRT1FK01hdGguaW11bCh4ZSxRdCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVs'@; put 'KHhlLHRuKXwwKStNYXRoLmltdWwodmUsUXQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwodmUsdG4pfDApKyhtPj4+MTMpfDApKyhZaT4+PjI2KXwwLFlpJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxadCksbT0obT1NYXRoLmltdWwoTmUsa3QpKStNYXRoLmltdWwodXQsWnQpfDAs'@; put 'QT1NYXRoLmltdWwodXQsa3QpLEU9RStNYXRoLmltdWwocnQsb3QpfDAsbT0obT1tK01hdGguaW11bChydCx6dCl8MCkrTWF0aC5pbXVsKEtlLG90KXwwLEE9QStNYXRoLmltdWwoS2UsenQpfDAsRT1FK01hdGguaW11bCh5dCxXZSl8MCxtPShtPW0rTWF0aC5pbXVsKHl0LEF0KXwwKStNYXRo'@; put 'LmltdWwoTXQsV2UpfDAsQT1BK01hdGguaW11bChNdCxBdCl8MCxFPUUrTWF0aC5pbXVsKG50LGh0KXwwLG09KG09bStNYXRoLmltdWwobnQsRXQpfDApK01hdGguaW11bChKZSxodCl8MCxBPUErTWF0aC5pbXVsKEplLEV0KXwwLEU9RStNYXRoLmltdWwoRGUsYW4pfDAsbT0obT1tK01hdGgu'@; put 'aW11bChEZSxqdCl8MCkrTWF0aC5pbXVsKGtlLGFuKXwwLEE9QStNYXRoLmltdWwoa2UsanQpfDAsRT1FK01hdGguaW11bChSZSxjbil8MCxtPShtPW0rTWF0aC5pbXVsKFJlLGZuKXwwKStNYXRoLmltdWwoSWUsY24pfDAsQT1BK01hdGguaW11bChJZSxmbil8MDt2YXIgZmE9KFUrKEU9RStN'@; put 'YXRoLmltdWwoamUsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChqZSx0bil8MCkrTWF0aC5pbXVsKEFlLFF0KXwwKSk8PDEzKXwwO1U9KChBPUErTWF0aC5pbXVsKEFlLHRuKXwwKSsobT4+PjEzKXwwKSsoZmE+Pj4yNil8MCxmYSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUs'@; put 'b3QpLG09KG09TWF0aC5pbXVsKE5lLHp0KSkrTWF0aC5pbXVsKHV0LG90KXwwLEE9TWF0aC5pbXVsKHV0LHp0KSxFPUUrTWF0aC5pbXVsKHJ0LFdlKXwwLG09KG09bStNYXRoLmltdWwocnQsQXQpfDApK01hdGguaW11bChLZSxXZSl8MCxBPUErTWF0aC5pbXVsKEtlLEF0KXwwLEU9RStNYXRo'@; put 'LmltdWwoeXQsaHQpfDAsbT0obT1tK01hdGguaW11bCh5dCxFdCl8MCkrTWF0aC5pbXVsKE10LGh0KXwwLEE9QStNYXRoLmltdWwoTXQsRXQpfDAsRT1FK01hdGguaW11bChudCxhbil8MCxtPShtPW0rTWF0aC5pbXVsKG50LGp0KXwwKStNYXRoLmltdWwoSmUsYW4pfDAsQT1BK01hdGguaW11'@; put 'bChKZSxqdCl8MCxFPUUrTWF0aC5pbXVsKERlLGNuKXwwLG09KG09bStNYXRoLmltdWwoRGUsZm4pfDApK01hdGguaW11bChrZSxjbil8MCxBPUErTWF0aC5pbXVsKGtlLGZuKXwwO3ZhciBucj0oVSsoRT1FK01hdGguaW11bChSZSxRdCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVs'@; put 'KFJlLHRuKXwwKStNYXRoLmltdWwoSWUsUXQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwoSWUsdG4pfDApKyhtPj4+MTMpfDApKyhucj4+PjI2KXwwLG5yJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxXZSksbT0obT1NYXRoLmltdWwoTmUsQXQpKStNYXRoLmltdWwodXQsV2UpfDAs'@; put 'QT1NYXRoLmltdWwodXQsQXQpLEU9RStNYXRoLmltdWwocnQsaHQpfDAsbT0obT1tK01hdGguaW11bChydCxFdCl8MCkrTWF0aC5pbXVsKEtlLGh0KXwwLEE9QStNYXRoLmltdWwoS2UsRXQpfDAsRT1FK01hdGguaW11bCh5dCxhbil8MCxtPShtPW0rTWF0aC5pbXVsKHl0LGp0KXwwKStNYXRo'@; put 'LmltdWwoTXQsYW4pfDAsQT1BK01hdGguaW11bChNdCxqdCl8MCxFPUUrTWF0aC5pbXVsKG50LGNuKXwwLG09KG09bStNYXRoLmltdWwobnQsZm4pfDApK01hdGguaW11bChKZSxjbil8MCxBPUErTWF0aC5pbXVsKEplLGZuKXwwO3ZhciBvYT0oVSsoRT1FK01hdGguaW11bChEZSxRdCl8MCl8'@; put 'MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKERlLHRuKXwwKStNYXRoLmltdWwoa2UsUXQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwoa2UsdG4pfDApKyhtPj4+MTMpfDApKyhvYT4+PjI2KXwwLG9hJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxodCksbT0obT1NYXRoLmltdWwo'@; put 'TmUsRXQpKStNYXRoLmltdWwodXQsaHQpfDAsQT1NYXRoLmltdWwodXQsRXQpLEU9RStNYXRoLmltdWwocnQsYW4pfDAsbT0obT1tK01hdGguaW11bChydCxqdCl8MCkrTWF0aC5pbXVsKEtlLGFuKXwwLEE9QStNYXRoLmltdWwoS2UsanQpfDAsRT1FK01hdGguaW11bCh5dCxjbil8MCxtPSht'@; put 'PW0rTWF0aC5pbXVsKHl0LGZuKXwwKStNYXRoLmltdWwoTXQsY24pfDAsQT1BK01hdGguaW11bChNdCxmbil8MDt2YXIgX2E9KFUrKEU9RStNYXRoLmltdWwobnQsUXQpfDApfDApKygoODE5MSYobT0obT1tK01hdGguaW11bChudCx0bil8MCkrTWF0aC5pbXVsKEplLFF0KXwwKSk8PDEzKXww'@; put 'O1U9KChBPUErTWF0aC5pbXVsKEplLHRuKXwwKSsobT4+PjEzKXwwKSsoX2E+Pj4yNil8MCxfYSY9NjcxMDg4NjMsRT1NYXRoLmltdWwoTmUsYW4pLG09KG09TWF0aC5pbXVsKE5lLGp0KSkrTWF0aC5pbXVsKHV0LGFuKXwwLEE9TWF0aC5pbXVsKHV0LGp0KSxFPUUrTWF0aC5pbXVsKHJ0LGNu'@; put 'KXwwLG09KG09bStNYXRoLmltdWwocnQsZm4pfDApK01hdGguaW11bChLZSxjbil8MCxBPUErTWF0aC5pbXVsKEtlLGZuKXwwO3ZhciBPYT0oVSsoRT1FK01hdGguaW11bCh5dCxRdCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKHl0LHRuKXwwKStNYXRoLmltdWwoTXQsUXQpfDAp'@; put 'KTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwoTXQsdG4pfDApKyhtPj4+MTMpfDApKyhPYT4+PjI2KXwwLE9hJj02NzEwODg2MyxFPU1hdGguaW11bChOZSxjbiksbT0obT1NYXRoLmltdWwoTmUsZm4pKStNYXRoLmltdWwodXQsY24pfDAsQT1NYXRoLmltdWwodXQsZm4pO3ZhciBOYT0oVSso'@; put 'RT1FK01hdGguaW11bChydCxRdCl8MCl8MCkrKCg4MTkxJihtPShtPW0rTWF0aC5pbXVsKHJ0LHRuKXwwKStNYXRoLmltdWwoS2UsUXQpfDApKTw8MTMpfDA7VT0oKEE9QStNYXRoLmltdWwoS2UsdG4pfDApKyhtPj4+MTMpfDApKyhOYT4+PjI2KXwwLE5hJj02NzEwODg2Mzt2YXIgZWk9KFUr'@; put 'KEU9TWF0aC5pbXVsKE5lLFF0KSl8MCkrKCg4MTkxJihtPShtPU1hdGguaW11bChOZSx0bikpK01hdGguaW11bCh1dCxRdCl8MCkpPDwxMyl8MDtyZXR1cm4gVT0oKEE9TWF0aC5pbXVsKHV0LHRuKSkrKG0+Pj4xMyl8MCkrKGVpPj4+MjYpfDAsZWkmPTY3MTA4ODYzLFZbMF09Y2EsVlsxXT14'@; put 'aSxWWzJdPXlyLFZbM109R24sVls0XT1LaSxWWzVdPUpyLFZbNl09UXIsVls3XT1OaSxWWzhdPUhpLFZbOV09SWEsVlsxMF09UHIsVlsxMV09WWksVlsxMl09ZmEsVlsxM109bnIsVlsxNF09b2EsVlsxNV09X2EsVlsxNl09T2EsVlsxN109TmEsVlsxOF09ZWksMCE9PVUmJihWWzE5XT1VLHgu'@; put 'bGVuZ3RoKyspLHh9O2Z1bmN0aW9uIFEoeixnLHkpe3JldHVybihuZXcgcSkubXVscCh6LGcseSl9ZnVuY3Rpb24gcSh6LGcpe3RoaXMueD16LHRoaXMueT1nfU1hdGguaW11bHx8KFo9Vyksdy5wcm90b3R5cGUubXVsVG89ZnVuY3Rpb24oZyx5KXt2YXIgeCxDPXRoaXMubGVuZ3RoK2cubGVu'@; put 'Z3RoO3JldHVybiB4PTEwPT09dGhpcy5sZW5ndGgmJjEwPT09Zy5sZW5ndGg/Wih0aGlzLGcseSk6Qzw2Mz9XKHRoaXMsZyx5KTpDPDEwMjQ/ZnVuY3Rpb24gWCh6LGcseSl7eS5uZWdhdGl2ZT1nLm5lZ2F0aXZlXnoubmVnYXRpdmUseS5sZW5ndGg9ei5sZW5ndGgrZy5sZW5ndGg7Zm9yKHZh'@; put 'ciB4PTAsQz0wLFQ9MDtUPHkubGVuZ3RoLTE7VCsrKXt2YXIgVj1DO0M9MDtmb3IodmFyIFU9NjcxMDg4NjMmeCxFPU1hdGgubWluKFQsZy5sZW5ndGgtMSksbT1NYXRoLm1heCgwLFQtei5sZW5ndGgrMSk7bTw9RTttKyspe3ZhciBsZT0oMHx6LndvcmRzW1QtbV0pKigwfGcud29yZHNbbV0p'@; put 'LHdlPTY3MTA4ODYzJmxlO1U9NjcxMDg4NjMmKHdlPXdlK1V8MCksQys9KFY9KFY9VisobGUvNjcxMDg4NjR8MCl8MCkrKHdlPj4+MjYpfDApPj4+MjYsViY9NjcxMDg4NjN9eS53b3Jkc1tUXT1VLHg9VixWPUN9cmV0dXJuIDAhPT14P3kud29yZHNbVF09eDp5Lmxlbmd0aC0tLHkuc3RyaXAo'@; put 'KX0odGhpcyxnLHkpOlEodGhpcyxnLHkpLHh9LHEucHJvdG90eXBlLm1ha2VSQlQ9ZnVuY3Rpb24oZyl7Zm9yKHZhciB5PW5ldyBBcnJheShnKSx4PXcucHJvdG90eXBlLl9jb3VudEJpdHMoZyktMSxDPTA7QzxnO0MrKyl5W0NdPXRoaXMucmV2QmluKEMseCxnKTtyZXR1cm4geX0scS5wcm90'@; put 'b3R5cGUucmV2QmluPWZ1bmN0aW9uKGcseSx4KXtpZigwPT09Z3x8Zz09PXgtMSlyZXR1cm4gZztmb3IodmFyIEM9MCxUPTA7VDx5O1QrKylDfD0oMSZnKTw8eS1ULTEsZz4+PTE7cmV0dXJuIEN9LHEucHJvdG90eXBlLnBlcm11dGU9ZnVuY3Rpb24oZyx5LHgsQyxULFYpe2Zvcih2YXIgVT0w'@; put 'O1U8VjtVKyspQ1tVXT15W2dbVV1dLFRbVV09eFtnW1VdXX0scS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKGcseSx4LEMsVCxWKXt0aGlzLnBlcm11dGUoVixnLHkseCxDLFQpO2Zvcih2YXIgVT0xO1U8VDtVPDw9MSlmb3IodmFyIEU9VTw8MSxtPU1hdGguY29zKDIqTWF0aC5QSS9F'@; put 'KSxBPU1hdGguc2luKDIqTWF0aC5QSS9FKSxhZT0wO2FlPFQ7YWUrPUUpZm9yKHZhciBuZT1tLGxlPUEsd2U9MDt3ZTxVO3dlKyspe3ZhciBaZT14W2FlK3dlXSxRZT1DW2FlK3dlXSxhdD14W2FlK3dlK1VdLHhlPUNbYWUrd2UrVV0sdmU9bmUqYXQtbGUqeGU7eGU9bmUqeGUrbGUqYXQseFth'@; put 'ZSt3ZV09WmUrKGF0PXZlKSxDW2FlK3dlXT1RZSt4ZSx4W2FlK3dlK1VdPVplLWF0LENbYWUrd2UrVV09UWUteGUsd2UhPT1FJiYodmU9bSpuZS1BKmxlLGxlPW0qbGUrQSpuZSxuZT12ZSl9fSxxLnByb3RvdHlwZS5ndWVzc0xlbjEzYj1mdW5jdGlvbihnLHkpe3ZhciB4PTF8TWF0aC5tYXgo'@; put 'eSxnKSxDPTEmeCxUPTA7Zm9yKHg9eC8yfDA7eDt4Pj4+PTEpVCsrO3JldHVybiAxPDxUKzErQ30scS5wcm90b3R5cGUuY29uanVnYXRlPWZ1bmN0aW9uKGcseSx4KXtpZighKHg8PTEpKWZvcih2YXIgQz0wO0M8eC8yO0MrKyl7dmFyIFQ9Z1tDXTtnW0NdPWdbeC1DLTFdLGdbeC1DLTFdPVQs'@; put 'VD15W0NdLHlbQ109LXlbeC1DLTFdLHlbeC1DLTFdPS1UfX0scS5wcm90b3R5cGUubm9ybWFsaXplMTNiPWZ1bmN0aW9uKGcseSl7Zm9yKHZhciB4PTAsQz0wO0M8eS8yO0MrKyl7dmFyIFQ9ODE5MipNYXRoLnJvdW5kKGdbMipDKzFdL3kpK01hdGgucm91bmQoZ1syKkNdL3kpK3g7Z1tDXT02'@; put 'NzEwODg2MyZULHg9VDw2NzEwODg2ND8wOlQvNjcxMDg4NjR8MH1yZXR1cm4gZ30scS5wcm90b3R5cGUuY29udmVydDEzYj1mdW5jdGlvbihnLHkseCxDKXtmb3IodmFyIFQ9MCxWPTA7Vjx5O1YrKyl4WzIqVl09ODE5MSYoVCs9MHxnW1ZdKSx4WzIqVisxXT04MTkxJihUPj4+PTEzKSxUPj4+'@; put 'PTEzO2ZvcihWPTIqeTtWPEM7KytWKXhbVl09MDtwKDA9PT1UKSxwKCEoLTgxOTImVCkpfSxxLnByb3RvdHlwZS5zdHViPWZ1bmN0aW9uKGcpe2Zvcih2YXIgeT1uZXcgQXJyYXkoZykseD0wO3g8Zzt4KyspeVt4XT0wO3JldHVybiB5fSxxLnByb3RvdHlwZS5tdWxwPWZ1bmN0aW9uKGcseSx4'@; put 'KXt2YXIgQz0yKnRoaXMuZ3Vlc3NMZW4xM2IoZy5sZW5ndGgseS5sZW5ndGgpLFQ9dGhpcy5tYWtlUkJUKEMpLFY9dGhpcy5zdHViKEMpLFU9bmV3IEFycmF5KEMpLEU9bmV3IEFycmF5KEMpLG09bmV3IEFycmF5KEMpLEE9bmV3IEFycmF5KEMpLGFlPW5ldyBBcnJheShDKSxuZT1uZXcgQXJy'@; put 'YXkoQyksbGU9eC53b3JkcztsZS5sZW5ndGg9Qyx0aGlzLmNvbnZlcnQxM2IoZy53b3JkcyxnLmxlbmd0aCxVLEMpLHRoaXMuY29udmVydDEzYih5LndvcmRzLHkubGVuZ3RoLEEsQyksdGhpcy50cmFuc2Zvcm0oVSxWLEUsbSxDLFQpLHRoaXMudHJhbnNmb3JtKEEsVixhZSxuZSxDLFQpO2Zv'@; put 'cih2YXIgd2U9MDt3ZTxDO3dlKyspe3ZhciBaZT1FW3dlXSphZVt3ZV0tbVt3ZV0qbmVbd2VdO21bd2VdPUVbd2VdKm5lW3dlXSttW3dlXSphZVt3ZV0sRVt3ZV09WmV9cmV0dXJuIHRoaXMuY29uanVnYXRlKEUsbSxDKSx0aGlzLnRyYW5zZm9ybShFLG0sbGUsVixDLFQpLHRoaXMuY29uanVn'@; put 'YXRlKGxlLFYsQyksdGhpcy5ub3JtYWxpemUxM2IobGUsQykseC5uZWdhdGl2ZT1nLm5lZ2F0aXZlXnkubmVnYXRpdmUseC5sZW5ndGg9Zy5sZW5ndGgreS5sZW5ndGgseC5zdHJpcCgpfSx3LnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oZyl7dmFyIHk9bmV3IHcobnVsbCk7cmV0dXJuIHkud29y'@; put 'ZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK2cubGVuZ3RoKSx0aGlzLm11bFRvKGcseSl9LHcucHJvdG90eXBlLm11bGY9ZnVuY3Rpb24oZyl7dmFyIHk9bmV3IHcobnVsbCk7cmV0dXJuIHkud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK2cubGVuZ3RoKSxRKHRoaXMsZyx5KX0sdy5wcm90'@; put 'b3R5cGUuaW11bD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLm11bFRvKGcsdGhpcyl9LHcucHJvdG90eXBlLmltdWxuPWZ1bmN0aW9uKGcpe3AoIm51bWJlciI9PXR5cGVvZiBnKSxwKGc8NjcxMDg4NjQpO2Zvcih2YXIgeT0wLHg9MDt4PHRoaXMubGVuZ3RoO3grKyl7dmFyIEM9'@; put 'KDB8dGhpcy53b3Jkc1t4XSkqZyxUPSg2NzEwODg2MyZDKSsoNjcxMDg4NjMmeSk7eT4+PTI2LHkrPUMvNjcxMDg4NjR8MCx5Kz1UPj4+MjYsdGhpcy53b3Jkc1t4XT02NzEwODg2MyZUfXJldHVybiAwIT09eSYmKHRoaXMud29yZHNbeF09eSx0aGlzLmxlbmd0aCsrKSx0aGlzLmxlbmd0aD0w'@; put 'PT09Zz8xOnRoaXMubGVuZ3RoLHRoaXN9LHcucHJvdG90eXBlLm11bG49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbihnKX0sdy5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSx3LnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKCl7cmV0'@; put 'dXJuIHRoaXMuaW11bCh0aGlzLmNsb25lKCkpfSx3LnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oZyl7dmFyIHk9ZnVuY3Rpb24gQih6KXtmb3IodmFyIGc9bmV3IEFycmF5KHouYml0TGVuZ3RoKCkpLHk9MDt5PGcubGVuZ3RoO3krKyl7dmFyIEM9eSUyNjtnW3ldPSh6LndvcmRzW3kvMjZ8MF0m'@; put 'MTw8Qyk+Pj5DfXJldHVybiBnfShnKTtpZigwPT09eS5sZW5ndGgpcmV0dXJuIG5ldyB3KDEpO2Zvcih2YXIgeD10aGlzLEM9MDtDPHkubGVuZ3RoJiYwPT09eVtDXTtDKysseD14LnNxcigpKTtpZigrK0M8eS5sZW5ndGgpZm9yKHZhciBUPXguc3FyKCk7Qzx5Lmxlbmd0aDtDKyssVD1ULnNx'@; put 'cigpKTAhPT15W0NdJiYoeD14Lm11bChUKSk7cmV0dXJuIHh9LHcucHJvdG90eXBlLml1c2hsbj1mdW5jdGlvbihnKXtwKCJudW1iZXIiPT10eXBlb2YgZyYmZz49MCk7dmFyIFQseT1nJTI2LHg9KGcteSkvMjYsQz02NzEwODg2Mz4+PjI2LXk8PDI2LXk7aWYoMCE9PXkpe3ZhciBWPTA7Zm9y'@; put 'KFQ9MDtUPHRoaXMubGVuZ3RoO1QrKyl7dmFyIFU9dGhpcy53b3Jkc1tUXSZDO3RoaXMud29yZHNbVF09KDB8dGhpcy53b3Jkc1tUXSktVTw8eXxWLFY9VT4+PjI2LXl9ViYmKHRoaXMud29yZHNbVF09Vix0aGlzLmxlbmd0aCsrKX1pZigwIT09eCl7Zm9yKFQ9dGhpcy5sZW5ndGgtMTtUPj0w'@; put 'O1QtLSl0aGlzLndvcmRzW1QreF09dGhpcy53b3Jkc1tUXTtmb3IoVD0wO1Q8eDtUKyspdGhpcy53b3Jkc1tUXT0wO3RoaXMubGVuZ3RoKz14fXJldHVybiB0aGlzLnN0cmlwKCl9LHcucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKGcpe3JldHVybiBwKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlz'@; put 'Lml1c2hsbihnKX0sdy5wcm90b3R5cGUuaXVzaHJuPWZ1bmN0aW9uKGcseSx4KXt2YXIgQztwKCJudW1iZXIiPT10eXBlb2YgZyYmZz49MCksQz15Pyh5LXklMjYpLzI2OjA7dmFyIFQ9ZyUyNixWPU1hdGgubWluKChnLVQpLzI2LHRoaXMubGVuZ3RoKSxVPTY3MTA4ODYzXjY3MTA4ODYzPj4+'@; put 'VDw8VCxFPXg7aWYoQy09VixDPU1hdGgubWF4KDAsQyksRSl7Zm9yKHZhciBtPTA7bTxWO20rKylFLndvcmRzW21dPXRoaXMud29yZHNbbV07RS5sZW5ndGg9Vn1pZigwIT09VilpZih0aGlzLmxlbmd0aD5WKWZvcih0aGlzLmxlbmd0aC09VixtPTA7bTx0aGlzLmxlbmd0aDttKyspdGhpcy53'@; put 'b3Jkc1ttXT10aGlzLndvcmRzW20rVl07ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgQT0wO2ZvcihtPXRoaXMubGVuZ3RoLTE7bT49MCYmKDAhPT1BfHxtPj1DKTttLS0pe3ZhciBhZT0wfHRoaXMud29yZHNbbV07dGhpcy53b3Jkc1ttXT1BPDwyNi1UfGFlPj4+VCxB'@; put 'PWFlJlV9cmV0dXJuIEUmJjAhPT1BJiYoRS53b3Jkc1tFLmxlbmd0aCsrXT1BKSwwPT09dGhpcy5sZW5ndGgmJih0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MSksdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5pc2hybj1mdW5jdGlvbihnLHkseCl7cmV0dXJuIHAoMD09PXRoaXMubmVn'@; put 'YXRpdmUpLHRoaXMuaXVzaHJuKGcseSx4KX0sdy5wcm90b3R5cGUuc2hsbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaGxuKGcpfSx3LnByb3RvdHlwZS51c2hsbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hsbihnKX0sdy5wcm90b3R5cGUuc2hybj1m'@; put 'dW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKGcpfSx3LnByb3RvdHlwZS51c2hybj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hybihnKX0sdy5wcm90b3R5cGUudGVzdG49ZnVuY3Rpb24oZyl7cCgibnVtYmVyIj09dHlwZW9mIGcmJmc+PTApO3ZhciB5'@; put 'PWclMjYseD0oZy15KS8yNjtyZXR1cm4hKHRoaXMubGVuZ3RoPD14fHwhKHRoaXMud29yZHNbeF0mMTw8eSkpfSx3LnByb3RvdHlwZS5pbWFza249ZnVuY3Rpb24oZyl7cCgibnVtYmVyIj09dHlwZW9mIGcmJmc+PTApO3ZhciB5PWclMjYseD0oZy15KS8yNjtyZXR1cm4gcCgwPT09dGhpcy5u'@; put 'ZWdhdGl2ZSwiaW1hc2tuIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZSBudW1iZXJzIiksdGhpcy5sZW5ndGg8PXg/dGhpczooMCE9PXkmJngrKyx0aGlzLmxlbmd0aD1NYXRoLm1pbih4LHRoaXMubGVuZ3RoKSwwIT09eSYmKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0mPTY3MTA4ODYzXjY3'@; put 'MTA4ODYzPj4+eTw8eSksdGhpcy5zdHJpcCgpKX0sdy5wcm90b3R5cGUubWFza249ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbWFza24oZyl9LHcucHJvdG90eXBlLmlhZGRuPWZ1bmN0aW9uKGcpe3JldHVybiBwKCJudW1iZXIiPT10eXBlb2YgZykscChnPDY3MTA4ODY0KSxn'@; put 'PDA/dGhpcy5pc3VibigtZyk6MCE9PXRoaXMubmVnYXRpdmU/MT09PXRoaXMubGVuZ3RoJiYoMHx0aGlzLndvcmRzWzBdKTxnPyh0aGlzLndvcmRzWzBdPWctKDB8dGhpcy53b3Jkc1swXSksdGhpcy5uZWdhdGl2ZT0wLHRoaXMpOih0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pc3VibihnKSx0aGlz'@; put 'Lm5lZ2F0aXZlPTEsdGhpcyk6dGhpcy5faWFkZG4oZyl9LHcucHJvdG90eXBlLl9pYWRkbj1mdW5jdGlvbihnKXt0aGlzLndvcmRzWzBdKz1nO2Zvcih2YXIgeT0wO3k8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbeV0+PTY3MTA4ODY0O3krKyl0aGlzLndvcmRzW3ldLT02NzEwODg2NCx5PT09'@; put 'dGhpcy5sZW5ndGgtMT90aGlzLndvcmRzW3krMV09MTp0aGlzLndvcmRzW3krMV0rKztyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgseSsxKSx0aGlzfSx3LnByb3RvdHlwZS5pc3Vibj1mdW5jdGlvbihnKXtpZihwKCJudW1iZXIiPT10eXBlb2YgZykscChnPDY3MTA4'@; put 'ODY0KSxnPDApcmV0dXJuIHRoaXMuaWFkZG4oLWcpO2lmKDAhPT10aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkbihnKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcztpZih0aGlzLndvcmRzWzBdLT1nLDE9PT10aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1swXTwwKXRo'@; put 'aXMud29yZHNbMF09LXRoaXMud29yZHNbMF0sdGhpcy5uZWdhdGl2ZT0xO2Vsc2UgZm9yKHZhciB5PTA7eTx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1t5XTwwO3krKyl0aGlzLndvcmRzW3ldKz02NzEwODg2NCx0aGlzLndvcmRzW3krMV0tPTE7cmV0dXJuIHRoaXMuc3RyaXAoKX0sdy5wcm90'@; put 'b3R5cGUuYWRkbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhZGRuKGcpfSx3LnByb3RvdHlwZS5zdWJuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Ym4oZyl9LHcucHJvdG90eXBlLmlhYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRo'@; put 'aXN9LHcucHJvdG90eXBlLmFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaWFicygpfSx3LnByb3RvdHlwZS5faXNobG5zdWJtdWw9ZnVuY3Rpb24oZyx5LHgpe3ZhciBUO3RoaXMuX2V4cGFuZChnLmxlbmd0aCt4KTt2YXIgVixVPTA7Zm9yKFQ9MDtUPGcubGVuZ3RoO1QrKyl7'@; put 'Vj0oMHx0aGlzLndvcmRzW1QreF0pK1U7dmFyIEU9KDB8Zy53b3Jkc1tUXSkqeTtVPSgoVi09NjcxMDg4NjMmRSk+PjI2KS0oRS82NzEwODg2NHwwKSx0aGlzLndvcmRzW1QreF09NjcxMDg4NjMmVn1mb3IoO1Q8dGhpcy5sZW5ndGgteDtUKyspVT0oVj0oMHx0aGlzLndvcmRzW1QreF0pK1Up'@; put 'Pj4yNix0aGlzLndvcmRzW1QreF09NjcxMDg4NjMmVjtpZigwPT09VSlyZXR1cm4gdGhpcy5zdHJpcCgpO2ZvcihwKC0xPT09VSksVT0wLFQ9MDtUPHRoaXMubGVuZ3RoO1QrKylVPShWPS0oMHx0aGlzLndvcmRzW1RdKStVKT4+MjYsdGhpcy53b3Jkc1tUXT02NzEwODg2MyZWO3JldHVybiB0'@; put 'aGlzLm5lZ2F0aXZlPTEsdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbihnLHkpe3ZhciB4LEM9dGhpcy5jbG9uZSgpLFQ9ZyxWPTB8VC53b3Jkc1tULmxlbmd0aC0xXTswIT0oeD0yNi10aGlzLl9jb3VudEJpdHMoVikpJiYoVD1ULnVzaGxuKHgpLEMuaXVzaGxu'@; put 'KHgpLFY9MHxULndvcmRzW1QubGVuZ3RoLTFdKTt2YXIgbSxFPUMubGVuZ3RoLVQubGVuZ3RoO2lmKCJtb2QiIT09eSl7KG09bmV3IHcobnVsbCkpLmxlbmd0aD1FKzEsbS53b3Jkcz1uZXcgQXJyYXkobS5sZW5ndGgpO2Zvcih2YXIgQT0wO0E8bS5sZW5ndGg7QSsrKW0ud29yZHNbQV09MH12'@; put 'YXIgYWU9Qy5jbG9uZSgpLl9pc2hsbnN1Ym11bChULDEsRSk7MD09PWFlLm5lZ2F0aXZlJiYoQz1hZSxtJiYobS53b3Jkc1tFXT0xKSk7Zm9yKHZhciBuZT1FLTE7bmU+PTA7bmUtLSl7dmFyIGxlPTY3MTA4ODY0KigwfEMud29yZHNbVC5sZW5ndGgrbmVdKSsoMHxDLndvcmRzW1QubGVuZ3Ro'@; put 'K25lLTFdKTtmb3IobGU9TWF0aC5taW4obGUvVnwwLDY3MTA4ODYzKSxDLl9pc2hsbnN1Ym11bChULGxlLG5lKTswIT09Qy5uZWdhdGl2ZTspbGUtLSxDLm5lZ2F0aXZlPTAsQy5faXNobG5zdWJtdWwoVCwxLG5lKSxDLmlzWmVybygpfHwoQy5uZWdhdGl2ZV49MSk7bSYmKG0ud29yZHNbbmVd'@; put 'PWxlKX1yZXR1cm4gbSYmbS5zdHJpcCgpLEMuc3RyaXAoKSwiZGl2IiE9PXkmJjAhPT14JiZDLml1c2hybih4KSx7ZGl2Om18fG51bGwsbW9kOkN9fSx3LnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24oZyx5LHgpe3JldHVybiBwKCFnLmlzWmVybygpKSx0aGlzLmlzWmVybygpP3tkaXY6bmV3'@; put 'IHcoMCksbW9kOm5ldyB3KDApfTowIT09dGhpcy5uZWdhdGl2ZSYmMD09PWcubmVnYXRpdmU/KFY9dGhpcy5uZWcoKS5kaXZtb2QoZyx5KSwibW9kIiE9PXkmJihDPVYuZGl2Lm5lZygpKSwiZGl2IiE9PXkmJihUPVYubW9kLm5lZygpLHgmJjAhPT1ULm5lZ2F0aXZlJiZULmlhZGQoZykpLHtk'@; put 'aXY6Qyxtb2Q6VH0pOjA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Zy5uZWdhdGl2ZT8oVj10aGlzLmRpdm1vZChnLm5lZygpLHkpLCJtb2QiIT09eSYmKEM9Vi5kaXYubmVnKCkpLHtkaXY6Qyxtb2Q6Vi5tb2R9KTp0aGlzLm5lZ2F0aXZlJmcubmVnYXRpdmU/KFY9dGhpcy5uZWcoKS5kaXZtb2Qo'@; put 'Zy5uZWcoKSx5KSwiZGl2IiE9PXkmJihUPVYubW9kLm5lZygpLHgmJjAhPT1ULm5lZ2F0aXZlJiZULmlzdWIoZykpLHtkaXY6Vi5kaXYsbW9kOlR9KTpnLmxlbmd0aD50aGlzLmxlbmd0aHx8dGhpcy5jbXAoZyk8MD97ZGl2Om5ldyB3KDApLG1vZDp0aGlzfToxPT09Zy5sZW5ndGg/ImRpdiI9'@; put 'PT15P3tkaXY6dGhpcy5kaXZuKGcud29yZHNbMF0pLG1vZDpudWxsfToibW9kIj09PXk/e2RpdjpudWxsLG1vZDpuZXcgdyh0aGlzLm1vZG4oZy53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bihnLndvcmRzWzBdKSxtb2Q6bmV3IHcodGhpcy5tb2RuKGcud29yZHNbMF0pKX06dGhpcy5fd29y'@; put 'ZERpdihnLHkpO3ZhciBDLFQsVn0sdy5wcm90b3R5cGUuZGl2PWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmRpdm1vZChnLCJkaXYiLCExKS5kaXZ9LHcucHJvdG90eXBlLm1vZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5kaXZtb2QoZywibW9kIiwhMSkubW9kfSx3LnByb3RvdHlwZS51bW9k'@; put 'PWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmRpdm1vZChnLCJtb2QiLCEwKS5tb2R9LHcucHJvdG90eXBlLmRpdlJvdW5kPWZ1bmN0aW9uKGcpe3ZhciB5PXRoaXMuZGl2bW9kKGcpO2lmKHkubW9kLmlzWmVybygpKXJldHVybiB5LmRpdjt2YXIgeD0wIT09eS5kaXYubmVnYXRpdmU/eS5tb2Qu'@; put 'aXN1YihnKTp5Lm1vZCxDPWcudXNocm4oMSksVD1nLmFuZGxuKDEpLFY9eC5jbXAoQyk7cmV0dXJuIFY8MHx8MT09PVQmJjA9PT1WP3kuZGl2OjAhPT15LmRpdi5uZWdhdGl2ZT95LmRpdi5pc3VibigxKTp5LmRpdi5pYWRkbigxKX0sdy5wcm90b3R5cGUubW9kbj1mdW5jdGlvbihnKXtwKGc8'@; put 'PTY3MTA4ODYzKTtmb3IodmFyIHk9KDE8PDI2KSVnLHg9MCxDPXRoaXMubGVuZ3RoLTE7Qz49MDtDLS0peD0oeSp4KygwfHRoaXMud29yZHNbQ10pKSVnO3JldHVybiB4fSx3LnByb3RvdHlwZS5pZGl2bj1mdW5jdGlvbihnKXtwKGc8PTY3MTA4ODYzKTtmb3IodmFyIHk9MCx4PXRoaXMubGVu'@; put 'Z3RoLTE7eD49MDt4LS0pe3ZhciBDPSgwfHRoaXMud29yZHNbeF0pKzY3MTA4ODY0Knk7dGhpcy53b3Jkc1t4XT1DL2d8MCx5PUMlZ31yZXR1cm4gdGhpcy5zdHJpcCgpfSx3LnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNsb25lKCkuaWRpdm4oZyl9LHcucHJvdG90'@; put 'eXBlLmVnY2Q9ZnVuY3Rpb24oZyl7cCgwPT09Zy5uZWdhdGl2ZSkscCghZy5pc1plcm8oKSk7dmFyIHk9dGhpcyx4PWcuY2xvbmUoKTt5PTAhPT15Lm5lZ2F0aXZlP3kudW1vZChnKTp5LmNsb25lKCk7Zm9yKHZhciBDPW5ldyB3KDEpLFQ9bmV3IHcoMCksVj1uZXcgdygwKSxVPW5ldyB3KDEp'@; put 'LEU9MDt5LmlzRXZlbigpJiZ4LmlzRXZlbigpOyl5Lml1c2hybigxKSx4Lml1c2hybigxKSwrK0U7Zm9yKHZhciBtPXguY2xvbmUoKSxBPXkuY2xvbmUoKTsheS5pc1plcm8oKTspe2Zvcih2YXIgYWU9MCxuZT0xOyEoeS53b3Jkc1swXSZuZSkmJmFlPDI2OysrYWUsbmU8PD0xKTtpZihhZT4w'@; put 'KWZvcih5Lml1c2hybihhZSk7YWUtLSA+MDspKEMuaXNPZGQoKXx8VC5pc09kZCgpKSYmKEMuaWFkZChtKSxULmlzdWIoQSkpLEMuaXVzaHJuKDEpLFQuaXVzaHJuKDEpO2Zvcih2YXIgbGU9MCx3ZT0xOyEoeC53b3Jkc1swXSZ3ZSkmJmxlPDI2OysrbGUsd2U8PD0xKTtpZihsZT4wKWZvcih4'@; put 'Lml1c2hybihsZSk7bGUtLSA+MDspKFYuaXNPZGQoKXx8VS5pc09kZCgpKSYmKFYuaWFkZChtKSxVLmlzdWIoQSkpLFYuaXVzaHJuKDEpLFUuaXVzaHJuKDEpO3kuY21wKHgpPj0wPyh5LmlzdWIoeCksQy5pc3ViKFYpLFQuaXN1YihVKSk6KHguaXN1Yih5KSxWLmlzdWIoQyksVS5pc3ViKFQp'@; put 'KX1yZXR1cm57YTpWLGI6VSxnY2Q6eC5pdXNobG4oRSl9fSx3LnByb3RvdHlwZS5faW52bXA9ZnVuY3Rpb24oZyl7cCgwPT09Zy5uZWdhdGl2ZSkscCghZy5pc1plcm8oKSk7dmFyIGFlLHk9dGhpcyx4PWcuY2xvbmUoKTt5PTAhPT15Lm5lZ2F0aXZlP3kudW1vZChnKTp5LmNsb25lKCk7Zm9y'@; put 'KHZhciBDPW5ldyB3KDEpLFQ9bmV3IHcoMCksVj14LmNsb25lKCk7eS5jbXBuKDEpPjAmJnguY21wbigxKT4wOyl7Zm9yKHZhciBVPTAsRT0xOyEoeS53b3Jkc1swXSZFKSYmVTwyNjsrK1UsRTw8PTEpO2lmKFU+MClmb3IoeS5pdXNocm4oVSk7VS0tID4wOylDLmlzT2RkKCkmJkMuaWFkZChW'@; put 'KSxDLml1c2hybigxKTtmb3IodmFyIG09MCxBPTE7ISh4LndvcmRzWzBdJkEpJiZtPDI2OysrbSxBPDw9MSk7aWYobT4wKWZvcih4Lml1c2hybihtKTttLS0gPjA7KVQuaXNPZGQoKSYmVC5pYWRkKFYpLFQuaXVzaHJuKDEpO3kuY21wKHgpPj0wPyh5LmlzdWIoeCksQy5pc3ViKFQpKTooeC5p'@; put 'c3ViKHkpLFQuaXN1YihDKSl9cmV0dXJuKGFlPTA9PT15LmNtcG4oMSk/QzpUKS5jbXBuKDApPDAmJmFlLmlhZGQoZyksYWV9LHcucHJvdG90eXBlLmdjZD1mdW5jdGlvbihnKXtpZih0aGlzLmlzWmVybygpKXJldHVybiBnLmFicygpO2lmKGcuaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7'@; put 'dmFyIHk9dGhpcy5jbG9uZSgpLHg9Zy5jbG9uZSgpO3kubmVnYXRpdmU9MCx4Lm5lZ2F0aXZlPTA7Zm9yKHZhciBDPTA7eS5pc0V2ZW4oKSYmeC5pc0V2ZW4oKTtDKyspeS5pdXNocm4oMSkseC5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO3kuaXNFdmVuKCk7KXkuaXVzaHJuKDEpO2Zvcig7eC5p'@; put 'c0V2ZW4oKTspeC5pdXNocm4oMSk7dmFyIFQ9eS5jbXAoeCk7aWYoVDwwKXt2YXIgVj15O3k9eCx4PVZ9ZWxzZSBpZigwPT09VHx8MD09PXguY21wbigxKSlicmVhazt5LmlzdWIoeCl9cmV0dXJuIHguaXVzaGxuKEMpfSx3LnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlz'@; put 'LmVnY2QoZykuYS51bW9kKGcpfSx3LnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4hKDEmdGhpcy53b3Jkc1swXSl9LHcucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uKCl7cmV0dXJuISgxJn50aGlzLndvcmRzWzBdKX0sdy5wcm90b3R5cGUuYW5kbG49ZnVuY3Rpb24oZyl7cmV0'@; put 'dXJuIHRoaXMud29yZHNbMF0mZ30sdy5wcm90b3R5cGUuYmluY249ZnVuY3Rpb24oZyl7cCgibnVtYmVyIj09dHlwZW9mIGcpO3ZhciB5PWclMjYseD0oZy15KS8yNixDPTE8PHk7aWYodGhpcy5sZW5ndGg8PXgpcmV0dXJuIHRoaXMuX2V4cGFuZCh4KzEpLHRoaXMud29yZHNbeF18PUMsdGhp'@; put 'cztmb3IodmFyIFQ9QyxWPXg7MCE9PVQmJlY8dGhpcy5sZW5ndGg7VisrKXt2YXIgVT0wfHRoaXMud29yZHNbVl07VD0oVSs9VCk+Pj4yNix0aGlzLndvcmRzW1ZdPVUmPTY3MTA4ODYzfXJldHVybiAwIT09VCYmKHRoaXMud29yZHNbVl09VCx0aGlzLmxlbmd0aCsrKSx0aGlzfSx3LnByb3Rv'@; put 'dHlwZS5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXX0sdy5wcm90b3R5cGUuY21wbj1mdW5jdGlvbihnKXt2YXIgeCx5PWc8MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIXkpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJnkp'@; put 'cmV0dXJuIDE7aWYodGhpcy5zdHJpcCgpLHRoaXMubGVuZ3RoPjEpeD0xO2Vsc2V7eSYmKGc9LWcpLHAoZzw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIEM9MHx0aGlzLndvcmRzWzBdO3g9Qz09PWc/MDpDPGc/LTE6MX1yZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwteDp4'@; put 'fSx3LnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24oZyl7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1nLm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Zy5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgeT10aGlzLnVjbXAoZyk7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZl'@; put 'PzB8LXk6eX0sdy5wcm90b3R5cGUudWNtcD1mdW5jdGlvbihnKXtpZih0aGlzLmxlbmd0aD5nLmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDxnLmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIHk9MCx4PXRoaXMubGVuZ3RoLTE7eD49MDt4LS0pe3ZhciBDPTB8dGhpcy53b3Jkc1t4XSxU'@; put 'PTB8Zy53b3Jkc1t4XTtpZihDIT09VCl7QzxUP3k9LTE6Qz5UJiYoeT0xKTticmVha319cmV0dXJuIHl9LHcucHJvdG90eXBlLmd0bj1mdW5jdGlvbihnKXtyZXR1cm4gMT09PXRoaXMuY21wbihnKX0sdy5wcm90b3R5cGUuZ3Q9ZnVuY3Rpb24oZyl7cmV0dXJuIDE9PT10aGlzLmNtcChnKX0s'@; put 'dy5wcm90b3R5cGUuZ3Rlbj1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5jbXBuKGcpPj0wfSx3LnByb3RvdHlwZS5ndGU9ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY21wKGcpPj0wfSx3LnByb3RvdHlwZS5sdG49ZnVuY3Rpb24oZyl7cmV0dXJuLTE9PT10aGlzLmNtcG4oZyl9LHcucHJvdG90'@; put 'eXBlLmx0PWZ1bmN0aW9uKGcpe3JldHVybi0xPT09dGhpcy5jbXAoZyl9LHcucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuY21wbihnKTw9MH0sdy5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmNtcChnKTw9MH0sdy5wcm90b3R5cGUuZXFuPWZ1'@; put 'bmN0aW9uKGcpe3JldHVybiAwPT09dGhpcy5jbXBuKGcpfSx3LnByb3RvdHlwZS5lcT1mdW5jdGlvbihnKXtyZXR1cm4gMD09PXRoaXMuY21wKGcpfSx3LnJlZD1mdW5jdGlvbihnKXtyZXR1cm4gbmV3IFNlKGcpfSx3LnByb3RvdHlwZS50b1JlZD1mdW5jdGlvbihnKXtyZXR1cm4gcCghdGhp'@; put 'cy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSxwKDA9PT10aGlzLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLGcuY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZChnKX0sdy5wcm90b3R5cGUuZnJvbVJlZD1mdW5jdGlvbigpe3Jl'@; put 'dHVybiBwKHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LHcucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbihnKXtyZXR1cm4gdGhpcy5yZWQ9Zyx0aGlzfSx3LnByb3Rv'@; put 'dHlwZS5mb3JjZVJlZD1mdW5jdGlvbihnKXtyZXR1cm4gcCghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZChnKX0sdy5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKGcpe3JldHVybiBwKHRoaXMucmVkLCJyZWRBZGQgd29y'@; put 'a3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsZyl9LHcucHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24oZyl7cmV0dXJuIHAodGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaWFkZCh0aGlzLGcpfSx3LnBy'@; put 'b3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24oZyl7cmV0dXJuIHAodGhpcy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyxnKX0sdy5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkSVN1YiB3'@; put 'b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsZyl9LHcucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbihnKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnNobCh0aGlzLGcpfSx3LnBy'@; put 'b3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24oZyl7cmV0dXJuIHAodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLGcpLHRoaXMucmVkLm11bCh0aGlzLGcpfSx3LnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uKGcpe3Jl'@; put 'dHVybiBwKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxnKSx0aGlzLnJlZC5pbXVsKHRoaXMsZyl9LHcucHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMucmVkLCJyZWRTcXIgd29ya3Mg'@; put 'b25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FyKHRoaXMpfSx3LnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQu'@; put 'X3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaXNxcih0aGlzKX0sdy5wcm90b3R5cGUucmVkU3FydD1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcnQodGhp'@; put 'cyl9LHcucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24oKXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSx3LnByb3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24o'@; put 'KXtyZXR1cm4gcCh0aGlzLnJlZCwicmVkTmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0sdy5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKGcpe3JldHVybiBwKHRoaXMucmVkJiYhZy5yZWQsInJlZFBv'@; put 'dyhub3JtYWxOdW0pIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQucG93KHRoaXMsZyl9O3ZhciB0ZT17azI1NjpudWxsLHAyMjQ6bnVsbCxwMTkyOm51bGwscDI1NTE5Om51bGx9O2Z1bmN0aW9uIGllKHosZyl7dGhpcy5uYW1lPXosdGhpcy5wPW5ldyB3KGcsMTYpLHRoaXMu'@; put 'bj10aGlzLnAuYml0TGVuZ3RoKCksdGhpcy5rPW5ldyB3KDEpLml1c2hsbih0aGlzLm4pLmlzdWIodGhpcy5wKSx0aGlzLnRtcD10aGlzLl90bXAoKX1mdW5jdGlvbiBzZSgpe2llLmNhbGwodGhpcywiazI1NiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZm'@; put 'IGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmYzJmIil9ZnVuY3Rpb24gZ2UoKXtpZS5jYWxsKHRoaXMsInAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ1bmN0aW9uIF9lKCl7aWUuY2FsbCh0aGlzLCJwMTkyIiwi'@; put 'ZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiBUZSgpe2llLmNhbGwodGhpcywiMjU1MTkiLCI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkIil9ZnVu'@; put 'Y3Rpb24gU2Uoeil7aWYoInN0cmluZyI9PXR5cGVvZiB6KXt2YXIgZz13Ll9wcmltZSh6KTt0aGlzLm09Zy5wLHRoaXMucHJpbWU9Z31lbHNlIHAoei5ndG4oMSksIm1vZHVsdXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMSIpLHRoaXMubT16LHRoaXMucHJpbWU9bnVsbH1mdW5jdGlvbiB6ZSh6'@; put 'KXtTZS5jYWxsKHRoaXMseiksdGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9MCYmKHRoaXMuc2hpZnQrPTI2LXRoaXMuc2hpZnQlMjYpLHRoaXMucj1uZXcgdygxKS5pdXNobG4odGhpcy5zaGlmdCksdGhpcy5yMj10aGlzLmltb2QodGhpcy5yLnNxcigpKSx0'@; put 'aGlzLnJpbnY9dGhpcy5yLl9pbnZtcCh0aGlzLm0pLHRoaXMubWludj10aGlzLnJpbnYubXVsKHRoaXMucikuaXN1Ym4oMSkuZGl2KHRoaXMubSksdGhpcy5taW52PXRoaXMubWludi51bW9kKHRoaXMuciksdGhpcy5taW52PXRoaXMuci5zdWIodGhpcy5taW52KX1pZS5wcm90b3R5cGUuX3Rt'@; put 'cD1mdW5jdGlvbigpe3ZhciBnPW5ldyB3KG51bGwpO3JldHVybiBnLndvcmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSksZ30saWUucHJvdG90eXBlLmlyZWR1Y2U9ZnVuY3Rpb24oZyl7dmFyIHgseT1nO2Rve3RoaXMuc3BsaXQoeSx0aGlzLnRtcCkseD0oeT0oeT10aGlzLmlt'@; put 'dWxLKHkpKS5pYWRkKHRoaXMudG1wKSkuYml0TGVuZ3RoKCl9d2hpbGUoeD50aGlzLm4pO3ZhciBDPXg8dGhpcy5uPy0xOnkudWNtcCh0aGlzLnApO3JldHVybiAwPT09Qz8oeS53b3Jkc1swXT0wLHkubGVuZ3RoPTEpOkM+MD95LmlzdWIodGhpcy5wKTp2b2lkIDAhPT15LnN0cmlwP3kuc3Ry'@; put 'aXAoKTp5Ll9zdHJpcCgpLHl9LGllLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihnLHkpe2cuaXVzaHJuKHRoaXMubiwwLHkpfSxpZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oZyl7cmV0dXJuIGcuaW11bCh0aGlzLmspfSxOKHNlLGllKSxzZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24o'@; put 'Zyx5KXtmb3IodmFyIHg9NDE5NDMwMyxDPU1hdGgubWluKGcubGVuZ3RoLDkpLFQ9MDtUPEM7VCsrKXkud29yZHNbVF09Zy53b3Jkc1tUXTtpZih5Lmxlbmd0aD1DLGcubGVuZ3RoPD05KXJldHVybiBnLndvcmRzWzBdPTAsdm9pZChnLmxlbmd0aD0xKTt2YXIgVj1nLndvcmRzWzldO2Zvcih5'@; put 'LndvcmRzW3kubGVuZ3RoKytdPVYmeCxUPTEwO1Q8Zy5sZW5ndGg7VCsrKXt2YXIgVT0wfGcud29yZHNbVF07Zy53b3Jkc1tULTEwXT0oVSZ4KTw8NHxWPj4+MjIsVj1VfWcud29yZHNbVC0xMF09Vj4+Pj0yMixnLmxlbmd0aC09MD09PVYmJmcubGVuZ3RoPjEwPzEwOjl9LHNlLnByb3RvdHlw'@; put 'ZS5pbXVsSz1mdW5jdGlvbihnKXtnLndvcmRzW2cubGVuZ3RoXT0wLGcud29yZHNbZy5sZW5ndGgrMV09MCxnLmxlbmd0aCs9Mjtmb3IodmFyIHk9MCx4PTA7eDxnLmxlbmd0aDt4Kyspe3ZhciBDPTB8Zy53b3Jkc1t4XTtnLndvcmRzW3hdPTY3MTA4ODYzJih5Kz05NzcqQykseT02NCpDKyh5'@; put 'LzY3MTA4ODY0fDApfXJldHVybiAwPT09Zy53b3Jkc1tnLmxlbmd0aC0xXSYmKGcubGVuZ3RoLS0sMD09PWcud29yZHNbZy5sZW5ndGgtMV0mJmcubGVuZ3RoLS0pLGd9LE4oZ2UsaWUpLE4oX2UsaWUpLE4oVGUsaWUpLFRlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihnKXtmb3IodmFyIHk9'@; put 'MCx4PTA7eDxnLmxlbmd0aDt4Kyspe3ZhciBDPTE5KigwfGcud29yZHNbeF0pK3ksVD02NzEwODg2MyZDO0M+Pj49MjYsZy53b3Jkc1t4XT1ULHk9Q31yZXR1cm4gMCE9PXkmJihnLndvcmRzW2cubGVuZ3RoKytdPXkpLGd9LHcuX3ByaW1lPWZ1bmN0aW9uKGcpe2lmKHRlW2ddKXJldHVybiB0'@; put 'ZVtnXTt2YXIgeTtpZigiazI1NiI9PT1nKXk9bmV3IHNlO2Vsc2UgaWYoInAyMjQiPT09Zyl5PW5ldyBnZTtlbHNlIGlmKCJwMTkyIj09PWcpeT1uZXcgX2U7ZWxzZXtpZigicDI1NTE5IiE9PWcpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHByaW1lICIrZyk7eT1uZXcgVGV9cmV0dXJuIHRl'@; put 'W2ddPXkseX0sU2UucHJvdG90eXBlLl92ZXJpZnkxPWZ1bmN0aW9uKGcpe3AoMD09PWcubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIikscChnLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxTZS5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rp'@; put 'b24oZyx5KXtwKCEoZy5uZWdhdGl2ZXx5Lm5lZ2F0aXZlKSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxwKGcucmVkJiZnLnJlZD09PXkucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LFNlLnByb3RvdHlwZS5pbW9kPWZ1bmN0aW9uKGcpe3JldHVybiB0'@; put 'aGlzLnByaW1lP3RoaXMucHJpbWUuaXJlZHVjZShnKS5fZm9yY2VSZWQodGhpcyk6Zy51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpfSxTZS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKGcpe3JldHVybiBnLmlzWmVybygpP2cuY2xvbmUoKTp0aGlzLm0uc3ViKGcpLl9mb3JjZVJlZCh0aGlz'@; put 'KX0sU2UucHJvdG90eXBlLmFkZD1mdW5jdGlvbihnLHkpe3RoaXMuX3ZlcmlmeTIoZyx5KTt2YXIgeD1nLmFkZCh5KTtyZXR1cm4geC5jbXAodGhpcy5tKT49MCYmeC5pc3ViKHRoaXMubSkseC5fZm9yY2VSZWQodGhpcyl9LFNlLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKGcseSl7dGhpcy5f'@; put 'dmVyaWZ5MihnLHkpO3ZhciB4PWcuaWFkZCh5KTtyZXR1cm4geC5jbXAodGhpcy5tKT49MCYmeC5pc3ViKHRoaXMubSkseH0sU2UucHJvdG90eXBlLnN1Yj1mdW5jdGlvbihnLHkpe3RoaXMuX3ZlcmlmeTIoZyx5KTt2YXIgeD1nLnN1Yih5KTtyZXR1cm4geC5jbXBuKDApPDAmJnguaWFkZCh0'@; put 'aGlzLm0pLHguX2ZvcmNlUmVkKHRoaXMpfSxTZS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihnLHkpe3RoaXMuX3ZlcmlmeTIoZyx5KTt2YXIgeD1nLmlzdWIoeSk7cmV0dXJuIHguY21wbigwKTwwJiZ4LmlhZGQodGhpcy5tKSx4fSxTZS5wcm90b3R5cGUuc2hsPWZ1bmN0aW9uKGcseSl7cmV0'@; put 'dXJuIHRoaXMuX3ZlcmlmeTEoZyksdGhpcy5pbW9kKGcudXNobG4oeSkpfSxTZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihnLHkpe3JldHVybiB0aGlzLl92ZXJpZnkyKGcseSksdGhpcy5pbW9kKGcuaW11bCh5KSl9LFNlLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oZyx5KXtyZXR1cm4gdGhp'@; put 'cy5fdmVyaWZ5MihnLHkpLHRoaXMuaW1vZChnLm11bCh5KSl9LFNlLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLmltdWwoZyxnLmNsb25lKCkpfSxTZS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKGcpe3JldHVybiB0aGlzLm11bChnLGcpfSxTZS5wcm90b3R5cGUuc3Fy'@; put 'dD1mdW5jdGlvbihnKXtpZihnLmlzWmVybygpKXJldHVybiBnLmNsb25lKCk7dmFyIHk9dGhpcy5tLmFuZGxuKDMpO2lmKHAoeSUyPT0xKSwzPT09eSl7dmFyIHg9dGhpcy5tLmFkZChuZXcgdygxKSkuaXVzaHJuKDIpO3JldHVybiB0aGlzLnBvdyhnLHgpfWZvcih2YXIgQz10aGlzLm0uc3Vi'@; put 'bigxKSxUPTA7IUMuaXNaZXJvKCkmJjA9PT1DLmFuZGxuKDEpOylUKyssQy5pdXNocm4oMSk7cCghQy5pc1plcm8oKSk7dmFyIFY9bmV3IHcoMSkudG9SZWQodGhpcyksVT1WLnJlZE5lZygpLEU9dGhpcy5tLnN1Ym4oMSkuaXVzaHJuKDEpLG09dGhpcy5tLmJpdExlbmd0aCgpO2ZvcihtPW5l'@; put 'dyB3KDIqbSptKS50b1JlZCh0aGlzKTswIT09dGhpcy5wb3cobSxFKS5jbXAoVSk7KW0ucmVkSUFkZChVKTtmb3IodmFyIEE9dGhpcy5wb3cobSxDKSxhZT10aGlzLnBvdyhnLEMuYWRkbigxKS5pdXNocm4oMSkpLG5lPXRoaXMucG93KGcsQyksbGU9VDswIT09bmUuY21wKFYpOyl7Zm9yKHZh'@; put 'ciB3ZT1uZSxaZT0wOzAhPT13ZS5jbXAoVik7WmUrKyl3ZT13ZS5yZWRTcXIoKTtwKFplPGxlKTt2YXIgUWU9dGhpcy5wb3coQSxuZXcgdygxKS5pdXNobG4obGUtWmUtMSkpO2FlPWFlLnJlZE11bChRZSksQT1RZS5yZWRTcXIoKSxuZT1uZS5yZWRNdWwoQSksbGU9WmV9cmV0dXJuIGFlfSxT'@; put 'ZS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihnKXt2YXIgeT1nLl9pbnZtcCh0aGlzLm0pO3JldHVybiAwIT09eS5uZWdhdGl2ZT8oeS5uZWdhdGl2ZT0wLHRoaXMuaW1vZCh5KS5yZWROZWcoKSk6dGhpcy5pbW9kKHkpfSxTZS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKGcseSl7aWYoeS5pc1pl'@; put 'cm8oKSlyZXR1cm4gbmV3IHcoMSkudG9SZWQodGhpcyk7aWYoMD09PXkuY21wbigxKSlyZXR1cm4gZy5jbG9uZSgpO3ZhciBDPW5ldyBBcnJheSgxNik7Q1swXT1uZXcgdygxKS50b1JlZCh0aGlzKSxDWzFdPWc7Zm9yKHZhciBUPTI7VDxDLmxlbmd0aDtUKyspQ1tUXT10aGlzLm11bChDW1Qt'@; put 'MV0sZyk7dmFyIFY9Q1swXSxVPTAsRT0wLG09eS5iaXRMZW5ndGgoKSUyNjtmb3IoMD09PW0mJihtPTI2KSxUPXkubGVuZ3RoLTE7VD49MDtULS0pe2Zvcih2YXIgQT15LndvcmRzW1RdLGFlPW0tMTthZT49MDthZS0tKXt2YXIgbmU9QT4+YWUmMTtWIT09Q1swXSYmKFY9dGhpcy5zcXIoVikp'@; put 'LDAhPT1uZXx8MCE9PVU/KFU8PD0xLFV8PW5lLCg0PT0rK0V8fDA9PT1UJiYwPT09YWUpJiYoVj10aGlzLm11bChWLENbVV0pLEU9MCxVPTApKTpFPTB9bT0yNn1yZXR1cm4gVn0sU2UucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihnKXt2YXIgeT1nLnVtb2QodGhpcy5tKTtyZXR1cm4g'@; put 'eT09PWc/eS5jbG9uZSgpOnl9LFNlLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbihnKXt2YXIgeT1nLmNsb25lKCk7cmV0dXJuIHkucmVkPW51bGwseX0sdy5tb250PWZ1bmN0aW9uKGcpe3JldHVybiBuZXcgemUoZyl9LE4oemUsU2UpLHplLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVu'@; put 'Y3Rpb24oZyl7cmV0dXJuIHRoaXMuaW1vZChnLnVzaGxuKHRoaXMuc2hpZnQpKX0semUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKGcpe3ZhciB5PXRoaXMuaW1vZChnLm11bCh0aGlzLnJpbnYpKTtyZXR1cm4geS5yZWQ9bnVsbCx5fSx6ZS5wcm90b3R5cGUuaW11bD1mdW5jdGlv'@; put 'bihnLHkpe2lmKGcuaXNaZXJvKCl8fHkuaXNaZXJvKCkpcmV0dXJuIGcud29yZHNbMF09MCxnLmxlbmd0aD0xLGc7dmFyIHg9Zy5pbXVsKHkpLEM9eC5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksVD14LmlzdWIoQykuaXVz'@; put 'aHJuKHRoaXMuc2hpZnQpLFY9VDtyZXR1cm4gVC5jbXAodGhpcy5tKT49MD9WPVQuaXN1Yih0aGlzLm0pOlQuY21wbigwKTwwJiYoVj1ULmlhZGQodGhpcy5tKSksVi5fZm9yY2VSZWQodGhpcyl9LHplLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oZyx5KXtpZihnLmlzWmVybygpfHx5LmlzWmVy'@; put 'bygpKXJldHVybiBuZXcgdygwKS5fZm9yY2VSZWQodGhpcyk7dmFyIHg9Zy5tdWwoeSksQz14Lm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxUPXguaXN1YihDKS5pdXNocm4odGhpcy5zaGlmdCksVj1UO3JldHVybiBULmNt'@; put 'cCh0aGlzLm0pPj0wP1Y9VC5pc3ViKHRoaXMubSk6VC5jbXBuKDApPDAmJihWPVQuaWFkZCh0aGlzLm0pKSxWLl9mb3JjZVJlZCh0aGlzKX0semUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oZyl7cmV0dXJuIHRoaXMuaW1vZChnLl9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSkuX2ZvcmNl'@; put 'UmVkKHRoaXMpfX0oY2U9Yi5ubWQoY2UpLHRoaXMpfSw5ODYxMzooY2UsSixiKT0+e3ZhciBEPWIoNjU2NjcpLF89YigzMDcxNSkscD1iKDM3MTk2KSxOPWIoMTY1MDgpLHc9YigxNDEwNSksRj1iKDY3MjExKSxIPWIoMTA1NjgpLFI9YigyNzA1NCkuQnVmZmVyO2NlLmV4cG9ydHM9ZnVuY3Rp'@; put 'b24oQixXLFope3ZhciBYO1g9Qi5wYWRkaW5nP0IucGFkZGluZzpaPzE6NDt2YXIgdGUsUT1EKEIpLHE9US5tb2R1bHVzLmJ5dGVMZW5ndGgoKTtpZihXLmxlbmd0aD5xfHxuZXcgTihXKS5jbXAoUS5tb2R1bHVzKT49MCl0aHJvdyBuZXcgRXJyb3IoImRlY3J5cHRpb24gZXJyb3IiKTt0ZT1a'@; put 'P0gobmV3IE4oVyksUSk6dyhXLFEpO3ZhciBpZT1SLmFsbG9jKHEtdGUubGVuZ3RoKTtpZih0ZT1SLmNvbmNhdChbaWUsdGVdLHEpLDQ9PT1YKXJldHVybiBmdW5jdGlvbiBqKFksQil7dmFyIFc9WS5tb2R1bHVzLmJ5dGVMZW5ndGgoKSxaPUYoInNoYTEiKS51cGRhdGUoUi5hbGxvYygwKSku'@; put 'ZGlnZXN0KCksWD1aLmxlbmd0aDtpZigwIT09QlswXSl0aHJvdyBuZXcgRXJyb3IoImRlY3J5cHRpb24gZXJyb3IiKTt2YXIgUT1CLnNsaWNlKDEsWCsxKSxxPUIuc2xpY2UoWCsxKSx0ZT1wKFEsXyhxLFgpKSxpZT1wKHEsXyh0ZSxXLVgtMSkpO2lmKGZ1bmN0aW9uIEwoWSxCKXtZPVIuZnJv'@; put 'bShZKSxCPVIuZnJvbShCKTt2YXIgVz0wLFo9WS5sZW5ndGg7WS5sZW5ndGghPT1CLmxlbmd0aCYmKFcrKyxaPU1hdGgubWluKFkubGVuZ3RoLEIubGVuZ3RoKSk7Zm9yKHZhciBYPS0xOysrWDxaOylXKz1ZW1hdXkJbWF07cmV0dXJuIFd9KFosaWUuc2xpY2UoMCxYKSkpdGhyb3cgbmV3IEVy'@; put 'cm9yKCJkZWNyeXB0aW9uIGVycm9yIik7Zm9yKHZhciBzZT1YOzA9PT1pZVtzZV07KXNlKys7aWYoMSE9PWllW3NlKytdKXRocm93IG5ldyBFcnJvcigiZGVjcnlwdGlvbiBlcnJvciIpO3JldHVybiBpZS5zbGljZShzZSl9KFEsdGUpO2lmKDE9PT1YKXJldHVybiBmdW5jdGlvbiBQKFksQixX'@; put 'KXtmb3IodmFyIFo9Qi5zbGljZSgwLDIpLFg9MixRPTA7MCE9PUJbWCsrXTspaWYoWD49Qi5sZW5ndGgpe1ErKzticmVha312YXIgcT1CLnNsaWNlKDIsWC0xKTtpZigoIjAwMDIiIT09Wi50b1N0cmluZygiaGV4IikmJiFXfHwiMDAwMSIhPT1aLnRvU3RyaW5nKCJoZXgiKSYmVykmJlErKyxx'@; put 'Lmxlbmd0aDw4JiZRKyssUSl0aHJvdyBuZXcgRXJyb3IoImRlY3J5cHRpb24gZXJyb3IiKTtyZXR1cm4gQi5zbGljZShYKX0oMCx0ZSxaKTtpZigzPT09WClyZXR1cm4gdGU7dGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHBhZGRpbmciKX19LDg3MjY3OihjZSxKLGIpPT57dmFyIEQ9Yig2NTY2'@; put 'NyksXz1iKDMzNDIpLHA9Yig2NzIxMSksTj1iKDMwNzE1KSx3PWIoMzcxOTYpLEY9YigxNjUwOCksSD1iKDEwNTY4KSxSPWIoMTQxMDUpLGo9YigyNzA1NCkuQnVmZmVyO2NlLmV4cG9ydHM9ZnVuY3Rpb24oVyxaLFgpe3ZhciBRO1E9Vy5wYWRkaW5nP1cucGFkZGluZzpYPzE6NDt2YXIgdGUs'@; put 'cT1EKFcpO2lmKDQ9PT1RKXRlPWZ1bmN0aW9uIFAoQixXKXt2YXIgWj1CLm1vZHVsdXMuYnl0ZUxlbmd0aCgpLFg9Vy5sZW5ndGgsUT1wKCJzaGExIikudXBkYXRlKGouYWxsb2MoMCkpLmRpZ2VzdCgpLHE9US5sZW5ndGgsdGU9MipxO2lmKFg+Wi10ZS0yKXRocm93IG5ldyBFcnJvcigibWVz'@; put 'c2FnZSB0b28gbG9uZyIpO3ZhciBpZT1qLmFsbG9jKFotWC10ZS0yKSxzZT1aLXEtMSxnZT1fKHEpLF9lPXcoai5jb25jYXQoW1EsaWUsai5hbGxvYygxLDEpLFddLHNlKSxOKGdlLHNlKSksVGU9dyhnZSxOKF9lLHEpKTtyZXR1cm4gbmV3IEYoai5jb25jYXQoW2ouYWxsb2MoMSksVGUsX2Vd'@; put 'LFopKX0ocSxaKTtlbHNlIGlmKDE9PT1RKXRlPWZ1bmN0aW9uIEwoQixXLFope3ZhciBxLFg9Vy5sZW5ndGgsUT1CLm1vZHVsdXMuYnl0ZUxlbmd0aCgpO2lmKFg+US0xMSl0aHJvdyBuZXcgRXJyb3IoIm1lc3NhZ2UgdG9vIGxvbmciKTtyZXR1cm4gcT1aP2ouYWxsb2MoUS1YLTMsMjU1KTpm'@; put 'dW5jdGlvbiBZKEIpe2Zvcih2YXIgcSxXPWouYWxsb2NVbnNhZmUoQiksWj0wLFg9XygyKkIpLFE9MDtaPEI7KVE9PT1YLmxlbmd0aCYmKFg9XygyKkIpLFE9MCksKHE9WFtRKytdKSYmKFdbWisrXT1xKTtyZXR1cm4gV30oUS1YLTMpLG5ldyBGKGouY29uY2F0KFtqLmZyb20oWzAsWj8xOjJd'@; put 'KSxxLGouYWxsb2MoMSksV10sUSkpfShxLFosWCk7ZWxzZXtpZigzIT09USl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gcGFkZGluZyIpO2lmKCh0ZT1uZXcgRihaKSkuY21wKHEubW9kdWx1cyk+PTApdGhyb3cgbmV3IEVycm9yKCJkYXRhIHRvbyBsb25nIGZvciBtb2R1bHVzIil9cmV0dXJu'@; put 'IFg/Uih0ZSxxKTpIKHRlLHEpfX0sMTA1Njg6KGNlLEosYik9Pnt2YXIgRD1iKDE2NTA4KSxfPWIoMjcwNTQpLkJ1ZmZlcjtjZS5leHBvcnRzPWZ1bmN0aW9uIHAoTix3KXtyZXR1cm4gXy5mcm9tKE4udG9SZWQoRC5tb250KHcubW9kdWx1cykpLnJlZFBvdyhuZXcgRCh3LnB1YmxpY0V4cG9u'@; put 'ZW50KSkuZnJvbVJlZCgpLnRvQXJyYXkoKSl9fSwzNzE5NjpjZT0+e2NlLmV4cG9ydHM9ZnVuY3Rpb24oYixEKXtmb3IodmFyIF89Yi5sZW5ndGgscD0tMTsrK3A8XzspYltwXV49RFtwXTtyZXR1cm4gYn19LDMzNDI6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9NjU1MzYsTj1iKDI3'@; put 'MDU0KS5CdWZmZXIsdz1nbG9iYWwuY3J5cHRvfHxnbG9iYWwubXNDcnlwdG87Y2UuZXhwb3J0cz13JiZ3LmdldFJhbmRvbVZhbHVlcz9mdW5jdGlvbiBGKEgsUil7aWYoSD40Mjk0OTY3Mjk1KXRocm93IG5ldyBSYW5nZUVycm9yKCJyZXF1ZXN0ZWQgdG9vIG1hbnkgcmFuZG9tIGJ5dGVzIik7'@; put 'dmFyIGo9Ti5hbGxvY1Vuc2FmZShIKTtpZihIPjApaWYoSD5EKWZvcih2YXIgUD0wO1A8SDtQKz1EKXcuZ2V0UmFuZG9tVmFsdWVzKGouc2xpY2UoUCxQK0QpKTtlbHNlIHcuZ2V0UmFuZG9tVmFsdWVzKGopO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBSP3Byb2Nlc3MubmV4dFRpY2soZnVu'@; put 'Y3Rpb24oKXtSKG51bGwsail9KTpqfTpmdW5jdGlvbiBwKCl7dGhyb3cgbmV3IEVycm9yKCJTZWN1cmUgcmFuZG9tIG51bWJlciBnZW5lcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBicm93c2VyLlxuVXNlIENocm9tZSwgRmlyZWZveCBvciBJbnRlcm5ldCBFeHBsb3JlciAxMSIp'@; put 'fX0sOTY4MjooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBEKCl7dGhyb3cgbmV3IEVycm9yKCJzZWN1cmUgcmFuZG9tIG51bWJlciBnZW5lcmF0aW9uIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBicm93c2VyXG51c2UgY2hyb21lLCBGaXJlRm94IG9yIEludGVybmV0IEV4cGxvcmVy'@; put 'IDExIil9dmFyIF89YigyNzA1NCkscD1iKDMzNDIpLE49Xy5CdWZmZXIsdz1fLmtNYXhMZW5ndGgsRj1nbG9iYWwuY3J5cHRvfHxnbG9iYWwubXNDcnlwdG8sSD1NYXRoLnBvdygyLDMyKS0xO2Z1bmN0aW9uIFIoQixXKXtpZigibnVtYmVyIiE9dHlwZW9mIEJ8fEIhPUIpdGhyb3cgbmV3IFR5'@; put 'cGVFcnJvcigib2Zmc2V0IG11c3QgYmUgYSBudW1iZXIiKTtpZihCPkh8fEI8MCl0aHJvdyBuZXcgVHlwZUVycm9yKCJvZmZzZXQgbXVzdCBiZSBhIHVpbnQzMiIpO2lmKEI+d3x8Qj5XKXRocm93IG5ldyBSYW5nZUVycm9yKCJvZmZzZXQgb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gaihCLFcs'@; put 'Wil7aWYoIm51bWJlciIhPXR5cGVvZiBCfHxCIT1CKXRocm93IG5ldyBUeXBlRXJyb3IoInNpemUgbXVzdCBiZSBhIG51bWJlciIpO2lmKEI+SHx8QjwwKXRocm93IG5ldyBUeXBlRXJyb3IoInNpemUgbXVzdCBiZSBhIHVpbnQzMiIpO2lmKEIrVz5afHxCPncpdGhyb3cgbmV3IFJhbmdlRXJy'@; put 'b3IoImJ1ZmZlciB0b28gc21hbGwiKX1mdW5jdGlvbiBMKEIsVyxaLFgpe2lmKHByb2Nlc3MuYnJvd3Nlcil7dmFyIHE9bmV3IFVpbnQ4QXJyYXkoQi5idWZmZXIsVyxaKTtyZXR1cm4gRi5nZXRSYW5kb21WYWx1ZXMocSksWD92b2lkIHByb2Nlc3MubmV4dFRpY2soZnVuY3Rpb24oKXtYKG51'@; put 'bGwsQil9KTpCfWlmKCFYKXJldHVybiBwKFopLmNvcHkoQixXKSxCO3AoWixmdW5jdGlvbihpZSxzZSl7aWYoaWUpcmV0dXJuIFgoaWUpO3NlLmNvcHkoQixXKSxYKG51bGwsQil9KX1GJiZGLmdldFJhbmRvbVZhbHVlc3x8IXByb2Nlc3MuYnJvd3Nlcj8oSi5yYW5kb21GaWxsPWZ1bmN0aW9u'@; put 'IFAoQixXLFosWCl7aWYoIShOLmlzQnVmZmVyKEIpfHxCIGluc3RhbmNlb2YgZ2xvYmFsLlVpbnQ4QXJyYXkpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJidWYiIGFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIgb3IgVWludDhBcnJheScpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBXKVg9VyxXPTAs'@; put 'Wj1CLmxlbmd0aDtlbHNlIGlmKCJmdW5jdGlvbiI9PXR5cGVvZiBaKVg9WixaPUIubGVuZ3RoLVc7ZWxzZSBpZigiZnVuY3Rpb24iIT10eXBlb2YgWCl0aHJvdyBuZXcgVHlwZUVycm9yKCciY2IiIGFyZ3VtZW50IG11c3QgYmUgYSBmdW5jdGlvbicpO3JldHVybiBSKFcsQi5sZW5ndGgpLGoo'@; put 'WixXLEIubGVuZ3RoKSxMKEIsVyxaLFgpfSxKLnJhbmRvbUZpbGxTeW5jPWZ1bmN0aW9uIFkoQixXLFope2lmKHR5cGVvZiBXPiJ1IiYmKFc9MCksIShOLmlzQnVmZmVyKEIpfHxCIGluc3RhbmNlb2YgZ2xvYmFsLlVpbnQ4QXJyYXkpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJidWYiIGFyZ3Vt'@; put 'ZW50IG11c3QgYmUgYSBCdWZmZXIgb3IgVWludDhBcnJheScpO3JldHVybiBSKFcsQi5sZW5ndGgpLHZvaWQgMD09PVomJihaPUIubGVuZ3RoLVcpLGooWixXLEIubGVuZ3RoKSxMKEIsVyxaKX0pOihKLnJhbmRvbUZpbGw9RCxKLnJhbmRvbUZpbGxTeW5jPUQpfSw3NDA3NTooY2UsSixiKT0+'@; put 'eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDk2NTYpLF89T2JqZWN0LmtleXN8fGZ1bmN0aW9uKFkpe3ZhciBCPVtdO2Zvcih2YXIgVyBpbiBZKUIucHVzaChXKTtyZXR1cm4gQn07Y2UuZXhwb3J0cz1qO3ZhciBwPU9iamVjdC5jcmVhdGUoYigyNzYzNykpO3AuaW5oZXJpdHM9Yig3MTk5Myk7dmFy'@; put 'IE49YigxOTYwOSksdz1iKDQ3ODQ5KTtwLmluaGVyaXRzKGosTik7Zm9yKHZhciBGPV8ody5wcm90b3R5cGUpLEg9MDtIPEYubGVuZ3RoO0grKyl7dmFyIFI9RltIXTtqLnByb3RvdHlwZVtSXXx8KGoucHJvdG90eXBlW1JdPXcucHJvdG90eXBlW1JdKX1mdW5jdGlvbiBqKFkpe2lmKCEodGhp'@; put 'cyBpbnN0YW5jZW9mIGopKXJldHVybiBuZXcgaihZKTtOLmNhbGwodGhpcyxZKSx3LmNhbGwodGhpcyxZKSxZJiYhMT09PVkucmVhZGFibGUmJih0aGlzLnJlYWRhYmxlPSExKSxZJiYhMT09PVkud3JpdGFibGUmJih0aGlzLndyaXRhYmxlPSExKSx0aGlzLmFsbG93SGFsZk9wZW49ITAsWSYm'@; put 'ITE9PT1ZLmFsbG93SGFsZk9wZW4mJih0aGlzLmFsbG93SGFsZk9wZW49ITEpLHRoaXMub25jZSgiZW5kIixQKX1mdW5jdGlvbiBQKCl7dGhpcy5hbGxvd0hhbGZPcGVufHx0aGlzLl93cml0YWJsZVN0YXRlLmVuZGVkfHxELm5leHRUaWNrKEwsdGhpcyl9ZnVuY3Rpb24gTChZKXtZLmVuZCgp'@; put 'fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShqLnByb3RvdHlwZSwid3JpdGFibGVIaWdoV2F0ZXJNYXJrIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5oaWdoV2F0ZXJNYXJrfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShqLnByb3RvdHlw'@; put 'ZSwiZGVzdHJveWVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX3JlYWRhYmxlU3RhdGUmJnZvaWQgMCE9PXRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkJiZ0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZH0sc2V0OmZ1'@; put 'bmN0aW9uKFkpe3ZvaWQgMD09PXRoaXMuX3JlYWRhYmxlU3RhdGV8fHZvaWQgMD09PXRoaXMuX3dyaXRhYmxlU3RhdGV8fCh0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD1ZLHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkPVkpfX0pLGoucHJvdG90eXBlLl9kZXN0cm95PWZ1bmN0'@; put 'aW9uKFksQil7dGhpcy5wdXNoKG51bGwpLHRoaXMuZW5kKCksRC5uZXh0VGljayhCLFkpfX0sMTg4MjM6KGNlLEosYik9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz1wO3ZhciBEPWIoMjkwOSksXz1PYmplY3QuY3JlYXRlKGIoMjc2MzcpKTtmdW5jdGlvbiBwKE4pe2lmKCEodGhpcyBpbnN0'@; put 'YW5jZW9mIHApKXJldHVybiBuZXcgcChOKTtELmNhbGwodGhpcyxOKX1fLmluaGVyaXRzPWIoNzE5OTMpLF8uaW5oZXJpdHMocCxEKSxwLnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1bmN0aW9uKE4sdyxGKXtGKG51bGwsTil9fSwxOTYwOTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1i'@; put 'KDk2NTYpO2NlLmV4cG9ydHM9aWU7dmFyIHAsXz1iKDIwMDUzKTtpZS5SZWFkYWJsZVN0YXRlPXRlLGIoNDQzNTYpO3ZhciB3PWZ1bmN0aW9uKHhlLHZlKXtyZXR1cm4geGUubGlzdGVuZXJzKHZlKS5sZW5ndGh9LEY9YigxODM0MiksSD1iKDI2NTUpLkJ1ZmZlcixSPSh0eXBlb2YgZ2xvYmFs'@; put 'PCJ1Ij9nbG9iYWw6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93OnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnt9KS5VaW50OEFycmF5fHxmdW5jdGlvbigpe30sTD1PYmplY3QuY3JlYXRlKGIoMjc2MzcpKTtMLmluaGVyaXRzPWIoNzE5OTMpO3ZhciBZPWIoNzk4MzgpLEI9dm9pZCAwO0I9WSYmWS5k'@; put 'ZWJ1Z2xvZz9ZLmRlYnVnbG9nKCJzdHJlYW0iKTpmdW5jdGlvbigpe307dmFyIFgsVz1iKDI3ODA5KSxaPWIoMjE1MDkpO0wuaW5oZXJpdHMoaWUsRik7dmFyIFE9WyJlcnJvciIsImNsb3NlIiwiZGVzdHJveSIsInBhdXNlIiwicmVzdW1lIl07ZnVuY3Rpb24gdGUoeGUsdmUpe3ZhciBxZT12'@; put 'ZSBpbnN0YW5jZW9mKHA9cHx8Yig3NDA3NSkpO3RoaXMub2JqZWN0TW9kZT0hISh4ZT14ZXx8e30pLm9iamVjdE1vZGUscWUmJih0aGlzLm9iamVjdE1vZGU9dGhpcy5vYmplY3RNb2RlfHwhIXhlLnJlYWRhYmxlT2JqZWN0TW9kZSk7dmFyIGplPXhlLmhpZ2hXYXRlck1hcmssQWU9eGUucmVh'@; put 'ZGFibGVIaWdoV2F0ZXJNYXJrO3RoaXMuaGlnaFdhdGVyTWFyaz1qZXx8MD09PWplP2plOnFlJiYoQWV8fDA9PT1BZSk/QWU6dGhpcy5vYmplY3RNb2RlPzE2OjE2Mzg0LHRoaXMuaGlnaFdhdGVyTWFyaz1NYXRoLmZsb29yKHRoaXMuaGlnaFdhdGVyTWFyayksdGhpcy5idWZmZXI9bmV3IFcs'@; put 'dGhpcy5sZW5ndGg9MCx0aGlzLnBpcGVzPW51bGwsdGhpcy5waXBlc0NvdW50PTAsdGhpcy5mbG93aW5nPW51bGwsdGhpcy5lbmRlZD0hMSx0aGlzLmVuZEVtaXR0ZWQ9ITEsdGhpcy5yZWFkaW5nPSExLHRoaXMuc3luYz0hMCx0aGlzLm5lZWRSZWFkYWJsZT0hMSx0aGlzLmVtaXR0ZWRSZWFk'@; put 'YWJsZT0hMSx0aGlzLnJlYWRhYmxlTGlzdGVuaW5nPSExLHRoaXMucmVzdW1lU2NoZWR1bGVkPSExLHRoaXMuZGVzdHJveWVkPSExLHRoaXMuZGVmYXVsdEVuY29kaW5nPXhlLmRlZmF1bHRFbmNvZGluZ3x8InV0ZjgiLHRoaXMuYXdhaXREcmFpbj0wLHRoaXMucmVhZGluZ01vcmU9ITEsdGhp'@; put 'cy5kZWNvZGVyPW51bGwsdGhpcy5lbmNvZGluZz1udWxsLHhlLmVuY29kaW5nJiYoWHx8KFg9Yig3ODQ1NCkuSSksdGhpcy5kZWNvZGVyPW5ldyBYKHhlLmVuY29kaW5nKSx0aGlzLmVuY29kaW5nPXhlLmVuY29kaW5nKX1mdW5jdGlvbiBpZSh4ZSl7aWYocD1wfHxiKDc0MDc1KSwhKHRoaXMg'@; put 'aW5zdGFuY2VvZiBpZSkpcmV0dXJuIG5ldyBpZSh4ZSk7dGhpcy5fcmVhZGFibGVTdGF0ZT1uZXcgdGUoeGUsdGhpcyksdGhpcy5yZWFkYWJsZT0hMCx4ZSYmKCJmdW5jdGlvbiI9PXR5cGVvZiB4ZS5yZWFkJiYodGhpcy5fcmVhZD14ZS5yZWFkKSwiZnVuY3Rpb24iPT10eXBlb2YgeGUuZGVz'@; put 'dHJveSYmKHRoaXMuX2Rlc3Ryb3k9eGUuZGVzdHJveSkpLEYuY2FsbCh0aGlzKX1mdW5jdGlvbiBzZSh4ZSx2ZSxxZSxqZSxBZSl7dmFyIFJlLEZlPXhlLl9yZWFkYWJsZVN0YXRlO3JldHVybiBudWxsPT09dmU/KEZlLnJlYWRpbmc9ITEsZnVuY3Rpb24gZyh4ZSx2ZSl7aWYoIXZlLmVuZGVk'@; put 'KXtpZih2ZS5kZWNvZGVyKXt2YXIgcWU9dmUuZGVjb2Rlci5lbmQoKTtxZSYmcWUubGVuZ3RoJiYodmUuYnVmZmVyLnB1c2gocWUpLHZlLmxlbmd0aCs9dmUub2JqZWN0TW9kZT8xOnFlLmxlbmd0aCl9dmUuZW5kZWQ9ITAseSh4ZSl9fSh4ZSxGZSkpOihBZXx8KFJlPWZ1bmN0aW9uIF9lKHhl'@; put 'LHZlKXt2YXIgcWU7cmV0dXJuIWZ1bmN0aW9uIFAoeGUpe3JldHVybiBILmlzQnVmZmVyKHhlKXx8eGUgaW5zdGFuY2VvZiBSfSh2ZSkmJiJzdHJpbmciIT10eXBlb2YgdmUmJnZvaWQgMCE9PXZlJiYheGUub2JqZWN0TW9kZSYmKHFlPW5ldyBUeXBlRXJyb3IoIkludmFsaWQgbm9uLXN0cmlu'@; put 'Zy9idWZmZXIgY2h1bmsiKSkscWV9KEZlLHZlKSksUmU/eGUuZW1pdCgiZXJyb3IiLFJlKTpGZS5vYmplY3RNb2RlfHx2ZSYmdmUubGVuZ3RoPjA/KCJzdHJpbmciIT10eXBlb2YgdmUmJiFGZS5vYmplY3RNb2RlJiZPYmplY3QuZ2V0UHJvdG90eXBlT2YodmUpIT09SC5wcm90b3R5cGUmJih2'@; put 'ZT1mdW5jdGlvbiBqKHhlKXtyZXR1cm4gSC5mcm9tKHhlKX0odmUpKSxqZT9GZS5lbmRFbWl0dGVkP3hlLmVtaXQoImVycm9yIixuZXcgRXJyb3IoInN0cmVhbS51bnNoaWZ0KCkgYWZ0ZXIgZW5kIGV2ZW50IikpOmdlKHhlLEZlLHZlLCEwKTpGZS5lbmRlZD94ZS5lbWl0KCJlcnJvciIsbmV3'@; put 'IEVycm9yKCJzdHJlYW0ucHVzaCgpIGFmdGVyIEVPRiIpKTooRmUucmVhZGluZz0hMSxGZS5kZWNvZGVyJiYhcWU/KHZlPUZlLmRlY29kZXIud3JpdGUodmUpLEZlLm9iamVjdE1vZGV8fDAhPT12ZS5sZW5ndGg/Z2UoeGUsRmUsdmUsITEpOkMoeGUsRmUpKTpnZSh4ZSxGZSx2ZSwhMSkpKTpq'@; put 'ZXx8KEZlLnJlYWRpbmc9ITEpKSxmdW5jdGlvbiBUZSh4ZSl7cmV0dXJuIXhlLmVuZGVkJiYoeGUubmVlZFJlYWRhYmxlfHx4ZS5sZW5ndGg8eGUuaGlnaFdhdGVyTWFya3x8MD09PXhlLmxlbmd0aCl9KEZlKX1mdW5jdGlvbiBnZSh4ZSx2ZSxxZSxqZSl7dmUuZmxvd2luZyYmMD09PXZlLmxl'@; put 'bmd0aCYmIXZlLnN5bmM/KHhlLmVtaXQoImRhdGEiLHFlKSx4ZS5yZWFkKDApKToodmUubGVuZ3RoKz12ZS5vYmplY3RNb2RlPzE6cWUubGVuZ3RoLGplP3ZlLmJ1ZmZlci51bnNoaWZ0KHFlKTp2ZS5idWZmZXIucHVzaChxZSksdmUubmVlZFJlYWRhYmxlJiZ5KHhlKSksQyh4ZSx2ZSl9T2Jq'@; put 'ZWN0LmRlZmluZVByb3BlcnR5KGllLnByb3RvdHlwZSwiZGVzdHJveWVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX3JlYWRhYmxlU3RhdGUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkfSxzZXQ6ZnVuY3Rpb24oeGUpe3RoaXMuX3JlYWRhYmxlU3RhdGUm'@; put 'Jih0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD14ZSl9fSksaWUucHJvdG90eXBlLmRlc3Ryb3k9Wi5kZXN0cm95LGllLnByb3RvdHlwZS5fdW5kZXN0cm95PVoudW5kZXN0cm95LGllLnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbih4ZSx2ZSl7dGhpcy5wdXNoKG51bGwpLHZlKHhl'@; put 'KX0saWUucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oeGUsdmUpe3ZhciBqZSxxZT10aGlzLl9yZWFkYWJsZVN0YXRlO3JldHVybiBxZS5vYmplY3RNb2RlP2plPSEwOiJzdHJpbmciPT10eXBlb2YgeGUmJigodmU9dmV8fHFlLmRlZmF1bHRFbmNvZGluZykhPT1xZS5lbmNvZGluZyYmKHhlPUgu'@; put 'ZnJvbSh4ZSx2ZSksdmU9IiIpLGplPSEwKSxzZSh0aGlzLHhlLHZlLCExLGplKX0saWUucHJvdG90eXBlLnVuc2hpZnQ9ZnVuY3Rpb24oeGUpe3JldHVybiBzZSh0aGlzLHhlLG51bGwsITAsITEpfSxpZS5wcm90b3R5cGUuaXNQYXVzZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMT09PXRoaXMuX3Jl'@; put 'YWRhYmxlU3RhdGUuZmxvd2luZ30saWUucHJvdG90eXBlLnNldEVuY29kaW5nPWZ1bmN0aW9uKHhlKXtyZXR1cm4gWHx8KFg9Yig3ODQ1NCkuSSksdGhpcy5fcmVhZGFibGVTdGF0ZS5kZWNvZGVyPW5ldyBYKHhlKSx0aGlzLl9yZWFkYWJsZVN0YXRlLmVuY29kaW5nPXhlLHRoaXN9O2Z1bmN0'@; put 'aW9uIHooeGUsdmUpe3JldHVybiB4ZTw9MHx8MD09PXZlLmxlbmd0aCYmdmUuZW5kZWQ/MDp2ZS5vYmplY3RNb2RlPzE6eGUhPXhlP3ZlLmZsb3dpbmcmJnZlLmxlbmd0aD92ZS5idWZmZXIuaGVhZC5kYXRhLmxlbmd0aDp2ZS5sZW5ndGg6KHhlPnZlLmhpZ2hXYXRlck1hcmsmJih2ZS5oaWdo'@; put 'V2F0ZXJNYXJrPWZ1bmN0aW9uIHplKHhlKXtyZXR1cm4geGU+PTgzODg2MDg/eGU9ODM4ODYwODooeGUtLSx4ZXw9eGU+Pj4xLHhlfD14ZT4+PjIseGV8PXhlPj4+NCx4ZXw9eGU+Pj44LHhlfD14ZT4+PjE2LHhlKyspLHhlfSh4ZSkpLHhlPD12ZS5sZW5ndGg/eGU6dmUuZW5kZWQ/dmUubGVu'@; put 'Z3RoOih2ZS5uZWVkUmVhZGFibGU9ITAsMCkpfWZ1bmN0aW9uIHkoeGUpe3ZhciB2ZT14ZS5fcmVhZGFibGVTdGF0ZTt2ZS5uZWVkUmVhZGFibGU9ITEsdmUuZW1pdHRlZFJlYWRhYmxlfHwoQigiZW1pdFJlYWRhYmxlIix2ZS5mbG93aW5nKSx2ZS5lbWl0dGVkUmVhZGFibGU9ITAsdmUuc3lu'@; put 'Yz9ELm5leHRUaWNrKHgseGUpOngoeGUpKX1mdW5jdGlvbiB4KHhlKXtCKCJlbWl0IHJlYWRhYmxlIikseGUuZW1pdCgicmVhZGFibGUiKSxBKHhlKX1mdW5jdGlvbiBDKHhlLHZlKXt2ZS5yZWFkaW5nTW9yZXx8KHZlLnJlYWRpbmdNb3JlPSEwLEQubmV4dFRpY2soVCx4ZSx2ZSkpfWZ1bmN0'@; put 'aW9uIFQoeGUsdmUpe2Zvcih2YXIgcWU9dmUubGVuZ3RoOyF2ZS5yZWFkaW5nJiYhdmUuZmxvd2luZyYmIXZlLmVuZGVkJiZ2ZS5sZW5ndGg8dmUuaGlnaFdhdGVyTWFyayYmKEIoIm1heWJlUmVhZE1vcmUgcmVhZCAwIikseGUucmVhZCgwKSxxZSE9PXZlLmxlbmd0aCk7KXFlPXZlLmxlbmd0'@; put 'aDt2ZS5yZWFkaW5nTW9yZT0hMX1mdW5jdGlvbiBVKHhlKXtCKCJyZWFkYWJsZSBuZXh0dGljayByZWFkIDAiKSx4ZS5yZWFkKDApfWZ1bmN0aW9uIG0oeGUsdmUpe3ZlLnJlYWRpbmd8fChCKCJyZXN1bWUgcmVhZCAwIikseGUucmVhZCgwKSksdmUucmVzdW1lU2NoZWR1bGVkPSExLHZlLmF3'@; put 'YWl0RHJhaW49MCx4ZS5lbWl0KCJyZXN1bWUiKSxBKHhlKSx2ZS5mbG93aW5nJiYhdmUucmVhZGluZyYmeGUucmVhZCgwKX1mdW5jdGlvbiBBKHhlKXt2YXIgdmU9eGUuX3JlYWRhYmxlU3RhdGU7Zm9yKEIoImZsb3ciLHZlLmZsb3dpbmcpO3ZlLmZsb3dpbmcmJm51bGwhPT14ZS5yZWFkKCk7'@; put 'KTt9ZnVuY3Rpb24gYWUoeGUsdmUpe3JldHVybiAwPT09dmUubGVuZ3RoP251bGw6KHZlLm9iamVjdE1vZGU/cWU9dmUuYnVmZmVyLnNoaWZ0KCk6IXhlfHx4ZT49dmUubGVuZ3RoPyhxZT12ZS5kZWNvZGVyP3ZlLmJ1ZmZlci5qb2luKCIiKToxPT09dmUuYnVmZmVyLmxlbmd0aD92ZS5idWZm'@; put 'ZXIuaGVhZC5kYXRhOnZlLmJ1ZmZlci5jb25jYXQodmUubGVuZ3RoKSx2ZS5idWZmZXIuY2xlYXIoKSk6cWU9ZnVuY3Rpb24gbmUoeGUsdmUscWUpe3ZhciBqZTtyZXR1cm4geGU8dmUuaGVhZC5kYXRhLmxlbmd0aD8oamU9dmUuaGVhZC5kYXRhLnNsaWNlKDAseGUpLHZlLmhlYWQuZGF0YT12'@; put 'ZS5oZWFkLmRhdGEuc2xpY2UoeGUpKTpqZT14ZT09PXZlLmhlYWQuZGF0YS5sZW5ndGg/dmUuc2hpZnQoKTpxZT9mdW5jdGlvbiBsZSh4ZSx2ZSl7dmFyIHFlPXZlLmhlYWQsamU9MSxBZT1xZS5kYXRhO2Zvcih4ZS09QWUubGVuZ3RoO3FlPXFlLm5leHQ7KXt2YXIgRmU9cWUuZGF0YSxSZT14'@; put 'ZT5GZS5sZW5ndGg/RmUubGVuZ3RoOnhlO2lmKEFlKz1SZT09PUZlLmxlbmd0aD9GZTpGZS5zbGljZSgwLHhlKSwwPT0oeGUtPVJlKSl7UmU9PT1GZS5sZW5ndGg/KCsramUsdmUuaGVhZD1xZS5uZXh0P3FlLm5leHQ6dmUudGFpbD1udWxsKToodmUuaGVhZD1xZSxxZS5kYXRhPUZlLnNsaWNl'@; put 'KFJlKSk7YnJlYWt9KytqZX1yZXR1cm4gdmUubGVuZ3RoLT1qZSxBZX0oeGUsdmUpOmZ1bmN0aW9uIHdlKHhlLHZlKXt2YXIgcWU9SC5hbGxvY1Vuc2FmZSh4ZSksamU9dmUuaGVhZCxBZT0xO2ZvcihqZS5kYXRhLmNvcHkocWUpLHhlLT1qZS5kYXRhLmxlbmd0aDtqZT1qZS5uZXh0Oyl7dmFy'@; put 'IEZlPWplLmRhdGEsUmU9eGU+RmUubGVuZ3RoP0ZlLmxlbmd0aDp4ZTtpZihGZS5jb3B5KHFlLHFlLmxlbmd0aC14ZSwwLFJlKSwwPT0oeGUtPVJlKSl7UmU9PT1GZS5sZW5ndGg/KCsrQWUsdmUuaGVhZD1qZS5uZXh0P2plLm5leHQ6dmUudGFpbD1udWxsKToodmUuaGVhZD1qZSxqZS5kYXRh'@; put 'PUZlLnNsaWNlKFJlKSk7YnJlYWt9KytBZX1yZXR1cm4gdmUubGVuZ3RoLT1BZSxxZX0oeGUsdmUpLGplfSh4ZSx2ZS5idWZmZXIsdmUuZGVjb2RlcikscWUpO3ZhciBxZX1mdW5jdGlvbiBaZSh4ZSl7dmFyIHZlPXhlLl9yZWFkYWJsZVN0YXRlO2lmKHZlLmxlbmd0aD4wKXRocm93IG5ldyBF'@; put 'cnJvcignImVuZFJlYWRhYmxlKCkiIGNhbGxlZCBvbiBub24tZW1wdHkgc3RyZWFtJyk7dmUuZW5kRW1pdHRlZHx8KHZlLmVuZGVkPSEwLEQubmV4dFRpY2soUWUsdmUseGUpKX1mdW5jdGlvbiBRZSh4ZSx2ZSl7IXhlLmVuZEVtaXR0ZWQmJjA9PT14ZS5sZW5ndGgmJih4ZS5lbmRFbWl0dGVk'@; put 'PSEwLHZlLnJlYWRhYmxlPSExLHZlLmVtaXQoImVuZCIpKX1mdW5jdGlvbiBhdCh4ZSx2ZSl7Zm9yKHZhciBxZT0wLGplPXhlLmxlbmd0aDtxZTxqZTtxZSsrKWlmKHhlW3FlXT09PXZlKXJldHVybiBxZTtyZXR1cm4tMX1pZS5wcm90b3R5cGUucmVhZD1mdW5jdGlvbih4ZSl7QigicmVhZCIs'@; put 'eGUpLHhlPXBhcnNlSW50KHhlLDEwKTt2YXIgdmU9dGhpcy5fcmVhZGFibGVTdGF0ZSxxZT14ZTtpZigwIT09eGUmJih2ZS5lbWl0dGVkUmVhZGFibGU9ITEpLDA9PT14ZSYmdmUubmVlZFJlYWRhYmxlJiYodmUubGVuZ3RoPj12ZS5oaWdoV2F0ZXJNYXJrfHx2ZS5lbmRlZCkpcmV0dXJuIEIo'@; put 'InJlYWQ6IGVtaXRSZWFkYWJsZSIsdmUubGVuZ3RoLHZlLmVuZGVkKSwwPT09dmUubGVuZ3RoJiZ2ZS5lbmRlZD9aZSh0aGlzKTp5KHRoaXMpLG51bGw7aWYoMD09PSh4ZT16KHhlLHZlKSkmJnZlLmVuZGVkKXJldHVybiAwPT09dmUubGVuZ3RoJiZaZSh0aGlzKSxudWxsO3ZhciBBZSxqZT12'@; put 'ZS5uZWVkUmVhZGFibGU7cmV0dXJuIEIoIm5lZWQgcmVhZGFibGUiLGplKSwoMD09PXZlLmxlbmd0aHx8dmUubGVuZ3RoLXhlPHZlLmhpZ2hXYXRlck1hcmspJiZCKCJsZW5ndGggbGVzcyB0aGFuIHdhdGVybWFyayIsamU9ITApLHZlLmVuZGVkfHx2ZS5yZWFkaW5nP0IoInJlYWRpbmcgb3Ig'@; put 'ZW5kZWQiLGplPSExKTpqZSYmKEIoImRvIHJlYWQiKSx2ZS5yZWFkaW5nPSEwLHZlLnN5bmM9ITAsMD09PXZlLmxlbmd0aCYmKHZlLm5lZWRSZWFkYWJsZT0hMCksdGhpcy5fcmVhZCh2ZS5oaWdoV2F0ZXJNYXJrKSx2ZS5zeW5jPSExLHZlLnJlYWRpbmd8fCh4ZT16KHFlLHZlKSkpLG51bGw9'@; put 'PT0oQWU9eGU+MD9hZSh4ZSx2ZSk6bnVsbCk/KHZlLm5lZWRSZWFkYWJsZT0hMCx4ZT0wKTp2ZS5sZW5ndGgtPXhlLDA9PT12ZS5sZW5ndGgmJih2ZS5lbmRlZHx8KHZlLm5lZWRSZWFkYWJsZT0hMCkscWUhPT14ZSYmdmUuZW5kZWQmJlplKHRoaXMpKSxudWxsIT09QWUmJnRoaXMuZW1pdCgi'@; put 'ZGF0YSIsQWUpLEFlfSxpZS5wcm90b3R5cGUuX3JlYWQ9ZnVuY3Rpb24oeGUpe3RoaXMuZW1pdCgiZXJyb3IiLG5ldyBFcnJvcigiX3JlYWQoKSBpcyBub3QgaW1wbGVtZW50ZWQiKSl9LGllLnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKHhlLHZlKXt2YXIgcWU9dGhpcyxqZT10aGlzLl9yZWFk'@; put 'YWJsZVN0YXRlO3N3aXRjaChqZS5waXBlc0NvdW50KXtjYXNlIDA6amUucGlwZXM9eGU7YnJlYWs7Y2FzZSAxOmplLnBpcGVzPVtqZS5waXBlcyx4ZV07YnJlYWs7ZGVmYXVsdDpqZS5waXBlcy5wdXNoKHhlKX1qZS5waXBlc0NvdW50Kz0xLEIoInBpcGUgY291bnQ9JWQgb3B0cz0laiIsamUu'@; put 'cGlwZXNDb3VudCx2ZSk7dmFyIEZlPXZlJiYhMT09PXZlLmVuZHx8eGU9PT1wcm9jZXNzLnN0ZG91dHx8eGU9PT1wcm9jZXNzLnN0ZGVycj9NdDpJZTtmdW5jdGlvbiBJZSgpe0IoIm9uZW5kIikseGUuZW5kKCl9amUuZW5kRW1pdHRlZD9ELm5leHRUaWNrKEZlKTpxZS5vbmNlKCJlbmQiLEZl'@; put 'KSx4ZS5vbigidW5waXBlIixmdW5jdGlvbiBSZShJdCxydCl7Qigib251bnBpcGUiKSxJdD09PXFlJiZydCYmITE9PT1ydC5oYXNVbnBpcGVkJiYocnQuaGFzVW5waXBlZD0hMCxmdW5jdGlvbiBrZSgpe0IoImNsZWFudXAiKSx4ZS5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLG9uKSx4ZS5yZW1v'@; put 'dmVMaXN0ZW5lcigiZmluaXNoIix5dCkseGUucmVtb3ZlTGlzdGVuZXIoImRyYWluIixIZSkseGUucmVtb3ZlTGlzdGVuZXIoImVycm9yIixKZSkseGUucmVtb3ZlTGlzdGVuZXIoInVucGlwZSIsUmUpLHFlLnJlbW92ZUxpc3RlbmVyKCJlbmQiLEllKSxxZS5yZW1vdmVMaXN0ZW5lcigiZW5k'@; put 'IixNdCkscWUucmVtb3ZlTGlzdGVuZXIoImRhdGEiLG50KSxEZT0hMCxqZS5hd2FpdERyYWluJiYoIXhlLl93cml0YWJsZVN0YXRlfHx4ZS5fd3JpdGFibGVTdGF0ZS5uZWVkRHJhaW4pJiZIZSgpfSgpKX0pO3ZhciBIZT1mdW5jdGlvbiBWKHhlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdmU9'@; put 'eGUuX3JlYWRhYmxlU3RhdGU7QigicGlwZU9uRHJhaW4iLHZlLmF3YWl0RHJhaW4pLHZlLmF3YWl0RHJhaW4mJnZlLmF3YWl0RHJhaW4tLSwwPT09dmUuYXdhaXREcmFpbiYmdyh4ZSwiZGF0YSIpJiYodmUuZmxvd2luZz0hMCxBKHhlKSl9fShxZSk7eGUub24oImRyYWluIixIZSk7dmFyIERl'@; put 'PSExLF90PSExO2Z1bmN0aW9uIG50KEl0KXtCKCJvbmRhdGEiKSxfdD0hMSwhMT09PXhlLndyaXRlKEl0KSYmIV90JiYoKDE9PT1qZS5waXBlc0NvdW50JiZqZS5waXBlcz09PXhlfHxqZS5waXBlc0NvdW50PjEmJi0xIT09YXQoamUucGlwZXMseGUpKSYmIURlJiYoQigiZmFsc2Ugd3JpdGUg'@; put 'cmVzcG9uc2UsIHBhdXNlIixqZS5hd2FpdERyYWluKSxqZS5hd2FpdERyYWluKyssX3Q9ITApLHFlLnBhdXNlKCkpfWZ1bmN0aW9uIEplKEl0KXtCKCJvbmVycm9yIixJdCksTXQoKSx4ZS5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLEplKSwwPT09dyh4ZSwiZXJyb3IiKSYmeGUuZW1pdCgiZXJy'@; put 'b3IiLEl0KX1mdW5jdGlvbiBvbigpe3hlLnJlbW92ZUxpc3RlbmVyKCJmaW5pc2giLHl0KSxNdCgpfWZ1bmN0aW9uIHl0KCl7Qigib25maW5pc2giKSx4ZS5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLG9uKSxNdCgpfWZ1bmN0aW9uIE10KCl7QigidW5waXBlIikscWUudW5waXBlKHhlKX1yZXR1'@; put 'cm4gcWUub24oImRhdGEiLG50KSxmdW5jdGlvbiBxKHhlLHZlLHFlKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgeGUucHJlcGVuZExpc3RlbmVyKXJldHVybiB4ZS5wcmVwZW5kTGlzdGVuZXIodmUscWUpO3hlLl9ldmVudHMmJnhlLl9ldmVudHNbdmVdP18oeGUuX2V2ZW50c1t2ZV0pP3hlLl9l'@; put 'dmVudHNbdmVdLnVuc2hpZnQocWUpOnhlLl9ldmVudHNbdmVdPVtxZSx4ZS5fZXZlbnRzW3ZlXV06eGUub24odmUscWUpfSh4ZSwiZXJyb3IiLEplKSx4ZS5vbmNlKCJjbG9zZSIsb24pLHhlLm9uY2UoImZpbmlzaCIseXQpLHhlLmVtaXQoInBpcGUiLHFlKSxqZS5mbG93aW5nfHwoQigicGlw'@; put 'ZSByZXN1bWUiKSxxZS5yZXN1bWUoKSkseGV9LGllLnByb3RvdHlwZS51bnBpcGU9ZnVuY3Rpb24oeGUpe3ZhciB2ZT10aGlzLl9yZWFkYWJsZVN0YXRlLHFlPXtoYXNVbnBpcGVkOiExfTtpZigwPT09dmUucGlwZXNDb3VudClyZXR1cm4gdGhpcztpZigxPT09dmUucGlwZXNDb3VudClyZXR1'@; put 'cm4geGUmJnhlIT09dmUucGlwZXN8fCh4ZXx8KHhlPXZlLnBpcGVzKSx2ZS5waXBlcz1udWxsLHZlLnBpcGVzQ291bnQ9MCx2ZS5mbG93aW5nPSExLHhlJiZ4ZS5lbWl0KCJ1bnBpcGUiLHRoaXMscWUpKSx0aGlzO2lmKCF4ZSl7dmFyIGplPXZlLnBpcGVzLEFlPXZlLnBpcGVzQ291bnQ7dmUu'@; put 'cGlwZXM9bnVsbCx2ZS5waXBlc0NvdW50PTAsdmUuZmxvd2luZz0hMTtmb3IodmFyIEZlPTA7RmU8QWU7RmUrKylqZVtGZV0uZW1pdCgidW5waXBlIix0aGlzLHtoYXNVbnBpcGVkOiExfSk7cmV0dXJuIHRoaXN9dmFyIFJlPWF0KHZlLnBpcGVzLHhlKTtyZXR1cm4tMT09PVJlfHwodmUucGlw'@; put 'ZXMuc3BsaWNlKFJlLDEpLHZlLnBpcGVzQ291bnQtPTEsMT09PXZlLnBpcGVzQ291bnQmJih2ZS5waXBlcz12ZS5waXBlc1swXSkseGUuZW1pdCgidW5waXBlIix0aGlzLHFlKSksdGhpc30saWUucHJvdG90eXBlLmFkZExpc3RlbmVyPWllLnByb3RvdHlwZS5vbj1mdW5jdGlvbih4ZSx2ZSl7'@; put 'dmFyIHFlPUYucHJvdG90eXBlLm9uLmNhbGwodGhpcyx4ZSx2ZSk7aWYoImRhdGEiPT09eGUpITEhPT10aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmcmJnRoaXMucmVzdW1lKCk7ZWxzZSBpZigicmVhZGFibGUiPT09eGUpe3ZhciBqZT10aGlzLl9yZWFkYWJsZVN0YXRlOyFqZS5lbmRFbWl0'@; put 'dGVkJiYhamUucmVhZGFibGVMaXN0ZW5pbmcmJihqZS5yZWFkYWJsZUxpc3RlbmluZz1qZS5uZWVkUmVhZGFibGU9ITAsamUuZW1pdHRlZFJlYWRhYmxlPSExLGplLnJlYWRpbmc/amUubGVuZ3RoJiZ5KHRoaXMpOkQubmV4dFRpY2soVSx0aGlzKSl9cmV0dXJuIHFlfSxpZS5wcm90b3R5cGUu'@; put 'cmVzdW1lPWZ1bmN0aW9uKCl7dmFyIHhlPXRoaXMuX3JlYWRhYmxlU3RhdGU7cmV0dXJuIHhlLmZsb3dpbmd8fChCKCJyZXN1bWUiKSx4ZS5mbG93aW5nPSEwLGZ1bmN0aW9uIEUoeGUsdmUpe3ZlLnJlc3VtZVNjaGVkdWxlZHx8KHZlLnJlc3VtZVNjaGVkdWxlZD0hMCxELm5leHRUaWNrKG0s'@; put 'eGUsdmUpKX0odGhpcyx4ZSkpLHRoaXN9LGllLnByb3RvdHlwZS5wYXVzZT1mdW5jdGlvbigpe3JldHVybiBCKCJjYWxsIHBhdXNlIGZsb3dpbmc9JWoiLHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZyksITEhPT10aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmcmJihCKCJwYXVzZSIpLHRo'@; put 'aXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZz0hMSx0aGlzLmVtaXQoInBhdXNlIikpLHRoaXN9LGllLnByb3RvdHlwZS53cmFwPWZ1bmN0aW9uKHhlKXt2YXIgdmU9dGhpcyxxZT10aGlzLl9yZWFkYWJsZVN0YXRlLGplPSExO2Zvcih2YXIgQWUgaW4geGUub24oImVuZCIsZnVuY3Rpb24oKXtp'@; put 'ZihCKCJ3cmFwcGVkIGVuZCIpLHFlLmRlY29kZXImJiFxZS5lbmRlZCl7dmFyIFJlPXFlLmRlY29kZXIuZW5kKCk7UmUmJlJlLmxlbmd0aCYmdmUucHVzaChSZSl9dmUucHVzaChudWxsKX0pLHhlLm9uKCJkYXRhIixmdW5jdGlvbihSZSl7Qigid3JhcHBlZCBkYXRhIikscWUuZGVjb2RlciYm'@; put 'KFJlPXFlLmRlY29kZXIud3JpdGUoUmUpKSxxZS5vYmplY3RNb2RlJiZudWxsPT1SZXx8IShxZS5vYmplY3RNb2RlfHxSZSYmUmUubGVuZ3RoKXx8dmUucHVzaChSZSl8fChqZT0hMCx4ZS5wYXVzZSgpKX0pLHhlKXZvaWQgMD09PXRoaXNbQWVdJiYiZnVuY3Rpb24iPT10eXBlb2YgeGVbQWVd'@; put 'JiYodGhpc1tBZV09ZnVuY3Rpb24oUmUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB4ZVtSZV0uYXBwbHkoeGUsYXJndW1lbnRzKX19KEFlKSk7Zm9yKHZhciBGZT0wO0ZlPFEubGVuZ3RoO0ZlKyspeGUub24oUVtGZV0sdGhpcy5lbWl0LmJpbmQodGhpcyxRW0ZlXSkpO3JldHVybiB0aGlz'@; put 'Ll9yZWFkPWZ1bmN0aW9uKFJlKXtCKCJ3cmFwcGVkIF9yZWFkIixSZSksamUmJihqZT0hMSx4ZS5yZXN1bWUoKSl9LHRoaXN9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpZS5wcm90b3R5cGUsInJlYWRhYmxlSGlnaFdhdGVyTWFyayIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0'@; put 'dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUuaGlnaFdhdGVyTWFya319KSxpZS5fZnJvbUxpc3Q9YWV9LDI5MDk6KGNlLEosYik9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz1OO3ZhciBEPWIoNzQwNzUpLF89T2JqZWN0LmNyZWF0ZShiKDI3NjM3KSk7ZnVuY3Rpb24gcChILFIpe3ZhciBqPXRo'@; put 'aXMuX3RyYW5zZm9ybVN0YXRlO2oudHJhbnNmb3JtaW5nPSExO3ZhciBQPWoud3JpdGVjYjtpZighUClyZXR1cm4gdGhpcy5lbWl0KCJlcnJvciIsbmV3IEVycm9yKCJ3cml0ZSBjYWxsYmFjayBjYWxsZWQgbXVsdGlwbGUgdGltZXMiKSk7ai53cml0ZWNodW5rPW51bGwsai53cml0ZWNiPW51'@; put 'bGwsbnVsbCE9UiYmdGhpcy5wdXNoKFIpLFAoSCk7dmFyIEw9dGhpcy5fcmVhZGFibGVTdGF0ZTtMLnJlYWRpbmc9ITEsKEwubmVlZFJlYWRhYmxlfHxMLmxlbmd0aDxMLmhpZ2hXYXRlck1hcmspJiZ0aGlzLl9yZWFkKEwuaGlnaFdhdGVyTWFyayl9ZnVuY3Rpb24gTihIKXtpZighKHRoaXMg'@; put 'aW5zdGFuY2VvZiBOKSlyZXR1cm4gbmV3IE4oSCk7RC5jYWxsKHRoaXMsSCksdGhpcy5fdHJhbnNmb3JtU3RhdGU9e2FmdGVyVHJhbnNmb3JtOnAuYmluZCh0aGlzKSxuZWVkVHJhbnNmb3JtOiExLHRyYW5zZm9ybWluZzohMSx3cml0ZWNiOm51bGwsd3JpdGVjaHVuazpudWxsLHdyaXRlZW5j'@; put 'b2Rpbmc6bnVsbH0sdGhpcy5fcmVhZGFibGVTdGF0ZS5uZWVkUmVhZGFibGU9ITAsdGhpcy5fcmVhZGFibGVTdGF0ZS5zeW5jPSExLEgmJigiZnVuY3Rpb24iPT10eXBlb2YgSC50cmFuc2Zvcm0mJih0aGlzLl90cmFuc2Zvcm09SC50cmFuc2Zvcm0pLCJmdW5jdGlvbiI9PXR5cGVvZiBILmZs'@; put 'dXNoJiYodGhpcy5fZmx1c2g9SC5mbHVzaCkpLHRoaXMub24oInByZWZpbmlzaCIsdyl9ZnVuY3Rpb24gdygpe3ZhciBIPXRoaXM7ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMuX2ZsdXNoP3RoaXMuX2ZsdXNoKGZ1bmN0aW9uKFIsail7RihILFIsail9KTpGKHRoaXMsbnVsbCxudWxsKX1mdW5j'@; put 'dGlvbiBGKEgsUixqKXtpZihSKXJldHVybiBILmVtaXQoImVycm9yIixSKTtpZihudWxsIT1qJiZILnB1c2goaiksSC5fd3JpdGFibGVTdGF0ZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJDYWxsaW5nIHRyYW5zZm9ybSBkb25lIHdoZW4gd3MubGVuZ3RoICE9IDAiKTtpZihILl90cmFuc2Zv'@; put 'cm1TdGF0ZS50cmFuc2Zvcm1pbmcpdGhyb3cgbmV3IEVycm9yKCJDYWxsaW5nIHRyYW5zZm9ybSBkb25lIHdoZW4gc3RpbGwgdHJhbnNmb3JtaW5nIik7cmV0dXJuIEgucHVzaChudWxsKX1fLmluaGVyaXRzPWIoNzE5OTMpLF8uaW5oZXJpdHMoTixEKSxOLnByb3RvdHlwZS5wdXNoPWZ1bmN0'@; put 'aW9uKEgsUil7cmV0dXJuIHRoaXMuX3RyYW5zZm9ybVN0YXRlLm5lZWRUcmFuc2Zvcm09ITEsRC5wcm90b3R5cGUucHVzaC5jYWxsKHRoaXMsSCxSKX0sTi5wcm90b3R5cGUuX3RyYW5zZm9ybT1mdW5jdGlvbihILFIsail7dGhyb3cgbmV3IEVycm9yKCJfdHJhbnNmb3JtKCkgaXMgbm90IGlt'@; put 'cGxlbWVudGVkIil9LE4ucHJvdG90eXBlLl93cml0ZT1mdW5jdGlvbihILFIsail7dmFyIFA9dGhpcy5fdHJhbnNmb3JtU3RhdGU7aWYoUC53cml0ZWNiPWosUC53cml0ZWNodW5rPUgsUC53cml0ZWVuY29kaW5nPVIsIVAudHJhbnNmb3JtaW5nKXt2YXIgTD10aGlzLl9yZWFkYWJsZVN0YXRl'@; put 'OyhQLm5lZWRUcmFuc2Zvcm18fEwubmVlZFJlYWRhYmxlfHxMLmxlbmd0aDxMLmhpZ2hXYXRlck1hcmspJiZ0aGlzLl9yZWFkKEwuaGlnaFdhdGVyTWFyayl9fSxOLnByb3RvdHlwZS5fcmVhZD1mdW5jdGlvbihIKXt2YXIgUj10aGlzLl90cmFuc2Zvcm1TdGF0ZTtudWxsIT09Ui53cml0ZWNo'@; put 'dW5rJiZSLndyaXRlY2ImJiFSLnRyYW5zZm9ybWluZz8oUi50cmFuc2Zvcm1pbmc9ITAsdGhpcy5fdHJhbnNmb3JtKFIud3JpdGVjaHVuayxSLndyaXRlZW5jb2RpbmcsUi5hZnRlclRyYW5zZm9ybSkpOlIubmVlZFRyYW5zZm9ybT0hMH0sTi5wcm90b3R5cGUuX2Rlc3Ryb3k9ZnVuY3Rpb24o'@; put 'SCxSKXt2YXIgaj10aGlzO0QucHJvdG90eXBlLl9kZXN0cm95LmNhbGwodGhpcyxILGZ1bmN0aW9uKFApe1IoUCksai5lbWl0KCJjbG9zZSIpfSl9fSw0Nzg0OTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDk2NTYpO2Z1bmN0aW9uIHAoRSl7dmFyIG09dGhpczt0aGlzLm5leHQ9'@; put 'bnVsbCx0aGlzLmVudHJ5PW51bGwsdGhpcy5maW5pc2g9ZnVuY3Rpb24oKXshZnVuY3Rpb24gVShFLG0sQSl7dmFyIGFlPUUuZW50cnk7Zm9yKEUuZW50cnk9bnVsbDthZTspe3ZhciBuZT1hZS5jYWxsYmFjazttLnBlbmRpbmdjYi0tLG5lKEEpLGFlPWFlLm5leHR9bS5jb3JrZWRSZXF1ZXN0'@; put 'c0ZyZWUubmV4dD1FfShtLEUpfX1jZS5leHBvcnRzPVE7dmFyIHcsTj0hcHJvY2Vzcy5icm93c2VyJiZbInYwLjEwIiwidjAuOS4iXS5pbmRleE9mKHByb2Nlc3MudmVyc2lvbi5zbGljZSgwLDUpKT4tMT9zZXRJbW1lZGlhdGU6RC5uZXh0VGljaztRLldyaXRhYmxlU3RhdGU9Wjt2YXIgRj1P'@; put 'YmplY3QuY3JlYXRlKGIoMjc2MzcpKTtGLmluaGVyaXRzPWIoNzE5OTMpO3ZhciBYLEg9e2RlcHJlY2F0ZTpiKDMzOTgpfSxSPWIoMTgzNDIpLGo9YigyNjU1KS5CdWZmZXIsUD0odHlwZW9mIGdsb2JhbDwidSI/Z2xvYmFsOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp0eXBlb2Ygc2VsZjwi'@; put 'dSI/c2VsZjp7fSkuVWludDhBcnJheXx8ZnVuY3Rpb24oKXt9LEI9YigyMTUwOSk7ZnVuY3Rpb24gVygpe31mdW5jdGlvbiBaKEUsbSl7dz13fHxiKDc0MDc1KTt2YXIgQT1tIGluc3RhbmNlb2Ygdzt0aGlzLm9iamVjdE1vZGU9ISEoRT1FfHx7fSkub2JqZWN0TW9kZSxBJiYodGhpcy5vYmpl'@; put 'Y3RNb2RlPXRoaXMub2JqZWN0TW9kZXx8ISFFLndyaXRhYmxlT2JqZWN0TW9kZSk7dmFyIGFlPUUuaGlnaFdhdGVyTWFyayxuZT1FLndyaXRhYmxlSGlnaFdhdGVyTWFyazt0aGlzLmhpZ2hXYXRlck1hcms9YWV8fDA9PT1hZT9hZTpBJiYobmV8fDA9PT1uZSk/bmU6dGhpcy5vYmplY3RNb2Rl'@; put 'PzE2OjE2Mzg0LHRoaXMuaGlnaFdhdGVyTWFyaz1NYXRoLmZsb29yKHRoaXMuaGlnaFdhdGVyTWFyayksdGhpcy5maW5hbENhbGxlZD0hMSx0aGlzLm5lZWREcmFpbj0hMSx0aGlzLmVuZGluZz0hMSx0aGlzLmVuZGVkPSExLHRoaXMuZmluaXNoZWQ9ITEsdGhpcy5kZXN0cm95ZWQ9ITEsdGhp'@; put 'cy5kZWNvZGVTdHJpbmdzPSEoITE9PT1FLmRlY29kZVN0cmluZ3MpLHRoaXMuZGVmYXVsdEVuY29kaW5nPUUuZGVmYXVsdEVuY29kaW5nfHwidXRmOCIsdGhpcy5sZW5ndGg9MCx0aGlzLndyaXRpbmc9ITEsdGhpcy5jb3JrZWQ9MCx0aGlzLnN5bmM9ITAsdGhpcy5idWZmZXJQcm9jZXNzaW5n'@; put 'PSExLHRoaXMub253cml0ZT1mdW5jdGlvbihaZSl7IWZ1bmN0aW9uIFNlKEUsbSl7dmFyIEE9RS5fd3JpdGFibGVTdGF0ZSxhZT1BLnN5bmMsbmU9QS53cml0ZWNiO2lmKGZ1bmN0aW9uIFRlKEUpe0Uud3JpdGluZz0hMSxFLndyaXRlY2I9bnVsbCxFLmxlbmd0aC09RS53cml0ZWxlbixFLndy'@; put 'aXRlbGVuPTB9KEEpLG0pIWZ1bmN0aW9uIF9lKEUsbSxBLGFlLG5lKXstLW0ucGVuZGluZ2NiLEE/KEQubmV4dFRpY2sobmUsYWUpLEQubmV4dFRpY2soVCxFLG0pLEUuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPSEwLEUuZW1pdCgiZXJyb3IiLGFlKSk6KG5lKGFlKSxFLl93cml0YWJs'@; put 'ZVN0YXRlLmVycm9yRW1pdHRlZD0hMCxFLmVtaXQoImVycm9yIixhZSksVChFLG0pKX0oRSxBLGFlLG0sbmUpO2Vsc2V7dmFyIGxlPXkoQSk7IWxlJiYhQS5jb3JrZWQmJiFBLmJ1ZmZlclByb2Nlc3NpbmcmJkEuYnVmZmVyZWRSZXF1ZXN0JiZnKEUsQSksYWU/Tih6ZSxFLEEsbGUsbmUpOnpl'@; put 'KEUsQSxsZSxuZSl9fShtLFplKX0sdGhpcy53cml0ZWNiPW51bGwsdGhpcy53cml0ZWxlbj0wLHRoaXMuYnVmZmVyZWRSZXF1ZXN0PW51bGwsdGhpcy5sYXN0QnVmZmVyZWRSZXF1ZXN0PW51bGwsdGhpcy5wZW5kaW5nY2I9MCx0aGlzLnByZWZpbmlzaGVkPSExLHRoaXMuZXJyb3JFbWl0dGVk'@; put 'PSExLHRoaXMuYnVmZmVyZWRSZXF1ZXN0Q291bnQ9MCx0aGlzLmNvcmtlZFJlcXVlc3RzRnJlZT1uZXcgcCh0aGlzKX1mdW5jdGlvbiBRKEUpe2lmKHc9d3x8Yig3NDA3NSksIShYLmNhbGwoUSx0aGlzKXx8dGhpcyBpbnN0YW5jZW9mIHcpKXJldHVybiBuZXcgUShFKTt0aGlzLl93cml0YWJs'@; put 'ZVN0YXRlPW5ldyBaKEUsdGhpcyksdGhpcy53cml0YWJsZT0hMCxFJiYoImZ1bmN0aW9uIj09dHlwZW9mIEUud3JpdGUmJih0aGlzLl93cml0ZT1FLndyaXRlKSwiZnVuY3Rpb24iPT10eXBlb2YgRS53cml0ZXYmJih0aGlzLl93cml0ZXY9RS53cml0ZXYpLCJmdW5jdGlvbiI9PXR5cGVvZiBF'@; put 'LmRlc3Ryb3kmJih0aGlzLl9kZXN0cm95PUUuZGVzdHJveSksImZ1bmN0aW9uIj09dHlwZW9mIEUuZmluYWwmJih0aGlzLl9maW5hbD1FLmZpbmFsKSksUi5jYWxsKHRoaXMpfWZ1bmN0aW9uIGdlKEUsbSxBLGFlLG5lLGxlLHdlKXttLndyaXRlbGVuPWFlLG0ud3JpdGVjYj13ZSxtLndyaXRp'@; put 'bmc9ITAsbS5zeW5jPSEwLEE/RS5fd3JpdGV2KG5lLG0ub253cml0ZSk6RS5fd3JpdGUobmUsbGUsbS5vbndyaXRlKSxtLnN5bmM9ITF9ZnVuY3Rpb24gemUoRSxtLEEsYWUpe0F8fGZ1bmN0aW9uIHooRSxtKXswPT09bS5sZW5ndGgmJm0ubmVlZERyYWluJiYobS5uZWVkRHJhaW49ITEsRS5l'@; put 'bWl0KCJkcmFpbiIpKX0oRSxtKSxtLnBlbmRpbmdjYi0tLGFlKCksVChFLG0pfWZ1bmN0aW9uIGcoRSxtKXttLmJ1ZmZlclByb2Nlc3Npbmc9ITA7dmFyIEE9bS5idWZmZXJlZFJlcXVlc3Q7aWYoRS5fd3JpdGV2JiZBJiZBLm5leHQpe3ZhciBuZT1uZXcgQXJyYXkobS5idWZmZXJlZFJlcXVl'@; put 'c3RDb3VudCksbGU9bS5jb3JrZWRSZXF1ZXN0c0ZyZWU7bGUuZW50cnk9QTtmb3IodmFyIHdlPTAsWmU9ITA7QTspbmVbd2VdPUEsQS5pc0J1Znx8KFplPSExKSxBPUEubmV4dCx3ZSs9MTtuZS5hbGxCdWZmZXJzPVplLGdlKEUsbSwhMCxtLmxlbmd0aCxuZSwiIixsZS5maW5pc2gpLG0ucGVu'@; put 'ZGluZ2NiKyssbS5sYXN0QnVmZmVyZWRSZXF1ZXN0PW51bGwsbGUubmV4dD8obS5jb3JrZWRSZXF1ZXN0c0ZyZWU9bGUubmV4dCxsZS5uZXh0PW51bGwpOm0uY29ya2VkUmVxdWVzdHNGcmVlPW5ldyBwKG0pLG0uYnVmZmVyZWRSZXF1ZXN0Q291bnQ9MH1lbHNle2Zvcig7QTspe3ZhciBRZT1B'@; put 'LmNodW5rO2lmKGdlKEUsbSwhMSxtLm9iamVjdE1vZGU/MTpRZS5sZW5ndGgsUWUsQS5lbmNvZGluZyxBLmNhbGxiYWNrKSxBPUEubmV4dCxtLmJ1ZmZlcmVkUmVxdWVzdENvdW50LS0sbS53cml0aW5nKWJyZWFrfW51bGw9PT1BJiYobS5sYXN0QnVmZmVyZWRSZXF1ZXN0PW51bGwpfW0uYnVm'@; put 'ZmVyZWRSZXF1ZXN0PUEsbS5idWZmZXJQcm9jZXNzaW5nPSExfWZ1bmN0aW9uIHkoRSl7cmV0dXJuIEUuZW5kaW5nJiYwPT09RS5sZW5ndGgmJm51bGw9PT1FLmJ1ZmZlcmVkUmVxdWVzdCYmIUUuZmluaXNoZWQmJiFFLndyaXRpbmd9ZnVuY3Rpb24geChFLG0pe0UuX2ZpbmFsKGZ1bmN0aW9u'@; put 'KEEpe20ucGVuZGluZ2NiLS0sQSYmRS5lbWl0KCJlcnJvciIsQSksbS5wcmVmaW5pc2hlZD0hMCxFLmVtaXQoInByZWZpbmlzaCIpLFQoRSxtKX0pfWZ1bmN0aW9uIFQoRSxtKXt2YXIgQT15KG0pO3JldHVybiBBJiYoZnVuY3Rpb24gQyhFLG0peyFtLnByZWZpbmlzaGVkJiYhbS5maW5hbENh'@; put 'bGxlZCYmKCJmdW5jdGlvbiI9PXR5cGVvZiBFLl9maW5hbD8obS5wZW5kaW5nY2IrKyxtLmZpbmFsQ2FsbGVkPSEwLEQubmV4dFRpY2soeCxFLG0pKToobS5wcmVmaW5pc2hlZD0hMCxFLmVtaXQoInByZWZpbmlzaCIpKSl9KEUsbSksMD09PW0ucGVuZGluZ2NiJiYobS5maW5pc2hlZD0hMCxF'@; put 'LmVtaXQoImZpbmlzaCIpKSksQX1GLmluaGVyaXRzKFEsUiksWi5wcm90b3R5cGUuZ2V0QnVmZmVyPWZ1bmN0aW9uKCl7Zm9yKHZhciBtPXRoaXMuYnVmZmVyZWRSZXF1ZXN0LEE9W107bTspQS5wdXNoKG0pLG09bS5uZXh0O3JldHVybiBBfSxmdW5jdGlvbigpe3RyeXtPYmplY3QuZGVmaW5l'@; put 'UHJvcGVydHkoWi5wcm90b3R5cGUsImJ1ZmZlciIse2dldDpILmRlcHJlY2F0ZShmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldEJ1ZmZlcigpfSwiX3dyaXRhYmxlU3RhdGUuYnVmZmVyIGlzIGRlcHJlY2F0ZWQuIFVzZSBfd3JpdGFibGVTdGF0ZS5nZXRCdWZmZXIgaW5zdGVhZC4iLCJERVAw'@; put 'MDAzIil9KX1jYXRjaHt9fSgpLCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5oYXNJbnN0YW5jZSYmImZ1bmN0aW9uIj09dHlwZW9mIEZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdPyhYPUZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2Vd'@; put 'LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShRLFN5bWJvbC5oYXNJbnN0YW5jZSx7dmFsdWU6ZnVuY3Rpb24oRSl7cmV0dXJuISFYLmNhbGwodGhpcyxFKXx8dGhpcz09PVEmJkUmJkUuX3dyaXRhYmxlU3RhdGUgaW5zdGFuY2VvZiBafX0pKTpYPWZ1bmN0aW9uKEUpe3JldHVybiBFIGluc3RhbmNl'@; put 'b2YgdGhpc30sUS5wcm90b3R5cGUucGlwZT1mdW5jdGlvbigpe3RoaXMuZW1pdCgiZXJyb3IiLG5ldyBFcnJvcigiQ2Fubm90IHBpcGUsIG5vdCByZWFkYWJsZSIpKX0sUS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oRSxtLEEpe3ZhciBhZT10aGlzLl93cml0YWJsZVN0YXRlLG5lPSExLGxl'@; put 'PSFhZS5vYmplY3RNb2RlJiZmdW5jdGlvbiBZKEUpe3JldHVybiBqLmlzQnVmZmVyKEUpfHxFIGluc3RhbmNlb2YgUH0oRSk7cmV0dXJuIGxlJiYhai5pc0J1ZmZlcihFKSYmKEU9ZnVuY3Rpb24gTChFKXtyZXR1cm4gai5mcm9tKEUpfShFKSksImZ1bmN0aW9uIj09dHlwZW9mIG0mJihBPW0s'@; put 'bT1udWxsKSxsZT9tPSJidWZmZXIiOm18fChtPWFlLmRlZmF1bHRFbmNvZGluZyksImZ1bmN0aW9uIiE9dHlwZW9mIEEmJihBPVcpLGFlLmVuZGVkP2Z1bmN0aW9uIHEoRSxtKXt2YXIgQT1uZXcgRXJyb3IoIndyaXRlIGFmdGVyIGVuZCIpO0UuZW1pdCgiZXJyb3IiLEEpLEQubmV4dFRpY2so'@; put 'bSxBKX0odGhpcyxBKToobGV8fGZ1bmN0aW9uIHRlKEUsbSxBLGFlKXt2YXIgbmU9ITAsbGU9ITE7cmV0dXJuIG51bGw9PT1BP2xlPW5ldyBUeXBlRXJyb3IoIk1heSBub3Qgd3JpdGUgbnVsbCB2YWx1ZXMgdG8gc3RyZWFtIik6InN0cmluZyIhPXR5cGVvZiBBJiZ2b2lkIDAhPT1BJiYhbS5v'@; put 'YmplY3RNb2RlJiYobGU9bmV3IFR5cGVFcnJvcigiSW52YWxpZCBub24tc3RyaW5nL2J1ZmZlciBjaHVuayIpKSxsZSYmKEUuZW1pdCgiZXJyb3IiLGxlKSxELm5leHRUaWNrKGFlLGxlKSxuZT0hMSksbmV9KHRoaXMsYWUsRSxBKSkmJihhZS5wZW5kaW5nY2IrKyxuZT1mdW5jdGlvbiBzZShF'@; put 'LG0sQSxhZSxuZSxsZSl7aWYoIUEpe3ZhciB3ZT1mdW5jdGlvbiBpZShFLG0sQSl7cmV0dXJuIUUub2JqZWN0TW9kZSYmITEhPT1FLmRlY29kZVN0cmluZ3MmJiJzdHJpbmciPT10eXBlb2YgbSYmKG09ai5mcm9tKG0sQSkpLG19KG0sYWUsbmUpO2FlIT09d2UmJihBPSEwLG5lPSJidWZmZXIi'@; put 'LGFlPXdlKX12YXIgWmU9bS5vYmplY3RNb2RlPzE6YWUubGVuZ3RoO20ubGVuZ3RoKz1aZTt2YXIgUWU9bS5sZW5ndGg8bS5oaWdoV2F0ZXJNYXJrO2lmKFFlfHwobS5uZWVkRHJhaW49ITApLG0ud3JpdGluZ3x8bS5jb3JrZWQpe3ZhciBhdD1tLmxhc3RCdWZmZXJlZFJlcXVlc3Q7bS5sYXN0'@; put 'QnVmZmVyZWRSZXF1ZXN0PXtjaHVuazphZSxlbmNvZGluZzpuZSxpc0J1ZjpBLGNhbGxiYWNrOmxlLG5leHQ6bnVsbH0sYXQ/YXQubmV4dD1tLmxhc3RCdWZmZXJlZFJlcXVlc3Q6bS5idWZmZXJlZFJlcXVlc3Q9bS5sYXN0QnVmZmVyZWRSZXF1ZXN0LG0uYnVmZmVyZWRSZXF1ZXN0Q291bnQr'@; put 'PTF9ZWxzZSBnZShFLG0sITEsWmUsYWUsbmUsbGUpO3JldHVybiBRZX0odGhpcyxhZSxsZSxFLG0sQSkpLG5lfSxRLnByb3RvdHlwZS5jb3JrPWZ1bmN0aW9uKCl7dGhpcy5fd3JpdGFibGVTdGF0ZS5jb3JrZWQrK30sUS5wcm90b3R5cGUudW5jb3JrPWZ1bmN0aW9uKCl7dmFyIEU9dGhpcy5f'@; put 'd3JpdGFibGVTdGF0ZTtFLmNvcmtlZCYmKEUuY29ya2VkLS0sIUUud3JpdGluZyYmIUUuY29ya2VkJiYhRS5idWZmZXJQcm9jZXNzaW5nJiZFLmJ1ZmZlcmVkUmVxdWVzdCYmZyh0aGlzLEUpKX0sUS5wcm90b3R5cGUuc2V0RGVmYXVsdEVuY29kaW5nPWZ1bmN0aW9uKG0pe2lmKCJzdHJpbmci'@; put 'PT10eXBlb2YgbSYmKG09bS50b0xvd2VyQ2FzZSgpKSwhKFsiaGV4IiwidXRmOCIsInV0Zi04IiwiYXNjaWkiLCJiaW5hcnkiLCJiYXNlNjQiLCJ1Y3MyIiwidWNzLTIiLCJ1dGYxNmxlIiwidXRmLTE2bGUiLCJyYXciXS5pbmRleE9mKChtKyIiKS50b0xvd2VyQ2FzZSgpKT4tMSkpdGhyb3cg'@; put 'bmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIittKTtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5kZWZhdWx0RW5jb2Rpbmc9bSx0aGlzfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUS5wcm90b3R5cGUsIndyaXRhYmxlSGlnaFdhdGVyTWFyayIse2VudW1lcmFibGU6ITEsZ2V0'@; put 'OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUuaGlnaFdhdGVyTWFya319KSxRLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24oRSxtLEEpe0EobmV3IEVycm9yKCJfd3JpdGUoKSBpcyBub3QgaW1wbGVtZW50ZWQiKSl9LFEucHJvdG90eXBlLl93cml0ZXY9bnVsbCxRLnBy'@; put 'b3RvdHlwZS5lbmQ9ZnVuY3Rpb24oRSxtLEEpe3ZhciBhZT10aGlzLl93cml0YWJsZVN0YXRlOyJmdW5jdGlvbiI9PXR5cGVvZiBFPyhBPUUsRT1udWxsLG09bnVsbCk6ImZ1bmN0aW9uIj09dHlwZW9mIG0mJihBPW0sbT1udWxsKSxudWxsIT1FJiZ0aGlzLndyaXRlKEUsbSksYWUuY29ya2Vk'@; put 'JiYoYWUuY29ya2VkPTEsdGhpcy51bmNvcmsoKSksYWUuZW5kaW5nfHxmdW5jdGlvbiBWKEUsbSxBKXttLmVuZGluZz0hMCxUKEUsbSksQSYmKG0uZmluaXNoZWQ/RC5uZXh0VGljayhBKTpFLm9uY2UoImZpbmlzaCIsQSkpLG0uZW5kZWQ9ITAsRS53cml0YWJsZT0hMX0odGhpcyxhZSxBKX0s'@; put 'T2JqZWN0LmRlZmluZVByb3BlcnR5KFEucHJvdG90eXBlLCJkZXN0cm95ZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWR9LHNldDpmdW5jdGlvbihFKXt0aGlzLl93cml0YWJsZVN0YXRl'@; put 'JiYodGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9RSl9fSksUS5wcm90b3R5cGUuZGVzdHJveT1CLmRlc3Ryb3ksUS5wcm90b3R5cGUuX3VuZGVzdHJveT1CLnVuZGVzdHJveSxRLnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbihFLG0pe3RoaXMuZW5kKCksbShFKX19LDI3ODA5Oihj'@; put 'ZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBfPWIoMjY1NSkuQnVmZmVyLHA9YigxNTM0MCk7ZnVuY3Rpb24gTih3LEYsSCl7dy5jb3B5KEYsSCl9Y2UuZXhwb3J0cz1mdW5jdGlvbigpe2Z1bmN0aW9uIHcoKXsoZnVuY3Rpb24gRCh3LEYpe2lmKCEodyBpbnN0YW5jZW9mIEYpKXRocm93IG5l'@; put 'dyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyx3KSx0aGlzLmhlYWQ9bnVsbCx0aGlzLnRhaWw9bnVsbCx0aGlzLmxlbmd0aD0wfXJldHVybiB3LnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKEgpe3ZhciBSPXtkYXRhOkgsbmV4dDpudWxsfTt0'@; put 'aGlzLmxlbmd0aD4wP3RoaXMudGFpbC5uZXh0PVI6dGhpcy5oZWFkPVIsdGhpcy50YWlsPVIsKyt0aGlzLmxlbmd0aH0sdy5wcm90b3R5cGUudW5zaGlmdD1mdW5jdGlvbihIKXt2YXIgUj17ZGF0YTpILG5leHQ6dGhpcy5oZWFkfTswPT09dGhpcy5sZW5ndGgmJih0aGlzLnRhaWw9UiksdGhp'@; put 'cy5oZWFkPVIsKyt0aGlzLmxlbmd0aH0sdy5wcm90b3R5cGUuc2hpZnQ9ZnVuY3Rpb24oKXtpZigwIT09dGhpcy5sZW5ndGgpe3ZhciBIPXRoaXMuaGVhZC5kYXRhO3JldHVybiB0aGlzLmhlYWQ9MT09PXRoaXMubGVuZ3RoP3RoaXMudGFpbD1udWxsOnRoaXMuaGVhZC5uZXh0LC0tdGhpcy5s'@; put 'ZW5ndGgsSH19LHcucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5oZWFkPXRoaXMudGFpbD1udWxsLHRoaXMubGVuZ3RoPTB9LHcucHJvdG90eXBlLmpvaW49ZnVuY3Rpb24oSCl7aWYoMD09PXRoaXMubGVuZ3RoKXJldHVybiIiO2Zvcih2YXIgUj10aGlzLmhlYWQsaj0iIitSLmRh'@; put 'dGE7Uj1SLm5leHQ7KWorPUgrUi5kYXRhO3JldHVybiBqfSx3LnByb3RvdHlwZS5jb25jYXQ9ZnVuY3Rpb24oSCl7aWYoMD09PXRoaXMubGVuZ3RoKXJldHVybiBfLmFsbG9jKDApO2Zvcih2YXIgUj1fLmFsbG9jVW5zYWZlKEg+Pj4wKSxqPXRoaXMuaGVhZCxQPTA7ajspTihqLmRhdGEsUixQ'@; put 'KSxQKz1qLmRhdGEubGVuZ3RoLGo9ai5uZXh0O3JldHVybiBSfSx3fSgpLHAmJnAuaW5zcGVjdCYmcC5pbnNwZWN0LmN1c3RvbSYmKGNlLmV4cG9ydHMucHJvdG90eXBlW3AuaW5zcGVjdC5jdXN0b21dPWZ1bmN0aW9uKCl7dmFyIHc9cC5pbnNwZWN0KHtsZW5ndGg6dGhpcy5sZW5ndGh9KTty'@; put 'ZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lKyIgIit3fSl9LDIxNTA5OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoOTY1Nik7ZnVuY3Rpb24gTih3LEYpe3cuZW1pdCgiZXJyb3IiLEYpfWNlLmV4cG9ydHM9e2Rlc3Ryb3k6ZnVuY3Rpb24gXyh3LEYpe3ZhciBIPXRoaXM7cmV0'@; put 'dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkfHx0aGlzLl93cml0YWJsZVN0YXRlJiZ0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD8oRj9GKHcpOncmJih0aGlzLl93cml0YWJsZVN0YXRlP3RoaXMuX3dyaXRhYmxlU3RhdGUuZXJyb3JF'@; put 'bWl0dGVkfHwodGhpcy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAsRC5uZXh0VGljayhOLHRoaXMsdykpOkQubmV4dFRpY2soTix0aGlzLHcpKSx0aGlzKToodGhpcy5fcmVhZGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkPSEwKSx0aGlzLl93cml0YWJs'@; put 'ZVN0YXRlJiYodGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITApLHRoaXMuX2Rlc3Ryb3kod3x8bnVsbCxmdW5jdGlvbihQKXshRiYmUD9ILl93cml0YWJsZVN0YXRlP0guX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkfHwoSC5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAs'@; put 'RC5uZXh0VGljayhOLEgsUCkpOkQubmV4dFRpY2soTixILFApOkYmJkYoUCl9KSx0aGlzKX0sdW5kZXN0cm95OmZ1bmN0aW9uIHAoKXt0aGlzLl9yZWFkYWJsZVN0YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITEsdGhpcy5fcmVhZGFibGVTdGF0ZS5yZWFkaW5nPSExLHRo'@; put 'aXMuX3JlYWRhYmxlU3RhdGUuZW5kZWQ9ITEsdGhpcy5fcmVhZGFibGVTdGF0ZS5lbmRFbWl0dGVkPSExKSx0aGlzLl93cml0YWJsZVN0YXRlJiYodGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5lbmRlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRl'@; put 'LmVuZGluZz0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmZpbmFsQ2FsbGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUucHJlZmluaXNoZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5maW5pc2hlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMSl9fX0sMTgzNDI6KGNlLEos'@; put 'Yik9PntjZS5leHBvcnRzPWIoNDQzNTYpLkV2ZW50RW1pdHRlcn0sMjY1NTooY2UsSixiKT0+e3ZhciBEPWIoODM4MzgpLF89RC5CdWZmZXI7ZnVuY3Rpb24gcCh3LEYpe2Zvcih2YXIgSCBpbiB3KUZbSF09d1tIXX1mdW5jdGlvbiBOKHcsRixIKXtyZXR1cm4gXyh3LEYsSCl9Xy5mcm9tJiZf'@; put 'LmFsbG9jJiZfLmFsbG9jVW5zYWZlJiZfLmFsbG9jVW5zYWZlU2xvdz9jZS5leHBvcnRzPUQ6KHAoRCxKKSxKLkJ1ZmZlcj1OKSxwKF8sTiksTi5mcm9tPWZ1bmN0aW9uKHcsRixIKXtpZigibnVtYmVyIj09dHlwZW9mIHcpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBub3Qg'@; put 'YmUgYSBudW1iZXIiKTtyZXR1cm4gXyh3LEYsSCl9LE4uYWxsb2M9ZnVuY3Rpb24odyxGLEgpe2lmKCJudW1iZXIiIT10eXBlb2Ygdyl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7dmFyIFI9Xyh3KTtyZXR1cm4gdm9pZCAwIT09Rj8ic3RyaW5nIj09'@; put 'dHlwZW9mIEg/Ui5maWxsKEYsSCk6Ui5maWxsKEYpOlIuZmlsbCgwKSxSfSxOLmFsbG9jVW5zYWZlPWZ1bmN0aW9uKHcpe2lmKCJudW1iZXIiIT10eXBlb2Ygdyl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuIF8odyl9LE4uYWxsb2NVbnNh'@; put 'ZmVTbG93PWZ1bmN0aW9uKHcpe2lmKCJudW1iZXIiIT10eXBlb2Ygdyl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuIEQuU2xvd0J1ZmZlcih3KX19LDU5NDI6KGNlLEosYik9PnsoSj1jZS5leHBvcnRzPWIoMTk2MDkpKS5TdHJlYW09SixK'@; put 'LlJlYWRhYmxlPUosSi5Xcml0YWJsZT1iKDQ3ODQ5KSxKLkR1cGxleD1iKDc0MDc1KSxKLlRyYW5zZm9ybT1iKDI5MDkpLEouUGFzc1Rocm91Z2g9YigxODgyMyl9LDM2NjM2OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoODM4MzgpLkJ1ZmZlcixfPWIoNzE5OTMpLHA9YigxMzY4'@; put 'NiksTj1uZXcgQXJyYXkoMTYpLHc9WzAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsNyw0LDEzLDEsMTAsNiwxNSwzLDEyLDAsOSw1LDIsMTQsMTEsOCwzLDEwLDE0LDQsOSwxNSw4LDEsMiw3LDAsNiwxMywxMSw1LDEyLDEsOSwxMSwxMCwwLDgsMTIsNCwxMywzLDcsMTUs'@; put 'MTQsNSw2LDIsNCwwLDUsOSw3LDEyLDIsMTAsMTQsMSwzLDgsMTEsNiwxNSwxM10sRj1bNSwxNCw3LDAsOSwyLDExLDQsMTMsNiwxNSw4LDEsMTAsMywxMiw2LDExLDMsNywwLDEzLDUsMTAsMTQsMTUsOCwxMiw0LDksMSwyLDE1LDUsMSwzLDcsMTQsNiw5LDExLDgsMTIsMiwxMCwwLDQsMTMs'@; put 'OCw2LDQsMSwzLDExLDE1LDAsNSwxMiwyLDEzLDksNywxMCwxNCwxMiwxNSwxMCw0LDEsNSw4LDcsNiwyLDEzLDE0LDAsMyw5LDExXSxIPVsxMSwxNCwxNSwxMiw1LDgsNyw5LDExLDEzLDE0LDE1LDYsNyw5LDgsNyw2LDgsMTMsMTEsOSw3LDE1LDcsMTIsMTUsOSwxMSw3LDEzLDEyLDExLDEz'@; put 'LDYsNywxNCw5LDEzLDE1LDE0LDgsMTMsNiw1LDEyLDcsNSwxMSwxMiwxNCwxNSwxNCwxNSw5LDgsOSwxNCw1LDYsOCw2LDUsMTIsOSwxNSw1LDExLDYsOCwxMywxMiw1LDEyLDEzLDE0LDExLDgsNSw2XSxSPVs4LDksOSwxMSwxMywxNSwxNSw1LDcsNyw4LDExLDE0LDE0LDEyLDYsOSwxMywx'@; put 'NSw3LDEyLDgsOSwxMSw3LDcsMTIsNyw2LDE1LDEzLDExLDksNywxNSwxMSw4LDYsNiwxNCwxMiwxMyw1LDE0LDEzLDEzLDcsNSwxNSw1LDgsMTEsMTQsMTQsNiwxNCw2LDksMTIsOSwxMiw1LDE1LDgsOCw1LDEyLDksMTIsNSwxNCw2LDgsMTMsNiw1LDE1LDEzLDExLDExXSxqPVswLDE1MTg1'@; put 'MDAyNDksMTg1OTc3NTM5MywyNDAwOTU5NzA4LDI4NDA4NTM4MzhdLFA9WzEzNTI4Mjk5MjYsMTU0ODYwMzY4NCwxODM2MDcyNjkxLDIwNTM5OTQyMTcsMF07ZnVuY3Rpb24gTCgpe3AuY2FsbCh0aGlzLDY0KSx0aGlzLl9hPTE3MzI1ODQxOTMsdGhpcy5fYj00MDIzMjMzNDE3LHRoaXMuX2M9'@; put 'MjU2MjM4MzEwMix0aGlzLl9kPTI3MTczMzg3OCx0aGlzLl9lPTMyODUzNzc1MjB9ZnVuY3Rpb24gWShxLHRlKXtyZXR1cm4gcTw8dGV8cT4+PjMyLXRlfWZ1bmN0aW9uIEIocSx0ZSxpZSxzZSxnZSxfZSxUZSxTZSl7cmV0dXJuIFkocSsodGVeaWVec2UpK19lK1RlfDAsU2UpK2dlfDB9ZnVu'@; put 'Y3Rpb24gVyhxLHRlLGllLHNlLGdlLF9lLFRlLFNlKXtyZXR1cm4gWShxKyh0ZSZpZXx+dGUmc2UpK19lK1RlfDAsU2UpK2dlfDB9ZnVuY3Rpb24gWihxLHRlLGllLHNlLGdlLF9lLFRlLFNlKXtyZXR1cm4gWShxKygodGV8fmllKV5zZSkrX2UrVGV8MCxTZSkrZ2V8MH1mdW5jdGlvbiBYKHEs'@; put 'dGUsaWUsc2UsZ2UsX2UsVGUsU2Upe3JldHVybiBZKHErKHRlJnNlfGllJn5zZSkrX2UrVGV8MCxTZSkrZ2V8MH1mdW5jdGlvbiBRKHEsdGUsaWUsc2UsZ2UsX2UsVGUsU2Upe3JldHVybiBZKHErKHRlXihpZXx+c2UpKStfZStUZXwwLFNlKStnZXwwfV8oTCxwKSxMLnByb3RvdHlwZS5fdXBk'@; put 'YXRlPWZ1bmN0aW9uKCl7Zm9yKHZhciBxPU4sdGU9MDt0ZTwxNjsrK3RlKXFbdGVdPXRoaXMuX2Jsb2NrLnJlYWRJbnQzMkxFKDQqdGUpO2Zvcih2YXIgaWU9MHx0aGlzLl9hLHNlPTB8dGhpcy5fYixnZT0wfHRoaXMuX2MsX2U9MHx0aGlzLl9kLFRlPTB8dGhpcy5fZSxTZT0wfHRoaXMuX2Es'@; put 'emU9MHx0aGlzLl9iLHo9MHx0aGlzLl9jLGc9MHx0aGlzLl9kLHk9MHx0aGlzLl9lLHg9MDt4PDgwO3grPTEpe3ZhciBDLFQ7eDwxNj8oQz1CKGllLHNlLGdlLF9lLFRlLHFbd1t4XV0salswXSxIW3hdKSxUPVEoU2UsemUseixnLHkscVtGW3hdXSxQWzBdLFJbeF0pKTp4PDMyPyhDPVcoaWUs'@; put 'c2UsZ2UsX2UsVGUscVt3W3hdXSxqWzFdLEhbeF0pLFQ9WChTZSx6ZSx6LGcseSxxW0ZbeF1dLFBbMV0sUlt4XSkpOng8NDg/KEM9WihpZSxzZSxnZSxfZSxUZSxxW3dbeF1dLGpbMl0sSFt4XSksVD1aKFNlLHplLHosZyx5LHFbRlt4XV0sUFsyXSxSW3hdKSk6eDw2ND8oQz1YKGllLHNlLGdl'@; put 'LF9lLFRlLHFbd1t4XV0salszXSxIW3hdKSxUPVcoU2UsemUseixnLHkscVtGW3hdXSxQWzNdLFJbeF0pKTooQz1RKGllLHNlLGdlLF9lLFRlLHFbd1t4XV0sals0XSxIW3hdKSxUPUIoU2UsemUseixnLHkscVtGW3hdXSxQWzRdLFJbeF0pKSxpZT1UZSxUZT1fZSxfZT1ZKGdlLDEwKSxnZT1z'@; put 'ZSxzZT1DLFNlPXkseT1nLGc9WSh6LDEwKSx6PXplLHplPVR9dmFyIFY9dGhpcy5fYitnZStnfDA7dGhpcy5fYj10aGlzLl9jK19lK3l8MCx0aGlzLl9jPXRoaXMuX2QrVGUrU2V8MCx0aGlzLl9kPXRoaXMuX2UraWUremV8MCx0aGlzLl9lPXRoaXMuX2Erc2UrenwwLHRoaXMuX2E9Vn0sTC5w'@; put 'cm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbigpe3RoaXMuX2Jsb2NrW3RoaXMuX2Jsb2NrT2Zmc2V0KytdPTEyOCx0aGlzLl9ibG9ja09mZnNldD41NiYmKHRoaXMuX2Jsb2NrLmZpbGwoMCx0aGlzLl9ibG9ja09mZnNldCw2NCksdGhpcy5fdXBkYXRlKCksdGhpcy5fYmxvY2tPZmZzZXQ9MCks'@; put 'dGhpcy5fYmxvY2suZmlsbCgwLHRoaXMuX2Jsb2NrT2Zmc2V0LDU2KSx0aGlzLl9ibG9jay53cml0ZVVJbnQzMkxFKHRoaXMuX2xlbmd0aFswXSw1NiksdGhpcy5fYmxvY2sud3JpdGVVSW50MzJMRSh0aGlzLl9sZW5ndGhbMV0sNjApLHRoaXMuX3VwZGF0ZSgpO3ZhciBxPUQuYWxsb2M/RC5h'@; put 'bGxvYygyMCk6bmV3IEQoMjApO3JldHVybiBxLndyaXRlSW50MzJMRSh0aGlzLl9hLDApLHEud3JpdGVJbnQzMkxFKHRoaXMuX2IsNCkscS53cml0ZUludDMyTEUodGhpcy5fYyw4KSxxLndyaXRlSW50MzJMRSh0aGlzLl9kLDEyKSxxLndyaXRlSW50MzJMRSh0aGlzLl9lLDE2KSxxfSxjZS5l'@; put 'eHBvcnRzPUx9LDI3MDU0OihjZSxKLGIpPT57dmFyIEQ9Yig4MzgzOCksXz1ELkJ1ZmZlcjtmdW5jdGlvbiBwKHcsRil7Zm9yKHZhciBIIGluIHcpRltIXT13W0hdfWZ1bmN0aW9uIE4odyxGLEgpe3JldHVybiBfKHcsRixIKX1fLmZyb20mJl8uYWxsb2MmJl8uYWxsb2NVbnNhZmUmJl8uYWxs'@; put 'b2NVbnNhZmVTbG93P2NlLmV4cG9ydHM9RDoocChELEopLEouQnVmZmVyPU4pLE4ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoXy5wcm90b3R5cGUpLHAoXyxOKSxOLmZyb209ZnVuY3Rpb24odyxGLEgpe2lmKCJudW1iZXIiPT10eXBlb2Ygdyl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVu'@; put 'dCBtdXN0IG5vdCBiZSBhIG51bWJlciIpO3JldHVybiBfKHcsRixIKX0sTi5hbGxvYz1mdW5jdGlvbih3LEYsSCl7aWYoIm51bWJlciIhPXR5cGVvZiB3KXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTt2YXIgUj1fKHcpO3JldHVybiB2b2lkIDAhPT1G'@; put 'PyJzdHJpbmciPT10eXBlb2YgSD9SLmZpbGwoRixIKTpSLmZpbGwoRik6Ui5maWxsKDApLFJ9LE4uYWxsb2NVbnNhZmU9ZnVuY3Rpb24odyl7aWYoIm51bWJlciIhPXR5cGVvZiB3KXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gXyh3KX0s'@; put 'Ti5hbGxvY1Vuc2FmZVNsb3c9ZnVuY3Rpb24odyl7aWYoIm51bWJlciIhPXR5cGVvZiB3KXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gRC5TbG93QnVmZmVyKHcpfX0sOTM4MDc6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIE4sRD1i'@; put 'KDgzODM4KSxfPUQuQnVmZmVyLHA9e307Zm9yKE4gaW4gRClELmhhc093blByb3BlcnR5KE4pJiYoIlNsb3dCdWZmZXIiPT09Tnx8IkJ1ZmZlciI9PT1OfHwocFtOXT1EW05dKSk7dmFyIHc9cC5CdWZmZXI9e307Zm9yKE4gaW4gXylfLmhhc093blByb3BlcnR5KE4pJiYoImFsbG9jVW5zYWZl'@; put 'Ij09PU58fCJhbGxvY1Vuc2FmZVNsb3ciPT09Tnx8KHdbTl09X1tOXSkpO2lmKHAuQnVmZmVyLnByb3RvdHlwZT1fLnByb3RvdHlwZSwoIXcuZnJvbXx8dy5mcm9tPT09VWludDhBcnJheS5mcm9tKSYmKHcuZnJvbT1mdW5jdGlvbihGLEgsUil7aWYoIm51bWJlciI9PXR5cGVvZiBGKXRocm93'@; put 'IG5ldyBUeXBlRXJyb3IoJ1RoZSAidmFsdWUiIGFyZ3VtZW50IG11c3Qgbm90IGJlIG9mIHR5cGUgbnVtYmVyLiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIEYpO2lmKEYmJnR5cGVvZiBGLmxlbmd0aD4idSIpdGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUg'@; put 'b25lIG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgb3IgQXJyYXktbGlrZSBPYmplY3QuIFJlY2VpdmVkIHR5cGUgIit0eXBlb2YgRik7cmV0dXJuIF8oRixILFIpfSksdy5hbGxvY3x8KHcuYWxsb2M9ZnVuY3Rpb24oRixILFIpe2lmKCJudW1iZXIiIT10eXBl'@; put 'b2YgRil0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInNpemUiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBudW1iZXIuIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2YgRik7aWYoRjwwfHxGPj0yKigxPDwzMCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSAiJytGKyciIGlzIGludmFs'@; put 'aWQgZm9yIG9wdGlvbiAic2l6ZSInKTt2YXIgaj1fKEYpO3JldHVybiBIJiYwIT09SC5sZW5ndGg/InN0cmluZyI9PXR5cGVvZiBSP2ouZmlsbChILFIpOmouZmlsbChIKTpqLmZpbGwoMCksan0pLCFwLmtTdHJpbmdNYXhMZW5ndGgpdHJ5e3Aua1N0cmluZ01heExlbmd0aD1wcm9jZXNzLmJp'@; put 'bmRpbmcoImJ1ZmZlciIpLmtTdHJpbmdNYXhMZW5ndGh9Y2F0Y2h7fXAuY29uc3RhbnRzfHwocC5jb25zdGFudHM9e01BWF9MRU5HVEg6cC5rTWF4TGVuZ3RofSxwLmtTdHJpbmdNYXhMZW5ndGgmJihwLmNvbnN0YW50cy5NQVhfU1RSSU5HX0xFTkdUSD1wLmtTdHJpbmdNYXhMZW5ndGgpKSxj'@; put 'ZS5leHBvcnRzPXB9LDk4MDgzOihjZSxKKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRDshZnVuY3Rpb24oKXt2YXIgXz1KfHx7fTt2b2lkIDAhPT0oRD1mdW5jdGlvbigpe3JldHVybiBffS5hcHBseShKLFtdKSkmJihjZS5leHBvcnRzPUQpLF8uZGVmYXVsdD1fO3ZhciBwPSJodHRwOi8vd3d3Lncz'@; put 'Lm9yZy8yMDAwL3htbG5zLyIsdz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLEg9L3VybFwoWyInXT8oLis/KVsiJ10/XCkvLFI9e3dvZmYyOiJmb250L3dvZmYyIix3b2ZmOiJmb250L3dvZmYiLG90ZjoiYXBwbGljYXRpb24veC1mb250LW9wZW50eXBlIix0dGY6ImFwcGxpY2F0aW9u'@; put 'L3gtZm9udC10dGYiLGVvdDoiYXBwbGljYXRpb24vdm5kLm1zLWZvbnRvYmplY3QiLHNmbnQ6ImFwcGxpY2F0aW9uL2ZvbnQtc2ZudCIsc3ZnOiJpbWFnZS9zdmcreG1sIn0saj1mdW5jdGlvbih5KXtyZXR1cm4geSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50fHx5IGluc3RhbmNlb2YgU1ZHRWxl'@; put 'bWVudH0sUD1mdW5jdGlvbih5KXtpZighaih5KSl0aHJvdyBuZXcgRXJyb3IoImFuIEhUTUxFbGVtZW50IG9yIFNWR0VsZW1lbnQgaXMgcmVxdWlyZWQ7IGdvdCAiK3kpfSxMPWZ1bmN0aW9uKHkpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih4LEMpe2ooeSk/eCh5KTpDKG5ldyBFcnJv'@; put 'cigiYW4gSFRNTEVsZW1lbnQgb3IgU1ZHRWxlbWVudCBpcyByZXF1aXJlZDsgZ290ICIreSkpfSl9LEI9ZnVuY3Rpb24oeSl7dmFyIHg9T2JqZWN0LmtleXMoUikuZmlsdGVyKGZ1bmN0aW9uKEMpe3JldHVybiB5LmluZGV4T2YoIi4iK0MpPjB9KS5tYXAoZnVuY3Rpb24oQyl7cmV0dXJuIFJb'@; put 'Q119KTtyZXR1cm4geD94WzBdOihjb25zb2xlLmVycm9yKCJVbmtub3duIGZvbnQgZm9ybWF0IGZvciAiK3krIi4gRm9udHMgbWF5IG5vdCBiZSB3b3JraW5nIGNvcnJlY3RseS4iKSwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIil9LFo9ZnVuY3Rpb24oeSx4LEMpe3ZhciBUPXkudmlld0Jv'@; put 'eCYmeS52aWV3Qm94LmJhc2VWYWwmJnkudmlld0JveC5iYXNlVmFsW0NdfHxudWxsIT09eC5nZXRBdHRyaWJ1dGUoQykmJiF4LmdldEF0dHJpYnV0ZShDKS5tYXRjaCgvJSQvKSYmcGFyc2VJbnQoeC5nZXRBdHRyaWJ1dGUoQykpfHx5LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpW0NdfHxwYXJz'@; put 'ZUludCh4LnN0eWxlW0NdKXx8cGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUoeSkuZ2V0UHJvcGVydHlWYWx1ZShDKSk7cmV0dXJuIHR5cGVvZiBUPiJ1Inx8bnVsbD09PVR8fGlzTmFOKHBhcnNlRmxvYXQoVCkpPzA6VH0scT1mdW5jdGlvbih5KXtmb3IodmFyIHg9d2luZG93LmF0'@; put 'b2IoeS5zcGxpdCgiLCIpWzFdKSxDPXkuc3BsaXQoIiwiKVswXS5zcGxpdCgiOiIpWzFdLnNwbGl0KCI7IilbMF0sVD1uZXcgQXJyYXlCdWZmZXIoeC5sZW5ndGgpLFY9bmV3IFVpbnQ4QXJyYXkoVCksVT0wO1U8eC5sZW5ndGg7VSsrKVZbVV09eC5jaGFyQ29kZUF0KFUpO3JldHVybiBuZXcg'@; put 'QmxvYihbVF0se3R5cGU6Q30pfSxnZT17fSxUZT1udWxsLHplPWZ1bmN0aW9uKHkseCl7dmFyIEM9eHx8e30sVD1DLnNlbGVjdG9yUmVtYXAsVj1DLm1vZGlmeVN0eWxlLEU9Qy5mb250cyxtPUMuZXhjbHVkZVVudXNlZENzcyxBPUMubW9kaWZ5Q3NzfHxmdW5jdGlvbih3ZSxaZSl7cmV0dXJu'@; put 'KFQ/VCh3ZSk6d2UpKyJ7IisoVj9WKFplKTpaZSkrIn1cbiJ9LGFlPVtdLG5lPXR5cGVvZiBFPiJ1IixsZT1FfHxbXTtyZXR1cm4oVGV8fChUZT1BcnJheS5mcm9tKGRvY3VtZW50LnN0eWxlU2hlZXRzKS5tYXAoZnVuY3Rpb24oeSl7dHJ5e3JldHVybntydWxlczp5LmNzc1J1bGVzLGhyZWY6'@; put 'eS5ocmVmfX1jYXRjaCh4KXtyZXR1cm4gY29uc29sZS53YXJuKCJTdHlsZXNoZWV0IGNvdWxkIG5vdCBiZSBsb2FkZWQ6ICIreS5ocmVmLHgpLHt9fX0pKSkuZm9yRWFjaChmdW5jdGlvbih3ZSl7dmFyIFplPXdlLnJ1bGVzLFFlPXdlLmhyZWY7WmUmJkFycmF5LmZyb20oWmUpLmZvckVhY2go'@; put 'ZnVuY3Rpb24oYXQpe2lmKHR5cGVvZiBhdC5zdHlsZTwidSIpaWYoZnVuY3Rpb24oeSx4KXtpZih4KXRyeXtyZXR1cm4geS5xdWVyeVNlbGVjdG9yKHgpfHx5LnBhcmVudE5vZGUmJnkucGFyZW50Tm9kZS5xdWVyeVNlbGVjdG9yKHgpfWNhdGNoKEMpe2NvbnNvbGUud2FybignSW52YWxpZCBD'@; put 'U1Mgc2VsZWN0b3IgIicreCsnIicsQyl9fSh5LGF0LnNlbGVjdG9yVGV4dCkpYWUucHVzaChBKGF0LnNlbGVjdG9yVGV4dCxhdC5zdHlsZS5jc3NUZXh0KSk7ZWxzZSBpZihuZSYmYXQuY3NzVGV4dC5tYXRjaCgvXkBmb250LWZhY2UvKSl7dmFyIHhlPWZ1bmN0aW9uKHkseCl7dmFyIEM9eS5j'@; put 'c3NUZXh0Lm1hdGNoKEgpLFQ9QyYmQ1sxXXx8IiI7aWYoVCYmIVQubWF0Y2goL15kYXRhOi8pJiYiYWJvdXQ6YmxhbmsiIT09VCl7dmFyIFY9VC5zdGFydHNXaXRoKCIuLi8iKT94KyIvLi4vIitUOlQuc3RhcnRzV2l0aCgiLi8iKT94KyIvLiIrVDpUO3JldHVybnt0ZXh0OnkuY3NzVGV4dCxm'@; put 'b3JtYXQ6QihWKSx1cmw6Vn19fShhdCxRZSk7eGUmJmxlLnB1c2goeGUpfWVsc2UgbXx8YWUucHVzaChhdC5jc3NUZXh0KX0pfSksZnVuY3Rpb24oeSl7cmV0dXJuIFByb21pc2UuYWxsKHkubWFwKGZ1bmN0aW9uKHgpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihDLFQpe2lmKGdlW3gu'@; put 'dXJsXSlyZXR1cm4gQyhnZVt4LnVybF0pO3ZhciBWPW5ldyBYTUxIdHRwUmVxdWVzdDtWLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7dmFyIFU9ZnVuY3Rpb24oeSl7Zm9yKHZhciB4PSIiLEM9bmV3IFVpbnQ4QXJyYXkoeSksVD0wO1Q8Qy5ieXRlTGVuZ3RoO1QrKyl4Kz1T'@; put 'dHJpbmcuZnJvbUNoYXJDb2RlKENbVF0pO3JldHVybiB3aW5kb3cuYnRvYSh4KX0oVi5yZXNwb25zZSksRT14LnRleHQucmVwbGFjZShILCd1cmwoImRhdGE6Jyt4LmZvcm1hdCsiO2Jhc2U2NCwiK1UrJyIpJykrIlxuIjtnZVt4LnVybF09RSxDKEUpfSksVi5hZGRFdmVudExpc3RlbmVyKCJl'@; put 'cnJvciIsZnVuY3Rpb24oVSl7Y29uc29sZS53YXJuKCJGYWlsZWQgdG8gbG9hZCBmb250IGZyb206ICIreC51cmwsVSksZ2VbeC51cmxdPW51bGwsQyhudWxsKX0pLFYuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGZ1bmN0aW9uKFUpe2NvbnNvbGUud2FybigiQWJvcnRlZCBsb2FkaW5nIGZv'@; put 'bnQgZnJvbTogIit4LnVybCxVKSxDKG51bGwpfSksVi5vcGVuKCJHRVQiLHgudXJsKSxWLnJlc3BvbnNlVHlwZT0iYXJyYXlidWZmZXIiLFYuc2VuZCgpfSl9KSkudGhlbihmdW5jdGlvbih4KXtyZXR1cm4geC5maWx0ZXIoZnVuY3Rpb24oQyl7cmV0dXJuIEN9KS5qb2luKCIiKX0pfShsZSku'@; put 'dGhlbihmdW5jdGlvbih3ZSl7cmV0dXJuIGFlLmpvaW4oIlxuIikrd2V9KX0sej1mdW5jdGlvbigpe2lmKCFuYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYiYmISgiZG93bmxvYWQiaW4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpKSlyZXR1cm57cG9wdXA6d2luZG93Lm9wZW4oKX19O18u'@; put 'cHJlcGFyZVN2Zz1mdW5jdGlvbihnLHkseCl7UChnKTt2YXIgQz15fHx7fSxUPUMubGVmdCxWPXZvaWQgMD09PVQ/MDpULFU9Qy50b3AsRT12b2lkIDA9PT1VPzA6VSxtPUMud2lkdGgsQT1DLmhlaWdodCxhZT1DLnNjYWxlLG5lPXZvaWQgMD09PWFlPzE6YWUsbGU9Qy5yZXNwb25zaXZlLHdl'@; put 'PXZvaWQgMCE9PWxlJiZsZSxaZT1DLmV4Y2x1ZGVDc3MsUWU9dm9pZCAwIT09WmUmJlplO3JldHVybiBmdW5jdGlvbih5KXtyZXR1cm4gUHJvbWlzZS5hbGwoQXJyYXkuZnJvbSh5LnF1ZXJ5U2VsZWN0b3JBbGwoImltYWdlIikpLm1hcChmdW5jdGlvbih4KXt2YXIgQz14LmdldEF0dHJpYnV0'@; put 'ZU5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwiaHJlZiIpfHx4LmdldEF0dHJpYnV0ZSgiaHJlZiIpO3JldHVybiBDPyhmdW5jdGlvbih5KXtyZXR1cm4geSYmMD09PXkubGFzdEluZGV4T2YoImh0dHAiLDApJiYtMT09PXkubGFzdEluZGV4T2Yod2luZG93LmxvY2F0aW9uLmhv'@; put 'c3QpfShDKSYmKEMrPSgtMT09PUMuaW5kZXhPZigiPyIpPyI/IjoiJiIpKyJ0PSIrKG5ldyBEYXRlKS52YWx1ZU9mKCkpLG5ldyBQcm9taXNlKGZ1bmN0aW9uKFQsVil7dmFyIFU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksRT1uZXcgSW1hZ2U7RS5jcm9zc09yaWdpbj0iYW5v'@; put 'bnltb3VzIixFLnNyYz1DLEUub25lcnJvcj1mdW5jdGlvbigpe3JldHVybiBWKG5ldyBFcnJvcigiQ291bGQgbm90IGxvYWQgIitDKSl9LEUub25sb2FkPWZ1bmN0aW9uKCl7VS53aWR0aD1FLndpZHRoLFUuaGVpZ2h0PUUuaGVpZ2h0LFUuZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UoRSww'@; put 'LDApLHguc2V0QXR0cmlidXRlTlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCJocmVmIixVLnRvRGF0YVVSTCgiaW1hZ2UvcG5nIikpLFQoITApfX0pKTpQcm9taXNlLnJlc29sdmUobnVsbCl9KSl9KGcpLnRoZW4oZnVuY3Rpb24oKXt2YXIgYXQ9Zy5jbG9uZU5vZGUoITApO2F0'@; put 'LnN0eWxlLmJhY2tncm91bmRDb2xvcj0oeXx8e30pLmJhY2tncm91bmRDb2xvcnx8Zy5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I7dmFyIHhlPWZ1bmN0aW9uKHkseCxDLFQpe2lmKCJzdmciPT09eS50YWdOYW1lKXJldHVybnt3aWR0aDpDfHxaKHkseCwid2lkdGgiKSxoZWlnaHQ6VHx8Wih5LHgs'@; put 'ImhlaWdodCIpfTtpZih5LmdldEJCb3gpe3ZhciBWPXkuZ2V0QkJveCgpO3JldHVybnt3aWR0aDpWLngrVi53aWR0aCxoZWlnaHQ6Vi55K1YuaGVpZ2h0fX19KGcsYXQsbSxBKSx2ZT14ZS53aWR0aCxxZT14ZS5oZWlnaHQ7aWYoInN2ZyIhPT1nLnRhZ05hbWUpe2lmKCFnLmdldEJCb3gpcmV0'@; put 'dXJuIHZvaWQgY29uc29sZS5lcnJvcigiQXR0ZW1wdGVkIHRvIHJlbmRlciBub24tU1ZHIGVsZW1lbnQiLGcpO251bGwhPWF0LmdldEF0dHJpYnV0ZSgidHJhbnNmb3JtIikmJmF0LnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIixhdC5nZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIpLnJlcGxhY2Uo'@; put 'L3RyYW5zbGF0ZVwoLio/XCkvLCIiKSk7dmFyIGplPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJzdmciKTtqZS5hcHBlbmRDaGlsZChhdCksYXQ9amV9aWYoYXQuc2V0QXR0cmlidXRlKCJ2ZXJzaW9uIiwiMS4xIiksYXQuc2V0QXR0cmli'@; put 'dXRlKCJ2aWV3Qm94IixbVixFLHZlLHFlXS5qb2luKCIgIikpLGF0LmdldEF0dHJpYnV0ZSgieG1sbnMiKXx8YXQuc2V0QXR0cmlidXRlTlMocCwieG1sbnMiLHcpLGF0LmdldEF0dHJpYnV0ZSgieG1sbnM6eGxpbmsiKXx8YXQuc2V0QXR0cmlidXRlTlMocCwieG1sbnM6eGxpbmsiLCJodHRw'@; put 'Oi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiksd2U/KGF0LnJlbW92ZUF0dHJpYnV0ZSgid2lkdGgiKSxhdC5yZW1vdmVBdHRyaWJ1dGUoImhlaWdodCIpLGF0LnNldEF0dHJpYnV0ZSgicHJlc2VydmVBc3BlY3RSYXRpbyIsInhNaW5ZTWluIG1lZXQiKSk6KGF0LnNldEF0dHJpYnV0ZSgid2lk'@; put 'dGgiLHZlKm5lKSxhdC5zZXRBdHRyaWJ1dGUoImhlaWdodCIscWUqbmUpKSxBcnJheS5mcm9tKGF0LnF1ZXJ5U2VsZWN0b3JBbGwoImZvcmVpZ25PYmplY3QgPiAqIikpLmZvckVhY2goZnVuY3Rpb24oUmUpe1JlLnNldEF0dHJpYnV0ZU5TKHAsInhtbG5zIiwic3ZnIj09PVJlLnRhZ05hbWU/'@; put 'dzoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIpfSksIVFlKXJldHVybiB6ZShnLHkpLnRoZW4oZnVuY3Rpb24oUmUpe3ZhciBJZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO0llLnNldEF0dHJpYnV0ZSgidHlwZSIsInRleHQvY3NzIiksSWUuaW5uZXJIVE1MPSI8IVtD'@; put 'REFUQVtcbiIrUmUrIlxuXV0+Ijt2YXIgSGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGVmcyIpO0hlLmFwcGVuZENoaWxkKEllKSxhdC5pbnNlcnRCZWZvcmUoSGUsYXQuZmlyc3RDaGlsZCk7dmFyIERlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO0RlLmFwcGVuZENoaWxkKGF0'@; put 'KTt2YXIga2U9RGUuaW5uZXJIVE1MLnJlcGxhY2UoL05TXGQrOmhyZWYvZ2ksJ3htbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bGluazpocmVmJyk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHgpcmV0dXJue3NyYzprZSx3aWR0aDp2ZSxoZWlnaHQ6cWV9O3goa2Us'@; put 'dmUscWUpfSk7dmFyIEFlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO0FlLmFwcGVuZENoaWxkKGF0KTt2YXIgRmU9QWUuaW5uZXJIVE1MO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB4KXJldHVybntzcmM6RmUsd2lkdGg6dmUsaGVpZ2h0OnFlfTt4KEZlLHZlLHFlKX0pfSxfLnN2Z0Fz'@; put 'RGF0YVVyaT1mdW5jdGlvbihnLHkseCl7cmV0dXJuIFAoZyksXy5wcmVwYXJlU3ZnKGcseSkudGhlbihmdW5jdGlvbihDKXt2YXIgVj1DLndpZHRoLFU9Qy5oZWlnaHQsRT0iZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCwiK3dpbmRvdy5idG9hKGZ1bmN0aW9uKHkpe3JldHVybiBkZWNvZGVV'@; put 'UklDb21wb25lbnQoZW5jb2RlVVJJQ29tcG9uZW50KHkpLnJlcGxhY2UoLyUoWzAtOUEtRl17Mn0pL2csZnVuY3Rpb24oeCxDKXt2YXIgVD1TdHJpbmcuZnJvbUNoYXJDb2RlKCIweCIrQyk7cmV0dXJuIiUiPT09VD8iJTI1IjpUfSkpfSgnPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25l'@; put 'PSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCIgWzwhRU5USVRZIG5ic3AgIiYjMTYwOyI+XT4nK0Muc3JjKSk7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9m'@; put 'IHgmJngoRSxWLFUpLEV9KX0sXy5zdmdBc1BuZ1VyaT1mdW5jdGlvbihnLHkseCl7UChnKTt2YXIgQz15fHx7fSxUPUMuZW5jb2RlclR5cGUsVj12b2lkIDA9PT1UPyJpbWFnZS9wbmciOlQsVT1DLmVuY29kZXJPcHRpb25zLEU9dm9pZCAwPT09VT8uODpVLG09Qy5jYW52ZyxBPWZ1bmN0aW9u'@; put 'KG5lKXt2YXIgbGU9bmUuc3JjLHdlPW5lLndpZHRoLFplPW5lLmhlaWdodCxRZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxhdD1RZS5nZXRDb250ZXh0KCIyZCIpLHhlPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxO1FlLndpZHRoPXdlKnhlLFFlLmhlaWdodD1aZSp4ZSxR'@; put 'ZS5zdHlsZS53aWR0aD1RZS53aWR0aCsicHgiLFFlLnN0eWxlLmhlaWdodD1RZS5oZWlnaHQrInB4IixhdC5zZXRUcmFuc2Zvcm0oeGUsMCwwLHhlLDAsMCksbT9tKFFlLGxlKTphdC5kcmF3SW1hZ2UobGUsMCwwKTt2YXIgdmU9dm9pZCAwO3RyeXt2ZT1RZS50b0RhdGFVUkwoVixFKX1jYXRj'@; put 'aChxZSl7aWYodHlwZW9mIFNlY3VyaXR5RXJyb3I8InUiJiZxZSBpbnN0YW5jZW9mIFNlY3VyaXR5RXJyb3J8fCJTZWN1cml0eUVycm9yIj09PXFlLm5hbWUpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigiUmVuZGVyZWQgU1ZHIGltYWdlcyBjYW5ub3QgYmUgZG93bmxvYWRlZCBpbiB0aGlz'@; put 'IGJyb3dzZXIuIik7dGhyb3cgcWV9cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHgmJngodmUsUWUud2lkdGgsUWUuaGVpZ2h0KSxQcm9taXNlLnJlc29sdmUodmUpfTtyZXR1cm4gbT9fLnByZXBhcmVTdmcoZyx5KS50aGVuKEEpOl8uc3ZnQXNEYXRhVXJpKGcseSkudGhlbihmdW5jdGlvbihh'@; put 'ZSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKG5lLGxlKXt2YXIgd2U9bmV3IEltYWdlO3dlLm9ubG9hZD1mdW5jdGlvbigpe3JldHVybiBuZShBKHtzcmM6d2Usd2lkdGg6d2Uud2lkdGgsaGVpZ2h0OndlLmhlaWdodH0pKX0sd2Uub25lcnJvcj1mdW5jdGlvbigpe2xlKCJUaGVyZSB3'@; put 'YXMgYW4gZXJyb3IgbG9hZGluZyB0aGUgZGF0YSBVUkkgYXMgYW4gaW1hZ2Ugb24gdGhlIGZvbGxvd2luZyBTVkdcbiIrd2luZG93LmF0b2IoYWUuc2xpY2UoMjYpKSsiT3BlbiB0aGUgZm9sbG93aW5nIGxpbmsgdG8gc2VlIGJyb3dzZXIncyBkaWFnbm9zaXNcbiIrYWUpfSx3ZS5zcmM9YWV9'@; put 'KX0pfSxfLmRvd25sb2FkPWZ1bmN0aW9uKGcseSx4KXtpZihuYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYiluYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYihxKHkpLGcpO2Vsc2V7dmFyIEM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2lmKCJkb3dubG9hZCJpbiBDKXtDLmRvd25sb2Fk'@; put 'PWcsQy5zdHlsZS5kaXNwbGF5PSJub25lIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKEMpO3RyeXt2YXIgVD1xKHkpLFY9VVJMLmNyZWF0ZU9iamVjdFVSTChUKTtDLmhyZWY9VixDLm9uY2xpY2s9ZnVuY3Rpb24oKXtyZXR1cm4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7'@; put 'cmV0dXJuIFVSTC5yZXZva2VPYmplY3RVUkwoVil9KX19Y2F0Y2goVSl7Y29uc29sZS5lcnJvcihVKSxjb25zb2xlLndhcm4oIkVycm9yIHdoaWxlIGdldHRpbmcgb2JqZWN0IFVSTC4gRmFsbGluZyBiYWNrIHRvIHN0cmluZyBVUkwuIiksQy5ocmVmPXl9Qy5jbGljaygpLGRvY3VtZW50LmJv'@; put 'ZHkucmVtb3ZlQ2hpbGQoQyl9ZWxzZSB4JiZ4LnBvcHVwJiYoeC5wb3B1cC5kb2N1bWVudC50aXRsZT1nLHgucG9wdXAubG9jYXRpb24ucmVwbGFjZSh5KSl9fSxfLnNhdmVTdmc9ZnVuY3Rpb24oZyx5LHgpe3ZhciBDPXooKTtyZXR1cm4gTChnKS50aGVuKGZ1bmN0aW9uKFQpe3JldHVybiBf'@; put 'LnN2Z0FzRGF0YVVyaShULHh8fHt9KX0pLnRoZW4oZnVuY3Rpb24oVCl7cmV0dXJuIF8uZG93bmxvYWQoeSxULEMpfSl9LF8uc2F2ZVN2Z0FzUG5nPWZ1bmN0aW9uKGcseSx4KXt2YXIgQz16KCk7cmV0dXJuIEwoZykudGhlbihmdW5jdGlvbihUKXtyZXR1cm4gXy5zdmdBc1BuZ1VyaShULHh8'@; put 'fHt9KX0pLnRoZW4oZnVuY3Rpb24oVCl7cmV0dXJuIF8uZG93bmxvYWQoeSxULEMpfSl9fSgpfSwzMTM1ODooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDkwMjU4KSxfPWIoOTI3MzYpLHA9YigzNTg2MSkoKSxOPWIoODM3OTgpLHc9Yig0Njc1OCksRj1EKCIlTWF0aC5mbG9vciUi'@; put 'KTtjZS5leHBvcnRzPWZ1bmN0aW9uKFIsail7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFIpdGhyb3cgbmV3IHcoImBmbmAgaXMgbm90IGEgZnVuY3Rpb24iKTtpZigibnVtYmVyIiE9dHlwZW9mIGp8fGo8MHx8aj40Mjk0OTY3Mjk1fHxGKGopIT09ail0aHJvdyBuZXcgdygiYGxlbmd0aGAgbXVz'@; put 'dCBiZSBhIHBvc2l0aXZlIDMyLWJpdCBpbnRlZ2VyIik7dmFyIFA9YXJndW1lbnRzLmxlbmd0aD4yJiYhIWFyZ3VtZW50c1syXSxMPSEwLFk9ITA7aWYoImxlbmd0aCJpbiBSJiZOKXt2YXIgQj1OKFIsImxlbmd0aCIpO0ImJiFCLmNvbmZpZ3VyYWJsZSYmKEw9ITEpLEImJiFCLndyaXRhYmxl'@; put 'JiYoWT0hMSl9cmV0dXJuKEx8fFl8fCFQKSYmKHA/XyhSLCJsZW5ndGgiLGosITAsITApOl8oUiwibGVuZ3RoIixqKSksUn19LDcwNDYzOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMjcwNTQpLkJ1ZmZlcixfPWIoNDEwOTApO2Z1bmN0aW9uIHAoTix3KXt0aGlzLl9ibG9jaz1E'@; put 'LmFsbG9jKE4pLHRoaXMuX2ZpbmFsU2l6ZT13LHRoaXMuX2Jsb2NrU2l6ZT1OLHRoaXMuX2xlbj0wfXAucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihOLHcpe049XyhOLHd8fCJ1dGY4Iik7Zm9yKHZhciBGPXRoaXMuX2Jsb2NrLEg9dGhpcy5fYmxvY2tTaXplLFI9Ti5sZW5ndGgsaj10aGlz'@; put 'Ll9sZW4sUD0wO1A8Ujspe2Zvcih2YXIgTD1qJUgsWT1NYXRoLm1pbihSLVAsSC1MKSxCPTA7QjxZO0IrKylGW0wrQl09TltQK0JdO1ArPVksKGorPVkpJUg9PTAmJnRoaXMuX3VwZGF0ZShGKX1yZXR1cm4gdGhpcy5fbGVuKz1SLHRoaXN9LHAucHJvdG90eXBlLmRpZ2VzdD1mdW5jdGlvbihO'@; put 'KXt2YXIgdz10aGlzLl9sZW4ldGhpcy5fYmxvY2tTaXplO3RoaXMuX2Jsb2NrW3ddPTEyOCx0aGlzLl9ibG9jay5maWxsKDAsdysxKSx3Pj10aGlzLl9maW5hbFNpemUmJih0aGlzLl91cGRhdGUodGhpcy5fYmxvY2spLHRoaXMuX2Jsb2NrLmZpbGwoMCkpO3ZhciBGPTgqdGhpcy5fbGVuO2lm'@; put 'KEY8PTQyOTQ5NjcyOTUpdGhpcy5fYmxvY2sud3JpdGVVSW50MzJCRShGLHRoaXMuX2Jsb2NrU2l6ZS00KTtlbHNle3ZhciBIPSg0Mjk0OTY3Mjk1JkYpPj4+MDt0aGlzLl9ibG9jay53cml0ZVVJbnQzMkJFKChGLUgpLzQyOTQ5NjcyOTYsdGhpcy5fYmxvY2tTaXplLTgpLHRoaXMuX2Jsb2Nr'@; put 'LndyaXRlVUludDMyQkUoSCx0aGlzLl9ibG9ja1NpemUtNCl9dGhpcy5fdXBkYXRlKHRoaXMuX2Jsb2NrKTt2YXIgaj10aGlzLl9oYXNoKCk7cmV0dXJuIE4/ai50b1N0cmluZyhOKTpqfSxwLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJfdXBkYXRlIG11'@; put 'c3QgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3MiKX0sY2UuZXhwb3J0cz1wfSwyNTQ0MzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPWZ1bmN0aW9uKF8pe3ZhciBwPV8udG9Mb3dlckNhc2UoKSxOPWNlLmV4cG9ydHNbcF07aWYoIU4pdGhyb3cgbmV3IEVycm9yKHArIiBp'@; put 'cyBub3Qgc3VwcG9ydGVkICh3ZSBhY2NlcHQgcHVsbCByZXF1ZXN0cykiKTtyZXR1cm4gbmV3IE59LGNlLmV4cG9ydHMuc2hhPWIoNDg1ODUpLGNlLmV4cG9ydHMuc2hhMT1iKDIxMjcwKSxjZS5leHBvcnRzLnNoYTIyND1iKDQyNzA5KSxjZS5leHBvcnRzLnNoYTI1Nj1iKDMyMTQ4KSxjZS5l'@; put 'eHBvcnRzLnNoYTM4ND1iKDUxODU2KSxjZS5leHBvcnRzLnNoYTUxMj1iKDMxMjEpfSw0ODU4NTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDcxOTkzKSxfPWIoNzA0NjMpLHA9YigyNzA1NCkuQnVmZmVyLE49WzE1MTg1MDAyNDksMTg1OTc3NTM5MywtMTg5NDAwNzU4OCwtODk5'@; put 'NDk3NTE0XSx3PW5ldyBBcnJheSg4MCk7ZnVuY3Rpb24gRigpe3RoaXMuaW5pdCgpLHRoaXMuX3c9dyxfLmNhbGwodGhpcyw2NCw1Nil9ZnVuY3Rpb24gSChQKXtyZXR1cm4gUDw8NXxQPj4+Mjd9ZnVuY3Rpb24gUihQKXtyZXR1cm4gUDw8MzB8UD4+PjJ9ZnVuY3Rpb24gaihQLEwsWSxCKXty'@; put 'ZXR1cm4gMD09PVA/TCZZfH5MJkI6Mj09PVA/TCZZfEwmQnxZJkI6TF5ZXkJ9RChGLF8pLEYucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0xNzMyNTg0MTkzLHRoaXMuX2I9NDAyMzIzMzQxNyx0aGlzLl9jPTI1NjIzODMxMDIsdGhpcy5fZD0yNzE3MzM4NzgsdGhp'@; put 'cy5fZT0zMjg1Mzc3NTIwLHRoaXN9LEYucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oUCl7Zm9yKHZhciBMPXRoaXMuX3csWT0wfHRoaXMuX2EsQj0wfHRoaXMuX2IsVz0wfHRoaXMuX2MsWj0wfHRoaXMuX2QsWD0wfHRoaXMuX2UsUT0wO1E8MTY7KytRKUxbUV09UC5yZWFkSW50MzJCRSg0'@; put 'KlEpO2Zvcig7UTw4MDsrK1EpTFtRXT1MW1EtM11eTFtRLThdXkxbUS0xNF1eTFtRLTE2XTtmb3IodmFyIHE9MDtxPDgwOysrcSl7dmFyIHRlPX5+KHEvMjApLGllPUgoWSkraih0ZSxCLFcsWikrWCtMW3FdK05bdGVdfDA7WD1aLFo9VyxXPVIoQiksQj1ZLFk9aWV9dGhpcy5fYT1ZK3RoaXMu'@; put 'X2F8MCx0aGlzLl9iPUIrdGhpcy5fYnwwLHRoaXMuX2M9Vyt0aGlzLl9jfDAsdGhpcy5fZD1aK3RoaXMuX2R8MCx0aGlzLl9lPVgrdGhpcy5fZXwwfSxGLnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciBQPXAuYWxsb2NVbnNhZmUoMjApO3JldHVybiBQLndyaXRlSW50MzJCRSgwfHRo'@; put 'aXMuX2EsMCksUC53cml0ZUludDMyQkUoMHx0aGlzLl9iLDQpLFAud3JpdGVJbnQzMkJFKDB8dGhpcy5fYyw4KSxQLndyaXRlSW50MzJCRSgwfHRoaXMuX2QsMTIpLFAud3JpdGVJbnQzMkJFKDB8dGhpcy5fZSwxNiksUH0sY2UuZXhwb3J0cz1GfSwyMTI3MDooY2UsSixiKT0+eyJ1c2Ugc3Ry'@; put 'aWN0Ijt2YXIgRD1iKDcxOTkzKSxfPWIoNzA0NjMpLHA9YigyNzA1NCkuQnVmZmVyLE49WzE1MTg1MDAyNDksMTg1OTc3NTM5MywtMTg5NDAwNzU4OCwtODk5NDk3NTE0XSx3PW5ldyBBcnJheSg4MCk7ZnVuY3Rpb24gRigpe3RoaXMuaW5pdCgpLHRoaXMuX3c9dyxfLmNhbGwodGhpcyw2NCw1'@; put 'Nil9ZnVuY3Rpb24gSChMKXtyZXR1cm4gTDw8MXxMPj4+MzF9ZnVuY3Rpb24gUihMKXtyZXR1cm4gTDw8NXxMPj4+Mjd9ZnVuY3Rpb24gaihMKXtyZXR1cm4gTDw8MzB8TD4+PjJ9ZnVuY3Rpb24gUChMLFksQixXKXtyZXR1cm4gMD09PUw/WSZCfH5ZJlc6Mj09PUw/WSZCfFkmV3xCJlc6WV5C'@; put 'Xld9RChGLF8pLEYucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0xNzMyNTg0MTkzLHRoaXMuX2I9NDAyMzIzMzQxNyx0aGlzLl9jPTI1NjIzODMxMDIsdGhpcy5fZD0yNzE3MzM4NzgsdGhpcy5fZT0zMjg1Mzc3NTIwLHRoaXN9LEYucHJvdG90eXBlLl91cGRhdGU9'@; put 'ZnVuY3Rpb24oTCl7Zm9yKHZhciBZPXRoaXMuX3csQj0wfHRoaXMuX2EsVz0wfHRoaXMuX2IsWj0wfHRoaXMuX2MsWD0wfHRoaXMuX2QsUT0wfHRoaXMuX2UscT0wO3E8MTY7KytxKVlbcV09TC5yZWFkSW50MzJCRSg0KnEpO2Zvcig7cTw4MDsrK3EpWVtxXT1IKFlbcS0zXV5ZW3EtOF1eWVtx'@; put 'LTE0XV5ZW3EtMTZdKTtmb3IodmFyIHRlPTA7dGU8ODA7Kyt0ZSl7dmFyIGllPX5+KHRlLzIwKSxzZT1SKEIpK1AoaWUsVyxaLFgpK1ErWVt0ZV0rTltpZV18MDtRPVgsWD1aLFo9aihXKSxXPUIsQj1zZX10aGlzLl9hPUIrdGhpcy5fYXwwLHRoaXMuX2I9Vyt0aGlzLl9ifDAsdGhpcy5fYz1a'@; put 'K3RoaXMuX2N8MCx0aGlzLl9kPVgrdGhpcy5fZHwwLHRoaXMuX2U9USt0aGlzLl9lfDB9LEYucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIEw9cC5hbGxvY1Vuc2FmZSgyMCk7cmV0dXJuIEwud3JpdGVJbnQzMkJFKDB8dGhpcy5fYSwwKSxMLndyaXRlSW50MzJCRSgwfHRoaXMuX2Is'@; put 'NCksTC53cml0ZUludDMyQkUoMHx0aGlzLl9jLDgpLEwud3JpdGVJbnQzMkJFKDB8dGhpcy5fZCwxMiksTC53cml0ZUludDMyQkUoMHx0aGlzLl9lLDE2KSxMfSxjZS5leHBvcnRzPUZ9LDQyNzA5OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNzE5OTMpLF89YigzMjE0OCkscD1i'@; put 'KDcwNDYzKSxOPWIoMjcwNTQpLkJ1ZmZlcix3PW5ldyBBcnJheSg2NCk7ZnVuY3Rpb24gRigpe3RoaXMuaW5pdCgpLHRoaXMuX3c9dyxwLmNhbGwodGhpcyw2NCw1Nil9RChGLF8pLEYucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0zMjM4MzcxMDMyLHRoaXMuX2I9'@; put 'OTE0MTUwNjYzLHRoaXMuX2M9ODEyNzAyOTk5LHRoaXMuX2Q9NDE0NDkxMjY5Nyx0aGlzLl9lPTQyOTA3NzU4NTcsdGhpcy5fZj0xNzUwNjAzMDI1LHRoaXMuX2c9MTY5NDA3NjgzOSx0aGlzLl9oPTMyMDQwNzU0MjgsdGhpc30sRi5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgSD1O'@; put 'LmFsbG9jVW5zYWZlKDI4KTtyZXR1cm4gSC53cml0ZUludDMyQkUodGhpcy5fYSwwKSxILndyaXRlSW50MzJCRSh0aGlzLl9iLDQpLEgud3JpdGVJbnQzMkJFKHRoaXMuX2MsOCksSC53cml0ZUludDMyQkUodGhpcy5fZCwxMiksSC53cml0ZUludDMyQkUodGhpcy5fZSwxNiksSC53cml0ZUlu'@; put 'dDMyQkUodGhpcy5fZiwyMCksSC53cml0ZUludDMyQkUodGhpcy5fZywyNCksSH0sY2UuZXhwb3J0cz1GfSwzMjE0ODooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDcxOTkzKSxfPWIoNzA0NjMpLHA9YigyNzA1NCkuQnVmZmVyLE49WzExMTYzNTI0MDgsMTg5OTQ0NzQ0MSwzMDQ5'@; put 'MzIzNDcxLDM5MjEwMDk1NzMsOTYxOTg3MTYzLDE1MDg5NzA5OTMsMjQ1MzYzNTc0OCwyODcwNzYzMjIxLDM2MjQzODEwODAsMzEwNTk4NDAxLDYwNzIyNTI3OCwxNDI2ODgxOTg3LDE5MjUwNzgzODgsMjE2MjA3ODIwNiwyNjE0ODg4MTAzLDMyNDgyMjI1ODAsMzgzNTM5MDQwMSw0MDIyMjI0'@; put 'Nzc0LDI2NDM0NzA3OCw2MDQ4MDc2MjgsNzcwMjU1OTgzLDEyNDkxNTAxMjIsMTU1NTA4MTY5MiwxOTk2MDY0OTg2LDI1NTQyMjA4ODIsMjgyMTgzNDM0OSwyOTUyOTk2ODA4LDMyMTAzMTM2NzEsMzMzNjU3MTg5MSwzNTg0NTI4NzExLDExMzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3'@; put 'MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYzNTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1MjgwNCw0MDk0NTcxOTA5LDI3NTQyMzM0NCw0MzAy'@; put 'Mjc3MzQsNTA2OTQ4NjE2LDY1OTA2MDU1Niw4ODM5OTc4NzcsOTU4MTM5NTcxLDEzMjI4MjIyMTgsMTUzNzAwMjA2MywxNzQ3ODczNzc5LDE5NTU1NjIyMjIsMjAyNDEwNDgxNSwyMjI3NzMwNDUyLDIzNjE4NTI0MjQsMjQyODQzNjQ3NCwyNzU2NzM0MTg3LDMyMDQwMzE0NzksMzMyOTMyNTI5'@; put 'OF0sdz1uZXcgQXJyYXkoNjQpO2Z1bmN0aW9uIEYoKXt0aGlzLmluaXQoKSx0aGlzLl93PXcsXy5jYWxsKHRoaXMsNjQsNTYpfWZ1bmN0aW9uIEgoQixXLFope3JldHVybiBaXkImKFdeWil9ZnVuY3Rpb24gUihCLFcsWil7cmV0dXJuIEImV3xaJihCfFcpfWZ1bmN0aW9uIGooQil7cmV0dXJu'@; put 'KEI+Pj4yfEI8PDMwKV4oQj4+PjEzfEI8PDE5KV4oQj4+PjIyfEI8PDEwKX1mdW5jdGlvbiBQKEIpe3JldHVybihCPj4+NnxCPDwyNileKEI+Pj4xMXxCPDwyMSleKEI+Pj4yNXxCPDw3KX1mdW5jdGlvbiBMKEIpe3JldHVybihCPj4+N3xCPDwyNSleKEI+Pj4xOHxCPDwxNCleQj4+PjN9ZnVu'@; put 'Y3Rpb24gWShCKXtyZXR1cm4oQj4+PjE3fEI8PDE1KV4oQj4+PjE5fEI8PDEzKV5CPj4+MTB9RChGLF8pLEYucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0xNzc5MDMzNzAzLHRoaXMuX2I9MzE0NDEzNDI3Nyx0aGlzLl9jPTEwMTM5MDQyNDIsdGhpcy5fZD0yNzcz'@; put 'NDgwNzYyLHRoaXMuX2U9MTM1OTg5MzExOSx0aGlzLl9mPTI2MDA4MjI5MjQsdGhpcy5fZz01Mjg3MzQ2MzUsdGhpcy5faD0xNTQxNDU5MjI1LHRoaXN9LEYucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oQil7Zm9yKHZhciBXPXRoaXMuX3csWj0wfHRoaXMuX2EsWD0wfHRoaXMuX2IsUT0w'@; put 'fHRoaXMuX2MscT0wfHRoaXMuX2QsdGU9MHx0aGlzLl9lLGllPTB8dGhpcy5fZixzZT0wfHRoaXMuX2csZ2U9MHx0aGlzLl9oLF9lPTA7X2U8MTY7KytfZSlXW19lXT1CLnJlYWRJbnQzMkJFKDQqX2UpO2Zvcig7X2U8NjQ7KytfZSlXW19lXT1ZKFdbX2UtMl0pK1dbX2UtN10rTChXW19lLTE1'@; put 'XSkrV1tfZS0xNl18MDtmb3IodmFyIFRlPTA7VGU8NjQ7KytUZSl7dmFyIFNlPWdlK1AodGUpK0godGUsaWUsc2UpK05bVGVdK1dbVGVdfDAsemU9aihaKStSKFosWCxRKXwwO2dlPXNlLHNlPWllLGllPXRlLHRlPXErU2V8MCxxPVEsUT1YLFg9WixaPVNlK3plfDB9dGhpcy5fYT1aK3RoaXMu'@; put 'X2F8MCx0aGlzLl9iPVgrdGhpcy5fYnwwLHRoaXMuX2M9USt0aGlzLl9jfDAsdGhpcy5fZD1xK3RoaXMuX2R8MCx0aGlzLl9lPXRlK3RoaXMuX2V8MCx0aGlzLl9mPWllK3RoaXMuX2Z8MCx0aGlzLl9nPXNlK3RoaXMuX2d8MCx0aGlzLl9oPWdlK3RoaXMuX2h8MH0sRi5wcm90b3R5cGUuX2hh'@; put 'c2g9ZnVuY3Rpb24oKXt2YXIgQj1wLmFsbG9jVW5zYWZlKDMyKTtyZXR1cm4gQi53cml0ZUludDMyQkUodGhpcy5fYSwwKSxCLndyaXRlSW50MzJCRSh0aGlzLl9iLDQpLEIud3JpdGVJbnQzMkJFKHRoaXMuX2MsOCksQi53cml0ZUludDMyQkUodGhpcy5fZCwxMiksQi53cml0ZUludDMyQkUo'@; put 'dGhpcy5fZSwxNiksQi53cml0ZUludDMyQkUodGhpcy5fZiwyMCksQi53cml0ZUludDMyQkUodGhpcy5fZywyNCksQi53cml0ZUludDMyQkUodGhpcy5faCwyOCksQn0sY2UuZXhwb3J0cz1GfSw1MTg1NjooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDcxOTkzKSxfPWIoMzEyMSks'@; put 'cD1iKDcwNDYzKSxOPWIoMjcwNTQpLkJ1ZmZlcix3PW5ldyBBcnJheSgxNjApO2Z1bmN0aW9uIEYoKXt0aGlzLmluaXQoKSx0aGlzLl93PXcscC5jYWxsKHRoaXMsMTI4LDExMil9RChGLF8pLEYucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYWg9MzQxODA3MDM2NSx0'@; put 'aGlzLl9iaD0xNjU0MjcwMjUwLHRoaXMuX2NoPTI0Mzg1MjkzNzAsdGhpcy5fZGg9MzU1NDYyMzYwLHRoaXMuX2VoPTE3MzE0MDU0MTUsdGhpcy5fZmg9MjM5NDE4MDIzMSx0aGlzLl9naD0zNjc1MDA4NTI1LHRoaXMuX2hoPTEyMDMwNjI4MTMsdGhpcy5fYWw9MzIzODM3MTAzMix0aGlzLl9i'@; put 'bD05MTQxNTA2NjMsdGhpcy5fY2w9ODEyNzAyOTk5LHRoaXMuX2RsPTQxNDQ5MTI2OTcsdGhpcy5fZWw9NDI5MDc3NTg1Nyx0aGlzLl9mbD0xNzUwNjAzMDI1LHRoaXMuX2dsPTE2OTQwNzY4MzksdGhpcy5faGw9MzIwNDA3NTQyOCx0aGlzfSxGLnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigp'@; put 'e3ZhciBIPU4uYWxsb2NVbnNhZmUoNDgpO2Z1bmN0aW9uIFIoaixQLEwpe0gud3JpdGVJbnQzMkJFKGosTCksSC53cml0ZUludDMyQkUoUCxMKzQpfXJldHVybiBSKHRoaXMuX2FoLHRoaXMuX2FsLDApLFIodGhpcy5fYmgsdGhpcy5fYmwsOCksUih0aGlzLl9jaCx0aGlzLl9jbCwxNiksUih0'@; put 'aGlzLl9kaCx0aGlzLl9kbCwyNCksUih0aGlzLl9laCx0aGlzLl9lbCwzMiksUih0aGlzLl9maCx0aGlzLl9mbCw0MCksSH0sY2UuZXhwb3J0cz1GfSwzMTIxOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNzE5OTMpLF89Yig3MDQ2MykscD1iKDI3MDU0KS5CdWZmZXIsTj1bMTEx'@; put 'NjM1MjQwOCwzNjA5NzY3NDU4LDE4OTk0NDc0NDEsNjAyODkxNzI1LDMwNDkzMjM0NzEsMzk2NDQ4NDM5OSwzOTIxMDA5NTczLDIxNzMyOTU1NDgsOTYxOTg3MTYzLDQwODE2Mjg0NzIsMTUwODk3MDk5MywzMDUzODM0MjY1LDI0NTM2MzU3NDgsMjkzNzY3MTU3OSwyODcwNzYzMjIxLDM2NjQ2'@; put 'MDk1NjAsMzYyNDM4MTA4MCwyNzM0ODgzMzk0LDMxMDU5ODQwMSwxMTY0OTk2NTQyLDYwNzIyNTI3OCwxMzIzNjEwNzY0LDE0MjY4ODE5ODcsMzU5MDMwNDk5NCwxOTI1MDc4Mzg4LDQwNjgxODIzODMsMjE2MjA3ODIwNiw5OTEzMzYxMTMsMjYxNDg4ODEwMyw2MzM4MDMzMTcsMzI0ODIyMjU4'@; put 'MCwzNDc5Nzc0ODY4LDM4MzUzOTA0MDEsMjY2NjYxMzQ1OCw0MDIyMjI0Nzc0LDk0NDcxMTEzOSwyNjQzNDcwNzgsMjM0MTI2Mjc3Myw2MDQ4MDc2MjgsMjAwNzgwMDkzMyw3NzAyNTU5ODMsMTQ5NTk5MDkwMSwxMjQ5MTUwMTIyLDE4NTY0MzEyMzUsMTU1NTA4MTY5MiwzMTc1MjE4MTMyLDE5'@; put 'OTYwNjQ5ODYsMjE5ODk1MDgzNywyNTU0MjIwODgyLDM5OTk3MTkzMzksMjgyMTgzNDM0OSw3NjY3ODQwMTYsMjk1Mjk5NjgwOCwyNTY2NTk0ODc5LDMyMTAzMTM2NzEsMzIwMzMzNzk1NiwzMzM2NTcxODkxLDEwMzQ0NTcwMjYsMzU4NDUyODcxMSwyNDY2OTQ4OTAxLDExMzkyNjk5MywzNzU4'@; put 'MzI2MzgzLDMzODI0MTg5NSwxNjg3MTc5MzYsNjY2MzA3MjA1LDExODgxNzk5NjQsNzczNTI5OTEyLDE1NDYwNDU3MzQsMTI5NDc1NzM3MiwxNTIyODA1NDg1LDEzOTYxODIyOTEsMjY0MzgzMzgyMywxNjk1MTgzNzAwLDIzNDM1MjczOTAsMTk4NjY2MTA1MSwxMDE0NDc3NDgwLDIxNzcwMjYz'@; put 'NTAsMTIwNjc1OTE0MiwyNDU2OTU2MDM3LDM0NDA3NzYyNywyNzMwNDg1OTIxLDEyOTA4NjM0NjAsMjgyMDMwMjQxMSwzMTU4NDU0MjczLDMyNTk3MzA4MDAsMzUwNTk1MjY1NywzMzQ1NzY0NzcxLDEwNjIxNzAwOCwzNTE2MDY1ODE3LDM2MDYwMDgzNDQsMzYwMDM1MjgwNCwxNDMyNzI1Nzc2'@; put 'LDQwOTQ1NzE5MDksMTQ2NzAzMTU5NCwyNzU0MjMzNDQsODUxMTY5NzIwLDQzMDIyNzczNCwzMTAwODIzNzUyLDUwNjk0ODYxNiwxMzYzMjU4MTk1LDY1OTA2MDU1NiwzNzUwNjg1NTkzLDg4Mzk5Nzg3NywzNzg1MDUwMjgwLDk1ODEzOTU3MSwzMzE4MzA3NDI3LDEzMjI4MjIyMTgsMzgxMjcy'@; put 'MzQwMywxNTM3MDAyMDYzLDIwMDMwMzQ5OTUsMTc0Nzg3Mzc3OSwzNjAyMDM2ODk5LDE5NTU1NjIyMjIsMTU3NTk5MDAxMiwyMDI0MTA0ODE1LDExMjU1OTI5MjgsMjIyNzczMDQ1MiwyNzE2OTA0MzA2LDIzNjE4NTI0MjQsNDQyNzc2MDQ0LDI0Mjg0MzY0NzQsNTkzNjk4MzQ0LDI3NTY3MzQx'@; put 'ODcsMzczMzExMDI0OSwzMjA0MDMxNDc5LDI5OTkzNTE1NzMsMzMyOTMyNTI5OCwzODE1OTIwNDI3LDMzOTE1Njk2MTQsMzkyODM4MzkwMCwzNTE1MjY3MjcxLDU2NjI4MDcxMSwzOTQwMTg3NjA2LDM0NTQwNjk1MzQsNDExODYzMDI3MSw0MDAwMjM5OTkyLDExNjQxODQ3NCwxOTE0MTM4NTU0'@; put 'LDE3NDI5MjQyMSwyNzMxMDU1MjcwLDI4OTM4MDM1NiwzMjAzOTkzMDA2LDQ2MDM5MzI2OSwzMjA2MjAzMTUsNjg1NDcxNzMzLDU4NzQ5NjgzNiw4NTIxNDI5NzEsMTA4Njc5Mjg1MSwxMDE3MDM2Mjk4LDM2NTU0MzEwMCwxMTI2MDAwNTgwLDI2MTgyOTc2NzYsMTI4ODAzMzQ3MCwzNDA5ODU1'@; put 'MTU4LDE1MDE1MDU5NDgsNDIzNDUwOTg2NiwxNjA3MTY3OTE1LDk4NzE2NzQ2OCwxODE2NDAyMzE2LDEyNDYxODk1OTFdLHc9bmV3IEFycmF5KDE2MCk7ZnVuY3Rpb24gRigpe3RoaXMuaW5pdCgpLHRoaXMuX3c9dyxfLmNhbGwodGhpcywxMjgsMTEyKX1mdW5jdGlvbiBIKFgsUSxxKXtyZXR1'@; put 'cm4gcV5YJihRXnEpfWZ1bmN0aW9uIFIoWCxRLHEpe3JldHVybiBYJlF8cSYoWHxRKX1mdW5jdGlvbiBqKFgsUSl7cmV0dXJuKFg+Pj4yOHxRPDw0KV4oUT4+PjJ8WDw8MzApXihRPj4+N3xYPDwyNSl9ZnVuY3Rpb24gUChYLFEpe3JldHVybihYPj4+MTR8UTw8MTgpXihYPj4+MTh8UTw8MTQp'@; put 'XihRPj4+OXxYPDwyMyl9ZnVuY3Rpb24gTChYLFEpe3JldHVybihYPj4+MXxRPDwzMSleKFg+Pj44fFE8PDI0KV5YPj4+N31mdW5jdGlvbiBZKFgsUSl7cmV0dXJuKFg+Pj4xfFE8PDMxKV4oWD4+Pjh8UTw8MjQpXihYPj4+N3xRPDwyNSl9ZnVuY3Rpb24gQihYLFEpe3JldHVybihYPj4+MTl8'@; put 'UTw8MTMpXihRPj4+Mjl8WDw8MyleWD4+PjZ9ZnVuY3Rpb24gVyhYLFEpe3JldHVybihYPj4+MTl8UTw8MTMpXihRPj4+Mjl8WDw8MyleKFg+Pj42fFE8PDI2KX1mdW5jdGlvbiBaKFgsUSl7cmV0dXJuIFg+Pj4wPFE+Pj4wPzE6MH1EKEYsXyksRi5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigp'@; put 'e3JldHVybiB0aGlzLl9haD0xNzc5MDMzNzAzLHRoaXMuX2JoPTMxNDQxMzQyNzcsdGhpcy5fY2g9MTAxMzkwNDI0Mix0aGlzLl9kaD0yNzczNDgwNzYyLHRoaXMuX2VoPTEzNTk4OTMxMTksdGhpcy5fZmg9MjYwMDgyMjkyNCx0aGlzLl9naD01Mjg3MzQ2MzUsdGhpcy5faGg9MTU0MTQ1OTIy'@; put 'NSx0aGlzLl9hbD00MDg5MjM1NzIwLHRoaXMuX2JsPTIyMjc4NzM1OTUsdGhpcy5fY2w9NDI3MTE3NTcyMyx0aGlzLl9kbD0xNTk1NzUwMTI5LHRoaXMuX2VsPTI5MTc1NjUxMzcsdGhpcy5fZmw9NzI1NTExMTk5LHRoaXMuX2dsPTQyMTUzODk1NDcsdGhpcy5faGw9MzI3MDMzMjA5LHRoaXN9'@; put 'LEYucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oWCl7Zm9yKHZhciBRPXRoaXMuX3cscT0wfHRoaXMuX2FoLHRlPTB8dGhpcy5fYmgsaWU9MHx0aGlzLl9jaCxzZT0wfHRoaXMuX2RoLGdlPTB8dGhpcy5fZWgsX2U9MHx0aGlzLl9maCxUZT0wfHRoaXMuX2doLFNlPTB8dGhpcy5faGgsemU9'@; put 'MHx0aGlzLl9hbCx6PTB8dGhpcy5fYmwsZz0wfHRoaXMuX2NsLHk9MHx0aGlzLl9kbCx4PTB8dGhpcy5fZWwsQz0wfHRoaXMuX2ZsLFQ9MHx0aGlzLl9nbCxWPTB8dGhpcy5faGwsVT0wO1U8MzI7VSs9MilRW1VdPVgucmVhZEludDMyQkUoNCpVKSxRW1UrMV09WC5yZWFkSW50MzJCRSg0KlUr'@; put 'NCk7Zm9yKDtVPDE2MDtVKz0yKXt2YXIgRT1RW1UtMzBdLG09UVtVLTMwKzFdLEE9TChFLG0pLGFlPVkobSxFKSxuZT1CKEU9UVtVLTRdLG09UVtVLTQrMV0pLGxlPVcobSxFKSxRZT1RW1UtMzJdLGF0PVFbVS0zMisxXSx4ZT1hZStRW1UtMTQrMV18MCx2ZT1BK1FbVS0xNF0rWih4ZSxhZSl8'@; put 'MDt2ZT0odmU9dmUrbmUrWih4ZT14ZStsZXwwLGxlKXwwKStRZStaKHhlPXhlK2F0fDAsYXQpfDAsUVtVXT12ZSxRW1UrMV09eGV9Zm9yKHZhciBxZT0wO3FlPDE2MDtxZSs9Mil7dmU9UVtxZV0seGU9UVtxZSsxXTt2YXIgamU9UihxLHRlLGllKSxBZT1SKHplLHosZyksRmU9aihxLHplKSxS'@; put 'ZT1qKHplLHEpLEllPVAoZ2UseCksSGU9UCh4LGdlKSxEZT1OW3FlXSxrZT1OW3FlKzFdLF90PUgoZ2UsX2UsVGUpLG50PUgoeCxDLFQpLEplPVYrSGV8MCxvbj1TZStJZStaKEplLFYpfDA7b249KG9uPShvbj1vbitfdCtaKEplPUplK250fDAsbnQpfDApK0RlK1ooSmU9SmUra2V8MCxrZSl8'@; put 'MCkrdmUrWihKZT1KZSt4ZXwwLHhlKXwwO3ZhciB5dD1SZStBZXwwLE10PUZlK2plK1ooeXQsUmUpfDA7U2U9VGUsVj1ULFRlPV9lLFQ9QyxfZT1nZSxDPXgsZ2U9c2Urb24rWih4PXkrSmV8MCx5KXwwLHNlPWllLHk9ZyxpZT10ZSxnPXosdGU9cSx6PXplLHE9b24rTXQrWih6ZT1KZSt5dHww'@; put 'LEplKXwwfXRoaXMuX2FsPXRoaXMuX2FsK3plfDAsdGhpcy5fYmw9dGhpcy5fYmwrenwwLHRoaXMuX2NsPXRoaXMuX2NsK2d8MCx0aGlzLl9kbD10aGlzLl9kbCt5fDAsdGhpcy5fZWw9dGhpcy5fZWwreHwwLHRoaXMuX2ZsPXRoaXMuX2ZsK0N8MCx0aGlzLl9nbD10aGlzLl9nbCtUfDAsdGhp'@; put 'cy5faGw9dGhpcy5faGwrVnwwLHRoaXMuX2FoPXRoaXMuX2FoK3ErWih0aGlzLl9hbCx6ZSl8MCx0aGlzLl9iaD10aGlzLl9iaCt0ZStaKHRoaXMuX2JsLHopfDAsdGhpcy5fY2g9dGhpcy5fY2graWUrWih0aGlzLl9jbCxnKXwwLHRoaXMuX2RoPXRoaXMuX2RoK3NlK1oodGhpcy5fZGwseSl8'@; put 'MCx0aGlzLl9laD10aGlzLl9laCtnZStaKHRoaXMuX2VsLHgpfDAsdGhpcy5fZmg9dGhpcy5fZmgrX2UrWih0aGlzLl9mbCxDKXwwLHRoaXMuX2doPXRoaXMuX2doK1RlK1oodGhpcy5fZ2wsVCl8MCx0aGlzLl9oaD10aGlzLl9oaCtTZStaKHRoaXMuX2hsLFYpfDB9LEYucHJvdG90eXBlLl9o'@; put 'YXNoPWZ1bmN0aW9uKCl7dmFyIFg9cC5hbGxvY1Vuc2FmZSg2NCk7ZnVuY3Rpb24gUShxLHRlLGllKXtYLndyaXRlSW50MzJCRShxLGllKSxYLndyaXRlSW50MzJCRSh0ZSxpZSs0KX1yZXR1cm4gUSh0aGlzLl9haCx0aGlzLl9hbCwwKSxRKHRoaXMuX2JoLHRoaXMuX2JsLDgpLFEodGhpcy5f'@; put 'Y2gsdGhpcy5fY2wsMTYpLFEodGhpcy5fZGgsdGhpcy5fZGwsMjQpLFEodGhpcy5fZWgsdGhpcy5fZWwsMzIpLFEodGhpcy5fZmgsdGhpcy5fZmwsNDApLFEodGhpcy5fZ2gsdGhpcy5fZ2wsNDgpLFEodGhpcy5faGgsdGhpcy5faGwsNTYpLFh9LGNlLmV4cG9ydHM9Rn0sNzA0NTooY2UsSixi'@; put 'KT0+e2NlLmV4cG9ydHM9cDt2YXIgRD1iKDQ0MzU2KS5FdmVudEVtaXR0ZXI7ZnVuY3Rpb24gcCgpe0QuY2FsbCh0aGlzKX1iKDcxOTkzKShwLEQpLHAuUmVhZGFibGU9Yig2MTA5MikscC5Xcml0YWJsZT1iKDE1NDkyKSxwLkR1cGxleD1iKDEwMzApLHAuVHJhbnNmb3JtPWIoNDM0MTApLHAu'@; put 'UGFzc1Rocm91Z2g9Yig4MzgyNCkscC5maW5pc2hlZD1iKDU3ODU0KSxwLnBpcGVsaW5lPWIoNjg0NikscC5TdHJlYW09cCxwLnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKE4sdyl7dmFyIEY9dGhpcztmdW5jdGlvbiBIKFcpe04ud3JpdGFibGUmJiExPT09Ti53cml0ZShXKSYmRi5wYXVzZSYm'@; put 'Ri5wYXVzZSgpfWZ1bmN0aW9uIFIoKXtGLnJlYWRhYmxlJiZGLnJlc3VtZSYmRi5yZXN1bWUoKX1GLm9uKCJkYXRhIixIKSxOLm9uKCJkcmFpbiIsUiksIU4uX2lzU3RkaW8mJighd3x8ITEhPT13LmVuZCkmJihGLm9uKCJlbmQiLFApLEYub24oImNsb3NlIixMKSk7dmFyIGo9ITE7ZnVuY3Rp'@; put 'b24gUCgpe2p8fChqPSEwLE4uZW5kKCkpfWZ1bmN0aW9uIEwoKXtqfHwoaj0hMCwiZnVuY3Rpb24iPT10eXBlb2YgTi5kZXN0cm95JiZOLmRlc3Ryb3koKSl9ZnVuY3Rpb24gWShXKXtpZihCKCksMD09PUQubGlzdGVuZXJDb3VudCh0aGlzLCJlcnJvciIpKXRocm93IFd9ZnVuY3Rpb24gQigp'@; put 'e0YucmVtb3ZlTGlzdGVuZXIoImRhdGEiLEgpLE4ucmVtb3ZlTGlzdGVuZXIoImRyYWluIixSKSxGLnJlbW92ZUxpc3RlbmVyKCJlbmQiLFApLEYucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixMKSxGLnJlbW92ZUxpc3RlbmVyKCJlcnJvciIsWSksTi5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLFkp'@; put 'LEYucmVtb3ZlTGlzdGVuZXIoImVuZCIsQiksRi5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLEIpLE4ucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixCKX1yZXR1cm4gRi5vbigiZXJyb3IiLFkpLE4ub24oImVycm9yIixZKSxGLm9uKCJlbmQiLEIpLEYub24oImNsb3NlIixCKSxOLm9uKCJjbG9zZSIs'@; put 'QiksTi5lbWl0KCJwaXBlIixGKSxOfX0sMzA0NjQ6Y2U9PnsidXNlIHN0cmljdCI7dmFyIGI9e307ZnVuY3Rpb24gRChGLEgsUil7Unx8KFI9RXJyb3IpO3ZhciBQPWZ1bmN0aW9uKEwpe2Z1bmN0aW9uIFkoQixXLFope3JldHVybiBMLmNhbGwodGhpcyxmdW5jdGlvbiBqKEwsWSxCKXtyZXR1'@; put 'cm4ic3RyaW5nIj09dHlwZW9mIEg/SDpIKEwsWSxCKX0oQixXLFopKXx8dGhpc31yZXR1cm4gZnVuY3Rpb24gSihGLEgpe0YucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoSC5wcm90b3R5cGUpLEYucHJvdG90eXBlLmNvbnN0cnVjdG9yPUYsRi5fX3Byb3RvX189SH0oWSxMKSxZfShSKTtQLnBy'@; put 'b3RvdHlwZS5uYW1lPVIubmFtZSxQLnByb3RvdHlwZS5jb2RlPUYsYltGXT1QfWZ1bmN0aW9uIF8oRixIKXtpZihBcnJheS5pc0FycmF5KEYpKXt2YXIgUj1GLmxlbmd0aDtyZXR1cm4gRj1GLm1hcChmdW5jdGlvbihqKXtyZXR1cm4gU3RyaW5nKGopfSksUj4yPyJvbmUgb2YgIi5jb25jYXQo'@; put 'SCwiICIpLmNvbmNhdChGLnNsaWNlKDAsUi0xKS5qb2luKCIsICIpLCIsIG9yICIpK0ZbUi0xXToyPT09Uj8ib25lIG9mICIuY29uY2F0KEgsIiAiKS5jb25jYXQoRlswXSwiIG9yICIpLmNvbmNhdChGWzFdKToib2YgIi5jb25jYXQoSCwiICIpLmNvbmNhdChGWzBdKX1yZXR1cm4ib2YgIi5j'@; put 'b25jYXQoSCwiICIpLmNvbmNhdChTdHJpbmcoRikpfUQoIkVSUl9JTlZBTElEX09QVF9WQUxVRSIsZnVuY3Rpb24oRixIKXtyZXR1cm4nVGhlIHZhbHVlICInK0grJyIgaXMgaW52YWxpZCBmb3Igb3B0aW9uICInK0YrJyInfSxUeXBlRXJyb3IpLEQoIkVSUl9JTlZBTElEX0FSR19UWVBFIixm'@; put 'dW5jdGlvbihGLEgsUil7dmFyIGosUDtpZigic3RyaW5nIj09dHlwZW9mIEgmJmZ1bmN0aW9uIHAoRixILFIpe3JldHVybiBGLnN1YnN0cighUnx8UjwwPzA6K1IsSC5sZW5ndGgpPT09SH0oSCwibm90ICIpPyhqPSJtdXN0IG5vdCBiZSIsSD1ILnJlcGxhY2UoL15ub3QgLywiIikpOmo9Im11'@; put 'c3QgYmUiLGZ1bmN0aW9uIE4oRixILFIpe3JldHVybih2b2lkIDA9PT1SfHxSPkYubGVuZ3RoKSYmKFI9Ri5sZW5ndGgpLEYuc3Vic3RyaW5nKFItSC5sZW5ndGgsUik9PT1IfShGLCIgYXJndW1lbnQiKSlQPSJUaGUgIi5jb25jYXQoRiwiICIpLmNvbmNhdChqLCIgIikuY29uY2F0KF8oSCwi'@; put 'dHlwZSIpKTtlbHNle3ZhciBMPWZ1bmN0aW9uIHcoRixILFIpe3JldHVybiJudW1iZXIiIT10eXBlb2YgUiYmKFI9MCksIShSK0gubGVuZ3RoPkYubGVuZ3RoKSYmLTEhPT1GLmluZGV4T2YoSCxSKX0oRiwiLiIpPyJwcm9wZXJ0eSI6ImFyZ3VtZW50IjtQPSdUaGUgIicuY29uY2F0KEYsJyIg'@; put 'JykuY29uY2F0KEwsIiAiKS5jb25jYXQoaiwiICIpLmNvbmNhdChfKEgsInR5cGUiKSl9cmV0dXJuIFArIi4gUmVjZWl2ZWQgdHlwZSAiLmNvbmNhdCh0eXBlb2YgUil9LFR5cGVFcnJvciksRCgiRVJSX1NUUkVBTV9QVVNIX0FGVEVSX0VPRiIsInN0cmVhbS5wdXNoKCkgYWZ0ZXIgRU9GIiks'@; put 'RCgiRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5URUQiLGZ1bmN0aW9uKEYpe3JldHVybiJUaGUgIitGKyIgbWV0aG9kIGlzIG5vdCBpbXBsZW1lbnRlZCJ9KSxEKCJFUlJfU1RSRUFNX1BSRU1BVFVSRV9DTE9TRSIsIlByZW1hdHVyZSBjbG9zZSIpLEQoIkVSUl9TVFJFQU1fREVTVFJPWUVEIixm'@; put 'dW5jdGlvbihGKXtyZXR1cm4iQ2Fubm90IGNhbGwgIitGKyIgYWZ0ZXIgYSBzdHJlYW0gd2FzIGRlc3Ryb3llZCJ9KSxEKCJFUlJfTVVMVElQTEVfQ0FMTEJBQ0siLCJDYWxsYmFjayBjYWxsZWQgbXVsdGlwbGUgdGltZXMiKSxEKCJFUlJfU1RSRUFNX0NBTk5PVF9QSVBFIiwiQ2Fubm90IHBp'@; put 'cGUsIG5vdCByZWFkYWJsZSIpLEQoIkVSUl9TVFJFQU1fV1JJVEVfQUZURVJfRU5EIiwid3JpdGUgYWZ0ZXIgZW5kIiksRCgiRVJSX1NUUkVBTV9OVUxMX1ZBTFVFUyIsIk1heSBub3Qgd3JpdGUgbnVsbCB2YWx1ZXMgdG8gc3RyZWFtIixUeXBlRXJyb3IpLEQoIkVSUl9VTktOT1dOX0VOQ09E'@; put 'SU5HIixmdW5jdGlvbihGKXtyZXR1cm4iVW5rbm93biBlbmNvZGluZzogIitGfSxUeXBlRXJyb3IpLEQoIkVSUl9TVFJFQU1fVU5TSElGVF9BRlRFUl9FTkRfRVZFTlQiLCJzdHJlYW0udW5zaGlmdCgpIGFmdGVyIGVuZCBldmVudCIpLGNlLmV4cG9ydHMuRj1ifSwxMDMwOihjZSxKLGIpPT57'@; put 'InVzZSBzdHJpY3QiO3ZhciBEPU9iamVjdC5rZXlzfHxmdW5jdGlvbihQKXt2YXIgTD1bXTtmb3IodmFyIFkgaW4gUClMLnB1c2goWSk7cmV0dXJuIEx9O2NlLmV4cG9ydHM9SDt2YXIgXz1iKDYxMDkyKSxwPWIoMTU0OTIpO2IoNzE5OTMpKEgsXyk7Zm9yKHZhciBOPUQocC5wcm90b3R5cGUp'@; put 'LHc9MDt3PE4ubGVuZ3RoO3crKyl7dmFyIEY9Tlt3XTtILnByb3RvdHlwZVtGXXx8KEgucHJvdG90eXBlW0ZdPXAucHJvdG90eXBlW0ZdKX1mdW5jdGlvbiBIKFApe2lmKCEodGhpcyBpbnN0YW5jZW9mIEgpKXJldHVybiBuZXcgSChQKTtfLmNhbGwodGhpcyxQKSxwLmNhbGwodGhpcyxQKSx0'@; put 'aGlzLmFsbG93SGFsZk9wZW49ITAsUCYmKCExPT09UC5yZWFkYWJsZSYmKHRoaXMucmVhZGFibGU9ITEpLCExPT09UC53cml0YWJsZSYmKHRoaXMud3JpdGFibGU9ITEpLCExPT09UC5hbGxvd0hhbGZPcGVuJiYodGhpcy5hbGxvd0hhbGZPcGVuPSExLHRoaXMub25jZSgiZW5kIixSKSkpfWZ1'@; put 'bmN0aW9uIFIoKXt0aGlzLl93cml0YWJsZVN0YXRlLmVuZGVkfHxwcm9jZXNzLm5leHRUaWNrKGosdGhpcyl9ZnVuY3Rpb24gaihQKXtQLmVuZCgpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShILnByb3RvdHlwZSwid3JpdGFibGVIaWdoV2F0ZXJNYXJrIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVu'@; put 'Y3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5oaWdoV2F0ZXJNYXJrfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShILnByb3RvdHlwZSwid3JpdGFibGVCdWZmZXIiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlJiZ0aGlz'@; put 'Ll93cml0YWJsZVN0YXRlLmdldEJ1ZmZlcigpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShILnByb3RvdHlwZSwid3JpdGFibGVMZW5ndGgiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmxlbmd0aH19KSxPYmplY3QuZGVmaW5lUHJv'@; put 'cGVydHkoSC5wcm90b3R5cGUsImRlc3Ryb3llZCIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX3JlYWRhYmxlU3RhdGUmJnZvaWQgMCE9PXRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkJiZ0aGlzLl93'@; put 'cml0YWJsZVN0YXRlLmRlc3Ryb3llZH0sc2V0OmZ1bmN0aW9uKEwpe3ZvaWQgMD09PXRoaXMuX3JlYWRhYmxlU3RhdGV8fHZvaWQgMD09PXRoaXMuX3dyaXRhYmxlU3RhdGV8fCh0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD1MLHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkPUwp'@; put 'fX0pfSw4MzgyNDooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPV87dmFyIEQ9Yig0MzQxMCk7ZnVuY3Rpb24gXyhwKXtpZighKHRoaXMgaW5zdGFuY2VvZiBfKSlyZXR1cm4gbmV3IF8ocCk7RC5jYWxsKHRoaXMscCl9Yig3MTk5MykoXyxEKSxfLnByb3RvdHlwZS5fdHJhbnNm'@; put 'b3JtPWZ1bmN0aW9uKHAsTix3KXt3KG51bGwscCl9fSw2MTA5MjooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRDtjZS5leHBvcnRzPXosei5SZWFkYWJsZVN0YXRlPXplLGIoNDQzNTYpO3ZhciBQLHA9ZnVuY3Rpb24oRmUsUmUpe3JldHVybiBGZS5saXN0ZW5lcnMoUmUpLmxlbmd0aH0s'@; put 'Tj1iKDEyNjAxKSx3PWIoODM4MzgpLkJ1ZmZlcixGPSh0eXBlb2YgZ2xvYmFsPCJ1Ij9nbG9iYWw6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93OnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnt9KS5VaW50OEFycmF5fHxmdW5jdGlvbigpe30saj1iKDc3MTk5KTtQPWomJmouZGVidWdsb2c/ai5kZWJ1'@; put 'Z2xvZygic3RyZWFtIik6ZnVuY3Rpb24oKXt9O3ZhciBpZSxzZSxnZSxMPWIoNzUyMjUpLFk9Yig4ODE1MiksVz1iKDIyODI3KS5nZXRIaWdoV2F0ZXJNYXJrLFo9YigzMDQ2NCkuRixYPVouRVJSX0lOVkFMSURfQVJHX1RZUEUsUT1aLkVSUl9TVFJFQU1fUFVTSF9BRlRFUl9FT0YscT1aLkVS'@; put 'Ul9NRVRIT0RfTk9UX0lNUExFTUVOVEVELHRlPVouRVJSX1NUUkVBTV9VTlNISUZUX0FGVEVSX0VORF9FVkVOVDtiKDcxOTkzKSh6LE4pO3ZhciBfZT1ZLmVycm9yT3JEZXN0cm95LFRlPVsiZXJyb3IiLCJjbG9zZSIsImRlc3Ryb3kiLCJwYXVzZSIsInJlc3VtZSJdO2Z1bmN0aW9uIHplKEFl'@; put 'LEZlLFJlKXtEPUR8fGIoMTAzMCksImJvb2xlYW4iIT10eXBlb2YgUmUmJihSZT1GZSBpbnN0YW5jZW9mIEQpLHRoaXMub2JqZWN0TW9kZT0hIShBZT1BZXx8e30pLm9iamVjdE1vZGUsUmUmJih0aGlzLm9iamVjdE1vZGU9dGhpcy5vYmplY3RNb2RlfHwhIUFlLnJlYWRhYmxlT2JqZWN0TW9k'@; put 'ZSksdGhpcy5oaWdoV2F0ZXJNYXJrPVcodGhpcyxBZSwicmVhZGFibGVIaWdoV2F0ZXJNYXJrIixSZSksdGhpcy5idWZmZXI9bmV3IEwsdGhpcy5sZW5ndGg9MCx0aGlzLnBpcGVzPW51bGwsdGhpcy5waXBlc0NvdW50PTAsdGhpcy5mbG93aW5nPW51bGwsdGhpcy5lbmRlZD0hMSx0aGlzLmVu'@; put 'ZEVtaXR0ZWQ9ITEsdGhpcy5yZWFkaW5nPSExLHRoaXMuc3luYz0hMCx0aGlzLm5lZWRSZWFkYWJsZT0hMSx0aGlzLmVtaXR0ZWRSZWFkYWJsZT0hMSx0aGlzLnJlYWRhYmxlTGlzdGVuaW5nPSExLHRoaXMucmVzdW1lU2NoZWR1bGVkPSExLHRoaXMucGF1c2VkPSEwLHRoaXMuZW1pdENsb3Nl'@; put 'PSExIT09QWUuZW1pdENsb3NlLHRoaXMuYXV0b0Rlc3Ryb3k9ISFBZS5hdXRvRGVzdHJveSx0aGlzLmRlc3Ryb3llZD0hMSx0aGlzLmRlZmF1bHRFbmNvZGluZz1BZS5kZWZhdWx0RW5jb2Rpbmd8fCJ1dGY4Iix0aGlzLmF3YWl0RHJhaW49MCx0aGlzLnJlYWRpbmdNb3JlPSExLHRoaXMuZGVj'@; put 'b2Rlcj1udWxsLHRoaXMuZW5jb2Rpbmc9bnVsbCxBZS5lbmNvZGluZyYmKGllfHwoaWU9Yig3ODQ1NCkuSSksdGhpcy5kZWNvZGVyPW5ldyBpZShBZS5lbmNvZGluZyksdGhpcy5lbmNvZGluZz1BZS5lbmNvZGluZyl9ZnVuY3Rpb24geihBZSl7aWYoRD1EfHxiKDEwMzApLCEodGhpcyBpbnN0'@; put 'YW5jZW9mIHopKXJldHVybiBuZXcgeihBZSk7dGhpcy5fcmVhZGFibGVTdGF0ZT1uZXcgemUoQWUsdGhpcyx0aGlzIGluc3RhbmNlb2YgRCksdGhpcy5yZWFkYWJsZT0hMCxBZSYmKCJmdW5jdGlvbiI9PXR5cGVvZiBBZS5yZWFkJiYodGhpcy5fcmVhZD1BZS5yZWFkKSwiZnVuY3Rpb24iPT10'@; put 'eXBlb2YgQWUuZGVzdHJveSYmKHRoaXMuX2Rlc3Ryb3k9QWUuZGVzdHJveSkpLE4uY2FsbCh0aGlzKX1mdW5jdGlvbiBnKEFlLEZlLFJlLEllLEhlKXtQKCJyZWFkYWJsZUFkZENodW5rIixGZSk7dmFyIGtlLERlPUFlLl9yZWFkYWJsZVN0YXRlO2lmKG51bGw9PT1GZSlEZS5yZWFkaW5nPSEx'@; put 'LGZ1bmN0aW9uIFUoQWUsRmUpe2lmKFAoIm9uRW9mQ2h1bmsiKSwhRmUuZW5kZWQpe2lmKEZlLmRlY29kZXIpe3ZhciBSZT1GZS5kZWNvZGVyLmVuZCgpO1JlJiZSZS5sZW5ndGgmJihGZS5idWZmZXIucHVzaChSZSksRmUubGVuZ3RoKz1GZS5vYmplY3RNb2RlPzE6UmUubGVuZ3RoKX1GZS5l'@; put 'bmRlZD0hMCxGZS5zeW5jP0UoQWUpOihGZS5uZWVkUmVhZGFibGU9ITEsRmUuZW1pdHRlZFJlYWRhYmxlfHwoRmUuZW1pdHRlZFJlYWRhYmxlPSEwLG0oQWUpKSl9fShBZSxEZSk7ZWxzZSBpZihIZXx8KGtlPWZ1bmN0aW9uIHgoQWUsRmUpe3ZhciBSZTtyZXR1cm4hZnVuY3Rpb24gUihBZSl7'@; put 'cmV0dXJuIHcuaXNCdWZmZXIoQWUpfHxBZSBpbnN0YW5jZW9mIEZ9KEZlKSYmInN0cmluZyIhPXR5cGVvZiBGZSYmdm9pZCAwIT09RmUmJiFBZS5vYmplY3RNb2RlJiYoUmU9bmV3IFgoImNodW5rIixbInN0cmluZyIsIkJ1ZmZlciIsIlVpbnQ4QXJyYXkiXSxGZSkpLFJlfShEZSxGZSkpLGtl'@; put 'KV9lKEFlLGtlKTtlbHNlIGlmKERlLm9iamVjdE1vZGV8fEZlJiZGZS5sZW5ndGg+MClpZigic3RyaW5nIiE9dHlwZW9mIEZlJiYhRGUub2JqZWN0TW9kZSYmT2JqZWN0LmdldFByb3RvdHlwZU9mKEZlKSE9PXcucHJvdG90eXBlJiYoRmU9ZnVuY3Rpb24gSChBZSl7cmV0dXJuIHcuZnJvbShB'@; put 'ZSl9KEZlKSksSWUpRGUuZW5kRW1pdHRlZD9fZShBZSxuZXcgdGUpOnkoQWUsRGUsRmUsITApO2Vsc2UgaWYoRGUuZW5kZWQpX2UoQWUsbmV3IFEpO2Vsc2V7aWYoRGUuZGVzdHJveWVkKXJldHVybiExO0RlLnJlYWRpbmc9ITEsRGUuZGVjb2RlciYmIVJlPyhGZT1EZS5kZWNvZGVyLndyaXRl'@; put 'KEZlKSxEZS5vYmplY3RNb2RlfHwwIT09RmUubGVuZ3RoP3koQWUsRGUsRmUsITEpOkEoQWUsRGUpKTp5KEFlLERlLEZlLCExKX1lbHNlIEllfHwoRGUucmVhZGluZz0hMSxBKEFlLERlKSk7cmV0dXJuIURlLmVuZGVkJiYoRGUubGVuZ3RoPERlLmhpZ2hXYXRlck1hcmt8fDA9PT1EZS5sZW5n'@; put 'dGgpfWZ1bmN0aW9uIHkoQWUsRmUsUmUsSWUpe0ZlLmZsb3dpbmcmJjA9PT1GZS5sZW5ndGgmJiFGZS5zeW5jPyhGZS5hd2FpdERyYWluPTAsQWUuZW1pdCgiZGF0YSIsUmUpKTooRmUubGVuZ3RoKz1GZS5vYmplY3RNb2RlPzE6UmUubGVuZ3RoLEllP0ZlLmJ1ZmZlci51bnNoaWZ0KFJlKTpG'@; put 'ZS5idWZmZXIucHVzaChSZSksRmUubmVlZFJlYWRhYmxlJiZFKEFlKSksQShBZSxGZSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KHoucHJvdG90eXBlLCJkZXN0cm95ZWQiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLl9yZWFkYWJsZVN0YXRlJiZ0'@; put 'aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZH0sc2V0OmZ1bmN0aW9uKEZlKXt0aGlzLl9yZWFkYWJsZVN0YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ9RmUpfX0pLHoucHJvdG90eXBlLmRlc3Ryb3k9WS5kZXN0cm95LHoucHJvdG90eXBlLl91bmRlc3Ryb3k9WS51bmRl'@; put 'c3Ryb3ksei5wcm90b3R5cGUuX2Rlc3Ryb3k9ZnVuY3Rpb24oQWUsRmUpe0ZlKEFlKX0sei5wcm90b3R5cGUucHVzaD1mdW5jdGlvbihBZSxGZSl7dmFyIEllLFJlPXRoaXMuX3JlYWRhYmxlU3RhdGU7cmV0dXJuIFJlLm9iamVjdE1vZGU/SWU9ITA6InN0cmluZyI9PXR5cGVvZiBBZSYmKChG'@; put 'ZT1GZXx8UmUuZGVmYXVsdEVuY29kaW5nKSE9PVJlLmVuY29kaW5nJiYoQWU9dy5mcm9tKEFlLEZlKSxGZT0iIiksSWU9ITApLGcodGhpcyxBZSxGZSwhMSxJZSl9LHoucHJvdG90eXBlLnVuc2hpZnQ9ZnVuY3Rpb24oQWUpe3JldHVybiBnKHRoaXMsQWUsbnVsbCwhMCwhMSl9LHoucHJvdG90'@; put 'eXBlLmlzUGF1c2VkPWZ1bmN0aW9uKCl7cmV0dXJuITE9PT10aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmd9LHoucHJvdG90eXBlLnNldEVuY29kaW5nPWZ1bmN0aW9uKEFlKXtpZXx8KGllPWIoNzg0NTQpLkkpO3ZhciBGZT1uZXcgaWUoQWUpO3RoaXMuX3JlYWRhYmxlU3RhdGUuZGVjb2Rl'@; put 'cj1GZSx0aGlzLl9yZWFkYWJsZVN0YXRlLmVuY29kaW5nPXRoaXMuX3JlYWRhYmxlU3RhdGUuZGVjb2Rlci5lbmNvZGluZztmb3IodmFyIFJlPXRoaXMuX3JlYWRhYmxlU3RhdGUuYnVmZmVyLmhlYWQsSWU9IiI7bnVsbCE9PVJlOylJZSs9RmUud3JpdGUoUmUuZGF0YSksUmU9UmUubmV4dDty'@; put 'ZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5idWZmZXIuY2xlYXIoKSwiIiE9PUllJiZ0aGlzLl9yZWFkYWJsZVN0YXRlLmJ1ZmZlci5wdXNoKEllKSx0aGlzLl9yZWFkYWJsZVN0YXRlLmxlbmd0aD1JZS5sZW5ndGgsdGhpc307dmFyIEM9MTA3Mzc0MTgyNDtmdW5jdGlvbiBWKEFlLEZlKXty'@; put 'ZXR1cm4gQWU8PTB8fDA9PT1GZS5sZW5ndGgmJkZlLmVuZGVkPzA6RmUub2JqZWN0TW9kZT8xOkFlIT1BZT9GZS5mbG93aW5nJiZGZS5sZW5ndGg/RmUuYnVmZmVyLmhlYWQuZGF0YS5sZW5ndGg6RmUubGVuZ3RoOihBZT5GZS5oaWdoV2F0ZXJNYXJrJiYoRmUuaGlnaFdhdGVyTWFyaz1mdW5j'@; put 'dGlvbiBUKEFlKXtyZXR1cm4gQWU+PUM/QWU9QzooQWUtLSxBZXw9QWU+Pj4xLEFlfD1BZT4+PjIsQWV8PUFlPj4+NCxBZXw9QWU+Pj44LEFlfD1BZT4+PjE2LEFlKyspLEFlfShBZSkpLEFlPD1GZS5sZW5ndGg/QWU6RmUuZW5kZWQ/RmUubGVuZ3RoOihGZS5uZWVkUmVhZGFibGU9ITAsMCkp'@; put 'fWZ1bmN0aW9uIEUoQWUpe3ZhciBGZT1BZS5fcmVhZGFibGVTdGF0ZTtQKCJlbWl0UmVhZGFibGUiLEZlLm5lZWRSZWFkYWJsZSxGZS5lbWl0dGVkUmVhZGFibGUpLEZlLm5lZWRSZWFkYWJsZT0hMSxGZS5lbWl0dGVkUmVhZGFibGV8fChQKCJlbWl0UmVhZGFibGUiLEZlLmZsb3dpbmcpLEZl'@; put 'LmVtaXR0ZWRSZWFkYWJsZT0hMCxwcm9jZXNzLm5leHRUaWNrKG0sQWUpKX1mdW5jdGlvbiBtKEFlKXt2YXIgRmU9QWUuX3JlYWRhYmxlU3RhdGU7UCgiZW1pdFJlYWRhYmxlXyIsRmUuZGVzdHJveWVkLEZlLmxlbmd0aCxGZS5lbmRlZCksIUZlLmRlc3Ryb3llZCYmKEZlLmxlbmd0aHx8RmUu'@; put 'ZW5kZWQpJiYoQWUuZW1pdCgicmVhZGFibGUiKSxGZS5lbWl0dGVkUmVhZGFibGU9ITEpLEZlLm5lZWRSZWFkYWJsZT0hRmUuZmxvd2luZyYmIUZlLmVuZGVkJiZGZS5sZW5ndGg8PUZlLmhpZ2hXYXRlck1hcmssYXQoQWUpfWZ1bmN0aW9uIEEoQWUsRmUpe0ZlLnJlYWRpbmdNb3JlfHwoRmUu'@; put 'cmVhZGluZ01vcmU9ITAscHJvY2Vzcy5uZXh0VGljayhhZSxBZSxGZSkpfWZ1bmN0aW9uIGFlKEFlLEZlKXtmb3IoOyFGZS5yZWFkaW5nJiYhRmUuZW5kZWQmJihGZS5sZW5ndGg8RmUuaGlnaFdhdGVyTWFya3x8RmUuZmxvd2luZyYmMD09PUZlLmxlbmd0aCk7KXt2YXIgUmU9RmUubGVuZ3Ro'@; put 'O2lmKFAoIm1heWJlUmVhZE1vcmUgcmVhZCAwIiksQWUucmVhZCgwKSxSZT09PUZlLmxlbmd0aClicmVha31GZS5yZWFkaW5nTW9yZT0hMX1mdW5jdGlvbiBsZShBZSl7dmFyIEZlPUFlLl9yZWFkYWJsZVN0YXRlO0ZlLnJlYWRhYmxlTGlzdGVuaW5nPUFlLmxpc3RlbmVyQ291bnQoInJlYWRh'@; put 'YmxlIik+MCxGZS5yZXN1bWVTY2hlZHVsZWQmJiFGZS5wYXVzZWQ/RmUuZmxvd2luZz0hMDpBZS5saXN0ZW5lckNvdW50KCJkYXRhIik+MCYmQWUucmVzdW1lKCl9ZnVuY3Rpb24gd2UoQWUpe1AoInJlYWRhYmxlIG5leHR0aWNrIHJlYWQgMCIpLEFlLnJlYWQoMCl9ZnVuY3Rpb24gUWUoQWUs'@; put 'RmUpe1AoInJlc3VtZSIsRmUucmVhZGluZyksRmUucmVhZGluZ3x8QWUucmVhZCgwKSxGZS5yZXN1bWVTY2hlZHVsZWQ9ITEsQWUuZW1pdCgicmVzdW1lIiksYXQoQWUpLEZlLmZsb3dpbmcmJiFGZS5yZWFkaW5nJiZBZS5yZWFkKDApfWZ1bmN0aW9uIGF0KEFlKXt2YXIgRmU9QWUuX3JlYWRh'@; put 'YmxlU3RhdGU7Zm9yKFAoImZsb3ciLEZlLmZsb3dpbmcpO0ZlLmZsb3dpbmcmJm51bGwhPT1BZS5yZWFkKCk7KTt9ZnVuY3Rpb24geGUoQWUsRmUpe3JldHVybiAwPT09RmUubGVuZ3RoP251bGw6KEZlLm9iamVjdE1vZGU/UmU9RmUuYnVmZmVyLnNoaWZ0KCk6IUFlfHxBZT49RmUubGVuZ3Ro'@; put 'PyhSZT1GZS5kZWNvZGVyP0ZlLmJ1ZmZlci5qb2luKCIiKToxPT09RmUuYnVmZmVyLmxlbmd0aD9GZS5idWZmZXIuZmlyc3QoKTpGZS5idWZmZXIuY29uY2F0KEZlLmxlbmd0aCksRmUuYnVmZmVyLmNsZWFyKCkpOlJlPUZlLmJ1ZmZlci5jb25zdW1lKEFlLEZlLmRlY29kZXIpLFJlKTt2YXIg'@; put 'UmV9ZnVuY3Rpb24gdmUoQWUpe3ZhciBGZT1BZS5fcmVhZGFibGVTdGF0ZTtQKCJlbmRSZWFkYWJsZSIsRmUuZW5kRW1pdHRlZCksRmUuZW5kRW1pdHRlZHx8KEZlLmVuZGVkPSEwLHByb2Nlc3MubmV4dFRpY2socWUsRmUsQWUpKX1mdW5jdGlvbiBxZShBZSxGZSl7aWYoUCgiZW5kUmVhZGFi'@; put 'bGVOVCIsQWUuZW5kRW1pdHRlZCxBZS5sZW5ndGgpLCFBZS5lbmRFbWl0dGVkJiYwPT09QWUubGVuZ3RoJiYoQWUuZW5kRW1pdHRlZD0hMCxGZS5yZWFkYWJsZT0hMSxGZS5lbWl0KCJlbmQiKSxBZS5hdXRvRGVzdHJveSkpe3ZhciBSZT1GZS5fd3JpdGFibGVTdGF0ZTsoIVJlfHxSZS5hdXRv'@; put 'RGVzdHJveSYmUmUuZmluaXNoZWQpJiZGZS5kZXN0cm95KCl9fWZ1bmN0aW9uIGplKEFlLEZlKXtmb3IodmFyIFJlPTAsSWU9QWUubGVuZ3RoO1JlPEllO1JlKyspaWYoQWVbUmVdPT09RmUpcmV0dXJuIFJlO3JldHVybi0xfXoucHJvdG90eXBlLnJlYWQ9ZnVuY3Rpb24oQWUpe1AoInJlYWQi'@; put 'LEFlKSxBZT1wYXJzZUludChBZSwxMCk7dmFyIEZlPXRoaXMuX3JlYWRhYmxlU3RhdGUsUmU9QWU7aWYoMCE9PUFlJiYoRmUuZW1pdHRlZFJlYWRhYmxlPSExKSwwPT09QWUmJkZlLm5lZWRSZWFkYWJsZSYmKCgwIT09RmUuaGlnaFdhdGVyTWFyaz9GZS5sZW5ndGg+PUZlLmhpZ2hXYXRlck1h'@; put 'cms6RmUubGVuZ3RoPjApfHxGZS5lbmRlZCkpcmV0dXJuIFAoInJlYWQ6IGVtaXRSZWFkYWJsZSIsRmUubGVuZ3RoLEZlLmVuZGVkKSwwPT09RmUubGVuZ3RoJiZGZS5lbmRlZD92ZSh0aGlzKTpFKHRoaXMpLG51bGw7aWYoMD09PShBZT1WKEFlLEZlKSkmJkZlLmVuZGVkKXJldHVybiAwPT09'@; put 'RmUubGVuZ3RoJiZ2ZSh0aGlzKSxudWxsO3ZhciBIZSxJZT1GZS5uZWVkUmVhZGFibGU7cmV0dXJuIFAoIm5lZWQgcmVhZGFibGUiLEllKSwoMD09PUZlLmxlbmd0aHx8RmUubGVuZ3RoLUFlPEZlLmhpZ2hXYXRlck1hcmspJiZQKCJsZW5ndGggbGVzcyB0aGFuIHdhdGVybWFyayIsSWU9ITAp'@; put 'LEZlLmVuZGVkfHxGZS5yZWFkaW5nP1AoInJlYWRpbmcgb3IgZW5kZWQiLEllPSExKTpJZSYmKFAoImRvIHJlYWQiKSxGZS5yZWFkaW5nPSEwLEZlLnN5bmM9ITAsMD09PUZlLmxlbmd0aCYmKEZlLm5lZWRSZWFkYWJsZT0hMCksdGhpcy5fcmVhZChGZS5oaWdoV2F0ZXJNYXJrKSxGZS5zeW5j'@; put 'PSExLEZlLnJlYWRpbmd8fChBZT1WKFJlLEZlKSkpLG51bGw9PT0oSGU9QWU+MD94ZShBZSxGZSk6bnVsbCk/KEZlLm5lZWRSZWFkYWJsZT1GZS5sZW5ndGg8PUZlLmhpZ2hXYXRlck1hcmssQWU9MCk6KEZlLmxlbmd0aC09QWUsRmUuYXdhaXREcmFpbj0wKSwwPT09RmUubGVuZ3RoJiYoRmUu'@; put 'ZW5kZWR8fChGZS5uZWVkUmVhZGFibGU9ITApLFJlIT09QWUmJkZlLmVuZGVkJiZ2ZSh0aGlzKSksbnVsbCE9PUhlJiZ0aGlzLmVtaXQoImRhdGEiLEhlKSxIZX0sei5wcm90b3R5cGUuX3JlYWQ9ZnVuY3Rpb24oQWUpe19lKHRoaXMsbmV3IHEoIl9yZWFkKCkiKSl9LHoucHJvdG90eXBlLnBp'@; put 'cGU9ZnVuY3Rpb24oQWUsRmUpe3ZhciBSZT10aGlzLEllPXRoaXMuX3JlYWRhYmxlU3RhdGU7c3dpdGNoKEllLnBpcGVzQ291bnQpe2Nhc2UgMDpJZS5waXBlcz1BZTticmVhaztjYXNlIDE6SWUucGlwZXM9W0llLnBpcGVzLEFlXTticmVhaztkZWZhdWx0OkllLnBpcGVzLnB1c2goQWUpfUll'@; put 'LnBpcGVzQ291bnQrPTEsUCgicGlwZSBjb3VudD0lZCBvcHRzPSVqIixJZS5waXBlc0NvdW50LEZlKTt2YXIgRGU9RmUmJiExPT09RmUuZW5kfHxBZT09PXByb2Nlc3Muc3Rkb3V0fHxBZT09PXByb2Nlc3Muc3RkZXJyP0tlOl90O2Z1bmN0aW9uIF90KCl7UCgib25lbmQiKSxBZS5lbmQoKX1J'@; put 'ZS5lbmRFbWl0dGVkP3Byb2Nlc3MubmV4dFRpY2soRGUpOlJlLm9uY2UoImVuZCIsRGUpLEFlLm9uKCJ1bnBpcGUiLGZ1bmN0aW9uIGtlKHR0LE5lKXtQKCJvbnVucGlwZSIpLHR0PT09UmUmJk5lJiYhMT09PU5lLmhhc1VucGlwZWQmJihOZS5oYXNVbnBpcGVkPSEwLGZ1bmN0aW9uIG9uKCl7'@; put 'UCgiY2xlYW51cCIpLEFlLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsSXQpLEFlLnJlbW92ZUxpc3RlbmVyKCJmaW5pc2giLHJ0KSxBZS5yZW1vdmVMaXN0ZW5lcigiZHJhaW4iLG50KSxBZS5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLE10KSxBZS5yZW1vdmVMaXN0ZW5lcigidW5waXBlIixrZSks'@; put 'UmUucmVtb3ZlTGlzdGVuZXIoImVuZCIsX3QpLFJlLnJlbW92ZUxpc3RlbmVyKCJlbmQiLEtlKSxSZS5yZW1vdmVMaXN0ZW5lcigiZGF0YSIseXQpLEplPSEwLEllLmF3YWl0RHJhaW4mJighQWUuX3dyaXRhYmxlU3RhdGV8fEFlLl93cml0YWJsZVN0YXRlLm5lZWREcmFpbikmJm50KCl9KCkp'@; put 'fSk7dmFyIG50PWZ1bmN0aW9uIG5lKEFlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgUmU9QWUuX3JlYWRhYmxlU3RhdGU7UCgicGlwZU9uRHJhaW4iLFJlLmF3YWl0RHJhaW4pLFJlLmF3YWl0RHJhaW4mJlJlLmF3YWl0RHJhaW4tLSwwPT09UmUuYXdhaXREcmFpbiYmcChBZSwiZGF0YSIpJiYo'@; put 'UmUuZmxvd2luZz0hMCxhdChBZSkpfX0oUmUpO0FlLm9uKCJkcmFpbiIsbnQpO3ZhciBKZT0hMTtmdW5jdGlvbiB5dCh0dCl7UCgib25kYXRhIik7dmFyIE5lPUFlLndyaXRlKHR0KTtQKCJkZXN0LndyaXRlIixOZSksITE9PT1OZSYmKCgxPT09SWUucGlwZXNDb3VudCYmSWUucGlwZXM9PT1B'@; put 'ZXx8SWUucGlwZXNDb3VudD4xJiYtMSE9PWplKEllLnBpcGVzLEFlKSkmJiFKZSYmKFAoImZhbHNlIHdyaXRlIHJlc3BvbnNlLCBwYXVzZSIsSWUuYXdhaXREcmFpbiksSWUuYXdhaXREcmFpbisrKSxSZS5wYXVzZSgpKX1mdW5jdGlvbiBNdCh0dCl7UCgib25lcnJvciIsdHQpLEtlKCksQWUu'@; put 'cmVtb3ZlTGlzdGVuZXIoImVycm9yIixNdCksMD09PXAoQWUsImVycm9yIikmJl9lKEFlLHR0KX1mdW5jdGlvbiBJdCgpe0FlLnJlbW92ZUxpc3RlbmVyKCJmaW5pc2giLHJ0KSxLZSgpfWZ1bmN0aW9uIHJ0KCl7UCgib25maW5pc2giKSxBZS5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLEl0KSxL'@; put 'ZSgpfWZ1bmN0aW9uIEtlKCl7UCgidW5waXBlIiksUmUudW5waXBlKEFlKX1yZXR1cm4gUmUub24oImRhdGEiLHl0KSxmdW5jdGlvbiBTZShBZSxGZSxSZSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIEFlLnByZXBlbmRMaXN0ZW5lcilyZXR1cm4gQWUucHJlcGVuZExpc3RlbmVyKEZlLFJlKTtB'@; put 'ZS5fZXZlbnRzJiZBZS5fZXZlbnRzW0ZlXT9BcnJheS5pc0FycmF5KEFlLl9ldmVudHNbRmVdKT9BZS5fZXZlbnRzW0ZlXS51bnNoaWZ0KFJlKTpBZS5fZXZlbnRzW0ZlXT1bUmUsQWUuX2V2ZW50c1tGZV1dOkFlLm9uKEZlLFJlKX0oQWUsImVycm9yIixNdCksQWUub25jZSgiY2xvc2UiLEl0'@; put 'KSxBZS5vbmNlKCJmaW5pc2giLHJ0KSxBZS5lbWl0KCJwaXBlIixSZSksSWUuZmxvd2luZ3x8KFAoInBpcGUgcmVzdW1lIiksUmUucmVzdW1lKCkpLEFlfSx6LnByb3RvdHlwZS51bnBpcGU9ZnVuY3Rpb24oQWUpe3ZhciBGZT10aGlzLl9yZWFkYWJsZVN0YXRlLFJlPXtoYXNVbnBpcGVkOiEx'@; put 'fTtpZigwPT09RmUucGlwZXNDb3VudClyZXR1cm4gdGhpcztpZigxPT09RmUucGlwZXNDb3VudClyZXR1cm4gQWUmJkFlIT09RmUucGlwZXN8fChBZXx8KEFlPUZlLnBpcGVzKSxGZS5waXBlcz1udWxsLEZlLnBpcGVzQ291bnQ9MCxGZS5mbG93aW5nPSExLEFlJiZBZS5lbWl0KCJ1bnBpcGUi'@; put 'LHRoaXMsUmUpKSx0aGlzO2lmKCFBZSl7dmFyIEllPUZlLnBpcGVzLEhlPUZlLnBpcGVzQ291bnQ7RmUucGlwZXM9bnVsbCxGZS5waXBlc0NvdW50PTAsRmUuZmxvd2luZz0hMTtmb3IodmFyIERlPTA7RGU8SGU7RGUrKylJZVtEZV0uZW1pdCgidW5waXBlIix0aGlzLHtoYXNVbnBpcGVkOiEx'@; put 'fSk7cmV0dXJuIHRoaXN9dmFyIGtlPWplKEZlLnBpcGVzLEFlKTtyZXR1cm4tMT09PWtlfHwoRmUucGlwZXMuc3BsaWNlKGtlLDEpLEZlLnBpcGVzQ291bnQtPTEsMT09PUZlLnBpcGVzQ291bnQmJihGZS5waXBlcz1GZS5waXBlc1swXSksQWUuZW1pdCgidW5waXBlIix0aGlzLFJlKSksdGhp'@; put 'c30sei5wcm90b3R5cGUuYWRkTGlzdGVuZXI9ei5wcm90b3R5cGUub249ZnVuY3Rpb24oQWUsRmUpe3ZhciBSZT1OLnByb3RvdHlwZS5vbi5jYWxsKHRoaXMsQWUsRmUpLEllPXRoaXMuX3JlYWRhYmxlU3RhdGU7cmV0dXJuImRhdGEiPT09QWU/KEllLnJlYWRhYmxlTGlzdGVuaW5nPXRoaXMu'@; put 'bGlzdGVuZXJDb3VudCgicmVhZGFibGUiKT4wLCExIT09SWUuZmxvd2luZyYmdGhpcy5yZXN1bWUoKSk6InJlYWRhYmxlIj09PUFlJiYhSWUuZW5kRW1pdHRlZCYmIUllLnJlYWRhYmxlTGlzdGVuaW5nJiYoSWUucmVhZGFibGVMaXN0ZW5pbmc9SWUubmVlZFJlYWRhYmxlPSEwLEllLmZsb3dp'@; put 'bmc9ITEsSWUuZW1pdHRlZFJlYWRhYmxlPSExLFAoIm9uIHJlYWRhYmxlIixJZS5sZW5ndGgsSWUucmVhZGluZyksSWUubGVuZ3RoP0UodGhpcyk6SWUucmVhZGluZ3x8cHJvY2Vzcy5uZXh0VGljayh3ZSx0aGlzKSksUmV9LHoucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPWZ1bmN0aW9uKEFl'@; put 'LEZlKXt2YXIgUmU9Ti5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXIuY2FsbCh0aGlzLEFlLEZlKTtyZXR1cm4icmVhZGFibGUiPT09QWUmJnByb2Nlc3MubmV4dFRpY2sobGUsdGhpcyksUmV9LHoucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycz1mdW5jdGlvbihBZSl7dmFyIEZlPU4ucHJv'@; put 'dG90eXBlLnJlbW92ZUFsbExpc3RlbmVycy5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuKCJyZWFkYWJsZSI9PT1BZXx8dm9pZCAwPT09QWUpJiZwcm9jZXNzLm5leHRUaWNrKGxlLHRoaXMpLEZlfSx6LnByb3RvdHlwZS5yZXN1bWU9ZnVuY3Rpb24oKXt2YXIgQWU9dGhpcy5fcmVhZGFi'@; put 'bGVTdGF0ZTtyZXR1cm4gQWUuZmxvd2luZ3x8KFAoInJlc3VtZSIpLEFlLmZsb3dpbmc9IUFlLnJlYWRhYmxlTGlzdGVuaW5nLGZ1bmN0aW9uIFplKEFlLEZlKXtGZS5yZXN1bWVTY2hlZHVsZWR8fChGZS5yZXN1bWVTY2hlZHVsZWQ9ITAscHJvY2Vzcy5uZXh0VGljayhRZSxBZSxGZSkpfSh0'@; put 'aGlzLEFlKSksQWUucGF1c2VkPSExLHRoaXN9LHoucHJvdG90eXBlLnBhdXNlPWZ1bmN0aW9uKCl7cmV0dXJuIFAoImNhbGwgcGF1c2UgZmxvd2luZz0laiIsdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nKSwhMSE9PXRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZyYmKFAoInBhdXNlIiks'@; put 'dGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nPSExLHRoaXMuZW1pdCgicGF1c2UiKSksdGhpcy5fcmVhZGFibGVTdGF0ZS5wYXVzZWQ9ITAsdGhpc30sei5wcm90b3R5cGUud3JhcD1mdW5jdGlvbihBZSl7dmFyIEZlPXRoaXMsUmU9dGhpcy5fcmVhZGFibGVTdGF0ZSxJZT0hMTtmb3IodmFy'@; put 'IEhlIGluIEFlLm9uKCJlbmQiLGZ1bmN0aW9uKCl7aWYoUCgid3JhcHBlZCBlbmQiKSxSZS5kZWNvZGVyJiYhUmUuZW5kZWQpe3ZhciBrZT1SZS5kZWNvZGVyLmVuZCgpO2tlJiZrZS5sZW5ndGgmJkZlLnB1c2goa2UpfUZlLnB1c2gobnVsbCl9KSxBZS5vbigiZGF0YSIsZnVuY3Rpb24oa2Up'@; put 'e1AoIndyYXBwZWQgZGF0YSIpLFJlLmRlY29kZXImJihrZT1SZS5kZWNvZGVyLndyaXRlKGtlKSksUmUub2JqZWN0TW9kZSYmbnVsbD09a2V8fCEoUmUub2JqZWN0TW9kZXx8a2UmJmtlLmxlbmd0aCl8fEZlLnB1c2goa2UpfHwoSWU9ITAsQWUucGF1c2UoKSl9KSxBZSl2b2lkIDA9PT10aGlz'@; put 'W0hlXSYmImZ1bmN0aW9uIj09dHlwZW9mIEFlW0hlXSYmKHRoaXNbSGVdPWZ1bmN0aW9uKF90KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQWVbX3RdLmFwcGx5KEFlLGFyZ3VtZW50cyl9fShIZSkpO2Zvcih2YXIgRGU9MDtEZTxUZS5sZW5ndGg7RGUrKylBZS5vbihUZVtEZV0sdGhpcy5l'@; put 'bWl0LmJpbmQodGhpcyxUZVtEZV0pKTtyZXR1cm4gdGhpcy5fcmVhZD1mdW5jdGlvbihrZSl7UCgid3JhcHBlZCBfcmVhZCIsa2UpLEllJiYoSWU9ITEsQWUucmVzdW1lKCkpfSx0aGlzfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoei5wcm90b3R5cGVbU3ltYm9sLmFzeW5jSXRlcmF0'@; put 'b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PXNlJiYoc2U9YigxMjY4MykpLHNlKHRoaXMpfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHoucHJvdG90eXBlLCJyZWFkYWJsZUhpZ2hXYXRlck1hcmsiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZWFk'@; put 'YWJsZVN0YXRlLmhpZ2hXYXRlck1hcmt9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHoucHJvdG90eXBlLCJyZWFkYWJsZUJ1ZmZlciIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuYnVmZmVyfX0p'@; put 'LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh6LnByb3RvdHlwZSwicmVhZGFibGVGbG93aW5nIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nfSxzZXQ6ZnVuY3Rpb24oRmUpe3RoaXMuX3JlYWRhYmxlU3RhdGUmJih0aGlzLl9y'@; put 'ZWFkYWJsZVN0YXRlLmZsb3dpbmc9RmUpfX0pLHouX2Zyb21MaXN0PXhlLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh6LnByb3RvdHlwZSwicmVhZGFibGVMZW5ndGgiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlLmxlbmd0aH19KSwiZnVu'@; put 'Y3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoei5mcm9tPWZ1bmN0aW9uKEFlLEZlKXtyZXR1cm4gdm9pZCAwPT09Z2UmJihnZT1iKDQ3NzY1KSksZ2UoeixBZSxGZSl9KX0sNDM0MTA6KGNlLEosYik9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz1SO3ZhciBEPWIoMzA0NjQpLkYsXz1ELkVSUl9N'@; put 'RVRIT0RfTk9UX0lNUExFTUVOVEVELHA9RC5FUlJfTVVMVElQTEVfQ0FMTEJBQ0ssTj1ELkVSUl9UUkFOU0ZPUk1fQUxSRUFEWV9UUkFOU0ZPUk1JTkcsdz1ELkVSUl9UUkFOU0ZPUk1fV0lUSF9MRU5HVEhfMCxGPWIoMTAzMCk7ZnVuY3Rpb24gSChMLFkpe3ZhciBCPXRoaXMuX3RyYW5zZm9y'@; put 'bVN0YXRlO0IudHJhbnNmb3JtaW5nPSExO3ZhciBXPUIud3JpdGVjYjtpZihudWxsPT09VylyZXR1cm4gdGhpcy5lbWl0KCJlcnJvciIsbmV3IHApO0Iud3JpdGVjaHVuaz1udWxsLEIud3JpdGVjYj1udWxsLG51bGwhPVkmJnRoaXMucHVzaChZKSxXKEwpO3ZhciBaPXRoaXMuX3JlYWRhYmxl'@; put 'U3RhdGU7Wi5yZWFkaW5nPSExLChaLm5lZWRSZWFkYWJsZXx8Wi5sZW5ndGg8Wi5oaWdoV2F0ZXJNYXJrKSYmdGhpcy5fcmVhZChaLmhpZ2hXYXRlck1hcmspfWZ1bmN0aW9uIFIoTCl7aWYoISh0aGlzIGluc3RhbmNlb2YgUikpcmV0dXJuIG5ldyBSKEwpO0YuY2FsbCh0aGlzLEwpLHRoaXMu'@; put 'X3RyYW5zZm9ybVN0YXRlPXthZnRlclRyYW5zZm9ybTpILmJpbmQodGhpcyksbmVlZFRyYW5zZm9ybTohMSx0cmFuc2Zvcm1pbmc6ITEsd3JpdGVjYjpudWxsLHdyaXRlY2h1bms6bnVsbCx3cml0ZWVuY29kaW5nOm51bGx9LHRoaXMuX3JlYWRhYmxlU3RhdGUubmVlZFJlYWRhYmxlPSEwLHRo'@; put 'aXMuX3JlYWRhYmxlU3RhdGUuc3luYz0hMSxMJiYoImZ1bmN0aW9uIj09dHlwZW9mIEwudHJhbnNmb3JtJiYodGhpcy5fdHJhbnNmb3JtPUwudHJhbnNmb3JtKSwiZnVuY3Rpb24iPT10eXBlb2YgTC5mbHVzaCYmKHRoaXMuX2ZsdXNoPUwuZmx1c2gpKSx0aGlzLm9uKCJwcmVmaW5pc2giLGop'@; put 'fWZ1bmN0aW9uIGooKXt2YXIgTD10aGlzOyJmdW5jdGlvbiIhPXR5cGVvZiB0aGlzLl9mbHVzaHx8dGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ/UCh0aGlzLG51bGwsbnVsbCk6dGhpcy5fZmx1c2goZnVuY3Rpb24oWSxCKXtQKEwsWSxCKX0pfWZ1bmN0aW9uIFAoTCxZLEIpe2lmKFkp'@; put 'cmV0dXJuIEwuZW1pdCgiZXJyb3IiLFkpO2lmKG51bGwhPUImJkwucHVzaChCKSxMLl93cml0YWJsZVN0YXRlLmxlbmd0aCl0aHJvdyBuZXcgdztpZihMLl90cmFuc2Zvcm1TdGF0ZS50cmFuc2Zvcm1pbmcpdGhyb3cgbmV3IE47cmV0dXJuIEwucHVzaChudWxsKX1iKDcxOTkzKShSLEYpLFIu'@; put 'cHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oTCxZKXtyZXR1cm4gdGhpcy5fdHJhbnNmb3JtU3RhdGUubmVlZFRyYW5zZm9ybT0hMSxGLnByb3RvdHlwZS5wdXNoLmNhbGwodGhpcyxMLFkpfSxSLnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1bmN0aW9uKEwsWSxCKXtCKG5ldyBfKCJfdHJhbnNmb3Jt'@; put 'KCkiKSl9LFIucHJvdG90eXBlLl93cml0ZT1mdW5jdGlvbihMLFksQil7dmFyIFc9dGhpcy5fdHJhbnNmb3JtU3RhdGU7aWYoVy53cml0ZWNiPUIsVy53cml0ZWNodW5rPUwsVy53cml0ZWVuY29kaW5nPVksIVcudHJhbnNmb3JtaW5nKXt2YXIgWj10aGlzLl9yZWFkYWJsZVN0YXRlOyhXLm5l'@; put 'ZWRUcmFuc2Zvcm18fFoubmVlZFJlYWRhYmxlfHxaLmxlbmd0aDxaLmhpZ2hXYXRlck1hcmspJiZ0aGlzLl9yZWFkKFouaGlnaFdhdGVyTWFyayl9fSxSLnByb3RvdHlwZS5fcmVhZD1mdW5jdGlvbihMKXt2YXIgWT10aGlzLl90cmFuc2Zvcm1TdGF0ZTtudWxsPT09WS53cml0ZWNodW5rfHxZ'@; put 'LnRyYW5zZm9ybWluZz9ZLm5lZWRUcmFuc2Zvcm09ITA6KFkudHJhbnNmb3JtaW5nPSEwLHRoaXMuX3RyYW5zZm9ybShZLndyaXRlY2h1bmssWS53cml0ZWVuY29kaW5nLFkuYWZ0ZXJUcmFuc2Zvcm0pKX0sUi5wcm90b3R5cGUuX2Rlc3Ryb3k9ZnVuY3Rpb24oTCxZKXtGLnByb3RvdHlwZS5f'@; put 'ZGVzdHJveS5jYWxsKHRoaXMsTCxmdW5jdGlvbihCKXtZKEIpfSl9fSwxNTQ5MjooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBfKGF0KXt2YXIgeGU9dGhpczt0aGlzLm5leHQ9bnVsbCx0aGlzLmVudHJ5PW51bGwsdGhpcy5maW5pc2g9ZnVuY3Rpb24oKXshZnVuY3Rpb24gUWUo'@; put 'YXQseGUsdmUpe3ZhciBxZT1hdC5lbnRyeTtmb3IoYXQuZW50cnk9bnVsbDtxZTspe3ZhciBqZT1xZS5jYWxsYmFjazt4ZS5wZW5kaW5nY2ItLSxqZSh2ZSkscWU9cWUubmV4dH14ZS5jb3JrZWRSZXF1ZXN0c0ZyZWUubmV4dD1hdH0oeGUsYXQpfX12YXIgcDtjZS5leHBvcnRzPXplLHplLldy'@; put 'aXRhYmxlU3RhdGU9VGU7dmFyIFNlLE49e2RlcHJlY2F0ZTpiKDMzOTgpfSx3PWIoMTI2MDEpLEY9Yig4MzgzOCkuQnVmZmVyLEg9KHR5cGVvZiBnbG9iYWw8InUiP2dsb2JhbDp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dHlwZW9mIHNlbGY8InUiP3NlbGY6e30pLlVpbnQ4QXJyYXl8fGZ1'@; put 'bmN0aW9uKCl7fSxQPWIoODgxNTIpLFk9YigyMjgyNykuZ2V0SGlnaFdhdGVyTWFyayxCPWIoMzA0NjQpLkYsVz1CLkVSUl9JTlZBTElEX0FSR19UWVBFLFo9Qi5FUlJfTUVUSE9EX05PVF9JTVBMRU1FTlRFRCxYPUIuRVJSX01VTFRJUExFX0NBTExCQUNLLFE9Qi5FUlJfU1RSRUFNX0NBTk5P'@; put 'VF9QSVBFLHE9Qi5FUlJfU1RSRUFNX0RFU1RST1lFRCx0ZT1CLkVSUl9TVFJFQU1fTlVMTF9WQUxVRVMsaWU9Qi5FUlJfU1RSRUFNX1dSSVRFX0FGVEVSX0VORCxzZT1CLkVSUl9VTktOT1dOX0VOQ09ESU5HLGdlPVAuZXJyb3JPckRlc3Ryb3k7ZnVuY3Rpb24gX2UoKXt9ZnVuY3Rpb24gVGUo'@; put 'YXQseGUsdmUpe3A9cHx8YigxMDMwKSwiYm9vbGVhbiIhPXR5cGVvZiB2ZSYmKHZlPXhlIGluc3RhbmNlb2YgcCksdGhpcy5vYmplY3RNb2RlPSEhKGF0PWF0fHx7fSkub2JqZWN0TW9kZSx2ZSYmKHRoaXMub2JqZWN0TW9kZT10aGlzLm9iamVjdE1vZGV8fCEhYXQud3JpdGFibGVPYmplY3RN'@; put 'b2RlKSx0aGlzLmhpZ2hXYXRlck1hcms9WSh0aGlzLGF0LCJ3cml0YWJsZUhpZ2hXYXRlck1hcmsiLHZlKSx0aGlzLmZpbmFsQ2FsbGVkPSExLHRoaXMubmVlZERyYWluPSExLHRoaXMuZW5kaW5nPSExLHRoaXMuZW5kZWQ9ITEsdGhpcy5maW5pc2hlZD0hMSx0aGlzLmRlc3Ryb3llZD0hMSx0'@; put 'aGlzLmRlY29kZVN0cmluZ3M9ISghMT09PWF0LmRlY29kZVN0cmluZ3MpLHRoaXMuZGVmYXVsdEVuY29kaW5nPWF0LmRlZmF1bHRFbmNvZGluZ3x8InV0ZjgiLHRoaXMubGVuZ3RoPTAsdGhpcy53cml0aW5nPSExLHRoaXMuY29ya2VkPTAsdGhpcy5zeW5jPSEwLHRoaXMuYnVmZmVyUHJvY2Vz'@; put 'c2luZz0hMSx0aGlzLm9ud3JpdGU9ZnVuY3Rpb24oamUpeyFmdW5jdGlvbiBVKGF0LHhlKXt2YXIgdmU9YXQuX3dyaXRhYmxlU3RhdGUscWU9dmUuc3luYyxqZT12ZS53cml0ZWNiO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBqZSl0aHJvdyBuZXcgWDtpZihmdW5jdGlvbiBWKGF0KXthdC53cml0'@; put 'aW5nPSExLGF0LndyaXRlY2I9bnVsbCxhdC5sZW5ndGgtPWF0LndyaXRlbGVuLGF0LndyaXRlbGVuPTB9KHZlKSx4ZSkhZnVuY3Rpb24gVChhdCx4ZSx2ZSxxZSxqZSl7LS14ZS5wZW5kaW5nY2IsdmU/KHByb2Nlc3MubmV4dFRpY2soamUscWUpLHByb2Nlc3MubmV4dFRpY2sod2UsYXQseGUp'@; put 'LGF0Ll93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCxnZShhdCxxZSkpOihqZShxZSksYXQuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPSEwLGdlKGF0LHFlKSx3ZShhdCx4ZSkpfShhdCx2ZSxxZSx4ZSxqZSk7ZWxzZXt2YXIgQWU9YWUodmUpfHxhdC5kZXN0cm95ZWQ7IUFlJiYh'@; put 'dmUuY29ya2VkJiYhdmUuYnVmZmVyUHJvY2Vzc2luZyYmdmUuYnVmZmVyZWRSZXF1ZXN0JiZBKGF0LHZlKSxxZT9wcm9jZXNzLm5leHRUaWNrKEUsYXQsdmUsQWUsamUpOkUoYXQsdmUsQWUsamUpfX0oeGUsamUpfSx0aGlzLndyaXRlY2I9bnVsbCx0aGlzLndyaXRlbGVuPTAsdGhpcy5idWZm'@; put 'ZXJlZFJlcXVlc3Q9bnVsbCx0aGlzLmxhc3RCdWZmZXJlZFJlcXVlc3Q9bnVsbCx0aGlzLnBlbmRpbmdjYj0wLHRoaXMucHJlZmluaXNoZWQ9ITEsdGhpcy5lcnJvckVtaXR0ZWQ9ITEsdGhpcy5lbWl0Q2xvc2U9ITEhPT1hdC5lbWl0Q2xvc2UsdGhpcy5hdXRvRGVzdHJveT0hIWF0LmF1dG9E'@; put 'ZXN0cm95LHRoaXMuYnVmZmVyZWRSZXF1ZXN0Q291bnQ9MCx0aGlzLmNvcmtlZFJlcXVlc3RzRnJlZT1uZXcgXyh0aGlzKX1mdW5jdGlvbiB6ZShhdCl7dmFyIHhlPXRoaXMgaW5zdGFuY2VvZihwPXB8fGIoMTAzMCkpO2lmKCF4ZSYmIVNlLmNhbGwoemUsdGhpcykpcmV0dXJuIG5ldyB6ZShh'@; put 'dCk7dGhpcy5fd3JpdGFibGVTdGF0ZT1uZXcgVGUoYXQsdGhpcyx4ZSksdGhpcy53cml0YWJsZT0hMCxhdCYmKCJmdW5jdGlvbiI9PXR5cGVvZiBhdC53cml0ZSYmKHRoaXMuX3dyaXRlPWF0LndyaXRlKSwiZnVuY3Rpb24iPT10eXBlb2YgYXQud3JpdGV2JiYodGhpcy5fd3JpdGV2PWF0Lndy'@; put 'aXRldiksImZ1bmN0aW9uIj09dHlwZW9mIGF0LmRlc3Ryb3kmJih0aGlzLl9kZXN0cm95PWF0LmRlc3Ryb3kpLCJmdW5jdGlvbiI9PXR5cGVvZiBhdC5maW5hbCYmKHRoaXMuX2ZpbmFsPWF0LmZpbmFsKSksdy5jYWxsKHRoaXMpfWZ1bmN0aW9uIEMoYXQseGUsdmUscWUsamUsQWUsRmUpe3hl'@; put 'LndyaXRlbGVuPXFlLHhlLndyaXRlY2I9RmUseGUud3JpdGluZz0hMCx4ZS5zeW5jPSEwLHhlLmRlc3Ryb3llZD94ZS5vbndyaXRlKG5ldyBxKCJ3cml0ZSIpKTp2ZT9hdC5fd3JpdGV2KGplLHhlLm9ud3JpdGUpOmF0Ll93cml0ZShqZSxBZSx4ZS5vbndyaXRlKSx4ZS5zeW5jPSExfWZ1bmN0'@; put 'aW9uIEUoYXQseGUsdmUscWUpe3ZlfHxmdW5jdGlvbiBtKGF0LHhlKXswPT09eGUubGVuZ3RoJiZ4ZS5uZWVkRHJhaW4mJih4ZS5uZWVkRHJhaW49ITEsYXQuZW1pdCgiZHJhaW4iKSl9KGF0LHhlKSx4ZS5wZW5kaW5nY2ItLSxxZSgpLHdlKGF0LHhlKX1mdW5jdGlvbiBBKGF0LHhlKXt4ZS5i'@; put 'dWZmZXJQcm9jZXNzaW5nPSEwO3ZhciB2ZT14ZS5idWZmZXJlZFJlcXVlc3Q7aWYoYXQuX3dyaXRldiYmdmUmJnZlLm5leHQpe3ZhciBqZT1uZXcgQXJyYXkoeGUuYnVmZmVyZWRSZXF1ZXN0Q291bnQpLEFlPXhlLmNvcmtlZFJlcXVlc3RzRnJlZTtBZS5lbnRyeT12ZTtmb3IodmFyIEZlPTAs'@; put 'UmU9ITA7dmU7KWplW0ZlXT12ZSx2ZS5pc0J1Znx8KFJlPSExKSx2ZT12ZS5uZXh0LEZlKz0xO2plLmFsbEJ1ZmZlcnM9UmUsQyhhdCx4ZSwhMCx4ZS5sZW5ndGgsamUsIiIsQWUuZmluaXNoKSx4ZS5wZW5kaW5nY2IrKyx4ZS5sYXN0QnVmZmVyZWRSZXF1ZXN0PW51bGwsQWUubmV4dD8oeGUu'@; put 'Y29ya2VkUmVxdWVzdHNGcmVlPUFlLm5leHQsQWUubmV4dD1udWxsKTp4ZS5jb3JrZWRSZXF1ZXN0c0ZyZWU9bmV3IF8oeGUpLHhlLmJ1ZmZlcmVkUmVxdWVzdENvdW50PTB9ZWxzZXtmb3IoO3ZlOyl7dmFyIEllPXZlLmNodW5rO2lmKEMoYXQseGUsITEseGUub2JqZWN0TW9kZT8xOkllLmxl'@; put 'bmd0aCxJZSx2ZS5lbmNvZGluZyx2ZS5jYWxsYmFjayksdmU9dmUubmV4dCx4ZS5idWZmZXJlZFJlcXVlc3RDb3VudC0tLHhlLndyaXRpbmcpYnJlYWt9bnVsbD09PXZlJiYoeGUubGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsKX14ZS5idWZmZXJlZFJlcXVlc3Q9dmUseGUuYnVmZmVyUHJvY2Vz'@; put 'c2luZz0hMX1mdW5jdGlvbiBhZShhdCl7cmV0dXJuIGF0LmVuZGluZyYmMD09PWF0Lmxlbmd0aCYmbnVsbD09PWF0LmJ1ZmZlcmVkUmVxdWVzdCYmIWF0LmZpbmlzaGVkJiYhYXQud3JpdGluZ31mdW5jdGlvbiBuZShhdCx4ZSl7YXQuX2ZpbmFsKGZ1bmN0aW9uKHZlKXt4ZS5wZW5kaW5nY2It'@; put 'LSx2ZSYmZ2UoYXQsdmUpLHhlLnByZWZpbmlzaGVkPSEwLGF0LmVtaXQoInByZWZpbmlzaCIpLHdlKGF0LHhlKX0pfWZ1bmN0aW9uIHdlKGF0LHhlKXt2YXIgdmU9YWUoeGUpO2lmKHZlJiYoZnVuY3Rpb24gbGUoYXQseGUpeyF4ZS5wcmVmaW5pc2hlZCYmIXhlLmZpbmFsQ2FsbGVkJiYoImZ1'@; put 'bmN0aW9uIiE9dHlwZW9mIGF0Ll9maW5hbHx8eGUuZGVzdHJveWVkPyh4ZS5wcmVmaW5pc2hlZD0hMCxhdC5lbWl0KCJwcmVmaW5pc2giKSk6KHhlLnBlbmRpbmdjYisrLHhlLmZpbmFsQ2FsbGVkPSEwLHByb2Nlc3MubmV4dFRpY2sobmUsYXQseGUpKSl9KGF0LHhlKSwwPT09eGUucGVuZGlu'@; put 'Z2NiJiYoeGUuZmluaXNoZWQ9ITAsYXQuZW1pdCgiZmluaXNoIikseGUuYXV0b0Rlc3Ryb3kpKSl7dmFyIHFlPWF0Ll9yZWFkYWJsZVN0YXRlOyghcWV8fHFlLmF1dG9EZXN0cm95JiZxZS5lbmRFbWl0dGVkKSYmYXQuZGVzdHJveSgpfXJldHVybiB2ZX1iKDcxOTkzKSh6ZSx3KSxUZS5wcm90'@; put 'b3R5cGUuZ2V0QnVmZmVyPWZ1bmN0aW9uKCl7Zm9yKHZhciB4ZT10aGlzLmJ1ZmZlcmVkUmVxdWVzdCx2ZT1bXTt4ZTspdmUucHVzaCh4ZSkseGU9eGUubmV4dDtyZXR1cm4gdmV9LGZ1bmN0aW9uKCl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShUZS5wcm90b3R5cGUsImJ1ZmZlciIse2dl'@; put 'dDpOLmRlcHJlY2F0ZShmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldEJ1ZmZlcigpfSwiX3dyaXRhYmxlU3RhdGUuYnVmZmVyIGlzIGRlcHJlY2F0ZWQuIFVzZSBfd3JpdGFibGVTdGF0ZS5nZXRCdWZmZXIgaW5zdGVhZC4iLCJERVAwMDAzIil9KX1jYXRjaHt9fSgpLCJmdW5jdGlvbiI9PXR5'@; put 'cGVvZiBTeW1ib2wmJlN5bWJvbC5oYXNJbnN0YW5jZSYmImZ1bmN0aW9uIj09dHlwZW9mIEZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdPyhTZT1GdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXSxPYmplY3QuZGVmaW5lUHJvcGVydHkoemUsU3ltYm9s'@; put 'Lmhhc0luc3RhbmNlLHt2YWx1ZTpmdW5jdGlvbih4ZSl7cmV0dXJuISFTZS5jYWxsKHRoaXMseGUpfHx0aGlzPT09emUmJnhlJiZ4ZS5fd3JpdGFibGVTdGF0ZSBpbnN0YW5jZW9mIFRlfX0pKTpTZT1mdW5jdGlvbih4ZSl7cmV0dXJuIHhlIGluc3RhbmNlb2YgdGhpc30semUucHJvdG90eXBl'@; put 'LnBpcGU9ZnVuY3Rpb24oKXtnZSh0aGlzLG5ldyBRKX0semUucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGF0LHhlLHZlKXt2YXIgcWU9dGhpcy5fd3JpdGFibGVTdGF0ZSxqZT0hMSxBZT0hcWUub2JqZWN0TW9kZSYmZnVuY3Rpb24gaihhdCl7cmV0dXJuIEYuaXNCdWZmZXIoYXQpfHxhdCBp'@; put 'bnN0YW5jZW9mIEh9KGF0KTtyZXR1cm4gQWUmJiFGLmlzQnVmZmVyKGF0KSYmKGF0PWZ1bmN0aW9uIFIoYXQpe3JldHVybiBGLmZyb20oYXQpfShhdCkpLCJmdW5jdGlvbiI9PXR5cGVvZiB4ZSYmKHZlPXhlLHhlPW51bGwpLEFlP3hlPSJidWZmZXIiOnhlfHwoeGU9cWUuZGVmYXVsdEVuY29k'@; put 'aW5nKSwiZnVuY3Rpb24iIT10eXBlb2YgdmUmJih2ZT1fZSkscWUuZW5kaW5nP2Z1bmN0aW9uIHooYXQseGUpe3ZhciB2ZT1uZXcgaWU7Z2UoYXQsdmUpLHByb2Nlc3MubmV4dFRpY2soeGUsdmUpfSh0aGlzLHZlKTooQWV8fGZ1bmN0aW9uIGcoYXQseGUsdmUscWUpe3ZhciBqZTtyZXR1cm4g'@; put 'bnVsbD09PXZlP2plPW5ldyB0ZToic3RyaW5nIiE9dHlwZW9mIHZlJiYheGUub2JqZWN0TW9kZSYmKGplPW5ldyBXKCJjaHVuayIsWyJzdHJpbmciLCJCdWZmZXIiXSx2ZSkpLCFqZXx8KGdlKGF0LGplKSxwcm9jZXNzLm5leHRUaWNrKHFlLGplKSwhMSl9KHRoaXMscWUsYXQsdmUpKSYmKHFl'@; put 'LnBlbmRpbmdjYisrLGplPWZ1bmN0aW9uIHgoYXQseGUsdmUscWUsamUsQWUpe2lmKCF2ZSl7dmFyIEZlPWZ1bmN0aW9uIHkoYXQseGUsdmUpe3JldHVybiFhdC5vYmplY3RNb2RlJiYhMSE9PWF0LmRlY29kZVN0cmluZ3MmJiJzdHJpbmciPT10eXBlb2YgeGUmJih4ZT1GLmZyb20oeGUsdmUp'@; put 'KSx4ZX0oeGUscWUsamUpO3FlIT09RmUmJih2ZT0hMCxqZT0iYnVmZmVyIixxZT1GZSl9dmFyIFJlPXhlLm9iamVjdE1vZGU/MTpxZS5sZW5ndGg7eGUubGVuZ3RoKz1SZTt2YXIgSWU9eGUubGVuZ3RoPHhlLmhpZ2hXYXRlck1hcms7aWYoSWV8fCh4ZS5uZWVkRHJhaW49ITApLHhlLndyaXRp'@; put 'bmd8fHhlLmNvcmtlZCl7dmFyIEhlPXhlLmxhc3RCdWZmZXJlZFJlcXVlc3Q7eGUubGFzdEJ1ZmZlcmVkUmVxdWVzdD17Y2h1bms6cWUsZW5jb2Rpbmc6amUsaXNCdWY6dmUsY2FsbGJhY2s6QWUsbmV4dDpudWxsfSxIZT9IZS5uZXh0PXhlLmxhc3RCdWZmZXJlZFJlcXVlc3Q6eGUuYnVmZmVy'@; put 'ZWRSZXF1ZXN0PXhlLmxhc3RCdWZmZXJlZFJlcXVlc3QseGUuYnVmZmVyZWRSZXF1ZXN0Q291bnQrPTF9ZWxzZSBDKGF0LHhlLCExLFJlLHFlLGplLEFlKTtyZXR1cm4gSWV9KHRoaXMscWUsQWUsYXQseGUsdmUpKSxqZX0semUucHJvdG90eXBlLmNvcms9ZnVuY3Rpb24oKXt0aGlzLl93cml0'@; put 'YWJsZVN0YXRlLmNvcmtlZCsrfSx6ZS5wcm90b3R5cGUudW5jb3JrPWZ1bmN0aW9uKCl7dmFyIGF0PXRoaXMuX3dyaXRhYmxlU3RhdGU7YXQuY29ya2VkJiYoYXQuY29ya2VkLS0sIWF0LndyaXRpbmcmJiFhdC5jb3JrZWQmJiFhdC5idWZmZXJQcm9jZXNzaW5nJiZhdC5idWZmZXJlZFJlcXVl'@; put 'c3QmJkEodGhpcyxhdCkpfSx6ZS5wcm90b3R5cGUuc2V0RGVmYXVsdEVuY29kaW5nPWZ1bmN0aW9uKHhlKXtpZigic3RyaW5nIj09dHlwZW9mIHhlJiYoeGU9eGUudG9Mb3dlckNhc2UoKSksIShbImhleCIsInV0ZjgiLCJ1dGYtOCIsImFzY2lpIiwiYmluYXJ5IiwiYmFzZTY0IiwidWNzMiIs'@; put 'InVjcy0yIiwidXRmMTZsZSIsInV0Zi0xNmxlIiwicmF3Il0uaW5kZXhPZigoeGUrIiIpLnRvTG93ZXJDYXNlKCkpPi0xKSl0aHJvdyBuZXcgc2UoeGUpO3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmRlZmF1bHRFbmNvZGluZz14ZSx0aGlzfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoemUu'@; put 'cHJvdG90eXBlLCJ3cml0YWJsZUJ1ZmZlciIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZ2V0QnVmZmVyKCl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHplLnByb3RvdHlwZSwid3JpdGFibGVI'@; put 'aWdoV2F0ZXJNYXJrIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5oaWdoV2F0ZXJNYXJrfX0pLHplLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24oYXQseGUsdmUpe3ZlKG5ldyBaKCJfd3JpdGUoKSIpKX0semUucHJvdG90eXBlLl93'@; put 'cml0ZXY9bnVsbCx6ZS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKGF0LHhlLHZlKXt2YXIgcWU9dGhpcy5fd3JpdGFibGVTdGF0ZTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgYXQ/KHZlPWF0LGF0PW51bGwseGU9bnVsbCk6ImZ1bmN0aW9uIj09dHlwZW9mIHhlJiYodmU9eGUseGU9bnVsbCks'@; put 'bnVsbCE9YXQmJnRoaXMud3JpdGUoYXQseGUpLHFlLmNvcmtlZCYmKHFlLmNvcmtlZD0xLHRoaXMudW5jb3JrKCkpLHFlLmVuZGluZ3x8ZnVuY3Rpb24gWmUoYXQseGUsdmUpe3hlLmVuZGluZz0hMCx3ZShhdCx4ZSksdmUmJih4ZS5maW5pc2hlZD9wcm9jZXNzLm5leHRUaWNrKHZlKTphdC5v'@; put 'bmNlKCJmaW5pc2giLHZlKSkseGUuZW5kZWQ9ITAsYXQud3JpdGFibGU9ITF9KHRoaXMscWUsdmUpLHRoaXN9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh6ZS5wcm90b3R5cGUsIndyaXRhYmxlTGVuZ3RoIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFi'@; put 'bGVTdGF0ZS5sZW5ndGh9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHplLnByb3RvdHlwZSwiZGVzdHJveWVkIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWR9LHNl'@; put 'dDpmdW5jdGlvbih4ZSl7dGhpcy5fd3JpdGFibGVTdGF0ZSYmKHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkPXhlKX19KSx6ZS5wcm90b3R5cGUuZGVzdHJveT1QLmRlc3Ryb3ksemUucHJvdG90eXBlLl91bmRlc3Ryb3k9UC51bmRlc3Ryb3ksemUucHJvdG90eXBlLl9kZXN0cm95PWZ1'@; put 'bmN0aW9uKGF0LHhlKXt4ZShhdCl9fSwxMjY4MzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRDtmdW5jdGlvbiBfKGllLHNlLGdlKXtyZXR1cm4gc2U9ZnVuY3Rpb24gcChpZSl7dmFyIHNlPWZ1bmN0aW9uIE4oaWUsc2Upe2lmKCJvYmplY3QiIT10eXBlb2YgaWV8fG51bGw9PT1pZSly'@; put 'ZXR1cm4gaWU7dmFyIGdlPWllW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09Z2Upe3ZhciBfZT1nZS5jYWxsKGllLHNlfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgX2UpcmV0dXJuIF9lO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1'@; put 'cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09c2U/U3RyaW5nOk51bWJlcikoaWUpfShpZSwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBzZT9zZTpTdHJpbmcoc2UpfShzZSksc2UgaW4gaWU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGllLHNlLHt2YWx1'@; put 'ZTpnZSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmllW3NlXT1nZSxpZX12YXIgdz1iKDU3ODU0KSxGPVN5bWJvbCgibGFzdFJlc29sdmUiKSxIPVN5bWJvbCgibGFzdFJlamVjdCIpLFI9U3ltYm9sKCJlcnJvciIpLGo9U3ltYm9sKCJlbmRlZCIpLFA9U3lt'@; put 'Ym9sKCJsYXN0UHJvbWlzZSIpLEw9U3ltYm9sKCJoYW5kbGVQcm9taXNlIiksWT1TeW1ib2woInN0cmVhbSIpO2Z1bmN0aW9uIEIoaWUsc2Upe3JldHVybnt2YWx1ZTppZSxkb25lOnNlfX1mdW5jdGlvbiBXKGllKXt2YXIgc2U9aWVbRl07aWYobnVsbCE9PXNlKXt2YXIgZ2U9aWVbWV0ucmVh'@; put 'ZCgpO251bGwhPT1nZSYmKGllW1BdPW51bGwsaWVbRl09bnVsbCxpZVtIXT1udWxsLHNlKEIoZ2UsITEpKSl9fWZ1bmN0aW9uIFooaWUpe3Byb2Nlc3MubmV4dFRpY2soVyxpZSl9dmFyIFE9T2JqZWN0LmdldFByb3RvdHlwZU9mKGZ1bmN0aW9uKCl7fSkscT1PYmplY3Quc2V0UHJvdG90eXBl'@; put 'T2YoKF8oRD17Z2V0IHN0cmVhbSgpe3JldHVybiB0aGlzW1ldfSxuZXh0OmZ1bmN0aW9uKCl7dmFyIHNlPXRoaXMsZ2U9dGhpc1tSXTtpZihudWxsIT09Z2UpcmV0dXJuIFByb21pc2UucmVqZWN0KGdlKTtpZih0aGlzW2pdKXJldHVybiBQcm9taXNlLnJlc29sdmUoQih2b2lkIDAsITApKTtp'@; put 'Zih0aGlzW1ldLmRlc3Ryb3llZClyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oemUseil7cHJvY2Vzcy5uZXh0VGljayhmdW5jdGlvbigpe3NlW1JdP3ooc2VbUl0pOnplKEIodm9pZCAwLCEwKSl9KX0pO3ZhciBUZSxfZT10aGlzW1BdO2lmKF9lKVRlPW5ldyBQcm9taXNlKGZ1bmN0aW9u'@; put 'IFgoaWUsc2Upe3JldHVybiBmdW5jdGlvbihnZSxfZSl7aWUudGhlbihmdW5jdGlvbigpe3NlW2pdP2dlKEIodm9pZCAwLCEwKSk6c2VbTF0oZ2UsX2UpfSxfZSl9fShfZSx0aGlzKSk7ZWxzZXt2YXIgU2U9dGhpc1tZXS5yZWFkKCk7aWYobnVsbCE9PVNlKXJldHVybiBQcm9taXNlLnJlc29s'@; put 'dmUoQihTZSwhMSkpO1RlPW5ldyBQcm9taXNlKHRoaXNbTF0pfXJldHVybiB0aGlzW1BdPVRlLFRlfX0sU3ltYm9sLmFzeW5jSXRlcmF0b3IsZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLF8oRCwicmV0dXJuIixmdW5jdGlvbigpe3ZhciBzZT10aGlzO3JldHVybiBuZXcgUHJvbWlzZShmdW5j'@; put 'dGlvbihnZSxfZSl7c2VbWV0uZGVzdHJveShudWxsLGZ1bmN0aW9uKFRlKXtUZT9fZShUZSk6Z2UoQih2b2lkIDAsITApKX0pfSl9KSxEKSxRKTtjZS5leHBvcnRzPWZ1bmN0aW9uKHNlKXt2YXIgZ2UsX2U9T2JqZWN0LmNyZWF0ZShxLChfKGdlPXt9LFkse3ZhbHVlOnNlLHdyaXRhYmxlOiEw'@; put 'fSksXyhnZSxGLHt2YWx1ZTpudWxsLHdyaXRhYmxlOiEwfSksXyhnZSxILHt2YWx1ZTpudWxsLHdyaXRhYmxlOiEwfSksXyhnZSxSLHt2YWx1ZTpudWxsLHdyaXRhYmxlOiEwfSksXyhnZSxqLHt2YWx1ZTpzZS5fcmVhZGFibGVTdGF0ZS5lbmRFbWl0dGVkLHdyaXRhYmxlOiEwfSksXyhnZSxM'@; put 'LHt2YWx1ZTpmdW5jdGlvbihTZSx6ZSl7dmFyIHo9X2VbWV0ucmVhZCgpO3o/KF9lW1BdPW51bGwsX2VbRl09bnVsbCxfZVtIXT1udWxsLFNlKEIoeiwhMSkpKTooX2VbRl09U2UsX2VbSF09emUpfSx3cml0YWJsZTohMH0pLGdlKSk7cmV0dXJuIF9lW1BdPW51bGwsdyhzZSxmdW5jdGlvbihU'@; put 'ZSl7aWYoVGUmJiJFUlJfU1RSRUFNX1BSRU1BVFVSRV9DTE9TRSIhPT1UZS5jb2RlKXt2YXIgU2U9X2VbSF07cmV0dXJuIG51bGwhPT1TZSYmKF9lW1BdPW51bGwsX2VbRl09bnVsbCxfZVtIXT1udWxsLFNlKFRlKSksdm9pZChfZVtSXT1UZSl9dmFyIHplPV9lW0ZdO251bGwhPT16ZSYmKF9l'@; put 'W1BdPW51bGwsX2VbRl09bnVsbCxfZVtIXT1udWxsLHplKEIodm9pZCAwLCEwKSkpLF9lW2pdPSEwfSksc2Uub24oInJlYWRhYmxlIixaLmJpbmQobnVsbCxfZSkpLF9lfX0sNzUyMjU6KGNlLEosYik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gRChaLFgpe3ZhciBRPU9iamVjdC5rZXlzKFop'@; put 'O2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBxPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoWik7WCYmKHE9cS5maWx0ZXIoZnVuY3Rpb24odGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFosdGUpLmVudW1lcmFibGV9KSksUS5wdXNo'@; put 'LmFwcGx5KFEscSl9cmV0dXJuIFF9ZnVuY3Rpb24gXyhaKXtmb3IodmFyIFg9MTtYPGFyZ3VtZW50cy5sZW5ndGg7WCsrKXt2YXIgUT1udWxsIT1hcmd1bWVudHNbWF0/YXJndW1lbnRzW1hdOnt9O1glMj9EKE9iamVjdChRKSwhMCkuZm9yRWFjaChmdW5jdGlvbihxKXtwKFoscSxRW3FdKX0p'@; put 'Ok9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFosT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoUSkpOkQoT2JqZWN0KFEpKS5mb3JFYWNoKGZ1bmN0aW9uKHEpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShaLHEsT2JqZWN0Lmdl'@; put 'dE93blByb3BlcnR5RGVzY3JpcHRvcihRLHEpKX0pfXJldHVybiBafWZ1bmN0aW9uIHAoWixYLFEpe3JldHVybihYPUgoWCkpaW4gWj9PYmplY3QuZGVmaW5lUHJvcGVydHkoWixYLHt2YWx1ZTpRLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6WltYXT1RLFp9'@; put 'ZnVuY3Rpb24gdyhaLFgpe2Zvcih2YXIgUT0wO1E8WC5sZW5ndGg7USsrKXt2YXIgcT1YW1FdO3EuZW51bWVyYWJsZT1xLmVudW1lcmFibGV8fCExLHEuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBxJiYocS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KFosSChxLmtleSks'@; put 'cSl9fWZ1bmN0aW9uIEgoWil7dmFyIFg9ZnVuY3Rpb24gUihaLFgpe2lmKCJvYmplY3QiIT10eXBlb2YgWnx8bnVsbD09PVopcmV0dXJuIFo7dmFyIFE9WltTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PVEpe3ZhciBxPVEuY2FsbChaLFh8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIh'@; put 'PXR5cGVvZiBxKXJldHVybiBxO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09WD9TdHJpbmc6TnVtYmVyKShaKX0oWiwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBYP1g6'@; put 'U3RyaW5nKFgpfXZhciBQPWIoODM4MzgpLkJ1ZmZlcixZPWIoNjM3NzkpLmluc3BlY3QsQj1ZJiZZLmN1c3RvbXx8Imluc3BlY3QiO2Z1bmN0aW9uIFcoWixYLFEpe1AucHJvdG90eXBlLmNvcHkuY2FsbChaLFgsUSl9Y2UuZXhwb3J0cz1mdW5jdGlvbigpe2Z1bmN0aW9uIFooKXsoZnVuY3Rp'@; put 'b24gTihaLFgpe2lmKCEoWiBpbnN0YW5jZW9mIFgpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxaKSx0aGlzLmhlYWQ9bnVsbCx0aGlzLnRhaWw9bnVsbCx0aGlzLmxlbmd0aD0wfXJldHVybiBmdW5jdGlvbiBGKFosWCxR'@; put 'KXtYJiZ3KFoucHJvdG90eXBlLFgpLFEmJncoWixRKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoWiwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oWixbe2tleToicHVzaCIsdmFsdWU6ZnVuY3Rpb24oUSl7dmFyIHE9e2RhdGE6USxuZXh0Om51bGx9O3RoaXMubGVuZ3RoPjA/dGhpcy50YWls'@; put 'Lm5leHQ9cTp0aGlzLmhlYWQ9cSx0aGlzLnRhaWw9cSwrK3RoaXMubGVuZ3RofX0se2tleToidW5zaGlmdCIsdmFsdWU6ZnVuY3Rpb24oUSl7dmFyIHE9e2RhdGE6USxuZXh0OnRoaXMuaGVhZH07MD09PXRoaXMubGVuZ3RoJiYodGhpcy50YWlsPXEpLHRoaXMuaGVhZD1xLCsrdGhpcy5sZW5n'@; put 'dGh9fSx7a2V5OiJzaGlmdCIsdmFsdWU6ZnVuY3Rpb24oKXtpZigwIT09dGhpcy5sZW5ndGgpe3ZhciBRPXRoaXMuaGVhZC5kYXRhO3JldHVybiB0aGlzLmhlYWQ9MT09PXRoaXMubGVuZ3RoP3RoaXMudGFpbD1udWxsOnRoaXMuaGVhZC5uZXh0LC0tdGhpcy5sZW5ndGgsUX19fSx7a2V5OiJj'@; put 'bGVhciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhlYWQ9dGhpcy50YWlsPW51bGwsdGhpcy5sZW5ndGg9MH19LHtrZXk6ImpvaW4iLHZhbHVlOmZ1bmN0aW9uKFEpe2lmKDA9PT10aGlzLmxlbmd0aClyZXR1cm4iIjtmb3IodmFyIHE9dGhpcy5oZWFkLHRlPSIiK3EuZGF0YTtxPXEubmV4dDsp'@; put 'dGUrPVErcS5kYXRhO3JldHVybiB0ZX19LHtrZXk6ImNvbmNhdCIsdmFsdWU6ZnVuY3Rpb24oUSl7aWYoMD09PXRoaXMubGVuZ3RoKXJldHVybiBQLmFsbG9jKDApO2Zvcih2YXIgcT1QLmFsbG9jVW5zYWZlKFE+Pj4wKSx0ZT10aGlzLmhlYWQsaWU9MDt0ZTspVyh0ZS5kYXRhLHEsaWUpLGll'@; put 'Kz10ZS5kYXRhLmxlbmd0aCx0ZT10ZS5uZXh0O3JldHVybiBxfX0se2tleToiY29uc3VtZSIsdmFsdWU6ZnVuY3Rpb24oUSxxKXt2YXIgdGU7cmV0dXJuIFE8dGhpcy5oZWFkLmRhdGEubGVuZ3RoPyh0ZT10aGlzLmhlYWQuZGF0YS5zbGljZSgwLFEpLHRoaXMuaGVhZC5kYXRhPXRoaXMuaGVh'@; put 'ZC5kYXRhLnNsaWNlKFEpKTp0ZT1RPT09dGhpcy5oZWFkLmRhdGEubGVuZ3RoP3RoaXMuc2hpZnQoKTpxP3RoaXMuX2dldFN0cmluZyhRKTp0aGlzLl9nZXRCdWZmZXIoUSksdGV9fSx7a2V5OiJmaXJzdCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oZWFkLmRhdGF9fSx7a2V5OiJf'@; put 'Z2V0U3RyaW5nIix2YWx1ZTpmdW5jdGlvbihRKXt2YXIgcT10aGlzLmhlYWQsdGU9MSxpZT1xLmRhdGE7Zm9yKFEtPWllLmxlbmd0aDtxPXEubmV4dDspe3ZhciBzZT1xLmRhdGEsZ2U9UT5zZS5sZW5ndGg/c2UubGVuZ3RoOlE7aWYoaWUrPWdlPT09c2UubGVuZ3RoP3NlOnNlLnNsaWNlKDAs'@; put 'USksMD09KFEtPWdlKSl7Z2U9PT1zZS5sZW5ndGg/KCsrdGUsdGhpcy5oZWFkPXEubmV4dD9xLm5leHQ6dGhpcy50YWlsPW51bGwpOih0aGlzLmhlYWQ9cSxxLmRhdGE9c2Uuc2xpY2UoZ2UpKTticmVha30rK3RlfXJldHVybiB0aGlzLmxlbmd0aC09dGUsaWV9fSx7a2V5OiJfZ2V0QnVmZmVy'@; put 'Iix2YWx1ZTpmdW5jdGlvbihRKXt2YXIgcT1QLmFsbG9jVW5zYWZlKFEpLHRlPXRoaXMuaGVhZCxpZT0xO2Zvcih0ZS5kYXRhLmNvcHkocSksUS09dGUuZGF0YS5sZW5ndGg7dGU9dGUubmV4dDspe3ZhciBzZT10ZS5kYXRhLGdlPVE+c2UubGVuZ3RoP3NlLmxlbmd0aDpRO2lmKHNlLmNvcHko'@; put 'cSxxLmxlbmd0aC1RLDAsZ2UpLDA9PShRLT1nZSkpe2dlPT09c2UubGVuZ3RoPygrK2llLHRoaXMuaGVhZD10ZS5uZXh0P3RlLm5leHQ6dGhpcy50YWlsPW51bGwpOih0aGlzLmhlYWQ9dGUsdGUuZGF0YT1zZS5zbGljZShnZSkpO2JyZWFrfSsraWV9cmV0dXJuIHRoaXMubGVuZ3RoLT1pZSxx'@; put 'fX0se2tleTpCLHZhbHVlOmZ1bmN0aW9uKFEscSl7cmV0dXJuIFkodGhpcyxfKF8oe30scSkse30se2RlcHRoOjAsY3VzdG9tSW5zcGVjdDohMX0pKX19XSksWn0oKX0sODgxNTI6Y2U9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYih3LEYpe3AodyxGKSxEKHcpfWZ1bmN0aW9uIEQodyl7dy5f'@; put 'd3JpdGFibGVTdGF0ZSYmIXcuX3dyaXRhYmxlU3RhdGUuZW1pdENsb3NlfHx3Ll9yZWFkYWJsZVN0YXRlJiYhdy5fcmVhZGFibGVTdGF0ZS5lbWl0Q2xvc2V8fHcuZW1pdCgiY2xvc2UiKX1mdW5jdGlvbiBwKHcsRil7dy5lbWl0KCJlcnJvciIsRil9Y2UuZXhwb3J0cz17ZGVzdHJveTpmdW5j'@; put 'dGlvbiBKKHcsRil7dmFyIEg9dGhpcztyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZSYmdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWR8fHRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkPyhGP0Yodyk6dyYmKHRoaXMuX3dyaXRhYmxlU3RhdGU/'@; put 'dGhpcy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWR8fCh0aGlzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCxwcm9jZXNzLm5leHRUaWNrKHAsdGhpcyx3KSk6cHJvY2Vzcy5uZXh0VGljayhwLHRoaXMsdykpLHRoaXMpOih0aGlzLl9yZWFkYWJsZVN0YXRlJiYodGhpcy5fcmVh'@; put 'ZGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITApLHRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD0hMCksdGhpcy5fZGVzdHJveSh3fHxudWxsLGZ1bmN0aW9uKFApeyFGJiZQP0guX3dyaXRhYmxlU3RhdGU/SC5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0'@; put 'ZWQ/cHJvY2Vzcy5uZXh0VGljayhELEgpOihILl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCxwcm9jZXNzLm5leHRUaWNrKGIsSCxQKSk6cHJvY2Vzcy5uZXh0VGljayhiLEgsUCk6Rj8ocHJvY2Vzcy5uZXh0VGljayhELEgpLEYoUCkpOnByb2Nlc3MubmV4dFRpY2soRCxIKX0pLHRo'@; put 'aXMpfSx1bmRlc3Ryb3k6ZnVuY3Rpb24gXygpe3RoaXMuX3JlYWRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD0hMSx0aGlzLl9yZWFkYWJsZVN0YXRlLnJlYWRpbmc9ITEsdGhpcy5fcmVhZGFibGVTdGF0ZS5lbmRlZD0hMSx0aGlzLl9yZWFkYWJsZVN0YXRlLmVu'@; put 'ZEVtaXR0ZWQ9ITEpLHRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmVuZGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZW5kaW5nPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZmluYWxDYWxsZWQ9ITEsdGhp'@; put 'cy5fd3JpdGFibGVTdGF0ZS5wcmVmaW5pc2hlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmZpbmlzaGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPSExKX0sZXJyb3JPckRlc3Ryb3k6ZnVuY3Rpb24gTih3LEYpe3ZhciBIPXcuX3JlYWRhYmxlU3RhdGUsUj13Ll93cml0'@; put 'YWJsZVN0YXRlO0gmJkguYXV0b0Rlc3Ryb3l8fFImJlIuYXV0b0Rlc3Ryb3k/dy5kZXN0cm95KEYpOncuZW1pdCgiZXJyb3IiLEYpfX19LDU3ODU0OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMzA0NjQpLkYuRVJSX1NUUkVBTV9QUkVNQVRVUkVfQ0xPU0U7ZnVuY3Rpb24gcCgp'@; put 'e31jZS5leHBvcnRzPWZ1bmN0aW9uIHcoRixILFIpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBIKXJldHVybiB3KEYsbnVsbCxIKTtIfHwoSD17fSksUj1mdW5jdGlvbiBfKEYpe3ZhciBIPSExO3JldHVybiBmdW5jdGlvbigpe2lmKCFIKXtIPSEwO2Zvcih2YXIgUj1hcmd1bWVudHMubGVuZ3Ro'@; put 'LGo9bmV3IEFycmF5KFIpLFA9MDtQPFI7UCsrKWpbUF09YXJndW1lbnRzW1BdO0YuYXBwbHkodGhpcyxqKX19fShSfHxwKTt2YXIgaj1ILnJlYWRhYmxlfHwhMSE9PUgucmVhZGFibGUmJkYucmVhZGFibGUsUD1ILndyaXRhYmxlfHwhMSE9PUgud3JpdGFibGUmJkYud3JpdGFibGUsTD1mdW5j'@; put 'dGlvbigpe0Yud3JpdGFibGV8fEIoKX0sWT1GLl93cml0YWJsZVN0YXRlJiZGLl93cml0YWJsZVN0YXRlLmZpbmlzaGVkLEI9ZnVuY3Rpb24oKXtQPSExLFk9ITAsanx8Ui5jYWxsKEYpfSxXPUYuX3JlYWRhYmxlU3RhdGUmJkYuX3JlYWRhYmxlU3RhdGUuZW5kRW1pdHRlZCxaPWZ1bmN0aW9u'@; put 'KCl7aj0hMSxXPSEwLFB8fFIuY2FsbChGKX0sWD1mdW5jdGlvbihpZSl7Ui5jYWxsKEYsaWUpfSxRPWZ1bmN0aW9uKCl7dmFyIGllO3JldHVybiBqJiYhVz8oKCFGLl9yZWFkYWJsZVN0YXRlfHwhRi5fcmVhZGFibGVTdGF0ZS5lbmRlZCkmJihpZT1uZXcgRCksUi5jYWxsKEYsaWUpKTpQJiYh'@; put 'WT8oKCFGLl93cml0YWJsZVN0YXRlfHwhRi5fd3JpdGFibGVTdGF0ZS5lbmRlZCkmJihpZT1uZXcgRCksUi5jYWxsKEYsaWUpKTp2b2lkIDB9LHE9ZnVuY3Rpb24oKXtGLnJlcS5vbigiZmluaXNoIixCKX07cmV0dXJuIGZ1bmN0aW9uIE4oRil7cmV0dXJuIEYuc2V0SGVhZGVyJiYiZnVuY3Rp'@; put 'b24iPT10eXBlb2YgRi5hYm9ydH0oRik/KEYub24oImNvbXBsZXRlIixCKSxGLm9uKCJhYm9ydCIsUSksRi5yZXE/cSgpOkYub24oInJlcXVlc3QiLHEpKTpQJiYhRi5fd3JpdGFibGVTdGF0ZSYmKEYub24oImVuZCIsTCksRi5vbigiY2xvc2UiLEwpKSxGLm9uKCJlbmQiLFopLEYub24oImZp'@; put 'bmlzaCIsQiksITEhPT1ILmVycm9yJiZGLm9uKCJlcnJvciIsWCksRi5vbigiY2xvc2UiLFEpLGZ1bmN0aW9uKCl7Ri5yZW1vdmVMaXN0ZW5lcigiY29tcGxldGUiLEIpLEYucmVtb3ZlTGlzdGVuZXIoImFib3J0IixRKSxGLnJlbW92ZUxpc3RlbmVyKCJyZXF1ZXN0IixxKSxGLnJlcSYmRi5y'@; put 'ZXEucmVtb3ZlTGlzdGVuZXIoImZpbmlzaCIsQiksRi5yZW1vdmVMaXN0ZW5lcigiZW5kIixMKSxGLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsTCksRi5yZW1vdmVMaXN0ZW5lcigiZmluaXNoIixCKSxGLnJlbW92ZUxpc3RlbmVyKCJlbmQiLFopLEYucmVtb3ZlTGlzdGVuZXIoImVycm9yIixY'@; put 'KSxGLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsUSl9fX0sNDc3NjU6Y2U9PntjZS5leHBvcnRzPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJSZWFkYWJsZS5mcm9tIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGJyb3dzZXIiKX19LDY4NDY6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFy'@; put 'IEQscD1iKDMwNDY0KS5GLE49cC5FUlJfTUlTU0lOR19BUkdTLHc9cC5FUlJfU1RSRUFNX0RFU1RST1lFRDtmdW5jdGlvbiBGKEIpe2lmKEIpdGhyb3cgQn1mdW5jdGlvbiBqKEIpe0IoKX1mdW5jdGlvbiBQKEIsVyl7cmV0dXJuIEIucGlwZShXKX1jZS5leHBvcnRzPWZ1bmN0aW9uIFkoKXtm'@; put 'b3IodmFyIEI9YXJndW1lbnRzLmxlbmd0aCxXPW5ldyBBcnJheShCKSxaPTA7WjxCO1orKylXW1pdPWFyZ3VtZW50c1taXTt2YXIgWD1mdW5jdGlvbiBMKEIpe3JldHVybiBCLmxlbmd0aCYmImZ1bmN0aW9uIj09dHlwZW9mIEJbQi5sZW5ndGgtMV0/Qi5wb3AoKTpGfShXKTtpZihBcnJheS5p'@; put 'c0FycmF5KFdbMF0pJiYoVz1XWzBdKSxXLmxlbmd0aDwyKXRocm93IG5ldyBOKCJzdHJlYW1zIik7dmFyIFEscT1XLm1hcChmdW5jdGlvbih0ZSxpZSl7dmFyIHNlPWllPFcubGVuZ3RoLTE7cmV0dXJuIGZ1bmN0aW9uIFIoQixXLFosWCl7WD1mdW5jdGlvbiBfKEIpe3ZhciBXPSExO3JldHVy'@; put 'biBmdW5jdGlvbigpe1d8fChXPSEwLEIuYXBwbHkodm9pZCAwLGFyZ3VtZW50cykpfX0oWCk7dmFyIFE9ITE7Qi5vbigiY2xvc2UiLGZ1bmN0aW9uKCl7UT0hMH0pLHZvaWQgMD09PUQmJihEPWIoNTc4NTQpKSxEKEIse3JlYWRhYmxlOlcsd3JpdGFibGU6Wn0sZnVuY3Rpb24odGUpe2lmKHRl'@; put 'KXJldHVybiBYKHRlKTtRPSEwLFgoKX0pO3ZhciBxPSExO3JldHVybiBmdW5jdGlvbih0ZSl7aWYoIVEmJiFxKXtpZihxPSEwLGZ1bmN0aW9uIEgoQil7cmV0dXJuIEIuc2V0SGVhZGVyJiYiZnVuY3Rpb24iPT10eXBlb2YgQi5hYm9ydH0oQikpcmV0dXJuIEIuYWJvcnQoKTtpZigiZnVuY3Rp'@; put 'b24iPT10eXBlb2YgQi5kZXN0cm95KXJldHVybiBCLmRlc3Ryb3koKTtYKHRlfHxuZXcgdygicGlwZSIpKX19fSh0ZSxzZSxpZT4wLGZ1bmN0aW9uKF9lKXtRfHwoUT1fZSksX2UmJnEuZm9yRWFjaChqKSwhc2UmJihxLmZvckVhY2goaiksWChRKSl9KX0pO3JldHVybiBXLnJlZHVjZShQKX19'@; put 'LDIyODI3OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMzA0NjQpLkYuRVJSX0lOVkFMSURfT1BUX1ZBTFVFO2NlLmV4cG9ydHM9e2dldEhpZ2hXYXRlck1hcms6ZnVuY3Rpb24gcChOLHcsRixIKXt2YXIgUj1mdW5jdGlvbiBfKE4sdyxGKXtyZXR1cm4gbnVsbCE9Ti5oaWdoV2F0'@; put 'ZXJNYXJrP04uaGlnaFdhdGVyTWFyazp3P05bRl06bnVsbH0odyxILEYpO2lmKG51bGwhPVIpe2lmKCFpc0Zpbml0ZShSKXx8TWF0aC5mbG9vcihSKSE9PVJ8fFI8MCl0aHJvdyBuZXcgRChIP0Y6ImhpZ2hXYXRlck1hcmsiLFIpO3JldHVybiBNYXRoLmZsb29yKFIpfXJldHVybiBOLm9iamVj'@; put 'dE1vZGU/MTY6MTYzODR9fX0sMTI2MDE6KGNlLEosYik9PntjZS5leHBvcnRzPWIoNDQzNTYpLkV2ZW50RW1pdHRlcn0sNzg0NTQ6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig1NDI3MikuQnVmZmVyLF89RC5pc0VuY29kaW5nfHxmdW5jdGlvbihxKXtzd2l0Y2goKHE9IiIrcSkm'@; put 'JnEudG9Mb3dlckNhc2UoKSl7Y2FzZSJoZXgiOmNhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6Y2FzZSJhc2NpaSI6Y2FzZSJiaW5hcnkiOmNhc2UiYmFzZTY0IjpjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6Y2FzZSJyYXciOnJldHVybiEwO2RlZmF1'@; put 'bHQ6cmV0dXJuITF9fTtmdW5jdGlvbiB3KHEpe3ZhciB0ZTtzd2l0Y2godGhpcy5lbmNvZGluZz1mdW5jdGlvbiBOKHEpe3ZhciB0ZT1mdW5jdGlvbiBwKHEpe2lmKCFxKXJldHVybiJ1dGY4Ijtmb3IodmFyIHRlOzspc3dpdGNoKHEpe2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuInV0'@; put 'ZjgiO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4idXRmMTZsZSI7Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4ibGF0aW4xIjtjYXNlImJhc2U2NCI6Y2FzZSJhc2NpaSI6Y2FzZSJoZXgiOnJldHVybiBxO2RlZmF1bHQ6'@; put 'aWYodGUpcmV0dXJuO3E9KCIiK3EpLnRvTG93ZXJDYXNlKCksdGU9ITB9fShxKTtpZigic3RyaW5nIiE9dHlwZW9mIHRlJiYoRC5pc0VuY29kaW5nPT09X3x8IV8ocSkpKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBlbmNvZGluZzogIitxKTtyZXR1cm4gdGV8fHF9KHEpLHRoaXMuZW5jb2Rp'@; put 'bmcpe2Nhc2UidXRmMTZsZSI6dGhpcy50ZXh0PVksdGhpcy5lbmQ9Qix0ZT00O2JyZWFrO2Nhc2UidXRmOCI6dGhpcy5maWxsTGFzdD1qLHRlPTQ7YnJlYWs7Y2FzZSJiYXNlNjQiOnRoaXMudGV4dD1XLHRoaXMuZW5kPVosdGU9MzticmVhaztkZWZhdWx0OnJldHVybiB0aGlzLndyaXRlPVgs'@; put 'dm9pZCh0aGlzLmVuZD1RKX10aGlzLmxhc3ROZWVkPTAsdGhpcy5sYXN0VG90YWw9MCx0aGlzLmxhc3RDaGFyPUQuYWxsb2NVbnNhZmUodGUpfWZ1bmN0aW9uIEYocSl7cmV0dXJuIHE8PTEyNz8wOnE+PjU9PTY/MjpxPj40PT0xND8zOnE+PjM9PTMwPzQ6cT4+Nj09Mj8tMTotMn1mdW5jdGlv'@; put 'biBqKHEpe3ZhciB0ZT10aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkLGllPWZ1bmN0aW9uIFIocSx0ZSxpZSl7aWYoMTI4IT0oMTkyJnRlWzBdKSlyZXR1cm4gcS5sYXN0TmVlZD0wLCJcdWZmZmQiO2lmKHEubGFzdE5lZWQ+MSYmdGUubGVuZ3RoPjEpe2lmKDEyOCE9KDE5MiZ0ZVsxXSkp'@; put 'cmV0dXJuIHEubGFzdE5lZWQ9MSwiXHVmZmZkIjtpZihxLmxhc3ROZWVkPjImJnRlLmxlbmd0aD4yJiYxMjghPSgxOTImdGVbMl0pKXJldHVybiBxLmxhc3ROZWVkPTIsIlx1ZmZmZCJ9fSh0aGlzLHEpO3JldHVybiB2b2lkIDAhPT1pZT9pZTp0aGlzLmxhc3ROZWVkPD1xLmxlbmd0aD8ocS5j'@; put 'b3B5KHRoaXMubGFzdENoYXIsdGUsMCx0aGlzLmxhc3ROZWVkKSx0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKHRoaXMuZW5jb2RpbmcsMCx0aGlzLmxhc3RUb3RhbCkpOihxLmNvcHkodGhpcy5sYXN0Q2hhcix0ZSwwLHEubGVuZ3RoKSx2b2lkKHRoaXMubGFzdE5lZWQtPXEubGVuZ3RoKSl9ZnVu'@; put 'Y3Rpb24gWShxLHRlKXtpZigocS5sZW5ndGgtdGUpJTI9PTApe3ZhciBpZT1xLnRvU3RyaW5nKCJ1dGYxNmxlIix0ZSk7aWYoaWUpe3ZhciBzZT1pZS5jaGFyQ29kZUF0KGllLmxlbmd0aC0xKTtpZihzZT49NTUyOTYmJnNlPD01NjMxOSlyZXR1cm4gdGhpcy5sYXN0TmVlZD0yLHRoaXMubGFz'@; put 'dFRvdGFsPTQsdGhpcy5sYXN0Q2hhclswXT1xW3EubGVuZ3RoLTJdLHRoaXMubGFzdENoYXJbMV09cVtxLmxlbmd0aC0xXSxpZS5zbGljZSgwLC0xKX1yZXR1cm4gaWV9cmV0dXJuIHRoaXMubGFzdE5lZWQ9MSx0aGlzLmxhc3RUb3RhbD0yLHRoaXMubGFzdENoYXJbMF09cVtxLmxlbmd0aC0x'@; put 'XSxxLnRvU3RyaW5nKCJ1dGYxNmxlIix0ZSxxLmxlbmd0aC0xKX1mdW5jdGlvbiBCKHEpe3ZhciB0ZT1xJiZxLmxlbmd0aD90aGlzLndyaXRlKHEpOiIiO3JldHVybiB0aGlzLmxhc3ROZWVkP3RlK3RoaXMubGFzdENoYXIudG9TdHJpbmcoInV0ZjE2bGUiLDAsdGhpcy5sYXN0VG90YWwtdGhp'@; put 'cy5sYXN0TmVlZCk6dGV9ZnVuY3Rpb24gVyhxLHRlKXt2YXIgaWU9KHEubGVuZ3RoLXRlKSUzO3JldHVybiAwPT09aWU/cS50b1N0cmluZygiYmFzZTY0Iix0ZSk6KHRoaXMubGFzdE5lZWQ9My1pZSx0aGlzLmxhc3RUb3RhbD0zLDE9PT1pZT90aGlzLmxhc3RDaGFyWzBdPXFbcS5sZW5ndGgt'@; put 'MV06KHRoaXMubGFzdENoYXJbMF09cVtxLmxlbmd0aC0yXSx0aGlzLmxhc3RDaGFyWzFdPXFbcS5sZW5ndGgtMV0pLHEudG9TdHJpbmcoImJhc2U2NCIsdGUscS5sZW5ndGgtaWUpKX1mdW5jdGlvbiBaKHEpe3ZhciB0ZT1xJiZxLmxlbmd0aD90aGlzLndyaXRlKHEpOiIiO3JldHVybiB0aGlz'@; put 'Lmxhc3ROZWVkP3RlK3RoaXMubGFzdENoYXIudG9TdHJpbmcoImJhc2U2NCIsMCwzLXRoaXMubGFzdE5lZWQpOnRlfWZ1bmN0aW9uIFgocSl7cmV0dXJuIHEudG9TdHJpbmcodGhpcy5lbmNvZGluZyl9ZnVuY3Rpb24gUShxKXtyZXR1cm4gcSYmcS5sZW5ndGg/dGhpcy53cml0ZShxKToiIn1K'@; put 'Lkk9dyx3LnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihxKXtpZigwPT09cS5sZW5ndGgpcmV0dXJuIiI7dmFyIHRlLGllO2lmKHRoaXMubGFzdE5lZWQpe2lmKHZvaWQgMD09PSh0ZT10aGlzLmZpbGxMYXN0KHEpKSlyZXR1cm4iIjtpZT10aGlzLmxhc3ROZWVkLHRoaXMubGFzdE5lZWQ9MH1l'@; put 'bHNlIGllPTA7cmV0dXJuIGllPHEubGVuZ3RoP3RlP3RlK3RoaXMudGV4dChxLGllKTp0aGlzLnRleHQocSxpZSk6dGV8fCIifSx3LnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24gTChxKXt2YXIgdGU9cSYmcS5sZW5ndGg/dGhpcy53cml0ZShxKToiIjtyZXR1cm4gdGhpcy5sYXN0TmVlZD90ZSsi'@; put 'XHVmZmZkIjp0ZX0sdy5wcm90b3R5cGUudGV4dD1mdW5jdGlvbiBQKHEsdGUpe3ZhciBpZT1mdW5jdGlvbiBIKHEsdGUsaWUpe3ZhciBzZT10ZS5sZW5ndGgtMTtpZihzZTxpZSlyZXR1cm4gMDt2YXIgZ2U9Rih0ZVtzZV0pO3JldHVybiBnZT49MD8oZ2U+MCYmKHEubGFzdE5lZWQ9Z2UtMSks'@; put 'Z2UpOi0tc2U8aWV8fC0yPT09Z2U/MDooZ2U9Rih0ZVtzZV0pKT49MD8oZ2U+MCYmKHEubGFzdE5lZWQ9Z2UtMiksZ2UpOi0tc2U8aWV8fC0yPT09Z2U/MDooZ2U9Rih0ZVtzZV0pKT49MD8oZ2U+MCYmKDI9PT1nZT9nZT0wOnEubGFzdE5lZWQ9Z2UtMyksZ2UpOjB9KHRoaXMscSx0ZSk7aWYo'@; put 'IXRoaXMubGFzdE5lZWQpcmV0dXJuIHEudG9TdHJpbmcoInV0ZjgiLHRlKTt0aGlzLmxhc3RUb3RhbD1pZTt2YXIgc2U9cS5sZW5ndGgtKGllLXRoaXMubGFzdE5lZWQpO3JldHVybiBxLmNvcHkodGhpcy5sYXN0Q2hhciwwLHNlKSxxLnRvU3RyaW5nKCJ1dGY4Iix0ZSxzZSl9LHcucHJvdG90'@; put 'eXBlLmZpbGxMYXN0PWZ1bmN0aW9uKHEpe2lmKHRoaXMubGFzdE5lZWQ8PXEubGVuZ3RoKXJldHVybiBxLmNvcHkodGhpcy5sYXN0Q2hhcix0aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkLDAsdGhpcy5sYXN0TmVlZCksdGhpcy5sYXN0Q2hhci50b1N0cmluZyh0aGlzLmVuY29kaW5nLDAs'@; put 'dGhpcy5sYXN0VG90YWwpO3EuY29weSh0aGlzLmxhc3RDaGFyLHRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQsMCxxLmxlbmd0aCksdGhpcy5sYXN0TmVlZC09cS5sZW5ndGh9fSw1NDI3MjooY2UsSixiKT0+e3ZhciBEPWIoODM4MzgpLF89RC5CdWZmZXI7ZnVuY3Rpb24gcCh3LEYpe2Zv'@; put 'cih2YXIgSCBpbiB3KUZbSF09d1tIXX1mdW5jdGlvbiBOKHcsRixIKXtyZXR1cm4gXyh3LEYsSCl9Xy5mcm9tJiZfLmFsbG9jJiZfLmFsbG9jVW5zYWZlJiZfLmFsbG9jVW5zYWZlU2xvdz9jZS5leHBvcnRzPUQ6KHAoRCxKKSxKLkJ1ZmZlcj1OKSxwKF8sTiksTi5mcm9tPWZ1bmN0aW9uKHcs'@; put 'RixIKXtpZigibnVtYmVyIj09dHlwZW9mIHcpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBub3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gXyh3LEYsSCl9LE4uYWxsb2M9ZnVuY3Rpb24odyxGLEgpe2lmKCJudW1iZXIiIT10eXBlb2Ygdyl0aHJvdyBuZXcgVHlwZUVycm9yKCJB'@; put 'cmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7dmFyIFI9Xyh3KTtyZXR1cm4gdm9pZCAwIT09Rj8ic3RyaW5nIj09dHlwZW9mIEg/Ui5maWxsKEYsSCk6Ui5maWxsKEYpOlIuZmlsbCgwKSxSfSxOLmFsbG9jVW5zYWZlPWZ1bmN0aW9uKHcpe2lmKCJudW1iZXIiIT10eXBlb2Ygdyl0aHJvdyBu'@; put 'ZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuIF8odyl9LE4uYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKHcpe2lmKCJudW1iZXIiIT10eXBlb2Ygdyl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuIEQu'@; put 'U2xvd0J1ZmZlcih3KX19LDc4NzU1OihjZSxKLGIpPT57dmFyIEQ9Yig2NDMxOCk7Y2UuZXhwb3J0cz17VGV4dEVuY29kZXI6RC5UZXh0RW5jb2RlcixUZXh0RGVjb2RlcjpELlRleHREZWNvZGVyfX0sNjc5NTE6ZnVuY3Rpb24oY2UpeyFmdW5jdGlvbihKKXsidXNlIHN0cmljdCI7Y2UuZXhw'@; put 'b3J0cyYmKGNlLmV4cG9ydHM9SiksSlsiZW5jb2RpbmctaW5kZXhlcyJdPXtiaWc1OltudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxNzM5MiwxOTUwNiwxNzkyMywxNzgzMCwx'@; put 'Nzc4NCwxNjAzNTksMTk4MzEsMTc4NDMsMTYyOTkzLDE5NjgyLDE2MzAxMywxNTI1MywxODIzMCwxODI0NCwxOTUyNywxOTUyMCwxNDgxNTksMTQ0OTE5LDE2MDU5NCwxNTkzNzEsMTU5OTU0LDE5NTQzLDE3Mjg4MSwxODI1NSwxNzg4MiwxOTU4OSwxNjI5MjQsMTk3MTksMTkxMDgsMTgwODEs'@; put 'MTU4NDk5LDI5MjIxLDE1NDE5NiwxMzc4MjcsMTQ2OTUwLDE0NzI5NywyNjE4OSwyMjI2NyxudWxsLDMyMTQ5LDIyODEzLDE2Njg0MSwxNTg2MCwzODcwOCwxNjI3OTksMjM1MTUsMTM4NTkwLDIzMjA0LDEzODYxLDE3MTY5NiwyMzI0OSwyMzQ3OSwyMzgwNCwyNjQ3OCwzNDE5NSwxNzAzMDks'@; put 'Mjk3OTMsMjk4NTMsMTQ0NTMsMTM4NTc5LDE0NTA1NCwxNTU2ODEsMTYxMDgsMTUzODIyLDE1MDkzLDMxNDg0LDQwODU1LDE0NzgwOSwxNjYxNTcsMTQzODUwLDEzMzc3MCwxNDM5NjYsMTcxNjIsMzM5MjQsNDA4NTQsMzc5MzUsMTg3MzYsMzQzMjMsMjI2NzgsMzg3MzAsMzc0MDAsMzExODQs'@; put 'MzEyODIsMjYyMDgsMjcxNzcsMzQ5NzMsMjk3NzIsMzE2ODUsMjY0OTgsMzEyNzYsMjEwNzEsMzY5MzQsMTM1NDIsMjk2MzYsMTU1MDY1LDI5ODk0LDQwOTAzLDIyNDUxLDE4NzM1LDIxNTgwLDE2Njg5LDE0NTAzOCwyMjU1MiwzMTM0NiwxNjI2NjEsMzU3MjcsMTgwOTQsMTU5MzY4LDE2NzY5'@; put 'LDE1NTAzMywzMTY2MiwxNDA0NzYsNDA5MDQsMTQwNDgxLDE0MDQ4OSwxNDA0OTIsNDA5MDUsMzQwNTIsMTQ0ODI3LDE2NTY0LDQwOTA2LDE3NjMzLDE3NTYxNSwyNTI4MSwyODc4Miw0MDkwNyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDEyNzM2LDEyNzM3LDEyNzM4LDEyNzM5LDEyNzQwLDEzMTM0MCwxMjc0MSwxMzEyODEsMTMxMjc3LDEyNzQyLDEy'@; put 'NzQzLDEzMTI3NSwxMzkyNDAsMTI3NDQsMTMxMjc0LDEyNzQ1LDEyNzQ2LDEyNzQ3LDEyNzQ4LDEzMTM0MiwxMjc0OSwxMjc1MCwyNTYsMTkzLDQ2MSwxOTIsMjc0LDIwMSwyODIsMjAwLDMzMiwyMTEsNDY1LDIxMCxudWxsLDc4NzAsbnVsbCw3ODcyLDIwMiwyNTcsMjI1LDQ2MiwyMjQsNTkz'@; put 'LDI3NSwyMzMsMjgzLDIzMiwyOTksMjM3LDQ2NCwyMzYsMzMzLDI0Myw0NjYsMjQyLDM2MywyNTAsNDY4LDI0OSw0NzAsNDcyLDQ3NCw0NzYsMjUyLG51bGwsNzg3MSxudWxsLDc4NzMsMjM0LDYwOSw5MTc4LDkxNzksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMTcyOTY5LDEzNTQ5MyxudWxsLDI1ODY2LG51bGwsbnVsbCwyMDAyOSwyODM4MSw0MDI3MCwzNzM0MyxudWxsLG51bGwsMTYxNTg5LDI1NzQ1LDIwMjUwLDIwMjY0LDIwMzkyLDIwODIyLDIwODUyLDIwODky'@; put 'LDIwOTY0LDIxMTUzLDIxMTYwLDIxMzA3LDIxMzI2LDIxNDU3LDIxNDY0LDIyMjQyLDIyNzY4LDIyNzg4LDIyNzkxLDIyODM0LDIyODM2LDIzMzk4LDIzNDU0LDIzNDU1LDIzNzA2LDI0MTk4LDI0NjM1LDI1OTkzLDI2NjIyLDI2NjI4LDI2NzI1LDI3OTgyLDI4ODYwLDMwMDA1LDMyNDIwLDMy'@; put 'NDI4LDMyNDQyLDMyNDU1LDMyNDYzLDMyNDc5LDMyNTE4LDMyNTY3LDMzNDAyLDMzNDg3LDMzNjQ3LDM1MjcwLDM1Nzc0LDM1ODEwLDM2NzEwLDM2NzExLDM2NzE4LDI5NzEzLDMxOTk2LDMyMjA1LDI2OTUwLDMxNDMzLDIxMDMxLG51bGwsbnVsbCxudWxsLG51bGwsMzcyNjAsMzA5MDQsMzcy'@; put 'MTQsMzI5NTYsbnVsbCwzNjEwNywzMzAxNCwxMzM2MDcsbnVsbCxudWxsLDMyOTI3LDQwNjQ3LDE5NjYxLDQwMzkzLDQwNDYwLDE5NTE4LDE3MTUxMCwxNTk3NTgsNDA0NTgsMTcyMzM5LDEzNzYxLG51bGwsMjgzMTQsMzMzNDIsMjk5NzcsbnVsbCwxODcwNSwzOTUzMiwzOTU2Nyw0MDg1Nywz'@; put 'MTExMSwxNjQ5NzIsMTM4Njk4LDEzMjU2MCwxNDIwNTQsMjAwMDQsMjAwOTcsMjAwOTYsMjAxMDMsMjAxNTksMjAyMDMsMjAyNzksMTMzODgsMjA0MTMsMTU5NDQsMjA0ODMsMjA2MTYsMTM0MzcsMTM0NTksMTM0NzcsMjA4NzAsMjI3ODksMjA5NTUsMjA5ODgsMjA5OTcsMjAxMDUsMjExMTMs'@; put 'MjExMzYsMjEyODcsMTM3NjcsMjE0MTcsMTM2NDksMjE0MjQsMTM2NTEsMjE0NDIsMjE1MzksMTM2NzcsMTM2ODIsMTM5NTMsMjE2NTEsMjE2NjcsMjE2ODQsMjE2ODksMjE3MTIsMjE3NDMsMjE3ODQsMjE3OTUsMjE4MDAsMTM3MjAsMjE4MjMsMTM3MzMsMTM3NTksMjE5NzUsMTM3NjUsMTYz'@; put 'MjA0LDIxNzk3LG51bGwsMTM0MjEwLDEzNDQyMSwxNTE4NTEsMjE5MDQsMTQyNTM0LDE0ODI4LDEzMTkwNSwzNjQyMiwxNTA5NjgsMTY5MTg5LDE2NDY3LDE2NDAzMCwzMDU4NiwxNDIzOTIsMTQ5MDAsMTgzODksMTY0MTg5LDE1ODE5NCwxNTEwMTgsMjU4MjEsMTM0NTI0LDEzNTA5MiwxMzQz'@; put 'NTcsMTM1NDEyLDI1NzQxLDM2NDc4LDEzNDgwNiwxMzQxNTUsMTM1MDEyLDE0MjUwNSwxNjQ0MzgsMTQ4NjkxLG51bGwsMTM0NDcwLDE3MDU3MywxNjQwNzMsMTg0MjAsMTUxMjA3LDE0MjUzMCwzOTYwMiwxNDk1MSwxNjk0NjAsMTYzNjUsMTM1NzQsMTUyMjYzLDE2OTk0MCwxNjE5OTIsMTQy'@; put 'NjYwLDQwMzAyLDM4OTMzLG51bGwsMTczNjksMTU1ODEzLDI1NzgwLDIxNzMxLDE0MjY2OCwxNDIyODIsMTM1Mjg3LDE0ODQzLDEzNTI3OSwxNTc0MDIsMTU3NDYyLDE2MjIwOCwyNTgzNCwxNTE2MzQsMTM0MjExLDM2NDU2LDEzOTY4MSwxNjY3MzIsMTMyOTEzLG51bGwsMTg0NDMsMTMxNDk3'@; put 'LDE2Mzc4LDIyNjQzLDE0MjczMyxudWxsLDE0ODkzNiwxMzIzNDgsMTU1Nzk5LDEzNDk4OCwxMzQ1NTAsMjE4ODEsMTY1NzEsMTczMzgsbnVsbCwxOTEyNCwxNDE5MjYsMTM1MzI1LDMzMTk0LDM5MTU3LDEzNDU1NiwyNTQ2NSwxNDg0NiwxNDExNzMsMzYyODgsMjIxNzcsMjU3MjQsMTU5Mzks'@; put 'bnVsbCwxNzM1NjksMTM0NjY1LDE0MjAzMSwxNDI1MzcsbnVsbCwxMzUzNjgsMTQ1ODU4LDE0NzM4LDE0ODU0LDE2NDUwNywxMzY4OCwxNTUyMDksMTM5NDYzLDIyMDk4LDEzNDk2MSwxNDI1MTQsMTY5NzYwLDEzNTAwLDI3NzA5LDE1MTA5OSxudWxsLG51bGwsMTYxMTQwLDE0Mjk4NywxMzk3'@; put 'ODQsMTczNjU5LDE2NzExNywxMzQ3NzgsMTM0MTk2LDE1NzcyNCwzMjY1OSwxMzUzNzUsMTQxMzE1LDE0MTYyNSwxMzgxOSwxNTIwMzUsMTM0Nzk2LDEzNTA1MywxMzQ4MjYsMTYyNzUsMTM0OTYwLDEzNDQ3MSwxMzU1MDMsMTM0NzMyLG51bGwsMTM0ODI3LDEzNDA1NywxMzQ0NzIsMTM1MzYw'@; put 'LDEzNTQ4NSwxNjM3NywxNDA5NTAsMjU2NTAsMTM1MDg1LDE0NDM3MiwxNjEzMzcsMTQyMjg2LDEzNDUyNiwxMzQ1MjcsMTQyNDE3LDE0MjQyMSwxNDg3MiwxMzQ4MDgsMTM1MzY3LDEzNDk1OCwxNzM2MTgsMTU4NTQ0LDE2NzEyMiwxNjczMjEsMTY3MTE0LDM4MzE0LDIxNzA4LDMzNDc2LDIx'@; put 'OTQ1LG51bGwsMTcxNzE1LDM5OTc0LDM5NjA2LDE2MTYzMCwxNDI4MzAsMjg5OTIsMzMxMzMsMzMwMDQsMjM1ODAsMTU3MDQyLDMzMDc2LDE0MjMxLDIxMzQzLDE2NDAyOSwzNzMwMiwxMzQ5MDYsMTM0NjcxLDEzNDc3NSwxMzQ5MDcsMTM3ODksMTUxMDE5LDEzODMzLDEzNDM1OCwyMjE5MSwx'@; put 'NDEyMzcsMTM1MzY5LDEzNDY3MiwxMzQ3NzYsMTM1Mjg4LDEzNTQ5NiwxNjQzNTksMTM2Mjc3LDEzNDc3NywxNTExMjAsMTQyNzU2LDIzMTI0LDEzNTE5NywxMzUxOTgsMTM1NDEzLDEzNTQxNCwyMjQyOCwxMzQ2NzMsMTYxNDI4LDE2NDU1NywxMzUwOTMsMTM0Nzc5LDE1MTkzNCwxNDA4Mywx'@; put 'MzUwOTQsMTM1NTUyLDE1MjI4MCwxNzI3MzMsMTQ5OTc4LDEzNzI3NCwxNDc4MzEsMTY0NDc2LDIyNjgxLDIxMDk2LDEzODUwLDE1MzQwNSwzMTY2NiwyMzQwMCwxODQzMiwxOTI0NCw0MDc0MywxODkxOSwzOTk2NywzOTgyMSwxNTQ0ODQsMTQzNjc3LDIyMDExLDEzODEwLDIyMTUzLDIwMDA4'@; put 'LDIyNzg2LDEzODE3NywxOTQ2ODAsMzg3MzcsMTMxMjA2LDIwMDU5LDIwMTU1LDEzNjMwLDIzNTg3LDI0NDAxLDI0NTE2LDE0NTg2LDI1MTY0LDI1OTA5LDI3NTE0LDI3NzAxLDI3NzA2LDI4NzgwLDI5MjI3LDIwMDEyLDI5MzU3LDE0OTczNywzMjU5NCwzMTAzNSwzMTk5MywzMjU5NSwxNTYy'@; put 'NjYsMTM1MDUsbnVsbCwxNTY0OTEsMzI3NzAsMzI4OTYsMTU3MjAyLDE1ODAzMywyMTM0MSwzNDkxNiwzNTI2NSwxNjE5NzAsMzU3NDQsMzYxMjUsMzgwMjEsMzgyNjQsMzgyNzEsMzgzNzYsMTY3NDM5LDM4ODg2LDM5MDI5LDM5MTE4LDM5MTM0LDM5MjY3LDE3ZTQsNDAwNjAsNDA0NzksNDA2'@; put 'NDQsMjc1MDMsNjM3NTEsMjAwMjMsMTMxMjA3LDM4NDI5LDI1MTQzLDM4MDUwLG51bGwsMjA1MzksMjgxNTgsMTcxMTIzLDQwODcwLDE1ODE3LDM0OTU5LDE0Nzc5MCwyODc5MSwyMzc5NywxOTIzMiwxNTIwMTMsMTM2NTcsMTU0OTI4LDI0ODY2LDE2NjQ1MCwzNjc3NSwzNzM2NiwyOTA3Mywy'@; put 'NjM5MywyOTYyNiwxNDQwMDEsMTcyMjk1LDE1NDk5LDEzNzYwMCwxOTIxNiwzMDk0OCwyOTY5OCwyMDkxMCwxNjU2NDcsMTYzOTMsMjcyMzUsMTcyNzMwLDE2OTMxLDM0MzE5LDEzMzc0MywzMTI3NCwxNzAzMTEsMTY2NjM0LDM4NzQxLDI4NzQ5LDIxMjg0LDEzOTM5MCwzNzg3NiwzMDQyNSwx'@; put 'NjYzNzEsNDA4NzEsMzA2ODUsMjAxMzEsMjA0NjQsMjA2NjgsMjAwMTUsMjAyNDcsNDA4NzIsMjE1NTYsMzIxMzksMjI2NzQsMjI3MzYsMTM4Njc4LDI0MjEwLDI0MjE3LDI0NTE0LDE0MTA3NCwyNTk5NSwxNDQzNzcsMjY5MDUsMjcyMDMsMTQ2NTMxLDI3OTAzLG51bGwsMjkxODQsMTQ4NzQx'@; put 'LDI5NTgwLDE2MDkxLDE1MDAzNSwyMzMxNywyOTg4MSwzNTcxNSwxNTQ3ODgsMTUzMjM3LDMxMzc5LDMxNzI0LDMxOTM5LDMyMzY0LDMzNTI4LDM0MTk5LDQwODczLDM0OTYwLDQwODc0LDM2NTM3LDQwODc1LDM2ODE1LDM0MTQzLDM5MzkyLDM3NDA5LDQwODc2LDE2NzM1MywxMzYyNTUsMTY0'@; put 'OTcsMTcwNTgsMjMwNjYsbnVsbCxudWxsLG51bGwsMzkwMTYsMjY0NzUsMTcwMTQsMjIzMzMsbnVsbCwzNDI2MiwxNDk4ODMsMzM0NzEsMTYwMDEzLDE5NTg1LDE1OTA5MiwyMzkzMSwxNTg0ODUsMTU5Njc4LDQwODc3LDQwODc4LDIzNDQ2LDQwODc5LDI2MzQzLDMyMzQ3LDI4MjQ3LDMxMTc4'@; put 'LDE1NzUyLDE3NjAzLDE0Mzk1OCwxNDEyMDYsMTczMDYsMTc3MTgsbnVsbCwyMzc2NSwxNDYyMDIsMzU1NzcsMjM2NzIsMTU2MzQsMTQ0NzIxLDIzOTI4LDQwODgyLDI5MDE1LDE3NzUyLDE0NzY5MiwxMzg3ODcsMTk1NzUsMTQ3MTIsMTMzODYsMTMxNDkyLDE1ODc4NSwzNTUzMiwyMDQwNCwx'@; put 'MzE2NDEsMjI5NzUsMzMxMzIsMzg5OTgsMTcwMjM0LDI0Mzc5LDEzNDA0NyxudWxsLDEzOTcxMywxNjYyNTMsMTY2NDIsMTgxMDcsMTY4MDU3LDE2MTM1LDQwODgzLDE3MjQ2OSwxNjYzMiwxNDI5NCwxODE2NywxNTg3OTAsMTY3NjQsMTY1NTU0LDE2MDc2NywxNzc3MywxNDU0OCwxNTI3MzAs'@; put 'MTc3NjEsMTc2OTEsMTk4NDksMTk1NzksMTk4MzAsMTc4OTgsMTYzMjgsMTUwMjg3LDEzOTIxLDE3NjMwLDE3NTk3LDE2ODc3LDIzODcwLDIzODgwLDIzODk0LDE1ODY4LDE0MzUxLDIzOTcyLDIzOTkzLDE0MzY4LDE0MzkyLDI0MTMwLDI0MjUzLDI0MzU3LDI0NDUxLDE0NjAwLDE0NjEyLDE0'@; put 'NjU1LDE0NjY5LDI0NzkxLDI0ODkzLDIzNzgxLDE0NzI5LDI1MDE1LDI1MDE3LDI1MDM5LDE0Nzc2LDI1MTMyLDI1MjMyLDI1MzE3LDI1MzY4LDE0ODQwLDIyMTkzLDE0ODUxLDI1NTcwLDI1NTk1LDI1NjA3LDI1NjkwLDE0OTIzLDI1NzkyLDIzODI5LDIyMDQ5LDQwODYzLDE0OTk5LDI1OTkw'@; put 'LDE1MDM3LDI2MTExLDI2MTk1LDE1MDkwLDI2MjU4LDE1MTM4LDI2MzkwLDE1MTcwLDI2NTMyLDI2NjI0LDE1MTkyLDI2Njk4LDI2NzU2LDE1MjE4LDE1MjE3LDE1MjI3LDI2ODg5LDI2OTQ3LDI5Mjc2LDI2OTgwLDI3MDM5LDI3MDEzLDE1MjkyLDI3MDk0LDE1MzI1LDI3MjM3LDI3MjUyLDI3'@; put 'MjQ5LDI3MjY2LDE1MzQwLDI3Mjg5LDE1MzQ2LDI3MzA3LDI3MzE3LDI3MzQ4LDI3MzgyLDI3NTIxLDI3NTg1LDI3NjI2LDI3NzY1LDI3ODE4LDE1NTYzLDI3OTA2LDI3OTEwLDI3OTQyLDI4MDMzLDE1NTk5LDI4MDY4LDI4MDgxLDI4MTgxLDI4MTg0LDI4MjAxLDI4Mjk0LDE2NjMzNiwyODM0'@; put 'NywyODM4NiwyODM3OCw0MDgzMSwyODM5MiwyODM5MywyODQ1MiwyODQ2OCwxNTY4NiwxNDcyNjUsMjg1NDUsMjg2MDYsMTU3MjIsMTU3MzMsMjkxMTEsMjM3MDUsMTU3NTQsMjg3MTYsMTU3NjEsMjg3NTIsMjg3NTYsMjg3ODMsMjg3OTksMjg4MDksMTMxODc3LDE3MzQ1LDEzODA5LDEzNDg3'@; put 'MiwxNDcxNTksMjI0NjIsMTU5NDQzLDI4OTkwLDE1MzU2OCwxMzkwMiwyNzA0MiwxNjY4ODksMjM0MTIsMzEzMDUsMTUzODI1LDE2OTE3NywzMTMzMywzMTM1NywxNTQwMjgsMzE0MTksMzE0MDgsMzE0MjYsMzE0MjcsMjkxMzcsMTU2ODEzLDE2ODQyLDMxNDUwLDMxNDUzLDMxNDY2LDE2ODc5'@; put 'LDIxNjgyLDE1NDYyNSwzMTQ5OSwzMTU3MywzMTUyOSwxNTIzMzQsMTU0ODc4LDMxNjUwLDMxNTk5LDMzNjkyLDE1NDU0OCwxNTg4NDcsMzE2OTYsMzM4MjUsMzE2MzQsMzE2NzIsMTU0OTEyLDE1Nzg5LDE1NDcyNSwzMzkzOCwzMTczOCwzMTc1MCwzMTc5NywxNTQ4MTcsMzE4MTIsMzE4NzUs'@; put 'MTQ5NjM0LDMxOTEwLDI2MjM3LDE0ODg1NiwzMTk0NSwzMTk0MywzMTk3NCwzMTg2MCwzMTk4NywzMTk4OSwzMTk1MCwzMjM1OSwxNzY5MywxNTkzMDAsMzIwOTMsMTU5NDQ2LDI5ODM3LDMyMTM3LDMyMTcxLDI4OTgxLDMyMTc5LDMyMjEwLDE0NzU0MywxNTU2ODksMzIyMjgsMTU2MzUsMzIy'@; put 'NDUsMTM3MjA5LDMyMjI5LDE2NDcxNywzMjI4NSwxNTU5MzcsMTU1OTk0LDMyMzY2LDMyNDAyLDE3MTk1LDM3OTk2LDMyMjk1LDMyNTc2LDMyNTc3LDMyNTgzLDMxMDMwLDE1NjM2OCwzOTM5MywzMjY2MywxNTY0OTcsMzI2NzUsMTM2ODAxLDEzMTE3NiwxNzc1NiwxNDUyNTQsMTc2NjcsMTY0'@; put 'NjY2LDMyNzYyLDE1NjgwOSwzMjc3MywzMjc3NiwzMjc5NywzMjgwOCwzMjgxNSwxNzIxNjcsMTU4OTE1LDMyODI3LDMyODI4LDMyODY1LDE0MTA3NiwxODgyNSwxNTcyMjIsMTQ2OTE1LDE1NzQxNiwyNjQwNSwzMjkzNSwxNjY0NzIsMzMwMzEsMzMwNTAsMjI3MDQsMTQxMDQ2LDI3Nzc1LDE1'@; put 'NjgyNCwxNTE0ODAsMjU4MzEsMTM2MzMwLDMzMzA0LDEzNzMxMCwyNzIxOSwxNTAxMTcsMTUwMTY1LDE3NTMwLDMzMzIxLDEzMzkwMSwxNTgyOTAsMTQ2ODE0LDIwNDczLDEzNjQ0NSwzNDAxOCwzMzYzNCwxNTg0NzQsMTQ5OTI3LDE0NDY4OCwxMzcwNzUsMTQ2OTM2LDMzNDUwLDI2OTA3LDE5'@; put 'NDk2NCwxNjg1OSwzNDEyMywzMzQ4OCwzMzU2MiwxMzQ2NzgsMTM3MTQwLDE0MDE3LDE0Mzc0MSwxNDQ3MzAsMzM0MDMsMzM1MDYsMzM1NjAsMTQ3MDgzLDE1OTEzOSwxNTg0NjksMTU4NjE1LDE0NDg0NiwxNTgwNywzMzU2NSwyMTk5NiwzMzY2OSwxNzY3NSwxNTkxNDEsMzM3MDgsMzM3Mjks'@; put 'MzM3NDcsMTM0MzgsMTU5NDQ0LDI3MjIzLDM0MTM4LDEzNDYyLDE1OTI5OCwxNDMwODcsMzM4ODAsMTU0NTk2LDMzOTA1LDE1ODI3LDE3NjM2LDI3MzAzLDMzODY2LDE0NjYxMywzMTA2NCwzMzk2MCwxNTg2MTQsMTU5MzUxLDE1OTI5OSwzNDAxNCwzMzgwNywzMzY4MSwxNzU2OCwzMzkzOSwz'@; put 'NDAyMCwxNTQ3NjksMTY5NjAsMTU0ODE2LDE3NzMxLDM0MTAwLDIzMjgyLDE1OTM4NSwxNzcwMywzNDE2MywxNzY4NiwyNjU1OSwzNDMyNiwxNjU0MTMsMTY1NDM1LDM0MjQxLDE1OTg4MCwzNDMwNiwxMzY1NzgsMTU5OTQ5LDE5NDk5NCwxNzc3MCwzNDM0NCwxMzg5NiwxMzczNzgsMjE0OTUs'@; put 'MTYwNjY2LDM0NDMwLDM0NjczLDE3MjI4MCwzNDc5OCwxNDIzNzUsMzQ3MzcsMzQ3NzgsMzQ4MzEsMjIxMTMsMzQ0MTIsMjY3MTAsMTc5MzUsMzQ4ODUsMzQ4ODYsMTYxMjQ4LDE0Njg3MywxNjEyNTIsMzQ5MTAsMzQ5NzIsMTgwMTEsMzQ5OTYsMzQ5OTcsMjU1MzcsMzUwMTMsMzA1ODMsMTYx'@; put 'NTUxLDM1MjA3LDM1MjEwLDM1MjM4LDM1MjQxLDM1MjM5LDM1MjYwLDE2NjQzNywzNTMwMywxNjIwODQsMTYyNDkzLDM1NDg0LDMwNjExLDM3Mzc0LDM1NDcyLDE2MjM5MywzMTQ2NSwxNjI2MTgsMTQ3MzQzLDE4MTk1LDE2MjYxNiwyOTA1MiwzNTU5NiwzNTYxNSwxNTI2MjQsMTUyOTMzLDM1'@; put 'NjQ3LDM1NjYwLDM1NjYxLDM1NDk3LDE1MDEzOCwzNTcyOCwzNTczOSwzNTUwMywxMzY5MjcsMTc5NDEsMzQ4OTUsMzU5OTUsMTYzMTU2LDE2MzIxNSwxOTUwMjgsMTQxMTcsMTYzMTU1LDM2MDU0LDE2MzIyNCwxNjMyNjEsMzYxMTQsMzYwOTksMTM3NDg4LDM2MDU5LDI4NzY0LDM2MTEzLDE1'@; put 'MDcyOSwxNjA4MCwzNjIxNSwzNjI2NSwxNjM4NDIsMTM1MTg4LDE0OTg5OCwxNTIyOCwxNjQyODQsMTYwMDEyLDMxNDYzLDM2NTI1LDM2NTM0LDM2NTQ3LDM3NTg4LDM2NjMzLDM2NjUzLDE2NDcwOSwxNjQ4ODIsMzY3NzMsMzc2MzUsMTcyNzAzLDEzMzcxMiwzNjc4NywxODczMCwxNjYzNjYs'@; put 'MTY1MTgxLDE0Njg3NSwyNDMxMiwxNDM5NzAsMzY4NTcsMTcyMDUyLDE2NTU2NCwxNjUxMjEsMTQwMDY5LDE0NzIwLDE1OTQ0NywzNjkxOSwxNjUxODAsMTYyNDk0LDM2OTYxLDE2NTIyOCwxNjUzODcsMzcwMzIsMTY1NjUxLDM3MDYwLDE2NTYwNiwzNzAzOCwzNzExNywzNzIyMywxNTA4OCwz'@; put 'NzI4OSwzNzMxNiwzMTkxNiwxNjYxOTUsMTM4ODg5LDM3MzkwLDI3ODA3LDM3NDQxLDM3NDc0LDE1MzAxNywzNzU2MSwxNjY1OTgsMTQ2NTg3LDE2NjY2OCwxNTMwNTEsMTM0NDQ5LDM3Njc2LDM3NzM5LDE2NjYyNSwxNjY4OTEsMjg4MTUsMjMyMzUsMTY2NjI2LDE2NjYyOSwxODc4OSwzNzQ0'@; put 'NCwxNjY4OTIsMTY2OTY5LDE2NjkxMSwzNzc0NywzNzk3OSwzNjU0MCwzODI3NywzODMxMCwzNzkyNiwzODMwNCwyODY2MiwxNzA4MSwxNDA5MjIsMTY1NTkyLDEzNTgwNCwxNDY5OTAsMTg5MTEsMjc2NzYsMzg1MjMsMzg1NTAsMTY3NDgsMzg1NjMsMTU5NDQ1LDI1MDUwLDM4NTgyLDMwOTY1'@; put 'LDE2NjYyNCwzODU4OSwyMTQ1MiwxODg0OSwxNTg5MDQsMTMxNzAwLDE1NjY4OCwxNjgxMTEsMTY4MTY1LDE1MDIyNSwxMzc0OTMsMTQ0MTM4LDM4NzA1LDM0MzcwLDM4NzEwLDE4OTU5LDE3NzI1LDE3Nzk3LDE1MDI0OSwyODc4OSwyMzM2MSwzODY4MywzODc0OCwxNjg0MDUsMzg3NDMsMjMz'@; put 'NzAsMTY4NDI3LDM4NzUxLDM3OTI1LDIwNjg4LDE0MzU0MywxNDM1NDgsMzg3OTMsMzg4MTUsMzg4MzMsMzg4NDYsMzg4NDgsMzg4NjYsMzg4ODAsMTUyNjg0LDM4ODk0LDI5NzI0LDE2OTAxMSwzODkxMSwzODkwMSwxNjg5ODksMTYyMTcwLDE5MTUzLDM4OTY0LDM4OTYzLDM4OTg3LDM5MDE0'@; put 'LDE1MTE4LDE2MDExNywxNTY5NywxMzI2NTYsMTQ3ODA0LDE1MzM1MCwzOTExNCwzOTA5NSwzOTExMiwzOTExMSwxOTE5OSwxNTkwMTUsMTM2OTE1LDIxOTM2LDM5MTM3LDM5MTQyLDM5MTQ4LDM3NzUyLDM5MjI1LDE1MDA1NywxOTMxNCwxNzAwNzEsMTcwMjQ1LDM5NDEzLDM5NDM2LDM5NDgz'@; put 'LDM5NDQwLDM5NTEyLDE1MzM4MSwxNDAyMCwxNjgxMTMsMTcwOTY1LDM5NjQ4LDM5NjUwLDE3MDc1NywzOTY2OCwxOTQ3MCwzOTcwMCwzOTcyNSwxNjUzNzYsMjA1MzIsMzk3MzIsMTU4MTIwLDE0NTMxLDE0MzQ4NSwzOTc2MCwzOTc0NCwxNzEzMjYsMjMxMDksMTM3MzE1LDM5ODIyLDE0ODA0'@; put 'MywzOTkzOCwzOTkzNSwzOTk0OCwxNzE2MjQsNDA0MDQsMTcxOTU5LDE3MjQzNCwxNzI0NTksMTcyMjU3LDE3MjMyMywxNzI1MTEsNDAzMTgsNDAzMjMsMTcyMzQwLDQwNDYyLDI2NzYwLDQwMzg4LDEzOTYxMSwxNzI0MzUsMTcyNTc2LDEzNzUzMSwxNzI1OTUsNDAyNDksMTcyMjE3LDE3Mjcy'@; put 'NCw0MDU5Miw0MDU5Nyw0MDYwNiw0MDYxMCwxOTc2NCw0MDYxOCw0MDYyMywxNDgzMjQsNDA2NDEsMTUyMDAsMTQ4MjEsMTU2NDUsMjAyNzQsMTQyNzAsMTY2OTU1LDQwNzA2LDQwNzEyLDE5MzUwLDM3OTI0LDE1OTEzOCw0MDcyNyw0MDcyNiw0MDc2MSwyMjE3NSwyMjE1NCw0MDc3MywzOTM1'@; put 'MiwxNjgwNzUsMzg4OTgsMzM5MTksNDA4MDIsNDA4MDksMzE0NTIsNDA4NDYsMjkyMDYsMTkzOTAsMTQ5ODc3LDE0OTk0NywyOTA0NywxNTAwMDgsMTQ4Mjk2LDE1MDA5NywyOTU5OCwxNjY4NzQsMTM3NDY2LDMxMTM1LDE2NjI3MCwxNjc0NzgsMzc3MzcsMzc4NzUsMTY2NDY4LDM3NjEyLDM3'@; put 'NzYxLDM3ODM1LDE2NjI1MiwxNDg2NjUsMjkyMDcsMTYxMDcsMzA1NzgsMzEyOTksMjg4ODAsMTQ4NTk1LDE0ODQ3MiwyOTA1NCwxMzcxOTksMjg4MzUsMTM3NDA2LDE0NDc5MywxNjA3MSwxMzczNDksMTUyNjIzLDEzNzIwOCwxNDExNCwxMzY5NTUsMTM3MjczLDE0MDQ5LDEzNzA3NiwxMzc0'@; put 'MjUsMTU1NDY3LDE0MTE1LDEzNjg5NiwyMjM2MywxNTAwNTMsMTM2MTkwLDEzNTg0OCwxMzYxMzQsMTM2Mzc0LDM0MDUxLDE0NTA2MiwzNDA1MSwzMzg3NywxNDk5MDgsMTYwMTAxLDE0Njk5MywxNTI5MjQsMTQ3MTk1LDE1OTgyNiwxNzY1MiwxNDUxMzQsMTcwMzk3LDE1OTUyNiwyNjYxNywx'@; put 'NDEzMSwxNTM4MSwxNTg0NywyMjYzNiwxMzc1MDYsMjY2NDAsMTY0NzEsMTQ1MjE1LDE0NzY4MSwxNDc1OTUsMTQ3NzI3LDE1ODc1MywyMTcwNywyMjE3NCwxNTczNjEsMjIxNjIsMTM1MTM1LDEzNDA1NiwxMzQ2NjksMzc4MzAsMTY2Njc1LDM3Nzg4LDIwMjE2LDIwNzc5LDE0MzYxLDE0ODUz'@; put 'NCwyMDE1NiwxMzIxOTcsMTMxOTY3LDIwMjk5LDIwMzYyLDE1MzE2OSwyMzE0NCwxMzE0OTksMTMyMDQzLDE0NzQ1LDEzMTg1MCwxMzIxMTYsMTMzNjUsMjAyNjUsMTMxNzc2LDE2NzYwMywxMzE3MDEsMzU1NDYsMTMxNTk2LDIwMTIwLDIwNjg1LDIwNzQ5LDIwMzg2LDIwMjI3LDE1MDAzMCwx'@; put 'NDcwODIsMjAyOTAsMjA1MjYsMjA1ODgsMjA2MDksMjA0MjgsMjA0NTMsMjA1NjgsMjA3MzIsMjA4MjUsMjA4MjcsMjA4MjksMjA4MzAsMjgyNzgsMTQ0Nzg5LDE0NzAwMSwxNDcxMzUsMjgwMTgsMTM3MzQ4LDE0NzA4MSwyMDkwNCwyMDkzMSwxMzI1NzYsMTc2MjksMTMyMjU5LDEzMjI0Miwx'@; put 'MzIyNDEsMzYyMTgsMTY2NTU2LDEzMjg3OCwyMTA4MSwyMTE1NiwxMzMyMzUsMjEyMTcsMzc3NDIsMTgwNDIsMjkwNjgsMTQ4MzY0LDEzNDE3NiwxNDk5MzIsMTM1Mzk2LDI3MDg5LDEzNDY4NSwyOTgxNywxNjA5NCwyOTg0OSwyOTcxNiwyOTc4MiwyOTU5MiwxOTM0MiwxNTAyMDQsMTQ3NTk3'@; put 'LDIxNDU2LDEzNzAwLDI5MTk5LDE0NzY1NywyMTk0MCwxMzE5MDksMjE3MDksMTM0MDg2LDIyMzAxLDM3NDY5LDM4NjQ0LDM3NzM0LDIyNDkzLDIyNDEzLDIyMzk5LDEzODg2LDIyNzMxLDIzMTkzLDE2NjQ3MCwxMzY5NTQsMTM3MDcxLDEzNjk3NiwyMzA4NCwyMjk2OCwzNzUxOSwyMzE2Niwy'@; put 'MzI0NywyMzA1OCwxNTM5MjYsMTM3NzE1LDEzNzMxMywxNDgxMTcsMTQwNjksMjc5MDksMjk3NjMsMjMwNzMsMTU1MjY3LDIzMTY5LDE2Njg3MSwxMzIxMTUsMzc4NTYsMjk4MzYsMTM1OTM5LDI4OTMzLDE4ODAyLDM3ODk2LDE2NjM5NSwzNzgyMSwxNDI0MCwyMzU4MiwyMzcxMCwyNDE1OCwy'@; put 'NDEzNiwxMzc2MjIsMTM3NTk2LDE0NjE1OCwyNDI2OSwyMzM3NSwxMzc0NzUsMTM3NDc2LDE0MDgxLDEzNzM3NiwxNDA0NSwxMzY5NTgsMTQwMzUsMzMwNjYsMTY2NDcxLDEzODY4MiwxNDQ0OTgsMTY2MzEyLDI0MzMyLDI0MzM0LDEzNzUxMSwxMzcxMzEsMjMxNDcsMTM3MDE5LDIzMzY0LDM0'@; put 'MzI0LDE2MTI3NywzNDkxMiwyNDcwMiwxNDE0MDgsMTQwODQzLDI0NTM5LDE2MDU2LDE0MDcxOSwxNDA3MzQsMTY4MDcyLDE1OTYwMywyNTAyNCwxMzExMzQsMTMxMTQyLDE0MDgyNywyNDk4NSwyNDk4NCwyNDY5MywxNDI0OTEsMTQyNTk5LDE0OTIwNCwxNjgyNjksMjU3MTMsMTQ5MDkzLDE0'@; put 'MjE4NiwxNDg4OSwxNDIxMTQsMTQ0NDY0LDE3MDIxOCwxNDI5NjgsMjUzOTksMTczMTQ3LDI1NzgyLDI1MzkzLDI1NTUzLDE0OTk4NywxNDI2OTUsMjUyNTIsMTQyNDk3LDI1NjU5LDI1OTYzLDI2OTk0LDE1MzQ4LDE0MzUwMiwxNDQwNDUsMTQ5ODk3LDE0NDA0MywyMTc3MywxNDQwOTYsMTM3'@; put 'NDMzLDE2OTAyMywyNjMxOCwxNDQwMDksMTQzNzk1LDE1MDcyLDE2Nzg0LDE1Mjk2NCwxNjY2OTAsMTUyOTc1LDEzNjk1NiwxNTI5MjMsMTUyNjEzLDMwOTU4LDE0MzYxOSwxMzcyNTgsMTQzOTI0LDEzNDEyLDE0Mzg4NywxNDM3NDYsMTQ4MTY5LDI2MjU0LDE1OTAxMiwyNjIxOSwxOTM0Nywy'@; put 'NjE2MCwxNjE5MDQsMTM4NzMxLDI2MjExLDE0NDA4MiwxNDQwOTcsMjYxNDIsMTUzNzE0LDE0NTQ1LDE0NTQ2NiwxNDUzNDAsMTUyNTcsMTQ1MzE0LDE0NDM4MiwyOTkwNCwxNTI1NCwyNjUxMSwxNDkwMzQsMjY4MDYsMjY2NTQsMTUzMDAsMjczMjYsMTQ0MzUsMTQ1MzY1LDE0ODYxNSwyNzE4'@; put 'NywyNzIxOCwyNzMzNywyNzM5NywxMzc0OTAsMjU4NzMsMjY3NzYsMjcyMTIsMTUzMTksMjcyNTgsMjc0NzksMTQ3MzkyLDE0NjU4NiwzNzc5MiwzNzYxOCwxNjY4OTAsMTY2NjAzLDM3NTEzLDE2Mzg3MCwxNjYzNjQsMzc5OTEsMjgwNjksMjg0MjcsMTQ5OTk2LDI4MDA3LDE0NzMyNywxNTc1'@; put 'OSwyODE2NCwxNDc1MTYsMjMxMDEsMjgxNzAsMjI1OTksMjc5NDAsMzA3ODYsMjg5ODcsMTQ4MjUwLDE0ODA4NiwyODkxMywyOTI2NCwyOTMxOSwyOTMzMiwxNDkzOTEsMTQ5Mjg1LDIwODU3LDE1MDE4MCwxMzI1ODcsMjk4MTgsMTQ3MTkyLDE0NDk5MSwxNTAwOTAsMTQ5NzgzLDE1NTYxNywx'@; put 'NjEzNCwxNjA0OSwxNTAyMzksMTY2OTQ3LDE0NzI1MywyNDc0MywxNjExNSwyOTkwMCwyOTc1NiwzNzc2NywyOTc1MSwxNzU2NywxNTkyMTAsMTc3NDUsMzAwODMsMTYyMjcsMTUwNzQ1LDE1MDc5MCwxNjIxNiwzMDAzNywzMDMyMywxNzM1MTAsMTUxMjksMjk4MDAsMTY2NjA0LDE0OTkzMSwx'@; put 'NDk5MDIsMTUwOTksMTU4MjEsMTUwMDk0LDE2MTI3LDE0OTk1NywxNDk3NDcsMzczNzAsMjIzMjIsMzc2OTgsMTY2NjI3LDEzNzMxNiwyMDcwMywxNTIwOTcsMTUyMDM5LDMwNTg0LDE0MzkyMiwzMDQ3OCwzMDQ3OSwzMDU4NywxNDkxNDMsMTQ1MjgxLDE0OTQyLDE0OTc0NCwyOTc1MiwyOTg1'@; put 'MSwxNjA2MywxNTAyMDIsMTUwMjE1LDE2NTg0LDE1MDE2NiwxNTYwNzgsMzc2MzksMTUyOTYxLDMwNzUwLDMwODYxLDMwODU2LDMwOTMwLDI5NjQ4LDMxMDY1LDE2MTYwMSwxNTMzMTUsMTY2NTQsMzExMzEsMzM5NDIsMzExNDEsMjcxODEsMTQ3MTk0LDMxMjkwLDMxMjIwLDE2NzUwLDEzNjkz'@; put 'NCwxNjY5MCwzNzQyOSwzMTIxNywxMzQ0NzYsMTQ5OTAwLDEzMTczNywxNDY4NzQsMTM3MDcwLDEzNzE5LDIxODY3LDEzNjgwLDEzOTk0LDEzMTU0MCwxMzQxNTcsMzE0NTgsMjMxMjksMTQxMDQ1LDE1NDI4NywxNTQyNjgsMjMwNTMsMTMxNjc1LDMwOTYwLDIzMDgyLDE1NDU2NiwzMTQ4Niwx'@; put 'Njg4OSwzMTgzNywzMTg1MywxNjkxMywxNTQ1NDcsMTU1MzI0LDE1NTMwMiwzMTk0OSwxNTAwMDksMTM3MTM2LDMxODg2LDMxODY4LDMxOTE4LDI3MzE0LDMyMjIwLDMyMjYzLDMyMjExLDMyNTkwLDE1NjI1NywxNTU5OTYsMTYyNjMyLDMyMTUxLDE1NTI2NiwxNzAwMiwxNTg1ODEsMTMzMzk4'@; put 'LDI2NTgyLDEzMTE1MCwxNDQ4NDcsMjI0NjgsMTU2NjkwLDE1NjY2NCwxNDk4NTgsMzI3MzMsMzE1MjcsMTMzMTY0LDE1NDM0NSwxNTQ5NDcsMzE1MDAsMTU1MTUwLDM5Mzk4LDM0MzczLDM5NTIzLDI3MTY0LDE0NDQ0NywxNDgxOCwxNTAwMDcsMTU3MTAxLDM5NDU1LDE1NzA4OCwzMzkyMCwx'@; put 'NjAwMzksMTU4OTI5LDE3NjQyLDMzMDc5LDE3NDEwLDMyOTY2LDMzMDMzLDMzMDkwLDE1NzYyMCwzOTEwNywxNTgyNzQsMzMzNzgsMzMzODEsMTU4Mjg5LDMzODc1LDE1OTE0MywzNDMyMCwxNjAyODMsMjMxNzQsMTY3NjcsMTM3MjgwLDIzMzM5LDEzNzM3NywyMzI2OCwxMzc0MzIsMzQ0NjQs'@; put 'MTk1MDA0LDE0NjgzMSwzNDg2MSwxNjA4MDIsMjMwNDIsMzQ5MjYsMjAyOTMsMzQ5NTEsMzUwMDcsMzUwNDYsMzUxNzMsMzUxNDksMTUzMjE5LDM1MTU2LDE2MTY2OSwxNjE2NjgsMTY2OTAxLDE2Njg3MywxNjY4MTIsMTY2MzkzLDE2MDQ1LDMzOTU1LDE4MTY1LDE4MTI3LDE0MzIyLDM1Mzg5'@; put 'LDM1MzU2LDE2OTAzMiwyNDM5NywzNzQxOSwxNDgxMDAsMjYwNjgsMjg5NjksMjg4NjgsMTM3Mjg1LDQwMzAxLDM1OTk5LDM2MDczLDE2MzI5MiwyMjkzOCwzMDY1OSwyMzAyNCwxNzI2MiwxNDAzNiwzNjM5NCwzNjUxOSwxNTA1MzcsMzY2NTYsMzY2ODIsMTcxNDAsMjc3MzYsMjg2MDMsMTQw'@; put 'MDY1LDE4NTg3LDI4NTM3LDI4Mjk5LDEzNzE3OCwzOTkxMywxNDAwNSwxNDk4MDcsMzcwNTEsMzcwMTUsMjE4NzMsMTg2OTQsMzczMDcsMzc4OTIsMTY2NDc1LDE2NDgyLDE2NjY1MiwzNzkyNywxNjY5NDEsMTY2OTcxLDM0MDIxLDM1MzcxLDM4Mjk3LDM4MzExLDM4Mjk1LDM4Mjk0LDE2NzIy'@; put 'MCwyOTc2NSwxNjA2NiwxNDk3NTksMTUwMDgyLDE0ODQ1OCwxNjEwMywxNDM5MDksMzg1NDMsMTY3NjU1LDE2NzUyNiwxNjc1MjUsMTYwNzYsMTQ5OTk3LDE1MDEzNiwxNDc0MzgsMjk3MTQsMjk4MDMsMTYxMjQsMzg3MjEsMTY4MTEyLDI2Njk1LDE4OTczLDE2ODA4MywxNTM1NjcsMzg3NDks'@; put 'Mzc3MzYsMTY2MjgxLDE2Njk1MCwxNjY3MDMsMTU2NjA2LDM3NTYyLDIzMzEzLDM1Njg5LDE4NzQ4LDI5Njg5LDE0Nzk5NSwzODgxMSwzODc2OSwzOTIyNCwxMzQ5NTAsMjQwMDEsMTY2ODUzLDE1MDE5NCwzODk0MywxNjkxNzgsMzc2MjIsMTY5NDMxLDM3MzQ5LDE3NjAwLDE2NjczNiwxNTAx'@; put 'MTksMTY2NzU2LDM5MTMyLDE2NjQ2OSwxNjEyOCwzNzQxOCwxODcyNSwzMzgxMiwzOTIyNywzOTI0NSwxNjI1NjYsMTU4NjksMzkzMjMsMTkzMTEsMzkzMzgsMzk1MTYsMTY2NzU3LDE1MzgwMCwyNzI3OSwzOTQ1NywyMzI5NCwzOTQ3MSwxNzAyMjUsMTkzNDQsMTcwMzEyLDM5MzU2LDE5Mzg5'@; put 'LDE5MzUxLDM3NzU3LDIyNjQyLDEzNTkzOCwyMjU2MiwxNDk5NDQsMTM2NDI0LDMwNzg4LDE0MTA4NywxNDY4NzIsMjY4MjEsMTU3NDEsMzc5NzYsMTQ2MzEsMjQ5MTIsMTQxMTg1LDE0MTY3NSwyNDgzOSw0MDAxNSw0MDAxOSw0MDA1OSwzOTk4OSwzOTk1MiwzOTgwNywzOTg4NywxNzE1NjUs'@; put 'Mzk4MzksMTcyNTMzLDE3MjI4Niw0MDIyNSwxOTYzMCwxNDc3MTYsNDA0NzIsMTk2MzIsNDAyMDQsMTcyNDY4LDE3MjI2OSwxNzIyNzUsMTcwMjg3LDQwMzU3LDMzOTgxLDE1OTI1MCwxNTk3MTEsMTU4NTk0LDM0MzAwLDE3NzE1LDE1OTE0MCwxNTkzNjQsMTU5MjE2LDMzODI0LDM0Mjg2LDE1'@; put 'OTIzMiwxNDUzNjcsMTU1NzQ4LDMxMjAyLDE0NDc5NiwxNDQ5NjAsMTg3MzMsMTQ5OTgyLDE1NzE0LDM3ODUxLDM3NTY2LDM3NzA0LDEzMTc3NSwzMDkwNSwzNzQ5NSwzNzk2NSwyMDQ1MiwxMzM3NiwzNjk2NCwxNTI5MjUsMzA3ODEsMzA4MDQsMzA5MDIsMzA3OTUsMTM3MDQ3LDE0MzgxNywx'@; put 'NDk4MjUsMTM5NzgsMjAzMzgsMjg2MzQsMjg2MzMsMjg3MDIsMjg3MDIsMjE1MjQsMTQ3ODkzLDIyNDU5LDIyNzcxLDIyNDEwLDQwMjE0LDIyNDg3LDI4OTgwLDEzNDg3LDE0Nzg4NCwyOTE2MywxNTg3ODQsMTUxNDQ3LDIzMzM2LDEzNzE0MSwxNjY0NzMsMjQ4NDQsMjMyNDYsMjMwNTEsMTcw'@; put 'ODQsMTQ4NjE2LDE0MTI0LDE5MzIzLDE2NjM5NiwzNzgxOSwzNzgxNiwxMzc0MzAsMTM0OTQxLDMzOTA2LDE1ODkxMiwxMzYyMTEsMTQ4MjE4LDE0MjM3NCwxNDg0MTcsMjI5MzIsMTQ2ODcxLDE1NzUwNSwzMjE2OCwxNTU5OTUsMTU1ODEyLDE0OTk0NSwxNDk4OTksMTY2Mzk0LDM3NjA1LDI5'@; put 'NjY2LDE2MTA1LDI5ODc2LDE2Njc1NSwxMzczNzUsMTYwOTcsMTUwMTk1LDI3MzUyLDI5NjgzLDI5NjkxLDE2MDg2LDE1MDA3OCwxNTAxNjQsMTM3MTc3LDE1MDExOCwxMzIwMDcsMTM2MjI4LDE0OTk4OSwyOTc2OCwxNDk3ODIsMjg4MzcsMTQ5ODc4LDM3NTA4LDI5NjcwLDM3NzI3LDEzMjM1'@; put 'MCwzNzY4MSwxNjY2MDYsMTY2NDIyLDM3NzY2LDE2Njg4NywxNTMwNDUsMTg3NDEsMTY2NTMwLDI5MDM1LDE0OTgyNywxMzQzOTksMjIxODAsMTMyNjM0LDEzNDEyMywxMzQzMjgsMjE3NjIsMzExNzIsMTM3MjEwLDMyMjU0LDEzNjg5OCwxNTAwOTYsMTM3Mjk4LDE3NzEwLDM3ODg5LDE0MDkw'@; put 'LDE2NjU5MiwxNDk5MzMsMjI5NjAsMTM3NDA3LDEzNzM0NywxNjA5MDAsMjMyMDEsMTQwNTAsMTQ2Nzc5LDE0ZTMsMzc0NzEsMjMxNjEsMTY2NTI5LDEzNzMxNCwzNzc0OCwxNTU2NSwxMzM4MTIsMTkwOTQsMTQ3MzAsMjA3MjQsMTU3MjEsMTU2OTIsMTM2MDkyLDI5MDQ1LDE3MTQ3LDE2NDM3'@; put 'NiwyODE3NSwxNjgxNjQsMTc2NDMsMjc5OTEsMTYzNDA3LDI4Nzc1LDI3ODIzLDE1NTc0LDE0NzQzNywxNDY5ODksMjgxNjIsMjg0MjgsMTU3MjcsMTMyMDg1LDMwMDMzLDE0MDEyLDEzNTEyLDE4MDQ4LDE2MDkwLDE4NTQ1LDIyOTgwLDM3NDg2LDE4NzUwLDM2NjczLDE2Njk0MCwxNTg2NTYs'@; put 'MjI1NDYsMjI0NzIsMTQwMzgsMTM2Mjc0LDI4OTI2LDE0ODMyMiwxNTAxMjksMTQzMzMxLDEzNTg1NiwxNDAyMjEsMjY4MDksMjY5ODMsMTM2MDg4LDE0NDYxMywxNjI4MDQsMTQ1MTE5LDE2NjUzMSwxNDUzNjYsMTQ0Mzc4LDE1MDY4NywyNzE2MiwxNDUwNjksMTU4OTAzLDMzODU0LDE3NjMx'@; put 'LDE3NjE0LDE1OTAxNCwxNTkwNTcsMTU4ODUwLDE1OTcxMCwyODQzOSwxNjAwMDksMzM1OTcsMTM3MDE4LDMzNzczLDE1ODg0OCwxNTk4MjcsMTM3MTc5LDIyOTIxLDIzMTcwLDEzNzEzOSwyMzEzNywyMzE1MywxMzc0NzcsMTQ3OTY0LDE0MTI1LDIzMDIzLDEzNzAyMCwxNDAyMywyOTA3MCwz'@; put 'Nzc3NiwyNjI2NiwxNDgxMzMsMjMxNTAsMjMwODMsMTQ4MTE1LDI3MTc5LDE0NzE5MywxNjE1OTAsMTQ4NTcxLDE0ODE3MCwyODk1NywxNDgwNTcsMTY2MzY5LDIwNDAwLDE1OTAxNiwyMzc0NiwxNDg2ODYsMTYzNDA1LDE0ODQxMywyNzE0OCwxNDgwNTQsMTM1OTQwLDI4ODM4LDI4OTc5LDE0'@; put 'ODQ1NywxNTc4MSwyNzg3MSwxOTQ1OTcsMTUwMDk1LDMyMzU3LDIzMDE5LDIzODU1LDE1ODU5LDI0NDEyLDE1MDEwOSwxMzcxODMsMzIxNjQsMzM4MzAsMjE2MzcsMTQ2MTcwLDE0NDEyOCwxMzE2MDQsMjIzOTgsMTMzMzMzLDEzMjYzMywxNjM1NywxMzkxNjYsMTcyNzI2LDI4Njc1LDE2ODI4'@; put 'MywyMzkyMCwyOTU4MywzMTk1NSwxNjY0ODksMTY4OTkyLDIwNDI0LDMyNzQzLDI5Mzg5LDI5NDU2LDE2MjU0OCwyOTQ5NiwyOTQ5NywxNTMzMzQsMjk1MDUsMjk1MTIsMTYwNDEsMTYyNTg0LDM2OTcyLDI5MTczLDE0OTc0NiwyOTY2NSwzMzI3MCwxNjA3NCwzMDQ3NiwxNjA4MSwyNzgxMCwy'@; put 'MjI2OSwyOTcyMSwyOTcyNiwyOTcyNywxNjA5OCwxNjExMiwxNjExNiwxNjEyMiwyOTkwNywxNjE0MiwxNjIxMSwzMDAxOCwzMDA2MSwzMDA2NiwzMDA5MywxNjI1MiwzMDE1MiwzMDE3MiwxNjMyMCwzMDI4NSwxNjM0MywzMDMyNCwxNjM0OCwzMDMzMCwxNTEzODgsMjkwNjQsMjIwNTEsMzUy'@; put 'MDAsMjI2MzMsMTY0MTMsMzA1MzEsMTY0NDEsMjY0NjUsMTY0NTMsMTM3ODcsMzA2MTYsMTY0OTAsMTY0OTUsMjM2NDYsMzA2NTQsMzA2NjcsMjI3NzAsMzA3NDQsMjg4NTcsMzA3NDgsMTY1NTIsMzA3NzcsMzA3OTEsMzA4MDEsMzA4MjIsMzM4NjQsMTUyODg1LDMxMDI3LDI2NjI3LDMxMDI2'@; put 'LDE2NjQzLDE2NjQ5LDMxMTIxLDMxMTI5LDM2Nzk1LDMxMjM4LDM2Nzk2LDE2NzQzLDMxMzc3LDE2ODE4LDMxNDIwLDMzNDAxLDE2ODM2LDMxNDM5LDMxNDUxLDE2ODQ3LDIwMDAxLDMxNTg2LDMxNTk2LDMxNjExLDMxNzYyLDMxNzcxLDE2OTkyLDE3MDE4LDMxODY3LDMxOTAwLDE3MDM2LDMx'@; put 'OTI4LDE3MDQ0LDMxOTgxLDM2NzU1LDI4ODY0LDEzNDM1MSwzMjIwNywzMjIxMiwzMjIwOCwzMjI1MywzMjY4NiwzMjY5MiwyOTM0MywxNzMwMywzMjgwMCwzMjgwNSwzMTU0NSwzMjgxNCwzMjgxNywzMjg1MiwxNTgyMCwyMjQ1MiwyODgzMiwzMjk1MSwzMzAwMSwxNzM4OSwzMzAzNiwyOTQ4'@; put 'MiwzMzAzOCwzMzA0MiwzMDA0OCwzMzA0NCwxNzQwOSwxNTE2MSwzMzExMCwzMzExMywzMzExNCwxNzQyNywyMjU4NiwzMzE0OCwzMzE1NiwxNzQ0NSwzMzE3MSwxNzQ1MywzMzE4OSwyMjUxMSwzMzIxNywzMzI1MiwzMzM2NCwxNzU1MSwzMzQ0NiwzMzM5OCwzMzQ4MiwzMzQ5NiwzMzUzNSwx'@; put 'NzU4NCwzMzYyMywzODUwNSwyNzAxOCwzMzc5NywyODkxNywzMzg5MiwyNDgwMywzMzkyOCwxNzY2OCwzMzk4MiwzNDAxNywzNDA0MCwzNDA2NCwzNDEwNCwzNDEzMCwxNzcyMywzNDE1OSwzNDE2MCwzNDI3MiwxNzc4MywzNDQxOCwzNDQ1MCwzNDQ4MiwzNDU0MywzODQ2OSwzNDY5OSwxNzky'@; put 'NiwxNzk0MywzNDk5MCwzNTA3MSwzNTEwOCwzNTE0MywzNTIxNywxNjIxNTEsMzUzNjksMzUzODQsMzU0NzYsMzU1MDgsMzU5MjEsMzYwNTIsMzYwODIsMzYxMjQsMTgzMjgsMjI2MjMsMzYyOTEsMTg0MTMsMjAyMDYsMzY0MTAsMjE5NzYsMjIzNTYsMzY0NjUsMjIwMDUsMzY1MjgsMTg0ODcs'@; put 'MzY1NTgsMzY1NzgsMzY1ODAsMzY1ODksMzY1OTQsMzY3OTEsMzY4MDEsMzY4MTAsMzY4MTIsMzY5MTUsMzkzNjQsMTg2MDUsMzkxMzYsMzczOTUsMTg3MTgsMzc0MTYsMzc0NjQsMzc0ODMsMzc1NTMsMzc1NTAsMzc1NjcsMzc2MDMsMzc2MTEsMzc2MTksMzc2MjAsMzc2MjksMzc2OTksMzc3'@; put 'NjQsMzc4MDUsMTg3NTcsMTg3NjksNDA2MzksMzc5MTEsMjEyNDksMzc5MTcsMzc5MzMsMzc5NTAsMTg3OTQsMzc5NzIsMzgwMDksMzgxODksMzgzMDYsMTg4NTUsMzgzODgsMzg0NTEsMTg5MTcsMjY1MjgsMTg5ODAsMzg3MjAsMTg5OTcsMzg4MzQsMzg4NTAsMjIxMDAsMTkxNzIsMjQ4MDgs'@; put 'MzkwOTcsMTkyMjUsMzkxNTMsMjI1OTYsMzkxODIsMzkxOTMsMjA5MTYsMzkxOTYsMzkyMjMsMzkyMzQsMzkyNjEsMzkyNjYsMTkzMTIsMzkzNjUsMTkzNTcsMzk0ODQsMzk2OTUsMzEzNjMsMzk3ODUsMzk4MDksMzk5MDEsMzk5MjEsMzk5MjQsMTk1NjUsMzk5NjgsMTQxOTEsMTM4MTc4LDQw'@; put 'MjY1LDM5OTk0LDQwNzAyLDIyMDk2LDQwMzM5LDQwMzgxLDQwMzg0LDQwNDQ0LDM4MTM0LDM2NzkwLDQwNTcxLDQwNjIwLDQwNjI1LDQwNjM3LDQwNjQ2LDM4MTA4LDQwNjc0LDQwNjg5LDQwNjk2LDMxNDMyLDQwNzcyLDEzMTIyMCwxMzE3NjcsMTMyZTMsMjY5MDYsMzgwODMsMjI5NTYsMTMy'@; put 'MzExLDIyNTkyLDM4MDgxLDE0MjY1LDEzMjU2NSwxMzI2MjksMTMyNzI2LDEzNjg5MCwyMjM1OSwyOTA0MywxMzM4MjYsMTMzODM3LDEzNDA3OSwyMTYxMCwxOTQ2MTksMTM0MDkxLDIxNjYyLDEzNDEzOSwxMzQyMDMsMTM0MjI3LDEzNDI0NSwxMzQyNjgsMjQ4MDcsMTM0Mjg1LDIyMTM4LDEz'@; put 'NDMyNSwxMzQzNjUsMTM0MzgxLDEzNDUxMSwxMzQ1NzgsMTM0NjAwLDI2OTY1LDM5OTgzLDM0NzI1LDEzNDY2MCwxMzQ2NzAsMTM0ODcxLDEzNTA1NiwxMzQ5NTcsMTM0NzcxLDIzNTg0LDEzNTEwMCwyNDA3NSwxMzUyNjAsMTM1MjQ3LDEzNTI4NiwyNjM5OCwxMzUyOTEsMTM1MzA0LDEzNTMx'@; put 'OCwxMzg5NSwxMzUzNTksMTM1Mzc5LDEzNTQ3MSwxMzU0ODMsMjEzNDgsMzM5NjUsMTM1OTA3LDEzNjA1MywxMzU5OTAsMzU3MTMsMTM2NTY3LDEzNjcyOSwxMzcxNTUsMTM3MTU5LDIwMDg4LDI4ODU5LDEzNzI2MSwxMzc1NzgsMTM3NzczLDEzNzc5NywxMzgyODIsMTM4MzUyLDEzODQxMiwx'@; put 'Mzg5NTIsMjUyODMsMTM4OTY1LDEzOTAyOSwyOTA4MCwyNjcwOSwxMzkzMzMsMjcxMTMsMTQwMjQsMTM5OTAwLDE0MDI0NywxNDAyODIsMTQxMDk4LDE0MTQyNSwxNDE2NDcsMzM1MzMsMTQxNjcxLDE0MTcxNSwxNDIwMzcsMzUyMzcsMTQyMDU2LDM2NzY4LDE0MjA5NCwzODg0MCwxNDIxNDMs'@; put 'Mzg5ODMsMzk2MTMsMTQyNDEyLG51bGwsMTQyNDcyLDE0MjUxOSwxNTQ2MDAsMTQyNjAwLDE0MjYxMCwxNDI3NzUsMTQyNzQxLDE0MjkxNCwxNDMyMjAsMTQzMzA4LDE0MzQxMSwxNDM0NjIsMTQ0MTU5LDE0NDM1MCwyNDQ5NywyNjE4NCwyNjMwMywxNjI0MjUsMTQ0NzQzLDE0NDg4MywyOTE4'@; put 'NSwxNDk5NDYsMzA2NzksMTQ0OTIyLDE0NTE3NCwzMjM5MSwxMzE5MTAsMjI3MDksMjYzODIsMjY5MDQsMTQ2MDg3LDE2MTM2NywxNTU2MTgsMTQ2OTYxLDE0NzEyOSwxNjEyNzgsMTM5NDE4LDE4NjQwLDE5MTI4LDE0NzczNywxNjY1NTQsMTQ4MjA2LDE0ODIzNywxNDc1MTUsMTQ4Mjc2LDE0'@; put 'ODM3NCwxNTAwODUsMTMyNTU0LDIwOTQ2LDEzMjYyNSwyMjk0MywxMzg5MjAsMTUyOTQsMTQ2Njg3LDE0ODQ4NCwxNDg2OTQsMjI0MDgsMTQ5MTA4LDE0NzQ3LDE0OTI5NSwxNjUzNTIsMTcwNDQxLDE0MTc4LDEzOTcxNSwzNTY3OCwxNjY3MzQsMzkzODIsMTQ5NTIyLDE0OTc1NSwxNTAwMzcs'@; put 'MjkxOTMsMTUwMjA4LDEzNDI2NCwyMjg4NSwxNTEyMDUsMTUxNDMwLDEzMjk4NSwzNjU3MCwxNTE1OTYsMjExMzUsMjIzMzUsMjkwNDEsMTUyMjE3LDE1MjYwMSwxNDcyNzQsMTUwMTgzLDIxOTQ4LDE1MjY0NiwxNTI2ODYsMTU4NTQ2LDM3MzMyLDEzNDI3LDE1Mjg5NSwxNjEzMzAsMTUyOTI2'@; put 'LDE4MjAwLDE1MjkzMCwxNTI5MzQsMTUzNTQzLDE0OTgyMywxNTM2OTMsMjA1ODIsMTM1NjMsMTQ0MzMyLDI0Nzk4LDE1Mzg1OSwxODMwMCwxNjYyMTYsMTU0Mjg2LDE1NDUwNSwxNTQ2MzAsMTM4NjQwLDIyNDMzLDI5MDA5LDI4NTk4LDE1NTkwNiwxNjI4MzQsMzY5NTAsMTU2MDgyLDE1MTQ1'@; put 'MCwzNTY4MiwxNTY2NzQsMTU2NzQ2LDIzODk5LDE1ODcxMSwzNjY2MiwxNTY4MDQsMTM3NTAwLDM1NTYyLDE1MDAwNiwxNTY4MDgsMTQ3NDM5LDE1Njk0NiwxOTM5MiwxNTcxMTksMTU3MzY1LDE0MTA4MywzNzk4OSwxNTM1NjksMjQ5ODEsMjMwNzksMTk0NzY1LDIwNDExLDIyMjAxLDE0ODc2'@; put 'OSwxNTc0MzYsMjAwNzQsMTQ5ODEyLDM4NDg2LDI4MDQ3LDE1ODkwOSwxMzg0OCwzNTE5MSwxNTc1OTMsMTU3ODA2LDE1NjY4OSwxNTc3OTAsMjkxNTEsMTU3ODk1LDMxNTU0LDE2ODEyOCwxMzM2NDksMTU3OTkwLDM3MTI0LDE1ODAwOSwzMTMwMSw0MDQzMiwxNTgyMDIsMzk0NjIsMTU4MjUz'@; put 'LDEzOTE5LDE1Njc3NywxMzExMDUsMzExMDcsMTU4MjYwLDE1ODU1NSwyMzg1MiwxNDQ2NjUsMzM3NDMsMTU4NjIxLDE4MTI4LDE1ODg4NCwzMDAxMSwzNDkxNywxNTkxNTAsMjI3MTAsMTQxMDgsMTQwNjg1LDE1OTgxOSwxNjAyMDUsMTU0NDQsMTYwMzg0LDE2MDM4OSwzNzUwNSwxMzk2NDIs'@; put 'MTYwMzk1LDM3NjgwLDE2MDQ4NiwxNDk5NjgsMjc3MDUsMzgwNDcsMTYwODQ4LDEzNDkwNCwzNDg1NSwzNTA2MSwxNDE2MDYsMTY0OTc5LDEzNzEzNywyODM0NCwxNTAwNTgsMTM3MjQ4LDE0NzU2LDE0MDA5LDIzNTY4LDMxMjAzLDE3NzI3LDI2Mjk0LDE3MTE4MSwxNzAxNDgsMzUxMzksMTYx'@; put 'NzQwLDE2MTg4MCwyMjIzMCwxNjYwNywxMzY3MTQsMTQ3NTMsMTQ1MTk5LDE2NDA3MiwxMzYxMzMsMjkxMDEsMzM2MzgsMTYyMjY5LDE2ODM2MCwyMzE0MywxOTYzOSwxNTk5MTksMTY2MzE1LDE2MjMwMSwxNjIzMTQsMTYyNTcxLDE2MzE3NCwxNDc4MzQsMzE1NTUsMzExMDIsMTYzODQ5LDI4'@; put 'NTk3LDE3Mjc2NywyNzEzOSwxNjQ2MzIsMjE0MTAsMTU5MjM5LDM3ODIzLDI2Njc4LDM4NzQ5LDE2NDIwNywxNjM4NzUsMTU4MTMzLDEzNjE3MywxNDM5MTksMTYzOTEyLDIzOTQxLDE2Njk2MCwxNjM5NzEsMjIyOTMsMzg5NDcsMTY2MjE3LDIzOTc5LDE0OTg5NiwyNjA0NiwyNzA5MywyMTQ1'@; put 'OCwxNTAxODEsMTQ3MzI5LDE1Mzc3LDI2NDIyLDE2Mzk4NCwxNjQwODQsMTY0MTQyLDEzOTE2OSwxNjQxNzUsMTY0MjMzLDE2NDI3MSwxNjQzNzgsMTY0NjE0LDE2NDY1NSwxNjQ3NDYsMTM3NzAsMTY0OTY4LDE2NTU0NiwxODY4MiwyNTU3NCwxNjYyMzAsMzA3MjgsMzc0NjEsMTY2MzI4LDE3'@; put 'Mzk0LDE2NjM3NSwxNzM3NSwxNjYzNzYsMTY2NzI2LDE2Njg2OCwyMzAzMiwxNjY5MjEsMzY2MTksMTY3ODc3LDE2ODE3MiwzMTU2OSwxNjgyMDgsMTY4MjUyLDE1ODYzLDE2ODI4NiwxNTAyMTgsMzY4MTYsMjkzMjcsMjIxNTUsMTY5MTkxLDE2OTQ0OSwxNjkzOTIsMTY5NDAwLDE2OTc3OCwx'@; put 'NzAxOTMsMTcwMzEzLDE3MDM0NiwxNzA0MzUsMTcwNTM2LDE3MDc2NiwxNzEzNTQsMTcxNDE5LDMyNDE1LDE3MTc2OCwxNzE4MTEsMTk2MjAsMzgyMTUsMTcyNjkxLDI5MDkwLDE3Mjc5OSwxOTg1NywzNjg4MiwxNzM1MTUsMTk4NjgsMTM0MzAwLDM2Nzk4LDIxOTUzLDM2Nzk0LDE0MDQ2NCwz'@; put 'Njc5MywxNTAxNjMsMTc2NzMsMzIzODMsMjg1MDIsMjczMTMsMjAyMDIsMTM1NDAsMTY2NzAwLDE2MTk0OSwxNDEzOCwzNjQ4MCwxMzcyMDUsMTYzODc2LDE2Njc2NCwxNjY4MDksMTYyMzY2LDE1NzM1OSwxNTg1MSwxNjEzNjUsMTQ2NjE1LDE1MzE0MSwxNTM5NDIsMjAxMjIsMTU1MjY1LDE1'@; put 'NjI0OCwyMjIwNywxMzQ3NjUsMzYzNjYsMjM0MDUsMTQ3MDgwLDE1MDY4NiwyNTU2NiwyNTI5NiwxMzcyMDYsMTM3MzM5LDI1OTA0LDIyMDYxLDE1NDY5OCwyMTUzMCwxNTIzMzcsMTU4MTQsMTcxNDE2LDE5NTgxLDIyMDUwLDIyMDQ2LDMyNTg1LDE1NTM1MiwyMjkwMSwxNDY3NTIsMzQ2NzIs'@; put 'MTk5OTYsMTM1MTQ2LDEzNDQ3MywxNDUwODIsMzMwNDcsNDAyODYsMzYxMjAsMzAyNjcsNDAwMDUsMzAyODYsMzA2NDksMzc3MDEsMjE1NTQsMzMwOTYsMzM1MjcsMjIwNTMsMzMwNzQsMzM4MTYsMzI5NTcsMjE5OTQsMzEwNzQsMjIwODMsMjE1MjYsMTM0ODEzLDEzNzc0LDIyMDIxLDIyMDAx'@; put 'LDI2MzUzLDE2NDU3OCwxMzg2OSwzMDAwNCwyMmUzLDIxOTQ2LDIxNjU1LDIxODc0LDEzNDIwOSwxMzQyOTQsMjQyNzIsMTUxODgwLDEzNDc3NCwxNDI0MzQsMTM0ODE4LDQwNjE5LDMyMDkwLDIxOTgyLDEzNTI4NSwyNTI0NSwzODc2NSwyMTY1MiwzNjA0NSwyOTE3NCwzNzIzOCwyNTU5Niwy'@; put 'NTUyOSwyNTU5OCwyMTg2NSwxNDIxNDcsNDAwNTAsMTQzMDI3LDIwODkwLDEzNTM1LDEzNDU2NywyMDkwMywyMTU4MSwyMTc5MCwyMTc3OSwzMDMxMCwzNjM5NywxNTc4MzQsMzAxMjksMzI5NTAsMzQ4MjAsMzQ2OTQsMzUwMTUsMzMyMDYsMzM4MjAsMTM1MzYxLDE3NjQ0LDI5NDQ0LDE0OTI1'@; put 'NCwyMzQ0MCwzMzU0NywxNTc4NDMsMjIxMzksMTQxMDQ0LDE2MzExOSwxNDc4NzUsMTYzMTg3LDE1OTQ0MCwxNjA0MzgsMzcyMzIsMTM1NjQxLDM3Mzg0LDE0NjY4NCwxNzM3MzcsMTM0ODI4LDEzNDkwNSwyOTI4NiwxMzg0MDIsMTgyNTQsMTUxNDkwLDE2MzgzMywxMzUxNDcsMTY2MzQsNDAw'@; put 'MjksMjU4ODcsMTQyNzUyLDE4Njc1LDE0OTQ3MiwxNzEzODgsMTM1MTQ4LDEzNDY2NiwyNDY3NCwxNjExODcsMTM1MTQ5LG51bGwsMTU1NzIwLDEzNTU1OSwyOTA5MSwzMjM5OCw0MDI3MiwxOTk5NCwxOTk3MiwxMzY4NywyMzMwOSwyNzgyNiwyMTM1MSwxMzk5NiwxNDgxMiwyMTM3MywxMzk4'@; put 'OSwxNDkwMTYsMjI2ODIsMTUwMzgyLDMzMzI1LDIxNTc5LDIyNDQyLDE1NDI2MSwxMzM0OTcsbnVsbCwxNDkzMCwxNDAzODksMjk1NTYsMTcxNjkyLDE5NzIxLDM5OTE3LDE0NjY4NiwxNzE4MjQsMTk1NDcsMTUxNDY1LDE2OTM3NCwxNzE5OTgsMzM4ODQsMTQ2ODcwLDE2MDQzNCwxNTc2MTks'@; put 'MTQ1MTg0LDI1MzkwLDMyMDM3LDE0NzE5MSwxNDY5ODgsMTQ4OTAsMzY4NzIsMjExOTYsMTU5ODgsMTM5NDYsMTc4OTcsMTMyMjM4LDMwMjcyLDIzMjgwLDEzNDgzOCwzMDg0MiwxNjM2MzAsMjI2OTUsMTY1NzUsMjIxNDAsMzk4MTksMjM5MjQsMzAyOTIsMTczMTA4LDQwNTgxLDE5NjgxLDMw'@; put 'MjAxLDE0MzMxLDI0ODU3LDE0MzU3OCwxNDg0NjYsbnVsbCwyMjEwOSwxMzU4NDksMjI0MzksMTQ5ODU5LDE3MTUyNiwyMTA0NCwxNTk5MTgsMTM3NDEsMjc3MjIsNDAzMTYsMzE4MzAsMzk3MzcsMjI0OTQsMTM3MDY4LDIzNjM1LDI1ODExLDE2OTE2OCwxNTY0NjksMTYwMTAwLDM0NDc3LDEz'@; put 'NDQ0MCwxNTkwMTAsMTUwMjQyLDEzNDUxMyxudWxsLDIwOTkwLDEzOTAyMywyMzk1MCwzODY1OSwxMzg3MDUsNDA1NzcsMzY5NDAsMzE1MTksMzk2ODIsMjM3NjEsMzE2NTEsMjUxOTIsMjUzOTcsMzk2NzksMzE2OTUsMzk3MjIsMzE4NzAsMzk3MjYsMzE4MTAsMzE4NzgsMzk5NTcsMzE3NDAs'@; put 'Mzk2ODksNDA3MjcsMzk5NjMsMTQ5ODIyLDQwNzk0LDIxODc1LDIzNDkxLDIwNDc3LDQwNjAwLDIwNDY2LDIxMDg4LDE1ODc4LDIxMjAxLDIyMzc1LDIwNTY2LDIyOTY3LDI0MDgyLDM4ODU2LDQwMzYzLDM2NzAwLDIxNjA5LDM4ODM2LDM5MjMyLDM4ODQyLDIxMjkyLDI0ODgwLDI2OTI0LDIx'@; put 'NDY2LDM5OTQ2LDQwMTk0LDE5NTE1LDM4NDY1LDI3MDA4LDIwNjQ2LDMwMDIyLDEzNzA2OSwzOTM4NiwyMTEwNyxudWxsLDM3MjA5LDM4NTI5LDM3MjEyLG51bGwsMzcyMDEsMTY3NTc1LDI1NDcxLDE1OTAxMSwyNzMzOCwyMjAzMywzNzI2MiwzMDA3NCwyNTIyMSwxMzIwOTIsMjk1MTksMzE4'@; put 'NTYsMTU0NjU3LDE0NjY4NSxudWxsLDE0OTc4NSwzMDQyMiwzOTgzNywyMDAxMCwxMzQzNTYsMzM3MjYsMzQ4ODIsbnVsbCwyMzYyNiwyNzA3MiwyMDcxNywyMjM5NCwyMTAyMywyNDA1MywyMDE3NCwyNzY5NywxMzE1NzAsMjAyODEsMjE2NjAsMjE3MjIsMjExNDYsMzYyMjYsMTM4MjIsMjQz'@; put 'MzIsMTM4MTEsbnVsbCwyNzQ3NCwzNzI0NCw0MDg2OSwzOTgzMSwzODk1OCwzOTA5MiwzOTYxMCw0MDYxNiw0MDU4MCwyOTA1MCwzMTUwOCxudWxsLDI3NjQyLDM0ODQwLDMyNjMyLG51bGwsMjIwNDgsMTczNjQyLDM2NDcxLDQwNzg3LG51bGwsMzYzMDgsMzY0MzEsNDA0NzYsMzYzNTMsMjUy'@; put 'MTgsMTY0NzMzLDM2MzkyLDM2NDY5LDMxNDQzLDE1MDEzNSwzMTI5NCwzMDkzNiwyNzg4MiwzNTQzMSwzMDIxNSwxNjY0OTAsNDA3NDIsMjc4NTQsMzQ3NzQsMzAxNDcsMTcyNzIyLDMwODAzLDE5NDYyNCwzNjEwOCwyOTQxMCwyOTU1MywzNTYyOSwyOTQ0MiwyOTkzNywzNjA3NSwxNTAyMDMs'@; put 'MzQzNTEsMjQ1MDYsMzQ5NzYsMTc1OTEsbnVsbCwxMzcyNzUsMTU5MjM3LG51bGwsMzU0NTQsMTQwNTcxLG51bGwsMjQ4MjksMzAzMTEsMzk2MzksNDAyNjAsMzc3NDIsMzk4MjMsMzQ4MDUsbnVsbCwzNDgzMSwzNjA4NywyOTQ4NCwzODY4OSwzOTg1NiwxMzc4MiwyOTM2MiwxOTQ2MywzMTgy'@; put 'NSwzOTI0MiwxNTU5OTMsMjQ5MjEsMTk0NjAsNDA1OTgsMjQ5NTcsbnVsbCwyMjM2NywyNDk0MywyNTI1NCwyNTE0NSwyNTI5NCwxNDk0MCwyNTA1OCwyMTQxOCwxNDQzNzMsMjU0NDQsMjY2MjYsMTM3NzgsMjM4OTUsMTY2ODUwLDM2ODI2LDE2NzQ4MSxudWxsLDIwNjk3LDEzODU2NiwzMDk4'@; put 'MiwyMTI5OCwzODQ1NiwxMzQ5NzEsMTY0ODUsbnVsbCwzMDcxOCxudWxsLDMxOTM4LDE1NTQxOCwzMTk2MiwzMTI3NywzMjg3MCwzMjg2NywzMjA3NywyOTk1NywyOTkzOCwzNTIyMCwzMzMwNiwyNjM4MCwzMjg2NiwxNjA5MDIsMzI4NTksMjk5MzYsMzMwMjcsMzA1MDAsMzUyMDksMTU3NjQ0'@; put 'LDMwMDM1LDE1OTQ0MSwzNDcyOSwzNDc2NiwzMzIyNCwzNDcwMCwzNTQwMSwzNjAxMywzNTY1MSwzMDUwNywyOTk0NCwzNDAxMCwxMzg3NywyNzA1OCwzNjI2MixudWxsLDM1MjQxLDI5ODAwLDI4MDg5LDM0NzUzLDE0NzQ3MywyOTkyNywxNTgzNSwyOTA0NiwyNDc0MCwyNDk4OCwxNTU2OSwy'@; put 'OTAyNiwyNDY5NSxudWxsLDMyNjI1LDE2NjcwMSwyOTI2NCwyNDgwOSwxOTMyNiwyMTAyNCwxNTM4NCwxNDY2MzEsMTU1MzUxLDE2MTM2NiwxNTI4ODEsMTM3NTQwLDEzNTkzNCwxNzAyNDMsMTU5MTk2LDE1OTkxNywyMzc0NSwxNTYwNzcsMTY2NDE1LDE0NTAxNSwxMzEzMTAsMTU3NzY2LDE1'@; put 'MTMxMCwxNzc2MiwyMzMyNywxNTY0OTIsNDA3ODQsNDA2MTQsMTU2MjY3LDEyMjg4LDY1MjkyLDEyMjg5LDEyMjkwLDY1Mjk0LDgyMzEsNjUzMDcsNjUzMDYsNjUzMTEsNjUyODEsNjUwNzIsODIzMCw4MjI5LDY1MTA0LDY1MTA1LDY1MTA2LDE4Myw2NTEwOCw2NTEwOSw2NTExMCw2NTExMSw2'@; put 'NTM3Miw4MjExLDY1MDczLDgyMTIsNjUwNzUsOTU4OCw2NTA3Niw2NTEwMyw2NTI4OCw2NTI4OSw2NTA3Nyw2NTA3OCw2NTM3MSw2NTM3Myw2NTA3OSw2NTA4MCwxMjMwOCwxMjMwOSw2NTA4MSw2NTA4MiwxMjMwNCwxMjMwNSw2NTA4Myw2NTA4NCwxMjI5OCwxMjI5OSw2NTA4NSw2NTA4Niwx'@; put 'MjI5NiwxMjI5Nyw2NTA4Nyw2NTA4OCwxMjMwMCwxMjMwMSw2NTA4OSw2NTA5MCwxMjMwMiwxMjMwMyw2NTA5MSw2NTA5Miw2NTExMyw2NTExNCw2NTExNSw2NTExNiw2NTExNyw2NTExOCw4MjE2LDgyMTcsODIyMCw4MjIxLDEyMzE3LDEyMzE4LDgyNDUsODI0Miw2NTI4Myw2NTI4Niw2NTI5'@; put 'MCw4MjUxLDE2NywxMjI5MSw5Njc1LDk2NzksOTY1MSw5NjUwLDk2NzgsOTczNCw5NzMzLDk2NzEsOTY3MCw5NjMzLDk2MzIsOTY2MSw5NjYwLDEyOTYzLDg0NTMsMTc1LDY1NTA3LDY1MzQzLDcxNyw2NTA5Nyw2NTA5OCw2NTEwMSw2NTEwMiw2NTA5OSw2NTEwMCw2NTExOSw2NTEyMCw2NTEy'@; put 'MSw2NTI5MSw2NTI5MywyMTUsMjQ3LDE3Nyw4NzMwLDY1MzA4LDY1MzEwLDY1MzA5LDg4MDYsODgwNyw4ODAwLDg3MzQsODc4Niw4ODAxLDY1MTIyLDY1MTIzLDY1MTI0LDY1MTI1LDY1MTI2LDY1Mzc0LDg3NDUsODc0Niw4ODY5LDg3MzYsODczNSw4ODk1LDEzMjY2LDEzMjY1LDg3NDcsODc1'@; put 'MCw4NzU3LDg3NTYsOTc5Miw5Nzk0LDg4NTMsODg1Nyw4NTkzLDg1OTUsODU5Miw4NTk0LDg1OTgsODU5OSw4NjAxLDg2MDAsODc0MSw4NzM5LDY1Mjk1LDY1MzQwLDg3MjUsNjUxMjgsNjUyODQsNjU1MDksMTIzMDYsNjU1MDQsNjU1MDUsNjUyODUsNjUzMTIsODQ1MSw4NDU3LDY1MTI5LDY1'@; put 'MTMwLDY1MTMxLDEzMjY5LDEzMjEyLDEzMjEzLDEzMjE0LDEzMjYyLDEzMjE3LDEzMTk4LDEzMTk5LDEzMjUyLDE3NiwyMDgyNSwyMDgyNywyMDgzMCwyMDgyOSwyMDgzMywyMDgzNSwyMTk5MSwyOTkyOSwzMTk1MCw5NjAxLDk2MDIsOTYwMyw5NjA0LDk2MDUsOTYwNiw5NjA3LDk2MDgsOTYx'@; put 'NSw5NjE0LDk2MTMsOTYxMiw5NjExLDk2MTAsOTYwOSw5NTMyLDk1MjQsOTUxNiw5NTA4LDk1MDAsOTYyMCw5NDcyLDk0NzQsOTYyMSw5NDg0LDk0ODgsOTQ5Miw5NDk2LDk1ODEsOTU4Miw5NTg0LDk1ODMsOTU1Miw5NTY2LDk1NzgsOTU2OSw5Njk4LDk2OTksOTcwMSw5NzAwLDk1ODUsOTU4'@; put 'Niw5NTg3LDY1Mjk2LDY1Mjk3LDY1Mjk4LDY1Mjk5LDY1MzAwLDY1MzAxLDY1MzAyLDY1MzAzLDY1MzA0LDY1MzA1LDg1NDQsODU0NSw4NTQ2LDg1NDcsODU0OCw4NTQ5LDg1NTAsODU1MSw4NTUyLDg1NTMsMTIzMjEsMTIzMjIsMTIzMjMsMTIzMjQsMTIzMjUsMTIzMjYsMTIzMjcsMTIzMjgs'@; put 'MTIzMjksMjEzMTMsMjEzMTYsMjEzMTcsNjUzMTMsNjUzMTQsNjUzMTUsNjUzMTYsNjUzMTcsNjUzMTgsNjUzMTksNjUzMjAsNjUzMjEsNjUzMjIsNjUzMjMsNjUzMjQsNjUzMjUsNjUzMjYsNjUzMjcsNjUzMjgsNjUzMjksNjUzMzAsNjUzMzEsNjUzMzIsNjUzMzMsNjUzMzQsNjUzMzUsNjUz'@; put 'MzYsNjUzMzcsNjUzMzgsNjUzNDUsNjUzNDYsNjUzNDcsNjUzNDgsNjUzNDksNjUzNTAsNjUzNTEsNjUzNTIsNjUzNTMsNjUzNTQsNjUzNTUsNjUzNTYsNjUzNTcsNjUzNTgsNjUzNTksNjUzNjAsNjUzNjEsNjUzNjIsNjUzNjMsNjUzNjQsNjUzNjUsNjUzNjYsNjUzNjcsNjUzNjgsNjUzNjks'@; put 'NjUzNzAsOTEzLDkxNCw5MTUsOTE2LDkxNyw5MTgsOTE5LDkyMCw5MjEsOTIyLDkyMyw5MjQsOTI1LDkyNiw5MjcsOTI4LDkyOSw5MzEsOTMyLDkzMyw5MzQsOTM1LDkzNiw5MzcsOTQ1LDk0Niw5NDcsOTQ4LDk0OSw5NTAsOTUxLDk1Miw5NTMsOTU0LDk1NSw5NTYsOTU3LDk1OCw5NTksOTYw'@; put 'LDk2MSw5NjMsOTY0LDk2NSw5NjYsOTY3LDk2OCw5NjksMTI1NDksMTI1NTAsMTI1NTEsMTI1NTIsMTI1NTMsMTI1NTQsMTI1NTUsMTI1NTYsMTI1NTcsMTI1NTgsMTI1NTksMTI1NjAsMTI1NjEsMTI1NjIsMTI1NjMsMTI1NjQsMTI1NjUsMTI1NjYsMTI1NjcsMTI1NjgsMTI1NjksMTI1NzAs'@; put 'MTI1NzEsMTI1NzIsMTI1NzMsMTI1NzQsMTI1NzUsMTI1NzYsMTI1NzcsMTI1NzgsMTI1NzksMTI1ODAsMTI1ODEsMTI1ODIsMTI1ODMsMTI1ODQsMTI1ODUsNzI5LDcxMyw3MTQsNzExLDcxNSw5MjE2LDkyMTcsOTIxOCw5MjE5LDkyMjAsOTIyMSw5MjIyLDkyMjMsOTIyNCw5MjI1LDkyMjYs'@; put 'OTIyNyw5MjI4LDkyMjksOTIzMCw5MjMxLDkyMzIsOTIzMyw5MjM0LDkyMzUsOTIzNiw5MjM3LDkyMzgsOTIzOSw5MjQwLDkyNDEsOTI0Miw5MjQzLDkyNDQsOTI0NSw5MjQ2LDkyNDcsOTI0OSw4MzY0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxOTk2OCwyMDA1NywxOTk2OSwxOTk3MSwyMDAzNSwyMDA2MSwyMDEwMiwyMDEwOCwyMDE1NCwyMDc5OSwyMDgzNywyMDg0'@; put 'MywyMDk2MCwyMDk5MiwyMDk5MywyMTE0NywyMTI2OSwyMTMxMywyMTM0MCwyMTQ0OCwxOTk3NywxOTk3OSwxOTk3NiwxOTk3OCwyMDAxMSwyMDAyNCwyMDk2MSwyMDAzNywyMDA0MCwyMDA2MywyMDA2MiwyMDExMCwyMDEyOSwyMDgwMCwyMDk5NSwyMTI0MiwyMTMxNSwyMTQ0OSwyMTQ3NSwy'@; put 'MjMwMywyMjc2MywyMjgwNSwyMjgyMywyMjg5OSwyMzM3NiwyMzM3NywyMzM3OSwyMzU0NCwyMzU2NywyMzU4NiwyMzYwOCwyMzY2NSwyNDAyOSwyNDAzNywyNDA0OSwyNDA1MCwyNDA1MSwyNDA2MiwyNDE3OCwyNDMxOCwyNDMzMSwyNDMzOSwyNTE2NSwxOTk4NSwxOTk4NCwxOTk4MSwyMDAx'@; put 'MywyMDAxNiwyMDAyNSwyMDA0MywyMzYwOSwyMDEwNCwyMDExMywyMDExNywyMDExNCwyMDExNiwyMDEzMCwyMDE2MSwyMDE2MCwyMDE2MywyMDE2NiwyMDE2NywyMDE3MywyMDE3MCwyMDE3MSwyMDE2NCwyMDgwMywyMDgwMSwyMDgzOSwyMDg0NSwyMDg0NiwyMDg0NCwyMDg4NywyMDk4Miwy'@; put 'MDk5OCwyMDk5OSwyMWUzLDIxMjQzLDIxMjQ2LDIxMjQ3LDIxMjcwLDIxMzA1LDIxMzIwLDIxMzE5LDIxMzE3LDIxMzQyLDIxMzgwLDIxNDUxLDIxNDUwLDIxNDUzLDIyNzY0LDIyODI1LDIyODI3LDIyODI2LDIyODI5LDIzMzgwLDIzNTY5LDIzNTg4LDIzNjEwLDIzNjYzLDI0MDUyLDI0MTg3'@; put 'LDI0MzE5LDI0MzQwLDI0MzQxLDI0NTE1LDI1MDk2LDI1MTQyLDI1MTYzLDI1MTY2LDI1OTAzLDI1OTkxLDI2MDA3LDI2MDIwLDI2MDQxLDI2MDg1LDI2MzUyLDI2Mzc2LDI2NDA4LDI3NDI0LDI3NDkwLDI3NTEzLDI3NTk1LDI3NjA0LDI3NjExLDI3NjYzLDI3NzAwLDI4Nzc5LDI5MjI2LDI5'@; put 'MjM4LDI5MjQzLDI5MjU1LDI5MjczLDI5Mjc1LDI5MzU2LDI5NTc5LDE5OTkzLDE5OTkwLDE5OTg5LDE5OTg4LDE5OTkyLDIwMDI3LDIwMDQ1LDIwMDQ3LDIwMDQ2LDIwMTk3LDIwMTg0LDIwMTgwLDIwMTgxLDIwMTgyLDIwMTgzLDIwMTk1LDIwMTk2LDIwMTg1LDIwMTkwLDIwODA1LDIwODA0'@; put 'LDIwODczLDIwODc0LDIwOTA4LDIwOTg1LDIwOTg2LDIwOTg0LDIxMDAyLDIxMTUyLDIxMTUxLDIxMjUzLDIxMjU0LDIxMjcxLDIxMjc3LDIwMTkxLDIxMzIyLDIxMzIxLDIxMzQ1LDIxMzQ0LDIxMzU5LDIxMzU4LDIxNDM1LDIxNDg3LDIxNDc2LDIxNDkxLDIxNDg0LDIxNDg2LDIxNDgxLDIx'@; put 'NDgwLDIxNTAwLDIxNDk2LDIxNDkzLDIxNDgzLDIxNDc4LDIxNDgyLDIxNDkwLDIxNDg5LDIxNDg4LDIxNDc3LDIxNDg1LDIxNDk5LDIyMjM1LDIyMjM0LDIyODA2LDIyODMwLDIyODMzLDIyOTAwLDIyOTAyLDIzMzgxLDIzNDI3LDIzNjEyLDI0MDQwLDI0MDM5LDI0MDM4LDI0MDY2LDI0MDY3'@; put 'LDI0MTc5LDI0MTg4LDI0MzIxLDI0MzQ0LDI0MzQzLDI0NTE3LDI1MDk4LDI1MTcxLDI1MTcyLDI1MTcwLDI1MTY5LDI2MDIxLDI2MDg2LDI2NDE0LDI2NDEyLDI2NDEwLDI2NDExLDI2NDEzLDI3NDkxLDI3NTk3LDI3NjY1LDI3NjY0LDI3NzA0LDI3NzEzLDI3NzEyLDI3NzEwLDI5MzU5LDI5'@; put 'NTcyLDI5NTc3LDI5OTE2LDI5OTI2LDI5OTc2LDI5OTgzLDI5OTkyLDI5OTkzLDNlNCwzMDAwMSwzMDAwMiwzMDAwMywzMDA5MSwzMDMzMywzMDM4MiwzMDM5OSwzMDQ0NiwzMDY4MywzMDY5MCwzMDcwNywzMTAzNCwzMTE2NiwzMTM0OCwzMTQzNSwxOTk5OCwxOTk5OSwyMDA1MCwyMDA1MSwy'@; put 'MDA3MywyMDEyMSwyMDEzMiwyMDEzNCwyMDEzMywyMDIyMywyMDIzMywyMDI0OSwyMDIzNCwyMDI0NSwyMDIzNywyMDI0MCwyMDI0MSwyMDIzOSwyMDIxMCwyMDIxNCwyMDIxOSwyMDIwOCwyMDIxMSwyMDIyMSwyMDIyNSwyMDIzNSwyMDgwOSwyMDgwNywyMDgwNiwyMDgwOCwyMDg0MCwyMDg0'@; put 'OSwyMDg3NywyMDkxMiwyMTAxNSwyMTAwOSwyMTAxMCwyMTAwNiwyMTAxNCwyMTE1NSwyMTI1NiwyMTI4MSwyMTI4MCwyMTM2MCwyMTM2MSwyMTUxMywyMTUxOSwyMTUxNiwyMTUxNCwyMTUyMCwyMTUwNSwyMTUxNSwyMTUwOCwyMTUyMSwyMTUxNywyMTUxMiwyMTUwNywyMTUxOCwyMTUxMCwy'@; put 'MTUyMiwyMjI0MCwyMjIzOCwyMjIzNywyMjMyMywyMjMyMCwyMjMxMiwyMjMxNywyMjMxNiwyMjMxOSwyMjMxMywyMjgwOSwyMjgxMCwyMjgzOSwyMjg0MCwyMjkxNiwyMjkwNCwyMjkxNSwyMjkwOSwyMjkwNSwyMjkxNCwyMjkxMywyMzM4MywyMzM4NCwyMzQzMSwyMzQzMiwyMzQyOSwyMzQz'@; put 'MywyMzU0NiwyMzU3NCwyMzY3MywyNDAzMCwyNDA3MCwyNDE4MiwyNDE4MCwyNDMzNSwyNDM0NywyNDUzNywyNDUzNCwyNTEwMiwyNTEwMCwyNTEwMSwyNTEwNCwyNTE4NywyNTE3OSwyNTE3NiwyNTkxMCwyNjA4OSwyNjA4OCwyNjA5MiwyNjA5MywyNjM1NCwyNjM1NSwyNjM3NywyNjQyOSwy'@; put 'NjQyMCwyNjQxNywyNjQyMSwyNzQyNSwyNzQ5MiwyNzUxNSwyNzY3MCwyNzc0MSwyNzczNSwyNzczNywyNzc0MywyNzc0NCwyNzcyOCwyNzczMywyNzc0NSwyNzczOSwyNzcyNSwyNzcyNiwyODc4NCwyOTI3OSwyOTI3NywzMDMzNCwzMTQ4MSwzMTg1OSwzMTk5MiwzMjU2NiwzMjY1MCwzMjcw'@; put 'MSwzMjc2OSwzMjc3MSwzMjc4MCwzMjc4NiwzMjgxOSwzMjg5NSwzMjkwNSwzMjkwNywzMjkwOCwzMzI1MSwzMzI1OCwzMzI2NywzMzI3NiwzMzI5MiwzMzMwNywzMzMxMSwzMzM5MCwzMzM5NCwzMzQwNiwzNDQxMSwzNDg4MCwzNDg5MiwzNDkxNSwzNTE5OSwzODQzMywyMDAxOCwyMDEzNiwy'@; put 'MDMwMSwyMDMwMywyMDI5NSwyMDMxMSwyMDMxOCwyMDI3NiwyMDMxNSwyMDMwOSwyMDI3MiwyMDMwNCwyMDMwNSwyMDI4NSwyMDI4MiwyMDI4MCwyMDI5MSwyMDMwOCwyMDI4NCwyMDI5NCwyMDMyMywyMDMxNiwyMDMyMCwyMDI3MSwyMDMwMiwyMDI3OCwyMDMxMywyMDMxNywyMDI5NiwyMDMx'@; put 'NCwyMDgxMiwyMDgxMSwyMDgxMywyMDg1MywyMDkxOCwyMDkxOSwyMTAyOSwyMTAyOCwyMTAzMywyMTAzNCwyMTAzMiwyMTE2MywyMTE2MSwyMTE2MiwyMTE2NCwyMTI4MywyMTM2MywyMTM2NSwyMTUzMywyMTU0OSwyMTUzNCwyMTU2NiwyMTU0MiwyMTU4MiwyMTU0MywyMTU3NCwyMTU3MSwy'@; put 'MTU1NSwyMTU3NiwyMTU3MCwyMTUzMSwyMTU0NSwyMTU3OCwyMTU2MSwyMTU2MywyMTU2MCwyMTU1MCwyMTU1NywyMTU1OCwyMTUzNiwyMTU2NCwyMTU2OCwyMTU1MywyMTU0NywyMTUzNSwyMTU0OCwyMjI1MCwyMjI1NiwyMjI0NCwyMjI1MSwyMjM0NiwyMjM1MywyMjMzNiwyMjM0OSwyMjM0'@; put 'MywyMjM1MCwyMjMzNCwyMjM1MiwyMjM1MSwyMjMzMSwyMjc2NywyMjg0NiwyMjk0MSwyMjkzMCwyMjk1MiwyMjk0MiwyMjk0NywyMjkzNywyMjkzNCwyMjkyNSwyMjk0OCwyMjkzMSwyMjkyMiwyMjk0OSwyMzM4OSwyMzM4OCwyMzM4NiwyMzM4NywyMzQzNiwyMzQzNSwyMzQzOSwyMzU5Niwy'@; put 'MzYxNiwyMzYxNywyMzYxNSwyMzYxNCwyMzY5NiwyMzY5NywyMzcwMCwyMzY5MiwyNDA0MywyNDA3NiwyNDIwNywyNDE5OSwyNDIwMiwyNDMxMSwyNDMyNCwyNDM1MSwyNDQyMCwyNDQxOCwyNDQzOSwyNDQ0MSwyNDUzNiwyNDUyNCwyNDUzNSwyNDUyNSwyNDU2MSwyNDU1NSwyNDU2OCwyNDU1'@; put 'NCwyNTEwNiwyNTEwNSwyNTIyMCwyNTIzOSwyNTIzOCwyNTIxNiwyNTIwNiwyNTIyNSwyNTE5NywyNTIyNiwyNTIxMiwyNTIxNCwyNTIwOSwyNTIwMywyNTIzNCwyNTE5OSwyNTI0MCwyNTE5OCwyNTIzNywyNTIzNSwyNTIzMywyNTIyMiwyNTkxMywyNTkxNSwyNTkxMiwyNjA5NywyNjM1Niwy'@; put 'NjQ2MywyNjQ0NiwyNjQ0NywyNjQ0OCwyNjQ0OSwyNjQ2MCwyNjQ1NCwyNjQ2MiwyNjQ0MSwyNjQzOCwyNjQ2NCwyNjQ1MSwyNjQ1NSwyNzQ5MywyNzU5OSwyNzcxNCwyNzc0MiwyNzgwMSwyNzc3NywyNzc4NCwyNzc4NSwyNzc4MSwyNzgwMywyNzc1NCwyNzc3MCwyNzc5MiwyNzc2MCwyNzc4'@; put 'OCwyNzc1MiwyNzc5OCwyNzc5NCwyNzc3MywyNzc3OSwyNzc2MiwyNzc3NCwyNzc2NCwyNzc4MiwyNzc2NiwyNzc4OSwyNzc5NiwyNzgwMCwyNzc3OCwyODc5MCwyODc5NiwyODc5NywyODc5MiwyOTI4MiwyOTI4MSwyOTI4MCwyOTM4MCwyOTM3OCwyOTU5MCwyOTk5NiwyOTk5NSwzMDAwNywz'@; put 'MDAwOCwzMDMzOCwzMDQ0NywzMDY5MSwzMTE2OSwzMTE2OCwzMTE2NywzMTM1MCwzMTk5NSwzMjU5NywzMjkxOCwzMjkxNSwzMjkyNSwzMjkyMCwzMjkyMywzMjkyMiwzMjk0NiwzMzM5MSwzMzQyNiwzMzQxOSwzMzQyMSwzNTIxMSwzNTI4MiwzNTMyOCwzNTg5NSwzNTkxMCwzNTkyNSwzNTk5'@; put 'NywzNjE5NiwzNjIwOCwzNjI3NSwzNjUyMywzNjU1NCwzNjc2MywzNjc4NCwzNjgwMiwzNjgwNiwzNjgwNSwzNjgwNCwyNDAzMywzNzAwOSwzNzAyNiwzNzAzNCwzNzAzMCwzNzAyNywzNzE5MywzNzMxOCwzNzMyNCwzODQ1MCwzODQ0NiwzODQ0OSwzODQ0MiwzODQ0NCwyMDAwNiwyMDA1NCwy'@; put 'MDA4MywyMDEwNywyMDEyMywyMDEyNiwyMDEzOSwyMDE0MCwyMDMzNSwyMDM4MSwyMDM2NSwyMDMzOSwyMDM1MSwyMDMzMiwyMDM3OSwyMDM2MywyMDM1OCwyMDM1NSwyMDMzNiwyMDM0MSwyMDM2MCwyMDMyOSwyMDM0NywyMDM3NCwyMDM1MCwyMDM2NywyMDM2OSwyMDM0NiwyMDgyMCwyMDgx'@; put 'OCwyMDgyMSwyMDg0MSwyMDg1NSwyMDg1NCwyMDg1NiwyMDkyNSwyMDk4OSwyMTA1MSwyMTA0OCwyMTA0NywyMTA1MCwyMTA0MCwyMTAzOCwyMTA0NiwyMTA1NywyMTE4MiwyMTE3OSwyMTMzMCwyMTMzMiwyMTMzMSwyMTMyOSwyMTM1MCwyMTM2NywyMTM2OCwyMTM2OSwyMTQ2MiwyMTQ2MCwy'@; put 'MTQ2MywyMTYxOSwyMTYyMSwyMTY1NCwyMTYyNCwyMTY1MywyMTYzMiwyMTYyNywyMTYyMywyMTYzNiwyMTY1MCwyMTYzOCwyMTYyOCwyMTY0OCwyMTYxNywyMTYyMiwyMTY0NCwyMTY1OCwyMTYwMiwyMTYwOCwyMTY0MywyMTYyOSwyMTY0NiwyMjI2NiwyMjQwMywyMjM5MSwyMjM3OCwyMjM3'@; put 'NywyMjM2OSwyMjM3NCwyMjM3MiwyMjM5NiwyMjgxMiwyMjg1NywyMjg1NSwyMjg1NiwyMjg1MiwyMjg2OCwyMjk3NCwyMjk3MSwyMjk5NiwyMjk2OSwyMjk1OCwyMjk5MywyMjk4MiwyMjk5MiwyMjk4OSwyMjk4NywyMjk5NSwyMjk4NiwyMjk1OSwyMjk2MywyMjk5NCwyMjk4MSwyMzM5MSwy'@; put 'MzM5NiwyMzM5NSwyMzQ0NywyMzQ1MCwyMzQ0OCwyMzQ1MiwyMzQ0OSwyMzQ1MSwyMzU3OCwyMzYyNCwyMzYyMSwyMzYyMiwyMzczNSwyMzcxMywyMzczNiwyMzcyMSwyMzcyMywyMzcyOSwyMzczMSwyNDA4OCwyNDA5MCwyNDA4NiwyNDA4NSwyNDA5MSwyNDA4MSwyNDE4NCwyNDIxOCwyNDIx'@; put 'NSwyNDIyMCwyNDIxMywyNDIxNCwyNDMxMCwyNDM1OCwyNDM1OSwyNDM2MSwyNDQ0OCwyNDQ0OSwyNDQ0NywyNDQ0NCwyNDU0MSwyNDU0NCwyNDU3MywyNDU2NSwyNDU3NSwyNDU5MSwyNDU5NiwyNDYyMywyNDYyOSwyNDU5OCwyNDYxOCwyNDU5NywyNDYwOSwyNDYxNSwyNDYxNywyNDYxOSwy'@; put 'NDYwMywyNTExMCwyNTEwOSwyNTE1MSwyNTE1MCwyNTE1MiwyNTIxNSwyNTI4OSwyNTI5MiwyNTI4NCwyNTI3OSwyNTI4MiwyNTI3MywyNTI5OCwyNTMwNywyNTI1OSwyNTI5OSwyNTMwMCwyNTI5MSwyNTI4OCwyNTI1NiwyNTI3NywyNTI3NiwyNTI5NiwyNTMwNSwyNTI4NywyNTI5MywyNTI2'@; put 'OSwyNTMwNiwyNTI2NSwyNTMwNCwyNTMwMiwyNTMwMywyNTI4NiwyNTI2MCwyNTI5NCwyNTkxOCwyNjAyMywyNjA0NCwyNjEwNiwyNjEzMiwyNjEzMSwyNjEyNCwyNjExOCwyNjExNCwyNjEyNiwyNjExMiwyNjEyNywyNjEzMywyNjEyMiwyNjExOSwyNjM4MSwyNjM3OSwyNjQ3NywyNjUwNywy'@; put 'NjUxNywyNjQ4MSwyNjUyNCwyNjQ4MywyNjQ4NywyNjUwMywyNjUyNSwyNjUxOSwyNjQ3OSwyNjQ4MCwyNjQ5NSwyNjUwNSwyNjQ5NCwyNjUxMiwyNjQ4NSwyNjUyMiwyNjUxNSwyNjQ5MiwyNjQ3NCwyNjQ4MiwyNzQyNywyNzQ5NCwyNzQ5NSwyNzUxOSwyNzY2NywyNzY3NSwyNzg3NSwyNzg4'@; put 'MCwyNzg5MSwyNzgyNSwyNzg1MiwyNzg3NywyNzgyNywyNzgzNywyNzgzOCwyNzgzNiwyNzg3NCwyNzgxOSwyNzg2MSwyNzg1OSwyNzgzMiwyNzg0NCwyNzgzMywyNzg0MSwyNzgyMiwyNzg2MywyNzg0NSwyNzg4OSwyNzgzOSwyNzgzNSwyNzg3MywyNzg2NywyNzg1MCwyNzgyMCwyNzg4Nywy'@; put 'Nzg2OCwyNzg2MiwyNzg3MiwyODgyMSwyODgxNCwyODgxOCwyODgxMCwyODgyNSwyOTIyOCwyOTIyOSwyOTI0MCwyOTI1NiwyOTI4NywyOTI4OSwyOTM3NiwyOTM5MCwyOTQwMSwyOTM5OSwyOTM5MiwyOTYwOSwyOTYwOCwyOTU5OSwyOTYxMSwyOTYwNSwzMDAxMywzMDEwOSwzMDEwNSwzMDEw'@; put 'NiwzMDM0MCwzMDQwMiwzMDQ1MCwzMDQ1MiwzMDY5MywzMDcxNywzMTAzOCwzMTA0MCwzMTA0MSwzMTE3NywzMTE3NiwzMTM1NCwzMTM1MywzMTQ4MiwzMTk5OCwzMjU5NiwzMjY1MiwzMjY1MSwzMjc3MywzMjk1NCwzMjkzMywzMjkzMCwzMjk0NSwzMjkyOSwzMjkzOSwzMjkzNywzMjk0OCwz'@; put 'MjkzOCwzMjk0MywzMzI1MywzMzI3OCwzMzI5MywzMzQ1OSwzMzQzNywzMzQzMywzMzQ1MywzMzQ2OSwzMzQzOSwzMzQ2NSwzMzQ1NywzMzQ1MiwzMzQ0NSwzMzQ1NSwzMzQ2NCwzMzQ0MywzMzQ1NiwzMzQ3MCwzMzQ2MywzNDM4MiwzNDQxNywyMTAyMSwzNDkyMCwzNjU1NSwzNjgxNCwzNjgy'@; put 'MCwzNjgxNywzNzA0NSwzNzA0OCwzNzA0MSwzNzA0NiwzNzMxOSwzNzMyOSwzODI2MywzODI3MiwzODQyOCwzODQ2NCwzODQ2MywzODQ1OSwzODQ2OCwzODQ2NiwzODU4NSwzODYzMiwzODczOCwzODc1MCwyMDEyNywyMDE0MSwyMDE0MiwyMDQ0OSwyMDQwNSwyMDM5OSwyMDQxNSwyMDQ0OCwy'@; put 'MDQzMywyMDQzMSwyMDQ0NSwyMDQxOSwyMDQwNiwyMDQ0MCwyMDQ0NywyMDQyNiwyMDQzOSwyMDM5OCwyMDQzMiwyMDQyMCwyMDQxOCwyMDQ0MiwyMDQzMCwyMDQ0NiwyMDQwNywyMDgyMywyMDg4MiwyMDg4MSwyMDg5NiwyMTA3MCwyMTA1OSwyMTA2NiwyMTA2OSwyMTA2OCwyMTA2NywyMTA2'@; put 'MywyMTE5MSwyMTE5MywyMTE4NywyMTE4NSwyMTI2MSwyMTMzNSwyMTM3MSwyMTQwMiwyMTQ2NywyMTY3NiwyMTY5NiwyMTY3MiwyMTcxMCwyMTcwNSwyMTY4OCwyMTY3MCwyMTY4MywyMTcwMywyMTY5OCwyMTY5MywyMTY3NCwyMTY5NywyMTcwMCwyMTcwNCwyMTY3OSwyMTY3NSwyMTY4MSwy'@; put 'MTY5MSwyMTY3MywyMTY3MSwyMTY5NSwyMjI3MSwyMjQwMiwyMjQxMSwyMjQzMiwyMjQzNSwyMjQzNCwyMjQ3OCwyMjQ0NiwyMjQxOSwyMjg2OSwyMjg2NSwyMjg2MywyMjg2MiwyMjg2NCwyMzAwNCwyM2UzLDIzMDM5LDIzMDExLDIzMDE2LDIzMDQzLDIzMDEzLDIzMDE4LDIzMDAyLDIzMDE0'@; put 'LDIzMDQxLDIzMDM1LDIzNDAxLDIzNDU5LDIzNDYyLDIzNDYwLDIzNDU4LDIzNDYxLDIzNTUzLDIzNjMwLDIzNjMxLDIzNjI5LDIzNjI3LDIzNzY5LDIzNzYyLDI0MDU1LDI0MDkzLDI0MTAxLDI0MDk1LDI0MTg5LDI0MjI0LDI0MjMwLDI0MzE0LDI0MzI4LDI0MzY1LDI0NDIxLDI0NDU2LDI0'@; put 'NDUzLDI0NDU4LDI0NDU5LDI0NDU1LDI0NDYwLDI0NDU3LDI0NTk0LDI0NjA1LDI0NjA4LDI0NjEzLDI0NTkwLDI0NjE2LDI0NjUzLDI0Njg4LDI0NjgwLDI0Njc0LDI0NjQ2LDI0NjQzLDI0Njg0LDI0NjgzLDI0NjgyLDI0Njc2LDI1MTUzLDI1MzA4LDI1MzY2LDI1MzUzLDI1MzQwLDI1MzI1'@; put 'LDI1MzQ1LDI1MzI2LDI1MzQxLDI1MzUxLDI1MzI5LDI1MzM1LDI1MzI3LDI1MzI0LDI1MzQyLDI1MzMyLDI1MzYxLDI1MzQ2LDI1OTE5LDI1OTI1LDI2MDI3LDI2MDQ1LDI2MDgyLDI2MTQ5LDI2MTU3LDI2MTQ0LDI2MTUxLDI2MTU5LDI2MTQzLDI2MTUyLDI2MTYxLDI2MTQ4LDI2MzU5LDI2'@; put 'NjIzLDI2NTc5LDI2NjA5LDI2NTgwLDI2NTc2LDI2NjA0LDI2NTUwLDI2NTQzLDI2NjEzLDI2NjAxLDI2NjA3LDI2NTY0LDI2NTc3LDI2NTQ4LDI2NTg2LDI2NTk3LDI2NTUyLDI2NTc1LDI2NTkwLDI2NjExLDI2NTQ0LDI2NTg1LDI2NTk0LDI2NTg5LDI2NTc4LDI3NDk4LDI3NTIzLDI3NTI2'@; put 'LDI3NTczLDI3NjAyLDI3NjA3LDI3Njc5LDI3ODQ5LDI3OTE1LDI3OTU0LDI3OTQ2LDI3OTY5LDI3OTQxLDI3OTE2LDI3OTUzLDI3OTM0LDI3OTI3LDI3OTYzLDI3OTY1LDI3OTY2LDI3OTU4LDI3OTMxLDI3ODkzLDI3OTYxLDI3OTQzLDI3OTYwLDI3OTQ1LDI3OTUwLDI3OTU3LDI3OTE4LDI3'@; put 'OTQ3LDI4ODQzLDI4ODU4LDI4ODUxLDI4ODQ0LDI4ODQ3LDI4ODQ1LDI4ODU2LDI4ODQ2LDI4ODM2LDI5MjMyLDI5Mjk4LDI5Mjk1LDI5MzAwLDI5NDE3LDI5NDA4LDI5NDA5LDI5NjIzLDI5NjQyLDI5NjI3LDI5NjE4LDI5NjQ1LDI5NjMyLDI5NjE5LDI5OTc4LDI5OTk3LDMwMDMxLDMwMDI4'@; put 'LDMwMDMwLDMwMDI3LDMwMTIzLDMwMTE2LDMwMTE3LDMwMTE0LDMwMTE1LDMwMzI4LDMwMzQyLDMwMzQzLDMwMzQ0LDMwNDA4LDMwNDA2LDMwNDAzLDMwNDA1LDMwNDY1LDMwNDU3LDMwNDU2LDMwNDczLDMwNDc1LDMwNDYyLDMwNDYwLDMwNDcxLDMwNjg0LDMwNzIyLDMwNzQwLDMwNzMyLDMw'@; put 'NzMzLDMxMDQ2LDMxMDQ5LDMxMDQ4LDMxMDQ3LDMxMTYxLDMxMTYyLDMxMTg1LDMxMTg2LDMxMTc5LDMxMzU5LDMxMzYxLDMxNDg3LDMxNDg1LDMxODY5LDMyMDAyLDMyMDA1LDMyZTMsMzIwMDksMzIwMDcsMzIwMDQsMzIwMDYsMzI1NjgsMzI2NTQsMzI3MDMsMzI3NzIsMzI3ODQsMzI3ODEs'@; put 'MzI3ODUsMzI4MjIsMzI5ODIsMzI5OTcsMzI5ODYsMzI5NjMsMzI5NjQsMzI5NzIsMzI5OTMsMzI5ODcsMzI5NzQsMzI5OTAsMzI5OTYsMzI5ODksMzMyNjgsMzMzMTQsMzM1MTEsMzM1MzksMzM1NDEsMzM1MDcsMzM0OTksMzM1MTAsMzM1NDAsMzM1MDksMzM1MzgsMzM1NDUsMzM0OTAsMzM0'@; put 'OTUsMzM1MjEsMzM1MzcsMzM1MDAsMzM0OTIsMzM0ODksMzM1MDIsMzM0OTEsMzM1MDMsMzM1MTksMzM1NDIsMzQzODQsMzQ0MjUsMzQ0MjcsMzQ0MjYsMzQ4OTMsMzQ5MjMsMzUyMDEsMzUyODQsMzUzMzYsMzUzMzAsMzUzMzEsMzU5OTgsMzZlMywzNjIxMiwzNjIxMSwzNjI3NiwzNjU1Nywz'@; put 'NjU1NiwzNjg0OCwzNjgzOCwzNjgzNCwzNjg0MiwzNjgzNywzNjg0NSwzNjg0MywzNjgzNiwzNjg0MCwzNzA2NiwzNzA3MCwzNzA1NywzNzA1OSwzNzE5NSwzNzE5NCwzNzMyNSwzODI3NCwzODQ4MCwzODQ3NSwzODQ3NiwzODQ3NywzODc1NCwzODc2MSwzODg1OSwzODg5MywzODg5OSwzODkx'@; put 'MywzOTA4MCwzOTEzMSwzOTEzNSwzOTMxOCwzOTMyMSwyMDA1NiwyMDE0NywyMDQ5MiwyMDQ5MywyMDUxNSwyMDQ2MywyMDUxOCwyMDUxNywyMDQ3MiwyMDUyMSwyMDUwMiwyMDQ4NiwyMDU0MCwyMDUxMSwyMDUwNiwyMDQ5OCwyMDQ5NywyMDQ3NCwyMDQ4MCwyMDUwMCwyMDUyMCwyMDQ2NSwy'@; put 'MDUxMywyMDQ5MSwyMDUwNSwyMDUwNCwyMDQ2NywyMDQ2MiwyMDUyNSwyMDUyMiwyMDQ3OCwyMDUyMywyMDQ4OSwyMDg2MCwyMDkwMCwyMDkwMSwyMDg5OCwyMDk0MSwyMDk0MCwyMDkzNCwyMDkzOSwyMTA3OCwyMTA4NCwyMTA3NiwyMTA4MywyMTA4NSwyMTI5MCwyMTM3NSwyMTQwNywyMTQw'@; put 'NSwyMTQ3MSwyMTczNiwyMTc3NiwyMTc2MSwyMTgxNSwyMTc1NiwyMTczMywyMTc0NiwyMTc2NiwyMTc1NCwyMTc4MCwyMTczNywyMTc0MSwyMTcyOSwyMTc2OSwyMTc0MiwyMTczOCwyMTczNCwyMTc5OSwyMTc2NywyMTc1NywyMTc3NSwyMjI3NSwyMjI3NiwyMjQ2NiwyMjQ4NCwyMjQ3NSwy'@; put 'MjQ2NywyMjUzNywyMjc5OSwyMjg3MSwyMjg3MiwyMjg3NCwyMzA1NywyMzA2NCwyMzA2OCwyMzA3MSwyMzA2NywyMzA1OSwyMzAyMCwyMzA3MiwyMzA3NSwyMzA4MSwyMzA3NywyMzA1MiwyMzA0OSwyMzQwMywyMzY0MCwyMzQ3MiwyMzQ3NSwyMzQ3OCwyMzQ3NiwyMzQ3MCwyMzQ3NywyMzQ4'@; put 'MSwyMzQ4MCwyMzU1NiwyMzYzMywyMzYzNywyMzYzMiwyMzc4OSwyMzgwNSwyMzgwMywyMzc4NiwyMzc4NCwyMzc5MiwyMzc5OCwyMzgwOSwyMzc5NiwyNDA0NiwyNDEwOSwyNDEwNywyNDIzNSwyNDIzNywyNDIzMSwyNDM2OSwyNDQ2NiwyNDQ2NSwyNDQ2NCwyNDY2NSwyNDY3NSwyNDY3Nywy'@; put 'NDY1NiwyNDY2MSwyNDY4NSwyNDY4MSwyNDY4NywyNDcwOCwyNDczNSwyNDczMCwyNDcxNywyNDcyNCwyNDcxNiwyNDcwOSwyNDcyNiwyNTE1OSwyNTMzMSwyNTM1MiwyNTM0MywyNTQyMiwyNTQwNiwyNTM5MSwyNTQyOSwyNTQxMCwyNTQxNCwyNTQyMywyNTQxNywyNTQwMiwyNTQyNCwyNTQw'@; put 'NSwyNTM4NiwyNTM4NywyNTM4NCwyNTQyMSwyNTQyMCwyNTkyOCwyNTkyOSwyNjAwOSwyNjA0OSwyNjA1MywyNjE3OCwyNjE4NSwyNjE5MSwyNjE3OSwyNjE5NCwyNjE4OCwyNjE4MSwyNjE3NywyNjM2MCwyNjM4OCwyNjM4OSwyNjM5MSwyNjY1NywyNjY4MCwyNjY5NiwyNjY5NCwyNjcwNywy'@; put 'NjY4MSwyNjY5MCwyNjcwOCwyNjY2NSwyNjgwMywyNjY0NywyNjcwMCwyNjcwNSwyNjY4NSwyNjYxMiwyNjcwNCwyNjY4OCwyNjY4NCwyNjY5MSwyNjY2NiwyNjY5MywyNjY0MywyNjY0OCwyNjY4OSwyNzUzMCwyNzUyOSwyNzU3NSwyNzY4MywyNzY4NywyNzY4OCwyNzY4NiwyNzY4NCwyNzg4'@; put 'OCwyODAxMCwyODA1MywyODA0MCwyODAzOSwyODAwNiwyODAyNCwyODAyMywyNzk5MywyODA1MSwyODAxMiwyODA0MSwyODAxNCwyNzk5NCwyODAyMCwyODAwOSwyODA0NCwyODA0MiwyODAyNSwyODAzNywyODAwNSwyODA1MiwyODg3NCwyODg4OCwyODkwMCwyODg4OSwyODg3MiwyODg3OSwy'@; put 'OTI0MSwyOTMwNSwyOTQzNiwyOTQzMywyOTQzNywyOTQzMiwyOTQzMSwyOTU3NCwyOTY3NywyOTcwNSwyOTY3OCwyOTY2NCwyOTY3NCwyOTY2MiwzMDAzNiwzMDA0NSwzMDA0NCwzMDA0MiwzMDA0MSwzMDE0MiwzMDE0OSwzMDE1MSwzMDEzMCwzMDEzMSwzMDE0MSwzMDE0MCwzMDEzNywzMDE0'@; put 'NiwzMDEzNiwzMDM0NywzMDM4NCwzMDQxMCwzMDQxMywzMDQxNCwzMDUwNSwzMDQ5NSwzMDQ5NiwzMDUwNCwzMDY5NywzMDc2OCwzMDc1OSwzMDc3NiwzMDc0OSwzMDc3MiwzMDc3NSwzMDc1NywzMDc2NSwzMDc1MiwzMDc1MSwzMDc3MCwzMTA2MSwzMTA1NiwzMTA3MiwzMTA3MSwzMTA2Miwz'@; put 'MTA3MCwzMTA2OSwzMTA2MywzMTA2NiwzMTIwNCwzMTIwMywzMTIwNywzMTE5OSwzMTIwNiwzMTIwOSwzMTE5MiwzMTM2NCwzMTM2OCwzMTQ0OSwzMTQ5NCwzMTUwNSwzMTg4MSwzMjAzMywzMjAyMywzMjAxMSwzMjAxMCwzMjAzMiwzMjAzNCwzMjAyMCwzMjAxNiwzMjAyMSwzMjAyNiwzMjAy'@; put 'OCwzMjAxMywzMjAyNSwzMjAyNywzMjU3MCwzMjYwNywzMjY2MCwzMjcwOSwzMjcwNSwzMjc3NCwzMjc5MiwzMjc4OSwzMjc5MywzMjc5MSwzMjgyOSwzMjgzMSwzMzAwOSwzMzAyNiwzMzAwOCwzMzAyOSwzMzAwNSwzMzAxMiwzMzAzMCwzMzAxNiwzMzAxMSwzMzAzMiwzMzAyMSwzMzAzNCwz'@; put 'MzAyMCwzMzAwNywzMzI2MSwzMzI2MCwzMzI4MCwzMzI5NiwzMzMyMiwzMzMyMywzMzMyMCwzMzMyNCwzMzQ2NywzMzU3OSwzMzYxOCwzMzYyMCwzMzYxMCwzMzU5MiwzMzYxNiwzMzYwOSwzMzU4OSwzMzU4OCwzMzYxNSwzMzU4NiwzMzU5MywzMzU5MCwzMzU1OSwzMzYwMCwzMzU4NSwzMzU3'@; put 'NiwzMzYwMywzNDM4OCwzNDQ0MiwzNDQ3NCwzNDQ1MSwzNDQ2OCwzNDQ3MywzNDQ0NCwzNDQ2NywzNDQ2MCwzNDkyOCwzNDkzNSwzNDk0NSwzNDk0NiwzNDk0MSwzNDkzNywzNTM1MiwzNTM0NCwzNTM0MiwzNTM0MCwzNTM0OSwzNTMzOCwzNTM1MSwzNTM0NywzNTM1MCwzNTM0MywzNTM0NSwz'@; put 'NTkxMiwzNTk2MiwzNTk2MSwzNjAwMSwzNjAwMiwzNjIxNSwzNjUyNCwzNjU2MiwzNjU2NCwzNjU1OSwzNjc4NSwzNjg2NSwzNjg3MCwzNjg1NSwzNjg2NCwzNjg1OCwzNjg1MiwzNjg2NywzNjg2MSwzNjg2OSwzNjg1NiwzNzAxMywzNzA4OSwzNzA4NSwzNzA5MCwzNzIwMiwzNzE5NywzNzE5'@; put 'NiwzNzMzNiwzNzM0MSwzNzMzNSwzNzM0MCwzNzMzNywzODI3NSwzODQ5OCwzODQ5OSwzODQ5NywzODQ5MSwzODQ5MywzODUwMCwzODQ4OCwzODQ5NCwzODU4NywzOTEzOCwzOTM0MCwzOTU5MiwzOTY0MCwzOTcxNywzOTczMCwzOTc0MCwyMDA5NCwyMDYwMiwyMDYwNSwyMDU3MiwyMDU1MSwy'@; put 'MDU0NywyMDU1NiwyMDU3MCwyMDU1MywyMDU4MSwyMDU5OCwyMDU1OCwyMDU2NSwyMDU5NywyMDU5NiwyMDU5OSwyMDU1OSwyMDQ5NSwyMDU5MSwyMDU4OSwyMDgyOCwyMDg4NSwyMDk3NiwyMTA5OCwyMTEwMywyMTIwMiwyMTIwOSwyMTIwOCwyMTIwNSwyMTI2NCwyMTI2MywyMTI3MywyMTMx'@; put 'MSwyMTMxMiwyMTMxMCwyMTQ0MywyNjM2NCwyMTgzMCwyMTg2NiwyMTg2MiwyMTgyOCwyMTg1NCwyMTg1NywyMTgyNywyMTgzNCwyMTgwOSwyMTg0NiwyMTgzOSwyMTg0NSwyMTgwNywyMTg2MCwyMTgxNiwyMTgwNiwyMTg1MiwyMTgwNCwyMTg1OSwyMTgxMSwyMTgyNSwyMTg0NywyMjI4MCwy'@; put 'MjI4MywyMjI4MSwyMjQ5NSwyMjUzMywyMjUzOCwyMjUzNCwyMjQ5NiwyMjUwMCwyMjUyMiwyMjUzMCwyMjU4MSwyMjUxOSwyMjUyMSwyMjgxNiwyMjg4MiwyMzA5NCwyMzEwNSwyMzExMywyMzE0MiwyMzE0NiwyMzEwNCwyMzEwMCwyMzEzOCwyMzEzMCwyMzExMCwyMzExNCwyMzQwOCwyMzQ5'@; put 'NSwyMzQ5MywyMzQ5MiwyMzQ5MCwyMzQ4NywyMzQ5NCwyMzU2MSwyMzU2MCwyMzU1OSwyMzY0OCwyMzY0NCwyMzY0NSwyMzgxNSwyMzgxNCwyMzgyMiwyMzgzNSwyMzgzMCwyMzg0MiwyMzgyNSwyMzg0OSwyMzgyOCwyMzgzMywyMzg0NCwyMzg0NywyMzgzMSwyNDAzNCwyNDEyMCwyNDExOCwy'@; put 'NDExNSwyNDExOSwyNDI0NywyNDI0OCwyNDI0NiwyNDI0NSwyNDI1NCwyNDM3MywyNDM3NSwyNDQwNywyNDQyOCwyNDQyNSwyNDQyNywyNDQ3MSwyNDQ3MywyNDQ3OCwyNDQ3MiwyNDQ4MSwyNDQ4MCwyNDQ3NiwyNDcwMywyNDczOSwyNDcxMywyNDczNiwyNDc0NCwyNDc3OSwyNDc1NiwyNDgw'@; put 'NiwyNDc2NSwyNDc3MywyNDc2MywyNDc1NywyNDc5NiwyNDc2NCwyNDc5MiwyNDc4OSwyNDc3NCwyNDc5OSwyNDc2MCwyNDc5NCwyNDc3NSwyNTExNCwyNTExNSwyNTE2MCwyNTUwNCwyNTUxMSwyNTQ1OCwyNTQ5NCwyNTUwNiwyNTUwOSwyNTQ2MywyNTQ0NywyNTQ5NiwyNTUxNCwyNTQ1Nywy'@; put 'NTUxMywyNTQ4MSwyNTQ3NSwyNTQ5OSwyNTQ1MSwyNTUxMiwyNTQ3NiwyNTQ4MCwyNTQ5NywyNTUwNSwyNTUxNiwyNTQ5MCwyNTQ4NywyNTQ3MiwyNTQ2NywyNTQ0OSwyNTQ0OCwyNTQ2NiwyNTk0OSwyNTk0MiwyNTkzNywyNTk0NSwyNTk0MywyMTg1NSwyNTkzNSwyNTk0NCwyNTk0MSwyNTk0'@; put 'MCwyNjAxMiwyNjAxMSwyNjAyOCwyNjA2MywyNjA1OSwyNjA2MCwyNjA2MiwyNjIwNSwyNjIwMiwyNjIxMiwyNjIxNiwyNjIxNCwyNjIwNiwyNjM2MSwyMTIwNywyNjM5NSwyNjc1MywyNjc5OSwyNjc4NiwyNjc3MSwyNjgwNSwyNjc1MSwyNjc0MiwyNjgwMSwyNjc5MSwyNjc3NSwyNjgwMCwy'@; put 'Njc1NSwyNjgyMCwyNjc5NywyNjc1OCwyNjc1NywyNjc3MiwyNjc4MSwyNjc5MiwyNjc4MywyNjc4NSwyNjc1NCwyNzQ0MiwyNzU3OCwyNzYyNywyNzYyOCwyNzY5MSwyODA0NiwyODA5MiwyODE0NywyODEyMSwyODA4MiwyODEyOSwyODEwOCwyODEzMiwyODE1NSwyODE1NCwyODE2NSwyODEw'@; put 'MywyODEwNywyODA3OSwyODExMywyODA3OCwyODEyNiwyODE1MywyODA4OCwyODE1MSwyODE0OSwyODEwMSwyODExNCwyODE4NiwyODA4NSwyODEyMiwyODEzOSwyODEyMCwyODEzOCwyODE0NSwyODE0MiwyODEzNiwyODEwMiwyODEwMCwyODA3NCwyODE0MCwyODA5NSwyODEzNCwyODkyMSwy'@; put 'ODkzNywyODkzOCwyODkyNSwyODkxMSwyOTI0NSwyOTMwOSwyOTMxMywyOTQ2OCwyOTQ2NywyOTQ2MiwyOTQ1OSwyOTQ2NSwyOTU3NSwyOTcwMSwyOTcwNiwyOTY5OSwyOTcwMiwyOTY5NCwyOTcwOSwyOTkyMCwyOTk0MiwyOTk0MywyOTk4MCwyOTk4NiwzMDA1MywzMDA1NCwzMDA1MCwzMDA2'@; put 'NCwzMDA5NSwzMDE2NCwzMDE2NSwzMDEzMywzMDE1NCwzMDE1NywzMDM1MCwzMDQyMCwzMDQxOCwzMDQyNywzMDUxOSwzMDUyNiwzMDUyNCwzMDUxOCwzMDUyMCwzMDUyMiwzMDgyNywzMDc4NywzMDc5OCwzMTA3NywzMTA4MCwzMTA4NSwzMTIyNywzMTM3OCwzMTM4MSwzMTUyMCwzMTUyOCwz'@; put 'MTUxNSwzMTUzMiwzMTUyNiwzMTUxMywzMTUxOCwzMTUzNCwzMTg5MCwzMTg5NSwzMTg5MywzMjA3MCwzMjA2NywzMjExMywzMjA0NiwzMjA1NywzMjA2MCwzMjA2NCwzMjA0OCwzMjA1MSwzMjA2OCwzMjA0NywzMjA2NiwzMjA1MCwzMjA0OSwzMjU3MywzMjY3MCwzMjY2NiwzMjcxNiwzMjcx'@; put 'OCwzMjcyMiwzMjc5NiwzMjg0MiwzMjgzOCwzMzA3MSwzMzA0NiwzMzA1OSwzMzA2NywzMzA2NSwzMzA3MiwzMzA2MCwzMzI4MiwzMzMzMywzMzMzNSwzMzMzNCwzMzMzNywzMzY3OCwzMzY5NCwzMzY4OCwzMzY1NiwzMzY5OCwzMzY4NiwzMzcyNSwzMzcwNywzMzY4MiwzMzY3NCwzMzY4Mywz'@; put 'MzY3MywzMzY5NiwzMzY1NSwzMzY1OSwzMzY2MCwzMzY3MCwzMzcwMywzNDM4OSwyNDQyNiwzNDUwMywzNDQ5NiwzNDQ4NiwzNDUwMCwzNDQ4NSwzNDUwMiwzNDUwNywzNDQ4MSwzNDQ3OSwzNDUwNSwzNDg5OSwzNDk3NCwzNDk1MiwzNDk4NywzNDk2MiwzNDk2NiwzNDk1NywzNDk1NSwzNTIx'@; put 'OSwzNTIxNSwzNTM3MCwzNTM1NywzNTM2MywzNTM2NSwzNTM3NywzNTM3MywzNTM1OSwzNTM1NSwzNTM2MiwzNTkxMywzNTkzMCwzNjAwOSwzNjAxMiwzNjAxMSwzNjAwOCwzNjAxMCwzNjAwNywzNjE5OSwzNjE5OCwzNjI4NiwzNjI4MiwzNjU3MSwzNjU3NSwzNjg4OSwzNjg3NywzNjg5MCwz'@; put 'Njg4NywzNjg5OSwzNjg5NSwzNjg5MywzNjg4MCwzNjg4NSwzNjg5NCwzNjg5NiwzNjg3OSwzNjg5OCwzNjg4NiwzNjg5MSwzNjg4NCwzNzA5NiwzNzEwMSwzNzExNywzNzIwNywzNzMyNiwzNzM2NSwzNzM1MCwzNzM0NywzNzM1MSwzNzM1NywzNzM1MywzODI4MSwzODUwNiwzODUxNywzODUx'@; put 'NSwzODUyMCwzODUxMiwzODUxNiwzODUxOCwzODUxOSwzODUwOCwzODU5MiwzODYzNCwzODYzMywzMTQ1NiwzMTQ1NSwzODkxNCwzODkxNSwzOTc3MCw0MDE2NSw0MDU2NSw0MDU3NSw0MDYxMyw0MDYzNSwyMDY0MiwyMDYyMSwyMDYxMywyMDYzMywyMDYyNSwyMDYwOCwyMDYzMCwyMDYzMiwy'@; put 'MDYzNCwyNjM2OCwyMDk3NywyMTEwNiwyMTEwOCwyMTEwOSwyMTA5NywyMTIxNCwyMTIxMywyMTIxMSwyMTMzOCwyMTQxMywyMTg4MywyMTg4OCwyMTkyNywyMTg4NCwyMTg5OCwyMTkxNywyMTkxMiwyMTg5MCwyMTkxNiwyMTkzMCwyMTkwOCwyMTg5NSwyMTg5OSwyMTg5MSwyMTkzOSwyMTkz'@; put 'NCwyMTkxOSwyMTgyMiwyMTkzOCwyMTkxNCwyMTk0NywyMTkzMiwyMTkzNywyMTg4NiwyMTg5NywyMTkzMSwyMTkxMywyMjI4NSwyMjU3NSwyMjU3MCwyMjU4MCwyMjU2NCwyMjU3NiwyMjU3NywyMjU2MSwyMjU1NywyMjU2MCwyMjc3NywyMjc3OCwyMjg4MCwyMzE1OSwyMzE5NCwyMzE2Nywy'@; put 'MzE4NiwyMzE5NSwyMzIwNywyMzQxMSwyMzQwOSwyMzUwNiwyMzUwMCwyMzUwNywyMzUwNCwyMzU2MiwyMzU2MywyMzYwMSwyMzg4NCwyMzg4OCwyMzg2MCwyMzg3OSwyNDA2MSwyNDEzMywyNDEyNSwyNDEyOCwyNDEzMSwyNDE5MCwyNDI2NiwyNDI1NywyNDI1OCwyNDI2MCwyNDM4MCwyNDQy'@; put 'OSwyNDQ4OSwyNDQ5MCwyNDQ4OCwyNDc4NSwyNDgwMSwyNDc1NCwyNDc1OCwyNDgwMCwyNDg2MCwyNDg2NywyNDgyNiwyNDg1MywyNDgxNiwyNDgyNywyNDgyMCwyNDkzNiwyNDgxNywyNDg0NiwyNDgyMiwyNDg0MSwyNDgzMiwyNDg1MCwyNTExOSwyNTE2MSwyNTUwNywyNTQ4NCwyNTU1MSwy'@; put 'NTUzNiwyNTU3NywyNTU0NSwyNTU0MiwyNTU0OSwyNTU1NCwyNTU3MSwyNTU1MiwyNTU2OSwyNTU1OCwyNTU4MSwyNTU4MiwyNTQ2MiwyNTU4OCwyNTU3OCwyNTU2MywyNTY4MiwyNTU2MiwyNTU5MywyNTk1MCwyNTk1OCwyNTk1NCwyNTk1NSwyNjAwMSwyNmUzLDI2MDMxLDI2MjIyLDI2MjI0'@; put 'LDI2MjI4LDI2MjMwLDI2MjIzLDI2MjU3LDI2MjM0LDI2MjM4LDI2MjMxLDI2MzY2LDI2MzY3LDI2Mzk5LDI2Mzk3LDI2ODc0LDI2ODM3LDI2ODQ4LDI2ODQwLDI2ODM5LDI2ODg1LDI2ODQ3LDI2ODY5LDI2ODYyLDI2ODU1LDI2ODczLDI2ODM0LDI2ODY2LDI2ODUxLDI2ODI3LDI2ODI5LDI2'@; put 'ODkzLDI2ODk4LDI2ODk0LDI2ODI1LDI2ODQyLDI2OTkwLDI2ODc1LDI3NDU0LDI3NDUwLDI3NDUzLDI3NTQ0LDI3NTQyLDI3NTgwLDI3NjMxLDI3Njk0LDI3Njk1LDI3NjkyLDI4MjA3LDI4MjE2LDI4MjQ0LDI4MTkzLDI4MjEwLDI4MjYzLDI4MjM0LDI4MTkyLDI4MTk3LDI4MTk1LDI4MTg3'@; put 'LDI4MjUxLDI4MjQ4LDI4MTk2LDI4MjQ2LDI4MjcwLDI4MjA1LDI4MTk4LDI4MjcxLDI4MjEyLDI4MjM3LDI4MjE4LDI4MjA0LDI4MjI3LDI4MTg5LDI4MjIyLDI4MzYzLDI4Mjk3LDI4MTg1LDI4MjM4LDI4MjU5LDI4MjI4LDI4Mjc0LDI4MjY1LDI4MjU1LDI4OTUzLDI4OTU0LDI4OTY2LDI4'@; put 'OTc2LDI4OTYxLDI4OTgyLDI5MDM4LDI4OTU2LDI5MjYwLDI5MzE2LDI5MzEyLDI5NDk0LDI5NDc3LDI5NDkyLDI5NDgxLDI5NzU0LDI5NzM4LDI5NzQ3LDI5NzMwLDI5NzMzLDI5NzQ5LDI5NzUwLDI5NzQ4LDI5NzQzLDI5NzIzLDI5NzM0LDI5NzM2LDI5OTg5LDI5OTkwLDMwMDU5LDMwMDU4'@; put 'LDMwMTc4LDMwMTcxLDMwMTc5LDMwMTY5LDMwMTY4LDMwMTc0LDMwMTc2LDMwMzMxLDMwMzMyLDMwMzU4LDMwMzU1LDMwMzg4LDMwNDI4LDMwNTQzLDMwNzAxLDMwODEzLDMwODI4LDMwODMxLDMxMjQ1LDMxMjQwLDMxMjQzLDMxMjM3LDMxMjMyLDMxMzg0LDMxMzgzLDMxMzgyLDMxNDYxLDMx'@; put 'NDU5LDMxNTYxLDMxNTc0LDMxNTU4LDMxNTY4LDMxNTcwLDMxNTcyLDMxNTY1LDMxNTYzLDMxNTY3LDMxNTY5LDMxOTAzLDMxOTA5LDMyMDk0LDMyMDgwLDMyMTA0LDMyMDg1LDMyMDQzLDMyMTEwLDMyMTE0LDMyMDk3LDMyMTAyLDMyMDk4LDMyMTEyLDMyMTE1LDIxODkyLDMyNzI0LDMyNzI1'@; put 'LDMyNzc5LDMyODUwLDMyOTAxLDMzMTA5LDMzMTA4LDMzMDk5LDMzMTA1LDMzMTAyLDMzMDgxLDMzMDk0LDMzMDg2LDMzMTAwLDMzMTA3LDMzMTQwLDMzMjk4LDMzMzA4LDMzNzY5LDMzNzk1LDMzNzg0LDMzODA1LDMzNzYwLDMzNzMzLDMzODAzLDMzNzI5LDMzNzc1LDMzNzc3LDMzNzgwLDMz'@; put 'ODc5LDMzODAyLDMzNzc2LDMzODA0LDMzNzQwLDMzNzg5LDMzNzc4LDMzNzM4LDMzODQ4LDMzODA2LDMzNzk2LDMzNzU2LDMzNzk5LDMzNzQ4LDMzNzU5LDM0Mzk1LDM0NTI3LDM0NTIxLDM0NTQxLDM0NTE2LDM0NTIzLDM0NTMyLDM0NTEyLDM0NTI2LDM0OTAzLDM1MDA5LDM1MDEwLDM0OTkz'@; put 'LDM1MjAzLDM1MjIyLDM1Mzg3LDM1NDI0LDM1NDEzLDM1NDIyLDM1Mzg4LDM1MzkzLDM1NDEyLDM1NDE5LDM1NDA4LDM1Mzk4LDM1MzgwLDM1Mzg2LDM1MzgyLDM1NDE0LDM1OTM3LDM1OTcwLDM2MDE1LDM2MDI4LDM2MDE5LDM2MDI5LDM2MDMzLDM2MDI3LDM2MDMyLDM2MDIwLDM2MDIzLDM2'@; put 'MDIyLDM2MDMxLDM2MDI0LDM2MjM0LDM2MjI5LDM2MjI1LDM2MzAyLDM2MzE3LDM2Mjk5LDM2MzE0LDM2MzA1LDM2MzAwLDM2MzE1LDM2Mjk0LDM2NjAzLDM2NjAwLDM2NjA0LDM2NzY0LDM2OTEwLDM2OTE3LDM2OTEzLDM2OTIwLDM2OTE0LDM2OTE4LDM3MTIyLDM3MTA5LDM3MTI5LDM3MTE4'@; put 'LDM3MjE5LDM3MjIxLDM3MzI3LDM3Mzk2LDM3Mzk3LDM3NDExLDM3Mzg1LDM3NDA2LDM3Mzg5LDM3MzkyLDM3MzgzLDM3MzkzLDM4MjkyLDM4Mjg3LDM4MjgzLDM4Mjg5LDM4MjkxLDM4MjkwLDM4Mjg2LDM4NTM4LDM4NTQyLDM4NTM5LDM4NTI1LDM4NTMzLDM4NTM0LDM4NTQxLDM4NTE0LDM4'@; put 'NTMyLDM4NTkzLDM4NTk3LDM4NTk2LDM4NTk4LDM4NTk5LDM4NjM5LDM4NjQyLDM4ODYwLDM4OTE3LDM4OTE4LDM4OTIwLDM5MTQzLDM5MTQ2LDM5MTUxLDM5MTQ1LDM5MTU0LDM5MTQ5LDM5MzQyLDM5MzQxLDQwNjQzLDQwNjUzLDQwNjU3LDIwMDk4LDIwNjUzLDIwNjYxLDIwNjU4LDIwNjU5'@; put 'LDIwNjc3LDIwNjcwLDIwNjUyLDIwNjYzLDIwNjY3LDIwNjU1LDIwNjc5LDIxMTE5LDIxMTExLDIxMTE3LDIxMjE1LDIxMjIyLDIxMjIwLDIxMjE4LDIxMjE5LDIxMjk1LDIxOTgzLDIxOTkyLDIxOTcxLDIxOTkwLDIxOTY2LDIxOTgwLDIxOTU5LDIxOTY5LDIxOTg3LDIxOTg4LDIxOTk5LDIx'@; put 'OTc4LDIxOTg1LDIxOTU3LDIxOTU4LDIxOTg5LDIxOTYxLDIyMjkwLDIyMjkxLDIyNjIyLDIyNjA5LDIyNjE2LDIyNjE1LDIyNjE4LDIyNjEyLDIyNjM1LDIyNjA0LDIyNjM3LDIyNjAyLDIyNjI2LDIyNjEwLDIyNjAzLDIyODg3LDIzMjMzLDIzMjQxLDIzMjQ0LDIzMjMwLDIzMjI5LDIzMjI4'@; put 'LDIzMjE5LDIzMjM0LDIzMjE4LDIzOTEzLDIzOTE5LDI0MTQwLDI0MTg1LDI0MjY1LDI0MjY0LDI0MzM4LDI0NDA5LDI0NDkyLDI0NDk0LDI0ODU4LDI0ODQ3LDI0OTA0LDI0ODYzLDI0ODE5LDI0ODU5LDI0ODI1LDI0ODMzLDI0ODQwLDI0OTEwLDI0OTA4LDI0OTAwLDI0OTA5LDI0ODk0LDI0'@; put 'ODg0LDI0ODcxLDI0ODQ1LDI0ODM4LDI0ODg3LDI1MTIxLDI1MTIyLDI1NjE5LDI1NjYyLDI1NjMwLDI1NjQyLDI1NjQ1LDI1NjYxLDI1NjQ0LDI1NjE1LDI1NjI4LDI1NjIwLDI1NjEzLDI1NjU0LDI1NjIyLDI1NjIzLDI1NjA2LDI1OTY0LDI2MDE1LDI2MDMyLDI2MjYzLDI2MjQ5LDI2MjQ3'@; put 'LDI2MjQ4LDI2MjYyLDI2MjQ0LDI2MjY0LDI2MjUzLDI2MzcxLDI3MDI4LDI2OTg5LDI2OTcwLDI2OTk5LDI2OTc2LDI2OTY0LDI2OTk3LDI2OTI4LDI3MDEwLDI2OTU0LDI2OTg0LDI2OTg3LDI2OTc0LDI2OTYzLDI3MDAxLDI3MDE0LDI2OTczLDI2OTc5LDI2OTcxLDI3NDYzLDI3NTA2LDI3'@; put 'NTg0LDI3NTgzLDI3NjAzLDI3NjQ1LDI4MzIyLDI4MzM1LDI4MzcxLDI4MzQyLDI4MzU0LDI4MzA0LDI4MzE3LDI4MzU5LDI4MzU3LDI4MzI1LDI4MzEyLDI4MzQ4LDI4MzQ2LDI4MzMxLDI4MzY5LDI4MzEwLDI4MzE2LDI4MzU2LDI4MzcyLDI4MzMwLDI4MzI3LDI4MzQwLDI5MDA2LDI5MDE3'@; put 'LDI5MDMzLDI5MDI4LDI5MDAxLDI5MDMxLDI5MDIwLDI5MDM2LDI5MDMwLDI5MDA0LDI5MDI5LDI5MDIyLDI4OTk4LDI5MDMyLDI5MDE0LDI5MjQyLDI5MjY2LDI5NDk1LDI5NTA5LDI5NTAzLDI5NTAyLDI5ODA3LDI5Nzg2LDI5NzgxLDI5NzkxLDI5NzkwLDI5NzYxLDI5NzU5LDI5Nzg1LDI5'@; put 'Nzg3LDI5Nzg4LDMwMDcwLDMwMDcyLDMwMjA4LDMwMTkyLDMwMjA5LDMwMTk0LDMwMTkzLDMwMjAyLDMwMjA3LDMwMTk2LDMwMTk1LDMwNDMwLDMwNDMxLDMwNTU1LDMwNTcxLDMwNTY2LDMwNTU4LDMwNTYzLDMwNTg1LDMwNTcwLDMwNTcyLDMwNTU2LDMwNTY1LDMwNTY4LDMwNTYyLDMwNzAy'@; put 'LDMwODYyLDMwODk2LDMwODcxLDMwODcyLDMwODYwLDMwODU3LDMwODQ0LDMwODY1LDMwODY3LDMwODQ3LDMxMDk4LDMxMTAzLDMxMTA1LDMzODM2LDMxMTY1LDMxMjYwLDMxMjU4LDMxMjY0LDMxMjUyLDMxMjYzLDMxMjYyLDMxMzkxLDMxMzkyLDMxNjA3LDMxNjgwLDMxNTg0LDMxNTk4LDMx'@; put 'NTkxLDMxOTIxLDMxOTIzLDMxOTI1LDMyMTQ3LDMyMTIxLDMyMTQ1LDMyMTI5LDMyMTQzLDMyMDkxLDMyNjIyLDMyNjE3LDMyNjE4LDMyNjI2LDMyNjgxLDMyNjgwLDMyNjc2LDMyODU0LDMyODU2LDMyOTAyLDMyOTAwLDMzMTM3LDMzMTM2LDMzMTQ0LDMzMTI1LDMzMTM0LDMzMTM5LDMzMTMx'@; put 'LDMzMTQ1LDMzMTQ2LDMzMTI2LDMzMjg1LDMzMzUxLDMzOTIyLDMzOTExLDMzODUzLDMzODQxLDMzOTA5LDMzODk0LDMzODk5LDMzODY1LDMzOTAwLDMzODgzLDMzODUyLDMzODQ1LDMzODg5LDMzODkxLDMzODk3LDMzOTAxLDMzODYyLDM0Mzk4LDM0Mzk2LDM0Mzk5LDM0NTUzLDM0NTc5LDM0'@; put 'NTY4LDM0NTY3LDM0NTYwLDM0NTU4LDM0NTU1LDM0NTYyLDM0NTYzLDM0NTY2LDM0NTcwLDM0OTA1LDM1MDM5LDM1MDI4LDM1MDMzLDM1MDM2LDM1MDMyLDM1MDM3LDM1MDQxLDM1MDE4LDM1MDI5LDM1MDI2LDM1MjI4LDM1Mjk5LDM1NDM1LDM1NDQyLDM1NDQzLDM1NDMwLDM1NDMzLDM1NDQw'@; put 'LDM1NDYzLDM1NDUyLDM1NDI3LDM1NDg4LDM1NDQxLDM1NDYxLDM1NDM3LDM1NDI2LDM1NDM4LDM1NDM2LDM1NDQ5LDM1NDUxLDM1MzkwLDM1NDMyLDM1OTM4LDM1OTc4LDM1OTc3LDM2MDQyLDM2MDM5LDM2MDQwLDM2MDM2LDM2MDE4LDM2MDM1LDM2MDM0LDM2MDM3LDM2MzIxLDM2MzE5LDM2'@; put 'MzI4LDM2MzM1LDM2MzM5LDM2MzQ2LDM2MzMwLDM2MzI0LDM2MzI2LDM2NTMwLDM2NjExLDM2NjE3LDM2NjA2LDM2NjE4LDM2NzY3LDM2Nzg2LDM2OTM5LDM2OTM4LDM2OTQ3LDM2OTMwLDM2OTQ4LDM2OTI0LDM2OTQ5LDM2OTQ0LDM2OTM1LDM2OTQzLDM2OTQyLDM2OTQxLDM2OTQ1LDM2OTI2'@; put 'LDM2OTI5LDM3MTM4LDM3MTQzLDM3MjI4LDM3MjI2LDM3MjI1LDM3MzIxLDM3NDMxLDM3NDYzLDM3NDMyLDM3NDM3LDM3NDQwLDM3NDM4LDM3NDY3LDM3NDUxLDM3NDc2LDM3NDU3LDM3NDI4LDM3NDQ5LDM3NDUzLDM3NDQ1LDM3NDMzLDM3NDM5LDM3NDY2LDM4Mjk2LDM4NTUyLDM4NTQ4LDM4'@; put 'NTQ5LDM4NjA1LDM4NjAzLDM4NjAxLDM4NjAyLDM4NjQ3LDM4NjUxLDM4NjQ5LDM4NjQ2LDM4NzQyLDM4NzcyLDM4Nzc0LDM4OTI4LDM4OTI5LDM4OTMxLDM4OTIyLDM4OTMwLDM4OTI0LDM5MTY0LDM5MTU2LDM5MTY1LDM5MTY2LDM5MzQ3LDM5MzQ1LDM5MzQ4LDM5NjQ5LDQwMTY5LDQwNTc4'@; put 'LDQwNzE4LDQwNzIzLDQwNzM2LDIwNzExLDIwNzE4LDIwNzA5LDIwNjk0LDIwNzE3LDIwNjk4LDIwNjkzLDIwNjg3LDIwNjg5LDIwNzIxLDIwNjg2LDIwNzEzLDIwODM0LDIwOTc5LDIxMTIzLDIxMTIyLDIxMjk3LDIxNDIxLDIyMDE0LDIyMDE2LDIyMDQzLDIyMDM5LDIyMDEzLDIyMDM2LDIy'@; put 'MDIyLDIyMDI1LDIyMDI5LDIyMDMwLDIyMDA3LDIyMDM4LDIyMDQ3LDIyMDI0LDIyMDMyLDIyMDA2LDIyMjk2LDIyMjk0LDIyNjQ1LDIyNjU0LDIyNjU5LDIyNjc1LDIyNjY2LDIyNjQ5LDIyNjYxLDIyNjUzLDIyNzgxLDIyODIxLDIyODE4LDIyODIwLDIyODkwLDIyODg5LDIzMjY1LDIzMjcw'@; put 'LDIzMjczLDIzMjU1LDIzMjU0LDIzMjU2LDIzMjY3LDIzNDEzLDIzNTE4LDIzNTI3LDIzNTIxLDIzNTI1LDIzNTI2LDIzNTI4LDIzNTIyLDIzNTI0LDIzNTE5LDIzNTY1LDIzNjUwLDIzOTQwLDIzOTQzLDI0MTU1LDI0MTYzLDI0MTQ5LDI0MTUxLDI0MTQ4LDI0Mjc1LDI0Mjc4LDI0MzMwLDI0'@; put 'MzkwLDI0NDMyLDI0NTA1LDI0OTAzLDI0ODk1LDI0OTA3LDI0OTUxLDI0OTMwLDI0OTMxLDI0OTI3LDI0OTIyLDI0OTIwLDI0OTQ5LDI1MTMwLDI1NzM1LDI1Njg4LDI1Njg0LDI1NzY0LDI1NzIwLDI1Njk1LDI1NzIyLDI1NjgxLDI1NzAzLDI1NjUyLDI1NzA5LDI1NzIzLDI1OTcwLDI2MDE3'@; put 'LDI2MDcxLDI2MDcwLDI2Mjc0LDI2MjgwLDI2MjY5LDI3MDM2LDI3MDQ4LDI3MDI5LDI3MDczLDI3MDU0LDI3MDkxLDI3MDgzLDI3MDM1LDI3MDYzLDI3MDY3LDI3MDUxLDI3MDYwLDI3MDg4LDI3MDg1LDI3MDUzLDI3MDg0LDI3MDQ2LDI3MDc1LDI3MDQzLDI3NDY1LDI3NDY4LDI3Njk5LDI4'@; put 'NDY3LDI4NDM2LDI4NDE0LDI4NDM1LDI4NDA0LDI4NDU3LDI4NDc4LDI4NDQ4LDI4NDYwLDI4NDMxLDI4NDE4LDI4NDUwLDI4NDE1LDI4Mzk5LDI4NDIyLDI4NDY1LDI4NDcyLDI4NDY2LDI4NDUxLDI4NDM3LDI4NDU5LDI4NDYzLDI4NTUyLDI4NDU4LDI4Mzk2LDI4NDE3LDI4NDAyLDI4MzY0'@; put 'LDI4NDA3LDI5MDc2LDI5MDgxLDI5MDUzLDI5MDY2LDI5MDYwLDI5MDc0LDI5MjQ2LDI5MzMwLDI5MzM0LDI5NTA4LDI5NTIwLDI5Nzk2LDI5Nzk1LDI5ODAyLDI5ODA4LDI5ODA1LDI5OTU2LDMwMDk3LDMwMjQ3LDMwMjIxLDMwMjE5LDMwMjE3LDMwMjI3LDMwNDMzLDMwNDM1LDMwNTk2LDMw'@; put 'NTg5LDMwNTkxLDMwNTYxLDMwOTEzLDMwODc5LDMwODg3LDMwODk5LDMwODg5LDMwODgzLDMxMTE4LDMxMTE5LDMxMTE3LDMxMjc4LDMxMjgxLDMxNDAyLDMxNDAxLDMxNDY5LDMxNDcxLDMxNjQ5LDMxNjM3LDMxNjI3LDMxNjA1LDMxNjM5LDMxNjQ1LDMxNjM2LDMxNjMxLDMxNjcyLDMxNjIz'@; put 'LDMxNjIwLDMxOTI5LDMxOTMzLDMxOTM0LDMyMTg3LDMyMTc2LDMyMTU2LDMyMTg5LDMyMTkwLDMyMTYwLDMyMjAyLDMyMTgwLDMyMTc4LDMyMTc3LDMyMTg2LDMyMTYyLDMyMTkxLDMyMTgxLDMyMTg0LDMyMTczLDMyMjEwLDMyMTk5LDMyMTcyLDMyNjI0LDMyNzM2LDMyNzM3LDMyNzM1LDMy'@; put 'ODYyLDMyODU4LDMyOTAzLDMzMTA0LDMzMTUyLDMzMTY3LDMzMTYwLDMzMTYyLDMzMTUxLDMzMTU0LDMzMjU1LDMzMjc0LDMzMjg3LDMzMzAwLDMzMzEwLDMzMzU1LDMzOTkzLDMzOTgzLDMzOTkwLDMzOTg4LDMzOTQ1LDMzOTUwLDMzOTcwLDMzOTQ4LDMzOTk1LDMzOTc2LDMzOTg0LDM0MDAz'@; put 'LDMzOTM2LDMzOTgwLDM0MDAxLDMzOTk0LDM0NjIzLDM0NTg4LDM0NjE5LDM0NTk0LDM0NTk3LDM0NjEyLDM0NTg0LDM0NjQ1LDM0NjE1LDM0NjAxLDM1MDU5LDM1MDc0LDM1MDYwLDM1MDY1LDM1MDY0LDM1MDY5LDM1MDQ4LDM1MDk4LDM1MDU1LDM1NDk0LDM1NDY4LDM1NDg2LDM1NDkxLDM1'@; put 'NDY5LDM1NDg5LDM1NDc1LDM1NDkyLDM1NDk4LDM1NDkzLDM1NDk2LDM1NDgwLDM1NDczLDM1NDgyLDM1NDk1LDM1OTQ2LDM1OTgxLDM1OTgwLDM2MDUxLDM2MDQ5LDM2MDUwLDM2MjAzLDM2MjQ5LDM2MjQ1LDM2MzQ4LDM2NjI4LDM2NjI2LDM2NjI5LDM2NjI3LDM2NzcxLDM2OTYwLDM2OTUy'@; put 'LDM2OTU2LDM2OTYzLDM2OTUzLDM2OTU4LDM2OTYyLDM2OTU3LDM2OTU1LDM3MTQ1LDM3MTQ0LDM3MTUwLDM3MjM3LDM3MjQwLDM3MjM5LDM3MjM2LDM3NDk2LDM3NTA0LDM3NTA5LDM3NTI4LDM3NTI2LDM3NDk5LDM3NTIzLDM3NTMyLDM3NTQ0LDM3NTAwLDM3NTIxLDM4MzA1LDM4MzEyLDM4'@; put 'MzEzLDM4MzA3LDM4MzA5LDM4MzA4LDM4NTUzLDM4NTU2LDM4NTU1LDM4NjA0LDM4NjEwLDM4NjU2LDM4NzgwLDM4Nzg5LDM4OTAyLDM4OTM1LDM4OTM2LDM5MDg3LDM5MDg5LDM5MTcxLDM5MTczLDM5MTgwLDM5MTc3LDM5MzYxLDM5NTk5LDM5NjAwLDM5NjU0LDM5NzQ1LDM5NzQ2LDQwMTgw'@; put 'LDQwMTgyLDQwMTc5LDQwNjM2LDQwNzYzLDQwNzc4LDIwNzQwLDIwNzM2LDIwNzMxLDIwNzI1LDIwNzI5LDIwNzM4LDIwNzQ0LDIwNzQ1LDIwNzQxLDIwOTU2LDIxMTI3LDIxMTI4LDIxMTI5LDIxMTMzLDIxMTMwLDIxMjMyLDIxNDI2LDIyMDYyLDIyMDc1LDIyMDczLDIyMDY2LDIyMDc5LDIy'@; put 'MDY4LDIyMDU3LDIyMDk5LDIyMDk0LDIyMTAzLDIyMTMyLDIyMDcwLDIyMDYzLDIyMDY0LDIyNjU2LDIyNjg3LDIyNjg2LDIyNzA3LDIyNjg0LDIyNzAyLDIyNjk3LDIyNjk0LDIyODkzLDIzMzA1LDIzMjkxLDIzMzA3LDIzMjg1LDIzMzA4LDIzMzA0LDIzNTM0LDIzNTMyLDIzNTI5LDIzNTMx'@; put 'LDIzNjUyLDIzNjUzLDIzOTY1LDIzOTU2LDI0MTYyLDI0MTU5LDI0MTYxLDI0MjkwLDI0MjgyLDI0Mjg3LDI0Mjg1LDI0MjkxLDI0Mjg4LDI0MzkyLDI0NDMzLDI0NTAzLDI0NTAxLDI0OTUwLDI0OTM1LDI0OTQyLDI0OTI1LDI0OTE3LDI0OTYyLDI0OTU2LDI0OTQ0LDI0OTM5LDI0OTU4LDI0'@; put 'OTk5LDI0OTc2LDI1MDAzLDI0OTc0LDI1MDA0LDI0OTg2LDI0OTk2LDI0OTgwLDI1MDA2LDI1MTM0LDI1NzA1LDI1NzExLDI1NzIxLDI1NzU4LDI1Nzc4LDI1NzM2LDI1NzQ0LDI1Nzc2LDI1NzY1LDI1NzQ3LDI1NzQ5LDI1NzY5LDI1NzQ2LDI1Nzc0LDI1NzczLDI1NzcxLDI1NzU0LDI1Nzcy'@; put 'LDI1NzUzLDI1NzYyLDI1Nzc5LDI1OTczLDI1OTc1LDI1OTc2LDI2Mjg2LDI2MjgzLDI2MjkyLDI2Mjg5LDI3MTcxLDI3MTY3LDI3MTEyLDI3MTM3LDI3MTY2LDI3MTYxLDI3MTMzLDI3MTY5LDI3MTU1LDI3MTQ2LDI3MTIzLDI3MTM4LDI3MTQxLDI3MTE3LDI3MTUzLDI3NDcyLDI3NDcwLDI3'@; put 'NTU2LDI3NTg5LDI3NTkwLDI4NDc5LDI4NTQwLDI4NTQ4LDI4NDk3LDI4NTE4LDI4NTAwLDI4NTUwLDI4NTI1LDI4NTA3LDI4NTM2LDI4NTI2LDI4NTU4LDI4NTM4LDI4NTI4LDI4NTE2LDI4NTY3LDI4NTA0LDI4MzczLDI4NTI3LDI4NTEyLDI4NTExLDI5MDg3LDI5MTAwLDI5MTA1LDI5MDk2'@; put 'LDI5MjcwLDI5MzM5LDI5NTE4LDI5NTI3LDI5ODAxLDI5ODM1LDI5ODI3LDI5ODIyLDI5ODI0LDMwMDc5LDMwMjQwLDMwMjQ5LDMwMjM5LDMwMjQ0LDMwMjQ2LDMwMjQxLDMwMjQyLDMwMzYyLDMwMzk0LDMwNDM2LDMwNjA2LDMwNTk5LDMwNjA0LDMwNjA5LDMwNjAzLDMwOTIzLDMwOTE3LDMw'@; put 'OTA2LDMwOTIyLDMwOTEwLDMwOTMzLDMwOTA4LDMwOTI4LDMxMjk1LDMxMjkyLDMxMjk2LDMxMjkzLDMxMjg3LDMxMjkxLDMxNDA3LDMxNDA2LDMxNjYxLDMxNjY1LDMxNjg0LDMxNjY4LDMxNjg2LDMxNjg3LDMxNjgxLDMxNjQ4LDMxNjkyLDMxOTQ2LDMyMjI0LDMyMjQ0LDMyMjM5LDMyMjUx'@; put 'LDMyMjE2LDMyMjM2LDMyMjIxLDMyMjMyLDMyMjI3LDMyMjE4LDMyMjIyLDMyMjMzLDMyMTU4LDMyMjE3LDMyMjQyLDMyMjQ5LDMyNjI5LDMyNjMxLDMyNjg3LDMyNzQ1LDMyODA2LDMzMTc5LDMzMTgwLDMzMTgxLDMzMTg0LDMzMTc4LDMzMTc2LDM0MDcxLDM0MTA5LDM0MDc0LDM0MDMwLDM0'@; put 'MDkyLDM0MDkzLDM0MDY3LDM0MDY1LDM0MDgzLDM0MDgxLDM0MDY4LDM0MDI4LDM0MDg1LDM0MDQ3LDM0MDU0LDM0NjkwLDM0Njc2LDM0Njc4LDM0NjU2LDM0NjYyLDM0NjgwLDM0NjY0LDM0NjQ5LDM0NjQ3LDM0NjM2LDM0NjQzLDM0OTA3LDM0OTA5LDM1MDg4LDM1MDc5LDM1MDkwLDM1MDkx'@; put 'LDM1MDkzLDM1MDgyLDM1NTE2LDM1NTM4LDM1NTI3LDM1NTI0LDM1NDc3LDM1NTMxLDM1NTc2LDM1NTA2LDM1NTI5LDM1NTIyLDM1NTE5LDM1NTA0LDM1NTQyLDM1NTMzLDM1NTEwLDM1NTEzLDM1NTQ3LDM1OTE2LDM1OTE4LDM1OTQ4LDM2MDY0LDM2MDYyLDM2MDcwLDM2MDY4LDM2MDc2LDM2'@; put 'MDc3LDM2MDY2LDM2MDY3LDM2MDYwLDM2MDc0LDM2MDY1LDM2MjA1LDM2MjU1LDM2MjU5LDM2Mzk1LDM2MzY4LDM2MzgxLDM2Mzg2LDM2MzY3LDM2MzkzLDM2MzgzLDM2Mzg1LDM2MzgyLDM2NTM4LDM2NjM3LDM2NjM1LDM2NjM5LDM2NjQ5LDM2NjQ2LDM2NjUwLDM2NjM2LDM2NjM4LDM2NjQ1'@; put 'LDM2OTY5LDM2OTc0LDM2OTY4LDM2OTczLDM2OTgzLDM3MTY4LDM3MTY1LDM3MTU5LDM3MTY5LDM3MjU1LDM3MjU3LDM3MjU5LDM3MjUxLDM3NTczLDM3NTYzLDM3NTU5LDM3NjEwLDM3NTQ4LDM3NjA0LDM3NTY5LDM3NTU1LDM3NTY0LDM3NTg2LDM3NTc1LDM3NjE2LDM3NTU0LDM4MzE3LDM4'@; put 'MzIxLDM4NjYwLDM4NjYyLDM4NjYzLDM4NjY1LDM4NzUyLDM4Nzk3LDM4Nzk1LDM4Nzk5LDM4OTQ1LDM4OTU1LDM4OTQwLDM5MDkxLDM5MTc4LDM5MTg3LDM5MTg2LDM5MTkyLDM5Mzg5LDM5Mzc2LDM5MzkxLDM5Mzg3LDM5Mzc3LDM5MzgxLDM5Mzc4LDM5Mzg1LDM5NjA3LDM5NjYyLDM5NjYz'@; put 'LDM5NzE5LDM5NzQ5LDM5NzQ4LDM5Nzk5LDM5NzkxLDQwMTk4LDQwMjAxLDQwMTk1LDQwNjE3LDQwNjM4LDQwNjU0LDIyNjk2LDQwNzg2LDIwNzU0LDIwNzYwLDIwNzU2LDIwNzUyLDIwNzU3LDIwODY0LDIwOTA2LDIwOTU3LDIxMTM3LDIxMTM5LDIxMjM1LDIyMTA1LDIyMTIzLDIyMTM3LDIy'@; put 'MTIxLDIyMTE2LDIyMTM2LDIyMTIyLDIyMTIwLDIyMTE3LDIyMTI5LDIyMTI3LDIyMTI0LDIyMTE0LDIyMTM0LDIyNzIxLDIyNzE4LDIyNzI3LDIyNzI1LDIyODk0LDIzMzI1LDIzMzQ4LDIzNDE2LDIzNTM2LDIzNTY2LDI0Mzk0LDI1MDEwLDI0OTc3LDI1MDAxLDI0OTcwLDI1MDM3LDI1MDE0'@; put 'LDI1MDIyLDI1MDM0LDI1MDMyLDI1MTM2LDI1Nzk3LDI1NzkzLDI1ODAzLDI1Nzg3LDI1Nzg4LDI1ODE4LDI1Nzk2LDI1Nzk5LDI1Nzk0LDI1ODA1LDI1NzkxLDI1ODEwLDI1ODEyLDI1NzkwLDI1OTcyLDI2MzEwLDI2MzEzLDI2Mjk3LDI2MzA4LDI2MzExLDI2Mjk2LDI3MTk3LDI3MTkyLDI3'@; put 'MTk0LDI3MjI1LDI3MjQzLDI3MjI0LDI3MTkzLDI3MjA0LDI3MjM0LDI3MjMzLDI3MjExLDI3MjA3LDI3MTg5LDI3MjMxLDI3MjA4LDI3NDgxLDI3NTExLDI3NjUzLDI4NjEwLDI4NTkzLDI4NTc3LDI4NjExLDI4NTgwLDI4NjA5LDI4NTgzLDI4NTk1LDI4NjA4LDI4NjAxLDI4NTk4LDI4NTgy'@; put 'LDI4NTc2LDI4NTk2LDI5MTE4LDI5MTI5LDI5MTM2LDI5MTM4LDI5MTI4LDI5MTQxLDI5MTEzLDI5MTM0LDI5MTQ1LDI5MTQ4LDI5MTIzLDI5MTI0LDI5NTQ0LDI5ODUyLDI5ODU5LDI5ODQ4LDI5ODU1LDI5ODU0LDI5OTIyLDI5OTY0LDI5OTY1LDMwMjYwLDMwMjY0LDMwMjY2LDMwNDM5LDMw'@; put 'NDM3LDMwNjI0LDMwNjIyLDMwNjIzLDMwNjI5LDMwOTUyLDMwOTM4LDMwOTU2LDMwOTUxLDMxMTQyLDMxMzA5LDMxMzEwLDMxMzAyLDMxMzA4LDMxMzA3LDMxNDE4LDMxNzA1LDMxNzYxLDMxNjg5LDMxNzE2LDMxNzA3LDMxNzEzLDMxNzIxLDMxNzE4LDMxOTU3LDMxOTU4LDMyMjY2LDMyMjcz'@; put 'LDMyMjY0LDMyMjgzLDMyMjkxLDMyMjg2LDMyMjg1LDMyMjY1LDMyMjcyLDMyNjMzLDMyNjkwLDMyNzUyLDMyNzUzLDMyNzUwLDMyODA4LDMzMjAzLDMzMTkzLDMzMTkyLDMzMjc1LDMzMjg4LDMzMzY4LDMzMzY5LDM0MTIyLDM0MTM3LDM0MTIwLDM0MTUyLDM0MTUzLDM0MTE1LDM0MTIxLDM0'@; put 'MTU3LDM0MTU0LDM0MTQyLDM0NjkxLDM0NzE5LDM0NzE4LDM0NzIyLDM0NzAxLDM0OTEzLDM1MTE0LDM1MTIyLDM1MTA5LDM1MTE1LDM1MTA1LDM1MjQyLDM1MjM4LDM1NTU4LDM1NTc4LDM1NTYzLDM1NTY5LDM1NTg0LDM1NTQ4LDM1NTU5LDM1NTY2LDM1NTgyLDM1NTg1LDM1NTg2LDM1NTc1'@; put 'LDM1NTY1LDM1NTcxLDM1NTc0LDM1NTgwLDM1OTQ3LDM1OTQ5LDM1OTg3LDM2MDg0LDM2NDIwLDM2NDAxLDM2NDA0LDM2NDE4LDM2NDA5LDM2NDA1LDM2NjY3LDM2NjU1LDM2NjY0LDM2NjU5LDM2Nzc2LDM2Nzc0LDM2OTgxLDM2OTgwLDM2OTg0LDM2OTc4LDM2OTg4LDM2OTg2LDM3MTcyLDM3'@; put 'MjY2LDM3NjY0LDM3Njg2LDM3NjI0LDM3NjgzLDM3Njc5LDM3NjY2LDM3NjI4LDM3Njc1LDM3NjM2LDM3NjU4LDM3NjQ4LDM3NjcwLDM3NjY1LDM3NjUzLDM3Njc4LDM3NjU3LDM4MzMxLDM4NTY3LDM4NTY4LDM4NTcwLDM4NjEzLDM4NjcwLDM4NjczLDM4Njc4LDM4NjY5LDM4Njc1LDM4Njcx'@; put 'LDM4NzQ3LDM4NzQ4LDM4NzU4LDM4ODA4LDM4OTYwLDM4OTY4LDM4OTcxLDM4OTY3LDM4OTU3LDM4OTY5LDM4OTQ4LDM5MTg0LDM5MjA4LDM5MTk4LDM5MTk1LDM5MjAxLDM5MTk0LDM5NDA1LDM5Mzk0LDM5NDA5LDM5NjA4LDM5NjEyLDM5Njc1LDM5NjYxLDM5NzIwLDM5ODI1LDQwMjEzLDQw'@; put 'MjI3LDQwMjMwLDQwMjMyLDQwMjEwLDQwMjE5LDQwNjY0LDQwNjYwLDQwODQ1LDQwODYwLDIwNzc4LDIwNzY3LDIwNzY5LDIwNzg2LDIxMjM3LDIyMTU4LDIyMTQ0LDIyMTYwLDIyMTQ5LDIyMTUxLDIyMTU5LDIyNzQxLDIyNzM5LDIyNzM3LDIyNzM0LDIzMzQ0LDIzMzM4LDIzMzMyLDIzNDE4'@; put 'LDIzNjA3LDIzNjU2LDIzOTk2LDIzOTk0LDIzOTk3LDIzOTkyLDI0MTcxLDI0Mzk2LDI0NTA5LDI1MDMzLDI1MDI2LDI1MDMxLDI1MDYyLDI1MDM1LDI1MTM4LDI1MTQwLDI1ODA2LDI1ODAyLDI1ODE2LDI1ODI0LDI1ODQwLDI1ODMwLDI1ODM2LDI1ODQxLDI1ODI2LDI1ODM3LDI1OTg2LDI1'@; put 'OTg3LDI2MzI5LDI2MzI2LDI3MjY0LDI3Mjg0LDI3MjY4LDI3Mjk4LDI3MjkyLDI3MzU1LDI3Mjk5LDI3MjYyLDI3Mjg3LDI3MjgwLDI3Mjk2LDI3NDg0LDI3NTY2LDI3NjEwLDI3NjU2LDI4NjMyLDI4NjU3LDI4NjM5LDI4NjQwLDI4NjM1LDI4NjQ0LDI4NjUxLDI4NjU1LDI4NTQ0LDI4NjUy'@; put 'LDI4NjQxLDI4NjQ5LDI4NjI5LDI4NjU0LDI4NjU2LDI5MTU5LDI5MTUxLDI5MTY2LDI5MTU4LDI5MTU3LDI5MTY1LDI5MTY0LDI5MTcyLDI5MTUyLDI5MjM3LDI5MjU0LDI5NTUyLDI5NTU0LDI5ODY1LDI5ODcyLDI5ODYyLDI5ODY0LDMwMjc4LDMwMjc0LDMwMjg0LDMwNDQyLDMwNjQzLDMw'@; put 'NjM0LDMwNjQwLDMwNjM2LDMwNjMxLDMwNjM3LDMwNzAzLDMwOTY3LDMwOTcwLDMwOTY0LDMwOTU5LDMwOTc3LDMxMTQzLDMxMTQ2LDMxMzE5LDMxNDIzLDMxNzUxLDMxNzU3LDMxNzQyLDMxNzM1LDMxNzU2LDMxNzEyLDMxOTY4LDMxOTY0LDMxOTY2LDMxOTcwLDMxOTY3LDMxOTYxLDMxOTY1'@; put 'LDMyMzAyLDMyMzE4LDMyMzI2LDMyMzExLDMyMzA2LDMyMzIzLDMyMjk5LDMyMzE3LDMyMzA1LDMyMzI1LDMyMzIxLDMyMzA4LDMyMzEzLDMyMzI4LDMyMzA5LDMyMzE5LDMyMzAzLDMyNTgwLDMyNzU1LDMyNzY0LDMyODgxLDMyODgyLDMyODgwLDMyODc5LDMyODgzLDMzMjIyLDMzMjE5LDMz'@; put 'MjEwLDMzMjE4LDMzMjE2LDMzMjE1LDMzMjEzLDMzMjI1LDMzMjE0LDMzMjU2LDMzMjg5LDMzMzkzLDM0MjE4LDM0MTgwLDM0MTc0LDM0MjA0LDM0MTkzLDM0MTk2LDM0MjIzLDM0MjAzLDM0MTgzLDM0MjE2LDM0MTg2LDM0NDA3LDM0NzUyLDM0NzY5LDM0NzM5LDM0NzcwLDM0NzU4LDM0NzMx'@; put 'LDM0NzQ3LDM0NzQ2LDM0NzYwLDM0NzYzLDM1MTMxLDM1MTI2LDM1MTQwLDM1MTI4LDM1MTMzLDM1MjQ0LDM1NTk4LDM1NjA3LDM1NjA5LDM1NjExLDM1NTk0LDM1NjE2LDM1NjEzLDM1NTg4LDM1NjAwLDM1OTA1LDM1OTAzLDM1OTU1LDM2MDkwLDM2MDkzLDM2MDkyLDM2MDg4LDM2MDkxLDM2'@; put 'MjY0LDM2NDI1LDM2NDI3LDM2NDI0LDM2NDI2LDM2Njc2LDM2NjcwLDM2Njc0LDM2Njc3LDM2NjcxLDM2OTkxLDM2OTg5LDM2OTk2LDM2OTkzLDM2OTk0LDM2OTkyLDM3MTc3LDM3MjgzLDM3Mjc4LDM3Mjc2LDM3NzA5LDM3NzYyLDM3NjcyLDM3NzQ5LDM3NzA2LDM3NzMzLDM3NzA3LDM3NjU2'@; put 'LDM3NzU4LDM3NzQwLDM3NzIzLDM3NzQ0LDM3NzIyLDM3NzE2LDM4MzQ2LDM4MzQ3LDM4MzQ4LDM4MzQ0LDM4MzQyLDM4NTc3LDM4NTg0LDM4NjE0LDM4Njg0LDM4Njg2LDM4ODE2LDM4ODY3LDM4OTgyLDM5MDk0LDM5MjIxLDM5NDI1LDM5NDIzLDM5ODU0LDM5ODUxLDM5ODUwLDM5ODUzLDQw'@; put 'MjUxLDQwMjU1LDQwNTg3LDQwNjU1LDQwNjcwLDQwNjY4LDQwNjY5LDQwNjY3LDQwNzY2LDQwNzc5LDIxNDc0LDIyMTY1LDIyMTkwLDIyNzQ1LDIyNzQ0LDIzMzUyLDI0NDEzLDI1MDU5LDI1MTM5LDI1ODQ0LDI1ODQyLDI1ODU0LDI1ODYyLDI1ODUwLDI1ODUxLDI1ODQ3LDI2MDM5LDI2MzMy'@; put 'LDI2NDA2LDI3MzE1LDI3MzA4LDI3MzMxLDI3MzIzLDI3MzIwLDI3MzMwLDI3MzEwLDI3MzExLDI3NDg3LDI3NTEyLDI3NTY3LDI4NjgxLDI4NjgzLDI4NjcwLDI4Njc4LDI4NjY2LDI4Njg5LDI4Njg3LDI5MTc5LDI5MTgwLDI5MTgyLDI5MTc2LDI5NTU5LDI5NTU3LDI5ODYzLDI5ODg3LDI5'@; put 'OTczLDMwMjk0LDMwMjk2LDMwMjkwLDMwNjUzLDMwNjU1LDMwNjUxLDMwNjUyLDMwOTkwLDMxMTUwLDMxMzI5LDMxMzMwLDMxMzI4LDMxNDI4LDMxNDI5LDMxNzg3LDMxNzgzLDMxNzg2LDMxNzc0LDMxNzc5LDMxNzc3LDMxOTc1LDMyMzQwLDMyMzQxLDMyMzUwLDMyMzQ2LDMyMzUzLDMyMzM4'@; put 'LDMyMzQ1LDMyNTg0LDMyNzYxLDMyNzYzLDMyODg3LDMyODg2LDMzMjI5LDMzMjMxLDMzMjkwLDM0MjU1LDM0MjE3LDM0MjUzLDM0MjU2LDM0MjQ5LDM0MjI0LDM0MjM0LDM0MjMzLDM0MjE0LDM0Nzk5LDM0Nzk2LDM0ODAyLDM0Nzg0LDM1MjA2LDM1MjUwLDM1MzE2LDM1NjI0LDM1NjQxLDM1'@; put 'NjI4LDM1NjI3LDM1OTIwLDM2MTAxLDM2NDQxLDM2NDUxLDM2NDU0LDM2NDUyLDM2NDQ3LDM2NDM3LDM2NTQ0LDM2NjgxLDM2Njg1LDM2OTk5LDM2OTk1LDM3ZTMsMzcyOTEsMzcyOTIsMzczMjgsMzc3ODAsMzc3NzAsMzc3ODIsMzc3OTQsMzc4MTEsMzc4MDYsMzc4MDQsMzc4MDgsMzc3ODQs'@; put 'Mzc3ODYsMzc3ODMsMzgzNTYsMzgzNTgsMzgzNTIsMzgzNTcsMzg2MjYsMzg2MjAsMzg2MTcsMzg2MTksMzg2MjIsMzg2OTIsMzg4MTksMzg4MjIsMzg4MjksMzg5MDUsMzg5ODksMzg5OTEsMzg5ODgsMzg5OTAsMzg5OTUsMzkwOTgsMzkyMzAsMzkyMzEsMzkyMjksMzkyMTQsMzkzMzMsMzk0'@; put 'MzgsMzk2MTcsMzk2ODMsMzk2ODYsMzk3NTksMzk3NTgsMzk3NTcsMzk4ODIsMzk4ODEsMzk5MzMsMzk4ODAsMzk4NzIsNDAyNzMsNDAyODUsNDAyODgsNDA2NzIsNDA3MjUsNDA3NDgsMjA3ODcsMjIxODEsMjI3NTAsMjI3NTEsMjI3NTQsMjM1NDEsNDA4NDgsMjQzMDAsMjUwNzQsMjUwNzks'@; put 'MjUwNzgsMjUwNzcsMjU4NTYsMjU4NzEsMjYzMzYsMjYzMzMsMjczNjUsMjczNTcsMjczNTQsMjczNDcsMjg2OTksMjg3MDMsMjg3MTIsMjg2OTgsMjg3MDEsMjg2OTMsMjg2OTYsMjkxOTAsMjkxOTcsMjkyNzIsMjkzNDYsMjk1NjAsMjk1NjIsMjk4ODUsMjk4OTgsMjk5MjMsMzAwODcsMzAw'@; put 'ODYsMzAzMDMsMzAzMDUsMzA2NjMsMzEwMDEsMzExNTMsMzEzMzksMzEzMzcsMzE4MDYsMzE4MDcsMzE4MDAsMzE4MDUsMzE3OTksMzE4MDgsMzIzNjMsMzIzNjUsMzIzNzcsMzIzNjEsMzIzNjIsMzI2NDUsMzIzNzEsMzI2OTQsMzI2OTcsMzI2OTYsMzMyNDAsMzQyODEsMzQyNjksMzQyODIs'@; put 'MzQyNjEsMzQyNzYsMzQyNzcsMzQyOTUsMzQ4MTEsMzQ4MjEsMzQ4MjksMzQ4MDksMzQ4MTQsMzUxNjgsMzUxNjcsMzUxNTgsMzUxNjYsMzU2NDksMzU2NzYsMzU2NzIsMzU2NTcsMzU2NzQsMzU2NjIsMzU2NjMsMzU2NTQsMzU2NzMsMzYxMDQsMzYxMDYsMzY0NzYsMzY0NjYsMzY0ODcsMzY0'@; put 'NzAsMzY0NjAsMzY0NzQsMzY0NjgsMzY2OTIsMzY2ODYsMzY3ODEsMzcwMDIsMzcwMDMsMzcyOTcsMzcyOTQsMzc4NTcsMzc4NDEsMzc4NTUsMzc4MjcsMzc4MzIsMzc4NTIsMzc4NTMsMzc4NDYsMzc4NTgsMzc4MzcsMzc4NDgsMzc4NjAsMzc4NDcsMzc4NjQsMzgzNjQsMzg1ODAsMzg2Mjcs'@; put 'Mzg2OTgsMzg2OTUsMzg3NTMsMzg4NzYsMzg5MDcsMzkwMDYsMzllMywzOTAwMywzOTEwMCwzOTIzNywzOTI0MSwzOTQ0NiwzOTQ0OSwzOTY5MywzOTkxMiwzOTkxMSwzOTg5NCwzOTg5OSw0MDMyOSw0MDI4OSw0MDMwNiw0MDI5OCw0MDMwMCw0MDU5NCw0MDU5OSw0MDU5NSw0MDYyOCwyMTI0'@; put 'MCwyMjE4NCwyMjE5OSwyMjE5OCwyMjE5NiwyMjIwNCwyMjc1NiwyMzM2MCwyMzM2MywyMzQyMSwyMzU0MiwyNDAwOSwyNTA4MCwyNTA4MiwyNTg4MCwyNTg3NiwyNTg4MSwyNjM0MiwyNjQwNywyNzM3MiwyODczNCwyODcyMCwyODcyMiwyOTIwMCwyOTU2MywyOTkwMywzMDMwNiwzMDMwOSwz'@; put 'MTAxNCwzMTAxOCwzMTAyMCwzMTAxOSwzMTQzMSwzMTQ3OCwzMTgyMCwzMTgxMSwzMTgyMSwzMTk4MywzMTk4NCwzNjc4MiwzMjM4MSwzMjM4MCwzMjM4NiwzMjU4OCwzMjc2OCwzMzI0MiwzMzM4MiwzNDI5OSwzNDI5NywzNDMyMSwzNDI5OCwzNDMxMCwzNDMxNSwzNDMxMSwzNDMxNCwzNDgz'@; put 'NiwzNDgzNywzNTE3MiwzNTI1OCwzNTMyMCwzNTY5NiwzNTY5MiwzNTY4NiwzNTY5NSwzNTY3OSwzNTY5MSwzNjExMSwzNjEwOSwzNjQ4OSwzNjQ4MSwzNjQ4NSwzNjQ4MiwzNzMwMCwzNzMyMywzNzkxMiwzNzg5MSwzNzg4NSwzODM2OSwzODcwNCwzOTEwOCwzOTI1MCwzOTI0OSwzOTMzNiwz'@; put 'OTQ2NywzOTQ3MiwzOTQ3OSwzOTQ3NywzOTk1NSwzOTk0OSw0MDU2OSw0MDYyOSw0MDY4MCw0MDc1MSw0MDc5OSw0MDgwMyw0MDgwMSwyMDc5MSwyMDc5MiwyMjIwOSwyMjIwOCwyMjIxMCwyMjgwNCwyMzY2MCwyNDAxMywyNTA4NCwyNTA4NiwyNTg4NSwyNTg4NCwyNjAwNSwyNjM0NSwyNzM4'@; put 'NywyNzM5NiwyNzM4NiwyNzU3MCwyODc0OCwyOTIxMSwyOTM1MSwyOTkxMCwyOTkwOCwzMDMxMywzMDY3NSwzMTgyNCwzMjM5OSwzMjM5NiwzMjcwMCwzNDMyNywzNDM0OSwzNDMzMCwzNDg1MSwzNDg1MCwzNDg0OSwzNDg0NywzNTE3OCwzNTE4MCwzNTI2MSwzNTcwMCwzNTcwMywzNTcwOSwz'@; put 'NjExNSwzNjQ5MCwzNjQ5MywzNjQ5MSwzNjcwMywzNjc4MywzNzMwNiwzNzkzNCwzNzkzOSwzNzk0MSwzNzk0NiwzNzk0NCwzNzkzOCwzNzkzMSwzODM3MCwzODcxMiwzODcxMywzODcwNiwzODkxMSwzOTAxNSwzOTAxMywzOTI1NSwzOTQ5MywzOTQ5MSwzOTQ4OCwzOTQ4NiwzOTYzMSwzOTc2'@; put 'NCwzOTc2MSwzOTk4MSwzOTk3Myw0MDM2Nyw0MDM3Miw0MDM4Niw0MDM3Niw0MDYwNSw0MDY4Nyw0MDcyOSw0MDc5Niw0MDgwNiw0MDgwNywyMDc5NiwyMDc5NSwyMjIxNiwyMjIxOCwyMjIxNywyMzQyMywyNDAyMCwyNDAxOCwyNDM5OCwyNTA4NywyNTg5MiwyNzQwMiwyNzQ4OSwyODc1Mywy'@; put 'ODc2MCwyOTU2OCwyOTkyNCwzMDA5MCwzMDMxOCwzMDMxNiwzMTE1NSwzMTg0MCwzMTgzOSwzMjg5NCwzMjg5MywzMzI0NywzNTE4NiwzNTE4MywzNTMyNCwzNTcxMiwzNjExOCwzNjExOSwzNjQ5NywzNjQ5OSwzNjcwNSwzNzE5MiwzNzk1NiwzNzk2OSwzNzk3MCwzODcxNywzODcxOCwzODg1'@; put 'MSwzODg0OSwzOTAxOSwzOTI1MywzOTUwOSwzOTUwMSwzOTYzNCwzOTcwNiw0MDAwOSwzOTk4NSwzOTk5OCwzOTk5NSw0MDQwMyw0MDQwNyw0MDc1Niw0MDgxMiw0MDgxMCw0MDg1MiwyMjIyMCwyNDAyMiwyNTA4OCwyNTg5MSwyNTg5OSwyNTg5OCwyNjM0OCwyNzQwOCwyOTkxNCwzMTQzNCwz'@; put 'MTg0NCwzMTg0MywzMTg0NSwzMjQwMywzMjQwNiwzMjQwNCwzMzI1MCwzNDM2MCwzNDM2NywzNDg2NSwzNTcyMiwzNzAwOCwzNzAwNywzNzk4NywzNzk4NCwzNzk4OCwzODc2MCwzOTAyMywzOTI2MCwzOTUxNCwzOTUxNSwzOTUxMSwzOTYzNSwzOTYzNiwzOTYzMyw0MDAyMCw0MDAyMyw0MDAy'@; put 'Miw0MDQyMSw0MDYwNyw0MDY5MiwyMjIyNSwyMjc2MSwyNTkwMCwyODc2NiwzMDMyMSwzMDMyMiwzMDY3OSwzMjU5MiwzMjY0OCwzNDg3MCwzNDg3MywzNDkxNCwzNTczMSwzNTczMCwzNTczNCwzMzM5OSwzNjEyMywzNzMxMiwzNzk5NCwzODcyMiwzODcyOCwzODcyNCwzODg1NCwzOTAyNCwz'@; put 'OTUxOSwzOTcxNCwzOTc2OCw0MDAzMSw0MDQ0MSw0MDQ0Miw0MDU3Miw0MDU3Myw0MDcxMSw0MDgyMyw0MDgxOCwyNDMwNywyNzQxNCwyODc3MSwzMTg1MiwzMTg1NCwzNDg3NSwzNTI2NCwzNjUxMywzNzMxMywzODAwMiwzOGUzLDM5MDI1LDM5MjYyLDM5NjM4LDM5NzE1LDQwNjUyLDI4Nzcy'@; put 'LDMwNjgyLDM1NzM4LDM4MDA3LDM4ODU3LDM5NTIyLDM5NTI1LDMyNDEyLDM1NzQwLDM2NTIyLDM3MzE3LDM4MDEzLDM4MDE0LDM4MDEyLDQwMDU1LDQwMDU2LDQwNjk1LDM1OTI0LDM4MDE1LDQwNDc0LDI5MjI0LDM5NTMwLDM5NzI5LDQwNDc1LDQwNDc4LDMxODU4LDkzMTIsOTMxMyw5MzE0'@; put 'LDkzMTUsOTMxNiw5MzE3LDkzMTgsOTMxOSw5MzIwLDkzMjEsOTMzMiw5MzMzLDkzMzQsOTMzNSw5MzM2LDkzMzcsOTMzOCw5MzM5LDkzNDAsOTM0MSw4NTYwLDg1NjEsODU2Miw4NTYzLDg1NjQsODU2NSw4NTY2LDg1NjcsODU2OCw4NTY5LDIwMDIyLDIwMDMxLDIwMTAxLDIwMTI4LDIwODY2'@; put 'LDIwODg2LDIwOTA3LDIxMjQxLDIxMzA0LDIxMzUzLDIxNDMwLDIyNzk0LDIzNDI0LDI0MDI3LDEyMDgzLDI0MTkxLDI0MzA4LDI0NDAwLDI0NDE3LDI1OTA4LDI2MDgwLDMwMDk4LDMwMzI2LDM2Nzg5LDM4NTgyLDE2OCw3MTAsMTI1NDEsMTI1NDIsMTI0NDUsMTI0NDYsMTIyOTEsMjAxODks'@; put 'MTIyOTMsMTIyOTQsMTIyOTUsMTI1NDAsNjUzMzksNjUzNDEsMTAwNDUsMTIzNTMsMTIzNTQsMTIzNTUsMTIzNTYsMTIzNTcsMTIzNTgsMTIzNTksMTIzNjAsMTIzNjEsMTIzNjIsMTIzNjMsMTIzNjQsMTIzNjUsMTIzNjYsMTIzNjcsMTIzNjgsMTIzNjksMTIzNzAsMTIzNzEsMTIzNzIsMTIz'@; put 'NzMsMTIzNzQsMTIzNzUsMTIzNzYsMTIzNzcsMTIzNzgsMTIzNzksMTIzODAsMTIzODEsMTIzODIsMTIzODMsMTIzODQsMTIzODUsMTIzODYsMTIzODcsMTIzODgsMTIzODksMTIzOTAsMTIzOTEsMTIzOTIsMTIzOTMsMTIzOTQsMTIzOTUsMTIzOTYsMTIzOTcsMTIzOTgsMTIzOTksMTI0MDAs'@; put 'MTI0MDEsMTI0MDIsMTI0MDMsMTI0MDQsMTI0MDUsMTI0MDYsMTI0MDcsMTI0MDgsMTI0MDksMTI0MTAsMTI0MTEsMTI0MTIsMTI0MTMsMTI0MTQsMTI0MTUsMTI0MTYsMTI0MTcsMTI0MTgsMTI0MTksMTI0MjAsMTI0MjEsMTI0MjIsMTI0MjMsMTI0MjQsMTI0MjUsMTI0MjYsMTI0MjcsMTI0'@; put 'MjgsMTI0MjksMTI0MzAsMTI0MzEsMTI0MzIsMTI0MzMsMTI0MzQsMTI0MzUsMTI0NDksMTI0NTAsMTI0NTEsMTI0NTIsMTI0NTMsMTI0NTQsMTI0NTUsMTI0NTYsMTI0NTcsMTI0NTgsMTI0NTksMTI0NjAsMTI0NjEsMTI0NjIsMTI0NjMsMTI0NjQsMTI0NjUsMTI0NjYsMTI0NjcsMTI0Njgs'@; put 'MTI0NjksMTI0NzAsMTI0NzEsMTI0NzIsMTI0NzMsMTI0NzQsMTI0NzUsMTI0NzYsMTI0NzcsMTI0NzgsMTI0NzksMTI0ODAsMTI0ODEsMTI0ODIsMTI0ODMsMTI0ODQsMTI0ODUsMTI0ODYsMTI0ODcsMTI0ODgsMTI0ODksMTI0OTAsMTI0OTEsMTI0OTIsMTI0OTMsMTI0OTQsMTI0OTUsMTI0'@; put 'OTYsMTI0OTcsMTI0OTgsMTI0OTksMTI1MDAsMTI1MDEsMTI1MDIsMTI1MDMsMTI1MDQsMTI1MDUsMTI1MDYsMTI1MDcsMTI1MDgsMTI1MDksMTI1MTAsMTI1MTEsMTI1MTIsMTI1MTMsMTI1MTQsMTI1MTUsMTI1MTYsMTI1MTcsMTI1MTgsMTI1MTksMTI1MjAsMTI1MjEsMTI1MjIsMTI1MjMs'@; put 'MTI1MjQsMTI1MjUsMTI1MjYsMTI1MjcsMTI1MjgsMTI1MjksMTI1MzAsMTI1MzEsMTI1MzIsMTI1MzMsMTI1MzQsMTA0MCwxMDQxLDEwNDIsMTA0MywxMDQ0LDEwNDUsMTAyNSwxMDQ2LDEwNDcsMTA0OCwxMDQ5LDEwNTAsMTA1MSwxMDUyLDEwNTMsMTA1NCwxMDU1LDEwNTYsMTA1NywxMDU4'@; put 'LDEwNTksMTA2MCwxMDYxLDEwNjIsMTA2MywxMDY0LDEwNjUsMTA2NiwxMDY3LDEwNjgsMTA2OSwxMDcwLDEwNzEsMTA3MiwxMDczLDEwNzQsMTA3NSwxMDc2LDEwNzcsMTEwNSwxMDc4LDEwNzksMTA4MCwxMDgxLDEwODIsMTA4MywxMDg0LDEwODUsMTA4NiwxMDg3LDEwODgsMTA4OSwxMDkw'@; put 'LDEwOTEsMTA5MiwxMDkzLDEwOTQsMTA5NSwxMDk2LDEwOTcsMTA5OCwxMDk5LDExMDAsMTEwMSwxMTAyLDExMDMsODY3OSw4NjMyLDg2MzMsMTI3NTEsMTMxMjc2LDIwMDU4LDEzMTIxMCwyMDk5NCwxNzU1Myw0MDg4MCwyMDg3Miw0MDg4MSwxNjEyODcsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCw2NTUwNiw2NTUwOCw2NTI4Nyw2NTI4MiwxMjg0OSw4NDcwLDg0ODEsMTI0NDMsMTI0NDQsMTE5MDQsMTE5MDgsMTE5MTAsMTE5MTEsMTE5MTIsMTE5MTQsMTE5MTYsMTE5MTcsMTE5MjUsMTE5MzIsMTE5MzMsMTE5NDEsMTE5NDMsMTE5NDYsMTE5NDgsMTE5NTAsMTE5'@; put 'NTgsMTE5NjQsMTE5NjYsMTE5NzQsMTE5NzgsMTE5ODAsMTE5ODEsMTE5ODMsMTE5OTAsMTE5OTEsMTE5OTgsMTIwMDMsbnVsbCxudWxsLG51bGwsNjQzLDU5Miw2MDMsNTk2LDYyOSwzMzksMjQ4LDMzMSw2NTAsNjE4LDIwMDM0LDIwMDYwLDIwOTgxLDIxMjc0LDIxMzc4LDE5OTc1LDE5OTgw'@; put 'LDIwMDM5LDIwMTA5LDIyMjMxLDY0MDEyLDIzNjYyLDI0NDM1LDE5OTgzLDIwODcxLDE5OTgyLDIwMDE0LDIwMTE1LDIwMTYyLDIwMTY5LDIwMTY4LDIwODg4LDIxMjQ0LDIxMzU2LDIxNDMzLDIyMzA0LDIyNzg3LDIyODI4LDIzNTY4LDI0MDYzLDI2MDgxLDI3NTcxLDI3NTk2LDI3NjY4LDI5'@; put 'MjQ3LDIwMDE3LDIwMDI4LDIwMjAwLDIwMTg4LDIwMjAxLDIwMTkzLDIwMTg5LDIwMTg2LDIxMDA0LDIxMjc2LDIxMzI0LDIyMzA2LDIyMzA3LDIyODA3LDIyODMxLDIzNDI1LDIzNDI4LDIzNTcwLDIzNjExLDIzNjY4LDIzNjY3LDI0MDY4LDI0MTkyLDI0MTk0LDI0NTIxLDI1MDk3LDI1MTY4'@; put 'LDI3NjY5LDI3NzAyLDI3NzE1LDI3NzExLDI3NzA3LDI5MzU4LDI5MzYwLDI5NTc4LDMxMTYwLDMyOTA2LDM4NDMwLDIwMjM4LDIwMjQ4LDIwMjY4LDIwMjEzLDIwMjQ0LDIwMjA5LDIwMjI0LDIwMjE1LDIwMjMyLDIwMjUzLDIwMjI2LDIwMjI5LDIwMjU4LDIwMjQzLDIwMjI4LDIwMjEyLDIw'@; put 'MjQyLDIwOTEzLDIxMDExLDIxMDAxLDIxMDA4LDIxMTU4LDIxMjgyLDIxMjc5LDIxMzI1LDIxMzg2LDIxNTExLDIyMjQxLDIyMjM5LDIyMzE4LDIyMzE0LDIyMzI0LDIyODQ0LDIyOTEyLDIyOTA4LDIyOTE3LDIyOTA3LDIyOTEwLDIyOTAzLDIyOTExLDIzMzgyLDIzNTczLDIzNTg5LDIzNjc2'@; put 'LDIzNjc0LDIzNjc1LDIzNjc4LDI0MDMxLDI0MTgxLDI0MTk2LDI0MzIyLDI0MzQ2LDI0NDM2LDI0NTMzLDI0NTMyLDI0NTI3LDI1MTgwLDI1MTgyLDI1MTg4LDI1MTg1LDI1MTkwLDI1MTg2LDI1MTc3LDI1MTg0LDI1MTc4LDI1MTg5LDI2MDk1LDI2MDk0LDI2NDMwLDI2NDI1LDI2NDI0LDI2'@; put 'NDI3LDI2NDI2LDI2NDMxLDI2NDI4LDI2NDE5LDI3NjcyLDI3NzE4LDI3NzMwLDI3NzQwLDI3NzI3LDI3NzIyLDI3NzMyLDI3NzIzLDI3NzI0LDI4Nzg1LDI5Mjc4LDI5MzY0LDI5MzY1LDI5NTgyLDI5OTk0LDMwMzM1LDMxMzQ5LDMyNTkzLDMzNDAwLDMzNDA0LDMzNDA4LDMzNDA1LDMzNDA3'@; put 'LDM0MzgxLDM1MTk4LDM3MDE3LDM3MDE1LDM3MDE2LDM3MDE5LDM3MDEyLDM4NDM0LDM4NDM2LDM4NDMyLDM4NDM1LDIwMzEwLDIwMjgzLDIwMzIyLDIwMjk3LDIwMzA3LDIwMzI0LDIwMjg2LDIwMzI3LDIwMzA2LDIwMzE5LDIwMjg5LDIwMzEyLDIwMjY5LDIwMjc1LDIwMjg3LDIwMzIxLDIw'@; put 'ODc5LDIwOTIxLDIxMDIwLDIxMDIyLDIxMDI1LDIxMTY1LDIxMTY2LDIxMjU3LDIxMzQ3LDIxMzYyLDIxMzkwLDIxMzkxLDIxNTUyLDIxNTU5LDIxNTQ2LDIxNTg4LDIxNTczLDIxNTI5LDIxNTMyLDIxNTQxLDIxNTI4LDIxNTY1LDIxNTgzLDIxNTY5LDIxNTQ0LDIxNTQwLDIxNTc1LDIyMjU0'@; put 'LDIyMjQ3LDIyMjQ1LDIyMzM3LDIyMzQxLDIyMzQ4LDIyMzQ1LDIyMzQ3LDIyMzU0LDIyNzkwLDIyODQ4LDIyOTUwLDIyOTM2LDIyOTQ0LDIyOTM1LDIyOTI2LDIyOTQ2LDIyOTI4LDIyOTI3LDIyOTUxLDIyOTQ1LDIzNDM4LDIzNDQyLDIzNTkyLDIzNTk0LDIzNjkzLDIzNjk1LDIzNjg4LDIz'@; put 'NjkxLDIzNjg5LDIzNjk4LDIzNjkwLDIzNjg2LDIzNjk5LDIzNzAxLDI0MDMyLDI0MDc0LDI0MDc4LDI0MjAzLDI0MjAxLDI0MjA0LDI0MjAwLDI0MjA1LDI0MzI1LDI0MzQ5LDI0NDQwLDI0NDM4LDI0NTMwLDI0NTI5LDI0NTI4LDI0NTU3LDI0NTUyLDI0NTU4LDI0NTYzLDI0NTQ1LDI0NTQ4'@; put 'LDI0NTQ3LDI0NTcwLDI0NTU5LDI0NTY3LDI0NTcxLDI0NTc2LDI0NTY0LDI1MTQ2LDI1MjE5LDI1MjI4LDI1MjMwLDI1MjMxLDI1MjM2LDI1MjIzLDI1MjAxLDI1MjExLDI1MjEwLDI1MjAwLDI1MjE3LDI1MjI0LDI1MjA3LDI1MjEzLDI1MjAyLDI1MjA0LDI1OTExLDI2MDk2LDI2MTAwLDI2'@; put 'MDk5LDI2MDk4LDI2MTAxLDI2NDM3LDI2NDM5LDI2NDU3LDI2NDUzLDI2NDQ0LDI2NDQwLDI2NDYxLDI2NDQ1LDI2NDU4LDI2NDQzLDI3NjAwLDI3NjczLDI3Njc0LDI3NzY4LDI3NzUxLDI3NzU1LDI3NzgwLDI3Nzg3LDI3NzkxLDI3NzYxLDI3NzU5LDI3NzUzLDI3ODAyLDI3NzU3LDI3Nzgz'@; put 'LDI3Nzk3LDI3ODA0LDI3NzUwLDI3NzYzLDI3NzQ5LDI3NzcxLDI3NzkwLDI4Nzg4LDI4Nzk0LDI5MjgzLDI5Mzc1LDI5MzczLDI5Mzc5LDI5MzgyLDI5Mzc3LDI5MzcwLDI5MzgxLDI5NTg5LDI5NTkxLDI5NTg3LDI5NTg4LDI5NTg2LDMwMDEwLDMwMDA5LDMwMTAwLDMwMTAxLDMwMzM3LDMx'@; put 'MDM3LDMyODIwLDMyOTE3LDMyOTIxLDMyOTEyLDMyOTE0LDMyOTI0LDMzNDI0LDMzNDIzLDMzNDEzLDMzNDIyLDMzNDI1LDMzNDI3LDMzNDE4LDMzNDExLDMzNDEyLDM1OTYwLDM2ODA5LDM2Nzk5LDM3MDIzLDM3MDI1LDM3MDI5LDM3MDIyLDM3MDMxLDM3MDI0LDM4NDQ4LDM4NDQwLDM4NDQ3'@; put 'LDM4NDQ1LDIwMDE5LDIwMzc2LDIwMzQ4LDIwMzU3LDIwMzQ5LDIwMzUyLDIwMzU5LDIwMzQyLDIwMzQwLDIwMzYxLDIwMzU2LDIwMzQzLDIwMzAwLDIwMzc1LDIwMzMwLDIwMzc4LDIwMzQ1LDIwMzUzLDIwMzQ0LDIwMzY4LDIwMzgwLDIwMzcyLDIwMzgyLDIwMzcwLDIwMzU0LDIwMzczLDIw'@; put 'MzMxLDIwMzM0LDIwODk0LDIwOTI0LDIwOTI2LDIxMDQ1LDIxMDQyLDIxMDQzLDIxMDYyLDIxMDQxLDIxMTgwLDIxMjU4LDIxMjU5LDIxMzA4LDIxMzk0LDIxMzk2LDIxNjM5LDIxNjMxLDIxNjMzLDIxNjQ5LDIxNjM0LDIxNjQwLDIxNjExLDIxNjI2LDIxNjMwLDIxNjA1LDIxNjEyLDIxNjIw'@; put 'LDIxNjA2LDIxNjQ1LDIxNjE1LDIxNjAxLDIxNjAwLDIxNjU2LDIxNjAzLDIxNjA3LDIxNjA0LDIyMjYzLDIyMjY1LDIyMzgzLDIyMzg2LDIyMzgxLDIyMzc5LDIyMzg1LDIyMzg0LDIyMzkwLDIyNDAwLDIyMzg5LDIyMzk1LDIyMzg3LDIyMzg4LDIyMzcwLDIyMzc2LDIyMzk3LDIyNzk2LDIy'@; put 'ODUzLDIyOTY1LDIyOTcwLDIyOTkxLDIyOTkwLDIyOTYyLDIyOTg4LDIyOTc3LDIyOTY2LDIyOTcyLDIyOTc5LDIyOTk4LDIyOTYxLDIyOTczLDIyOTc2LDIyOTg0LDIyOTY0LDIyOTgzLDIzMzk0LDIzMzk3LDIzNDQzLDIzNDQ1LDIzNjIwLDIzNjIzLDIzNzI2LDIzNzE2LDIzNzEyLDIzNzMz'@; put 'LDIzNzI3LDIzNzIwLDIzNzI0LDIzNzExLDIzNzE1LDIzNzI1LDIzNzE0LDIzNzIyLDIzNzE5LDIzNzA5LDIzNzE3LDIzNzM0LDIzNzI4LDIzNzE4LDI0MDg3LDI0MDg0LDI0MDg5LDI0MzYwLDI0MzU0LDI0MzU1LDI0MzU2LDI0NDA0LDI0NDUwLDI0NDQ2LDI0NDQ1LDI0NTQyLDI0NTQ5LDI0'@; put 'NjIxLDI0NjE0LDI0NjAxLDI0NjI2LDI0NTg3LDI0NjI4LDI0NTg2LDI0NTk5LDI0NjI3LDI0NjAyLDI0NjA2LDI0NjIwLDI0NjEwLDI0NTg5LDI0NTkyLDI0NjIyLDI0NTk1LDI0NTkzLDI0NTg4LDI0NTg1LDI0NjA0LDI1MTA4LDI1MTQ5LDI1MjYxLDI1MjY4LDI1Mjk3LDI1Mjc4LDI1MjU4'@; put 'LDI1MjcwLDI1MjkwLDI1MjYyLDI1MjY3LDI1MjYzLDI1Mjc1LDI1MjU3LDI1MjY0LDI1MjcyLDI1OTE3LDI2MDI0LDI2MDQzLDI2MTIxLDI2MTA4LDI2MTE2LDI2MTMwLDI2MTIwLDI2MTA3LDI2MTE1LDI2MTIzLDI2MTI1LDI2MTE3LDI2MTA5LDI2MTI5LDI2MTI4LDI2MzU4LDI2Mzc4LDI2'@; put 'NTAxLDI2NDc2LDI2NTEwLDI2NTE0LDI2NDg2LDI2NDkxLDI2NTIwLDI2NTAyLDI2NTAwLDI2NDg0LDI2NTA5LDI2NTA4LDI2NDkwLDI2NTI3LDI2NTEzLDI2NTIxLDI2NDk5LDI2NDkzLDI2NDk3LDI2NDg4LDI2NDg5LDI2NTE2LDI3NDI5LDI3NTIwLDI3NTE4LDI3NjE0LDI3Njc3LDI3Nzk1'@; put 'LDI3ODg0LDI3ODgzLDI3ODg2LDI3ODY1LDI3ODMwLDI3ODYwLDI3ODIxLDI3ODc5LDI3ODMxLDI3ODU2LDI3ODQyLDI3ODM0LDI3ODQzLDI3ODQ2LDI3ODg1LDI3ODkwLDI3ODU4LDI3ODY5LDI3ODI4LDI3Nzg2LDI3ODA1LDI3Nzc2LDI3ODcwLDI3ODQwLDI3OTUyLDI3ODUzLDI3ODQ3LDI3'@; put 'ODI0LDI3ODk3LDI3ODU1LDI3ODgxLDI3ODU3LDI4ODIwLDI4ODI0LDI4ODA1LDI4ODE5LDI4ODA2LDI4ODA0LDI4ODE3LDI4ODIyLDI4ODAyLDI4ODI2LDI4ODAzLDI5MjkwLDI5Mzk4LDI5Mzg3LDI5NDAwLDI5Mzg1LDI5NDA0LDI5Mzk0LDI5Mzk2LDI5NDAyLDI5Mzg4LDI5MzkzLDI5NjA0'@; put 'LDI5NjAxLDI5NjEzLDI5NjA2LDI5NjAyLDI5NjAwLDI5NjEyLDI5NTk3LDI5OTE3LDI5OTI4LDMwMDE1LDMwMDE2LDMwMDE0LDMwMDkyLDMwMTA0LDMwMzgzLDMwNDUxLDMwNDQ5LDMwNDQ4LDMwNDUzLDMwNzEyLDMwNzE2LDMwNzEzLDMwNzE1LDMwNzE0LDMwNzExLDMxMDQyLDMxMDM5LDMx'@; put 'MTczLDMxMzUyLDMxMzU1LDMxNDgzLDMxODYxLDMxOTk3LDMyODIxLDMyOTExLDMyOTQyLDMyOTMxLDMyOTUyLDMyOTQ5LDMyOTQxLDMzMzEyLDMzNDQwLDMzNDcyLDMzNDUxLDMzNDM0LDMzNDMyLDMzNDM1LDMzNDYxLDMzNDQ3LDMzNDU0LDMzNDY4LDMzNDM4LDMzNDY2LDMzNDYwLDMzNDQ4'@; put 'LDMzNDQxLDMzNDQ5LDMzNDc0LDMzNDQ0LDMzNDc1LDMzNDYyLDMzNDQyLDM0NDE2LDM0NDE1LDM0NDEzLDM0NDE0LDM1OTI2LDM2ODE4LDM2ODExLDM2ODE5LDM2ODEzLDM2ODIyLDM2ODIxLDM2ODIzLDM3MDQyLDM3MDQ0LDM3MDM5LDM3MDQzLDM3MDQwLDM4NDU3LDM4NDYxLDM4NDYwLDM4'@; put 'NDU4LDM4NDY3LDIwNDI5LDIwNDIxLDIwNDM1LDIwNDAyLDIwNDI1LDIwNDI3LDIwNDE3LDIwNDM2LDIwNDQ0LDIwNDQxLDIwNDExLDIwNDAzLDIwNDQzLDIwNDIzLDIwNDM4LDIwNDEwLDIwNDE2LDIwNDA5LDIwNDYwLDIxMDYwLDIxMDY1LDIxMTg0LDIxMTg2LDIxMzA5LDIxMzcyLDIxMzk5'@; put 'LDIxMzk4LDIxNDAxLDIxNDAwLDIxNjkwLDIxNjY1LDIxNjc3LDIxNjY5LDIxNzExLDIxNjk5LDMzNTQ5LDIxNjg3LDIxNjc4LDIxNzE4LDIxNjg2LDIxNzAxLDIxNzAyLDIxNjY0LDIxNjE2LDIxNjkyLDIxNjY2LDIxNjk0LDIxNjE4LDIxNzI2LDIxNjgwLDIyNDUzLDIyNDMwLDIyNDMxLDIy'@; put 'NDM2LDIyNDEyLDIyNDIzLDIyNDI5LDIyNDI3LDIyNDIwLDIyNDI0LDIyNDE1LDIyNDI1LDIyNDM3LDIyNDI2LDIyNDIxLDIyNzcyLDIyNzk3LDIyODY3LDIzMDA5LDIzMDA2LDIzMDIyLDIzMDQwLDIzMDI1LDIzMDA1LDIzMDM0LDIzMDM3LDIzMDM2LDIzMDMwLDIzMDEyLDIzMDI2LDIzMDMx'@; put 'LDIzMDAzLDIzMDE3LDIzMDI3LDIzMDI5LDIzMDA4LDIzMDM4LDIzMDI4LDIzMDIxLDIzNDY0LDIzNjI4LDIzNzYwLDIzNzY4LDIzNzU2LDIzNzY3LDIzNzU1LDIzNzcxLDIzNzc0LDIzNzcwLDIzNzUzLDIzNzUxLDIzNzU0LDIzNzY2LDIzNzYzLDIzNzY0LDIzNzU5LDIzNzUyLDIzNzUwLDIz'@; put 'NzU4LDIzNzc1LDIzODAwLDI0MDU3LDI0MDk3LDI0MDk4LDI0MDk5LDI0MDk2LDI0MTAwLDI0MjQwLDI0MjI4LDI0MjI2LDI0MjE5LDI0MjI3LDI0MjI5LDI0MzI3LDI0MzY2LDI0NDA2LDI0NDU0LDI0NjMxLDI0NjMzLDI0NjYwLDI0NjkwLDI0NjcwLDI0NjQ1LDI0NjU5LDI0NjQ3LDI0NjQ5'@; put 'LDI0NjY3LDI0NjUyLDI0NjQwLDI0NjQyLDI0NjcxLDI0NjEyLDI0NjQ0LDI0NjY0LDI0Njc4LDI0Njg2LDI1MTU0LDI1MTU1LDI1Mjk1LDI1MzU3LDI1MzU1LDI1MzMzLDI1MzU4LDI1MzQ3LDI1MzIzLDI1MzM3LDI1MzU5LDI1MzU2LDI1MzM2LDI1MzM0LDI1MzQ0LDI1MzYzLDI1MzY0LDI1'@; put 'MzM4LDI1MzY1LDI1MzM5LDI1MzI4LDI1OTIxLDI1OTIzLDI2MDI2LDI2MDQ3LDI2MTY2LDI2MTQ1LDI2MTYyLDI2MTY1LDI2MTQwLDI2MTUwLDI2MTQ2LDI2MTYzLDI2MTU1LDI2MTcwLDI2MTQxLDI2MTY0LDI2MTY5LDI2MTU4LDI2MzgzLDI2Mzg0LDI2NTYxLDI2NjEwLDI2NTY4LDI2NTU0'@; put 'LDI2NTg4LDI2NTU1LDI2NjE2LDI2NTg0LDI2NTYwLDI2NTUxLDI2NTY1LDI2NjAzLDI2NTk2LDI2NTkxLDI2NTQ5LDI2NTczLDI2NTQ3LDI2NjE1LDI2NjE0LDI2NjA2LDI2NTk1LDI2NTYyLDI2NTUzLDI2NTc0LDI2NTk5LDI2NjA4LDI2NTQ2LDI2NjIwLDI2NTY2LDI2NjA1LDI2NTcyLDI2'@; put 'NTQyLDI2NTk4LDI2NTg3LDI2NjE4LDI2NTY5LDI2NTcwLDI2NTYzLDI2NjAyLDI2NTcxLDI3NDMyLDI3NTIyLDI3NTI0LDI3NTc0LDI3NjA2LDI3NjA4LDI3NjE2LDI3NjgwLDI3NjgxLDI3OTQ0LDI3OTU2LDI3OTQ5LDI3OTM1LDI3OTY0LDI3OTY3LDI3OTIyLDI3OTE0LDI3ODY2LDI3OTU1'@; put 'LDI3OTA4LDI3OTI5LDI3OTYyLDI3OTMwLDI3OTIxLDI3OTA0LDI3OTMzLDI3OTcwLDI3OTA1LDI3OTI4LDI3OTU5LDI3OTA3LDI3OTE5LDI3OTY4LDI3OTExLDI3OTM2LDI3OTQ4LDI3OTEyLDI3OTM4LDI3OTEzLDI3OTIwLDI4ODU1LDI4ODMxLDI4ODYyLDI4ODQ5LDI4ODQ4LDI4ODMzLDI4'@; put 'ODUyLDI4ODUzLDI4ODQxLDI5MjQ5LDI5MjU3LDI5MjU4LDI5MjkyLDI5Mjk2LDI5Mjk5LDI5Mjk0LDI5Mzg2LDI5NDEyLDI5NDE2LDI5NDE5LDI5NDA3LDI5NDE4LDI5NDE0LDI5NDExLDI5NTczLDI5NjQ0LDI5NjM0LDI5NjQwLDI5NjM3LDI5NjI1LDI5NjIyLDI5NjIxLDI5NjIwLDI5Njc1'@; put 'LDI5NjMxLDI5NjM5LDI5NjMwLDI5NjM1LDI5NjM4LDI5NjI0LDI5NjQzLDI5OTMyLDI5OTM0LDI5OTk4LDMwMDIzLDMwMDI0LDMwMTE5LDMwMTIyLDMwMzI5LDMwNDA0LDMwNDcyLDMwNDY3LDMwNDY4LDMwNDY5LDMwNDc0LDMwNDU1LDMwNDU5LDMwNDU4LDMwNjk1LDMwNjk2LDMwNzI2LDMw'@; put 'NzM3LDMwNzM4LDMwNzI1LDMwNzM2LDMwNzM1LDMwNzM0LDMwNzI5LDMwNzIzLDMwNzM5LDMxMDUwLDMxMDUyLDMxMDUxLDMxMDQ1LDMxMDQ0LDMxMTg5LDMxMTgxLDMxMTgzLDMxMTkwLDMxMTgyLDMxMzYwLDMxMzU4LDMxNDQxLDMxNDg4LDMxNDg5LDMxODY2LDMxODY0LDMxODY1LDMxODcx'@; put 'LDMxODcyLDMxODczLDMyMDAzLDMyMDA4LDMyMDAxLDMyNjAwLDMyNjU3LDMyNjUzLDMyNzAyLDMyNzc1LDMyNzgyLDMyNzgzLDMyNzg4LDMyODIzLDMyOTg0LDMyOTY3LDMyOTkyLDMyOTc3LDMyOTY4LDMyOTYyLDMyOTc2LDMyOTY1LDMyOTk1LDMyOTg1LDMyOTg4LDMyOTcwLDMyOTgxLDMy'@; put 'OTY5LDMyOTc1LDMyOTgzLDMyOTk4LDMyOTczLDMzMjc5LDMzMzEzLDMzNDI4LDMzNDk3LDMzNTM0LDMzNTI5LDMzNTQzLDMzNTEyLDMzNTM2LDMzNDkzLDMzNTk0LDMzNTE1LDMzNDk0LDMzNTI0LDMzNTE2LDMzNTA1LDMzNTIyLDMzNTI1LDMzNTQ4LDMzNTMxLDMzNTI2LDMzNTIwLDMzNTE0'@; put 'LDMzNTA4LDMzNTA0LDMzNTMwLDMzNTIzLDMzNTE3LDM0NDIzLDM0NDIwLDM0NDI4LDM0NDE5LDM0ODgxLDM0ODk0LDM0OTE5LDM0OTIyLDM0OTIxLDM1MjgzLDM1MzMyLDM1MzM1LDM2MjEwLDM2ODM1LDM2ODMzLDM2ODQ2LDM2ODMyLDM3MTA1LDM3MDUzLDM3MDU1LDM3MDc3LDM3MDYxLDM3'@; put 'MDU0LDM3MDYzLDM3MDY3LDM3MDY0LDM3MzMyLDM3MzMxLDM4NDg0LDM4NDc5LDM4NDgxLDM4NDgzLDM4NDc0LDM4NDc4LDIwNTEwLDIwNDg1LDIwNDg3LDIwNDk5LDIwNTE0LDIwNTI4LDIwNTA3LDIwNDY5LDIwNDY4LDIwNTMxLDIwNTM1LDIwNTI0LDIwNDcwLDIwNDcxLDIwNTAzLDIwNTA4'@; put 'LDIwNTEyLDIwNTE5LDIwNTMzLDIwNTI3LDIwNTI5LDIwNDk0LDIwODI2LDIwODg0LDIwODgzLDIwOTM4LDIwOTMyLDIwOTMzLDIwOTM2LDIwOTQyLDIxMDg5LDIxMDgyLDIxMDc0LDIxMDg2LDIxMDg3LDIxMDc3LDIxMDkwLDIxMTk3LDIxMjYyLDIxNDA2LDIxNzk4LDIxNzMwLDIxNzgzLDIx'@; put 'Nzc4LDIxNzM1LDIxNzQ3LDIxNzMyLDIxNzg2LDIxNzU5LDIxNzY0LDIxNzY4LDIxNzM5LDIxNzc3LDIxNzY1LDIxNzQ1LDIxNzcwLDIxNzU1LDIxNzUxLDIxNzUyLDIxNzI4LDIxNzc0LDIxNzYzLDIxNzcxLDIyMjczLDIyMjc0LDIyNDc2LDIyNTc4LDIyNDg1LDIyNDgyLDIyNDU4LDIyNDcw'@; put 'LDIyNDYxLDIyNDYwLDIyNDU2LDIyNDU0LDIyNDYzLDIyNDcxLDIyNDgwLDIyNDU3LDIyNDY1LDIyNzk4LDIyODU4LDIzMDY1LDIzMDYyLDIzMDg1LDIzMDg2LDIzMDYxLDIzMDU1LDIzMDYzLDIzMDUwLDIzMDcwLDIzMDkxLDIzNDA0LDIzNDYzLDIzNDY5LDIzNDY4LDIzNTU1LDIzNjM4LDIz'@; put 'NjM2LDIzNzg4LDIzODA3LDIzNzkwLDIzNzkzLDIzNzk5LDIzODA4LDIzODAxLDI0MTA1LDI0MTA0LDI0MjMyLDI0MjM4LDI0MjM0LDI0MjM2LDI0MzcxLDI0MzY4LDI0NDIzLDI0NjY5LDI0NjY2LDI0Njc5LDI0NjQxLDI0NzM4LDI0NzEyLDI0NzA0LDI0NzIyLDI0NzA1LDI0NzMzLDI0NzA3'@; put 'LDI0NzI1LDI0NzMxLDI0NzI3LDI0NzExLDI0NzMyLDI0NzE4LDI1MTEzLDI1MTU4LDI1MzMwLDI1MzYwLDI1NDMwLDI1Mzg4LDI1NDEyLDI1NDEzLDI1Mzk4LDI1NDExLDI1NTcyLDI1NDAxLDI1NDE5LDI1NDE4LDI1NDA0LDI1Mzg1LDI1NDA5LDI1Mzk2LDI1NDMyLDI1NDI4LDI1NDMzLDI1'@; put 'Mzg5LDI1NDE1LDI1Mzk1LDI1NDM0LDI1NDI1LDI1NDAwLDI1NDMxLDI1NDA4LDI1NDE2LDI1OTMwLDI1OTI2LDI2MDU0LDI2MDUxLDI2MDUyLDI2MDUwLDI2MTg2LDI2MjA3LDI2MTgzLDI2MTkzLDI2Mzg2LDI2Mzg3LDI2NjU1LDI2NjUwLDI2Njk3LDI2Njc0LDI2Njc1LDI2NjgzLDI2Njk5'@; put 'LDI2NzAzLDI2NjQ2LDI2NjczLDI2NjUyLDI2Njc3LDI2NjY3LDI2NjY5LDI2NjcxLDI2NzAyLDI2NjkyLDI2Njc2LDI2NjUzLDI2NjQyLDI2NjQ0LDI2NjYyLDI2NjY0LDI2NjcwLDI2NzAxLDI2NjgyLDI2NjYxLDI2NjU2LDI3NDM2LDI3NDM5LDI3NDM3LDI3NDQxLDI3NDQ0LDI3NTAxLDMy'@; put 'ODk4LDI3NTI4LDI3NjIyLDI3NjIwLDI3NjI0LDI3NjE5LDI3NjE4LDI3NjIzLDI3Njg1LDI4MDI2LDI4MDAzLDI4MDA0LDI4MDIyLDI3OTE3LDI4MDAxLDI4MDUwLDI3OTkyLDI4MDAyLDI4MDEzLDI4MDE1LDI4MDQ5LDI4MDQ1LDI4MTQzLDI4MDMxLDI4MDM4LDI3OTk4LDI4MDA3LDI4ZTMs'@; put 'MjgwNTUsMjgwMTYsMjgwMjgsMjc5OTksMjgwMzQsMjgwNTYsMjc5NTEsMjgwMDgsMjgwNDMsMjgwMzAsMjgwMzIsMjgwMzYsMjc5MjYsMjgwMzUsMjgwMjcsMjgwMjksMjgwMjEsMjgwNDgsMjg4OTIsMjg4ODMsMjg4ODEsMjg4OTMsMjg4NzUsMzI1NjksMjg4OTgsMjg4ODcsMjg4ODIsMjg4'@; put 'OTQsMjg4OTYsMjg4ODQsMjg4NzcsMjg4NjksMjg4NzAsMjg4NzEsMjg4OTAsMjg4NzgsMjg4OTcsMjkyNTAsMjkzMDQsMjkzMDMsMjkzMDIsMjk0NDAsMjk0MzQsMjk0MjgsMjk0MzgsMjk0MzAsMjk0MjcsMjk0MzUsMjk0NDEsMjk2NTEsMjk2NTcsMjk2NjksMjk2NTQsMjk2MjgsMjk2NzEs'@; put 'Mjk2NjcsMjk2NzMsMjk2NjAsMjk2NTAsMjk2NTksMjk2NTIsMjk2NjEsMjk2NTgsMjk2NTUsMjk2NTYsMjk2NzIsMjk5MTgsMjk5MTksMjk5NDAsMjk5NDEsMjk5ODUsMzAwNDMsMzAwNDcsMzAxMjgsMzAxNDUsMzAxMzksMzAxNDgsMzAxNDQsMzAxNDMsMzAxMzQsMzAxMzgsMzAzNDYsMzA0'@; put 'MDksMzA0OTMsMzA0OTEsMzA0ODAsMzA0ODMsMzA0ODIsMzA0OTksMzA0ODEsMzA0ODUsMzA0ODksMzA0OTAsMzA0OTgsMzA1MDMsMzA3NTUsMzA3NjQsMzA3NTQsMzA3NzMsMzA3NjcsMzA3NjAsMzA3NjYsMzA3NjMsMzA3NTMsMzA3NjEsMzA3NzEsMzA3NjIsMzA3NjksMzEwNjAsMzEwNjcs'@; put 'MzEwNTUsMzEwNjgsMzEwNTksMzEwNTgsMzEwNTcsMzEyMTEsMzEyMTIsMzEyMDAsMzEyMTQsMzEyMTMsMzEyMTAsMzExOTYsMzExOTgsMzExOTcsMzEzNjYsMzEzNjksMzEzNjUsMzEzNzEsMzEzNzIsMzEzNzAsMzEzNjcsMzE0NDgsMzE1MDQsMzE0OTIsMzE1MDcsMzE0OTMsMzE1MDMsMzE0'@; put 'OTYsMzE0OTgsMzE1MDIsMzE0OTcsMzE1MDYsMzE4NzYsMzE4ODksMzE4ODIsMzE4ODQsMzE4ODAsMzE4ODUsMzE4NzcsMzIwMzAsMzIwMjksMzIwMTcsMzIwMTQsMzIwMjQsMzIwMjIsMzIwMTksMzIwMzEsMzIwMTgsMzIwMTUsMzIwMTIsMzI2MDQsMzI2MDksMzI2MDYsMzI2MDgsMzI2MDUs'@; put 'MzI2MDMsMzI2NjIsMzI2NTgsMzI3MDcsMzI3MDYsMzI3MDQsMzI3OTAsMzI4MzAsMzI4MjUsMzMwMTgsMzMwMTAsMzMwMTcsMzMwMTMsMzMwMjUsMzMwMTksMzMwMjQsMzMyODEsMzMzMjcsMzMzMTcsMzM1ODcsMzM1ODEsMzM2MDQsMzM1NjEsMzM2MTcsMzM1NzMsMzM2MjIsMzM1OTksMzM2'@; put 'MDEsMzM1NzQsMzM1NjQsMzM1NzAsMzM2MDIsMzM2MTQsMzM1NjMsMzM1NzgsMzM1NDQsMzM1OTYsMzM2MTMsMzM1NTgsMzM1NzIsMzM1NjgsMzM1OTEsMzM1ODMsMzM1NzcsMzM2MDcsMzM2MDUsMzM2MTIsMzM2MTksMzM1NjYsMzM1ODAsMzM2MTEsMzM1NzUsMzM2MDgsMzQzODcsMzQzODYs'@; put 'MzQ0NjYsMzQ0NzIsMzQ0NTQsMzQ0NDUsMzQ0NDksMzQ0NjIsMzQ0MzksMzQ0NTUsMzQ0MzgsMzQ0NDMsMzQ0NTgsMzQ0MzcsMzQ0NjksMzQ0NTcsMzQ0NjUsMzQ0NzEsMzQ0NTMsMzQ0NTYsMzQ0NDYsMzQ0NjEsMzQ0NDgsMzQ0NTIsMzQ4ODMsMzQ4ODQsMzQ5MjUsMzQ5MzMsMzQ5MzQsMzQ5'@; put 'MzAsMzQ5NDQsMzQ5MjksMzQ5NDMsMzQ5MjcsMzQ5NDcsMzQ5NDIsMzQ5MzIsMzQ5NDAsMzUzNDYsMzU5MTEsMzU5MjcsMzU5NjMsMzYwMDQsMzYwMDMsMzYyMTQsMzYyMTYsMzYyNzcsMzYyNzksMzYyNzgsMzY1NjEsMzY1NjMsMzY4NjIsMzY4NTMsMzY4NjYsMzY4NjMsMzY4NTksMzY4Njgs'@; put 'MzY4NjAsMzY4NTQsMzcwNzgsMzcwODgsMzcwODEsMzcwODIsMzcwOTEsMzcwODcsMzcwOTMsMzcwODAsMzcwODMsMzcwNzksMzcwODQsMzcwOTIsMzcyMDAsMzcxOTgsMzcxOTksMzczMzMsMzczNDYsMzczMzgsMzg0OTIsMzg0OTUsMzg1ODgsMzkxMzksMzk2NDcsMzk3MjcsMjAwOTUsMjA1'@; put 'OTIsMjA1ODYsMjA1NzcsMjA1NzQsMjA1NzYsMjA1NjMsMjA1NTUsMjA1NzMsMjA1OTQsMjA1NTIsMjA1NTcsMjA1NDUsMjA1NzEsMjA1NTQsMjA1NzgsMjA1MDEsMjA1NDksMjA1NzUsMjA1ODUsMjA1ODcsMjA1NzksMjA1ODAsMjA1NTAsMjA1NDQsMjA1OTAsMjA1OTUsMjA1NjcsMjA1NjEs'@; put 'MjA5NDQsMjEwOTksMjExMDEsMjExMDAsMjExMDIsMjEyMDYsMjEyMDMsMjEyOTMsMjE0MDQsMjE4NzcsMjE4NzgsMjE4MjAsMjE4MzcsMjE4NDAsMjE4MTIsMjE4MDIsMjE4NDEsMjE4NTgsMjE4MTQsMjE4MTMsMjE4MDgsMjE4NDIsMjE4MjksMjE3NzIsMjE4MTAsMjE4NjEsMjE4MzgsMjE4'@; put 'MTcsMjE4MzIsMjE4MDUsMjE4MTksMjE4MjQsMjE4MzUsMjIyODIsMjIyNzksMjI1MjMsMjI1NDgsMjI0OTgsMjI1MTgsMjI0OTIsMjI1MTYsMjI1MjgsMjI1MDksMjI1MjUsMjI1MzYsMjI1MjAsMjI1MzksMjI1MTUsMjI0NzksMjI1MzUsMjI1MTAsMjI0OTksMjI1MTQsMjI1MDEsMjI1MDgs'@; put 'MjI0OTcsMjI1NDIsMjI1MjQsMjI1NDQsMjI1MDMsMjI1MjksMjI1NDAsMjI1MTMsMjI1MDUsMjI1MTIsMjI1NDEsMjI1MzIsMjI4NzYsMjMxMzYsMjMxMjgsMjMxMjUsMjMxNDMsMjMxMzQsMjMwOTYsMjMwOTMsMjMxNDksMjMxMjAsMjMxMzUsMjMxNDEsMjMxNDgsMjMxMjMsMjMxNDAsMjMx'@; put 'MjcsMjMxMDcsMjMxMzMsMjMxMjIsMjMxMDgsMjMxMzEsMjMxMTIsMjMxODIsMjMxMDIsMjMxMTcsMjMwOTcsMjMxMTYsMjMxNTIsMjMxNDUsMjMxMTEsMjMxMjEsMjMxMjYsMjMxMDYsMjMxMzIsMjM0MTAsMjM0MDYsMjM0ODksMjM0ODgsMjM2NDEsMjM4MzgsMjM4MTksMjM4MzcsMjM4MzQs'@; put 'MjM4NDAsMjM4MjAsMjM4NDgsMjM4MjEsMjM4NDYsMjM4NDUsMjM4MjMsMjM4NTYsMjM4MjYsMjM4NDMsMjM4MzksMjM4NTQsMjQxMjYsMjQxMTYsMjQyNDEsMjQyNDQsMjQyNDksMjQyNDIsMjQyNDMsMjQzNzQsMjQzNzYsMjQ0NzUsMjQ0NzAsMjQ0NzksMjQ3MTQsMjQ3MjAsMjQ3MTAsMjQ3'@; put 'NjYsMjQ3NTIsMjQ3NjIsMjQ3ODcsMjQ3ODgsMjQ3ODMsMjQ4MDQsMjQ3OTMsMjQ3OTcsMjQ3NzYsMjQ3NTMsMjQ3OTUsMjQ3NTksMjQ3NzgsMjQ3NjcsMjQ3NzEsMjQ3ODEsMjQ3NjgsMjUzOTQsMjU0NDUsMjU0ODIsMjU0NzQsMjU0NjksMjU1MzMsMjU1MDIsMjU1MTcsMjU1MDEsMjU0OTUs'@; put 'MjU1MTUsMjU0ODYsMjU0NTUsMjU0NzksMjU0ODgsMjU0NTQsMjU1MTksMjU0NjEsMjU1MDAsMjU0NTMsMjU1MTgsMjU0NjgsMjU1MDgsMjU0MDMsMjU1MDMsMjU0NjQsMjU0NzcsMjU0NzMsMjU0ODksMjU0ODUsMjU0NTYsMjU5MzksMjYwNjEsMjYyMTMsMjYyMDksMjYyMDMsMjYyMDEsMjYy'@; put 'MDQsMjYyMTAsMjYzOTIsMjY3NDUsMjY3NTksMjY3NjgsMjY3ODAsMjY3MzMsMjY3MzQsMjY3OTgsMjY3OTUsMjY5NjYsMjY3MzUsMjY3ODcsMjY3OTYsMjY3OTMsMjY3NDEsMjY3NDAsMjY4MDIsMjY3NjcsMjY3NDMsMjY3NzAsMjY3NDgsMjY3MzEsMjY3MzgsMjY3OTQsMjY3NTIsMjY3Mzcs'@; put 'MjY3NTAsMjY3NzksMjY3NzQsMjY3NjMsMjY3ODQsMjY3NjEsMjY3ODgsMjY3NDQsMjY3NDcsMjY3NjksMjY3NjQsMjY3NjIsMjY3NDksMjc0NDYsMjc0NDMsMjc0NDcsMjc0NDgsMjc1MzcsMjc1MzUsMjc1MzMsMjc1MzQsMjc1MzIsMjc2OTAsMjgwOTYsMjgwNzUsMjgwODQsMjgwODMsMjgy'@; put 'NzYsMjgwNzYsMjgxMzcsMjgxMzAsMjgwODcsMjgxNTAsMjgxMTYsMjgxNjAsMjgxMDQsMjgxMjgsMjgxMjcsMjgxMTgsMjgwOTQsMjgxMzMsMjgxMjQsMjgxMjUsMjgxMjMsMjgxNDgsMjgxMDYsMjgwOTMsMjgxNDEsMjgxNDQsMjgwOTAsMjgxMTcsMjgwOTgsMjgxMTEsMjgxMDUsMjgxMTIs'@; put 'MjgxNDYsMjgxMTUsMjgxNTcsMjgxMTksMjgxMDksMjgxMzEsMjgwOTEsMjg5MjIsMjg5NDEsMjg5MTksMjg5NTEsMjg5MTYsMjg5NDAsMjg5MTIsMjg5MzIsMjg5MTUsMjg5NDQsMjg5MjQsMjg5MjcsMjg5MzQsMjg5NDcsMjg5MjgsMjg5MjAsMjg5MTgsMjg5MzksMjg5MzAsMjg5NDIsMjkz'@; put 'MTAsMjkzMDcsMjkzMDgsMjkzMTEsMjk0NjksMjk0NjMsMjk0NDcsMjk0NTcsMjk0NjQsMjk0NTAsMjk0NDgsMjk0MzksMjk0NTUsMjk0NzAsMjk1NzYsMjk2ODYsMjk2ODgsMjk2ODUsMjk3MDAsMjk2OTcsMjk2OTMsMjk3MDMsMjk2OTYsMjk2OTAsMjk2OTIsMjk2OTUsMjk3MDgsMjk3MDcs'@; put 'Mjk2ODQsMjk3MDQsMzAwNTIsMzAwNTEsMzAxNTgsMzAxNjIsMzAxNTksMzAxNTUsMzAxNTYsMzAxNjEsMzAxNjAsMzAzNTEsMzAzNDUsMzA0MTksMzA1MjEsMzA1MTEsMzA1MDksMzA1MTMsMzA1MTQsMzA1MTYsMzA1MTUsMzA1MjUsMzA1MDEsMzA1MjMsMzA1MTcsMzA3OTIsMzA4MDIsMzA3'@; put 'OTMsMzA3OTcsMzA3OTQsMzA3OTYsMzA3NTgsMzA3ODksMzA4MDAsMzEwNzYsMzEwNzksMzEwODEsMzEwODIsMzEwNzUsMzEwODMsMzEwNzMsMzExNjMsMzEyMjYsMzEyMjQsMzEyMjIsMzEyMjMsMzEzNzUsMzEzODAsMzEzNzYsMzE1NDEsMzE1NTksMzE1NDAsMzE1MjUsMzE1MzYsMzE1MjIs'@; put 'MzE1MjQsMzE1MzksMzE1MTIsMzE1MzAsMzE1MTcsMzE1MzcsMzE1MzEsMzE1MzMsMzE1MzUsMzE1MzgsMzE1NDQsMzE1MTQsMzE1MjMsMzE4OTIsMzE4OTYsMzE4OTQsMzE5MDcsMzIwNTMsMzIwNjEsMzIwNTYsMzIwNTQsMzIwNTgsMzIwNjksMzIwNDQsMzIwNDEsMzIwNjUsMzIwNzEsMzIw'@; put 'NjIsMzIwNjMsMzIwNzQsMzIwNTksMzIwNDAsMzI2MTEsMzI2NjEsMzI2NjgsMzI2NjksMzI2NjcsMzI3MTQsMzI3MTUsMzI3MTcsMzI3MjAsMzI3MjEsMzI3MTEsMzI3MTksMzI3MTMsMzI3OTksMzI3OTgsMzI3OTUsMzI4MzksMzI4MzUsMzI4NDAsMzMwNDgsMzMwNjEsMzMwNDksMzMwNTEs'@; put 'MzMwNjksMzMwNTUsMzMwNjgsMzMwNTQsMzMwNTcsMzMwNDUsMzMwNjMsMzMwNTMsMzMwNTgsMzMyOTcsMzMzMzYsMzMzMzEsMzMzMzgsMzMzMzIsMzMzMzAsMzMzOTYsMzM2ODAsMzM2OTksMzM3MDQsMzM2NzcsMzM2NTgsMzM2NTEsMzM3MDAsMzM2NTIsMzM2NzksMzM2NjUsMzM2ODUsMzM2'@; put 'ODksMzM2NTMsMzM2ODQsMzM3MDUsMzM2NjEsMzM2NjcsMzM2NzYsMzM2OTMsMzM2OTEsMzM3MDYsMzM2NzUsMzM2NjIsMzM3MDEsMzM3MTEsMzM2NzIsMzM2ODcsMzM3MTIsMzM2NjMsMzM3MDIsMzM2NzEsMzM3MTAsMzM2NTQsMzM2OTAsMzQzOTMsMzQzOTAsMzQ0OTUsMzQ0ODcsMzQ0OTgs'@; put 'MzQ0OTcsMzQ1MDEsMzQ0OTAsMzQ0ODAsMzQ1MDQsMzQ0ODksMzQ0ODMsMzQ0ODgsMzQ1MDgsMzQ0ODQsMzQ0OTEsMzQ0OTIsMzQ0OTksMzQ0OTMsMzQ0OTQsMzQ4OTgsMzQ5NTMsMzQ5NjUsMzQ5ODQsMzQ5NzgsMzQ5ODYsMzQ5NzAsMzQ5NjEsMzQ5NzcsMzQ5NzUsMzQ5NjgsMzQ5ODMsMzQ5'@; put 'NjksMzQ5NzEsMzQ5NjcsMzQ5ODAsMzQ5ODgsMzQ5NTYsMzQ5NjMsMzQ5NTgsMzUyMDIsMzUyODYsMzUyODksMzUyODUsMzUzNzYsMzUzNjcsMzUzNzIsMzUzNTgsMzU4OTcsMzU4OTksMzU5MzIsMzU5MzMsMzU5NjUsMzYwMDUsMzYyMjEsMzYyMTksMzYyMTcsMzYyODQsMzYyOTAsMzYyODEs'@; put 'MzYyODcsMzYyODksMzY1NjgsMzY1NzQsMzY1NzMsMzY1NzIsMzY1NjcsMzY1NzYsMzY1NzcsMzY5MDAsMzY4NzUsMzY4ODEsMzY4OTIsMzY4NzYsMzY4OTcsMzcxMDMsMzcwOTgsMzcxMDQsMzcxMDgsMzcxMDYsMzcxMDcsMzcwNzYsMzcwOTksMzcxMDAsMzcwOTcsMzcyMDYsMzcyMDgsMzcy'@; put 'MTAsMzcyMDMsMzcyMDUsMzczNTYsMzczNjQsMzczNjEsMzczNjMsMzczNjgsMzczNDgsMzczNjksMzczNTQsMzczNTUsMzczNjcsMzczNTIsMzczNTgsMzgyNjYsMzgyNzgsMzgyODAsMzg1MjQsMzg1MDksMzg1MDcsMzg1MTMsMzg1MTEsMzg1OTEsMzg3NjIsMzg5MTYsMzkxNDEsMzkzMTks'@; put 'MjA2MzUsMjA2MjksMjA2MjgsMjA2MzgsMjA2MTksMjA2NDMsMjA2MTEsMjA2MjAsMjA2MjIsMjA2MzcsMjA1ODQsMjA2MzYsMjA2MjYsMjA2MTAsMjA2MTUsMjA4MzEsMjA5NDgsMjEyNjYsMjEyNjUsMjE0MTIsMjE0MTUsMjE5MDUsMjE5MjgsMjE5MjUsMjE5MzMsMjE4NzksMjIwODUsMjE5'@; put 'MjIsMjE5MDcsMjE4OTYsMjE5MDMsMjE5NDEsMjE4ODksMjE5MjMsMjE5MDYsMjE5MjQsMjE4ODUsMjE5MDAsMjE5MjYsMjE4ODcsMjE5MDksMjE5MjEsMjE5MDIsMjIyODQsMjI1NjksMjI1ODMsMjI1NTMsMjI1NTgsMjI1NjcsMjI1NjMsMjI1NjgsMjI1MTcsMjI2MDAsMjI1NjUsMjI1NTYs'@; put 'MjI1NTUsMjI1NzksMjI1OTEsMjI1ODIsMjI1NzQsMjI1ODUsMjI1ODQsMjI1NzMsMjI1NzIsMjI1ODcsMjI4ODEsMjMyMTUsMjMxODgsMjMxOTksMjMxNjIsMjMyMDIsMjMxOTgsMjMxNjAsMjMyMDYsMjMxNjQsMjMyMDUsMjMyMTIsMjMxODksMjMyMTQsMjMwOTUsMjMxNzIsMjMxNzgsMjMx'@; put 'OTEsMjMxNzEsMjMxNzksMjMyMDksMjMxNjMsMjMxNjUsMjMxODAsMjMxOTYsMjMxODMsMjMxODcsMjMxOTcsMjM1MzAsMjM1MDEsMjM0OTksMjM1MDgsMjM1MDUsMjM0OTgsMjM1MDIsMjM1NjQsMjM2MDAsMjM4NjMsMjM4NzUsMjM5MTUsMjM4NzMsMjM4ODMsMjM4NzEsMjM4NjEsMjM4ODks'@; put 'MjM4ODYsMjM4OTMsMjM4NTksMjM4NjYsMjM4OTAsMjM4NjksMjM4NTcsMjM4OTcsMjM4NzQsMjM4NjUsMjM4ODEsMjM4NjQsMjM4NjgsMjM4NTgsMjM4NjIsMjM4NzIsMjM4NzcsMjQxMzIsMjQxMjksMjQ0MDgsMjQ0ODYsMjQ0ODUsMjQ0OTEsMjQ3NzcsMjQ3NjEsMjQ3ODAsMjQ4MDIsMjQ3'@; put 'ODIsMjQ3NzIsMjQ4NTIsMjQ4MTgsMjQ4NDIsMjQ4NTQsMjQ4MzcsMjQ4MjEsMjQ4NTEsMjQ4MjQsMjQ4MjgsMjQ4MzAsMjQ3NjksMjQ4MzUsMjQ4NTYsMjQ4NjEsMjQ4NDgsMjQ4MzEsMjQ4MzYsMjQ4NDMsMjUxNjIsMjU0OTIsMjU1MjEsMjU1MjAsMjU1NTAsMjU1NzMsMjU1NzYsMjU1ODMs'@; put 'MjU1MzksMjU3NTcsMjU1ODcsMjU1NDYsMjU1NjgsMjU1OTAsMjU1NTcsMjU1ODYsMjU1ODksMjU2OTcsMjU1NjcsMjU1MzQsMjU1NjUsMjU1NjQsMjU1NDAsMjU1NjAsMjU1NTUsMjU1MzgsMjU1NDMsMjU1NDgsMjU1NDcsMjU1NDQsMjU1ODQsMjU1NTksMjU1NjEsMjU5MDYsMjU5NTksMjU5'@; put 'NjIsMjU5NTYsMjU5NDgsMjU5NjAsMjU5NTcsMjU5OTYsMjYwMTMsMjYwMTQsMjYwMzAsMjYwNjQsMjYwNjYsMjYyMzYsMjYyMjAsMjYyMzUsMjYyNDAsMjYyMjUsMjYyMzMsMjYyMTgsMjYyMjYsMjYzNjksMjY4OTIsMjY4MzUsMjY4ODQsMjY4NDQsMjY5MjIsMjY4NjAsMjY4NTgsMjY4NjUs'@; put 'MjY4OTUsMjY4MzgsMjY4NzEsMjY4NTksMjY4NTIsMjY4NzAsMjY4OTksMjY4OTYsMjY4NjcsMjY4NDksMjY4ODcsMjY4MjgsMjY4ODgsMjY5OTIsMjY4MDQsMjY4OTcsMjY4NjMsMjY4MjIsMjY5MDAsMjY4NzIsMjY4MzIsMjY4NzcsMjY4NzYsMjY4NTYsMjY4OTEsMjY4OTAsMjY5MDMsMjY4'@; put 'MzAsMjY4MjQsMjY4NDUsMjY4NDYsMjY4NTQsMjY4NjgsMjY4MzMsMjY4ODYsMjY4MzYsMjY4NTcsMjY5MDEsMjY5MTcsMjY4MjMsMjc0NDksMjc0NTEsMjc0NTUsMjc0NTIsMjc1NDAsMjc1NDMsMjc1NDUsMjc1NDEsMjc1ODEsMjc2MzIsMjc2MzQsMjc2MzUsMjc2OTYsMjgxNTYsMjgyMzAs'@; put 'MjgyMzEsMjgxOTEsMjgyMzMsMjgyOTYsMjgyMjAsMjgyMjEsMjgyMjksMjgyNTgsMjgyMDMsMjgyMjMsMjgyMjUsMjgyNTMsMjgyNzUsMjgxODgsMjgyMTEsMjgyMzUsMjgyMjQsMjgyNDEsMjgyMTksMjgxNjMsMjgyMDYsMjgyNTQsMjgyNjQsMjgyNTIsMjgyNTcsMjgyMDksMjgyMDAsMjgy'@; put 'NTYsMjgyNzMsMjgyNjcsMjgyMTcsMjgxOTQsMjgyMDgsMjgyNDMsMjgyNjEsMjgxOTksMjgyODAsMjgyNjAsMjgyNzksMjgyNDUsMjgyODEsMjgyNDIsMjgyNjIsMjgyMTMsMjgyMTQsMjgyNTAsMjg5NjAsMjg5NTgsMjg5NzUsMjg5MjMsMjg5NzQsMjg5NzcsMjg5NjMsMjg5NjUsMjg5NjIs'@; put 'Mjg5NzgsMjg5NTksMjg5NjgsMjg5ODYsMjg5NTUsMjkyNTksMjkyNzQsMjkzMjAsMjkzMjEsMjkzMTgsMjkzMTcsMjkzMjMsMjk0NTgsMjk0NTEsMjk0ODgsMjk0NzQsMjk0ODksMjk0OTEsMjk0NzksMjk0OTAsMjk0ODUsMjk0NzgsMjk0NzUsMjk0OTMsMjk0NTIsMjk3NDIsMjk3NDAsMjk3'@; put 'NDQsMjk3MzksMjk3MTgsMjk3MjIsMjk3MjksMjk3NDEsMjk3NDUsMjk3MzIsMjk3MzEsMjk3MjUsMjk3MzcsMjk3MjgsMjk3NDYsMjk5NDcsMjk5OTksMzAwNjMsMzAwNjAsMzAxODMsMzAxNzAsMzAxNzcsMzAxODIsMzAxNzMsMzAxNzUsMzAxODAsMzAxNjcsMzAzNTcsMzAzNTQsMzA0MjYs'@; put 'MzA1MzQsMzA1MzUsMzA1MzIsMzA1NDEsMzA1MzMsMzA1MzgsMzA1NDIsMzA1MzksMzA1NDAsMzA2ODYsMzA3MDAsMzA4MTYsMzA4MjAsMzA4MjEsMzA4MTIsMzA4MjksMzA4MzMsMzA4MjYsMzA4MzAsMzA4MzIsMzA4MjUsMzA4MjQsMzA4MTQsMzA4MTgsMzEwOTIsMzEwOTEsMzEwOTAsMzEw'@; put 'ODgsMzEyMzQsMzEyNDIsMzEyMzUsMzEyNDQsMzEyMzYsMzEzODUsMzE0NjIsMzE0NjAsMzE1NjIsMzE1NDcsMzE1NTYsMzE1NjAsMzE1NjQsMzE1NjYsMzE1NTIsMzE1NzYsMzE1NTcsMzE5MDYsMzE5MDIsMzE5MTIsMzE5MDUsMzIwODgsMzIxMTEsMzIwOTksMzIwODMsMzIwODYsMzIxMDMs'@; put 'MzIxMDYsMzIwNzksMzIxMDksMzIwOTIsMzIxMDcsMzIwODIsMzIwODQsMzIxMDUsMzIwODEsMzIwOTUsMzIwNzgsMzI1NzQsMzI1NzUsMzI2MTMsMzI2MTQsMzI2NzQsMzI2NzIsMzI2NzMsMzI3MjcsMzI4NDksMzI4NDcsMzI4NDgsMzMwMjIsMzI5ODAsMzMwOTEsMzMwOTgsMzMxMDYsMzMx'@; put 'MDMsMzMwOTUsMzMwODUsMzMxMDEsMzMwODIsMzMyNTQsMzMyNjIsMzMyNzEsMzMyNzIsMzMyNzMsMzMyODQsMzMzNDAsMzMzNDEsMzMzNDMsMzMzOTcsMzM1OTUsMzM3NDMsMzM3ODUsMzM4MjcsMzM3MjgsMzM3NjgsMzM4MTAsMzM3NjcsMzM3NjQsMzM3ODgsMzM3ODIsMzM4MDgsMzM3MzQs'@; put 'MzM3MzYsMzM3NzEsMzM3NjMsMzM3MjcsMzM3OTMsMzM3NTcsMzM3NjUsMzM3NTIsMzM3OTEsMzM3NjEsMzM3MzksMzM3NDIsMzM3NTAsMzM3ODEsMzM3MzcsMzM4MDEsMzM4MDcsMzM3NTgsMzM4MDksMzM3OTgsMzM3MzAsMzM3NzksMzM3NDksMzM3ODYsMzM3MzUsMzM3NDUsMzM3NzAsMzM4'@; put 'MTEsMzM3MzEsMzM3NzIsMzM3NzQsMzM3MzIsMzM3ODcsMzM3NTEsMzM3NjIsMzM4MTksMzM3NTUsMzM3OTAsMzQ1MjAsMzQ1MzAsMzQ1MzQsMzQ1MTUsMzQ1MzEsMzQ1MjIsMzQ1MzgsMzQ1MjUsMzQ1MzksMzQ1MjQsMzQ1NDAsMzQ1MzcsMzQ1MTksMzQ1MzYsMzQ1MTMsMzQ4ODgsMzQ5MDIs'@; put 'MzQ5MDEsMzUwMDIsMzUwMzEsMzUwMDEsMzVlMywzNTAwOCwzNTAwNiwzNDk5OCwzNTAwNCwzNDk5OSwzNTAwNSwzNDk5NCwzNTA3MywzNTAxNywzNTIyMSwzNTIyNCwzNTIyMywzNTI5MywzNTI5MCwzNTI5MSwzNTQwNiwzNTQwNSwzNTM4NSwzNTQxNywzNTM5MiwzNTQxNSwzNTQxNiwzNTM5'@; put 'NiwzNTM5NywzNTQxMCwzNTQwMCwzNTQwOSwzNTQwMiwzNTQwNCwzNTQwNywzNTkzNSwzNTk2OSwzNTk2OCwzNjAyNiwzNjAzMCwzNjAxNiwzNjAyNSwzNjAyMSwzNjIyOCwzNjIyNCwzNjIzMywzNjMxMiwzNjMwNywzNjMwMSwzNjI5NSwzNjMxMCwzNjMxNiwzNjMwMywzNjMwOSwzNjMxMywz'@; put 'NjI5NiwzNjMxMSwzNjI5MywzNjU5MSwzNjU5OSwzNjYwMiwzNjYwMSwzNjU4MiwzNjU5MCwzNjU4MSwzNjU5NywzNjU4MywzNjU4NCwzNjU5OCwzNjU4NywzNjU5MywzNjU4OCwzNjU5NiwzNjU4NSwzNjkwOSwzNjkxNiwzNjkxMSwzNzEyNiwzNzE2NCwzNzEyNCwzNzExOSwzNzExNiwzNzEy'@; put 'OCwzNzExMywzNzExNSwzNzEyMSwzNzEyMCwzNzEyNywzNzEyNSwzNzEyMywzNzIxNywzNzIyMCwzNzIxNSwzNzIxOCwzNzIxNiwzNzM3NywzNzM4NiwzNzQxMywzNzM3OSwzNzQwMiwzNzQxNCwzNzM5MSwzNzM4OCwzNzM3NiwzNzM5NCwzNzM3NSwzNzM3MywzNzM4MiwzNzM4MCwzNzQxNSwz'@; put 'NzM3OCwzNzQwNCwzNzQxMiwzNzQwMSwzNzM5OSwzNzM4MSwzNzM5OCwzODI2NywzODI4NSwzODI4NCwzODI4OCwzODUzNSwzODUyNiwzODUzNiwzODUzNywzODUzMSwzODUyOCwzODU5NCwzODYwMCwzODU5NSwzODY0MSwzODY0MCwzODc2NCwzODc2OCwzODc2NiwzODkxOSwzOTA4MSwzOTE0'@; put 'Nyw0MDE2Niw0MDY5NywyMDA5OSwyMDEwMCwyMDE1MCwyMDY2OSwyMDY3MSwyMDY3OCwyMDY1NCwyMDY3NiwyMDY4MiwyMDY2MCwyMDY4MCwyMDY3NCwyMDY1NiwyMDY3MywyMDY2NiwyMDY1NywyMDY4MywyMDY4MSwyMDY2MiwyMDY2NCwyMDk1MSwyMTExNCwyMTExMiwyMTExNSwyMTExNiwy'@; put 'MTk1NSwyMTk3OSwyMTk2NCwyMTk2OCwyMTk2MywyMTk2MiwyMTk4MSwyMTk1MiwyMTk3MiwyMTk1NiwyMTk5MywyMTk1MSwyMTk3MCwyMTkwMSwyMTk2NywyMTk3MywyMTk4NiwyMTk3NCwyMTk2MCwyMjAwMiwyMTk2NSwyMTk3NywyMTk1NCwyMjI5MiwyMjYxMSwyMjYzMiwyMjYyOCwyMjYw'@; put 'NywyMjYwNSwyMjYwMSwyMjYzOSwyMjYxMywyMjYwNiwyMjYyMSwyMjYxNywyMjYyOSwyMjYxOSwyMjU4OSwyMjYyNywyMjY0MSwyMjc4MCwyMzIzOSwyMzIzNiwyMzI0MywyMzIyNiwyMzIyNCwyMzIxNywyMzIyMSwyMzIxNiwyMzIzMSwyMzI0MCwyMzIyNywyMzIzOCwyMzIyMywyMzIzMiwy'@; put 'MzI0MiwyMzIyMCwyMzIyMiwyMzI0NSwyMzIyNSwyMzE4NCwyMzUxMCwyMzUxMiwyMzUxMywyMzU4MywyMzYwMywyMzkyMSwyMzkwNywyMzg4MiwyMzkwOSwyMzkyMiwyMzkxNiwyMzkwMiwyMzkxMiwyMzkxMSwyMzkwNiwyNDA0OCwyNDE0MywyNDE0MiwyNDEzOCwyNDE0MSwyNDEzOSwyNDI2'@; put 'MSwyNDI2OCwyNDI2MiwyNDI2NywyNDI2MywyNDM4NCwyNDQ5NSwyNDQ5MywyNDgyMywyNDkwNSwyNDkwNiwyNDg3NSwyNDkwMSwyNDg4NiwyNDg4MiwyNDg3OCwyNDkwMiwyNDg3OSwyNDkxMSwyNDg3MywyNDg5NiwyNTEyMCwzNzIyNCwyNTEyMywyNTEyNSwyNTEyNCwyNTU0MSwyNTU4NSwy'@; put 'NTU3OSwyNTYxNiwyNTYxOCwyNTYwOSwyNTYzMiwyNTYzNiwyNTY1MSwyNTY2NywyNTYzMSwyNTYyMSwyNTYyNCwyNTY1NywyNTY1NSwyNTYzNCwyNTYzNSwyNTYxMiwyNTYzOCwyNTY0OCwyNTY0MCwyNTY2NSwyNTY1MywyNTY0NywyNTYxMCwyNTYyNiwyNTY2NCwyNTYzNywyNTYzOSwyNTYx'@; put 'MSwyNTU3NSwyNTYyNywyNTY0NiwyNTYzMywyNTYxNCwyNTk2NywyNjAwMiwyNjA2NywyNjI0NiwyNjI1MiwyNjI2MSwyNjI1NiwyNjI1MSwyNjI1MCwyNjI2NSwyNjI2MCwyNjIzMiwyNjQwMCwyNjk4MiwyNjk3NSwyNjkzNiwyNjk1OCwyNjk3OCwyNjk5MywyNjk0MywyNjk0OSwyNjk4Niwy'@; put 'NjkzNywyNjk0NiwyNjk2NywyNjk2OSwyNzAwMiwyNjk1MiwyNjk1MywyNjkzMywyNjk4OCwyNjkzMSwyNjk0MSwyNjk4MSwyNjg2NCwyN2UzLDI2OTMyLDI2OTg1LDI2OTQ0LDI2OTkxLDI2OTQ4LDI2OTk4LDI2OTY4LDI2OTQ1LDI2OTk2LDI2OTU2LDI2OTM5LDI2OTU1LDI2OTM1LDI2OTcy'@; put 'LDI2OTU5LDI2OTYxLDI2OTMwLDI2OTYyLDI2OTI3LDI3MDAzLDI2OTQwLDI3NDYyLDI3NDYxLDI3NDU5LDI3NDU4LDI3NDY0LDI3NDU3LDI3NTQ3LDY0MDEzLDI3NjQzLDI3NjQ0LDI3NjQxLDI3NjM5LDI3NjQwLDI4MzE1LDI4Mzc0LDI4MzYwLDI4MzAzLDI4MzUyLDI4MzE5LDI4MzA3LDI4'@; put 'MzA4LDI4MzIwLDI4MzM3LDI4MzQ1LDI4MzU4LDI4MzcwLDI4MzQ5LDI4MzUzLDI4MzE4LDI4MzYxLDI4MzQzLDI4MzM2LDI4MzY1LDI4MzI2LDI4MzY3LDI4MzM4LDI4MzUwLDI4MzU1LDI4MzgwLDI4Mzc2LDI4MzEzLDI4MzA2LDI4MzAyLDI4MzAxLDI4MzI0LDI4MzIxLDI4MzUxLDI4MzM5'@; put 'LDI4MzY4LDI4MzYyLDI4MzExLDI4MzM0LDI4MzIzLDI4OTk5LDI5MDEyLDI5MDEwLDI5MDI3LDI5MDI0LDI4OTkzLDI5MDIxLDI5MDI2LDI5MDQyLDI5MDQ4LDI5MDM0LDI5MDI1LDI4OTk0LDI5MDE2LDI4OTk1LDI5MDAzLDI5MDQwLDI5MDIzLDI5MDA4LDI5MDExLDI4OTk2LDI5MDA1LDI5'@; put 'MDE4LDI5MjYzLDI5MzI1LDI5MzI0LDI5MzI5LDI5MzI4LDI5MzI2LDI5NTAwLDI5NTA2LDI5NDk5LDI5NDk4LDI5NTA0LDI5NTE0LDI5NTEzLDI5NzY0LDI5NzcwLDI5NzcxLDI5Nzc4LDI5Nzc3LDI5NzgzLDI5NzYwLDI5Nzc1LDI5Nzc2LDI5Nzc0LDI5NzYyLDI5NzY2LDI5NzczLDI5Nzgw'@; put 'LDI5OTIxLDI5OTUxLDI5OTUwLDI5OTQ5LDI5OTgxLDMwMDczLDMwMDcxLDI3MDExLDMwMTkxLDMwMjIzLDMwMjExLDMwMTk5LDMwMjA2LDMwMjA0LDMwMjAxLDMwMjAwLDMwMjI0LDMwMjAzLDMwMTk4LDMwMTg5LDMwMTk3LDMwMjA1LDMwMzYxLDMwMzg5LDMwNDI5LDMwNTQ5LDMwNTU5LDMw'@; put 'NTYwLDMwNTQ2LDMwNTUwLDMwNTU0LDMwNTY5LDMwNTY3LDMwNTQ4LDMwNTUzLDMwNTczLDMwNjg4LDMwODU1LDMwODc0LDMwODY4LDMwODYzLDMwODUyLDMwODY5LDMwODUzLDMwODU0LDMwODgxLDMwODUxLDMwODQxLDMwODczLDMwODQ4LDMwODcwLDMwODQzLDMxMTAwLDMxMTA2LDMxMTAx'@; put 'LDMxMDk3LDMxMjQ5LDMxMjU2LDMxMjU3LDMxMjUwLDMxMjU1LDMxMjUzLDMxMjY2LDMxMjUxLDMxMjU5LDMxMjQ4LDMxMzk1LDMxMzk0LDMxMzkwLDMxNDY3LDMxNTkwLDMxNTg4LDMxNTk3LDMxNjA0LDMxNTkzLDMxNjAyLDMxNTg5LDMxNjAzLDMxNjAxLDMxNjAwLDMxNTg1LDMxNjA4LDMx'@; put 'NjA2LDMxNTg3LDMxOTIyLDMxOTI0LDMxOTE5LDMyMTM2LDMyMTM0LDMyMTI4LDMyMTQxLDMyMTI3LDMyMTMzLDMyMTIyLDMyMTQyLDMyMTIzLDMyMTMxLDMyMTI0LDMyMTQwLDMyMTQ4LDMyMTMyLDMyMTI1LDMyMTQ2LDMyNjIxLDMyNjE5LDMyNjE1LDMyNjE2LDMyNjIwLDMyNjc4LDMyNjc3'@; put 'LDMyNjc5LDMyNzMxLDMyNzMyLDMyODAxLDMzMTI0LDMzMTIwLDMzMTQzLDMzMTE2LDMzMTI5LDMzMTE1LDMzMTIyLDMzMTM4LDI2NDAxLDMzMTE4LDMzMTQyLDMzMTI3LDMzMTM1LDMzMDkyLDMzMTIxLDMzMzA5LDMzMzUzLDMzMzQ4LDMzMzQ0LDMzMzQ2LDMzMzQ5LDM0MDMzLDMzODU1LDMz'@; put 'ODc4LDMzOTEwLDMzOTEzLDMzOTM1LDMzOTMzLDMzODkzLDMzODczLDMzODU2LDMzOTI2LDMzODk1LDMzODQwLDMzODY5LDMzOTE3LDMzODgyLDMzODgxLDMzOTA4LDMzOTA3LDMzODg1LDM0MDU1LDMzODg2LDMzODQ3LDMzODUwLDMzODQ0LDMzOTE0LDMzODU5LDMzOTEyLDMzODQyLDMzODYx'@; put 'LDMzODMzLDMzNzUzLDMzODY3LDMzODM5LDMzODU4LDMzODM3LDMzODg3LDMzOTA0LDMzODQ5LDMzODcwLDMzODY4LDMzODc0LDMzOTAzLDMzOTg5LDMzOTM0LDMzODUxLDMzODYzLDMzODQ2LDMzODQzLDMzODk2LDMzOTE4LDMzODYwLDMzODM1LDMzODg4LDMzODc2LDMzOTAyLDMzODcyLDM0'@; put 'NTcxLDM0NTY0LDM0NTUxLDM0NTcyLDM0NTU0LDM0NTE4LDM0NTQ5LDM0NjM3LDM0NTUyLDM0NTc0LDM0NTY5LDM0NTYxLDM0NTUwLDM0NTczLDM0NTY1LDM1MDMwLDM1MDE5LDM1MDIxLDM1MDIyLDM1MDM4LDM1MDM1LDM1MDM0LDM1MDIwLDM1MDI0LDM1MjA1LDM1MjI3LDM1Mjk1LDM1MzAx'@; put 'LDM1MzAwLDM1Mjk3LDM1Mjk2LDM1Mjk4LDM1MjkyLDM1MzAyLDM1NDQ2LDM1NDYyLDM1NDU1LDM1NDI1LDM1MzkxLDM1NDQ3LDM1NDU4LDM1NDYwLDM1NDQ1LDM1NDU5LDM1NDU3LDM1NDQ0LDM1NDUwLDM1OTAwLDM1OTE1LDM1OTE0LDM1OTQxLDM1OTQwLDM1OTQyLDM1OTc0LDM1OTcyLDM1'@; put 'OTczLDM2MDQ0LDM2MjAwLDM2MjAxLDM2MjQxLDM2MjM2LDM2MjM4LDM2MjM5LDM2MjM3LDM2MjQzLDM2MjQ0LDM2MjQwLDM2MjQyLDM2MzM2LDM2MzIwLDM2MzMyLDM2MzM3LDM2MzM0LDM2MzA0LDM2MzI5LDM2MzIzLDM2MzIyLDM2MzI3LDM2MzM4LDM2MzMxLDM2MzQwLDM2NjE0LDM2NjA3'@; put 'LDM2NjA5LDM2NjA4LDM2NjEzLDM2NjE1LDM2NjE2LDM2NjEwLDM2NjE5LDM2OTQ2LDM2OTI3LDM2OTMyLDM2OTM3LDM2OTI1LDM3MTM2LDM3MTMzLDM3MTM1LDM3MTM3LDM3MTQyLDM3MTQwLDM3MTMxLDM3MTM0LDM3MjMwLDM3MjMxLDM3NDQ4LDM3NDU4LDM3NDI0LDM3NDM0LDM3NDc4LDM3'@; put 'NDI3LDM3NDc3LDM3NDcwLDM3NTA3LDM3NDIyLDM3NDUwLDM3NDQ2LDM3NDg1LDM3NDg0LDM3NDU1LDM3NDcyLDM3NDc5LDM3NDg3LDM3NDMwLDM3NDczLDM3NDg4LDM3NDI1LDM3NDYwLDM3NDc1LDM3NDU2LDM3NDkwLDM3NDU0LDM3NDU5LDM3NDUyLDM3NDYyLDM3NDI2LDM4MzAzLDM4MzAw'@; put 'LDM4MzAyLDM4Mjk5LDM4NTQ2LDM4NTQ3LDM4NTQ1LDM4NTUxLDM4NjA2LDM4NjUwLDM4NjUzLDM4NjQ4LDM4NjQ1LDM4NzcxLDM4Nzc1LDM4Nzc2LDM4NzcwLDM4OTI3LDM4OTI1LDM4OTI2LDM5MDg0LDM5MTU4LDM5MTYxLDM5MzQzLDM5MzQ2LDM5MzQ0LDM5MzQ5LDM5NTk3LDM5NTk1LDM5'@; put 'NzcxLDQwMTcwLDQwMTczLDQwMTY3LDQwNTc2LDQwNzAxLDIwNzEwLDIwNjkyLDIwNjk1LDIwNzEyLDIwNzIzLDIwNjk5LDIwNzE0LDIwNzAxLDIwNzA4LDIwNjkxLDIwNzE2LDIwNzIwLDIwNzE5LDIwNzA3LDIwNzA0LDIwOTUyLDIxMTIwLDIxMTIxLDIxMjI1LDIxMjI3LDIxMjk2LDIxNDIw'@; put 'LDIyMDU1LDIyMDM3LDIyMDI4LDIyMDM0LDIyMDEyLDIyMDMxLDIyMDQ0LDIyMDE3LDIyMDM1LDIyMDE4LDIyMDEwLDIyMDQ1LDIyMDIwLDIyMDE1LDIyMDA5LDIyNjY1LDIyNjUyLDIyNjcyLDIyNjgwLDIyNjYyLDIyNjU3LDIyNjU1LDIyNjQ0LDIyNjY3LDIyNjUwLDIyNjYzLDIyNjczLDIy'@; put 'NjcwLDIyNjQ2LDIyNjU4LDIyNjY0LDIyNjUxLDIyNjc2LDIyNjcxLDIyNzgyLDIyODkxLDIzMjYwLDIzMjc4LDIzMjY5LDIzMjUzLDIzMjc0LDIzMjU4LDIzMjc3LDIzMjc1LDIzMjgzLDIzMjY2LDIzMjY0LDIzMjU5LDIzMjc2LDIzMjYyLDIzMjYxLDIzMjU3LDIzMjcyLDIzMjYzLDIzNDE1'@; put 'LDIzNTIwLDIzNTIzLDIzNjUxLDIzOTM4LDIzOTM2LDIzOTMzLDIzOTQyLDIzOTMwLDIzOTM3LDIzOTI3LDIzOTQ2LDIzOTQ1LDIzOTQ0LDIzOTM0LDIzOTMyLDIzOTQ5LDIzOTI5LDIzOTM1LDI0MTUyLDI0MTUzLDI0MTQ3LDI0MjgwLDI0MjczLDI0Mjc5LDI0MjcwLDI0Mjg0LDI0Mjc3LDI0'@; put 'MjgxLDI0Mjc0LDI0Mjc2LDI0Mzg4LDI0Mzg3LDI0NDMxLDI0NTAyLDI0ODc2LDI0ODcyLDI0ODk3LDI0OTI2LDI0OTQ1LDI0OTQ3LDI0OTE0LDI0OTE1LDI0OTQ2LDI0OTQwLDI0OTYwLDI0OTQ4LDI0OTE2LDI0OTU0LDI0OTIzLDI0OTMzLDI0ODkxLDI0OTM4LDI0OTI5LDI0OTE4LDI1MTI5'@; put 'LDI1MTI3LDI1MTMxLDI1NjQzLDI1Njc3LDI1NjkxLDI1NjkzLDI1NzE2LDI1NzE4LDI1NzE0LDI1NzE1LDI1NzI1LDI1NzE3LDI1NzAyLDI1NzY2LDI1Njc4LDI1NzMwLDI1Njk0LDI1NjkyLDI1Njc1LDI1NjgzLDI1Njk2LDI1NjgwLDI1NzI3LDI1NjYzLDI1NzA4LDI1NzA3LDI1Njg5LDI1'@; put 'NzAxLDI1NzE5LDI1OTcxLDI2MDE2LDI2MjczLDI2MjcyLDI2MjcxLDI2MzczLDI2MzcyLDI2NDAyLDI3MDU3LDI3MDYyLDI3MDgxLDI3MDQwLDI3MDg2LDI3MDMwLDI3MDU2LDI3MDUyLDI3MDY4LDI3MDI1LDI3MDMzLDI3MDIyLDI3MDQ3LDI3MDIxLDI3MDQ5LDI3MDcwLDI3MDU1LDI3MDcx'@; put 'LDI3MDc2LDI3MDY5LDI3MDQ0LDI3MDkyLDI3MDY1LDI3MDgyLDI3MDM0LDI3MDg3LDI3MDU5LDI3MDI3LDI3MDUwLDI3MDQxLDI3MDM4LDI3MDk3LDI3MDMxLDI3MDI0LDI3MDc0LDI3MDYxLDI3MDQ1LDI3MDc4LDI3NDY2LDI3NDY5LDI3NDY3LDI3NTUwLDI3NTUxLDI3NTUyLDI3NTg3LDI3'@; put 'NTg4LDI3NjQ2LDI4MzY2LDI4NDA1LDI4NDAxLDI4NDE5LDI4NDUzLDI4NDA4LDI4NDcxLDI4NDExLDI4NDYyLDI4NDI1LDI4NDk0LDI4NDQxLDI4NDQyLDI4NDU1LDI4NDQwLDI4NDc1LDI4NDM0LDI4Mzk3LDI4NDI2LDI4NDcwLDI4NTMxLDI4NDA5LDI4Mzk4LDI4NDYxLDI4NDgwLDI4NDY0'@; put 'LDI4NDc2LDI4NDY5LDI4Mzk1LDI4NDIzLDI4NDMwLDI4NDgzLDI4NDIxLDI4NDEzLDI4NDA2LDI4NDczLDI4NDQ0LDI4NDEyLDI4NDc0LDI4NDQ3LDI4NDI5LDI4NDQ2LDI4NDI0LDI4NDQ5LDI5MDYzLDI5MDcyLDI5MDY1LDI5MDU2LDI5MDYxLDI5MDU4LDI5MDcxLDI5MDUxLDI5MDYyLDI5'@; put 'MDU3LDI5MDc5LDI5MjUyLDI5MjY3LDI5MzM1LDI5MzMzLDI5MzMxLDI5NTA3LDI5NTE3LDI5NTIxLDI5NTE2LDI5Nzk0LDI5ODExLDI5ODA5LDI5ODEzLDI5ODEwLDI5Nzk5LDI5ODA2LDI5OTUyLDI5OTU0LDI5OTU1LDMwMDc3LDMwMDk2LDMwMjMwLDMwMjE2LDMwMjIwLDMwMjI5LDMwMjI1'@; put 'LDMwMjE4LDMwMjI4LDMwMzkyLDMwNTkzLDMwNTg4LDMwNTk3LDMwNTk0LDMwNTc0LDMwNTkyLDMwNTc1LDMwNTkwLDMwNTk1LDMwODk4LDMwODkwLDMwOTAwLDMwODkzLDMwODg4LDMwODQ2LDMwODkxLDMwODc4LDMwODg1LDMwODgwLDMwODkyLDMwODgyLDMwODg0LDMxMTI4LDMxMTE0LDMx'@; put 'MTE1LDMxMTI2LDMxMTI1LDMxMTI0LDMxMTIzLDMxMTI3LDMxMTEyLDMxMTIyLDMxMTIwLDMxMjc1LDMxMzA2LDMxMjgwLDMxMjc5LDMxMjcyLDMxMjcwLDMxNDAwLDMxNDAzLDMxNDA0LDMxNDcwLDMxNjI0LDMxNjQ0LDMxNjI2LDMxNjMzLDMxNjMyLDMxNjM4LDMxNjI5LDMxNjI4LDMxNjQz'@; put 'LDMxNjMwLDMxNjIxLDMxNjQwLDIxMTI0LDMxNjQxLDMxNjUyLDMxNjE4LDMxOTMxLDMxOTM1LDMxOTMyLDMxOTMwLDMyMTY3LDMyMTgzLDMyMTk0LDMyMTYzLDMyMTcwLDMyMTkzLDMyMTkyLDMyMTk3LDMyMTU3LDMyMjA2LDMyMTk2LDMyMTk4LDMyMjAzLDMyMjA0LDMyMTc1LDMyMTg1LDMy'@; put 'MTUwLDMyMTg4LDMyMTU5LDMyMTY2LDMyMTc0LDMyMTY5LDMyMTYxLDMyMjAxLDMyNjI3LDMyNzM4LDMyNzM5LDMyNzQxLDMyNzM0LDMyODA0LDMyODYxLDMyODYwLDMzMTYxLDMzMTU4LDMzMTU1LDMzMTU5LDMzMTY1LDMzMTY0LDMzMTYzLDMzMzAxLDMzOTQzLDMzOTU2LDMzOTUzLDMzOTUx'@; put 'LDMzOTc4LDMzOTk4LDMzOTg2LDMzOTY0LDMzOTY2LDMzOTYzLDMzOTc3LDMzOTcyLDMzOTg1LDMzOTk3LDMzOTYyLDMzOTQ2LDMzOTY5LDM0ZTMsMzM5NDksMzM5NTksMzM5NzksMzM5NTQsMzM5NDAsMzM5OTEsMzM5OTYsMzM5NDcsMzM5NjEsMzM5NjcsMzM5NjAsMzQwMDYsMzM5NDQsMzM5'@; put 'NzQsMzM5OTksMzM5NTIsMzQwMDcsMzQwMDQsMzQwMDIsMzQwMTEsMzM5NjgsMzM5MzcsMzQ0MDEsMzQ2MTEsMzQ1OTUsMzQ2MDAsMzQ2NjcsMzQ2MjQsMzQ2MDYsMzQ1OTAsMzQ1OTMsMzQ1ODUsMzQ1ODcsMzQ2MjcsMzQ2MDQsMzQ2MjUsMzQ2MjIsMzQ2MzAsMzQ1OTIsMzQ2MTAsMzQ2MDIs'@; put 'MzQ2MDUsMzQ2MjAsMzQ1NzgsMzQ2MTgsMzQ2MDksMzQ2MTMsMzQ2MjYsMzQ1OTgsMzQ1OTksMzQ2MTYsMzQ1OTYsMzQ1ODYsMzQ2MDgsMzQ1NzcsMzUwNjMsMzUwNDcsMzUwNTcsMzUwNTgsMzUwNjYsMzUwNzAsMzUwNTQsMzUwNjgsMzUwNjIsMzUwNjcsMzUwNTYsMzUwNTIsMzUwNTEsMzUy'@; put 'MjksMzUyMzMsMzUyMzEsMzUyMzAsMzUzMDUsMzUzMDcsMzUzMDQsMzU0OTksMzU0ODEsMzU0NjcsMzU0NzQsMzU0NzEsMzU0NzgsMzU5MDEsMzU5NDQsMzU5NDUsMzYwNTMsMzYwNDcsMzYwNTUsMzYyNDYsMzYzNjEsMzYzNTQsMzYzNTEsMzYzNjUsMzYzNDksMzYzNjIsMzYzNTUsMzYzNTks'@; put 'MzYzNTgsMzYzNTcsMzYzNTAsMzYzNTIsMzYzNTYsMzY2MjQsMzY2MjUsMzY2MjIsMzY2MjEsMzcxNTUsMzcxNDgsMzcxNTIsMzcxNTQsMzcxNTEsMzcxNDksMzcxNDYsMzcxNTYsMzcxNTMsMzcxNDcsMzcyNDIsMzcyMzQsMzcyNDEsMzcyMzUsMzc1NDEsMzc1NDAsMzc0OTQsMzc1MzEsMzc0'@; put 'OTgsMzc1MzYsMzc1MjQsMzc1NDYsMzc1MTcsMzc1NDIsMzc1MzAsMzc1NDcsMzc0OTcsMzc1MjcsMzc1MDMsMzc1MzksMzc2MTQsMzc1MTgsMzc1MDYsMzc1MjUsMzc1MzgsMzc1MDEsMzc1MTIsMzc1MzcsMzc1MTQsMzc1MTAsMzc1MTYsMzc1MjksMzc1NDMsMzc1MDIsMzc1MTEsMzc1NDUs'@; put 'Mzc1MzMsMzc1MTUsMzc0MjEsMzg1NTgsMzg1NjEsMzg2NTUsMzg3NDQsMzg3ODEsMzg3NzgsMzg3ODIsMzg3ODcsMzg3ODQsMzg3ODYsMzg3NzksMzg3ODgsMzg3ODUsMzg3ODMsMzg4NjIsMzg4NjEsMzg5MzQsMzkwODUsMzkwODYsMzkxNzAsMzkxNjgsMzkxNzUsMzkzMjUsMzkzMjQsMzkz'@; put 'NjMsMzkzNTMsMzkzNTUsMzkzNTQsMzkzNjIsMzkzNTcsMzkzNjcsMzk2MDEsMzk2NTEsMzk2NTUsMzk3NDIsMzk3NDMsMzk3NzYsMzk3NzcsMzk3NzUsNDAxNzcsNDAxNzgsNDAxODEsNDA2MTUsMjA3MzUsMjA3MzksMjA3ODQsMjA3MjgsMjA3NDIsMjA3NDMsMjA3MjYsMjA3MzQsMjA3NDcs'@; put 'MjA3NDgsMjA3MzMsMjA3NDYsMjExMzEsMjExMzIsMjEyMzMsMjEyMzEsMjIwODgsMjIwODIsMjIwOTIsMjIwNjksMjIwODEsMjIwOTAsMjIwODksMjIwODYsMjIxMDQsMjIxMDYsMjIwODAsMjIwNjcsMjIwNzcsMjIwNjAsMjIwNzgsMjIwNzIsMjIwNTgsMjIwNzQsMjIyOTgsMjI2OTksMjI2'@; put 'ODUsMjI3MDUsMjI2ODgsMjI2OTEsMjI3MDMsMjI3MDAsMjI2OTMsMjI2ODksMjI3ODMsMjMyOTUsMjMyODQsMjMyOTMsMjMyODcsMjMyODYsMjMyOTksMjMyODgsMjMyOTgsMjMyODksMjMyOTcsMjMzMDMsMjMzMDEsMjMzMTEsMjM2NTUsMjM5NjEsMjM5NTksMjM5NjcsMjM5NTQsMjM5NzAs'@; put 'MjM5NTUsMjM5NTcsMjM5NjgsMjM5NjQsMjM5NjksMjM5NjIsMjM5NjYsMjQxNjksMjQxNTcsMjQxNjAsMjQxNTYsMzIyNDMsMjQyODMsMjQyODYsMjQyODksMjQzOTMsMjQ0OTgsMjQ5NzEsMjQ5NjMsMjQ5NTMsMjUwMDksMjUwMDgsMjQ5OTQsMjQ5NjksMjQ5ODcsMjQ5NzksMjUwMDcsMjUw'@; put 'MDUsMjQ5OTEsMjQ5NzgsMjUwMDIsMjQ5OTMsMjQ5NzMsMjQ5MzQsMjUwMTEsMjUxMzMsMjU3MTAsMjU3MTIsMjU3NTAsMjU3NjAsMjU3MzMsMjU3NTEsMjU3NTYsMjU3NDMsMjU3MzksMjU3MzgsMjU3NDAsMjU3NjMsMjU3NTksMjU3MDQsMjU3NzcsMjU3NTIsMjU5NzQsMjU5NzgsMjU5Nzcs'@; put 'MjU5NzksMjYwMzQsMjYwMzUsMjYyOTMsMjYyODgsMjYyODEsMjYyOTAsMjYyOTUsMjYyODIsMjYyODcsMjcxMzYsMjcxNDIsMjcxNTksMjcxMDksMjcxMjgsMjcxNTcsMjcxMjEsMjcxMDgsMjcxNjgsMjcxMzUsMjcxMTYsMjcxMDYsMjcxNjMsMjcxNjUsMjcxMzQsMjcxNzUsMjcxMjIsMjcx'@; put 'MTgsMjcxNTYsMjcxMjcsMjcxMTEsMjcyMDAsMjcxNDQsMjcxMTAsMjcxMzEsMjcxNDksMjcxMzIsMjcxMTUsMjcxNDUsMjcxNDAsMjcxNjAsMjcxNzMsMjcxNTEsMjcxMjYsMjcxNzQsMjcxNDMsMjcxMjQsMjcxNTgsMjc0NzMsMjc1NTcsMjc1NTUsMjc1NTQsMjc1NTgsMjc2NDksMjc2NDgs'@; put 'Mjc2NDcsMjc2NTAsMjg0ODEsMjg0NTQsMjg1NDIsMjg1NTEsMjg2MTQsMjg1NjIsMjg1NTcsMjg1NTMsMjg1NTYsMjg1MTQsMjg0OTUsMjg1NDksMjg1MDYsMjg1NjYsMjg1MzQsMjg1MjQsMjg1NDYsMjg1MDEsMjg1MzAsMjg0OTgsMjg0OTYsMjg1MDMsMjg1NjQsMjg1NjMsMjg1MDksMjg0'@; put 'MTYsMjg1MTMsMjg1MjMsMjg1NDEsMjg1MTksMjg1NjAsMjg0OTksMjg1NTUsMjg1MjEsMjg1NDMsMjg1NjUsMjg1MTUsMjg1MzUsMjg1MjIsMjg1MzksMjkxMDYsMjkxMDMsMjkwODMsMjkxMDQsMjkwODgsMjkwODIsMjkwOTcsMjkxMDksMjkwODUsMjkwOTMsMjkwODYsMjkwOTIsMjkwODks'@; put 'MjkwOTgsMjkwODQsMjkwOTUsMjkxMDcsMjkzMzYsMjkzMzgsMjk1MjgsMjk1MjIsMjk1MzQsMjk1MzUsMjk1MzYsMjk1MzMsMjk1MzEsMjk1MzcsMjk1MzAsMjk1MjksMjk1MzgsMjk4MzEsMjk4MzMsMjk4MzQsMjk4MzAsMjk4MjUsMjk4MjEsMjk4MjksMjk4MzIsMjk4MjAsMjk4MTcsMjk5'@; put 'NjAsMjk5NTksMzAwNzgsMzAyNDUsMzAyMzgsMzAyMzMsMzAyMzcsMzAyMzYsMzAyNDMsMzAyMzQsMzAyNDgsMzAyMzUsMzAzNjQsMzAzNjUsMzAzNjYsMzAzNjMsMzA2MDUsMzA2MDcsMzA2MDEsMzA2MDAsMzA5MjUsMzA5MDcsMzA5MjcsMzA5MjQsMzA5MjksMzA5MjYsMzA5MzIsMzA5MjAs'@; put 'MzA5MTUsMzA5MTYsMzA5MjEsMzExMzAsMzExMzcsMzExMzYsMzExMzIsMzExMzgsMzExMzEsMjc1MTAsMzEyODksMzE0MTAsMzE0MTIsMzE0MTEsMzE2NzEsMzE2OTEsMzE2NzgsMzE2NjAsMzE2OTQsMzE2NjMsMzE2NzMsMzE2OTAsMzE2NjksMzE5NDEsMzE5NDQsMzE5NDgsMzE5NDcsMzIy'@; put 'NDcsMzIyMTksMzIyMzQsMzIyMzEsMzIyMTUsMzIyMjUsMzIyNTksMzIyNTAsMzIyMzAsMzIyNDYsMzIyNDEsMzIyNDAsMzIyMzgsMzIyMjMsMzI2MzAsMzI2ODQsMzI2ODgsMzI2ODUsMzI3NDksMzI3NDcsMzI3NDYsMzI3NDgsMzI3NDIsMzI3NDQsMzI4NjgsMzI4NzEsMzMxODcsMzMxODMs'@; put 'MzMxODIsMzMxNzMsMzMxODYsMzMxNzcsMzMxNzUsMzMzMDIsMzMzNTksMzMzNjMsMzMzNjIsMzMzNjAsMzMzNTgsMzMzNjEsMzQwODQsMzQxMDcsMzQwNjMsMzQwNDgsMzQwODksMzQwNjIsMzQwNTcsMzQwNjEsMzQwNzksMzQwNTgsMzQwODcsMzQwNzYsMzQwNDMsMzQwOTEsMzQwNDIsMzQw'@; put 'NTYsMzQwNjAsMzQwMzYsMzQwOTAsMzQwMzQsMzQwNjksMzQwMzksMzQwMjcsMzQwMzUsMzQwNDQsMzQwNjYsMzQwMjYsMzQwMjUsMzQwNzAsMzQwNDYsMzQwODgsMzQwNzcsMzQwOTQsMzQwNTAsMzQwNDUsMzQwNzgsMzQwMzgsMzQwOTcsMzQwODYsMzQwMjMsMzQwMjQsMzQwMzIsMzQwMzEs'@; put 'MzQwNDEsMzQwNzIsMzQwODAsMzQwOTYsMzQwNTksMzQwNzMsMzQwOTUsMzQ0MDIsMzQ2NDYsMzQ2NTksMzQ2NjAsMzQ2NzksMzQ3ODUsMzQ2NzUsMzQ2NDgsMzQ2NDQsMzQ2NTEsMzQ2NDIsMzQ2NTcsMzQ2NTAsMzQ2NDEsMzQ2NTQsMzQ2NjksMzQ2NjYsMzQ2NDAsMzQ2MzgsMzQ2NTUsMzQ2'@; put 'NTMsMzQ2NzEsMzQ2NjgsMzQ2ODIsMzQ2NzAsMzQ2NTIsMzQ2NjEsMzQ2MzksMzQ2ODMsMzQ2NzcsMzQ2NTgsMzQ2NjMsMzQ2NjUsMzQ5MDYsMzUwNzcsMzUwODQsMzUwOTIsMzUwODMsMzUwOTUsMzUwOTYsMzUwOTcsMzUwNzgsMzUwOTQsMzUwODksMzUwODYsMzUwODEsMzUyMzQsMzUyMzYs'@; put 'MzUyMzUsMzUzMDksMzUzMTIsMzUzMDgsMzU1MzUsMzU1MjYsMzU1MTIsMzU1MzksMzU1MzcsMzU1NDAsMzU1NDEsMzU1MTUsMzU1NDMsMzU1MTgsMzU1MjAsMzU1MjUsMzU1NDQsMzU1MjMsMzU1MTQsMzU1MTcsMzU1NDUsMzU5MDIsMzU5MTcsMzU5ODMsMzYwNjksMzYwNjMsMzYwNTcsMzYw'@; put 'NzIsMzYwNTgsMzYwNjEsMzYwNzEsMzYyNTYsMzYyNTIsMzYyNTcsMzYyNTEsMzYzODQsMzYzODcsMzYzODksMzYzODgsMzYzOTgsMzYzNzMsMzYzNzksMzYzNzQsMzYzNjksMzYzNzcsMzYzOTAsMzYzOTEsMzYzNzIsMzYzNzAsMzYzNzYsMzYzNzEsMzYzODAsMzYzNzUsMzYzNzgsMzY2NTIs'@; put 'MzY2NDQsMzY2MzIsMzY2MzQsMzY2NDAsMzY2NDMsMzY2MzAsMzY2MzEsMzY5NzksMzY5NzYsMzY5NzUsMzY5NjcsMzY5NzEsMzcxNjcsMzcxNjMsMzcxNjEsMzcxNjIsMzcxNzAsMzcxNTgsMzcxNjYsMzcyNTMsMzcyNTQsMzcyNTgsMzcyNDksMzcyNTAsMzcyNTIsMzcyNDgsMzc1ODQsMzc1'@; put 'NzEsMzc1NzIsMzc1NjgsMzc1OTMsMzc1NTgsMzc1ODMsMzc2MTcsMzc1OTksMzc1OTIsMzc2MDksMzc1OTEsMzc1OTcsMzc1ODAsMzc2MTUsMzc1NzAsMzc2MDgsMzc1NzgsMzc1NzYsMzc1ODIsMzc2MDYsMzc1ODEsMzc1ODksMzc1NzcsMzc2MDAsMzc1OTgsMzc2MDcsMzc1ODUsMzc1ODcs'@; put 'Mzc1NTcsMzc2MDEsMzc1NzQsMzc1NTYsMzgyNjgsMzgzMTYsMzgzMTUsMzgzMTgsMzgzMjAsMzg1NjQsMzg1NjIsMzg2MTEsMzg2NjEsMzg2NjQsMzg2NTgsMzg3NDYsMzg3OTQsMzg3OTgsMzg3OTIsMzg4NjQsMzg4NjMsMzg5NDIsMzg5NDEsMzg5NTAsMzg5NTMsMzg5NTIsMzg5NDQsMzg5'@; put 'MzksMzg5NTEsMzkwOTAsMzkxNzYsMzkxNjIsMzkxODUsMzkxODgsMzkxOTAsMzkxOTEsMzkxODksMzkzODgsMzkzNzMsMzkzNzUsMzkzNzksMzkzODAsMzkzNzQsMzkzNjksMzkzODIsMzkzODQsMzkzNzEsMzkzODMsMzkzNzIsMzk2MDMsMzk2NjAsMzk2NTksMzk2NjcsMzk2NjYsMzk2NjUs'@; put 'Mzk3NTAsMzk3NDcsMzk3ODMsMzk3OTYsMzk3OTMsMzk3ODIsMzk3OTgsMzk3OTcsMzk3OTIsMzk3ODQsMzk3ODAsMzk3ODgsNDAxODgsNDAxODYsNDAxODksNDAxOTEsNDAxODMsNDAxOTksNDAxOTIsNDAxODUsNDAxODcsNDAyMDAsNDAxOTcsNDAxOTYsNDA1NzksNDA2NTksNDA3MTksNDA3'@; put 'MjAsMjA3NjQsMjA3NTUsMjA3NTksMjA3NjIsMjA3NTMsMjA5NTgsMjEzMDAsMjE0NzMsMjIxMjgsMjIxMTIsMjIxMjYsMjIxMzEsMjIxMTgsMjIxMTUsMjIxMjUsMjIxMzAsMjIxMTAsMjIxMzUsMjIzMDAsMjIyOTksMjI3MjgsMjI3MTcsMjI3MjksMjI3MTksMjI3MTQsMjI3MjIsMjI3MTYs'@; put 'MjI3MjYsMjMzMTksMjMzMjEsMjMzMjMsMjMzMjksMjMzMTYsMjMzMTUsMjMzMTIsMjMzMTgsMjMzMzYsMjMzMjIsMjMzMjgsMjMzMjYsMjM1MzUsMjM5ODAsMjM5ODUsMjM5NzcsMjM5NzUsMjM5ODksMjM5ODQsMjM5ODIsMjM5NzgsMjM5NzYsMjM5ODYsMjM5ODEsMjM5ODMsMjM5ODgsMjQx'@; put 'NjcsMjQxNjgsMjQxNjYsMjQxNzUsMjQyOTcsMjQyOTUsMjQyOTQsMjQyOTYsMjQyOTMsMjQzOTUsMjQ1MDgsMjQ5ODksMjVlMywyNDk4MiwyNTAyOSwyNTAxMiwyNTAzMCwyNTAyNSwyNTAzNiwyNTAxOCwyNTAyMywyNTAxNiwyNDk3MiwyNTgxNSwyNTgxNCwyNTgwOCwyNTgwNywyNTgwMSwy'@; put 'NTc4OSwyNTczNywyNTc5NSwyNTgxOSwyNTg0MywyNTgxNywyNTkwNywyNTk4MywyNTk4MCwyNjAxOCwyNjMxMiwyNjMwMiwyNjMwNCwyNjMxNCwyNjMxNSwyNjMxOSwyNjMwMSwyNjI5OSwyNjI5OCwyNjMxNiwyNjQwMywyNzE4OCwyNzIzOCwyNzIwOSwyNzIzOSwyNzE4NiwyNzI0MCwyNzE5'@; put 'OCwyNzIyOSwyNzI0NSwyNzI1NCwyNzIyNywyNzIxNywyNzE3NiwyNzIyNiwyNzE5NSwyNzE5OSwyNzIwMSwyNzI0MiwyNzIzNiwyNzIxNiwyNzIxNSwyNzIyMCwyNzI0NywyNzI0MSwyNzIzMiwyNzE5NiwyNzIzMCwyNzIyMiwyNzIyMSwyNzIxMywyNzIxNCwyNzIwNiwyNzQ3NywyNzQ3Niwy'@; put 'NzQ3OCwyNzU1OSwyNzU2MiwyNzU2MywyNzU5MiwyNzU5MSwyNzY1MiwyNzY1MSwyNzY1NCwyODU4OSwyODYxOSwyODU3OSwyODYxNSwyODYwNCwyODYyMiwyODYxNiwyODUxMCwyODYxMiwyODYwNSwyODU3NCwyODYxOCwyODU4NCwyODY3NiwyODU4MSwyODU5MCwyODYwMiwyODU4OCwyODU4'@; put 'NiwyODYyMywyODYwNywyODYwMCwyODU3OCwyODYxNywyODU4NywyODYyMSwyODU5MSwyODU5NCwyODU5MiwyOTEyNSwyOTEyMiwyOTExOSwyOTExMiwyOTE0MiwyOTEyMCwyOTEyMSwyOTEzMSwyOTE0MCwyOTEzMCwyOTEyNywyOTEzNSwyOTExNywyOTE0NCwyOTExNiwyOTEyNiwyOTE0Niwy'@; put 'OTE0NywyOTM0MSwyOTM0MiwyOTU0NSwyOTU0MiwyOTU0MywyOTU0OCwyOTU0MSwyOTU0NywyOTU0NiwyOTgyMywyOTg1MCwyOTg1NiwyOTg0NCwyOTg0MiwyOTg0NSwyOTg1NywyOTk2MywzMDA4MCwzMDI1NSwzMDI1MywzMDI1NywzMDI2OSwzMDI1OSwzMDI2OCwzMDI2MSwzMDI1OCwzMDI1'@; put 'NiwzMDM5NSwzMDQzOCwzMDYxOCwzMDYyMSwzMDYyNSwzMDYyMCwzMDYxOSwzMDYyNiwzMDYyNywzMDYxMywzMDYxNywzMDYxNSwzMDk0MSwzMDk1MywzMDk0OSwzMDk1NCwzMDk0MiwzMDk0NywzMDkzOSwzMDk0NSwzMDk0NiwzMDk1NywzMDk0MywzMDk0NCwzMTE0MCwzMTMwMCwzMTMwNCwz'@; put 'MTMwMywzMTQxNCwzMTQxNiwzMTQxMywzMTQwOSwzMTQxNSwzMTcxMCwzMTcxNSwzMTcxOSwzMTcwOSwzMTcwMSwzMTcxNywzMTcwNiwzMTcyMCwzMTczNywzMTcwMCwzMTcyMiwzMTcxNCwzMTcwOCwzMTcyMywzMTcwNCwzMTcxMSwzMTk1NCwzMTk1NiwzMTk1OSwzMTk1MiwzMTk1MywzMjI3'@; put 'NCwzMjI4OSwzMjI3OSwzMjI2OCwzMjI4NywzMjI4OCwzMjI3NSwzMjI3MCwzMjI4NCwzMjI3NywzMjI4MiwzMjI5MCwzMjI2NywzMjI3MSwzMjI3OCwzMjI2OSwzMjI3NiwzMjI5MywzMjI5MiwzMjU3OSwzMjYzNSwzMjYzNiwzMjYzNCwzMjY4OSwzMjc1MSwzMjgxMCwzMjgwOSwzMjg3Niwz'@; put 'MzIwMSwzMzE5MCwzMzE5OCwzMzIwOSwzMzIwNSwzMzE5NSwzMzIwMCwzMzE5NiwzMzIwNCwzMzIwMiwzMzIwNywzMzE5MSwzMzI2NiwzMzM2NSwzMzM2NiwzMzM2NywzNDEzNCwzNDExNywzNDE1NSwzNDEyNSwzNDEzMSwzNDE0NSwzNDEzNiwzNDExMiwzNDExOCwzNDE0OCwzNDExMywzNDE0'@; put 'NiwzNDExNiwzNDEyOSwzNDExOSwzNDE0NywzNDExMCwzNDEzOSwzNDE2MSwzNDEyNiwzNDE1OCwzNDE2NSwzNDEzMywzNDE1MSwzNDE0NCwzNDE4OCwzNDE1MCwzNDE0MSwzNDEzMiwzNDE0OSwzNDE1NiwzNDQwMywzNDQwNSwzNDQwNCwzNDcxNSwzNDcwMywzNDcxMSwzNDcwNywzNDcwNiwz'@; put 'NDY5NiwzNDY4OSwzNDcxMCwzNDcxMiwzNDY4MSwzNDY5NSwzNDcyMywzNDY5MywzNDcwNCwzNDcwNSwzNDcxNywzNDY5MiwzNDcwOCwzNDcxNiwzNDcxNCwzNDY5NywzNTEwMiwzNTExMCwzNTEyMCwzNTExNywzNTExOCwzNTExMSwzNTEyMSwzNTEwNiwzNTExMywzNTEwNywzNTExOSwzNTEx'@; put 'NiwzNTEwMywzNTMxMywzNTU1MiwzNTU1NCwzNTU3MCwzNTU3MiwzNTU3MywzNTU0OSwzNTYwNCwzNTU1NiwzNTU1MSwzNTU2OCwzNTUyOCwzNTU1MCwzNTU1MywzNTU2MCwzNTU4MywzNTU2NywzNTU3OSwzNTk4NSwzNTk4NiwzNTk4NCwzNjA4NSwzNjA3OCwzNjA4MSwzNjA4MCwzNjA4Mywz'@; put 'NjIwNCwzNjIwNiwzNjI2MSwzNjI2MywzNjQwMywzNjQxNCwzNjQwOCwzNjQxNiwzNjQyMSwzNjQwNiwzNjQxMiwzNjQxMywzNjQxNywzNjQwMCwzNjQxNSwzNjU0MSwzNjY2MiwzNjY1NCwzNjY2MSwzNjY1OCwzNjY2NSwzNjY2MywzNjY2MCwzNjk4MiwzNjk4NSwzNjk4NywzNjk5OCwzNzEx'@; put 'NCwzNzE3MSwzNzE3MywzNzE3NCwzNzI2NywzNzI2NCwzNzI2NSwzNzI2MSwzNzI2MywzNzY3MSwzNzY2MiwzNzY0MCwzNzY2MywzNzYzOCwzNzY0NywzNzc1NCwzNzY4OCwzNzY5MiwzNzY1OSwzNzY2NywzNzY1MCwzNzYzMywzNzcwMiwzNzY3NywzNzY0NiwzNzY0NSwzNzU3OSwzNzY2MSwz'@; put 'NzYyNiwzNzY2OSwzNzY1MSwzNzYyNSwzNzYyMywzNzY4NCwzNzYzNCwzNzY2OCwzNzYzMSwzNzY3MywzNzY4OSwzNzY4NSwzNzY3NCwzNzY1MiwzNzY0NCwzNzY0MywzNzYzMCwzNzY0MSwzNzYzMiwzNzYyNywzNzY1NCwzODMzMiwzODM0OSwzODMzNCwzODMyOSwzODMzMCwzODMyNiwzODMz'@; put 'NSwzODMyNSwzODMzMywzODU2OSwzODYxMiwzODY2NywzODY3NCwzODY3MiwzODgwOSwzODgwNywzODgwNCwzODg5NiwzODkwNCwzODk2NSwzODk1OSwzODk2MiwzOTIwNCwzOTE5OSwzOTIwNywzOTIwOSwzOTMyNiwzOTQwNiwzOTQwNCwzOTM5NywzOTM5NiwzOTQwOCwzOTM5NSwzOTQwMiwz'@; put 'OTQwMSwzOTM5OSwzOTYwOSwzOTYxNSwzOTYwNCwzOTYxMSwzOTY3MCwzOTY3NCwzOTY3MywzOTY3MSwzOTczMSwzOTgwOCwzOTgxMywzOTgxNSwzOTgwNCwzOTgwNiwzOTgwMywzOTgxMCwzOTgyNywzOTgyNiwzOTgyNCwzOTgwMiwzOTgyOSwzOTgwNSwzOTgxNiw0MDIyOSw0MDIxNSw0MDIy'@; put 'NCw0MDIyMiw0MDIxMiw0MDIzMyw0MDIyMSw0MDIxNiw0MDIyNiw0MDIwOCw0MDIxNyw0MDIyMyw0MDU4NCw0MDU4Miw0MDU4Myw0MDYyMiw0MDYyMSw0MDY2MSw0MDY2Miw0MDY5OCw0MDcyMiw0MDc2NSwyMDc3NCwyMDc3MywyMDc3MCwyMDc3MiwyMDc2OCwyMDc3NywyMTIzNiwyMjE2Mywy'@; put 'MjE1NiwyMjE1NywyMjE1MCwyMjE0OCwyMjE0NywyMjE0MiwyMjE0NiwyMjE0MywyMjE0NSwyMjc0MiwyMjc0MCwyMjczNSwyMjczOCwyMzM0MSwyMzMzMywyMzM0NiwyMzMzMSwyMzM0MCwyMzMzNSwyMzMzNCwyMzM0MywyMzM0MiwyMzQxOSwyMzUzNywyMzUzOCwyMzk5MSwyNDE3MiwyNDE3'@; put 'MCwyNDUxMCwyNDUwNywyNTAyNywyNTAxMywyNTAyMCwyNTA2MywyNTA1NiwyNTA2MSwyNTA2MCwyNTA2NCwyNTA1NCwyNTgzOSwyNTgzMywyNTgyNywyNTgzNSwyNTgyOCwyNTgzMiwyNTk4NSwyNTk4NCwyNjAzOCwyNjA3NCwyNjMyMiwyNzI3NywyNzI4NiwyNzI2NSwyNzMwMSwyNzI3Mywy'@; put 'NzI5NSwyNzI5MSwyNzI5NywyNzI5NCwyNzI3MSwyNzI4MywyNzI3OCwyNzI4NSwyNzI2NywyNzMwNCwyNzMwMCwyNzI4MSwyNzI2MywyNzMwMiwyNzI5MCwyNzI2OSwyNzI3NiwyNzI4MiwyNzQ4MywyNzU2NSwyNzY1NywyODYyMCwyODU4NSwyODY2MCwyODYyOCwyODY0MywyODYzNiwyODY1'@; put 'MywyODY0NywyODY0NiwyODYzOCwyODY1OCwyODYzNywyODY0MiwyODY0OCwyOTE1MywyOTE2OSwyOTE2MCwyOTE3MCwyOTE1NiwyOTE2OCwyOTE1NCwyOTU1NSwyOTU1MCwyOTU1MSwyOTg0NywyOTg3NCwyOTg2NywyOTg0MCwyOTg2NiwyOTg2OSwyOTg3MywyOTg2MSwyOTg3MSwyOTk2OCwy'@; put 'OTk2OSwyOTk3MCwyOTk2NywzMDA4NCwzMDI3NSwzMDI4MCwzMDI4MSwzMDI3OSwzMDM3MiwzMDQ0MSwzMDY0NSwzMDYzNSwzMDY0MiwzMDY0NywzMDY0NiwzMDY0NCwzMDY0MSwzMDYzMiwzMDcwNCwzMDk2MywzMDk3MywzMDk3OCwzMDk3MSwzMDk3MiwzMDk2MiwzMDk4MSwzMDk2OSwzMDk3'@; put 'NCwzMDk4MCwzMTE0NywzMTE0NCwzMTMyNCwzMTMyMywzMTMxOCwzMTMyMCwzMTMxNiwzMTMyMiwzMTQyMiwzMTQyNCwzMTQyNSwzMTc0OSwzMTc1OSwzMTczMCwzMTc0NCwzMTc0MywzMTczOSwzMTc1OCwzMTczMiwzMTc1NSwzMTczMSwzMTc0NiwzMTc1MywzMTc0NywzMTc0NSwzMTczNiwz'@; put 'MTc0MSwzMTc1MCwzMTcyOCwzMTcyOSwzMTc2MCwzMTc1NCwzMTk3NiwzMjMwMSwzMjMxNiwzMjMyMiwzMjMwNywzODk4NCwzMjMxMiwzMjI5OCwzMjMyOSwzMjMyMCwzMjMyNywzMjI5NywzMjMzMiwzMjMwNCwzMjMxNSwzMjMxMCwzMjMyNCwzMjMxNCwzMjU4MSwzMjYzOSwzMjYzOCwzMjYz'@; put 'NywzMjc1NiwzMjc1NCwzMjgxMiwzMzIxMSwzMzIyMCwzMzIyOCwzMzIyNiwzMzIyMSwzMzIyMywzMzIxMiwzMzI1NywzMzM3MSwzMzM3MCwzMzM3MiwzNDE3OSwzNDE3NiwzNDE5MSwzNDIxNSwzNDE5NywzNDIwOCwzNDE4NywzNDIxMSwzNDE3MSwzNDIxMiwzNDIwMiwzNDIwNiwzNDE2Nywz'@; put 'NDE3MiwzNDE4NSwzNDIwOSwzNDE3MCwzNDE2OCwzNDEzNSwzNDE5MCwzNDE5OCwzNDE4MiwzNDE4OSwzNDIwMSwzNDIwNSwzNDE3NywzNDIxMCwzNDE3OCwzNDE4NCwzNDE4MSwzNDE2OSwzNDE2NiwzNDIwMCwzNDE5MiwzNDIwNywzNDQwOCwzNDc1MCwzNDczMCwzNDczMywzNDc1NywzNDcz'@; put 'NiwzNDczMiwzNDc0NSwzNDc0MSwzNDc0OCwzNDczNCwzNDc2MSwzNDc1NSwzNDc1NCwzNDc2NCwzNDc0MywzNDczNSwzNDc1NiwzNDc2MiwzNDc0MCwzNDc0MiwzNDc1MSwzNDc0NCwzNDc0OSwzNDc4MiwzNDczOCwzNTEyNSwzNTEyMywzNTEzMiwzNTEzNCwzNTEzNywzNTE1NCwzNTEyNywz'@; put 'NTEzOCwzNTI0NSwzNTI0NywzNTI0NiwzNTMxNCwzNTMxNSwzNTYxNCwzNTYwOCwzNTYwNiwzNTYwMSwzNTU4OSwzNTU5NSwzNTYxOCwzNTU5OSwzNTYwMiwzNTYwNSwzNTU5MSwzNTU5NywzNTU5MiwzNTU5MCwzNTYxMiwzNTYwMywzNTYxMCwzNTkxOSwzNTk1MiwzNTk1NCwzNTk1MywzNTk1'@; put 'MSwzNTk4OSwzNTk4OCwzNjA4OSwzNjIwNywzNjQzMCwzNjQyOSwzNjQzNSwzNjQzMiwzNjQyOCwzNjQyMywzNjY3NSwzNjY3MiwzNjk5NywzNjk5MCwzNzE3NiwzNzI3NCwzNzI4MiwzNzI3NSwzNzI3MywzNzI3OSwzNzI4MSwzNzI3NywzNzI4MCwzNzc5MywzNzc2MywzNzgwNywzNzczMiwz'@; put 'NzcxOCwzNzcwMywzNzc1NiwzNzcyMCwzNzcyNCwzNzc1MCwzNzcwNSwzNzcxMiwzNzcxMywzNzcyOCwzNzc0MSwzNzc3NSwzNzcwOCwzNzczOCwzNzc1MywzNzcxOSwzNzcxNywzNzcxNCwzNzcxMSwzNzc0NSwzNzc1MSwzNzc1NSwzNzcyOSwzNzcyNiwzNzczMSwzNzczNSwzNzc2MCwzNzcx'@; put 'MCwzNzcyMSwzODM0MywzODMzNiwzODM0NSwzODMzOSwzODM0MSwzODMyNywzODU3NCwzODU3NiwzODU3MiwzODY4OCwzODY4NywzODY4MCwzODY4NSwzODY4MSwzODgxMCwzODgxNywzODgxMiwzODgxNCwzODgxMywzODg2OSwzODg2OCwzODg5NywzODk3NywzODk4MCwzODk4NiwzODk4NSwz'@; put 'ODk4MSwzODk3OSwzOTIwNSwzOTIxMSwzOTIxMiwzOTIxMCwzOTIxOSwzOTIxOCwzOTIxNSwzOTIxMywzOTIxNywzOTIxNiwzOTMyMCwzOTMzMSwzOTMyOSwzOTQyNiwzOTQxOCwzOTQxMiwzOTQxNSwzOTQxNywzOTQxNiwzOTQxNCwzOTQxOSwzOTQyMSwzOTQyMiwzOTQyMCwzOTQyNywzOTYx'@; put 'NCwzOTY3OCwzOTY3NywzOTY4MSwzOTY3NiwzOTc1MiwzOTgzNCwzOTg0OCwzOTgzOCwzOTgzNSwzOTg0NiwzOTg0MSwzOTg0NSwzOTg0NCwzOTgxNCwzOTg0MiwzOTg0MCwzOTg1NSw0MDI0Myw0MDI1Nyw0MDI5NSw0MDI0Niw0MDIzOCw0MDIzOSw0MDI0MSw0MDI0OCw0MDI0MCw0MDI2MSw0'@; put 'MDI1OCw0MDI1OSw0MDI1NCw0MDI0Nyw0MDI1Niw0MDI1MywzMjc1Nyw0MDIzNyw0MDU4Niw0MDU4NSw0MDU4OSw0MDYyNCw0MDY0OCw0MDY2Niw0MDY5OSw0MDcwMyw0MDc0MCw0MDczOSw0MDczOCw0MDc4OCw0MDg2NCwyMDc4NSwyMDc4MSwyMDc4MiwyMjE2OCwyMjE3MiwyMjE2NywyMjE3'@; put 'MCwyMjE3MywyMjE2OSwyMjg5NiwyMzM1NiwyMzY1NywyMzY1OCwyNGUzLDI0MTczLDI0MTc0LDI1MDQ4LDI1MDU1LDI1MDY5LDI1MDcwLDI1MDczLDI1MDY2LDI1MDcyLDI1MDY3LDI1MDQ2LDI1MDY1LDI1ODU1LDI1ODYwLDI1ODUzLDI1ODQ4LDI1ODU3LDI1ODU5LDI1ODUyLDI2MDA0LDI2'@; put 'MDc1LDI2MzMwLDI2MzMxLDI2MzI4LDI3MzMzLDI3MzIxLDI3MzI1LDI3MzYxLDI3MzM0LDI3MzIyLDI3MzE4LDI3MzE5LDI3MzM1LDI3MzE2LDI3MzA5LDI3NDg2LDI3NTkzLDI3NjU5LDI4Njc5LDI4Njg0LDI4Njg1LDI4NjczLDI4Njc3LDI4NjkyLDI4Njg2LDI4NjcxLDI4NjcyLDI4NjY3'@; put 'LDI4NzEwLDI4NjY4LDI4NjYzLDI4NjgyLDI5MTg1LDI5MTgzLDI5MTc3LDI5MTg3LDI5MTgxLDI5NTU4LDI5ODgwLDI5ODg4LDI5ODc3LDI5ODg5LDI5ODg2LDI5ODc4LDI5ODgzLDI5ODkwLDI5OTcyLDI5OTcxLDMwMzAwLDMwMzA4LDMwMjk3LDMwMjg4LDMwMjkxLDMwMjk1LDMwMjk4LDMw'@; put 'Mzc0LDMwMzk3LDMwNDQ0LDMwNjU4LDMwNjUwLDMwOTc1LDMwOTg4LDMwOTk1LDMwOTk2LDMwOTg1LDMwOTkyLDMwOTk0LDMwOTkzLDMxMTQ5LDMxMTQ4LDMxMzI3LDMxNzcyLDMxNzg1LDMxNzY5LDMxNzc2LDMxNzc1LDMxNzg5LDMxNzczLDMxNzgyLDMxNzg0LDMxNzc4LDMxNzgxLDMxNzky'@; put 'LDMyMzQ4LDMyMzM2LDMyMzQyLDMyMzU1LDMyMzQ0LDMyMzU0LDMyMzUxLDMyMzM3LDMyMzUyLDMyMzQzLDMyMzM5LDMyNjkzLDMyNjkxLDMyNzU5LDMyNzYwLDMyODg1LDMzMjMzLDMzMjM0LDMzMjMyLDMzMzc1LDMzMzc0LDM0MjI4LDM0MjQ2LDM0MjQwLDM0MjQzLDM0MjQyLDM0MjI3LDM0'@; put 'MjI5LDM0MjM3LDM0MjQ3LDM0MjQ0LDM0MjM5LDM0MjUxLDM0MjU0LDM0MjQ4LDM0MjQ1LDM0MjI1LDM0MjMwLDM0MjU4LDM0MzQwLDM0MjMyLDM0MjMxLDM0MjM4LDM0NDA5LDM0NzkxLDM0NzkwLDM0Nzg2LDM0Nzc5LDM0Nzk1LDM0Nzk0LDM0Nzg5LDM0NzgzLDM0ODAzLDM0Nzg4LDM0Nzcy'@; put 'LDM0NzgwLDM0NzcxLDM0Nzk3LDM0Nzc2LDM0Nzg3LDM0NzI0LDM0Nzc1LDM0Nzc3LDM0ODE3LDM0ODA0LDM0NzkyLDM0NzgxLDM1MTU1LDM1MTQ3LDM1MTUxLDM1MTQ4LDM1MTQyLDM1MTUyLDM1MTUzLDM1MTQ1LDM1NjI2LDM1NjIzLDM1NjE5LDM1NjM1LDM1NjMyLDM1NjM3LDM1NjU1LDM1'@; put 'NjMxLDM1NjQ0LDM1NjQ2LDM1NjMzLDM1NjIxLDM1NjM5LDM1NjIyLDM1NjM4LDM1NjMwLDM1NjIwLDM1NjQzLDM1NjQ1LDM1NjQyLDM1OTA2LDM1OTU3LDM1OTkzLDM1OTkyLDM1OTkxLDM2MDk0LDM2MTAwLDM2MDk4LDM2MDk2LDM2NDQ0LDM2NDUwLDM2NDQ4LDM2NDM5LDM2NDM4LDM2NDQ2'@; put 'LDM2NDUzLDM2NDU1LDM2NDQzLDM2NDQyLDM2NDQ5LDM2NDQ1LDM2NDU3LDM2NDM2LDM2Njc4LDM2Njc5LDM2NjgwLDM2NjgzLDM3MTYwLDM3MTc4LDM3MTc5LDM3MTgyLDM3Mjg4LDM3Mjg1LDM3Mjg3LDM3Mjk1LDM3MjkwLDM3ODEzLDM3NzcyLDM3Nzc4LDM3ODE1LDM3Nzg3LDM3Nzg5LDM3'@; put 'NzY5LDM3Nzk5LDM3Nzc0LDM3ODAyLDM3NzkwLDM3Nzk4LDM3NzgxLDM3NzY4LDM3Nzg1LDM3NzkxLDM3NzczLDM3ODA5LDM3Nzc3LDM3ODEwLDM3Nzk2LDM3ODAwLDM3ODEyLDM3Nzk1LDM3Nzk3LDM4MzU0LDM4MzU1LDM4MzUzLDM4NTc5LDM4NjE1LDM4NjE4LDI0MDAyLDM4NjIzLDM4NjE2'@; put 'LDM4NjIxLDM4NjkxLDM4NjkwLDM4NjkzLDM4ODI4LDM4ODMwLDM4ODI0LDM4ODI3LDM4ODIwLDM4ODI2LDM4ODE4LDM4ODIxLDM4ODcxLDM4ODczLDM4ODcwLDM4ODcyLDM4OTA2LDM4OTkyLDM4OTkzLDM4OTk0LDM5MDk2LDM5MjMzLDM5MjI4LDM5MjI2LDM5NDM5LDM5NDM1LDM5NDMzLDM5'@; put 'NDM3LDM5NDI4LDM5NDQxLDM5NDM0LDM5NDI5LDM5NDMxLDM5NDMwLDM5NjE2LDM5NjQ0LDM5Njg4LDM5Njg0LDM5Njg1LDM5NzIxLDM5NzMzLDM5NzU0LDM5NzU2LDM5NzU1LDM5ODc5LDM5ODc4LDM5ODc1LDM5ODcxLDM5ODczLDM5ODYxLDM5ODY0LDM5ODkxLDM5ODYyLDM5ODc2LDM5ODY1'@; put 'LDM5ODY5LDQwMjg0LDQwMjc1LDQwMjcxLDQwMjY2LDQwMjgzLDQwMjY3LDQwMjgxLDQwMjc4LDQwMjY4LDQwMjc5LDQwMjc0LDQwMjc2LDQwMjg3LDQwMjgwLDQwMjgyLDQwNTkwLDQwNTg4LDQwNjcxLDQwNzA1LDQwNzA0LDQwNzI2LDQwNzQxLDQwNzQ3LDQwNzQ2LDQwNzQ1LDQwNzQ0LDQw'@; put 'NzgwLDQwNzg5LDIwNzg4LDIwNzg5LDIxMTQyLDIxMjM5LDIxNDI4LDIyMTg3LDIyMTg5LDIyMTgyLDIyMTgzLDIyMTg2LDIyMTg4LDIyNzQ2LDIyNzQ5LDIyNzQ3LDIyODAyLDIzMzU3LDIzMzU4LDIzMzU5LDI0MDAzLDI0MTc2LDI0NTExLDI1MDgzLDI1ODYzLDI1ODcyLDI1ODY5LDI1ODY1'@; put 'LDI1ODY4LDI1ODcwLDI1OTg4LDI2MDc4LDI2MDc3LDI2MzM0LDI3MzY3LDI3MzYwLDI3MzQwLDI3MzQ1LDI3MzUzLDI3MzM5LDI3MzU5LDI3MzU2LDI3MzQ0LDI3MzcxLDI3MzQzLDI3MzQxLDI3MzU4LDI3NDg4LDI3NTY4LDI3NjYwLDI4Njk3LDI4NzExLDI4NzA0LDI4Njk0LDI4NzE1LDI4'@; put 'NzA1LDI4NzA2LDI4NzA3LDI4NzEzLDI4Njk1LDI4NzA4LDI4NzAwLDI4NzE0LDI5MTk2LDI5MTk0LDI5MTkxLDI5MTg2LDI5MTg5LDI5MzQ5LDI5MzUwLDI5MzQ4LDI5MzQ3LDI5MzQ1LDI5ODk5LDI5ODkzLDI5ODc5LDI5ODkxLDI5OTc0LDMwMzA0LDMwNjY1LDMwNjY2LDMwNjYwLDMwNzA1'@; put 'LDMxMDA1LDMxMDAzLDMxMDA5LDMxMDA0LDMwOTk5LDMxMDA2LDMxMTUyLDMxMzM1LDMxMzM2LDMxNzk1LDMxODA0LDMxODAxLDMxNzg4LDMxODAzLDMxOTgwLDMxOTc4LDMyMzc0LDMyMzczLDMyMzc2LDMyMzY4LDMyMzc1LDMyMzY3LDMyMzc4LDMyMzcwLDMyMzcyLDMyMzYwLDMyNTg3LDMy'@; put 'NTg2LDMyNjQzLDMyNjQ2LDMyNjk1LDMyNzY1LDMyNzY2LDMyODg4LDMzMjM5LDMzMjM3LDMzMzgwLDMzMzc3LDMzMzc5LDM0MjgzLDM0Mjg5LDM0Mjg1LDM0MjY1LDM0MjczLDM0MjgwLDM0MjY2LDM0MjYzLDM0Mjg0LDM0MjkwLDM0Mjk2LDM0MjY0LDM0MjcxLDM0Mjc1LDM0MjY4LDM0MjU3'@; put 'LDM0Mjg4LDM0Mjc4LDM0Mjg3LDM0MjcwLDM0Mjc0LDM0ODE2LDM0ODEwLDM0ODE5LDM0ODA2LDM0ODA3LDM0ODI1LDM0ODI4LDM0ODI3LDM0ODIyLDM0ODEyLDM0ODI0LDM0ODE1LDM0ODI2LDM0ODE4LDM1MTcwLDM1MTYyLDM1MTYzLDM1MTU5LDM1MTY5LDM1MTY0LDM1MTYwLDM1MTY1LDM1'@; put 'MTYxLDM1MjA4LDM1MjU1LDM1MjU0LDM1MzE4LDM1NjY0LDM1NjU2LDM1NjU4LDM1NjQ4LDM1NjY3LDM1NjcwLDM1NjY4LDM1NjU5LDM1NjY5LDM1NjY1LDM1NjUwLDM1NjY2LDM1NjcxLDM1OTA3LDM1OTU5LDM1OTU4LDM1OTk0LDM2MTAyLDM2MTAzLDM2MTA1LDM2MjY4LDM2MjY2LDM2MjY5'@; put 'LDM2MjY3LDM2NDYxLDM2NDcyLDM2NDY3LDM2NDU4LDM2NDYzLDM2NDc1LDM2NTQ2LDM2NjkwLDM2Njg5LDM2Njg3LDM2Njg4LDM2NjkxLDM2Nzg4LDM3MTg0LDM3MTgzLDM3Mjk2LDM3MjkzLDM3ODU0LDM3ODMxLDM3ODM5LDM3ODI2LDM3ODUwLDM3ODQwLDM3ODgxLDM3ODY4LDM3ODM2LDM3'@; put 'ODQ5LDM3ODAxLDM3ODYyLDM3ODM0LDM3ODQ0LDM3ODcwLDM3ODU5LDM3ODQ1LDM3ODI4LDM3ODM4LDM3ODI0LDM3ODQyLDM3ODYzLDM4MjY5LDM4MzYyLDM4MzYzLDM4NjI1LDM4Njk3LDM4Njk5LDM4NzAwLDM4Njk2LDM4Njk0LDM4ODM1LDM4ODM5LDM4ODM4LDM4ODc3LDM4ODc4LDM4ODc5'@; put 'LDM5MDA0LDM5MDAxLDM5MDA1LDM4OTk5LDM5MTAzLDM5MTAxLDM5MDk5LDM5MTAyLDM5MjQwLDM5MjM5LDM5MjM1LDM5MzM0LDM5MzM1LDM5NDUwLDM5NDQ1LDM5NDYxLDM5NDUzLDM5NDYwLDM5NDUxLDM5NDU4LDM5NDU2LDM5NDYzLDM5NDU5LDM5NDU0LDM5NDUyLDM5NDQ0LDM5NjE4LDM5'@; put 'NjkxLDM5NjkwLDM5Njk0LDM5NjkyLDM5NzM1LDM5OTE0LDM5OTE1LDM5OTA0LDM5OTAyLDM5OTA4LDM5OTEwLDM5OTA2LDM5OTIwLDM5ODkyLDM5ODk1LDM5OTE2LDM5OTAwLDM5ODk3LDM5OTA5LDM5ODkzLDM5OTA1LDM5ODk4LDQwMzExLDQwMzIxLDQwMzMwLDQwMzI0LDQwMzI4LDQwMzA1'@; put 'LDQwMzIwLDQwMzEyLDQwMzI2LDQwMzMxLDQwMzMyLDQwMzE3LDQwMjk5LDQwMzA4LDQwMzA5LDQwMzA0LDQwMjk3LDQwMzI1LDQwMzA3LDQwMzE1LDQwMzIyLDQwMzAzLDQwMzEzLDQwMzE5LDQwMzI3LDQwMjk2LDQwNTk2LDQwNTkzLDQwNjQwLDQwNzAwLDQwNzQ5LDQwNzY4LDQwNzY5LDQw'@; put 'NzgxLDQwNzkwLDQwNzkxLDQwNzkyLDIxMzAzLDIyMTk0LDIyMTk3LDIyMTk1LDIyNzU1LDIzMzY1LDI0MDA2LDI0MDA3LDI0MzAyLDI0MzAzLDI0NTEyLDI0NTEzLDI1MDgxLDI1ODc5LDI1ODc4LDI1ODc3LDI1ODc1LDI2MDc5LDI2MzQ0LDI2MzM5LDI2MzQwLDI3Mzc5LDI3Mzc2LDI3Mzcw'@; put 'LDI3MzY4LDI3Mzg1LDI3Mzc3LDI3Mzc0LDI3Mzc1LDI4NzMyLDI4NzI1LDI4NzE5LDI4NzI3LDI4NzI0LDI4NzIxLDI4NzM4LDI4NzI4LDI4NzM1LDI4NzMwLDI4NzI5LDI4NzM2LDI4NzMxLDI4NzIzLDI4NzM3LDI5MjAzLDI5MjA0LDI5MzUyLDI5NTY1LDI5NTY0LDI5ODgyLDMwMzc5LDMw'@; put 'Mzc4LDMwMzk4LDMwNDQ1LDMwNjY4LDMwNjcwLDMwNjcxLDMwNjY5LDMwNzA2LDMxMDEzLDMxMDExLDMxMDE1LDMxMDE2LDMxMDEyLDMxMDE3LDMxMTU0LDMxMzQyLDMxMzQwLDMxMzQxLDMxNDc5LDMxODE3LDMxODE2LDMxODE4LDMxODE1LDMxODEzLDMxOTgyLDMyMzc5LDMyMzgyLDMyMzg1'@; put 'LDMyMzg0LDMyNjk4LDMyNzY3LDMyODg5LDMzMjQzLDMzMjQxLDMzMjkxLDMzMzg0LDMzMzg1LDM0MzM4LDM0MzAzLDM0MzA1LDM0MzAyLDM0MzMxLDM0MzA0LDM0Mjk0LDM0MzA4LDM0MzEzLDM0MzA5LDM0MzE2LDM0MzAxLDM0ODQxLDM0ODMyLDM0ODMzLDM0ODM5LDM0ODM1LDM0ODM4LDM1'@; put 'MTcxLDM1MTc0LDM1MjU3LDM1MzE5LDM1NjgwLDM1NjkwLDM1Njc3LDM1Njg4LDM1NjgzLDM1Njg1LDM1Njg3LDM1NjkzLDM2MjcwLDM2NDg2LDM2NDg4LDM2NDg0LDM2Njk3LDM2Njk0LDM2Njk1LDM2NjkzLDM2Njk2LDM2Njk4LDM3MDA1LDM3MTg3LDM3MTg1LDM3MzAzLDM3MzAxLDM3Mjk4'@; put 'LDM3Mjk5LDM3ODk5LDM3OTA3LDM3ODgzLDM3OTIwLDM3OTAzLDM3OTA4LDM3ODg2LDM3OTA5LDM3OTA0LDM3OTI4LDM3OTEzLDM3OTAxLDM3ODc3LDM3ODg4LDM3ODc5LDM3ODk1LDM3OTAyLDM3OTEwLDM3OTA2LDM3ODgyLDM3ODk3LDM3ODgwLDM3ODk4LDM3ODg3LDM3ODg0LDM3OTAwLDM3'@; put 'ODc4LDM3OTA1LDM3ODk0LDM4MzY2LDM4MzY4LDM4MzY3LDM4NzAyLDM4NzAzLDM4ODQxLDM4ODQzLDM4OTA5LDM4OTEwLDM5MDA4LDM5MDEwLDM5MDExLDM5MDA3LDM5MTA1LDM5MTA2LDM5MjQ4LDM5MjQ2LDM5MjU3LDM5MjQ0LDM5MjQzLDM5MjUxLDM5NDc0LDM5NDc2LDM5NDczLDM5NDY4'@; put 'LDM5NDY2LDM5NDc4LDM5NDY1LDM5NDcwLDM5NDgwLDM5NDY5LDM5NjIzLDM5NjI2LDM5NjIyLDM5Njk2LDM5Njk4LDM5Njk3LDM5OTQ3LDM5OTQ0LDM5OTI3LDM5OTQxLDM5OTU0LDM5OTI4LDRlNCwzOTk0MywzOTk1MCwzOTk0MiwzOTk1OSwzOTk1NiwzOTk0NSw0MDM1MSw0MDM0NSw0MDM1'@; put 'Niw0MDM0OSw0MDMzOCw0MDM0NCw0MDMzNiw0MDM0Nyw0MDM1Miw0MDM0MCw0MDM0OCw0MDM2Miw0MDM0Myw0MDM1Myw0MDM0Niw0MDM1NCw0MDM2MCw0MDM1MCw0MDM1NSw0MDM4Myw0MDM2MSw0MDM0Miw0MDM1OCw0MDM1OSw0MDYwMSw0MDYwMyw0MDYwMiw0MDY3Nyw0MDY3Niw0MDY3OSw0'@; put 'MDY3OCw0MDc1Miw0MDc1MCw0MDc5NSw0MDgwMCw0MDc5OCw0MDc5Nyw0MDc5Myw0MDg0OSwyMDc5NCwyMDc5MywyMTE0NCwyMTE0MywyMjIxMSwyMjIwNSwyMjIwNiwyMzM2OCwyMzM2NywyNDAxMSwyNDAxNSwyNDMwNSwyNTA4NSwyNTg4MywyNzM5NCwyNzM4OCwyNzM5NSwyNzM4NCwyNzM5'@; put 'MiwyODczOSwyODc0MCwyODc0NiwyODc0NCwyODc0NSwyODc0MSwyODc0MiwyOTIxMywyOTIxMCwyOTIwOSwyOTU2NiwyOTk3NSwzMDMxNCwzMDY3MiwzMTAyMSwzMTAyNSwzMTAyMywzMTgyOCwzMTgyNywzMTk4NiwzMjM5NCwzMjM5MSwzMjM5MiwzMjM5NSwzMjM5MCwzMjM5NywzMjU4OSwz'@; put 'MjY5OSwzMjgxNiwzMzI0NSwzNDMyOCwzNDM0NiwzNDM0MiwzNDMzNSwzNDMzOSwzNDMzMiwzNDMyOSwzNDM0MywzNDM1MCwzNDMzNywzNDMzNiwzNDM0NSwzNDMzNCwzNDM0MSwzNDg1NywzNDg0NSwzNDg0MywzNDg0OCwzNDg1MiwzNDg0NCwzNDg1OSwzNDg5MCwzNTE4MSwzNTE3NywzNTE4'@; put 'MiwzNTE3OSwzNTMyMiwzNTcwNSwzNTcwNCwzNTY1MywzNTcwNiwzNTcwNywzNjExMiwzNjExNiwzNjI3MSwzNjQ5NCwzNjQ5MiwzNjcwMiwzNjY5OSwzNjcwMSwzNzE5MCwzNzE4OCwzNzE4OSwzNzMwNSwzNzk1MSwzNzk0NywzNzk0MiwzNzkyOSwzNzk0OSwzNzk0OCwzNzkzNiwzNzk0NSwz'@; put 'NzkzMCwzNzk0MywzNzkzMiwzNzk1MiwzNzkzNywzODM3MywzODM3MiwzODM3MSwzODcwOSwzODcxNCwzODg0NywzODg4MSwzOTAxMiwzOTExMywzOTExMCwzOTEwNCwzOTI1NiwzOTI1NCwzOTQ4MSwzOTQ4NSwzOTQ5NCwzOTQ5MiwzOTQ5MCwzOTQ4OSwzOTQ4MiwzOTQ4NywzOTYyOSwzOTcw'@; put 'MSwzOTcwMywzOTcwNCwzOTcwMiwzOTczOCwzOTc2MiwzOTk3OSwzOTk2NSwzOTk2NCwzOTk4MCwzOTk3MSwzOTk3NiwzOTk3NywzOTk3MiwzOTk2OSw0MDM3NSw0MDM3NCw0MDM4MCw0MDM4NSw0MDM5MSw0MDM5NCw0MDM5OSw0MDM4Miw0MDM4OSw0MDM4Nyw0MDM3OSw0MDM3Myw0MDM5OCw0'@; put 'MDM3Nyw0MDM3OCw0MDM2NCw0MDM5Miw0MDM2OSw0MDM2NSw0MDM5Niw0MDM3MSw0MDM5Nyw0MDM3MCw0MDU3MCw0MDYwNCw0MDY4Myw0MDY4Niw0MDY4NSw0MDczMSw0MDcyOCw0MDczMCw0MDc1Myw0MDc4Miw0MDgwNSw0MDgwNCw0MDg1MCwyMDE1MywyMjIxNCwyMjIxMywyMjIxOSwyMjg5'@; put 'NywyMzM3MSwyMzM3MiwyNDAyMSwyNDAxNywyNDMwNiwyNTg4OSwyNTg4OCwyNTg5NCwyNTg5MCwyNzQwMywyNzQwMCwyNzQwMSwyNzY2MSwyODc1NywyODc1OCwyODc1OSwyODc1NCwyOTIxNCwyOTIxNSwyOTM1MywyOTU2NywyOTkxMiwyOTkwOSwyOTkxMywyOTkxMSwzMDMxNywzMDM4MSwz'@; put 'MTAyOSwzMTE1NiwzMTM0NCwzMTM0NSwzMTgzMSwzMTgzNiwzMTgzMywzMTgzNSwzMTgzNCwzMTk4OCwzMTk4NSwzMjQwMSwzMjU5MSwzMjY0NywzMzI0NiwzMzM4NywzNDM1NiwzNDM1NywzNDM1NSwzNDM0OCwzNDM1NCwzNDM1OCwzNDg2MCwzNDg1NiwzNDg1NCwzNDg1OCwzNDg1MywzNTE4'@; put 'NSwzNTI2MywzNTI2MiwzNTMyMywzNTcxMCwzNTcxNiwzNTcxNCwzNTcxOCwzNTcxNywzNTcxMSwzNjExNywzNjUwMSwzNjUwMCwzNjUwNiwzNjQ5OCwzNjQ5NiwzNjUwMiwzNjUwMywzNjcwNCwzNjcwNiwzNzE5MSwzNzk2NCwzNzk2OCwzNzk2MiwzNzk2MywzNzk2NywzNzk1OSwzNzk1Nywz'@; put 'Nzk2MCwzNzk2MSwzNzk1OCwzODcxOSwzODg4MywzOTAxOCwzOTAxNywzOTExNSwzOTI1MiwzOTI1OSwzOTUwMiwzOTUwNywzOTUwOCwzOTUwMCwzOTUwMywzOTQ5NiwzOTQ5OCwzOTQ5NywzOTUwNiwzOTUwNCwzOTYzMiwzOTcwNSwzOTcyMywzOTczOSwzOTc2NiwzOTc2NSw0MDAwNiw0MDAw'@; put 'OCwzOTk5OSw0MDAwNCwzOTk5MywzOTk4Nyw0MDAwMSwzOTk5NiwzOTk5MSwzOTk4OCwzOTk4NiwzOTk5NywzOTk5MCw0MDQxMSw0MDQwMiw0MDQxNCw0MDQxMCw0MDM5NSw0MDQwMCw0MDQxMiw0MDQwMSw0MDQxNSw0MDQyNSw0MDQwOSw0MDQwOCw0MDQwNiw0MDQzNyw0MDQwNSw0MDQxMyw0'@; put 'MDYzMCw0MDY4OCw0MDc1Nyw0MDc1NSw0MDc1NCw0MDc3MCw0MDgxMSw0MDg1Myw0MDg2NiwyMDc5NywyMTE0NSwyMjc2MCwyMjc1OSwyMjg5OCwyMzM3MywyNDAyNCwzNDg2MywyNDM5OSwyNTA4OSwyNTA5MSwyNTA5MiwyNTg5NywyNTg5MywyNjAwNiwyNjM0NywyNzQwOSwyNzQxMCwyNzQw'@; put 'NywyNzU5NCwyODc2MywyODc2MiwyOTIxOCwyOTU3MCwyOTU2OSwyOTU3MSwzMDMyMCwzMDY3NiwzMTg0NywzMTg0NiwzMjQwNSwzMzM4OCwzNDM2MiwzNDM2OCwzNDM2MSwzNDM2NCwzNDM1MywzNDM2MywzNDM2NiwzNDg2NCwzNDg2NiwzNDg2MiwzNDg2NywzNTE5MCwzNTE4OCwzNTE4Nywz'@; put 'NTMyNiwzNTcyNCwzNTcyNiwzNTcyMywzNTcyMCwzNTkwOSwzNjEyMSwzNjUwNCwzNjcwOCwzNjcwNywzNzMwOCwzNzk4NiwzNzk3MywzNzk4MSwzNzk3NSwzNzk4MiwzODg1MiwzODg1MywzODkxMiwzOTUxMCwzOTUxMywzOTcxMCwzOTcxMSwzOTcxMiw0MDAxOCw0MDAyNCw0MDAxNiw0MDAx'@; put 'MCw0MDAxMyw0MDAxMSw0MDAyMSw0MDAyNSw0MDAxMiw0MDAxNCw0MDQ0Myw0MDQzOSw0MDQzMSw0MDQxOSw0MDQyNyw0MDQ0MCw0MDQyMCw0MDQzOCw0MDQxNyw0MDQzMCw0MDQyMiw0MDQzNCw0MDQzMiw0MDQxOCw0MDQyOCw0MDQzNiw0MDQzNSw0MDQyNCw0MDQyOSw0MDY0Miw0MDY1Niw0'@; put 'MDY5MCw0MDY5MSw0MDcxMCw0MDczMiw0MDc2MCw0MDc1OSw0MDc1OCw0MDc3MSw0MDc4Myw0MDgxNyw0MDgxNiw0MDgxNCw0MDgxNSwyMjIyNywyMjIyMSwyMzM3NCwyMzY2MSwyNTkwMSwyNjM0OSwyNjM1MCwyNzQxMSwyODc2NywyODc2OSwyODc2NSwyODc2OCwyOTIxOSwyOTkxNSwyOTky'@; put 'NSwzMDY3NywzMTAzMiwzMTE1OSwzMTE1OCwzMTg1MCwzMjQwNywzMjY0OSwzMzM4OSwzNDM3MSwzNDg3MiwzNDg3MSwzNDg2OSwzNDg5MSwzNTczMiwzNTczMywzNjUxMCwzNjUxMSwzNjUxMiwzNjUwOSwzNzMxMCwzNzMwOSwzNzMxNCwzNzk5NSwzNzk5MiwzNzk5MywzODYyOSwzODcyNiwz'@; put 'ODcyMywzODcyNywzODg1NSwzODg4NSwzOTUxOCwzOTYzNywzOTc2OSw0MDAzNSw0MDAzOSw0MDAzOCw0MDAzNCw0MDAzMCw0MDAzMiw0MDQ1MCw0MDQ0Niw0MDQ1NSw0MDQ1MSw0MDQ1NCw0MDQ1Myw0MDQ0OCw0MDQ0OSw0MDQ1Nyw0MDQ0Nyw0MDQ0NSw0MDQ1Miw0MDYwOCw0MDczNCw0MDc3'@; put 'NCw0MDgyMCw0MDgyMSw0MDgyMiwyMjIyOCwyNTkwMiwyNjA0MCwyNzQxNiwyNzQxNywyNzQxNSwyNzQxOCwyODc3MCwyOTIyMiwyOTM1NCwzMDY4MCwzMDY4MSwzMTAzMywzMTg0OSwzMTg1MSwzMTk5MCwzMjQxMCwzMjQwOCwzMjQxMSwzMjQwOSwzMzI0OCwzMzI0OSwzNDM3NCwzNDM3NSwz'@; put 'NDM3NiwzNTE5MywzNTE5NCwzNTE5NiwzNTE5NSwzNTMyNywzNTczNiwzNTczNywzNjUxNywzNjUxNiwzNjUxNSwzNzk5OCwzNzk5NywzNzk5OSwzODAwMSwzODAwMywzODcyOSwzOTAyNiwzOTI2Myw0MDA0MCw0MDA0Niw0MDA0NSw0MDQ1OSw0MDQ2MSw0MDQ2NCw0MDQ2Myw0MDQ2Niw0MDQ2'@; put 'NSw0MDYwOSw0MDY5Myw0MDcxMyw0MDc3NSw0MDgyNCw0MDgyNyw0MDgyNiw0MDgyNSwyMjMwMiwyODc3NCwzMTg1NSwzNDg3NiwzNjI3NCwzNjUxOCwzNzMxNSwzODAwNCwzODAwOCwzODAwNiwzODAwNSwzOTUyMCw0MDA1Miw0MDA1MSw0MDA0OSw0MDA1Myw0MDQ2OCw0MDQ2Nyw0MDY5NCw0'@; put 'MDcxNCw0MDg2OCwyODc3NiwyODc3MywzMTk5MSwzNDQxMCwzNDg3OCwzNDg3NywzNDg3OSwzNTc0MiwzNTk5NiwzNjUyMSwzNjU1MywzODczMSwzOTAyNywzOTAyOCwzOTExNiwzOTI2NSwzOTMzOSwzOTUyNCwzOTUyNiwzOTUyNywzOTcxNiw0MDQ2OSw0MDQ3MSw0MDc3NiwyNTA5NSwyNzQy'@; put 'MiwyOTIyMywzNDM4MCwzNjUyMCwzODAxOCwzODAxNiwzODAxNywzOTUyOSwzOTUyOCwzOTcyNiw0MDQ3MywyOTIyNSwzNDM3OSwzNTc0MywzODAxOSw0MDA1Nyw0MDYzMSwzMDMyNSwzOTUzMSw0MDA1OCw0MDQ3NywyODc3NywyODc3OCw0MDYxMiw0MDgzMCw0MDc3Nyw0MDg1NiwzMDg0OSwz'@; put 'NzU2MSwzNTAyMywyMjcxNSwyNDY1OCwzMTkxMSwyMzI5MCw5NTU2LDk1NzQsOTU1OSw5NTY4LDk1ODAsOTU3MSw5NTYyLDk1NzcsOTU2NSw5NTU0LDk1NzIsOTU1Nyw5NTY2LDk1NzgsOTU2OSw5NTYwLDk1NzUsOTU2Myw5NTU1LDk1NzMsOTU1OCw5NTY3LDk1NzksOTU3MCw5NTYxLDk1NzYs'@; put 'OTU2NCw5NTUzLDk1NTIsOTU4MSw5NTgyLDk1ODQsOTU4Myw2NTUxNywxMzI0MjMsMzc1OTUsMTMyNTc1LDE0NzM5NywzNDEyNCwxNzA3NywyOTY3OSwyMDkxNywxMzg5NywxNDk4MjYsMTY2MzcyLDM3NzAwLDEzNzY5MSwzMzUxOCwxNDY2MzIsMzA3ODAsMjY0MzYsMjUzMTEsMTQ5ODExLDE2'@; put 'NjMxNCwxMzE3NDQsMTU4NjQzLDEzNTk0MSwyMDM5NSwxNDA1MjUsMjA0ODgsMTU5MDE3LDE2MjQzNiwxNDQ4OTYsMTUwMTkzLDE0MDU2MywyMDUyMSwxMzE5NjYsMjQ0ODQsMTMxOTY4LDEzMTkxMSwyODM3OSwxMzIxMjcsMjA2MDUsMjA3MzcsMTM0MzQsMjA3NTAsMzkwMjAsMTQxNDcsMzM4'@; put 'MTQsMTQ5OTI0LDEzMjIzMSwyMDgzMiwxNDQzMDgsMjA4NDIsMTM0MTQzLDEzOTUxNiwxMzE4MTMsMTQwNTkyLDEzMjQ5NCwxNDM5MjMsMTM3NjAzLDIzNDI2LDM0Njg1LDEzMjUzMSwxNDY1ODUsMjA5MTQsMjA5MjAsNDAyNDQsMjA5MzcsMjA5NDMsMjA5NDUsMTU1ODAsMjA5NDcsMTUwMTgy'@; put 'LDIwOTE1LDIwOTYyLDIxMzE0LDIwOTczLDMzNzQxLDI2OTQyLDE0NTE5NywyNDQ0MywyMTAwMywyMTAzMCwyMTA1MiwyMTE3MywyMTA3OSwyMTE0MCwyMTE3NywyMTE4OSwzMTc2NSwzNDExNCwyMTIxNiwzNDMxNywxNTg0ODMsMjEyNTMsMTY2NjIyLDIxODMzLDI4Mzc3LDE0NzMyOCwxMzM0'@; put 'NjAsMTQ3NDM2LDIxMjk5LDIxMzE2LDEzNDExNCwyNzg1MSwxMzY5OTgsMjY2NTEsMjk2NTMsMjQ2NTAsMTYwNDIsMTQ1NDAsMTM2OTM2LDI5MTQ5LDE3NTcwLDIxMzU3LDIxMzY0LDE2NTU0NywyMTM3NCwyMTM3NSwxMzY1OTgsMTM2NzIzLDMwNjk0LDIxMzk1LDE2NjU1NSwyMTQwOCwyMTQx'@; put 'OSwyMTQyMiwyOTYwNywxNTM0NTgsMTYyMTcsMjk1OTYsMjE0NDEsMjE0NDUsMjc3MjEsMjAwNDEsMjI1MjYsMjE0NjUsMTUwMTksMTM0MDMxLDIxNDcyLDE0NzQzNSwxNDI3NTUsMjE0OTQsMTM0MjYzLDIxNTIzLDI4NzkzLDIxODAzLDI2MTk5LDI3OTk1LDIxNjEzLDE1ODU0NywxMzQ1MTYs'@; put 'MjE4NTMsMjE2NDcsMjE2NjgsMTgzNDIsMTM2OTczLDEzNDg3NywxNTc5NiwxMzQ0NzcsMTY2MzMyLDE0MDk1MiwyMTgzMSwxOTY5MywyMTU1MSwyOTcxOSwyMTg5NCwyMTkyOSwyMjAyMSwxMzc0MzEsMTQ3NTE0LDE3NzQ2LDE0ODUzMywyNjI5MSwxMzUzNDgsMjIwNzEsMjYzMTcsMTQ0MDEw'@; put 'LDI2Mjc2LDI2Mjg1LDIyMDkzLDIyMDk1LDMwOTYxLDIyMjU3LDM4NzkxLDIxNTAyLDIyMjcyLDIyMjU1LDIyMjUzLDE2Njc1OCwxMzg1OSwxMzU3NTksMjIzNDIsMTQ3ODc3LDI3NzU4LDI4ODExLDIyMzM4LDE0MDAxLDE1ODg0NiwyMjUwMiwxMzYyMTQsMjI1MzEsMTM2Mjc2LDE0ODMyMywy'@; put 'MjU2NiwxNTA1MTcsMjI2MjAsMjI2OTgsMTM2NjUsMjI3NTIsMjI3NDgsMTM1NzQwLDIyNzc5LDIzNTUxLDIyMzM5LDE3MjM2OCwxNDgwODgsMzc4NDMsMTM3MjksMjI4MTUsMjY3OTAsMTQwMTksMjgyNDksMTM2NzY2LDIzMDc2LDIxODQzLDEzNjg1MCwzNDA1MywyMjk4NSwxMzQ0NzgsMTU4'@; put 'ODQ5LDE1OTAxOCwxMzcxODAsMjMwMDEsMTM3MjExLDEzNzEzOCwxNTkxNDIsMjgwMTcsMTM3MjU2LDEzNjkxNywyMzAzMywxNTkzMDEsMjMyMTEsMjMxMzksMTQwNTQsMTQ5OTI5LDIzMTU5LDE0MDg4LDIzMTkwLDI5Nzk3LDIzMjUxLDE1OTY0OSwxNDA2MjgsMTU3NDksMTM3NDg5LDE0MTMw'@; put 'LDEzNjg4OCwyNDE5NSwyMTIwMCwyMzQxNCwyNTk5MiwyMzQyMCwxNjIzMTgsMTYzODgsMTg1MjUsMTMxNTg4LDIzNTA5LDI0OTI4LDEzNzc4MCwxNTQwNjAsMTMyNTE3LDIzNTM5LDIzNDUzLDE5NzI4LDIzNTU3LDEzODA1MiwyMzU3MSwyOTY0NiwyMzU3MiwxMzg0MDUsMTU4NTA0LDIzNjI1'@; put 'LDE4NjUzLDIzNjg1LDIzNzg1LDIzNzkxLDIzOTQ3LDEzODc0NSwxMzg4MDcsMjM4MjQsMjM4MzIsMjM4NzgsMTM4OTE2LDIzNzM4LDI0MDIzLDMzNTMyLDE0MzgxLDE0OTc2MSwxMzkzMzcsMTM5NjM1LDMzNDE1LDE0MzkwLDE1Mjk4LDI0MTEwLDI3Mjc0LDI0MTgxLDI0MTg2LDE0ODY2OCwx'@; put 'MzQzNTUsMjE0MTQsMjAxNTEsMjQyNzIsMjE0MTYsMTM3MDczLDI0MDczLDI0MzA4LDE2NDk5NCwyNDMxMywyNDMxNSwxNDQ5NiwyNDMxNiwyNjY4NiwzNzkxNSwyNDMzMywxMzE1MjEsMTk0NzA4LDE1MDcwLDE4NjA2LDEzNTk5NCwyNDM3OCwxNTc4MzIsMTQwMjQwLDI0NDA4LDE0MDQwMSwy'@; put 'NDQxOSwzODg0NSwxNTkzNDIsMjQ0MzQsMzc2OTYsMTY2NDU0LDI0NDg3LDIzOTkwLDE1NzExLDE1MjE0NCwxMzkxMTQsMTU5OTkyLDE0MDkwNCwzNzMzNCwxMzE3NDIsMTY2NDQxLDI0NjI1LDI2MjQ1LDEzNzMzNSwxNDY5MSwxNTgxNSwxMzg4MSwyMjQxNiwxNDEyMzYsMzEwODksMTU5MzYs'@; put 'MjQ3MzQsMjQ3NDAsMjQ3NTUsMTQ5ODkwLDE0OTkwMywxNjIzODcsMjk4NjAsMjA3MDUsMjMyMDAsMjQ5MzIsMzM4MjgsMjQ4OTgsMTk0NzI2LDE1OTQ0MiwyNDk2MSwyMDk4MCwxMzI2OTQsMjQ5NjcsMjM0NjYsMTQ3MzgzLDE0MTQwNywyNTA0MywxNjY4MTMsMTcwMzMzLDI1MDQwLDE0NjQy'@; put 'LDE0MTY5NiwxNDE1MDUsMjQ2MTEsMjQ5MjQsMjU4ODYsMjU0ODMsMTMxMzUyLDI1Mjg1LDEzNzA3MiwyNTMwMSwxNDI4NjEsMjU0NTIsMTQ5OTgzLDE0ODcxLDI1NjU2LDI1NTkyLDEzNjA3OCwxMzcyMTIsMjU3NDQsMjg1NTQsMTQyOTAyLDM4OTMyLDE0NzU5NiwxNTMzNzMsMjU4MjUsMjU4'@; put 'MjksMzgwMTEsMTQ5NTAsMjU2NTgsMTQ5MzUsMjU5MzMsMjg0MzgsMTUwMDU2LDE1MDA1MSwyNTk4OSwyNTk2NSwyNTk1MSwxNDM0ODYsMjYwMzcsMTQ5ODI0LDE5MjU1LDI2MDY1LDE2NjAwLDEzNzI1NywyNjA4MCwyNjA4MywyNDU0MywxNDQzODQsMjYxMzYsMTQzODYzLDE0Mzg2NCwyNjE4'@; put 'MCwxNDM3ODAsMTQzNzgxLDI2MTg3LDEzNDc3MywyNjIxNSwxNTIwMzgsMjYyMjcsMjYyMjgsMTM4ODEzLDE0MzkyMSwxNjUzNjQsMTQzODE2LDE1MjMzOSwzMDY2MSwxNDE1NTksMzkzMzIsMjYzNzAsMTQ4MzgwLDE1MDA0OSwxNTE0NywyNzEzMCwxNDUzNDYsMjY0NjIsMjY0NzEsMjY0NjYs'@; put 'MTQ3OTE3LDE2ODE3MywyNjU4MywxNzY0MSwyNjY1OCwyODI0MCwzNzQzNiwyNjYyNSwxNDQzNTgsMTU5MTM2LDI2NzE3LDE0NDQ5NSwyNzEwNSwyNzE0NywxNjY2MjMsMjY5OTUsMjY4MTksMTQ0ODQ1LDI2ODgxLDI2ODgwLDE1NjY2LDE0ODQ5LDE0NDk1NiwxNTIzMiwyNjU0MCwyNjk3Nywx'@; put 'NjY0NzQsMTcxNDgsMjY5MzQsMjcwMzIsMTUyNjUsMTMyMDQxLDMzNjM1LDIwNjI0LDI3MTI5LDE0NDk4NSwxMzk1NjIsMjcyMDUsMTQ1MTU1LDI3MjkzLDE1MzQ3LDI2NTQ1LDI3MzM2LDE2ODM0OCwxNTM3MywyNzQyMSwxMzM0MTEsMjQ3OTgsMjc0NDUsMjc1MDgsMTQxMjYxLDI4MzQxLDE0'@; put 'NjEzOSwxMzIwMjEsMTM3NTYwLDE0MTQ0LDIxNTM3LDE0NjI2NiwyNzYxNywxNDcxOTYsMjc2MTIsMjc3MDMsMTQwNDI3LDE0OTc0NSwxNTg1NDUsMjc3MzgsMzMzMTgsMjc3NjksMTQ2ODc2LDE3NjA1LDE0Njg3NywxNDc4NzYsMTQ5NzcyLDE0OTc2MCwxNDY2MzMsMTQwNTMsMTU1OTUsMTM0'@; put 'NDUwLDM5ODExLDE0Mzg2NSwxNDA0MzMsMzI2NTUsMjY2NzksMTU5MDEzLDE1OTEzNywxNTkyMTEsMjgwNTQsMjc5OTYsMjgyODQsMjg0MjAsMTQ5ODg3LDE0NzU4OSwxNTkzNDYsMzQwOTksMTU5NjA0LDIwOTM1LDI3ODA0LDI4MTg5LDMzODM4LDE2NjY4OSwyODIwNywxNDY5OTEsMjk3Nzks'@; put 'MTQ3MzMwLDMxMTgwLDI4MjM5LDIzMTg1LDE0MzQzNSwyODY2NCwxNDA5MywyODU3MywxNDY5OTIsMjg0MTAsMTM2MzQzLDE0NzUxNywxNzc0OSwzNzg3MiwyODQ4NCwyODUwOCwxNTY5NCwyODUzMiwxNjgzMDQsMTU2NzUsMjg1NzUsMTQ3NzgwLDI4NjI3LDE0NzYwMSwxNDc3OTcsMTQ3NTEz'@; put 'LDE0NzQ0MCwxNDczODAsMTQ3Nzc1LDIwOTU5LDE0Nzc5OCwxNDc3OTksMTQ3Nzc2LDE1NjEyNSwyODc0NywyODc5OCwyODgzOSwyODgwMSwyODg3NiwyODg4NSwyODg4NiwyODg5NSwxNjY0NCwxNTg0OCwyOTEwOCwyOTA3OCwxNDgwODcsMjg5NzEsMjg5OTcsMjMxNzYsMjkwMDIsMjkwMzgs'@; put 'MjM3MDgsMTQ4MzI1LDI5MDA3LDM3NzMwLDE0ODE2MSwyODk3MiwxNDg1NzAsMTUwMDU1LDE1MDA1MCwyOTExNCwxNjY4ODgsMjg4NjEsMjkxOTgsMzc5NTQsMjkyMDUsMjI4MDEsMzc5NTUsMjkyMjAsMzc2OTcsMTUzMDkzLDI5MjMwLDI5MjQ4LDE0OTg3NiwyNjgxMywyOTI2OSwyOTI3MSwx'@; put 'NTk1NywxNDM0MjgsMjY2MzcsMjg0NzcsMjkzMTQsMjk0ODIsMjk0ODMsMTQ5NTM5LDE2NTkzMSwxODY2OSwxNjU4OTIsMjk0ODAsMjk0ODYsMjk2NDcsMjk2MTAsMTM0MjAyLDE1ODI1NCwyOTY0MSwyOTc2OSwxNDc5MzgsMTM2OTM1LDE1MDA1MiwyNjE0NywxNDAyMSwxNDk5NDMsMTQ5OTAx'@; put 'LDE1MDAxMSwyOTY4NywyOTcxNywyNjg4MywxNTAwNTQsMjk3NTMsMTMyNTQ3LDE2MDg3LDI5Nzg4LDE0MTQ4NSwyOTc5MiwxNjc2MDIsMjk3NjcsMjk2NjgsMjk4MTQsMzM3MjEsMjk4MDQsMTQxMjgsMjk4MTIsMzc4NzMsMjcxODAsMjk4MjYsMTg3NzEsMTUwMTU2LDE0NzgwNywxNTAxMzcs'@; put 'MTY2Nzk5LDIzMzY2LDE2NjkxNSwxMzczNzQsMjk4OTYsMTM3NjA4LDI5OTY2LDI5OTI5LDI5OTgyLDE2NzY0MSwxMzc4MDMsMjM1MTEsMTY3NTk2LDM3NzY1LDMwMDI5LDMwMDI2LDMwMDU1LDMwMDYyLDE1MTQyNiwxNjEzMiwxNTA4MDMsMzAwOTQsMjk3ODksMzAxMTAsMzAxMzIsMzAyMTAs'@; put 'MzAyNTIsMzAyODksMzAyODcsMzAzMTksMzAzMjYsMTU2NjYxLDMwMzUyLDMzMjYzLDE0MzI4LDE1Nzk2OSwxNTc5NjYsMzAzNjksMzAzNzMsMzAzOTEsMzA0MTIsMTU5NjQ3LDMzODkwLDE1MTcwOSwxNTE5MzMsMTM4NzgwLDMwNDk0LDMwNTAyLDMwNTI4LDI1Nzc1LDE1MjA5NiwzMDU1Miwx'@; put 'NDQwNDQsMzA2MzksMTY2MjQ0LDE2NjI0OCwxMzY4OTcsMzA3MDgsMzA3MjksMTM2MDU0LDE1MDAzNCwyNjgyNiwzMDg5NSwzMDkxOSwzMDkzMSwzODU2NSwzMTAyMiwxNTMwNTYsMzA5MzUsMzEwMjgsMzA4OTcsMTYxMjkyLDM2NzkyLDM0OTQ4LDE2NjY5OSwxNTU3NzksMTQwODI4LDMxMTEw'@; put 'LDM1MDcyLDI2ODgyLDMxMTA0LDE1MzY4NywzMTEzMywxNjI2MTcsMzEwMzYsMzExNDUsMjgyMDIsMTYwMDM4LDE2MDQwLDMxMTc0LDE2ODIwNSwzMTE4OF0sImV1Yy1rciI6WzQ0MDM0LDQ0MDM1LDQ0MDM3LDQ0MDM4LDQ0MDQzLDQ0MDQ0LDQ0MDQ1LDQ0MDQ2LDQ0MDQ3LDQ0MDU2LDQ0MDYy'@; put 'LDQ0MDYzLDQ0MDY1LDQ0MDY2LDQ0MDY3LDQ0MDY5LDQ0MDcwLDQ0MDcxLDQ0MDcyLDQ0MDczLDQ0MDc0LDQ0MDc1LDQ0MDc4LDQ0MDgyLDQ0MDgzLDQ0MDg0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ0MDg1LDQ0MDg2LDQ0MDg3LDQ0MDkwLDQ0MDkxLDQ0MDkzLDQ0MDk0LDQ0'@; put 'MDk1LDQ0MDk3LDQ0MDk4LDQ0MDk5LDQ0MTAwLDQ0MTAxLDQ0MTAyLDQ0MTAzLDQ0MTA0LDQ0MTA1LDQ0MTA2LDQ0MTA4LDQ0MTEwLDQ0MTExLDQ0MTEyLDQ0MTEzLDQ0MTE0LDQ0MTE1LDQ0MTE3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ0MTE4LDQ0MTE5LDQ0MTIxLDQ0MTIy'@; put 'LDQ0MTIzLDQ0MTI1LDQ0MTI2LDQ0MTI3LDQ0MTI4LDQ0MTI5LDQ0MTMwLDQ0MTMxLDQ0MTMyLDQ0MTMzLDQ0MTM0LDQ0MTM1LDQ0MTM2LDQ0MTM3LDQ0MTM4LDQ0MTM5LDQ0MTQwLDQ0MTQxLDQ0MTQyLDQ0MTQzLDQ0MTQ2LDQ0MTQ3LDQ0MTQ5LDQ0MTUwLDQ0MTUzLDQ0MTU1LDQ0MTU2LDQ0'@; put 'MTU3LDQ0MTU4LDQ0MTU5LDQ0MTYyLDQ0MTY3LDQ0MTY4LDQ0MTczLDQ0MTc0LDQ0MTc1LDQ0MTc3LDQ0MTc4LDQ0MTc5LDQ0MTgxLDQ0MTgyLDQ0MTgzLDQ0MTg0LDQ0MTg1LDQ0MTg2LDQ0MTg3LDQ0MTkwLDQ0MTk0LDQ0MTk1LDQ0MTk2LDQ0MTk3LDQ0MTk4LDQ0MTk5LDQ0MjAzLDQ0MjA1'@; put 'LDQ0MjA2LDQ0MjA5LDQ0MjEwLDQ0MjExLDQ0MjEyLDQ0MjEzLDQ0MjE0LDQ0MjE1LDQ0MjE4LDQ0MjIyLDQ0MjIzLDQ0MjI0LDQ0MjI2LDQ0MjI3LDQ0MjI5LDQ0MjMwLDQ0MjMxLDQ0MjMzLDQ0MjM0LDQ0MjM1LDQ0MjM3LDQ0MjM4LDQ0MjM5LDQ0MjQwLDQ0MjQxLDQ0MjQyLDQ0MjQzLDQ0'@; put 'MjQ0LDQ0MjQ2LDQ0MjQ4LDQ0MjQ5LDQ0MjUwLDQ0MjUxLDQ0MjUyLDQ0MjUzLDQ0MjU0LDQ0MjU1LDQ0MjU4LDQ0MjU5LDQ0MjYxLDQ0MjYyLDQ0MjY1LDQ0MjY3LDQ0MjY5LDQ0MjcwLDQ0Mjc0LDQ0Mjc2LDQ0Mjc5LDQ0MjgwLDQ0MjgxLDQ0MjgyLDQ0MjgzLDQ0Mjg2LDQ0Mjg3LDQ0Mjg5'@; put 'LDQ0MjkwLDQ0MjkxLDQ0MjkzLDQ0Mjk1LDQ0Mjk2LDQ0Mjk3LDQ0Mjk4LDQ0Mjk5LDQ0MzAyLDQ0MzA0LDQ0MzA2LDQ0MzA3LDQ0MzA4LDQ0MzA5LDQ0MzEwLDQ0MzExLDQ0MzEzLDQ0MzE0LDQ0MzE1LDQ0MzE3LDQ0MzE4LDQ0MzE5LDQ0MzIxLDQ0MzIyLDQ0MzIzLDQ0MzI0LDQ0MzI1LDQ0'@; put 'MzI2LDQ0MzI3LDQ0MzI4LDQ0MzMwLDQ0MzMxLDQ0MzM0LDQ0MzM1LDQ0MzM2LDQ0MzM3LDQ0MzM4LDQ0MzM5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ0MzQyLDQ0MzQzLDQ0MzQ1LDQ0MzQ2LDQ0MzQ3LDQ0MzQ5LDQ0MzUwLDQ0MzUxLDQ0MzUyLDQ0MzUzLDQ0MzU0LDQ0MzU1'@; put 'LDQ0MzU4LDQ0MzYwLDQ0MzYyLDQ0MzYzLDQ0MzY0LDQ0MzY1LDQ0MzY2LDQ0MzY3LDQ0MzY5LDQ0MzcwLDQ0MzcxLDQ0MzczLDQ0Mzc0LDQ0Mzc1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ0Mzc3LDQ0Mzc4LDQ0Mzc5LDQ0MzgwLDQ0MzgxLDQ0MzgyLDQ0MzgzLDQ0Mzg0LDQ0'@; put 'Mzg2LDQ0Mzg4LDQ0Mzg5LDQ0MzkwLDQ0MzkxLDQ0MzkyLDQ0MzkzLDQ0Mzk0LDQ0Mzk1LDQ0Mzk4LDQ0Mzk5LDQ0NDAxLDQ0NDAyLDQ0NDA3LDQ0NDA4LDQ0NDA5LDQ0NDEwLDQ0NDE0LDQ0NDE2LDQ0NDE5LDQ0NDIwLDQ0NDIxLDQ0NDIyLDQ0NDIzLDQ0NDI2LDQ0NDI3LDQ0NDI5LDQ0NDMw'@; put 'LDQ0NDMxLDQ0NDMzLDQ0NDM0LDQ0NDM1LDQ0NDM2LDQ0NDM3LDQ0NDM4LDQ0NDM5LDQ0NDQwLDQ0NDQxLDQ0NDQyLDQ0NDQzLDQ0NDQ2LDQ0NDQ3LDQ0NDQ4LDQ0NDQ5LDQ0NDUwLDQ0NDUxLDQ0NDUzLDQ0NDU0LDQ0NDU1LDQ0NDU2LDQ0NDU3LDQ0NDU4LDQ0NDU5LDQ0NDYwLDQ0NDYxLDQ0'@; put 'NDYyLDQ0NDYzLDQ0NDY0LDQ0NDY1LDQ0NDY2LDQ0NDY3LDQ0NDY4LDQ0NDY5LDQ0NDcwLDQ0NDcyLDQ0NDczLDQ0NDc0LDQ0NDc1LDQ0NDc2LDQ0NDc3LDQ0NDc4LDQ0NDc5LDQ0NDgyLDQ0NDgzLDQ0NDg1LDQ0NDg2LDQ0NDg3LDQ0NDg5LDQ0NDkwLDQ0NDkxLDQ0NDkyLDQ0NDkzLDQ0NDk0'@; put 'LDQ0NDk1LDQ0NDk4LDQ0NTAwLDQ0NTAxLDQ0NTAyLDQ0NTAzLDQ0NTA0LDQ0NTA1LDQ0NTA2LDQ0NTA3LDQ0NTA5LDQ0NTEwLDQ0NTExLDQ0NTEzLDQ0NTE0LDQ0NTE1LDQ0NTE3LDQ0NTE4LDQ0NTE5LDQ0NTIwLDQ0NTIxLDQ0NTIyLDQ0NTIzLDQ0NTI0LDQ0NTI1LDQ0NTI2LDQ0NTI3LDQ0'@; put 'NTI4LDQ0NTI5LDQ0NTMwLDQ0NTMxLDQ0NTMyLDQ0NTMzLDQ0NTM0LDQ0NTM1LDQ0NTM4LDQ0NTM5LDQ0NTQxLDQ0NTQyLDQ0NTQ2LDQ0NTQ3LDQ0NTQ4LDQ0NTQ5LDQ0NTUwLDQ0NTUxLDQ0NTU0LDQ0NTU2LDQ0NTU4LDQ0NTU5LDQ0NTYwLDQ0NTYxLDQ0NTYyLDQ0NTYzLDQ0NTY1LDQ0NTY2'@; put 'LDQ0NTY3LDQ0NTY4LDQ0NTY5LDQ0NTcwLDQ0NTcxLDQ0NTcyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ0NTczLDQ0NTc0LDQ0NTc1LDQ0NTc2LDQ0NTc3LDQ0NTc4LDQ0NTc5LDQ0NTgwLDQ0NTgxLDQ0NTgyLDQ0NTgzLDQ0NTg0LDQ0NTg1LDQ0NTg2LDQ0NTg3LDQ0NTg4LDQ0'@; put 'NTg5LDQ0NTkwLDQ0NTkxLDQ0NTk0LDQ0NTk1LDQ0NTk3LDQ0NTk4LDQ0NjAxLDQ0NjAzLDQ0NjA0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ0NjA1LDQ0NjA2LDQ0NjA3LDQ0NjEwLDQ0NjEyLDQ0NjE1LDQ0NjE2LDQ0NjE3LDQ0NjE5LDQ0NjIzLDQ0NjI1LDQ0NjI2LDQ0NjI3'@; put 'LDQ0NjI5LDQ0NjMxLDQ0NjMyLDQ0NjMzLDQ0NjM0LDQ0NjM1LDQ0NjM4LDQ0NjQyLDQ0NjQzLDQ0NjQ0LDQ0NjQ2LDQ0NjQ3LDQ0NjUwLDQ0NjUxLDQ0NjUzLDQ0NjU0LDQ0NjU1LDQ0NjU3LDQ0NjU4LDQ0NjU5LDQ0NjYwLDQ0NjYxLDQ0NjYyLDQ0NjYzLDQ0NjY2LDQ0NjcwLDQ0NjcxLDQ0'@; put 'NjcyLDQ0NjczLDQ0Njc0LDQ0Njc1LDQ0Njc4LDQ0Njc5LDQ0NjgwLDQ0NjgxLDQ0NjgyLDQ0NjgzLDQ0Njg1LDQ0Njg2LDQ0Njg3LDQ0Njg4LDQ0Njg5LDQ0NjkwLDQ0NjkxLDQ0NjkyLDQ0NjkzLDQ0Njk0LDQ0Njk1LDQ0Njk2LDQ0Njk3LDQ0Njk4LDQ0Njk5LDQ0NzAwLDQ0NzAxLDQ0NzAy'@; put 'LDQ0NzAzLDQ0NzA0LDQ0NzA1LDQ0NzA2LDQ0NzA3LDQ0NzA4LDQ0NzA5LDQ0NzEwLDQ0NzExLDQ0NzEyLDQ0NzEzLDQ0NzE0LDQ0NzE1LDQ0NzE2LDQ0NzE3LDQ0NzE4LDQ0NzE5LDQ0NzIwLDQ0NzIxLDQ0NzIyLDQ0NzIzLDQ0NzI0LDQ0NzI1LDQ0NzI2LDQ0NzI3LDQ0NzI4LDQ0NzI5LDQ0'@; put 'NzMwLDQ0NzMxLDQ0NzM1LDQ0NzM3LDQ0NzM4LDQ0NzM5LDQ0NzQxLDQ0NzQyLDQ0NzQzLDQ0NzQ0LDQ0NzQ1LDQ0NzQ2LDQ0NzQ3LDQ0NzUwLDQ0NzU0LDQ0NzU1LDQ0NzU2LDQ0NzU3LDQ0NzU4LDQ0NzU5LDQ0NzYyLDQ0NzYzLDQ0NzY1LDQ0NzY2LDQ0NzY3LDQ0NzY4LDQ0NzY5LDQ0Nzcw'@; put 'LDQ0NzcxLDQ0NzcyLDQ0NzczLDQ0Nzc0LDQ0Nzc1LDQ0Nzc3LDQ0Nzc4LDQ0NzgwLDQ0NzgyLDQ0NzgzLDQ0Nzg0LDQ0Nzg1LDQ0Nzg2LDQ0Nzg3LDQ0Nzg5LDQ0NzkwLDQ0NzkxLDQ0NzkzLDQ0Nzk0LDQ0Nzk1LDQ0Nzk3LDQ0Nzk4LDQ0Nzk5LDQ0ODAwLDQ0ODAxLDQ0ODAyLDQ0ODAzLDQ0'@; put 'ODA0LDQ0ODA1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ0ODA2LDQ0ODA5LDQ0ODEwLDQ0ODExLDQ0ODEyLDQ0ODE0LDQ0ODE1LDQ0ODE3LDQ0ODE4LDQ0ODE5LDQ0ODIwLDQ0ODIxLDQ0ODIyLDQ0ODIzLDQ0ODI0LDQ0ODI1LDQ0ODI2LDQ0ODI3LDQ0ODI4LDQ0ODI5LDQ0ODMw'@; put 'LDQ0ODMxLDQ0ODMyLDQ0ODMzLDQ0ODM0LDQ0ODM1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ0ODM2LDQ0ODM3LDQ0ODM4LDQ0ODM5LDQ0ODQwLDQ0ODQxLDQ0ODQyLDQ0ODQzLDQ0ODQ2LDQ0ODQ3LDQ0ODQ5LDQ0ODUxLDQ0ODUzLDQ0ODU0LDQ0ODU1LDQ0ODU2LDQ0ODU3LDQ0'@; put 'ODU4LDQ0ODU5LDQ0ODYyLDQ0ODY0LDQ0ODY4LDQ0ODY5LDQ0ODcwLDQ0ODcxLDQ0ODc0LDQ0ODc1LDQ0ODc2LDQ0ODc3LDQ0ODc4LDQ0ODc5LDQ0ODgxLDQ0ODgyLDQ0ODgzLDQ0ODg0LDQ0ODg1LDQ0ODg2LDQ0ODg3LDQ0ODg4LDQ0ODg5LDQ0ODkwLDQ0ODkxLDQ0ODk0LDQ0ODk1LDQ0ODk2'@; put 'LDQ0ODk3LDQ0ODk4LDQ0ODk5LDQ0OTAyLDQ0OTAzLDQ0OTA0LDQ0OTA1LDQ0OTA2LDQ0OTA3LDQ0OTA4LDQ0OTA5LDQ0OTEwLDQ0OTExLDQ0OTEyLDQ0OTEzLDQ0OTE0LDQ0OTE1LDQ0OTE2LDQ0OTE3LDQ0OTE4LDQ0OTE5LDQ0OTIwLDQ0OTIyLDQ0OTIzLDQ0OTI0LDQ0OTI1LDQ0OTI2LDQ0'@; put 'OTI3LDQ0OTI5LDQ0OTMwLDQ0OTMxLDQ0OTMzLDQ0OTM0LDQ0OTM1LDQ0OTM3LDQ0OTM4LDQ0OTM5LDQ0OTQwLDQ0OTQxLDQ0OTQyLDQ0OTQzLDQ0OTQ2LDQ0OTQ3LDQ0OTQ4LDQ0OTUwLDQ0OTUxLDQ0OTUyLDQ0OTUzLDQ0OTU0LDQ0OTU1LDQ0OTU3LDQ0OTU4LDQ0OTU5LDQ0OTYwLDQ0OTYx'@; put 'LDQ0OTYyLDQ0OTYzLDQ0OTY0LDQ0OTY1LDQ0OTY2LDQ0OTY3LDQ0OTY4LDQ0OTY5LDQ0OTcwLDQ0OTcxLDQ0OTcyLDQ0OTczLDQ0OTc0LDQ0OTc1LDQ0OTc2LDQ0OTc3LDQ0OTc4LDQ0OTc5LDQ0OTgwLDQ0OTgxLDQ0OTgyLDQ0OTgzLDQ0OTg2LDQ0OTg3LDQ0OTg5LDQ0OTkwLDQ0OTkxLDQ0'@; put 'OTkzLDQ0OTk0LDQ0OTk1LDQ0OTk2LDQ0OTk3LDQ0OTk4LDQ1MDAyLDQ1MDA0LDQ1MDA3LDQ1MDA4LDQ1MDA5LDQ1MDEwLDQ1MDExLDQ1MDEzLDQ1MDE0LDQ1MDE1LDQ1MDE2LDQ1MDE3LDQ1MDE4LDQ1MDE5LDQ1MDIxLDQ1MDIyLDQ1MDIzLDQ1MDI0LDQ1MDI1LG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLDQ1MDI2LDQ1MDI3LDQ1MDI4LDQ1MDI5LDQ1MDMwLDQ1MDMxLDQ1MDM0LDQ1MDM1LDQ1MDM2LDQ1MDM3LDQ1MDM4LDQ1MDM5LDQ1MDQyLDQ1MDQzLDQ1MDQ1LDQ1MDQ2LDQ1MDQ3LDQ1MDQ5LDQ1MDUwLDQ1MDUxLDQ1MDUyLDQ1MDUzLDQ1MDU0LDQ1MDU1LDQ1MDU4LDQ1'@; put 'MDU5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ1MDYxLDQ1MDYyLDQ1MDYzLDQ1MDY0LDQ1MDY1LDQ1MDY2LDQ1MDY3LDQ1MDY5LDQ1MDcwLDQ1MDcxLDQ1MDczLDQ1MDc0LDQ1MDc1LDQ1MDc3LDQ1MDc4LDQ1MDc5LDQ1MDgwLDQ1MDgxLDQ1MDgyLDQ1MDgzLDQ1MDg2LDQ1MDg3'@; put 'LDQ1MDg4LDQ1MDg5LDQ1MDkwLDQ1MDkxLDQ1MDkyLDQ1MDkzLDQ1MDk0LDQ1MDk1LDQ1MDk3LDQ1MDk4LDQ1MDk5LDQ1MTAwLDQ1MTAxLDQ1MTAyLDQ1MTAzLDQ1MTA0LDQ1MTA1LDQ1MTA2LDQ1MTA3LDQ1MTA4LDQ1MTA5LDQ1MTEwLDQ1MTExLDQ1MTEyLDQ1MTEzLDQ1MTE0LDQ1MTE1LDQ1'@; put 'MTE2LDQ1MTE3LDQ1MTE4LDQ1MTE5LDQ1MTIwLDQ1MTIxLDQ1MTIyLDQ1MTIzLDQ1MTI2LDQ1MTI3LDQ1MTI5LDQ1MTMxLDQ1MTMzLDQ1MTM1LDQ1MTM2LDQ1MTM3LDQ1MTM4LDQ1MTQyLDQ1MTQ0LDQ1MTQ2LDQ1MTQ3LDQ1MTQ4LDQ1MTUwLDQ1MTUxLDQ1MTUyLDQ1MTUzLDQ1MTU0LDQ1MTU1'@; put 'LDQ1MTU2LDQ1MTU3LDQ1MTU4LDQ1MTU5LDQ1MTYwLDQ1MTYxLDQ1MTYyLDQ1MTYzLDQ1MTY0LDQ1MTY1LDQ1MTY2LDQ1MTY3LDQ1MTY4LDQ1MTY5LDQ1MTcwLDQ1MTcxLDQ1MTcyLDQ1MTczLDQ1MTc0LDQ1MTc1LDQ1MTc2LDQ1MTc3LDQ1MTc4LDQ1MTc5LDQ1MTgyLDQ1MTgzLDQ1MTg1LDQ1'@; put 'MTg2LDQ1MTg3LDQ1MTg5LDQ1MTkwLDQ1MTkxLDQ1MTkyLDQ1MTkzLDQ1MTk0LDQ1MTk1LDQ1MTk4LDQ1MjAwLDQ1MjAyLDQ1MjAzLDQ1MjA0LDQ1MjA1LDQ1MjA2LDQ1MjA3LDQ1MjExLDQ1MjEzLDQ1MjE0LDQ1MjE5LDQ1MjIwLDQ1MjIxLDQ1MjIyLDQ1MjIzLDQ1MjI2LDQ1MjMyLDQ1MjM0'@; put 'LDQ1MjM4LDQ1MjM5LDQ1MjQxLDQ1MjQyLDQ1MjQzLDQ1MjQ1LDQ1MjQ2LDQ1MjQ3LDQ1MjQ4LDQ1MjQ5LDQ1MjUwLDQ1MjUxLDQ1MjU0LDQ1MjU4LDQ1MjU5LDQ1MjYwLDQ1MjYxLDQ1MjYyLDQ1MjYzLDQ1MjY2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ1MjY3LDQ1MjY5LDQ1'@; put 'MjcwLDQ1MjcxLDQ1MjczLDQ1Mjc0LDQ1Mjc1LDQ1Mjc2LDQ1Mjc3LDQ1Mjc4LDQ1Mjc5LDQ1MjgxLDQ1MjgyLDQ1MjgzLDQ1Mjg0LDQ1Mjg2LDQ1Mjg3LDQ1Mjg4LDQ1Mjg5LDQ1MjkwLDQ1MjkxLDQ1MjkyLDQ1MjkzLDQ1Mjk0LDQ1Mjk1LDQ1Mjk2LG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLDQ1Mjk3LDQ1Mjk4LDQ1Mjk5LDQ1MzAwLDQ1MzAxLDQ1MzAyLDQ1MzAzLDQ1MzA0LDQ1MzA1LDQ1MzA2LDQ1MzA3LDQ1MzA4LDQ1MzA5LDQ1MzEwLDQ1MzExLDQ1MzEyLDQ1MzEzLDQ1MzE0LDQ1MzE1LDQ1MzE2LDQ1MzE3LDQ1MzE4LDQ1MzE5LDQ1MzIyLDQ1MzI1LDQ1MzI2LDQ1'@; put 'MzI3LDQ1MzI5LDQ1MzMyLDQ1MzMzLDQ1MzM0LDQ1MzM1LDQ1MzM4LDQ1MzQyLDQ1MzQzLDQ1MzQ0LDQ1MzQ1LDQ1MzQ2LDQ1MzUwLDQ1MzUxLDQ1MzUzLDQ1MzU0LDQ1MzU1LDQ1MzU3LDQ1MzU4LDQ1MzU5LDQ1MzYwLDQ1MzYxLDQ1MzYyLDQ1MzYzLDQ1MzY2LDQ1MzcwLDQ1MzcxLDQ1Mzcy'@; put 'LDQ1MzczLDQ1Mzc0LDQ1Mzc1LDQ1Mzc4LDQ1Mzc5LDQ1MzgxLDQ1MzgyLDQ1MzgzLDQ1Mzg1LDQ1Mzg2LDQ1Mzg3LDQ1Mzg4LDQ1Mzg5LDQ1MzkwLDQ1MzkxLDQ1Mzk0LDQ1Mzk1LDQ1Mzk4LDQ1Mzk5LDQ1NDAxLDQ1NDAyLDQ1NDAzLDQ1NDA1LDQ1NDA2LDQ1NDA3LDQ1NDA5LDQ1NDEwLDQ1'@; put 'NDExLDQ1NDEyLDQ1NDEzLDQ1NDE0LDQ1NDE1LDQ1NDE2LDQ1NDE3LDQ1NDE4LDQ1NDE5LDQ1NDIwLDQ1NDIxLDQ1NDIyLDQ1NDIzLDQ1NDI0LDQ1NDI1LDQ1NDI2LDQ1NDI3LDQ1NDI4LDQ1NDI5LDQ1NDMwLDQ1NDMxLDQ1NDM0LDQ1NDM1LDQ1NDM3LDQ1NDM4LDQ1NDM5LDQ1NDQxLDQ1NDQz'@; put 'LDQ1NDQ0LDQ1NDQ1LDQ1NDQ2LDQ1NDQ3LDQ1NDUwLDQ1NDUyLDQ1NDU0LDQ1NDU1LDQ1NDU2LDQ1NDU3LDQ1NDYxLDQ1NDYyLDQ1NDYzLDQ1NDY1LDQ1NDY2LDQ1NDY3LDQ1NDY5LDQ1NDcwLDQ1NDcxLDQ1NDcyLDQ1NDczLDQ1NDc0LDQ1NDc1LDQ1NDc2LDQ1NDc3LDQ1NDc4LDQ1NDc5LDQ1'@; put 'NDgxLDQ1NDgyLDQ1NDgzLDQ1NDg0LDQ1NDg1LDQ1NDg2LDQ1NDg3LDQ1NDg4LDQ1NDg5LDQ1NDkwLDQ1NDkxLDQ1NDkyLDQ1NDkzLDQ1NDk0LDQ1NDk1LDQ1NDk2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ1NDk3LDQ1NDk4LDQ1NDk5LDQ1NTAwLDQ1NTAxLDQ1NTAyLDQ1NTAz'@; put 'LDQ1NTA0LDQ1NTA1LDQ1NTA2LDQ1NTA3LDQ1NTA4LDQ1NTA5LDQ1NTEwLDQ1NTExLDQ1NTEyLDQ1NTEzLDQ1NTE0LDQ1NTE1LDQ1NTE3LDQ1NTE4LDQ1NTE5LDQ1NTIxLDQ1NTIyLDQ1NTIzLDQ1NTI1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ1NTI2LDQ1NTI3LDQ1NTI4LDQ1'@; put 'NTI5LDQ1NTMwLDQ1NTMxLDQ1NTM0LDQ1NTM2LDQ1NTM3LDQ1NTM4LDQ1NTM5LDQ1NTQwLDQ1NTQxLDQ1NTQyLDQ1NTQzLDQ1NTQ2LDQ1NTQ3LDQ1NTQ5LDQ1NTUwLDQ1NTUxLDQ1NTUzLDQ1NTU0LDQ1NTU1LDQ1NTU2LDQ1NTU3LDQ1NTU4LDQ1NTU5LDQ1NTYwLDQ1NTYyLDQ1NTY0LDQ1NTY2'@; put 'LDQ1NTY3LDQ1NTY4LDQ1NTY5LDQ1NTcwLDQ1NTcxLDQ1NTc0LDQ1NTc1LDQ1NTc3LDQ1NTc4LDQ1NTgxLDQ1NTgyLDQ1NTgzLDQ1NTg0LDQ1NTg1LDQ1NTg2LDQ1NTg3LDQ1NTkwLDQ1NTkyLDQ1NTk0LDQ1NTk1LDQ1NTk2LDQ1NTk3LDQ1NTk4LDQ1NTk5LDQ1NjAxLDQ1NjAyLDQ1NjAzLDQ1'@; put 'NjA0LDQ1NjA1LDQ1NjA2LDQ1NjA3LDQ1NjA4LDQ1NjA5LDQ1NjEwLDQ1NjExLDQ1NjEyLDQ1NjEzLDQ1NjE0LDQ1NjE1LDQ1NjE2LDQ1NjE3LDQ1NjE4LDQ1NjE5LDQ1NjIxLDQ1NjIyLDQ1NjIzLDQ1NjI0LDQ1NjI1LDQ1NjI2LDQ1NjI3LDQ1NjI5LDQ1NjMwLDQ1NjMxLDQ1NjMyLDQ1NjMz'@; put 'LDQ1NjM0LDQ1NjM1LDQ1NjM2LDQ1NjM3LDQ1NjM4LDQ1NjM5LDQ1NjQwLDQ1NjQxLDQ1NjQyLDQ1NjQzLDQ1NjQ0LDQ1NjQ1LDQ1NjQ2LDQ1NjQ3LDQ1NjQ4LDQ1NjQ5LDQ1NjUwLDQ1NjUxLDQ1NjUyLDQ1NjUzLDQ1NjU0LDQ1NjU1LDQ1NjU3LDQ1NjU4LDQ1NjU5LDQ1NjYxLDQ1NjYyLDQ1'@; put 'NjYzLDQ1NjY1LDQ1NjY2LDQ1NjY3LDQ1NjY4LDQ1NjY5LDQ1NjcwLDQ1NjcxLDQ1Njc0LDQ1Njc1LDQ1Njc2LDQ1Njc3LDQ1Njc4LDQ1Njc5LDQ1NjgwLDQ1NjgxLDQ1NjgyLDQ1NjgzLDQ1Njg2LDQ1Njg3LDQ1Njg4LDQ1Njg5LDQ1NjkwLDQ1NjkxLDQ1NjkzLDQ1Njk0LDQ1Njk1LDQ1Njk2'@; put 'LDQ1Njk3LDQ1Njk4LDQ1Njk5LDQ1NzAyLDQ1NzAzLDQ1NzA0LDQ1NzA2LDQ1NzA3LDQ1NzA4LDQ1NzA5LDQ1NzEwLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ1NzExLDQ1NzE0LDQ1NzE1LDQ1NzE3LDQ1NzE4LDQ1NzE5LDQ1NzIzLDQ1NzI0LDQ1NzI1LDQ1NzI2LDQ1NzI3LDQ1'@; put 'NzMwLDQ1NzMyLDQ1NzM1LDQ1NzM2LDQ1NzM3LDQ1NzM5LDQ1NzQxLDQ1NzQyLDQ1NzQzLDQ1NzQ1LDQ1NzQ2LDQ1NzQ3LDQ1NzQ5LDQ1NzUwLDQ1NzUxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ1NzUyLDQ1NzUzLDQ1NzU0LDQ1NzU1LDQ1NzU2LDQ1NzU3LDQ1NzU4LDQ1NzU5'@; put 'LDQ1NzYwLDQ1NzYxLDQ1NzYyLDQ1NzYzLDQ1NzY0LDQ1NzY1LDQ1NzY2LDQ1NzY3LDQ1NzcwLDQ1NzcxLDQ1NzczLDQ1Nzc0LDQ1Nzc1LDQ1Nzc3LDQ1Nzc5LDQ1NzgwLDQ1NzgxLDQ1NzgyLDQ1NzgzLDQ1Nzg2LDQ1Nzg4LDQ1NzkwLDQ1NzkxLDQ1NzkyLDQ1NzkzLDQ1Nzk1LDQ1Nzk5LDQ1'@; put 'ODAxLDQ1ODAyLDQ1ODA4LDQ1ODA5LDQ1ODEwLDQ1ODE0LDQ1ODIwLDQ1ODIxLDQ1ODIyLDQ1ODI2LDQ1ODI3LDQ1ODI5LDQ1ODMwLDQ1ODMxLDQ1ODMzLDQ1ODM0LDQ1ODM1LDQ1ODM2LDQ1ODM3LDQ1ODM4LDQ1ODM5LDQ1ODQyLDQ1ODQ2LDQ1ODQ3LDQ1ODQ4LDQ1ODQ5LDQ1ODUwLDQ1ODUx'@; put 'LDQ1ODUzLDQ1ODU0LDQ1ODU1LDQ1ODU2LDQ1ODU3LDQ1ODU4LDQ1ODU5LDQ1ODYwLDQ1ODYxLDQ1ODYyLDQ1ODYzLDQ1ODY0LDQ1ODY1LDQ1ODY2LDQ1ODY3LDQ1ODY4LDQ1ODY5LDQ1ODcwLDQ1ODcxLDQ1ODcyLDQ1ODczLDQ1ODc0LDQ1ODc1LDQ1ODc2LDQ1ODc3LDQ1ODc4LDQ1ODc5LDQ1'@; put 'ODgwLDQ1ODgxLDQ1ODgyLDQ1ODgzLDQ1ODg0LDQ1ODg1LDQ1ODg2LDQ1ODg3LDQ1ODg4LDQ1ODg5LDQ1ODkwLDQ1ODkxLDQ1ODkyLDQ1ODkzLDQ1ODk0LDQ1ODk1LDQ1ODk2LDQ1ODk3LDQ1ODk4LDQ1ODk5LDQ1OTAwLDQ1OTAxLDQ1OTAyLDQ1OTAzLDQ1OTA0LDQ1OTA1LDQ1OTA2LDQ1OTA3'@; put 'LDQ1OTExLDQ1OTEzLDQ1OTE0LDQ1OTE3LDQ1OTIwLDQ1OTIxLDQ1OTIyLDQ1OTIzLDQ1OTI2LDQ1OTI4LDQ1OTMwLDQ1OTMyLDQ1OTMzLDQ1OTM1LDQ1OTM4LDQ1OTM5LDQ1OTQxLDQ1OTQyLDQ1OTQzLDQ1OTQ1LDQ1OTQ2LDQ1OTQ3LDQ1OTQ4LDQ1OTQ5LDQ1OTUwLDQ1OTUxLDQ1OTU0LDQ1'@; put 'OTU4LDQ1OTU5LDQ1OTYwLDQ1OTYxLDQ1OTYyLDQ1OTYzLDQ1OTY1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ1OTY2LDQ1OTY3LDQ1OTY5LDQ1OTcwLDQ1OTcxLDQ1OTczLDQ1OTc0LDQ1OTc1LDQ1OTc2LDQ1OTc3LDQ1OTc4LDQ1OTc5LDQ1OTgwLDQ1OTgxLDQ1OTgyLDQ1OTgz'@; put 'LDQ1OTg2LDQ1OTg3LDQ1OTg4LDQ1OTg5LDQ1OTkwLDQ1OTkxLDQ1OTkzLDQ1OTk0LDQ1OTk1LDQ1OTk3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ1OTk4LDQ1OTk5LDQ2ZTMsNDYwMDEsNDYwMDIsNDYwMDMsNDYwMDQsNDYwMDUsNDYwMDYsNDYwMDcsNDYwMDgsNDYwMDksNDYw'@; put 'MTAsNDYwMTEsNDYwMTIsNDYwMTMsNDYwMTQsNDYwMTUsNDYwMTYsNDYwMTcsNDYwMTgsNDYwMTksNDYwMjIsNDYwMjMsNDYwMjUsNDYwMjYsNDYwMjksNDYwMzEsNDYwMzMsNDYwMzQsNDYwMzUsNDYwMzgsNDYwNDAsNDYwNDIsNDYwNDQsNDYwNDYsNDYwNDcsNDYwNDksNDYwNTAsNDYwNTEs'@; put 'NDYwNTMsNDYwNTQsNDYwNTUsNDYwNTcsNDYwNTgsNDYwNTksNDYwNjAsNDYwNjEsNDYwNjIsNDYwNjMsNDYwNjQsNDYwNjUsNDYwNjYsNDYwNjcsNDYwNjgsNDYwNjksNDYwNzAsNDYwNzEsNDYwNzIsNDYwNzMsNDYwNzQsNDYwNzUsNDYwNzcsNDYwNzgsNDYwNzksNDYwODAsNDYwODEsNDYw'@; put 'ODIsNDYwODMsNDYwODQsNDYwODUsNDYwODYsNDYwODcsNDYwODgsNDYwODksNDYwOTAsNDYwOTEsNDYwOTIsNDYwOTMsNDYwOTQsNDYwOTUsNDYwOTcsNDYwOTgsNDYwOTksNDYxMDAsNDYxMDEsNDYxMDIsNDYxMDMsNDYxMDUsNDYxMDYsNDYxMDcsNDYxMDksNDYxMTAsNDYxMTEsNDYxMTMs'@; put 'NDYxMTQsNDYxMTUsNDYxMTYsNDYxMTcsNDYxMTgsNDYxMTksNDYxMjIsNDYxMjQsNDYxMjUsNDYxMjYsNDYxMjcsNDYxMjgsNDYxMjksNDYxMzAsNDYxMzEsNDYxMzMsNDYxMzQsNDYxMzUsNDYxMzYsNDYxMzcsNDYxMzgsNDYxMzksNDYxNDAsNDYxNDEsNDYxNDIsNDYxNDMsNDYxNDQsNDYx'@; put 'NDUsNDYxNDYsNDYxNDcsNDYxNDgsNDYxNDksNDYxNTAsNDYxNTEsNDYxNTIsNDYxNTMsNDYxNTQsNDYxNTUsNDYxNTYsNDYxNTcsNDYxNTgsNDYxNTksNDYxNjIsNDYxNjMsNDYxNjUsNDYxNjYsNDYxNjcsNDYxNjksNDYxNzAsNDYxNzEsNDYxNzIsNDYxNzMsNDYxNzQsNDYxNzUsNDYxNzgs'@; put 'NDYxODAsNDYxODIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDYxODMsNDYxODQsNDYxODUsNDYxODYsNDYxODcsNDYxODksNDYxOTAsNDYxOTEsNDYxOTIsNDYxOTMsNDYxOTQsNDYxOTUsNDYxOTYsNDYxOTcsNDYxOTgsNDYxOTksNDYyMDAsNDYyMDEsNDYyMDIsNDYyMDMsNDYy'@; put 'MDQsNDYyMDUsNDYyMDYsNDYyMDcsNDYyMDksNDYyMTAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDYyMTEsNDYyMTIsNDYyMTMsNDYyMTQsNDYyMTUsNDYyMTcsNDYyMTgsNDYyMTksNDYyMjAsNDYyMjEsNDYyMjIsNDYyMjMsNDYyMjQsNDYyMjUsNDYyMjYsNDYyMjcsNDYyMjgs'@; put 'NDYyMjksNDYyMzAsNDYyMzEsNDYyMzIsNDYyMzMsNDYyMzQsNDYyMzUsNDYyMzYsNDYyMzgsNDYyMzksNDYyNDAsNDYyNDEsNDYyNDIsNDYyNDMsNDYyNDUsNDYyNDYsNDYyNDcsNDYyNDksNDYyNTAsNDYyNTEsNDYyNTMsNDYyNTQsNDYyNTUsNDYyNTYsNDYyNTcsNDYyNTgsNDYyNTksNDYy'@; put 'NjAsNDYyNjIsNDYyNjQsNDYyNjYsNDYyNjcsNDYyNjgsNDYyNjksNDYyNzAsNDYyNzEsNDYyNzMsNDYyNzQsNDYyNzUsNDYyNzcsNDYyNzgsNDYyNzksNDYyODEsNDYyODIsNDYyODMsNDYyODQsNDYyODUsNDYyODYsNDYyODcsNDYyODksNDYyOTAsNDYyOTEsNDYyOTIsNDYyOTQsNDYyOTUs'@; put 'NDYyOTYsNDYyOTcsNDYyOTgsNDYyOTksNDYzMDIsNDYzMDMsNDYzMDUsNDYzMDYsNDYzMDksNDYzMTEsNDYzMTIsNDYzMTMsNDYzMTQsNDYzMTUsNDYzMTgsNDYzMjAsNDYzMjIsNDYzMjMsNDYzMjQsNDYzMjUsNDYzMjYsNDYzMjcsNDYzMjksNDYzMzAsNDYzMzEsNDYzMzIsNDYzMzMsNDYz'@; put 'MzQsNDYzMzUsNDYzMzYsNDYzMzcsNDYzMzgsNDYzMzksNDYzNDAsNDYzNDEsNDYzNDIsNDYzNDMsNDYzNDQsNDYzNDUsNDYzNDYsNDYzNDcsNDYzNDgsNDYzNDksNDYzNTAsNDYzNTEsNDYzNTIsNDYzNTMsNDYzNTQsNDYzNTUsNDYzNTgsNDYzNTksNDYzNjEsNDYzNjIsNDYzNjUsNDYzNjYs'@; put 'NDYzNjcsNDYzNjgsNDYzNjksNDYzNzAsNDYzNzEsNDYzNzQsNDYzNzksNDYzODAsNDYzODEsNDYzODIsNDYzODMsNDYzODYsNDYzODcsNDYzODksNDYzOTAsNDYzOTEsNDYzOTMsNDYzOTQsNDYzOTUsNDYzOTYsNDYzOTcsNDYzOTgsNDYzOTksNDY0MDIsNDY0MDYsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsNDY0MDcsNDY0MDgsNDY0MDksNDY0MTAsNDY0MTQsNDY0MTUsNDY0MTcsNDY0MTgsNDY0MTksNDY0MjEsNDY0MjIsNDY0MjMsNDY0MjQsNDY0MjUsNDY0MjYsNDY0MjcsNDY0MzAsNDY0MzQsNDY0MzUsNDY0MzYsNDY0MzcsNDY0MzgsNDY0MzksNDY0NDAsNDY0NDEs'@; put 'NDY0NDIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDY0NDMsNDY0NDQsNDY0NDUsNDY0NDYsNDY0NDcsNDY0NDgsNDY0NDksNDY0NTAsNDY0NTEsNDY0NTIsNDY0NTMsNDY0NTQsNDY0NTUsNDY0NTYsNDY0NTcsNDY0NTgsNDY0NTksNDY0NjAsNDY0NjEsNDY0NjIsNDY0NjMsNDY0'@; put 'NjQsNDY0NjUsNDY0NjYsNDY0NjcsNDY0NjgsNDY0NjksNDY0NzAsNDY0NzEsNDY0NzIsNDY0NzMsNDY0NzQsNDY0NzUsNDY0NzYsNDY0NzcsNDY0NzgsNDY0NzksNDY0ODAsNDY0ODEsNDY0ODIsNDY0ODMsNDY0ODQsNDY0ODUsNDY0ODYsNDY0ODcsNDY0ODgsNDY0ODksNDY0OTAsNDY0OTEs'@; put 'NDY0OTIsNDY0OTMsNDY0OTQsNDY0OTUsNDY0OTgsNDY0OTksNDY1MDEsNDY1MDIsNDY1MDMsNDY1MDUsNDY1MDgsNDY1MDksNDY1MTAsNDY1MTEsNDY1MTQsNDY1MTgsNDY1MTksNDY1MjAsNDY1MjEsNDY1MjIsNDY1MjYsNDY1MjcsNDY1MjksNDY1MzAsNDY1MzEsNDY1MzMsNDY1MzQsNDY1'@; put 'MzUsNDY1MzYsNDY1MzcsNDY1MzgsNDY1MzksNDY1NDIsNDY1NDYsNDY1NDcsNDY1NDgsNDY1NDksNDY1NTAsNDY1NTEsNDY1NTMsNDY1NTQsNDY1NTUsNDY1NTYsNDY1NTcsNDY1NTgsNDY1NTksNDY1NjAsNDY1NjEsNDY1NjIsNDY1NjMsNDY1NjQsNDY1NjUsNDY1NjYsNDY1NjcsNDY1Njgs'@; put 'NDY1NjksNDY1NzAsNDY1NzEsNDY1NzMsNDY1NzQsNDY1NzUsNDY1NzYsNDY1NzcsNDY1NzgsNDY1NzksNDY1ODAsNDY1ODEsNDY1ODIsNDY1ODMsNDY1ODQsNDY1ODUsNDY1ODYsNDY1ODcsNDY1ODgsNDY1ODksNDY1OTAsNDY1OTEsNDY1OTIsNDY1OTMsNDY1OTQsNDY1OTUsNDY1OTYsNDY1'@; put 'OTcsNDY1OTgsNDY1OTksNDY2MDAsNDY2MDEsNDY2MDIsNDY2MDMsNDY2MDQsNDY2MDUsNDY2MDYsNDY2MDcsNDY2MTAsNDY2MTEsNDY2MTMsNDY2MTQsNDY2MTUsNDY2MTcsNDY2MTgsNDY2MTksNDY2MjAsNDY2MjEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDY2MjIsNDY2MjMs'@; put 'NDY2MjQsNDY2MjUsNDY2MjYsNDY2MjcsNDY2MjgsNDY2MzAsNDY2MzEsNDY2MzIsNDY2MzMsNDY2MzQsNDY2MzUsNDY2MzcsNDY2MzgsNDY2MzksNDY2NDAsNDY2NDEsNDY2NDIsNDY2NDMsNDY2NDUsNDY2NDYsNDY2NDcsNDY2NDgsNDY2NDksNDY2NTAsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsNDY2NTEsNDY2NTIsNDY2NTMsNDY2NTQsNDY2NTUsNDY2NTYsNDY2NTcsNDY2NTgsNDY2NTksNDY2NjAsNDY2NjEsNDY2NjIsNDY2NjMsNDY2NjUsNDY2NjYsNDY2NjcsNDY2NjgsNDY2NjksNDY2NzAsNDY2NzEsNDY2NzIsNDY2NzMsNDY2NzQsNDY2NzUsNDY2NzYsNDY2Nzcs'@; put 'NDY2NzgsNDY2NzksNDY2ODAsNDY2ODEsNDY2ODIsNDY2ODMsNDY2ODQsNDY2ODUsNDY2ODYsNDY2ODcsNDY2ODgsNDY2ODksNDY2OTAsNDY2OTEsNDY2OTMsNDY2OTQsNDY2OTUsNDY2OTcsNDY2OTgsNDY2OTksNDY3MDAsNDY3MDEsNDY3MDIsNDY3MDMsNDY3MDQsNDY3MDUsNDY3MDYsNDY3'@; put 'MDcsNDY3MDgsNDY3MDksNDY3MTAsNDY3MTEsNDY3MTIsNDY3MTMsNDY3MTQsNDY3MTUsNDY3MTYsNDY3MTcsNDY3MTgsNDY3MTksNDY3MjAsNDY3MjEsNDY3MjIsNDY3MjMsNDY3MjQsNDY3MjUsNDY3MjYsNDY3MjcsNDY3MjgsNDY3MjksNDY3MzAsNDY3MzEsNDY3MzIsNDY3MzMsNDY3MzQs'@; put 'NDY3MzUsNDY3MzYsNDY3MzcsNDY3MzgsNDY3MzksNDY3NDAsNDY3NDEsNDY3NDIsNDY3NDMsNDY3NDQsNDY3NDUsNDY3NDYsNDY3NDcsNDY3NTAsNDY3NTEsNDY3NTMsNDY3NTQsNDY3NTUsNDY3NTcsNDY3NTgsNDY3NTksNDY3NjAsNDY3NjEsNDY3NjIsNDY3NjUsNDY3NjYsNDY3NjcsNDY3'@; put 'NjgsNDY3NzAsNDY3NzEsNDY3NzIsNDY3NzMsNDY3NzQsNDY3NzUsNDY3NzYsNDY3NzcsNDY3NzgsNDY3NzksNDY3ODAsNDY3ODEsNDY3ODIsNDY3ODMsNDY3ODQsNDY3ODUsNDY3ODYsNDY3ODcsNDY3ODgsNDY3ODksNDY3OTAsNDY3OTEsNDY3OTIsNDY3OTMsNDY3OTQsNDY3OTUsNDY3OTYs'@; put 'NDY3OTcsNDY3OTgsNDY3OTksNDY4MDAsNDY4MDEsNDY4MDIsNDY4MDMsNDY4MDUsNDY4MDYsNDY4MDcsNDY4MDgsNDY4MDksNDY4MTAsNDY4MTEsNDY4MTIsNDY4MTMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDY4MTQsNDY4MTUsNDY4MTYsNDY4MTcsNDY4MTgsNDY4MTksNDY4'@; put 'MjAsNDY4MjEsNDY4MjIsNDY4MjMsNDY4MjQsNDY4MjUsNDY4MjYsNDY4MjcsNDY4MjgsNDY4MjksNDY4MzAsNDY4MzEsNDY4MzMsNDY4MzQsNDY4MzUsNDY4MzcsNDY4MzgsNDY4MzksNDY4NDEsNDY4NDIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDY4NDMsNDY4NDQsNDY4NDUs'@; put 'NDY4NDYsNDY4NDcsNDY4NTAsNDY4NTEsNDY4NTIsNDY4NTQsNDY4NTUsNDY4NTYsNDY4NTcsNDY4NTgsNDY4NTksNDY4NjAsNDY4NjEsNDY4NjIsNDY4NjMsNDY4NjQsNDY4NjUsNDY4NjYsNDY4NjcsNDY4NjgsNDY4NjksNDY4NzAsNDY4NzEsNDY4NzIsNDY4NzMsNDY4NzQsNDY4NzUsNDY4'@; put 'NzYsNDY4NzcsNDY4NzgsNDY4NzksNDY4ODAsNDY4ODEsNDY4ODIsNDY4ODMsNDY4ODQsNDY4ODUsNDY4ODYsNDY4ODcsNDY4OTAsNDY4OTEsNDY4OTMsNDY4OTQsNDY4OTcsNDY4OTgsNDY4OTksNDY5MDAsNDY5MDEsNDY5MDIsNDY5MDMsNDY5MDYsNDY5MDgsNDY5MDksNDY5MTAsNDY5MTEs'@; put 'NDY5MTIsNDY5MTMsNDY5MTQsNDY5MTUsNDY5MTcsNDY5MTgsNDY5MTksNDY5MjEsNDY5MjIsNDY5MjMsNDY5MjUsNDY5MjYsNDY5MjcsNDY5MjgsNDY5MjksNDY5MzAsNDY5MzEsNDY5MzQsNDY5MzUsNDY5MzYsNDY5MzcsNDY5MzgsNDY5MzksNDY5NDAsNDY5NDEsNDY5NDIsNDY5NDMsNDY5'@; put 'NDUsNDY5NDYsNDY5NDcsNDY5NDksNDY5NTAsNDY5NTEsNDY5NTMsNDY5NTQsNDY5NTUsNDY5NTYsNDY5NTcsNDY5NTgsNDY5NTksNDY5NjIsNDY5NjQsNDY5NjYsNDY5NjcsNDY5NjgsNDY5NjksNDY5NzAsNDY5NzEsNDY5NzQsNDY5NzUsNDY5NzcsNDY5NzgsNDY5NzksNDY5ODEsNDY5ODIs'@; put 'NDY5ODMsNDY5ODQsNDY5ODUsNDY5ODYsNDY5ODcsNDY5OTAsNDY5OTUsNDY5OTYsNDY5OTcsNDcwMDIsNDcwMDMsNDcwMDUsNDcwMDYsNDcwMDcsNDcwMDksNDcwMTAsNDcwMTEsNDcwMTIsNDcwMTMsNDcwMTQsNDcwMTUsNDcwMTgsNDcwMjIsNDcwMjMsNDcwMjQsNDcwMjUsNDcwMjYsNDcw'@; put 'MjcsNDcwMzAsNDcwMzEsNDcwMzMsNDcwMzQsNDcwMzUsNDcwMzYsNDcwMzcsNDcwMzgsNDcwMzksNDcwNDAsNDcwNDEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDcwNDIsNDcwNDMsNDcwNDQsNDcwNDUsNDcwNDYsNDcwNDgsNDcwNTAsNDcwNTEsNDcwNTIsNDcwNTMsNDcwNTQs'@; put 'NDcwNTUsNDcwNTYsNDcwNTcsNDcwNTgsNDcwNTksNDcwNjAsNDcwNjEsNDcwNjIsNDcwNjMsNDcwNjQsNDcwNjUsNDcwNjYsNDcwNjcsNDcwNjgsNDcwNjksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDcwNzAsNDcwNzEsNDcwNzIsNDcwNzMsNDcwNzQsNDcwNzUsNDcwNzYsNDcw'@; put 'NzcsNDcwNzgsNDcwNzksNDcwODAsNDcwODEsNDcwODIsNDcwODMsNDcwODYsNDcwODcsNDcwODksNDcwOTAsNDcwOTEsNDcwOTMsNDcwOTQsNDcwOTUsNDcwOTYsNDcwOTcsNDcwOTgsNDcwOTksNDcxMDIsNDcxMDYsNDcxMDcsNDcxMDgsNDcxMDksNDcxMTAsNDcxMTQsNDcxMTUsNDcxMTcs'@; put 'NDcxMTgsNDcxMTksNDcxMjEsNDcxMjIsNDcxMjMsNDcxMjQsNDcxMjUsNDcxMjYsNDcxMjcsNDcxMzAsNDcxMzIsNDcxMzQsNDcxMzUsNDcxMzYsNDcxMzcsNDcxMzgsNDcxMzksNDcxNDIsNDcxNDMsNDcxNDUsNDcxNDYsNDcxNDcsNDcxNDksNDcxNTAsNDcxNTEsNDcxNTIsNDcxNTMsNDcx'@; put 'NTQsNDcxNTUsNDcxNTgsNDcxNjIsNDcxNjMsNDcxNjQsNDcxNjUsNDcxNjYsNDcxNjcsNDcxNjksNDcxNzAsNDcxNzEsNDcxNzMsNDcxNzQsNDcxNzUsNDcxNzYsNDcxNzcsNDcxNzgsNDcxNzksNDcxODAsNDcxODEsNDcxODIsNDcxODMsNDcxODQsNDcxODYsNDcxODgsNDcxODksNDcxOTAs'@; put 'NDcxOTEsNDcxOTIsNDcxOTMsNDcxOTQsNDcxOTUsNDcxOTgsNDcxOTksNDcyMDEsNDcyMDIsNDcyMDMsNDcyMDUsNDcyMDYsNDcyMDcsNDcyMDgsNDcyMDksNDcyMTAsNDcyMTEsNDcyMTQsNDcyMTYsNDcyMTgsNDcyMTksNDcyMjAsNDcyMjEsNDcyMjIsNDcyMjMsNDcyMjUsNDcyMjYsNDcy'@; put 'MjcsNDcyMjksNDcyMzAsNDcyMzEsNDcyMzIsNDcyMzMsNDcyMzQsNDcyMzUsNDcyMzYsNDcyMzcsNDcyMzgsNDcyMzksNDcyNDAsNDcyNDEsNDcyNDIsNDcyNDMsNDcyNDQsNDcyNDYsNDcyNDcsNDcyNDgsNDcyNDksNDcyNTAsNDcyNTEsNDcyNTIsNDcyNTMsNDcyNTQsNDcyNTUsNDcyNTYs'@; put 'NDcyNTcsNDcyNTgsNDcyNTksNDcyNjAsNDcyNjEsNDcyNjIsNDcyNjMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDcyNjQsNDcyNjUsNDcyNjYsNDcyNjcsNDcyNjgsNDcyNjksNDcyNzAsNDcyNzEsNDcyNzMsNDcyNzQsNDcyNzUsNDcyNzYsNDcyNzcsNDcyNzgsNDcyNzksNDcy'@; put 'ODEsNDcyODIsNDcyODMsNDcyODUsNDcyODYsNDcyODcsNDcyODksNDcyOTAsNDcyOTEsNDcyOTIsNDcyOTMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDcyOTQsNDcyOTUsNDcyOTgsNDczMDAsNDczMDIsNDczMDMsNDczMDQsNDczMDUsNDczMDYsNDczMDcsNDczMDksNDczMTAs'@; put 'NDczMTEsNDczMTMsNDczMTQsNDczMTUsNDczMTcsNDczMTgsNDczMTksNDczMjAsNDczMjEsNDczMjIsNDczMjMsNDczMjQsNDczMjYsNDczMjgsNDczMzAsNDczMzEsNDczMzIsNDczMzMsNDczMzQsNDczMzUsNDczMzgsNDczMzksNDczNDEsNDczNDIsNDczNDMsNDczNDUsNDczNDYsNDcz'@; put 'NDcsNDczNDgsNDczNDksNDczNTAsNDczNTEsNDczNTQsNDczNTYsNDczNTgsNDczNTksNDczNjAsNDczNjEsNDczNjIsNDczNjMsNDczNjUsNDczNjYsNDczNjcsNDczNjgsNDczNjksNDczNzAsNDczNzEsNDczNzIsNDczNzMsNDczNzQsNDczNzUsNDczNzYsNDczNzcsNDczNzgsNDczNzks'@; put 'NDczODAsNDczODEsNDczODIsNDczODMsNDczODUsNDczODYsNDczODcsNDczODgsNDczODksNDczOTAsNDczOTEsNDczOTMsNDczOTQsNDczOTUsNDczOTYsNDczOTcsNDczOTgsNDczOTksNDc0MDAsNDc0MDEsNDc0MDIsNDc0MDMsNDc0MDQsNDc0MDUsNDc0MDYsNDc0MDcsNDc0MDgsNDc0'@; put 'MDksNDc0MTAsNDc0MTEsNDc0MTIsNDc0MTMsNDc0MTQsNDc0MTUsNDc0MTYsNDc0MTcsNDc0MTgsNDc0MTksNDc0MjIsNDc0MjMsNDc0MjUsNDc0MjYsNDc0MjcsNDc0MjksNDc0MzAsNDc0MzEsNDc0MzIsNDc0MzMsNDc0MzQsNDc0MzUsNDc0MzcsNDc0MzgsNDc0NDAsNDc0NDIsNDc0NDMs'@; put 'NDc0NDQsNDc0NDUsNDc0NDYsNDc0NDcsNDc0NTAsNDc0NTEsNDc0NTMsNDc0NTQsNDc0NTUsNDc0NTcsNDc0NTgsNDc0NTksNDc0NjAsNDc0NjEsNDc0NjIsNDc0NjMsNDc0NjYsNDc0NjgsNDc0NzAsNDc0NzEsNDc0NzIsNDc0NzMsNDc0NzQsNDc0NzUsNDc0NzgsNDc0NzksNDc0ODEsNDc0'@; put 'ODIsNDc0ODMsNDc0ODUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDc0ODYsNDc0ODcsNDc0ODgsNDc0ODksNDc0OTAsNDc0OTEsNDc0OTQsNDc0OTYsNDc0OTksNDc1MDAsNDc1MDMsNDc1MDQsNDc1MDUsNDc1MDYsNDc1MDcsNDc1MDgsNDc1MDksNDc1MTAsNDc1MTEsNDc1MTIs'@; put 'NDc1MTMsNDc1MTQsNDc1MTUsNDc1MTYsNDc1MTcsNDc1MTgsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDc1MTksNDc1MjAsNDc1MjEsNDc1MjIsNDc1MjMsNDc1MjQsNDc1MjUsNDc1MjYsNDc1MjcsNDc1MjgsNDc1MjksNDc1MzAsNDc1MzEsNDc1MzQsNDc1MzUsNDc1MzcsNDc1'@; put 'MzgsNDc1MzksNDc1NDEsNDc1NDIsNDc1NDMsNDc1NDQsNDc1NDUsNDc1NDYsNDc1NDcsNDc1NTAsNDc1NTIsNDc1NTQsNDc1NTUsNDc1NTYsNDc1NTcsNDc1NTgsNDc1NTksNDc1NjIsNDc1NjMsNDc1NjUsNDc1NzEsNDc1NzIsNDc1NzMsNDc1NzQsNDc1NzUsNDc1NzgsNDc1ODAsNDc1ODMs'@; put 'NDc1ODQsNDc1ODYsNDc1OTAsNDc1OTEsNDc1OTMsNDc1OTQsNDc1OTUsNDc1OTcsNDc1OTgsNDc1OTksNDc2MDAsNDc2MDEsNDc2MDIsNDc2MDMsNDc2MDYsNDc2MTEsNDc2MTIsNDc2MTMsNDc2MTQsNDc2MTUsNDc2MTgsNDc2MTksNDc2MjAsNDc2MjEsNDc2MjIsNDc2MjMsNDc2MjUsNDc2'@; put 'MjYsNDc2MjcsNDc2MjgsNDc2MjksNDc2MzAsNDc2MzEsNDc2MzIsNDc2MzMsNDc2MzQsNDc2MzUsNDc2MzYsNDc2MzgsNDc2MzksNDc2NDAsNDc2NDEsNDc2NDIsNDc2NDMsNDc2NDQsNDc2NDUsNDc2NDYsNDc2NDcsNDc2NDgsNDc2NDksNDc2NTAsNDc2NTEsNDc2NTIsNDc2NTMsNDc2NTQs'@; put 'NDc2NTUsNDc2NTYsNDc2NTcsNDc2NTgsNDc2NTksNDc2NjAsNDc2NjEsNDc2NjIsNDc2NjMsNDc2NjQsNDc2NjUsNDc2NjYsNDc2NjcsNDc2NjgsNDc2NjksNDc2NzAsNDc2NzEsNDc2NzQsNDc2NzUsNDc2NzcsNDc2NzgsNDc2NzksNDc2ODEsNDc2ODMsNDc2ODQsNDc2ODUsNDc2ODYsNDc2'@; put 'ODcsNDc2OTAsNDc2OTIsNDc2OTUsNDc2OTYsNDc2OTcsNDc2OTgsNDc3MDIsNDc3MDMsNDc3MDUsNDc3MDYsNDc3MDcsNDc3MDksNDc3MTAsNDc3MTEsNDc3MTIsNDc3MTMsNDc3MTQsNDc3MTUsNDc3MTgsNDc3MjIsNDc3MjMsNDc3MjQsNDc3MjUsNDc3MjYsNDc3MjcsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsNDc3MzAsNDc3MzEsNDc3MzMsNDc3MzQsNDc3MzUsNDc3MzcsNDc3MzgsNDc3MzksNDc3NDAsNDc3NDEsNDc3NDIsNDc3NDMsNDc3NDQsNDc3NDUsNDc3NDYsNDc3NTAsNDc3NTIsNDc3NTMsNDc3NTQsNDc3NTUsNDc3NTcsNDc3NTgsNDc3NTksNDc3NjAsNDc3'@; put 'NjEsNDc3NjIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDc3NjMsNDc3NjQsNDc3NjUsNDc3NjYsNDc3NjcsNDc3NjgsNDc3NjksNDc3NzAsNDc3NzEsNDc3NzIsNDc3NzMsNDc3NzQsNDc3NzUsNDc3NzYsNDc3NzcsNDc3NzgsNDc3NzksNDc3ODAsNDc3ODEsNDc3ODIsNDc3ODMs'@; put 'NDc3ODYsNDc3ODksNDc3OTAsNDc3OTEsNDc3OTMsNDc3OTUsNDc3OTYsNDc3OTcsNDc3OTgsNDc3OTksNDc4MDIsNDc4MDQsNDc4MDYsNDc4MDcsNDc4MDgsNDc4MDksNDc4MTAsNDc4MTEsNDc4MTMsNDc4MTQsNDc4MTUsNDc4MTcsNDc4MTgsNDc4MTksNDc4MjAsNDc4MjEsNDc4MjIsNDc4'@; put 'MjMsNDc4MjQsNDc4MjUsNDc4MjYsNDc4MjcsNDc4MjgsNDc4MjksNDc4MzAsNDc4MzEsNDc4MzQsNDc4MzUsNDc4MzYsNDc4MzcsNDc4MzgsNDc4MzksNDc4NDAsNDc4NDEsNDc4NDIsNDc4NDMsNDc4NDQsNDc4NDUsNDc4NDYsNDc4NDcsNDc4NDgsNDc4NDksNDc4NTAsNDc4NTEsNDc4NTIs'@; put 'NDc4NTMsNDc4NTQsNDc4NTUsNDc4NTYsNDc4NTcsNDc4NTgsNDc4NTksNDc4NjAsNDc4NjEsNDc4NjIsNDc4NjMsNDc4NjQsNDc4NjUsNDc4NjYsNDc4NjcsNDc4NjksNDc4NzAsNDc4NzEsNDc4NzMsNDc4NzQsNDc4NzUsNDc4NzcsNDc4NzgsNDc4NzksNDc4ODAsNDc4ODEsNDc4ODIsNDc4'@; put 'ODMsNDc4ODQsNDc4ODYsNDc4ODgsNDc4OTAsNDc4OTEsNDc4OTIsNDc4OTMsNDc4OTQsNDc4OTUsNDc4OTcsNDc4OTgsNDc4OTksNDc5MDEsNDc5MDIsNDc5MDMsNDc5MDUsNDc5MDYsNDc5MDcsNDc5MDgsNDc5MDksNDc5MTAsNDc5MTEsNDc5MTIsNDc5MTQsNDc5MTYsNDc5MTcsNDc5MTgs'@; put 'NDc5MTksNDc5MjAsNDc5MjEsNDc5MjIsNDc5MjMsNDc5MjcsNDc5MjksNDc5MzAsNDc5MzUsNDc5MzYsNDc5MzcsNDc5MzgsNDc5MzksNDc5NDIsNDc5NDQsNDc5NDYsNDc5NDcsNDc5NDgsNDc5NTAsNDc5NTMsNDc5NTQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDc5NTUsNDc5'@; put 'NTcsNDc5NTgsNDc5NTksNDc5NjEsNDc5NjIsNDc5NjMsNDc5NjQsNDc5NjUsNDc5NjYsNDc5NjcsNDc5NjgsNDc5NzAsNDc5NzIsNDc5NzMsNDc5NzQsNDc5NzUsNDc5NzYsNDc5NzcsNDc5NzgsNDc5NzksNDc5ODEsNDc5ODIsNDc5ODMsNDc5ODQsNDc5ODUsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsNDc5ODYsNDc5ODcsNDc5ODgsNDc5ODksNDc5OTAsNDc5OTEsNDc5OTIsNDc5OTMsNDc5OTQsNDc5OTUsNDc5OTYsNDc5OTcsNDc5OTgsNDc5OTksNDhlMyw0ODAwMSw0ODAwMiw0ODAwMyw0ODAwNCw0ODAwNSw0ODAwNiw0ODAwNyw0ODAwOSw0ODAxMCw0ODAxMSw0ODAx'@; put 'Myw0ODAxNCw0ODAxNSw0ODAxNyw0ODAxOCw0ODAxOSw0ODAyMCw0ODAyMSw0ODAyMiw0ODAyMyw0ODAyNCw0ODAyNSw0ODAyNiw0ODAyNyw0ODAyOCw0ODAyOSw0ODAzMCw0ODAzMSw0ODAzMiw0ODAzMyw0ODAzNCw0ODAzNSw0ODAzNyw0ODAzOCw0ODAzOSw0ODA0MSw0ODA0Miw0ODA0Myw0'@; put 'ODA0NSw0ODA0Niw0ODA0Nyw0ODA0OCw0ODA0OSw0ODA1MCw0ODA1MSw0ODA1Myw0ODA1NCw0ODA1Niw0ODA1Nyw0ODA1OCw0ODA1OSw0ODA2MCw0ODA2MSw0ODA2Miw0ODA2Myw0ODA2NSw0ODA2Niw0ODA2Nyw0ODA2OSw0ODA3MCw0ODA3MSw0ODA3Myw0ODA3NCw0ODA3NSw0ODA3Niw0ODA3'@; put 'Nyw0ODA3OCw0ODA3OSw0ODA4MSw0ODA4Miw0ODA4NCw0ODA4NSw0ODA4Niw0ODA4Nyw0ODA4OCw0ODA4OSw0ODA5MCw0ODA5MSw0ODA5Miw0ODA5Myw0ODA5NCw0ODA5NSw0ODA5Niw0ODA5Nyw0ODA5OCw0ODA5OSw0ODEwMCw0ODEwMSw0ODEwMiw0ODEwMyw0ODEwNCw0ODEwNSw0ODEwNiw0'@; put 'ODEwNyw0ODEwOCw0ODEwOSw0ODExMCw0ODExMSw0ODExMiw0ODExMyw0ODExNCw0ODExNSw0ODExNiw0ODExNyw0ODExOCw0ODExOSw0ODEyMiw0ODEyMyw0ODEyNSw0ODEyNiw0ODEyOSw0ODEzMSw0ODEzMiw0ODEzMyw0ODEzNCw0ODEzNSw0ODEzOCw0ODE0Miw0ODE0NCw0ODE0Niw0ODE0'@; put 'Nyw0ODE1Myw0ODE1NCw0ODE2MCw0ODE2MSw0ODE2Miw0ODE2Myw0ODE2Niw0ODE2OCw0ODE3MCw0ODE3MSw0ODE3Miw0ODE3NCw0ODE3NSw0ODE3OCw0ODE3OSw0ODE4MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0ODE4Miw0ODE4Myw0ODE4NSw0ODE4Niw0ODE4Nyw0ODE4OCw0'@; put 'ODE4OSw0ODE5MCw0ODE5MSw0ODE5NCw0ODE5OCw0ODE5OSw0ODIwMCw0ODIwMiw0ODIwMyw0ODIwNiw0ODIwNyw0ODIwOSw0ODIxMCw0ODIxMSw0ODIxMiw0ODIxMyw0ODIxNCw0ODIxNSw0ODIxNiw0ODIxNyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0ODIxOCw0ODIxOSw0ODIy'@; put 'MCw0ODIyMiw0ODIyMyw0ODIyNCw0ODIyNSw0ODIyNiw0ODIyNyw0ODIyOCw0ODIyOSw0ODIzMCw0ODIzMSw0ODIzMiw0ODIzMyw0ODIzNCw0ODIzNSw0ODIzNiw0ODIzNyw0ODIzOCw0ODIzOSw0ODI0MCw0ODI0MSw0ODI0Miw0ODI0Myw0ODI0NCw0ODI0NSw0ODI0Niw0ODI0Nyw0ODI0OCw0'@; put 'ODI0OSw0ODI1MCw0ODI1MSw0ODI1Miw0ODI1Myw0ODI1NCw0ODI1NSw0ODI1Niw0ODI1Nyw0ODI1OCw0ODI1OSw0ODI2Miw0ODI2Myw0ODI2NSw0ODI2Niw0ODI2OSw0ODI3MSw0ODI3Miw0ODI3Myw0ODI3NCw0ODI3NSw0ODI3OCw0ODI4MCw0ODI4Myw0ODI4NCw0ODI4NSw0ODI4Niw0ODI4'@; put 'Nyw0ODI5MCw0ODI5MSw0ODI5Myw0ODI5NCw0ODI5Nyw0ODI5OCw0ODI5OSw0ODMwMCw0ODMwMSw0ODMwMiw0ODMwMyw0ODMwNiw0ODMxMCw0ODMxMSw0ODMxMiw0ODMxMyw0ODMxNCw0ODMxNSw0ODMxOCw0ODMxOSw0ODMyMSw0ODMyMiw0ODMyMyw0ODMyNSw0ODMyNiw0ODMyNyw0ODMyOCw0'@; put 'ODMyOSw0ODMzMCw0ODMzMSw0ODMzMiw0ODMzNCw0ODMzOCw0ODMzOSw0ODM0MCw0ODM0Miw0ODM0Myw0ODM0NSw0ODM0Niw0ODM0Nyw0ODM0OSw0ODM1MCw0ODM1MSw0ODM1Miw0ODM1Myw0ODM1NCw0ODM1NSw0ODM1Niw0ODM1Nyw0ODM1OCw0ODM1OSw0ODM2MCw0ODM2MSw0ODM2Miw0ODM2'@; put 'Myw0ODM2NCw0ODM2NSw0ODM2Niw0ODM2Nyw0ODM2OCw0ODM2OSw0ODM3MCw0ODM3MSw0ODM3NSw0ODM3Nyw0ODM3OCw0ODM3OSw0ODM4MSw0ODM4Miw0ODM4Myw0ODM4NCw0ODM4NSw0ODM4Niw0ODM4Nyw0ODM5MCw0ODM5Miw0ODM5NCw0ODM5NSw0ODM5Niw0ODM5Nyw0ODM5OCw0ODM5OSw0'@; put 'ODQwMSw0ODQwMiw0ODQwMyw0ODQwNSw0ODQwNiw0ODQwNyw0ODQwOCw0ODQwOSw0ODQxMCw0ODQxMSw0ODQxMiw0ODQxMyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0ODQxNCw0ODQxNSw0ODQxNiw0ODQxNyw0ODQxOCw0ODQxOSw0ODQyMSw0ODQyMiw0ODQyMyw0ODQyNCw0ODQy'@; put 'NSw0ODQyNiw0ODQyNyw0ODQyOSw0ODQzMCw0ODQzMSw0ODQzMiw0ODQzMyw0ODQzNCw0ODQzNSw0ODQzNiw0ODQzNyw0ODQzOCw0ODQzOSw0ODQ0MCw0ODQ0MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0ODQ0Miw0ODQ0Myw0ODQ0NCw0ODQ0NSw0ODQ0Niw0ODQ0Nyw0ODQ0OSw0'@; put 'ODQ1MCw0ODQ1MSw0ODQ1Miw0ODQ1Myw0ODQ1NCw0ODQ1NSw0ODQ1OCw0ODQ1OSw0ODQ2MSw0ODQ2Miw0ODQ2Myw0ODQ2NSw0ODQ2Niw0ODQ2Nyw0ODQ2OCw0ODQ2OSw0ODQ3MCw0ODQ3MSw0ODQ3NCw0ODQ3NSw0ODQ3Niw0ODQ3Nyw0ODQ3OCw0ODQ3OSw0ODQ4MCw0ODQ4MSw0ODQ4Miw0ODQ4'@; put 'Myw0ODQ4NSw0ODQ4Niw0ODQ4Nyw0ODQ4OSw0ODQ5MCw0ODQ5MSw0ODQ5Miw0ODQ5Myw0ODQ5NCw0ODQ5NSw0ODQ5Niw0ODQ5Nyw0ODQ5OCw0ODQ5OSw0ODUwMCw0ODUwMSw0ODUwMiw0ODUwMyw0ODUwNCw0ODUwNSw0ODUwNiw0ODUwNyw0ODUwOCw0ODUwOSw0ODUxMCw0ODUxMSw0ODUxNCw0'@; put 'ODUxNSw0ODUxNyw0ODUxOCw0ODUyMyw0ODUyNCw0ODUyNSw0ODUyNiw0ODUyNyw0ODUzMCw0ODUzMiw0ODUzNCw0ODUzNSw0ODUzNiw0ODUzOSw0ODU0MSw0ODU0Miw0ODU0Myw0ODU0NCw0ODU0NSw0ODU0Niw0ODU0Nyw0ODU0OSw0ODU1MCw0ODU1MSw0ODU1Miw0ODU1Myw0ODU1NCw0ODU1'@; put 'NSw0ODU1Niw0ODU1Nyw0ODU1OCw0ODU1OSw0ODU2MSw0ODU2Miw0ODU2Myw0ODU2NCw0ODU2NSw0ODU2Niw0ODU2Nyw0ODU2OSw0ODU3MCw0ODU3MSw0ODU3Miw0ODU3Myw0ODU3NCw0ODU3NSw0ODU3Niw0ODU3Nyw0ODU3OCw0ODU3OSw0ODU4MCw0ODU4MSw0ODU4Miw0ODU4Myw0ODU4NCw0'@; put 'ODU4NSw0ODU4Niw0ODU4Nyw0ODU4OCw0ODU4OSw0ODU5MCw0ODU5MSw0ODU5Miw0ODU5Myw0ODU5NCw0ODU5NSw0ODU5OCw0ODU5OSw0ODYwMSw0ODYwMiw0ODYwMyw0ODYwNSw0ODYwNiw0ODYwNyw0ODYwOCw0ODYwOSw0ODYxMCw0ODYxMSw0ODYxMiw0ODYxMyw0ODYxNCw0ODYxNSw0ODYx'@; put 'Niw0ODYxOCw0ODYxOSw0ODYyMCw0ODYyMSw0ODYyMiw0ODYyMyw0ODYyNSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0ODYyNiw0ODYyNyw0ODYyOSw0ODYzMCw0ODYzMSw0ODYzMyw0ODYzNCw0ODYzNSw0ODYzNiw0ODYzNyw0ODYzOCw0ODYzOSw0ODY0MSw0ODY0Miw0ODY0NCw0'@; put 'ODY0Niw0ODY0Nyw0ODY0OCw0ODY0OSw0ODY1MCw0ODY1MSw0ODY1NCw0ODY1NSw0ODY1Nyw0ODY1OCw0ODY1OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0ODY2MSw0ODY2Miw0ODY2Myw0ODY2NCw0ODY2NSw0ODY2Niw0ODY2Nyw0ODY3MCw0ODY3Miw0ODY3Myw0ODY3NCw0ODY3'@; put 'NSw0ODY3Niw0ODY3Nyw0ODY3OCw0ODY3OSw0ODY4MCw0ODY4MSw0ODY4Miw0ODY4Myw0ODY4NCw0ODY4NSw0ODY4Niw0ODY4Nyw0ODY4OCw0ODY4OSw0ODY5MCw0ODY5MSw0ODY5Miw0ODY5Myw0ODY5NCw0ODY5NSw0ODY5Niw0ODY5Nyw0ODY5OCw0ODY5OSw0ODcwMCw0ODcwMSw0ODcwMiw0'@; put 'ODcwMyw0ODcwNCw0ODcwNSw0ODcwNiw0ODcwNyw0ODcxMCw0ODcxMSw0ODcxMyw0ODcxNCw0ODcxNSw0ODcxNyw0ODcxOSw0ODcyMCw0ODcyMSw0ODcyMiw0ODcyMyw0ODcyNiw0ODcyOCw0ODczMiw0ODczMyw0ODczNCw0ODczNSw0ODczOCw0ODczOSw0ODc0MSw0ODc0Miw0ODc0Myw0ODc0'@; put 'NSw0ODc0Nyw0ODc0OCw0ODc0OSw0ODc1MCw0ODc1MSw0ODc1NCw0ODc1OCw0ODc1OSw0ODc2MCw0ODc2MSw0ODc2Miw0ODc2Niw0ODc2Nyw0ODc2OSw0ODc3MCw0ODc3MSw0ODc3Myw0ODc3NCw0ODc3NSw0ODc3Niw0ODc3Nyw0ODc3OCw0ODc3OSw0ODc4Miw0ODc4Niw0ODc4Nyw0ODc4OCw0'@; put 'ODc4OSw0ODc5MCw0ODc5MSw0ODc5NCw0ODc5NSw0ODc5Niw0ODc5Nyw0ODc5OCw0ODc5OSw0ODgwMCw0ODgwMSw0ODgwMiw0ODgwMyw0ODgwNCw0ODgwNSw0ODgwNiw0ODgwNyw0ODgwOSw0ODgxMCw0ODgxMSw0ODgxMiw0ODgxMyw0ODgxNCw0ODgxNSw0ODgxNiw0ODgxNyw0ODgxOCw0ODgx'@; put 'OSw0ODgyMCw0ODgyMSw0ODgyMiw0ODgyMyw0ODgyNCw0ODgyNSw0ODgyNiw0ODgyNyw0ODgyOCw0ODgyOSw0ODgzMCw0ODgzMSw0ODgzMiw0ODgzMyw0ODgzNCw0ODgzNSw0ODgzNiw0ODgzNyw0ODgzOCw0ODgzOSw0ODg0MCw0ODg0MSw0ODg0Miw0ODg0Myw0ODg0NCw0ODg0NSw0ODg0Niw0'@; put 'ODg0Nyw0ODg1MCw0ODg1MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0ODg1Myw0ODg1NCw0ODg1Nyw0ODg1OCw0ODg1OSw0ODg2MCw0ODg2MSw0ODg2Miw0ODg2Myw0ODg2NSw0ODg2Niw0ODg3MCw0ODg3MSw0ODg3Miw0ODg3Myw0ODg3NCw0ODg3NSw0ODg3Nyw0ODg3OCw0ODg3'@; put 'OSw0ODg4MCw0ODg4MSw0ODg4Miw0ODg4Myw0ODg4NCw0ODg4NSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0ODg4Niw0ODg4Nyw0ODg4OCw0ODg4OSw0ODg5MCw0ODg5MSw0ODg5Miw0ODg5Myw0ODg5NCw0ODg5NSw0ODg5Niw0ODg5OCw0ODg5OSw0ODkwMCw0ODkwMSw0ODkwMiw0'@; put 'ODkwMyw0ODkwNiw0ODkwNyw0ODkwOCw0ODkwOSw0ODkxMCw0ODkxMSw0ODkxMiw0ODkxMyw0ODkxNCw0ODkxNSw0ODkxNiw0ODkxNyw0ODkxOCw0ODkxOSw0ODkyMiw0ODkyNiw0ODkyNyw0ODkyOCw0ODkyOSw0ODkzMCw0ODkzMSw0ODkzMiw0ODkzMyw0ODkzNCw0ODkzNSw0ODkzNiw0ODkz'@; put 'Nyw0ODkzOCw0ODkzOSw0ODk0MCw0ODk0MSw0ODk0Miw0ODk0Myw0ODk0NCw0ODk0NSw0ODk0Niw0ODk0Nyw0ODk0OCw0ODk0OSw0ODk1MCw0ODk1MSw0ODk1Miw0ODk1Myw0ODk1NCw0ODk1NSw0ODk1Niw0ODk1Nyw0ODk1OCw0ODk1OSw0ODk2Miw0ODk2Myw0ODk2NSw0ODk2Niw0ODk2Nyw0'@; put 'ODk2OSw0ODk3MCw0ODk3MSw0ODk3Miw0ODk3Myw0ODk3NCw0ODk3NSw0ODk3OCw0ODk3OSw0ODk4MCw0ODk4Miw0ODk4Myw0ODk4NCw0ODk4NSw0ODk4Niw0ODk4Nyw0ODk4OCw0ODk4OSw0ODk5MCw0ODk5MSw0ODk5Miw0ODk5Myw0ODk5NCw0ODk5NSw0ODk5Niw0ODk5Nyw0ODk5OCw0ODk5'@; put 'OSw0OWUzLDQ5MDAxLDQ5MDAyLDQ5MDAzLDQ5MDA0LDQ5MDA1LDQ5MDA2LDQ5MDA3LDQ5MDA4LDQ5MDA5LDQ5MDEwLDQ5MDExLDQ5MDEyLDQ5MDEzLDQ5MDE0LDQ5MDE1LDQ5MDE2LDQ5MDE3LDQ5MDE4LDQ5MDE5LDQ5MDIwLDQ5MDIxLDQ5MDIyLDQ5MDIzLDQ5MDI0LDQ5MDI1LDQ5MDI2LDQ5'@; put 'MDI3LDQ5MDI4LDQ5MDI5LDQ5MDMwLDQ5MDMxLDQ5MDMyLDQ5MDMzLDQ5MDM0LDQ5MDM1LDQ5MDM2LDQ5MDM3LDQ5MDM4LDQ5MDM5LDQ5MDQwLDQ5MDQxLDQ5MDQyLDQ5MDQzLDQ5MDQ1LDQ5MDQ2LDQ5MDQ3LDQ5MDQ4LDQ5MDQ5LDQ5MDUwLDQ5MDUxLDQ5MDUyLDQ5MDUzLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLDQ5MDU0LDQ5MDU1LDQ5MDU2LDQ5MDU3LDQ5MDU4LDQ5MDU5LDQ5MDYwLDQ5MDYxLDQ5MDYyLDQ5MDYzLDQ5MDY0LDQ5MDY1LDQ5MDY2LDQ5MDY3LDQ5MDY4LDQ5MDY5LDQ5MDcwLDQ5MDcxLDQ5MDczLDQ5MDc0LDQ5MDc1LDQ5MDc2LDQ5MDc3LDQ5MDc4LDQ5'@; put 'MDc5LDQ5MDgwLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ5MDgxLDQ5MDgyLDQ5MDgzLDQ5MDg0LDQ5MDg1LDQ5MDg2LDQ5MDg3LDQ5MDg4LDQ5MDg5LDQ5MDkwLDQ5MDkxLDQ5MDkyLDQ5MDk0LDQ5MDk1LDQ5MDk2LDQ5MDk3LDQ5MDk4LDQ5MDk5LDQ5MTAyLDQ5MTAzLDQ5MTA1'@; put 'LDQ5MTA2LDQ5MTA3LDQ5MTA5LDQ5MTEwLDQ5MTExLDQ5MTEyLDQ5MTEzLDQ5MTE0LDQ5MTE1LDQ5MTE3LDQ5MTE4LDQ5MTIwLDQ5MTIyLDQ5MTIzLDQ5MTI0LDQ5MTI1LDQ5MTI2LDQ5MTI3LDQ5MTI4LDQ5MTI5LDQ5MTMwLDQ5MTMxLDQ5MTMyLDQ5MTMzLDQ5MTM0LDQ5MTM1LDQ5MTM2LDQ5'@; put 'MTM3LDQ5MTM4LDQ5MTM5LDQ5MTQwLDQ5MTQxLDQ5MTQyLDQ5MTQzLDQ5MTQ0LDQ5MTQ1LDQ5MTQ2LDQ5MTQ3LDQ5MTQ4LDQ5MTQ5LDQ5MTUwLDQ5MTUxLDQ5MTUyLDQ5MTUzLDQ5MTU0LDQ5MTU1LDQ5MTU2LDQ5MTU3LDQ5MTU4LDQ5MTU5LDQ5MTYwLDQ5MTYxLDQ5MTYyLDQ5MTYzLDQ5MTY0'@; put 'LDQ5MTY1LDQ5MTY2LDQ5MTY3LDQ5MTY4LDQ5MTY5LDQ5MTcwLDQ5MTcxLDQ5MTcyLDQ5MTczLDQ5MTc0LDQ5MTc1LDQ5MTc2LDQ5MTc3LDQ5MTc4LDQ5MTc5LDQ5MTgwLDQ5MTgxLDQ5MTgyLDQ5MTgzLDQ5MTg0LDQ5MTg1LDQ5MTg2LDQ5MTg3LDQ5MTg4LDQ5MTg5LDQ5MTkwLDQ5MTkxLDQ5'@; put 'MTkyLDQ5MTkzLDQ5MTk0LDQ5MTk1LDQ5MTk2LDQ5MTk3LDQ5MTk4LDQ5MTk5LDQ5MjAwLDQ5MjAxLDQ5MjAyLDQ5MjAzLDQ5MjA0LDQ5MjA1LDQ5MjA2LDQ5MjA3LDQ5MjA4LDQ5MjA5LDQ5MjEwLDQ5MjExLDQ5MjEzLDQ5MjE0LDQ5MjE1LDQ5MjE2LDQ5MjE3LDQ5MjE4LDQ5MjE5LDQ5MjIw'@; put 'LDQ5MjIxLDQ5MjIyLDQ5MjIzLDQ5MjI0LDQ5MjI1LDQ5MjI2LDQ5MjI3LDQ5MjI4LDQ5MjI5LDQ5MjMwLDQ5MjMxLDQ5MjMyLDQ5MjM0LDQ5MjM1LDQ5MjM2LDQ5MjM3LDQ5MjM4LDQ5MjM5LDQ5MjQxLDQ5MjQyLDQ5MjQzLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ5MjQ1LDQ5'@; put 'MjQ2LDQ5MjQ3LDQ5MjQ5LDQ5MjUwLDQ5MjUxLDQ5MjUyLDQ5MjUzLDQ5MjU0LDQ5MjU1LDQ5MjU4LDQ5MjU5LDQ5MjYwLDQ5MjYxLDQ5MjYyLDQ5MjYzLDQ5MjY0LDQ5MjY1LDQ5MjY2LDQ5MjY3LDQ5MjY4LDQ5MjY5LDQ5MjcwLDQ5MjcxLDQ5MjcyLDQ5MjczLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLDQ5Mjc0LDQ5Mjc1LDQ5Mjc2LDQ5Mjc3LDQ5Mjc4LDQ5Mjc5LDQ5MjgwLDQ5MjgxLDQ5MjgyLDQ5MjgzLDQ5Mjg0LDQ5Mjg1LDQ5Mjg2LDQ5Mjg3LDQ5Mjg4LDQ5Mjg5LDQ5MjkwLDQ5MjkxLDQ5MjkyLDQ5MjkzLDQ5Mjk0LDQ5Mjk1LDQ5Mjk4LDQ5Mjk5LDQ5MzAxLDQ5'@; put 'MzAyLDQ5MzAzLDQ5MzA1LDQ5MzA2LDQ5MzA3LDQ5MzA4LDQ5MzA5LDQ5MzEwLDQ5MzExLDQ5MzE0LDQ5MzE2LDQ5MzE4LDQ5MzE5LDQ5MzIwLDQ5MzIxLDQ5MzIyLDQ5MzIzLDQ5MzI2LDQ5MzI5LDQ5MzMwLDQ5MzM1LDQ5MzM2LDQ5MzM3LDQ5MzM4LDQ5MzM5LDQ5MzQyLDQ5MzQ2LDQ5MzQ3'@; put 'LDQ5MzQ4LDQ5MzUwLDQ5MzUxLDQ5MzU0LDQ5MzU1LDQ5MzU3LDQ5MzU4LDQ5MzU5LDQ5MzYxLDQ5MzYyLDQ5MzYzLDQ5MzY0LDQ5MzY1LDQ5MzY2LDQ5MzY3LDQ5MzcwLDQ5Mzc0LDQ5Mzc1LDQ5Mzc2LDQ5Mzc3LDQ5Mzc4LDQ5Mzc5LDQ5MzgyLDQ5MzgzLDQ5Mzg1LDQ5Mzg2LDQ5Mzg3LDQ5'@; put 'Mzg5LDQ5MzkwLDQ5MzkxLDQ5MzkyLDQ5MzkzLDQ5Mzk0LDQ5Mzk1LDQ5Mzk4LDQ5NDAwLDQ5NDAyLDQ5NDAzLDQ5NDA0LDQ5NDA1LDQ5NDA2LDQ5NDA3LDQ5NDA5LDQ5NDEwLDQ5NDExLDQ5NDEzLDQ5NDE0LDQ5NDE1LDQ5NDE3LDQ5NDE4LDQ5NDE5LDQ5NDIwLDQ5NDIxLDQ5NDIyLDQ5NDIz'@; put 'LDQ5NDI1LDQ5NDI2LDQ5NDI3LDQ5NDI4LDQ5NDMwLDQ5NDMxLDQ5NDMyLDQ5NDMzLDQ5NDM0LDQ5NDM1LDQ5NDQxLDQ5NDQyLDQ5NDQ1LDQ5NDQ4LDQ5NDQ5LDQ5NDUwLDQ5NDUxLDQ5NDU0LDQ5NDU4LDQ5NDU5LDQ5NDYwLDQ5NDYxLDQ5NDYzLDQ5NDY2LDQ5NDY3LDQ5NDY5LDQ5NDcwLDQ5'@; put 'NDcxLDQ5NDczLDQ5NDc0LDQ5NDc1LDQ5NDc2LDQ5NDc3LDQ5NDc4LDQ5NDc5LDQ5NDgyLDQ5NDg2LDQ5NDg3LDQ5NDg4LDQ5NDg5LDQ5NDkwLDQ5NDkxLDQ5NDk0LDQ5NDk1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ5NDk3LDQ5NDk4LDQ5NDk5LDQ5NTAxLDQ5NTAyLDQ5NTAz'@; put 'LDQ5NTA0LDQ5NTA1LDQ5NTA2LDQ5NTA3LDQ5NTEwLDQ5NTE0LDQ5NTE1LDQ5NTE2LDQ5NTE3LDQ5NTE4LDQ5NTE5LDQ5NTIxLDQ5NTIyLDQ5NTIzLDQ5NTI1LDQ5NTI2LDQ5NTI3LDQ5NTI5LDQ5NTMwLDQ5NTMxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ5NTMyLDQ5NTMzLDQ5'@; put 'NTM0LDQ5NTM1LDQ5NTM2LDQ5NTM3LDQ5NTM4LDQ5NTM5LDQ5NTQwLDQ5NTQyLDQ5NTQzLDQ5NTQ0LDQ5NTQ1LDQ5NTQ2LDQ5NTQ3LDQ5NTUxLDQ5NTUzLDQ5NTU0LDQ5NTU1LDQ5NTU3LDQ5NTU5LDQ5NTYwLDQ5NTYxLDQ5NTYyLDQ5NTYzLDQ5NTY2LDQ5NTY4LDQ5NTcwLDQ5NTcxLDQ5NTcy'@; put 'LDQ5NTc0LDQ5NTc1LDQ5NTc4LDQ5NTc5LDQ5NTgxLDQ5NTgyLDQ5NTgzLDQ5NTg1LDQ5NTg2LDQ5NTg3LDQ5NTg4LDQ5NTg5LDQ5NTkwLDQ5NTkxLDQ5NTkyLDQ5NTkzLDQ5NTk0LDQ5NTk1LDQ5NTk2LDQ5NTk4LDQ5NTk5LDQ5NjAwLDQ5NjAxLDQ5NjAyLDQ5NjAzLDQ5NjA1LDQ5NjA2LDQ5'@; put 'NjA3LDQ5NjA5LDQ5NjEwLDQ5NjExLDQ5NjEzLDQ5NjE0LDQ5NjE1LDQ5NjE2LDQ5NjE3LDQ5NjE4LDQ5NjE5LDQ5NjIxLDQ5NjIyLDQ5NjI1LDQ5NjI2LDQ5NjI3LDQ5NjI4LDQ5NjI5LDQ5NjMwLDQ5NjMxLDQ5NjMzLDQ5NjM0LDQ5NjM1LDQ5NjM3LDQ5NjM4LDQ5NjM5LDQ5NjQxLDQ5NjQy'@; put 'LDQ5NjQzLDQ5NjQ0LDQ5NjQ1LDQ5NjQ2LDQ5NjQ3LDQ5NjUwLDQ5NjUyLDQ5NjUzLDQ5NjU0LDQ5NjU1LDQ5NjU2LDQ5NjU3LDQ5NjU4LDQ5NjU5LDQ5NjYyLDQ5NjYzLDQ5NjY1LDQ5NjY2LDQ5NjY3LDQ5NjY5LDQ5NjcwLDQ5NjcxLDQ5NjcyLDQ5NjczLDQ5Njc0LDQ5Njc1LDQ5Njc4LDQ5'@; put 'NjgwLDQ5NjgyLDQ5NjgzLDQ5Njg0LDQ5Njg1LDQ5Njg2LDQ5Njg3LDQ5NjkwLDQ5NjkxLDQ5NjkzLDQ5Njk0LDQ5Njk3LDQ5Njk4LDQ5Njk5LDQ5NzAwLDQ5NzAxLDQ5NzAyLDQ5NzAzLDQ5NzA2LDQ5NzA4LDQ5NzEwLDQ5NzEyLDQ5NzE1LDQ5NzE3LDQ5NzE4LDQ5NzE5LDQ5NzIwLDQ5NzIx'@; put 'LDQ5NzIyLDQ5NzIzLDQ5NzI0LDQ5NzI1LDQ5NzI2LDQ5NzI3LDQ5NzI4LDQ5NzI5LDQ5NzMwLDQ5NzMxLDQ5NzMyLDQ5NzMzLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ5NzM0LDQ5NzM1LDQ5NzM3LDQ5NzM4LDQ5NzM5LDQ5NzQwLDQ5NzQxLDQ5NzQyLDQ5NzQzLDQ5NzQ2LDQ5'@; put 'NzQ3LDQ5NzQ5LDQ5NzUwLDQ5NzUxLDQ5NzUzLDQ5NzU0LDQ5NzU1LDQ5NzU2LDQ5NzU3LDQ5NzU4LDQ5NzU5LDQ5NzYxLDQ5NzYyLDQ5NzYzLDQ5NzY0LDQ5NzY2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ5NzY3LDQ5NzY4LDQ5NzY5LDQ5NzcwLDQ5NzcxLDQ5Nzc0LDQ5Nzc1'@; put 'LDQ5Nzc3LDQ5Nzc4LDQ5Nzc5LDQ5NzgxLDQ5NzgyLDQ5NzgzLDQ5Nzg0LDQ5Nzg1LDQ5Nzg2LDQ5Nzg3LDQ5NzkwLDQ5NzkyLDQ5Nzk0LDQ5Nzk1LDQ5Nzk2LDQ5Nzk3LDQ5Nzk4LDQ5Nzk5LDQ5ODAyLDQ5ODAzLDQ5ODA0LDQ5ODA1LDQ5ODA2LDQ5ODA3LDQ5ODA5LDQ5ODEwLDQ5ODExLDQ5'@; put 'ODEyLDQ5ODEzLDQ5ODE0LDQ5ODE1LDQ5ODE3LDQ5ODE4LDQ5ODIwLDQ5ODIyLDQ5ODIzLDQ5ODI0LDQ5ODI1LDQ5ODI2LDQ5ODI3LDQ5ODMwLDQ5ODMxLDQ5ODMzLDQ5ODM0LDQ5ODM1LDQ5ODM4LDQ5ODM5LDQ5ODQwLDQ5ODQxLDQ5ODQyLDQ5ODQzLDQ5ODQ2LDQ5ODQ4LDQ5ODUwLDQ5ODUx'@; put 'LDQ5ODUyLDQ5ODUzLDQ5ODU0LDQ5ODU1LDQ5ODU2LDQ5ODU3LDQ5ODU4LDQ5ODU5LDQ5ODYwLDQ5ODYxLDQ5ODYyLDQ5ODYzLDQ5ODY0LDQ5ODY1LDQ5ODY2LDQ5ODY3LDQ5ODY4LDQ5ODY5LDQ5ODcwLDQ5ODcxLDQ5ODcyLDQ5ODczLDQ5ODc0LDQ5ODc1LDQ5ODc2LDQ5ODc3LDQ5ODc4LDQ5'@; put 'ODc5LDQ5ODgwLDQ5ODgxLDQ5ODgyLDQ5ODgzLDQ5ODg2LDQ5ODg3LDQ5ODg5LDQ5ODkwLDQ5ODkzLDQ5ODk0LDQ5ODk1LDQ5ODk2LDQ5ODk3LDQ5ODk4LDQ5OTAyLDQ5OTA0LDQ5OTA2LDQ5OTA3LDQ5OTA4LDQ5OTA5LDQ5OTExLDQ5OTE0LDQ5OTE3LDQ5OTE4LDQ5OTE5LDQ5OTIxLDQ5OTIy'@; put 'LDQ5OTIzLDQ5OTI0LDQ5OTI1LDQ5OTI2LDQ5OTI3LDQ5OTMwLDQ5OTMxLDQ5OTM0LDQ5OTM1LDQ5OTM2LDQ5OTM3LDQ5OTM4LDQ5OTQyLDQ5OTQzLDQ5OTQ1LDQ5OTQ2LDQ5OTQ3LDQ5OTQ5LDQ5OTUwLDQ5OTUxLDQ5OTUyLDQ5OTUzLDQ5OTU0LDQ5OTU1LDQ5OTU4LDQ5OTU5LDQ5OTYyLDQ5'@; put 'OTYzLDQ5OTY0LDQ5OTY1LDQ5OTY2LDQ5OTY3LDQ5OTY4LDQ5OTY5LDQ5OTcwLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ5OTcxLDQ5OTcyLDQ5OTczLDQ5OTc0LDQ5OTc1LDQ5OTc2LDQ5OTc3LDQ5OTc4LDQ5OTc5LDQ5OTgwLDQ5OTgxLDQ5OTgyLDQ5OTgzLDQ5OTg0LDQ5OTg1'@; put 'LDQ5OTg2LDQ5OTg3LDQ5OTg4LDQ5OTkwLDQ5OTkxLDQ5OTkyLDQ5OTkzLDQ5OTk0LDQ5OTk1LDQ5OTk2LDQ5OTk3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ5OTk4LDQ5OTk5LDVlNCw1MDAwMSw1MDAwMiw1MDAwMyw1MDAwNCw1MDAwNSw1MDAwNiw1MDAwNyw1MDAwOCw1MDAw'@; put 'OSw1MDAxMCw1MDAxMSw1MDAxMiw1MDAxMyw1MDAxNCw1MDAxNSw1MDAxNiw1MDAxNyw1MDAxOCw1MDAxOSw1MDAyMCw1MDAyMSw1MDAyMiw1MDAyMyw1MDAyNiw1MDAyNyw1MDAyOSw1MDAzMCw1MDAzMSw1MDAzMyw1MDAzNSw1MDAzNiw1MDAzNyw1MDAzOCw1MDAzOSw1MDA0Miw1MDA0Myw1'@; put 'MDA0Niw1MDA0Nyw1MDA0OCw1MDA0OSw1MDA1MCw1MDA1MSw1MDA1Myw1MDA1NCw1MDA1NSw1MDA1Nyw1MDA1OCw1MDA1OSw1MDA2MSw1MDA2Miw1MDA2Myw1MDA2NCw1MDA2NSw1MDA2Niw1MDA2Nyw1MDA2OCw1MDA2OSw1MDA3MCw1MDA3MSw1MDA3Miw1MDA3Myw1MDA3NCw1MDA3NSw1MDA3'@; put 'Niw1MDA3Nyw1MDA3OCw1MDA3OSw1MDA4MCw1MDA4MSw1MDA4Miw1MDA4Myw1MDA4NCw1MDA4NSw1MDA4Niw1MDA4Nyw1MDA4OCw1MDA4OSw1MDA5MCw1MDA5MSw1MDA5Miw1MDA5Myw1MDA5NCw1MDA5NSw1MDA5Niw1MDA5Nyw1MDA5OCw1MDA5OSw1MDEwMCw1MDEwMSw1MDEwMiw1MDEwMyw1'@; put 'MDEwNCw1MDEwNSw1MDEwNiw1MDEwNyw1MDEwOCw1MDEwOSw1MDExMCw1MDExMSw1MDExMyw1MDExNCw1MDExNSw1MDExNiw1MDExNyw1MDExOCw1MDExOSw1MDEyMCw1MDEyMSw1MDEyMiw1MDEyMyw1MDEyNCw1MDEyNSw1MDEyNiw1MDEyNyw1MDEyOCw1MDEyOSw1MDEzMCw1MDEzMSw1MDEz'@; put 'Miw1MDEzMyw1MDEzNCw1MDEzNSw1MDEzOCw1MDEzOSw1MDE0MSw1MDE0Miw1MDE0NSw1MDE0Nyw1MDE0OCw1MDE0OSw1MDE1MCw1MDE1MSw1MDE1NCw1MDE1NSw1MDE1Niw1MDE1OCw1MDE1OSw1MDE2MCw1MDE2MSw1MDE2Miw1MDE2Myw1MDE2Niw1MDE2Nyw1MDE2OSw1MDE3MCw1MDE3MSw1'@; put 'MDE3Miw1MDE3Myw1MDE3NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MDE3NSw1MDE3Niw1MDE3Nyw1MDE3OCw1MDE3OSw1MDE4MCw1MDE4MSw1MDE4Miw1MDE4Myw1MDE4NSw1MDE4Niw1MDE4Nyw1MDE4OCw1MDE4OSw1MDE5MCw1MDE5MSw1MDE5Myw1MDE5NCw1MDE5NSw1MDE5'@; put 'Niw1MDE5Nyw1MDE5OCw1MDE5OSw1MDIwMCw1MDIwMSw1MDIwMixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MDIwMyw1MDIwNCw1MDIwNSw1MDIwNiw1MDIwNyw1MDIwOCw1MDIwOSw1MDIxMCw1MDIxMSw1MDIxMyw1MDIxNCw1MDIxNSw1MDIxNiw1MDIxNyw1MDIxOCw1MDIxOSw1'@; put 'MDIyMSw1MDIyMiw1MDIyMyw1MDIyNSw1MDIyNiw1MDIyNyw1MDIyOSw1MDIzMCw1MDIzMSw1MDIzMiw1MDIzMyw1MDIzNCw1MDIzNSw1MDIzOCw1MDIzOSw1MDI0MCw1MDI0MSw1MDI0Miw1MDI0Myw1MDI0NCw1MDI0NSw1MDI0Niw1MDI0Nyw1MDI0OSw1MDI1MCw1MDI1MSw1MDI1Miw1MDI1'@; put 'Myw1MDI1NCw1MDI1NSw1MDI1Niw1MDI1Nyw1MDI1OCw1MDI1OSw1MDI2MCw1MDI2MSw1MDI2Miw1MDI2Myw1MDI2NCw1MDI2NSw1MDI2Niw1MDI2Nyw1MDI2OCw1MDI2OSw1MDI3MCw1MDI3MSw1MDI3Miw1MDI3Myw1MDI3NCw1MDI3NSw1MDI3OCw1MDI3OSw1MDI4MSw1MDI4Miw1MDI4Myw1'@; put 'MDI4NSw1MDI4Niw1MDI4Nyw1MDI4OCw1MDI4OSw1MDI5MCw1MDI5MSw1MDI5NCw1MDI5NSw1MDI5Niw1MDI5OCw1MDI5OSw1MDMwMCw1MDMwMSw1MDMwMiw1MDMwMyw1MDMwNSw1MDMwNiw1MDMwNyw1MDMwOCw1MDMwOSw1MDMxMCw1MDMxMSw1MDMxMiw1MDMxMyw1MDMxNCw1MDMxNSw1MDMx'@; put 'Niw1MDMxNyw1MDMxOCw1MDMxOSw1MDMyMCw1MDMyMSw1MDMyMiw1MDMyMyw1MDMyNSw1MDMyNiw1MDMyNyw1MDMyOCw1MDMyOSw1MDMzMCw1MDMzMSw1MDMzMyw1MDMzNCw1MDMzNSw1MDMzNiw1MDMzNyw1MDMzOCw1MDMzOSw1MDM0MCw1MDM0MSw1MDM0Miw1MDM0Myw1MDM0NCw1MDM0NSw1'@; put 'MDM0Niw1MDM0Nyw1MDM0OCw1MDM0OSw1MDM1MCw1MDM1MSw1MDM1Miw1MDM1Myw1MDM1NCw1MDM1NSw1MDM1Niw1MDM1Nyw1MDM1OCw1MDM1OSw1MDM2MSw1MDM2Miw1MDM2Myw1MDM2NSw1MDM2Niw1MDM2Nyw1MDM2OCw1MDM2OSw1MDM3MCw1MDM3MSw1MDM3Miw1MDM3MyxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCw1MDM3NCw1MDM3NSw1MDM3Niw1MDM3Nyw1MDM3OCw1MDM3OSw1MDM4MCw1MDM4MSw1MDM4Miw1MDM4Myw1MDM4NCw1MDM4NSw1MDM4Niw1MDM4Nyw1MDM4OCw1MDM4OSw1MDM5MCw1MDM5MSw1MDM5Miw1MDM5Myw1MDM5NCw1MDM5NSw1MDM5Niw1MDM5Nyw1'@; put 'MDM5OCw1MDM5OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MDQwMCw1MDQwMSw1MDQwMiw1MDQwMyw1MDQwNCw1MDQwNSw1MDQwNiw1MDQwNyw1MDQwOCw1MDQxMCw1MDQxMSw1MDQxMiw1MDQxMyw1MDQxNCw1MDQxNSw1MDQxOCw1MDQxOSw1MDQyMSw1MDQyMiw1MDQyMyw1MDQy'@; put 'NSw1MDQyNyw1MDQyOCw1MDQyOSw1MDQzMCw1MDQzNCw1MDQzNSw1MDQzNiw1MDQzNyw1MDQzOCw1MDQzOSw1MDQ0MCw1MDQ0MSw1MDQ0Miw1MDQ0Myw1MDQ0NSw1MDQ0Niw1MDQ0Nyw1MDQ0OSw1MDQ1MCw1MDQ1MSw1MDQ1Myw1MDQ1NCw1MDQ1NSw1MDQ1Niw1MDQ1Nyw1MDQ1OCw1MDQ1OSw1'@; put 'MDQ2MSw1MDQ2Miw1MDQ2Myw1MDQ2NCw1MDQ2NSw1MDQ2Niw1MDQ2Nyw1MDQ2OCw1MDQ2OSw1MDQ3MCw1MDQ3MSw1MDQ3NCw1MDQ3NSw1MDQ3Nyw1MDQ3OCw1MDQ3OSw1MDQ4MSw1MDQ4Miw1MDQ4Myw1MDQ4NCw1MDQ4NSw1MDQ4Niw1MDQ4Nyw1MDQ5MCw1MDQ5Miw1MDQ5NCw1MDQ5NSw1MDQ5'@; put 'Niw1MDQ5Nyw1MDQ5OCw1MDQ5OSw1MDUwMiw1MDUwMyw1MDUwNyw1MDUxMSw1MDUxMiw1MDUxMyw1MDUxNCw1MDUxOCw1MDUyMiw1MDUyMyw1MDUyNCw1MDUyNyw1MDUzMCw1MDUzMSw1MDUzMyw1MDUzNCw1MDUzNSw1MDUzNyw1MDUzOCw1MDUzOSw1MDU0MCw1MDU0MSw1MDU0Miw1MDU0Myw1'@; put 'MDU0Niw1MDU1MCw1MDU1MSw1MDU1Miw1MDU1Myw1MDU1NCw1MDU1NSw1MDU1OCw1MDU1OSw1MDU2MSw1MDU2Miw1MDU2Myw1MDU2NSw1MDU2Niw1MDU2OCw1MDU2OSw1MDU3MCw1MDU3MSw1MDU3NCw1MDU3Niw1MDU3OCw1MDU3OSw1MDU4MCw1MDU4Miw1MDU4NSw1MDU4Niw1MDU4Nyw1MDU4'@; put 'OSw1MDU5MCw1MDU5MSw1MDU5Myw1MDU5NCw1MDU5NSw1MDU5Niw1MDU5Nyw1MDU5OCw1MDU5OSw1MDYwMCw1MDYwMiw1MDYwMyw1MDYwNCw1MDYwNSw1MDYwNiw1MDYwNyw1MDYwOCw1MDYwOSw1MDYxMCw1MDYxMSw1MDYxNCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MDYxNSw1'@; put 'MDYxOCw1MDYyMyw1MDYyNCw1MDYyNSw1MDYyNiw1MDYyNyw1MDYzNSw1MDYzNyw1MDYzOSw1MDY0Miw1MDY0Myw1MDY0NSw1MDY0Niw1MDY0Nyw1MDY0OSw1MDY1MCw1MDY1MSw1MDY1Miw1MDY1Myw1MDY1NCw1MDY1NSw1MDY1OCw1MDY2MCw1MDY2Miw1MDY2MyxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCw1MDY2NCw1MDY2NSw1MDY2Niw1MDY2Nyw1MDY3MSw1MDY3Myw1MDY3NCw1MDY3NSw1MDY3Nyw1MDY4MCw1MDY4MSw1MDY4Miw1MDY4Myw1MDY5MCw1MDY5MSw1MDY5Miw1MDY5Nyw1MDY5OCw1MDY5OSw1MDcwMSw1MDcwMiw1MDcwMyw1MDcwNSw1MDcwNiw1MDcwNyw1'@; put 'MDcwOCw1MDcwOSw1MDcxMCw1MDcxMSw1MDcxNCw1MDcxNyw1MDcxOCw1MDcxOSw1MDcyMCw1MDcyMSw1MDcyMiw1MDcyMyw1MDcyNiw1MDcyNyw1MDcyOSw1MDczMCw1MDczMSw1MDczNSw1MDczNyw1MDczOCw1MDc0Miw1MDc0NCw1MDc0Niw1MDc0OCw1MDc0OSw1MDc1MCw1MDc1MSw1MDc1'@; put 'NCw1MDc1NSw1MDc1Nyw1MDc1OCw1MDc1OSw1MDc2MSw1MDc2Miw1MDc2Myw1MDc2NCw1MDc2NSw1MDc2Niw1MDc2Nyw1MDc3MCw1MDc3NCw1MDc3NSw1MDc3Niw1MDc3Nyw1MDc3OCw1MDc3OSw1MDc4Miw1MDc4Myw1MDc4NSw1MDc4Niw1MDc4Nyw1MDc4OCw1MDc4OSw1MDc5MCw1MDc5MSw1'@; put 'MDc5Miw1MDc5Myw1MDc5NCw1MDc5NSw1MDc5Nyw1MDc5OCw1MDgwMCw1MDgwMiw1MDgwMyw1MDgwNCw1MDgwNSw1MDgwNiw1MDgwNyw1MDgxMCw1MDgxMSw1MDgxMyw1MDgxNCw1MDgxNSw1MDgxNyw1MDgxOCw1MDgxOSw1MDgyMCw1MDgyMSw1MDgyMiw1MDgyMyw1MDgyNiw1MDgyOCw1MDgz'@; put 'MCw1MDgzMSw1MDgzMiw1MDgzMyw1MDgzNCw1MDgzNSw1MDgzOCw1MDgzOSw1MDg0MSw1MDg0Miw1MDg0Myw1MDg0NSw1MDg0Niw1MDg0Nyw1MDg0OCw1MDg0OSw1MDg1MCw1MDg1MSw1MDg1NCw1MDg1Niw1MDg1OCw1MDg1OSw1MDg2MCw1MDg2MSw1MDg2Miw1MDg2Myw1MDg2Niw1MDg2Nyw1'@; put 'MDg2OSw1MDg3MCw1MDg3MSw1MDg3NSw1MDg3Niw1MDg3Nyw1MDg3OCw1MDg3OSw1MDg4Miw1MDg4NCw1MDg4Niw1MDg4Nyw1MDg4OCw1MDg4OSw1MDg5MCw1MDg5MSw1MDg5NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MDg5NSw1MDg5Nyw1MDg5OCw1MDg5OSw1MDkwMSw1MDkw'@; put 'Miw1MDkwMyw1MDkwNCw1MDkwNSw1MDkwNiw1MDkwNyw1MDkxMCw1MDkxMSw1MDkxNCw1MDkxNSw1MDkxNiw1MDkxNyw1MDkxOCw1MDkxOSw1MDkyMiw1MDkyMyw1MDkyNSw1MDkyNiw1MDkyNyw1MDkyOSw1MDkzMCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MDkzMSw1MDkzMiw1'@; put 'MDkzMyw1MDkzNCw1MDkzNSw1MDkzOCw1MDkzOSw1MDk0MCw1MDk0Miw1MDk0Myw1MDk0NCw1MDk0NSw1MDk0Niw1MDk0Nyw1MDk1MCw1MDk1MSw1MDk1Myw1MDk1NCw1MDk1NSw1MDk1Nyw1MDk1OCw1MDk1OSw1MDk2MCw1MDk2MSw1MDk2Miw1MDk2Myw1MDk2Niw1MDk2OCw1MDk3MCw1MDk3'@; put 'MSw1MDk3Miw1MDk3Myw1MDk3NCw1MDk3NSw1MDk3OCw1MDk3OSw1MDk4MSw1MDk4Miw1MDk4Myw1MDk4NSw1MDk4Niw1MDk4Nyw1MDk4OCw1MDk4OSw1MDk5MCw1MDk5MSw1MDk5NCw1MDk5Niw1MDk5OCw1MWUzLDUxMDAxLDUxMDAyLDUxMDAzLDUxMDA2LDUxMDA3LDUxMDA5LDUxMDEwLDUx'@; put 'MDExLDUxMDEzLDUxMDE0LDUxMDE1LDUxMDE2LDUxMDE3LDUxMDE5LDUxMDIyLDUxMDI0LDUxMDMzLDUxMDM0LDUxMDM1LDUxMDM3LDUxMDM4LDUxMDM5LDUxMDQxLDUxMDQyLDUxMDQzLDUxMDQ0LDUxMDQ1LDUxMDQ2LDUxMDQ3LDUxMDQ5LDUxMDUwLDUxMDUyLDUxMDUzLDUxMDU0LDUxMDU1'@; put 'LDUxMDU2LDUxMDU3LDUxMDU4LDUxMDU5LDUxMDYyLDUxMDYzLDUxMDY1LDUxMDY2LDUxMDY3LDUxMDcxLDUxMDcyLDUxMDczLDUxMDc0LDUxMDc4LDUxMDgzLDUxMDg0LDUxMDg1LDUxMDg3LDUxMDkwLDUxMDkxLDUxMDkzLDUxMDk3LDUxMDk5LDUxMTAwLDUxMTAxLDUxMTAyLDUxMTAzLDUx'@; put 'MTA2LDUxMTExLDUxMTEyLDUxMTEzLDUxMTE0LDUxMTE1LDUxMTE4LDUxMTE5LDUxMTIxLDUxMTIyLDUxMTIzLDUxMTI1LDUxMTI2LDUxMTI3LDUxMTI4LDUxMTI5LDUxMTMwLDUxMTMxLDUxMTM0LDUxMTM4LDUxMTM5LDUxMTQwLDUxMTQxLDUxMTQyLDUxMTQzLDUxMTQ2LDUxMTQ3LDUxMTQ5'@; put 'LDUxMTUxLDUxMTUzLDUxMTU0LDUxMTU1LDUxMTU2LDUxMTU3LDUxMTU4LDUxMTU5LDUxMTYxLDUxMTYyLDUxMTYzLDUxMTY0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUxMTY2LDUxMTY3LDUxMTY4LDUxMTY5LDUxMTcwLDUxMTcxLDUxMTczLDUxMTc0LDUxMTc1LDUxMTc3LDUx'@; put 'MTc4LDUxMTc5LDUxMTgxLDUxMTgyLDUxMTgzLDUxMTg0LDUxMTg1LDUxMTg2LDUxMTg3LDUxMTg4LDUxMTg5LDUxMTkwLDUxMTkxLDUxMTkyLDUxMTkzLDUxMTk0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUxMTk1LDUxMTk2LDUxMTk3LDUxMTk4LDUxMTk5LDUxMjAyLDUxMjAz'@; put 'LDUxMjA1LDUxMjA2LDUxMjA3LDUxMjA5LDUxMjExLDUxMjEyLDUxMjEzLDUxMjE0LDUxMjE1LDUxMjE4LDUxMjIwLDUxMjIzLDUxMjI0LDUxMjI1LDUxMjI2LDUxMjI3LDUxMjMwLDUxMjMxLDUxMjMzLDUxMjM0LDUxMjM1LDUxMjM3LDUxMjM4LDUxMjM5LDUxMjQwLDUxMjQxLDUxMjQyLDUx'@; put 'MjQzLDUxMjQ2LDUxMjQ4LDUxMjUwLDUxMjUxLDUxMjUyLDUxMjUzLDUxMjU0LDUxMjU1LDUxMjU3LDUxMjU4LDUxMjU5LDUxMjYxLDUxMjYyLDUxMjYzLDUxMjY1LDUxMjY2LDUxMjY3LDUxMjY4LDUxMjY5LDUxMjcwLDUxMjcxLDUxMjc0LDUxMjc1LDUxMjc4LDUxMjc5LDUxMjgwLDUxMjgx'@; put 'LDUxMjgyLDUxMjgzLDUxMjg1LDUxMjg2LDUxMjg3LDUxMjg4LDUxMjg5LDUxMjkwLDUxMjkxLDUxMjkyLDUxMjkzLDUxMjk0LDUxMjk1LDUxMjk2LDUxMjk3LDUxMjk4LDUxMjk5LDUxMzAwLDUxMzAxLDUxMzAyLDUxMzAzLDUxMzA0LDUxMzA1LDUxMzA2LDUxMzA3LDUxMzA4LDUxMzA5LDUx'@; put 'MzEwLDUxMzExLDUxMzE0LDUxMzE1LDUxMzE3LDUxMzE4LDUxMzE5LDUxMzIxLDUxMzIzLDUxMzI0LDUxMzI1LDUxMzI2LDUxMzI3LDUxMzMwLDUxMzMyLDUxMzM2LDUxMzM3LDUxMzM4LDUxMzQyLDUxMzQzLDUxMzQ0LDUxMzQ1LDUxMzQ2LDUxMzQ3LDUxMzQ5LDUxMzUwLDUxMzUxLDUxMzUy'@; put 'LDUxMzUzLDUxMzU0LDUxMzU1LDUxMzU2LDUxMzU4LDUxMzYwLDUxMzYyLDUxMzYzLDUxMzY0LDUxMzY1LDUxMzY2LDUxMzY3LDUxMzY5LDUxMzcwLDUxMzcxLDUxMzcyLDUxMzczLDUxMzc0LDUxMzc1LDUxMzc2LDUxMzc3LDUxMzc4LDUxMzc5LDUxMzgwLDUxMzgxLDUxMzgyLDUxMzgzLDUx'@; put 'Mzg0LDUxMzg1LDUxMzg2LDUxMzg3LDUxMzkwLDUxMzkxLDUxMzkyLDUxMzkzLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUxMzk0LDUxMzk1LDUxMzk3LDUxMzk4LDUxMzk5LDUxNDAxLDUxNDAyLDUxNDAzLDUxNDA1LDUxNDA2LDUxNDA3LDUxNDA4LDUxNDA5LDUxNDEwLDUxNDEx'@; put 'LDUxNDE0LDUxNDE2LDUxNDE4LDUxNDE5LDUxNDIwLDUxNDIxLDUxNDIyLDUxNDIzLDUxNDI2LDUxNDI3LDUxNDI5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUxNDMwLDUxNDMxLDUxNDMyLDUxNDMzLDUxNDM0LDUxNDM1LDUxNDM2LDUxNDM3LDUxNDM4LDUxNDM5LDUxNDQwLDUx'@; put 'NDQxLDUxNDQyLDUxNDQzLDUxNDQ0LDUxNDQ2LDUxNDQ3LDUxNDQ4LDUxNDQ5LDUxNDUwLDUxNDUxLDUxNDU0LDUxNDU1LDUxNDU3LDUxNDU4LDUxNDU5LDUxNDYzLDUxNDY0LDUxNDY1LDUxNDY2LDUxNDY3LDUxNDcwLDEyMjg4LDEyMjg5LDEyMjkwLDE4Myw4MjI5LDgyMzAsMTY4LDEyMjkx'@; put 'LDE3Myw4MjEzLDg3NDEsNjUzNDAsODc2NCw4MjE2LDgyMTcsODIyMCw4MjIxLDEyMzA4LDEyMzA5LDEyMjk2LDEyMjk3LDEyMjk4LDEyMjk5LDEyMzAwLDEyMzAxLDEyMzAyLDEyMzAzLDEyMzA0LDEyMzA1LDE3NywyMTUsMjQ3LDg4MDAsODgwNCw4ODA1LDg3MzQsODc1NiwxNzYsODI0Miw4'@; put 'MjQzLDg0NTEsODQ5MSw2NTUwNCw2NTUwNSw2NTUwOSw5Nzk0LDk3OTIsODczNiw4ODY5LDg5NzgsODcwNiw4NzExLDg4MDEsODc4NiwxNjcsODI1MSw5NzM0LDk3MzMsOTY3NSw5Njc5LDk2NzgsOTY3MSw5NjcwLDk2MzMsOTYzMiw5NjUxLDk2NTAsOTY2MSw5NjYwLDg1OTQsODU5Miw4NTkz'@; put 'LDg1OTUsODU5NiwxMjMwNyw4ODEwLDg4MTEsODczMCw4NzY1LDg3MzMsODc1Nyw4NzQ3LDg3NDgsODcxMiw4NzE1LDg4MzgsODgzOSw4ODM0LDg4MzUsODc0Niw4NzQ1LDg3NDMsODc0NCw2NTUwNiw1MTQ3Miw1MTQ3NCw1MTQ3NSw1MTQ3Niw1MTQ3Nyw1MTQ3OCw1MTQ3OSw1MTQ4MSw1MTQ4'@; put 'Miw1MTQ4Myw1MTQ4NCw1MTQ4NSw1MTQ4Niw1MTQ4Nyw1MTQ4OCw1MTQ4OSw1MTQ5MCw1MTQ5MSw1MTQ5Miw1MTQ5Myw1MTQ5NCw1MTQ5NSw1MTQ5Niw1MTQ5Nyw1MTQ5OCw1MTQ5OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MTUwMSw1MTUwMiw1MTUwMyw1MTUwNCw1MTUwNSw1'@; put 'MTUwNiw1MTUwNyw1MTUwOSw1MTUxMCw1MTUxMSw1MTUxMiw1MTUxMyw1MTUxNCw1MTUxNSw1MTUxNiw1MTUxNyw1MTUxOCw1MTUxOSw1MTUyMCw1MTUyMSw1MTUyMiw1MTUyMyw1MTUyNCw1MTUyNSw1MTUyNiw1MTUyNyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MTUyOCw1MTUy'@; put 'OSw1MTUzMCw1MTUzMSw1MTUzMiw1MTUzMyw1MTUzNCw1MTUzNSw1MTUzOCw1MTUzOSw1MTU0MSw1MTU0Miw1MTU0Myw1MTU0NSw1MTU0Niw1MTU0Nyw1MTU0OCw1MTU0OSw1MTU1MCw1MTU1MSw1MTU1NCw1MTU1Niw1MTU1Nyw1MTU1OCw1MTU1OSw1MTU2MCw1MTU2MSw1MTU2Miw1MTU2Myw1'@; put 'MTU2NSw1MTU2Niw1MTU2Nyw4NjU4LDg2NjAsODcwNCw4NzA3LDE4MCw2NTM3NCw3MTEsNzI4LDczMyw3MzAsNzI5LDE4NCw3MzEsMTYxLDE5MSw3MjAsODc1MCw4NzIxLDg3MTksMTY0LDg0NTcsODI0MCw5NjY1LDk2NjQsOTY1NSw5NjU0LDk4MjgsOTgyNCw5ODI1LDk4MjksOTgzMSw5ODI3'@; put 'LDg4NTcsOTY3Miw5NjM1LDk2ODAsOTY4MSw5NjE4LDk2MzYsOTYzNyw5NjQwLDk2MzksOTYzOCw5NjQxLDk4MzIsOTc0Myw5NzQyLDk3NTYsOTc1OCwxODIsODIyNCw4MjI1LDg1OTcsODU5OSw4NjAxLDg1OTgsODYwMCw5ODM3LDk4MzMsOTgzNCw5ODM2LDEyOTI3LDEyODI4LDg0NzAsMTMy'@; put 'NTUsODQ4MiwxMzI1MCwxMzI3Miw4NDgxLDgzNjQsMTc0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MTU2OSw1MTU3MCw1MTU3'@; put 'MSw1MTU3Myw1MTU3NCw1MTU3NSw1MTU3Niw1MTU3Nyw1MTU3OCw1MTU3OSw1MTU4MSw1MTU4Miw1MTU4Myw1MTU4NCw1MTU4NSw1MTU4Niw1MTU4Nyw1MTU4OCw1MTU4OSw1MTU5MCw1MTU5MSw1MTU5NCw1MTU5NSw1MTU5Nyw1MTU5OCw1MTU5OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCw1MTYwMSw1MTYwMiw1MTYwMyw1MTYwNCw1MTYwNSw1MTYwNiw1MTYwNyw1MTYxMCw1MTYxMiw1MTYxNCw1MTYxNSw1MTYxNiw1MTYxNyw1MTYxOCw1MTYxOSw1MTYyMCw1MTYyMSw1MTYyMiw1MTYyMyw1MTYyNCw1MTYyNSw1MTYyNiw1MTYyNyw1MTYyOCw1MTYyOSw1MTYzMCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MTYzMSw1MTYzMiw1MTYzMyw1MTYzNCw1MTYzNSw1MTYzNiw1MTYzNyw1MTYzOCw1MTYzOSw1MTY0MCw1MTY0MSw1MTY0Miw1MTY0Myw1MTY0NCw1MTY0NSw1MTY0Niw1MTY0Nyw1MTY1MCw1MTY1MSw1MTY1Myw1MTY1NCw1MTY1Nyw1MTY1OSw1'@; put 'MTY2MCw1MTY2MSw1MTY2Miw1MTY2Myw1MTY2Niw1MTY2OCw1MTY3MSw1MTY3Miw1MTY3NSw2NTI4MSw2NTI4Miw2NTI4Myw2NTI4NCw2NTI4NSw2NTI4Niw2NTI4Nyw2NTI4OCw2NTI4OSw2NTI5MCw2NTI5MSw2NTI5Miw2NTI5Myw2NTI5NCw2NTI5NSw2NTI5Niw2NTI5Nyw2NTI5OCw2NTI5'@; put 'OSw2NTMwMCw2NTMwMSw2NTMwMiw2NTMwMyw2NTMwNCw2NTMwNSw2NTMwNiw2NTMwNyw2NTMwOCw2NTMwOSw2NTMxMCw2NTMxMSw2NTMxMiw2NTMxMyw2NTMxNCw2NTMxNSw2NTMxNiw2NTMxNyw2NTMxOCw2NTMxOSw2NTMyMCw2NTMyMSw2NTMyMiw2NTMyMyw2NTMyNCw2NTMyNSw2NTMyNiw2'@; put 'NTMyNyw2NTMyOCw2NTMyOSw2NTMzMCw2NTMzMSw2NTMzMiw2NTMzMyw2NTMzNCw2NTMzNSw2NTMzNiw2NTMzNyw2NTMzOCw2NTMzOSw2NTUxMCw2NTM0MSw2NTM0Miw2NTM0Myw2NTM0NCw2NTM0NSw2NTM0Niw2NTM0Nyw2NTM0OCw2NTM0OSw2NTM1MCw2NTM1MSw2NTM1Miw2NTM1Myw2NTM1'@; put 'NCw2NTM1NSw2NTM1Niw2NTM1Nyw2NTM1OCw2NTM1OSw2NTM2MCw2NTM2MSw2NTM2Miw2NTM2Myw2NTM2NCw2NTM2NSw2NTM2Niw2NTM2Nyw2NTM2OCw2NTM2OSw2NTM3MCw2NTM3MSw2NTM3Miw2NTM3Myw2NTUwNyw1MTY3OCw1MTY3OSw1MTY4MSw1MTY4Myw1MTY4NSw1MTY4Niw1MTY4OCw1'@; put 'MTY4OSw1MTY5MCw1MTY5MSw1MTY5NCw1MTY5OCw1MTY5OSw1MTcwMCw1MTcwMSw1MTcwMiw1MTcwMyw1MTcwNiw1MTcwNyw1MTcwOSw1MTcxMCw1MTcxMSw1MTcxMyw1MTcxNCw1MTcxNSw1MTcxNixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MTcxNyw1MTcxOCw1MTcxOSw1MTcy'@; put 'Miw1MTcyNiw1MTcyNyw1MTcyOCw1MTcyOSw1MTczMCw1MTczMSw1MTczMyw1MTczNCw1MTczNSw1MTczNyw1MTczOCw1MTczOSw1MTc0MCw1MTc0MSw1MTc0Miw1MTc0Myw1MTc0NCw1MTc0NSw1MTc0Niw1MTc0Nyw1MTc0OCw1MTc0OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1'@; put 'MTc1MCw1MTc1MSw1MTc1Miw1MTc1NCw1MTc1NSw1MTc1Niw1MTc1Nyw1MTc1OCw1MTc1OSw1MTc2MCw1MTc2MSw1MTc2Miw1MTc2Myw1MTc2NCw1MTc2NSw1MTc2Niw1MTc2Nyw1MTc2OCw1MTc2OSw1MTc3MCw1MTc3MSw1MTc3Miw1MTc3Myw1MTc3NCw1MTc3NSw1MTc3Niw1MTc3Nyw1MTc3'@; put 'OCw1MTc3OSw1MTc4MCw1MTc4MSw1MTc4MiwxMjU5MywxMjU5NCwxMjU5NSwxMjU5NiwxMjU5NywxMjU5OCwxMjU5OSwxMjYwMCwxMjYwMSwxMjYwMiwxMjYwMywxMjYwNCwxMjYwNSwxMjYwNiwxMjYwNywxMjYwOCwxMjYwOSwxMjYxMCwxMjYxMSwxMjYxMiwxMjYxMywxMjYxNCwxMjYxNSwx'@; put 'MjYxNiwxMjYxNywxMjYxOCwxMjYxOSwxMjYyMCwxMjYyMSwxMjYyMiwxMjYyMywxMjYyNCwxMjYyNSwxMjYyNiwxMjYyNywxMjYyOCwxMjYyOSwxMjYzMCwxMjYzMSwxMjYzMiwxMjYzMywxMjYzNCwxMjYzNSwxMjYzNiwxMjYzNywxMjYzOCwxMjYzOSwxMjY0MCwxMjY0MSwxMjY0MiwxMjY0'@; put 'MywxMjY0NCwxMjY0NSwxMjY0NiwxMjY0NywxMjY0OCwxMjY0OSwxMjY1MCwxMjY1MSwxMjY1MiwxMjY1MywxMjY1NCwxMjY1NSwxMjY1NiwxMjY1NywxMjY1OCwxMjY1OSwxMjY2MCwxMjY2MSwxMjY2MiwxMjY2MywxMjY2NCwxMjY2NSwxMjY2NiwxMjY2NywxMjY2OCwxMjY2OSwxMjY3MCwx'@; put 'MjY3MSwxMjY3MiwxMjY3MywxMjY3NCwxMjY3NSwxMjY3NiwxMjY3NywxMjY3OCwxMjY3OSwxMjY4MCwxMjY4MSwxMjY4MiwxMjY4MywxMjY4NCwxMjY4NSwxMjY4Niw1MTc4Myw1MTc4NCw1MTc4NSw1MTc4Niw1MTc4Nyw1MTc5MCw1MTc5MSw1MTc5Myw1MTc5NCw1MTc5NSw1MTc5Nyw1MTc5'@; put 'OCw1MTc5OSw1MTgwMCw1MTgwMSw1MTgwMiw1MTgwMyw1MTgwNiw1MTgxMCw1MTgxMSw1MTgxMiw1MTgxMyw1MTgxNCw1MTgxNSw1MTgxNyw1MTgxOCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MTgxOSw1MTgyMCw1MTgyMSw1MTgyMiw1MTgyMyw1MTgyNCw1MTgyNSw1MTgyNiw1'@; put 'MTgyNyw1MTgyOCw1MTgyOSw1MTgzMCw1MTgzMSw1MTgzMiw1MTgzMyw1MTgzNCw1MTgzNSw1MTgzNiw1MTgzOCw1MTgzOSw1MTg0MCw1MTg0MSw1MTg0Miw1MTg0Myw1MTg0NSw1MTg0NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MTg0Nyw1MTg0OCw1MTg0OSw1MTg1MCw1MTg1'@; put 'MSw1MTg1Miw1MTg1Myw1MTg1NCw1MTg1NSw1MTg1Niw1MTg1Nyw1MTg1OCw1MTg1OSw1MTg2MCw1MTg2MSw1MTg2Miw1MTg2Myw1MTg2NSw1MTg2Niw1MTg2Nyw1MTg2OCw1MTg2OSw1MTg3MCw1MTg3MSw1MTg3Miw1MTg3Myw1MTg3NCw1MTg3NSw1MTg3Niw1MTg3Nyw1MTg3OCw1MTg3OSw4'@; put 'NTYwLDg1NjEsODU2Miw4NTYzLDg1NjQsODU2NSw4NTY2LDg1NjcsODU2OCw4NTY5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw4NTQ0LDg1NDUsODU0Niw4NTQ3LDg1NDgsODU0OSw4NTUwLDg1NTEsODU1Miw4NTUzLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsOTEzLDkx'@; put 'NCw5MTUsOTE2LDkxNyw5MTgsOTE5LDkyMCw5MjEsOTIyLDkyMyw5MjQsOTI1LDkyNiw5MjcsOTI4LDkyOSw5MzEsOTMyLDkzMyw5MzQsOTM1LDkzNiw5MzcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDk0NSw5NDYsOTQ3LDk0OCw5NDksOTUwLDk1MSw5NTIsOTUz'@; put 'LDk1NCw5NTUsOTU2LDk1Nyw5NTgsOTU5LDk2MCw5NjEsOTYzLDk2NCw5NjUsOTY2LDk2Nyw5NjgsOTY5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUxODgwLDUxODgxLDUxODgyLDUxODgzLDUxODg0LDUxODg1LDUxODg2LDUxODg3LDUxODg4LDUxODg5LDUxODkwLDUxODkxLDUx'@; put 'ODkyLDUxODkzLDUxODk0LDUxODk1LDUxODk2LDUxODk3LDUxODk4LDUxODk5LDUxOTAyLDUxOTAzLDUxOTA1LDUxOTA2LDUxOTA3LDUxOTA5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUxOTEwLDUxOTExLDUxOTEyLDUxOTEzLDUxOTE0LDUxOTE1LDUxOTE4LDUxOTIwLDUxOTIy'@; put 'LDUxOTI0LDUxOTI1LDUxOTI2LDUxOTI3LDUxOTMwLDUxOTMxLDUxOTMyLDUxOTMzLDUxOTM0LDUxOTM1LDUxOTM3LDUxOTM4LDUxOTM5LDUxOTQwLDUxOTQxLDUxOTQyLDUxOTQzLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUxOTQ0LDUxOTQ1LDUxOTQ2LDUxOTQ3LDUxOTQ5LDUx'@; put 'OTUwLDUxOTUxLDUxOTUyLDUxOTUzLDUxOTU0LDUxOTU1LDUxOTU3LDUxOTU4LDUxOTU5LDUxOTYwLDUxOTYxLDUxOTYyLDUxOTYzLDUxOTY0LDUxOTY1LDUxOTY2LDUxOTY3LDUxOTY4LDUxOTY5LDUxOTcwLDUxOTcxLDUxOTcyLDUxOTczLDUxOTc0LDUxOTc1LDUxOTc3LDUxOTc4LDk0NzIs'@; put 'OTQ3NCw5NDg0LDk0ODgsOTQ5Niw5NDkyLDk1MDAsOTUxNiw5NTA4LDk1MjQsOTUzMiw5NDczLDk0NzUsOTQ4Nyw5NDkxLDk0OTksOTQ5NSw5NTA3LDk1MjMsOTUxNSw5NTMxLDk1NDcsOTUwNCw5NTE5LDk1MTIsOTUyNyw5NTM1LDk1MDEsOTUyMCw5NTA5LDk1MjgsOTUzOCw5NDkwLDk0ODks'@; put 'OTQ5OCw5NDk3LDk0OTQsOTQ5Myw5NDg2LDk0ODUsOTUwMiw5NTAzLDk1MDUsOTUwNiw5NTEwLDk1MTEsOTUxMyw5NTE0LDk1MTcsOTUxOCw5NTIxLDk1MjIsOTUyNSw5NTI2LDk1MjksOTUzMCw5NTMzLDk1MzQsOTUzNiw5NTM3LDk1MzksOTU0MCw5NTQxLDk1NDIsOTU0Myw5NTQ0LDk1NDUs'@; put 'OTU0NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE5NzksNTE5ODAsNTE5ODEsNTE5ODIsNTE5ODMs'@; put 'NTE5ODUsNTE5ODYsNTE5ODcsNTE5ODksNTE5OTAsNTE5OTEsNTE5OTMsNTE5OTQsNTE5OTUsNTE5OTYsNTE5OTcsNTE5OTgsNTE5OTksNTIwMDIsNTIwMDMsNTIwMDQsNTIwMDUsNTIwMDYsNTIwMDcsNTIwMDgsNTIwMDksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTIwMTAsNTIw'@; put 'MTEsNTIwMTIsNTIwMTMsNTIwMTQsNTIwMTUsNTIwMTYsNTIwMTcsNTIwMTgsNTIwMTksNTIwMjAsNTIwMjEsNTIwMjIsNTIwMjMsNTIwMjQsNTIwMjUsNTIwMjYsNTIwMjcsNTIwMjgsNTIwMjksNTIwMzAsNTIwMzEsNTIwMzIsNTIwMzQsNTIwMzUsNTIwMzYsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsNTIwMzcsNTIwMzgsNTIwMzksNTIwNDIsNTIwNDMsNTIwNDUsNTIwNDYsNTIwNDcsNTIwNDksNTIwNTAsNTIwNTEsNTIwNTIsNTIwNTMsNTIwNTQsNTIwNTUsNTIwNTgsNTIwNTksNTIwNjAsNTIwNjIsNTIwNjMsNTIwNjQsNTIwNjUsNTIwNjYsNTIwNjcsNTIwNjksNTIw'@; put 'NzAsNTIwNzEsNTIwNzIsNTIwNzMsNTIwNzQsNTIwNzUsNTIwNzYsMTMyMDUsMTMyMDYsMTMyMDcsODQ2NywxMzIwOCwxMzI1MiwxMzIxOSwxMzIyMCwxMzIyMSwxMzIyMiwxMzIwOSwxMzIxMCwxMzIxMSwxMzIxMiwxMzIxMywxMzIxNCwxMzIxNSwxMzIxNiwxMzIxNywxMzIxOCwxMzI1OCwx'@; put 'MzE5NywxMzE5OCwxMzE5OSwxMzI2MywxMzE5MiwxMzE5MywxMzI1NiwxMzIyMywxMzIyNCwxMzIzMiwxMzIzMywxMzIzNCwxMzIzNSwxMzIzNiwxMzIzNywxMzIzOCwxMzIzOSwxMzI0MCwxMzI0MSwxMzE4NCwxMzE4NSwxMzE4NiwxMzE4NywxMzE4OCwxMzI0MiwxMzI0MywxMzI0NCwxMzI0'@; put 'NSwxMzI0NiwxMzI0NywxMzIwMCwxMzIwMSwxMzIwMiwxMzIwMywxMzIwNCw4NDg2LDEzMjQ4LDEzMjQ5LDEzMTk0LDEzMTk1LDEzMTk2LDEzMjcwLDEzMjUzLDEzMjI5LDEzMjMwLDEzMjMxLDEzMjc1LDEzMjI1LDEzMjI2LDEzMjI3LDEzMjI4LDEzMjc3LDEzMjY0LDEzMjY3LDEzMjUxLDEz'@; put 'MjU3LDEzMjc2LDEzMjU0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyMDc3LDUyMDc4LDUyMDc5LDUyMDgwLDUyMDgxLDUyMDgyLDUyMDgzLDUyMDg0LDUyMDg1LDUyMDg2LDUyMDg3LDUyMDkwLDUy'@; put 'MDkxLDUyMDkyLDUyMDkzLDUyMDk0LDUyMDk1LDUyMDk2LDUyMDk3LDUyMDk4LDUyMDk5LDUyMTAwLDUyMTAxLDUyMTAyLDUyMTAzLDUyMTA0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyMTA1LDUyMTA2LDUyMTA3LDUyMTA4LDUyMTA5LDUyMTEwLDUyMTExLDUyMTEyLDUyMTEz'@; put 'LDUyMTE0LDUyMTE1LDUyMTE2LDUyMTE3LDUyMTE4LDUyMTE5LDUyMTIwLDUyMTIxLDUyMTIyLDUyMTIzLDUyMTI1LDUyMTI2LDUyMTI3LDUyMTI4LDUyMTI5LDUyMTMwLDUyMTMxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyMTMyLDUyMTMzLDUyMTM0LDUyMTM1LDUyMTM2LDUy'@; put 'MTM3LDUyMTM4LDUyMTM5LDUyMTQwLDUyMTQxLDUyMTQyLDUyMTQzLDUyMTQ0LDUyMTQ1LDUyMTQ2LDUyMTQ3LDUyMTQ4LDUyMTQ5LDUyMTUwLDUyMTUxLDUyMTUzLDUyMTU0LDUyMTU1LDUyMTU2LDUyMTU3LDUyMTU4LDUyMTU5LDUyMTYwLDUyMTYxLDUyMTYyLDUyMTYzLDUyMTY0LDE5OCwy'@; put 'MDgsMTcwLDI5NCxudWxsLDMwNixudWxsLDMxOSwzMjEsMjE2LDMzOCwxODYsMjIyLDM1OCwzMzAsbnVsbCwxMjg5NiwxMjg5NywxMjg5OCwxMjg5OSwxMjkwMCwxMjkwMSwxMjkwMiwxMjkwMywxMjkwNCwxMjkwNSwxMjkwNiwxMjkwNywxMjkwOCwxMjkwOSwxMjkxMCwxMjkxMSwxMjkxMiwx'@; put 'MjkxMywxMjkxNCwxMjkxNSwxMjkxNiwxMjkxNywxMjkxOCwxMjkxOSwxMjkyMCwxMjkyMSwxMjkyMiwxMjkyMyw5NDI0LDk0MjUsOTQyNiw5NDI3LDk0MjgsOTQyOSw5NDMwLDk0MzEsOTQzMiw5NDMzLDk0MzQsOTQzNSw5NDM2LDk0MzcsOTQzOCw5NDM5LDk0NDAsOTQ0MSw5NDQyLDk0NDMs'@; put 'OTQ0NCw5NDQ1LDk0NDYsOTQ0Nyw5NDQ4LDk0NDksOTMxMiw5MzEzLDkzMTQsOTMxNSw5MzE2LDkzMTcsOTMxOCw5MzE5LDkzMjAsOTMyMSw5MzIyLDkzMjMsOTMyNCw5MzI1LDkzMjYsMTg5LDg1MzEsODUzMiwxODgsMTkwLDg1MzksODU0MCw4NTQxLDg1NDIsNTIxNjUsNTIxNjYsNTIxNjcs'@; put 'NTIxNjgsNTIxNjksNTIxNzAsNTIxNzEsNTIxNzIsNTIxNzMsNTIxNzQsNTIxNzUsNTIxNzYsNTIxNzcsNTIxNzgsNTIxNzksNTIxODEsNTIxODIsNTIxODMsNTIxODQsNTIxODUsNTIxODYsNTIxODcsNTIxODgsNTIxODksNTIxOTAsNTIxOTEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsNTIxOTIsNTIxOTMsNTIxOTQsNTIxOTUsNTIxOTcsNTIxOTgsNTIyMDAsNTIyMDIsNTIyMDMsNTIyMDQsNTIyMDUsNTIyMDYsNTIyMDcsNTIyMDgsNTIyMDksNTIyMTAsNTIyMTEsNTIyMTIsNTIyMTMsNTIyMTQsNTIyMTUsNTIyMTYsNTIyMTcsNTIyMTgsNTIyMTksNTIyMjAsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTIyMjEsNTIyMjIsNTIyMjMsNTIyMjQsNTIyMjUsNTIyMjYsNTIyMjcsNTIyMjgsNTIyMjksNTIyMzAsNTIyMzEsNTIyMzIsNTIyMzMsNTIyMzQsNTIyMzUsNTIyMzgsNTIyMzksNTIyNDEsNTIyNDIsNTIyNDMsNTIyNDUsNTIyNDYsNTIyNDcsNTIy'@; put 'NDgsNTIyNDksNTIyNTAsNTIyNTEsNTIyNTQsNTIyNTUsNTIyNTYsNTIyNTksNTIyNjAsMjMwLDI3MywyNDAsMjk1LDMwNSwzMDcsMzEyLDMyMCwzMjIsMjQ4LDMzOSwyMjMsMjU0LDM1OSwzMzEsMzI5LDEyODAwLDEyODAxLDEyODAyLDEyODAzLDEyODA0LDEyODA1LDEyODA2LDEyODA3LDEy'@; put 'ODA4LDEyODA5LDEyODEwLDEyODExLDEyODEyLDEyODEzLDEyODE0LDEyODE1LDEyODE2LDEyODE3LDEyODE4LDEyODE5LDEyODIwLDEyODIxLDEyODIyLDEyODIzLDEyODI0LDEyODI1LDEyODI2LDEyODI3LDkzNzIsOTM3Myw5Mzc0LDkzNzUsOTM3Niw5Mzc3LDkzNzgsOTM3OSw5MzgwLDkz'@; put 'ODEsOTM4Miw5MzgzLDkzODQsOTM4NSw5Mzg2LDkzODcsOTM4OCw5Mzg5LDkzOTAsOTM5MSw5MzkyLDkzOTMsOTM5NCw5Mzk1LDkzOTYsOTM5Nyw5MzMyLDkzMzMsOTMzNCw5MzM1LDkzMzYsOTMzNyw5MzM4LDkzMzksOTM0MCw5MzQxLDkzNDIsOTM0Myw5MzQ0LDkzNDUsOTM0NiwxODUsMTc4'@; put 'LDE3OSw4MzA4LDgzMTksODMyMSw4MzIyLDgzMjMsODMyNCw1MjI2MSw1MjI2Miw1MjI2Niw1MjI2Nyw1MjI2OSw1MjI3MSw1MjI3Myw1MjI3NCw1MjI3NSw1MjI3Niw1MjI3Nyw1MjI3OCw1MjI3OSw1MjI4Miw1MjI4Nyw1MjI4OCw1MjI4OSw1MjI5MCw1MjI5MSw1MjI5NCw1MjI5NSw1MjI5'@; put 'Nyw1MjI5OCw1MjI5OSw1MjMwMSw1MjMwMixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjMwMyw1MjMwNCw1MjMwNSw1MjMwNiw1MjMwNyw1MjMxMCw1MjMxNCw1MjMxNSw1MjMxNiw1MjMxNyw1MjMxOCw1MjMxOSw1MjMyMSw1MjMyMiw1MjMyMyw1MjMyNSw1MjMyNyw1MjMyOSw1'@; put 'MjMzMCw1MjMzMSw1MjMzMiw1MjMzMyw1MjMzNCw1MjMzNSw1MjMzNyw1MjMzOCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjMzOSw1MjM0MCw1MjM0Miw1MjM0Myw1MjM0NCw1MjM0NSw1MjM0Niw1MjM0Nyw1MjM0OCw1MjM0OSw1MjM1MCw1MjM1MSw1MjM1Miw1MjM1Myw1MjM1'@; put 'NCw1MjM1NSw1MjM1Niw1MjM1Nyw1MjM1OCw1MjM1OSw1MjM2MCw1MjM2MSw1MjM2Miw1MjM2Myw1MjM2NCw1MjM2NSw1MjM2Niw1MjM2Nyw1MjM2OCw1MjM2OSw1MjM3MCw1MjM3MSwxMjM1MywxMjM1NCwxMjM1NSwxMjM1NiwxMjM1NywxMjM1OCwxMjM1OSwxMjM2MCwxMjM2MSwxMjM2Miwx'@; put 'MjM2MywxMjM2NCwxMjM2NSwxMjM2NiwxMjM2NywxMjM2OCwxMjM2OSwxMjM3MCwxMjM3MSwxMjM3MiwxMjM3MywxMjM3NCwxMjM3NSwxMjM3NiwxMjM3NywxMjM3OCwxMjM3OSwxMjM4MCwxMjM4MSwxMjM4MiwxMjM4MywxMjM4NCwxMjM4NSwxMjM4NiwxMjM4NywxMjM4OCwxMjM4OSwxMjM5'@; put 'MCwxMjM5MSwxMjM5MiwxMjM5MywxMjM5NCwxMjM5NSwxMjM5NiwxMjM5NywxMjM5OCwxMjM5OSwxMjQwMCwxMjQwMSwxMjQwMiwxMjQwMywxMjQwNCwxMjQwNSwxMjQwNiwxMjQwNywxMjQwOCwxMjQwOSwxMjQxMCwxMjQxMSwxMjQxMiwxMjQxMywxMjQxNCwxMjQxNSwxMjQxNiwxMjQxNywx'@; put 'MjQxOCwxMjQxOSwxMjQyMCwxMjQyMSwxMjQyMiwxMjQyMywxMjQyNCwxMjQyNSwxMjQyNiwxMjQyNywxMjQyOCwxMjQyOSwxMjQzMCwxMjQzMSwxMjQzMiwxMjQzMywxMjQzNCwxMjQzNSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTIz'@; put 'NzIsNTIzNzMsNTIzNzQsNTIzNzUsNTIzNzgsNTIzNzksNTIzODEsNTIzODIsNTIzODMsNTIzODUsNTIzODYsNTIzODcsNTIzODgsNTIzODksNTIzOTAsNTIzOTEsNTIzOTQsNTIzOTgsNTIzOTksNTI0MDAsNTI0MDEsNTI0MDIsNTI0MDMsNTI0MDYsNTI0MDcsNTI0MDksbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsNTI0MTAsNTI0MTEsNTI0MTMsNTI0MTQsNTI0MTUsNTI0MTYsNTI0MTcsNTI0MTgsNTI0MTksNTI0MjIsNTI0MjQsNTI0MjYsNTI0MjcsNTI0MjgsNTI0MjksNTI0MzAsNTI0MzEsNTI0MzMsNTI0MzQsNTI0MzUsNTI0MzcsNTI0MzgsNTI0MzksNTI0NDAsNTI0'@; put 'NDEsNTI0NDIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTI0NDMsNTI0NDQsNTI0NDUsNTI0NDYsNTI0NDcsNTI0NDgsNTI0NDksNTI0NTAsNTI0NTEsNTI0NTMsNTI0NTQsNTI0NTUsNTI0NTYsNTI0NTcsNTI0NTgsNTI0NTksNTI0NjEsNTI0NjIsNTI0NjMsNTI0NjUsNTI0NjYs'@; put 'NTI0NjcsNTI0NjgsNTI0NjksNTI0NzAsNTI0NzEsNTI0NzIsNTI0NzMsNTI0NzQsNTI0NzUsNTI0NzYsNTI0NzcsMTI0NDksMTI0NTAsMTI0NTEsMTI0NTIsMTI0NTMsMTI0NTQsMTI0NTUsMTI0NTYsMTI0NTcsMTI0NTgsMTI0NTksMTI0NjAsMTI0NjEsMTI0NjIsMTI0NjMsMTI0NjQsMTI0'@; put 'NjUsMTI0NjYsMTI0NjcsMTI0NjgsMTI0NjksMTI0NzAsMTI0NzEsMTI0NzIsMTI0NzMsMTI0NzQsMTI0NzUsMTI0NzYsMTI0NzcsMTI0NzgsMTI0NzksMTI0ODAsMTI0ODEsMTI0ODIsMTI0ODMsMTI0ODQsMTI0ODUsMTI0ODYsMTI0ODcsMTI0ODgsMTI0ODksMTI0OTAsMTI0OTEsMTI0OTIs'@; put 'MTI0OTMsMTI0OTQsMTI0OTUsMTI0OTYsMTI0OTcsMTI0OTgsMTI0OTksMTI1MDAsMTI1MDEsMTI1MDIsMTI1MDMsMTI1MDQsMTI1MDUsMTI1MDYsMTI1MDcsMTI1MDgsMTI1MDksMTI1MTAsMTI1MTEsMTI1MTIsMTI1MTMsMTI1MTQsMTI1MTUsMTI1MTYsMTI1MTcsMTI1MTgsMTI1MTksMTI1'@; put 'MjAsMTI1MjEsMTI1MjIsMTI1MjMsMTI1MjQsMTI1MjUsMTI1MjYsMTI1MjcsMTI1MjgsMTI1MjksMTI1MzAsMTI1MzEsMTI1MzIsMTI1MzMsMTI1MzQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyNDc4LDUyNDc5LDUyNDgwLDUyNDgyLDUyNDgzLDUyNDg0LDUy'@; put 'NDg1LDUyNDg2LDUyNDg3LDUyNDkwLDUyNDkxLDUyNDkzLDUyNDk0LDUyNDk1LDUyNDk3LDUyNDk4LDUyNDk5LDUyNTAwLDUyNTAxLDUyNTAyLDUyNTAzLDUyNTA2LDUyNTA4LDUyNTEwLDUyNTExLDUyNTEyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyNTEzLDUyNTE0LDUyNTE1'@; put 'LDUyNTE3LDUyNTE4LDUyNTE5LDUyNTIxLDUyNTIyLDUyNTIzLDUyNTI1LDUyNTI2LDUyNTI3LDUyNTI4LDUyNTI5LDUyNTMwLDUyNTMxLDUyNTMyLDUyNTMzLDUyNTM0LDUyNTM1LDUyNTM2LDUyNTM4LDUyNTM5LDUyNTQwLDUyNTQxLDUyNTQyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLDUyNTQzLDUyNTQ0LDUyNTQ1LDUyNTQ2LDUyNTQ3LDUyNTQ4LDUyNTQ5LDUyNTUwLDUyNTUxLDUyNTUyLDUyNTUzLDUyNTU0LDUyNTU1LDUyNTU2LDUyNTU3LDUyNTU4LDUyNTU5LDUyNTYwLDUyNTYxLDUyNTYyLDUyNTYzLDUyNTY0LDUyNTY1LDUyNTY2LDUyNTY3LDUyNTY4LDUyNTY5'@; put 'LDUyNTcwLDUyNTcxLDUyNTczLDUyNTc0LDUyNTc1LDEwNDAsMTA0MSwxMDQyLDEwNDMsMTA0NCwxMDQ1LDEwMjUsMTA0NiwxMDQ3LDEwNDgsMTA0OSwxMDUwLDEwNTEsMTA1MiwxMDUzLDEwNTQsMTA1NSwxMDU2LDEwNTcsMTA1OCwxMDU5LDEwNjAsMTA2MSwxMDYyLDEwNjMsMTA2NCwxMDY1'@; put 'LDEwNjYsMTA2NywxMDY4LDEwNjksMTA3MCwxMDcxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDEwNzIsMTA3MywxMDc0LDEwNzUsMTA3NiwxMDc3LDExMDUsMTA3OCwxMDc5LDEwODAsMTA4MSwxMDgy'@; put 'LDEwODMsMTA4NCwxMDg1LDEwODYsMTA4NywxMDg4LDEwODksMTA5MCwxMDkxLDEwOTIsMTA5MywxMDk0LDEwOTUsMTA5NiwxMDk3LDEwOTgsMTA5OSwxMTAwLDExMDEsMTEwMiwxMTAzLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsNTI1NzcsNTI1NzgsNTI1NzksNTI1ODEsNTI1ODIsNTI1ODMsNTI1ODQsNTI1ODUsNTI1ODYsNTI1ODcsNTI1OTAsNTI1OTIsNTI1OTQsNTI1OTUsNTI1OTYsNTI1OTcsNTI1OTgsNTI1OTksNTI2MDEsNTI2MDIsNTI2MDMsNTI2MDQsNTI2MDUsNTI2MDYsNTI2MDcsNTI2MDgsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTI2MDksNTI2MTAsNTI2MTEsNTI2MTIsNTI2MTMsNTI2MTQsNTI2MTUsNTI2MTcsNTI2MTgsNTI2MTksNTI2MjAsNTI2MjEsNTI2MjIsNTI2MjMsNTI2MjQsNTI2MjUsNTI2MjYsNTI2MjcsNTI2MzAsNTI2MzEsNTI2MzMsNTI2MzQsNTI2MzUs'@; put 'NTI2MzcsNTI2MzgsNTI2MzksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTI2NDAsNTI2NDEsNTI2NDIsNTI2NDMsNTI2NDYsNTI2NDgsNTI2NTAsNTI2NTEsNTI2NTIsNTI2NTMsNTI2NTQsNTI2NTUsNTI2NTcsNTI2NTgsNTI2NTksNTI2NjAsNTI2NjEsNTI2NjIsNTI2NjMsNTI2'@; put 'NjQsNTI2NjUsNTI2NjYsNTI2NjcsNTI2NjgsNTI2NjksNTI2NzAsNTI2NzEsNTI2NzIsNTI2NzMsNTI2NzQsNTI2NzUsNTI2NzcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjY3OCw1MjY3OSw1MjY4MCw1MjY4MSw1MjY4Miw1MjY4Myw1MjY4NSw1MjY4Niw1MjY4Nyw1MjY4OSw1MjY5MCw1MjY5MSw1MjY5Miw1MjY5Myw1MjY5NCw1MjY5NSw1MjY5Niw1MjY5Nyw1MjY5OCw1'@; put 'MjY5OSw1MjcwMCw1MjcwMSw1MjcwMiw1MjcwMyw1MjcwNCw1MjcwNSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjcwNiw1MjcwNyw1MjcwOCw1MjcwOSw1MjcxMCw1MjcxMSw1MjcxMyw1MjcxNCw1MjcxNSw1MjcxNyw1MjcxOCw1MjcxOSw1MjcyMSw1MjcyMiw1MjcyMyw1Mjcy'@; put 'NCw1MjcyNSw1MjcyNiw1MjcyNyw1MjczMCw1MjczMiw1MjczNCw1MjczNSw1MjczNiw1MjczNyw1MjczOCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjczOSw1Mjc0MSw1Mjc0Miw1Mjc0Myw1Mjc0NSw1Mjc0Niw1Mjc0Nyw1Mjc0OSw1Mjc1MCw1Mjc1MSw1Mjc1Miw1Mjc1Myw1'@; put 'Mjc1NCw1Mjc1NSw1Mjc1Nyw1Mjc1OCw1Mjc1OSw1Mjc2MCw1Mjc2Miw1Mjc2Myw1Mjc2NCw1Mjc2NSw1Mjc2Niw1Mjc2Nyw1Mjc3MCw1Mjc3MSw1Mjc3Myw1Mjc3NCw1Mjc3NSw1Mjc3Nyw1Mjc3OCw1Mjc3OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyNzgwLDUyNzgxLDUyNzgyLDUyNzgzLDUyNzg2LDUyNzg4LDUyNzkwLDUyNzkxLDUyNzkyLDUyNzkzLDUyNzk0LDUyNzk1'@; put 'LDUyNzk2LDUyNzk3LDUyNzk4LDUyNzk5LDUyODAwLDUyODAxLDUyODAyLDUyODAzLDUyODA0LDUyODA1LDUyODA2LDUyODA3LDUyODA4LDUyODA5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyODEwLDUyODExLDUyODEyLDUyODEzLDUyODE0LDUyODE1LDUyODE2LDUyODE3LDUy'@; put 'ODE4LDUyODE5LDUyODIwLDUyODIxLDUyODIyLDUyODIzLDUyODI2LDUyODI3LDUyODI5LDUyODMwLDUyODM0LDUyODM1LDUyODM2LDUyODM3LDUyODM4LDUyODM5LDUyODQyLDUyODQ0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyODQ2LDUyODQ3LDUyODQ4LDUyODQ5LDUyODUw'@; put 'LDUyODUxLDUyODU0LDUyODU1LDUyODU3LDUyODU4LDUyODU5LDUyODYxLDUyODYyLDUyODYzLDUyODY0LDUyODY1LDUyODY2LDUyODY3LDUyODcwLDUyODcyLDUyODc0LDUyODc1LDUyODc2LDUyODc3LDUyODc4LDUyODc5LDUyODgyLDUyODgzLDUyODg1LDUyODg2LDUyODg3LDUyODg5LG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTI4OTAsNTI4OTEsNTI4OTIsNTI4OTMsNTI4'@; put 'OTQsNTI4OTUsNTI4OTgsNTI5MDIsNTI5MDMsNTI5MDQsNTI5MDUsNTI5MDYsNTI5MDcsNTI5MTAsNTI5MTEsNTI5MTIsNTI5MTMsNTI5MTQsNTI5MTUsNTI5MTYsNTI5MTcsNTI5MTgsNTI5MTksNTI5MjAsNTI5MjEsNTI5MjIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTI5MjMs'@; put 'NTI5MjQsNTI5MjUsNTI5MjYsNTI5MjcsNTI5MjgsNTI5MzAsNTI5MzEsNTI5MzIsNTI5MzMsNTI5MzQsNTI5MzUsNTI5MzYsNTI5MzcsNTI5MzgsNTI5MzksNTI5NDAsNTI5NDEsNTI5NDIsNTI5NDMsNTI5NDQsNTI5NDUsNTI5NDYsNTI5NDcsNTI5NDgsNTI5NDksbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsNTI5NTAsNTI5NTEsNTI5NTIsNTI5NTMsNTI5NTQsNTI5NTUsNTI5NTYsNTI5NTcsNTI5NTgsNTI5NTksNTI5NjAsNTI5NjEsNTI5NjIsNTI5NjMsNTI5NjYsNTI5NjcsNTI5NjksNTI5NzAsNTI5NzMsNTI5NzQsNTI5NzUsNTI5NzYsNTI5NzcsNTI5NzgsNTI5Nzks'@; put 'NTI5ODIsNTI5ODYsNTI5ODcsNTI5ODgsNTI5ODksNTI5OTAsNTI5OTEsNDQwMzIsNDQwMzMsNDQwMzYsNDQwMzksNDQwNDAsNDQwNDEsNDQwNDIsNDQwNDgsNDQwNDksNDQwNTAsNDQwNTEsNDQwNTIsNDQwNTMsNDQwNTQsNDQwNTUsNDQwNTcsNDQwNTgsNDQwNTksNDQwNjAsNDQwNjEsNDQw'@; put 'NjQsNDQwNjgsNDQwNzYsNDQwNzcsNDQwNzksNDQwODAsNDQwODEsNDQwODgsNDQwODksNDQwOTIsNDQwOTYsNDQxMDcsNDQxMDksNDQxMTYsNDQxMjAsNDQxMjQsNDQxNDQsNDQxNDUsNDQxNDgsNDQxNTEsNDQxNTIsNDQxNTQsNDQxNjAsNDQxNjEsNDQxNjMsNDQxNjQsNDQxNjUsNDQxNjYs'@; put 'NDQxNjksNDQxNzAsNDQxNzEsNDQxNzIsNDQxNzYsNDQxODAsNDQxODgsNDQxODksNDQxOTEsNDQxOTIsNDQxOTMsNDQyMDAsNDQyMDEsNDQyMDIsNDQyMDQsNDQyMDcsNDQyMDgsNDQyMTYsNDQyMTcsNDQyMTksNDQyMjAsNDQyMjEsNDQyMjUsNDQyMjgsNDQyMzIsNDQyMzYsNDQyNDUsNDQy'@; put 'NDcsNDQyNTYsNDQyNTcsNDQyNjAsNDQyNjMsNDQyNjQsNDQyNjYsNDQyNjgsNDQyNzEsNDQyNzIsNDQyNzMsNDQyNzUsNDQyNzcsNDQyNzgsNDQyODQsNDQyODUsNDQyODgsNDQyOTIsNDQyOTQsNTI5OTQsNTI5OTUsNTI5OTcsNTI5OTgsNTI5OTksNTMwMDEsNTMwMDIsNTMwMDMsNTMwMDQs'@; put 'NTMwMDUsNTMwMDYsNTMwMDcsNTMwMTAsNTMwMTIsNTMwMTQsNTMwMTUsNTMwMTYsNTMwMTcsNTMwMTgsNTMwMTksNTMwMjEsNTMwMjIsNTMwMjMsNTMwMjUsNTMwMjYsNTMwMjcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTMwMjksNTMwMzAsNTMwMzEsNTMwMzIsNTMwMzMsNTMw'@; put 'MzQsNTMwMzUsNTMwMzgsNTMwNDIsNTMwNDMsNTMwNDQsNTMwNDUsNTMwNDYsNTMwNDcsNTMwNDksNTMwNTAsNTMwNTEsNTMwNTIsNTMwNTMsNTMwNTQsNTMwNTUsNTMwNTYsNTMwNTcsNTMwNTgsNTMwNTksNTMwNjAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTMwNjEsNTMwNjIs'@; put 'NTMwNjMsNTMwNjQsNTMwNjUsNTMwNjYsNTMwNjcsNTMwNjgsNTMwNjksNTMwNzAsNTMwNzEsNTMwNzIsNTMwNzMsNTMwNzQsNTMwNzUsNTMwNzgsNTMwNzksNTMwODEsNTMwODIsNTMwODMsNTMwODUsNTMwODYsNTMwODcsNTMwODgsNTMwODksNTMwOTAsNTMwOTEsNTMwOTQsNTMwOTYsNTMw'@; put 'OTgsNTMwOTksNTMxMDAsNDQzMDAsNDQzMDEsNDQzMDMsNDQzMDUsNDQzMTIsNDQzMTYsNDQzMjAsNDQzMjksNDQzMzIsNDQzMzMsNDQzNDAsNDQzNDEsNDQzNDQsNDQzNDgsNDQzNTYsNDQzNTcsNDQzNTksNDQzNjEsNDQzNjgsNDQzNzIsNDQzNzYsNDQzODUsNDQzODcsNDQzOTYsNDQzOTcs'@; put 'NDQ0MDAsNDQ0MDMsNDQ0MDQsNDQ0MDUsNDQ0MDYsNDQ0MTEsNDQ0MTIsNDQ0MTMsNDQ0MTUsNDQ0MTcsNDQ0MTgsNDQ0MjQsNDQ0MjUsNDQ0MjgsNDQ0MzIsNDQ0NDQsNDQ0NDUsNDQ0NTIsNDQ0NzEsNDQ0ODAsNDQ0ODEsNDQ0ODQsNDQ0ODgsNDQ0OTYsNDQ0OTcsNDQ0OTksNDQ1MDgsNDQ1'@; put 'MTIsNDQ1MTYsNDQ1MzYsNDQ1MzcsNDQ1NDAsNDQ1NDMsNDQ1NDQsNDQ1NDUsNDQ1NTIsNDQ1NTMsNDQ1NTUsNDQ1NTcsNDQ1NjQsNDQ1OTIsNDQ1OTMsNDQ1OTYsNDQ1OTksNDQ2MDAsNDQ2MDIsNDQ2MDgsNDQ2MDksNDQ2MTEsNDQ2MTMsNDQ2MTQsNDQ2MTgsNDQ2MjAsNDQ2MjEsNDQ2MjIs'@; put 'NDQ2MjQsNDQ2MjgsNDQ2MzAsNDQ2MzYsNDQ2MzcsNDQ2MzksNDQ2NDAsNDQ2NDEsNDQ2NDUsNDQ2NDgsNDQ2NDksNDQ2NTIsNDQ2NTYsNDQ2NjQsNTMxMDEsNTMxMDIsNTMxMDMsNTMxMDYsNTMxMDcsNTMxMDksNTMxMTAsNTMxMTEsNTMxMTMsNTMxMTQsNTMxMTUsNTMxMTYsNTMxMTcsNTMx'@; put 'MTgsNTMxMTksNTMxMjEsNTMxMjIsNTMxMjMsNTMxMjQsNTMxMjYsNTMxMjcsNTMxMjgsNTMxMjksNTMxMzAsNTMxMzEsNTMxMzMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTMxMzQsNTMxMzUsNTMxMzYsNTMxMzcsNTMxMzgsNTMxMzksNTMxNDAsNTMxNDEsNTMxNDIsNTMxNDMs'@; put 'NTMxNDQsNTMxNDUsNTMxNDYsNTMxNDcsNTMxNDgsNTMxNDksNTMxNTAsNTMxNTEsNTMxNTIsNTMxNTQsNTMxNTUsNTMxNTYsNTMxNTcsNTMxNTgsNTMxNTksNTMxNjEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTMxNjIsNTMxNjMsNTMxNjQsNTMxNjUsNTMxNjYsNTMxNjcsNTMx'@; put 'NjksNTMxNzAsNTMxNzEsNTMxNzIsNTMxNzMsNTMxNzQsNTMxNzUsNTMxNzYsNTMxNzcsNTMxNzgsNTMxNzksNTMxODAsNTMxODEsNTMxODIsNTMxODMsNTMxODQsNTMxODUsNTMxODYsNTMxODcsNTMxODksNTMxOTAsNTMxOTEsNTMxOTIsNTMxOTMsNTMxOTQsNTMxOTUsNDQ2NjUsNDQ2Njcs'@; put 'NDQ2NjgsNDQ2NjksNDQ2NzYsNDQ2NzcsNDQ2ODQsNDQ3MzIsNDQ3MzMsNDQ3MzQsNDQ3MzYsNDQ3NDAsNDQ3NDgsNDQ3NDksNDQ3NTEsNDQ3NTIsNDQ3NTMsNDQ3NjAsNDQ3NjEsNDQ3NjQsNDQ3NzYsNDQ3NzksNDQ3ODEsNDQ3ODgsNDQ3OTIsNDQ3OTYsNDQ4MDcsNDQ4MDgsNDQ4MTMsNDQ4'@; put 'MTYsNDQ4NDQsNDQ4NDUsNDQ4NDgsNDQ4NTAsNDQ4NTIsNDQ4NjAsNDQ4NjEsNDQ4NjMsNDQ4NjUsNDQ4NjYsNDQ4NjcsNDQ4NzIsNDQ4NzMsNDQ4ODAsNDQ4OTIsNDQ4OTMsNDQ5MDAsNDQ5MDEsNDQ5MjEsNDQ5MjgsNDQ5MzIsNDQ5MzYsNDQ5NDQsNDQ5NDUsNDQ5NDksNDQ5NTYsNDQ5ODQs'@; put 'NDQ5ODUsNDQ5ODgsNDQ5OTIsNDQ5OTksNDVlMyw0NTAwMSw0NTAwMyw0NTAwNSw0NTAwNiw0NTAxMiw0NTAyMCw0NTAzMiw0NTAzMyw0NTA0MCw0NTA0MSw0NTA0NCw0NTA0OCw0NTA1Niw0NTA1Nyw0NTA2MCw0NTA2OCw0NTA3Miw0NTA3Niw0NTA4NCw0NTA4NSw0NTA5Niw0NTEyNCw0NTEy'@; put 'NSw0NTEyOCw0NTEzMCw0NTEzMiw0NTEzNCw0NTEzOSw0NTE0MCw0NTE0MSw0NTE0Myw0NTE0NSw1MzE5Niw1MzE5Nyw1MzE5OCw1MzE5OSw1MzIwMCw1MzIwMSw1MzIwMiw1MzIwMyw1MzIwNCw1MzIwNSw1MzIwNiw1MzIwNyw1MzIwOCw1MzIwOSw1MzIxMCw1MzIxMSw1MzIxMiw1MzIxMyw1'@; put 'MzIxNCw1MzIxNSw1MzIxOCw1MzIxOSw1MzIyMSw1MzIyMiw1MzIyMyw1MzIyNSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MzIyNiw1MzIyNyw1MzIyOCw1MzIyOSw1MzIzMCw1MzIzMSw1MzIzNCw1MzIzNiw1MzIzOCw1MzIzOSw1MzI0MCw1MzI0MSw1MzI0Miw1MzI0Myw1MzI0'@; put 'NSw1MzI0Niw1MzI0Nyw1MzI0OSw1MzI1MCw1MzI1MSw1MzI1Myw1MzI1NCw1MzI1NSw1MzI1Niw1MzI1Nyw1MzI1OCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MzI1OSw1MzI2MCw1MzI2MSw1MzI2Miw1MzI2Myw1MzI2NCw1MzI2Niw1MzI2Nyw1MzI2OCw1MzI2OSw1MzI3MCw1'@; put 'MzI3MSw1MzI3Myw1MzI3NCw1MzI3NSw1MzI3Niw1MzI3Nyw1MzI3OCw1MzI3OSw1MzI4MCw1MzI4MSw1MzI4Miw1MzI4Myw1MzI4NCw1MzI4NSw1MzI4Niw1MzI4Nyw1MzI4OCw1MzI4OSw1MzI5MCw1MzI5MSw1MzI5Miw0NTE0OSw0NTE4MCw0NTE4MSw0NTE4NCw0NTE4OCw0NTE5Niw0NTE5'@; put 'Nyw0NTE5OSw0NTIwMSw0NTIwOCw0NTIwOSw0NTIxMCw0NTIxMiw0NTIxNSw0NTIxNiw0NTIxNyw0NTIxOCw0NTIyNCw0NTIyNSw0NTIyNyw0NTIyOCw0NTIyOSw0NTIzMCw0NTIzMSw0NTIzMyw0NTIzNSw0NTIzNiw0NTIzNyw0NTI0MCw0NTI0NCw0NTI1Miw0NTI1Myw0NTI1NSw0NTI1Niw0'@; put 'NTI1Nyw0NTI2NCw0NTI2NSw0NTI2OCw0NTI3Miw0NTI4MCw0NTI4NSw0NTMyMCw0NTMyMSw0NTMyMyw0NTMyNCw0NTMyOCw0NTMzMCw0NTMzMSw0NTMzNiw0NTMzNyw0NTMzOSw0NTM0MCw0NTM0MSw0NTM0Nyw0NTM0OCw0NTM0OSw0NTM1Miw0NTM1Niw0NTM2NCw0NTM2NSw0NTM2Nyw0NTM2'@; put 'OCw0NTM2OSw0NTM3Niw0NTM3Nyw0NTM4MCw0NTM4NCw0NTM5Miw0NTM5Myw0NTM5Niw0NTM5Nyw0NTQwMCw0NTQwNCw0NTQwOCw0NTQzMiw0NTQzMyw0NTQzNiw0NTQ0MCw0NTQ0Miw0NTQ0OCw0NTQ0OSw0NTQ1MSw0NTQ1Myw0NTQ1OCw0NTQ1OSw0NTQ2MCw0NTQ2NCw0NTQ2OCw0NTQ4MCw0'@; put 'NTUxNiw0NTUyMCw0NTUyNCw0NTUzMiw0NTUzMyw1MzI5NCw1MzI5NSw1MzI5Niw1MzI5Nyw1MzI5OCw1MzI5OSw1MzMwMiw1MzMwMyw1MzMwNSw1MzMwNiw1MzMwNyw1MzMwOSw1MzMxMCw1MzMxMSw1MzMxMiw1MzMxMyw1MzMxNCw1MzMxNSw1MzMxOCw1MzMyMCw1MzMyMiw1MzMyMyw1MzMy'@; put 'NCw1MzMyNSw1MzMyNiw1MzMyNyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MzMyOSw1MzMzMCw1MzMzMSw1MzMzMyw1MzMzNCw1MzMzNSw1MzMzNyw1MzMzOCw1MzMzOSw1MzM0MCw1MzM0MSw1MzM0Miw1MzM0Myw1MzM0NSw1MzM0Niw1MzM0Nyw1MzM0OCw1MzM0OSw1MzM1MCw1'@; put 'MzM1MSw1MzM1Miw1MzM1Myw1MzM1NCw1MzM1NSw1MzM1OCw1MzM1OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MzM2MSw1MzM2Miw1MzM2Myw1MzM2NSw1MzM2Niw1MzM2Nyw1MzM2OCw1MzM2OSw1MzM3MCw1MzM3MSw1MzM3NCw1MzM3NSw1MzM3Niw1MzM3OCw1MzM3OSw1MzM4'@; put 'MCw1MzM4MSw1MzM4Miw1MzM4Myw1MzM4NCw1MzM4NSw1MzM4Niw1MzM4Nyw1MzM4OCw1MzM4OSw1MzM5MCw1MzM5MSw1MzM5Miw1MzM5Myw1MzM5NCw1MzM5NSw1MzM5Niw0NTUzNSw0NTU0NCw0NTU0NSw0NTU0OCw0NTU1Miw0NTU2MSw0NTU2Myw0NTU2NSw0NTU3Miw0NTU3Myw0NTU3Niw0'@; put 'NTU3OSw0NTU4MCw0NTU4OCw0NTU4OSw0NTU5MSw0NTU5Myw0NTYwMCw0NTYyMCw0NTYyOCw0NTY1Niw0NTY2MCw0NTY2NCw0NTY3Miw0NTY3Myw0NTY4NCw0NTY4NSw0NTY5Miw0NTcwMCw0NTcwMSw0NTcwNSw0NTcxMiw0NTcxMyw0NTcxNiw0NTcyMCw0NTcyMSw0NTcyMiw0NTcyOCw0NTcy'@; put 'OSw0NTczMSw0NTczMyw0NTczNCw0NTczOCw0NTc0MCw0NTc0NCw0NTc0OCw0NTc2OCw0NTc2OSw0NTc3Miw0NTc3Niw0NTc3OCw0NTc4NCw0NTc4NSw0NTc4Nyw0NTc4OSw0NTc5NCw0NTc5Niw0NTc5Nyw0NTc5OCw0NTgwMCw0NTgwMyw0NTgwNCw0NTgwNSw0NTgwNiw0NTgwNyw0NTgxMSw0'@; put 'NTgxMiw0NTgxMyw0NTgxNSw0NTgxNiw0NTgxNyw0NTgxOCw0NTgxOSw0NTgyMyw0NTgyNCw0NTgyNSw0NTgyOCw0NTgzMiw0NTg0MCw0NTg0MSw0NTg0Myw0NTg0NCw0NTg0NSw0NTg1Miw0NTkwOCw0NTkwOSw0NTkxMCw0NTkxMiw0NTkxNSw0NTkxNiw0NTkxOCw0NTkxOSw0NTkyNCw0NTky'@; put 'NSw1MzM5Nyw1MzM5OCw1MzM5OSw1MzQwMCw1MzQwMSw1MzQwMiw1MzQwMyw1MzQwNCw1MzQwNSw1MzQwNiw1MzQwNyw1MzQwOCw1MzQwOSw1MzQxMCw1MzQxMSw1MzQxNCw1MzQxNSw1MzQxNyw1MzQxOCw1MzQxOSw1MzQyMSw1MzQyMiw1MzQyMyw1MzQyNCw1MzQyNSw1MzQyNixudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MzQyNyw1MzQzMCw1MzQzMiw1MzQzNCw1MzQzNSw1MzQzNiw1MzQzNyw1MzQzOCw1MzQzOSw1MzQ0Miw1MzQ0Myw1MzQ0NSw1MzQ0Niw1MzQ0Nyw1MzQ1MCw1MzQ1MSw1MzQ1Miw1MzQ1Myw1MzQ1NCw1MzQ1NSw1MzQ1OCw1MzQ2Miw1MzQ2Myw1MzQ2'@; put 'NCw1MzQ2NSw1MzQ2NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MzQ2Nyw1MzQ3MCw1MzQ3MSw1MzQ3Myw1MzQ3NCw1MzQ3NSw1MzQ3Nyw1MzQ3OCw1MzQ3OSw1MzQ4MCw1MzQ4MSw1MzQ4Miw1MzQ4Myw1MzQ4Niw1MzQ5MCw1MzQ5MSw1MzQ5Miw1MzQ5Myw1MzQ5NCw1MzQ5NSw1'@; put 'MzQ5Nyw1MzQ5OCw1MzQ5OSw1MzUwMCw1MzUwMSw1MzUwMiw1MzUwMyw1MzUwNCw1MzUwNSw1MzUwNiw1MzUwNyw1MzUwOCw0NTkyNyw0NTkyOSw0NTkzMSw0NTkzNCw0NTkzNiw0NTkzNyw0NTk0MCw0NTk0NCw0NTk1Miw0NTk1Myw0NTk1NSw0NTk1Niw0NTk1Nyw0NTk2NCw0NTk2OCw0NTk3'@; put 'Miw0NTk4NCw0NTk4NSw0NTk5Miw0NTk5Niw0NjAyMCw0NjAyMSw0NjAyNCw0NjAyNyw0NjAyOCw0NjAzMCw0NjAzMiw0NjAzNiw0NjAzNyw0NjAzOSw0NjA0MSw0NjA0Myw0NjA0NSw0NjA0OCw0NjA1Miw0NjA1Niw0NjA3Niw0NjA5Niw0NjEwNCw0NjEwOCw0NjExMiw0NjEyMCw0NjEyMSw0'@; put 'NjEyMyw0NjEzMiw0NjE2MCw0NjE2MSw0NjE2NCw0NjE2OCw0NjE3Niw0NjE3Nyw0NjE3OSw0NjE4MSw0NjE4OCw0NjIwOCw0NjIxNiw0NjIzNyw0NjI0NCw0NjI0OCw0NjI1Miw0NjI2MSw0NjI2Myw0NjI2NSw0NjI3Miw0NjI3Niw0NjI4MCw0NjI4OCw0NjI5Myw0NjMwMCw0NjMwMSw0NjMw'@; put 'NCw0NjMwNyw0NjMwOCw0NjMxMCw0NjMxNiw0NjMxNyw0NjMxOSw0NjMyMSw0NjMyOCw0NjM1Niw0NjM1Nyw0NjM2MCw0NjM2Myw0NjM2NCw0NjM3Miw0NjM3Myw0NjM3NSw0NjM3Niw0NjM3Nyw0NjM3OCw0NjM4NCw0NjM4NSw0NjM4OCw0NjM5Miw1MzUwOSw1MzUxMCw1MzUxMSw1MzUxMiw1'@; put 'MzUxMyw1MzUxNCw1MzUxNSw1MzUxNiw1MzUxOCw1MzUxOSw1MzUyMCw1MzUyMSw1MzUyMiw1MzUyMyw1MzUyNCw1MzUyNSw1MzUyNiw1MzUyNyw1MzUyOCw1MzUyOSw1MzUzMCw1MzUzMSw1MzUzMiw1MzUzMyw1MzUzNCw1MzUzNSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MzUz'@; put 'Niw1MzUzNyw1MzUzOCw1MzUzOSw1MzU0MCw1MzU0MSw1MzU0Miw1MzU0Myw1MzU0NCw1MzU0NSw1MzU0Niw1MzU0Nyw1MzU0OCw1MzU0OSw1MzU1MCw1MzU1MSw1MzU1NCw1MzU1NSw1MzU1Nyw1MzU1OCw1MzU1OSw1MzU2MSw1MzU2Myw1MzU2NCw1MzU2NSw1MzU2NixudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCw1MzU2Nyw1MzU3MCw1MzU3NCw1MzU3NSw1MzU3Niw1MzU3Nyw1MzU3OCw1MzU3OSw1MzU4Miw1MzU4Myw1MzU4NSw1MzU4Niw1MzU4Nyw1MzU4OSw1MzU5MCw1MzU5MSw1MzU5Miw1MzU5Myw1MzU5NCw1MzU5NSw1MzU5OCw1MzYwMCw1MzYwMiw1MzYwMyw1MzYw'@; put 'NCw1MzYwNSw1MzYwNiw1MzYwNyw1MzYwOSw1MzYxMCw1MzYxMSw1MzYxMyw0NjQwMCw0NjQwMSw0NjQwMyw0NjQwNCw0NjQwNSw0NjQxMSw0NjQxMiw0NjQxMyw0NjQxNiw0NjQyMCw0NjQyOCw0NjQyOSw0NjQzMSw0NjQzMiw0NjQzMyw0NjQ5Niw0NjQ5Nyw0NjUwMCw0NjUwNCw0NjUwNiw0'@; put 'NjUwNyw0NjUxMiw0NjUxMyw0NjUxNSw0NjUxNiw0NjUxNyw0NjUyMyw0NjUyNCw0NjUyNSw0NjUyOCw0NjUzMiw0NjU0MCw0NjU0MSw0NjU0Myw0NjU0NCw0NjU0NSw0NjU1Miw0NjU3Miw0NjYwOCw0NjYwOSw0NjYxMiw0NjYxNiw0NjYyOSw0NjYzNiw0NjY0NCw0NjY2NCw0NjY5Miw0NjY5'@; put 'Niw0Njc0OCw0Njc0OSw0Njc1Miw0Njc1Niw0Njc2Myw0Njc2NCw0Njc2OSw0NjgwNCw0NjgzMiw0NjgzNiw0Njg0MCw0Njg0OCw0Njg0OSw0Njg1Myw0Njg4OCw0Njg4OSw0Njg5Miw0Njg5NSw0Njg5Niw0NjkwNCw0NjkwNSw0NjkwNyw0NjkxNiw0NjkyMCw0NjkyNCw0NjkzMiw0NjkzMyw0'@; put 'Njk0NCw0Njk0OCw0Njk1Miw0Njk2MCw0Njk2MSw0Njk2Myw0Njk2NSw0Njk3Miw0Njk3Myw0Njk3Niw0Njk4MCw0Njk4OCw0Njk4OSw0Njk5MSw0Njk5Miw0Njk5Myw0Njk5NCw0Njk5OCw0Njk5OSw1MzYxNCw1MzYxNSw1MzYxNiw1MzYxNyw1MzYxOCw1MzYxOSw1MzYyMCw1MzYyMSw1MzYy'@; put 'Miw1MzYyMyw1MzYyNCw1MzYyNSw1MzYyNiw1MzYyNyw1MzYyOSw1MzYzMCw1MzYzMSw1MzYzMiw1MzYzMyw1MzYzNCw1MzYzNSw1MzYzNyw1MzYzOCw1MzYzOSw1MzY0MSw1MzY0MixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MzY0Myw1MzY0NCw1MzY0NSw1MzY0Niw1MzY0Nyw1'@; put 'MzY0OCw1MzY0OSw1MzY1MCw1MzY1MSw1MzY1Miw1MzY1Myw1MzY1NCw1MzY1NSw1MzY1Niw1MzY1Nyw1MzY1OCw1MzY1OSw1MzY2MCw1MzY2MSw1MzY2Miw1MzY2Myw1MzY2Niw1MzY2Nyw1MzY2OSw1MzY3MCw1MzY3MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MzY3Myw1MzY3'@; put 'NCw1MzY3NSw1MzY3Niw1MzY3Nyw1MzY3OCw1MzY3OSw1MzY4Miw1MzY4NCw1MzY4Niw1MzY4Nyw1MzY4OCw1MzY4OSw1MzY5MSw1MzY5Myw1MzY5NCw1MzY5NSw1MzY5Nyw1MzY5OCw1MzY5OSw1MzcwMCw1MzcwMSw1MzcwMiw1MzcwMyw1MzcwNCw1MzcwNSw1MzcwNiw1MzcwNyw1MzcwOCw1'@; put 'MzcwOSw1MzcxMCw1MzcxMSw0N2UzLDQ3MDAxLDQ3MDA0LDQ3MDA4LDQ3MDE2LDQ3MDE3LDQ3MDE5LDQ3MDIwLDQ3MDIxLDQ3MDI4LDQ3MDI5LDQ3MDMyLDQ3MDQ3LDQ3MDQ5LDQ3MDg0LDQ3MDg1LDQ3MDg4LDQ3MDkyLDQ3MTAwLDQ3MTAxLDQ3MTAzLDQ3MTA0LDQ3MTA1LDQ3MTExLDQ3MTEy'@; put 'LDQ3MTEzLDQ3MTE2LDQ3MTIwLDQ3MTI4LDQ3MTI5LDQ3MTMxLDQ3MTMzLDQ3MTQwLDQ3MTQxLDQ3MTQ0LDQ3MTQ4LDQ3MTU2LDQ3MTU3LDQ3MTU5LDQ3MTYwLDQ3MTYxLDQ3MTY4LDQ3MTcyLDQ3MTg1LDQ3MTg3LDQ3MTk2LDQ3MTk3LDQ3MjAwLDQ3MjA0LDQ3MjEyLDQ3MjEzLDQ3MjE1LDQ3'@; put 'MjE3LDQ3MjI0LDQ3MjI4LDQ3MjQ1LDQ3MjcyLDQ3MjgwLDQ3Mjg0LDQ3Mjg4LDQ3Mjk2LDQ3Mjk3LDQ3Mjk5LDQ3MzAxLDQ3MzA4LDQ3MzEyLDQ3MzE2LDQ3MzI1LDQ3MzI3LDQ3MzI5LDQ3MzM2LDQ3MzM3LDQ3MzQwLDQ3MzQ0LDQ3MzUyLDQ3MzUzLDQ3MzU1LDQ3MzU3LDQ3MzY0LDQ3Mzg0'@; put 'LDQ3MzkyLDQ3NDIwLDQ3NDIxLDQ3NDI0LDQ3NDI4LDQ3NDM2LDQ3NDM5LDQ3NDQxLDQ3NDQ4LDQ3NDQ5LDQ3NDUyLDQ3NDU2LDQ3NDY0LDQ3NDY1LDUzNzEyLDUzNzEzLDUzNzE0LDUzNzE1LDUzNzE2LDUzNzE3LDUzNzE4LDUzNzE5LDUzNzIxLDUzNzIyLDUzNzIzLDUzNzI0LDUzNzI1LDUz'@; put 'NzI2LDUzNzI3LDUzNzI4LDUzNzI5LDUzNzMwLDUzNzMxLDUzNzMyLDUzNzMzLDUzNzM0LDUzNzM1LDUzNzM2LDUzNzM3LDUzNzM4LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUzNzM5LDUzNzQwLDUzNzQxLDUzNzQyLDUzNzQzLDUzNzQ0LDUzNzQ1LDUzNzQ2LDUzNzQ3LDUzNzQ5'@; put 'LDUzNzUwLDUzNzUxLDUzNzUzLDUzNzU0LDUzNzU1LDUzNzU2LDUzNzU3LDUzNzU4LDUzNzU5LDUzNzYwLDUzNzYxLDUzNzYyLDUzNzYzLDUzNzY0LDUzNzY1LDUzNzY2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUzNzY4LDUzNzcwLDUzNzcxLDUzNzcyLDUzNzczLDUzNzc0LDUz'@; put 'Nzc1LDUzNzc3LDUzNzc4LDUzNzc5LDUzNzgwLDUzNzgxLDUzNzgyLDUzNzgzLDUzNzg0LDUzNzg1LDUzNzg2LDUzNzg3LDUzNzg4LDUzNzg5LDUzNzkwLDUzNzkxLDUzNzkyLDUzNzkzLDUzNzk0LDUzNzk1LDUzNzk2LDUzNzk3LDUzNzk4LDUzNzk5LDUzODAwLDUzODAxLDQ3NDY3LDQ3NDY5'@; put 'LDQ3NDc2LDQ3NDc3LDQ3NDgwLDQ3NDg0LDQ3NDkyLDQ3NDkzLDQ3NDk1LDQ3NDk3LDQ3NDk4LDQ3NTAxLDQ3NTAyLDQ3NTMyLDQ3NTMzLDQ3NTM2LDQ3NTQwLDQ3NTQ4LDQ3NTQ5LDQ3NTUxLDQ3NTUzLDQ3NTYwLDQ3NTYxLDQ3NTY0LDQ3NTY2LDQ3NTY3LDQ3NTY4LDQ3NTY5LDQ3NTcwLDQ3'@; put 'NTc2LDQ3NTc3LDQ3NTc5LDQ3NTgxLDQ3NTgyLDQ3NTg1LDQ3NTg3LDQ3NTg4LDQ3NTg5LDQ3NTkyLDQ3NTk2LDQ3NjA0LDQ3NjA1LDQ3NjA3LDQ3NjA4LDQ3NjA5LDQ3NjEwLDQ3NjE2LDQ3NjE3LDQ3NjI0LDQ3NjM3LDQ3NjcyLDQ3NjczLDQ3Njc2LDQ3NjgwLDQ3NjgyLDQ3Njg4LDQ3Njg5'@; put 'LDQ3NjkxLDQ3NjkzLDQ3Njk0LDQ3Njk5LDQ3NzAwLDQ3NzAxLDQ3NzA0LDQ3NzA4LDQ3NzE2LDQ3NzE3LDQ3NzE5LDQ3NzIwLDQ3NzIxLDQ3NzI4LDQ3NzI5LDQ3NzMyLDQ3NzM2LDQ3NzQ3LDQ3NzQ4LDQ3NzQ5LDQ3NzUxLDQ3NzU2LDQ3Nzg0LDQ3Nzg1LDQ3Nzg3LDQ3Nzg4LDQ3NzkyLDQ3'@; put 'Nzk0LDQ3ODAwLDQ3ODAxLDQ3ODAzLDQ3ODA1LDQ3ODEyLDQ3ODE2LDQ3ODMyLDQ3ODMzLDQ3ODY4LDUzODAyLDUzODAzLDUzODA2LDUzODA3LDUzODA5LDUzODEwLDUzODExLDUzODEzLDUzODE0LDUzODE1LDUzODE2LDUzODE3LDUzODE4LDUzODE5LDUzODIyLDUzODI0LDUzODI2LDUzODI3'@; put 'LDUzODI4LDUzODI5LDUzODMwLDUzODMxLDUzODMzLDUzODM0LDUzODM1LDUzODM2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUzODM3LDUzODM4LDUzODM5LDUzODQwLDUzODQxLDUzODQyLDUzODQzLDUzODQ0LDUzODQ1LDUzODQ2LDUzODQ3LDUzODQ4LDUzODQ5LDUzODUwLDUz'@; put 'ODUxLDUzODUzLDUzODU0LDUzODU1LDUzODU2LDUzODU3LDUzODU4LDUzODU5LDUzODYxLDUzODYyLDUzODYzLDUzODY0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUzODY1LDUzODY2LDUzODY3LDUzODY4LDUzODY5LDUzODcwLDUzODcxLDUzODcyLDUzODczLDUzODc0LDUzODc1'@; put 'LDUzODc2LDUzODc3LDUzODc4LDUzODc5LDUzODgwLDUzODgxLDUzODgyLDUzODgzLDUzODg0LDUzODg1LDUzODg2LDUzODg3LDUzODkwLDUzODkxLDUzODkzLDUzODk0LDUzODk1LDUzODk3LDUzODk4LDUzODk5LDUzOTAwLDQ3ODcyLDQ3ODc2LDQ3ODg1LDQ3ODg3LDQ3ODg5LDQ3ODk2LDQ3'@; put 'OTAwLDQ3OTA0LDQ3OTEzLDQ3OTE1LDQ3OTI0LDQ3OTI1LDQ3OTI2LDQ3OTI4LDQ3OTMxLDQ3OTMyLDQ3OTMzLDQ3OTM0LDQ3OTQwLDQ3OTQxLDQ3OTQzLDQ3OTQ1LDQ3OTQ5LDQ3OTUxLDQ3OTUyLDQ3OTU2LDQ3OTYwLDQ3OTY5LDQ3OTcxLDQ3OTgwLDQ4MDA4LDQ4MDEyLDQ4MDE2LDQ4MDM2'@; put 'LDQ4MDQwLDQ4MDQ0LDQ4MDUyLDQ4MDU1LDQ4MDY0LDQ4MDY4LDQ4MDcyLDQ4MDgwLDQ4MDgzLDQ4MTIwLDQ4MTIxLDQ4MTI0LDQ4MTI3LDQ4MTI4LDQ4MTMwLDQ4MTM2LDQ4MTM3LDQ4MTM5LDQ4MTQwLDQ4MTQxLDQ4MTQzLDQ4MTQ1LDQ4MTQ4LDQ4MTQ5LDQ4MTUwLDQ4MTUxLDQ4MTUyLDQ4'@; put 'MTU1LDQ4MTU2LDQ4MTU3LDQ4MTU4LDQ4MTU5LDQ4MTY0LDQ4MTY1LDQ4MTY3LDQ4MTY5LDQ4MTczLDQ4MTc2LDQ4MTc3LDQ4MTgwLDQ4MTg0LDQ4MTkyLDQ4MTkzLDQ4MTk1LDQ4MTk2LDQ4MTk3LDQ4MjAxLDQ4MjA0LDQ4MjA1LDQ4MjA4LDQ4MjIxLDQ4MjYwLDQ4MjYxLDQ4MjY0LDQ4MjY3'@; put 'LDQ4MjY4LDQ4MjcwLDQ4Mjc2LDQ4Mjc3LDQ4Mjc5LDUzOTAxLDUzOTAyLDUzOTAzLDUzOTA2LDUzOTA3LDUzOTA4LDUzOTEwLDUzOTExLDUzOTEyLDUzOTEzLDUzOTE0LDUzOTE1LDUzOTE3LDUzOTE4LDUzOTE5LDUzOTIxLDUzOTIyLDUzOTIzLDUzOTI1LDUzOTI2LDUzOTI3LDUzOTI4LDUz'@; put 'OTI5LDUzOTMwLDUzOTMxLDUzOTMzLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUzOTM0LDUzOTM1LDUzOTM2LDUzOTM4LDUzOTM5LDUzOTQwLDUzOTQxLDUzOTQyLDUzOTQzLDUzOTQ2LDUzOTQ3LDUzOTQ5LDUzOTUwLDUzOTUzLDUzOTU1LDUzOTU2LDUzOTU3LDUzOTU4LDUzOTU5'@; put 'LDUzOTYyLDUzOTY0LDUzOTY1LDUzOTY2LDUzOTY3LDUzOTY4LDUzOTY5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUzOTcwLDUzOTcxLDUzOTczLDUzOTc0LDUzOTc1LDUzOTc3LDUzOTc4LDUzOTc5LDUzOTgxLDUzOTgyLDUzOTgzLDUzOTg0LDUzOTg1LDUzOTg2LDUzOTg3LDUz'@; put 'OTkwLDUzOTkxLDUzOTkyLDUzOTkzLDUzOTk0LDUzOTk1LDUzOTk2LDUzOTk3LDUzOTk4LDUzOTk5LDU0MDAyLDU0MDAzLDU0MDA1LDU0MDA2LDU0MDA3LDU0MDA5LDU0MDEwLDQ4MjgxLDQ4MjgyLDQ4Mjg4LDQ4Mjg5LDQ4MjkyLDQ4Mjk1LDQ4Mjk2LDQ4MzA0LDQ4MzA1LDQ4MzA3LDQ4MzA4'@; put 'LDQ4MzA5LDQ4MzE2LDQ4MzE3LDQ4MzIwLDQ4MzI0LDQ4MzMzLDQ4MzM1LDQ4MzM2LDQ4MzM3LDQ4MzQxLDQ4MzQ0LDQ4MzQ4LDQ4MzcyLDQ4MzczLDQ4Mzc0LDQ4Mzc2LDQ4MzgwLDQ4Mzg4LDQ4Mzg5LDQ4MzkxLDQ4MzkzLDQ4NDAwLDQ4NDA0LDQ4NDIwLDQ4NDI4LDQ4NDQ4LDQ4NDU2LDQ4'@; put 'NDU3LDQ4NDYwLDQ4NDY0LDQ4NDcyLDQ4NDczLDQ4NDg0LDQ4NDg4LDQ4NTEyLDQ4NTEzLDQ4NTE2LDQ4NTE5LDQ4NTIwLDQ4NTIxLDQ4NTIyLDQ4NTI4LDQ4NTI5LDQ4NTMxLDQ4NTMzLDQ4NTM3LDQ4NTM4LDQ4NTQwLDQ4NTQ4LDQ4NTYwLDQ4NTY4LDQ4NTk2LDQ4NTk3LDQ4NjAwLDQ4NjA0'@; put 'LDQ4NjE3LDQ4NjI0LDQ4NjI4LDQ4NjMyLDQ4NjQwLDQ4NjQzLDQ4NjQ1LDQ4NjUyLDQ4NjUzLDQ4NjU2LDQ4NjYwLDQ4NjY4LDQ4NjY5LDQ4NjcxLDQ4NzA4LDQ4NzA5LDQ4NzEyLDQ4NzE2LDQ4NzE4LDQ4NzI0LDQ4NzI1LDQ4NzI3LDQ4NzI5LDQ4NzMwLDQ4NzMxLDQ4NzM2LDQ4NzM3LDQ4'@; put 'NzQwLDU0MDExLDU0MDEyLDU0MDEzLDU0MDE0LDU0MDE1LDU0MDE4LDU0MDIwLDU0MDIyLDU0MDIzLDU0MDI0LDU0MDI1LDU0MDI2LDU0MDI3LDU0MDMxLDU0MDMzLDU0MDM0LDU0MDM1LDU0MDM3LDU0MDM5LDU0MDQwLDU0MDQxLDU0MDQyLDU0MDQzLDU0MDQ2LDU0MDUwLDU0MDUxLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDU0MDUyLDU0MDU0LDU0MDU1LDU0MDU4LDU0MDU5LDU0MDYxLDU0MDYyLDU0MDYzLDU0MDY1LDU0MDY2LDU0MDY3LDU0MDY4LDU0MDY5LDU0MDcwLDU0MDcxLDU0MDc0LDU0MDc4LDU0MDc5LDU0MDgwLDU0MDgxLDU0MDgyLDU0MDgzLDU0MDg2LDU0'@; put 'MDg3LDU0MDg4LDU0MDg5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDU0MDkwLDU0MDkxLDU0MDkyLDU0MDkzLDU0MDk0LDU0MDk1LDU0MDk2LDU0MDk3LDU0MDk4LDU0MDk5LDU0MTAwLDU0MTAxLDU0MTAyLDU0MTAzLDU0MTA0LDU0MTA1LDU0MTA2LDU0MTA3LDU0MTA4LDU0MTA5'@; put 'LDU0MTEwLDU0MTExLDU0MTEyLDU0MTEzLDU0MTE0LDU0MTE1LDU0MTE2LDU0MTE3LDU0MTE4LDU0MTE5LDU0MTIwLDU0MTIxLDQ4NzQ0LDQ4NzQ2LDQ4NzUyLDQ4NzUzLDQ4NzU1LDQ4NzU2LDQ4NzU3LDQ4NzYzLDQ4NzY0LDQ4NzY1LDQ4NzY4LDQ4NzcyLDQ4NzgwLDQ4NzgxLDQ4NzgzLDQ4'@; put 'Nzg0LDQ4Nzg1LDQ4NzkyLDQ4NzkzLDQ4ODA4LDQ4ODQ4LDQ4ODQ5LDQ4ODUyLDQ4ODU1LDQ4ODU2LDQ4ODY0LDQ4ODY3LDQ4ODY4LDQ4ODY5LDQ4ODc2LDQ4ODk3LDQ4OTA0LDQ4OTA1LDQ4OTIwLDQ4OTIxLDQ4OTIzLDQ4OTI0LDQ4OTI1LDQ4OTYwLDQ4OTYxLDQ4OTY0LDQ4OTY4LDQ4OTc2'@; put 'LDQ4OTc3LDQ4OTgxLDQ5MDQ0LDQ5MDcyLDQ5MDkzLDQ5MTAwLDQ5MTAxLDQ5MTA0LDQ5MTA4LDQ5MTE2LDQ5MTE5LDQ5MTIxLDQ5MjEyLDQ5MjMzLDQ5MjQwLDQ5MjQ0LDQ5MjQ4LDQ5MjU2LDQ5MjU3LDQ5Mjk2LDQ5Mjk3LDQ5MzAwLDQ5MzA0LDQ5MzEyLDQ5MzEzLDQ5MzE1LDQ5MzE3LDQ5'@; put 'MzI0LDQ5MzI1LDQ5MzI3LDQ5MzI4LDQ5MzMxLDQ5MzMyLDQ5MzMzLDQ5MzM0LDQ5MzQwLDQ5MzQxLDQ5MzQzLDQ5MzQ0LDQ5MzQ1LDQ5MzQ5LDQ5MzUyLDQ5MzUzLDQ5MzU2LDQ5MzYwLDQ5MzY4LDQ5MzY5LDQ5MzcxLDQ5MzcyLDQ5MzczLDQ5MzgwLDU0MTIyLDU0MTIzLDU0MTI0LDU0MTI1'@; put 'LDU0MTI2LDU0MTI3LDU0MTI4LDU0MTI5LDU0MTMwLDU0MTMxLDU0MTMyLDU0MTMzLDU0MTM0LDU0MTM1LDU0MTM2LDU0MTM3LDU0MTM4LDU0MTM5LDU0MTQyLDU0MTQzLDU0MTQ1LDU0MTQ2LDU0MTQ3LDU0MTQ5LDU0MTUwLDU0MTUxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDU0'@; put 'MTUyLDU0MTUzLDU0MTU0LDU0MTU1LDU0MTU4LDU0MTYyLDU0MTYzLDU0MTY0LDU0MTY1LDU0MTY2LDU0MTY3LDU0MTcwLDU0MTcxLDU0MTczLDU0MTc0LDU0MTc1LDU0MTc3LDU0MTc4LDU0MTc5LDU0MTgwLDU0MTgxLDU0MTgyLDU0MTgzLDU0MTg2LDU0MTg4LDU0MTkwLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLDU0MTkxLDU0MTkyLDU0MTkzLDU0MTk0LDU0MTk1LDU0MTk3LDU0MTk4LDU0MTk5LDU0MjAxLDU0MjAyLDU0MjAzLDU0MjA1LDU0MjA2LDU0MjA3LDU0MjA4LDU0MjA5LDU0MjEwLDU0MjExLDU0MjE0LDU0MjE1LDU0MjE4LDU0MjE5LDU0MjIwLDU0MjIxLDU0'@; put 'MjIyLDU0MjIzLDU0MjI1LDU0MjI2LDU0MjI3LDU0MjI4LDU0MjI5LDU0MjMwLDQ5MzgxLDQ5Mzg0LDQ5Mzg4LDQ5Mzk2LDQ5Mzk3LDQ5Mzk5LDQ5NDAxLDQ5NDA4LDQ5NDEyLDQ5NDE2LDQ5NDI0LDQ5NDI5LDQ5NDM2LDQ5NDM3LDQ5NDM4LDQ5NDM5LDQ5NDQwLDQ5NDQzLDQ5NDQ0LDQ5NDQ2'@; put 'LDQ5NDQ3LDQ5NDUyLDQ5NDUzLDQ5NDU1LDQ5NDU2LDQ5NDU3LDQ5NDYyLDQ5NDY0LDQ5NDY1LDQ5NDY4LDQ5NDcyLDQ5NDgwLDQ5NDgxLDQ5NDgzLDQ5NDg0LDQ5NDg1LDQ5NDkyLDQ5NDkzLDQ5NDk2LDQ5NTAwLDQ5NTA4LDQ5NTA5LDQ5NTExLDQ5NTEyLDQ5NTEzLDQ5NTIwLDQ5NTI0LDQ5'@; put 'NTI4LDQ5NTQxLDQ5NTQ4LDQ5NTQ5LDQ5NTUwLDQ5NTUyLDQ5NTU2LDQ5NTU4LDQ5NTY0LDQ5NTY1LDQ5NTY3LDQ5NTY5LDQ5NTczLDQ5NTc2LDQ5NTc3LDQ5NTgwLDQ5NTg0LDQ5NTk3LDQ5NjA0LDQ5NjA4LDQ5NjEyLDQ5NjIwLDQ5NjIzLDQ5NjI0LDQ5NjMyLDQ5NjM2LDQ5NjQwLDQ5NjQ4'@; put 'LDQ5NjQ5LDQ5NjUxLDQ5NjYwLDQ5NjYxLDQ5NjY0LDQ5NjY4LDQ5Njc2LDQ5Njc3LDQ5Njc5LDQ5NjgxLDQ5Njg4LDQ5Njg5LDQ5NjkyLDQ5Njk1LDQ5Njk2LDQ5NzA0LDQ5NzA1LDQ5NzA3LDQ5NzA5LDU0MjMxLDU0MjMzLDU0MjM0LDU0MjM1LDU0MjM2LDU0MjM3LDU0MjM4LDU0MjM5LDU0'@; put 'MjQwLDU0MjQyLDU0MjQ0LDU0MjQ1LDU0MjQ2LDU0MjQ3LDU0MjQ4LDU0MjQ5LDU0MjUwLDU0MjUxLDU0MjU0LDU0MjU1LDU0MjU3LDU0MjU4LDU0MjU5LDU0MjYxLDU0MjYyLDU0MjYzLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDU0MjY0LDU0MjY1LDU0MjY2LDU0MjY3LDU0Mjcw'@; put 'LDU0MjcyLDU0Mjc0LDU0Mjc1LDU0Mjc2LDU0Mjc3LDU0Mjc4LDU0Mjc5LDU0MjgxLDU0MjgyLDU0MjgzLDU0Mjg0LDU0Mjg1LDU0Mjg2LDU0Mjg3LDU0Mjg4LDU0Mjg5LDU0MjkwLDU0MjkxLDU0MjkyLDU0MjkzLDU0Mjk0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDU0Mjk1LDU0'@; put 'Mjk2LDU0Mjk3LDU0Mjk4LDU0Mjk5LDU0MzAwLDU0MzAyLDU0MzAzLDU0MzA0LDU0MzA1LDU0MzA2LDU0MzA3LDU0MzA4LDU0MzA5LDU0MzEwLDU0MzExLDU0MzEyLDU0MzEzLDU0MzE0LDU0MzE1LDU0MzE2LDU0MzE3LDU0MzE4LDU0MzE5LDU0MzIwLDU0MzIxLDU0MzIyLDU0MzIzLDU0MzI0'@; put 'LDU0MzI1LDU0MzI2LDU0MzI3LDQ5NzExLDQ5NzEzLDQ5NzE0LDQ5NzE2LDQ5NzM2LDQ5NzQ0LDQ5NzQ1LDQ5NzQ4LDQ5NzUyLDQ5NzYwLDQ5NzY1LDQ5NzcyLDQ5NzczLDQ5Nzc2LDQ5NzgwLDQ5Nzg4LDQ5Nzg5LDQ5NzkxLDQ5NzkzLDQ5ODAwLDQ5ODAxLDQ5ODA4LDQ5ODE2LDQ5ODE5LDQ5'@; put 'ODIxLDQ5ODI4LDQ5ODI5LDQ5ODMyLDQ5ODM2LDQ5ODM3LDQ5ODQ0LDQ5ODQ1LDQ5ODQ3LDQ5ODQ5LDQ5ODg0LDQ5ODg1LDQ5ODg4LDQ5ODkxLDQ5ODkyLDQ5ODk5LDQ5OTAwLDQ5OTAxLDQ5OTAzLDQ5OTA1LDQ5OTEwLDQ5OTEyLDQ5OTEzLDQ5OTE1LDQ5OTE2LDQ5OTIwLDQ5OTI4LDQ5OTI5'@; put 'LDQ5OTMyLDQ5OTMzLDQ5OTM5LDQ5OTQwLDQ5OTQxLDQ5OTQ0LDQ5OTQ4LDQ5OTU2LDQ5OTU3LDQ5OTYwLDQ5OTYxLDQ5OTg5LDUwMDI0LDUwMDI1LDUwMDI4LDUwMDMyLDUwMDM0LDUwMDQwLDUwMDQxLDUwMDQ0LDUwMDQ1LDUwMDUyLDUwMDU2LDUwMDYwLDUwMTEyLDUwMTM2LDUwMTM3LDUw'@; put 'MTQwLDUwMTQzLDUwMTQ0LDUwMTQ2LDUwMTUyLDUwMTUzLDUwMTU3LDUwMTY0LDUwMTY1LDUwMTY4LDUwMTg0LDUwMTkyLDUwMjEyLDUwMjIwLDUwMjI0LDU0MzI4LDU0MzI5LDU0MzMwLDU0MzMxLDU0MzMyLDU0MzMzLDU0MzM0LDU0MzM1LDU0MzM3LDU0MzM4LDU0MzM5LDU0MzQxLDU0MzQy'@; put 'LDU0MzQzLDU0MzQ0LDU0MzQ1LDU0MzQ2LDU0MzQ3LDU0MzQ4LDU0MzQ5LDU0MzUwLDU0MzUxLDU0MzUyLDU0MzUzLDU0MzU0LDU0MzU1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDU0MzU2LDU0MzU3LDU0MzU4LDU0MzU5LDU0MzYwLDU0MzYxLDU0MzYyLDU0MzYzLDU0MzY1LDU0'@; put 'MzY2LDU0MzY3LDU0MzY5LDU0MzcwLDU0MzcxLDU0MzczLDU0Mzc0LDU0Mzc1LDU0Mzc2LDU0Mzc3LDU0Mzc4LDU0Mzc5LDU0MzgwLDU0MzgyLDU0Mzg0LDU0Mzg1LDU0Mzg2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDU0Mzg3LDU0Mzg4LDU0Mzg5LDU0MzkwLDU0MzkxLDU0Mzk0'@; put 'LDU0Mzk1LDU0Mzk3LDU0Mzk4LDU0NDAxLDU0NDAzLDU0NDA0LDU0NDA1LDU0NDA2LDU0NDA3LDU0NDEwLDU0NDEyLDU0NDE0LDU0NDE1LDU0NDE2LDU0NDE3LDU0NDE4LDU0NDE5LDU0NDIxLDU0NDIyLDU0NDIzLDU0NDI0LDU0NDI1LDU0NDI2LDU0NDI3LDU0NDI4LDU0NDI5LDUwMjI4LDUw'@; put 'MjM2LDUwMjM3LDUwMjQ4LDUwMjc2LDUwMjc3LDUwMjgwLDUwMjg0LDUwMjkyLDUwMjkzLDUwMjk3LDUwMzA0LDUwMzI0LDUwMzMyLDUwMzYwLDUwMzY0LDUwNDA5LDUwNDE2LDUwNDE3LDUwNDIwLDUwNDI0LDUwNDI2LDUwNDMxLDUwNDMyLDUwNDMzLDUwNDQ0LDUwNDQ4LDUwNDUyLDUwNDYw'@; put 'LDUwNDcyLDUwNDczLDUwNDc2LDUwNDgwLDUwNDg4LDUwNDg5LDUwNDkxLDUwNDkzLDUwNTAwLDUwNTAxLDUwNTA0LDUwNTA1LDUwNTA2LDUwNTA4LDUwNTA5LDUwNTEwLDUwNTE1LDUwNTE2LDUwNTE3LDUwNTE5LDUwNTIwLDUwNTIxLDUwNTI1LDUwNTI2LDUwNTI4LDUwNTI5LDUwNTMyLDUw'@; put 'NTM2LDUwNTQ0LDUwNTQ1LDUwNTQ3LDUwNTQ4LDUwNTQ5LDUwNTU2LDUwNTU3LDUwNTYwLDUwNTY0LDUwNTY3LDUwNTcyLDUwNTczLDUwNTc1LDUwNTc3LDUwNTgxLDUwNTgzLDUwNTg0LDUwNTg4LDUwNTkyLDUwNjAxLDUwNjEyLDUwNjEzLDUwNjE2LDUwNjE3LDUwNjE5LDUwNjIwLDUwNjIx'@; put 'LDUwNjIyLDUwNjI4LDUwNjI5LDUwNjMwLDUwNjMxLDUwNjMyLDUwNjMzLDUwNjM0LDUwNjM2LDUwNjM4LDU0NDMwLDU0NDMxLDU0NDMyLDU0NDMzLDU0NDM0LDU0NDM1LDU0NDM2LDU0NDM3LDU0NDM4LDU0NDM5LDU0NDQwLDU0NDQyLDU0NDQzLDU0NDQ0LDU0NDQ1LDU0NDQ2LDU0NDQ3LDU0'@; put 'NDQ4LDU0NDQ5LDU0NDUwLDU0NDUxLDU0NDUyLDU0NDUzLDU0NDU0LDU0NDU1LDU0NDU2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDU0NDU3LDU0NDU4LDU0NDU5LDU0NDYwLDU0NDYxLDU0NDYyLDU0NDYzLDU0NDY0LDU0NDY1LDU0NDY2LDU0NDY3LDU0NDY4LDU0NDY5LDU0NDcw'@; put 'LDU0NDcxLDU0NDcyLDU0NDczLDU0NDc0LDU0NDc1LDU0NDc3LDU0NDc4LDU0NDc5LDU0NDgxLDU0NDgyLDU0NDgzLDU0NDg1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDU0NDg2LDU0NDg3LDU0NDg4LDU0NDg5LDU0NDkwLDU0NDkxLDU0NDkzLDU0NDk0LDU0NDk2LDU0NDk3LDU0'@; put 'NDk4LDU0NDk5LDU0NTAwLDU0NTAxLDU0NTAyLDU0NTAzLDU0NTA1LDU0NTA2LDU0NTA3LDU0NTA5LDU0NTEwLDU0NTExLDU0NTEzLDU0NTE0LDU0NTE1LDU0NTE2LDU0NTE3LDU0NTE4LDU0NTE5LDU0NTIxLDU0NTIyLDU0NTI0LDUwNjQwLDUwNjQxLDUwNjQ0LDUwNjQ4LDUwNjU2LDUwNjU3'@; put 'LDUwNjU5LDUwNjYxLDUwNjY4LDUwNjY5LDUwNjcwLDUwNjcyLDUwNjc2LDUwNjc4LDUwNjc5LDUwNjg0LDUwNjg1LDUwNjg2LDUwNjg3LDUwNjg4LDUwNjg5LDUwNjkzLDUwNjk0LDUwNjk1LDUwNjk2LDUwNzAwLDUwNzA0LDUwNzEyLDUwNzEzLDUwNzE1LDUwNzE2LDUwNzI0LDUwNzI1LDUw'@; put 'NzI4LDUwNzMyLDUwNzMzLDUwNzM0LDUwNzM2LDUwNzM5LDUwNzQwLDUwNzQxLDUwNzQzLDUwNzQ1LDUwNzQ3LDUwNzUyLDUwNzUzLDUwNzU2LDUwNzYwLDUwNzY4LDUwNzY5LDUwNzcxLDUwNzcyLDUwNzczLDUwNzgwLDUwNzgxLDUwNzg0LDUwNzk2LDUwNzk5LDUwODAxLDUwODA4LDUwODA5'@; put 'LDUwODEyLDUwODE2LDUwODI0LDUwODI1LDUwODI3LDUwODI5LDUwODM2LDUwODM3LDUwODQwLDUwODQ0LDUwODUyLDUwODUzLDUwODU1LDUwODU3LDUwODY0LDUwODY1LDUwODY4LDUwODcyLDUwODczLDUwODc0LDUwODgwLDUwODgxLDUwODgzLDUwODg1LDUwODkyLDUwODkzLDUwODk2LDUw'@; put 'OTAwLDUwOTA4LDUwOTA5LDUwOTEyLDUwOTEzLDUwOTIwLDU0NTI2LDU0NTI3LDU0NTI4LDU0NTI5LDU0NTMwLDU0NTMxLDU0NTMzLDU0NTM0LDU0NTM1LDU0NTM3LDU0NTM4LDU0NTM5LDU0NTQxLDU0NTQyLDU0NTQzLDU0NTQ0LDU0NTQ1LDU0NTQ2LDU0NTQ3LDU0NTUwLDU0NTUyLDU0NTUz'@; put 'LDU0NTU0LDU0NTU1LDU0NTU2LDU0NTU3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDU0NTU4LDU0NTU5LDU0NTYwLDU0NTYxLDU0NTYyLDU0NTYzLDU0NTY0LDU0NTY1LDU0NTY2LDU0NTY3LDU0NTY4LDU0NTY5LDU0NTcwLDU0NTcxLDU0NTcyLDU0NTczLDU0NTc0LDU0NTc1LDU0'@; put 'NTc2LDU0NTc3LDU0NTc4LDU0NTc5LDU0NTgwLDU0NTgxLDU0NTgyLDU0NTgzLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDU0NTg0LDU0NTg1LDU0NTg2LDU0NTg3LDU0NTkwLDU0NTkxLDU0NTkzLDU0NTk0LDU0NTk1LDU0NTk3LDU0NTk4LDU0NTk5LDU0NjAwLDU0NjAxLDU0NjAy'@; put 'LDU0NjAzLDU0NjA2LDU0NjA4LDU0NjEwLDU0NjExLDU0NjEyLDU0NjEzLDU0NjE0LDU0NjE1LDU0NjE4LDU0NjE5LDU0NjIxLDU0NjIyLDU0NjIzLDU0NjI1LDU0NjI2LDU0NjI3LDUwOTIxLDUwOTI0LDUwOTI4LDUwOTM2LDUwOTM3LDUwOTQxLDUwOTQ4LDUwOTQ5LDUwOTUyLDUwOTU2LDUw'@; put 'OTY0LDUwOTY1LDUwOTY3LDUwOTY5LDUwOTc2LDUwOTc3LDUwOTgwLDUwOTg0LDUwOTkyLDUwOTkzLDUwOTk1LDUwOTk3LDUwOTk5LDUxMDA0LDUxMDA1LDUxMDA4LDUxMDEyLDUxMDE4LDUxMDIwLDUxMDIxLDUxMDIzLDUxMDI1LDUxMDI2LDUxMDI3LDUxMDI4LDUxMDI5LDUxMDMwLDUxMDMx'@; put 'LDUxMDMyLDUxMDM2LDUxMDQwLDUxMDQ4LDUxMDUxLDUxMDYwLDUxMDYxLDUxMDY0LDUxMDY4LDUxMDY5LDUxMDcwLDUxMDc1LDUxMDc2LDUxMDc3LDUxMDc5LDUxMDgwLDUxMDgxLDUxMDgyLDUxMDg2LDUxMDg4LDUxMDg5LDUxMDkyLDUxMDk0LDUxMDk1LDUxMDk2LDUxMDk4LDUxMTA0LDUx'@; put 'MTA1LDUxMTA3LDUxMTA4LDUxMTA5LDUxMTEwLDUxMTE2LDUxMTE3LDUxMTIwLDUxMTI0LDUxMTMyLDUxMTMzLDUxMTM1LDUxMTM2LDUxMTM3LDUxMTQ0LDUxMTQ1LDUxMTQ4LDUxMTUwLDUxMTUyLDUxMTYwLDUxMTY1LDUxMTcyLDUxMTc2LDUxMTgwLDUxMjAwLDUxMjAxLDUxMjA0LDUxMjA4'@; put 'LDUxMjEwLDU0NjI4LDU0NjMwLDU0NjMxLDU0NjM0LDU0NjM2LDU0NjM4LDU0NjM5LDU0NjQwLDU0NjQxLDU0NjQyLDU0NjQzLDU0NjQ2LDU0NjQ3LDU0NjQ5LDU0NjUwLDU0NjUxLDU0NjUzLDU0NjU0LDU0NjU1LDU0NjU2LDU0NjU3LDU0NjU4LDU0NjU5LDU0NjYyLDU0NjY2LDU0NjY3LG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDU0NjY4LDU0NjY5LDU0NjcwLDU0NjcxLDU0NjczLDU0Njc0LDU0Njc1LDU0Njc2LDU0Njc3LDU0Njc4LDU0Njc5LDU0NjgwLDU0NjgxLDU0NjgyLDU0NjgzLDU0Njg0LDU0Njg1LDU0Njg2LDU0Njg3LDU0Njg4LDU0Njg5LDU0NjkwLDU0Njkx'@; put 'LDU0NjkyLDU0Njk0LDU0Njk1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDU0Njk2LDU0Njk3LDU0Njk4LDU0Njk5LDU0NzAwLDU0NzAxLDU0NzAyLDU0NzAzLDU0NzA0LDU0NzA1LDU0NzA2LDU0NzA3LDU0NzA4LDU0NzA5LDU0NzEwLDU0NzExLDU0NzEyLDU0NzEzLDU0NzE0LDU0'@; put 'NzE1LDU0NzE2LDU0NzE3LDU0NzE4LDU0NzE5LDU0NzIwLDU0NzIxLDU0NzIyLDU0NzIzLDU0NzI0LDU0NzI1LDU0NzI2LDU0NzI3LDUxMjE2LDUxMjE3LDUxMjE5LDUxMjIxLDUxMjIyLDUxMjI4LDUxMjI5LDUxMjMyLDUxMjM2LDUxMjQ0LDUxMjQ1LDUxMjQ3LDUxMjQ5LDUxMjU2LDUxMjYw'@; put 'LDUxMjY0LDUxMjcyLDUxMjczLDUxMjc2LDUxMjc3LDUxMjg0LDUxMzEyLDUxMzEzLDUxMzE2LDUxMzIwLDUxMzIyLDUxMzI4LDUxMzI5LDUxMzMxLDUxMzMzLDUxMzM0LDUxMzM1LDUxMzM5LDUxMzQwLDUxMzQxLDUxMzQ4LDUxMzU3LDUxMzU5LDUxMzYxLDUxMzY4LDUxMzg4LDUxMzg5LDUx'@; put 'Mzk2LDUxNDAwLDUxNDA0LDUxNDEyLDUxNDEzLDUxNDE1LDUxNDE3LDUxNDI0LDUxNDI1LDUxNDI4LDUxNDQ1LDUxNDUyLDUxNDUzLDUxNDU2LDUxNDYwLDUxNDYxLDUxNDYyLDUxNDY4LDUxNDY5LDUxNDcxLDUxNDczLDUxNDgwLDUxNTAwLDUxNTA4LDUxNTM2LDUxNTM3LDUxNTQwLDUxNTQ0'@; put 'LDUxNTUyLDUxNTUzLDUxNTU1LDUxNTY0LDUxNTY4LDUxNTcyLDUxNTgwLDUxNTkyLDUxNTkzLDUxNTk2LDUxNjAwLDUxNjA4LDUxNjA5LDUxNjExLDUxNjEzLDUxNjQ4LDUxNjQ5LDUxNjUyLDUxNjU1LDUxNjU2LDUxNjU4LDUxNjY0LDUxNjY1LDUxNjY3LDU0NzMwLDU0NzMxLDU0NzMzLDU0'@; put 'NzM0LDU0NzM1LDU0NzM3LDU0NzM5LDU0NzQwLDU0NzQxLDU0NzQyLDU0NzQzLDU0NzQ2LDU0NzQ4LDU0NzUwLDU0NzUxLDU0NzUyLDU0NzUzLDU0NzU0LDU0NzU1LDU0NzU4LDU0NzU5LDU0NzYxLDU0NzYyLDU0NzYzLDU0NzY1LDU0NzY2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LDU0NzY3LDU0NzY4LDU0NzY5LDU0NzcwLDU0NzcxLDU0Nzc0LDU0Nzc2LDU0Nzc4LDU0Nzc5LDU0NzgwLDU0NzgxLDU0NzgyLDU0NzgzLDU0Nzg2LDU0Nzg3LDU0Nzg5LDU0NzkwLDU0NzkxLDU0NzkzLDU0Nzk0LDU0Nzk1LDU0Nzk2LDU0Nzk3LDU0Nzk4LDU0Nzk5LDU0ODAyLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLDU0ODA2LDU0ODA3LDU0ODA4LDU0ODA5LDU0ODEwLDU0ODExLDU0ODEzLDU0ODE0LDU0ODE1LDU0ODE3LDU0ODE4LDU0ODE5LDU0ODIxLDU0ODIyLDU0ODIzLDU0ODI0LDU0ODI1LDU0ODI2LDU0ODI3LDU0ODI4LDU0ODMwLDU0ODMxLDU0ODMyLDU0ODMz'@; put 'LDU0ODM0LDU0ODM1LDU0ODM2LDU0ODM3LDU0ODM4LDU0ODM5LDU0ODQyLDU0ODQzLDUxNjY5LDUxNjcwLDUxNjczLDUxNjc0LDUxNjc2LDUxNjc3LDUxNjgwLDUxNjgyLDUxNjg0LDUxNjg3LDUxNjkyLDUxNjkzLDUxNjk1LDUxNjk2LDUxNjk3LDUxNzA0LDUxNzA1LDUxNzA4LDUxNzEyLDUx'@; put 'NzIwLDUxNzIxLDUxNzIzLDUxNzI0LDUxNzI1LDUxNzMyLDUxNzM2LDUxNzUzLDUxNzg4LDUxNzg5LDUxNzkyLDUxNzk2LDUxODA0LDUxODA1LDUxODA3LDUxODA4LDUxODA5LDUxODE2LDUxODM3LDUxODQ0LDUxODY0LDUxOTAwLDUxOTAxLDUxOTA0LDUxOTA4LDUxOTE2LDUxOTE3LDUxOTE5'@; put 'LDUxOTIxLDUxOTIzLDUxOTI4LDUxOTI5LDUxOTM2LDUxOTQ4LDUxOTU2LDUxOTc2LDUxOTg0LDUxOTg4LDUxOTkyLDUyZTMsNTIwMDEsNTIwMzMsNTIwNDAsNTIwNDEsNTIwNDQsNTIwNDgsNTIwNTYsNTIwNTcsNTIwNjEsNTIwNjgsNTIwODgsNTIwODksNTIxMjQsNTIxNTIsNTIxODAsNTIx'@; put 'OTYsNTIxOTksNTIyMDEsNTIyMzYsNTIyMzcsNTIyNDAsNTIyNDQsNTIyNTIsNTIyNTMsNTIyNTcsNTIyNTgsNTIyNjMsNTIyNjQsNTIyNjUsNTIyNjgsNTIyNzAsNTIyNzIsNTIyODAsNTIyODEsNTIyODMsNTQ4NDUsNTQ4NDYsNTQ4NDcsNTQ4NDksNTQ4NTAsNTQ4NTEsNTQ4NTIsNTQ4NTQs'@; put 'NTQ4NTUsNTQ4NTgsNTQ4NjAsNTQ4NjIsNTQ4NjMsNTQ4NjQsNTQ4NjYsNTQ4NjcsNTQ4NzAsNTQ4NzEsNTQ4NzMsNTQ4NzQsNTQ4NzUsNTQ4NzcsNTQ4NzgsNTQ4NzksNTQ4ODAsNTQ4ODEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTQ4ODIsNTQ4ODMsNTQ4ODQsNTQ4ODUsNTQ4'@; put 'ODYsNTQ4ODgsNTQ4OTAsNTQ4OTEsNTQ4OTIsNTQ4OTMsNTQ4OTQsNTQ4OTUsNTQ4OTgsNTQ4OTksNTQ5MDEsNTQ5MDIsNTQ5MDMsNTQ5MDQsNTQ5MDUsNTQ5MDYsNTQ5MDcsNTQ5MDgsNTQ5MDksNTQ5MTAsNTQ5MTEsNTQ5MTIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTQ5MTMs'@; put 'NTQ5MTQsNTQ5MTYsNTQ5MTgsNTQ5MTksNTQ5MjAsNTQ5MjEsNTQ5MjIsNTQ5MjMsNTQ5MjYsNTQ5MjcsNTQ5MjksNTQ5MzAsNTQ5MzEsNTQ5MzMsNTQ5MzQsNTQ5MzUsNTQ5MzYsNTQ5MzcsNTQ5MzgsNTQ5MzksNTQ5NDAsNTQ5NDIsNTQ5NDQsNTQ5NDYsNTQ5NDcsNTQ5NDgsNTQ5NDksNTQ5'@; put 'NTAsNTQ5NTEsNTQ5NTMsNTQ5NTQsNTIyODQsNTIyODUsNTIyODYsNTIyOTIsNTIyOTMsNTIyOTYsNTIzMDAsNTIzMDgsNTIzMDksNTIzMTEsNTIzMTIsNTIzMTMsNTIzMjAsNTIzMjQsNTIzMjYsNTIzMjgsNTIzMzYsNTIzNDEsNTIzNzYsNTIzNzcsNTIzODAsNTIzODQsNTIzOTIsNTIzOTMs'@; put 'NTIzOTUsNTIzOTYsNTIzOTcsNTI0MDQsNTI0MDUsNTI0MDgsNTI0MTIsNTI0MjAsNTI0MjEsNTI0MjMsNTI0MjUsNTI0MzIsNTI0MzYsNTI0NTIsNTI0NjAsNTI0NjQsNTI0ODEsNTI0ODgsNTI0ODksNTI0OTIsNTI0OTYsNTI1MDQsNTI1MDUsNTI1MDcsNTI1MDksNTI1MTYsNTI1MjAsNTI1'@; put 'MjQsNTI1MzcsNTI1NzIsNTI1NzYsNTI1ODAsNTI1ODgsNTI1ODksNTI1OTEsNTI1OTMsNTI2MDAsNTI2MTYsNTI2MjgsNTI2MjksNTI2MzIsNTI2MzYsNTI2NDQsNTI2NDUsNTI2NDcsNTI2NDksNTI2NTYsNTI2NzYsNTI2ODQsNTI2ODgsNTI3MTIsNTI3MTYsNTI3MjAsNTI3MjgsNTI3Mjks'@; put 'NTI3MzEsNTI3MzMsNTI3NDAsNTI3NDQsNTI3NDgsNTI3NTYsNTI3NjEsNTI3NjgsNTI3NjksNTI3NzIsNTI3NzYsNTI3ODQsNTI3ODUsNTI3ODcsNTI3ODksNTQ5NTUsNTQ5NTcsNTQ5NTgsNTQ5NTksNTQ5NjEsNTQ5NjIsNTQ5NjMsNTQ5NjQsNTQ5NjUsNTQ5NjYsNTQ5NjcsNTQ5NjgsNTQ5'@; put 'NzAsNTQ5NzIsNTQ5NzMsNTQ5NzQsNTQ5NzUsNTQ5NzYsNTQ5NzcsNTQ5NzgsNTQ5NzksNTQ5ODIsNTQ5ODMsNTQ5ODUsNTQ5ODYsNTQ5ODcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTQ5ODksNTQ5OTAsNTQ5OTEsNTQ5OTIsNTQ5OTQsNTQ5OTUsNTQ5OTcsNTQ5OTgsNTVlMyw1'@; put 'NTAwMiw1NTAwMyw1NTAwNCw1NTAwNSw1NTAwNiw1NTAwNyw1NTAwOSw1NTAxMCw1NTAxMSw1NTAxMyw1NTAxNCw1NTAxNSw1NTAxNyw1NTAxOCw1NTAxOSw1NTAyMCw1NTAyMSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NTAyMiw1NTAyMyw1NTAyNSw1NTAyNiw1NTAyNyw1NTAy'@; put 'OCw1NTAzMCw1NTAzMSw1NTAzMiw1NTAzMyw1NTAzNCw1NTAzNSw1NTAzOCw1NTAzOSw1NTA0MSw1NTA0Miw1NTA0Myw1NTA0NSw1NTA0Niw1NTA0Nyw1NTA0OCw1NTA0OSw1NTA1MCw1NTA1MSw1NTA1Miw1NTA1Myw1NTA1NCw1NTA1NSw1NTA1Niw1NTA1OCw1NTA1OSw1NTA2MCw1MjgyNCw1'@; put 'MjgyNSw1MjgyOCw1MjgzMSw1MjgzMiw1MjgzMyw1Mjg0MCw1Mjg0MSw1Mjg0Myw1Mjg0NSw1Mjg1Miw1Mjg1Myw1Mjg1Niw1Mjg2MCw1Mjg2OCw1Mjg2OSw1Mjg3MSw1Mjg3Myw1Mjg4MCw1Mjg4MSw1Mjg4NCw1Mjg4OCw1Mjg5Niw1Mjg5Nyw1Mjg5OSw1MjkwMCw1MjkwMSw1MjkwOCw1Mjkw'@; put 'OSw1MjkyOSw1Mjk2NCw1Mjk2NSw1Mjk2OCw1Mjk3MSw1Mjk3Miw1Mjk4MCw1Mjk4MSw1Mjk4Myw1Mjk4NCw1Mjk4NSw1Mjk5Miw1Mjk5Myw1Mjk5Niw1M2UzLDUzMDA4LDUzMDA5LDUzMDExLDUzMDEzLDUzMDIwLDUzMDI0LDUzMDI4LDUzMDM2LDUzMDM3LDUzMDM5LDUzMDQwLDUzMDQxLDUz'@; put 'MDQ4LDUzMDc2LDUzMDc3LDUzMDgwLDUzMDg0LDUzMDkyLDUzMDkzLDUzMDk1LDUzMDk3LDUzMTA0LDUzMTA1LDUzMTA4LDUzMTEyLDUzMTIwLDUzMTI1LDUzMTMyLDUzMTUzLDUzMTYwLDUzMTY4LDUzMTg4LDUzMjE2LDUzMjE3LDUzMjIwLDUzMjI0LDUzMjMyLDUzMjMzLDUzMjM1LDUzMjM3'@; put 'LDUzMjQ0LDUzMjQ4LDUzMjUyLDUzMjY1LDUzMjcyLDUzMjkzLDUzMzAwLDUzMzAxLDUzMzA0LDUzMzA4LDU1MDYxLDU1MDYyLDU1MDYzLDU1MDY2LDU1MDY3LDU1MDY5LDU1MDcwLDU1MDcxLDU1MDczLDU1MDc0LDU1MDc1LDU1MDc2LDU1MDc3LDU1MDc4LDU1MDc5LDU1MDgyLDU1MDg0LDU1'@; put 'MDg2LDU1MDg3LDU1MDg4LDU1MDg5LDU1MDkwLDU1MDkxLDU1MDk0LDU1MDk1LDU1MDk3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDU1MDk4LDU1MDk5LDU1MTAxLDU1MTAyLDU1MTAzLDU1MTA0LDU1MTA1LDU1MTA2LDU1MTA3LDU1MTA5LDU1MTEwLDU1MTEyLDU1MTE0LDU1MTE1'@; put 'LDU1MTE2LDU1MTE3LDU1MTE4LDU1MTE5LDU1MTIyLDU1MTIzLDU1MTI1LDU1MTMwLDU1MTMxLDU1MTMyLDU1MTMzLDU1MTM0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDU1MTM1LDU1MTM4LDU1MTQwLDU1MTQyLDU1MTQzLDU1MTQ0LDU1MTQ2LDU1MTQ3LDU1MTQ5LDU1MTUwLDU1'@; put 'MTUxLDU1MTUzLDU1MTU0LDU1MTU1LDU1MTU3LDU1MTU4LDU1MTU5LDU1MTYwLDU1MTYxLDU1MTYyLDU1MTYzLDU1MTY2LDU1MTY3LDU1MTY4LDU1MTcwLDU1MTcxLDU1MTcyLDU1MTczLDU1MTc0LDU1MTc1LDU1MTc4LDU1MTc5LDUzMzE2LDUzMzE3LDUzMzE5LDUzMzIxLDUzMzI4LDUzMzMy'@; put 'LDUzMzM2LDUzMzQ0LDUzMzU2LDUzMzU3LDUzMzYwLDUzMzY0LDUzMzcyLDUzMzczLDUzMzc3LDUzNDEyLDUzNDEzLDUzNDE2LDUzNDIwLDUzNDI4LDUzNDI5LDUzNDMxLDUzNDMzLDUzNDQwLDUzNDQxLDUzNDQ0LDUzNDQ4LDUzNDQ5LDUzNDU2LDUzNDU3LDUzNDU5LDUzNDYwLDUzNDYxLDUz'@; put 'NDY4LDUzNDY5LDUzNDcyLDUzNDc2LDUzNDg0LDUzNDg1LDUzNDg3LDUzNDg4LDUzNDg5LDUzNDk2LDUzNTE3LDUzNTUyLDUzNTUzLDUzNTU2LDUzNTYwLDUzNTYyLDUzNTY4LDUzNTY5LDUzNTcxLDUzNTcyLDUzNTczLDUzNTgwLDUzNTgxLDUzNTg0LDUzNTg4LDUzNTk2LDUzNTk3LDUzNTk5'@; put 'LDUzNjAxLDUzNjA4LDUzNjEyLDUzNjI4LDUzNjM2LDUzNjQwLDUzNjY0LDUzNjY1LDUzNjY4LDUzNjcyLDUzNjgwLDUzNjgxLDUzNjgzLDUzNjg1LDUzNjkwLDUzNjkyLDUzNjk2LDUzNzIwLDUzNzQ4LDUzNzUyLDUzNzY3LDUzNzY5LDUzNzc2LDUzODA0LDUzODA1LDUzODA4LDUzODEyLDUz'@; put 'ODIwLDUzODIxLDUzODIzLDUzODI1LDUzODMyLDUzODUyLDU1MTgxLDU1MTgyLDU1MTgzLDU1MTg1LDU1MTg2LDU1MTg3LDU1MTg4LDU1MTg5LDU1MTkwLDU1MTkxLDU1MTk0LDU1MTk2LDU1MTk4LDU1MTk5LDU1MjAwLDU1MjAxLDU1MjAyLDU1MjAzLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUzODYwLDUzODg4LDUzODg5LDUzODkyLDUzODk2LDUzOTA0LDUzOTA1LDUzOTA5LDUzOTE2LDUzOTIwLDUzOTI0LDUzOTMyLDUzOTM3LDUzOTQ0LDUzOTQ1LDUzOTQ4LDUzOTUxLDUzOTUyLDUzOTU0LDUzOTYwLDUzOTYxLDUz'@; put 'OTYzLDUzOTcyLDUzOTc2LDUzOTgwLDUzOTg4LDUzOTg5LDU0ZTMsNTQwMDEsNTQwMDQsNTQwMDgsNTQwMTYsNTQwMTcsNTQwMTksNTQwMjEsNTQwMjgsNTQwMjksNTQwMzAsNTQwMzIsNTQwMzYsNTQwMzgsNTQwNDQsNTQwNDUsNTQwNDcsNTQwNDgsNTQwNDksNTQwNTMsNTQwNTYsNTQwNTcs'@; put 'NTQwNjAsNTQwNjQsNTQwNzIsNTQwNzMsNTQwNzUsNTQwNzYsNTQwNzcsNTQwODQsNTQwODUsNTQxNDAsNTQxNDEsNTQxNDQsNTQxNDgsNTQxNTYsNTQxNTcsNTQxNTksNTQxNjAsNTQxNjEsNTQxNjgsNTQxNjksNTQxNzIsNTQxNzYsNTQxODQsNTQxODUsNTQxODcsNTQxODksNTQxOTYsNTQy'@; put 'MDAsNTQyMDQsNTQyMTIsNTQyMTMsNTQyMTYsNTQyMTcsNTQyMjQsNTQyMzIsNTQyNDEsNTQyNDMsNTQyNTIsNTQyNTMsNTQyNTYsNTQyNjAsNTQyNjgsNTQyNjksNTQyNzEsNTQyNzMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTQyODAsNTQzMDEsNTQzMzYsNTQzNDAsNTQzNjQsNTQzNjgsNTQzNzIsNTQzODEsNTQzODMsNTQzOTIsNTQzOTMsNTQzOTYsNTQz'@; put 'OTksNTQ0MDAsNTQ0MDIsNTQ0MDgsNTQ0MDksNTQ0MTEsNTQ0MTMsNTQ0MjAsNTQ0NDEsNTQ0NzYsNTQ0ODAsNTQ0ODQsNTQ0OTIsNTQ0OTUsNTQ1MDQsNTQ1MDgsNTQ1MTIsNTQ1MjAsNTQ1MjMsNTQ1MjUsNTQ1MzIsNTQ1MzYsNTQ1NDAsNTQ1NDgsNTQ1NDksNTQ1NTEsNTQ1ODgsNTQ1ODks'@; put 'NTQ1OTIsNTQ1OTYsNTQ2MDQsNTQ2MDUsNTQ2MDcsNTQ2MDksNTQ2MTYsNTQ2MTcsNTQ2MjAsNTQ2MjQsNTQ2MjksNTQ2MzIsNTQ2MzMsNTQ2MzUsNTQ2MzcsNTQ2NDQsNTQ2NDUsNTQ2NDgsNTQ2NTIsNTQ2NjAsNTQ2NjEsNTQ2NjMsNTQ2NjQsNTQ2NjUsNTQ2NzIsNTQ2OTMsNTQ3MjgsNTQ3'@; put 'MjksNTQ3MzIsNTQ3MzYsNTQ3MzgsNTQ3NDQsNTQ3NDUsNTQ3NDcsNTQ3NDksNTQ3NTYsNTQ3NTcsNTQ3NjAsNTQ3NjQsNTQ3NzIsNTQ3NzMsNTQ3NzUsNTQ3NzcsNTQ3ODQsNTQ3ODUsNTQ3ODgsNTQ3OTIsNTQ4MDAsNTQ4MDEsNTQ4MDMsNTQ4MDQsNTQ4MDUsNTQ4MTIsNTQ4MTYsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTQ4MjAsNTQ4MjksNTQ4NDAsNTQ4'@; put 'NDEsNTQ4NDQsNTQ4NDgsNTQ4NTMsNTQ4NTYsNTQ4NTcsNTQ4NTksNTQ4NjEsNTQ4NjUsNTQ4NjgsNTQ4NjksNTQ4NzIsNTQ4NzYsNTQ4ODcsNTQ4ODksNTQ4OTYsNTQ4OTcsNTQ5MDAsNTQ5MTUsNTQ5MTcsNTQ5MjQsNTQ5MjUsNTQ5MjgsNTQ5MzIsNTQ5NDEsNTQ5NDMsNTQ5NDUsNTQ5NTIs'@; put 'NTQ5NTYsNTQ5NjAsNTQ5NjksNTQ5NzEsNTQ5ODAsNTQ5ODEsNTQ5ODQsNTQ5ODgsNTQ5OTMsNTQ5OTYsNTQ5OTksNTUwMDEsNTUwMDgsNTUwMTIsNTUwMTYsNTUwMjQsNTUwMjksNTUwMzYsNTUwMzcsNTUwNDAsNTUwNDQsNTUwNTcsNTUwNjQsNTUwNjUsNTUwNjgsNTUwNzIsNTUwODAsNTUw'@; put 'ODEsNTUwODMsNTUwODUsNTUwOTIsNTUwOTMsNTUwOTYsNTUxMDAsNTUxMDgsNTUxMTEsNTUxMTMsNTUxMjAsNTUxMjEsNTUxMjQsNTUxMjYsNTUxMjcsNTUxMjgsNTUxMjksNTUxMzYsNTUxMzcsNTUxMzksNTUxNDEsNTUxNDUsNTUxNDgsNTUxNTIsNTUxNTYsNTUxNjQsNTUxNjUsNTUxNjks'@; put 'NTUxNzYsNTUxNzcsNTUxODAsNTUxODQsNTUxOTIsNTUxOTMsNTUxOTUsNTUxOTcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyMDI4NSwy'@; put 'MDMzOSwyMDU1MSwyMDcyOSwyMTE1MiwyMTQ4NywyMTYyMSwyMTczMywyMjAyNSwyMzIzMywyMzQ3OCwyNjI0NywyNjU1MCwyNjU1MSwyNjYwNywyNzQ2OCwyOTYzNCwzMDE0NiwzMTI5MiwzMzQ5OSwzMzU0MCwzNDkwMywzNDk1MiwzNTM4MiwzNjA0MCwzNjMwMywzNjYwMywzNjgzOCwzOTM4'@; put 'MSwyMTA1MSwyMTM2NCwyMTUwOCwyNDY4MiwyNDkzMiwyNzU4MCwyOTY0NywzMzA1MCwzNTI1OCwzNTI4MiwzODMwNywyMDM1NSwyMTAwMiwyMjcxOCwyMjkwNCwyMzAxNCwyNDE3OCwyNDE4NSwyNTAzMSwyNTUzNiwyNjQzOCwyNjYwNCwyNjc1MSwyODU2NywzMDI4NiwzMDQ3NSwzMDk2NSwz'@; put 'MTI0MCwzMTQ4NywzMTc3NywzMjkyNSwzMzM5MCwzMzM5MywzNTU2MywzODI5MSwyMDA3NSwyMTkxNywyNjM1OSwyODIxMiwzMDg4MywzMTQ2OSwzMzg4MywzNTA4OCwzNDYzOCwzODgyNCwyMTIwOCwyMjM1MCwyMjU3MCwyMzg4NCwyNDg2MywyNTAyMiwyNTEyMSwyNTk1NCwyNjU3NywyNzIw'@; put 'NCwyODE4NywyOTk3NiwzMDEzMSwzMDQzNSwzMDY0MCwzMjA1OCwzNzAzOSwzNzk2OSwzNzk3MCw0MDg1MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyMTI4MywyMzcyNCwzMDAwMiwzMjk4NywzNzQ0MCwzODI5NiwyMTA4MywyMjUzNiwyMzAwNCwyMzcxMywyMzgzMSwyNDI0NywyNDM3OCwyNDM5NCwyNDk1MSwyNzc0MywzMDA3NCwzMDA4NiwzMTk2OCwzMjEx'@; put 'NSwzMjE3NywzMjY1MiwzMzEwOCwzMzMxMywzNDE5MywzNTEzNywzNTYxMSwzNzYyOCwzODQ3Nyw0MDAwNywyMDE3MSwyMDIxNSwyMDQ5MSwyMDk3NywyMjYwNywyNDg4NywyNDg5NCwyNDkzNiwyNTkxMywyNzExNCwyODQzMywzMDExNywzMDM0MiwzMDQyMiwzMTYyMywzMzQ0NSwzMzk5NSw2'@; put 'Mzc0NCwzNzc5OSwzODI4MywyMTg4OCwyMzQ1OCwyMjM1Myw2Mzc0NSwzMTkyMywzMjY5NywzNzMwMSwyMDUyMCwyMTQzNSwyMzYyMSwyNDA0MCwyNTI5OCwyNTQ1NCwyNTgxOCwyNTgzMSwyODE5MiwyODg0NCwzMTA2NywzNjMxNywzNjM4Miw2Mzc0NiwzNjk4OSwzNzQ0NSwzNzYyNCwyMDA5'@; put 'NCwyMDIxNCwyMDU4MSwyNDA2MiwyNDMxNCwyNDgzOCwyNjk2NywzMzEzNywzNDM4OCwzNjQyMywzNzc0OSwzOTQ2NywyMDA2MiwyMDYyNSwyNjQ4MCwyNjY4OCwyMDc0NSwyMTEzMywyMTEzOCwyNzI5OCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzMDY1MiwzNzM5Miw0MDY2MCwyMTE2MywyNDYyMywzNjg1MCwyMDU1MiwyNTAwMSwyNTU4MSwyNTgwMiwyNjY4'@; put 'NCwyNzI2OCwyODYwOCwzMzE2MCwzNTIzMywzODU0OCwyMjUzMywyOTMwOSwyOTM1NiwyOTk1NiwzMjEyMSwzMjM2NSwzMjkzNywzNTIxMSwzNTcwMCwzNjk2Myw0MDI3MywyNTIyNSwyNzc3MCwyODUwMCwzMjA4MCwzMjU3MCwzNTM2MywyMDg2MCwyNDkwNiwzMTY0NSwzNTYwOSwzNzQ2Mywz'@; put 'Nzc3MiwyMDE0MCwyMDQzNSwyMDUxMCwyMDY3MCwyMDc0MiwyMTE4NSwyMTE5NywyMTM3NSwyMjM4NCwyMjY1OSwyNDIxOCwyNDQ2NSwyNDk1MCwyNTAwNCwyNTgwNiwyNTk2NCwyNjIyMywyNjI5OSwyNjM1NiwyNjc3NSwyODAzOSwyODgwNSwyODkxMywyOTg1NSwyOTg2MSwyOTg5OCwzMDE2'@; put 'OSwzMDgyOCwzMDk1NiwzMTQ1NSwzMTQ3OCwzMjA2OSwzMjE0NywzMjc4OSwzMjgzMSwzMzA1MSwzMzY4NiwzNTY4NiwzNjYyOSwzNjg4NSwzNzg1NywzODkxNSwzODk2OCwzOTUxNCwzOTkxMiwyMDQxOCwyMTg0MywyMjU4NiwyMjg2NSwyMzM5NSwyMzYyMiwyNDc2MCwyNTEwNiwyNjY5MCwy'@; put 'NjgwMCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyNjg1NiwyODMz'@; put 'MCwzMDAyOCwzMDMyOCwzMDkyNiwzMTI5MywzMTk5NSwzMjM2MywzMjM4MCwzNTMzNiwzNTQ4OSwzNTkwMywzODU0Miw0MDM4OCwyMTQ3NiwyMTQ4MSwyMTU3OCwyMTYxNywyMjI2NiwyMjk5MywyMzM5NiwyMzYxMSwyNDIzNSwyNTMzNSwyNTkxMSwyNTkyNSwyNTk3MCwyNjI3MiwyNjU0Mywy'@; put 'NzA3MywyNzgzNywzMDIwNCwzMDM1MiwzMDU5MCwzMTI5NSwzMjY2MCwzMjc3MSwzMjkyOSwzMzE2NywzMzUxMCwzMzUzMywzMzc3NiwzNDI0MSwzNDg2NSwzNDk5NiwzNTQ5Myw2Mzc0NywzNjc2NCwzNzY3OCwzODU5OSwzOTAxNSwzOTY0MCw0MDcyMywyMTc0MSwyNjAxMSwyNjM1NCwyNjc2'@; put 'NywzMTI5NiwzNTg5NSw0MDI4OCwyMjI1NiwyMjM3MiwyMzgyNSwyNjExOCwyNjgwMSwyNjgyOSwyODQxNCwyOTczNiwzNDk3NCwzOTkwOCwyNzc1Miw2Mzc0OCwzOTU5MiwyMDM3OSwyMDg0NCwyMDg0OSwyMTE1MSwyMzM4MCwyNDAzNywyNDY1NiwyNDY4NSwyNTMyOSwyNTUxMSwyNTkxNSwy'@; put 'OTY1NywzMTM1NCwzNDQ2NywzNjAwMiwzODc5OSwyMDAxOCwyMzUyMSwyNTA5NiwyNjUyNCwyOTkxNixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzMTE4NSwzMzc0NywzNTQ2MywzNTUwNiwzNjMyOCwzNjk0MiwzNzcwNywzODk4MiwyNDI3NSwyNzExMiwzNDMwMywzNzEwMSw2Mzc0OSwyMDg5NiwyMzQ0OCwyMzUzMiwyNDkzMSwyNjg3NCwyNzQ1NCwyODc0OCwy'@; put 'OTc0MywyOTkxMiwzMTY0OSwzMjU5MiwzMzczMywzNTI2NCwzNjAxMSwzODM2NCwzOTIwOCwyMTAzOCwyNDY2OSwyNTMyNCwzNjg2NiwyMDM2MiwyMDgwOSwyMTI4MSwyMjc0NSwyNDI5MSwyNjMzNiwyNzk2MCwyODgyNiwyOTM3OCwyOTY1NCwzMTU2OCwzMzAwOSwzNzk3OSwyMTM1MCwyNTQ5'@; put 'OSwzMjYxOSwyMDA1NCwyMDYwOCwyMjYwMiwyMjc1MCwyNDYxOCwyNDg3MSwyNTI5NiwyNzA4OCwzOTc0NSwyMzQzOSwzMjAyNCwzMjk0NSwzNjcwMywyMDEzMiwyMDY4OSwyMTY3NiwyMTkzMiwyMzMwOCwyMzk2OCwyNDAzOSwyNTg5OCwyNTkzNCwyNjY1NywyNzIxMSwyOTQwOSwzMDM1MCwz'@; put 'MDcwMywzMjA5NCwzMjc2MSwzMzE4NCwzNDEyNiwzNDUyNywzNjYxMSwzNjY4NiwzNzA2NiwzOTE3MSwzOTUwOSwzOTg1MSwxOTk5MiwyMDAzNywyMDA2MSwyMDE2NywyMDQ2NSwyMDg1NSwyMTI0NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyMTMxMiwyMTQ3NSwyMTQ3NywyMTY0NiwyMjAzNiwyMjM4OSwyMjQzNCwyMzQ5NSwyMzk0MywyNDI3MiwyNTA4NCwy'@; put 'NTMwNCwyNTkzNywyNjU1MiwyNjYwMSwyNzA4MywyNzQ3MiwyNzU5MCwyNzYyOCwyNzcxNCwyODMxNywyODc5MiwyOTM5OSwyOTU5MCwyOTY5OSwzMDY1NSwzMDY5NywzMTM1MCwzMjEyNywzMjc3NywzMzI3NiwzMzI4NSwzMzI5MCwzMzUwMywzNDkxNCwzNTYzNSwzNjA5MiwzNjU0NCwzNjg4'@; put 'MSwzNzA0MSwzNzQ3NiwzNzU1OCwzOTM3OCwzOTQ5Myw0MDE2OSw0MDQwNyw0MDg2MCwyMjI4MywyMzYxNiwzMzczOCwzODgxNiwzODgyNyw0MDYyOCwyMTUzMSwzMTM4NCwzMjY3NiwzNTAzMywzNjU1NywzNzA4OSwyMjUyOCwyMzYyNCwyNTQ5NiwzMTM5MSwyMzQ3MCwyNDMzOSwzMTM1Mywz'@; put 'MTQwNiwzMzQyMiwzNjUyNCwyMDUxOCwyMTA0OCwyMTI0MCwyMTM2NywyMjI4MCwyNTMzMSwyNTQ1OCwyNzQwMiwyODA5OSwzMDUxOSwyMTQxMywyOTUyNywzNDE1MiwzNjQ3MCwzODM1NywyNjQyNiwyNzMzMSwyODUyOCwzNTQzNywzNjU1NiwzOTI0Myw2Mzc1MCwyNjIzMSwyNzUxMiwzNjAy'@; put 'MCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzOTc0MCw2Mzc1MSwy'@; put 'MTQ4MywyMjMxNywyMjg2MiwyNTU0MiwyNzEzMSwyOTY3NCwzMDc4OSwzMTQxOCwzMTQyOSwzMTk5OCwzMzkwOSwzNTIxNSwzNjIxMSwzNjkxNywzODMxMiwyMTI0MywyMjM0MywzMDAyMywzMTU4NCwzMzc0MCwzNzQwNiw2Mzc1MiwyNzIyNCwyMDgxMSwyMTA2NywyMTEyNywyNTExOSwyNjg0'@; put 'MCwyNjk5NywzODU1MywyMDY3NywyMTE1NiwyMTIyMCwyNTAyNywyNjAyMCwyNjY4MSwyNzEzNSwyOTgyMiwzMTU2MywzMzQ2NSwzMzc3MSwzNTI1MCwzNTY0MSwzNjgxNywzOTI0MSw2Mzc1MywyMDE3MCwyMjkzNSwyNTgxMCwyNjEyOSwyNzI3OCwyOTc0OCwzMTEwNSwzMTE2NSwzMzQ0OSwz'@; put 'NDk0MiwzNDk0MywzNTE2Nyw2Mzc1NCwzNzY3MCwyMDIzNSwyMTQ1MCwyNDYxMywyNTIwMSwyNzc2MiwzMjAyNiwzMjEwMiwyMDEyMCwyMDgzNCwzMDY4NCwzMjk0MywyMDIyNSwyMDIzOCwyMDg1NCwyMDg2NCwyMTk4MCwyMjEyMCwyMjMzMSwyMjUyMiwyMjUyNCwyMjgwNCwyMjg1NSwyMjkz'@; put 'MSwyMzQ5MiwyMzY5NiwyMzgyMiwyNDA0OSwyNDE5MCwyNDUyNCwyNTIxNiwyNjA3MSwyNjA4MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyNjM5OCwyNjM5OSwyNjQ2MiwyNjgyNywyNjgyMCwyNzIzMSwyNzQ1MCwyNzY4MywyNzc3MywyNzc3OCwyODEwMywyOTU5MiwyOTczNCwyOTczOCwyOTgyNiwyOTg1OSwzMDA3MiwzMDA3OSwzMDg0OSwzMDk1OSwzMTA0'@; put 'MSwzMTA0NywzMTA0OCwzMTA5OCwzMTYzNywzMmUzLDMyMTg2LDMyNjQ4LDMyNzc0LDMyODEzLDMyOTA4LDM1MzUyLDM1NjYzLDM1OTEyLDM2MjE1LDM3NjY1LDM3NjY4LDM5MTM4LDM5MjQ5LDM5NDM4LDM5NDM5LDM5NTI1LDQwNTk0LDMyMjAyLDIwMzQyLDIxNTEzLDI1MzI2LDI2NzA4LDM3'@; put 'MzI5LDIxOTMxLDIwNzk0LDYzNzU1LDYzNzU2LDIzMDY4LDI1MDYyLDYzNzU3LDI1Mjk1LDI1MzQzLDYzNzU4LDYzNzU5LDYzNzYwLDYzNzYxLDYzNzYyLDYzNzYzLDM3MDI3LDYzNzY0LDYzNzY1LDYzNzY2LDYzNzY3LDYzNzY4LDM1NTgyLDYzNzY5LDYzNzcwLDYzNzcxLDYzNzcyLDI2MjYy'@; put 'LDYzNzczLDI5MDE0LDYzNzc0LDYzNzc1LDM4NjI3LDYzNzc2LDI1NDIzLDI1NDY2LDIxMzM1LDYzNzc3LDI2NTExLDI2OTc2LDI4Mjc1LDYzNzc4LDMwMDA3LDYzNzc5LDYzNzgwLDYzNzgxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDMyMDEzLDYzNzgyLDYzNzgzLDM0OTMwLDIyMjE4LDIzMDY0LDYzNzg0LDYzNzg1LDYzNzg2LDYzNzg3LDYzNzg4LDIwMDM1'@; put 'LDYzNzg5LDIwODM5LDIyODU2LDI2NjA4LDMyNzg0LDYzNzkwLDIyODk5LDI0MTgwLDI1NzU0LDMxMTc4LDI0NTY1LDI0Njg0LDI1Mjg4LDI1NDY3LDIzNTI3LDIzNTExLDIxMTYyLDYzNzkxLDIyOTAwLDI0MzYxLDI0NTk0LDYzNzkyLDYzNzkzLDYzNzk0LDI5Nzg1LDYzNzk1LDYzNzk2LDYz'@; put 'Nzk3LDYzNzk4LDYzNzk5LDYzODAwLDM5Mzc3LDYzODAxLDYzODAyLDYzODAzLDYzODA0LDYzODA1LDYzODA2LDYzODA3LDYzODA4LDYzODA5LDYzODEwLDYzODExLDI4NjExLDYzODEyLDYzODEzLDMzMjE1LDM2Nzg2LDI0ODE3LDYzODE0LDYzODE1LDMzMTI2LDYzODE2LDYzODE3LDIzNjE1'@; put 'LDYzODE4LDYzODE5LDYzODIwLDYzODIxLDYzODIyLDYzODIzLDYzODI0LDYzODI1LDIzMjczLDM1MzY1LDI2NDkxLDMyMDE2LDYzODI2LDYzODI3LDYzODI4LDYzODI5LDYzODMwLDYzODMxLDMzMDIxLDYzODMyLDYzODMzLDIzNjEyLDI3ODc3LDIxMzExLDI4MzQ2LDIyODEwLDMzNTkwLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDIwMDI1LDIwMTUwLDIwMjk0'@; put 'LDIxOTM0LDIyMjk2LDIyNzI3LDI0NDA2LDI2MDM5LDI2MDg2LDI3MjY0LDI3NTczLDI4MjM3LDMwNzAxLDMxNDcxLDMxNzc0LDMyMjIyLDM0NTA3LDM0OTYyLDM3MTcwLDM3NzIzLDI1Nzg3LDI4NjA2LDI5NTYyLDMwMTM2LDM2OTQ4LDIxODQ2LDIyMzQ5LDI1MDE4LDI1ODEyLDI2MzExLDI4'@; put 'MTI5LDI4MjUxLDI4NTI1LDI4NjAxLDMwMTkyLDMyODM1LDMzMjEzLDM0MTEzLDM1MjAzLDM1NTI3LDM1Njc0LDM3NjYzLDI3Nzk1LDMwMDM1LDMxNTcyLDM2MzY3LDM2OTU3LDIxNzc2LDIyNTMwLDIyNjE2LDI0MTYyLDI1MDk1LDI1NzU4LDI2ODQ4LDMwMDcwLDMxOTU4LDM0NzM5LDQwNjgw'@; put 'LDIwMTk1LDIyNDA4LDIyMzgyLDIyODIzLDIzNTY1LDIzNzI5LDI0MTE4LDI0NDUzLDI1MTQwLDI1ODI1LDI5NjE5LDMzMjc0LDM0OTU1LDM2MDI0LDM4NTM4LDQwNjY3LDIzNDI5LDI0NTAzLDI0NzU1LDIwNDk4LDIwOTkyLDIxMDQwLDIyMjk0LDIyNTgxLDIyNjE1LDIzNTY2LDIzNjQ4LDIz'@; put 'Nzk4LDIzOTQ3LDI0MjMwLDI0NDY2LDI0NzY0LDI1MzYxLDI1NDgxLDI1NjIzLDI2NjkxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDI2ODczLDI3MzMwLDI4MTIwLDI4MTkzLDI4MzcyLDI4NjQ0LDI5MTgyLDMwNDI4LDMwNTg1LDMxMTUzLDMxMjkxLDMzNzk2LDM1MjQxLDM2MDc3LDM2MzM5LDM2NDI0LDM2ODY3LDM2ODg0LDM2OTQ3LDM3MTE3LDM3NzA5LDM4'@; put 'NTE4LDM4ODc2LDI3NjAyLDI4Njc4LDI5MjcyLDI5MzQ2LDI5NTQ0LDMwNTYzLDMxMTY3LDMxNzE2LDMyNDExLDM1NzEyLDIyNjk3LDI0Nzc1LDI1OTU4LDI2MTA5LDI2MzAyLDI3Nzg4LDI4OTU4LDI5MTI5LDM1OTMwLDM4OTMxLDIwMDc3LDMxMzYxLDIwMTg5LDIwOTA4LDIwOTQxLDIxMjA1'@; put 'LDIxNTE2LDI0OTk5LDI2NDgxLDI2NzA0LDI2ODQ3LDI3OTM0LDI4NTQwLDMwMTQwLDMwNjQzLDMxNDYxLDMzMDEyLDMzODkxLDM3NTA5LDIwODI4LDI2MDA3LDI2NDYwLDI2NTE1LDMwMTY4LDMxNDMxLDMzNjUxLDYzODM0LDM1OTEwLDM2ODg3LDM4OTU3LDIzNjYzLDMzMjE2LDMzNDM0LDM2'@; put 'OTI5LDM2OTc1LDM3Mzg5LDI0NDcxLDIzOTY1LDI3MjI1LDI5MTI4LDMwMzMxLDMxNTYxLDM0Mjc2LDM1NTg4LDM3MTU5LDM5NDcyLDIxODk1LDI1MDc4LDYzODM1LDMwMzEzLDMyNjQ1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDM0MzY3LDM0NzQ2LDM1MDY0LDM3MDA3LDYzODM2LDI3OTMxLDI4ODg5LDI5NjYyLDMyMDk3LDMzODUzLDYzODM3LDM3MjI2LDM5'@; put 'NDA5LDYzODM4LDIwMDk4LDIxMzY1LDI3Mzk2LDI3NDEwLDI4NzM0LDI5MjExLDM0MzQ5LDQwNDc4LDIxMDY4LDM2NzcxLDIzODg4LDI1ODI5LDI1OTAwLDI3NDE0LDI4NjUxLDMxODExLDMyNDEyLDM0MjUzLDM1MTcyLDM1MjYxLDI1Mjg5LDMzMjQwLDM0ODQ3LDI0MjY2LDI2MzkxLDI4MDEw'@; put 'LDI5NDM2LDI5NzAxLDI5ODA3LDM0NjkwLDM3MDg2LDIwMzU4LDIzODIxLDI0NDgwLDMzODAyLDIwOTE5LDI1NTA0LDMwMDUzLDIwMTQyLDIwNDg2LDIwODQxLDIwOTM3LDI2NzUzLDI3MTUzLDMxOTE4LDMxOTIxLDMxOTc1LDMzMzkxLDM1NTM4LDM2NjM1LDM3MzI3LDIwNDA2LDIwNzkxLDIx'@; put 'MjM3LDIxNTcwLDI0MzAwLDI0OTQyLDI1MTUwLDI2MDUzLDI3MzU0LDI4NjcwLDMxMDE4LDM0MjY4LDM0ODUxLDM4MzE3LDM5NTIyLDM5NTMwLDQwNTk5LDQwNjU0LDIxMTQ3LDI2MzEwLDI3NTExLDI4NzAxLDMxMDE5LDM2NzA2LDM4NzIyLDI0OTc2LDI1MDg4LDI1ODkxLDI4NDUxLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDI5MDAxLDI5ODMzLDMyMjQ0LDMy'@; put 'ODc5LDM0MDMwLDM2NjQ2LDM2ODk5LDM3NzA2LDIwOTI1LDIxMDE1LDIxMTU1LDI3OTE2LDI4ODcyLDM1MDEwLDI0MjY1LDI1OTg2LDI3NTY2LDI4NjEwLDMxODA2LDI5NTU3LDIwMTk2LDIwMjc4LDIyMjY1LDYzODM5LDIzNzM4LDIzOTk0LDI0NjA0LDI5NjE4LDMxNTMzLDMyNjY2LDMyNzE4'@; put 'LDMyODM4LDM2ODk0LDM3NDI4LDM4NjQ2LDM4NzI4LDM4OTM2LDQwODAxLDIwMzYzLDI4NTgzLDMxMTUwLDM3MzAwLDM4NTgzLDIxMjE0LDYzODQwLDI1NzM2LDI1Nzk2LDI3MzQ3LDI4NTEwLDI4Njk2LDI5MjAwLDMwNDM5LDMyNzY5LDM0MzEwLDM0Mzk2LDM2MzM1LDM2NjEzLDM4NzA2LDM5'@; put 'NzkxLDQwNDQyLDQwNTY1LDMwODYwLDMxMTAzLDMyMTYwLDMzNzM3LDM3NjM2LDQwNTc1LDQwNTk1LDM1NTQyLDIyNzUxLDI0MzI0LDI2NDA3LDI4NzExLDI5OTAzLDMxODQwLDMyODk0LDIwNzY5LDI4NzEyLDI5MjgyLDMwOTIyLDM2MDM0LDM2MDU4LDM2MDg0LDM4NjQ3LDIwMTAyLDIwNjk4'@; put 'LDIzNTM0LDI0Mjc4LDI2MDA5LDI5MTM0LDMwMjc0LDMwNjM3LDMyODQyLDM0MDQ0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDM2OTg4LDM5NzE5LDQwODQ1LDIyNzQ0LDIzMTA1LDIzNjUwLDI3MTU1LDI4MTIyLDI4NDMxLDMwMjY3LDMyMDQ3LDMyMzExLDM0MDc4LDM1MTI4LDM3ODYwLDM4NDc1LDIxMTI5LDI2MDY2LDI2NjExLDI3MDYwLDI3OTY5LDI4MzE2'@; put 'LDI4Njg3LDI5NzA1LDI5NzkyLDMwMDQxLDMwMjQ0LDMwODI3LDM1NjI4LDM5MDA2LDIwODQ1LDI1MTM0LDM4NTIwLDIwMzc0LDIwNTIzLDIzODMzLDI4MTM4LDMyMTg0LDM2NjUwLDI0NDU5LDI0OTAwLDI2NjQ3LDYzODQxLDM4NTM0LDIxMjAyLDMyOTA3LDIwOTU2LDIwOTQwLDI2OTc0LDMx'@; put 'MjYwLDMyMTkwLDMzNzc3LDM4NTE3LDIwNDQyLDIxMDMzLDIxNDAwLDIxNTE5LDIxNzc0LDIzNjUzLDI0NzQzLDI2NDQ2LDI2NzkyLDI4MDEyLDI5MzEzLDI5NDMyLDI5NzAyLDI5ODI3LDYzODQyLDMwMTc4LDMxODUyLDMyNjMzLDMyNjk2LDMzNjczLDM1MDIzLDM1MDQxLDM3MzI0LDM3MzI4'@; put 'LDM4NjI2LDM5ODgxLDIxNTMzLDI4NTQyLDI5MTM2LDI5ODQ4LDM0Mjk4LDM2NTIyLDM4NTYzLDQwMDIzLDQwNjA3LDI2NTE5LDI4MTA3LDI5NzQ3LDMzMjU2LDM4Njc4LDMwNzY0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDMxNDM1LDMxNTIwLDMxODkwLDI1NzA1LDI5ODAyLDMwMTk0LDMwOTA4LDMwOTUyLDM5MzQwLDM5NzY0LDQwNjM1LDIzNTE4LDI0MTQ5'@; put 'LDI4NDQ4LDMzMTgwLDMzNzA3LDM3ZTMsMTk5NzUsMjEzMjUsMjMwODEsMjQwMTgsMjQzOTgsMjQ5MzAsMjU0MDUsMjYyMTcsMjYzNjQsMjg0MTUsMjg0NTksMjg3NzEsMzA2MjIsMzM4MzYsMzQwNjcsMzQ4NzUsMzY2MjcsMzkyMzcsMzk5OTUsMjE3ODgsMjUyNzMsMjY0MTEsMjc4MTksMzM1'@; put 'NDUsMzUxNzgsMzg3NzgsMjAxMjksMjI5MTYsMjQ1MzYsMjQ1MzcsMjYzOTUsMzIxNzgsMzI1OTYsMzM0MjYsMzM1NzksMzM3MjUsMzY2MzgsMzcwMTcsMjI0NzUsMjI5NjksMjMxODYsMjM1MDQsMjYxNTEsMjY1MjIsMjY3NTcsMjc1OTksMjkwMjgsMzI2MjksMzYwMjMsMzYwNjcsMzY5OTMs'@; put 'Mzk3NDksMzMwMzIsMzU5NzgsMzg0NzYsMzk0ODgsNDA2MTMsMjMzOTEsMjc2NjcsMjk0NjcsMzA0NTAsMzA0MzEsMzM4MDQsMjA5MDYsMzUyMTksMjA4MTMsMjA4ODUsMjExOTMsMjY4MjUsMjc3OTYsMzA0NjgsMzA0OTYsMzIxOTEsMzIyMzYsMzg3NTQsNDA2MjksMjgzNTcsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzQwNjUsMjA5MDEsMjE1MTcsMjE2Mjks'@; put 'MjYxMjYsMjYyNjksMjY5MTksMjgzMTksMzAzOTksMzA2MDksMzM1NTksMzM5ODYsMzQ3MTksMzcyMjUsMzc1MjgsNDAxODAsMzQ5NDYsMjAzOTgsMjA4ODIsMjEyMTUsMjI5ODIsMjQxMjUsMjQ5MTcsMjU3MjAsMjU3MjEsMjYyODYsMjY1NzYsMjcxNjksMjc1OTcsMjc2MTEsMjkyNzksMjky'@; put 'ODEsMjk3NjEsMzA1MjAsMzA2ODMsMzI3OTEsMzM0NjgsMzM1NDEsMzU1ODQsMzU2MjQsMzU5ODAsMjY0MDgsMjc3OTIsMjkyODcsMzA0NDYsMzA1NjYsMzEzMDIsNDAzNjEsMjc1MTksMjc3OTQsMjI4MTgsMjY0MDYsMzM5NDUsMjEzNTksMjI2NzUsMjI5MzcsMjQyODcsMjU1NTEsMjYxNjQs'@; put 'MjY0ODMsMjgyMTgsMjk0ODMsMzE0NDcsMzM0OTUsMzc2NzIsMjEyMDksMjQwNDMsMjUwMDYsMjUwMzUsMjUwOTgsMjUyODcsMjU3NzEsMjYwODAsMjY5NjksMjc0OTQsMjc1OTUsMjg5NjEsMjk2ODcsMzAwNDUsMzIzMjYsMzMzMTAsMzM1MzgsMzQxNTQsMzU0OTEsMzYwMzEsMzg2OTUsNDAy'@; put 'ODksMjI2OTYsNDA2NjQsMjA0OTcsMjEwMDYsMjE1NjMsMjE4MzksMjU5OTEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjc3NjYsMzIwMTAsMzIwMTEsMzI4NjIsMzQ0NDIsMzgyNzIsMzg2MzksMjEyNDcsMjc3OTcsMjkyODksMjE2MTksMjMxOTQsMjM2MTQsMjM4ODMsMjQzOTYsMjQ0OTQsMjY0MTAsMjY4MDYsMjY5NzksMjgyMjAsMjgyMjgsMzA0NzMsMzE4'@; put 'NTksMzI2NTQsMzQxODMsMzU1OTgsMzY4NTUsMzg3NTMsNDA2OTIsMjM3MzUsMjQ3NTgsMjQ4NDUsMjUwMDMsMjU5MzUsMjYxMDcsMjYxMDgsMjc2NjUsMjc4ODcsMjk1OTksMjk2NDEsMzIyMjUsMzgyOTIsMjM0OTQsMzQ1ODgsMzU2MDAsMjEwODUsMjEzMzgsMjUyOTMsMjU2MTUsMjU3Nzgs'@; put 'MjY0MjAsMjcxOTIsMjc4NTAsMjk2MzIsMjk4NTQsMzE2MzYsMzE4OTMsMzIyODMsMzMxNjIsMzMzMzQsMzQxODAsMzY4NDMsMzg2NDksMzkzNjEsMjAyNzYsMjEzMjIsMjE0NTMsMjE0NjcsMjUyOTIsMjU2NDQsMjU4NTYsMjYwMDEsMjcwNzUsMjc4ODYsMjg1MDQsMjk2NzcsMzAwMzYsMzAy'@; put 'NDIsMzA0MzYsMzA0NjAsMzA5MjgsMzA5NzEsMzEwMjAsMzIwNzAsMzMzMjQsMzQ3ODQsMzY4MjAsMzg5MzAsMzkxNTEsMjExODcsMjUzMDAsMjU3NjUsMjgxOTYsMjg0OTcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzAzMzIsMzYyOTksMzcyOTcsMzc0NzQsMzk2NjIsMzk3NDcsMjA1MTUsMjA2MjEsMjIzNDYsMjI5NTIsMjM1OTIsMjQxMzUsMjQ0MzksMjUx'@; put 'NTEsMjU5MTgsMjYwNDEsMjYwNDksMjYxMjEsMjY1MDcsMjcwMzYsMjgzNTQsMzA5MTcsMzIwMzMsMzI5MzgsMzMxNTIsMzMzMjMsMzM0NTksMzM5NTMsMzQ0NDQsMzUzNzAsMzU2MDcsMzcwMzAsMzg0NTAsNDA4NDgsMjA0OTMsMjA0NjcsNjM4NDMsMjI1MjEsMjQ0NzIsMjUzMDgsMjU0OTAs'@; put 'MjY0NzksMjgyMjcsMjg5NTMsMzA0MDMsMzI5NzIsMzI5ODYsMzUwNjAsMzUwNjEsMzUwOTcsMzYwNjQsMzY2NDksMzcxOTcsMzg1MDYsMjAyNzEsMjAzMzYsMjQwOTEsMjY1NzUsMjY2NTgsMzAzMzMsMzAzMzQsMzk3NDgsMjQxNjEsMjcxNDYsMjkwMzMsMjkxNDAsMzAwNTgsNjM4NDQsMzIz'@; put 'MjEsMzQxMTUsMzQyODEsMzkxMzIsMjAyNDAsMzE1NjcsMzI2MjQsMzgzMDksMjA5NjEsMjQwNzAsMjY4MDUsMjc3MTAsMjc3MjYsMjc4NjcsMjkzNTksMzE2ODQsMzM1MzksMjc4NjEsMjk3NTQsMjA3MzEsMjExMjgsMjI3MjEsMjU4MTYsMjcyODcsMjk4NjMsMzAyOTQsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzA4ODcsMzQzMjcsMzgzNzAsMzg3MTMsNjM4'@; put 'NDUsMjEzNDIsMjQzMjEsMzU3MjIsMzY3NzYsMzY3ODMsMzcwMDIsMjEwMjksMzA2MjksNDAwMDksNDA3MTIsMTk5OTMsMjA0ODIsMjA4NTMsMjM2NDMsMjQxODMsMjYxNDIsMjYxNzAsMjY1NjQsMjY4MjEsMjg4NTEsMjk5NTMsMzAxNDksMzExNzcsMzE0NTMsMzY2NDcsMzkyMDAsMzk0MzIs'@; put 'MjA0NDUsMjI1NjEsMjI1NzcsMjM1NDIsMjYyMjIsMjc0OTMsMjc5MjEsMjgyODIsMjg1NDEsMjk2NjgsMjk5OTUsMzM3NjksMzUwMzYsMzUwOTEsMzU2NzYsMzY2MjgsMjAyMzksMjA2OTMsMjEyNjQsMjEzNDAsMjM0NDMsMjQ0ODksMjYzODEsMzExMTksMzMxNDUsMzM1ODMsMzQwNjgsMzUw'@; put 'NzksMzUyMDYsMzY2NjUsMzY2NjcsMzkzMzMsMzk5NTQsMjY0MTIsMjAwODYsMjA0NzIsMjI4NTcsMjM1NTMsMjM3OTEsMjM3OTIsMjU0NDcsMjY4MzQsMjg5MjUsMjkwOTAsMjk3MzksMzIyOTksMzQwMjgsMzQ1NjIsMzY4OTgsMzc1ODYsNDAxNzksMTk5ODEsMjAxODQsMjA0NjMsMjA2MTMs'@; put 'MjEwNzgsMjExMDMsMjE1NDIsMjE2NDgsMjI0OTYsMjI4MjcsMjMxNDIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjMzODYsMjM0MTMsMjM1MDAsMjQyMjAsNjM4NDYsMjUyMDYsMjU5NzUsMjYwMjMsMjgwMTQsMjgzMjUsMjkyMzgsMzE1MjYsMzE4MDcsMzI1NjYsMzMxMDQsMzMxMDUsMzMxNzgsMzMzNDQsMzM0MzMsMzM3MDUsMzUzMzEsMzZlMywzNjA3MCwz'@; put 'NjA5MSwzNjIxMiwzNjI4MiwzNzA5NiwzNzM0MCwzODQyOCwzODQ2OCwzOTM4NSw0MDE2NywyMTI3MSwyMDk5OCwyMTU0NSwyMjEzMiwyMjcwNywyMjg2OCwyMjg5NCwyNDU3NSwyNDk5NiwyNTE5OCwyNjEyOCwyNzc3NCwyODk1NCwzMDQwNiwzMTg4MSwzMTk2NiwzMjAyNywzMzQ1MiwzNjAz'@; put 'MywzODY0MCw2Mzg0NywyMDMxNSwyNDM0MywyNDQ0NywyNTI4MiwyMzg0OSwyNjM3OSwyNjg0MiwzMDg0NCwzMjMyMyw0MDMwMCwxOTk4OSwyMDYzMywyMTI2OSwyMTI5MCwyMTMyOSwyMjkxNSwyMzEzOCwyNDE5OSwyNDc1NCwyNDk3MCwyNTE2MSwyNTIwOSwyNmUzLDI2NTAzLDI3MDQ3LDI3'@; put 'NjA0LDI3NjA2LDI3NjA3LDI3NjA4LDI3ODMyLDYzODQ4LDI5NzQ5LDMwMjAyLDMwNzM4LDMwODY1LDMxMTg5LDMxMTkyLDMxODc1LDMyMjAzLDMyNzM3LDMyOTMzLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDMzMDg2LDMzMjE4LDMzNzc4LDM0NTg2LDM1MDQ4LDM1NTEzLDM1NjkyLDM2MDI3LDM3MTQ1LDM4NzUwLDM5MTMxLDQwNzYzLDIyMTg4LDIzMzM4LDI0'@; put 'NDI4LDI1OTk2LDI3MzE1LDI3NTY3LDI3OTk2LDI4NjU3LDI4NjkzLDI5Mjc3LDI5NjEzLDM2MDA3LDM2MDUxLDM4OTcxLDI0OTc3LDI3NzAzLDMyODU2LDM5NDI1LDIwMDQ1LDIwMTA3LDIwMTIzLDIwMTgxLDIwMjgyLDIwMjg0LDIwMzUxLDIwNDQ3LDIwNzM1LDIxNDkwLDIxNDk2LDIxNzY2'@; put 'LDIxOTg3LDIyMjM1LDIyNzYzLDIyODgyLDIzMDU3LDIzNTMxLDIzNTQ2LDIzNTU2LDI0MDUxLDI0MTA3LDI0NDczLDI0NjA1LDI1NDQ4LDI2MDEyLDI2MDMxLDI2NjE0LDI2NjE5LDI2Nzk3LDI3NTE1LDI3ODAxLDI3ODYzLDI4MTk1LDI4NjgxLDI5NTA5LDMwNzIyLDMxMDM4LDMxMDQwLDMx'@; put 'MDcyLDMxMTY5LDMxNzIxLDMyMDIzLDMyMTE0LDMyOTAyLDMzMjkzLDMzNjc4LDM0MDAxLDM0NTAzLDM1MDM5LDM1NDA4LDM1NDIyLDM1NjEzLDM2MDYwLDM2MTk4LDM2NzgxLDM3MDM0LDM5MTY0LDM5MzkxLDQwNjA1LDIxMDY2LDYzODQ5LDI2Mzg4LDYzODUwLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDIwNjMyLDIxMDM0LDIzNjY1LDI1OTU1LDI3NzMzLDI5'@; put 'NjQyLDI5OTg3LDMwMTA5LDMxNjM5LDMzOTQ4LDM3MjQwLDM4NzA0LDIwMDg3LDI1NzQ2LDI3NTc4LDI5MDIyLDM0MjE3LDE5OTc3LDYzODUxLDI2NDQxLDI2ODYyLDI4MTgzLDMzNDM5LDM0MDcyLDM0OTIzLDI1NTkxLDI4NTQ1LDM3Mzk0LDM5MDg3LDE5OTc4LDIwNjYzLDIwNjg3LDIwNzY3'@; put 'LDIxODMwLDIxOTMwLDIyMDM5LDIzMzYwLDIzNTc3LDIzNzc2LDI0MTIwLDI0MjAyLDI0MjI0LDI0MjU4LDI0ODE5LDI2NzA1LDI3MjMzLDI4MjQ4LDI5MjQ1LDI5MjQ4LDI5Mzc2LDMwNDU2LDMxMDc3LDMxNjY1LDMyNzI0LDM1MDU5LDM1MzE2LDM1NDQzLDM1OTM3LDM2MDYyLDM4Njg0LDIy'@; put 'NjIyLDI5ODg1LDM2MDkzLDIxOTU5LDYzODUyLDMxMzI5LDMyMDM0LDMzMzk0LDI5Mjk4LDI5OTgzLDI5OTg5LDYzODUzLDMxNTEzLDIyNjYxLDIyNzc5LDIzOTk2LDI0MjA3LDI0MjQ2LDI0NDY0LDI0NjYxLDI1MjM0LDI1NDcxLDI1OTMzLDI2MjU3LDI2MzI5LDI2MzYwLDI2NjQ2LDI2ODY2'@; put 'LDI5MzEyLDI5NzkwLDMxNTk4LDMyMTEwLDMyMjE0LDMyNjI2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLDMyOTk3LDMzMjk4LDM0MjIzLDM1MTk5LDM1NDc1LDM2ODkzLDM3NjA0LDQwNjUzLDQwNzM2LDIyODA1LDIyODkzLDI0MTA5LDI0Nzk2LDI2MTMyLDI2MjI3LDI2NTEyLDI3NzI4LDI4MTAxLDI4NTExLDMwNzA3LDMwODg5LDMzOTkwLDM3MzIzLDM3Njc1'@; put 'LDIwMTg1LDIwNjgyLDIwODA4LDIxODkyLDIzMzA3LDIzNDU5LDI1MTU5LDI1OTgyLDI2MDU5LDI4MjEwLDI5MDUzLDI5Njk3LDI5NzY0LDI5ODMxLDI5ODg3LDMwMzE2LDMxMTQ2LDMyMjE4LDMyMzQxLDMyNjgwLDMzMTQ2LDMzMjAzLDMzMzM3LDM0MzMwLDM0Nzk2LDM1NDQ1LDM2MzIzLDM2'@; put 'OTg0LDM3NTIxLDM3OTI1LDM5MjQ1LDM5ODU0LDIxMzUyLDIzNjMzLDI2OTY0LDI3ODQ0LDI3OTQ1LDI4MjAzLDMzMjkyLDM0MjAzLDM1MTMxLDM1MzczLDM1NDk4LDM4NjM0LDQwODA3LDIxMDg5LDI2Mjk3LDI3NTcwLDMyNDA2LDM0ODE0LDM2MTA5LDM4Mjc1LDM4NDkzLDI1ODg1LDI4MDQx'@; put 'LDI5MTY2LDYzODU0LDIyNDc4LDIyOTk1LDIzNDY4LDI0NjE1LDI0ODI2LDI1MTA0LDI2MTQzLDI2MjA3LDI5NDgxLDI5Njg5LDMwNDI3LDMwNDY1LDMxNTk2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDMyODU0LDMyODgyLDMzMTI1LDM1NDg4LDM3MjY2LDE5OTkwLDIxMjE4LDI3NTA2LDI3OTI3LDMxMjM3LDMxNTQ1LDMyMDQ4LDYzODU1LDM2MDE2LDIxNDg0'@; put 'LDIyMDYzLDIyNjA5LDIzNDc3LDIzNTY3LDIzNTY5LDI0MDM0LDI1MTUyLDI1NDc1LDI1NjIwLDI2MTU3LDI2ODAzLDI3ODM2LDI4MDQwLDI4MzM1LDI4NzAzLDI4ODM2LDI5MTM4LDI5OTkwLDMwMDk1LDMwMDk0LDMwMjMzLDMxNTA1LDMxNzEyLDMxNzg3LDMyMDMyLDMyMDU3LDM0MDkyLDM0'@; put 'MTU3LDM0MzExLDM1MzgwLDM2ODc3LDM2OTYxLDM3MDQ1LDM3NTU5LDM4OTAyLDM5NDc5LDIwNDM5LDIzNjYwLDI2NDYzLDI4MDQ5LDMxOTAzLDMyMzk2LDM1NjA2LDM2MTE4LDM2ODk1LDIzNDAzLDI0MDYxLDI1NjEzLDMzOTg0LDM2OTU2LDM5MTM3LDI5NTc1LDIzNDM1LDI0NzMwLDI2NDk0'@; put 'LDI4MTI2LDM1MzU5LDM1NDk0LDM2ODY1LDM4OTI0LDIxMDQ3LDYzODU2LDI4NzUzLDMwODYyLDM3NzgyLDM0OTI4LDM3MzM1LDIwNDYyLDIxNDYzLDIyMDEzLDIyMjM0LDIyNDAyLDIyNzgxLDIzMjM0LDIzNDMyLDIzNzIzLDIzNzQ0LDI0MTAxLDI0ODMzLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDI1MTAxLDI1MTYzLDI1NDgwLDI1NjI4LDI1OTEwLDI1OTc2'@; put 'LDI3MTkzLDI3NTMwLDI3NzAwLDI3OTI5LDI4NDY1LDI5MTU5LDI5NDE3LDI5NTYwLDI5NzAzLDI5ODc0LDMwMjQ2LDMwNTYxLDMxMTY4LDMxMzE5LDMxNDY2LDMxOTI5LDMyMTQzLDMyMTcyLDMyMzUzLDMyNjcwLDMzMDY1LDMzNTg1LDMzOTM2LDM0MDEwLDM0MjgyLDM0OTY2LDM1NTA0LDM1'@; put 'NzI4LDM2NjY0LDM2OTMwLDM2OTk1LDM3MjI4LDM3NTI2LDM3NTYxLDM4NTM5LDM4NTY3LDM4NTY4LDM4NjE0LDM4NjU2LDM4OTIwLDM5MzE4LDM5NjM1LDM5NzA2LDIxNDYwLDIyNjU0LDIyODA5LDIzNDA4LDIzNDg3LDI4MTEzLDI4NTA2LDI5MDg3LDI5NzI5LDI5ODgxLDMyOTAxLDMzNzg5'@; put 'LDI0MDMzLDI0NDU1LDI0NDkwLDI0NjQyLDI2MDkyLDI2NjQyLDI2OTkxLDI3MjE5LDI3NTI5LDI3OTU3LDI4MTQ3LDI5NjY3LDMwNDYyLDMwNjM2LDMxNTY1LDMyMDIwLDMzMDU5LDMzMzA4LDMzNjAwLDM0MDM2LDM0MTQ3LDM1NDI2LDM1NTI0LDM3MjU1LDM3NjYyLDM4OTE4LDM5MzQ4LDI1'@; put 'MTAwLDM0ODk5LDM2ODQ4LDM3NDc3LDIzODE1LDIzODQ3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLDIzOTEzLDI5NzkxLDMzMTgxLDM0NjY0LDI4NjI5LDI1MzQyLDMyNzIyLDM1MTI2LDM1MTg2LDE5OTk4LDIwMDU2LDIwNzExLDIxMjEzLDIxMzE5LDI1MjE1LDI2MTE5LDMyMzYxLDM0ODIxLDM4NDk0LDIwMzY1LDIxMjczLDIyMDcwLDIyOTg3LDIzMjA0LDIz'@; put 'NjA4LDIzNjMwLDIzNjI5LDI0MDY2LDI0MzM3LDI0NjQzLDI2MDQ1LDI2MTU5LDI2MTc4LDI2NTU4LDI2NjEyLDI5NDY4LDMwNjkwLDMxMDM0LDMyNzA5LDMzOTQwLDMzOTk3LDM1MjIyLDM1NDMwLDM1NDMzLDM1NTUzLDM1OTI1LDM1OTYyLDIyNTE2LDIzNTA4LDI0MzM1LDI0Njg3LDI1MzI1'@; put 'LDI2ODkzLDI3NTQyLDI4MjUyLDI5MDYwLDMxNjk4LDM0NjQ1LDM1NjcyLDM2NjA2LDM5MTM1LDM5MTY2LDIwMjgwLDIwMzUzLDIwNDQ5LDIxNjI3LDIzMDcyLDIzNDgwLDI0ODkyLDI2MDMyLDI2MjE2LDI5MTgwLDMwMDAzLDMxMDcwLDMyMDUxLDMzMTAyLDMzMjUxLDMzNjg4LDM0MjE4LDM0'@; put 'MjU0LDM0NTYzLDM1MzM4LDM2NTIzLDM2NzYzLDYzODU3LDM2ODA1LDIyODMzLDIzNDYwLDIzNTI2LDI0NzEzLDIzNTI5LDIzNTYzLDI0NTE1LDI3Nzc3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDYzODU4LDI4MTQ1LDI4NjgzLDI5OTc4LDMzNDU1LDM1NTc0LDIwMTYwLDIxMzEzLDYzODU5LDM4NjE3LDI3NjYzLDIwMTI2LDIwNDIwLDIwODE4LDIxODU0LDIz'@; put 'MDc3LDIzNzg0LDI1MTA1LDI5MjczLDMzNDY5LDMzNzA2LDM0NTU4LDM0OTA1LDM1MzU3LDM4NDYzLDM4NTk3LDM5MTg3LDQwMjAxLDQwMjg1LDIyNTM4LDIzNzMxLDIzOTk3LDI0MTMyLDI0ODAxLDI0ODUzLDI1NTY5LDI3MTM4LDI4MTk3LDM3MTIyLDM3NzE2LDM4OTkwLDM5OTUyLDQwODIz'@; put 'LDIzNDMzLDIzNzM2LDI1MzUzLDI2MTkxLDI2Njk2LDMwNTI0LDM4NTkzLDM4Nzk3LDM4OTk2LDM5ODM5LDI2MDE3LDM1NTg1LDM2NTU1LDM4MzMyLDIxODEzLDIzNzIxLDI0MDIyLDI0MjQ1LDI2MjYzLDMwMjg0LDMzNzgwLDM4MzQzLDIyNzM5LDI1Mjc2LDI5MzkwLDQwMjMyLDIwMjA4LDIy'@; put 'ODMwLDI0NTkxLDI2MTcxLDI3NTIzLDMxMjA3LDQwMjMwLDIxMzk1LDIxNjk2LDIyNDY3LDIzODMwLDI0ODU5LDI2MzI2LDI4MDc5LDMwODYxLDMzNDA2LDM4NTUyLDM4NzI0LDIxMzgwLDI1MjEyLDI1NDk0LDI4MDgyLDMyMjY2LDMzMDk5LDM4OTg5LG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDI3Mzg3LDMyNTg4LDQwMzY3LDQwNDc0LDIwMDYzLDIwNTM5LDIw'@; put 'OTE4LDIyODEyLDI0ODI1LDI1NTkwLDI2OTI4LDI5MjQyLDMyODIyLDYzODYwLDM3MzI2LDI0MzY5LDYzODYxLDYzODYyLDMyMDA0LDMzNTA5LDMzOTAzLDMzOTc5LDM0Mjc3LDM2NDkzLDYzODYzLDIwMzM1LDYzODY0LDYzODY1LDIyNzU2LDIzMzYzLDI0NjY1LDI1NTYyLDI1ODgwLDI1OTY1'@; put 'LDI2MjY0LDYzODY2LDI2OTU0LDI3MTcxLDI3OTE1LDI4NjczLDI5MDM2LDMwMTYyLDMwMjIxLDMxMTU1LDMxMzQ0LDYzODY3LDMyNjUwLDYzODY4LDM1MTQwLDYzODY5LDM1NzMxLDM3MzEyLDM4NTI1LDYzODcwLDM5MTc4LDIyMjc2LDI0NDgxLDI2MDQ0LDI4NDE3LDMwMjA4LDMxMTQyLDM1'@; put 'NDg2LDM5MzQxLDM5NzcwLDQwODEyLDIwNzQwLDI1MDE0LDI1MjMzLDI3Mjc3LDMzMjIyLDIwNTQ3LDIyNTc2LDI0NDIyLDI4OTM3LDM1MzI4LDM1NTc4LDIzNDIwLDM0MzI2LDIwNDc0LDIwNzk2LDIyMTk2LDIyODUyLDI1NTEzLDI4MTUzLDIzOTc4LDI2OTg5LDIwODcwLDIwMTA0LDIwMzEz'@; put 'LDYzODcxLDYzODcyLDYzODczLDIyOTE0LDYzODc0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLDYzODc1LDI3NDg3LDI3NzQxLDYzODc2LDI5ODc3LDMwOTk4LDYzODc3LDMzMjg3LDMzMzQ5LDMzNTkzLDM2NjcxLDM2NzAxLDYzODc4LDM5MTkyLDYzODc5LDYzODgwLDYzODgxLDIwMTM0LDYzODgyLDIyNDk1LDI0NDQxLDI2MTMxLDYzODgzLDYzODg0LDMwMTIz'@; put 'LDMyMzc3LDM1Njk1LDYzODg1LDM2ODcwLDM5NTE1LDIyMTgxLDIyNTY3LDIzMDMyLDIzMDcxLDIzNDc2LDYzODg2LDI0MzEwLDYzODg3LDYzODg4LDI1NDI0LDI1NDAzLDYzODg5LDI2OTQxLDI3NzgzLDI3ODM5LDI4MDQ2LDI4MDUxLDI4MTQ5LDI4NDM2LDYzODkwLDI4ODk1LDI4OTgyLDI5'@; put 'MDE3LDYzODkxLDI5MTIzLDI5MTQxLDYzODkyLDMwNzk5LDMwODMxLDYzODkzLDMxNjA1LDMyMjI3LDYzODk0LDMyMzAzLDYzODk1LDM0ODkzLDM2NTc1LDYzODk2LDYzODk3LDYzODk4LDM3NDY3LDYzODk5LDQwMTgyLDYzOTAwLDYzOTAxLDYzOTAyLDI0NzA5LDI4MDM3LDYzOTAzLDI5MTA1'@; put 'LDYzOTA0LDYzOTA1LDM4MzIxLDIxNDIxLDYzOTA2LDYzOTA3LDYzOTA4LDI2NTc5LDYzOTA5LDI4ODE0LDI4OTc2LDI5NzQ0LDMzMzk4LDMzNDkwLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDYzOTEwLDM4MzMxLDM5NjUzLDQwNTczLDI2MzA4LDYzOTExLDI5MTIxLDMzODY1LDYzOTEyLDYzOTEzLDIyNjAzLDYzOTE0LDYzOTE1LDIzOTkyLDI0NDMzLDYzOTE2'@; put 'LDI2MTQ0LDI2MjU0LDI3MDAxLDI3MDU0LDI3NzA0LDI3ODkxLDI4MjE0LDI4NDgxLDI4NjM0LDI4Njk5LDI4NzE5LDI5MDA4LDI5MTUxLDI5NTUyLDYzOTE3LDI5Nzg3LDYzOTE4LDI5OTA4LDMwNDA4LDMxMzEwLDMyNDAzLDYzOTE5LDYzOTIwLDMzNTIxLDM1NDI0LDM2ODE0LDYzOTIxLDM3'@; put 'NzA0LDYzOTIyLDM4NjgxLDYzOTIzLDYzOTI0LDIwMDM0LDIwNTIyLDYzOTI1LDIxZTMsMjE0NzMsMjYzNTUsMjc3NTcsMjg2MTgsMjk0NTAsMzA1OTEsMzEzMzAsMzM0NTQsMzQyNjksMzQzMDYsNjM5MjYsMzUwMjgsMzU0MjcsMzU3MDksMzU5NDcsNjM5MjcsMzc1NTUsNjM5MjgsMzg2NzUs'@; put 'Mzg5MjgsMjAxMTYsMjAyMzcsMjA0MjUsMjA2NTgsMjEzMjAsMjE1NjYsMjE1NTUsMjE5NzgsMjI2MjYsMjI3MTQsMjI4ODcsMjMwNjcsMjM1MjQsMjQ3MzUsNjM5MjksMjUwMzQsMjU5NDIsMjYxMTEsMjYyMTIsMjY3OTEsMjc3MzgsMjg1OTUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjg4NzksMjkxMDAsMjk1MjIsMzE2MTMsMzQ1NjgsMzU0OTIsMzk5ODYs'@; put 'NDA3MTEsMjM2MjcsMjc3NzksMjk1MDgsMjk1NzcsMzc0MzQsMjgzMzEsMjk3OTcsMzAyMzksMzEzMzcsMzIyNzcsMzQzMTQsMjA4MDAsMjI3MjUsMjU3OTMsMjk5MzQsMjk5NzMsMzAzMjAsMzI3MDUsMzcwMTMsMzg2MDUsMzkyNTIsMjgxOTgsMjk5MjYsMzE0MDEsMzE0MDIsMzMyNTMsMzQ1'@; put 'MjEsMzQ2ODAsMzUzNTUsMjMxMTMsMjM0MzYsMjM0NTEsMjY3ODUsMjY4ODAsMjgwMDMsMjk2MDksMjk3MTUsMjk3NDAsMzA4NzEsMzIyMzMsMzI3NDcsMzMwNDgsMzMxMDksMzM2OTQsMzU5MTYsMzg0NDYsMzg5MjksMjYzNTIsMjQ0NDgsMjYxMDYsMjY1MDUsMjc3NTQsMjk1NzksMjA1MjUs'@; put 'MjMwNDMsMjc0OTgsMzA3MDIsMjI4MDYsMjM5MTYsMjQwMTMsMjk0NzcsMzAwMzEsNjM5MzAsNjM5MzEsMjA3MDksMjA5ODUsMjI1NzUsMjI4MjksMjI5MzQsMjMwMDIsMjM1MjUsNjM5MzIsNjM5MzMsMjM5NzAsMjUzMDMsMjU2MjIsMjU3NDcsMjU4NTQsNjM5MzQsMjYzMzIsNjM5MzUsMjcy'@; put 'MDgsNjM5MzYsMjkxODMsMjk3OTYsNjM5MzcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsMzEzNjgsMzE0MDcsMzIzMjcsMzIzNTAsMzI3NjgsMzMxMzYsNjM5MzgsMzQ3OTksMzUyMDEsMzU2MTYsMzY5NTMsNjM5MzksMzY5OTIsMzkyNTAsMjQ5NTgsMjc0NDIsMjgwMjAsMzIyODcsMzUxMDksMzY3ODUsMjA0MzMsMjA2NTMsMjA4ODcsMjExOTEsMjI0NzEsMjI2'@; put 'NjUsMjM0ODEsMjQyNDgsMjQ4OTgsMjcwMjksMjgwNDQsMjgyNjMsMjgzNDIsMjkwNzYsMjk3OTQsMjk5OTIsMjk5OTYsMzI4ODMsMzM1OTIsMzM5OTMsMzYzNjIsMzc3ODAsMzc4NTQsNjM5NDAsMjAxMTAsMjAzMDUsMjA1OTgsMjA3NzgsMjE0NDgsMjE0NTEsMjE0OTEsMjM0MzEsMjM1MDcs'@; put 'MjM1ODgsMjQ4NTgsMjQ5NjIsMjYxMDAsMjkyNzUsMjk1OTEsMjk3NjAsMzA0MDIsMzEwNTYsMzExMjEsMzExNjEsMzIwMDYsMzI3MDEsMzM0MTksMzQyNjEsMzQzOTgsMzY4MDIsMzY5MzUsMzcxMDksMzczNTQsMzg1MzMsMzg2MzIsMzg2MzMsMjEyMDYsMjQ0MjMsMjYwOTMsMjYxNjEsMjY2'@; put 'NzEsMjkwMjAsMzEyODYsMzcwNTcsMzg5MjIsMjAxMTMsNjM5NDEsMjcyMTgsMjc1NTAsMjg1NjAsMjkwNjUsMzI3OTIsMzM0NjQsMzQxMzEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzY5MzksMzg1NDksMzg2NDIsMzg5MDcsMzQwNzQsMzk3MjksMjAxMTIsMjkwNjYsMzg1OTYsMjA4MDMsMjE0MDcsMjE3MjksMjIyOTEsMjIyOTAsMjI0MzUsMjMxOTUsMjMy'@; put 'MzYsMjM0OTEsMjQ2MTYsMjQ4OTUsMjU1ODgsMjc3ODEsMjc5NjEsMjgyNzQsMjgzMDQsMjkyMzIsMjk1MDMsMjk3ODMsMzM0ODksMzQ5NDUsMzY2NzcsMzY5NjAsNjM5NDIsMzg0OTgsMzllMyw0MDIxOSwyNjM3NiwzNjIzNCwzNzQ3MCwyMDMwMSwyMDU1MywyMDcwMiwyMTM2MSwyMjI4NSwy'@; put 'Mjk5NiwyMzA0MSwyMzU2MSwyNDk0NCwyNjI1NiwyODIwNSwyOTIzNCwyOTc3MSwzMjIzOSwzMjk2MywzMzgwNiwzMzg5NCwzNDExMSwzNDY1NSwzNDkwNywzNTA5NiwzNTU4NiwzNjk0OSwzODg1OSwzOTc1OSwyMDA4MywyMDM2OSwyMDc1NCwyMDg0Miw2Mzk0MywyMTgwNywyMTkyOSwyMzQx'@; put 'OCwyMzQ2MSwyNDE4OCwyNDE4OSwyNDI1NCwyNDczNiwyNDc5OSwyNDg0MCwyNDg0MSwyNTU0MCwyNTkxMiwyNjM3Nyw2Mzk0NCwyNjU4MCwyNjU4Niw2Mzk0NSwyNjk3NywyNjk3OCwyNzgzMywyNzk0Myw2Mzk0NiwyODIxNiw2Mzk0NyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyODY0MSwyOTQ5NCwyOTQ5NSw2Mzk0OCwyOTc4OCwzMDAwMSw2Mzk0OSwzMDI5'@; put 'MCw2Mzk1MCw2Mzk1MSwzMjE3MywzMzI3OCwzMzg0OCwzNTAyOSwzNTQ4MCwzNTU0NywzNTU2NSwzNjQwMCwzNjQxOCwzNjkzOCwzNjkyNiwzNjk4NiwzNzE5MywzNzMyMSwzNzc0Miw2Mzk1Miw2Mzk1MywyMjUzNyw2Mzk1NCwyNzYwMywzMjkwNSwzMjk0Niw2Mzk1NSw2Mzk1NiwyMDgwMSwy'@; put 'Mjg5MSwyMzYwOSw2Mzk1Nyw2Mzk1OCwyODUxNiwyOTYwNywzMjk5NiwzNjEwMyw2Mzk1OSwzNzM5OSwzODI4Nyw2Mzk2MCw2Mzk2MSw2Mzk2Miw2Mzk2MywzMjg5NSwyNTEwMiwyODcwMCwzMjEwNCwzNDcwMSw2Mzk2NCwyMjQzMiwyNDY4MSwyNDkwMywyNzU3NSwzNTUxOCwzNzUwNCwzODU3'@; put 'NywyMDA1NywyMTUzNSwyODEzOSwzNDA5MywzODUxMiwzODg5OSwzOTE1MCwyNTU1OCwyNzg3NSwzNzAwOSwyMDk1NywyNTAzMywzMzIxMCw0MDQ0MSwyMDM4MSwyMDUwNiwyMDczNiwyMzQ1MiwyNDg0NywyNTA4NywyNTgzNiwyNjg4NSwyNzU4OSwzMDA5NywzMDY5MSwzMjY4MSwzMzM4MCwz'@; put 'NDE5MSwzNDgxMSwzNDkxNSwzNTUxNixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCwzNTY5NiwzNzI5MSwyMDEwOCwyMDE5NywyMDIzNCw2Mzk2NSw2Mzk2NiwyMjgzOSwyMzAxNiw2Mzk2NywyNDA1MCwyNDM0NywyNDQxMSwyNDYwOSw2Mzk2OCw2Mzk2OSw2Mzk3MCw2Mzk3MSwyOTI0NiwyOTY2OSw2Mzk3MiwzMDA2NCwzMDE1Nyw2Mzk3MywzMTIyNyw2Mzk3NCwz'@; put 'Mjc4MCwzMjgxOSwzMjkwMCwzMzUwNSwzMzYxNyw2Mzk3NSw2Mzk3NiwzNjAyOSwzNjAxOSwzNjk5OSw2Mzk3Nyw2Mzk3OCwzOTE1NiwzOTE4MCw2Mzk3OSw2Mzk4MCwyODcyNywzMDQxMCwzMjcxNCwzMjcxNiwzMjc2NCwzNTYxMCwyMDE1NCwyMDE2MSwyMDk5NSwyMTM2MCw2Mzk4MSwyMTY5'@; put 'MywyMjI0MCwyMzAzNSwyMzQ5MywyNDM0MSwyNDUyNSwyODI3MCw2Mzk4Miw2Mzk4MywzMjEwNiwzMzU4OSw2Mzk4NCwzNDQ1MSwzNTQ2OSw2Mzk4NSwzODc2NSwzODc3NSw2Mzk4Niw2Mzk4NywxOTk2OCwyMDMxNCwyMDM1MCwyMjc3NywyNjA4NSwyODMyMiwzNjkyMCwzNzgwOCwzOTM1Mywy'@; put 'MDIxOSwyMjc2NCwyMjkyMiwyMzAwMSwyNDY0MSw2Mzk4OCw2Mzk4OSwzMTI1Miw2Mzk5MCwzMzYxNSwzNjAzNSwyMDgzNywyMTMxNixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw2Mzk5MSw2Mzk5Miw2Mzk5MywyMDE3MywyMTA5NywyMzM4MSwzMzQ3MSwyMDE4MCwyMTA1MCwyMTY3MiwyMjk4NSwyMzAzOSwyMzM3NiwyMzM4MywyMzM4OCwyNDY3NSwyNDkwNCwy'@; put 'ODM2MywyODgyNSwyOTAzOCwyOTU3NCwyOTk0MywzMDEzMywzMDkxMywzMjA0MywzMjc3MywzMzI1OCwzMzU3NiwzNDA3MSwzNDI0OSwzNTU2NiwzNjAzOSwzODYwNCwyMDMxNiwyMTI0MiwyMjIwNCwyNjAyNywyNjE1MiwyODc5NiwyODg1NiwyOTIzNywzMjE4OSwzMzQyMSwzNzE5NiwzODU5'@; put 'Miw0MDMwNiwyMzQwOSwyNjg1NSwyNzU0NCwyODUzOCwzMDQzMCwyMzY5NywyNjI4MywyODUwNywzMTY2OCwzMTc4NiwzNDg3MCwzODYyMCwxOTk3NiwyMDE4MywyMTI4MCwyMjU4MCwyMjcxNSwyMjc2NywyMjg5MiwyMzU1OSwyNDExNSwyNDE5NiwyNDM3MywyNTQ4NCwyNjI5MCwyNjQ1NCwy'@; put 'NzE2NywyNzI5OSwyNzQwNCwyODQ3OSwyOTI1NCw2Mzk5NCwyOTUyMCwyOTgzNSwzMTQ1NiwzMTkxMSwzMzE0NCwzMzI0NywzMzI1NSwzMzY3NCwzMzkwMCwzNDA4MywzNDE5NiwzNDI1NSwzNTAzNywzNjExNSwzNzI5MiwzODI2MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzODU1NiwyMDg3NywyMTcwNSwyMjMxMiwyMzQ3MiwyNTE2NSwyNjQ0OCwyNjY4NSwy'@; put 'Njc3MSwyODIyMSwyODM3MSwyODc5NywzMjI4OSwzNTAwOSwzNjAwMSwzNjYxNyw0MDc3OSw0MDc4MiwyOTIyOSwzMTYzMSwzNTUzMywzNzY1OCwyMDI5NSwyMDMwMiwyMDc4NiwyMTYzMiwyMjk5MiwyNDIxMywyNTI2OSwyNjQ4NSwyNjk5MCwyNzE1OSwyNzgyMiwyODE4NiwyOTQwMSwyOTQ4'@; put 'MiwzMDE0MSwzMTY3MiwzMjA1MywzMzUxMSwzMzc4NSwzMzg3OSwzNDI5NSwzNTQxOSwzNjAxNSwzNjQ4NywzNjg4OSwzNzA0OCwzODYwNiw0MDc5OSwyMTIxOSwyMTUxNCwyMzI2NSwyMzQ5MCwyNTY4OCwyNTk3MywyODQwNCwyOTM4MCw2Mzk5NSwzMDM0MCwzMTMwOSwzMTUxNSwzMTgyMSwz'@; put 'MjMxOCwzMjczNSwzMzY1OSwzNTYyNywzNjA0MiwzNjE5NiwzNjMyMSwzNjQ0NywzNjg0MiwzNjg1NywzNjk2OSwzNzg0MSwyMDI5MSwyMDM0NiwyMDY1OSwyMDg0MCwyMDg1NiwyMTA2OSwyMTA5OCwyMjYyNSwyMjY1MiwyMjg4MCwyMzU2MCwyMzYzNywyNDI4MywyNDczMSwyNTEzNiwyNjY0'@; put 'MywyNzU4MywyNzY1NiwyODU5MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCwyOTAwNiwyOTcyOCwzZTQsMzAwMDgsMzAwMzMsMzAzMjIsMzE1NjQsMzE2MjcsMzE2NjEsMzE2ODYsMzIzOTksMzU0MzgsMzY2NzAsMzY2ODEsMzc0MzksMzc1MjMsMzc2NjYsMzc5MzEsMzg2NTEsMzkwMDIsMzkwMTksMzkxOTgsMjA5OTksMjUxMzAsMjUyNDAsMjc5OTMsMzAzMDgs'@; put 'MzE0MzQsMzE2ODAsMzIxMTgsMjEzNDQsMjM3NDIsMjQyMTUsMjg0NzIsMjg4NTcsMzE4OTYsMzg2NzMsMzk4MjIsNDA2NzAsMjU1MDksMjU3MjIsMzQ2NzgsMTk5NjksMjAxMTcsMjAxNDEsMjA1NzIsMjA1OTcsMjE1NzYsMjI5NzksMjM0NTAsMjQxMjgsMjQyMzcsMjQzMTEsMjQ0NDksMjQ3'@; put 'NzMsMjU0MDIsMjU5MTksMjU5NzIsMjYwNjAsMjYyMzAsMjYyMzIsMjY2MjIsMjY5ODQsMjcyNzMsMjc0OTEsMjc3MTIsMjgwOTYsMjgxMzYsMjgxOTEsMjgyNTQsMjg3MDIsMjg4MzMsMjk1ODIsMjk2OTMsMzAwMTAsMzA1NTUsMzA4NTUsMzExMTgsMzEyNDMsMzEzNTcsMzE5MzQsMzIxNDIs'@; put 'MzMzNTEsMzUzMzAsMzU1NjIsMzU5OTgsMzcxNjUsMzcxOTQsMzczMzYsMzc0NzgsMzc1ODAsMzc2NjQsMzg2NjIsMzg3NDIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzg3NDgsMzg5MTQsNDA3MTgsMjEwNDYsMjExMzcsMjE4ODQsMjI1NjQsMjQwOTMsMjQzNTEsMjQ3MTYsMjU1NTIsMjY3OTksMjg2MzksMzEwODUsMzE1MzIsMzMyMjksMzQyMzQsMzUwNjks'@; put 'MzU1NzYsMzY0MjAsMzcyNjEsMzg1MDAsMzg1NTUsMzg3MTcsMzg5ODgsNDA3NzgsMjA0MzAsMjA4MDYsMjA5MzksMjExNjEsMjIwNjYsMjQzNDAsMjQ0MjcsMjU1MTQsMjU4MDUsMjYwODksMjYxNzcsMjYzNjIsMjYzNjEsMjYzOTcsMjY3ODEsMjY4MzksMjcxMzMsMjg0MzcsMjg1MjYsMjkw'@; put 'MzEsMjkxNTcsMjkyMjYsMjk4NjYsMzA1MjIsMzEwNjIsMzEwNjYsMzExOTksMzEyNjQsMzEzODEsMzE4OTUsMzE5NjcsMzIwNjgsMzIzNjgsMzI5MDMsMzQyOTksMzQ0NjgsMzU0MTIsMzU1MTksMzYyNDksMzY0ODEsMzY4OTYsMzY5NzMsMzczNDcsMzg0NTksMzg2MTMsNDAxNjUsMjYwNjMs'@; put 'MzE3NTEsMzYyNzUsMzc4MjcsMjMzODQsMjM1NjIsMjEzMzAsMjUzMDUsMjk0NjksMjA1MTksMjM0NDcsMjQ0NzgsMjQ3NTIsMjQ5MzksMjY4MzcsMjgxMjEsMjk3NDIsMzEyNzgsMzIwNjYsMzIxNTYsMzIzMDUsMzMxMzEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzYzOTQsMzY0MDUsMzc3NTgsMzc5MTIsMjAzMDQsMjIzNTIsMjQwMzgsMjQyMzEsMjUzODcs'@; put 'MzI2MTgsMjAwMjcsMjAzMDMsMjAzNjcsMjA1NzAsMjMwMDUsMzI5NjQsMjE2MTAsMjE2MDgsMjIwMTQsMjI4NjMsMjM0NDksMjQwMzAsMjQyODIsMjYyMDUsMjY0MTcsMjY2MDksMjY2NjYsMjc4ODAsMjc5NTQsMjgyMzQsMjg1NTcsMjg4NTUsMjk2NjQsMzAwODcsMzE4MjAsMzIwMDIsMzIw'@; put 'NDQsMzIxNjIsMzMzMTEsMzQ1MjMsMzUzODcsMzU0NjEsMzYyMDgsMzY0OTAsMzY2NTksMzY5MTMsMzcxOTgsMzcyMDIsMzc5NTYsMzkzNzYsMzE0ODEsMzE5MDksMjA0MjYsMjA3MzcsMjA5MzQsMjI0NzIsMjM1MzUsMjM4MDMsMjYyMDEsMjcxOTcsMjc5OTQsMjgzMTAsMjg2NTIsMjg5NDAs'@; put 'MzAwNjMsMzE0NTksMzQ4NTAsMzY4OTcsMzY5ODEsMzg2MDMsMzk0MjMsMzM1MzcsMjAwMTMsMjAyMTAsMzQ4ODYsMzczMjUsMjEzNzMsMjczNTUsMjY5ODcsMjc3MTMsMzM5MTQsMjI2ODYsMjQ5NzQsMjYzNjYsMjUzMjcsMjg4OTMsMjk5NjksMzAxNTEsMzIzMzgsMzM5NzYsMzU2NTcsMzYx'@; put 'MDQsMjAwNDMsMjE0ODIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'MjE2NzUsMjIzMjAsMjIzMzYsMjQ1MzUsMjUzNDUsMjUzNTEsMjU3MTEsMjU5MDMsMjYwODgsMjYyMzQsMjY1MjUsMjY1NDcsMjc0OTAsMjc3NDQsMjc4MDIsMjg0NjAsMzA2OTMsMzA3NTcsMzEwNDksMzEwNjMsMzIwMjUsMzI5MzAsMzMwMjYsMzMyNjcsMzM0MzcsMzM0NjMsMzQ1ODQsMzU0'@; put 'NjgsNjM5OTYsMzYxMDAsMzYyODYsMzY5NzgsMzA0NTIsMzEyNTcsMzEyODcsMzIzNDAsMzI4ODcsMjE3NjcsMjE5NzIsMjI2NDUsMjUzOTEsMjU2MzQsMjYxODUsMjYxODcsMjY3MzMsMjcwMzUsMjc1MjQsMjc5NDEsMjgzMzcsMjk2NDUsMjk4MDAsMjk4NTcsMzAwNDMsMzAxMzcsMzA0MzMs'@; put 'MzA0OTQsMzA2MDMsMzEyMDYsMzIyNjUsMzIyODUsMzMyNzUsMzQwOTUsMzQ5NjcsMzUzODYsMzYwNDksMzY1ODcsMzY3ODQsMzY5MTQsMzc4MDUsMzg0OTksMzg1MTUsMzg2NjMsMjAzNTYsMjE0ODksMjMwMTgsMjMyNDEsMjQwODksMjY3MDIsMjk4OTQsMzAxNDIsMzEyMDksMzEzNzgsMzMx'@; put 'ODcsMzQ1NDEsMzYwNzQsMzYzMDAsMzY4NDUsMjYwMTUsMjYzODksNjM5OTcsMjI1MTksMjg1MDMsMzIyMjEsMzY2NTUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzc4NzgsMzg1OTgsMjQ1MDEsMjUwNzQsMjg1NDgsMTk5ODgsMjAzNzYsMjA1MTEsMjE0NDksMjE5ODMsMjM5MTksMjQwNDYsMjc0MjUsMjc0OTIsMzA5MjMsMzE2NDIsNjM5OTgsMzY0MjUsMzY1'@; put 'NTQsMzY5NzQsMjU0MTcsMjU2NjIsMzA1MjgsMzEzNjQsMzc2NzksMzgwMTUsNDA4MTAsMjU3NzYsMjg1OTEsMjkxNTgsMjk4NjQsMjk5MTQsMzE0MjgsMzE3NjIsMzIzODYsMzE5MjIsMzI0MDgsMzU3MzgsMzYxMDYsMzgwMTMsMzkxODQsMzkyNDQsMjEwNDksMjM1MTksMjU4MzAsMjY0MTMs'@; put 'MzIwNDYsMjA3MTcsMjE0NDMsMjI2NDksMjQ5MjAsMjQ5MjEsMjUwODIsMjYwMjgsMzE0NDksMzU3MzAsMzU3MzQsMjA0ODksMjA1MTMsMjExMDksMjE4MDksMjMxMDAsMjQyODgsMjQ0MzIsMjQ4ODQsMjU5NTAsMjYxMjQsMjYxNjYsMjYyNzQsMjcwODUsMjgzNTYsMjg0NjYsMjk0NjIsMzAy'@; put 'NDEsMzEzNzksMzMwODEsMzMzNjksMzM3NTAsMzM5ODAsMjA2NjEsMjI1MTIsMjM0ODgsMjM1MjgsMjQ0MjUsMjU1MDUsMzA3NTgsMzIxODEsMzM3NTYsMzQwODEsMzczMTksMzczNjUsMjA4NzQsMjY2MTMsMzE1NzQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzYwMTIsMjA5MzIsMjI5NzEsMjQ3NjUsMzQzODksMjA1MDgsNjM5OTksMjEwNzYsMjM2MTAsMjQ5'@; put 'NTcsMjUxMTQsMjUyOTksMjU4NDIsMjYwMjEsMjgzNjQsMzAyNDAsMzMwMzQsMzY0NDgsMzg0OTUsMzg1ODcsMjAxOTEsMjEzMTUsMjE5MTIsMjI4MjUsMjQwMjksMjU3OTcsMjc4NDksMjgxNTQsMjk1ODgsMzEzNTksMzMzMDcsMzQyMTQsMzYwNjgsMzYzNjgsMzY5ODMsMzczNTEsMzgzNjks'@; put 'Mzg0MzMsMzg4NTQsMjA5ODQsMjE3NDYsMjE4OTQsMjQ1MDUsMjU3NjQsMjg1NTIsMzIxODAsMzY2MzksMzY2ODUsMzc5NDEsMjA2ODEsMjM1NzQsMjc4MzgsMjgxNTUsMjk5NzksMzA2NTEsMzE4MDUsMzE4NDQsMzU0NDksMzU1MjIsMjI1NTgsMjI5NzQsMjQwODYsMjU0NjMsMjkyNjYsMzAw'@; put 'OTAsMzA1NzEsMzU1NDgsMzYwMjgsMzY2MjYsMjQzMDcsMjYyMjgsMjgxNTIsMzI4OTMsMzM3MjksMzU1MzEsMzg3MzcsMzk4OTQsNjRlMywyMTA1OSwyNjM2NywyODA1MywyODM5OSwzMjIyNCwzNTU1OCwzNjkxMCwzNjk1OCwzOTYzNiwyMTAyMSwyMTExOSwyMTczNiwyNDk4MCwyNTIyMCwy'@; put 'NTMwNywyNjc4NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyNjg5'@; put 'OCwyNjk3MCwyNzE4OSwyODgxOCwyODk2NiwzMDgxMywzMDk3NywzMDk5MCwzMTE4NiwzMTI0NSwzMjkxOCwzMzQwMCwzMzQ5MywzMzYwOSwzNDEyMSwzNTk3MCwzNjIyOSwzNzIxOCwzNzI1OSwzNzI5NCwyMDQxOSwyMjIyNSwyOTE2NSwzMDY3OSwzNDU2MCwzNTMyMCwyMzU0NCwyNDUzNCwy'@; put 'NjQ0OSwzNzAzMiwyMTQ3NCwyMjYxOCwyMzU0MSwyNDc0MCwyNDk2MSwyNTY5NiwzMjMxNywzMjg4MCwzNDA4NSwzNzUwNywyNTc3NCwyMDY1MiwyMzgyOCwyNjM2OCwyMjY4NCwyNTI3NywyNTUxMiwyNjg5NCwyN2UzLDI3MTY2LDI4MjY3LDMwMzk0LDMxMTc5LDMzNDY3LDMzODMzLDM1NTM1'@; put 'LDM2MjY0LDM2ODYxLDM3MTM4LDM3MTk1LDM3Mjc2LDM3NjQ4LDM3NjU2LDM3Nzg2LDM4NjE5LDM5NDc4LDM5OTQ5LDE5OTg1LDMwMDQ0LDMxMDY5LDMxNDgyLDMxNTY5LDMxNjg5LDMyMzAyLDMzOTg4LDM2NDQxLDM2NDY4LDM2NjAwLDM2ODgwLDI2MTQ5LDI2OTQzLDI5NzYzLDIwOTg2LDI2'@; put 'NDE0LDQwNjY4LDIwODA1LDI0NTQ0LDI3Nzk4LDM0ODAyLDM0OTA5LDM0OTM1LDI0NzU2LDMzMjA1LDMzNzk1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDM2MTAxLDIxNDYyLDIxNTYxLDIyMDY4LDIzMDk0LDIzNjAxLDI4ODEwLDMyNzM2LDMyODU4LDMzMDMwLDMzMjYxLDM2MjU5LDM3MjU3LDM5NTE5LDQwNDM0LDIwNTk2LDIwMTY0LDIxNDA4LDI0ODI3LDI4'@; put 'MjA0LDIzNjUyLDIwMzYwLDIwNTE2LDIxOTg4LDIzNzY5LDI0MTU5LDI0Njc3LDI2NzcyLDI3ODM1LDI4MTAwLDI5MTE4LDMwMTY0LDMwMTk2LDMwMzA1LDMxMjU4LDMxMzA1LDMyMTk5LDMyMjUxLDMyNjIyLDMzMjY4LDM0NDczLDM2NjM2LDM4NjAxLDM5MzQ3LDQwNzg2LDIxMDYzLDIxMTg5'@; put 'LDM5MTQ5LDM1MjQyLDE5OTcxLDI2NTc4LDI4NDIyLDIwNDA1LDIzNTIyLDI2NTE3LDI3Nzg0LDI4MDI0LDI5NzIzLDMwNzU5LDM3MzQxLDM3NzU2LDM0NzU2LDMxMjA0LDMxMjgxLDI0NTU1LDIwMTgyLDIxNjY4LDIxODIyLDIyNzAyLDIyOTQ5LDI0ODE2LDI1MTcxLDI1MzAyLDI2NDIyLDI2'@; put 'OTY1LDMzMzMzLDM4NDY0LDM5MzQ1LDM5Mzg5LDIwNTI0LDIxMzMxLDIxODI4LDIyMzk2LDY0MDAxLDI1MTc2LDY0MDAyLDI1ODI2LDI2MjE5LDI2NTg5LDI4NjA5LDI4NjU1LDI5NzMwLDI5NzUyLDM1MzUxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDM3OTQ0LDIxNTg1LDIyMDIyLDIyMzc0LDI0MzkyLDI0OTg2LDI3NDcwLDI4NzYwLDI4ODQ1LDMyMTg3LDM1'@; put 'NDc3LDIyODkwLDMzMDY3LDI1NTA2LDMwNDcyLDMyODI5LDM2MDEwLDIyNjEyLDI1NjQ1LDI3MDY3LDIzNDQ1LDI0MDgxLDI4MjcxLDY0MDAzLDM0MTUzLDIwODEyLDIxNDg4LDIyODI2LDI0NjA4LDI0OTA3LDI3NTI2LDI3NzYwLDI3ODg4LDMxNTE4LDMyOTc0LDMzNDkyLDM2Mjk0LDM3MDQw'@; put 'LDM5MDg5LDY0MDA0LDI1Nzk5LDI4NTgwLDI1NzQ1LDI1ODYwLDIwODE0LDIxNTIwLDIyMzAzLDM1MzQyLDI0OTI3LDI2NzQyLDY0MDA1LDMwMTcxLDMxNTcwLDMyMTEzLDM2ODkwLDIyNTM0LDI3MDg0LDMzMTUxLDM1MTE0LDM2ODY0LDM4OTY5LDIwNjAwLDIyODcxLDIyOTU2LDI1MjM3LDM2'@; put 'ODc5LDM5NzIyLDI0OTI1LDI5MzA1LDM4MzU4LDIyMzY5LDIzMTEwLDI0MDUyLDI1MjI2LDI1NzczLDI1ODUwLDI2NDg3LDI3ODc0LDI3OTY2LDI5MjI4LDI5NzUwLDMwNzcyLDMyNjMxLDMzNDUzLDM2MzE1LDM4OTM1LDIxMDI4LDIyMzM4LDI2NDk1LDI5MjU2LDI5OTIzLDM2MDA5LDM2Nzc0'@; put 'LDM3MzkzLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDM4NDQyLDIw'@; put 'ODQzLDIxNDg1LDI1NDIwLDIwMzI5LDIxNzY0LDI0NzI2LDI1OTQzLDI3ODAzLDI4MDMxLDI5MjYwLDI5NDM3LDMxMjU1LDM1MjA3LDM1OTk3LDI0NDI5LDI4NTU4LDI4OTIxLDMzMTkyLDI0ODQ2LDIwNDE1LDIwNTU5LDI1MTUzLDI5MjU1LDMxNjg3LDMyMjMyLDMyNzQ1LDM2OTQxLDM4ODI5'@; put 'LDM5NDQ5LDM2MDIyLDIyMzc4LDI0MTc5LDI2NTQ0LDMzODA1LDM1NDEzLDIxNTM2LDIzMzE4LDI0MTYzLDI0MjkwLDI0MzMwLDI1OTg3LDMyOTU0LDM0MTA5LDM4MjgxLDM4NDkxLDIwMjk2LDIxMjUzLDIxMjYxLDIxMjYzLDIxNjM4LDIxNzU0LDIyMjc1LDI0MDY3LDI0NTk4LDI1MjQzLDI1'@; put 'MjY1LDI1NDI5LDY0MDA2LDI3ODczLDI4MDA2LDMwMTI5LDMwNzcwLDMyOTkwLDMzMDcxLDMzNTAyLDMzODg5LDMzOTcwLDM0OTU3LDM1MDkwLDM2ODc1LDM3NjEwLDM5MTY1LDM5ODI1LDI0MTMzLDI2MjkyLDI2MzMzLDI4Njg5LDI5MTkwLDY0MDA3LDIwNDY5LDIxMTE3LDI0NDI2LDI0OTE1'@; put 'LDI2NDUxLDI3MTYxLDI4NDE4LDI5OTIyLDMxMDgwLDM0OTIwLDM1OTYxLDM5MTExLDM5MTA4LDM5NDkxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDIxNjk3LDMxMjYzLDI2OTYzLDM1NTc1LDM1OTE0LDM5MDgwLDM5MzQyLDI0NDQ0LDI1MjU5LDMwMTMwLDMwMzgyLDM0OTg3LDM2OTkxLDM4NDY2LDIxMzA1LDI0MzgwLDI0NTE3LDI3ODUyLDI5NjQ0LDMwMDUw'@; put 'LDMwMDkxLDMxNTU4LDMzNTM0LDM5MzI1LDIwMDQ3LDM2OTI0LDE5OTc5LDIwMzA5LDIxNDE0LDIyNzk5LDI0MjY0LDI2MTYwLDI3ODI3LDI5NzgxLDMzNjU1LDM0NjYyLDM2MDMyLDM2OTQ0LDM4Njg2LDM5OTU3LDIyNzM3LDIzNDE2LDM0Mzg0LDM1NjA0LDQwMzcyLDIzNTA2LDI0NjgwLDI0'@; put 'NzE3LDI2MDk3LDI3NzM1LDI4NDUwLDI4NTc5LDI4Njk4LDMyNTk3LDMyNzUyLDM4Mjg5LDM4MjkwLDM4NDgwLDM4ODY3LDIxMTA2LDM2Njc2LDIwOTg5LDIxNTQ3LDIxNjg4LDIxODU5LDIxODk4LDI3MzIzLDI4MDg1LDMyMjE2LDMzMzgyLDM3NTMyLDM4NTE5LDQwNTY5LDIxNTEyLDIxNzA0'@; put 'LDMwNDE4LDM0NTMyLDM4MzA4LDM4MzU2LDM4NDkyLDIwMTMwLDIwMjMzLDIzMDIyLDIzMjcwLDI0MDU1LDI0NjU4LDI1MjM5LDI2NDc3LDI2Njg5LDI3NzgyLDI4MjA3LDMyNTY4LDMyOTIzLDMzMzIyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDY0MDA4LDY0MDA5LDM4OTE3LDIwMTMzLDIwNTY1LDIxNjgzLDIyNDE5LDIyODc0LDIzNDAxLDIzNDc1LDI1MDMy'@; put 'LDI2OTk5LDI4MDIzLDI4NzA3LDM0ODA5LDM1Mjk5LDM1NDQyLDM1NTU5LDM2OTk0LDM5NDA1LDM5NjA4LDIxMTgyLDI2NjgwLDIwNTAyLDI0MTg0LDI2NDQ3LDMzNjA3LDM0ODkyLDIwMTM5LDIxNTIxLDIyMTkwLDI5NjcwLDM3MTQxLDM4OTExLDM5MTc3LDM5MjU1LDM5MzIxLDIyMDk5LDIy'@; put 'Njg3LDM0Mzk1LDM1Mzc3LDI1MDEwLDI3MzgyLDI5NTYzLDM2NTYyLDI3NDYzLDM4NTcwLDM5NTExLDIyODY5LDI5MTg0LDM2MjAzLDM4NzYxLDIwNDM2LDIzNzk2LDI0MzU4LDI1MDgwLDI2MjAzLDI3ODgzLDI4ODQzLDI5NTcyLDI5NjI1LDI5Njk0LDMwNTA1LDMwNTQxLDMyMDY3LDMyMDk4'@; put 'LDMyMjkxLDMzMzM1LDM0ODk4LDY0MDEwLDM2MDY2LDM3NDQ5LDM5MDIzLDIzMzc3LDMxMzQ4LDM0ODgwLDM4OTEzLDIzMjQ0LDIwNDQ4LDIxMzMyLDIyODQ2LDIzODA1LDI1NDA2LDI4MDI1LDI5NDMzLDMzMDI5LDMzMDMxLDMzNjk4LDM3NTgzLDM4OTYwLDIwMTM2LDIwODA0LDIxMDA5LDIy'@; put 'NDExLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDI0NDE4LDI3ODQy'@; put 'LDI4MzY2LDI4Njc3LDI4NzUyLDI4ODQ3LDI5MDc0LDI5NjczLDI5ODAxLDMzNjEwLDM0NzIyLDM0OTEzLDM2ODcyLDM3MDI2LDM3Nzk1LDM5MzM2LDIwODQ2LDI0NDA3LDI0ODAwLDI0OTM1LDI2MjkxLDM0MTM3LDM2NDI2LDM3Mjk1LDM4Nzk1LDIwMDQ2LDIwMTE0LDIxNjI4LDIyNzQxLDIy'@; put 'Nzc4LDIyOTA5LDIzNzMzLDI0MzU5LDI1MTQyLDI1MTYwLDI2MTIyLDI2MjE1LDI3NjI3LDI4MDA5LDI4MTExLDI4MjQ2LDI4NDA4LDI4NTY0LDI4NjQwLDI4NjQ5LDI4NzY1LDI5MzkyLDI5NzMzLDI5Nzg2LDI5OTIwLDMwMzU1LDMxMDY4LDMxOTQ2LDMyMjg2LDMyOTkzLDMzNDQ2LDMzODk5'@; put 'LDMzOTgzLDM0MzgyLDM0Mzk5LDM0Njc2LDM1NzAzLDM1OTQ2LDM3ODA0LDM4OTEyLDM5MDEzLDI0Nzg1LDI1MTEwLDM3MjM5LDIzMTMwLDI2MTI3LDI4MTUxLDI4MjIyLDI5NzU5LDM5NzQ2LDI0NTczLDI0Nzk0LDMxNTAzLDIxNzAwLDI0MzQ0LDI3NzQyLDI3ODU5LDI3OTQ2LDI4ODg4LDMy'@; put 'MDA1LDM0NDI1LDM1MzQwLDQwMjUxLDIxMjcwLDIxNjQ0LDIzMzAxLDI3MTk0LDI4Nzc5LDMwMDY5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDMxMTE3LDMxMTY2LDMzNDU3LDMzNzc1LDM1NDQxLDM1NjQ5LDM2MDA4LDM4NzcyLDY0MDExLDI1ODQ0LDI1ODk5LDMwOTA2LDMwOTA3LDMxMzM5LDIwMDI0LDIxOTE0LDIyODY0LDIzNDYyLDI0MTg3LDI0NzM5LDI1'@; put 'NTYzLDI3NDg5LDI2MjEzLDI2NzA3LDI4MTg1LDI5MDI5LDI5ODcyLDMyMDA4LDM2OTk2LDM5NTI5LDM5OTczLDI3OTYzLDI4MzY5LDI5NTAyLDM1OTA1LDM4MzQ2LDIwOTc2LDI0MTQwLDI0NDg4LDI0NjUzLDI0ODIyLDI0ODgwLDI0OTA4LDI2MTc5LDI2MTgwLDI3MDQ1LDI3ODQxLDI4MjU1'@; put 'LDI4MzYxLDI4NTE0LDI5MDA0LDI5ODUyLDMwMzQzLDMxNjgxLDMxNzgzLDMzNjE4LDM0NjQ3LDM2OTQ1LDM4NTQxLDQwNjQzLDIxMjk1LDIyMjM4LDI0MzE1LDI0NDU4LDI0Njc0LDI0NzI0LDI1MDc5LDI2MjE0LDI2MzcxLDI3MjkyLDI4MTQyLDI4NTkwLDI4Nzg0LDI5NTQ2LDMyMzYyLDMz'@; put 'MjE0LDMzNTg4LDM0NTE2LDM1NDk2LDM2MDM2LDIxMTIzLDI5NTU0LDIzNDQ2LDI3MjQzLDM3ODkyLDIxNzQyLDIyMTUwLDIzMzg5LDI1OTI4LDI1OTg5LDI2MzEzLDI2NzgzLDI4MDQ1LDI4MTAyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDI5MjQzLDMyOTQ4LDM3MjM3LDM5NTAxLDIwMzk5LDIwNTA1LDIxNDAyLDIxNTE4LDIxNTY0LDIxODk3LDIxOTU3LDI0'@; put 'MTI3LDI0NDYwLDI2NDI5LDI5MDMwLDI5NjYxLDM2ODY5LDIxMjExLDIxMjM1LDIyNjI4LDIyNzM0LDI4OTMyLDI5MDcxLDI5MTc5LDM0MjI0LDM1MzQ3LDI2MjQ4LDM0MjE2LDIxOTI3LDI2MjQ0LDI5MDAyLDMzODQxLDIxMzIxLDIxOTEzLDI3NTg1LDI0NDA5LDI0NTA5LDI1NTgyLDI2MjQ5'@; put 'LDI4OTk5LDM1NTY5LDM2NjM3LDQwNjM4LDIwMjQxLDI1NjU4LDI4ODc1LDMwMDU0LDM0NDA3LDI0Njc2LDM1NjYyLDQwNDQwLDIwODA3LDIwOTgyLDIxMjU2LDI3OTU4LDMzMDE2LDQwNjU3LDI2MTMzLDI3NDI3LDI4ODI0LDMwMTY1LDIxNTA3LDIzNjczLDMyMDA3LDM1MzUwLDI3NDI0LDI3'@; put 'NDUzLDI3NDYyLDIxNTYwLDI0Njg4LDI3OTY1LDMyNzI1LDMzMjg4LDIwNjk0LDIwOTU4LDIxOTE2LDIyMTIzLDIyMjIxLDIzMDIwLDIzMzA1LDI0MDc2LDI0OTg1LDI0OTg0LDI1MTM3LDI2MjA2LDI2MzQyLDI5MDgxLDI5MTEzLDI5MTE0LDI5MzUxLDMxMTQzLDMxMjMyLDMyNjkwLDM1NDQw'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGxdLGdiMTgwMzA6WzE5OTcwLDE5OTcyLDE5OTczLDE5OTc0LDE5OTgz'@; put 'LDE5OTg2LDE5OTkxLDE5OTk5LDJlNCwyMDAwMSwyMDAwMywyMDAwNiwyMDAwOSwyMDAxNCwyMDAxNSwyMDAxNywyMDAxOSwyMDAyMSwyMDAyMywyMDAyOCwyMDAzMiwyMDAzMywyMDAzNCwyMDAzNiwyMDAzOCwyMDA0MiwyMDA0OSwyMDA1MywyMDA1NSwyMDA1OCwyMDA1OSwyMDA2NiwyMDA2'@; put 'NywyMDA2OCwyMDA2OSwyMDA3MSwyMDA3MiwyMDA3NCwyMDA3NSwyMDA3NiwyMDA3NywyMDA3OCwyMDA3OSwyMDA4MiwyMDA4NCwyMDA4NSwyMDA4NiwyMDA4NywyMDA4OCwyMDA4OSwyMDA5MCwyMDA5MSwyMDA5MiwyMDA5MywyMDA5NSwyMDA5NiwyMDA5NywyMDA5OCwyMDA5OSwyMDEwMCwy'@; put 'MDEwMSwyMDEwMywyMDEwNiwyMDExMiwyMDExOCwyMDExOSwyMDEyMSwyMDEyNCwyMDEyNSwyMDEyNiwyMDEzMSwyMDEzOCwyMDE0MywyMDE0NCwyMDE0NSwyMDE0OCwyMDE1MCwyMDE1MSwyMDE1MiwyMDE1MywyMDE1NiwyMDE1NywyMDE1OCwyMDE2OCwyMDE3MiwyMDE3NSwyMDE3NiwyMDE3'@; put 'OCwyMDE4NiwyMDE4NywyMDE4OCwyMDE5MiwyMDE5NCwyMDE5OCwyMDE5OSwyMDIwMSwyMDIwNSwyMDIwNiwyMDIwNywyMDIwOSwyMDIxMiwyMDIxNiwyMDIxNywyMDIxOCwyMDIyMCwyMDIyMiwyMDIyNCwyMDIyNiwyMDIyNywyMDIyOCwyMDIyOSwyMDIzMCwyMDIzMSwyMDIzMiwyMDIzNSwy'@; put 'MDIzNiwyMDI0MiwyMDI0MywyMDI0NCwyMDI0NSwyMDI0NiwyMDI1MiwyMDI1MywyMDI1NywyMDI1OSwyMDI2NCwyMDI2NSwyMDI2OCwyMDI2OSwyMDI3MCwyMDI3MywyMDI3NSwyMDI3NywyMDI3OSwyMDI4MSwyMDI4MywyMDI4NiwyMDI4NywyMDI4OCwyMDI4OSwyMDI5MCwyMDI5MiwyMDI5'@; put 'MywyMDI5NSwyMDI5NiwyMDI5NywyMDI5OCwyMDI5OSwyMDMwMCwyMDMwNiwyMDMwOCwyMDMxMCwyMDMyMSwyMDMyMiwyMDMyNiwyMDMyOCwyMDMzMCwyMDMzMSwyMDMzMywyMDMzNCwyMDMzNywyMDMzOCwyMDM0MSwyMDM0MywyMDM0NCwyMDM0NSwyMDM0NiwyMDM0OSwyMDM1MiwyMDM1Mywy'@; put 'MDM1NCwyMDM1NywyMDM1OCwyMDM1OSwyMDM2MiwyMDM2NCwyMDM2NiwyMDM2OCwyMDM3MCwyMDM3MSwyMDM3MywyMDM3NCwyMDM3NiwyMDM3NywyMDM3OCwyMDM4MCwyMDM4MiwyMDM4MywyMDM4NSwyMDM4NiwyMDM4OCwyMDM5NSwyMDM5NywyMDQwMCwyMDQwMSwyMDQwMiwyMDQwMywyMDQw'@; put 'NCwyMDQwNiwyMDQwNywyMDQwOCwyMDQwOSwyMDQxMCwyMDQxMSwyMDQxMiwyMDQxMywyMDQxNCwyMDQxNiwyMDQxNywyMDQxOCwyMDQyMiwyMDQyMywyMDQyNCwyMDQyNSwyMDQyNywyMDQyOCwyMDQyOSwyMDQzNCwyMDQzNSwyMDQzNiwyMDQzNywyMDQzOCwyMDQ0MSwyMDQ0MywyMDQ0OCwy'@; put 'MDQ1MCwyMDQ1MiwyMDQ1MywyMDQ1NSwyMDQ1OSwyMDQ2MCwyMDQ2NCwyMDQ2NiwyMDQ2OCwyMDQ2OSwyMDQ3MCwyMDQ3MSwyMDQ3MywyMDQ3NSwyMDQ3NiwyMDQ3NywyMDQ3OSwyMDQ4MCwyMDQ4MSwyMDQ4MiwyMDQ4MywyMDQ4NCwyMDQ4NSwyMDQ4NiwyMDQ4NywyMDQ4OCwyMDQ4OSwyMDQ5'@; put 'MCwyMDQ5MSwyMDQ5NCwyMDQ5NiwyMDQ5NywyMDQ5OSwyMDUwMSwyMDUwMiwyMDUwMywyMDUwNywyMDUwOSwyMDUxMCwyMDUxMiwyMDUxNCwyMDUxNSwyMDUxNiwyMDUxOSwyMDUyMywyMDUyNywyMDUyOCwyMDUyOSwyMDUzMCwyMDUzMSwyMDUzMiwyMDUzMywyMDUzNCwyMDUzNSwyMDUzNiwy'@; put 'MDUzNywyMDUzOSwyMDU0MSwyMDU0MywyMDU0NCwyMDU0NSwyMDU0NiwyMDU0OCwyMDU0OSwyMDU1MCwyMDU1MywyMDU1NCwyMDU1NSwyMDU1NywyMDU2MCwyMDU2MSwyMDU2MiwyMDU2MywyMDU2NCwyMDU2NiwyMDU2NywyMDU2OCwyMDU2OSwyMDU3MSwyMDU3MywyMDU3NCwyMDU3NSwyMDU3'@; put 'NiwyMDU3NywyMDU3OCwyMDU3OSwyMDU4MCwyMDU4MiwyMDU4MywyMDU4NCwyMDU4NSwyMDU4NiwyMDU4NywyMDU4OSwyMDU5MCwyMDU5MSwyMDU5MiwyMDU5MywyMDU5NCwyMDU5NSwyMDU5NiwyMDU5NywyMDYwMCwyMDYwMSwyMDYwMiwyMDYwNCwyMDYwNSwyMDYwOSwyMDYxMCwyMDYxMSwy'@; put 'MDYxMiwyMDYxNCwyMDYxNSwyMDYxNywyMDYxOCwyMDYxOSwyMDYyMCwyMDYyMiwyMDYyMywyMDYyNCwyMDYyNSwyMDYyNiwyMDYyNywyMDYyOCwyMDYyOSwyMDYzMCwyMDYzMSwyMDYzMiwyMDYzMywyMDYzNCwyMDYzNSwyMDYzNiwyMDYzNywyMDYzOCwyMDYzOSwyMDY0MCwyMDY0MSwyMDY0'@; put 'MiwyMDY0NCwyMDY0NiwyMDY1MCwyMDY1MSwyMDY1MywyMDY1NCwyMDY1NSwyMDY1NiwyMDY1NywyMDY1OSwyMDY2MCwyMDY2MSwyMDY2MiwyMDY2MywyMDY2NCwyMDY2NSwyMDY2OCwyMDY2OSwyMDY3MCwyMDY3MSwyMDY3MiwyMDY3MywyMDY3NCwyMDY3NSwyMDY3NiwyMDY3NywyMDY3OCwy'@; put 'MDY3OSwyMDY4MCwyMDY4MSwyMDY4MiwyMDY4MywyMDY4NCwyMDY4NSwyMDY4NiwyMDY4OCwyMDY4OSwyMDY5MCwyMDY5MSwyMDY5MiwyMDY5MywyMDY5NSwyMDY5NiwyMDY5NywyMDY5OSwyMDcwMCwyMDcwMSwyMDcwMiwyMDcwMywyMDcwNCwyMDcwNSwyMDcwNiwyMDcwNywyMDcwOCwyMDcw'@; put 'OSwyMDcxMiwyMDcxMywyMDcxNCwyMDcxNSwyMDcxOSwyMDcyMCwyMDcyMSwyMDcyMiwyMDcyNCwyMDcyNiwyMDcyNywyMDcyOCwyMDcyOSwyMDczMCwyMDczMiwyMDczMywyMDczNCwyMDczNSwyMDczNiwyMDczNywyMDczOCwyMDczOSwyMDc0MCwyMDc0MSwyMDc0NCwyMDc0NSwyMDc0Niwy'@; put 'MDc0OCwyMDc0OSwyMDc1MCwyMDc1MSwyMDc1MiwyMDc1MywyMDc1NSwyMDc1NiwyMDc1NywyMDc1OCwyMDc1OSwyMDc2MCwyMDc2MSwyMDc2MiwyMDc2MywyMDc2NCwyMDc2NSwyMDc2NiwyMDc2NywyMDc2OCwyMDc3MCwyMDc3MSwyMDc3MiwyMDc3MywyMDc3NCwyMDc3NSwyMDc3NiwyMDc3'@; put 'NywyMDc3OCwyMDc3OSwyMDc4MCwyMDc4MSwyMDc4MiwyMDc4MywyMDc4NCwyMDc4NSwyMDc4NiwyMDc4NywyMDc4OCwyMDc4OSwyMDc5MCwyMDc5MSwyMDc5MiwyMDc5MywyMDc5NCwyMDc5NSwyMDc5NiwyMDc5NywyMDc5OCwyMDgwMiwyMDgwNywyMDgxMCwyMDgxMiwyMDgxNCwyMDgxNSwy'@; put 'MDgxNiwyMDgxOCwyMDgxOSwyMDgyMywyMDgyNCwyMDgyNSwyMDgyNywyMDgyOSwyMDgzMCwyMDgzMSwyMDgzMiwyMDgzMywyMDgzNSwyMDgzNiwyMDgzOCwyMDgzOSwyMDg0MSwyMDg0MiwyMDg0NywyMDg1MCwyMDg1OCwyMDg2MiwyMDg2MywyMDg2NywyMDg2OCwyMDg3MCwyMDg3MSwyMDg3'@; put 'NCwyMDg3NSwyMDg3OCwyMDg3OSwyMDg4MCwyMDg4MSwyMDg4MywyMDg4NCwyMDg4OCwyMDg5MCwyMDg5MywyMDg5NCwyMDg5NSwyMDg5NywyMDg5OSwyMDkwMiwyMDkwMywyMDkwNCwyMDkwNSwyMDkwNiwyMDkwOSwyMDkxMCwyMDkxNiwyMDkyMCwyMDkyMSwyMDkyMiwyMDkyNiwyMDkyNywy'@; put 'MDkyOSwyMDkzMCwyMDkzMSwyMDkzMywyMDkzNiwyMDkzOCwyMDk0MSwyMDk0MiwyMDk0NCwyMDk0NiwyMDk0NywyMDk0OCwyMDk0OSwyMDk1MCwyMDk1MSwyMDk1MiwyMDk1MywyMDk1NCwyMDk1NiwyMDk1OCwyMDk1OSwyMDk2MiwyMDk2MywyMDk2NSwyMDk2NiwyMDk2NywyMDk2OCwyMDk2'@; put 'OSwyMDk3MCwyMDk3MiwyMDk3NCwyMDk3NywyMDk3OCwyMDk4MCwyMDk4MywyMDk5MCwyMDk5NiwyMDk5NywyMTAwMSwyMTAwMywyMTAwNCwyMTAwNywyMTAwOCwyMTAxMSwyMTAxMiwyMTAxMywyMTAyMCwyMTAyMiwyMTAyMywyMTAyNSwyMTAyNiwyMTAyNywyMTAyOSwyMTAzMCwyMTAzMSwy'@; put 'MTAzNCwyMTAzNiwyMTAzOSwyMTA0MSwyMTA0MiwyMTA0NCwyMTA0NSwyMTA1MiwyMTA1NCwyMTA2MCwyMTA2MSwyMTA2MiwyMTA2MywyMTA2NCwyMTA2NSwyMTA2NywyMTA3MCwyMTA3MSwyMTA3NCwyMTA3NSwyMTA3NywyMTA3OSwyMTA4MCwyMTA4MSwyMTA4MiwyMTA4MywyMTA4NSwyMTA4'@; put 'NywyMTA4OCwyMTA5MCwyMTA5MSwyMTA5MiwyMTA5NCwyMTA5NiwyMTA5OSwyMTEwMCwyMTEwMSwyMTEwMiwyMTEwNCwyMTEwNSwyMTEwNywyMTEwOCwyMTEwOSwyMTExMCwyMTExMSwyMTExMiwyMTExMywyMTExNCwyMTExNSwyMTExNiwyMTExOCwyMTEyMCwyMTEyMywyMTEyNCwyMTEyNSwy'@; put 'MTEyNiwyMTEyNywyMTEyOSwyMTEzMCwyMTEzMSwyMTEzMiwyMTEzMywyMTEzNCwyMTEzNSwyMTEzNywyMTEzOCwyMTE0MCwyMTE0MSwyMTE0MiwyMTE0MywyMTE0NCwyMTE0NSwyMTE0NiwyMTE0OCwyMTE1NiwyMTE1NywyMTE1OCwyMTE1OSwyMTE2NiwyMTE2NywyMTE2OCwyMTE3MiwyMTE3'@; put 'MywyMTE3NCwyMTE3NSwyMTE3NiwyMTE3NywyMTE3OCwyMTE3OSwyMTE4MCwyMTE4MSwyMTE4NCwyMTE4NSwyMTE4NiwyMTE4OCwyMTE4OSwyMTE5MCwyMTE5MiwyMTE5NCwyMTE5NiwyMTE5NywyMTE5OCwyMTE5OSwyMTIwMSwyMTIwMywyMTIwNCwyMTIwNSwyMTIwNywyMTIwOSwyMTIxMCwy'@; put 'MTIxMSwyMTIxMiwyMTIxMywyMTIxNCwyMTIxNiwyMTIxNywyMTIxOCwyMTIxOSwyMTIyMSwyMTIyMiwyMTIyMywyMTIyNCwyMTIyNSwyMTIyNiwyMTIyNywyMTIyOCwyMTIyOSwyMTIzMCwyMTIzMSwyMTIzMywyMTIzNCwyMTIzNSwyMTIzNiwyMTIzNywyMTIzOCwyMTIzOSwyMTI0MCwyMTI0'@; put 'MywyMTI0NCwyMTI0NSwyMTI0OSwyMTI1MCwyMTI1MSwyMTI1MiwyMTI1NSwyMTI1NywyMTI1OCwyMTI1OSwyMTI2MCwyMTI2MiwyMTI2NSwyMTI2NiwyMTI2NywyMTI2OCwyMTI3MiwyMTI3NSwyMTI3NiwyMTI3OCwyMTI3OSwyMTI4MiwyMTI4NCwyMTI4NSwyMTI4NywyMTI4OCwyMTI4OSwy'@; put 'MTI5MSwyMTI5MiwyMTI5MywyMTI5NSwyMTI5NiwyMTI5NywyMTI5OCwyMTI5OSwyMTMwMCwyMTMwMSwyMTMwMiwyMTMwMywyMTMwNCwyMTMwOCwyMTMwOSwyMTMxMiwyMTMxNCwyMTMxNiwyMTMxOCwyMTMyMywyMTMyNCwyMTMyNSwyMTMyOCwyMTMzMiwyMTMzNiwyMTMzNywyMTMzOSwyMTM0'@; put 'MSwyMTM0OSwyMTM1MiwyMTM1NCwyMTM1NiwyMTM1NywyMTM2MiwyMTM2NiwyMTM2OSwyMTM3MSwyMTM3MiwyMTM3MywyMTM3NCwyMTM3NiwyMTM3NywyMTM3OSwyMTM4MywyMTM4NCwyMTM4NiwyMTM5MCwyMTM5MSwyMTM5MiwyMTM5MywyMTM5NCwyMTM5NSwyMTM5NiwyMTM5OCwyMTM5OSwy'@; put 'MTQwMSwyMTQwMywyMTQwNCwyMTQwNiwyMTQwOCwyMTQwOSwyMTQxMiwyMTQxNSwyMTQxOCwyMTQxOSwyMTQyMCwyMTQyMSwyMTQyMywyMTQyNCwyMTQyNSwyMTQyNiwyMTQyNywyMTQyOCwyMTQyOSwyMTQzMSwyMTQzMiwyMTQzMywyMTQzNCwyMTQzNiwyMTQzNywyMTQzOCwyMTQ0MCwyMTQ0'@; put 'MywyMTQ0NCwyMTQ0NSwyMTQ0NiwyMTQ0NywyMTQ1NCwyMTQ1NSwyMTQ1NiwyMTQ1OCwyMTQ1OSwyMTQ2MSwyMTQ2NiwyMTQ2OCwyMTQ2OSwyMTQ3MCwyMTQ3MywyMTQ3NCwyMTQ3OSwyMTQ5MiwyMTQ5OCwyMTUwMiwyMTUwMywyMTUwNCwyMTUwNiwyMTUwOSwyMTUxMSwyMTUxNSwyMTUyNCwy'@; put 'MTUyOCwyMTUyOSwyMTUzMCwyMTUzMiwyMTUzOCwyMTU0MCwyMTU0MSwyMTU0NiwyMTU1MiwyMTU1NSwyMTU1OCwyMTU1OSwyMTU2MiwyMTU2NSwyMTU2NywyMTU2OSwyMTU3MCwyMTU3MiwyMTU3MywyMTU3NSwyMTU3NywyMTU4MCwyMTU4MSwyMTU4MiwyMTU4MywyMTU4NSwyMTU5NCwyMTU5'@; put 'NywyMTU5OCwyMTU5OSwyMTYwMCwyMTYwMSwyMTYwMywyMTYwNSwyMTYwNywyMTYwOSwyMTYxMCwyMTYxMSwyMTYxMiwyMTYxMywyMTYxNCwyMTYxNSwyMTYxNiwyMTYyMCwyMTYyNSwyMTYyNiwyMTYzMCwyMTYzMSwyMTYzMywyMTYzNSwyMTYzNywyMTYzOSwyMTY0MCwyMTY0MSwyMTY0Miwy'@; put 'MTY0NSwyMTY0OSwyMTY1MSwyMTY1NSwyMTY1NiwyMTY2MCwyMTY2MiwyMTY2MywyMTY2NCwyMTY2NSwyMTY2NiwyMTY2OSwyMTY3OCwyMTY4MCwyMTY4MiwyMTY4NSwyMTY4NiwyMTY4NywyMTY4OSwyMTY5MCwyMTY5MiwyMTY5NCwyMTY5OSwyMTcwMSwyMTcwNiwyMTcwNywyMTcxOCwyMTcy'@; put 'MCwyMTcyMywyMTcyOCwyMTcyOSwyMTczMCwyMTczMSwyMTczMiwyMTczOSwyMTc0MCwyMTc0MywyMTc0NCwyMTc0NSwyMTc0OCwyMTc0OSwyMTc1MCwyMTc1MSwyMTc1MiwyMTc1MywyMTc1NSwyMTc1OCwyMTc2MCwyMTc2MiwyMTc2MywyMTc2NCwyMTc2NSwyMTc2OCwyMTc3MCwyMTc3MSwy'@; put 'MTc3MiwyMTc3MywyMTc3NCwyMTc3OCwyMTc3OSwyMTc4MSwyMTc4MiwyMTc4MywyMTc4NCwyMTc4NSwyMTc4NiwyMTc4OCwyMTc4OSwyMTc5MCwyMTc5MSwyMTc5MywyMTc5NywyMTc5OCwyMTgwMCwyMTgwMSwyMTgwMywyMTgwNSwyMTgxMCwyMTgxMiwyMTgxMywyMTgxNCwyMTgxNiwyMTgx'@; put 'NywyMTgxOCwyMTgxOSwyMTgyMSwyMTgyNCwyMTgyNiwyMTgyOSwyMTgzMSwyMTgzMiwyMTgzNSwyMTgzNiwyMTgzNywyMTgzOCwyMTgzOSwyMTg0MSwyMTg0MiwyMTg0MywyMTg0NCwyMTg0NywyMTg0OCwyMTg0OSwyMTg1MCwyMTg1MSwyMTg1MywyMTg1NCwyMTg1NSwyMTg1NiwyMTg1OCwy'@; put 'MTg1OSwyMTg2NCwyMTg2NSwyMTg2NywyMTg3MSwyMTg3MiwyMTg3MywyMTg3NCwyMTg3NSwyMTg3NiwyMTg4MSwyMTg4MiwyMTg4NSwyMTg4NywyMTg5MywyMTg5NCwyMTkwMCwyMTkwMSwyMTkwMiwyMTkwNCwyMTkwNiwyMTkwNywyMTkwOSwyMTkxMCwyMTkxMSwyMTkxNCwyMTkxNSwyMTkx'@; put 'OCwyMTkyMCwyMTkyMSwyMTkyMiwyMTkyMywyMTkyNCwyMTkyNSwyMTkyNiwyMTkyOCwyMTkyOSwyMTkzMCwyMTkzMSwyMTkzMiwyMTkzMywyMTkzNCwyMTkzNSwyMTkzNiwyMTkzOCwyMTk0MCwyMTk0MiwyMTk0NCwyMTk0NiwyMTk0OCwyMTk1MSwyMTk1MiwyMTk1MywyMTk1NCwyMTk1NSwy'@; put 'MTk1OCwyMTk1OSwyMTk2MCwyMTk2MiwyMTk2MywyMTk2NiwyMTk2NywyMTk2OCwyMTk3MywyMTk3NSwyMTk3NiwyMTk3NywyMTk3OCwyMTk3OSwyMTk4MiwyMTk4NCwyMTk4NiwyMTk5MSwyMTk5MywyMTk5NywyMTk5OCwyMmUzLDIyMDAxLDIyMDA0LDIyMDA2LDIyMDA4LDIyMDA5LDIyMDEw'@; put 'LDIyMDExLDIyMDEyLDIyMDE1LDIyMDE4LDIyMDE5LDIyMDIwLDIyMDIxLDIyMDIyLDIyMDIzLDIyMDI2LDIyMDI3LDIyMDI5LDIyMDMyLDIyMDMzLDIyMDM0LDIyMDM1LDIyMDM2LDIyMDM3LDIyMDM4LDIyMDM5LDIyMDQxLDIyMDQyLDIyMDQ0LDIyMDQ1LDIyMDQ4LDIyMDQ5LDIyMDUwLDIy'@; put 'MDUzLDIyMDU0LDIyMDU2LDIyMDU3LDIyMDU4LDIyMDU5LDIyMDYyLDIyMDYzLDIyMDY0LDIyMDY3LDIyMDY5LDIyMDcxLDIyMDcyLDIyMDc0LDIyMDc2LDIyMDc3LDIyMDc4LDIyMDgwLDIyMDgxLDIyMDgyLDIyMDgzLDIyMDg0LDIyMDg1LDIyMDg2LDIyMDg3LDIyMDg4LDIyMDg5LDIyMDkw'@; put 'LDIyMDkxLDIyMDk1LDIyMDk2LDIyMDk3LDIyMDk4LDIyMDk5LDIyMTAxLDIyMTAyLDIyMTA2LDIyMTA3LDIyMTA5LDIyMTEwLDIyMTExLDIyMTEyLDIyMTEzLDIyMTE1LDIyMTE3LDIyMTE4LDIyMTE5LDIyMTI1LDIyMTI2LDIyMTI3LDIyMTI4LDIyMTMwLDIyMTMxLDIyMTMyLDIyMTMzLDIy'@; put 'MTM1LDIyMTM2LDIyMTM3LDIyMTM4LDIyMTQxLDIyMTQyLDIyMTQzLDIyMTQ0LDIyMTQ1LDIyMTQ2LDIyMTQ3LDIyMTQ4LDIyMTUxLDIyMTUyLDIyMTUzLDIyMTU0LDIyMTU1LDIyMTU2LDIyMTU3LDIyMTYwLDIyMTYxLDIyMTYyLDIyMTY0LDIyMTY1LDIyMTY2LDIyMTY3LDIyMTY4LDIyMTY5'@; put 'LDIyMTcwLDIyMTcxLDIyMTcyLDIyMTczLDIyMTc0LDIyMTc1LDIyMTc2LDIyMTc3LDIyMTc4LDIyMTgwLDIyMTgxLDIyMTgyLDIyMTgzLDIyMTg0LDIyMTg1LDIyMTg2LDIyMTg3LDIyMTg4LDIyMTg5LDIyMTkwLDIyMTkyLDIyMTkzLDIyMTk0LDIyMTk1LDIyMTk2LDIyMTk3LDIyMTk4LDIy'@; put 'MjAwLDIyMjAxLDIyMjAyLDIyMjAzLDIyMjA1LDIyMjA2LDIyMjA3LDIyMjA4LDIyMjA5LDIyMjEwLDIyMjExLDIyMjEyLDIyMjEzLDIyMjE0LDIyMjE1LDIyMjE2LDIyMjE3LDIyMjE5LDIyMjIwLDIyMjIxLDIyMjIyLDIyMjIzLDIyMjI0LDIyMjI1LDIyMjI2LDIyMjI3LDIyMjI5LDIyMjMw'@; put 'LDIyMjMyLDIyMjMzLDIyMjM2LDIyMjQzLDIyMjQ1LDIyMjQ2LDIyMjQ3LDIyMjQ4LDIyMjQ5LDIyMjUwLDIyMjUyLDIyMjU0LDIyMjU1LDIyMjU4LDIyMjU5LDIyMjYyLDIyMjYzLDIyMjY0LDIyMjY3LDIyMjY4LDIyMjcyLDIyMjczLDIyMjc0LDIyMjc3LDIyMjc5LDIyMjgzLDIyMjg0LDIy'@; put 'Mjg1LDIyMjg2LDIyMjg3LDIyMjg4LDIyMjg5LDIyMjkwLDIyMjkxLDIyMjkyLDIyMjkzLDIyMjk0LDIyMjk1LDIyMjk2LDIyMjk3LDIyMjk4LDIyMjk5LDIyMzAxLDIyMzAyLDIyMzA0LDIyMzA1LDIyMzA2LDIyMzA4LDIyMzA5LDIyMzEwLDIyMzExLDIyMzE1LDIyMzIxLDIyMzIyLDIyMzI0'@; put 'LDIyMzI1LDIyMzI2LDIyMzI3LDIyMzI4LDIyMzMyLDIyMzMzLDIyMzM1LDIyMzM3LDIyMzM5LDIyMzQwLDIyMzQxLDIyMzQyLDIyMzQ0LDIyMzQ1LDIyMzQ3LDIyMzU0LDIyMzU1LDIyMzU2LDIyMzU3LDIyMzU4LDIyMzYwLDIyMzYxLDIyMzcwLDIyMzcxLDIyMzczLDIyMzc1LDIyMzgwLDIy'@; put 'MzgyLDIyMzg0LDIyMzg1LDIyMzg2LDIyMzg4LDIyMzg5LDIyMzkyLDIyMzkzLDIyMzk0LDIyMzk3LDIyMzk4LDIyMzk5LDIyNDAwLDIyNDAxLDIyNDA3LDIyNDA4LDIyNDA5LDIyNDEwLDIyNDEzLDIyNDE0LDIyNDE1LDIyNDE2LDIyNDE3LDIyNDIwLDIyNDIxLDIyNDIyLDIyNDIzLDIyNDI0'@; put 'LDIyNDI1LDIyNDI2LDIyNDI4LDIyNDI5LDIyNDMwLDIyNDMxLDIyNDM3LDIyNDQwLDIyNDQyLDIyNDQ0LDIyNDQ3LDIyNDQ4LDIyNDQ5LDIyNDUxLDIyNDUzLDIyNDU0LDIyNDU1LDIyNDU3LDIyNDU4LDIyNDU5LDIyNDYwLDIyNDYxLDIyNDYyLDIyNDYzLDIyNDY0LDIyNDY1LDIyNDY4LDIy'@; put 'NDY5LDIyNDcwLDIyNDcxLDIyNDcyLDIyNDczLDIyNDc0LDIyNDc2LDIyNDc3LDIyNDgwLDIyNDgxLDIyNDgzLDIyNDg2LDIyNDg3LDIyNDkxLDIyNDkyLDIyNDk0LDIyNDk3LDIyNDk4LDIyNDk5LDIyNTAxLDIyNTAyLDIyNTAzLDIyNTA0LDIyNTA1LDIyNTA2LDIyNTA3LDIyNTA4LDIyNTEw'@; put 'LDIyNTEyLDIyNTEzLDIyNTE0LDIyNTE1LDIyNTE3LDIyNTE4LDIyNTE5LDIyNTIzLDIyNTI0LDIyNTI2LDIyNTI3LDIyNTI5LDIyNTMxLDIyNTMyLDIyNTMzLDIyNTM2LDIyNTM3LDIyNTM4LDIyNTQwLDIyNTQyLDIyNTQzLDIyNTQ0LDIyNTQ2LDIyNTQ3LDIyNTQ4LDIyNTUwLDIyNTUxLDIy'@; put 'NTUyLDIyNTU0LDIyNTU1LDIyNTU2LDIyNTU3LDIyNTU5LDIyNTYyLDIyNTYzLDIyNTY1LDIyNTY2LDIyNTY3LDIyNTY4LDIyNTY5LDIyNTcxLDIyNTcyLDIyNTczLDIyNTc0LDIyNTc1LDIyNTc3LDIyNTc4LDIyNTc5LDIyNTgwLDIyNTgyLDIyNTgzLDIyNTg0LDIyNTg1LDIyNTg2LDIyNTg3'@; put 'LDIyNTg4LDIyNTg5LDIyNTkwLDIyNTkxLDIyNTkyLDIyNTkzLDIyNTk0LDIyNTk1LDIyNTk3LDIyNTk4LDIyNTk5LDIyNjAwLDIyNjAxLDIyNjAyLDIyNjAzLDIyNjA2LDIyNjA3LDIyNjA4LDIyNjEwLDIyNjExLDIyNjEzLDIyNjE0LDIyNjE1LDIyNjE3LDIyNjE4LDIyNjE5LDIyNjIwLDIy'@; put 'NjIxLDIyNjIzLDIyNjI0LDIyNjI1LDIyNjI2LDIyNjI3LDIyNjI4LDIyNjMwLDIyNjMxLDIyNjMyLDIyNjMzLDIyNjM0LDIyNjM3LDIyNjM4LDIyNjM5LDIyNjQwLDIyNjQxLDIyNjQyLDIyNjQzLDIyNjQ0LDIyNjQ1LDIyNjQ2LDIyNjQ3LDIyNjQ4LDIyNjQ5LDIyNjUwLDIyNjUxLDIyNjUy'@; put 'LDIyNjUzLDIyNjU1LDIyNjU4LDIyNjYwLDIyNjYyLDIyNjYzLDIyNjY0LDIyNjY2LDIyNjY3LDIyNjY4LDIyNjY5LDIyNjcwLDIyNjcxLDIyNjcyLDIyNjczLDIyNjc2LDIyNjc3LDIyNjc4LDIyNjc5LDIyNjgwLDIyNjgzLDIyNjg0LDIyNjg1LDIyNjg4LDIyNjg5LDIyNjkwLDIyNjkxLDIy'@; put 'NjkyLDIyNjkzLDIyNjk0LDIyNjk1LDIyNjk4LDIyNjk5LDIyNzAwLDIyNzAxLDIyNzAyLDIyNzAzLDIyNzA0LDIyNzA1LDIyNzA2LDIyNzA3LDIyNzA4LDIyNzA5LDIyNzEwLDIyNzExLDIyNzEyLDIyNzEzLDIyNzE0LDIyNzE1LDIyNzE3LDIyNzE4LDIyNzE5LDIyNzIwLDIyNzIyLDIyNzIz'@; put 'LDIyNzI0LDIyNzI2LDIyNzI3LDIyNzI4LDIyNzI5LDIyNzMwLDIyNzMxLDIyNzMyLDIyNzMzLDIyNzM0LDIyNzM1LDIyNzM2LDIyNzM4LDIyNzM5LDIyNzQwLDIyNzQyLDIyNzQzLDIyNzQ0LDIyNzQ1LDIyNzQ2LDIyNzQ3LDIyNzQ4LDIyNzQ5LDIyNzUwLDIyNzUxLDIyNzUyLDIyNzUzLDIy'@; put 'NzU0LDIyNzU1LDIyNzU3LDIyNzU4LDIyNzU5LDIyNzYwLDIyNzYxLDIyNzYyLDIyNzY1LDIyNzY3LDIyNzY5LDIyNzcwLDIyNzcyLDIyNzczLDIyNzc1LDIyNzc2LDIyNzc4LDIyNzc5LDIyNzgwLDIyNzgxLDIyNzgyLDIyNzgzLDIyNzg0LDIyNzg1LDIyNzg3LDIyNzg5LDIyNzkwLDIyNzky'@; put 'LDIyNzkzLDIyNzk0LDIyNzk1LDIyNzk2LDIyNzk4LDIyODAwLDIyODAxLDIyODAyLDIyODAzLDIyODA3LDIyODA4LDIyODExLDIyODEzLDIyODE0LDIyODE2LDIyODE3LDIyODE4LDIyODE5LDIyODIyLDIyODI0LDIyODI4LDIyODMyLDIyODM0LDIyODM1LDIyODM3LDIyODM4LDIyODQzLDIy'@; put 'ODQ1LDIyODQ2LDIyODQ3LDIyODQ4LDIyODUxLDIyODUzLDIyODU0LDIyODU4LDIyODYwLDIyODYxLDIyODY0LDIyODY2LDIyODY3LDIyODczLDIyODc1LDIyODc2LDIyODc3LDIyODc4LDIyODc5LDIyODgxLDIyODgzLDIyODg0LDIyODg2LDIyODg3LDIyODg4LDIyODg5LDIyODkwLDIyODkx'@; put 'LDIyODkyLDIyODkzLDIyODk0LDIyODk1LDIyODk2LDIyODk3LDIyODk4LDIyOTAxLDIyOTAzLDIyOTA2LDIyOTA3LDIyOTA4LDIyOTEwLDIyOTExLDIyOTEyLDIyOTE3LDIyOTIxLDIyOTIzLDIyOTI0LDIyOTI2LDIyOTI3LDIyOTI4LDIyOTI5LDIyOTMyLDIyOTMzLDIyOTM2LDIyOTM4LDIy'@; put 'OTM5LDIyOTQwLDIyOTQxLDIyOTQzLDIyOTQ0LDIyOTQ1LDIyOTQ2LDIyOTUwLDIyOTUxLDIyOTU2LDIyOTU3LDIyOTYwLDIyOTYxLDIyOTYzLDIyOTY0LDIyOTY1LDIyOTY2LDIyOTY3LDIyOTY4LDIyOTcwLDIyOTcyLDIyOTczLDIyOTc1LDIyOTc2LDIyOTc3LDIyOTc4LDIyOTc5LDIyOTgw'@; put 'LDIyOTgxLDIyOTgzLDIyOTg0LDIyOTg1LDIyOTg4LDIyOTg5LDIyOTkwLDIyOTkxLDIyOTk3LDIyOTk4LDIzMDAxLDIzMDAzLDIzMDA2LDIzMDA3LDIzMDA4LDIzMDA5LDIzMDEwLDIzMDEyLDIzMDE0LDIzMDE1LDIzMDE3LDIzMDE4LDIzMDE5LDIzMDIxLDIzMDIyLDIzMDIzLDIzMDI0LDIz'@; put 'MDI1LDIzMDI2LDIzMDI3LDIzMDI4LDIzMDI5LDIzMDMwLDIzMDMxLDIzMDMyLDIzMDM0LDIzMDM2LDIzMDM3LDIzMDM4LDIzMDQwLDIzMDQyLDIzMDUwLDIzMDUxLDIzMDUzLDIzMDU0LDIzMDU1LDIzMDU2LDIzMDU4LDIzMDYwLDIzMDYxLDIzMDYyLDIzMDYzLDIzMDY1LDIzMDY2LDIzMDY3'@; put 'LDIzMDY5LDIzMDcwLDIzMDczLDIzMDc0LDIzMDc2LDIzMDc4LDIzMDc5LDIzMDgwLDIzMDgyLDIzMDgzLDIzMDg0LDIzMDg1LDIzMDg2LDIzMDg3LDIzMDg4LDIzMDkxLDIzMDkzLDIzMDk1LDIzMDk2LDIzMDk3LDIzMDk4LDIzMDk5LDIzMTAxLDIzMTAyLDIzMTAzLDIzMTA1LDIzMTA2LDIz'@; put 'MTA3LDIzMTA4LDIzMTA5LDIzMTExLDIzMTEyLDIzMTE1LDIzMTE2LDIzMTE3LDIzMTE4LDIzMTE5LDIzMTIwLDIzMTIxLDIzMTIyLDIzMTIzLDIzMTI0LDIzMTI2LDIzMTI3LDIzMTI4LDIzMTI5LDIzMTMxLDIzMTMyLDIzMTMzLDIzMTM0LDIzMTM1LDIzMTM2LDIzMTM3LDIzMTM5LDIzMTQw'@; put 'LDIzMTQxLDIzMTQyLDIzMTQ0LDIzMTQ1LDIzMTQ3LDIzMTQ4LDIzMTQ5LDIzMTUwLDIzMTUxLDIzMTUyLDIzMTUzLDIzMTU0LDIzMTU1LDIzMTYwLDIzMTYxLDIzMTYzLDIzMTY0LDIzMTY1LDIzMTY2LDIzMTY4LDIzMTY5LDIzMTcwLDIzMTcxLDIzMTcyLDIzMTczLDIzMTc0LDIzMTc1LDIz'@; put 'MTc2LDIzMTc3LDIzMTc4LDIzMTc5LDIzMTgwLDIzMTgxLDIzMTgyLDIzMTgzLDIzMTg0LDIzMTg1LDIzMTg3LDIzMTg4LDIzMTg5LDIzMTkwLDIzMTkxLDIzMTkyLDIzMTkzLDIzMTk2LDIzMTk3LDIzMTk4LDIzMTk5LDIzMjAwLDIzMjAxLDIzMjAyLDIzMjAzLDIzMjA0LDIzMjA1LDIzMjA2'@; put 'LDIzMjA3LDIzMjA4LDIzMjA5LDIzMjExLDIzMjEyLDIzMjEzLDIzMjE0LDIzMjE1LDIzMjE2LDIzMjE3LDIzMjIwLDIzMjIyLDIzMjIzLDIzMjI1LDIzMjI2LDIzMjI3LDIzMjI4LDIzMjI5LDIzMjMxLDIzMjMyLDIzMjM1LDIzMjM2LDIzMjM3LDIzMjM4LDIzMjM5LDIzMjQwLDIzMjQyLDIz'@; put 'MjQzLDIzMjQ1LDIzMjQ2LDIzMjQ3LDIzMjQ4LDIzMjQ5LDIzMjUxLDIzMjUzLDIzMjU1LDIzMjU3LDIzMjU4LDIzMjU5LDIzMjYxLDIzMjYyLDIzMjYzLDIzMjY2LDIzMjY4LDIzMjY5LDIzMjcxLDIzMjcyLDIzMjc0LDIzMjc2LDIzMjc3LDIzMjc4LDIzMjc5LDIzMjgwLDIzMjgyLDIzMjgz'@; put 'LDIzMjg0LDIzMjg1LDIzMjg2LDIzMjg3LDIzMjg4LDIzMjg5LDIzMjkwLDIzMjkxLDIzMjkyLDIzMjkzLDIzMjk0LDIzMjk1LDIzMjk2LDIzMjk3LDIzMjk4LDIzMjk5LDIzMzAwLDIzMzAxLDIzMzAyLDIzMzAzLDIzMzA0LDIzMzA2LDIzMzA3LDIzMzA4LDIzMzA5LDIzMzEwLDIzMzExLDIz'@; put 'MzEyLDIzMzEzLDIzMzE0LDIzMzE1LDIzMzE2LDIzMzE3LDIzMzIwLDIzMzIxLDIzMzIyLDIzMzIzLDIzMzI0LDIzMzI1LDIzMzI2LDIzMzI3LDIzMzI4LDIzMzI5LDIzMzMwLDIzMzMxLDIzMzMyLDIzMzMzLDIzMzM0LDIzMzM1LDIzMzM2LDIzMzM3LDIzMzM4LDIzMzM5LDIzMzQwLDIzMzQx'@; put 'LDIzMzQyLDIzMzQzLDIzMzQ0LDIzMzQ1LDIzMzQ3LDIzMzQ5LDIzMzUwLDIzMzUyLDIzMzUzLDIzMzU0LDIzMzU1LDIzMzU2LDIzMzU3LDIzMzU4LDIzMzU5LDIzMzYxLDIzMzYyLDIzMzYzLDIzMzY0LDIzMzY1LDIzMzY2LDIzMzY3LDIzMzY4LDIzMzY5LDIzMzcwLDIzMzcxLDIzMzcyLDIz'@; put 'MzczLDIzMzc0LDIzMzc1LDIzMzc4LDIzMzgyLDIzMzkwLDIzMzkyLDIzMzkzLDIzMzk5LDIzNDAwLDIzNDAzLDIzNDA1LDIzNDA2LDIzNDA3LDIzNDEwLDIzNDEyLDIzNDE0LDIzNDE1LDIzNDE2LDIzNDE3LDIzNDE5LDIzNDIwLDIzNDIyLDIzNDIzLDIzNDI2LDIzNDMwLDIzNDM0LDIzNDM3'@; put 'LDIzNDM4LDIzNDQwLDIzNDQxLDIzNDQyLDIzNDQ0LDIzNDQ2LDIzNDU1LDIzNDYzLDIzNDY0LDIzNDY1LDIzNDY4LDIzNDY5LDIzNDcwLDIzNDcxLDIzNDczLDIzNDc0LDIzNDc5LDIzNDgyLDIzNDgzLDIzNDg0LDIzNDg4LDIzNDg5LDIzNDkxLDIzNDk2LDIzNDk3LDIzNDk4LDIzNDk5LDIz'@; put 'NTAxLDIzNTAyLDIzNTAzLDIzNTA1LDIzNTA4LDIzNTA5LDIzNTEwLDIzNTExLDIzNTEyLDIzNTEzLDIzNTE0LDIzNTE1LDIzNTE2LDIzNTIwLDIzNTIyLDIzNTIzLDIzNTI2LDIzNTI3LDIzNTI5LDIzNTMwLDIzNTMxLDIzNTMyLDIzNTMzLDIzNTM1LDIzNTM3LDIzNTM4LDIzNTM5LDIzNTQw'@; put 'LDIzNTQxLDIzNTQyLDIzNTQzLDIzNTQ5LDIzNTUwLDIzNTUyLDIzNTU0LDIzNTU1LDIzNTU3LDIzNTU5LDIzNTYwLDIzNTYzLDIzNTY0LDIzNTY1LDIzNTY2LDIzNTY4LDIzNTcwLDIzNTcxLDIzNTc1LDIzNTc3LDIzNTc5LDIzNTgyLDIzNTgzLDIzNTg0LDIzNTg1LDIzNTg3LDIzNTkwLDIz'@; put 'NTkyLDIzNTkzLDIzNTk0LDIzNTk1LDIzNTk3LDIzNTk4LDIzNTk5LDIzNjAwLDIzNjAyLDIzNjAzLDIzNjA1LDIzNjA2LDIzNjA3LDIzNjE5LDIzNjIwLDIzNjIyLDIzNjIzLDIzNjI4LDIzNjI5LDIzNjM0LDIzNjM1LDIzNjM2LDIzNjM4LDIzNjM5LDIzNjQwLDIzNjQyLDIzNjQzLDIzNjQ0'@; put 'LDIzNjQ1LDIzNjQ3LDIzNjUwLDIzNjUyLDIzNjU1LDIzNjU2LDIzNjU3LDIzNjU4LDIzNjU5LDIzNjYwLDIzNjYxLDIzNjY0LDIzNjY2LDIzNjY3LDIzNjY4LDIzNjY5LDIzNjcwLDIzNjcxLDIzNjcyLDIzNjc1LDIzNjc2LDIzNjc3LDIzNjc4LDIzNjgwLDIzNjgzLDIzNjg0LDIzNjg1LDIz'@; put 'Njg2LDIzNjg3LDIzNjg5LDIzNjkwLDIzNjkxLDIzNjk0LDIzNjk1LDIzNjk4LDIzNjk5LDIzNzAxLDIzNzA5LDIzNzEwLDIzNzExLDIzNzEyLDIzNzEzLDIzNzE2LDIzNzE3LDIzNzE4LDIzNzE5LDIzNzIwLDIzNzIyLDIzNzI2LDIzNzI3LDIzNzI4LDIzNzMwLDIzNzMyLDIzNzM0LDIzNzM3'@; put 'LDIzNzM4LDIzNzM5LDIzNzQwLDIzNzQyLDIzNzQ0LDIzNzQ2LDIzNzQ3LDIzNzQ5LDIzNzUwLDIzNzUxLDIzNzUyLDIzNzUzLDIzNzU0LDIzNzU2LDIzNzU3LDIzNzU4LDIzNzU5LDIzNzYwLDIzNzYxLDIzNzYzLDIzNzY0LDIzNzY1LDIzNzY2LDIzNzY3LDIzNzY4LDIzNzcwLDIzNzcxLDIz'@; put 'NzcyLDIzNzczLDIzNzc0LDIzNzc1LDIzNzc2LDIzNzc4LDIzNzc5LDIzNzgzLDIzNzg1LDIzNzg3LDIzNzg4LDIzNzkwLDIzNzkxLDIzNzkzLDIzNzk0LDIzNzk1LDIzNzk2LDIzNzk3LDIzNzk4LDIzNzk5LDIzODAwLDIzODAxLDIzODAyLDIzODA0LDIzODA1LDIzODA2LDIzODA3LDIzODA4'@; put 'LDIzODA5LDIzODEyLDIzODEzLDIzODE2LDIzODE3LDIzODE4LDIzODE5LDIzODIwLDIzODIxLDIzODIzLDIzODI0LDIzODI1LDIzODI2LDIzODI3LDIzODI5LDIzODMxLDIzODMyLDIzODMzLDIzODM0LDIzODM2LDIzODM3LDIzODM5LDIzODQwLDIzODQxLDIzODQyLDIzODQzLDIzODQ1LDIz'@; put 'ODQ4LDIzODUwLDIzODUxLDIzODUyLDIzODU1LDIzODU2LDIzODU3LDIzODU4LDIzODU5LDIzODYxLDIzODYyLDIzODYzLDIzODY0LDIzODY1LDIzODY2LDIzODY3LDIzODY4LDIzODcxLDIzODcyLDIzODczLDIzODc0LDIzODc1LDIzODc2LDIzODc3LDIzODc4LDIzODgwLDIzODgxLDIzODg1'@; put 'LDIzODg2LDIzODg3LDIzODg4LDIzODg5LDIzODkwLDIzODkxLDIzODkyLDIzODkzLDIzODk0LDIzODk1LDIzODk3LDIzODk4LDIzOTAwLDIzOTAyLDIzOTAzLDIzOTA0LDIzOTA1LDIzOTA2LDIzOTA3LDIzOTA4LDIzOTA5LDIzOTEwLDIzOTExLDIzOTEyLDIzOTE0LDIzOTE3LDIzOTE4LDIz'@; put 'OTIwLDIzOTIxLDIzOTIyLDIzOTIzLDIzOTI1LDIzOTI2LDIzOTI3LDIzOTI4LDIzOTI5LDIzOTMwLDIzOTMxLDIzOTMyLDIzOTMzLDIzOTM0LDIzOTM1LDIzOTM2LDIzOTM3LDIzOTM5LDIzOTQwLDIzOTQxLDIzOTQyLDIzOTQzLDIzOTQ0LDIzOTQ1LDIzOTQ2LDIzOTQ3LDIzOTQ4LDIzOTQ5'@; put 'LDIzOTUwLDIzOTUxLDIzOTUyLDIzOTUzLDIzOTU0LDIzOTU1LDIzOTU2LDIzOTU3LDIzOTU4LDIzOTU5LDIzOTYwLDIzOTYyLDIzOTYzLDIzOTY0LDIzOTY2LDIzOTY3LDIzOTY4LDIzOTY5LDIzOTcwLDIzOTcxLDIzOTcyLDIzOTczLDIzOTc0LDIzOTc1LDIzOTc2LDIzOTc3LDIzOTc4LDIz'@; put 'OTc5LDIzOTgwLDIzOTgxLDIzOTgyLDIzOTgzLDIzOTg0LDIzOTg1LDIzOTg2LDIzOTg3LDIzOTg4LDIzOTg5LDIzOTkwLDIzOTkyLDIzOTkzLDIzOTk0LDIzOTk1LDIzOTk2LDIzOTk3LDIzOTk4LDIzOTk5LDI0ZTMsMjQwMDEsMjQwMDIsMjQwMDMsMjQwMDQsMjQwMDYsMjQwMDcsMjQwMDgs'@; put 'MjQwMDksMjQwMTAsMjQwMTEsMjQwMTIsMjQwMTQsMjQwMTUsMjQwMTYsMjQwMTcsMjQwMTgsMjQwMTksMjQwMjAsMjQwMjEsMjQwMjIsMjQwMjMsMjQwMjQsMjQwMjUsMjQwMjYsMjQwMjgsMjQwMzEsMjQwMzIsMjQwMzUsMjQwMzYsMjQwNDIsMjQwNDQsMjQwNDUsMjQwNDgsMjQwNTMsMjQw'@; put 'NTQsMjQwNTYsMjQwNTcsMjQwNTgsMjQwNTksMjQwNjAsMjQwNjMsMjQwNjQsMjQwNjgsMjQwNzEsMjQwNzMsMjQwNzQsMjQwNzUsMjQwNzcsMjQwNzgsMjQwODIsMjQwODMsMjQwODcsMjQwOTQsMjQwOTUsMjQwOTYsMjQwOTcsMjQwOTgsMjQwOTksMjQxMDAsMjQxMDEsMjQxMDQsMjQxMDUs'@; put 'MjQxMDYsMjQxMDcsMjQxMDgsMjQxMTEsMjQxMTIsMjQxMTQsMjQxMTUsMjQxMTYsMjQxMTcsMjQxMTgsMjQxMjEsMjQxMjIsMjQxMjYsMjQxMjcsMjQxMjgsMjQxMjksMjQxMzEsMjQxMzQsMjQxMzUsMjQxMzYsMjQxMzcsMjQxMzgsMjQxMzksMjQxNDEsMjQxNDIsMjQxNDMsMjQxNDQsMjQx'@; put 'NDUsMjQxNDYsMjQxNDcsMjQxNTAsMjQxNTEsMjQxNTIsMjQxNTMsMjQxNTQsMjQxNTYsMjQxNTcsMjQxNTksMjQxNjAsMjQxNjMsMjQxNjQsMjQxNjUsMjQxNjYsMjQxNjcsMjQxNjgsMjQxNjksMjQxNzAsMjQxNzEsMjQxNzIsMjQxNzMsMjQxNzQsMjQxNzUsMjQxNzYsMjQxNzcsMjQxODEs'@; put 'MjQxODMsMjQxODUsMjQxOTAsMjQxOTMsMjQxOTQsMjQxOTUsMjQxOTcsMjQyMDAsMjQyMDEsMjQyMDQsMjQyMDUsMjQyMDYsMjQyMTAsMjQyMTYsMjQyMTksMjQyMjEsMjQyMjUsMjQyMjYsMjQyMjcsMjQyMjgsMjQyMzIsMjQyMzMsMjQyMzQsMjQyMzUsMjQyMzYsMjQyMzgsMjQyMzksMjQy'@; put 'NDAsMjQyNDEsMjQyNDIsMjQyNDQsMjQyNTAsMjQyNTEsMjQyNTIsMjQyNTMsMjQyNTUsMjQyNTYsMjQyNTcsMjQyNTgsMjQyNTksMjQyNjAsMjQyNjEsMjQyNjIsMjQyNjMsMjQyNjQsMjQyNjcsMjQyNjgsMjQyNjksMjQyNzAsMjQyNzEsMjQyNzIsMjQyNzYsMjQyNzcsMjQyNzksMjQyODAs'@; put 'MjQyODEsMjQyODIsMjQyODQsMjQyODUsMjQyODYsMjQyODcsMjQyODgsMjQyODksMjQyOTAsMjQyOTEsMjQyOTIsMjQyOTMsMjQyOTQsMjQyOTUsMjQyOTcsMjQyOTksMjQzMDAsMjQzMDEsMjQzMDIsMjQzMDMsMjQzMDQsMjQzMDUsMjQzMDYsMjQzMDcsMjQzMDksMjQzMTIsMjQzMTMsMjQz'@; put 'MTUsMjQzMTYsMjQzMTcsMjQzMjUsMjQzMjYsMjQzMjcsMjQzMjksMjQzMzIsMjQzMzMsMjQzMzQsMjQzMzYsMjQzMzgsMjQzNDAsMjQzNDIsMjQzNDUsMjQzNDYsMjQzNDgsMjQzNDksMjQzNTAsMjQzNTMsMjQzNTQsMjQzNTUsMjQzNTYsMjQzNjAsMjQzNjMsMjQzNjQsMjQzNjYsMjQzNjgs'@; put 'MjQzNzAsMjQzNzEsMjQzNzIsMjQzNzMsMjQzNzQsMjQzNzUsMjQzNzYsMjQzNzksMjQzODEsMjQzODIsMjQzODMsMjQzODUsMjQzODYsMjQzODcsMjQzODgsMjQzODksMjQzOTAsMjQzOTEsMjQzOTIsMjQzOTMsMjQzOTQsMjQzOTUsMjQzOTYsMjQzOTcsMjQzOTgsMjQzOTksMjQ0MDEsMjQ0'@; put 'MDQsMjQ0MDksMjQ0MTAsMjQ0MTEsMjQ0MTIsMjQ0MTQsMjQ0MTUsMjQ0MTYsMjQ0MTksMjQ0MjEsMjQ0MjMsMjQ0MjQsMjQ0MjcsMjQ0MzAsMjQ0MzEsMjQ0MzQsMjQ0MzYsMjQ0MzcsMjQ0MzgsMjQ0NDAsMjQ0NDIsMjQ0NDUsMjQ0NDYsMjQ0NDcsMjQ0NTEsMjQ0NTQsMjQ0NjEsMjQ0NjIs'@; put 'MjQ0NjMsMjQ0NjUsMjQ0NjcsMjQ0NjgsMjQ0NzAsMjQ0NzQsMjQ0NzUsMjQ0NzcsMjQ0NzgsMjQ0NzksMjQ0ODAsMjQ0ODIsMjQ0ODMsMjQ0ODQsMjQ0ODUsMjQ0ODYsMjQ0ODcsMjQ0ODksMjQ0OTEsMjQ0OTIsMjQ0OTUsMjQ0OTYsMjQ0OTcsMjQ0OTgsMjQ0OTksMjQ1MDAsMjQ1MDIsMjQ1'@; put 'MDQsMjQ1MDUsMjQ1MDYsMjQ1MDcsMjQ1MTAsMjQ1MTEsMjQ1MTIsMjQ1MTMsMjQ1MTQsMjQ1MTksMjQ1MjAsMjQ1MjIsMjQ1MjMsMjQ1MjYsMjQ1MzEsMjQ1MzIsMjQ1MzMsMjQ1MzgsMjQ1MzksMjQ1NDAsMjQ1NDIsMjQ1NDMsMjQ1NDYsMjQ1NDcsMjQ1NDksMjQ1NTAsMjQ1NTIsMjQ1NTMs'@; put 'MjQ1NTYsMjQ1NTksMjQ1NjAsMjQ1NjIsMjQ1NjMsMjQ1NjQsMjQ1NjYsMjQ1NjcsMjQ1NjksMjQ1NzAsMjQ1NzIsMjQ1ODMsMjQ1ODQsMjQ1ODUsMjQ1ODcsMjQ1ODgsMjQ1OTIsMjQ1OTMsMjQ1OTUsMjQ1OTksMjQ2MDAsMjQ2MDIsMjQ2MDYsMjQ2MDcsMjQ2MTAsMjQ2MTEsMjQ2MTIsMjQ2'@; put 'MjAsMjQ2MjEsMjQ2MjIsMjQ2MjQsMjQ2MjUsMjQ2MjYsMjQ2MjcsMjQ2MjgsMjQ2MzAsMjQ2MzEsMjQ2MzIsMjQ2MzMsMjQ2MzQsMjQ2MzcsMjQ2MzgsMjQ2NDAsMjQ2NDQsMjQ2NDUsMjQ2NDYsMjQ2NDcsMjQ2NDgsMjQ2NDksMjQ2NTAsMjQ2NTIsMjQ2NTQsMjQ2NTUsMjQ2NTcsMjQ2NTks'@; put 'MjQ2NjAsMjQ2NjIsMjQ2NjMsMjQ2NjQsMjQ2NjcsMjQ2NjgsMjQ2NzAsMjQ2NzEsMjQ2NzIsMjQ2NzMsMjQ2NzcsMjQ2NzgsMjQ2ODYsMjQ2ODksMjQ2OTAsMjQ2OTIsMjQ2OTMsMjQ2OTUsMjQ3MDIsMjQ3MDQsMjQ3MDUsMjQ3MDYsMjQ3MDksMjQ3MTAsMjQ3MTEsMjQ3MTIsMjQ3MTQsMjQ3'@; put 'MTUsMjQ3MTgsMjQ3MTksMjQ3MjAsMjQ3MjEsMjQ3MjMsMjQ3MjUsMjQ3MjcsMjQ3MjgsMjQ3MjksMjQ3MzIsMjQ3MzQsMjQ3MzcsMjQ3MzgsMjQ3NDAsMjQ3NDEsMjQ3NDMsMjQ3NDUsMjQ3NDYsMjQ3NTAsMjQ3NTIsMjQ3NTUsMjQ3NTcsMjQ3NTgsMjQ3NTksMjQ3NjEsMjQ3NjIsMjQ3NjUs'@; put 'MjQ3NjYsMjQ3NjcsMjQ3NjgsMjQ3NjksMjQ3NzAsMjQ3NzEsMjQ3NzIsMjQ3NzUsMjQ3NzYsMjQ3NzcsMjQ3ODAsMjQ3ODEsMjQ3ODIsMjQ3ODMsMjQ3ODQsMjQ3ODYsMjQ3ODcsMjQ3ODgsMjQ3OTAsMjQ3OTEsMjQ3OTMsMjQ3OTUsMjQ3OTgsMjQ4MDEsMjQ4MDIsMjQ4MDMsMjQ4MDQsMjQ4'@; put 'MDUsMjQ4MTAsMjQ4MTcsMjQ4MTgsMjQ4MjEsMjQ4MjMsMjQ4MjQsMjQ4MjcsMjQ4MjgsMjQ4MjksMjQ4MzAsMjQ4MzEsMjQ4MzQsMjQ4MzUsMjQ4MzYsMjQ4MzcsMjQ4MzksMjQ4NDIsMjQ4NDMsMjQ4NDQsMjQ4NDgsMjQ4NDksMjQ4NTAsMjQ4NTEsMjQ4NTIsMjQ4NTQsMjQ4NTUsMjQ4NTYs'@; put 'MjQ4NTcsMjQ4NTksMjQ4NjAsMjQ4NjEsMjQ4NjIsMjQ4NjUsMjQ4NjYsMjQ4NjksMjQ4NzIsMjQ4NzMsMjQ4NzQsMjQ4NzYsMjQ4NzcsMjQ4NzgsMjQ4NzksMjQ4ODAsMjQ4ODEsMjQ4ODIsMjQ4ODMsMjQ4ODQsMjQ4ODUsMjQ4ODYsMjQ4ODcsMjQ4ODgsMjQ4ODksMjQ4OTAsMjQ4OTEsMjQ4'@; put 'OTIsMjQ4OTMsMjQ4OTQsMjQ4OTYsMjQ4OTcsMjQ4OTgsMjQ4OTksMjQ5MDAsMjQ5MDEsMjQ5MDIsMjQ5MDMsMjQ5MDUsMjQ5MDcsMjQ5MDksMjQ5MTEsMjQ5MTIsMjQ5MTQsMjQ5MTUsMjQ5MTYsMjQ5MTgsMjQ5MTksMjQ5MjAsMjQ5MjEsMjQ5MjIsMjQ5MjMsMjQ5MjQsMjQ5MjYsMjQ5Mjcs'@; put 'MjQ5MjgsMjQ5MjksMjQ5MzEsMjQ5MzIsMjQ5MzMsMjQ5MzQsMjQ5MzcsMjQ5MzgsMjQ5MzksMjQ5NDAsMjQ5NDEsMjQ5NDIsMjQ5NDMsMjQ5NDUsMjQ5NDYsMjQ5NDcsMjQ5NDgsMjQ5NTAsMjQ5NTIsMjQ5NTMsMjQ5NTQsMjQ5NTUsMjQ5NTYsMjQ5NTcsMjQ5NTgsMjQ5NTksMjQ5NjAsMjQ5'@; put 'NjEsMjQ5NjIsMjQ5NjMsMjQ5NjQsMjQ5NjUsMjQ5NjYsMjQ5NjcsMjQ5NjgsMjQ5NjksMjQ5NzAsMjQ5NzIsMjQ5NzMsMjQ5NzUsMjQ5NzYsMjQ5NzcsMjQ5NzgsMjQ5NzksMjQ5ODEsMjQ5ODIsMjQ5ODMsMjQ5ODQsMjQ5ODUsMjQ5ODYsMjQ5ODcsMjQ5ODgsMjQ5OTAsMjQ5OTEsMjQ5OTIs'@; put 'MjQ5OTMsMjQ5OTQsMjQ5OTUsMjQ5OTYsMjQ5OTcsMjQ5OTgsMjUwMDIsMjUwMDMsMjUwMDUsMjUwMDYsMjUwMDcsMjUwMDgsMjUwMDksMjUwMTAsMjUwMTEsMjUwMTIsMjUwMTMsMjUwMTQsMjUwMTYsMjUwMTcsMjUwMTgsMjUwMTksMjUwMjAsMjUwMjEsMjUwMjMsMjUwMjQsMjUwMjUsMjUw'@; put 'MjcsMjUwMjgsMjUwMjksMjUwMzAsMjUwMzEsMjUwMzMsMjUwMzYsMjUwMzcsMjUwMzgsMjUwMzksMjUwNDAsMjUwNDMsMjUwNDUsMjUwNDYsMjUwNDcsMjUwNDgsMjUwNDksMjUwNTAsMjUwNTEsMjUwNTIsMjUwNTMsMjUwNTQsMjUwNTUsMjUwNTYsMjUwNTcsMjUwNTgsMjUwNTksMjUwNjAs'@; put 'MjUwNjEsMjUwNjMsMjUwNjQsMjUwNjUsMjUwNjYsMjUwNjcsMjUwNjgsMjUwNjksMjUwNzAsMjUwNzEsMjUwNzIsMjUwNzMsMjUwNzQsMjUwNzUsMjUwNzYsMjUwNzgsMjUwNzksMjUwODAsMjUwODEsMjUwODIsMjUwODMsMjUwODQsMjUwODUsMjUwODYsMjUwODgsMjUwODksMjUwOTAsMjUw'@; put 'OTEsMjUwOTIsMjUwOTMsMjUwOTUsMjUwOTcsMjUxMDcsMjUxMDgsMjUxMTMsMjUxMTYsMjUxMTcsMjUxMTgsMjUxMjAsMjUxMjMsMjUxMjYsMjUxMjcsMjUxMjgsMjUxMjksMjUxMzEsMjUxMzMsMjUxMzUsMjUxMzYsMjUxMzcsMjUxMzgsMjUxNDEsMjUxNDIsMjUxNDQsMjUxNDUsMjUxNDYs'@; put 'MjUxNDcsMjUxNDgsMjUxNTQsMjUxNTYsMjUxNTcsMjUxNTgsMjUxNjIsMjUxNjcsMjUxNjgsMjUxNzMsMjUxNzQsMjUxNzUsMjUxNzcsMjUxNzgsMjUxODAsMjUxODEsMjUxODIsMjUxODMsMjUxODQsMjUxODUsMjUxODYsMjUxODgsMjUxODksMjUxOTIsMjUyMDEsMjUyMDIsMjUyMDQsMjUy'@; put 'MDUsMjUyMDcsMjUyMDgsMjUyMTAsMjUyMTEsMjUyMTMsMjUyMTcsMjUyMTgsMjUyMTksMjUyMjEsMjUyMjIsMjUyMjMsMjUyMjQsMjUyMjcsMjUyMjgsMjUyMjksMjUyMzAsMjUyMzEsMjUyMzIsMjUyMzYsMjUyNDEsMjUyNDQsMjUyNDUsMjUyNDYsMjUyNTEsMjUyNTQsMjUyNTUsMjUyNTcs'@; put 'MjUyNTgsMjUyNjEsMjUyNjIsMjUyNjMsMjUyNjQsMjUyNjYsMjUyNjcsMjUyNjgsMjUyNzAsMjUyNzEsMjUyNzIsMjUyNzQsMjUyNzgsMjUyODAsMjUyODEsMjUyODMsMjUyOTEsMjUyOTUsMjUyOTcsMjUzMDEsMjUzMDksMjUzMTAsMjUzMTIsMjUzMTMsMjUzMTYsMjUzMjIsMjUzMjMsMjUz'@; put 'MjgsMjUzMzAsMjUzMzMsMjUzMzYsMjUzMzcsMjUzMzgsMjUzMzksMjUzNDQsMjUzNDcsMjUzNDgsMjUzNDksMjUzNTAsMjUzNTQsMjUzNTUsMjUzNTYsMjUzNTcsMjUzNTksMjUzNjAsMjUzNjIsMjUzNjMsMjUzNjQsMjUzNjUsMjUzNjcsMjUzNjgsMjUzNjksMjUzNzIsMjUzODIsMjUzODMs'@; put 'MjUzODUsMjUzODgsMjUzODksMjUzOTAsMjUzOTIsMjUzOTMsMjUzOTUsMjUzOTYsMjUzOTcsMjUzOTgsMjUzOTksMjU0MDAsMjU0MDMsMjU0MDQsMjU0MDYsMjU0MDcsMjU0MDgsMjU0MDksMjU0MTIsMjU0MTUsMjU0MTYsMjU0MTgsMjU0MjUsMjU0MjYsMjU0MjcsMjU0MjgsMjU0MzAsMjU0'@; put 'MzEsMjU0MzIsMjU0MzMsMjU0MzQsMjU0MzUsMjU0MzYsMjU0MzcsMjU0NDAsMjU0NDQsMjU0NDUsMjU0NDYsMjU0NDgsMjU0NTAsMjU0NTEsMjU0NTIsMjU0NTUsMjU0NTYsMjU0NTgsMjU0NTksMjU0NjAsMjU0NjEsMjU0NjQsMjU0NjUsMjU0NjgsMjU0NjksMjU0NzAsMjU0NzEsMjU0NzMs'@; put 'MjU0NzUsMjU0NzYsMjU0NzcsMjU0NzgsMjU0ODMsMjU0ODUsMjU0ODksMjU0OTEsMjU0OTIsMjU0OTMsMjU0OTUsMjU0OTcsMjU0OTgsMjU0OTksMjU1MDAsMjU1MDEsMjU1MDIsMjU1MDMsMjU1MDUsMjU1MDgsMjU1MTAsMjU1MTUsMjU1MTksMjU1MjEsMjU1MjIsMjU1MjUsMjU1MjYsMjU1'@; put 'MjksMjU1MzEsMjU1MzMsMjU1MzUsMjU1MzYsMjU1MzcsMjU1MzgsMjU1MzksMjU1NDEsMjU1NDMsMjU1NDQsMjU1NDYsMjU1NDcsMjU1NDgsMjU1NTMsMjU1NTUsMjU1NTYsMjU1NTcsMjU1NTksMjU1NjAsMjU1NjEsMjU1NjIsMjU1NjMsMjU1NjQsMjU1NjUsMjU1NjcsMjU1NzAsMjU1NzIs'@; put 'MjU1NzMsMjU1NzQsMjU1NzUsMjU1NzYsMjU1NzksMjU1ODAsMjU1ODIsMjU1ODMsMjU1ODQsMjU1ODUsMjU1ODcsMjU1ODksMjU1OTEsMjU1OTMsMjU1OTQsMjU1OTUsMjU1OTYsMjU1OTgsMjU2MDMsMjU2MDQsMjU2MDYsMjU2MDcsMjU2MDgsMjU2MDksMjU2MTAsMjU2MTMsMjU2MTQsMjU2'@; put 'MTcsMjU2MTgsMjU2MjEsMjU2MjIsMjU2MjMsMjU2MjQsMjU2MjUsMjU2MjYsMjU2MjksMjU2MzEsMjU2MzQsMjU2MzUsMjU2MzYsMjU2MzcsMjU2MzksMjU2NDAsMjU2NDEsMjU2NDMsMjU2NDYsMjU2NDcsMjU2NDgsMjU2NDksMjU2NTAsMjU2NTEsMjU2NTMsMjU2NTQsMjU2NTUsMjU2NTYs'@; put 'MjU2NTcsMjU2NTksMjU2NjAsMjU2NjIsMjU2NjQsMjU2NjYsMjU2NjcsMjU2NzMsMjU2NzUsMjU2NzYsMjU2NzcsMjU2NzgsMjU2NzksMjU2ODAsMjU2ODEsMjU2ODMsMjU2ODUsMjU2ODYsMjU2ODcsMjU2ODksMjU2OTAsMjU2OTEsMjU2OTIsMjU2OTMsMjU2OTUsMjU2OTYsMjU2OTcsMjU2'@; put 'OTgsMjU2OTksMjU3MDAsMjU3MDEsMjU3MDIsMjU3MDQsMjU3MDYsMjU3MDcsMjU3MDgsMjU3MTAsMjU3MTEsMjU3MTIsMjU3MTMsMjU3MTQsMjU3MTUsMjU3MTYsMjU3MTcsMjU3MTgsMjU3MTksMjU3MjMsMjU3MjQsMjU3MjUsMjU3MjYsMjU3MjcsMjU3MjgsMjU3MjksMjU3MzEsMjU3MzQs'@; put 'MjU3MzYsMjU3MzcsMjU3MzgsMjU3MzksMjU3NDAsMjU3NDEsMjU3NDIsMjU3NDMsMjU3NDQsMjU3NDcsMjU3NDgsMjU3NTEsMjU3NTIsMjU3NTQsMjU3NTUsMjU3NTYsMjU3NTcsMjU3NTksMjU3NjAsMjU3NjEsMjU3NjIsMjU3NjMsMjU3NjUsMjU3NjYsMjU3NjcsMjU3NjgsMjU3NzAsMjU3'@; put 'NzEsMjU3NzUsMjU3NzcsMjU3NzgsMjU3NzksMjU3ODAsMjU3ODIsMjU3ODUsMjU3ODcsMjU3ODksMjU3OTAsMjU3OTEsMjU3OTMsMjU3OTUsMjU3OTYsMjU3OTgsMjU3OTksMjU4MDAsMjU4MDEsMjU4MDIsMjU4MDMsMjU4MDQsMjU4MDcsMjU4MDksMjU4MTEsMjU4MTIsMjU4MTMsMjU4MTQs'@; put 'MjU4MTcsMjU4MTgsMjU4MTksMjU4MjAsMjU4MjEsMjU4MjMsMjU4MjQsMjU4MjUsMjU4MjcsMjU4MjksMjU4MzEsMjU4MzIsMjU4MzMsMjU4MzQsMjU4MzUsMjU4MzYsMjU4MzcsMjU4MzgsMjU4MzksMjU4NDAsMjU4NDEsMjU4NDIsMjU4NDMsMjU4NDQsMjU4NDUsMjU4NDYsMjU4NDcsMjU4'@; put 'NDgsMjU4NDksMjU4NTAsMjU4NTEsMjU4NTIsMjU4NTMsMjU4NTQsMjU4NTUsMjU4NTcsMjU4NTgsMjU4NTksMjU4NjAsMjU4NjEsMjU4NjIsMjU4NjMsMjU4NjQsMjU4NjYsMjU4NjcsMjU4NjgsMjU4NjksMjU4NzAsMjU4NzEsMjU4NzIsMjU4NzMsMjU4NzUsMjU4NzYsMjU4NzcsMjU4Nzgs'@; put 'MjU4NzksMjU4ODEsMjU4ODIsMjU4ODMsMjU4ODQsMjU4ODUsMjU4ODYsMjU4ODcsMjU4ODgsMjU4ODksMjU4OTAsMjU4OTEsMjU4OTIsMjU4OTQsMjU4OTUsMjU4OTYsMjU4OTcsMjU4OTgsMjU5MDAsMjU5MDEsMjU5MDQsMjU5MDUsMjU5MDYsMjU5MDcsMjU5MTEsMjU5MTQsMjU5MTYsMjU5'@; put 'MTcsMjU5MjAsMjU5MjEsMjU5MjIsMjU5MjMsMjU5MjQsMjU5MjYsMjU5MjcsMjU5MzAsMjU5MzEsMjU5MzMsMjU5MzQsMjU5MzYsMjU5MzgsMjU5MzksMjU5NDAsMjU5NDMsMjU5NDQsMjU5NDYsMjU5NDgsMjU5NTEsMjU5NTIsMjU5NTMsMjU5NTYsMjU5NTcsMjU5NTksMjU5NjAsMjU5NjEs'@; put 'MjU5NjIsMjU5NjUsMjU5NjYsMjU5NjcsMjU5NjksMjU5NzEsMjU5NzMsMjU5NzQsMjU5NzYsMjU5NzcsMjU5NzgsMjU5NzksMjU5ODAsMjU5ODEsMjU5ODIsMjU5ODMsMjU5ODQsMjU5ODUsMjU5ODYsMjU5ODcsMjU5ODgsMjU5ODksMjU5OTAsMjU5OTIsMjU5OTMsMjU5OTQsMjU5OTcsMjU5'@; put 'OTgsMjU5OTksMjYwMDIsMjYwMDQsMjYwMDUsMjYwMDYsMjYwMDgsMjYwMTAsMjYwMTMsMjYwMTQsMjYwMTYsMjYwMTgsMjYwMTksMjYwMjIsMjYwMjQsMjYwMjYsMjYwMjgsMjYwMzAsMjYwMzMsMjYwMzQsMjYwMzUsMjYwMzYsMjYwMzcsMjYwMzgsMjYwMzksMjYwNDAsMjYwNDIsMjYwNDMs'@; put 'MjYwNDYsMjYwNDcsMjYwNDgsMjYwNTAsMjYwNTUsMjYwNTYsMjYwNTcsMjYwNTgsMjYwNjEsMjYwNjQsMjYwNjUsMjYwNjcsMjYwNjgsMjYwNjksMjYwNzIsMjYwNzMsMjYwNzQsMjYwNzUsMjYwNzYsMjYwNzcsMjYwNzgsMjYwNzksMjYwODEsMjYwODMsMjYwODQsMjYwOTAsMjYwOTEsMjYw'@; put 'OTgsMjYwOTksMjYxMDAsMjYxMDEsMjYxMDQsMjYxMDUsMjYxMDcsMjYxMDgsMjYxMDksMjYxMTAsMjYxMTEsMjYxMTMsMjYxMTYsMjYxMTcsMjYxMTksMjYxMjAsMjYxMjEsMjYxMjMsMjYxMjUsMjYxMjgsMjYxMjksMjYxMzAsMjYxMzQsMjYxMzUsMjYxMzYsMjYxMzgsMjYxMzksMjYxNDAs'@; put 'MjYxNDIsMjYxNDUsMjYxNDYsMjYxNDcsMjYxNDgsMjYxNTAsMjYxNTMsMjYxNTQsMjYxNTUsMjYxNTYsMjYxNTgsMjYxNjAsMjYxNjIsMjYxNjMsMjYxNjcsMjYxNjgsMjYxNjksMjYxNzAsMjYxNzEsMjYxNzMsMjYxNzUsMjYxNzYsMjYxNzgsMjYxODAsMjYxODEsMjYxODIsMjYxODMsMjYx'@; put 'ODQsMjYxODUsMjYxODYsMjYxODksMjYxOTAsMjYxOTIsMjYxOTMsMjYyMDAsMjYyMDEsMjYyMDMsMjYyMDQsMjYyMDUsMjYyMDYsMjYyMDgsMjYyMTAsMjYyMTEsMjYyMTMsMjYyMTUsMjYyMTcsMjYyMTgsMjYyMTksMjYyMjAsMjYyMjEsMjYyMjUsMjYyMjYsMjYyMjcsMjYyMjksMjYyMzIs'@; put 'MjYyMzMsMjYyMzUsMjYyMzYsMjYyMzcsMjYyMzksMjYyNDAsMjYyNDEsMjYyNDMsMjYyNDUsMjYyNDYsMjYyNDgsMjYyNDksMjYyNTAsMjYyNTEsMjYyNTMsMjYyNTQsMjYyNTUsMjYyNTYsMjYyNTgsMjYyNTksMjYyNjAsMjYyNjEsMjYyNjQsMjYyNjUsMjYyNjYsMjYyNjcsMjYyNjgsMjYy'@; put 'NzAsMjYyNzEsMjYyNzIsMjYyNzMsMjYyNzQsMjYyNzUsMjYyNzYsMjYyNzcsMjYyNzgsMjYyODEsMjYyODIsMjYyODMsMjYyODQsMjYyODUsMjYyODcsMjYyODgsMjYyODksMjYyOTAsMjYyOTEsMjYyOTMsMjYyOTQsMjYyOTUsMjYyOTYsMjYyOTgsMjYyOTksMjYzMDAsMjYzMDEsMjYzMDMs'@; put 'MjYzMDQsMjYzMDUsMjYzMDYsMjYzMDcsMjYzMDgsMjYzMDksMjYzMTAsMjYzMTEsMjYzMTIsMjYzMTMsMjYzMTQsMjYzMTUsMjYzMTYsMjYzMTcsMjYzMTgsMjYzMTksMjYzMjAsMjYzMjEsMjYzMjIsMjYzMjMsMjYzMjQsMjYzMjUsMjYzMjYsMjYzMjcsMjYzMjgsMjYzMzAsMjYzMzQsMjYz'@; put 'MzUsMjYzMzYsMjYzMzcsMjYzMzgsMjYzMzksMjYzNDAsMjYzNDEsMjYzNDMsMjYzNDQsMjYzNDYsMjYzNDcsMjYzNDgsMjYzNDksMjYzNTAsMjYzNTEsMjYzNTMsMjYzNTcsMjYzNTgsMjYzNjAsMjYzNjIsMjYzNjMsMjYzNjUsMjYzNjksMjYzNzAsMjYzNzEsMjYzNzIsMjYzNzMsMjYzNzQs'@; put 'MjYzNzUsMjYzODAsMjYzODIsMjYzODMsMjYzODUsMjYzODYsMjYzODcsMjYzOTAsMjYzOTIsMjYzOTMsMjYzOTQsMjYzOTYsMjYzOTgsMjY0MDAsMjY0MDEsMjY0MDIsMjY0MDMsMjY0MDQsMjY0MDUsMjY0MDcsMjY0MDksMjY0MTQsMjY0MTYsMjY0MTgsMjY0MTksMjY0MjIsMjY0MjMsMjY0'@; put 'MjQsMjY0MjUsMjY0MjcsMjY0MjgsMjY0MzAsMjY0MzEsMjY0MzMsMjY0MzYsMjY0MzcsMjY0MzksMjY0NDIsMjY0NDMsMjY0NDUsMjY0NTAsMjY0NTIsMjY0NTMsMjY0NTUsMjY0NTYsMjY0NTcsMjY0NTgsMjY0NTksMjY0NjEsMjY0NjYsMjY0NjcsMjY0NjgsMjY0NzAsMjY0NzEsMjY0NzUs'@; put 'MjY0NzYsMjY0NzgsMjY0ODEsMjY0ODQsMjY0ODYsMjY0ODgsMjY0ODksMjY0OTAsMjY0OTEsMjY0OTMsMjY0OTYsMjY0OTgsMjY0OTksMjY1MDEsMjY1MDIsMjY1MDQsMjY1MDYsMjY1MDgsMjY1MDksMjY1MTAsMjY1MTEsMjY1MTMsMjY1MTQsMjY1MTUsMjY1MTYsMjY1MTgsMjY1MjEsMjY1'@; put 'MjMsMjY1MjcsMjY1MjgsMjY1MjksMjY1MzIsMjY1MzQsMjY1MzcsMjY1NDAsMjY1NDIsMjY1NDUsMjY1NDYsMjY1NDgsMjY1NTMsMjY1NTQsMjY1NTUsMjY1NTYsMjY1NTcsMjY1NTgsMjY1NTksMjY1NjAsMjY1NjIsMjY1NjUsMjY1NjYsMjY1NjcsMjY1NjgsMjY1NjksMjY1NzAsMjY1NzEs'@; put 'MjY1NzIsMjY1NzMsMjY1NzQsMjY1ODEsMjY1ODIsMjY1ODMsMjY1ODcsMjY1OTEsMjY1OTMsMjY1OTUsMjY1OTYsMjY1OTgsMjY1OTksMjY2MDAsMjY2MDIsMjY2MDMsMjY2MDUsMjY2MDYsMjY2MTAsMjY2MTMsMjY2MTQsMjY2MTUsMjY2MTYsMjY2MTcsMjY2MTgsMjY2MTksMjY2MjAsMjY2'@; put 'MjIsMjY2MjUsMjY2MjYsMjY2MjcsMjY2MjgsMjY2MzAsMjY2MzcsMjY2NDAsMjY2NDIsMjY2NDQsMjY2NDUsMjY2NDgsMjY2NDksMjY2NTAsMjY2NTEsMjY2NTIsMjY2NTQsMjY2NTUsMjY2NTYsMjY2NTgsMjY2NTksMjY2NjAsMjY2NjEsMjY2NjIsMjY2NjMsMjY2NjQsMjY2NjcsMjY2Njgs'@; put 'MjY2NjksMjY2NzAsMjY2NzEsMjY2NzIsMjY2NzMsMjY2NzYsMjY2NzcsMjY2NzgsMjY2ODIsMjY2ODMsMjY2ODcsMjY2OTUsMjY2OTksMjY3MDEsMjY3MDMsMjY3MDYsMjY3MTAsMjY3MTEsMjY3MTIsMjY3MTMsMjY3MTQsMjY3MTUsMjY3MTYsMjY3MTcsMjY3MTgsMjY3MTksMjY3MzAsMjY3'@; put 'MzIsMjY3MzMsMjY3MzQsMjY3MzUsMjY3MzYsMjY3MzcsMjY3MzgsMjY3MzksMjY3NDEsMjY3NDQsMjY3NDUsMjY3NDYsMjY3NDcsMjY3NDgsMjY3NDksMjY3NTAsMjY3NTEsMjY3NTIsMjY3NTQsMjY3NTYsMjY3NTksMjY3NjAsMjY3NjEsMjY3NjIsMjY3NjMsMjY3NjQsMjY3NjUsMjY3NjYs'@; put 'MjY3NjgsMjY3NjksMjY3NzAsMjY3NzIsMjY3NzMsMjY3NzQsMjY3NzYsMjY3NzcsMjY3NzgsMjY3NzksMjY3ODAsMjY3ODEsMjY3ODIsMjY3ODMsMjY3ODQsMjY3ODUsMjY3ODcsMjY3ODgsMjY3ODksMjY3OTMsMjY3OTQsMjY3OTUsMjY3OTYsMjY3OTgsMjY4MDEsMjY4MDIsMjY4MDQsMjY4'@; put 'MDYsMjY4MDcsMjY4MDgsMjY4MDksMjY4MTAsMjY4MTEsMjY4MTIsMjY4MTMsMjY4MTQsMjY4MTUsMjY4MTcsMjY4MTksMjY4MjAsMjY4MjEsMjY4MjIsMjY4MjMsMjY4MjQsMjY4MjYsMjY4MjgsMjY4MzAsMjY4MzEsMjY4MzIsMjY4MzMsMjY4MzUsMjY4MzYsMjY4MzgsMjY4MzksMjY4NDEs'@; put 'MjY4NDMsMjY4NDQsMjY4NDUsMjY4NDYsMjY4NDcsMjY4NDksMjY4NTAsMjY4NTIsMjY4NTMsMjY4NTQsMjY4NTUsMjY4NTYsMjY4NTcsMjY4NTgsMjY4NTksMjY4NjAsMjY4NjEsMjY4NjMsMjY4NjYsMjY4NjcsMjY4NjgsMjY4NzAsMjY4NzEsMjY4NzIsMjY4NzUsMjY4NzcsMjY4NzgsMjY4'@; put 'NzksMjY4ODAsMjY4ODIsMjY4ODMsMjY4ODQsMjY4ODYsMjY4ODcsMjY4ODgsMjY4ODksMjY4OTAsMjY4OTIsMjY4OTUsMjY4OTcsMjY4OTksMjY5MDAsMjY5MDEsMjY5MDIsMjY5MDMsMjY5MDQsMjY5MDUsMjY5MDYsMjY5MDcsMjY5MDgsMjY5MDksMjY5MTAsMjY5MTMsMjY5MTQsMjY5MTUs'@; put 'MjY5MTcsMjY5MTgsMjY5MTksMjY5MjAsMjY5MjEsMjY5MjIsMjY5MjMsMjY5MjQsMjY5MjYsMjY5MjcsMjY5MjksMjY5MzAsMjY5MzEsMjY5MzMsMjY5MzQsMjY5MzUsMjY5MzYsMjY5MzgsMjY5MzksMjY5NDAsMjY5NDIsMjY5NDQsMjY5NDUsMjY5NDcsMjY5NDgsMjY5NDksMjY5NTAsMjY5'@; put 'NTEsMjY5NTIsMjY5NTMsMjY5NTQsMjY5NTUsMjY5NTYsMjY5NTcsMjY5NTgsMjY5NTksMjY5NjAsMjY5NjEsMjY5NjIsMjY5NjMsMjY5NjUsMjY5NjYsMjY5NjgsMjY5NjksMjY5NzEsMjY5NzIsMjY5NzUsMjY5NzcsMjY5NzgsMjY5ODAsMjY5ODEsMjY5ODMsMjY5ODQsMjY5ODUsMjY5ODYs'@; put 'MjY5ODgsMjY5ODksMjY5OTEsMjY5OTIsMjY5OTQsMjY5OTUsMjY5OTYsMjY5OTcsMjY5OTgsMjcwMDIsMjcwMDMsMjcwMDUsMjcwMDYsMjcwMDcsMjcwMDksMjcwMTEsMjcwMTMsMjcwMTgsMjcwMTksMjcwMjAsMjcwMjIsMjcwMjMsMjcwMjQsMjcwMjUsMjcwMjYsMjcwMjcsMjcwMzAsMjcw'@; put 'MzEsMjcwMzMsMjcwMzQsMjcwMzcsMjcwMzgsMjcwMzksMjcwNDAsMjcwNDEsMjcwNDIsMjcwNDMsMjcwNDQsMjcwNDUsMjcwNDYsMjcwNDksMjcwNTAsMjcwNTIsMjcwNTQsMjcwNTUsMjcwNTYsMjcwNTgsMjcwNTksMjcwNjEsMjcwNjIsMjcwNjQsMjcwNjUsMjcwNjYsMjcwNjgsMjcwNjks'@; put 'MjcwNzAsMjcwNzEsMjcwNzIsMjcwNzQsMjcwNzUsMjcwNzYsMjcwNzcsMjcwNzgsMjcwNzksMjcwODAsMjcwODEsMjcwODMsMjcwODUsMjcwODcsMjcwODksMjcwOTAsMjcwOTEsMjcwOTMsMjcwOTQsMjcwOTUsMjcwOTYsMjcwOTcsMjcwOTgsMjcxMDAsMjcxMDEsMjcxMDIsMjcxMDUsMjcx'@; put 'MDYsMjcxMDcsMjcxMDgsMjcxMDksMjcxMTAsMjcxMTEsMjcxMTIsMjcxMTMsMjcxMTQsMjcxMTUsMjcxMTYsMjcxMTgsMjcxMTksMjcxMjAsMjcxMjEsMjcxMjMsMjcxMjQsMjcxMjUsMjcxMjYsMjcxMjcsMjcxMjgsMjcxMjksMjcxMzAsMjcxMzEsMjcxMzIsMjcxMzQsMjcxMzYsMjcxMzcs'@; put 'MjcxMzgsMjcxMzksMjcxNDAsMjcxNDEsMjcxNDIsMjcxNDMsMjcxNDQsMjcxNDUsMjcxNDcsMjcxNDgsMjcxNDksMjcxNTAsMjcxNTEsMjcxNTIsMjcxNTMsMjcxNTQsMjcxNTUsMjcxNTYsMjcxNTcsMjcxNTgsMjcxNjEsMjcxNjIsMjcxNjMsMjcxNjQsMjcxNjUsMjcxNjYsMjcxNjgsMjcx'@; put 'NzAsMjcxNzEsMjcxNzIsMjcxNzMsMjcxNzQsMjcxNzUsMjcxNzcsMjcxNzksMjcxODAsMjcxODEsMjcxODIsMjcxODQsMjcxODYsMjcxODcsMjcxODgsMjcxOTAsMjcxOTEsMjcxOTIsMjcxOTMsMjcxOTQsMjcxOTUsMjcxOTYsMjcxOTksMjcyMDAsMjcyMDEsMjcyMDIsMjcyMDMsMjcyMDUs'@; put 'MjcyMDYsMjcyMDgsMjcyMDksMjcyMTAsMjcyMTEsMjcyMTIsMjcyMTMsMjcyMTQsMjcyMTUsMjcyMTcsMjcyMTgsMjcyMTksMjcyMjAsMjcyMjEsMjcyMjIsMjcyMjMsMjcyMjYsMjcyMjgsMjcyMjksMjcyMzAsMjcyMzEsMjcyMzIsMjcyMzQsMjcyMzUsMjcyMzYsMjcyMzgsMjcyMzksMjcy'@; put 'NDAsMjcyNDEsMjcyNDIsMjcyNDMsMjcyNDQsMjcyNDUsMjcyNDYsMjcyNDcsMjcyNDgsMjcyNTAsMjcyNTEsMjcyNTIsMjcyNTMsMjcyNTQsMjcyNTUsMjcyNTYsMjcyNTgsMjcyNTksMjcyNjEsMjcyNjIsMjcyNjMsMjcyNjUsMjcyNjYsMjcyNjcsMjcyNjksMjcyNzAsMjcyNzEsMjcyNzIs'@; put 'MjcyNzMsMjcyNzQsMjcyNzUsMjcyNzYsMjcyNzcsMjcyNzksMjcyODIsMjcyODMsMjcyODQsMjcyODUsMjcyODYsMjcyODgsMjcyODksMjcyOTAsMjcyOTEsMjcyOTIsMjcyOTMsMjcyOTQsMjcyOTUsMjcyOTcsMjcyOTgsMjcyOTksMjczMDAsMjczMDEsMjczMDIsMjczMDMsMjczMDQsMjcz'@; put 'MDYsMjczMDksMjczMTAsMjczMTEsMjczMTIsMjczMTMsMjczMTQsMjczMTUsMjczMTYsMjczMTcsMjczMTgsMjczMTksMjczMjAsMjczMjEsMjczMjIsMjczMjMsMjczMjQsMjczMjUsMjczMjYsMjczMjcsMjczMjgsMjczMjksMjczMzAsMjczMzEsMjczMzIsMjczMzMsMjczMzQsMjczMzUs'@; put 'MjczMzYsMjczMzcsMjczMzgsMjczMzksMjczNDAsMjczNDEsMjczNDIsMjczNDMsMjczNDQsMjczNDUsMjczNDYsMjczNDcsMjczNDgsMjczNDksMjczNTAsMjczNTEsMjczNTIsMjczNTMsMjczNTQsMjczNTUsMjczNTYsMjczNTcsMjczNTgsMjczNTksMjczNjAsMjczNjEsMjczNjIsMjcz'@; put 'NjMsMjczNjQsMjczNjUsMjczNjYsMjczNjcsMjczNjgsMjczNjksMjczNzAsMjczNzEsMjczNzIsMjczNzMsMjczNzQsMjczNzUsMjczNzYsMjczNzcsMjczNzgsMjczNzksMjczODAsMjczODEsMjczODIsMjczODMsMjczODQsMjczODUsMjczODYsMjczODcsMjczODgsMjczODksMjczOTAs'@; put 'MjczOTEsMjczOTIsMjczOTMsMjczOTQsMjczOTUsMjczOTYsMjczOTcsMjczOTgsMjczOTksMjc0MDAsMjc0MDEsMjc0MDIsMjc0MDMsMjc0MDQsMjc0MDUsMjc0MDYsMjc0MDcsMjc0MDgsMjc0MDksMjc0MTAsMjc0MTEsMjc0MTIsMjc0MTMsMjc0MTQsMjc0MTUsMjc0MTYsMjc0MTcsMjc0'@; put 'MTgsMjc0MTksMjc0MjAsMjc0MjEsMjc0MjIsMjc0MjMsMjc0MjksMjc0MzAsMjc0MzIsMjc0MzMsMjc0MzQsMjc0MzUsMjc0MzYsMjc0MzcsMjc0MzgsMjc0MzksMjc0NDAsMjc0NDEsMjc0NDMsMjc0NDQsMjc0NDUsMjc0NDYsMjc0NDgsMjc0NTEsMjc0NTIsMjc0NTMsMjc0NTUsMjc0NTYs'@; put 'Mjc0NTcsMjc0NTgsMjc0NjAsMjc0NjEsMjc0NjQsMjc0NjYsMjc0NjcsMjc0NjksMjc0NzAsMjc0NzEsMjc0NzIsMjc0NzMsMjc0NzQsMjc0NzUsMjc0NzYsMjc0NzcsMjc0NzgsMjc0NzksMjc0ODAsMjc0ODIsMjc0ODMsMjc0ODQsMjc0ODUsMjc0ODYsMjc0ODcsMjc0ODgsMjc0ODksMjc0'@; put 'OTYsMjc0OTcsMjc0OTksMjc1MDAsMjc1MDEsMjc1MDIsMjc1MDMsMjc1MDQsMjc1MDUsMjc1MDYsMjc1MDcsMjc1MDgsMjc1MDksMjc1MTAsMjc1MTEsMjc1MTIsMjc1MTQsMjc1MTcsMjc1MTgsMjc1MTksMjc1MjAsMjc1MjUsMjc1MjgsMjc1MzIsMjc1MzQsMjc1MzUsMjc1MzYsMjc1Mzcs'@; put 'Mjc1NDAsMjc1NDEsMjc1NDMsMjc1NDQsMjc1NDUsMjc1NDgsMjc1NDksMjc1NTAsMjc1NTEsMjc1NTIsMjc1NTQsMjc1NTUsMjc1NTYsMjc1NTcsMjc1NTgsMjc1NTksMjc1NjAsMjc1NjEsMjc1NjMsMjc1NjQsMjc1NjUsMjc1NjYsMjc1NjcsMjc1NjgsMjc1NjksMjc1NzAsMjc1NzQsMjc1'@; put 'NzYsMjc1NzcsMjc1NzgsMjc1NzksMjc1ODAsMjc1ODEsMjc1ODIsMjc1ODQsMjc1ODcsMjc1ODgsMjc1OTAsMjc1OTEsMjc1OTIsMjc1OTMsMjc1OTQsMjc1OTYsMjc1OTgsMjc2MDAsMjc2MDEsMjc2MDgsMjc2MTAsMjc2MTIsMjc2MTMsMjc2MTQsMjc2MTUsMjc2MTYsMjc2MTgsMjc2MTks'@; put 'Mjc2MjAsMjc2MjEsMjc2MjIsMjc2MjMsMjc2MjQsMjc2MjUsMjc2MjgsMjc2MjksMjc2MzAsMjc2MzIsMjc2MzMsMjc2MzQsMjc2MzYsMjc2MzgsMjc2MzksMjc2NDAsMjc2NDIsMjc2NDMsMjc2NDQsMjc2NDYsMjc2NDcsMjc2NDgsMjc2NDksMjc2NTAsMjc2NTEsMjc2NTIsMjc2NTYsMjc2'@; put 'NTcsMjc2NTgsMjc2NTksMjc2NjAsMjc2NjIsMjc2NjYsMjc2NzEsMjc2NzYsMjc2NzcsMjc2NzgsMjc2ODAsMjc2ODMsMjc2ODUsMjc2OTEsMjc2OTIsMjc2OTMsMjc2OTcsMjc2OTksMjc3MDIsMjc3MDMsMjc3MDUsMjc3MDYsMjc3MDcsMjc3MDgsMjc3MTAsMjc3MTEsMjc3MTUsMjc3MTYs'@; put 'Mjc3MTcsMjc3MjAsMjc3MjMsMjc3MjQsMjc3MjUsMjc3MjYsMjc3MjcsMjc3MjksMjc3MzAsMjc3MzEsMjc3MzQsMjc3MzYsMjc3MzcsMjc3MzgsMjc3NDYsMjc3NDcsMjc3NDksMjc3NTAsMjc3NTEsMjc3NTUsMjc3NTYsMjc3NTcsMjc3NTgsMjc3NTksMjc3NjEsMjc3NjMsMjc3NjUsMjc3'@; put 'NjcsMjc3NjgsMjc3NzAsMjc3NzEsMjc3NzIsMjc3NzUsMjc3NzYsMjc3ODAsMjc3ODMsMjc3ODYsMjc3ODcsMjc3ODksMjc3OTAsMjc3OTMsMjc3OTQsMjc3OTcsMjc3OTgsMjc3OTksMjc4MDAsMjc4MDIsMjc4MDQsMjc4MDUsMjc4MDYsMjc4MDgsMjc4MTAsMjc4MTYsMjc4MjAsMjc4MjMs'@; put 'Mjc4MjQsMjc4MjgsMjc4MjksMjc4MzAsMjc4MzEsMjc4MzQsMjc4NDAsMjc4NDEsMjc4NDIsMjc4NDMsMjc4NDYsMjc4NDcsMjc4NDgsMjc4NTEsMjc4NTMsMjc4NTQsMjc4NTUsMjc4NTcsMjc4NTgsMjc4NjQsMjc4NjUsMjc4NjYsMjc4NjgsMjc4NjksMjc4NzEsMjc4NzYsMjc4NzgsMjc4'@; put 'NzksMjc4ODEsMjc4ODQsMjc4ODUsMjc4OTAsMjc4OTIsMjc4OTcsMjc5MDMsMjc5MDQsMjc5MDYsMjc5MDcsMjc5MDksMjc5MTAsMjc5MTIsMjc5MTMsMjc5MTQsMjc5MTcsMjc5MTksMjc5MjAsMjc5MjEsMjc5MjMsMjc5MjQsMjc5MjUsMjc5MjYsMjc5MjgsMjc5MzIsMjc5MzMsMjc5MzUs'@; put 'Mjc5MzYsMjc5MzcsMjc5MzgsMjc5MzksMjc5NDAsMjc5NDIsMjc5NDQsMjc5NDUsMjc5NDgsMjc5NDksMjc5NTEsMjc5NTIsMjc5NTYsMjc5NTgsMjc5NTksMjc5NjAsMjc5NjIsMjc5NjcsMjc5NjgsMjc5NzAsMjc5NzIsMjc5NzcsMjc5ODAsMjc5ODQsMjc5ODksMjc5OTAsMjc5OTEsMjc5'@; put 'OTIsMjc5OTUsMjc5OTcsMjc5OTksMjgwMDEsMjgwMDIsMjgwMDQsMjgwMDUsMjgwMDcsMjgwMDgsMjgwMTEsMjgwMTIsMjgwMTMsMjgwMTYsMjgwMTcsMjgwMTgsMjgwMTksMjgwMjEsMjgwMjIsMjgwMjUsMjgwMjYsMjgwMjcsMjgwMjksMjgwMzAsMjgwMzEsMjgwMzIsMjgwMzMsMjgwMzUs'@; put 'MjgwMzYsMjgwMzgsMjgwMzksMjgwNDIsMjgwNDMsMjgwNDUsMjgwNDcsMjgwNDgsMjgwNTAsMjgwNTQsMjgwNTUsMjgwNTYsMjgwNTcsMjgwNTgsMjgwNjAsMjgwNjYsMjgwNjksMjgwNzYsMjgwNzcsMjgwODAsMjgwODEsMjgwODMsMjgwODQsMjgwODYsMjgwODcsMjgwODksMjgwOTAsMjgw'@; put 'OTEsMjgwOTIsMjgwOTMsMjgwOTQsMjgwOTcsMjgwOTgsMjgwOTksMjgxMDQsMjgxMDUsMjgxMDYsMjgxMDksMjgxMTAsMjgxMTEsMjgxMTIsMjgxMTQsMjgxMTUsMjgxMTYsMjgxMTcsMjgxMTksMjgxMjIsMjgxMjMsMjgxMjQsMjgxMjcsMjgxMzAsMjgxMzEsMjgxMzMsMjgxMzUsMjgxMzYs'@; put 'MjgxMzcsMjgxMzgsMjgxNDEsMjgxNDMsMjgxNDQsMjgxNDYsMjgxNDgsMjgxNDksMjgxNTAsMjgxNTIsMjgxNTQsMjgxNTcsMjgxNTgsMjgxNTksMjgxNjAsMjgxNjEsMjgxNjIsMjgxNjMsMjgxNjQsMjgxNjYsMjgxNjcsMjgxNjgsMjgxNjksMjgxNzEsMjgxNzUsMjgxNzgsMjgxNzksMjgx'@; put 'ODEsMjgxODQsMjgxODUsMjgxODcsMjgxODgsMjgxOTAsMjgxOTEsMjgxOTQsMjgxOTgsMjgxOTksMjgyMDAsMjgyMDIsMjgyMDQsMjgyMDYsMjgyMDgsMjgyMDksMjgyMTEsMjgyMTMsMjgyMTQsMjgyMTUsMjgyMTcsMjgyMTksMjgyMjAsMjgyMjEsMjgyMjIsMjgyMjMsMjgyMjQsMjgyMjUs'@; put 'MjgyMjYsMjgyMjksMjgyMzAsMjgyMzEsMjgyMzIsMjgyMzMsMjgyMzQsMjgyMzUsMjgyMzYsMjgyMzksMjgyNDAsMjgyNDEsMjgyNDIsMjgyNDUsMjgyNDcsMjgyNDksMjgyNTAsMjgyNTIsMjgyNTMsMjgyNTQsMjgyNTYsMjgyNTcsMjgyNTgsMjgyNTksMjgyNjAsMjgyNjEsMjgyNjIsMjgy'@; put 'NjMsMjgyNjQsMjgyNjUsMjgyNjYsMjgyNjgsMjgyNjksMjgyNzEsMjgyNzIsMjgyNzMsMjgyNzQsMjgyNzUsMjgyNzYsMjgyNzcsMjgyNzgsMjgyNzksMjgyODAsMjgyODEsMjgyODIsMjgyODMsMjgyODQsMjgyODUsMjgyODgsMjgyODksMjgyOTAsMjgyOTIsMjgyOTUsMjgyOTYsMjgyOTgs'@; put 'MjgyOTksMjgzMDAsMjgzMDEsMjgzMDIsMjgzMDUsMjgzMDYsMjgzMDcsMjgzMDgsMjgzMDksMjgzMTAsMjgzMTEsMjgzMTMsMjgzMTQsMjgzMTUsMjgzMTcsMjgzMTgsMjgzMjAsMjgzMjEsMjgzMjMsMjgzMjQsMjgzMjYsMjgzMjgsMjgzMjksMjgzMzEsMjgzMzIsMjgzMzMsMjgzMzQsMjgz'@; put 'MzYsMjgzMzksMjgzNDEsMjgzNDQsMjgzNDUsMjgzNDgsMjgzNTAsMjgzNTEsMjgzNTIsMjgzNTUsMjgzNTYsMjgzNTcsMjgzNTgsMjgzNjAsMjgzNjEsMjgzNjIsMjgzNjQsMjgzNjUsMjgzNjYsMjgzNjgsMjgzNzAsMjgzNzQsMjgzNzYsMjgzNzcsMjgzNzksMjgzODAsMjgzODEsMjgzODcs'@; put 'MjgzOTEsMjgzOTQsMjgzOTUsMjgzOTYsMjgzOTcsMjgzOTgsMjgzOTksMjg0MDAsMjg0MDEsMjg0MDIsMjg0MDMsMjg0MDUsMjg0MDYsMjg0MDcsMjg0MDgsMjg0MTAsMjg0MTEsMjg0MTIsMjg0MTMsMjg0MTQsMjg0MTUsMjg0MTYsMjg0MTcsMjg0MTksMjg0MjAsMjg0MjEsMjg0MjMsMjg0'@; put 'MjQsMjg0MjYsMjg0MjcsMjg0MjgsMjg0MjksMjg0MzAsMjg0MzIsMjg0MzMsMjg0MzQsMjg0MzgsMjg0MzksMjg0NDAsMjg0NDEsMjg0NDIsMjg0NDMsMjg0NDQsMjg0NDUsMjg0NDYsMjg0NDcsMjg0NDksMjg0NTAsMjg0NTEsMjg0NTMsMjg0NTQsMjg0NTUsMjg0NTYsMjg0NjAsMjg0NjIs'@; put 'Mjg0NjQsMjg0NjYsMjg0NjgsMjg0NjksMjg0NzEsMjg0NzIsMjg0NzMsMjg0NzQsMjg0NzUsMjg0NzYsMjg0NzcsMjg0NzksMjg0ODAsMjg0ODEsMjg0ODIsMjg0ODMsMjg0ODQsMjg0ODUsMjg0ODgsMjg0ODksMjg0OTAsMjg0OTIsMjg0OTQsMjg0OTUsMjg0OTYsMjg0OTcsMjg0OTgsMjg0'@; put 'OTksMjg1MDAsMjg1MDEsMjg1MDIsMjg1MDMsMjg1MDUsMjg1MDYsMjg1MDcsMjg1MDksMjg1MTEsMjg1MTIsMjg1MTMsMjg1MTUsMjg1MTYsMjg1MTcsMjg1MTksMjg1MjAsMjg1MjEsMjg1MjIsMjg1MjMsMjg1MjQsMjg1MjcsMjg1MjgsMjg1MjksMjg1MzEsMjg1MzMsMjg1MzQsMjg1MzUs'@; put 'Mjg1MzcsMjg1MzksMjg1NDEsMjg1NDIsMjg1NDMsMjg1NDQsMjg1NDUsMjg1NDYsMjg1NDcsMjg1NDksMjg1NTAsMjg1NTEsMjg1NTQsMjg1NTUsMjg1NTksMjg1NjAsMjg1NjEsMjg1NjIsMjg1NjMsMjg1NjQsMjg1NjUsMjg1NjYsMjg1NjcsMjg1NjgsMjg1NjksMjg1NzAsMjg1NzEsMjg1'@; put 'NzMsMjg1NzQsMjg1NzUsMjg1NzYsMjg1NzgsMjg1NzksMjg1ODAsMjg1ODEsMjg1ODIsMjg1ODQsMjg1ODUsMjg1ODYsMjg1ODcsMjg1ODgsMjg1ODksMjg1OTAsMjg1OTEsMjg1OTIsMjg1OTMsMjg1OTQsMjg1OTYsMjg1OTcsMjg1OTksMjg2MDAsMjg2MDIsMjg2MDMsMjg2MDQsMjg2MDUs'@; put 'Mjg2MDYsMjg2MDcsMjg2MDksMjg2MTEsMjg2MTIsMjg2MTMsMjg2MTQsMjg2MTUsMjg2MTYsMjg2MTgsMjg2MTksMjg2MjAsMjg2MjEsMjg2MjIsMjg2MjMsMjg2MjQsMjg2MjcsMjg2MjgsMjg2MjksMjg2MzAsMjg2MzEsMjg2MzIsMjg2MzMsMjg2MzQsMjg2MzUsMjg2MzYsMjg2MzcsMjg2'@; put 'MzksMjg2NDIsMjg2NDMsMjg2NDQsMjg2NDUsMjg2NDYsMjg2NDcsMjg2NDgsMjg2NDksMjg2NTAsMjg2NTEsMjg2NTIsMjg2NTMsMjg2NTYsMjg2NTcsMjg2NTgsMjg2NTksMjg2NjAsMjg2NjEsMjg2NjIsMjg2NjMsMjg2NjQsMjg2NjUsMjg2NjYsMjg2NjcsMjg2NjgsMjg2NjksMjg2NzAs'@; put 'Mjg2NzEsMjg2NzIsMjg2NzMsMjg2NzQsMjg2NzUsMjg2NzYsMjg2NzcsMjg2NzgsMjg2NzksMjg2ODAsMjg2ODEsMjg2ODIsMjg2ODMsMjg2ODQsMjg2ODUsMjg2ODYsMjg2ODcsMjg2ODgsMjg2OTAsMjg2OTEsMjg2OTIsMjg2OTMsMjg2OTQsMjg2OTUsMjg2OTYsMjg2OTcsMjg3MDAsMjg3'@; put 'MDEsMjg3MDIsMjg3MDMsMjg3MDQsMjg3MDUsMjg3MDYsMjg3MDgsMjg3MDksMjg3MTAsMjg3MTEsMjg3MTIsMjg3MTMsMjg3MTQsMjg3MTUsMjg3MTYsMjg3MTcsMjg3MTgsMjg3MTksMjg3MjAsMjg3MjEsMjg3MjIsMjg3MjMsMjg3MjQsMjg3MjYsMjg3MjcsMjg3MjgsMjg3MzAsMjg3MzEs'@; put 'Mjg3MzIsMjg3MzMsMjg3MzQsMjg3MzUsMjg3MzYsMjg3MzcsMjg3MzgsMjg3MzksMjg3NDAsMjg3NDEsMjg3NDIsMjg3NDMsMjg3NDQsMjg3NDUsMjg3NDYsMjg3NDcsMjg3NDksMjg3NTAsMjg3NTIsMjg3NTMsMjg3NTQsMjg3NTUsMjg3NTYsMjg3NTcsMjg3NTgsMjg3NTksMjg3NjAsMjg3'@; put 'NjEsMjg3NjIsMjg3NjMsMjg3NjQsMjg3NjUsMjg3NjcsMjg3NjgsMjg3NjksMjg3NzAsMjg3NzEsMjg3NzIsMjg3NzMsMjg3NzQsMjg3NzUsMjg3NzYsMjg3NzcsMjg3NzgsMjg3ODIsMjg3ODUsMjg3ODYsMjg3ODcsMjg3ODgsMjg3OTEsMjg3OTMsMjg3OTQsMjg3OTUsMjg3OTcsMjg4MDEs'@; put 'Mjg4MDIsMjg4MDMsMjg4MDQsMjg4MDYsMjg4MDcsMjg4MDgsMjg4MTEsMjg4MTIsMjg4MTMsMjg4MTUsMjg4MTYsMjg4MTcsMjg4MTksMjg4MjMsMjg4MjQsMjg4MjYsMjg4MjcsMjg4MzAsMjg4MzEsMjg4MzIsMjg4MzMsMjg4MzQsMjg4MzUsMjg4MzYsMjg4MzcsMjg4MzgsMjg4MzksMjg4'@; put 'NDAsMjg4NDEsMjg4NDIsMjg4NDgsMjg4NTAsMjg4NTIsMjg4NTMsMjg4NTQsMjg4NTgsMjg4NjIsMjg4NjMsMjg4NjgsMjg4NjksMjg4NzAsMjg4NzEsMjg4NzMsMjg4NzUsMjg4NzYsMjg4NzcsMjg4NzgsMjg4NzksMjg4ODAsMjg4ODEsMjg4ODIsMjg4ODMsMjg4ODQsMjg4ODUsMjg4ODYs'@; put 'Mjg4ODcsMjg4OTAsMjg4OTIsMjg4OTMsMjg4OTQsMjg4OTYsMjg4OTcsMjg4OTgsMjg4OTksMjg5MDEsMjg5MDYsMjg5MTAsMjg5MTIsMjg5MTMsMjg5MTQsMjg5MTUsMjg5MTYsMjg5MTcsMjg5MTgsMjg5MjAsMjg5MjIsMjg5MjMsMjg5MjQsMjg5MjYsMjg5MjcsMjg5MjgsMjg5MjksMjg5'@; put 'MzAsMjg5MzEsMjg5MzIsMjg5MzMsMjg5MzQsMjg5MzUsMjg5MzYsMjg5MzksMjg5NDAsMjg5NDEsMjg5NDIsMjg5NDMsMjg5NDUsMjg5NDYsMjg5NDgsMjg5NTEsMjg5NTUsMjg5NTYsMjg5NTcsMjg5NTgsMjg5NTksMjg5NjAsMjg5NjEsMjg5NjIsMjg5NjMsMjg5NjQsMjg5NjUsMjg5Njcs'@; put 'Mjg5NjgsMjg5NjksMjg5NzAsMjg5NzEsMjg5NzIsMjg5NzMsMjg5NzQsMjg5NzgsMjg5NzksMjg5ODAsMjg5ODEsMjg5ODMsMjg5ODQsMjg5ODUsMjg5ODYsMjg5ODcsMjg5ODgsMjg5ODksMjg5OTAsMjg5OTEsMjg5OTIsMjg5OTMsMjg5OTQsMjg5OTUsMjg5OTYsMjg5OTgsMjg5OTksMjll'@; put 'MywyOTAwMSwyOTAwMywyOTAwNSwyOTAwNywyOTAwOCwyOTAwOSwyOTAxMCwyOTAxMSwyOTAxMiwyOTAxMywyOTAxNCwyOTAxNSwyOTAxNiwyOTAxNywyOTAxOCwyOTAxOSwyOTAyMSwyOTAyMywyOTAyNCwyOTAyNSwyOTAyNiwyOTAyNywyOTAyOSwyOTAzMywyOTAzNCwyOTAzNSwyOTAzNiwy'@; put 'OTAzNywyOTAzOSwyOTA0MCwyOTA0MSwyOTA0NCwyOTA0NSwyOTA0NiwyOTA0NywyOTA0OSwyOTA1MSwyOTA1MiwyOTA1NCwyOTA1NSwyOTA1NiwyOTA1NywyOTA1OCwyOTA1OSwyOTA2MSwyOTA2MiwyOTA2MywyOTA2NCwyOTA2NSwyOTA2NywyOTA2OCwyOTA2OSwyOTA3MCwyOTA3MiwyOTA3'@; put 'MywyOTA3NCwyOTA3NSwyOTA3NywyOTA3OCwyOTA3OSwyOTA4MiwyOTA4MywyOTA4NCwyOTA4NSwyOTA4NiwyOTA4OSwyOTA5MCwyOTA5MSwyOTA5MiwyOTA5MywyOTA5NCwyOTA5NSwyOTA5NywyOTA5OCwyOTA5OSwyOTEwMSwyOTEwMiwyOTEwMywyOTEwNCwyOTEwNSwyOTEwNiwyOTEwOCwy'@; put 'OTExMCwyOTExMSwyOTExMiwyOTExNCwyOTExNSwyOTExNiwyOTExNywyOTExOCwyOTExOSwyOTEyMCwyOTEyMSwyOTEyMiwyOTEyNCwyOTEyNSwyOTEyNiwyOTEyNywyOTEyOCwyOTEyOSwyOTEzMCwyOTEzMSwyOTEzMiwyOTEzMywyOTEzNSwyOTEzNiwyOTEzNywyOTEzOCwyOTEzOSwyOTE0'@; put 'MiwyOTE0MywyOTE0NCwyOTE0NSwyOTE0NiwyOTE0NywyOTE0OCwyOTE0OSwyOTE1MCwyOTE1MSwyOTE1MywyOTE1NCwyOTE1NSwyOTE1NiwyOTE1OCwyOTE2MCwyOTE2MSwyOTE2MiwyOTE2MywyOTE2NCwyOTE2NSwyOTE2NywyOTE2OCwyOTE2OSwyOTE3MCwyOTE3MSwyOTE3MiwyOTE3Mywy'@; put 'OTE3NCwyOTE3NSwyOTE3NiwyOTE3OCwyOTE3OSwyOTE4MCwyOTE4MSwyOTE4MiwyOTE4MywyOTE4NCwyOTE4NSwyOTE4NiwyOTE4NywyOTE4OCwyOTE4OSwyOTE5MSwyOTE5MiwyOTE5MywyOTE5NCwyOTE5NSwyOTE5NiwyOTE5NywyOTE5OCwyOTE5OSwyOTIwMCwyOTIwMSwyOTIwMiwyOTIw'@; put 'MywyOTIwNCwyOTIwNSwyOTIwNiwyOTIwNywyOTIwOCwyOTIwOSwyOTIxMCwyOTIxMSwyOTIxMiwyOTIxNCwyOTIxNSwyOTIxNiwyOTIxNywyOTIxOCwyOTIxOSwyOTIyMCwyOTIyMSwyOTIyMiwyOTIyMywyOTIyNSwyOTIyNywyOTIyOSwyOTIzMCwyOTIzMSwyOTIzNCwyOTIzNSwyOTIzNiwy'@; put 'OTI0MiwyOTI0NCwyOTI0NiwyOTI0OCwyOTI0OSwyOTI1MCwyOTI1MSwyOTI1MiwyOTI1MywyOTI1NCwyOTI1NywyOTI1OCwyOTI1OSwyOTI2MiwyOTI2MywyOTI2NCwyOTI2NSwyOTI2NywyOTI2OCwyOTI2OSwyOTI3MSwyOTI3MiwyOTI3NCwyOTI3NiwyOTI3OCwyOTI4MCwyOTI4MywyOTI4'@; put 'NCwyOTI4NSwyOTI4OCwyOTI5MCwyOTI5MSwyOTI5MiwyOTI5MywyOTI5NiwyOTI5NywyOTI5OSwyOTMwMCwyOTMwMiwyOTMwMywyOTMwNCwyOTMwNywyOTMwOCwyOTMwOSwyOTMxNCwyOTMxNSwyOTMxNywyOTMxOCwyOTMxOSwyOTMyMCwyOTMyMSwyOTMyNCwyOTMyNiwyOTMyOCwyOTMyOSwy'@; put 'OTMzMSwyOTMzMiwyOTMzMywyOTMzNCwyOTMzNSwyOTMzNiwyOTMzNywyOTMzOCwyOTMzOSwyOTM0MCwyOTM0MSwyOTM0MiwyOTM0NCwyOTM0NSwyOTM0NiwyOTM0NywyOTM0OCwyOTM0OSwyOTM1MCwyOTM1MSwyOTM1MiwyOTM1MywyOTM1NCwyOTM1NSwyOTM1OCwyOTM2MSwyOTM2MiwyOTM2'@; put 'MywyOTM2NSwyOTM3MCwyOTM3MSwyOTM3MiwyOTM3MywyOTM3NCwyOTM3NSwyOTM3NiwyOTM4MSwyOTM4MiwyOTM4MywyOTM4NSwyOTM4NiwyOTM4NywyOTM4OCwyOTM5MSwyOTM5MywyOTM5NSwyOTM5NiwyOTM5NywyOTM5OCwyOTQwMCwyOTQwMiwyOTQwMyw1ODU2Niw1ODU2Nyw1ODU2OCw1'@; put 'ODU2OSw1ODU3MCw1ODU3MSw1ODU3Miw1ODU3Myw1ODU3NCw1ODU3NSw1ODU3Niw1ODU3Nyw1ODU3OCw1ODU3OSw1ODU4MCw1ODU4MSw1ODU4Miw1ODU4Myw1ODU4NCw1ODU4NSw1ODU4Niw1ODU4Nyw1ODU4OCw1ODU4OSw1ODU5MCw1ODU5MSw1ODU5Miw1ODU5Myw1ODU5NCw1ODU5NSw1ODU5'@; put 'Niw1ODU5Nyw1ODU5OCw1ODU5OSw1ODYwMCw1ODYwMSw1ODYwMiw1ODYwMyw1ODYwNCw1ODYwNSw1ODYwNiw1ODYwNyw1ODYwOCw1ODYwOSw1ODYxMCw1ODYxMSw1ODYxMiw1ODYxMyw1ODYxNCw1ODYxNSw1ODYxNiw1ODYxNyw1ODYxOCw1ODYxOSw1ODYyMCw1ODYyMSw1ODYyMiw1ODYyMyw1'@; put 'ODYyNCw1ODYyNSw1ODYyNiw1ODYyNyw1ODYyOCw1ODYyOSw1ODYzMCw1ODYzMSw1ODYzMiw1ODYzMyw1ODYzNCw1ODYzNSw1ODYzNiw1ODYzNyw1ODYzOCw1ODYzOSw1ODY0MCw1ODY0MSw1ODY0Miw1ODY0Myw1ODY0NCw1ODY0NSw1ODY0Niw1ODY0Nyw1ODY0OCw1ODY0OSw1ODY1MCw1ODY1'@; put 'MSw1ODY1Miw1ODY1Myw1ODY1NCw1ODY1NSw1ODY1Niw1ODY1Nyw1ODY1OCw1ODY1OSw1ODY2MCw1ODY2MSwxMjI4OCwxMjI4OSwxMjI5MCwxODMsNzEzLDcxMSwxNjgsMTIyOTEsMTIyOTMsODIxMiw2NTM3NCw4MjE0LDgyMzAsODIxNiw4MjE3LDgyMjAsODIyMSwxMjMwOCwxMjMwOSwxMjI5'@; put 'NiwxMjI5NywxMjI5OCwxMjI5OSwxMjMwMCwxMjMwMSwxMjMwMiwxMjMwMywxMjMxMCwxMjMxMSwxMjMwNCwxMjMwNSwxNzcsMjE1LDI0Nyw4NzU4LDg3NDMsODc0NCw4NzIxLDg3MTksODc0Niw4NzQ1LDg3MTIsODc1OSw4NzMwLDg4NjksODc0MSw4NzM2LDg5NzgsODg1Nyw4NzQ3LDg3NTAs'@; put 'ODgwMSw4NzgwLDg3NzYsODc2NSw4NzMzLDg4MDAsODgxNCw4ODE1LDg4MDQsODgwNSw4NzM0LDg3NTcsODc1Niw5Nzk0LDk3OTIsMTc2LDgyNDIsODI0Myw4NDUxLDY1Mjg0LDE2NCw2NTUwNCw2NTUwNSw4MjQwLDE2Nyw4NDcwLDk3MzQsOTczMyw5Njc1LDk2NzksOTY3OCw5NjcxLDk2NzAs'@; put 'OTYzMyw5NjMyLDk2NTEsOTY1MCw4MjUxLDg1OTQsODU5Miw4NTkzLDg1OTUsMTIzMDcsNTg2NjIsNTg2NjMsNTg2NjQsNTg2NjUsNTg2NjYsNTg2NjcsNTg2NjgsNTg2NjksNTg2NzAsNTg2NzEsNTg2NzIsNTg2NzMsNTg2NzQsNTg2NzUsNTg2NzYsNTg2NzcsNTg2NzgsNTg2NzksNTg2ODAs'@; put 'NTg2ODEsNTg2ODIsNTg2ODMsNTg2ODQsNTg2ODUsNTg2ODYsNTg2ODcsNTg2ODgsNTg2ODksNTg2OTAsNTg2OTEsNTg2OTIsNTg2OTMsNTg2OTQsNTg2OTUsNTg2OTYsNTg2OTcsNTg2OTgsNTg2OTksNTg3MDAsNTg3MDEsNTg3MDIsNTg3MDMsNTg3MDQsNTg3MDUsNTg3MDYsNTg3MDcsNTg3'@; put 'MDgsNTg3MDksNTg3MTAsNTg3MTEsNTg3MTIsNTg3MTMsNTg3MTQsNTg3MTUsNTg3MTYsNTg3MTcsNTg3MTgsNTg3MTksNTg3MjAsNTg3MjEsNTg3MjIsNTg3MjMsNTg3MjQsNTg3MjUsNTg3MjYsNTg3MjcsNTg3MjgsNTg3MjksNTg3MzAsNTg3MzEsNTg3MzIsNTg3MzMsNTg3MzQsNTg3MzUs'@; put 'NTg3MzYsNTg3MzcsNTg3MzgsNTg3MzksNTg3NDAsNTg3NDEsNTg3NDIsNTg3NDMsNTg3NDQsNTg3NDUsNTg3NDYsNTg3NDcsNTg3NDgsNTg3NDksNTg3NTAsNTg3NTEsNTg3NTIsNTg3NTMsNTg3NTQsNTg3NTUsNTg3NTYsNTg3NTcsODU2MCw4NTYxLDg1NjIsODU2Myw4NTY0LDg1NjUsODU2'@; put 'Niw4NTY3LDg1NjgsODU2OSw1OTIzOCw1OTIzOSw1OTI0MCw1OTI0MSw1OTI0Miw1OTI0Myw5MzUyLDkzNTMsOTM1NCw5MzU1LDkzNTYsOTM1Nyw5MzU4LDkzNTksOTM2MCw5MzYxLDkzNjIsOTM2Myw5MzY0LDkzNjUsOTM2Niw5MzY3LDkzNjgsOTM2OSw5MzcwLDkzNzEsOTMzMiw5MzMzLDkz'@; put 'MzQsOTMzNSw5MzM2LDkzMzcsOTMzOCw5MzM5LDkzNDAsOTM0MSw5MzQyLDkzNDMsOTM0NCw5MzQ1LDkzNDYsOTM0Nyw5MzQ4LDkzNDksOTM1MCw5MzUxLDkzMTIsOTMxMyw5MzE0LDkzMTUsOTMxNiw5MzE3LDkzMTgsOTMxOSw5MzIwLDkzMjEsODM2NCw1OTI0NSwxMjgzMiwxMjgzMywxMjgz'@; put 'NCwxMjgzNSwxMjgzNiwxMjgzNywxMjgzOCwxMjgzOSwxMjg0MCwxMjg0MSw1OTI0Niw1OTI0Nyw4NTQ0LDg1NDUsODU0Niw4NTQ3LDg1NDgsODU0OSw4NTUwLDg1NTEsODU1Miw4NTUzLDg1NTQsODU1NSw1OTI0OCw1OTI0OSw1ODc1OCw1ODc1OSw1ODc2MCw1ODc2MSw1ODc2Miw1ODc2Myw1'@; put 'ODc2NCw1ODc2NSw1ODc2Niw1ODc2Nyw1ODc2OCw1ODc2OSw1ODc3MCw1ODc3MSw1ODc3Miw1ODc3Myw1ODc3NCw1ODc3NSw1ODc3Niw1ODc3Nyw1ODc3OCw1ODc3OSw1ODc4MCw1ODc4MSw1ODc4Miw1ODc4Myw1ODc4NCw1ODc4NSw1ODc4Niw1ODc4Nyw1ODc4OCw1ODc4OSw1ODc5MCw1ODc5'@; put 'MSw1ODc5Miw1ODc5Myw1ODc5NCw1ODc5NSw1ODc5Niw1ODc5Nyw1ODc5OCw1ODc5OSw1ODgwMCw1ODgwMSw1ODgwMiw1ODgwMyw1ODgwNCw1ODgwNSw1ODgwNiw1ODgwNyw1ODgwOCw1ODgwOSw1ODgxMCw1ODgxMSw1ODgxMiw1ODgxMyw1ODgxNCw1ODgxNSw1ODgxNiw1ODgxNyw1ODgxOCw1'@; put 'ODgxOSw1ODgyMCw1ODgyMSw1ODgyMiw1ODgyMyw1ODgyNCw1ODgyNSw1ODgyNiw1ODgyNyw1ODgyOCw1ODgyOSw1ODgzMCw1ODgzMSw1ODgzMiw1ODgzMyw1ODgzNCw1ODgzNSw1ODgzNiw1ODgzNyw1ODgzOCw1ODgzOSw1ODg0MCw1ODg0MSw1ODg0Miw1ODg0Myw1ODg0NCw1ODg0NSw1ODg0'@; put 'Niw1ODg0Nyw1ODg0OCw1ODg0OSw1ODg1MCw1ODg1MSw1ODg1MiwxMjI4OCw2NTI4MSw2NTI4Miw2NTI4Myw2NTUwOSw2NTI4NSw2NTI4Niw2NTI4Nyw2NTI4OCw2NTI4OSw2NTI5MCw2NTI5MSw2NTI5Miw2NTI5Myw2NTI5NCw2NTI5NSw2NTI5Niw2NTI5Nyw2NTI5OCw2NTI5OSw2NTMwMCw2'@; put 'NTMwMSw2NTMwMiw2NTMwMyw2NTMwNCw2NTMwNSw2NTMwNiw2NTMwNyw2NTMwOCw2NTMwOSw2NTMxMCw2NTMxMSw2NTMxMiw2NTMxMyw2NTMxNCw2NTMxNSw2NTMxNiw2NTMxNyw2NTMxOCw2NTMxOSw2NTMyMCw2NTMyMSw2NTMyMiw2NTMyMyw2NTMyNCw2NTMyNSw2NTMyNiw2NTMyNyw2NTMy'@; put 'OCw2NTMyOSw2NTMzMCw2NTMzMSw2NTMzMiw2NTMzMyw2NTMzNCw2NTMzNSw2NTMzNiw2NTMzNyw2NTMzOCw2NTMzOSw2NTM0MCw2NTM0MSw2NTM0Miw2NTM0Myw2NTM0NCw2NTM0NSw2NTM0Niw2NTM0Nyw2NTM0OCw2NTM0OSw2NTM1MCw2NTM1MSw2NTM1Miw2NTM1Myw2NTM1NCw2NTM1NSw2'@; put 'NTM1Niw2NTM1Nyw2NTM1OCw2NTM1OSw2NTM2MCw2NTM2MSw2NTM2Miw2NTM2Myw2NTM2NCw2NTM2NSw2NTM2Niw2NTM2Nyw2NTM2OCw2NTM2OSw2NTM3MCw2NTM3MSw2NTM3Miw2NTM3Myw2NTUwNyw1ODg1NCw1ODg1NSw1ODg1Niw1ODg1Nyw1ODg1OCw1ODg1OSw1ODg2MCw1ODg2MSw1ODg2'@; put 'Miw1ODg2Myw1ODg2NCw1ODg2NSw1ODg2Niw1ODg2Nyw1ODg2OCw1ODg2OSw1ODg3MCw1ODg3MSw1ODg3Miw1ODg3Myw1ODg3NCw1ODg3NSw1ODg3Niw1ODg3Nyw1ODg3OCw1ODg3OSw1ODg4MCw1ODg4MSw1ODg4Miw1ODg4Myw1ODg4NCw1ODg4NSw1ODg4Niw1ODg4Nyw1ODg4OCw1ODg4OSw1'@; put 'ODg5MCw1ODg5MSw1ODg5Miw1ODg5Myw1ODg5NCw1ODg5NSw1ODg5Niw1ODg5Nyw1ODg5OCw1ODg5OSw1ODkwMCw1ODkwMSw1ODkwMiw1ODkwMyw1ODkwNCw1ODkwNSw1ODkwNiw1ODkwNyw1ODkwOCw1ODkwOSw1ODkxMCw1ODkxMSw1ODkxMiw1ODkxMyw1ODkxNCw1ODkxNSw1ODkxNiw1ODkx'@; put 'Nyw1ODkxOCw1ODkxOSw1ODkyMCw1ODkyMSw1ODkyMiw1ODkyMyw1ODkyNCw1ODkyNSw1ODkyNiw1ODkyNyw1ODkyOCw1ODkyOSw1ODkzMCw1ODkzMSw1ODkzMiw1ODkzMyw1ODkzNCw1ODkzNSw1ODkzNiw1ODkzNyw1ODkzOCw1ODkzOSw1ODk0MCw1ODk0MSw1ODk0Miw1ODk0Myw1ODk0NCw1'@; put 'ODk0NSw1ODk0Niw1ODk0Nyw1ODk0OCw1ODk0OSwxMjM1MywxMjM1NCwxMjM1NSwxMjM1NiwxMjM1NywxMjM1OCwxMjM1OSwxMjM2MCwxMjM2MSwxMjM2MiwxMjM2MywxMjM2NCwxMjM2NSwxMjM2NiwxMjM2NywxMjM2OCwxMjM2OSwxMjM3MCwxMjM3MSwxMjM3MiwxMjM3MywxMjM3NCwxMjM3'@; put 'NSwxMjM3NiwxMjM3NywxMjM3OCwxMjM3OSwxMjM4MCwxMjM4MSwxMjM4MiwxMjM4MywxMjM4NCwxMjM4NSwxMjM4NiwxMjM4NywxMjM4OCwxMjM4OSwxMjM5MCwxMjM5MSwxMjM5MiwxMjM5MywxMjM5NCwxMjM5NSwxMjM5NiwxMjM5NywxMjM5OCwxMjM5OSwxMjQwMCwxMjQwMSwxMjQwMiwx'@; put 'MjQwMywxMjQwNCwxMjQwNSwxMjQwNiwxMjQwNywxMjQwOCwxMjQwOSwxMjQxMCwxMjQxMSwxMjQxMiwxMjQxMywxMjQxNCwxMjQxNSwxMjQxNiwxMjQxNywxMjQxOCwxMjQxOSwxMjQyMCwxMjQyMSwxMjQyMiwxMjQyMywxMjQyNCwxMjQyNSwxMjQyNiwxMjQyNywxMjQyOCwxMjQyOSwxMjQz'@; put 'MCwxMjQzMSwxMjQzMiwxMjQzMywxMjQzNCwxMjQzNSw1OTI1MCw1OTI1MSw1OTI1Miw1OTI1Myw1OTI1NCw1OTI1NSw1OTI1Niw1OTI1Nyw1OTI1OCw1OTI1OSw1OTI2MCw1ODk1MCw1ODk1MSw1ODk1Miw1ODk1Myw1ODk1NCw1ODk1NSw1ODk1Niw1ODk1Nyw1ODk1OCw1ODk1OSw1ODk2MCw1'@; put 'ODk2MSw1ODk2Miw1ODk2Myw1ODk2NCw1ODk2NSw1ODk2Niw1ODk2Nyw1ODk2OCw1ODk2OSw1ODk3MCw1ODk3MSw1ODk3Miw1ODk3Myw1ODk3NCw1ODk3NSw1ODk3Niw1ODk3Nyw1ODk3OCw1ODk3OSw1ODk4MCw1ODk4MSw1ODk4Miw1ODk4Myw1ODk4NCw1ODk4NSw1ODk4Niw1ODk4Nyw1ODk4'@; put 'OCw1ODk4OSw1ODk5MCw1ODk5MSw1ODk5Miw1ODk5Myw1ODk5NCw1ODk5NSw1ODk5Niw1ODk5Nyw1ODk5OCw1ODk5OSw1OWUzLDU5MDAxLDU5MDAyLDU5MDAzLDU5MDA0LDU5MDA1LDU5MDA2LDU5MDA3LDU5MDA4LDU5MDA5LDU5MDEwLDU5MDExLDU5MDEyLDU5MDEzLDU5MDE0LDU5MDE1LDU5'@; put 'MDE2LDU5MDE3LDU5MDE4LDU5MDE5LDU5MDIwLDU5MDIxLDU5MDIyLDU5MDIzLDU5MDI0LDU5MDI1LDU5MDI2LDU5MDI3LDU5MDI4LDU5MDI5LDU5MDMwLDU5MDMxLDU5MDMyLDU5MDMzLDU5MDM0LDU5MDM1LDU5MDM2LDU5MDM3LDU5MDM4LDU5MDM5LDU5MDQwLDU5MDQxLDU5MDQyLDU5MDQz'@; put 'LDU5MDQ0LDU5MDQ1LDEyNDQ5LDEyNDUwLDEyNDUxLDEyNDUyLDEyNDUzLDEyNDU0LDEyNDU1LDEyNDU2LDEyNDU3LDEyNDU4LDEyNDU5LDEyNDYwLDEyNDYxLDEyNDYyLDEyNDYzLDEyNDY0LDEyNDY1LDEyNDY2LDEyNDY3LDEyNDY4LDEyNDY5LDEyNDcwLDEyNDcxLDEyNDcyLDEyNDczLDEy'@; put 'NDc0LDEyNDc1LDEyNDc2LDEyNDc3LDEyNDc4LDEyNDc5LDEyNDgwLDEyNDgxLDEyNDgyLDEyNDgzLDEyNDg0LDEyNDg1LDEyNDg2LDEyNDg3LDEyNDg4LDEyNDg5LDEyNDkwLDEyNDkxLDEyNDkyLDEyNDkzLDEyNDk0LDEyNDk1LDEyNDk2LDEyNDk3LDEyNDk4LDEyNDk5LDEyNTAwLDEyNTAx'@; put 'LDEyNTAyLDEyNTAzLDEyNTA0LDEyNTA1LDEyNTA2LDEyNTA3LDEyNTA4LDEyNTA5LDEyNTEwLDEyNTExLDEyNTEyLDEyNTEzLDEyNTE0LDEyNTE1LDEyNTE2LDEyNTE3LDEyNTE4LDEyNTE5LDEyNTIwLDEyNTIxLDEyNTIyLDEyNTIzLDEyNTI0LDEyNTI1LDEyNTI2LDEyNTI3LDEyNTI4LDEy'@; put 'NTI5LDEyNTMwLDEyNTMxLDEyNTMyLDEyNTMzLDEyNTM0LDU5MjYxLDU5MjYyLDU5MjYzLDU5MjY0LDU5MjY1LDU5MjY2LDU5MjY3LDU5MjY4LDU5MDQ2LDU5MDQ3LDU5MDQ4LDU5MDQ5LDU5MDUwLDU5MDUxLDU5MDUyLDU5MDUzLDU5MDU0LDU5MDU1LDU5MDU2LDU5MDU3LDU5MDU4LDU5MDU5'@; put 'LDU5MDYwLDU5MDYxLDU5MDYyLDU5MDYzLDU5MDY0LDU5MDY1LDU5MDY2LDU5MDY3LDU5MDY4LDU5MDY5LDU5MDcwLDU5MDcxLDU5MDcyLDU5MDczLDU5MDc0LDU5MDc1LDU5MDc2LDU5MDc3LDU5MDc4LDU5MDc5LDU5MDgwLDU5MDgxLDU5MDgyLDU5MDgzLDU5MDg0LDU5MDg1LDU5MDg2LDU5'@; put 'MDg3LDU5MDg4LDU5MDg5LDU5MDkwLDU5MDkxLDU5MDkyLDU5MDkzLDU5MDk0LDU5MDk1LDU5MDk2LDU5MDk3LDU5MDk4LDU5MDk5LDU5MTAwLDU5MTAxLDU5MTAyLDU5MTAzLDU5MTA0LDU5MTA1LDU5MTA2LDU5MTA3LDU5MTA4LDU5MTA5LDU5MTEwLDU5MTExLDU5MTEyLDU5MTEzLDU5MTE0'@; put 'LDU5MTE1LDU5MTE2LDU5MTE3LDU5MTE4LDU5MTE5LDU5MTIwLDU5MTIxLDU5MTIyLDU5MTIzLDU5MTI0LDU5MTI1LDU5MTI2LDU5MTI3LDU5MTI4LDU5MTI5LDU5MTMwLDU5MTMxLDU5MTMyLDU5MTMzLDU5MTM0LDU5MTM1LDU5MTM2LDU5MTM3LDU5MTM4LDU5MTM5LDU5MTQwLDU5MTQxLDkx'@; put 'Myw5MTQsOTE1LDkxNiw5MTcsOTE4LDkxOSw5MjAsOTIxLDkyMiw5MjMsOTI0LDkyNSw5MjYsOTI3LDkyOCw5MjksOTMxLDkzMiw5MzMsOTM0LDkzNSw5MzYsOTM3LDU5MjY5LDU5MjcwLDU5MjcxLDU5MjcyLDU5MjczLDU5Mjc0LDU5Mjc1LDU5Mjc2LDk0NSw5NDYsOTQ3LDk0OCw5NDksOTUw'@; put 'LDk1MSw5NTIsOTUzLDk1NCw5NTUsOTU2LDk1Nyw5NTgsOTU5LDk2MCw5NjEsOTYzLDk2NCw5NjUsOTY2LDk2Nyw5NjgsOTY5LDU5Mjc3LDU5Mjc4LDU5Mjc5LDU5MjgwLDU5MjgxLDU5MjgyLDU5MjgzLDY1MDc3LDY1MDc4LDY1MDgxLDY1MDgyLDY1MDg3LDY1MDg4LDY1MDg1LDY1MDg2LDY1'@; put 'MDg5LDY1MDkwLDY1MDkxLDY1MDkyLDU5Mjg0LDU5Mjg1LDY1MDgzLDY1MDg0LDY1MDc5LDY1MDgwLDY1MDczLDU5Mjg2LDY1MDc1LDY1MDc2LDU5Mjg3LDU5Mjg4LDU5Mjg5LDU5MjkwLDU5MjkxLDU5MjkyLDU5MjkzLDU5Mjk0LDU5Mjk1LDU5MTQyLDU5MTQzLDU5MTQ0LDU5MTQ1LDU5MTQ2'@; put 'LDU5MTQ3LDU5MTQ4LDU5MTQ5LDU5MTUwLDU5MTUxLDU5MTUyLDU5MTUzLDU5MTU0LDU5MTU1LDU5MTU2LDU5MTU3LDU5MTU4LDU5MTU5LDU5MTYwLDU5MTYxLDU5MTYyLDU5MTYzLDU5MTY0LDU5MTY1LDU5MTY2LDU5MTY3LDU5MTY4LDU5MTY5LDU5MTcwLDU5MTcxLDU5MTcyLDU5MTczLDU5'@; put 'MTc0LDU5MTc1LDU5MTc2LDU5MTc3LDU5MTc4LDU5MTc5LDU5MTgwLDU5MTgxLDU5MTgyLDU5MTgzLDU5MTg0LDU5MTg1LDU5MTg2LDU5MTg3LDU5MTg4LDU5MTg5LDU5MTkwLDU5MTkxLDU5MTkyLDU5MTkzLDU5MTk0LDU5MTk1LDU5MTk2LDU5MTk3LDU5MTk4LDU5MTk5LDU5MjAwLDU5MjAx'@; put 'LDU5MjAyLDU5MjAzLDU5MjA0LDU5MjA1LDU5MjA2LDU5MjA3LDU5MjA4LDU5MjA5LDU5MjEwLDU5MjExLDU5MjEyLDU5MjEzLDU5MjE0LDU5MjE1LDU5MjE2LDU5MjE3LDU5MjE4LDU5MjE5LDU5MjIwLDU5MjIxLDU5MjIyLDU5MjIzLDU5MjI0LDU5MjI1LDU5MjI2LDU5MjI3LDU5MjI4LDU5'@; put 'MjI5LDU5MjMwLDU5MjMxLDU5MjMyLDU5MjMzLDU5MjM0LDU5MjM1LDU5MjM2LDU5MjM3LDEwNDAsMTA0MSwxMDQyLDEwNDMsMTA0NCwxMDQ1LDEwMjUsMTA0NiwxMDQ3LDEwNDgsMTA0OSwxMDUwLDEwNTEsMTA1MiwxMDUzLDEwNTQsMTA1NSwxMDU2LDEwNTcsMTA1OCwxMDU5LDEwNjAsMTA2'@; put 'MSwxMDYyLDEwNjMsMTA2NCwxMDY1LDEwNjYsMTA2NywxMDY4LDEwNjksMTA3MCwxMDcxLDU5Mjk2LDU5Mjk3LDU5Mjk4LDU5Mjk5LDU5MzAwLDU5MzAxLDU5MzAyLDU5MzAzLDU5MzA0LDU5MzA1LDU5MzA2LDU5MzA3LDU5MzA4LDU5MzA5LDU5MzEwLDEwNzIsMTA3MywxMDc0LDEwNzUsMTA3'@; put 'NiwxMDc3LDExMDUsMTA3OCwxMDc5LDEwODAsMTA4MSwxMDgyLDEwODMsMTA4NCwxMDg1LDEwODYsMTA4NywxMDg4LDEwODksMTA5MCwxMDkxLDEwOTIsMTA5MywxMDk0LDEwOTUsMTA5NiwxMDk3LDEwOTgsMTA5OSwxMTAwLDExMDEsMTEwMiwxMTAzLDU5MzExLDU5MzEyLDU5MzEzLDU5MzE0'@; put 'LDU5MzE1LDU5MzE2LDU5MzE3LDU5MzE4LDU5MzE5LDU5MzIwLDU5MzIxLDU5MzIyLDU5MzIzLDcxNCw3MTUsNzI5LDgyMTEsODIxMyw4MjI5LDgyNDUsODQ1Myw4NDU3LDg1OTgsODU5OSw4NjAwLDg2MDEsODcyNSw4NzM1LDg3MzksODc4Niw4ODA2LDg4MDcsODg5NSw5NTUyLDk1NTMsOTU1'@; put 'NCw5NTU1LDk1NTYsOTU1Nyw5NTU4LDk1NTksOTU2MCw5NTYxLDk1NjIsOTU2Myw5NTY0LDk1NjUsOTU2Niw5NTY3LDk1NjgsOTU2OSw5NTcwLDk1NzEsOTU3Miw5NTczLDk1NzQsOTU3NSw5NTc2LDk1NzcsOTU3OCw5NTc5LDk1ODAsOTU4MSw5NTgyLDk1ODMsOTU4NCw5NTg1LDk1ODYsOTU4'@; put 'Nyw5NjAxLDk2MDIsOTYwMyw5NjA0LDk2MDUsOTYwNiw5NjA3LDk2MDgsOTYwOSw5NjEwLDk2MTEsOTYxMiw5NjEzLDk2MTQsOTYxNSw5NjE5LDk2MjAsOTYyMSw5NjYwLDk2NjEsOTY5OCw5Njk5LDk3MDAsOTcwMSw5NzM3LDg4NTMsMTIzMDYsMTIzMTcsMTIzMTgsNTkzMjQsNTkzMjUsNTkz'@; put 'MjYsNTkzMjcsNTkzMjgsNTkzMjksNTkzMzAsNTkzMzEsNTkzMzIsNTkzMzMsNTkzMzQsMjU3LDIyNSw0NjIsMjI0LDI3NSwyMzMsMjgzLDIzMiwyOTksMjM3LDQ2NCwyMzYsMzMzLDI0Myw0NjYsMjQyLDM2MywyNTAsNDY4LDI0OSw0NzAsNDcyLDQ3NCw0NzYsMjUyLDIzNCw1OTMsNzc0Mywz'@; put 'MjQsMzI4LDUwNSw2MDksNTkzMzcsNTkzMzgsNTkzMzksNTkzNDAsMTI1NDksMTI1NTAsMTI1NTEsMTI1NTIsMTI1NTMsMTI1NTQsMTI1NTUsMTI1NTYsMTI1NTcsMTI1NTgsMTI1NTksMTI1NjAsMTI1NjEsMTI1NjIsMTI1NjMsMTI1NjQsMTI1NjUsMTI1NjYsMTI1NjcsMTI1NjgsMTI1Njks'@; put 'MTI1NzAsMTI1NzEsMTI1NzIsMTI1NzMsMTI1NzQsMTI1NzUsMTI1NzYsMTI1NzcsMTI1NzgsMTI1NzksMTI1ODAsMTI1ODEsMTI1ODIsMTI1ODMsMTI1ODQsMTI1ODUsNTkzNDEsNTkzNDIsNTkzNDMsNTkzNDQsNTkzNDUsNTkzNDYsNTkzNDcsNTkzNDgsNTkzNDksNTkzNTAsNTkzNTEsNTkz'@; put 'NTIsNTkzNTMsNTkzNTQsNTkzNTUsNTkzNTYsNTkzNTcsNTkzNTgsNTkzNTksNTkzNjAsNTkzNjEsMTIzMjEsMTIzMjIsMTIzMjMsMTIzMjQsMTIzMjUsMTIzMjYsMTIzMjcsMTIzMjgsMTIzMjksMTI5NjMsMTMxOTgsMTMxOTksMTMyMTIsMTMyMTMsMTMyMTQsMTMyMTcsMTMyNTIsMTMyNjIs'@; put 'MTMyNjUsMTMyNjYsMTMyNjksNjUwNzIsNjU1MDYsNjU1MDgsNTkzNjIsODQ4MSwxMjg0OSw1OTM2Myw4MjA4LDU5MzY0LDU5MzY1LDU5MzY2LDEyNTQwLDEyNDQzLDEyNDQ0LDEyNTQxLDEyNTQyLDEyMjk0LDEyNDQ1LDEyNDQ2LDY1MDk3LDY1MDk4LDY1MDk5LDY1MTAwLDY1MTAxLDY1MTAy'@; put 'LDY1MTAzLDY1MTA0LDY1MTA1LDY1MTA2LDY1MTA4LDY1MTA5LDY1MTEwLDY1MTExLDY1MTEzLDY1MTE0LDY1MTE1LDY1MTE2LDY1MTE3LDY1MTE4LDY1MTE5LDY1MTIwLDY1MTIxLDY1MTIyLDY1MTIzLDY1MTI0LDY1MTI1LDY1MTI2LDY1MTI4LDY1MTI5LDY1MTMwLDY1MTMxLDEyMzUwLDEy'@; put 'MjcyLDEyMjczLDEyMjc0LDEyMjc1LDEyMjc2LDEyMjc3LDEyMjc4LDEyMjc5LDEyMjgwLDEyMjgxLDEyMjgyLDEyMjgzLDEyMjk1LDU5MzgwLDU5MzgxLDU5MzgyLDU5MzgzLDU5Mzg0LDU5Mzg1LDU5Mzg2LDU5Mzg3LDU5Mzg4LDU5Mzg5LDU5MzkwLDU5MzkxLDU5MzkyLDk0NzIsOTQ3Myw5'@; put 'NDc0LDk0NzUsOTQ3Niw5NDc3LDk0NzgsOTQ3OSw5NDgwLDk0ODEsOTQ4Miw5NDgzLDk0ODQsOTQ4NSw5NDg2LDk0ODcsOTQ4OCw5NDg5LDk0OTAsOTQ5MSw5NDkyLDk0OTMsOTQ5NCw5NDk1LDk0OTYsOTQ5Nyw5NDk4LDk0OTksOTUwMCw5NTAxLDk1MDIsOTUwMyw5NTA0LDk1MDUsOTUwNiw5'@; put 'NTA3LDk1MDgsOTUwOSw5NTEwLDk1MTEsOTUxMiw5NTEzLDk1MTQsOTUxNSw5NTE2LDk1MTcsOTUxOCw5NTE5LDk1MjAsOTUyMSw5NTIyLDk1MjMsOTUyNCw5NTI1LDk1MjYsOTUyNyw5NTI4LDk1MjksOTUzMCw5NTMxLDk1MzIsOTUzMyw5NTM0LDk1MzUsOTUzNiw5NTM3LDk1MzgsOTUzOSw5'@; put 'NTQwLDk1NDEsOTU0Miw5NTQzLDk1NDQsOTU0NSw5NTQ2LDk1NDcsNTkzOTMsNTkzOTQsNTkzOTUsNTkzOTYsNTkzOTcsNTkzOTgsNTkzOTksNTk0MDAsNTk0MDEsNTk0MDIsNTk0MDMsNTk0MDQsNTk0MDUsNTk0MDYsNTk0MDcsMjk0MDQsMjk0MDUsMjk0MDcsMjk0MTAsMjk0MTEsMjk0MTIs'@; put 'Mjk0MTMsMjk0MTQsMjk0MTUsMjk0MTgsMjk0MTksMjk0MjksMjk0MzAsMjk0MzMsMjk0MzcsMjk0MzgsMjk0MzksMjk0NDAsMjk0NDIsMjk0NDQsMjk0NDUsMjk0NDYsMjk0NDcsMjk0NDgsMjk0NDksMjk0NTEsMjk0NTIsMjk0NTMsMjk0NTUsMjk0NTYsMjk0NTcsMjk0NTgsMjk0NjAsMjk0'@; put 'NjQsMjk0NjUsMjk0NjYsMjk0NzEsMjk0NzIsMjk0NzUsMjk0NzYsMjk0NzgsMjk0NzksMjk0ODAsMjk0ODUsMjk0ODcsMjk0ODgsMjk0OTAsMjk0OTEsMjk0OTMsMjk0OTQsMjk0OTgsMjk0OTksMjk1MDAsMjk1MDEsMjk1MDQsMjk1MDUsMjk1MDYsMjk1MDcsMjk1MDgsMjk1MDksMjk1MTAs'@; put 'Mjk1MTEsMjk1MTIsMjk1MTMsMjk1MTQsMjk1MTUsMjk1MTYsMjk1MTgsMjk1MTksMjk1MjEsMjk1MjMsMjk1MjQsMjk1MjUsMjk1MjYsMjk1MjgsMjk1MjksMjk1MzAsMjk1MzEsMjk1MzIsMjk1MzMsMjk1MzQsMjk1MzUsMjk1MzcsMjk1MzgsMjk1MzksMjk1NDAsMjk1NDEsMjk1NDIsMjk1'@; put 'NDMsMjk1NDQsMjk1NDUsMjk1NDYsMjk1NDcsMjk1NTAsMjk1NTIsMjk1NTMsNTczNDQsNTczNDUsNTczNDYsNTczNDcsNTczNDgsNTczNDksNTczNTAsNTczNTEsNTczNTIsNTczNTMsNTczNTQsNTczNTUsNTczNTYsNTczNTcsNTczNTgsNTczNTksNTczNjAsNTczNjEsNTczNjIsNTczNjMs'@; put 'NTczNjQsNTczNjUsNTczNjYsNTczNjcsNTczNjgsNTczNjksNTczNzAsNTczNzEsNTczNzIsNTczNzMsNTczNzQsNTczNzUsNTczNzYsNTczNzcsNTczNzgsNTczNzksNTczODAsNTczODEsNTczODIsNTczODMsNTczODQsNTczODUsNTczODYsNTczODcsNTczODgsNTczODksNTczOTAsNTcz'@; put 'OTEsNTczOTIsNTczOTMsNTczOTQsNTczOTUsNTczOTYsNTczOTcsNTczOTgsNTczOTksNTc0MDAsNTc0MDEsNTc0MDIsNTc0MDMsNTc0MDQsNTc0MDUsNTc0MDYsNTc0MDcsNTc0MDgsNTc0MDksNTc0MTAsNTc0MTEsNTc0MTIsNTc0MTMsNTc0MTQsNTc0MTUsNTc0MTYsNTc0MTcsNTc0MTgs'@; put 'NTc0MTksNTc0MjAsNTc0MjEsNTc0MjIsNTc0MjMsNTc0MjQsNTc0MjUsNTc0MjYsNTc0MjcsNTc0MjgsNTc0MjksNTc0MzAsNTc0MzEsNTc0MzIsNTc0MzMsNTc0MzQsNTc0MzUsNTc0MzYsNTc0MzcsMjk1NTQsMjk1NTUsMjk1NTYsMjk1NTcsMjk1NTgsMjk1NTksMjk1NjAsMjk1NjEsMjk1'@; put 'NjIsMjk1NjMsMjk1NjQsMjk1NjUsMjk1NjcsMjk1NjgsMjk1NjksMjk1NzAsMjk1NzEsMjk1NzMsMjk1NzQsMjk1NzYsMjk1NzgsMjk1ODAsMjk1ODEsMjk1ODMsMjk1ODQsMjk1ODYsMjk1ODcsMjk1ODgsMjk1ODksMjk1OTEsMjk1OTIsMjk1OTMsMjk1OTQsMjk1OTYsMjk1OTcsMjk1OTgs'@; put 'Mjk2MDAsMjk2MDEsMjk2MDMsMjk2MDQsMjk2MDUsMjk2MDYsMjk2MDcsMjk2MDgsMjk2MTAsMjk2MTIsMjk2MTMsMjk2MTcsMjk2MjAsMjk2MjEsMjk2MjIsMjk2MjQsMjk2MjUsMjk2MjgsMjk2MjksMjk2MzAsMjk2MzEsMjk2MzMsMjk2MzUsMjk2MzYsMjk2MzcsMjk2MzgsMjk2MzksMjk2'@; put 'NDMsMjk2NDQsMjk2NDYsMjk2NTAsMjk2NTEsMjk2NTIsMjk2NTMsMjk2NTQsMjk2NTUsMjk2NTYsMjk2NTgsMjk2NTksMjk2NjAsMjk2NjEsMjk2NjMsMjk2NjUsMjk2NjYsMjk2NjcsMjk2NjgsMjk2NzAsMjk2NzIsMjk2NzQsMjk2NzUsMjk2NzYsMjk2NzgsMjk2NzksMjk2ODAsMjk2ODEs'@; put 'Mjk2ODMsMjk2ODQsMjk2ODUsMjk2ODYsMjk2ODcsNTc0MzgsNTc0MzksNTc0NDAsNTc0NDEsNTc0NDIsNTc0NDMsNTc0NDQsNTc0NDUsNTc0NDYsNTc0NDcsNTc0NDgsNTc0NDksNTc0NTAsNTc0NTEsNTc0NTIsNTc0NTMsNTc0NTQsNTc0NTUsNTc0NTYsNTc0NTcsNTc0NTgsNTc0NTksNTc0'@; put 'NjAsNTc0NjEsNTc0NjIsNTc0NjMsNTc0NjQsNTc0NjUsNTc0NjYsNTc0NjcsNTc0NjgsNTc0NjksNTc0NzAsNTc0NzEsNTc0NzIsNTc0NzMsNTc0NzQsNTc0NzUsNTc0NzYsNTc0NzcsNTc0NzgsNTc0NzksNTc0ODAsNTc0ODEsNTc0ODIsNTc0ODMsNTc0ODQsNTc0ODUsNTc0ODYsNTc0ODcs'@; put 'NTc0ODgsNTc0ODksNTc0OTAsNTc0OTEsNTc0OTIsNTc0OTMsNTc0OTQsNTc0OTUsNTc0OTYsNTc0OTcsNTc0OTgsNTc0OTksNTc1MDAsNTc1MDEsNTc1MDIsNTc1MDMsNTc1MDQsNTc1MDUsNTc1MDYsNTc1MDcsNTc1MDgsNTc1MDksNTc1MTAsNTc1MTEsNTc1MTIsNTc1MTMsNTc1MTQsNTc1'@; put 'MTUsNTc1MTYsNTc1MTcsNTc1MTgsNTc1MTksNTc1MjAsNTc1MjEsNTc1MjIsNTc1MjMsNTc1MjQsNTc1MjUsNTc1MjYsNTc1MjcsNTc1MjgsNTc1MjksNTc1MzAsNTc1MzEsMjk2ODgsMjk2ODksMjk2OTAsMjk2OTEsMjk2OTIsMjk2OTMsMjk2OTQsMjk2OTUsMjk2OTYsMjk2OTcsMjk2OTgs'@; put 'Mjk3MDAsMjk3MDMsMjk3MDQsMjk3MDcsMjk3MDgsMjk3MDksMjk3MTAsMjk3MTMsMjk3MTQsMjk3MTUsMjk3MTYsMjk3MTcsMjk3MTgsMjk3MTksMjk3MjAsMjk3MjEsMjk3MjQsMjk3MjUsMjk3MjYsMjk3MjcsMjk3MjgsMjk3MjksMjk3MzEsMjk3MzIsMjk3MzUsMjk3MzcsMjk3MzksMjk3'@; put 'NDEsMjk3NDMsMjk3NDUsMjk3NDYsMjk3NTEsMjk3NTIsMjk3NTMsMjk3NTQsMjk3NTUsMjk3NTcsMjk3NTgsMjk3NTksMjk3NjAsMjk3NjIsMjk3NjMsMjk3NjQsMjk3NjUsMjk3NjYsMjk3NjcsMjk3NjgsMjk3NjksMjk3NzAsMjk3NzEsMjk3NzIsMjk3NzMsMjk3NzQsMjk3NzUsMjk3NzYs'@; put 'Mjk3NzcsMjk3NzgsMjk3NzksMjk3ODAsMjk3ODIsMjk3ODQsMjk3ODksMjk3OTIsMjk3OTMsMjk3OTQsMjk3OTUsMjk3OTYsMjk3OTcsMjk3OTgsMjk3OTksMjk4MDAsMjk4MDEsMjk4MDIsMjk4MDMsMjk4MDQsMjk4MDYsMjk4MDcsMjk4MDksMjk4MTAsMjk4MTEsMjk4MTIsMjk4MTMsMjk4'@; put 'MTYsMjk4MTcsMjk4MTgsNTc1MzIsNTc1MzMsNTc1MzQsNTc1MzUsNTc1MzYsNTc1MzcsNTc1MzgsNTc1MzksNTc1NDAsNTc1NDEsNTc1NDIsNTc1NDMsNTc1NDQsNTc1NDUsNTc1NDYsNTc1NDcsNTc1NDgsNTc1NDksNTc1NTAsNTc1NTEsNTc1NTIsNTc1NTMsNTc1NTQsNTc1NTUsNTc1NTYs'@; put 'NTc1NTcsNTc1NTgsNTc1NTksNTc1NjAsNTc1NjEsNTc1NjIsNTc1NjMsNTc1NjQsNTc1NjUsNTc1NjYsNTc1NjcsNTc1NjgsNTc1NjksNTc1NzAsNTc1NzEsNTc1NzIsNTc1NzMsNTc1NzQsNTc1NzUsNTc1NzYsNTc1NzcsNTc1NzgsNTc1NzksNTc1ODAsNTc1ODEsNTc1ODIsNTc1ODMsNTc1'@; put 'ODQsNTc1ODUsNTc1ODYsNTc1ODcsNTc1ODgsNTc1ODksNTc1OTAsNTc1OTEsNTc1OTIsNTc1OTMsNTc1OTQsNTc1OTUsNTc1OTYsNTc1OTcsNTc1OTgsNTc1OTksNTc2MDAsNTc2MDEsNTc2MDIsNTc2MDMsNTc2MDQsNTc2MDUsNTc2MDYsNTc2MDcsNTc2MDgsNTc2MDksNTc2MTAsNTc2MTEs'@; put 'NTc2MTIsNTc2MTMsNTc2MTQsNTc2MTUsNTc2MTYsNTc2MTcsNTc2MTgsNTc2MTksNTc2MjAsNTc2MjEsNTc2MjIsNTc2MjMsNTc2MjQsNTc2MjUsMjk4MTksMjk4MjAsMjk4MjEsMjk4MjMsMjk4MjYsMjk4MjgsMjk4MjksMjk4MzAsMjk4MzIsMjk4MzMsMjk4MzQsMjk4MzYsMjk4MzcsMjk4'@; put 'MzksMjk4NDEsMjk4NDIsMjk4NDMsMjk4NDQsMjk4NDUsMjk4NDYsMjk4NDcsMjk4NDgsMjk4NDksMjk4NTAsMjk4NTEsMjk4NTMsMjk4NTUsMjk4NTYsMjk4NTcsMjk4NTgsMjk4NTksMjk4NjAsMjk4NjEsMjk4NjIsMjk4NjYsMjk4NjcsMjk4NjgsMjk4NjksMjk4NzAsMjk4NzEsMjk4NzIs'@; put 'Mjk4NzMsMjk4NzQsMjk4NzUsMjk4NzYsMjk4NzcsMjk4NzgsMjk4NzksMjk4ODAsMjk4ODEsMjk4ODMsMjk4ODQsMjk4ODUsMjk4ODYsMjk4ODcsMjk4ODgsMjk4ODksMjk4OTAsMjk4OTEsMjk4OTIsMjk4OTMsMjk4OTQsMjk4OTUsMjk4OTYsMjk4OTcsMjk4OTgsMjk4OTksMjk5MDAsMjk5'@; put 'MDEsMjk5MDIsMjk5MDMsMjk5MDQsMjk5MDUsMjk5MDcsMjk5MDgsMjk5MDksMjk5MTAsMjk5MTEsMjk5MTIsMjk5MTMsMjk5MTQsMjk5MTUsMjk5MTcsMjk5MTksMjk5MjEsMjk5MjUsMjk5MjcsMjk5MjgsMjk5MjksMjk5MzAsMjk5MzEsMjk5MzIsMjk5MzMsMjk5MzYsMjk5MzcsMjk5Mzgs'@; put 'NTc2MjYsNTc2MjcsNTc2MjgsNTc2MjksNTc2MzAsNTc2MzEsNTc2MzIsNTc2MzMsNTc2MzQsNTc2MzUsNTc2MzYsNTc2MzcsNTc2MzgsNTc2MzksNTc2NDAsNTc2NDEsNTc2NDIsNTc2NDMsNTc2NDQsNTc2NDUsNTc2NDYsNTc2NDcsNTc2NDgsNTc2NDksNTc2NTAsNTc2NTEsNTc2NTIsNTc2'@; put 'NTMsNTc2NTQsNTc2NTUsNTc2NTYsNTc2NTcsNTc2NTgsNTc2NTksNTc2NjAsNTc2NjEsNTc2NjIsNTc2NjMsNTc2NjQsNTc2NjUsNTc2NjYsNTc2NjcsNTc2NjgsNTc2NjksNTc2NzAsNTc2NzEsNTc2NzIsNTc2NzMsNTc2NzQsNTc2NzUsNTc2NzYsNTc2NzcsNTc2NzgsNTc2NzksNTc2ODAs'@; put 'NTc2ODEsNTc2ODIsNTc2ODMsNTc2ODQsNTc2ODUsNTc2ODYsNTc2ODcsNTc2ODgsNTc2ODksNTc2OTAsNTc2OTEsNTc2OTIsNTc2OTMsNTc2OTQsNTc2OTUsNTc2OTYsNTc2OTcsNTc2OTgsNTc2OTksNTc3MDAsNTc3MDEsNTc3MDIsNTc3MDMsNTc3MDQsNTc3MDUsNTc3MDYsNTc3MDcsNTc3'@; put 'MDgsNTc3MDksNTc3MTAsNTc3MTEsNTc3MTIsNTc3MTMsNTc3MTQsNTc3MTUsNTc3MTYsNTc3MTcsNTc3MTgsNTc3MTksMjk5MzksMjk5NDEsMjk5NDQsMjk5NDUsMjk5NDYsMjk5NDcsMjk5NDgsMjk5NDksMjk5NTAsMjk5NTIsMjk5NTMsMjk5NTQsMjk5NTUsMjk5NTcsMjk5NTgsMjk5NTks'@; put 'Mjk5NjAsMjk5NjEsMjk5NjIsMjk5NjMsMjk5NjQsMjk5NjYsMjk5NjgsMjk5NzAsMjk5NzIsMjk5NzMsMjk5NzQsMjk5NzUsMjk5NzksMjk5ODEsMjk5ODIsMjk5ODQsMjk5ODUsMjk5ODYsMjk5ODcsMjk5ODgsMjk5OTAsMjk5OTEsMjk5OTQsMjk5OTgsMzAwMDQsMzAwMDYsMzAwMDksMzAw'@; put 'MTIsMzAwMTMsMzAwMTUsMzAwMTcsMzAwMTgsMzAwMTksMzAwMjAsMzAwMjIsMzAwMjMsMzAwMjUsMzAwMjYsMzAwMjksMzAwMzIsMzAwMzMsMzAwMzQsMzAwMzUsMzAwMzcsMzAwMzgsMzAwMzksMzAwNDAsMzAwNDUsMzAwNDYsMzAwNDcsMzAwNDgsMzAwNDksMzAwNTAsMzAwNTEsMzAwNTIs'@; put 'MzAwNTUsMzAwNTYsMzAwNTcsMzAwNTksMzAwNjAsMzAwNjEsMzAwNjIsMzAwNjMsMzAwNjQsMzAwNjUsMzAwNjcsMzAwNjksMzAwNzAsMzAwNzEsMzAwNzQsMzAwNzUsMzAwNzYsMzAwNzcsMzAwNzgsMzAwODAsMzAwODEsMzAwODIsMzAwODQsMzAwODUsMzAwODcsNTc3MjAsNTc3MjEsNTc3'@; put 'MjIsNTc3MjMsNTc3MjQsNTc3MjUsNTc3MjYsNTc3MjcsNTc3MjgsNTc3MjksNTc3MzAsNTc3MzEsNTc3MzIsNTc3MzMsNTc3MzQsNTc3MzUsNTc3MzYsNTc3MzcsNTc3MzgsNTc3MzksNTc3NDAsNTc3NDEsNTc3NDIsNTc3NDMsNTc3NDQsNTc3NDUsNTc3NDYsNTc3NDcsNTc3NDgsNTc3NDks'@; put 'NTc3NTAsNTc3NTEsNTc3NTIsNTc3NTMsNTc3NTQsNTc3NTUsNTc3NTYsNTc3NTcsNTc3NTgsNTc3NTksNTc3NjAsNTc3NjEsNTc3NjIsNTc3NjMsNTc3NjQsNTc3NjUsNTc3NjYsNTc3NjcsNTc3NjgsNTc3NjksNTc3NzAsNTc3NzEsNTc3NzIsNTc3NzMsNTc3NzQsNTc3NzUsNTc3NzYsNTc3'@; put 'NzcsNTc3NzgsNTc3NzksNTc3ODAsNTc3ODEsNTc3ODIsNTc3ODMsNTc3ODQsNTc3ODUsNTc3ODYsNTc3ODcsNTc3ODgsNTc3ODksNTc3OTAsNTc3OTEsNTc3OTIsNTc3OTMsNTc3OTQsNTc3OTUsNTc3OTYsNTc3OTcsNTc3OTgsNTc3OTksNTc4MDAsNTc4MDEsNTc4MDIsNTc4MDMsNTc4MDQs'@; put 'NTc4MDUsNTc4MDYsNTc4MDcsNTc4MDgsNTc4MDksNTc4MTAsNTc4MTEsNTc4MTIsNTc4MTMsMzAwODgsMzAwODksMzAwOTAsMzAwOTIsMzAwOTMsMzAwOTQsMzAwOTYsMzAwOTksMzAxMDEsMzAxMDQsMzAxMDcsMzAxMDgsMzAxMTAsMzAxMTQsMzAxMTgsMzAxMTksMzAxMjAsMzAxMjEsMzAx'@; put 'MjIsMzAxMjUsMzAxMzQsMzAxMzUsMzAxMzgsMzAxMzksMzAxNDMsMzAxNDQsMzAxNDUsMzAxNTAsMzAxNTUsMzAxNTYsMzAxNTgsMzAxNTksMzAxNjAsMzAxNjEsMzAxNjMsMzAxNjcsMzAxNjksMzAxNzAsMzAxNzIsMzAxNzMsMzAxNzUsMzAxNzYsMzAxNzcsMzAxODEsMzAxODUsMzAxODgs'@; put 'MzAxODksMzAxOTAsMzAxOTEsMzAxOTQsMzAxOTUsMzAxOTcsMzAxOTgsMzAxOTksMzAyMDAsMzAyMDIsMzAyMDMsMzAyMDUsMzAyMDYsMzAyMTAsMzAyMTIsMzAyMTQsMzAyMTUsMzAyMTYsMzAyMTcsMzAyMTksMzAyMjEsMzAyMjIsMzAyMjMsMzAyMjUsMzAyMjYsMzAyMjcsMzAyMjgsMzAy'@; put 'MzAsMzAyMzQsMzAyMzYsMzAyMzcsMzAyMzgsMzAyNDEsMzAyNDMsMzAyNDcsMzAyNDgsMzAyNTIsMzAyNTQsMzAyNTUsMzAyNTcsMzAyNTgsMzAyNjIsMzAyNjMsMzAyNjUsMzAyNjYsMzAyNjcsMzAyNjksMzAyNzMsMzAyNzQsMzAyNzYsNTc4MTQsNTc4MTUsNTc4MTYsNTc4MTcsNTc4MTgs'@; put 'NTc4MTksNTc4MjAsNTc4MjEsNTc4MjIsNTc4MjMsNTc4MjQsNTc4MjUsNTc4MjYsNTc4MjcsNTc4MjgsNTc4MjksNTc4MzAsNTc4MzEsNTc4MzIsNTc4MzMsNTc4MzQsNTc4MzUsNTc4MzYsNTc4MzcsNTc4MzgsNTc4MzksNTc4NDAsNTc4NDEsNTc4NDIsNTc4NDMsNTc4NDQsNTc4NDUsNTc4'@; put 'NDYsNTc4NDcsNTc4NDgsNTc4NDksNTc4NTAsNTc4NTEsNTc4NTIsNTc4NTMsNTc4NTQsNTc4NTUsNTc4NTYsNTc4NTcsNTc4NTgsNTc4NTksNTc4NjAsNTc4NjEsNTc4NjIsNTc4NjMsNTc4NjQsNTc4NjUsNTc4NjYsNTc4NjcsNTc4NjgsNTc4NjksNTc4NzAsNTc4NzEsNTc4NzIsNTc4NzMs'@; put 'NTc4NzQsNTc4NzUsNTc4NzYsNTc4NzcsNTc4NzgsNTc4NzksNTc4ODAsNTc4ODEsNTc4ODIsNTc4ODMsNTc4ODQsNTc4ODUsNTc4ODYsNTc4ODcsNTc4ODgsNTc4ODksNTc4OTAsNTc4OTEsNTc4OTIsNTc4OTMsNTc4OTQsNTc4OTUsNTc4OTYsNTc4OTcsNTc4OTgsNTc4OTksNTc5MDAsNTc5'@; put 'MDEsNTc5MDIsNTc5MDMsNTc5MDQsNTc5MDUsNTc5MDYsNTc5MDcsMzAyNzcsMzAyNzgsMzAyNzksMzAyODAsMzAyODEsMzAyODIsMzAyODMsMzAyODYsMzAyODcsMzAyODgsMzAyODksMzAyOTAsMzAyOTEsMzAyOTMsMzAyOTUsMzAyOTYsMzAyOTcsMzAyOTgsMzAyOTksMzAzMDEsMzAzMDMs'@; put 'MzAzMDQsMzAzMDUsMzAzMDYsMzAzMDgsMzAzMDksMzAzMTAsMzAzMTEsMzAzMTIsMzAzMTMsMzAzMTQsMzAzMTYsMzAzMTcsMzAzMTgsMzAzMjAsMzAzMjEsMzAzMjIsMzAzMjMsMzAzMjQsMzAzMjUsMzAzMjYsMzAzMjcsMzAzMjksMzAzMzAsMzAzMzIsMzAzMzUsMzAzMzYsMzAzMzcsMzAz'@; put 'MzksMzAzNDEsMzAzNDUsMzAzNDYsMzAzNDgsMzAzNDksMzAzNTEsMzAzNTIsMzAzNTQsMzAzNTYsMzAzNTcsMzAzNTksMzAzNjAsMzAzNjIsMzAzNjMsMzAzNjQsMzAzNjUsMzAzNjYsMzAzNjcsMzAzNjgsMzAzNjksMzAzNzAsMzAzNzEsMzAzNzMsMzAzNzQsMzAzNzUsMzAzNzYsMzAzNzcs'@; put 'MzAzNzgsMzAzNzksMzAzODAsMzAzODEsMzAzODMsMzAzODQsMzAzODcsMzAzODksMzAzOTAsMzAzOTEsMzAzOTIsMzAzOTMsMzAzOTQsMzAzOTUsMzAzOTYsMzAzOTcsMzAzOTgsMzA0MDAsMzA0MDEsMzA0MDMsMjE4MzQsMzg0NjMsMjI0NjcsMjUzODQsMjE3MTAsMjE3NjksMjE2OTYsMzAz'@; put 'NTMsMzAyODQsMzQxMDgsMzA3MDIsMzM0MDYsMzA4NjEsMjkyMzMsMzg1NTIsMzg3OTcsMjc2ODgsMjM0MzMsMjA0NzQsMjUzNTMsMjYyNjMsMjM3MzYsMzMwMTgsMjY2OTYsMzI5NDIsMjYxMTQsMzA0MTQsMjA5ODUsMjU5NDIsMjkxMDAsMzI3NTMsMzQ5NDgsMjA2NTgsMjI4ODUsMjUwMzQs'@; put 'Mjg1OTUsMzM0NTMsMjU0MjAsMjUxNzAsMjE0ODUsMjE1NDMsMzE0OTQsMjA4NDMsMzAxMTYsMjQwNTIsMjUzMDAsMzYyOTksMzg3NzQsMjUyMjYsMzI3OTMsMjIzNjUsMzg3MTIsMzI2MTAsMjkyNDAsMzAzMzMsMjY1NzUsMzAzMzQsMjU2NzAsMjAzMzYsMzYxMzMsMjUzMDgsMzEyNTUsMjYw'@; put 'MDEsMjk2NzcsMjU2NDQsMjUyMDMsMzMzMjQsMzkwNDEsMjY0OTUsMjkyNTYsMjUxOTgsMjUyOTIsMjAyNzYsMjk5MjMsMjEzMjIsMjExNTAsMzI0NTgsMzcwMzAsMjQxMTAsMjY3NTgsMjcwMzYsMzMxNTIsMzI0NjUsMjY4MzQsMzA5MTcsMzQ0NDQsMzgyMjUsMjA2MjEsMzU4NzYsMzM1MDIs'@; put 'MzI5OTAsMjEyNTMsMzUwOTAsMjEwOTMsMzA0MDQsMzA0MDcsMzA0MDksMzA0MTEsMzA0MTIsMzA0MTksMzA0MjEsMzA0MjUsMzA0MjYsMzA0MjgsMzA0MjksMzA0MzAsMzA0MzIsMzA0MzMsMzA0MzQsMzA0MzUsMzA0MzYsMzA0MzgsMzA0MzksMzA0NDAsMzA0NDEsMzA0NDIsMzA0NDMsMzA0'@; put 'NDQsMzA0NDUsMzA0NDgsMzA0NTEsMzA0NTMsMzA0NTQsMzA0NTUsMzA0NTgsMzA0NTksMzA0NjEsMzA0NjMsMzA0NjQsMzA0NjYsMzA0NjcsMzA0NjksMzA0NzAsMzA0NzQsMzA0NzYsMzA0NzgsMzA0NzksMzA0ODAsMzA0ODEsMzA0ODIsMzA0ODMsMzA0ODQsMzA0ODUsMzA0ODYsMzA0ODcs'@; put 'MzA0ODgsMzA0OTEsMzA0OTIsMzA0OTMsMzA0OTQsMzA0OTcsMzA0OTksMzA1MDAsMzA1MDEsMzA1MDMsMzA1MDYsMzA1MDcsMzA1MDgsMzA1MTAsMzA1MTIsMzA1MTMsMzA1MTQsMzA1MTUsMzA1MTYsMzA1MjEsMzA1MjMsMzA1MjUsMzA1MjYsMzA1MjcsMzA1MzAsMzA1MzIsMzA1MzMsMzA1'@; put 'MzQsMzA1MzYsMzA1MzcsMzA1MzgsMzA1MzksMzA1NDAsMzA1NDEsMzA1NDIsMzA1NDMsMzA1NDYsMzA1NDcsMzA1NDgsMzA1NDksMzA1NTAsMzA1NTEsMzA1NTIsMzA1NTMsMzA1NTYsMzQxODAsMzg2NDksMjA0NDUsMjI1NjEsMzkyODEsMjM0NTMsMjUyNjUsMjUyNTMsMjYyOTIsMzU5NjEs'@; put 'NDAwNzcsMjkxOTAsMjY0NzksMzA4NjUsMjQ3NTQsMjEzMjksMjEyNzEsMzY3NDQsMzI5NzIsMzYxMjUsMzgwNDksMjA0OTMsMjkzODQsMjI3OTEsMjQ4MTEsMjg5NTMsMzQ5ODcsMjI4NjgsMzM1MTksMjY0MTIsMzE1MjgsMjM4NDksMzI1MDMsMjk5OTcsMjc4OTMsMzY0NTQsMzY4NTYsMzY5'@; put 'MjQsNDA3NjMsMjc2MDQsMzcxNDUsMzE1MDgsMjQ0NDQsMzA4ODcsMzQwMDYsMzQxMDksMjc2MDUsMjc2MDksMjc2MDYsMjQwNjUsMjQxOTksMzAyMDEsMzgzODEsMjU5NDksMjQzMzAsMjQ1MTcsMzY3NjcsMjI3MjEsMzMyMTgsMzY5OTEsMzg0OTEsMzg4MjksMzY3OTMsMzI1MzQsMzYxNDAs'@; put 'MjUxNTMsMjA0MTUsMjE0NjQsMjEzNDIsMzY3NzYsMzY3NzcsMzY3NzksMzY5NDEsMjY2MzEsMjQ0MjYsMzMxNzYsMzQ5MjAsNDAxNTAsMjQ5NzEsMjEwMzUsMzAyNTAsMjQ0MjgsMjU5OTYsMjg2MjYsMjgzOTIsMjM0ODYsMjU2NzIsMjA4NTMsMjA5MTIsMjY1NjQsMTk5OTMsMzExNzcsMzky'@; put 'OTIsMjg4NTEsMzA1NTcsMzA1NTgsMzA1NTksMzA1NjAsMzA1NjQsMzA1NjcsMzA1NjksMzA1NzAsMzA1NzMsMzA1NzQsMzA1NzUsMzA1NzYsMzA1NzcsMzA1NzgsMzA1NzksMzA1ODAsMzA1ODEsMzA1ODIsMzA1ODMsMzA1ODQsMzA1ODYsMzA1ODcsMzA1ODgsMzA1OTMsMzA1OTQsMzA1OTUs'@; put 'MzA1OTgsMzA1OTksMzA2MDAsMzA2MDEsMzA2MDIsMzA2MDMsMzA2MDcsMzA2MDgsMzA2MTEsMzA2MTIsMzA2MTMsMzA2MTQsMzA2MTUsMzA2MTYsMzA2MTcsMzA2MTgsMzA2MTksMzA2MjAsMzA2MjEsMzA2MjIsMzA2MjUsMzA2MjcsMzA2MjgsMzA2MzAsMzA2MzIsMzA2MzUsMzA2MzcsMzA2'@; put 'MzgsMzA2MzksMzA2NDEsMzA2NDIsMzA2NDQsMzA2NDYsMzA2NDcsMzA2NDgsMzA2NDksMzA2NTAsMzA2NTIsMzA2NTQsMzA2NTYsMzA2NTcsMzA2NTgsMzA2NTksMzA2NjAsMzA2NjEsMzA2NjIsMzA2NjMsMzA2NjQsMzA2NjUsMzA2NjYsMzA2NjcsMzA2NjgsMzA2NzAsMzA2NzEsMzA2NzIs'@; put 'MzA2NzMsMzA2NzQsMzA2NzUsMzA2NzYsMzA2NzcsMzA2NzgsMzA2ODAsMzA2ODEsMzA2ODIsMzA2ODUsMzA2ODYsMzA2ODcsMzA2ODgsMzA2ODksMzA2OTIsMzAxNDksMjQxODIsMjk2MjcsMzM3NjAsMjU3NzMsMjUzMjAsMzgwNjksMjc4NzQsMjEzMzgsMjExODcsMjU2MTUsMzgwODIsMzE2'@; put 'MzYsMjAyNzEsMjQwOTEsMzMzMzQsMzMwNDYsMzMxNjIsMjgxOTYsMjc4NTAsMzk1MzksMjU0MjksMjEzNDAsMjE3NTQsMzQ5MTcsMjI0OTYsMTk5ODEsMjQwNjcsMjc0OTMsMzE4MDcsMzcwOTYsMjQ1OTgsMjU4MzAsMjk0NjgsMzUwMDksMjY0NDgsMjUxNjUsMzYxMzAsMzA1NzIsMzYzOTMs'@; put 'MzczMTksMjQ0MjUsMzM3NTYsMzQwODEsMzkxODQsMjE0NDIsMzQ0NTMsMjc1MzEsMjQ4MTMsMjQ4MDgsMjg3OTksMzM0ODUsMzMzMjksMjAxNzksMjc4MTUsMzQyNTUsMjU4MDUsMzE5NjEsMjcxMzMsMjYzNjEsMzM2MDksMjEzOTcsMzE1NzQsMjAzOTEsMjA4NzYsMjc5NzksMjM2MTgsMzY0'@; put 'NjEsMjU1NTQsMjE0NDksMzM1ODAsMzM1OTAsMjY1OTcsMzA5MDAsMjU2NjEsMjM1MTksMjM3MDAsMjQwNDYsMzU4MTUsMjUyODYsMjY2MTIsMzU5NjIsMjU2MDAsMjU1MzAsMzQ2MzMsMzkzMDcsMzU4NjMsMzI1NDQsMzgxMzAsMjAxMzUsMzg0MTYsMzkwNzYsMjYxMjQsMjk0NjIsMzA2OTQs'@; put 'MzA2OTYsMzA2OTgsMzA3MDMsMzA3MDQsMzA3MDUsMzA3MDYsMzA3MDgsMzA3MDksMzA3MTEsMzA3MTMsMzA3MTQsMzA3MTUsMzA3MTYsMzA3MjMsMzA3MjQsMzA3MjUsMzA3MjYsMzA3MjcsMzA3MjgsMzA3MzAsMzA3MzEsMzA3MzQsMzA3MzUsMzA3MzYsMzA3MzksMzA3NDEsMzA3NDUsMzA3'@; put 'NDcsMzA3NTAsMzA3NTIsMzA3NTMsMzA3NTQsMzA3NTYsMzA3NjAsMzA3NjIsMzA3NjMsMzA3NjYsMzA3NjcsMzA3NjksMzA3NzAsMzA3NzEsMzA3NzMsMzA3NzQsMzA3ODEsMzA3ODMsMzA3ODUsMzA3ODYsMzA3ODcsMzA3ODgsMzA3OTAsMzA3OTIsMzA3OTMsMzA3OTQsMzA3OTUsMzA3OTcs'@; put 'MzA3OTksMzA4MDEsMzA4MDMsMzA4MDQsMzA4MDgsMzA4MDksMzA4MTAsMzA4MTEsMzA4MTIsMzA4MTQsMzA4MTUsMzA4MTYsMzA4MTcsMzA4MTgsMzA4MTksMzA4MjAsMzA4MjEsMzA4MjIsMzA4MjMsMzA4MjQsMzA4MjUsMzA4MzEsMzA4MzIsMzA4MzMsMzA4MzQsMzA4MzUsMzA4MzYsMzA4'@; put 'MzcsMzA4MzgsMzA4NDAsMzA4NDEsMzA4NDIsMzA4NDMsMzA4NDUsMzA4NDYsMzA4NDcsMzA4NDgsMzA4NDksMzA4NTAsMzA4NTEsMjIzMzAsMjM1ODEsMjQxMjAsMzgyNzEsMjA2MDcsMzI5MjgsMjEzNzgsMjU5NTAsMzAwMjEsMjE4MDksMjA1MTMsMzYyMjksMjUyMjAsMzgwNDYsMjYzOTcs'@; put 'MjIwNjYsMjg1MjYsMjQwMzQsMjE1NTcsMjg4MTgsMzY3MTAsMjUxOTksMjU3NjQsMjU1MDcsMjQ0NDMsMjg1NTIsMzcxMDgsMzMyNTEsMzY3ODQsMjM1NzYsMjYyMTYsMjQ1NjEsMjc3ODUsMzg0NzIsMzYyMjUsMzQ5MjQsMjU3NDUsMzEyMTYsMjI0NzgsMjcyMjUsMjUxMDQsMjE1NzYsMjAw'@; put 'NTYsMzEyNDMsMjQ4MDksMjg1NDgsMzU4MDIsMjUyMTUsMzY4OTQsMzk1NjMsMzEyMDQsMjE1MDcsMzAxOTYsMjUzNDUsMjEyNzMsMjc3NDQsMzY4MzEsMjQzNDcsMzk1MzYsMzI4MjcsNDA4MzEsMjAzNjAsMjM2MTAsMzYxOTYsMzI3MDksMjYwMjEsMjg4NjEsMjA4MDUsMjA5MTQsMzQ0MTEs'@; put 'MjM4MTUsMjM0NTYsMjUyNzcsMzcyMjgsMzAwNjgsMzYzNjQsMzEyNjQsMjQ4MzMsMzE2MDksMjAxNjcsMzI1MDQsMzA1OTcsMTk5ODUsMzMyNjEsMjEwMjEsMjA5ODYsMjcyNDksMjE0MTYsMzY0ODcsMzgxNDgsMzg2MDcsMjgzNTMsMzg1MDAsMjY5NzAsMzA4NTIsMzA4NTMsMzA4NTQsMzA4'@; put 'NTYsMzA4NTgsMzA4NTksMzA4NjMsMzA4NjQsMzA4NjYsMzA4NjgsMzA4NjksMzA4NzAsMzA4NzMsMzA4NzcsMzA4NzgsMzA4ODAsMzA4ODIsMzA4ODQsMzA4ODYsMzA4ODgsMzA4ODksMzA4OTAsMzA4OTEsMzA4OTIsMzA4OTMsMzA4OTQsMzA4OTUsMzA5MDEsMzA5MDIsMzA5MDMsMzA5MDQs'@; put 'MzA5MDYsMzA5MDcsMzA5MDgsMzA5MDksMzA5MTEsMzA5MTIsMzA5MTQsMzA5MTUsMzA5MTYsMzA5MTgsMzA5MTksMzA5MjAsMzA5MjQsMzA5MjUsMzA5MjYsMzA5MjcsMzA5MjksMzA5MzAsMzA5MzEsMzA5MzQsMzA5MzUsMzA5MzYsMzA5MzgsMzA5MzksMzA5NDAsMzA5NDEsMzA5NDIsMzA5'@; put 'NDMsMzA5NDQsMzA5NDUsMzA5NDYsMzA5NDcsMzA5NDgsMzA5NDksMzA5NTAsMzA5NTEsMzA5NTMsMzA5NTQsMzA5NTUsMzA5NTcsMzA5NTgsMzA5NTksMzA5NjAsMzA5NjEsMzA5NjMsMzA5NjUsMzA5NjYsMzA5NjgsMzA5NjksMzA5NzEsMzA5NzIsMzA5NzMsMzA5NzQsMzA5NzUsMzA5NzYs'@; put 'MzA5NzgsMzA5NzksMzA5ODAsMzA5ODIsMzA5ODMsMzA5ODQsMzA5ODUsMzA5ODYsMzA5ODcsMzA5ODgsMzA3ODQsMjA2NDgsMzA2NzksMjU2MTYsMzUzMDIsMjI3ODgsMjU1NzEsMjQwMjksMzEzNTksMjY5NDEsMjAyNTYsMzMzMzcsMjE5MTIsMjAwMTgsMzAxMjYsMzEzODMsMjQxNjIsMjQy'@; put 'MDIsMzgzODMsMjEwMTksMjE1NjEsMjg4MTAsMjU0NjIsMzgxODAsMjI0MDIsMjYxNDksMjY5NDMsMzcyNTUsMjE3NjcsMjgxNDcsMzI0MzEsMzQ4NTAsMjUxMzksMzI0OTYsMzAxMzMsMzM1NzYsMzA5MTMsMzg2MDQsMzY3NjYsMjQ5MDQsMjk5NDMsMzU3ODksMjc0OTIsMjEwNTAsMzYxNzYs'@; put 'Mjc0MjUsMzI4NzQsMzM5MDUsMjIyNTcsMjEyNTQsMjAxNzQsMTk5OTUsMjA5NDUsMzE4OTUsMzcyNTksMzE3NTEsMjA0MTksMzY0NzksMzE3MTMsMzEzODgsMjU3MDMsMjM4MjgsMjA2NTIsMzMwMzAsMzAyMDksMzE5MjksMjgxNDAsMzI3MzYsMjY0NDksMjMzODQsMjM1NDQsMzA5MjMsMjU3'@; put 'NzQsMjU2MTksMjU1MTQsMjUzODcsMzgxNjksMjU2NDUsMzY3OTgsMzE1NzIsMzAyNDksMjUxNzEsMjI4MjMsMjE1NzQsMjc1MTMsMjA2NDMsMjUxNDAsMjQxMDIsMjc1MjYsMjAxOTUsMzYxNTEsMzQ5NTUsMjQ0NTMsMzY5MTAsMzA5ODksMzA5OTAsMzA5OTEsMzA5OTIsMzA5OTMsMzA5OTQs'@; put 'MzA5OTYsMzA5OTcsMzA5OTgsMzA5OTksMzFlMywzMTAwMSwzMTAwMiwzMTAwMywzMTAwNCwzMTAwNSwzMTAwNywzMTAwOCwzMTAwOSwzMTAxMCwzMTAxMSwzMTAxMywzMTAxNCwzMTAxNSwzMTAxNiwzMTAxNywzMTAxOCwzMTAxOSwzMTAyMCwzMTAyMSwzMTAyMiwzMTAyMywzMTAyNCwzMTAy'@; put 'NSwzMTAyNiwzMTAyNywzMTAyOSwzMTAzMCwzMTAzMSwzMTAzMiwzMTAzMywzMTAzNywzMTAzOSwzMTA0MiwzMTA0MywzMTA0NCwzMTA0NSwzMTA0NywzMTA1MCwzMTA1MSwzMTA1MiwzMTA1MywzMTA1NCwzMTA1NSwzMTA1NiwzMTA1NywzMTA1OCwzMTA2MCwzMTA2MSwzMTA2NCwzMTA2NSwz'@; put 'MTA3MywzMTA3NSwzMTA3NiwzMTA3OCwzMTA4MSwzMTA4MiwzMTA4MywzMTA4NCwzMTA4NiwzMTA4OCwzMTA4OSwzMTA5MCwzMTA5MSwzMTA5MiwzMTA5MywzMTA5NCwzMTA5NywzMTA5OSwzMTEwMCwzMTEwMSwzMTEwMiwzMTEwMywzMTEwNiwzMTEwNywzMTExMCwzMTExMSwzMTExMiwzMTEx'@; put 'MywzMTExNSwzMTExNiwzMTExNywzMTExOCwzMTEyMCwzMTEyMSwzMTEyMiwyNDYwOCwzMjgyOSwyNTI4NSwyMDAyNSwyMTMzMywzNzExMiwyNTUyOCwzMjk2NiwyNjA4NiwyNzY5NCwyMDI5NCwyNDgxNCwyODEyOSwzNTgwNiwyNDM3NywzNDUwNywyNDQwMywyNTM3NywyMDgyNiwzMzYzMywy'@; put 'NjcyMywyMDk5MiwyNTQ0MywzNjQyNCwyMDQ5OCwyMzcwNywzMTA5NSwyMzU0OCwyMTA0MCwzMTI5MSwyNDc2NCwzNjk0NywzMDQyMywyNDUwMywyNDQ3MSwzMDM0MCwzNjQ2MCwyODc4MywzMDMzMSwzMTU2MSwzMDYzNCwyMDk3OSwzNzAxMSwyMjU2NCwyMDMwMiwyODQwNCwzNjg0MiwyNTkz'@; put 'MiwzMTUxNSwyOTM4MCwyODA2OCwzMjczNSwyMzI2NSwyNTI2OSwyNDIxMywyMjMyMCwzMzkyMiwzMTUzMiwyNDA5MywyNDM1MSwzNjg4MiwzMjUzMiwzOTA3MiwyNTQ3NCwyODM1OSwzMDg3MiwyODg1NywyMDg1NiwzODc0NywyMjQ0MywzMDAwNSwyMDI5MSwzMDAwOCwyNDIxNSwyNDgwNiwy'@; put 'Mjg4MCwyODA5NiwyNzU4MywzMDg1NywyMTUwMCwzODYxMywyMDkzOSwyMDk5MywyNTQ4MSwyMTUxNCwzODAzNSwzNTg0MywzNjMwMCwyOTI0MSwzMDg3OSwzNDY3OCwzNjg0NSwzNTg1MywyMTQ3MiwzMTEyMywzMTEyNCwzMTEyNSwzMTEyNiwzMTEyNywzMTEyOCwzMTEyOSwzMTEzMSwzMTEz'@; put 'MiwzMTEzMywzMTEzNCwzMTEzNSwzMTEzNiwzMTEzNywzMTEzOCwzMTEzOSwzMTE0MCwzMTE0MSwzMTE0MiwzMTE0NCwzMTE0NSwzMTE0NiwzMTE0NywzMTE0OCwzMTE0OSwzMTE1MCwzMTE1MSwzMTE1MiwzMTE1MywzMTE1NCwzMTE1NiwzMTE1NywzMTE1OCwzMTE1OSwzMTE2MCwzMTE2NCwz'@; put 'MTE2NywzMTE3MCwzMTE3MiwzMTE3MywzMTE3NSwzMTE3NiwzMTE3OCwzMTE4MCwzMTE4MiwzMTE4MywzMTE4NCwzMTE4NywzMTE4OCwzMTE5MCwzMTE5MSwzMTE5MywzMTE5NCwzMTE5NSwzMTE5NiwzMTE5NywzMTE5OCwzMTIwMCwzMTIwMSwzMTIwMiwzMTIwNSwzMTIwOCwzMTIxMCwzMTIx'@; put 'MiwzMTIxNCwzMTIxNywzMTIxOCwzMTIxOSwzMTIyMCwzMTIyMSwzMTIyMiwzMTIyMywzMTIyNSwzMTIyNiwzMTIyOCwzMTIzMCwzMTIzMSwzMTIzMywzMTIzNiwzMTIzNywzMTIzOSwzMTI0MCwzMTI0MSwzMTI0MiwzMTI0NCwzMTI0NywzMTI0OCwzMTI0OSwzMTI1MCwzMTI1MSwzMTI1Mywz'@; put 'MTI1NCwzMTI1NiwzMTI1NywzMTI1OSwzMTI2MCwxOTk2OSwzMDQ0NywyMTQ4NiwzODAyNSwzOTAzMCw0MDcxOCwzODE4OSwyMzQ1MCwzNTc0NiwyMDAwMiwxOTk5NiwyMDkwOCwzMzg5MSwyNTAyNiwyMTE2MCwyNjYzNSwyMDM3NSwyNDY4MywyMDkyMywyNzkzNCwyMDgyOCwyNTIzOCwyNjAw'@; put 'NywzODQ5NywzNTkxMCwzNjg4NywzMDE2OCwzNzExNywzMDU2MywyNzYwMiwyOTMyMiwyOTQyMCwzNTgzNSwyMjU4MSwzMDU4NSwzNjE3MiwyNjQ2MCwzODIwOCwzMjkyMiwyNDIzMCwyODE5MywyMjkzMCwzMTQ3MSwzMDcwMSwzODIwMywyNzU3MywyNjAyOSwzMjUyNiwyMjUzNCwyMDgxNywz'@; put 'ODQzMSwyMzU0NSwyMjY5NywyMTU0NCwzNjQ2NiwyNTk1OCwzOTAzOSwyMjI0NCwzODA0NSwzMDQ2MiwzNjkyOSwyNTQ3OSwyMTcwMiwyMjgxMCwyMjg0MiwyMjQyNywzNjUzMCwyNjQyMSwzNjM0NiwzMzMzMywyMTA1NywyNDgxNiwyMjU0OSwzNDU1OCwyMzc4NCw0MDUxNywyMDQyMCwzOTA2'@; put 'OSwzNTc2OSwyMzA3NywyNDY5NCwyMTM4MCwyNTIxMiwzNjk0MywzNzEyMiwzOTI5NSwyNDY4MSwzMjc4MCwyMDc5OSwzMjgxOSwyMzU3MiwzOTI4NSwyNzk1MywyMDEwOCwzMTI2MSwzMTI2MywzMTI2NSwzMTI2NiwzMTI2OCwzMTI2OSwzMTI3MCwzMTI3MSwzMTI3MiwzMTI3MywzMTI3NCwz'@; put 'MTI3NSwzMTI3NiwzMTI3NywzMTI3OCwzMTI3OSwzMTI4MCwzMTI4MSwzMTI4MiwzMTI4NCwzMTI4NSwzMTI4NiwzMTI4OCwzMTI5MCwzMTI5NCwzMTI5NiwzMTI5NywzMTI5OCwzMTI5OSwzMTMwMCwzMTMwMSwzMTMwMywzMTMwNCwzMTMwNSwzMTMwNiwzMTMwNywzMTMwOCwzMTMwOSwzMTMx'@; put 'MCwzMTMxMSwzMTMxMiwzMTMxNCwzMTMxNSwzMTMxNiwzMTMxNywzMTMxOCwzMTMyMCwzMTMyMSwzMTMyMiwzMTMyMywzMTMyNCwzMTMyNSwzMTMyNiwzMTMyNywzMTMyOCwzMTMyOSwzMTMzMCwzMTMzMSwzMTMzMiwzMTMzMywzMTMzNCwzMTMzNSwzMTMzNiwzMTMzNywzMTMzOCwzMTMzOSwz'@; put 'MTM0MCwzMTM0MSwzMTM0MiwzMTM0MywzMTM0NSwzMTM0NiwzMTM0NywzMTM0OSwzMTM1NSwzMTM1NiwzMTM1NywzMTM1OCwzMTM2MiwzMTM2NSwzMTM2NywzMTM2OSwzMTM3MCwzMTM3MSwzMTM3MiwzMTM3NCwzMTM3NSwzMTM3NiwzMTM3OSwzMTM4MCwzMTM4NSwzMTM4NiwzMTM4NywzMTM5'@; put 'MCwzMTM5MywzMTM5NCwzNjE0NCwyMTQ1NywzMjYwMiwzMTU2NywyMDI0MCwyMDA0NywzODQwMCwyNzg2MSwyOTY0OCwzNDI4MSwyNDA3MCwzMDA1OCwzMjc2MywyNzE0NiwzMDcxOCwzODAzNCwzMjMyMSwyMDk2MSwyODkwMiwyMTQ1MywzNjgyMCwzMzUzOSwzNjEzNywyOTM1OSwzOTI3Nywy'@; put 'Nzg2NywyMjM0NiwzMzQ1OSwyNjA0MSwzMjkzOCwyNTE1MSwzODQ1MCwyMjk1MiwyMDIyMywzNTc3NSwzMjQ0MiwyNTkxOCwzMzc3OCwzODc1MCwyMTg1NywzOTEzNCwzMjkzMywyMTI5MCwzNTgzNywyMTUzNiwzMjk1NCwyNDIyMywyNzgzMiwzNjE1MywzMzQ1MiwzNzIxMCwyMTU0NSwyNzY3'@; put 'NSwyMDk5OCwzMjQzOSwyMjM2NywyODk1NCwyNzc3NCwzMTg4MSwyMjg1OSwyMDIyMSwyNDU3NSwyNDg2OCwzMTkxNCwyMDAxNiwyMzU1MywyNjUzOSwzNDU2MiwyMzc5MiwzODE1NSwzOTExOCwzMDEyNywyODkyNSwzNjg5OCwyMDkxMSwzMjU0MSwzNTc3MywyMjg1NywyMDk2NCwyMDMxNSwy'@; put 'MTU0MiwyMjgyNywyNTk3NSwzMjkzMiwyMzQxMywyNTIwNiwyNTI4MiwzNjc1MiwyNDEzMywyNzY3OSwzMTUyNiwyMDIzOSwyMDQ0MCwyNjM4MSwzMTM5NSwzMTM5NiwzMTM5OSwzMTQwMSwzMTQwMiwzMTQwMywzMTQwNiwzMTQwNywzMTQwOCwzMTQwOSwzMTQxMCwzMTQxMiwzMTQxMywzMTQx'@; put 'NCwzMTQxNSwzMTQxNiwzMTQxNywzMTQxOCwzMTQxOSwzMTQyMCwzMTQyMSwzMTQyMiwzMTQyNCwzMTQyNSwzMTQyNiwzMTQyNywzMTQyOCwzMTQyOSwzMTQzMCwzMTQzMSwzMTQzMiwzMTQzMywzMTQzNCwzMTQzNiwzMTQzNywzMTQzOCwzMTQzOSwzMTQ0MCwzMTQ0MSwzMTQ0MiwzMTQ0Mywz'@; put 'MTQ0NCwzMTQ0NSwzMTQ0NywzMTQ0OCwzMTQ1MCwzMTQ1MSwzMTQ1MiwzMTQ1MywzMTQ1NywzMTQ1OCwzMTQ2MCwzMTQ2MywzMTQ2NCwzMTQ2NSwzMTQ2NiwzMTQ2NywzMTQ2OCwzMTQ3MCwzMTQ3MiwzMTQ3MywzMTQ3NCwzMTQ3NSwzMTQ3NiwzMTQ3NywzMTQ3OCwzMTQ3OSwzMTQ4MCwzMTQ4'@; put 'MywzMTQ4NCwzMTQ4NiwzMTQ4OCwzMTQ4OSwzMTQ5MCwzMTQ5MywzMTQ5NSwzMTQ5NywzMTUwMCwzMTUwMSwzMTUwMiwzMTUwNCwzMTUwNiwzMTUwNywzMTUxMCwzMTUxMSwzMTUxMiwzMTUxNCwzMTUxNiwzMTUxNywzMTUxOSwzMTUyMSwzMTUyMiwzMTUyMywzMTUyNywzMTUyOSwzMTUzMywy'@; put 'ODAxNCwyODA3NCwzMTExOSwzNDk5MywyNDM0MywyOTk5NSwyNTI0MiwzNjc0MSwyMDQ2MywzNzM0MCwyNjAyMywzMzA3MSwzMzEwNSwyNDIyMCwzMzEwNCwzNjIxMiwyMTEwMywzNTIwNiwzNjE3MSwyMjc5NywyMDYxMywyMDE4NCwzODQyOCwyOTIzOCwzMzE0NSwzNjEyNywyMzUwMCwzNTc0'@; put 'NywzODQ2OCwyMjkxOSwzMjUzOCwyMTY0OCwyMjEzNCwyMjAzMCwzNTgxMywyNTkxMywyNzAxMCwzODA0MSwzMDQyMiwyODI5NywyNDE3OCwyOTk3NiwyNjQzOCwyNjU3NywzMTQ4NywzMjkyNSwzNjIxNCwyNDg2MywzMTE3NCwyNTk1NCwzNjE5NSwyMDg3MiwyMTAxOCwzODA1MCwzMjU2OCwz'@; put 'MjkyMywzMjQzNCwyMzcwMywyODIwNywyNjQ2NCwzMTcwNSwzMDM0NywzOTY0MCwzMzE2NywzMjY2MCwzMTk1NywyNTYzMCwzODIyNCwzMTI5NSwyMTU3OCwyMTczMywyNzQ2OCwyNTYwMSwyNTA5Niw0MDUwOSwzMzAxMSwzMDEwNSwyMTEwNiwzODc2MSwzMzg4MywyNjY4NCwzNDUzMiwzODQw'@; put 'MSwzODU0OCwzODEyNCwyMDAxMCwyMTUwOCwzMjQ3MywyNjY4MSwzNjMxOSwzMjc4OSwyNjM1NiwyNDIxOCwzMjY5NywzMTUzNSwzMTUzNiwzMTUzOCwzMTU0MCwzMTU0MSwzMTU0MiwzMTU0MywzMTU0NSwzMTU0NywzMTU0OSwzMTU1MSwzMTU1MiwzMTU1MywzMTU1NCwzMTU1NSwzMTU1Niwz'@; put 'MTU1OCwzMTU2MCwzMTU2MiwzMTU2NSwzMTU2NiwzMTU3MSwzMTU3MywzMTU3NSwzMTU3NywzMTU4MCwzMTU4MiwzMTU4MywzMTU4NSwzMTU4NywzMTU4OCwzMTU4OSwzMTU5MCwzMTU5MSwzMTU5MiwzMTU5MywzMTU5NCwzMTU5NSwzMTU5NiwzMTU5NywzMTU5OSwzMTYwMCwzMTYwMywzMTYw'@; put 'NCwzMTYwNiwzMTYwOCwzMTYxMCwzMTYxMiwzMTYxMywzMTYxNSwzMTYxNywzMTYxOCwzMTYxOSwzMTYyMCwzMTYyMiwzMTYyMywzMTYyNCwzMTYyNSwzMTYyNiwzMTYyNywzMTYyOCwzMTYzMCwzMTYzMSwzMTYzMywzMTYzNCwzMTYzNSwzMTYzOCwzMTY0MCwzMTY0MSwzMTY0MiwzMTY0Mywz'@; put 'MTY0NiwzMTY0NywzMTY0OCwzMTY1MSwzMTY1MiwzMTY1MywzMTY2MiwzMTY2MywzMTY2NCwzMTY2NiwzMTY2NywzMTY2OSwzMTY3MCwzMTY3MSwzMTY3MywzMTY3NCwzMTY3NSwzMTY3NiwzMTY3NywzMTY3OCwzMTY3OSwzMTY4MCwzMTY4MiwzMTY4MywzMTY4NCwyMjQ2NiwzMjgzMSwyNjc3'@; put 'NSwyNDAzNywyNTkxNSwyMTE1MSwyNDY4NSw0MDg1OCwyMDM3OSwzNjUyNCwyMDg0NCwyMzQ2NywyNDMzOSwyNDA0MSwyNzc0MiwyNTMyOSwzNjEyOSwyMDg0OSwzODA1NywyMTI0NiwyNzgwNywzMzUwMywyOTM5OSwyMjQzNCwyNjUwMCwzNjE0MSwyMjgxNSwzNjc2NCwzMzczNSwyMTY1Mywz'@; put 'MTYyOSwyMDI3MiwyNzgzNywyMzM5NiwyMjk5Myw0MDcyMywyMTQ3NiwzNDUwNiwzOTU5MiwzNTg5NSwzMjkyOSwyNTkyNSwzOTAzOCwyMjI2NiwzODU5OSwyMTAzOCwyOTkxNiwyMTA3MiwyMzUyMSwyNTM0NiwzNTA3NCwyMDA1NCwyNTI5NiwyNDYxOCwyNjg3NCwyMDg1MSwyMzQ0OCwyMDg5'@; put 'NiwzNTI2NiwzMTY0OSwzOTMwMiwzMjU5MiwyNDgxNSwyODc0OCwzNjE0MywyMDgwOSwyNDE5MSwzNjg5MSwyOTgwOCwzNTI2OCwyMjMxNywzMDc4OSwyNDQwMiw0MDg2MywzODM5NCwzNjcxMiwzOTc0MCwzNTgwOSwzMDMyOCwyNjY5MCwyNjU4OCwzNjMzMCwzNjE0OSwyMTA1MywzNjc0Niwy'@; put 'ODM3OCwyNjgyOSwzODE0OSwzNzEwMSwyMjI2OSwyNjUyNCwzNTA2NSwzNjgwNywyMTcwNCwzMTY4NSwzMTY4OCwzMTY4OSwzMTY5MCwzMTY5MSwzMTY5MywzMTY5NCwzMTY5NSwzMTY5NiwzMTY5OCwzMTcwMCwzMTcwMSwzMTcwMiwzMTcwMywzMTcwNCwzMTcwNywzMTcwOCwzMTcxMCwzMTcx'@; put 'MSwzMTcxMiwzMTcxNCwzMTcxNSwzMTcxNiwzMTcxOSwzMTcyMCwzMTcyMSwzMTcyMywzMTcyNCwzMTcyNSwzMTcyNywzMTcyOCwzMTczMCwzMTczMSwzMTczMiwzMTczMywzMTczNCwzMTczNiwzMTczNywzMTczOCwzMTczOSwzMTc0MSwzMTc0MywzMTc0NCwzMTc0NSwzMTc0NiwzMTc0Nywz'@; put 'MTc0OCwzMTc0OSwzMTc1MCwzMTc1MiwzMTc1MywzMTc1NCwzMTc1NywzMTc1OCwzMTc2MCwzMTc2MSwzMTc2MiwzMTc2MywzMTc2NCwzMTc2NSwzMTc2NywzMTc2OCwzMTc2OSwzMTc3MCwzMTc3MSwzMTc3MiwzMTc3MywzMTc3NCwzMTc3NiwzMTc3NywzMTc3OCwzMTc3OSwzMTc4MCwzMTc4'@; put 'MSwzMTc4NCwzMTc4NSwzMTc4NywzMTc4OCwzMTc4OSwzMTc5MCwzMTc5MSwzMTc5MiwzMTc5MywzMTc5NCwzMTc5NSwzMTc5NiwzMTc5NywzMTc5OCwzMTc5OSwzMTgwMSwzMTgwMiwzMTgwMywzMTgwNCwzMTgwNSwzMTgwNiwzMTgxMCwzOTYwOCwyMzQwMSwyODAyMywyNzY4NiwyMDEzMywy'@; put 'MzQ3NSwzOTU1OSwzNzIxOSwyNWUzLDM3MDM5LDM4ODg5LDIxNTQ3LDI4MDg1LDIzNTA2LDIwOTg5LDIxODk4LDMyNTk3LDMyNzUyLDI1Nzg4LDI1NDIxLDI2MDk3LDI1MDIyLDI0NzE3LDI4OTM4LDI3NzM1LDI3NzIxLDIyODMxLDI2NDc3LDMzMzIyLDIyNzQxLDIyMTU4LDM1OTQ2LDI3NjI3'@; put 'LDM3MDg1LDIyOTA5LDMyNzkxLDIxNDk1LDI4MDA5LDIxNjIxLDIxOTE3LDMzNjU1LDMzNzQzLDI2NjgwLDMxMTY2LDIxNjQ0LDIwMzA5LDIxNTEyLDMwNDE4LDM1OTc3LDM4NDAyLDI3ODI3LDI4MDg4LDM2MjAzLDM1MDg4LDQwNTQ4LDM2MTU0LDIyMDc5LDQwNjU3LDMwMTY1LDI0NDU2LDI5'@; put 'NDA4LDI0NjgwLDIxNzU2LDIwMTM2LDI3MTc4LDM0OTEzLDI0NjU4LDM2NzIwLDIxNzAwLDI4ODg4LDM0NDI1LDQwNTExLDI3OTQ2LDIzNDM5LDI0MzQ0LDMyNDE4LDIxODk3LDIwMzk5LDI5NDkyLDIxNTY0LDIxNDAyLDIwNTA1LDIxNTE4LDIxNjI4LDIwMDQ2LDI0NTczLDI5Nzg2LDIyNzc0'@; put 'LDMzODk5LDMyOTkzLDM0Njc2LDI5MzkyLDMxOTQ2LDI4MjQ2LDMxODExLDMxODEyLDMxODEzLDMxODE0LDMxODE1LDMxODE2LDMxODE3LDMxODE4LDMxODE5LDMxODIwLDMxODIyLDMxODIzLDMxODI0LDMxODI1LDMxODI2LDMxODI3LDMxODI4LDMxODI5LDMxODMwLDMxODMxLDMxODMyLDMx'@; put 'ODMzLDMxODM0LDMxODM1LDMxODM2LDMxODM3LDMxODM4LDMxODM5LDMxODQwLDMxODQxLDMxODQyLDMxODQzLDMxODQ0LDMxODQ1LDMxODQ2LDMxODQ3LDMxODQ4LDMxODQ5LDMxODUwLDMxODUxLDMxODUyLDMxODUzLDMxODU0LDMxODU1LDMxODU2LDMxODU3LDMxODU4LDMxODYxLDMxODYy'@; put 'LDMxODYzLDMxODY0LDMxODY1LDMxODY2LDMxODcwLDMxODcxLDMxODcyLDMxODczLDMxODc0LDMxODc1LDMxODc2LDMxODc3LDMxODc4LDMxODc5LDMxODgwLDMxODgyLDMxODgzLDMxODg0LDMxODg1LDMxODg2LDMxODg3LDMxODg4LDMxODkxLDMxODkyLDMxODk0LDMxODk3LDMxODk4LDMx'@; put 'ODk5LDMxOTA0LDMxOTA1LDMxOTA3LDMxOTEwLDMxOTExLDMxOTEyLDMxOTEzLDMxOTE1LDMxOTE2LDMxOTE3LDMxOTE5LDMxOTIwLDMxOTI0LDMxOTI1LDMxOTI2LDMxOTI3LDMxOTI4LDMxOTMwLDMxOTMxLDI0MzU5LDM0MzgyLDIxODA0LDI1MjUyLDIwMTE0LDI3ODE4LDI1MTQzLDMzNDU3'@; put 'LDIxNzE5LDIxMzI2LDI5NTAyLDI4MzY5LDMwMDExLDIxMDEwLDIxMjcwLDM1ODA1LDI3MDg4LDI0NDU4LDI0NTc2LDI4MTQyLDIyMzUxLDI3NDI2LDI5NjE1LDI2NzA3LDM2ODI0LDMyNTMxLDI1NDQyLDI0NzM5LDIxNzk2LDMwMTg2LDM1OTM4LDI4OTQ5LDI4MDY3LDIzNDYyLDI0MTg3LDMz'@; put 'NjE4LDI0OTA4LDQwNjQ0LDMwOTcwLDM0NjQ3LDMxNzgzLDMwMzQzLDIwOTc2LDI0ODIyLDI5MDA0LDI2MTc5LDI0MTQwLDI0NjUzLDM1ODU0LDI4Nzg0LDI1MzgxLDM2NzQ1LDI0NTA5LDI0Njc0LDM0NTE2LDIyMjM4LDI3NTg1LDI0NzI0LDI0OTM1LDIxMzIxLDI0ODAwLDI2MjE0LDM2MTU5'@; put 'LDMxMjI5LDIwMjUwLDI4OTA1LDI3NzE5LDM1NzYzLDM1ODI2LDMyNDcyLDMzNjM2LDI2MTI3LDIzMTMwLDM5NzQ2LDI3OTg1LDI4MTUxLDM1OTA1LDI3OTYzLDIwMjQ5LDI4Nzc5LDMzNzE5LDI1MTEwLDI0Nzg1LDM4NjY5LDM2MTM1LDMxMDk2LDIwOTg3LDIyMzM0LDIyNTIyLDI2NDI2LDMw'@; put 'MDcyLDMxMjkzLDMxMjE1LDMxNjM3LDMxOTM1LDMxOTM2LDMxOTM4LDMxOTM5LDMxOTQwLDMxOTQyLDMxOTQ1LDMxOTQ3LDMxOTUwLDMxOTUxLDMxOTUyLDMxOTUzLDMxOTU0LDMxOTU1LDMxOTU2LDMxOTYwLDMxOTYyLDMxOTYzLDMxOTY1LDMxOTY2LDMxOTY5LDMxOTcwLDMxOTcxLDMxOTcy'@; put 'LDMxOTczLDMxOTc0LDMxOTc1LDMxOTc3LDMxOTc4LDMxOTc5LDMxOTgwLDMxOTgxLDMxOTgyLDMxOTg0LDMxOTg1LDMxOTg2LDMxOTg3LDMxOTg4LDMxOTg5LDMxOTkwLDMxOTkxLDMxOTkzLDMxOTk0LDMxOTk2LDMxOTk3LDMxOTk4LDMxOTk5LDMyZTMsMzIwMDEsMzIwMDIsMzIwMDMsMzIw'@; put 'MDQsMzIwMDUsMzIwMDYsMzIwMDcsMzIwMDgsMzIwMDksMzIwMTEsMzIwMTIsMzIwMTMsMzIwMTQsMzIwMTUsMzIwMTYsMzIwMTcsMzIwMTgsMzIwMTksMzIwMjAsMzIwMjEsMzIwMjIsMzIwMjMsMzIwMjQsMzIwMjUsMzIwMjYsMzIwMjcsMzIwMjgsMzIwMjksMzIwMzAsMzIwMzEsMzIwMzMs'@; put 'MzIwMzUsMzIwMzYsMzIwMzcsMzIwMzgsMzIwNDAsMzIwNDEsMzIwNDIsMzIwNDQsMzIwNDUsMzIwNDYsMzIwNDgsMzIwNDksMzIwNTAsMzIwNTEsMzIwNTIsMzIwNTMsMzIwNTQsMzI5MDgsMzkyNjksMzY4NTcsMjg2MDgsMzU3NDksNDA0ODEsMjMwMjAsMzI0ODksMzI1MjEsMjE1MTMsMjY0'@; put 'OTcsMjY4NDAsMzY3NTMsMzE4MjEsMzg1OTgsMjE0NTAsMjQ2MTMsMzAxNDIsMjc3NjIsMjEzNjMsMjMyNDEsMzI0MjMsMjUzODAsMjA5NjAsMzMwMzQsMjQwNDksMzQwMTUsMjUyMTYsMjA4NjQsMjMzOTUsMjAyMzgsMzEwODUsMjEwNTgsMjQ3NjAsMjc5ODIsMjM0OTIsMjM0OTAsMzU3NDUs'@; put 'MzU3NjAsMjYwODIsMjQ1MjQsMzg0NjksMjI5MzEsMzI0ODcsMzI0MjYsMjIwMjUsMjY1NTEsMjI4NDEsMjAzMzksMjM0NzgsMjExNTIsMzM2MjYsMzkwNTAsMzYxNTgsMzAwMDIsMzgwNzgsMjA1NTEsMzEyOTIsMjAyMTUsMjY1NTAsMzk1NTAsMjMyMzMsMjc1MTYsMzA0MTcsMjIzNjIsMjM1'@; put 'NzQsMzE1NDYsMzgzODgsMjkwMDYsMjA4NjAsMzI5MzcsMzMzOTIsMjI5MDQsMzI1MTYsMzM1NzUsMjY4MTYsMjY2MDQsMzA4OTcsMzA4MzksMjUzMTUsMjU0NDEsMzE2MTYsMjA0NjEsMjEwOTgsMjA5NDMsMzM2MTYsMjcwOTksMzc0OTIsMzYzNDEsMzYxNDUsMzUyNjUsMzgxOTAsMzE2NjEs'@; put 'MjAyMTQsMzIwNTUsMzIwNTYsMzIwNTcsMzIwNTgsMzIwNTksMzIwNjAsMzIwNjEsMzIwNjIsMzIwNjMsMzIwNjQsMzIwNjUsMzIwNjYsMzIwNjcsMzIwNjgsMzIwNjksMzIwNzAsMzIwNzEsMzIwNzIsMzIwNzMsMzIwNzQsMzIwNzUsMzIwNzYsMzIwNzcsMzIwNzgsMzIwNzksMzIwODAsMzIw'@; put 'ODEsMzIwODIsMzIwODMsMzIwODQsMzIwODUsMzIwODYsMzIwODcsMzIwODgsMzIwODksMzIwOTAsMzIwOTEsMzIwOTIsMzIwOTMsMzIwOTQsMzIwOTUsMzIwOTYsMzIwOTcsMzIwOTgsMzIwOTksMzIxMDAsMzIxMDEsMzIxMDIsMzIxMDMsMzIxMDQsMzIxMDUsMzIxMDYsMzIxMDcsMzIxMDgs'@; put 'MzIxMDksMzIxMTEsMzIxMTIsMzIxMTMsMzIxMTQsMzIxMTUsMzIxMTYsMzIxMTcsMzIxMTgsMzIxMjAsMzIxMjEsMzIxMjIsMzIxMjMsMzIxMjQsMzIxMjUsMzIxMjYsMzIxMjcsMzIxMjgsMzIxMjksMzIxMzAsMzIxMzEsMzIxMzIsMzIxMzMsMzIxMzQsMzIxMzUsMzIxMzYsMzIxMzcsMzIx'@; put 'MzgsMzIxMzksMzIxNDAsMzIxNDEsMzIxNDIsMzIxNDMsMzIxNDQsMzIxNDUsMzIxNDYsMzIxNDcsMzIxNDgsMzIxNDksMzIxNTAsMzIxNTEsMzIxNTIsMjA1ODEsMzMzMjgsMjEwNzMsMzkyNzksMjgxNzYsMjgyOTMsMjgwNzEsMjQzMTQsMjA3MjUsMjMwMDQsMjM1NTgsMjc5NzQsMjc3NDMs'@; put 'MzAwODYsMzM5MzEsMjY3MjgsMjI4NzAsMzU3NjIsMjEyODAsMzcyMzMsMzg0NzcsMzQxMjEsMjY4OTgsMzA5NzcsMjg5NjYsMzMwMTQsMjAxMzIsMzcwNjYsMjc5NzUsMzk1NTYsMjMwNDcsMjIyMDQsMjU2MDUsMzgxMjgsMzA2OTksMjAzODksMzMwNTAsMjk0MDksMzUyODIsMzkyOTAsMzI1'@; put 'NjQsMzI0NzgsMjExMTksMjU5NDUsMzcyMzcsMzY3MzUsMzY3MzksMjE0ODMsMzEzODIsMjU1ODEsMjU1MDksMzAzNDIsMzEyMjQsMzQ5MDMsMzg0NTQsMjUxMzAsMjExNjMsMzM0MTAsMjY3MDgsMjY0ODAsMjU0NjMsMzA1NzEsMzE0NjksMjc5MDUsMzI0NjcsMzUyOTksMjI5OTIsMjUxMDYs'@; put 'MzQyNDksMzM0NDUsMzAwMjgsMjA1MTEsMjAxNzEsMzAxMTcsMzU4MTksMjM2MjYsMjQwNjIsMzE1NjMsMjYwMjAsMzczMjksMjAxNzAsMjc5NDEsMzUxNjcsMzIwMzksMzgxODIsMjAxNjUsMzU4ODAsMzY4MjcsMzg3NzEsMjYxODcsMzExMDUsMzY4MTcsMjg5MDgsMjgwMjQsMzIxNTMsMzIx'@; put 'NTQsMzIxNTUsMzIxNTYsMzIxNTcsMzIxNTgsMzIxNTksMzIxNjAsMzIxNjEsMzIxNjIsMzIxNjMsMzIxNjQsMzIxNjUsMzIxNjcsMzIxNjgsMzIxNjksMzIxNzAsMzIxNzEsMzIxNzIsMzIxNzMsMzIxNzUsMzIxNzYsMzIxNzcsMzIxNzgsMzIxNzksMzIxODAsMzIxODEsMzIxODIsMzIxODMs'@; put 'MzIxODQsMzIxODUsMzIxODYsMzIxODcsMzIxODgsMzIxODksMzIxOTAsMzIxOTEsMzIxOTIsMzIxOTMsMzIxOTQsMzIxOTUsMzIxOTYsMzIxOTcsMzIxOTgsMzIxOTksMzIyMDAsMzIyMDEsMzIyMDIsMzIyMDMsMzIyMDQsMzIyMDUsMzIyMDYsMzIyMDcsMzIyMDgsMzIyMDksMzIyMTAsMzIy'@; put 'MTEsMzIyMTIsMzIyMTMsMzIyMTQsMzIyMTUsMzIyMTYsMzIyMTcsMzIyMTgsMzIyMTksMzIyMjAsMzIyMjEsMzIyMjIsMzIyMjMsMzIyMjQsMzIyMjUsMzIyMjYsMzIyMjcsMzIyMjgsMzIyMjksMzIyMzAsMzIyMzEsMzIyMzIsMzIyMzMsMzIyMzQsMzIyMzUsMzIyMzYsMzIyMzcsMzIyMzgs'@; put 'MzIyMzksMzIyNDAsMzIyNDEsMzIyNDIsMzIyNDMsMzIyNDQsMzIyNDUsMzIyNDYsMzIyNDcsMzIyNDgsMzIyNDksMzIyNTAsMjM2MTMsMjExNzAsMzM2MDYsMjA4MzQsMzM1NTAsMzA1NTUsMjYyMzAsNDAxMjAsMjAxNDAsMjQ3NzgsMzE5MzQsMzE5MjMsMzI0NjMsMjAxMTcsMzU2ODYsMjYy'@; put 'MjMsMzkwNDgsMzg3NDUsMjI2NTksMjU5NjQsMzgyMzYsMjQ0NTIsMzAxNTMsMzg3NDIsMzE0NTUsMzE0NTQsMjA5MjgsMjg4NDcsMzEzODQsMjU1NzgsMzEzNTAsMzI0MTYsMjk1OTAsMzg4OTMsMjAwMzcsMjg3OTIsMjAwNjEsMzcyMDIsMjE0MTcsMjU5MzcsMjYwODcsMzMyNzYsMzMyODUs'@; put 'MjE2NDYsMjM2MDEsMzAxMDYsMzg4MTYsMjUzMDQsMjk0MDEsMzAxNDEsMjM2MjEsMzk1NDUsMzM3MzgsMjM2MTYsMjE2MzIsMzA2OTcsMjAwMzAsMjc4MjIsMzI4NTgsMjUyOTgsMjU0NTQsMjQwNDAsMjA4NTUsMzYzMTcsMzYzODIsMzgxOTEsMjA0NjUsMjE0NzcsMjQ4MDcsMjg4NDQsMjEw'@; put 'OTUsMjU0MjQsNDA1MTUsMjMwNzEsMjA1MTgsMzA1MTksMjEzNjcsMzI0ODIsMjU3MzMsMjU4OTksMjUyMjUsMjU0OTYsMjA1MDAsMjkyMzcsMzUyNzMsMjA5MTUsMzU3NzYsMzI0NzcsMjIzNDMsMzM3NDAsMzgwNTUsMjA4OTEsMjE1MzEsMjM4MDMsMzIyNTEsMzIyNTIsMzIyNTMsMzIyNTQs'@; put 'MzIyNTUsMzIyNTYsMzIyNTcsMzIyNTgsMzIyNTksMzIyNjAsMzIyNjEsMzIyNjIsMzIyNjMsMzIyNjQsMzIyNjUsMzIyNjYsMzIyNjcsMzIyNjgsMzIyNjksMzIyNzAsMzIyNzEsMzIyNzIsMzIyNzMsMzIyNzQsMzIyNzUsMzIyNzYsMzIyNzcsMzIyNzgsMzIyNzksMzIyODAsMzIyODEsMzIy'@; put 'ODIsMzIyODMsMzIyODQsMzIyODUsMzIyODYsMzIyODcsMzIyODgsMzIyODksMzIyOTAsMzIyOTEsMzIyOTIsMzIyOTMsMzIyOTQsMzIyOTUsMzIyOTYsMzIyOTcsMzIyOTgsMzIyOTksMzIzMDAsMzIzMDEsMzIzMDIsMzIzMDMsMzIzMDQsMzIzMDUsMzIzMDYsMzIzMDcsMzIzMDgsMzIzMDks'@; put 'MzIzMTAsMzIzMTEsMzIzMTIsMzIzMTMsMzIzMTQsMzIzMTYsMzIzMTcsMzIzMTgsMzIzMTksMzIzMjAsMzIzMjIsMzIzMjMsMzIzMjQsMzIzMjUsMzIzMjYsMzIzMjgsMzIzMjksMzIzMzAsMzIzMzEsMzIzMzIsMzIzMzMsMzIzMzQsMzIzMzUsMzIzMzYsMzIzMzcsMzIzMzgsMzIzMzksMzIz'@; put 'NDAsMzIzNDEsMzIzNDIsMzIzNDMsMzIzNDQsMzIzNDUsMzIzNDYsMzIzNDcsMzIzNDgsMzIzNDksMjA0MjYsMzE0NTksMjc5OTQsMzcwODksMzk1NjcsMjE4ODgsMjE2NTQsMjEzNDUsMjE2NzksMjQzMjAsMjU1NzcsMjY5OTksMjA5NzUsMjQ5MzYsMjEwMDIsMjI1NzAsMjEyMDgsMjIzNTAs'@; put 'MzA3MzMsMzA0NzUsMjQyNDcsMjQ5NTEsMzE5NjgsMjUxNzksMjUyMzksMjAxMzAsMjg4MjEsMzI3NzEsMjUzMzUsMjg5MDAsMzg3NTIsMjIzOTEsMzM0OTksMjY2MDcsMjY4NjksMzA5MzMsMzkwNjMsMzExODUsMjI3NzEsMjE2ODMsMjE0ODcsMjgyMTIsMjA4MTEsMjEwNTEsMjM0NTgsMzU4'@; put 'MzgsMzI5NDMsMjE4MjcsMjI0MzgsMjQ2OTEsMjIzNTMsMjE1NDksMzEzNTQsMjQ2NTYsMjMzODAsMjU1MTEsMjUyNDgsMjE0NzUsMjUxODcsMjM0OTUsMjY1NDMsMjE3NDEsMzEzOTEsMzM1MTAsMzcyMzksMjQyMTEsMzUwNDQsMjI4NDAsMjI0NDYsMjUzNTgsMzYzMjgsMzMwMDcsMjIzNTks'@; put 'MzE2MDcsMjAzOTMsMjQ1NTUsMjM0ODUsMjc0NTQsMjEyODEsMzE1NjgsMjkzNzgsMjY2OTQsMzA3MTksMzA1MTgsMjYxMDMsMjA5MTcsMjAxMTEsMzA0MjAsMjM3NDMsMzEzOTcsMzM5MDksMjI4NjIsMzk3NDUsMjA2MDgsMzIzNTAsMzIzNTEsMzIzNTIsMzIzNTMsMzIzNTQsMzIzNTUsMzIz'@; put 'NTYsMzIzNTcsMzIzNTgsMzIzNTksMzIzNjAsMzIzNjEsMzIzNjIsMzIzNjMsMzIzNjQsMzIzNjUsMzIzNjYsMzIzNjcsMzIzNjgsMzIzNjksMzIzNzAsMzIzNzEsMzIzNzIsMzIzNzMsMzIzNzQsMzIzNzUsMzIzNzYsMzIzNzcsMzIzNzgsMzIzNzksMzIzODAsMzIzODEsMzIzODIsMzIzODMs'@; put 'MzIzODQsMzIzODUsMzIzODcsMzIzODgsMzIzODksMzIzOTAsMzIzOTEsMzIzOTIsMzIzOTMsMzIzOTQsMzIzOTUsMzIzOTYsMzIzOTcsMzIzOTgsMzIzOTksMzI0MDAsMzI0MDEsMzI0MDIsMzI0MDMsMzI0MDQsMzI0MDUsMzI0MDYsMzI0MDcsMzI0MDgsMzI0MDksMzI0MTAsMzI0MTIsMzI0'@; put 'MTMsMzI0MTQsMzI0MzAsMzI0MzYsMzI0NDMsMzI0NDQsMzI0NzAsMzI0ODQsMzI0OTIsMzI1MDUsMzI1MjIsMzI1MjgsMzI1NDIsMzI1NjcsMzI1NjksMzI1NzEsMzI1NzIsMzI1NzMsMzI1NzQsMzI1NzUsMzI1NzYsMzI1NzcsMzI1NzksMzI1ODIsMzI1ODMsMzI1ODQsMzI1ODUsMzI1ODYs'@; put 'MzI1ODcsMzI1ODgsMzI1ODksMzI1OTAsMzI1OTEsMzI1OTQsMzI1OTUsMzkzMDQsMjQ4NzEsMjgyOTEsMjIzNzIsMjYxMTgsMjU0MTQsMjIyNTYsMjUzMjQsMjUxOTMsMjQyNzUsMzg0MjAsMjI0MDMsMjUyODksMjE4OTUsMzQ1OTMsMzMwOTgsMzY3NzEsMjE4NjIsMzM3MTMsMjY0NjksMzYx'@; put 'ODIsMzQwMTMsMjMxNDYsMjY2MzksMjUzMTgsMzE3MjYsMzg0MTcsMjA4NDgsMjg1NzIsMzU4ODgsMjU1OTcsMzUyNzIsMjUwNDIsMzI1MTgsMjg4NjYsMjgzODksMjk3MDEsMjcwMjgsMjk0MzYsMjQyNjYsMzcwNzAsMjYzOTEsMjgwMTAsMjU0MzgsMjExNzEsMjkyODIsMzI3NjksMjAzMzIs'@; put 'MjMwMTMsMzcyMjYsMjg4ODksMjgwNjEsMjEyMDIsMjAwNDgsMzg2NDcsMzgyNTMsMzQxNzQsMzA5MjIsMzIwNDcsMjA3NjksMjI0MTgsMjU3OTQsMzI5MDcsMzE4NjcsMjc4ODIsMjY4NjUsMjY5NzQsMjA5MTksMjE0MDAsMjY3OTIsMjkzMTMsNDA2NTQsMzE3MjksMjk0MzIsMzExNjMsMjg0'@; put 'MzUsMjk3MDIsMjY0NDYsMzczMjQsNDAxMDAsMzEwMzYsMzM2NzMsMzM2MjAsMjE1MTksMjY2NDcsMjAwMjksMjEzODUsMjExNjksMzA3ODIsMjEzODIsMjEwMzMsMjA2MTYsMjAzNjMsMjA0MzIsMzI1OTgsMzI2MDEsMzI2MDMsMzI2MDQsMzI2MDUsMzI2MDYsMzI2MDgsMzI2MTEsMzI2MTIs'@; put 'MzI2MTMsMzI2MTQsMzI2MTUsMzI2MTksMzI2MjAsMzI2MjEsMzI2MjMsMzI2MjQsMzI2MjcsMzI2MjksMzI2MzAsMzI2MzEsMzI2MzIsMzI2MzQsMzI2MzUsMzI2MzYsMzI2MzcsMzI2MzksMzI2NDAsMzI2NDIsMzI2NDMsMzI2NDQsMzI2NDUsMzI2NDYsMzI2NDcsMzI2NDgsMzI2NDksMzI2'@; put 'NTEsMzI2NTMsMzI2NTUsMzI2NTYsMzI2NTcsMzI2NTgsMzI2NTksMzI2NjEsMzI2NjIsMzI2NjMsMzI2NjQsMzI2NjUsMzI2NjcsMzI2NjgsMzI2NzIsMzI2NzQsMzI2NzUsMzI2NzcsMzI2NzgsMzI2ODAsMzI2ODEsMzI2ODIsMzI2ODMsMzI2ODQsMzI2ODUsMzI2ODYsMzI2ODksMzI2OTEs'@; put 'MzI2OTIsMzI2OTMsMzI2OTQsMzI2OTUsMzI2OTgsMzI2OTksMzI3MDIsMzI3MDQsMzI3MDYsMzI3MDcsMzI3MDgsMzI3MTAsMzI3MTEsMzI3MTIsMzI3MTMsMzI3MTUsMzI3MTcsMzI3MTksMzI3MjAsMzI3MjEsMzI3MjIsMzI3MjMsMzI3MjYsMzI3MjcsMzI3MjksMzI3MzAsMzI3MzEsMzI3'@; put 'MzIsMzI3MzMsMzI3MzQsMzI3MzgsMzI3MzksMzAxNzgsMzE0MzUsMzE4OTAsMjc4MTMsMzg1ODIsMjExNDcsMjk4MjcsMjE3MzcsMjA0NTcsMzI4NTIsMzM3MTQsMzY4MzAsMzgyNTYsMjQyNjUsMjQ2MDQsMjgwNjMsMjQwODgsMjU5NDcsMzMwODAsMzgxNDIsMjQ2NTEsMjg4NjAsMzI0NTEs'@; put 'MzE5MTgsMjA5MzcsMjY3NTMsMzE5MjEsMzMzOTEsMjAwMDQsMzY3NDIsMzczMjcsMjYyMzgsMjAxNDIsMzU4NDUsMjU3NjksMzI4NDIsMjA2OTgsMzAxMDMsMjkxMzQsMjM1MjUsMzY3OTcsMjg1MTgsMjAxMDIsMjU3MzAsMzgyNDMsMjQyNzgsMjYwMDksMjEwMTUsMzUwMTAsMjg4NzIsMjEx'@; put 'NTUsMjk0NTQsMjk3NDcsMjY1MTksMzA5NjcsMzg2NzgsMjAwMjAsMzcwNTEsNDAxNTgsMjgxMDcsMjA5NTUsMzYxNjEsMjE1MzMsMjUyOTQsMjk2MTgsMzM3NzcsMzg2NDYsNDA4MzYsMzgwODMsMjAyNzgsMzI2NjYsMjA5NDAsMjg3ODksMzg1MTcsMjM3MjUsMzkwNDYsMjE0NzgsMjAxOTYs'@; put 'MjgzMTYsMjk3MDUsMjcwNjAsMzA4MjcsMzkzMTEsMzAwNDEsMjEwMTYsMzAyNDQsMjc5NjksMjY2MTEsMjA4NDUsNDA4NTcsMzI4NDMsMjE2NTcsMzE1NDgsMzE0MjMsMzI3NDAsMzI3NDMsMzI3NDQsMzI3NDYsMzI3NDcsMzI3NDgsMzI3NDksMzI3NTEsMzI3NTQsMzI3NTYsMzI3NTcsMzI3'@; put 'NTgsMzI3NTksMzI3NjAsMzI3NjEsMzI3NjIsMzI3NjUsMzI3NjYsMzI3NjcsMzI3NzAsMzI3NzUsMzI3NzYsMzI3NzcsMzI3NzgsMzI3ODIsMzI3ODMsMzI3ODUsMzI3ODcsMzI3OTQsMzI3OTUsMzI3OTcsMzI3OTgsMzI3OTksMzI4MDEsMzI4MDMsMzI4MDQsMzI4MTEsMzI4MTIsMzI4MTMs'@; put 'MzI4MTQsMzI4MTUsMzI4MTYsMzI4MTgsMzI4MjAsMzI4MjUsMzI4MjYsMzI4MjgsMzI4MzAsMzI4MzIsMzI4MzMsMzI4MzYsMzI4MzcsMzI4MzksMzI4NDAsMzI4NDEsMzI4NDYsMzI4NDcsMzI4NDgsMzI4NDksMzI4NTEsMzI4NTMsMzI4NTQsMzI4NTUsMzI4NTcsMzI4NTksMzI4NjAsMzI4'@; put 'NjEsMzI4NjIsMzI4NjMsMzI4NjQsMzI4NjUsMzI4NjYsMzI4NjcsMzI4NjgsMzI4NjksMzI4NzAsMzI4NzEsMzI4NzIsMzI4NzUsMzI4NzYsMzI4NzcsMzI4NzgsMzI4NzksMzI4ODAsMzI4ODIsMzI4ODMsMzI4ODQsMzI4ODUsMzI4ODYsMzI4ODcsMzI4ODgsMzI4ODksMzI4OTAsMzI4OTEs'@; put 'MzI4OTIsMzI4OTMsMzg1MzQsMjI0MDQsMjUzMTQsMzg0NzEsMjcwMDQsMjMwNDQsMjU2MDIsMzE2OTksMjg0MzEsMzg0NzUsMzM0NDYsMjEzNDYsMzkwNDUsMjQyMDgsMjg4MDksMjU1MjMsMjEzNDgsMzQzODMsNDAwNjUsNDA1OTUsMzA4NjAsMzg3MDYsMzYzMzUsMzYxNjIsNDA1NzUsMjg1'@; put 'MTAsMzExMDgsMjQ0MDUsMzg0NzAsMjUxMzQsMzk1NDAsMjE1MjUsMzgxMDksMjAzODcsMjYwNTMsMjM2NTMsMjM2NDksMzI1MzMsMzQzODUsMjc2OTUsMjQ0NTksMjk1NzUsMjgzODgsMzI1MTEsMjM3ODIsMjUzNzEsMjM0MDIsMjgzOTAsMjEzNjUsMjAwODEsMjU1MDQsMzAwNTMsMjUyNDks'@; put 'MzY3MTgsMjAyNjIsMjAxNzcsMjc4MTQsMzI0MzgsMzU3NzAsMzM4MjEsMzQ3NDYsMzI1OTksMzY5MjMsMzgxNzksMzE2NTcsMzk1ODUsMzUwNjQsMzM4NTMsMjc5MzEsMzk1NTgsMzI0NzYsMjI5MjAsNDA2MzUsMjk1OTUsMzA3MjEsMzQ0MzQsMzk1MzIsMzk1NTQsMjIwNDMsMjE1MjcsMjI0'@; put 'NzUsMjAwODAsNDA2MTQsMjEzMzQsMzY4MDgsMzMwMzMsMzA2MTAsMzkzMTQsMzQ1NDIsMjgzODUsMzQwNjcsMjYzNjQsMjQ5MzAsMjg0NTksMzI4OTQsMzI4OTcsMzI4OTgsMzI5MDEsMzI5MDQsMzI5MDYsMzI5MDksMzI5MTAsMzI5MTEsMzI5MTIsMzI5MTMsMzI5MTQsMzI5MTYsMzI5MTcs'@; put 'MzI5MTksMzI5MjEsMzI5MjYsMzI5MzEsMzI5MzQsMzI5MzUsMzI5MzYsMzI5NDAsMzI5NDQsMzI5NDcsMzI5NDksMzI5NTAsMzI5NTIsMzI5NTMsMzI5NTUsMzI5NjUsMzI5NjcsMzI5NjgsMzI5NjksMzI5NzAsMzI5NzEsMzI5NzUsMzI5NzYsMzI5NzcsMzI5NzgsMzI5NzksMzI5ODAsMzI5'@; put 'ODEsMzI5ODQsMzI5OTEsMzI5OTIsMzI5OTQsMzI5OTUsMzI5OTgsMzMwMDYsMzMwMTMsMzMwMTUsMzMwMTcsMzMwMTksMzMwMjIsMzMwMjMsMzMwMjQsMzMwMjUsMzMwMjcsMzMwMjgsMzMwMjksMzMwMzEsMzMwMzIsMzMwMzUsMzMwMzYsMzMwNDUsMzMwNDcsMzMwNDksMzMwNTEsMzMwNTIs'@; put 'MzMwNTMsMzMwNTUsMzMwNTYsMzMwNTcsMzMwNTgsMzMwNTksMzMwNjAsMzMwNjEsMzMwNjIsMzMwNjMsMzMwNjQsMzMwNjUsMzMwNjYsMzMwNjcsMzMwNjksMzMwNzAsMzMwNzIsMzMwNzUsMzMwNzYsMzMwNzcsMzMwNzksMzMwODEsMzMwODIsMzMwODMsMzMwODQsMzMwODUsMzMwODcsMzU4'@; put 'ODEsMzM0MjYsMzM1NzksMzA0NTAsMjc2NjcsMjQ1MzcsMzM3MjUsMjk0ODMsMzM1NDEsMzgxNzAsMjc2MTEsMzA2ODMsMzgwODYsMjEzNTksMzM1MzgsMjA4ODIsMjQxMjUsMzU5ODAsMzYxNTIsMjAwNDAsMjk2MTEsMjY1MjIsMjY3NTcsMzcyMzgsMzg2NjUsMjkwMjgsMjc4MDksMzA0NzMs'@; put 'MjMxODYsMzgyMDksMjc1OTksMzI2NTQsMjYxNTEsMjM1MDQsMjI5NjksMjMxOTQsMzgzNzYsMzgzOTEsMjAyMDQsMzM4MDQsMzM5NDUsMjczMDgsMzA0MzEsMzgxOTIsMjk0NjcsMjY3OTAsMjMzOTEsMzA1MTEsMzcyNzQsMzg3NTMsMzE5NjQsMzY4NTUsMzU4NjgsMjQzNTcsMzE4NTksMzEx'@; put 'OTIsMzUyNjksMjc4NTIsMzQ1ODgsMjM0OTQsMjQxMzAsMjY4MjUsMzA0OTYsMzI1MDEsMjA4ODUsMjA4MTMsMjExOTMsMjMwODEsMzI1MTcsMzg3NTQsMzM0OTUsMjU1NTEsMzA1OTYsMzQyNTYsMzExODYsMjgyMTgsMjQyMTcsMjI5MzcsMzQwNjUsMjg3ODEsMjc2NjUsMjUyNzksMzAzOTks'@; put 'MjU5MzUsMjQ3NTEsMzgzOTcsMjYxMjYsMzQ3MTksNDA0ODMsMzgxMjUsMjE1MTcsMjE2MjksMzU4ODQsMjU3MjAsMzMwODgsMzMwODksMzMwOTAsMzMwOTEsMzMwOTIsMzMwOTMsMzMwOTUsMzMwOTcsMzMxMDEsMzMxMDIsMzMxMDMsMzMxMDYsMzMxMTAsMzMxMTEsMzMxMTIsMzMxMTUsMzMx'@; put 'MTYsMzMxMTcsMzMxMTgsMzMxMTksMzMxMjEsMzMxMjIsMzMxMjMsMzMxMjQsMzMxMjYsMzMxMjgsMzMxMzAsMzMxMzEsMzMxMzIsMzMxMzUsMzMxMzgsMzMxMzksMzMxNDEsMzMxNDIsMzMxNDMsMzMxNDQsMzMxNTMsMzMxNTUsMzMxNTYsMzMxNTcsMzMxNTgsMzMxNTksMzMxNjEsMzMxNjMs'@; put 'MzMxNjQsMzMxNjUsMzMxNjYsMzMxNjgsMzMxNzAsMzMxNzEsMzMxNzIsMzMxNzMsMzMxNzQsMzMxNzUsMzMxNzcsMzMxNzgsMzMxODIsMzMxODMsMzMxODQsMzMxODUsMzMxODYsMzMxODgsMzMxODksMzMxOTEsMzMxOTMsMzMxOTUsMzMxOTYsMzMxOTcsMzMxOTgsMzMxOTksMzMyMDAsMzMy'@; put 'MDEsMzMyMDIsMzMyMDQsMzMyMDUsMzMyMDYsMzMyMDcsMzMyMDgsMzMyMDksMzMyMTIsMzMyMTMsMzMyMTQsMzMyMTUsMzMyMjAsMzMyMjEsMzMyMjMsMzMyMjQsMzMyMjUsMzMyMjcsMzMyMjksMzMyMzAsMzMyMzEsMzMyMzIsMzMyMzMsMzMyMzQsMzMyMzUsMjU3MjEsMzQzMjEsMjcxNjks'@; put 'MzMxODAsMzA5NTIsMjU3MDUsMzk3NjQsMjUyNzMsMjY0MTEsMzM3MDcsMjI2OTYsNDA2NjQsMjc4MTksMjg0NDgsMjM1MTgsMzg0NzYsMzU4NTEsMjkyNzksMjY1NzYsMjUyODcsMjkyODEsMjAxMzcsMjI5ODIsMjc1OTcsMjI2NzUsMjYyODYsMjQxNDksMjEyMTUsMjQ5MTcsMjY0MDgsMzA0'@; put 'NDYsMzA1NjYsMjkyODcsMzEzMDIsMjUzNDMsMjE3MzgsMjE1ODQsMzgwNDgsMzcwMjcsMjMwNjgsMzI0MzUsMjc2NzAsMjAwMzUsMjI5MDIsMzI3ODQsMjI4NTYsMjEzMzUsMzAwMDcsMzg1OTAsMjIyMTgsMjUzNzYsMzMwNDEsMjQ3MDAsMzgzOTMsMjgxMTgsMjE2MDIsMzkyOTcsMjA4Njks'@; put 'MjMyNzMsMzMwMjEsMjI5NTgsMzg2NzUsMjA1MjIsMjc4NzcsMjM2MTIsMjUzMTEsMjAzMjAsMjEzMTEsMzMxNDcsMzY4NzAsMjgzNDYsMzQwOTEsMjUyODgsMjQxODAsMzA5MTAsMjU3ODEsMjU0NjcsMjQ1NjUsMjMwNjQsMzcyNDcsNDA0NzksMjM2MTUsMjU0MjMsMzI4MzQsMjM0MjEsMjE4'@; put 'NzAsMzgyMTgsMzgyMjEsMjgwMzcsMjQ3NDQsMjY1OTIsMjk0MDYsMjA5NTcsMjM0MjUsMzMyMzYsMzMyMzcsMzMyMzgsMzMyMzksMzMyNDAsMzMyNDEsMzMyNDIsMzMyNDMsMzMyNDQsMzMyNDUsMzMyNDYsMzMyNDcsMzMyNDgsMzMyNDksMzMyNTAsMzMyNTIsMzMyNTMsMzMyNTQsMzMyNTYs'@; put 'MzMyNTcsMzMyNTksMzMyNjIsMzMyNjMsMzMyNjQsMzMyNjUsMzMyNjYsMzMyNjksMzMyNzAsMzMyNzEsMzMyNzIsMzMyNzMsMzMyNzQsMzMyNzcsMzMyNzksMzMyODMsMzMyODcsMzMyODgsMzMyODksMzMyOTAsMzMyOTEsMzMyOTQsMzMyOTUsMzMyOTcsMzMyOTksMzMzMDEsMzMzMDIsMzMz'@; put 'MDMsMzMzMDQsMzMzMDUsMzMzMDYsMzMzMDksMzMzMTIsMzMzMTYsMzMzMTcsMzMzMTgsMzMzMTksMzMzMjEsMzMzMjYsMzMzMzAsMzMzMzgsMzMzNDAsMzMzNDEsMzMzNDMsMzMzNDQsMzMzNDUsMzMzNDYsMzMzNDcsMzMzNDksMzMzNTAsMzMzNTIsMzMzNTQsMzMzNTYsMzMzNTcsMzMzNTgs'@; put 'MzMzNjAsMzMzNjEsMzMzNjIsMzMzNjMsMzMzNjQsMzMzNjUsMzMzNjYsMzMzNjcsMzMzNjksMzMzNzEsMzMzNzIsMzMzNzMsMzMzNzQsMzMzNzYsMzMzNzcsMzMzNzgsMzMzNzksMzMzODAsMzMzODEsMzMzODIsMzMzODMsMzMzODUsMjUzMTksMjc4NzAsMjkyNzUsMjUxOTcsMzgwNjIsMzI0'@; put 'NDUsMzMwNDMsMjc5ODcsMjA4OTIsMjQzMjQsMjI5MDAsMjExNjIsMjQ1OTQsMjI4OTksMjYyNjIsMzQzODQsMzAxMTEsMjUzODYsMjUwNjIsMzE5ODMsMzU4MzQsMjE3MzQsMjc0MzEsNDA0ODUsMjc1NzIsMzQyNjEsMjE1ODksMjA1OTgsMjc4MTIsMjE4NjYsMzYyNzYsMjkyMjgsMjQwODUs'@; put 'MjQ1OTcsMjk3NTAsMjUyOTMsMjU0OTAsMjkyNjAsMjQ0NzIsMjgyMjcsMjc5NjYsMjU4NTYsMjg1MDQsMzA0MjQsMzA5MjgsMzA0NjAsMzAwMzYsMjEwMjgsMjE0NjcsMjAwNTEsMjQyMjIsMjYwNDksMzI4MTAsMzI5ODIsMjUyNDMsMjE2MzgsMjEwMzIsMjg4NDYsMzQ5NTcsMzYzMDUsMjc4'@; put 'NzMsMjE2MjQsMzI5ODYsMjI1MjEsMzUwNjAsMzYxODAsMzg1MDYsMzcxOTcsMjAzMjksMjc4MDMsMjE5NDMsMzA0MDYsMzA3NjgsMjUyNTYsMjg5MjEsMjg1NTgsMjQ0MjksMzQwMjgsMjY4NDIsMzA4NDQsMzE3MzUsMzMxOTIsMjYzNzksNDA1MjcsMjU0NDcsMzA4OTYsMjIzODMsMzA3Mzgs'@; put 'Mzg3MTMsMjUyMDksMjUyNTksMjExMjgsMjk3NDksMjc2MDcsMzMzODYsMzMzODcsMzMzODgsMzMzODksMzMzOTMsMzMzOTcsMzMzOTgsMzMzOTksMzM0MDAsMzM0MDMsMzM0MDQsMzM0MDgsMzM0MDksMzM0MTEsMzM0MTMsMzM0MTQsMzM0MTUsMzM0MTcsMzM0MjAsMzM0MjQsMzM0MjcsMzM0'@; put 'MjgsMzM0MjksMzM0MzAsMzM0MzQsMzM0MzUsMzM0MzgsMzM0NDAsMzM0NDIsMzM0NDMsMzM0NDcsMzM0NTgsMzM0NjEsMzM0NjIsMzM0NjYsMzM0NjcsMzM0NjgsMzM0NzEsMzM0NzIsMzM0NzQsMzM0NzUsMzM0NzcsMzM0NzgsMzM0ODEsMzM0ODgsMzM0OTQsMzM0OTcsMzM0OTgsMzM1MDEs'@; put 'MzM1MDYsMzM1MTEsMzM1MTIsMzM1MTMsMzM1MTQsMzM1MTYsMzM1MTcsMzM1MTgsMzM1MjAsMzM1MjIsMzM1MjMsMzM1MjUsMzM1MjYsMzM1MjgsMzM1MzAsMzM1MzIsMzM1MzMsMzM1MzQsMzM1MzUsMzM1MzYsMzM1NDYsMzM1NDcsMzM1NDksMzM1NTIsMzM1NTQsMzM1NTUsMzM1NTgsMzM1'@; put 'NjAsMzM1NjEsMzM1NjUsMzM1NjYsMzM1NjcsMzM1NjgsMzM1NjksMzM1NzAsMzM1NzEsMzM1NzIsMzM1NzMsMzM1NzQsMzM1NzcsMzM1NzgsMzM1ODIsMzM1ODQsMzM1ODYsMzM1OTEsMzM1OTUsMzM1OTcsMjE4NjAsMzMwODYsMzAxMzAsMzAzODIsMjEzMDUsMzAxNzQsMjA3MzEsMjM2MTcs'@; put 'MzU2OTIsMzE2ODcsMjA1NTksMjkyNTUsMzk1NzUsMzkxMjgsMjg0MTgsMjk5MjIsMzEwODAsMjU3MzUsMzA2MjksMjUzNDAsMzkwNTcsMzYxMzksMjE2OTcsMzI4NTYsMjAwNTAsMjIzNzgsMzM1MjksMzM4MDUsMjQxNzksMjA5NzMsMjk5NDIsMzU3ODAsMjM2MzEsMjIzNjksMjc5MDAsMzkw'@; put 'NDcsMjMxMTAsMzA3NzIsMzk3NDgsMzY4NDMsMzE4OTMsMjEwNzgsMjUxNjksMzgxMzgsMjAxNjYsMzM2NzAsMzM4ODksMzM3NjksMzM5NzAsMjI0ODQsMjY0MjAsMjIyNzUsMjYyMjIsMjgwMDYsMzU4ODksMjYzMzMsMjg2ODksMjYzOTksMjc0NTAsMjY2NDYsMjUxMTQsMjI5NzEsMTk5NzEs'@; put 'MjA5MzIsMjg0MjIsMjY1NzgsMjc3OTEsMjA4NTQsMjY4MjcsMjI4NTUsMjc0OTUsMzAwNTQsMjM4MjIsMzMwNDAsNDA3ODQsMjYwNzEsMzEwNDgsMzEwNDEsMzk1NjksMzYyMTUsMjM2ODIsMjAwNjIsMjAyMjUsMjE1NTEsMjI4NjUsMzA3MzIsMjIxMjAsMjc2NjgsMzY4MDQsMjQzMjMsMjc3'@; put 'NzMsMjc4NzUsMzU3NTUsMjU0ODgsMzM1OTgsMzM1OTksMzM2MDEsMzM2MDIsMzM2MDQsMzM2MDUsMzM2MDgsMzM2MTAsMzM2MTEsMzM2MTIsMzM2MTMsMzM2MTQsMzM2MTksMzM2MjEsMzM2MjIsMzM2MjMsMzM2MjQsMzM2MjUsMzM2MjksMzM2MzQsMzM2NDgsMzM2NDksMzM2NTAsMzM2NTEs'@; put 'MzM2NTIsMzM2NTMsMzM2NTQsMzM2NTcsMzM2NTgsMzM2NjIsMzM2NjMsMzM2NjQsMzM2NjUsMzM2NjYsMzM2NjcsMzM2NjgsMzM2NzEsMzM2NzIsMzM2NzQsMzM2NzUsMzM2NzYsMzM2NzcsMzM2NzksMzM2ODAsMzM2ODEsMzM2ODQsMzM2ODUsMzM2ODYsMzM2ODcsMzM2ODksMzM2OTAsMzM2'@; put 'OTMsMzM2OTUsMzM2OTcsMzM2OTgsMzM2OTksMzM3MDAsMzM3MDEsMzM3MDIsMzM3MDMsMzM3MDgsMzM3MDksMzM3MTAsMzM3MTEsMzM3MTcsMzM3MjMsMzM3MjYsMzM3MjcsMzM3MzAsMzM3MzEsMzM3MzIsMzM3MzQsMzM3MzYsMzM3MzcsMzM3MzksMzM3NDEsMzM3NDIsMzM3NDQsMzM3NDUs'@; put 'MzM3NDYsMzM3NDcsMzM3NDksMzM3NTEsMzM3NTMsMzM3NTQsMzM3NTUsMzM3NTgsMzM3NjIsMzM3NjMsMzM3NjQsMzM3NjYsMzM3NjcsMzM3NjgsMzM3NzEsMzM3NzIsMzM3NzMsMjQ2ODgsMjc5NjUsMjkzMDEsMjUxOTAsMzgwMzAsMzgwODUsMjEzMTUsMzY4MDEsMzE2MTQsMjAxOTEsMzU4'@; put 'NzgsMjAwOTQsNDA2NjAsMzgwNjUsMzgwNjcsMjEwNjksMjg1MDgsMzY5NjMsMjc5NzMsMzU4OTIsMjI1NDUsMjM4ODQsMjc0MjQsMjc0NjUsMjY1MzgsMjE1OTUsMzMxMDgsMzI2NTIsMjI2ODEsMzQxMDMsMjQzNzgsMjUyNTAsMjcyMDcsMzgyMDEsMjU5NzAsMjQ3MDgsMjY3MjUsMzA2MzEs'@; put 'MjAwNTIsMjAzOTIsMjQwMzksMzg4MDgsMjU3NzIsMzI3MjgsMjM3ODksMjA0MzEsMzEzNzMsMjA5OTksMzM1NDAsMTk5ODgsMjQ2MjMsMzEzNjMsMzgwNTQsMjA0MDUsMjAxNDYsMzEyMDYsMjk3NDgsMjEyMjAsMzM0NjUsMjU4MTAsMzExNjUsMjM1MTcsMjc3NzcsMzg3MzgsMzY3MzEsMjc2'@; put 'ODIsMjA1NDIsMjEzNzUsMjgxNjUsMjU4MDYsMjYyMjgsMjc2OTYsMjQ3NzMsMzkwMzEsMzU4MzEsMjQxOTgsMjk3NTYsMzEzNTEsMzExNzksMTk5OTIsMzcwNDEsMjk2OTksMjc3MTQsMjIyMzQsMzcxOTUsMjc4NDUsMzYyMzUsMjEzMDYsMzQ1MDIsMjYzNTQsMzY1MjcsMjM2MjQsMzk1Mzcs'@; put 'MjgxOTIsMzM3NzQsMzM3NzUsMzM3NzksMzM3ODAsMzM3ODEsMzM3ODIsMzM3ODMsMzM3ODYsMzM3ODcsMzM3ODgsMzM3OTAsMzM3OTEsMzM3OTIsMzM3OTQsMzM3OTcsMzM3OTksMzM4MDAsMzM4MDEsMzM4MDIsMzM4MDgsMzM4MTAsMzM4MTEsMzM4MTIsMzM4MTMsMzM4MTQsMzM4MTUsMzM4'@; put 'MTcsMzM4MTgsMzM4MTksMzM4MjIsMzM4MjMsMzM4MjQsMzM4MjUsMzM4MjYsMzM4MjcsMzM4MzMsMzM4MzQsMzM4MzUsMzM4MzYsMzM4MzcsMzM4MzgsMzM4MzksMzM4NDAsMzM4NDIsMzM4NDMsMzM4NDQsMzM4NDUsMzM4NDYsMzM4NDcsMzM4NDksMzM4NTAsMzM4NTEsMzM4NTQsMzM4NTUs'@; put 'MzM4NTYsMzM4NTcsMzM4NTgsMzM4NTksMzM4NjAsMzM4NjEsMzM4NjMsMzM4NjQsMzM4NjUsMzM4NjYsMzM4NjcsMzM4NjgsMzM4NjksMzM4NzAsMzM4NzEsMzM4NzIsMzM4NzQsMzM4NzUsMzM4NzYsMzM4NzcsMzM4NzgsMzM4ODAsMzM4ODUsMzM4ODYsMzM4ODcsMzM4ODgsMzM4OTAsMzM4'@; put 'OTIsMzM4OTMsMzM4OTQsMzM4OTUsMzM4OTYsMzM4OTgsMzM5MDIsMzM5MDMsMzM5MDQsMzM5MDYsMzM5MDgsMzM5MTEsMzM5MTMsMzM5MTUsMzM5MTYsMjE0NjIsMjMwOTQsNDA4NDMsMzYyNTksMjE0MzUsMjIyODAsMzkwNzksMjY0MzUsMzcyNzUsMjc4NDksMjA4NDAsMzAxNTQsMjUzMzEs'@; put 'MjkzNTYsMjEwNDgsMjExNDksMzI1NzAsMjg4MjAsMzAyNjQsMjEzNjQsNDA1MjIsMjcwNjMsMzA4MzAsMzg1OTIsMzUwMzMsMzI2NzYsMjg5ODIsMjkxMjMsMjA4NzMsMjY1NzksMjk5MjQsMjI3NTYsMjU4ODAsMjIxOTksMzU3NTMsMzkyODYsMjUyMDAsMzI0NjksMjQ4MjUsMjg5MDksMjI3'@; put 'NjQsMjAxNjEsMjAxNTQsMjQ1MjUsMzg4ODcsMjAyMTksMzU3NDgsMjA5OTUsMjI5MjIsMzI0MjcsMjUxNzIsMjAxNzMsMjYwODUsMjUxMDIsMzM1OTIsMzM5OTMsMzM2MzUsMzQ3MDEsMjkwNzYsMjgzNDIsMjM0ODEsMzI0NjYsMjA4ODcsMjU1NDUsMjY1ODAsMzI5MDUsMzM1OTMsMzQ4Mzcs'@; put 'MjA3NTQsMjM0MTgsMjI5MTQsMzY3ODUsMjAwODMsMjc3NDEsMjA4MzcsMzUxMDksMzY3MTksMzg0NDYsMzQxMjIsMjk3OTAsMzgxNjAsMzgzODQsMjgwNzAsMzM1MDksMjQzNjksMjU3NDYsMjc5MjIsMzM4MzIsMzMxMzQsNDAxMzEsMjI2MjIsMzYxODcsMTk5NzcsMjE0NDEsMzM5MTcsMzM5'@; put 'MTgsMzM5MTksMzM5MjAsMzM5MjEsMzM5MjMsMzM5MjQsMzM5MjUsMzM5MjYsMzM5MzAsMzM5MzMsMzM5MzUsMzM5MzYsMzM5MzcsMzM5MzgsMzM5MzksMzM5NDAsMzM5NDEsMzM5NDIsMzM5NDQsMzM5NDYsMzM5NDcsMzM5NDksMzM5NTAsMzM5NTEsMzM5NTIsMzM5NTQsMzM5NTUsMzM5NTYs'@; put 'MzM5NTcsMzM5NTgsMzM5NTksMzM5NjAsMzM5NjEsMzM5NjIsMzM5NjMsMzM5NjQsMzM5NjUsMzM5NjYsMzM5NjgsMzM5NjksMzM5NzEsMzM5NzMsMzM5NzQsMzM5NzUsMzM5NzksMzM5ODAsMzM5ODIsMzM5ODQsMzM5ODYsMzM5ODcsMzM5ODksMzM5OTAsMzM5OTEsMzM5OTIsMzM5OTUsMzM5'@; put 'OTYsMzM5OTgsMzM5OTksMzQwMDIsMzQwMDQsMzQwMDUsMzQwMDcsMzQwMDgsMzQwMDksMzQwMTAsMzQwMTEsMzQwMTIsMzQwMTQsMzQwMTcsMzQwMTgsMzQwMjAsMzQwMjMsMzQwMjQsMzQwMjUsMzQwMjYsMzQwMjcsMzQwMjksMzQwMzAsMzQwMzEsMzQwMzMsMzQwMzQsMzQwMzUsMzQwMzYs'@; put 'MzQwMzcsMzQwMzgsMzQwMzksMzQwNDAsMzQwNDEsMzQwNDIsMzQwNDMsMzQwNDUsMzQwNDYsMzQwNDgsMzQwNDksMzQwNTAsMjAyNTQsMjU5NTUsMjY3MDUsMjE5NzEsMjAwMDcsMjU2MjAsMzk1NzgsMjUxOTUsMjMyMzQsMjk3OTEsMzMzOTQsMjgwNzMsMjY4NjIsMjA3MTEsMzM2NzgsMzA3'@; put 'MjIsMjY0MzIsMjEwNDksMjc4MDEsMzI0MzMsMjA2NjcsMjE4NjEsMjkwMjIsMzE1NzksMjYxOTQsMjk2NDIsMzM1MTUsMjY0NDEsMjM2NjUsMjEwMjQsMjkwNTMsMzQ5MjMsMzgzNzgsMzg0ODUsMjU3OTcsMzYxOTMsMzMyMDMsMjE4OTIsMjc3MzMsMjUxNTksMzI1NTgsMjI2NzQsMjAyNjAs'@; put 'MjE4MzAsMzYxNzUsMjYxODgsMTk5NzgsMjM1NzgsMzUwNTksMjY3ODYsMjU0MjIsMzEyNDUsMjg5MDMsMzM0MjEsMjEyNDIsMzg5MDIsMjM1NjksMjE3MzYsMzcwNDUsMzI0NjEsMjI4ODIsMzYxNzAsMzQ1MDMsMzMyOTIsMzMyOTMsMzYxOTgsMjU2NjgsMjM1NTYsMjQ5MTMsMjgwNDEsMzEw'@; put 'MzgsMzU3NzQsMzA3NzUsMzAwMDMsMjE2MjcsMjAyODAsMzY1MjMsMjgxNDUsMjMwNzIsMzI0NTMsMzEwNzAsMjc3ODQsMjM0NTcsMjMxNTgsMjk5NzgsMzI5NTgsMjQ5MTAsMjgxODMsMjI3NjgsMjk5ODMsMjk5ODksMjkyOTgsMjEzMTksMzI0OTksMzQwNTEsMzQwNTIsMzQwNTMsMzQwNTQs'@; put 'MzQwNTUsMzQwNTYsMzQwNTcsMzQwNTgsMzQwNTksMzQwNjEsMzQwNjIsMzQwNjMsMzQwNjQsMzQwNjYsMzQwNjgsMzQwNjksMzQwNzAsMzQwNzIsMzQwNzMsMzQwNzUsMzQwNzYsMzQwNzcsMzQwNzgsMzQwODAsMzQwODIsMzQwODMsMzQwODQsMzQwODUsMzQwODYsMzQwODcsMzQwODgsMzQw'@; put 'ODksMzQwOTAsMzQwOTMsMzQwOTQsMzQwOTUsMzQwOTYsMzQwOTcsMzQwOTgsMzQwOTksMzQxMDAsMzQxMDEsMzQxMDIsMzQxMTAsMzQxMTEsMzQxMTIsMzQxMTMsMzQxMTQsMzQxMTYsMzQxMTcsMzQxMTgsMzQxMTksMzQxMjMsMzQxMjQsMzQxMjUsMzQxMjYsMzQxMjcsMzQxMjgsMzQxMjks'@; put 'MzQxMzAsMzQxMzEsMzQxMzIsMzQxMzMsMzQxMzUsMzQxMzYsMzQxMzgsMzQxMzksMzQxNDAsMzQxNDEsMzQxNDMsMzQxNDQsMzQxNDUsMzQxNDYsMzQxNDcsMzQxNDksMzQxNTAsMzQxNTEsMzQxNTMsMzQxNTQsMzQxNTUsMzQxNTYsMzQxNTcsMzQxNTgsMzQxNTksMzQxNjAsMzQxNjEsMzQx'@; put 'NjMsMzQxNjUsMzQxNjYsMzQxNjcsMzQxNjgsMzQxNzIsMzQxNzMsMzQxNzUsMzQxNzYsMzQxNzcsMzA0NjUsMzA0MjcsMjEwOTcsMzI5ODgsMjIzMDcsMjQwNzIsMjI4MzMsMjk0MjIsMjYwNDUsMjgyODcsMzU3OTksMjM2MDgsMzQ0MTcsMjEzMTMsMzA3MDcsMjUzNDIsMjYxMDIsMjAxNjAs'@; put 'MzkxMzUsMzQ0MzIsMjM0NTQsMzU3ODIsMjE0OTAsMzA2OTAsMjAzNTEsMjM2MzAsMzk1NDIsMjI5ODcsMjQzMzUsMzEwMzQsMjI3NjMsMTk5OTAsMjY2MjMsMjAxMDcsMjUzMjUsMzU0NzUsMzY4OTMsMjExODMsMjYxNTksMjE5ODAsMjIxMjQsMzY4NjYsMjAxODEsMjAzNjUsMzczMjIsMzky'@; put 'ODAsMjc2NjMsMjQwNjYsMjQ2NDMsMjM0NjAsMzUyNzAsMzU3OTcsMjU5MTAsMjUxNjMsMzkzMTgsMjM0MzIsMjM1NTEsMjU0ODAsMjE4MDYsMjE0NjMsMzAyNDYsMjA4NjEsMzQwOTIsMjY1MzAsMjY4MDMsMjc1MzAsMjUyMzQsMzY3NTUsMjE0NjAsMzMyOTgsMjgxMTMsMzAwOTUsMjAwNzAs'@; put 'MzYxNzQsMjM0MDgsMjkwODcsMzQyMjMsMjYyNTcsMjYzMjksMzI2MjYsMzQ1NjAsNDA2NTMsNDA3MzYsMjM2NDYsMjY0MTUsMzY4NDgsMjY2NDEsMjY0NjMsMjUxMDEsMzE0NDYsMjI2NjEsMjQyNDYsMjU5NjgsMjg0NjUsMzQxNzgsMzQxNzksMzQxODIsMzQxODQsMzQxODUsMzQxODYsMzQx'@; put 'ODcsMzQxODgsMzQxODksMzQxOTAsMzQxOTIsMzQxOTMsMzQxOTQsMzQxOTUsMzQxOTYsMzQxOTcsMzQxOTgsMzQxOTksMzQyMDAsMzQyMDEsMzQyMDIsMzQyMDUsMzQyMDYsMzQyMDcsMzQyMDgsMzQyMDksMzQyMTAsMzQyMTEsMzQyMTMsMzQyMTQsMzQyMTUsMzQyMTcsMzQyMTksMzQyMjAs'@; put 'MzQyMjEsMzQyMjUsMzQyMjYsMzQyMjcsMzQyMjgsMzQyMjksMzQyMzAsMzQyMzIsMzQyMzQsMzQyMzUsMzQyMzYsMzQyMzcsMzQyMzgsMzQyMzksMzQyNDAsMzQyNDIsMzQyNDMsMzQyNDQsMzQyNDUsMzQyNDYsMzQyNDcsMzQyNDgsMzQyNTAsMzQyNTEsMzQyNTIsMzQyNTMsMzQyNTQsMzQy'@; put 'NTcsMzQyNTgsMzQyNjAsMzQyNjIsMzQyNjMsMzQyNjQsMzQyNjUsMzQyNjYsMzQyNjcsMzQyNjksMzQyNzAsMzQyNzEsMzQyNzIsMzQyNzMsMzQyNzQsMzQyNzUsMzQyNzcsMzQyNzgsMzQyNzksMzQyODAsMzQyODIsMzQyODMsMzQyODQsMzQyODUsMzQyODYsMzQyODcsMzQyODgsMzQyODks'@; put 'MzQyOTAsMzQyOTEsMzQyOTIsMzQyOTMsMzQyOTQsMzQyOTUsMzQyOTYsMjQ2NjEsMjEwNDcsMzI3ODEsMjU2ODQsMzQ5MjgsMjk5OTMsMjQwNjksMjY2NDMsMjUzMzIsMzg2ODQsMjE0NTIsMjkyNDUsMzU4NDEsMjc3MDAsMzA1NjEsMzEyNDYsMjE1NTAsMzA2MzYsMzkwMzQsMzMzMDgsMzU4'@; put 'MjgsMzA4MDUsMjYzODgsMjg4NjUsMjYwMzEsMjU3NDksMjIwNzAsMjQ2MDUsMzExNjksMjE0OTYsMTk5OTcsMjc1MTUsMzI5MDIsMjM1NDYsMjE5ODcsMjIyMzUsMjAyODIsMjAyODQsMzkyODIsMjQwNTEsMjY0OTQsMzI4MjQsMjQ1NzgsMzkwNDIsMzY4NjUsMjM0MzUsMzU3NzIsMzU4Mjks'@; put 'MjU2MjgsMzMzNjgsMjU4MjIsMjIwMTMsMzM0ODcsMzcyMjEsMjA0MzksMzIwMzIsMzY4OTUsMzE5MDMsMjA3MjMsMjI2MDksMjgzMzUsMjM0ODcsMzU3ODUsMzI4OTksMzcyNDAsMzM5NDgsMzE2MzksMzQ0MjksMzg1MzksMzg1NDMsMzI0ODUsMzk2MzUsMzA4NjIsMjM2ODEsMzEzMTksMzY5'@; put 'MzAsMzg1NjcsMzEwNzEsMjMzODUsMjU0MzksMzE0OTksMzQwMDEsMjY3OTcsMjE3NjYsMzI1NTMsMjk3MTIsMzIwMzQsMzgxNDUsMjUxNTIsMjI2MDQsMjAxODIsMjM0MjcsMjI5MDUsMjI2MTIsMzQyOTcsMzQyOTgsMzQzMDAsMzQzMDEsMzQzMDIsMzQzMDQsMzQzMDUsMzQzMDYsMzQzMDcs'@; put 'MzQzMDgsMzQzMTAsMzQzMTEsMzQzMTIsMzQzMTMsMzQzMTQsMzQzMTUsMzQzMTYsMzQzMTcsMzQzMTgsMzQzMTksMzQzMjAsMzQzMjIsMzQzMjMsMzQzMjQsMzQzMjUsMzQzMjcsMzQzMjgsMzQzMjksMzQzMzAsMzQzMzEsMzQzMzIsMzQzMzMsMzQzMzQsMzQzMzUsMzQzMzYsMzQzMzcsMzQz'@; put 'MzgsMzQzMzksMzQzNDAsMzQzNDEsMzQzNDIsMzQzNDQsMzQzNDYsMzQzNDcsMzQzNDgsMzQzNDksMzQzNTAsMzQzNTEsMzQzNTIsMzQzNTMsMzQzNTQsMzQzNTUsMzQzNTYsMzQzNTcsMzQzNTgsMzQzNTksMzQzNjEsMzQzNjIsMzQzNjMsMzQzNjUsMzQzNjYsMzQzNjcsMzQzNjgsMzQzNjks'@; put 'MzQzNzAsMzQzNzEsMzQzNzIsMzQzNzMsMzQzNzQsMzQzNzUsMzQzNzYsMzQzNzcsMzQzNzgsMzQzNzksMzQzODAsMzQzODYsMzQzODcsMzQzODksMzQzOTAsMzQzOTEsMzQzOTIsMzQzOTMsMzQzOTUsMzQzOTYsMzQzOTcsMzQzOTksMzQ0MDAsMzQ0MDEsMzQ0MDMsMzQ0MDQsMzQ0MDUsMzQ0'@; put 'MDYsMzQ0MDcsMzQ0MDgsMzQ0MDksMzQ0MTAsMjk1NDksMjUzNzQsMzY0MjcsMzYzNjcsMzI5NzQsMzM0OTIsMjUyNjAsMjE0ODgsMjc4ODgsMzcyMTQsMjI4MjYsMjQ1NzcsMjc3NjAsMjIzNDksMjU2NzQsMzYxMzgsMzAyNTEsMjgzOTMsMjIzNjMsMjcyNjQsMzAxOTIsMjg1MjUsMzU4ODUs'@; put 'MzU4NDgsMjIzNzQsMjc2MzEsMzQ5NjIsMzA4OTksMjU1MDYsMjE0OTcsMjg4NDUsMjc3NDgsMjI2MTYsMjU2NDIsMjI1MzAsMjY4NDgsMzMxNzksMjE3NzYsMzE5NTgsMjA1MDQsMzY1MzgsMjgxMDgsMzYyNTUsMjg5MDcsMjU0ODcsMjgwNTksMjgzNzIsMzI0ODYsMzM3OTYsMjY2OTEsMzY4'@; put 'NjcsMjgxMjAsMzg1MTgsMzU3NTIsMjI4NzEsMjkzMDUsMzQyNzYsMzMxNTAsMzAxNDAsMzU0NjYsMjY3OTksMjEwNzYsMzYzODYsMzgxNjEsMjU1NTIsMzkwNjQsMzY0MjAsMjE4ODQsMjAzMDcsMjYzNjcsMjIxNTksMjQ3ODksMjgwNTMsMjEwNTksMjM2MjUsMjI4MjUsMjgxNTUsMjI2MzUs'@; put 'M2U0LDI5OTgwLDI0Njg0LDMzMzAwLDMzMDk0LDI1MzYxLDI2NDY1LDM2ODM0LDMwNTIyLDM2MzM5LDM2MTQ4LDM4MDgxLDI0MDg2LDIxMzgxLDIxNTQ4LDI4ODY3LDM0NDEzLDM0NDE1LDM0NDE2LDM0NDE4LDM0NDE5LDM0NDIwLDM0NDIxLDM0NDIyLDM0NDIzLDM0NDI0LDM0NDM1LDM0NDM2'@; put 'LDM0NDM3LDM0NDM4LDM0NDM5LDM0NDQwLDM0NDQxLDM0NDQ2LDM0NDQ3LDM0NDQ4LDM0NDQ5LDM0NDUwLDM0NDUyLDM0NDU0LDM0NDU1LDM0NDU2LDM0NDU3LDM0NDU4LDM0NDU5LDM0NDYyLDM0NDYzLDM0NDY0LDM0NDY1LDM0NDY2LDM0NDY5LDM0NDcwLDM0NDc1LDM0NDc3LDM0NDc4LDM0'@; put 'NDgyLDM0NDgzLDM0NDg3LDM0NDg4LDM0NDg5LDM0NDkxLDM0NDkyLDM0NDkzLDM0NDk0LDM0NDk1LDM0NDk3LDM0NDk4LDM0NDk5LDM0NTAxLDM0NTA0LDM0NTA4LDM0NTA5LDM0NTE0LDM0NTE1LDM0NTE3LDM0NTE4LDM0NTE5LDM0NTIyLDM0NTI0LDM0NTI1LDM0NTI4LDM0NTI5LDM0NTMw'@; put 'LDM0NTMxLDM0NTMzLDM0NTM0LDM0NTM1LDM0NTM2LDM0NTM4LDM0NTM5LDM0NTQwLDM0NTQzLDM0NTQ5LDM0NTUwLDM0NTUxLDM0NTU0LDM0NTU1LDM0NTU2LDM0NTU3LDM0NTU5LDM0NTYxLDM0NTY0LDM0NTY1LDM0NTY2LDM0NTcxLDM0NTcyLDM0NTc0LDM0NTc1LDM0NTc2LDM0NTc3LDM0'@; put 'NTgwLDM0NTgyLDI3NzEyLDI0MzExLDIwNTcyLDIwMTQxLDI0MjM3LDI1NDAyLDMzMzUxLDM2ODkwLDI2NzA0LDM3MjMwLDMwNjQzLDIxNTE2LDM4MTA4LDI0NDIwLDMxNDYxLDI2NzQyLDI1NDEzLDMxNTcwLDMyNDc5LDMwMTcxLDIwNTk5LDI1MjM3LDIyODM2LDM2ODc5LDIwOTg0LDMxMTcx'@; put 'LDMxMzYxLDIyMjcwLDI0NDY2LDM2ODg0LDI4MDM0LDIzNjQ4LDIyMzAzLDIxNTIwLDIwODIwLDI4MjM3LDIyMjQyLDI1NTEyLDM5MDU5LDMzMTUxLDM0NTgxLDM1MTE0LDM2ODY0LDIxNTM0LDIzNjYzLDMzMjE2LDI1MzAyLDI1MTc2LDMzMDczLDQwNTAxLDM4NDY0LDM5NTM0LDM5NTQ4LDI2'@; put 'OTI1LDIyOTQ5LDI1Mjk5LDIxODIyLDI1MzY2LDIxNzAzLDM0NTIxLDI3OTY0LDIzMDQzLDI5OTI2LDM0OTcyLDI3NDk4LDIyODA2LDM1OTE2LDI0MzY3LDI4Mjg2LDI5NjA5LDM5MDM3LDIwMDI0LDI4OTE5LDIzNDM2LDMwODcxLDI1NDA1LDI2MjAyLDMwMzU4LDI0Nzc5LDIzNDUxLDIzMTEz'@; put 'LDE5OTc1LDMzMTA5LDI3NzU0LDI5NTc5LDIwMTI5LDI2NTA1LDMyNTkzLDI0NDQ4LDI2MTA2LDI2Mzk1LDI0NTM2LDIyOTE2LDIzMDQxLDM0NTg1LDM0NTg3LDM0NTg5LDM0NTkxLDM0NTkyLDM0NTk2LDM0NTk4LDM0NTk5LDM0NjAwLDM0NjAyLDM0NjAzLDM0NjA0LDM0NjA1LDM0NjA3LDM0'@; put 'NjA4LDM0NjEwLDM0NjExLDM0NjEzLDM0NjE0LDM0NjE2LDM0NjE3LDM0NjE4LDM0NjIwLDM0NjIxLDM0NjI0LDM0NjI1LDM0NjI2LDM0NjI3LDM0NjI4LDM0NjI5LDM0NjMwLDM0NjM0LDM0NjM1LDM0NjM3LDM0NjM5LDM0NjQwLDM0NjQxLDM0NjQyLDM0NjQ0LDM0NjQ1LDM0NjQ2LDM0NjQ4'@; put 'LDM0NjUwLDM0NjUxLDM0NjUyLDM0NjUzLDM0NjU0LDM0NjU1LDM0NjU3LDM0NjU4LDM0NjYyLDM0NjYzLDM0NjY0LDM0NjY1LDM0NjY2LDM0NjY3LDM0NjY4LDM0NjY5LDM0NjcxLDM0NjczLDM0Njc0LDM0Njc1LDM0Njc3LDM0Njc5LDM0NjgwLDM0NjgxLDM0NjgyLDM0Njg3LDM0Njg4LDM0'@; put 'Njg5LDM0NjkyLDM0Njk0LDM0Njk1LDM0Njk3LDM0Njk4LDM0NzAwLDM0NzAyLDM0NzAzLDM0NzA0LDM0NzA1LDM0NzA2LDM0NzA4LDM0NzA5LDM0NzEwLDM0NzEyLDM0NzEzLDM0NzE0LDM0NzE1LDM0NzE2LDM0NzE3LDM0NzE4LDM0NzIwLDM0NzIxLDM0NzIyLDM0NzIzLDM0NzI0LDI0MDEz'@; put 'LDI0NDk0LDIxMzYxLDM4ODg2LDM2ODI5LDI2NjkzLDIyMjYwLDIxODA3LDI0Nzk5LDIwMDI2LDI4NDkzLDMyNTAwLDMzNDc5LDMzODA2LDIyOTk2LDIwMjU1LDIwMjY2LDIzNjE0LDMyNDI4LDI2NDEwLDM0MDc0LDIxNjE5LDMwMDMxLDMyOTYzLDIxODkwLDM5NzU5LDIwMzAxLDI4MjA1LDM1'@; put 'ODU5LDIzNTYxLDI0OTQ0LDIxMzU1LDMwMjM5LDI4MjAxLDM0NDQyLDI1OTkxLDM4Mzk1LDMyNDQxLDIxNTYzLDMxMjgzLDMyMDEwLDM4MzgyLDIxOTg1LDMyNzA1LDI5OTM0LDI1MzczLDM0NTgzLDI4MDY1LDMxMzg5LDI1MTA1LDI2MDE3LDIxMzUxLDI1NTY5LDI3Nzc5LDI0MDQzLDIxNTk2'@; put 'LDM4MDU2LDIwMDQ0LDI3NzQ1LDM1ODIwLDIzNjI3LDI2MDgwLDMzNDM2LDI2NzkxLDIxNTY2LDIxNTU2LDI3NTk1LDI3NDk0LDIwMTE2LDI1NDEwLDIxMzIwLDMzMzEwLDIwMjM3LDIwMzk4LDIyMzY2LDI1MDk4LDM4NjU0LDI2MjEyLDI5Mjg5LDIxMjQ3LDIxMTUzLDI0NzM1LDM1ODIzLDI2'@; put 'MTMyLDI5MDgxLDI2NTEyLDM1MTk5LDMwODAyLDMwNzE3LDI2MjI0LDIyMDc1LDIxNTYwLDM4MTc3LDI5MzA2LDM0NzI1LDM0NzI2LDM0NzI3LDM0NzI5LDM0NzMwLDM0NzM0LDM0NzM2LDM0NzM3LDM0NzM4LDM0NzQwLDM0NzQyLDM0NzQzLDM0NzQ0LDM0NzQ1LDM0NzQ3LDM0NzQ4LDM0NzUw'@; put 'LDM0NzUxLDM0NzUzLDM0NzU0LDM0NzU1LDM0NzU2LDM0NzU3LDM0NzU5LDM0NzYwLDM0NzYxLDM0NzY0LDM0NzY1LDM0NzY2LDM0NzY3LDM0NzY4LDM0NzcyLDM0NzczLDM0Nzc0LDM0Nzc1LDM0Nzc2LDM0Nzc3LDM0Nzc4LDM0NzgwLDM0NzgxLDM0NzgyLDM0NzgzLDM0Nzg1LDM0Nzg2LDM0'@; put 'Nzg3LDM0Nzg4LDM0NzkwLDM0NzkxLDM0NzkyLDM0NzkzLDM0Nzk1LDM0Nzk2LDM0Nzk3LDM0Nzk5LDM0ODAwLDM0ODAxLDM0ODAyLDM0ODAzLDM0ODA0LDM0ODA1LDM0ODA2LDM0ODA3LDM0ODA4LDM0ODEwLDM0ODExLDM0ODEyLDM0ODEzLDM0ODE1LDM0ODE2LDM0ODE3LDM0ODE4LDM0ODIw'@; put 'LDM0ODIxLDM0ODIyLDM0ODIzLDM0ODI0LDM0ODI1LDM0ODI3LDM0ODI4LDM0ODI5LDM0ODMwLDM0ODMxLDM0ODMyLDM0ODMzLDM0ODM0LDM0ODM2LDM0ODM5LDM0ODQwLDM0ODQxLDM0ODQyLDM0ODQ0LDM0ODQ1LDM0ODQ2LDM0ODQ3LDM0ODQ4LDM0ODUxLDMxMjMyLDI0Njg3LDI0MDc2LDI0'@; put 'NzEzLDMzMTgxLDIyODA1LDI0Nzk2LDI5MDYwLDI4OTExLDI4MzMwLDI3NzI4LDI5MzEyLDI3MjY4LDM0OTg5LDI0MTA5LDIwMDY0LDIzMjE5LDIxOTE2LDM4MTE1LDI3OTI3LDMxOTk1LDM4NTUzLDI1MTAzLDMyNDU0LDMwNjA2LDM0NDMwLDIxMjgzLDM4Njg2LDM2NzU4LDI2MjQ3LDIzNzc3'@; put 'LDIwMzg0LDI5NDIxLDE5OTc5LDIxNDE0LDIyNzk5LDIxNTIzLDI1NDcyLDM4MTg0LDIwODA4LDIwMTg1LDQwMDkyLDMyNDIwLDIxNjg4LDM2MTMyLDM0OTAwLDMzMzM1LDM4Mzg2LDI4MDQ2LDI0MzU4LDIzMjQ0LDI2MTc0LDM4NTA1LDI5NjE2LDI5NDg2LDIxNDM5LDMzMTQ2LDM5MzAxLDMy'@; put 'NjczLDIzNDY2LDM4NTE5LDM4NDgwLDMyNDQ3LDMwNDU2LDIxNDEwLDM4MjYyLDM5MzIxLDMxNjY1LDM1MTQwLDI4MjQ4LDIwMDY1LDMyNzI0LDMxMDc3LDM1ODE0LDI0ODE5LDIxNzA5LDIwMTM5LDM5MDMzLDI0MDU1LDI3MjMzLDIwNjg3LDIxNTIxLDM1OTM3LDMzODMxLDMwODEzLDM4NjYw'@; put 'LDIxMDY2LDIxNzQyLDIyMTc5LDM4MTQ0LDI4MDQwLDIzNDc3LDI4MTAyLDI2MTk1LDM0ODUyLDM0ODUzLDM0ODU0LDM0ODU1LDM0ODU2LDM0ODU3LDM0ODU4LDM0ODU5LDM0ODYwLDM0ODYxLDM0ODYyLDM0ODYzLDM0ODY0LDM0ODY1LDM0ODY3LDM0ODY4LDM0ODY5LDM0ODcwLDM0ODcxLDM0'@; put 'ODcyLDM0ODc0LDM0ODc1LDM0ODc3LDM0ODc4LDM0ODc5LDM0ODgxLDM0ODgyLDM0ODgzLDM0ODg2LDM0ODg3LDM0ODg4LDM0ODg5LDM0ODkwLDM0ODkxLDM0ODk0LDM0ODk1LDM0ODk2LDM0ODk3LDM0ODk4LDM0ODk5LDM0OTAxLDM0OTAyLDM0OTA0LDM0OTA2LDM0OTA3LDM0OTA4LDM0OTA5'@; put 'LDM0OTEwLDM0OTExLDM0OTEyLDM0OTE4LDM0OTE5LDM0OTIyLDM0OTI1LDM0OTI3LDM0OTI5LDM0OTMxLDM0OTMyLDM0OTMzLDM0OTM0LDM0OTM2LDM0OTM3LDM0OTM4LDM0OTM5LDM0OTQwLDM0OTQ0LDM0OTQ3LDM0OTUwLDM0OTUxLDM0OTUzLDM0OTU0LDM0OTU2LDM0OTU4LDM0OTU5LDM0'@; put 'OTYwLDM0OTYxLDM0OTYzLDM0OTY0LDM0OTY1LDM0OTY3LDM0OTY4LDM0OTY5LDM0OTcwLDM0OTcxLDM0OTczLDM0OTc0LDM0OTc1LDM0OTc2LDM0OTc3LDM0OTc5LDM0OTgxLDM0OTgyLDM0OTgzLDM0OTg0LDM0OTg1LDM0OTg2LDIzNTY3LDIzMzg5LDI2NjU3LDMyOTE4LDIxODgwLDMxNTA1'@; put 'LDI1OTI4LDI2OTY0LDIwMTIzLDI3NDYzLDM0NjM4LDM4Nzk1LDIxMzI3LDI1Mzc1LDI1NjU4LDM3MDM0LDI2MDEyLDMyOTYxLDM1ODU2LDIwODg5LDI2ODAwLDIxMzY4LDM0ODA5LDI1MDMyLDI3ODQ0LDI3ODk5LDM1ODc0LDIzNjMzLDM0MjE4LDMzNDU1LDM4MTU2LDI3NDI3LDM2NzYzLDI2'@; put 'MDMyLDI0NTcxLDI0NTE1LDIwNDQ5LDM0ODg1LDI2MTQzLDMzMTI1LDI5NDgxLDI0ODI2LDIwODUyLDIxMDA5LDIyNDExLDI0NDE4LDM3MDI2LDM0ODkyLDM3MjY2LDI0MTg0LDI2NDQ3LDI0NjE1LDIyOTk1LDIwODA0LDIwOTgyLDMzMDE2LDIxMjU2LDI3NzY5LDM4NTk2LDI5MDY2LDIwMjQx'@; put 'LDIwNDYyLDMyNjcwLDI2NDI5LDIxOTU3LDM4MTUyLDMxMTY4LDM0OTY2LDMyNDgzLDIyNjg3LDI1MTAwLDM4NjU2LDM0Mzk0LDIyMDQwLDM5MDM1LDI0NDY0LDM1NzY4LDMzOTg4LDM3MjA3LDIxNDY1LDI2MDkzLDI0MjA3LDMwMDQ0LDI0Njc2LDMyMTEwLDIzMTY3LDMyNDkwLDMyNDkzLDM2'@; put 'NzEzLDIxOTI3LDIzNDU5LDI0NzQ4LDI2MDU5LDI5NTcyLDM0OTg4LDM0OTkwLDM0OTkxLDM0OTkyLDM0OTk0LDM0OTk1LDM0OTk2LDM0OTk3LDM0OTk4LDM1ZTMsMzUwMDEsMzUwMDIsMzUwMDMsMzUwMDUsMzUwMDYsMzUwMDcsMzUwMDgsMzUwMTEsMzUwMTIsMzUwMTUsMzUwMTYsMzUwMTgs'@; put 'MzUwMTksMzUwMjAsMzUwMjEsMzUwMjMsMzUwMjQsMzUwMjUsMzUwMjcsMzUwMzAsMzUwMzEsMzUwMzQsMzUwMzUsMzUwMzYsMzUwMzcsMzUwMzgsMzUwNDAsMzUwNDEsMzUwNDYsMzUwNDcsMzUwNDksMzUwNTAsMzUwNTEsMzUwNTIsMzUwNTMsMzUwNTQsMzUwNTUsMzUwNTgsMzUwNjEsMzUw'@; put 'NjIsMzUwNjMsMzUwNjYsMzUwNjcsMzUwNjksMzUwNzEsMzUwNzIsMzUwNzMsMzUwNzUsMzUwNzYsMzUwNzcsMzUwNzgsMzUwNzksMzUwODAsMzUwODEsMzUwODMsMzUwODQsMzUwODUsMzUwODYsMzUwODcsMzUwODksMzUwOTIsMzUwOTMsMzUwOTQsMzUwOTUsMzUwOTYsMzUxMDAsMzUxMDEs'@; put 'MzUxMDIsMzUxMDMsMzUxMDQsMzUxMDYsMzUxMDcsMzUxMDgsMzUxMTAsMzUxMTEsMzUxMTIsMzUxMTMsMzUxMTYsMzUxMTcsMzUxMTgsMzUxMTksMzUxMjEsMzUxMjIsMzUxMjMsMzUxMjUsMzUxMjcsMzY4NzMsMzAzMDcsMzA1MDUsMzI0NzQsMzg3NzIsMzQyMDMsMjMzOTgsMzEzNDgsMzg2'@; put 'MzQsMzQ4ODAsMjExOTUsMjkwNzEsMjQ0OTAsMjYwOTIsMzU4MTAsMjM1NDcsMzk1MzUsMjQwMzMsMjc1MjksMjc3MzksMzU3NTcsMzU3NTksMzY4NzQsMzY4MDUsMjEzODcsMjUyNzYsNDA0ODYsNDA0OTMsMjE1NjgsMjAwMTEsMzM0NjksMjkyNzMsMzQ0NjAsMjM4MzAsMzQ5MDUsMjgwNzks'@; put 'Mzg1OTcsMjE3MTMsMjAxMjIsMzU3NjYsMjg5MzcsMjE2OTMsMzg0MDksMjg4OTUsMjgxNTMsMzA0MTYsMjAwMDUsMzA3NDAsMzQ1NzgsMjM3MjEsMjQzMTAsMzUzMjgsMzkwNjgsMzg0MTQsMjg4MTQsMjc4MzksMjI4NTIsMjU1MTMsMzA1MjQsMzQ4OTMsMjg0MzYsMzMzOTUsMjI1NzYsMjkx'@; put 'NDEsMjEzODgsMzA3NDYsMzg1OTMsMjE3NjEsMjQ0MjIsMjg5NzYsMjM0NzYsMzU4NjYsMzk1NjQsMjc1MjMsMjI4MzAsNDA0OTUsMzEyMDcsMjY0NzIsMjUxOTYsMjAzMzUsMzAxMTMsMzI2NTAsMjc5MTUsMzg0NTEsMjc2ODcsMjAyMDgsMzAxNjIsMjA4NTksMjY2NzksMjg0NzgsMzY5OTIs'@; put 'MzMxMzYsMjI5MzQsMjk4MTQsMzUxMjgsMzUxMjksMzUxMzAsMzUxMzEsMzUxMzIsMzUxMzMsMzUxMzQsMzUxMzUsMzUxMzYsMzUxMzgsMzUxMzksMzUxNDEsMzUxNDIsMzUxNDMsMzUxNDQsMzUxNDUsMzUxNDYsMzUxNDcsMzUxNDgsMzUxNDksMzUxNTAsMzUxNTEsMzUxNTIsMzUxNTMsMzUx'@; put 'NTQsMzUxNTUsMzUxNTYsMzUxNTcsMzUxNTgsMzUxNTksMzUxNjAsMzUxNjEsMzUxNjIsMzUxNjMsMzUxNjQsMzUxNjUsMzUxNjgsMzUxNjksMzUxNzAsMzUxNzEsMzUxNzIsMzUxNzMsMzUxNzUsMzUxNzYsMzUxNzcsMzUxNzgsMzUxNzksMzUxODAsMzUxODEsMzUxODIsMzUxODMsMzUxODQs'@; put 'MzUxODUsMzUxODYsMzUxODcsMzUxODgsMzUxODksMzUxOTAsMzUxOTEsMzUxOTIsMzUxOTMsMzUxOTQsMzUxOTYsMzUxOTcsMzUxOTgsMzUyMDAsMzUyMDIsMzUyMDQsMzUyMDUsMzUyMDcsMzUyMDgsMzUyMDksMzUyMTAsMzUyMTEsMzUyMTIsMzUyMTMsMzUyMTQsMzUyMTUsMzUyMTYsMzUy'@; put 'MTcsMzUyMTgsMzUyMTksMzUyMjAsMzUyMjEsMzUyMjIsMzUyMjMsMzUyMjQsMzUyMjUsMzUyMjYsMzUyMjcsMzUyMjgsMzUyMjksMzUyMzAsMzUyMzEsMzUyMzIsMzUyMzMsMjU2NzEsMjM1OTEsMzY5NjUsMzEzNzcsMzU4NzUsMjMwMDIsMjE2NzYsMzMyODAsMzM2NDcsMzUyMDEsMzI3Njgs'@; put 'MjY5MjgsMjIwOTQsMzI4MjIsMjkyMzksMzczMjYsMjA5MTgsMjAwNjMsMzkwMjksMjU0OTQsMTk5OTQsMjE0OTQsMjYzNTUsMzMwOTksMjI4MTIsMjgwODIsMTk5NjgsMjI3NzcsMjEzMDcsMjU1NTgsMzgxMjksMjAzODEsMjAyMzQsMzQ5MTUsMzkwNTYsMjI4MzksMzY5NTEsMzEyMjcsMjAy'@; put 'MDIsMzMwMDgsMzAwOTcsMjc3NzgsMjM0NTIsMjMwMTYsMjQ0MTMsMjY4ODUsMzQ0MzMsMjA1MDYsMjQwNTAsMjAwNTcsMzA2OTEsMjAxOTcsMzM0MDIsMjUyMzMsMjYxMzEsMzcwMDksMjM2NzMsMjAxNTksMjQ0NDEsMzMyMjIsMzY5MjAsMzI5MDAsMzAxMjMsMjAxMzQsMzUwMjgsMjQ4NDcs'@; put 'Mjc1ODksMjQ1MTgsMjAwNDEsMzA0MTAsMjgzMjIsMzU4MTEsMzU3NTgsMzU4NTAsMzU3OTMsMjQzMjIsMzI3NjQsMzI3MTYsMzI0NjIsMzM1ODksMzM2NDMsMjIyNDAsMjc1NzUsMzg4OTksMzg0NTIsMjMwMzUsMjE1MzUsMzgxMzQsMjgxMzksMjM0OTMsMzkyNzgsMjM2MDksMjQzNDEsMzg1'@; put 'NDQsMzUyMzQsMzUyMzUsMzUyMzYsMzUyMzcsMzUyMzgsMzUyMzksMzUyNDAsMzUyNDEsMzUyNDIsMzUyNDMsMzUyNDQsMzUyNDUsMzUyNDYsMzUyNDcsMzUyNDgsMzUyNDksMzUyNTAsMzUyNTEsMzUyNTIsMzUyNTMsMzUyNTQsMzUyNTUsMzUyNTYsMzUyNTcsMzUyNTgsMzUyNTksMzUyNjAs'@; put 'MzUyNjEsMzUyNjIsMzUyNjMsMzUyNjQsMzUyNjcsMzUyNzcsMzUyODMsMzUyODQsMzUyODUsMzUyODcsMzUyODgsMzUyODksMzUyOTEsMzUyOTMsMzUyOTUsMzUyOTYsMzUyOTcsMzUyOTgsMzUzMDAsMzUzMDMsMzUzMDQsMzUzMDUsMzUzMDYsMzUzMDgsMzUzMDksMzUzMTAsMzUzMTIsMzUz'@; put 'MTMsMzUzMTQsMzUzMTYsMzUzMTcsMzUzMTgsMzUzMTksMzUzMjAsMzUzMjEsMzUzMjIsMzUzMjMsMzUzMjQsMzUzMjUsMzUzMjYsMzUzMjcsMzUzMjksMzUzMzAsMzUzMzEsMzUzMzIsMzUzMzMsMzUzMzQsMzUzMzYsMzUzMzcsMzUzMzgsMzUzMzksMzUzNDAsMzUzNDEsMzUzNDIsMzUzNDMs'@; put 'MzUzNDQsMzUzNDUsMzUzNDYsMzUzNDcsMzUzNDgsMzUzNDksMzUzNTAsMzUzNTEsMzUzNTIsMzUzNTMsMzUzNTQsMzUzNTUsMzUzNTYsMzUzNTcsMjEzNjAsMzM1MjEsMjcxODUsMjMxNTYsNDA1NjAsMjQyMTIsMzI1NTIsMzM3MjEsMzM4MjgsMzM4MjksMzM2MzksMzQ2MzEsMzY4MTQsMzYx'@; put 'OTQsMzA0MDgsMjQ0MzMsMzkwNjIsMzA4MjgsMjYxNDQsMjE3MjcsMjUzMTcsMjAzMjMsMzMyMTksMzAxNTIsMjQyNDgsMzg2MDUsMzYzNjIsMzQ1NTMsMjE2NDcsMjc4OTEsMjgwNDQsMjc3MDQsMjQ3MDMsMjExOTEsMjk5OTIsMjQxODksMjAyNDgsMjQ3MzYsMjQ1NTEsMjM1ODgsMzAwMDEs'@; put 'MzcwMzgsMzgwODAsMjkzNjksMjc4MzMsMjgyMTYsMzcxOTMsMjYzNzcsMjE0NTEsMjE0OTEsMjAzMDUsMzczMjEsMzU4MjUsMjE0NDgsMjQxODgsMzY4MDIsMjgxMzIsMjAxMTAsMzA0MDIsMjcwMTQsMzQzOTgsMjQ4NTgsMzMyODYsMjAzMTMsMjA0NDYsMzY5MjYsNDAwNjAsMjQ4NDEsMjgx'@; put 'ODksMjgxODAsMzg1MzMsMjAxMDQsMjMwODksMzg2MzIsMTk5ODIsMjM2NzksMzExNjEsMjM0MzEsMzU4MjEsMzI3MDEsMjk1NzcsMjI0OTUsMzM0MTksMzcwNTcsMjE1MDUsMzY5MzUsMjE5NDcsMjM3ODYsMjQ0ODEsMjQ4NDAsMjc0NDIsMjk0MjUsMzI5NDYsMzU0NjUsMzUzNTgsMzUzNTks'@; put 'MzUzNjAsMzUzNjEsMzUzNjIsMzUzNjMsMzUzNjQsMzUzNjUsMzUzNjYsMzUzNjcsMzUzNjgsMzUzNjksMzUzNzAsMzUzNzEsMzUzNzIsMzUzNzMsMzUzNzQsMzUzNzUsMzUzNzYsMzUzNzcsMzUzNzgsMzUzNzksMzUzODAsMzUzODEsMzUzODIsMzUzODMsMzUzODQsMzUzODUsMzUzODYsMzUz'@; put 'ODcsMzUzODgsMzUzODksMzUzOTEsMzUzOTIsMzUzOTMsMzUzOTQsMzUzOTUsMzUzOTYsMzUzOTcsMzUzOTgsMzUzOTksMzU0MDEsMzU0MDIsMzU0MDMsMzU0MDQsMzU0MDUsMzU0MDYsMzU0MDcsMzU0MDgsMzU0MDksMzU0MTAsMzU0MTEsMzU0MTIsMzU0MTMsMzU0MTQsMzU0MTUsMzU0MTYs'@; put 'MzU0MTcsMzU0MTgsMzU0MTksMzU0MjAsMzU0MjEsMzU0MjIsMzU0MjMsMzU0MjQsMzU0MjUsMzU0MjYsMzU0MjcsMzU0MjgsMzU0MjksMzU0MzAsMzU0MzEsMzU0MzIsMzU0MzMsMzU0MzQsMzU0MzUsMzU0MzYsMzU0MzcsMzU0MzgsMzU0MzksMzU0NDAsMzU0NDEsMzU0NDIsMzU0NDMsMzU0'@; put 'NDQsMzU0NDUsMzU0NDYsMzU0NDcsMzU0NDgsMzU0NTAsMzU0NTEsMzU0NTIsMzU0NTMsMzU0NTQsMzU0NTUsMzU0NTYsMjgwMjAsMjM1MDcsMzUwMjksMzkwNDQsMzU5NDcsMzk1MzMsNDA0OTksMjgxNzAsMjA5MDAsMjA4MDMsMjI0MzUsMzQ5NDUsMjE0MDcsMjU1ODgsMzY3NTcsMjIyNTMs'@; put 'MjE1OTIsMjIyNzgsMjk1MDMsMjgzMDQsMzI1MzYsMzY4MjgsMzM0ODksMjQ4OTUsMjQ2MTYsMzg0OTgsMjYzNTIsMzI0MjIsMzYyMzQsMzYyOTEsMzgwNTMsMjM3MzEsMzE5MDgsMjYzNzYsMjQ3NDIsMzg0MDUsMzI3OTIsMjAxMTMsMzcwOTUsMjEyNDgsMzg1MDQsMjA4MDEsMzY4MTYsMzQx'@; put 'NjQsMzcyMTMsMjYxOTcsMzg5MDEsMjMzODEsMjEyNzcsMzA3NzYsMjY0MzQsMjY2ODUsMjE3MDUsMjg3OTgsMjM0NzIsMzY3MzMsMjA4NzcsMjIzMTIsMjE2ODEsMjU4NzQsMjYyNDIsMzYxOTAsMzYxNjMsMzMwMzksMzM5MDAsMzY5NzMsMzE5NjcsMjA5OTEsMzQyOTksMjY1MzEsMjYwODks'@; put 'Mjg1NzcsMzQ0NjgsMzY0ODEsMjIxMjIsMzY4OTYsMzAzMzgsMjg3OTAsMjkxNTcsMzYxMzEsMjUzMjEsMjEwMTcsMjc5MDEsMzYxNTYsMjQ1OTAsMjI2ODYsMjQ5NzQsMjYzNjYsMzYxOTIsMjUxNjYsMjE5MzksMjgxOTUsMjY0MTMsMzY3MTEsMzU0NTcsMzU0NTgsMzU0NTksMzU0NjAsMzU0'@; put 'NjEsMzU0NjIsMzU0NjMsMzU0NjQsMzU0NjcsMzU0NjgsMzU0NjksMzU0NzAsMzU0NzEsMzU0NzIsMzU0NzMsMzU0NzQsMzU0NzYsMzU0NzcsMzU0NzgsMzU0NzksMzU0ODAsMzU0ODEsMzU0ODIsMzU0ODMsMzU0ODQsMzU0ODUsMzU0ODYsMzU0ODcsMzU0ODgsMzU0ODksMzU0OTAsMzU0OTEs'@; put 'MzU0OTIsMzU0OTMsMzU0OTQsMzU0OTUsMzU0OTYsMzU0OTcsMzU0OTgsMzU0OTksMzU1MDAsMzU1MDEsMzU1MDIsMzU1MDMsMzU1MDQsMzU1MDUsMzU1MDYsMzU1MDcsMzU1MDgsMzU1MDksMzU1MTAsMzU1MTEsMzU1MTIsMzU1MTMsMzU1MTQsMzU1MTUsMzU1MTYsMzU1MTcsMzU1MTgsMzU1'@; put 'MTksMzU1MjAsMzU1MjEsMzU1MjIsMzU1MjMsMzU1MjQsMzU1MjUsMzU1MjYsMzU1MjcsMzU1MjgsMzU1MjksMzU1MzAsMzU1MzEsMzU1MzIsMzU1MzMsMzU1MzQsMzU1MzUsMzU1MzYsMzU1MzcsMzU1MzgsMzU1MzksMzU1NDAsMzU1NDEsMzU1NDIsMzU1NDMsMzU1NDQsMzU1NDUsMzU1NDYs'@; put 'MzU1NDcsMzU1NDgsMzU1NDksMzU1NTAsMzU1NTEsMzU1NTIsMzU1NTMsMzU1NTQsMzU1NTUsMzgxMTMsMzgzOTIsMzA1MDQsMjY2MjksMjcwNDgsMjE2NDMsMjAwNDUsMjg4NTYsMzU3ODQsMjU2ODgsMjU5OTUsMjM0MjksMzEzNjQsMjA1MzgsMjM1MjgsMzA2NTEsMjc2MTcsMzU0NDksMzE4'@; put 'OTYsMjc4MzgsMzA0MTUsMjYwMjUsMzY3NTksMjM4NTMsMjM2MzcsMzQzNjAsMjY2MzIsMjEzNDQsMjUxMTIsMzE0NDksMjgyNTEsMzI1MDksMjcxNjcsMzE0NTYsMjQ0MzIsMjg0NjcsMjQzNTIsMjU0ODQsMjgwNzIsMjY0NTQsMTk5NzYsMjQwODAsMzYxMzQsMjAxODMsMzI5NjAsMzAyNjAs'@; put 'Mzg1NTYsMjUzMDcsMjYxNTcsMjUyMTQsMjc4MzYsMzYyMTMsMjkwMzEsMzI2MTcsMjA4MDYsMzI5MDMsMjE0ODQsMzY5NzQsMjUyNDAsMjE3NDYsMzQ1NDQsMzY3NjEsMzI3NzMsMzgxNjcsMzQwNzEsMzY4MjUsMjc5OTMsMjk2NDUsMjYwMTUsMzA0OTUsMjk5NTYsMzA3NTksMzMyNzUsMzYx'@; put 'MjYsMzgwMjQsMjAzOTAsMjY1MTcsMzAxMzcsMzU3ODYsMzg2NjMsMjUzOTEsMzgyMTUsMzg0NTMsMzM5NzYsMjUzNzksMzA1MjksMjQ0NDksMjk0MjQsMjAxMDUsMjQ1OTYsMjU5NzIsMjUzMjcsMjc0OTEsMjU5MTksMzU1NTYsMzU1NTcsMzU1NTgsMzU1NTksMzU1NjAsMzU1NjEsMzU1NjIs'@; put 'MzU1NjMsMzU1NjQsMzU1NjUsMzU1NjYsMzU1NjcsMzU1NjgsMzU1NjksMzU1NzAsMzU1NzEsMzU1NzIsMzU1NzMsMzU1NzQsMzU1NzUsMzU1NzYsMzU1NzcsMzU1NzgsMzU1NzksMzU1ODAsMzU1ODEsMzU1ODIsMzU1ODMsMzU1ODQsMzU1ODUsMzU1ODYsMzU1ODcsMzU1ODgsMzU1ODksMzU1'@; put 'OTAsMzU1OTIsMzU1OTMsMzU1OTQsMzU1OTUsMzU1OTYsMzU1OTcsMzU1OTgsMzU1OTksMzU2MDAsMzU2MDEsMzU2MDIsMzU2MDMsMzU2MDQsMzU2MDUsMzU2MDYsMzU2MDcsMzU2MDgsMzU2MDksMzU2MTAsMzU2MTEsMzU2MTIsMzU2MTMsMzU2MTQsMzU2MTUsMzU2MTYsMzU2MTcsMzU2MTgs'@; put 'MzU2MTksMzU2MjAsMzU2MjEsMzU2MjMsMzU2MjQsMzU2MjUsMzU2MjYsMzU2MjcsMzU2MjgsMzU2MjksMzU2MzAsMzU2MzEsMzU2MzIsMzU2MzMsMzU2MzQsMzU2MzUsMzU2MzYsMzU2MzcsMzU2MzgsMzU2MzksMzU2NDAsMzU2NDEsMzU2NDIsMzU2NDMsMzU2NDQsMzU2NDUsMzU2NDYsMzU2'@; put 'NDcsMzU2NDgsMzU2NDksMzU2NTAsMzU2NTEsMzU2NTIsMzU2NTMsMjQxMDMsMzAxNTEsMzcwNzMsMzU3NzcsMzM0MzcsMjY1MjUsMjU5MDMsMjE1NTMsMzQ1ODQsMzA2OTMsMzI5MzAsMzMwMjYsMjc3MTMsMjAwNDMsMzI0NTUsMzI4NDQsMzA0NTIsMjY4OTMsMjc1NDIsMjUxOTEsMjA1NDAs'@; put 'MjAzNTYsMjIzMzYsMjUzNTEsMjc0OTAsMzYyODYsMjE0ODIsMjYwODgsMzI0NDAsMjQ1MzUsMjUzNzAsMjU1MjcsMzMyNjcsMzMyNjgsMzI2MjIsMjQwOTIsMjM3NjksMjEwNDYsMjYyMzQsMzEyMDksMzEyNTgsMzYxMzYsMjg4MjUsMzAxNjQsMjgzODIsMjc4MzUsMzEzNzgsMjAwMTMsMzA0'@; put 'MDUsMjQ1NDQsMzgwNDcsMzQ5MzUsMzI0NTYsMzExODEsMzI5NTksMzczMjUsMjAyMTAsMjAyNDcsMzMzMTEsMjE2MDgsMjQwMzAsMjc5NTQsMzU3ODgsMzE5MDksMzY3MjQsMzI5MjAsMjQwOTAsMjE2NTAsMzAzODUsMjM0NDksMjYxNzIsMzk1ODgsMjk2NjQsMjY2NjYsMzQ1MjMsMjY0MTcs'@; put 'Mjk0ODIsMzU4MzIsMzU4MDMsMzY4ODAsMzE0ODEsMjg4OTEsMjkwMzgsMjUyODQsMzA2MzMsMjIwNjUsMjAwMjcsMzM4NzksMjY2MDksMjExNjEsMzQ0OTYsMzYxNDIsMzgxMzYsMzE1NjksMzU2NTQsMzU2NTUsMzU2NTYsMzU2NTcsMzU2NTgsMzU2NTksMzU2NjAsMzU2NjEsMzU2NjIsMzU2'@; put 'NjMsMzU2NjQsMzU2NjUsMzU2NjYsMzU2NjcsMzU2NjgsMzU2NjksMzU2NzAsMzU2NzEsMzU2NzIsMzU2NzMsMzU2NzQsMzU2NzUsMzU2NzYsMzU2NzcsMzU2NzgsMzU2NzksMzU2ODAsMzU2ODEsMzU2ODIsMzU2ODMsMzU2ODQsMzU2ODUsMzU2ODcsMzU2ODgsMzU2ODksMzU2OTAsMzU2OTEs'@; put 'MzU2OTMsMzU2OTQsMzU2OTUsMzU2OTYsMzU2OTcsMzU2OTgsMzU2OTksMzU3MDAsMzU3MDEsMzU3MDIsMzU3MDMsMzU3MDQsMzU3MDUsMzU3MDYsMzU3MDcsMzU3MDgsMzU3MDksMzU3MTAsMzU3MTEsMzU3MTIsMzU3MTMsMzU3MTQsMzU3MTUsMzU3MTYsMzU3MTcsMzU3MTgsMzU3MTksMzU3'@; put 'MjAsMzU3MjEsMzU3MjIsMzU3MjMsMzU3MjQsMzU3MjUsMzU3MjYsMzU3MjcsMzU3MjgsMzU3MjksMzU3MzAsMzU3MzEsMzU3MzIsMzU3MzMsMzU3MzQsMzU3MzUsMzU3MzYsMzU3MzcsMzU3MzgsMzU3MzksMzU3NDAsMzU3NDEsMzU3NDIsMzU3NDMsMzU3NTYsMzU3NjEsMzU3NzEsMzU3ODMs'@; put 'MzU3OTIsMzU4MTgsMzU4NDksMzU4NzAsMjAzMDMsMjc4ODAsMzEwNjksMzk1NDcsMjUyMzUsMjkyMjYsMjUzNDEsMTk5ODcsMzA3NDIsMzY3MTYsMjU3NzYsMzYxODYsMzE2ODYsMjY3MjksMjQxOTYsMzUwMTMsMjI5MTgsMjU3NTgsMjI3NjYsMjkzNjYsMjY4OTQsMzgxODEsMzY4NjEsMzYx'@; put 'ODQsMjIzNjgsMzI1MTIsMzU4NDYsMjA5MzQsMjU0MTcsMjUzMDUsMjEzMzEsMjY3MDAsMjk3MzAsMzM1MzcsMzcxOTYsMjE4MjgsMzA1MjgsMjg3OTYsMjc5NzgsMjA4NTcsMjE2NzIsMzYxNjQsMjMwMzksMjgzNjMsMjgxMDAsMjMzODgsMzIwNDMsMjAxODAsMzE4NjksMjgzNzEsMjMzNzYs'@; put 'MzMyNTgsMjgxNzMsMjMzODMsMzk2ODMsMjY4MzcsMzYzOTQsMjM0NDcsMzI1MDgsMjQ2MzUsMzI0MzcsMzcwNDksMzYyMDgsMjI4NjMsMjU1NDksMzExOTksMzYyNzUsMjEzMzAsMjYwNjMsMzEwNjIsMzU3ODEsMzg0NTksMzI0NTIsMzgwNzUsMzIzODYsMjIwNjgsMzcyNTcsMjYzNjgsMzI2'@; put 'MTgsMjM1NjIsMzY5ODEsMjYxNTIsMjQwMzgsMjAzMDQsMjY1OTAsMjA1NzAsMjAzMTYsMjIzNTIsMjQyMzEsNTk0MDgsNTk0MDksNTk0MTAsNTk0MTEsNTk0MTIsMzU4OTYsMzU4OTcsMzU4OTgsMzU4OTksMzU5MDAsMzU5MDEsMzU5MDIsMzU5MDMsMzU5MDQsMzU5MDYsMzU5MDcsMzU5MDgs'@; put 'MzU5MDksMzU5MTIsMzU5MTQsMzU5MTUsMzU5MTcsMzU5MTgsMzU5MTksMzU5MjAsMzU5MjEsMzU5MjIsMzU5MjMsMzU5MjQsMzU5MjYsMzU5MjcsMzU5MjgsMzU5MjksMzU5MzEsMzU5MzIsMzU5MzMsMzU5MzQsMzU5MzUsMzU5MzYsMzU5MzksMzU5NDAsMzU5NDEsMzU5NDIsMzU5NDMsMzU5'@; put 'NDQsMzU5NDUsMzU5NDgsMzU5NDksMzU5NTAsMzU5NTEsMzU5NTIsMzU5NTMsMzU5NTQsMzU5NTYsMzU5NTcsMzU5NTgsMzU5NTksMzU5NjMsMzU5NjQsMzU5NjUsMzU5NjYsMzU5NjcsMzU5NjgsMzU5NjksMzU5NzEsMzU5NzIsMzU5NzQsMzU5NzUsMzU5NzYsMzU5NzksMzU5ODEsMzU5ODIs'@; put 'MzU5ODMsMzU5ODQsMzU5ODUsMzU5ODYsMzU5ODcsMzU5ODksMzU5OTAsMzU5OTEsMzU5OTMsMzU5OTQsMzU5OTUsMzU5OTYsMzU5OTcsMzU5OTgsMzU5OTksMzZlMywzNjAwMSwzNjAwMiwzNjAwMywzNjAwNCwzNjAwNSwzNjAwNiwzNjAwNywzNjAwOCwzNjAwOSwzNjAxMCwzNjAxMSwzNjAx'@; put 'MiwzNjAxMywyMDEwOSwxOTk4MCwyMDgwMCwxOTk4NCwyNDMxOSwyMTMxNywxOTk4OSwyMDEyMCwxOTk5OCwzOTczMCwyMzQwNCwyMjEyMSwyMDAwOCwzMTE2MiwyMDAzMSwyMTI2OSwyMDAzOSwyMjgyOSwyOTI0MywyMTM1OCwyNzY2NCwyMjIzOSwzMjk5NiwzOTMxOSwyNzYwMywzMDU5MCw0'@; put 'MDcyNywyMDAyMiwyMDEyNyw0MDcyMCwyMDA2MCwyMDA3MywyMDExNSwzMzQxNiwyMzM4NywyMTg2OCwyMjAzMSwyMDE2NCwyMTM4OSwyMTQwNSwyMTQxMSwyMTQxMywyMTQyMiwzODc1NywzNjE4OSwyMTI3NCwyMTQ5MywyMTI4NiwyMTI5NCwyMTMxMCwzNjE4OCwyMTM1MCwyMTM0NywyMDk5'@; put 'NCwyMWUzLDIxMDA2LDIxMDM3LDIxMDQzLDIxMDU1LDIxMDU2LDIxMDY4LDIxMDg2LDIxMDg5LDIxMDg0LDMzOTY3LDIxMTE3LDIxMTIyLDIxMTIxLDIxMTM2LDIxMTM5LDIwODY2LDMyNTk2LDIwMTU1LDIwMTYzLDIwMTY5LDIwMTYyLDIwMjAwLDIwMTkzLDIwMjAzLDIwMTkwLDIwMjUxLDIw'@; put 'MjExLDIwMjU4LDIwMzI0LDIwMjEzLDIwMjYxLDIwMjYzLDIwMjMzLDIwMjY3LDIwMzE4LDIwMzI3LDI1OTEyLDIwMzE0LDIwMzE3LDM2MDE0LDM2MDE1LDM2MDE2LDM2MDE3LDM2MDE4LDM2MDE5LDM2MDIwLDM2MDIxLDM2MDIyLDM2MDIzLDM2MDI0LDM2MDI1LDM2MDI2LDM2MDI3LDM2MDI4'@; put 'LDM2MDI5LDM2MDMwLDM2MDMxLDM2MDMyLDM2MDMzLDM2MDM0LDM2MDM1LDM2MDM2LDM2MDM3LDM2MDM4LDM2MDM5LDM2MDQwLDM2MDQxLDM2MDQyLDM2MDQzLDM2MDQ0LDM2MDQ1LDM2MDQ2LDM2MDQ3LDM2MDQ4LDM2MDQ5LDM2MDUwLDM2MDUxLDM2MDUyLDM2MDUzLDM2MDU0LDM2MDU1LDM2'@; put 'MDU2LDM2MDU3LDM2MDU4LDM2MDU5LDM2MDYwLDM2MDYxLDM2MDYyLDM2MDYzLDM2MDY0LDM2MDY1LDM2MDY2LDM2MDY3LDM2MDY4LDM2MDY5LDM2MDcwLDM2MDcxLDM2MDcyLDM2MDczLDM2MDc0LDM2MDc1LDM2MDc2LDM2MDc3LDM2MDc4LDM2MDc5LDM2MDgwLDM2MDgxLDM2MDgyLDM2MDgz'@; put 'LDM2MDg0LDM2MDg1LDM2MDg2LDM2MDg3LDM2MDg4LDM2MDg5LDM2MDkwLDM2MDkxLDM2MDkyLDM2MDkzLDM2MDk0LDM2MDk1LDM2MDk2LDM2MDk3LDM2MDk4LDM2MDk5LDM2MTAwLDM2MTAxLDM2MTAyLDM2MTAzLDM2MTA0LDM2MTA1LDM2MTA2LDM2MTA3LDM2MTA4LDM2MTA5LDIwMzE5LDIw'@; put 'MzExLDIwMjc0LDIwMjg1LDIwMzQyLDIwMzQwLDIwMzY5LDIwMzYxLDIwMzU1LDIwMzY3LDIwMzUwLDIwMzQ3LDIwMzk0LDIwMzQ4LDIwMzk2LDIwMzcyLDIwNDU0LDIwNDU2LDIwNDU4LDIwNDIxLDIwNDQyLDIwNDUxLDIwNDQ0LDIwNDMzLDIwNDQ3LDIwNDcyLDIwNTIxLDIwNTU2LDIwNDY3'@; put 'LDIwNTI0LDIwNDk1LDIwNTI2LDIwNTI1LDIwNDc4LDIwNTA4LDIwNDkyLDIwNTE3LDIwNTIwLDIwNjA2LDIwNTQ3LDIwNTY1LDIwNTUyLDIwNTU4LDIwNTg4LDIwNjAzLDIwNjQ1LDIwNjQ3LDIwNjQ5LDIwNjY2LDIwNjk0LDIwNzQyLDIwNzE3LDIwNzE2LDIwNzEwLDIwNzE4LDIwNzQzLDIw'@; put 'NzQ3LDIwMTg5LDI3NzA5LDIwMzEyLDIwMzI1LDIwNDMwLDQwODY0LDI3NzE4LDMxODYwLDIwODQ2LDI0MDYxLDQwNjQ5LDM5MzIwLDIwODY1LDIyODA0LDIxMjQxLDIxMjYxLDM1MzM1LDIxMjY0LDIwOTcxLDIyODA5LDIwODIxLDIwMTI4LDIwODIyLDIwMTQ3LDM0OTI2LDM0OTgwLDIwMTQ5'@; put 'LDMzMDQ0LDM1MDI2LDMxMTA0LDIzMzQ4LDM0ODE5LDMyNjk2LDIwOTA3LDIwOTEzLDIwOTI1LDIwOTI0LDM2MTEwLDM2MTExLDM2MTEyLDM2MTEzLDM2MTE0LDM2MTE1LDM2MTE2LDM2MTE3LDM2MTE4LDM2MTE5LDM2MTIwLDM2MTIxLDM2MTIyLDM2MTIzLDM2MTI0LDM2MTI4LDM2MTc3LDM2'@; put 'MTc4LDM2MTgzLDM2MTkxLDM2MTk3LDM2MjAwLDM2MjAxLDM2MjAyLDM2MjA0LDM2MjA2LDM2MjA3LDM2MjA5LDM2MjEwLDM2MjE2LDM2MjE3LDM2MjE4LDM2MjE5LDM2MjIwLDM2MjIxLDM2MjIyLDM2MjIzLDM2MjI0LDM2MjI2LDM2MjI3LDM2MjMwLDM2MjMxLDM2MjMyLDM2MjMzLDM2MjM2'@; put 'LDM2MjM3LDM2MjM4LDM2MjM5LDM2MjQwLDM2MjQyLDM2MjQzLDM2MjQ1LDM2MjQ2LDM2MjQ3LDM2MjQ4LDM2MjQ5LDM2MjUwLDM2MjUxLDM2MjUyLDM2MjUzLDM2MjU0LDM2MjU2LDM2MjU3LDM2MjU4LDM2MjYwLDM2MjYxLDM2MjYyLDM2MjYzLDM2MjY0LDM2MjY1LDM2MjY2LDM2MjY3LDM2'@; put 'MjY4LDM2MjY5LDM2MjcwLDM2MjcxLDM2MjcyLDM2Mjc0LDM2Mjc4LDM2Mjc5LDM2MjgxLDM2MjgzLDM2Mjg1LDM2Mjg4LDM2Mjg5LDM2MjkwLDM2MjkzLDM2Mjk1LDM2Mjk2LDM2Mjk3LDM2Mjk4LDM2MzAxLDM2MzA0LDM2MzA2LDM2MzA3LDM2MzA4LDIwOTM1LDIwODg2LDIwODk4LDIwOTAx'@; put 'LDM1NzQ0LDM1NzUwLDM1NzUxLDM1NzU0LDM1NzY0LDM1NzY1LDM1NzY3LDM1Nzc4LDM1Nzc5LDM1Nzg3LDM1NzkxLDM1NzkwLDM1Nzk0LDM1Nzk1LDM1Nzk2LDM1Nzk4LDM1ODAwLDM1ODAxLDM1ODA0LDM1ODA3LDM1ODA4LDM1ODEyLDM1ODE2LDM1ODE3LDM1ODIyLDM1ODI0LDM1ODI3LDM1'@; put 'ODMwLDM1ODMzLDM1ODM2LDM1ODM5LDM1ODQwLDM1ODQyLDM1ODQ0LDM1ODQ3LDM1ODUyLDM1ODU1LDM1ODU3LDM1ODU4LDM1ODYwLDM1ODYxLDM1ODYyLDM1ODY1LDM1ODY3LDM1ODY0LDM1ODY5LDM1ODcxLDM1ODcyLDM1ODczLDM1ODc3LDM1ODc5LDM1ODgyLDM1ODgzLDM1ODg2LDM1ODg3'@; put 'LDM1ODkwLDM1ODkxLDM1ODkzLDM1ODk0LDIxMzUzLDIxMzcwLDM4NDI5LDM4NDM0LDM4NDMzLDM4NDQ5LDM4NDQyLDM4NDYxLDM4NDYwLDM4NDY2LDM4NDczLDM4NDg0LDM4NDk1LDM4NTAzLDM4NTA4LDM4NTE0LDM4NTE2LDM4NTM2LDM4NTQxLDM4NTUxLDM4NTc2LDM3MDE1LDM3MDE5LDM3'@; put 'MDIxLDM3MDE3LDM3MDM2LDM3MDI1LDM3MDQ0LDM3MDQzLDM3MDQ2LDM3MDUwLDM2MzA5LDM2MzEyLDM2MzEzLDM2MzE2LDM2MzIwLDM2MzIxLDM2MzIyLDM2MzI1LDM2MzI2LDM2MzI3LDM2MzI5LDM2MzMzLDM2MzM0LDM2MzM2LDM2MzM3LDM2MzM4LDM2MzQwLDM2MzQyLDM2MzQ4LDM2MzUw'@; put 'LDM2MzUxLDM2MzUyLDM2MzUzLDM2MzU0LDM2MzU1LDM2MzU2LDM2MzU4LDM2MzU5LDM2MzYwLDM2MzYzLDM2MzY1LDM2MzY2LDM2MzY4LDM2MzY5LDM2MzcwLDM2MzcxLDM2MzczLDM2Mzc0LDM2Mzc1LDM2Mzc2LDM2Mzc3LDM2Mzc4LDM2Mzc5LDM2MzgwLDM2Mzg0LDM2Mzg1LDM2Mzg4LDM2'@; put 'Mzg5LDM2MzkwLDM2MzkxLDM2MzkyLDM2Mzk1LDM2Mzk3LDM2NDAwLDM2NDAyLDM2NDAzLDM2NDA0LDM2NDA2LDM2NDA3LDM2NDA4LDM2NDExLDM2NDEyLDM2NDE0LDM2NDE1LDM2NDE5LDM2NDIxLDM2NDIyLDM2NDI4LDM2NDI5LDM2NDMwLDM2NDMxLDM2NDMyLDM2NDM1LDM2NDM2LDM2NDM3'@; put 'LDM2NDM4LDM2NDM5LDM2NDQwLDM2NDQyLDM2NDQzLDM2NDQ0LDM2NDQ1LDM2NDQ2LDM2NDQ3LDM2NDQ4LDM2NDQ5LDM2NDUwLDM2NDUxLDM2NDUyLDM2NDUzLDM2NDU1LDM2NDU2LDM2NDU4LDM2NDU5LDM2NDYyLDM2NDY1LDM3MDQ4LDM3MDQwLDM3MDcxLDM3MDYxLDM3MDU0LDM3MDcyLDM3'@; put 'MDYwLDM3MDYzLDM3MDc1LDM3MDk0LDM3MDkwLDM3MDg0LDM3MDc5LDM3MDgzLDM3MDk5LDM3MTAzLDM3MTE4LDM3MTI0LDM3MTU0LDM3MTUwLDM3MTU1LDM3MTY5LDM3MTY3LDM3MTc3LDM3MTg3LDM3MTkwLDIxMDA1LDIyODUwLDIxMTU0LDIxMTY0LDIxMTY1LDIxMTgyLDIxNzU5LDIxMjAw'@; put 'LDIxMjA2LDIxMjMyLDIxNDcxLDI5MTY2LDMwNjY5LDI0MzA4LDIwOTgxLDIwOTg4LDM5NzI3LDIxNDMwLDI0MzIxLDMwMDQyLDI0MDQ3LDIyMzQ4LDIyNDQxLDIyNDMzLDIyNjU0LDIyNzE2LDIyNzI1LDIyNzM3LDIyMzEzLDIyMzE2LDIyMzE0LDIyMzIzLDIyMzI5LDIyMzE4LDIyMzE5LDIy'@; put 'MzY0LDIyMzMxLDIyMzM4LDIyMzc3LDIyNDA1LDIyMzc5LDIyNDA2LDIyMzk2LDIyMzk1LDIyMzc2LDIyMzgxLDIyMzkwLDIyMzg3LDIyNDQ1LDIyNDM2LDIyNDEyLDIyNDUwLDIyNDc5LDIyNDM5LDIyNDUyLDIyNDE5LDIyNDMyLDIyNDg1LDIyNDg4LDIyNDkwLDIyNDg5LDIyNDgyLDIyNDU2'@; put 'LDIyNTE2LDIyNTExLDIyNTIwLDIyNTAwLDIyNDkzLDM2NDY3LDM2NDY5LDM2NDcxLDM2NDcyLDM2NDczLDM2NDc0LDM2NDc1LDM2NDc3LDM2NDc4LDM2NDgwLDM2NDgyLDM2NDgzLDM2NDg0LDM2NDg2LDM2NDg4LDM2NDg5LDM2NDkwLDM2NDkxLDM2NDkyLDM2NDkzLDM2NDk0LDM2NDk3LDM2'@; put 'NDk4LDM2NDk5LDM2NTAxLDM2NTAyLDM2NTAzLDM2NTA0LDM2NTA1LDM2NTA2LDM2NTA3LDM2NTA5LDM2NTExLDM2NTEyLDM2NTEzLDM2NTE0LDM2NTE1LDM2NTE2LDM2NTE3LDM2NTE4LDM2NTE5LDM2NTIwLDM2NTIxLDM2NTIyLDM2NTI1LDM2NTI2LDM2NTI4LDM2NTI5LDM2NTMxLDM2NTMy'@; put 'LDM2NTMzLDM2NTM0LDM2NTM1LDM2NTM2LDM2NTM3LDM2NTM5LDM2NTQwLDM2NTQxLDM2NTQyLDM2NTQzLDM2NTQ0LDM2NTQ1LDM2NTQ2LDM2NTQ3LDM2NTQ4LDM2NTQ5LDM2NTUwLDM2NTUxLDM2NTUyLDM2NTUzLDM2NTU0LDM2NTU1LDM2NTU2LDM2NTU3LDM2NTU5LDM2NTYwLDM2NTYxLDM2'@; put 'NTYyLDM2NTYzLDM2NTY0LDM2NTY1LDM2NTY2LDM2NTY3LDM2NTY4LDM2NTY5LDM2NTcwLDM2NTcxLDM2NTcyLDM2NTczLDM2NTc0LDM2NTc1LDM2NTc2LDM2NTc3LDM2NTc4LDM2NTc5LDM2NTgwLDIyNTM5LDIyNTQxLDIyNTI1LDIyNTA5LDIyNTI4LDIyNTU4LDIyNTUzLDIyNTk2LDIyNTYw'@; put 'LDIyNjI5LDIyNjM2LDIyNjU3LDIyNjY1LDIyNjgyLDIyNjU2LDM5MzM2LDQwNzI5LDI1MDg3LDMzNDAxLDMzNDA1LDMzNDA3LDMzNDIzLDMzNDE4LDMzNDQ4LDMzNDEyLDMzNDIyLDMzNDI1LDMzNDMxLDMzNDMzLDMzNDUxLDMzNDY0LDMzNDcwLDMzNDU2LDMzNDgwLDMzNDgyLDMzNTA3LDMz'@; put 'NDMyLDMzNDYzLDMzNDU0LDMzNDgzLDMzNDg0LDMzNDczLDMzNDQ5LDMzNDYwLDMzNDQxLDMzNDUwLDMzNDM5LDMzNDc2LDMzNDg2LDMzNDQ0LDMzNTA1LDMzNTQ1LDMzNTI3LDMzNTA4LDMzNTUxLDMzNTQzLDMzNTAwLDMzNTI0LDMzNDkwLDMzNDk2LDMzNTQ4LDMzNTMxLDMzNDkxLDMzNTUz'@; put 'LDMzNTYyLDMzNTQyLDMzNTU2LDMzNTU3LDMzNTA0LDMzNDkzLDMzNTY0LDMzNjE3LDMzNjI3LDMzNjI4LDMzNTQ0LDMzNjgyLDMzNTk2LDMzNTg4LDMzNTg1LDMzNjkxLDMzNjMwLDMzNTgzLDMzNjE1LDMzNjA3LDMzNjAzLDMzNjMxLDMzNjAwLDMzNTU5LDMzNjMyLDMzNTgxLDMzNTk0LDMz'@; put 'NTg3LDMzNjM4LDMzNjM3LDM2NTgxLDM2NTgyLDM2NTgzLDM2NTg0LDM2NTg1LDM2NTg2LDM2NTg3LDM2NTg4LDM2NTg5LDM2NTkwLDM2NTkxLDM2NTkyLDM2NTkzLDM2NTk0LDM2NTk1LDM2NTk2LDM2NTk3LDM2NTk4LDM2NTk5LDM2NjAwLDM2NjAxLDM2NjAyLDM2NjAzLDM2NjA0LDM2NjA1'@; put 'LDM2NjA2LDM2NjA3LDM2NjA4LDM2NjA5LDM2NjEwLDM2NjExLDM2NjEyLDM2NjEzLDM2NjE0LDM2NjE1LDM2NjE2LDM2NjE3LDM2NjE4LDM2NjE5LDM2NjIwLDM2NjIxLDM2NjIyLDM2NjIzLDM2NjI0LDM2NjI1LDM2NjI2LDM2NjI3LDM2NjI4LDM2NjI5LDM2NjMwLDM2NjMxLDM2NjMyLDM2'@; put 'NjMzLDM2NjM0LDM2NjM1LDM2NjM2LDM2NjM3LDM2NjM4LDM2NjM5LDM2NjQwLDM2NjQxLDM2NjQyLDM2NjQzLDM2NjQ0LDM2NjQ1LDM2NjQ2LDM2NjQ3LDM2NjQ4LDM2NjQ5LDM2NjUwLDM2NjUxLDM2NjUyLDM2NjUzLDM2NjU0LDM2NjU1LDM2NjU2LDM2NjU3LDM2NjU4LDM2NjU5LDM2NjYw'@; put 'LDM2NjYxLDM2NjYyLDM2NjYzLDM2NjY0LDM2NjY1LDM2NjY2LDM2NjY3LDM2NjY4LDM2NjY5LDM2NjcwLDM2NjcxLDM2NjcyLDM2NjczLDM2Njc0LDM2Njc1LDM2Njc2LDMzNjQwLDMzNTYzLDMzNjQxLDMzNjQ0LDMzNjQyLDMzNjQ1LDMzNjQ2LDMzNzEyLDMzNjU2LDMzNzE1LDMzNzE2LDMz'@; put 'Njk2LDMzNzA2LDMzNjgzLDMzNjkyLDMzNjY5LDMzNjYwLDMzNzE4LDMzNzA1LDMzNjYxLDMzNzIwLDMzNjU5LDMzNjg4LDMzNjk0LDMzNzA0LDMzNzIyLDMzNzI0LDMzNzI5LDMzNzkzLDMzNzY1LDMzNzUyLDIyNTM1LDMzODE2LDMzODAzLDMzNzU3LDMzNzg5LDMzNzUwLDMzODIwLDMzODQ4'@; put 'LDMzODA5LDMzNzk4LDMzNzQ4LDMzNzU5LDMzODA3LDMzNzk1LDMzNzg0LDMzNzg1LDMzNzcwLDMzNzMzLDMzNzI4LDMzODMwLDMzNzc2LDMzNzYxLDMzODg0LDMzODczLDMzODgyLDMzODgxLDMzOTA3LDMzOTI3LDMzOTI4LDMzOTE0LDMzOTI5LDMzOTEyLDMzODUyLDMzODYyLDMzODk3LDMz'@; put 'OTEwLDMzOTMyLDMzOTM0LDMzODQxLDMzOTAxLDMzOTg1LDMzOTk3LDM0ZTMsMzQwMjIsMzM5ODEsMzQwMDMsMzM5OTQsMzM5ODMsMzM5NzgsMzQwMTYsMzM5NTMsMzM5NzcsMzM5NzIsMzM5NDMsMzQwMjEsMzQwMTksMzQwNjAsMjk5NjUsMzQxMDQsMzQwMzIsMzQxMDUsMzQwNzksMzQxMDYs'@; put 'MzY2NzcsMzY2NzgsMzY2NzksMzY2ODAsMzY2ODEsMzY2ODIsMzY2ODMsMzY2ODQsMzY2ODUsMzY2ODYsMzY2ODcsMzY2ODgsMzY2ODksMzY2OTAsMzY2OTEsMzY2OTIsMzY2OTMsMzY2OTQsMzY2OTUsMzY2OTYsMzY2OTcsMzY2OTgsMzY2OTksMzY3MDAsMzY3MDEsMzY3MDIsMzY3MDMsMzY3'@; put 'MDQsMzY3MDUsMzY3MDYsMzY3MDcsMzY3MDgsMzY3MDksMzY3MTQsMzY3MzYsMzY3NDgsMzY3NTQsMzY3NjUsMzY3NjgsMzY3NjksMzY3NzAsMzY3NzIsMzY3NzMsMzY3NzQsMzY3NzUsMzY3NzgsMzY3ODAsMzY3ODEsMzY3ODIsMzY3ODMsMzY3ODYsMzY3ODcsMzY3ODgsMzY3ODksMzY3OTEs'@; put 'MzY3OTIsMzY3OTQsMzY3OTUsMzY3OTYsMzY3OTksMzY4MDAsMzY4MDMsMzY4MDYsMzY4MDksMzY4MTAsMzY4MTEsMzY4MTIsMzY4MTMsMzY4MTUsMzY4MTgsMzY4MjIsMzY4MjMsMzY4MjYsMzY4MzIsMzY4MzMsMzY4MzUsMzY4MzksMzY4NDQsMzY4NDcsMzY4NDksMzY4NTAsMzY4NTIsMzY4'@; put 'NTMsMzY4NTQsMzY4NTgsMzY4NTksMzY4NjAsMzY4NjIsMzY4NjMsMzY4NzEsMzY4NzIsMzY4NzYsMzY4NzgsMzY4ODMsMzY4ODUsMzY4ODgsMzQxMzQsMzQxMDcsMzQwNDcsMzQwNDQsMzQxMzcsMzQxMjAsMzQxNTIsMzQxNDgsMzQxNDIsMzQxNzAsMzA2MjYsMzQxMTUsMzQxNjIsMzQxNzEs'@; put 'MzQyMTIsMzQyMTYsMzQxODMsMzQxOTEsMzQxNjksMzQyMjIsMzQyMDQsMzQxODEsMzQyMzMsMzQyMzEsMzQyMjQsMzQyNTksMzQyNDEsMzQyNjgsMzQzMDMsMzQzNDMsMzQzMDksMzQzNDUsMzQzMjYsMzQzNjQsMjQzMTgsMjQzMjgsMjI4NDQsMjI4NDksMzI4MjMsMjI4NjksMjI4NzQsMjI4'@; put 'NzIsMjEyNjMsMjM1ODYsMjM1ODksMjM1OTYsMjM2MDQsMjUxNjQsMjUxOTQsMjUyNDcsMjUyNzUsMjUyOTAsMjUzMDYsMjUzMDMsMjUzMjYsMjUzNzgsMjUzMzQsMjU0MDEsMjU0MTksMjU0MTEsMjU1MTcsMjU1OTAsMjU0NTcsMjU0NjYsMjU0ODYsMjU1MjQsMjU0NTMsMjU1MTYsMjU0ODIs'@; put 'MjU0NDksMjU1MTgsMjU1MzIsMjU1ODYsMjU1OTIsMjU1NjgsMjU1OTksMjU1NDAsMjU1NjYsMjU1NTAsMjU2ODIsMjU1NDIsMjU1MzQsMjU2NjksMjU2NjUsMjU2MTEsMjU2MjcsMjU2MzIsMjU2MTIsMjU2MzgsMjU2MzMsMjU2OTQsMjU3MzIsMjU3MDksMjU3NTAsMzY4ODksMzY4OTIsMzY4'@; put 'OTksMzY5MDAsMzY5MDEsMzY5MDMsMzY5MDQsMzY5MDUsMzY5MDYsMzY5MDcsMzY5MDgsMzY5MTIsMzY5MTMsMzY5MTQsMzY5MTUsMzY5MTYsMzY5MTksMzY5MjEsMzY5MjIsMzY5MjUsMzY5MjcsMzY5MjgsMzY5MzEsMzY5MzMsMzY5MzQsMzY5MzYsMzY5MzcsMzY5MzgsMzY5MzksMzY5NDAs'@; put 'MzY5NDIsMzY5NDgsMzY5NDksMzY5NTAsMzY5NTMsMzY5NTQsMzY5NTYsMzY5NTcsMzY5NTgsMzY5NTksMzY5NjAsMzY5NjEsMzY5NjQsMzY5NjYsMzY5NjcsMzY5NjksMzY5NzAsMzY5NzEsMzY5NzIsMzY5NzUsMzY5NzYsMzY5NzcsMzY5NzgsMzY5NzksMzY5ODIsMzY5ODMsMzY5ODQsMzY5'@; put 'ODUsMzY5ODYsMzY5ODcsMzY5ODgsMzY5OTAsMzY5OTMsMzY5OTYsMzY5OTcsMzY5OTgsMzY5OTksMzcwMDEsMzcwMDIsMzcwMDQsMzcwMDUsMzcwMDYsMzcwMDcsMzcwMDgsMzcwMTAsMzcwMTIsMzcwMTQsMzcwMTYsMzcwMTgsMzcwMjAsMzcwMjIsMzcwMjMsMzcwMjQsMzcwMjgsMzcwMjks'@; put 'MzcwMzEsMzcwMzIsMzcwMzMsMzcwMzUsMzcwMzcsMzcwNDIsMzcwNDcsMzcwNTIsMzcwNTMsMzcwNTUsMzcwNTYsMjU3MjIsMjU3ODMsMjU3ODQsMjU3NTMsMjU3ODYsMjU3OTIsMjU4MDgsMjU4MTUsMjU4MjgsMjU4MjYsMjU4NjUsMjU4OTMsMjU5MDIsMjQzMzEsMjQ1MzAsMjk5NzcsMjQz'@; put 'MzcsMjEzNDMsMjE0ODksMjE1MDEsMjE0ODEsMjE0ODAsMjE0OTksMjE1MjIsMjE1MjYsMjE1MTAsMjE1NzksMjE1ODYsMjE1ODcsMjE1ODgsMjE1OTAsMjE1NzEsMjE1MzcsMjE1OTEsMjE1OTMsMjE1MzksMjE1NTQsMjE2MzQsMjE2NTIsMjE2MjMsMjE2MTcsMjE2MDQsMjE2NTgsMjE2NTks'@; put 'MjE2MzYsMjE2MjIsMjE2MDYsMjE2NjEsMjE3MTIsMjE2NzcsMjE2OTgsMjE2ODQsMjE3MTQsMjE2NzEsMjE2NzAsMjE3MTUsMjE3MTYsMjE2MTgsMjE2NjcsMjE3MTcsMjE2OTEsMjE2OTUsMjE3MDgsMjE3MjEsMjE3MjIsMjE3MjQsMjE2NzMsMjE2NzQsMjE2NjgsMjE3MjUsMjE3MTEsMjE3'@; put 'MjYsMjE3ODcsMjE3MzUsMjE3OTIsMjE3NTcsMjE3ODAsMjE3NDcsMjE3OTQsMjE3OTUsMjE3NzUsMjE3NzcsMjE3OTksMjE4MDIsMjE4NjMsMjE5MDMsMjE5NDEsMjE4MzMsMjE4NjksMjE4MjUsMjE4NDUsMjE4MjMsMjE4NDAsMjE4MjAsMzcwNTgsMzcwNTksMzcwNjIsMzcwNjQsMzcwNjUs'@; put 'MzcwNjcsMzcwNjgsMzcwNjksMzcwNzQsMzcwNzYsMzcwNzcsMzcwNzgsMzcwODAsMzcwODEsMzcwODIsMzcwODYsMzcwODcsMzcwODgsMzcwOTEsMzcwOTIsMzcwOTMsMzcwOTcsMzcwOTgsMzcxMDAsMzcxMDIsMzcxMDQsMzcxMDUsMzcxMDYsMzcxMDcsMzcxMDksMzcxMTAsMzcxMTEsMzcx'@; put 'MTMsMzcxMTQsMzcxMTUsMzcxMTYsMzcxMTksMzcxMjAsMzcxMjEsMzcxMjMsMzcxMjUsMzcxMjYsMzcxMjcsMzcxMjgsMzcxMjksMzcxMzAsMzcxMzEsMzcxMzIsMzcxMzMsMzcxMzQsMzcxMzUsMzcxMzYsMzcxMzcsMzcxMzgsMzcxMzksMzcxNDAsMzcxNDEsMzcxNDIsMzcxNDMsMzcxNDQs'@; put 'MzcxNDYsMzcxNDcsMzcxNDgsMzcxNDksMzcxNTEsMzcxNTIsMzcxNTMsMzcxNTYsMzcxNTcsMzcxNTgsMzcxNTksMzcxNjAsMzcxNjEsMzcxNjIsMzcxNjMsMzcxNjQsMzcxNjUsMzcxNjYsMzcxNjgsMzcxNzAsMzcxNzEsMzcxNzIsMzcxNzMsMzcxNzQsMzcxNzUsMzcxNzYsMzcxNzgsMzcx'@; put 'NzksMzcxODAsMzcxODEsMzcxODIsMzcxODMsMzcxODQsMzcxODUsMzcxODYsMzcxODgsMjE4MTUsMjE4NDYsMjE4NzcsMjE4NzgsMjE4NzksMjE4MTEsMjE4MDgsMjE4NTIsMjE4OTksMjE5NzAsMjE4OTEsMjE5MzcsMjE5NDUsMjE4OTYsMjE4ODksMjE5MTksMjE4ODYsMjE5NzQsMjE5MDUs'@; put 'MjE4ODMsMjE5ODMsMjE5NDksMjE5NTAsMjE5MDgsMjE5MTMsMjE5OTQsMjIwMDcsMjE5NjEsMjIwNDcsMjE5NjksMjE5OTUsMjE5OTYsMjE5NzIsMjE5OTAsMjE5ODEsMjE5NTYsMjE5OTksMjE5ODksMjIwMDIsMjIwMDMsMjE5NjQsMjE5NjUsMjE5OTIsMjIwMDUsMjE5ODgsMzY3NTYsMjIw'@; put 'NDYsMjIwMjQsMjIwMjgsMjIwMTcsMjIwNTIsMjIwNTEsMjIwMTQsMjIwMTYsMjIwNTUsMjIwNjEsMjIxMDQsMjIwNzMsMjIxMDMsMjIwNjAsMjIwOTMsMjIxMTQsMjIxMDUsMjIxMDgsMjIwOTIsMjIxMDAsMjIxNTAsMjIxMTYsMjIxMjksMjIxMjMsMjIxMzksMjIxNDAsMjIxNDksMjIxNjMs'@; put 'MjIxOTEsMjIyMjgsMjIyMzEsMjIyMzcsMjIyNDEsMjIyNjEsMjIyNTEsMjIyNjUsMjIyNzEsMjIyNzYsMjIyODIsMjIyODEsMjIzMDAsMjQwNzksMjQwODksMjQwODQsMjQwODEsMjQxMTMsMjQxMjMsMjQxMjQsMzcxODksMzcxOTEsMzcxOTIsMzcyMDEsMzcyMDMsMzcyMDQsMzcyMDUsMzcy'@; put 'MDYsMzcyMDgsMzcyMDksMzcyMTEsMzcyMTIsMzcyMTUsMzcyMTYsMzcyMjIsMzcyMjMsMzcyMjQsMzcyMjcsMzcyMjksMzcyMzUsMzcyNDIsMzcyNDMsMzcyNDQsMzcyNDgsMzcyNDksMzcyNTAsMzcyNTEsMzcyNTIsMzcyNTQsMzcyNTYsMzcyNTgsMzcyNjIsMzcyNjMsMzcyNjcsMzcyNjgs'@; put 'MzcyNjksMzcyNzAsMzcyNzEsMzcyNzIsMzcyNzMsMzcyNzYsMzcyNzcsMzcyNzgsMzcyNzksMzcyODAsMzcyODEsMzcyODQsMzcyODUsMzcyODYsMzcyODcsMzcyODgsMzcyODksMzcyOTEsMzcyOTIsMzcyOTYsMzcyOTcsMzcyOTgsMzcyOTksMzczMDIsMzczMDMsMzczMDQsMzczMDUsMzcz'@; put 'MDcsMzczMDgsMzczMDksMzczMTAsMzczMTEsMzczMTIsMzczMTMsMzczMTQsMzczMTUsMzczMTYsMzczMTcsMzczMTgsMzczMjAsMzczMjMsMzczMjgsMzczMzAsMzczMzEsMzczMzIsMzczMzMsMzczMzQsMzczMzUsMzczMzYsMzczMzcsMzczMzgsMzczMzksMzczNDEsMzczNDIsMzczNDMs'@; put 'MzczNDQsMzczNDUsMzczNDYsMzczNDcsMzczNDgsMzczNDksMjQxMTksMjQxMzIsMjQxNDgsMjQxNTUsMjQxNTgsMjQxNjEsMjM2OTIsMjM2NzQsMjM2OTMsMjM2OTYsMjM3MDIsMjM2ODgsMjM3MDQsMjM3MDUsMjM2OTcsMjM3MDYsMjM3MDgsMjM3MzMsMjM3MTQsMjM3NDEsMjM3MjQsMjM3'@; put 'MjMsMjM3MjksMjM3MTUsMjM3NDUsMjM3MzUsMjM3NDgsMjM3NjIsMjM3ODAsMjM3NTUsMjM3ODEsMjM4MTAsMjM4MTEsMjM4NDcsMjM4NDYsMjM4NTQsMjM4NDQsMjM4MzgsMjM4MTQsMjM4MzUsMjM4OTYsMjM4NzAsMjM4NjAsMjM4NjksMjM5MTYsMjM4OTksMjM5MTksMjM5MDEsMjM5MTUs'@; put 'MjM4ODMsMjM4ODIsMjM5MTMsMjM5MjQsMjM5MzgsMjM5NjEsMjM5NjUsMzU5NTUsMjM5OTEsMjQwMDUsMjQ0MzUsMjQ0MzksMjQ0NTAsMjQ0NTUsMjQ0NTcsMjQ0NjAsMjQ0NjksMjQ0NzMsMjQ0NzYsMjQ0ODgsMjQ0OTMsMjQ1MDEsMjQ1MDgsMzQ5MTQsMjQ0MTcsMjkzNTcsMjkzNjAsMjkz'@; put 'NjQsMjkzNjcsMjkzNjgsMjkzNzksMjkzNzcsMjkzOTAsMjkzODksMjkzOTQsMjk0MTYsMjk0MjMsMjk0MTcsMjk0MjYsMjk0MjgsMjk0MzEsMjk0NDEsMjk0MjcsMjk0NDMsMjk0MzQsMzczNTAsMzczNTEsMzczNTIsMzczNTMsMzczNTQsMzczNTUsMzczNTYsMzczNTcsMzczNTgsMzczNTks'@; put 'MzczNjAsMzczNjEsMzczNjIsMzczNjMsMzczNjQsMzczNjUsMzczNjYsMzczNjcsMzczNjgsMzczNjksMzczNzAsMzczNzEsMzczNzIsMzczNzMsMzczNzQsMzczNzUsMzczNzYsMzczNzcsMzczNzgsMzczNzksMzczODAsMzczODEsMzczODIsMzczODMsMzczODQsMzczODUsMzczODYsMzcz'@; put 'ODcsMzczODgsMzczODksMzczOTAsMzczOTEsMzczOTIsMzczOTMsMzczOTQsMzczOTUsMzczOTYsMzczOTcsMzczOTgsMzczOTksMzc0MDAsMzc0MDEsMzc0MDIsMzc0MDMsMzc0MDQsMzc0MDUsMzc0MDYsMzc0MDcsMzc0MDgsMzc0MDksMzc0MTAsMzc0MTEsMzc0MTIsMzc0MTMsMzc0MTQs'@; put 'Mzc0MTUsMzc0MTYsMzc0MTcsMzc0MTgsMzc0MTksMzc0MjAsMzc0MjEsMzc0MjIsMzc0MjMsMzc0MjQsMzc0MjUsMzc0MjYsMzc0MjcsMzc0MjgsMzc0MjksMzc0MzAsMzc0MzEsMzc0MzIsMzc0MzMsMzc0MzQsMzc0MzUsMzc0MzYsMzc0MzcsMzc0MzgsMzc0MzksMzc0NDAsMzc0NDEsMzc0'@; put 'NDIsMzc0NDMsMzc0NDQsMzc0NDUsMjk0MzUsMjk0NjMsMjk0NTksMjk0NzMsMjk0NTAsMjk0NzAsMjk0NjksMjk0NjEsMjk0NzQsMjk0OTcsMjk0NzcsMjk0ODQsMjk0OTYsMjk0ODksMjk1MjAsMjk1MTcsMjk1MjcsMjk1MzYsMjk1NDgsMjk1NTEsMjk1NjYsMzMzMDcsMjI4MjEsMzkxNDMs'@; put 'MjI4MjAsMjI3ODYsMzkyNjcsMzkyNzEsMzkyNzIsMzkyNzMsMzkyNzQsMzkyNzUsMzkyNzYsMzkyODQsMzkyODcsMzkyOTMsMzkyOTYsMzkzMDAsMzkzMDMsMzkzMDYsMzkzMDksMzkzMTIsMzkzMTMsMzkzMTUsMzkzMTYsMzkzMTcsMjQxOTIsMjQyMDksMjQyMDMsMjQyMTQsMjQyMjksMjQy'@; put 'MjQsMjQyNDksMjQyNDUsMjQyNTQsMjQyNDMsMzYxNzksMjQyNzQsMjQyNzMsMjQyODMsMjQyOTYsMjQyOTgsMzMyMTAsMjQ1MTYsMjQ1MjEsMjQ1MzQsMjQ1MjcsMjQ1NzksMjQ1NTgsMjQ1ODAsMjQ1NDUsMjQ1NDgsMjQ1NzQsMjQ1ODEsMjQ1ODIsMjQ1NTQsMjQ1NTcsMjQ1NjgsMjQ2MDEs'@; put 'MjQ2MjksMjQ2MTQsMjQ2MDMsMjQ1OTEsMjQ1ODksMjQ2MTcsMjQ2MTksMjQ1ODYsMjQ2MzksMjQ2MDksMjQ2OTYsMjQ2OTcsMjQ2OTksMjQ2OTgsMjQ2NDIsMzc0NDYsMzc0NDcsMzc0NDgsMzc0NDksMzc0NTAsMzc0NTEsMzc0NTIsMzc0NTMsMzc0NTQsMzc0NTUsMzc0NTYsMzc0NTcsMzc0'@; put 'NTgsMzc0NTksMzc0NjAsMzc0NjEsMzc0NjIsMzc0NjMsMzc0NjQsMzc0NjUsMzc0NjYsMzc0NjcsMzc0NjgsMzc0NjksMzc0NzAsMzc0NzEsMzc0NzIsMzc0NzMsMzc0NzQsMzc0NzUsMzc0NzYsMzc0NzcsMzc0NzgsMzc0NzksMzc0ODAsMzc0ODEsMzc0ODIsMzc0ODMsMzc0ODQsMzc0ODUs'@; put 'Mzc0ODYsMzc0ODcsMzc0ODgsMzc0ODksMzc0OTAsMzc0OTEsMzc0OTMsMzc0OTQsMzc0OTUsMzc0OTYsMzc0OTcsMzc0OTgsMzc0OTksMzc1MDAsMzc1MDEsMzc1MDIsMzc1MDMsMzc1MDQsMzc1MDUsMzc1MDYsMzc1MDcsMzc1MDgsMzc1MDksMzc1MTAsMzc1MTEsMzc1MTIsMzc1MTMsMzc1'@; put 'MTQsMzc1MTUsMzc1MTYsMzc1MTcsMzc1MTksMzc1MjAsMzc1MjEsMzc1MjIsMzc1MjMsMzc1MjQsMzc1MjUsMzc1MjYsMzc1MjcsMzc1MjgsMzc1MjksMzc1MzAsMzc1MzEsMzc1MzIsMzc1MzMsMzc1MzQsMzc1MzUsMzc1MzYsMzc1MzcsMzc1MzgsMzc1MzksMzc1NDAsMzc1NDEsMzc1NDIs'@; put 'Mzc1NDMsMjQ2ODIsMjQ3MDEsMjQ3MjYsMjQ3MzAsMjQ3NDksMjQ3MzMsMjQ3MDcsMjQ3MjIsMjQ3MTYsMjQ3MzEsMjQ4MTIsMjQ3NjMsMjQ3NTMsMjQ3OTcsMjQ3OTIsMjQ3NzQsMjQ3OTQsMjQ3NTYsMjQ4NjQsMjQ4NzAsMjQ4NTMsMjQ4NjcsMjQ4MjAsMjQ4MzIsMjQ4NDYsMjQ4NzUsMjQ5'@; put 'MDYsMjQ5NDksMjUwMDQsMjQ5ODAsMjQ5OTksMjUwMTUsMjUwNDQsMjUwNzcsMjQ1NDEsMzg1NzksMzgzNzcsMzgzNzksMzgzODUsMzgzODcsMzgzODksMzgzOTAsMzgzOTYsMzgzOTgsMzg0MDMsMzg0MDQsMzg0MDYsMzg0MDgsMzg0MTAsMzg0MTEsMzg0MTIsMzg0MTMsMzg0MTUsMzg0MTgs'@; put 'Mzg0MjEsMzg0MjIsMzg0MjMsMzg0MjUsMzg0MjYsMjAwMTIsMjkyNDcsMjUxMDksMjc3MDEsMjc3MzIsMjc3NDAsMjc3MjIsMjc4MTEsMjc3ODEsMjc3OTIsMjc3OTYsMjc3ODgsMjc3NTIsMjc3NTMsMjc3NjQsMjc3NjYsMjc3ODIsMjc4MTcsMjc4NTYsMjc4NjAsMjc4MjEsMjc4OTUsMjc4'@; put 'OTYsMjc4ODksMjc4NjMsMjc4MjYsMjc4NzIsMjc4NjIsMjc4OTgsMjc4ODMsMjc4ODYsMjc4MjUsMjc4NTksMjc4ODcsMjc5MDIsMzc1NDQsMzc1NDUsMzc1NDYsMzc1NDcsMzc1NDgsMzc1NDksMzc1NTEsMzc1NTIsMzc1NTMsMzc1NTQsMzc1NTUsMzc1NTYsMzc1NTcsMzc1NTgsMzc1NTks'@; put 'Mzc1NjAsMzc1NjEsMzc1NjIsMzc1NjMsMzc1NjQsMzc1NjUsMzc1NjYsMzc1NjcsMzc1NjgsMzc1NjksMzc1NzAsMzc1NzEsMzc1NzIsMzc1NzMsMzc1NzQsMzc1NzUsMzc1NzcsMzc1NzgsMzc1NzksMzc1ODAsMzc1ODEsMzc1ODIsMzc1ODMsMzc1ODQsMzc1ODUsMzc1ODYsMzc1ODcsMzc1'@; put 'ODgsMzc1ODksMzc1OTAsMzc1OTEsMzc1OTIsMzc1OTMsMzc1OTQsMzc1OTUsMzc1OTYsMzc1OTcsMzc1OTgsMzc1OTksMzc2MDAsMzc2MDEsMzc2MDIsMzc2MDMsMzc2MDQsMzc2MDUsMzc2MDYsMzc2MDcsMzc2MDgsMzc2MDksMzc2MTAsMzc2MTEsMzc2MTIsMzc2MTMsMzc2MTQsMzc2MTUs'@; put 'Mzc2MTYsMzc2MTcsMzc2MTgsMzc2MTksMzc2MjAsMzc2MjEsMzc2MjIsMzc2MjMsMzc2MjQsMzc2MjUsMzc2MjYsMzc2MjcsMzc2MjgsMzc2MjksMzc2MzAsMzc2MzEsMzc2MzIsMzc2MzMsMzc2MzQsMzc2MzUsMzc2MzYsMzc2MzcsMzc2MzgsMzc2MzksMzc2NDAsMzc2NDEsMjc5NjEsMjc5'@; put 'NDMsMjc5MTYsMjc5NzEsMjc5NzYsMjc5MTEsMjc5MDgsMjc5MjksMjc5MTgsMjc5NDcsMjc5ODEsMjc5NTAsMjc5NTcsMjc5MzAsMjc5ODMsMjc5ODYsMjc5ODgsMjc5NTUsMjgwNDksMjgwMTUsMjgwNjIsMjgwNjQsMjc5OTgsMjgwNTEsMjgwNTIsMjc5OTYsMjhlMywyODAyOCwyODAwMywy'@; put 'ODE4NiwyODEwMywyODEwMSwyODEyNiwyODE3NCwyODA5NSwyODEyOCwyODE3NywyODEzNCwyODEyNSwyODEyMSwyODE4MiwyODA3NSwyODE3MiwyODA3OCwyODIwMywyODI3MCwyODIzOCwyODI2NywyODMzOCwyODI1NSwyODI5NCwyODI0MywyODI0NCwyODIxMCwyODE5NywyODIyOCwyODM4'@; put 'MywyODMzNywyODMxMiwyODM4NCwyODQ2MSwyODM4NiwyODMyNSwyODMyNywyODM0OSwyODM0NywyODM0MywyODM3NSwyODM0MCwyODM2NywyODMwMywyODM1NCwyODMxOSwyODUxNCwyODQ4NiwyODQ4NywyODQ1MiwyODQzNywyODQwOSwyODQ2MywyODQ3MCwyODQ5MSwyODUzMiwyODQ1OCwy'@; put 'ODQyNSwyODQ1NywyODU1MywyODU1NywyODU1NiwyODUzNiwyODUzMCwyODU0MCwyODUzOCwyODYyNSwzNzY0MiwzNzY0MywzNzY0NCwzNzY0NSwzNzY0NiwzNzY0NywzNzY0OCwzNzY0OSwzNzY1MCwzNzY1MSwzNzY1MiwzNzY1MywzNzY1NCwzNzY1NSwzNzY1NiwzNzY1NywzNzY1OCwzNzY1'@; put 'OSwzNzY2MCwzNzY2MSwzNzY2MiwzNzY2MywzNzY2NCwzNzY2NSwzNzY2NiwzNzY2NywzNzY2OCwzNzY2OSwzNzY3MCwzNzY3MSwzNzY3MiwzNzY3MywzNzY3NCwzNzY3NSwzNzY3NiwzNzY3NywzNzY3OCwzNzY3OSwzNzY4MCwzNzY4MSwzNzY4MiwzNzY4MywzNzY4NCwzNzY4NSwzNzY4Niwz'@; put 'NzY4NywzNzY4OCwzNzY4OSwzNzY5MCwzNzY5MSwzNzY5MiwzNzY5MywzNzY5NSwzNzY5NiwzNzY5NywzNzY5OCwzNzY5OSwzNzcwMCwzNzcwMSwzNzcwMiwzNzcwMywzNzcwNCwzNzcwNSwzNzcwNiwzNzcwNywzNzcwOCwzNzcwOSwzNzcxMCwzNzcxMSwzNzcxMiwzNzcxMywzNzcxNCwzNzcx'@; put 'NSwzNzcxNiwzNzcxNywzNzcxOCwzNzcxOSwzNzcyMCwzNzcyMSwzNzcyMiwzNzcyMywzNzcyNCwzNzcyNSwzNzcyNiwzNzcyNywzNzcyOCwzNzcyOSwzNzczMCwzNzczMSwzNzczMiwzNzczMywzNzczNCwzNzczNSwzNzczNiwzNzczNywzNzczOSwyODYxNywyODU4MywyODYwMSwyODU5OCwy'@; put 'ODYxMCwyODY0MSwyODY1NCwyODYzOCwyODY0MCwyODY1NSwyODY5OCwyODcwNywyODY5OSwyODcyOSwyODcyNSwyODc1MSwyODc2NiwyMzQyNCwyMzQyOCwyMzQ0NSwyMzQ0MywyMzQ2MSwyMzQ4MCwyOTk5OSwzOTU4MiwyNTY1MiwyMzUyNCwyMzUzNCwzNTEyMCwyMzUzNiwzNjQyMywzNTU5'@; put 'MSwzNjc5MCwzNjgxOSwzNjgyMSwzNjgzNywzNjg0NiwzNjgzNiwzNjg0MSwzNjgzOCwzNjg1MSwzNjg0MCwzNjg2OSwzNjg2OCwzNjg3NSwzNjkwMiwzNjg4MSwzNjg3NywzNjg4NiwzNjg5NywzNjkxNywzNjkxOCwzNjkwOSwzNjkxMSwzNjkzMiwzNjk0NSwzNjk0NiwzNjk0NCwzNjk2OCwz'@; put 'Njk1MiwzNjk2MiwzNjk1NSwyNjI5NywzNjk4MCwzNjk4OSwzNjk5NCwzN2UzLDM2OTk1LDM3MDAzLDI0NDAwLDI0NDA3LDI0NDA2LDI0NDA4LDIzNjExLDIxNjc1LDIzNjMyLDIzNjQxLDIzNDA5LDIzNjUxLDIzNjU0LDMyNzAwLDI0MzYyLDI0MzYxLDI0MzY1LDMzMzk2LDI0MzgwLDM5NzM5'@; put 'LDIzNjYyLDIyOTEzLDIyOTE1LDIyOTI1LDIyOTUzLDIyOTU0LDIyOTQ3LDM3NzQwLDM3NzQxLDM3NzQyLDM3NzQzLDM3NzQ0LDM3NzQ1LDM3NzQ2LDM3NzQ3LDM3NzQ4LDM3NzQ5LDM3NzUwLDM3NzUxLDM3NzUyLDM3NzUzLDM3NzU0LDM3NzU1LDM3NzU2LDM3NzU3LDM3NzU4LDM3NzU5LDM3'@; put 'NzYwLDM3NzYxLDM3NzYyLDM3NzYzLDM3NzY0LDM3NzY1LDM3NzY2LDM3NzY3LDM3NzY4LDM3NzY5LDM3NzcwLDM3NzcxLDM3NzcyLDM3NzczLDM3Nzc0LDM3Nzc2LDM3Nzc3LDM3Nzc4LDM3Nzc5LDM3NzgwLDM3NzgxLDM3NzgyLDM3NzgzLDM3Nzg0LDM3Nzg1LDM3Nzg2LDM3Nzg3LDM3Nzg4'@; put 'LDM3Nzg5LDM3NzkwLDM3NzkxLDM3NzkyLDM3NzkzLDM3Nzk0LDM3Nzk1LDM3Nzk2LDM3Nzk3LDM3Nzk4LDM3Nzk5LDM3ODAwLDM3ODAxLDM3ODAyLDM3ODAzLDM3ODA0LDM3ODA1LDM3ODA2LDM3ODA3LDM3ODA4LDM3ODA5LDM3ODEwLDM3ODExLDM3ODEyLDM3ODEzLDM3ODE0LDM3ODE1LDM3'@; put 'ODE2LDM3ODE3LDM3ODE4LDM3ODE5LDM3ODIwLDM3ODIxLDM3ODIyLDM3ODIzLDM3ODI0LDM3ODI1LDM3ODI2LDM3ODI3LDM3ODI4LDM3ODI5LDM3ODMwLDM3ODMxLDM3ODMyLDM3ODMzLDM3ODM1LDM3ODM2LDM3ODM3LDIyOTM1LDIyOTg2LDIyOTU1LDIyOTQyLDIyOTQ4LDIyOTk0LDIyOTYy'@; put 'LDIyOTU5LDIyOTk5LDIyOTc0LDIzMDQ1LDIzMDQ2LDIzMDA1LDIzMDQ4LDIzMDExLDIzZTMsMjMwMzMsMjMwNTIsMjMwNDksMjMwOTAsMjMwOTIsMjMwNTcsMjMwNzUsMjMwNTksMjMxMDQsMjMxNDMsMjMxMTQsMjMxMjUsMjMxMDAsMjMxMzgsMjMxNTcsMzMwMDQsMjMyMTAsMjMxOTUsMjMx'@; put 'NTksMjMxNjIsMjMyMzAsMjMyNzUsMjMyMTgsMjMyNTAsMjMyNTIsMjMyMjQsMjMyNjQsMjMyNjcsMjMyODEsMjMyNTQsMjMyNzAsMjMyNTYsMjMyNjAsMjMzMDUsMjMzMTksMjMzMTgsMjMzNDYsMjMzNTEsMjMzNjAsMjM1NzMsMjM1ODAsMjMzODYsMjMzOTcsMjM0MTEsMjMzNzcsMjMzNzks'@; put 'MjMzOTQsMzk1NDEsMzk1NDMsMzk1NDQsMzk1NDYsMzk1NTEsMzk1NDksMzk1NTIsMzk1NTMsMzk1NTcsMzk1NjAsMzk1NjIsMzk1NjgsMzk1NzAsMzk1NzEsMzk1NzQsMzk1NzYsMzk1NzksMzk1ODAsMzk1ODEsMzk1ODMsMzk1ODQsMzk1ODYsMzk1ODcsMzk1ODksMzk1OTEsMzI0MTUsMzI0'@; put 'MTcsMzI0MTksMzI0MjEsMzI0MjQsMzI0MjUsMzc4MzgsMzc4MzksMzc4NDAsMzc4NDEsMzc4NDIsMzc4NDMsMzc4NDQsMzc4NDUsMzc4NDcsMzc4NDgsMzc4NDksMzc4NTAsMzc4NTEsMzc4NTIsMzc4NTMsMzc4NTQsMzc4NTUsMzc4NTYsMzc4NTcsMzc4NTgsMzc4NTksMzc4NjAsMzc4NjEs'@; put 'Mzc4NjIsMzc4NjMsMzc4NjQsMzc4NjUsMzc4NjYsMzc4NjcsMzc4NjgsMzc4NjksMzc4NzAsMzc4NzEsMzc4NzIsMzc4NzMsMzc4NzQsMzc4NzUsMzc4NzYsMzc4NzcsMzc4NzgsMzc4NzksMzc4ODAsMzc4ODEsMzc4ODIsMzc4ODMsMzc4ODQsMzc4ODUsMzc4ODYsMzc4ODcsMzc4ODgsMzc4'@; put 'ODksMzc4OTAsMzc4OTEsMzc4OTIsMzc4OTMsMzc4OTQsMzc4OTUsMzc4OTYsMzc4OTcsMzc4OTgsMzc4OTksMzc5MDAsMzc5MDEsMzc5MDIsMzc5MDMsMzc5MDQsMzc5MDUsMzc5MDYsMzc5MDcsMzc5MDgsMzc5MDksMzc5MTAsMzc5MTEsMzc5MTIsMzc5MTMsMzc5MTQsMzc5MTUsMzc5MTYs'@; put 'Mzc5MTcsMzc5MTgsMzc5MTksMzc5MjAsMzc5MjEsMzc5MjIsMzc5MjMsMzc5MjQsMzc5MjUsMzc5MjYsMzc5MjcsMzc5MjgsMzc5MjksMzc5MzAsMzc5MzEsMzc5MzIsMzc5MzMsMzc5MzQsMzI0MjksMzI0MzIsMzI0NDYsMzI0NDgsMzI0NDksMzI0NTAsMzI0NTcsMzI0NTksMzI0NjAsMzI0'@; put 'NjQsMzI0NjgsMzI0NzEsMzI0NzUsMzI0ODAsMzI0ODEsMzI0ODgsMzI0OTEsMzI0OTQsMzI0OTUsMzI0OTcsMzI0OTgsMzI1MjUsMzI1MDIsMzI1MDYsMzI1MDcsMzI1MTAsMzI1MTMsMzI1MTQsMzI1MTUsMzI1MTksMzI1MjAsMzI1MjMsMzI1MjQsMzI1MjcsMzI1MjksMzI1MzAsMzI1MzUs'@; put 'MzI1MzcsMzI1NDAsMzI1MzksMzI1NDMsMzI1NDUsMzI1NDYsMzI1NDcsMzI1NDgsMzI1NDksMzI1NTAsMzI1NTEsMzI1NTQsMzI1NTUsMzI1NTYsMzI1NTcsMzI1NTksMzI1NjAsMzI1NjEsMzI1NjIsMzI1NjMsMzI1NjUsMjQxODYsMzAwNzksMjQwMjcsMzAwMTQsMzcwMTMsMjk1ODIsMjk1'@; put 'ODUsMjk2MTQsMjk2MDIsMjk1OTksMjk2NDcsMjk2MzQsMjk2NDksMjk2MjMsMjk2MTksMjk2MzIsMjk2NDEsMjk2NDAsMjk2NjksMjk2NTcsMzkwMzYsMjk3MDYsMjk2NzMsMjk2NzEsMjk2NjIsMjk2MjYsMjk2ODIsMjk3MTEsMjk3MzgsMjk3ODcsMjk3MzQsMjk3MzMsMjk3MzYsMjk3NDQs'@; put 'Mjk3NDIsMjk3NDAsMzc5MzUsMzc5MzYsMzc5MzcsMzc5MzgsMzc5MzksMzc5NDAsMzc5NDEsMzc5NDIsMzc5NDMsMzc5NDQsMzc5NDUsMzc5NDYsMzc5NDcsMzc5NDgsMzc5NDksMzc5NTEsMzc5NTIsMzc5NTMsMzc5NTQsMzc5NTUsMzc5NTYsMzc5NTcsMzc5NTgsMzc5NTksMzc5NjAsMzc5'@; put 'NjEsMzc5NjIsMzc5NjMsMzc5NjQsMzc5NjUsMzc5NjYsMzc5NjcsMzc5NjgsMzc5NjksMzc5NzAsMzc5NzEsMzc5NzIsMzc5NzMsMzc5NzQsMzc5NzUsMzc5NzYsMzc5NzcsMzc5NzgsMzc5NzksMzc5ODAsMzc5ODEsMzc5ODIsMzc5ODMsMzc5ODQsMzc5ODUsMzc5ODYsMzc5ODcsMzc5ODgs'@; put 'Mzc5ODksMzc5OTAsMzc5OTEsMzc5OTIsMzc5OTMsMzc5OTQsMzc5OTYsMzc5OTcsMzc5OTgsMzc5OTksMzhlMywzODAwMSwzODAwMiwzODAwMywzODAwNCwzODAwNSwzODAwNiwzODAwNywzODAwOCwzODAwOSwzODAxMCwzODAxMSwzODAxMiwzODAxMywzODAxNCwzODAxNSwzODAxNiwzODAx'@; put 'NywzODAxOCwzODAxOSwzODAyMCwzODAzMywzODAzOCwzODA0MCwzODA4NywzODA5NSwzODA5OSwzODEwMCwzODEwNiwzODExOCwzODEzOSwzODE3MiwzODE3NiwyOTcyMywyOTcyMiwyOTc2MSwyOTc4OCwyOTc4MywyOTc4MSwyOTc4NSwyOTgxNSwyOTgwNSwyOTgyMiwyOTg1MiwyOTgzOCwy'@; put 'OTgyNCwyOTgyNSwyOTgzMSwyOTgzNSwyOTg1NCwyOTg2NCwyOTg2NSwyOTg0MCwyOTg2MywyOTkwNiwyOTg4MiwzODg5MCwzODg5MSwzODg5MiwyNjQ0NCwyNjQ1MSwyNjQ2MiwyNjQ0MCwyNjQ3MywyNjUzMywyNjUwMywyNjQ3NCwyNjQ4MywyNjUyMCwyNjUzNSwyNjQ4NSwyNjUzNiwyNjUy'@; put 'NiwyNjU0MSwyNjUwNywyNjQ4NywyNjQ5MiwyNjYwOCwyNjYzMywyNjU4NCwyNjYzNCwyNjYwMSwyNjU0NCwyNjYzNiwyNjU4NSwyNjU0OSwyNjU4NiwyNjU0NywyNjU4OSwyNjYyNCwyNjU2MywyNjU1MiwyNjU5NCwyNjYzOCwyNjU2MSwyNjYyMSwyNjY3NCwyNjY3NSwyNjcyMCwyNjcyMSwy'@; put 'NjcwMiwyNjcyMiwyNjY5MiwyNjcyNCwyNjc1NSwyNjY1MywyNjcwOSwyNjcyNiwyNjY4OSwyNjcyNywyNjY4OCwyNjY4NiwyNjY5OCwyNjY5NywyNjY2NSwyNjgwNSwyNjc2NywyNjc0MCwyNjc0MywyNjc3MSwyNjczMSwyNjgxOCwyNjk5MCwyNjg3NiwyNjkxMSwyNjkxMiwyNjg3MywzODE4'@; put 'MywzODE5NSwzODIwNSwzODIxMSwzODIxNiwzODIxOSwzODIyOSwzODIzNCwzODI0MCwzODI1NCwzODI2MCwzODI2MSwzODI2MywzODI2NCwzODI2NSwzODI2NiwzODI2NywzODI2OCwzODI2OSwzODI3MCwzODI3MiwzODI3MywzODI3NCwzODI3NSwzODI3NiwzODI3NywzODI3OCwzODI3OSwz'@; put 'ODI4MCwzODI4MSwzODI4MiwzODI4MywzODI4NCwzODI4NSwzODI4NiwzODI4NywzODI4OCwzODI4OSwzODI5MCwzODI5MSwzODI5MiwzODI5MywzODI5NCwzODI5NSwzODI5NiwzODI5NywzODI5OCwzODI5OSwzODMwMCwzODMwMSwzODMwMiwzODMwMywzODMwNCwzODMwNSwzODMwNiwzODMw'@; put 'NywzODMwOCwzODMwOSwzODMxMCwzODMxMSwzODMxMiwzODMxMywzODMxNCwzODMxNSwzODMxNiwzODMxNywzODMxOCwzODMxOSwzODMyMCwzODMyMSwzODMyMiwzODMyMywzODMyNCwzODMyNSwzODMyNiwzODMyNywzODMyOCwzODMyOSwzODMzMCwzODMzMSwzODMzMiwzODMzMywzODMzNCwz'@; put 'ODMzNSwzODMzNiwzODMzNywzODMzOCwzODMzOSwzODM0MCwzODM0MSwzODM0MiwzODM0MywzODM0NCwzODM0NSwzODM0NiwzODM0NywyNjkxNiwyNjg2NCwyNjg5MSwyNjg4MSwyNjk2NywyNjg1MSwyNjg5NiwyNjk5MywyNjkzNywyNjk3NiwyNjk0NiwyNjk3MywyNzAxMiwyNjk4NywyNzAw'@; put 'OCwyNzAzMiwyN2UzLDI2OTMyLDI3MDg0LDI3MDE1LDI3MDE2LDI3MDg2LDI3MDE3LDI2OTgyLDI2OTc5LDI3MDAxLDI3MDM1LDI3MDQ3LDI3MDY3LDI3MDUxLDI3MDUzLDI3MDkyLDI3MDU3LDI3MDczLDI3MDgyLDI3MTAzLDI3MDI5LDI3MTA0LDI3MDIxLDI3MTM1LDI3MTgzLDI3MTE3LDI3'@; put 'MTU5LDI3MTYwLDI3MjM3LDI3MTIyLDI3MjA0LDI3MTk4LDI3Mjk2LDI3MjE2LDI3MjI3LDI3MTg5LDI3Mjc4LDI3MjU3LDI3MTk3LDI3MTc2LDI3MjI0LDI3MjYwLDI3MjgxLDI3MjgwLDI3MzA1LDI3Mjg3LDI3MzA3LDI5NDk1LDI5NTIyLDI3NTIxLDI3NTIyLDI3NTI3LDI3NTI0LDI3NTM4'@; put 'LDI3NTM5LDI3NTMzLDI3NTQ2LDI3NTQ3LDI3NTUzLDI3NTYyLDM2NzE1LDM2NzE3LDM2NzIxLDM2NzIyLDM2NzIzLDM2NzI1LDM2NzI2LDM2NzI4LDM2NzI3LDM2NzI5LDM2NzMwLDM2NzMyLDM2NzM0LDM2NzM3LDM2NzM4LDM2NzQwLDM2NzQzLDM2NzQ3LDM4MzQ4LDM4MzQ5LDM4MzUwLDM4'@; put 'MzUxLDM4MzUyLDM4MzUzLDM4MzU0LDM4MzU1LDM4MzU2LDM4MzU3LDM4MzU4LDM4MzU5LDM4MzYwLDM4MzYxLDM4MzYyLDM4MzYzLDM4MzY0LDM4MzY1LDM4MzY2LDM4MzY3LDM4MzY4LDM4MzY5LDM4MzcwLDM4MzcxLDM4MzcyLDM4MzczLDM4Mzc0LDM4Mzc1LDM4MzgwLDM4Mzk5LDM4NDA3'@; put 'LDM4NDE5LDM4NDI0LDM4NDI3LDM4NDMwLDM4NDMyLDM4NDM1LDM4NDM2LDM4NDM3LDM4NDM4LDM4NDM5LDM4NDQwLDM4NDQxLDM4NDQzLDM4NDQ0LDM4NDQ1LDM4NDQ3LDM4NDQ4LDM4NDU1LDM4NDU2LDM4NDU3LDM4NDU4LDM4NDYyLDM4NDY1LDM4NDY3LDM4NDc0LDM4NDc4LDM4NDc5LDM4'@; put 'NDgxLDM4NDgyLDM4NDgzLDM4NDg2LDM4NDg3LDM4NDg4LDM4NDg5LDM4NDkwLDM4NDkyLDM4NDkzLDM4NDk0LDM4NDk2LDM4NDk5LDM4NTAxLDM4NTAyLDM4NTA3LDM4NTA5LDM4NTEwLDM4NTExLDM4NTEyLDM4NTEzLDM4NTE1LDM4NTIwLDM4NTIxLDM4NTIyLDM4NTIzLDM4NTI0LDM4NTI1'@; put 'LDM4NTI2LDM4NTI3LDM4NTI4LDM4NTI5LDM4NTMwLDM4NTMxLDM4NTMyLDM4NTM1LDM4NTM3LDM4NTM4LDM2NzQ5LDM2NzUwLDM2NzUxLDM2NzYwLDM2NzYyLDM2NTU4LDI1MDk5LDI1MTExLDI1MTE1LDI1MTE5LDI1MTIyLDI1MTIxLDI1MTI1LDI1MTI0LDI1MTMyLDMzMjU1LDI5OTM1LDI5'@; put 'OTQwLDI5OTUxLDI5OTY3LDI5OTY5LDI5OTcxLDI1OTA4LDI2MDk0LDI2MDk1LDI2MDk2LDI2MTIyLDI2MTM3LDI2NDgyLDI2MTE1LDI2MTMzLDI2MTEyLDI4ODA1LDI2MzU5LDI2MTQxLDI2MTY0LDI2MTYxLDI2MTY2LDI2MTY1LDMyNzc0LDI2MjA3LDI2MTk2LDI2MTc3LDI2MTkxLDI2MTk4'@; put 'LDI2MjA5LDI2MTk5LDI2MjMxLDI2MjQ0LDI2MjUyLDI2Mjc5LDI2MjY5LDI2MzAyLDI2MzMxLDI2MzMyLDI2MzQyLDI2MzQ1LDM2MTQ2LDM2MTQ3LDM2MTUwLDM2MTU1LDM2MTU3LDM2MTYwLDM2MTY1LDM2MTY2LDM2MTY4LDM2MTY5LDM2MTY3LDM2MTczLDM2MTgxLDM2MTg1LDM1MjcxLDM1'@; put 'Mjc0LDM1Mjc1LDM1Mjc2LDM1Mjc4LDM1Mjc5LDM1MjgwLDM1MjgxLDI5Mjk0LDI5MzQzLDI5Mjc3LDI5Mjg2LDI5Mjk1LDI5MzEwLDI5MzExLDI5MzE2LDI5MzIzLDI5MzI1LDI5MzI3LDI5MzMwLDI1MzUyLDI1Mzk0LDI1NTIwLDM4NTQwLDM4NTQyLDM4NTQ1LDM4NTQ2LDM4NTQ3LDM4NTQ5'@; put 'LDM4NTUwLDM4NTU0LDM4NTU1LDM4NTU3LDM4NTU4LDM4NTU5LDM4NTYwLDM4NTYxLDM4NTYyLDM4NTYzLDM4NTY0LDM4NTY1LDM4NTY2LDM4NTY4LDM4NTY5LDM4NTcwLDM4NTcxLDM4NTcyLDM4NTczLDM4NTc0LDM4NTc1LDM4NTc3LDM4NTc4LDM4NTgwLDM4NTgxLDM4NTgzLDM4NTg0LDM4'@; put 'NTg2LDM4NTg3LDM4NTkxLDM4NTk0LDM4NTk1LDM4NjAwLDM4NjAyLDM4NjAzLDM4NjA4LDM4NjA5LDM4NjExLDM4NjEyLDM4NjE0LDM4NjE1LDM4NjE2LDM4NjE3LDM4NjE4LDM4NjE5LDM4NjIwLDM4NjIxLDM4NjIyLDM4NjIzLDM4NjI1LDM4NjI2LDM4NjI3LDM4NjI4LDM4NjI5LDM4NjMw'@; put 'LDM4NjMxLDM4NjM1LDM4NjM2LDM4NjM3LDM4NjM4LDM4NjQwLDM4NjQxLDM4NjQyLDM4NjQ0LDM4NjQ1LDM4NjQ4LDM4NjUwLDM4NjUxLDM4NjUyLDM4NjUzLDM4NjU1LDM4NjU4LDM4NjU5LDM4NjYxLDM4NjY2LDM4NjY3LDM4NjY4LDM4NjcyLDM4NjczLDM4Njc0LDM4Njc2LDM4Njc3LDM4'@; put 'Njc5LDM4NjgwLDM4NjgxLDM4NjgyLDM4NjgzLDM4Njg1LDM4Njg3LDM4Njg4LDI1NjYzLDI1ODE2LDMyNzcyLDI3NjI2LDI3NjM1LDI3NjQ1LDI3NjM3LDI3NjQxLDI3NjUzLDI3NjU1LDI3NjU0LDI3NjYxLDI3NjY5LDI3NjcyLDI3NjczLDI3Njc0LDI3NjgxLDI3Njg5LDI3Njg0LDI3Njkw'@; put 'LDI3Njk4LDI1OTA5LDI1OTQxLDI1OTYzLDI5MjYxLDI5MjY2LDI5MjcwLDI5MjMyLDM0NDAyLDIxMDE0LDMyOTI3LDMyOTI0LDMyOTE1LDMyOTU2LDI2Mzc4LDMyOTU3LDMyOTQ1LDMyOTM5LDMyOTQxLDMyOTQ4LDMyOTUxLDMyOTk5LDMzZTMsMzMwMDEsMzMwMDIsMzI5ODcsMzI5NjIsMzI5'@; put 'NjQsMzI5ODUsMzI5NzMsMzI5ODMsMjYzODQsMzI5ODksMzMwMDMsMzMwMDksMzMwMTIsMzMwMDUsMzMwMzcsMzMwMzgsMzMwMTAsMzMwMjAsMjYzODksMzMwNDIsMzU5MzAsMzMwNzgsMzMwNTQsMzMwNjgsMzMwNDgsMzMwNzQsMzMwOTYsMzMxMDAsMzMxMDcsMzMxNDAsMzMxMTMsMzMxMTQs'@; put 'MzMxMzcsMzMxMjAsMzMxMjksMzMxNDgsMzMxNDksMzMxMzMsMzMxMjcsMjI2MDUsMjMyMjEsMzMxNjAsMzMxNTQsMzMxNjksMjgzNzMsMzMxODcsMzMxOTQsMzMyMjgsMjY0MDYsMzMyMjYsMzMyMTEsMzg2ODksMzg2OTAsMzg2OTEsMzg2OTIsMzg2OTMsMzg2OTQsMzg2OTUsMzg2OTYsMzg2'@; put 'OTcsMzg2OTksMzg3MDAsMzg3MDIsMzg3MDMsMzg3MDUsMzg3MDcsMzg3MDgsMzg3MDksMzg3MTAsMzg3MTEsMzg3MTQsMzg3MTUsMzg3MTYsMzg3MTcsMzg3MTksMzg3MjAsMzg3MjEsMzg3MjIsMzg3MjMsMzg3MjQsMzg3MjUsMzg3MjYsMzg3MjcsMzg3MjgsMzg3MjksMzg3MzAsMzg3MzEs'@; put 'Mzg3MzIsMzg3MzMsMzg3MzQsMzg3MzUsMzg3MzYsMzg3MzcsMzg3NDAsMzg3NDEsMzg3NDMsMzg3NDQsMzg3NDYsMzg3NDgsMzg3NDksMzg3NTEsMzg3NTUsMzg3NTYsMzg3NTgsMzg3NTksMzg3NjAsMzg3NjIsMzg3NjMsMzg3NjQsMzg3NjUsMzg3NjYsMzg3NjcsMzg3NjgsMzg3NjksMzg3'@; put 'NzAsMzg3NzMsMzg3NzUsMzg3NzYsMzg3NzcsMzg3NzgsMzg3NzksMzg3ODEsMzg3ODIsMzg3ODMsMzg3ODQsMzg3ODUsMzg3ODYsMzg3ODcsMzg3ODgsMzg3OTAsMzg3OTEsMzg3OTIsMzg3OTMsMzg3OTQsMzg3OTYsMzg3OTgsMzg3OTksMzg4MDAsMzg4MDMsMzg4MDUsMzg4MDYsMzg4MDcs'@; put 'Mzg4MDksMzg4MTAsMzg4MTEsMzg4MTIsMzg4MTMsMzMyMTcsMzMxOTAsMjc0MjgsMjc0NDcsMjc0NDksMjc0NTksMjc0NjIsMjc0ODEsMzkxMjEsMzkxMjIsMzkxMjMsMzkxMjUsMzkxMjksMzkxMzAsMjc1NzEsMjQzODQsMjc1ODYsMzUzMTUsMjZlMyw0MDc4NSwyNjAwMywyNjA0NCwyNjA1'@; put 'NCwyNjA1MiwyNjA1MSwyNjA2MCwyNjA2MiwyNjA2NiwyNjA3MCwyODgwMCwyODgyOCwyODgyMiwyODgyOSwyODg1OSwyODg2NCwyODg1NSwyODg0MywyODg0OSwyODkwNCwyODg3NCwyODk0NCwyODk0NywyODk1MCwyODk3NSwyODk3NywyOTA0MywyOTAyMCwyOTAzMiwyODk5NywyOTA0Miwy'@; put 'OTAwMiwyOTA0OCwyOTA1MCwyOTA4MCwyOTEwNywyOTEwOSwyOTA5NiwyOTA4OCwyOTE1MiwyOTE0MCwyOTE1OSwyOTE3NywyOTIxMywyOTIyNCwyODc4MCwyODk1MiwyOTAzMCwyOTExMywyNTE1MCwyNTE0OSwyNTE1NSwyNTE2MCwyNTE2MSwzMTAzNSwzMTA0MCwzMTA0NiwzMTA0OSwzMTA2'@; put 'NywzMTA2OCwzMTA1OSwzMTA2NiwzMTA3NCwzMTA2MywzMTA3MiwzMTA4NywzMTA3OSwzMTA5OCwzMTEwOSwzMTExNCwzMTEzMCwzMTE0MywzMTE1NSwyNDUyOSwyNDUyOCwzODgxNCwzODgxNSwzODgxNywzODgxOCwzODgyMCwzODgyMSwzODgyMiwzODgyMywzODgyNCwzODgyNSwzODgyNiwz'@; put 'ODgyOCwzODgzMCwzODgzMiwzODgzMywzODgzNSwzODgzNywzODgzOCwzODgzOSwzODg0MCwzODg0MSwzODg0MiwzODg0MywzODg0NCwzODg0NSwzODg0NiwzODg0NywzODg0OCwzODg0OSwzODg1MCwzODg1MSwzODg1MiwzODg1MywzODg1NCwzODg1NSwzODg1NiwzODg1NywzODg1OCwzODg1'@; put 'OSwzODg2MCwzODg2MSwzODg2MiwzODg2MywzODg2NCwzODg2NSwzODg2NiwzODg2NywzODg2OCwzODg2OSwzODg3MCwzODg3MSwzODg3MiwzODg3MywzODg3NCwzODg3NSwzODg3NiwzODg3NywzODg3OCwzODg3OSwzODg4MCwzODg4MSwzODg4MiwzODg4MywzODg4NCwzODg4NSwzODg4OCwz'@; put 'ODg5NCwzODg5NSwzODg5NiwzODg5NywzODg5OCwzODkwMCwzODkwMywzODkwNCwzODkwNSwzODkwNiwzODkwNywzODkwOCwzODkwOSwzODkxMCwzODkxMSwzODkxMiwzODkxMywzODkxNCwzODkxNSwzODkxNiwzODkxNywzODkxOCwzODkxOSwzODkyMCwzODkyMSwzODkyMiwzODkyMywzODky'@; put 'NCwzODkyNSwzODkyNiwyNDYzNiwyNDY2OSwyNDY2NiwyNDY3OSwyNDY0MSwyNDY2NSwyNDY3NSwyNDc0NywyNDgzOCwyNDg0NSwyNDkyNSwyNTAwMSwyNDk4OSwyNTAzNSwyNTA0MSwyNTA5NCwzMjg5NiwzMjg5NSwyNzc5NSwyNzg5NCwyODE1NiwzMDcxMCwzMDcxMiwzMDcyMCwzMDcyOSwz'@; put 'MDc0MywzMDc0NCwzMDczNywyNjAyNywzMDc2NSwzMDc0OCwzMDc0OSwzMDc3NywzMDc3OCwzMDc3OSwzMDc1MSwzMDc4MCwzMDc1NywzMDc2NCwzMDc1NSwzMDc2MSwzMDc5OCwzMDgyOSwzMDgwNiwzMDgwNywzMDc1OCwzMDgwMCwzMDc5MSwzMDc5NiwzMDgyNiwzMDg3NSwzMDg2NywzMDg3'@; put 'NCwzMDg1NSwzMDg3NiwzMDg4MSwzMDg4MywzMDg5OCwzMDkwNSwzMDg4NSwzMDkzMiwzMDkzNywzMDkyMSwzMDk1NiwzMDk2MiwzMDk4MSwzMDk2NCwzMDk5NSwzMTAxMiwzMTAwNiwzMTAyOCw0MDg1OSw0MDY5Nyw0MDY5OSw0MDcwMCwzMDQ0OSwzMDQ2OCwzMDQ3NywzMDQ1NywzMDQ3MSwz'@; put 'MDQ3MiwzMDQ5MCwzMDQ5OCwzMDQ4OSwzMDUwOSwzMDUwMiwzMDUxNywzMDUyMCwzMDU0NCwzMDU0NSwzMDUzNSwzMDUzMSwzMDU1NCwzMDU2OCwzODkyNywzODkyOCwzODkyOSwzODkzMCwzODkzMSwzODkzMiwzODkzMywzODkzNCwzODkzNSwzODkzNiwzODkzNywzODkzOCwzODkzOSwzODk0'@; put 'MCwzODk0MSwzODk0MiwzODk0MywzODk0NCwzODk0NSwzODk0NiwzODk0NywzODk0OCwzODk0OSwzODk1MCwzODk1MSwzODk1MiwzODk1MywzODk1NCwzODk1NSwzODk1NiwzODk1NywzODk1OCwzODk1OSwzODk2MCwzODk2MSwzODk2MiwzODk2MywzODk2NCwzODk2NSwzODk2NiwzODk2Nywz'@; put 'ODk2OCwzODk2OSwzODk3MCwzODk3MSwzODk3MiwzODk3MywzODk3NCwzODk3NSwzODk3NiwzODk3NywzODk3OCwzODk3OSwzODk4MCwzODk4MSwzODk4MiwzODk4MywzODk4NCwzODk4NSwzODk4NiwzODk4NywzODk4OCwzODk4OSwzODk5MCwzODk5MSwzODk5MiwzODk5MywzODk5NCwzODk5'@; put 'NSwzODk5NiwzODk5NywzODk5OCwzODk5OSwzOWUzLDM5MDAxLDM5MDAyLDM5MDAzLDM5MDA0LDM5MDA1LDM5MDA2LDM5MDA3LDM5MDA4LDM5MDA5LDM5MDEwLDM5MDExLDM5MDEyLDM5MDEzLDM5MDE0LDM5MDE1LDM5MDE2LDM5MDE3LDM5MDE4LDM5MDE5LDM5MDIwLDM5MDIxLDM5MDIyLDMw'@; put 'NTYyLDMwNTY1LDMwNTkxLDMwNjA1LDMwNTg5LDMwNTkyLDMwNjA0LDMwNjA5LDMwNjIzLDMwNjI0LDMwNjQwLDMwNjQ1LDMwNjUzLDMwMDEwLDMwMDE2LDMwMDMwLDMwMDI3LDMwMDI0LDMwMDQzLDMwMDY2LDMwMDczLDMwMDgzLDMyNjAwLDMyNjA5LDMyNjA3LDM1NDAwLDMyNjE2LDMyNjI4'@; put 'LDMyNjI1LDMyNjMzLDMyNjQxLDMyNjM4LDMwNDEzLDMwNDM3LDM0ODY2LDM4MDIxLDM4MDIyLDM4MDIzLDM4MDI3LDM4MDI2LDM4MDI4LDM4MDI5LDM4MDMxLDM4MDMyLDM4MDM2LDM4MDM5LDM4MDM3LDM4MDQyLDM4MDQzLDM4MDQ0LDM4MDUxLDM4MDUyLDM4MDU5LDM4MDU4LDM4MDYxLDM4'@; put 'MDYwLDM4MDYzLDM4MDY0LDM4MDY2LDM4MDY4LDM4MDcwLDM4MDcxLDM4MDcyLDM4MDczLDM4MDc0LDM4MDc2LDM4MDc3LDM4MDc5LDM4MDg0LDM4MDg4LDM4MDg5LDM4MDkwLDM4MDkxLDM4MDkyLDM4MDkzLDM4MDk0LDM4MDk2LDM4MDk3LDM4MDk4LDM4MTAxLDM4MTAyLDM4MTAzLDM4MTA1'@; put 'LDM4MTA0LDM4MTA3LDM4MTEwLDM4MTExLDM4MTEyLDM4MTE0LDM4MTE2LDM4MTE3LDM4MTE5LDM4MTIwLDM4MTIyLDM5MDIzLDM5MDI0LDM5MDI1LDM5MDI2LDM5MDI3LDM5MDI4LDM5MDUxLDM5MDU0LDM5MDU4LDM5MDYxLDM5MDY1LDM5MDc1LDM5MDgwLDM5MDgxLDM5MDgyLDM5MDgzLDM5'@; put 'MDg0LDM5MDg1LDM5MDg2LDM5MDg3LDM5MDg4LDM5MDg5LDM5MDkwLDM5MDkxLDM5MDkyLDM5MDkzLDM5MDk0LDM5MDk1LDM5MDk2LDM5MDk3LDM5MDk4LDM5MDk5LDM5MTAwLDM5MTAxLDM5MTAyLDM5MTAzLDM5MTA0LDM5MTA1LDM5MTA2LDM5MTA3LDM5MTA4LDM5MTA5LDM5MTEwLDM5MTEx'@; put 'LDM5MTEyLDM5MTEzLDM5MTE0LDM5MTE1LDM5MTE2LDM5MTE3LDM5MTE5LDM5MTIwLDM5MTI0LDM5MTI2LDM5MTI3LDM5MTMxLDM5MTMyLDM5MTMzLDM5MTM2LDM5MTM3LDM5MTM4LDM5MTM5LDM5MTQwLDM5MTQxLDM5MTQyLDM5MTQ1LDM5MTQ2LDM5MTQ3LDM5MTQ4LDM5MTQ5LDM5MTUwLDM5'@; put 'MTUxLDM5MTUyLDM5MTUzLDM5MTU0LDM5MTU1LDM5MTU2LDM5MTU3LDM5MTU4LDM5MTU5LDM5MTYwLDM5MTYxLDM5MTYyLDM5MTYzLDM5MTY0LDM5MTY1LDM5MTY2LDM5MTY3LDM5MTY4LDM5MTY5LDM5MTcwLDM5MTcxLDM5MTcyLDM5MTczLDM5MTc0LDM5MTc1LDM4MTIxLDM4MTIzLDM4MTI2'@; put 'LDM4MTI3LDM4MTMxLDM4MTMyLDM4MTMzLDM4MTM1LDM4MTM3LDM4MTQwLDM4MTQxLDM4MTQzLDM4MTQ3LDM4MTQ2LDM4MTUwLDM4MTUxLDM4MTUzLDM4MTU0LDM4MTU3LDM4MTU4LDM4MTU5LDM4MTYyLDM4MTYzLDM4MTY0LDM4MTY1LDM4MTY2LDM4MTY4LDM4MTcxLDM4MTczLDM4MTc0LDM4'@; put 'MTc1LDM4MTc4LDM4MTg2LDM4MTg3LDM4MTg1LDM4MTg4LDM4MTkzLDM4MTk0LDM4MTk2LDM4MTk4LDM4MTk5LDM4MjAwLDM4MjA0LDM4MjA2LDM4MjA3LDM4MjEwLDM4MTk3LDM4MjEyLDM4MjEzLDM4MjE0LDM4MjE3LDM4MjIwLDM4MjIyLDM4MjIzLDM4MjI2LDM4MjI3LDM4MjI4LDM4MjMw'@; put 'LDM4MjMxLDM4MjMyLDM4MjMzLDM4MjM1LDM4MjM4LDM4MjM5LDM4MjM3LDM4MjQxLDM4MjQyLDM4MjQ0LDM4MjQ1LDM4MjQ2LDM4MjQ3LDM4MjQ4LDM4MjQ5LDM4MjUwLDM4MjUxLDM4MjUyLDM4MjU1LDM4MjU3LDM4MjU4LDM4MjU5LDM4MjAyLDMwNjk1LDMwNzAwLDM4NjAxLDMxMTg5LDMx'@; put 'MjEzLDMxMjAzLDMxMjExLDMxMjM4LDIzODc5LDMxMjM1LDMxMjM0LDMxMjYyLDMxMjUyLDM5MTc2LDM5MTc3LDM5MTc4LDM5MTc5LDM5MTgwLDM5MTgyLDM5MTgzLDM5MTg1LDM5MTg2LDM5MTg3LDM5MTg4LDM5MTg5LDM5MTkwLDM5MTkxLDM5MTkyLDM5MTkzLDM5MTk0LDM5MTk1LDM5MTk2'@; put 'LDM5MTk3LDM5MTk4LDM5MTk5LDM5MjAwLDM5MjAxLDM5MjAyLDM5MjAzLDM5MjA0LDM5MjA1LDM5MjA2LDM5MjA3LDM5MjA4LDM5MjA5LDM5MjEwLDM5MjExLDM5MjEyLDM5MjEzLDM5MjE1LDM5MjE2LDM5MjE3LDM5MjE4LDM5MjE5LDM5MjIwLDM5MjIxLDM5MjIyLDM5MjIzLDM5MjI0LDM5'@; put 'MjI1LDM5MjI2LDM5MjI3LDM5MjI4LDM5MjI5LDM5MjMwLDM5MjMxLDM5MjMyLDM5MjMzLDM5MjM0LDM5MjM1LDM5MjM2LDM5MjM3LDM5MjM4LDM5MjM5LDM5MjQwLDM5MjQxLDM5MjQyLDM5MjQzLDM5MjQ0LDM5MjQ1LDM5MjQ2LDM5MjQ3LDM5MjQ4LDM5MjQ5LDM5MjUwLDM5MjUxLDM5MjU0'@; put 'LDM5MjU1LDM5MjU2LDM5MjU3LDM5MjU4LDM5MjU5LDM5MjYwLDM5MjYxLDM5MjYyLDM5MjYzLDM5MjY0LDM5MjY1LDM5MjY2LDM5MjY4LDM5MjcwLDM5MjgzLDM5Mjg4LDM5Mjg5LDM5MjkxLDM5Mjk0LDM5Mjk4LDM5Mjk5LDM5MzA1LDMxMjg5LDMxMjg3LDMxMzEzLDQwNjU1LDM5MzMzLDMx'@; put 'MzQ0LDMwMzQ0LDMwMzUwLDMwMzU1LDMwMzYxLDMwMzcyLDI5OTE4LDI5OTIwLDI5OTk2LDQwNDgwLDQwNDgyLDQwNDg4LDQwNDg5LDQwNDkwLDQwNDkxLDQwNDkyLDQwNDk4LDQwNDk3LDQwNTAyLDQwNTA0LDQwNTAzLDQwNTA1LDQwNTA2LDQwNTEwLDQwNTEzLDQwNTE0LDQwNTE2LDQwNTE4'@; put 'LDQwNTE5LDQwNTIwLDQwNTIxLDQwNTIzLDQwNTI0LDQwNTI2LDQwNTI5LDQwNTMzLDQwNTM1LDQwNTM4LDQwNTM5LDQwNTQwLDQwNTQyLDQwNTQ3LDQwNTUwLDQwNTUxLDQwNTUyLDQwNTUzLDQwNTU0LDQwNTU1LDQwNTU2LDQwNTYxLDQwNTU3LDQwNTYzLDMwMDk4LDMwMTAwLDMwMTAyLDMw'@; put 'MTEyLDMwMTA5LDMwMTI0LDMwMTE1LDMwMTMxLDMwMTMyLDMwMTM2LDMwMTQ4LDMwMTI5LDMwMTI4LDMwMTQ3LDMwMTQ2LDMwMTY2LDMwMTU3LDMwMTc5LDMwMTg0LDMwMTgyLDMwMTgwLDMwMTg3LDMwMTgzLDMwMjExLDMwMTkzLDMwMjA0LDMwMjA3LDMwMjI0LDMwMjA4LDMwMjEzLDMwMjIw'@; put 'LDMwMjMxLDMwMjE4LDMwMjQ1LDMwMjMyLDMwMjI5LDMwMjMzLDM5MzA4LDM5MzEwLDM5MzIyLDM5MzIzLDM5MzI0LDM5MzI1LDM5MzI2LDM5MzI3LDM5MzI4LDM5MzI5LDM5MzMwLDM5MzMxLDM5MzMyLDM5MzM0LDM5MzM1LDM5MzM3LDM5MzM4LDM5MzM5LDM5MzQwLDM5MzQxLDM5MzQyLDM5'@; put 'MzQzLDM5MzQ0LDM5MzQ1LDM5MzQ2LDM5MzQ3LDM5MzQ4LDM5MzQ5LDM5MzUwLDM5MzUxLDM5MzUyLDM5MzUzLDM5MzU0LDM5MzU1LDM5MzU2LDM5MzU3LDM5MzU4LDM5MzU5LDM5MzYwLDM5MzYxLDM5MzYyLDM5MzYzLDM5MzY0LDM5MzY1LDM5MzY2LDM5MzY3LDM5MzY4LDM5MzY5LDM5Mzcw'@; put 'LDM5MzcxLDM5MzcyLDM5MzczLDM5Mzc0LDM5Mzc1LDM5Mzc2LDM5Mzc3LDM5Mzc4LDM5Mzc5LDM5MzgwLDM5MzgxLDM5MzgyLDM5MzgzLDM5Mzg0LDM5Mzg1LDM5Mzg2LDM5Mzg3LDM5Mzg4LDM5Mzg5LDM5MzkwLDM5MzkxLDM5MzkyLDM5MzkzLDM5Mzk0LDM5Mzk1LDM5Mzk2LDM5Mzk3LDM5'@; put 'Mzk4LDM5Mzk5LDM5NDAwLDM5NDAxLDM5NDAyLDM5NDAzLDM5NDA0LDM5NDA1LDM5NDA2LDM5NDA3LDM5NDA4LDM5NDA5LDM5NDEwLDM5NDExLDM5NDEyLDM5NDEzLDM5NDE0LDM5NDE1LDM5NDE2LDM5NDE3LDMwMjM1LDMwMjY4LDMwMjQyLDMwMjQwLDMwMjcyLDMwMjUzLDMwMjU2LDMwMjcx'@; put 'LDMwMjYxLDMwMjc1LDMwMjcwLDMwMjU5LDMwMjg1LDMwMzAyLDMwMjkyLDMwMzAwLDMwMjk0LDMwMzE1LDMwMzE5LDMyNzE0LDMxNDYyLDMxMzUyLDMxMzUzLDMxMzYwLDMxMzY2LDMxMzY4LDMxMzgxLDMxMzk4LDMxMzkyLDMxNDA0LDMxNDAwLDMxNDA1LDMxNDExLDM0OTE2LDM0OTIxLDM0'@; put 'OTMwLDM0OTQxLDM0OTQzLDM0OTQ2LDM0OTc4LDM1MDE0LDM0OTk5LDM1MDA0LDM1MDE3LDM1MDQyLDM1MDIyLDM1MDQzLDM1MDQ1LDM1MDU3LDM1MDk4LDM1MDY4LDM1MDQ4LDM1MDcwLDM1MDU2LDM1MTA1LDM1MDk3LDM1MDkxLDM1MDk5LDM1MDgyLDM1MTI0LDM1MTE1LDM1MTI2LDM1MTM3'@; put 'LDM1MTc0LDM1MTk1LDMwMDkxLDMyOTk3LDMwMzg2LDMwMzg4LDMwNjg0LDMyNzg2LDMyNzg4LDMyNzkwLDMyNzk2LDMyODAwLDMyODAyLDMyODA1LDMyODA2LDMyODA3LDMyODA5LDMyODA4LDMyODE3LDMyNzc5LDMyODIxLDMyODM1LDMyODM4LDMyODQ1LDMyODUwLDMyODczLDMyODgxLDM1'@; put 'MjAzLDM5MDMyLDM5MDQwLDM5MDQzLDM5NDE4LDM5NDE5LDM5NDIwLDM5NDIxLDM5NDIyLDM5NDIzLDM5NDI0LDM5NDI1LDM5NDI2LDM5NDI3LDM5NDI4LDM5NDI5LDM5NDMwLDM5NDMxLDM5NDMyLDM5NDMzLDM5NDM0LDM5NDM1LDM5NDM2LDM5NDM3LDM5NDM4LDM5NDM5LDM5NDQwLDM5NDQx'@; put 'LDM5NDQyLDM5NDQzLDM5NDQ0LDM5NDQ1LDM5NDQ2LDM5NDQ3LDM5NDQ4LDM5NDQ5LDM5NDUwLDM5NDUxLDM5NDUyLDM5NDUzLDM5NDU0LDM5NDU1LDM5NDU2LDM5NDU3LDM5NDU4LDM5NDU5LDM5NDYwLDM5NDYxLDM5NDYyLDM5NDYzLDM5NDY0LDM5NDY1LDM5NDY2LDM5NDY3LDM5NDY4LDM5'@; put 'NDY5LDM5NDcwLDM5NDcxLDM5NDcyLDM5NDczLDM5NDc0LDM5NDc1LDM5NDc2LDM5NDc3LDM5NDc4LDM5NDc5LDM5NDgwLDM5NDgxLDM5NDgyLDM5NDgzLDM5NDg0LDM5NDg1LDM5NDg2LDM5NDg3LDM5NDg4LDM5NDg5LDM5NDkwLDM5NDkxLDM5NDkyLDM5NDkzLDM5NDk0LDM5NDk1LDM5NDk2'@; put 'LDM5NDk3LDM5NDk4LDM5NDk5LDM5NTAwLDM5NTAxLDM5NTAyLDM5NTAzLDM5NTA0LDM5NTA1LDM5NTA2LDM5NTA3LDM5NTA4LDM5NTA5LDM5NTEwLDM5NTExLDM5NTEyLDM5NTEzLDM5MDQ5LDM5MDUyLDM5MDUzLDM5MDU1LDM5MDYwLDM5MDY2LDM5MDY3LDM5MDcwLDM5MDcxLDM5MDczLDM5'@; put 'MDc0LDM5MDc3LDM5MDc4LDM0MzgxLDM0Mzg4LDM0NDEyLDM0NDE0LDM0NDMxLDM0NDI2LDM0NDI4LDM0NDI3LDM0NDcyLDM0NDQ1LDM0NDQzLDM0NDc2LDM0NDYxLDM0NDcxLDM0NDY3LDM0NDc0LDM0NDUxLDM0NDczLDM0NDg2LDM0NTAwLDM0NDg1LDM0NTEwLDM0NDgwLDM0NDkwLDM0NDgx'@; put 'LDM0NDc5LDM0NTA1LDM0NTExLDM0NDg0LDM0NTM3LDM0NTQ1LDM0NTQ2LDM0NTQxLDM0NTQ3LDM0NTEyLDM0NTc5LDM0NTI2LDM0NTQ4LDM0NTI3LDM0NTIwLDM0NTEzLDM0NTYzLDM0NTY3LDM0NTUyLDM0NTY4LDM0NTcwLDM0NTczLDM0NTY5LDM0NTk1LDM0NjE5LDM0NTkwLDM0NTk3LDM0'@; put 'NjA2LDM0NTg2LDM0NjIyLDM0NjMyLDM0NjEyLDM0NjA5LDM0NjAxLDM0NjE1LDM0NjIzLDM0NjkwLDM0NTk0LDM0Njg1LDM0Njg2LDM0NjgzLDM0NjU2LDM0NjcyLDM0NjM2LDM0NjcwLDM0Njk5LDM0NjQzLDM0NjU5LDM0Njg0LDM0NjYwLDM0NjQ5LDM0NjYxLDM0NzA3LDM0NzM1LDM0NzI4'@; put 'LDM0NzcwLDM5NTE0LDM5NTE1LDM5NTE2LDM5NTE3LDM5NTE4LDM5NTE5LDM5NTIwLDM5NTIxLDM5NTIyLDM5NTIzLDM5NTI0LDM5NTI1LDM5NTI2LDM5NTI3LDM5NTI4LDM5NTI5LDM5NTMwLDM5NTMxLDM5NTM4LDM5NTU1LDM5NTYxLDM5NTY1LDM5NTY2LDM5NTcyLDM5NTczLDM5NTc3LDM5'@; put 'NTkwLDM5NTkzLDM5NTk0LDM5NTk1LDM5NTk2LDM5NTk3LDM5NTk4LDM5NTk5LDM5NjAyLDM5NjAzLDM5NjA0LDM5NjA1LDM5NjA5LDM5NjExLDM5NjEzLDM5NjE0LDM5NjE1LDM5NjE5LDM5NjIwLDM5NjIyLDM5NjIzLDM5NjI0LDM5NjI1LDM5NjI2LDM5NjI5LDM5NjMwLDM5NjMxLDM5NjMy'@; put 'LDM5NjM0LDM5NjM2LDM5NjM3LDM5NjM4LDM5NjM5LDM5NjQxLDM5NjQyLDM5NjQzLDM5NjQ0LDM5NjQ1LDM5NjQ2LDM5NjQ4LDM5NjUwLDM5NjUxLDM5NjUyLDM5NjUzLDM5NjU1LDM5NjU2LDM5NjU3LDM5NjU4LDM5NjYwLDM5NjYyLDM5NjY0LDM5NjY1LDM5NjY2LDM5NjY3LDM5NjY4LDM5'@; put 'NjY5LDM5NjcwLDM5NjcxLDM5NjcyLDM5Njc0LDM5Njc2LDM5Njc3LDM5Njc4LDM5Njc5LDM5NjgwLDM5NjgxLDM5NjgyLDM5Njg0LDM5Njg1LDM5Njg2LDM0NzU4LDM0Njk2LDM0NjkzLDM0NzMzLDM0NzExLDM0NjkxLDM0NzMxLDM0Nzg5LDM0NzMyLDM0NzQxLDM0NzM5LDM0NzYzLDM0Nzcx'@; put 'LDM0NzQ5LDM0NzY5LDM0NzUyLDM0NzYyLDM0Nzc5LDM0Nzk0LDM0Nzg0LDM0Nzk4LDM0ODM4LDM0ODM1LDM0ODE0LDM0ODI2LDM0ODQzLDM0ODQ5LDM0ODczLDM0ODc2LDMyNTY2LDMyNTc4LDMyNTgwLDMyNTgxLDMzMjk2LDMxNDgyLDMxNDg1LDMxNDk2LDMxNDkxLDMxNDkyLDMxNTA5LDMx'@; put 'NDk4LDMxNTMxLDMxNTAzLDMxNTU5LDMxNTQ0LDMxNTMwLDMxNTEzLDMxNTM0LDMxNTM3LDMxNTIwLDMxNTI1LDMxNTI0LDMxNTM5LDMxNTUwLDMxNTE4LDMxNTc2LDMxNTc4LDMxNTU3LDMxNjA1LDMxNTY0LDMxNTgxLDMxNTg0LDMxNTk4LDMxNjExLDMxNTg2LDMxNjAyLDMxNjAxLDMxNjMy'@; put 'LDMxNjU0LDMxNjU1LDMxNjcyLDMxNjYwLDMxNjQ1LDMxNjU2LDMxNjIxLDMxNjU4LDMxNjQ0LDMxNjUwLDMxNjU5LDMxNjY4LDMxNjk3LDMxNjgxLDMxNjkyLDMxNzA5LDMxNzA2LDMxNzE3LDMxNzE4LDMxNzIyLDMxNzU2LDMxNzQyLDMxNzQwLDMxNzU5LDMxNzY2LDMxNzU1LDM5Njg3LDM5'@; put 'Njg5LDM5NjkwLDM5NjkxLDM5NjkyLDM5NjkzLDM5Njk0LDM5Njk2LDM5Njk3LDM5Njk4LDM5NzAwLDM5NzAxLDM5NzAyLDM5NzAzLDM5NzA0LDM5NzA1LDM5NzA2LDM5NzA3LDM5NzA4LDM5NzA5LDM5NzEwLDM5NzEyLDM5NzEzLDM5NzE0LDM5NzE2LDM5NzE3LDM5NzE4LDM5NzE5LDM5NzIw'@; put 'LDM5NzIxLDM5NzIyLDM5NzIzLDM5NzI0LDM5NzI1LDM5NzI2LDM5NzI4LDM5NzI5LDM5NzMxLDM5NzMyLDM5NzMzLDM5NzM0LDM5NzM1LDM5NzM2LDM5NzM3LDM5NzM4LDM5NzQxLDM5NzQyLDM5NzQzLDM5NzQ0LDM5NzUwLDM5NzU0LDM5NzU1LDM5NzU2LDM5NzU4LDM5NzYwLDM5NzYyLDM5'@; put 'NzYzLDM5NzY1LDM5NzY2LDM5NzY3LDM5NzY4LDM5NzY5LDM5NzcwLDM5NzcxLDM5NzcyLDM5NzczLDM5Nzc0LDM5Nzc1LDM5Nzc2LDM5Nzc3LDM5Nzc4LDM5Nzc5LDM5NzgwLDM5NzgxLDM5NzgyLDM5NzgzLDM5Nzg0LDM5Nzg1LDM5Nzg2LDM5Nzg3LDM5Nzg4LDM5Nzg5LDM5NzkwLDM5Nzkx'@; put 'LDM5NzkyLDM5NzkzLDM5Nzk0LDM5Nzk1LDM5Nzk2LDM5Nzk3LDM5Nzk4LDM5Nzk5LDM5ODAwLDM5ODAxLDM5ODAyLDM5ODAzLDMxNzc1LDMxNzg2LDMxNzgyLDMxODAwLDMxODA5LDMxODA4LDMzMjc4LDMzMjgxLDMzMjgyLDMzMjg0LDMzMjYwLDM0ODg0LDMzMzEzLDMzMzE0LDMzMzE1LDMz'@; put 'MzI1LDMzMzI3LDMzMzIwLDMzMzIzLDMzMzM2LDMzMzM5LDMzMzMxLDMzMzMyLDMzMzQyLDMzMzQ4LDMzMzUzLDMzMzU1LDMzMzU5LDMzMzcwLDMzMzc1LDMzMzg0LDM0OTQyLDM0OTQ5LDM0OTUyLDM1MDMyLDM1MDM5LDM1MTY2LDMyNjY5LDMyNjcxLDMyNjc5LDMyNjg3LDMyNjg4LDMyNjkw'@; put 'LDMxODY4LDI1OTI5LDMxODg5LDMxOTAxLDMxOTAwLDMxOTAyLDMxOTA2LDMxOTIyLDMxOTMyLDMxOTMzLDMxOTM3LDMxOTQzLDMxOTQ4LDMxOTQ5LDMxOTQ0LDMxOTQxLDMxOTU5LDMxOTc2LDMzMzkwLDI2MjgwLDMyNzAzLDMyNzE4LDMyNzI1LDMyNzQxLDMyNzM3LDMyNzQyLDMyNzQ1LDMy'@; put 'NzUwLDMyNzU1LDMxOTkyLDMyMTE5LDMyMTY2LDMyMTc0LDMyMzI3LDMyNDExLDQwNjMyLDQwNjI4LDM2MjExLDM2MjI4LDM2MjQ0LDM2MjQxLDM2MjczLDM2MTk5LDM2MjA1LDM1OTExLDM1OTEzLDM3MTk0LDM3MjAwLDM3MTk4LDM3MTk5LDM3MjIwLDM5ODA0LDM5ODA1LDM5ODA2LDM5ODA3'@; put 'LDM5ODA4LDM5ODA5LDM5ODEwLDM5ODExLDM5ODEyLDM5ODEzLDM5ODE0LDM5ODE1LDM5ODE2LDM5ODE3LDM5ODE4LDM5ODE5LDM5ODIwLDM5ODIxLDM5ODIyLDM5ODIzLDM5ODI0LDM5ODI1LDM5ODI2LDM5ODI3LDM5ODI4LDM5ODI5LDM5ODMwLDM5ODMxLDM5ODMyLDM5ODMzLDM5ODM0LDM5'@; put 'ODM1LDM5ODM2LDM5ODM3LDM5ODM4LDM5ODM5LDM5ODQwLDM5ODQxLDM5ODQyLDM5ODQzLDM5ODQ0LDM5ODQ1LDM5ODQ2LDM5ODQ3LDM5ODQ4LDM5ODQ5LDM5ODUwLDM5ODUxLDM5ODUyLDM5ODUzLDM5ODU0LDM5ODU1LDM5ODU2LDM5ODU3LDM5ODU4LDM5ODU5LDM5ODYwLDM5ODYxLDM5ODYy'@; put 'LDM5ODYzLDM5ODY0LDM5ODY1LDM5ODY2LDM5ODY3LDM5ODY4LDM5ODY5LDM5ODcwLDM5ODcxLDM5ODcyLDM5ODczLDM5ODc0LDM5ODc1LDM5ODc2LDM5ODc3LDM5ODc4LDM5ODc5LDM5ODgwLDM5ODgxLDM5ODgyLDM5ODgzLDM5ODg0LDM5ODg1LDM5ODg2LDM5ODg3LDM5ODg4LDM5ODg5LDM5'@; put 'ODkwLDM5ODkxLDM5ODkyLDM5ODkzLDM5ODk0LDM5ODk1LDM5ODk2LDM5ODk3LDM5ODk4LDM5ODk5LDM3MjE4LDM3MjE3LDM3MjMyLDM3MjI1LDM3MjMxLDM3MjQ1LDM3MjQ2LDM3MjM0LDM3MjM2LDM3MjQxLDM3MjYwLDM3MjUzLDM3MjY0LDM3MjYxLDM3MjY1LDM3MjgyLDM3MjgzLDM3Mjkw'@; put 'LDM3MjkzLDM3Mjk0LDM3Mjk1LDM3MzAxLDM3MzAwLDM3MzA2LDM1OTI1LDQwNTc0LDM2MjgwLDM2MzMxLDM2MzU3LDM2NDQxLDM2NDU3LDM2Mjc3LDM2Mjg3LDM2Mjg0LDM2MjgyLDM2MjkyLDM2MzEwLDM2MzExLDM2MzE0LDM2MzE4LDM2MzAyLDM2MzAzLDM2MzE1LDM2Mjk0LDM2MzMyLDM2'@; put 'MzQzLDM2MzQ0LDM2MzIzLDM2MzQ1LDM2MzQ3LDM2MzI0LDM2MzYxLDM2MzQ5LDM2MzcyLDM2MzgxLDM2MzgzLDM2Mzk2LDM2Mzk4LDM2Mzg3LDM2Mzk5LDM2NDEwLDM2NDE2LDM2NDA5LDM2NDA1LDM2NDEzLDM2NDAxLDM2NDI1LDM2NDE3LDM2NDE4LDM2NDMzLDM2NDM0LDM2NDI2LDM2NDY0'@; put 'LDM2NDcwLDM2NDc2LDM2NDYzLDM2NDY4LDM2NDg1LDM2NDk1LDM2NTAwLDM2NDk2LDM2NTA4LDM2NTEwLDM1OTYwLDM1OTcwLDM1OTc4LDM1OTczLDM1OTkyLDM1OTg4LDI2MDExLDM1Mjg2LDM1Mjk0LDM1MjkwLDM1MjkyLDM5OTAwLDM5OTAxLDM5OTAyLDM5OTAzLDM5OTA0LDM5OTA1LDM5'@; put 'OTA2LDM5OTA3LDM5OTA4LDM5OTA5LDM5OTEwLDM5OTExLDM5OTEyLDM5OTEzLDM5OTE0LDM5OTE1LDM5OTE2LDM5OTE3LDM5OTE4LDM5OTE5LDM5OTIwLDM5OTIxLDM5OTIyLDM5OTIzLDM5OTI0LDM5OTI1LDM5OTI2LDM5OTI3LDM5OTI4LDM5OTI5LDM5OTMwLDM5OTMxLDM5OTMyLDM5OTMz'@; put 'LDM5OTM0LDM5OTM1LDM5OTM2LDM5OTM3LDM5OTM4LDM5OTM5LDM5OTQwLDM5OTQxLDM5OTQyLDM5OTQzLDM5OTQ0LDM5OTQ1LDM5OTQ2LDM5OTQ3LDM5OTQ4LDM5OTQ5LDM5OTUwLDM5OTUxLDM5OTUyLDM5OTUzLDM5OTU0LDM5OTU1LDM5OTU2LDM5OTU3LDM5OTU4LDM5OTU5LDM5OTYwLDM5'@; put 'OTYxLDM5OTYyLDM5OTYzLDM5OTY0LDM5OTY1LDM5OTY2LDM5OTY3LDM5OTY4LDM5OTY5LDM5OTcwLDM5OTcxLDM5OTcyLDM5OTczLDM5OTc0LDM5OTc1LDM5OTc2LDM5OTc3LDM5OTc4LDM5OTc5LDM5OTgwLDM5OTgxLDM5OTgyLDM5OTgzLDM5OTg0LDM5OTg1LDM5OTg2LDM5OTg3LDM5OTg4'@; put 'LDM5OTg5LDM5OTkwLDM5OTkxLDM5OTkyLDM5OTkzLDM5OTk0LDM5OTk1LDM1MzAxLDM1MzA3LDM1MzExLDM1MzkwLDM1NjIyLDM4NzM5LDM4NjMzLDM4NjQzLDM4NjM5LDM4NjYyLDM4NjU3LDM4NjY0LDM4NjcxLDM4NjcwLDM4Njk4LDM4NzAxLDM4NzA0LDM4NzE4LDQwODMyLDQwODM1LDQw'@; put 'ODM3LDQwODM4LDQwODM5LDQwODQwLDQwODQxLDQwODQyLDQwODQ0LDQwNzAyLDQwNzE1LDQwNzE3LDM4NTg1LDM4NTg4LDM4NTg5LDM4NjA2LDM4NjEwLDMwNjU1LDM4NjI0LDM3NTE4LDM3NTUwLDM3NTc2LDM3Njk0LDM3NzM4LDM3ODM0LDM3Nzc1LDM3OTUwLDM3OTk1LDQwMDYzLDQwMDY2'@; put 'LDQwMDY5LDQwMDcwLDQwMDcxLDQwMDcyLDMxMjY3LDQwMDc1LDQwMDc4LDQwMDgwLDQwMDgxLDQwMDgyLDQwMDg0LDQwMDg1LDQwMDkwLDQwMDkxLDQwMDk0LDQwMDk1LDQwMDk2LDQwMDk3LDQwMDk4LDQwMDk5LDQwMTAxLDQwMTAyLDQwMTAzLDQwMTA0LDQwMTA1LDQwMTA3LDQwMTA5LDQw'@; put 'MTEwLDQwMTEyLDQwMTEzLDQwMTE0LDQwMTE1LDQwMTE2LDQwMTE3LDQwMTE4LDQwMTE5LDQwMTIyLDQwMTIzLDQwMTI0LDQwMTI1LDQwMTMyLDQwMTMzLDQwMTM0LDQwMTM1LDQwMTM4LDQwMTM5LDM5OTk2LDM5OTk3LDM5OTk4LDM5OTk5LDRlNCw0MDAwMSw0MDAwMiw0MDAwMyw0MDAwNCw0'@; put 'MDAwNSw0MDAwNiw0MDAwNyw0MDAwOCw0MDAwOSw0MDAxMCw0MDAxMSw0MDAxMiw0MDAxMyw0MDAxNCw0MDAxNSw0MDAxNiw0MDAxNyw0MDAxOCw0MDAxOSw0MDAyMCw0MDAyMSw0MDAyMiw0MDAyMyw0MDAyNCw0MDAyNSw0MDAyNiw0MDAyNyw0MDAyOCw0MDAyOSw0MDAzMCw0MDAzMSw0MDAz'@; put 'Miw0MDAzMyw0MDAzNCw0MDAzNSw0MDAzNiw0MDAzNyw0MDAzOCw0MDAzOSw0MDA0MCw0MDA0MSw0MDA0Miw0MDA0Myw0MDA0NCw0MDA0NSw0MDA0Niw0MDA0Nyw0MDA0OCw0MDA0OSw0MDA1MCw0MDA1MSw0MDA1Miw0MDA1Myw0MDA1NCw0MDA1NSw0MDA1Niw0MDA1Nyw0MDA1OCw0MDA1OSw0'@; put 'MDA2MSw0MDA2Miw0MDA2NCw0MDA2Nyw0MDA2OCw0MDA3Myw0MDA3NCw0MDA3Niw0MDA3OSw0MDA4Myw0MDA4Niw0MDA4Nyw0MDA4OCw0MDA4OSw0MDA5Myw0MDEwNiw0MDEwOCw0MDExMSw0MDEyMSw0MDEyNiw0MDEyNyw0MDEyOCw0MDEyOSw0MDEzMCw0MDEzNiw0MDEzNyw0MDE0NSw0MDE0'@; put 'Niw0MDE1NCw0MDE1NSw0MDE2MCw0MDE2MSw0MDE0MCw0MDE0MSw0MDE0Miw0MDE0Myw0MDE0NCw0MDE0Nyw0MDE0OCw0MDE0OSw0MDE1MSw0MDE1Miw0MDE1Myw0MDE1Niw0MDE1Nyw0MDE1OSw0MDE2MiwzODc4MCwzODc4OSwzODgwMSwzODgwMiwzODgwNCwzODgzMSwzODgyNywzODgxOSwz'@; put 'ODgzNCwzODgzNiwzOTYwMSwzOTYwMCwzOTYwNyw0MDUzNiwzOTYwNiwzOTYxMCwzOTYxMiwzOTYxNywzOTYxNiwzOTYyMSwzOTYxOCwzOTYyNywzOTYyOCwzOTYzMywzOTc0OSwzOTc0NywzOTc1MSwzOTc1MywzOTc1MiwzOTc1NywzOTc2MSwzOTE0NCwzOTE4MSwzOTIxNCwzOTI1MywzOTI1'@; put 'MiwzOTY0NywzOTY0OSwzOTY1NCwzOTY2MywzOTY1OSwzOTY3NSwzOTY2MSwzOTY3MywzOTY4OCwzOTY5NSwzOTY5OSwzOTcxMSwzOTcxNSw0MDYzNyw0MDYzOCwzMjMxNSw0MDU3OCw0MDU4Myw0MDU4NCw0MDU4Nyw0MDU5NCwzNzg0Niw0MDYwNSw0MDYwNyw0MDY2Nyw0MDY2OCw0MDY2OSw0'@; put 'MDY3Miw0MDY3MSw0MDY3NCw0MDY4MSw0MDY3OSw0MDY3Nyw0MDY4Miw0MDY4Nyw0MDczOCw0MDc0OCw0MDc1MSw0MDc2MSw0MDc1OSw0MDc2NSw0MDc2Niw0MDc3Miw0MDE2Myw0MDE2NCw0MDE2NSw0MDE2Niw0MDE2Nyw0MDE2OCw0MDE2OSw0MDE3MCw0MDE3MSw0MDE3Miw0MDE3Myw0MDE3'@; put 'NCw0MDE3NSw0MDE3Niw0MDE3Nyw0MDE3OCw0MDE3OSw0MDE4MCw0MDE4MSw0MDE4Miw0MDE4Myw0MDE4NCw0MDE4NSw0MDE4Niw0MDE4Nyw0MDE4OCw0MDE4OSw0MDE5MCw0MDE5MSw0MDE5Miw0MDE5Myw0MDE5NCw0MDE5NSw0MDE5Niw0MDE5Nyw0MDE5OCw0MDE5OSw0MDIwMCw0MDIwMSw0'@; put 'MDIwMiw0MDIwMyw0MDIwNCw0MDIwNSw0MDIwNiw0MDIwNyw0MDIwOCw0MDIwOSw0MDIxMCw0MDIxMSw0MDIxMiw0MDIxMyw0MDIxNCw0MDIxNSw0MDIxNiw0MDIxNyw0MDIxOCw0MDIxOSw0MDIyMCw0MDIyMSw0MDIyMiw0MDIyMyw0MDIyNCw0MDIyNSw0MDIyNiw0MDIyNyw0MDIyOCw0MDIy'@; put 'OSw0MDIzMCw0MDIzMSw0MDIzMiw0MDIzMyw0MDIzNCw0MDIzNSw0MDIzNiw0MDIzNyw0MDIzOCw0MDIzOSw0MDI0MCw0MDI0MSw0MDI0Miw0MDI0Myw0MDI0NCw0MDI0NSw0MDI0Niw0MDI0Nyw0MDI0OCw0MDI0OSw0MDI1MCw0MDI1MSw0MDI1Miw0MDI1Myw0MDI1NCw0MDI1NSw0MDI1Niw0'@; put 'MDI1Nyw0MDI1OCw1NzkwOCw1NzkwOSw1NzkxMCw1NzkxMSw1NzkxMiw1NzkxMyw1NzkxNCw1NzkxNSw1NzkxNiw1NzkxNyw1NzkxOCw1NzkxOSw1NzkyMCw1NzkyMSw1NzkyMiw1NzkyMyw1NzkyNCw1NzkyNSw1NzkyNiw1NzkyNyw1NzkyOCw1NzkyOSw1NzkzMCw1NzkzMSw1NzkzMiw1Nzkz'@; put 'Myw1NzkzNCw1NzkzNSw1NzkzNiw1NzkzNyw1NzkzOCw1NzkzOSw1Nzk0MCw1Nzk0MSw1Nzk0Miw1Nzk0Myw1Nzk0NCw1Nzk0NSw1Nzk0Niw1Nzk0Nyw1Nzk0OCw1Nzk0OSw1Nzk1MCw1Nzk1MSw1Nzk1Miw1Nzk1Myw1Nzk1NCw1Nzk1NSw1Nzk1Niw1Nzk1Nyw1Nzk1OCw1Nzk1OSw1Nzk2MCw1'@; put 'Nzk2MSw1Nzk2Miw1Nzk2Myw1Nzk2NCw1Nzk2NSw1Nzk2Niw1Nzk2Nyw1Nzk2OCw1Nzk2OSw1Nzk3MCw1Nzk3MSw1Nzk3Miw1Nzk3Myw1Nzk3NCw1Nzk3NSw1Nzk3Niw1Nzk3Nyw1Nzk3OCw1Nzk3OSw1Nzk4MCw1Nzk4MSw1Nzk4Miw1Nzk4Myw1Nzk4NCw1Nzk4NSw1Nzk4Niw1Nzk4Nyw1Nzk4'@; put 'OCw1Nzk4OSw1Nzk5MCw1Nzk5MSw1Nzk5Miw1Nzk5Myw1Nzk5NCw1Nzk5NSw1Nzk5Niw1Nzk5Nyw1Nzk5OCw1Nzk5OSw1OGUzLDU4MDAxLDQwMjU5LDQwMjYwLDQwMjYxLDQwMjYyLDQwMjYzLDQwMjY0LDQwMjY1LDQwMjY2LDQwMjY3LDQwMjY4LDQwMjY5LDQwMjcwLDQwMjcxLDQwMjcyLDQw'@; put 'MjczLDQwMjc0LDQwMjc1LDQwMjc2LDQwMjc3LDQwMjc4LDQwMjc5LDQwMjgwLDQwMjgxLDQwMjgyLDQwMjgzLDQwMjg0LDQwMjg1LDQwMjg2LDQwMjg3LDQwMjg4LDQwMjg5LDQwMjkwLDQwMjkxLDQwMjkyLDQwMjkzLDQwMjk0LDQwMjk1LDQwMjk2LDQwMjk3LDQwMjk4LDQwMjk5LDQwMzAw'@; put 'LDQwMzAxLDQwMzAyLDQwMzAzLDQwMzA0LDQwMzA1LDQwMzA2LDQwMzA3LDQwMzA4LDQwMzA5LDQwMzEwLDQwMzExLDQwMzEyLDQwMzEzLDQwMzE0LDQwMzE1LDQwMzE2LDQwMzE3LDQwMzE4LDQwMzE5LDQwMzIwLDQwMzIxLDQwMzIyLDQwMzIzLDQwMzI0LDQwMzI1LDQwMzI2LDQwMzI3LDQw'@; put 'MzI4LDQwMzI5LDQwMzMwLDQwMzMxLDQwMzMyLDQwMzMzLDQwMzM0LDQwMzM1LDQwMzM2LDQwMzM3LDQwMzM4LDQwMzM5LDQwMzQwLDQwMzQxLDQwMzQyLDQwMzQzLDQwMzQ0LDQwMzQ1LDQwMzQ2LDQwMzQ3LDQwMzQ4LDQwMzQ5LDQwMzUwLDQwMzUxLDQwMzUyLDQwMzUzLDQwMzU0LDU4MDAy'@; put 'LDU4MDAzLDU4MDA0LDU4MDA1LDU4MDA2LDU4MDA3LDU4MDA4LDU4MDA5LDU4MDEwLDU4MDExLDU4MDEyLDU4MDEzLDU4MDE0LDU4MDE1LDU4MDE2LDU4MDE3LDU4MDE4LDU4MDE5LDU4MDIwLDU4MDIxLDU4MDIyLDU4MDIzLDU4MDI0LDU4MDI1LDU4MDI2LDU4MDI3LDU4MDI4LDU4MDI5LDU4'@; put 'MDMwLDU4MDMxLDU4MDMyLDU4MDMzLDU4MDM0LDU4MDM1LDU4MDM2LDU4MDM3LDU4MDM4LDU4MDM5LDU4MDQwLDU4MDQxLDU4MDQyLDU4MDQzLDU4MDQ0LDU4MDQ1LDU4MDQ2LDU4MDQ3LDU4MDQ4LDU4MDQ5LDU4MDUwLDU4MDUxLDU4MDUyLDU4MDUzLDU4MDU0LDU4MDU1LDU4MDU2LDU4MDU3'@; put 'LDU4MDU4LDU4MDU5LDU4MDYwLDU4MDYxLDU4MDYyLDU4MDYzLDU4MDY0LDU4MDY1LDU4MDY2LDU4MDY3LDU4MDY4LDU4MDY5LDU4MDcwLDU4MDcxLDU4MDcyLDU4MDczLDU4MDc0LDU4MDc1LDU4MDc2LDU4MDc3LDU4MDc4LDU4MDc5LDU4MDgwLDU4MDgxLDU4MDgyLDU4MDgzLDU4MDg0LDU4'@; put 'MDg1LDU4MDg2LDU4MDg3LDU4MDg4LDU4MDg5LDU4MDkwLDU4MDkxLDU4MDkyLDU4MDkzLDU4MDk0LDU4MDk1LDQwMzU1LDQwMzU2LDQwMzU3LDQwMzU4LDQwMzU5LDQwMzYwLDQwMzYxLDQwMzYyLDQwMzYzLDQwMzY0LDQwMzY1LDQwMzY2LDQwMzY3LDQwMzY4LDQwMzY5LDQwMzcwLDQwMzcx'@; put 'LDQwMzcyLDQwMzczLDQwMzc0LDQwMzc1LDQwMzc2LDQwMzc3LDQwMzc4LDQwMzc5LDQwMzgwLDQwMzgxLDQwMzgyLDQwMzgzLDQwMzg0LDQwMzg1LDQwMzg2LDQwMzg3LDQwMzg4LDQwMzg5LDQwMzkwLDQwMzkxLDQwMzkyLDQwMzkzLDQwMzk0LDQwMzk1LDQwMzk2LDQwMzk3LDQwMzk4LDQw'@; put 'Mzk5LDQwNDAwLDQwNDAxLDQwNDAyLDQwNDAzLDQwNDA0LDQwNDA1LDQwNDA2LDQwNDA3LDQwNDA4LDQwNDA5LDQwNDEwLDQwNDExLDQwNDEyLDQwNDEzLDQwNDE0LDQwNDE1LDQwNDE2LDQwNDE3LDQwNDE4LDQwNDE5LDQwNDIwLDQwNDIxLDQwNDIyLDQwNDIzLDQwNDI0LDQwNDI1LDQwNDI2'@; put 'LDQwNDI3LDQwNDI4LDQwNDI5LDQwNDMwLDQwNDMxLDQwNDMyLDQwNDMzLDQwNDM0LDQwNDM1LDQwNDM2LDQwNDM3LDQwNDM4LDQwNDM5LDQwNDQwLDQwNDQxLDQwNDQyLDQwNDQzLDQwNDQ0LDQwNDQ1LDQwNDQ2LDQwNDQ3LDQwNDQ4LDQwNDQ5LDQwNDUwLDU4MDk2LDU4MDk3LDU4MDk4LDU4'@; put 'MDk5LDU4MTAwLDU4MTAxLDU4MTAyLDU4MTAzLDU4MTA0LDU4MTA1LDU4MTA2LDU4MTA3LDU4MTA4LDU4MTA5LDU4MTEwLDU4MTExLDU4MTEyLDU4MTEzLDU4MTE0LDU4MTE1LDU4MTE2LDU4MTE3LDU4MTE4LDU4MTE5LDU4MTIwLDU4MTIxLDU4MTIyLDU4MTIzLDU4MTI0LDU4MTI1LDU4MTI2'@; put 'LDU4MTI3LDU4MTI4LDU4MTI5LDU4MTMwLDU4MTMxLDU4MTMyLDU4MTMzLDU4MTM0LDU4MTM1LDU4MTM2LDU4MTM3LDU4MTM4LDU4MTM5LDU4MTQwLDU4MTQxLDU4MTQyLDU4MTQzLDU4MTQ0LDU4MTQ1LDU4MTQ2LDU4MTQ3LDU4MTQ4LDU4MTQ5LDU4MTUwLDU4MTUxLDU4MTUyLDU4MTUzLDU4'@; put 'MTU0LDU4MTU1LDU4MTU2LDU4MTU3LDU4MTU4LDU4MTU5LDU4MTYwLDU4MTYxLDU4MTYyLDU4MTYzLDU4MTY0LDU4MTY1LDU4MTY2LDU4MTY3LDU4MTY4LDU4MTY5LDU4MTcwLDU4MTcxLDU4MTcyLDU4MTczLDU4MTc0LDU4MTc1LDU4MTc2LDU4MTc3LDU4MTc4LDU4MTc5LDU4MTgwLDU4MTgx'@; put 'LDU4MTgyLDU4MTgzLDU4MTg0LDU4MTg1LDU4MTg2LDU4MTg3LDU4MTg4LDU4MTg5LDQwNDUxLDQwNDUyLDQwNDUzLDQwNDU0LDQwNDU1LDQwNDU2LDQwNDU3LDQwNDU4LDQwNDU5LDQwNDYwLDQwNDYxLDQwNDYyLDQwNDYzLDQwNDY0LDQwNDY1LDQwNDY2LDQwNDY3LDQwNDY4LDQwNDY5LDQw'@; put 'NDcwLDQwNDcxLDQwNDcyLDQwNDczLDQwNDc0LDQwNDc1LDQwNDc2LDQwNDc3LDQwNDc4LDQwNDg0LDQwNDg3LDQwNDk0LDQwNDk2LDQwNTAwLDQwNTA3LDQwNTA4LDQwNTEyLDQwNTI1LDQwNTI4LDQwNTMwLDQwNTMxLDQwNTMyLDQwNTM0LDQwNTM3LDQwNTQxLDQwNTQzLDQwNTQ0LDQwNTQ1'@; put 'LDQwNTQ2LDQwNTQ5LDQwNTU4LDQwNTU5LDQwNTYyLDQwNTY0LDQwNTY1LDQwNTY2LDQwNTY3LDQwNTY4LDQwNTY5LDQwNTcwLDQwNTcxLDQwNTcyLDQwNTczLDQwNTc2LDQwNTc3LDQwNTc5LDQwNTgwLDQwNTgxLDQwNTgyLDQwNTg1LDQwNTg2LDQwNTg4LDQwNTg5LDQwNTkwLDQwNTkxLDQw'@; put 'NTkyLDQwNTkzLDQwNTk2LDQwNTk3LDQwNTk4LDQwNTk5LDQwNjAwLDQwNjAxLDQwNjAyLDQwNjAzLDQwNjA0LDQwNjA2LDQwNjA4LDQwNjA5LDQwNjEwLDQwNjExLDQwNjEyLDQwNjEzLDQwNjE1LDQwNjE2LDQwNjE3LDQwNjE4LDU4MTkwLDU4MTkxLDU4MTkyLDU4MTkzLDU4MTk0LDU4MTk1'@; put 'LDU4MTk2LDU4MTk3LDU4MTk4LDU4MTk5LDU4MjAwLDU4MjAxLDU4MjAyLDU4MjAzLDU4MjA0LDU4MjA1LDU4MjA2LDU4MjA3LDU4MjA4LDU4MjA5LDU4MjEwLDU4MjExLDU4MjEyLDU4MjEzLDU4MjE0LDU4MjE1LDU4MjE2LDU4MjE3LDU4MjE4LDU4MjE5LDU4MjIwLDU4MjIxLDU4MjIyLDU4'@; put 'MjIzLDU4MjI0LDU4MjI1LDU4MjI2LDU4MjI3LDU4MjI4LDU4MjI5LDU4MjMwLDU4MjMxLDU4MjMyLDU4MjMzLDU4MjM0LDU4MjM1LDU4MjM2LDU4MjM3LDU4MjM4LDU4MjM5LDU4MjQwLDU4MjQxLDU4MjQyLDU4MjQzLDU4MjQ0LDU4MjQ1LDU4MjQ2LDU4MjQ3LDU4MjQ4LDU4MjQ5LDU4MjUw'@; put 'LDU4MjUxLDU4MjUyLDU4MjUzLDU4MjU0LDU4MjU1LDU4MjU2LDU4MjU3LDU4MjU4LDU4MjU5LDU4MjYwLDU4MjYxLDU4MjYyLDU4MjYzLDU4MjY0LDU4MjY1LDU4MjY2LDU4MjY3LDU4MjY4LDU4MjY5LDU4MjcwLDU4MjcxLDU4MjcyLDU4MjczLDU4Mjc0LDU4Mjc1LDU4Mjc2LDU4Mjc3LDU4'@; put 'Mjc4LDU4Mjc5LDU4MjgwLDU4MjgxLDU4MjgyLDU4MjgzLDQwNjE5LDQwNjIwLDQwNjIxLDQwNjIyLDQwNjIzLDQwNjI0LDQwNjI1LDQwNjI2LDQwNjI3LDQwNjI5LDQwNjMwLDQwNjMxLDQwNjMzLDQwNjM0LDQwNjM2LDQwNjM5LDQwNjQwLDQwNjQxLDQwNjQyLDQwNjQzLDQwNjQ1LDQwNjQ2'@; put 'LDQwNjQ3LDQwNjQ4LDQwNjUwLDQwNjUxLDQwNjUyLDQwNjU2LDQwNjU4LDQwNjU5LDQwNjYxLDQwNjYyLDQwNjYzLDQwNjY1LDQwNjY2LDQwNjcwLDQwNjczLDQwNjc1LDQwNjc2LDQwNjc4LDQwNjgwLDQwNjgzLDQwNjg0LDQwNjg1LDQwNjg2LDQwNjg4LDQwNjg5LDQwNjkwLDQwNjkxLDQw'@; put 'NjkyLDQwNjkzLDQwNjk0LDQwNjk1LDQwNjk2LDQwNjk4LDQwNzAxLDQwNzAzLDQwNzA0LDQwNzA1LDQwNzA2LDQwNzA3LDQwNzA4LDQwNzA5LDQwNzEwLDQwNzExLDQwNzEyLDQwNzEzLDQwNzE0LDQwNzE2LDQwNzE5LDQwNzIxLDQwNzIyLDQwNzI0LDQwNzI1LDQwNzI2LDQwNzI4LDQwNzMw'@; put 'LDQwNzMxLDQwNzMyLDQwNzMzLDQwNzM0LDQwNzM1LDQwNzM3LDQwNzM5LDQwNzQwLDQwNzQxLDQwNzQyLDQwNzQzLDQwNzQ0LDQwNzQ1LDQwNzQ2LDQwNzQ3LDQwNzQ5LDQwNzUwLDQwNzUyLDQwNzUzLDU4Mjg0LDU4Mjg1LDU4Mjg2LDU4Mjg3LDU4Mjg4LDU4Mjg5LDU4MjkwLDU4MjkxLDU4'@; put 'MjkyLDU4MjkzLDU4Mjk0LDU4Mjk1LDU4Mjk2LDU4Mjk3LDU4Mjk4LDU4Mjk5LDU4MzAwLDU4MzAxLDU4MzAyLDU4MzAzLDU4MzA0LDU4MzA1LDU4MzA2LDU4MzA3LDU4MzA4LDU4MzA5LDU4MzEwLDU4MzExLDU4MzEyLDU4MzEzLDU4MzE0LDU4MzE1LDU4MzE2LDU4MzE3LDU4MzE4LDU4MzE5'@; put 'LDU4MzIwLDU4MzIxLDU4MzIyLDU4MzIzLDU4MzI0LDU4MzI1LDU4MzI2LDU4MzI3LDU4MzI4LDU4MzI5LDU4MzMwLDU4MzMxLDU4MzMyLDU4MzMzLDU4MzM0LDU4MzM1LDU4MzM2LDU4MzM3LDU4MzM4LDU4MzM5LDU4MzQwLDU4MzQxLDU4MzQyLDU4MzQzLDU4MzQ0LDU4MzQ1LDU4MzQ2LDU4'@; put 'MzQ3LDU4MzQ4LDU4MzQ5LDU4MzUwLDU4MzUxLDU4MzUyLDU4MzUzLDU4MzU0LDU4MzU1LDU4MzU2LDU4MzU3LDU4MzU4LDU4MzU5LDU4MzYwLDU4MzYxLDU4MzYyLDU4MzYzLDU4MzY0LDU4MzY1LDU4MzY2LDU4MzY3LDU4MzY4LDU4MzY5LDU4MzcwLDU4MzcxLDU4MzcyLDU4MzczLDU4Mzc0'@; put 'LDU4Mzc1LDU4Mzc2LDU4Mzc3LDQwNzU0LDQwNzU1LDQwNzU2LDQwNzU3LDQwNzU4LDQwNzYwLDQwNzYyLDQwNzY0LDQwNzY3LDQwNzY4LDQwNzY5LDQwNzcwLDQwNzcxLDQwNzczLDQwNzc0LDQwNzc1LDQwNzc2LDQwNzc3LDQwNzc4LDQwNzc5LDQwNzgwLDQwNzgxLDQwNzgyLDQwNzgzLDQw'@; put 'Nzg2LDQwNzg3LDQwNzg4LDQwNzg5LDQwNzkwLDQwNzkxLDQwNzkyLDQwNzkzLDQwNzk0LDQwNzk1LDQwNzk2LDQwNzk3LDQwNzk4LDQwNzk5LDQwODAwLDQwODAxLDQwODAyLDQwODAzLDQwODA0LDQwODA1LDQwODA2LDQwODA3LDQwODA4LDQwODA5LDQwODEwLDQwODExLDQwODEyLDQwODEz'@; put 'LDQwODE0LDQwODE1LDQwODE2LDQwODE3LDQwODE4LDQwODE5LDQwODIwLDQwODIxLDQwODIyLDQwODIzLDQwODI0LDQwODI1LDQwODI2LDQwODI3LDQwODI4LDQwODI5LDQwODMwLDQwODMzLDQwODM0LDQwODQ1LDQwODQ2LDQwODQ3LDQwODQ4LDQwODQ5LDQwODUwLDQwODUxLDQwODUyLDQw'@; put 'ODUzLDQwODU0LDQwODU1LDQwODU2LDQwODYwLDQwODYxLDQwODYyLDQwODY1LDQwODY2LDQwODY3LDQwODY4LDQwODY5LDYzNzg4LDYzODY1LDYzODkzLDYzOTc1LDYzOTg1LDU4Mzc4LDU4Mzc5LDU4MzgwLDU4MzgxLDU4MzgyLDU4MzgzLDU4Mzg0LDU4Mzg1LDU4Mzg2LDU4Mzg3LDU4Mzg4'@; put 'LDU4Mzg5LDU4MzkwLDU4MzkxLDU4MzkyLDU4MzkzLDU4Mzk0LDU4Mzk1LDU4Mzk2LDU4Mzk3LDU4Mzk4LDU4Mzk5LDU4NDAwLDU4NDAxLDU4NDAyLDU4NDAzLDU4NDA0LDU4NDA1LDU4NDA2LDU4NDA3LDU4NDA4LDU4NDA5LDU4NDEwLDU4NDExLDU4NDEyLDU4NDEzLDU4NDE0LDU4NDE1LDU4'@; put 'NDE2LDU4NDE3LDU4NDE4LDU4NDE5LDU4NDIwLDU4NDIxLDU4NDIyLDU4NDIzLDU4NDI0LDU4NDI1LDU4NDI2LDU4NDI3LDU4NDI4LDU4NDI5LDU4NDMwLDU4NDMxLDU4NDMyLDU4NDMzLDU4NDM0LDU4NDM1LDU4NDM2LDU4NDM3LDU4NDM4LDU4NDM5LDU4NDQwLDU4NDQxLDU4NDQyLDU4NDQz'@; put 'LDU4NDQ0LDU4NDQ1LDU4NDQ2LDU4NDQ3LDU4NDQ4LDU4NDQ5LDU4NDUwLDU4NDUxLDU4NDUyLDU4NDUzLDU4NDU0LDU4NDU1LDU4NDU2LDU4NDU3LDU4NDU4LDU4NDU5LDU4NDYwLDU4NDYxLDU4NDYyLDU4NDYzLDU4NDY0LDU4NDY1LDU4NDY2LDU4NDY3LDU4NDY4LDU4NDY5LDU4NDcwLDU4'@; put 'NDcxLDY0MDEyLDY0MDEzLDY0MDE0LDY0MDE1LDY0MDE3LDY0MDE5LDY0MDIwLDY0MDI0LDY0MDMxLDY0MDMyLDY0MDMzLDY0MDM1LDY0MDM2LDY0MDM5LDY0MDQwLDY0MDQxLDExOTA1LDU5NDE0LDU5NDE1LDU5NDE2LDExOTA4LDEzNDI3LDEzMzgzLDExOTEyLDExOTE1LDU5NDIyLDEzNzI2'@; put 'LDEzODUwLDEzODM4LDExOTE2LDExOTI3LDE0NzAyLDE0NjE2LDU5NDMwLDE0Nzk5LDE0ODE1LDE0OTYzLDE0ODAwLDU5NDM1LDU5NDM2LDE1MTgyLDE1NDcwLDE1NTg0LDExOTQzLDU5NDQxLDU5NDQyLDExOTQ2LDE2NDcwLDE2NzM1LDExOTUwLDE3MjA3LDExOTU1LDExOTU4LDExOTU5LDU5'@; put 'NDUxLDE3MzI5LDE3MzI0LDExOTYzLDE3MzczLDE3NjIyLDE4MDE3LDE3OTk2LDU5NDU5LDE4MjExLDE4MjE3LDE4MzAwLDE4MzE3LDExOTc4LDE4NzU5LDE4ODEwLDE4ODEzLDE4ODE4LDE4ODE5LDE4ODIxLDE4ODIyLDE4ODQ3LDE4ODQzLDE4ODcxLDE4ODcwLDU5NDc2LDU5NDc3LDE5NjE5'@; put 'LDE5NjE1LDE5NjE2LDE5NjE3LDE5NTc1LDE5NjE4LDE5NzMxLDE5NzMyLDE5NzMzLDE5NzM0LDE5NzM1LDE5NzM2LDE5NzM3LDE5ODg2LDU5NDkyLDU4NDcyLDU4NDczLDU4NDc0LDU4NDc1LDU4NDc2LDU4NDc3LDU4NDc4LDU4NDc5LDU4NDgwLDU4NDgxLDU4NDgyLDU4NDgzLDU4NDg0LDU4'@; put 'NDg1LDU4NDg2LDU4NDg3LDU4NDg4LDU4NDg5LDU4NDkwLDU4NDkxLDU4NDkyLDU4NDkzLDU4NDk0LDU4NDk1LDU4NDk2LDU4NDk3LDU4NDk4LDU4NDk5LDU4NTAwLDU4NTAxLDU4NTAyLDU4NTAzLDU4NTA0LDU4NTA1LDU4NTA2LDU4NTA3LDU4NTA4LDU4NTA5LDU4NTEwLDU4NTExLDU4NTEy'@; put 'LDU4NTEzLDU4NTE0LDU4NTE1LDU4NTE2LDU4NTE3LDU4NTE4LDU4NTE5LDU4NTIwLDU4NTIxLDU4NTIyLDU4NTIzLDU4NTI0LDU4NTI1LDU4NTI2LDU4NTI3LDU4NTI4LDU4NTI5LDU4NTMwLDU4NTMxLDU4NTMyLDU4NTMzLDU4NTM0LDU4NTM1LDU4NTM2LDU4NTM3LDU4NTM4LDU4NTM5LDU4'@; put 'NTQwLDU4NTQxLDU4NTQyLDU4NTQzLDU4NTQ0LDU4NTQ1LDU4NTQ2LDU4NTQ3LDU4NTQ4LDU4NTQ5LDU4NTUwLDU4NTUxLDU4NTUyLDU4NTUzLDU4NTU0LDU4NTU1LDU4NTU2LDU4NTU3LDU4NTU4LDU4NTU5LDU4NTYwLDU4NTYxLDU4NTYyLDU4NTYzLDU4NTY0LDU4NTY1XSwiZ2IxODAzMC1y'@; put 'YW5nZXMiOltbMCwxMjhdLFszNiwxNjVdLFszOCwxNjldLFs0NSwxNzhdLFs1MCwxODRdLFs4MSwyMTZdLFs4OSwyMjZdLFs5NSwyMzVdLFs5NiwyMzhdLFsxMDAsMjQ0XSxbMTAzLDI0OF0sWzEwNCwyNTFdLFsxMDUsMjUzXSxbMTA5LDI1OF0sWzEyNiwyNzZdLFsxMzMsMjg0XSxbMTQ4LDMw'@; put 'MF0sWzE3MiwzMjVdLFsxNzUsMzI5XSxbMTc5LDMzNF0sWzIwOCwzNjRdLFszMDYsNDYzXSxbMzA3LDQ2NV0sWzMwOCw0NjddLFszMDksNDY5XSxbMzEwLDQ3MV0sWzMxMSw0NzNdLFszMTIsNDc1XSxbMzEzLDQ3N10sWzM0MSw1MDZdLFs0MjgsNTk0XSxbNDQzLDYxMF0sWzU0NCw3MTJdLFs1'@; put 'NDUsNzE2XSxbNTU4LDczMF0sWzc0MSw5MzBdLFs3NDIsOTM4XSxbNzQ5LDk2Ml0sWzc1MCw5NzBdLFs4MDUsMTAyNl0sWzgxOSwxMTA0XSxbODIwLDExMDZdLFs3OTIyLDgyMDldLFs3OTI0LDgyMTVdLFs3OTI1LDgyMThdLFs3OTI3LDgyMjJdLFs3OTM0LDgyMzFdLFs3OTQzLDgyNDFdLFs3'@; put 'OTQ0LDgyNDRdLFs3OTQ1LDgyNDZdLFs3OTUwLDgyNTJdLFs4MDYyLDgzNjVdLFs4MTQ4LDg0NTJdLFs4MTQ5LDg0NTRdLFs4MTUyLDg0NThdLFs4MTY0LDg0NzFdLFs4MTc0LDg0ODJdLFs4MjM2LDg1NTZdLFs4MjQwLDg1NzBdLFs4MjYyLDg1OTZdLFs4MjY0LDg2MDJdLFs4Mzc0LDg3MTNd'@; put 'LFs4MzgwLDg3MjBdLFs4MzgxLDg3MjJdLFs4Mzg0LDg3MjZdLFs4Mzg4LDg3MzFdLFs4MzkwLDg3MzddLFs4MzkyLDg3NDBdLFs4MzkzLDg3NDJdLFs4Mzk0LDg3NDhdLFs4Mzk2LDg3NTFdLFs4NDAxLDg3NjBdLFs4NDA2LDg3NjZdLFs4NDE2LDg3NzddLFs4NDE5LDg3ODFdLFs4NDI0LDg3'@; put 'ODddLFs4NDM3LDg4MDJdLFs4NDM5LDg4MDhdLFs4NDQ1LDg4MTZdLFs4NDgyLDg4NTRdLFs4NDg1LDg4NThdLFs4NDk2LDg4NzBdLFs4NTIxLDg4OTZdLFs4NjAzLDg5NzldLFs4OTM2LDkzMjJdLFs4OTQ2LDkzNzJdLFs5MDQ2LDk1NDhdLFs5MDUwLDk1ODhdLFs5MDYzLDk2MTZdLFs5MDY2'@; put 'LDk2MjJdLFs5MDc2LDk2MzRdLFs5MDkyLDk2NTJdLFs5MTAwLDk2NjJdLFs5MTA4LDk2NzJdLFs5MTExLDk2NzZdLFs5MTEzLDk2ODBdLFs5MTMxLDk3MDJdLFs5MTYyLDk3MzVdLFs5MTY0LDk3MzhdLFs5MjE4LDk3OTNdLFs5MjE5LDk3OTVdLFsxMTMyOSwxMTkwNl0sWzExMzMxLDExOTA5'@; put 'XSxbMTEzMzQsMTE5MTNdLFsxMTMzNiwxMTkxN10sWzExMzQ2LDExOTI4XSxbMTEzNjEsMTE5NDRdLFsxMTM2MywxMTk0N10sWzExMzY2LDExOTUxXSxbMTEzNzAsMTE5NTZdLFsxMTM3MiwxMTk2MF0sWzExMzc1LDExOTY0XSxbMTEzODksMTE5NzldLFsxMTY4MiwxMjI4NF0sWzExNjg2LDEy'@; put 'MjkyXSxbMTE2ODcsMTIzMTJdLFsxMTY5MiwxMjMxOV0sWzExNjk0LDEyMzMwXSxbMTE3MTQsMTIzNTFdLFsxMTcxNiwxMjQzNl0sWzExNzIzLDEyNDQ3XSxbMTE3MjUsMTI1MzVdLFsxMTczMCwxMjU0M10sWzExNzM2LDEyNTg2XSxbMTE5ODIsMTI4NDJdLFsxMTk4OSwxMjg1MF0sWzEyMTAy'@; put 'LDEyOTY0XSxbMTIzMzYsMTMyMDBdLFsxMjM0OCwxMzIxNV0sWzEyMzUwLDEzMjE4XSxbMTIzODQsMTMyNTNdLFsxMjM5MywxMzI2M10sWzEyMzk1LDEzMjY3XSxbMTIzOTcsMTMyNzBdLFsxMjUxMCwxMzM4NF0sWzEyNTUzLDEzNDI4XSxbMTI4NTEsMTM3MjddLFsxMjk2MiwxMzgzOV0sWzEy'@; put 'OTczLDEzODUxXSxbMTM3MzgsMTQ2MTddLFsxMzgyMywxNDcwM10sWzEzOTE5LDE0ODAxXSxbMTM5MzMsMTQ4MTZdLFsxNDA4MCwxNDk2NF0sWzE0Mjk4LDE1MTgzXSxbMTQ1ODUsMTU0NzFdLFsxNDY5OCwxNTU4NV0sWzE1NTgzLDE2NDcxXSxbMTU4NDcsMTY3MzZdLFsxNjMxOCwxNzIwOF0s'@; put 'WzE2NDM0LDE3MzI1XSxbMTY0MzgsMTczMzBdLFsxNjQ4MSwxNzM3NF0sWzE2NzI5LDE3NjIzXSxbMTcxMDIsMTc5OTddLFsxNzEyMiwxODAxOF0sWzE3MzE1LDE4MjEyXSxbMTczMjAsMTgyMThdLFsxNzQwMiwxODMwMV0sWzE3NDE4LDE4MzE4XSxbMTc4NTksMTg3NjBdLFsxNzkwOSwxODgx'@; put 'MV0sWzE3OTExLDE4ODE0XSxbMTc5MTUsMTg4MjBdLFsxNzkxNiwxODgyM10sWzE3OTM2LDE4ODQ0XSxbMTc5MzksMTg4NDhdLFsxNzk2MSwxODg3Ml0sWzE4NjY0LDE5NTc2XSxbMTg3MDMsMTk2MjBdLFsxODgxNCwxOTczOF0sWzE4OTYyLDE5ODg3XSxbMTkwNDMsNDA4NzBdLFszMzQ2OSw1'@; put 'OTI0NF0sWzMzNDcwLDU5MzM2XSxbMzM0NzEsNTkzNjddLFszMzQ4NCw1OTQxM10sWzMzNDg1LDU5NDE3XSxbMzM0OTAsNTk0MjNdLFszMzQ5Nyw1OTQzMV0sWzMzNTAxLDU5NDM3XSxbMzM1MDUsNTk0NDNdLFszMzUxMyw1OTQ1Ml0sWzMzNTIwLDU5NDYwXSxbMzM1MzYsNTk0NzhdLFszMzU1'@; put 'MCw1OTQ5M10sWzM3ODQ1LDYzNzg5XSxbMzc5MjEsNjM4NjZdLFszNzk0OCw2Mzg5NF0sWzM4MDI5LDYzOTc2XSxbMzgwMzgsNjM5ODZdLFszODA2NCw2NDAxNl0sWzM4MDY1LDY0MDE4XSxbMzgwNjYsNjQwMjFdLFszODA2OSw2NDAyNV0sWzM4MDc1LDY0MDM0XSxbMzgwNzYsNjQwMzddLFsz'@; put 'ODA3OCw2NDA0Ml0sWzM5MTA4LDY1MDc0XSxbMzkxMDksNjUwOTNdLFszOTExMyw2NTEwN10sWzM5MTE0LDY1MTEyXSxbMzkxMTUsNjUxMjddLFszOTExNiw2NTEzMl0sWzM5MjY1LDY1Mzc1XSxbMzkzOTQsNjU1MTBdLFsxODllMyw2NTUzNl1dLGppczAyMDg6WzEyMjg4LDEyMjg5LDEyMjkw'@; put 'LDY1MjkyLDY1Mjk0LDEyNTM5LDY1MzA2LDY1MzA3LDY1MzExLDY1MjgxLDEyNDQzLDEyNDQ0LDE4MCw2NTM0NCwxNjgsNjUzNDIsNjU1MDcsNjUzNDMsMTI1NDEsMTI1NDIsMTI0NDUsMTI0NDYsMTIyOTEsMjAxODksMTIyOTMsMTIyOTQsMTIyOTUsMTI1NDAsODIxMyw4MjA4LDY1Mjk1LDY1'@; put 'MzQwLDY1Mzc0LDg3NDEsNjUzNzIsODIzMCw4MjI5LDgyMTYsODIxNyw4MjIwLDgyMjEsNjUyODgsNjUyODksMTIzMDgsMTIzMDksNjUzMzksNjUzNDEsNjUzNzEsNjUzNzMsMTIyOTYsMTIyOTcsMTIyOTgsMTIyOTksMTIzMDAsMTIzMDEsMTIzMDIsMTIzMDMsMTIzMDQsMTIzMDUsNjUyOTEs'@; put 'NjUyOTMsMTc3LDIxNSwyNDcsNjUzMDksODgwMCw2NTMwOCw2NTMxMCw4ODA2LDg4MDcsODczNCw4NzU2LDk3OTQsOTc5MiwxNzYsODI0Miw4MjQzLDg0NTEsNjU1MDksNjUyODQsNjU1MDQsNjU1MDUsNjUyODUsNjUyODMsNjUyODYsNjUyOTAsNjUzMTIsMTY3LDk3MzQsOTczMyw5Njc1LDk2'@; put 'NzksOTY3OCw5NjcxLDk2NzAsOTYzMyw5NjMyLDk2NTEsOTY1MCw5NjYxLDk2NjAsODI1MSwxMjMwNiw4NTk0LDg1OTIsODU5Myw4NTk1LDEyMzA3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw4NzEyLDg3MTUsODgzOCw4ODM5LDg4MzQs'@; put 'ODgzNSw4NzQ2LDg3NDUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDg3NDMsODc0NCw2NTUwNiw4NjU4LDg2NjAsODcwNCw4NzA3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw4NzM2LDg4NjksODk3OCw4NzA2'@; put 'LDg3MTEsODgwMSw4Nzg2LDg4MTAsODgxMSw4NzMwLDg3NjUsODczMyw4NzU3LDg3NDcsODc0OCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDg0OTEsODI0MCw5ODM5LDk4MzcsOTgzNCw4MjI0LDgyMjUsMTgyLG51bGwsbnVsbCxudWxsLG51bGwsOTcxMSxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw2NTI5Niw2NTI5Nyw2NTI5OCw2NTI5OSw2NTMwMCw2NTMwMSw2NTMwMiw2NTMwMyw2NTMwNCw2NTMwNSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDY1MzEz'@; put 'LDY1MzE0LDY1MzE1LDY1MzE2LDY1MzE3LDY1MzE4LDY1MzE5LDY1MzIwLDY1MzIxLDY1MzIyLDY1MzIzLDY1MzI0LDY1MzI1LDY1MzI2LDY1MzI3LDY1MzI4LDY1MzI5LDY1MzMwLDY1MzMxLDY1MzMyLDY1MzMzLDY1MzM0LDY1MzM1LDY1MzM2LDY1MzM3LDY1MzM4LG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLDY1MzQ1LDY1MzQ2LDY1MzQ3LDY1MzQ4LDY1MzQ5LDY1MzUwLDY1MzUxLDY1MzUyLDY1MzUzLDY1MzU0LDY1MzU1LDY1MzU2LDY1MzU3LDY1MzU4LDY1MzU5LDY1MzYwLDY1MzYxLDY1MzYyLDY1MzYzLDY1MzY0LDY1MzY1LDY1MzY2LDY1MzY3LDY1MzY4LDY1MzY5'@; put 'LDY1MzcwLG51bGwsbnVsbCxudWxsLG51bGwsMTIzNTMsMTIzNTQsMTIzNTUsMTIzNTYsMTIzNTcsMTIzNTgsMTIzNTksMTIzNjAsMTIzNjEsMTIzNjIsMTIzNjMsMTIzNjQsMTIzNjUsMTIzNjYsMTIzNjcsMTIzNjgsMTIzNjksMTIzNzAsMTIzNzEsMTIzNzIsMTIzNzMsMTIzNzQsMTIzNzUs'@; put 'MTIzNzYsMTIzNzcsMTIzNzgsMTIzNzksMTIzODAsMTIzODEsMTIzODIsMTIzODMsMTIzODQsMTIzODUsMTIzODYsMTIzODcsMTIzODgsMTIzODksMTIzOTAsMTIzOTEsMTIzOTIsMTIzOTMsMTIzOTQsMTIzOTUsMTIzOTYsMTIzOTcsMTIzOTgsMTIzOTksMTI0MDAsMTI0MDEsMTI0MDIsMTI0'@; put 'MDMsMTI0MDQsMTI0MDUsMTI0MDYsMTI0MDcsMTI0MDgsMTI0MDksMTI0MTAsMTI0MTEsMTI0MTIsMTI0MTMsMTI0MTQsMTI0MTUsMTI0MTYsMTI0MTcsMTI0MTgsMTI0MTksMTI0MjAsMTI0MjEsMTI0MjIsMTI0MjMsMTI0MjQsMTI0MjUsMTI0MjYsMTI0MjcsMTI0MjgsMTI0MjksMTI0MzAs'@; put 'MTI0MzEsMTI0MzIsMTI0MzMsMTI0MzQsMTI0MzUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDEyNDQ5LDEyNDUwLDEyNDUxLDEyNDUyLDEyNDUzLDEyNDU0LDEyNDU1LDEyNDU2LDEyNDU3LDEyNDU4LDEyNDU5LDEyNDYwLDEyNDYxLDEy'@; put 'NDYyLDEyNDYzLDEyNDY0LDEyNDY1LDEyNDY2LDEyNDY3LDEyNDY4LDEyNDY5LDEyNDcwLDEyNDcxLDEyNDcyLDEyNDczLDEyNDc0LDEyNDc1LDEyNDc2LDEyNDc3LDEyNDc4LDEyNDc5LDEyNDgwLDEyNDgxLDEyNDgyLDEyNDgzLDEyNDg0LDEyNDg1LDEyNDg2LDEyNDg3LDEyNDg4LDEyNDg5'@; put 'LDEyNDkwLDEyNDkxLDEyNDkyLDEyNDkzLDEyNDk0LDEyNDk1LDEyNDk2LDEyNDk3LDEyNDk4LDEyNDk5LDEyNTAwLDEyNTAxLDEyNTAyLDEyNTAzLDEyNTA0LDEyNTA1LDEyNTA2LDEyNTA3LDEyNTA4LDEyNTA5LDEyNTEwLDEyNTExLDEyNTEyLDEyNTEzLDEyNTE0LDEyNTE1LDEyNTE2LDEy'@; put 'NTE3LDEyNTE4LDEyNTE5LDEyNTIwLDEyNTIxLDEyNTIyLDEyNTIzLDEyNTI0LDEyNTI1LDEyNTI2LDEyNTI3LDEyNTI4LDEyNTI5LDEyNTMwLDEyNTMxLDEyNTMyLDEyNTMzLDEyNTM0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw5MTMsOTE0LDkxNSw5MTYsOTE3'@; put 'LDkxOCw5MTksOTIwLDkyMSw5MjIsOTIzLDkyNCw5MjUsOTI2LDkyNyw5MjgsOTI5LDkzMSw5MzIsOTMzLDkzNCw5MzUsOTM2LDkzNyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsOTQ1LDk0Niw5NDcsOTQ4LDk0OSw5NTAsOTUxLDk1Miw5NTMsOTU0LDk1NSw5NTYs'@; put 'OTU3LDk1OCw5NTksOTYwLDk2MSw5NjMsOTY0LDk2NSw5NjYsOTY3LDk2OCw5NjksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDEwNDAsMTA0MSwxMDQyLDEwNDMsMTA0NCwxMDQ1LDEwMjUsMTA0NiwxMDQ3LDEwNDgsMTA0OSwxMDUwLDEwNTEsMTA1MiwxMDUzLDEwNTQsMTA1NSwxMDU2LDEw'@; put 'NTcsMTA1OCwxMDU5LDEwNjAsMTA2MSwxMDYyLDEwNjMsMTA2NCwxMDY1LDEwNjYsMTA2NywxMDY4LDEwNjksMTA3MCwxMDcxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDEwNzIsMTA3MywxMDc0LDEw'@; put 'NzUsMTA3NiwxMDc3LDExMDUsMTA3OCwxMDc5LDEwODAsMTA4MSwxMDgyLDEwODMsMTA4NCwxMDg1LDEwODYsMTA4NywxMDg4LDEwODksMTA5MCwxMDkxLDEwOTIsMTA5MywxMDk0LDEwOTUsMTA5NiwxMDk3LDEwOTgsMTA5OSwxMTAwLDExMDEsMTEwMiwxMTAzLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsOTQ3Miw5NDc0LDk0ODQsOTQ4OCw5NDk2LDk0OTIsOTUwMCw5NTE2LDk1MDgsOTUyNCw5NTMyLDk0NzMsOTQ3NSw5NDg3LDk0OTEsOTQ5OSw5NDk1LDk1MDcsOTUyMyw5NTE1LDk1MzEsOTU0Nyw5NTA0LDk1'@; put 'MTksOTUxMiw5NTI3LDk1MzUsOTUwMSw5NTIwLDk1MDksOTUyOCw5NTM4LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDkzMTIsOTMxMyw5MzE0LDkzMTUsOTMxNiw5MzE3LDkzMTgsOTMxOSw5MzIwLDkzMjEsOTMyMiw5MzIzLDkzMjQsOTMyNSw5MzI2LDkz'@; put 'MjcsOTMyOCw5MzI5LDkzMzAsOTMzMSw4NTQ0LDg1NDUsODU0Niw4NTQ3LDg1NDgsODU0OSw4NTUwLDg1NTEsODU1Miw4NTUzLG51bGwsMTMxMjksMTMwNzYsMTMwOTAsMTMxMzMsMTMwODAsMTMwOTUsMTMwNTksMTMxMTAsMTMxMzcsMTMxNDMsMTMwNjksMTMwOTQsMTMwOTEsMTMwOTksMTMx'@; put 'MzAsMTMxMTUsMTMyMTIsMTMyMTMsMTMyMTQsMTMxOTgsMTMxOTksMTMyNTIsMTMyMTcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDEzMTc5LDEyMzE3LDEyMzE5LDg0NzAsMTMyNjEsODQ4MSwxMjk2NCwxMjk2NSwxMjk2NiwxMjk2NywxMjk2OCwxMjg0OSwxMjg1'@; put 'MCwxMjg1NywxMzE4MiwxMzE4MSwxMzE4MCw4Nzg2LDg4MDEsODc0Nyw4NzUwLDg3MjEsODczMCw4ODY5LDg3MzYsODczNSw4ODk1LDg3NTcsODc0NSw4NzQ2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjAxMjQsMjE3ODIsMjMwNDMsMzg0NjMsMjE2OTYsMjQ4NTksMjUzODQsMjMwMzAsMzY4OTgsMzM5MDksMzM1NjQsMzEzMTIsMjQ3NDYsMjU1NjksMjgxOTcsMjYwOTMsMzM4OTQsMzM0NDYsMzk5MjUs'@; put 'MjY3NzEsMjIzMTEsMjYwMTcsMjUyMDEsMjM0NTEsMjI5OTIsMzQ0MjcsMzkxNTYsMzIwOTgsMzIxOTAsMzk4MjIsMjUxMTAsMzE5MDMsMzQ5OTksMjM0MzMsMjQyNDUsMjUzNTMsMjYyNjMsMjY2OTYsMzgzNDMsMzg3OTcsMjY0NDcsMjAxOTcsMjAyMzQsMjAzMDEsMjAzODEsMjA1NTMsMjIy'@; put 'NTgsMjI4MzksMjI5OTYsMjMwNDEsMjM1NjEsMjQ3OTksMjQ4NDcsMjQ5NDQsMjYxMzEsMjY4ODUsMjg4NTgsMzAwMzEsMzAwNjQsMzEyMjcsMzIxNzMsMzIyMzksMzI5NjMsMzM4MDYsMzQ5MTUsMzU1ODYsMzY5NDksMzY5ODYsMjEzMDcsMjAxMTcsMjAxMzMsMjI0OTUsMzI5NDYsMzcwNTcs'@; put 'MzA5NTksMTk5NjgsMjI3NjksMjgzMjIsMzY5MjAsMzEyODIsMzM1NzYsMzM0MTksMzk5ODMsMjA4MDEsMjEzNjAsMjE2OTMsMjE3MjksMjIyNDAsMjMwMzUsMjQzNDEsMzkxNTQsMjgxMzksMzI5OTYsMzQwOTMsMzg0OTgsMzg1MTIsMzg1NjAsMzg5MDcsMjE1MTUsMjE0OTEsMjM0MzEsMjg4'@; put 'NzksMzI3MDEsMzY4MDIsMzg2MzIsMjEzNTksNDAyODQsMzE0MTgsMTk5ODUsMzA4NjcsMzMyNzYsMjgxOTgsMjIwNDAsMjE3NjQsMjc0MjEsMzQwNzQsMzk5OTUsMjMwMTMsMjE0MTcsMjgwMDYsMjk5MTYsMzgyODcsMjIwODIsMjAxMTMsMzY5MzksMzg2NDIsMzM2MTUsMzkxODAsMjE0NzMs'@; put 'MjE5NDIsMjMzNDQsMjQ0MzMsMjYxNDQsMjYzNTUsMjY2MjgsMjc3MDQsMjc4OTEsMjc5NDUsMjk3ODcsMzA0MDgsMzEzMTAsMzg5NjQsMzM1MjEsMzQ5MDcsMzU0MjQsMzc2MTMsMjgwODIsMzAxMjMsMzA0MTAsMzkzNjUsMjQ3NDIsMzU1ODUsMzYyMzQsMzgzMjIsMjcwMjIsMjE0MjEsMjA4'@; put 'NzAsMjIyOTAsMjI1NzYsMjI4NTIsMjM0NzYsMjQzMTAsMjQ2MTYsMjU1MTMsMjU1ODgsMjc4MzksMjg0MzYsMjg4MTQsMjg5NDgsMjkwMTcsMjkxNDEsMjk1MDMsMzIyNTcsMzMzOTgsMzM0ODksMzQxOTksMzY5NjAsMzc0NjcsNDAyMTksMjI2MzMsMjYwNDQsMjc3MzgsMjk5ODksMjA5ODUs'@; put 'MjI4MzAsMjI4ODUsMjQ0NDgsMjQ1NDAsMjUyNzYsMjYxMDYsMjcxNzgsMjc0MzEsMjc1NzIsMjk1NzksMzI3MDUsMzUxNTgsNDAyMzYsNDAyMDYsNDA2NDQsMjM3MTMsMjc3OTgsMzM2NTksMjA3NDAsMjM2MjcsMjUwMTQsMzMyMjIsMjY3NDIsMjkyODEsMjAwNTcsMjA0NzQsMjEzNjgsMjQ2'@; put 'ODEsMjgyMDEsMzEzMTEsMzg4OTksMTk5NzksMjEyNzAsMjAyMDYsMjAzMDksMjAyODUsMjAzODUsMjAzMzksMjExNTIsMjE0ODcsMjIwMjUsMjI3OTksMjMyMzMsMjM0NzgsMjM1MjEsMzExODUsMjYyNDcsMjY1MjQsMjY1NTAsMjc0NjgsMjc4MjcsMjg3NzksMjk2MzQsMzExMTcsMzExNjYs'@; put 'MzEyOTIsMzE2MjMsMzM0NTcsMzM0OTksMzM1NDAsMzM2NTUsMzM3NzUsMzM3NDcsMzQ2NjIsMzU1MDYsMjIwNTcsMzYwMDgsMzY4MzgsMzY5NDIsMzg2ODYsMzQ0NDIsMjA0MjAsMjM3ODQsMjUxMDUsMjkyNzMsMzAwMTEsMzMyNTMsMzM0NjksMzQ1NTgsMzYwMzIsMzg1OTcsMzkxODcsMzkz'@; put 'ODEsMjAxNzEsMjAyNTAsMzUyOTksMjIyMzgsMjI2MDIsMjI3MzAsMjQzMTUsMjQ1NTUsMjQ2MTgsMjQ3MjQsMjQ2NzQsMjUwNDAsMjUxMDYsMjUyOTYsMjU5MTMsMzk3NDUsMjYyMTQsMjY4MDAsMjgwMjMsMjg3ODQsMzAwMjgsMzAzNDIsMzIxMTcsMzM0NDUsMzQ4MDksMzgyODMsMzg1NDIs'@; put 'MzU5OTcsMjA5NzcsMjExODIsMjI4MDYsMjE2ODMsMjM0NzUsMjM4MzAsMjQ5MzYsMjcwMTAsMjgwNzksMzA4NjEsMzM5OTUsMzQ5MDMsMzU0NDIsMzc3OTksMzk2MDgsMjgwMTIsMzkzMzYsMzQ1MjEsMjI0MzUsMjY2MjMsMzQ1MTAsMzczOTAsMjExMjMsMjIxNTEsMjE1MDgsMjQyNzUsMjUz'@; put 'MTMsMjU3ODUsMjY2ODQsMjY2ODAsMjc1NzksMjk1NTQsMzA5MDYsMzEzMzksMzUyMjYsMzUyODIsMzYyMDMsMzY2MTEsMzcxMDEsMzgzMDcsMzg1NDgsMzg3NjEsMjMzOTgsMjM3MzEsMjcwMDUsMzg5ODksMzg5OTAsMjU0OTksMzE1MjAsMjcxNzksMjcyNjMsMjY4MDYsMzk5NDksMjg1MTEs'@; put 'MjExMDYsMjE5MTcsMjQ2ODgsMjUzMjQsMjc5NjMsMjgxNjcsMjgzNjksMzM4ODMsMzUwODgsMzY2NzYsMTk5ODgsMzk5OTMsMjE0OTQsMjY5MDcsMjcxOTQsMzg3ODgsMjY2NjYsMjA4MjgsMzE0MjcsMzM5NzAsMzczNDAsMzc3NzIsMjIxMDcsNDAyMzIsMjY2NTgsMzM1NDEsMzM4NDEsMzE5'@; put 'MDksMjFlMywzMzQ3NywyOTkyNiwyMDA5NCwyMDM1NSwyMDg5NiwyMzUwNiwyMTAwMiwyMTIwOCwyMTIyMywyNDA1OSwyMTkxNCwyMjU3MCwyMzAxNCwyMzQzNiwyMzQ0OCwyMzUxNSwyNDE3OCwyNDE4NSwyNDczOSwyNDg2MywyNDkzMSwyNTAyMiwyNTU2MywyNTk1NCwyNjU3NywyNjcwNywy'@; put 'Njg3NCwyNzQ1NCwyNzQ3NSwyNzczNSwyODQ1MCwyODU2NywyODQ4NSwyOTg3MiwyOTk3NiwzMDQzNSwzMDQ3NSwzMTQ4NywzMTY0OSwzMTc3NywzMjIzMywzMjU2NiwzMjc1MiwzMjkyNSwzMzM4MiwzMzY5NCwzNTI1MSwzNTUzMiwzNjAxMSwzNjk5NiwzNzk2OSwzODI5MSwzODI4OSwzODMw'@; put 'NiwzODUwMSwzODg2NywzOTIwOCwzMzMwNCwyMDAyNCwyMTU0NywyMzczNiwyNDAxMiwyOTYwOSwzMDI4NCwzMDUyNCwyMzcyMSwzMjc0NywzNjEwNywzODU5MywzODkyOSwzODk5NiwzOWUzLDIwMjI1LDIwMjM4LDIxMzYxLDIxOTE2LDIyMTIwLDIyNTIyLDIyODU1LDIzMzA1LDIzNDkyLDIz'@; put 'Njk2LDI0MDc2LDI0MTkwLDI0NTI0LDI1NTgyLDI2NDI2LDI2MDcxLDI2MDgyLDI2Mzk5LDI2ODI3LDI2ODIwLDI3MjMxLDI0MTEyLDI3NTg5LDI3NjcxLDI3NzczLDMwMDc5LDMxMDQ4LDIzMzk1LDMxMjMyLDMyZTMsMjQ1MDksMzUyMTUsMzUzNTIsMzYwMjAsMzYyMTUsMzY1NTYsMzY2Mzcs'@; put 'MzkxMzgsMzk0MzgsMzk3NDAsMjAwOTYsMjA2MDUsMjA3MzYsMjI5MzEsMjM0NTIsMjUxMzUsMjUyMTYsMjU4MzYsMjc0NTAsMjkzNDQsMzAwOTcsMzEwNDcsMzI2ODEsMzQ4MTEsMzU1MTYsMzU2OTYsMjU1MTYsMzM3MzgsMzg4MTYsMjE1MTMsMjE1MDcsMjE5MzEsMjY3MDgsMjcyMjQsMzU0'@; put 'NDAsMzA3NTksMjY0ODUsNDA2NTMsMjEzNjQsMjM0NTgsMzMwNTAsMzQzODQsMzY4NzAsMTk5OTIsMjAwMzcsMjAxNjcsMjAyNDEsMjE0NTAsMjE1NjAsMjM0NzAsMjQzMzksMjQ2MTMsMjU5MzcsMjY0MjksMjc3MTQsMjc3NjIsMjc4NzUsMjg3OTIsMjk2OTksMzEzNTAsMzE0MDYsMzE0OTYs'@; put 'MzIwMjYsMzE5OTgsMzIxMDIsMjYwODcsMjkyNzUsMjE0MzUsMjM2MjEsMjQwNDAsMjUyOTgsMjUzMTIsMjUzNjksMjgxOTIsMzQzOTQsMzUzNzcsMzYzMTcsMzc2MjQsMjg0MTcsMzExNDIsMzk3NzAsMjAxMzYsMjAxMzksMjAxNDAsMjAzNzksMjAzODQsMjA2ODksMjA4MDcsMzE0NzgsMjA4'@; put 'NDksMjA5ODIsMjEzMzIsMjEyODEsMjEzNzUsMjE0ODMsMjE5MzIsMjI2NTksMjM3NzcsMjQzNzUsMjQzOTQsMjQ2MjMsMjQ2NTYsMjQ2ODUsMjUzNzUsMjU5NDUsMjcyMTEsMjc4NDEsMjkzNzgsMjk0MjEsMzA3MDMsMzMwMTYsMzMwMjksMzMyODgsMzQxMjYsMzcxMTEsMzc4NTcsMzg5MTEs'@; put 'MzkyNTUsMzk1MTQsMjAyMDgsMjA5NTcsMjM1OTcsMjYyNDEsMjY5ODksMjM2MTYsMjYzNTQsMjY5OTcsMjk1NzcsMjY3MDQsMzE4NzMsMjA2NzcsMjEyMjAsMjIzNDMsMjQwNjIsMzc2NzAsMjYwMjAsMjc0MjcsMjc0NTMsMjk3NDgsMzExMDUsMzExNjUsMzE1NjMsMzIyMDIsMzM0NjUsMzM3'@; put 'NDAsMzQ5NDMsMzUxNjcsMzU2NDEsMzY4MTcsMzczMjksMjE1MzUsMzc1MDQsMjAwNjEsMjA1MzQsMjE0NzcsMjEzMDYsMjkzOTksMjk1OTAsMzA2OTcsMzM1MTAsMzY1MjcsMzkzNjYsMzkzNjgsMzkzNzgsMjA4NTUsMjQ4NTgsMzQzOTgsMjE5MzYsMzEzNTQsMjA1OTgsMjM1MDcsMzY5MzUs'@; put 'Mzg1MzMsMjAwMTgsMjczNTUsMzczNTEsMjM2MzMsMjM2MjQsMjU0OTYsMzEzOTEsMjc3OTUsMzg3NzIsMzY3MDUsMzE0MDIsMjkwNjYsMzg1MzYsMzE4NzQsMjY2NDcsMzIzNjgsMjY3MDUsMzc3NDAsMjEyMzQsMjE1MzEsMzQyMTksMzUzNDcsMzI2NzYsMzY1NTcsMzcwODksMjEzNTAsMzQ5'@; put 'NTIsMzEwNDEsMjA0MTgsMjA2NzAsMjEwMDksMjA4MDQsMjE4NDMsMjIzMTcsMjk2NzQsMjI0MTEsMjI4NjUsMjQ0MTgsMjQ0NTIsMjQ2OTMsMjQ5NTAsMjQ5MzUsMjUwMDEsMjU1MjIsMjU2NTgsMjU5NjQsMjYyMjMsMjY2OTAsMjgxNzksMzAwNTQsMzEyOTMsMzE5OTUsMzIwNzYsMzIxNTMs'@; put 'MzIzMzEsMzI2MTksMzM1NTAsMzM2MTAsMzQ1MDksMzUzMzYsMzU0MjcsMzU2ODYsMzY2MDUsMzg5MzgsNDAzMzUsMzM0NjQsMzY4MTQsMzk5MTIsMjExMjcsMjUxMTksMjU3MzEsMjg2MDgsMzg1NTMsMjY2ODksMjA2MjUsMjc0MjQsMjc3NzAsMjg1MDAsMzEzNDgsMzIwODAsMzQ4ODAsMzUz'@; put 'NjMsMjYzNzYsMjAyMTQsMjA1MzcsMjA1MTgsMjA1ODEsMjA4NjAsMjEwNDgsMjEwOTEsMjE5MjcsMjIyODcsMjI1MzMsMjMyNDQsMjQzMTQsMjUwMTAsMjUwODAsMjUzMzEsMjU0NTgsMjY5MDgsMjcxNzcsMjkzMDksMjkzNTYsMjk0ODYsMzA3NDAsMzA4MzEsMzIxMjEsMzA0NzYsMzI5Mzcs'@; put 'MzUyMTEsMzU2MDksMzYwNjYsMzY1NjIsMzY5NjMsMzc3NDksMzg1MjIsMzg5OTcsMzk0NDMsNDA1NjgsMjA4MDMsMjE0MDcsMjE0MjcsMjQxODcsMjQzNTgsMjgxODcsMjgzMDQsMjk1NzIsMjk2OTQsMzIwNjcsMzMzMzUsMzUzMjgsMzU1NzgsMzg0ODAsMjAwNDYsMjA0OTEsMjE0NzYsMjE2'@; put 'MjgsMjIyNjYsMjI5OTMsMjMzOTYsMjQwNDksMjQyMzUsMjQzNTksMjUxNDQsMjU5MjUsMjY1NDMsMjgyNDYsMjkzOTIsMzE5NDYsMzQ5OTYsMzI5MjksMzI5OTMsMzM3NzYsMzQzODIsMzU0NjMsMzYzMjgsMzc0MzEsMzg1OTksMzkwMTUsNDA3MjMsMjAxMTYsMjAxMTQsMjAyMzcsMjEzMjAs'@; put 'MjE1NzcsMjE1NjYsMjMwODcsMjQ0NjAsMjQ0ODEsMjQ3MzUsMjY3OTEsMjcyNzgsMjk3ODYsMzA4NDksMzU0ODYsMzU0OTIsMzU3MDMsMzcyNjQsMjAwNjIsMzk4ODEsMjAxMzIsMjAzNDgsMjAzOTksMjA1MDUsMjA1MDIsMjA4MDksMjA4NDQsMjExNTEsMjExNzcsMjEyNDYsMjE0MDIsMjE0'@; put 'NzUsMjE1MjEsMjE1MTgsMjE4OTcsMjIzNTMsMjI0MzQsMjI5MDksMjMzODAsMjMzODksMjM0MzksMjQwMzcsMjQwMzksMjQwNTUsMjQxODQsMjQxOTUsMjQyMTgsMjQyNDcsMjQzNDQsMjQ2NTgsMjQ5MDgsMjUyMzksMjUzMDQsMjU1MTEsMjU5MTUsMjYxMTQsMjYxNzksMjYzNTYsMjY0Nzcs'@; put 'MjY2NTcsMjY3NzUsMjcwODMsMjc3NDMsMjc5NDYsMjgwMDksMjgyMDcsMjgzMTcsMzAwMDIsMzAzNDMsMzA4MjgsMzEyOTUsMzE5NjgsMzIwMDUsMzIwMjQsMzIwOTQsMzIxNzcsMzI3ODksMzI3NzEsMzI5NDMsMzI5NDUsMzMxMDgsMzMxNjcsMzMzMjIsMzM2MTgsMzQ4OTIsMzQ5MTMsMzU2'@; put 'MTEsMzYwMDIsMzYwOTIsMzcwNjYsMzcyMzcsMzc0ODksMzA3ODMsMzc2MjgsMzgzMDgsMzg0NzcsMzg5MTcsMzkzMjEsMzk2NDAsNDAyNTEsMjEwODMsMjExNjMsMjE0OTUsMjE1MTIsMjI3NDEsMjUzMzUsMjg2NDAsMzU5NDYsMzY3MDMsNDA2MzMsMjA4MTEsMjEwNTEsMjE1NzgsMjIyNjks'@; put 'MzEyOTYsMzcyMzksNDAyODgsNDA2NTgsMjk1MDgsMjg0MjUsMzMxMzYsMjk5NjksMjQ1NzMsMjQ3OTQsMzk1OTIsMjk0MDMsMzY3OTYsMjc0OTIsMzg5MTUsMjAxNzAsMjIyNTYsMjIzNzIsMjI3MTgsMjMxMzAsMjQ2ODAsMjUwMzEsMjYxMjcsMjYxMTgsMjY2ODEsMjY4MDEsMjgxNTEsMzAx'@; put 'NjUsMzIwNTgsMzMzOTAsMzk3NDYsMjAxMjMsMjAzMDQsMjE0NDksMjE3NjYsMjM5MTksMjQwMzgsMjQwNDYsMjY2MTksMjc4MDEsMjk4MTEsMzA3MjIsMzU0MDgsMzc3ODIsMzUwMzksMjIzNTIsMjQyMzEsMjUzODcsMjA2NjEsMjA2NTIsMjA4NzcsMjYzNjgsMjE3MDUsMjI2MjIsMjI5NzEs'@; put 'MjM0NzIsMjQ0MjUsMjUxNjUsMjU1MDUsMjY2ODUsMjc1MDcsMjgxNjgsMjg3OTcsMzczMTksMjkzMTIsMzA3NDEsMzA3NTgsMzEwODUsMjU5OTgsMzIwNDgsMzM3NTYsMzUwMDksMzY2MTcsMzg1NTUsMjEwOTIsMjIzMTIsMjY0NDgsMzI2MTgsMzYwMDEsMjA5MTYsMjIzMzgsMzg0NDIsMjI1'@; put 'ODYsMjcwMTgsMzI5NDgsMjE2ODIsMjM4MjIsMjI1MjQsMzA4NjksNDA0NDIsMjAzMTYsMjEwNjYsMjE2NDMsMjU2NjIsMjYxNTIsMjYzODgsMjY2MTMsMzEzNjQsMzE1NzQsMzIwMzQsMzc2NzksMjY3MTYsMzk4NTMsMzE1NDUsMjEyNzMsMjA4NzQsMjEwNDcsMjM1MTksMjUzMzQsMjU3NzQs'@; put 'MjU4MzAsMjY0MTMsMjc1NzgsMzQyMTcsMzg2MDksMzAzNTIsMzk4OTQsMjU0MjAsMzc2MzgsMzk4NTEsMzAzOTksMjYxOTQsMTk5NzcsMjA2MzIsMjE0NDIsMjM2NjUsMjQ4MDgsMjU3NDYsMjU5NTUsMjY3MTksMjkxNTgsMjk2NDIsMjk5ODcsMzE2MzksMzIzODYsMzQ0NTMsMzU3MTUsMzYw'@; put 'NTksMzcyNDAsMzkxODQsMjYwMjgsMjYyODMsMjc1MzEsMjAxODEsMjAxODAsMjAyODIsMjAzNTEsMjEwNTAsMjE0OTYsMjE0OTAsMjE5ODcsMjIyMzUsMjI3NjMsMjI5ODcsMjI5ODUsMjMwMzksMjMzNzYsMjM2MjksMjQwNjYsMjQxMDcsMjQ1MzUsMjQ2MDUsMjUzNTEsMjU5MDMsMjMzODgs'@; put 'MjYwMzEsMjYwNDUsMjYwODgsMjY1MjUsMjc0OTAsMjc1MTUsMjc2NjMsMjk1MDksMzEwNDksMzExNjksMzE5OTIsMzIwMjUsMzIwNDMsMzI5MzAsMzMwMjYsMzMyNjcsMzUyMjIsMzU0MjIsMzU0MzMsMzU0MzAsMzU0NjgsMzU1NjYsMzYwMzksMzYwNjAsMzg2MDQsMzkxNjQsMjc1MDMsMjAx'@; put 'MDcsMjAyODQsMjAzNjUsMjA4MTYsMjMzODMsMjM1NDYsMjQ5MDQsMjUzNDUsMjYxNzgsMjc0MjUsMjgzNjMsMjc4MzUsMjkyNDYsMjk4ODUsMzAxNjQsMzA5MTMsMzEwMzQsMzI3ODAsMzI4MTksMzMyNTgsMzM5NDAsMzY3NjYsMjc3MjgsNDA1NzUsMjQzMzUsMzU2NzIsNDAyMzUsMzE0ODIs'@; put 'MzY2MDAsMjM0MzcsMzg2MzUsMTk5NzEsMjE0ODksMjI1MTksMjI4MzMsMjMyNDEsMjM0NjAsMjQ3MTMsMjgyODcsMjg0MjIsMzAxNDIsMzYwNzQsMjM0NTUsMzQwNDgsMzE3MTIsMjA1OTQsMjY2MTIsMzM0MzcsMjM2NDksMzQxMjIsMzIyODYsMzMyOTQsMjA4ODksMjM1NTYsMjU0NDgsMzYx'@; put 'OTgsMjYwMTIsMjkwMzgsMzEwMzgsMzIwMjMsMzI3NzMsMzU2MTMsMzY1NTQsMzY5NzQsMzQ1MDMsMzcwMzQsMjA1MTEsMjEyNDIsMjM2MTAsMjY0NTEsMjg3OTYsMjkyMzcsMzcxOTYsMzczMjAsMzc2NzUsMzM1MDksMjM0OTAsMjQzNjksMjQ4MjUsMjAwMjcsMjE0NjIsMjM0MzIsMjUxNjMs'@; put 'MjY0MTcsMjc1MzAsMjk0MTcsMjk2NjQsMzEyNzgsMzMxMzEsMzYyNTksMzcyMDIsMzkzMTgsMjA3NTQsMjE0NjMsMjE2MTAsMjM1NTEsMjU0ODAsMjcxOTMsMzIxNzIsMzg2NTYsMjIyMzQsMjE0NTQsMjE2MDgsMjM0NDcsMjM2MDEsMjQwMzAsMjA0NjIsMjQ4MzMsMjUzNDIsMjc5NTQsMzEx'@; put 'NjgsMzExNzksMzIwNjYsMzIzMzMsMzI3MjIsMzMyNjEsMzMzMTEsMzM5MzYsMzQ4ODYsMzUxODYsMzU3MjgsMzY0NjgsMzY2NTUsMzY5MTMsMzcxOTUsMzcyMjgsMzg1OTgsMzcyNzYsMjAxNjAsMjAzMDMsMjA4MDUsMjEzMTMsMjQ0NjcsMjUxMDIsMjY1ODAsMjc3MTMsMjgxNzEsMjk1Mzks'@; put 'MzIyOTQsMzczMjUsMzc1MDcsMjE0NjAsMjI4MDksMjM0ODcsMjgxMTMsMzEwNjksMzIzMDIsMzE4OTksMjI2NTQsMjkwODcsMjA5ODYsMzQ4OTksMzY4NDgsMjA0MjYsMjM4MDMsMjYxNDksMzA2MzYsMzE0NTksMzMzMDgsMzk0MjMsMjA5MzQsMjQ0OTAsMjYwOTIsMjY5OTEsMjc1MjksMjgx'@; put 'NDcsMjgzMTAsMjg1MTYsMzA0NjIsMzIwMjAsMjQwMzMsMzY5ODEsMzcyNTUsMzg5MTgsMjA5NjYsMjEwMjEsMjUxNTIsMjYyNTcsMjYzMjksMjgxODYsMjQyNDYsMzIyMTAsMzI2MjYsMjYzNjAsMzQyMjMsMzQyOTUsMzU1NzYsMjExNjEsMjE0NjUsMjI4OTksMjQyMDcsMjQ0NjQsMjQ2NjEs'@; put 'Mzc2MDQsMzg1MDAsMjA2NjMsMjA3NjcsMjEyMTMsMjEyODAsMjEzMTksMjE0ODQsMjE3MzYsMjE4MzAsMjE4MDksMjIwMzksMjI4ODgsMjI5NzQsMjMxMDAsMjM0NzcsMjM1NTgsMjM1NjcsMjM1NjksMjM1NzgsMjQxOTYsMjQyMDIsMjQyODgsMjQ0MzIsMjUyMTUsMjUyMjAsMjUzMDcsMjU0'@; put 'ODQsMjU0NjMsMjYxMTksMjYxMjQsMjYxNTcsMjYyMzAsMjY0OTQsMjY3ODYsMjcxNjcsMjcxODksMjc4MzYsMjgwNDAsMjgxNjksMjgyNDgsMjg5ODgsMjg5NjYsMjkwMzEsMzAxNTEsMzA0NjUsMzA4MTMsMzA5NzcsMzEwNzcsMzEyMTYsMzE0NTYsMzE1MDUsMzE5MTEsMzIwNTcsMzI5MTgs'@; put 'MzM3NTAsMzM5MzEsMzQxMjEsMzQ5MDksMzUwNTksMzUzNTksMzUzODgsMzU0MTIsMzU0NDMsMzU5MzcsMzYwNjIsMzcyODQsMzc0NzgsMzc3NTgsMzc5MTIsMzg1NTYsMzg4MDgsMTk5NzgsMTk5NzYsMTk5OTgsMjAwNTUsMjA4ODcsMjExMDQsMjI0NzgsMjI1ODAsMjI3MzIsMjMzMzAsMjQx'@; put 'MjAsMjQ3NzMsMjU4NTQsMjY0NjUsMjY0NTQsMjc5NzIsMjkzNjYsMzAwNjcsMzEzMzEsMzM5NzYsMzU2OTgsMzczMDQsMzc2NjQsMjIwNjUsMjI1MTYsMzkxNjYsMjUzMjUsMjY4OTMsMjc1NDIsMjkxNjUsMzIzNDAsMzI4ODcsMzMzOTQsMzUzMDIsMzkxMzUsMzQ2NDUsMzY3ODUsMjM2MTEs'@; put 'MjAyODAsMjA0NDksMjA0MDUsMjE3NjcsMjMwNzIsMjM1MTcsMjM1MjksMjQ1MTUsMjQ5MTAsMjUzOTEsMjYwMzIsMjYxODcsMjY4NjIsMjcwMzUsMjgwMjQsMjgxNDUsMzAwMDMsMzAxMzcsMzA0OTUsMzEwNzAsMzEyMDYsMzIwNTEsMzMyNTEsMzM0NTUsMzQyMTgsMzUyNDIsMzUzODYsMzY1'@; put 'MjMsMzY3NjMsMzY5MTQsMzczNDEsMzg2NjMsMjAxNTQsMjAxNjEsMjA5OTUsMjI2NDUsMjI3NjQsMjM1NjMsMjk5NzgsMjM2MTMsMzMxMDIsMzUzMzgsMzY4MDUsMzg0OTksMzg3NjUsMzE1MjUsMzU1MzUsMzg5MjAsMzcyMTgsMjIyNTksMjE0MTYsMzY4ODcsMjE1NjEsMjI0MDIsMjQxMDEs'@; put 'MjU1MTIsMjc3MDAsMjg4MTAsMzA1NjEsMzE4ODMsMzI3MzYsMzQ5MjgsMzY5MzAsMzcyMDQsMzc2NDgsMzc2NTYsMzg1NDMsMjk3OTAsMzk2MjAsMjM4MTUsMjM5MTMsMjU5NjgsMjY1MzAsMzYyNjQsMzg2MTksMjU0NTQsMjY0NDEsMjY5MDUsMzM3MzMsMzg5MzUsMzg1OTIsMzUwNzAsMjg1'@; put 'NDgsMjU3MjIsMjM1NDQsMTk5OTAsMjg3MTYsMzAwNDUsMjYxNTksMjA5MzIsMjEwNDYsMjEyMTgsMjI5OTUsMjQ0NDksMjQ2MTUsMjUxMDQsMjU5MTksMjU5NzIsMjYxNDMsMjYyMjgsMjY4NjYsMjY2NDYsMjc0OTEsMjgxNjUsMjkyOTgsMjk5ODMsMzA0MjcsMzE5MzQsMzI4NTQsMjI3Njgs'@; put 'MzUwNjksMzUxOTksMzU0ODgsMzU0NzUsMzU1MzEsMzY4OTMsMzcyNjYsMzg3MzgsMzg3NDUsMjU5OTMsMzEyNDYsMzMwMzAsMzg1ODcsMjQxMDksMjQ3OTYsMjUxMTQsMjYwMjEsMjYxMzIsMjY1MTIsMzA3MDcsMzEzMDksMzE4MjEsMzIzMTgsMzMwMzQsMzYwMTIsMzYxOTYsMzYzMjEsMzY0'@; put 'NDcsMzA4ODksMjA5OTksMjUzMDUsMjU1MDksMjU2NjYsMjUyNDAsMzUzNzMsMzEzNjMsMzE2ODAsMzU1MDAsMzg2MzQsMzIxMTgsMzMyOTIsMzQ2MzMsMjAxODUsMjA4MDgsMjEzMTUsMjEzNDQsMjM0NTksMjM1NTQsMjM1NzQsMjQwMjksMjUxMjYsMjUxNTksMjU3NzYsMjY2NDMsMjY2NzYs'@; put 'Mjc4NDksMjc5NzMsMjc5MjcsMjY1NzksMjg1MDgsMjkwMDYsMjkwNTMsMjYwNTksMzEzNTksMzE2NjEsMzIyMTgsMzIzMzAsMzI2ODAsMzMxNDYsMzMzMDcsMzMzMzcsMzQyMTQsMzU0MzgsMzYwNDYsMzYzNDEsMzY5ODQsMzY5ODMsMzc1NDksMzc1MjEsMzgyNzUsMzk4NTQsMjEwNjksMjE4'@; put 'OTIsMjg0NzIsMjg5ODIsMjA4NDAsMzExMDksMzIzNDEsMzMyMDMsMzE5NTAsMjIwOTIsMjI2MDksMjM3MjAsMjU1MTQsMjYzNjYsMjYzNjUsMjY5NzAsMjk0MDEsMzAwOTUsMzAwOTQsMzA5OTAsMzEwNjIsMzExOTksMzE4OTUsMzIwMzIsMzIwNjgsMzQzMTEsMzUzODAsMzg0NTksMzY5NjEs'@; put 'NDA3MzYsMjA3MTEsMjExMDksMjE0NTIsMjE0NzQsMjA0ODksMjE5MzAsMjI3NjYsMjI4NjMsMjkyNDUsMjM0MzUsMjM2NTIsMjEyNzcsMjQ4MDMsMjQ4MTksMjU0MzYsMjU0NzUsMjU0MDcsMjU1MzEsMjU4MDUsMjYwODksMjYzNjEsMjQwMzUsMjcwODUsMjcxMzMsMjg0MzcsMjkxNTcsMjAx'@; put 'MDUsMzAxODUsMzA0NTYsMzEzNzksMzE5NjcsMzIyMDcsMzIxNTYsMzI4NjUsMzM2MDksMzM2MjQsMzM5MDAsMzM5ODAsMzQyOTksMzUwMTMsMzYyMDgsMzY4NjUsMzY5NzMsMzc3ODMsMzg2ODQsMzk0NDIsMjA2ODcsMjI2NzksMjQ5NzQsMzMyMzUsMzQxMDEsMzYxMDQsMzY4OTYsMjA0MTks'@; put 'MjA1OTYsMjEwNjMsMjEzNjMsMjQ2ODcsMjU0MTcsMjY0NjMsMjgyMDQsMzYyNzUsMzY4OTUsMjA0MzksMjM2NDYsMzYwNDIsMjYwNjMsMzIxNTQsMjEzMzAsMzQ5NjYsMjA4NTQsMjU1MzksMjMzODQsMjM0MDMsMjM1NjIsMjU2MTMsMjY0NDksMzY5NTYsMjAxODIsMjI4MTAsMjI4MjYsMjc3'@; put 'NjAsMzU0MDksMjE4MjIsMjI1NDksMjI5NDksMjQ4MTYsMjUxNzEsMjY1NjEsMzMzMzMsMjY5NjUsMzg0NjQsMzkzNjQsMzk0NjQsMjAzMDcsMjI1MzQsMjM1NTAsMzI3ODQsMjM3MjksMjQxMTEsMjQ0NTMsMjQ2MDgsMjQ5MDcsMjUxNDAsMjYzNjcsMjc4ODgsMjgzODIsMzI5NzQsMzMxNTEs'@; put 'MzM0OTIsMzQ5NTUsMzYwMjQsMzY4NjQsMzY5MTAsMzg1MzgsNDA2NjcsMzk4OTksMjAxOTUsMjE0ODgsMjI4MjMsMzE1MzIsMzcyNjEsMzg5ODgsNDA0NDEsMjgzODEsMjg3MTEsMjEzMzEsMjE4MjgsMjM0MjksMjUxNzYsMjUyNDYsMjUyOTksMjc4MTAsMjg2NTUsMjk3MzAsMzUzNTEsMzc5'@; put 'NDQsMjg2MDksMzU1ODIsMzM1OTIsMjA5NjcsMzQ1NTIsMjE0ODIsMjE0ODEsMjAyOTQsMzY5NDgsMzY3ODQsMjI4OTAsMzMwNzMsMjQwNjEsMzE0NjYsMzY3OTksMjY4NDIsMzU4OTUsMjk0MzIsNDAwMDgsMjcxOTcsMzU1MDQsMjAwMjUsMjEzMzYsMjIwMjIsMjIzNzQsMjUyODUsMjU1MDYs'@; put 'MjYwODYsMjc0NzAsMjgxMjksMjgyNTEsMjg4NDUsMzA3MDEsMzE0NzEsMzE2NTgsMzIxODcsMzI4MjksMzI5NjYsMzQ1MDcsMzU0NzcsMzc3MjMsMjIyNDMsMjI3MjcsMjQzODIsMjYwMjksMjYyNjIsMjcyNjQsMjc1NzMsMzAwMDcsMzU1MjcsMjA1MTYsMzA2OTMsMjIzMjAsMjQzNDcsMjQ2'@; put 'NzcsMjYyMzQsMjc3NDQsMzAxOTYsMzEyNTgsMzI2MjIsMzMyNjgsMzQ1ODQsMzY5MzMsMzkzNDcsMzE2ODksMzAwNDQsMzE0ODEsMzE1NjksMzM5ODgsMzY4ODAsMzEyMDksMzEzNzgsMzM1OTAsMjMyNjUsMzA1MjgsMjAwMTMsMjAyMTAsMjM0NDksMjQ1NDQsMjUyNzcsMjYxNzIsMjY2MDks'@; put 'Mjc4ODAsMzQ0MTEsMzQ5MzUsMzUzODcsMzcxOTgsMzc2MTksMzkzNzYsMjcxNTksMjg3MTAsMjk0ODIsMzM1MTEsMzM4NzksMzYwMTUsMTk5NjksMjA4MDYsMjA5MzksMjE4OTksMjM1NDEsMjQwODYsMjQxMTUsMjQxOTMsMjQzNDAsMjQzNzMsMjQ0MjcsMjQ1MDAsMjUwNzQsMjUzNjEsMjYy'@; put 'NzQsMjYzOTcsMjg1MjYsMjkyNjYsMzAwMTAsMzA1MjIsMzI4ODQsMzMwODEsMzMxNDQsMzQ2NzgsMzU1MTksMzU1NDgsMzYyMjksMzYzMzksMzc1MzAsMzgyNjMsMzg5MTQsNDAxNjUsMjExODksMjU0MzEsMzA0NTIsMjYzODksMjc3ODQsMjk2NDUsMzYwMzUsMzc4MDYsMzg1MTUsMjc5NDEs'@; put 'MjI2ODQsMjY4OTQsMjcwODQsMzY4NjEsMzc3ODYsMzAxNzEsMzY4OTAsMjI2MTgsMjY2MjYsMjU1MjQsMjcxMzEsMjAyOTEsMjg0NjAsMjY1ODQsMzY3OTUsMzQwODYsMzIxODAsMzc3MTYsMjY5NDMsMjg1MjgsMjIzNzgsMjI3NzUsMjMzNDAsMzIwNDQsMjkyMjYsMjE1MTQsMzczNDcsNDAz'@; put 'NzIsMjAxNDEsMjAzMDIsMjA1NzIsMjA1OTcsMjEwNTksMzU5OTgsMjE1NzYsMjI1NjQsMjM0NTAsMjQwOTMsMjQyMTMsMjQyMzcsMjQzMTEsMjQzNTEsMjQ3MTYsMjUyNjksMjU0MDIsMjU1NTIsMjY3OTksMjc3MTIsMzA4NTUsMzExMTgsMzEyNDMsMzIyMjQsMzMzNTEsMzUzMzAsMzU1NTgs'@; put 'MzY0MjAsMzY4ODMsMzcwNDgsMzcxNjUsMzczMzYsNDA3MTgsMjc4NzcsMjU2ODgsMjU4MjYsMjU5NzMsMjg0MDQsMzAzNDAsMzE1MTUsMzY5NjksMzc4NDEsMjgzNDYsMjE3NDYsMjQ1MDUsMjU3NjQsMzY2ODUsMzY4NDUsMzc0NDQsMjA4NTYsMjI2MzUsMjI4MjUsMjM2MzcsMjQyMTUsMjgx'@; put 'NTUsMzIzOTksMjk5ODAsMzYwMjgsMzY1NzgsMzkwMDMsMjg4NTcsMjAyNTMsMjc1ODMsMjg1OTMsM2U0LDM4NjUxLDIwODE0LDIxNTIwLDIyNTgxLDIyNjE1LDIyOTU2LDIzNjQ4LDI0NDY2LDI2MDA3LDI2NDYwLDI4MTkzLDMwMzMxLDMzNzU5LDM2MDc3LDM2ODg0LDM3MTE3LDM3NzA5LDMw'@; put 'NzU3LDMwNzc4LDIxMTYyLDI0MjMwLDIyMzAzLDIyOTAwLDI0NTk0LDIwNDk4LDIwODI2LDIwOTA4LDIwOTQxLDIwOTkyLDIxNzc2LDIyNjEyLDIyNjE2LDIyODcxLDIzNDQ1LDIzNzk4LDIzOTQ3LDI0NzY0LDI1MjM3LDI1NjQ1LDI2NDgxLDI2NjkxLDI2ODEyLDI2ODQ3LDMwNDIzLDI4MTIw'@; put 'LDI4MjcxLDI4MDU5LDI4NzgzLDI5MTI4LDI0NDAzLDMwMTY4LDMxMDk1LDMxNTYxLDMxNTcyLDMxNTcwLDMxOTU4LDMyMTEzLDIxMDQwLDMzODkxLDM0MTUzLDM0Mjc2LDM1MzQyLDM1NTg4LDM1OTEwLDM2MzY3LDM2ODY3LDM2ODc5LDM3OTEzLDM4NTE4LDM4OTU3LDM5NDcyLDM4MzYwLDIw'@; put 'Njg1LDIxMjA1LDIxNTE2LDIyNTMwLDIzNTY2LDI0OTk5LDI1NzU4LDI3OTM0LDMwNjQzLDMxNDYxLDMzMDEyLDMzNzk2LDM2OTQ3LDM3NTA5LDIzNzc2LDQwMTk5LDIxMzExLDI0NDcxLDI0NDk5LDI4MDYwLDI5MzA1LDMwNTYzLDMxMTY3LDMxNzE2LDI3NjAyLDI5NDIwLDM1NTAxLDI2NjI3'@; put 'LDI3MjMzLDIwOTg0LDMxMzYxLDI2OTMyLDIzNjI2LDQwMTgyLDMzNTE1LDIzNDkzLDM3MTkzLDI4NzAyLDIyMTM2LDIzNjYzLDI0Nzc1LDI1OTU4LDI3Nzg4LDM1OTMwLDM2OTI5LDM4OTMxLDIxNTg1LDI2MzExLDM3Mzg5LDIyODU2LDM3MDI3LDIwODY5LDIwMDQ1LDIwOTcwLDM0MjAxLDM1'@; put 'NTk4LDI4NzYwLDI1NDY2LDM3NzA3LDI2OTc4LDM5MzQ4LDMyMjYwLDMwMDcxLDIxMzM1LDI2OTc2LDM2NTc1LDM4NjI3LDI3NzQxLDIwMTA4LDIzNjEyLDI0MzM2LDM2ODQxLDIxMjUwLDM2MDQ5LDMyOTA1LDM0NDI1LDI0MzE5LDI2MDg1LDIwMDgzLDIwODM3LDIyOTE0LDIzNjE1LDM4ODk0'@; put 'LDIwMjE5LDIyOTIyLDI0NTI1LDM1NDY5LDI4NjQxLDMxMTUyLDMxMDc0LDIzNTI3LDMzOTA1LDI5NDgzLDI5MTA1LDI0MTgwLDI0NTY1LDI1NDY3LDI1NzU0LDI5MTIzLDMxODk2LDIwMDM1LDI0MzE2LDIwMDQzLDIyNDkyLDIyMTc4LDI0NzQ1LDI4NjExLDMyMDEzLDMzMDIxLDMzMDc1LDMz'@; put 'MjE1LDM2Nzg2LDM1MjIzLDM0NDY4LDI0MDUyLDI1MjI2LDI1NzczLDM1MjA3LDI2NDg3LDI3ODc0LDI3OTY2LDI5NzUwLDMwNzcyLDIzMTEwLDMyNjI5LDMzNDUzLDM5MzQwLDIwNDY3LDI0MjU5LDI1MzA5LDI1NDkwLDI1OTQzLDI2NDc5LDMwNDAzLDI5MjYwLDMyOTcyLDMyOTU0LDM2NjQ5'@; put 'LDM3MTk3LDIwNDkzLDIyNTIxLDIzMTg2LDI2NzU3LDI2OTk1LDI5MDI4LDI5NDM3LDM2MDIzLDIyNzcwLDM2MDY0LDM4NTA2LDM2ODg5LDM0Njg3LDMxMjA0LDMwNjk1LDMzODMzLDIwMjcxLDIxMDkzLDIxMzM4LDI1MjkzLDI2NTc1LDI3ODUwLDMwMzMzLDMxNjM2LDMxODkzLDMzMzM0LDM0'@; put 'MTgwLDM2ODQzLDI2MzMzLDI4NDQ4LDI5MTkwLDMyMjgzLDMzNzA3LDM5MzYxLDQwNjE0LDIwOTg5LDMxNjY1LDMwODM0LDMxNjcyLDMyOTAzLDMxNTYwLDI3MzY4LDI0MTYxLDMyOTA4LDMwMDMzLDMwMDQ4LDIwODQzLDM3NDc0LDI4MzAwLDMwMzMwLDM3MjcxLDM5NjU4LDIwMjQwLDMyNjI0'@; put 'LDI1MjQ0LDMxNTY3LDM4MzA5LDQwMTY5LDIyMTM4LDIyNjE3LDM0NTMyLDM4NTg4LDIwMjc2LDIxMDI4LDIxMzIyLDIxNDUzLDIxNDY3LDI0MDcwLDI1NjQ0LDI2MDAxLDI2NDk1LDI3NzEwLDI3NzI2LDI5MjU2LDI5MzU5LDI5Njc3LDMwMDM2LDMyMzIxLDMzMzI0LDM0MjgxLDM2MDA5LDMx'@; put 'Njg0LDM3MzE4LDI5MDMzLDM4OTMwLDM5MTUxLDI1NDA1LDI2MjE3LDMwMDU4LDMwNDM2LDMwOTI4LDM0MTE1LDM0NTQyLDIxMjkwLDIxMzI5LDIxNTQyLDIyOTE1LDI0MTk5LDI0NDQ0LDI0NzU0LDI1MTYxLDI1MjA5LDI1MjU5LDI2ZTMsMjc2MDQsMjc4NTIsMzAxMzAsMzAzODIsMzA4NjUs'@; put 'MzExOTIsMzIyMDMsMzI2MzEsMzI5MzMsMzQ5ODcsMzU1MTMsMzYwMjcsMzY5OTEsMzg3NTAsMzkxMzEsMjcxNDcsMzE4MDAsMjA2MzMsMjM2MTQsMjQ0OTQsMjY1MDMsMjc2MDgsMjk3NDksMzA0NzMsMzI2NTQsNDA3NjMsMjY1NzAsMzEyNTUsMjEzMDUsMzAwOTEsMzk2NjEsMjQ0MjIsMzMx'@; put 'ODEsMzM3NzcsMzI5MjAsMjQzODAsMjQ1MTcsMzAwNTAsMzE1NTgsMzY5MjQsMjY3MjcsMjMwMTksMjMxOTUsMzIwMTYsMzAzMzQsMzU2MjgsMjA0NjksMjQ0MjYsMjcxNjEsMjc3MDMsMjg0MTgsMjk5MjIsMzEwODAsMzQ5MjAsMzU0MTMsMzU5NjEsMjQyODcsMjU1NTEsMzAxNDksMzExODYs'@; put 'MzM0OTUsMzc2NzIsMzc2MTgsMzM5NDgsMzQ1NDEsMzk5ODEsMjE2OTcsMjQ0MjgsMjU5OTYsMjc5OTYsMjg2OTMsMzYwMDcsMzYwNTEsMzg5NzEsMjU5MzUsMjk5NDIsMTk5ODEsMjAxODQsMjI0OTYsMjI4MjcsMjMxNDIsMjM1MDAsMjA5MDQsMjQwNjcsMjQyMjAsMjQ1OTgsMjUyMDYsMjU5'@; put 'NzUsMjYwMjMsMjYyMjIsMjgwMTQsMjkyMzgsMzE1MjYsMzMxMDQsMzMxNzgsMzM0MzMsMzU2NzYsMzZlMywzNjA3MCwzNjIxMiwzODQyOCwzODQ2OCwyMDM5OCwyNTc3MSwyNzQ5NCwzMzMxMCwzMzg4OSwzNDE1NCwzNzA5NiwyMzU1MywyNjk2MywzOTA4MCwzMzkxNCwzNDEzNSwyMDIzOSwy'@; put 'MTEwMywyNDQ4OSwyNDEzMywyNjM4MSwzMTExOSwzMzE0NSwzNTA3OSwzNTIwNiwyODE0OSwyNDM0MywyNTE3MywyNzgzMiwyMDE3NSwyOTI4OSwzOTgyNiwyMDk5OCwyMTU2MywyMjEzMiwyMjcwNywyNDk5NiwyNTE5OCwyODk1NCwyMjg5NCwzMTg4MSwzMTk2NiwzMjAyNywzODY0MCwyNTk5'@; put 'MSwzMjg2MiwxOTk5MywyMDM0MSwyMDg1MywyMjU5MiwyNDE2MywyNDE3OSwyNDMzMCwyNjU2NCwyMDAwNiwzNDEwOSwzODI4MSwzODQ5MSwzMTg1OSwzODkxMywyMDczMSwyMjcyMSwzMDI5NCwzMDg4NywyMTAyOSwzMDYyOSwzNDA2NSwzMTYyMiwyMDU1OSwyMjc5MywyOTI1NSwzMTY4Nywz'@; put 'MjIzMiwzNjc5NCwzNjgyMCwzNjk0MSwyMDQxNSwyMTE5MywyMzA4MSwyNDMyMSwzODgyOSwyMDQ0NSwzMzMwMywzNzYxMCwyMjI3NSwyNTQyOSwyNzQ5NywyOTk5NSwzNTAzNiwzNjYyOCwzMTI5OCwyMTIxNSwyMjY3NSwyNDkxNywyNTA5OCwyNjI4NiwyNzU5NywzMTgwNywzMzc2OSwyMDUx'@; put 'NSwyMDQ3MiwyMTI1MywyMTU3NCwyMjU3NywyMjg1NywyMzQ1MywyMzc5MiwyMzc5MSwyMzg0OSwyNDIxNCwyNTI2NSwyNTQ0NywyNTkxOCwyNjA0MSwyNjM3OSwyNzg2MSwyNzg3MywyODkyMSwzMDc3MCwzMjI5OSwzMjk5MCwzMzQ1OSwzMzgwNCwzNDAyOCwzNDU2MiwzNTA5MCwzNTM3MCwz'@; put 'NTkxNCwzNzAzMCwzNzU4NiwzOTE2NSw0MDE3OSw0MDMwMCwyMDA0NywyMDEyOSwyMDYyMSwyMTA3OCwyMjM0NiwyMjk1MiwyNDEyNSwyNDUzNiwyNDUzNywyNTE1MSwyNjI5MiwyNjM5NSwyNjU3NiwyNjgzNCwyMDg4MiwzMjAzMywzMjkzOCwzMzE5MiwzNTU4NCwzNTk4MCwzNjAzMSwzNzUw'@; put 'MiwzODQ1MCwyMTUzNiwzODk1NiwyMTI3MSwyMDY5MywyMTM0MCwyMjY5NiwyNTc3OCwyNjQyMCwyOTI4NywzMDU2NiwzMTMwMiwzNzM1MCwyMTE4NywyNzgwOSwyNzUyNiwyMjUyOCwyNDE0MCwyMjg2OCwyNjQxMiwzMjc2MywyMDk2MSwzMDQwNiwyNTcwNSwzMDk1MiwzOTc2NCw0MDYzNSwy'@; put 'MjQ3NSwyMjk2OSwyNjE1MSwyNjUyMiwyNzU5OCwyMTczNywyNzA5NywyNDE0OSwzMzE4MCwyNjUxNywzOTg1MCwyNjYyMiw0MDAxOCwyNjcxNywyMDEzNCwyMDQ1MSwyMTQ0OCwyNTI3MywyNjQxMSwyNzgxOSwzNjgwNCwyMDM5NywzMjM2NSw0MDYzOSwxOTk3NSwyNDkzMCwyODI4OCwyODQ1'@; put 'OSwzNDA2NywyMTYxOSwyNjQxMCwzOTc0OSwyNDA1MSwzMTYzNywyMzcyNCwyMzQ5NCwzNDU4OCwyODIzNCwzNDAwMSwzMTI1MiwzMzAzMiwyMjkzNywzMTg4NSwyNzY2NSwzMDQ5NiwyMTIwOSwyMjgxOCwyODk2MSwyOTI3OSwzMDY4MywzODY5NSw0MDI4OSwyNjg5MSwyMzE2NywyMzA2NCwy'@; put 'MDkwMSwyMTUxNywyMTYyOSwyNjEyNiwzMDQzMSwzNjg1NSwzNzUyOCw0MDE4MCwyMzAxOCwyOTI3NywyODM1NywyMDgxMywyNjgyNSwzMjE5MSwzMjIzNiwzODc1NCw0MDYzNCwyNTcyMCwyNzE2OSwzMzUzOCwyMjkxNiwyMzM5MSwyNzYxMSwyOTQ2NywzMDQ1MCwzMjE3OCwzMjc5MSwzMzk0'@; put 'NSwyMDc4NiwyNjQwOCw0MDY2NSwzMDQ0NiwyNjQ2NiwyMTI0NywzOTE3MywyMzU4OCwyNTE0NywzMTg3MCwzNjAxNiwyMTgzOSwyNDc1OCwzMjAxMSwzODI3MiwyMTI0OSwyMDA2MywyMDkxOCwyMjgxMiwyOTI0MiwzMjgyMiwzNzMyNiwyNDM1NywzMDY5MCwyMTM4MCwyNDQ0MSwzMjAwNCwz'@; put 'NDIyMCwzNTM3OSwzNjQ5MywzODc0MiwyNjYxMSwzNDIyMiwzNzk3MSwyNDg0MSwyNDg0MCwyNzgzMywzMDI5MCwzNTU2NSwzNjY2NCwyMTgwNywyMDMwNSwyMDc3OCwyMTE5MSwyMTQ1MSwyMzQ2MSwyNDE4OSwyNDczNiwyNDk2MiwyNTU1OCwyNjM3NywyNjU4NiwyODI2MywyODA0NCwyOTQ5'@; put 'NCwyOTQ5NSwzMDAwMSwzMTA1NiwzNTAyOSwzNTQ4MCwzNjkzOCwzNzAwOSwzNzEwOSwzODU5NiwzNDcwMSwyMjgwNSwyMDEwNCwyMDMxMywxOTk4MiwzNTQ2NSwzNjY3MSwzODkyOCwyMDY1MywyNDE4OCwyMjkzNCwyMzQ4MSwyNDI0OCwyNTU2MiwyNTU5NCwyNTc5MywyNjMzMiwyNjk1NCwy'@; put 'NzA5NiwyNzkxNSwyODM0MiwyOTA3NiwyOTk5MiwzMTQwNywzMjY1MCwzMjc2OCwzMzg2NSwzMzk5MywzNTIwMSwzNTYxNywzNjM2MiwzNjk2NSwzODUyNSwzOTE3OCwyNDk1OCwyNTIzMywyNzQ0MiwyNzc3OSwyODAyMCwzMjcxNiwzMjc2NCwyODA5NiwzMjY0NSwzNDc0NiwzNTA2NCwyNjQ2'@; put 'OSwzMzcxMywzODk3MiwzODY0NywyNzkzMSwzMjA5NywzMzg1MywzNzIyNiwyMDA4MSwyMTM2NSwyMzg4OCwyNzM5NiwyODY1MSwzNDI1MywzNDM0OSwzNTIzOSwyMTAzMywyMTUxOSwyMzY1MywyNjQ0NiwyNjc5MiwyOTcwMiwyOTgyNywzMDE3OCwzNTAyMywzNTA0MSwzNzMyNCwzODYyNiwz'@; put 'ODUyMCwyNDQ1OSwyOTU3NSwzMTQzNSwzMzg3MCwyNTUwNCwzMDA1MywyMTEyOSwyNzk2OSwyODMxNiwyOTcwNSwzMDA0MSwzMDgyNywzMTg5MCwzODUzNCwzMTQ1Miw0MDg0NSwyMDQwNiwyNDk0MiwyNjA1MywzNDM5NiwyMDEwMiwyMDE0MiwyMDY5OCwyMDAwMSwyMDk0MCwyMzUzNCwyNjAw'@; put 'OSwyNjc1MywyODA5MiwyOTQ3MSwzMDI3NCwzMDYzNywzMTI2MCwzMTk3NSwzMzM5MSwzNTUzOCwzNjk4OCwzNzMyNywzODUxNywzODkzNiwyMTE0NywzMjIwOSwyMDUyMywyMTQwMCwyNjUxOSwyODEwNywyOTEzNiwyOTc0NywzMzI1NiwzNjY1MCwzODU2Myw0MDAyMyw0MDYwNywyOTc5Miwy'@; put 'MjU5MywyODA1NywzMjA0NywzOTAwNiwyMDE5NiwyMDI3OCwyMDM2MywyMDkxOSwyMTE2OSwyMzk5NCwyNDYwNCwyOTYxOCwzMTAzNiwzMzQ5MSwzNzQyOCwzODU4MywzODY0NiwzODY2Niw0MDU5OSw0MDgwMiwyNjI3OCwyNzUwOCwyMTAxNSwyMTE1NSwyODg3MiwzNTAxMCwyNDI2NSwyNDY1'@; put 'MSwyNDk3NiwyODQ1MSwyOTAwMSwzMTgwNiwzMjI0NCwzMjg3OSwzNDAzMCwzNjg5OSwzNzY3NiwyMTU3MCwzOTc5MSwyNzM0NywyODgwOSwzNjAzNCwzNjMzNSwzODcwNiwyMTE3MiwyMzEwNSwyNDI2NiwyNDMyNCwyNjM5MSwyNzAwNCwyNzAyOCwyODAxMCwyODQzMSwyOTI4MiwyOTQzNiwz'@; put 'MTcyNSwzMjc2OSwzMjg5NCwzNDYzNSwzNzA3MCwyMDg0NSw0MDU5NSwzMTEwOCwzMjkwNywzNzY4MiwzNTU0MiwyMDUyNSwyMTY0NCwzNTQ0MSwyNzQ5OCwzNjAzNiwzMzAzMSwyNDc4NSwyNjUyOCw0MDQzNCwyMDEyMSwyMDEyMCwzOTk1MiwzNTQzNSwzNDI0MSwzNDE1MiwyNjg4MCwyODI4'@; put 'NiwzMDg3MSwzMzEwOSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDI0MzMyLDE5OTg0LDE5OTg5LDIwMDEwLDIwMDE3LDIwMDIyLDIwMDI4LDIwMDMxLDIwMDM0LDIwMDU0LDIwMDU2LDIwMDk4LDIwMTAxLDM1OTQ3LDIwMTA2LDMzMjk4LDI0MzMz'@; put 'LDIwMTEwLDIwMTI2LDIwMTI3LDIwMTI4LDIwMTMwLDIwMTQ0LDIwMTQ3LDIwMTUwLDIwMTc0LDIwMTczLDIwMTY0LDIwMTY2LDIwMTYyLDIwMTgzLDIwMTkwLDIwMjA1LDIwMTkxLDIwMjE1LDIwMjMzLDIwMzE0LDIwMjcyLDIwMzE1LDIwMzE3LDIwMzExLDIwMjk1LDIwMzQyLDIwMzYwLDIw'@; put 'MzY3LDIwMzc2LDIwMzQ3LDIwMzI5LDIwMzM2LDIwMzY5LDIwMzM1LDIwMzU4LDIwMzc0LDIwNzYwLDIwNDM2LDIwNDQ3LDIwNDMwLDIwNDQwLDIwNDQzLDIwNDMzLDIwNDQyLDIwNDMyLDIwNDUyLDIwNDUzLDIwNTA2LDIwNTIwLDIwNTAwLDIwNTIyLDIwNTE3LDIwNDg1LDIwMjUyLDIwNDcw'@; put 'LDIwNTEzLDIwNTIxLDIwNTI0LDIwNDc4LDIwNDYzLDIwNDk3LDIwNDg2LDIwNTQ3LDIwNTUxLDI2MzcxLDIwNTY1LDIwNTYwLDIwNTUyLDIwNTcwLDIwNTY2LDIwNTg4LDIwNjAwLDIwNjA4LDIwNjM0LDIwNjEzLDIwNjYwLDIwNjU4LDIwNjgxLDIwNjgyLDIwNjU5LDIwNjc0LDIwNjk0LDIw'@; put 'NzAyLDIwNzA5LDIwNzE3LDIwNzA3LDIwNzE4LDIwNzI5LDIwNzI1LDIwNzQ1LDIwNzM3LDIwNzM4LDIwNzU4LDIwNzU3LDIwNzU2LDIwNzYyLDIwNzY5LDIwNzk0LDIwNzkxLDIwNzk2LDIwNzk1LDIwNzk5LDIwODAwLDIwODE4LDIwODEyLDIwODIwLDIwODM0LDMxNDgwLDIwODQxLDIwODQy'@; put 'LDIwODQ2LDIwODY0LDIwODY2LDIyMjMyLDIwODc2LDIwODczLDIwODc5LDIwODgxLDIwODgzLDIwODg1LDIwODg2LDIwOTAwLDIwOTAyLDIwODk4LDIwOTA1LDIwOTA2LDIwOTA3LDIwOTE1LDIwOTEzLDIwOTE0LDIwOTEyLDIwOTE3LDIwOTI1LDIwOTMzLDIwOTM3LDIwOTU1LDIwOTYwLDM0'@; put 'Mzg5LDIwOTY5LDIwOTczLDIwOTc2LDIwOTgxLDIwOTkwLDIwOTk2LDIxMDAzLDIxMDEyLDIxMDA2LDIxMDMxLDIxMDM0LDIxMDM4LDIxMDQzLDIxMDQ5LDIxMDcxLDIxMDYwLDIxMDY3LDIxMDY4LDIxMDg2LDIxMDc2LDIxMDk4LDIxMTA4LDIxMDk3LDIxMTA3LDIxMTE5LDIxMTE3LDIxMTMz'@; put 'LDIxMTQwLDIxMTM4LDIxMTA1LDIxMTI4LDIxMTM3LDM2Nzc2LDM2Nzc1LDIxMTY0LDIxMTY1LDIxMTgwLDIxMTczLDIxMTg1LDIxMTk3LDIxMjA3LDIxMjE0LDIxMjE5LDIxMjIyLDM5MTQ5LDIxMjE2LDIxMjM1LDIxMjM3LDIxMjQwLDIxMjQxLDIxMjU0LDIxMjU2LDMwMDA4LDIxMjYxLDIx'@; put 'MjY0LDIxMjYzLDIxMjY5LDIxMjc0LDIxMjgzLDIxMjk1LDIxMjk3LDIxMjk5LDIxMzA0LDIxMzEyLDIxMzE4LDIxMzE3LDE5OTkxLDIxMzIxLDIxMzI1LDIwOTUwLDIxMzQyLDIxMzUzLDIxMzU4LDIyODA4LDIxMzcxLDIxMzY3LDIxMzc4LDIxMzk4LDIxNDA4LDIxNDE0LDIxNDEzLDIxNDIy'@; put 'LDIxNDI0LDIxNDMwLDIxNDQzLDMxNzYyLDM4NjE3LDIxNDcxLDI2MzY0LDI5MTY2LDIxNDg2LDIxNDgwLDIxNDg1LDIxNDk4LDIxNTA1LDIxNTY1LDIxNTY4LDIxNTQ4LDIxNTQ5LDIxNTY0LDIxNTUwLDIxNTU4LDIxNTQ1LDIxNTMzLDIxNTgyLDIxNjQ3LDIxNjIxLDIxNjQ2LDIxNTk5LDIx'@; put 'NjE3LDIxNjIzLDIxNjE2LDIxNjUwLDIxNjI3LDIxNjMyLDIxNjIyLDIxNjM2LDIxNjQ4LDIxNjM4LDIxNzAzLDIxNjY2LDIxNjg4LDIxNjY5LDIxNjc2LDIxNzAwLDIxNzA0LDIxNjcyLDIxNjc1LDIxNjk4LDIxNjY4LDIxNjk0LDIxNjkyLDIxNzIwLDIxNzMzLDIxNzM0LDIxNzc1LDIxNzgw'@; put 'LDIxNzU3LDIxNzQyLDIxNzQxLDIxNzU0LDIxNzMwLDIxODE3LDIxODI0LDIxODU5LDIxODM2LDIxODA2LDIxODUyLDIxODI5LDIxODQ2LDIxODQ3LDIxODE2LDIxODExLDIxODUzLDIxOTEzLDIxODg4LDIxNjc5LDIxODk4LDIxOTE5LDIxODgzLDIxODg2LDIxOTEyLDIxOTE4LDIxOTM0LDIx'@; put 'ODg0LDIxODkxLDIxOTI5LDIxODk1LDIxOTI4LDIxOTc4LDIxOTU3LDIxOTgzLDIxOTU2LDIxOTgwLDIxOTg4LDIxOTcyLDIyMDM2LDIyMDA3LDIyMDM4LDIyMDE0LDIyMDEzLDIyMDQzLDIyMDA5LDIyMDk0LDIyMDk2LDI5MTUxLDIyMDY4LDIyMDcwLDIyMDY2LDIyMDcyLDIyMTIzLDIyMTE2'@; put 'LDIyMDYzLDIyMTI0LDIyMTIyLDIyMTUwLDIyMTQ0LDIyMTU0LDIyMTc2LDIyMTY0LDIyMTU5LDIyMTgxLDIyMTkwLDIyMTk4LDIyMTk2LDIyMjEwLDIyMjA0LDIyMjA5LDIyMjExLDIyMjA4LDIyMjE2LDIyMjIyLDIyMjI1LDIyMjI3LDIyMjMxLDIyMjU0LDIyMjY1LDIyMjcyLDIyMjcxLDIy'@; put 'Mjc2LDIyMjgxLDIyMjgwLDIyMjgzLDIyMjg1LDIyMjkxLDIyMjk2LDIyMjk0LDIxOTU5LDIyMzAwLDIyMzEwLDIyMzI3LDIyMzI4LDIyMzUwLDIyMzMxLDIyMzM2LDIyMzUxLDIyMzc3LDIyNDY0LDIyNDA4LDIyMzY5LDIyMzk5LDIyNDA5LDIyNDE5LDIyNDMyLDIyNDUxLDIyNDM2LDIyNDQy'@; put 'LDIyNDQ4LDIyNDY3LDIyNDcwLDIyNDg0LDIyNDgyLDIyNDgzLDIyNTM4LDIyNDg2LDIyNDk5LDIyNTM5LDIyNTUzLDIyNTU3LDIyNjQyLDIyNTYxLDIyNjI2LDIyNjAzLDIyNjQwLDI3NTg0LDIyNjEwLDIyNTg5LDIyNjQ5LDIyNjYxLDIyNzEzLDIyNjg3LDIyNjk5LDIyNzE0LDIyNzUwLDIy'@; put 'NzE1LDIyNzEyLDIyNzAyLDIyNzI1LDIyNzM5LDIyNzM3LDIyNzQzLDIyNzQ1LDIyNzQ0LDIyNzU3LDIyNzQ4LDIyNzU2LDIyNzUxLDIyNzY3LDIyNzc4LDIyNzc3LDIyNzc5LDIyNzgwLDIyNzgxLDIyNzg2LDIyNzk0LDIyODAwLDIyODExLDI2NzkwLDIyODIxLDIyODI4LDIyODI5LDIyODM0'@; put 'LDIyODQwLDIyODQ2LDMxNDQyLDIyODY5LDIyODY0LDIyODYyLDIyODc0LDIyODcyLDIyODgyLDIyODgwLDIyODg3LDIyODkyLDIyODg5LDIyOTA0LDIyOTEzLDIyOTQxLDIwMzE4LDIwMzk1LDIyOTQ3LDIyOTYyLDIyOTgyLDIzMDE2LDIzMDA0LDIyOTI1LDIzMDAxLDIzMDAyLDIzMDc3LDIz'@; put 'MDcxLDIzMDU3LDIzMDY4LDIzMDQ5LDIzMDY2LDIzMTA0LDIzMTQ4LDIzMTEzLDIzMDkzLDIzMDk0LDIzMTM4LDIzMTQ2LDIzMTk0LDIzMjI4LDIzMjMwLDIzMjQzLDIzMjM0LDIzMjI5LDIzMjY3LDIzMjU1LDIzMjcwLDIzMjczLDIzMjU0LDIzMjkwLDIzMjkxLDIzMzA4LDIzMzA3LDIzMzE4'@; put 'LDIzMzQ2LDIzMjQ4LDIzMzM4LDIzMzUwLDIzMzU4LDIzMzYzLDIzMzY1LDIzMzYwLDIzMzc3LDIzMzgxLDIzMzg2LDIzMzg3LDIzMzk3LDIzNDAxLDIzNDA4LDIzNDExLDIzNDEzLDIzNDE2LDI1OTkyLDIzNDE4LDIzNDI0LDIzNDI3LDIzNDYyLDIzNDgwLDIzNDkxLDIzNDk1LDIzNDk3LDIz'@; put 'NTA4LDIzNTA0LDIzNTI0LDIzNTI2LDIzNTIyLDIzNTE4LDIzNTI1LDIzNTMxLDIzNTM2LDIzNTQyLDIzNTM5LDIzNTU3LDIzNTU5LDIzNTYwLDIzNTY1LDIzNTcxLDIzNTg0LDIzNTg2LDIzNTkyLDIzNjA4LDIzNjA5LDIzNjE3LDIzNjIyLDIzNjMwLDIzNjM1LDIzNjMyLDIzNjMxLDIzNDA5'@; put 'LDIzNjYwLDIzNjYyLDIwMDY2LDIzNjcwLDIzNjczLDIzNjkyLDIzNjk3LDIzNzAwLDIyOTM5LDIzNzIzLDIzNzM5LDIzNzM0LDIzNzQwLDIzNzM1LDIzNzQ5LDIzNzQyLDIzNzUxLDIzNzY5LDIzNzg1LDIzODA1LDIzODAyLDIzNzg5LDIzOTQ4LDIzNzg2LDIzODE5LDIzODI5LDIzODMxLDIz'@; put 'OTAwLDIzODM5LDIzODM1LDIzODI1LDIzODI4LDIzODQyLDIzODM0LDIzODMzLDIzODMyLDIzODg0LDIzODkwLDIzODg2LDIzODgzLDIzOTE2LDIzOTIzLDIzOTI2LDIzOTQzLDIzOTQwLDIzOTM4LDIzOTcwLDIzOTY1LDIzOTgwLDIzOTgyLDIzOTk3LDIzOTUyLDIzOTkxLDIzOTk2LDI0MDA5'@; put 'LDI0MDEzLDI0MDE5LDI0MDE4LDI0MDIyLDI0MDI3LDI0MDQzLDI0MDUwLDI0MDUzLDI0MDc1LDI0MDkwLDI0MDg5LDI0MDgxLDI0MDkxLDI0MTE4LDI0MTE5LDI0MTMyLDI0MTMxLDI0MTI4LDI0MTQyLDI0MTUxLDI0MTQ4LDI0MTU5LDI0MTYyLDI0MTY0LDI0MTM1LDI0MTgxLDI0MTgyLDI0'@; put 'MTg2LDQwNjM2LDI0MTkxLDI0MjI0LDI0MjU3LDI0MjU4LDI0MjY0LDI0MjcyLDI0MjcxLDI0Mjc4LDI0MjkxLDI0Mjg1LDI0MjgyLDI0MjgzLDI0MjkwLDI0Mjg5LDI0Mjk2LDI0Mjk3LDI0MzAwLDI0MzA1LDI0MzA3LDI0MzA0LDI0MzA4LDI0MzEyLDI0MzE4LDI0MzIzLDI0MzI5LDI0NDEz'@; put 'LDI0NDEyLDI0MzMxLDI0MzM3LDI0MzQyLDI0MzYxLDI0MzY1LDI0Mzc2LDI0Mzg1LDI0MzkyLDI0Mzk2LDI0Mzk4LDI0MzY3LDI0NDAxLDI0NDA2LDI0NDA3LDI0NDA5LDI0NDE3LDI0NDI5LDI0NDM1LDI0NDM5LDI0NDUxLDI0NDUwLDI0NDQ3LDI0NDU4LDI0NDU2LDI0NDY1LDI0NDU1LDI0'@; put 'NDc4LDI0NDczLDI0NDcyLDI0NDgwLDI0NDg4LDI0NDkzLDI0NTA4LDI0NTM0LDI0NTcxLDI0NTQ4LDI0NTY4LDI0NTYxLDI0NTQxLDI0NzU1LDI0NTc1LDI0NjA5LDI0NjcyLDI0NjAxLDI0NTkyLDI0NjE3LDI0NTkwLDI0NjI1LDI0NjAzLDI0NTk3LDI0NjE5LDI0NjE0LDI0NTkxLDI0NjM0'@; put 'LDI0NjY2LDI0NjQxLDI0NjgyLDI0Njk1LDI0NjcxLDI0NjUwLDI0NjQ2LDI0NjUzLDI0Njc1LDI0NjQzLDI0Njc2LDI0NjQyLDI0Njg0LDI0NjgzLDI0NjY1LDI0NzA1LDI0NzE3LDI0ODA3LDI0NzA3LDI0NzMwLDI0NzA4LDI0NzMxLDI0NzI2LDI0NzI3LDI0NzIyLDI0NzQzLDI0NzE1LDI0'@; put 'ODAxLDI0NzYwLDI0ODAwLDI0Nzg3LDI0NzU2LDI0NTYwLDI0NzY1LDI0Nzc0LDI0NzU3LDI0NzkyLDI0OTA5LDI0ODUzLDI0ODM4LDI0ODIyLDI0ODIzLDI0ODMyLDI0ODIwLDI0ODI2LDI0ODM1LDI0ODY1LDI0ODI3LDI0ODE3LDI0ODQ1LDI0ODQ2LDI0OTAzLDI0ODk0LDI0ODcyLDI0ODcx'@; put 'LDI0OTA2LDI0ODk1LDI0ODkyLDI0ODc2LDI0ODg0LDI0ODkzLDI0ODk4LDI0OTAwLDI0OTQ3LDI0OTUxLDI0OTIwLDI0OTIxLDI0OTIyLDI0OTM5LDI0OTQ4LDI0OTQzLDI0OTMzLDI0OTQ1LDI0OTI3LDI0OTI1LDI0OTE1LDI0OTQ5LDI0OTg1LDI0OTgyLDI0OTY3LDI1MDA0LDI0OTgwLDI0'@; put 'OTg2LDI0OTcwLDI0OTc3LDI1MDAzLDI1MDA2LDI1MDM2LDI1MDM0LDI1MDMzLDI1MDc5LDI1MDMyLDI1MDI3LDI1MDMwLDI1MDE4LDI1MDM1LDMyNjMzLDI1MDM3LDI1MDYyLDI1MDU5LDI1MDc4LDI1MDgyLDI1MDc2LDI1MDg3LDI1MDg1LDI1MDg0LDI1MDg2LDI1MDg4LDI1MDk2LDI1MDk3'@; put 'LDI1MTAxLDI1MTAwLDI1MTA4LDI1MTE1LDI1MTE4LDI1MTIxLDI1MTMwLDI1MTM0LDI1MTM2LDI1MTM4LDI1MTM5LDI1MTUzLDI1MTY2LDI1MTgyLDI1MTg3LDI1MTc5LDI1MTg0LDI1MTkyLDI1MjEyLDI1MjE4LDI1MjI1LDI1MjE0LDI1MjM0LDI1MjM1LDI1MjM4LDI1MzAwLDI1MjE5LDI1'@; put 'MjM2LDI1MzAzLDI1Mjk3LDI1Mjc1LDI1Mjk1LDI1MzQzLDI1Mjg2LDI1ODEyLDI1Mjg4LDI1MzA4LDI1MjkyLDI1MjkwLDI1MjgyLDI1Mjg3LDI1MjQzLDI1Mjg5LDI1MzU2LDI1MzI2LDI1MzI5LDI1MzgzLDI1MzQ2LDI1MzUyLDI1MzI3LDI1MzMzLDI1NDI0LDI1NDA2LDI1NDIxLDI1NjI4'@; put 'LDI1NDIzLDI1NDk0LDI1NDg2LDI1NDcyLDI1NTE1LDI1NDYyLDI1NTA3LDI1NDg3LDI1NDgxLDI1NTAzLDI1NTI1LDI1NDUxLDI1NDQ5LDI1NTM0LDI1NTc3LDI1NTM2LDI1NTQyLDI1NTcxLDI1NTQ1LDI1NTU0LDI1NTkwLDI1NTQwLDI1NjIyLDI1NjUyLDI1NjA2LDI1NjE5LDI1NjM4LDI1'@; put 'NjU0LDI1ODg1LDI1NjIzLDI1NjQwLDI1NjE1LDI1NzAzLDI1NzExLDI1NzE4LDI1Njc4LDI1ODk4LDI1NzQ5LDI1NzQ3LDI1NzY1LDI1NzY5LDI1NzM2LDI1Nzg4LDI1ODE4LDI1ODEwLDI1Nzk3LDI1Nzk5LDI1Nzg3LDI1ODE2LDI1Nzk0LDI1ODQxLDI1ODMxLDMzMjg5LDI1ODI0LDI1ODI1'@; put 'LDI1MjYwLDI1ODI3LDI1ODM5LDI1OTAwLDI1ODQ2LDI1ODQ0LDI1ODQyLDI1ODUwLDI1ODU2LDI1ODUzLDI1ODgwLDI1ODg0LDI1ODYxLDI1ODkyLDI1ODkxLDI1ODk5LDI1OTA4LDI1OTA5LDI1OTExLDI1OTEwLDI1OTEyLDMwMDI3LDI1OTI4LDI1OTQyLDI1OTQxLDI1OTMzLDI1OTQ0LDI1'@; put 'OTUwLDI1OTQ5LDI1OTcwLDI1OTc2LDI1OTg2LDI1OTg3LDM1NzIyLDI2MDExLDI2MDE1LDI2MDI3LDI2MDM5LDI2MDUxLDI2MDU0LDI2MDQ5LDI2MDUyLDI2MDYwLDI2MDY2LDI2MDc1LDI2MDczLDI2MDgwLDI2MDgxLDI2MDk3LDI2NDgyLDI2MTIyLDI2MTE1LDI2MTA3LDI2NDgzLDI2MTY1'@; put 'LDI2MTY2LDI2MTY0LDI2MTQwLDI2MTkxLDI2MTgwLDI2MTg1LDI2MTc3LDI2MjA2LDI2MjA1LDI2MjEyLDI2MjE1LDI2MjE2LDI2MjA3LDI2MjEwLDI2MjI0LDI2MjQzLDI2MjQ4LDI2MjU0LDI2MjQ5LDI2MjQ0LDI2MjY0LDI2MjY5LDI2MzA1LDI2Mjk3LDI2MzEzLDI2MzAyLDI2MzAwLDI2'@; put 'MzA4LDI2Mjk2LDI2MzI2LDI2MzMwLDI2MzM2LDI2MTc1LDI2MzQyLDI2MzQ1LDI2MzUyLDI2MzU3LDI2MzU5LDI2MzgzLDI2MzkwLDI2Mzk4LDI2NDA2LDI2NDA3LDM4NzEyLDI2NDE0LDI2NDMxLDI2NDIyLDI2NDMzLDI2NDI0LDI2NDIzLDI2NDM4LDI2NDYyLDI2NDY0LDI2NDU3LDI2NDY3'@; put 'LDI2NDY4LDI2NTA1LDI2NDgwLDI2NTM3LDI2NDkyLDI2NDc0LDI2NTA4LDI2NTA3LDI2NTM0LDI2NTI5LDI2NTAxLDI2NTUxLDI2NjA3LDI2NTQ4LDI2NjA0LDI2NTQ3LDI2NjAxLDI2NTUyLDI2NTk2LDI2NTkwLDI2NTg5LDI2NTk0LDI2NjA2LDI2NTUzLDI2NTc0LDI2NTY2LDI2NTk5LDI3'@; put 'MjkyLDI2NjU0LDI2Njk0LDI2NjY1LDI2Njg4LDI2NzAxLDI2Njc0LDI2NzAyLDI2ODAzLDI2NjY3LDI2NzEzLDI2NzIzLDI2NzQzLDI2NzUxLDI2NzgzLDI2NzY3LDI2Nzk3LDI2NzcyLDI2NzgxLDI2Nzc5LDI2NzU1LDI3MzEwLDI2ODA5LDI2NzQwLDI2ODA1LDI2Nzg0LDI2ODEwLDI2ODk1'@; put 'LDI2NzY1LDI2NzUwLDI2ODgxLDI2ODI2LDI2ODg4LDI2ODQwLDI2OTE0LDI2OTE4LDI2ODQ5LDI2ODkyLDI2ODI5LDI2ODM2LDI2ODU1LDI2ODM3LDI2OTM0LDI2ODk4LDI2ODg0LDI2ODM5LDI2ODUxLDI2OTE3LDI2ODczLDI2ODQ4LDI2ODYzLDI2OTIwLDI2OTIyLDI2OTA2LDI2OTE1LDI2'@; put 'OTEzLDI2ODIyLDI3MDAxLDI2OTk5LDI2OTcyLDI3ZTMsMjY5ODcsMjY5NjQsMjcwMDYsMjY5OTAsMjY5MzcsMjY5OTYsMjY5NDEsMjY5NjksMjY5MjgsMjY5NzcsMjY5NzQsMjY5NzMsMjcwMDksMjY5ODYsMjcwNTgsMjcwNTQsMjcwODgsMjcwNzEsMjcwNzMsMjcwOTEsMjcwNzAsMjcwODYs'@; put 'MjM1MjgsMjcwODIsMjcxMDEsMjcwNjcsMjcwNzUsMjcwNDcsMjcxODIsMjcwMjUsMjcwNDAsMjcwMzYsMjcwMjksMjcwNjAsMjcxMDIsMjcxMTIsMjcxMzgsMjcxNjMsMjcxMzUsMjc0MDIsMjcxMjksMjcxMjIsMjcxMTEsMjcxNDEsMjcwNTcsMjcxNjYsMjcxMTcsMjcxNTYsMjcxMTUsMjcx'@; put 'NDYsMjcxNTQsMjczMjksMjcxNzEsMjcxNTUsMjcyMDQsMjcxNDgsMjcyNTAsMjcxOTAsMjcyNTYsMjcyMDcsMjcyMzQsMjcyMjUsMjcyMzgsMjcyMDgsMjcxOTIsMjcxNzAsMjcyODAsMjcyNzcsMjcyOTYsMjcyNjgsMjcyOTgsMjcyOTksMjcyODcsMzQzMjcsMjczMjMsMjczMzEsMjczMzAs'@; put 'MjczMjAsMjczMTUsMjczMDgsMjczNTgsMjczNDUsMjczNTksMjczMDYsMjczNTQsMjczNzAsMjczODcsMjczOTcsMzQzMjYsMjczODYsMjc0MTAsMjc0MTQsMzk3MjksMjc0MjMsMjc0NDgsMjc0NDcsMzA0MjgsMjc0NDksMzkxNTAsMjc0NjMsMjc0NTksMjc0NjUsMjc0NzIsMjc0ODEsMjc0'@; put 'NzYsMjc0ODMsMjc0ODcsMjc0ODksMjc1MTIsMjc1MTMsMjc1MTksMjc1MjAsMjc1MjQsMjc1MjMsMjc1MzMsMjc1NDQsMjc1NDEsMjc1NTAsMjc1NTYsMjc1NjIsMjc1NjMsMjc1NjcsMjc1NzAsMjc1NjksMjc1NzEsMjc1NzUsMjc1ODAsMjc1OTAsMjc1OTUsMjc2MDMsMjc2MTUsMjc2Mjgs'@; put 'Mjc2MjcsMjc2MzUsMjc2MzEsNDA2MzgsMjc2NTYsMjc2NjcsMjc2NjgsMjc2NzUsMjc2ODQsMjc2ODMsMjc3NDIsMjc3MzMsMjc3NDYsMjc3NTQsMjc3NzgsMjc3ODksMjc4MDIsMjc3NzcsMjc4MDMsMjc3NzQsMjc3NTIsMjc3NjMsMjc3OTQsMjc3OTIsMjc4NDQsMjc4ODksMjc4NTksMjc4'@; put 'MzcsMjc4NjMsMjc4NDUsMjc4NjksMjc4MjIsMjc4MjUsMjc4MzgsMjc4MzQsMjc4NjcsMjc4ODcsMjc4NjUsMjc4ODIsMjc5MzUsMzQ4OTMsMjc5NTgsMjc5NDcsMjc5NjUsMjc5NjAsMjc5MjksMjc5NTcsMjc5NTUsMjc5MjIsMjc5MTYsMjgwMDMsMjgwNTEsMjgwMDQsMjc5OTQsMjgwMjUs'@; put 'Mjc5OTMsMjgwNDYsMjgwNTMsMjg2NDQsMjgwMzcsMjgxNTMsMjgxODEsMjgxNzAsMjgwODUsMjgxMDMsMjgxMzQsMjgwODgsMjgxMDIsMjgxNDAsMjgxMjYsMjgxMDgsMjgxMzYsMjgxMTQsMjgxMDEsMjgxNTQsMjgxMjEsMjgxMzIsMjgxMTcsMjgxMzgsMjgxNDIsMjgyMDUsMjgyNzAsMjgy'@; put 'MDYsMjgxODUsMjgyNzQsMjgyNTUsMjgyMjIsMjgxOTUsMjgyNjcsMjgyMDMsMjgyNzgsMjgyMzcsMjgxOTEsMjgyMjcsMjgyMTgsMjgyMzgsMjgxOTYsMjg0MTUsMjgxODksMjgyMTYsMjgyOTAsMjgzMzAsMjgzMTIsMjgzNjEsMjgzNDMsMjgzNzEsMjgzNDksMjgzMzUsMjgzNTYsMjgzMzgs'@; put 'MjgzNzIsMjgzNzMsMjgzMDMsMjgzMjUsMjgzNTQsMjgzMTksMjg0ODEsMjg0MzMsMjg3NDgsMjgzOTYsMjg0MDgsMjg0MTQsMjg0NzksMjg0MDIsMjg0NjUsMjgzOTksMjg0NjYsMjgzNjQsMjg0NzgsMjg0MzUsMjg0MDcsMjg1NTAsMjg1MzgsMjg1MzYsMjg1NDUsMjg1NDQsMjg1MjcsMjg1'@; put 'MDcsMjg2NTksMjg1MjUsMjg1NDYsMjg1NDAsMjg1MDQsMjg1NTgsMjg1NjEsMjg2MTAsMjg1MTgsMjg1OTUsMjg1NzksMjg1NzcsMjg1ODAsMjg2MDEsMjg2MTQsMjg1ODYsMjg2MzksMjg2MjksMjg2NTIsMjg2MjgsMjg2MzIsMjg2NTcsMjg2NTQsMjg2MzUsMjg2ODEsMjg2ODMsMjg2NjYs'@; put 'Mjg2ODksMjg2NzMsMjg2ODcsMjg2NzAsMjg2OTksMjg2OTgsMjg1MzIsMjg3MDEsMjg2OTYsMjg3MDMsMjg3MjAsMjg3MzQsMjg3MjIsMjg3NTMsMjg3NzEsMjg4MjUsMjg4MTgsMjg4NDcsMjg5MTMsMjg4NDQsMjg4NTYsMjg4NTEsMjg4NDYsMjg4OTUsMjg4NzUsMjg4OTMsMjg4ODksMjg5'@; put 'MzcsMjg5MjUsMjg5NTYsMjg5NTMsMjkwMjksMjkwMTMsMjkwNjQsMjkwMzAsMjkwMjYsMjkwMDQsMjkwMTQsMjkwMzYsMjkwNzEsMjkxNzksMjkwNjAsMjkwNzcsMjkwOTYsMjkxMDAsMjkxNDMsMjkxMTMsMjkxMTgsMjkxMzgsMjkxMjksMjkxNDAsMjkxMzQsMjkxNTIsMjkxNjQsMjkxNTks'@; put 'MjkxNzMsMjkxODAsMjkxNzcsMjkxODMsMjkxOTcsMjkyMDAsMjkyMTEsMjkyMjQsMjkyMjksMjkyMjgsMjkyMzIsMjkyMzQsMjkyNDMsMjkyNDQsMjkyNDcsMjkyNDgsMjkyNTQsMjkyNTksMjkyNzIsMjkzMDAsMjkzMTAsMjkzMTQsMjkzMTMsMjkzMTksMjkzMzAsMjkzMzQsMjkzNDYsMjkz'@; put 'NTEsMjkzNjksMjkzNjIsMjkzNzksMjkzODIsMjkzODAsMjkzOTAsMjkzOTQsMjk0MTAsMjk0MDgsMjk0MDksMjk0MzMsMjk0MzEsMjA0OTUsMjk0NjMsMjk0NTAsMjk0NjgsMjk0NjIsMjk0NjksMjk0OTIsMjk0ODcsMjk0ODEsMjk0NzcsMjk1MDIsMjk1MTgsMjk1MTksNDA2NjQsMjk1Mjcs'@; put 'Mjk1NDYsMjk1NDQsMjk1NTIsMjk1NjAsMjk1NTcsMjk1NjMsMjk1NjIsMjk2NDAsMjk2MTksMjk2NDYsMjk2MjcsMjk2MzIsMjk2NjksMjk2NzgsMjk2NjIsMjk4NTgsMjk3MDEsMjk4MDcsMjk3MzMsMjk2ODgsMjk3NDYsMjk3NTQsMjk3ODEsMjk3NTksMjk3OTEsMjk3ODUsMjk3NjEsMjk3'@; put 'ODgsMjk4MDEsMjk4MDgsMjk3OTUsMjk4MDIsMjk4MTQsMjk4MjIsMjk4MzUsMjk4NTQsMjk4NjMsMjk4OTgsMjk5MDMsMjk5MDgsMjk2ODEsMjk5MjAsMjk5MjMsMjk5MjcsMjk5MjksMjk5MzQsMjk5MzgsMjk5MzYsMjk5MzcsMjk5NDQsMjk5NDMsMjk5NTYsMjk5NTUsMjk5NTcsMjk5NjQs'@; put 'Mjk5NjYsMjk5NjUsMjk5NzMsMjk5NzEsMjk5ODIsMjk5OTAsMjk5OTYsMzAwMTIsMzAwMjAsMzAwMjksMzAwMjYsMzAwMjUsMzAwNDMsMzAwMjIsMzAwNDIsMzAwNTcsMzAwNTIsMzAwNTUsMzAwNTksMzAwNjEsMzAwNzIsMzAwNzAsMzAwODYsMzAwODcsMzAwNjgsMzAwOTAsMzAwODksMzAw'@; put 'ODIsMzAxMDAsMzAxMDYsMzAxMDksMzAxMTcsMzAxMTUsMzAxNDYsMzAxMzEsMzAxNDcsMzAxMzMsMzAxNDEsMzAxMzYsMzAxNDAsMzAxMjksMzAxNTcsMzAxNTQsMzAxNjIsMzAxNjksMzAxNzksMzAxNzQsMzAyMDYsMzAyMDcsMzAyMDQsMzAyMDksMzAxOTIsMzAyMDIsMzAxOTQsMzAxOTUs'@; put 'MzAyMTksMzAyMjEsMzAyMTcsMzAyMzksMzAyNDcsMzAyNDAsMzAyNDEsMzAyNDIsMzAyNDQsMzAyNjAsMzAyNTYsMzAyNjcsMzAyNzksMzAyODAsMzAyNzgsMzAzMDAsMzAyOTYsMzAzMDUsMzAzMDYsMzAzMTIsMzAzMTMsMzAzMTQsMzAzMTEsMzAzMTYsMzAzMjAsMzAzMjIsMzAzMjYsMzAz'@; put 'MjgsMzAzMzIsMzAzMzYsMzAzMzksMzAzNDQsMzAzNDcsMzAzNTAsMzAzNTgsMzAzNTUsMzAzNjEsMzAzNjIsMzAzODQsMzAzODgsMzAzOTIsMzAzOTMsMzAzOTQsMzA0MDIsMzA0MTMsMzA0MjIsMzA0MTgsMzA0MzAsMzA0MzMsMzA0MzcsMzA0MzksMzA0NDIsMzQzNTEsMzA0NTksMzA0NzIs'@; put 'MzA0NzEsMzA0NjgsMzA1MDUsMzA1MDAsMzA0OTQsMzA1MDEsMzA1MDIsMzA0OTEsMzA1MTksMzA1MjAsMzA1MzUsMzA1NTQsMzA1NjgsMzA1NzEsMzA1NTUsMzA1NjUsMzA1OTEsMzA1OTAsMzA1ODUsMzA2MDYsMzA2MDMsMzA2MDksMzA2MjQsMzA2MjIsMzA2NDAsMzA2NDYsMzA2NDksMzA2'@; put 'NTUsMzA2NTIsMzA2NTMsMzA2NTEsMzA2NjMsMzA2NjksMzA2NzksMzA2ODIsMzA2ODQsMzA2OTEsMzA3MDIsMzA3MTYsMzA3MzIsMzA3MzgsMzEwMTQsMzA3NTIsMzEwMTgsMzA3ODksMzA4NjIsMzA4MzYsMzA4NTQsMzA4NDQsMzA4NzQsMzA4NjAsMzA4ODMsMzA5MDEsMzA4OTAsMzA4OTUs'@; put 'MzA5MjksMzA5MTgsMzA5MjMsMzA5MzIsMzA5MTAsMzA5MDgsMzA5MTcsMzA5MjIsMzA5NTYsMzA5NTEsMzA5MzgsMzA5NzMsMzA5NjQsMzA5ODMsMzA5OTQsMzA5OTMsMzEwMDEsMzEwMjAsMzEwMTksMzEwNDAsMzEwNzIsMzEwNjMsMzEwNzEsMzEwNjYsMzEwNjEsMzEwNTksMzEwOTgsMzEx'@; put 'MDMsMzExMTQsMzExMzMsMzExNDMsNDA3NzksMzExNDYsMzExNTAsMzExNTUsMzExNjEsMzExNjIsMzExNzcsMzExODksMzEyMDcsMzEyMTIsMzEyMDEsMzEyMDMsMzEyNDAsMzEyNDUsMzEyNTYsMzEyNTcsMzEyNjQsMzEyNjMsMzExMDQsMzEyODEsMzEyOTEsMzEyOTQsMzEyODcsMzEyOTks'@; put 'MzEzMTksMzEzMDUsMzEzMjksMzEzMzAsMzEzMzcsNDA4NjEsMzEzNDQsMzEzNTMsMzEzNTcsMzEzNjgsMzEzODMsMzEzODEsMzEzODQsMzEzODIsMzE0MDEsMzE0MzIsMzE0MDgsMzE0MTQsMzE0MjksMzE0MjgsMzE0MjMsMzY5OTUsMzE0MzEsMzE0MzQsMzE0MzcsMzE0MzksMzE0NDUsMzE0'@; put 'NDMsMzE0NDksMzE0NTAsMzE0NTMsMzE0NTcsMzE0NTgsMzE0NjIsMzE0NjksMzE0NzIsMzE0OTAsMzE1MDMsMzE0OTgsMzE0OTQsMzE1MzksMzE1MTIsMzE1MTMsMzE1MTgsMzE1NDEsMzE1MjgsMzE1NDIsMzE1NjgsMzE2MTAsMzE0OTIsMzE1NjUsMzE0OTksMzE1NjQsMzE1NTcsMzE2MDUs'@; put 'MzE1ODksMzE2MDQsMzE1OTEsMzE2MDAsMzE2MDEsMzE1OTYsMzE1OTgsMzE2NDUsMzE2NDAsMzE2NDcsMzE2MjksMzE2NDQsMzE2NDIsMzE2MjcsMzE2MzQsMzE2MzEsMzE1ODEsMzE2NDEsMzE2OTEsMzE2ODEsMzE2OTIsMzE2OTUsMzE2NjgsMzE2ODYsMzE3MDksMzE3MjEsMzE3NjEsMzE3'@; put 'NjQsMzE3MTgsMzE3MTcsMzE4NDAsMzE3NDQsMzE3NTEsMzE3NjMsMzE3MzEsMzE3MzUsMzE3NjcsMzE3NTcsMzE3MzQsMzE3NzksMzE3ODMsMzE3ODYsMzE3NzUsMzE3OTksMzE3ODcsMzE4MDUsMzE4MjAsMzE4MTEsMzE4MjgsMzE4MjMsMzE4MDgsMzE4MjQsMzE4MzIsMzE4MzksMzE4NDQs'@; put 'MzE4MzAsMzE4NDUsMzE4NTIsMzE4NjEsMzE4NzUsMzE4ODgsMzE5MDgsMzE5MTcsMzE5MDYsMzE5MTUsMzE5MDUsMzE5MTIsMzE5MjMsMzE5MjIsMzE5MjEsMzE5MTgsMzE5MjksMzE5MzMsMzE5MzYsMzE5NDEsMzE5MzgsMzE5NjAsMzE5NTQsMzE5NjQsMzE5NzAsMzk3MzksMzE5ODMsMzE5'@; put 'ODYsMzE5ODgsMzE5OTAsMzE5OTQsMzIwMDYsMzIwMDIsMzIwMjgsMzIwMjEsMzIwMTAsMzIwNjksMzIwNzUsMzIwNDYsMzIwNTAsMzIwNjMsMzIwNTMsMzIwNzAsMzIxMTUsMzIwODYsMzIwNzgsMzIxMTQsMzIxMDQsMzIxMTAsMzIwNzksMzIwOTksMzIxNDcsMzIxMzcsMzIwOTEsMzIxNDMs'@; put 'MzIxMjUsMzIxNTUsMzIxODYsMzIxNzQsMzIxNjMsMzIxODEsMzIxOTksMzIxODksMzIxNzEsMzIzMTcsMzIxNjIsMzIxNzUsMzIyMjAsMzIxODQsMzIxNTksMzIxNzYsMzIyMTYsMzIyMjEsMzIyMjgsMzIyMjIsMzIyNTEsMzIyNDIsMzIyMjUsMzIyNjEsMzIyNjYsMzIyOTEsMzIyODksMzIy'@; put 'NzQsMzIzMDUsMzIyODcsMzIyNjUsMzIyNjcsMzIyOTAsMzIzMjYsMzIzNTgsMzIzMTUsMzIzMDksMzIzMTMsMzIzMjMsMzIzMTEsMzIzMDYsMzIzMTQsMzIzNTksMzIzNDksMzIzNDIsMzIzNTAsMzIzNDUsMzIzNDYsMzIzNzcsMzIzNjIsMzIzNjEsMzIzODAsMzIzNzksMzIzODcsMzIyMTMs'@; put 'MzIzODEsMzY3ODIsMzIzODMsMzIzOTIsMzIzOTMsMzIzOTYsMzI0MDIsMzI0MDAsMzI0MDMsMzI0MDQsMzI0MDYsMzIzOTgsMzI0MTEsMzI0MTIsMzI1NjgsMzI1NzAsMzI1ODEsMzI1ODgsMzI1ODksMzI1OTAsMzI1OTIsMzI1OTMsMzI1OTcsMzI1OTYsMzI2MDAsMzI2MDcsMzI2MDgsMzI2'@; put 'MTYsMzI2MTcsMzI2MTUsMzI2MzIsMzI2NDIsMzI2NDYsMzI2NDMsMzI2NDgsMzI2NDcsMzI2NTIsMzI2NjAsMzI2NzAsMzI2NjksMzI2NjYsMzI2NzUsMzI2ODcsMzI2OTAsMzI2OTcsMzI2ODYsMzI2OTQsMzI2OTYsMzU2OTcsMzI3MDksMzI3MTAsMzI3MTQsMzI3MjUsMzI3MjQsMzI3Mzcs'@; put 'MzI3NDIsMzI3NDUsMzI3NTUsMzI3NjEsMzkxMzIsMzI3NzQsMzI3NzIsMzI3NzksMzI3ODYsMzI3OTIsMzI3OTMsMzI3OTYsMzI4MDEsMzI4MDgsMzI4MzEsMzI4MjcsMzI4NDIsMzI4MzgsMzI4NTAsMzI4NTYsMzI4NTgsMzI4NjMsMzI4NjYsMzI4NzIsMzI4ODMsMzI4ODIsMzI4ODAsMzI4'@; put 'ODYsMzI4ODksMzI4OTMsMzI4OTUsMzI5MDAsMzI5MDIsMzI5MDEsMzI5MjMsMzI5MTUsMzI5MjIsMzI5NDEsMjA4ODAsMzI5NDAsMzI5ODcsMzI5OTcsMzI5ODUsMzI5ODksMzI5NjQsMzI5ODYsMzI5ODIsMzMwMzMsMzMwMDcsMzMwMDksMzMwNTEsMzMwNjUsMzMwNTksMzMwNzEsMzMwOTks'@; put 'Mzg1MzksMzMwOTQsMzMwODYsMzMxMDcsMzMxMDUsMzMwMjAsMzMxMzcsMzMxMzQsMzMxMjUsMzMxMjYsMzMxNDAsMzMxNTUsMzMxNjAsMzMxNjIsMzMxNTIsMzMxNTQsMzMxODQsMzMxNzMsMzMxODgsMzMxODcsMzMxMTksMzMxNzEsMzMxOTMsMzMyMDAsMzMyMDUsMzMyMTQsMzMyMDgsMzMy'@; put 'MTMsMzMyMTYsMzMyMTgsMzMyMTAsMzMyMjUsMzMyMjksMzMyMzMsMzMyNDEsMzMyNDAsMzMyMjQsMzMyNDIsMzMyNDcsMzMyNDgsMzMyNTUsMzMyNzQsMzMyNzUsMzMyNzgsMzMyODEsMzMyODIsMzMyODUsMzMyODcsMzMyOTAsMzMyOTMsMzMyOTYsMzMzMDIsMzMzMjEsMzMzMjMsMzMzMzYs'@; put 'MzMzMzEsMzMzNDQsMzMzNjksMzMzNjgsMzMzNzMsMzMzNzAsMzMzNzUsMzMzODAsMzMzNzgsMzMzODQsMzMzODYsMzMzODcsMzMzMjYsMzMzOTMsMzMzOTksMzM0MDAsMzM0MDYsMzM0MjEsMzM0MjYsMzM0NTEsMzM0MzksMzM0NjcsMzM0NTIsMzM1MDUsMzM1MDcsMzM1MDMsMzM0OTAsMzM1'@; put 'MjQsMzM1MjMsMzM1MzAsMzM2ODMsMzM1MzksMzM1MzEsMzM1MjksMzM1MDIsMzM1NDIsMzM1MDAsMzM1NDUsMzM0OTcsMzM1ODksMzM1ODgsMzM1NTgsMzM1ODYsMzM1ODUsMzM2MDAsMzM1OTMsMzM2MTYsMzM2MDUsMzM1ODMsMzM1NzksMzM1NTksMzM1NjAsMzM2NjksMzM2OTAsMzM3MDYs'@; put 'MzM2OTUsMzM2OTgsMzM2ODYsMzM1NzEsMzM2NzgsMzM2NzEsMzM2NzQsMzM2NjAsMzM3MTcsMzM2NTEsMzM2NTMsMzM2OTYsMzM2NzMsMzM3MDQsMzM3ODAsMzM4MTEsMzM3NzEsMzM3NDIsMzM3ODksMzM3OTUsMzM3NTIsMzM4MDMsMzM3MjksMzM3ODMsMzM3OTksMzM3NjAsMzM3NzgsMzM4'@; put 'MDUsMzM4MjYsMzM4MjQsMzM3MjUsMzM4NDgsMzQwNTQsMzM3ODcsMzM5MDEsMzM4MzQsMzM4NTIsMzQxMzgsMzM5MjQsMzM5MTEsMzM4OTksMzM5NjUsMzM5MDIsMzM5MjIsMzM4OTcsMzM4NjIsMzM4MzYsMzM5MDMsMzM5MTMsMzM4NDUsMzM5OTQsMzM4OTAsMzM5NzcsMzM5ODMsMzM5NTEs'@; put 'MzQwMDksMzM5OTcsMzM5NzksMzQwMTAsMzRlMywzMzk4NSwzMzk5MCwzNDAwNiwzMzk1MywzNDA4MSwzNDA0NywzNDAzNiwzNDA3MSwzNDA3MiwzNDA5MiwzNDA3OSwzNDA2OSwzNDA2OCwzNDA0NCwzNDExMiwzNDE0NywzNDEzNiwzNDEyMCwzNDExMywzNDMwNiwzNDEyMywzNDEzMywzNDE3'@; put 'NiwzNDIxMiwzNDE4NCwzNDE5MywzNDE4NiwzNDIxNiwzNDE1NywzNDE5NiwzNDIwMywzNDI4MiwzNDE4MywzNDIwNCwzNDE2NywzNDE3NCwzNDE5MiwzNDI0OSwzNDIzNCwzNDI1NSwzNDIzMywzNDI1NiwzNDI2MSwzNDI2OSwzNDI3NywzNDI2OCwzNDI5NywzNDMxNCwzNDMyMywzNDMxNSwz'@; put 'NDMwMiwzNDI5OCwzNDMxMCwzNDMzOCwzNDMzMCwzNDM1MiwzNDM2NywzNDM4MSwyMDA1MywzNDM4OCwzNDM5OSwzNDQwNywzNDQxNywzNDQ1MSwzNDQ2NywzNDQ3MywzNDQ3NCwzNDQ0MywzNDQ0NCwzNDQ4NiwzNDQ3OSwzNDUwMCwzNDUwMiwzNDQ4MCwzNDUwNSwzNDg1MSwzNDQ3NSwzNDUx'@; put 'NiwzNDUyNiwzNDUzNywzNDU0MCwzNDUyNywzNDUyMywzNDU0MywzNDU3OCwzNDU2NiwzNDU2OCwzNDU2MCwzNDU2MywzNDU1NSwzNDU3NywzNDU2OSwzNDU3MywzNDU1MywzNDU3MCwzNDYxMiwzNDYyMywzNDYxNSwzNDYxOSwzNDU5NywzNDYwMSwzNDU4NiwzNDY1NiwzNDY1NSwzNDY4MCwz'@; put 'NDYzNiwzNDYzOCwzNDY3NiwzNDY0NywzNDY2NCwzNDY3MCwzNDY0OSwzNDY0MywzNDY1OSwzNDY2NiwzNDgyMSwzNDcyMiwzNDcxOSwzNDY5MCwzNDczNSwzNDc2MywzNDc0OSwzNDc1MiwzNDc2OCwzODYxNCwzNDczMSwzNDc1NiwzNDczOSwzNDc1OSwzNDc1OCwzNDc0NywzNDc5OSwzNDgw'@; put 'MiwzNDc4NCwzNDgzMSwzNDgyOSwzNDgxNCwzNDgwNiwzNDgwNywzNDgzMCwzNDc3MCwzNDgzMywzNDgzOCwzNDgzNywzNDg1MCwzNDg0OSwzNDg2NSwzNDg3MCwzNDg3MywzNDg1NSwzNDg3NSwzNDg4NCwzNDg4MiwzNDg5OCwzNDkwNSwzNDkxMCwzNDkxNCwzNDkyMywzNDk0NSwzNDk0Miwz'@; put 'NDk3NCwzNDkzMywzNDk0MSwzNDk5NywzNDkzMCwzNDk0NiwzNDk2NywzNDk2MiwzNDk5MCwzNDk2OSwzNDk3OCwzNDk1NywzNDk4MCwzNDk5MiwzNTAwNywzNDk5MywzNTAxMSwzNTAxMiwzNTAyOCwzNTAzMiwzNTAzMywzNTAzNywzNTA2NSwzNTA3NCwzNTA2OCwzNTA2MCwzNTA0OCwzNTA1'@; put 'OCwzNTA3NiwzNTA4NCwzNTA4MiwzNTA5MSwzNTEzOSwzNTEwMiwzNTEwOSwzNTExNCwzNTExNSwzNTEzNywzNTE0MCwzNTEzMSwzNTEyNiwzNTEyOCwzNTE0OCwzNTEwMSwzNTE2OCwzNTE2NiwzNTE3NCwzNTE3MiwzNTE4MSwzNTE3OCwzNTE4MywzNTE4OCwzNTE5MSwzNTE5OCwzNTIwMywz'@; put 'NTIwOCwzNTIxMCwzNTIxOSwzNTIyNCwzNTIzMywzNTI0MSwzNTIzOCwzNTI0NCwzNTI0NywzNTI1MCwzNTI1OCwzNTI2MSwzNTI2MywzNTI2NCwzNTI5MCwzNTI5MiwzNTI5MywzNTMwMywzNTMxNiwzNTMyMCwzNTMzMSwzNTM1MCwzNTM0NCwzNTM0MCwzNTM1NSwzNTM1NywzNTM2NSwzNTM4'@; put 'MiwzNTM5MywzNTQxOSwzNTQxMCwzNTM5OCwzNTQwMCwzNTQ1MiwzNTQzNywzNTQzNiwzNTQyNiwzNTQ2MSwzNTQ1OCwzNTQ2MCwzNTQ5NiwzNTQ4OSwzNTQ3MywzNTQ5MywzNTQ5NCwzNTQ4MiwzNTQ5MSwzNTUyNCwzNTUzMywzNTUyMiwzNTU0NiwzNTU2MywzNTU3MSwzNTU1OSwzNTU1Niwz'@; put 'NTU2OSwzNTYwNCwzNTU1MiwzNTU1NCwzNTU3NSwzNTU1MCwzNTU0NywzNTU5NiwzNTU5MSwzNTYxMCwzNTU1MywzNTYwNiwzNTYwMCwzNTYwNywzNTYxNiwzNTYzNSwzODgyNywzNTYyMiwzNTYyNywzNTY0NiwzNTYyNCwzNTY0OSwzNTY2MCwzNTY2MywzNTY2MiwzNTY1NywzNTY3MCwzNTY3'@; put 'NSwzNTY3NCwzNTY5MSwzNTY3OSwzNTY5MiwzNTY5NSwzNTcwMCwzNTcwOSwzNTcxMiwzNTcyNCwzNTcyNiwzNTczMCwzNTczMSwzNTczNCwzNTczNywzNTczOCwzNTg5OCwzNTkwNSwzNTkwMywzNTkxMiwzNTkxNiwzNTkxOCwzNTkyMCwzNTkyNSwzNTkzOCwzNTk0OCwzNTk2MCwzNTk2Miwz'@; put 'NTk3MCwzNTk3NywzNTk3MywzNTk3OCwzNTk4MSwzNTk4MiwzNTk4OCwzNTk2NCwzNTk5MiwyNTExNywzNjAxMywzNjAxMCwzNjAyOSwzNjAxOCwzNjAxOSwzNjAxNCwzNjAyMiwzNjA0MCwzNjAzMywzNjA2OCwzNjA2NywzNjA1OCwzNjA5MywzNjA5MCwzNjA5MSwzNjEwMCwzNjEwMSwzNjEw'@; put 'NiwzNjEwMywzNjExMSwzNjEwOSwzNjExMiw0MDc4MiwzNjExNSwzNjA0NSwzNjExNiwzNjExOCwzNjE5OSwzNjIwNSwzNjIwOSwzNjIxMSwzNjIyNSwzNjI0OSwzNjI5MCwzNjI4NiwzNjI4MiwzNjMwMywzNjMxNCwzNjMxMCwzNjMwMCwzNjMxNSwzNjI5OSwzNjMzMCwzNjMzMSwzNjMxOSwz'@; put 'NjMyMywzNjM0OCwzNjM2MCwzNjM2MSwzNjM1MSwzNjM4MSwzNjM4MiwzNjM2OCwzNjM4MywzNjQxOCwzNjQwNSwzNjQwMCwzNjQwNCwzNjQyNiwzNjQyMywzNjQyNSwzNjQyOCwzNjQzMiwzNjQyNCwzNjQ0MSwzNjQ1MiwzNjQ0OCwzNjM5NCwzNjQ1MSwzNjQzNywzNjQ3MCwzNjQ2NiwzNjQ3'@; put 'NiwzNjQ4MSwzNjQ4NywzNjQ4NSwzNjQ4NCwzNjQ5MSwzNjQ5MCwzNjQ5OSwzNjQ5NywzNjUwMCwzNjUwNSwzNjUyMiwzNjUxMywzNjUyNCwzNjUyOCwzNjU1MCwzNjUyOSwzNjU0MiwzNjU0OSwzNjU1MiwzNjU1NSwzNjU3MSwzNjU3OSwzNjYwNCwzNjYwMywzNjU4NywzNjYwNiwzNjYxOCwz'@; put 'NjYxMywzNjYyOSwzNjYyNiwzNjYzMywzNjYyNywzNjYzNiwzNjYzOSwzNjYzNSwzNjYyMCwzNjY0NiwzNjY1OSwzNjY2NywzNjY2NSwzNjY3NywzNjY3NCwzNjY3MCwzNjY4NCwzNjY4MSwzNjY3OCwzNjY4NiwzNjY5NSwzNjcwMCwzNjcwNiwzNjcwNywzNjcwOCwzNjc2NCwzNjc2NywzNjc3'@; put 'MSwzNjc4MSwzNjc4MywzNjc5MSwzNjgyNiwzNjgzNywzNjgzNCwzNjg0MiwzNjg0NywzNjk5OSwzNjg1MiwzNjg2OSwzNjg1NywzNjg1OCwzNjg4MSwzNjg4NSwzNjg5NywzNjg3NywzNjg5NCwzNjg4NiwzNjg3NSwzNjkwMywzNjkxOCwzNjkxNywzNjkyMSwzNjg1NiwzNjk0MywzNjk0NCwz'@; put 'Njk0NSwzNjk0NiwzNjg3OCwzNjkzNywzNjkyNiwzNjk1MCwzNjk1MiwzNjk1OCwzNjk2OCwzNjk3NSwzNjk4MiwzODU2OCwzNjk3OCwzNjk5NCwzNjk4OSwzNjk5MywzNjk5MiwzNzAwMiwzNzAwMSwzNzAwNywzNzAzMiwzNzAzOSwzNzA0MSwzNzA0NSwzNzA5MCwzNzA5MiwyNTE2MCwzNzA4'@; put 'MywzNzEyMiwzNzEzOCwzNzE0NSwzNzE3MCwzNzE2OCwzNzE5NCwzNzIwNiwzNzIwOCwzNzIxOSwzNzIyMSwzNzIyNSwzNzIzNSwzNzIzNCwzNzI1OSwzNzI1NywzNzI1MCwzNzI4MiwzNzI5MSwzNzI5NSwzNzI5MCwzNzMwMSwzNzMwMCwzNzMwNiwzNzMxMiwzNzMxMywzNzMyMSwzNzMyMywz'@; put 'NzMyOCwzNzMzNCwzNzM0MywzNzM0NSwzNzMzOSwzNzM3MiwzNzM2NSwzNzM2NiwzNzQwNiwzNzM3NSwzNzM5NiwzNzQyMCwzNzM5NywzNzM5MywzNzQ3MCwzNzQ2MywzNzQ0NSwzNzQ0OSwzNzQ3NiwzNzQ0OCwzNzUyNSwzNzQzOSwzNzQ1MSwzNzQ1NiwzNzUzMiwzNzUyNiwzNzUyMywzNzUz'@; put 'MSwzNzQ2NiwzNzU4MywzNzU2MSwzNzU1OSwzNzYwOSwzNzY0NywzNzYyNiwzNzcwMCwzNzY3OCwzNzY1NywzNzY2NiwzNzY1OCwzNzY2NywzNzY5MCwzNzY4NSwzNzY5MSwzNzcyNCwzNzcyOCwzNzc1NiwzNzc0MiwzNzcxOCwzNzgwOCwzNzgwNCwzNzgwNSwzNzc4MCwzNzgxNywzNzg0Niwz'@; put 'Nzg0NywzNzg2NCwzNzg2MSwzNzg0OCwzNzgyNywzNzg1MywzNzg0MCwzNzgzMiwzNzg2MCwzNzkxNCwzNzkwOCwzNzkwNywzNzg5MSwzNzg5NSwzNzkwNCwzNzk0MiwzNzkzMSwzNzk0MSwzNzkyMSwzNzk0NiwzNzk1MywzNzk3MCwzNzk1NiwzNzk3OSwzNzk4NCwzNzk4NiwzNzk4MiwzNzk5'@; put 'NCwzNzQxNywzOGUzLDM4MDA1LDM4MDA3LDM4MDEzLDM3OTc4LDM4MDEyLDM4MDE0LDM4MDE3LDM4MDE1LDM4Mjc0LDM4Mjc5LDM4MjgyLDM4MjkyLDM4Mjk0LDM4Mjk2LDM4Mjk3LDM4MzA0LDM4MzEyLDM4MzExLDM4MzE3LDM4MzMyLDM4MzMxLDM4MzI5LDM4MzM0LDM4MzQ2LDI4NjYyLDM4'@; put 'MzM5LDM4MzQ5LDM4MzQ4LDM4MzU3LDM4MzU2LDM4MzU4LDM4MzY0LDM4MzY5LDM4MzczLDM4MzcwLDM4NDMzLDM4NDQwLDM4NDQ2LDM4NDQ3LDM4NDY2LDM4NDc2LDM4NDc5LDM4NDc1LDM4NTE5LDM4NDkyLDM4NDk0LDM4NDkzLDM4NDk1LDM4NTAyLDM4NTE0LDM4NTA4LDM4NTQxLDM4NTUy'@; put 'LDM4NTQ5LDM4NTUxLDM4NTcwLDM4NTY3LDM4NTc3LDM4NTc4LDM4NTc2LDM4NTgwLDM4NTgyLDM4NTg0LDM4NTg1LDM4NjA2LDM4NjAzLDM4NjAxLDM4NjA1LDM1MTQ5LDM4NjIwLDM4NjY5LDM4NjEzLDM4NjQ5LDM4NjYwLDM4NjYyLDM4NjY0LDM4Njc1LDM4NjcwLDM4NjczLDM4NjcxLDM4'@; put 'Njc4LDM4NjgxLDM4NjkyLDM4Njk4LDM4NzA0LDM4NzEzLDM4NzE3LDM4NzE4LDM4NzI0LDM4NzI2LDM4NzI4LDM4NzIyLDM4NzI5LDM4NzQ4LDM4NzUyLDM4NzU2LDM4NzU4LDM4NzYwLDIxMjAyLDM4NzYzLDM4NzY5LDM4Nzc3LDM4Nzg5LDM4NzgwLDM4Nzg1LDM4Nzc4LDM4NzkwLDM4Nzk1'@; put 'LDM4Nzk5LDM4ODAwLDM4ODEyLDM4ODI0LDM4ODIyLDM4ODE5LDM4ODM1LDM4ODM2LDM4ODUxLDM4ODU0LDM4ODU2LDM4ODU5LDM4ODc2LDM4ODkzLDQwNzgzLDM4ODk4LDMxNDU1LDM4OTAyLDM4OTAxLDM4OTI3LDM4OTI0LDM4OTY4LDM4OTQ4LDM4OTQ1LDM4OTY3LDM4OTczLDM4OTgyLDM4'@; put 'OTkxLDM4OTg3LDM5MDE5LDM5MDIzLDM5MDI0LDM5MDI1LDM5MDI4LDM5MDI3LDM5MDgyLDM5MDg3LDM5MDg5LDM5MDk0LDM5MTA4LDM5MTA3LDM5MTEwLDM5MTQ1LDM5MTQ3LDM5MTcxLDM5MTc3LDM5MTg2LDM5MTg4LDM5MTkyLDM5MjAxLDM5MTk3LDM5MTk4LDM5MjA0LDM5MjAwLDM5MjEy'@; put 'LDM5MjE0LDM5MjI5LDM5MjMwLDM5MjM0LDM5MjQxLDM5MjM3LDM5MjQ4LDM5MjQzLDM5MjQ5LDM5MjUwLDM5MjQ0LDM5MjUzLDM5MzE5LDM5MzIwLDM5MzMzLDM5MzQxLDM5MzQyLDM5MzU2LDM5MzkxLDM5Mzg3LDM5Mzg5LDM5Mzg0LDM5Mzc3LDM5NDA1LDM5NDA2LDM5NDA5LDM5NDEwLDM5'@; put 'NDE5LDM5NDE2LDM5NDI1LDM5NDM5LDM5NDI5LDM5Mzk0LDM5NDQ5LDM5NDY3LDM5NDc5LDM5NDkzLDM5NDkwLDM5NDg4LDM5NDkxLDM5NDg2LDM5NTA5LDM5NTAxLDM5NTE1LDM5NTExLDM5NTE5LDM5NTIyLDM5NTI1LDM5NTI0LDM5NTI5LDM5NTMxLDM5NTMwLDM5NTk3LDM5NjAwLDM5NjEy'@; put 'LDM5NjE2LDM5NjMxLDM5NjMzLDM5NjM1LDM5NjM2LDM5NjQ2LDM5NjQ3LDM5NjUwLDM5NjUxLDM5NjU0LDM5NjYzLDM5NjU5LDM5NjYyLDM5NjY4LDM5NjY1LDM5NjcxLDM5Njc1LDM5Njg2LDM5NzA0LDM5NzA2LDM5NzExLDM5NzE0LDM5NzE1LDM5NzE3LDM5NzE5LDM5NzIwLDM5NzIxLDM5'@; put 'NzIyLDM5NzI2LDM5NzI3LDM5NzMwLDM5NzQ4LDM5NzQ3LDM5NzU5LDM5NzU3LDM5NzU4LDM5NzYxLDM5NzY4LDM5Nzk2LDM5ODI3LDM5ODExLDM5ODI1LDM5ODMwLDM5ODMxLDM5ODM5LDM5ODQwLDM5ODQ4LDM5ODYwLDM5ODcyLDM5ODgyLDM5ODY1LDM5ODc4LDM5ODg3LDM5ODg5LDM5ODkw'@; put 'LDM5OTA3LDM5OTA2LDM5OTA4LDM5ODkyLDM5OTA1LDM5OTk0LDM5OTIyLDM5OTIxLDM5OTIwLDM5OTU3LDM5OTU2LDM5OTQ1LDM5OTU1LDM5OTQ4LDM5OTQyLDM5OTQ0LDM5OTU0LDM5OTQ2LDM5OTQwLDM5OTgyLDM5OTYzLDM5OTczLDM5OTcyLDM5OTY5LDM5OTg0LDQwMDA3LDM5OTg2LDQw'@; put 'MDA2LDM5OTk4LDQwMDI2LDQwMDMyLDQwMDM5LDQwMDU0LDQwMDU2LDQwMTY3LDQwMTcyLDQwMTc2LDQwMjAxLDQwMjAwLDQwMTcxLDQwMTk1LDQwMTk4LDQwMjM0LDQwMjMwLDQwMzY3LDQwMjI3LDQwMjIzLDQwMjYwLDQwMjEzLDQwMjEwLDQwMjU3LDQwMjU1LDQwMjU0LDQwMjYyLDQwMjY0'@; put 'LDQwMjg1LDQwMjg2LDQwMjkyLDQwMjczLDQwMjcyLDQwMjgxLDQwMzA2LDQwMzI5LDQwMzI3LDQwMzYzLDQwMzAzLDQwMzE0LDQwMzQ2LDQwMzU2LDQwMzYxLDQwMzcwLDQwMzg4LDQwMzg1LDQwMzc5LDQwMzc2LDQwMzc4LDQwMzkwLDQwMzk5LDQwMzg2LDQwNDA5LDQwNDAzLDQwNDQwLDQw'@; put 'NDIyLDQwNDI5LDQwNDMxLDQwNDQ1LDQwNDc0LDQwNDc1LDQwNDc4LDQwNTY1LDQwNTY5LDQwNTczLDQwNTc3LDQwNTg0LDQwNTg3LDQwNTg4LDQwNTk0LDQwNTk3LDQwNTkzLDQwNjA1LDQwNjEzLDQwNjE3LDQwNjMyLDQwNjE4LDQwNjIxLDM4NzUzLDQwNjUyLDQwNjU0LDQwNjU1LDQwNjU2'@; put 'LDQwNjYwLDQwNjY4LDQwNjcwLDQwNjY5LDQwNjcyLDQwNjc3LDQwNjgwLDQwNjg3LDQwNjkyLDQwNjk0LDQwNjk1LDQwNjk3LDQwNjk5LDQwNzAwLDQwNzAxLDQwNzExLDQwNzEyLDMwMzkxLDQwNzI1LDQwNzM3LDQwNzQ4LDQwNzY2LDQwNzc4LDQwNzg2LDQwNzg4LDQwODAzLDQwNzk5LDQw'@; put 'ODAwLDQwODAxLDQwODA2LDQwODA3LDQwODEyLDQwODEwLDQwODIzLDQwODE4LDQwODIyLDQwODUzLDQwODYwLDQwODY0LDIyNTc1LDI3MDc5LDM2OTUzLDI5Nzk2LDIwOTU2LDI5MDgxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzMjM5NCwzNTEwMCwzNzcwNCwzNzUxMiwzNDAxMiwyMDQyNSwyODg1OSwyNjE2MSwy'@; put 'NjgyNCwzNzYyNSwyNjM2MywyNDM4OSwyMDAwOCwyMDE5MywyMDIyMCwyMDIyNCwyMDIyNywyMDI4MSwyMDMxMCwyMDM3MCwyMDM2MiwyMDM3OCwyMDM3MiwyMDQyOSwyMDU0NCwyMDUxNCwyMDQ3OSwyMDUxMCwyMDU1MCwyMDU5MiwyMDU0NiwyMDYyOCwyMDcyNCwyMDY5NiwyMDgxMCwyMDgz'@; put 'NiwyMDg5MywyMDkyNiwyMDk3MiwyMTAxMywyMTE0OCwyMTE1OCwyMTE4NCwyMTIxMSwyMTI0OCwyMTI1NSwyMTI4NCwyMTM2MiwyMTM5NSwyMTQyNiwyMTQ2OSw2NDAxNCwyMTY2MCwyMTY0MiwyMTY3MywyMTc1OSwyMTg5NCwyMjM2MSwyMjM3MywyMjQ0NCwyMjQ3MiwyMjQ3MSw2NDAxNSw2'@; put 'NDAxNiwyMjY4NiwyMjcwNiwyMjc5NSwyMjg2NywyMjg3NSwyMjg3NywyMjg4MywyMjk0OCwyMjk3MCwyMzM4MiwyMzQ4OCwyOTk5OSwyMzUxMiwyMzUzMiwyMzU4MiwyMzcxOCwyMzczOCwyMzc5NywyMzg0NywyMzg5MSw2NDAxNywyMzg3NCwyMzkxNywyMzk5MiwyMzk5MywyNDAxNiwyNDM1'@; put 'MywyNDM3MiwyNDQyMywyNDUwMywyNDU0MiwyNDY2OSwyNDcwOSwyNDcxNCwyNDc5OCwyNDc4OSwyNDg2NCwyNDgxOCwyNDg0OSwyNDg4NywyNDg4MCwyNDk4NCwyNTEwNywyNTI1NCwyNTU4OSwyNTY5NiwyNTc1NywyNTgwNiwyNTkzNCwyNjExMiwyNjEzMywyNjE3MSwyNjEyMSwyNjE1OCwy'@; put 'NjE0MiwyNjE0OCwyNjIxMywyNjE5OSwyNjIwMSw2NDAxOCwyNjIyNywyNjI2NSwyNjI3MiwyNjI5MCwyNjMwMywyNjM2MiwyNjM4Miw2Mzc4NSwyNjQ3MCwyNjU1NSwyNjcwNiwyNjU2MCwyNjYyNSwyNjY5MiwyNjgzMSw2NDAxOSwyNjk4NCw2NDAyMCwyNzAzMiwyNzEwNiwyNzE4NCwyNzI0'@; put 'MywyNzIwNiwyNzI1MSwyNzI2MiwyNzM2MiwyNzM2NCwyNzYwNiwyNzcxMSwyNzc0MCwyNzc4MiwyNzc1OSwyNzg2NiwyNzkwOCwyODAzOSwyODAxNSwyODA1NCwyODA3NiwyODExMSwyODE1MiwyODE0NiwyODE1NiwyODIxNywyODI1MiwyODE5OSwyODIyMCwyODM1MSwyODU1MiwyODU5Nywy'@; put 'ODY2MSwyODY3NywyODY3OSwyODcxMiwyODgwNSwyODg0MywyODk0MywyODkzMiwyOTAyMCwyODk5OCwyODk5OSw2NDAyMSwyOTEyMSwyOTE4MiwyOTM2MSwyOTM3NCwyOTQ3Niw2NDAyMiwyOTU1OSwyOTYyOSwyOTY0MSwyOTY1NCwyOTY2NywyOTY1MCwyOTcwMywyOTY4NSwyOTczNCwyOTcz'@; put 'OCwyOTczNywyOTc0MiwyOTc5NCwyOTgzMywyOTg1NSwyOTk1MywzMDA2MywzMDMzOCwzMDM2NCwzMDM2NiwzMDM2MywzMDM3NCw2NDAyMywzMDUzNCwyMTE2NywzMDc1MywzMDc5OCwzMDgyMCwzMDg0MiwzMTAyNCw2NDAyNCw2NDAyNSw2NDAyNiwzMTEyNCw2NDAyNywzMTEzMSwzMTQ0MSwz'@; put 'MTQ2Myw2NDAyOCwzMTQ2NywzMTY0Niw2NDAyOSwzMjA3MiwzMjA5MiwzMjE4MywzMjE2MCwzMjIxNCwzMjMzOCwzMjU4MywzMjY3Myw2NDAzMCwzMzUzNywzMzYzNCwzMzY2MywzMzczNSwzMzc4MiwzMzg2NCwzMzk3MiwzNDEzMSwzNDEzNywzNDE1NSw2NDAzMSwzNDIyNCw2NDAzMiw2NDAz'@; put 'MywzNDgyMywzNTA2MSwzNTM0NiwzNTM4MywzNTQ0OSwzNTQ5NSwzNTUxOCwzNTU1MSw2NDAzNCwzNTU3NCwzNTY2NywzNTcxMSwzNjA4MCwzNjA4NCwzNjExNCwzNjIxNCw2NDAzNSwzNjU1OSw2NDAzNiw2NDAzNywzNjk2NywzNzA4Niw2NDAzOCwzNzE0MSwzNzE1OSwzNzMzOCwzNzMzNSwz'@; put 'NzM0MiwzNzM1NywzNzM1OCwzNzM0OCwzNzM0OSwzNzM4MiwzNzM5MiwzNzM4NiwzNzQzNCwzNzQ0MCwzNzQzNiwzNzQ1NCwzNzQ2NSwzNzQ1NywzNzQzMywzNzQ3OSwzNzU0MywzNzQ5NSwzNzQ5NiwzNzYwNywzNzU5MSwzNzU5MywzNzU4NCw2NDAzOSwzNzU4OSwzNzYwMCwzNzU4NywzNzY2'@; put 'OSwzNzY2NSwzNzYyNyw2NDA0MCwzNzY2MiwzNzYzMSwzNzY2MSwzNzYzNCwzNzc0NCwzNzcxOSwzNzc5NiwzNzgzMCwzNzg1NCwzNzg4MCwzNzkzNywzNzk1NywzNzk2MCwzODI5MCw2Mzk2NCw2NDA0MSwzODU1NywzODU3NSwzODcwNywzODcxNSwzODcyMywzODczMywzODczNSwzODczNywz'@; put 'ODc0MSwzODk5OSwzOTAxMyw2NDA0Miw2NDA0MywzOTIwNyw2NDA0NCwzOTMyNiwzOTUwMiwzOTY0MSwzOTY0NCwzOTc5NywzOTc5NCwzOTgyMywzOTg1NywzOTg2NywzOTkzNiw0MDMwNCw0MDI5OSw2NDA0NSw0MDQ3Myw0MDY1NyxudWxsLG51bGwsODU2MCw4NTYxLDg1NjIsODU2Myw4NTY0'@; put 'LDg1NjUsODU2Niw4NTY3LDg1NjgsODU2OSw2NTUwNiw2NTUwOCw2NTI4Nyw2NTI4MixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDg1NjAs'@; put 'ODU2MSw4NTYyLDg1NjMsODU2NCw4NTY1LDg1NjYsODU2Nyw4NTY4LDg1NjksODU0NCw4NTQ1LDg1NDYsODU0Nyw4NTQ4LDg1NDksODU1MCw4NTUxLDg1NTIsODU1Myw2NTUwNiw2NTUwOCw2NTI4Nyw2NTI4MiwxMjg0OSw4NDcwLDg0ODEsODc1NywzMjM5NCwzNTEwMCwzNzcwNCwzNzUxMiwz'@; put 'NDAxMiwyMDQyNSwyODg1OSwyNjE2MSwyNjgyNCwzNzYyNSwyNjM2MywyNDM4OSwyMDAwOCwyMDE5MywyMDIyMCwyMDIyNCwyMDIyNywyMDI4MSwyMDMxMCwyMDM3MCwyMDM2MiwyMDM3OCwyMDM3MiwyMDQyOSwyMDU0NCwyMDUxNCwyMDQ3OSwyMDUxMCwyMDU1MCwyMDU5MiwyMDU0NiwyMDYy'@; put 'OCwyMDcyNCwyMDY5NiwyMDgxMCwyMDgzNiwyMDg5MywyMDkyNiwyMDk3MiwyMTAxMywyMTE0OCwyMTE1OCwyMTE4NCwyMTIxMSwyMTI0OCwyMTI1NSwyMTI4NCwyMTM2MiwyMTM5NSwyMTQyNiwyMTQ2OSw2NDAxNCwyMTY2MCwyMTY0MiwyMTY3MywyMTc1OSwyMTg5NCwyMjM2MSwyMjM3Mywy'@; put 'MjQ0NCwyMjQ3MiwyMjQ3MSw2NDAxNSw2NDAxNiwyMjY4NiwyMjcwNiwyMjc5NSwyMjg2NywyMjg3NSwyMjg3NywyMjg4MywyMjk0OCwyMjk3MCwyMzM4MiwyMzQ4OCwyOTk5OSwyMzUxMiwyMzUzMiwyMzU4MiwyMzcxOCwyMzczOCwyMzc5NywyMzg0NywyMzg5MSw2NDAxNywyMzg3NCwyMzkx'@; put 'NywyMzk5MiwyMzk5MywyNDAxNiwyNDM1MywyNDM3MiwyNDQyMywyNDUwMywyNDU0MiwyNDY2OSwyNDcwOSwyNDcxNCwyNDc5OCwyNDc4OSwyNDg2NCwyNDgxOCwyNDg0OSwyNDg4NywyNDg4MCwyNDk4NCwyNTEwNywyNTI1NCwyNTU4OSwyNTY5NiwyNTc1NywyNTgwNiwyNTkzNCwyNjExMiwy'@; put 'NjEzMywyNjE3MSwyNjEyMSwyNjE1OCwyNjE0MiwyNjE0OCwyNjIxMywyNjE5OSwyNjIwMSw2NDAxOCwyNjIyNywyNjI2NSwyNjI3MiwyNjI5MCwyNjMwMywyNjM2MiwyNjM4Miw2Mzc4NSwyNjQ3MCwyNjU1NSwyNjcwNiwyNjU2MCwyNjYyNSwyNjY5MiwyNjgzMSw2NDAxOSwyNjk4NCw2NDAy'@; put 'MCwyNzAzMiwyNzEwNiwyNzE4NCwyNzI0MywyNzIwNiwyNzI1MSwyNzI2MiwyNzM2MiwyNzM2NCwyNzYwNiwyNzcxMSwyNzc0MCwyNzc4MiwyNzc1OSwyNzg2NiwyNzkwOCwyODAzOSwyODAxNSwyODA1NCwyODA3NiwyODExMSwyODE1MiwyODE0NiwyODE1NiwyODIxNywyODI1MiwyODE5OSwy'@; put 'ODIyMCwyODM1MSwyODU1MiwyODU5NywyODY2MSwyODY3NywyODY3OSwyODcxMiwyODgwNSwyODg0MywyODk0MywyODkzMiwyOTAyMCwyODk5OCwyODk5OSw2NDAyMSwyOTEyMSwyOTE4MiwyOTM2MSwyOTM3NCwyOTQ3Niw2NDAyMiwyOTU1OSwyOTYyOSwyOTY0MSwyOTY1NCwyOTY2NywyOTY1'@; put 'MCwyOTcwMywyOTY4NSwyOTczNCwyOTczOCwyOTczNywyOTc0MiwyOTc5NCwyOTgzMywyOTg1NSwyOTk1MywzMDA2MywzMDMzOCwzMDM2NCwzMDM2NiwzMDM2MywzMDM3NCw2NDAyMywzMDUzNCwyMTE2NywzMDc1MywzMDc5OCwzMDgyMCwzMDg0MiwzMTAyNCw2NDAyNCw2NDAyNSw2NDAyNiwz'@; put 'MTEyNCw2NDAyNywzMTEzMSwzMTQ0MSwzMTQ2Myw2NDAyOCwzMTQ2NywzMTY0Niw2NDAyOSwzMjA3MiwzMjA5MiwzMjE4MywzMjE2MCwzMjIxNCwzMjMzOCwzMjU4MywzMjY3Myw2NDAzMCwzMzUzNywzMzYzNCwzMzY2MywzMzczNSwzMzc4MiwzMzg2NCwzMzk3MiwzNDEzMSwzNDEzNywzNDE1'@; put 'NSw2NDAzMSwzNDIyNCw2NDAzMiw2NDAzMywzNDgyMywzNTA2MSwzNTM0NiwzNTM4MywzNTQ0OSwzNTQ5NSwzNTUxOCwzNTU1MSw2NDAzNCwzNTU3NCwzNTY2NywzNTcxMSwzNjA4MCwzNjA4NCwzNjExNCwzNjIxNCw2NDAzNSwzNjU1OSw2NDAzNiw2NDAzNywzNjk2NywzNzA4Niw2NDAzOCwz'@; put 'NzE0MSwzNzE1OSwzNzMzOCwzNzMzNSwzNzM0MiwzNzM1NywzNzM1OCwzNzM0OCwzNzM0OSwzNzM4MiwzNzM5MiwzNzM4NiwzNzQzNCwzNzQ0MCwzNzQzNiwzNzQ1NCwzNzQ2NSwzNzQ1NywzNzQzMywzNzQ3OSwzNzU0MywzNzQ5NSwzNzQ5NiwzNzYwNywzNzU5MSwzNzU5MywzNzU4NCw2NDAz'@; put 'OSwzNzU4OSwzNzYwMCwzNzU4NywzNzY2OSwzNzY2NSwzNzYyNyw2NDA0MCwzNzY2MiwzNzYzMSwzNzY2MSwzNzYzNCwzNzc0NCwzNzcxOSwzNzc5NiwzNzgzMCwzNzg1NCwzNzg4MCwzNzkzNywzNzk1NywzNzk2MCwzODI5MCw2Mzk2NCw2NDA0MSwzODU1NywzODU3NSwzODcwNywzODcxNSwz'@; put 'ODcyMywzODczMywzODczNSwzODczNywzODc0MSwzODk5OSwzOTAxMyw2NDA0Miw2NDA0MywzOTIwNyw2NDA0NCwzOTMyNiwzOTUwMiwzOTY0MSwzOTY0NCwzOTc5NywzOTc5NCwzOTgyMywzOTg1NywzOTg2NywzOTkzNiw0MDMwNCw0MDI5OSw2NDA0NSw0MDQ3Myw0MDY1NyxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGxdLGppczAyMTI6W251bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDcyOCw3MTEsMTg0LDcyOSw3MzMsMTc1LDczMSw3MzAsNjUzNzQsOTAwLDkwMSxudWxsLG51bGwsbnVsbCxudWxs'@; put 'LG51bGwsbnVsbCxudWxsLG51bGwsMTYxLDE2NiwxOTEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDE4NiwxNzAsMTY5LDE3NCw4NDgyLDE2NCw4NDcwLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw5MDIsOTA0LDkwNSw5MDYsOTM4LG51bGwsOTA4LG51bGwsOTEwLDkzOSxudWxsLDkxMSxudWxsLG51bGwsbnVsbCxudWxsLDk0MCw5NDEsOTQyLDk0Myw5NzAsOTEyLDk3'@; put 'Miw5NjIsOTczLDk3MSw5NDQsOTc0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxMDI2LDEwMjcsMTAyOCwxMDI5LDEwMzAsMTAzMSwxMDMyLDEwMzMsMTAzNCwxMDM1LDEwMzYsMTAzOCwxMDM5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxMTA2LDExMDcsMTEwOCwxMTA5LDExMTAsMTExMSwxMTEyLDExMTMsMTExNCwxMTE1LDExMTYsMTEx'@; put 'OCwxMTE5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs'@; put 'bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMTk4LDI3MixudWxsLDI5NCxu'@; put 'dWxsLDMwNixudWxsLDMyMSwzMTksbnVsbCwzMzAsMjE2LDMzOCxudWxsLDM1OCwyMjIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyMzAsMjczLDI0MCwyOTUsMzA1LDMwNywzMTIsMzIyLDMy'@; put 'MCwzMjksMzMxLDI0OCwzMzksMjIzLDM1OSwyNTQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws'@; put 'bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxOTMsMTkyLDE5NiwxOTQsMjU4LDQ2MSwyNTYsMjYwLDE5NywxOTUsMjYyLDI2NCwyNjgsMTk5LDI2NiwyNzAsMjAxLDIw'@; put 'MCwyMDMsMjAyLDI4MiwyNzgsMjc0LDI4MCxudWxsLDI4NCwyODYsMjkwLDI4OCwyOTIsMjA1LDIwNCwyMDcsMjA2LDQ2MywzMDQsMjk4LDMwMiwyOTYsMzA4LDMxMCwzMTMsMzE3LDMxNSwzMjMsMzI3LDMyNSwyMDksMjExLDIxMCwyMTQsMjEyLDQ2NSwzMzYsMzMyLDIxMywzNDAsMzQ0LDM0'@; put 'MiwzNDYsMzQ4LDM1MiwzNTAsMzU2LDM1NCwyMTgsMjE3LDIyMCwyMTksMzY0LDQ2NywzNjgsMzYyLDM3MCwzNjYsMzYwLDQ3MSw0NzUsNDczLDQ2OSwzNzIsMjIxLDM3NiwzNzQsMzc3LDM4MSwzNzksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyMjUsMjI0LDIyOCwyMjYs'@; put 'MjU5LDQ2MiwyNTcsMjYxLDIyOSwyMjcsMjYzLDI2NSwyNjksMjMxLDI2NywyNzEsMjMzLDIzMiwyMzUsMjM0LDI4MywyNzksMjc1LDI4MSw1MDEsMjg1LDI4NyxudWxsLDI4OSwyOTMsMjM3LDIzNiwyMzksMjM4LDQ2NCxudWxsLDI5OSwzMDMsMjk3LDMwOSwzMTEsMzE0LDMxOCwzMTYsMzI0'@; put 'LDMyOCwzMjYsMjQxLDI0MywyNDIsMjQ2LDI0NCw0NjYsMzM3LDMzMywyNDUsMzQxLDM0NSwzNDMsMzQ3LDM0OSwzNTMsMzUxLDM1NywzNTUsMjUwLDI0OSwyNTIsMjUxLDM2NSw0NjgsMzY5LDM2MywzNzEsMzY3LDM2MSw0NzIsNDc2LDQ3NCw0NzAsMzczLDI1MywyNTUsMzc1LDM3OCwzODIs'@; put 'MzgwLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxOTk3MCwxOTk3MiwxOTk3MywxOTk4MCwxOTk4NiwxOTk5OSwyMDAwMywyMDAwNCwyMDAwOCwyMDAxMSwy'@; put 'MDAxNCwyMDAxNSwyMDAxNiwyMDAyMSwyMDAzMiwyMDAzMywyMDAzNiwyMDAzOSwyMDA0OSwyMDA1OCwyMDA2MCwyMDA2NywyMDA3MiwyMDA3MywyMDA4NCwyMDA4NSwyMDA4OSwyMDA5NSwyMDEwOSwyMDExOCwyMDExOSwyMDEyNSwyMDE0MywyMDE1MywyMDE2MywyMDE3NiwyMDE4NiwyMDE4'@; put 'NywyMDE5MiwyMDE5MywyMDE5NCwyMDIwMCwyMDIwNywyMDIwOSwyMDIxMSwyMDIxMywyMDIyMSwyMDIyMiwyMDIyMywyMDIyNCwyMDIyNiwyMDIyNywyMDIzMiwyMDIzNSwyMDIzNiwyMDI0MiwyMDI0NSwyMDI0NiwyMDI0NywyMDI0OSwyMDI3MCwyMDI3MywyMDMyMCwyMDI3NSwyMDI3Nywy'@; put 'MDI3OSwyMDI4MSwyMDI4MywyMDI4NiwyMDI4OCwyMDI5MCwyMDI5NiwyMDI5NywyMDI5OSwyMDMwMCwyMDMwNiwyMDMwOCwyMDMxMCwyMDMxMiwyMDMxOSwyMDMyMywyMDMzMCwyMDMzMiwyMDMzNCwyMDMzNywyMDM0MywyMDM0NCwyMDM0NSwyMDM0NiwyMDM0OSwyMDM1MCwyMDM1MywyMDM1'@; put 'NCwyMDM1NiwyMDM1NywyMDM2MSwyMDM2MiwyMDM2NCwyMDM2NiwyMDM2OCwyMDM3MCwyMDM3MSwyMDM3MiwyMDM3NSwyMDM3NywyMDM3OCwyMDM4MiwyMDM4MywyMDQwMiwyMDQwNywyMDQwOSwyMDQxMSwyMDQxMiwyMDQxMywyMDQxNCwyMDQxNiwyMDQxNywyMDQyMSwyMDQyMiwyMDQyNCwy'@; put 'MDQyNSwyMDQyNywyMDQyOCwyMDQyOSwyMDQzMSwyMDQzNCwyMDQ0NCwyMDQ0OCwyMDQ1MCwyMDQ2NCwyMDQ2NiwyMDQ3NiwyMDQ3NywyMDQ3OSwyMDQ4MCwyMDQ4MSwyMDQ4NCwyMDQ4NywyMDQ5MCwyMDQ5MiwyMDQ5NCwyMDQ5NiwyMDQ5OSwyMDUwMywyMDUwNCwyMDUwNywyMDUwOCwyMDUw'@; put 'OSwyMDUxMCwyMDUxNCwyMDUxOSwyMDUyNiwyMDUyOCwyMDUzMCwyMDUzMSwyMDUzMywyMDU0NCwyMDU0NSwyMDU0NiwyMDU0OSwyMDU1MCwyMDU1NCwyMDU1NiwyMDU1OCwyMDU2MSwyMDU2MiwyMDU2MywyMDU2NywyMDU2OSwyMDU3NSwyMDU3NiwyMDU3OCwyMDU3OSwyMDU4MiwyMDU4Mywy'@; put 'MDU4NiwyMDU4OSwyMDU5MiwyMDU5MywyMDUzOSwyMDYwOSwyMDYxMSwyMDYxMiwyMDYxNCwyMDYxOCwyMDYyMiwyMDYyMywyMDYyNCwyMDYyNiwyMDYyNywyMDYyOCwyMDYzMCwyMDYzNSwyMDYzNiwyMDYzOCwyMDYzOSwyMDY0MCwyMDY0MSwyMDY0MiwyMDY1MCwyMDY1NSwyMDY1NiwyMDY2'@; put 'NSwyMDY2NiwyMDY2OSwyMDY3MiwyMDY3NSwyMDY3NiwyMDY3OSwyMDY4NCwyMDY4NiwyMDY4OCwyMDY5MSwyMDY5MiwyMDY5NiwyMDcwMCwyMDcwMSwyMDcwMywyMDcwNiwyMDcwOCwyMDcxMCwyMDcxMiwyMDcxMywyMDcxOSwyMDcyMSwyMDcyNiwyMDczMCwyMDczNCwyMDczOSwyMDc0Miwy'@; put 'MDc0MywyMDc0NCwyMDc0NywyMDc0OCwyMDc0OSwyMDc1MCwyMDcyMiwyMDc1MiwyMDc1OSwyMDc2MSwyMDc2MywyMDc2NCwyMDc2NSwyMDc2NiwyMDc3MSwyMDc3NSwyMDc3NiwyMDc4MCwyMDc4MSwyMDc4MywyMDc4NSwyMDc4NywyMDc4OCwyMDc4OSwyMDc5MiwyMDc5MywyMDgwMiwyMDgx'@; put 'MCwyMDgxNSwyMDgxOSwyMDgyMSwyMDgyMywyMDgyNCwyMDgzMSwyMDgzNiwyMDgzOCwyMDg2MiwyMDg2NywyMDg2OCwyMDg3NSwyMDg3OCwyMDg4OCwyMDg5MywyMDg5NywyMDg5OSwyMDkwOSwyMDkyMCwyMDkyMiwyMDkyNCwyMDkyNiwyMDkyNywyMDkzMCwyMDkzNiwyMDk0MywyMDk0NSwy'@; put 'MDk0NiwyMDk0NywyMDk0OSwyMDk1MiwyMDk1OCwyMDk2MiwyMDk2NSwyMDk3NCwyMDk3OCwyMDk3OSwyMDk4MCwyMDk4MywyMDk5MywyMDk5NCwyMDk5NywyMTAxMCwyMTAxMSwyMTAxMywyMTAxNCwyMTAxNiwyMTAyNiwyMTAzMiwyMTA0MSwyMTA0MiwyMTA0NSwyMTA1MiwyMTA2MSwyMTA2'@; put 'NSwyMTA3NywyMTA3OSwyMTA4MCwyMTA4MiwyMTA4NCwyMTA4NywyMTA4OCwyMTA4OSwyMTA5NCwyMTEwMiwyMTExMSwyMTExMiwyMTExMywyMTEyMCwyMTEyMiwyMTEyNSwyMTEzMCwyMTEzMiwyMTEzOSwyMTE0MSwyMTE0MiwyMTE0MywyMTE0NCwyMTE0NiwyMTE0OCwyMTE1NiwyMTE1Nywy'@; put 'MTE1OCwyMTE1OSwyMTE2NywyMTE2OCwyMTE3NCwyMTE3NSwyMTE3NiwyMTE3OCwyMTE3OSwyMTE4MSwyMTE4NCwyMTE4OCwyMTE5MCwyMTE5MiwyMTE5NiwyMTE5OSwyMTIwMSwyMTIwNCwyMTIwNiwyMTIxMSwyMTIxMiwyMTIxNywyMTIyMSwyMTIyNCwyMTIyNSwyMTIyNiwyMTIyOCwyMTIz'@; put 'MiwyMTIzMywyMTIzNiwyMTIzOCwyMTIzOSwyMTI0OCwyMTI1MSwyMTI1OCwyMTI1OSwyMTI2MCwyMTI2NSwyMTI2NywyMTI3MiwyMTI3NSwyMTI3NiwyMTI3OCwyMTI3OSwyMTI4NSwyMTI4NywyMTI4OCwyMTI4OSwyMTI5MSwyMTI5MiwyMTI5MywyMTI5NiwyMTI5OCwyMTMwMSwyMTMwOCwy'@; put 'MTMwOSwyMTMxMCwyMTMxNCwyMTMyNCwyMTMyMywyMTMzNywyMTMzOSwyMTM0NSwyMTM0NywyMTM0OSwyMTM1NiwyMTM1NywyMTM2MiwyMTM2OSwyMTM3NCwyMTM3OSwyMTM4MywyMTM4NCwyMTM5MCwyMTM5NSwyMTM5NiwyMTQwMSwyMTQwNSwyMTQwOSwyMTQxMiwyMTQxOCwyMTQxOSwyMTQy'@; put 'MywyMTQyNiwyMTQyOCwyMTQyOSwyMTQzMSwyMTQzMiwyMTQzNCwyMTQzNywyMTQ0MCwyMTQ0NSwyMTQ1NSwyMTQ1OCwyMTQ1OSwyMTQ2MSwyMTQ2NiwyMTQ2OSwyMTQ3MCwyMTQ3MiwyMTQ3OCwyMTQ3OSwyMTQ5MywyMTUwNiwyMTUyMywyMTUzMCwyMTUzNywyMTU0MywyMTU0NCwyMTU0Niwy'@; put 'MTU1MSwyMTU1MywyMTU1NiwyMTU1NywyMTU3MSwyMTU3MiwyMTU3NSwyMTU4MSwyMTU4MywyMTU5OCwyMTYwMiwyMTYwNCwyMTYwNiwyMTYwNywyMTYwOSwyMTYxMSwyMTYxMywyMTYxNCwyMTYyMCwyMTYzMSwyMTYzMywyMTYzNSwyMTYzNywyMTY0MCwyMTY0MSwyMTY0NSwyMTY0OSwyMTY1'@; put 'MywyMTY1NCwyMTY2MCwyMTY2MywyMTY2NSwyMTY3MCwyMTY3MSwyMTY3MywyMTY3NCwyMTY3NywyMTY3OCwyMTY4MSwyMTY4NywyMTY4OSwyMTY5MCwyMTY5MSwyMTY5NSwyMTcwMiwyMTcwNiwyMTcwOSwyMTcxMCwyMTcyOCwyMTczOCwyMTc0MCwyMTc0MywyMTc1MCwyMTc1NiwyMTc1OCwy'@; put 'MTc1OSwyMTc2MCwyMTc2MSwyMTc2NSwyMTc2OCwyMTc2OSwyMTc3MiwyMTc3MywyMTc3NCwyMTc4MSwyMTgwMiwyMTgwMywyMTgxMCwyMTgxMywyMTgxNCwyMTgxOSwyMTgyMCwyMTgyMSwyMTgyNSwyMTgzMSwyMTgzMywyMTgzNCwyMTgzNywyMTg0MCwyMTg0MSwyMTg0OCwyMTg1MCwyMTg1'@; put 'MSwyMTg1NCwyMTg1NiwyMTg1NywyMTg2MCwyMTg2MiwyMTg4NywyMTg4OSwyMTg5MCwyMTg5NCwyMTg5NiwyMTkwMiwyMTkwMywyMTkwNSwyMTkwNiwyMTkwNywyMTkwOCwyMTkxMSwyMTkyMywyMTkyNCwyMTkzMywyMTkzOCwyMTk1MSwyMTk1MywyMTk1NSwyMTk1OCwyMTk2MSwyMTk2Mywy'@; put 'MTk2NCwyMTk2NiwyMTk2OSwyMTk3MCwyMTk3MSwyMTk3NSwyMTk3NiwyMTk3OSwyMTk4MiwyMTk4NiwyMTk5MywyMjAwNiwyMjAxNSwyMjAyMSwyMjAyNCwyMjAyNiwyMjAyOSwyMjAzMCwyMjAzMSwyMjAzMiwyMjAzMywyMjAzNCwyMjA0MSwyMjA2MCwyMjA2NCwyMjA2NywyMjA2OSwyMjA3'@; put 'MSwyMjA3MywyMjA3NSwyMjA3NiwyMjA3NywyMjA3OSwyMjA4MCwyMjA4MSwyMjA4MywyMjA4NCwyMjA4NiwyMjA4OSwyMjA5MSwyMjA5MywyMjA5NSwyMjEwMCwyMjExMCwyMjExMiwyMjExMywyMjExNCwyMjExNSwyMjExOCwyMjEyMSwyMjEyNSwyMjEyNywyMjEyOSwyMjEzMCwyMjEzMywy'@; put 'MjE0OCwyMjE0OSwyMjE1MiwyMjE1NSwyMjE1NiwyMjE2NSwyMjE2OSwyMjE3MCwyMjE3MywyMjE3NCwyMjE3NSwyMjE4MiwyMjE4MywyMjE4NCwyMjE4NSwyMjE4NywyMjE4OCwyMjE4OSwyMjE5MywyMjE5NSwyMjE5OSwyMjIwNiwyMjIxMywyMjIxNywyMjIxOCwyMjIxOSwyMjIyMywyMjIy'@; put 'NCwyMjIyMCwyMjIyMSwyMjIzMywyMjIzNiwyMjIzNywyMjIzOSwyMjI0MSwyMjI0NCwyMjI0NSwyMjI0NiwyMjI0NywyMjI0OCwyMjI1NywyMjI1MSwyMjI1MywyMjI2MiwyMjI2MywyMjI3MywyMjI3NCwyMjI3OSwyMjI4MiwyMjI4NCwyMjI4OSwyMjI5MywyMjI5OCwyMjI5OSwyMjMwMSwy'@; put 'MjMwNCwyMjMwNiwyMjMwNywyMjMwOCwyMjMwOSwyMjMxMywyMjMxNCwyMjMxNiwyMjMxOCwyMjMxOSwyMjMyMywyMjMyNCwyMjMzMywyMjMzNCwyMjMzNSwyMjM0MSwyMjM0MiwyMjM0OCwyMjM0OSwyMjM1NCwyMjM3MCwyMjM3MywyMjM3NSwyMjM3NiwyMjM3OSwyMjM4MSwyMjM4MiwyMjM4'@; put 'MywyMjM4NCwyMjM4NSwyMjM4NywyMjM4OCwyMjM4OSwyMjM5MSwyMjM5MywyMjM5NCwyMjM5NSwyMjM5NiwyMjM5OCwyMjQwMSwyMjQwMywyMjQxMiwyMjQyMCwyMjQyMywyMjQyNSwyMjQyNiwyMjQyOCwyMjQyOSwyMjQzMCwyMjQzMSwyMjQzMywyMjQyMSwyMjQzOSwyMjQ0MCwyMjQ0MSwy'@; put 'MjQ0NCwyMjQ1NiwyMjQ2MSwyMjQ3MSwyMjQ3MiwyMjQ3NiwyMjQ3OSwyMjQ4NSwyMjQ5MywyMjQ5NCwyMjUwMCwyMjUwMiwyMjUwMywyMjUwNSwyMjUwOSwyMjUxMiwyMjUxNywyMjUxOCwyMjUyMCwyMjUyNSwyMjUyNiwyMjUyNywyMjUzMSwyMjUzMiwyMjUzNiwyMjUzNywyMjQ5NywyMjU0'@; put 'MCwyMjU0MSwyMjU1NSwyMjU1OCwyMjU1OSwyMjU2MCwyMjU2NiwyMjU2NywyMjU3MywyMjU3OCwyMjU4NSwyMjU5MSwyMjYwMSwyMjYwNCwyMjYwNSwyMjYwNywyMjYwOCwyMjYxMywyMjYyMywyMjYyNSwyMjYyOCwyMjYzMSwyMjYzMiwyMjY0OCwyMjY1MiwyMjY1NSwyMjY1NiwyMjY1Nywy'@; put 'MjY2MywyMjY2NCwyMjY2NSwyMjY2NiwyMjY2OCwyMjY2OSwyMjY3MSwyMjY3MiwyMjY3NiwyMjY3OCwyMjY4NSwyMjY4OCwyMjY4OSwyMjY5MCwyMjY5NCwyMjY5NywyMjcwNSwyMjcwNiwyMjcyNCwyMjcxNiwyMjcyMiwyMjcyOCwyMjczMywyMjczNCwyMjczNiwyMjczOCwyMjc0MCwyMjc0'@; put 'MiwyMjc0NiwyMjc0OSwyMjc1MywyMjc1NCwyMjc2MSwyMjc3MSwyMjc4OSwyMjc5MCwyMjc5NSwyMjc5NiwyMjgwMiwyMjgwMywyMjgwNCwzNDM2OSwyMjgxMywyMjgxNywyMjgxOSwyMjgyMCwyMjgyNCwyMjgzMSwyMjgzMiwyMjgzNSwyMjgzNywyMjgzOCwyMjg0NywyMjg1MSwyMjg1NCwy'@; put 'Mjg2NiwyMjg2NywyMjg3MywyMjg3NSwyMjg3NywyMjg3OCwyMjg3OSwyMjg4MSwyMjg4MywyMjg5MSwyMjg5MywyMjg5NSwyMjg5OCwyMjkwMSwyMjkwMiwyMjkwNSwyMjkwNywyMjkwOCwyMjkyMywyMjkyNCwyMjkyNiwyMjkzMCwyMjkzMywyMjkzNSwyMjk0MywyMjk0OCwyMjk1MSwyMjk1'@; put 'NywyMjk1OCwyMjk1OSwyMjk2MCwyMjk2MywyMjk2NywyMjk3MCwyMjk3MiwyMjk3NywyMjk3OSwyMjk4MCwyMjk4NCwyMjk4NiwyMjk4OSwyMjk5NCwyMzAwNSwyMzAwNiwyMzAwNywyMzAxMSwyMzAxMiwyMzAxNSwyMzAyMiwyMzAyMywyMzAyNSwyMzAyNiwyMzAyOCwyMzAzMSwyMzA0MCwy'@; put 'MzA0NCwyMzA1MiwyMzA1MywyMzA1NCwyMzA1OCwyMzA1OSwyMzA3MCwyMzA3NSwyMzA3NiwyMzA3OSwyMzA4MCwyMzA4MiwyMzA4NSwyMzA4OCwyMzEwOCwyMzEwOSwyMzExMSwyMzExMiwyMzExNiwyMzEyMCwyMzEyNSwyMzEzNCwyMzEzOSwyMzE0MSwyMzE0MywyMzE0OSwyMzE1OSwyMzE2'@; put 'MiwyMzE2MywyMzE2NiwyMzE3OSwyMzE4NCwyMzE4NywyMzE5MCwyMzE5MywyMzE5NiwyMzE5OCwyMzE5OSwyMzIwMCwyMzIwMiwyMzIwNywyMzIxMiwyMzIxNywyMzIxOCwyMzIxOSwyMzIyMSwyMzIyNCwyMzIyNiwyMzIyNywyMzIzMSwyMzIzNiwyMzIzOCwyMzI0MCwyMzI0NywyMzI1OCwy'@; put 'MzI2MCwyMzI2NCwyMzI2OSwyMzI3NCwyMzI3OCwyMzI4NSwyMzI4NiwyMzI5MywyMzI5NiwyMzI5NywyMzMwNCwyMzMxOSwyMzM0OCwyMzMyMSwyMzMyMywyMzMyNSwyMzMyOSwyMzMzMywyMzM0MSwyMzM1MiwyMzM2MSwyMzM3MSwyMzM3MiwyMzM3OCwyMzM4MiwyMzM5MCwyMzQwMCwyMzQw'@; put 'NiwyMzQwNywyMzQyMCwyMzQyMSwyMzQyMiwyMzQyMywyMzQyNSwyMzQyOCwyMzQzMCwyMzQzNCwyMzQzOCwyMzQ0MCwyMzQ0MSwyMzQ0MywyMzQ0NCwyMzQ0NiwyMzQ2NCwyMzQ2NSwyMzQ2OCwyMzQ2OSwyMzQ3MSwyMzQ3MywyMzQ3NCwyMzQ3OSwyMzQ4MiwyMzQ4NCwyMzQ4OCwyMzQ4OSwy'@; put 'MzUwMSwyMzUwMywyMzUxMCwyMzUxMSwyMzUxMiwyMzUxMywyMzUxNCwyMzUyMCwyMzUzNSwyMzUzNywyMzU0MCwyMzU0OSwyMzU2NCwyMzU3NSwyMzU4MiwyMzU4MywyMzU4NywyMzU5MCwyMzU5MywyMzU5NSwyMzU5NiwyMzU5OCwyMzYwMCwyMzYwMiwyMzYwNSwyMzYwNiwyMzY0MSwyMzY0'@; put 'MiwyMzY0NCwyMzY1MCwyMzY1MSwyMzY1NSwyMzY1NiwyMzY1NywyMzY2MSwyMzY2NCwyMzY2OCwyMzY2OSwyMzY3NCwyMzY3NSwyMzY3NiwyMzY3NywyMzY4NywyMzY4OCwyMzY5MCwyMzY5NSwyMzY5OCwyMzcwOSwyMzcxMSwyMzcxMiwyMzcxNCwyMzcxNSwyMzcxOCwyMzcyMiwyMzczMCwy'@; put 'MzczMiwyMzczMywyMzczOCwyMzc1MywyMzc1NSwyMzc2MiwyMzc3MywyMzc2NywyMzc5MCwyMzc5MywyMzc5NCwyMzc5NiwyMzgwOSwyMzgxNCwyMzgyMSwyMzgyNiwyMzg1MSwyMzg0MywyMzg0NCwyMzg0NiwyMzg0NywyMzg1NywyMzg2MCwyMzg2NSwyMzg2OSwyMzg3MSwyMzg3NCwyMzg3'@; put 'NSwyMzg3OCwyMzg4MCwyMzg5MywyMzg4OSwyMzg5NywyMzg4MiwyMzkwMywyMzkwNCwyMzkwNSwyMzkwNiwyMzkwOCwyMzkxNCwyMzkxNywyMzkyMCwyMzkyOSwyMzkzMCwyMzkzNCwyMzkzNSwyMzkzNywyMzkzOSwyMzk0NCwyMzk0NiwyMzk1NCwyMzk1NSwyMzk1NiwyMzk1NywyMzk2MSwy'@; put 'Mzk2MywyMzk2NywyMzk2OCwyMzk3NSwyMzk3OSwyMzk4NCwyMzk4OCwyMzk5MiwyMzk5MywyNDAwMywyNDAwNywyNDAxMSwyNDAxNiwyNDAxNCwyNDAyNCwyNDAyNSwyNDAzMiwyNDAzNiwyNDA0MSwyNDA1NiwyNDA1NywyNDA2NCwyNDA3MSwyNDA3NywyNDA4MiwyNDA4NCwyNDA4NSwyNDA4'@; put 'OCwyNDA5NSwyNDA5NiwyNDExMCwyNDEwNCwyNDExNCwyNDExNywyNDEyNiwyNDEzOSwyNDE0NCwyNDEzNywyNDE0NSwyNDE1MCwyNDE1MiwyNDE1NSwyNDE1NiwyNDE1OCwyNDE2OCwyNDE3MCwyNDE3MSwyNDE3MiwyNDE3MywyNDE3NCwyNDE3NiwyNDE5MiwyNDIwMywyNDIwNiwyNDIyNiwy'@; put 'NDIyOCwyNDIyOSwyNDIzMiwyNDIzNCwyNDIzNiwyNDI0MSwyNDI0MywyNDI1MywyNDI1NCwyNDI1NSwyNDI2MiwyNDI2OCwyNDI2NywyNDI3MCwyNDI3MywyNDI3NCwyNDI3NiwyNDI3NywyNDI4NCwyNDI4NiwyNDI5MywyNDI5OSwyNDMyMiwyNDMyNiwyNDMyNywyNDMyOCwyNDMzNCwyNDM0'@; put 'NSwyNDM0OCwyNDM0OSwyNDM1MywyNDM1NCwyNDM1NSwyNDM1NiwyNDM2MCwyNDM2MywyNDM2NCwyNDM2NiwyNDM2OCwyNDM3MiwyNDM3NCwyNDM3OSwyNDM4MSwyNDM4MywyNDM4NCwyNDM4OCwyNDM4OSwyNDM5MSwyNDM5NywyNDQwMCwyNDQwNCwyNDQwOCwyNDQxMSwyNDQxNiwyNDQxOSwy'@; put 'NDQyMCwyNDQyMywyNDQzMSwyNDQzNCwyNDQzNiwyNDQzNywyNDQ0MCwyNDQ0MiwyNDQ0NSwyNDQ0NiwyNDQ1NywyNDQ2MSwyNDQ2MywyNDQ3MCwyNDQ3NiwyNDQ3NywyNDQ4MiwyNDQ4NywyNDQ5MSwyNDQ4NCwyNDQ5MiwyNDQ5NSwyNDQ5NiwyNDQ5NywyNDUwNCwyNDUxNiwyNDUxOSwyNDUy'@; put 'MCwyNDUyMSwyNDUyMywyNDUyOCwyNDUyOSwyNDUzMCwyNDUzMSwyNDUzMiwyNDU0MiwyNDU0NSwyNDU0NiwyNDU1MiwyNDU1MywyNDU1NCwyNDU1NiwyNDU1NywyNDU1OCwyNDU1OSwyNDU2MiwyNDU2MywyNDU2NiwyNDU3MCwyNDU3MiwyNDU4MywyNDU4NiwyNDU4OSwyNDU5NSwyNDU5Niwy'@; put 'NDU5OSwyNDYwMCwyNDYwMiwyNDYwNywyNDYxMiwyNDYyMSwyNDYyNywyNDYyOSwyNDY0MCwyNDY0NywyNDY0OCwyNDY0OSwyNDY1MiwyNDY1NywyNDY2MCwyNDY2MiwyNDY2MywyNDY2OSwyNDY3MywyNDY3OSwyNDY4OSwyNDcwMiwyNDcwMywyNDcwNiwyNDcxMCwyNDcxMiwyNDcxNCwyNDcx'@; put 'OCwyNDcyMSwyNDcyMywyNDcyNSwyNDcyOCwyNDczMywyNDczNCwyNDczOCwyNDc0MCwyNDc0MSwyNDc0NCwyNDc1MiwyNDc1MywyNDc1OSwyNDc2MywyNDc2NiwyNDc3MCwyNDc3MiwyNDc3NiwyNDc3NywyNDc3OCwyNDc3OSwyNDc4MiwyNDc4MywyNDc4OCwyNDc4OSwyNDc5MywyNDc5NSwy'@; put 'NDc5NywyNDc5OCwyNDgwMiwyNDgwNSwyNDgxOCwyNDgyMSwyNDgyNCwyNDgyOCwyNDgyOSwyNDgzNCwyNDgzOSwyNDg0MiwyNDg0NCwyNDg0OCwyNDg0OSwyNDg1MCwyNDg1MSwyNDg1MiwyNDg1NCwyNDg1NSwyNDg1NywyNDg2MCwyNDg2MiwyNDg2NiwyNDg3NCwyNDg3NSwyNDg4MCwyNDg4'@; put 'MSwyNDg4NSwyNDg4NiwyNDg4NywyNDg4OSwyNDg5NywyNDkwMSwyNDkwMiwyNDkwNSwyNDkyNiwyNDkyOCwyNDk0MCwyNDk0NiwyNDk1MiwyNDk1NSwyNDk1NiwyNDk1OSwyNDk2MCwyNDk2MSwyNDk2MywyNDk2NCwyNDk3MSwyNDk3MywyNDk3OCwyNDk3OSwyNDk4MywyNDk4NCwyNDk4OCwy'@; put 'NDk4OSwyNDk5MSwyNDk5MiwyNDk5NywyNWUzLDI1MDAyLDI1MDA1LDI1MDE2LDI1MDE3LDI1MDIwLDI1MDI0LDI1MDI1LDI1MDI2LDI1MDM4LDI1MDM5LDI1MDQ1LDI1MDUyLDI1MDUzLDI1MDU0LDI1MDU1LDI1MDU3LDI1MDU4LDI1MDYzLDI1MDY1LDI1MDYxLDI1MDY4LDI1MDY5LDI1MDcx'@; put 'LDI1MDg5LDI1MDkxLDI1MDkyLDI1MDk1LDI1MTA3LDI1MTA5LDI1MTE2LDI1MTIwLDI1MTIyLDI1MTIzLDI1MTI3LDI1MTI5LDI1MTMxLDI1MTQ1LDI1MTQ5LDI1MTU0LDI1MTU1LDI1MTU2LDI1MTU4LDI1MTY0LDI1MTY4LDI1MTY5LDI1MTcwLDI1MTcyLDI1MTc0LDI1MTc4LDI1MTgwLDI1'@; put 'MTg4LDI1MTk3LDI1MTk5LDI1MjAzLDI1MjEwLDI1MjEzLDI1MjI5LDI1MjMwLDI1MjMxLDI1MjMyLDI1MjU0LDI1MjU2LDI1MjY3LDI1MjcwLDI1MjcxLDI1Mjc0LDI1Mjc4LDI1Mjc5LDI1Mjg0LDI1Mjk0LDI1MzAxLDI1MzAyLDI1MzA2LDI1MzIyLDI1MzMwLDI1MzMyLDI1MzQwLDI1MzQx'@; put 'LDI1MzQ3LDI1MzQ4LDI1MzU0LDI1MzU1LDI1MzU3LDI1MzYwLDI1MzYzLDI1MzY2LDI1MzY4LDI1Mzg1LDI1Mzg2LDI1Mzg5LDI1Mzk3LDI1Mzk4LDI1NDAxLDI1NDA0LDI1NDA5LDI1NDEwLDI1NDExLDI1NDEyLDI1NDE0LDI1NDE4LDI1NDE5LDI1NDIyLDI1NDI2LDI1NDI3LDI1NDI4LDI1'@; put 'NDMyLDI1NDM1LDI1NDQ1LDI1NDQ2LDI1NDUyLDI1NDUzLDI1NDU3LDI1NDYwLDI1NDYxLDI1NDY0LDI1NDY4LDI1NDY5LDI1NDcxLDI1NDc0LDI1NDc2LDI1NDc5LDI1NDgyLDI1NDg4LDI1NDkyLDI1NDkzLDI1NDk3LDI1NDk4LDI1NTAyLDI1NTA4LDI1NTEwLDI1NTE3LDI1NTE4LDI1NTE5'@; put 'LDI1NTMzLDI1NTM3LDI1NTQxLDI1NTQ0LDI1NTUwLDI1NTUzLDI1NTU1LDI1NTU2LDI1NTU3LDI1NTY0LDI1NTY4LDI1NTczLDI1NTc4LDI1NTgwLDI1NTg2LDI1NTg3LDI1NTg5LDI1NTkyLDI1NTkzLDI1NjA5LDI1NjEwLDI1NjE2LDI1NjE4LDI1NjIwLDI1NjI0LDI1NjMwLDI1NjMyLDI1'@; put 'NjM0LDI1NjM2LDI1NjM3LDI1NjQxLDI1NjQyLDI1NjQ3LDI1NjQ4LDI1NjUzLDI1NjYxLDI1NjYzLDI1Njc1LDI1Njc5LDI1NjgxLDI1NjgyLDI1NjgzLDI1Njg0LDI1NjkwLDI1NjkxLDI1NjkyLDI1NjkzLDI1Njk1LDI1Njk2LDI1Njk3LDI1Njk5LDI1NzA5LDI1NzE1LDI1NzE2LDI1NzIz'@; put 'LDI1NzI1LDI1NzMzLDI1NzM1LDI1NzQzLDI1NzQ0LDI1NzQ1LDI1NzUyLDI1NzUzLDI1NzU1LDI1NzU3LDI1NzU5LDI1NzYxLDI1NzYzLDI1NzY2LDI1NzY4LDI1NzcyLDI1Nzc5LDI1Nzg5LDI1NzkwLDI1NzkxLDI1Nzk2LDI1ODAxLDI1ODAyLDI1ODAzLDI1ODA0LDI1ODA2LDI1ODA4LDI1'@; put 'ODA5LDI1ODEzLDI1ODE1LDI1ODI4LDI1ODI5LDI1ODMzLDI1ODM0LDI1ODM3LDI1ODQwLDI1ODQ1LDI1ODQ3LDI1ODUxLDI1ODU1LDI1ODU3LDI1ODYwLDI1ODY0LDI1ODY1LDI1ODY2LDI1ODcxLDI1ODc1LDI1ODc2LDI1ODc4LDI1ODgxLDI1ODgzLDI1ODg2LDI1ODg3LDI1ODkwLDI1ODk0'@; put 'LDI1ODk3LDI1OTAyLDI1OTA1LDI1OTE0LDI1OTE2LDI1OTE3LDI1OTIzLDI1OTI3LDI1OTI5LDI1OTM2LDI1OTM4LDI1OTQwLDI1OTUxLDI1OTUyLDI1OTU5LDI1OTYzLDI1OTc4LDI1OTgxLDI1OTg1LDI1OTg5LDI1OTk0LDI2MDAyLDI2MDA1LDI2MDA4LDI2MDEzLDI2MDE2LDI2MDE5LDI2'@; put 'MDIyLDI2MDMwLDI2MDM0LDI2MDM1LDI2MDM2LDI2MDQ3LDI2MDUwLDI2MDU2LDI2MDU3LDI2MDYyLDI2MDY0LDI2MDY4LDI2MDcwLDI2MDcyLDI2MDc5LDI2MDk2LDI2MDk4LDI2MTAwLDI2MTAxLDI2MTA1LDI2MTEwLDI2MTExLDI2MTEyLDI2MTE2LDI2MTIwLDI2MTIxLDI2MTI1LDI2MTI5'@; put 'LDI2MTMwLDI2MTMzLDI2MTM0LDI2MTQxLDI2MTQyLDI2MTQ1LDI2MTQ2LDI2MTQ3LDI2MTQ4LDI2MTUwLDI2MTUzLDI2MTU0LDI2MTU1LDI2MTU2LDI2MTU4LDI2MTYwLDI2MTYxLDI2MTYzLDI2MTY5LDI2MTY3LDI2MTc2LDI2MTgxLDI2MTgyLDI2MTg2LDI2MTg4LDI2MTkzLDI2MTkwLDI2'@; put 'MTk5LDI2MjAwLDI2MjAxLDI2MjAzLDI2MjA0LDI2MjA4LDI2MjA5LDI2MzYzLDI2MjE4LDI2MjE5LDI2MjIwLDI2MjM4LDI2MjI3LDI2MjI5LDI2MjM5LDI2MjMxLDI2MjMyLDI2MjMzLDI2MjM1LDI2MjQwLDI2MjM2LDI2MjUxLDI2MjUyLDI2MjUzLDI2MjU2LDI2MjU4LDI2MjY1LDI2MjY2'@; put 'LDI2MjY3LDI2MjY4LDI2MjcxLDI2MjcyLDI2Mjc2LDI2Mjg1LDI2Mjg5LDI2MjkwLDI2MjkzLDI2Mjk5LDI2MzAzLDI2MzA0LDI2MzA2LDI2MzA3LDI2MzEyLDI2MzE2LDI2MzE4LDI2MzE5LDI2MzI0LDI2MzMxLDI2MzM1LDI2MzQ0LDI2MzQ3LDI2MzQ4LDI2MzUwLDI2MzYyLDI2MzczLDI2'@; put 'Mzc1LDI2MzgyLDI2Mzg3LDI2MzkzLDI2Mzk2LDI2NDAwLDI2NDAyLDI2NDE5LDI2NDMwLDI2NDM3LDI2NDM5LDI2NDQwLDI2NDQ0LDI2NDUyLDI2NDUzLDI2NDYxLDI2NDcwLDI2NDc2LDI2NDc4LDI2NDg0LDI2NDg2LDI2NDkxLDI2NDk3LDI2NTAwLDI2NTEwLDI2NTExLDI2NTEzLDI2NTE1'@; put 'LDI2NTE4LDI2NTIwLDI2NTIxLDI2NTIzLDI2NTQ0LDI2NTQ1LDI2NTQ2LDI2NTQ5LDI2NTU1LDI2NTU2LDI2NTU3LDI2NjE3LDI2NTYwLDI2NTYyLDI2NTYzLDI2NTY1LDI2NTY4LDI2NTY5LDI2NTc4LDI2NTgzLDI2NTg1LDI2NTg4LDI2NTkzLDI2NTk4LDI2NjA4LDI2NjEwLDI2NjE0LDI2'@; put 'NjE1LDI2NzA2LDI2NjQ0LDI2NjQ5LDI2NjUzLDI2NjU1LDI2NjY0LDI2NjYzLDI2NjY4LDI2NjY5LDI2NjcxLDI2NjcyLDI2NjczLDI2Njc1LDI2NjgzLDI2Njg3LDI2NjkyLDI2NjkzLDI2Njk4LDI2NzAwLDI2NzA5LDI2NzExLDI2NzEyLDI2NzE1LDI2NzMxLDI2NzM0LDI2NzM1LDI2NzM2'@; put 'LDI2NzM3LDI2NzM4LDI2NzQxLDI2NzQ1LDI2NzQ2LDI2NzQ3LDI2NzQ4LDI2NzU0LDI2NzU2LDI2NzU4LDI2NzYwLDI2Nzc0LDI2Nzc2LDI2Nzc4LDI2NzgwLDI2Nzg1LDI2Nzg3LDI2Nzg5LDI2NzkzLDI2Nzk0LDI2Nzk4LDI2ODAyLDI2ODExLDI2ODIxLDI2ODI0LDI2ODI4LDI2ODMxLDI2'@; put 'ODMyLDI2ODMzLDI2ODM1LDI2ODM4LDI2ODQxLDI2ODQ0LDI2ODQ1LDI2ODUzLDI2ODU2LDI2ODU4LDI2ODU5LDI2ODYwLDI2ODYxLDI2ODY0LDI2ODY1LDI2ODY5LDI2ODcwLDI2ODc1LDI2ODc2LDI2ODc3LDI2ODg2LDI2ODg5LDI2ODkwLDI2ODk2LDI2ODk3LDI2ODk5LDI2OTAyLDI2OTAz'@; put 'LDI2OTI5LDI2OTMxLDI2OTMzLDI2OTM2LDI2OTM5LDI2OTQ2LDI2OTQ5LDI2OTUzLDI2OTU4LDI2OTY3LDI2OTcxLDI2OTc5LDI2OTgwLDI2OTgxLDI2OTgyLDI2OTg0LDI2OTg1LDI2OTg4LDI2OTkyLDI2OTkzLDI2OTk0LDI3MDAyLDI3MDAzLDI3MDA3LDI3MDA4LDI3MDIxLDI3MDI2LDI3'@; put 'MDMwLDI3MDMyLDI3MDQxLDI3MDQ1LDI3MDQ2LDI3MDQ4LDI3MDUxLDI3MDUzLDI3MDU1LDI3MDYzLDI3MDY0LDI3MDY2LDI3MDY4LDI3MDc3LDI3MDgwLDI3MDg5LDI3MDk0LDI3MDk1LDI3MTA2LDI3MTA5LDI3MTE4LDI3MTE5LDI3MTIxLDI3MTIzLDI3MTI1LDI3MTM0LDI3MTM2LDI3MTM3'@; put 'LDI3MTM5LDI3MTUxLDI3MTUzLDI3MTU3LDI3MTYyLDI3MTY1LDI3MTY4LDI3MTcyLDI3MTc2LDI3MTg0LDI3MTg2LDI3MTg4LDI3MTkxLDI3MTk1LDI3MTk4LDI3MTk5LDI3MjA1LDI3MjA2LDI3MjA5LDI3MjEwLDI3MjE0LDI3MjE2LDI3MjE3LDI3MjE4LDI3MjIxLDI3MjIyLDI3MjI3LDI3'@; put 'MjM2LDI3MjM5LDI3MjQyLDI3MjQ5LDI3MjUxLDI3MjYyLDI3MjY1LDI3MjY3LDI3MjcwLDI3MjcxLDI3MjczLDI3Mjc1LDI3MjgxLDI3MjkxLDI3MjkzLDI3Mjk0LDI3Mjk1LDI3MzAxLDI3MzA3LDI3MzExLDI3MzEyLDI3MzEzLDI3MzE2LDI3MzI1LDI3MzI2LDI3MzI3LDI3MzM0LDI3MzM3'@; put 'LDI3MzM2LDI3MzQwLDI3MzQ0LDI3MzQ4LDI3MzQ5LDI3MzUwLDI3MzU2LDI3MzU3LDI3MzY0LDI3MzY3LDI3MzcyLDI3Mzc2LDI3Mzc3LDI3Mzc4LDI3Mzg4LDI3Mzg5LDI3Mzk0LDI3Mzk1LDI3Mzk4LDI3Mzk5LDI3NDAxLDI3NDA3LDI3NDA4LDI3NDA5LDI3NDE1LDI3NDE5LDI3NDIyLDI3'@; put 'NDI4LDI3NDMyLDI3NDM1LDI3NDM2LDI3NDM5LDI3NDQ1LDI3NDQ2LDI3NDUxLDI3NDU1LDI3NDYyLDI3NDY2LDI3NDY5LDI3NDc0LDI3NDc4LDI3NDgwLDI3NDg1LDI3NDg4LDI3NDk1LDI3NDk5LDI3NTAyLDI3NTA0LDI3NTA5LDI3NTE3LDI3NTE4LDI3NTIyLDI3NTI1LDI3NTQzLDI3NTQ3'@; put 'LDI3NTUxLDI3NTUyLDI3NTU0LDI3NTU1LDI3NTYwLDI3NTYxLDI3NTY0LDI3NTY1LDI3NTY2LDI3NTY4LDI3NTc2LDI3NTc3LDI3NTgxLDI3NTgyLDI3NTg3LDI3NTg4LDI3NTkzLDI3NTk2LDI3NjA2LDI3NjEwLDI3NjE3LDI3NjE5LDI3NjIyLDI3NjIzLDI3NjMwLDI3NjMzLDI3NjM5LDI3'@; put 'NjQxLDI3NjQ3LDI3NjUwLDI3NjUyLDI3NjUzLDI3NjU3LDI3NjYxLDI3NjYyLDI3NjY0LDI3NjY2LDI3NjczLDI3Njc5LDI3Njg2LDI3Njg3LDI3Njg4LDI3NjkyLDI3Njk0LDI3Njk5LDI3NzAxLDI3NzAyLDI3NzA2LDI3NzA3LDI3NzExLDI3NzIyLDI3NzIzLDI3NzI1LDI3NzI3LDI3NzMw'@; put 'LDI3NzMyLDI3NzM3LDI3NzM5LDI3NzQwLDI3NzU1LDI3NzU3LDI3NzU5LDI3NzY0LDI3NzY2LDI3NzY4LDI3NzY5LDI3NzcxLDI3NzgxLDI3NzgyLDI3NzgzLDI3Nzg1LDI3Nzk2LDI3Nzk3LDI3Nzk5LDI3ODAwLDI3ODA0LDI3ODA3LDI3ODI0LDI3ODI2LDI3ODI4LDI3ODQyLDI3ODQ2LDI3'@; put 'ODUzLDI3ODU1LDI3ODU2LDI3ODU3LDI3ODU4LDI3ODYwLDI3ODYyLDI3ODY2LDI3ODY4LDI3ODcyLDI3ODc5LDI3ODgxLDI3ODgzLDI3ODg0LDI3ODg2LDI3ODkwLDI3ODkyLDI3OTA4LDI3OTExLDI3OTE0LDI3OTE4LDI3OTE5LDI3OTIxLDI3OTIzLDI3OTMwLDI3OTQyLDI3OTQzLDI3OTQ0'@; put 'LDI3NzUxLDI3OTUwLDI3OTUxLDI3OTUzLDI3OTYxLDI3OTY0LDI3OTY3LDI3OTkxLDI3OTk4LDI3OTk5LDI4MDAxLDI4MDA1LDI4MDA3LDI4MDE1LDI4MDE2LDI4MDI4LDI4MDM0LDI4MDM5LDI4MDQ5LDI4MDUwLDI4MDUyLDI4MDU0LDI4MDU1LDI4MDU2LDI4MDc0LDI4MDc2LDI4MDg0LDI4'@; put 'MDg3LDI4MDg5LDI4MDkzLDI4MDk1LDI4MTAwLDI4MTA0LDI4MTA2LDI4MTEwLDI4MTExLDI4MTE4LDI4MTIzLDI4MTI1LDI4MTI3LDI4MTI4LDI4MTMwLDI4MTMzLDI4MTM3LDI4MTQzLDI4MTQ0LDI4MTQ4LDI4MTUwLDI4MTU2LDI4MTYwLDI4MTY0LDI4MTkwLDI4MTk0LDI4MTk5LDI4MjEw'@; put 'LDI4MjE0LDI4MjE3LDI4MjE5LDI4MjIwLDI4MjI4LDI4MjI5LDI4MjMyLDI4MjMzLDI4MjM1LDI4MjM5LDI4MjQxLDI4MjQyLDI4MjQzLDI4MjQ0LDI4MjQ3LDI4MjUyLDI4MjUzLDI4MjU0LDI4MjU4LDI4MjU5LDI4MjY0LDI4Mjc1LDI4MjgzLDI4Mjg1LDI4MzAxLDI4MzA3LDI4MzEzLDI4'@; put 'MzIwLDI4MzI3LDI4MzMzLDI4MzM0LDI4MzM3LDI4MzM5LDI4MzQ3LDI4MzUxLDI4MzUyLDI4MzUzLDI4MzU1LDI4MzU5LDI4MzYwLDI4MzYyLDI4MzY1LDI4MzY2LDI4MzY3LDI4Mzk1LDI4Mzk3LDI4Mzk4LDI4NDA5LDI4NDExLDI4NDEzLDI4NDIwLDI4NDI0LDI4NDI2LDI4NDI4LDI4NDI5'@; put 'LDI4NDM4LDI4NDQwLDI4NDQyLDI4NDQzLDI4NDU0LDI4NDU3LDI4NDU4LDI4NDYzLDI4NDY0LDI4NDY3LDI4NDcwLDI4NDc1LDI4NDc2LDI4NDYxLDI4NDk1LDI4NDk3LDI4NDk4LDI4NDk5LDI4NTAzLDI4NTA1LDI4NTA2LDI4NTA5LDI4NTEwLDI4NTEzLDI4NTE0LDI4NTIwLDI4NTI0LDI4'@; put 'NTQxLDI4NTQyLDI4NTQ3LDI4NTUxLDI4NTUyLDI4NTU1LDI4NTU2LDI4NTU3LDI4NTYwLDI4NTYyLDI4NTYzLDI4NTY0LDI4NTY2LDI4NTcwLDI4NTc1LDI4NTc2LDI4NTgxLDI4NTgyLDI4NTgzLDI4NTg0LDI4NTkwLDI4NTkxLDI4NTkyLDI4NTk3LDI4NTk4LDI4NjA0LDI4NjEzLDI4NjE1'@; put 'LDI4NjE2LDI4NjE4LDI4NjM0LDI4NjM4LDI4NjQ4LDI4NjQ5LDI4NjU2LDI4NjYxLDI4NjY1LDI4NjY4LDI4NjY5LDI4NjcyLDI4Njc3LDI4Njc4LDI4Njc5LDI4Njg1LDI4Njk1LDI4NzA0LDI4NzA3LDI4NzE5LDI4NzI0LDI4NzI3LDI4NzI5LDI4NzMyLDI4NzM5LDI4NzQwLDI4NzQ0LDI4'@; put 'NzQ1LDI4NzQ2LDI4NzQ3LDI4NzU2LDI4NzU3LDI4NzY1LDI4NzY2LDI4NzUwLDI4NzcyLDI4NzczLDI4NzgwLDI4NzgyLDI4Nzg5LDI4NzkwLDI4Nzk4LDI4ODAxLDI4ODA1LDI4ODA2LDI4ODIwLDI4ODIxLDI4ODIyLDI4ODIzLDI4ODI0LDI4ODI3LDI4ODM2LDI4ODQzLDI4ODQ4LDI4ODQ5'@; put 'LDI4ODUyLDI4ODU1LDI4ODc0LDI4ODgxLDI4ODgzLDI4ODg0LDI4ODg1LDI4ODg2LDI4ODg4LDI4ODkyLDI4OTAwLDI4OTIyLDI4OTMxLDI4OTMyLDI4OTMzLDI4OTM0LDI4OTM1LDI4OTM5LDI4OTQwLDI4OTQzLDI4OTU4LDI4OTYwLDI4OTcxLDI4OTczLDI4OTc1LDI4OTc2LDI4OTc3LDI4'@; put 'OTg0LDI4OTkzLDI4OTk3LDI4OTk4LDI4OTk5LDI5MDAyLDI5MDAzLDI5MDA4LDI5MDEwLDI5MDE1LDI5MDE4LDI5MDIwLDI5MDIyLDI5MDI0LDI5MDMyLDI5MDQ5LDI5MDU2LDI5MDYxLDI5MDYzLDI5MDY4LDI5MDc0LDI5MDgyLDI5MDgzLDI5MDg4LDI5MDkwLDI5MTAzLDI5MTA0LDI5MTA2'@; put 'LDI5MTA3LDI5MTE0LDI5MTE5LDI5MTIwLDI5MTIxLDI5MTI0LDI5MTMxLDI5MTMyLDI5MTM5LDI5MTQyLDI5MTQ1LDI5MTQ2LDI5MTQ4LDI5MTc2LDI5MTgyLDI5MTg0LDI5MTkxLDI5MTkyLDI5MTkzLDI5MjAzLDI5MjA3LDI5MjEwLDI5MjEzLDI5MjE1LDI5MjIwLDI5MjI3LDI5MjMxLDI5'@; put 'MjM2LDI5MjQwLDI5MjQxLDI5MjQ5LDI5MjUwLDI5MjUxLDI5MjUzLDI5MjYyLDI5MjYzLDI5MjY0LDI5MjY3LDI5MjY5LDI5MjcwLDI5Mjc0LDI5Mjc2LDI5Mjc4LDI5MjgwLDI5MjgzLDI5Mjg4LDI5MjkxLDI5Mjk0LDI5Mjk1LDI5Mjk3LDI5MzAzLDI5MzA0LDI5MzA3LDI5MzA4LDI5MzEx'@; put 'LDI5MzE2LDI5MzIxLDI5MzI1LDI5MzI2LDI5MzMxLDI5MzM5LDI5MzUyLDI5MzU3LDI5MzU4LDI5MzYxLDI5MzY0LDI5Mzc0LDI5Mzc3LDI5MzgzLDI5Mzg1LDI5Mzg4LDI5Mzk3LDI5Mzk4LDI5NDAwLDI5NDA3LDI5NDEzLDI5NDI3LDI5NDI4LDI5NDM0LDI5NDM1LDI5NDM4LDI5NDQyLDI5'@; put 'NDQ0LDI5NDQ1LDI5NDQ3LDI5NDUxLDI5NDUzLDI5NDU4LDI5NDU5LDI5NDY0LDI5NDY1LDI5NDcwLDI5NDc0LDI5NDc2LDI5NDc5LDI5NDgwLDI5NDg0LDI5NDg5LDI5NDkwLDI5NDkzLDI5NDk4LDI5NDk5LDI5NTAxLDI5NTA3LDI5NTE3LDI5NTIwLDI5NTIyLDI5NTI2LDI5NTI4LDI5NTMz'@; put 'LDI5NTM0LDI5NTM1LDI5NTM2LDI5NTQyLDI5NTQzLDI5NTQ1LDI5NTQ3LDI5NTQ4LDI5NTUwLDI5NTUxLDI5NTUzLDI5NTU5LDI5NTYxLDI5NTY0LDI5NTY4LDI5NTY5LDI5NTcxLDI5NTczLDI5NTc0LDI5NTgyLDI5NTg0LDI5NTg3LDI5NTg5LDI5NTkxLDI5NTkyLDI5NTk2LDI5NTk4LDI5'@; put 'NTk5LDI5NjAwLDI5NjAyLDI5NjA1LDI5NjA2LDI5NjEwLDI5NjExLDI5NjEzLDI5NjIxLDI5NjIzLDI5NjI1LDI5NjI4LDI5NjI5LDI5NjMxLDI5NjM3LDI5NjM4LDI5NjQxLDI5NjQzLDI5NjQ0LDI5NjQ3LDI5NjUwLDI5NjUxLDI5NjU0LDI5NjU3LDI5NjYxLDI5NjY1LDI5NjY3LDI5Njcw'@; put 'LDI5NjcxLDI5NjczLDI5Njg0LDI5Njg1LDI5Njg3LDI5Njg5LDI5NjkwLDI5NjkxLDI5NjkzLDI5Njk1LDI5Njk2LDI5Njk3LDI5NzAwLDI5NzAzLDI5NzA2LDI5NzEzLDI5NzIyLDI5NzIzLDI5NzMyLDI5NzM0LDI5NzM2LDI5NzM3LDI5NzM4LDI5NzM5LDI5NzQwLDI5NzQxLDI5NzQyLDI5'@; put 'NzQzLDI5NzQ0LDI5NzQ1LDI5NzUzLDI5NzYwLDI5NzYzLDI5NzY0LDI5NzY2LDI5NzY3LDI5NzcxLDI5NzczLDI5Nzc3LDI5Nzc4LDI5NzgzLDI5Nzg5LDI5Nzk0LDI5Nzk4LDI5Nzk5LDI5ODAwLDI5ODAzLDI5ODA1LDI5ODA2LDI5ODA5LDI5ODEwLDI5ODI0LDI5ODI1LDI5ODI5LDI5ODMw'@; put 'LDI5ODMxLDI5ODMzLDI5ODM5LDI5ODQwLDI5ODQxLDI5ODQyLDI5ODQ4LDI5ODQ5LDI5ODUwLDI5ODUyLDI5ODU1LDI5ODU2LDI5ODU3LDI5ODU5LDI5ODYyLDI5ODY0LDI5ODY1LDI5ODY2LDI5ODY3LDI5ODcwLDI5ODcxLDI5ODczLDI5ODc0LDI5ODc3LDI5ODgxLDI5ODgzLDI5ODg3LDI5'@; put 'ODk2LDI5ODk3LDI5OTAwLDI5OTA0LDI5OTA3LDI5OTEyLDI5OTE0LDI5OTE1LDI5OTE4LDI5OTE5LDI5OTI0LDI5OTI4LDI5OTMwLDI5OTMxLDI5OTM1LDI5OTQwLDI5OTQ2LDI5OTQ3LDI5OTQ4LDI5OTUxLDI5OTU4LDI5OTcwLDI5OTc0LDI5OTc1LDI5OTg0LDI5OTg1LDI5OTg4LDI5OTkx'@; put 'LDI5OTkzLDI5OTk0LDI5OTk5LDMwMDA2LDMwMDA5LDMwMDEzLDMwMDE0LDMwMDE1LDMwMDE2LDMwMDE5LDMwMDIzLDMwMDI0LDMwMDMwLDMwMDMyLDMwMDM0LDMwMDM5LDMwMDQ2LDMwMDQ3LDMwMDQ5LDMwMDYzLDMwMDY1LDMwMDczLDMwMDc0LDMwMDc1LDMwMDc2LDMwMDc3LDMwMDc4LDMw'@; put 'MDgxLDMwMDg1LDMwMDk2LDMwMDk4LDMwMDk5LDMwMTAxLDMwMTA1LDMwMTA4LDMwMTE0LDMwMTE2LDMwMTMyLDMwMTM4LDMwMTQzLDMwMTQ0LDMwMTQ1LDMwMTQ4LDMwMTUwLDMwMTU2LDMwMTU4LDMwMTU5LDMwMTY3LDMwMTcyLDMwMTc1LDMwMTc2LDMwMTc3LDMwMTgwLDMwMTgzLDMwMTg4'@; put 'LDMwMTkwLDMwMTkxLDMwMTkzLDMwMjAxLDMwMjA4LDMwMjEwLDMwMjExLDMwMjEyLDMwMjE1LDMwMjE2LDMwMjE4LDMwMjIwLDMwMjIzLDMwMjI2LDMwMjI3LDMwMjI5LDMwMjMwLDMwMjMzLDMwMjM1LDMwMjM2LDMwMjM3LDMwMjM4LDMwMjQzLDMwMjQ1LDMwMjQ2LDMwMjQ5LDMwMjUzLDMw'@; put 'MjU4LDMwMjU5LDMwMjYxLDMwMjY0LDMwMjY1LDMwMjY2LDMwMjY4LDMwMjgyLDMwMjcyLDMwMjczLDMwMjc1LDMwMjc2LDMwMjc3LDMwMjgxLDMwMjgzLDMwMjkzLDMwMjk3LDMwMzAzLDMwMzA4LDMwMzA5LDMwMzE3LDMwMzE4LDMwMzE5LDMwMzIxLDMwMzI0LDMwMzM3LDMwMzQxLDMwMzQ4'@; put 'LDMwMzQ5LDMwMzU3LDMwMzYzLDMwMzY0LDMwMzY1LDMwMzY3LDMwMzY4LDMwMzcwLDMwMzcxLDMwMzcyLDMwMzczLDMwMzc0LDMwMzc1LDMwMzc2LDMwMzc4LDMwMzgxLDMwMzk3LDMwNDAxLDMwNDA1LDMwNDA5LDMwNDExLDMwNDEyLDMwNDE0LDMwNDIwLDMwNDI1LDMwNDMyLDMwNDM4LDMw'@; put 'NDQwLDMwNDQ0LDMwNDQ4LDMwNDQ5LDMwNDU0LDMwNDU3LDMwNDYwLDMwNDY0LDMwNDcwLDMwNDc0LDMwNDc4LDMwNDgyLDMwNDg0LDMwNDg1LDMwNDg3LDMwNDg5LDMwNDkwLDMwNDkyLDMwNDk4LDMwNTA0LDMwNTA5LDMwNTEwLDMwNTExLDMwNTE2LDMwNTE3LDMwNTE4LDMwNTIxLDMwNTI1'@; put 'LDMwNTI2LDMwNTMwLDMwNTMzLDMwNTM0LDMwNTM4LDMwNTQxLDMwNTQyLDMwNTQzLDMwNTQ2LDMwNTUwLDMwNTUxLDMwNTU2LDMwNTU4LDMwNTU5LDMwNTYwLDMwNTYyLDMwNTY0LDMwNTY3LDMwNTcwLDMwNTcyLDMwNTc2LDMwNTc4LDMwNTc5LDMwNTgwLDMwNTg2LDMwNTg5LDMwNTkyLDMw'@; put 'NTk2LDMwNjA0LDMwNjA1LDMwNjEyLDMwNjEzLDMwNjE0LDMwNjE4LDMwNjIzLDMwNjI2LDMwNjMxLDMwNjM0LDMwNjM4LDMwNjM5LDMwNjQxLDMwNjQ1LDMwNjU0LDMwNjU5LDMwNjY1LDMwNjczLDMwNjc0LDMwNjc3LDMwNjgxLDMwNjg2LDMwNjg3LDMwNjg4LDMwNjkyLDMwNjk0LDMwNjk4'@; put 'LDMwNzAwLDMwNzA0LDMwNzA1LDMwNzA4LDMwNzEyLDMwNzE1LDMwNzI1LDMwNzI2LDMwNzI5LDMwNzMzLDMwNzM0LDMwNzM3LDMwNzQ5LDMwNzUzLDMwNzU0LDMwNzU1LDMwNzY1LDMwNzY2LDMwNzY4LDMwNzczLDMwNzc1LDMwNzg3LDMwNzg4LDMwNzkxLDMwNzkyLDMwNzk2LDMwNzk4LDMw'@; put 'ODAyLDMwODEyLDMwODE0LDMwODE2LDMwODE3LDMwODE5LDMwODIwLDMwODI0LDMwODI2LDMwODMwLDMwODQyLDMwODQ2LDMwODU4LDMwODYzLDMwODY4LDMwODcyLDMwODgxLDMwODc3LDMwODc4LDMwODc5LDMwODg0LDMwODg4LDMwODkyLDMwODkzLDMwODk2LDMwODk3LDMwODk4LDMwODk5'@; put 'LDMwOTA3LDMwOTA5LDMwOTExLDMwOTE5LDMwOTIwLDMwOTIxLDMwOTI0LDMwOTI2LDMwOTMwLDMwOTMxLDMwOTMzLDMwOTM0LDMwOTQ4LDMwOTM5LDMwOTQzLDMwOTQ0LDMwOTQ1LDMwOTUwLDMwOTU0LDMwOTYyLDMwOTYzLDMwOTc2LDMwOTY2LDMwOTY3LDMwOTcwLDMwOTcxLDMwOTc1LDMw'@; put 'OTgyLDMwOTg4LDMwOTkyLDMxMDAyLDMxMDA0LDMxMDA2LDMxMDA3LDMxMDA4LDMxMDEzLDMxMDE1LDMxMDE3LDMxMDIxLDMxMDI1LDMxMDI4LDMxMDI5LDMxMDM1LDMxMDM3LDMxMDM5LDMxMDQ0LDMxMDQ1LDMxMDQ2LDMxMDUwLDMxMDUxLDMxMDU1LDMxMDU3LDMxMDYwLDMxMDY0LDMxMDY3'@; put 'LDMxMDY4LDMxMDc5LDMxMDgxLDMxMDgzLDMxMDkwLDMxMDk3LDMxMDk5LDMxMTAwLDMxMTAyLDMxMTE1LDMxMTE2LDMxMTIxLDMxMTIzLDMxMTI0LDMxMTI1LDMxMTI2LDMxMTI4LDMxMTMxLDMxMTMyLDMxMTM3LDMxMTQ0LDMxMTQ1LDMxMTQ3LDMxMTUxLDMxMTUzLDMxMTU2LDMxMTYwLDMx'@; put 'MTYzLDMxMTcwLDMxMTcyLDMxMTc1LDMxMTc2LDMxMTc4LDMxMTgzLDMxMTg4LDMxMTkwLDMxMTk0LDMxMTk3LDMxMTk4LDMxMjAwLDMxMjAyLDMxMjA1LDMxMjEwLDMxMjExLDMxMjEzLDMxMjE3LDMxMjI0LDMxMjI4LDMxMjM0LDMxMjM1LDMxMjM5LDMxMjQxLDMxMjQyLDMxMjQ0LDMxMjQ5'@; put 'LDMxMjUzLDMxMjU5LDMxMjYyLDMxMjY1LDMxMjcxLDMxMjc1LDMxMjc3LDMxMjc5LDMxMjgwLDMxMjg0LDMxMjg1LDMxMjg4LDMxMjg5LDMxMjkwLDMxMzAwLDMxMzAxLDMxMzAzLDMxMzA0LDMxMzA4LDMxMzE3LDMxMzE4LDMxMzIxLDMxMzI0LDMxMzI1LDMxMzI3LDMxMzI4LDMxMzMzLDMx'@; put 'MzM1LDMxMzM4LDMxMzQxLDMxMzQ5LDMxMzUyLDMxMzU4LDMxMzYwLDMxMzYyLDMxMzY1LDMxMzY2LDMxMzcwLDMxMzcxLDMxMzc2LDMxMzc3LDMxMzgwLDMxMzkwLDMxMzkyLDMxMzk1LDMxNDA0LDMxNDExLDMxNDEzLDMxNDE3LDMxNDE5LDMxNDIwLDMxNDMwLDMxNDMzLDMxNDM2LDMxNDM4'@; put 'LDMxNDQxLDMxNDUxLDMxNDY0LDMxNDY1LDMxNDY3LDMxNDY4LDMxNDczLDMxNDc2LDMxNDgzLDMxNDg1LDMxNDg2LDMxNDk1LDMxNTA4LDMxNTE5LDMxNTIzLDMxNTI3LDMxNTI5LDMxNTMwLDMxNTMxLDMxNTMzLDMxNTM0LDMxNTM1LDMxNTM2LDMxNTM3LDMxNTQwLDMxNTQ5LDMxNTUxLDMx'@; put 'NTUyLDMxNTUzLDMxNTU5LDMxNTY2LDMxNTczLDMxNTg0LDMxNTg4LDMxNTkwLDMxNTkzLDMxNTk0LDMxNTk3LDMxNTk5LDMxNjAyLDMxNjAzLDMxNjA3LDMxNjIwLDMxNjI1LDMxNjMwLDMxNjMyLDMxNjMzLDMxNjM4LDMxNjQzLDMxNjQ2LDMxNjQ4LDMxNjUzLDMxNjYwLDMxNjYzLDMxNjY0'@; put 'LDMxNjY2LDMxNjY5LDMxNjcwLDMxNjc0LDMxNjc1LDMxNjc2LDMxNjc3LDMxNjgyLDMxNjg1LDMxNjg4LDMxNjkwLDMxNzAwLDMxNzAyLDMxNzAzLDMxNzA1LDMxNzA2LDMxNzA3LDMxNzIwLDMxNzIyLDMxNzMwLDMxNzMyLDMxNzMzLDMxNzM2LDMxNzM3LDMxNzM4LDMxNzQwLDMxNzQyLDMx'@; put 'NzQ1LDMxNzQ2LDMxNzQ3LDMxNzQ4LDMxNzUwLDMxNzUzLDMxNzU1LDMxNzU2LDMxNzU4LDMxNzU5LDMxNzY5LDMxNzcxLDMxNzc2LDMxNzgxLDMxNzgyLDMxNzg0LDMxNzg4LDMxNzkzLDMxNzk1LDMxNzk2LDMxNzk4LDMxODAxLDMxODAyLDMxODE0LDMxODE4LDMxODI5LDMxODI1LDMxODI2'@; put 'LDMxODI3LDMxODMzLDMxODM0LDMxODM1LDMxODM2LDMxODM3LDMxODM4LDMxODQxLDMxODQzLDMxODQ3LDMxODQ5LDMxODUzLDMxODU0LDMxODU2LDMxODU4LDMxODY1LDMxODY4LDMxODY5LDMxODc4LDMxODc5LDMxODg3LDMxODkyLDMxOTAyLDMxOTA0LDMxOTEwLDMxOTIwLDMxOTI2LDMx'@; put 'OTI3LDMxOTMwLDMxOTMxLDMxOTMyLDMxOTM1LDMxOTQwLDMxOTQzLDMxOTQ0LDMxOTQ1LDMxOTQ5LDMxOTUxLDMxOTU1LDMxOTU2LDMxOTU3LDMxOTU5LDMxOTYxLDMxOTYyLDMxOTY1LDMxOTc0LDMxOTc3LDMxOTc5LDMxOTg5LDMyMDAzLDMyMDA3LDMyMDA4LDMyMDA5LDMyMDE1LDMyMDE3'@; put 'LDMyMDE4LDMyMDE5LDMyMDIyLDMyMDI5LDMyMDMwLDMyMDM1LDMyMDM4LDMyMDQyLDMyMDQ1LDMyMDQ5LDMyMDYwLDMyMDYxLDMyMDYyLDMyMDY0LDMyMDY1LDMyMDcxLDMyMDcyLDMyMDc3LDMyMDgxLDMyMDgzLDMyMDg3LDMyMDg5LDMyMDkwLDMyMDkyLDMyMDkzLDMyMTAxLDMyMTAzLDMy'@; put 'MTA2LDMyMTEyLDMyMTIwLDMyMTIyLDMyMTIzLDMyMTI3LDMyMTI5LDMyMTMwLDMyMTMxLDMyMTMzLDMyMTM0LDMyMTM2LDMyMTM5LDMyMTQwLDMyMTQxLDMyMTQ1LDMyMTUwLDMyMTUxLDMyMTU3LDMyMTU4LDMyMTY2LDMyMTY3LDMyMTcwLDMyMTc5LDMyMTgyLDMyMTgzLDMyMTg1LDMyMTk0'@; put 'LDMyMTk1LDMyMTk2LDMyMTk3LDMyMTk4LDMyMjA0LDMyMjA1LDMyMjA2LDMyMjE1LDMyMjE3LDMyMjU2LDMyMjI2LDMyMjI5LDMyMjMwLDMyMjM0LDMyMjM1LDMyMjM3LDMyMjQxLDMyMjQ1LDMyMjQ2LDMyMjQ5LDMyMjUwLDMyMjY0LDMyMjcyLDMyMjczLDMyMjc3LDMyMjc5LDMyMjg0LDMy'@; put 'Mjg1LDMyMjg4LDMyMjk1LDMyMjk2LDMyMzAwLDMyMzAxLDMyMzAzLDMyMzA3LDMyMzEwLDMyMzE5LDMyMzI0LDMyMzI1LDMyMzI3LDMyMzM0LDMyMzM2LDMyMzM4LDMyMzQ0LDMyMzUxLDMyMzUzLDMyMzU0LDMyMzU3LDMyMzYzLDMyMzY2LDMyMzY3LDMyMzcxLDMyMzc2LDMyMzgyLDMyMzg1'@; put 'LDMyMzkwLDMyMzkxLDMyMzk0LDMyMzk3LDMyNDAxLDMyNDA1LDMyNDA4LDMyNDEwLDMyNDEzLDMyNDE0LDMyNTcyLDMyNTcxLDMyNTczLDMyNTc0LDMyNTc1LDMyNTc5LDMyNTgwLDMyNTgzLDMyNTkxLDMyNTk0LDMyNTk1LDMyNjAzLDMyNjA0LDMyNjA1LDMyNjA5LDMyNjExLDMyNjEyLDMy'@; put 'NjEzLDMyNjE0LDMyNjIxLDMyNjI1LDMyNjM3LDMyNjM4LDMyNjM5LDMyNjQwLDMyNjUxLDMyNjUzLDMyNjU1LDMyNjU2LDMyNjU3LDMyNjYyLDMyNjYzLDMyNjY4LDMyNjczLDMyNjc0LDMyNjc4LDMyNjgyLDMyNjg1LDMyNjkyLDMyNzAwLDMyNzAzLDMyNzA0LDMyNzA3LDMyNzEyLDMyNzE4'@; put 'LDMyNzE5LDMyNzMxLDMyNzM1LDMyNzM5LDMyNzQxLDMyNzQ0LDMyNzQ4LDMyNzUwLDMyNzUxLDMyNzU0LDMyNzYyLDMyNzY1LDMyNzY2LDMyNzY3LDMyNzc1LDMyNzc2LDMyNzc4LDMyNzgxLDMyNzgyLDMyNzgzLDMyNzg1LDMyNzg3LDMyNzg4LDMyNzkwLDMyNzk3LDMyNzk4LDMyNzk5LDMy'@; put 'ODAwLDMyODA0LDMyODA2LDMyODEyLDMyODE0LDMyODE2LDMyODIwLDMyODIxLDMyODIzLDMyODI1LDMyODI2LDMyODI4LDMyODMwLDMyODMyLDMyODM2LDMyODY0LDMyODY4LDMyODcwLDMyODc3LDMyODgxLDMyODg1LDMyODk3LDMyOTA0LDMyOTEwLDMyOTI0LDMyOTI2LDMyOTM0LDMyOTM1'@; put 'LDMyOTM5LDMyOTUyLDMyOTUzLDMyOTY4LDMyOTczLDMyOTc1LDMyOTc4LDMyOTgwLDMyOTgxLDMyOTgzLDMyOTg0LDMyOTkyLDMzMDA1LDMzMDA2LDMzMDA4LDMzMDEwLDMzMDExLDMzMDE0LDMzMDE3LDMzMDE4LDMzMDIyLDMzMDI3LDMzMDM1LDMzMDQ2LDMzMDQ3LDMzMDQ4LDMzMDUyLDMz'@; put 'MDU0LDMzMDU2LDMzMDYwLDMzMDYzLDMzMDY4LDMzMDcyLDMzMDc3LDMzMDgyLDMzMDg0LDMzMDkzLDMzMDk1LDMzMDk4LDMzMTAwLDMzMTA2LDMzMTExLDMzMTIwLDMzMTIxLDMzMTI3LDMzMTI4LDMzMTI5LDMzMTMzLDMzMTM1LDMzMTQzLDMzMTUzLDMzMTY4LDMzMTU2LDMzMTU3LDMzMTU4'@; put 'LDMzMTYzLDMzMTY2LDMzMTc0LDMzMTc2LDMzMTc5LDMzMTgyLDMzMTg2LDMzMTk4LDMzMjAyLDMzMjA0LDMzMjExLDMzMjI3LDMzMjE5LDMzMjIxLDMzMjI2LDMzMjMwLDMzMjMxLDMzMjM3LDMzMjM5LDMzMjQzLDMzMjQ1LDMzMjQ2LDMzMjQ5LDMzMjUyLDMzMjU5LDMzMjYwLDMzMjY0LDMz'@; put 'MjY1LDMzMjY2LDMzMjY5LDMzMjcwLDMzMjcyLDMzMjczLDMzMjc3LDMzMjc5LDMzMjgwLDMzMjgzLDMzMjk1LDMzMjk5LDMzMzAwLDMzMzA1LDMzMzA2LDMzMzA5LDMzMzEzLDMzMzE0LDMzMzIwLDMzMzMwLDMzMzMyLDMzMzM4LDMzMzQ3LDMzMzQ4LDMzMzQ5LDMzMzUwLDMzMzU1LDMzMzU4'@; put 'LDMzMzU5LDMzMzYxLDMzMzY2LDMzMzcyLDMzMzc2LDMzMzc5LDMzMzgzLDMzMzg5LDMzMzk2LDMzNDAzLDMzNDA1LDMzNDA3LDMzNDA4LDMzNDA5LDMzNDExLDMzNDEyLDMzNDE1LDMzNDE3LDMzNDE4LDMzNDIyLDMzNDI1LDMzNDI4LDMzNDMwLDMzNDMyLDMzNDM0LDMzNDM1LDMzNDQwLDMz'@; put 'NDQxLDMzNDQzLDMzNDQ0LDMzNDQ3LDMzNDQ4LDMzNDQ5LDMzNDUwLDMzNDU0LDMzNDU2LDMzNDU4LDMzNDYwLDMzNDYzLDMzNDY2LDMzNDY4LDMzNDcwLDMzNDcxLDMzNDc4LDMzNDg4LDMzNDkzLDMzNDk4LDMzNTA0LDMzNTA2LDMzNTA4LDMzNTEyLDMzNTE0LDMzNTE3LDMzNTE5LDMzNTI2'@; put 'LDMzNTI3LDMzNTMzLDMzNTM0LDMzNTM2LDMzNTM3LDMzNTQzLDMzNTQ0LDMzNTQ2LDMzNTQ3LDMzNjIwLDMzNTYzLDMzNTY1LDMzNTY2LDMzNTY3LDMzNTY5LDMzNTcwLDMzNTgwLDMzNTgxLDMzNTgyLDMzNTg0LDMzNTg3LDMzNTkxLDMzNTk0LDMzNTk2LDMzNTk3LDMzNjAyLDMzNjAzLDMz'@; put 'NjA0LDMzNjA3LDMzNjEzLDMzNjE0LDMzNjE3LDMzNjIxLDMzNjIyLDMzNjIzLDMzNjQ4LDMzNjU2LDMzNjYxLDMzNjYzLDMzNjY0LDMzNjY2LDMzNjY4LDMzNjcwLDMzNjc3LDMzNjgyLDMzNjg0LDMzNjg1LDMzNjg4LDMzNjg5LDMzNjkxLDMzNjkyLDMzNjkzLDMzNzAyLDMzNzAzLDMzNzA1'@; put 'LDMzNzA4LDMzNzI2LDMzNzI3LDMzNzI4LDMzNzM1LDMzNzM3LDMzNzQzLDMzNzQ0LDMzNzQ1LDMzNzQ4LDMzNzU3LDMzNjE5LDMzNzY4LDMzNzcwLDMzNzgyLDMzNzg0LDMzNzg1LDMzNzg4LDMzNzkzLDMzNzk4LDMzODAyLDMzODA3LDMzODA5LDMzODEzLDMzODE3LDMzNzA5LDMzODM5LDMz'@; put 'ODQ5LDMzODYxLDMzODYzLDMzODY0LDMzODY2LDMzODY5LDMzODcxLDMzODczLDMzODc0LDMzODc4LDMzODgwLDMzODgxLDMzODgyLDMzODg0LDMzODg4LDMzODkyLDMzODkzLDMzODk1LDMzODk4LDMzOTA0LDMzOTA3LDMzOTA4LDMzOTEwLDMzOTEyLDMzOTE2LDMzOTE3LDMzOTIxLDMzOTI1'@; put 'LDMzOTM4LDMzOTM5LDMzOTQxLDMzOTUwLDMzOTU4LDMzOTYwLDMzOTYxLDMzOTYyLDMzOTY3LDMzOTY5LDMzOTcyLDMzOTc4LDMzOTgxLDMzOTgyLDMzOTg0LDMzOTg2LDMzOTkxLDMzOTkyLDMzOTk2LDMzOTk5LDM0MDAzLDM0MDEyLDM0MDIzLDM0MDI2LDM0MDMxLDM0MDMyLDM0MDMzLDM0'@; put 'MDM0LDM0MDM5LDM0MDk4LDM0MDQyLDM0MDQzLDM0MDQ1LDM0MDUwLDM0MDUxLDM0MDU1LDM0MDYwLDM0MDYyLDM0MDY0LDM0MDc2LDM0MDc4LDM0MDgyLDM0MDgzLDM0MDg0LDM0MDg1LDM0MDg3LDM0MDkwLDM0MDkxLDM0MDk1LDM0MDk5LDM0MTAwLDM0MTAyLDM0MTExLDM0MTE4LDM0MTI3'@; put 'LDM0MTI4LDM0MTI5LDM0MTMwLDM0MTMxLDM0MTM0LDM0MTM3LDM0MTQwLDM0MTQxLDM0MTQyLDM0MTQzLDM0MTQ0LDM0MTQ1LDM0MTQ2LDM0MTQ4LDM0MTU1LDM0MTU5LDM0MTY5LDM0MTcwLDM0MTcxLDM0MTczLDM0MTc1LDM0MTc3LDM0MTgxLDM0MTgyLDM0MTg1LDM0MTg3LDM0MTg4LDM0'@; put 'MTkxLDM0MTk1LDM0MjAwLDM0MjA1LDM0MjA3LDM0MjA4LDM0MjEwLDM0MjEzLDM0MjE1LDM0MjI4LDM0MjMwLDM0MjMxLDM0MjMyLDM0MjM2LDM0MjM3LDM0MjM4LDM0MjM5LDM0MjQyLDM0MjQ3LDM0MjUwLDM0MjUxLDM0MjU0LDM0MjIxLDM0MjY0LDM0MjY2LDM0MjcxLDM0MjcyLDM0Mjc4'@; put 'LDM0MjgwLDM0Mjg1LDM0MjkxLDM0Mjk0LDM0MzAwLDM0MzAzLDM0MzA0LDM0MzA4LDM0MzA5LDM0MzE3LDM0MzE4LDM0MzIwLDM0MzIxLDM0MzIyLDM0MzI4LDM0MzI5LDM0MzMxLDM0MzM0LDM0MzM3LDM0MzQzLDM0MzQ1LDM0MzU4LDM0MzYwLDM0MzYyLDM0MzY0LDM0MzY1LDM0MzY4LDM0'@; put 'MzcwLDM0Mzc0LDM0Mzg2LDM0Mzg3LDM0MzkwLDM0MzkxLDM0MzkyLDM0MzkzLDM0Mzk3LDM0NDAwLDM0NDAxLDM0NDAyLDM0NDAzLDM0NDA0LDM0NDA5LDM0NDEyLDM0NDE1LDM0NDIxLDM0NDIyLDM0NDIzLDM0NDI2LDM0NDQ1LDM0NDQ5LDM0NDU0LDM0NDU2LDM0NDU4LDM0NDYwLDM0NDY1'@; put 'LDM0NDcwLDM0NDcxLDM0NDcyLDM0NDc3LDM0NDgxLDM0NDgzLDM0NDg0LDM0NDg1LDM0NDg3LDM0NDg4LDM0NDg5LDM0NDk1LDM0NDk2LDM0NDk3LDM0NDk5LDM0NTAxLDM0NTEzLDM0NTE0LDM0NTE3LDM0NTE5LDM0NTIyLDM0NTI0LDM0NTI4LDM0NTMxLDM0NTMzLDM0NTM1LDM0NDQwLDM0'@; put 'NTU0LDM0NTU2LDM0NTU3LDM0NTY0LDM0NTY1LDM0NTY3LDM0NTcxLDM0NTc0LDM0NTc1LDM0NTc2LDM0NTc5LDM0NTgwLDM0NTg1LDM0NTkwLDM0NTkxLDM0NTkzLDM0NTk1LDM0NjAwLDM0NjA2LDM0NjA3LDM0NjA5LDM0NjEwLDM0NjE3LDM0NjE4LDM0NjIwLDM0NjIxLDM0NjIyLDM0NjI0'@; put 'LDM0NjI3LDM0NjI5LDM0NjM3LDM0NjQ4LDM0NjUzLDM0NjU3LDM0NjYwLDM0NjYxLDM0NjcxLDM0NjczLDM0Njc0LDM0NjgzLDM0NjkxLDM0NjkyLDM0NjkzLDM0Njk0LDM0Njk1LDM0Njk2LDM0Njk3LDM0Njk5LDM0NzAwLDM0NzA0LDM0NzA3LDM0NzA5LDM0NzExLDM0NzEyLDM0NzEzLDM0'@; put 'NzE4LDM0NzIwLDM0NzIzLDM0NzI3LDM0NzMyLDM0NzMzLDM0NzM0LDM0NzM3LDM0NzQxLDM0NzUwLDM0NzUxLDM0NzUzLDM0NzYwLDM0NzYxLDM0NzYyLDM0NzY2LDM0NzczLDM0Nzc0LDM0Nzc3LDM0Nzc4LDM0NzgwLDM0NzgzLDM0Nzg2LDM0Nzg3LDM0Nzg4LDM0Nzk0LDM0Nzk1LDM0Nzk3'@; put 'LDM0ODAxLDM0ODAzLDM0ODA4LDM0ODEwLDM0ODE1LDM0ODE3LDM0ODE5LDM0ODIyLDM0ODI1LDM0ODI2LDM0ODI3LDM0ODMyLDM0ODQxLDM0ODM0LDM0ODM1LDM0ODM2LDM0ODQwLDM0ODQyLDM0ODQzLDM0ODQ0LDM0ODQ2LDM0ODQ3LDM0ODU2LDM0ODYxLDM0ODYyLDM0ODY0LDM0ODY2LDM0'@; put 'ODY5LDM0ODc0LDM0ODc2LDM0ODgxLDM0ODgzLDM0ODg1LDM0ODg4LDM0ODg5LDM0ODkwLDM0ODkxLDM0ODk0LDM0ODk3LDM0OTAxLDM0OTAyLDM0OTA0LDM0OTA2LDM0OTA4LDM0OTExLDM0OTEyLDM0OTE2LDM0OTIxLDM0OTI5LDM0OTM3LDM0OTM5LDM0OTQ0LDM0OTY4LDM0OTcwLDM0OTcx'@; put 'LDM0OTcyLDM0OTc1LDM0OTc2LDM0OTg0LDM0OTg2LDM1MDAyLDM1MDA1LDM1MDA2LDM1MDA4LDM1MDE4LDM1MDE5LDM1MDIwLDM1MDIxLDM1MDIyLDM1MDI1LDM1MDI2LDM1MDI3LDM1MDM1LDM1MDM4LDM1MDQ3LDM1MDU1LDM1MDU2LDM1MDU3LDM1MDYxLDM1MDYzLDM1MDczLDM1MDc4LDM1'@; put 'MDg1LDM1MDg2LDM1MDg3LDM1MDkzLDM1MDk0LDM1MDk2LDM1MDk3LDM1MDk4LDM1MTAwLDM1MTA0LDM1MTEwLDM1MTExLDM1MTEyLDM1MTIwLDM1MTIxLDM1MTIyLDM1MTI1LDM1MTI5LDM1MTMwLDM1MTM0LDM1MTM2LDM1MTM4LDM1MTQxLDM1MTQyLDM1MTQ1LDM1MTUxLDM1MTU0LDM1MTU5'@; put 'LDM1MTYyLDM1MTYzLDM1MTY0LDM1MTY5LDM1MTcwLDM1MTcxLDM1MTc5LDM1MTgyLDM1MTg0LDM1MTg3LDM1MTg5LDM1MTk0LDM1MTk1LDM1MTk2LDM1MTk3LDM1MjA5LDM1MjEzLDM1MjE2LDM1MjIwLDM1MjIxLDM1MjI3LDM1MjI4LDM1MjMxLDM1MjMyLDM1MjM3LDM1MjQ4LDM1MjUyLDM1'@; put 'MjUzLDM1MjU0LDM1MjU1LDM1MjYwLDM1Mjg0LDM1Mjg1LDM1Mjg2LDM1Mjg3LDM1Mjg4LDM1MzAxLDM1MzA1LDM1MzA3LDM1MzA5LDM1MzEzLDM1MzE1LDM1MzE4LDM1MzIxLDM1MzI1LDM1MzI3LDM1MzMyLDM1MzMzLDM1MzM1LDM1MzQzLDM1MzQ1LDM1MzQ2LDM1MzQ4LDM1MzQ5LDM1MzU4'@; put 'LDM1MzYwLDM1MzYyLDM1MzY0LDM1MzY2LDM1MzcxLDM1MzcyLDM1Mzc1LDM1MzgxLDM1MzgzLDM1Mzg5LDM1MzkwLDM1MzkyLDM1Mzk1LDM1Mzk3LDM1Mzk5LDM1NDAxLDM1NDA1LDM1NDA2LDM1NDExLDM1NDE0LDM1NDE1LDM1NDE2LDM1NDIwLDM1NDIxLDM1NDI1LDM1NDI5LDM1NDMxLDM1'@; put 'NDQ1LDM1NDQ2LDM1NDQ3LDM1NDQ5LDM1NDUwLDM1NDUxLDM1NDU0LDM1NDU1LDM1NDU2LDM1NDU5LDM1NDYyLDM1NDY3LDM1NDcxLDM1NDcyLDM1NDc0LDM1NDc4LDM1NDc5LDM1NDgxLDM1NDg3LDM1NDk1LDM1NDk3LDM1NTAyLDM1NTAzLDM1NTA3LDM1NTEwLDM1NTExLDM1NTE1LDM1NTE4'@; put 'LDM1NTIzLDM1NTI2LDM1NTI4LDM1NTI5LDM1NTMwLDM1NTM3LDM1NTM5LDM1NTQwLDM1NTQxLDM1NTQzLDM1NTQ5LDM1NTUxLDM1NTY0LDM1NTY4LDM1NTcyLDM1NTczLDM1NTc0LDM1NTgwLDM1NTgzLDM1NTg5LDM1NTkwLDM1NTk1LDM1NjAxLDM1NjEyLDM1NjE0LDM1NjE1LDM1NTk0LDM1'@; put 'NjI5LDM1NjMyLDM1NjM5LDM1NjQ0LDM1NjUwLDM1NjUxLDM1NjUyLDM1NjUzLDM1NjU0LDM1NjU2LDM1NjY2LDM1NjY3LDM1NjY4LDM1NjczLDM1NjYxLDM1Njc4LDM1NjgzLDM1NjkzLDM1NzAyLDM1NzA0LDM1NzA1LDM1NzA4LDM1NzEwLDM1NzEzLDM1NzE2LDM1NzE3LDM1NzIzLDM1NzI1'@; put 'LDM1NzI3LDM1NzMyLDM1NzMzLDM1NzQwLDM1NzQyLDM1NzQzLDM1ODk2LDM1ODk3LDM1OTAxLDM1OTAyLDM1OTA5LDM1OTExLDM1OTEzLDM1OTE1LDM1OTE5LDM1OTIxLDM1OTIzLDM1OTI0LDM1OTI3LDM1OTI4LDM1OTMxLDM1OTMzLDM1OTI5LDM1OTM5LDM1OTQwLDM1OTQyLDM1OTQ0LDM1'@; put 'OTQ1LDM1OTQ5LDM1OTU1LDM1OTU3LDM1OTU4LDM1OTYzLDM1OTY2LDM1OTc0LDM1OTc1LDM1OTc5LDM1OTg0LDM1OTg2LDM1OTg3LDM1OTkzLDM1OTk1LDM1OTk2LDM2MDA0LDM2MDI1LDM2MDI2LDM2MDM3LDM2MDM4LDM2MDQxLDM2MDQzLDM2MDQ3LDM2MDU0LDM2MDUzLDM2MDU3LDM2MDYx'@; put 'LDM2MDY1LDM2MDcyLDM2MDc2LDM2MDc5LDM2MDgwLDM2MDgyLDM2MDg1LDM2MDg3LDM2MDg4LDM2MDk0LDM2MDk1LDM2MDk3LDM2MDk5LDM2MTA1LDM2MTE0LDM2MTE5LDM2MTIzLDM2MTk3LDM2MjAxLDM2MjA0LDM2MjA2LDM2MjIzLDM2MjI2LDM2MjI4LDM2MjMyLDM2MjM3LDM2MjQwLDM2'@; put 'MjQxLDM2MjQ1LDM2MjU0LDM2MjU1LDM2MjU2LDM2MjYyLDM2MjY3LDM2MjY4LDM2MjcxLDM2Mjc0LDM2Mjc3LDM2Mjc5LDM2MjgxLDM2MjgzLDM2Mjg4LDM2MjkzLDM2Mjk0LDM2Mjk1LDM2Mjk2LDM2Mjk4LDM2MzAyLDM2MzA1LDM2MzA4LDM2MzA5LDM2MzExLDM2MzEzLDM2MzI0LDM2MzI1'@; put 'LDM2MzI3LDM2MzMyLDM2MzM2LDM2Mjg0LDM2MzM3LDM2MzM4LDM2MzQwLDM2MzQ5LDM2MzUzLDM2MzU2LDM2MzU3LDM2MzU4LDM2MzYzLDM2MzY5LDM2MzcyLDM2Mzc0LDM2Mzg0LDM2Mzg1LDM2Mzg2LDM2Mzg3LDM2MzkwLDM2MzkxLDM2NDAxLDM2NDAzLDM2NDA2LDM2NDA3LDM2NDA4LDM2'@; put 'NDA5LDM2NDEzLDM2NDE2LDM2NDE3LDM2NDI3LDM2NDI5LDM2NDMwLDM2NDMxLDM2NDM2LDM2NDQzLDM2NDQ0LDM2NDQ1LDM2NDQ2LDM2NDQ5LDM2NDUwLDM2NDU3LDM2NDYwLDM2NDYxLDM2NDYzLDM2NDY0LDM2NDY1LDM2NDczLDM2NDc0LDM2NDc1LDM2NDgyLDM2NDgzLDM2NDg5LDM2NDk2'@; put 'LDM2NDk4LDM2NTAxLDM2NTA2LDM2NTA3LDM2NTA5LDM2NTEwLDM2NTE0LDM2NTE5LDM2NTIxLDM2NTI1LDM2NTI2LDM2NTMxLDM2NTMzLDM2NTM4LDM2NTM5LDM2NTQ0LDM2NTQ1LDM2NTQ3LDM2NTQ4LDM2NTUxLDM2NTU5LDM2NTYxLDM2NTY0LDM2NTcyLDM2NTg0LDM2NTkwLDM2NTkyLDM2'@; put 'NTkzLDM2NTk5LDM2NjAxLDM2NjAyLDM2NTg5LDM2NjA4LDM2NjEwLDM2NjE1LDM2NjE2LDM2NjIzLDM2NjI0LDM2NjMwLDM2NjMxLDM2NjMyLDM2NjM4LDM2NjQwLDM2NjQxLDM2NjQzLDM2NjQ1LDM2NjQ3LDM2NjQ4LDM2NjUyLDM2NjUzLDM2NjU0LDM2NjYwLDM2NjYxLDM2NjYyLDM2NjYz'@; put 'LDM2NjY2LDM2NjcyLDM2NjczLDM2Njc1LDM2Njc5LDM2Njg3LDM2Njg5LDM2NjkwLDM2NjkxLDM2NjkyLDM2NjkzLDM2Njk2LDM2NzAxLDM2NzAyLDM2NzA5LDM2NzY1LDM2NzY4LDM2NzY5LDM2NzcyLDM2NzczLDM2Nzc0LDM2Nzg5LDM2NzkwLDM2NzkyLDM2Nzk4LDM2ODAwLDM2ODAxLDM2'@; put 'ODA2LDM2ODEwLDM2ODExLDM2ODEzLDM2ODE2LDM2ODE4LDM2ODE5LDM2ODIxLDM2ODMyLDM2ODM1LDM2ODM2LDM2ODQwLDM2ODQ2LDM2ODQ5LDM2ODUzLDM2ODU0LDM2ODU5LDM2ODYyLDM2ODY2LDM2ODY4LDM2ODcyLDM2ODc2LDM2ODg4LDM2ODkxLDM2OTA0LDM2OTA1LDM2OTExLDM2OTA2'@; put 'LDM2OTA4LDM2OTA5LDM2OTE1LDM2OTE2LDM2OTE5LDM2OTI3LDM2OTMxLDM2OTMyLDM2OTQwLDM2OTU1LDM2OTU3LDM2OTYyLDM2OTY2LDM2OTY3LDM2OTcyLDM2OTc2LDM2OTgwLDM2OTg1LDM2OTk3LDM3ZTMsMzcwMDMsMzcwMDQsMzcwMDYsMzcwMDgsMzcwMTMsMzcwMTUsMzcwMTYsMzcw'@; put 'MTcsMzcwMTksMzcwMjQsMzcwMjUsMzcwMjYsMzcwMjksMzcwNDAsMzcwNDIsMzcwNDMsMzcwNDQsMzcwNDYsMzcwNTMsMzcwNjgsMzcwNTQsMzcwNTksMzcwNjAsMzcwNjEsMzcwNjMsMzcwNjQsMzcwNzcsMzcwNzksMzcwODAsMzcwODEsMzcwODQsMzcwODUsMzcwODcsMzcwOTMsMzcwNzQs'@; put 'MzcxMTAsMzcwOTksMzcxMDMsMzcxMDQsMzcxMDgsMzcxMTgsMzcxMTksMzcxMjAsMzcxMjQsMzcxMjUsMzcxMjYsMzcxMjgsMzcxMzMsMzcxMzYsMzcxNDAsMzcxNDIsMzcxNDMsMzcxNDQsMzcxNDYsMzcxNDgsMzcxNTAsMzcxNTIsMzcxNTcsMzcxNTQsMzcxNTUsMzcxNTksMzcxNjEsMzcx'@; put 'NjYsMzcxNjcsMzcxNjksMzcxNzIsMzcxNzQsMzcxNzUsMzcxNzcsMzcxNzgsMzcxODAsMzcxODEsMzcxODcsMzcxOTEsMzcxOTIsMzcxOTksMzcyMDMsMzcyMDcsMzcyMDksMzcyMTAsMzcyMTEsMzcyMTcsMzcyMjAsMzcyMjMsMzcyMjksMzcyMzYsMzcyNDEsMzcyNDIsMzcyNDMsMzcyNDks'@; put 'MzcyNTEsMzcyNTMsMzcyNTQsMzcyNTgsMzcyNjIsMzcyNjUsMzcyNjcsMzcyNjgsMzcyNjksMzcyNzIsMzcyNzgsMzcyODEsMzcyODYsMzcyODgsMzcyOTIsMzcyOTMsMzcyOTQsMzcyOTYsMzcyOTcsMzcyOTgsMzcyOTksMzczMDIsMzczMDcsMzczMDgsMzczMDksMzczMTEsMzczMTQsMzcz'@; put 'MTUsMzczMTcsMzczMzEsMzczMzIsMzczMzUsMzczMzcsMzczMzgsMzczNDIsMzczNDgsMzczNDksMzczNTMsMzczNTQsMzczNTYsMzczNTcsMzczNTgsMzczNTksMzczNjAsMzczNjEsMzczNjcsMzczNjksMzczNzEsMzczNzMsMzczNzYsMzczNzcsMzczODAsMzczODEsMzczODIsMzczODMs'@; put 'MzczODUsMzczODYsMzczODgsMzczOTIsMzczOTQsMzczOTUsMzczOTgsMzc0MDAsMzc0MDQsMzc0MDUsMzc0MTEsMzc0MTIsMzc0MTMsMzc0MTQsMzc0MTYsMzc0MjIsMzc0MjMsMzc0MjQsMzc0MjcsMzc0MjksMzc0MzAsMzc0MzIsMzc0MzMsMzc0MzQsMzc0MzYsMzc0MzgsMzc0NDAsMzc0'@; put 'NDIsMzc0NDMsMzc0NDYsMzc0NDcsMzc0NTAsMzc0NTMsMzc0NTQsMzc0NTUsMzc0NTcsMzc0NjQsMzc0NjUsMzc0NjgsMzc0NjksMzc0NzIsMzc0NzMsMzc0NzcsMzc0NzksMzc0ODAsMzc0ODEsMzc0ODYsMzc0ODcsMzc0ODgsMzc0OTMsMzc0OTQsMzc0OTUsMzc0OTYsMzc0OTcsMzc0OTks'@; put 'Mzc1MDAsMzc1MDEsMzc1MDMsMzc1MTIsMzc1MTMsMzc1MTQsMzc1MTcsMzc1MTgsMzc1MjIsMzc1MjcsMzc1MjksMzc1MzUsMzc1MzYsMzc1NDAsMzc1NDEsMzc1NDMsMzc1NDQsMzc1NDcsMzc1NTEsMzc1NTQsMzc1NTgsMzc1NjAsMzc1NjIsMzc1NjMsMzc1NjQsMzc1NjUsMzc1NjcsMzc1'@; put 'NjgsMzc1NjksMzc1NzAsMzc1NzEsMzc1NzMsMzc1NzQsMzc1NzUsMzc1NzYsMzc1NzksMzc1ODAsMzc1ODEsMzc1ODIsMzc1ODQsMzc1ODcsMzc1ODksMzc1OTEsMzc1OTIsMzc1OTMsMzc1OTYsMzc1OTcsMzc1OTksMzc2MDAsMzc2MDEsMzc2MDMsMzc2MDUsMzc2MDcsMzc2MDgsMzc2MTIs'@; put 'Mzc2MTQsMzc2MTYsMzc2MjUsMzc2MjcsMzc2MzEsMzc2MzIsMzc2MzQsMzc2NDAsMzc2NDUsMzc2NDksMzc2NTIsMzc2NTMsMzc2NjAsMzc2NjEsMzc2NjIsMzc2NjMsMzc2NjUsMzc2NjgsMzc2NjksMzc2NzEsMzc2NzMsMzc2NzQsMzc2ODMsMzc2ODQsMzc2ODYsMzc2ODcsMzc3MDMsMzc3'@; put 'MDQsMzc3MDUsMzc3MTIsMzc3MTMsMzc3MTQsMzc3MTcsMzc3MTksMzc3MjAsMzc3MjIsMzc3MjYsMzc3MzIsMzc3MzMsMzc3MzUsMzc3MzcsMzc3MzgsMzc3NDEsMzc3NDMsMzc3NDQsMzc3NDUsMzc3NDcsMzc3NDgsMzc3NTAsMzc3NTQsMzc3NTcsMzc3NTksMzc3NjAsMzc3NjEsMzc3NjIs'@; put 'Mzc3NjgsMzc3NzAsMzc3NzEsMzc3NzMsMzc3NzUsMzc3NzgsMzc3ODEsMzc3ODQsMzc3ODcsMzc3OTAsMzc3OTMsMzc3OTUsMzc3OTYsMzc3OTgsMzc4MDAsMzc4MDMsMzc4MTIsMzc4MTMsMzc4MTQsMzc4MTgsMzc4MDEsMzc4MjUsMzc4MjgsMzc4MjksMzc4MzAsMzc4MzEsMzc4MzMsMzc4'@; put 'MzQsMzc4MzUsMzc4MzYsMzc4MzcsMzc4NDMsMzc4NDksMzc4NTIsMzc4NTQsMzc4NTUsMzc4NTgsMzc4NjIsMzc4NjMsMzc4ODEsMzc4NzksMzc4ODAsMzc4ODIsMzc4ODMsMzc4ODUsMzc4ODksMzc4OTAsMzc4OTIsMzc4OTYsMzc4OTcsMzc5MDEsMzc5MDIsMzc5MDMsMzc5MDksMzc5MTAs'@; put 'Mzc5MTEsMzc5MTksMzc5MzQsMzc5MzUsMzc5MzcsMzc5MzgsMzc5MzksMzc5NDAsMzc5NDcsMzc5NTEsMzc5NDksMzc5NTUsMzc5NTcsMzc5NjAsMzc5NjIsMzc5NjQsMzc5NzMsMzc5NzcsMzc5ODAsMzc5ODMsMzc5ODUsMzc5ODcsMzc5OTIsMzc5OTUsMzc5OTcsMzc5OTgsMzc5OTksMzgw'@; put 'MDEsMzgwMDIsMzgwMjAsMzgwMTksMzgyNjQsMzgyNjUsMzgyNzAsMzgyNzYsMzgyODAsMzgyODQsMzgyODUsMzgyODYsMzgzMDEsMzgzMDIsMzgzMDMsMzgzMDUsMzgzMTAsMzgzMTMsMzgzMTUsMzgzMTYsMzgzMjQsMzgzMjYsMzgzMzAsMzgzMzMsMzgzMzUsMzgzNDIsMzgzNDQsMzgzNDUs'@; put 'MzgzNDcsMzgzNTIsMzgzNTMsMzgzNTQsMzgzNTUsMzgzNjEsMzgzNjIsMzgzNjUsMzgzNjYsMzgzNjcsMzgzNjgsMzgzNzIsMzgzNzQsMzg0MjksMzg0MzAsMzg0MzQsMzg0MzYsMzg0MzcsMzg0MzgsMzg0NDQsMzg0NDksMzg0NTEsMzg0NTUsMzg0NTYsMzg0NTcsMzg0NTgsMzg0NjAsMzg0'@; put 'NjEsMzg0NjUsMzg0ODIsMzg0ODQsMzg0ODYsMzg0ODcsMzg0ODgsMzg0OTcsMzg1MTAsMzg1MTYsMzg1MjMsMzg1MjQsMzg1MjYsMzg1MjcsMzg1MjksMzg1MzAsMzg1MzEsMzg1MzIsMzg1MzcsMzg1NDUsMzg1NTAsMzg1NTQsMzg1NTcsMzg1NTksMzg1NjQsMzg1NjUsMzg1NjYsMzg1Njks'@; put 'Mzg1NzQsMzg1NzUsMzg1NzksMzg1ODYsMzg2MDIsMzg2MTAsMjM5ODYsMzg2MTYsMzg2MTgsMzg2MjEsMzg2MjIsMzg2MjMsMzg2MzMsMzg2MzksMzg2NDEsMzg2NTAsMzg2NTgsMzg2NTksMzg2NjEsMzg2NjUsMzg2ODIsMzg2ODMsMzg2ODUsMzg2ODksMzg2OTAsMzg2OTEsMzg2OTYsMzg3'@; put 'MDUsMzg3MDcsMzg3MjEsMzg3MjMsMzg3MzAsMzg3MzQsMzg3MzUsMzg3NDEsMzg3NDMsMzg3NDQsMzg3NDYsMzg3NDcsMzg3NTUsMzg3NTksMzg3NjIsMzg3NjYsMzg3NzEsMzg3NzQsMzg3NzUsMzg3NzYsMzg3NzksMzg3ODEsMzg3ODMsMzg3ODQsMzg3OTMsMzg4MDUsMzg4MDYsMzg4MDcs'@; put 'Mzg4MDksMzg4MTAsMzg4MTQsMzg4MTUsMzg4MTgsMzg4MjgsMzg4MzAsMzg4MzMsMzg4MzQsMzg4MzcsMzg4MzgsMzg4NDAsMzg4NDEsMzg4NDIsMzg4NDQsMzg4NDYsMzg4NDcsMzg4NDksMzg4NTIsMzg4NTMsMzg4NTUsMzg4NTcsMzg4NTgsMzg4NjAsMzg4NjEsMzg4NjIsMzg4NjQsMzg4'@; put 'NjUsMzg4NjgsMzg4NzEsMzg4NzIsMzg4NzMsMzg4NzcsMzg4NzgsMzg4ODAsMzg4NzUsMzg4ODEsMzg4ODQsMzg4OTUsMzg4OTcsMzg5MDAsMzg5MDMsMzg5MDQsMzg5MDYsMzg5MTksMzg5MjIsMzg5MzcsMzg5MjUsMzg5MjYsMzg5MzIsMzg5MzQsMzg5NDAsMzg5NDIsMzg5NDQsMzg5NDcs'@; put 'Mzg5NTAsMzg5NTUsMzg5NTgsMzg5NTksMzg5NjAsMzg5NjIsMzg5NjMsMzg5NjUsMzg5NDksMzg5NzQsMzg5ODAsMzg5ODMsMzg5ODYsMzg5OTMsMzg5OTQsMzg5OTUsMzg5OTgsMzg5OTksMzkwMDEsMzkwMDIsMzkwMTAsMzkwMTEsMzkwMTMsMzkwMTQsMzkwMTgsMzkwMjAsMzkwODMsMzkw'@; put 'ODUsMzkwODYsMzkwODgsMzkwOTIsMzkwOTUsMzkwOTYsMzkwOTgsMzkwOTksMzkxMDMsMzkxMDYsMzkxMDksMzkxMTIsMzkxMTYsMzkxMzcsMzkxMzksMzkxNDEsMzkxNDIsMzkxNDMsMzkxNDYsMzkxNTUsMzkxNTgsMzkxNzAsMzkxNzUsMzkxNzYsMzkxODUsMzkxODksMzkxOTAsMzkxOTEs'@; put 'MzkxOTQsMzkxOTUsMzkxOTYsMzkxOTksMzkyMDIsMzkyMDYsMzkyMDcsMzkyMTEsMzkyMTcsMzkyMTgsMzkyMTksMzkyMjAsMzkyMjEsMzkyMjUsMzkyMjYsMzkyMjcsMzkyMjgsMzkyMzIsMzkyMzMsMzkyMzgsMzkyMzksMzkyNDAsMzkyNDUsMzkyNDYsMzkyNTIsMzkyNTYsMzkyNTcsMzky'@; put 'NTksMzkyNjAsMzkyNjIsMzkyNjMsMzkyNjQsMzkzMjMsMzkzMjUsMzkzMjcsMzkzMzQsMzkzNDQsMzkzNDUsMzkzNDYsMzkzNDksMzkzNTMsMzkzNTQsMzkzNTcsMzkzNTksMzkzNjMsMzkzNjksMzkzNzksMzkzODAsMzkzODUsMzkzODYsMzkzODgsMzkzOTAsMzkzOTksMzk0MDIsMzk0MDMs'@; put 'Mzk0MDQsMzk0MDgsMzk0MTIsMzk0MTMsMzk0MTcsMzk0MjEsMzk0MjIsMzk0MjYsMzk0MjcsMzk0MjgsMzk0MzUsMzk0MzYsMzk0NDAsMzk0NDEsMzk0NDYsMzk0NTQsMzk0NTYsMzk0NTgsMzk0NTksMzk0NjAsMzk0NjMsMzk0NjksMzk0NzAsMzk0NzUsMzk0NzcsMzk0NzgsMzk0ODAsMzk0'@; put 'OTUsMzk0ODksMzk0OTIsMzk0OTgsMzk0OTksMzk1MDAsMzk1MDIsMzk1MDUsMzk1MDgsMzk1MTAsMzk1MTcsMzk1OTQsMzk1OTYsMzk1OTgsMzk1OTksMzk2MDIsMzk2MDQsMzk2MDUsMzk2MDYsMzk2MDksMzk2MTEsMzk2MTQsMzk2MTUsMzk2MTcsMzk2MTksMzk2MjIsMzk2MjQsMzk2MzAs'@; put 'Mzk2MzIsMzk2MzQsMzk2MzcsMzk2MzgsMzk2MzksMzk2NDMsMzk2NDQsMzk2NDgsMzk2NTIsMzk2NTMsMzk2NTUsMzk2NTcsMzk2NjAsMzk2NjYsMzk2NjcsMzk2NjksMzk2NzMsMzk2NzQsMzk2NzcsMzk2NzksMzk2ODAsMzk2ODEsMzk2ODIsMzk2ODMsMzk2ODQsMzk2ODUsMzk2ODgsMzk2'@; put 'ODksMzk2OTEsMzk2OTIsMzk2OTMsMzk2OTQsMzk2OTYsMzk2OTgsMzk3MDIsMzk3MDUsMzk3MDcsMzk3MDgsMzk3MTIsMzk3MTgsMzk3MjMsMzk3MjUsMzk3MzEsMzk3MzIsMzk3MzMsMzk3MzUsMzk3MzcsMzk3MzgsMzk3NDEsMzk3NTIsMzk3NTUsMzk3NTYsMzk3NjUsMzk3NjYsMzk3Njcs'@; put 'Mzk3NzEsMzk3NzQsMzk3NzcsMzk3NzksMzk3ODEsMzk3ODIsMzk3ODQsMzk3ODYsMzk3ODcsMzk3ODgsMzk3ODksMzk3OTAsMzk3OTUsMzk3OTcsMzk3OTksMzk4MDAsMzk4MDEsMzk4MDcsMzk4MDgsMzk4MTIsMzk4MTMsMzk4MTQsMzk4MTUsMzk4MTcsMzk4MTgsMzk4MTksMzk4MjEsMzk4'@; put 'MjMsMzk4MjQsMzk4MjgsMzk4MzQsMzk4MzcsMzk4MzgsMzk4NDYsMzk4NDcsMzk4NDksMzk4NTIsMzk4NTYsMzk4NTcsMzk4NTgsMzk4NjMsMzk4NjQsMzk4NjcsMzk4NjgsMzk4NzAsMzk4NzEsMzk4NzMsMzk4NzksMzk4ODAsMzk4ODYsMzk4ODgsMzk4OTUsMzk4OTYsMzk5MDEsMzk5MDMs'@; put 'Mzk5MDksMzk5MTEsMzk5MTQsMzk5MTUsMzk5MTksMzk5MjMsMzk5MjcsMzk5MjgsMzk5MjksMzk5MzAsMzk5MzMsMzk5MzUsMzk5MzYsMzk5MzgsMzk5NDcsMzk5NTEsMzk5NTMsMzk5NTgsMzk5NjAsMzk5NjEsMzk5NjIsMzk5NjQsMzk5NjYsMzk5NzAsMzk5NzEsMzk5NzQsMzk5NzUsMzk5'@; put 'NzYsMzk5NzcsMzk5NzgsMzk5ODUsMzk5ODksMzk5OTAsMzk5OTEsMzk5OTcsNDAwMDEsNDAwMDMsNDAwMDQsNDAwMDUsNDAwMDksNDAwMTAsNDAwMTQsNDAwMTUsNDAwMTYsNDAwMTksNDAwMjAsNDAwMjIsNDAwMjQsNDAwMjcsNDAwMjksNDAwMzAsNDAwMzEsNDAwMzUsNDAwNDEsNDAwNDIs'@; put 'NDAwMjgsNDAwNDMsNDAwNDAsNDAwNDYsNDAwNDgsNDAwNTAsNDAwNTMsNDAwNTUsNDAwNTksNDAxNjYsNDAxNzgsNDAxODMsNDAxODUsNDAyMDMsNDAxOTQsNDAyMDksNDAyMTUsNDAyMTYsNDAyMjAsNDAyMjEsNDAyMjIsNDAyMzksNDAyNDAsNDAyNDIsNDAyNDMsNDAyNDQsNDAyNTAsNDAy'@; put 'NTIsNDAyNjEsNDAyNTMsNDAyNTgsNDAyNTksNDAyNjMsNDAyNjYsNDAyNzUsNDAyNzYsNDAyODcsNDAyOTEsNDAyOTAsNDAyOTMsNDAyOTcsNDAyOTgsNDAyOTksNDAzMDQsNDAzMTAsNDAzMTEsNDAzMTUsNDAzMTYsNDAzMTgsNDAzMjMsNDAzMjQsNDAzMjYsNDAzMzAsNDAzMzMsNDAzMzQs'@; put 'NDAzMzgsNDAzMzksNDAzNDEsNDAzNDIsNDAzNDMsNDAzNDQsNDAzNTMsNDAzNjIsNDAzNjQsNDAzNjYsNDAzNjksNDAzNzMsNDAzNzcsNDAzODAsNDAzODMsNDAzODcsNDAzOTEsNDAzOTMsNDAzOTQsNDA0MDQsNDA0MDUsNDA0MDYsNDA0MDcsNDA0MTAsNDA0MTQsNDA0MTUsNDA0MTYsNDA0'@; put 'MjEsNDA0MjMsNDA0MjUsNDA0MjcsNDA0MzAsNDA0MzIsNDA0MzUsNDA0MzYsNDA0NDYsNDA0NTgsNDA0NTAsNDA0NTUsNDA0NjIsNDA0NjQsNDA0NjUsNDA0NjYsNDA0NjksNDA0NzAsNDA0NzMsNDA0NzYsNDA0NzcsNDA1NzAsNDA1NzEsNDA1NzIsNDA1NzYsNDA1NzgsNDA1NzksNDA1ODAs'@; put 'NDA1ODEsNDA1ODMsNDA1OTAsNDA1OTEsNDA1OTgsNDA2MDAsNDA2MDMsNDA2MDYsNDA2MTIsNDA2MTYsNDA2MjAsNDA2MjIsNDA2MjMsNDA2MjQsNDA2MjcsNDA2MjgsNDA2MjksNDA2NDYsNDA2NDgsNDA2NTEsNDA2NjEsNDA2NzEsNDA2NzYsNDA2NzksNDA2ODQsNDA2ODUsNDA2ODYsNDA2'@; put 'ODgsNDA2ODksNDA2OTAsNDA2OTMsNDA2OTYsNDA3MDMsNDA3MDYsNDA3MDcsNDA3MTMsNDA3MTksNDA3MjAsNDA3MjEsNDA3MjIsNDA3MjQsNDA3MjYsNDA3MjcsNDA3MjksNDA3MzAsNDA3MzEsNDA3MzUsNDA3MzgsNDA3NDIsNDA3NDYsNDA3NDcsNDA3NTEsNDA3NTMsNDA3NTQsNDA3NTYs'@; put 'NDA3NTksNDA3NjEsNDA3NjIsNDA3NjQsNDA3NjUsNDA3NjcsNDA3NjksNDA3NzEsNDA3NzIsNDA3NzMsNDA3NzQsNDA3NzUsNDA3ODcsNDA3ODksNDA3OTAsNDA3OTEsNDA3OTIsNDA3OTQsNDA3OTcsNDA3OTgsNDA4MDgsNDA4MDksNDA4MTMsNDA4MTQsNDA4MTUsNDA4MTYsNDA4MTcsNDA4'@; put 'MTksNDA4MjEsNDA4MjYsNDA4MjksNDA4NDcsNDA4NDgsNDA4NDksNDA4NTAsNDA4NTIsNDA4NTQsNDA4NTUsNDA4NjIsNDA4NjUsNDA4NjYsNDA4NjcsNDA4NjksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51'@; put 'bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsXSxpYm04NjY6WzEwNDAsMTA0MSwxMDQyLDEwNDMsMTA0'@; put 'NCwxMDQ1LDEwNDYsMTA0NywxMDQ4LDEwNDksMTA1MCwxMDUxLDEwNTIsMTA1MywxMDU0LDEwNTUsMTA1NiwxMDU3LDEwNTgsMTA1OSwxMDYwLDEwNjEsMTA2MiwxMDYzLDEwNjQsMTA2NSwxMDY2LDEwNjcsMTA2OCwxMDY5LDEwNzAsMTA3MSwxMDcyLDEwNzMsMTA3NCwxMDc1LDEwNzYsMTA3'@; put 'NywxMDc4LDEwNzksMTA4MCwxMDgxLDEwODIsMTA4MywxMDg0LDEwODUsMTA4NiwxMDg3LDk2MTcsOTYxOCw5NjE5LDk0NzQsOTUwOCw5NTY5LDk1NzAsOTU1OCw5NTU3LDk1NzEsOTU1Myw5NTU5LDk1NjUsOTU2NCw5NTYzLDk0ODgsOTQ5Miw5NTI0LDk1MTYsOTUwMCw5NDcyLDk1MzIsOTU2'@; put 'Niw5NTY3LDk1NjIsOTU1Niw5NTc3LDk1NzQsOTU2OCw5NTUyLDk1ODAsOTU3NSw5NTc2LDk1NzIsOTU3Myw5NTYxLDk1NjAsOTU1NCw5NTU1LDk1NzksOTU3OCw5NDk2LDk0ODQsOTYwOCw5NjA0LDk2MTIsOTYxNiw5NjAwLDEwODgsMTA4OSwxMDkwLDEwOTEsMTA5MiwxMDkzLDEwOTQsMTA5'@; put 'NSwxMDk2LDEwOTcsMTA5OCwxMDk5LDExMDAsMTEwMSwxMTAyLDExMDMsMTAyNSwxMTA1LDEwMjgsMTEwOCwxMDMxLDExMTEsMTAzOCwxMTE4LDE3Niw4NzI5LDE4Myw4NzMwLDg0NzAsMTY0LDk2MzIsMTYwXSwiaXNvLTg4NTktMiI6WzEyOCwxMjksMTMwLDEzMSwxMzIsMTMzLDEzNCwxMzUs'@; put 'MTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsMTQ1LDE0NiwxNDcsMTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LDE1OCwxNTksMTYwLDI2MCw3MjgsMzIxLDE2NCwzMTcsMzQ2LDE2NywxNjgsMzUyLDM1MCwzNTYsMzc3LDE3MywzODEsMzc5LDE3Niwy'@; put 'NjEsNzMxLDMyMiwxODAsMzE4LDM0Nyw3MTEsMTg0LDM1MywzNTEsMzU3LDM3OCw3MzMsMzgyLDM4MCwzNDAsMTkzLDE5NCwyNTgsMTk2LDMxMywyNjIsMTk5LDI2OCwyMDEsMjgwLDIwMywyODIsMjA1LDIwNiwyNzAsMjcyLDMyMywzMjcsMjExLDIxMiwzMzYsMjE0LDIxNSwzNDQsMzY2LDIx'@; put 'OCwzNjgsMjIwLDIyMSwzNTQsMjIzLDM0MSwyMjUsMjI2LDI1OSwyMjgsMzE0LDI2MywyMzEsMjY5LDIzMywyODEsMjM1LDI4MywyMzcsMjM4LDI3MSwyNzMsMzI0LDMyOCwyNDMsMjQ0LDMzNywyNDYsMjQ3LDM0NSwzNjcsMjUwLDM2OSwyNTIsMjUzLDM1NSw3MjldLCJpc28tODg1OS0zIjpb'@; put 'MTI4LDEyOSwxMzAsMTMxLDEzMiwxMzMsMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUsMTQ2LDE0NywxNDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsMTU4LDE1OSwxNjAsMjk0LDcyOCwxNjMsMTY0LG51bGwsMjkyLDE2NywxNjgs'@; put 'MzA0LDM1MCwyODYsMzA4LDE3MyxudWxsLDM3OSwxNzYsMjk1LDE3OCwxNzksMTgwLDE4MSwyOTMsMTgzLDE4NCwzMDUsMzUxLDI4NywzMDksMTg5LG51bGwsMzgwLDE5MiwxOTMsMTk0LG51bGwsMTk2LDI2NiwyNjQsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsMjA1LDIwNiwyMDcsbnVsbCwy'@; put 'MDksMjEwLDIxMSwyMTIsMjg4LDIxNCwyMTUsMjg0LDIxNywyMTgsMjE5LDIyMCwzNjQsMzQ4LDIyMywyMjQsMjI1LDIyNixudWxsLDIyOCwyNjcsMjY1LDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIzNywyMzgsMjM5LG51bGwsMjQxLDI0MiwyNDMsMjQ0LDI4OSwyNDYsMjQ3LDI4NSwyNDks'@; put 'MjUwLDI1MSwyNTIsMzY1LDM0OSw3MjldLCJpc28tODg1OS00IjpbMTI4LDEyOSwxMzAsMTMxLDEzMiwxMzMsMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUsMTQ2LDE0NywxNDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsMTU4LDE1'@; put 'OSwxNjAsMjYwLDMxMiwzNDIsMTY0LDI5NiwzMTUsMTY3LDE2OCwzNTIsMjc0LDI5MCwzNTgsMTczLDM4MSwxNzUsMTc2LDI2MSw3MzEsMzQzLDE4MCwyOTcsMzE2LDcxMSwxODQsMzUzLDI3NSwyOTEsMzU5LDMzMCwzODIsMzMxLDI1NiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5OCwzMDIsMjY4'@; put 'LDIwMSwyODAsMjAzLDI3OCwyMDUsMjA2LDI5OCwyNzIsMzI1LDMzMiwzMTAsMjEyLDIxMywyMTQsMjE1LDIxNiwzNzAsMjE4LDIxOSwyMjAsMzYwLDM2MiwyMjMsMjU3LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDMwMywyNjksMjMzLDI4MSwyMzUsMjc5LDIzNywyMzgsMjk5LDI3MywzMjYs'@; put 'MzMzLDMxMSwyNDQsMjQ1LDI0NiwyNDcsMjQ4LDM3MSwyNTAsMjUxLDI1MiwzNjEsMzYzLDcyOV0sImlzby04ODU5LTUiOlsxMjgsMTI5LDEzMCwxMzEsMTMyLDEzMywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3LDE0OCwxNDksMTUwLDE1'@; put 'MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywxNTgsMTU5LDE2MCwxMDI1LDEwMjYsMTAyNywxMDI4LDEwMjksMTAzMCwxMDMxLDEwMzIsMTAzMywxMDM0LDEwMzUsMTAzNiwxNzMsMTAzOCwxMDM5LDEwNDAsMTA0MSwxMDQyLDEwNDMsMTA0NCwxMDQ1LDEwNDYsMTA0NywxMDQ4LDEwNDksMTA1'@; put 'MCwxMDUxLDEwNTIsMTA1MywxMDU0LDEwNTUsMTA1NiwxMDU3LDEwNTgsMTA1OSwxMDYwLDEwNjEsMTA2MiwxMDYzLDEwNjQsMTA2NSwxMDY2LDEwNjcsMTA2OCwxMDY5LDEwNzAsMTA3MSwxMDcyLDEwNzMsMTA3NCwxMDc1LDEwNzYsMTA3NywxMDc4LDEwNzksMTA4MCwxMDgxLDEwODIsMTA4'@; put 'MywxMDg0LDEwODUsMTA4NiwxMDg3LDEwODgsMTA4OSwxMDkwLDEwOTEsMTA5MiwxMDkzLDEwOTQsMTA5NSwxMDk2LDEwOTcsMTA5OCwxMDk5LDExMDAsMTEwMSwxMTAyLDExMDMsODQ3MCwxMTA1LDExMDYsMTEwNywxMTA4LDExMDksMTExMCwxMTExLDExMTIsMTExMywxMTE0LDExMTUsMTEx'@; put 'NiwxNjcsMTExOCwxMTE5XSwiaXNvLTg4NTktNiI6WzEyOCwxMjksMTMwLDEzMSwxMzIsMTMzLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsMTQ1LDE0NiwxNDcsMTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LDE1OCwxNTksMTYwLG51'@; put 'bGwsbnVsbCxudWxsLDE2NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDE1NDgsMTczLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMTU2MyxudWxsLG51bGwsbnVsbCwxNTY3LG51bGwsMTU2OSwxNTcw'@; put 'LDE1NzEsMTU3MiwxNTczLDE1NzQsMTU3NSwxNTc2LDE1NzcsMTU3OCwxNTc5LDE1ODAsMTU4MSwxNTgyLDE1ODMsMTU4NCwxNTg1LDE1ODYsMTU4NywxNTg4LDE1ODksMTU5MCwxNTkxLDE1OTIsMTU5MywxNTk0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxNjAwLDE2MDEsMTYwMiwxNjAz'@; put 'LDE2MDQsMTYwNSwxNjA2LDE2MDcsMTYwOCwxNjA5LDE2MTAsMTYxMSwxNjEyLDE2MTMsMTYxNCwxNjE1LDE2MTYsMTYxNywxNjE4LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGxdLCJpc28tODg1OS03IjpbMTI4LDEyOSwx'@; put 'MzAsMTMxLDEzMiwxMzMsMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUsMTQ2LDE0NywxNDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsMTU4LDE1OSwxNjAsODIxNiw4MjE3LDE2Myw4MzY0LDgzNjcsMTY2LDE2NywxNjgsMTY5LDg5'@; put 'MCwxNzEsMTcyLDE3MyxudWxsLDgyMTMsMTc2LDE3NywxNzgsMTc5LDkwMCw5MDEsOTAyLDE4Myw5MDQsOTA1LDkwNiwxODcsOTA4LDE4OSw5MTAsOTExLDkxMiw5MTMsOTE0LDkxNSw5MTYsOTE3LDkxOCw5MTksOTIwLDkyMSw5MjIsOTIzLDkyNCw5MjUsOTI2LDkyNyw5MjgsOTI5LG51bGws'@; put 'OTMxLDkzMiw5MzMsOTM0LDkzNSw5MzYsOTM3LDkzOCw5MzksOTQwLDk0MSw5NDIsOTQzLDk0NCw5NDUsOTQ2LDk0Nyw5NDgsOTQ5LDk1MCw5NTEsOTUyLDk1Myw5NTQsOTU1LDk1Niw5NTcsOTU4LDk1OSw5NjAsOTYxLDk2Miw5NjMsOTY0LDk2NSw5NjYsOTY3LDk2OCw5NjksOTcwLDk3MSw5'@; put 'NzIsOTczLDk3NCxudWxsXSwiaXNvLTg4NTktOCI6WzEyOCwxMjksMTMwLDEzMSwxMzIsMTMzLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsMTQ1LDE0NiwxNDcsMTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LDE1OCwxNTksMTYwLG51'@; put 'bGwsMTYyLDE2MywxNjQsMTY1LDE2NiwxNjcsMTY4LDE2OSwyMTUsMTcxLDE3MiwxNzMsMTc0LDE3NSwxNzYsMTc3LDE3OCwxNzksMTgwLDE4MSwxODIsMTgzLDE4NCwxODUsMjQ3LDE4NywxODgsMTg5LDE5MCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu'@; put 'dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsODIxNSwxNDg4LDE0ODksMTQ5MCwxNDkxLDE0OTIsMTQ5MywxNDk0LDE0OTUsMTQ5Niwx'@; put 'NDk3LDE0OTgsMTQ5OSwxNTAwLDE1MDEsMTUwMiwxNTAzLDE1MDQsMTUwNSwxNTA2LDE1MDcsMTUwOCwxNTA5LDE1MTAsMTUxMSwxNTEyLDE1MTMsMTUxNCxudWxsLG51bGwsODIwNiw4MjA3LG51bGxdLCJpc28tODg1OS0xMCI6WzEyOCwxMjksMTMwLDEzMSwxMzIsMTMzLDEzNCwxMzUsMTM2'@; put 'LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsMTQ1LDE0NiwxNDcsMTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LDE1OCwxNTksMTYwLDI2MCwyNzQsMjkwLDI5OCwyOTYsMzEwLDE2NywzMTUsMjcyLDM1MiwzNTgsMzgxLDE3MywzNjIsMzMwLDE3NiwyNjEs'@; put 'Mjc1LDI5MSwyOTksMjk3LDMxMSwxODMsMzE2LDI3MywzNTMsMzU5LDM4Miw4MjEzLDM2MywzMzEsMjU2LDE5MywxOTQsMTk1LDE5NiwxOTcsMTk4LDMwMiwyNjgsMjAxLDI4MCwyMDMsMjc4LDIwNSwyMDYsMjA3LDIwOCwzMjUsMzMyLDIxMSwyMTIsMjEzLDIxNCwzNjAsMjE2LDM3MCwyMTgs'@; put 'MjE5LDIyMCwyMjEsMjIyLDIyMywyNTcsMjI1LDIyNiwyMjcsMjI4LDIyOSwyMzAsMzAzLDI2OSwyMzMsMjgxLDIzNSwyNzksMjM3LDIzOCwyMzksMjQwLDMyNiwzMzMsMjQzLDI0NCwyNDUsMjQ2LDM2MSwyNDgsMzcxLDI1MCwyNTEsMjUyLDI1MywyNTQsMzEyXSwiaXNvLTg4NTktMTMiOlsx'@; put 'MjgsMTI5LDEzMCwxMzEsMTMyLDEzMywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3LDE0OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywxNTgsMTU5LDE2MCw4MjIxLDE2MiwxNjMsMTY0LDgyMjIsMTY2LDE2NywyMTYs'@; put 'MTY5LDM0MiwxNzEsMTcyLDE3MywxNzQsMTk4LDE3NiwxNzcsMTc4LDE3OSw4MjIwLDE4MSwxODIsMTgzLDI0OCwxODUsMzQzLDE4NywxODgsMTg5LDE5MCwyMzAsMjYwLDMwMiwyNTYsMjYyLDE5NiwxOTcsMjgwLDI3NCwyNjgsMjAxLDM3NywyNzgsMjkwLDMxMCwyOTgsMzE1LDM1MiwzMjMs'@; put 'MzI1LDIxMSwzMzIsMjEzLDIxNCwyMTUsMzcwLDMyMSwzNDYsMzYyLDIyMCwzNzksMzgxLDIyMywyNjEsMzAzLDI1NywyNjMsMjI4LDIyOSwyODEsMjc1LDI2OSwyMzMsMzc4LDI3OSwyOTEsMzExLDI5OSwzMTYsMzUzLDMyNCwzMjYsMjQzLDMzMywyNDUsMjQ2LDI0NywzNzEsMzIyLDM0Nywz'@; put 'NjMsMjUyLDM4MCwzODIsODIxN10sImlzby04ODU5LTE0IjpbMTI4LDEyOSwxMzAsMTMxLDEzMiwxMzMsMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUsMTQ2LDE0NywxNDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsMTU4LDE1OSwx'@; put 'NjAsNzY4Miw3NjgzLDE2MywyNjYsMjY3LDc2OTAsMTY3LDc4MDgsMTY5LDc4MTAsNzY5MSw3OTIyLDE3MywxNzQsMzc2LDc3MTAsNzcxMSwyODgsMjg5LDc3NDQsNzc0NSwxODIsNzc2Niw3ODA5LDc3NjcsNzgxMSw3Nzc2LDc5MjMsNzgxMiw3ODEzLDc3NzcsMTkyLDE5MywxOTQsMTk1LDE5'@; put 'NiwxOTcsMTk4LDE5OSwyMDAsMjAxLDIwMiwyMDMsMjA0LDIwNSwyMDYsMjA3LDM3MiwyMDksMjEwLDIxMSwyMTIsMjEzLDIxNCw3Nzg2LDIxNiwyMTcsMjE4LDIxOSwyMjAsMjIxLDM3NCwyMjMsMjI0LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIz'@; put 'NywyMzgsMjM5LDM3MywyNDEsMjQyLDI0MywyNDQsMjQ1LDI0Niw3Nzg3LDI0OCwyNDksMjUwLDI1MSwyNTIsMjUzLDM3NSwyNTVdLCJpc28tODg1OS0xNSI6WzEyOCwxMjksMTMwLDEzMSwxMzIsMTMzLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsMTQ1LDE0'@; put 'NiwxNDcsMTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LDE1OCwxNTksMTYwLDE2MSwxNjIsMTYzLDgzNjQsMTY1LDM1MiwxNjcsMzUzLDE2OSwxNzAsMTcxLDE3MiwxNzMsMTc0LDE3NSwxNzYsMTc3LDE3OCwxNzksMzgxLDE4MSwxODIsMTgzLDM4MiwxODUsMTg2LDE4'@; put 'NywzMzgsMzM5LDM3NiwxOTEsMTkyLDE5MywxOTQsMTk1LDE5NiwxOTcsMTk4LDE5OSwyMDAsMjAxLDIwMiwyMDMsMjA0LDIwNSwyMDYsMjA3LDIwOCwyMDksMjEwLDIxMSwyMTIsMjEzLDIxNCwyMTUsMjE2LDIxNywyMTgsMjE5LDIyMCwyMjEsMjIyLDIyMywyMjQsMjI1LDIyNiwyMjcsMjI4'@; put 'LDIyOSwyMzAsMjMxLDIzMiwyMzMsMjM0LDIzNSwyMzYsMjM3LDIzOCwyMzksMjQwLDI0MSwyNDIsMjQzLDI0NCwyNDUsMjQ2LDI0NywyNDgsMjQ5LDI1MCwyNTEsMjUyLDI1MywyNTQsMjU1XSwiaXNvLTg4NTktMTYiOlsxMjgsMTI5LDEzMCwxMzEsMTMyLDEzMywxMzQsMTM1LDEzNiwxMzcs'@; put 'MTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3LDE0OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywxNTgsMTU5LDE2MCwyNjAsMjYxLDMyMSw4MzY0LDgyMjIsMzUyLDE2NywzNTMsMTY5LDUzNiwxNzEsMzc3LDE3MywzNzgsMzc5LDE3NiwxNzcsMjY4'@; put 'LDMyMiwzODEsODIyMSwxODIsMTgzLDM4MiwyNjksNTM3LDE4NywzMzgsMzM5LDM3NiwzODAsMTkyLDE5MywxOTQsMjU4LDE5NiwyNjIsMTk4LDE5OSwyMDAsMjAxLDIwMiwyMDMsMjA0LDIwNSwyMDYsMjA3LDI3MiwzMjMsMjEwLDIxMSwyMTIsMzM2LDIxNCwzNDYsMzY4LDIxNywyMTgsMjE5'@; put 'LDIyMCwyODAsNTM4LDIyMywyMjQsMjI1LDIyNiwyNTksMjI4LDI2MywyMzAsMjMxLDIzMiwyMzMsMjM0LDIzNSwyMzYsMjM3LDIzOCwyMzksMjczLDMyNCwyNDIsMjQzLDI0NCwzMzcsMjQ2LDM0NywzNjksMjQ5LDI1MCwyNTEsMjUyLDI4MSw1MzksMjU1XSwia29pOC1yIjpbOTQ3Miw5NDc0'@; put 'LDk0ODQsOTQ4OCw5NDkyLDk0OTYsOTUwMCw5NTA4LDk1MTYsOTUyNCw5NTMyLDk2MDAsOTYwNCw5NjA4LDk2MTIsOTYxNiw5NjE3LDk2MTgsOTYxOSw4OTkyLDk2MzIsODcyOSw4NzMwLDg3NzYsODgwNCw4ODA1LDE2MCw4OTkzLDE3NiwxNzgsMTgzLDI0Nyw5NTUyLDk1NTMsOTU1NCwxMTA1'@; put 'LDk1NTUsOTU1Niw5NTU3LDk1NTgsOTU1OSw5NTYwLDk1NjEsOTU2Miw5NTYzLDk1NjQsOTU2NSw5NTY2LDk1NjcsOTU2OCw5NTY5LDEwMjUsOTU3MCw5NTcxLDk1NzIsOTU3Myw5NTc0LDk1NzUsOTU3Niw5NTc3LDk1NzgsOTU3OSw5NTgwLDE2OSwxMTAyLDEwNzIsMTA3MywxMDk0LDEwNzYs'@; put 'MTA3NywxMDkyLDEwNzUsMTA5MywxMDgwLDEwODEsMTA4MiwxMDgzLDEwODQsMTA4NSwxMDg2LDEwODcsMTEwMywxMDg4LDEwODksMTA5MCwxMDkxLDEwNzgsMTA3NCwxMTAwLDEwOTksMTA3OSwxMDk2LDExMDEsMTA5NywxMDk1LDEwOTgsMTA3MCwxMDQwLDEwNDEsMTA2MiwxMDQ0LDEwNDUs'@; put 'MTA2MCwxMDQzLDEwNjEsMTA0OCwxMDQ5LDEwNTAsMTA1MSwxMDUyLDEwNTMsMTA1NCwxMDU1LDEwNzEsMTA1NiwxMDU3LDEwNTgsMTA1OSwxMDQ2LDEwNDIsMTA2OCwxMDY3LDEwNDcsMTA2NCwxMDY5LDEwNjUsMTA2MywxMDY2XSwia29pOC11IjpbOTQ3Miw5NDc0LDk0ODQsOTQ4OCw5NDky'@; put 'LDk0OTYsOTUwMCw5NTA4LDk1MTYsOTUyNCw5NTMyLDk2MDAsOTYwNCw5NjA4LDk2MTIsOTYxNiw5NjE3LDk2MTgsOTYxOSw4OTkyLDk2MzIsODcyOSw4NzMwLDg3NzYsODgwNCw4ODA1LDE2MCw4OTkzLDE3NiwxNzgsMTgzLDI0Nyw5NTUyLDk1NTMsOTU1NCwxMTA1LDExMDgsOTU1NiwxMTEw'@; put 'LDExMTEsOTU1OSw5NTYwLDk1NjEsOTU2Miw5NTYzLDExNjksMTExOCw5NTY2LDk1NjcsOTU2OCw5NTY5LDEwMjUsMTAyOCw5NTcxLDEwMzAsMTAzMSw5NTc0LDk1NzUsOTU3Niw5NTc3LDk1NzgsMTE2OCwxMDM4LDE2OSwxMTAyLDEwNzIsMTA3MywxMDk0LDEwNzYsMTA3NywxMDkyLDEwNzUs'@; put 'MTA5MywxMDgwLDEwODEsMTA4MiwxMDgzLDEwODQsMTA4NSwxMDg2LDEwODcsMTEwMywxMDg4LDEwODksMTA5MCwxMDkxLDEwNzgsMTA3NCwxMTAwLDEwOTksMTA3OSwxMDk2LDExMDEsMTA5NywxMDk1LDEwOTgsMTA3MCwxMDQwLDEwNDEsMTA2MiwxMDQ0LDEwNDUsMTA2MCwxMDQzLDEwNjEs'@; put 'MTA0OCwxMDQ5LDEwNTAsMTA1MSwxMDUyLDEwNTMsMTA1NCwxMDU1LDEwNzEsMTA1NiwxMDU3LDEwNTgsMTA1OSwxMDQ2LDEwNDIsMTA2OCwxMDY3LDEwNDcsMTA2NCwxMDY5LDEwNjUsMTA2MywxMDY2XSxtYWNpbnRvc2g6WzE5NiwxOTcsMTk5LDIwMSwyMDksMjE0LDIyMCwyMjUsMjI0LDIy'@; put 'NiwyMjgsMjI3LDIyOSwyMzEsMjMzLDIzMiwyMzQsMjM1LDIzNywyMzYsMjM4LDIzOSwyNDEsMjQzLDI0MiwyNDQsMjQ2LDI0NSwyNTAsMjQ5LDI1MSwyNTIsODIyNCwxNzYsMTYyLDE2MywxNjcsODIyNiwxODIsMjIzLDE3NCwxNjksODQ4MiwxODAsMTY4LDg4MDAsMTk4LDIxNiw4NzM0LDE3'@; put 'Nyw4ODA0LDg4MDUsMTY1LDE4MSw4NzA2LDg3MjEsODcxOSw5NjAsODc0NywxNzAsMTg2LDkzNywyMzAsMjQ4LDE5MSwxNjEsMTcyLDg3MzAsNDAyLDg3NzYsODcxMCwxNzEsMTg3LDgyMzAsMTYwLDE5MiwxOTUsMjEzLDMzOCwzMzksODIxMSw4MjEyLDgyMjAsODIyMSw4MjE2LDgyMTcsMjQ3'@; put 'LDk2NzQsMjU1LDM3Niw4MjYwLDgzNjQsODI0OSw4MjUwLDY0MjU3LDY0MjU4LDgyMjUsMTgzLDgyMTgsODIyMiw4MjQwLDE5NCwyMDIsMTkzLDIwMywyMDAsMjA1LDIwNiwyMDcsMjA0LDIxMSwyMTIsNjM3NDMsMjEwLDIxOCwyMTksMjE3LDMwNSw3MTAsNzMyLDE3NSw3MjgsNzI5LDczMCwx'@; put 'ODQsNzMzLDczMSw3MTFdLCJ3aW5kb3dzLTg3NCI6WzgzNjQsMTI5LDEzMCwxMzEsMTMyLDgyMzAsMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCw4MjE2LDgyMTcsODIyMCw4MjIxLDgyMjYsODIxMSw4MjEyLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LDE1OCwx'@; put 'NTksMTYwLDM1ODUsMzU4NiwzNTg3LDM1ODgsMzU4OSwzNTkwLDM1OTEsMzU5MiwzNTkzLDM1OTQsMzU5NSwzNTk2LDM1OTcsMzU5OCwzNTk5LDM2MDAsMzYwMSwzNjAyLDM2MDMsMzYwNCwzNjA1LDM2MDYsMzYwNywzNjA4LDM2MDksMzYxMCwzNjExLDM2MTIsMzYxMywzNjE0LDM2MTUsMzYx'@; put 'NiwzNjE3LDM2MTgsMzYxOSwzNjIwLDM2MjEsMzYyMiwzNjIzLDM2MjQsMzYyNSwzNjI2LDM2MjcsMzYyOCwzNjI5LDM2MzAsMzYzMSwzNjMyLDM2MzMsMzYzNCwzNjM1LDM2MzYsMzYzNywzNjM4LDM2MzksMzY0MCwzNjQxLDM2NDIsbnVsbCxudWxsLG51bGwsbnVsbCwzNjQ3LDM2NDgsMzY0'@; put 'OSwzNjUwLDM2NTEsMzY1MiwzNjUzLDM2NTQsMzY1NSwzNjU2LDM2NTcsMzY1OCwzNjU5LDM2NjAsMzY2MSwzNjYyLDM2NjMsMzY2NCwzNjY1LDM2NjYsMzY2NywzNjY4LDM2NjksMzY3MCwzNjcxLDM2NzIsMzY3MywzNjc0LDM2NzUsbnVsbCxudWxsLG51bGwsbnVsbF0sIndpbmRvd3MtMTI1'@; put 'MCI6WzgzNjQsMTI5LDgyMTgsMTMxLDgyMjIsODIzMCw4MjI0LDgyMjUsMTM2LDgyNDAsMzUyLDgyNDksMzQ2LDM1NiwzODEsMzc3LDE0NCw4MjE2LDgyMTcsODIyMCw4MjIxLDgyMjYsODIxMSw4MjEyLDE1Miw4NDgyLDM1Myw4MjUwLDM0NywzNTcsMzgyLDM3OCwxNjAsNzExLDcyOCwzMjEs'@; put 'MTY0LDI2MCwxNjYsMTY3LDE2OCwxNjksMzUwLDE3MSwxNzIsMTczLDE3NCwzNzksMTc2LDE3Nyw3MzEsMzIyLDE4MCwxODEsMTgyLDE4MywxODQsMjYxLDM1MSwxODcsMzE3LDczMywzMTgsMzgwLDM0MCwxOTMsMTk0LDI1OCwxOTYsMzEzLDI2MiwxOTksMjY4LDIwMSwyODAsMjAzLDI4Miwy'@; put 'MDUsMjA2LDI3MCwyNzIsMzIzLDMyNywyMTEsMjEyLDMzNiwyMTQsMjE1LDM0NCwzNjYsMjE4LDM2OCwyMjAsMjIxLDM1NCwyMjMsMzQxLDIyNSwyMjYsMjU5LDIyOCwzMTQsMjYzLDIzMSwyNjksMjMzLDI4MSwyMzUsMjgzLDIzNywyMzgsMjcxLDI3MywzMjQsMzI4LDI0MywyNDQsMzM3LDI0'@; put 'NiwyNDcsMzQ1LDM2NywyNTAsMzY5LDI1MiwyNTMsMzU1LDcyOV0sIndpbmRvd3MtMTI1MSI6WzEwMjYsMTAyNyw4MjE4LDExMDcsODIyMiw4MjMwLDgyMjQsODIyNSw4MzY0LDgyNDAsMTAzMyw4MjQ5LDEwMzQsMTAzNiwxMDM1LDEwMzksMTEwNiw4MjE2LDgyMTcsODIyMCw4MjIxLDgyMjYs'@; put 'ODIxMSw4MjEyLDE1Miw4NDgyLDExMTMsODI1MCwxMTE0LDExMTYsMTExNSwxMTE5LDE2MCwxMDM4LDExMTgsMTAzMiwxNjQsMTE2OCwxNjYsMTY3LDEwMjUsMTY5LDEwMjgsMTcxLDE3MiwxNzMsMTc0LDEwMzEsMTc2LDE3NywxMDMwLDExMTAsMTE2OSwxODEsMTgyLDE4MywxMTA1LDg0NzAs'@; put 'MTEwOCwxODcsMTExMiwxMDI5LDExMDksMTExMSwxMDQwLDEwNDEsMTA0MiwxMDQzLDEwNDQsMTA0NSwxMDQ2LDEwNDcsMTA0OCwxMDQ5LDEwNTAsMTA1MSwxMDUyLDEwNTMsMTA1NCwxMDU1LDEwNTYsMTA1NywxMDU4LDEwNTksMTA2MCwxMDYxLDEwNjIsMTA2MywxMDY0LDEwNjUsMTA2Niwx'@; put 'MDY3LDEwNjgsMTA2OSwxMDcwLDEwNzEsMTA3MiwxMDczLDEwNzQsMTA3NSwxMDc2LDEwNzcsMTA3OCwxMDc5LDEwODAsMTA4MSwxMDgyLDEwODMsMTA4NCwxMDg1LDEwODYsMTA4NywxMDg4LDEwODksMTA5MCwxMDkxLDEwOTIsMTA5MywxMDk0LDEwOTUsMTA5NiwxMDk3LDEwOTgsMTA5OSwx'@; put 'MTAwLDExMDEsMTEwMiwxMTAzXSwid2luZG93cy0xMjUyIjpbODM2NCwxMjksODIxOCw0MDIsODIyMiw4MjMwLDgyMjQsODIyNSw3MTAsODI0MCwzNTIsODI0OSwzMzgsMTQxLDM4MSwxNDMsMTQ0LDgyMTYsODIxNyw4MjIwLDgyMjEsODIyNiw4MjExLDgyMTIsNzMyLDg0ODIsMzUzLDgyNTAs'@; put 'MzM5LDE1NywzODIsMzc2LDE2MCwxNjEsMTYyLDE2MywxNjQsMTY1LDE2NiwxNjcsMTY4LDE2OSwxNzAsMTcxLDE3MiwxNzMsMTc0LDE3NSwxNzYsMTc3LDE3OCwxNzksMTgwLDE4MSwxODIsMTgzLDE4NCwxODUsMTg2LDE4NywxODgsMTg5LDE5MCwxOTEsMTkyLDE5MywxOTQsMTk1LDE5Niwx'@; put 'OTcsMTk4LDE5OSwyMDAsMjAxLDIwMiwyMDMsMjA0LDIwNSwyMDYsMjA3LDIwOCwyMDksMjEwLDIxMSwyMTIsMjEzLDIxNCwyMTUsMjE2LDIxNywyMTgsMjE5LDIyMCwyMjEsMjIyLDIyMywyMjQsMjI1LDIyNiwyMjcsMjI4LDIyOSwyMzAsMjMxLDIzMiwyMzMsMjM0LDIzNSwyMzYsMjM3LDIz'@; put 'OCwyMzksMjQwLDI0MSwyNDIsMjQzLDI0NCwyNDUsMjQ2LDI0NywyNDgsMjQ5LDI1MCwyNTEsMjUyLDI1MywyNTQsMjU1XSwid2luZG93cy0xMjUzIjpbODM2NCwxMjksODIxOCw0MDIsODIyMiw4MjMwLDgyMjQsODIyNSwxMzYsODI0MCwxMzgsODI0OSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDgy'@; put 'MTYsODIxNyw4MjIwLDgyMjEsODIyNiw4MjExLDgyMTIsMTUyLDg0ODIsMTU0LDgyNTAsMTU2LDE1NywxNTgsMTU5LDE2MCw5MDEsOTAyLDE2MywxNjQsMTY1LDE2NiwxNjcsMTY4LDE2OSxudWxsLDE3MSwxNzIsMTczLDE3NCw4MjEzLDE3NiwxNzcsMTc4LDE3OSw5MDAsMTgxLDE4MiwxODMs'@; put 'OTA0LDkwNSw5MDYsMTg3LDkwOCwxODksOTEwLDkxMSw5MTIsOTEzLDkxNCw5MTUsOTE2LDkxNyw5MTgsOTE5LDkyMCw5MjEsOTIyLDkyMyw5MjQsOTI1LDkyNiw5MjcsOTI4LDkyOSxudWxsLDkzMSw5MzIsOTMzLDkzNCw5MzUsOTM2LDkzNyw5MzgsOTM5LDk0MCw5NDEsOTQyLDk0Myw5NDQs'@; put 'OTQ1LDk0Niw5NDcsOTQ4LDk0OSw5NTAsOTUxLDk1Miw5NTMsOTU0LDk1NSw5NTYsOTU3LDk1OCw5NTksOTYwLDk2MSw5NjIsOTYzLDk2NCw5NjUsOTY2LDk2Nyw5NjgsOTY5LDk3MCw5NzEsOTcyLDk3Myw5NzQsbnVsbF0sIndpbmRvd3MtMTI1NCI6WzgzNjQsMTI5LDgyMTgsNDAyLDgyMjIs'@; put 'ODIzMCw4MjI0LDgyMjUsNzEwLDgyNDAsMzUyLDgyNDksMzM4LDE0MSwxNDIsMTQzLDE0NCw4MjE2LDgyMTcsODIyMCw4MjIxLDgyMjYsODIxMSw4MjEyLDczMiw4NDgyLDM1Myw4MjUwLDMzOSwxNTcsMTU4LDM3NiwxNjAsMTYxLDE2MiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcw'@; put 'LDE3MSwxNzIsMTczLDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1LDE4NiwxODcsMTg4LDE4OSwxOTAsMTkxLDE5MiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywyODYsMjA5LDIxMCwyMTEs'@; put 'MjEyLDIxMywyMTQsMjE1LDIxNiwyMTcsMjE4LDIxOSwyMjAsMzA0LDM1MCwyMjMsMjI0LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIzNywyMzgsMjM5LDI4NywyNDEsMjQyLDI0MywyNDQsMjQ1LDI0NiwyNDcsMjQ4LDI0OSwyNTAsMjUxLDI1Miwz'@; put 'MDUsMzUxLDI1NV0sIndpbmRvd3MtMTI1NSI6WzgzNjQsMTI5LDgyMTgsNDAyLDgyMjIsODIzMCw4MjI0LDgyMjUsNzEwLDgyNDAsMTM4LDgyNDksMTQwLDE0MSwxNDIsMTQzLDE0NCw4MjE2LDgyMTcsODIyMCw4MjIxLDgyMjYsODIxMSw4MjEyLDczMiw4NDgyLDE1NCw4MjUwLDE1NiwxNTcs'@; put 'MTU4LDE1OSwxNjAsMTYxLDE2MiwxNjMsODM2MiwxNjUsMTY2LDE2NywxNjgsMTY5LDIxNSwxNzEsMTcyLDE3MywxNzQsMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0LDE4NSwyNDcsMTg3LDE4OCwxODksMTkwLDE5MSwxNDU2LDE0NTcsMTQ1OCwxNDU5LDE0NjAsMTQ2'@; put 'MSwxNDYyLDE0NjMsMTQ2NCwxNDY1LDE0NjYsMTQ2NywxNDY4LDE0NjksMTQ3MCwxNDcxLDE0NzIsMTQ3MywxNDc0LDE0NzUsMTUyMCwxNTIxLDE1MjIsMTUyMywxNTI0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMTQ4OCwxNDg5LDE0OTAsMTQ5MSwxNDkyLDE0OTMsMTQ5'@; put 'NCwxNDk1LDE0OTYsMTQ5NywxNDk4LDE0OTksMTUwMCwxNTAxLDE1MDIsMTUwMywxNTA0LDE1MDUsMTUwNiwxNTA3LDE1MDgsMTUwOSwxNTEwLDE1MTEsMTUxMiwxNTEzLDE1MTQsbnVsbCxudWxsLDgyMDYsODIwNyxudWxsXSwid2luZG93cy0xMjU2IjpbODM2NCwxNjYyLDgyMTgsNDAyLDgy'@; put 'MjIsODIzMCw4MjI0LDgyMjUsNzEwLDgyNDAsMTY1Nyw4MjQ5LDMzOCwxNjcwLDE2ODgsMTY3MiwxNzExLDgyMTYsODIxNyw4MjIwLDgyMjEsODIyNiw4MjExLDgyMTIsMTcwNSw4NDgyLDE2ODEsODI1MCwzMzksODIwNCw4MjA1LDE3MjIsMTYwLDE1NDgsMTYyLDE2MywxNjQsMTY1LDE2Niwx'@; put 'NjcsMTY4LDE2OSwxNzI2LDE3MSwxNzIsMTczLDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1LDE1NjMsMTg3LDE4OCwxODksMTkwLDE1NjcsMTcyOSwxNTY5LDE1NzAsMTU3MSwxNTcyLDE1NzMsMTU3NCwxNTc1LDE1NzYsMTU3NywxNTc4LDE1NzksMTU4'@; put 'MCwxNTgxLDE1ODIsMTU4MywxNTg0LDE1ODUsMTU4NiwxNTg3LDE1ODgsMTU4OSwxNTkwLDIxNSwxNTkxLDE1OTIsMTU5MywxNTk0LDE2MDAsMTYwMSwxNjAyLDE2MDMsMjI0LDE2MDQsMjI2LDE2MDUsMTYwNiwxNjA3LDE2MDgsMjMxLDIzMiwyMzMsMjM0LDIzNSwxNjA5LDE2MTAsMjM4LDIz'@; put 'OSwxNjExLDE2MTIsMTYxMywxNjE0LDI0NCwxNjE1LDE2MTYsMjQ3LDE2MTcsMjQ5LDE2MTgsMjUxLDI1Miw4MjA2LDgyMDcsMTc0Nl0sIndpbmRvd3MtMTI1NyI6WzgzNjQsMTI5LDgyMTgsMTMxLDgyMjIsODIzMCw4MjI0LDgyMjUsMTM2LDgyNDAsMTM4LDgyNDksMTQwLDE2OCw3MTEsMTg0'@; put 'LDE0NCw4MjE2LDgyMTcsODIyMCw4MjIxLDgyMjYsODIxMSw4MjEyLDE1Miw4NDgyLDE1NCw4MjUwLDE1NiwxNzUsNzMxLDE1OSwxNjAsbnVsbCwxNjIsMTYzLDE2NCxudWxsLDE2NiwxNjcsMjE2LDE2OSwzNDIsMTcxLDE3MiwxNzMsMTc0LDE5OCwxNzYsMTc3LDE3OCwxNzksMTgwLDE4MSwx'@; put 'ODIsMTgzLDI0OCwxODUsMzQzLDE4NywxODgsMTg5LDE5MCwyMzAsMjYwLDMwMiwyNTYsMjYyLDE5NiwxOTcsMjgwLDI3NCwyNjgsMjAxLDM3NywyNzgsMjkwLDMxMCwyOTgsMzE1LDM1MiwzMjMsMzI1LDIxMSwzMzIsMjEzLDIxNCwyMTUsMzcwLDMyMSwzNDYsMzYyLDIyMCwzNzksMzgxLDIy'@; put 'MywyNjEsMzAzLDI1NywyNjMsMjI4LDIyOSwyODEsMjc1LDI2OSwyMzMsMzc4LDI3OSwyOTEsMzExLDI5OSwzMTYsMzUzLDMyNCwzMjYsMjQzLDMzMywyNDUsMjQ2LDI0NywzNzEsMzIyLDM0NywzNjMsMjUyLDM4MCwzODIsNzI5XSwid2luZG93cy0xMjU4IjpbODM2NCwxMjksODIxOCw0MDIs'@; put 'ODIyMiw4MjMwLDgyMjQsODIyNSw3MTAsODI0MCwxMzgsODI0OSwzMzgsMTQxLDE0MiwxNDMsMTQ0LDgyMTYsODIxNyw4MjIwLDgyMjEsODIyNiw4MjExLDgyMTIsNzMyLDg0ODIsMTU0LDgyNTAsMzM5LDE1NywxNTgsMzc2LDE2MCwxNjEsMTYyLDE2MywxNjQsMTY1LDE2NiwxNjcsMTY4LDE2'@; put 'OSwxNzAsMTcxLDE3MiwxNzMsMTc0LDE3NSwxNzYsMTc3LDE3OCwxNzksMTgwLDE4MSwxODIsMTgzLDE4NCwxODUsMTg2LDE4NywxODgsMTg5LDE5MCwxOTEsMTkyLDE5MywxOTQsMjU4LDE5NiwxOTcsMTk4LDE5OSwyMDAsMjAxLDIwMiwyMDMsNzY4LDIwNSwyMDYsMjA3LDI3MiwyMDksNzc3'@; put 'LDIxMSwyMTIsNDE2LDIxNCwyMTUsMjE2LDIxNywyMTgsMjE5LDIyMCw0MzEsNzcxLDIyMywyMjQsMjI1LDIyNiwyNTksMjI4LDIyOSwyMzAsMjMxLDIzMiwyMzMsMjM0LDIzNSw3NjksMjM3LDIzOCwyMzksMjczLDI0MSw4MDMsMjQzLDI0NCw0MTcsMjQ2LDI0NywyNDgsMjQ5LDI1MCwyNTEs'@; put 'MjUyLDQzMiw4MzYzLDI1NV0sIngtbWFjLWN5cmlsbGljIjpbMTA0MCwxMDQxLDEwNDIsMTA0MywxMDQ0LDEwNDUsMTA0NiwxMDQ3LDEwNDgsMTA0OSwxMDUwLDEwNTEsMTA1MiwxMDUzLDEwNTQsMTA1NSwxMDU2LDEwNTcsMTA1OCwxMDU5LDEwNjAsMTA2MSwxMDYyLDEwNjMsMTA2NCwxMDY1'@; put 'LDEwNjYsMTA2NywxMDY4LDEwNjksMTA3MCwxMDcxLDgyMjQsMTc2LDExNjgsMTYzLDE2Nyw4MjI2LDE4MiwxMDMwLDE3NCwxNjksODQ4MiwxMDI2LDExMDYsODgwMCwxMDI3LDExMDcsODczNCwxNzcsODgwNCw4ODA1LDExMTAsMTgxLDExNjksMTAzMiwxMDI4LDExMDgsMTAzMSwxMTExLDEw'@; put 'MzMsMTExMywxMDM0LDExMTQsMTExMiwxMDI5LDE3Miw4NzMwLDQwMiw4Nzc2LDg3MTAsMTcxLDE4Nyw4MjMwLDE2MCwxMDM1LDExMTUsMTAzNiwxMTE2LDExMDksODIxMSw4MjEyLDgyMjAsODIyMSw4MjE2LDgyMTcsMjQ3LDgyMjIsMTAzOCwxMTE4LDEwMzksMTExOSw4NDcwLDEwMjUsMTEw'@; put 'NSwxMTAzLDEwNzIsMTA3MywxMDc0LDEwNzUsMTA3NiwxMDc3LDEwNzgsMTA3OSwxMDgwLDEwODEsMTA4MiwxMDgzLDEwODQsMTA4NSwxMDg2LDEwODcsMTA4OCwxMDg5LDEwOTAsMTA5MSwxMDkyLDEwOTMsMTA5NCwxMDk1LDEwOTYsMTA5NywxMDk4LDEwOTksMTEwMCwxMTAxLDExMDIsODM2'@; put 'NF19fSh0aGlzfHx7fSl9LDY0MzE4OmZ1bmN0aW9uKGNlLEosYil7IWZ1bmN0aW9uKEQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBfKGtlLF90LG50KXtyZXR1cm4gX3Q8PWtlJiZrZTw9bnR9Y2UuZXhwb3J0cyYmIURbImVuY29kaW5nLWluZGV4ZXMiXSYmKERbImVuY29kaW5nLWluZGV4ZXMi'@; put 'XT1iKDY3OTUxKVsiZW5jb2RpbmctaW5kZXhlcyJdKTt2YXIgTj1NYXRoLmZsb29yO2Z1bmN0aW9uIHcoa2Upe2lmKHZvaWQgMD09PWtlKXJldHVybnt9O2lmKGtlPT09T2JqZWN0KGtlKSlyZXR1cm4ga2U7dGhyb3cgVHlwZUVycm9yKCJDb3VsZCBub3QgY29udmVydCBhcmd1bWVudCB0byBk'@; put 'aWN0aW9uYXJ5Iil9ZnVuY3Rpb24gUihrZSl7cmV0dXJuIDA8PWtlJiZrZTw9MTI3fXZhciBqPVIsUD0tMTtmdW5jdGlvbiBMKGtlKXt0aGlzLnRva2Vucz1bXS5zbGljZS5jYWxsKGtlKSx0aGlzLnRva2Vucy5yZXZlcnNlKCl9TC5wcm90b3R5cGU9e2VuZE9mU3RyZWFtOmZ1bmN0aW9uKCl7'@; put 'cmV0dXJuIXRoaXMudG9rZW5zLmxlbmd0aH0scmVhZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRva2Vucy5sZW5ndGg/dGhpcy50b2tlbnMucG9wKCk6UH0scHJlcGVuZDpmdW5jdGlvbihrZSl7aWYoQXJyYXkuaXNBcnJheShrZSkpZm9yKHZhciBfdD1rZTtfdC5sZW5ndGg7KXRoaXMudG9r'@; put 'ZW5zLnB1c2goX3QucG9wKCkpO2Vsc2UgdGhpcy50b2tlbnMucHVzaChrZSl9LHB1c2g6ZnVuY3Rpb24oa2Upe2lmKEFycmF5LmlzQXJyYXkoa2UpKWZvcih2YXIgX3Q9a2U7X3QubGVuZ3RoOyl0aGlzLnRva2Vucy51bnNoaWZ0KF90LnNoaWZ0KCkpO2Vsc2UgdGhpcy50b2tlbnMudW5zaGlm'@; put 'dChrZSl9fTt2YXIgWT0tMTtmdW5jdGlvbiBCKGtlLF90KXtpZihrZSl0aHJvdyBUeXBlRXJyb3IoIkRlY29kZXIgZXJyb3IiKTtyZXR1cm4gX3R8fDY1NTMzfWZ1bmN0aW9uIFcoa2Upe3Rocm93IFR5cGVFcnJvcigiVGhlIGNvZGUgcG9pbnQgIitrZSsiIGNvdWxkIG5vdCBiZSBlbmNvZGVk'@; put 'LiIpfWZ1bmN0aW9uIFEoa2Upe3JldHVybiBrZT1TdHJpbmcoa2UpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0ZSxrZSk/dGVba2VdOm51bGx9dmFyIHE9W3tlbmNvZGluZ3M6W3tsYWJlbHM6WyJ1bmljb2RlLTEtMS11dGYtOCIs'@; put 'InV0Zi04IiwidXRmOCJdLG5hbWU6IlVURi04In1dLGhlYWRpbmc6IlRoZSBFbmNvZGluZyJ9LHtlbmNvZGluZ3M6W3tsYWJlbHM6WyI4NjYiLCJjcDg2NiIsImNzaWJtODY2IiwiaWJtODY2Il0sbmFtZToiSUJNODY2In0se2xhYmVsczpbImNzaXNvbGF0aW4yIiwiaXNvLTg4NTktMiIsImlz'@; put 'by1pci0xMDEiLCJpc284ODU5LTIiLCJpc284ODU5MiIsImlzb184ODU5LTIiLCJpc29fODg1OS0yOjE5ODciLCJsMiIsImxhdGluMiJdLG5hbWU6IklTTy04ODU5LTIifSx7bGFiZWxzOlsiY3Npc29sYXRpbjMiLCJpc28tODg1OS0zIiwiaXNvLWlyLTEwOSIsImlzbzg4NTktMyIsImlzbzg4'@; put 'NTkzIiwiaXNvXzg4NTktMyIsImlzb184ODU5LTM6MTk4OCIsImwzIiwibGF0aW4zIl0sbmFtZToiSVNPLTg4NTktMyJ9LHtsYWJlbHM6WyJjc2lzb2xhdGluNCIsImlzby04ODU5LTQiLCJpc28taXItMTEwIiwiaXNvODg1OS00IiwiaXNvODg1OTQiLCJpc29fODg1OS00IiwiaXNvXzg4NTkt'@; put 'NDoxOTg4IiwibDQiLCJsYXRpbjQiXSxuYW1lOiJJU08tODg1OS00In0se2xhYmVsczpbImNzaXNvbGF0aW5jeXJpbGxpYyIsImN5cmlsbGljIiwiaXNvLTg4NTktNSIsImlzby1pci0xNDQiLCJpc284ODU5LTUiLCJpc284ODU5NSIsImlzb184ODU5LTUiLCJpc29fODg1OS01OjE5ODgiXSxu'@; put 'YW1lOiJJU08tODg1OS01In0se2xhYmVsczpbImFyYWJpYyIsImFzbW8tNzA4IiwiY3Npc284ODU5NmUiLCJjc2lzbzg4NTk2aSIsImNzaXNvbGF0aW5hcmFiaWMiLCJlY21hLTExNCIsImlzby04ODU5LTYiLCJpc28tODg1OS02LWUiLCJpc28tODg1OS02LWkiLCJpc28taXItMTI3IiwiaXNv'@; put 'ODg1OS02IiwiaXNvODg1OTYiLCJpc29fODg1OS02IiwiaXNvXzg4NTktNjoxOTg3Il0sbmFtZToiSVNPLTg4NTktNiJ9LHtsYWJlbHM6WyJjc2lzb2xhdGluZ3JlZWsiLCJlY21hLTExOCIsImVsb3RfOTI4IiwiZ3JlZWsiLCJncmVlazgiLCJpc28tODg1OS03IiwiaXNvLWlyLTEyNiIsImlz'@; put 'bzg4NTktNyIsImlzbzg4NTk3IiwiaXNvXzg4NTktNyIsImlzb184ODU5LTc6MTk4NyIsInN1bl9ldV9ncmVlayJdLG5hbWU6IklTTy04ODU5LTcifSx7bGFiZWxzOlsiY3Npc284ODU5OGUiLCJjc2lzb2xhdGluaGVicmV3IiwiaGVicmV3IiwiaXNvLTg4NTktOCIsImlzby04ODU5LTgtZSIs'@; put 'Imlzby1pci0xMzgiLCJpc284ODU5LTgiLCJpc284ODU5OCIsImlzb184ODU5LTgiLCJpc29fODg1OS04OjE5ODgiLCJ2aXN1YWwiXSxuYW1lOiJJU08tODg1OS04In0se2xhYmVsczpbImNzaXNvODg1OThpIiwiaXNvLTg4NTktOC1pIiwibG9naWNhbCJdLG5hbWU6IklTTy04ODU5LTgtSSJ9'@; put 'LHtsYWJlbHM6WyJjc2lzb2xhdGluNiIsImlzby04ODU5LTEwIiwiaXNvLWlyLTE1NyIsImlzbzg4NTktMTAiLCJpc284ODU5MTAiLCJsNiIsImxhdGluNiJdLG5hbWU6IklTTy04ODU5LTEwIn0se2xhYmVsczpbImlzby04ODU5LTEzIiwiaXNvODg1OS0xMyIsImlzbzg4NTkxMyJdLG5hbWU6'@; put 'IklTTy04ODU5LTEzIn0se2xhYmVsczpbImlzby04ODU5LTE0IiwiaXNvODg1OS0xNCIsImlzbzg4NTkxNCJdLG5hbWU6IklTTy04ODU5LTE0In0se2xhYmVsczpbImNzaXNvbGF0aW45IiwiaXNvLTg4NTktMTUiLCJpc284ODU5LTE1IiwiaXNvODg1OTE1IiwiaXNvXzg4NTktMTUiLCJsOSJd'@; put 'LG5hbWU6IklTTy04ODU5LTE1In0se2xhYmVsczpbImlzby04ODU5LTE2Il0sbmFtZToiSVNPLTg4NTktMTYifSx7bGFiZWxzOlsiY3Nrb2k4ciIsImtvaSIsImtvaTgiLCJrb2k4LXIiLCJrb2k4X3IiXSxuYW1lOiJLT0k4LVIifSx7bGFiZWxzOlsia29pOC1ydSIsImtvaTgtdSJdLG5hbWU6'@; put 'IktPSTgtVSJ9LHtsYWJlbHM6WyJjc21hY2ludG9zaCIsIm1hYyIsIm1hY2ludG9zaCIsIngtbWFjLXJvbWFuIl0sbmFtZToibWFjaW50b3NoIn0se2xhYmVsczpbImRvcy04NzQiLCJpc28tODg1OS0xMSIsImlzbzg4NTktMTEiLCJpc284ODU5MTEiLCJ0aXMtNjIwIiwid2luZG93cy04NzQi'@; put 'XSxuYW1lOiJ3aW5kb3dzLTg3NCJ9LHtsYWJlbHM6WyJjcDEyNTAiLCJ3aW5kb3dzLTEyNTAiLCJ4LWNwMTI1MCJdLG5hbWU6IndpbmRvd3MtMTI1MCJ9LHtsYWJlbHM6WyJjcDEyNTEiLCJ3aW5kb3dzLTEyNTEiLCJ4LWNwMTI1MSJdLG5hbWU6IndpbmRvd3MtMTI1MSJ9LHtsYWJlbHM6WyJh'@; put 'bnNpX3gzLjQtMTk2OCIsImFzY2lpIiwiY3AxMjUyIiwiY3A4MTkiLCJjc2lzb2xhdGluMSIsImlibTgxOSIsImlzby04ODU5LTEiLCJpc28taXItMTAwIiwiaXNvODg1OS0xIiwiaXNvODg1OTEiLCJpc29fODg1OS0xIiwiaXNvXzg4NTktMToxOTg3IiwibDEiLCJsYXRpbjEiLCJ1cy1hc2Np'@; put 'aSIsIndpbmRvd3MtMTI1MiIsIngtY3AxMjUyIl0sbmFtZToid2luZG93cy0xMjUyIn0se2xhYmVsczpbImNwMTI1MyIsIndpbmRvd3MtMTI1MyIsIngtY3AxMjUzIl0sbmFtZToid2luZG93cy0xMjUzIn0se2xhYmVsczpbImNwMTI1NCIsImNzaXNvbGF0aW41IiwiaXNvLTg4NTktOSIsImlz'@; put 'by1pci0xNDgiLCJpc284ODU5LTkiLCJpc284ODU5OSIsImlzb184ODU5LTkiLCJpc29fODg1OS05OjE5ODkiLCJsNSIsImxhdGluNSIsIndpbmRvd3MtMTI1NCIsIngtY3AxMjU0Il0sbmFtZToid2luZG93cy0xMjU0In0se2xhYmVsczpbImNwMTI1NSIsIndpbmRvd3MtMTI1NSIsIngtY3Ax'@; put 'MjU1Il0sbmFtZToid2luZG93cy0xMjU1In0se2xhYmVsczpbImNwMTI1NiIsIndpbmRvd3MtMTI1NiIsIngtY3AxMjU2Il0sbmFtZToid2luZG93cy0xMjU2In0se2xhYmVsczpbImNwMTI1NyIsIndpbmRvd3MtMTI1NyIsIngtY3AxMjU3Il0sbmFtZToid2luZG93cy0xMjU3In0se2xhYmVs'@; put 'czpbImNwMTI1OCIsIndpbmRvd3MtMTI1OCIsIngtY3AxMjU4Il0sbmFtZToid2luZG93cy0xMjU4In0se2xhYmVsczpbIngtbWFjLWN5cmlsbGljIiwieC1tYWMtdWtyYWluaWFuIl0sbmFtZToieC1tYWMtY3lyaWxsaWMifV0saGVhZGluZzoiTGVnYWN5IHNpbmdsZS1ieXRlIGVuY29kaW5n'@; put 'cyJ9LHtlbmNvZGluZ3M6W3tsYWJlbHM6WyJjaGluZXNlIiwiY3NnYjIzMTIiLCJjc2lzbzU4Z2IyMzEyODAiLCJnYjIzMTIiLCJnYl8yMzEyIiwiZ2JfMjMxMi04MCIsImdiayIsImlzby1pci01OCIsIngtZ2JrIl0sbmFtZToiR0JLIn0se2xhYmVsczpbImdiMTgwMzAiXSxuYW1lOiJnYjE4'@; put 'MDMwIn1dLGhlYWRpbmc6IkxlZ2FjeSBtdWx0aS1ieXRlIENoaW5lc2UgKHNpbXBsaWZpZWQpIGVuY29kaW5ncyJ9LHtlbmNvZGluZ3M6W3tsYWJlbHM6WyJiaWc1IiwiYmlnNS1oa3NjcyIsImNuLWJpZzUiLCJjc2JpZzUiLCJ4LXgtYmlnNSJdLG5hbWU6IkJpZzUifV0saGVhZGluZzoiTGVn'@; put 'YWN5IG11bHRpLWJ5dGUgQ2hpbmVzZSAodHJhZGl0aW9uYWwpIGVuY29kaW5ncyJ9LHtlbmNvZGluZ3M6W3tsYWJlbHM6WyJjc2V1Y3BrZGZtdGphcGFuZXNlIiwiZXVjLWpwIiwieC1ldWMtanAiXSxuYW1lOiJFVUMtSlAifSx7bGFiZWxzOlsiY3Npc28yMDIyanAiLCJpc28tMjAyMi1qcCJd'@; put 'LG5hbWU6IklTTy0yMDIyLUpQIn0se2xhYmVsczpbImNzc2hpZnRqaXMiLCJtczkzMiIsIm1zX2thbmppIiwic2hpZnQtamlzIiwic2hpZnRfamlzIiwic2ppcyIsIndpbmRvd3MtMzFqIiwieC1zamlzIl0sbmFtZToiU2hpZnRfSklTIn1dLGhlYWRpbmc6IkxlZ2FjeSBtdWx0aS1ieXRlIEph'@; put 'cGFuZXNlIGVuY29kaW5ncyJ9LHtlbmNvZGluZ3M6W3tsYWJlbHM6WyJjc2V1Y2tyIiwiY3Nrc2M1NjAxMTk4NyIsImV1Yy1rciIsImlzby1pci0xNDkiLCJrb3JlYW4iLCJrc19jXzU2MDEtMTk4NyIsImtzX2NfNTYwMS0xOTg5Iiwia3NjNTYwMSIsImtzY181NjAxIiwid2luZG93cy05NDki'@; put 'XSxuYW1lOiJFVUMtS1IifV0saGVhZGluZzoiTGVnYWN5IG11bHRpLWJ5dGUgS29yZWFuIGVuY29kaW5ncyJ9LHtlbmNvZGluZ3M6W3tsYWJlbHM6WyJjc2lzbzIwMjJrciIsImh6LWdiLTIzMTIiLCJpc28tMjAyMi1jbiIsImlzby0yMDIyLWNuLWV4dCIsImlzby0yMDIyLWtyIl0sbmFtZToi'@; put 'cmVwbGFjZW1lbnQifSx7bGFiZWxzOlsidXRmLTE2YmUiXSxuYW1lOiJVVEYtMTZCRSJ9LHtsYWJlbHM6WyJ1dGYtMTYiLCJ1dGYtMTZsZSJdLG5hbWU6IlVURi0xNkxFIn0se2xhYmVsczpbIngtdXNlci1kZWZpbmVkIl0sbmFtZToieC11c2VyLWRlZmluZWQifV0saGVhZGluZzoiTGVnYWN5'@; put 'IG1pc2NlbGxhbmVvdXMgZW5jb2RpbmdzIn1dLHRlPXt9O3EuZm9yRWFjaChmdW5jdGlvbihrZSl7a2UuZW5jb2RpbmdzLmZvckVhY2goZnVuY3Rpb24oX3Qpe190LmxhYmVscy5mb3JFYWNoKGZ1bmN0aW9uKG50KXt0ZVtudF09X3R9KX0pfSk7dmFyIGcsaWU9e30sc2U9e307ZnVuY3Rpb24g'@; put 'Z2Uoa2UsX3Qpe3JldHVybiBfdCYmX3Rba2VdfHxudWxsfWZ1bmN0aW9uIF9lKGtlLF90KXt2YXIgbnQ9X3QuaW5kZXhPZihrZSk7cmV0dXJuLTE9PT1udD9udWxsOm50fWZ1bmN0aW9uIFRlKGtlKXtpZighKCJlbmNvZGluZy1pbmRleGVzImluIEQpKXRocm93IEVycm9yKCJJbmRleGVzIG1p'@; put 'c3NpbmcuIERpZCB5b3UgZm9yZ2V0IHRvIGluY2x1ZGUgZW5jb2RpbmctaW5kZXhlcy5qcyBmaXJzdD8iKTtyZXR1cm4gRFsiZW5jb2RpbmctaW5kZXhlcyJdW2tlXX12YXIgeCxDPSJ1dGYtOCI7ZnVuY3Rpb24gVChrZSxfdCl7aWYoISh0aGlzIGluc3RhbmNlb2YgVCkpdGhyb3cgVHlwZUVy'@; put 'cm9yKCJDYWxsZWQgYXMgYSBmdW5jdGlvbi4gRGlkIHlvdSBmb3JnZXQgJ25ldyc/Iik7a2U9dm9pZCAwIT09a2U/U3RyaW5nKGtlKTpDLF90PXcoX3QpLHRoaXMuX2VuY29kaW5nPW51bGwsdGhpcy5fZGVjb2Rlcj1udWxsLHRoaXMuX2lnbm9yZUJPTT0hMSx0aGlzLl9CT01zZWVuPSExLHRo'@; put 'aXMuX2Vycm9yX21vZGU9InJlcGxhY2VtZW50Iix0aGlzLl9kb19ub3RfZmx1c2g9ITE7dmFyIG50PVEoa2UpO2lmKG51bGw9PT1udHx8InJlcGxhY2VtZW50Ij09PW50Lm5hbWUpdGhyb3cgUmFuZ2VFcnJvcigiVW5rbm93biBlbmNvZGluZzogIitrZSk7aWYoIXNlW250Lm5hbWVdKXRocm93'@; put 'IEVycm9yKCJEZWNvZGVyIG5vdCBwcmVzZW50LiBEaWQgeW91IGZvcmdldCB0byBpbmNsdWRlIGVuY29kaW5nLWluZGV4ZXMuanMgZmlyc3Q/Iik7dmFyIEplPXRoaXM7cmV0dXJuIEplLl9lbmNvZGluZz1udCxfdC5mYXRhbCYmKEplLl9lcnJvcl9tb2RlPSJmYXRhbCIpLF90Lmlnbm9yZUJP'@; put 'TSYmKEplLl9pZ25vcmVCT009ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eXx8KHRoaXMuZW5jb2Rpbmc9SmUuX2VuY29kaW5nLm5hbWUudG9Mb3dlckNhc2UoKSx0aGlzLmZhdGFsPSJmYXRhbCI9PT1KZS5fZXJyb3JfbW9kZSx0aGlzLmlnbm9yZUJPTT1KZS5faWdub3JlQk9NKSxKZX1mdW5j'@; put 'dGlvbiBWKGtlLF90KXtpZighKHRoaXMgaW5zdGFuY2VvZiBWKSl0aHJvdyBUeXBlRXJyb3IoIkNhbGxlZCBhcyBhIGZ1bmN0aW9uLiBEaWQgeW91IGZvcmdldCAnbmV3Jz8iKTtpZihfdD13KF90KSx0aGlzLl9lbmNvZGluZz1udWxsLHRoaXMuX2VuY29kZXI9bnVsbCx0aGlzLl9kb19ub3Rf'@; put 'Zmx1c2g9ITEsdGhpcy5fZmF0YWw9X3QuZmF0YWw/ImZhdGFsIjoicmVwbGFjZW1lbnQiLF90Lk5PTlNUQU5EQVJEX2FsbG93TGVnYWN5RW5jb2Rpbmcpe3ZhciBKZT1RKGtlPXZvaWQgMCE9PWtlP1N0cmluZyhrZSk6Qyk7aWYobnVsbD09PUplfHwicmVwbGFjZW1lbnQiPT09SmUubmFtZSl0'@; put 'aHJvdyBSYW5nZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK2tlKTtpZighaWVbSmUubmFtZV0pdGhyb3cgRXJyb3IoIkVuY29kZXIgbm90IHByZXNlbnQuIERpZCB5b3UgZm9yZ2V0IHRvIGluY2x1ZGUgZW5jb2RpbmctaW5kZXhlcy5qcyBmaXJzdD8iKTt0aGlzLl9lbmNvZGluZz1KZX1l'@; put 'bHNlIHRoaXMuX2VuY29kaW5nPVEoInV0Zi04Iiksdm9pZCAwIT09a2UmJiJjb25zb2xlImluIEQmJmNvbnNvbGUud2FybigiVGV4dEVuY29kZXIgY29uc3RydWN0b3IgY2FsbGVkIHdpdGggZW5jb2RpbmcgbGFiZWwsIHdoaWNoIGlzIGlnbm9yZWQuIik7cmV0dXJuIE9iamVjdC5kZWZpbmVQ'@; put 'cm9wZXJ0eXx8KHRoaXMuZW5jb2Rpbmc9dGhpcy5fZW5jb2RpbmcubmFtZS50b0xvd2VyQ2FzZSgpKSx0aGlzfWZ1bmN0aW9uIFUoa2Upe3ZhciBfdD1rZS5mYXRhbCxudD0wLEplPTAsb249MCx5dD0xMjgsTXQ9MTkxO3RoaXMuaGFuZGxlcj1mdW5jdGlvbihJdCxydCl7aWYocnQ9PT1QJiYw'@; put 'IT09b24pcmV0dXJuIG9uPTAsQihfdCk7aWYocnQ9PT1QKXJldHVybiBZO2lmKDA9PT1vbil7aWYoXyhydCwwLDEyNykpcmV0dXJuIHJ0O2lmKF8ocnQsMTk0LDIyMykpb249MSxudD0zMSZydDtlbHNlIGlmKF8ocnQsMjI0LDIzOSkpMjI0PT09cnQmJih5dD0xNjApLDIzNz09PXJ0JiYoTXQ9'@; put 'MTU5KSxvbj0yLG50PTE1JnJ0O2Vsc2V7aWYoIV8ocnQsMjQwLDI0NCkpcmV0dXJuIEIoX3QpOzI0MD09PXJ0JiYoeXQ9MTQ0KSwyNDQ9PT1ydCYmKE10PTE0Myksb249MyxudD03JnJ0fXJldHVybiBudWxsfWlmKCFfKHJ0LHl0LE10KSlyZXR1cm4gbnQ9b249SmU9MCx5dD0xMjgsTXQ9MTkx'@; put 'LEl0LnByZXBlbmQocnQpLEIoX3QpO2lmKHl0PTEyOCxNdD0xOTEsbnQ9bnQ8PDZ8NjMmcnQsKEplKz0xKSE9PW9uKXJldHVybiBudWxsO3ZhciBLZT1udDtyZXR1cm4gbnQ9b249SmU9MCxLZX19ZnVuY3Rpb24gRShrZSl7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKG50LEplKXtpZihKZT09PVAp'@; put 'cmV0dXJuIFk7aWYoaihKZSkpcmV0dXJuIEplO3ZhciBvbix5dDtfKEplLDEyOCwyMDQ3KT8ob249MSx5dD0xOTIpOl8oSmUsMjA0OCw2NTUzNSk/KG9uPTIseXQ9MjI0KTpfKEplLDY1NTM2LDExMTQxMTEpJiYob249Myx5dD0yNDApO2Zvcih2YXIgTXQ9WyhKZT4+NipvbikreXRdO29uPjA7'@; put 'KU10LnB1c2goMTI4fDYzJkplPj42Kihvbi0xKSksb24tPTE7cmV0dXJuIE10fX1mdW5jdGlvbiBtKGtlLF90KXt2YXIgbnQ9X3QuZmF0YWw7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKEplLG9uKXtpZihvbj09PVApcmV0dXJuIFk7aWYoUihvbikpcmV0dXJuIG9uO3ZhciB5dD1rZVtvbi0xMjhd'@; put 'O3JldHVybiBudWxsPT09eXQ/QihudCk6eXR9fWZ1bmN0aW9uIEEoa2UsX3Qpe3RoaXMuaGFuZGxlcj1mdW5jdGlvbihKZSxvbil7aWYob249PT1QKXJldHVybiBZO2lmKGoob24pKXJldHVybiBvbjt2YXIgeXQ9X2Uob24sa2UpO3JldHVybiBudWxsPT09eXQmJlcob24pLHl0KzEyOH19ZnVu'@; put 'Y3Rpb24gYWUoa2Upe3ZhciBfdD1rZS5mYXRhbCxudD0wLEplPTAsb249MDt0aGlzLmhhbmRsZXI9ZnVuY3Rpb24oeXQsTXQpe2lmKE10PT09UCYmMD09PW50JiYwPT09SmUmJjA9PT1vbilyZXR1cm4gWTt2YXIgSXQ7aWYoTXQ9PT1QJiYoMCE9PW50fHwwIT09SmV8fDAhPT1vbikmJihudD0w'@; put 'LEplPTAsb249MCxCKF90KSksMCE9PW9uKXtJdD1udWxsLF8oTXQsNDgsNTcpJiYoSXQ9ZnVuY3Rpb24gU2Uoa2Upe2lmKGtlPjM5NDE5JiZrZTwxODllM3x8a2U+MTIzNzU3NSlyZXR1cm4gbnVsbDtpZig3NDU3PT09a2UpcmV0dXJuIDU5MzM1O3ZhciBvbixfdD0wLG50PTAsSmU9VGUoImdi'@; put 'MTgwMzAtcmFuZ2VzIik7Zm9yKG9uPTA7b248SmUubGVuZ3RoOysrb24pe3ZhciB5dD1KZVtvbl07aWYoISh5dFswXTw9a2UpKWJyZWFrO190PXl0WzBdLG50PXl0WzFdfXJldHVybiBudCtrZS1fdH0oMTAqKDEyNiooMTAqKG50LTEyOSkrSmUtNDgpK29uLTEyOSkrTXQtNDgpKTt2YXIgcnQ9'@; put 'W0plLG9uLE10XTtyZXR1cm4gbnQ9MCxKZT0wLG9uPTAsbnVsbD09PUl0Pyh5dC5wcmVwZW5kKHJ0KSxCKF90KSk6SXR9aWYoMCE9PUplKXJldHVybiBfKE10LDEyOSwyNTQpPyhvbj1NdCxudWxsKTooeXQucHJlcGVuZChbSmUsTXRdKSxudD0wLEplPTAsQihfdCkpO2lmKDAhPT1udCl7aWYo'@; put 'XyhNdCw0OCw1NykpcmV0dXJuIEplPU10LG51bGw7dmFyIEtlPW50LHR0PW51bGw7bnQ9MDt2YXIgTmU9TXQ8MTI3PzY0OjY1O3JldHVybihfKE10LDY0LDEyNil8fF8oTXQsMTI4LDI1NCkpJiYodHQ9MTkwKihLZS0xMjkpKyhNdC1OZSkpLG51bGw9PT0oSXQ9bnVsbD09PXR0P251bGw6Z2Uo'@; put 'dHQsVGUoImdiMTgwMzAiKSkpJiZSKE10KSYmeXQucHJlcGVuZChNdCksbnVsbD09PUl0P0IoX3QpOkl0fXJldHVybiBSKE10KT9NdDoxMjg9PT1NdD84MzY0Ol8oTXQsMTI5LDI1NCk/KG50PU10LG51bGwpOkIoX3QpfX1mdW5jdGlvbiBuZShrZSxfdCl7dGhpcy5oYW5kbGVyPWZ1bmN0aW9u'@; put 'KEplLG9uKXtpZihvbj09PVApcmV0dXJuIFk7aWYoaihvbikpcmV0dXJuIG9uO2lmKDU4ODUzPT09b24pcmV0dXJuIFcob24pO2lmKF90JiY4MzY0PT09b24pcmV0dXJuIDEyODt2YXIgeXQ9X2Uob24sVGUoImdiMTgwMzAiKSk7aWYobnVsbCE9PXl0KXt2YXIgSXQ9eXQlMTkwO3JldHVybltO'@; put 'KHl0LzE5MCkrMTI5LEl0KyhJdDw2Mz82NDo2NSldfWlmKF90KXJldHVybiBXKG9uKTt5dD1mdW5jdGlvbiB6ZShrZSl7aWYoNTkzMzU9PT1rZSlyZXR1cm4gNzQ1Nzt2YXIgb24sX3Q9MCxudD0wLEplPVRlKCJnYjE4MDMwLXJhbmdlcyIpO2Zvcihvbj0wO29uPEplLmxlbmd0aDsrK29uKXt2'@; put 'YXIgeXQ9SmVbb25dO2lmKCEoeXRbMV08PWtlKSlicmVhaztfdD15dFsxXSxudD15dFswXX1yZXR1cm4gbnQra2UtX3R9KG9uKTt2YXIgS2U9Tih5dC8xMC8xMjYvMTApLHR0PU4oKHl0LT0xMCpLZSoxMjYqMTApLzEwLzEyNiksTmU9TigoeXQtPTEwKnR0KjEyNikvMTApO3JldHVybltLZSsx'@; put 'MjksdHQrNDgsTmUrMTI5LHl0LTEwKk5lKzQ4XX19ZnVuY3Rpb24gbGUoa2Upe3ZhciBfdD1rZS5mYXRhbCxudD0wO3RoaXMuaGFuZGxlcj1mdW5jdGlvbihKZSxvbil7aWYob249PT1QJiYwIT09bnQpcmV0dXJuIG50PTAsQihfdCk7aWYob249PT1QJiYwPT09bnQpcmV0dXJuIFk7aWYoMCE9'@; put 'PW50KXt2YXIgeXQ9bnQsTXQ9bnVsbDtudD0wO3ZhciBJdD1vbjwxMjc/NjQ6OTg7c3dpdGNoKChfKG9uLDY0LDEyNil8fF8ob24sMTYxLDI1NCkpJiYoTXQ9MTU3Kih5dC0xMjkpKyhvbi1JdCkpLE10KXtjYXNlIDExMzM6cmV0dXJuWzIwMiw3NzJdO2Nhc2UgMTEzNTpyZXR1cm5bMjAyLDc4'@; put 'MF07Y2FzZSAxMTY0OnJldHVyblsyMzQsNzcyXTtjYXNlIDExNjY6cmV0dXJuWzIzNCw3ODBdfXZhciBydD1udWxsPT09TXQ/bnVsbDpnZShNdCxUZSgiYmlnNSIpKTtyZXR1cm4gbnVsbD09PXJ0JiZSKG9uKSYmSmUucHJlcGVuZChvbiksbnVsbD09PXJ0P0IoX3QpOnJ0fXJldHVybiBSKG9u'@; put 'KT9vbjpfKG9uLDEyOSwyNTQpPyhudD1vbixudWxsKTpCKF90KX19ZnVuY3Rpb24gd2Uoa2Upe3RoaXMuaGFuZGxlcj1mdW5jdGlvbihudCxKZSl7aWYoSmU9PT1QKXJldHVybiBZO2lmKGooSmUpKXJldHVybiBKZTt2YXIgb249ZnVuY3Rpb24geShrZSl7dmFyIF90PXg9eHx8VGUoImJpZzUi'@; put 'KS5tYXAoZnVuY3Rpb24obnQsSmUpe3JldHVybiBKZTw1MDI0P251bGw6bnR9KTtyZXR1cm4gOTU1Mj09PWtlfHw5NTY2PT09a2V8fDk1Njk9PT1rZXx8OTU3OD09PWtlfHwyMTMxMz09PWtlfHwyMTMxNz09PWtlP190Lmxhc3RJbmRleE9mKGtlKTpfZShrZSxfdCl9KEplKTtpZihudWxsPT09'@; put 'b24pcmV0dXJuIFcoSmUpO3ZhciB5dD1OKG9uLzE1NykrMTI5O2lmKHl0PDE2MSlyZXR1cm4gVyhKZSk7dmFyIE10PW9uJTE1NztyZXR1cm5beXQsTXQrKE10PDYzPzY0Ojk4KV19fWZ1bmN0aW9uIFplKGtlKXt2YXIgX3Q9a2UuZmF0YWwsbnQ9ITEsSmU9MDt0aGlzLmhhbmRsZXI9ZnVuY3Rp'@; put 'b24ob24seXQpe2lmKHl0PT09UCYmMCE9PUplKXJldHVybiBKZT0wLEIoX3QpO2lmKHl0PT09UCYmMD09PUplKXJldHVybiBZO2lmKDE0Mj09PUplJiZfKHl0LDE2MSwyMjMpKXJldHVybiBKZT0wLDY1MjE2K3l0O2lmKDE0Mz09PUplJiZfKHl0LDE2MSwyNTQpKXJldHVybiBudD0hMCxKZT15'@; put 'dCxudWxsO2lmKDAhPT1KZSl7dmFyIE10PUplO0plPTA7dmFyIEl0PW51bGw7cmV0dXJuIF8oTXQsMTYxLDI1NCkmJl8oeXQsMTYxLDI1NCkmJihJdD1nZSg5NCooTXQtMTYxKSsoeXQtMTYxKSxUZShudD8iamlzMDIxMiI6ImppczAyMDgiKSkpLG50PSExLF8oeXQsMTYxLDI1NCl8fG9uLnBy'@; put 'ZXBlbmQoeXQpLG51bGw9PT1JdD9CKF90KTpJdH1yZXR1cm4gUih5dCk/eXQ6MTQyPT09eXR8fDE0Mz09PXl0fHxfKHl0LDE2MSwyNTQpPyhKZT15dCxudWxsKTpCKF90KX19ZnVuY3Rpb24gUWUoa2Upe3RoaXMuaGFuZGxlcj1mdW5jdGlvbihudCxKZSl7aWYoSmU9PT1QKXJldHVybiBZO2lm'@; put 'KGooSmUpKXJldHVybiBKZTtpZigxNjU9PT1KZSlyZXR1cm4gOTI7aWYoODI1ND09PUplKXJldHVybiAxMjY7aWYoXyhKZSw2NTM3Nyw2NTQzOSkpcmV0dXJuWzE0MixKZS02NTM3NysxNjFdOzg3MjI9PT1KZSYmKEplPTY1MjkzKTt2YXIgb249X2UoSmUsVGUoImppczAyMDgiKSk7cmV0dXJu'@; put 'IG51bGw9PT1vbj9XKEplKTpbTihvbi85NCkrMTYxLG9uJTk0KzE2MV19fWZ1bmN0aW9uIGF0KGtlKXt2YXIgX3Q9a2UuZmF0YWwsSmU9MCx5dD0wLE10PSExO3RoaXMuaGFuZGxlcj1mdW5jdGlvbihJdCxydCl7c3dpdGNoKEplKXtkZWZhdWx0OmNhc2UgMDpyZXR1cm4gMjc9PT1ydD8oSmU9'@; put 'NSxudWxsKTpfKHJ0LDAsMTI3KSYmMTQhPT1ydCYmMTUhPT1ydCYmMjchPT1ydD8oTXQ9ITEscnQpOnJ0PT09UD9ZOihNdD0hMSxCKF90KSk7Y2FzZSAxOnJldHVybiAyNz09PXJ0PyhKZT01LG51bGwpOjkyPT09cnQ/KE10PSExLDE2NSk6MTI2PT09cnQ/KE10PSExLDgyNTQpOl8ocnQsMCwx'@; put 'MjcpJiYxNCE9PXJ0JiYxNSE9PXJ0JiYyNyE9PXJ0JiY5MiE9PXJ0JiYxMjYhPT1ydD8oTXQ9ITEscnQpOnJ0PT09UD9ZOihNdD0hMSxCKF90KSk7Y2FzZSAyOnJldHVybiAyNz09PXJ0PyhKZT01LG51bGwpOl8ocnQsMzMsOTUpPyhNdD0hMSw2NTM0NCtydCk6cnQ9PT1QP1k6KE10PSExLEIo'@; put 'X3QpKTtjYXNlIDM6cmV0dXJuIDI3PT09cnQ/KEplPTUsbnVsbCk6XyhydCwzMywxMjYpPyhNdD0hMSx5dD1ydCxKZT00LG51bGwpOnJ0PT09UD9ZOihNdD0hMSxCKF90KSk7Y2FzZSA0OmlmKDI3PT09cnQpcmV0dXJuIEplPTUsQihfdCk7aWYoXyhydCwzMywxMjYpKXtKZT0zO3ZhciB0dD1n'@; put 'ZSg5NCooeXQtMzMpK3J0LTMzLFRlKCJqaXMwMjA4IikpO3JldHVybiBudWxsPT09dHQ/QihfdCk6dHR9cmV0dXJuIHJ0PT09UD8oSmU9MyxJdC5wcmVwZW5kKHJ0KSxCKF90KSk6KEplPTMsQihfdCkpO2Nhc2UgNTpyZXR1cm4gMzY9PT1ydHx8NDA9PT1ydD8oeXQ9cnQsSmU9NixudWxsKToo'@; put 'SXQucHJlcGVuZChydCksTXQ9ITEsSmU9MCxCKF90KSk7Y2FzZSA2OnZhciBOZT15dDt5dD0wO3ZhciB1dD1udWxsO2lmKDQwPT09TmUmJjY2PT09cnQmJih1dD0wKSw0MD09PU5lJiY3ND09PXJ0JiYodXQ9MSksNDA9PT1OZSYmNzM9PT1ydCYmKHV0PTIpLDM2PT09TmUmJig2ND09PXJ0fHw2'@; put 'Nj09PXJ0KSYmKHV0PTMpLG51bGwhPT11dCl7SmU9SmU9dXQ7dmFyIEp0PU10O3JldHVybiBNdD0hMCxKdD9CKF90KTpudWxsfXJldHVybiBJdC5wcmVwZW5kKFtOZSxydF0pLE10PSExLEplPTAsQihfdCl9fX1mdW5jdGlvbiB4ZShrZSl7dmFyIEplPTA7dGhpcy5oYW5kbGVyPWZ1bmN0aW9u'@; put 'KG9uLHl0KXtpZih5dD09PVAmJjAhPT1KZSlyZXR1cm4gb24ucHJlcGVuZCh5dCksSmU9MCxbMjcsNDAsNjZdO2lmKHl0PT09UCYmMD09PUplKXJldHVybiBZO2lmKCEoMCE9PUplJiYxIT09SmV8fDE0IT09eXQmJjE1IT09eXQmJjI3IT09eXQpKXJldHVybiBXKDY1NTMzKTtpZigwPT09SmUm'@; put 'JmooeXQpKXJldHVybiB5dDtpZigxPT09SmUmJihqKHl0KSYmOTIhPT15dCYmMTI2IT09eXR8fDE2NT09eXR8fDgyNTQ9PXl0KSl7aWYoaih5dCkpcmV0dXJuIHl0O2lmKDE2NT09PXl0KXJldHVybiA5MjtpZig4MjU0PT09eXQpcmV0dXJuIDEyNn1pZihqKHl0KSYmMCE9PUplKXJldHVybiBv'@; put 'bi5wcmVwZW5kKHl0KSxKZT0wLFsyNyw0MCw2Nl07aWYoKDE2NT09PXl0fHw4MjU0PT09eXQpJiYxIT09SmUpcmV0dXJuIG9uLnByZXBlbmQoeXQpLEplPTEsWzI3LDQwLDc0XTs4NzIyPT09eXQmJih5dD02NTI5Myk7dmFyIE10PV9lKHl0LFRlKCJqaXMwMjA4IikpO3JldHVybiBudWxsPT09'@; put 'TXQ/Vyh5dCk6MiE9PUplPyhvbi5wcmVwZW5kKHl0KSxKZT0yLFsyNywzNiw2Nl0pOltOKE10Lzk0KSszMyxNdCU5NCszM119fWZ1bmN0aW9uIHZlKGtlKXt2YXIgX3Q9a2UuZmF0YWwsbnQ9MDt0aGlzLmhhbmRsZXI9ZnVuY3Rpb24oSmUsb24pe2lmKG9uPT09UCYmMCE9PW50KXJldHVybiBu'@; put 'dD0wLEIoX3QpO2lmKG9uPT09UCYmMD09PW50KXJldHVybiBZO2lmKDAhPT1udCl7dmFyIHl0PW50LE10PW51bGw7bnQ9MDt2YXIgSXQ9b248MTI3PzY0OjY1LHJ0PXl0PDE2MD8xMjk6MTkzO2lmKChfKG9uLDY0LDEyNil8fF8ob24sMTI4LDI1MikpJiYoTXQ9MTg4Kih5dC1ydCkrb24tSXQp'@; put 'LF8oTXQsODgzNiwxMDcxNSkpcmV0dXJuIDQ4NTA4K010O3ZhciBLZT1udWxsPT09TXQ/bnVsbDpnZShNdCxUZSgiamlzMDIwOCIpKTtyZXR1cm4gbnVsbD09PUtlJiZSKG9uKSYmSmUucHJlcGVuZChvbiksbnVsbD09PUtlP0IoX3QpOktlfXJldHVybiBSKG9uKXx8MTI4PT09b24/b246Xyhv'@; put 'biwxNjEsMjIzKT82NTIxNitvbjpfKG9uLDEyOSwxNTkpfHxfKG9uLDIyNCwyNTIpPyhudD1vbixudWxsKTpCKF90KX19ZnVuY3Rpb24gcWUoa2Upe3RoaXMuaGFuZGxlcj1mdW5jdGlvbihudCxKZSl7aWYoSmU9PT1QKXJldHVybiBZO2lmKGooSmUpfHwxMjg9PT1KZSlyZXR1cm4gSmU7aWYo'@; put 'MTY1PT09SmUpcmV0dXJuIDkyO2lmKDgyNTQ9PT1KZSlyZXR1cm4gMTI2O2lmKF8oSmUsNjUzNzcsNjU0MzkpKXJldHVybiBKZS02NTM3NysxNjE7ODcyMj09PUplJiYoSmU9NjUyOTMpO3ZhciBvbj1mdW5jdGlvbiB6KGtlKXtyZXR1cm4oZz1nfHxUZSgiamlzMDIwOCIpLm1hcChmdW5jdGlv'@; put 'bihudCxKZSl7cmV0dXJuIF8oSmUsODI3Miw4ODM1KT9udWxsOm50fSkpLmluZGV4T2Yoa2UpfShKZSk7aWYobnVsbD09PW9uKXJldHVybiBXKEplKTt2YXIgeXQ9Tihvbi8xODgpLEl0PW9uJTE4ODtyZXR1cm5beXQrKHl0PDMxPzEyOToxOTMpLEl0KyhJdDw2Mz82NDo2NSldfX1mdW5jdGlv'@; put 'biBqZShrZSl7dmFyIF90PWtlLmZhdGFsLG50PTA7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKEplLG9uKXtpZihvbj09PVAmJjAhPT1udClyZXR1cm4gbnQ9MCxCKF90KTtpZihvbj09PVAmJjA9PT1udClyZXR1cm4gWTtpZigwIT09bnQpe3ZhciB5dD1udCxNdD1udWxsO250PTAsXyhvbiw2NSwy'@; put 'NTQpJiYoTXQ9MTkwKih5dC0xMjkpKyhvbi02NSkpO3ZhciBJdD1udWxsPT09TXQ/bnVsbDpnZShNdCxUZSgiZXVjLWtyIikpO3JldHVybiBudWxsPT09TXQmJlIob24pJiZKZS5wcmVwZW5kKG9uKSxudWxsPT09SXQ/QihfdCk6SXR9cmV0dXJuIFIob24pP29uOl8ob24sMTI5LDI1NCk/KG50'@; put 'PW9uLG51bGwpOkIoX3QpfX1mdW5jdGlvbiBBZShrZSl7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKG50LEplKXtpZihKZT09PVApcmV0dXJuIFk7aWYoaihKZSkpcmV0dXJuIEplO3ZhciBvbj1fZShKZSxUZSgiZXVjLWtyIikpO3JldHVybiBudWxsPT09b24/VyhKZSk6W04ob24vMTkwKSsxMjks'@; put 'b24lMTkwKzY1XX19ZnVuY3Rpb24gRmUoa2UsX3Qpe3ZhciBudD1rZT4+OCxKZT0yNTUma2U7cmV0dXJuIF90P1tudCxKZV06W0plLG50XX1mdW5jdGlvbiBSZShrZSxfdCl7dmFyIG50PV90LmZhdGFsLEplPW51bGwsb249bnVsbDt0aGlzLmhhbmRsZXI9ZnVuY3Rpb24oeXQsTXQpe2lmKE10'@; put 'PT09UCYmKG51bGwhPT1KZXx8bnVsbCE9PW9uKSlyZXR1cm4gQihudCk7aWYoTXQ9PT1QJiZudWxsPT09SmUmJm51bGw9PT1vbilyZXR1cm4gWTtpZihudWxsPT09SmUpcmV0dXJuIEplPU10LG51bGw7dmFyIEl0O2lmKEl0PWtlPyhKZTw8OCkrTXQ6KE10PDw4KStKZSxKZT1udWxsLG51bGwh'@; put 'PT1vbil7dmFyIHJ0PW9uO3JldHVybiBvbj1udWxsLF8oSXQsNTYzMjAsNTczNDMpPzY1NTM2KzEwMjQqKHJ0LTU1Mjk2KSsoSXQtNTYzMjApOih5dC5wcmVwZW5kKEZlKEl0LGtlKSksQihudCkpfXJldHVybiBfKEl0LDU1Mjk2LDU2MzE5KT8ob249SXQsbnVsbCk6XyhJdCw1NjMyMCw1NzM0'@; put 'Myk/QihudCk6SXR9fWZ1bmN0aW9uIEllKGtlLF90KXt0aGlzLmhhbmRsZXI9ZnVuY3Rpb24oSmUsb24pe2lmKG9uPT09UClyZXR1cm4gWTtpZihfKG9uLDAsNjU1MzUpKXJldHVybiBGZShvbixrZSk7dmFyIHl0PUZlKDU1Mjk2Kyhvbi02NTUzNj4+MTApLGtlKSxNdD1GZSg1NjMyMCsob24t'@; put 'NjU1MzYmMTAyMyksa2UpO3JldHVybiB5dC5jb25jYXQoTXQpfX1mdW5jdGlvbiBIZShrZSl7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKG50LEplKXtyZXR1cm4gSmU9PT1QP1k6UihKZSk/SmU6NjMzNjArSmUtMTI4fX1mdW5jdGlvbiBEZShrZSl7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKG50LEpl'@; put 'KXtyZXR1cm4gSmU9PT1QP1k6aihKZSk/SmU6XyhKZSw2MzM2MCw2MzQ4Nyk/SmUtNjMzNjArMTI4OlcoSmUpfX1PYmplY3QuZGVmaW5lUHJvcGVydHkmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoVC5wcm90b3R5cGUsImVuY29kaW5nIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Vu'@; put 'Y29kaW5nLm5hbWUudG9Mb3dlckNhc2UoKX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVC5wcm90b3R5cGUsImZhdGFsIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuImZhdGFsIj09PXRoaXMuX2Vycm9yX21vZGV9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFQucHJvdG90eXBlLCJpZ25vcmVC'@; put 'T00iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faWdub3JlQk9NfX0pKSxULnByb3RvdHlwZS5kZWNvZGU9ZnVuY3Rpb24oX3QsbnQpe3ZhciBKZTtKZT0ib2JqZWN0Ij09dHlwZW9mIF90JiZfdCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyP25ldyBVaW50OEFycmF5KF90KToib2JqZWN0'@; put 'Ij09dHlwZW9mIF90JiYiYnVmZmVyImluIF90JiZfdC5idWZmZXIgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj9uZXcgVWludDhBcnJheShfdC5idWZmZXIsX3QuYnl0ZU9mZnNldCxfdC5ieXRlTGVuZ3RoKTpuZXcgVWludDhBcnJheSgwKSxudD13KG50KSx0aGlzLl9kb19ub3RfZmx1c2h8fCh0'@; put 'aGlzLl9kZWNvZGVyPXNlW3RoaXMuX2VuY29kaW5nLm5hbWVdKHtmYXRhbDoiZmF0YWwiPT09dGhpcy5fZXJyb3JfbW9kZX0pLHRoaXMuX0JPTXNlZW49ITEpLHRoaXMuX2RvX25vdF9mbHVzaD0hIW50LnN0cmVhbTtmb3IodmFyIE10LG9uPW5ldyBMKEplKSx5dD1bXTs7KXt2YXIgSXQ9b24u'@; put 'cmVhZCgpO2lmKEl0PT09UHx8KE10PXRoaXMuX2RlY29kZXIuaGFuZGxlcihvbixJdCkpPT09WSlicmVhaztudWxsIT09TXQmJihBcnJheS5pc0FycmF5KE10KT95dC5wdXNoLmFwcGx5KHl0LE10KTp5dC5wdXNoKE10KSl9aWYoIXRoaXMuX2RvX25vdF9mbHVzaCl7ZG97aWYoKE10PXRoaXMu'@; put 'X2RlY29kZXIuaGFuZGxlcihvbixvbi5yZWFkKCkpKT09PVkpYnJlYWs7bnVsbCE9PU10JiYoQXJyYXkuaXNBcnJheShNdCk/eXQucHVzaC5hcHBseSh5dCxNdCk6eXQucHVzaChNdCkpfXdoaWxlKCFvbi5lbmRPZlN0cmVhbSgpKTt0aGlzLl9kZWNvZGVyPW51bGx9cmV0dXJuIGZ1bmN0aW9u'@; put 'IHJ0KEtlKXtyZXR1cm4gZnVuY3Rpb24gcChrZSxfdCl7cmV0dXJuLTEhPT1rZS5pbmRleE9mKF90KX0oWyJVVEYtOCIsIlVURi0xNkxFIiwiVVRGLTE2QkUiXSx0aGlzLl9lbmNvZGluZy5uYW1lKSYmIXRoaXMuX2lnbm9yZUJPTSYmIXRoaXMuX0JPTXNlZW4mJihLZS5sZW5ndGg+MCYmNjUy'@; put 'Nzk9PT1LZVswXT8odGhpcy5fQk9Nc2Vlbj0hMCxLZS5zaGlmdCgpKTpLZS5sZW5ndGg+MCYmKHRoaXMuX0JPTXNlZW49ITApKSxmdW5jdGlvbiBIKGtlKXtmb3IodmFyIF90PSIiLG50PTA7bnQ8a2UubGVuZ3RoOysrbnQpe3ZhciBKZT1rZVtudF07SmU8PTY1NTM1P190Kz1TdHJpbmcuZnJv'@; put 'bUNoYXJDb2RlKEplKTooSmUtPTY1NTM2LF90Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKDU1Mjk2KyhKZT4+MTApLDU2MzIwKygxMDIzJkplKSkpfXJldHVybiBfdH0oS2UpfS5jYWxsKHRoaXMseXQpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShWLnByb3Rv'@; put 'dHlwZSwiZW5jb2RpbmciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZW5jb2RpbmcubmFtZS50b0xvd2VyQ2FzZSgpfX0pLFYucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbihfdCxudCl7X3Q9dm9pZCAwPT09X3Q/IiI6U3RyaW5nKF90KSxudD13KG50KSx0aGlzLl9kb19ub3RfZmx1'@; put 'c2h8fCh0aGlzLl9lbmNvZGVyPWllW3RoaXMuX2VuY29kaW5nLm5hbWVdKHtmYXRhbDoiZmF0YWwiPT09dGhpcy5fZmF0YWx9KSksdGhpcy5fZG9fbm90X2ZsdXNoPSEhbnQuc3RyZWFtO2Zvcih2YXIgeXQsSmU9bmV3IEwoZnVuY3Rpb24gRihrZSl7Zm9yKHZhciBfdD1TdHJpbmcoa2UpLG50'@; put 'PV90Lmxlbmd0aCxKZT0wLG9uPVtdO0plPG50Oyl7dmFyIHl0PV90LmNoYXJDb2RlQXQoSmUpO2lmKHl0PDU1Mjk2fHx5dD41NzM0Mylvbi5wdXNoKHl0KTtlbHNlIGlmKDU2MzIwPD15dCYmeXQ8PTU3MzQzKW9uLnB1c2goNjU1MzMpO2Vsc2UgaWYoNTUyOTY8PXl0JiZ5dDw9NTYzMTkpaWYo'@; put 'SmU9PT1udC0xKW9uLnB1c2goNjU1MzMpO2Vsc2V7dmFyIE10PV90LmNoYXJDb2RlQXQoSmUrMSk7NTYzMjA8PU10JiZNdDw9NTczNDM/KG9uLnB1c2goNjU1MzYrKCgxMDIzJnl0KTw8MTApKygxMDIzJk10KSksSmUrPTEpOm9uLnB1c2goNjU1MzMpfUplKz0xfXJldHVybiBvbn0oX3QpKSxv'@; put 'bj1bXTs7KXt2YXIgTXQ9SmUucmVhZCgpO2lmKE10PT09UHx8KHl0PXRoaXMuX2VuY29kZXIuaGFuZGxlcihKZSxNdCkpPT09WSlicmVhaztBcnJheS5pc0FycmF5KHl0KT9vbi5wdXNoLmFwcGx5KG9uLHl0KTpvbi5wdXNoKHl0KX1pZighdGhpcy5fZG9fbm90X2ZsdXNoKXtmb3IoOyh5dD10'@; put 'aGlzLl9lbmNvZGVyLmhhbmRsZXIoSmUsSmUucmVhZCgpKSkhPT1ZOylBcnJheS5pc0FycmF5KHl0KT9vbi5wdXNoLmFwcGx5KG9uLHl0KTpvbi5wdXNoKHl0KTt0aGlzLl9lbmNvZGVyPW51bGx9cmV0dXJuIG5ldyBVaW50OEFycmF5KG9uKX0saWVbIlVURi04Il09ZnVuY3Rpb24oa2Upe3Jl'@; put 'dHVybiBuZXcgRShrZSl9LHNlWyJVVEYtOCJdPWZ1bmN0aW9uKGtlKXtyZXR1cm4gbmV3IFUoa2UpfSwiZW5jb2RpbmctaW5kZXhlcyJpbiBEJiZxLmZvckVhY2goZnVuY3Rpb24oa2UpeyJMZWdhY3kgc2luZ2xlLWJ5dGUgZW5jb2RpbmdzIj09PWtlLmhlYWRpbmcmJmtlLmVuY29kaW5ncy5m'@; put 'b3JFYWNoKGZ1bmN0aW9uKF90KXt2YXIgbnQ9X3QubmFtZSxKZT1UZShudC50b0xvd2VyQ2FzZSgpKTtzZVtudF09ZnVuY3Rpb24ob24pe3JldHVybiBuZXcgbShKZSxvbil9LGllW250XT1mdW5jdGlvbihvbil7cmV0dXJuIG5ldyBBKEplLG9uKX19KX0pLHNlLkdCSz1mdW5jdGlvbihrZSl7'@; put 'cmV0dXJuIG5ldyBhZShrZSl9LGllLkdCSz1mdW5jdGlvbihrZSl7cmV0dXJuIG5ldyBuZShrZSwhMCl9LGllLmdiMTgwMzA9ZnVuY3Rpb24oa2Upe3JldHVybiBuZXcgbmUoa2UpfSxzZS5nYjE4MDMwPWZ1bmN0aW9uKGtlKXtyZXR1cm4gbmV3IGFlKGtlKX0saWUuQmlnNT1mdW5jdGlvbihr'@; put 'ZSl7cmV0dXJuIG5ldyB3ZShrZSl9LHNlLkJpZzU9ZnVuY3Rpb24oa2Upe3JldHVybiBuZXcgbGUoa2UpfSxpZVsiRVVDLUpQIl09ZnVuY3Rpb24oa2Upe3JldHVybiBuZXcgUWUoa2UpfSxzZVsiRVVDLUpQIl09ZnVuY3Rpb24oa2Upe3JldHVybiBuZXcgWmUoa2UpfSxpZVsiSVNPLTIwMjIt'@; put 'SlAiXT1mdW5jdGlvbihrZSl7cmV0dXJuIG5ldyB4ZShrZSl9LHNlWyJJU08tMjAyMi1KUCJdPWZ1bmN0aW9uKGtlKXtyZXR1cm4gbmV3IGF0KGtlKX0saWUuU2hpZnRfSklTPWZ1bmN0aW9uKGtlKXtyZXR1cm4gbmV3IHFlKGtlKX0sc2UuU2hpZnRfSklTPWZ1bmN0aW9uKGtlKXtyZXR1cm4g'@; put 'bmV3IHZlKGtlKX0saWVbIkVVQy1LUiJdPWZ1bmN0aW9uKGtlKXtyZXR1cm4gbmV3IEFlKGtlKX0sc2VbIkVVQy1LUiJdPWZ1bmN0aW9uKGtlKXtyZXR1cm4gbmV3IGplKGtlKX0saWVbIlVURi0xNkJFIl09ZnVuY3Rpb24oa2Upe3JldHVybiBuZXcgSWUoITAsa2UpfSxzZVsiVVRGLTE2QkUi'@; put 'XT1mdW5jdGlvbihrZSl7cmV0dXJuIG5ldyBSZSghMCxrZSl9LGllWyJVVEYtMTZMRSJdPWZ1bmN0aW9uKGtlKXtyZXR1cm4gbmV3IEllKCExLGtlKX0sc2VbIlVURi0xNkxFIl09ZnVuY3Rpb24oa2Upe3JldHVybiBuZXcgUmUoITEsa2UpfSxpZVsieC11c2VyLWRlZmluZWQiXT1mdW5jdGlv'@; put 'bihrZSl7cmV0dXJuIG5ldyBEZShrZSl9LHNlWyJ4LXVzZXItZGVmaW5lZCJdPWZ1bmN0aW9uKGtlKXtyZXR1cm4gbmV3IEhlKGtlKX0sRC5UZXh0RW5jb2Rlcnx8KEQuVGV4dEVuY29kZXI9ViksRC5UZXh0RGVjb2Rlcnx8KEQuVGV4dERlY29kZXI9VCksY2UuZXhwb3J0cyYmKGNlLmV4cG9y'@; put 'dHM9e1RleHRFbmNvZGVyOkQuVGV4dEVuY29kZXIsVGV4dERlY29kZXI6RC5UZXh0RGVjb2RlcixFbmNvZGluZ0luZGV4ZXM6RFsiZW5jb2RpbmctaW5kZXhlcyJdfSl9KHRoaXN8fHt9KX0sNDEwOTA6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigyNzA1NCkuQnVmZmVyLF89Yig1'@; put 'NjQ3MSkscD1iKDU3MyksTj1BcnJheUJ1ZmZlci5pc1ZpZXd8fGZ1bmN0aW9uKGope3RyeXtyZXR1cm4gcChqKSwhMH1jYXRjaHtyZXR1cm4hMX19LHc9dHlwZW9mIFVpbnQ4QXJyYXk8InUiLEY9dHlwZW9mIEFycmF5QnVmZmVyPCJ1IiYmdHlwZW9mIFVpbnQ4QXJyYXk8InUiLEg9RiYmKEQu'@; put 'cHJvdG90eXBlIGluc3RhbmNlb2YgVWludDhBcnJheXx8RC5UWVBFRF9BUlJBWV9TVVBQT1JUKTtjZS5leHBvcnRzPWZ1bmN0aW9uKGosUCl7aWYoaiBpbnN0YW5jZW9mIEQpcmV0dXJuIGo7aWYoInN0cmluZyI9PXR5cGVvZiBqKXJldHVybiBELmZyb20oaixQKTtpZihGJiZOKGopKXtpZigw'@; put 'PT09ai5ieXRlTGVuZ3RoKXJldHVybiBELmFsbG9jKDApO2lmKEgpe3ZhciBMPUQuZnJvbShqLmJ1ZmZlcixqLmJ5dGVPZmZzZXQsai5ieXRlTGVuZ3RoKTtpZihMLmJ5dGVMZW5ndGg9PT1qLmJ5dGVMZW5ndGgpcmV0dXJuIEx9dmFyIFk9aiBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/ajpuZXcg'@; put 'VWludDhBcnJheShqLmJ1ZmZlcixqLmJ5dGVPZmZzZXQsai5ieXRlTGVuZ3RoKSxCPUQuZnJvbShZKTtpZihCLmxlbmd0aD09PWouYnl0ZUxlbmd0aClyZXR1cm4gQn1pZih3JiZqIGluc3RhbmNlb2YgVWludDhBcnJheSlyZXR1cm4gRC5mcm9tKGopO3ZhciBXPV8oaik7aWYoVylmb3IodmFy'@; put 'IFo9MDtaPGoubGVuZ3RoO1orPTEpe3ZhciBYPWpbWl07aWYoIm51bWJlciIhPXR5cGVvZiBYfHxYPDB8fFg+MjU1fHx+flghPT1YKXRocm93IG5ldyBSYW5nZUVycm9yKCJBcnJheSBpdGVtcyBtdXN0IGJlIG51bWJlcnMgaW4gdGhlIHJhbmdlIDAtMjU1LiIpfWlmKFd8fEQuaXNCdWZmZXIo'@; put 'aikmJmouY29uc3RydWN0b3ImJiJmdW5jdGlvbiI9PXR5cGVvZiBqLmNvbnN0cnVjdG9yLmlzQnVmZmVyJiZqLmNvbnN0cnVjdG9yLmlzQnVmZmVyKGopKXJldHVybiBELmZyb20oaik7dGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJkYXRhIiBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nLCBh'@; put 'biBBcnJheSwgYSBCdWZmZXIsIGEgVWludDhBcnJheSwgb3IgYSBEYXRhVmlldy4nKX19LDU2NDcxOmNlPT57dmFyIEo9e30udG9TdHJpbmc7Y2UuZXhwb3J0cz1BcnJheS5pc0FycmF5fHxmdW5jdGlvbihiKXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT1KLmNhbGwoYil9fSw1NzM6KGNlLEos'@; put 'Yik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig0Njc1OCkscD1iKDEyNzczKSgiVHlwZWRBcnJheS5wcm90b3R5cGUuYnVmZmVyIiwhMCksTj1iKDQ3MjkpO2NlLmV4cG9ydHM9cHx8ZnVuY3Rpb24oRil7aWYoIU4oRikpdGhyb3cgbmV3IEQoIk5vdCBhIFR5cGVkIEFycmF5Iik7cmV0dXJuIEYu'@; put 'YnVmZmVyfX0sMzM5ODpjZT0+e2Z1bmN0aW9uIGIoRCl7dHJ5e2lmKCFnbG9iYWwubG9jYWxTdG9yYWdlKXJldHVybiExfWNhdGNoe3JldHVybiExfXZhciBfPWdsb2JhbC5sb2NhbFN0b3JhZ2VbRF07cmV0dXJuIG51bGwhPV8mJiJ0cnVlIj09PVN0cmluZyhfKS50b0xvd2VyQ2FzZSgpfWNl'@; put 'LmV4cG9ydHM9ZnVuY3Rpb24gSihELF8pe2lmKGIoIm5vRGVwcmVjYXRpb24iKSlyZXR1cm4gRDt2YXIgcD0hMTtyZXR1cm4gZnVuY3Rpb24gTigpe2lmKCFwKXtpZihiKCJ0aHJvd0RlcHJlY2F0aW9uIikpdGhyb3cgbmV3IEVycm9yKF8pO2IoInRyYWNlRGVwcmVjYXRpb24iKT9jb25zb2xl'@; put 'LnRyYWNlKF8pOmNvbnNvbGUud2FybihfKSxwPSEwfXJldHVybiBELmFwcGx5KHRoaXMsYXJndW1lbnRzKX19fSwxMjk1NDooY2UsSixiKT0+eyFmdW5jdGlvbihEKXsidXNlIHN0cmljdCI7RC5leHBvcnRzLmlzX3VyaT1wLEQuZXhwb3J0cy5pc19odHRwX3VyaT1OLEQuZXhwb3J0cy5pc19o'@; put 'dHRwc191cmk9dyxELmV4cG9ydHMuaXNfd2ViX3VyaT1GLEQuZXhwb3J0cy5pc1VyaT1wLEQuZXhwb3J0cy5pc0h0dHBVcmk9TixELmV4cG9ydHMuaXNIdHRwc1VyaT13LEQuZXhwb3J0cy5pc1dlYlVyaT1GO3ZhciBfPWZ1bmN0aW9uKEgpe3JldHVybiBILm1hdGNoKC8oPzooW146XC8/I10r'@; put 'KTopPyg/OlwvXC8oW15cLz8jXSopKT8oW14/I10qKSg/Olw/KFteI10qKSk/KD86IyguKikpPy8pfTtmdW5jdGlvbiBwKEgpe2lmKEgmJiEvW15hLXowLTlcOlwvXD9cI1xbXF1cQFwhXCRcJlwnXChcKVwqXCtcLFw7XD1cLlwtXF9cflwlXS9pLnRlc3QoSCkmJiEvJVteMC05YS1mXS9pLnRl'@; put 'c3QoSCkmJiEvJVswLTlhLWZdKDo/W14wLTlhLWZdfCQpL2kudGVzdChIKSl7dmFyIFIsUCxMLFksQixqPSIiLFc9IiI7aWYoUD0oUj1fKEgpKVsyXSxMPVJbM10sWT1SWzRdLEI9Uls1XSwoaj1SWzFdKSYmai5sZW5ndGgmJkwubGVuZ3RoPj0wKXtpZihQJiZQLmxlbmd0aCl7aWYoMCE9PUwu'@; put 'bGVuZ3RoJiYhL15cLy8udGVzdChMKSlyZXR1cm59ZWxzZSBpZigvXlwvXC8vLnRlc3QoTCkpcmV0dXJuO2lmKC9eW2Etel1bYS16MC05XCtcLVwuXSokLy50ZXN0KGoudG9Mb3dlckNhc2UoKSkpcmV0dXJuIFcrPWorIjoiLFAmJlAubGVuZ3RoJiYoVys9Ii8vIitQKSxXKz1MLFkmJlkubGVu'@; put 'Z3RoJiYoVys9Ij8iK1kpLEImJkIubGVuZ3RoJiYoVys9IiMiK0IpLFd9fX1mdW5jdGlvbiBOKEgsUil7aWYocChIKSl7dmFyIGosWSxXLFosUD0iIixMPSIiLEI9IiIsWD0iIjtpZihMPShqPV8oSCkpWzJdLFk9alszXSxXPWpbNF0sWj1qWzVdLFA9alsxXSl7aWYoUil7aWYoImh0dHBzIiE9'@; put 'UC50b0xvd2VyQ2FzZSgpKXJldHVybn1lbHNlIGlmKCJodHRwIiE9UC50b0xvd2VyQ2FzZSgpKXJldHVybjtpZihMKXJldHVybi86KFxkKykkLy50ZXN0KEwpJiYoQj1MLm1hdGNoKC86KFxkKykkLylbMF0sTD1MLnJlcGxhY2UoLzpcZCskLywiIikpLFgrPVArIjoiLFgrPSIvLyIrTCxCJiYo'@; put 'WCs9QiksWCs9WSxXJiZXLmxlbmd0aCYmKFgrPSI/IitXKSxaJiZaLmxlbmd0aCYmKFgrPSIjIitaKSxYfX19ZnVuY3Rpb24gdyhIKXtyZXR1cm4gTihILCEwKX1mdW5jdGlvbiBGKEgpe3JldHVybiBOKEgpfHx3KEgpfX0oY2U9Yi5ubWQoY2UpKX0sODY2MTooY2UsSixiKT0+e2NlLmV4cG9y'@; put 'dHM9Yig4NjYxKX0sNDQwNjg6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig4OTk5OSksXz1iKDk3NTk0KSxwPWIoNDgxMjgpLE49YigxMjc3Myksdz1iKDgzNzk4KSxGPWIoOTE2MjcpLEg9TigiT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyIpLFI9Yig4ODc3OSkoKSxqPXR5cGVv'@; put 'ZiBnbG9iYWxUaGlzPiJ1Ij9nbG9iYWw6Z2xvYmFsVGhpcyxQPV8oKSxMPU4oIlN0cmluZy5wcm90b3R5cGUuc2xpY2UiKSxZPU4oIkFycmF5LnByb3RvdHlwZS5pbmRleE9mIiwhMCl8fGZ1bmN0aW9uKFEscSl7Zm9yKHZhciB0ZT0wO3RlPFEubGVuZ3RoO3RlKz0xKWlmKFFbdGVdPT09cSly'@; put 'ZXR1cm4gdGU7cmV0dXJuLTF9LEI9e19fcHJvdG9fXzpudWxsfTtEKFAsUiYmdyYmRj9mdW5jdGlvbihYKXt2YXIgUT1uZXcgaltYXTtpZihTeW1ib2wudG9TdHJpbmdUYWcgaW4gUSYmRil7dmFyIHE9RihRKSx0ZT13KHEsU3ltYm9sLnRvU3RyaW5nVGFnKTtpZighdGUmJnEpe3ZhciBpZT1G'@; put 'KHEpO3RlPXcoaWUsU3ltYm9sLnRvU3RyaW5nVGFnKX1CWyIkIitYXT1wKHRlLmdldCl9fTpmdW5jdGlvbihYKXt2YXIgUT1uZXcgaltYXSxxPVEuc2xpY2V8fFEuc2V0O3EmJihCWyIkIitYXT1wKHEpKX0pLGNlLmV4cG9ydHM9ZnVuY3Rpb24oUSl7aWYoIVF8fCJvYmplY3QiIT10eXBlb2Yg'@; put 'USlyZXR1cm4hMTtpZighUil7dmFyIHE9TChIKFEpLDgsLTEpO3JldHVybiBZKFAscSk+LTE/cToiT2JqZWN0Ij09PXEmJmZ1bmN0aW9uKFEpe3ZhciBxPSExO3JldHVybiBEKEIsZnVuY3Rpb24odGUsaWUpe2lmKCFxKXRyeXt0ZShRKSxxPUwoaWUsMSl9Y2F0Y2h7fX0pLHF9KFEpfXJldHVy'@; put 'biB3P2Z1bmN0aW9uKFEpe3ZhciBxPSExO3JldHVybiBEKEIsZnVuY3Rpb24odGUsaWUpe2lmKCFxKXRyeXsiJCIrdGUoUSk9PT1pZSYmKHE9TChpZSwxKSl9Y2F0Y2h7fX0pLHF9KFEpOm51bGx9fSwzNTM1ODooY2UsSixiKT0+e3ZhciBEPXsiLi9hZiI6MTE1NDQsIi4vYWYuanMiOjExNTQ0'@; put 'LCIuL2FyIjozMzEwOCwiLi9hci1keiI6NTIxNTUsIi4vYXItZHouanMiOjUyMTU1LCIuL2FyLWt3Ijo1MzU4MywiLi9hci1rdy5qcyI6NTM1ODMsIi4vYXItbHkiOjQxNjM4LCIuL2FyLWx5LmpzIjo0MTYzOCwiLi9hci1tYSI6ODc4MjMsIi4vYXItbWEuanMiOjg3ODIzLCIuL2FyLXBzIjo3'@; put 'NzEyLCIuL2FyLXBzLmpzIjo3NzEyLCIuL2FyLXNhIjo3ODI2MSwiLi9hci1zYS5qcyI6NzgyNjEsIi4vYXItdG4iOjU2NzAzLCIuL2FyLXRuLmpzIjo1NjcwMywiLi9hci5qcyI6MzMxMDgsIi4vYXoiOjQ2NTA4LCIuL2F6LmpzIjo0NjUwOCwiLi9iZSI6MTY3NjYsIi4vYmUuanMiOjE2NzY2'@; put 'LCIuL2JnIjoyODU2NCwiLi9iZy5qcyI6Mjg1NjQsIi4vYm0iOjk3NDYyLCIuL2JtLmpzIjo5NzQ2MiwiLi9ibiI6MTcxMDcsIi4vYm4tYmQiOjQzNDM4LCIuL2JuLWJkLmpzIjo0MzQzOCwiLi9ibi5qcyI6MTcxMDcsIi4vYm8iOjkwMDQsIi4vYm8uanMiOjkwMDQsIi4vYnIiOjUwOTI3LCIu'@; put 'L2JyLmpzIjo1MDkyNywiLi9icyI6ODc3NjgsIi4vYnMuanMiOjg3NzY4LCIuL2NhIjo1NjI5MSwiLi9jYS5qcyI6NTYyOTEsIi4vY3MiOjg1MzAxLCIuL2NzLmpzIjo4NTMwMSwiLi9jdiI6NjY2NjYsIi4vY3YuanMiOjY2NjY2LCIuL2N5Ijo1NTE2MywiLi9jeS5qcyI6NTUxNjMsIi4vZGEi'@; put 'Ojg3MzYwLCIuL2RhLmpzIjo4NzM2MCwiLi9kZSI6NDU5MzIsIi4vZGUtYXQiOjQzMjQ4LCIuL2RlLWF0LmpzIjo0MzI0OCwiLi9kZS1jaCI6ODMyMjIsIi4vZGUtY2guanMiOjgzMjIyLCIuL2RlLmpzIjo0NTkzMiwiLi9kdiI6NjQwNSwiLi9kdi5qcyI6NjQwNSwiLi9lbCI6NjA3MTgsIi4v'@; put 'ZWwuanMiOjYwNzE4LCIuL2VuLWF1IjozNjMxOSwiLi9lbi1hdS5qcyI6MzYzMTksIi4vZW4tY2EiOjgwNTk3LCIuL2VuLWNhLmpzIjo4MDU5NywiLi9lbi1nYiI6NTE4MDAsIi4vZW4tZ2IuanMiOjUxODAwLCIuL2VuLWllIjo4MDcsIi4vZW4taWUuanMiOjgwNywiLi9lbi1pbCI6OTU5NjAs'@; put 'Ii4vZW4taWwuanMiOjk1OTYwLCIuL2VuLWluIjo4NDQxOCwiLi9lbi1pbi5qcyI6ODQ0MTgsIi4vZW4tbnoiOjQ2ODY1LCIuL2VuLW56LmpzIjo0Njg2NSwiLi9lbi1zZyI6MzI2NDcsIi4vZW4tc2cuanMiOjMyNjQ3LCIuL2VvIjo2MTkzMSwiLi9lby5qcyI6NjE5MzEsIi4vZXMiOjQ2Njc5'@; put 'LCIuL2VzLWRvIjo0MTgwNSwiLi9lcy1kby5qcyI6NDE4MDUsIi4vZXMtbXgiOjgzNDQ1LCIuL2VzLW14LmpzIjo4MzQ0NSwiLi9lcy11cyI6ODE1MTYsIi4vZXMtdXMuanMiOjgxNTE2LCIuL2VzLmpzIjo0NjY3OSwiLi9ldCI6ODgxNTAsIi4vZXQuanMiOjg4MTUwLCIuL2V1Ijo4MDc1Nywi'@; put 'Li9ldS5qcyI6ODA3NTcsIi4vZmEiOjY1NzQyLCIuL2ZhLmpzIjo2NTc0MiwiLi9maSI6MzM5NTgsIi4vZmkuanMiOjMzOTU4LCIuL2ZpbCI6NDY3MjAsIi4vZmlsLmpzIjo0NjcyMCwiLi9mbyI6OTgzNTIsIi4vZm8uanMiOjk4MzUyLCIuL2ZyIjo0MDU5LCIuL2ZyLWNhIjo0MjA5NiwiLi9m'@; put 'ci1jYS5qcyI6NDIwOTYsIi4vZnItY2giOjk1NzU5LCIuL2ZyLWNoLmpzIjo5NTc1OSwiLi9mci5qcyI6NDA1OSwiLi9meSI6MTU5NTgsIi4vZnkuanMiOjE1OTU4LCIuL2dhIjo5NDE0MywiLi9nYS5qcyI6OTQxNDMsIi4vZ2QiOjY3MDI4LCIuL2dkLmpzIjo2NzAyOCwiLi9nbCI6ODA0Mjgs'@; put 'Ii4vZ2wuanMiOjgwNDI4LCIuL2dvbS1kZXZhIjo3Njg2MSwiLi9nb20tZGV2YS5qcyI6NzY4NjEsIi4vZ29tLWxhdG4iOjU3NzE4LCIuL2dvbS1sYXRuLmpzIjo1NzcxOCwiLi9ndSI6MjY4MjcsIi4vZ3UuanMiOjI2ODI3LCIuL2hlIjoyMTkzNiwiLi9oZS5qcyI6MjE5MzYsIi4vaGkiOjMx'@; put 'MzMyLCIuL2hpLmpzIjozMTMzMiwiLi9ociI6OTE5NTcsIi4vaHIuanMiOjkxOTU3LCIuL2h1Ijo0ODkyOCwiLi9odS5qcyI6NDg5MjgsIi4vaHktYW0iOjU2MjE1LCIuL2h5LWFtLmpzIjo1NjIxNSwiLi9pZCI6NTg2LCIuL2lkLmpzIjo1ODYsIi4vaXMiOjkwMjExLCIuL2lzLmpzIjo5MDIx'@; put 'MSwiLi9pdCI6NzAxNzAsIi4vaXQtY2giOjIyMzQwLCIuL2l0LWNoLmpzIjoyMjM0MCwiLi9pdC5qcyI6NzAxNzAsIi4vamEiOjM5NzcwLCIuL2phLmpzIjozOTc3MCwiLi9qdiI6NzM4NzUsIi4vanYuanMiOjczODc1LCIuL2thIjo3OTQ5OSwiLi9rYS5qcyI6Nzk0OTksIi4va2siOjkzNTcz'@; put 'LCIuL2trLmpzIjo5MzU3MywiLi9rbSI6Njg4MDcsIi4va20uanMiOjY4ODA3LCIuL2tuIjo2NTA4MiwiLi9rbi5qcyI6NjUwODIsIi4va28iOjIwMTM3LCIuL2tvLmpzIjoyMDEzNywiLi9rdSI6NzAxMTEsIi4va3Uta21yIjo2Mzc0NCwiLi9rdS1rbXIuanMiOjYzNzQ0LCIuL2t1LmpzIjo3'@; put 'MDExMSwiLi9reSI6OTkxODcsIi4va3kuanMiOjk5MTg3LCIuL2xiIjozNTk2OSwiLi9sYi5qcyI6MzU5NjksIi4vbG8iOjMzNTI2LCIuL2xvLmpzIjozMzUyNiwiLi9sdCI6OTA0MTEsIi4vbHQuanMiOjkwNDExLCIuL2x2IjozMjYyMSwiLi9sdi5qcyI6MzI2MjEsIi4vbWUiOjg1ODY5LCIu'@; put 'L21lLmpzIjo4NTg2OSwiLi9taSI6MzU4ODEsIi4vbWkuanMiOjM1ODgxLCIuL21rIjo5MjM5MSwiLi9tay5qcyI6OTIzOTEsIi4vbWwiOjIxMTI2LCIuL21sLmpzIjoyMTEyNiwiLi9tbiI6NDQ4OTIsIi4vbW4uanMiOjQ0ODkyLCIuL21yIjo1OTA4MCwiLi9tci5qcyI6NTkwODAsIi4vbXMi'@; put 'OjcwMzk5LCIuL21zLW15IjoyNTk1MCwiLi9tcy1teS5qcyI6MjU5NTAsIi4vbXMuanMiOjcwMzk5LCIuL210Ijo3OTkwMiwiLi9tdC5qcyI6Nzk5MDIsIi4vbXkiOjcyOTg1LCIuL215LmpzIjo3Mjk4NSwiLi9uYiI6Njc4NTksIi4vbmIuanMiOjY3ODU5LCIuL25lIjoxMzY0MiwiLi9uZS5q'@; put 'cyI6MTM2NDIsIi4vbmwiOjY1NDQxLCIuL25sLWJlIjo5OTg3NSwiLi9ubC1iZS5qcyI6OTk4NzUsIi4vbmwuanMiOjY1NDQxLCIuL25uIjo4MTMxMSwiLi9ubi5qcyI6ODEzMTEsIi4vb2MtbG5jIjo3MjU2NywiLi9vYy1sbmMuanMiOjcyNTY3LCIuL3BhLWluIjo1Njk2MiwiLi9wYS1pbi5q'@; put 'cyI6NTY5NjIsIi4vcGwiOjYxMDYzLCIuL3BsLmpzIjo2MTA2MywiLi9wdCI6Nzg3MTksIi4vcHQtYnIiOjk3NDc2LCIuL3B0LWJyLmpzIjo5NzQ3NiwiLi9wdC5qcyI6Nzg3MTksIi4vcm8iOjUxMDA0LCIuL3JvLmpzIjo1MTAwNCwiLi9ydSI6NTEzMjYsIi4vcnUuanMiOjUxMzI2LCIuL3Nk'@; put 'Ijo3MjYwOCwiLi9zZC5qcyI6NzI2MDgsIi4vc2UiOjEzOTExLCIuL3NlLmpzIjoxMzkxMSwiLi9zaSI6MjUxNDcsIi4vc2kuanMiOjI1MTQ3LCIuL3NrIjoyMzc0MSwiLi9zay5qcyI6MjM3NDEsIi4vc2wiOjkzZTMsIi4vc2wuanMiOjkzZTMsIi4vc3EiOjYwNDUxLCIuL3NxLmpzIjo2MDQ1'@; put 'MSwiLi9zciI6NTUwNDYsIi4vc3ItY3lybCI6NDA5MDUsIi4vc3ItY3lybC5qcyI6NDA5MDUsIi4vc3IuanMiOjU1MDQ2LCIuL3NzIjo4NTc2NSwiLi9zcy5qcyI6ODU3NjUsIi4vc3YiOjk5MjkwLCIuL3N2LmpzIjo5OTI5MCwiLi9zdyI6NTM0NDksIi4vc3cuanMiOjUzNDQ5LCIuL3RhIjo3'@; put 'MjY4OCwiLi90YS5qcyI6NzI2ODgsIi4vdGUiOjMyMDYwLCIuL3RlLmpzIjozMjA2MCwiLi90ZXQiOjkzMjkwLCIuL3RldC5qcyI6OTMyOTAsIi4vdGciOjgyOTQsIi4vdGcuanMiOjgyOTQsIi4vdGgiOjEyMzEsIi4vdGguanMiOjEyMzEsIi4vdGsiOjM3NDYsIi4vdGsuanMiOjM3NDYsIi4v'@; put 'dGwtcGgiOjQ5MDQwLCIuL3RsLXBoLmpzIjo0OTA0MCwiLi90bGgiOjE3MTg3LCIuL3RsaC5qcyI6MTcxODcsIi4vdHIiOjYwMTUzLCIuL3RyLmpzIjo2MDE1MywiLi90emwiOjg4NTIxLCIuL3R6bC5qcyI6ODg1MjEsIi4vdHptIjoxODAxMCwiLi90em0tbGF0biI6MjIyMzQsIi4vdHptLWxh'@; put 'dG4uanMiOjIyMjM0LCIuL3R6bS5qcyI6MTgwMTAsIi4vdWctY24iOjYzMzQ5LCIuL3VnLWNuLmpzIjo2MzM0OSwiLi91ayI6Njg0NzksIi4vdWsuanMiOjY4NDc5LCIuL3VyIjo0MzAyNCwiLi91ci5qcyI6NDMwMjQsIi4vdXoiOjE5ODAwLCIuL3V6LWxhdG4iOjcyMzc2LCIuL3V6LWxhdG4u'@; put 'anMiOjcyMzc2LCIuL3V6LmpzIjoxOTgwMCwiLi92aSI6ODkzNjYsIi4vdmkuanMiOjg5MzY2LCIuL3gtcHNldWRvIjo2OTcwMiwiLi94LXBzZXVkby5qcyI6Njk3MDIsIi4veW8iOjcyNjU1LCIuL3lvLmpzIjo3MjY1NSwiLi96aC1jbiI6NTc1LCIuL3poLWNuLmpzIjo1NzUsIi4vemgtaGsi'@; put 'OjE4MzUxLCIuL3poLWhrLmpzIjoxODM1MSwiLi96aC1tbyI6NTE2MjYsIi4vemgtbW8uanMiOjUxNjI2LCIuL3poLXR3Ijo4ODg3LCIuL3poLXR3LmpzIjo4ODg3fTtmdW5jdGlvbiBfKE4pe3ZhciB3PXAoTik7cmV0dXJuIGIodyl9ZnVuY3Rpb24gcChOKXtpZighYi5vKEQsTikpe3ZhciB3'@; put 'PW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK04rIiciKTt0aHJvdyB3LmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLHd9cmV0dXJuIERbTl19Xy5rZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKEQpfSxfLnJlc29sdmU9cCxjZS5leHBvcnRzPV8sXy5pZD0zNTM1OH0s'@; put 'ODMzMzc6KCk9Pnt9LDc4OTgyOigpPT57fSw0Nzc5MDooKT0+e30sNzc5NjU6KCk9Pnt9LDY2MDg5OigpPT57fSw3OTM2ODooKT0+e30sMTU3OTE6KCk9Pnt9LDYxMDkzOigpPT57fSw2NDY4ODooKT0+e30sNTEwNjk6KCk9Pnt9LDE1MzQwOigpPT57fSw3OTgzODooKT0+e30sNjM3Nzk6KCk9'@; put 'Pnt9LDc3MTk5OigpPT57fSw5NzU5NDooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDUwMTkpLF89dHlwZW9mIGdsb2JhbFRoaXM+InUiP2dsb2JhbDpnbG9iYWxUaGlzO2NlLmV4cG9ydHM9ZnVuY3Rpb24oKXtmb3IodmFyIE49W10sdz0wO3c8RC5sZW5ndGg7dysrKSJmdW5jdGlv'@; put 'biI9PXR5cGVvZiBfW0Rbd11dJiYoTltOLmxlbmd0aF09RFt3XSk7cmV0dXJuIE59fSwyNTE3MjpjZT0+e2NlLmV4cG9ydHM9ZnVuY3Rpb24gSihiLEQpe3RoaXMudj1iLHRoaXMuaz1EfSxjZS5leHBvcnRzLl9fZXNNb2R1bGU9ITAsY2UuZXhwb3J0cy5kZWZhdWx0PWNlLmV4cG9ydHN9LDkz'@; put 'NTEzOihjZSxKLGIpPT57dmFyIEQ9YigyNTE3Mik7Y2UuZXhwb3J0cz1mdW5jdGlvbiBfKHApe3ZhciBOPXt9LHc9ITE7ZnVuY3Rpb24gRihILFIpe3JldHVybiB3PSEwLFI9bmV3IFByb21pc2UoZnVuY3Rpb24oail7aihwW0hdKFIpKX0pLHtkb25lOiExLHZhbHVlOm5ldyBEKFIsMSl9fXJl'@; put 'dHVybiBOW3R5cGVvZiBTeW1ib2w8InUiJiZTeW1ib2wuaXRlcmF0b3J8fCJAQGl0ZXJhdG9yIl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sTi5uZXh0PWZ1bmN0aW9uKEgpe3JldHVybiB3Pyh3PSExLEgpOkYoIm5leHQiLEgpfSwiZnVuY3Rpb24iPT10eXBlb2YgcC50aHJvdyYmKE4udGhy'@; put 'b3c9ZnVuY3Rpb24oSCl7aWYodyl0aHJvdyB3PSExLEg7cmV0dXJuIEYoInRocm93IixIKX0pLCJmdW5jdGlvbiI9PXR5cGVvZiBwLnJldHVybiYmKE4ucmV0dXJuPWZ1bmN0aW9uKEgpe3JldHVybiB3Pyh3PSExLEgpOkYoInJldHVybiIsSCl9KSxOfSxjZS5leHBvcnRzLl9fZXNNb2R1bGU9'@; put 'ITAsY2UuZXhwb3J0cy5kZWZhdWx0PWNlLmV4cG9ydHN9LDgyODgxOmNlPT57ZnVuY3Rpb24gYihEKXtmdW5jdGlvbiBfKHApe2lmKE9iamVjdChwKSE9PXApcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBUeXBlRXJyb3IocCsiIGlzIG5vdCBhbiBvYmplY3QuIikpO3ZhciBOPXAuZG9uZTty'@; put 'ZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHAudmFsdWUpLnRoZW4oZnVuY3Rpb24odyl7cmV0dXJue3ZhbHVlOncsZG9uZTpOfX0pfXJldHVybihiPWZ1bmN0aW9uKE4pe3RoaXMucz1OLHRoaXMubj1OLm5leHR9KS5wcm90b3R5cGU9e3M6bnVsbCxuOm51bGwsbmV4dDpmdW5jdGlvbigpe3JldHVy'@; put 'biBfKHRoaXMubi5hcHBseSh0aGlzLnMsYXJndW1lbnRzKSl9LHJldHVybjpmdW5jdGlvbihOKXt2YXIgdz10aGlzLnMucmV0dXJuO3JldHVybiB2b2lkIDA9PT13P1Byb21pc2UucmVzb2x2ZSh7dmFsdWU6Tixkb25lOiEwfSk6Xyh3LmFwcGx5KHRoaXMucyxhcmd1bWVudHMpKX0sdGhyb3c6'@; put 'ZnVuY3Rpb24oTil7dmFyIHc9dGhpcy5zLnJldHVybjtyZXR1cm4gdm9pZCAwPT09dz9Qcm9taXNlLnJlamVjdChOKTpfKHcuYXBwbHkodGhpcy5zLGFyZ3VtZW50cykpfX0sbmV3IGIoRCl9Y2UuZXhwb3J0cz1mdW5jdGlvbiBKKEQpe3ZhciBfLHAsTix3PTI7Zm9yKHR5cGVvZiBTeW1ib2w8'@; put 'InUiJiYocD1TeW1ib2wuYXN5bmNJdGVyYXRvcixOPVN5bWJvbC5pdGVyYXRvcik7dy0tOyl7aWYocCYmbnVsbCE9KF89RFtwXSkpcmV0dXJuIF8uY2FsbChEKTtpZihOJiZudWxsIT0oXz1EW05dKSlyZXR1cm4gbmV3IGIoXy5jYWxsKEQpKTtwPSJAQGFzeW5jSXRlcmF0b3IiLE49IkBAaXRl'@; put 'cmF0b3IifXRocm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdCBpcyBub3QgYXN5bmMgaXRlcmFibGUiKX0sY2UuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLGNlLmV4cG9ydHMuZGVmYXVsdD1jZS5leHBvcnRzfSwyOTI5MzpjZT0+e2Z1bmN0aW9uIEooRCxfLHAsTix3LEYsSCl7dHJ5e3ZhciBSPURb'@; put 'Rl0oSCksaj1SLnZhbHVlfWNhdGNoKFApe3JldHVybiB2b2lkIHAoUCl9Ui5kb25lP18oaik6UHJvbWlzZS5yZXNvbHZlKGopLnRoZW4oTix3KX1jZS5leHBvcnRzPWZ1bmN0aW9uIGIoRCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIF89dGhpcyxwPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21p'@; put 'c2UoZnVuY3Rpb24oTix3KXt2YXIgRj1ELmFwcGx5KF8scCk7ZnVuY3Rpb24gSChqKXtKKEYsTix3LEgsUiwibmV4dCIsail9ZnVuY3Rpb24gUihqKXtKKEYsTix3LEgsUiwidGhyb3ciLGopfUgodm9pZCAwKX0pfX0sY2UuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLGNlLmV4cG9ydHMuZGVmYXVs'@; put 'dD1jZS5leHBvcnRzfSw1MzM0NDooY2UsSixiKT0+e3ZhciBEPWIoMjUxNzIpO2NlLmV4cG9ydHM9ZnVuY3Rpb24gXyhwKXtyZXR1cm4gbmV3IEQocCwwKX0sY2UuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLGNlLmV4cG9ydHMuZGVmYXVsdD1jZS5leHBvcnRzfSw0Mjk1ODooY2UsSixiKT0+e3Zh'@; put 'ciBEPWIoMjUxNzIpO2Z1bmN0aW9uIHAoTil7dmFyIHcsRjtmdW5jdGlvbiBIKGosUCl7dHJ5e3ZhciBMPU5bal0oUCksWT1MLnZhbHVlLEI9WSBpbnN0YW5jZW9mIEQ7UHJvbWlzZS5yZXNvbHZlKEI/WS52OlkpLnRoZW4oZnVuY3Rpb24oVyl7aWYoQil7dmFyIFo9InJldHVybiI9PT1qPyJy'@; put 'ZXR1cm4iOiJuZXh0IjtpZighWS5rfHxXLmRvbmUpcmV0dXJuIEgoWixXKTtXPU5bWl0oVykudmFsdWV9UihMLmRvbmU/InJldHVybiI6Im5vcm1hbCIsVyl9LGZ1bmN0aW9uKFcpe0goInRocm93IixXKX0pfWNhdGNoKFcpe1IoInRocm93IixXKX19ZnVuY3Rpb24gUihqLFApe3N3aXRjaChq'@; put 'KXtjYXNlInJldHVybiI6dy5yZXNvbHZlKHt2YWx1ZTpQLGRvbmU6ITB9KTticmVhaztjYXNlInRocm93Ijp3LnJlamVjdChQKTticmVhaztkZWZhdWx0OncucmVzb2x2ZSh7dmFsdWU6UCxkb25lOiExfSl9KHc9dy5uZXh0KT9IKHcua2V5LHcuYXJnKTpGPW51bGx9dGhpcy5faW52b2tlPWZ1'@; put 'bmN0aW9uKGosUCl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKEwsWSl7dmFyIEI9e2tleTpqLGFyZzpQLHJlc29sdmU6TCxyZWplY3Q6WSxuZXh0Om51bGx9O0Y/Rj1GLm5leHQ9Qjoodz1GPUIsSChqLFApKX0pfSwiZnVuY3Rpb24iIT10eXBlb2YgTi5yZXR1cm4mJih0aGlzLnJldHVy'@; put 'bj12b2lkIDApfXAucHJvdG90eXBlWyJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5hc3luY0l0ZXJhdG9yfHwiQEBhc3luY0l0ZXJhdG9yIl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30scC5wcm90b3R5cGUubmV4dD1mdW5jdGlvbihOKXtyZXR1cm4gdGhpcy5faW52b2tlKCJu'@; put 'ZXh0IixOKX0scC5wcm90b3R5cGUudGhyb3c9ZnVuY3Rpb24oTil7cmV0dXJuIHRoaXMuX2ludm9rZSgidGhyb3ciLE4pfSxwLnByb3RvdHlwZS5yZXR1cm49ZnVuY3Rpb24oTil7cmV0dXJuIHRoaXMuX2ludm9rZSgicmV0dXJuIixOKX0sY2UuZXhwb3J0cz1mdW5jdGlvbiBfKE4pe3JldHVy'@; put 'biBmdW5jdGlvbigpe3JldHVybiBuZXcgcChOLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9fSxjZS5leHBvcnRzLl9fZXNNb2R1bGU9ITAsY2UuZXhwb3J0cy5kZWZhdWx0PWNlLmV4cG9ydHN9LDMxNDgzOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMTkxNTApLF89Yig3NTIxMiks'@; put 'cD1UeXBlRXJyb3I7Y2UuZXhwb3J0cz1mdW5jdGlvbihOKXtpZihEKE4pKXJldHVybiBOO3Rocm93IG5ldyBwKF8oTikrIiBpcyBub3QgYSBmdW5jdGlvbiIpfX0sMjc2NzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDQzNDA2KSxfPVN0cmluZyxwPVR5cGVFcnJvcjtjZS5leHBv'@; put 'cnRzPWZ1bmN0aW9uKE4pe2lmKEQoTikpcmV0dXJuIE47dGhyb3cgbmV3IHAoIkNhbid0IHNldCAiK18oTikrIiBhcyBhIHByb3RvdHlwZSIpfX0sMzc3MzE6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig5NzU0MSkuaGFzO2NlLmV4cG9ydHM9ZnVuY3Rpb24oXyl7cmV0dXJuIEQo'@; put 'XyksX319LDcwODI0OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNTgwMTIpLF89Yig5Nzk1MSkscD1iKDQ0NjQ4KS5mLE49RCgidW5zY29wYWJsZXMiKSx3PUFycmF5LnByb3RvdHlwZTt2b2lkIDA9PT13W05dJiZwKHcsTix7Y29uZmlndXJhYmxlOiEwLHZhbHVlOl8obnVsbCl9'@; put 'KSxjZS5leHBvcnRzPWZ1bmN0aW9uKEYpe3dbTl1bRl09ITB9fSw2MzMzNjooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDQ2OCksXz1UeXBlRXJyb3I7Y2UuZXhwb3J0cz1mdW5jdGlvbihwLE4pe2lmKEQoTixwKSlyZXR1cm4gcDt0aHJvdyBuZXcgXygiSW5jb3JyZWN0IGludm9j'@; put 'YXRpb24iKX19LDExMDg6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigzMjYzMyksXz1TdHJpbmcscD1UeXBlRXJyb3I7Y2UuZXhwb3J0cz1mdW5jdGlvbihOKXtpZihEKE4pKXJldHVybiBOO3Rocm93IG5ldyBwKF8oTikrIiBpcyBub3QgYW4gb2JqZWN0Iil9fSwzODgxOihjZSxK'@; put 'LGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNzE3MSk7Y2UuZXhwb3J0cz1mdW5jdGlvbihfLHAsTil7Zm9yKHZhciB3PTAsRj1hcmd1bWVudHMubGVuZ3RoPjI/TjpEKHApLEg9bmV3IF8oRik7Rj53OylIW3ddPXBbdysrXTtyZXR1cm4gSH19LDc0ODI0OihjZSxKLGIpPT57InVzZSBzdHJp'@; put 'Y3QiO3ZhciBEPWIoOTMxNjIpLF89Yig3NDg1KSxwPWIoNzE3MSksTj1mdW5jdGlvbih3KXtyZXR1cm4gZnVuY3Rpb24oRixILFIpe3ZhciBqPUQoRiksUD1wKGopO2lmKDA9PT1QKXJldHVybiF3JiYtMTt2YXIgWSxMPV8oUixQKTtpZih3JiZIIT1IKXtmb3IoO1A+TDspaWYoKFk9altMKytd'@; put 'KSE9WSlyZXR1cm4hMH1lbHNlIGZvcig7UD5MO0wrKylpZigod3x8TCBpbiBqKSYmaltMXT09PUgpcmV0dXJuIHd8fEx8fDA7cmV0dXJuIXcmJi0xfX07Y2UuZXhwb3J0cz17aW5jbHVkZXM6TighMCksaW5kZXhPZjpOKCExKX19LDM5MjA2OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBE'@; put 'PWIoNDYzODcpLF89Yig2NzI3NykscD1UeXBlRXJyb3IsTj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLHc9RCYmIWZ1bmN0aW9uKCl7aWYodm9pZCAwIT09dGhpcylyZXR1cm4hMDt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KFtdLCJsZW5ndGgiLHt3cml0YWJsZTohMX0pLmxl'@; put 'bmd0aD0xfWNhdGNoKEYpe3JldHVybiBGIGluc3RhbmNlb2YgVHlwZUVycm9yfX0oKTtjZS5leHBvcnRzPXc/ZnVuY3Rpb24oRixIKXtpZihfKEYpJiYhTihGLCJsZW5ndGgiKS53cml0YWJsZSl0aHJvdyBuZXcgcCgiQ2Fubm90IHNldCByZWFkIG9ubHkgLmxlbmd0aCIpO3JldHVybiBGLmxl'@; put 'bmd0aD1IfTpmdW5jdGlvbihGLEgpe3JldHVybiBGLmxlbmd0aD1IfX0sNzc2Mzk6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig1ODYwNyk7Y2UuZXhwb3J0cz1EKFtdLnNsaWNlKX0sNDI5MjY6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigxMTA4KSxfPWIoNjY1NDIp'@; put 'O2NlLmV4cG9ydHM9ZnVuY3Rpb24ocCxOLHcsRil7dHJ5e3JldHVybiBGP04oRCh3KVswXSx3WzFdKTpOKHcpfWNhdGNoKEgpe18ocCwidGhyb3ciLEgpfX19LDg2Njc1OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNTg2MDcpLF89RCh7fS50b1N0cmluZykscD1EKCIiLnNsaWNl'@; put 'KTtjZS5leHBvcnRzPWZ1bmN0aW9uKE4pe3JldHVybiBwKF8oTiksOCwtMSl9fSw3MTgyNDooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDM4NTk1KSxfPWIoMTkxNTApLHA9Yig4NjY3NSksdz1iKDU4MDEyKSgidG9TdHJpbmdUYWciKSxGPU9iamVjdCxIPSJBcmd1bWVudHMiPT09'@; put 'cChmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpO2NlLmV4cG9ydHM9RD9wOmZ1bmN0aW9uKGope3ZhciBQLEwsWTtyZXR1cm4gdm9pZCAwPT09aj8iVW5kZWZpbmVkIjpudWxsPT09aj8iTnVsbCI6InN0cmluZyI9PXR5cGVvZihMPWZ1bmN0aW9uKGosUCl7dHJ5e3JldHVybiBqW1Bd'@; put 'fWNhdGNoe319KFA9RihqKSx3KSk/TDpIP3AoUCk6Ik9iamVjdCI9PT0oWT1wKFApKSYmXyhQLmNhbGxlZSk/IkFyZ3VtZW50cyI6WX19LDQ4NjM5OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMzhlMyksXz1iKDg4MDc4KSxwPWIoNTQxMjIpLE49Yig0NDY0OCk7Y2UuZXhwb3J0'@; put 'cz1mdW5jdGlvbih3LEYsSCl7Zm9yKHZhciBSPV8oRiksaj1OLmYsUD1wLmYsTD0wO0w8Ui5sZW5ndGg7TCsrKXt2YXIgWT1SW0xdOyFEKHcsWSkmJighSHx8IUQoSCxZKSkmJmoodyxZLFAoRixZKSl9fX0sODI4MzQ6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig1NTU5Mik7Y2Uu'@; put 'ZXhwb3J0cz0hRChmdW5jdGlvbigpe2Z1bmN0aW9uIF8oKXt9cmV0dXJuIF8ucHJvdG90eXBlLmNvbnN0cnVjdG9yPW51bGwsT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyBfKSE9PV8ucHJvdG90eXBlfSl9LDU4OTc4OmNlPT57InVzZSBzdHJpY3QiO2NlLmV4cG9ydHM9ZnVuY3Rpb24oSixi'@; put 'KXtyZXR1cm57dmFsdWU6Sixkb25lOmJ9fX0sMzY2Nzg6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig0NjM4NyksXz1iKDQ0NjQ4KSxwPWIoNzc3NzMpO2NlLmV4cG9ydHM9RD9mdW5jdGlvbihOLHcsRil7cmV0dXJuIF8uZihOLHcscCgxLEYpKX06ZnVuY3Rpb24oTix3LEYpe3Jl'@; put 'dHVybiBOW3ddPUYsTn19LDc3NzczOmNlPT57InVzZSBzdHJpY3QiO2NlLmV4cG9ydHM9ZnVuY3Rpb24oSixiKXtyZXR1cm57ZW51bWVyYWJsZTohKDEmSiksY29uZmlndXJhYmxlOiEoMiZKKSx3cml0YWJsZTohKDQmSiksdmFsdWU6Yn19fSw1ODc5NTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0'@; put 'Ijt2YXIgRD1iKDQ2Mzg3KSxfPWIoNDQ2NDgpLHA9Yig3Nzc3Myk7Y2UuZXhwb3J0cz1mdW5jdGlvbihOLHcsRil7RD9fLmYoTix3LHAoMCxGKSk6Tlt3XT1GfX0sNDQwMzk6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigxNjk4MCksXz1iKDQ0NjQ4KTtjZS5leHBvcnRzPWZ1bmN0'@; put 'aW9uKHAsTix3KXtyZXR1cm4gdy5nZXQmJkQody5nZXQsTix7Z2V0dGVyOiEwfSksdy5zZXQmJkQody5zZXQsTix7c2V0dGVyOiEwfSksXy5mKHAsTix3KX19LDMxMDgzOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMTkxNTApLF89Yig0NDY0OCkscD1iKDE2OTgwKSxOPWIoNDgx'@; put 'MDQpO2NlLmV4cG9ydHM9ZnVuY3Rpb24odyxGLEgsUil7Unx8KFI9e30pO3ZhciBqPVIuZW51bWVyYWJsZSxQPXZvaWQgMCE9PVIubmFtZT9SLm5hbWU6RjtpZihEKEgpJiZwKEgsUCxSKSxSLmdsb2JhbClqP3dbRl09SDpOKEYsSCk7ZWxzZXt0cnl7Ui51bnNhZmU/d1tGXSYmKGo9ITApOmRl'@; put 'bGV0ZSB3W0ZdfWNhdGNoe31qP3dbRl09SDpfLmYodyxGLHt2YWx1ZTpILGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiFSLm5vbkNvbmZpZ3VyYWJsZSx3cml0YWJsZTohUi5ub25Xcml0YWJsZX0pfXJldHVybiB3fX0sMTQ3NTA6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yigz'@; put 'MTA4Myk7Y2UuZXhwb3J0cz1mdW5jdGlvbihfLHAsTil7Zm9yKHZhciB3IGluIHApRChfLHcscFt3XSxOKTtyZXR1cm4gX319LDQ4MTA0OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMzM5NjMpLF89T2JqZWN0LmRlZmluZVByb3BlcnR5O2NlLmV4cG9ydHM9ZnVuY3Rpb24ocCxO'@; put 'KXt0cnl7XyhELHAse3ZhbHVlOk4sY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSl9Y2F0Y2h7RFtwXT1OfXJldHVybiBOfX0sNDMxOTU6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig3NTIxMiksXz1UeXBlRXJyb3I7Y2UuZXhwb3J0cz1mdW5jdGlvbihwLE4pe2lmKCFkZWxl'@; put 'dGUgcFtOXSl0aHJvdyBuZXcgXygiQ2Fubm90IGRlbGV0ZSBwcm9wZXJ0eSAiK0QoTikrIiBvZiAiK0QocCkpfX0sNDYzODc6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig1NTU5Mik7Y2UuZXhwb3J0cz0hRChmdW5jdGlvbigpe3JldHVybiA3IT09T2JqZWN0LmRlZmluZVByb3Bl'@; put 'cnR5KHt9LDEse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pWzFdfSl9LDU1OTg4OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMzM5NjMpLF89YigzMjYzMykscD1ELmRvY3VtZW50LE49XyhwKSYmXyhwLmNyZWF0ZUVsZW1lbnQpO2NlLmV4cG9ydHM9ZnVuY3Rpb24odyl7cmV0'@; put 'dXJuIE4/cC5jcmVhdGVFbGVtZW50KHcpOnt9fX0sMzMxNjpjZT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgSj1UeXBlRXJyb3I7Y2UuZXhwb3J0cz1mdW5jdGlvbihEKXtpZihEPjkwMDcxOTkyNTQ3NDA5OTEpdGhyb3cgSigiTWF4aW11bSBhbGxvd2VkIGluZGV4IGV4Y2VlZGVkIik7cmV0dXJuIER9'@; put 'fSw1ODU0MDpjZT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPVsiY29uc3RydWN0b3IiLCJoYXNPd25Qcm9wZXJ0eSIsImlzUHJvdG90eXBlT2YiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsInRvTG9jYWxlU3RyaW5nIiwidG9TdHJpbmciLCJ2YWx1ZU9mIl19LDQ0MTM3OihjZSxKLGIpPT57'@; put 'InVzZSBzdHJpY3QiO3ZhciBEPWIoMjM1OCk7Y2UuZXhwb3J0cz0vKD86aXBhZHxpcGhvbmV8aXBvZCkuKmFwcGxld2Via2l0L2kudGVzdChEKX0sMjE1MTA6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig0NzA5Mik7Y2UuZXhwb3J0cz0iTk9ERSI9PT1EfSwyMzU4OihjZSxKLGIp'@; put 'PT57InVzZSBzdHJpY3QiO3ZhciBfPWIoMzM5NjMpLm5hdmlnYXRvcixwPV8mJl8udXNlckFnZW50O2NlLmV4cG9ydHM9cD9TdHJpbmcocCk6IiJ9LDQ0MDY2OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBILFIsRD1iKDMzOTYzKSxfPWIoMjM1OCkscD1ELnByb2Nlc3MsTj1ELkRlbm8s'@; put 'dz1wJiZwLnZlcnNpb25zfHxOJiZOLnZlcnNpb24sRj13JiZ3LnY4O0YmJihSPShIPUYuc3BsaXQoIi4iKSlbMF0+MCYmSFswXTw0PzE6KyhIWzBdK0hbMV0pKSwhUiYmXyYmKCEoSD1fLm1hdGNoKC9FZGdlXC8oXGQrKS8pKXx8SFsxXT49NzQpJiYoSD1fLm1hdGNoKC9DaHJvbWVcLyhcZCsp'@; put 'LykpJiYoUj0rSFsxXSksY2UuZXhwb3J0cz1SfSw0NzA5MjooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDMzOTYzKSxfPWIoMjM1OCkscD1iKDg2Njc1KSxOPWZ1bmN0aW9uKHcpe3JldHVybiBfLnNsaWNlKDAsdy5sZW5ndGgpPT09d307Y2UuZXhwb3J0cz1OKCJCdW4vIik/IkJV'@; put 'TiI6TigiQ2xvdWRmbGFyZS1Xb3JrZXJzIik/IkNMT1VERkxBUkUiOk4oIkRlbm8vIik/IkRFTk8iOk4oIk5vZGUuanMvIik/Ik5PREUiOkQuQnVuJiYic3RyaW5nIj09dHlwZW9mIEJ1bi52ZXJzaW9uPyJCVU4iOkQuRGVubyYmIm9iamVjdCI9PXR5cGVvZiBEZW5vLnZlcnNpb24/IkRFTk8i'@; put 'OiJwcm9jZXNzIj09PXAoRC5wcm9jZXNzKT8iTk9ERSI6RC53aW5kb3cmJkQuZG9jdW1lbnQ/IkJST1dTRVIiOiJSRVNUIn0sOTg4NTQ6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig1ODYwNyksXz1FcnJvcixwPUQoIiIucmVwbGFjZSksTj1TdHJpbmcobmV3IF8oInp4Y2FzZCIp'@; put 'LnN0YWNrKSx3PS9cblxzKmF0IFteOl0qOlteXG5dKi8sRj13LnRlc3QoTik7Y2UuZXhwb3J0cz1mdW5jdGlvbihILFIpe2lmKEYmJiJzdHJpbmciPT10eXBlb2YgSCYmIV8ucHJlcGFyZVN0YWNrVHJhY2UpZm9yKDtSLS07KUg9cChILHcsIiIpO3JldHVybiBIfX0sMjIzMDQ6KGNlLEosYik9'@; put 'PnsidXNlIHN0cmljdCI7dmFyIEQ9YigzNjY3OCksXz1iKDk4ODU0KSxwPWIoNzQ5NjQpLE49RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U7Y2UuZXhwb3J0cz1mdW5jdGlvbih3LEYsSCxSKXtwJiYoTj9OKHcsRik6RCh3LCJzdGFjayIsXyhILFIpKSl9fSw3NDk2NDooY2UsSixiKT0+eyJ1c2Ug'@; put 'c3RyaWN0Ijt2YXIgRD1iKDU1NTkyKSxfPWIoNzc3NzMpO2NlLmV4cG9ydHM9IUQoZnVuY3Rpb24oKXt2YXIgcD1uZXcgRXJyb3IoImEiKTtyZXR1cm4hKCJzdGFjayJpbiBwKXx8KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwLCJzdGFjayIsXygxLDcpKSw3IT09cC5zdGFjayl9KX0sMjgzNjc6'@; put 'KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigzMzk2MyksXz1iKDU0MTIyKS5mLHA9YigzNjY3OCksTj1iKDMxMDgzKSx3PWIoNDgxMDQpLEY9Yig0ODYzOSksSD1iKDE2MzYzKTtjZS5leHBvcnRzPWZ1bmN0aW9uKFIsail7dmFyIFcsWixYLFEscSxQPVIudGFyZ2V0LEw9Ui5nbG9i'@; put 'YWwsWT1SLnN0YXQ7aWYoVz1MP0Q6WT9EW1BdfHx3KFAse30pOkRbUF0mJkRbUF0ucHJvdG90eXBlKWZvcihaIGluIGope2lmKFE9altaXSxYPVIuZG9udENhbGxHZXRTZXQ/KHE9XyhXLFopKSYmcS52YWx1ZTpXW1pdLCFIKEw/WjpQKyhZPyIuIjoiIyIpK1osUi5mb3JjZWQpJiZ2b2lkIDAh'@; put 'PT1YKXtpZih0eXBlb2YgUT09dHlwZW9mIFgpY29udGludWU7RihRLFgpfShSLnNoYW18fFgmJlguc2hhbSkmJnAoUSwic2hhbSIsITApLE4oVyxaLFEsUil9fX0sNTU1OTI6Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz1mdW5jdGlvbihKKXt0cnl7cmV0dXJuISFKKCl9Y2F0Y2h7cmV0'@; put 'dXJuITB9fX0sNDAyMjA6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig3NTE1NyksXz1GdW5jdGlvbi5wcm90b3R5cGUscD1fLmFwcGx5LE49Xy5jYWxsO2NlLmV4cG9ydHM9Im9iamVjdCI9PXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmFwcGx5fHwoRD9OLmJpbmQocCk6ZnVuY3Rp'@; put 'b24oKXtyZXR1cm4gTi5hcHBseShwLGFyZ3VtZW50cyl9KX0sNzg4MTE6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigzNjI5KSxfPWIoMzE0ODMpLHA9Yig3NTE1NyksTj1EKEQuYmluZCk7Y2UuZXhwb3J0cz1mdW5jdGlvbih3LEYpe3JldHVybiBfKHcpLHZvaWQgMD09PUY/dzpw'@; put 'P04odyxGKTpmdW5jdGlvbigpe3JldHVybiB3LmFwcGx5KEYsYXJndW1lbnRzKX19fSw3NTE1NzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDU1NTkyKTtjZS5leHBvcnRzPSFEKGZ1bmN0aW9uKCl7dmFyIF89ZnVuY3Rpb24oKXt9LmJpbmQoKTtyZXR1cm4iZnVuY3Rpb24iIT10'@; put 'eXBlb2YgX3x8Xy5oYXNPd25Qcm9wZXJ0eSgicHJvdG90eXBlIil9KX0sNDY5MjY6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig3NTE1NyksXz1GdW5jdGlvbi5wcm90b3R5cGUuY2FsbDtjZS5leHBvcnRzPUQ/Xy5iaW5kKF8pOmZ1bmN0aW9uKCl7cmV0dXJuIF8uYXBwbHkoXyxh'@; put 'cmd1bWVudHMpfX0sODk5ODE6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig0NjM4NyksXz1iKDM4ZTMpLHA9RnVuY3Rpb24ucHJvdG90eXBlLE49RCYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcix3PV8ocCwibmFtZSIpLEY9dyYmInNvbWV0aGluZyI9PT1mdW5jdGlv'@; put 'bigpe30ubmFtZSxIPXcmJighRHx8RCYmTihwLCJuYW1lIikuY29uZmlndXJhYmxlKTtjZS5leHBvcnRzPXtFWElTVFM6dyxQUk9QRVI6RixDT05GSUdVUkFCTEU6SH19LDY5MjI3OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNTg2MDcpLF89YigzMTQ4Myk7Y2UuZXhwb3J0cz1m'@; put 'dW5jdGlvbihwLE4sdyl7dHJ5e3JldHVybiBEKF8oT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLE4pW3ddKSl9Y2F0Y2h7fX19LDM2Mjk6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig4NjY3NSksXz1iKDU4NjA3KTtjZS5leHBvcnRzPWZ1bmN0aW9uKHApe2lmKCJG'@; put 'dW5jdGlvbiI9PT1EKHApKXJldHVybiBfKHApfX0sNTg2MDc6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig3NTE1NyksXz1GdW5jdGlvbi5wcm90b3R5cGUscD1fLmNhbGwsTj1EJiZfLmJpbmQuYmluZChwLHApO2NlLmV4cG9ydHM9RD9OOmZ1bmN0aW9uKHcpe3JldHVybiBmdW5j'@; put 'dGlvbigpe3JldHVybiBwLmFwcGx5KHcsYXJndW1lbnRzKX19fSw2NjUwMzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDMzOTYzKTtjZS5leHBvcnRzPWZ1bmN0aW9uKF8scCl7dmFyIE49RFtfXSx3PU4mJk4ucHJvdG90eXBlO3JldHVybiB3JiZ3W3BdfX0sMTIyMDI6KGNlLEos'@; put 'Yik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigzMzk2MyksXz1iKDE5MTUwKTtjZS5leHBvcnRzPWZ1bmN0aW9uKE4sdyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj9mdW5jdGlvbihOKXtyZXR1cm4gXyhOKT9OOnZvaWQgMH0oRFtOXSk6RFtOXSYmRFtOXVt3XX19LDc1NDI0OmNlPT57InVz'@; put 'ZSBzdHJpY3QiO2NlLmV4cG9ydHM9ZnVuY3Rpb24oSil7cmV0dXJue2l0ZXJhdG9yOkosbmV4dDpKLm5leHQsZG9uZTohMX19fSw2MzYyNzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDQ2OTI2KSxfPWIoMTEwOCkscD1iKDc1NDI0KSxOPWIoMzY5MzIpO2NlLmV4cG9ydHM9ZnVu'@; put 'Y3Rpb24odyxGKXsoIUZ8fCJzdHJpbmciIT10eXBlb2YgdykmJl8odyk7dmFyIEg9Tih3KTtyZXR1cm4gcChfKHZvaWQgMCE9PUg/RChILHcpOncpKX19LDM2OTMyOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNzE4MjQpLF89Yig4NjExNSkscD1iKDk0NDY4KSxOPWIoMTkyNTgp'@; put 'LEY9Yig1ODAxMikoIml0ZXJhdG9yIik7Y2UuZXhwb3J0cz1mdW5jdGlvbihIKXtpZighcChIKSlyZXR1cm4gXyhILEYpfHxfKEgsIkBAaXRlcmF0b3IiKXx8TltEKEgpXX19LDQzNTg0OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNDY5MjYpLF89YigzMTQ4MykscD1iKDExMDgp'@; put 'LE49Yig3NTIxMiksdz1iKDM2OTMyKSxGPVR5cGVFcnJvcjtjZS5leHBvcnRzPWZ1bmN0aW9uKEgsUil7dmFyIGo9YXJndW1lbnRzLmxlbmd0aDwyP3coSCk6UjtpZihfKGopKXJldHVybiBwKEQoaixIKSk7dGhyb3cgbmV3IEYoTihIKSsiIGlzIG5vdCBpdGVyYWJsZSIpfX0sODQ1MjQ6KGNl'@; put 'LEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig1ODYwNyksXz1iKDY3Mjc3KSxwPWIoMTkxNTApLE49Yig4NjY3NSksdz1iKDY4MzMyKSxGPUQoW10ucHVzaCk7Y2UuZXhwb3J0cz1mdW5jdGlvbihIKXtpZihwKEgpKXJldHVybiBIO2lmKF8oSCkpe2Zvcih2YXIgUj1ILmxlbmd0aCxqPVtd'@; put 'LFA9MDtQPFI7UCsrKXt2YXIgTD1IW1BdOyJzdHJpbmciPT10eXBlb2YgTD9GKGosTCk6KCJudW1iZXIiPT10eXBlb2YgTHx8Ik51bWJlciI9PT1OKEwpfHwiU3RyaW5nIj09PU4oTCkpJiZGKGosdyhMKSl9dmFyIFk9ai5sZW5ndGgsQj0hMDtyZXR1cm4gZnVuY3Rpb24oVyxaKXtpZihCKXJl'@; put 'dHVybiBCPSExLFo7aWYoXyh0aGlzKSlyZXR1cm4gWjtmb3IodmFyIFg9MDtYPFk7WCsrKWlmKGpbWF09PT1XKXJldHVybiBafX19fSw4NjExNTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDMxNDgzKSxfPWIoOTQ0NjgpO2NlLmV4cG9ydHM9ZnVuY3Rpb24ocCxOKXt2YXIgdz1w'@; put 'W05dO3JldHVybiBfKHcpP3ZvaWQgMDpEKHcpfX0sNDM2MzI6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigzMTQ4MyksXz1iKDExMDgpLHA9Yig0NjkyNiksTj1iKDY0NTUwKSx3PWIoNzU0MjQpLEY9IkludmFsaWQgc2l6ZSIsSD1SYW5nZUVycm9yLFI9VHlwZUVycm9yLGo9TWF0'@; put 'aC5tYXgsUD1mdW5jdGlvbihMLFkpe3RoaXMuc2V0PUwsdGhpcy5zaXplPWooWSwwKSx0aGlzLmhhcz1EKEwuaGFzKSx0aGlzLmtleXM9RChMLmtleXMpfTtQLnByb3RvdHlwZT17Z2V0SXRlcmF0b3I6ZnVuY3Rpb24oKXtyZXR1cm4gdyhfKHAodGhpcy5rZXlzLHRoaXMuc2V0KSkpfSxpbmNs'@; put 'dWRlczpmdW5jdGlvbihMKXtyZXR1cm4gcCh0aGlzLmhhcyx0aGlzLnNldCxMKX19LGNlLmV4cG9ydHM9ZnVuY3Rpb24oTCl7XyhMKTt2YXIgWT0rTC5zaXplO2lmKFkhPVkpdGhyb3cgbmV3IFIoRik7dmFyIEI9TihZKTtpZihCPDApdGhyb3cgbmV3IEgoRik7cmV0dXJuIG5ldyBQKEwsQil9'@; put 'fSw5NjMzOTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDU4NjA3KSxfPWIoMzE5NTApLHA9TWF0aC5mbG9vcixOPUQoIiIuY2hhckF0KSx3PUQoIiIucmVwbGFjZSksRj1EKCIiLnNsaWNlKSxIPS9cJChbJCYnYF18XGR7MSwyfXw8W14+XSo+KS9nLFI9L1wkKFskJidgXXxcZHsx'@; put 'LDJ9KS9nO2NlLmV4cG9ydHM9ZnVuY3Rpb24oaixQLEwsWSxCLFcpe3ZhciBaPUwrai5sZW5ndGgsWD1ZLmxlbmd0aCxRPVI7cmV0dXJuIHZvaWQgMCE9PUImJihCPV8oQiksUT1IKSx3KFcsUSxmdW5jdGlvbihxLHRlKXt2YXIgaWU7c3dpdGNoKE4odGUsMCkpe2Nhc2UiJCI6cmV0dXJuIiQi'@; put 'O2Nhc2UiJiI6cmV0dXJuIGo7Y2FzZSJgIjpyZXR1cm4gRihQLDAsTCk7Y2FzZSInIjpyZXR1cm4gRihQLFopO2Nhc2UiPCI6aWU9QltGKHRlLDEsLTEpXTticmVhaztkZWZhdWx0OnZhciBzZT0rdGU7aWYoMD09PXNlKXJldHVybiBxO2lmKHNlPlgpe3ZhciBnZT1wKHNlLzEwKTtyZXR1cm4g'@; put 'MD09PWdlP3E6Z2U8PVg/dm9pZCAwPT09WVtnZS0xXT9OKHRlLDEpOllbZ2UtMV0rTih0ZSwxKTpxfWllPVlbc2UtMV19cmV0dXJuIHZvaWQgMD09PWllPyIiOmllfSl9fSwzMzk2MzpmdW5jdGlvbihjZSl7InVzZSBzdHJpY3QiO3ZhciBKPWZ1bmN0aW9uKGIpe3JldHVybiBiJiZiLk1hdGg9'@; put 'PT1NYXRoJiZifTtjZS5leHBvcnRzPUooIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzKXx8Sigib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93KXx8Sigib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYpfHxKKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9i'@; put 'YWwpfHxKKCJvYmplY3QiPT10eXBlb2YgdGhpcyYmdGhpcyl8fGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KCl8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCl9LDM4ZTM6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig1ODYwNyksXz1iKDMxOTUwKSxwPUQoe30uaGFzT3duUHJvcGVy'@; put 'dHkpO2NlLmV4cG9ydHM9T2JqZWN0Lmhhc093bnx8ZnVuY3Rpb24odyxGKXtyZXR1cm4gcChfKHcpLEYpfX0sMzQ2NzA6Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz17fX0sODczNzI6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigxMjIwMik7Y2UuZXhwb3J0cz1EKCJkb2N1'@; put 'bWVudCIsImRvY3VtZW50RWxlbWVudCIpfSw1NzI0NDooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDQ2Mzg3KSxfPWIoNTU1OTIpLHA9Yig1NTk4OCk7Y2UuZXhwb3J0cz0hRCYmIV8oZnVuY3Rpb24oKXtyZXR1cm4gNyE9PU9iamVjdC5kZWZpbmVQcm9wZXJ0eShwKCJkaXYiKSwi'@; put 'YSIse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pLmF9KX0sNTU4OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNTg2MDcpLF89Yig1NTU5MikscD1iKDg2Njc1KSxOPU9iamVjdCx3PUQoIiIuc3BsaXQpO2NlLmV4cG9ydHM9XyhmdW5jdGlvbigpe3JldHVybiFOKCJ6IikucHJv'@; put 'cGVydHlJc0VudW1lcmFibGUoMCl9KT9mdW5jdGlvbihGKXtyZXR1cm4iU3RyaW5nIj09PXAoRik/dyhGLCIiKTpOKEYpfTpOfSwxNzI5NjooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDE5MTUwKSxfPWIoMzI2MzMpLHA9YigyMTYxMik7Y2UuZXhwb3J0cz1mdW5jdGlvbihOLHcs'@; put 'Ril7dmFyIEgsUjtyZXR1cm4gcCYmRChIPXcuY29uc3RydWN0b3IpJiZIIT09RiYmXyhSPUgucHJvdG90eXBlKSYmUiE9PUYucHJvdG90eXBlJiZwKE4sUiksTn19LDI2OTMxOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNTg2MDcpLF89YigxOTE1MCkscD1iKDQ4MzU2KSxOPUQo'@; put 'RnVuY3Rpb24udG9TdHJpbmcpO18ocC5pbnNwZWN0U291cmNlKXx8KHAuaW5zcGVjdFNvdXJjZT1mdW5jdGlvbih3KXtyZXR1cm4gTih3KX0pLGNlLmV4cG9ydHM9cC5pbnNwZWN0U291cmNlfSw2NDg1NTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDMyNjMzKSxfPWIoMzY2Nzgp'@; put 'O2NlLmV4cG9ydHM9ZnVuY3Rpb24ocCxOKXtEKE4pJiYiY2F1c2UiaW4gTiYmXyhwLCJjYXVzZSIsTi5jYXVzZSl9fSw0NzM2OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBZLEIsVyxEPWIoNDg2OTEpLF89YigzMzk2MykscD1iKDMyNjMzKSxOPWIoMzY2NzgpLHc9YigzOGUzKSxGPWIo'@; put 'NDgzNTYpLEg9Yig3OTY2MiksUj1iKDM0NjcwKSxqPSJPYmplY3QgYWxyZWFkeSBpbml0aWFsaXplZCIsUD1fLlR5cGVFcnJvcjtpZihEfHxGLnN0YXRlKXt2YXIgUT1GLnN0YXRlfHwoRi5zdGF0ZT1uZXcoMCxfLldlYWtNYXApKTtRLmdldD1RLmdldCxRLmhhcz1RLmhhcyxRLnNldD1RLnNl'@; put 'dCxZPWZ1bmN0aW9uKHRlLGllKXtpZihRLmhhcyh0ZSkpdGhyb3cgbmV3IFAoaik7cmV0dXJuIGllLmZhY2FkZT10ZSxRLnNldCh0ZSxpZSksaWV9LEI9ZnVuY3Rpb24odGUpe3JldHVybiBRLmdldCh0ZSl8fHt9fSxXPWZ1bmN0aW9uKHRlKXtyZXR1cm4gUS5oYXModGUpfX1lbHNle3ZhciBx'@; put 'PUgoInN0YXRlIik7UltxXT0hMCxZPWZ1bmN0aW9uKHRlLGllKXtpZih3KHRlLHEpKXRocm93IG5ldyBQKGopO3JldHVybiBpZS5mYWNhZGU9dGUsTih0ZSxxLGllKSxpZX0sQj1mdW5jdGlvbih0ZSl7cmV0dXJuIHcodGUscSk/dGVbcV06e319LFc9ZnVuY3Rpb24odGUpe3JldHVybiB3KHRl'@; put 'LHEpfX1jZS5leHBvcnRzPXtzZXQ6WSxnZXQ6QixoYXM6VyxlbmZvcmNlOmZ1bmN0aW9uKHRlKXtyZXR1cm4gVyh0ZSk/Qih0ZSk6WSh0ZSx7fSl9LGdldHRlckZvcjpmdW5jdGlvbih0ZSl7cmV0dXJuIGZ1bmN0aW9uKGllKXt2YXIgc2U7aWYoIXAoaWUpfHwoc2U9QihpZSkpLnR5cGUhPT10'@; put 'ZSl0aHJvdyBuZXcgUCgiSW5jb21wYXRpYmxlIHJlY2VpdmVyLCAiK3RlKyIgcmVxdWlyZWQiKTtyZXR1cm4gc2V9fX19LDY2NzkyOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNTgwMTIpLF89YigxOTI1OCkscD1EKCJpdGVyYXRvciIpLE49QXJyYXkucHJvdG90eXBlO2NlLmV4'@; put 'cG9ydHM9ZnVuY3Rpb24odyl7cmV0dXJuIHZvaWQgMCE9PXcmJihfLkFycmF5PT09d3x8TltwXT09PXcpfX0sNjcyNzc6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig4NjY3NSk7Y2UuZXhwb3J0cz1BcnJheS5pc0FycmF5fHxmdW5jdGlvbihwKXtyZXR1cm4iQXJyYXkiPT09RChw'@; put 'KX19LDE5MTUwOmNlPT57InVzZSBzdHJpY3QiO3ZhciBKPSJvYmplY3QiPT10eXBlb2YgZG9jdW1lbnQmJmRvY3VtZW50LmFsbDtjZS5leHBvcnRzPXR5cGVvZiBKPiJ1IiYmdm9pZCAwIT09Sj9mdW5jdGlvbihiKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgYnx8Yj09PUp9OmZ1bmN0aW9u'@; put 'KGIpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBifX0sMTYzNjM6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig1NTU5MiksXz1iKDE5MTUwKSxwPS8jfFwucHJvdG90eXBlXC4vLE49ZnVuY3Rpb24oaixQKXt2YXIgTD1GW3coaildO3JldHVybiBMPT09Unx8TCE9PUgmJihfKFAp'@; put 'P0QoUCk6ISFQKX0sdz1OLm5vcm1hbGl6ZT1mdW5jdGlvbihqKXtyZXR1cm4gU3RyaW5nKGopLnJlcGxhY2UocCwiLiIpLnRvTG93ZXJDYXNlKCl9LEY9Ti5kYXRhPXt9LEg9Ti5OQVRJVkU9Ik4iLFI9Ti5QT0xZRklMTD0iUCI7Y2UuZXhwb3J0cz1OfSw5NDQ2ODpjZT0+eyJ1c2Ugc3RyaWN0'@; put 'IjtjZS5leHBvcnRzPWZ1bmN0aW9uKEope3JldHVybiBudWxsPT1KfX0sMzI2MzM6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigxOTE1MCk7Y2UuZXhwb3J0cz1mdW5jdGlvbihfKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIF8/bnVsbCE9PV86RChfKX19LDQzNDA2OihjZSxKLGIp'@; put 'PT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMzI2MzMpO2NlLmV4cG9ydHM9ZnVuY3Rpb24oXyl7cmV0dXJuIEQoXyl8fG51bGw9PT1ffX0sODg3ODg6Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz0hMX0sODg4Njc6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigzMjYzMyksXz1i'@; put 'KDg2Njc1KSxOPWIoNTgwMTIpKCJtYXRjaCIpO2NlLmV4cG9ydHM9ZnVuY3Rpb24odyl7dmFyIEY7cmV0dXJuIEQodykmJih2b2lkIDAhPT0oRj13W05dKT8hIUY6IlJlZ0V4cCI9PT1fKHcpKX19LDkyOTk4OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMTIyMDIpLF89YigxOTE1'@; put 'MCkscD1iKDQ2OCksTj1iKDY2OTk1KSx3PU9iamVjdDtjZS5leHBvcnRzPU4/ZnVuY3Rpb24oRil7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBGfTpmdW5jdGlvbihGKXt2YXIgSD1EKCJTeW1ib2wiKTtyZXR1cm4gXyhIKSYmcChILnByb3RvdHlwZSx3KEYpKX19LDExMzg6KGNlLEosYik9Pnsi'@; put 'dXNlIHN0cmljdCI7dmFyIEQ9Yig0NjkyNik7Y2UuZXhwb3J0cz1mdW5jdGlvbihfLHAsTil7Zm9yKHZhciBILFIsdz1OP186Xy5pdGVyYXRvcixGPV8ubmV4dDshKEg9RChGLHcpKS5kb25lOylpZih2b2lkIDAhPT0oUj1wKEgudmFsdWUpKSlyZXR1cm4gUn19LDMwNzg3OihjZSxKLGIpPT57'@; put 'InVzZSBzdHJpY3QiO3ZhciBEPWIoNzg4MTEpLF89Yig0NjkyNikscD1iKDExMDgpLE49Yig3NTIxMiksdz1iKDY2NzkyKSxGPWIoNzE3MSksSD1iKDQ2OCksUj1iKDQzNTg0KSxqPWIoMzY5MzIpLFA9Yig2NjU0MiksTD1UeXBlRXJyb3IsWT1mdW5jdGlvbihXLFope3RoaXMuc3RvcHBlZD1X'@; put 'LHRoaXMucmVzdWx0PVp9LEI9WS5wcm90b3R5cGU7Y2UuZXhwb3J0cz1mdW5jdGlvbihXLFosWCl7dmFyIF9lLFRlLFNlLHplLHosZyx5LHE9ISghWHx8IVguQVNfRU5UUklFUyksdGU9ISghWHx8IVguSVNfUkVDT1JEKSxpZT0hKCFYfHwhWC5JU19JVEVSQVRPUiksc2U9ISghWHx8IVguSU5U'@; put 'RVJSVVBURUQpLGdlPUQoWixYJiZYLnRoYXQpLHg9ZnVuY3Rpb24oVCl7cmV0dXJuIF9lJiZQKF9lLCJub3JtYWwiKSxuZXcgWSghMCxUKX0sQz1mdW5jdGlvbihUKXtyZXR1cm4gcT8ocChUKSxzZT9nZShUWzBdLFRbMV0seCk6Z2UoVFswXSxUWzFdKSk6c2U/Z2UoVCx4KTpnZShUKX07aWYo'@; put 'dGUpX2U9Vy5pdGVyYXRvcjtlbHNlIGlmKGllKV9lPVc7ZWxzZXtpZighKFRlPWooVykpKXRocm93IG5ldyBMKE4oVykrIiBpcyBub3QgaXRlcmFibGUiKTtpZih3KFRlKSl7Zm9yKFNlPTAsemU9RihXKTt6ZT5TZTtTZSsrKWlmKCh6PUMoV1tTZV0pKSYmSChCLHopKXJldHVybiB6O3JldHVy'@; put 'biBuZXcgWSghMSl9X2U9UihXLFRlKX1mb3IoZz10ZT9XLm5leHQ6X2UubmV4dDshKHk9XyhnLF9lKSkuZG9uZTspe3RyeXt6PUMoeS52YWx1ZSl9Y2F0Y2goVCl7UChfZSwidGhyb3ciLFQpfWlmKCJvYmplY3QiPT10eXBlb2YgeiYmeiYmSChCLHopKXJldHVybiB6fXJldHVybiBuZXcgWSgh'@; put 'MSl9fSw2MDEyODooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDY2NTQyKTtjZS5leHBvcnRzPWZ1bmN0aW9uKF8scCxOKXtmb3IodmFyIHc9Xy5sZW5ndGgtMTt3Pj0wO3ctLSlpZih2b2lkIDAhPT1fW3ddKXRyeXtOPUQoX1t3XS5pdGVyYXRvcixwLE4pfWNhdGNoKEYpe3A9InRo'@; put 'cm93IixOPUZ9aWYoInRocm93Ij09PXApdGhyb3cgTjtyZXR1cm4gTn19LDY2NTQyOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNDY5MjYpLF89YigxMTA4KSxwPWIoODYxMTUpO2NlLmV4cG9ydHM9ZnVuY3Rpb24oTix3LEYpe3ZhciBILFI7XyhOKTt0cnl7aWYoIShIPXAoTiwi'@; put 'cmV0dXJuIikpKXtpZigidGhyb3ciPT09dyl0aHJvdyBGO3JldHVybiBGfUg9RChILE4pfWNhdGNoKGope1I9ITAsSD1qfWlmKCJ0aHJvdyI9PT13KXRocm93IEY7aWYoUil0aHJvdyBIO3JldHVybiBfKEgpLEZ9fSw2OTkxNzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDQ2OTI2'@; put 'KSxfPWIoOTc5NTEpLHA9YigzNjY3OCksTj1iKDE0NzUwKSx3PWIoNTgwMTIpLEY9Yig0NzM2KSxIPWIoODYxMTUpLFI9Yig3ODk2OCkuSXRlcmF0b3JQcm90b3R5cGUsaj1iKDU4OTc4KSxQPWIoNjY1NDIpLEw9Yig2MDEyOCksWT13KCJ0b1N0cmluZ1RhZyIpLEI9Ikl0ZXJhdG9ySGVscGVy'@; put 'IixXPSJXcmFwRm9yVmFsaWRJdGVyYXRvciIsWj0ibm9ybWFsIixYPSJ0aHJvdyIsUT1GLnNldCxxPWZ1bmN0aW9uKHNlKXt2YXIgZ2U9Ri5nZXR0ZXJGb3Ioc2U/VzpCKTtyZXR1cm4gTihfKFIpLHtuZXh0OmZ1bmN0aW9uKCl7dmFyIFRlPWdlKHRoaXMpO2lmKHNlKXJldHVybiBUZS5uZXh0'@; put 'SGFuZGxlcigpO2lmKFRlLmRvbmUpcmV0dXJuIGoodm9pZCAwLCEwKTt0cnl7dmFyIFNlPVRlLm5leHRIYW5kbGVyKCk7cmV0dXJuIFRlLnJldHVybkhhbmRsZXJSZXN1bHQ/U2U6aihTZSxUZS5kb25lKX1jYXRjaCh6ZSl7dGhyb3cgVGUuZG9uZT0hMCx6ZX19LHJldHVybjpmdW5jdGlvbigp'@; put 'e3ZhciBfZT1nZSh0aGlzKSxUZT1fZS5pdGVyYXRvcjtpZihfZS5kb25lPSEwLHNlKXt2YXIgU2U9SChUZSwicmV0dXJuIik7cmV0dXJuIFNlP0QoU2UsVGUpOmoodm9pZCAwLCEwKX1pZihfZS5pbm5lcil0cnl7UChfZS5pbm5lci5pdGVyYXRvcixaKX1jYXRjaCh6ZSl7cmV0dXJuIFAoVGUs'@; put 'WCx6ZSl9aWYoX2Uub3Blbkl0ZXJzKXRyeXtMKF9lLm9wZW5JdGVycyxaKX1jYXRjaCh6ZSl7cmV0dXJuIFAoVGUsWCx6ZSl9cmV0dXJuIFRlJiZQKFRlLFopLGoodm9pZCAwLCEwKX19KX0sdGU9cSghMCksaWU9cSghMSk7cChpZSxZLCJJdGVyYXRvciBIZWxwZXIiKSxjZS5leHBvcnRzPWZ1'@; put 'bmN0aW9uKHNlLGdlLF9lKXt2YXIgVGU9ZnVuY3Rpb24oemUseil7ej8oei5pdGVyYXRvcj16ZS5pdGVyYXRvcix6Lm5leHQ9emUubmV4dCk6ej16ZSx6LnR5cGU9Z2U/VzpCLHoucmV0dXJuSGFuZGxlclJlc3VsdD0hIV9lLHoubmV4dEhhbmRsZXI9c2Usei5jb3VudGVyPTAsei5kb25lPSEx'@; put 'LFEodGhpcyx6KX07cmV0dXJuIFRlLnByb3RvdHlwZT1nZT90ZTppZSxUZX19LDU2NzQ1OmNlPT57InVzZSBzdHJpY3QiO2NlLmV4cG9ydHM9ZnVuY3Rpb24oSixiKXt2YXIgRD0iZnVuY3Rpb24iPT10eXBlb2YgSXRlcmF0b3ImJkl0ZXJhdG9yLnByb3RvdHlwZVtKXTtpZihEKXRyeXtELmNh'@; put 'bGwoe25leHQ6bnVsbH0sYikubmV4dCgpfWNhdGNoe3JldHVybiEwfX19LDQxMjUyOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMzM5NjMpO2NlLmV4cG9ydHM9ZnVuY3Rpb24oXyxwKXt2YXIgTj1ELkl0ZXJhdG9yLHc9TiYmTi5wcm90b3R5cGUsRj13JiZ3W19dLEg9ITE7aWYo'@; put 'Ril0cnl7Ri5jYWxsKHtuZXh0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbmU6ITB9fSxyZXR1cm46ZnVuY3Rpb24oKXtIPSEwfX0sLTEpfWNhdGNoKFIpe1IgaW5zdGFuY2VvZiBwfHwoSD0hMSl9aWYoIUgpcmV0dXJuIEZ9fSw3ODk2ODooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgTCxZLEIs'@; put 'RD1iKDU1NTkyKSxfPWIoMTkxNTApLHA9YigzMjYzMyksTj1iKDk3OTUxKSx3PWIoMjY0MDApLEY9YigzMTA4MyksSD1iKDU4MDEyKSxSPWIoODg3ODgpLGo9SCgiaXRlcmF0b3IiKSxQPSExO1tdLmtleXMmJigibmV4dCJpbihCPVtdLmtleXMoKSk/KFk9dyh3KEIpKSkhPT1PYmplY3QucHJv'@; put 'dG90eXBlJiYoTD1ZKTpQPSEwKSwhcChMKXx8RChmdW5jdGlvbigpe3ZhciBaPXt9O3JldHVybiBMW2pdLmNhbGwoWikhPT1afSk/TD17fTpSJiYoTD1OKEwpKSxfKExbal0pfHxGKEwsaixmdW5jdGlvbigpe3JldHVybiB0aGlzfSksY2UuZXhwb3J0cz17SXRlcmF0b3JQcm90b3R5cGU6TCxC'@; put 'VUdHWV9TQUZBUklfSVRFUkFUT1JTOlB9fSwxOTI1ODpjZT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPXt9fSw3MTcxOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoOTQyMzcpO2NlLmV4cG9ydHM9ZnVuY3Rpb24oXyl7cmV0dXJuIEQoXy5sZW5ndGgpfX0sMTY5ODA6KGNlLEos'@; put 'Yik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig1ODYwNyksXz1iKDU1NTkyKSxwPWIoMTkxNTApLE49YigzOGUzKSx3PWIoNDYzODcpLEY9Yig4OTk4MSkuQ09ORklHVVJBQkxFLEg9YigyNjkzMSksUj1iKDQ3MzYpLGo9Ui5lbmZvcmNlLFA9Ui5nZXQsTD1TdHJpbmcsWT1PYmplY3QuZGVmaW5l'@; put 'UHJvcGVydHksQj1EKCIiLnNsaWNlKSxXPUQoIiIucmVwbGFjZSksWj1EKFtdLmpvaW4pLFg9dyYmIV8oZnVuY3Rpb24oKXtyZXR1cm4gOCE9PVkoZnVuY3Rpb24oKXt9LCJsZW5ndGgiLHt2YWx1ZTo4fSkubGVuZ3RofSksUT1TdHJpbmcoU3RyaW5nKS5zcGxpdCgiU3RyaW5nIikscT1jZS5l'@; put 'eHBvcnRzPWZ1bmN0aW9uKHRlLGllLHNlKXsiU3ltYm9sKCI9PT1CKEwoaWUpLDAsNykmJihpZT0iWyIrVyhMKGllKSwvXlN5bWJvbFwoKFteKV0qKVwpLiokLywiJDEiKSsiXSIpLHNlJiZzZS5nZXR0ZXImJihpZT0iZ2V0ICIraWUpLHNlJiZzZS5zZXR0ZXImJihpZT0ic2V0ICIraWUpLCgh'@; put 'Tih0ZSwibmFtZSIpfHxGJiZ0ZS5uYW1lIT09aWUpJiYodz9ZKHRlLCJuYW1lIix7dmFsdWU6aWUsY29uZmlndXJhYmxlOiEwfSk6dGUubmFtZT1pZSksWCYmc2UmJk4oc2UsImFyaXR5IikmJnRlLmxlbmd0aCE9PXNlLmFyaXR5JiZZKHRlLCJsZW5ndGgiLHt2YWx1ZTpzZS5hcml0eX0pO3Ry'@; put 'eXtzZSYmTihzZSwiY29uc3RydWN0b3IiKSYmc2UuY29uc3RydWN0b3I/dyYmWSh0ZSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KTp0ZS5wcm90b3R5cGUmJih0ZS5wcm90b3R5cGU9dm9pZCAwKX1jYXRjaHt9dmFyIGdlPWoodGUpO3JldHVybiBOKGdlLCJzb3VyY2UiKXx8KGdlLnNvdXJj'@; put 'ZT1aKFEsInN0cmluZyI9PXR5cGVvZiBpZT9pZToiIikpLHRlfTtGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc9cShmdW5jdGlvbigpe3JldHVybiBwKHRoaXMpJiZQKHRoaXMpLnNvdXJjZXx8SCh0aGlzKX0sInRvU3RyaW5nIil9LDE4NTU2OmNlPT57InVzZSBzdHJpY3QiO3ZhciBKPU1h'@; put 'dGguY2VpbCxiPU1hdGguZmxvb3I7Y2UuZXhwb3J0cz1NYXRoLnRydW5jfHxmdW5jdGlvbihfKXt2YXIgcD0rXztyZXR1cm4ocD4wP2I6SikocCl9fSwzOTExNjooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDY4MzMyKTtjZS5leHBvcnRzPWZ1bmN0aW9uKF8scCl7cmV0dXJuIHZv'@; put 'aWQgMD09PV8/YXJndW1lbnRzLmxlbmd0aDwyPyIiOnA6RChfKX19LDk3OTUxOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBRLEQ9YigxMTA4KSxfPWIoNzExNjgpLHA9Yig1ODU0MCksTj1iKDM0NjcwKSx3PWIoODczNzIpLEY9Yig1NTk4OCksSD1iKDc5NjYyKSxQPSJwcm90b3R5cGUi'@; put 'LEw9InNjcmlwdCIsWT1IKCJJRV9QUk9UTyIpLEI9ZnVuY3Rpb24oKXt9LFc9ZnVuY3Rpb24odGUpe3JldHVybiI8IitMKyI+Iit0ZSsiPC8iK0wrIj4ifSxaPWZ1bmN0aW9uKHRlKXt0ZS53cml0ZShXKCIiKSksdGUuY2xvc2UoKTt2YXIgaWU9dGUucGFyZW50V2luZG93Lk9iamVjdDtyZXR1'@; put 'cm4gdGU9bnVsbCxpZX0scT1mdW5jdGlvbigpe3RyeXtRPW5ldyBBY3RpdmVYT2JqZWN0KCJodG1sZmlsZSIpfWNhdGNoe31xPXR5cGVvZiBkb2N1bWVudDwidSI/ZG9jdW1lbnQuZG9tYWluJiZRP1ooUSk6ZnVuY3Rpb24oKXt2YXIgc2UsdGU9RigiaWZyYW1lIiksaWU9ImphdmEiK0wrIjoi'@; put 'O3JldHVybiB0ZS5zdHlsZS5kaXNwbGF5PSJub25lIix3LmFwcGVuZENoaWxkKHRlKSx0ZS5zcmM9U3RyaW5nKGllKSwoc2U9dGUuY29udGVudFdpbmRvdy5kb2N1bWVudCkub3BlbigpLHNlLndyaXRlKFcoImRvY3VtZW50LkY9T2JqZWN0IikpLHNlLmNsb3NlKCksc2UuRn0oKTpaKFEpO2Zv'@; put 'cih2YXIgdGU9cC5sZW5ndGg7dGUtLTspZGVsZXRlIHFbUF1bcFt0ZV1dO3JldHVybiBxKCl9O05bWV09ITAsY2UuZXhwb3J0cz1PYmplY3QuY3JlYXRlfHxmdW5jdGlvbihpZSxzZSl7dmFyIGdlO3JldHVybiBudWxsIT09aWU/KEJbUF09RChpZSksZ2U9bmV3IEIsQltQXT1udWxsLGdlW1ld'@; put 'PWllKTpnZT1xKCksdm9pZCAwPT09c2U/Z2U6Xy5mKGdlLHNlKX19LDcxMTY4OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNDYzODcpLF89YigyNjkyOSkscD1iKDQ0NjQ4KSxOPWIoMTEwOCksdz1iKDkzMTYyKSxGPWIoMTAxNDMpO0ouZj1EJiYhXz9PYmplY3QuZGVmaW5lUHJv'@; put 'cGVydGllczpmdW5jdGlvbihSLGope04oUik7Zm9yKHZhciBXLFA9dyhqKSxMPUYoaiksWT1MLmxlbmd0aCxCPTA7WT5COylwLmYoUixXPUxbQisrXSxQW1ddKTtyZXR1cm4gUn19LDQ0NjQ4OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNDYzODcpLF89Yig1NzI0NCkscD1iKDI2'@; put 'OTI5KSxOPWIoMTEwOCksdz1iKDU5NDEwKSxGPVR5cGVFcnJvcixIPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxSPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Isaj0iZW51bWVyYWJsZSIsUD0iY29uZmlndXJhYmxlIixMPSJ3cml0YWJsZSI7Si5mPUQ/cD9mdW5jdGlvbihCLFcsWil7'@; put 'aWYoTihCKSxXPXcoVyksTihaKSwiZnVuY3Rpb24iPT10eXBlb2YgQiYmInByb3RvdHlwZSI9PT1XJiYidmFsdWUiaW4gWiYmTCBpbiBaJiYhWltMXSl7dmFyIFg9UihCLFcpO1gmJlhbTF0mJihCW1ddPVoudmFsdWUsWj17Y29uZmlndXJhYmxlOlAgaW4gWj9aW1BdOlhbUF0sZW51bWVyYWJs'@; put 'ZTpqIGluIFo/WltqXTpYW2pdLHdyaXRhYmxlOiExfSl9cmV0dXJuIEgoQixXLFopfTpIOmZ1bmN0aW9uKEIsVyxaKXtpZihOKEIpLFc9dyhXKSxOKFopLF8pdHJ5e3JldHVybiBIKEIsVyxaKX1jYXRjaHt9aWYoImdldCJpbiBafHwic2V0ImluIFopdGhyb3cgbmV3IEYoIkFjY2Vzc29ycyBu'@; put 'b3Qgc3VwcG9ydGVkIik7cmV0dXJuInZhbHVlImluIFomJihCW1ddPVoudmFsdWUpLEJ9fSw1NDEyMjooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDQ2Mzg3KSxfPWIoNDY5MjYpLHA9YigzOTYyKSxOPWIoNzc3NzMpLHc9Yig5MzE2MiksRj1iKDU5NDEwKSxIPWIoMzhlMyksUj1i'@; put 'KDU3MjQ0KSxqPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7Si5mPUQ/ajpmdW5jdGlvbihMLFkpe2lmKEw9dyhMKSxZPUYoWSksUil0cnl7cmV0dXJuIGooTCxZKX1jYXRjaHt9aWYoSChMLFkpKXJldHVybiBOKCFfKHAuZixMLFkpLExbWV0pfX0sMzYxNDM6KGNlLEosYik9Pnsi'@; put 'dXNlIHN0cmljdCI7dmFyIEQ9YigyMzMxMykscD1iKDU4NTQwKS5jb25jYXQoImxlbmd0aCIsInByb3RvdHlwZSIpO0ouZj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc3x8ZnVuY3Rpb24odyl7cmV0dXJuIEQodyxwKX19LDI4MDcwOihjZSxKKT0+eyJ1c2Ugc3RyaWN0IjtKLmY9T2JqZWN0'@; put 'LmdldE93blByb3BlcnR5U3ltYm9sc30sMjY0MDA6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigzOGUzKSxfPWIoMTkxNTApLHA9YigzMTk1MCksTj1iKDc5NjYyKSx3PWIoODI4MzQpLEY9TigiSUVfUFJPVE8iKSxIPU9iamVjdCxSPUgucHJvdG90eXBlO2NlLmV4cG9ydHM9dz9I'@; put 'LmdldFByb3RvdHlwZU9mOmZ1bmN0aW9uKGope3ZhciBQPXAoaik7aWYoRChQLEYpKXJldHVybiBQW0ZdO3ZhciBMPVAuY29uc3RydWN0b3I7cmV0dXJuIF8oTCkmJlAgaW5zdGFuY2VvZiBMP0wucHJvdG90eXBlOlAgaW5zdGFuY2VvZiBIP1I6bnVsbH19LDQ2ODooY2UsSixiKT0+eyJ1c2Ug'@; put 'c3RyaWN0Ijt2YXIgRD1iKDU4NjA3KTtjZS5leHBvcnRzPUQoe30uaXNQcm90b3R5cGVPZil9LDIzMzEzOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNTg2MDcpLF89YigzOGUzKSxwPWIoOTMxNjIpLE49Yig3NDgyNCkuaW5kZXhPZix3PWIoMzQ2NzApLEY9RChbXS5wdXNoKTtj'@; put 'ZS5leHBvcnRzPWZ1bmN0aW9uKEgsUil7dmFyIFksaj1wKEgpLFA9MCxMPVtdO2ZvcihZIGluIGopIV8odyxZKSYmXyhqLFkpJiZGKEwsWSk7Zm9yKDtSLmxlbmd0aD5QOylfKGosWT1SW1ArK10pJiYofk4oTCxZKXx8RihMLFkpKTtyZXR1cm4gTH19LDEwMTQzOihjZSxKLGIpPT57InVzZSBz'@; put 'dHJpY3QiO3ZhciBEPWIoMjMzMTMpLF89Yig1ODU0MCk7Y2UuZXhwb3J0cz1PYmplY3Qua2V5c3x8ZnVuY3Rpb24oTil7cmV0dXJuIEQoTixfKX19LDM5NjI6KGNlLEopPT57InVzZSBzdHJpY3QiO3ZhciBiPXt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLEQ9T2JqZWN0LmdldE93blByb3BlcnR5'@; put 'RGVzY3JpcHRvcixfPUQmJiFiLmNhbGwoezE6Mn0sMSk7Si5mPV8/ZnVuY3Rpb24oTil7dmFyIHc9RCh0aGlzLE4pO3JldHVybiEhdyYmdy5lbnVtZXJhYmxlfTpifSwyMTYxMjooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDY5MjI3KSxfPWIoMzI2MzMpLHA9Yig4ODI3NSksTj1i'@; put 'KDI3NjcpO2NlLmV4cG9ydHM9T2JqZWN0LnNldFByb3RvdHlwZU9mfHwoIl9fcHJvdG9fXyJpbnt9P2Z1bmN0aW9uKCl7dmFyIEgsdz0hMSxGPXt9O3RyeXsoSD1EKE9iamVjdC5wcm90b3R5cGUsIl9fcHJvdG9fXyIsInNldCIpKShGLFtdKSx3PUYgaW5zdGFuY2VvZiBBcnJheX1jYXRjaHt9'@; put 'cmV0dXJuIGZ1bmN0aW9uKGosUCl7cmV0dXJuIHAoaiksTihQKSxfKGopJiYodz9IKGosUCk6ai5fX3Byb3RvX189UCksan19KCk6dm9pZCAwKX0sOTM4NjU6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig0NjkyNiksXz1iKDE5MTUwKSxwPWIoMzI2MzMpLE49VHlwZUVycm9yO2Nl'@; put 'LmV4cG9ydHM9ZnVuY3Rpb24odyxGKXt2YXIgSCxSO2lmKCJzdHJpbmciPT09RiYmXyhIPXcudG9TdHJpbmcpJiYhcChSPUQoSCx3KSl8fF8oSD13LnZhbHVlT2YpJiYhcChSPUQoSCx3KSl8fCJzdHJpbmciIT09RiYmXyhIPXcudG9TdHJpbmcpJiYhcChSPUQoSCx3KSkpcmV0dXJuIFI7dGhy'@; put 'b3cgbmV3IE4oIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfX0sODgwNzg6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigxMjIwMiksXz1iKDU4NjA3KSxwPWIoMzYxNDMpLE49YigyODA3MCksdz1iKDExMDgpLEY9XyhbXS5jb25jYXQpO2NlLmV4cG9y'@; put 'dHM9RCgiUmVmbGVjdCIsIm93bktleXMiKXx8ZnVuY3Rpb24oUil7dmFyIGo9cC5mKHcoUikpLFA9Ti5mO3JldHVybiBQP0YoaixQKFIpKTpqfX0sNjAzMjE6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig0NDY0OCkuZjtjZS5leHBvcnRzPWZ1bmN0aW9uKF8scCxOKXtOIGluIF98'@; put 'fEQoXyxOLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHBbTl19LHNldDpmdW5jdGlvbih3KXtwW05dPXd9fSl9fSw3ODcyNzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDMzOTYzKSxfPWIoNTU1OTIpLHA9RC5SZWdFeHAsTj0hXyhmdW5jdGlvbigpe3Zh'@; put 'ciB3PSEwO3RyeXtwKCIuIiwiZCIpfWNhdGNoe3c9ITF9dmFyIEY9e30sSD0iIixSPXc/ImRnaW1zeSI6ImdpbXN5IixqPWZ1bmN0aW9uKEIsVyl7T2JqZWN0LmRlZmluZVByb3BlcnR5KEYsQix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEgrPVcsITB9fSl9LFA9e2RvdEFsbDoicyIsZ2xvYmFs'@; put 'OiJnIixpZ25vcmVDYXNlOiJpIixtdWx0aWxpbmU6Im0iLHN0aWNreToieSJ9O2Zvcih2YXIgTCBpbiB3JiYoUC5oYXNJbmRpY2VzPSJkIiksUClqKEwsUFtMXSk7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocC5wcm90b3R5cGUsImZsYWdzIikuZ2V0LmNhbGwoRikh'@; put 'PT1SfHxIIT09Un0pO2NlLmV4cG9ydHM9e2NvcnJlY3Q6Tn19LDIyNzU0OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMTEwOCk7Y2UuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciBfPUQodGhpcykscD0iIjtyZXR1cm4gXy5oYXNJbmRpY2VzJiYocCs9ImQiKSxfLmdsb2JhbCYmKHAr'@; put 'PSJnIiksXy5pZ25vcmVDYXNlJiYocCs9ImkiKSxfLm11bHRpbGluZSYmKHArPSJtIiksXy5kb3RBbGwmJihwKz0icyIpLF8udW5pY29kZSYmKHArPSJ1IiksXy51bmljb2RlU2V0cyYmKHArPSJ2IiksXy5zdGlja3kmJihwKz0ieSIpLHB9fSwzNzA3NTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0'@; put 'Ijt2YXIgRD1iKDQ2OTI2KSxfPWIoMzhlMykscD1iKDQ2OCksTj1iKDc4NzI3KSx3PWIoMjI3NTQpLEY9UmVnRXhwLnByb3RvdHlwZTtjZS5leHBvcnRzPU4uY29ycmVjdD9mdW5jdGlvbihIKXtyZXR1cm4gSC5mbGFnc306ZnVuY3Rpb24oSCl7cmV0dXJuIE4uY29ycmVjdHx8IXAoRixIKXx8'@; put 'XyhILCJmbGFncyIpP0guZmxhZ3M6RCh3LEgpfX0sODgyNzU6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig5NDQ2OCksXz1UeXBlRXJyb3I7Y2UuZXhwb3J0cz1mdW5jdGlvbihwKXtpZihEKHApKXRocm93IG5ldyBfKCJDYW4ndCBjYWxsIG1ldGhvZCBvbiAiK3ApO3JldHVybiBw'@; put 'fX0sNDMyNDk6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIFAsRD1iKDMzOTYzKSxfPWIoNDAyMjApLHA9YigxOTE1MCksTj1iKDQ3MDkyKSx3PWIoMjM1OCksRj1iKDc3NjM5KSxIPWIoMjc5NjcpLFI9RC5GdW5jdGlvbixqPS9NU0lFIC5cLi8udGVzdCh3KXx8IkJVTiI9PT1OJiYoKFA9'@; put 'RC5CdW4udmVyc2lvbi5zcGxpdCgiLiIpKS5sZW5ndGg8M3x8IjAiPT09UFswXSYmKFBbMV08M3x8IjMiPT09UFsxXSYmIjAiPT09UFsyXSkpO2NlLmV4cG9ydHM9ZnVuY3Rpb24oUCxMKXt2YXIgWT1MPzI6MTtyZXR1cm4gaj9mdW5jdGlvbihCLFcpe3ZhciBaPUgoYXJndW1lbnRzLmxlbmd0'@; put 'aCwxKT5ZLFg9cChCKT9COlIoQiksUT1aP0YoYXJndW1lbnRzLFkpOltdLHE9Wj9mdW5jdGlvbigpe18oWCx0aGlzLFEpfTpYO3JldHVybiBMP1AocSxXKTpQKHEpfTpQfX0sMTQ0NTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDk3NTQxKSxfPWIoMjE5MTApLHA9RC5TZXQsTj1E'@; put 'LmFkZDtjZS5leHBvcnRzPWZ1bmN0aW9uKHcpe3ZhciBGPW5ldyBwO3JldHVybiBfKHcsZnVuY3Rpb24oSCl7TihGLEgpfSksRn19LDgwMjEzOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMzc3MzEpLF89Yig5NzU0MSkscD1iKDE0NDUpLE49YigzMDMzOSksdz1iKDQzNjMyKSxG'@; put 'PWIoMjE5MTApLEg9YigxMTM4KSxSPV8uaGFzLGo9Xy5yZW1vdmU7Y2UuZXhwb3J0cz1mdW5jdGlvbihMKXt2YXIgWT1EKHRoaXMpLEI9dyhMKSxXPXAoWSk7cmV0dXJuIE4oWSk8PUIuc2l6ZT9GKFksZnVuY3Rpb24oWil7Qi5pbmNsdWRlcyhaKSYmaihXLFopfSk6SChCLmdldEl0ZXJhdG9y'@; put 'KCksZnVuY3Rpb24oWil7UihXLFopJiZqKFcsWil9KSxXfX0sOTc1NDE6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig1ODYwNyksXz1TZXQucHJvdG90eXBlO2NlLmV4cG9ydHM9e1NldCxhZGQ6RChfLmFkZCksaGFzOkQoXy5oYXMpLHJlbW92ZTpEKF8uZGVsZXRlKSxwcm90bzpf'@; put 'fX0sNjE4Nzk6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigzNzczMSksXz1iKDk3NTQxKSxwPWIoMzAzMzkpLE49Yig0MzYzMiksdz1iKDIxOTEwKSxGPWIoMTEzOCksSD1fLlNldCxSPV8uYWRkLGo9Xy5oYXM7Y2UuZXhwb3J0cz1mdW5jdGlvbihMKXt2YXIgWT1EKHRoaXMpLEI9'@; put 'TihMKSxXPW5ldyBIO3JldHVybiBwKFkpPkIuc2l6ZT9GKEIuZ2V0SXRlcmF0b3IoKSxmdW5jdGlvbihaKXtqKFksWikmJlIoVyxaKX0pOncoWSxmdW5jdGlvbihaKXtCLmluY2x1ZGVzKFopJiZSKFcsWil9KSxXfX0sNzM2MjQ6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigzNzcz'@; put 'MSksXz1iKDk3NTQxKS5oYXMscD1iKDMwMzM5KSxOPWIoNDM2MzIpLHc9YigyMTkxMCksRj1iKDExMzgpLEg9Yig2NjU0Mik7Y2UuZXhwb3J0cz1mdW5jdGlvbihqKXt2YXIgUD1EKHRoaXMpLEw9TihqKTtpZihwKFApPD1MLnNpemUpcmV0dXJuITEhPT13KFAsZnVuY3Rpb24oQil7aWYoTC5p'@; put 'bmNsdWRlcyhCKSlyZXR1cm4hMX0sITApO3ZhciBZPUwuZ2V0SXRlcmF0b3IoKTtyZXR1cm4hMSE9PUYoWSxmdW5jdGlvbihCKXtpZihfKFAsQikpcmV0dXJuIEgoWSwibm9ybWFsIiwhMSl9KX19LDc0ODM5OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMzc3MzEpLF89YigzMDMz'@; put 'OSkscD1iKDIxOTEwKSxOPWIoNDM2MzIpO2NlLmV4cG9ydHM9ZnVuY3Rpb24oRil7dmFyIEg9RCh0aGlzKSxSPU4oRik7cmV0dXJuIShfKEgpPlIuc2l6ZSkmJiExIT09cChILGZ1bmN0aW9uKGope2lmKCFSLmluY2x1ZGVzKGopKXJldHVybiExfSwhMCl9fSw5NjA2MjooY2UsSixiKT0+eyJ1'@; put 'c2Ugc3RyaWN0Ijt2YXIgRD1iKDM3NzMxKSxfPWIoOTc1NDEpLmhhcyxwPWIoMzAzMzkpLE49Yig0MzYzMiksdz1iKDExMzgpLEY9Yig2NjU0Mik7Y2UuZXhwb3J0cz1mdW5jdGlvbihSKXt2YXIgaj1EKHRoaXMpLFA9TihSKTtpZihwKGopPFAuc2l6ZSlyZXR1cm4hMTt2YXIgTD1QLmdldEl0'@; put 'ZXJhdG9yKCk7cmV0dXJuITEhPT13KEwsZnVuY3Rpb24oWSl7aWYoIV8oaixZKSlyZXR1cm4gRihMLCJub3JtYWwiLCExKX0pfX0sMjE5MTA6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig1ODYwNyksXz1iKDExMzgpLHA9Yig5NzU0MSksTj1wLlNldCx3PXAucHJvdG8sRj1EKHcu'@; put 'Zm9yRWFjaCksSD1EKHcua2V5cyksUj1IKG5ldyBOKS5uZXh0O2NlLmV4cG9ydHM9ZnVuY3Rpb24oaixQLEwpe3JldHVybiBMP18oe2l0ZXJhdG9yOkgoaiksbmV4dDpSfSxQKTpGKGosUCl9fSw1MzUwNTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDEyMjAyKSxfPWZ1bmN0aW9u'@; put 'KE4pe3JldHVybntzaXplOk4saGFzOmZ1bmN0aW9uKCl7cmV0dXJuITF9LGtleXM6ZnVuY3Rpb24oKXtyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybntkb25lOiEwfX19fX19LHA9ZnVuY3Rpb24oTil7cmV0dXJue3NpemU6TixoYXM6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sa2V5czpmdW5j'@; put 'dGlvbigpe3Rocm93IG5ldyBFcnJvcigiZSIpfX19O2NlLmV4cG9ydHM9ZnVuY3Rpb24oTix3KXt2YXIgRj1EKCJTZXQiKTt0cnl7KG5ldyBGKVtOXShfKDApKTt0cnl7cmV0dXJuKG5ldyBGKVtOXShfKC0xKSksITF9Y2F0Y2h7aWYoIXcpcmV0dXJuITA7dHJ5e3JldHVybihuZXcgRilbTl0o'@; put 'cCgtMS8wKSksITF9Y2F0Y2h7dmFyIEg9bmV3IEY7cmV0dXJuIEguYWRkKDEpLEguYWRkKDIpLHcoSFtOXShwKDEvMCkpKX19fWNhdGNoe3JldHVybiExfX19LDQ2MzYyOmNlPT57InVzZSBzdHJpY3QiO2NlLmV4cG9ydHM9ZnVuY3Rpb24oSil7dHJ5e3ZhciBiPW5ldyBTZXQsRD17c2l6ZTow'@; put 'LGhhczpmdW5jdGlvbigpe3JldHVybiEwfSxrZXlzOmZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwibmV4dCIse2dldDpmdW5jdGlvbigpe3JldHVybiBiLmNsZWFyKCksYi5hZGQoNCksZnVuY3Rpb24oKXtyZXR1cm57ZG9uZTohMH19fX0pfX0sXz1iW0pdKEQp'@; put 'O3JldHVybiAxPT09Xy5zaXplJiY0PT09Xy52YWx1ZXMoKS5uZXh0KCkudmFsdWV9Y2F0Y2h7cmV0dXJuITF9fX0sMzAzMzk6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig2OTIyNyksXz1iKDk3NTQxKTtjZS5leHBvcnRzPUQoXy5wcm90bywic2l6ZSIsImdldCIpfHxmdW5jdGlv'@; put 'bihwKXtyZXR1cm4gcC5zaXplfX0sODUwMzk6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigzNzczMSksXz1iKDk3NTQxKSxwPWIoMTQ0NSksTj1iKDQzNjMyKSx3PWIoMTEzOCksRj1fLmFkZCxIPV8uaGFzLFI9Xy5yZW1vdmU7Y2UuZXhwb3J0cz1mdW5jdGlvbihQKXt2YXIgTD1E'@; put 'KHRoaXMpLFk9TihQKS5nZXRJdGVyYXRvcigpLEI9cChMKTtyZXR1cm4gdyhZLGZ1bmN0aW9uKFcpe0goTCxXKT9SKEIsVyk6RihCLFcpfSksQn19LDIwNTA3OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMzc3MzEpLF89Yig5NzU0MSkuYWRkLHA9YigxNDQ1KSxOPWIoNDM2MzIp'@; put 'LHc9YigxMTM4KTtjZS5leHBvcnRzPWZ1bmN0aW9uKEgpe3ZhciBSPUQodGhpcyksaj1OKEgpLmdldEl0ZXJhdG9yKCksUD1wKFIpO3JldHVybiB3KGosZnVuY3Rpb24oTCl7XyhQLEwpfSksUH19LDc5NjYyOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoODc0ODQpLF89Yig2Mzk1'@; put 'MSkscD1EKCJrZXlzIik7Y2UuZXhwb3J0cz1mdW5jdGlvbihOKXtyZXR1cm4gcFtOXXx8KHBbTl09XyhOKSl9fSw0ODM1NjooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDg4Nzg4KSxfPWIoMzM5NjMpLHA9Yig0ODEwNCksTj0iX19jb3JlLWpzX3NoYXJlZF9fIix3PWNlLmV4cG9y'@; put 'dHM9X1tOXXx8cChOLHt9KTsody52ZXJzaW9uc3x8KHcudmVyc2lvbnM9W10pKS5wdXNoKHt2ZXJzaW9uOiIzLjQ0LjAiLG1vZGU6RD8icHVyZSI6Imdsb2JhbCIsY29weXJpZ2h0OiJceGE5IDIwMTQtMjAyNSBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSIsbGljZW5zZToiaHR0cHM6'@; put 'Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvYmxvYi92My40NC4wL0xJQ0VOU0UiLHNvdXJjZToiaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMifSl9LDg3NDg0OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNDgzNTYpO2NlLmV4cG9ydHM9ZnVuY3Rpb24o'@; put 'XyxwKXtyZXR1cm4gRFtfXXx8KERbX109cHx8e30pfX0sMzY1MDY6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig0NDA2NiksXz1iKDU1NTkyKSxOPWIoMzM5NjMpLlN0cmluZztjZS5leHBvcnRzPSEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmIV8oZnVuY3Rpb24oKXt2'@; put 'YXIgdz1TeW1ib2woInN5bWJvbCBkZXRlY3Rpb24iKTtyZXR1cm4hTih3KXx8IShPYmplY3QodylpbnN0YW5jZW9mIFN5bWJvbCl8fCFTeW1ib2wuc2hhbSYmRCYmRDw0MX0pfSw3NTk2OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBfZSxUZSxTZSx6ZSxEPWIoMzM5NjMpLF89Yig0MDIy'@; put 'MCkscD1iKDc4ODExKSxOPWIoMTkxNTApLHc9YigzOGUzKSxGPWIoNTU1OTIpLEg9Yig4NzM3MiksUj1iKDc3NjM5KSxqPWIoNTU5ODgpLFA9YigyNzk2NyksTD1iKDQ0MTM3KSxZPWIoMjE1MTApLEI9RC5zZXRJbW1lZGlhdGUsVz1ELmNsZWFySW1tZWRpYXRlLFo9RC5wcm9jZXNzLFg9RC5E'@; put 'aXNwYXRjaCxRPUQuRnVuY3Rpb24scT1ELk1lc3NhZ2VDaGFubmVsLHRlPUQuU3RyaW5nLGllPTAsc2U9e30sZ2U9Im9ucmVhZHlzdGF0ZWNoYW5nZSI7RihmdW5jdGlvbigpe19lPUQubG9jYXRpb259KTt2YXIgej1mdW5jdGlvbihDKXtpZih3KHNlLEMpKXt2YXIgVD1zZVtDXTtkZWxldGUg'@; put 'c2VbQ10sVCgpfX0sZz1mdW5jdGlvbihDKXtyZXR1cm4gZnVuY3Rpb24oKXt6KEMpfX0seT1mdW5jdGlvbihDKXt6KEMuZGF0YSl9LHg9ZnVuY3Rpb24oQyl7RC5wb3N0TWVzc2FnZSh0ZShDKSxfZS5wcm90b2NvbCsiLy8iK19lLmhvc3QpfTsoIUJ8fCFXKSYmKEI9ZnVuY3Rpb24oVCl7UChh'@; put 'cmd1bWVudHMubGVuZ3RoLDEpO3ZhciBWPU4oVCk/VDpRKFQpLFU9Uihhcmd1bWVudHMsMSk7cmV0dXJuIHNlWysraWVdPWZ1bmN0aW9uKCl7XyhWLHZvaWQgMCxVKX0sVGUoaWUpLGllfSxXPWZ1bmN0aW9uKFQpe2RlbGV0ZSBzZVtUXX0sWT9UZT1mdW5jdGlvbihDKXtaLm5leHRUaWNrKGco'@; put 'QykpfTpYJiZYLm5vdz9UZT1mdW5jdGlvbihDKXtYLm5vdyhnKEMpKX06cSYmIUw/KHplPShTZT1uZXcgcSkucG9ydDIsU2UucG9ydDEub25tZXNzYWdlPXksVGU9cCh6ZS5wb3N0TWVzc2FnZSx6ZSkpOkQuYWRkRXZlbnRMaXN0ZW5lciYmTihELnBvc3RNZXNzYWdlKSYmIUQuaW1wb3J0U2Ny'@; put 'aXB0cyYmX2UmJiJmaWxlOiIhPT1fZS5wcm90b2NvbCYmIUYoeCk/KFRlPXgsRC5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIix5LCExKSk6VGU9Z2UgaW4gaigic2NyaXB0Iik/ZnVuY3Rpb24oQyl7SC5hcHBlbmRDaGlsZChqKCJzY3JpcHQiKSlbZ2VdPWZ1bmN0aW9uKCl7SC5yZW1vdmVD'@; put 'aGlsZCh0aGlzKSx6KEMpfX06ZnVuY3Rpb24oQyl7c2V0VGltZW91dChnKEMpLDApfSksY2UuZXhwb3J0cz17c2V0OkIsY2xlYXI6V319LDc0ODU6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig2NDU1MCksXz1NYXRoLm1heCxwPU1hdGgubWluO2NlLmV4cG9ydHM9ZnVuY3Rpb24o'@; put 'Tix3KXt2YXIgRj1EKE4pO3JldHVybiBGPDA/XyhGK3csMCk6cChGLHcpfX0sOTMxNjI6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig1NTgpLF89Yig4ODI3NSk7Y2UuZXhwb3J0cz1mdW5jdGlvbihwKXtyZXR1cm4gRChfKHApKX19LDY0NTUwOihjZSxKLGIpPT57InVzZSBzdHJp'@; put 'Y3QiO3ZhciBEPWIoMTg1NTYpO2NlLmV4cG9ydHM9ZnVuY3Rpb24oXyl7dmFyIHA9K187cmV0dXJuIHAhPXB8fDA9PT1wPzA6RChwKX19LDk0MjM3OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNjQ1NTApLF89TWF0aC5taW47Y2UuZXhwb3J0cz1mdW5jdGlvbihwKXt2YXIgTj1E'@; put 'KHApO3JldHVybiBOPjA/XyhOLDkwMDcxOTkyNTQ3NDA5OTEpOjB9fSwzMTk1MDooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDg4Mjc1KSxfPU9iamVjdDtjZS5leHBvcnRzPWZ1bmN0aW9uKHApe3JldHVybiBfKEQocCkpfX0sODU2NTY6KGNlLEosYik9PnsidXNlIHN0cmljdCI7'@; put 'dmFyIEQ9Yig0NjkyNiksXz1iKDMyNjMzKSxwPWIoOTI5OTgpLE49Yig4NjExNSksdz1iKDkzODY1KSxGPWIoNTgwMTIpLEg9VHlwZUVycm9yLFI9RigidG9QcmltaXRpdmUiKTtjZS5leHBvcnRzPWZ1bmN0aW9uKGosUCl7aWYoIV8oail8fHAoaikpcmV0dXJuIGo7dmFyIFksTD1OKGosUik7'@; put 'aWYoTCl7aWYodm9pZCAwPT09UCYmKFA9ImRlZmF1bHQiKSxZPUQoTCxqLFApLCFfKFkpfHxwKFkpKXJldHVybiBZO3Rocm93IG5ldyBIKCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWUiKX1yZXR1cm4gdm9pZCAwPT09UCYmKFA9Im51bWJlciIpLHcoaixQKX19LDU5'@; put 'NDEwOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoODU2NTYpLF89Yig5Mjk5OCk7Y2UuZXhwb3J0cz1mdW5jdGlvbihwKXt2YXIgTj1EKHAsInN0cmluZyIpO3JldHVybiBfKE4pP046TisiIn19LDM4NTk1OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBwPXt9O3BbYig1ODAx'@; put 'MikoInRvU3RyaW5nVGFnIildPSJ6IixjZS5leHBvcnRzPSJbb2JqZWN0IHpdIj09PVN0cmluZyhwKX0sNjgzMzI6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9Yig3MTgyNCksXz1TdHJpbmc7Y2UuZXhwb3J0cz1mdW5jdGlvbihwKXtpZigiU3ltYm9sIj09PUQocCkpdGhyb3cgbmV3'@; put 'IFR5cGVFcnJvcigiQ2Fubm90IGNvbnZlcnQgYSBTeW1ib2wgdmFsdWUgdG8gYSBzdHJpbmciKTtyZXR1cm4gXyhwKX19LDc1MjEyOmNlPT57InVzZSBzdHJpY3QiO3ZhciBKPVN0cmluZztjZS5leHBvcnRzPWZ1bmN0aW9uKGIpe3RyeXtyZXR1cm4gSihiKX1jYXRjaHtyZXR1cm4iT2JqZWN0'@; put 'In19fSw2Mzk1MTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDU4NjA3KSxfPTAscD1NYXRoLnJhbmRvbSgpLE49RCgxLjEudG9TdHJpbmcpO2NlLmV4cG9ydHM9ZnVuY3Rpb24odyl7cmV0dXJuIlN5bWJvbCgiKyh2b2lkIDA9PT13PyIiOncpKyIpXyIrTigrK18rcCwzNil9fSw2'@; put 'Njk5NTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDM2NTA2KTtjZS5leHBvcnRzPUQmJiFTeW1ib2wuc2hhbSYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3J9LDI2OTI5OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoNDYzODcpLF89Yig1NTU5Mik7Y2Uu'@; put 'ZXhwb3J0cz1EJiZfKGZ1bmN0aW9uKCl7cmV0dXJuIDQyIT09T2JqZWN0LmRlZmluZVByb3BlcnR5KGZ1bmN0aW9uKCl7fSwicHJvdG90eXBlIix7dmFsdWU6NDIsd3JpdGFibGU6ITF9KS5wcm90b3R5cGV9KX0sMjc5Njc6Y2U9PnsidXNlIHN0cmljdCI7dmFyIEo9VHlwZUVycm9yO2NlLmV4'@; put 'cG9ydHM9ZnVuY3Rpb24oYixEKXtpZihiPEQpdGhyb3cgbmV3IEooIk5vdCBlbm91Z2ggYXJndW1lbnRzIik7cmV0dXJuIGJ9fSw0ODY5MTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDMzOTYzKSxfPWIoMTkxNTApLHA9RC5XZWFrTWFwO2NlLmV4cG9ydHM9XyhwKSYmL25hdGl2'@; put 'ZSBjb2RlLy50ZXN0KFN0cmluZyhwKSl9LDU4MDEyOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMzM5NjMpLF89Yig4NzQ4NCkscD1iKDM4ZTMpLE49Yig2Mzk1MSksdz1iKDM2NTA2KSxGPWIoNjY5OTUpLEg9RC5TeW1ib2wsUj1fKCJ3a3MiKSxqPUY/SC5mb3J8fEg6SCYmSC53'@; put 'aXRob3V0U2V0dGVyfHxOO2NlLmV4cG9ydHM9ZnVuY3Rpb24oUCl7cmV0dXJuIHAoUixQKXx8KFJbUF09dyYmcChILFApP0hbUF06aigiU3ltYm9sLiIrUCkpLFJbUF19fSwzMjkzMDooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDEyMjAyKSxfPWIoMzhlMykscD1iKDM2Njc4KSxO'@; put 'PWIoNDY4KSx3PWIoMjE2MTIpLEY9Yig0ODYzOSksSD1iKDYwMzIxKSxSPWIoMTcyOTYpLGo9YigzOTExNiksUD1iKDY0ODU1KSxMPWIoMjIzMDQpLFk9Yig0NjM4NyksQj1iKDg4Nzg4KTtjZS5leHBvcnRzPWZ1bmN0aW9uKFcsWixYLFEpe3ZhciBxPSJzdGFja1RyYWNlTGltaXQiLHRlPVE/'@; put 'MjoxLGllPVcuc3BsaXQoIi4iKSxzZT1pZVtpZS5sZW5ndGgtMV0sZ2U9RC5hcHBseShudWxsLGllKTtpZihnZSl7dmFyIF9lPWdlLnByb3RvdHlwZTtpZighQiYmXyhfZSwiY2F1c2UiKSYmZGVsZXRlIF9lLmNhdXNlLCFYKXJldHVybiBnZTt2YXIgVGU9RCgiRXJyb3IiKSxTZT1aKGZ1bmN0'@; put 'aW9uKHplLHope3ZhciBnPWooUT96OnplLHZvaWQgMCkseT1RP25ldyBnZSh6ZSk6bmV3IGdlO3JldHVybiB2b2lkIDAhPT1nJiZwKHksIm1lc3NhZ2UiLGcpLEwoeSxTZSx5LnN0YWNrLDIpLHRoaXMmJk4oX2UsdGhpcykmJlIoeSx0aGlzLFNlKSxhcmd1bWVudHMubGVuZ3RoPnRlJiZQKHks'@; put 'YXJndW1lbnRzW3RlXSkseX0pO2lmKFNlLnByb3RvdHlwZT1fZSwiRXJyb3IiIT09c2U/dz93KFNlLFRlKTpGKFNlLFRlLHtuYW1lOiEwfSk6WSYmcSBpbiBnZSYmKEgoU2UsZ2UscSksSChTZSxnZSwicHJlcGFyZVN0YWNrVHJhY2UiKSksRihTZSxnZSksIUIpdHJ5e19lLm5hbWUhPT1zZSYm'@; put 'cChfZSwibmFtZSIsc2UpLF9lLmNvbnN0cnVjdG9yPVNlfWNhdGNoe31yZXR1cm4gU2V9fX0sMzkwOTI6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigyODM2NyksXz1iKDMxOTUwKSxwPWIoNzE3MSksTj1iKDY0NTUwKSx3PWIoNzA4MjQpO0Qoe3RhcmdldDoiQXJyYXkiLHByb3Rv'@; put 'OiEwfSx7YXQ6ZnVuY3Rpb24oSCl7dmFyIFI9Xyh0aGlzKSxqPXAoUiksUD1OKEgpLEw9UD49MD9QOmorUDtyZXR1cm4gTDwwfHxMPj1qP3ZvaWQgMDpSW0xdfX0pLHcoImF0Iil9LDc3NTI1OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMjgzNjcpLF89YigzMTk1MCkscD1iKDcx'@; put 'NzEpLE49YigzOTIwNiksdz1iKDMzMTYpO0Qoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGFyaXR5OjEsZm9yY2VkOmIoNTU1OTIpKGZ1bmN0aW9uKCl7cmV0dXJuIDQyOTQ5NjcyOTchPT1bXS5wdXNoLmNhbGwoe2xlbmd0aDo0Mjk0OTY3Mjk2fSwxKX0pfHwhZnVuY3Rpb24oKXt0cnl7T2Jq'@; put 'ZWN0LmRlZmluZVByb3BlcnR5KFtdLCJsZW5ndGgiLHt3cml0YWJsZTohMX0pLnB1c2goKX1jYXRjaChQKXtyZXR1cm4gUCBpbnN0YW5jZW9mIFR5cGVFcnJvcn19KCl9LHtwdXNoOmZ1bmN0aW9uKEwpe3ZhciBZPV8odGhpcyksQj1wKFkpLFc9YXJndW1lbnRzLmxlbmd0aDt3KEIrVyk7Zm9y'@; put 'KHZhciBaPTA7WjxXO1orKylZW0JdPWFyZ3VtZW50c1taXSxCKys7cmV0dXJuIE4oWSxCKSxCfX0pfSwyMzAxMjooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDI4MzY3KSxfPWIoNTg2MDcpLHA9YigzMTQ4MyksTj1iKDkzMTYyKSx3PWIoMzg4MSksRj1iKDY2NTAzKSxIPWIoNzA4'@; put 'MjQpLFI9QXJyYXksaj1fKEYoIkFycmF5Iiwic29ydCIpKTtEKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMH0se3RvU29ydGVkOmZ1bmN0aW9uKEwpe3ZvaWQgMCE9PUwmJnAoTCk7dmFyIFk9Tih0aGlzKSxCPXcoUixZKTtyZXR1cm4gaihCLEwpfX0pLEgoInRvU29ydGVkIil9LDY4MTQ2Oihj'@; put 'ZSxKLGIpPT57InVzZSBzdHJpY3QiO2IoNzA4MjQpKCJmbGF0TWFwIil9LDkzOTA5OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO2IoNzA4MjQpKCJmbGF0Iil9LDI5NzYwOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMjgzNjcpLF89YigzMTk1MCkscD1iKDcxNzEpLE49YigzOTIw'@; put 'Niksdz1iKDQzMTk1KSxGPWIoMzMxNik7RCh7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsYXJpdHk6MSxmb3JjZWQ6MSE9PVtdLnVuc2hpZnQoMCl8fCFmdW5jdGlvbigpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoW10sImxlbmd0aCIse3dyaXRhYmxlOiExfSkudW5zaGlmdCgpfWNhdGNo'@; put 'KFApe3JldHVybiBQIGluc3RhbmNlb2YgVHlwZUVycm9yfX0oKX0se3Vuc2hpZnQ6ZnVuY3Rpb24oTCl7dmFyIFk9Xyh0aGlzKSxCPXAoWSksVz1hcmd1bWVudHMubGVuZ3RoO2lmKFcpe0YoQitXKTtmb3IodmFyIFo9QjtaLS07KXt2YXIgWD1aK1c7WiBpbiBZP1lbWF09WVtaXTp3KFksWCl9'@; put 'Zm9yKHZhciBRPTA7UTxXO1ErKylZW1FdPWFyZ3VtZW50c1tRXX1yZXR1cm4gTihZLEIrVyl9fSl9LDQ5NTM3OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMjgzNjcpLF89YigzMzk2MykscD1iKDQwMjIwKSxOPWIoMzI5MzApLHc9IldlYkFzc2VtYmx5IixGPV9bd10sSD03IT09'@; put 'bmV3IEVycm9yKCJlIix7Y2F1c2U6N30pLmNhdXNlLFI9ZnVuY3Rpb24oUCxMKXt2YXIgWT17fTtZW1BdPU4oUCxMLEgpLEQoe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxhcml0eToxLGZvcmNlZDpIfSxZKX0saj1mdW5jdGlvbihQLEwpe2lmKEYmJkZbUF0pe3ZhciBZPXt9O1lbUF09Tih3'@; put 'KyIuIitQLEwsSCksRCh7dGFyZ2V0Oncsc3RhdDohMCxjb25zdHJ1Y3RvcjohMCxhcml0eToxLGZvcmNlZDpIfSxZKX19O1IoIkVycm9yIixmdW5jdGlvbihQKXtyZXR1cm4gZnVuY3Rpb24oWSl7cmV0dXJuIHAoUCx0aGlzLGFyZ3VtZW50cyl9fSksUigiRXZhbEVycm9yIixmdW5jdGlvbihQ'@; put 'KXtyZXR1cm4gZnVuY3Rpb24oWSl7cmV0dXJuIHAoUCx0aGlzLGFyZ3VtZW50cyl9fSksUigiUmFuZ2VFcnJvciIsZnVuY3Rpb24oUCl7cmV0dXJuIGZ1bmN0aW9uKFkpe3JldHVybiBwKFAsdGhpcyxhcmd1bWVudHMpfX0pLFIoIlJlZmVyZW5jZUVycm9yIixmdW5jdGlvbihQKXtyZXR1cm4g'@; put 'ZnVuY3Rpb24oWSl7cmV0dXJuIHAoUCx0aGlzLGFyZ3VtZW50cyl9fSksUigiU3ludGF4RXJyb3IiLGZ1bmN0aW9uKFApe3JldHVybiBmdW5jdGlvbihZKXtyZXR1cm4gcChQLHRoaXMsYXJndW1lbnRzKX19KSxSKCJUeXBlRXJyb3IiLGZ1bmN0aW9uKFApe3JldHVybiBmdW5jdGlvbihZKXty'@; put 'ZXR1cm4gcChQLHRoaXMsYXJndW1lbnRzKX19KSxSKCJVUklFcnJvciIsZnVuY3Rpb24oUCl7cmV0dXJuIGZ1bmN0aW9uKFkpe3JldHVybiBwKFAsdGhpcyxhcmd1bWVudHMpfX0pLGooIkNvbXBpbGVFcnJvciIsZnVuY3Rpb24oUCl7cmV0dXJuIGZ1bmN0aW9uKFkpe3JldHVybiBwKFAsdGhp'@; put 'cyxhcmd1bWVudHMpfX0pLGooIkxpbmtFcnJvciIsZnVuY3Rpb24oUCl7cmV0dXJuIGZ1bmN0aW9uKFkpe3JldHVybiBwKFAsdGhpcyxhcmd1bWVudHMpfX0pLGooIlJ1bnRpbWVFcnJvciIsZnVuY3Rpb24oUCl7cmV0dXJuIGZ1bmN0aW9uKFkpe3JldHVybiBwKFAsdGhpcyxhcmd1bWVudHMp'@; put 'fX0pfSw5NjE4MDooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDI4MzY3KSxfPWIoMzM5NjMpLHA9Yig2MzMzNiksTj1iKDExMDgpLHc9YigxOTE1MCksRj1iKDI2NDAwKSxIPWIoNDQwMzkpLFI9Yig1ODc5NSksaj1iKDU1NTkyKSxQPWIoMzhlMyksTD1iKDU4MDEyKSxZPWIoNzg5'@; put 'NjgpLkl0ZXJhdG9yUHJvdG90eXBlLEI9Yig0NjM4NyksVz1iKDg4Nzg4KSxaPSJjb25zdHJ1Y3RvciIsWD0iSXRlcmF0b3IiLFE9TCgidG9TdHJpbmdUYWciKSxxPVR5cGVFcnJvcix0ZT1fW1hdLGllPVd8fCF3KHRlKXx8dGUucHJvdG90eXBlIT09WXx8IWooZnVuY3Rpb24oKXt0ZSh7fSl9'@; put 'KSxzZT1mdW5jdGlvbigpe2lmKHAodGhpcyxZKSxGKHRoaXMpPT09WSl0aHJvdyBuZXcgcSgiQWJzdHJhY3QgY2xhc3MgSXRlcmF0b3Igbm90IGRpcmVjdGx5IGNvbnN0cnVjdGFibGUiKX0sZ2U9ZnVuY3Rpb24oX2UsVGUpe0I/SChZLF9lLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9u'@; put 'KCl7cmV0dXJuIFRlfSxzZXQ6ZnVuY3Rpb24oU2Upe2lmKE4odGhpcyksdGhpcz09PVkpdGhyb3cgbmV3IHEoIllvdSBjYW4ndCByZWRlZmluZSB0aGlzIHByb3BlcnR5Iik7UCh0aGlzLF9lKT90aGlzW19lXT1TZTpSKHRoaXMsX2UsU2UpfX0pOllbX2VdPVRlfTtQKFksUSl8fGdlKFEsWCks'@; put 'KGllfHwhUChZLFopfHxZW1pdPT09T2JqZWN0KSYmZ2UoWixzZSksc2UucHJvdG90eXBlPVksRCh7Z2xvYmFsOiEwLGNvbnN0cnVjdG9yOiEwLGZvcmNlZDppZX0se0l0ZXJhdG9yOnNlfSl9LDM5NTk1OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMjgzNjcpLF89Yig0NjkyNiks'@; put 'cD1iKDMwNzg3KSxOPWIoMzE0ODMpLHc9YigxMTA4KSxGPWIoNzU0MjQpLEg9Yig2NjU0Miksaj1iKDQxMjUyKSgiZXZlcnkiLFR5cGVFcnJvcik7RCh7dGFyZ2V0OiJJdGVyYXRvciIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6an0se2V2ZXJ5OmZ1bmN0aW9uKEwpe3codGhpcyk7dHJ5e04o'@; put 'TCl9Y2F0Y2goVyl7SCh0aGlzLCJ0aHJvdyIsVyl9aWYoailyZXR1cm4gXyhqLHRoaXMsTCk7dmFyIFk9Rih0aGlzKSxCPTA7cmV0dXJuIXAoWSxmdW5jdGlvbihXLFope2lmKCFMKFcsQisrKSlyZXR1cm4gWigpfSx7SVNfUkVDT1JEOiEwLElOVEVSUlVQVEVEOiEwfSkuc3RvcHBlZH19KX0s'@; put 'OTI1ODA6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigyODM2NyksXz1iKDQ2OTI2KSxwPWIoMzE0ODMpLE49YigxMTA4KSx3PWIoNzU0MjQpLEY9Yig2OTkxNyksSD1iKDQyOTI2KSxSPWIoODg3ODgpLGo9Yig2NjU0MiksUD1iKDU2NzQ1KSxMPWIoNDEyNTIpLFk9IVImJiFQKCJm'@; put 'aWx0ZXIiLGZ1bmN0aW9uKCl7fSksQj0hUiYmIVkmJkwoImZpbHRlciIsVHlwZUVycm9yKSxXPVJ8fFl8fEIsWj1GKGZ1bmN0aW9uKCl7Zm9yKHZhciB0ZSxzZSxYPXRoaXMuaXRlcmF0b3IsUT10aGlzLnByZWRpY2F0ZSxxPXRoaXMubmV4dDs7KXtpZih0ZT1OKF8ocSxYKSksdGhpcy5kb25l'@; put 'PSEhdGUuZG9uZSlyZXR1cm47aWYoSChYLFEsW3NlPXRlLnZhbHVlLHRoaXMuY291bnRlcisrXSwhMCkpcmV0dXJuIHNlfX0pO0Qoe3RhcmdldDoiSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOld9LHtmaWx0ZXI6ZnVuY3Rpb24oUSl7Tih0aGlzKTt0cnl7cChRKX1jYXRjaChx'@; put 'KXtqKHRoaXMsInRocm93IixxKX1yZXR1cm4gQj9fKEIsdGhpcyxRKTpuZXcgWih3KHRoaXMpLHtwcmVkaWNhdGU6UX0pfX0pfSwyNjM1NzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDI4MzY3KSxfPWIoNDY5MjYpLHA9YigzMDc4NyksTj1iKDMxNDgzKSx3PWIoMTEwOCksRj1i'@; put 'KDc1NDI0KSxIPWIoNjY1NDIpLGo9Yig0MTI1MikoImZpbmQiLFR5cGVFcnJvcik7RCh7dGFyZ2V0OiJJdGVyYXRvciIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6an0se2ZpbmQ6ZnVuY3Rpb24oTCl7dyh0aGlzKTt0cnl7TihMKX1jYXRjaChXKXtIKHRoaXMsInRocm93IixXKX1pZihqKXJl'@; put 'dHVybiBfKGosdGhpcyxMKTt2YXIgWT1GKHRoaXMpLEI9MDtyZXR1cm4gcChZLGZ1bmN0aW9uKFcsWil7aWYoTChXLEIrKykpcmV0dXJuIFooVyl9LHtJU19SRUNPUkQ6ITAsSU5URVJSVVBURUQ6ITB9KS5yZXN1bHR9fSl9LDM2NTc4OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIo'@; put 'MjgzNjcpLF89Yig0NjkyNikscD1iKDMxNDgzKSxOPWIoMTEwOCksdz1iKDc1NDI0KSxGPWIoNjM2MjcpLEg9Yig2OTkxNyksUj1iKDY2NTQyKSxqPWIoODg3ODgpLFA9Yig1Njc0NSksTD1iKDQxMjUyKSxZPSFqJiYhUCgiZmxhdE1hcCIsZnVuY3Rpb24oKXt9KSxCPSFqJiYhWSYmTCgiZmxh'@; put 'dE1hcCIsVHlwZUVycm9yKSxXPWp8fFl8fEIsWj1IKGZ1bmN0aW9uKCl7Zm9yKHZhciBxLHRlLFg9dGhpcy5pdGVyYXRvcixRPXRoaXMubWFwcGVyOzspe2lmKHRlPXRoaXMuaW5uZXIpdHJ5e2lmKCEocT1OKF8odGUubmV4dCx0ZS5pdGVyYXRvcikpKS5kb25lKXJldHVybiBxLnZhbHVlO3Ro'@; put 'aXMuaW5uZXI9bnVsbH1jYXRjaChpZSl7UihYLCJ0aHJvdyIsaWUpfWlmKHE9TihfKHRoaXMubmV4dCxYKSksdGhpcy5kb25lPSEhcS5kb25lKXJldHVybjt0cnl7dGhpcy5pbm5lcj1GKFEocS52YWx1ZSx0aGlzLmNvdW50ZXIrKyksITEpfWNhdGNoKGllKXtSKFgsInRocm93IixpZSl9fX0p'@; put 'O0Qoe3RhcmdldDoiSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOld9LHtmbGF0TWFwOmZ1bmN0aW9uKFEpe04odGhpcyk7dHJ5e3AoUSl9Y2F0Y2gocSl7Uih0aGlzLCJ0aHJvdyIscSl9cmV0dXJuIEI/XyhCLHRoaXMsUSk6bmV3IFoodyh0aGlzKSx7bWFwcGVyOlEsaW5uZXI6'@; put 'bnVsbH0pfX0pfSwzMTM1MzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDI4MzY3KSxfPWIoNDY5MjYpLHA9YigzMDc4NyksTj1iKDMxNDgzKSx3PWIoMTEwOCksRj1iKDc1NDI0KSxIPWIoNjY1NDIpLGo9Yig0MTI1MikoImZvckVhY2giLFR5cGVFcnJvcik7RCh7dGFyZ2V0OiJJ'@; put 'dGVyYXRvciIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6an0se2ZvckVhY2g6ZnVuY3Rpb24oTCl7dyh0aGlzKTt0cnl7TihMKX1jYXRjaChXKXtIKHRoaXMsInRocm93IixXKX1pZihqKXJldHVybiBfKGosdGhpcyxMKTt2YXIgWT1GKHRoaXMpLEI9MDtwKFksZnVuY3Rpb24oVyl7TChXLEIr'@; put 'Kyl9LHtJU19SRUNPUkQ6ITB9KX19KX0sNzEzNTQ6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigyODM2NyksXz1iKDQ2OTI2KSxwPWIoMzE0ODMpLE49YigxMTA4KSx3PWIoNzU0MjQpLEY9Yig2OTkxNyksSD1iKDQyOTI2KSxSPWIoNjY1NDIpLGo9Yig1Njc0NSksUD1iKDQxMjUy'@; put 'KSxMPWIoODg3ODgpLFk9IUwmJiFqKCJtYXAiLGZ1bmN0aW9uKCl7fSksQj0hTCYmIVkmJlAoIm1hcCIsVHlwZUVycm9yKSxXPUx8fFl8fEIsWj1GKGZ1bmN0aW9uKCl7dmFyIFg9dGhpcy5pdGVyYXRvcixRPU4oXyh0aGlzLm5leHQsWCkpO2lmKCEodGhpcy5kb25lPSEhUS5kb25lKSlyZXR1'@; put 'cm4gSChYLHRoaXMubWFwcGVyLFtRLnZhbHVlLHRoaXMuY291bnRlcisrXSwhMCl9KTtEKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpXfSx7bWFwOmZ1bmN0aW9uKFEpe04odGhpcyk7dHJ5e3AoUSl9Y2F0Y2gocSl7Uih0aGlzLCJ0aHJvdyIscSl9cmV0dXJu'@; put 'IEI/XyhCLHRoaXMsUSk6bmV3IFoodyh0aGlzKSx7bWFwcGVyOlF9KX19KX0sNTMzNDg6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigyODM2NyksXz1iKDMwNzg3KSxwPWIoMzE0ODMpLE49YigxMTA4KSx3PWIoNzU0MjQpLEY9Yig2NjU0MiksSD1iKDQxMjUyKSxSPWIoNDAyMjAp'@; put 'LGo9Yig1NTU5MiksUD1UeXBlRXJyb3IsTD1qKGZ1bmN0aW9uKCl7W10ua2V5cygpLnJlZHVjZShmdW5jdGlvbigpe30sdm9pZCAwKX0pLFk9IUwmJkgoInJlZHVjZSIsUCk7RCh7dGFyZ2V0OiJJdGVyYXRvciIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6THx8WX0se3JlZHVjZTpmdW5jdGlv'@; put 'bihXKXtOKHRoaXMpO3RyeXtwKFcpfWNhdGNoKHRlKXtGKHRoaXMsInRocm93Iix0ZSl9dmFyIFo9YXJndW1lbnRzLmxlbmd0aDwyLFg9Wj92b2lkIDA6YXJndW1lbnRzWzFdO2lmKFkpcmV0dXJuIFIoWSx0aGlzLFo/W1ddOltXLFhdKTt2YXIgUT13KHRoaXMpLHE9MDtpZihfKFEsZnVuY3Rp'@; put 'b24odGUpe1o/KFo9ITEsWD10ZSk6WD1XKFgsdGUscSkscSsrfSx7SVNfUkVDT1JEOiEwfSksWil0aHJvdyBuZXcgUCgiUmVkdWNlIG9mIGVtcHR5IGl0ZXJhdG9yIHdpdGggbm8gaW5pdGlhbCB2YWx1ZSIpO3JldHVybiBYfX0pfSw5Mzc4OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBE'@; put 'PWIoMjgzNjcpLF89Yig0NjkyNikscD1iKDMwNzg3KSxOPWIoMzE0ODMpLHc9YigxMTA4KSxGPWIoNzU0MjQpLEg9Yig2NjU0Miksaj1iKDQxMjUyKSgic29tZSIsVHlwZUVycm9yKTtEKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpqfSx7c29tZTpmdW5jdGlv'@; put 'bihMKXt3KHRoaXMpO3RyeXtOKEwpfWNhdGNoKFcpe0godGhpcywidGhyb3ciLFcpfWlmKGopcmV0dXJuIF8oaix0aGlzLEwpO3ZhciBZPUYodGhpcyksQj0wO3JldHVybiBwKFksZnVuY3Rpb24oVyxaKXtpZihMKFcsQisrKSlyZXR1cm4gWigpfSx7SVNfUkVDT1JEOiEwLElOVEVSUlVQVEVE'@; put 'OiEwfSkuc3RvcHBlZH19KX0sOTU0OTM6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigyODM2NyksXz1iKDEyMjAyKSxwPWIoNDAyMjApLE49Yig0NjkyNiksdz1iKDU4NjA3KSxGPWIoNTU1OTIpLEg9YigxOTE1MCksUj1iKDkyOTk4KSxqPWIoNzc2MzkpLFA9Yig4NDUyNCksTD1i'@; put 'KDM2NTA2KSxZPVN0cmluZyxCPV8oIkpTT04iLCJzdHJpbmdpZnkiKSxXPXcoLy4vLmV4ZWMpLFo9dygiIi5jaGFyQXQpLFg9dygiIi5jaGFyQ29kZUF0KSxRPXcoIiIucmVwbGFjZSkscT13KDEuMS50b1N0cmluZyksdGU9L1tcdUQ4MDAtXHVERkZGXS9nLGllPS9eW1x1RDgwMC1cdURCRkZd'@; put 'JC8sc2U9L15bXHVEQzAwLVx1REZGRl0kLyxnZT0hTHx8RihmdW5jdGlvbigpe3ZhciB6ZT1fKCJTeW1ib2wiKSgic3RyaW5naWZ5IGRldGVjdGlvbiIpO3JldHVybiJbbnVsbF0iIT09QihbemVdKXx8Int9IiE9PUIoe2E6emV9KXx8Int9IiE9PUIoT2JqZWN0KHplKSl9KSxfZT1GKGZ1bmN0'@; put 'aW9uKCl7cmV0dXJuJyJcXHVkZjA2XFx1ZDgzNCInIT09QigiXHVkZjA2XHVkODM0Iil8fCciXFx1ZGVhZCInIT09QigiXHVkZWFkIil9KSxUZT1mdW5jdGlvbih6ZSx6KXt2YXIgZz1qKGFyZ3VtZW50cykseT1QKHopO2lmKEgoeSl8fHZvaWQgMCE9PXplJiYhUih6ZSkpcmV0dXJuIGdbMV09'@; put 'ZnVuY3Rpb24oeCxDKXtpZihIKHkpJiYoQz1OKHksdGhpcyxZKHgpLEMpKSwhUihDKSlyZXR1cm4gQ30scChCLG51bGwsZyl9LFNlPWZ1bmN0aW9uKHplLHosZyl7dmFyIHk9WihnLHotMSkseD1aKGcseisxKTtyZXR1cm4gVyhpZSx6ZSkmJiFXKHNlLHgpfHxXKHNlLHplKSYmIVcoaWUseSk/'@; put 'IlxcdSIrcShYKHplLDApLDE2KTp6ZX07QiYmRCh7dGFyZ2V0OiJKU09OIixzdGF0OiEwLGFyaXR5OjMsZm9yY2VkOmdlfHxfZX0se3N0cmluZ2lmeTpmdW5jdGlvbih6LGcseSl7dmFyIHg9aihhcmd1bWVudHMpLEM9cChnZT9UZTpCLG51bGwseCk7cmV0dXJuIF9lJiYic3RyaW5nIj09dHlw'@; put 'ZW9mIEM/UShDLHRlLFNlKTpDfX0pfSw1NzcyOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMjgzNjcpLF89YigzMDc4NykscD1iKDU4Nzk1KTtEKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMH0se2Zyb21FbnRyaWVzOmZ1bmN0aW9uKHcpe3ZhciBGPXt9O3JldHVybiBfKHcsZnVu'@; put 'Y3Rpb24oSCxSKXtwKEYsSCxSKX0se0FTX0VOVFJJRVM6ITB9KSxGfX0pfSw2OTg3NTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDI4MzY3KSxfPWIoODAyMTMpLHA9Yig1NTU5Mik7RCh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiFiKDUzNTA1KSgiZGlm'@; put 'ZmVyZW5jZSIsZnVuY3Rpb24oSCl7cmV0dXJuIDA9PT1ILnNpemV9KXx8cChmdW5jdGlvbigpe3ZhciBIPXtzaXplOjEsaGFzOmZ1bmN0aW9uKCl7cmV0dXJuITB9LGtleXM6ZnVuY3Rpb24oKXt2YXIgaj0wO3JldHVybntuZXh0OmZ1bmN0aW9uKCl7dmFyIFA9aisrPjE7cmV0dXJuIFIuaGFz'@; put 'KDEpJiZSLmNsZWFyKCkse2RvbmU6UCx2YWx1ZToyfX19fX0sUj1uZXcgU2V0KFsxLDIsMyw0XSk7cmV0dXJuIDMhPT1SLmRpZmZlcmVuY2UoSCkuc2l6ZX0pfSx7ZGlmZmVyZW5jZTpffSl9LDE2MDkzOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMjgzNjcpLF89Yig1NTU5Miks'@; put 'cD1iKDYxODc5KTtEKHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6IWIoNTM1MDUpKCJpbnRlcnNlY3Rpb24iLGZ1bmN0aW9uKEYpe3JldHVybiAyPT09Ri5zaXplJiZGLmhhcygxKSYmRi5oYXMoMil9KXx8XyhmdW5jdGlvbigpe3JldHVybiIzLDIiIT09U3RyaW5nKEFy'@; put 'cmF5LmZyb20obmV3IFNldChbMSwyLDNdKS5pbnRlcnNlY3Rpb24obmV3IFNldChbMywyXSkpKSl9KX0se2ludGVyc2VjdGlvbjpwfSl9LDk1NjA4OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMjgzNjcpLF89Yig3MzYyNCk7RCh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6'@; put 'ITAsZm9yY2VkOiFiKDUzNTA1KSgiaXNEaXNqb2ludEZyb20iLGZ1bmN0aW9uKHcpe3JldHVybiF3fSl9LHtpc0Rpc2pvaW50RnJvbTpffSl9LDE2NDkzOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMjgzNjcpLF89Yig3NDgzOSk7RCh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJl'@; put 'YWw6ITAsZm9yY2VkOiFiKDUzNTA1KSgiaXNTdWJzZXRPZiIsZnVuY3Rpb24odyl7cmV0dXJuIHd9KX0se2lzU3Vic2V0T2Y6X30pfSw2MTkzNDooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDI4MzY3KSxfPWIoOTYwNjIpO0Qoe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEw'@; put 'LGZvcmNlZDohYig1MzUwNSkoImlzU3VwZXJzZXRPZiIsZnVuY3Rpb24odyl7cmV0dXJuIXd9KX0se2lzU3VwZXJzZXRPZjpffSl9LDEwMTAxOihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMjgzNjcpLF89Yig4NTAzOSkscD1iKDQ2MzYyKTtEKHt0YXJnZXQ6IlNldCIscHJvdG86'@; put 'ITAscmVhbDohMCxmb3JjZWQ6IWIoNTM1MDUpKCJzeW1tZXRyaWNEaWZmZXJlbmNlIil8fCFwKCJzeW1tZXRyaWNEaWZmZXJlbmNlIil9LHtzeW1tZXRyaWNEaWZmZXJlbmNlOl99KX0sMjY4ODk6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigyODM2NyksXz1iKDIwNTA3KSxwPWIo'@; put 'NDYzNjIpO0Qoe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohYig1MzUwNSkoInVuaW9uIil8fCFwKCJ1bmlvbiIpfSx7dW5pb246X30pfSwxNDM2MDooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRD1iKDI4MzY3KSxfPWIoNTg2MDcpLHA9Yig4ODI3NSksTj1iKDY0'@; put 'NTUwKSx3PWIoNjgzMzIpLEY9Yig1NTU5MiksSD1fKCIiLmNoYXJBdCk7RCh7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDpGKGZ1bmN0aW9uKCl7cmV0dXJuIlx1ZDg0MiIhPT0iXHV7MjBiYjd9Ii5hdCgtMil9KX0se2F0OmZ1bmN0aW9uKFApe3ZhciBMPXcocCh0aGlzKSksWT1M'@; put 'Lmxlbmd0aCxCPU4oUCksVz1CPj0wP0I6WStCO3JldHVybiBXPDB8fFc+PVk/dm9pZCAwOkgoTCxXKX19KX0sMTYyMjk6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigyODM2NyksXz1iKDQ2OTI2KSxwPWIoNTg2MDcpLE49Yig4ODI3NSksdz1iKDE5MTUwKSxGPWIoMzI2MzMpLEg9'@; put 'Yig4ODg2NyksUj1iKDY4MzMyKSxqPWIoODYxMTUpLFA9YigzNzA3NSksTD1iKDk2MzM5KSxZPWIoNTgwMTIpLEI9Yig4ODc4OCksVz1ZKCJyZXBsYWNlIiksWj1UeXBlRXJyb3IsWD1wKCIiLmluZGV4T2YpLFE9cCgiIi5yZXBsYWNlKSxxPXAoIiIuc2xpY2UpLHRlPU1hdGgubWF4O0Qoe3Rh'@; put 'cmdldDoiU3RyaW5nIixwcm90bzohMH0se3JlcGxhY2VBbGw6ZnVuY3Rpb24oc2UsZ2Upe3ZhciBUZSxTZSx6ZSx6LGcseSx4LEMsVCxWLF9lPU4odGhpcyksVT0wLEU9IiI7aWYoRihzZSkpe2lmKChUZT1IKHNlKSkmJihTZT1SKE4oUChzZSkpKSwhflgoU2UsImciKSkpdGhyb3cgbmV3IFoo'@; put 'ImAucmVwbGFjZUFsbGAgZG9lcyBub3QgYWxsb3cgbm9uLWdsb2JhbCByZWdleGVzIik7aWYoemU9aihzZSxXKSlyZXR1cm4gXyh6ZSxzZSxfZSxnZSk7aWYoQiYmVGUpcmV0dXJuIFEoUihfZSksc2UsZ2UpfWZvcih6PVIoX2UpLGc9UihzZSksKHk9dyhnZSkpfHwoZ2U9UihnZSkpLEM9dGUo'@; put 'MSx4PWcubGVuZ3RoKSxUPVgoeixnKTstMSE9PVQ7KVY9eT9SKGdlKGcsVCx6KSk6TChnLHosVCxbXSx2b2lkIDAsZ2UpLEUrPXEoeixVLFQpK1YsVT1UK3gsVD1UK0M+ei5sZW5ndGg/LTE6WCh6LGcsVCtDKTtyZXR1cm4gVTx6Lmxlbmd0aCYmKEUrPXEoeixVKSksRX19KX0sNDMyODc6KGNl'@; put 'LEosYik9PnsidXNlIHN0cmljdCI7Yig5NjE4MCl9LDEzOTA4OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO2IoMzk1OTUpfSw2NTc0NTooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0IjtiKDkyNTgwKX0sODEyNjA6KGNlLEosYik9PnsidXNlIHN0cmljdCI7YigyNjM1Nyl9LDc0OTk6KGNlLEosYik9'@; put 'PnsidXNlIHN0cmljdCI7YigzNjU3OCl9LDI5NzA4OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO2IoMzEzNTMpfSw2NTExNzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0IjtiKDcxMzU0KX0sNDQyMTM6KGNlLEosYik9PnsidXNlIHN0cmljdCI7Yig1MzM0OCl9LDIwMjkxOihjZSxKLGIpPT57InVz'@; put 'ZSBzdHJpY3QiO2IoOTM3OCl9LDY4NzY4OihjZSxKLGIpPT57InVzZSBzdHJpY3QiO3ZhciBEPWIoMjgzNjcpLF89YigzMzk2MykscD1iKDc1OTYpLmNsZWFyO0Qoe2dsb2JhbDohMCxiaW5kOiEwLGVudW1lcmFibGU6ITAsZm9yY2VkOl8uY2xlYXJJbW1lZGlhdGUhPT1wfSx7Y2xlYXJJbW1l'@; put 'ZGlhdGU6cH0pfSwxMDM2MzooY2UsSixiKT0+eyJ1c2Ugc3RyaWN0IjtiKDY4NzY4KSxiKDgyMzA2KX0sODIzMDY6KGNlLEosYik9PnsidXNlIHN0cmljdCI7dmFyIEQ9YigyODM2NyksXz1iKDMzOTYzKSxwPWIoNzU5Nikuc2V0LE49Yig0MzI0OSksdz1fLnNldEltbWVkaWF0ZT9OKHAsITEp'@; put 'OnA7RCh7Z2xvYmFsOiEwLGJpbmQ6ITAsZW51bWVyYWJsZTohMCxmb3JjZWQ6Xy5zZXRJbW1lZGlhdGUhPT13fSx7c2V0SW1tZWRpYXRlOnd9KX0sMzIxOTpjZT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPUpTT04ucGFyc2UoJ3siYWVzLTEyOC1lY2IiOnsiY2lwaGVyIjoiQUVTIiwia2V5'@; put 'IjoxMjgsIml2IjowLCJtb2RlIjoiRUNCIiwidHlwZSI6ImJsb2NrIn0sImFlcy0xOTItZWNiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MCwibW9kZSI6IkVDQiIsInR5cGUiOiJibG9jayJ9LCJhZXMtMjU2LWVjYiI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjI1NiwiaXYiOjAs'@; put 'Im1vZGUiOiJFQ0IiLCJ0eXBlIjoiYmxvY2sifSwiYWVzLTEyOC1jYmMiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxMjgsIml2IjoxNiwibW9kZSI6IkNCQyIsInR5cGUiOiJibG9jayJ9LCJhZXMtMTkyLWNiYyI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjE5MiwiaXYiOjE2LCJtb2RlIjoiQ0JD'@; put 'IiwidHlwZSI6ImJsb2NrIn0sImFlcy0yNTYtY2JjIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MjU2LCJpdiI6MTYsIm1vZGUiOiJDQkMiLCJ0eXBlIjoiYmxvY2sifSwiYWVzMTI4Ijp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTYsIm1vZGUiOiJDQkMiLCJ0eXBlIjoiYmxvY2si'@; put 'fSwiYWVzMTkyIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTYsIm1vZGUiOiJDQkMiLCJ0eXBlIjoiYmxvY2sifSwiYWVzMjU2Ijp7ImNpcGhlciI6IkFFUyIsImtleSI6MjU2LCJpdiI6MTYsIm1vZGUiOiJDQkMiLCJ0eXBlIjoiYmxvY2sifSwiYWVzLTEyOC1jZmIiOnsiY2lw'@; put 'aGVyIjoiQUVTIiwia2V5IjoxMjgsIml2IjoxNiwibW9kZSI6IkNGQiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTE5Mi1jZmIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxOTIsIml2IjoxNiwibW9kZSI6IkNGQiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTI1Ni1jZmIiOnsiY2lwaGVyIjoiQUVT'@; put 'Iiwia2V5IjoyNTYsIml2IjoxNiwibW9kZSI6IkNGQiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTEyOC1jZmI4Ijp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTYsIm1vZGUiOiJDRkI4IiwidHlwZSI6InN0cmVhbSJ9LCJhZXMtMTkyLWNmYjgiOnsiY2lwaGVyIjoiQUVTIiwia2V5'@; put 'IjoxOTIsIml2IjoxNiwibW9kZSI6IkNGQjgiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0yNTYtY2ZiOCI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjI1NiwiaXYiOjE2LCJtb2RlIjoiQ0ZCOCIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTEyOC1jZmIxIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4'@; put 'LCJpdiI6MTYsIm1vZGUiOiJDRkIxIiwidHlwZSI6InN0cmVhbSJ9LCJhZXMtMTkyLWNmYjEiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxOTIsIml2IjoxNiwibW9kZSI6IkNGQjEiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0yNTYtY2ZiMSI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjI1NiwiaXYi'@; put 'OjE2LCJtb2RlIjoiQ0ZCMSIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTEyOC1vZmIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxMjgsIml2IjoxNiwibW9kZSI6Ik9GQiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTE5Mi1vZmIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxOTIsIml2IjoxNiwibW9k'@; put 'ZSI6Ik9GQiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTI1Ni1vZmIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjoxNiwibW9kZSI6Ik9GQiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTEyOC1jdHIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxMjgsIml2IjoxNiwibW9kZSI6IkNUUiIs'@; put 'InR5cGUiOiJzdHJlYW0ifSwiYWVzLTE5Mi1jdHIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxOTIsIml2IjoxNiwibW9kZSI6IkNUUiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTI1Ni1jdHIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjoxNiwibW9kZSI6IkNUUiIsInR5cGUiOiJz'@; put 'dHJlYW0ifSwiYWVzLTEyOC1nY20iOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxMjgsIml2IjoxMiwibW9kZSI6IkdDTSIsInR5cGUiOiJhdXRoIn0sImFlcy0xOTItZ2NtIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTIsIm1vZGUiOiJHQ00iLCJ0eXBlIjoiYXV0aCJ9LCJhZXMt'@; put 'MjU2LWdjbSI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjI1NiwiaXYiOjEyLCJtb2RlIjoiR0NNIiwidHlwZSI6ImF1dGgifX0nKX0sNjI5NTE6Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7InNoYTIyNFdpdGhSU0FFbmNyeXB0aW9uIjp7InNpZ24iOiJyc2EiLCJo'@; put 'YXNoIjoic2hhMjI0IiwiaWQiOiIzMDJkMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDQwNTAwMDQxYyJ9LCJSU0EtU0hBMjI0Ijp7InNpZ24iOiJlY2RzYS9yc2EiLCJoYXNoIjoic2hhMjI0IiwiaWQiOiIzMDJkMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDQwNTAwMDQxYyJ9LCJzaGEyNTZX'@; put 'aXRoUlNBRW5jcnlwdGlvbiI6eyJzaWduIjoicnNhIiwiaGFzaCI6InNoYTI1NiIsImlkIjoiMzAzMTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDA0MjAifSwiUlNBLVNIQTI1NiI6eyJzaWduIjoiZWNkc2EvcnNhIiwiaGFzaCI6InNoYTI1NiIsImlkIjoiMzAzMTMwMGQwNjA5NjA4'@; put 'NjQ4MDE2NTAzMDQwMjAxMDUwMDA0MjAifSwic2hhMzg0V2l0aFJTQUVuY3J5cHRpb24iOnsic2lnbiI6InJzYSIsImhhc2giOiJzaGEzODQiLCJpZCI6IjMwNDEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMjA1MDAwNDMwIn0sIlJTQS1TSEEzODQiOnsic2lnbiI6ImVjZHNhL3JzYSIsImhh'@; put 'c2giOiJzaGEzODQiLCJpZCI6IjMwNDEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMjA1MDAwNDMwIn0sInNoYTUxMldpdGhSU0FFbmNyeXB0aW9uIjp7InNpZ24iOiJyc2EiLCJoYXNoIjoic2hhNTEyIiwiaWQiOiIzMDUxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDMwNTAwMDQ0MCJ9LCJS'@; put 'U0EtU0hBNTEyIjp7InNpZ24iOiJlY2RzYS9yc2EiLCJoYXNoIjoic2hhNTEyIiwiaWQiOiIzMDUxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDMwNTAwMDQ0MCJ9LCJSU0EtU0hBMSI6eyJzaWduIjoicnNhIiwiaGFzaCI6InNoYTEiLCJpZCI6IjMwMjEzMDA5MDYwNTJiMGUwMzAyMWEwNTAw'@; put 'MDQxNCJ9LCJlY2RzYS13aXRoLVNIQTEiOnsic2lnbiI6ImVjZHNhIiwiaGFzaCI6InNoYTEiLCJpZCI6IiJ9LCJzaGEyNTYiOnsic2lnbiI6ImVjZHNhIiwiaGFzaCI6InNoYTI1NiIsImlkIjoiIn0sInNoYTIyNCI6eyJzaWduIjoiZWNkc2EiLCJoYXNoIjoic2hhMjI0IiwiaWQiOiIifSwi'@; put 'c2hhMzg0Ijp7InNpZ24iOiJlY2RzYSIsImhhc2giOiJzaGEzODQiLCJpZCI6IiJ9LCJzaGE1MTIiOnsic2lnbiI6ImVjZHNhIiwiaGFzaCI6InNoYTUxMiIsImlkIjoiIn0sIkRTQS1TSEEiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGExIiwiaWQiOiIifSwiRFNBLVNIQTEiOnsic2lnbiI6'@; put 'ImRzYSIsImhhc2giOiJzaGExIiwiaWQiOiIifSwiRFNBIjp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhMSIsImlkIjoiIn0sIkRTQS1XSVRILVNIQTIyNCI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTIyNCIsImlkIjoiIn0sIkRTQS1TSEEyMjQiOnsic2lnbiI6ImRzYSIsImhhc2giOiJz'@; put 'aGEyMjQiLCJpZCI6IiJ9LCJEU0EtV0lUSC1TSEEyNTYiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGEyNTYiLCJpZCI6IiJ9LCJEU0EtU0hBMjU2Ijp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhMjU2IiwiaWQiOiIifSwiRFNBLVdJVEgtU0hBMzg0Ijp7InNpZ24iOiJkc2EiLCJoYXNoIjoi'@; put 'c2hhMzg0IiwiaWQiOiIifSwiRFNBLVNIQTM4NCI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTM4NCIsImlkIjoiIn0sIkRTQS1XSVRILVNIQTUxMiI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTUxMiIsImlkIjoiIn0sIkRTQS1TSEE1MTIiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGE1'@; put 'MTIiLCJpZCI6IiJ9LCJEU0EtUklQRU1EMTYwIjp7InNpZ24iOiJkc2EiLCJoYXNoIjoicm1kMTYwIiwiaWQiOiIifSwicmlwZW1kMTYwV2l0aFJTQSI6eyJzaWduIjoicnNhIiwiaGFzaCI6InJtZDE2MCIsImlkIjoiMzAyMTMwMDkwNjA1MmIyNDAzMDIwMTA1MDAwNDE0In0sIlJTQS1SSVBF'@; put 'TUQxNjAiOnsic2lnbiI6InJzYSIsImhhc2giOiJybWQxNjAiLCJpZCI6IjMwMjEzMDA5MDYwNTJiMjQwMzAyMDEwNTAwMDQxNCJ9LCJtZDVXaXRoUlNBRW5jcnlwdGlvbiI6eyJzaWduIjoicnNhIiwiaGFzaCI6Im1kNSIsImlkIjoiMzAyMDMwMGMwNjA4MmE4NjQ4ODZmNzBkMDIwNTA1MDAw'@; put 'NDEwIn0sIlJTQS1NRDUiOnsic2lnbiI6InJzYSIsImhhc2giOiJtZDUiLCJpZCI6IjMwMjAzMDBjMDYwODJhODY0ODg2ZjcwZDAyMDUwNTAwMDQxMCJ9fScpfSw2NDU4OTpjZT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPUpTT04ucGFyc2UoJ3siMS4zLjEzMi4wLjEwIjoic2VjcDI1Nmsx'@; put 'IiwiMS4zLjEzMi4wLjMzIjoicDIyNCIsIjEuMi44NDAuMTAwNDUuMy4xLjEiOiJwMTkyIiwiMS4yLjg0MC4xMDA0NS4zLjEuNyI6InAyNTYiLCIxLjMuMTMyLjAuMzQiOiJwMzg0IiwiMS4zLjEzMi4wLjM1IjoicDUyMSJ9Jyl9LDIzMjQxOmNlPT57InVzZSBzdHJpY3QiO2NlLmV4cG9ydHM9'@; put 'SlNPTi5wYXJzZSgneyJtb2RwMSI6eyJnZW4iOiIwMiIsInByaW1lIjoiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1'@; put 'ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzYTM2MjBmZmZmZmZmZmZmZmZmZmZmIn0sIm1vZHAyIjp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0'@; put 'MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2'@; put 'NjUxZWNlNjUzODFmZmZmZmZmZmZmZmZmZmZmIn0sIm1vZHA1Ijp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2Nk'@; put 'M2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5'@; put 'YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTIzNzMyN2ZmZmZmZmZmZmZmZmZmZmYifSwibW9kcDE0Ijp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkw'@; put 'ZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2'@; put 'ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5'@; put 'ODA0ZjE3NDZjMDhjYTE4MjE3YzMyOTA1ZTQ2MmUzNmNlM2JlMzllNzcyYzE4MGU4NjAzOWIyNzgzYTJlYzA3YTI4ZmI1YzU1ZGYwNmY0YzUyYzlkZTJiY2JmNjk1NTgxNzE4Mzk5NTQ5N2NlYTk1NmFlNTE1ZDIyNjE4OThmYTA1MTAxNTcyOGU1YThhYWNhYTY4ZmZmZmZmZmZmZmZmZmZmZiJ9'@; put 'LCJtb2RwMTUiOnsiZ2VuIjoiMDIiLCJwcmltZSI6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1'@; put 'NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNh'@; put 'M2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNhMmVjMDdhMjhmYjVjNTVkZjA2ZjRjNTJjOWRlMmJjYmY2OTU1ODE3MTgzOTk1NDk3Y2VhOTU2YWU1'@; put 'MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFhYWM0MmRhZDMzMTcwZDA0NTA3YTMzYTg1NTIxYWJkZjFjYmE2NGVjZmI4NTA0NThkYmVmMGE4YWVhNzE1NzVkMDYwYzdkYjM5NzBmODVhNmUxZTRjN2FiZjVhZThjZGIwOTMzZDcxZThjOTRlMDRhMjU2MTlkY2VlM2QyMjYxYWQyZWU2YmYxMmZm'@; put 'YTA2ZDk4YTA4NjRkODc2MDI3MzNlYzg2YTY0NTIxZjJiMTgxNzdiMjAwY2JiZTExNzU3N2E2MTVkNmM3NzA5ODhjMGJhZDk0NmUyMDhlMjRmYTA3NGU1YWIzMTQzZGI1YmZjZTBmZDEwOGU0YjgyZDEyMGE5M2FkMmNhZmZmZmZmZmZmZmZmZmZmZiJ9LCJtb2RwMTYiOnsiZ2VuIjoiMDIiLCJw'@; put 'cmltZSI6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdl'@; put 'YzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVk'@; put 'NTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNhMmVjMDdhMjhmYjVjNTVkZjA2ZjRjNTJjOWRlMmJjYmY2OTU1ODE3MTgzOTk1NDk3Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVh'@; put 'OGFhYWM0MmRhZDMzMTcwZDA0NTA3YTMzYTg1NTIxYWJkZjFjYmE2NGVjZmI4NTA0NThkYmVmMGE4YWVhNzE1NzVkMDYwYzdkYjM5NzBmODVhNmUxZTRjN2FiZjVhZThjZGIwOTMzZDcxZThjOTRlMDRhMjU2MTlkY2VlM2QyMjYxYWQyZWU2YmYxMmZmYTA2ZDk4YTA4NjRkODc2MDI3MzNlYzg2'@; put 'YTY0NTIxZjJiMTgxNzdiMjAwY2JiZTExNzU3N2E2MTVkNmM3NzA5ODhjMGJhZDk0NmUyMDhlMjRmYTA3NGU1YWIzMTQzZGI1YmZjZTBmZDEwOGU0YjgyZDEyMGE5MjEwODAxMWE3MjNjMTJhNzg3ZTZkNzg4NzE5YTEwYmRiYTViMjY5OWMzMjcxODZhZjRlMjNjMWE5NDY4MzRiNjE1MGJkYTI1'@; put 'ODNlOWNhMmFkNDRjZThkYmJiYzJkYjA0ZGU4ZWY5MmU4ZWZjMTQxZmJlY2FhNjI4N2M1OTQ3NGU2YmMwNWQ5OWIyOTY0ZmEwOTBjM2EyMjMzYmExODY1MTViZTdlZDFmNjEyOTcwY2VlMmQ3YWZiODFiZGQ3NjIxNzA0ODFjZDAwNjkxMjdkNWIwNWFhOTkzYjRlYTk4OGQ4ZmRkYzE4NmZmYjdk'@; put 'YzkwYTZjMDhmNGRmNDM1YzkzNDA2MzE5OWZmZmZmZmZmZmZmZmZmZmYifSwibW9kcDE3Ijp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUz'@; put 'NDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1'@; put 'OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTE4MjE3YzMyOTA1ZTQ2MmUzNmNlM2JlMzllNzcyYzE4MGU4NjAzOWIyNzgzYTJlYzA3YTI4ZmI1YzU1'@; put 'ZGYwNmY0YzUyYzlkZTJiY2JmNjk1NTgxNzE4Mzk5NTQ5N2NlYTk1NmFlNTE1ZDIyNjE4OThmYTA1MTAxNTcyOGU1YThhYWFjNDJkYWQzMzE3MGQwNDUwN2EzM2E4NTUyMWFiZGYxY2JhNjRlY2ZiODUwNDU4ZGJlZjBhOGFlYTcxNTc1ZDA2MGM3ZGIzOTcwZjg1YTZlMWU0YzdhYmY1YWU4Y2Ri'@; put 'MDkzM2Q3MWU4Yzk0ZTA0YTI1NjE5ZGNlZTNkMjI2MWFkMmVlNmJmMTJmZmEwNmQ5OGEwODY0ZDg3NjAyNzMzZWM4NmE2NDUyMWYyYjE4MTc3YjIwMGNiYmUxMTc1NzdhNjE1ZDZjNzcwOTg4YzBiYWQ5NDZlMjA4ZTI0ZmEwNzRlNWFiMzE0M2RiNWJmY2UwZmQxMDhlNGI4MmQxMjBhOTIxMDgw'@; put 'MTFhNzIzYzEyYTc4N2U2ZDc4ODcxOWExMGJkYmE1YjI2OTljMzI3MTg2YWY0ZTIzYzFhOTQ2ODM0YjYxNTBiZGEyNTgzZTljYTJhZDQ0Y2U4ZGJiYmMyZGIwNGRlOGVmOTJlOGVmYzE0MWZiZWNhYTYyODdjNTk0NzRlNmJjMDVkOTliMjk2NGZhMDkwYzNhMjIzM2JhMTg2NTE1YmU3ZWQxZjYx'@; put 'Mjk3MGNlZTJkN2FmYjgxYmRkNzYyMTcwNDgxY2QwMDY5MTI3ZDViMDVhYTk5M2I0ZWE5ODhkOGZkZGMxODZmZmI3ZGM5MGE2YzA4ZjRkZjQzNWM5MzQwMjg0OTIzNmMzZmFiNGQyN2M3MDI2YzFkNGRjYjI2MDI2NDZkZWM5NzUxZTc2M2RiYTM3YmRmOGZmOTQwNmFkOWU1MzBlZTVkYjM4MmY0'@; put 'MTMwMDFhZWIwNmE1M2VkOTAyN2Q4MzExNzk3MjdiMDg2NWE4OTE4ZGEzZWRiZWJjZjliMTRlZDQ0Y2U2Y2JhY2VkNGJiMWJkYjdmMTQ0N2U2Y2MyNTRiMzMyMDUxNTEyYmQ3YWY0MjZmYjhmNDAxMzc4Y2QyYmY1OTgzY2EwMWM2NGI5MmVjZjAzMmVhMTVkMTcyMWQwM2Y0ODJkN2NlNmU3NGZl'@; put 'ZjZkNTVlNzAyZjQ2OTgwYzgyYjVhODQwMzE5MDBiMWM5ZTU5ZTdjOTdmYmVjN2U4ZjMyM2E5N2E3ZTM2Y2M4OGJlMGYxZDQ1YjdmZjU4NWFjNTRiZDQwN2IyMmI0MTU0YWFjYzhmNmQ3ZWJmNDhlMWQ4MTRjYzVlZDIwZjgwMzdlMGE3OTcxNWVlZjI5YmUzMjgwNmExZDU4YmI3YzVkYTc2ZjU1'@; put 'MGFhM2Q4YTFmYmZmMGViMTljY2IxYTMxM2Q1NWNkYTU2YzllYzJlZjI5NjMyMzg3ZmU4ZDc2ZTNjMDQ2ODA0M2U4ZjY2M2Y0ODYwZWUxMmJmMmQ1YjBiNzQ3NGQ2ZTY5NGY5MWU2ZGNjNDAyNGZmZmZmZmZmZmZmZmZmZmYifSwibW9kcDE4Ijp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZm'@; put 'ZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3'@; put 'ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2'@; put 'NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTE4MjE3YzMyOTA1ZTQ2MmUzNmNlM2JlMzllNzcyYzE4MGU4NjAzOWIyNzgzYTJlYzA3YTI4ZmI1YzU1ZGYwNmY0YzUyYzlkZTJiY2JmNjk1NTgxNzE4Mzk5NTQ5N2NlYTk1NmFlNTE1ZDIyNjE4OThmYTA1MTAxNTcyOGU1YThhYWFjNDJkYWQzMzE3'@; put 'MGQwNDUwN2EzM2E4NTUyMWFiZGYxY2JhNjRlY2ZiODUwNDU4ZGJlZjBhOGFlYTcxNTc1ZDA2MGM3ZGIzOTcwZjg1YTZlMWU0YzdhYmY1YWU4Y2RiMDkzM2Q3MWU4Yzk0ZTA0YTI1NjE5ZGNlZTNkMjI2MWFkMmVlNmJmMTJmZmEwNmQ5OGEwODY0ZDg3NjAyNzMzZWM4NmE2NDUyMWYyYjE4MTc3'@; put 'YjIwMGNiYmUxMTc1NzdhNjE1ZDZjNzcwOTg4YzBiYWQ5NDZlMjA4ZTI0ZmEwNzRlNWFiMzE0M2RiNWJmY2UwZmQxMDhlNGI4MmQxMjBhOTIxMDgwMTFhNzIzYzEyYTc4N2U2ZDc4ODcxOWExMGJkYmE1YjI2OTljMzI3MTg2YWY0ZTIzYzFhOTQ2ODM0YjYxNTBiZGEyNTgzZTljYTJhZDQ0Y2U4'@; put 'ZGJiYmMyZGIwNGRlOGVmOTJlOGVmYzE0MWZiZWNhYTYyODdjNTk0NzRlNmJjMDVkOTliMjk2NGZhMDkwYzNhMjIzM2JhMTg2NTE1YmU3ZWQxZjYxMjk3MGNlZTJkN2FmYjgxYmRkNzYyMTcwNDgxY2QwMDY5MTI3ZDViMDVhYTk5M2I0ZWE5ODhkOGZkZGMxODZmZmI3ZGM5MGE2YzA4ZjRkZjQz'@; put 'NWM5MzQwMjg0OTIzNmMzZmFiNGQyN2M3MDI2YzFkNGRjYjI2MDI2NDZkZWM5NzUxZTc2M2RiYTM3YmRmOGZmOTQwNmFkOWU1MzBlZTVkYjM4MmY0MTMwMDFhZWIwNmE1M2VkOTAyN2Q4MzExNzk3MjdiMDg2NWE4OTE4ZGEzZWRiZWJjZjliMTRlZDQ0Y2U2Y2JhY2VkNGJiMWJkYjdmMTQ0N2U2'@; put 'Y2MyNTRiMzMyMDUxNTEyYmQ3YWY0MjZmYjhmNDAxMzc4Y2QyYmY1OTgzY2EwMWM2NGI5MmVjZjAzMmVhMTVkMTcyMWQwM2Y0ODJkN2NlNmU3NGZlZjZkNTVlNzAyZjQ2OTgwYzgyYjVhODQwMzE5MDBiMWM5ZTU5ZTdjOTdmYmVjN2U4ZjMyM2E5N2E3ZTM2Y2M4OGJlMGYxZDQ1YjdmZjU4NWFj'@; put 'NTRiZDQwN2IyMmI0MTU0YWFjYzhmNmQ3ZWJmNDhlMWQ4MTRjYzVlZDIwZjgwMzdlMGE3OTcxNWVlZjI5YmUzMjgwNmExZDU4YmI3YzVkYTc2ZjU1MGFhM2Q4YTFmYmZmMGViMTljY2IxYTMxM2Q1NWNkYTU2YzllYzJlZjI5NjMyMzg3ZmU4ZDc2ZTNjMDQ2ODA0M2U4ZjY2M2Y0ODYwZWUxMmJm'@; put 'MmQ1YjBiNzQ3NGQ2ZTY5NGY5MWU2ZGJlMTE1OTc0YTM5MjZmMTJmZWU1ZTQzODc3N2NiNmE5MzJkZjhjZDhiZWM0ZDA3M2I5MzFiYTNiYzgzMmI2OGQ5ZGQzMDA3NDFmYTdiZjhhZmM0N2VkMjU3NmY2OTM2YmE0MjQ2NjNhYWI2MzljNWFlNGY1NjgzNDIzYjQ3NDJiZjFjOTc4MjM4ZjE2Y2Jl'@; put 'MzlkNjUyZGUzZmRiOGJlZmM4NDhhZDkyMjIyMmUwNGE0MDM3YzA3MTNlYjU3YTgxYTIzZjBjNzM0NzNmYzY0NmNlYTMwNmI0YmNiYzg4NjJmODM4NWRkZmE5ZDRiN2ZhMmMwODdlODc5NjgzMzAzZWQ1YmRkM2EwNjJiM2NmNWIzYTI3OGE2NmQyYTEzZjgzZjQ0ZjgyZGRmMzEwZWUwNzRhYjZh'@; put 'MzY0NTk3ZTg5OWEwMjU1ZGMxNjRmMzFjYzUwODQ2ODUxZGY5YWI0ODE5NWRlZDdlYTFiMWQ1MTBiZDdlZTc0ZDczZmFmMzZiYzMxZWNmYTI2ODM1OTA0NmY0ZWI4NzlmOTI0MDA5NDM4YjQ4MWM2Y2Q3ODg5YTAwMmVkNWVlMzgyYmM5MTkwZGE2ZmMwMjZlNDc5NTU4ZTQ0NzU2NzdlOWFhOWUz'@; put 'MDUwZTI3NjU2OTRkZmM4MWY1NmU4ODBiOTZlNzE2MGM5ODBkZDk4ZWRkM2RmZmZmZmZmZmZmZmZmZmZmZiJ9fScpfSwxNjM2OmNlPT57InVzZSBzdHJpY3QiO2NlLmV4cG9ydHM9e3JFOiI2LjYuMSJ9fSw0MzI2NzpjZT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPUpTT04ucGFyc2UoJ1tb'@; put 'Ijg3NDAiLCJcdTQzZjBcdTRjMzJcdTQ2MDNcdTQ1YTZcdTQ1NzhcdXsyNzI2N31cdTRkNzdcdTQ1YjNcdXsyN2NiMX1cdTRjZTJcdXsyN2NjNX1cdTNiOTVcdTQ3MzZcdTQ3NDRcdTRjNDdcdTRjNDBcdXsyNDJiZn1cdXsyMzYxN31cdXsyNzM1Mn1cdXsyNmU4Yn1cdXsyNzBkMn1cdTRjNTdc'@; put 'dXsyYTM1MX1cdTQ3NGZcdTQ1ZGFcdTRjODVcdXsyN2M2Y31cdTRkMDdcdTRhYTRcdTQ2YTFcdXsyNmIyM31cdTcyMjVcdXsyNWE1NH1cdXsyMWE2M31cdXsyM2UwNn1cdXsyM2Y2MX1cdTY2NGRcdTU2ZmIiXSxbIjg3NjciLCJcdTdkOTVcdTU5MWRcdXsyOGJiOX1cdTNkZjRcdTk3MzRcdXsy'@; put 'N2JlZn1cdTViZGJcdXsyMWQ1ZX1cdTVhYTRcdTM2MjVcdXsyOWViMH1cdTVhZDFcdTViYjdcdTVjZmNcdTY3NmVcdTg1OTNcdXsyOTk0NX1cdTc0NjFcdTc0OWRcdTM4NzVcdXsyMWQ1M31cdXsyMzY5ZX1cdXsyNjAyMX1cdTNlZWMiXSxbIjg3YTEiLCJcdXsyNThkZX1cdTNhZjVcdTdhZmNc'@; put 'dTlmOTdcdXsyNDE2MX1cdXsyODkwZH1cdXsyMzFlYX1cdXsyMGE4YX1cdXsyMzI1ZX1cdTQzMGFcdTg0ODRcdTlmOTZcdTk0MmZcdTQ5MzBcdTg2MTNcdTU4OTZcdTk3NGFcdTkyMThcdTc5ZDBcdTdhMzJcdTY2NjBcdTZhMjlcdTg4OWRcdTc0NGNcdTdiYzVcdTY3ODJcdTdhMmNcdTUyNGZc'@; put 'dTkwNDZcdTM0ZTZcdTczYzRcdXsyNWRiOX1cdTc0YzZcdTlmYzdcdTU3YjNcdTQ5MmZcdTU0NGNcdTQxMzFcdXsyMzY4ZX1cdTU4MThcdTdhNzJcdXsyN2I2NX1cdThiOGZcdTQ2YWVcdXsyNmU4OH1cdTQxODFcdXsyNWQ5OX1cdTdiYWVcdXsyMjRiY31cdTlmYzhcdXsyMjRjMX1cdXsyMjRj'@; put 'OX1cdXsyMjRjY31cdTlmYzlcdTg1MDRcdXsyMzViYn1cdTQwYjRcdTlmY2FcdTQ0ZTFcdXsyYWRmZn1cdTYyYzFcdTcwNmVcdTlmY2IiXSxbIjg4NDAiLCJcdTMxYzAiLDQsIlx1ezIwMTBjfVx1MzFjNVx1ezIwMGQxfVx1ezIwMGNkfVx1MzFjNlx1MzFjN1x1ezIwMGNifVx1ezIxZmU4fVx1'@; put 'MzFjOFx1ezIwMGNhfVx1MzFjOVx1MzFjYVx1MzFjYlx1MzFjY1x1ezIwMTBlfVx1MzFjZFx1MzFjZVx1MDEwMFx4YzFcdTAxY2RceGMwXHUwMTEyXHhjOVx1MDExYVx4YzhcdTAxNGNceGQzXHUwMWQxXHhkMlx1MGZmZlx4Y2FcdTAzMDRcdTFlYmVcdTBmZmZceGNhXHUwMzBjXHUxZWMwXHhj'@; put 'YVx1MDEwMVx4ZTFcdTAxY2VceGUwXHUwMjUxXHUwMTEzXHhlOVx1MDExYlx4ZThcdTAxMmJceGVkXHUwMWQwXHhlY1x1MDE0ZFx4ZjNcdTAxZDJceGYyXHUwMTZiXHhmYVx1MDFkNFx4ZjlcdTAxZDZcdTAxZDhcdTAxZGEiXSxbIjg4YTEiLCJcdTAxZGNceGZjXHUwZmZmXHhlYVx1MDMwNFx1'@; put 'MWViZlx1MGZmZlx4ZWFcdTAzMGNcdTFlYzFceGVhXHUwMjYxXHUyM2RhXHUyM2RiIl0sWyI4OTQwIiwiXHV7MmEzYTl9XHV7MjExNDV9Il0sWyI4OTQzIiwiXHU2NTBhIl0sWyI4OTQ2IiwiXHU0ZTNkXHU2ZWRkXHU5ZDRlXHU5MWRmIl0sWyI4OTRjIiwiXHV7Mjc3MzV9XHU2NDkxXHU0ZjFh'@; put 'XHU0ZjI4XHU0ZmE4XHU1MTU2XHU1MTc0XHU1MTljXHU1MWU0XHU1MmExXHU1MmE4XHU1MzNiXHU1MzRlXHU1M2QxXHU1M2Q4XHU1NmUyXHU1OGYwXHU1OTA0XHU1OTA3XHU1OTMyXHU1OTM0XHU1YjY2XHU1YjllXHU1YjlmXHU1YzlhXHU1ZTg2XHU2MDNiXHU2NTg5XHU2N2ZlXHU2ODA0XHU2'@; put 'ODY1XHU2ZDRlXHU3MGJjXHU3NTM1XHU3ZWE0XHU3ZWFjXHU3ZWJhXHU3ZWM3XHU3ZWNmXHU3ZWRmXHU3ZjA2XHU3ZjM3XHU4MjdhXHU4MmNmXHU4MzZmXHU4OWM2XHU4YmJlXHU4YmUyXHU4ZjY2XHU4ZjY3XHU4ZjZlIl0sWyI4OWExIiwiXHU3NDExXHU3Y2ZjXHU3ZGNkXHU2OTQ2XHU3YWM5'@; put 'XHU1MjI3Il0sWyI4OWFiIiwiXHU5MThjXHU3OGI4XHU5MTVlXHU4MGJjIl0sWyI4OWIwIiwiXHU4ZDBiXHU4MGY2XHV7MjA5ZTd9Il0sWyI4OWI1IiwiXHU4MDlmXHU5ZWM3XHU0Y2NkXHU5ZGM5XHU5ZTBjXHU0YzNlXHV7MjlkZjZ9XHV7MjcwMGV9XHU5ZTBhXHV7MmExMzN9XHUzNWMxIl0s'@; put 'WyI4OWMxIiwiXHU2ZTlhXHU4MjNlXHU3NTE5Il0sWyI4OWM1IiwiXHU0OTExXHU5YTZjXHU5YThmXHU5Zjk5XHU3OTg3XHV7Mjg0NmN9XHV7MjFkY2F9XHV7MjA1ZDB9XHV7MjJhZTZ9XHU0ZTI0XHU0ZTgxXHU0ZTgwXHU0ZTg3XHU0ZWJmXHU0ZWViXHU0ZjM3XHUzNDRjXHU0ZmJkXHUzZTQ4'@; put 'XHU1MDAzXHU1MDg4XHUzNDdkXHUzNDkzXHUzNGE1XHU1MTg2XHU1OTA1XHU1MWRiXHU1MWZjXHU1MjA1XHU0ZTg5XHU1Mjc5XHU1MjkwXHU1MzI3XHUzNWM3XHU1M2E5XHUzNTUxXHU1M2IwXHUzNTUzXHU1M2MyXHU1NDIzXHUzNTZkXHUzNTcyXHUzNjgxXHU1NDkzXHU1NGEzXHU1NGI0XHU1'@; put 'NGI5XHU1NGQwXHU1NGVmXHU1NTE4XHU1NTIzXHU1NTI4XHUzNTk4XHU1NTNmXHUzNWE1XHUzNWJmXHU1NWQ3XHUzNWM1Il0sWyI4YTQwIiwiXHV7MjdkODR9XHU1NTI1Il0sWyI4YTQzIiwiXHV7MjBjNDJ9XHV7MjBkMTV9XHV7MjUxMmJ9XHU1NTkwXHV7MjJjYzZ9XHUzOWVjXHV7MjAzNDF9'@; put 'XHU4ZTQ2XHV7MjRkYjh9XHV7Mjk0ZTV9XHU0MDUzXHV7MjgwYmV9XHU3NzdhXHV7MjJjMzh9XHUzYTM0XHU0N2Q1XHV7MjgxNWR9XHV7MjY5ZjJ9XHV7MjRkZWF9XHU2NGRkXHV7MjBkN2N9XHV7MjBmYjR9XHV7MjBjZDV9XHV7MjEwZjR9XHU2NDhkXHU4ZTdlXHV7MjBlOTZ9XHV7MjBjMGJ9'@; put 'XHV7MjBmNjR9XHV7MjJjYTl9XHV7MjgyNTZ9XHV7MjQ0ZDN9Il0sWyI4YTY0IiwiXHV7MjBkNDZ9XHV7MjlhNGR9XHV7MjgwZTl9XHU0N2Y0XHV7MjRlYTd9XHV7MjJjYzJ9XHU5YWIyXHUzYTY3XHV7Mjk1ZjR9XHUzZmVkXHUzNTA2XHV7MjUyYzd9XHV7Mjk3ZDR9XHV7Mjc4Yzh9XHV7MjJk'@; put 'NDR9XHU5ZDZlXHU5ODE1Il0sWyI4YTc2IiwiXHU0M2Q5XHV7MjYwYTV9XHU2NGI0XHU1NGUzXHV7MjJkNGN9XHV7MjJiY2F9XHV7MjEwNzd9XHUzOWZiXHV7MjEwNmZ9Il0sWyI4YWExIiwiXHV7MjY2ZGF9XHV7MjY3MTZ9XHV7Mjc5YTB9XHU2NGVhXHV7MjUwNTJ9XHV7MjBjNDN9XHU4ZTY4'@; put 'XHV7MjIxYTF9XHV7MjhiNGN9XHV7MjA3MzF9Il0sWyI4YWFjIiwiXHU0ODBiXHV7MjAxYTl9XHUzZmZhXHU1ODczXHV7MjJkOGR9Il0sWyI4YWIyIiwiXHV7MjQ1Yzh9XHV7MjA0ZmN9XHV7MjYwOTd9XHV7MjBmNGN9XHV7MjBkOTZ9XHU1NTc5XHU0MGJiXHU0M2JhIl0sWyI4YWJiIiwiXHU0'@; put 'YWI0XHV7MjJhNjZ9XHV7MjEwOWR9XHU4MWFhXHU5OGY1XHV7MjBkOWN9XHU2Mzc5XHUzOWZlXHV7MjI3NzV9XHU4ZGMwXHU1NmExXHU2NDdjXHUzZTQzIl0sWyI4YWM5IiwiXHV7MmE2MDF9XHV7MjBlMDl9XHV7MjJhY2Z9XHV7MjJjYzl9Il0sWyI4YWNlIiwiXHV7MjEwYzh9XHV7MjM5YzJ9'@; put 'XHUzOTkyXHUzYTA2XHV7MjgyOWJ9XHUzNTc4XHV7MjVlNDl9XHV7MjIwYzd9XHU1NjUyXHV7MjBmMzF9XHV7MjJjYjJ9XHV7Mjk3MjB9XHUzNGJjXHU2YzNkXHV7MjRlM2J9Il0sWyI4YWRmIiwiXHV7Mjc1NzR9XHV7MjJlOGJ9XHV7MjIyMDh9XHV7MmE2NWJ9XHV7MjhjY2R9XHV7MjBlN2F9'@; put 'XHV7MjBjMzR9XHV7MjY4MWN9XHU3ZjkzXHV7MjEwY2Z9XHV7MjI4MDN9XHV7MjI5Mzl9XHUzNWZiXHV7MjUxZTN9XHV7MjBlOGN9XHV7MjBmOGR9XHV7MjBlYWF9XHUzZjkzXHV7MjBmMzB9XHV7MjBkNDd9XHV7MjExNGZ9XHV7MjBlNGN9Il0sWyI4YWY2IiwiXHV7MjBlYWJ9XHV7MjBiYTl9'@; put 'XHV7MjBkNDh9XHV7MjEwYzB9XHV7MjExM2R9XHUzZmY5XHV7MjI2OTZ9XHU2NDMyXHV7MjBmYWR9Il0sWyI4YjQwIiwiXHV7MjMzZjR9XHV7Mjc2Mzl9XHV7MjJiY2V9XHV7MjBkN2V9XHV7MjBkN2Z9XHV7MjJjNTF9XHV7MjJjNTV9XHUzYTE4XHV7MjBlOTh9XHV7MjEwYzd9XHV7MjBmMmV9'@; put 'XHV7MmE2MzJ9XHV7MjZiNTB9XHV7MjhjZDJ9XHV7MjhkOTl9XHV7MjhjY2F9XHU5NWFhXHU1NGNjXHU4MmM0XHU1NWI5Il0sWyI4YjU1IiwiXHV7MjllYzN9XHU5YzI2XHU5YWI2XHV7Mjc3NWV9XHV7MjJkZWV9XHU3MTQwXHU4MTZkXHU4MGVjXHU1YzFjXHV7MjY1NzJ9XHU4MTM0XHUzNzk3'@; put 'XHU1MzVmXHV7MjgwYmR9XHU5MWI2XHV7MjBlZmF9XHV7MjBlMGZ9XHV7MjBlNzd9XHV7MjBlZmJ9XHUzNWRkXHV7MjRkZWJ9XHUzNjA5XHV7MjBjZDZ9XHU1NmFmXHV7MjI3YjV9XHV7MjEwYzl9XHV7MjBlMTB9XHV7MjBlNzh9XHV7MjEwNzh9XHV7MjExNDh9XHV7MjgyMDd9XHV7MjE0NTV9'@; put 'XHV7MjBlNzl9XHV7MjRlNTB9XHV7MjJkYTR9XHU1YTU0XHV7MjEwMWR9XHV7MjEwMWV9XHV7MjEwZjV9XHV7MjEwZjZ9XHU1NzljXHV7MjBlMTF9Il0sWyI4YmExIiwiXHV7Mjc2OTR9XHV7MjgyY2R9XHV7MjBmYjV9XHV7MjBlN2J9XHV7MjUxN2V9XHUzNzAzXHV7MjBmYjZ9XHV7MjExODB9'@; put 'XHV7MjUyZDh9XHV7MmEyYmR9XHV7MjQ5ZGF9XHV7MjE4M2F9XHV7MjQxNzd9XHV7MjgyN2N9XHU1ODk5XHU1MjY4XHUzNjFhXHV7MjU3M2R9XHU3YmIyXHU1YjY4XHU0ODAwXHU0YjJjXHU5ZjI3XHU0OWU3XHU5YzFmXHU5YjhkXHV7MjViNzR9XHV7MjMxM2R9XHU1NWZiXHUzNWYyXHU1Njg5'@; put 'XHU0ZTI4XHU1OTAyXHV7MjFiYzF9XHV7MmY4Nzh9XHU5NzUxXHV7MjAwODZ9XHU0ZTViXHU0ZWJiXHUzNTNlXHU1YzIzXHU1ZjUxXHU1ZmM0XHUzOGZhXHU2MjRjXHU2NTM1XHU2YjdhXHU2YzM1XHU2YzNhXHU3MDZjXHU3MjJiXHU0ZTJjXHU3MmFkXHV7MjQ4ZTl9XHU3ZjUyXHU3OTNiXHU3'@; put 'Y2Y5XHU3ZjUzXHV7MjYyNmF9XHUzNGMxIl0sWyI4YmRlIiwiXHV7MjYzNGJ9XHU4MDAyXHU4MDgwXHV7MjY2MTJ9XHV7MjY5NTF9XHU1MzVkXHU4ODY0XHU4OWMxXHV7Mjc4YjJ9XHU4YmEwXHU4ZDFkXHU5NDg1XHU5NTc4XHU5NTdmXHU5NWU4XHV7MjhlMGZ9XHU5N2U2XHU5ODc1XHU5OGNl'@; put 'XHU5OGRlXHU5OTYzXHV7Mjk4MTB9XHU5YzdjXHU5ZTFmXHU5ZWM0XHU2YjZmXHVmOTA3XHU0ZTM3XHV7MjAwODd9XHU5NjFkXHU2MjM3XHU5NGEyIl0sWyI4YzQwIiwiXHU1MDNiXHU2ZGZlXHV7MjljNzN9XHU5ZmE2XHUzZGM5XHU4ODhmXHV7MjQxNGV9XHU3MDc3XHU1Y2Y1XHU0YjIwXHV7'@; put 'MjUxY2R9XHUzNTU5XHV7MjVkMzB9XHU2MTIyXHV7MjhhMzJ9XHU4ZmE3XHU5MWY2XHU3MTkxXHU2NzE5XHU3M2JhXHV7MjMyODF9XHV7MmExMDd9XHUzYzhiXHV7MjE5ODB9XHU0YjEwXHU3OGU0XHU3NDAyXHU1MWFlXHV7Mjg3MGZ9XHU0MDA5XHU2YTYzXHV7MmEyYmF9XHU0MjIzXHU4NjBm'@; put 'XHV7MjBhNmZ9XHU3YTJhXHV7Mjk5NDd9XHV7MjhhZWF9XHU5NzU1XHU3MDRkXHU1MzI0XHV7MjIwN2V9XHU5M2Y0XHU3NmQ5XHV7Mjg5ZTN9XHU5ZmE3XHU3N2RkXHU0ZWEzXHU0ZmYwXHU1MGJjXHU0ZTJmXHU0ZjE3XHU5ZmE4XHU1NDM0XHU3ZDhiXHU1ODkyXHU1OGQwXHV7MjFkYjZ9XHU1'@; put 'ZTkyXHU1ZTk5XHU1ZmMyXHV7MjI3MTJ9XHU2NThiIl0sWyI4Y2ExIiwiXHV7MjMzZjl9XHU2OTE5XHU2YTQzXHV7MjNjNjN9XHU2Y2ZmIl0sWyI4Y2E3IiwiXHU3MjAwXHV7MjQ1MDV9XHU3MzhjXHUzZWRiXHV7MjRhMTN9XHU1YjE1XHU3NGI5XHU4YjgzXHV7MjVjYTR9XHV7MjU2OTV9XHU3'@; put 'YTkzXHU3YmVjXHU3Y2MzXHU3ZTZjXHU4MmY4XHU4NTk3XHU5ZmE5XHU4ODkwXHU5ZmFhXHU4ZWI5XHU5ZmFiXHU4ZmNmXHU4NTVmXHU5OWUwXHU5MjIxXHU5ZmFjXHV7MjhkYjl9XHV7MjE0M2Z9XHU0MDcxXHU0MmEyXHU1YTFhIl0sWyI4Y2M5IiwiXHU5ODY4XHU2NzZiXHU0Mjc2XHU1NzNk'@; put 'Il0sWyI4Y2NlIiwiXHU4NWQ2XHV7MjQ5N2J9XHU4MmJmXHV7MjcxMGR9XHU0YzgxXHV7MjZkNzR9XHU1ZDdiXHV7MjZiMTV9XHV7MjZmYmV9XHU5ZmFkXHU5ZmFlXHU1Yjk2XHU5ZmFmXHU2NmU3XHU3ZTViXHU2ZTU3XHU3OWNhXHUzZDg4XHU0NGMzXHV7MjMyNTZ9XHV7MjI3OTZ9XHU0Mzlh'@; put 'XHU0NTM2Il0sWyI4Y2U2IiwiXHU1Y2Q1XHV7MjNiMWF9XHU4YWY5XHU1Yzc4XHUzZDEyXHV7MjM1NTF9XHU1ZDc4XHU5ZmIyXHU3MTU3XHU0NTU4XHV7MjQwZWN9XHV7MjFlMjN9XHU0Yzc3XHUzOTc4XHUzNDRhXHV7MjAxYTR9XHV7MjZjNDF9XHU4YWNjXHU0ZmI0XHV7MjAyMzl9XHU1OWJm'@; put 'XHU4MTZjXHU5ODU2XHV7Mjk4ZmF9XHU1ZjNiIl0sWyI4ZDQwIiwiXHV7MjBiOWZ9Il0sWyI4ZDQyIiwiXHV7MjIxYzF9XHV7Mjg5NmR9XHU0MTAyXHU0NmJiXHV7MjkwNzl9XHUzZjA3XHU5ZmIzXHV7MmExYjV9XHU0MGY4XHUzN2Q2XHU0NmY3XHV7MjZjNDZ9XHU0MTdjXHV7Mjg2YjJ9XHV7'@; put 'MjczZmZ9XHU0NTZkXHUzOGQ0XHV7MjU0OWF9XHU0NTYxXHU0NTFiXHU0ZDg5XHU0YzdiXHU0ZDc2XHU0NWVhXHUzZmM4XHV7MjRiMGZ9XHUzNjYxXHU0NGRlXHU0NGJkXHU0MWVkXHU1ZDNlXHU1ZDQ4XHU1ZDU2XHUzZGZjXHUzODBmXHU1ZGE0XHU1ZGI5XHUzODIwXHUzODM4XHU1ZTQyXHU1'@; put 'ZWJkXHU1ZjI1XHU1ZjgzXHUzOTA4XHUzOTE0XHUzOTNmXHUzOTRkXHU2MGQ3XHU2MTNkXHU1Y2U1XHUzOTg5XHU2MWI3XHU2MWI5XHU2MWNmXHUzOWI4XHU2MjJjXHU2MjkwXHU2MmU1XHU2MzE4XHUzOWY4XHU1NmIxIl0sWyI4ZGExIiwiXHUzYTAzXHU2M2UyXHU2M2ZiXHU2NDA3XHU2NDVh'@; put 'XHUzYTRiXHU2NGMwXHU1ZDE1XHU1NjIxXHU5ZjlmXHUzYTk3XHU2NTg2XHUzYWJkXHU2NWZmXHU2NjUzXHUzYWYyXHU2NjkyXHUzYjIyXHU2NzE2XHUzYjQyXHU2N2E0XHU2ODAwXHUzYjU4XHU2ODRhXHU2ODg0XHUzYjcyXHUzYjcxXHUzYjdiXHU2OTA5XHU2OTQzXHU3MjVjXHU2OTY0XHU2'@; put 'OTlmXHU2OTg1XHUzYmJjXHU2OWQ2XHUzYmRkXHU2YTY1XHU2YTc0XHU2YTcxXHU2YTgyXHUzYmVjXHU2YTk5XHUzYmYyXHU2YWFiXHU2YWI1XHU2YWQ0XHU2YWY2XHU2YjgxXHU2YmMxXHU2YmVhXHU2Yzc1XHU2Y2FhXHUzY2NiXHU2ZDAyXHU2ZDA2XHU2ZDI2XHU2ZDgxXHUzY2VmXHU2ZGE0'@; put 'XHU2ZGIxXHU2ZTE1XHU2ZTE4XHU2ZTI5XHU2ZTg2XHV7Mjg5YzB9XHU2ZWJiXHU2ZWUyXHU2ZWRhXHU5ZjdmXHU2ZWU4XHU2ZWU5XHU2ZjI0XHU2ZjM0XHUzZDQ2XHV7MjNmNDF9XHU2ZjgxXHU2ZmJlXHUzZDZhXHUzZDc1XHU3MWI3XHU1Yzk5XHUzZDhhXHU3MDJjXHUzZDkxXHU3MDUwXHU3'@; put 'MDU0XHU3MDZmXHU3MDdmXHU3MDg5XHV7MjAzMjV9XHU0M2MxXHUzNWYxXHV7MjBlZDh9Il0sWyI4ZTQwIiwiXHV7MjNlZDd9XHU1N2JlXHV7MjZlZDN9XHU3MTNlXHV7MjU3ZTB9XHUzNjRlXHU2OWEyXHV7MjhiZTl9XHU1Yjc0XHU3YTQ5XHV7MjU4ZTF9XHV7Mjk0ZDl9XHU3YTY1XHU3YTdk'@; put 'XHV7MjU5YWN9XHU3YWJiXHU3YWIwXHU3YWMyXHU3YWMzXHU3MWQxXHV7MjY0OGR9XHU0MWNhXHU3YWRhXHU3YWRkXHU3YWVhXHU0MWVmXHU1NGIyXHV7MjVjMDF9XHU3YjBiXHU3YjU1XHU3YjI5XHV7MjUzMGV9XHV7MjVjZmV9XHU3YmEyXHU3YjZmXHU4MzljXHV7MjViYjR9XHV7MjZjN2Z9'@; put 'XHU3YmQwXHU4NDIxXHU3YjkyXHU3YmI4XHV7MjVkMjB9XHUzZGFkXHV7MjVjNjV9XHU4NDkyXHU3YmZhXHU3YzA2XHU3YzM1XHV7MjVjYzF9XHU3YzQ0XHU3YzgzXHV7MjQ4ODJ9XHU3Y2E2XHU2NjdkXHV7MjQ1Nzh9XHU3Y2M5XHU3Y2M3XHU3Y2U2XHU3Yzc0XHU3Y2YzXHU3Y2Y1XHU3Y2Nl'@; put 'Il0sWyI4ZWExIiwiXHU3ZTY3XHU0NTFkXHV7MjZlNDR9XHU3ZDVkXHV7MjZlZDZ9XHU3NDhkXHU3ZDg5XHU3ZGFiXHU3MTM1XHU3ZGIzXHU3ZGQyXHV7MjQwNTd9XHV7MjYwMjl9XHU3ZGU0XHUzZDEzXHU3ZGY1XHV7MjE3Zjl9XHU3ZGU1XHV7MjgzNmR9XHU3ZTFkXHV7MjYxMjF9XHV7MjYx'@; put 'NWF9XHU3ZTZlXHU3ZTkyXHU0MzJiXHU5NDZjXHU3ZTI3XHU3ZjQwXHU3ZjQxXHU3ZjQ3XHU3OTM2XHV7MjYyZDB9XHU5OWUxXHU3Zjk3XHV7MjYzNTF9XHU3ZmEzXHV7MjE2NjF9XHV7MjAwNjh9XHU0NTVjXHV7MjM3NjZ9XHU0NTAzXHV7MjgzM2F9XHU3ZmZhXHV7MjY0ODl9XHU4MDA1XHU4'@; put 'MDA4XHU4MDFkXHU4MDI4XHU4MDJmXHV7MmEwODd9XHV7MjZjYzN9XHU4MDNiXHU4MDNjXHU4MDYxXHV7MjI3MTR9XHU0OTg5XHV7MjY2MjZ9XHV7MjNkZTN9XHV7MjY2ZTh9XHU2NzI1XHU4MGE3XHV7MjhhNDh9XHU4MTA3XHU4MTFhXHU1OGIwXHV7MjI2ZjZ9XHU2YzdmXHV7MjY0OTh9XHV7'@; put 'MjRmYjh9XHU2NGU3XHV7MjE0OGF9XHU4MjE4XHV7MjE4NWV9XHU2YTUzXHV7MjRhNjV9XHV7MjRhOTV9XHU0NDdhXHU4MjI5XHV7MjBiMGR9XHV7MjZhNTJ9XHV7MjNkN2V9XHU0ZmY5XHV7MjE0ZmR9XHU4NGUyXHU4MzYyXHV7MjZiMGF9XHV7MjQ5YTd9XHV7MjM1MzB9XHV7MjE3NzN9XHV7'@; put 'MjNkZjh9XHU4MmFhXHU2OTFiXHV7MmY5OTR9XHU0MWRiIl0sWyI4ZjQwIiwiXHU4NTRiXHU4MmQwXHU4MzFhXHV7MjBlMTZ9XHV7MjE3YjR9XHUzNmMxXHV7MjMxN2R9XHV7MjM1NWF9XHU4MjdiXHU4MmUyXHU4MzE4XHV7MjNlOGJ9XHV7MjZkYTN9XHV7MjZiMDV9XHV7MjZiOTd9XHV7MjM1'@; put 'Y2V9XHUzZGJmXHU4MzFkXHU1NWVjXHU4Mzg1XHU0NTBiXHV7MjZkYTV9XHU4M2FjXHU4M2MxXHU4M2QzXHUzNDdlXHV7MjZlZDR9XHU2YTU3XHU4NTVhXHUzNDk2XHV7MjZlNDJ9XHV7MjJlZWZ9XHU4NDU4XHV7MjViZTR9XHU4NDcxXHUzZGQzXHU0NGU0XHU2YWE3XHU4NDRhXHV7MjNjYjV9'@; put 'XHU3OTU4XHU4NGE4XHV7MjZiOTZ9XHV7MjZlNzd9XHV7MjZlNDN9XHU4NGRlXHU4NDBmXHU4MzkxXHU0NGEwXHU4NDkzXHU4NGU0XHV7MjVjOTF9XHU0MjQwXHV7MjVjYzB9XHU0NTQzXHU4NTM0XHU1YWYyXHV7MjZlOTl9XHU0NTI3XHU4NTczXHU0NTE2XHU2N2JmXHU4NjE2Il0sWyI4ZmEx'@; put 'IiwiXHV7Mjg2MjV9XHV7Mjg2M2J9XHU4NWMxXHV7MjcwODh9XHU4NjAyXHV7MjE1ODJ9XHV7MjcwY2R9XHV7MmY5YjJ9XHU0NTZhXHU4NjI4XHUzNjQ4XHV7MjE4YTJ9XHU1M2Y3XHV7MjczOWF9XHU4NjdlXHU4NzcxXHV7MmEwZjh9XHU4N2VlXHV7MjJjMjd9XHU4N2IxXHU4N2RhXHU4ODBm'@; put 'XHU1NjYxXHU4NjZjXHU2ODU2XHU0NjBmXHU4ODQ1XHU4ODQ2XHV7Mjc1ZTB9XHV7MjNkYjl9XHV7Mjc1ZTR9XHU4ODVlXHU4ODljXHU0NjViXHU4OGI0XHU4OGI1XHU2M2MxXHU4OGM1XHU3Nzc3XHV7Mjc3MGZ9XHU4OTg3XHU4OThhXHU4OWE2XHU4OWE5XHU4OWE3XHU4OWJjXHV7MjhhMjV9'@; put 'XHU4OWU3XHV7Mjc5MjR9XHV7MjdhYmR9XHU4YTljXHU3NzkzXHU5MWZlXHU4YTkwXHV7MjdhNTl9XHU3YWU5XHV7MjdiM2F9XHV7MjNmOGZ9XHU0NzEzXHV7MjdiMzh9XHU3MTdjXHU4YjBjXHU4YjFmXHV7MjU0MzB9XHV7MjU1NjV9XHU4YjNmXHU4YjRjXHU4YjRkXHU4YWE5XHV7MjRhN2F9'@; put 'XHU4YjkwXHU4YjliXHU4YWFmXHV7MjE2ZGZ9XHU0NjE1XHU4ODRmXHU4YzliXHV7MjdkNTR9XHV7MjdkOGZ9XHV7MmY5ZDR9XHUzNzI1XHV7MjdkNTN9XHU4Y2Q2XHV7MjdkOTh9XHV7MjdkYmR9XHU4ZDEyXHU4ZDAzXHV7MjE5MTB9XHU4Y2RiXHU3MDVjXHU4ZDExXHV7MjRjYzl9XHUzZWQw'@; put 'XHU4ZDc3Il0sWyI5MDQwIiwiXHU4ZGE5XHV7MjgwMDJ9XHV7MjEwMTR9XHV7MjQ5OGF9XHUzYjdjXHV7MjgxYmN9XHV7MjcxMGN9XHU3YWU3XHU4ZWFkXHU4ZWI2XHU4ZWMzXHU5MmQ0XHU4ZjE5XHU4ZjJkXHV7MjgzNjV9XHV7Mjg0MTJ9XHU4ZmE1XHU5MzAzXHV7MmEyOWZ9XHV7MjBhNTB9'@; put 'XHU4ZmIzXHU0OTJhXHV7Mjg5ZGV9XHV7Mjg1M2R9XHV7MjNkYmJ9XHU1ZWY4XHV7MjMyNjJ9XHU4ZmY5XHV7MmEwMTR9XHV7Mjg2YmN9XHV7Mjg1MDF9XHV7MjIzMjV9XHUzOTgwXHV7MjZlZDd9XHU5MDM3XHV7Mjg1M2N9XHV7MjdhYmV9XHU5MDYxXHV7Mjg1NmN9XHV7Mjg2MGJ9XHU5MGE4'@; put 'XHV7Mjg3MTN9XHU5MGM0XHV7Mjg2ZTZ9XHU5MGFlXHU5MGZkXHU5MTY3XHUzYWYwXHU5MWE5XHU5MWM0XHU3Y2FjXHV7Mjg5MzN9XHV7MjFlODl9XHU5MjBlXHU2YzlmXHU5MjQxXHU5MjYyXHV7MjU1Yjl9XHU5MmI5XHV7MjhhYzZ9XHV7MjNjOWJ9XHV7MjhiMGN9XHV7MjU1ZGJ9Il0sWyI5'@; put 'MGExIiwiXHV7MjBkMzF9XHU5MzJjXHU5MzZiXHV7MjhhZTF9XHV7MjhiZWJ9XHU3MDhmXHU1YWMzXHV7MjhhZTJ9XHV7MjhhZTV9XHU0OTY1XHU5MjQ0XHV7MjhiZWN9XHV7MjhjMzl9XHV7MjhiZmZ9XHU5MzczXHU5NDViXHU4ZWJjXHU5NTg1XHU5NWE2XHU5NDI2XHU5NWEwXHU2ZmY2XHU0'@; put 'MmI5XHV7MjI2N2F9XHV7Mjg2ZDh9XHV7MjEyN2N9XHV7MjNlMmV9XHU0OWRmXHU2YzFjXHU5NjdiXHU5Njk2XHU0MTZjXHU5NmEzXHV7MjZlZDV9XHU2MWRhXHU5NmI2XHU3OGY1XHV7MjhhZTB9XHU5NmJkXHU1M2NjXHU0OWExXHV7MjZjYjh9XHV7MjAyNzR9XHV7MjY0MTB9XHV7MjkwYWZ9'@; put 'XHV7MjkwZTV9XHV7MjRhZDF9XHV7MjE5MTV9XHV7MjMzMGF9XHU5NzMxXHU4NjQyXHU5NzM2XHU0YTBmXHU0NTNkXHU0NTg1XHV7MjRhZTl9XHU3MDc1XHU1YjQxXHU5NzFiXHU5NzVjXHV7MjkxZDV9XHU5NzU3XHU1YjRhXHV7MjkxZWJ9XHU5NzVmXHU5NDI1XHU1MGQwXHV7MjMwYjd9XHV7'@; put 'MjMwYmN9XHU5Nzg5XHU5NzlmXHU5N2IxXHU5N2JlXHU5N2MwXHU5N2QyXHU5N2UwXHV7MjU0NmN9XHU5N2VlXHU3NDFjXHV7Mjk0MzN9XHU5N2ZmXHU5N2Y1XHV7Mjk0MWR9XHV7Mjc5N2F9XHU0YWQxXHU5ODM0XHU5ODMzXHU5ODRiXHU5ODY2XHUzYjBlXHV7MjcxNzV9XHUzZDUxXHV7MjA2'@; put 'MzB9XHV7MjQxNWN9Il0sWyI5MTQwIiwiXHV7MjU3MDZ9XHU5OGNhXHU5OGI3XHU5OGM4XHU5OGM3XHU0YWZmXHV7MjZkMjd9XHV7MjE2ZDN9XHU1NWIwXHU5OGUxXHU5OGU2XHU5OGVjXHU5Mzc4XHU5OTM5XHV7MjRhMjl9XHU0YjcyXHV7Mjk4NTd9XHV7Mjk5MDV9XHU5OWY1XHU5YTBjXHU5'@; put 'YTNiXHU5YTEwXHU5YTU4XHV7MjU3MjV9XHUzNmM0XHV7MjkwYjF9XHV7MjliZDV9XHU5YWUwXHU5YWUyXHV7MjliMDV9XHU5YWY0XHU0YzBlXHU5YjE0XHU5YjJkXHV7Mjg2MDB9XHU1MDM0XHU5YjM0XHV7MjY5YTh9XHUzOGMzXHV7MjMwN2R9XHU5YjUwXHU5YjQwXHV7MjlkM2V9XHU1YTQ1'@; put 'XHV7MjE4NjN9XHU5YjhlXHV7MjQyNGJ9XHU5YzAyXHU5YmZmXHU5YzBjXHV7MjllNjh9XHU5ZGQ0XHV7MjlmYjd9XHV7MmExOTJ9XHV7MmExYWJ9XHV7MmEwZTF9XHV7MmExMjN9XHV7MmExZGZ9XHU5ZDdlXHU5ZDgzXHV7MmExMzR9XHU5ZTBlXHU2ODg4Il0sWyI5MWExIiwiXHU5ZGM0XHV7'@; put 'MjIxNWJ9XHV7MmExOTN9XHV7MmEyMjB9XHV7MjE5M2J9XHV7MmEyMzN9XHU5ZDM5XHV7MmEwYjl9XHV7MmEyYjR9XHU5ZTkwXHU5ZTk1XHU5ZTllXHU5ZWEyXHU0ZDM0XHU5ZWFhXHU5ZWFmXHV7MjQzNjR9XHU5ZWMxXHUzYjYwXHUzOWU1XHUzZDFkXHU0ZjMyXHUzN2JlXHV7MjhjMmJ9XHU5'@; put 'ZjAyXHU5ZjA4XHU0Yjk2XHU5NDI0XHV7MjZkYTJ9XHU5ZjE3XHU5ZjE2XHU5ZjM5XHU1NjlmXHU1NjhhXHU5ZjQ1XHU5OWI4XHV7MjkwOGJ9XHU5N2YyXHU4NDdmXHU5ZjYyXHU5ZjY5XHU3YWRjXHU5ZjhlXHU3MjE2XHU0YmJlXHV7MjQ5NzV9XHV7MjQ5YmJ9XHU3MTc3XHV7MjQ5Zjh9XHV7'@; put 'MjQzNDh9XHV7MjRhNTF9XHU3MzllXHV7MjhiZGF9XHV7MjE4ZmF9XHU3OTlmXHV7Mjg5N2V9XHV7MjhlMzZ9XHU5MzY5XHU5M2YzXHV7MjhhNDR9XHU5MmVjXHU5MzgxXHU5M2NiXHV7Mjg5NmN9XHV7MjQ0Yjl9XHU3MjE3XHUzZWViXHU3NzcyXHU3YTQzXHU3MGQwXHV7MjQ0NzN9XHV7MjQz'@; put 'Zjh9XHU3MTdlXHV7MjE3ZWZ9XHU3MGEzXHV7MjE4YmV9XHV7MjM1OTl9XHUzZWM3XHV7MjE4ODV9XHV7MjU0MmZ9XHV7MjE3Zjh9XHUzNzIyXHV7MjE2ZmJ9XHV7MjE4Mzl9XHUzNmUxXHV7MjE3NzR9XHV7MjE4ZDF9XHV7MjVmNGJ9XHUzNzIzXHV7MjE2YzB9XHU1NzViXHV7MjRhMjV9XHV7'@; put 'MjEzZmV9XHV7MjEyYTh9Il0sWyI5MjQwIiwiXHV7MjEzYzZ9XHV7MjE0YjZ9XHU4NTAzXHV7MjM2YTZ9XHU4NTAzXHU4NDU1XHV7MjQ5OTR9XHV7MjcxNjV9XHV7MjNlMzF9XHV7MjU1NWN9XHV7MjNlZmJ9XHV7MjcwNTJ9XHU0NGY0XHV7MjM2ZWV9XHV7Mjk5OWR9XHV7MjZmMjZ9XHU2N2Y5'@; put 'XHUzNzMzXHUzYzE1XHUzZGU3XHU1ODZjXHV7MjE5MjJ9XHU2ODEwXHU0MDU3XHV7MjM3M2Z9XHV7MjQwZTF9XHV7MjQwOGJ9XHV7MjQxMGZ9XHV7MjZjMjF9XHU1NGNiXHU1NjllXHV7MjY2YjF9XHU1NjkyXHV7MjBmZGZ9XHV7MjBiYTh9XHV7MjBlMGR9XHU5M2M2XHV7MjhiMTN9XHU5Mzlj'@; put 'XHU0ZWY4XHU1MTJiXHUzODE5XHV7MjQ0MzZ9XHU0ZWJjXHV7MjA0NjV9XHV7MjAzN2Z9XHU0ZjRiXHU0ZjhhXHV7MjU2NTF9XHU1YTY4XHV7MjAxYWJ9XHV7MjAzY2J9XHUzOTk5XHV7MjAzMGF9XHV7MjA0MTR9XHUzNDM1XHU0ZjI5XHV7MjAyYzB9XHV7MjhlYjN9XHV7MjAyNzV9XHU4YWRh'@; put 'XHV7MjAyMGN9XHU0ZTk4Il0sWyI5MmExIiwiXHU1MGNkXHU1MTBkXHU0ZmEyXHU0ZjAzXHV7MjRhMGV9XHV7MjNlOGF9XHU0ZjQyXHU1MDJlXHU1MDZjXHU1MDgxXHU0ZmNjXHU0ZmU1XHU1MDU4XHU1MGZjXHU1MTU5XHU1MTViXHU1MTVkXHU1MTVlXHU2ZTc2XHV7MjM1OTV9XHV7MjNlMzl9'@; put 'XHV7MjNlYmZ9XHU2ZDcyXHV7MjE4ODR9XHV7MjNlODl9XHU1MWE4XHU1MWMzXHV7MjA1ZTB9XHU0NGRkXHV7MjA0YTN9XHV7MjA0OTJ9XHV7MjA0OTF9XHU4ZDdhXHV7MjhhOWN9XHV7MjA3MGV9XHU1MjU5XHU1MmE0XHV7MjA4NzN9XHU1MmUxXHU5MzZlXHU0NjdhXHU3MThjXHV7MjQzOGN9'@; put 'XHV7MjBjMjB9XHV7MjQ5YWN9XHV7MjEwZTR9XHU2OWQxXHV7MjBlMWR9XHU3NDc5XHUzZWRlXHU3NDk5XHU3NDE0XHU3NDU2XHU3Mzk4XHU0YjhlXHV7MjRhYmN9XHV7MjQwOGR9XHU1M2QwXHUzNTg0XHU3MjBmXHV7MjQwYzl9XHU1NWI0XHV7MjAzNDV9XHU1NGNkXHV7MjBiYzZ9XHU1NzFk'@; put 'XHU5MjVkXHU5NmY0XHU5MzY2XHU1N2RkXHU1NzhkXHU1NzdmXHUzNjNlXHU1OGNiXHU1YTk5XHV7MjhhNDZ9XHV7MjE2ZmF9XHV7MjE3NmZ9XHV7MjE3MTB9XHU1YTJjXHU1OWI4XHU5MjhmXHU1YTdlXHU1YWNmXHU1YTEyXHV7MjU5NDZ9XHV7MjE5ZjN9XHV7MjE4NjF9XHV7MjQyOTV9XHUz'@; put 'NmY1XHU2ZDA1XHU3NDQzXHU1YTIxXHV7MjVlODN9Il0sWyI5MzQwIiwiXHU1YTgxXHV7MjhiZDd9XHV7MjA0MTN9XHU5M2UwXHU3NDhjXHV7MjEzMDN9XHU3MTA1XHU0OTcyXHU5NDA4XHV7Mjg5ZmJ9XHU5M2JkXHUzN2EwXHU1YzFlXHU1YzllXHU1ZTVlXHU1ZTQ4XHV7MjE5OTZ9XHV7MjE5'@; put 'N2N9XHV7MjNhZWV9XHU1ZWNkXHU1YjRmXHV7MjE5MDN9XHV7MjE5MDR9XHUzNzAxXHV7MjE4YTB9XHUzNmRkXHV7MjE2ZmV9XHUzNmQzXHU4MTJhXHV7MjhhNDd9XHV7MjFkYmF9XHV7MjM0NzJ9XHV7Mjg5YTh9XHU1ZjBjXHU1ZjBlXHV7MjE5Mjd9XHV7MjE3YWJ9XHU1YTZiXHV7MjE3M2J9'@; put 'XHU1YjQ0XHU4NjE0XHV7Mjc1ZmR9XHU4ODYwXHU2MDdlXHV7MjI4NjB9XHV7MjI2MmJ9XHU1ZmRiXHUzZWI4XHV7MjI1YWZ9XHV7MjI1YmV9XHV7MjkwODh9XHV7MjZmNzN9XHU2MWMwXHV7MjAwM2V9XHV7MjAwNDZ9XHV7MjI2MWJ9XHU2MTk5XHU2MTk4XHU2MDc1XHV7MjJjOWJ9XHV7MjJk'@; put 'MDd9XHV7MjQ2ZDR9XHV7MjkxNGR9Il0sWyI5M2ExIiwiXHU2NDcxXHV7MjQ2NjV9XHV7MjJiNmF9XHUzYTI5XHV7MjJiMjJ9XHV7MjM0NTB9XHV7Mjk4ZWF9XHV7MjJlNzh9XHU2MzM3XHV7MmE0NWJ9XHU2NGI2XHU2MzMxXHU2M2QxXHV7MjQ5ZTN9XHV7MjJkNjd9XHU2MmE0XHV7MjJjYTF9'@; put 'XHU2NDNiXHU2NTZiXHU2OTcyXHUzYmY0XHV7MjMwOGV9XHV7MjMyYWR9XHV7MjQ5ODl9XHV7MjMyYWJ9XHU1NTBkXHV7MjMyZTB9XHV7MjE4ZDl9XHV7Mjk0M2Z9XHU2NmNlXHV7MjMyODl9XHV7MjMxYjN9XHUzYWUwXHU0MTkwXHV7MjU1ODR9XHV7MjhiMjJ9XHV7MjU1OGZ9XHV7MjE2ZmN9'@; put 'XHV7MjU1NWJ9XHV7MjU0MjV9XHU3OGVlXHV7MjMxMDN9XHV7MjE4MmF9XHV7MjMyMzR9XHUzNDY0XHV7MjMyMGZ9XHV7MjMxODJ9XHV7MjQyYzl9XHU2NjhlXHV7MjZkMjR9XHU2NjZiXHU0YjkzXHU2NjMwXHV7Mjc4NzB9XHV7MjFkZWJ9XHU2NjYzXHV7MjMyZDJ9XHV7MjMyZTF9XHU2NjFl'@; put 'XHV7MjU4NzJ9XHUzOGQxXHV7MjM4M2F9XHV7MjM3YmN9XHUzYjk5XHV7MjM3YTJ9XHV7MjMzZmV9XHU3NGQwXHUzYjk2XHU2NzhmXHV7MjQ2MmF9XHU2OGI2XHU2ODFlXHUzYmM0XHU2YWJlXHUzODYzXHV7MjM3ZDV9XHV7MjQ0ODd9XHU2YTMzXHU2YTUyXHU2YWM5XHU2YjA1XHV7MjE5MTJ9'@; put 'XHU2NTExXHU2ODk4XHU2YTRjXHUzYmQ3XHU2YTdhXHU2YjU3XHV7MjNmYzB9XHV7MjNjOWF9XHU5M2EwXHU5MmYyXHV7MjhiZWF9XHV7MjhhY2J9Il0sWyI5NDQwIiwiXHU5Mjg5XHV7MjgwMWV9XHV7Mjg5ZGN9XHU5NDY3XHU2ZGE1XHU2ZjBiXHV7MjQ5ZWN9XHU2ZDY3XHV7MjNmN2Z9XHUz'@; put 'ZDhmXHU2ZTA0XHV7MjQwM2N9XHU1YTNkXHU2ZTBhXHU1ODQ3XHU2ZDI0XHU3ODQyXHU3MTNiXHV7MjQzMWF9XHV7MjQyNzZ9XHU3MGYxXHU3MjUwXHU3Mjg3XHU3Mjk0XHV7MjQ3OGZ9XHV7MjQ3MjV9XHU1MTc5XHV7MjRhYTR9XHV7MjA1ZWJ9XHU3NDdhXHV7MjNlZjh9XHV7MjM2NWZ9XHV7'@; put 'MjRhNGF9XHV7MjQ5MTd9XHV7MjVmZTF9XHUzZjA2XHUzZWIxXHV7MjRhZGZ9XHV7MjhjMjN9XHV7MjNmMzV9XHU2MGE3XHUzZWYzXHU3NGNjXHU3NDNjXHU5Mzg3XHU3NDM3XHU0NDlmXHV7MjZkZWF9XHU0NTUxXHU3NTgzXHUzZjYzXHV7MjRjZDl9XHV7MjRkMDZ9XHUzZjU4XHU3NTU1XHU3'@; put 'NjczXHV7MmE1YzZ9XHUzYjE5XHU3NDY4XHV7MjhhY2N9XHV7MjQ5YWJ9XHV7MjQ5OGV9XHUzYWZiIl0sWyI5NGExIiwiXHUzZGNkXHV7MjRhNGV9XHUzZWZmXHV7MjQ5YzV9XHV7MjQ4ZjN9XHU5MWZhXHU1NzMyXHU5MzQyXHV7MjhhZTN9XHV7MjE4NjR9XHU1MGRmXHV7MjUyMjF9XHV7MjUx'@; put 'ZTd9XHU3Nzc4XHV7MjMyMzJ9XHU3NzBlXHU3NzBmXHU3NzdiXHV7MjQ2OTd9XHV7MjM3ODF9XHUzYTVlXHV7MjQ4ZjB9XHU3NDM4XHU3NDliXHUzZWJmXHV7MjRhYmF9XHV7MjRhYzd9XHU0MGM4XHV7MjRhOTZ9XHV7MjYxYWV9XHU5MzA3XHV7MjU1ODF9XHU3ODFlXHU3ODhkXHU3ODg4XHU3'@; put 'OGQyXHU3M2QwXHU3OTU5XHV7Mjc3NDF9XHV7MjU2ZTN9XHU0MTBlXHU3OTliXHU4NDk2XHU3OWE1XHU2YTJkXHV7MjNlZmF9XHU3YTNhXHU3OWY0XHU0MTZlXHV7MjE2ZTZ9XHU0MTMyXHU5MjM1XHU3OWYxXHV7MjBkNGN9XHV7MjQ5OGN9XHV7MjAyOTl9XHV7MjNkYmF9XHV7MjE3NmV9XHUz'@; put 'NTk3XHU1NTZiXHUzNTcwXHUzNmFhXHV7MjAxZDR9XHV7MjBjMGR9XHU3YWUyXHU1YTU5XHV7MjI2ZjV9XHV7MjVhYWZ9XHV7MjVhOWN9XHU1YTBkXHV7MjAyNWJ9XHU3OGYwXHU1YTJhXHV7MjViYzZ9XHU3YWZlXHU0MWY5XHU3YzVkXHU3YzZkXHU0MjExXHV7MjViYjN9XHV7MjVlYmN9XHV7'@; put 'MjVlYTZ9XHU3Y2NkXHV7MjQ5Zjl9XHV7MjE3YjB9XHU3YzhlXHU3YzdjXHU3Y2FlXHU2YWIyXHU3ZGRjXHU3ZTA3XHU3ZGQzXHU3ZjRlXHV7MjYyNjF9Il0sWyI5NTQwIiwiXHV7MjYxNWN9XHV7MjdiNDh9XHU3ZDk3XHV7MjVlODJ9XHU0MjZhXHV7MjZiNzV9XHV7MjA5MTZ9XHU2N2Q2XHV7'@; put 'MjAwNGV9XHV7MjM1Y2Z9XHU1N2M0XHV7MjY0MTJ9XHV7MjYzZjh9XHV7MjQ5NjJ9XHU3ZmRkXHU3YjI3XHV7MjA4MmN9XHV7MjVhZTl9XHV7MjVkNDN9XHU3YjBjXHV7MjVlMGV9XHU5OWU2XHU4NjQ1XHU5YTYzXHU2YTFjXHV7MjM0M2Z9XHUzOWUyXHV7MjQ5Zjd9XHV7MjY1YWR9XHU5YTFm'@; put 'XHV7MjY1YTB9XHU4NDgwXHV7MjcxMjd9XHV7MjZjZDF9XHU0NGVhXHU4MTM3XHU0NDAyXHU4MGM2XHU4MTA5XHU4MTQyXHV7MjY3YjR9XHU5OGMzXHV7MjZhNDJ9XHU4MjYyXHU4MjY1XHV7MjZhNTF9XHU4NDUzXHV7MjZkYTd9XHU4NjEwXHV7MjcyMWJ9XHU1YTg2XHU0MTdmXHV7MjE4NDB9'@; put 'XHU1YjJiXHV7MjE4YTF9XHU1YWU0XHV7MjE4ZDh9XHU4NmEwXHV7MmY5YmN9XHV7MjNkOGZ9XHU4ODJkXHV7Mjc0MjJ9XHU1YTAyIl0sWyI5NWExIiwiXHU4ODZlXHU0ZjQ1XHU4ODg3XHU4OGJmXHU4OGU2XHU4OTY1XHU4OTRkXHV7MjU2ODN9XHU4OTU0XHV7Mjc3ODV9XHV7Mjc3ODR9XHV7'@; put 'MjhiZjV9XHV7MjhiZDl9XHV7MjhiOWN9XHV7Mjg5Zjl9XHUzZWFkXHU4NGEzXHU0NmY1XHU0NmNmXHUzN2YyXHU4YTNkXHU4YTFjXHV7Mjk0NDh9XHU1ZjRkXHU5MjJiXHV7MjQyODR9XHU2NWQ0XHU3MTI5XHU3MGM0XHV7MjE4NDV9XHU5ZDZkXHU4YzlmXHU4Y2U5XHV7MjdkZGN9XHU1OTlh'@; put 'XHU3N2MzXHU1OWYwXHU0MzZlXHUzNmQ0XHU4ZTJhXHU4ZWE3XHV7MjRjMDl9XHU4ZjMwXHU4ZjRhXHU0MmY0XHU2YzU4XHU2ZmJiXHV7MjIzMjF9XHU0ODliXHU2Zjc5XHU2ZThiXHV7MjE3ZGF9XHU5YmU5XHUzNmI1XHV7MjQ5MmZ9XHU5MGJiXHU5MDk3XHU1NTcxXHU0OTA2XHU5MWJiXHU5'@; put 'NDA0XHV7MjhhNGJ9XHU0MDYyXHV7MjhhZmN9XHU5NDI3XHV7MjhjMWR9XHV7MjhjM2J9XHU4NGU1XHU4YTJiXHU5NTk5XHU5NWE3XHU5NTk3XHU5NTk2XHV7MjhkMzR9XHU3NDQ1XHUzZWMyXHV7MjQ4ZmZ9XHV7MjRhNDJ9XHV7MjQzZWF9XHUzZWU3XHV7MjMyMjV9XHU5NjhmXHV7MjhlZTd9'@; put 'XHV7MjhlNjZ9XHV7MjhlNjV9XHUzZWNjXHV7MjQ5ZWR9XHV7MjRhNzh9XHV7MjNmZWV9XHU3NDEyXHU3NDZiXHUzZWZjXHU5NzQxXHV7MjkwYjB9Il0sWyI5NjQwIiwiXHU2ODQ3XHU0YTFkXHV7MjkwOTN9XHV7MjU3ZGZ9XHU5NzVkXHU5MzY4XHV7Mjg5ODl9XHV7MjhjMjZ9XHV7MjhiMmZ9'@; put 'XHV7MjYzYmV9XHU5MmJhXHU1YjExXHU4YjY5XHU0OTNjXHU3M2Y5XHV7MjQyMWJ9XHU5NzliXHU5NzcxXHU5OTM4XHV7MjBmMjZ9XHU1ZGMxXHV7MjhiYzV9XHV7MjRhYjJ9XHU5ODFmXHV7Mjk0ZGF9XHU5MmY2XHV7Mjk1ZDd9XHU5MWU1XHU0NGMwXHV7MjhiNTB9XHV7MjRhNjd9XHV7Mjhi'@; put 'NjR9XHU5OGRjXHV7MjhhNDV9XHUzZjAwXHU5MjJhXHU0OTI1XHU4NDE0XHU5OTNiXHU5OTRkXHV7MjdiMDZ9XHUzZGZkXHU5OTliXHU0YjZmXHU5OWFhXHU5YTVjXHV7MjhiNjV9XHV7MjU4Yzh9XHU2YThmXHU5YTIxXHU1YWZlXHU5YTJmXHV7Mjk4ZjF9XHU0YjkwXHV7Mjk5NDh9XHU5OWJj'@; put 'XHU0YmJkXHU0Yjk3XHU5MzdkXHU1ODcyXHV7MjEzMDJ9XHU1ODIyXHV7MjQ5Yjh9Il0sWyI5NmExIiwiXHV7MjE0ZTh9XHU3ODQ0XHV7MjI3MWZ9XHV7MjNkYjh9XHU2OGM1XHUzZDdkXHU5NDU4XHUzOTI3XHU2MTUwXHV7MjI3ODF9XHV7MjI5NmJ9XHU2MTA3XHU5YzRmXHU5YzUzXHU5Yzdi'@; put 'XHU5YzM1XHU5YzEwXHU5YjdmXHU5YmNmXHV7MjllMmR9XHU5YjlmXHV7MmExZjV9XHV7MmEwZmV9XHU5ZDIxXHU0Y2FlXHV7MjQxMDR9XHU5ZTE4XHU0Y2IwXHU5ZDBjXHV7MmExYjR9XHV7MmEwZWR9XHV7MmEwZjN9XHV7Mjk5MmZ9XHU5ZGE1XHU4NGJkXHV7MjZlMTJ9XHV7MjZmZGZ9XHV7'@; put 'MjZiODJ9XHU4NWZjXHU0NTMzXHV7MjZkYTR9XHV7MjZlODR9XHV7MjZkZjB9XHU4NDIwXHU4NWVlXHV7MjZlMDB9XHV7MjM3ZDd9XHV7MjYwNjR9XHU3OWUyXHV7MjM1OWN9XHV7MjM2NDB9XHU0OTJkXHV7MjQ5ZGV9XHUzZDYyXHU5M2RiXHU5MmJlXHU5MzQ4XHV7MjAyYmZ9XHU3OGI5XHU5'@; put 'Mjc3XHU5NDRkXHU0ZmU0XHUzNDQwXHU5MDY0XHV7MjU1NWR9XHU3ODNkXHU3ODU0XHU3OGI2XHU3ODRiXHV7MjE3NTd9XHV7MjMxYzl9XHV7MjQ5NDF9XHUzNjlhXHU0ZjcyXHU2ZmRhXHU2ZmQ5XHU3MDFlXHU3MDFlXHU1NDE0XHV7MjQxYjV9XHU1N2JiXHU1OGYzXHU1NzhhXHU5ZDE2XHU1'@; put 'N2Q3XHU3MTM0XHUzNGFmXHV7MjQxYWN9XHU3MWViXHV7MjZjNDB9XHV7MjRmOTd9XHU1YjI4XHV7MjE3YjV9XHV7MjhhNDl9Il0sWyI5NzQwIiwiXHU2MTBjXHU1YWNlXHU1YTBiXHU0MmJjXHV7MjQ0ODh9XHUzNzJjXHU0YjdiXHV7Mjg5ZmN9XHU5M2JiXHU5M2I4XHV7MjE4ZDZ9XHV7MjBm'@; put 'MWR9XHU4NDcyXHV7MjZjYzB9XHV7MjE0MTN9XHV7MjQyZmF9XHV7MjJjMjZ9XHV7MjQzYzF9XHU1OTk0XHV7MjNkYjd9XHV7MjY3NDF9XHU3ZGE4XHV7MjYxNWJ9XHV7MjYwYTR9XHV7MjQ5Yjl9XHV7MjQ5OGJ9XHV7Mjg5ZmF9XHU5MmU1XHU3M2UyXHUzZWU5XHU3NGI0XHV7MjhiNjN9XHV7'@; put 'MjE4OWZ9XHUzZWUxXHV7MjRhYjN9XHU2YWQ4XHU3M2YzXHU3M2ZiXHUzZWQ2XHV7MjRhM2V9XHV7MjRhOTR9XHV7MjE3ZDl9XHV7MjRhNjZ9XHV7MjAzYTd9XHV7MjE0MjR9XHV7MjQ5ZTV9XHU3NDQ4XHV7MjQ5MTZ9XHU3MGE1XHV7MjQ5NzZ9XHU5Mjg0XHU3M2U2XHU5MzVmXHV7MjA0ZmV9'@; put 'XHU5MzMxXHV7MjhhY2V9XHV7MjhhMTZ9XHU5Mzg2XHV7MjhiZTd9XHV7MjU1ZDV9XHU0OTM1XHV7MjhhODJ9XHU3MTZiIl0sWyI5N2ExIiwiXHV7MjQ5NDN9XHV7MjBjZmZ9XHU1NmE0XHV7MjA2MWF9XHV7MjBiZWJ9XHV7MjBjYjh9XHU1NTAyXHU3OWM0XHV7MjE3ZmF9XHU3ZGZlXHV7MjE2'@; put 'YzJ9XHV7MjRhNTB9XHV7MjE4NTJ9XHU0NTJlXHU5NDAxXHUzNzBhXHV7MjhhYzB9XHV7MjQ5YWR9XHU1OWIwXHV7MjE4YmZ9XHV7MjE4ODN9XHV7Mjc0ODR9XHU1YWExXHUzNmUyXHV7MjNkNWJ9XHUzNmIwXHU5MjVmXHU1YTc5XHV7MjhhODF9XHV7MjE4NjJ9XHU5Mzc0XHUzY2NkXHV7MjBh'@; put 'YjR9XHU0YTk2XHUzOThhXHU1MGY0XHUzZDY5XHUzZDRjXHV7MjEzOWN9XHU3MTc1XHU0MmZiXHV7MjgyMTh9XHU2ZTBmXHV7MjkwZTR9XHU0NGViXHU2ZDU3XHV7MjdlNGZ9XHU3MDY3XHU2Y2FmXHUzY2Q2XHV7MjNmZWR9XHV7MjNlMmR9XHU2ZTAyXHU2ZjBjXHUzZDZmXHV7MjAzZjV9XHU3'@; put 'NTUxXHUzNmJjXHUzNGM4XHU0NjgwXHUzZWRhXHU0ODcxXHU1OWM0XHU5MjZlXHU0OTNlXHU4ZjQxXHV7MjhjMWN9XHV7MjZiYzB9XHU1ODEyXHU1N2M4XHUzNmQ2XHV7MjE0NTJ9XHU3MGZlXHV7MjQzNjJ9XHV7MjRhNzF9XHV7MjJmZTN9XHV7MjEyYjB9XHV7MjIzYmR9XHU2OGI5XHU2OTY3'@; put 'XHV7MjEzOTh9XHV7MjM0ZTV9XHV7MjdiZjR9XHV7MjM2ZGZ9XHV7MjhhODN9XHV7MjM3ZDZ9XHV7MjMzZmF9XHV7MjRjOWZ9XHU2YTFhXHV7MjM2YWR9XHV7MjZjYjd9XHU4NDNlXHU0NGRmXHU0NGNlIl0sWyI5ODQwIiwiXHV7MjZkMjZ9XHV7MjZkNTF9XHV7MjZjODJ9XHV7MjZmZGV9XHU2'@; put 'ZjE3XHV7MjcxMDl9XHU4MzNkXHV7MjE3M2F9XHU4M2VkXHV7MjZjODB9XHV7MjcwNTN9XHV7MjE3ZGJ9XHU1OTg5XHU1YTgyXHV7MjE3YjN9XHU1YTYxXHU1YTcxXHV7MjE5MDV9XHV7MjQxZmN9XHUzNzJkXHU1OWVmXHV7MjE3M2N9XHUzNmM3XHU3MThlXHU5MzkwXHU2NjlhXHV7MjQyYTV9'@; put 'XHU1YTZlXHU1YTJiXHV7MjQyOTN9XHU2YTJiXHV7MjNlZjl9XHV7Mjc3MzZ9XHV7MjQ0NWJ9XHV7MjQyY2F9XHU3MTFkXHV7MjQyNTl9XHV7Mjg5ZTF9XHU0ZmIwXHV7MjZkMjh9XHU1Y2MyXHV7MjQ0Y2V9XHV7MjdlNGR9XHV7MjQzYmR9XHU2YTBjXHV7MjQyNTZ9XHV7MjEzMDR9XHU3MGE2'@; put 'XHU3MTMzXHV7MjQzZTl9XHUzZGE1XHU2Y2RmXHV7MmY4MjV9XHV7MjRhNGZ9XHU3ZTY1XHU1OWViXHU1ZDJmXHUzZGYzXHU1ZjVjXHV7MjRhNWR9XHV7MjE3ZGZ9XHU3ZGE0XHU4NDI2Il0sWyI5OGExIiwiXHU1NDg1XHV7MjNhZmF9XHV7MjMzMDB9XHV7MjAyMTR9XHU1NzdlXHV7MjA4ZDV9'@; put 'XHV7MjA2MTl9XHUzZmU1XHV7MjFmOWV9XHV7MmEyYjZ9XHU3MDAzXHV7MjkxNWJ9XHU1ZDcwXHU3MzhmXHU3Y2QzXHV7MjhhNTl9XHV7Mjk0MjB9XHU0ZmM4XHU3ZmU3XHU3MmNkXHU3MzEwXHV7MjdhZjR9XHU3MzM4XHU3MzM5XHV7MjU2ZjZ9XHU3MzQxXHU3MzQ4XHUzZWE5XHV7MjdiMTh9'@; put 'XHU5MDZjXHU3MWY1XHV7MjQ4ZjJ9XHU3M2UxXHU4MWY2XHUzZWNhXHU3NzBjXHUzZWQxXHU2Y2EyXHU1NmZkXHU3NDE5XHU3NDFlXHU3NDFmXHUzZWUyXHUzZWYwXHUzZWY0XHUzZWZhXHU3NGQzXHUzZjBlXHUzZjUzXHU3NTQyXHU3NTZkXHU3NTcyXHU3NThkXHUzZjdjXHU3NWM4XHU3NWRj'@; put 'XHUzZmMwXHU3NjRkXHUzZmQ3XHU3Njc0XHUzZmRjXHU3NjdhXHV7MjRmNWN9XHU3MTg4XHU1NjIzXHU4OTgwXHU1ODY5XHU0MDFkXHU3NzQzXHU0MDM5XHU2NzYxXHU0MDQ1XHUzNWRiXHU3Nzk4XHU0MDZhXHU0MDZmXHU1YzVlXHU3N2JlXHU3N2NiXHU1OGYyXHU3ODE4XHU3MGI5XHU3ODFj'@; put 'XHU0MGE4XHU3ODM5XHU3ODQ3XHU3ODUxXHU3ODY2XHU4NDQ4XHV7MjU1MzV9XHU3OTMzXHU2ODAzXHU3OTMyXHU0MTAzIl0sWyI5OTQwIiwiXHU0MTA5XHU3OTkxXHU3OTk5XHU4ZmJiXHU3YTA2XHU4ZmJjXHU0MTY3XHU3YTkxXHU0MWIyXHU3YWJjXHU4Mjc5XHU0MWM0XHU3YWNmXHU3YWRi'@; put 'XHU0MWNmXHU0ZTIxXHU3YjYyXHU3YjZjXHU3YjdiXHU3YzEyXHU3YzFiXHU0MjYwXHU0MjdhXHU3YzdiXHU3YzljXHU0MjhjXHU3Y2I4XHU0Mjk0XHU3Y2VkXHU4ZjkzXHU3MGMwXHV7MjBjY2Z9XHU3ZGNmXHU3ZGQ0XHU3ZGQwXHU3ZGZkXHU3ZmFlXHU3ZmI0XHU3MjlmXHU0Mzk3XHU4MDIw'@; put 'XHU4MDI1XHU3YjM5XHU4MDJlXHU4MDMxXHU4MDU0XHUzZGNjXHU1N2I0XHU3MGEwXHU4MGI3XHU4MGU5XHU0M2VkXHU4MTBjXHU3MzJhXHU4MTBlXHU4MTEyXHU3NTYwXHU4MTE0XHU0NDAxXHUzYjM5XHU4MTU2XHU4MTU5XHU4MTVhIl0sWyI5OWExIiwiXHU0NDEzXHU1ODNhXHU4MTdjXHU4'@; put 'MTg0XHU0NDI1XHU4MTkzXHU0NDJkXHU4MWE1XHU1N2VmXHU4MWMxXHU4MWU0XHU4MjU0XHU0NDhmXHU4MmE2XHU4Mjc2XHU4MmNhXHU4MmQ4XHU4MmZmXHU0NGIwXHU4MzU3XHU5NjY5XHU2OThhXHU4NDA1XHU3MGY1XHU4NDY0XHU2MGUzXHU4NDg4XHU0NTA0XHU4NGJlXHU4NGUxXHU4NGY4'@; put 'XHU4NTEwXHU4NTM4XHU4NTUyXHU0NTNiXHU4NTZmXHU4NTcwXHU4NWUwXHU0NTc3XHU4NjcyXHU4NjkyXHU4NmIyXHU4NmVmXHU5NjQ1XHU4NzhiXHU0NjA2XHU0NjE3XHU4OGFlXHU4OGZmXHU4OTI0XHU4OTQ3XHU4OTkxXHV7Mjc5Njd9XHU4YTI5XHU4YTM4XHU4YTk0XHU4YWI0XHU4YzUx'@; put 'XHU4Y2Q0XHU4Y2YyXHU4ZDFjXHU0Nzk4XHU1ODVmXHU4ZGMzXHU0N2VkXHU0ZWVlXHU4ZTNhXHU1NWQ4XHU1NzU0XHU4ZTcxXHU1NWY1XHU4ZWIwXHU0ODM3XHU4ZWNlXHU4ZWUyXHU4ZWU0XHU4ZWVkXHU4ZWYyXHU4ZmI3XHU4ZmMxXHU4ZmNhXHU4ZmNjXHU5MDMzXHU5OWM0XHU0OGFkXHU5'@; put 'OGUwXHU5MjEzXHU0OTFlXHU5MjI4XHU5MjU4XHU5MjZiXHU5MmIxXHU5MmFlXHU5MmJmIl0sWyI5YTQwIiwiXHU5MmUzXHU5MmViXHU5MmYzXHU5MmY0XHU5MmZkXHU5MzQzXHU5Mzg0XHU5M2FkXHU0OTQ1XHU0OTUxXHU5ZWJmXHU5NDE3XHU1MzAxXHU5NDFkXHU5NDJkXHU5NDNlXHU0OTZh'@; put 'XHU5NDU0XHU5NDc5XHU5NTJkXHU5NWEyXHU0OWE3XHU5NWY0XHU5NjMzXHU0OWU1XHU2N2EwXHU0YTI0XHU5NzQwXHU0YTM1XHU5N2IyXHU5N2MyXHU1NjU0XHU0YWU0XHU2MGU4XHU5OGI5XHU0YjE5XHU5OGYxXHU1ODQ0XHU5OTBlXHU5OTE5XHU1MWI0XHU5OTFjXHU5OTM3XHU5OTQyXHU5'@; put 'OTVkXHU5OTYyXHU0YjcwXHU5OWM1XHU0YjlkXHU5YTNjXHU5YjBmXHU3YTgzXHU5YjY5XHU5YjgxXHU5YmRkXHU5YmYxXHU5YmY0XHU0YzZkXHU5YzIwXHUzNzZmXHV7MjFiYzJ9XHU5ZDQ5XHU5YzNhIl0sWyI5YWExIiwiXHU5ZWZlXHU1NjUwXHU5ZDkzXHU5ZGJkXHU5ZGMwXHU5ZGZjXHU5'@; put 'NGY2XHU4ZmI2XHU5ZTdiXHU5ZWFjXHU5ZWIxXHU5ZWJkXHU5ZWM2XHU5NGRjXHU5ZWUyXHU5ZWYxXHU5ZWY4XHU3YWM4XHU5ZjQ0XHV7MjAwOTR9XHV7MjAyYjd9XHV7MjAzYTB9XHU2OTFhXHU5NGMzXHU1OWFjXHV7MjA0ZDd9XHU1ODQwXHU5NGMxXHUzN2I5XHV7MjA1ZDV9XHV7MjA2MTV9'@; put 'XHV7MjA2NzZ9XHV7MjE2YmF9XHU1NzU3XHU3MTczXHV7MjBhYzJ9XHV7MjBhY2R9XHV7MjBiYmZ9XHU1NDZhXHV7MmY4M2J9XHV7MjBiY2J9XHU1NDllXHV7MjBiZmJ9XHV7MjBjM2J9XHV7MjBjNTN9XHV7MjBjNjV9XHV7MjBjN2N9XHU2MGU3XHV7MjBjOGR9XHU1NjdhXHV7MjBjYjV9XHV7'@; put 'MjBjZGR9XHV7MjBjZWR9XHV7MjBkNmZ9XHV7MjBkYjJ9XHV7MjBkYzh9XHU2OTU1XHU5YzJmXHU4N2E1XHV7MjBlMDR9XHV7MjBlMGV9XHV7MjBlZDd9XHV7MjBmOTB9XHV7MjBmMmR9XHV7MjBlNzN9XHU1YzIwXHV7MjBmYmN9XHU1ZTBiXHV7MjEwNWN9XHV7MjEwNGZ9XHV7MjEwNzZ9XHU2'@; put 'NzFlXHV7MjEwN2J9XHV7MjEwODh9XHV7MjEwOTZ9XHUzNjQ3XHV7MjEwYmZ9XHV7MjEwZDN9XHV7MjExMmZ9XHV7MjExM2J9XHU1MzY0XHU4NGFkXHV7MjEyZTN9XHV7MjEzNzV9XHV7MjEzMzZ9XHU4YjgxXHV7MjE1Nzd9XHV7MjE2MTl9XHV7MjE3YzN9XHV7MjE3Yzd9XHU0ZTc4XHU3MGJi'@; put 'XHV7MjE4MmR9XHV7MjE5NmF9Il0sWyI5YjQwIiwiXHV7MjFhMmR9XHV7MjFhNDV9XHV7MjFjMmF9XHV7MjFjNzB9XHV7MjFjYWN9XHV7MjFlYzh9XHU2MmMzXHV7MjFlZDV9XHV7MjFmMTV9XHU3MTk4XHU2ODU1XHV7MjIwNDV9XHU2OWU5XHUzNmM4XHV7MjIyN2N9XHV7MjIzZDd9XHV7MjIz'@; put 'ZmF9XHV7MjI3MmF9XHV7MjI4NzF9XHV7MjI5NGZ9XHU4MmZkXHV7MjI5Njd9XHV7MjI5OTN9XHV7MjJhZDV9XHU4OWE1XHV7MjJhZTh9XHU4ZmEwXHV7MjJiMGV9XHU5N2I4XHV7MjJiM2Z9XHU5ODQ3XHU5YWJkXHV7MjJjNGN9Il0sWyI5YjYyIiwiXHV7MjJjODh9XHV7MjJjYjd9XHV7MjVi'@; put 'ZTh9XHV7MjJkMDh9XHV7MjJkMTJ9XHV7MjJkYjd9XHV7MjJkOTV9XHV7MjJlNDJ9XHV7MjJmNzR9XHV7MjJmY2N9XHV7MjMwMzN9XHV7MjMwNjZ9XHV7MjMzMWZ9XHV7MjMzZGV9XHU1ZmIxXHU2NjQ4XHU2NmJmXHV7MjdhNzl9XHV7MjM1Njd9XHV7MjM1ZjN9XHU3MjAxXHV7MjQ5YmF9XHU3'@; put 'N2Q3XHV7MjM2MWF9XHV7MjM3MTZ9XHU3ZTg3XHV7MjAzNDZ9XHU1OGI1XHU2NzBlIl0sWyI5YmExIiwiXHU2OTE4XHV7MjNhYTd9XHV7Mjc2NTd9XHV7MjVmZTJ9XHV7MjNlMTF9XHV7MjNlYjl9XHV7Mjc1ZmV9XHV7MjIwOWF9XHU0OGQwXHU0YWI4XHV7MjQxMTl9XHV7MjhhOWF9XHV7MjQy'@; put 'ZWV9XHV7MjQzMGR9XHV7MjQwM2J9XHV7MjQzMzR9XHV7MjQzOTZ9XHV7MjRhNDV9XHV7MjA1Y2F9XHU1MWQyXHV7MjA2MTF9XHU1OTlmXHV7MjFlYTh9XHUzYmJlXHV7MjNjZmZ9XHV7MjQ0MDR9XHV7MjQ0ZDZ9XHU1Nzg4XHV7MjQ2NzR9XHUzOTliXHV7MjQ3MmZ9XHV7Mjg1ZTh9XHV7Mjk5'@; put 'Yzl9XHUzNzYyXHV7MjIxYzN9XHU4YjVlXHV7MjhiNGV9XHU5OWQ2XHV7MjQ4MTJ9XHV7MjQ4ZmJ9XHV7MjRhMTV9XHU3MjA5XHV7MjRhYzB9XHV7MjBjNzh9XHU1OTY1XHV7MjRlYTV9XHV7MjRmODZ9XHV7MjA3Nzl9XHU4ZWRhXHV7MjUwMmN9XHU1MjhmXHU1NzNmXHU3MTcxXHV7MjUyOTl9'@; put 'XHV7MjU0MTl9XHV7MjNmNGF9XHV7MjRhYTd9XHU1NWJjXHV7MjU0NDZ9XHV7MjU0NmV9XHV7MjZiNTJ9XHU5MWQ0XHUzNDczXHV7MjU1M2Z9XHV7Mjc2MzJ9XHV7MjU1NWV9XHU0NzE4XHV7MjU1NjJ9XHV7MjU1NjZ9XHV7MjU3Yzd9XHV7MjQ5M2Z9XHV7MjU4NWR9XHU1MDY2XHUzNGZiXHV7'@; put 'MjMzY2N9XHU2MGRlXHV7MjU5MDN9XHU0NzdjXHV7Mjg5NDh9XHV7MjVhYWV9XHV7MjViODl9XHV7MjVjMDZ9XHV7MjFkOTB9XHU1N2ExXHU3MTUxXHU2ZmI2XHV7MjYxMDJ9XHV7MjdjMTJ9XHU5MDU2XHV7MjYxYjJ9XHV7MjRmOWF9XHU4YjYyXHV7MjY0MDJ9XHV7MjY0NGF9Il0sWyI5YzQw'@; put 'IiwiXHU1ZDViXHV7MjZiZjd9XHU4ZjM2XHV7MjY0ODR9XHV7MjE5MWN9XHU4YWVhXHV7MjQ5ZjZ9XHV7MjY0ODh9XHV7MjNmZWZ9XHV7MjY1MTJ9XHU0YmMwXHV7MjY1YmZ9XHV7MjY2YjV9XHV7MjI3MWJ9XHU5NDY1XHV7MjU3ZTF9XHU2MTk1XHU1YTI3XHV7MmY4Y2R9XHU0ZmJiXHU1NmI5'@; put 'XHV7MjQ1MjF9XHV7MjY2ZmN9XHU0ZTZhXHV7MjQ5MzR9XHU5NjU2XHU2ZDhmXHV7MjZjYmR9XHUzNjE4XHU4OTc3XHV7MjY3OTl9XHV7MjY4NmV9XHV7MjY0MTF9XHV7MjY4NWV9XHU3MWRmXHV7MjY4Yzd9XHU3YjQyXHV7MjkwYzB9XHV7MjBhMTF9XHV7MjY5MjZ9XHU5MTA0XHV7MjY5Mzl9'@; put 'XHU3YTQ1XHU5ZGYwXHV7MjY5ZmF9XHU5YTI2XHV7MjZhMmR9XHUzNjVmXHV7MjY0Njl9XHV7MjAwMjF9XHU3OTgzXHV7MjZhMzR9XHV7MjZiNWJ9XHU1ZDJjXHV7MjM1MTl9XHU4M2NmXHV7MjZiOWR9XHU0NmQwXHV7MjZjYTR9XHU3NTNiXHU4ODY1XHV7MjZkYWV9XHU1OGI2Il0sWyI5Y2Ex'@; put 'IiwiXHUzNzFjXHV7MjI1OGR9XHV7MjcwNGJ9XHV7MjcxY2R9XHUzYzU0XHV7MjcyODB9XHV7MjcyODV9XHU5MjgxXHV7MjIxN2F9XHV7MjcyOGJ9XHU5MzMwXHV7MjcyZTZ9XHV7MjQ5ZDB9XHU2YzM5XHU5NDlmXHV7Mjc0NTB9XHV7MjBlZjh9XHU4ODI3XHU4OGY1XHV7MjI5MjZ9XHV7Mjg0'@; put 'NzN9XHV7MjE3YjF9XHU2ZWI4XHV7MjRhMmF9XHV7MjE4MjB9XHUzOWE0XHUzNmI5XHU1YzEwXHU3OWUzXHU0NTNmXHU2NmI2XHV7MjljYWR9XHV7Mjk4YTR9XHU4OTQzXHV7Mjc3Y2N9XHV7Mjc4NTh9XHU1NmQ2XHU0MGRmXHV7MjE2MGF9XHUzOWExXHV7MjM3MmZ9XHV7MjgwZTh9XHV7MjEz'@; put 'YzV9XHU3MWFkXHU4MzY2XHV7Mjc5ZGR9XHV7MjkxYTh9XHU1YTY3XHU0Y2I3XHV7MjcwYWZ9XHV7Mjg5YWJ9XHV7Mjc5ZmR9XHV7MjdhMGF9XHV7MjdiMGJ9XHV7MjdkNjZ9XHV7MjQxN2F9XHU3YjQzXHU3OTdlXHV7MjgwMDl9XHU2ZmI1XHV7MmEyZGZ9XHU2YTAzXHV7MjgzMTh9XHU1M2Ey'@; put 'XHV7MjZlMDd9XHU5M2JmXHU2ODM2XHU5NzVkXHV7MjgxNmZ9XHV7MjgwMjN9XHV7MjY5YjV9XHV7MjEzZWR9XHV7MjMyMmZ9XHV7MjgwNDh9XHU1ZDg1XHV7MjhjMzB9XHV7MjgwODN9XHU1NzE1XHU5ODIzXHV7Mjg5NDl9XHU1ZGFiXHV7MjQ5ODh9XHU2NWJlXHU2OWQ1XHU1M2QyXHV7MjRh'@; put 'YTV9XHV7MjNmODF9XHUzYzExXHU2NzM2XHV7MjgwOTB9XHV7MjgwZjR9XHV7MjgxMmV9XHV7MjFmYTF9XHV7MjgxNGZ9Il0sWyI5ZDQwIiwiXHV7MjgxODl9XHV7MjgxYWZ9XHV7MjgyMWF9XHV7MjgzMDZ9XHV7MjgzMmZ9XHV7MjgzOGF9XHUzNWNhXHV7Mjg0Njh9XHV7Mjg2YWF9XHU0OGZh'@; put 'XHU2M2U2XHV7Mjg5NTZ9XHU3ODA4XHU5MjU1XHV7Mjg5Yjh9XHU0M2YyXHV7Mjg5ZTd9XHU0M2RmXHV7Mjg5ZTh9XHV7MjhiNDZ9XHV7MjhiZDR9XHU1OWY4XHV7MjhjMDl9XHU4ZjBiXHV7MjhmYzV9XHV7MjkwZWN9XHU3YjUxXHV7MjkxMTB9XHV7MjkxM2N9XHUzZGY3XHV7MjkxNWV9XHV7'@; put 'MjRhY2F9XHU4ZmQwXHU3MjhmXHU1NjhiXHV7Mjk0ZTd9XHV7Mjk1ZTl9XHV7Mjk1YjB9XHV7Mjk1Yjh9XHV7Mjk3MzJ9XHV7Mjk4ZDF9XHV7Mjk5NDl9XHV7Mjk5NmF9XHV7Mjk5YzN9XHV7MjlhMjh9XHV7MjliMGV9XHV7MjlkNWF9XHV7MjlkOWJ9XHU3ZTlmXHV7MjllZjh9XHV7MjlmMjN9'@; put 'XHU0Y2E0XHU5NTQ3XHV7MmEyOTN9XHU3MWEyXHV7MmEyZmZ9XHU0ZDkxXHU5MDEyXHV7MmE1Y2J9XHU0ZDljXHV7MjBjOWN9XHU4ZmJlXHU1NWMxIl0sWyI5ZGExIiwiXHU4ZmJhXHV7MjI0YjB9XHU4ZmI5XHV7MjRhOTN9XHU0NTA5XHU3ZTdmXHU2ZjU2XHU2YWIxXHU0ZWVhXHUzNGU0XHV7'@; put 'MjhiMmN9XHV7Mjc4OWR9XHUzNzNhXHU4ZTgwXHV7MjE3ZjV9XHV7MjgwMjR9XHV7MjhiNmN9XHV7MjhiOTl9XHV7MjdhM2V9XHV7MjY2YWZ9XHUzZGViXHV7Mjc2NTV9XHV7MjNjYjd9XHV7MjU2MzV9XHV7MjU5NTZ9XHU0ZTlhXHV7MjVlODF9XHV7MjYyNTh9XHU1NmJmXHV7MjBlNmR9XHU4'@; put 'ZTBlXHU1YjZkXHV7MjNlODh9XHV7MjRjOWV9XHU2M2RlXHU2MmQwXHV7MjE3ZjZ9XHV7MjE4N2J9XHU2NTMwXHU1NjJkXHV7MjVjNGF9XHU1NDFhXHV7MjUzMTF9XHUzZGM2XHV7MjlkOTh9XHU0YzdkXHU1NjIyXHU1NjFlXHU3ZjQ5XHV7MjVlZDh9XHU1OTc1XHV7MjNkNDB9XHU4NzcwXHU0'@; put 'ZTFjXHV7MjBmZWF9XHV7MjBkNDl9XHV7MjM2YmF9XHU4MTE3XHU5ZDVlXHU4ZDE4XHU3NjNiXHU5YzQ1XHU3NjRlXHU3N2I5XHU5MzQ1XHU1NDMyXHU4MTQ4XHU4MmY3XHU1NjI1XHU4MTMyXHU4NDE4XHU4MGJkXHU1NWVhXHU3OTYyXHU1NjQzXHU1NDE2XHV7MjBlOWR9XHUzNWNlXHU1NjA1'@; put 'XHU1NWYxXHU2NmYxXHV7MjgyZTJ9XHUzNjJkXHU3NTM0XHU1NWYwXHU1NWJhXHU1NDk3XHU1NTcyXHV7MjBjNDF9XHV7MjBjOTZ9XHU1ZWQwXHV7MjUxNDh9XHV7MjBlNzZ9XHV7MjJjNjJ9Il0sWyI5ZTQwIiwiXHV7MjBlYTJ9XHU5ZWFiXHU3ZDVhXHU1NWRlXHV7MjEwNzV9XHU2MjlkXHU5'@; put 'NzZkXHU1NDk0XHU4Y2NkXHU3MWY2XHU5MTc2XHU2M2ZjXHU2M2I5XHU2M2ZlXHU1NTY5XHV7MjJiNDN9XHU5YzcyXHV7MjJlYjN9XHU1MTlhXHUzNGRmXHV7MjBkYTd9XHU1MWE3XHU1NDRkXHU1NTFlXHU1NTEzXHU3NjY2XHU4ZTJkXHV7MjY4OGF9XHU3NWIxXHU4MGI2XHU4ODA0XHU4Nzg2'@; put 'XHU4OGM3XHU4MWI2XHU4NDFjXHV7MjEwYzF9XHU0NGVjXHU3MzA0XHV7MjQ3MDZ9XHU1YjkwXHU4MzBiXHV7MjY4OTN9XHU1NjdiXHV7MjI2ZjR9XHV7MjdkMmZ9XHV7MjQxYTN9XHV7MjdkNzN9XHV7MjZlZDB9XHV7MjcyYjZ9XHU5MTcwXHV7MjExZDl9XHU5MjA4XHV7MjNjZmN9XHV7MmE2'@; put 'YTl9XHV7MjBlYWN9XHV7MjBlZjl9XHU3MjY2XHV7MjFjYTJ9XHU0NzRlXHV7MjRmYzJ9XHV7MjdmZjl9XHV7MjBmZWJ9XHU0MGZhIl0sWyI5ZWExIiwiXHU5YzVkXHU2NTFmXHV7MjJkYTB9XHU0OGYzXHV7MjQ3ZTB9XHV7MjlkN2N9XHV7MjBmZWN9XHV7MjBlMGF9XHU2MDYyXHV7Mjc1YTN9'@; put 'XHV7MjBmZWR9Il0sWyI5ZWFkIiwiXHV7MjYwNDh9XHV7MjExODd9XHU3MWEzXHU3ZThlXHU5ZDUwXHU0ZTFhXHU0ZTA0XHUzNTc3XHU1YjBkXHU2Y2IyXHU1MzY3XHUzNmFjXHUzOWRjXHU1MzdkXHUzNmE1XHV7MjQ2MTh9XHU1ODlhXHV7MjRiNmV9XHU4MjJkXHU1NDRiXHU1N2FhXHV7MjVh'@; put 'OTV9XHV7MjA5Nzl9Il0sWyI5ZWM1IiwiXHUzYTUyXHV7MjI0NjV9XHU3Mzc0XHV7MjllYWN9XHU0ZDA5XHU5YmVkXHV7MjNjZmV9XHV7MjlmMzB9XHU0YzViXHV7MjRmYTl9XHV7Mjk1OWV9XHV7MjlmZGV9XHU4NDVjXHV7MjNkYjZ9XHV7MjcyYjJ9XHV7MjY3YjN9XHV7MjM3MjB9XHU2MzJl'@; put 'XHU3ZDI1XHV7MjNlZjd9XHV7MjNlMmN9XHUzYTJhXHU5MDA4XHU1MmNjXHUzZTc0XHUzNjdhXHU0NWU5XHV7MjA0OGV9XHU3NjQwXHU1YWYwXHV7MjBlYjZ9XHU3ODdhXHV7MjdmMmV9XHU1OGE3XHU0MGJmXHU1NjdjXHU5YjhiXHU1ZDc0XHU3NjU0XHV7MmE0MzR9XHU5ZTg1XHU0Y2UxXHU3'@; put 'NWY5XHUzN2ZiXHU2MTE5XHV7MjMwZGF9XHV7MjQzZjJ9Il0sWyI5ZWY1IiwiXHU1NjVkXHV7MjEyYTl9XHU1N2E3XHV7MjQ5NjN9XHV7MjllMDZ9XHU1MjM0XHV7MjcwYWV9XHUzNWFkXHU2YzRhXHU5ZDdjIl0sWyI5ZjQwIiwiXHU3YzU2XHU5YjM5XHU1N2RlXHV7MjE3NmN9XHU1YzUzXHU2'@; put 'NGQzXHV7Mjk0ZDB9XHV7MjYzMzV9XHV7MjcxNjR9XHU4NmFkXHV7MjBkMjh9XHV7MjZkMjJ9XHV7MjRhZTJ9XHV7MjBkNzF9Il0sWyI5ZjRmIiwiXHU1MWZlXHV7MjFmMGZ9XHU1ZDhlXHU5NzAzXHV7MjFkZDF9XHU5ZTgxXHU5MDRjXHU3YjFmXHU5YjAyXHU1Y2QxXHU3YmEzXHU2MjY4XHU2'@; put 'MzM1XHU5YWZmXHU3YmNmXHU5YjJhXHU3YzdlXHU5YjJlXHU3YzQyXHU3Yzg2XHU5YzE1XHU3YmZjXHU5YjA5XHU5ZjE3XHU5YzFiXHV7MjQ5M2V9XHU5ZjVhXHU1NTczXHU1YmMzXHU0ZmZkXHU5ZTk4XHU0ZmYyXHU1MjYwXHUzZTA2XHU1MmQxXHU1NzY3XHU1MDU2XHU1OWI3XHU1ZTEyXHU5'@; put 'N2M4XHU5ZGFiXHU4ZjVjXHU1NDY5XHU5N2I0XHU5OTQwXHU5N2JhXHU1MzJjXHU2MTMwIl0sWyI5ZmExIiwiXHU2OTJjXHU1M2RhXHU5YzBhXHU5ZDAyXHU0YzNiXHU5NjQxXHU2OTgwXHU1MGE2XHU3NTQ2XHV7MjE3NmR9XHU5OWRhXHU1MjczIl0sWyI5ZmFlIiwiXHU5MTU5XHU5NjgxXHU5'@; put 'MTVjIl0sWyI5ZmIyIiwiXHU5MTUxXHV7MjhlOTd9XHU2MzdmXHV7MjZkMjN9XHU2YWNhXHU1NjExXHU5MThlXHU3NTdhXHU2Mjg1XHV7MjAzZmN9XHU3MzRmXHU3YzcwXHV7MjVjMjF9XHV7MjNjZmR9Il0sWyI5ZmMxIiwiXHV7MjQ5MTl9XHU3NmQ2XHU5YjlkXHU0ZTJhXHV7MjBjZDR9XHU4'@; put 'M2JlXHU4ODQyIl0sWyI5ZmM5IiwiXHU1YzRhXHU2OWMwXHU1MGVkXHU1NzdhXHU1MjFmXHU1ZGY1XHU0ZWNlXHU2YzMxXHV7MjAxZjJ9XHU0ZjM5XHU1NDljXHU1NGRhXHU1MjlhXHU4ZDgyXHUzNWZlXHU1ZjBjXHUzNWYzIl0sWyI5ZmRiIiwiXHU2YjUyXHU5MTdjXHU5ZmE1XHU5Yjk3XHU5'@; put 'ODJlXHU5OGI0XHU5YWJhXHU5ZWE4XHU5ZTg0XHU3MTdhXHU3YjE0Il0sWyI5ZmU3IiwiXHU2YmZhXHU4ODE4XHU3Zjc4Il0sWyI5ZmViIiwiXHU1NjIwXHV7MmE2NGF9XHU4ZTc3XHU5ZjUzIl0sWyI5ZmYwIiwiXHU4ZGQ0XHU4ZTRmXHU5ZTFjXHU4ZTAxXHU2MjgyXHV7MjgzN2R9XHU4ZTI4'@; put 'XHU4ZTc1XHU3YWQzXHV7MjRhNzd9XHU3YTNlXHU3OGQ4XHU2Y2VhXHU4YTY3XHU3NjA3Il0sWyJhMDQwIiwiXHV7MjhhNWF9XHU5ZjI2XHU2Y2NlXHU4N2Q2XHU3NWMzXHV7MmEyYjJ9XHU3ODUzXHV7MmY4NDB9XHU4ZDBjXHU3MmUyXHU3MzcxXHU4YjJkXHU3MzAyXHU3NGYxXHU4Y2ViXHV7'@; put 'MjRhYmJ9XHU4NjJmXHU1ZmJhXHU4OGEwXHU0NGI3Il0sWyJhMDU1IiwiXHV7MjE4M2J9XHV7MjZlMDV9Il0sWyJhMDU4IiwiXHU4YTdlXHV7MjI1MWJ9Il0sWyJhMDViIiwiXHU2MGZkXHU3NjY3XHU5YWQ3XHU5ZDQ0XHU5MzZlXHU5YjhmXHU4N2Y1Il0sWyJhMDYzIiwiXHU4ODBmXHU4Y2Y3'@; put 'XHU3MzJjXHU5NzIxXHU5YmIwXHUzNWQ2XHU3MmIyXHU0YzA3XHU3YzUxXHU5OTRhXHV7MjYxNTl9XHU2MTU5XHU0YzA0XHU5ZTk2XHU2MTdkIl0sWyJhMDczIiwiXHU1NzVmXHU2MTZmXHU2MmE2XHU2MjM5XHU2MmNlXHUzYTVjXHU2MWUyXHU1M2FhXHV7MjMzZjV9XHU2MzY0XHU2ODAyXHUz'@; put 'NWQyIl0sWyJhMGExIiwiXHU1ZDU3XHV7MjhiYzJ9XHU4ZmRhXHV7MjhlMzl9Il0sWyJhMGE2IiwiXHU1MGQ5XHV7MjFkNDZ9XHU3OTA2XHU1MzMyXHU5NjM4XHV7MjBmM2J9XHU0MDY1Il0sWyJhMGFlIiwiXHU3N2ZlIl0sWyJhMGIwIiwiXHU3Y2MyXHV7MjVmMWF9XHU3Y2RhXHU3YTJkXHU4'@; put 'MDY2XHU4MDYzXHU3ZDRkXHU3NTA1XHU3NGYyXHU4OTk0XHU4MjFhXHU2NzBjXHU4MDYyXHV7Mjc0ODZ9XHU4MDViXHU3NGYwXHU4MTAzXHU3NzI0XHU4OTg5XHV7MjY3Y2N9XHU3NTUzXHV7MjZlZDF9XHU4N2E5XHU4N2NlXHU4MWM4XHU4NzhjXHU4YTQ5XHU4Y2FkXHU4YjQzXHU3NzJiXHU3'@; put 'NGY4XHU4NGRhXHUzNjM1XHU2OWIyXHU4ZGE2Il0sWyJhMGQ0IiwiXHU4OWE5XHU3NDY4XHU2ZGI5XHU4N2MxXHV7MjQwMTF9XHU3NGU3XHUzZGRiXHU3MTc2XHU2MGE0XHU2MTljXHUzY2QxXHU3MTYyXHU2MDc3Il0sWyJhMGUyIiwiXHU3ZjcxXHV7MjhiMmR9XHU3MjUwXHU2MGU5XHU0Yjdl'@; put 'XHU1MjIwXHUzYzE4XHV7MjNjYzd9XHV7MjVlZDd9XHV7Mjc2NTZ9XHV7MjU1MzF9XHV7MjE5NDR9XHV7MjEyZmV9XHV7Mjk5MDN9XHV7MjZkZGN9XHV7MjcwYWR9XHU1Y2MxXHV7MjYxYWR9XHV7MjhhMGZ9XHV7MjM2Nzd9XHV7MjAwZWV9XHV7MjY4NDZ9XHV7MjRmMGV9XHU0NTYyXHU1YjFm'@; put 'XHV7MjYzNGN9XHU5ZjUwXHU5ZWE2XHV7MjYyNmJ9Il0sWyJhM2MwIiwiXHUyNDAwIiwzMSwiXHUyNDIxIl0sWyJjNmExIiwiXHUyNDYwIiw5LCJcdTI0NzQiLDksIlx1MjE3MCIsOSwiXHU0ZTM2XHU0ZTNmXHU0ZTg1XHU0ZWEwXHU1MTgyXHU1MTk2XHU1MWFiXHU1MmY5XHU1MzM4XHU1MzY5'@; put 'XHU1M2I2XHU1OTBhXHU1YjgwXHU1ZGRiXHUyZjMzXHU1ZTdmXHU1ZWY0XHU1ZjUwXHU1ZjYxXHU2NTM0XHU2NWUwXHU3NTkyXHU3Njc2XHU4ZmI1XHU5NmI2XHhhOFx1MDJjNlx1MzBmZFx1MzBmZVx1MzA5ZFx1MzA5ZVx1MzAwM1x1NGVkZFx1MzAwNVx1MzAwNlx1MzAwN1x1MzBmY1x1ZmYz'@; put 'Ylx1ZmYzZFx1MjczZFx1MzA0MSIsMjNdLFsiYzc0MCIsIlx1MzA1OSIsNTgsIlx1MzBhMVx1MzBhMlx1MzBhM1x1MzBhNCJdLFsiYzdhMSIsIlx1MzBhNSIsODEsIlx1MDQxMCIsNSwiXHUwNDAxXHUwNDE2Iiw0XSxbImM4NDAiLCJcdTA0MWIiLDI2LCJcdTA0NTFcdTA0MzYiLDI1LCJcdTIx'@; put 'ZTdcdTIxYjhcdTIxYjlcdTMxY2ZcdXsyMDBjY31cdTRlNWFcdXsyMDA4YX1cdTUyMDJcdTQ0OTEiXSxbImM4YTEiLCJcdTlmYjBcdTUxODhcdTlmYjFcdXsyNzYwN30iXSxbImM4Y2QiLCJcdWZmZTJcdWZmZTRcdWZmMDdcdWZmMDJcdTMyMzFcdTIxMTZcdTIxMjFcdTMwOWJcdTMwOWNcdTJl'@; put 'ODBcdTJlODRcdTJlODZcdTJlODdcdTJlODhcdTJlOGFcdTJlOGNcdTJlOGRcdTJlOTVcdTJlOWNcdTJlOWRcdTJlYTVcdTJlYTdcdTJlYWFcdTJlYWNcdTJlYWVcdTJlYjZcdTJlYmNcdTJlYmVcdTJlYzZcdTJlY2FcdTJlY2NcdTJlY2RcdTJlY2ZcdTJlZDZcdTJlZDdcdTJlZGVcdTJlZTMi'@; put 'XSxbImM4ZjUiLCJcdTAyODNcdTAyNTBcdTAyNWJcdTAyNTRcdTAyNzVcdTAxNTNceGY4XHUwMTRiXHUwMjhhXHUwMjZhIl0sWyJmOWZlIiwiXHVmZmVkIl0sWyJmYTQwIiwiXHV7MjA1NDd9XHU5MmRiXHV7MjA1ZGZ9XHV7MjNmYzV9XHU4NTRjXHU0MmI1XHU3M2VmXHU1MWI1XHUzNjQ5XHV7'@; put 'MjQ5NDJ9XHV7Mjg5ZTR9XHU5MzQ0XHV7MjE5ZGJ9XHU4MmVlXHV7MjNjYzh9XHU3ODNjXHU2NzQ0XHU2MmRmXHV7MjQ5MzN9XHV7Mjg5YWF9XHV7MjAyYTB9XHV7MjZiYjN9XHV7MjEzMDV9XHU0ZmFiXHV7MjI0ZWR9XHU1MDA4XHV7MjZkMjl9XHV7MjdhODR9XHV7MjM2MDB9XHV7MjRhYjF9'@; put 'XHV7MjI1MTN9XHU1MDI5XHV7MjAzN2V9XHU1ZmE0XHV7MjAzODB9XHV7MjAzNDd9XHU2ZWRiXHV7MjA0MWZ9XHU1MDdkXHU1MTAxXHUzNDdhXHU1MTBlXHU5ODZjXHUzNzQzXHU4NDE2XHV7MjQ5YTR9XHV7MjA0ODd9XHU1MTYwXHV7MjMzYjR9XHU1MTZhXHV7MjBiZmZ9XHV7MjIwZmN9XHV7'@; put 'MjAyZTV9XHV7MjI1MzB9XHV7MjA1OGV9XHV7MjMyMzN9XHV7MjE5ODN9XHU1YjgyXHU4NzdkXHV7MjA1YjN9XHV7MjNjOTl9XHU1MWIyXHU1MWI4Il0sWyJmYWExIiwiXHU5ZDM0XHU1MWM5XHU1MWNmXHU1MWQxXHUzY2RjXHU1MWQzXHV7MjRhYTZ9XHU1MWIzXHU1MWUyXHU1MzQyXHU1MWVk'@; put 'XHU4M2NkXHU2OTNlXHV7MjM3MmR9XHU1ZjdiXHU1MjBiXHU1MjI2XHU1MjNjXHU1MmI1XHU1MjU3XHU1Mjk0XHU1MmI5XHU1MmM1XHU3YzE1XHU4NTQyXHU1MmUwXHU4NjBkXHV7MjZiMTN9XHU1MzA1XHV7MjhhZGV9XHU1NTQ5XHU2ZWQ5XHV7MjNmODB9XHV7MjA5NTR9XHV7MjNmZWN9XHU1'@; put 'MzMzXHU1MzQ0XHV7MjBiZTJ9XHU2Y2NiXHV7MjE3MjZ9XHU2ODFiXHU3M2Q1XHU2MDRhXHUzZWFhXHUzOGNjXHV7MjE2ZTh9XHU3MWRkXHU0NGEyXHU1MzZkXHU1Mzc0XHV7Mjg2YWJ9XHU1MzdlXHU1MzdmXHV7MjE1OTZ9XHV7MjE2MTN9XHU3N2U2XHU1MzkzXHV7MjhhOWJ9XHU1M2EwXHU1'@; put 'M2FiXHU1M2FlXHU3M2E3XHV7MjU3NzJ9XHUzZjU5XHU3MzljXHU1M2MxXHU1M2M1XHU2YzQ5XHU0ZTQ5XHU1N2ZlXHU1M2Q5XHUzYWFiXHV7MjBiOGZ9XHU1M2UwXHV7MjNmZWJ9XHV7MjJkYTN9XHU1M2Y2XHV7MjBjNzd9XHU1NDEzXHU3MDc5XHU1NTJiXHU2NjU3XHU2ZDViXHU1NDZkXHV7'@; put 'MjZiNTN9XHV7MjBkNzR9XHU1NTVkXHU1NDhmXHU1NGE0XHU0N2E2XHV7MjE3MGR9XHV7MjBlZGR9XHUzZGI0XHV7MjBkNGR9Il0sWyJmYjQwIiwiXHV7Mjg5YmN9XHV7MjI2OTh9XHU1NTQ3XHU0Y2VkXHU1NDJmXHU3NDE3XHU1NTg2XHU1NWE5XHU1NjA1XHV7MjE4ZDd9XHV7MjQwM2F9XHU0'@; put 'NTUyXHV7MjQ0MzV9XHU2NmIzXHV7MjEwYjR9XHU1NjM3XHU2NmNkXHV7MjMyOGF9XHU2NmE0XHU2NmFkXHU1NjRkXHU1NjRmXHU3OGYxXHU1NmYxXHU5Nzg3XHU1M2ZlXHU1NzAwXHU1NmVmXHU1NmVkXHV7MjhiNjZ9XHUzNjIzXHV7MjEyNGZ9XHU1NzQ2XHV7MjQxYTV9XHU2YzZlXHU3MDhi'@; put 'XHU1NzQyXHUzNmIxXHV7MjZjN2V9XHU1N2U2XHV7MjE0MTZ9XHU1ODAzXHV7MjE0NTR9XHV7MjQzNjN9XHU1ODI2XHV7MjRiZjV9XHU1ODVjXHU1OGFhXHUzNTYxXHU1OGUwXHU1OGRjXHV7MjEyM2N9XHU1OGZiXHU1YmZmXHU1NzQzXHV7MmExNTB9XHV7MjQyNzh9XHU5M2QzXHUzNWExXHU1'@; put 'OTFmXHU2OGE2XHUzNmMzXHU2ZTU5Il0sWyJmYmExIiwiXHV7MjE2M2V9XHU1YTI0XHU1NTUzXHV7MjE2OTJ9XHU4NTA1XHU1OWM5XHV7MjBkNGV9XHV7MjZjODF9XHV7MjZkMmF9XHV7MjE3ZGN9XHU1OWQ5XHV7MjE3ZmJ9XHV7MjE3YjJ9XHV7MjZkYTZ9XHU2ZDcxXHV7MjE4Mjh9XHV7MjE2'@; put 'ZDV9XHU1OWY5XHV7MjZlNDV9XHU1YWFiXHU1YTYzXHUzNmU2XHV7MjQ5YTl9XHU1YTc3XHUzNzA4XHU1YTk2XHU3NDY1XHU1YWQzXHV7MjZmYTF9XHV7MjI1NTR9XHUzZDg1XHV7MjE5MTF9XHUzNzMyXHV7MjE2Yjh9XHU1ZTgzXHU1MmQwXHU1Yjc2XHU2NTg4XHU1YjdjXHV7MjdhMGV9XHU0'@; put 'MDA0XHU0ODVkXHV7MjAyMDR9XHU1YmQ1XHU2MTYwXHV7MjFhMzR9XHV7MjU5Y2N9XHV7MjA1YTV9XHU1YmYzXHU1YjlkXHU0ZDEwXHU1YzA1XHV7MjFiNDR9XHU1YzEzXHU3M2NlXHU1YzE0XHV7MjFjYTV9XHV7MjZiMjh9XHU1YzQ5XHU0OGRkXHU1Yzg1XHU1Y2U5XHU1Y2VmXHU1ZDhiXHV7'@; put 'MjFkZjl9XHV7MjFlMzd9XHU1ZDEwXHU1ZDE4XHU1ZDQ2XHV7MjFlYTR9XHU1Y2JhXHU1ZGQ3XHU4MmZjXHUzODJkXHV7MjQ5MDF9XHV7MjIwNDl9XHV7MjIxNzN9XHU4Mjg3XHUzODM2XHUzYmMyXHU1ZTJlXHU2YThhXHU1ZTc1XHU1ZTdhXHV7MjQ0YmN9XHV7MjBjZDN9XHU1M2E2XHU0ZWI3'@; put 'XHU1ZWQwXHU1M2E4XHV7MjE3NzF9XHU1ZTA5XHU1ZWY0XHV7Mjg0ODJ9Il0sWyJmYzQwIiwiXHU1ZWY5XHU1ZWZiXHUzOGEwXHU1ZWZjXHU2ODNlXHU5NDFiXHU1ZjBkXHV7MjAxYzF9XHV7MmY4OTR9XHUzYWRlXHU0OGFlXHV7MjEzM2F9XHU1ZjNhXHV7MjY4ODh9XHV7MjIzZDB9XHU1ZjU4'@; put 'XHV7MjI0NzF9XHU1ZjYzXHU5N2JkXHV7MjZlNmV9XHU1ZjcyXHU5MzQwXHV7MjhhMzZ9XHU1ZmE3XHU1ZGI2XHUzZDVmXHV7MjUyNTB9XHV7MjFmNmF9XHV7MjcwZjh9XHV7MjI2Njh9XHU5MWQ2XHV7MjAyOWV9XHV7MjhhMjl9XHU2MDMxXHU2Njg1XHV7MjE4Nzd9XHUzOTYzXHUzZGM3XHUz'@; put 'NjM5XHU1NzkwXHV7MjI3YjR9XHU3OTcxXHUzZTQwXHU2MDllXHU2MGE0XHU2MGIzXHV7MjQ5ODJ9XHV7MjQ5OGZ9XHV7MjdhNTN9XHU3NGE0XHU1MGUxXHU1YWEwXHU2MTY0XHU4NDI0XHU2MTQyXHV7MmY4YTZ9XHV7MjZlZDJ9XHU2MTgxXHU1MWY0XHV7MjA2NTZ9XHU2MTg3XHU1YmFhXHV7'@; put 'MjNmYjd9Il0sWyJmY2ExIiwiXHV7MjI4NWZ9XHU2MWQzXHV7MjhiOWR9XHV7Mjk5NWR9XHU2MWQwXHUzOTMyXHV7MjI5ODB9XHV7MjI4YzF9XHU2MDIzXHU2MTVjXHU2NTFlXHU2MzhiXHV7MjAxMTh9XHU2MmM1XHV7MjE3NzB9XHU2MmQ1XHV7MjJlMGR9XHU2MzZjXHV7MjQ5ZGZ9XHUzYTE3'@; put 'XHU2NDM4XHU2M2Y4XHV7MjEzOGV9XHV7MjE3ZmN9XHU2NDkwXHU2ZjhhXHV7MjJlMzZ9XHU5ODE0XHV7MjQwOGN9XHV7MjU3MWR9XHU2NGUxXHU2NGU1XHU5NDdiXHUzYTY2XHU2NDNhXHUzYTU3XHU2NTRkXHU2ZjE2XHV7MjRhMjh9XHV7MjRhMjN9XHU2NTg1XHU2NTZkXHU2NTVmXHV7MjMw'@; put 'N2V9XHU2NWI1XHV7MjQ5NDB9XHU0YjM3XHU2NWQxXHU0MGQ4XHV7MjE4Mjl9XHU2NWUwXHU2NWUzXHU1ZmRmXHV7MjM0MDB9XHU2NjE4XHV7MjMxZjd9XHV7MjMxZjh9XHU2NjQ0XHV7MjMxYTR9XHV7MjMxYTV9XHU2NjRiXHV7MjBlNzV9XHU2NjY3XHV7MjUxZTZ9XHU2NjczXHU2Njc0XHV7'@; put 'MjFlM2R9XHV7MjMyMzF9XHV7Mjg1ZjR9XHV7MjMxYzh9XHV7MjUzMTN9XHU3N2M1XHV7MjI4Zjd9XHU5OWE0XHU2NzAyXHV7MjQzOWN9XHV7MjRhMjF9XHUzYjJiXHU2OWZhXHV7MjM3YzJ9XHU2NzVlXHU2NzY3XHU2NzYyXHV7MjQxY2R9XHV7MjkwZWR9XHU2N2Q3XHU0NGU5XHU2ODIyXHU2'@; put 'ZTUwXHU5MjNjXHU2ODAxXHV7MjMzZTZ9XHV7MjZkYTB9XHU2ODVkIl0sWyJmZDQwIiwiXHV7MjM0NmZ9XHU2OWUxXHU2YTBiXHV7MjhhZGZ9XHU2OTczXHU2OGMzXHV7MjM1Y2R9XHU2OTAxXHU2OTAwXHUzZDMyXHUzYTAxXHV7MjM2M2N9XHUzYjgwXHU2N2FjXHU2OTYxXHV7MjhhNGF9XHU0'@; put 'MmZjXHU2OTM2XHU2OTk4XHUzYmExXHV7MjAzYzl9XHU4MzYzXHU1MDkwXHU2OWY5XHV7MjM2NTl9XHV7MjIxMmF9XHU2YTQ1XHV7MjM3MDN9XHU2YTlkXHUzYmYzXHU2N2IxXHU2YWM4XHV7MjkxOWN9XHUzYzBkXHU2YjFkXHV7MjA5MjN9XHU2MGRlXHU2YjM1XHU2Yjc0XHV7MjI3Y2R9XHU2'@; put 'ZWI1XHV7MjNhZGJ9XHV7MjAzYjV9XHV7MjE5NTh9XHUzNzQwXHU1NDIxXHV7MjNiNWF9XHU2YmUxXHV7MjNlZmN9XHU2YmRjXHU2YzM3XHV7MjI0OGJ9XHV7MjQ4ZjF9XHV7MjZiNTF9XHU2YzVhXHU4MjI2XHU2Yzc5XHV7MjNkYmN9XHU0NGM1XHV7MjNkYmR9XHV7MjQxYTR9XHV7MjQ5MGN9'@; put 'XHV7MjQ5MDB9Il0sWyJmZGExIiwiXHV7MjNjYzl9XHUzNmU1XHUzY2ViXHV7MjBkMzJ9XHU5YjgzXHV7MjMxZjl9XHV7MjI0OTF9XHU3ZjhmXHU2ODM3XHV7MjZkMjV9XHV7MjZkYTF9XHV7MjZkZWJ9XHU2ZDk2XHU2ZDVjXHU2ZTdjXHU2ZjA0XHV7MjQ5N2Z9XHV7MjQwODV9XHV7MjZlNzJ9'@; put 'XHU4NTMzXHV7MjZmNzR9XHU1MWM3XHU2YzljXHU2ZTFkXHU4NDJlXHV7MjhiMjF9XHU2ZTJmXHV7MjNlMmZ9XHU3NDUzXHV7MjNmODJ9XHU3OWNjXHU2ZTRmXHU1YTkxXHV7MjMwNGJ9XHU2ZmY4XHUzNzBkXHU2ZjlkXHV7MjNlMzB9XHU2ZWZhXHV7MjE0OTd9XHV7MjQwM2R9XHU0NTU1XHU5'@; put 'M2YwXHU2ZjQ0XHU2ZjVjXHUzZDRlXHU2Zjc0XHV7MjkxNzB9XHUzZDNiXHU2ZjlmXHV7MjQxNDR9XHU2ZmQzXHV7MjQwOTF9XHV7MjQxNTV9XHV7MjQwMzl9XHV7MjNmZjB9XHV7MjNmYjR9XHV7MjQxM2Z9XHU1MWRmXHV7MjQxNTZ9XHV7MjQxNTd9XHV7MjQxNDB9XHV7MjYxZGR9XHU3MDRi'@; put 'XHU3MDdlXHU3MGE3XHU3MDgxXHU3MGNjXHU3MGQ1XHU3MGQ2XHU3MGRmXHU0MTA0XHUzZGU4XHU3MWI0XHU3MTk2XHV7MjQyNzd9XHU3MTJiXHU3MTQ1XHU1YTg4XHU3MTRhXHU3MTZlXHU1YzljXHV7MjQzNjV9XHU3MTRmXHU5MzYyXHV7MjQyYzF9XHU3MTJjXHV7MjQ0NWF9XHV7MjRhMjd9'@; put 'XHV7MjRhMjJ9XHU3MWJhXHV7MjhiZTh9XHU3MGJkXHU3MjBlIl0sWyJmZTQwIiwiXHU5NDQyXHU3MjE1XHU1OTExXHU5NDQzXHU3MjI0XHU5MzQxXHV7MjU2MDV9XHU3MjJlXHU3MjQwXHV7MjQ5NzR9XHU2OGJkXHU3MjU1XHU3MjU3XHUzZTU1XHV7MjMwNDR9XHU2ODBkXHU2ZjNkXHU3Mjgy'@; put 'XHU3MzJhXHU3MzJiXHV7MjQ4MjN9XHV7Mjg4MmJ9XHU0OGVkXHV7Mjg4MDR9XHU3MzI4XHU3MzJlXHU3M2NmXHU3M2FhXHV7MjBjM2F9XHV7MjZhMmV9XHU3M2M5XHU3NDQ5XHV7MjQxZTJ9XHV7MjE2ZTd9XHV7MjRhMjR9XHU2NjIzXHUzNmM1XHV7MjQ5Yjd9XHV7MjQ5OGR9XHV7MjQ5ZmJ9'@; put 'XHU3M2Y3XHU3NDE1XHU2OTAzXHV7MjRhMjZ9XHU3NDM5XHV7MjA1YzN9XHUzZWQ3XHU3NDVjXHV7MjI4YWR9XHU3NDYwXHV7MjhlYjJ9XHU3NDQ3XHU3M2U0XHU3NDc2XHU4M2I5XHU3NDZjXHUzNzMwXHU3NDc0XHU5M2YxXHU2YTJjXHU3NDgyXHU0OTUzXHV7MjRhOGN9Il0sWyJmZWExIiwi'@; put 'XHV7MjQxNWZ9XHV7MjRhNzl9XHV7MjhiOGZ9XHU1YjQ2XHV7MjhjMDN9XHV7MjE4OWV9XHU3NGM4XHV7MjE5ODh9XHU3NTBlXHU3NGU5XHU3NTFlXHV7MjhlZDl9XHV7MjFhNGJ9XHU1YmQ3XHV7MjhlYWN9XHU5Mzg1XHU3NTRkXHU3NTRhXHU3NTY3XHU3NTZlXHV7MjRmODJ9XHUzZjA0XHV7'@; put 'MjRkMTN9XHU3NThlXHU3NDVkXHU3NTllXHU3NWI0XHU3NjAyXHU3NjJjXHU3NjUxXHU3NjRmXHU3NjZmXHU3Njc2XHV7MjYzZjV9XHU3NjkwXHU4MWVmXHUzN2Y4XHV7MjY5MTF9XHV7MjY5MGV9XHU3NmExXHU3NmE1XHU3NmI3XHU3NmNjXHV7MjZmOWZ9XHU4NDYyXHV7MjUwOWR9XHV7MjUx'@; put 'N2R9XHV7MjFlMWN9XHU3NzFlXHU3NzI2XHU3NzQwXHU2NGFmXHV7MjUyMjB9XHU3NzU4XHV7MjMyYWN9XHU3N2FmXHV7Mjg5NjR9XHV7Mjg5Njh9XHV7MjE2YzF9XHU3N2Y0XHU3ODA5XHV7MjEzNzZ9XHV7MjRhMTJ9XHU2OGNhXHU3OGFmXHU3OGM3XHU3OGQzXHU5NmE1XHU3OTJlXHV7MjU1'@; put 'ZTB9XHU3OGQ3XHU3OTM0XHU3OGIxXHV7Mjc2MGN9XHU4ZmI4XHU4ODg0XHV7MjhiMmJ9XHV7MjYwODN9XHV7MjI2MWN9XHU3OTg2XHU4OTAwXHU2OTAyXHU3OTgwXHV7MjU4NTd9XHU3OTlkXHV7MjdiMzl9XHU3OTNjXHU3OWE5XHU2ZTJhXHV7MjcxMjZ9XHUzZWE4XHU3OWM2XHV7MjkxMGR9'@; put 'XHU3OWQ0Il1dJyl9LDc0NDg4OmNlPT57InVzZSBzdHJpY3QiO2NlLmV4cG9ydHM9SlNPTi5wYXJzZSgnW1siMCIsIlxcdTAwMDAiLDEyNywiXHUyMGFjIl0sWyI4MTQwIiwiXHU0ZTAyXHU0ZTA0XHU0ZTA1XHU0ZTA2XHU0ZTBmXHU0ZTEyXHU0ZTE3XHU0ZTFmXHU0ZTIwXHU0ZTIxXHU0ZTIz'@; put 'XHU0ZTI2XHU0ZTI5XHU0ZTJlXHU0ZTJmXHU0ZTMxXHU0ZTMzXHU0ZTM1XHU0ZTM3XHU0ZTNjXHU0ZTQwXHU0ZTQxXHU0ZTQyXHU0ZTQ0XHU0ZTQ2XHU0ZTRhXHU0ZTUxXHU0ZTU1XHU0ZTU3XHU0ZTVhXHU0ZTViXHU0ZTYyXHU0ZTYzXHU0ZTY0XHU0ZTY1XHU0ZTY3XHU0ZTY4XHU0ZTZhIiw1'@; put 'LCJcdTRlNzJcdTRlNzQiLDksIlx1NGU3ZiIsNiwiXHU0ZTg3XHU0ZThhIl0sWyI4MTgwIiwiXHU0ZTkwXHU0ZTk2XHU0ZTk3XHU0ZTk5XHU0ZTljXHU0ZTlkXHU0ZTllXHU0ZWEzXHU0ZWFhXHU0ZWFmXHU0ZWIwXHU0ZWIxXHU0ZWI0XHU0ZWI2XHU0ZWI3XHU0ZWI4XHU0ZWI5XHU0ZWJjXHU0'@; put 'ZWJkXHU0ZWJlXHU0ZWM4XHU0ZWNjXHU0ZWNmXHU0ZWQwXHU0ZWQyXHU0ZWRhXHU0ZWRiXHU0ZWRjXHU0ZWUwXHU0ZWUyXHU0ZWU2XHU0ZWU3XHU0ZWU5XHU0ZWVkXHU0ZWVlXHU0ZWVmXHU0ZWYxXHU0ZWY0XHU0ZWY4XHU0ZWY5XHU0ZWZhXHU0ZWZjXHU0ZWZlXHU0ZjAwXHU0ZjAyIiw2LCJc'@; put 'dTRmMGJcdTRmMGNcdTRmMTIiLDQsIlx1NGYxY1x1NGYxZFx1NGYyMVx1NGYyM1x1NGYyOFx1NGYyOVx1NGYyY1x1NGYyZFx1NGYyZVx1NGYzMVx1NGYzM1x1NGYzNVx1NGYzN1x1NGYzOVx1NGYzYlx1NGYzZSIsNCwiXHU0ZjQ0XHU0ZjQ1XHU0ZjQ3Iiw1LCJcdTRmNTJcdTRmNTRcdTRmNTZc'@; put 'dTRmNjFcdTRmNjJcdTRmNjZcdTRmNjhcdTRmNmFcdTRmNmJcdTRmNmRcdTRmNmVcdTRmNzFcdTRmNzJcdTRmNzVcdTRmNzdcdTRmNzhcdTRmNzlcdTRmN2FcdTRmN2RcdTRmODBcdTRmODFcdTRmODJcdTRmODVcdTRmODZcdTRmODdcdTRmOGFcdTRmOGNcdTRmOGVcdTRmOTBcdTRmOTJcdTRm'@; put 'OTNcdTRmOTVcdTRmOTZcdTRmOThcdTRmOTlcdTRmOWFcdTRmOWNcdTRmOWVcdTRmOWZcdTRmYTFcdTRmYTIiXSxbIjgyNDAiLCJcdTRmYTRcdTRmYWJcdTRmYWRcdTRmYjAiLDQsIlx1NGZiNiIsOCwiXHU0ZmMwXHU0ZmMxXHU0ZmMyXHU0ZmM2XHU0ZmM3XHU0ZmM4XHU0ZmM5XHU0ZmNiXHU0'@; put 'ZmNjXHU0ZmNkXHU0ZmQyIiw0LCJcdTRmZDlcdTRmZGJcdTRmZTBcdTRmZTJcdTRmZTRcdTRmZTVcdTRmZTdcdTRmZWJcdTRmZWNcdTRmZjBcdTRmZjJcdTRmZjRcdTRmZjVcdTRmZjZcdTRmZjdcdTRmZjlcdTRmZmJcdTRmZmNcdTRmZmRcdTRmZmYiLDExXSxbIjgyODAiLCJcdTUwMGJcdTUw'@; put 'MGVcdTUwMTBcdTUwMTFcdTUwMTNcdTUwMTVcdTUwMTZcdTUwMTdcdTUwMWJcdTUwMWRcdTUwMWVcdTUwMjBcdTUwMjJcdTUwMjNcdTUwMjRcdTUwMjdcdTUwMmJcdTUwMmYiLDEwLCJcdTUwM2JcdTUwM2RcdTUwM2ZcdTUwNDBcdTUwNDFcdTUwNDJcdTUwNDRcdTUwNDVcdTUwNDZcdTUwNDlc'@; put 'dTUwNGFcdTUwNGJcdTUwNGRcdTUwNTAiLDQsIlx1NTA1Nlx1NTA1N1x1NTA1OFx1NTA1OVx1NTA1Ylx1NTA1ZCIsNywiXHU1MDY2Iiw1LCJcdTUwNmQiLDgsIlx1NTA3OFx1NTA3OVx1NTA3YVx1NTA3Y1x1NTA3ZFx1NTA4MVx1NTA4Mlx1NTA4M1x1NTA4NFx1NTA4Nlx1NTA4N1x1NTA4OVx1'@; put 'NTA4YVx1NTA4Ylx1NTA4Y1x1NTA4ZSIsMjAsIlx1NTBhNFx1NTBhNlx1NTBhYVx1NTBhYlx1NTBhZCIsNCwiXHU1MGIzIiw2LCJcdTUwYmMiXSxbIjgzNDAiLCJcdTUwYmQiLDE3LCJcdTUwZDAiLDUsIlx1NTBkN1x1NTBkOFx1NTBkOVx1NTBkYiIsMTAsIlx1NTBlOFx1NTBlOVx1NTBlYVx1'@; put 'NTBlYlx1NTBlZlx1NTBmMFx1NTBmMVx1NTBmMlx1NTBmNFx1NTBmNiIsNCwiXHU1MGZjIiw5LCJcdTUxMDgiXSxbIjgzODAiLCJcdTUxMDlcdTUxMGFcdTUxMGMiLDUsIlx1NTExMyIsMTMsIlx1NTEyMiIsMjgsIlx1NTE0Mlx1NTE0N1x1NTE0YVx1NTE0Y1x1NTE0ZVx1NTE0Zlx1NTE1MFx1'@; put 'NTE1Mlx1NTE1M1x1NTE1N1x1NTE1OFx1NTE1OVx1NTE1Ylx1NTE1ZCIsNCwiXHU1MTYzXHU1MTY0XHU1MTY2XHU1MTY3XHU1MTY5XHU1MTZhXHU1MTZmXHU1MTcyXHU1MTdhXHU1MTdlXHU1MTdmXHU1MTgzXHU1MTg0XHU1MTg2XHU1MTg3XHU1MThhXHU1MThiXHU1MThlXHU1MThmXHU1MTkw'@; put 'XHU1MTkxXHU1MTkzXHU1MTk0XHU1MTk4XHU1MTlhXHU1MTlkXHU1MTllXHU1MTlmXHU1MWExXHU1MWEzXHU1MWE2Iiw0LCJcdTUxYWRcdTUxYWVcdTUxYjRcdTUxYjhcdTUxYjlcdTUxYmFcdTUxYmVcdTUxYmZcdTUxYzFcdTUxYzJcdTUxYzNcdTUxYzVcdTUxYzhcdTUxY2FcdTUxY2RcdTUx'@; put 'Y2VcdTUxZDBcdTUxZDIiLDVdLFsiODQ0MCIsIlx1NTFkOFx1NTFkOVx1NTFkYVx1NTFkY1x1NTFkZVx1NTFkZlx1NTFlMlx1NTFlM1x1NTFlNSIsNSwiXHU1MWVjXHU1MWVlXHU1MWYxXHU1MWYyXHU1MWY0XHU1MWY3XHU1MWZlXHU1MjA0XHU1MjA1XHU1MjA5XHU1MjBiXHU1MjBjXHU1MjBm'@; put 'XHU1MjEwXHU1MjEzXHU1MjE0XHU1MjE1XHU1MjFjXHU1MjFlXHU1MjFmXHU1MjIxXHU1MjIyXHU1MjIzXHU1MjI1XHU1MjI2XHU1MjI3XHU1MjJhXHU1MjJjXHU1MjJmXHU1MjMxXHU1MjMyXHU1MjM0XHU1MjM1XHU1MjNjXHU1MjNlXHU1MjQ0Iiw1LCJcdTUyNGJcdTUyNGVcdTUyNGZcdTUy'@; put 'NTJcdTUyNTNcdTUyNTVcdTUyNTdcdTUyNTgiXSxbIjg0ODAiLCJcdTUyNTlcdTUyNWFcdTUyNWJcdTUyNWRcdTUyNWZcdTUyNjBcdTUyNjJcdTUyNjNcdTUyNjRcdTUyNjZcdTUyNjhcdTUyNmJcdTUyNmNcdTUyNmRcdTUyNmVcdTUyNzBcdTUyNzFcdTUyNzMiLDksIlx1NTI3ZVx1NTI4MFx1'@; put 'NTI4MyIsNCwiXHU1Mjg5Iiw2LCJcdTUyOTFcdTUyOTJcdTUyOTQiLDYsIlx1NTI5Y1x1NTJhNFx1NTJhNVx1NTJhNlx1NTJhN1x1NTJhZVx1NTJhZlx1NTJiMFx1NTJiNCIsOSwiXHU1MmMwXHU1MmMxXHU1MmMyXHU1MmM0XHU1MmM1XHU1MmM2XHU1MmM4XHU1MmNhXHU1MmNjXHU1MmNkXHU1'@; put 'MmNlXHU1MmNmXHU1MmQxXHU1MmQzXHU1MmQ0XHU1MmQ1XHU1MmQ3XHU1MmQ5Iiw1LCJcdTUyZTBcdTUyZTFcdTUyZTJcdTUyZTNcdTUyZTUiLDEwLCJcdTUyZjEiLDcsIlx1NTJmYlx1NTJmY1x1NTJmZFx1NTMwMVx1NTMwMlx1NTMwM1x1NTMwNFx1NTMwN1x1NTMwOVx1NTMwYVx1NTMwYlx1'@; put 'NTMwY1x1NTMwZSJdLFsiODU0MCIsIlx1NTMxMVx1NTMxMlx1NTMxM1x1NTMxNFx1NTMxOFx1NTMxYlx1NTMxY1x1NTMxZVx1NTMxZlx1NTMyMlx1NTMyNFx1NTMyNVx1NTMyN1x1NTMyOFx1NTMyOVx1NTMyYlx1NTMyY1x1NTMyZFx1NTMyZiIsOSwiXHU1MzNjXHU1MzNkXHU1MzQwXHU1MzQy'@; put 'XHU1MzQ0XHU1MzQ2XHU1MzRiXHU1MzRjXHU1MzRkXHU1MzUwXHU1MzU0XHU1MzU4XHU1MzU5XHU1MzViXHU1MzVkXHU1MzY1XHU1MzY4XHU1MzZhXHU1MzZjXHU1MzZkXHU1MzcyXHU1Mzc2XHU1Mzc5XHU1MzdiXHU1MzdjXHU1MzdkXHU1MzdlXHU1MzgwXHU1MzgxXHU1MzgzXHU1Mzg3XHU1'@; put 'Mzg4XHU1MzhhXHU1MzhlXHU1MzhmIl0sWyI4NTgwIiwiXHU1MzkwIiw0LCJcdTUzOTZcdTUzOTdcdTUzOTlcdTUzOWJcdTUzOWNcdTUzOWVcdTUzYTBcdTUzYTFcdTUzYTRcdTUzYTdcdTUzYWFcdTUzYWJcdTUzYWNcdTUzYWRcdTUzYWYiLDYsIlx1NTNiN1x1NTNiOFx1NTNiOVx1NTNiYVx1'@; put 'NTNiY1x1NTNiZFx1NTNiZVx1NTNjMFx1NTNjMyIsNCwiXHU1M2NlXHU1M2NmXHU1M2QwXHU1M2QyXHU1M2QzXHU1M2Q1XHU1M2RhXHU1M2RjXHU1M2RkXHU1M2RlXHU1M2UxXHU1M2UyXHU1M2U3XHU1M2Y0XHU1M2ZhXHU1M2ZlXHU1M2ZmXHU1NDAwXHU1NDAyXHU1NDA1XHU1NDA3XHU1NDBi'@; put 'XHU1NDE0XHU1NDE4XHU1NDE5XHU1NDFhXHU1NDFjXHU1NDIyXHU1NDI0XHU1NDI1XHU1NDJhXHU1NDMwXHU1NDMzXHU1NDM2XHU1NDM3XHU1NDNhXHU1NDNkXHU1NDNmXHU1NDQxXHU1NDQyXHU1NDQ0XHU1NDQ1XHU1NDQ3XHU1NDQ5XHU1NDRjXHU1NDRkXHU1NDRlXHU1NDRmXHU1NDUxXHU1'@; put 'NDVhXHU1NDVkIiw0LCJcdTU0NjNcdTU0NjVcdTU0NjdcdTU0NjkiLDcsIlx1NTQ3NFx1NTQ3OVx1NTQ3YVx1NTQ3ZVx1NTQ3Zlx1NTQ4MVx1NTQ4M1x1NTQ4NVx1NTQ4N1x1NTQ4OFx1NTQ4OVx1NTQ4YVx1NTQ4ZFx1NTQ5MVx1NTQ5M1x1NTQ5N1x1NTQ5OFx1NTQ5Y1x1NTQ5ZVx1NTQ5Zlx1'@; put 'NTRhMFx1NTRhMSJdLFsiODY0MCIsIlx1NTRhMlx1NTRhNVx1NTRhZVx1NTRiMFx1NTRiMlx1NTRiNVx1NTRiNlx1NTRiN1x1NTRiOVx1NTRiYVx1NTRiY1x1NTRiZVx1NTRjM1x1NTRjNVx1NTRjYVx1NTRjYlx1NTRkNlx1NTRkOFx1NTRkYlx1NTRlMCIsNCwiXHU1NGViXHU1NGVjXHU1NGVm'@; put 'XHU1NGYwXHU1NGYxXHU1NGY0Iiw1LCJcdTU0ZmJcdTU0ZmVcdTU1MDBcdTU1MDJcdTU1MDNcdTU1MDRcdTU1MDVcdTU1MDhcdTU1MGEiLDQsIlx1NTUxMlx1NTUxM1x1NTUxNSIsNSwiXHU1NTFjXHU1NTFkXHU1NTFlXHU1NTFmXHU1NTIxXHU1NTI1XHU1NTI2Il0sWyI4NjgwIiwiXHU1NTI4'@; put 'XHU1NTI5XHU1NTJiXHU1NTJkXHU1NTMyXHU1NTM0XHU1NTM1XHU1NTM2XHU1NTM4XHU1NTM5XHU1NTNhXHU1NTNiXHU1NTNkXHU1NTQwXHU1NTQyXHU1NTQ1XHU1NTQ3XHU1NTQ4XHU1NTRiIiw0LCJcdTU1NTFcdTU1NTJcdTU1NTNcdTU1NTRcdTU1NTciLDQsIlx1NTU1ZFx1NTU1ZVx1NTU1'@; put 'Zlx1NTU2MFx1NTU2Mlx1NTU2M1x1NTU2OFx1NTU2OVx1NTU2Ylx1NTU2ZiIsNSwiXHU1NTc5XHU1NTdhXHU1NTdkXHU1NTdmXHU1NTg1XHU1NTg2XHU1NThjXHU1NThkXHU1NThlXHU1NTkwXHU1NTkyXHU1NTkzXHU1NTk1XHU1NTk2XHU1NTk3XHU1NTlhXHU1NTliXHU1NTllXHU1NWEwIiw2'@; put 'LCJcdTU1YTgiLDgsIlx1NTViMlx1NTViNFx1NTViNlx1NTViOFx1NTViYVx1NTViY1x1NTViZiIsNCwiXHU1NWM2XHU1NWM3XHU1NWM4XHU1NWNhXHU1NWNiXHU1NWNlXHU1NWNmXHU1NWQwXHU1NWQ1XHU1NWQ3Iiw0LCJcdTU1ZGVcdTU1ZTBcdTU1ZTJcdTU1ZTdcdTU1ZTlcdTU1ZWRcdTU1'@; put 'ZWVcdTU1ZjBcdTU1ZjFcdTU1ZjRcdTU1ZjZcdTU1ZjgiLDQsIlx1NTVmZlx1NTYwMlx1NTYwM1x1NTYwNFx1NTYwNSJdLFsiODc0MCIsIlx1NTYwNlx1NTYwN1x1NTYwYVx1NTYwYlx1NTYwZFx1NTYxMCIsNywiXHU1NjE5XHU1NjFhXHU1NjFjXHU1NjFkXHU1NjIwXHU1NjIxXHU1NjIyXHU1'@; put 'NjI1XHU1NjI2XHU1NjI4XHU1NjI5XHU1NjJhXHU1NjJiXHU1NjJlXHU1NjJmXHU1NjMwXHU1NjMzXHU1NjM1XHU1NjM3XHU1NjM4XHU1NjNhXHU1NjNjXHU1NjNkXHU1NjNlXHU1NjQwIiwxMSwiXHU1NjRmIiw0LCJcdTU2NTVcdTU2NTZcdTU2NWFcdTU2NWJcdTU2NWQiLDRdLFsiODc4MCIs'@; put 'Ilx1NTY2M1x1NTY2NVx1NTY2Nlx1NTY2N1x1NTY2ZFx1NTY2ZVx1NTY2Zlx1NTY3MFx1NTY3Mlx1NTY3M1x1NTY3NFx1NTY3NVx1NTY3N1x1NTY3OFx1NTY3OVx1NTY3YVx1NTY3ZCIsNywiXHU1Njg3Iiw2LCJcdTU2OTBcdTU2OTFcdTU2OTJcdTU2OTQiLDE0LCJcdTU2YTQiLDEwLCJcdTU2'@; put 'YjAiLDYsIlx1NTZiOFx1NTZiOVx1NTZiYVx1NTZiYlx1NTZiZCIsMTIsIlx1NTZjYiIsOCwiXHU1NmQ1XHU1NmQ2XHU1NmQ4XHU1NmQ5XHU1NmRjXHU1NmUzXHU1NmU1Iiw1LCJcdTU2ZWNcdTU2ZWVcdTU2ZWZcdTU2ZjJcdTU2ZjNcdTU2ZjZcdTU2ZjdcdTU2ZjhcdTU2ZmJcdTU2ZmNcdTU3'@; put 'MDBcdTU3MDFcdTU3MDJcdTU3MDVcdTU3MDdcdTU3MGIiLDZdLFsiODg0MCIsIlx1NTcxMiIsOSwiXHU1NzFkXHU1NzFlXHU1NzIwXHU1NzIxXHU1NzIyXHU1NzI0XHU1NzI1XHU1NzI2XHU1NzI3XHU1NzJiXHU1NzMxXHU1NzMyXHU1NzM0Iiw0LCJcdTU3M2NcdTU3M2RcdTU3M2ZcdTU3NDFc'@; put 'dTU3NDNcdTU3NDRcdTU3NDVcdTU3NDZcdTU3NDhcdTU3NDlcdTU3NGJcdTU3NTIiLDQsIlx1NTc1OFx1NTc1OVx1NTc2Mlx1NTc2M1x1NTc2NVx1NTc2N1x1NTc2Y1x1NTc2ZVx1NTc3MFx1NTc3MVx1NTc3Mlx1NTc3NFx1NTc3NVx1NTc3OFx1NTc3OVx1NTc3YVx1NTc3ZFx1NTc3ZVx1NTc3'@; put 'Zlx1NTc4MCJdLFsiODg4MCIsIlx1NTc4MVx1NTc4N1x1NTc4OFx1NTc4OVx1NTc4YVx1NTc4ZCIsNCwiXHU1Nzk0Iiw2LCJcdTU3OWNcdTU3OWRcdTU3OWVcdTU3OWZcdTU3YTVcdTU3YThcdTU3YWFcdTU3YWNcdTU3YWZcdTU3YjBcdTU3YjFcdTU3YjNcdTU3YjVcdTU3YjZcdTU3YjdcdTU3'@; put 'YjkiLDgsIlx1NTdjNCIsNiwiXHU1N2NjXHU1N2NkXHU1N2QwXHU1N2QxXHU1N2QzXHU1N2Q2XHU1N2Q3XHU1N2RiXHU1N2RjXHU1N2RlXHU1N2UxXHU1N2UyXHU1N2UzXHU1N2U1Iiw3LCJcdTU3ZWVcdTU3ZjBcdTU3ZjFcdTU3ZjJcdTU3ZjNcdTU3ZjVcdTU3ZjZcdTU3ZjdcdTU3ZmJcdTU3'@; put 'ZmNcdTU3ZmVcdTU3ZmZcdTU4MDFcdTU4MDNcdTU4MDRcdTU4MDVcdTU4MDhcdTU4MDlcdTU4MGFcdTU4MGNcdTU4MGVcdTU4MGZcdTU4MTBcdTU4MTJcdTU4MTNcdTU4MTRcdTU4MTZcdTU4MTdcdTU4MThcdTU4MWFcdTU4MWJcdTU4MWNcdTU4MWRcdTU4MWZcdTU4MjJcdTU4MjNcdTU4MjUi'@; put 'LDQsIlx1NTgyYiIsNCwiXHU1ODMxXHU1ODMyXHU1ODMzXHU1ODM0XHU1ODM2Iiw3XSxbIjg5NDAiLCJcdTU4M2UiLDUsIlx1NTg0NSIsNiwiXHU1ODRlXHU1ODRmXHU1ODUwXHU1ODUyXHU1ODUzXHU1ODU1XHU1ODU2XHU1ODU3XHU1ODU5Iiw0LCJcdTU4NWYiLDUsIlx1NTg2NiIsNCwiXHU1'@; put 'ODZkIiwxNiwiXHU1ODdmXHU1ODgyXHU1ODg0XHU1ODg2XHU1ODg3XHU1ODg4XHU1ODhhXHU1ODhiXHU1ODhjIl0sWyI4OTgwIiwiXHU1ODhkIiw0LCJcdTU4OTQiLDQsIlx1NTg5Ylx1NTg5Y1x1NTg5ZFx1NThhMCIsNywiXHU1OGFhIiwxNywiXHU1OGJkXHU1OGJlXHU1OGJmXHU1OGMwXHU1'@; put 'OGMyXHU1OGMzXHU1OGM0XHU1OGM2IiwxMCwiXHU1OGQyXHU1OGQzXHU1OGQ0XHU1OGQ2IiwxMywiXHU1OGU1Iiw1LCJcdTU4ZWRcdTU4ZWZcdTU4ZjFcdTU4ZjJcdTU4ZjRcdTU4ZjVcdTU4ZjdcdTU4ZjhcdTU4ZmEiLDcsIlx1NTkwM1x1NTkwNVx1NTkwNlx1NTkwOCIsNCwiXHU1OTBlXHU1'@; put 'OTEwXHU1OTExXHU1OTEyXHU1OTEzXHU1OTE3XHU1OTE4XHU1OTFiXHU1OTFkXHU1OTFlXHU1OTIwXHU1OTIxXHU1OTIyXHU1OTIzXHU1OTI2XHU1OTI4XHU1OTJjXHU1OTMwXHU1OTMyXHU1OTMzXHU1OTM1XHU1OTM2XHU1OTNiIl0sWyI4YTQwIiwiXHU1OTNkXHU1OTNlXHU1OTNmXHU1OTQw'@; put 'XHU1OTQzXHU1OTQ1XHU1OTQ2XHU1OTRhXHU1OTRjXHU1OTRkXHU1OTUwXHU1OTUyXHU1OTUzXHU1OTU5XHU1OTViIiw0LCJcdTU5NjFcdTU5NjNcdTU5NjRcdTU5NjYiLDEyLCJcdTU5NzVcdTU5NzdcdTU5N2FcdTU5N2JcdTU5N2NcdTU5N2VcdTU5N2ZcdTU5ODBcdTU5ODVcdTU5ODlcdTU5'@; put 'OGJcdTU5OGNcdTU5OGVcdTU5OGZcdTU5OTBcdTU5OTFcdTU5OTRcdTU5OTVcdTU5OThcdTU5OWFcdTU5OWJcdTU5OWNcdTU5OWRcdTU5OWZcdTU5YTBcdTU5YTFcdTU5YTJcdTU5YTYiXSxbIjhhODAiLCJcdTU5YTdcdTU5YWNcdTU5YWRcdTU5YjBcdTU5YjFcdTU5YjMiLDUsIlx1NTliYVx1'@; put 'NTliY1x1NTliZFx1NTliZiIsNiwiXHU1OWM3XHU1OWM4XHU1OWM5XHU1OWNjXHU1OWNkXHU1OWNlXHU1OWNmXHU1OWQ1XHU1OWQ2XHU1OWQ5XHU1OWRiXHU1OWRlIiw0LCJcdTU5ZTRcdTU5ZTZcdTU5ZTdcdTU5ZTlcdTU5ZWFcdTU5ZWJcdTU5ZWQiLDExLCJcdTU5ZmFcdTU5ZmNcdTU5ZmRc'@; put 'dTU5ZmVcdTVhMDBcdTVhMDJcdTVhMGFcdTVhMGJcdTVhMGRcdTVhMGVcdTVhMGZcdTVhMTBcdTVhMTJcdTVhMTRcdTVhMTVcdTVhMTZcdTVhMTdcdTVhMTlcdTVhMWFcdTVhMWJcdTVhMWRcdTVhMWVcdTVhMjFcdTVhMjJcdTVhMjRcdTVhMjZcdTVhMjdcdTVhMjhcdTVhMmEiLDYsIlx1NWEz'@; put 'M1x1NWEzNVx1NWEzNyIsNCwiXHU1YTNkXHU1YTNlXHU1YTNmXHU1YTQxIiw0LCJcdTVhNDdcdTVhNDhcdTVhNGIiLDksIlx1NWE1Nlx1NWE1N1x1NWE1OFx1NWE1OVx1NWE1YiIsNV0sWyI4YjQwIiwiXHU1YTYxXHU1YTYzXHU1YTY0XHU1YTY1XHU1YTY2XHU1YTY4XHU1YTY5XHU1YTZiIiw4'@; put 'LCJcdTVhNzhcdTVhNzlcdTVhN2JcdTVhN2NcdTVhN2RcdTVhN2VcdTVhODAiLDE3LCJcdTVhOTMiLDYsIlx1NWE5YyIsMTMsIlx1NWFhYlx1NWFhYyJdLFsiOGI4MCIsIlx1NWFhZCIsNCwiXHU1YWI0XHU1YWI2XHU1YWI3XHU1YWI5Iiw0LCJcdTVhYmZcdTVhYzBcdTVhYzMiLDUsIlx1NWFj'@; put 'YVx1NWFjYlx1NWFjZCIsNCwiXHU1YWQzXHU1YWQ1XHU1YWQ3XHU1YWQ5XHU1YWRhXHU1YWRiXHU1YWRkXHU1YWRlXHU1YWRmXHU1YWUyXHU1YWU0XHU1YWU1XHU1YWU3XHU1YWU4XHU1YWVhXHU1YWVjIiw0LCJcdTVhZjIiLDIyLCJcdTViMGEiLDExLCJcdTViMTgiLDI1LCJcdTViMzNcdTVi'@; put 'MzVcdTViMzZcdTViMzgiLDcsIlx1NWI0MSIsNl0sWyI4YzQwIiwiXHU1YjQ4Iiw3LCJcdTViNTJcdTViNTZcdTViNWVcdTViNjBcdTViNjFcdTViNjdcdTViNjhcdTViNmJcdTViNmRcdTViNmVcdTViNmZcdTViNzJcdTViNzRcdTViNzZcdTViNzdcdTViNzhcdTViNzlcdTViN2JcdTViN2Nc'@; put 'dTViN2VcdTViN2ZcdTViODJcdTViODZcdTViOGFcdTViOGRcdTViOGVcdTViOTBcdTViOTFcdTViOTJcdTViOTRcdTViOTZcdTViOWZcdTViYTdcdTViYThcdTViYTlcdTViYWNcdTViYWRcdTViYWVcdTViYWZcdTViYjFcdTViYjJcdTViYjdcdTViYmFcdTViYmJcdTViYmNcdTViYzBcdTVi'@; put 'YzFcdTViYzNcdTViYzhcdTViYzlcdTViY2FcdTViY2JcdTViY2RcdTViY2VcdTViY2YiXSxbIjhjODAiLCJcdTViZDFcdTViZDQiLDgsIlx1NWJlMFx1NWJlMlx1NWJlM1x1NWJlNlx1NWJlN1x1NWJlOSIsNCwiXHU1YmVmXHU1YmYxIiw2LCJcdTViZmRcdTViZmVcdTVjMDBcdTVjMDJcdTVj'@; put 'MDNcdTVjMDVcdTVjMDdcdTVjMDhcdTVjMGJcdTVjMGNcdTVjMGRcdTVjMGVcdTVjMTBcdTVjMTJcdTVjMTNcdTVjMTdcdTVjMTlcdTVjMWJcdTVjMWVcdTVjMWZcdTVjMjBcdTVjMjFcdTVjMjNcdTVjMjZcdTVjMjhcdTVjMjlcdTVjMmFcdTVjMmJcdTVjMmRcdTVjMmVcdTVjMmZcdTVjMzBc'@; put 'dTVjMzJcdTVjMzNcdTVjMzVcdTVjMzZcdTVjMzdcdTVjNDNcdTVjNDRcdTVjNDZcdTVjNDdcdTVjNGNcdTVjNGRcdTVjNTJcdTVjNTNcdTVjNTRcdTVjNTZcdTVjNTdcdTVjNThcdTVjNWFcdTVjNWJcdTVjNWNcdTVjNWRcdTVjNWZcdTVjNjJcdTVjNjRcdTVjNjciLDYsIlx1NWM3MFx1NWM3'@; put 'MiIsNiwiXHU1YzdiXHU1YzdjXHU1YzdkXHU1YzdlXHU1YzgwXHU1YzgzIiw0LCJcdTVjODlcdTVjOGFcdTVjOGJcdTVjOGVcdTVjOGZcdTVjOTJcdTVjOTNcdTVjOTVcdTVjOWQiLDQsIlx1NWNhNCIsNF0sWyI4ZDQwIiwiXHU1Y2FhXHU1Y2FlXHU1Y2FmXHU1Y2IwXHU1Y2IyXHU1Y2I0XHU1'@; put 'Y2I2XHU1Y2I5XHU1Y2JhXHU1Y2JiXHU1Y2JjXHU1Y2JlXHU1Y2MwXHU1Y2MyXHU1Y2MzXHU1Y2M1Iiw1LCJcdTVjY2MiLDUsIlx1NWNkMyIsNSwiXHU1Y2RhIiw2LCJcdTVjZTJcdTVjZTNcdTVjZTdcdTVjZTlcdTVjZWJcdTVjZWNcdTVjZWVcdTVjZWZcdTVjZjEiLDksIlx1NWNmYyIsNF0s'@; put 'WyI4ZDgwIiwiXHU1ZDAxXHU1ZDA0XHU1ZDA1XHU1ZDA4Iiw1LCJcdTVkMGYiLDQsIlx1NWQxNVx1NWQxN1x1NWQxOFx1NWQxOVx1NWQxYVx1NWQxY1x1NWQxZFx1NWQxZiIsNCwiXHU1ZDI1XHU1ZDI4XHU1ZDJhXHU1ZDJiXHU1ZDJjXHU1ZDJmIiw0LCJcdTVkMzUiLDcsIlx1NWQzZiIsNywi'@; put 'XHU1ZDQ4XHU1ZDQ5XHU1ZDRkIiwxMCwiXHU1ZDU5XHU1ZDVhXHU1ZDVjXHU1ZDVlIiwxMCwiXHU1ZDZhXHU1ZDZkXHU1ZDZlXHU1ZDcwXHU1ZDcxXHU1ZDcyXHU1ZDczXHU1ZDc1IiwxMiwiXHU1ZDgzIiwyMSwiXHU1ZDlhXHU1ZDliXHU1ZDljXHU1ZDllXHU1ZDlmXHU1ZGEwIl0sWyI4ZTQw'@; put 'IiwiXHU1ZGExIiwyMSwiXHU1ZGI4IiwxMiwiXHU1ZGM2Iiw2LCJcdTVkY2UiLDEyLCJcdTVkZGNcdTVkZGZcdTVkZTBcdTVkZTNcdTVkZTRcdTVkZWFcdTVkZWNcdTVkZWQiXSxbIjhlODAiLCJcdTVkZjBcdTVkZjVcdTVkZjZcdTVkZjgiLDQsIlx1NWRmZlx1NWUwMFx1NWUwNFx1NWUwN1x1'@; put 'NWUwOVx1NWUwYVx1NWUwYlx1NWUwZFx1NWUwZVx1NWUxMlx1NWUxM1x1NWUxN1x1NWUxZSIsNywiXHU1ZTI4Iiw0LCJcdTVlMmZcdTVlMzBcdTVlMzIiLDQsIlx1NWUzOVx1NWUzYVx1NWUzZVx1NWUzZlx1NWU0MFx1NWU0MVx1NWU0M1x1NWU0NiIsNSwiXHU1ZTRkIiw2LCJcdTVlNTYiLDQs'@; put 'Ilx1NWU1Y1x1NWU1ZFx1NWU1Zlx1NWU2MFx1NWU2MyIsMTQsIlx1NWU3NVx1NWU3N1x1NWU3OVx1NWU3ZVx1NWU4MVx1NWU4Mlx1NWU4M1x1NWU4NVx1NWU4OFx1NWU4OVx1NWU4Y1x1NWU4ZFx1NWU4ZVx1NWU5Mlx1NWU5OFx1NWU5Ylx1NWU5ZFx1NWVhMVx1NWVhMlx1NWVhM1x1NWVhNFx1'@; put 'NWVhOCIsNCwiXHU1ZWFlIiw0LCJcdTVlYjRcdTVlYmFcdTVlYmJcdTVlYmNcdTVlYmRcdTVlYmYiLDZdLFsiOGY0MCIsIlx1NWVjNlx1NWVjN1x1NWVjOFx1NWVjYiIsNSwiXHU1ZWQ0XHU1ZWQ1XHU1ZWQ3XHU1ZWQ4XHU1ZWQ5XHU1ZWRhXHU1ZWRjIiwxMSwiXHU1ZWU5XHU1ZWViIiw4LCJc'@; put 'dTVlZjVcdTVlZjhcdTVlZjlcdTVlZmJcdTVlZmNcdTVlZmRcdTVmMDVcdTVmMDZcdTVmMDdcdTVmMDlcdTVmMGNcdTVmMGRcdTVmMGVcdTVmMTBcdTVmMTJcdTVmMTRcdTVmMTZcdTVmMTlcdTVmMWFcdTVmMWNcdTVmMWRcdTVmMWVcdTVmMjFcdTVmMjJcdTVmMjNcdTVmMjQiXSxbIjhmODAi'@; put 'LCJcdTVmMjhcdTVmMmJcdTVmMmNcdTVmMmVcdTVmMzBcdTVmMzIiLDYsIlx1NWYzYlx1NWYzZFx1NWYzZVx1NWYzZlx1NWY0MSIsMTQsIlx1NWY1MVx1NWY1NFx1NWY1OVx1NWY1YVx1NWY1Ylx1NWY1Y1x1NWY1ZVx1NWY1Zlx1NWY2MFx1NWY2M1x1NWY2NVx1NWY2N1x1NWY2OFx1NWY2Ylx1'@; put 'NWY2ZVx1NWY2Zlx1NWY3Mlx1NWY3NFx1NWY3NVx1NWY3Nlx1NWY3OFx1NWY3YVx1NWY3ZFx1NWY3ZVx1NWY3Zlx1NWY4M1x1NWY4Nlx1NWY4ZFx1NWY4ZVx1NWY4Zlx1NWY5MVx1NWY5M1x1NWY5NFx1NWY5Nlx1NWY5YVx1NWY5Ylx1NWY5ZFx1NWY5ZVx1NWY5Zlx1NWZhMFx1NWZhMiIsNSwi'@; put 'XHU1ZmE5XHU1ZmFiXHU1ZmFjXHU1ZmFmIiw1LCJcdTVmYjZcdTVmYjhcdTVmYjlcdTVmYmFcdTVmYmJcdTVmYmUiLDQsIlx1NWZjN1x1NWZjOFx1NWZjYVx1NWZjYlx1NWZjZVx1NWZkM1x1NWZkNFx1NWZkNVx1NWZkYVx1NWZkYlx1NWZkY1x1NWZkZVx1NWZkZlx1NWZlMlx1NWZlM1x1NWZl'@; put 'NVx1NWZlNlx1NWZlOFx1NWZlOVx1NWZlY1x1NWZlZlx1NWZmMFx1NWZmMlx1NWZmM1x1NWZmNFx1NWZmNlx1NWZmN1x1NWZmOVx1NWZmYVx1NWZmY1x1NjAwNyJdLFsiOTA0MCIsIlx1NjAwOFx1NjAwOVx1NjAwYlx1NjAwY1x1NjAxMFx1NjAxMVx1NjAxM1x1NjAxN1x1NjAxOFx1NjAxYVx1'@; put 'NjAxZVx1NjAxZlx1NjAyMlx1NjAyM1x1NjAyNFx1NjAyY1x1NjAyZFx1NjAyZVx1NjAzMCIsNCwiXHU2MDM2Iiw0LCJcdTYwM2RcdTYwM2VcdTYwNDBcdTYwNDQiLDYsIlx1NjA0Y1x1NjA0ZVx1NjA0Zlx1NjA1MVx1NjA1M1x1NjA1NFx1NjA1Nlx1NjA1N1x1NjA1OFx1NjA1Ylx1NjA1Y1x1'@; put 'NjA1ZVx1NjA1Zlx1NjA2MFx1NjA2MVx1NjA2NVx1NjA2Nlx1NjA2ZVx1NjA3MVx1NjA3Mlx1NjA3NFx1NjA3NVx1NjA3N1x1NjA3ZVx1NjA4MCJdLFsiOTA4MCIsIlx1NjA4MVx1NjA4Mlx1NjA4NVx1NjA4Nlx1NjA4N1x1NjA4OFx1NjA4YVx1NjA4Ylx1NjA4ZVx1NjA4Zlx1NjA5MFx1NjA5'@; put 'MVx1NjA5M1x1NjA5NVx1NjA5N1x1NjA5OFx1NjA5OVx1NjA5Y1x1NjA5ZVx1NjBhMVx1NjBhMlx1NjBhNFx1NjBhNVx1NjBhN1x1NjBhOVx1NjBhYVx1NjBhZVx1NjBiMFx1NjBiM1x1NjBiNVx1NjBiNlx1NjBiN1x1NjBiOVx1NjBiYVx1NjBiZCIsNywiXHU2MGM3XHU2MGM4XHU2MGM5XHU2'@; put 'MGNjIiw0LCJcdTYwZDJcdTYwZDNcdTYwZDRcdTYwZDZcdTYwZDdcdTYwZDlcdTYwZGJcdTYwZGVcdTYwZTEiLDQsIlx1NjBlYVx1NjBmMVx1NjBmMlx1NjBmNVx1NjBmN1x1NjBmOFx1NjBmYiIsNCwiXHU2MTAyXHU2MTAzXHU2MTA0XHU2MTA1XHU2MTA3XHU2MTBhXHU2MTBiXHU2MTBjXHU2'@; put 'MTEwIiw0LCJcdTYxMTZcdTYxMTdcdTYxMThcdTYxMTlcdTYxMWJcdTYxMWNcdTYxMWRcdTYxMWVcdTYxMjFcdTYxMjJcdTYxMjVcdTYxMjhcdTYxMjlcdTYxMmFcdTYxMmMiLDE4LCJcdTYxNDAiLDZdLFsiOTE0MCIsIlx1NjE0N1x1NjE0OVx1NjE0Ylx1NjE0ZFx1NjE0Zlx1NjE1MFx1NjE1'@; put 'Mlx1NjE1M1x1NjE1NFx1NjE1NiIsNiwiXHU2MTVlXHU2MTVmXHU2MTYwXHU2MTYxXHU2MTYzXHU2MTY0XHU2MTY1XHU2MTY2XHU2MTY5Iiw2LCJcdTYxNzFcdTYxNzJcdTYxNzNcdTYxNzRcdTYxNzZcdTYxNzgiLDE4LCJcdTYxOGNcdTYxOGRcdTYxOGYiLDQsIlx1NjE5NSJdLFsiOTE4MCIs'@; put 'Ilx1NjE5NiIsNiwiXHU2MTllIiw4LCJcdTYxYWFcdTYxYWJcdTYxYWQiLDksIlx1NjFiOCIsNSwiXHU2MWJmXHU2MWMwXHU2MWMxXHU2MWMzIiw0LCJcdTYxYzlcdTYxY2MiLDQsIlx1NjFkM1x1NjFkNSIsMTYsIlx1NjFlNyIsMTMsIlx1NjFmNiIsOCwiXHU2MjAwIiw1LCJcdTYyMDdcdTYy'@; put 'MDlcdTYyMTNcdTYyMTRcdTYyMTlcdTYyMWNcdTYyMWRcdTYyMWVcdTYyMjBcdTYyMjNcdTYyMjZcdTYyMjdcdTYyMjhcdTYyMjlcdTYyMmJcdTYyMmRcdTYyMmZcdTYyMzBcdTYyMzFcdTYyMzJcdTYyMzVcdTYyMzZcdTYyMzgiLDQsIlx1NjI0Mlx1NjI0NFx1NjI0NVx1NjI0Nlx1NjI0YSJd'@; put 'LFsiOTI0MCIsIlx1NjI0Zlx1NjI1MFx1NjI1NVx1NjI1Nlx1NjI1N1x1NjI1OVx1NjI1YVx1NjI1YyIsNiwiXHU2MjY0XHU2MjY1XHU2MjY4XHU2MjcxXHU2MjcyXHU2Mjc0XHU2Mjc1XHU2Mjc3XHU2Mjc4XHU2MjdhXHU2MjdiXHU2MjdkXHU2MjgxXHU2MjgyXHU2MjgzXHU2Mjg1XHU2Mjg2'@; put 'XHU2Mjg3XHU2Mjg4XHU2MjhiIiw1LCJcdTYyOTRcdTYyOTlcdTYyOWNcdTYyOWRcdTYyOWVcdTYyYTNcdTYyYTZcdTYyYTdcdTYyYTlcdTYyYWFcdTYyYWRcdTYyYWVcdTYyYWZcdTYyYjBcdTYyYjJcdTYyYjNcdTYyYjRcdTYyYjZcdTYyYjdcdTYyYjhcdTYyYmFcdTYyYmVcdTYyYzBcdTYy'@; put 'YzEiXSxbIjkyODAiLCJcdTYyYzNcdTYyY2JcdTYyY2ZcdTYyZDFcdTYyZDVcdTYyZGRcdTYyZGVcdTYyZTBcdTYyZTFcdTYyZTRcdTYyZWFcdTYyZWJcdTYyZjBcdTYyZjJcdTYyZjVcdTYyZjhcdTYyZjlcdTYyZmFcdTYyZmJcdTYzMDBcdTYzMDNcdTYzMDRcdTYzMDVcdTYzMDZcdTYzMGFc'@; put 'dTYzMGJcdTYzMGNcdTYzMGRcdTYzMGZcdTYzMTBcdTYzMTJcdTYzMTNcdTYzMTRcdTYzMTVcdTYzMTdcdTYzMThcdTYzMTlcdTYzMWNcdTYzMjZcdTYzMjdcdTYzMjlcdTYzMmNcdTYzMmRcdTYzMmVcdTYzMzBcdTYzMzFcdTYzMzMiLDUsIlx1NjMzYlx1NjMzY1x1NjMzZVx1NjMzZlx1NjM0'@; put 'MFx1NjM0MVx1NjM0NFx1NjM0N1x1NjM0OFx1NjM0YVx1NjM1MVx1NjM1Mlx1NjM1M1x1NjM1NFx1NjM1NiIsNywiXHU2MzYwXHU2MzY0XHU2MzY1XHU2MzY2XHU2MzY4XHU2MzZhXHU2MzZiXHU2MzZjXHU2MzZmXHU2MzcwXHU2MzcyXHU2MzczXHU2Mzc0XHU2Mzc1XHU2Mzc4XHU2Mzc5XHU2'@; put 'MzdjXHU2MzdkXHU2MzdlXHU2MzdmXHU2MzgxXHU2MzgzXHU2Mzg0XHU2Mzg1XHU2Mzg2XHU2MzhiXHU2MzhkXHU2MzkxXHU2MzkzXHU2Mzk0XHU2Mzk1XHU2Mzk3XHU2Mzk5Iiw2LCJcdTYzYTFcdTYzYTRcdTYzYTZcdTYzYWJcdTYzYWZcdTYzYjFcdTYzYjJcdTYzYjVcdTYzYjZcdTYzYjlc'@; put 'dTYzYmJcdTYzYmRcdTYzYmZcdTYzYzAiXSxbIjkzNDAiLCJcdTYzYzFcdTYzYzJcdTYzYzNcdTYzYzVcdTYzYzdcdTYzYzhcdTYzY2FcdTYzY2JcdTYzY2NcdTYzZDFcdTYzZDNcdTYzZDRcdTYzZDVcdTYzZDciLDYsIlx1NjNkZlx1NjNlMlx1NjNlNCIsNCwiXHU2M2ViXHU2M2VjXHU2M2Vl'@; put 'XHU2M2VmXHU2M2YwXHU2M2YxXHU2M2YzXHU2M2Y1XHU2M2Y3XHU2M2Y5XHU2M2ZhXHU2M2ZiXHU2M2ZjXHU2M2ZlXHU2NDAzXHU2NDA0XHU2NDA2Iiw0LCJcdTY0MGRcdTY0MGVcdTY0MTFcdTY0MTJcdTY0MTUiLDUsIlx1NjQxZFx1NjQxZlx1NjQyMlx1NjQyM1x1NjQyNCJdLFsiOTM4MCIs'@; put 'Ilx1NjQyNVx1NjQyN1x1NjQyOFx1NjQyOVx1NjQyYlx1NjQyZSIsNSwiXHU2NDM1Iiw0LCJcdTY0M2JcdTY0M2NcdTY0M2VcdTY0NDBcdTY0NDJcdTY0NDNcdTY0NDlcdTY0NGIiLDYsIlx1NjQ1M1x1NjQ1NVx1NjQ1Nlx1NjQ1N1x1NjQ1OSIsNCwiXHU2NDVmIiw3LCJcdTY0NjhcdTY0NmFc'@; put 'dTY0NmJcdTY0NmNcdTY0NmUiLDksIlx1NjQ3YiIsNiwiXHU2NDgzXHU2NDg2XHU2NDg4Iiw4LCJcdTY0OTNcdTY0OTRcdTY0OTdcdTY0OThcdTY0OWFcdTY0OWJcdTY0OWNcdTY0OWRcdTY0OWYiLDQsIlx1NjRhNVx1NjRhNlx1NjRhN1x1NjRhOFx1NjRhYVx1NjRhYlx1NjRhZlx1NjRiMVx1'@; put 'NjRiMlx1NjRiM1x1NjRiNFx1NjRiNlx1NjRiOVx1NjRiYlx1NjRiZFx1NjRiZVx1NjRiZlx1NjRjMVx1NjRjM1x1NjRjNFx1NjRjNiIsNiwiXHU2NGNmXHU2NGQxXHU2NGQzXHU2NGQ0XHU2NGQ1XHU2NGQ2XHU2NGQ5XHU2NGRhIl0sWyI5NDQwIiwiXHU2NGRiXHU2NGRjXHU2NGRkXHU2NGRm'@; put 'XHU2NGUwXHU2NGUxXHU2NGUzXHU2NGU1XHU2NGU3IiwyNCwiXHU2NTAxIiw3LCJcdTY1MGEiLDcsIlx1NjUxMyIsNCwiXHU2NTE5Iiw4XSxbIjk0ODAiLCJcdTY1MjJcdTY1MjNcdTY1MjRcdTY1MjYiLDQsIlx1NjUyY1x1NjUyZFx1NjUzMFx1NjUzMVx1NjUzMlx1NjUzM1x1NjUzN1x1NjUz'@; put 'YVx1NjUzY1x1NjUzZFx1NjU0MCIsNCwiXHU2NTQ2XHU2NTQ3XHU2NTRhXHU2NTRiXHU2NTRkXHU2NTRlXHU2NTUwXHU2NTUyXHU2NTUzXHU2NTU0XHU2NTU3XHU2NTU4XHU2NTVhXHU2NTVjXHU2NTVmXHU2NTYwXHU2NTYxXHU2NTY0XHU2NTY1XHU2NTY3XHU2NTY4XHU2NTY5XHU2NTZhXHU2'@; put 'NTZkXHU2NTZlXHU2NTZmXHU2NTcxXHU2NTczXHU2NTc1XHU2NTc2XHU2NTc4IiwxNCwiXHU2NTg4XHU2NTg5XHU2NThhXHU2NThkXHU2NThlXHU2NThmXHU2NTkyXHU2NTk0XHU2NTk1XHU2NTk2XHU2NTk4XHU2NTlhXHU2NTlkXHU2NTllXHU2NWEwXHU2NWEyXHU2NWEzXHU2NWE2XHU2NWE4'@; put 'XHU2NWFhXHU2NWFjXHU2NWFlXHU2NWIxIiw3LCJcdTY1YmFcdTY1YmJcdTY1YmVcdTY1YmZcdTY1YzBcdTY1YzJcdTY1YzdcdTY1YzhcdTY1YzlcdTY1Y2FcdTY1Y2RcdTY1ZDBcdTY1ZDFcdTY1ZDNcdTY1ZDRcdTY1ZDVcdTY1ZDgiLDcsIlx1NjVlMVx1NjVlM1x1NjVlNFx1NjVlYVx1NjVl'@; put 'YiJdLFsiOTU0MCIsIlx1NjVmMlx1NjVmM1x1NjVmNFx1NjVmNVx1NjVmOFx1NjVmOVx1NjVmYiIsNCwiXHU2NjAxXHU2NjA0XHU2NjA1XHU2NjA3XHU2NjA4XHU2NjA5XHU2NjBiXHU2NjBkXHU2NjEwXHU2NjExXHU2NjEyXHU2NjE2XHU2NjE3XHU2NjE4XHU2NjFhXHU2NjFiXHU2NjFjXHU2'@; put 'NjFlXHU2NjIxXHU2NjIyXHU2NjIzXHU2NjI0XHU2NjI2XHU2NjI5XHU2NjJhXHU2NjJiXHU2NjJjXHU2NjJlXHU2NjMwXHU2NjMyXHU2NjMzXHU2NjM3Iiw0LCJcdTY2M2RcdTY2M2ZcdTY2NDBcdTY2NDJcdTY2NDQiLDYsIlx1NjY0ZFx1NjY0ZVx1NjY1MFx1NjY1MVx1NjY1OCJdLFsiOTU4'@; put 'MCIsIlx1NjY1OVx1NjY1Ylx1NjY1Y1x1NjY1ZFx1NjY1ZVx1NjY2MFx1NjY2Mlx1NjY2M1x1NjY2NVx1NjY2N1x1NjY2OSIsNCwiXHU2NjcxXHU2NjcyXHU2NjczXHU2Njc1XHU2Njc4XHU2Njc5XHU2NjdiXHU2NjdjXHU2NjdkXHU2NjdmXHU2NjgwXHU2NjgxXHU2NjgzXHU2Njg1XHU2Njg2'@; put 'XHU2Njg4XHU2Njg5XHU2NjhhXHU2NjhiXHU2NjhkXHU2NjhlXHU2NjhmXHU2NjkwXHU2NjkyXHU2NjkzXHU2Njk0XHU2Njk1XHU2Njk4Iiw0LCJcdTY2OWUiLDgsIlx1NjZhOSIsNCwiXHU2NmFmIiw0LCJcdTY2YjVcdTY2YjZcdTY2YjdcdTY2YjhcdTY2YmFcdTY2YmJcdTY2YmNcdTY2YmRc'@; put 'dTY2YmYiLDI1LCJcdTY2ZGFcdTY2ZGUiLDcsIlx1NjZlN1x1NjZlOFx1NjZlYSIsNSwiXHU2NmYxXHU2NmY1XHU2NmY2XHU2NmY4XHU2NmZhXHU2NmZiXHU2NmZkXHU2NzAxXHU2NzAyXHU2NzAzIl0sWyI5NjQwIiwiXHU2NzA0XHU2NzA1XHU2NzA2XHU2NzA3XHU2NzBjXHU2NzBlXHU2NzBm'@; put 'XHU2NzExXHU2NzEyXHU2NzEzXHU2NzE2XHU2NzE4XHU2NzE5XHU2NzFhXHU2NzFjXHU2NzFlXHU2NzIwIiw1LCJcdTY3MjdcdTY3MjlcdTY3MmVcdTY3MzBcdTY3MzJcdTY3MzNcdTY3MzZcdTY3MzdcdTY3MzhcdTY3MzlcdTY3M2JcdTY3M2NcdTY3M2VcdTY3M2ZcdTY3NDFcdTY3NDRcdTY3'@; put 'NDVcdTY3NDdcdTY3NGFcdTY3NGJcdTY3NGRcdTY3NTJcdTY3NTRcdTY3NTVcdTY3NTciLDQsIlx1Njc1ZFx1Njc2Mlx1Njc2M1x1Njc2NFx1Njc2Nlx1Njc2N1x1Njc2Ylx1Njc2Y1x1Njc2ZVx1Njc3MVx1Njc3NFx1Njc3NiJdLFsiOTY4MCIsIlx1Njc3OFx1Njc3OVx1Njc3YVx1Njc3Ylx1'@; put 'Njc3ZFx1Njc4MFx1Njc4Mlx1Njc4M1x1Njc4NVx1Njc4Nlx1Njc4OFx1Njc4YVx1Njc4Y1x1Njc4ZFx1Njc4ZVx1Njc4Zlx1Njc5MVx1Njc5Mlx1Njc5M1x1Njc5NFx1Njc5Nlx1Njc5OVx1Njc5Ylx1Njc5Zlx1NjdhMFx1NjdhMVx1NjdhNFx1NjdhNlx1NjdhOVx1NjdhY1x1NjdhZVx1Njdi'@; put 'MVx1NjdiMlx1NjdiNFx1NjdiOSIsNywiXHU2N2MyXHU2N2M1Iiw5LCJcdTY3ZDVcdTY3ZDZcdTY3ZDdcdTY3ZGJcdTY3ZGZcdTY3ZTFcdTY3ZTNcdTY3ZTRcdTY3ZTZcdTY3ZTdcdTY3ZThcdTY3ZWFcdTY3ZWJcdTY3ZWRcdTY3ZWVcdTY3ZjJcdTY3ZjUiLDcsIlx1NjdmZVx1NjgwMVx1Njgw'@; put 'Mlx1NjgwM1x1NjgwNFx1NjgwNlx1NjgwZFx1NjgxMFx1NjgxMlx1NjgxNFx1NjgxNVx1NjgxOCIsNCwiXHU2ODFlXHU2ODFmXHU2ODIwXHU2ODIyIiw2LCJcdTY4MmIiLDYsIlx1NjgzNFx1NjgzNVx1NjgzNlx1NjgzYVx1NjgzYlx1NjgzZlx1Njg0N1x1Njg0Ylx1Njg0ZFx1Njg0Zlx1Njg1'@; put 'Mlx1Njg1NiIsNV0sWyI5NzQwIiwiXHU2ODVjXHU2ODVkXHU2ODVlXHU2ODVmXHU2ODZhXHU2ODZjIiw3LCJcdTY4NzVcdTY4NzgiLDgsIlx1Njg4Mlx1Njg4NFx1Njg4NyIsNywiXHU2ODkwXHU2ODkxXHU2ODkyXHU2ODk0XHU2ODk1XHU2ODk2XHU2ODk4Iiw5LCJcdTY4YTNcdTY4YTRcdTY4'@; put 'YTVcdTY4YTlcdTY4YWFcdTY4YWJcdTY4YWNcdTY4YWVcdTY4YjFcdTY4YjJcdTY4YjRcdTY4YjZcdTY4YjdcdTY4YjgiXSxbIjk3ODAiLCJcdTY4YjkiLDYsIlx1NjhjMVx1NjhjMyIsNSwiXHU2OGNhXHU2OGNjXHU2OGNlXHU2OGNmXHU2OGQwXHU2OGQxXHU2OGQzXHU2OGQ0XHU2OGQ2XHU2'@; put 'OGQ3XHU2OGQ5XHU2OGRiIiw0LCJcdTY4ZTFcdTY4ZTJcdTY4ZTQiLDksIlx1NjhlZlx1NjhmMlx1NjhmM1x1NjhmNFx1NjhmNlx1NjhmN1x1NjhmOFx1NjhmYlx1NjhmZFx1NjhmZVx1NjhmZlx1NjkwMFx1NjkwMlx1NjkwM1x1NjkwNFx1NjkwNiIsNCwiXHU2OTBjXHU2OTBmXHU2OTExXHU2'@; put 'OTEzIiwxMSwiXHU2OTIxXHU2OTIyXHU2OTIzXHU2OTI1Iiw3LCJcdTY5MmVcdTY5MmZcdTY5MzFcdTY5MzJcdTY5MzNcdTY5MzVcdTY5MzZcdTY5MzdcdTY5MzhcdTY5M2FcdTY5M2JcdTY5M2NcdTY5M2VcdTY5NDBcdTY5NDFcdTY5NDMiLDE2LCJcdTY5NTVcdTY5NTZcdTY5NThcdTY5NTlc'@; put 'dTY5NWJcdTY5NWNcdTY5NWYiXSxbIjk4NDAiLCJcdTY5NjFcdTY5NjJcdTY5NjRcdTY5NjVcdTY5NjdcdTY5NjhcdTY5NjlcdTY5NmFcdTY5NmNcdTY5NmRcdTY5NmZcdTY5NzBcdTY5NzIiLDQsIlx1Njk3YVx1Njk3Ylx1Njk3ZFx1Njk3ZVx1Njk3Zlx1Njk4MVx1Njk4M1x1Njk4NVx1Njk4'@; put 'YVx1Njk4Ylx1Njk4Y1x1Njk4ZSIsNSwiXHU2OTk2XHU2OTk3XHU2OTk5XHU2OTlhXHU2OTlkIiw5LCJcdTY5YTlcdTY5YWFcdTY5YWNcdTY5YWVcdTY5YWZcdTY5YjBcdTY5YjJcdTY5YjNcdTY5YjVcdTY5YjZcdTY5YjhcdTY5YjlcdTY5YmFcdTY5YmNcdTY5YmQiXSxbIjk4ODAiLCJcdTY5'@; put 'YmVcdTY5YmZcdTY5YzBcdTY5YzIiLDcsIlx1NjljYlx1NjljZFx1NjljZlx1NjlkMVx1NjlkMlx1NjlkM1x1NjlkNSIsNSwiXHU2OWRjXHU2OWRkXHU2OWRlXHU2OWUxIiwxMSwiXHU2OWVlXHU2OWVmXHU2OWYwXHU2OWYxXHU2OWYzIiw5LCJcdTY5ZmVcdTZhMDAiLDksIlx1NmEwYiIsMTEs'@; put 'Ilx1NmExOSIsNSwiXHU2YTIwXHU2YTIyIiw1LCJcdTZhMjlcdTZhMmJcdTZhMmNcdTZhMmRcdTZhMmVcdTZhMzBcdTZhMzJcdTZhMzNcdTZhMzRcdTZhMzYiLDYsIlx1NmEzZiIsNCwiXHU2YTQ1XHU2YTQ2XHU2YTQ4Iiw3LCJcdTZhNTEiLDYsIlx1NmE1YSJdLFsiOTk0MCIsIlx1NmE1YyIs'@; put 'NCwiXHU2YTYyXHU2YTYzXHU2YTY0XHU2YTY2IiwxMCwiXHU2YTcyIiw2LCJcdTZhN2FcdTZhN2JcdTZhN2RcdTZhN2VcdTZhN2ZcdTZhODFcdTZhODJcdTZhODNcdTZhODUiLDgsIlx1NmE4Zlx1NmE5MiIsNCwiXHU2YTk4Iiw3LCJcdTZhYTEiLDVdLFsiOTk4MCIsIlx1NmFhN1x1NmFhOFx1'@; put 'NmFhYVx1NmFhZCIsMTE0LCJcdTZiMjVcdTZiMjZcdTZiMjgiLDZdLFsiOWE0MCIsIlx1NmIyZlx1NmIzMFx1NmIzMVx1NmIzM1x1NmIzNFx1NmIzNVx1NmIzNlx1NmIzOFx1NmIzYlx1NmIzY1x1NmIzZFx1NmIzZlx1NmI0MFx1NmI0MVx1NmI0Mlx1NmI0NFx1NmI0NVx1NmI0OFx1NmI0YVx1'@; put 'NmI0Ylx1NmI0ZCIsMTEsIlx1NmI1YSIsNywiXHU2YjY4XHU2YjY5XHU2YjZiIiwxMywiXHU2YjdhXHU2YjdkXHU2YjdlXHU2YjdmXHU2YjgwXHU2Yjg1XHU2Yjg4Il0sWyI5YTgwIiwiXHU2YjhjXHU2YjhlXHU2YjhmXHU2YjkwXHU2YjkxXHU2Yjk0XHU2Yjk1XHU2Yjk3XHU2Yjk4XHU2Yjk5'@; put 'XHU2YjljIiw0LCJcdTZiYTIiLDcsIlx1NmJhYiIsNywiXHU2YmI2XHU2YmI4Iiw2LCJcdTZiYzBcdTZiYzNcdTZiYzRcdTZiYzYiLDQsIlx1NmJjY1x1NmJjZVx1NmJkMFx1NmJkMVx1NmJkOFx1NmJkYVx1NmJkYyIsNCwiXHU2YmUyIiw3LCJcdTZiZWNcdTZiZWRcdTZiZWVcdTZiZjBcdTZi'@; put 'ZjFcdTZiZjJcdTZiZjRcdTZiZjZcdTZiZjdcdTZiZjhcdTZiZmFcdTZiZmJcdTZiZmNcdTZiZmUiLDYsIlx1NmMwOCIsNCwiXHU2YzBlXHU2YzEyXHU2YzE3XHU2YzFjXHU2YzFkXHU2YzFlXHU2YzIwXHU2YzIzXHU2YzI1XHU2YzJiXHU2YzJjXHU2YzJkXHU2YzMxXHU2YzMzXHU2YzM2XHU2'@; put 'YzM3XHU2YzM5XHU2YzNhXHU2YzNiXHU2YzNjXHU2YzNlXHU2YzNmXHU2YzQzXHU2YzQ0XHU2YzQ1XHU2YzQ4XHU2YzRiIiw0LCJcdTZjNTFcdTZjNTJcdTZjNTNcdTZjNTZcdTZjNTgiXSxbIjliNDAiLCJcdTZjNTlcdTZjNWFcdTZjNjJcdTZjNjNcdTZjNjVcdTZjNjZcdTZjNjdcdTZjNmIi'@; put 'LDQsIlx1NmM3MVx1NmM3M1x1NmM3NVx1NmM3N1x1NmM3OFx1NmM3YVx1NmM3Ylx1NmM3Y1x1NmM3Zlx1NmM4MFx1NmM4NFx1NmM4N1x1NmM4YVx1NmM4Ylx1NmM4ZFx1NmM4ZVx1NmM5MVx1NmM5Mlx1NmM5NVx1NmM5Nlx1NmM5N1x1NmM5OFx1NmM5YVx1NmM5Y1x1NmM5ZFx1NmM5ZVx1NmNh'@; put 'MFx1NmNhMlx1NmNhOFx1NmNhY1x1NmNhZlx1NmNiMFx1NmNiNFx1NmNiNVx1NmNiNlx1NmNiN1x1NmNiYVx1NmNjMFx1NmNjMVx1NmNjMlx1NmNjM1x1NmNjNlx1NmNjN1x1NmNjOFx1NmNjYlx1NmNjZFx1NmNjZVx1NmNjZlx1NmNkMVx1NmNkMlx1NmNkOCJdLFsiOWI4MCIsIlx1NmNkOVx1'@; put 'NmNkYVx1NmNkY1x1NmNkZFx1NmNkZlx1NmNlNFx1NmNlNlx1NmNlN1x1NmNlOVx1NmNlY1x1NmNlZFx1NmNmMlx1NmNmNFx1NmNmOVx1NmNmZlx1NmQwMFx1NmQwMlx1NmQwM1x1NmQwNVx1NmQwNlx1NmQwOFx1NmQwOVx1NmQwYVx1NmQwZFx1NmQwZlx1NmQxMFx1NmQxMVx1NmQxM1x1NmQx'@; put 'NFx1NmQxNVx1NmQxNlx1NmQxOFx1NmQxY1x1NmQxZFx1NmQxZiIsNSwiXHU2ZDI2XHU2ZDI4XHU2ZDI5XHU2ZDJjXHU2ZDJkXHU2ZDJmXHU2ZDMwXHU2ZDM0XHU2ZDM2XHU2ZDM3XHU2ZDM4XHU2ZDNhXHU2ZDNmXHU2ZDQwXHU2ZDQyXHU2ZDQ0XHU2ZDQ5XHU2ZDRjXHU2ZDUwXHU2ZDU1XHU2'@; put 'ZDU2XHU2ZDU3XHU2ZDU4XHU2ZDViXHU2ZDVkXHU2ZDVmXHU2ZDYxXHU2ZDYyXHU2ZDY0XHU2ZDY1XHU2ZDY3XHU2ZDY4XHU2ZDZiXHU2ZDZjXHU2ZDZkXHU2ZDcwXHU2ZDcxXHU2ZDcyXHU2ZDczXHU2ZDc1XHU2ZDc2XHU2ZDc5XHU2ZDdhXHU2ZDdiXHU2ZDdkIiw0LCJcdTZkODNcdTZkODRc'@; put 'dTZkODZcdTZkODdcdTZkOGFcdTZkOGJcdTZkOGRcdTZkOGZcdTZkOTBcdTZkOTJcdTZkOTYiLDQsIlx1NmQ5Y1x1NmRhMlx1NmRhNVx1NmRhY1x1NmRhZFx1NmRiMFx1NmRiMVx1NmRiM1x1NmRiNFx1NmRiNlx1NmRiN1x1NmRiOSIsNSwiXHU2ZGMxXHU2ZGMyXHU2ZGMzXHU2ZGM4XHU2ZGM5'@; put 'XHU2ZGNhIl0sWyI5YzQwIiwiXHU2ZGNkXHU2ZGNlXHU2ZGNmXHU2ZGQwXHU2ZGQyXHU2ZGQzXHU2ZGQ0XHU2ZGQ1XHU2ZGQ3XHU2ZGRhXHU2ZGRiXHU2ZGRjXHU2ZGRmXHU2ZGUyXHU2ZGUzXHU2ZGU1XHU2ZGU3XHU2ZGU4XHU2ZGU5XHU2ZGVhXHU2ZGVkXHU2ZGVmXHU2ZGYwXHU2ZGYyXHU2'@; put 'ZGY0XHU2ZGY1XHU2ZGY2XHU2ZGY4XHU2ZGZhXHU2ZGZkIiw3LCJcdTZlMDZcdTZlMDdcdTZlMDhcdTZlMDlcdTZlMGJcdTZlMGZcdTZlMTJcdTZlMTNcdTZlMTVcdTZlMThcdTZlMTlcdTZlMWJcdTZlMWNcdTZlMWVcdTZlMWZcdTZlMjJcdTZlMjZcdTZlMjdcdTZlMjhcdTZlMmFcdTZlMmNc'@; put 'dTZlMmVcdTZlMzBcdTZlMzFcdTZlMzNcdTZlMzUiXSxbIjljODAiLCJcdTZlMzZcdTZlMzdcdTZlMzlcdTZlM2IiLDcsIlx1NmU0NSIsNywiXHU2ZTRmXHU2ZTUwXHU2ZTUxXHU2ZTUyXHU2ZTU1XHU2ZTU3XHU2ZTU5XHU2ZTVhXHU2ZTVjXHU2ZTVkXHU2ZTVlXHU2ZTYwIiwxMCwiXHU2ZTZj'@; put 'XHU2ZTZkXHU2ZTZmIiwxNCwiXHU2ZTgwXHU2ZTgxXHU2ZTgyXHU2ZTg0XHU2ZTg3XHU2ZTg4XHU2ZThhIiw0LCJcdTZlOTEiLDYsIlx1NmU5OVx1NmU5YVx1NmU5Ylx1NmU5ZFx1NmU5ZVx1NmVhMFx1NmVhMVx1NmVhM1x1NmVhNFx1NmVhNlx1NmVhOFx1NmVhOVx1NmVhYlx1NmVhY1x1NmVh'@; put 'ZFx1NmVhZVx1NmViMFx1NmViM1x1NmViNVx1NmViOFx1NmViOVx1NmViY1x1NmViZVx1NmViZlx1NmVjMFx1NmVjM1x1NmVjNFx1NmVjNVx1NmVjNlx1NmVjOFx1NmVjOVx1NmVjYVx1NmVjY1x1NmVjZFx1NmVjZVx1NmVkMFx1NmVkMlx1NmVkNlx1NmVkOFx1NmVkOVx1NmVkYlx1NmVkY1x1'@; put 'NmVkZFx1NmVlM1x1NmVlN1x1NmVlYSIsNV0sWyI5ZDQwIiwiXHU2ZWYwXHU2ZWYxXHU2ZWYyXHU2ZWYzXHU2ZWY1XHU2ZWY2XHU2ZWY3XHU2ZWY4XHU2ZWZhIiw3LCJcdTZmMDNcdTZmMDRcdTZmMDVcdTZmMDdcdTZmMDhcdTZmMGEiLDQsIlx1NmYxMFx1NmYxMVx1NmYxMlx1NmYxNiIsOSwi'@; put 'XHU2ZjIxXHU2ZjIyXHU2ZjIzXHU2ZjI1XHU2ZjI2XHU2ZjI3XHU2ZjI4XHU2ZjJjXHU2ZjJlXHU2ZjMwXHU2ZjMyXHU2ZjM0XHU2ZjM1XHU2ZjM3Iiw2LCJcdTZmM2ZcdTZmNDBcdTZmNDFcdTZmNDIiXSxbIjlkODAiLCJcdTZmNDNcdTZmNDRcdTZmNDVcdTZmNDhcdTZmNDlcdTZmNGFcdTZm'@; put 'NGNcdTZmNGUiLDksIlx1NmY1OVx1NmY1YVx1NmY1Ylx1NmY1ZFx1NmY1Zlx1NmY2MFx1NmY2MVx1NmY2M1x1NmY2NFx1NmY2NVx1NmY2NyIsNSwiXHU2ZjZmXHU2ZjcwXHU2ZjcxXHU2ZjczXHU2Zjc1XHU2Zjc2XHU2Zjc3XHU2Zjc5XHU2ZjdiXHU2ZjdkIiw2LCJcdTZmODVcdTZmODZcdTZm'@; put 'ODdcdTZmOGFcdTZmOGJcdTZmOGYiLDEyLCJcdTZmOWRcdTZmOWVcdTZmOWZcdTZmYTBcdTZmYTIiLDQsIlx1NmZhOCIsMTAsIlx1NmZiNFx1NmZiNVx1NmZiN1x1NmZiOFx1NmZiYSIsNSwiXHU2ZmMxXHU2ZmMzIiw1LCJcdTZmY2EiLDYsIlx1NmZkMyIsMTAsIlx1NmZkZlx1NmZlMlx1NmZl'@; put 'M1x1NmZlNFx1NmZlNSJdLFsiOWU0MCIsIlx1NmZlNiIsNywiXHU2ZmYwIiwzMiwiXHU3MDEyIiw3LCJcdTcwMWMiLDYsIlx1NzAyNCIsNl0sWyI5ZTgwIiwiXHU3MDJiIiw5LCJcdTcwMzZcdTcwMzdcdTcwMzhcdTcwM2EiLDE3LCJcdTcwNGRcdTcwNGVcdTcwNTAiLDEzLCJcdTcwNWYiLDEx'@; put 'LCJcdTcwNmVcdTcwNzFcdTcwNzJcdTcwNzNcdTcwNzRcdTcwNzdcdTcwNzlcdTcwN2FcdTcwN2JcdTcwN2RcdTcwODFcdTcwODJcdTcwODNcdTcwODRcdTcwODZcdTcwODdcdTcwODhcdTcwOGJcdTcwOGNcdTcwOGRcdTcwOGZcdTcwOTBcdTcwOTFcdTcwOTNcdTcwOTdcdTcwOThcdTcwOWFc'@; put 'dTcwOWJcdTcwOWUiLDEyLCJcdTcwYjBcdTcwYjJcdTcwYjRcdTcwYjVcdTcwYjZcdTcwYmFcdTcwYmVcdTcwYmZcdTcwYzRcdTcwYzVcdTcwYzZcdTcwYzdcdTcwYzlcdTcwY2IiLDEyLCJcdTcwZGEiXSxbIjlmNDAiLCJcdTcwZGNcdTcwZGRcdTcwZGVcdTcwZTBcdTcwZTFcdTcwZTJcdTcw'@; put 'ZTNcdTcwZTVcdTcwZWFcdTcwZWVcdTcwZjAiLDYsIlx1NzBmOFx1NzBmYVx1NzBmYlx1NzBmY1x1NzBmZSIsMTAsIlx1NzEwYiIsNCwiXHU3MTExXHU3MTEyXHU3MTE0XHU3MTE3XHU3MTFiIiwxMCwiXHU3MTI3Iiw3LCJcdTcxMzJcdTcxMzNcdTcxMzQiXSxbIjlmODAiLCJcdTcxMzVcdTcx'@; put 'MzciLDEzLCJcdTcxNDZcdTcxNDdcdTcxNDhcdTcxNDlcdTcxNGJcdTcxNGRcdTcxNGYiLDEyLCJcdTcxNWRcdTcxNWYiLDQsIlx1NzE2NVx1NzE2OSIsNCwiXHU3MTZmXHU3MTcwXHU3MTcxXHU3MTc0XHU3MTc1XHU3MTc2XHU3MTc3XHU3MTc5XHU3MTdiXHU3MTdjXHU3MTdlIiw1LCJcdTcx'@; put 'ODUiLDQsIlx1NzE4Ylx1NzE4Y1x1NzE4ZFx1NzE4ZVx1NzE5MFx1NzE5MVx1NzE5Mlx1NzE5M1x1NzE5NVx1NzE5Nlx1NzE5N1x1NzE5YSIsNCwiXHU3MWExIiw2LCJcdTcxYTlcdTcxYWFcdTcxYWJcdTcxYWQiLDUsIlx1NzFiNFx1NzFiNlx1NzFiN1x1NzFiOFx1NzFiYSIsOCwiXHU3MWM0'@; put 'Iiw5LCJcdTcxY2YiLDRdLFsiYTA0MCIsIlx1NzFkNiIsOSwiXHU3MWUxXHU3MWUyXHU3MWUzXHU3MWU0XHU3MWU2XHU3MWU4Iiw1LCJcdTcxZWYiLDksIlx1NzFmYSIsMTEsIlx1NzIwNyIsMTldLFsiYTA4MCIsIlx1NzIxYlx1NzIxY1x1NzIxZSIsOSwiXHU3MjI5XHU3MjJiXHU3MjJkXHU3'@; put 'MjJlXHU3MjJmXHU3MjMyXHU3MjMzXHU3MjM0XHU3MjNhXHU3MjNjXHU3MjNlXHU3MjQwIiw2LCJcdTcyNDlcdTcyNGFcdTcyNGJcdTcyNGVcdTcyNGZcdTcyNTBcdTcyNTFcdTcyNTNcdTcyNTRcdTcyNTVcdTcyNTdcdTcyNThcdTcyNWFcdTcyNWNcdTcyNWVcdTcyNjBcdTcyNjNcdTcyNjRc'@; put 'dTcyNjVcdTcyNjhcdTcyNmFcdTcyNmJcdTcyNmNcdTcyNmRcdTcyNzBcdTcyNzFcdTcyNzNcdTcyNzRcdTcyNzZcdTcyNzdcdTcyNzhcdTcyN2JcdTcyN2NcdTcyN2RcdTcyODJcdTcyODNcdTcyODUiLDQsIlx1NzI4Y1x1NzI4ZVx1NzI5MFx1NzI5MVx1NzI5MyIsMTEsIlx1NzJhMCIsMTEs'@; put 'Ilx1NzJhZVx1NzJiMVx1NzJiMlx1NzJiM1x1NzJiNVx1NzJiYSIsNiwiXHU3MmM1XHU3MmM2XHU3MmM3XHU3MmM5XHU3MmNhXHU3MmNiXHU3MmNjXHU3MmNmXHU3MmQxXHU3MmQzXHU3MmQ0XHU3MmQ1XHU3MmQ2XHU3MmQ4XHU3MmRhXHU3MmRiIl0sWyJhMWExIiwiXHUzMDAwXHUzMDAxXHUz'@; put 'MDAyXHhiN1x1MDJjOVx1MDJjN1x4YThcdTMwMDNcdTMwMDVcdTIwMTRcdWZmNWVcdTIwMTZcdTIwMjZcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTMwMTRcdTMwMTVcdTMwMDgiLDcsIlx1MzAxNlx1MzAxN1x1MzAxMFx1MzAxMVx4YjFceGQ3XHhmN1x1MjIzNlx1MjIyN1x1MjIyOFx1MjIx'@; put 'MVx1MjIwZlx1MjIyYVx1MjIyOVx1MjIwOFx1MjIzN1x1MjIxYVx1MjJhNVx1MjIyNVx1MjIyMFx1MjMxMlx1MjI5OVx1MjIyYlx1MjIyZVx1MjI2MVx1MjI0Y1x1MjI0OFx1MjIzZFx1MjIxZFx1MjI2MFx1MjI2ZVx1MjI2Zlx1MjI2NFx1MjI2NVx1MjIxZVx1MjIzNVx1MjIzNFx1MjY0Mlx1'@; put 'MjY0MFx4YjBcdTIwMzJcdTIwMzNcdTIxMDNcdWZmMDRceGE0XHVmZmUwXHVmZmUxXHUyMDMwXHhhN1x1MjExNlx1MjYwNlx1MjYwNVx1MjVjYlx1MjVjZlx1MjVjZVx1MjVjN1x1MjVjNlx1MjVhMVx1MjVhMFx1MjViM1x1MjViMlx1MjAzYlx1MjE5Mlx1MjE5MFx1MjE5MVx1MjE5M1x1MzAx'@; put 'MyJdLFsiYTJhMSIsIlx1MjE3MCIsOV0sWyJhMmIxIiwiXHUyNDg4IiwxOSwiXHUyNDc0IiwxOSwiXHUyNDYwIiw5XSxbImEyZTUiLCJcdTMyMjAiLDldLFsiYTJmMSIsIlx1MjE2MCIsMTFdLFsiYTNhMSIsIlx1ZmYwMVx1ZmYwMlx1ZmYwM1x1ZmZlNVx1ZmYwNSIsODgsIlx1ZmZlMyJdLFsi'@; put 'YTRhMSIsIlx1MzA0MSIsODJdLFsiYTVhMSIsIlx1MzBhMSIsODVdLFsiYTZhMSIsIlx1MDM5MSIsMTYsIlx1MDNhMyIsNl0sWyJhNmMxIiwiXHUwM2IxIiwxNiwiXHUwM2MzIiw2XSxbImE2ZTAiLCJcdWZlMzVcdWZlMzZcdWZlMzlcdWZlM2FcdWZlM2ZcdWZlNDBcdWZlM2RcdWZlM2VcdWZl'@; put 'NDFcdWZlNDJcdWZlNDNcdWZlNDQiXSxbImE2ZWUiLCJcdWZlM2JcdWZlM2NcdWZlMzdcdWZlMzhcdWZlMzEiXSxbImE2ZjQiLCJcdWZlMzNcdWZlMzQiXSxbImE3YTEiLCJcdTA0MTAiLDUsIlx1MDQwMVx1MDQxNiIsMjVdLFsiYTdkMSIsIlx1MDQzMCIsNSwiXHUwNDUxXHUwNDM2IiwyNV0s'@; put 'WyJhODQwIiwiXHUwMmNhXHUwMmNiXHUwMmQ5XHUyMDEzXHUyMDE1XHUyMDI1XHUyMDM1XHUyMTA1XHUyMTA5XHUyMTk2XHUyMTk3XHUyMTk4XHUyMTk5XHUyMjE1XHUyMjFmXHUyMjIzXHUyMjUyXHUyMjY2XHUyMjY3XHUyMmJmXHUyNTUwIiwzNSwiXHUyNTgxIiw2XSxbImE4ODAiLCJcdTI1'@; put 'ODgiLDcsIlx1MjU5M1x1MjU5NFx1MjU5NVx1MjViY1x1MjViZFx1MjVlMlx1MjVlM1x1MjVlNFx1MjVlNVx1MjYwOVx1MjI5NVx1MzAxMlx1MzAxZFx1MzAxZSJdLFsiYThhMSIsIlx1MDEwMVx4ZTFcdTAxY2VceGUwXHUwMTEzXHhlOVx1MDExYlx4ZThcdTAxMmJceGVkXHUwMWQwXHhlY1x1'@; put 'MDE0ZFx4ZjNcdTAxZDJceGYyXHUwMTZiXHhmYVx1MDFkNFx4ZjlcdTAxZDZcdTAxZDhcdTAxZGFcdTAxZGNceGZjXHhlYVx1MDI1MSJdLFsiYThiZCIsIlx1MDE0NFx1MDE0OCJdLFsiYThjMCIsIlx1MDI2MSJdLFsiYThjNSIsIlx1MzEwNSIsMzZdLFsiYTk0MCIsIlx1MzAyMSIsOCwiXHUz'@; put 'MmEzXHUzMzhlXHUzMzhmXHUzMzljXHUzMzlkXHUzMzllXHUzM2ExXHUzM2M0XHUzM2NlXHUzM2QxXHUzM2QyXHUzM2Q1XHVmZTMwXHVmZmUyXHVmZmU0Il0sWyJhOTU5IiwiXHUyMTIxXHUzMjMxIl0sWyJhOTVjIiwiXHUyMDEwIl0sWyJhOTYwIiwiXHUzMGZjXHUzMDliXHUzMDljXHUzMGZk'@; put 'XHUzMGZlXHUzMDA2XHUzMDlkXHUzMDllXHVmZTQ5Iiw5LCJcdWZlNTRcdWZlNTVcdWZlNTZcdWZlNTdcdWZlNTkiLDhdLFsiYTk4MCIsIlx1ZmU2MiIsNCwiXHVmZTY4XHVmZTY5XHVmZTZhXHVmZTZiIl0sWyJhOTk2IiwiXHUzMDA3Il0sWyJhOWE0IiwiXHUyNTAwIiw3NV0sWyJhYTQwIiwi'@; put 'XHU3MmRjXHU3MmRkXHU3MmRmXHU3MmUyIiw1LCJcdTcyZWFcdTcyZWJcdTcyZjVcdTcyZjZcdTcyZjlcdTcyZmRcdTcyZmVcdTcyZmZcdTczMDBcdTczMDJcdTczMDQiLDUsIlx1NzMwYlx1NzMwY1x1NzMwZFx1NzMwZlx1NzMxMFx1NzMxMVx1NzMxMlx1NzMxNFx1NzMxOFx1NzMxOVx1NzMx'@; put 'YVx1NzMxZlx1NzMyMFx1NzMyM1x1NzMyNFx1NzMyNlx1NzMyN1x1NzMyOFx1NzMyZFx1NzMyZlx1NzMzMFx1NzMzMlx1NzMzM1x1NzMzNVx1NzMzNlx1NzMzYVx1NzMzYlx1NzMzY1x1NzMzZFx1NzM0MCIsOF0sWyJhYTgwIiwiXHU3MzQ5XHU3MzRhXHU3MzRiXHU3MzRjXHU3MzRlXHU3MzRm'@; put 'XHU3MzUxXHU3MzUzXHU3MzU0XHU3MzU1XHU3MzU2XHU3MzU4Iiw3LCJcdTczNjEiLDEwLCJcdTczNmVcdTczNzBcdTczNzEiXSxbImFiNDAiLCJcdTczNzIiLDExLCJcdTczN2YiLDQsIlx1NzM4NVx1NzM4Nlx1NzM4OFx1NzM4YVx1NzM4Y1x1NzM4ZFx1NzM4Zlx1NzM5MFx1NzM5Mlx1NzM5'@; put 'M1x1NzM5NFx1NzM5NVx1NzM5N1x1NzM5OFx1NzM5OVx1NzM5YVx1NzM5Y1x1NzM5ZFx1NzM5ZVx1NzNhMFx1NzNhMVx1NzNhMyIsNSwiXHU3M2FhXHU3M2FjXHU3M2FkXHU3M2IxXHU3M2I0XHU3M2I1XHU3M2I2XHU3M2I4XHU3M2I5XHU3M2JjXHU3M2JkXHU3M2JlXHU3M2JmXHU3M2MxXHU3'@; put 'M2MzIiw0XSxbImFiODAiLCJcdTczY2JcdTczY2NcdTczY2VcdTczZDIiLDYsIlx1NzNkYVx1NzNkYlx1NzNkY1x1NzNkZFx1NzNkZlx1NzNlMVx1NzNlMlx1NzNlM1x1NzNlNFx1NzNlNlx1NzNlOFx1NzNlYVx1NzNlYlx1NzNlY1x1NzNlZVx1NzNlZlx1NzNmMFx1NzNmMVx1NzNmMyIsNF0s'@; put 'WyJhYzQwIiwiXHU3M2Y4IiwxMCwiXHU3NDA0XHU3NDA3XHU3NDA4XHU3NDBiXHU3NDBjXHU3NDBkXHU3NDBlXHU3NDExIiw4LCJcdTc0MWMiLDUsIlx1NzQyM1x1NzQyNFx1NzQyN1x1NzQyOVx1NzQyYlx1NzQyZFx1NzQyZlx1NzQzMVx1NzQzMlx1NzQzNyIsNCwiXHU3NDNkXHU3NDNlXHU3'@; put 'NDNmXHU3NDQwXHU3NDQyIiwxMV0sWyJhYzgwIiwiXHU3NDRlIiw2LCJcdTc0NTZcdTc0NThcdTc0NWRcdTc0NjAiLDEyLCJcdTc0NmVcdTc0NmZcdTc0NzEiLDQsIlx1NzQ3OFx1NzQ3OVx1NzQ3YSJdLFsiYWQ0MCIsIlx1NzQ3Ylx1NzQ3Y1x1NzQ3ZFx1NzQ3Zlx1NzQ4Mlx1NzQ4NFx1NzQ4'@; put 'NVx1NzQ4Nlx1NzQ4OFx1NzQ4OVx1NzQ4YVx1NzQ4Y1x1NzQ4ZFx1NzQ4Zlx1NzQ5MSIsMTAsIlx1NzQ5ZFx1NzQ5ZiIsNywiXHU3NGFhIiwxNSwiXHU3NGJiIiwxMl0sWyJhZDgwIiwiXHU3NGM4Iiw5LCJcdTc0ZDMiLDgsIlx1NzRkZFx1NzRkZlx1NzRlMVx1NzRlNVx1NzRlNyIsNiwiXHU3'@; put 'NGYwXHU3NGYxXHU3NGYyIl0sWyJhZTQwIiwiXHU3NGYzXHU3NGY1XHU3NGY4Iiw2LCJcdTc1MDBcdTc1MDFcdTc1MDJcdTc1MDNcdTc1MDUiLDcsIlx1NzUwZVx1NzUxMFx1NzUxMlx1NzUxNFx1NzUxNVx1NzUxNlx1NzUxN1x1NzUxYlx1NzUxZFx1NzUxZVx1NzUyMCIsNCwiXHU3NTI2XHU3'@; put 'NTI3XHU3NTJhXHU3NTJlXHU3NTM0XHU3NTM2XHU3NTM5XHU3NTNjXHU3NTNkXHU3NTNmXHU3NTQxXHU3NTQyXHU3NTQzXHU3NTQ0XHU3NTQ2XHU3NTQ3XHU3NTQ5XHU3NTRhXHU3NTRkXHU3NTUwXHU3NTUxXHU3NTUyXHU3NTUzXHU3NTU1XHU3NTU2XHU3NTU3XHU3NTU4Il0sWyJhZTgwIiwi'@; put 'XHU3NTVkIiw3LCJcdTc1NjdcdTc1NjhcdTc1NjlcdTc1NmIiLDYsIlx1NzU3M1x1NzU3NVx1NzU3Nlx1NzU3N1x1NzU3YSIsNCwiXHU3NTgwXHU3NTgxXHU3NTgyXHU3NTg0XHU3NTg1XHU3NTg3Il0sWyJhZjQwIiwiXHU3NTg4XHU3NTg5XHU3NThhXHU3NThjXHU3NThkXHU3NThlXHU3NTkw'@; put 'XHU3NTkzXHU3NTk1XHU3NTk4XHU3NTliXHU3NTljXHU3NTllXHU3NWEyXHU3NWE2Iiw0LCJcdTc1YWRcdTc1YjZcdTc1YjdcdTc1YmFcdTc1YmJcdTc1YmZcdTc1YzBcdTc1YzFcdTc1YzZcdTc1Y2JcdTc1Y2NcdTc1Y2VcdTc1Y2ZcdTc1ZDBcdTc1ZDFcdTc1ZDNcdTc1ZDdcdTc1ZDlcdTc1'@; put 'ZGFcdTc1ZGNcdTc1ZGRcdTc1ZGZcdTc1ZTBcdTc1ZTFcdTc1ZTVcdTc1ZTlcdTc1ZWNcdTc1ZWRcdTc1ZWVcdTc1ZWZcdTc1ZjJcdTc1ZjNcdTc1ZjVcdTc1ZjZcdTc1ZjdcdTc1ZjhcdTc1ZmFcdTc1ZmJcdTc1ZmRcdTc1ZmVcdTc2MDJcdTc2MDRcdTc2MDZcdTc2MDciXSxbImFmODAiLCJc'@; put 'dTc2MDhcdTc2MDlcdTc2MGJcdTc2MGRcdTc2MGVcdTc2MGZcdTc2MTFcdTc2MTJcdTc2MTNcdTc2MTRcdTc2MTZcdTc2MWFcdTc2MWNcdTc2MWRcdTc2MWVcdTc2MjFcdTc2MjNcdTc2MjdcdTc2MjhcdTc2MmNcdTc2MmVcdTc2MmZcdTc2MzFcdTc2MzJcdTc2MzZcdTc2MzdcdTc2MzlcdTc2'@; put 'M2FcdTc2M2JcdTc2M2RcdTc2NDFcdTc2NDJcdTc2NDQiXSxbImIwNDAiLCJcdTc2NDUiLDYsIlx1NzY0ZSIsNSwiXHU3NjU1XHU3NjU3Iiw0LCJcdTc2NWRcdTc2NWZcdTc2NjBcdTc2NjFcdTc2NjJcdTc2NjQiLDYsIlx1NzY2Y1x1NzY2ZFx1NzY2ZVx1NzY3MCIsNywiXHU3Njc5XHU3Njdh'@; put 'XHU3NjdjXHU3NjdmXHU3NjgwXHU3NjgxXHU3NjgzXHU3Njg1XHU3Njg5XHU3NjhhXHU3NjhjXHU3NjhkXHU3NjhmXHU3NjkwXHU3NjkyXHU3Njk0XHU3Njk1XHU3Njk3XHU3Njk4XHU3NjlhXHU3NjliIl0sWyJiMDgwIiwiXHU3NjljIiw3LCJcdTc2YTUiLDgsIlx1NzZhZlx1NzZiMFx1NzZi'@; put 'M1x1NzZiNSIsOSwiXHU3NmMwXHU3NmMxXHU3NmMzXHU1NTRhXHU5NjNmXHU1N2MzXHU2MzI4XHU1NGNlXHU1NTA5XHU1NGMwXHU3NjkxXHU3NjRjXHU4NTNjXHU3N2VlXHU4MjdlXHU3ODhkXHU3MjMxXHU5Njk4XHU5NzhkXHU2YzI4XHU1Yjg5XHU0ZmZhXHU2MzA5XHU2Njk3XHU1Y2I4XHU4'@; put 'MGZhXHU2ODQ4XHU4MGFlXHU2NjAyXHU3NmNlXHU1MWY5XHU2NTU2XHU3MWFjXHU3ZmYxXHU4ODg0XHU1MGIyXHU1OTY1XHU2MWNhXHU2ZmIzXHU4MmFkXHU2MzRjXHU2MjUyXHU1M2VkXHU1NDI3XHU3YjA2XHU1MTZiXHU3NWE0XHU1ZGY0XHU2MmQ0XHU4ZGNiXHU5Nzc2XHU2MjhhXHU4MDE5'@; put 'XHU1NzVkXHU5NzM4XHU3ZjYyXHU3MjM4XHU3NjdkXHU2N2NmXHU3NjdlXHU2NDQ2XHU0ZjcwXHU4ZDI1XHU2MmRjXHU3YTE3XHU2NTkxXHU3M2VkXHU2NDJjXHU2MjczXHU4MjJjXHU5ODgxXHU2NzdmXHU3MjQ4XHU2MjZlXHU2MmNjXHU0ZjM0XHU3NGUzXHU1MzRhXHU1MjllXHU3ZWNhXHU5'@; put 'MGE2XHU1ZTJlXHU2ODg2XHU2OTljXHU4MTgwXHU3ZWQxXHU2OGQyXHU3OGM1XHU4NjhjXHU5NTUxXHU1MDhkXHU4YzI0XHU4MmRlXHU4MGRlXHU1MzA1XHU4OTEyXHU1MjY1Il0sWyJiMTQwIiwiXHU3NmM0XHU3NmM3XHU3NmM5XHU3NmNiXHU3NmNjXHU3NmQzXHU3NmQ1XHU3NmQ5XHU3NmRh'@; put 'XHU3NmRjXHU3NmRkXHU3NmRlXHU3NmUwIiw0LCJcdTc2ZTYiLDcsIlx1NzZmMFx1NzZmM1x1NzZmNVx1NzZmNlx1NzZmN1x1NzZmYVx1NzZmYlx1NzZmZFx1NzZmZlx1NzcwMFx1NzcwMlx1NzcwM1x1NzcwNVx1NzcwNlx1NzcwYVx1NzcwY1x1NzcwZSIsMTAsIlx1NzcxYlx1NzcxY1x1Nzcx'@; put 'ZFx1NzcxZVx1NzcyMVx1NzcyM1x1NzcyNFx1NzcyNVx1NzcyN1x1NzcyYVx1NzcyYiJdLFsiYjE4MCIsIlx1NzcyY1x1NzcyZVx1NzczMCIsNCwiXHU3NzM5XHU3NzNiXHU3NzNkXHU3NzNlXHU3NzNmXHU3NzQyXHU3NzQ0XHU3NzQ1XHU3NzQ2XHU3NzQ4Iiw3LCJcdTc3NTIiLDcsIlx1Nzc1'@; put 'Y1x1ODU4NFx1OTZmOVx1NGZkZFx1NTgyMVx1OTk3MVx1NWI5ZFx1NjJiMVx1NjJhNVx1NjZiNFx1OGM3OVx1OWM4ZFx1NzIwNlx1Njc2Zlx1Nzg5MVx1NjBiMlx1NTM1MVx1NTMxN1x1OGY4OFx1ODBjY1x1OGQxZFx1OTRhMVx1NTAwZFx1NzJjOFx1NTkwN1x1NjBlYlx1NzExOVx1ODhhYlx1'@; put 'NTk1NFx1ODJlZlx1NjcyY1x1N2IyOFx1NWQyOVx1N2VmN1x1NzUyZFx1NmNmNVx1OGU2Nlx1OGZmOFx1OTAzY1x1OWYzYlx1NmJkNFx1OTExOVx1N2IxNFx1NWY3Y1x1NzhhN1x1ODRkNlx1ODUzZFx1NmJkNVx1NmJkOVx1NmJkNlx1NWUwMVx1NWU4N1x1NzVmOVx1OTVlZFx1NjU1ZFx1NWYw'@; put 'YVx1NWZjNVx1OGY5Zlx1NThjMVx1ODFjMlx1OTA3Zlx1OTY1Ylx1OTdhZFx1OGZiOVx1N2YxNlx1OGQyY1x1NjI0MVx1NGZiZlx1NTNkOFx1NTM1ZVx1OGZhOFx1OGZhOVx1OGZhYlx1OTA0ZFx1NjgwN1x1NWY2YVx1ODE5OFx1ODg2OFx1OWNkNlx1NjE4Ylx1NTIyYlx1NzYyYVx1NWY2Y1x1'@; put 'NjU4Y1x1NmZkMlx1NmVlOFx1NWJiZVx1NjQ0OFx1NTE3NVx1NTFiMFx1NjdjNFx1NGUxOVx1NzljOVx1OTk3Y1x1NzBiMyJdLFsiYjI0MCIsIlx1Nzc1ZFx1Nzc1ZVx1Nzc1Zlx1Nzc2MFx1Nzc2NFx1Nzc2N1x1Nzc2OVx1Nzc2YVx1Nzc2ZCIsMTEsIlx1Nzc3YVx1Nzc3Ylx1Nzc3Y1x1Nzc4'@; put 'MVx1Nzc4Mlx1Nzc4M1x1Nzc4NiIsNSwiXHU3NzhmXHU3NzkwXHU3NzkzIiwxMSwiXHU3N2ExXHU3N2EzXHU3N2E0XHU3N2E2XHU3N2E4XHU3N2FiXHU3N2FkXHU3N2FlXHU3N2FmXHU3N2IxXHU3N2IyXHU3N2I0XHU3N2I2Iiw0XSxbImIyODAiLCJcdTc3YmNcdTc3YmVcdTc3YzAiLDEyLCJc'@; put 'dTc3Y2UiLDgsIlx1NzdkOFx1NzdkOVx1NzdkYVx1NzdkZCIsNCwiXHU3N2U0XHU3NWM1XHU1ZTc2XHU3M2JiXHU4M2UwXHU2NGFkXHU2MmU4XHU5NGI1XHU2Y2UyXHU1MzVhXHU1MmMzXHU2NDBmXHU5NGMyXHU3Yjk0XHU0ZjJmXHU1ZTFiXHU4MjM2XHU4MTE2XHU4MThhXHU2ZTI0XHU2Y2Nh'@; put 'XHU5YTczXHU2MzU1XHU1MzVjXHU1NGZhXHU4ODY1XHU1N2UwXHU0ZTBkXHU1ZTAzXHU2YjY1XHU3YzNmXHU5MGU4XHU2MDE2XHU2NGU2XHU3MzFjXHU4OGMxXHU2NzUwXHU2MjRkXHU4ZDIyXHU3NzZjXHU4ZTI5XHU5MWM3XHU1ZjY5XHU4M2RjXHU4NTIxXHU5OTEwXHU1M2MyXHU4Njk1XHU2'@; put 'YjhiXHU2MGVkXHU2MGU4XHU3MDdmXHU4MmNkXHU4MjMxXHU0ZWQzXHU2Y2E3XHU4NWNmXHU2NGNkXHU3Y2Q5XHU2OWZkXHU2NmY5XHU4MzQ5XHU1Mzk1XHU3YjU2XHU0ZmE3XHU1MThjXHU2ZDRiXHU1YzQyXHU4ZTZkXHU2M2QyXHU1M2M5XHU4MzJjXHU4MzM2XHU2N2U1XHU3OGI0XHU2NDNk'@; put 'XHU1YmRmXHU1Yzk0XHU1ZGVlXHU4YmU3XHU2MmM2XHU2N2Y0XHU4YzdhXHU2NDAwXHU2M2JhXHU4NzQ5XHU5OThiXHU4YzE3XHU3ZjIwXHU5NGYyXHU0ZWE3XHU5NjEwXHU5OGE0XHU2NjBjXHU3MzE2Il0sWyJiMzQwIiwiXHU3N2U2XHU3N2U4XHU3N2VhXHU3N2VmXHU3N2YwXHU3N2YxXHU3'@; put 'N2YyXHU3N2Y0XHU3N2Y1XHU3N2Y3XHU3N2Y5XHU3N2ZhXHU3N2ZiXHU3N2ZjXHU3ODAzIiw1LCJcdTc4MGFcdTc4MGJcdTc4MGVcdTc4MGZcdTc4MTBcdTc4MTNcdTc4MTVcdTc4MTlcdTc4MWJcdTc4MWVcdTc4MjBcdTc4MjFcdTc4MjJcdTc4MjRcdTc4MjhcdTc4MmFcdTc4MmJcdTc4MmVc'@; put 'dTc4MmZcdTc4MzFcdTc4MzJcdTc4MzNcdTc4MzVcdTc4MzZcdTc4M2RcdTc4M2ZcdTc4NDFcdTc4NDJcdTc4NDNcdTc4NDRcdTc4NDZcdTc4NDhcdTc4NDlcdTc4NGFcdTc4NGJcdTc4NGRcdTc4NGZcdTc4NTFcdTc4NTNcdTc4NTRcdTc4NThcdTc4NTlcdTc4NWEiXSxbImIzODAiLCJcdTc4'@; put 'NWJcdTc4NWNcdTc4NWUiLDExLCJcdTc4NmYiLDcsIlx1Nzg3OFx1Nzg3OVx1Nzg3YVx1Nzg3Ylx1Nzg3ZCIsNiwiXHU1NzNhXHU1YzFkXHU1ZTM4XHU5NTdmXHU1MDdmXHU4MGEwXHU1MzgyXHU2NTVlXHU3NTQ1XHU1NTMxXHU1MDIxXHU4ZDg1XHU2Mjg0XHU5NDllXHU2NzFkXHU1NjMyXHU2'@; put 'ZjZlXHU1ZGUyXHU1NDM1XHU3MDkyXHU4ZjY2XHU2MjZmXHU2NGE0XHU2M2EzXHU1ZjdiXHU2Zjg4XHU5MGY0XHU4MWUzXHU4ZmIwXHU1YzE4XHU2NjY4XHU1ZmYxXHU2Yzg5XHU5NjQ4XHU4ZDgxXHU4ODZjXHU2NDkxXHU3OWYwXHU1N2NlXHU2YTU5XHU2MjEwXHU1NDQ4XHU0ZTU4XHU3YTBi'@; put 'XHU2MGU5XHU2Zjg0XHU4YmRhXHU2MjdmXHU5MDFlXHU5YThiXHU3OWU0XHU1NDAzXHU3NWY0XHU2MzAxXHU1MzE5XHU2YzYwXHU4ZmRmXHU1ZjFiXHU5YTcwXHU4MDNiXHU5ZjdmXHU0Zjg4XHU1YzNhXHU4ZDY0XHU3ZmM1XHU2NWE1XHU3MGJkXHU1MTQ1XHU1MWIyXHU4NjZiXHU1ZDA3XHU1'@; put 'YmEwXHU2MmJkXHU5MTZjXHU3NTc0XHU4ZTBjXHU3YTIwXHU2MTAxXHU3Yjc5XHU0ZWM3XHU3ZWY4XHU3Nzg1XHU0ZTExXHU4MWVkXHU1MjFkXHU1MWZhXHU2YTcxXHU1M2E4XHU4ZTg3XHU5NTA0XHU5NmNmXHU2ZWMxXHU5NjY0XHU2OTVhIl0sWyJiNDQwIiwiXHU3ODg0XHU3ODg1XHU3ODg2'@; put 'XHU3ODg4XHU3ODhhXHU3ODhiXHU3ODhmXHU3ODkwXHU3ODkyXHU3ODk0XHU3ODk1XHU3ODk2XHU3ODk5XHU3ODlkXHU3ODllXHU3OGEwXHU3OGEyXHU3OGE0XHU3OGE2XHU3OGE4Iiw3LCJcdTc4YjVcdTc4YjZcdTc4YjdcdTc4YjhcdTc4YmFcdTc4YmJcdTc4YmNcdTc4YmRcdTc4YmZcdTc4'@; put 'YzBcdTc4YzJcdTc4YzNcdTc4YzRcdTc4YzZcdTc4YzdcdTc4YzhcdTc4Y2NcdTc4Y2RcdTc4Y2VcdTc4Y2ZcdTc4ZDFcdTc4ZDJcdTc4ZDNcdTc4ZDZcdTc4ZDdcdTc4ZDhcdTc4ZGEiLDldLFsiYjQ4MCIsIlx1NzhlNFx1NzhlNVx1NzhlNlx1NzhlN1x1NzhlOVx1NzhlYVx1NzhlYlx1Nzhl'@; put 'ZCIsNCwiXHU3OGYzXHU3OGY1XHU3OGY2XHU3OGY4XHU3OGY5XHU3OGZiIiw1LCJcdTc5MDJcdTc5MDNcdTc5MDRcdTc5MDYiLDYsIlx1Nzg0MFx1NTBhOFx1NzdkN1x1NjQxMFx1ODllNlx1NTkwNFx1NjNlM1x1NWRkZFx1N2E3Zlx1NjkzZFx1NGYyMFx1ODIzOVx1NTU5OFx1NGUzMlx1NzVh'@; put 'ZVx1N2E5N1x1NWU2Mlx1NWU4YVx1OTVlZlx1NTIxYlx1NTQzOVx1NzA4YVx1NjM3Nlx1OTUyNFx1NTc4Mlx1NjYyNVx1NjkzZlx1OTE4N1x1NTUwN1x1NmRmM1x1N2VhZlx1ODgyMlx1NjIzM1x1N2VmMFx1NzViNVx1ODMyOFx1NzhjMVx1OTZjY1x1OGY5ZVx1NjE0OFx1NzRmN1x1OGJjZFx1'@; put 'NmI2NFx1NTIzYVx1OGQ1MFx1NmIyMVx1ODA2YVx1ODQ3MVx1NTZmMVx1NTMwNlx1NGVjZVx1NGUxYlx1NTFkMVx1N2M5N1x1OTE4Ylx1N2MwN1x1NGZjM1x1OGU3Zlx1N2JlMVx1N2E5Y1x1NjQ2N1x1NWQxNFx1NTBhY1x1ODEwNlx1NzYwMVx1N2NiOVx1NmRlY1x1N2ZlMFx1Njc1MVx1NWI1'@; put 'OFx1NWJmOFx1NzhjYlx1NjRhZVx1NjQxM1x1NjNhYVx1NjMyYlx1OTUxOVx1NjQyZFx1OGZiZVx1N2I1NFx1NzYyOVx1NjI1M1x1NTkyN1x1NTQ0Nlx1NmI3OVx1NTBhM1x1NjIzNFx1NWUyNlx1NmI4Nlx1NGVlM1x1OGQzN1x1ODg4Ylx1NWY4NVx1OTAyZSJdLFsiYjU0MCIsIlx1NzkwZCIs'@; put 'NSwiXHU3OTE0Iiw5LCJcdTc5MWYiLDQsIlx1NzkyNSIsMTQsIlx1NzkzNSIsNCwiXHU3OTNkXHU3OTNmXHU3OTQyXHU3OTQzXHU3OTQ0XHU3OTQ1XHU3OTQ3XHU3OTRhIiw4LCJcdTc5NTRcdTc5NTVcdTc5NThcdTc5NTlcdTc5NjFcdTc5NjMiXSxbImI1ODAiLCJcdTc5NjRcdTc5NjZcdTc5'@; put 'NjlcdTc5NmFcdTc5NmJcdTc5NmNcdTc5NmVcdTc5NzAiLDYsIlx1Nzk3OVx1Nzk3YiIsNCwiXHU3OTgyXHU3OTgzXHU3OTg2XHU3OTg3XHU3OTg4XHU3OTg5XHU3OThiXHU3OThjXHU3OThkXHU3OThlXHU3OTkwXHU3OTkxXHU3OTkyXHU2MDIwXHU4MDNkXHU2MmM1XHU0ZTM5XHU1MzU1XHU5'@; put 'MGY4XHU2M2I4XHU4MGM2XHU2NWU2XHU2YzJlXHU0ZjQ2XHU2MGVlXHU2ZGUxXHU4YmRlXHU1ZjM5XHU4NmNiXHU1ZjUzXHU2MzIxXHU1MTVhXHU4MzYxXHU2ODYzXHU1MjAwXHU2MzYzXHU4ZTQ4XHU1MDEyXHU1YzliXHU3OTc3XHU1YmZjXHU1MjMwXHU3YTNiXHU2MGJjXHU5MDUzXHU3NmQ3'@; put 'XHU1ZmI3XHU1Zjk3XHU3Njg0XHU4ZTZjXHU3MDZmXHU3NjdiXHU3YjQ5XHU3N2FhXHU1MWYzXHU5MDkzXHU1ODI0XHU0ZjRlXHU2ZWY0XHU4ZmVhXHU2NTRjXHU3YjFiXHU3MmM0XHU2ZGE0XHU3ZmRmXHU1YWUxXHU2MmI1XHU1ZTk1XHU1NzMwXHU4NDgyXHU3YjJjXHU1ZTFkXHU1ZjFmXHU5'@; put 'MDEyXHU3ZjE0XHU5OGEwXHU2MzgyXHU2ZWM3XHU3ODk4XHU3MGI5XHU1MTc4XHU5NzViXHU1N2FiXHU3NTM1XHU0ZjQzXHU3NTM4XHU1ZTk3XHU2MGU2XHU1OTYwXHU2ZGMwXHU2YmJmXHU3ODg5XHU1M2ZjXHU5NmQ1XHU1MWNiXHU1MjAxXHU2Mzg5XHU1NDBhXHU5NDkzXHU4YzAzXHU4ZGNj'@; put 'XHU3MjM5XHU3ODlmXHU4Nzc2XHU4ZmVkXHU4YzBkXHU1M2UwIl0sWyJiNjQwIiwiXHU3OTkzIiw2LCJcdTc5OWIiLDExLCJcdTc5YTgiLDEwLCJcdTc5YjQiLDQsIlx1NzliY1x1NzliZlx1NzljMlx1NzljNFx1NzljNVx1NzljN1x1NzljOFx1NzljYVx1NzljY1x1NzljZVx1NzljZlx1Nzlk'@; put 'MFx1NzlkM1x1NzlkNFx1NzlkNlx1NzlkN1x1NzlkOSIsNSwiXHU3OWUwXHU3OWUxXHU3OWUyXHU3OWU1XHU3OWU4XHU3OWVhIl0sWyJiNjgwIiwiXHU3OWVjXHU3OWVlXHU3OWYxIiw2LCJcdTc5ZjlcdTc5ZmFcdTc5ZmNcdTc5ZmVcdTc5ZmZcdTdhMDFcdTdhMDRcdTdhMDVcdTdhMDdcdTdh'@; put 'MDhcdTdhMDlcdTdhMGFcdTdhMGNcdTdhMGYiLDQsIlx1N2ExNVx1N2ExNlx1N2ExOFx1N2ExOVx1N2ExYlx1N2ExY1x1NGUwMVx1NzZlZlx1NTNlZVx1OTQ4OVx1OTg3Nlx1OWYwZVx1OTUyZFx1NWI5YVx1OGJhMlx1NGUyMlx1NGUxY1x1NTFhY1x1ODQ2M1x1NjFjMlx1NTJhOFx1NjgwYlx1'@; put 'NGY5N1x1NjA2Ylx1NTFiYlx1NmQxZVx1NTE1Y1x1NjI5Nlx1NjU5N1x1OTY2MVx1OGM0Nlx1OTAxN1x1NzVkOFx1OTBmZFx1Nzc2M1x1NmJkMlx1NzI4YVx1NzJlY1x1OGJmYlx1NTgzNVx1Nzc3OVx1OGQ0Y1x1Njc1Y1x1OTU0MFx1ODA5YVx1NWVhNlx1NmUyMVx1NTk5Mlx1N2FlZlx1Nzdl'@; put 'ZFx1OTUzYlx1NmJiNVx1NjVhZFx1N2YwZVx1NTgwNlx1NTE1MVx1OTYxZlx1NWJmOVx1NThhOVx1NTQyOFx1OGU3Mlx1NjU2Nlx1OTg3Zlx1NTZlNFx1OTQ5ZFx1NzZmZVx1OTA0MVx1NjM4N1x1NTRjNlx1NTkxYVx1NTkzYVx1NTc5Ylx1OGViMlx1NjczNVx1OGRmYVx1ODIzNVx1NTI0MVx1'@; put 'NjBmMFx1NTgxNVx1ODZmZVx1NWNlOFx1OWU0NVx1NGZjNFx1OTg5ZFx1OGJiOVx1NWEyNVx1NjA3Nlx1NTM4NFx1NjI3Y1x1OTA0Zlx1OTEwMlx1OTk3Zlx1NjA2OVx1ODAwY1x1NTEzZlx1ODAzM1x1NWMxNFx1OTk3NVx1NmQzMVx1NGU4YyJdLFsiYjc0MCIsIlx1N2ExZFx1N2ExZlx1N2Ey'@; put 'MVx1N2EyMlx1N2EyNCIsMTQsIlx1N2EzNFx1N2EzNVx1N2EzNlx1N2EzOFx1N2EzYVx1N2EzZVx1N2E0MCIsNSwiXHU3YTQ3Iiw5LCJcdTdhNTIiLDQsIlx1N2E1OCIsMTZdLFsiYjc4MCIsIlx1N2E2OSIsNiwiXHU3YTcxXHU3YTcyXHU3YTczXHU3YTc1XHU3YTdiXHU3YTdjXHU3YTdkXHU3'@; put 'YTdlXHU3YTgyXHU3YTg1XHU3YTg3XHU3YTg5XHU3YThhXHU3YThiXHU3YThjXHU3YThlXHU3YThmXHU3YTkwXHU3YTkzXHU3YTk0XHU3YTk5XHU3YTlhXHU3YTliXHU3YTllXHU3YWExXHU3YWEyXHU4ZDMwXHU1M2QxXHU3ZjVhXHU3YjRmXHU0ZjEwXHU0ZTRmXHU5NjAwXHU2Y2Q1XHU3M2Qw'@; put 'XHU4NWU5XHU1ZTA2XHU3NTZhXHU3ZmZiXHU2YTBhXHU3N2ZlXHU5NDkyXHU3ZTQxXHU1MWUxXHU3MGU2XHU1M2NkXHU4ZmQ0XHU4MzAzXHU4ZDI5XHU3MmFmXHU5OTZkXHU2Y2RiXHU1NzRhXHU4MmIzXHU2NWI5XHU4MGFhXHU2MjNmXHU5NjMyXHU1OWE4XHU0ZWZmXHU4YmJmXHU3ZWJhXHU2'@; put 'NTNlXHU4M2YyXHU5NzVlXHU1NTYxXHU5OGRlXHU4MGE1XHU1MzJhXHU4YmZkXHU1NDIwXHU4MGJhXHU1ZTlmXHU2Y2I4XHU4ZDM5XHU4MmFjXHU5MTVhXHU1NDI5XHU2YzFiXHU1MjA2XHU3ZWI3XHU1NzVmXHU3MTFhXHU2YzdlXHU3Yzg5XHU1OTRiXHU0ZWZkXHU1ZmZmXHU2MTI0XHU3Y2Fh'@; put 'XHU0ZTMwXHU1YzAxXHU2N2FiXHU4NzAyXHU1Y2YwXHU5NTBiXHU5OGNlXHU3NWFmXHU3MGZkXHU5MDIyXHU1MWFmXHU3ZjFkXHU4YmJkXHU1OTQ5XHU1MWU0XHU0ZjViXHU1NDI2XHU1OTJiXHU2NTc3XHU4MGE0XHU1Yjc1XHU2Mjc2XHU2MmMyXHU4ZjkwXHU1ZTQ1XHU2YzFmXHU3YjI2XHU0'@; put 'ZjBmXHU0ZmQ4XHU2NzBkIl0sWyJiODQwIiwiXHU3YWEzXHU3YWE0XHU3YWE3XHU3YWE5XHU3YWFhXHU3YWFiXHU3YWFlIiw0LCJcdTdhYjQiLDEwLCJcdTdhYzAiLDEwLCJcdTdhY2MiLDksIlx1N2FkN1x1N2FkOFx1N2FkYVx1N2FkYlx1N2FkY1x1N2FkZFx1N2FlMVx1N2FlMlx1N2FlNFx1'@; put 'N2FlNyIsNSwiXHU3YWVlXHU3YWYwXHU3YWYxXHU3YWYyXHU3YWYzIl0sWyJiODgwIiwiXHU3YWY0Iiw0LCJcdTdhZmJcdTdhZmNcdTdhZmVcdTdiMDBcdTdiMDFcdTdiMDJcdTdiMDVcdTdiMDdcdTdiMDlcdTdiMGNcdTdiMGRcdTdiMGVcdTdiMTBcdTdiMTJcdTdiMTNcdTdiMTZcdTdiMTdc'@; put 'dTdiMThcdTdiMWFcdTdiMWNcdTdiMWRcdTdiMWZcdTdiMjFcdTdiMjJcdTdiMjNcdTdiMjdcdTdiMjlcdTdiMmRcdTZkNmVcdTZkYWFcdTc5OGZcdTg4YjFcdTVmMTdcdTc1MmJcdTYyOWFcdThmODVcdTRmZWZcdTkxZGNcdTY1YTdcdTgxMmZcdTgxNTFcdTVlOWNcdTgxNTBcdThkNzRcdTUy'@; put 'NmZcdTg5ODZcdThkNGJcdTU5MGRcdTUwODVcdTRlZDhcdTk2MWNcdTcyMzZcdTgxNzlcdThkMWZcdTViY2NcdThiYTNcdTk2NDRcdTU5ODdcdTdmMWFcdTU0OTBcdTU2NzZcdTU2MGVcdThiZTVcdTY1MzlcdTY5ODJcdTk0OTlcdTc2ZDZcdTZlODlcdTVlNzJcdTc1MThcdTY3NDZcdTY3ZDFc'@; put 'dTdhZmZcdTgwOWRcdThkNzZcdTYxMWZcdTc5YzZcdTY1NjJcdThkNjNcdTUxODhcdTUyMWFcdTk0YTJcdTdmMzhcdTgwOWJcdTdlYjJcdTVjOTdcdTZlMmZcdTY3NjBcdTdiZDlcdTc2OGJcdTlhZDhcdTgxOGZcdTdmOTRcdTdjZDVcdTY0MWVcdTk1NTBcdTdhM2ZcdTU0NGFcdTU0ZTVcdTZi'@; put 'NGNcdTY0MDFcdTYyMDhcdTllM2RcdTgwZjNcdTc1OTlcdTUyNzJcdTk3NjlcdTg0NWJcdTY4M2NcdTg2ZTRcdTk2MDFcdTk2OTRcdTk0ZWNcdTRlMmFcdTU0MDRcdTdlZDlcdTY4MzlcdThkZGZcdTgwMTVcdTY2ZjRcdTVlOWFcdTdmYjkiXSxbImI5NDAiLCJcdTdiMmZcdTdiMzBcdTdiMzJc'@; put 'dTdiMzRcdTdiMzVcdTdiMzZcdTdiMzdcdTdiMzlcdTdiM2JcdTdiM2RcdTdiM2YiLDUsIlx1N2I0Nlx1N2I0OFx1N2I0YVx1N2I0ZFx1N2I0ZVx1N2I1M1x1N2I1NVx1N2I1N1x1N2I1OVx1N2I1Y1x1N2I1ZVx1N2I1Zlx1N2I2MVx1N2I2MyIsMTAsIlx1N2I2Zlx1N2I3MFx1N2I3M1x1N2I3'@; put 'NFx1N2I3Nlx1N2I3OFx1N2I3YVx1N2I3Y1x1N2I3ZFx1N2I3Zlx1N2I4MVx1N2I4Mlx1N2I4M1x1N2I4NFx1N2I4NiIsNiwiXHU3YjhlXHU3YjhmIl0sWyJiOTgwIiwiXHU3YjkxXHU3YjkyXHU3YjkzXHU3Yjk2XHU3Yjk4XHU3Yjk5XHU3YjlhXHU3YjliXHU3YjllXHU3YjlmXHU3YmEwXHU3'@; put 'YmEzXHU3YmE0XHU3YmE1XHU3YmFlXHU3YmFmXHU3YmIwXHU3YmIyXHU3YmIzXHU3YmI1XHU3YmI2XHU3YmI3XHU3YmI5Iiw3LCJcdTdiYzJcdTdiYzNcdTdiYzRcdTU3YzJcdTgwM2ZcdTY4OTdcdTVkZTVcdTY1M2JcdTUyOWZcdTYwNmRcdTlmOWFcdTRmOWJcdThlYWNcdTUxNmNcdTViYWJc'@; put 'dTVmMTNcdTVkZTlcdTZjNWVcdTYyZjFcdThkMjFcdTUxNzFcdTk0YTlcdTUyZmVcdTZjOWZcdTgyZGZcdTcyZDdcdTU3YTJcdTY3ODRcdThkMmRcdTU5MWZcdThmOWNcdTgzYzdcdTU0OTVcdTdiOGRcdTRmMzBcdTZjYmRcdTViNjRcdTU5ZDFcdTlmMTNcdTUzZTRcdTg2Y2FcdTlhYThcdThj'@; put 'MzdcdTgwYTFcdTY1NDVcdTk4N2VcdTU2ZmFcdTk2YzdcdTUyMmVcdTc0ZGNcdTUyNTBcdTViZTFcdTYzMDJcdTg5MDJcdTRlNTZcdTYyZDBcdTYwMmFcdTY4ZmFcdTUxNzNcdTViOThcdTUxYTBcdTg5YzJcdTdiYTFcdTk5ODZcdTdmNTBcdTYwZWZcdTcwNGNcdThkMmZcdTUxNDlcdTVlN2Zc'@; put 'dTkwMWJcdTc0NzBcdTg5YzRcdTU3MmRcdTc4NDVcdTVmNTJcdTlmOWZcdTk1ZmFcdThmNjhcdTliM2NcdThiZTFcdTc2NzhcdTY4NDJcdTY3ZGNcdThkZWFcdThkMzVcdTUyM2RcdThmOGFcdTZlZGFcdTY4Y2RcdTk1MDVcdTkwZWRcdTU2ZmRcdTY3OWNcdTg4ZjlcdThmYzdcdTU0YzgiXSxb'@; put 'ImJhNDAiLCJcdTdiYzVcdTdiYzhcdTdiYzlcdTdiY2FcdTdiY2JcdTdiY2RcdTdiY2VcdTdiY2ZcdTdiZDBcdTdiZDJcdTdiZDQiLDQsIlx1N2JkYlx1N2JkY1x1N2JkZVx1N2JkZlx1N2JlMFx1N2JlMlx1N2JlM1x1N2JlNFx1N2JlN1x1N2JlOFx1N2JlOVx1N2JlYlx1N2JlY1x1N2JlZFx1'@; put 'N2JlZlx1N2JmMFx1N2JmMiIsNCwiXHU3YmY4XHU3YmY5XHU3YmZhXHU3YmZiXHU3YmZkXHU3YmZmIiw3LCJcdTdjMDhcdTdjMDlcdTdjMGFcdTdjMGRcdTdjMGVcdTdjMTAiLDUsIlx1N2MxN1x1N2MxOFx1N2MxOSJdLFsiYmE4MCIsIlx1N2MxYSIsNCwiXHU3YzIwIiw1LCJcdTdjMjhcdTdj'@; put 'MjlcdTdjMmIiLDEyLCJcdTdjMzkiLDUsIlx1N2M0Mlx1OWFiOFx1NWI2OVx1NmQ3N1x1NmMyNlx1NGVhNVx1NWJiM1x1OWE4N1x1OTE2M1x1NjFhOFx1OTBhZlx1OTdlOVx1NTQyYlx1NmRiNVx1NWJkMlx1NTFmZFx1NTU4YVx1N2Y1NVx1N2ZmMFx1NjRiY1x1NjM0ZFx1NjVmMVx1NjFiZVx1'@; put 'NjA4ZFx1NzEwYVx1NmM1N1x1NmM0OVx1NTkyZlx1Njc2ZFx1ODIyYVx1NThkNVx1NTY4ZVx1OGM2YVx1NmJlYlx1OTBkZFx1NTk3ZFx1ODAxN1x1NTNmN1x1NmQ2OVx1NTQ3NVx1NTU5ZFx1ODM3N1x1ODNjZlx1NjgzOFx1NzliZVx1NTQ4Y1x1NGY1NVx1NTQwOFx1NzZkMlx1OGM4OVx1OTYw'@; put 'Mlx1NmNiM1x1NmRiOFx1OGQ2Ylx1ODkxMFx1OWU2NFx1OGQzYVx1NTYzZlx1OWVkMVx1NzVkNVx1NWY4OFx1NzJlMFx1NjA2OFx1NTRmY1x1NGVhOFx1NmEyYVx1ODg2MVx1NjA1Mlx1OGY3MFx1NTRjNFx1NzBkOFx1ODY3OVx1OWUzZlx1NmQyYVx1NWI4Zlx1NWYxOFx1N2VhMlx1NTU4OVx1'@; put 'NGZhZlx1NzMzNFx1NTQzY1x1NTM5YVx1NTAxOVx1NTQwZVx1NTQ3Y1x1NGU0ZVx1NWZmZFx1NzQ1YVx1NThmNlx1ODQ2Ylx1ODBlMVx1ODc3NFx1NzJkMFx1N2NjYVx1NmU1NiJdLFsiYmI0MCIsIlx1N2M0MyIsOSwiXHU3YzRlIiwzNiwiXHU3Yzc1Iiw1LCJcdTdjN2UiLDldLFsiYmI4MCIs'@; put 'Ilx1N2M4OFx1N2M4YSIsNiwiXHU3YzkzXHU3Yzk0XHU3Yzk2XHU3Yzk5XHU3YzlhXHU3YzliXHU3Y2EwXHU3Y2ExXHU3Y2EzXHU3Y2E2XHU3Y2E3XHU3Y2E4XHU3Y2E5XHU3Y2FiXHU3Y2FjXHU3Y2FkXHU3Y2FmXHU3Y2IwXHU3Y2I0Iiw0LCJcdTdjYmFcdTdjYmJcdTVmMjdcdTg2NGVcdTU1'@; put 'MmNcdTYyYTRcdTRlOTJcdTZjYWFcdTYyMzdcdTgyYjFcdTU0ZDdcdTUzNGVcdTczM2VcdTZlZDFcdTc1M2JcdTUyMTJcdTUzMTZcdThiZGRcdTY5ZDBcdTVmOGFcdTYwMDBcdTZkZWVcdTU3NGZcdTZiMjJcdTczYWZcdTY4NTNcdThmZDhcdTdmMTNcdTYzNjJcdTYwYTNcdTU1MjRcdTc1ZWFc'@; put 'dThjNjJcdTcxMTVcdTZkYTNcdTViYTZcdTVlN2JcdTgzNTJcdTYxNGNcdTllYzRcdTc4ZmFcdTg3NTdcdTdjMjdcdTc2ODdcdTUxZjBcdTYwZjZcdTcxNGNcdTY2NDNcdTVlNGNcdTYwNGRcdThjMGVcdTcwNzBcdTYzMjVcdThmODlcdTVmYmRcdTYwNjJcdTg2ZDRcdTU2ZGVcdTZiYzFcdTYw'@; put 'OTRcdTYxNjdcdTUzNDlcdTYwZTBcdTY2NjZcdThkM2ZcdTc5ZmRcdTRmMWFcdTcwZTlcdTZjNDdcdThiYjNcdThiZjJcdTdlZDhcdTgzNjRcdTY2MGZcdTVhNWFcdTliNDJcdTZkNTFcdTZkZjdcdThjNDFcdTZkM2JcdTRmMTlcdTcwNmJcdTgzYjdcdTYyMTZcdTYwZDFcdTk3MGRcdThkMjdc'@; put 'dTc5NzhcdTUxZmJcdTU3M2VcdTU3ZmFcdTY3M2FcdTc1NzhcdTdhM2RcdTc5ZWZcdTdiOTUiXSxbImJjNDAiLCJcdTdjYmZcdTdjYzBcdTdjYzJcdTdjYzNcdTdjYzRcdTdjYzZcdTdjYzlcdTdjY2JcdTdjY2UiLDYsIlx1N2NkOFx1N2NkYVx1N2NkYlx1N2NkZFx1N2NkZVx1N2NlMSIsNiwi'@; put 'XHU3Y2U5Iiw1LCJcdTdjZjAiLDcsIlx1N2NmOVx1N2NmYVx1N2NmYyIsMTMsIlx1N2QwYiIsNV0sWyJiYzgwIiwiXHU3ZDExIiwxNCwiXHU3ZDIxXHU3ZDIzXHU3ZDI0XHU3ZDI1XHU3ZDI2XHU3ZDI4XHU3ZDI5XHU3ZDJhXHU3ZDJjXHU3ZDJkXHU3ZDJlXHU3ZDMwIiw2LCJcdTgwOGNcdTk5'@; put 'NjVcdThmZjlcdTZmYzBcdThiYTVcdTllMjFcdTU5ZWNcdTdlZTlcdTdmMDlcdTU0MDlcdTY3ODFcdTY4ZDhcdThmOTFcdTdjNGRcdTk2YzZcdTUzY2FcdTYwMjVcdTc1YmVcdTZjNzJcdTUzNzNcdTVhYzlcdTdlYTdcdTYzMjRcdTUxZTBcdTgxMGFcdTVkZjFcdTg0ZGZcdTYyODBcdTUxODBc'@; put 'dTViNjNcdTRmMGVcdTc5NmRcdTUyNDJcdTYwYjhcdTZkNGVcdTViYzRcdTViYzJcdThiYTFcdThiYjBcdTY1ZTJcdTVmY2NcdTk2NDVcdTU5OTNcdTdlZTdcdTdlYWFcdTU2MDlcdTY3YjdcdTU5MzlcdTRmNzNcdTViYjZcdTUyYTBcdTgzNWFcdTk4OGFcdThkM2VcdTc1MzJcdTk0YmVcdTUw'@; put 'NDdcdTdhM2NcdTRlZjdcdTY3YjZcdTlhN2VcdTVhYzFcdTZiN2NcdTc2ZDFcdTU3NWFcdTVjMTZcdTdiM2FcdTk1ZjRcdTcxNGVcdTUxN2NcdTgwYTlcdTgyNzBcdTU5NzhcdTdmMDRcdTgzMjdcdTY4YzBcdTY3ZWNcdTc4YjFcdTc4NzdcdTYyZTNcdTYzNjFcdTdiODBcdTRmZWRcdTUyNmFc'@; put 'dTUxY2ZcdTgzNTBcdTY5ZGJcdTkyNzRcdThkZjVcdThkMzFcdTg5YzFcdTk1MmVcdTdiYWRcdTRlZjYiXSxbImJkNDAiLCJcdTdkMzciLDU0LCJcdTdkNmYiLDddLFsiYmQ4MCIsIlx1N2Q3OCIsMzIsIlx1NTA2NVx1ODIzMFx1NTI1MVx1OTk2Zlx1NmUxMFx1NmU4NVx1NmRhN1x1NWVmYVx1'@; put 'NTBmNVx1NTlkY1x1NWMwNlx1NmQ0Nlx1NmM1Zlx1NzU4Nlx1ODQ4Ylx1Njg2OFx1NTk1Nlx1OGJiMlx1NTMyMFx1OTE3MVx1OTY0ZFx1ODU0OVx1NjkxMlx1NzkwMVx1NzEyNlx1ODBmNlx1NGVhNFx1OTBjYVx1NmQ0N1x1OWE4NFx1NWEwN1x1NTZiY1x1NjQwNVx1OTRmMFx1NzdlYlx1NGZh'@; put 'NVx1ODExYVx1NzJlMVx1ODlkMlx1OTk3YVx1N2YzNFx1N2VkZVx1NTI3Zlx1NjU1OVx1OTE3NVx1OGY3Zlx1OGY4M1x1NTNlYlx1N2E5Nlx1NjNlZFx1NjNhNVx1NzY4Nlx1NzlmOFx1ODg1N1x1OTYzNlx1NjIyYVx1NTJhYlx1ODI4Mlx1Njg1NFx1Njc3MFx1NjM3N1x1Nzc2Ylx1N2FlZFx1'@; put 'NmQwMVx1N2VkM1x1ODllM1x1NTlkMFx1NjIxMlx1ODVjOVx1ODJhNVx1NzU0Y1x1NTAxZlx1NGVjYlx1NzVhNVx1OGJlYlx1NWM0YVx1NWRmZVx1N2I0Ylx1NjVhNFx1OTFkMVx1NGVjYVx1NmQyNVx1ODk1Zlx1N2QyN1x1OTUyNlx1NGVjNVx1OGMyOFx1OGZkYlx1OTc3M1x1NjY0Ylx1Nzk4'@; put 'MVx1OGZkMVx1NzBlY1x1NmQ3OCJdLFsiYmU0MCIsIlx1N2Q5OSIsMTIsIlx1N2RhNyIsNiwiXHU3ZGFmIiw0Ml0sWyJiZTgwIiwiXHU3ZGRhIiwzMiwiXHU1YzNkXHU1MmIyXHU4MzQ2XHU1MTYyXHU4MzBlXHU3NzViXHU2Njc2XHU5Y2I4XHU0ZWFjXHU2MGNhXHU3Y2JlXHU3Y2IzXHU3ZWNm'@; put 'XHU0ZTk1XHU4YjY2XHU2NjZmXHU5ODg4XHU5NzU5XHU1ODgzXHU2NTZjXHU5NTVjXHU1Zjg0XHU3NWM5XHU5NzU2XHU3YWRmXHU3YWRlXHU1MWMwXHU3MGFmXHU3YTk4XHU2M2VhXHU3YTc2XHU3ZWEwXHU3Mzk2XHU5N2VkXHU0ZTQ1XHU3MDc4XHU0ZTVkXHU5MTUyXHU1M2E5XHU2NTUxXHU2'@; put 'NWU3XHU4MWZjXHU4MjA1XHU1NDhlXHU1YzMxXHU3NTlhXHU5N2EwXHU2MmQ4XHU3MmQ5XHU3NWJkXHU1YzQ1XHU5YTc5XHU4M2NhXHU1YzQwXHU1NDgwXHU3N2U5XHU0ZTNlXHU2Y2FlXHU4MDVhXHU2MmQyXHU2MzZlXHU1ZGU4XHU1MTc3XHU4ZGRkXHU4ZTFlXHU5NTJmXHU0ZmYxXHU1M2U1'@; put 'XHU2MGU3XHU3MGFjXHU1MjY3XHU2MzUwXHU5ZTQzXHU1YTFmXHU1MDI2XHU3NzM3XHU1Mzc3XHU3ZWUyXHU2NDg1XHU2NTJiXHU2Mjg5XHU2Mzk4XHU1MDE0XHU3MjM1XHU4OWM5XHU1MWIzXHU4YmMwXHU3ZWRkXHU1NzQ3XHU4M2NjXHU5NGE3XHU1MTliXHU1NDFiXHU1Y2ZiIl0sWyJiZjQw'@; put 'IiwiXHU3ZGZiIiw2Ml0sWyJiZjgwIiwiXHU3ZTNhXHU3ZTNjIiw0LCJcdTdlNDIiLDQsIlx1N2U0OCIsMjEsIlx1NGZjYVx1N2FlM1x1NmQ1YVx1OTBlMVx1OWE4Zlx1NTU4MFx1NTQ5Nlx1NTM2MVx1NTRhZlx1NWYwMFx1NjNlOVx1Njk3N1x1NTFlZlx1NjE2OFx1NTIwYVx1NTgyYVx1NTJk'@; put 'OFx1NTc0ZVx1NzgwZFx1NzcwYlx1NWViN1x1NjE3N1x1N2NlMFx1NjI1Ylx1NjI5N1x1NGVhMlx1NzA5NVx1ODAwM1x1NjJmN1x1NzBlNFx1OTc2MFx1NTc3N1x1ODJkYlx1NjdlZlx1NjhmNVx1NzhkNVx1OTg5N1x1NzlkMVx1NThmM1x1NTRiM1x1NTNlZlx1NmUzNFx1NTE0Ylx1NTIzYlx1'@; put 'NWJhMlx1OGJmZVx1ODBhZlx1NTU0M1x1NTdhNlx1NjA3M1x1NTc1MVx1NTQyZFx1N2E3YVx1NjA1MFx1NWI1NFx1NjNhN1x1NjJhMFx1NTNlM1x1NjI2M1x1NWJjN1x1NjdhZlx1NTRlZFx1N2E5Zlx1ODJlNlx1OTE3N1x1NWU5M1x1ODhlNFx1NTkzOFx1NTdhZVx1NjMwZVx1OGRlOFx1ODBl'@; put 'Zlx1NTc1N1x1N2I3N1x1NGZhOVx1NWZlYlx1NWJiZFx1NmIzZVx1NTMyMVx1N2I1MFx1NzJjMlx1Njg0Nlx1NzdmZlx1NzczNlx1NjVmN1x1NTFiNVx1NGU4Zlx1NzZkNFx1NWNiZlx1N2FhNVx1ODQ3NVx1NTk0ZVx1OWI0MVx1NTA4MCJdLFsiYzA0MCIsIlx1N2U1ZSIsMzUsIlx1N2U4MyIs'@; put 'MjMsIlx1N2U5Y1x1N2U5ZFx1N2U5ZSJdLFsiYzA4MCIsIlx1N2VhZVx1N2ViNFx1N2ViYlx1N2ViY1x1N2VkNlx1N2VlNFx1N2VlY1x1N2VmOVx1N2YwYVx1N2YxMFx1N2YxZVx1N2YzN1x1N2YzOVx1N2YzYiIsNiwiXHU3ZjQzXHU3ZjQ2Iiw5LCJcdTdmNTJcdTdmNTNcdTk5ODhcdTYxMjdc'@; put 'dTZlODNcdTU3NjRcdTY2MDZcdTYzNDZcdTU2ZjBcdTYyZWNcdTYyNjlcdTVlZDNcdTk2MTRcdTU3ODNcdTYyYzlcdTU1ODdcdTg3MjFcdTgxNGFcdThmYTNcdTU1NjZcdTgzYjFcdTY3NjVcdThkNTZcdTg0ZGRcdTVhNmFcdTY4MGZcdTYyZTZcdTdiZWVcdTk2MTFcdTUxNzBcdTZmOWNcdThj'@; put 'MzBcdTYzZmRcdTg5YzhcdTYxZDJcdTdmMDZcdTcwYzJcdTZlZTVcdTc0MDVcdTY5OTRcdTcyZmNcdTVlY2FcdTkwY2VcdTY3MTdcdTZkNmFcdTYzNWVcdTUyYjNcdTcyNjJcdTgwMDFcdTRmNmNcdTU5ZTVcdTkxNmFcdTcwZDlcdTZkOWRcdTUyZDJcdTRlNTBcdTk2ZjdcdTk1NmRcdTg1N2Vc'@; put 'dTc4Y2FcdTdkMmZcdTUxMjFcdTU3OTJcdTY0YzJcdTgwOGJcdTdjN2JcdTZjZWFcdTY4ZjFcdTY5NWVcdTUxYjdcdTUzOThcdTY4YThcdTcyODFcdTllY2VcdTdiZjFcdTcyZjhcdTc5YmJcdTZmMTNcdTc0MDZcdTY3NGVcdTkxY2NcdTljYTRcdTc5M2NcdTgzODlcdTgzNTRcdTU0MGZcdTY4'@; put 'MTdcdTRlM2RcdTUzODlcdTUyYjFcdTc4M2VcdTUzODZcdTUyMjlcdTUwODhcdTRmOGJcdTRmZDAiXSxbImMxNDAiLCJcdTdmNTZcdTdmNTlcdTdmNWJcdTdmNWNcdTdmNWRcdTdmNWVcdTdmNjBcdTdmNjMiLDQsIlx1N2Y2Ylx1N2Y2Y1x1N2Y2ZFx1N2Y2Zlx1N2Y3MFx1N2Y3M1x1N2Y3NVx1'@; put 'N2Y3Nlx1N2Y3N1x1N2Y3OFx1N2Y3YVx1N2Y3Ylx1N2Y3Y1x1N2Y3ZFx1N2Y3Zlx1N2Y4MFx1N2Y4MiIsNywiXHU3ZjhiXHU3ZjhkXHU3ZjhmIiw0LCJcdTdmOTUiLDQsIlx1N2Y5Ylx1N2Y5Y1x1N2ZhMFx1N2ZhMlx1N2ZhM1x1N2ZhNVx1N2ZhNlx1N2ZhOCIsNiwiXHU3ZmIxIl0sWyJjMTgw'@; put 'IiwiXHU3ZmIzIiw0LCJcdTdmYmFcdTdmYmJcdTdmYmVcdTdmYzBcdTdmYzJcdTdmYzNcdTdmYzRcdTdmYzZcdTdmYzdcdTdmYzhcdTdmYzlcdTdmY2JcdTdmY2RcdTdmY2YiLDQsIlx1N2ZkNlx1N2ZkN1x1N2ZkOSIsNSwiXHU3ZmUyXHU3ZmUzXHU3NWUyXHU3YWNiXHU3YzkyXHU2Y2E1XHU5'@; put 'NmI2XHU1MjliXHU3NDgzXHU1NGU5XHU0ZmU5XHU4MDU0XHU4M2IyXHU4ZmRlXHU5NTcwXHU1ZWM5XHU2MDFjXHU2ZDlmXHU1ZTE4XHU2NTViXHU4MTM4XHU5NGZlXHU2MDRiXHU3MGJjXHU3ZWMzXHU3Y2FlXHU1MWM5XHU2ODgxXHU3Y2IxXHU4MjZmXHU0ZTI0XHU4Zjg2XHU5MWNmXHU2Njdl'@; put 'XHU0ZWFlXHU4YzA1XHU2NGE5XHU4MDRhXHU1MGRhXHU3NTk3XHU3MWNlXHU1YmU1XHU4ZmJkXHU2ZjY2XHU0ZTg2XHU2NDgyXHU5NTYzXHU1ZWQ2XHU2NTk5XHU1MjE3XHU4OGMyXHU3MGM4XHU1MmEzXHU3MzBlXHU3NDMzXHU2Nzk3XHU3OGY3XHU5NzE2XHU0ZTM0XHU5MGJiXHU5Y2RlXHU2'@; put 'ZGNiXHU1MWRiXHU4ZDQxXHU1NDFkXHU2MmNlXHU3M2IyXHU4M2YxXHU5NmY2XHU5Zjg0XHU5NGMzXHU0ZjM2XHU3ZjlhXHU1MWNjXHU3MDc1XHU5Njc1XHU1Y2FkXHU5ODg2XHU1M2U2XHU0ZWU0XHU2ZTljXHU3NDA5XHU2OWI0XHU3ODZiXHU5OThmXHU3NTU5XHU1MjE4XHU3NjI0XHU2ZDQx'@; put 'XHU2N2YzXHU1MTZkXHU5Zjk5XHU4MDRiXHU1NDk5XHU3YjNjXHU3YWJmIl0sWyJjMjQwIiwiXHU3ZmU0XHU3ZmU3XHU3ZmU4XHU3ZmVhXHU3ZmViXHU3ZmVjXHU3ZmVkXHU3ZmVmXHU3ZmYyXHU3ZmY0Iiw2LCJcdTdmZmRcdTdmZmVcdTdmZmZcdTgwMDJcdTgwMDdcdTgwMDhcdTgwMDlcdTgw'@; put 'MGFcdTgwMGVcdTgwMGZcdTgwMTFcdTgwMTNcdTgwMWFcdTgwMWJcdTgwMWRcdTgwMWVcdTgwMWZcdTgwMjFcdTgwMjNcdTgwMjRcdTgwMmIiLDUsIlx1ODAzMlx1ODAzNFx1ODAzOVx1ODAzYVx1ODAzY1x1ODAzZVx1ODA0MFx1ODA0MVx1ODA0NFx1ODA0NVx1ODA0N1x1ODA0OFx1ODA0OVx1'@; put 'ODA0ZVx1ODA0Zlx1ODA1MFx1ODA1MVx1ODA1M1x1ODA1NVx1ODA1Nlx1ODA1NyJdLFsiYzI4MCIsIlx1ODA1OVx1ODA1YiIsMTMsIlx1ODA2YiIsNSwiXHU4MDcyIiwxMSwiXHU5Njg2XHU1Nzg0XHU2MmUyXHU5NjQ3XHU2OTdjXHU1YTA0XHU2NDAyXHU3YmQzXHU2ZjBmXHU5NjRiXHU4MmE2'@; put 'XHU1MzYyXHU5ODg1XHU1ZTkwXHU3MDg5XHU2M2IzXHU1MzY0XHU4NjRmXHU5YzgxXHU5ZTkzXHU3ODhjXHU5NzMyXHU4ZGVmXHU4ZDQyXHU5ZTdmXHU2ZjVlXHU3OTg0XHU1ZjU1XHU5NjQ2XHU2MjJlXHU5YTc0XHU1NDE1XHU5NGRkXHU0ZmEzXHU2NWM1XHU1YzY1XHU1YzYxXHU3ZjE1XHU4'@; put 'NjUxXHU2YzJmXHU1ZjhiXHU3Mzg3XHU2ZWU0XHU3ZWZmXHU1Y2U2XHU2MzFiXHU1YjZhXHU2ZWU2XHU1Mzc1XHU0ZTcxXHU2M2EwXHU3NTY1XHU2MmExXHU4ZjZlXHU0ZjI2XHU0ZWQxXHU2Y2E2XHU3ZWI2XHU4YmJhXHU4NDFkXHU4N2JhXHU3ZjU3XHU5MDNiXHU5NTIzXHU3YmE5XHU5YWEx'@; put 'XHU4OGY4XHU4NDNkXHU2ZDFiXHU5YTg2XHU3ZWRjXHU1OTg4XHU5ZWJiXHU3MzliXHU3ODAxXHU4NjgyXHU5YTZjXHU5YTgyXHU1NjFiXHU1NDE3XHU1N2NiXHU0ZTcwXHU5ZWE2XHU1MzU2XHU4ZmM4XHU4MTA5XHU3NzkyXHU5OTkyXHU4NmVlXHU2ZWUxXHU4NTEzXHU2NmZjXHU2MTYyXHU2'@; put 'ZjJiIl0sWyJjMzQwIiwiXHU4MDdlXHU4MDgxXHU4MDgyXHU4MDg1XHU4MDg4XHU4MDhhXHU4MDhkIiw1LCJcdTgwOTRcdTgwOTVcdTgwOTdcdTgwOTlcdTgwOWVcdTgwYTNcdTgwYTZcdTgwYTdcdTgwYThcdTgwYWNcdTgwYjBcdTgwYjNcdTgwYjVcdTgwYjZcdTgwYjhcdTgwYjlcdTgwYmJc'@; put 'dTgwYzVcdTgwYzciLDQsIlx1ODBjZiIsNiwiXHU4MGQ4XHU4MGRmXHU4MGUwXHU4MGUyXHU4MGUzXHU4MGU2XHU4MGVlXHU4MGY1XHU4MGY3XHU4MGY5XHU4MGZiXHU4MGZlXHU4MGZmXHU4MTAwXHU4MTAxXHU4MTAzXHU4MTA0XHU4MTA1XHU4MTA3XHU4MTA4XHU4MTBiIl0sWyJjMzgwIiwi'@; put 'XHU4MTBjXHU4MTE1XHU4MTE3XHU4MTE5XHU4MTFiXHU4MTFjXHU4MTFkXHU4MTFmIiwxMiwiXHU4MTJkXHU4MTJlXHU4MTMwXHU4MTMzXHU4MTM0XHU4MTM1XHU4MTM3XHU4MTM5Iiw0LCJcdTgxM2ZcdThjMjlcdTgyOTJcdTgzMmJcdTc2ZjJcdTZjMTNcdTVmZDlcdTgzYmRcdTczMmJcdTgz'@; put 'MDVcdTk1MWFcdTZiZGJcdTc3ZGJcdTk0YzZcdTUzNmZcdTgzMDJcdTUxOTJcdTVlM2RcdThjOGNcdThkMzhcdTRlNDhcdTczYWJcdTY3OWFcdTY4ODVcdTkxNzZcdTk3MDlcdTcxNjRcdTZjYTFcdTc3MDlcdTVhOTJcdTk1NDFcdTZiY2ZcdTdmOGVcdTY2MjdcdTViZDBcdTU5YjlcdTVhOWFc'@; put 'dTk1ZThcdTk1ZjdcdTRlZWNcdTg0MGNcdTg0OTlcdTZhYWNcdTc2ZGZcdTk1MzBcdTczMWJcdTY4YTZcdTViNWZcdTc3MmZcdTkxOWFcdTk3NjFcdTdjZGNcdThmZjdcdThjMWNcdTVmMjVcdTdjNzNcdTc5ZDhcdTg5YzVcdTZjY2NcdTg3MWNcdTViYzZcdTVlNDJcdTY4YzlcdTc3MjBcdTdl'@; put 'ZjVcdTUxOTVcdTUxNGRcdTUyYzlcdTVhMjlcdTdmMDVcdTk3NjJcdTgyZDdcdTYzY2ZcdTc3ODRcdTg1ZDBcdTc5ZDJcdTZlM2FcdTVlOTlcdTU5OTlcdTg1MTFcdTcwNmRcdTZjMTFcdTYyYmZcdTc2YmZcdTY1NGZcdTYwYWZcdTk1ZmRcdTY2MGVcdTg3OWZcdTllMjNcdTk0ZWRcdTU0MGRc'@; put 'dTU0N2RcdThjMmNcdTY0NzgiXSxbImM0NDAiLCJcdTgxNDAiLDUsIlx1ODE0N1x1ODE0OVx1ODE0ZFx1ODE0ZVx1ODE0Zlx1ODE1Mlx1ODE1Nlx1ODE1N1x1ODE1OFx1ODE1YiIsNCwiXHU4MTYxXHU4MTYyXHU4MTYzXHU4MTY0XHU4MTY2XHU4MTY4XHU4MTZhXHU4MTZiXHU4MTZjXHU4MTZm'@; put 'XHU4MTcyXHU4MTczXHU4MTc1XHU4MTc2XHU4MTc3XHU4MTc4XHU4MTgxXHU4MTgzIiw0LCJcdTgxODlcdTgxOGJcdTgxOGNcdTgxOGRcdTgxOGVcdTgxOTBcdTgxOTIiLDUsIlx1ODE5OVx1ODE5YVx1ODE5ZSIsNCwiXHU4MWE0XHU4MWE1Il0sWyJjNDgwIiwiXHU4MWE3XHU4MWE5XHU4MWFi'@; put 'Iiw3LCJcdTgxYjQiLDUsIlx1ODFiY1x1ODFiZFx1ODFiZVx1ODFiZlx1ODFjNFx1ODFjNVx1ODFjN1x1ODFjOFx1ODFjOVx1ODFjYlx1ODFjZCIsNiwiXHU2NDc5XHU4NjExXHU2YTIxXHU4MTljXHU3OGU4XHU2NDY5XHU5YjU0XHU2MmI5XHU2NzJiXHU4M2FiXHU1OGE4XHU5ZWQ4XHU2Y2Fi'@; put 'XHU2ZjIwXHU1YmRlXHU5NjRjXHU4YzBiXHU3MjVmXHU2N2QwXHU2MmM3XHU3MjYxXHU0ZWE5XHU1OWM2XHU2YmNkXHU1ODkzXHU2NmFlXHU1ZTU1XHU1MmRmXHU2MTU1XHU2NzI4XHU3NmVlXHU3NzY2XHU3MjY3XHU3YTQ2XHU2MmZmXHU1NGVhXHU1NDUwXHU5NGEwXHU5MGEzXHU1YTFjXHU3'@; put 'ZWIzXHU2YzE2XHU0ZTQzXHU1OTc2XHU4MDEwXHU1OTQ4XHU1MzU3XHU3NTM3XHU5NmJlXHU1NmNhXHU2MzIwXHU4MTExXHU2MDdjXHU5NWY5XHU2ZGQ2XHU1NDYyXHU5OTgxXHU1MTg1XHU1YWU5XHU4MGZkXHU1OWFlXHU5NzEzXHU1MDJhXHU2Y2U1XHU1YzNjXHU2MmRmXHU0ZjYwXHU1MzNm'@; put 'XHU4MTdiXHU5MDA2XHU2ZWJhXHU4NTJiXHU2MmM4XHU1ZTc0XHU3OGJlXHU2NGI1XHU2MzdiXHU1ZmY1XHU1YTE4XHU5MTdmXHU5ZTFmXHU1YzNmXHU2MzRmXHU4MDQyXHU1YjdkXHU1NTZlXHU5NTRhXHU5NTRkXHU2ZDg1XHU2MGE4XHU2N2UwXHU3MmRlXHU1MWRkXHU1YjgxIl0sWyJjNTQw'@; put 'IiwiXHU4MWQ0IiwxNCwiXHU4MWU0XHU4MWU1XHU4MWU2XHU4MWU4XHU4MWU5XHU4MWViXHU4MWVlIiw0LCJcdTgxZjUiLDUsIlx1ODFmZFx1ODFmZlx1ODIwM1x1ODIwNyIsNCwiXHU4MjBlXHU4MjBmXHU4MjExXHU4MjEzXHU4MjE1Iiw1LCJcdTgyMWRcdTgyMjBcdTgyMjRcdTgyMjVcdTgy'@; put 'MjZcdTgyMjdcdTgyMjlcdTgyMmVcdTgyMzJcdTgyM2FcdTgyM2NcdTgyM2RcdTgyM2YiXSxbImM1ODAiLCJcdTgyNDBcdTgyNDFcdTgyNDJcdTgyNDNcdTgyNDVcdTgyNDZcdTgyNDhcdTgyNGFcdTgyNGNcdTgyNGRcdTgyNGVcdTgyNTAiLDcsIlx1ODI1OVx1ODI1Ylx1ODI1Y1x1ODI1ZFx1'@; put 'ODI1ZVx1ODI2MCIsNywiXHU4MjY5XHU2MmU3XHU2Y2RlXHU3MjViXHU2MjZkXHU5NGFlXHU3ZWJkXHU4MTEzXHU2ZDUzXHU1MTljXHU1ZjA0XHU1OTc0XHU1MmFhXHU2MDEyXHU1OTczXHU2Njk2XHU4NjUwXHU3NTlmXHU2MzJhXHU2MWU2XHU3Y2VmXHU4YmZhXHU1NGU2XHU2YjI3XHU5ZTI1'@; put 'XHU2YmI0XHU4NWQ1XHU1NDU1XHU1MDc2XHU2Y2E0XHU1NTZhXHU4ZGI0XHU3MjJjXHU1ZTE1XHU2MDE1XHU3NDM2XHU2MmNkXHU2MzkyXHU3MjRjXHU1Zjk4XHU2ZTQzXHU2ZDNlXHU2NTAwXHU2ZjU4XHU3NmQ4XHU3OGQwXHU3NmZjXHU3NTU0XHU1MjI0XHU1M2RiXHU0ZTUzXHU1ZTllXHU2'@; put 'NWMxXHU4MDJhXHU4MGQ2XHU2MjliXHU1NDg2XHU1MjI4XHU3MGFlXHU4ODhkXHU4ZGQxXHU2Y2UxXHU1NDc4XHU4MGRhXHU1N2Y5XHU4OGY0XHU4ZDU0XHU5NjZhXHU5MTRkXHU0ZjY5XHU2YzliXHU1NWI3XHU3NmM2XHU3ODMwXHU2MmE4XHU3MGY5XHU2ZjhlXHU1ZjZkXHU4NGVjXHU2OGRh'@; put 'XHU3ODdjXHU3YmY3XHU4MWE4XHU2NzBiXHU5ZTRmXHU2MzY3XHU3OGIwXHU1NzZmXHU3ODEyXHU5NzM5XHU2Mjc5XHU2MmFiXHU1Mjg4XHU3NDM1XHU2YmQ3Il0sWyJjNjQwIiwiXHU4MjZhXHU4MjZiXHU4MjZjXHU4MjZkXHU4MjcxXHU4Mjc1XHU4Mjc2XHU4Mjc3XHU4Mjc4XHU4MjdiXHU4'@; put 'MjdjXHU4MjgwXHU4MjgxXHU4MjgzXHU4Mjg1XHU4Mjg2XHU4Mjg3XHU4Mjg5XHU4MjhjXHU4MjkwXHU4MjkzXHU4Mjk0XHU4Mjk1XHU4Mjk2XHU4MjlhXHU4MjliXHU4MjllXHU4MmEwXHU4MmEyXHU4MmEzXHU4MmE3XHU4MmIyXHU4MmI1XHU4MmI2XHU4MmJhXHU4MmJiXHU4MmJjXHU4MmJm'@; put 'XHU4MmMwXHU4MmMyXHU4MmMzXHU4MmM1XHU4MmM2XHU4MmM5XHU4MmQwXHU4MmQ2XHU4MmQ5XHU4MmRhXHU4MmRkXHU4MmUyXHU4MmU3XHU4MmU4XHU4MmU5XHU4MmVhXHU4MmVjXHU4MmVkXHU4MmVlXHU4MmYwXHU4MmYyXHU4MmYzXHU4MmY1XHU4MmY2XHU4MmY4Il0sWyJjNjgwIiwiXHU4'@; put 'MmZhXHU4MmZjIiw0LCJcdTgzMGFcdTgzMGJcdTgzMGRcdTgzMTBcdTgzMTJcdTgzMTNcdTgzMTZcdTgzMThcdTgzMTlcdTgzMWQiLDksIlx1ODMyOVx1ODMyYVx1ODMyZVx1ODMzMFx1ODMzMlx1ODMzN1x1ODMzYlx1ODMzZFx1NTU2NFx1ODEzZVx1NzViMlx1NzZhZVx1NTMzOVx1NzVkZVx1'@; put 'NTBmYlx1NWM0MVx1OGI2Y1x1N2JjN1x1NTA0Zlx1NzI0N1x1OWE5N1x1OThkOFx1NmYwMlx1NzRlMlx1Nzk2OFx1NjQ4N1x1NzdhNVx1NjJmY1x1OTg5MVx1OGQyYlx1NTRjMVx1ODA1OFx1NGU1Mlx1NTc2YVx1ODJmOVx1ODQwZFx1NWU3M1x1NTFlZFx1NzRmNlx1OGJjNFx1NWM0Zlx1NTc2'@; put 'MVx1NmNmY1x1OTg4N1x1NWE0Nlx1NzgzNFx1OWI0NFx1OGZlYlx1N2M5NVx1NTI1Nlx1NjI1MVx1OTRmYVx1NGVjNlx1ODM4Nlx1ODQ2MVx1ODNlOVx1ODRiMlx1NTdkNFx1NjczNFx1NTcwM1x1NjY2ZVx1NmQ2Nlx1OGMzMVx1NjZkZFx1NzAxMVx1NjcxZlx1NmIzYVx1NjgxNlx1NjIxYVx1'@; put 'NTliYlx1NGUwM1x1NTFjNFx1NmYwNlx1NjdkMlx1NmM4Zlx1NTE3Nlx1NjhjYlx1NTk0N1x1NmI2N1x1NzU2Nlx1NWQwZVx1ODExMFx1OWY1MFx1NjVkN1x1Nzk0OFx1Nzk0MVx1OWE5MVx1OGQ3N1x1NWM4Mlx1NGU1ZVx1NGYwMVx1NTQyZlx1NTk1MVx1NzgwY1x1NTY2OFx1NmMxNFx1OGZj'@; put 'NFx1NWYwM1x1NmM3ZFx1NmNlM1x1OGJhYlx1NjM5MCJdLFsiYzc0MCIsIlx1ODMzZVx1ODMzZlx1ODM0MVx1ODM0Mlx1ODM0NFx1ODM0NVx1ODM0OFx1ODM0YSIsNCwiXHU4MzUzXHU4MzU1Iiw0LCJcdTgzNWRcdTgzNjJcdTgzNzAiLDYsIlx1ODM3OVx1ODM3YVx1ODM3ZSIsNiwiXHU4Mzg3'@; put 'XHU4Mzg4XHU4MzhhXHU4MzhiXHU4MzhjXHU4MzhkXHU4MzhmXHU4MzkwXHU4MzkxXHU4Mzk0XHU4Mzk1XHU4Mzk2XHU4Mzk3XHU4Mzk5XHU4MzlhXHU4MzlkXHU4MzlmXHU4M2ExIiw2LCJcdTgzYWNcdTgzYWRcdTgzYWUiXSxbImM3ODAiLCJcdTgzYWZcdTgzYjVcdTgzYmJcdTgzYmVcdTgz'@; put 'YmZcdTgzYzJcdTgzYzNcdTgzYzRcdTgzYzZcdTgzYzhcdTgzYzlcdTgzY2JcdTgzY2RcdTgzY2VcdTgzZDBcdTgzZDFcdTgzZDJcdTgzZDNcdTgzZDVcdTgzZDdcdTgzZDlcdTgzZGFcdTgzZGJcdTgzZGVcdTgzZTJcdTgzZTNcdTgzZTRcdTgzZTZcdTgzZTdcdTgzZThcdTgzZWJcdTgzZWNc'@; put 'dTgzZWRcdTYwNzBcdTZkM2RcdTcyNzVcdTYyNjZcdTk0OGVcdTk0YzVcdTUzNDNcdThmYzFcdTdiN2VcdTRlZGZcdThjMjZcdTRlN2VcdTllZDRcdTk0YjFcdTk0YjNcdTUyNGRcdTZmNWNcdTkwNjNcdTZkNDVcdThjMzRcdTU4MTFcdTVkNGNcdTZiMjBcdTZiNDlcdTY3YWFcdTU0NWJcdTgx'@; put 'NTRcdTdmOGNcdTU4OTlcdTg1MzdcdTVmM2FcdTYyYTJcdTZhNDdcdTk1MzlcdTY1NzJcdTYwODRcdTY4NjVcdTc3YTdcdTRlNTRcdTRmYThcdTVkZTdcdTk3OThcdTY0YWNcdTdmZDhcdTVjZWRcdTRmY2ZcdTdhOGRcdTUyMDdcdTgzMDRcdTRlMTRcdTYwMmZcdTdhODNcdTk0YTZcdTRmYjVc'@; put 'dTRlYjJcdTc5ZTZcdTc0MzRcdTUyZTRcdTgyYjlcdTY0ZDJcdTc5YmRcdTViZGRcdTZjODFcdTk3NTJcdThmN2JcdTZjMjJcdTUwM2VcdTUzN2ZcdTZlMDVcdTY0Y2VcdTY2NzRcdTZjMzBcdTYwYzVcdTk4NzdcdThiZjdcdTVlODZcdTc0M2NcdTdhNzdcdTc5Y2JcdTRlMThcdTkwYjFcdTc0'@; put 'MDNcdTZjNDJcdTU2ZGFcdTkxNGJcdTZjYzVcdThkOGJcdTUzM2FcdTg2YzZcdTY2ZjJcdThlYWZcdTVjNDhcdTlhNzFcdTZlMjAiXSxbImM4NDAiLCJcdTgzZWVcdTgzZWZcdTgzZjMiLDQsIlx1ODNmYVx1ODNmYlx1ODNmY1x1ODNmZVx1ODNmZlx1ODQwMFx1ODQwMlx1ODQwNVx1ODQwN1x1'@; put 'ODQwOFx1ODQwOVx1ODQwYVx1ODQxMFx1ODQxMiIsNSwiXHU4NDE5XHU4NDFhXHU4NDFiXHU4NDFlIiw1LCJcdTg0MjkiLDcsIlx1ODQzMiIsNSwiXHU4NDM5XHU4NDNhXHU4NDNiXHU4NDNlIiw3LCJcdTg0NDdcdTg0NDhcdTg0NDkiXSxbImM4ODAiLCJcdTg0NGEiLDYsIlx1ODQ1MiIsNCwi'@; put 'XHU4NDU4XHU4NDVkXHU4NDVlXHU4NDVmXHU4NDYwXHU4NDYyXHU4NDY0Iiw0LCJcdTg0NmFcdTg0NmVcdTg0NmZcdTg0NzBcdTg0NzJcdTg0NzRcdTg0NzdcdTg0NzlcdTg0N2JcdTg0N2NcdTUzZDZcdTVhMzZcdTlmOGJcdThkYTNcdTUzYmJcdTU3MDhcdTk4YTdcdTY3NDNcdTkxOWJcdTZj'@; put 'YzlcdTUxNjhcdTc1Y2FcdTYyZjNcdTcyYWNcdTUyMzhcdTUyOWRcdTdmM2FcdTcwOTRcdTc2MzhcdTUzNzRcdTllNGFcdTY5YjdcdTc4NmVcdTk2YzBcdTg4ZDlcdTdmYTRcdTcxMzZcdTcxYzNcdTUxODlcdTY3ZDNcdTc0ZTRcdTU4ZTRcdTY1MThcdTU2YjdcdThiYTlcdTk5NzZcdTYyNzBc'@; put 'dTdlZDVcdTYwZjlcdTcwZWRcdTU4ZWNcdTRlYzFcdTRlYmFcdTVmY2RcdTk3ZTdcdTRlZmJcdThiYTRcdTUyMDNcdTU5OGFcdTdlYWJcdTYyNTRcdTRlY2RcdTY1ZTVcdTYyMGVcdTgzMzhcdTg0YzlcdTgzNjNcdTg3OGRcdTcxOTRcdTZlYjZcdTViYjlcdTdlZDJcdTUxOTdcdTYzYzlcdTY3'@; put 'ZDRcdTgwODlcdTgzMzlcdTg4MTVcdTUxMTJcdTViN2FcdTU5ODJcdThmYjFcdTRlNzNcdTZjNWRcdTUxNjVcdTg5MjVcdThmNmZcdTk2MmVcdTg1NGFcdTc0NWVcdTk1MTBcdTk1ZjBcdTZkYTZcdTgyZTVcdTVmMzFcdTY0OTJcdTZkMTJcdTg0MjhcdTgxNmVcdTljYzNcdTU4NWVcdThkNWJc'@; put 'dTRlMDlcdTUzYzEiXSxbImM5NDAiLCJcdTg0N2QiLDQsIlx1ODQ4M1x1ODQ4NFx1ODQ4NVx1ODQ4Nlx1ODQ4YVx1ODQ4ZFx1ODQ4ZiIsNywiXHU4NDk4XHU4NDlhXHU4NDliXHU4NDlkXHU4NDllXHU4NDlmXHU4NGEwXHU4NGEyIiwxMiwiXHU4NGIwXHU4NGIxXHU4NGIzXHU4NGI1XHU4NGI2'@; put 'XHU4NGI3XHU4NGJiXHU4NGJjXHU4NGJlXHU4NGMwXHU4NGMyXHU4NGMzXHU4NGM1XHU4NGM2XHU4NGM3XHU4NGM4XHU4NGNiXHU4NGNjXHU4NGNlXHU4NGNmXHU4NGQyXHU4NGQ0XHU4NGQ1XHU4NGQ3Il0sWyJjOTgwIiwiXHU4NGQ4Iiw0LCJcdTg0ZGVcdTg0ZTFcdTg0ZTJcdTg0ZTRcdTg0'@; put 'ZTciLDQsIlx1ODRlZFx1ODRlZVx1ODRlZlx1ODRmMSIsMTAsIlx1ODRmZFx1ODRmZVx1ODUwMFx1ODUwMVx1ODUwMlx1NGYxZVx1NjU2M1x1Njg1MVx1NTVkM1x1NGUyN1x1NjQxNFx1OWE5YVx1NjI2Ylx1NWFjMlx1NzQ1Zlx1ODI3Mlx1NmRhOVx1NjhlZVx1NTBlN1x1ODM4ZVx1NzgwMlx1'@; put 'Njc0MFx1NTIzOVx1NmM5OVx1N2ViMVx1NTBiYlx1NTU2NVx1NzE1ZVx1N2I1Ylx1NjY1Mlx1NzNjYVx1ODJlYlx1Njc0OVx1NWM3MVx1NTIyMFx1NzE3ZFx1ODg2Ylx1OTVlYVx1OTY1NVx1NjRjNVx1OGQ2MVx1ODFiM1x1NTU4NFx1NmM1NVx1NjI0N1x1N2YyZVx1NTg5Mlx1NGYyNFx1NTU0'@; put 'Nlx1OGQ0Zlx1NjY0Y1x1NGUwYVx1NWMxYVx1ODhmM1x1NjhhMlx1NjM0ZVx1N2EwZFx1NzBlN1x1ODI4ZFx1NTJmYVx1OTdmNlx1NWMxMVx1NTRlOFx1OTBiNVx1N2VjZFx1NTk2Mlx1OGQ0YVx1ODZjN1x1ODIwY1x1ODIwZFx1OGQ2Nlx1NjQ0NFx1NWMwNFx1NjE1MVx1NmQ4OVx1NzkzZVx1'@; put 'OGJiZVx1NzgzN1x1NzUzM1x1NTQ3Ylx1NGYzOFx1OGVhYlx1NmRmMVx1NWEyMFx1N2VjNVx1Nzk1ZVx1NmM4OFx1NWJhMVx1NWE3Nlx1NzUxYVx1ODBiZVx1NjE0ZVx1NmUxN1x1NThmMFx1NzUxZlx1NzUyNVx1NzI3Mlx1NTM0N1x1N2VmMyJdLFsiY2E0MCIsIlx1ODUwMyIsOCwiXHU4NTBk'@; put 'XHU4NTBlXHU4NTBmXHU4NTEwXHU4NTEyXHU4NTE0XHU4NTE1XHU4NTE2XHU4NTE4XHU4NTE5XHU4NTFiXHU4NTFjXHU4NTFkXHU4NTFlXHU4NTIwXHU4NTIyIiw4LCJcdTg1MmQiLDksIlx1ODUzZSIsNCwiXHU4NTQ0XHU4NTQ1XHU4NTQ2XHU4NTQ3XHU4NTRiIiwxMF0sWyJjYTgwIiwiXHU4'@; put 'NTU3XHU4NTU4XHU4NTVhXHU4NTViXHU4NTVjXHU4NTVkXHU4NTVmIiw0LCJcdTg1NjVcdTg1NjZcdTg1NjdcdTg1NjkiLDgsIlx1ODU3M1x1ODU3NVx1ODU3Nlx1ODU3N1x1ODU3OFx1ODU3Y1x1ODU3ZFx1ODU3Zlx1ODU4MFx1ODU4MVx1NzcwMVx1NzZkYlx1NTI2OVx1ODBkY1x1NTcyM1x1'@; put 'NWUwOFx1NTkzMVx1NzJlZVx1NjViZFx1NmU3Zlx1OGJkN1x1NWMzOFx1ODY3MVx1NTM0MVx1NzdmM1x1NjJmZVx1NjVmNlx1NGVjMFx1OThkZlx1ODY4MFx1NWI5ZVx1OGJjNlx1NTNmMlx1NzdlMlx1NGY3Zlx1NWM0ZVx1OWE3Nlx1NTljYlx1NWYwZlx1NzkzYVx1NThlYlx1NGUxNlx1Njdm'@; put 'Zlx1NGU4Ylx1NjJlZFx1OGE5M1x1OTAxZFx1NTJiZlx1NjYyZlx1NTVkY1x1NTY2Y1x1OTAwMlx1NGVkNVx1NGY4ZFx1OTFjYVx1OTk3MFx1NmMwZlx1NWUwMlx1NjA0M1x1NWJhNFx1ODljNlx1OGJkNVx1NjUzNlx1NjI0Ylx1OTk5Nlx1NWI4OFx1NWJmZlx1NjM4OFx1NTUyZVx1NTNkN1x1'@; put 'NzYyNlx1NTE3ZFx1ODUyY1x1NjdhMlx1NjhiM1x1NmI4YVx1NjI5Mlx1OGY5M1x1NTNkNFx1ODIxMlx1NmRkMVx1NzU4Zlx1NGU2Nlx1OGQ0ZVx1NWI3MFx1NzE5Zlx1ODVhZlx1NjY5MVx1NjZkOVx1N2Y3Mlx1ODcwMFx1OWVjZFx1OWYyMFx1NWM1ZVx1NjcyZlx1OGZmMFx1NjgxMVx1Njc1'@; put 'Zlx1NjIwZFx1N2FkNlx1NTg4NVx1NWViNlx1NjU3MFx1NmYzMSJdLFsiY2I0MCIsIlx1ODU4Mlx1ODU4M1x1ODU4Nlx1ODU4OCIsNiwiXHU4NTkwIiwxMCwiXHU4NTlkIiw2LCJcdTg1YTVcdTg1YTZcdTg1YTdcdTg1YTlcdTg1YWJcdTg1YWNcdTg1YWRcdTg1YjEiLDUsIlx1ODViOFx1ODVi'@; put 'YSIsNiwiXHU4NWMyIiw2LCJcdTg1Y2EiLDQsIlx1ODVkMVx1ODVkMiJdLFsiY2I4MCIsIlx1ODVkNFx1ODVkNiIsNSwiXHU4NWRkIiw2LCJcdTg1ZTVcdTg1ZTZcdTg1ZTdcdTg1ZThcdTg1ZWEiLDE0LCJcdTYwNTVcdTUyMzdcdTgwMGRcdTY0NTRcdTg4NzBcdTc1MjlcdTVlMDVcdTY4MTNc'@; put 'dTYyZjRcdTk3MWNcdTUzY2NcdTcyM2RcdThjMDFcdTZjMzRcdTc3NjFcdTdhMGVcdTU0MmVcdTc3YWNcdTk4N2FcdTgyMWNcdThiZjRcdTc4NTVcdTY3MTRcdTcwYzFcdTY1YWZcdTY0OTVcdTU2MzZcdTYwMWRcdTc5YzFcdTUzZjhcdTRlMWRcdTZiN2JcdTgwODZcdTViZmFcdTU1ZTNcdTU2'@; put 'ZGJcdTRmM2FcdTRmM2NcdTk5NzJcdTVkZjNcdTY3N2VcdTgwMzhcdTYwMDJcdTk4ODJcdTkwMDFcdTViOGJcdThiYmNcdThiZjVcdTY0MWNcdTgyNThcdTY0ZGVcdTU1ZmRcdTgyY2ZcdTkxNjVcdTRmZDdcdTdkMjBcdTkwMWZcdTdjOWZcdTUwZjNcdTU4NTFcdTZlYWZcdTViYmZcdThiYzlc'@; put 'dTgwODNcdTkxNzhcdTg0OWNcdTdiOTdcdTg2N2RcdTk2OGJcdTk2OGZcdTdlZTVcdTlhZDNcdTc4OGVcdTVjODFcdTdhNTdcdTkwNDJcdTk2YTdcdTc5NWZcdTViNTlcdTYzNWZcdTdiMGJcdTg0ZDFcdTY4YWRcdTU1MDZcdTdmMjlcdTc0MTBcdTdkMjJcdTk1MDFcdTYyNDBcdTU4NGNcdTRl'@; put 'ZDZcdTViODNcdTU5NzlcdTU4NTQiXSxbImNjNDAiLCJcdTg1ZjlcdTg1ZmFcdTg1ZmNcdTg1ZmRcdTg1ZmVcdTg2MDAiLDQsIlx1ODYwNiIsMTAsIlx1ODYxMlx1ODYxM1x1ODYxNFx1ODYxNVx1ODYxNyIsMTUsIlx1ODYyOFx1ODYyYSIsMTMsIlx1ODYzOVx1ODYzYVx1ODYzYlx1ODYzZFx1'@; put 'ODYzZVx1ODYzZlx1ODY0MCJdLFsiY2M4MCIsIlx1ODY0MSIsMTEsIlx1ODY1Mlx1ODY1M1x1ODY1NSIsNCwiXHU4NjViXHU4NjVjXHU4NjVkXHU4NjVmXHU4NjYwXHU4NjYxXHU4NjYzIiw3LCJcdTczNmRcdTYzMWVcdThlNGJcdThlMGZcdTgwY2VcdTgyZDRcdTYyYWNcdTUzZjBcdTZjZjBc'@; put 'dTkxNWVcdTU5MmFcdTYwMDFcdTZjNzBcdTU3NGRcdTY0NGFcdThkMmFcdTc2MmJcdTZlZTlcdTU3NWJcdTZhODBcdTc1ZjBcdTZmNmRcdThjMmRcdThjMDhcdTU3NjZcdTZiZWZcdTg4OTJcdTc4YjNcdTYzYTJcdTUzZjlcdTcwYWRcdTZjNjRcdTU4NThcdTY0MmFcdTU4MDJcdTY4ZTBcdTgx'@; put 'OWJcdTU1MTBcdTdjZDZcdTUwMThcdThlYmFcdTZkY2NcdThkOWZcdTcwZWJcdTYzOGZcdTZkOWJcdTZlZDRcdTdlZTZcdTg0MDRcdTY4NDNcdTkwMDNcdTZkZDhcdTk2NzZcdThiYThcdTU5NTdcdTcyNzlcdTg1ZTRcdTgxN2VcdTc1YmNcdThhOGFcdTY4YWZcdTUyNTRcdThlMjJcdTk1MTFc'@; put 'dTYzZDBcdTk4OThcdThlNDRcdTU1N2NcdTRmNTNcdTY2ZmZcdTU2OGZcdTYwZDVcdTZkOTVcdTUyNDNcdTVjNDlcdTU5MjlcdTZkZmJcdTU4NmJcdTc1MzBcdTc1MWNcdTYwNmNcdTgyMTRcdTgxNDZcdTYzMTFcdTY3NjFcdThmZTJcdTc3M2FcdThkZjNcdThkMzRcdTk0YzFcdTVlMTZcdTUz'@; put 'ODVcdTU0MmNcdTcwYzMiXSxbImNkNDAiLCJcdTg2NmRcdTg2NmZcdTg2NzBcdTg2NzIiLDYsIlx1ODY4MyIsNiwiXHU4NjhlIiw0LCJcdTg2OTRcdTg2OTYiLDUsIlx1ODY5ZSIsNCwiXHU4NmE1XHU4NmE2XHU4NmFiXHU4NmFkXHU4NmFlXHU4NmIyXHU4NmIzXHU4NmI3XHU4NmI4XHU4NmI5'@; put 'XHU4NmJiIiw0LCJcdTg2YzFcdTg2YzJcdTg2YzNcdTg2YzVcdTg2YzhcdTg2Y2NcdTg2Y2RcdTg2ZDJcdTg2ZDNcdTg2ZDVcdTg2ZDZcdTg2ZDdcdTg2ZGFcdTg2ZGMiXSxbImNkODAiLCJcdTg2ZGRcdTg2ZTBcdTg2ZTFcdTg2ZTJcdTg2ZTNcdTg2ZTVcdTg2ZTZcdTg2ZTdcdTg2ZThcdTg2'@; put 'ZWFcdTg2ZWJcdTg2ZWNcdTg2ZWZcdTg2ZjVcdTg2ZjZcdTg2ZjdcdTg2ZmFcdTg2ZmJcdTg2ZmNcdTg2ZmRcdTg2ZmZcdTg3MDFcdTg3MDRcdTg3MDVcdTg3MDZcdTg3MGJcdTg3MGNcdTg3MGVcdTg3MGZcdTg3MTBcdTg3MTFcdTg3MTRcdTg3MTZcdTZjNDBcdTVlZjdcdTUwNWNcdTRlYWRc'@; put 'dTVlYWRcdTYzM2FcdTgyNDdcdTkwMWFcdTY4NTBcdTkxNmVcdTc3YjNcdTU0MGNcdTk0ZGNcdTVmNjRcdTdhZTVcdTY4NzZcdTYzNDVcdTdiNTJcdTdlZGZcdTc1ZGJcdTUwNzdcdTYyOTVcdTU5MzRcdTkwMGZcdTUxZjhcdTc5YzNcdTdhODFcdTU2ZmVcdTVmOTJcdTkwMTRcdTZkODJcdTVj'@; put 'NjBcdTU3MWZcdTU0MTBcdTUxNTRcdTZlNGRcdTU2ZTJcdTYzYThcdTk4OTNcdTgxN2ZcdTg3MTVcdTg5MmFcdTkwMDBcdTU0MWVcdTVjNmZcdTgxYzBcdTYyZDZcdTYyNThcdTgxMzFcdTllMzVcdTk2NDBcdTlhNmVcdTlhN2NcdTY5MmRcdTU5YTVcdTYyZDNcdTU1M2VcdTYzMTZcdTU0Yzdc'@; put 'dTg2ZDlcdTZkM2NcdTVhMDNcdTc0ZTZcdTg4OWNcdTZiNmFcdTU5MTZcdThjNGNcdTVmMmZcdTZlN2VcdTczYTlcdTk4N2RcdTRlMzhcdTcwZjdcdTViOGNcdTc4OTdcdTYzM2RcdTY2NWFcdTc2OTZcdTYwY2JcdTViOWJcdTVhNDlcdTRlMDdcdTgxNTVcdTZjNmFcdTczOGJcdTRlYTFcdTY3'@; put 'ODlcdTdmNTFcdTVmODBcdTY1ZmFcdTY3MWJcdTVmZDhcdTU5ODRcdTVhMDEiXSxbImNlNDAiLCJcdTg3MTlcdTg3MWJcdTg3MWRcdTg3MWZcdTg3MjBcdTg3MjRcdTg3MjZcdTg3MjdcdTg3MjhcdTg3MmFcdTg3MmJcdTg3MmNcdTg3MmRcdTg3MmZcdTg3MzBcdTg3MzJcdTg3MzNcdTg3MzVc'@; put 'dTg3MzZcdTg3MzhcdTg3MzlcdTg3M2FcdTg3M2NcdTg3M2RcdTg3NDAiLDYsIlx1ODc0YVx1ODc0Ylx1ODc0ZFx1ODc0Zlx1ODc1MFx1ODc1MVx1ODc1Mlx1ODc1NFx1ODc1NVx1ODc1Nlx1ODc1OFx1ODc1YSIsNSwiXHU4NzYxXHU4NzYyXHU4NzY2Iiw3LCJcdTg3NmZcdTg3NzFcdTg3NzJc'@; put 'dTg3NzNcdTg3NzUiXSxbImNlODAiLCJcdTg3NzdcdTg3NzhcdTg3NzlcdTg3N2FcdTg3N2ZcdTg3ODBcdTg3ODFcdTg3ODRcdTg3ODZcdTg3ODdcdTg3ODlcdTg3OGFcdTg3OGNcdTg3OGUiLDQsIlx1ODc5NFx1ODc5NVx1ODc5Nlx1ODc5OCIsNiwiXHU4N2EwIiw0LCJcdTVkY2RcdTVmYWVc'@; put 'dTUzNzFcdTk3ZTZcdThmZGRcdTY4NDVcdTU2ZjRcdTU1MmZcdTYwZGZcdTRlM2FcdTZmNGRcdTdlZjRcdTgyYzdcdTg0MGVcdTU5ZDRcdTRmMWZcdTRmMmFcdTVjM2VcdTdlYWNcdTY3MmFcdTg1MWFcdTU0NzNcdTc1NGZcdTgwYzNcdTU1ODJcdTliNGZcdTRmNGRcdTZlMmRcdThjMTNcdTVj'@; put 'MDlcdTYxNzBcdTUzNmJcdTc2MWZcdTZlMjlcdTg2OGFcdTY1ODdcdTk1ZmJcdTdlYjlcdTU0M2JcdTdhMzNcdTdkMGFcdTk1ZWVcdTU1ZTFcdTdmYzFcdTc0ZWVcdTYzMWRcdTg3MTdcdTZkYTFcdTdhOWRcdTYyMTFcdTY1YTFcdTUzNjdcdTYzZTFcdTZjODNcdTVkZWJcdTU0NWNcdTk0YThc'@; put 'dTRlNGNcdTZjNjFcdThiZWNcdTVjNGJcdTY1ZTBcdTgyOWNcdTY4YTdcdTU0M2VcdTU0MzRcdTZiY2JcdTZiNjZcdTRlOTRcdTYzNDJcdTUzNDhcdTgyMWVcdTRmMGRcdTRmYWVcdTU3NWVcdTYyMGFcdTk2ZmVcdTY2NjRcdTcyNjlcdTUyZmZcdTUyYTFcdTYwOWZcdThiZWZcdTY2MTRcdTcx'@; put 'OTlcdTY3OTBcdTg5N2ZcdTc4NTJcdTc3ZmRcdTY2NzBcdTU2M2JcdTU0MzhcdTk1MjFcdTcyN2EiXSxbImNmNDAiLCJcdTg3YTVcdTg3YTZcdTg3YTdcdTg3YTlcdTg3YWFcdTg3YWVcdTg3YjBcdTg3YjFcdTg3YjJcdTg3YjRcdTg3YjZcdTg3YjdcdTg3YjhcdTg3YjlcdTg3YmJcdTg3YmNc'@; put 'dTg3YmVcdTg3YmZcdTg3YzEiLDQsIlx1ODdjN1x1ODdjOFx1ODdjOVx1ODdjYyIsNCwiXHU4N2Q0Iiw2LCJcdTg3ZGNcdTg3ZGRcdTg3ZGVcdTg3ZGZcdTg3ZTFcdTg3ZTJcdTg3ZTNcdTg3ZTRcdTg3ZTZcdTg3ZTdcdTg3ZThcdTg3ZTlcdTg3ZWJcdTg3ZWNcdTg3ZWRcdTg3ZWYiLDldLFsi'@; put 'Y2Y4MCIsIlx1ODdmYVx1ODdmYlx1ODdmY1x1ODdmZFx1ODdmZlx1ODgwMFx1ODgwMVx1ODgwMlx1ODgwNCIsNSwiXHU4ODBiIiw3LCJcdTg4MTRcdTg4MTdcdTg4MThcdTg4MTlcdTg4MWFcdTg4MWMiLDQsIlx1ODgyM1x1N2EwMFx1NjA2Zlx1NWUwY1x1NjA4OVx1ODE5ZFx1NTkxNVx1NjBk'@; put 'Y1x1NzE4NFx1NzBlZlx1NmVhYVx1NmM1MFx1NzI4MFx1NmE4NFx1ODhhZFx1NWUyZFx1NGU2MFx1NWFiM1x1NTU5Y1x1OTRlM1x1NmQxN1x1N2NmYlx1OTY5OVx1NjIwZlx1N2VjNlx1Nzc4ZVx1ODY3ZVx1NTMyM1x1OTcxZVx1OGY5Nlx1NjY4N1x1NWNlMVx1NGZhMFx1NzJlZFx1NGUwYlx1'@; put 'NTNhNlx1NTkwZlx1NTQxM1x1NjM4MFx1OTUyOFx1NTE0OFx1NGVkOVx1OWM5Y1x1N2VhNFx1NTRiOFx1OGQyNFx1ODg1NFx1ODIzN1x1OTVmMlx1NmQ4ZVx1NWYyNlx1NWFjY1x1NjYzZVx1OTY2OVx1NzNiMFx1NzMyZVx1NTNiZlx1ODE3YVx1OTk4NVx1N2ZhMVx1NWJhYVx1OTY3N1x1OTY1'@; put 'MFx1N2ViZlx1NzZmOFx1NTNhMlx1OTU3Nlx1OTk5OVx1N2JiMVx1ODk0NFx1NmU1OFx1NGU2MVx1N2ZkNFx1Nzk2NVx1OGJlNlx1NjBmM1x1NTRjZFx1NGVhYlx1OTg3OVx1NWRmN1x1NmE2MVx1NTBjZlx1NTQxMVx1OGM2MVx1ODQyN1x1Nzg1ZFx1OTcwNFx1NTI0YVx1NTRlZVx1NTZhM1x1'@; put 'OTUwMFx1NmQ4OFx1NWJiNVx1NmRjNlx1NjY1MyJdLFsiZDA0MCIsIlx1ODgyNCIsMTMsIlx1ODgzMyIsNSwiXHU4ODNhXHU4ODNiXHU4ODNkXHU4ODNlXHU4ODNmXHU4ODQxXHU4ODQyXHU4ODQzXHU4ODQ2Iiw1LCJcdTg4NGUiLDUsIlx1ODg1NVx1ODg1Nlx1ODg1OFx1ODg1YSIsNiwiXHU4'@; put 'ODY2XHU4ODY3XHU4ODZhXHU4ODZkXHU4ODZmXHU4ODcxXHU4ODczXHU4ODc0XHU4ODc1XHU4ODc2XHU4ODc4XHU4ODc5XHU4ODdhIl0sWyJkMDgwIiwiXHU4ODdiXHU4ODdjXHU4ODgwXHU4ODgzXHU4ODg2XHU4ODg3XHU4ODg5XHU4ODhhXHU4ODhjXHU4ODhlXHU4ODhmXHU4ODkwXHU4ODkx'@; put 'XHU4ODkzXHU4ODk0XHU4ODk1XHU4ODk3Iiw0LCJcdTg4OWQiLDQsIlx1ODhhM1x1ODhhNSIsNSwiXHU1YzBmXHU1YjVkXHU2ODIxXHU4MDk2XHU1NTc4XHU3YjExXHU2NTQ4XHU2OTU0XHU0ZTliXHU2YjQ3XHU4NzRlXHU5NzhiXHU1MzRmXHU2MzFmXHU2NDNhXHU5MGFhXHU2NTljXHU4MGMx'@; put 'XHU4YzEwXHU1MTk5XHU2OGIwXHU1Mzc4XHU4N2Y5XHU2MWM4XHU2Y2M0XHU2Y2ZiXHU4YzIyXHU1YzUxXHU4NWFhXHU4MmFmXHU5NTBjXHU2YjIzXHU4ZjliXHU2NWIwXHU1ZmZiXHU1ZmMzXHU0ZmUxXHU4ODQ1XHU2NjFmXHU4MTY1XHU3MzI5XHU2MGZhXHU1MTc0XHU1MjExXHU1NzhiXHU1'@; put 'ZjYyXHU5MGEyXHU4ODRjXHU5MTkyXHU1ZTc4XHU2NzRmXHU2MDI3XHU1OWQzXHU1MTQ0XHU1MWY2XHU4MGY4XHU1MzA4XHU2Yzc5XHU5NmM0XHU3MThhXHU0ZjExXHU0ZmVlXHU3ZjllXHU2NzNkXHU1NWM1XHU5NTA4XHU3OWMwXHU4ODk2XHU3ZWUzXHU1ODlmXHU2MjBjXHU5NzAwXHU4NjVh'@; put 'XHU1NjE4XHU5ODdiXHU1ZjkwXHU4YmI4XHU4NGM0XHU5MTU3XHU1M2Q5XHU2NWVkXHU1ZThmXHU3NTVjXHU2MDY0XHU3ZDZlXHU1YTdmXHU3ZWVhXHU3ZWVkXHU4ZjY5XHU1NWE3XHU1YmEzXHU2MGFjXHU2NWNiXHU3Mzg0Il0sWyJkMTQwIiwiXHU4OGFjXHU4OGFlXHU4OGFmXHU4OGIwXHU4'@; put 'OGIyIiw0LCJcdTg4YjhcdTg4YjlcdTg4YmFcdTg4YmJcdTg4YmRcdTg4YmVcdTg4YmZcdTg4YzBcdTg4YzNcdTg4YzRcdTg4YzdcdTg4YzhcdTg4Y2FcdTg4Y2JcdTg4Y2NcdTg4Y2RcdTg4Y2ZcdTg4ZDBcdTg4ZDFcdTg4ZDNcdTg4ZDZcdTg4ZDdcdTg4ZGEiLDQsIlx1ODhlMFx1ODhlMVx1'@; put 'ODhlNlx1ODhlN1x1ODhlOSIsNiwiXHU4OGYyXHU4OGY1XHU4OGY2XHU4OGY3XHU4OGZhXHU4OGZiXHU4OGZkXHU4OGZmXHU4OTAwXHU4OTAxXHU4OTAzIiw1XSxbImQxODAiLCJcdTg5MDlcdTg5MGIiLDQsIlx1ODkxMVx1ODkxNCIsNCwiXHU4OTFjIiw0LCJcdTg5MjJcdTg5MjNcdTg5MjRc'@; put 'dTg5MjZcdTg5MjdcdTg5MjhcdTg5MjlcdTg5MmNcdTg5MmRcdTg5MmVcdTg5MmZcdTg5MzFcdTg5MzJcdTg5MzNcdTg5MzVcdTg5MzdcdTkwMDlcdTc2NjNcdTc3MjlcdTdlZGFcdTk3NzRcdTg1OWJcdTViNjZcdTdhNzRcdTk2ZWFcdTg4NDBcdTUyY2JcdTcxOGZcdTVmYWFcdTY1ZWNcdThi'@; put 'ZTJcdTViZmJcdTlhNmZcdTVkZTFcdTZiODlcdTZjNWJcdThiYWRcdThiYWZcdTkwMGFcdThmYzVcdTUzOGJcdTYyYmNcdTllMjZcdTllMmRcdTU0NDBcdTRlMmJcdTgyYmRcdTcyNTlcdTg2OWNcdTVkMTZcdTg4NTlcdTZkYWZcdTk2YzVcdTU0ZDFcdTRlOWFcdThiYjZcdTcxMDlcdTU0YmRc'@; put 'dTk2MDlcdTcwZGZcdTZkZjlcdTc2ZDBcdTRlMjVcdTc4MTRcdTg3MTJcdTVjYTlcdTVlZjZcdThhMDBcdTk4OWNcdTk2MGVcdTcwOGVcdTZjYmZcdTU5NDRcdTYzYTlcdTc3M2NcdTg4NGRcdTZmMTRcdTgyNzNcdTU4MzBcdTcxZDVcdTUzOGNcdTc4MWFcdTk2YzFcdTU1MDFcdTVmNjZcdTcx'@; put 'MzBcdTViYjRcdThjMWFcdTlhOGNcdTZiODNcdTU5MmVcdTllMmZcdTc5ZTdcdTY3NjhcdTYyNmNcdTRmNmZcdTc1YTFcdTdmOGFcdTZkMGJcdTk2MzNcdTZjMjdcdTRlZjBcdTc1ZDJcdTUxN2JcdTY4MzdcdTZmM2VcdTkwODBcdTgxNzBcdTU5OTZcdTc0NzYiXSxbImQyNDAiLCJcdTg5Mzgi'@; put 'LDgsIlx1ODk0Mlx1ODk0M1x1ODk0NSIsMjQsIlx1ODk2MCIsNSwiXHU4OTY3IiwxOSwiXHU4OTdjIl0sWyJkMjgwIiwiXHU4OTdkXHU4OTdlXHU4OTgwXHU4OTgyXHU4OTg0XHU4OTg1XHU4OTg3IiwyNiwiXHU2NDQ3XHU1YzI3XHU5MDY1XHU3YTkxXHU4YzIzXHU1OWRhXHU1NGFjXHU4MjAw'@; put 'XHU4MzZmXHU4OTgxXHU4MDAwXHU2OTMwXHU1NjRlXHU4MDM2XHU3MjM3XHU5MWNlXHU1MWI2XHU0ZTVmXHU5ODc1XHU2Mzk2XHU0ZTFhXHU1M2Y2XHU2NmYzXHU4MTRiXHU1OTFjXHU2ZGIyXHU0ZTAwXHU1OGY5XHU1MzNiXHU2M2Q2XHU5NGYxXHU0ZjlkXHU0ZjBhXHU4ODYzXHU5ODkwXHU1'@; put 'OTM3XHU5MDU3XHU3OWZiXHU0ZWVhXHU4MGYwXHU3NTkxXHU2YzgyXHU1YjljXHU1OWU4XHU1ZjVkXHU2OTA1XHU4NjgxXHU1MDFhXHU1ZGYyXHU0ZTU5XHU3N2UzXHU0ZWU1XHU4MjdhXHU2MjkxXHU2NjEzXHU5MDkxXHU1Yzc5XHU0ZWJmXHU1Zjc5XHU4MWM2XHU5MDM4XHU4MDg0XHU3NWFi'@; put 'XHU0ZWE2XHU4OGQ0XHU2MTBmXHU2YmM1XHU1ZmM2XHU0ZTQ5XHU3NmNhXHU2ZWEyXHU4YmUzXHU4YmFlXHU4YzBhXHU4YmQxXHU1ZjAyXHU3ZmZjXHU3ZmNjXHU3ZWNlXHU4MzM1XHU4MzZiXHU1NmUwXHU2YmI3XHU5N2YzXHU5NjM0XHU1OWZiXHU1NDFmXHU5NGY2XHU2ZGViXHU1YmM1XHU5'@; put 'OTZlXHU1YzM5XHU1ZjE1XHU5NjkwIl0sWyJkMzQwIiwiXHU4OWEyIiwzMCwiXHU4OWMzXHU4OWNkXHU4OWQzXHU4OWQ0XHU4OWQ1XHU4OWQ3XHU4OWQ4XHU4OWQ5XHU4OWRiXHU4OWRkXHU4OWRmXHU4OWUwXHU4OWUxXHU4OWUyXHU4OWU0XHU4OWU3XHU4OWU4XHU4OWU5XHU4OWVhXHU4OWVj'@; put 'XHU4OWVkXHU4OWVlXHU4OWYwXHU4OWYxXHU4OWYyXHU4OWY0Iiw2XSxbImQzODAiLCJcdTg5ZmIiLDQsIlx1OGEwMSIsNSwiXHU4YTA4IiwyMSwiXHU1MzcwXHU4MmYxXHU2YTMxXHU1YTc0XHU5ZTcwXHU1ZTk0XHU3ZjI4XHU4M2I5XHU4NDI0XHU4NDI1XHU4MzY3XHU4NzQ3XHU4ZmNlXHU4'@; put 'ZDYyXHU3NmM4XHU1ZjcxXHU5ODk2XHU3ODZjXHU2NjIwXHU1NGRmXHU2MmU1XHU0ZjYzXHU4MWMzXHU3NWM4XHU1ZWI4XHU5NmNkXHU4ZTBhXHU4NmY5XHU1NDhmXHU2Y2YzXHU2ZDhjXHU2YzM4XHU2MDdmXHU1MmM3XHU3NTI4XHU1ZTdkXHU0ZjE4XHU2MGEwXHU1ZmU3XHU1YzI0XHU3NTMx'@; put 'XHU5MGFlXHU5NGMwXHU3MmI5XHU2Y2I5XHU2ZTM4XHU5MTQ5XHU2NzA5XHU1M2NiXHU1M2YzXHU0ZjUxXHU5MWM5XHU4YmYxXHU1M2M4XHU1ZTdjXHU4ZmMyXHU2ZGU0XHU0ZThlXHU3NmMyXHU2OTg2XHU4NjVlXHU2MTFhXHU4MjA2XHU0ZjU5XHU0ZmRlXHU5MDNlXHU5YzdjXHU2MTA5XHU2'@; put 'ZTFkXHU2ZTE0XHU5Njg1XHU0ZTg4XHU1YTMxXHU5NmU4XHU0ZTBlXHU1YzdmXHU3OWI5XHU1Yjg3XHU4YmVkXHU3ZmJkXHU3Mzg5XHU1N2RmXHU4MjhiXHU5MGMxXHU1NDAxXHU5MDQ3XHU1NWJiXHU1Y2VhXHU1ZmExXHU2MTA4XHU2YjMyXHU3MmYxXHU4MGIyXHU4YTg5Il0sWyJkNDQwIiwi'@; put 'XHU4YTFlIiwzMSwiXHU4YTNmIiw4LCJcdThhNDkiLDIxXSxbImQ0ODAiLCJcdThhNWYiLDI1LCJcdThhN2EiLDYsIlx1NmQ3NFx1NWJkM1x1ODhkNVx1OTg4NFx1OGM2Ylx1OWE2ZFx1OWUzM1x1NmUwYVx1NTFhNFx1NTE0M1x1NTdhM1x1ODg4MVx1NTM5Zlx1NjNmNFx1OGY5NVx1NTZlZFx1'@; put 'NTQ1OFx1NTcwNlx1NzMzZlx1NmU5MFx1N2YxOFx1OGZkY1x1ODJkMVx1NjEzZlx1NjAyOFx1OTY2Mlx1NjZmMFx1N2VhNlx1OGQ4YVx1OGRjM1x1OTRhNVx1NWNiM1x1N2NhNFx1NjcwOFx1NjBhNlx1OTYwNVx1ODAxOFx1NGU5MVx1OTBlN1x1NTMwMFx1OTY2OFx1NTE0MVx1OGZkMFx1ODU3'@; put 'NFx1OTE1ZFx1NjY1NVx1OTdmNVx1NWI1NVx1NTMxZFx1NzgzOFx1Njc0Mlx1NjgzZFx1NTRjOVx1NzA3ZVx1NWJiMFx1OGY3ZFx1NTE4ZFx1NTcyOFx1NTRiMVx1NjUxMlx1NjY4Mlx1OGQ1ZVx1OGQ0M1x1ODEwZlx1ODQ2Y1x1OTA2ZFx1N2NkZlx1NTFmZlx1ODVmYlx1NjdhM1x1NjVlOVx1'@; put 'NmZhMVx1ODZhNFx1OGU4MVx1NTY2YVx1OTAyMFx1NzY4Mlx1NzA3Nlx1NzFlNVx1OGQyM1x1NjJlOVx1NTIxOVx1NmNmZFx1OGQzY1x1NjAwZVx1NTg5ZVx1NjE4ZVx1NjZmZVx1OGQ2MFx1NjI0ZVx1NTViM1x1NmUyM1x1NjcyZFx1OGY2NyJdLFsiZDU0MCIsIlx1OGE4MSIsNywiXHU4YThi'@; put 'Iiw3LCJcdThhOTQiLDQ2XSxbImQ1ODAiLCJcdThhYzMiLDMyLCJcdTk0ZTFcdTk1ZjhcdTc3MjhcdTY4MDVcdTY5YThcdTU0OGJcdTRlNGRcdTcwYjhcdThiYzhcdTY0NThcdTY1OGJcdTViODVcdTdhODRcdTUwM2FcdTViZThcdTc3YmJcdTZiZTFcdThhNzlcdTdjOThcdTZjYmVcdTc2Y2Zc'@; put 'dTY1YTlcdThmOTdcdTVkMmRcdTVjNTVcdTg2MzhcdTY4MDhcdTUzNjBcdTYyMThcdTdhZDlcdTZlNWJcdTdlZmRcdTZhMWZcdTdhZTBcdTVmNzBcdTZmMzNcdTVmMjBcdTYzOGNcdTZkYThcdTY3NTZcdTRlMDhcdTVlMTBcdThkMjZcdTRlZDdcdTgwYzBcdTc2MzRcdTk2OWNcdTYyZGJcdTY2'@; put 'MmRcdTYyN2VcdTZjYmNcdThkNzVcdTcxNjdcdTdmNjlcdTUxNDZcdTgwODdcdTUzZWNcdTkwNmVcdTYyOThcdTU0ZjJcdTg2ZjBcdThmOTlcdTgwMDVcdTk1MTdcdTg1MTdcdThmZDlcdTZkNTlcdTczY2RcdTY1OWZcdTc3MWZcdTc1MDRcdTc4MjdcdTgxZmJcdThkMWVcdTk0ODhcdTRmYTZc'@; put 'dTY3OTVcdTc1YjlcdThiY2FcdTk3MDdcdTYzMmZcdTk1NDdcdTk2MzVcdTg0YjhcdTYzMjNcdTc3NDFcdTVmODFcdTcyZjBcdTRlODlcdTYwMTRcdTY1NzRcdTYyZWZcdTZiNjNcdTY1M2YiXSxbImQ2NDAiLCJcdThhZTQiLDM0LCJcdThiMDgiLDI3XSxbImQ2ODAiLCJcdThiMjRcdThiMjVc'@; put 'dThiMjciLDMwLCJcdTVlMjdcdTc1YzdcdTkwZDFcdThiYzFcdTgyOWRcdTY3OWRcdTY1MmZcdTU0MzFcdTg3MThcdTc3ZTVcdTgwYTJcdTgxMDJcdTZjNDFcdTRlNGJcdTdlYzdcdTgwNGNcdTc2ZjRcdTY5MGRcdTZiOTZcdTYyNjdcdTUwM2NcdTRmODRcdTU3NDBcdTYzMDdcdTZiNjJcdThk'@; put 'YmVcdTUzZWFcdTY1ZThcdTdlYjhcdTVmZDdcdTYzMWFcdTYzYjdcdTgxZjNcdTgxZjRcdTdmNmVcdTVlMWNcdTVjZDlcdTUyMzZcdTY2N2FcdTc5ZTlcdTdhMWFcdThkMjhcdTcwOTlcdTc1ZDRcdTZlZGVcdTZjYmJcdTdhOTJcdTRlMmRcdTc2YzVcdTVmZTBcdTk0OWZcdTg4NzdcdTdlYzhc'@; put 'dTc5Y2RcdTgwYmZcdTkxY2RcdTRlZjJcdTRmMTdcdTgyMWZcdTU0NjhcdTVkZGVcdTZkMzJcdThiY2NcdTdjYTVcdThmNzRcdTgwOThcdTVlMWFcdTU0OTJcdTc2YjFcdTViOTlcdTY2M2NcdTlhYTRcdTczZTBcdTY4MmFcdTg2ZGJcdTY3MzFcdTczMmFcdThiZjhcdThiZGJcdTkwMTBcdTdh'@; put 'ZjlcdTcwZGJcdTcxNmVcdTYyYzRcdTc3YTlcdTU2MzFcdTRlM2JcdTg0NTdcdTY3ZjFcdTUyYTlcdTg2YzBcdThkMmVcdTk0ZjhcdTdiNTEiXSxbImQ3NDAiLCJcdThiNDYiLDMxLCJcdThiNjciLDQsIlx1OGI2ZCIsMjVdLFsiZDc4MCIsIlx1OGI4NyIsMjQsIlx1OGJhY1x1OGJiMVx1OGJi'@; put 'Ylx1OGJjN1x1OGJkMFx1OGJlYVx1OGMwOVx1OGMxZVx1NGY0Zlx1NmNlOFx1Nzk1ZFx1OWE3Ylx1NjI5M1x1NzIyYVx1NjJmZFx1NGUxM1x1NzgxNlx1OGY2Y1x1NjRiMFx1OGQ1YVx1N2JjNlx1Njg2OVx1NWU4NFx1ODhjNVx1NTk4Nlx1NjQ5ZVx1NThlZVx1NzJiNlx1NjkwZVx1OTUyNVx1'@; put 'OGZmZFx1OGQ1OFx1NTc2MFx1N2YwMFx1OGMwNlx1NTFjNlx1NjM0OVx1NjJkOVx1NTM1M1x1Njg0Y1x1NzQyMlx1ODMwMVx1OTE0Y1x1NTU0NFx1Nzc0MFx1NzA3Y1x1NmQ0YVx1NTE3OVx1NTRhOFx1OGQ0NFx1NTlmZlx1NmVjYlx1NmRjNFx1NWI1Y1x1N2QyYlx1NGVkNFx1N2M3ZFx1NmVk'@; put 'M1x1NWI1MFx1ODFlYVx1NmUwZFx1NWI1N1x1OWIwM1x1NjhkNVx1OGUyYVx1NWI5N1x1N2VmY1x1NjAzYlx1N2ViNVx1OTBiOVx1OGQ3MFx1NTk0Zlx1NjNjZFx1NzlkZlx1OGRiM1x1NTM1Mlx1NjVjZlx1Nzk1Nlx1OGJjNVx1OTYzYlx1N2VjNFx1OTRiYlx1N2U4Mlx1NTYzNFx1OTE4OVx1'@; put 'NjcwMFx1N2Y2YVx1NWMwYVx1OTA3NVx1NjYyOFx1NWRlNlx1NGY1MFx1NjdkZVx1NTA1YVx1NGY1Y1x1NTc1MFx1NWVhNyJdLFsiZDg0MCIsIlx1OGMzOCIsOCwiXHU4YzQyXHU4YzQzXHU4YzQ0XHU4YzQ1XHU4YzQ4XHU4YzRhXHU4YzRiXHU4YzRkIiw3LCJcdThjNTZcdThjNTdcdThjNThc'@; put 'dThjNTlcdThjNWIiLDUsIlx1OGM2MyIsNiwiXHU4YzZjIiw2LCJcdThjNzRcdThjNzVcdThjNzZcdThjNzdcdThjN2IiLDYsIlx1OGM4M1x1OGM4NFx1OGM4Nlx1OGM4NyJdLFsiZDg4MCIsIlx1OGM4OFx1OGM4Ylx1OGM4ZCIsNiwiXHU4Yzk1XHU4Yzk2XHU4Yzk3XHU4Yzk5IiwyMCwiXHU0'@; put 'ZThkXHU0ZTBjXHU1MTQwXHU0ZTEwXHU1ZWZmXHU1MzQ1XHU0ZTE1XHU0ZTk4XHU0ZTFlXHU5YjMyXHU1YjZjXHU1NjY5XHU0ZTI4XHU3OWJhXHU0ZTNmXHU1MzE1XHU0ZTQ3XHU1OTJkXHU3MjNiXHU1MzZlXHU2YzEwXHU1NmRmXHU4MGU0XHU5OTk3XHU2YmQzXHU3NzdlXHU5ZjE3XHU0ZTM2'@; put 'XHU0ZTlmXHU5ZjEwXHU0ZTVjXHU0ZTY5XHU0ZTkzXHU4Mjg4XHU1YjViXHU1NTZjXHU1NjBmXHU0ZWM0XHU1MzhkXHU1MzlkXHU1M2EzXHU1M2E1XHU1M2FlXHU5NzY1XHU4ZDVkXHU1MzFhXHU1M2Y1XHU1MzI2XHU1MzJlXHU1MzNlXHU4ZDVjXHU1MzY2XHU1MzYzXHU1MjAyXHU1MjA4XHU1'@; put 'MjBlXHU1MjJkXHU1MjMzXHU1MjNmXHU1MjQwXHU1MjRjXHU1MjVlXHU1MjYxXHU1MjVjXHU4NGFmXHU1MjdkXHU1MjgyXHU1MjgxXHU1MjkwXHU1MjkzXHU1MTgyXHU3ZjU0XHU0ZWJiXHU0ZWMzXHU0ZWM5XHU0ZWMyXHU0ZWU4XHU0ZWUxXHU0ZWViXHU0ZWRlXHU0ZjFiXHU0ZWYzXHU0ZjIy'@; put 'XHU0ZjY0XHU0ZWY1XHU0ZjI1XHU0ZjI3XHU0ZjA5XHU0ZjJiXHU0ZjVlXHU0ZjY3XHU2NTM4XHU0ZjVhXHU0ZjVkIl0sWyJkOTQwIiwiXHU4Y2FlIiw2Ml0sWyJkOTgwIiwiXHU4Y2VkIiwzMiwiXHU0ZjVmXHU0ZjU3XHU0ZjMyXHU0ZjNkXHU0Zjc2XHU0Zjc0XHU0ZjkxXHU0Zjg5XHU0Zjgz'@; put 'XHU0ZjhmXHU0ZjdlXHU0ZjdiXHU0ZmFhXHU0ZjdjXHU0ZmFjXHU0Zjk0XHU0ZmU2XHU0ZmU4XHU0ZmVhXHU0ZmM1XHU0ZmRhXHU0ZmUzXHU0ZmRjXHU0ZmQxXHU0ZmRmXHU0ZmY4XHU1MDI5XHU1MDRjXHU0ZmYzXHU1MDJjXHU1MDBmXHU1MDJlXHU1MDJkXHU0ZmZlXHU1MDFjXHU1MDBjXHU1'@; put 'MDI1XHU1MDI4XHU1MDdlXHU1MDQzXHU1MDU1XHU1MDQ4XHU1MDRlXHU1MDZjXHU1MDdiXHU1MGE1XHU1MGE3XHU1MGE5XHU1MGJhXHU1MGQ2XHU1MTA2XHU1MGVkXHU1MGVjXHU1MGU2XHU1MGVlXHU1MTA3XHU1MTBiXHU0ZWRkXHU2YzNkXHU0ZjU4XHU0ZjY1XHU0ZmNlXHU5ZmEwXHU2YzQ2'@; put 'XHU3Yzc0XHU1MTZlXHU1ZGZkXHU5ZWM5XHU5OTk4XHU1MTgxXHU1OTE0XHU1MmY5XHU1MzBkXHU4YTA3XHU1MzEwXHU1MWViXHU1OTE5XHU1MTU1XHU0ZWEwXHU1MTU2XHU0ZWIzXHU4ODZlXHU4OGE0XHU0ZWI1XHU4MTE0XHU4OGQyXHU3OTgwXHU1YjM0XHU4ODAzXHU3ZmI4XHU1MWFiXHU1'@; put 'MWIxXHU1MWJkXHU1MWJjIl0sWyJkYTQwIiwiXHU4ZDBlIiwxNCwiXHU4ZDIwXHU4ZDUxXHU4ZDUyXHU4ZDU3XHU4ZDVmXHU4ZDY1XHU4ZDY4XHU4ZDY5XHU4ZDZhXHU4ZDZjXHU4ZDZlXHU4ZDZmXHU4ZDcxXHU4ZDcyXHU4ZDc4Iiw4LCJcdThkODJcdThkODNcdThkODZcdThkODdcdThkODhc'@; put 'dThkODlcdThkOGMiLDQsIlx1OGQ5Mlx1OGQ5M1x1OGQ5NSIsOSwiXHU4ZGEwXHU4ZGExIl0sWyJkYTgwIiwiXHU4ZGEyXHU4ZGE0IiwxMiwiXHU4ZGIyXHU4ZGI2XHU4ZGI3XHU4ZGI5XHU4ZGJiXHU4ZGJkXHU4ZGMwXHU4ZGMxXHU4ZGMyXHU4ZGM1XHU4ZGM3XHU4ZGM4XHU4ZGM5XHU4ZGNh'@; put 'XHU4ZGNkXHU4ZGQwXHU4ZGQyXHU4ZGQzXHU4ZGQ0XHU1MWM3XHU1MTk2XHU1MWEyXHU1MWE1XHU4YmEwXHU4YmE2XHU4YmE3XHU4YmFhXHU4YmI0XHU4YmI1XHU4YmI3XHU4YmMyXHU4YmMzXHU4YmNiXHU4YmNmXHU4YmNlXHU4YmQyXHU4YmQzXHU4YmQ0XHU4YmQ2XHU4YmQ4XHU4YmQ5XHU4'@; put 'YmRjXHU4YmRmXHU4YmUwXHU4YmU0XHU4YmU4XHU4YmU5XHU4YmVlXHU4YmYwXHU4YmYzXHU4YmY2XHU4YmY5XHU4YmZjXHU4YmZmXHU4YzAwXHU4YzAyXHU4YzA0XHU4YzA3XHU4YzBjXHU4YzBmXHU4YzExXHU4YzEyXHU4YzE0XHU4YzE1XHU4YzE2XHU4YzE5XHU4YzFiXHU4YzE4XHU4YzFk'@; put 'XHU4YzFmXHU4YzIwXHU4YzIxXHU4YzI1XHU4YzI3XHU4YzJhXHU4YzJiXHU4YzJlXHU4YzJmXHU4YzMyXHU4YzMzXHU4YzM1XHU4YzM2XHU1MzY5XHU1MzdhXHU5NjFkXHU5NjIyXHU5NjIxXHU5NjMxXHU5NjJhXHU5NjNkXHU5NjNjXHU5NjQyXHU5NjQ5XHU5NjU0XHU5NjVmXHU5NjY3XHU5'@; put 'NjZjXHU5NjcyXHU5Njc0XHU5Njg4XHU5NjhkXHU5Njk3XHU5NmIwXHU5MDk3XHU5MDliXHU5MDlkXHU5MDk5XHU5MGFjXHU5MGExXHU5MGI0XHU5MGIzXHU5MGI2XHU5MGJhIl0sWyJkYjQwIiwiXHU4ZGQ1XHU4ZGQ4XHU4ZGQ5XHU4ZGRjXHU4ZGUwXHU4ZGUxXHU4ZGUyXHU4ZGU1XHU4ZGU2'@; put 'XHU4ZGU3XHU4ZGU5XHU4ZGVkXHU4ZGVlXHU4ZGYwXHU4ZGYxXHU4ZGYyXHU4ZGY0XHU4ZGY2XHU4ZGZjXHU4ZGZlIiw2LCJcdThlMDZcdThlMDdcdThlMDhcdThlMGJcdThlMGRcdThlMGVcdThlMTBcdThlMTFcdThlMTJcdThlMTNcdThlMTUiLDcsIlx1OGUyMFx1OGUyMVx1OGUyNCIsNCwi'@; put 'XHU4ZTJiXHU4ZTJkXHU4ZTMwXHU4ZTMyXHU4ZTMzXHU4ZTM0XHU4ZTM2XHU4ZTM3XHU4ZTM4XHU4ZTNiXHU4ZTNjXHU4ZTNlIl0sWyJkYjgwIiwiXHU4ZTNmXHU4ZTQzXHU4ZTQ1XHU4ZTQ2XHU4ZTRjIiw0LCJcdThlNTMiLDUsIlx1OGU1YSIsMTEsIlx1OGU2N1x1OGU2OFx1OGU2YVx1OGU2'@; put 'Ylx1OGU2ZVx1OGU3MVx1OTBiOFx1OTBiMFx1OTBjZlx1OTBjNVx1OTBiZVx1OTBkMFx1OTBjNFx1OTBjN1x1OTBkM1x1OTBlNlx1OTBlMlx1OTBkY1x1OTBkN1x1OTBkYlx1OTBlYlx1OTBlZlx1OTBmZVx1OTEwNFx1OTEyMlx1OTExZVx1OTEyM1x1OTEzMVx1OTEyZlx1OTEzOVx1OTE0M1x1'@; put 'OTE0Nlx1NTIwZFx1NTk0Mlx1NTJhMlx1NTJhY1x1NTJhZFx1NTJiZVx1NTRmZlx1NTJkMFx1NTJkNlx1NTJmMFx1NTNkZlx1NzFlZVx1NzdjZFx1NWVmNFx1NTFmNVx1NTFmY1x1OWIyZlx1NTNiNlx1NWYwMVx1NzU1YVx1NWRlZlx1NTc0Y1x1NTdhOVx1NTdhMVx1NTg3ZVx1NThiY1x1NThj'@; put 'NVx1NThkMVx1NTcyOVx1NTcyY1x1NTcyYVx1NTczM1x1NTczOVx1NTcyZVx1NTcyZlx1NTc1Y1x1NTczYlx1NTc0Mlx1NTc2OVx1NTc4NVx1NTc2Ylx1NTc4Nlx1NTc3Y1x1NTc3Ylx1NTc2OFx1NTc2ZFx1NTc3Nlx1NTc3M1x1NTdhZFx1NTdhNFx1NTc4Y1x1NTdiMlx1NTdjZlx1NTdhN1x1'@; put 'NTdiNFx1NTc5M1x1NTdhMFx1NTdkNVx1NTdkOFx1NTdkYVx1NTdkOVx1NTdkMlx1NTdiOFx1NTdmNFx1NTdlZlx1NTdmOFx1NTdlNFx1NTdkZCJdLFsiZGM0MCIsIlx1OGU3M1x1OGU3NVx1OGU3NyIsNCwiXHU4ZTdkXHU4ZTdlXHU4ZTgwXHU4ZTgyXHU4ZTgzXHU4ZTg0XHU4ZTg2XHU4ZTg4'@; put 'Iiw2LCJcdThlOTFcdThlOTJcdThlOTNcdThlOTUiLDYsIlx1OGU5ZFx1OGU5ZiIsMTEsIlx1OGVhZFx1OGVhZVx1OGViMFx1OGViMVx1OGViMyIsNiwiXHU4ZWJiIiw3XSxbImRjODAiLCJcdThlYzMiLDEwLCJcdThlY2YiLDIxLCJcdTU4MGJcdTU4MGRcdTU3ZmRcdTU3ZWRcdTU4MDBcdTU4'@; put 'MWVcdTU4MTlcdTU4NDRcdTU4MjBcdTU4NjVcdTU4NmNcdTU4ODFcdTU4ODlcdTU4OWFcdTU4ODBcdTk5YThcdTlmMTlcdTYxZmZcdTgyNzlcdTgyN2RcdTgyN2ZcdTgyOGZcdTgyOGFcdTgyYThcdTgyODRcdTgyOGVcdTgyOTFcdTgyOTdcdTgyOTlcdTgyYWJcdTgyYjhcdTgyYmVcdTgyYjBc'@; put 'dTgyYzhcdTgyY2FcdTgyZTNcdTgyOThcdTgyYjdcdTgyYWVcdTgyY2JcdTgyY2NcdTgyYzFcdTgyYTlcdTgyYjRcdTgyYTFcdTgyYWFcdTgyOWZcdTgyYzRcdTgyY2VcdTgyYTRcdTgyZTFcdTgzMDlcdTgyZjdcdTgyZTRcdTgzMGZcdTgzMDdcdTgyZGNcdTgyZjRcdTgyZDJcdTgyZDhcdTgz'@; put 'MGNcdTgyZmJcdTgyZDNcdTgzMTFcdTgzMWFcdTgzMDZcdTgzMTRcdTgzMTVcdTgyZTBcdTgyZDVcdTgzMWNcdTgzNTFcdTgzNWJcdTgzNWNcdTgzMDhcdTgzOTJcdTgzM2NcdTgzMzRcdTgzMzFcdTgzOWJcdTgzNWVcdTgzMmZcdTgzNGZcdTgzNDdcdTgzNDNcdTgzNWZcdTgzNDBcdTgzMTdc'@; put 'dTgzNjBcdTgzMmRcdTgzM2FcdTgzMzNcdTgzNjZcdTgzNjUiXSxbImRkNDAiLCJcdThlZTUiLDYyXSxbImRkODAiLCJcdThmMjQiLDMyLCJcdTgzNjhcdTgzMWJcdTgzNjlcdTgzNmNcdTgzNmFcdTgzNmRcdTgzNmVcdTgzYjBcdTgzNzhcdTgzYjNcdTgzYjRcdTgzYTBcdTgzYWFcdTgzOTNc'@; put 'dTgzOWNcdTgzODVcdTgzN2NcdTgzYjZcdTgzYTlcdTgzN2RcdTgzYjhcdTgzN2JcdTgzOThcdTgzOWVcdTgzYThcdTgzYmFcdTgzYmNcdTgzYzFcdTg0MDFcdTgzZTVcdTgzZDhcdTU4MDdcdTg0MThcdTg0MGJcdTgzZGRcdTgzZmRcdTgzZDZcdTg0MWNcdTg0MzhcdTg0MTFcdTg0MDZcdTgz'@; put 'ZDRcdTgzZGZcdTg0MGZcdTg0MDNcdTgzZjhcdTgzZjlcdTgzZWFcdTgzYzVcdTgzYzBcdTg0MjZcdTgzZjBcdTgzZTFcdTg0NWNcdTg0NTFcdTg0NWFcdTg0NTlcdTg0NzNcdTg0ODdcdTg0ODhcdTg0N2FcdTg0ODlcdTg0NzhcdTg0M2NcdTg0NDZcdTg0NjlcdTg0NzZcdTg0OGNcdTg0OGVc'@; put 'dTg0MzFcdTg0NmRcdTg0YzFcdTg0Y2RcdTg0ZDBcdTg0ZTZcdTg0YmRcdTg0ZDNcdTg0Y2FcdTg0YmZcdTg0YmFcdTg0ZTBcdTg0YTFcdTg0YjlcdTg0YjRcdTg0OTdcdTg0ZTVcdTg0ZTNcdTg1MGNcdTc1MGRcdTg1MzhcdTg0ZjBcdTg1MzlcdTg1MWZcdTg1M2EiXSxbImRlNDAiLCJcdThm'@; put 'NDUiLDMyLCJcdThmNmFcdThmODBcdThmOGNcdThmOTJcdThmOWRcdThmYTBcdThmYTFcdThmYTJcdThmYTRcdThmYTVcdThmYTZcdThmYTdcdThmYWFcdThmYWNcdThmYWRcdThmYWVcdThmYWZcdThmYjJcdThmYjNcdThmYjRcdThmYjVcdThmYjdcdThmYjhcdThmYmFcdThmYmJcdThmYmNc'@; put 'dThmYmZcdThmYzBcdThmYzNcdThmYzYiXSxbImRlODAiLCJcdThmYzkiLDQsIlx1OGZjZlx1OGZkMlx1OGZkNlx1OGZkN1x1OGZkYVx1OGZlMFx1OGZlMVx1OGZlM1x1OGZlN1x1OGZlY1x1OGZlZlx1OGZmMVx1OGZmMlx1OGZmNFx1OGZmNVx1OGZmNlx1OGZmYVx1OGZmYlx1OGZmY1x1OGZm'@; put 'ZVx1OGZmZlx1OTAwN1x1OTAwOFx1OTAwY1x1OTAwZVx1OTAxM1x1OTAxNVx1OTAxOFx1ODU1Nlx1ODUzYlx1ODRmZlx1ODRmY1x1ODU1OVx1ODU0OFx1ODU2OFx1ODU2NFx1ODU1ZVx1ODU3YVx1NzdhMlx1ODU0M1x1ODU3Mlx1ODU3Ylx1ODVhNFx1ODVhOFx1ODU4N1x1ODU4Zlx1ODU3OVx1'@; put 'ODVhZVx1ODU5Y1x1ODU4NVx1ODViOVx1ODViN1x1ODViMFx1ODVkM1x1ODVjMVx1ODVkY1x1ODVmZlx1ODYyN1x1ODYwNVx1ODYyOVx1ODYxNlx1ODYzY1x1NWVmZVx1NWYwOFx1NTkzY1x1NTk0MVx1ODAzN1x1NTk1NVx1NTk1YVx1NTk1OFx1NTMwZlx1NWMyMlx1NWMyNVx1NWMyY1x1NWMz'@; put 'NFx1NjI0Y1x1NjI2YVx1NjI5Zlx1NjJiYlx1NjJjYVx1NjJkYVx1NjJkN1x1NjJlZVx1NjMyMlx1NjJmNlx1NjMzOVx1NjM0Ylx1NjM0M1x1NjNhZFx1NjNmNlx1NjM3MVx1NjM3YVx1NjM4ZVx1NjNiNFx1NjM2ZFx1NjNhY1x1NjM4YVx1NjM2OVx1NjNhZVx1NjNiY1x1NjNmMlx1NjNmOFx1'@; put 'NjNlMFx1NjNmZlx1NjNjNFx1NjNkZVx1NjNjZVx1NjQ1Mlx1NjNjNlx1NjNiZVx1NjQ0NVx1NjQ0MVx1NjQwYlx1NjQxYlx1NjQyMFx1NjQwY1x1NjQyNlx1NjQyMVx1NjQ1ZVx1NjQ4NFx1NjQ2ZFx1NjQ5NiJdLFsiZGY0MCIsIlx1OTAxOVx1OTAxY1x1OTAyM1x1OTAyNFx1OTAyNVx1OTAy'@; put 'NyIsNSwiXHU5MDMwIiw0LCJcdTkwMzdcdTkwMzlcdTkwM2FcdTkwM2RcdTkwM2ZcdTkwNDBcdTkwNDNcdTkwNDVcdTkwNDZcdTkwNDgiLDQsIlx1OTA0ZVx1OTA1NFx1OTA1NVx1OTA1Nlx1OTA1OVx1OTA1YVx1OTA1YyIsNSwiXHU5MDY0XHU5MDY2XHU5MDY3XHU5MDY5XHU5MDZhXHU5MDZi'@; put 'XHU5MDZjXHU5MDZmIiw0LCJcdTkwNzYiLDYsIlx1OTA3ZVx1OTA4MSJdLFsiZGY4MCIsIlx1OTA4NFx1OTA4NVx1OTA4Nlx1OTA4N1x1OTA4OVx1OTA4YVx1OTA4YyIsNCwiXHU5MDkyXHU5MDk0XHU5MDk2XHU5MDk4XHU5MDlhXHU5MDljXHU5MDllXHU5MDlmXHU5MGEwXHU5MGE0XHU5MGE1'@; put 'XHU5MGE3XHU5MGE4XHU5MGE5XHU5MGFiXHU5MGFkXHU5MGIyXHU5MGI3XHU5MGJjXHU5MGJkXHU5MGJmXHU5MGMwXHU2NDdhXHU2NGI3XHU2NGI4XHU2NDk5XHU2NGJhXHU2NGMwXHU2NGQwXHU2NGQ3XHU2NGU0XHU2NGUyXHU2NTA5XHU2NTI1XHU2NTJlXHU1ZjBiXHU1ZmQyXHU3NTE5XHU1'@; put 'ZjExXHU1MzVmXHU1M2YxXHU1M2ZkXHU1M2U5XHU1M2U4XHU1M2ZiXHU1NDEyXHU1NDE2XHU1NDA2XHU1NDRiXHU1NDUyXHU1NDUzXHU1NDU0XHU1NDU2XHU1NDQzXHU1NDIxXHU1NDU3XHU1NDU5XHU1NDIzXHU1NDMyXHU1NDgyXHU1NDk0XHU1NDc3XHU1NDcxXHU1NDY0XHU1NDlhXHU1NDli'@; put 'XHU1NDg0XHU1NDc2XHU1NDY2XHU1NDlkXHU1NGQwXHU1NGFkXHU1NGMyXHU1NGI0XHU1NGQyXHU1NGE3XHU1NGE2XHU1NGQzXHU1NGQ0XHU1NDcyXHU1NGEzXHU1NGQ1XHU1NGJiXHU1NGJmXHU1NGNjXHU1NGQ5XHU1NGRhXHU1NGRjXHU1NGE5XHU1NGFhXHU1NGE0XHU1NGRkXHU1NGNmXHU1'@; put 'NGRlXHU1NTFiXHU1NGU3XHU1NTIwXHU1NGZkXHU1NTE0XHU1NGYzXHU1NTIyXHU1NTIzXHU1NTBmXHU1NTExXHU1NTI3XHU1NTJhXHU1NTY3XHU1NThmXHU1NWI1XHU1NTQ5XHU1NTZkXHU1NTQxXHU1NTU1XHU1NTNmXHU1NTUwXHU1NTNjIl0sWyJlMDQwIiwiXHU5MGMyXHU5MGMzXHU5MGM2'@; put 'XHU5MGM4XHU5MGM5XHU5MGNiXHU5MGNjXHU5MGNkXHU5MGQyXHU5MGQ0XHU5MGQ1XHU5MGQ2XHU5MGQ4XHU5MGQ5XHU5MGRhXHU5MGRlXHU5MGRmXHU5MGUwXHU5MGUzXHU5MGU0XHU5MGU1XHU5MGU5XHU5MGVhXHU5MGVjXHU5MGVlXHU5MGYwXHU5MGYxXHU5MGYyXHU5MGYzXHU5MGY1XHU5'@; put 'MGY2XHU5MGY3XHU5MGY5XHU5MGZhXHU5MGZiXHU5MGZjXHU5MGZmXHU5MTAwXHU5MTAxXHU5MTAzXHU5MTA1IiwxOSwiXHU5MTFhXHU5MTFiXHU5MTFjIl0sWyJlMDgwIiwiXHU5MTFkXHU5MTFmXHU5MTIwXHU5MTIxXHU5MTI0IiwxMCwiXHU5MTMwXHU5MTMyIiw2LCJcdTkxM2EiLDgsIlx1'@; put 'OTE0NFx1NTUzN1x1NTU1Nlx1NTU3NVx1NTU3Nlx1NTU3N1x1NTUzM1x1NTUzMFx1NTU1Y1x1NTU4Ylx1NTVkMlx1NTU4M1x1NTViMVx1NTViOVx1NTU4OFx1NTU4MVx1NTU5Zlx1NTU3ZVx1NTVkNlx1NTU5MVx1NTU3Ylx1NTVkZlx1NTViZFx1NTViZVx1NTU5NFx1NTU5OVx1NTVlYVx1NTVm'@; put 'N1x1NTVjOVx1NTYxZlx1NTVkMVx1NTVlYlx1NTVlY1x1NTVkNFx1NTVlNlx1NTVkZFx1NTVjNFx1NTVlZlx1NTVlNVx1NTVmMlx1NTVmM1x1NTVjY1x1NTVjZFx1NTVlOFx1NTVmNVx1NTVlNFx1OGY5NFx1NTYxZVx1NTYwOFx1NTYwY1x1NTYwMVx1NTYyNFx1NTYyM1x1NTVmZVx1NTYwMFx1'@; put 'NTYyN1x1NTYyZFx1NTY1OFx1NTYzOVx1NTY1N1x1NTYyY1x1NTY0ZFx1NTY2Mlx1NTY1OVx1NTY1Y1x1NTY0Y1x1NTY1NFx1NTY4Nlx1NTY2NFx1NTY3MVx1NTY2Ylx1NTY3Ylx1NTY3Y1x1NTY4NVx1NTY5M1x1NTZhZlx1NTZkNFx1NTZkN1x1NTZkZFx1NTZlMVx1NTZmNVx1NTZlYlx1NTZm'@; put 'OVx1NTZmZlx1NTcwNFx1NTcwYVx1NTcwOVx1NTcxY1x1NWUwZlx1NWUxOVx1NWUxNFx1NWUxMVx1NWUzMVx1NWUzYlx1NWUzYyJdLFsiZTE0MCIsIlx1OTE0NVx1OTE0N1x1OTE0OFx1OTE1MVx1OTE1M1x1OTE1NFx1OTE1NVx1OTE1Nlx1OTE1OFx1OTE1OVx1OTE1Ylx1OTE1Y1x1OTE1Zlx1'@; put 'OTE2MFx1OTE2Nlx1OTE2N1x1OTE2OFx1OTE2Ylx1OTE2ZFx1OTE3M1x1OTE3YVx1OTE3Ylx1OTE3Y1x1OTE4MCIsNCwiXHU5MTg2XHU5MTg4XHU5MThhXHU5MThlXHU5MThmXHU5MTkzIiw2LCJcdTkxOWMiLDUsIlx1OTFhNCIsNSwiXHU5MWFiXHU5MWFjXHU5MWIwXHU5MWIxXHU5MWIyXHU5'@; put 'MWIzXHU5MWI2XHU5MWI3XHU5MWI4XHU5MWI5XHU5MWJiIl0sWyJlMTgwIiwiXHU5MWJjIiwxMCwiXHU5MWM4XHU5MWNiXHU5MWQwXHU5MWQyIiw5LCJcdTkxZGQiLDgsIlx1NWUzN1x1NWU0NFx1NWU1NFx1NWU1Ylx1NWU1ZVx1NWU2MVx1NWM4Y1x1NWM3YVx1NWM4ZFx1NWM5MFx1NWM5Nlx1'@; put 'NWM4OFx1NWM5OFx1NWM5OVx1NWM5MVx1NWM5YVx1NWM5Y1x1NWNiNVx1NWNhMlx1NWNiZFx1NWNhY1x1NWNhYlx1NWNiMVx1NWNhM1x1NWNjMVx1NWNiN1x1NWNjNFx1NWNkMlx1NWNlNFx1NWNjYlx1NWNlNVx1NWQwMlx1NWQwM1x1NWQyN1x1NWQyNlx1NWQyZVx1NWQyNFx1NWQxZVx1NWQw'@; put 'Nlx1NWQxYlx1NWQ1OFx1NWQzZVx1NWQzNFx1NWQzZFx1NWQ2Y1x1NWQ1Ylx1NWQ2Zlx1NWQ1ZFx1NWQ2Ylx1NWQ0Ylx1NWQ0YVx1NWQ2OVx1NWQ3NFx1NWQ4Mlx1NWQ5OVx1NWQ5ZFx1OGM3M1x1NWRiN1x1NWRjNVx1NWY3M1x1NWY3N1x1NWY4Mlx1NWY4N1x1NWY4OVx1NWY4Y1x1NWY5NVx1'@; put 'NWY5OVx1NWY5Y1x1NWZhOFx1NWZhZFx1NWZiNVx1NWZiY1x1ODg2Mlx1NWY2MVx1NzJhZFx1NzJiMFx1NzJiNFx1NzJiN1x1NzJiOFx1NzJjM1x1NzJjMVx1NzJjZVx1NzJjZFx1NzJkMlx1NzJlOFx1NzJlZlx1NzJlOVx1NzJmMlx1NzJmNFx1NzJmN1x1NzMwMVx1NzJmM1x1NzMwM1x1NzJm'@; put 'YSJdLFsiZTI0MCIsIlx1OTFlNiIsNjJdLFsiZTI4MCIsIlx1OTIyNSIsMzIsIlx1NzJmYlx1NzMxN1x1NzMxM1x1NzMyMVx1NzMwYVx1NzMxZVx1NzMxZFx1NzMxNVx1NzMyMlx1NzMzOVx1NzMyNVx1NzMyY1x1NzMzOFx1NzMzMVx1NzM1MFx1NzM0ZFx1NzM1N1x1NzM2MFx1NzM2Y1x1NzM2'@; put 'Zlx1NzM3ZVx1ODIxYlx1NTkyNVx1OThlN1x1NTkyNFx1NTkwMlx1OTk2M1x1OTk2NyIsNSwiXHU5OTc0XHU5OTc3XHU5OTdkXHU5OTgwXHU5OTg0XHU5OTg3XHU5OThhXHU5OThkXHU5OTkwXHU5OTkxXHU5OTkzXHU5OTk0XHU5OTk1XHU1ZTgwXHU1ZTkxXHU1ZThiXHU1ZTk2XHU1ZWE1XHU1'@; put 'ZWEwXHU1ZWI5XHU1ZWI1XHU1ZWJlXHU1ZWIzXHU4ZDUzXHU1ZWQyXHU1ZWQxXHU1ZWRiXHU1ZWU4XHU1ZWVhXHU4MWJhXHU1ZmM0XHU1ZmM5XHU1ZmQ2XHU1ZmNmXHU2MDAzXHU1ZmVlXHU2MDA0XHU1ZmUxXHU1ZmU0XHU1ZmZlXHU2MDA1XHU2MDA2XHU1ZmVhXHU1ZmVkXHU1ZmY4XHU2MDE5'@; put 'XHU2MDM1XHU2MDI2XHU2MDFiXHU2MDBmXHU2MDBkXHU2MDI5XHU2MDJiXHU2MDBhXHU2MDNmXHU2MDIxXHU2MDc4XHU2MDc5XHU2MDdiXHU2MDdhXHU2MDQyIl0sWyJlMzQwIiwiXHU5MjQ2Iiw0NSwiXHU5Mjc1IiwxNl0sWyJlMzgwIiwiXHU5Mjg2Iiw3LCJcdTkyOGYiLDI0LCJcdTYwNmFc'@; put 'dTYwN2RcdTYwOTZcdTYwOWFcdTYwYWRcdTYwOWRcdTYwODNcdTYwOTJcdTYwOGNcdTYwOWJcdTYwZWNcdTYwYmJcdTYwYjFcdTYwZGRcdTYwZDhcdTYwYzZcdTYwZGFcdTYwYjRcdTYxMjBcdTYxMjZcdTYxMTVcdTYxMjNcdTYwZjRcdTYxMDBcdTYxMGVcdTYxMmJcdTYxNGFcdTYxNzVcdTYx'@; put 'YWNcdTYxOTRcdTYxYTdcdTYxYjdcdTYxZDRcdTYxZjVcdTVmZGRcdTk2YjNcdTk1ZTlcdTk1ZWJcdTk1ZjFcdTk1ZjNcdTk1ZjVcdTk1ZjZcdTk1ZmNcdTk1ZmVcdTk2MDNcdTk2MDRcdTk2MDZcdTk2MDhcdTk2MGFcdTk2MGJcdTk2MGNcdTk2MGRcdTk2MGZcdTk2MTJcdTk2MTVcdTk2MTZc'@; put 'dTk2MTdcdTk2MTlcdTk2MWFcdTRlMmNcdTcyM2ZcdTYyMTVcdTZjMzVcdTZjNTRcdTZjNWNcdTZjNGFcdTZjYTNcdTZjODVcdTZjOTBcdTZjOTRcdTZjOGNcdTZjNjhcdTZjNjlcdTZjNzRcdTZjNzZcdTZjODZcdTZjYTlcdTZjZDBcdTZjZDRcdTZjYWRcdTZjZjdcdTZjZjhcdTZjZjFcdTZj'@; put 'ZDdcdTZjYjJcdTZjZTBcdTZjZDZcdTZjZmFcdTZjZWJcdTZjZWVcdTZjYjFcdTZjZDNcdTZjZWZcdTZjZmUiXSxbImU0NDAiLCJcdTkyYTgiLDUsIlx1OTJhZiIsMjQsIlx1OTJjOSIsMzFdLFsiZTQ4MCIsIlx1OTJlOSIsMzIsIlx1NmQzOVx1NmQyN1x1NmQwY1x1NmQ0M1x1NmQ0OFx1NmQw'@; put 'N1x1NmQwNFx1NmQxOVx1NmQwZVx1NmQyYlx1NmQ0ZFx1NmQyZVx1NmQzNVx1NmQxYVx1NmQ0Zlx1NmQ1Mlx1NmQ1NFx1NmQzM1x1NmQ5MVx1NmQ2Zlx1NmQ5ZVx1NmRhMFx1NmQ1ZVx1NmQ5M1x1NmQ5NFx1NmQ1Y1x1NmQ2MFx1NmQ3Y1x1NmQ2M1x1NmUxYVx1NmRjN1x1NmRjNVx1NmRkZVx1'@; put 'NmUwZVx1NmRiZlx1NmRlMFx1NmUxMVx1NmRlNlx1NmRkZFx1NmRkOVx1NmUxNlx1NmRhYlx1NmUwY1x1NmRhZVx1NmUyYlx1NmU2ZVx1NmU0ZVx1NmU2Ylx1NmViMlx1NmU1Zlx1NmU4Nlx1NmU1M1x1NmU1NFx1NmUzMlx1NmUyNVx1NmU0NFx1NmVkZlx1NmViMVx1NmU5OFx1NmVlMFx1NmYy'@; put 'ZFx1NmVlMlx1NmVhNVx1NmVhN1x1NmViZFx1NmViYlx1NmViN1x1NmVkN1x1NmViNFx1NmVjZlx1NmU4Zlx1NmVjMlx1NmU5Zlx1NmY2Mlx1NmY0Nlx1NmY0N1x1NmYyNFx1NmYxNVx1NmVmOVx1NmYyZlx1NmYzNlx1NmY0Ylx1NmY3NFx1NmYyYVx1NmYwOVx1NmYyOVx1NmY4OVx1NmY4ZFx1'@; put 'NmY4Y1x1NmY3OFx1NmY3Mlx1NmY3Y1x1NmY3YVx1NmZkMSJdLFsiZTU0MCIsIlx1OTMwYSIsNTEsIlx1OTMzZiIsMTBdLFsiZTU4MCIsIlx1OTM0YSIsMzEsIlx1OTM2Ylx1NmZjOVx1NmZhN1x1NmZiOVx1NmZiNlx1NmZjMlx1NmZlMVx1NmZlZVx1NmZkZVx1NmZlMFx1NmZlZlx1NzAxYVx1'@; put 'NzAyM1x1NzAxYlx1NzAzOVx1NzAzNVx1NzA0Zlx1NzA1ZVx1NWI4MFx1NWI4NFx1NWI5NVx1NWI5M1x1NWJhNVx1NWJiOFx1NzUyZlx1OWE5ZVx1NjQzNFx1NWJlNFx1NWJlZVx1ODkzMFx1NWJmMFx1OGU0N1x1OGIwN1x1OGZiNlx1OGZkM1x1OGZkNVx1OGZlNVx1OGZlZVx1OGZlNFx1OGZl'@; put 'OVx1OGZlNlx1OGZmM1x1OGZlOFx1OTAwNVx1OTAwNFx1OTAwYlx1OTAyNlx1OTAxMVx1OTAwZFx1OTAxNlx1OTAyMVx1OTAzNVx1OTAzNlx1OTAyZFx1OTAyZlx1OTA0NFx1OTA1MVx1OTA1Mlx1OTA1MFx1OTA2OFx1OTA1OFx1OTA2Mlx1OTA1Ylx1NjZiOVx1OTA3NFx1OTA3ZFx1OTA4Mlx1'@; put 'OTA4OFx1OTA4M1x1OTA4Ylx1NWY1MFx1NWY1N1x1NWY1Nlx1NWY1OFx1NWMzYlx1NTRhYlx1NWM1MFx1NWM1OVx1NWI3MVx1NWM2M1x1NWM2Nlx1N2ZiY1x1NWYyYVx1NWYyOVx1NWYyZFx1ODI3NFx1NWYzY1x1OWIzYlx1NWM2ZVx1NTk4MVx1NTk4M1x1NTk4ZFx1NTlhOVx1NTlhYVx1NTlh'@; put 'MyJdLFsiZTY0MCIsIlx1OTM2YyIsMzQsIlx1OTM5MCIsMjddLFsiZTY4MCIsIlx1OTNhYyIsMjksIlx1OTNjYlx1OTNjY1x1OTNjZFx1NTk5N1x1NTljYVx1NTlhYlx1NTk5ZVx1NTlhNFx1NTlkMlx1NTliMlx1NTlhZlx1NTlkN1x1NTliZVx1NWEwNVx1NWEwNlx1NTlkZFx1NWEwOFx1NTll'@; put 'M1x1NTlkOFx1NTlmOVx1NWEwY1x1NWEwOVx1NWEzMlx1NWEzNFx1NWExMVx1NWEyM1x1NWExM1x1NWE0MFx1NWE2N1x1NWE0YVx1NWE1NVx1NWEzY1x1NWE2Mlx1NWE3NVx1ODBlY1x1NWFhYVx1NWE5Ylx1NWE3N1x1NWE3YVx1NWFiZVx1NWFlYlx1NWFiMlx1NWFkMlx1NWFkNFx1NWFiOFx1'@; put 'NWFlMFx1NWFlM1x1NWFmMVx1NWFkNlx1NWFlNlx1NWFkOFx1NWFkY1x1NWIwOVx1NWIxN1x1NWIxNlx1NWIzMlx1NWIzN1x1NWI0MFx1NWMxNVx1NWMxY1x1NWI1YVx1NWI2NVx1NWI3M1x1NWI1MVx1NWI1M1x1NWI2Mlx1OWE3NVx1OWE3N1x1OWE3OFx1OWE3YVx1OWE3Zlx1OWE3ZFx1OWE4'@; put 'MFx1OWE4MVx1OWE4NVx1OWE4OFx1OWE4YVx1OWE5MFx1OWE5Mlx1OWE5M1x1OWE5Nlx1OWE5OFx1OWE5Ylx1OWE5Y1x1OWE5ZFx1OWE5Zlx1OWFhMFx1OWFhMlx1OWFhM1x1OWFhNVx1OWFhN1x1N2U5Zlx1N2VhMVx1N2VhM1x1N2VhNVx1N2VhOFx1N2VhOSJdLFsiZTc0MCIsIlx1OTNjZSIs'@; put 'NywiXHU5M2Q3Iiw1NF0sWyJlNzgwIiwiXHU5NDBlIiwzMiwiXHU3ZWFkXHU3ZWIwXHU3ZWJlXHU3ZWMwXHU3ZWMxXHU3ZWMyXHU3ZWM5XHU3ZWNiXHU3ZWNjXHU3ZWQwXHU3ZWQ0XHU3ZWQ3XHU3ZWRiXHU3ZWUwXHU3ZWUxXHU3ZWU4XHU3ZWViXHU3ZWVlXHU3ZWVmXHU3ZWYxXHU3ZWYyXHU3'@; put 'ZjBkXHU3ZWY2XHU3ZWZhXHU3ZWZiXHU3ZWZlXHU3ZjAxXHU3ZjAyXHU3ZjAzXHU3ZjA3XHU3ZjA4XHU3ZjBiXHU3ZjBjXHU3ZjBmXHU3ZjExXHU3ZjEyXHU3ZjE3XHU3ZjE5XHU3ZjFjXHU3ZjFiXHU3ZjFmXHU3ZjIxIiw2LCJcdTdmMmFcdTdmMmJcdTdmMmNcdTdmMmRcdTdmMmYiLDQsIlx1'@; put 'N2YzNVx1NWU3YVx1NzU3Zlx1NWRkYlx1NzUzZVx1OTA5NVx1NzM4ZVx1NzM5MVx1NzNhZVx1NzNhMlx1NzM5Zlx1NzNjZlx1NzNjMlx1NzNkMVx1NzNiN1x1NzNiM1x1NzNjMFx1NzNjOVx1NzNjOFx1NzNlNVx1NzNkOVx1OTg3Y1x1NzQwYVx1NzNlOVx1NzNlN1x1NzNkZVx1NzNiYVx1NzNm'@; put 'Mlx1NzQwZlx1NzQyYVx1NzQ1Ylx1NzQyNlx1NzQyNVx1NzQyOFx1NzQzMFx1NzQyZVx1NzQyYyJdLFsiZTg0MCIsIlx1OTQyZiIsMTQsIlx1OTQzZiIsNDMsIlx1OTQ2Y1x1OTQ2ZFx1OTQ2ZVx1OTQ2ZiJdLFsiZTg4MCIsIlx1OTQ3MCIsMjAsIlx1OTQ5MVx1OTQ5Nlx1OTQ5OFx1OTRjN1x1'@; put 'OTRjZlx1OTRkM1x1OTRkNFx1OTRkYVx1OTRlNlx1OTRmYlx1OTUxY1x1OTUyMFx1NzQxYlx1NzQxYVx1NzQ0MVx1NzQ1Y1x1NzQ1N1x1NzQ1NVx1NzQ1OVx1NzQ3N1x1NzQ2ZFx1NzQ3ZVx1NzQ5Y1x1NzQ4ZVx1NzQ4MFx1NzQ4MVx1NzQ4N1x1NzQ4Ylx1NzQ5ZVx1NzRhOFx1NzRhOVx1NzQ5'@; put 'MFx1NzRhN1x1NzRkMlx1NzRiYVx1OTdlYVx1OTdlYlx1OTdlY1x1Njc0Y1x1Njc1M1x1Njc1ZVx1Njc0OFx1Njc2OVx1NjdhNVx1Njc4N1x1Njc2YVx1Njc3M1x1Njc5OFx1NjdhN1x1Njc3NVx1NjdhOFx1Njc5ZVx1NjdhZFx1Njc4Ylx1Njc3N1x1Njc3Y1x1NjdmMFx1NjgwOVx1NjdkOFx1'@; put 'NjgwYVx1NjdlOVx1NjdiMFx1NjgwY1x1NjdkOVx1NjdiNVx1NjdkYVx1NjdiM1x1NjdkZFx1NjgwMFx1NjdjM1x1NjdiOFx1NjdlMlx1NjgwZVx1NjdjMVx1NjdmZFx1NjgzMlx1NjgzM1x1Njg2MFx1Njg2MVx1Njg0ZVx1Njg2Mlx1Njg0NFx1Njg2NFx1Njg4M1x1NjgxZFx1Njg1NVx1Njg2'@; put 'Nlx1Njg0MVx1Njg2N1x1Njg0MFx1NjgzZVx1Njg0YVx1Njg0OVx1NjgyOVx1NjhiNVx1Njg4Zlx1Njg3NFx1Njg3N1x1Njg5M1x1Njg2Ylx1NjhjMlx1Njk2ZVx1NjhmY1x1NjkxZlx1NjkyMFx1NjhmOSJdLFsiZTk0MCIsIlx1OTUyN1x1OTUzM1x1OTUzZFx1OTU0M1x1OTU0OFx1OTU0Ylx1'@; put 'OTU1NVx1OTU1YVx1OTU2MFx1OTU2ZVx1OTU3NFx1OTU3NVx1OTU3NyIsNywiXHU5NTgwIiw0Ml0sWyJlOTgwIiwiXHU5NWFiIiwzMiwiXHU2OTI0XHU2OGYwXHU2OTBiXHU2OTAxXHU2OTU3XHU2OGUzXHU2OTEwXHU2OTcxXHU2OTM5XHU2OTYwXHU2OTQyXHU2OTVkXHU2OTg0XHU2OTZiXHU2'@; put 'OTgwXHU2OTk4XHU2OTc4XHU2OTM0XHU2OWNjXHU2OTg3XHU2OTg4XHU2OWNlXHU2OTg5XHU2OTY2XHU2OTYzXHU2OTc5XHU2OTliXHU2OWE3XHU2OWJiXHU2OWFiXHU2OWFkXHU2OWQ0XHU2OWIxXHU2OWMxXHU2OWNhXHU2OWRmXHU2OTk1XHU2OWUwXHU2OThkXHU2OWZmXHU2YTJmXHU2OWVk'@; put 'XHU2YTE3XHU2YTE4XHU2YTY1XHU2OWYyXHU2YTQ0XHU2YTNlXHU2YWEwXHU2YTUwXHU2YTViXHU2YTM1XHU2YThlXHU2YTc5XHU2YTNkXHU2YTI4XHU2YTU4XHU2YTdjXHU2YTkxXHU2YTkwXHU2YWE5XHU2YTk3XHU2YWFiXHU3MzM3XHU3MzUyXHU2YjgxXHU2YjgyXHU2Yjg3XHU2Yjg0XHU2'@; put 'YjkyXHU2YjkzXHU2YjhkXHU2YjlhXHU2YjliXHU2YmExXHU2YmFhXHU4ZjZiXHU4ZjZkXHU4ZjcxXHU4ZjcyXHU4ZjczXHU4Zjc1XHU4Zjc2XHU4Zjc4XHU4Zjc3XHU4Zjc5XHU4ZjdhXHU4ZjdjXHU4ZjdlXHU4ZjgxXHU4ZjgyXHU4Zjg0XHU4Zjg3XHU4ZjhiIl0sWyJlYTQwIiwiXHU5NWNj'@; put 'IiwyNywiXHU5NWVjXHU5NWZmXHU5NjA3XHU5NjEzXHU5NjE4XHU5NjFiXHU5NjFlXHU5NjIwXHU5NjIzIiw2LCJcdTk2MmJcdTk2MmNcdTk2MmRcdTk2MmZcdTk2MzBcdTk2MzdcdTk2MzhcdTk2MzlcdTk2M2FcdTk2M2VcdTk2NDFcdTk2NDNcdTk2NGFcdTk2NGVcdTk2NGZcdTk2NTFcdTk2'@; put 'NTJcdTk2NTNcdTk2NTZcdTk2NTciXSxbImVhODAiLCJcdTk2NThcdTk2NTlcdTk2NWFcdTk2NWNcdTk2NWRcdTk2NWVcdTk2NjBcdTk2NjNcdTk2NjVcdTk2NjZcdTk2NmJcdTk2NmQiLDQsIlx1OTY3M1x1OTY3OCIsMTIsIlx1OTY4N1x1OTY4OVx1OTY4YVx1OGY4ZFx1OGY4ZVx1OGY4Zlx1'@; put 'OGY5OFx1OGY5YVx1OGVjZVx1NjIwYlx1NjIxN1x1NjIxYlx1NjIxZlx1NjIyMlx1NjIyMVx1NjIyNVx1NjIyNFx1NjIyY1x1ODFlN1x1NzRlZlx1NzRmNFx1NzRmZlx1NzUwZlx1NzUxMVx1NzUxM1x1NjUzNFx1NjVlZVx1NjVlZlx1NjVmMFx1NjYwYVx1NjYxOVx1Njc3Mlx1NjYwM1x1NjYx'@; put 'NVx1NjYwMFx1NzA4NVx1NjZmN1x1NjYxZFx1NjYzNFx1NjYzMVx1NjYzNlx1NjYzNVx1ODAwNlx1NjY1Zlx1NjY1NFx1NjY0MVx1NjY0Zlx1NjY1Nlx1NjY2MVx1NjY1N1x1NjY3N1x1NjY4NFx1NjY4Y1x1NjZhN1x1NjY5ZFx1NjZiZVx1NjZkYlx1NjZkY1x1NjZlNlx1NjZlOVx1OGQzMlx1'@; put 'OGQzM1x1OGQzNlx1OGQzYlx1OGQzZFx1OGQ0MFx1OGQ0NVx1OGQ0Nlx1OGQ0OFx1OGQ0OVx1OGQ0N1x1OGQ0ZFx1OGQ1NVx1OGQ1OVx1ODljN1x1ODljYVx1ODljYlx1ODljY1x1ODljZVx1ODljZlx1ODlkMFx1ODlkMVx1NzI2ZVx1NzI5Zlx1NzI1ZFx1NzI2Nlx1NzI2Zlx1NzI3ZVx1NzI3'@; put 'Zlx1NzI4NFx1NzI4Ylx1NzI4ZFx1NzI4Zlx1NzI5Mlx1NjMwOFx1NjMzMlx1NjNiMCJdLFsiZWI0MCIsIlx1OTY4Y1x1OTY4ZVx1OTY5MVx1OTY5Mlx1OTY5M1x1OTY5NVx1OTY5Nlx1OTY5YVx1OTY5Ylx1OTY5ZCIsOSwiXHU5NmE4Iiw3LCJcdTk2YjFcdTk2YjJcdTk2YjRcdTk2YjVcdTk2'@; put 'YjdcdTk2YjhcdTk2YmFcdTk2YmJcdTk2YmZcdTk2YzJcdTk2YzNcdTk2YzhcdTk2Y2FcdTk2Y2JcdTk2ZDBcdTk2ZDFcdTk2ZDNcdTk2ZDRcdTk2ZDYiLDksIlx1OTZlMSIsNiwiXHU5NmViIl0sWyJlYjgwIiwiXHU5NmVjXHU5NmVkXHU5NmVlXHU5NmYwXHU5NmYxXHU5NmYyXHU5NmY0XHU5'@; put 'NmY1XHU5NmY4XHU5NmZhXHU5NmZiXHU5NmZjXHU5NmZkXHU5NmZmXHU5NzAyXHU5NzAzXHU5NzA1XHU5NzBhXHU5NzBiXHU5NzBjXHU5NzEwXHU5NzExXHU5NzEyXHU5NzE0XHU5NzE1XHU5NzE3Iiw0LCJcdTk3MWRcdTk3MWZcdTk3MjBcdTY0M2ZcdTY0ZDhcdTgwMDRcdTZiZWFcdTZiZjNc'@; put 'dTZiZmRcdTZiZjVcdTZiZjlcdTZjMDVcdTZjMDdcdTZjMDZcdTZjMGRcdTZjMTVcdTZjMThcdTZjMTlcdTZjMWFcdTZjMjFcdTZjMjlcdTZjMjRcdTZjMmFcdTZjMzJcdTY1MzVcdTY1NTVcdTY1NmJcdTcyNGRcdTcyNTJcdTcyNTZcdTcyMzBcdTg2NjJcdTUyMTZcdTgwOWZcdTgwOWNcdTgw'@; put 'OTNcdTgwYmNcdTY3MGFcdTgwYmRcdTgwYjFcdTgwYWJcdTgwYWRcdTgwYjRcdTgwYjdcdTgwZTdcdTgwZThcdTgwZTlcdTgwZWFcdTgwZGJcdTgwYzJcdTgwYzRcdTgwZDlcdTgwY2RcdTgwZDdcdTY3MTBcdTgwZGRcdTgwZWJcdTgwZjFcdTgwZjRcdTgwZWRcdTgxMGRcdTgxMGVcdTgwZjJc'@; put 'dTgwZmNcdTY3MTVcdTgxMTJcdThjNWFcdTgxMzZcdTgxMWVcdTgxMmNcdTgxMThcdTgxMzJcdTgxNDhcdTgxNGNcdTgxNTNcdTgxNzRcdTgxNTlcdTgxNWFcdTgxNzFcdTgxNjBcdTgxNjlcdTgxN2NcdTgxN2RcdTgxNmRcdTgxNjdcdTU4NGRcdTVhYjVcdTgxODhcdTgxODJcdTgxOTFcdTZl'@; put 'ZDVcdTgxYTNcdTgxYWFcdTgxY2NcdTY3MjZcdTgxY2FcdTgxYmIiXSxbImVjNDAiLCJcdTk3MjEiLDgsIlx1OTcyYlx1OTcyY1x1OTcyZVx1OTcyZlx1OTczMVx1OTczMyIsNCwiXHU5NzNhXHU5NzNiXHU5NzNjXHU5NzNkXHU5NzNmIiwxOCwiXHU5NzU0XHU5NzU1XHU5NzU3XHU5NzU4XHU5'@; put 'NzVhXHU5NzVjXHU5NzVkXHU5NzVmXHU5NzYzXHU5NzY0XHU5NzY2XHU5NzY3XHU5NzY4XHU5NzZhIiw3XSxbImVjODAiLCJcdTk3NzJcdTk3NzVcdTk3NzciLDQsIlx1OTc3ZCIsNywiXHU5Nzg2Iiw0LCJcdTk3OGNcdTk3OGVcdTk3OGZcdTk3OTBcdTk3OTNcdTk3OTVcdTk3OTZcdTk3OTdc'@; put 'dTk3OTkiLDQsIlx1ODFjMVx1ODFhNlx1NmIyNFx1NmIzN1x1NmIzOVx1NmI0M1x1NmI0Nlx1NmI1OVx1OThkMVx1OThkMlx1OThkM1x1OThkNVx1OThkOVx1OThkYVx1NmJiM1x1NWY0MFx1NmJjMlx1ODlmM1x1NjU5MFx1OWY1MVx1NjU5M1x1NjViY1x1NjVjNlx1NjVjNFx1NjVjM1x1NjVj'@; put 'Y1x1NjVjZVx1NjVkMlx1NjVkNlx1NzA4MFx1NzA5Y1x1NzA5Nlx1NzA5ZFx1NzBiYlx1NzBjMFx1NzBiN1x1NzBhYlx1NzBiMVx1NzBlOFx1NzBjYVx1NzExMFx1NzExM1x1NzExNlx1NzEyZlx1NzEzMVx1NzE3M1x1NzE1Y1x1NzE2OFx1NzE0NVx1NzE3Mlx1NzE0YVx1NzE3OFx1NzE3YVx1'@; put 'NzE5OFx1NzFiM1x1NzFiNVx1NzFhOFx1NzFhMFx1NzFlMFx1NzFkNFx1NzFlN1x1NzFmOVx1NzIxZFx1NzIyOFx1NzA2Y1x1NzExOFx1NzE2Nlx1NzFiOVx1NjIzZVx1NjIzZFx1NjI0M1x1NjI0OFx1NjI0OVx1NzkzYlx1Nzk0MFx1Nzk0Nlx1Nzk0OVx1Nzk1Ylx1Nzk1Y1x1Nzk1M1x1Nzk1'@; put 'YVx1Nzk2Mlx1Nzk1N1x1Nzk2MFx1Nzk2Zlx1Nzk2N1x1Nzk3YVx1Nzk4NVx1Nzk4YVx1Nzk5YVx1NzlhN1x1NzliM1x1NWZkMVx1NWZkMCJdLFsiZWQ0MCIsIlx1OTc5ZVx1OTc5Zlx1OTdhMVx1OTdhMlx1OTdhNCIsNiwiXHU5N2FjXHU5N2FlXHU5N2IwXHU5N2IxXHU5N2IzXHU5N2I1Iiw0'@; put 'Nl0sWyJlZDgwIiwiXHU5N2U0XHU5N2U1XHU5N2U4XHU5N2VlIiw0LCJcdTk3ZjRcdTk3ZjciLDIzLCJcdTYwM2NcdTYwNWRcdTYwNWFcdTYwNjdcdTYwNDFcdTYwNTlcdTYwNjNcdTYwYWJcdTYxMDZcdTYxMGRcdTYxNWRcdTYxYTlcdTYxOWRcdTYxY2JcdTYxZDFcdTYyMDZcdTgwODBcdTgw'@; put 'N2ZcdTZjOTNcdTZjZjZcdTZkZmNcdTc3ZjZcdTc3ZjhcdTc4MDBcdTc4MDlcdTc4MTdcdTc4MThcdTc4MTFcdTY1YWJcdTc4MmRcdTc4MWNcdTc4MWRcdTc4MzlcdTc4M2FcdTc4M2JcdTc4MWZcdTc4M2NcdTc4MjVcdTc4MmNcdTc4MjNcdTc4MjlcdTc4NGVcdTc4NmRcdTc4NTZcdTc4NTdc'@; put 'dTc4MjZcdTc4NTBcdTc4NDdcdTc4NGNcdTc4NmFcdTc4OWJcdTc4OTNcdTc4OWFcdTc4ODdcdTc4OWNcdTc4YTFcdTc4YTNcdTc4YjJcdTc4YjlcdTc4YTVcdTc4ZDRcdTc4ZDlcdTc4YzlcdTc4ZWNcdTc4ZjJcdTc5MDVcdTc4ZjRcdTc5MTNcdTc5MjRcdTc5MWVcdTc5MzRcdTlmOWJcdTll'@; put 'ZjlcdTllZmJcdTllZmNcdTc2ZjFcdTc3MDRcdTc3MGRcdTc2ZjlcdTc3MDdcdTc3MDhcdTc3MWFcdTc3MjJcdTc3MTlcdTc3MmRcdTc3MjZcdTc3MzVcdTc3MzhcdTc3NTBcdTc3NTFcdTc3NDdcdTc3NDNcdTc3NWFcdTc3NjgiXSxbImVlNDAiLCJcdTk4MGYiLDYyXSxbImVlODAiLCJcdTk4'@; put 'NGUiLDMyLCJcdTc3NjJcdTc3NjVcdTc3N2ZcdTc3OGRcdTc3N2RcdTc3ODBcdTc3OGNcdTc3OTFcdTc3OWZcdTc3YTBcdTc3YjBcdTc3YjVcdTc3YmRcdTc1M2FcdTc1NDBcdTc1NGVcdTc1NGJcdTc1NDhcdTc1NWJcdTc1NzJcdTc1NzlcdTc1ODNcdTdmNThcdTdmNjFcdTdmNWZcdThhNDhc'@; put 'dTdmNjhcdTdmNzRcdTdmNzFcdTdmNzlcdTdmODFcdTdmN2VcdTc2Y2RcdTc2ZTVcdTg4MzJcdTk0ODVcdTk0ODZcdTk0ODdcdTk0OGJcdTk0OGFcdTk0OGNcdTk0OGRcdTk0OGZcdTk0OTBcdTk0OTRcdTk0OTdcdTk0OTVcdTk0OWFcdTk0OWJcdTk0OWNcdTk0YTNcdTk0YTRcdTk0YWJcdTk0'@; put 'YWFcdTk0YWRcdTk0YWNcdTk0YWZcdTk0YjBcdTk0YjJcdTk0YjRcdTk0YjYiLDQsIlx1OTRiY1x1OTRiZFx1OTRiZlx1OTRjNFx1OTRjOCIsNiwiXHU5NGQwXHU5NGQxXHU5NGQyXHU5NGQ1XHU5NGQ2XHU5NGQ3XHU5NGQ5XHU5NGQ4XHU5NGRiXHU5NGRlXHU5NGRmXHU5NGUwXHU5NGUyXHU5'@; put 'NGU0XHU5NGU1XHU5NGU3XHU5NGU4XHU5NGVhIl0sWyJlZjQwIiwiXHU5ODZmIiw1LCJcdTk4OGJcdTk4OGVcdTk4OTJcdTk4OTVcdTk4OTlcdTk4YTNcdTk4YTgiLDM3LCJcdTk4Y2ZcdTk4ZDBcdTk4ZDRcdTk4ZDZcdTk4ZDdcdTk4ZGJcdTk4ZGNcdTk4ZGRcdTk4ZTAiLDRdLFsiZWY4MCIs'@; put 'Ilx1OThlNVx1OThlNlx1OThlOSIsMzAsIlx1OTRlOVx1OTRlYlx1OTRlZVx1OTRlZlx1OTRmM1x1OTRmNFx1OTRmNVx1OTRmN1x1OTRmOVx1OTRmY1x1OTRmZFx1OTRmZlx1OTUwM1x1OTUwMlx1OTUwNlx1OTUwN1x1OTUwOVx1OTUwYVx1OTUwZFx1OTUwZVx1OTUwZlx1OTUxMiIsNCwiXHU5'@; put 'NTE4XHU5NTFiXHU5NTFkXHU5NTFlXHU5NTFmXHU5NTIyXHU5NTJhXHU5NTJiXHU5NTI5XHU5NTJjXHU5NTMxXHU5NTMyXHU5NTM0XHU5NTM2XHU5NTM3XHU5NTM4XHU5NTNjXHU5NTNlXHU5NTNmXHU5NTQyXHU5NTM1XHU5NTQ0XHU5NTQ1XHU5NTQ2XHU5NTQ5XHU5NTRjXHU5NTRlXHU5NTRm'@; put 'XHU5NTUyXHU5NTUzXHU5NTU0XHU5NTU2XHU5NTU3XHU5NTU4XHU5NTU5XHU5NTViXHU5NTVlXHU5NTVmXHU5NTVkXHU5NTYxXHU5NTYyXHU5NTY0Iiw4LCJcdTk1NmZcdTk1NzFcdTk1NzJcdTk1NzNcdTk1M2FcdTc3ZTdcdTc3ZWNcdTk2YzlcdTc5ZDVcdTc5ZWRcdTc5ZTNcdTc5ZWJcdTdh'@; put 'MDZcdTVkNDdcdTdhMDNcdTdhMDJcdTdhMWVcdTdhMTQiXSxbImYwNDAiLCJcdTk5MDgiLDQsIlx1OTkwZVx1OTkwZlx1OTkxMSIsMjgsIlx1OTkyZiIsMjZdLFsiZjA4MCIsIlx1OTk0YSIsOSwiXHU5OTU2IiwxMiwiXHU5OTY0XHU5OTY2XHU5OTczXHU5OTc4XHU5OTc5XHU5OTdiXHU5OTdl'@; put 'XHU5OTgyXHU5OTgzXHU5OTg5XHU3YTM5XHU3YTM3XHU3YTUxXHU5ZWNmXHU5OWE1XHU3YTcwXHU3Njg4XHU3NjhlXHU3NjkzXHU3Njk5XHU3NmE0XHU3NGRlXHU3NGUwXHU3NTJjXHU5ZTIwXHU5ZTIyXHU5ZTI4Iiw0LCJcdTllMzJcdTllMzFcdTllMzZcdTllMzhcdTllMzdcdTllMzlcdTll'@; put 'M2FcdTllM2VcdTllNDFcdTllNDJcdTllNDRcdTllNDZcdTllNDdcdTllNDhcdTllNDlcdTllNGJcdTllNGNcdTllNGVcdTllNTFcdTllNTVcdTllNTdcdTllNWFcdTllNWJcdTllNWNcdTllNWVcdTllNjNcdTllNjYiLDYsIlx1OWU3MVx1OWU2ZFx1OWU3M1x1NzU5Mlx1NzU5NFx1NzU5Nlx1'@; put 'NzVhMFx1NzU5ZFx1NzVhY1x1NzVhM1x1NzViM1x1NzViNFx1NzViOFx1NzVjNFx1NzViMVx1NzViMFx1NzVjM1x1NzVjMlx1NzVkNlx1NzVjZFx1NzVlM1x1NzVlOFx1NzVlNlx1NzVlNFx1NzVlYlx1NzVlN1x1NzYwM1x1NzVmMVx1NzVmY1x1NzVmZlx1NzYxMFx1NzYwMFx1NzYwNVx1NzYw'@; put 'Y1x1NzYxN1x1NzYwYVx1NzYyNVx1NzYxOFx1NzYxNVx1NzYxOSJdLFsiZjE0MCIsIlx1OTk4Y1x1OTk4ZVx1OTk5YSIsMTAsIlx1OTlhNlx1OTlhN1x1OTlhOSIsNDddLFsiZjE4MCIsIlx1OTlkOSIsMzIsIlx1NzYxYlx1NzYzY1x1NzYyMlx1NzYyMFx1NzY0MFx1NzYyZFx1NzYzMFx1NzYz'@; put 'Zlx1NzYzNVx1NzY0M1x1NzYzZVx1NzYzM1x1NzY0ZFx1NzY1ZVx1NzY1NFx1NzY1Y1x1NzY1Nlx1NzY2Ylx1NzY2Zlx1N2ZjYVx1N2FlNlx1N2E3OFx1N2E3OVx1N2E4MFx1N2E4Nlx1N2E4OFx1N2E5NVx1N2FhNlx1N2FhMFx1N2FhY1x1N2FhOFx1N2FhZFx1N2FiM1x1ODg2NFx1ODg2OVx1'@; put 'ODg3Mlx1ODg3ZFx1ODg3Zlx1ODg4Mlx1ODhhMlx1ODhjNlx1ODhiN1x1ODhiY1x1ODhjOVx1ODhlMlx1ODhjZVx1ODhlM1x1ODhlNVx1ODhmMVx1ODkxYVx1ODhmY1x1ODhlOFx1ODhmZVx1ODhmMFx1ODkyMVx1ODkxOVx1ODkxM1x1ODkxYlx1ODkwYVx1ODkzNFx1ODkyYlx1ODkzNlx1ODk0'@; put 'MVx1ODk2Nlx1ODk3Ylx1NzU4Ylx1ODBlNVx1NzZiMlx1NzZiNFx1NzdkY1x1ODAxMlx1ODAxNFx1ODAxNlx1ODAxY1x1ODAyMFx1ODAyMlx1ODAyNVx1ODAyNlx1ODAyN1x1ODAyOVx1ODAyOFx1ODAzMVx1ODAwYlx1ODAzNVx1ODA0M1x1ODA0Nlx1ODA0ZFx1ODA1Mlx1ODA2OVx1ODA3MVx1'@; put 'ODk4M1x1OTg3OFx1OTg4MFx1OTg4MyJdLFsiZjI0MCIsIlx1OTlmYSIsNjJdLFsiZjI4MCIsIlx1OWEzOSIsMzIsIlx1OTg4OVx1OTg4Y1x1OTg4ZFx1OTg4Zlx1OTg5NFx1OTg5YVx1OTg5Ylx1OTg5ZVx1OTg5Zlx1OThhMVx1OThhMlx1OThhNVx1OThhNlx1ODY0ZFx1ODY1NFx1ODY2Y1x1'@; put 'ODY2ZVx1ODY3Zlx1ODY3YVx1ODY3Y1x1ODY3Ylx1ODZhOFx1ODY4ZFx1ODY4Ylx1ODZhY1x1ODY5ZFx1ODZhN1x1ODZhM1x1ODZhYVx1ODY5M1x1ODZhOVx1ODZiNlx1ODZjNFx1ODZiNVx1ODZjZVx1ODZiMFx1ODZiYVx1ODZiMVx1ODZhZlx1ODZjOVx1ODZjZlx1ODZiNFx1ODZlOVx1ODZm'@; put 'MVx1ODZmMlx1ODZlZFx1ODZmM1x1ODZkMFx1ODcxM1x1ODZkZVx1ODZmNFx1ODZkZlx1ODZkOFx1ODZkMVx1ODcwM1x1ODcwN1x1ODZmOFx1ODcwOFx1ODcwYVx1ODcwZFx1ODcwOVx1ODcyM1x1ODczYlx1ODcxZVx1ODcyNVx1ODcyZVx1ODcxYVx1ODczZVx1ODc0OFx1ODczNFx1ODczMVx1'@; put 'ODcyOVx1ODczN1x1ODczZlx1ODc4Mlx1ODcyMlx1ODc3ZFx1ODc3ZVx1ODc3Ylx1ODc2MFx1ODc3MFx1ODc0Y1x1ODc2ZVx1ODc4Ylx1ODc1M1x1ODc2M1x1ODc3Y1x1ODc2NFx1ODc1OVx1ODc2NVx1ODc5M1x1ODdhZlx1ODdhOFx1ODdkMiJdLFsiZjM0MCIsIlx1OWE1YSIsMTcsIlx1OWE3'@; put 'Mlx1OWE4M1x1OWE4OVx1OWE4ZFx1OWE4ZVx1OWE5NFx1OWE5NVx1OWE5OVx1OWFhNlx1OWFhOSIsNiwiXHU5YWIyXHU5YWIzXHU5YWI0XHU5YWI1XHU5YWI5XHU5YWJiXHU5YWJkXHU5YWJlXHU5YWJmXHU5YWMzXHU5YWM0XHU5YWM2Iiw0LCJcdTlhY2RcdTlhY2VcdTlhY2ZcdTlhZDBcdTlh'@; put 'ZDJcdTlhZDRcdTlhZDVcdTlhZDZcdTlhZDdcdTlhZDlcdTlhZGFcdTlhZGJcdTlhZGMiXSxbImYzODAiLCJcdTlhZGRcdTlhZGVcdTlhZTBcdTlhZTJcdTlhZTNcdTlhZTRcdTlhZTVcdTlhZTdcdTlhZThcdTlhZTlcdTlhZWFcdTlhZWNcdTlhZWVcdTlhZjAiLDgsIlx1OWFmYVx1OWFmYyIs'@; put 'NiwiXHU5YjA0XHU5YjA1XHU5YjA2XHU4N2M2XHU4Nzg4XHU4Nzg1XHU4N2FkXHU4Nzk3XHU4NzgzXHU4N2FiXHU4N2U1XHU4N2FjXHU4N2I1XHU4N2IzXHU4N2NiXHU4N2QzXHU4N2JkXHU4N2QxXHU4N2MwXHU4N2NhXHU4N2RiXHU4N2VhXHU4N2UwXHU4N2VlXHU4ODE2XHU4ODEzXHU4N2Zl'@; put 'XHU4ODBhXHU4ODFiXHU4ODIxXHU4ODM5XHU4ODNjXHU3ZjM2XHU3ZjQyXHU3ZjQ0XHU3ZjQ1XHU4MjEwXHU3YWZhXHU3YWZkXHU3YjA4XHU3YjAzXHU3YjA0XHU3YjE1XHU3YjBhXHU3YjJiXHU3YjBmXHU3YjQ3XHU3YjM4XHU3YjJhXHU3YjE5XHU3YjJlXHU3YjMxXHU3YjIwXHU3YjI1XHU3'@; put 'YjI0XHU3YjMzXHU3YjNlXHU3YjFlXHU3YjU4XHU3YjVhXHU3YjQ1XHU3Yjc1XHU3YjRjXHU3YjVkXHU3YjYwXHU3YjZlXHU3YjdiXHU3YjYyXHU3YjcyXHU3YjcxXHU3YjkwXHU3YmE2XHU3YmE3XHU3YmI4XHU3YmFjXHU3YjlkXHU3YmE4XHU3Yjg1XHU3YmFhXHU3YjljXHU3YmEyXHU3YmFi'@; put 'XHU3YmI0XHU3YmQxXHU3YmMxXHU3YmNjXHU3YmRkXHU3YmRhXHU3YmU1XHU3YmU2XHU3YmVhXHU3YzBjXHU3YmZlXHU3YmZjXHU3YzBmXHU3YzE2XHU3YzBiIl0sWyJmNDQwIiwiXHU5YjA3XHU5YjA5Iiw1LCJcdTliMTBcdTliMTFcdTliMTJcdTliMTQiLDEwLCJcdTliMjBcdTliMjFcdTli'@; put 'MjJcdTliMjQiLDEwLCJcdTliMzBcdTliMzFcdTliMzMiLDcsIlx1OWIzZFx1OWIzZVx1OWIzZlx1OWI0MFx1OWI0Nlx1OWI0YVx1OWI0Ylx1OWI0Y1x1OWI0ZVx1OWI1MFx1OWI1Mlx1OWI1M1x1OWI1NSIsNV0sWyJmNDgwIiwiXHU5YjViIiwzMiwiXHU3YzFmXHU3YzJhXHU3YzI2XHU3YzM4'@; put 'XHU3YzQxXHU3YzQwXHU4MWZlXHU4MjAxXHU4MjAyXHU4MjA0XHU4MWVjXHU4ODQ0XHU4MjIxXHU4MjIyXHU4MjIzXHU4MjJkXHU4MjJmXHU4MjI4XHU4MjJiXHU4MjM4XHU4MjNiXHU4MjMzXHU4MjM0XHU4MjNlXHU4MjQ0XHU4MjQ5XHU4MjRiXHU4MjRmXHU4MjVhXHU4MjVmXHU4MjY4XHU4'@; put 'ODdlXHU4ODg1XHU4ODg4XHU4OGQ4XHU4OGRmXHU4OTVlXHU3ZjlkXHU3ZjlmXHU3ZmE3XHU3ZmFmXHU3ZmIwXHU3ZmIyXHU3YzdjXHU2NTQ5XHU3YzkxXHU3YzlkXHU3YzljXHU3YzllXHU3Y2EyXHU3Y2IyXHU3Y2JjXHU3Y2JkXHU3Y2MxXHU3Y2M3XHU3Y2NjXHU3Y2NkXHU3Y2M4XHU3Y2M1'@; put 'XHU3Y2Q3XHU3Y2U4XHU4MjZlXHU2NmE4XHU3ZmJmXHU3ZmNlXHU3ZmQ1XHU3ZmU1XHU3ZmUxXHU3ZmU2XHU3ZmU5XHU3ZmVlXHU3ZmYzXHU3Y2Y4XHU3ZDc3XHU3ZGE2XHU3ZGFlXHU3ZTQ3XHU3ZTliXHU5ZWI4XHU5ZWI0XHU4ZDczXHU4ZDg0XHU4ZDk0XHU4ZDkxXHU4ZGIxXHU4ZDY3XHU4'@; put 'ZDZkXHU4YzQ3XHU4YzQ5XHU5MTRhXHU5MTUwXHU5MTRlXHU5MTRmXHU5MTY0Il0sWyJmNTQwIiwiXHU5YjdjIiw2Ml0sWyJmNTgwIiwiXHU5YmJiIiwzMiwiXHU5MTYyXHU5MTYxXHU5MTcwXHU5MTY5XHU5MTZmXHU5MTdkXHU5MTdlXHU5MTcyXHU5MTc0XHU5MTc5XHU5MThjXHU5MTg1XHU5'@; put 'MTkwXHU5MThkXHU5MTkxXHU5MWEyXHU5MWEzXHU5MWFhXHU5MWFkXHU5MWFlXHU5MWFmXHU5MWI1XHU5MWI0XHU5MWJhXHU4YzU1XHU5ZTdlXHU4ZGI4XHU4ZGViXHU4ZTA1XHU4ZTU5XHU4ZTY5XHU4ZGI1XHU4ZGJmXHU4ZGJjXHU4ZGJhXHU4ZGM0XHU4ZGQ2XHU4ZGQ3XHU4ZGRhXHU4ZGRl'@; put 'XHU4ZGNlXHU4ZGNmXHU4ZGRiXHU4ZGM2XHU4ZGVjXHU4ZGY3XHU4ZGY4XHU4ZGUzXHU4ZGY5XHU4ZGZiXHU4ZGU0XHU4ZTA5XHU4ZGZkXHU4ZTE0XHU4ZTFkXHU4ZTFmXHU4ZTJjXHU4ZTJlXHU4ZTIzXHU4ZTJmXHU4ZTNhXHU4ZTQwXHU4ZTM5XHU4ZTM1XHU4ZTNkXHU4ZTMxXHU4ZTQ5XHU4'@; put 'ZTQxXHU4ZTQyXHU4ZTUxXHU4ZTUyXHU4ZTRhXHU4ZTcwXHU4ZTc2XHU4ZTdjXHU4ZTZmXHU4ZTc0XHU4ZTg1XHU4ZThmXHU4ZTk0XHU4ZTkwXHU4ZTljXHU4ZTllXHU4Yzc4XHU4YzgyXHU4YzhhXHU4Yzg1XHU4Yzk4XHU4Yzk0XHU2NTliXHU4OWQ2XHU4OWRlXHU4OWRhXHU4OWRjIl0sWyJm'@; put 'NjQwIiwiXHU5YmRjIiw2Ml0sWyJmNjgwIiwiXHU5YzFiIiwzMiwiXHU4OWU1XHU4OWViXHU4OWVmXHU4YTNlXHU4YjI2XHU5NzUzXHU5NmU5XHU5NmYzXHU5NmVmXHU5NzA2XHU5NzAxXHU5NzA4XHU5NzBmXHU5NzBlXHU5NzJhXHU5NzJkXHU5NzMwXHU5NzNlXHU5ZjgwXHU5ZjgzXHU5Zjg1'@; put 'Iiw1LCJcdTlmOGNcdTllZmVcdTlmMGJcdTlmMGRcdTk2YjlcdTk2YmNcdTk2YmRcdTk2Y2VcdTk2ZDJcdTc3YmZcdTk2ZTBcdTkyOGVcdTkyYWVcdTkyYzhcdTkzM2VcdTkzNmFcdTkzY2FcdTkzOGZcdTk0M2VcdTk0NmJcdTljN2ZcdTljODJcdTljODVcdTljODZcdTljODdcdTljODhcdTdh'@; put 'MjNcdTljOGJcdTljOGVcdTljOTBcdTljOTFcdTljOTJcdTljOTRcdTljOTVcdTljOWFcdTljOWJcdTljOWUiLDUsIlx1OWNhNSIsNCwiXHU5Y2FiXHU5Y2FkXHU5Y2FlXHU5Y2IwIiw3LCJcdTljYmFcdTljYmJcdTljYmNcdTljYmRcdTljYzRcdTljYzVcdTljYzZcdTljYzdcdTljY2FcdTlj'@; put 'Y2IiXSxbImY3NDAiLCJcdTljM2MiLDYyXSxbImY3ODAiLCJcdTljN2JcdTljN2RcdTljN2VcdTljODBcdTljODNcdTljODRcdTljODlcdTljOGFcdTljOGNcdTljOGZcdTljOTNcdTljOTZcdTljOTdcdTljOThcdTljOTlcdTljOWRcdTljYWFcdTljYWNcdTljYWZcdTljYjlcdTljYmUiLDQs'@; put 'Ilx1OWNjOFx1OWNjOVx1OWNkMVx1OWNkMlx1OWNkYVx1OWNkYlx1OWNlMFx1OWNlMVx1OWNjYyIsNCwiXHU5Y2QzXHU5Y2Q0XHU5Y2Q1XHU5Y2Q3XHU5Y2Q4XHU5Y2Q5XHU5Y2RjXHU5Y2RkXHU5Y2RmXHU5Y2UyXHU5NzdjXHU5Nzg1XHU5NzkxXHU5NzkyXHU5Nzk0XHU5N2FmXHU5N2FiXHU5'@; put 'N2EzXHU5N2IyXHU5N2I0XHU5YWIxXHU5YWIwXHU5YWI3XHU5ZTU4XHU5YWI2XHU5YWJhXHU5YWJjXHU5YWMxXHU5YWMwXHU5YWM1XHU5YWMyXHU5YWNiXHU5YWNjXHU5YWQxXHU5YjQ1XHU5YjQzXHU5YjQ3XHU5YjQ5XHU5YjQ4XHU5YjRkXHU5YjUxXHU5OGU4XHU5OTBkXHU5OTJlXHU5OTU1'@; put 'XHU5OTU0XHU5YWRmXHU5YWUxXHU5YWU2XHU5YWVmXHU5YWViXHU5YWZiXHU5YWVkXHU5YWY5XHU5YjA4XHU5YjBmXHU5YjEzXHU5YjFmXHU5YjIzXHU5ZWJkXHU5ZWJlXHU3ZTNiXHU5ZTgyXHU5ZTg3XHU5ZTg4XHU5ZThiXHU5ZTkyXHU5M2Q2XHU5ZTlkXHU5ZTlmXHU5ZWRiXHU5ZWRjXHU5'@; put 'ZWRkXHU5ZWUwXHU5ZWRmXHU5ZWUyXHU5ZWU5XHU5ZWU3XHU5ZWU1XHU5ZWVhXHU5ZWVmXHU5ZjIyXHU5ZjJjXHU5ZjJmXHU5ZjM5XHU5ZjM3XHU5ZjNkXHU5ZjNlXHU5ZjQ0Il0sWyJmODQwIiwiXHU5Y2UzIiw2Ml0sWyJmODgwIiwiXHU5ZDIyIiwzMl0sWyJmOTQwIiwiXHU5ZDQzIiw2Ml0s'@; put 'WyJmOTgwIiwiXHU5ZDgyIiwzMl0sWyJmYTQwIiwiXHU5ZGEzIiw2Ml0sWyJmYTgwIiwiXHU5ZGUyIiwzMl0sWyJmYjQwIiwiXHU5ZTAzIiwyNywiXHU5ZTI0XHU5ZTI3XHU5ZTJlXHU5ZTMwXHU5ZTM0XHU5ZTNiXHU5ZTNjXHU5ZTQwXHU5ZTRkXHU5ZTUwXHU5ZTUyXHU5ZTUzXHU5ZTU0XHU5'@; put 'ZTU2XHU5ZTU5XHU5ZTVkXHU5ZTVmXHU5ZTYwXHU5ZTYxXHU5ZTYyXHU5ZTY1XHU5ZTZlXHU5ZTZmXHU5ZTcyXHU5ZTc0Iiw5LCJcdTllODAiXSxbImZiODAiLCJcdTllODFcdTllODNcdTllODRcdTllODVcdTllODZcdTllODlcdTllOGFcdTllOGMiLDUsIlx1OWU5NCIsOCwiXHU5ZTllXHU5'@; put 'ZWEwIiw1LCJcdTllYTdcdTllYThcdTllYTlcdTllYWEiXSxbImZjNDAiLCJcdTllYWIiLDgsIlx1OWViNVx1OWViNlx1OWViN1x1OWViOVx1OWViYVx1OWViY1x1OWViZiIsNCwiXHU5ZWM1XHU5ZWM2XHU5ZWM3XHU5ZWM4XHU5ZWNhXHU5ZWNiXHU5ZWNjXHU5ZWQwXHU5ZWQyXHU5ZWQzXHU5'@; put 'ZWQ1XHU5ZWQ2XHU5ZWQ3XHU5ZWQ5XHU5ZWRhXHU5ZWRlXHU5ZWUxXHU5ZWUzXHU5ZWU0XHU5ZWU2XHU5ZWU4XHU5ZWViXHU5ZWVjXHU5ZWVkXHU5ZWVlXHU5ZWYwIiw4LCJcdTllZmFcdTllZmRcdTllZmYiLDZdLFsiZmM4MCIsIlx1OWYwNiIsNCwiXHU5ZjBjXHU5ZjBmXHU5ZjExXHU5ZjEy'@; put 'XHU5ZjE0XHU5ZjE1XHU5ZjE2XHU5ZjE4XHU5ZjFhIiw1LCJcdTlmMjFcdTlmMjMiLDgsIlx1OWYyZFx1OWYyZVx1OWYzMFx1OWYzMSJdLFsiZmQ0MCIsIlx1OWYzMiIsNCwiXHU5ZjM4XHU5ZjNhXHU5ZjNjXHU5ZjNmIiw0LCJcdTlmNDUiLDEwLCJcdTlmNTIiLDM4XSxbImZkODAiLCJcdTlm'@; put 'NzkiLDUsIlx1OWY4MVx1OWY4Mlx1OWY4ZCIsMTEsIlx1OWY5Y1x1OWY5ZFx1OWY5ZVx1OWZhMSIsNCwiXHVmOTJjXHVmOTc5XHVmOTk1XHVmOWU3XHVmOWYxIl0sWyJmZTQwIiwiXHVmYTBjXHVmYTBkXHVmYTBlXHVmYTBmXHVmYTExXHVmYTEzXHVmYTE0XHVmYTE4XHVmYTFmXHVmYTIwXHVm'@; put 'YTIxXHVmYTIzXHVmYTI0XHVmYTI3XHVmYTI4XHVmYTI5Il1dJyl9LDIxMTY2OmNlPT57InVzZSBzdHJpY3QiO2NlLmV4cG9ydHM9SlNPTi5wYXJzZSgnW1siMCIsIlxcdTAwMDAiLDEyN10sWyI4MTQxIiwiXHVhYzAyXHVhYzAzXHVhYzA1XHVhYzA2XHVhYzBiIiw0LCJcdWFjMThcdWFjMWVc'@; put 'dWFjMWZcdWFjMjFcdWFjMjJcdWFjMjNcdWFjMjUiLDYsIlx1YWMyZVx1YWMzMlx1YWMzM1x1YWMzNCJdLFsiODE2MSIsIlx1YWMzNVx1YWMzNlx1YWMzN1x1YWMzYVx1YWMzYlx1YWMzZFx1YWMzZVx1YWMzZlx1YWM0MSIsOSwiXHVhYzRjXHVhYzRlIiw1LCJcdWFjNTUiXSxbIjgxODEiLCJc'@; put 'dWFjNTZcdWFjNTdcdWFjNTlcdWFjNWFcdWFjNWJcdWFjNWQiLDE4LCJcdWFjNzJcdWFjNzNcdWFjNzVcdWFjNzZcdWFjNzlcdWFjN2IiLDQsIlx1YWM4Mlx1YWM4N1x1YWM4OFx1YWM4ZFx1YWM4ZVx1YWM4Zlx1YWM5MVx1YWM5Mlx1YWM5M1x1YWM5NSIsNiwiXHVhYzllXHVhY2EyIiw1LCJc'@; put 'dWFjYWJcdWFjYWRcdWFjYWVcdWFjYjEiLDYsIlx1YWNiYVx1YWNiZVx1YWNiZlx1YWNjMFx1YWNjMlx1YWNjM1x1YWNjNVx1YWNjNlx1YWNjN1x1YWNjOVx1YWNjYVx1YWNjYlx1YWNjZCIsNywiXHVhY2Q2XHVhY2Q4Iiw3LCJcdWFjZTJcdWFjZTNcdWFjZTVcdWFjZTZcdWFjZTlcdWFjZWJc'@; put 'dWFjZWRcdWFjZWVcdWFjZjJcdWFjZjRcdWFjZjciLDQsIlx1YWNmZVx1YWNmZlx1YWQwMVx1YWQwMlx1YWQwM1x1YWQwNVx1YWQwNyIsNCwiXHVhZDBlXHVhZDEwXHVhZDEyXHVhZDEzIl0sWyI4MjQxIiwiXHVhZDE0XHVhZDE1XHVhZDE2XHVhZDE3XHVhZDE5XHVhZDFhXHVhZDFiXHVhZDFk'@; put 'XHVhZDFlXHVhZDFmXHVhZDIxIiw3LCJcdWFkMmFcdWFkMmJcdWFkMmUiLDVdLFsiODI2MSIsIlx1YWQzNlx1YWQzN1x1YWQzOVx1YWQzYVx1YWQzYlx1YWQzZCIsNiwiXHVhZDQ2XHVhZDQ4XHVhZDRhIiw1LCJcdWFkNTFcdWFkNTJcdWFkNTNcdWFkNTVcdWFkNTZcdWFkNTciXSxbIjgyODEi'@; put 'LCJcdWFkNTkiLDcsIlx1YWQ2Mlx1YWQ2NCIsNywiXHVhZDZlXHVhZDZmXHVhZDcxXHVhZDcyXHVhZDc3XHVhZDc4XHVhZDc5XHVhZDdhXHVhZDdlXHVhZDgwXHVhZDgzIiw0LCJcdWFkOGFcdWFkOGJcdWFkOGRcdWFkOGVcdWFkOGZcdWFkOTEiLDEwLCJcdWFkOWUiLDUsIlx1YWRhNSIsMTcs'@; put 'Ilx1YWRiOCIsNywiXHVhZGMyXHVhZGMzXHVhZGM1XHVhZGM2XHVhZGM3XHVhZGM5Iiw2LCJcdWFkZDJcdWFkZDQiLDcsIlx1YWRkZFx1YWRkZVx1YWRkZlx1YWRlMVx1YWRlMlx1YWRlM1x1YWRlNSIsMThdLFsiODM0MSIsIlx1YWRmYVx1YWRmYlx1YWRmZFx1YWRmZVx1YWUwMiIsNSwiXHVh'@; put 'ZTBhXHVhZTBjXHVhZTBlIiw1LCJcdWFlMTUiLDddLFsiODM2MSIsIlx1YWUxZCIsMTgsIlx1YWUzMlx1YWUzM1x1YWUzNVx1YWUzNlx1YWUzOVx1YWUzYlx1YWUzYyJdLFsiODM4MSIsIlx1YWUzZFx1YWUzZVx1YWUzZlx1YWU0Mlx1YWU0NFx1YWU0N1x1YWU0OFx1YWU0OVx1YWU0Ylx1YWU0'@; put 'Zlx1YWU1MVx1YWU1Mlx1YWU1M1x1YWU1NVx1YWU1NyIsNCwiXHVhZTVlXHVhZTYyXHVhZTYzXHVhZTY0XHVhZTY2XHVhZTY3XHVhZTZhXHVhZTZiXHVhZTZkXHVhZTZlXHVhZTZmXHVhZTcxIiw2LCJcdWFlN2FcdWFlN2UiLDUsIlx1YWU4NiIsNSwiXHVhZThkIiw0NiwiXHVhZWJmXHVhZWMx'@; put 'XHVhZWMyXHVhZWMzXHVhZWM1Iiw2LCJcdWFlY2VcdWFlZDIiLDUsIlx1YWVkYVx1YWVkYlx1YWVkZCIsOF0sWyI4NDQxIiwiXHVhZWU2XHVhZWU3XHVhZWU5XHVhZWVhXHVhZWVjXHVhZWVlIiw1LCJcdWFlZjVcdWFlZjZcdWFlZjdcdWFlZjlcdWFlZmFcdWFlZmJcdWFlZmQiLDhdLFsiODQ2'@; put 'MSIsIlx1YWYwNlx1YWYwOVx1YWYwYVx1YWYwYlx1YWYwY1x1YWYwZVx1YWYwZlx1YWYxMSIsMThdLFsiODQ4MSIsIlx1YWYyNCIsNywiXHVhZjJlXHVhZjJmXHVhZjMxXHVhZjMzXHVhZjM1Iiw2LCJcdWFmM2VcdWFmNDBcdWFmNDRcdWFmNDVcdWFmNDZcdWFmNDdcdWFmNGEiLDUsIlx1YWY1'@; put 'MSIsMTAsIlx1YWY1ZSIsNSwiXHVhZjY2IiwxOCwiXHVhZjdhIiw1LCJcdWFmODFcdWFmODJcdWFmODNcdWFmODVcdWFmODZcdWFmODdcdWFmODkiLDYsIlx1YWY5Mlx1YWY5M1x1YWY5NFx1YWY5NiIsNSwiXHVhZjlkIiwyNiwiXHVhZmJhXHVhZmJiXHVhZmJkXHVhZmJlIl0sWyI4NTQxIiwi'@; put 'XHVhZmJmXHVhZmMxIiw1LCJcdWFmY2FcdWFmY2NcdWFmY2YiLDQsIlx1YWZkNSIsNiwiXHVhZmRkIiw0XSxbIjg1NjEiLCJcdWFmZTIiLDUsIlx1YWZlYSIsNSwiXHVhZmYyXHVhZmYzXHVhZmY1XHVhZmY2XHVhZmY3XHVhZmY5Iiw2LCJcdWIwMDJcdWIwMDMiXSxbIjg1ODEiLCJcdWIwMDUi'@; put 'LDYsIlx1YjAwZFx1YjAwZVx1YjAwZlx1YjAxMVx1YjAxMlx1YjAxM1x1YjAxNSIsNiwiXHViMDFlIiw5LCJcdWIwMjkiLDI2LCJcdWIwNDZcdWIwNDdcdWIwNDlcdWIwNGJcdWIwNGRcdWIwNGZcdWIwNTBcdWIwNTFcdWIwNTJcdWIwNTZcdWIwNThcdWIwNWFcdWIwNWJcdWIwNWNcdWIwNWUi'@; put 'LDI5LCJcdWIwN2VcdWIwN2ZcdWIwODFcdWIwODJcdWIwODNcdWIwODUiLDYsIlx1YjA4ZVx1YjA5MFx1YjA5MiIsNSwiXHViMDliXHViMDlkXHViMDllXHViMGEzXHViMGE0Il0sWyI4NjQxIiwiXHViMGE1XHViMGE2XHViMGE3XHViMGFhXHViMGIwXHViMGIyXHViMGI2XHViMGI3XHViMGI5'@; put 'XHViMGJhXHViMGJiXHViMGJkIiw2LCJcdWIwYzZcdWIwY2EiLDUsIlx1YjBkMiJdLFsiODY2MSIsIlx1YjBkM1x1YjBkNVx1YjBkNlx1YjBkN1x1YjBkOSIsNiwiXHViMGUxXHViMGUyXHViMGUzXHViMGU0XHViMGU2IiwxMF0sWyI4NjgxIiwiXHViMGYxIiwyMiwiXHViMTBhXHViMTBkXHVi'@; put 'MTBlXHViMTBmXHViMTExXHViMTE0XHViMTE1XHViMTE2XHViMTE3XHViMTFhXHViMTFlIiw0LCJcdWIxMjZcdWIxMjdcdWIxMjlcdWIxMmFcdWIxMmJcdWIxMmQiLDYsIlx1YjEzNlx1YjEzYSIsNSwiXHViMTQyXHViMTQzXHViMTQ1XHViMTQ2XHViMTQ3XHViMTQ5Iiw2LCJcdWIxNTJcdWIx'@; put 'NTNcdWIxNTZcdWIxNTdcdWIxNTlcdWIxNWFcdWIxNWJcdWIxNWRcdWIxNWVcdWIxNWZcdWIxNjEiLDIyLCJcdWIxN2FcdWIxN2JcdWIxN2RcdWIxN2VcdWIxN2ZcdWIxODFcdWIxODMiLDQsIlx1YjE4YVx1YjE4Y1x1YjE4ZVx1YjE4Zlx1YjE5MFx1YjE5MVx1YjE5NVx1YjE5Nlx1YjE5N1x1'@; put 'YjE5OVx1YjE5YVx1YjE5Ylx1YjE5ZCJdLFsiODc0MSIsIlx1YjE5ZSIsOSwiXHViMWE5IiwxNV0sWyI4NzYxIiwiXHViMWI5IiwxOCwiXHViMWNkXHViMWNlXHViMWNmXHViMWQxXHViMWQyXHViMWQzXHViMWQ1Il0sWyI4NzgxIiwiXHViMWQ2Iiw1LCJcdWIxZGVcdWIxZTAiLDcsIlx1YjFl'@; put 'YVx1YjFlYlx1YjFlZFx1YjFlZVx1YjFlZlx1YjFmMSIsNywiXHViMWZhXHViMWZjXHViMWZlIiw1LCJcdWIyMDZcdWIyMDdcdWIyMDlcdWIyMGFcdWIyMGQiLDYsIlx1YjIxNlx1YjIxOFx1YjIxYSIsNSwiXHViMjIxIiwxOCwiXHViMjM1Iiw2LCJcdWIyM2QiLDI2LCJcdWIyNTlcdWIyNWFc'@; put 'dWIyNWJcdWIyNWRcdWIyNWVcdWIyNWZcdWIyNjEiLDYsIlx1YjI2YSIsNF0sWyI4ODQxIiwiXHViMjZmIiw0LCJcdWIyNzYiLDUsIlx1YjI3ZCIsNiwiXHViMjg2XHViMjg3XHViMjg4XHViMjhhIiw0XSxbIjg4NjEiLCJcdWIyOGZcdWIyOTJcdWIyOTNcdWIyOTVcdWIyOTZcdWIyOTdcdWIy'@; put 'OWIiLDQsIlx1YjJhMlx1YjJhNFx1YjJhN1x1YjJhOFx1YjJhOVx1YjJhYlx1YjJhZFx1YjJhZVx1YjJhZlx1YjJiMVx1YjJiMlx1YjJiM1x1YjJiNVx1YjJiNlx1YjJiNyJdLFsiODg4MSIsIlx1YjJiOCIsMTUsIlx1YjJjYVx1YjJjYlx1YjJjZFx1YjJjZVx1YjJjZlx1YjJkMVx1YjJkMyIs'@; put 'NCwiXHViMmRhXHViMmRjXHViMmRlXHViMmRmXHViMmUwXHViMmUxXHViMmUzXHViMmU3XHViMmU5XHViMmVhXHViMmYwXHViMmYxXHViMmYyXHViMmY2XHViMmZjXHViMmZkXHViMmZlXHViMzAyXHViMzAzXHViMzA1XHViMzA2XHViMzA3XHViMzA5Iiw2LCJcdWIzMTJcdWIzMTYiLDUsIlx1'@; put 'YjMxZCIsNTQsIlx1YjM1N1x1YjM1OVx1YjM1YVx1YjM1ZFx1YjM2MFx1YjM2MVx1YjM2Mlx1YjM2MyJdLFsiODk0MSIsIlx1YjM2Nlx1YjM2OFx1YjM2YVx1YjM2Y1x1YjM2ZFx1YjM2Zlx1YjM3Mlx1YjM3M1x1YjM3NVx1YjM3Nlx1YjM3N1x1YjM3OSIsNiwiXHViMzgyXHViMzg2Iiw1LCJc'@; put 'dWIzOGQiXSxbIjg5NjEiLCJcdWIzOGVcdWIzOGZcdWIzOTFcdWIzOTJcdWIzOTNcdWIzOTUiLDEwLCJcdWIzYTIiLDUsIlx1YjNhOVx1YjNhYVx1YjNhYlx1YjNhZCJdLFsiODk4MSIsIlx1YjNhZSIsMjEsIlx1YjNjNlx1YjNjN1x1YjNjOVx1YjNjYVx1YjNjZFx1YjNjZlx1YjNkMVx1YjNk'@; put 'Mlx1YjNkM1x1YjNkNlx1YjNkOFx1YjNkYVx1YjNkY1x1YjNkZVx1YjNkZlx1YjNlMVx1YjNlMlx1YjNlM1x1YjNlNVx1YjNlNlx1YjNlN1x1YjNlOSIsMTgsIlx1YjNmZCIsMTgsIlx1YjQxMSIsNiwiXHViNDE5XHViNDFhXHViNDFiXHViNDFkXHViNDFlXHViNDFmXHViNDIxIiw2LCJcdWI0'@; put 'MmFcdWI0MmMiLDcsIlx1YjQzNSIsMTVdLFsiOGE0MSIsIlx1YjQ0NSIsMTAsIlx1YjQ1Mlx1YjQ1M1x1YjQ1NVx1YjQ1Nlx1YjQ1N1x1YjQ1OSIsNiwiXHViNDYyXHViNDY0XHViNDY2Il0sWyI4YTYxIiwiXHViNDY3Iiw0LCJcdWI0NmQiLDE4LCJcdWI0ODFcdWI0ODIiXSxbIjhhODEiLCJc'@; put 'dWI0ODMiLDQsIlx1YjQ4OSIsMTksIlx1YjQ5ZSIsNSwiXHViNGE1XHViNGE2XHViNGE3XHViNGE5XHViNGFhXHViNGFiXHViNGFkIiw3LCJcdWI0YjZcdWI0YjhcdWI0YmEiLDUsIlx1YjRjMVx1YjRjMlx1YjRjM1x1YjRjNVx1YjRjNlx1YjRjN1x1YjRjOSIsNiwiXHViNGQxXHViNGQyXHVi'@; put 'NGQzXHViNGQ0XHViNGQ2Iiw1LCJcdWI0ZGVcdWI0ZGZcdWI0ZTFcdWI0ZTJcdWI0ZTVcdWI0ZTciLDQsIlx1YjRlZVx1YjRmMFx1YjRmMiIsNSwiXHViNGY5IiwyNiwiXHViNTE2XHViNTE3XHViNTE5XHViNTFhXHViNTFkIl0sWyI4YjQxIiwiXHViNTFlIiw1LCJcdWI1MjZcdWI1MmIiLDQs'@; put 'Ilx1YjUzMlx1YjUzM1x1YjUzNVx1YjUzNlx1YjUzN1x1YjUzOSIsNiwiXHViNTQyXHViNTQ2Il0sWyI4YjYxIiwiXHViNTQ3XHViNTQ4XHViNTQ5XHViNTRhXHViNTRlXHViNTRmXHViNTUxXHViNTUyXHViNTUzXHViNTU1Iiw2LCJcdWI1NWVcdWI1NjIiLDhdLFsiOGI4MSIsIlx1YjU2YiIs'@; put 'NTIsIlx1YjVhMlx1YjVhM1x1YjVhNVx1YjVhNlx1YjVhN1x1YjVhOVx1YjVhY1x1YjVhZFx1YjVhZVx1YjVhZlx1YjViMlx1YjViNiIsNCwiXHViNWJlXHViNWJmXHViNWMxXHViNWMyXHViNWMzXHViNWM1Iiw2LCJcdWI1Y2VcdWI1ZDIiLDUsIlx1YjVkOSIsMTgsIlx1YjVlZCIsMThdLFsi'@; put 'OGM0MSIsIlx1YjYwMCIsMTUsIlx1YjYxMlx1YjYxM1x1YjYxNVx1YjYxNlx1YjYxN1x1YjYxOSIsNF0sWyI4YzYxIiwiXHViNjFlIiw2LCJcdWI2MjYiLDUsIlx1YjYyZCIsNiwiXHViNjM1Iiw1XSxbIjhjODEiLCJcdWI2M2IiLDEyLCJcdWI2NDkiLDI2LCJcdWI2NjVcdWI2NjZcdWI2Njdc'@; put 'dWI2NjkiLDUwLCJcdWI2OWVcdWI2OWZcdWI2YTFcdWI2YTJcdWI2YTNcdWI2YTUiLDUsIlx1YjZhZFx1YjZhZVx1YjZhZlx1YjZiMFx1YjZiMiIsMTZdLFsiOGQ0MSIsIlx1YjZjMyIsMTYsIlx1YjZkNSIsOF0sWyI4ZDYxIiwiXHViNmRlIiwxNywiXHViNmYxXHViNmYyXHViNmYzXHViNmY1'@; put 'XHViNmY2XHViNmY3XHViNmY5XHViNmZhIl0sWyI4ZDgxIiwiXHViNmZiIiw0LCJcdWI3MDJcdWI3MDNcdWI3MDRcdWI3MDYiLDMzLCJcdWI3MmFcdWI3MmJcdWI3MmRcdWI3MmVcdWI3MzEiLDYsIlx1YjczYVx1YjczYyIsNywiXHViNzQ1XHViNzQ2XHViNzQ3XHViNzQ5XHViNzRhXHViNzRi'@; put 'XHViNzRkIiw2LCJcdWI3NTYiLDksIlx1Yjc2MVx1Yjc2Mlx1Yjc2M1x1Yjc2NVx1Yjc2Nlx1Yjc2N1x1Yjc2OSIsNiwiXHViNzcyXHViNzc0XHViNzc2Iiw1LCJcdWI3N2VcdWI3N2ZcdWI3ODFcdWI3ODJcdWI3ODNcdWI3ODUiLDYsIlx1Yjc4ZVx1Yjc5M1x1Yjc5NFx1Yjc5NVx1Yjc5YVx1'@; put 'Yjc5Ylx1Yjc5ZFx1Yjc5ZSJdLFsiOGU0MSIsIlx1Yjc5Zlx1YjdhMSIsNiwiXHViN2FhXHViN2FlIiw1LCJcdWI3YjZcdWI3YjdcdWI3YjkiLDhdLFsiOGU2MSIsIlx1YjdjMiIsNCwiXHViN2M4XHViN2NhIiwxOV0sWyI4ZTgxIiwiXHViN2RlIiwxMywiXHViN2VlXHViN2VmXHViN2YxXHVi'@; put 'N2YyXHViN2YzXHViN2Y1Iiw2LCJcdWI3ZmVcdWI4MDIiLDQsIlx1YjgwYVx1YjgwYlx1YjgwZFx1YjgwZVx1YjgwZlx1YjgxMSIsNiwiXHViODFhXHViODFjXHViODFlIiw1LCJcdWI4MjZcdWI4MjdcdWI4MjlcdWI4MmFcdWI4MmJcdWI4MmQiLDYsIlx1YjgzNlx1YjgzYSIsNSwiXHViODQx'@; put 'XHViODQyXHViODQzXHViODQ1IiwxMSwiXHViODUyXHViODU0Iiw3LCJcdWI4NWVcdWI4NWZcdWI4NjFcdWI4NjJcdWI4NjNcdWI4NjUiLDYsIlx1Yjg2ZVx1Yjg3MFx1Yjg3MiIsNSwiXHViODc5XHViODdhXHViODdiXHViODdkIiw3XSxbIjhmNDEiLCJcdWI4ODUiLDcsIlx1Yjg4ZSIsMTdd'@; put 'LFsiOGY2MSIsIlx1YjhhMCIsNywiXHViOGE5Iiw2LCJcdWI4YjFcdWI4YjJcdWI4YjNcdWI4YjVcdWI4YjZcdWI4YjdcdWI4YjkiLDRdLFsiOGY4MSIsIlx1YjhiZVx1YjhiZlx1YjhjMlx1YjhjNFx1YjhjNiIsNSwiXHViOGNkXHViOGNlXHViOGNmXHViOGQxXHViOGQyXHViOGQzXHViOGQ1'@; put 'Iiw3LCJcdWI4ZGVcdWI4ZTBcdWI4ZTIiLDUsIlx1YjhlYVx1YjhlYlx1YjhlZFx1YjhlZVx1YjhlZlx1YjhmMSIsNiwiXHViOGZhXHViOGZjXHViOGZlIiw1LCJcdWI5MDUiLDE4LCJcdWI5MTkiLDYsIlx1YjkyMSIsMjYsIlx1YjkzZVx1YjkzZlx1Yjk0MVx1Yjk0Mlx1Yjk0M1x1Yjk0NSIs'@; put 'NiwiXHViOTRkXHViOTRlXHViOTUwXHViOTUyIiw1XSxbIjkwNDEiLCJcdWI5NWFcdWI5NWJcdWI5NWRcdWI5NWVcdWI5NWZcdWI5NjEiLDYsIlx1Yjk2YVx1Yjk2Y1x1Yjk2ZSIsNSwiXHViOTc2XHViOTc3XHViOTc5XHViOTdhXHViOTdiXHViOTdkIl0sWyI5MDYxIiwiXHViOTdlIiw1LCJc'@; put 'dWI5ODZcdWI5ODhcdWI5OGJcdWI5OGNcdWI5OGYiLDE1XSxbIjkwODEiLCJcdWI5OWYiLDEyLCJcdWI5YWVcdWI5YWZcdWI5YjFcdWI5YjJcdWI5YjNcdWI5YjUiLDYsIlx1YjliZVx1YjljMFx1YjljMiIsNSwiXHViOWNhXHViOWNiXHViOWNkXHViOWQzIiw0LCJcdWI5ZGFcdWI5ZGNcdWI5'@; put 'ZGZcdWI5ZTBcdWI5ZTJcdWI5ZTZcdWI5ZTdcdWI5ZTlcdWI5ZWFcdWI5ZWJcdWI5ZWQiLDYsIlx1YjlmNlx1YjlmYiIsNCwiXHViYTAyIiw1LCJcdWJhMDkiLDExLCJcdWJhMTYiLDMzLCJcdWJhM2FcdWJhM2JcdWJhM2RcdWJhM2VcdWJhM2ZcdWJhNDFcdWJhNDNcdWJhNDRcdWJhNDVcdWJh'@; put 'NDYiXSxbIjkxNDEiLCJcdWJhNDdcdWJhNGFcdWJhNGNcdWJhNGZcdWJhNTBcdWJhNTFcdWJhNTJcdWJhNTZcdWJhNTdcdWJhNTlcdWJhNWFcdWJhNWJcdWJhNWQiLDYsIlx1YmE2Nlx1YmE2YSIsNV0sWyI5MTYxIiwiXHViYTcyXHViYTczXHViYTc1XHViYTc2XHViYTc3XHViYTc5Iiw5LCJc'@; put 'dWJhODZcdWJhODhcdWJhODlcdWJhOGFcdWJhOGJcdWJhOGQiLDVdLFsiOTE4MSIsIlx1YmE5MyIsMjAsIlx1YmFhYVx1YmFhZFx1YmFhZVx1YmFhZlx1YmFiMVx1YmFiMyIsNCwiXHViYWJhXHViYWJjXHViYWJlIiw1LCJcdWJhYzVcdWJhYzZcdWJhYzdcdWJhYzkiLDE0LCJcdWJhZGEiLDMz'@; put 'LCJcdWJhZmRcdWJhZmVcdWJhZmZcdWJiMDFcdWJiMDJcdWJiMDNcdWJiMDUiLDcsIlx1YmIwZVx1YmIxMFx1YmIxMiIsNSwiXHViYjE5XHViYjFhXHViYjFiXHViYjFkXHViYjFlXHViYjFmXHViYjIxIiw2XSxbIjkyNDEiLCJcdWJiMjhcdWJiMmFcdWJiMmMiLDcsIlx1YmIzN1x1YmIzOVx1'@; put 'YmIzYVx1YmIzZiIsNCwiXHViYjQ2XHViYjQ4XHViYjRhXHViYjRiXHViYjRjXHViYjRlXHViYjUxXHViYjUyIl0sWyI5MjYxIiwiXHViYjUzXHViYjU1XHViYjU2XHViYjU3XHViYjU5Iiw3LCJcdWJiNjJcdWJiNjQiLDcsIlx1YmI2ZCIsNF0sWyI5MjgxIiwiXHViYjcyIiwyMSwiXHViYjg5'@; put 'XHViYjhhXHViYjhiXHViYjhkXHViYjhlXHViYjhmXHViYjkxIiwxOCwiXHViYmE1XHViYmE2XHViYmE3XHViYmE5XHViYmFhXHViYmFiXHViYmFkIiw2LCJcdWJiYjVcdWJiYjZcdWJiYjgiLDcsIlx1YmJjMVx1YmJjMlx1YmJjM1x1YmJjNVx1YmJjNlx1YmJjN1x1YmJjOSIsNiwiXHViYmQx'@; put 'XHViYmQyXHViYmQ0IiwzNSwiXHViYmZhXHViYmZiXHViYmZkXHViYmZlXHViYzAxIl0sWyI5MzQxIiwiXHViYzAzIiw0LCJcdWJjMGFcdWJjMGVcdWJjMTBcdWJjMTJcdWJjMTNcdWJjMTlcdWJjMWFcdWJjMjBcdWJjMjFcdWJjMjJcdWJjMjNcdWJjMjZcdWJjMjhcdWJjMmFcdWJjMmJcdWJj'@; put 'MmNcdWJjMmVcdWJjMmZcdWJjMzJcdWJjMzNcdWJjMzUiXSxbIjkzNjEiLCJcdWJjMzZcdWJjMzdcdWJjMzkiLDYsIlx1YmM0Mlx1YmM0Nlx1YmM0N1x1YmM0OFx1YmM0YVx1YmM0Ylx1YmM0ZVx1YmM0Zlx1YmM1MSIsOF0sWyI5MzgxIiwiXHViYzVhXHViYzViXHViYzVjXHViYzVlIiwzNywi'@; put 'XHViYzg2XHViYzg3XHViYzg5XHViYzhhXHViYzhkXHViYzhmIiw0LCJcdWJjOTZcdWJjOThcdWJjOWIiLDQsIlx1YmNhMlx1YmNhM1x1YmNhNVx1YmNhNlx1YmNhOSIsNiwiXHViY2IyXHViY2I2Iiw1LCJcdWJjYmVcdWJjYmZcdWJjYzFcdWJjYzJcdWJjYzNcdWJjYzUiLDcsIlx1YmNjZVx1'@; put 'YmNkMlx1YmNkM1x1YmNkNFx1YmNkNlx1YmNkN1x1YmNkOVx1YmNkYVx1YmNkYlx1YmNkZCIsMjIsIlx1YmNmN1x1YmNmOVx1YmNmYVx1YmNmYlx1YmNmZCJdLFsiOTQ0MSIsIlx1YmNmZSIsNSwiXHViZDA2XHViZDA4XHViZDBhIiw1LCJcdWJkMTFcdWJkMTJcdWJkMTNcdWJkMTUiLDhdLFsi'@; put 'OTQ2MSIsIlx1YmQxZSIsNSwiXHViZDI1Iiw2LCJcdWJkMmQiLDEyXSxbIjk0ODEiLCJcdWJkM2EiLDUsIlx1YmQ0MSIsNiwiXHViZDRhXHViZDRiXHViZDRkXHViZDRlXHViZDRmXHViZDUxIiw2LCJcdWJkNWEiLDksIlx1YmQ2NVx1YmQ2Nlx1YmQ2N1x1YmQ2OSIsMjIsIlx1YmQ4Mlx1YmQ4'@; put 'M1x1YmQ4NVx1YmQ4Nlx1YmQ4YiIsNCwiXHViZDkyXHViZDk0XHViZDk2XHViZDk3XHViZDk4XHViZDliXHViZDlkIiw2LCJcdWJkYTUiLDEwLCJcdWJkYjEiLDYsIlx1YmRiOSIsMjRdLFsiOTU0MSIsIlx1YmRkMlx1YmRkM1x1YmRkNlx1YmRkN1x1YmRkOVx1YmRkYVx1YmRkYlx1YmRkZCIs'@; put 'MTEsIlx1YmRlYSIsNSwiXHViZGYxIl0sWyI5NTYxIiwiXHViZGYyXHViZGYzXHViZGY1XHViZGY2XHViZGY3XHViZGY5Iiw2LCJcdWJlMDFcdWJlMDJcdWJlMDRcdWJlMDYiLDUsIlx1YmUwZVx1YmUwZlx1YmUxMVx1YmUxMlx1YmUxMyJdLFsiOTU4MSIsIlx1YmUxNSIsNiwiXHViZTFlXHVi'@; put 'ZTIwIiwzNSwiXHViZTQ2XHViZTQ3XHViZTQ5XHViZTRhXHViZTRiXHViZTRkXHViZTRmIiw0LCJcdWJlNTZcdWJlNThcdWJlNWNcdWJlNWRcdWJlNWVcdWJlNWZcdWJlNjJcdWJlNjNcdWJlNjVcdWJlNjZcdWJlNjdcdWJlNjlcdWJlNmIiLDQsIlx1YmU3Mlx1YmU3NiIsNCwiXHViZTdlXHVi'@; put 'ZTdmXHViZTgxXHViZTgyXHViZTgzXHViZTg1Iiw2LCJcdWJlOGVcdWJlOTIiLDUsIlx1YmU5YSIsMTMsIlx1YmVhOSIsMTRdLFsiOTY0MSIsIlx1YmViOCIsMjMsIlx1YmVkMlx1YmVkMyJdLFsiOTY2MSIsIlx1YmVkNVx1YmVkNlx1YmVkOSIsNiwiXHViZWUxXHViZWUyXHViZWU2Iiw1LCJc'@; put 'dWJlZWQiLDhdLFsiOTY4MSIsIlx1YmVmNiIsMTAsIlx1YmYwMiIsNSwiXHViZjBhIiwxMywiXHViZjFhXHViZjFlIiwzMywiXHViZjQyXHViZjQzXHViZjQ1XHViZjQ2XHViZjQ3XHViZjQ5Iiw2LCJcdWJmNTJcdWJmNTNcdWJmNTRcdWJmNTYiLDQ0XSxbIjk3NDEiLCJcdWJmODMiLDE2LCJc'@; put 'dWJmOTUiLDhdLFsiOTc2MSIsIlx1YmY5ZSIsMTcsIlx1YmZiMSIsN10sWyI5NzgxIiwiXHViZmI5IiwxMSwiXHViZmM2Iiw1LCJcdWJmY2VcdWJmY2ZcdWJmZDFcdWJmZDJcdWJmZDNcdWJmZDUiLDYsIlx1YmZkZFx1YmZkZVx1YmZlMFx1YmZlMiIsODksIlx1YzAzZFx1YzAzZVx1YzAzZiJd'@; put 'LFsiOTg0MSIsIlx1YzA0MCIsMTYsIlx1YzA1MiIsNSwiXHVjMDU5XHVjMDVhXHVjMDViIl0sWyI5ODYxIiwiXHVjMDVkXHVjMDVlXHVjMDVmXHVjMDYxIiw2LCJcdWMwNmEiLDE1XSxbIjk4ODEiLCJcdWMwN2EiLDIxLCJcdWMwOTJcdWMwOTNcdWMwOTVcdWMwOTZcdWMwOTdcdWMwOTkiLDYs'@; put 'Ilx1YzBhMlx1YzBhNFx1YzBhNiIsNSwiXHVjMGFlXHVjMGIxXHVjMGIyXHVjMGI3Iiw0LCJcdWMwYmVcdWMwYzJcdWMwYzNcdWMwYzRcdWMwYzZcdWMwYzdcdWMwY2FcdWMwY2JcdWMwY2RcdWMwY2VcdWMwY2ZcdWMwZDEiLDYsIlx1YzBkYVx1YzBkZSIsNSwiXHVjMGU2XHVjMGU3XHVjMGU5'@; put 'XHVjMGVhXHVjMGViXHVjMGVkIiw2LCJcdWMwZjZcdWMwZjhcdWMwZmEiLDUsIlx1YzEwMVx1YzEwMlx1YzEwM1x1YzEwNVx1YzEwNlx1YzEwN1x1YzEwOSIsNiwiXHVjMTExXHVjMTEyXHVjMTEzXHVjMTE0XHVjMTE2Iiw1LCJcdWMxMjFcdWMxMjJcdWMxMjVcdWMxMjhcdWMxMjlcdWMxMmFc'@; put 'dWMxMmJcdWMxMmUiXSxbIjk5NDEiLCJcdWMxMzJcdWMxMzNcdWMxMzRcdWMxMzVcdWMxMzdcdWMxM2FcdWMxM2JcdWMxM2RcdWMxM2VcdWMxM2ZcdWMxNDEiLDYsIlx1YzE0YVx1YzE0ZSIsNSwiXHVjMTU2XHVjMTU3Il0sWyI5OTYxIiwiXHVjMTU5XHVjMTVhXHVjMTViXHVjMTVkIiw2LCJc'@; put 'dWMxNjZcdWMxNmEiLDUsIlx1YzE3MVx1YzE3Mlx1YzE3M1x1YzE3NVx1YzE3Nlx1YzE3N1x1YzE3OVx1YzE3YVx1YzE3YiJdLFsiOTk4MSIsIlx1YzE3YyIsOCwiXHVjMTg2Iiw1LCJcdWMxOGZcdWMxOTFcdWMxOTJcdWMxOTNcdWMxOTVcdWMxOTciLDQsIlx1YzE5ZVx1YzFhMFx1YzFhMlx1'@; put 'YzFhM1x1YzFhNFx1YzFhNlx1YzFhN1x1YzFhYVx1YzFhYlx1YzFhZFx1YzFhZVx1YzFhZlx1YzFiMSIsMTEsIlx1YzFiZSIsNSwiXHVjMWM1XHVjMWM2XHVjMWM3XHVjMWM5XHVjMWNhXHVjMWNiXHVjMWNkIiw2LCJcdWMxZDVcdWMxZDZcdWMxZDkiLDYsIlx1YzFlMVx1YzFlMlx1YzFlM1x1'@; put 'YzFlNVx1YzFlNlx1YzFlN1x1YzFlOSIsNiwiXHVjMWYyXHVjMWY0Iiw3LCJcdWMxZmVcdWMxZmZcdWMyMDFcdWMyMDJcdWMyMDNcdWMyMDUiLDYsIlx1YzIwZVx1YzIxMFx1YzIxMiIsNSwiXHVjMjFhXHVjMjFiXHVjMjFkXHVjMjFlXHVjMjIxXHVjMjIyXHVjMjIzIl0sWyI5YTQxIiwiXHVj'@; put 'MjI0XHVjMjI1XHVjMjI2XHVjMjI3XHVjMjJhXHVjMjJjXHVjMjJlXHVjMjMwXHVjMjMzXHVjMjM1IiwxNl0sWyI5YTYxIiwiXHVjMjQ2XHVjMjQ3XHVjMjQ5Iiw2LCJcdWMyNTJcdWMyNTNcdWMyNTVcdWMyNTZcdWMyNTdcdWMyNTkiLDYsIlx1YzI2MVx1YzI2Mlx1YzI2M1x1YzI2NFx1YzI2'@; put 'NiJdLFsiOWE4MSIsIlx1YzI2NyIsNCwiXHVjMjZlXHVjMjZmXHVjMjcxXHVjMjcyXHVjMjczXHVjMjc1Iiw2LCJcdWMyN2VcdWMyODBcdWMyODIiLDUsIlx1YzI4YSIsNSwiXHVjMjkxIiw2LCJcdWMyOTlcdWMyOWFcdWMyOWNcdWMyOWUiLDUsIlx1YzJhNlx1YzJhN1x1YzJhOVx1YzJhYVx1'@; put 'YzJhYlx1YzJhZSIsNSwiXHVjMmI2XHVjMmI4XHVjMmJhIiwzMywiXHVjMmRlXHVjMmRmXHVjMmUxXHVjMmUyXHVjMmU1Iiw1LCJcdWMyZWVcdWMyZjBcdWMyZjJcdWMyZjNcdWMyZjRcdWMyZjVcdWMyZjdcdWMyZmFcdWMyZmRcdWMyZmVcdWMyZmZcdWMzMDEiLDYsIlx1YzMwYVx1YzMwYlx1'@; put 'YzMwZVx1YzMwZiJdLFsiOWI0MSIsIlx1YzMxMFx1YzMxMVx1YzMxMlx1YzMxNlx1YzMxN1x1YzMxOVx1YzMxYVx1YzMxYlx1YzMxZCIsNiwiXHVjMzI2XHVjMzI3XHVjMzJhIiw4XSxbIjliNjEiLCJcdWMzMzMiLDE3LCJcdWMzNDYiLDddLFsiOWI4MSIsIlx1YzM0ZSIsMjUsIlx1YzM2YVx1'@; put 'YzM2Ylx1YzM2ZFx1YzM2ZVx1YzM2Zlx1YzM3MVx1YzM3MyIsNCwiXHVjMzdhXHVjMzdiXHVjMzdlIiw1LCJcdWMzODVcdWMzODZcdWMzODdcdWMzODlcdWMzOGFcdWMzOGJcdWMzOGQiLDUwLCJcdWMzYzEiLDIyLCJcdWMzZGEiXSxbIjljNDEiLCJcdWMzZGJcdWMzZGRcdWMzZGVcdWMzZTFc'@; put 'dWMzZTMiLDQsIlx1YzNlYVx1YzNlYlx1YzNlY1x1YzNlZSIsNSwiXHVjM2Y2XHVjM2Y3XHVjM2Y5Iiw1XSxbIjljNjEiLCJcdWMzZmYiLDgsIlx1YzQwOSIsNiwiXHVjNDExIiw5XSxbIjljODEiLCJcdWM0MWIiLDgsIlx1YzQyNSIsNiwiXHVjNDJkXHVjNDJlXHVjNDJmXHVjNDMxXHVjNDMy'@; put 'XHVjNDMzXHVjNDM1Iiw2LCJcdWM0M2UiLDksIlx1YzQ0OSIsMjYsIlx1YzQ2Nlx1YzQ2N1x1YzQ2OVx1YzQ2YVx1YzQ2Ylx1YzQ2ZCIsNiwiXHVjNDc2XHVjNDc3XHVjNDc4XHVjNDdhIiw1LCJcdWM0ODEiLDE4LCJcdWM0OTUiLDYsIlx1YzQ5ZCIsMTJdLFsiOWQ0MSIsIlx1YzRhYSIsMTMs'@; put 'Ilx1YzRiOVx1YzRiYVx1YzRiYlx1YzRiZCIsOF0sWyI5ZDYxIiwiXHVjNGM2IiwyNV0sWyI5ZDgxIiwiXHVjNGUwIiw4LCJcdWM0ZWEiLDUsIlx1YzRmMlx1YzRmM1x1YzRmNVx1YzRmNlx1YzRmN1x1YzRmOVx1YzRmYlx1YzRmY1x1YzRmZFx1YzRmZVx1YzUwMiIsOSwiXHVjNTBkXHVjNTBl'@; put 'XHVjNTBmXHVjNTExXHVjNTEyXHVjNTEzXHVjNTE1Iiw2LCJcdWM1MWQiLDEwLCJcdWM1MmFcdWM1MmJcdWM1MmRcdWM1MmVcdWM1MmZcdWM1MzEiLDYsIlx1YzUzYVx1YzUzY1x1YzUzZSIsNSwiXHVjNTQ2XHVjNTQ3XHVjNTRiXHVjNTRmXHVjNTUwXHVjNTUxXHVjNTUyXHVjNTU2XHVjNTVh'@; put 'XHVjNTViXHVjNTVjXHVjNTVmXHVjNTYyXHVjNTYzXHVjNTY1XHVjNTY2XHVjNTY3XHVjNTY5Iiw2LCJcdWM1NzJcdWM1NzYiLDUsIlx1YzU3ZVx1YzU3Zlx1YzU4MVx1YzU4Mlx1YzU4M1x1YzU4NVx1YzU4Nlx1YzU4OFx1YzU4OVx1YzU4YVx1YzU4Ylx1YzU4ZVx1YzU5MFx1YzU5Mlx1YzU5'@; put 'M1x1YzU5NCJdLFsiOWU0MSIsIlx1YzU5Nlx1YzU5OVx1YzU5YVx1YzU5Ylx1YzU5ZFx1YzU5ZVx1YzU5Zlx1YzVhMSIsNywiXHVjNWFhIiw5LCJcdWM1YjYiXSxbIjllNjEiLCJcdWM1YjdcdWM1YmFcdWM1YmYiLDQsIlx1YzVjYlx1YzVjZFx1YzVjZlx1YzVkMlx1YzVkM1x1YzVkNVx1YzVk'@; put 'Nlx1YzVkN1x1YzVkOSIsNiwiXHVjNWUyXHVjNWU0XHVjNWU2XHVjNWU3Il0sWyI5ZTgxIiwiXHVjNWU4XHVjNWU5XHVjNWVhXHVjNWViXHVjNWVmXHVjNWYxXHVjNWYyXHVjNWYzXHVjNWY1XHVjNWY4XHVjNWY5XHVjNWZhXHVjNWZiXHVjNjAyXHVjNjAzXHVjNjA0XHVjNjA5XHVjNjBhXHVj'@; put 'NjBiXHVjNjBkXHVjNjBlXHVjNjBmXHVjNjExIiw2LCJcdWM2MWFcdWM2MWQiLDYsIlx1YzYyNlx1YzYyN1x1YzYyOVx1YzYyYVx1YzYyYlx1YzYyZlx1YzYzMVx1YzYzMlx1YzYzNlx1YzYzOFx1YzYzYVx1YzYzY1x1YzYzZFx1YzYzZVx1YzYzZlx1YzY0Mlx1YzY0M1x1YzY0NVx1YzY0Nlx1'@; put 'YzY0N1x1YzY0OSIsNiwiXHVjNjUyXHVjNjU2Iiw1LCJcdWM2NWVcdWM2NWZcdWM2NjEiLDEwLCJcdWM2NmRcdWM2NmVcdWM2NzBcdWM2NzIiLDUsIlx1YzY3YVx1YzY3Ylx1YzY3ZFx1YzY3ZVx1YzY3Zlx1YzY4MSIsNiwiXHVjNjhhXHVjNjhjXHVjNjhlIiw1LCJcdWM2OTZcdWM2OTdcdWM2'@; put 'OTlcdWM2OWFcdWM2OWJcdWM2OWQiLDYsIlx1YzZhNiJdLFsiOWY0MSIsIlx1YzZhOFx1YzZhYSIsNSwiXHVjNmIyXHVjNmIzXHVjNmI1XHVjNmI2XHVjNmI3XHVjNmJiIiw0LCJcdWM2YzJcdWM2YzRcdWM2YzYiLDUsIlx1YzZjZSJdLFsiOWY2MSIsIlx1YzZjZlx1YzZkMVx1YzZkMlx1YzZk'@; put 'M1x1YzZkNSIsNiwiXHVjNmRlXHVjNmRmXHVjNmUyIiw1LCJcdWM2ZWFcdWM2ZWJcdWM2ZWRcdWM2ZWVcdWM2ZWZcdWM2ZjFcdWM2ZjIiXSxbIjlmODEiLCJcdWM2ZjMiLDQsIlx1YzZmYVx1YzZmYlx1YzZmY1x1YzZmZSIsNSwiXHVjNzA2XHVjNzA3XHVjNzA5XHVjNzBhXHVjNzBiXHVjNzBk'@; put 'Iiw2LCJcdWM3MTZcdWM3MThcdWM3MWEiLDUsIlx1YzcyMlx1YzcyM1x1YzcyNVx1YzcyNlx1YzcyN1x1YzcyOSIsNiwiXHVjNzMyXHVjNzM0XHVjNzM2XHVjNzM4XHVjNzM5XHVjNzNhXHVjNzNiXHVjNzNlXHVjNzNmXHVjNzQxXHVjNzQyXHVjNzQzXHVjNzQ1Iiw0LCJcdWM3NGJcdWM3NGVc'@; put 'dWM3NTBcdWM3NTlcdWM3NWFcdWM3NWJcdWM3NWRcdWM3NWVcdWM3NWZcdWM3NjEiLDYsIlx1Yzc2OVx1Yzc2YVx1Yzc2YyIsNywiXHVjNzc2XHVjNzc3XHVjNzc5XHVjNzdhXHVjNzdiXHVjNzdmXHVjNzgwXHVjNzgxXHVjNzgyXHVjNzg2XHVjNzhiXHVjNzhjXHVjNzhkXHVjNzhmXHVjNzky'@; put 'XHVjNzkzXHVjNzk1XHVjNzk5XHVjNzliIiw0LCJcdWM3YTJcdWM3YTciLDQsIlx1YzdhZVx1YzdhZlx1YzdiMVx1YzdiMlx1YzdiM1x1YzdiNVx1YzdiNlx1YzdiNyJdLFsiYTA0MSIsIlx1YzdiOFx1YzdiOVx1YzdiYVx1YzdiYlx1YzdiZVx1YzdjMiIsNSwiXHVjN2NhXHVjN2NiXHVjN2Nk'@; put 'XHVjN2NmXHVjN2QxIiw2LCJcdWM3ZDlcdWM3ZGFcdWM3ZGJcdWM3ZGMiXSxbImEwNjEiLCJcdWM3ZGUiLDUsIlx1YzdlNVx1YzdlNlx1YzdlN1x1YzdlOVx1YzdlYVx1YzdlYlx1YzdlZCIsMTNdLFsiYTA4MSIsIlx1YzdmYiIsNCwiXHVjODAyXHVjODAzXHVjODA1XHVjODA2XHVjODA3XHVj'@; put 'ODA5XHVjODBiIiw0LCJcdWM4MTJcdWM4MTRcdWM4MTciLDQsIlx1YzgxZVx1YzgxZlx1YzgyMVx1YzgyMlx1YzgyM1x1YzgyNSIsNiwiXHVjODJlXHVjODMwXHVjODMyIiw1LCJcdWM4MzlcdWM4M2FcdWM4M2JcdWM4M2RcdWM4M2VcdWM4M2ZcdWM4NDEiLDYsIlx1Yzg0YVx1Yzg0Ylx1Yzg0'@; put 'ZSIsNSwiXHVjODU1IiwyNiwiXHVjODcyXHVjODczXHVjODc1XHVjODc2XHVjODc3XHVjODc5XHVjODdiIiw0LCJcdWM4ODJcdWM4ODRcdWM4ODhcdWM4ODlcdWM4OGFcdWM4OGUiLDUsIlx1Yzg5NSIsNywiXHVjODllXHVjOGEwXHVjOGEyXHVjOGEzXHVjOGE0Il0sWyJhMTQxIiwiXHVjOGE1'@; put 'XHVjOGE2XHVjOGE3XHVjOGE5IiwxOCwiXHVjOGJlXHVjOGJmXHVjOGMwXHVjOGMxIl0sWyJhMTYxIiwiXHVjOGMyXHVjOGMzXHVjOGM1XHVjOGM2XHVjOGM3XHVjOGM5XHVjOGNhXHVjOGNiXHVjOGNkIiw2LCJcdWM4ZDZcdWM4ZDhcdWM4ZGEiLDUsIlx1YzhlMlx1YzhlM1x1YzhlNSJdLFsi'@; put 'YTE4MSIsIlx1YzhlNiIsMTQsIlx1YzhmNiIsNSwiXHVjOGZlXHVjOGZmXHVjOTAxXHVjOTAyXHVjOTAzXHVjOTA3Iiw0LCJcdWM5MGVcdTMwMDBcdTMwMDFcdTMwMDJceGI3XHUyMDI1XHUyMDI2XHhhOFx1MzAwM1x4YWRcdTIwMTVcdTIyMjVcdWZmM2NcdTIyM2NcdTIwMThcdTIwMTlcdTIw'@; put 'MWNcdTIwMWRcdTMwMTRcdTMwMTVcdTMwMDgiLDksIlx4YjFceGQ3XHhmN1x1MjI2MFx1MjI2NFx1MjI2NVx1MjIxZVx1MjIzNFx4YjBcdTIwMzJcdTIwMzNcdTIxMDNcdTIxMmJcdWZmZTBcdWZmZTFcdWZmZTVcdTI2NDJcdTI2NDBcdTIyMjBcdTIyYTVcdTIzMTJcdTIyMDJcdTIyMDdcdTIy'@; put 'NjFcdTIyNTJceGE3XHUyMDNiXHUyNjA2XHUyNjA1XHUyNWNiXHUyNWNmXHUyNWNlXHUyNWM3XHUyNWM2XHUyNWExXHUyNWEwXHUyNWIzXHUyNWIyXHUyNWJkXHUyNWJjXHUyMTkyXHUyMTkwXHUyMTkxXHUyMTkzXHUyMTk0XHUzMDEzXHUyMjZhXHUyMjZiXHUyMjFhXHUyMjNkXHUyMjFkXHUy'@; put 'MjM1XHUyMjJiXHUyMjJjXHUyMjA4XHUyMjBiXHUyMjg2XHUyMjg3XHUyMjgyXHUyMjgzXHUyMjJhXHUyMjI5XHUyMjI3XHUyMjI4XHVmZmUyIl0sWyJhMjQxIiwiXHVjOTEwXHVjOTEyIiw1LCJcdWM5MTkiLDE4XSxbImEyNjEiLCJcdWM5MmQiLDYsIlx1YzkzNSIsMThdLFsiYTI4MSIsIlx1'@; put 'Yzk0OCIsNywiXHVjOTUyXHVjOTUzXHVjOTU1XHVjOTU2XHVjOTU3XHVjOTU5Iiw2LCJcdWM5NjJcdWM5NjQiLDcsIlx1Yzk2ZFx1Yzk2ZVx1Yzk2Zlx1MjFkMlx1MjFkNFx1MjIwMFx1MjIwM1x4YjRcdWZmNWVcdTAyYzdcdTAyZDhcdTAyZGRcdTAyZGFcdTAyZDlceGI4XHUwMmRiXHhhMVx4'@; put 'YmZcdTAyZDBcdTIyMmVcdTIyMTFcdTIyMGZceGE0XHUyMTA5XHUyMDMwXHUyNWMxXHUyNWMwXHUyNWI3XHUyNWI2XHUyNjY0XHUyNjYwXHUyNjYxXHUyNjY1XHUyNjY3XHUyNjYzXHUyMjk5XHUyNWM4XHUyNWEzXHUyNWQwXHUyNWQxXHUyNTkyXHUyNWE0XHUyNWE1XHUyNWE4XHUyNWE3XHUy'@; put 'NWE2XHUyNWE5XHUyNjY4XHUyNjBmXHUyNjBlXHUyNjFjXHUyNjFlXHhiNlx1MjAyMFx1MjAyMVx1MjE5NVx1MjE5N1x1MjE5OVx1MjE5Nlx1MjE5OFx1MjY2ZFx1MjY2OVx1MjY2YVx1MjY2Y1x1MzI3Zlx1MzIxY1x1MjExNlx1MzNjN1x1MjEyMlx1MzNjMlx1MzNkOFx1MjEyMVx1MjBhY1x4'@; put 'YWUiXSxbImEzNDEiLCJcdWM5NzFcdWM5NzJcdWM5NzNcdWM5NzUiLDYsIlx1Yzk3ZCIsMTAsIlx1Yzk4YVx1Yzk4Ylx1Yzk4ZFx1Yzk4ZVx1Yzk4ZiJdLFsiYTM2MSIsIlx1Yzk5MSIsNiwiXHVjOTlhXHVjOTljXHVjOTllIiwxNl0sWyJhMzgxIiwiXHVjOWFmIiwxNiwiXHVjOWMyXHVjOWMz'@; put 'XHVjOWM1XHVjOWM2XHVjOWM5XHVjOWNiIiw0LCJcdWM5ZDJcdWM5ZDRcdWM5ZDdcdWM5ZDhcdWM5ZGJcdWZmMDEiLDU4LCJcdWZmZTZcdWZmM2QiLDMyLCJcdWZmZTMiXSxbImE0NDEiLCJcdWM5ZGVcdWM5ZGZcdWM5ZTFcdWM5ZTNcdWM5ZTVcdWM5ZTZcdWM5ZThcdWM5ZTlcdWM5ZWFcdWM5'@; put 'ZWJcdWM5ZWVcdWM5ZjIiLDUsIlx1YzlmYVx1YzlmYlx1YzlmZFx1YzlmZVx1YzlmZlx1Y2EwMVx1Y2EwMlx1Y2EwM1x1Y2EwNCJdLFsiYTQ2MSIsIlx1Y2EwNVx1Y2EwNlx1Y2EwN1x1Y2EwYVx1Y2EwZSIsNSwiXHVjYTE1XHVjYTE2XHVjYTE3XHVjYTE5IiwxMl0sWyJhNDgxIiwiXHVjYTI2'@; put 'XHVjYTI3XHVjYTI4XHVjYTJhIiwyOCwiXHUzMTMxIiw5M10sWyJhNTQxIiwiXHVjYTQ3Iiw0LCJcdWNhNGVcdWNhNGZcdWNhNTFcdWNhNTJcdWNhNTNcdWNhNTUiLDYsIlx1Y2E1ZVx1Y2E2MiIsNSwiXHVjYTY5XHVjYTZhIl0sWyJhNTYxIiwiXHVjYTZiIiwxNywiXHVjYTdlIiw1LCJcdWNh'@; put 'ODVcdWNhODYiXSxbImE1ODEiLCJcdWNhODciLDE2LCJcdWNhOTkiLDE0LCJcdTIxNzAiLDldLFsiYTViMCIsIlx1MjE2MCIsOV0sWyJhNWMxIiwiXHUwMzkxIiwxNiwiXHUwM2EzIiw2XSxbImE1ZTEiLCJcdTAzYjEiLDE2LCJcdTAzYzMiLDZdLFsiYTY0MSIsIlx1Y2FhOCIsMTksIlx1Y2Fi'@; put 'ZVx1Y2FiZlx1Y2FjMVx1Y2FjMlx1Y2FjM1x1Y2FjNSJdLFsiYTY2MSIsIlx1Y2FjNiIsNSwiXHVjYWNlXHVjYWQwXHVjYWQyXHVjYWQ0XHVjYWQ1XHVjYWQ2XHVjYWQ3XHVjYWRhIiw1LCJcdWNhZTEiLDZdLFsiYTY4MSIsIlx1Y2FlOFx1Y2FlOVx1Y2FlYVx1Y2FlYlx1Y2FlZCIsNiwiXHVj'@; put 'YWY1IiwxOCwiXHVjYjA5XHVjYjBhXHUyNTAwXHUyNTAyXHUyNTBjXHUyNTEwXHUyNTE4XHUyNTE0XHUyNTFjXHUyNTJjXHUyNTI0XHUyNTM0XHUyNTNjXHUyNTAxXHUyNTAzXHUyNTBmXHUyNTEzXHUyNTFiXHUyNTE3XHUyNTIzXHUyNTMzXHUyNTJiXHUyNTNiXHUyNTRiXHUyNTIwXHUyNTJm'@; put 'XHUyNTI4XHUyNTM3XHUyNTNmXHUyNTFkXHUyNTMwXHUyNTI1XHUyNTM4XHUyNTQyXHUyNTEyXHUyNTExXHUyNTFhXHUyNTE5XHUyNTE2XHUyNTE1XHUyNTBlXHUyNTBkXHUyNTFlXHUyNTFmXHUyNTIxXHUyNTIyXHUyNTI2XHUyNTI3XHUyNTI5XHUyNTJhXHUyNTJkXHUyNTJlXHUyNTMxXHUy'@; put 'NTMyXHUyNTM1XHUyNTM2XHUyNTM5XHUyNTNhXHUyNTNkXHUyNTNlXHUyNTQwXHUyNTQxXHUyNTQzIiw3XSxbImE3NDEiLCJcdWNiMGIiLDQsIlx1Y2IxMVx1Y2IxMlx1Y2IxM1x1Y2IxNVx1Y2IxNlx1Y2IxN1x1Y2IxOSIsNiwiXHVjYjIyIiw3XSxbImE3NjEiLCJcdWNiMmEiLDIyLCJcdWNi'@; put 'NDJcdWNiNDNcdWNiNDQiXSxbImE3ODEiLCJcdWNiNDVcdWNiNDZcdWNiNDdcdWNiNGFcdWNiNGJcdWNiNGRcdWNiNGVcdWNiNGZcdWNiNTEiLDYsIlx1Y2I1YVx1Y2I1Ylx1Y2I1Y1x1Y2I1ZSIsNSwiXHVjYjY1Iiw3LCJcdTMzOTVcdTMzOTZcdTMzOTdcdTIxMTNcdTMzOThcdTMzYzRcdTMz'@; put 'YTNcdTMzYTRcdTMzYTVcdTMzYTZcdTMzOTkiLDksIlx1MzNjYVx1MzM4ZFx1MzM4ZVx1MzM4Zlx1MzNjZlx1MzM4OFx1MzM4OVx1MzNjOFx1MzNhN1x1MzNhOFx1MzNiMCIsOSwiXHUzMzgwIiw0LCJcdTMzYmEiLDUsIlx1MzM5MCIsNCwiXHUyMTI2XHUzM2MwXHUzM2MxXHUzMzhhXHUzMzhi'@; put 'XHUzMzhjXHUzM2Q2XHUzM2M1XHUzM2FkXHUzM2FlXHUzM2FmXHUzM2RiXHUzM2E5XHUzM2FhXHUzM2FiXHUzM2FjXHUzM2RkXHUzM2QwXHUzM2QzXHUzM2MzXHUzM2M5XHUzM2RjXHUzM2M2Il0sWyJhODQxIiwiXHVjYjZkIiwxMCwiXHVjYjdhIiwxNF0sWyJhODYxIiwiXHVjYjg5IiwxOCwi'@; put 'XHVjYjlkIiw2XSxbImE4ODEiLCJcdWNiYTQiLDE5LCJcdWNiYjkiLDExLCJceGM2XHhkMFx4YWFcdTAxMjYiXSxbImE4YTYiLCJcdTAxMzIiXSxbImE4YTgiLCJcdTAxM2ZcdTAxNDFceGQ4XHUwMTUyXHhiYVx4ZGVcdTAxNjZcdTAxNGEiXSxbImE4YjEiLCJcdTMyNjAiLDI3LCJcdTI0ZDAi'@; put 'LDI1LCJcdTI0NjAiLDE0LCJceGJkXHUyMTUzXHUyMTU0XHhiY1x4YmVcdTIxNWJcdTIxNWNcdTIxNWRcdTIxNWUiXSxbImE5NDEiLCJcdWNiYzUiLDE0LCJcdWNiZDUiLDEwXSxbImE5NjEiLCJcdWNiZTBcdWNiZTFcdWNiZTJcdWNiZTNcdWNiZTVcdWNiZTZcdWNiZThcdWNiZWEiLDE4XSxb'@; put 'ImE5ODEiLCJcdWNiZmQiLDE0LCJcdWNjMGVcdWNjMGZcdWNjMTFcdWNjMTJcdWNjMTNcdWNjMTUiLDYsIlx1Y2MxZVx1Y2MxZlx1Y2MyMFx1Y2MyM1x1Y2MyNFx4ZTZcdTAxMTFceGYwXHUwMTI3XHUwMTMxXHUwMTMzXHUwMTM4XHUwMTQwXHUwMTQyXHhmOFx1MDE1M1x4ZGZceGZlXHUwMTY3'@; put 'XHUwMTRiXHUwMTQ5XHUzMjAwIiwyNywiXHUyNDljIiwyNSwiXHUyNDc0IiwxNCwiXHhiOVx4YjJceGIzXHUyMDc0XHUyMDdmXHUyMDgxXHUyMDgyXHUyMDgzXHUyMDg0Il0sWyJhYTQxIiwiXHVjYzI1XHVjYzI2XHVjYzJhXHVjYzJiXHVjYzJkXHVjYzJmXHVjYzMxIiw2LCJcdWNjM2FcdWNj'@; put 'M2YiLDQsIlx1Y2M0Nlx1Y2M0N1x1Y2M0OVx1Y2M0YVx1Y2M0Ylx1Y2M0ZFx1Y2M0ZSJdLFsiYWE2MSIsIlx1Y2M0ZiIsNCwiXHVjYzU2XHVjYzVhIiw1LCJcdWNjNjFcdWNjNjJcdWNjNjNcdWNjNjVcdWNjNjdcdWNjNjkiLDYsIlx1Y2M3MVx1Y2M3MiJdLFsiYWE4MSIsIlx1Y2M3M1x1Y2M3'@; put 'NFx1Y2M3NiIsMjksIlx1MzA0MSIsODJdLFsiYWI0MSIsIlx1Y2M5NFx1Y2M5NVx1Y2M5Nlx1Y2M5N1x1Y2M5YVx1Y2M5Ylx1Y2M5ZFx1Y2M5ZVx1Y2M5Zlx1Y2NhMSIsNiwiXHVjY2FhXHVjY2FlIiw1LCJcdWNjYjZcdWNjYjdcdWNjYjkiXSxbImFiNjEiLCJcdWNjYmFcdWNjYmJcdWNjYmQi'@; put 'LDYsIlx1Y2NjNlx1Y2NjOFx1Y2NjYSIsNSwiXHVjY2QxXHVjY2QyXHVjY2QzXHVjY2Q1Iiw1XSxbImFiODEiLCJcdWNjZGIiLDgsIlx1Y2NlNSIsNiwiXHVjY2VkXHVjY2VlXHVjY2VmXHVjY2YxIiwxMiwiXHUzMGExIiw4NV0sWyJhYzQxIiwiXHVjY2ZlXHVjY2ZmXHVjZDAwXHVjZDAyIiw1'@; put 'LCJcdWNkMGFcdWNkMGJcdWNkMGRcdWNkMGVcdWNkMGZcdWNkMTEiLDYsIlx1Y2QxYVx1Y2QxY1x1Y2QxZVx1Y2QxZlx1Y2QyMCJdLFsiYWM2MSIsIlx1Y2QyMVx1Y2QyMlx1Y2QyM1x1Y2QyNVx1Y2QyNlx1Y2QyN1x1Y2QyOVx1Y2QyYVx1Y2QyYlx1Y2QyZCIsMTEsIlx1Y2QzYSIsNF0sWyJh'@; put 'YzgxIiwiXHVjZDNmIiwyOCwiXHVjZDVkXHVjZDVlXHVjZDVmXHUwNDEwIiw1LCJcdTA0MDFcdTA0MTYiLDI1XSxbImFjZDEiLCJcdTA0MzAiLDUsIlx1MDQ1MVx1MDQzNiIsMjVdLFsiYWQ0MSIsIlx1Y2Q2MVx1Y2Q2Mlx1Y2Q2M1x1Y2Q2NSIsNiwiXHVjZDZlXHVjZDcwXHVjZDcyIiw1LCJc'@; put 'dWNkNzkiLDddLFsiYWQ2MSIsIlx1Y2Q4MSIsNiwiXHVjZDg5IiwxMCwiXHVjZDk2XHVjZDk3XHVjZDk5XHVjZDlhXHVjZDliXHVjZDlkXHVjZDllXHVjZDlmIl0sWyJhZDgxIiwiXHVjZGEwXHVjZGExXHVjZGEyXHVjZGEzXHVjZGE2XHVjZGE4XHVjZGFhIiw1LCJcdWNkYjEiLDE4LCJcdWNk'@; put 'YzUiXSxbImFlNDEiLCJcdWNkYzYiLDUsIlx1Y2RjZFx1Y2RjZVx1Y2RjZlx1Y2RkMSIsMTZdLFsiYWU2MSIsIlx1Y2RlMiIsNSwiXHVjZGU5XHVjZGVhXHVjZGViXHVjZGVkXHVjZGVlXHVjZGVmXHVjZGYxIiw2LCJcdWNkZmFcdWNkZmNcdWNkZmUiLDRdLFsiYWU4MSIsIlx1Y2UwM1x1Y2Uw'@; put 'NVx1Y2UwNlx1Y2UwN1x1Y2UwOVx1Y2UwYVx1Y2UwYlx1Y2UwZCIsNiwiXHVjZTE1XHVjZTE2XHVjZTE3XHVjZTE4XHVjZTFhIiw1LCJcdWNlMjJcdWNlMjNcdWNlMjVcdWNlMjZcdWNlMjdcdWNlMjlcdWNlMmFcdWNlMmIiXSxbImFmNDEiLCJcdWNlMmNcdWNlMmRcdWNlMmVcdWNlMmZcdWNl'@; put 'MzJcdWNlMzRcdWNlMzYiLDE5XSxbImFmNjEiLCJcdWNlNGEiLDEzLCJcdWNlNWFcdWNlNWJcdWNlNWRcdWNlNWVcdWNlNjIiLDUsIlx1Y2U2YVx1Y2U2YyJdLFsiYWY4MSIsIlx1Y2U2ZSIsNSwiXHVjZTc2XHVjZTc3XHVjZTc5XHVjZTdhXHVjZTdiXHVjZTdkIiw2LCJcdWNlODZcdWNlODhc'@; put 'dWNlOGEiLDUsIlx1Y2U5Mlx1Y2U5M1x1Y2U5NVx1Y2U5Nlx1Y2U5N1x1Y2U5OSJdLFsiYjA0MSIsIlx1Y2U5YSIsNSwiXHVjZWEyXHVjZWE2Iiw1LCJcdWNlYWUiLDEyXSxbImIwNjEiLCJcdWNlYmIiLDUsIlx1Y2VjMiIsMTldLFsiYjA4MSIsIlx1Y2VkNiIsMTMsIlx1Y2VlNlx1Y2VlN1x1'@; put 'Y2VlOVx1Y2VlYVx1Y2VlZCIsNiwiXHVjZWY2XHVjZWZhIiw1LCJcdWFjMDBcdWFjMDFcdWFjMDRcdWFjMDdcdWFjMDhcdWFjMDlcdWFjMGFcdWFjMTAiLDcsIlx1YWMxOSIsNCwiXHVhYzIwXHVhYzI0XHVhYzJjXHVhYzJkXHVhYzJmXHVhYzMwXHVhYzMxXHVhYzM4XHVhYzM5XHVhYzNjXHVh'@; put 'YzQwXHVhYzRiXHVhYzRkXHVhYzU0XHVhYzU4XHVhYzVjXHVhYzcwXHVhYzcxXHVhYzc0XHVhYzc3XHVhYzc4XHVhYzdhXHVhYzgwXHVhYzgxXHVhYzgzXHVhYzg0XHVhYzg1XHVhYzg2XHVhYzg5XHVhYzhhXHVhYzhiXHVhYzhjXHVhYzkwXHVhYzk0XHVhYzljXHVhYzlkXHVhYzlmXHVhY2Ew'@; put 'XHVhY2ExXHVhY2E4XHVhY2E5XHVhY2FhXHVhY2FjXHVhY2FmXHVhY2IwXHVhY2I4XHVhY2I5XHVhY2JiXHVhY2JjXHVhY2JkXHVhY2MxXHVhY2M0XHVhY2M4XHVhY2NjXHVhY2Q1XHVhY2Q3XHVhY2UwXHVhY2UxXHVhY2U0XHVhY2U3XHVhY2U4XHVhY2VhXHVhY2VjXHVhY2VmXHVhY2YwXHVh'@; put 'Y2YxXHVhY2YzXHVhY2Y1XHVhY2Y2XHVhY2ZjXHVhY2ZkXHVhZDAwXHVhZDA0XHVhZDA2Il0sWyJiMTQxIiwiXHVjZjAyXHVjZjAzXHVjZjA1XHVjZjA2XHVjZjA3XHVjZjA5Iiw2LCJcdWNmMTJcdWNmMTRcdWNmMTYiLDUsIlx1Y2YxZFx1Y2YxZVx1Y2YxZlx1Y2YyMVx1Y2YyMlx1Y2YyMyJd'@; put 'LFsiYjE2MSIsIlx1Y2YyNSIsNiwiXHVjZjJlXHVjZjMyIiw1LCJcdWNmMzkiLDExXSxbImIxODEiLCJcdWNmNDUiLDE0LCJcdWNmNTZcdWNmNTdcdWNmNTlcdWNmNWFcdWNmNWJcdWNmNWQiLDYsIlx1Y2Y2Nlx1Y2Y2OFx1Y2Y2YVx1Y2Y2Ylx1Y2Y2Y1x1YWQwY1x1YWQwZFx1YWQwZlx1YWQx'@; put 'MVx1YWQxOFx1YWQxY1x1YWQyMFx1YWQyOVx1YWQyY1x1YWQyZFx1YWQzNFx1YWQzNVx1YWQzOFx1YWQzY1x1YWQ0NFx1YWQ0NVx1YWQ0N1x1YWQ0OVx1YWQ1MFx1YWQ1NFx1YWQ1OFx1YWQ2MVx1YWQ2M1x1YWQ2Y1x1YWQ2ZFx1YWQ3MFx1YWQ3M1x1YWQ3NFx1YWQ3NVx1YWQ3Nlx1YWQ3Ylx1'@; put 'YWQ3Y1x1YWQ3ZFx1YWQ3Zlx1YWQ4MVx1YWQ4Mlx1YWQ4OFx1YWQ4OVx1YWQ4Y1x1YWQ5MFx1YWQ5Y1x1YWQ5ZFx1YWRhNFx1YWRiN1x1YWRjMFx1YWRjMVx1YWRjNFx1YWRjOFx1YWRkMFx1YWRkMVx1YWRkM1x1YWRkY1x1YWRlMFx1YWRlNFx1YWRmOFx1YWRmOVx1YWRmY1x1YWRmZlx1YWUw'@; put 'MFx1YWUwMVx1YWUwOFx1YWUwOVx1YWUwYlx1YWUwZFx1YWUxNFx1YWUzMFx1YWUzMVx1YWUzNFx1YWUzN1x1YWUzOFx1YWUzYVx1YWU0MFx1YWU0MVx1YWU0M1x1YWU0NVx1YWU0Nlx1YWU0YVx1YWU0Y1x1YWU0ZFx1YWU0ZVx1YWU1MFx1YWU1NFx1YWU1Nlx1YWU1Y1x1YWU1ZFx1YWU1Zlx1'@; put 'YWU2MFx1YWU2MVx1YWU2NVx1YWU2OFx1YWU2OVx1YWU2Y1x1YWU3MFx1YWU3OCJdLFsiYjI0MSIsIlx1Y2Y2ZFx1Y2Y2ZVx1Y2Y2Zlx1Y2Y3Mlx1Y2Y3M1x1Y2Y3NVx1Y2Y3Nlx1Y2Y3N1x1Y2Y3OSIsNiwiXHVjZjgxXHVjZjgyXHVjZjgzXHVjZjg0XHVjZjg2Iiw1LCJcdWNmOGQiXSxbImIy'@; put 'NjEiLCJcdWNmOGUiLDE4LCJcdWNmYTIiLDUsIlx1Y2ZhOSJdLFsiYjI4MSIsIlx1Y2ZhYSIsNSwiXHVjZmIxIiwxOCwiXHVjZmM1Iiw2LCJcdWFlNzlcdWFlN2JcdWFlN2NcdWFlN2RcdWFlODRcdWFlODVcdWFlOGNcdWFlYmNcdWFlYmRcdWFlYmVcdWFlYzBcdWFlYzRcdWFlY2NcdWFlY2Rc'@; put 'dWFlY2ZcdWFlZDBcdWFlZDFcdWFlZDhcdWFlZDlcdWFlZGNcdWFlZThcdWFlZWJcdWFlZWRcdWFlZjRcdWFlZjhcdWFlZmNcdWFmMDdcdWFmMDhcdWFmMGRcdWFmMTBcdWFmMmNcdWFmMmRcdWFmMzBcdWFmMzJcdWFmMzRcdWFmM2NcdWFmM2RcdWFmM2ZcdWFmNDFcdWFmNDJcdWFmNDNcdWFm'@; put 'NDhcdWFmNDlcdWFmNTBcdWFmNWNcdWFmNWRcdWFmNjRcdWFmNjVcdWFmNzlcdWFmODBcdWFmODRcdWFmODhcdWFmOTBcdWFmOTFcdWFmOTVcdWFmOWNcdWFmYjhcdWFmYjlcdWFmYmNcdWFmYzBcdWFmYzdcdWFmYzhcdWFmYzlcdWFmY2JcdWFmY2RcdWFmY2VcdWFmZDRcdWFmZGNcdWFmZThc'@; put 'dWFmZTlcdWFmZjBcdWFmZjFcdWFmZjRcdWFmZjhcdWIwMDBcdWIwMDFcdWIwMDRcdWIwMGNcdWIwMTBcdWIwMTRcdWIwMWNcdWIwMWRcdWIwMjhcdWIwNDRcdWIwNDVcdWIwNDhcdWIwNGFcdWIwNGNcdWIwNGVcdWIwNTNcdWIwNTRcdWIwNTVcdWIwNTdcdWIwNTkiXSxbImIzNDEiLCJcdWNm'@; put 'Y2MiLDE5LCJcdWNmZTJcdWNmZTNcdWNmZTVcdWNmZTZcdWNmZTdcdWNmZTkiXSxbImIzNjEiLCJcdWNmZWEiLDUsIlx1Y2ZmMlx1Y2ZmNFx1Y2ZmNiIsNSwiXHVjZmZkXHVjZmZlXHVjZmZmXHVkMDAxXHVkMDAyXHVkMDAzXHVkMDA1Iiw1XSxbImIzODEiLCJcdWQwMGIiLDUsIlx1ZDAxMiIs'@; put 'NSwiXHVkMDE5IiwxOSwiXHViMDVkXHViMDdjXHViMDdkXHViMDgwXHViMDg0XHViMDhjXHViMDhkXHViMDhmXHViMDkxXHViMDk4XHViMDk5XHViMDlhXHViMDljXHViMDlmXHViMGEwXHViMGExXHViMGEyXHViMGE4XHViMGE5XHViMGFiIiw0LCJcdWIwYjFcdWIwYjNcdWIwYjRcdWIwYjVc'@; put 'dWIwYjhcdWIwYmNcdWIwYzRcdWIwYzVcdWIwYzdcdWIwYzhcdWIwYzlcdWIwZDBcdWIwZDFcdWIwZDRcdWIwZDhcdWIwZTBcdWIwZTVcdWIxMDhcdWIxMDlcdWIxMGJcdWIxMGNcdWIxMTBcdWIxMTJcdWIxMTNcdWIxMThcdWIxMTlcdWIxMWJcdWIxMWNcdWIxMWRcdWIxMjNcdWIxMjRcdWIx'@; put 'MjVcdWIxMjhcdWIxMmNcdWIxMzRcdWIxMzVcdWIxMzdcdWIxMzhcdWIxMzlcdWIxNDBcdWIxNDFcdWIxNDRcdWIxNDhcdWIxNTBcdWIxNTFcdWIxNTRcdWIxNTVcdWIxNThcdWIxNWNcdWIxNjBcdWIxNzhcdWIxNzlcdWIxN2NcdWIxODBcdWIxODJcdWIxODhcdWIxODlcdWIxOGJcdWIxOGRc'@; put 'dWIxOTJcdWIxOTNcdWIxOTRcdWIxOThcdWIxOWNcdWIxYThcdWIxY2NcdWIxZDBcdWIxZDRcdWIxZGNcdWIxZGQiXSxbImI0NDEiLCJcdWQwMmUiLDUsIlx1ZDAzNlx1ZDAzN1x1ZDAzOVx1ZDAzYVx1ZDAzYlx1ZDAzZCIsNiwiXHVkMDQ2XHVkMDQ4XHVkMDRhIiw1XSxbImI0NjEiLCJcdWQw'@; put 'NTFcdWQwNTJcdWQwNTNcdWQwNTVcdWQwNTZcdWQwNTdcdWQwNTkiLDYsIlx1ZDA2MSIsMTAsIlx1ZDA2ZVx1ZDA2ZiJdLFsiYjQ4MSIsIlx1ZDA3MVx1ZDA3Mlx1ZDA3M1x1ZDA3NSIsNiwiXHVkMDdlXHVkMDdmXHVkMDgwXHVkMDgyIiwxOCwiXHViMWRmXHViMWU4XHViMWU5XHViMWVjXHVi'@; put 'MWYwXHViMWY5XHViMWZiXHViMWZkXHViMjA0XHViMjA1XHViMjA4XHViMjBiXHViMjBjXHViMjE0XHViMjE1XHViMjE3XHViMjE5XHViMjIwXHViMjM0XHViMjNjXHViMjU4XHViMjVjXHViMjYwXHViMjY4XHViMjY5XHViMjc0XHViMjc1XHViMjdjXHViMjg0XHViMjg1XHViMjg5XHViMjkw'@; put 'XHViMjkxXHViMjk0XHViMjk4XHViMjk5XHViMjlhXHViMmEwXHViMmExXHViMmEzXHViMmE1XHViMmE2XHViMmFhXHViMmFjXHViMmIwXHViMmI0XHViMmM4XHViMmM5XHViMmNjXHViMmQwXHViMmQyXHViMmQ4XHViMmQ5XHViMmRiXHViMmRkXHViMmUyXHViMmU0XHViMmU1XHViMmU2XHVi'@; put 'MmU4XHViMmViIiw0LCJcdWIyZjNcdWIyZjRcdWIyZjVcdWIyZjciLDQsIlx1YjJmZlx1YjMwMFx1YjMwMVx1YjMwNFx1YjMwOFx1YjMxMFx1YjMxMVx1YjMxM1x1YjMxNFx1YjMxNVx1YjMxY1x1YjM1NFx1YjM1NVx1YjM1Nlx1YjM1OFx1YjM1Ylx1YjM1Y1x1YjM1ZVx1YjM1Zlx1YjM2NFx1'@; put 'YjM2NSJdLFsiYjU0MSIsIlx1ZDA5NSIsMTQsIlx1ZDBhNlx1ZDBhN1x1ZDBhOVx1ZDBhYVx1ZDBhYlx1ZDBhZCIsNV0sWyJiNTYxIiwiXHVkMGIzXHVkMGI2XHVkMGI4XHVkMGJhIiw1LCJcdWQwYzJcdWQwYzNcdWQwYzVcdWQwYzZcdWQwYzdcdWQwY2EiLDUsIlx1ZDBkMlx1ZDBkNiIsNF0s'@; put 'WyJiNTgxIiwiXHVkMGRiXHVkMGRlXHVkMGRmXHVkMGUxXHVkMGUyXHVkMGUzXHVkMGU1Iiw2LCJcdWQwZWVcdWQwZjIiLDUsIlx1ZDBmOSIsMTEsIlx1YjM2N1x1YjM2OVx1YjM2Ylx1YjM2ZVx1YjM3MFx1YjM3MVx1YjM3NFx1YjM3OFx1YjM4MFx1YjM4MVx1YjM4M1x1YjM4NFx1YjM4NVx1'@; put 'YjM4Y1x1YjM5MFx1YjM5NFx1YjNhMFx1YjNhMVx1YjNhOFx1YjNhY1x1YjNjNFx1YjNjNVx1YjNjOFx1YjNjYlx1YjNjY1x1YjNjZVx1YjNkMFx1YjNkNFx1YjNkNVx1YjNkN1x1YjNkOVx1YjNkYlx1YjNkZFx1YjNlMFx1YjNlNFx1YjNlOFx1YjNmY1x1YjQxMFx1YjQxOFx1YjQxY1x1YjQy'@; put 'MFx1YjQyOFx1YjQyOVx1YjQyYlx1YjQzNFx1YjQ1MFx1YjQ1MVx1YjQ1NFx1YjQ1OFx1YjQ2MFx1YjQ2MVx1YjQ2M1x1YjQ2NVx1YjQ2Y1x1YjQ4MFx1YjQ4OFx1YjQ5ZFx1YjRhNFx1YjRhOFx1YjRhY1x1YjRiNVx1YjRiN1x1YjRiOVx1YjRjMFx1YjRjNFx1YjRjOFx1YjRkMFx1YjRkNVx1'@; put 'YjRkY1x1YjRkZFx1YjRlMFx1YjRlM1x1YjRlNFx1YjRlNlx1YjRlY1x1YjRlZFx1YjRlZlx1YjRmMVx1YjRmOFx1YjUxNFx1YjUxNVx1YjUxOFx1YjUxYlx1YjUxY1x1YjUyNFx1YjUyNVx1YjUyN1x1YjUyOFx1YjUyOVx1YjUyYVx1YjUzMFx1YjUzMVx1YjUzNFx1YjUzOCJdLFsiYjY0MSIs'@; put 'Ilx1ZDEwNSIsNywiXHVkMTBlIiwxN10sWyJiNjYxIiwiXHVkMTIwIiwxNSwiXHVkMTMyXHVkMTMzXHVkMTM1XHVkMTM2XHVkMTM3XHVkMTM5XHVkMTNiXHVkMTNjXHVkMTNkXHVkMTNlIl0sWyJiNjgxIiwiXHVkMTNmXHVkMTQyXHVkMTQ2Iiw1LCJcdWQxNGVcdWQxNGZcdWQxNTFcdWQxNTJc'@; put 'dWQxNTNcdWQxNTUiLDYsIlx1ZDE1ZVx1ZDE2MFx1ZDE2MiIsNSwiXHVkMTY5XHVkMTZhXHVkMTZiXHVkMTZkXHViNTQwXHViNTQxXHViNTQzXHViNTQ0XHViNTQ1XHViNTRiXHViNTRjXHViNTRkXHViNTUwXHViNTU0XHViNTVjXHViNTVkXHViNTVmXHViNTYwXHViNTYxXHViNWEwXHViNWEx'@; put 'XHViNWE0XHViNWE4XHViNWFhXHViNWFiXHViNWIwXHViNWIxXHViNWIzXHViNWI0XHViNWI1XHViNWJiXHViNWJjXHViNWJkXHViNWMwXHViNWM0XHViNWNjXHViNWNkXHViNWNmXHViNWQwXHViNWQxXHViNWQ4XHViNWVjXHViNjEwXHViNjExXHViNjE0XHViNjE4XHViNjI1XHViNjJjXHVi'@; put 'NjM0XHViNjQ4XHViNjY0XHViNjY4XHViNjljXHViNjlkXHViNmEwXHViNmE0XHViNmFiXHViNmFjXHViNmIxXHViNmQ0XHViNmYwXHViNmY0XHViNmY4XHViNzAwXHViNzAxXHViNzA1XHViNzI4XHViNzI5XHViNzJjXHViNzJmXHViNzMwXHViNzM4XHViNzM5XHViNzNiXHViNzQ0XHViNzQ4'@; put 'XHViNzRjXHViNzU0XHViNzU1XHViNzYwXHViNzY0XHViNzY4XHViNzcwXHViNzcxXHViNzczXHViNzc1XHViNzdjXHViNzdkXHViNzgwXHViNzg0XHViNzhjXHViNzhkXHViNzhmXHViNzkwXHViNzkxXHViNzkyXHViNzk2XHViNzk3Il0sWyJiNzQxIiwiXHVkMTZlIiwxMywiXHVkMTdkIiw2'@; put 'LCJcdWQxODVcdWQxODZcdWQxODdcdWQxODlcdWQxOGEiXSxbImI3NjEiLCJcdWQxOGIiLDIwLCJcdWQxYTJcdWQxYTNcdWQxYTVcdWQxYTZcdWQxYTciXSxbImI3ODEiLCJcdWQxYTkiLDYsIlx1ZDFiMlx1ZDFiNFx1ZDFiNlx1ZDFiN1x1ZDFiOFx1ZDFiOVx1ZDFiYlx1ZDFiZFx1ZDFiZVx1'@; put 'ZDFiZlx1ZDFjMSIsMTQsIlx1Yjc5OFx1Yjc5OVx1Yjc5Y1x1YjdhMFx1YjdhOFx1YjdhOVx1YjdhYlx1YjdhY1x1YjdhZFx1YjdiNFx1YjdiNVx1YjdiOFx1YjdjN1x1YjdjOVx1YjdlY1x1YjdlZFx1YjdmMFx1YjdmNFx1YjdmY1x1YjdmZFx1YjdmZlx1YjgwMFx1YjgwMVx1YjgwN1x1Yjgw'@; put 'OFx1YjgwOVx1YjgwY1x1YjgxMFx1YjgxOFx1YjgxOVx1YjgxYlx1YjgxZFx1YjgyNFx1YjgyNVx1YjgyOFx1YjgyY1x1YjgzNFx1YjgzNVx1YjgzN1x1YjgzOFx1YjgzOVx1Yjg0MFx1Yjg0NFx1Yjg1MVx1Yjg1M1x1Yjg1Y1x1Yjg1ZFx1Yjg2MFx1Yjg2NFx1Yjg2Y1x1Yjg2ZFx1Yjg2Zlx1'@; put 'Yjg3MVx1Yjg3OFx1Yjg3Y1x1Yjg4ZFx1YjhhOFx1YjhiMFx1YjhiNFx1YjhiOFx1YjhjMFx1YjhjMVx1YjhjM1x1YjhjNVx1YjhjY1x1YjhkMFx1YjhkNFx1YjhkZFx1YjhkZlx1YjhlMVx1YjhlOFx1YjhlOVx1YjhlY1x1YjhmMFx1YjhmOFx1YjhmOVx1YjhmYlx1YjhmZFx1YjkwNFx1Yjkx'@; put 'OFx1YjkyMFx1YjkzY1x1YjkzZFx1Yjk0MFx1Yjk0NFx1Yjk0Y1x1Yjk0Zlx1Yjk1MVx1Yjk1OFx1Yjk1OVx1Yjk1Y1x1Yjk2MFx1Yjk2OFx1Yjk2OSJdLFsiYjg0MSIsIlx1ZDFkMCIsNywiXHVkMWQ5IiwxN10sWyJiODYxIiwiXHVkMWViIiw4LCJcdWQxZjVcdWQxZjZcdWQxZjdcdWQxZjki'@; put 'LDEzXSxbImI4ODEiLCJcdWQyMDhcdWQyMGEiLDUsIlx1ZDIxMSIsMjQsIlx1Yjk2Ylx1Yjk2ZFx1Yjk3NFx1Yjk3NVx1Yjk3OFx1Yjk3Y1x1Yjk4NFx1Yjk4NVx1Yjk4N1x1Yjk4OVx1Yjk4YVx1Yjk4ZFx1Yjk4ZVx1YjlhY1x1YjlhZFx1YjliMFx1YjliNFx1YjliY1x1YjliZFx1YjliZlx1'@; put 'YjljMVx1YjljOFx1YjljOVx1YjljY1x1YjljZSIsNCwiXHViOWQ4XHViOWQ5XHViOWRiXHViOWRkXHViOWRlXHViOWUxXHViOWUzXHViOWU0XHViOWU1XHViOWU4XHViOWVjXHViOWY0XHViOWY1XHViOWY3XHViOWY4XHViOWY5XHViOWZhXHViYTAwXHViYTAxXHViYTA4XHViYTE1XHViYTM4'@; put 'XHViYTM5XHViYTNjXHViYTQwXHViYTQyXHViYTQ4XHViYTQ5XHViYTRiXHViYTRkXHViYTRlXHViYTUzXHViYTU0XHViYTU1XHViYTU4XHViYTVjXHViYTY0XHViYTY1XHViYTY3XHViYTY4XHViYTY5XHViYTcwXHViYTcxXHViYTc0XHViYTc4XHViYTgzXHViYTg0XHViYTg1XHViYTg3XHVi'@; put 'YThjXHViYWE4XHViYWE5XHViYWFiXHViYWFjXHViYWIwXHViYWIyXHViYWI4XHViYWI5XHViYWJiXHViYWJkXHViYWM0XHViYWM4XHViYWQ4XHViYWQ5XHViYWZjIl0sWyJiOTQxIiwiXHVkMjJhXHVkMjJiXHVkMjJlXHVkMjJmXHVkMjMxXHVkMjMyXHVkMjMzXHVkMjM1Iiw2LCJcdWQyM2Vc'@; put 'dWQyNDBcdWQyNDIiLDUsIlx1ZDI0OVx1ZDI0YVx1ZDI0Ylx1ZDI0YyJdLFsiYjk2MSIsIlx1ZDI0ZCIsMTQsIlx1ZDI1ZCIsNiwiXHVkMjY1XHVkMjY2XHVkMjY3XHVkMjY4Il0sWyJiOTgxIiwiXHVkMjY5IiwyMiwiXHVkMjgyXHVkMjgzXHVkMjg1XHVkMjg2XHVkMjg3XHVkMjg5XHVkMjhh'@; put 'XHVkMjhiXHVkMjhjXHViYjAwXHViYjA0XHViYjBkXHViYjBmXHViYjExXHViYjE4XHViYjFjXHViYjIwXHViYjI5XHViYjJiXHViYjM0XHViYjM1XHViYjM2XHViYjM4XHViYjNiXHViYjNjXHViYjNkXHViYjNlXHViYjQ0XHViYjQ1XHViYjQ3XHViYjQ5XHViYjRkXHViYjRmXHViYjUwXHVi'@; put 'YjU0XHViYjU4XHViYjYxXHViYjYzXHViYjZjXHViYjg4XHViYjhjXHViYjkwXHViYmE0XHViYmE4XHViYmFjXHViYmI0XHViYmI3XHViYmMwXHViYmM0XHViYmM4XHViYmQwXHViYmQzXHViYmY4XHViYmY5XHViYmZjXHViYmZmXHViYzAwXHViYzAyXHViYzA4XHViYzA5XHViYzBiXHViYzBj'@; put 'XHViYzBkXHViYzBmXHViYzExXHViYzE0Iiw0LCJcdWJjMWIiLDQsIlx1YmMyNFx1YmMyNVx1YmMyN1x1YmMyOVx1YmMyZFx1YmMzMFx1YmMzMVx1YmMzNFx1YmMzOFx1YmM0MFx1YmM0MVx1YmM0M1x1YmM0NFx1YmM0NVx1YmM0OVx1YmM0Y1x1YmM0ZFx1YmM1MFx1YmM1ZFx1YmM4NFx1YmM4'@; put 'NVx1YmM4OFx1YmM4Ylx1YmM4Y1x1YmM4ZVx1YmM5NFx1YmM5NVx1YmM5NyJdLFsiYmE0MSIsIlx1ZDI4ZFx1ZDI4ZVx1ZDI4Zlx1ZDI5Mlx1ZDI5M1x1ZDI5NFx1ZDI5NiIsNSwiXHVkMjlkXHVkMjllXHVkMjlmXHVkMmExXHVkMmEyXHVkMmEzXHVkMmE1Iiw2LCJcdWQyYWQiXSxbImJhNjEi'@; put 'LCJcdWQyYWVcdWQyYWZcdWQyYjBcdWQyYjIiLDUsIlx1ZDJiYVx1ZDJiYlx1ZDJiZFx1ZDJiZVx1ZDJjMVx1ZDJjMyIsNCwiXHVkMmNhXHVkMmNjIiw1XSxbImJhODEiLCJcdWQyZDJcdWQyZDNcdWQyZDVcdWQyZDZcdWQyZDdcdWQyZDlcdWQyZGFcdWQyZGJcdWQyZGQiLDYsIlx1ZDJlNiIs'@; put 'OSwiXHVkMmYyXHVkMmYzXHVkMmY1XHVkMmY2XHVkMmY3XHVkMmY5XHVkMmZhXHViYzk5XHViYzlhXHViY2EwXHViY2ExXHViY2E0XHViY2E3XHViY2E4XHViY2IwXHViY2IxXHViY2IzXHViY2I0XHViY2I1XHViY2JjXHViY2JkXHViY2MwXHViY2M0XHViY2NkXHViY2NmXHViY2QwXHViY2Qx'@; put 'XHViY2Q1XHViY2Q4XHViY2RjXHViY2Y0XHViY2Y1XHViY2Y2XHViY2Y4XHViY2ZjXHViZDA0XHViZDA1XHViZDA3XHViZDA5XHViZDEwXHViZDE0XHViZDI0XHViZDJjXHViZDQwXHViZDQ4XHViZDQ5XHViZDRjXHViZDUwXHViZDU4XHViZDU5XHViZDY0XHViZDY4XHViZDgwXHViZDgxXHVi'@; put 'ZDg0XHViZDg3XHViZDg4XHViZDg5XHViZDhhXHViZDkwXHViZDkxXHViZDkzXHViZDk1XHViZDk5XHViZDlhXHViZDljXHViZGE0XHViZGIwXHViZGI4XHViZGQ0XHViZGQ1XHViZGQ4XHViZGRjXHViZGU5XHViZGYwXHViZGY0XHViZGY4XHViZTAwXHViZTAzXHViZTA1XHViZTBjXHViZTBk'@; put 'XHViZTEwXHViZTE0XHViZTFjXHViZTFkXHViZTFmXHViZTQ0XHViZTQ1XHViZTQ4XHViZTRjXHViZTRlXHViZTU0XHViZTU1XHViZTU3XHViZTU5XHViZTVhXHViZTViXHViZTYwXHViZTYxXHViZTY0Il0sWyJiYjQxIiwiXHVkMmZiIiw0LCJcdWQzMDJcdWQzMDRcdWQzMDYiLDUsIlx1ZDMw'@; put 'Zlx1ZDMxMVx1ZDMxMlx1ZDMxM1x1ZDMxNVx1ZDMxNyIsNCwiXHVkMzFlXHVkMzIyXHVkMzIzIl0sWyJiYjYxIiwiXHVkMzI0XHVkMzI2XHVkMzI3XHVkMzJhXHVkMzJiXHVkMzJkXHVkMzJlXHVkMzJmXHVkMzMxIiw2LCJcdWQzM2FcdWQzM2UiLDUsIlx1ZDM0Nlx1ZDM0N1x1ZDM0OFx1ZDM0'@; put 'OSJdLFsiYmI4MSIsIlx1ZDM0YSIsMzEsIlx1YmU2OFx1YmU2YVx1YmU3MFx1YmU3MVx1YmU3M1x1YmU3NFx1YmU3NVx1YmU3Ylx1YmU3Y1x1YmU3ZFx1YmU4MFx1YmU4NFx1YmU4Y1x1YmU4ZFx1YmU4Zlx1YmU5MFx1YmU5MVx1YmU5OFx1YmU5OVx1YmVhOFx1YmVkMFx1YmVkMVx1YmVkNFx1'@; put 'YmVkN1x1YmVkOFx1YmVlMFx1YmVlM1x1YmVlNFx1YmVlNVx1YmVlY1x1YmYwMVx1YmYwOFx1YmYwOVx1YmYxOFx1YmYxOVx1YmYxYlx1YmYxY1x1YmYxZFx1YmY0MFx1YmY0MVx1YmY0NFx1YmY0OFx1YmY1MFx1YmY1MVx1YmY1NVx1YmY5NFx1YmZiMFx1YmZjNVx1YmZjY1x1YmZjZFx1YmZk'@; put 'MFx1YmZkNFx1YmZkY1x1YmZkZlx1YmZlMVx1YzAzY1x1YzA1MVx1YzA1OFx1YzA1Y1x1YzA2MFx1YzA2OFx1YzA2OVx1YzA5MFx1YzA5MVx1YzA5NFx1YzA5OFx1YzBhMFx1YzBhMVx1YzBhM1x1YzBhNVx1YzBhY1x1YzBhZFx1YzBhZlx1YzBiMFx1YzBiM1x1YzBiNFx1YzBiNVx1YzBiNlx1'@; put 'YzBiY1x1YzBiZFx1YzBiZlx1YzBjMFx1YzBjMVx1YzBjNVx1YzBjOFx1YzBjOVx1YzBjY1x1YzBkMFx1YzBkOFx1YzBkOVx1YzBkYlx1YzBkY1x1YzBkZFx1YzBlNCJdLFsiYmM0MSIsIlx1ZDM2YSIsMTcsIlx1ZDM3ZVx1ZDM3Zlx1ZDM4MVx1ZDM4Mlx1ZDM4M1x1ZDM4NVx1ZDM4Nlx1ZDM4'@; put 'NyJdLFsiYmM2MSIsIlx1ZDM4OFx1ZDM4OVx1ZDM4YVx1ZDM4Ylx1ZDM4ZVx1ZDM5MiIsNSwiXHVkMzlhXHVkMzliXHVkMzlkXHVkMzllXHVkMzlmXHVkM2ExIiw2LCJcdWQzYWFcdWQzYWNcdWQzYWUiXSxbImJjODEiLCJcdWQzYWYiLDQsIlx1ZDNiNVx1ZDNiNlx1ZDNiN1x1ZDNiOVx1ZDNi'@; put 'YVx1ZDNiYlx1ZDNiZCIsNiwiXHVkM2M2XHVkM2M3XHVkM2NhIiw1LCJcdWQzZDEiLDUsIlx1YzBlNVx1YzBlOFx1YzBlY1x1YzBmNFx1YzBmNVx1YzBmN1x1YzBmOVx1YzEwMFx1YzEwNFx1YzEwOFx1YzExMFx1YzExNVx1YzExYyIsNCwiXHVjMTIzXHVjMTI0XHVjMTI2XHVjMTI3XHVjMTJj'@; put 'XHVjMTJkXHVjMTJmXHVjMTMwXHVjMTMxXHVjMTM2XHVjMTM4XHVjMTM5XHVjMTNjXHVjMTQwXHVjMTQ4XHVjMTQ5XHVjMTRiXHVjMTRjXHVjMTRkXHVjMTU0XHVjMTU1XHVjMTU4XHVjMTVjXHVjMTY0XHVjMTY1XHVjMTY3XHVjMTY4XHVjMTY5XHVjMTcwXHVjMTc0XHVjMTc4XHVjMTg1XHVj'@; put 'MThjXHVjMThkXHVjMThlXHVjMTkwXHVjMTk0XHVjMTk2XHVjMTljXHVjMTlkXHVjMTlmXHVjMWExXHVjMWE1XHVjMWE4XHVjMWE5XHVjMWFjXHVjMWIwXHVjMWJkXHVjMWM0XHVjMWM4XHVjMWNjXHVjMWQ0XHVjMWQ3XHVjMWQ4XHVjMWUwXHVjMWU0XHVjMWU4XHVjMWYwXHVjMWYxXHVjMWYz'@; put 'XHVjMWZjXHVjMWZkXHVjMjAwXHVjMjA0XHVjMjBjXHVjMjBkXHVjMjBmXHVjMjExXHVjMjE4XHVjMjE5XHVjMjFjXHVjMjFmXHVjMjIwXHVjMjI4XHVjMjI5XHVjMjJiXHVjMjJkIl0sWyJiZDQxIiwiXHVkM2Q3XHVkM2Q5Iiw3LCJcdWQzZTJcdWQzZTQiLDcsIlx1ZDNlZVx1ZDNlZlx1ZDNm'@; put 'MVx1ZDNmMlx1ZDNmM1x1ZDNmNVx1ZDNmNlx1ZDNmNyJdLFsiYmQ2MSIsIlx1ZDNmOFx1ZDNmOVx1ZDNmYVx1ZDNmYlx1ZDNmZVx1ZDQwMFx1ZDQwMiIsNSwiXHVkNDA5IiwxM10sWyJiZDgxIiwiXHVkNDE3Iiw1LCJcdWQ0MWUiLDI1LCJcdWMyMmZcdWMyMzFcdWMyMzJcdWMyMzRcdWMyNDhc'@; put 'dWMyNTBcdWMyNTFcdWMyNTRcdWMyNThcdWMyNjBcdWMyNjVcdWMyNmNcdWMyNmRcdWMyNzBcdWMyNzRcdWMyN2NcdWMyN2RcdWMyN2ZcdWMyODFcdWMyODhcdWMyODlcdWMyOTBcdWMyOThcdWMyOWJcdWMyOWRcdWMyYTRcdWMyYTVcdWMyYThcdWMyYWNcdWMyYWRcdWMyYjRcdWMyYjVcdWMy'@; put 'YjdcdWMyYjlcdWMyZGNcdWMyZGRcdWMyZTBcdWMyZTNcdWMyZTRcdWMyZWJcdWMyZWNcdWMyZWRcdWMyZWZcdWMyZjFcdWMyZjZcdWMyZjhcdWMyZjlcdWMyZmJcdWMyZmNcdWMzMDBcdWMzMDhcdWMzMDlcdWMzMGNcdWMzMGRcdWMzMTNcdWMzMTRcdWMzMTVcdWMzMThcdWMzMWNcdWMzMjRc'@; put 'dWMzMjVcdWMzMjhcdWMzMjlcdWMzNDVcdWMzNjhcdWMzNjlcdWMzNmNcdWMzNzBcdWMzNzJcdWMzNzhcdWMzNzlcdWMzN2NcdWMzN2RcdWMzODRcdWMzODhcdWMzOGNcdWMzYzBcdWMzZDhcdWMzZDlcdWMzZGNcdWMzZGZcdWMzZTBcdWMzZTJcdWMzZThcdWMzZTlcdWMzZWRcdWMzZjRcdWMz'@; put 'ZjVcdWMzZjhcdWM0MDhcdWM0MTBcdWM0MjRcdWM0MmNcdWM0MzAiXSxbImJlNDEiLCJcdWQ0MzgiLDcsIlx1ZDQ0MVx1ZDQ0Mlx1ZDQ0M1x1ZDQ0NSIsMTRdLFsiYmU2MSIsIlx1ZDQ1NCIsNywiXHVkNDVkXHVkNDVlXHVkNDVmXHVkNDYxXHVkNDYyXHVkNDYzXHVkNDY1Iiw3LCJcdWQ0NmVc'@; put 'dWQ0NzBcdWQ0NzFcdWQ0NzIiXSxbImJlODEiLCJcdWQ0NzMiLDQsIlx1ZDQ3YVx1ZDQ3Ylx1ZDQ3ZFx1ZDQ3ZVx1ZDQ4MVx1ZDQ4MyIsNCwiXHVkNDhhXHVkNDhjXHVkNDhlIiw1LCJcdWQ0OTUiLDgsIlx1YzQzNFx1YzQzY1x1YzQzZFx1YzQ0OFx1YzQ2NFx1YzQ2NVx1YzQ2OFx1YzQ2Y1x1'@; put 'YzQ3NFx1YzQ3NVx1YzQ3OVx1YzQ4MFx1YzQ5NFx1YzQ5Y1x1YzRiOFx1YzRiY1x1YzRlOVx1YzRmMFx1YzRmMVx1YzRmNFx1YzRmOFx1YzRmYVx1YzRmZlx1YzUwMFx1YzUwMVx1YzUwY1x1YzUxMFx1YzUxNFx1YzUxY1x1YzUyOFx1YzUyOVx1YzUyY1x1YzUzMFx1YzUzOFx1YzUzOVx1YzUz'@; put 'Ylx1YzUzZFx1YzU0NFx1YzU0NVx1YzU0OFx1YzU0OVx1YzU0YVx1YzU0Y1x1YzU0ZFx1YzU0ZVx1YzU1M1x1YzU1NFx1YzU1NVx1YzU1N1x1YzU1OFx1YzU1OVx1YzU1ZFx1YzU1ZVx1YzU2MFx1YzU2MVx1YzU2NFx1YzU2OFx1YzU3MFx1YzU3MVx1YzU3M1x1YzU3NFx1YzU3NVx1YzU3Y1x1'@; put 'YzU3ZFx1YzU4MFx1YzU4NFx1YzU4N1x1YzU4Y1x1YzU4ZFx1YzU4Zlx1YzU5MVx1YzU5NVx1YzU5N1x1YzU5OFx1YzU5Y1x1YzVhMFx1YzVhOVx1YzViNFx1YzViNVx1YzViOFx1YzViOVx1YzViYlx1YzViY1x1YzViZFx1YzViZVx1YzVjNCIsNiwiXHVjNWNjXHVjNWNlIl0sWyJiZjQxIiwi'@; put 'XHVkNDllIiwxMCwiXHVkNGFhIiwxNF0sWyJiZjYxIiwiXHVkNGI5IiwxOCwiXHVkNGNkXHVkNGNlXHVkNGNmXHVkNGQxXHVkNGQyXHVkNGQzXHVkNGQ1Il0sWyJiZjgxIiwiXHVkNGQ2Iiw1LCJcdWQ0ZGRcdWQ0ZGVcdWQ0ZTAiLDcsIlx1ZDRlOVx1ZDRlYVx1ZDRlYlx1ZDRlZFx1ZDRlZVx1'@; put 'ZDRlZlx1ZDRmMSIsNiwiXHVkNGY5XHVkNGZhXHVkNGZjXHVjNWQwXHVjNWQxXHVjNWQ0XHVjNWQ4XHVjNWUwXHVjNWUxXHVjNWUzXHVjNWU1XHVjNWVjXHVjNWVkXHVjNWVlXHVjNWYwXHVjNWY0XHVjNWY2XHVjNWY3XHVjNWZjIiw1LCJcdWM2MDVcdWM2MDZcdWM2MDdcdWM2MDhcdWM2MGNc'@; put 'dWM2MTBcdWM2MThcdWM2MTlcdWM2MWJcdWM2MWNcdWM2MjRcdWM2MjVcdWM2MjhcdWM2MmNcdWM2MmRcdWM2MmVcdWM2MzBcdWM2MzNcdWM2MzRcdWM2MzVcdWM2MzdcdWM2MzlcdWM2M2JcdWM2NDBcdWM2NDFcdWM2NDRcdWM2NDhcdWM2NTBcdWM2NTFcdWM2NTNcdWM2NTRcdWM2NTVcdWM2'@; put 'NWNcdWM2NWRcdWM2NjBcdWM2NmNcdWM2NmZcdWM2NzFcdWM2NzhcdWM2NzlcdWM2N2NcdWM2ODBcdWM2ODhcdWM2ODlcdWM2OGJcdWM2OGRcdWM2OTRcdWM2OTVcdWM2OThcdWM2OWNcdWM2YTRcdWM2YTVcdWM2YTdcdWM2YTlcdWM2YjBcdWM2YjFcdWM2YjRcdWM2YjhcdWM2YjlcdWM2YmFc'@; put 'dWM2YzBcdWM2YzFcdWM2YzNcdWM2YzVcdWM2Y2NcdWM2Y2RcdWM2ZDBcdWM2ZDRcdWM2ZGNcdWM2ZGRcdWM2ZTBcdWM2ZTFcdWM2ZTgiXSxbImMwNDEiLCJcdWQ0ZmUiLDUsIlx1ZDUwNVx1ZDUwNlx1ZDUwN1x1ZDUwOVx1ZDUwYVx1ZDUwYlx1ZDUwZCIsNiwiXHVkNTE2XHVkNTE4Iiw1XSxb'@; put 'ImMwNjEiLCJcdWQ1MWUiLDI1XSxbImMwODEiLCJcdWQ1MzhcdWQ1MzlcdWQ1M2FcdWQ1M2JcdWQ1M2VcdWQ1M2ZcdWQ1NDFcdWQ1NDJcdWQ1NDNcdWQ1NDUiLDYsIlx1ZDU0ZVx1ZDU1MFx1ZDU1MiIsNSwiXHVkNTVhXHVkNTViXHVkNTVkXHVkNTVlXHVkNTVmXHVkNTYxXHVkNTYyXHVkNTYz'@; put 'XHVjNmU5XHVjNmVjXHVjNmYwXHVjNmY4XHVjNmY5XHVjNmZkXHVjNzA0XHVjNzA1XHVjNzA4XHVjNzBjXHVjNzE0XHVjNzE1XHVjNzE3XHVjNzE5XHVjNzIwXHVjNzIxXHVjNzI0XHVjNzI4XHVjNzMwXHVjNzMxXHVjNzMzXHVjNzM1XHVjNzM3XHVjNzNjXHVjNzNkXHVjNzQwXHVjNzQ0XHVj'@; put 'NzRhXHVjNzRjXHVjNzRkXHVjNzRmXHVjNzUxIiw3LCJcdWM3NWNcdWM3NjBcdWM3NjhcdWM3NmJcdWM3NzRcdWM3NzVcdWM3NzhcdWM3N2NcdWM3N2RcdWM3N2VcdWM3ODNcdWM3ODRcdWM3ODVcdWM3ODdcdWM3ODhcdWM3ODlcdWM3OGFcdWM3OGVcdWM3OTBcdWM3OTFcdWM3OTRcdWM3OTZc'@; put 'dWM3OTdcdWM3OThcdWM3OWFcdWM3YTBcdWM3YTFcdWM3YTNcdWM3YTRcdWM3YTVcdWM3YTZcdWM3YWNcdWM3YWRcdWM3YjBcdWM3YjRcdWM3YmNcdWM3YmRcdWM3YmZcdWM3YzBcdWM3YzFcdWM3YzhcdWM3YzlcdWM3Y2NcdWM3Y2VcdWM3ZDBcdWM3ZDhcdWM3ZGRcdWM3ZTRcdWM3ZThcdWM3'@; put 'ZWNcdWM4MDBcdWM4MDFcdWM4MDRcdWM4MDhcdWM4MGEiXSxbImMxNDEiLCJcdWQ1NjRcdWQ1NjZcdWQ1NjdcdWQ1NmFcdWQ1NmNcdWQ1NmUiLDUsIlx1ZDU3Nlx1ZDU3N1x1ZDU3OVx1ZDU3YVx1ZDU3Ylx1ZDU3ZCIsNiwiXHVkNTg2XHVkNThhXHVkNThiIl0sWyJjMTYxIiwiXHVkNThjXHVk'@; put 'NThkXHVkNThlXHVkNThmXHVkNTkxIiwxOSwiXHVkNWE2XHVkNWE3Il0sWyJjMTgxIiwiXHVkNWE4IiwzMSwiXHVjODEwXHVjODExXHVjODEzXHVjODE1XHVjODE2XHVjODFjXHVjODFkXHVjODIwXHVjODI0XHVjODJjXHVjODJkXHVjODJmXHVjODMxXHVjODM4XHVjODNjXHVjODQwXHVjODQ4'@; put 'XHVjODQ5XHVjODRjXHVjODRkXHVjODU0XHVjODcwXHVjODcxXHVjODc0XHVjODc4XHVjODdhXHVjODgwXHVjODgxXHVjODgzXHVjODg1XHVjODg2XHVjODg3XHVjODhiXHVjODhjXHVjODhkXHVjODk0XHVjODlkXHVjODlmXHVjOGExXHVjOGE4XHVjOGJjXHVjOGJkXHVjOGM0XHVjOGM4XHVj'@; put 'OGNjXHVjOGQ0XHVjOGQ1XHVjOGQ3XHVjOGQ5XHVjOGUwXHVjOGUxXHVjOGU0XHVjOGY1XHVjOGZjXHVjOGZkXHVjOTAwXHVjOTA0XHVjOTA1XHVjOTA2XHVjOTBjXHVjOTBkXHVjOTBmXHVjOTExXHVjOTE4XHVjOTJjXHVjOTM0XHVjOTUwXHVjOTUxXHVjOTU0XHVjOTU4XHVjOTYwXHVjOTYx'@; put 'XHVjOTYzXHVjOTZjXHVjOTcwXHVjOTc0XHVjOTdjXHVjOTg4XHVjOTg5XHVjOThjXHVjOTkwXHVjOTk4XHVjOTk5XHVjOTliXHVjOTlkXHVjOWMwXHVjOWMxXHVjOWM0XHVjOWM3XHVjOWM4XHVjOWNhXHVjOWQwXHVjOWQxXHVjOWQzIl0sWyJjMjQxIiwiXHVkNWNhXHVkNWNiXHVkNWNkXHVk'@; put 'NWNlXHVkNWNmXHVkNWQxXHVkNWQzIiw0LCJcdWQ1ZGFcdWQ1ZGNcdWQ1ZGUiLDUsIlx1ZDVlNlx1ZDVlN1x1ZDVlOVx1ZDVlYVx1ZDVlYlx1ZDVlZFx1ZDVlZSJdLFsiYzI2MSIsIlx1ZDVlZiIsNCwiXHVkNWY2XHVkNWY4XHVkNWZhIiw1LCJcdWQ2MDJcdWQ2MDNcdWQ2MDVcdWQ2MDZcdWQ2'@; put 'MDdcdWQ2MDkiLDYsIlx1ZDYxMiJdLFsiYzI4MSIsIlx1ZDYxNiIsNSwiXHVkNjFkXHVkNjFlXHVkNjFmXHVkNjIxXHVkNjIyXHVkNjIzXHVkNjI1Iiw3LCJcdWQ2MmUiLDksIlx1ZDYzYVx1ZDYzYlx1YzlkNVx1YzlkNlx1YzlkOVx1YzlkYVx1YzlkY1x1YzlkZFx1YzllMFx1YzllMlx1Yzll'@; put 'NFx1YzllN1x1YzllY1x1YzllZFx1YzllZlx1YzlmMFx1YzlmMVx1YzlmOFx1YzlmOVx1YzlmY1x1Y2EwMFx1Y2EwOFx1Y2EwOVx1Y2EwYlx1Y2EwY1x1Y2EwZFx1Y2ExNFx1Y2ExOFx1Y2EyOVx1Y2E0Y1x1Y2E0ZFx1Y2E1MFx1Y2E1NFx1Y2E1Y1x1Y2E1ZFx1Y2E1Zlx1Y2E2MFx1Y2E2MVx1'@; put 'Y2E2OFx1Y2E3ZFx1Y2E4NFx1Y2E5OFx1Y2FiY1x1Y2FiZFx1Y2FjMFx1Y2FjNFx1Y2FjY1x1Y2FjZFx1Y2FjZlx1Y2FkMVx1Y2FkM1x1Y2FkOFx1Y2FkOVx1Y2FlMFx1Y2FlY1x1Y2FmNFx1Y2IwOFx1Y2IxMFx1Y2IxNFx1Y2IxOFx1Y2IyMFx1Y2IyMVx1Y2I0MVx1Y2I0OFx1Y2I0OVx1Y2I0'@; put 'Y1x1Y2I1MFx1Y2I1OFx1Y2I1OVx1Y2I1ZFx1Y2I2NFx1Y2I3OFx1Y2I3OVx1Y2I5Y1x1Y2JiOFx1Y2JkNFx1Y2JlNFx1Y2JlN1x1Y2JlOVx1Y2MwY1x1Y2MwZFx1Y2MxMFx1Y2MxNFx1Y2MxY1x1Y2MxZFx1Y2MyMVx1Y2MyMlx1Y2MyN1x1Y2MyOFx1Y2MyOVx1Y2MyY1x1Y2MyZVx1Y2MzMFx1'@; put 'Y2MzOFx1Y2MzOVx1Y2MzYiJdLFsiYzM0MSIsIlx1ZDYzZFx1ZDYzZVx1ZDYzZlx1ZDY0MVx1ZDY0Mlx1ZDY0M1x1ZDY0NFx1ZDY0Nlx1ZDY0N1x1ZDY0YVx1ZDY0Y1x1ZDY0ZVx1ZDY0Zlx1ZDY1MFx1ZDY1Mlx1ZDY1M1x1ZDY1Nlx1ZDY1N1x1ZDY1OVx1ZDY1YVx1ZDY1Ylx1ZDY1ZCIsNF0s'@; put 'WyJjMzYxIiwiXHVkNjYyIiw0LCJcdWQ2NjhcdWQ2NmEiLDUsIlx1ZDY3Mlx1ZDY3M1x1ZDY3NSIsMTFdLFsiYzM4MSIsIlx1ZDY4MVx1ZDY4Mlx1ZDY4NFx1ZDY4NiIsNSwiXHVkNjhlXHVkNjhmXHVkNjkxXHVkNjkyXHVkNjkzXHVkNjk1Iiw3LCJcdWQ2OWVcdWQ2YTBcdWQ2YTIiLDUsIlx1'@; put 'ZDZhOVx1ZDZhYVx1Y2MzY1x1Y2MzZFx1Y2MzZVx1Y2M0NFx1Y2M0NVx1Y2M0OFx1Y2M0Y1x1Y2M1NFx1Y2M1NVx1Y2M1N1x1Y2M1OFx1Y2M1OVx1Y2M2MFx1Y2M2NFx1Y2M2Nlx1Y2M2OFx1Y2M3MFx1Y2M3NVx1Y2M5OFx1Y2M5OVx1Y2M5Y1x1Y2NhMFx1Y2NhOFx1Y2NhOVx1Y2NhYlx1Y2Nh'@; put 'Y1x1Y2NhZFx1Y2NiNFx1Y2NiNVx1Y2NiOFx1Y2NiY1x1Y2NjNFx1Y2NjNVx1Y2NjN1x1Y2NjOVx1Y2NkMFx1Y2NkNFx1Y2NlNFx1Y2NlY1x1Y2NmMFx1Y2QwMVx1Y2QwOFx1Y2QwOVx1Y2QwY1x1Y2QxMFx1Y2QxOFx1Y2QxOVx1Y2QxYlx1Y2QxZFx1Y2QyNFx1Y2QyOFx1Y2QyY1x1Y2QzOVx1'@; put 'Y2Q1Y1x1Y2Q2MFx1Y2Q2NFx1Y2Q2Y1x1Y2Q2ZFx1Y2Q2Zlx1Y2Q3MVx1Y2Q3OFx1Y2Q4OFx1Y2Q5NFx1Y2Q5NVx1Y2Q5OFx1Y2Q5Y1x1Y2RhNFx1Y2RhNVx1Y2RhN1x1Y2RhOVx1Y2RiMFx1Y2RjNFx1Y2RjY1x1Y2RkMFx1Y2RlOFx1Y2RlY1x1Y2RmMFx1Y2RmOFx1Y2RmOVx1Y2RmYlx1Y2Rm'@; put 'ZFx1Y2UwNFx1Y2UwOFx1Y2UwY1x1Y2UxNFx1Y2UxOVx1Y2UyMFx1Y2UyMVx1Y2UyNFx1Y2UyOFx1Y2UzMFx1Y2UzMVx1Y2UzM1x1Y2UzNSJdLFsiYzQ0MSIsIlx1ZDZhYlx1ZDZhZFx1ZDZhZVx1ZDZhZlx1ZDZiMSIsNywiXHVkNmJhXHVkNmJjIiw3LCJcdWQ2YzZcdWQ2YzdcdWQ2YzlcdWQ2'@; put 'Y2FcdWQ2Y2IiXSxbImM0NjEiLCJcdWQ2Y2RcdWQ2Y2VcdWQ2Y2ZcdWQ2ZDBcdWQ2ZDJcdWQ2ZDNcdWQ2ZDVcdWQ2ZDZcdWQ2ZDhcdWQ2ZGEiLDUsIlx1ZDZlMVx1ZDZlMlx1ZDZlM1x1ZDZlNVx1ZDZlNlx1ZDZlN1x1ZDZlOSIsNF0sWyJjNDgxIiwiXHVkNmVlXHVkNmVmXHVkNmYxXHVkNmYy'@; put 'XHVkNmYzXHVkNmY0XHVkNmY2Iiw1LCJcdWQ2ZmVcdWQ2ZmZcdWQ3MDFcdWQ3MDJcdWQ3MDNcdWQ3MDUiLDExLCJcdWQ3MTJcdWQ3MTNcdWQ3MTRcdWNlNThcdWNlNTlcdWNlNWNcdWNlNWZcdWNlNjBcdWNlNjFcdWNlNjhcdWNlNjlcdWNlNmJcdWNlNmRcdWNlNzRcdWNlNzVcdWNlNzhcdWNl'@; put 'N2NcdWNlODRcdWNlODVcdWNlODdcdWNlODlcdWNlOTBcdWNlOTFcdWNlOTRcdWNlOThcdWNlYTBcdWNlYTFcdWNlYTNcdWNlYTRcdWNlYTVcdWNlYWNcdWNlYWRcdWNlYzFcdWNlZTRcdWNlZTVcdWNlZThcdWNlZWJcdWNlZWNcdWNlZjRcdWNlZjVcdWNlZjdcdWNlZjhcdWNlZjlcdWNmMDBc'@; put 'dWNmMDFcdWNmMDRcdWNmMDhcdWNmMTBcdWNmMTFcdWNmMTNcdWNmMTVcdWNmMWNcdWNmMjBcdWNmMjRcdWNmMmNcdWNmMmRcdWNmMmZcdWNmMzBcdWNmMzFcdWNmMzhcdWNmNTRcdWNmNTVcdWNmNThcdWNmNWNcdWNmNjRcdWNmNjVcdWNmNjdcdWNmNjlcdWNmNzBcdWNmNzFcdWNmNzRcdWNm'@; put 'NzhcdWNmODBcdWNmODVcdWNmOGNcdWNmYTFcdWNmYThcdWNmYjBcdWNmYzRcdWNmZTBcdWNmZTFcdWNmZTRcdWNmZThcdWNmZjBcdWNmZjFcdWNmZjNcdWNmZjVcdWNmZmNcdWQwMDBcdWQwMDRcdWQwMTFcdWQwMThcdWQwMmRcdWQwMzRcdWQwMzVcdWQwMzhcdWQwM2MiXSxbImM1NDEiLCJc'@; put 'dWQ3MTVcdWQ3MTZcdWQ3MTdcdWQ3MWFcdWQ3MWJcdWQ3MWRcdWQ3MWVcdWQ3MWZcdWQ3MjEiLDYsIlx1ZDcyYVx1ZDcyY1x1ZDcyZSIsNSwiXHVkNzM2XHVkNzM3XHVkNzM5Il0sWyJjNTYxIiwiXHVkNzNhXHVkNzNiXHVkNzNkIiw2LCJcdWQ3NDVcdWQ3NDZcdWQ3NDhcdWQ3NGEiLDUsIlx1'@; put 'ZDc1Mlx1ZDc1M1x1ZDc1NVx1ZDc1YSIsNF0sWyJjNTgxIiwiXHVkNzVmXHVkNzYyXHVkNzY0XHVkNzY2XHVkNzY3XHVkNzY4XHVkNzZhXHVkNzZiXHVkNzZkXHVkNzZlXHVkNzZmXHVkNzcxXHVkNzcyXHVkNzczXHVkNzc1Iiw2LCJcdWQ3N2VcdWQ3N2ZcdWQ3ODBcdWQ3ODIiLDUsIlx1ZDc4'@; put 'YVx1ZDc4Ylx1ZDA0NFx1ZDA0NVx1ZDA0N1x1ZDA0OVx1ZDA1MFx1ZDA1NFx1ZDA1OFx1ZDA2MFx1ZDA2Y1x1ZDA2ZFx1ZDA3MFx1ZDA3NFx1ZDA3Y1x1ZDA3ZFx1ZDA4MVx1ZDBhNFx1ZDBhNVx1ZDBhOFx1ZDBhY1x1ZDBiNFx1ZDBiNVx1ZDBiN1x1ZDBiOVx1ZDBjMFx1ZDBjMVx1ZDBjNFx1'@; put 'ZDBjOFx1ZDBjOVx1ZDBkMFx1ZDBkMVx1ZDBkM1x1ZDBkNFx1ZDBkNVx1ZDBkY1x1ZDBkZFx1ZDBlMFx1ZDBlNFx1ZDBlY1x1ZDBlZFx1ZDBlZlx1ZDBmMFx1ZDBmMVx1ZDBmOFx1ZDEwZFx1ZDEzMFx1ZDEzMVx1ZDEzNFx1ZDEzOFx1ZDEzYVx1ZDE0MFx1ZDE0MVx1ZDE0M1x1ZDE0NFx1ZDE0'@; put 'NVx1ZDE0Y1x1ZDE0ZFx1ZDE1MFx1ZDE1NFx1ZDE1Y1x1ZDE1ZFx1ZDE1Zlx1ZDE2MVx1ZDE2OFx1ZDE2Y1x1ZDE3Y1x1ZDE4NFx1ZDE4OFx1ZDFhMFx1ZDFhMVx1ZDFhNFx1ZDFhOFx1ZDFiMFx1ZDFiMVx1ZDFiM1x1ZDFiNVx1ZDFiYVx1ZDFiY1x1ZDFjMFx1ZDFkOFx1ZDFmNFx1ZDFmOFx1'@; put 'ZDIwN1x1ZDIwOVx1ZDIxMFx1ZDIyY1x1ZDIyZFx1ZDIzMFx1ZDIzNFx1ZDIzY1x1ZDIzZFx1ZDIzZlx1ZDI0MVx1ZDI0OFx1ZDI1YyJdLFsiYzY0MSIsIlx1ZDc4ZFx1ZDc4ZVx1ZDc4Zlx1ZDc5MSIsNiwiXHVkNzlhXHVkNzljXHVkNzllIiw1XSxbImM2YTEiLCJcdWQyNjRcdWQyODBcdWQy'@; put 'ODFcdWQyODRcdWQyODhcdWQyOTBcdWQyOTFcdWQyOTVcdWQyOWNcdWQyYTBcdWQyYTRcdWQyYWNcdWQyYjFcdWQyYjhcdWQyYjlcdWQyYmNcdWQyYmZcdWQyYzBcdWQyYzJcdWQyYzhcdWQyYzlcdWQyY2JcdWQyZDRcdWQyZDhcdWQyZGNcdWQyZTRcdWQyZTVcdWQyZjBcdWQyZjFcdWQyZjRc'@; put 'dWQyZjhcdWQzMDBcdWQzMDFcdWQzMDNcdWQzMDVcdWQzMGNcdWQzMGRcdWQzMGVcdWQzMTBcdWQzMTRcdWQzMTZcdWQzMWNcdWQzMWRcdWQzMWZcdWQzMjBcdWQzMjFcdWQzMjVcdWQzMjhcdWQzMjlcdWQzMmNcdWQzMzBcdWQzMzhcdWQzMzlcdWQzM2JcdWQzM2NcdWQzM2RcdWQzNDRcdWQz'@; put 'NDVcdWQzN2NcdWQzN2RcdWQzODBcdWQzODRcdWQzOGNcdWQzOGRcdWQzOGZcdWQzOTBcdWQzOTFcdWQzOThcdWQzOTlcdWQzOWNcdWQzYTBcdWQzYThcdWQzYTlcdWQzYWJcdWQzYWRcdWQzYjRcdWQzYjhcdWQzYmNcdWQzYzRcdWQzYzVcdWQzYzhcdWQzYzlcdWQzZDBcdWQzZDhcdWQzZTFc'@; put 'dWQzZTNcdWQzZWNcdWQzZWRcdWQzZjBcdWQzZjRcdWQzZmNcdWQzZmRcdWQzZmZcdWQ0MDEiXSxbImM3YTEiLCJcdWQ0MDhcdWQ0MWRcdWQ0NDBcdWQ0NDRcdWQ0NWNcdWQ0NjBcdWQ0NjRcdWQ0NmRcdWQ0NmZcdWQ0NzhcdWQ0NzlcdWQ0N2NcdWQ0N2ZcdWQ0ODBcdWQ0ODJcdWQ0ODhcdWQ0'@; put 'ODlcdWQ0OGJcdWQ0OGRcdWQ0OTRcdWQ0YTlcdWQ0Y2NcdWQ0ZDBcdWQ0ZDRcdWQ0ZGNcdWQ0ZGZcdWQ0ZThcdWQ0ZWNcdWQ0ZjBcdWQ0ZjhcdWQ0ZmJcdWQ0ZmRcdWQ1MDRcdWQ1MDhcdWQ1MGNcdWQ1MTRcdWQ1MTVcdWQ1MTdcdWQ1M2NcdWQ1M2RcdWQ1NDBcdWQ1NDRcdWQ1NGNcdWQ1NGRc'@; put 'dWQ1NGZcdWQ1NTFcdWQ1NThcdWQ1NTlcdWQ1NWNcdWQ1NjBcdWQ1NjVcdWQ1NjhcdWQ1NjlcdWQ1NmJcdWQ1NmRcdWQ1NzRcdWQ1NzVcdWQ1NzhcdWQ1N2NcdWQ1ODRcdWQ1ODVcdWQ1ODdcdWQ1ODhcdWQ1ODlcdWQ1OTBcdWQ1YTVcdWQ1YzhcdWQ1YzlcdWQ1Y2NcdWQ1ZDBcdWQ1ZDJcdWQ1'@; put 'ZDhcdWQ1ZDlcdWQ1ZGJcdWQ1ZGRcdWQ1ZTRcdWQ1ZTVcdWQ1ZThcdWQ1ZWNcdWQ1ZjRcdWQ1ZjVcdWQ1ZjdcdWQ1ZjlcdWQ2MDBcdWQ2MDFcdWQ2MDRcdWQ2MDhcdWQ2MTBcdWQ2MTFcdWQ2MTNcdWQ2MTRcdWQ2MTVcdWQ2MWNcdWQ2MjAiXSxbImM4YTEiLCJcdWQ2MjRcdWQ2MmRcdWQ2Mzhc'@; put 'dWQ2MzlcdWQ2M2NcdWQ2NDBcdWQ2NDVcdWQ2NDhcdWQ2NDlcdWQ2NGJcdWQ2NGRcdWQ2NTFcdWQ2NTRcdWQ2NTVcdWQ2NThcdWQ2NWNcdWQ2NjdcdWQ2NjlcdWQ2NzBcdWQ2NzFcdWQ2NzRcdWQ2ODNcdWQ2ODVcdWQ2OGNcdWQ2OGRcdWQ2OTBcdWQ2OTRcdWQ2OWRcdWQ2OWZcdWQ2YTFcdWQ2'@; put 'YThcdWQ2YWNcdWQ2YjBcdWQ2YjlcdWQ2YmJcdWQ2YzRcdWQ2YzVcdWQ2YzhcdWQ2Y2NcdWQ2ZDFcdWQ2ZDRcdWQ2ZDdcdWQ2ZDlcdWQ2ZTBcdWQ2ZTRcdWQ2ZThcdWQ2ZjBcdWQ2ZjVcdWQ2ZmNcdWQ2ZmRcdWQ3MDBcdWQ3MDRcdWQ3MTFcdWQ3MThcdWQ3MTlcdWQ3MWNcdWQ3MjBcdWQ3Mjhc'@; put 'dWQ3MjlcdWQ3MmJcdWQ3MmRcdWQ3MzRcdWQ3MzVcdWQ3MzhcdWQ3M2NcdWQ3NDRcdWQ3NDdcdWQ3NDlcdWQ3NTBcdWQ3NTFcdWQ3NTRcdWQ3NTZcdWQ3NTdcdWQ3NThcdWQ3NTlcdWQ3NjBcdWQ3NjFcdWQ3NjNcdWQ3NjVcdWQ3NjlcdWQ3NmNcdWQ3NzBcdWQ3NzRcdWQ3N2NcdWQ3N2RcdWQ3'@; put 'ODFcdWQ3ODhcdWQ3ODlcdWQ3OGNcdWQ3OTBcdWQ3OThcdWQ3OTlcdWQ3OWJcdWQ3OWQiXSxbImNhYTEiLCJcdTRmM2RcdTRmNzNcdTUwNDdcdTUwZjlcdTUyYTBcdTUzZWZcdTU0NzVcdTU0ZTVcdTU2MDlcdTVhYzFcdTViYjZcdTY2ODdcdTY3YjZcdTY3YjdcdTY3ZWZcdTZiNGNcdTczYzJc'@; put 'dTc1YzJcdTdhM2NcdTgyZGJcdTgzMDRcdTg4NTdcdTg4ODhcdThhMzZcdThjYzhcdThkY2ZcdThlZmJcdThmZTZcdTk5ZDVcdTUyM2JcdTUzNzRcdTU0MDRcdTYwNmFcdTYxNjRcdTZiYmNcdTczY2ZcdTgxMWFcdTg5YmFcdTg5ZDJcdTk1YTNcdTRmODNcdTUyMGFcdTU4YmVcdTU5NzhcdTU5'@; put 'ZTZcdTVlNzJcdTVlNzlcdTYxYzdcdTYzYzBcdTY3NDZcdTY3ZWNcdTY4N2ZcdTZmOTdcdTc2NGVcdTc3MGJcdTc4ZjVcdTdhMDhcdTdhZmZcdTdjMjFcdTgwOWRcdTgyNmVcdTgyNzFcdThhZWJcdTk1OTNcdTRlNmJcdTU1OWRcdTY2ZjdcdTZlMzRcdTc4YTNcdTdhZWRcdTg0NWJcdTg5MTBc'@; put 'dTg3NGVcdTk3YThcdTUyZDhcdTU3NGVcdTU4MmFcdTVkNGNcdTYxMWZcdTYxYmVcdTYyMjFcdTY1NjJcdTY3ZDFcdTZhNDRcdTZlMWJcdTc1MThcdTc1YjNcdTc2ZTNcdTc3YjBcdTdkM2FcdTkwYWZcdTk0NTFcdTk0NTJcdTlmOTUiXSxbImNiYTEiLCJcdTUzMjNcdTVjYWNcdTc1MzJcdTgw'@; put 'ZGJcdTkyNDBcdTk1OThcdTUyNWJcdTU4MDhcdTU5ZGNcdTVjYTFcdTVkMTdcdTVlYjdcdTVmM2FcdTVmNGFcdTYxNzdcdTZjNWZcdTc1N2FcdTc1ODZcdTdjZTBcdTdkNzNcdTdkYjFcdTdmOGNcdTgxNTRcdTgyMjFcdTg1OTFcdTg5NDFcdThiMWJcdTkyZmNcdTk2NGRcdTljNDdcdTRlY2Jc'@; put 'dTRlZjdcdTUwMGJcdTUxZjFcdTU4NGZcdTYxMzdcdTYxM2VcdTYxNjhcdTY1MzlcdTY5ZWFcdTZmMTFcdTc1YTVcdTc2ODZcdTc2ZDZcdTdiODdcdTgyYTVcdTg0Y2JcdWY5MDBcdTkzYTdcdTk1OGJcdTU1ODBcdTViYTJcdTU3NTFcdWY5MDFcdTdjYjNcdTdmYjlcdTkxYjVcdTUwMjhcdTUz'@; put 'YmJcdTVjNDVcdTVkZThcdTYyZDJcdTYzNmVcdTY0ZGFcdTY0ZTdcdTZlMjBcdTcwYWNcdTc5NWJcdThkZGRcdThlMWVcdWY5MDJcdTkwN2RcdTkyNDVcdTkyZjhcdTRlN2VcdTRlZjZcdTUwNjVcdTVkZmVcdTVlZmFcdTYxMDZcdTY5NTdcdTgxNzFcdTg2NTRcdThlNDdcdTkzNzVcdTlhMmJc'@; put 'dTRlNWVcdTUwOTFcdTY3NzBcdTY4NDBcdTUxMDlcdTUyOGRcdTUyOTJcdTZhYTIiXSxbImNjYTEiLCJcdTc3YmNcdTkyMTBcdTllZDRcdTUyYWJcdTYwMmZcdThmZjJcdTUwNDhcdTYxYTlcdTYzZWRcdTY0Y2FcdTY4M2NcdTZhODRcdTZmYzBcdTgxODhcdTg5YTFcdTk2OTRcdTU4MDVcdTcy'@; put 'N2RcdTcyYWNcdTc1MDRcdTdkNzlcdTdlNmRcdTgwYTlcdTg5OGJcdThiNzRcdTkwNjNcdTlkNTFcdTYyODlcdTZjN2FcdTZmNTRcdTdkNTBcdTdmM2FcdThhMjNcdTUxN2NcdTYxNGFcdTdiOWRcdThiMTlcdTkyNTdcdTkzOGNcdTRlYWNcdTRmZDNcdTUwMWVcdTUwYmVcdTUxMDZcdTUyYzFc'@; put 'dTUyY2RcdTUzN2ZcdTU3NzBcdTU4ODNcdTVlOWFcdTVmOTFcdTYxNzZcdTYxYWNcdTY0Y2VcdTY1NmNcdTY2NmZcdTY2YmJcdTY2ZjRcdTY4OTdcdTZkODdcdTcwODVcdTcwZjFcdTc0OWZcdTc0YTVcdTc0Y2FcdTc1ZDlcdTc4NmNcdTc4ZWNcdTdhZGZcdTdhZjZcdTdkNDVcdTdkOTNcdTgw'@; put 'MTVcdTgwM2ZcdTgxMWJcdTgzOTZcdThiNjZcdThmMTVcdTkwMTVcdTkzZTFcdTk4MDNcdTk4MzhcdTlhNWFcdTliZThcdTRmYzJcdTU1NTNcdTU4M2FcdTU5NTFcdTViNjNcdTVjNDZcdTYwYjhcdTYyMTJcdTY4NDJcdTY4YjAiXSxbImNkYTEiLCJcdTY4ZThcdTZlYWFcdTc1NGNcdTc2Nzhc'@; put 'dTc4Y2VcdTdhM2RcdTdjZmJcdTdlNmJcdTdlN2NcdThhMDhcdThhYTFcdThjM2ZcdTk2OGVcdTlkYzRcdTUzZTRcdTUzZTlcdTU0NGFcdTU0NzFcdTU2ZmFcdTU5ZDFcdTViNjRcdTVjM2JcdTVlYWJcdTYyZjdcdTY1MzdcdTY1NDVcdTY1NzJcdTY2YTBcdTY3YWZcdTY5YzFcdTZjYmRcdTc1'@; put 'ZmNcdTc2OTBcdTc3N2VcdTdhM2ZcdTdmOTRcdTgwMDNcdTgwYTFcdTgxOGZcdTgyZTZcdTgyZmRcdTgzZjBcdTg1YzFcdTg4MzFcdTg4YjRcdThhYTVcdWY5MDNcdThmOWNcdTkzMmVcdTk2YzdcdTk4NjdcdTlhZDhcdTlmMTNcdTU0ZWRcdTY1OWJcdTY2ZjJcdTY4OGZcdTdhNDBcdThjMzdc'@; put 'dTlkNjBcdTU2ZjBcdTU3NjRcdTVkMTFcdTY2MDZcdTY4YjFcdTY4Y2RcdTZlZmVcdTc0MjhcdTg4OWVcdTliZTRcdTZjNjhcdWY5MDRcdTlhYThcdTRmOWJcdTUxNmNcdTUxNzFcdTUyOWZcdTViNTRcdTVkZTVcdTYwNTBcdTYwNmRcdTYyZjFcdTYzYTdcdTY1M2JcdTczZDlcdTdhN2FcdTg2'@; put 'YTNcdThjYTJcdTk3OGZcdTRlMzJcdTViZTFcdTYyMDhcdTY3OWNcdTc0ZGMiXSxbImNlYTEiLCJcdTc5ZDFcdTgzZDNcdThhODdcdThhYjJcdThkZThcdTkwNGVcdTkzNGJcdTk4NDZcdTVlZDNcdTY5ZThcdTg1ZmZcdTkwZWRcdWY5MDVcdTUxYTBcdTViOThcdTViZWNcdTYxNjNcdTY4ZmFc'@; put 'dTZiM2VcdTcwNGNcdTc0MmZcdTc0ZDhcdTdiYTFcdTdmNTBcdTgzYzVcdTg5YzBcdThjYWJcdTk1ZGNcdTk5MjhcdTUyMmVcdTYwNWRcdTYyZWNcdTkwMDJcdTRmOGFcdTUxNDlcdTUzMjFcdTU4ZDlcdTVlZTNcdTY2ZTBcdTZkMzhcdTcwOWFcdTcyYzJcdTczZDZcdTdiNTBcdTgwZjFcdTk0'@; put 'NWJcdTUzNjZcdTYzOWJcdTdmNmJcdTRlNTZcdTUwODBcdTU4NGFcdTU4ZGVcdTYwMmFcdTYxMjdcdTYyZDBcdTY5ZDBcdTliNDFcdTViOGZcdTdkMThcdTgwYjFcdThmNWZcdTRlYTRcdTUwZDFcdTU0YWNcdTU1YWNcdTViMGNcdTVkYTBcdTVkZTdcdTY1MmFcdTY1NGVcdTY4MjFcdTZhNGJc'@; put 'dTcyZTFcdTc2OGVcdTc3ZWZcdTdkNWVcdTdmZjlcdTgxYTBcdTg1NGVcdTg2ZGZcdThmMDNcdThmNGVcdTkwY2FcdTk5MDNcdTlhNTVcdTliYWJcdTRlMThcdTRlNDVcdTRlNWRcdTRlYzdcdTRmZjFcdTUxNzdcdTUyZmUiXSxbImNmYTEiLCJcdTUzNDBcdTUzZTNcdTUzZTVcdTU0OGVcdTU2'@; put 'MTRcdTU3NzVcdTU3YTJcdTViYzdcdTVkODdcdTVlZDBcdTYxZmNcdTYyZDhcdTY1NTFcdTY3YjhcdTY3ZTlcdTY5Y2JcdTZiNTBcdTZiYzZcdTZiZWNcdTZjNDJcdTZlOWRcdTcwNzhcdTcyZDdcdTczOTZcdTc0MDNcdTc3YmZcdTc3ZTlcdTdhNzZcdTdkN2ZcdTgwMDlcdTgxZmNcdTgyMDVc'@; put 'dTgyMGFcdTgyZGZcdTg4NjJcdThiMzNcdThjZmNcdThlYzBcdTkwMTFcdTkwYjFcdTkyNjRcdTkyYjZcdTk5ZDJcdTlhNDVcdTljZTlcdTlkZDdcdTlmOWNcdTU3MGJcdTVjNDBcdTgzY2FcdTk3YTBcdTk3YWJcdTllYjRcdTU0MWJcdTdhOThcdTdmYTRcdTg4ZDlcdThlY2RcdTkwZTFcdTU4'@; put 'MDBcdTVjNDhcdTYzOThcdTdhOWZcdTViYWVcdTVmMTNcdTdhNzlcdTdhYWVcdTgyOGVcdThlYWNcdTUwMjZcdTUyMzhcdTUyZjhcdTUzNzdcdTU3MDhcdTYyZjNcdTYzNzJcdTZiMGFcdTZkYzNcdTc3MzdcdTUzYTVcdTczNTdcdTg1NjhcdThlNzZcdTk1ZDVcdTY3M2FcdTZhYzNcdTZmNzBc'@; put 'dThhNmRcdThlY2NcdTk5NGJcdWY5MDZcdTY2NzdcdTZiNzhcdThjYjQiXSxbImQwYTEiLCJcdTliM2NcdWY5MDdcdTUzZWJcdTU3MmRcdTU5NGVcdTYzYzZcdTY5ZmJcdTczZWFcdTc4NDVcdTdhYmFcdTdhYzVcdTdjZmVcdTg0NzVcdTg5OGZcdThkNzNcdTkwMzVcdTk1YThcdTUyZmJcdTU3'@; put 'NDdcdTc1NDdcdTdiNjBcdTgzY2NcdTkyMWVcdWY5MDhcdTZhNThcdTUxNGJcdTUyNGJcdTUyODdcdTYyMWZcdTY4ZDhcdTY5NzVcdTk2OTlcdTUwYzVcdTUyYTRcdTUyZTRcdTYxYzNcdTY1YTRcdTY4MzlcdTY5ZmZcdTc0N2VcdTdiNGJcdTgyYjlcdTgzZWJcdTg5YjJcdThiMzlcdThmZDFc'@; put 'dTk5NDlcdWY5MDlcdTRlY2FcdTU5OTdcdTY0ZDJcdTY2MTFcdTZhOGVcdTc0MzRcdTc5ODFcdTc5YmRcdTgyYTlcdTg4N2VcdTg4N2ZcdTg5NWZcdWY5MGFcdTkzMjZcdTRmMGJcdTUzY2FcdTYwMjVcdTYyNzFcdTZjNzJcdTdkMWFcdTdkNjZcdTRlOThcdTUxNjJcdTc3ZGNcdTgwYWZcdTRm'@; put 'MDFcdTRmMGVcdTUxNzZcdTUxODBcdTU1ZGNcdTU2NjhcdTU3M2JcdTU3ZmFcdTU3ZmNcdTU5MTRcdTU5NDdcdTU5OTNcdTViYzRcdTVjOTBcdTVkMGVcdTVkZjFcdTVlN2VcdTVmY2NcdTYyODBcdTY1ZDdcdTY1ZTMiXSxbImQxYTEiLCJcdTY3MWVcdTY3MWZcdTY3NWVcdTY4Y2JcdTY4YzRc'@; put 'dTZhNWZcdTZiM2FcdTZjMjNcdTZjN2RcdTZjODJcdTZkYzdcdTczOThcdTc0MjZcdTc0MmFcdTc0ODJcdTc0YTNcdTc1NzhcdTc1N2ZcdTc4ODFcdTc4ZWZcdTc5NDFcdTc5NDdcdTc5NDhcdTc5N2FcdTdiOTVcdTdkMDBcdTdkYmFcdTdmODhcdTgwMDZcdTgwMmRcdTgwOGNcdThhMThcdThi'@; put 'NGZcdThjNDhcdThkNzdcdTkzMjFcdTkzMjRcdTk4ZTJcdTk5NTFcdTlhMGVcdTlhMGZcdTlhNjVcdTllOTJcdTdkY2FcdTRmNzZcdTU0MDlcdTYyZWVcdTY4NTRcdTkxZDFcdTU1YWJcdTUxM2FcdWY5MGJcdWY5MGNcdTVhMWNcdTYxZTZcdWY5MGRcdTYyY2ZcdTYyZmZcdWY5MGUiLDUsIlx1'@; put 'OTBhM1x1ZjkxNCIsNCwiXHU4YWZlXHVmOTE5XHVmOTFhXHVmOTFiXHVmOTFjXHU2Njk2XHVmOTFkXHU3MTU2XHVmOTFlXHVmOTFmXHU5NmUzXHVmOTIwXHU2MzRmXHU2MzdhXHU1MzU3XHVmOTIxXHU2NzhmXHU2OTYwXHU2ZTczXHVmOTIyXHU3NTM3XHVmOTIzXHVmOTI0XHVmOTI1Il0sWyJk'@; put 'MmExIiwiXHU3ZDBkXHVmOTI2XHVmOTI3XHU4ODcyXHU1NmNhXHU1YTE4XHVmOTI4Iiw0LCJcdTRlNDNcdWY5MmRcdTUxNjdcdTU5NDhcdTY3ZjBcdTgwMTBcdWY5MmVcdTU5NzNcdTVlNzRcdTY0OWFcdTc5Y2FcdTVmZjVcdTYwNmNcdTYyYzhcdTYzN2JcdTViZTdcdTViZDdcdTUyYWFcdWY5'@; put 'MmZcdTU5NzRcdTVmMjlcdTYwMTJcdWY5MzBcdWY5MzFcdWY5MzJcdTc0NTlcdWY5MzMiLDUsIlx1OTlkMVx1ZjkzOSIsMTAsIlx1NmZjM1x1Zjk0NFx1Zjk0NVx1ODFiZlx1OGZiMlx1NjBmMVx1Zjk0Nlx1Zjk0N1x1ODE2Nlx1Zjk0OFx1Zjk0OVx1NWMzZlx1Zjk0YSIsNywiXHU1YWU5XHU4'@; put 'YTI1XHU2NzdiXHU3ZDEwXHVmOTUyIiw1LCJcdTgwZmRcdWY5NThcdWY5NTlcdTVjM2NcdTZjZTVcdTUzM2ZcdTZlYmFcdTU5MWFcdTgzMzYiXSxbImQzYTEiLCJcdTRlMzlcdTRlYjZcdTRmNDZcdTU1YWVcdTU3MThcdTU4YzdcdTVmNTZcdTY1YjdcdTY1ZTZcdTZhODBcdTZiYjVcdTZlNGRc'@; put 'dTc3ZWRcdTdhZWZcdTdjMWVcdTdkZGVcdTg2Y2JcdTg4OTJcdTkxMzJcdTkzNWJcdTY0YmJcdTZmYmVcdTczN2FcdTc1YjhcdTkwNTRcdTU1NTZcdTU3NGRcdTYxYmFcdTY0ZDRcdTY2YzdcdTZkZTFcdTZlNWJcdTZmNmRcdTZmYjlcdTc1ZjBcdTgwNDNcdTgxYmRcdTg1NDFcdTg5ODNcdThh'@; put 'YzdcdThiNWFcdTkzMWZcdTZjOTNcdTc1NTNcdTdiNTRcdThlMGZcdTkwNWRcdTU1MTBcdTU4MDJcdTU4NThcdTVlNjJcdTYyMDdcdTY0OWVcdTY4ZTBcdTc1NzZcdTdjZDZcdTg3YjNcdTllZThcdTRlZTNcdTU3ODhcdTU3NmVcdTU5MjdcdTVjMGRcdTVjYjFcdTVlMzZcdTVmODVcdTYyMzRc'@; put 'dTY0ZTFcdTczYjNcdTgxZmFcdTg4OGJcdThjYjhcdTk2OGFcdTllZGJcdTViODVcdTVmYjdcdTYwYjNcdTUwMTJcdTUyMDBcdTUyMzBcdTU3MTZcdTU4MzVcdTU4NTdcdTVjMGVcdTVjNjBcdTVjZjZcdTVkOGJcdTVlYTZcdTVmOTJcdTYwYmNcdTYzMTFcdTYzODlcdTY0MTdcdTY4NDMiXSxb'@; put 'ImQ0YTEiLCJcdTY4ZjlcdTZhYzJcdTZkZDhcdTZlMjFcdTZlZDRcdTZmZTRcdTcxZmVcdTc2ZGNcdTc3NzlcdTc5YjFcdTdhM2JcdTg0MDRcdTg5YTlcdThjZWRcdThkZjNcdThlNDhcdTkwMDNcdTkwMTRcdTkwNTNcdTkwZmRcdTkzNGRcdTk2NzZcdTk3ZGNcdTZiZDJcdTcwMDZcdTcyNThc'@; put 'dTcyYTJcdTczNjhcdTc3NjNcdTc5YmZcdTdiZTRcdTdlOWJcdThiODBcdTU4YTlcdTYwYzdcdTY1NjZcdTY1ZmRcdTY2YmVcdTZjOGNcdTcxMWVcdTcxYzlcdThjNWFcdTk4MTNcdTRlNmRcdTdhODFcdTRlZGRcdTUxYWNcdTUxY2RcdTUyZDVcdTU0MGNcdTYxYTdcdTY3NzFcdTY4NTBcdTY4'@; put 'ZGZcdTZkMWVcdTZmN2NcdTc1YmNcdTc3YjNcdTdhZTVcdTgwZjRcdTg0NjNcdTkyODVcdTUxNWNcdTY1OTdcdTY3NWNcdTY3OTNcdTc1ZDhcdTdhYzdcdTgzNzNcdWY5NWFcdThjNDZcdTkwMTdcdTk4MmRcdTVjNmZcdTgxYzBcdTgyOWFcdTkwNDFcdTkwNmZcdTkyMGRcdTVmOTdcdTVkOWRc'@; put 'dTZhNTlcdTcxYzhcdTc2N2JcdTdiNDlcdTg1ZTRcdThiMDRcdTkxMjdcdTlhMzBcdTU1ODdcdTYxZjZcdWY5NWJcdTc2NjlcdTdmODUiXSxbImQ1YTEiLCJcdTg2M2ZcdTg3YmFcdTg4ZjhcdTkwOGZcdWY5NWNcdTZkMWJcdTcwZDlcdTczZGVcdTdkNjFcdTg0M2RcdWY5NWRcdTkxNmFcdTk5'@; put 'ZjFcdWY5NWVcdTRlODJcdTUzNzVcdTZiMDRcdTZiMTJcdTcwM2VcdTcyMWJcdTg2MmRcdTllMWVcdTUyNGNcdThmYTNcdTVkNTBcdTY0ZTVcdTY1MmNcdTZiMTZcdTZmZWJcdTdjNDNcdTdlOWNcdTg1Y2RcdTg5NjRcdTg5YmRcdTYyYzlcdTgxZDhcdTg4MWZcdTVlY2FcdTY3MTdcdTZkNmFc'@; put 'dTcyZmNcdTc0MDVcdTc0NmZcdTg3ODJcdTkwZGVcdTRmODZcdTVkMGRcdTVmYTBcdTg0MGFcdTUxYjdcdTYzYTBcdTc1NjVcdTRlYWVcdTUwMDZcdTUxNjlcdTUxYzlcdTY4ODFcdTZhMTFcdTdjYWVcdTdjYjFcdTdjZTdcdTgyNmZcdThhZDJcdThmMWJcdTkxY2ZcdTRmYjZcdTUxMzdcdTUy'@; put 'ZjVcdTU0NDJcdTVlZWNcdTYxNmVcdTYyM2VcdTY1YzVcdTZhZGFcdTZmZmVcdTc5MmFcdTg1ZGNcdTg4MjNcdTk1YWRcdTlhNjJcdTlhNmFcdTllOTdcdTllY2VcdTUyOWJcdTY2YzZcdTZiNzdcdTcwMWRcdTc5MmJcdThmNjJcdTk3NDJcdTYxOTBcdTYyMDBcdTY1MjNcdTZmMjMiXSxbImQ2'@; put 'YTEiLCJcdTcxNDlcdTc0ODlcdTdkZjRcdTgwNmZcdTg0ZWVcdThmMjZcdTkwMjNcdTkzNGFcdTUxYmRcdTUyMTdcdTUyYTNcdTZkMGNcdTcwYzhcdTg4YzJcdTVlYzlcdTY1ODJcdTZiYWVcdTZmYzJcdTdjM2VcdTczNzVcdTRlZTRcdTRmMzZcdTU2ZjlcdWY5NWZcdTVjYmFcdTVkYmFcdTYw'@; put 'MWNcdTczYjJcdTdiMmRcdTdmOWFcdTdmY2VcdTgwNDZcdTkwMWVcdTkyMzRcdTk2ZjZcdTk3NDhcdTk4MThcdTlmNjFcdTRmOGJcdTZmYTdcdTc5YWVcdTkxYjRcdTk2YjdcdTUyZGVcdWY5NjBcdTY0ODhcdTY0YzRcdTZhZDNcdTZmNWVcdTcwMThcdTcyMTBcdTc2ZTdcdTgwMDFcdTg2MDZc'@; put 'dTg2NWNcdThkZWZcdThmMDVcdTk3MzJcdTliNmZcdTlkZmFcdTllNzVcdTc4OGNcdTc5N2ZcdTdkYTBcdTgzYzlcdTkzMDRcdTllN2ZcdTllOTNcdThhZDZcdTU4ZGZcdTVmMDRcdTY3MjdcdTcwMjdcdTc0Y2ZcdTdjNjBcdTgwN2VcdTUxMjFcdTcwMjhcdTcyNjJcdTc4Y2FcdThjYzJcdThj'@; put 'ZGFcdThjZjRcdTk2ZjdcdTRlODZcdTUwZGFcdTViZWVcdTVlZDZcdTY1OTlcdTcxY2VcdTc2NDJcdTc3YWRcdTgwNGFcdTg0ZmMiXSxbImQ3YTEiLCJcdTkwN2NcdTliMjdcdTlmOGRcdTU4ZDhcdTVhNDFcdTVjNjJcdTZhMTNcdTZkZGFcdTZmMGZcdTc2M2JcdTdkMmZcdTdlMzdcdTg1MWVc'@; put 'dTg5MzhcdTkzZTRcdTk2NGJcdTUyODlcdTY1ZDJcdTY3ZjNcdTY5YjRcdTZkNDFcdTZlOWNcdTcwMGZcdTc0MDlcdTc0NjBcdTc1NTlcdTc2MjRcdTc4NmJcdThiMmNcdTk4NWVcdTUxNmRcdTYyMmVcdTk2NzhcdTRmOTZcdTUwMmJcdTVkMTlcdTZkZWFcdTdkYjhcdThmMmFcdTVmOGJcdTYx'@; put 'NDRcdTY4MTdcdWY5NjFcdTk2ODZcdTUyZDJcdTgwOGJcdTUxZGNcdTUxY2NcdTY5NWVcdTdhMWNcdTdkYmVcdTgzZjFcdTk2NzVcdTRmZGFcdTUyMjlcdTUzOThcdTU0MGZcdTU1MGVcdTVjNjVcdTYwYTdcdTY3NGVcdTY4YThcdTZkNmNcdTcyODFcdTcyZjhcdTc0MDZcdTc0ODNcdWY5NjJc'@; put 'dTc1ZTJcdTdjNmNcdTdmNzlcdTdmYjhcdTgzODlcdTg4Y2ZcdTg4ZTFcdTkxY2NcdTkxZDBcdTk2ZTJcdTliYzlcdTU0MWRcdTZmN2VcdTcxZDBcdTc0OThcdTg1ZmFcdThlYWFcdTk2YTNcdTljNTdcdTllOWZcdTY3OTdcdTZkY2JcdTc0MzNcdTgxZThcdTk3MTZcdTc4MmMiXSxbImQ4YTEi'@; put 'LCJcdTdhY2JcdTdiMjBcdTdjOTJcdTY0NjlcdTc0NmFcdTc1ZjJcdTc4YmNcdTc4ZThcdTk5YWNcdTliNTRcdTllYmJcdTViZGVcdTVlNTVcdTZmMjBcdTgxOWNcdTgzYWJcdTkwODhcdTRlMDdcdTUzNGRcdTVhMjlcdTVkZDJcdTVmNGVcdTYxNjJcdTYzM2RcdTY2NjlcdTY2ZmNcdTZlZmZc'@; put 'dTZmMmJcdTcwNjNcdTc3OWVcdTg0MmNcdTg1MTNcdTg4M2JcdThmMTNcdTk5NDVcdTljM2JcdTU1MWNcdTYyYjlcdTY3MmJcdTZjYWJcdTgzMDlcdTg5NmFcdTk3N2FcdTRlYTFcdTU5ODRcdTVmZDhcdTVmZDlcdTY3MWJcdTdkYjJcdTdmNTRcdTgyOTJcdTgzMmJcdTgzYmRcdThmMWVcdTkw'@; put 'OTlcdTU3Y2JcdTU5YjlcdTVhOTJcdTViZDBcdTY2MjdcdTY3OWFcdTY4ODVcdTZiY2ZcdTcxNjRcdTdmNzVcdThjYjdcdThjZTNcdTkwODFcdTliNDVcdTgxMDhcdThjOGFcdTk2NGNcdTlhNDBcdTllYTVcdTViNWZcdTZjMTNcdTczMWJcdTc2ZjJcdTc2ZGZcdTg0MGNcdTUxYWFcdTg5OTNc'@; put 'dTUxNGRcdTUxOTVcdTUyYzlcdTY4YzlcdTZjOTRcdTc3MDRcdTc3MjBcdTdkYmZcdTdkZWNcdTk3NjJcdTllYjVcdTZlYzUiXSxbImQ5YTEiLCJcdTg1MTFcdTUxYTVcdTU0MGRcdTU0N2RcdTY2MGVcdTY2OWRcdTY5MjdcdTZlOWZcdTc2YmZcdTc3OTFcdTgzMTdcdTg0YzJcdTg3OWZcdTkx'@; put 'NjlcdTkyOThcdTljZjRcdTg4ODJcdTRmYWVcdTUxOTJcdTUyZGZcdTU5YzZcdTVlM2RcdTYxNTVcdTY0NzhcdTY0NzlcdTY2YWVcdTY3ZDBcdTZhMjFcdTZiY2RcdTZiZGJcdTcyNWZcdTcyNjFcdTc0NDFcdTc3MzhcdTc3ZGJcdTgwMTdcdTgyYmNcdTgzMDVcdThiMDBcdThiMjhcdThjOGNc'@; put 'dTY3MjhcdTZjOTBcdTcyNjdcdTc2ZWVcdTc3NjZcdTdhNDZcdTlkYTlcdTZiN2ZcdTZjOTJcdTU5MjJcdTY3MjZcdTg0OTlcdTUzNmZcdTU4OTNcdTU5OTlcdTVlZGZcdTYzY2ZcdTY2MzRcdTY3NzNcdTZlM2FcdTczMmJcdTdhZDdcdTgyZDdcdTkzMjhcdTUyZDlcdTVkZWJcdTYxYWVcdTYx'@; put 'Y2JcdTYyMGFcdTYyYzdcdTY0YWJcdTY1ZTBcdTY5NTlcdTZiNjZcdTZiY2JcdTcxMjFcdTczZjdcdTc1NWRcdTdlNDZcdTgyMWVcdTgzMDJcdTg1NmFcdThhYTNcdThjYmZcdTk3MjdcdTlkNjFcdTU4YThcdTllZDhcdTUwMTFcdTUyMGVcdTU0M2JcdTU1NGZcdTY1ODciXSxbImRhYTEiLCJc'@; put 'dTZjNzZcdTdkMGFcdTdkMGJcdTgwNWVcdTg2OGFcdTk1ODBcdTk2ZWZcdTUyZmZcdTZjOTVcdTcyNjlcdTU0NzNcdTVhOWFcdTVjM2VcdTVkNGJcdTVmNGNcdTVmYWVcdTY3MmFcdTY4YjZcdTY5NjNcdTZlM2NcdTZlNDRcdTc3MDlcdTdjNzNcdTdmOGVcdTg1ODdcdThiMGVcdThmZjdcdTk3'@; put 'NjFcdTllZjRcdTVjYjdcdTYwYjZcdTYxMGRcdTYxYWJcdTY1NGZcdTY1ZmJcdTY1ZmNcdTZjMTFcdTZjZWZcdTczOWZcdTczYzlcdTdkZTFcdTk1OTRcdTViYzZcdTg3MWNcdThiMTBcdTUyNWRcdTUzNWFcdTYyY2RcdTY0MGZcdTY0YjJcdTY3MzRcdTZhMzhcdTZjY2FcdTczYzBcdTc0OWVc'@; put 'dTdiOTRcdTdjOTVcdTdlMWJcdTgxOGFcdTgyMzZcdTg1ODRcdThmZWJcdTk2ZjlcdTk5YzFcdTRmMzRcdTUzNGFcdTUzY2RcdTUzZGJcdTYyY2NcdTY0MmNcdTY1MDBcdTY1OTFcdTY5YzNcdTZjZWVcdTZmNThcdTczZWRcdTc1NTRcdTc2MjJcdTc2ZTRcdTc2ZmNcdTc4ZDBcdTc4ZmJcdTc5'@; put 'MmNcdTdkNDZcdTgyMmNcdTg3ZTBcdThmZDRcdTk4MTJcdTk4ZWZcdTUyYzNcdTYyZDRcdTY0YTVcdTZlMjRcdTZmNTEiXSxbImRiYTEiLCJcdTc2N2NcdThkY2JcdTkxYjFcdTkyNjJcdTlhZWVcdTliNDNcdTUwMjNcdTUwOGRcdTU3NGFcdTU5YThcdTVjMjhcdTVlNDdcdTVmNzdcdTYyM2Zc'@; put 'dTY1M2VcdTY1YjlcdTY1YzFcdTY2MDlcdTY3OGJcdTY5OWNcdTZlYzJcdTc4YzVcdTdkMjFcdTgwYWFcdTgxODBcdTgyMmJcdTgyYjNcdTg0YTFcdTg2OGNcdThhMmFcdThiMTdcdTkwYTZcdTk2MzJcdTlmOTBcdTUwMGRcdTRmZjNcdWY5NjNcdTU3ZjlcdTVmOThcdTYyZGNcdTYzOTJcdTY3'@; put 'NmZcdTZlNDNcdTcxMTlcdTc2YzNcdTgwY2NcdTgwZGFcdTg4ZjRcdTg4ZjVcdTg5MTlcdThjZTBcdThmMjlcdTkxNGRcdTk2NmFcdTRmMmZcdTRmNzBcdTVlMWJcdTY3Y2ZcdTY4MjJcdTc2N2RcdTc2N2VcdTliNDRcdTVlNjFcdTZhMGFcdTcxNjlcdTcxZDRcdTc1NmFcdWY5NjRcdTdlNDFc'@; put 'dTg1NDNcdTg1ZTlcdTk4ZGNcdTRmMTBcdTdiNGZcdTdmNzBcdTk1YTVcdTUxZTFcdTVlMDZcdTY4YjVcdTZjM2VcdTZjNGVcdTZjZGJcdTcyYWZcdTdiYzRcdTgzMDNcdTZjZDVcdTc0M2FcdTUwZmJcdTUyODhcdTU4YzFcdTY0ZDhcdTZhOTdcdTc0YTdcdTc2NTYiXSxbImRjYTEiLCJcdTc4'@; put 'YTdcdTg2MTdcdTk1ZTJcdTk3MzlcdWY5NjVcdTUzNWVcdTVmMDFcdThiOGFcdThmYThcdThmYWZcdTkwOGFcdTUyMjVcdTc3YTVcdTljNDlcdTlmMDhcdTRlMTlcdTUwMDJcdTUxNzVcdTVjNWJcdTVlNzdcdTY2MWVcdTY2M2FcdTY3YzRcdTY4YzVcdTcwYjNcdTc1MDFcdTc1YzVcdTc5Yzlc'@; put 'dTdhZGRcdThmMjdcdTk5MjBcdTlhMDhcdTRmZGRcdTU4MjFcdTU4MzFcdTViZjZcdTY2NmVcdTZiNjVcdTZkMTFcdTZlN2FcdTZmN2RcdTczZTRcdTc1MmJcdTgzZTlcdTg4ZGNcdTg5MTNcdThiNWNcdThmMTRcdTRmMGZcdTUwZDVcdTUzMTBcdTUzNWNcdTViOTNcdTVmYTlcdTY3MGRcdTc5'@; put 'OGZcdTgxNzlcdTgzMmZcdTg1MTRcdTg5MDdcdTg5ODZcdThmMzlcdThmM2JcdTk5YTVcdTljMTJcdTY3MmNcdTRlNzZcdTRmZjhcdTU5NDlcdTVjMDFcdTVjZWZcdTVjZjBcdTYzNjdcdTY4ZDJcdTcwZmRcdTcxYTJcdTc0MmJcdTdlMmJcdTg0ZWNcdTg3MDJcdTkwMjJcdTkyZDJcdTljZjNc'@; put 'dTRlMGRcdTRlZDhcdTRmZWZcdTUwODVcdTUyNTZcdTUyNmZcdTU0MjZcdTU0OTBcdTU3ZTBcdTU5MmJcdTVhNjYiXSxbImRkYTEiLCJcdTViNWFcdTViNzVcdTViY2NcdTVlOWNcdWY5NjZcdTYyNzZcdTY1NzdcdTY1YTdcdTZkNmVcdTZlYTVcdTcyMzZcdTdiMjZcdTdjM2ZcdTdmMzZcdTgx'@; put 'NTBcdTgxNTFcdTgxOWFcdTgyNDBcdTgyOTlcdTgzYTlcdThhMDNcdThjYTBcdThjZTZcdThjZmJcdThkNzRcdThkYmFcdTkwZThcdTkxZGNcdTk2MWNcdTk2NDRcdTk5ZDlcdTljZTdcdTUzMTdcdTUyMDZcdTU0MjlcdTU2NzRcdTU4YjNcdTU5NTRcdTU5NmVcdTVmZmZcdTYxYTRcdTYyNmVc'@; put 'dTY2MTBcdTZjN2VcdTcxMWFcdTc2YzZcdTdjODlcdTdjZGVcdTdkMWJcdTgyYWNcdThjYzFcdTk2ZjBcdWY5NjdcdTRmNWJcdTVmMTdcdTVmN2ZcdTYyYzJcdTVkMjlcdTY3MGJcdTY4ZGFcdTc4N2NcdTdlNDNcdTlkNmNcdTRlMTVcdTUwOTlcdTUzMTVcdTUzMmFcdTUzNTFcdTU5ODNcdTVh'@; put 'NjJcdTVlODdcdTYwYjJcdTYxOGFcdTYyNDlcdTYyNzlcdTY1OTBcdTY3ODdcdTY5YTdcdTZiZDRcdTZiZDZcdTZiZDdcdTZiZDhcdTZjYjhcdWY5NjhcdTc0MzVcdTc1ZmFcdTc4MTJcdTc4OTFcdTc5ZDVcdTc5ZDhcdTdjODNcdTdkY2JcdTdmZTFcdTgwYTUiXSxbImRlYTEiLCJcdTgxM2Vc'@; put 'dTgxYzJcdTgzZjJcdTg3MWFcdTg4ZThcdThhYjlcdThiNmNcdThjYmJcdTkxMTlcdTk3NWVcdTk4ZGJcdTlmM2JcdTU2YWNcdTViMmFcdTVmNmNcdTY1OGNcdTZhYjNcdTZiYWZcdTZkNWNcdTZmZjFcdTcwMTVcdTcyNWRcdTczYWRcdThjYTdcdThjZDNcdTk4M2JcdTYxOTFcdTZjMzdcdTgw'@; put 'NThcdTlhMDFcdTRlNGRcdTRlOGJcdTRlOWJcdTRlZDVcdTRmM2FcdTRmM2NcdTRmN2ZcdTRmZGZcdTUwZmZcdTUzZjJcdTUzZjhcdTU1MDZcdTU1ZTNcdTU2ZGJcdTU4ZWJcdTU5NjJcdTVhMTFcdTViZWJcdTViZmFcdTVjMDRcdTVkZjNcdTVlMmJcdTVmOTlcdTYwMWRcdTYzNjhcdTY1OWNc'@; put 'dTY1YWZcdTY3ZjZcdTY3ZmJcdTY4YWRcdTZiN2JcdTZjOTlcdTZjZDdcdTZlMjNcdTcwMDlcdTczNDVcdTc4MDJcdTc5M2VcdTc5NDBcdTc5NjBcdTc5YzFcdTdiZTlcdTdkMTdcdTdkNzJcdTgwODZcdTgyMGRcdTgzOGVcdTg0ZDFcdTg2YzdcdTg4ZGZcdThhNTBcdThhNWVcdThiMWRcdThj'@; put 'ZGNcdThkNjZcdThmYWRcdTkwYWFcdTk4ZmNcdTk5ZGZcdTllOWRcdTUyNGFcdWY5NjlcdTY3MTRcdWY5NmEiXSxbImRmYTEiLCJcdTUwOThcdTUyMmFcdTVjNzFcdTY1NjNcdTZjNTVcdTczY2FcdTc1MjNcdTc1OWRcdTdiOTdcdTg0OWNcdTkxNzhcdTk3MzBcdTRlNzdcdTY0OTJcdTZiYmFc'@; put 'dTcxNWVcdTg1YTlcdTRlMDlcdWY5NmJcdTY3NDlcdTY4ZWVcdTZlMTdcdTgyOWZcdTg1MThcdTg4NmJcdTYzZjdcdTZmODFcdTkyMTJcdTk4YWZcdTRlMGFcdTUwYjdcdTUwY2ZcdTUxMWZcdTU1NDZcdTU1YWFcdTU2MTdcdTViNDBcdTVjMTlcdTVjZTBcdTVlMzhcdTVlOGFcdTVlYTBcdTVl'@; put 'YzJcdTYwZjNcdTY4NTFcdTZhNjFcdTZlNThcdTcyM2RcdTcyNDBcdTcyYzBcdTc2ZjhcdTc5NjVcdTdiYjFcdTdmZDRcdTg4ZjNcdTg5ZjRcdThhNzNcdThjNjFcdThjZGVcdTk3MWNcdTU4NWVcdTc0YmRcdThjZmRcdTU1YzdcdWY5NmNcdTdhNjFcdTdkMjJcdTgyNzJcdTcyNzJcdTc1MWZc'@; put 'dTc1MjVcdWY5NmRcdTdiMTlcdTU4ODVcdTU4ZmJcdTVkYmNcdTVlOGZcdTVlYjZcdTVmOTBcdTYwNTVcdTYyOTJcdTYzN2ZcdTY1NGRcdTY2OTFcdTY2ZDlcdTY2ZjhcdTY4MTZcdTY4ZjJcdTcyODBcdTc0NWVcdTdiNmVcdTdkNmVcdTdkZDZcdTdmNzIiXSxbImUwYTEiLCJcdTgwZTVcdTgy'@; put 'MTJcdTg1YWZcdTg5N2ZcdThhOTNcdTkwMWRcdTkyZTRcdTllY2RcdTlmMjBcdTU5MTVcdTU5NmRcdTVlMmRcdTYwZGNcdTY2MTRcdTY2NzNcdTY3OTBcdTZjNTBcdTZkYzVcdTZmNWZcdTc3ZjNcdTc4YTlcdTg0YzZcdTkxY2JcdTkzMmJcdTRlZDlcdTUwY2FcdTUxNDhcdTU1ODRcdTViMGJc'@; put 'dTViYTNcdTYyNDdcdTY1N2VcdTY1Y2JcdTZlMzJcdTcxN2RcdTc0MDFcdTc0NDRcdTc0ODdcdTc0YmZcdTc2NmNcdTc5YWFcdTdkZGFcdTdlNTVcdTdmYThcdTgxN2FcdTgxYjNcdTgyMzlcdTg2MWFcdTg3ZWNcdThhNzVcdThkZTNcdTkwNzhcdTkyOTFcdTk0MjVcdTk5NGRcdTliYWVcdTUz'@; put 'NjhcdTVjNTFcdTY5NTRcdTZjYzRcdTZkMjlcdTZlMmJcdTgyMGNcdTg1OWJcdTg5M2JcdThhMmRcdThhYWFcdTk2ZWFcdTlmNjdcdTUyNjFcdTY2YjlcdTZiYjJcdTdlOTZcdTg3ZmVcdThkMGRcdTk1ODNcdTk2NWRcdTY1MWRcdTZkODlcdTcxZWVcdWY5NmVcdTU3Y2VcdTU5ZDNcdTViYWNc'@; put 'dTYwMjdcdTYwZmFcdTYyMTBcdTY2MWZcdTY2NWZcdTczMjlcdTczZjlcdTc2ZGJcdTc3MDFcdTdiNmMiXSxbImUxYTEiLCJcdTgwNTZcdTgwNzJcdTgxNjVcdThhYTBcdTkxOTJcdTRlMTZcdTUyZTJcdTZiNzJcdTZkMTdcdTdhMDVcdTdiMzlcdTdkMzBcdWY5NmZcdThjYjBcdTUzZWNcdTU2'@; put 'MmZcdTU4NTFcdTViYjVcdTVjMGZcdTVjMTFcdTVkZTJcdTYyNDBcdTYzODNcdTY0MTRcdTY2MmRcdTY4YjNcdTZjYmNcdTZkODhcdTZlYWZcdTcwMWZcdTcwYTRcdTcxZDJcdTc1MjZcdTc1OGZcdTc1OGVcdTc2MTlcdTdiMTFcdTdiZTBcdTdjMmJcdTdkMjBcdTdkMzlcdTg1MmNcdTg1NmRc'@; put 'dTg2MDdcdThhMzRcdTkwMGRcdTkwNjFcdTkwYjVcdTkyYjdcdTk3ZjZcdTlhMzdcdTRmZDdcdTVjNmNcdTY3NWZcdTZkOTFcdTdjOWZcdTdlOGNcdThiMTZcdThkMTZcdTkwMWZcdTViNmJcdTVkZmRcdTY0MGRcdTg0YzBcdTkwNWNcdTk4ZTFcdTczODdcdTViOGJcdTYwOWFcdTY3N2VcdTZk'@; put 'ZGVcdThhMWZcdThhYTZcdTkwMDFcdTk4MGNcdTUyMzdcdWY5NzBcdTcwNTFcdTc4OGVcdTkzOTZcdTg4NzBcdTkxZDdcdTRmZWVcdTUzZDdcdTU1ZmRcdTU2ZGFcdTU3ODJcdTU4ZmRcdTVhYzJcdTViODhcdTVjYWJcdTVjYzBcdTVlMjVcdTYxMDEiXSxbImUyYTEiLCJcdTYyMGRcdTYyNGJc'@; put 'dTYzODhcdTY0MWNcdTY1MzZcdTY1NzhcdTZhMzlcdTZiOGFcdTZjMzRcdTZkMTlcdTZmMzFcdTcxZTdcdTcyZTlcdTczNzhcdTc0MDdcdTc0YjJcdTc2MjZcdTc3NjFcdTc5YzBcdTdhNTdcdTdhZWFcdTdjYjlcdTdkOGZcdTdkYWNcdTdlNjFcdTdmOWVcdTgxMjlcdTgzMzFcdTg0OTBcdTg0'@; put 'ZGFcdTg1ZWFcdTg4OTZcdThhYjBcdThiOTBcdThmMzhcdTkwNDJcdTkwODNcdTkxNmNcdTkyOTZcdTkyYjlcdTk2OGJcdTk2YTdcdTk2YThcdTk2ZDZcdTk3MDBcdTk4MDhcdTk5OTZcdTlhZDNcdTliMWFcdTUzZDRcdTU4N2VcdTU5MTlcdTViNzBcdTViYmZcdTZkZDFcdTZmNWFcdTcxOWZc'@; put 'dTc0MjFcdTc0YjlcdTgwODVcdTgzZmRcdTVkZTFcdTVmODdcdTVmYWFcdTYwNDJcdTY1ZWNcdTY4MTJcdTY5NmZcdTZhNTNcdTZiODlcdTZkMzVcdTZkZjNcdTczZTNcdTc2ZmVcdTc3YWNcdTdiNGRcdTdkMTRcdTgxMjNcdTgyMWNcdTgzNDBcdTg0ZjRcdTg1NjNcdThhNjJcdThhYzRcdTkx'@; put 'ODdcdTkzMWVcdTk4MDZcdTk5YjRcdTYyMGNcdTg4NTNcdThmZjBcdTkyNjVcdTVkMDdcdTVkMjciXSxbImUzYTEiLCJcdTVkNjlcdTc0NWZcdTgxOWRcdTg3NjhcdTZmZDVcdTYyZmVcdTdmZDJcdTg5MzZcdTg5NzJcdTRlMWVcdTRlNThcdTUwZTdcdTUyZGRcdTUzNDdcdTYyN2ZcdTY2MDdc'@; put 'dTdlNjlcdTg4MDVcdTk2NWVcdTRmOGRcdTUzMTlcdTU2MzZcdTU5Y2JcdTVhYTRcdTVjMzhcdTVjNGVcdTVjNGRcdTVlMDJcdTVmMTFcdTYwNDNcdTY1YmRcdTY2MmZcdTY2NDJcdTY3YmVcdTY3ZjRcdTczMWNcdTc3ZTJcdTc5M2FcdTdmYzVcdTg0OTRcdTg0Y2RcdTg5OTZcdThhNjZcdThh'@; put 'NjlcdThhZTFcdThjNTVcdThjN2FcdTU3ZjRcdTViZDRcdTVmMGZcdTYwNmZcdTYyZWRcdTY5MGRcdTZiOTZcdTZlNWNcdTcxODRcdTdiZDJcdTg3NTVcdThiNThcdThlZmVcdTk4ZGZcdTk4ZmVcdTRmMzhcdTRmODFcdTRmZTFcdTU0N2JcdTVhMjBcdTViYjhcdTYxM2NcdTY1YjBcdTY2Njhc'@; put 'dTcxZmNcdTc1MzNcdTc5NWVcdTdkMzNcdTgxNGVcdTgxZTNcdTgzOThcdTg1YWFcdTg1Y2VcdTg3MDNcdThhMGFcdThlYWJcdThmOWJcdWY5NzFcdThmYzVcdTU5MzFcdTViYTRcdTViZTZcdTYwODlcdTViZTlcdTVjMGJcdTVmYzNcdTZjODEiXSxbImU0YTEiLCJcdWY5NzJcdTZkZjFcdTcw'@; put 'MGJcdTc1MWFcdTgyYWZcdThhZjZcdTRlYzBcdTUzNDFcdWY5NzNcdTk2ZDlcdTZjMGZcdTRlOWVcdTRmYzRcdTUxNTJcdTU1NWVcdTVhMjVcdTVjZThcdTYyMTFcdTcyNTlcdTgyYmRcdTgzYWFcdTg2ZmVcdTg4NTlcdThhMWRcdTk2M2ZcdTk2YzVcdTk5MTNcdTlkMDlcdTlkNWRcdTU4MGFc'@; put 'dTVjYjNcdTVkYmRcdTVlNDRcdTYwZTFcdTYxMTVcdTYzZTFcdTZhMDJcdTZlMjVcdTkxMDJcdTkzNTRcdTk4NGVcdTljMTBcdTlmNzdcdTViODlcdTVjYjhcdTYzMDlcdTY2NGZcdTY4NDhcdTc3M2NcdTk2YzFcdTk3OGRcdTk4NTRcdTliOWZcdTY1YTFcdThiMDFcdThlY2JcdTk1YmNcdTU1'@; put 'MzVcdTVjYTlcdTVkZDZcdTVlYjVcdTY2OTdcdTc2NGNcdTgzZjRcdTk1YzdcdTU4ZDNcdTYyYmNcdTcyY2VcdTlkMjhcdTRlZjBcdTU5MmVcdTYwMGZcdTY2M2JcdTZiODNcdTc5ZTdcdTlkMjZcdTUzOTNcdTU0YzBcdTU3YzNcdTVkMTZcdTYxMWJcdTY2ZDZcdTZkYWZcdTc4OGRcdTgyN2Vc'@; put 'dTk2OThcdTk3NDRcdTUzODRcdTYyN2NcdTYzOTZcdTZkYjJcdTdlMGFcdTgxNGJcdTk4NGQiXSxbImU1YTEiLCJcdTZhZmJcdTdmNGNcdTlkYWZcdTllMWFcdTRlNWZcdTUwM2JcdTUxYjZcdTU5MWNcdTYwZjlcdTYzZjZcdTY5MzBcdTcyM2FcdTgwMzZcdWY5NzRcdTkxY2VcdTVmMzFcdWY5'@; put 'NzVcdWY5NzZcdTdkMDRcdTgyZTVcdTg0NmZcdTg0YmJcdTg1ZTVcdThlOGRcdWY5NzdcdTRmNmZcdWY5NzhcdWY5NzlcdTU4ZTRcdTViNDNcdTYwNTlcdTYzZGFcdTY1MThcdTY1NmRcdTY2OThcdWY5N2FcdTY5NGFcdTZhMjNcdTZkMGJcdTcwMDFcdTcxNmNcdTc1ZDJcdTc2MGRcdTc5YjNc'@; put 'dTdhNzBcdWY5N2JcdTdmOGFcdWY5N2NcdTg5NDRcdWY5N2RcdThiOTNcdTkxYzBcdTk2N2RcdWY5N2VcdTk5MGFcdTU3MDRcdTVmYTFcdTY1YmNcdTZmMDFcdTc2MDBcdTc5YTZcdThhOWVcdTk5YWRcdTliNWFcdTlmNmNcdTUxMDRcdTYxYjZcdTYyOTFcdTZhOGRcdTgxYzZcdTUwNDNcdTU4'@; put 'MzBcdTVmNjZcdTcxMDlcdThhMDBcdThhZmFcdTViN2NcdTg2MTZcdTRmZmFcdTUxM2NcdTU2YjRcdTU5NDRcdTYzYTlcdTZkZjlcdTVkYWFcdTY5NmRcdTUxODZcdTRlODhcdTRmNTlcdWY5N2ZcdWY5ODBcdWY5ODFcdTU5ODJcdWY5ODIiXSxbImU2YTEiLCJcdWY5ODNcdTZiNWZcdTZjNWRc'@; put 'dWY5ODRcdTc0YjVcdTc5MTZcdWY5ODVcdTgyMDdcdTgyNDVcdTgzMzlcdThmM2ZcdThmNWRcdWY5ODZcdTk5MThcdWY5ODdcdWY5ODhcdWY5ODlcdTRlYTZcdWY5OGFcdTU3ZGZcdTVmNzlcdTY2MTNcdWY5OGJcdWY5OGNcdTc1YWJcdTdlNzlcdThiNmZcdWY5OGRcdTkwMDZcdTlhNWJcdTU2'@; put 'YTVcdTU4MjdcdTU5ZjhcdTVhMWZcdTViYjRcdWY5OGVcdTVlZjZcdWY5OGZcdWY5OTBcdTYzNTBcdTYzM2JcdWY5OTFcdTY5M2RcdTZjODdcdTZjYmZcdTZkOGVcdTZkOTNcdTZkZjVcdTZmMTRcdWY5OTJcdTcwZGZcdTcxMzZcdTcxNTlcdWY5OTNcdTcxYzNcdTcxZDVcdWY5OTRcdTc4NGZc'@; put 'dTc4NmZcdWY5OTVcdTdiNzVcdTdkZTNcdWY5OTZcdTdlMmZcdWY5OTdcdTg4NGRcdThlZGZcdWY5OThcdWY5OTlcdWY5OWFcdTkyNWJcdWY5OWJcdTljZjZcdWY5OWNcdWY5OWRcdWY5OWVcdTYwODVcdTZkODVcdWY5OWZcdTcxYjFcdWY5YTBcdWY5YTFcdTk1YjFcdTUzYWRcdWY5YTJcdWY5'@; put 'YTNcdWY5YTRcdTY3ZDNcdWY5YTVcdTcwOGVcdTcxMzBcdTc0MzBcdTgyNzZcdTgyZDIiXSxbImU3YTEiLCJcdWY5YTZcdTk1YmJcdTlhZTVcdTllN2RcdTY2YzRcdWY5YTdcdTcxYzFcdTg0NDlcdWY5YThcdWY5YTlcdTU4NGJcdWY5YWFcdWY5YWJcdTVkYjhcdTVmNzFcdWY5YWNcdTY2MjBc'@; put 'dTY2OGVcdTY5NzlcdTY5YWVcdTZjMzhcdTZjZjNcdTZlMzZcdTZmNDFcdTZmZGFcdTcwMWJcdTcwMmZcdTcxNTBcdTcxZGZcdTczNzBcdWY5YWRcdTc0NWJcdWY5YWVcdTc0ZDRcdTc2YzhcdTdhNGVcdTdlOTNcdWY5YWZcdWY5YjBcdTgyZjFcdThhNjBcdThmY2VcdWY5YjFcdTkzNDhcdWY5'@; put 'YjJcdTk3MTlcdWY5YjNcdWY5YjRcdTRlNDJcdTUwMmFcdWY5YjVcdTUyMDhcdTUzZTFcdTY2ZjNcdTZjNmRcdTZmY2FcdTczMGFcdTc3N2ZcdTdhNjJcdTgyYWVcdTg1ZGRcdTg2MDJcdWY5YjZcdTg4ZDRcdThhNjNcdThiN2RcdThjNmJcdWY5YjdcdTkyYjNcdWY5YjhcdTk3MTNcdTk4MTBc'@; put 'dTRlOTRcdTRmMGRcdTRmYzlcdTUwYjJcdTUzNDhcdTU0M2VcdTU0MzNcdTU1ZGFcdTU4NjJcdTU4YmFcdTU5NjdcdTVhMWJcdTViZTRcdTYwOWZcdWY5YjlcdTYxY2FcdTY1NTZcdTY1ZmZcdTY2NjRcdTY4YTdcdTZjNWFcdTZmYjMiXSxbImU4YTEiLCJcdTcwY2ZcdTcxYWNcdTczNTJcdTdi'@; put 'N2RcdTg3MDhcdThhYTRcdTljMzJcdTlmMDdcdTVjNGJcdTZjODNcdTczNDRcdTczODlcdTkyM2FcdTZlYWJcdTc0NjVcdTc2MWZcdTdhNjlcdTdlMTVcdTg2MGFcdTUxNDBcdTU4YzVcdTY0YzFcdTc0ZWVcdTc1MTVcdTc2NzBcdTdmYzFcdTkwOTVcdTk2Y2RcdTk5NTRcdTZlMjZcdTc0ZTZc'@; put 'dTdhYTlcdTdhYWFcdTgxZTVcdTg2ZDlcdTg3NzhcdThhMWJcdTVhNDlcdTViOGNcdTViOWJcdTY4YTFcdTY5MDBcdTZkNjNcdTczYTlcdTc0MTNcdTc0MmNcdTc4OTdcdTdkZTlcdTdmZWJcdTgxMThcdTgxNTVcdTgzOWVcdThjNGNcdTk2MmVcdTk4MTFcdTY2ZjBcdTVmODBcdTY1ZmFcdTY3'@; put 'ODlcdTZjNmFcdTczOGJcdTUwMmRcdTVhMDNcdTZiNmFcdTc3ZWVcdTU5MTZcdTVkNmNcdTVkY2RcdTczMjVcdTc1NGZcdWY5YmFcdWY5YmJcdTUwZTVcdTUxZjlcdTU4MmZcdTU5MmRcdTU5OTZcdTU5ZGFcdTViZTVcdWY5YmNcdWY5YmRcdTVkYTJcdTYyZDdcdTY0MTZcdTY0OTNcdTY0ZmVc'@; put 'dWY5YmVcdTY2ZGNcdWY5YmZcdTZhNDhcdWY5YzBcdTcxZmZcdTc0NjRcdWY5YzEiXSxbImU5YTEiLCJcdTdhODhcdTdhYWZcdTdlNDdcdTdlNWVcdTgwMDBcdTgxNzBcdWY5YzJcdTg3ZWZcdTg5ODFcdThiMjBcdTkwNTlcdWY5YzNcdTkwODBcdTk5NTJcdTYxN2VcdTZiMzJcdTZkNzRcdTdl'@; put 'MWZcdTg5MjVcdThmYjFcdTRmZDFcdTUwYWRcdTUxOTdcdTUyYzdcdTU3YzdcdTU4ODlcdTViYjlcdTVlYjhcdTYxNDJcdTY5OTVcdTZkOGNcdTZlNjdcdTZlYjZcdTcxOTRcdTc0NjJcdTc1MjhcdTc1MmNcdTgwNzNcdTgzMzhcdTg0YzlcdThlMGFcdTkzOTRcdTkzZGVcdWY5YzRcdTRlOGVc'@; put 'dTRmNTFcdTUwNzZcdTUxMmFcdTUzYzhcdTUzY2JcdTUzZjNcdTViODdcdTViZDNcdTVjMjRcdTYxMWFcdTYxODJcdTY1ZjRcdTcyNWJcdTczOTdcdTc0NDBcdTc2YzJcdTc5NTBcdTc5OTFcdTc5YjlcdTdkMDZcdTdmYmRcdTgyOGJcdTg1ZDVcdTg2NWVcdThmYzJcdTkwNDdcdTkwZjVcdTkx'@; put 'ZWFcdTk2ODVcdTk2ZThcdTk2ZTlcdTUyZDZcdTVmNjdcdTY1ZWRcdTY2MzFcdTY4MmZcdTcxNWNcdTdhMzZcdTkwYzFcdTk4MGFcdTRlOTFcdWY5YzVcdTZhNTJcdTZiOWVcdTZmOTBcdTcxODlcdTgwMThcdTgyYjhcdTg1NTMiXSxbImVhYTEiLCJcdTkwNGJcdTk2OTVcdTk2ZjJcdTk3ZmJc'@; put 'dTg1MWFcdTliMzFcdTRlOTBcdTcxOGFcdTk2YzRcdTUxNDNcdTUzOWZcdTU0ZTFcdTU3MTNcdTU3MTJcdTU3YTNcdTVhOWJcdTVhYzRcdTViYzNcdTYwMjhcdTYxM2ZcdTYzZjRcdTZjODVcdTZkMzlcdTZlNzJcdTZlOTBcdTcyMzBcdTczM2ZcdTc0NTdcdTgyZDFcdTg4ODFcdThmNDVcdTkw'@; put 'NjBcdWY5YzZcdTk2NjJcdTk4NThcdTlkMWJcdTY3MDhcdThkOGFcdTkyNWVcdTRmNGRcdTUwNDlcdTUwZGVcdTUzNzFcdTU3MGRcdTU5ZDRcdTVhMDFcdTVjMDlcdTYxNzBcdTY2OTBcdTZlMmRcdTcyMzJcdTc0NGJcdTdkZWZcdTgwYzNcdTg0MGVcdTg0NjZcdTg1M2ZcdTg3NWZcdTg4NWJc'@; put 'dTg5MThcdThiMDJcdTkwNTVcdTk3Y2JcdTliNGZcdTRlNzNcdTRmOTFcdTUxMTJcdTUxNmFcdWY5YzdcdTU1MmZcdTU1YTlcdTViN2FcdTViYTVcdTVlN2NcdTVlN2RcdTVlYmVcdTYwYTBcdTYwZGZcdTYxMDhcdTYxMDlcdTYzYzRcdTY1MzhcdTY3MDlcdWY5YzhcdTY3ZDRcdTY3ZGFcdWY5'@; put 'YzlcdTY5NjFcdTY5NjJcdTZjYjlcdTZkMjdcdWY5Y2FcdTZlMzhcdWY5Y2IiXSxbImViYTEiLCJcdTZmZTFcdTczMzZcdTczMzdcdWY5Y2NcdTc0NWNcdTc1MzFcdWY5Y2RcdTc2NTJcdWY5Y2VcdWY5Y2ZcdTdkYWRcdTgxZmVcdTg0MzhcdTg4ZDVcdThhOThcdThhZGJcdThhZWRcdThlMzBc'@; put 'dThlNDJcdTkwNGFcdTkwM2VcdTkwN2FcdTkxNDlcdTkxYzlcdTkzNmVcdWY5ZDBcdWY5ZDFcdTU4MDlcdWY5ZDJcdTZiZDNcdTgwODlcdTgwYjJcdWY5ZDNcdWY5ZDRcdTUxNDFcdTU5NmJcdTVjMzlcdWY5ZDVcdWY5ZDZcdTZmNjRcdTczYTdcdTgwZTRcdThkMDdcdWY5ZDdcdTkyMTdcdTk1'@; put 'OGZcdWY5ZDhcdWY5ZDlcdWY5ZGFcdWY5ZGJcdTgwN2ZcdTYyMGVcdTcwMWNcdTdkNjhcdTg3OGRcdWY5ZGNcdTU3YTBcdTYwNjlcdTYxNDdcdTZiYjdcdThhYmVcdTkyODBcdTk2YjFcdTRlNTlcdTU0MWZcdTZkZWJcdTg1MmRcdTk2NzBcdTk3ZjNcdTk4ZWVcdTYzZDZcdTZjZTNcdTkwOTFc'@; put 'dTUxZGRcdTYxYzlcdTgxYmFcdTlkZjlcdTRmOWRcdTUwMWFcdTUxMDBcdTViOWNcdTYxMGZcdTYxZmZcdTY0ZWNcdTY5MDVcdTZiYzVcdTc1OTFcdTc3ZTNcdTdmYTlcdTgyNjRcdTg1OGZcdTg3ZmJcdTg4NjNcdThhYmMiXSxbImVjYTEiLCJcdThiNzBcdTkxYWJcdTRlOGNcdTRlZTVcdTRm'@; put 'MGFcdWY5ZGRcdWY5ZGVcdTU5MzdcdTU5ZThcdWY5ZGZcdTVkZjJcdTVmMWJcdTVmNWJcdTYwMjFcdWY5ZTBcdWY5ZTFcdWY5ZTJcdWY5ZTNcdTcyM2VcdTczZTVcdWY5ZTRcdTc1NzBcdTc1Y2RcdWY5ZTVcdTc5ZmJcdWY5ZTZcdTgwMGNcdTgwMzNcdTgwODRcdTgyZTFcdTgzNTFcdWY5ZTdc'@; put 'dWY5ZThcdThjYmRcdThjYjNcdTkwODdcdWY5ZTlcdWY5ZWFcdTk4ZjRcdTk5MGNcdWY5ZWJcdWY5ZWNcdTcwMzdcdTc2Y2FcdTdmY2FcdTdmY2NcdTdmZmNcdThiMWFcdTRlYmFcdTRlYzFcdTUyMDNcdTUzNzBcdWY5ZWRcdTU0YmRcdTU2ZTBcdTU5ZmJcdTViYzVcdTVmMTVcdTVmY2RcdTZl'@; put 'NmVcdWY5ZWVcdWY5ZWZcdTdkNmFcdTgzMzVcdWY5ZjBcdTg2OTNcdThhOGRcdWY5ZjFcdTk3NmRcdTk3NzdcdWY5ZjJcdWY5ZjNcdTRlMDBcdTRmNWFcdTRmN2VcdTU4ZjlcdTY1ZTVcdTZlYTJcdTkwMzhcdTkzYjBcdTk5YjlcdTRlZmJcdTU4ZWNcdTU5OGFcdTU5ZDlcdTYwNDFcdWY5ZjRc'@; put 'dWY5ZjVcdTdhMTRcdWY5ZjZcdTgzNGZcdThjYzNcdTUxNjVcdTUzNDQiXSxbImVkYTEiLCJcdWY5ZjdcdWY5ZjhcdWY5ZjlcdTRlY2RcdTUyNjlcdTViNTVcdTgyYmZcdTRlZDRcdTUyM2FcdTU0YThcdTU5YzlcdTU5ZmZcdTViNTBcdTViNTdcdTViNWNcdTYwNjNcdTYxNDhcdTZlY2JcdTcw'@; put 'OTlcdTcxNmVcdTczODZcdTc0ZjdcdTc1YjVcdTc4YzFcdTdkMmJcdTgwMDVcdTgxZWFcdTgzMjhcdTg1MTdcdTg1YzlcdThhZWVcdThjYzdcdTk2Y2NcdTRmNWNcdTUyZmFcdTU2YmNcdTY1YWJcdTY2MjhcdTcwN2NcdTcwYjhcdTcyMzVcdTdkYmRcdTgyOGRcdTkxNGNcdTk2YzBcdTlkNzJc'@; put 'dTViNzFcdTY4ZTdcdTZiOThcdTZmN2FcdTc2ZGVcdTVjOTFcdTY2YWJcdTZmNWJcdTdiYjRcdTdjMmFcdTg4MzZcdTk2ZGNcdTRlMDhcdTRlZDdcdTUzMjBcdTU4MzRcdTU4YmJcdTU4ZWZcdTU5NmNcdTVjMDdcdTVlMzNcdTVlODRcdTVmMzVcdTYzOGNcdTY2YjJcdTY3NTZcdTZhMWZcdTZh'@; put 'YTNcdTZiMGNcdTZmM2ZcdTcyNDZcdWY5ZmFcdTczNTBcdTc0OGJcdTdhZTBcdTdjYTdcdTgxNzhcdTgxZGZcdTgxZTdcdTgzOGFcdTg0NmNcdTg1MjNcdTg1OTRcdTg1Y2ZcdTg4ZGRcdThkMTNcdTkxYWNcdTk1NzciXSxbImVlYTEiLCJcdTk2OWNcdTUxOGRcdTU0YzlcdTU3MjhcdTViYjBc'@; put 'dTYyNGRcdTY3NTBcdTY4M2RcdTY4OTNcdTZlM2RcdTZlZDNcdTcwN2RcdTdlMjFcdTg4YzFcdThjYTFcdThmMDlcdTlmNGJcdTlmNGVcdTcyMmRcdTdiOGZcdThhY2RcdTkzMWFcdTRmNDdcdTRmNGVcdTUxMzJcdTU0ODBcdTU5ZDBcdTVlOTVcdTYyYjVcdTY3NzVcdTY5NmVcdTZhMTdcdTZj'@; put 'YWVcdTZlMWFcdTcyZDlcdTczMmFcdTc1YmRcdTdiYjhcdTdkMzVcdTgyZTdcdTgzZjlcdTg0NTdcdTg1ZjdcdThhNWJcdThjYWZcdThlODdcdTkwMTlcdTkwYjhcdTk2Y2VcdTlmNWZcdTUyZTNcdTU0MGFcdTVhZTFcdTViYzJcdTY0NThcdTY1NzVcdTZlZjRcdTcyYzRcdWY5ZmJcdTc2ODRc'@; put 'dTdhNGRcdTdiMWJcdTdjNGRcdTdlM2VcdTdmZGZcdTgzN2JcdThiMmJcdThjY2FcdThkNjRcdThkZTFcdThlNWZcdThmZWFcdThmZjlcdTkwNjlcdTkzZDFcdTRmNDNcdTRmN2FcdTUwYjNcdTUxNjhcdTUxNzhcdTUyNGRcdTUyNmFcdTU4NjFcdTU4N2NcdTU5NjBcdTVjMDhcdTVjNTVcdTVl'@; put 'ZGJcdTYwOWJcdTYyMzBcdTY4MTNcdTZiYmZcdTZjMDhcdTZmYjEiXSxbImVmYTEiLCJcdTcxNGVcdTc0MjBcdTc1MzBcdTc1MzhcdTc1NTFcdTc2NzJcdTdiNGNcdTdiOGJcdTdiYWRcdTdiYzZcdTdlOGZcdThhNmVcdThmM2VcdThmNDlcdTkyM2ZcdTkyOTNcdTkzMjJcdTk0MmJcdTk2ZmJc'@; put 'dTk4NWFcdTk4NmJcdTk5MWVcdTUyMDdcdTYyMmFcdTYyOThcdTZkNTlcdTc2NjRcdTdhY2FcdTdiYzBcdTdkNzZcdTUzNjBcdTVjYmVcdTVlOTdcdTZmMzhcdTcwYjlcdTdjOThcdTk3MTFcdTliOGVcdTllZGVcdTYzYTVcdTY0N2FcdTg3NzZcdTRlMDFcdTRlOTVcdTRlYWRcdTUwNWNcdTUw'@; put 'NzVcdTU0NDhcdTU5YzNcdTViOWFcdTVlNDBcdTVlYWRcdTVlZjdcdTVmODFcdTYwYzVcdTYzM2FcdTY1M2ZcdTY1NzRcdTY1Y2NcdTY2NzZcdTY2NzhcdTY3ZmVcdTY5NjhcdTZhODlcdTZiNjNcdTZjNDBcdTZkYzBcdTZkZThcdTZlMWZcdTZlNWVcdTcwMWVcdTcwYTFcdTczOGVcdTczZmRc'@; put 'dTc1M2FcdTc3NWJcdTc4ODdcdTc5OGVcdTdhMGJcdTdhN2RcdTdjYmVcdTdkOGVcdTgyNDdcdThhMDJcdThhZWFcdThjOWVcdTkxMmRcdTkxNGFcdTkxZDhcdTkyNjZcdTkyY2NcdTkzMjBcdTk3MDZcdTk3NTYiXSxbImYwYTEiLCJcdTk3NWNcdTk4MDJcdTlmMGVcdTUyMzZcdTUyOTFcdTU1'@; put 'N2NcdTU4MjRcdTVlMWRcdTVmMWZcdTYwOGNcdTYzZDBcdTY4YWZcdTZmZGZcdTc5NmRcdTdiMmNcdTgxY2RcdTg1YmFcdTg4ZmRcdThhZjhcdThlNDRcdTkxOGRcdTk2NjRcdTk2OWJcdTk3M2RcdTk4NGNcdTlmNGFcdTRmY2VcdTUxNDZcdTUxY2JcdTUyYTlcdTU2MzJcdTVmMTRcdTVmNmJc'@; put 'dTYzYWFcdTY0Y2RcdTY1ZTlcdTY2NDFcdTY2ZmFcdTY2ZjlcdTY3MWRcdTY4OWRcdTY4ZDdcdTY5ZmRcdTZmMTVcdTZmNmVcdTcxNjdcdTcxZTVcdTcyMmFcdTc0YWFcdTc3M2FcdTc5NTZcdTc5NWFcdTc5ZGZcdTdhMjBcdTdhOTVcdTdjOTdcdTdjZGZcdTdkNDRcdTdlNzBcdTgwODdcdTg1'@; put 'ZmJcdTg2YTRcdThhNTRcdThhYmZcdThkOTlcdThlODFcdTkwMjBcdTkwNmRcdTkxZTNcdTk2M2JcdTk2ZDVcdTljZTVcdTY1Y2ZcdTdjMDdcdThkYjNcdTkzYzNcdTViNThcdTVjMGFcdTUzNTJcdTYyZDlcdTczMWRcdTUwMjdcdTViOTdcdTVmOWVcdTYwYjBcdTYxNmJcdTY4ZDVcdTZkZDlc'@; put 'dTc0MmVcdTdhMmVcdTdkNDJcdTdkOWNcdTdlMzFcdTgxNmIiXSxbImYxYTEiLCJcdThlMmFcdThlMzVcdTkzN2VcdTk0MThcdTRmNTBcdTU3NTBcdTVkZTZcdTVlYTdcdTYzMmJcdTdmNmFcdTRlM2JcdTRmNGZcdTRmOGZcdTUwNWFcdTU5ZGRcdTgwYzRcdTU0NmFcdTU0NjhcdTU1ZmVcdTU5'@; put 'NGZcdTViOTlcdTVkZGVcdTVlZGFcdTY2NWRcdTY3MzFcdTY3ZjFcdTY4MmFcdTZjZThcdTZkMzJcdTZlNGFcdTZmOGRcdTcwYjdcdTczZTBcdTc1ODdcdTdjNGNcdTdkMDJcdTdkMmNcdTdkYTJcdTgyMWZcdTg2ZGJcdThhM2JcdThhODVcdThkNzBcdThlOGFcdThmMzNcdTkwMzFcdTkxNGVc'@; put 'dTkxNTJcdTk0NDRcdTk5ZDBcdTdhZjlcdTdjYTVcdTRmY2FcdTUxMDFcdTUxYzZcdTU3YzhcdTViZWZcdTVjZmJcdTY2NTlcdTZhM2RcdTZkNWFcdTZlOTZcdTZmZWNcdTcxMGNcdTc1NmZcdTdhZTNcdTg4MjJcdTkwMjFcdTkwNzVcdTk2Y2JcdTk5ZmZcdTgzMDFcdTRlMmRcdTRlZjJcdTg4'@; put 'NDZcdTkxY2RcdTUzN2RcdTZhZGJcdTY5NmJcdTZjNDFcdTg0N2FcdTU4OWVcdTYxOGVcdTY2ZmVcdTYyZWZcdTcwZGRcdTc1MTFcdTc1YzdcdTdlNTJcdTg0YjhcdThiNDlcdThkMDhcdTRlNGJcdTUzZWEiXSxbImYyYTEiLCJcdTU0YWJcdTU3MzBcdTU3NDBcdTVmZDdcdTYzMDFcdTYzMDdc'@; put 'dTY0NmZcdTY1MmZcdTY1ZThcdTY2N2FcdTY3OWRcdTY3YjNcdTZiNjJcdTZjNjBcdTZjOWFcdTZmMmNcdTc3ZTVcdTc4MjVcdTc5NDlcdTc5NTdcdTdkMTlcdTgwYTJcdTgxMDJcdTgxZjNcdTgyOWRcdTgyYjdcdTg3MThcdThhOGNcdWY5ZmNcdThkMDRcdThkYmVcdTkwNzJcdTc2ZjRcdTdh'@; put 'MTlcdTdhMzdcdTdlNTRcdTgwNzdcdTU1MDdcdTU1ZDRcdTU4NzVcdTYzMmZcdTY0MjJcdTY2NDlcdTY2NGJcdTY4NmRcdTY5OWJcdTZiODRcdTZkMjVcdTZlYjFcdTczY2RcdTc0NjhcdTc0YTFcdTc1NWJcdTc1YjlcdTc2ZTFcdTc3MWVcdTc3OGJcdTc5ZTZcdTdlMDlcdTdlMWRcdTgxZmJc'@; put 'dTg1MmZcdTg4OTdcdThhM2FcdThjZDFcdThlZWJcdThmYjBcdTkwMzJcdTkzYWRcdTk2NjNcdTk2NzNcdTk3MDdcdTRmODRcdTUzZjFcdTU5ZWFcdTVhYzlcdTVlMTlcdTY4NGVcdTc0YzZcdTc1YmVcdTc5ZTlcdTdhOTJcdTgxYTNcdTg2ZWRcdThjZWFcdThkY2NcdThmZWRcdTY1OWZcdTY3'@; put 'MTVcdWY5ZmRcdTU3ZjdcdTZmNTdcdTdkZGRcdThmMmYiXSxbImYzYTEiLCJcdTkzZjZcdTk2YzZcdTVmYjVcdTYxZjJcdTZmODRcdTRlMTRcdTRmOThcdTUwMWZcdTUzYzlcdTU1ZGZcdTVkNmZcdTVkZWVcdTZiMjFcdTZiNjRcdTc4Y2JcdTdiOWFcdWY5ZmVcdThlNDlcdThlY2FcdTkwNmVc'@; put 'dTYzNDlcdTY0M2VcdTc3NDBcdTdhODRcdTkzMmZcdTk0N2ZcdTlmNmFcdTY0YjBcdTZmYWZcdTcxZTZcdTc0YThcdTc0ZGFcdTdhYzRcdTdjMTJcdTdlODJcdTdjYjJcdTdlOThcdThiOWFcdThkMGFcdTk0N2RcdTk5MTBcdTk5NGNcdTUyMzlcdTViZGZcdTY0ZTZcdTY3MmRcdTdkMmVcdTUw'@; put 'ZWRcdTUzYzNcdTU4NzlcdTYxNThcdTYxNTlcdTYxZmFcdTY1YWNcdTdhZDlcdThiOTJcdThiOTZcdTUwMDlcdTUwMjFcdTUyNzVcdTU1MzFcdTVhM2NcdTVlZTBcdTVmNzBcdTYxMzRcdTY1NWVcdTY2MGNcdTY2MzZcdTY2YTJcdTY5Y2RcdTZlYzRcdTZmMzJcdTczMTZcdTc2MjFcdTdhOTNc'@; put 'dTgxMzlcdTgyNTlcdTgzZDZcdTg0YmNcdTUwYjVcdTU3ZjBcdTViYzBcdTViZThcdTVmNjlcdTYzYTFcdTc4MjZcdTdkYjVcdTgzZGNcdTg1MjFcdTkxYzdcdTkxZjVcdTUxOGFcdTY3ZjVcdTdiNTYiXSxbImY0YTEiLCJcdThjYWNcdTUxYzRcdTU5YmJcdTYwYmRcdTg2NTVcdTUwMWNcdWY5'@; put 'ZmZcdTUyNTRcdTVjM2FcdTYxN2RcdTYyMWFcdTYyZDNcdTY0ZjJcdTY1YTVcdTZlY2NcdTc2MjBcdTgxMGFcdThlNjBcdTk2NWZcdTk2YmJcdTRlZGZcdTUzNDNcdTU1OThcdTU5MjlcdTVkZGRcdTY0YzVcdTZjYzlcdTZkZmFcdTczOTRcdTdhN2ZcdTgyMWJcdTg1YTZcdThjZTRcdThlMTBc'@; put 'dTkwNzdcdTkxZTdcdTk1ZTFcdTk2MjFcdTk3YzZcdTUxZjhcdTU0ZjJcdTU1ODZcdTVmYjlcdTY0YTRcdTZmODhcdTdkYjRcdThmMWZcdThmNGRcdTk0MzVcdTUwYzlcdTVjMTZcdTZjYmVcdTZkZmJcdTc1MWJcdTc3YmJcdTdjM2RcdTdjNjRcdThhNzlcdThhYzJcdTU4MWVcdTU5YmVcdTVl'@; put 'MTZcdTYzNzdcdTcyNTJcdTc1OGFcdTc3NmJcdThhZGNcdThjYmNcdThmMTJcdTVlZjNcdTY2NzRcdTZkZjhcdTgwN2RcdTgzYzFcdThhY2JcdTk3NTFcdTliZDZcdWZhMDBcdTUyNDNcdTY2ZmZcdTZkOTVcdTZlZWZcdTdkZTBcdThhZTZcdTkwMmVcdTkwNWVcdTlhZDRcdTUyMWRcdTUyN2Zc'@; put 'dTU0ZThcdTYxOTRcdTYyODRcdTYyZGJcdTY4YTIiXSxbImY1YTEiLCJcdTY5MTJcdTY5NWFcdTZhMzVcdTcwOTJcdTcxMjZcdTc4NWRcdTc5MDFcdTc5MGVcdTc5ZDJcdTdhMGRcdTgwOTZcdTgyNzhcdTgyZDVcdTgzNDlcdTg1NDlcdThjODJcdThkODVcdTkxNjJcdTkxOGJcdTkxYWVcdTRm'@; put 'YzNcdTU2ZDFcdTcxZWRcdTc3ZDdcdTg3MDBcdTg5ZjhcdTViZjhcdTVmZDZcdTY3NTFcdTkwYThcdTUzZTJcdTU4NWFcdTViZjVcdTYwYTRcdTYxODFcdTY0NjBcdTdlM2RcdTgwNzBcdTg1MjVcdTkyODNcdTY0YWVcdTUwYWNcdTVkMTRcdTY3MDBcdTU4OWNcdTYyYmRcdTYzYThcdTY5MGVc'@; put 'dTY5NzhcdTZhMWVcdTZlNmJcdTc2YmFcdTc5Y2JcdTgyYmJcdTg0MjlcdThhY2ZcdThkYThcdThmZmRcdTkxMTJcdTkxNGJcdTkxOWNcdTkzMTBcdTkzMThcdTkzOWFcdTk2ZGJcdTlhMzZcdTljMGRcdTRlMTFcdTc1NWNcdTc5NWRcdTdhZmFcdTdiNTFcdTdiYzlcdTdlMmVcdTg0YzRcdThl'@; put 'NTlcdThlNzRcdThlZjhcdTkwMTBcdTY2MjVcdTY5M2ZcdTc0NDNcdTUxZmFcdTY3MmVcdTllZGNcdTUxNDVcdTVmZTBcdTZjOTZcdTg3ZjJcdTg4NWRcdTg4NzdcdTYwYjRcdTgxYjVcdTg0MDMiXSxbImY2YTEiLCJcdThkMDVcdTUzZDZcdTU0MzlcdTU2MzRcdTVhMzZcdTVjMzFcdTcwOGFc'@; put 'dTdmZTBcdTgwNWFcdTgxMDZcdTgxZWRcdThkYTNcdTkxODlcdTlhNWZcdTlkZjJcdTUwNzRcdTRlYzRcdTUzYTBcdTYwZmJcdTZlMmNcdTVjNjRcdTRmODhcdTUwMjRcdTU1ZTRcdTVjZDlcdTVlNWZcdTYwNjVcdTY4OTRcdTZjYmJcdTZkYzRcdTcxYmVcdTc1ZDRcdTc1ZjRcdTc2NjFcdTdh'@; put 'MWFcdTdhNDlcdTdkYzdcdTdkZmJcdTdmNmVcdTgxZjRcdTg2YTlcdThmMWNcdTk2YzlcdTk5YjNcdTlmNTJcdTUyNDdcdTUyYzVcdTk4ZWRcdTg5YWFcdTRlMDNcdTY3ZDJcdTZmMDZcdTRmYjVcdTViZTJcdTY3OTVcdTZjODhcdTZkNzhcdTc0MWJcdTc4MjdcdTkxZGRcdTkzN2NcdTg3YzRc'@; put 'dTc5ZTRcdTdhMzFcdTVmZWJcdTRlZDZcdTU0YTRcdTU1M2VcdTU4YWVcdTU5YTVcdTYwZjBcdTYyNTNcdTYyZDZcdTY3MzZcdTY5NTVcdTgyMzVcdTk2NDBcdTk5YjFcdTk5ZGRcdTUwMmNcdTUzNTNcdTU1NDRcdTU3N2NcdWZhMDFcdTYyNThcdWZhMDJcdTY0ZTJcdTY2NmJcdTY3ZGRcdTZm'@; put 'YzFcdTZmZWZcdTc0MjJcdTc0MzhcdThhMTciXSxbImY3YTEiLCJcdTk0MzhcdTU0NTFcdTU2MDZcdTU3NjZcdTVmNDhcdTYxOWFcdTZiNGVcdTcwNThcdTcwYWRcdTdkYmJcdThhOTVcdTU5NmFcdTgxMmJcdTYzYTJcdTc3MDhcdTgwM2RcdThjYWFcdTU4NTRcdTY0MmRcdTY5YmJcdTViOTVc'@; put 'dTVlMTFcdTZlNmZcdWZhMDNcdTg1NjlcdTUxNGNcdTUzZjBcdTU5MmFcdTYwMjBcdTYxNGJcdTZiODZcdTZjNzBcdTZjZjBcdTdiMWVcdTgwY2VcdTgyZDRcdThkYzZcdTkwYjBcdTk4YjFcdWZhMDRcdTY0YzdcdTZmYTRcdTY0OTFcdTY1MDRcdTUxNGVcdTU0MTBcdTU3MWZcdThhMGVcdTYx'@; put 'NWZcdTY4NzZcdWZhMDVcdTc1ZGJcdTdiNTJcdTdkNzFcdTkwMWFcdTU4MDZcdTY5Y2NcdTgxN2ZcdTg5MmFcdTkwMDBcdTk4MzlcdTUwNzhcdTU5NTdcdTU5YWNcdTYyOTVcdTkwMGZcdTliMmFcdTYxNWRcdTcyNzlcdTk1ZDZcdTU3NjFcdTVhNDZcdTVkZjRcdTYyOGFcdTY0YWRcdTY0ZmFc'@; put 'dTY3NzdcdTZjZTJcdTZkM2VcdTcyMmNcdTc0MzZcdTc4MzRcdTdmNzdcdTgyYWRcdThkZGJcdTk4MTdcdTUyMjRcdTU3NDJcdTY3N2ZcdTcyNDhcdTc0ZTNcdThjYTlcdThmYTZcdTkyMTEiXSxbImY4YTEiLCJcdTk2MmFcdTUxNmJcdTUzZWRcdTYzNGNcdTRmNjlcdTU1MDRcdTYwOTZcdTY1'@; put 'NTdcdTZjOWJcdTZkN2ZcdTcyNGNcdTcyZmRcdTdhMTdcdTg5ODdcdThjOWRcdTVmNmRcdTZmOGVcdTcwZjlcdTgxYThcdTYxMGVcdTRmYmZcdTUwNGZcdTYyNDFcdTcyNDdcdTdiYzdcdTdkZThcdTdmZTlcdTkwNGRcdTk3YWRcdTlhMTlcdThjYjZcdTU3NmFcdTVlNzNcdTY3YjBcdTg0MGRc'@; put 'dThhNTVcdTU0MjBcdTViMTZcdTVlNjNcdTVlZTJcdTVmMGFcdTY1ODNcdTgwYmFcdTg1M2RcdTk1ODlcdTk2NWJcdTRmNDhcdTUzMDVcdTUzMGRcdTUzMGZcdTU0ODZcdTU0ZmFcdTU3MDNcdTVlMDNcdTYwMTZcdTYyOWJcdTYyYjFcdTYzNTVcdWZhMDZcdTZjZTFcdTZkNjZcdTc1YjFcdTc4'@; put 'MzJcdTgwZGVcdTgxMmZcdTgyZGVcdTg0NjFcdTg0YjJcdTg4OGRcdTg5MTJcdTkwMGJcdTkyZWFcdTk4ZmRcdTliOTFcdTVlNDVcdTY2YjRcdTY2ZGRcdTcwMTFcdTcyMDZcdWZhMDdcdTRmZjVcdTUyN2RcdTVmNmFcdTYxNTNcdTY3NTNcdTZhMTlcdTZmMDJcdTc0ZTJcdTc5NjhcdTg4Njhc'@; put 'dThjNzlcdTk4YzdcdTk4YzRcdTlhNDMiXSxbImY5YTEiLCJcdTU0YzFcdTdhMWZcdTY5NTNcdThhZjdcdThjNGFcdTk4YThcdTk5YWVcdTVmN2NcdTYyYWJcdTc1YjJcdTc2YWVcdTg4YWJcdTkwN2ZcdTk2NDJcdTUzMzlcdTVmM2NcdTVmYzVcdTZjY2NcdTczY2NcdTc1NjJcdTc1OGJcdTdi'@; put 'NDZcdTgyZmVcdTk5OWRcdTRlNGZcdTkwM2NcdTRlMGJcdTRmNTVcdTUzYTZcdTU5MGZcdTVlYzhcdTY2MzBcdTZjYjNcdTc0NTVcdTgzNzdcdTg3NjZcdThjYzBcdTkwNTBcdTk3MWVcdTljMTVcdTU4ZDFcdTViNzhcdTg2NTBcdThiMTRcdTlkYjRcdTViZDJcdTYwNjhcdTYwOGRcdTY1ZjFc'@; put 'dTZjNTdcdTZmMjJcdTZmYTNcdTcwMWFcdTdmNTVcdTdmZjBcdTk1OTFcdTk1OTJcdTk2NTBcdTk3ZDNcdTUyNzJcdThmNDRcdTUxZmRcdTU0MmJcdTU0YjhcdTU1NjNcdTU1OGFcdTZhYmJcdTZkYjVcdTdkZDhcdTgyNjZcdTkyOWNcdTk2NzdcdTllNzlcdTU0MDhcdTU0YzhcdTc2ZDJcdTg2'@; put 'ZTRcdTk1YTRcdTk1ZDRcdTk2NWNcdTRlYTJcdTRmMDlcdTU5ZWVcdTVhZTZcdTVkZjdcdTYwNTJcdTYyOTdcdTY3NmRcdTY4NDFcdTZjODZcdTZlMmZcdTdmMzhcdTgwOWJcdTgyMmEiXSxbImZhYTEiLCJcdWZhMDhcdWZhMDlcdTk4MDVcdTRlYTVcdTUwNTVcdTU0YjNcdTU3OTNcdTU5NWFc'@; put 'dTViNjlcdTViYjNcdTYxYzhcdTY5NzdcdTZkNzdcdTcwMjNcdTg3ZjlcdTg5ZTNcdThhNzJcdThhZTdcdTkwODJcdTk5ZWRcdTlhYjhcdTUyYmVcdTY4MzhcdTUwMTZcdTVlNzhcdTY3NGZcdTgzNDdcdTg4NGNcdTRlYWJcdTU0MTFcdTU2YWVcdTczZTZcdTkxMTVcdTk3ZmZcdTk5MDlcdTk5'@; put 'NTdcdTk5OTlcdTU2NTNcdTU4OWZcdTg2NWJcdThhMzFcdTYxYjJcdTZhZjZcdTczN2JcdThlZDJcdTZiNDdcdTk2YWFcdTlhNTdcdTU5NTVcdTcyMDBcdThkNmJcdTk3NjlcdTRmZDRcdTVjZjRcdTVmMjZcdTYxZjhcdTY2NWJcdTZjZWJcdTcwYWJcdTczODRcdTczYjlcdTczZmVcdTc3Mjlc'@; put 'dTc3NGRcdTdkNDNcdTdkNjJcdTdlMjNcdTgyMzdcdTg4NTJcdWZhMGFcdThjZTJcdTkyNDlcdTk4NmZcdTViNTFcdTdhNzRcdTg4NDBcdTk4MDFcdTVhY2NcdTRmZTBcdTUzNTRcdTU5M2VcdTVjZmRcdTYzM2VcdTZkNzlcdTcyZjlcdTgxMDVcdTgxMDdcdTgzYTJcdTkyY2ZcdTk4MzBcdTRl'@; put 'YThcdTUxNDRcdTUyMTFcdTU3OGIiXSxbImZiYTEiLCJcdTVmNjJcdTZjYzJcdTZlY2VcdTcwMDVcdTcwNTBcdTcwYWZcdTcxOTJcdTczZTlcdTc0NjlcdTgzNGFcdTg3YTJcdTg4NjFcdTkwMDhcdTkwYTJcdTkzYTNcdTk5YThcdTUxNmVcdTVmNTdcdTYwZTBcdTYxNjdcdTY2YjNcdTg1NTlc'@; put 'dThlNGFcdTkxYWZcdTk3OGJcdTRlNGVcdTRlOTJcdTU0N2NcdTU4ZDVcdTU4ZmFcdTU5N2RcdTVjYjVcdTVmMjdcdTYyMzZcdTYyNDhcdTY2MGFcdTY2NjdcdTZiZWJcdTZkNjlcdTZkY2ZcdTZlNTZcdTZlZjhcdTZmOTRcdTZmZTBcdTZmZTlcdTcwNWRcdTcyZDBcdTc0MjVcdTc0NWFcdTc0'@; put 'ZTBcdTc2OTNcdTc5NWNcdTdjY2FcdTdlMWVcdTgwZTFcdTgyYTZcdTg0NmJcdTg0YmZcdTg2NGVcdTg2NWZcdTg3NzRcdThiNzdcdThjNmFcdTkzYWNcdTk4MDBcdTk4NjVcdTYwZDFcdTYyMTZcdTkxNzdcdTVhNWFcdTY2MGZcdTZkZjdcdTZlM2VcdTc0M2ZcdTliNDJcdTVmZmRcdTYwZGFc'@; put 'dTdiMGZcdTU0YzRcdTVmMThcdTZjNWVcdTZjZDNcdTZkMmFcdTcwZDhcdTdkMDVcdTg2NzlcdThhMGNcdTlkM2JcdTUzMTZcdTU0OGNcdTViMDVcdTZhM2FcdTcwNmJcdTc1NzUiXSxbImZjYTEiLCJcdTc5OGRcdTc5YmVcdTgyYjFcdTgzZWZcdThhNzFcdThiNDFcdThjYThcdTk3NzRcdWZh'@; put 'MGJcdTY0ZjRcdTY1MmJcdTc4YmFcdTc4YmJcdTdhNmJcdTRlMzhcdTU1OWFcdTU5NTBcdTViYTZcdTVlN2JcdTYwYTNcdTYzZGJcdTZiNjFcdTY2NjVcdTY4NTNcdTZlMTlcdTcxNjVcdTc0YjBcdTdkMDhcdTkwODRcdTlhNjlcdTljMjVcdTZkM2JcdTZlZDFcdTczM2VcdThjNDFcdTk1Y2Fc'@; put 'dTUxZjBcdTVlNGNcdTVmYThcdTYwNGRcdTYwZjZcdTYxMzBcdTYxNGNcdTY2NDNcdTY2NDRcdTY5YTVcdTZjYzFcdTZlNWZcdTZlYzlcdTZmNjJcdTcxNGNcdTc0OWNcdTc2ODdcdTdiYzFcdTdjMjdcdTgzNTJcdTg3NTdcdTkwNTFcdTk2OGRcdTllYzNcdTUzMmZcdTU2ZGVcdTVlZmJcdTVm'@; put 'OGFcdTYwNjJcdTYwOTRcdTYxZjdcdTY2NjZcdTY3MDNcdTZhOWNcdTZkZWVcdTZmYWVcdTcwNzBcdTczNmFcdTdlNmFcdTgxYmVcdTgzMzRcdTg2ZDRcdThhYThcdThjYzRcdTUyODNcdTczNzJcdTViOTZcdTZhNmJcdTk0MDRcdTU0ZWVcdTU2ODZcdTViNWRcdTY1NDhcdTY1ODVcdTY2Yzlc'@; put 'dTY4OWZcdTZkOGRcdTZkYzYiXSxbImZkYTEiLCJcdTcyM2JcdTgwYjRcdTkxNzVcdTlhNGRcdTRmYWZcdTUwMTlcdTUzOWFcdTU0MGVcdTU0M2NcdTU1ODlcdTU1YzVcdTVlM2ZcdTVmOGNcdTY3M2RcdTcxNjZcdTczZGRcdTkwMDVcdTUyZGJcdTUyZjNcdTU4NjRcdTU4Y2VcdTcxMDRcdTcx'@; put 'OGZcdTcxZmJcdTg1YjBcdThhMTNcdTY2ODhcdTg1YThcdTU1YTdcdTY2ODRcdTcxNGFcdTg0MzFcdTUzNDlcdTU1OTlcdTZiYzFcdTVmNTlcdTVmYmRcdTYzZWVcdTY2ODlcdTcxNDdcdThhZjFcdThmMWRcdTllYmVcdTRmMTFcdTY0M2FcdTcwY2JcdTc1NjZcdTg2NjdcdTYwNjRcdThiNGVc'@; put 'dTlkZjhcdTUxNDdcdTUxZjZcdTUzMDhcdTZkMzZcdTgwZjhcdTllZDFcdTY2MTVcdTZiMjNcdTcwOThcdTc1ZDVcdTU0MDNcdTVjNzlcdTdkMDdcdThhMTZcdTZiMjBcdTZiM2RcdTZiNDZcdTU0MzhcdTYwNzBcdTZkM2RcdTdmZDVcdTgyMDhcdTUwZDZcdTUxZGVcdTU1OWNcdTU2NmJcdTU2'@; put 'Y2RcdTU5ZWNcdTViMDlcdTVlMGNcdTYxOTlcdTYxOThcdTYyMzFcdTY2NWVcdTY2ZTZcdTcxOTlcdTcxYjlcdTcxYmFcdTcyYTdcdTc5YTdcdTdhMDBcdTdmYjJcdThhNzAiXV0nKX0sNzIzMjQ6Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz1KU09OLnBhcnNlKCdbWyIwIiwiXFx1MDAw'@; put 'MCIsMTI3XSxbImExNDAiLCJcdTMwMDBcdWZmMGNcdTMwMDFcdTMwMDJcdWZmMGVcdTIwMjdcdWZmMWJcdWZmMWFcdWZmMWZcdWZmMDFcdWZlMzBcdTIwMjZcdTIwMjVcdWZlNTBcdWZlNTFcdWZlNTJceGI3XHVmZTU0XHVmZTU1XHVmZTU2XHVmZTU3XHVmZjVjXHUyMDEzXHVmZTMxXHUyMDE0'@; put 'XHVmZTMzXHUyNTc0XHVmZTM0XHVmZTRmXHVmZjA4XHVmZjA5XHVmZTM1XHVmZTM2XHVmZjViXHVmZjVkXHVmZTM3XHVmZTM4XHUzMDE0XHUzMDE1XHVmZTM5XHVmZTNhXHUzMDEwXHUzMDExXHVmZTNiXHVmZTNjXHUzMDBhXHUzMDBiXHVmZTNkXHVmZTNlXHUzMDA4XHUzMDA5XHVmZTNmXHVm'@; put 'ZTQwXHUzMDBjXHUzMDBkXHVmZTQxXHVmZTQyXHUzMDBlXHUzMDBmXHVmZTQzXHVmZTQ0XHVmZTU5XHVmZTVhIl0sWyJhMWExIiwiXHVmZTViXHVmZTVjXHVmZTVkXHVmZTVlXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUzMDFkXHUzMDFlXHUyMDM1XHUyMDMyXHVmZjAzXHVmZjA2XHVmZjBh'@; put 'XHUyMDNiXHhhN1x1MzAwM1x1MjVjYlx1MjVjZlx1MjViM1x1MjViMlx1MjVjZVx1MjYwNlx1MjYwNVx1MjVjN1x1MjVjNlx1MjVhMVx1MjVhMFx1MjViZFx1MjViY1x1MzJhM1x1MjEwNVx4YWZcdWZmZTNcdWZmM2ZcdTAyY2RcdWZlNDlcdWZlNGFcdWZlNGRcdWZlNGVcdWZlNGJcdWZlNGNc'@; put 'dWZlNWZcdWZlNjBcdWZlNjFcdWZmMGJcdWZmMGRceGQ3XHhmN1x4YjFcdTIyMWFcdWZmMWNcdWZmMWVcdWZmMWRcdTIyNjZcdTIyNjdcdTIyNjBcdTIyMWVcdTIyNTJcdTIyNjFcdWZlNjIiLDQsIlx1ZmY1ZVx1MjIyOVx1MjIyYVx1MjJhNVx1MjIyMFx1MjIxZlx1MjJiZlx1MzNkMlx1MzNk'@; put 'MVx1MjIyYlx1MjIyZVx1MjIzNVx1MjIzNFx1MjY0MFx1MjY0Mlx1MjI5NVx1MjI5OVx1MjE5MVx1MjE5M1x1MjE5MFx1MjE5Mlx1MjE5Nlx1MjE5N1x1MjE5OVx1MjE5OFx1MjIyNVx1MjIyM1x1ZmYwZiJdLFsiYTI0MCIsIlx1ZmYzY1x1MjIxNVx1ZmU2OFx1ZmYwNFx1ZmZlNVx1MzAxMlx1'@; put 'ZmZlMFx1ZmZlMVx1ZmYwNVx1ZmYyMFx1MjEwM1x1MjEwOVx1ZmU2OVx1ZmU2YVx1ZmU2Ylx1MzNkNVx1MzM5Y1x1MzM5ZFx1MzM5ZVx1MzNjZVx1MzNhMVx1MzM4ZVx1MzM4Zlx1MzNjNFx4YjBcdTUxNTlcdTUxNWJcdTUxNWVcdTUxNWRcdTUxNjFcdTUxNjNcdTU1ZTdcdTc0ZTlcdTdjY2Vc'@; put 'dTI1ODEiLDcsIlx1MjU4Zlx1MjU4ZVx1MjU4ZFx1MjU4Y1x1MjU4Ylx1MjU4YVx1MjU4OVx1MjUzY1x1MjUzNFx1MjUyY1x1MjUyNFx1MjUxY1x1MjU5NFx1MjUwMFx1MjUwMlx1MjU5NVx1MjUwY1x1MjUxMFx1MjUxNFx1MjUxOFx1MjU2ZCJdLFsiYTJhMSIsIlx1MjU2ZVx1MjU3MFx1MjU2'@; put 'Zlx1MjU1MFx1MjU1ZVx1MjU2YVx1MjU2MVx1MjVlMlx1MjVlM1x1MjVlNVx1MjVlNFx1MjU3MVx1MjU3Mlx1MjU3M1x1ZmYxMCIsOSwiXHUyMTYwIiw5LCJcdTMwMjEiLDgsIlx1NTM0MVx1NTM0NFx1NTM0NVx1ZmYyMSIsMjUsIlx1ZmY0MSIsMjFdLFsiYTM0MCIsIlx1ZmY1N1x1ZmY1OFx1'@; put 'ZmY1OVx1ZmY1YVx1MDM5MSIsMTYsIlx1MDNhMyIsNiwiXHUwM2IxIiwxNiwiXHUwM2MzIiw2LCJcdTMxMDUiLDEwXSxbImEzYTEiLCJcdTMxMTAiLDI1LCJcdTAyZDlcdTAyYzlcdTAyY2FcdTAyYzdcdTAyY2IiXSxbImEzZTEiLCJcdTIwYWMiXSxbImE0NDAiLCJcdTRlMDBcdTRlNTlcdTRl'@; put 'MDFcdTRlMDNcdTRlNDNcdTRlNWRcdTRlODZcdTRlOGNcdTRlYmFcdTUxM2ZcdTUxNjVcdTUxNmJcdTUxZTBcdTUyMDBcdTUyMDFcdTUyOWJcdTUzMTVcdTUzNDFcdTUzNWNcdTUzYzhcdTRlMDlcdTRlMGJcdTRlMDhcdTRlMGFcdTRlMmJcdTRlMzhcdTUxZTFcdTRlNDVcdTRlNDhcdTRlNWZc'@; put 'dTRlNWVcdTRlOGVcdTRlYTFcdTUxNDBcdTUyMDNcdTUyZmFcdTUzNDNcdTUzYzlcdTUzZTNcdTU3MWZcdTU4ZWJcdTU5MTVcdTU5MjdcdTU5NzNcdTViNTBcdTViNTFcdTViNTNcdTViZjhcdTVjMGZcdTVjMjJcdTVjMzhcdTVjNzFcdTVkZGRcdTVkZTVcdTVkZjFcdTVkZjJcdTVkZjNcdTVk'@; put 'ZmVcdTVlNzJcdTVlZmVcdTVmMGJcdTVmMTNcdTYyNGQiXSxbImE0YTEiLCJcdTRlMTFcdTRlMTBcdTRlMGRcdTRlMmRcdTRlMzBcdTRlMzlcdTRlNGJcdTVjMzlcdTRlODhcdTRlOTFcdTRlOTVcdTRlOTJcdTRlOTRcdTRlYTJcdTRlYzFcdTRlYzBcdTRlYzNcdTRlYzZcdTRlYzdcdTRlY2Rc'@; put 'dTRlY2FcdTRlY2JcdTRlYzRcdTUxNDNcdTUxNDFcdTUxNjdcdTUxNmRcdTUxNmVcdTUxNmNcdTUxOTdcdTUxZjZcdTUyMDZcdTUyMDdcdTUyMDhcdTUyZmJcdTUyZmVcdTUyZmZcdTUzMTZcdTUzMzlcdTUzNDhcdTUzNDdcdTUzNDVcdTUzNWVcdTUzODRcdTUzY2JcdTUzY2FcdTUzY2RcdTU4'@; put 'ZWNcdTU5MjlcdTU5MmJcdTU5MmFcdTU5MmRcdTViNTRcdTVjMTFcdTVjMjRcdTVjM2FcdTVjNmZcdTVkZjRcdTVlN2JcdTVlZmZcdTVmMTRcdTVmMTVcdTVmYzNcdTYyMDhcdTYyMzZcdTYyNGJcdTYyNGVcdTY1MmZcdTY1ODdcdTY1OTdcdTY1YTRcdTY1YjlcdTY1ZTVcdTY2ZjBcdTY3MDhc'@; put 'dTY3MjhcdTZiMjBcdTZiNjJcdTZiNzlcdTZiY2JcdTZiZDRcdTZiZGJcdTZjMGZcdTZjMzRcdTcwNmJcdTcyMmFcdTcyMzZcdTcyM2JcdTcyNDdcdTcyNTlcdTcyNWJcdTcyYWNcdTczOGJcdTRlMTkiXSxbImE1NDAiLCJcdTRlMTZcdTRlMTVcdTRlMTRcdTRlMThcdTRlM2JcdTRlNGRcdTRl'@; put 'NGZcdTRlNGVcdTRlZTVcdTRlZDhcdTRlZDRcdTRlZDVcdTRlZDZcdTRlZDdcdTRlZTNcdTRlZTRcdTRlZDlcdTRlZGVcdTUxNDVcdTUxNDRcdTUxODlcdTUxOGFcdTUxYWNcdTUxZjlcdTUxZmFcdTUxZjhcdTUyMGFcdTUyYTBcdTUyOWZcdTUzMDVcdTUzMDZcdTUzMTdcdTUzMWRcdTRlZGZc'@; put 'dTUzNGFcdTUzNDlcdTUzNjFcdTUzNjBcdTUzNmZcdTUzNmVcdTUzYmJcdTUzZWZcdTUzZTRcdTUzZjNcdTUzZWNcdTUzZWVcdTUzZTlcdTUzZThcdTUzZmNcdTUzZjhcdTUzZjVcdTUzZWJcdTUzZTZcdTUzZWFcdTUzZjJcdTUzZjFcdTUzZjBcdTUzZTVcdTUzZWRcdTUzZmJcdTU2ZGJcdTU2'@; put 'ZGFcdTU5MTYiXSxbImE1YTEiLCJcdTU5MmVcdTU5MzFcdTU5NzRcdTU5NzZcdTViNTVcdTViODNcdTVjM2NcdTVkZThcdTVkZTdcdTVkZTZcdTVlMDJcdTVlMDNcdTVlNzNcdTVlN2NcdTVmMDFcdTVmMThcdTVmMTdcdTVmYzVcdTYyMGFcdTYyNTNcdTYyNTRcdTYyNTJcdTYyNTFcdTY1YTVc'@; put 'dTY1ZTZcdTY3MmVcdTY3MmNcdTY3MmFcdTY3MmJcdTY3MmRcdTZiNjNcdTZiY2RcdTZjMTFcdTZjMTBcdTZjMzhcdTZjNDFcdTZjNDBcdTZjM2VcdTcyYWZcdTczODRcdTczODlcdTc0ZGNcdTc0ZTZcdTc1MThcdTc1MWZcdTc1MjhcdTc1MjlcdTc1MzBcdTc1MzFcdTc1MzJcdTc1MzNcdTc1'@; put 'OGJcdTc2N2RcdTc2YWVcdTc2YmZcdTc2ZWVcdTc3ZGJcdTc3ZTJcdTc3ZjNcdTc5M2FcdTc5YmVcdTdhNzRcdTdhY2JcdTRlMWVcdTRlMWZcdTRlNTJcdTRlNTNcdTRlNjlcdTRlOTlcdTRlYTRcdTRlYTZcdTRlYTVcdTRlZmZcdTRmMDlcdTRmMTlcdTRmMGFcdTRmMTVcdTRmMGRcdTRmMTBc'@; put 'dTRmMTFcdTRmMGZcdTRlZjJcdTRlZjZcdTRlZmJcdTRlZjBcdTRlZjNcdTRlZmRcdTRmMDFcdTRmMGJcdTUxNDlcdTUxNDdcdTUxNDZcdTUxNDhcdTUxNjgiXSxbImE2NDAiLCJcdTUxNzFcdTUxOGRcdTUxYjBcdTUyMTdcdTUyMTFcdTUyMTJcdTUyMGVcdTUyMTZcdTUyYTNcdTUzMDhcdTUz'@; put 'MjFcdTUzMjBcdTUzNzBcdTUzNzFcdTU0MDlcdTU0MGZcdTU0MGNcdTU0MGFcdTU0MTBcdTU0MDFcdTU0MGJcdTU0MDRcdTU0MTFcdTU0MGRcdTU0MDhcdTU0MDNcdTU0MGVcdTU0MDZcdTU0MTJcdTU2ZTBcdTU2ZGVcdTU2ZGRcdTU3MzNcdTU3MzBcdTU3MjhcdTU3MmRcdTU3MmNcdTU3MmZc'@; put 'dTU3MjlcdTU5MTlcdTU5MWFcdTU5MzdcdTU5MzhcdTU5ODRcdTU5NzhcdTU5ODNcdTU5N2RcdTU5NzlcdTU5ODJcdTU5ODFcdTViNTdcdTViNThcdTViODdcdTViODhcdTViODVcdTViODlcdTViZmFcdTVjMTZcdTVjNzlcdTVkZGVcdTVlMDZcdTVlNzZcdTVlNzQiXSxbImE2YTEiLCJcdTVm'@; put 'MGZcdTVmMWJcdTVmZDlcdTVmZDZcdTYyMGVcdTYyMGNcdTYyMGRcdTYyMTBcdTYyNjNcdTYyNWJcdTYyNThcdTY1MzZcdTY1ZTlcdTY1ZThcdTY1ZWNcdTY1ZWRcdTY2ZjJcdTY2ZjNcdTY3MDlcdTY3M2RcdTY3MzRcdTY3MzFcdTY3MzVcdTZiMjFcdTZiNjRcdTZiN2JcdTZjMTZcdTZjNWRc'@; put 'dTZjNTdcdTZjNTlcdTZjNWZcdTZjNjBcdTZjNTBcdTZjNTVcdTZjNjFcdTZjNWJcdTZjNGRcdTZjNGVcdTcwNzBcdTcyNWZcdTcyNWRcdTc2N2VcdTdhZjlcdTdjNzNcdTdjZjhcdTdmMzZcdTdmOGFcdTdmYmRcdTgwMDFcdTgwMDNcdTgwMGNcdTgwMTJcdTgwMzNcdTgwN2ZcdTgwODlcdTgw'@; put 'OGJcdTgwOGNcdTgxZTNcdTgxZWFcdTgxZjNcdTgxZmNcdTgyMGNcdTgyMWJcdTgyMWZcdTgyNmVcdTgyNzJcdTgyN2VcdTg2NmJcdTg4NDBcdTg4NGNcdTg4NjNcdTg5N2ZcdTk2MjFcdTRlMzJcdTRlYThcdTRmNGRcdTRmNGZcdTRmNDdcdTRmNTdcdTRmNWVcdTRmMzRcdTRmNWJcdTRmNTVc'@; put 'dTRmMzBcdTRmNTBcdTRmNTFcdTRmM2RcdTRmM2FcdTRmMzhcdTRmNDNcdTRmNTRcdTRmM2NcdTRmNDZcdTRmNjMiXSxbImE3NDAiLCJcdTRmNWNcdTRmNjBcdTRmMmZcdTRmNGVcdTRmMzZcdTRmNTlcdTRmNWRcdTRmNDhcdTRmNWFcdTUxNGNcdTUxNGJcdTUxNGRcdTUxNzVcdTUxYjZcdTUx'@; put 'YjdcdTUyMjVcdTUyMjRcdTUyMjlcdTUyMmFcdTUyMjhcdTUyYWJcdTUyYTlcdTUyYWFcdTUyYWNcdTUzMjNcdTUzNzNcdTUzNzVcdTU0MWRcdTU0MmRcdTU0MWVcdTU0M2VcdTU0MjZcdTU0NGVcdTU0MjdcdTU0NDZcdTU0NDNcdTU0MzNcdTU0NDhcdTU0NDJcdTU0MWJcdTU0MjlcdTU0NGFc'@; put 'dTU0MzlcdTU0M2JcdTU0MzhcdTU0MmVcdTU0MzVcdTU0MzZcdTU0MjBcdTU0M2NcdTU0NDBcdTU0MzFcdTU0MmJcdTU0MWZcdTU0MmNcdTU2ZWFcdTU2ZjBcdTU2ZTRcdTU2ZWJcdTU3NGFcdTU3NTFcdTU3NDBcdTU3NGQiXSxbImE3YTEiLCJcdTU3NDdcdTU3NGVcdTU3M2VcdTU3NTBcdTU3'@; put 'NGZcdTU3M2JcdTU4ZWZcdTU5M2VcdTU5OWRcdTU5OTJcdTU5YThcdTU5OWVcdTU5YTNcdTU5OTlcdTU5OTZcdTU5OGRcdTU5YTRcdTU5OTNcdTU5OGFcdTU5YTVcdTViNWRcdTViNWNcdTViNWFcdTViNWJcdTViOGNcdTViOGJcdTViOGZcdTVjMmNcdTVjNDBcdTVjNDFcdTVjM2ZcdTVjM2Vc'@; put 'dTVjOTBcdTVjOTFcdTVjOTRcdTVjOGNcdTVkZWJcdTVlMGNcdTVlOGZcdTVlODdcdTVlOGFcdTVlZjdcdTVmMDRcdTVmMWZcdTVmNjRcdTVmNjJcdTVmNzdcdTVmNzlcdTVmZDhcdTVmY2NcdTVmZDdcdTVmY2RcdTVmZjFcdTVmZWJcdTVmZjhcdTVmZWFcdTYyMTJcdTYyMTFcdTYyODRcdTYy'@; put 'OTdcdTYyOTZcdTYyODBcdTYyNzZcdTYyODlcdTYyNmRcdTYyOGFcdTYyN2NcdTYyN2VcdTYyNzlcdTYyNzNcdTYyOTJcdTYyNmZcdTYyOThcdTYyNmVcdTYyOTVcdTYyOTNcdTYyOTFcdTYyODZcdTY1MzlcdTY1M2JcdTY1MzhcdTY1ZjFcdTY2ZjRcdTY3NWZcdTY3NGVcdTY3NGZcdTY3NTBc'@; put 'dTY3NTFcdTY3NWNcdTY3NTZcdTY3NWVcdTY3NDlcdTY3NDZcdTY3NjAiXSxbImE4NDAiLCJcdTY3NTNcdTY3NTdcdTZiNjVcdTZiY2ZcdTZjNDJcdTZjNWVcdTZjOTlcdTZjODFcdTZjODhcdTZjODlcdTZjODVcdTZjOWJcdTZjNmFcdTZjN2FcdTZjOTBcdTZjNzBcdTZjOGNcdTZjNjhcdTZj'@; put 'OTZcdTZjOTJcdTZjN2RcdTZjODNcdTZjNzJcdTZjN2VcdTZjNzRcdTZjODZcdTZjNzZcdTZjOGRcdTZjOTRcdTZjOThcdTZjODJcdTcwNzZcdTcwN2NcdTcwN2RcdTcwNzhcdTcyNjJcdTcyNjFcdTcyNjBcdTcyYzRcdTcyYzJcdTczOTZcdTc1MmNcdTc1MmJcdTc1MzdcdTc1MzhcdTc2ODJc'@; put 'dTc2ZWZcdTc3ZTNcdTc5YzFcdTc5YzBcdTc5YmZcdTdhNzZcdTdjZmJcdTdmNTVcdTgwOTZcdTgwOTNcdTgwOWRcdTgwOThcdTgwOWJcdTgwOWFcdTgwYjJcdTgyNmZcdTgyOTIiXSxbImE4YTEiLCJcdTgyOGJcdTgyOGRcdTg5OGJcdTg5ZDJcdThhMDBcdThjMzdcdThjNDZcdThjNTVcdThj'@; put 'OWRcdThkNjRcdThkNzBcdThkYjNcdThlYWJcdThlY2FcdThmOWJcdThmYjBcdThmYzJcdThmYzZcdThmYzVcdThmYzRcdTVkZTFcdTkwOTFcdTkwYTJcdTkwYWFcdTkwYTZcdTkwYTNcdTkxNDlcdTkxYzZcdTkxY2NcdTk2MzJcdTk2MmVcdTk2MzFcdTk2MmFcdTk2MmNcdTRlMjZcdTRlNTZc'@; put 'dTRlNzNcdTRlOGJcdTRlOWJcdTRlOWVcdTRlYWJcdTRlYWNcdTRmNmZcdTRmOWRcdTRmOGRcdTRmNzNcdTRmN2ZcdTRmNmNcdTRmOWJcdTRmOGJcdTRmODZcdTRmODNcdTRmNzBcdTRmNzVcdTRmODhcdTRmNjlcdTRmN2JcdTRmOTZcdTRmN2VcdTRmOGZcdTRmOTFcdTRmN2FcdTUxNTRcdTUx'@; put 'NTJcdTUxNTVcdTUxNjlcdTUxNzdcdTUxNzZcdTUxNzhcdTUxYmRcdTUxZmRcdTUyM2JcdTUyMzhcdTUyMzdcdTUyM2FcdTUyMzBcdTUyMmVcdTUyMzZcdTUyNDFcdTUyYmVcdTUyYmJcdTUzNTJcdTUzNTRcdTUzNTNcdTUzNTFcdTUzNjZcdTUzNzdcdTUzNzhcdTUzNzlcdTUzZDZcdTUzZDRc'@; put 'dTUzZDdcdTU0NzNcdTU0NzUiXSxbImE5NDAiLCJcdTU0OTZcdTU0NzhcdTU0OTVcdTU0ODBcdTU0N2JcdTU0NzdcdTU0ODRcdTU0OTJcdTU0ODZcdTU0N2NcdTU0OTBcdTU0NzFcdTU0NzZcdTU0OGNcdTU0OWFcdTU0NjJcdTU0NjhcdTU0OGJcdTU0N2RcdTU0OGVcdTU2ZmFcdTU3ODNcdTU3'@; put 'NzdcdTU3NmFcdTU3NjlcdTU3NjFcdTU3NjZcdTU3NjRcdTU3N2NcdTU5MWNcdTU5NDlcdTU5NDdcdTU5NDhcdTU5NDRcdTU5NTRcdTU5YmVcdTU5YmJcdTU5ZDRcdTU5YjlcdTU5YWVcdTU5ZDFcdTU5YzZcdTU5ZDBcdTU5Y2RcdTU5Y2JcdTU5ZDNcdTU5Y2FcdTU5YWZcdTU5YjNcdTU5ZDJc'@; put 'dTU5YzVcdTViNWZcdTViNjRcdTViNjNcdTViOTdcdTViOWFcdTViOThcdTViOWNcdTViOTlcdTViOWJcdTVjMWFcdTVjNDhcdTVjNDUiXSxbImE5YTEiLCJcdTVjNDZcdTVjYjdcdTVjYTFcdTVjYjhcdTVjYTlcdTVjYWJcdTVjYjFcdTVjYjNcdTVlMThcdTVlMWFcdTVlMTZcdTVlMTVcdTVl'@; put 'MWJcdTVlMTFcdTVlNzhcdTVlOWFcdTVlOTdcdTVlOWNcdTVlOTVcdTVlOTZcdTVlZjZcdTVmMjZcdTVmMjdcdTVmMjlcdTVmODBcdTVmODFcdTVmN2ZcdTVmN2NcdTVmZGRcdTVmZTBcdTVmZmRcdTVmZjVcdTVmZmZcdTYwMGZcdTYwMTRcdTYwMmZcdTYwMzVcdTYwMTZcdTYwMmFcdTYwMTVc'@; put 'dTYwMjFcdTYwMjdcdTYwMjlcdTYwMmJcdTYwMWJcdTYyMTZcdTYyMTVcdTYyM2ZcdTYyM2VcdTYyNDBcdTYyN2ZcdTYyYzlcdTYyY2NcdTYyYzRcdTYyYmZcdTYyYzJcdTYyYjlcdTYyZDJcdTYyZGJcdTYyYWJcdTYyZDNcdTYyZDRcdTYyY2JcdTYyYzhcdTYyYThcdTYyYmRcdTYyYmNcdTYy'@; put 'ZDBcdTYyZDlcdTYyYzdcdTYyY2RcdTYyYjVcdTYyZGFcdTYyYjFcdTYyZDhcdTYyZDZcdTYyZDdcdTYyYzZcdTYyYWNcdTYyY2VcdTY1M2VcdTY1YTdcdTY1YmNcdTY1ZmFcdTY2MTRcdTY2MTNcdTY2MGNcdTY2MDZcdTY2MDJcdTY2MGVcdTY2MDBcdTY2MGZcdTY2MTVcdTY2MGEiXSxbImFh'@; put 'NDAiLCJcdTY2MDdcdTY3MGRcdTY3MGJcdTY3NmRcdTY3OGJcdTY3OTVcdTY3NzFcdTY3OWNcdTY3NzNcdTY3NzdcdTY3ODdcdTY3OWRcdTY3OTdcdTY3NmZcdTY3NzBcdTY3N2ZcdTY3ODlcdTY3N2VcdTY3OTBcdTY3NzVcdTY3OWFcdTY3OTNcdTY3N2NcdTY3NmFcdTY3NzJcdTZiMjNcdTZi'@; put 'NjZcdTZiNjdcdTZiN2ZcdTZjMTNcdTZjMWJcdTZjZTNcdTZjZThcdTZjZjNcdTZjYjFcdTZjY2NcdTZjZTVcdTZjYjNcdTZjYmRcdTZjYmVcdTZjYmNcdTZjZTJcdTZjYWJcdTZjZDVcdTZjZDNcdTZjYjhcdTZjYzRcdTZjYjlcdTZjYzFcdTZjYWVcdTZjZDdcdTZjYzVcdTZjZjFcdTZjYmZc'@; put 'dTZjYmJcdTZjZTFcdTZjZGJcdTZjY2FcdTZjYWNcdTZjZWZcdTZjZGNcdTZjZDZcdTZjZTAiXSxbImFhYTEiLCJcdTcwOTVcdTcwOGVcdTcwOTJcdTcwOGFcdTcwOTlcdTcyMmNcdTcyMmRcdTcyMzhcdTcyNDhcdTcyNjdcdTcyNjlcdTcyYzBcdTcyY2VcdTcyZDlcdTcyZDdcdTcyZDBcdTcz'@; put 'YTlcdTczYThcdTczOWZcdTczYWJcdTczYTVcdTc1M2RcdTc1OWRcdTc1OTlcdTc1OWFcdTc2ODRcdTc2YzJcdTc2ZjJcdTc2ZjRcdTc3ZTVcdTc3ZmRcdTc5M2VcdTc5NDBcdTc5NDFcdTc5YzlcdTc5YzhcdTdhN2FcdTdhNzlcdTdhZmFcdTdjZmVcdTdmNTRcdTdmOGNcdTdmOGJcdTgwMDVc'@; put 'dTgwYmFcdTgwYTVcdTgwYTJcdTgwYjFcdTgwYTFcdTgwYWJcdTgwYTlcdTgwYjRcdTgwYWFcdTgwYWZcdTgxZTVcdTgxZmVcdTgyMGRcdTgyYjNcdTgyOWRcdTgyOTlcdTgyYWRcdTgyYmRcdTgyOWZcdTgyYjlcdTgyYjFcdTgyYWNcdTgyYTVcdTgyYWZcdTgyYjhcdTgyYTNcdTgyYjBcdTgy'@; put 'YmVcdTgyYjdcdTg2NGVcdTg2NzFcdTUyMWRcdTg4NjhcdThlY2JcdThmY2VcdThmZDRcdThmZDFcdTkwYjVcdTkwYjhcdTkwYjFcdTkwYjZcdTkxYzdcdTkxZDFcdTk1NzdcdTk1ODBcdTk2MWNcdTk2NDBcdTk2M2ZcdTk2M2JcdTk2NDQiXSxbImFiNDAiLCJcdTk2NDJcdTk2YjlcdTk2ZThc'@; put 'dTk3NTJcdTk3NWVcdTRlOWZcdTRlYWRcdTRlYWVcdTRmZTFcdTRmYjVcdTRmYWZcdTRmYmZcdTRmZTBcdTRmZDFcdTRmY2ZcdTRmZGRcdTRmYzNcdTRmYjZcdTRmZDhcdTRmZGZcdTRmY2FcdTRmZDdcdTRmYWVcdTRmZDBcdTRmYzRcdTRmYzJcdTRmZGFcdTRmY2VcdTRmZGVcdTRmYjdcdTUx'@; put 'NTdcdTUxOTJcdTUxOTFcdTUxYTBcdTUyNGVcdTUyNDNcdTUyNGFcdTUyNGRcdTUyNGNcdTUyNGJcdTUyNDdcdTUyYzdcdTUyYzlcdTUyYzNcdTUyYzFcdTUzMGRcdTUzNTdcdTUzN2JcdTUzOWFcdTUzZGJcdTU0YWNcdTU0YzBcdTU0YThcdTU0Y2VcdTU0YzlcdTU0YjhcdTU0YTZcdTU0YjNc'@; put 'dTU0YzdcdTU0YzJcdTU0YmRcdTU0YWFcdTU0YzEiXSxbImFiYTEiLCJcdTU0YzRcdTU0YzhcdTU0YWZcdTU0YWJcdTU0YjFcdTU0YmJcdTU0YTlcdTU0YTdcdTU0YmZcdTU2ZmZcdTU3ODJcdTU3OGJcdTU3YTBcdTU3YTNcdTU3YTJcdTU3Y2VcdTU3YWVcdTU3OTNcdTU5NTVcdTU5NTFcdTU5'@; put 'NGZcdTU5NGVcdTU5NTBcdTU5ZGNcdTU5ZDhcdTU5ZmZcdTU5ZTNcdTU5ZThcdTVhMDNcdTU5ZTVcdTU5ZWFcdTU5ZGFcdTU5ZTZcdTVhMDFcdTU5ZmJcdTViNjlcdTViYTNcdTViYTZcdTViYTRcdTViYTJcdTViYTVcdTVjMDFcdTVjNGVcdTVjNGZcdTVjNGRcdTVjNGJcdTVjZDlcdTVjZDJc'@; put 'dTVkZjdcdTVlMWRcdTVlMjVcdTVlMWZcdTVlN2RcdTVlYTBcdTVlYTZcdTVlZmFcdTVmMDhcdTVmMmRcdTVmNjVcdTVmODhcdTVmODVcdTVmOGFcdTVmOGJcdTVmODdcdTVmOGNcdTVmODlcdTYwMTJcdTYwMWRcdTYwMjBcdTYwMjVcdTYwMGVcdTYwMjhcdTYwNGRcdTYwNzBcdTYwNjhcdTYw'@; put 'NjJcdTYwNDZcdTYwNDNcdTYwNmNcdTYwNmJcdTYwNmFcdTYwNjRcdTYyNDFcdTYyZGNcdTYzMTZcdTYzMDlcdTYyZmNcdTYyZWRcdTYzMDFcdTYyZWVcdTYyZmRcdTYzMDdcdTYyZjFcdTYyZjciXSxbImFjNDAiLCJcdTYyZWZcdTYyZWNcdTYyZmVcdTYyZjRcdTYzMTFcdTYzMDJcdTY1M2Zc'@; put 'dTY1NDVcdTY1YWJcdTY1YmRcdTY1ZTJcdTY2MjVcdTY2MmRcdTY2MjBcdTY2MjdcdTY2MmZcdTY2MWZcdTY2MjhcdTY2MzFcdTY2MjRcdTY2ZjdcdTY3ZmZcdTY3ZDNcdTY3ZjFcdTY3ZDRcdTY3ZDBcdTY3ZWNcdTY3YjZcdTY3YWZcdTY3ZjVcdTY3ZTlcdTY3ZWZcdTY3YzRcdTY3ZDFcdTY3'@; put 'YjRcdTY3ZGFcdTY3ZTVcdTY3YjhcdTY3Y2ZcdTY3ZGVcdTY3ZjNcdTY3YjBcdTY3ZDlcdTY3ZTJcdTY3ZGRcdTY3ZDJcdTZiNmFcdTZiODNcdTZiODZcdTZiYjVcdTZiZDJcdTZiZDdcdTZjMWZcdTZjYzlcdTZkMGJcdTZkMzJcdTZkMmFcdTZkNDFcdTZkMjVcdTZkMGNcdTZkMzFcdTZkMWVc'@; put 'dTZkMTciXSxbImFjYTEiLCJcdTZkM2JcdTZkM2RcdTZkM2VcdTZkMzZcdTZkMWJcdTZjZjVcdTZkMzlcdTZkMjdcdTZkMzhcdTZkMjlcdTZkMmVcdTZkMzVcdTZkMGVcdTZkMmJcdTcwYWJcdTcwYmFcdTcwYjNcdTcwYWNcdTcwYWZcdTcwYWRcdTcwYjhcdTcwYWVcdTcwYTRcdTcyMzBcdTcy'@; put 'NzJcdTcyNmZcdTcyNzRcdTcyZTlcdTcyZTBcdTcyZTFcdTczYjdcdTczY2FcdTczYmJcdTczYjJcdTczY2RcdTczYzBcdTczYjNcdTc1MWFcdTc1MmRcdTc1NGZcdTc1NGNcdTc1NGVcdTc1NGJcdTc1YWJcdTc1YTRcdTc1YTVcdTc1YTJcdTc1YTNcdTc2NzhcdTc2ODZcdTc2ODdcdTc2ODhc'@; put 'dTc2YzhcdTc2YzZcdTc2YzNcdTc2YzVcdTc3MDFcdTc2ZjlcdTc2ZjhcdTc3MDlcdTc3MGJcdTc2ZmVcdTc2ZmNcdTc3MDdcdTc3ZGNcdTc4MDJcdTc4MTRcdTc4MGNcdTc4MGRcdTc5NDZcdTc5NDlcdTc5NDhcdTc5NDdcdTc5YjlcdTc5YmFcdTc5ZDFcdTc5ZDJcdTc5Y2JcdTdhN2ZcdTdh'@; put 'ODFcdTdhZmZcdTdhZmRcdTdjN2RcdTdkMDJcdTdkMDVcdTdkMDBcdTdkMDlcdTdkMDdcdTdkMDRcdTdkMDZcdTdmMzhcdTdmOGVcdTdmYmZcdTgwMDQiXSxbImFkNDAiLCJcdTgwMTBcdTgwMGRcdTgwMTFcdTgwMzZcdTgwZDZcdTgwZTVcdTgwZGFcdTgwYzNcdTgwYzRcdTgwY2NcdTgwZTFc'@; put 'dTgwZGJcdTgwY2VcdTgwZGVcdTgwZTRcdTgwZGRcdTgxZjRcdTgyMjJcdTgyZTdcdTgzMDNcdTgzMDVcdTgyZTNcdTgyZGJcdTgyZTZcdTgzMDRcdTgyZTVcdTgzMDJcdTgzMDlcdTgyZDJcdTgyZDdcdTgyZjFcdTgzMDFcdTgyZGNcdTgyZDRcdTgyZDFcdTgyZGVcdTgyZDNcdTgyZGZcdTgy'@; put 'ZWZcdTgzMDZcdTg2NTBcdTg2NzlcdTg2N2JcdTg2N2FcdTg4NGRcdTg4NmJcdTg5ODFcdTg5ZDRcdThhMDhcdThhMDJcdThhMDNcdThjOWVcdThjYTBcdThkNzRcdThkNzNcdThkYjRcdThlY2RcdThlY2NcdThmZjBcdThmZTZcdThmZTJcdThmZWFcdThmZTUiXSxbImFkYTEiLCJcdThmZWRc'@; put 'dThmZWJcdThmZTRcdThmZThcdTkwY2FcdTkwY2VcdTkwYzFcdTkwYzNcdTkxNGJcdTkxNGFcdTkxY2RcdTk1ODJcdTk2NTBcdTk2NGJcdTk2NGNcdTk2NGRcdTk3NjJcdTk3NjlcdTk3Y2JcdTk3ZWRcdTk3ZjNcdTk4MDFcdTk4YThcdTk4ZGJcdTk4ZGZcdTk5OTZcdTk5OTlcdTRlNThcdTRl'@; put 'YjNcdTUwMGNcdTUwMGRcdTUwMjNcdTRmZWZcdTUwMjZcdTUwMjVcdTRmZjhcdTUwMjlcdTUwMTZcdTUwMDZcdTUwM2NcdTUwMWZcdTUwMWFcdTUwMTJcdTUwMTFcdTRmZmFcdTUwMDBcdTUwMTRcdTUwMjhcdTRmZjFcdTUwMjFcdTUwMGJcdTUwMTlcdTUwMThcdTRmZjNcdTRmZWVcdTUwMmRc'@; put 'dTUwMmFcdTRmZmVcdTUwMmJcdTUwMDlcdTUxN2NcdTUxYTRcdTUxYTVcdTUxYTJcdTUxY2RcdTUxY2NcdTUxYzZcdTUxY2JcdTUyNTZcdTUyNWNcdTUyNTRcdTUyNWJcdTUyNWRcdTUzMmFcdTUzN2ZcdTUzOWZcdTUzOWRcdTUzZGZcdTU0ZThcdTU1MTBcdTU1MDFcdTU1MzdcdTU0ZmNcdTU0'@; put 'ZTVcdTU0ZjJcdTU1MDZcdTU0ZmFcdTU1MTRcdTU0ZTlcdTU0ZWRcdTU0ZTFcdTU1MDlcdTU0ZWVcdTU0ZWEiXSxbImFlNDAiLCJcdTU0ZTZcdTU1MjdcdTU1MDdcdTU0ZmRcdTU1MGZcdTU3MDNcdTU3MDRcdTU3YzJcdTU3ZDRcdTU3Y2JcdTU3YzNcdTU4MDlcdTU5MGZcdTU5NTdcdTU5NThc'@; put 'dTU5NWFcdTVhMTFcdTVhMThcdTVhMWNcdTVhMWZcdTVhMWJcdTVhMTNcdTU5ZWNcdTVhMjBcdTVhMjNcdTVhMjlcdTVhMjVcdTVhMGNcdTVhMDlcdTViNmJcdTVjNThcdTViYjBcdTViYjNcdTViYjZcdTViYjRcdTViYWVcdTViYjVcdTViYjlcdTViYjhcdTVjMDRcdTVjNTFcdTVjNTVcdTVj'@; put 'NTBcdTVjZWRcdTVjZmRcdTVjZmJcdTVjZWFcdTVjZThcdTVjZjBcdTVjZjZcdTVkMDFcdTVjZjRcdTVkZWVcdTVlMmRcdTVlMmJcdTVlYWJcdTVlYWRcdTVlYTdcdTVmMzFcdTVmOTJcdTVmOTFcdTVmOTBcdTYwNTkiXSxbImFlYTEiLCJcdTYwNjNcdTYwNjVcdTYwNTBcdTYwNTVcdTYwNmRc'@; put 'dTYwNjlcdTYwNmZcdTYwODRcdTYwOWZcdTYwOWFcdTYwOGRcdTYwOTRcdTYwOGNcdTYwODVcdTYwOTZcdTYyNDdcdTYyZjNcdTYzMDhcdTYyZmZcdTYzNGVcdTYzM2VcdTYzMmZcdTYzNTVcdTYzNDJcdTYzNDZcdTYzNGZcdTYzNDlcdTYzM2FcdTYzNTBcdTYzM2RcdTYzMmFcdTYzMmJcdTYz'@; put 'MjhcdTYzNGRcdTYzNGNcdTY1NDhcdTY1NDlcdTY1OTlcdTY1YzFcdTY1YzVcdTY2NDJcdTY2NDlcdTY2NGZcdTY2NDNcdTY2NTJcdTY2NGNcdTY2NDVcdTY2NDFcdTY2ZjhcdTY3MTRcdTY3MTVcdTY3MTdcdTY4MjFcdTY4MzhcdTY4NDhcdTY4NDZcdTY4NTNcdTY4MzlcdTY4NDJcdTY4NTRc'@; put 'dTY4MjlcdTY4YjNcdTY4MTdcdTY4NGNcdTY4NTFcdTY4M2RcdTY3ZjRcdTY4NTBcdTY4NDBcdTY4M2NcdTY4NDNcdTY4MmFcdTY4NDVcdTY4MTNcdTY4MThcdTY4NDFcdTZiOGFcdTZiODlcdTZiYjdcdTZjMjNcdTZjMjdcdTZjMjhcdTZjMjZcdTZjMjRcdTZjZjBcdTZkNmFcdTZkOTVcdTZk'@; put 'ODhcdTZkODdcdTZkNjZcdTZkNzhcdTZkNzdcdTZkNTlcdTZkOTMiXSxbImFmNDAiLCJcdTZkNmNcdTZkODlcdTZkNmVcdTZkNWFcdTZkNzRcdTZkNjlcdTZkOGNcdTZkOGFcdTZkNzlcdTZkODVcdTZkNjVcdTZkOTRcdTcwY2FcdTcwZDhcdTcwZTRcdTcwZDlcdTcwYzhcdTcwY2ZcdTcyMzlc'@; put 'dTcyNzlcdTcyZmNcdTcyZjlcdTcyZmRcdTcyZjhcdTcyZjdcdTczODZcdTczZWRcdTc0MDlcdTczZWVcdTczZTBcdTczZWFcdTczZGVcdTc1NTRcdTc1NWRcdTc1NWNcdTc1NWFcdTc1NTlcdTc1YmVcdTc1YzVcdTc1YzdcdTc1YjJcdTc1YjNcdTc1YmRcdTc1YmNcdTc1YjlcdTc1YzJcdTc1'@; put 'YjhcdTc2OGJcdTc2YjBcdTc2Y2FcdTc2Y2RcdTc2Y2VcdTc3MjlcdTc3MWZcdTc3MjBcdTc3MjhcdTc3ZTlcdTc4MzBcdTc4MjdcdTc4MzhcdTc4MWRcdTc4MzRcdTc4MzciXSxbImFmYTEiLCJcdTc4MjVcdTc4MmRcdTc4MjBcdTc4MWZcdTc4MzJcdTc5NTVcdTc5NTBcdTc5NjBcdTc5NWZc'@; put 'dTc5NTZcdTc5NWVcdTc5NWRcdTc5NTdcdTc5NWFcdTc5ZTRcdTc5ZTNcdTc5ZTdcdTc5ZGZcdTc5ZTZcdTc5ZTlcdTc5ZDhcdTdhODRcdTdhODhcdTdhZDlcdTdiMDZcdTdiMTFcdTdjODlcdTdkMjFcdTdkMTdcdTdkMGJcdTdkMGFcdTdkMjBcdTdkMjJcdTdkMTRcdTdkMTBcdTdkMTVcdTdk'@; put 'MWFcdTdkMWNcdTdkMGRcdTdkMTlcdTdkMWJcdTdmM2FcdTdmNWZcdTdmOTRcdTdmYzVcdTdmYzFcdTgwMDZcdTgwMThcdTgwMTVcdTgwMTlcdTgwMTdcdTgwM2RcdTgwM2ZcdTgwZjFcdTgxMDJcdTgwZjBcdTgxMDVcdTgwZWRcdTgwZjRcdTgxMDZcdTgwZjhcdTgwZjNcdTgxMDhcdTgwZmRc'@; put 'dTgxMGFcdTgwZmNcdTgwZWZcdTgxZWRcdTgxZWNcdTgyMDBcdTgyMTBcdTgyMmFcdTgyMmJcdTgyMjhcdTgyMmNcdTgyYmJcdTgzMmJcdTgzNTJcdTgzNTRcdTgzNGFcdTgzMzhcdTgzNTBcdTgzNDlcdTgzMzVcdTgzMzRcdTgzNGZcdTgzMzJcdTgzMzlcdTgzMzZcdTgzMTdcdTgzNDBcdTgz'@; put 'MzFcdTgzMjhcdTgzNDMiXSxbImIwNDAiLCJcdTg2NTRcdTg2OGFcdTg2YWFcdTg2OTNcdTg2YTRcdTg2YTlcdTg2OGNcdTg2YTNcdTg2OWNcdTg4NzBcdTg4NzdcdTg4ODFcdTg4ODJcdTg4N2RcdTg4NzlcdThhMThcdThhMTBcdThhMGVcdThhMGNcdThhMTVcdThhMGFcdThhMTdcdThhMTNc'@; put 'dThhMTZcdThhMGZcdThhMTFcdThjNDhcdThjN2FcdThjNzlcdThjYTFcdThjYTJcdThkNzdcdThlYWNcdThlZDJcdThlZDRcdThlY2ZcdThmYjFcdTkwMDFcdTkwMDZcdThmZjdcdTkwMDBcdThmZmFcdThmZjRcdTkwMDNcdThmZmRcdTkwMDVcdThmZjhcdTkwOTVcdTkwZTFcdTkwZGRcdTkw'@; put 'ZTJcdTkxNTJcdTkxNGRcdTkxNGNcdTkxZDhcdTkxZGRcdTkxZDdcdTkxZGNcdTkxZDlcdTk1ODNcdTk2NjJcdTk2NjNcdTk2NjEiXSxbImIwYTEiLCJcdTk2NWJcdTk2NWRcdTk2NjRcdTk2NThcdTk2NWVcdTk2YmJcdTk4ZTJcdTk5YWNcdTlhYThcdTlhZDhcdTliMjVcdTliMzJcdTliM2Nc'@; put 'dTRlN2VcdTUwN2FcdTUwN2RcdTUwNWNcdTUwNDdcdTUwNDNcdTUwNGNcdTUwNWFcdTUwNDlcdTUwNjVcdTUwNzZcdTUwNGVcdTUwNTVcdTUwNzVcdTUwNzRcdTUwNzdcdTUwNGZcdTUwMGZcdTUwNmZcdTUwNmRcdTUxNWNcdTUxOTVcdTUxZjBcdTUyNmFcdTUyNmZcdTUyZDJcdTUyZDlcdTUy'@; put 'ZDhcdTUyZDVcdTUzMTBcdTUzMGZcdTUzMTlcdTUzM2ZcdTUzNDBcdTUzM2VcdTUzYzNcdTY2ZmNcdTU1NDZcdTU1NmFcdTU1NjZcdTU1NDRcdTU1NWVcdTU1NjFcdTU1NDNcdTU1NGFcdTU1MzFcdTU1NTZcdTU1NGZcdTU1NTVcdTU1MmZcdTU1NjRcdTU1MzhcdTU1MmVcdTU1NWNcdTU1MmNc'@; put 'dTU1NjNcdTU1MzNcdTU1NDFcdTU1NTdcdTU3MDhcdTU3MGJcdTU3MDlcdTU3ZGZcdTU4MDVcdTU4MGFcdTU4MDZcdTU3ZTBcdTU3ZTRcdTU3ZmFcdTU4MDJcdTU4MzVcdTU3ZjdcdTU3ZjlcdTU5MjBcdTU5NjJcdTVhMzZcdTVhNDFcdTVhNDlcdTVhNjZcdTVhNmFcdTVhNDAiXSxbImIxNDAi'@; put 'LCJcdTVhM2NcdTVhNjJcdTVhNWFcdTVhNDZcdTVhNGFcdTViNzBcdTViYzdcdTViYzVcdTViYzRcdTViYzJcdTViYmZcdTViYzZcdTVjMDlcdTVjMDhcdTVjMDdcdTVjNjBcdTVjNWNcdTVjNWRcdTVkMDdcdTVkMDZcdTVkMGVcdTVkMWJcdTVkMTZcdTVkMjJcdTVkMTFcdTVkMjlcdTVkMTRc'@; put 'dTVkMTlcdTVkMjRcdTVkMjdcdTVkMTdcdTVkZTJcdTVlMzhcdTVlMzZcdTVlMzNcdTVlMzdcdTVlYjdcdTVlYjhcdTVlYjZcdTVlYjVcdTVlYmVcdTVmMzVcdTVmMzdcdTVmNTdcdTVmNmNcdTVmNjlcdTVmNmJcdTVmOTdcdTVmOTlcdTVmOWVcdTVmOThcdTVmYTFcdTVmYTBcdTVmOWNcdTYw'@; put 'N2ZcdTYwYTNcdTYwODlcdTYwYTBcdTYwYThcdTYwY2JcdTYwYjRcdTYwZTZcdTYwYmQiXSxbImIxYTEiLCJcdTYwYzVcdTYwYmJcdTYwYjVcdTYwZGNcdTYwYmNcdTYwZDhcdTYwZDVcdTYwYzZcdTYwZGZcdTYwYjhcdTYwZGFcdTYwYzdcdTYyMWFcdTYyMWJcdTYyNDhcdTYzYTBcdTYzYTdc'@; put 'dTYzNzJcdTYzOTZcdTYzYTJcdTYzYTVcdTYzNzdcdTYzNjdcdTYzOThcdTYzYWFcdTYzNzFcdTYzYTlcdTYzODlcdTYzODNcdTYzOWJcdTYzNmJcdTYzYThcdTYzODRcdTYzODhcdTYzOTlcdTYzYTFcdTYzYWNcdTYzOTJcdTYzOGZcdTYzODBcdTYzN2JcdTYzNjlcdTYzNjhcdTYzN2FcdTY1'@; put 'NWRcdTY1NTZcdTY1NTFcdTY1NTlcdTY1NTdcdTU1NWZcdTY1NGZcdTY1NThcdTY1NTVcdTY1NTRcdTY1OWNcdTY1OWJcdTY1YWNcdTY1Y2ZcdTY1Y2JcdTY1Y2NcdTY1Y2VcdTY2NWRcdTY2NWFcdTY2NjRcdTY2NjhcdTY2NjZcdTY2NWVcdTY2ZjlcdTUyZDdcdTY3MWJcdTY4ODFcdTY4YWZc'@; put 'dTY4YTJcdTY4OTNcdTY4YjVcdTY4N2ZcdTY4NzZcdTY4YjFcdTY4YTdcdTY4OTdcdTY4YjBcdTY4ODNcdTY4YzRcdTY4YWRcdTY4ODZcdTY4ODVcdTY4OTRcdTY4OWRcdTY4YThcdTY4OWZcdTY4YTFcdTY4ODJcdTZiMzJcdTZiYmEiXSxbImIyNDAiLCJcdTZiZWJcdTZiZWNcdTZjMmJcdTZk'@; put 'OGVcdTZkYmNcdTZkZjNcdTZkZDlcdTZkYjJcdTZkZTFcdTZkY2NcdTZkZTRcdTZkZmJcdTZkZmFcdTZlMDVcdTZkYzdcdTZkY2JcdTZkYWZcdTZkZDFcdTZkYWVcdTZkZGVcdTZkZjlcdTZkYjhcdTZkZjdcdTZkZjVcdTZkYzVcdTZkZDJcdTZlMWFcdTZkYjVcdTZkZGFcdTZkZWJcdTZkZDhc'@; put 'dTZkZWFcdTZkZjFcdTZkZWVcdTZkZThcdTZkYzZcdTZkYzRcdTZkYWFcdTZkZWNcdTZkYmZcdTZkZTZcdTcwZjlcdTcxMDlcdTcxMGFcdTcwZmRcdTcwZWZcdTcyM2RcdTcyN2RcdTcyODFcdTczMWNcdTczMWJcdTczMTZcdTczMTNcdTczMTlcdTczODdcdTc0MDVcdTc0MGFcdTc0MDNcdTc0'@; put 'MDZcdTczZmVcdTc0MGRcdTc0ZTBcdTc0ZjYiXSxbImIyYTEiLCJcdTc0ZjdcdTc1MWNcdTc1MjJcdTc1NjVcdTc1NjZcdTc1NjJcdTc1NzBcdTc1OGZcdTc1ZDRcdTc1ZDVcdTc1YjVcdTc1Y2FcdTc1Y2RcdTc2OGVcdTc2ZDRcdTc2ZDJcdTc2ZGJcdTc3MzdcdTc3M2VcdTc3M2NcdTc3MzZc'@; put 'dTc3MzhcdTc3M2FcdTc4NmJcdTc4NDNcdTc4NGVcdTc5NjVcdTc5NjhcdTc5NmRcdTc5ZmJcdTdhOTJcdTdhOTVcdTdiMjBcdTdiMjhcdTdiMWJcdTdiMmNcdTdiMjZcdTdiMTlcdTdiMWVcdTdiMmVcdTdjOTJcdTdjOTdcdTdjOTVcdTdkNDZcdTdkNDNcdTdkNzFcdTdkMmVcdTdkMzlcdTdk'@; put 'M2NcdTdkNDBcdTdkMzBcdTdkMzNcdTdkNDRcdTdkMmZcdTdkNDJcdTdkMzJcdTdkMzFcdTdmM2RcdTdmOWVcdTdmOWFcdTdmY2NcdTdmY2VcdTdmZDJcdTgwMWNcdTgwNGFcdTgwNDZcdTgxMmZcdTgxMTZcdTgxMjNcdTgxMmJcdTgxMjlcdTgxMzBcdTgxMjRcdTgyMDJcdTgyMzVcdTgyMzdc'@; put 'dTgyMzZcdTgyMzlcdTgzOGVcdTgzOWVcdTgzOThcdTgzNzhcdTgzYTJcdTgzOTZcdTgzYmRcdTgzYWJcdTgzOTJcdTgzOGFcdTgzOTNcdTgzODlcdTgzYTBcdTgzNzdcdTgzN2JcdTgzN2MiXSxbImIzNDAiLCJcdTgzODZcdTgzYTdcdTg2NTVcdTVmNmFcdTg2YzdcdTg2YzBcdTg2YjZcdTg2'@; put 'YzRcdTg2YjVcdTg2YzZcdTg2Y2JcdTg2YjFcdTg2YWZcdTg2YzlcdTg4NTNcdTg4OWVcdTg4ODhcdTg4YWJcdTg4OTJcdTg4OTZcdTg4OGRcdTg4OGJcdTg5OTNcdTg5OGZcdThhMmFcdThhMWRcdThhMjNcdThhMjVcdThhMzFcdThhMmRcdThhMWZcdThhMWJcdThhMjJcdThjNDlcdThjNWFc'@; put 'dThjYTlcdThjYWNcdThjYWJcdThjYThcdThjYWFcdThjYTdcdThkNjdcdThkNjZcdThkYmVcdThkYmFcdThlZGJcdThlZGZcdTkwMTlcdTkwMGRcdTkwMWFcdTkwMTdcdTkwMjNcdTkwMWZcdTkwMWRcdTkwMTBcdTkwMTVcdTkwMWVcdTkwMjBcdTkwMGZcdTkwMjJcdTkwMTZcdTkwMWJcdTkw'@; put 'MTQiXSxbImIzYTEiLCJcdTkwZThcdTkwZWRcdTkwZmRcdTkxNTdcdTkxY2VcdTkxZjVcdTkxZTZcdTkxZTNcdTkxZTdcdTkxZWRcdTkxZTlcdTk1ODlcdTk2NmFcdTk2NzVcdTk2NzNcdTk2NzhcdTk2NzBcdTk2NzRcdTk2NzZcdTk2NzdcdTk2NmNcdTk2YzBcdTk2ZWFcdTk2ZTlcdTdhZTBc'@; put 'dTdhZGZcdTk4MDJcdTk4MDNcdTliNWFcdTljZTVcdTllNzVcdTllN2ZcdTllYTVcdTllYmJcdTUwYTJcdTUwOGRcdTUwODVcdTUwOTlcdTUwOTFcdTUwODBcdTUwOTZcdTUwOThcdTUwOWFcdTY3MDBcdTUxZjFcdTUyNzJcdTUyNzRcdTUyNzVcdTUyNjlcdTUyZGVcdTUyZGRcdTUyZGJcdTUz'@; put 'NWFcdTUzYTVcdTU1N2JcdTU1ODBcdTU1YTdcdTU1N2NcdTU1OGFcdTU1OWRcdTU1OThcdTU1ODJcdTU1OWNcdTU1YWFcdTU1OTRcdTU1ODdcdTU1OGJcdTU1ODNcdTU1YjNcdTU1YWVcdTU1OWZcdTU1M2VcdTU1YjJcdTU1OWFcdTU1YmJcdTU1YWNcdTU1YjFcdTU1N2VcdTU1ODlcdTU1YWJc'@; put 'dTU1OTlcdTU3MGRcdTU4MmZcdTU4MmFcdTU4MzRcdTU4MjRcdTU4MzBcdTU4MzFcdTU4MjFcdTU4MWRcdTU4MjBcdTU4ZjlcdTU4ZmFcdTU5NjAiXSxbImI0NDAiLCJcdTVhNzdcdTVhOWFcdTVhN2ZcdTVhOTJcdTVhOWJcdTVhYTdcdTViNzNcdTViNzFcdTViZDJcdTViY2NcdTViZDNcdTVi'@; put 'ZDBcdTVjMGFcdTVjMGJcdTVjMzFcdTVkNGNcdTVkNTBcdTVkMzRcdTVkNDdcdTVkZmRcdTVlNDVcdTVlM2RcdTVlNDBcdTVlNDNcdTVlN2VcdTVlY2FcdTVlYzFcdTVlYzJcdTVlYzRcdTVmM2NcdTVmNmRcdTVmYTlcdTVmYWFcdTVmYThcdTYwZDFcdTYwZTFcdTYwYjJcdTYwYjZcdTYwZTBc'@; put 'dTYxMWNcdTYxMjNcdTYwZmFcdTYxMTVcdTYwZjBcdTYwZmJcdTYwZjRcdTYxNjhcdTYwZjFcdTYxMGVcdTYwZjZcdTYxMDlcdTYxMDBcdTYxMTJcdTYyMWZcdTYyNDlcdTYzYTNcdTYzOGNcdTYzY2ZcdTYzYzBcdTYzZTlcdTYzYzlcdTYzYzZcdTYzY2QiXSxbImI0YTEiLCJcdTYzZDJcdTYz'@; put 'ZTNcdTYzZDBcdTYzZTFcdTYzZDZcdTYzZWRcdTYzZWVcdTYzNzZcdTYzZjRcdTYzZWFcdTYzZGJcdTY0NTJcdTYzZGFcdTYzZjlcdTY1NWVcdTY1NjZcdTY1NjJcdTY1NjNcdTY1OTFcdTY1OTBcdTY1YWZcdTY2NmVcdTY2NzBcdTY2NzRcdTY2NzZcdTY2NmZcdTY2OTFcdTY2N2FcdTY2N2Vc'@; put 'dTY2NzdcdTY2ZmVcdTY2ZmZcdTY3MWZcdTY3MWRcdTY4ZmFcdTY4ZDVcdTY4ZTBcdTY4ZDhcdTY4ZDdcdTY5MDVcdTY4ZGZcdTY4ZjVcdTY4ZWVcdTY4ZTdcdTY4ZjlcdTY4ZDJcdTY4ZjJcdTY4ZTNcdTY4Y2JcdTY4Y2RcdTY5MGRcdTY5MTJcdTY5MGVcdTY4YzlcdTY4ZGFcdTY5NmVcdTY4'@; put 'ZmJcdTZiM2VcdTZiM2FcdTZiM2RcdTZiOThcdTZiOTZcdTZiYmNcdTZiZWZcdTZjMmVcdTZjMmZcdTZjMmNcdTZlMmZcdTZlMzhcdTZlNTRcdTZlMjFcdTZlMzJcdTZlNjdcdTZlNGFcdTZlMjBcdTZlMjVcdTZlMjNcdTZlMWJcdTZlNWJcdTZlNThcdTZlMjRcdTZlNTZcdTZlNmVcdTZlMmRc'@; put 'dTZlMjZcdTZlNmZcdTZlMzRcdTZlNGRcdTZlM2FcdTZlMmNcdTZlNDNcdTZlMWRcdTZlM2VcdTZlY2IiXSxbImI1NDAiLCJcdTZlODlcdTZlMTlcdTZlNGVcdTZlNjNcdTZlNDRcdTZlNzJcdTZlNjlcdTZlNWZcdTcxMTlcdTcxMWFcdTcxMjZcdTcxMzBcdTcxMjFcdTcxMzZcdTcxNmVcdTcx'@; put 'MWNcdTcyNGNcdTcyODRcdTcyODBcdTczMzZcdTczMjVcdTczMzRcdTczMjlcdTc0M2FcdTc0MmFcdTc0MzNcdTc0MjJcdTc0MjVcdTc0MzVcdTc0MzZcdTc0MzRcdTc0MmZcdTc0MWJcdTc0MjZcdTc0MjhcdTc1MjVcdTc1MjZcdTc1NmJcdTc1NmFcdTc1ZTJcdTc1ZGJcdTc1ZTNcdTc1ZDlc'@; put 'dTc1ZDhcdTc1ZGVcdTc1ZTBcdTc2N2JcdTc2N2NcdTc2OTZcdTc2OTNcdTc2YjRcdTc2ZGNcdTc3NGZcdTc3ZWRcdTc4NWRcdTc4NmNcdTc4NmZcdTdhMGRcdTdhMDhcdTdhMGJcdTdhMDVcdTdhMDBcdTdhOTgiXSxbImI1YTEiLCJcdTdhOTdcdTdhOTZcdTdhZTVcdTdhZTNcdTdiNDlcdTdi'@; put 'NTZcdTdiNDZcdTdiNTBcdTdiNTJcdTdiNTRcdTdiNGRcdTdiNGJcdTdiNGZcdTdiNTFcdTdjOWZcdTdjYTVcdTdkNWVcdTdkNTBcdTdkNjhcdTdkNTVcdTdkMmJcdTdkNmVcdTdkNzJcdTdkNjFcdTdkNjZcdTdkNjJcdTdkNzBcdTdkNzNcdTU1ODRcdTdmZDRcdTdmZDVcdTgwMGJcdTgwNTJc'@; put 'dTgwODVcdTgxNTVcdTgxNTRcdTgxNGJcdTgxNTFcdTgxNGVcdTgxMzlcdTgxNDZcdTgxM2VcdTgxNGNcdTgxNTNcdTgxNzRcdTgyMTJcdTgyMWNcdTgzZTlcdTg0MDNcdTgzZjhcdTg0MGRcdTgzZTBcdTgzYzVcdTg0MGJcdTgzYzFcdTgzZWZcdTgzZjFcdTgzZjRcdTg0NTdcdTg0MGFcdTgz'@; put 'ZjBcdTg0MGNcdTgzY2NcdTgzZmRcdTgzZjJcdTgzY2FcdTg0MzhcdTg0MGVcdTg0MDRcdTgzZGNcdTg0MDdcdTgzZDRcdTgzZGZcdTg2NWJcdTg2ZGZcdTg2ZDlcdTg2ZWRcdTg2ZDRcdTg2ZGJcdTg2ZTRcdTg2ZDBcdTg2ZGVcdTg4NTdcdTg4YzFcdTg4YzJcdTg4YjFcdTg5ODNcdTg5OTZc'@; put 'dThhM2JcdThhNjBcdThhNTVcdThhNWVcdThhM2NcdThhNDEiXSxbImI2NDAiLCJcdThhNTRcdThhNWJcdThhNTBcdThhNDZcdThhMzRcdThhM2FcdThhMzZcdThhNTZcdThjNjFcdThjODJcdThjYWZcdThjYmNcdThjYjNcdThjYmRcdThjYzFcdThjYmJcdThjYzBcdThjYjRcdThjYjdcdThj'@; put 'YjZcdThjYmZcdThjYjhcdThkOGFcdThkODVcdThkODFcdThkY2VcdThkZGRcdThkY2JcdThkZGFcdThkZDFcdThkY2NcdThkZGJcdThkYzZcdThlZmJcdThlZjhcdThlZmNcdThmOWNcdTkwMmVcdTkwMzVcdTkwMzFcdTkwMzhcdTkwMzJcdTkwMzZcdTkxMDJcdTkwZjVcdTkxMDlcdTkwZmVc'@; put 'dTkxNjNcdTkxNjVcdTkxY2ZcdTkyMTRcdTkyMTVcdTkyMjNcdTkyMDlcdTkyMWVcdTkyMGRcdTkyMTBcdTkyMDdcdTkyMTFcdTk1OTRcdTk1OGZcdTk1OGJcdTk1OTEiXSxbImI2YTEiLCJcdTk1OTNcdTk1OTJcdTk1OGVcdTk2OGFcdTk2OGVcdTk2OGJcdTk2N2RcdTk2ODVcdTk2ODZcdTk2'@; put 'OGRcdTk2NzJcdTk2ODRcdTk2YzFcdTk2YzVcdTk2YzRcdTk2YzZcdTk2YzdcdTk2ZWZcdTk2ZjJcdTk3Y2NcdTk4MDVcdTk4MDZcdTk4MDhcdTk4ZTdcdTk4ZWFcdTk4ZWZcdTk4ZTlcdTk4ZjJcdTk4ZWRcdTk5YWVcdTk5YWRcdTllYzNcdTllY2RcdTllZDFcdTRlODJcdTUwYWRcdTUwYjVc'@; put 'dTUwYjJcdTUwYjNcdTUwYzVcdTUwYmVcdTUwYWNcdTUwYjdcdTUwYmJcdTUwYWZcdTUwYzdcdTUyN2ZcdTUyNzdcdTUyN2RcdTUyZGZcdTUyZTZcdTUyZTRcdTUyZTJcdTUyZTNcdTUzMmZcdTU1ZGZcdTU1ZThcdTU1ZDNcdTU1ZTZcdTU1Y2VcdTU1ZGNcdTU1YzdcdTU1ZDFcdTU1ZTNcdTU1'@; put 'ZTRcdTU1ZWZcdTU1ZGFcdTU1ZTFcdTU1YzVcdTU1YzZcdTU1ZTVcdTU1YzlcdTU3MTJcdTU3MTNcdTU4NWVcdTU4NTFcdTU4NThcdTU4NTdcdTU4NWFcdTU4NTRcdTU4NmJcdTU4NGNcdTU4NmRcdTU4NGFcdTU4NjJcdTU4NTJcdTU4NGJcdTU5NjdcdTVhYzFcdTVhYzlcdTVhY2NcdTVhYmVc'@; put 'dTVhYmRcdTVhYmMiXSxbImI3NDAiLCJcdTVhYjNcdTVhYzJcdTVhYjJcdTVkNjlcdTVkNmZcdTVlNGNcdTVlNzlcdTVlYzlcdTVlYzhcdTVmMTJcdTVmNTlcdTVmYWNcdTVmYWVcdTYxMWFcdTYxMGZcdTYxNDhcdTYxMWZcdTYwZjNcdTYxMWJcdTYwZjlcdTYxMDFcdTYxMDhcdTYxNGVcdTYx'@; put 'NGNcdTYxNDRcdTYxNGRcdTYxM2VcdTYxMzRcdTYxMjdcdTYxMGRcdTYxMDZcdTYxMzdcdTYyMjFcdTYyMjJcdTY0MTNcdTY0M2VcdTY0MWVcdTY0MmFcdTY0MmRcdTY0M2RcdTY0MmNcdTY0MGZcdTY0MWNcdTY0MTRcdTY0MGRcdTY0MzZcdTY0MTZcdTY0MTdcdTY0MDZcdTY1NmNcdTY1OWZc'@; put 'dTY1YjBcdTY2OTdcdTY2ODlcdTY2ODdcdTY2ODhcdTY2OTZcdTY2ODRcdTY2OThcdTY2OGRcdTY3MDNcdTY5OTRcdTY5NmQiXSxbImI3YTEiLCJcdTY5NWFcdTY5NzdcdTY5NjBcdTY5NTRcdTY5NzVcdTY5MzBcdTY5ODJcdTY5NGFcdTY5NjhcdTY5NmJcdTY5NWVcdTY5NTNcdTY5NzlcdTY5'@; put 'ODZcdTY5NWRcdTY5NjNcdTY5NWJcdTZiNDdcdTZiNzJcdTZiYzBcdTZiYmZcdTZiZDNcdTZiZmRcdTZlYTJcdTZlYWZcdTZlZDNcdTZlYjZcdTZlYzJcdTZlOTBcdTZlOWRcdTZlYzdcdTZlYzVcdTZlYTVcdTZlOThcdTZlYmNcdTZlYmFcdTZlYWJcdTZlZDFcdTZlOTZcdTZlOWNcdTZlYzRc'@; put 'dTZlZDRcdTZlYWFcdTZlYTdcdTZlYjRcdTcxNGVcdTcxNTlcdTcxNjlcdTcxNjRcdTcxNDlcdTcxNjdcdTcxNWNcdTcxNmNcdTcxNjZcdTcxNGNcdTcxNjVcdTcxNWVcdTcxNDZcdTcxNjhcdTcxNTZcdTcyM2FcdTcyNTJcdTczMzdcdTczNDVcdTczM2ZcdTczM2VcdTc0NmZcdTc0NWFcdTc0'@; put 'NTVcdTc0NWZcdTc0NWVcdTc0NDFcdTc0M2ZcdTc0NTlcdTc0NWJcdTc0NWNcdTc1NzZcdTc1NzhcdTc2MDBcdTc1ZjBcdTc2MDFcdTc1ZjJcdTc1ZjFcdTc1ZmFcdTc1ZmZcdTc1ZjRcdTc1ZjNcdTc2ZGVcdTc2ZGZcdTc3NWJcdTc3NmJcdTc3NjZcdTc3NWVcdTc3NjMiXSxbImI4NDAiLCJc'@; put 'dTc3NzlcdTc3NmFcdTc3NmNcdTc3NWNcdTc3NjVcdTc3NjhcdTc3NjJcdTc3ZWVcdTc4OGVcdTc4YjBcdTc4OTdcdTc4OThcdTc4OGNcdTc4ODlcdTc4N2NcdTc4OTFcdTc4OTNcdTc4N2ZcdTc5N2FcdTc5N2ZcdTc5ODFcdTg0MmNcdTc5YmRcdTdhMWNcdTdhMWFcdTdhMjBcdTdhMTRcdTdh'@; put 'MWZcdTdhMWVcdTdhOWZcdTdhYTBcdTdiNzdcdTdiYzBcdTdiNjBcdTdiNmVcdTdiNjdcdTdjYjFcdTdjYjNcdTdjYjVcdTdkOTNcdTdkNzlcdTdkOTFcdTdkODFcdTdkOGZcdTdkNWJcdTdmNmVcdTdmNjlcdTdmNmFcdTdmNzJcdTdmYTlcdTdmYThcdTdmYTRcdTgwNTZcdTgwNThcdTgwODZc'@; put 'dTgwODRcdTgxNzFcdTgxNzBcdTgxNzhcdTgxNjVcdTgxNmVcdTgxNzNcdTgxNmIiXSxbImI4YTEiLCJcdTgxNzlcdTgxN2FcdTgxNjZcdTgyMDVcdTgyNDdcdTg0ODJcdTg0NzdcdTg0M2RcdTg0MzFcdTg0NzVcdTg0NjZcdTg0NmJcdTg0NDlcdTg0NmNcdTg0NWJcdTg0M2NcdTg0MzVcdTg0'@; put 'NjFcdTg0NjNcdTg0NjlcdTg0NmRcdTg0NDZcdTg2NWVcdTg2NWNcdTg2NWZcdTg2ZjlcdTg3MTNcdTg3MDhcdTg3MDdcdTg3MDBcdTg2ZmVcdTg2ZmJcdTg3MDJcdTg3MDNcdTg3MDZcdTg3MGFcdTg4NTlcdTg4ZGZcdTg4ZDRcdTg4ZDlcdTg4ZGNcdTg4ZDhcdTg4ZGRcdTg4ZTFcdTg4Y2Fc'@; put 'dTg4ZDVcdTg4ZDJcdTg5OWNcdTg5ZTNcdThhNmJcdThhNzJcdThhNzNcdThhNjZcdThhNjlcdThhNzBcdThhODdcdThhN2NcdThhNjNcdThhYTBcdThhNzFcdThhODVcdThhNmRcdThhNjJcdThhNmVcdThhNmNcdThhNzlcdThhN2JcdThhM2VcdThhNjhcdThjNjJcdThjOGFcdThjODlcdThj'@; put 'Y2FcdThjYzdcdThjYzhcdThjYzRcdThjYjJcdThjYzNcdThjYzJcdThjYzVcdThkZTFcdThkZGZcdThkZThcdThkZWZcdThkZjNcdThkZmFcdThkZWFcdThkZTRcdThkZTZcdThlYjJcdThmMDNcdThmMDlcdThlZmVcdThmMGEiXSxbImI5NDAiLCJcdThmOWZcdThmYjJcdTkwNGJcdTkwNGFc'@; put 'dTkwNTNcdTkwNDJcdTkwNTRcdTkwM2NcdTkwNTVcdTkwNTBcdTkwNDdcdTkwNGZcdTkwNGVcdTkwNGRcdTkwNTFcdTkwM2VcdTkwNDFcdTkxMTJcdTkxMTdcdTkxNmNcdTkxNmFcdTkxNjlcdTkxYzlcdTkyMzdcdTkyNTdcdTkyMzhcdTkyM2RcdTkyNDBcdTkyM2VcdTkyNWJcdTkyNGJcdTky'@; put 'NjRcdTkyNTFcdTkyMzRcdTkyNDlcdTkyNGRcdTkyNDVcdTkyMzlcdTkyM2ZcdTkyNWFcdTk1OThcdTk2OThcdTk2OTRcdTk2OTVcdTk2Y2RcdTk2Y2JcdTk2YzlcdTk2Y2FcdTk2ZjdcdTk2ZmJcdTk2ZjlcdTk2ZjZcdTk3NTZcdTk3NzRcdTk3NzZcdTk4MTBcdTk4MTFcdTk4MTNcdTk4MGFc'@; put 'dTk4MTJcdTk4MGNcdTk4ZmNcdTk4ZjQiXSxbImI5YTEiLCJcdTk4ZmRcdTk4ZmVcdTk5YjNcdTk5YjFcdTk5YjRcdTlhZTFcdTljZTlcdTllODJcdTlmMGVcdTlmMTNcdTlmMjBcdTUwZTdcdTUwZWVcdTUwZTVcdTUwZDZcdTUwZWRcdTUwZGFcdTUwZDVcdTUwY2ZcdTUwZDFcdTUwZjFcdTUw'@; put 'Y2VcdTUwZTlcdTUxNjJcdTUxZjNcdTUyODNcdTUyODJcdTUzMzFcdTUzYWRcdTU1ZmVcdTU2MDBcdTU2MWJcdTU2MTdcdTU1ZmRcdTU2MTRcdTU2MDZcdTU2MDlcdTU2MGRcdTU2MGVcdTU1ZjdcdTU2MTZcdTU2MWZcdTU2MDhcdTU2MTBcdTU1ZjZcdTU3MThcdTU3MTZcdTU4NzVcdTU4N2Vc'@; put 'dTU4ODNcdTU4OTNcdTU4OGFcdTU4NzlcdTU4ODVcdTU4N2RcdTU4ZmRcdTU5MjVcdTU5MjJcdTU5MjRcdTU5NmFcdTU5NjlcdTVhZTFcdTVhZTZcdTVhZTlcdTVhZDdcdTVhZDZcdTVhZDhcdTVhZTNcdTViNzVcdTViZGVcdTViZTdcdTViZTFcdTViZTVcdTViZTZcdTViZThcdTViZTJcdTVi'@; put 'ZTRcdTViZGZcdTVjMGRcdTVjNjJcdTVkODRcdTVkODdcdTVlNWJcdTVlNjNcdTVlNTVcdTVlNTdcdTVlNTRcdTVlZDNcdTVlZDZcdTVmMGFcdTVmNDZcdTVmNzBcdTVmYjlcdTYxNDciXSxbImJhNDAiLCJcdTYxM2ZcdTYxNGJcdTYxNzdcdTYxNjJcdTYxNjNcdTYxNWZcdTYxNWFcdTYxNThc'@; put 'dTYxNzVcdTYyMmFcdTY0ODdcdTY0NThcdTY0NTRcdTY0YTRcdTY0NzhcdTY0NWZcdTY0N2FcdTY0NTFcdTY0NjdcdTY0MzRcdTY0NmRcdTY0N2JcdTY1NzJcdTY1YTFcdTY1ZDdcdTY1ZDZcdTY2YTJcdTY2YThcdTY2OWRcdTY5OWNcdTY5YThcdTY5OTVcdTY5YzFcdTY5YWVcdTY5ZDNcdTY5'@; put 'Y2JcdTY5OWJcdTY5YjdcdTY5YmJcdTY5YWJcdTY5YjRcdTY5ZDBcdTY5Y2RcdTY5YWRcdTY5Y2NcdTY5YTZcdTY5YzNcdTY5YTNcdTZiNDlcdTZiNGNcdTZjMzNcdTZmMzNcdTZmMTRcdTZlZmVcdTZmMTNcdTZlZjRcdTZmMjlcdTZmM2VcdTZmMjBcdTZmMmNcdTZmMGZcdTZmMDJcdTZmMjIi'@; put 'XSxbImJhYTEiLCJcdTZlZmZcdTZlZWZcdTZmMDZcdTZmMzFcdTZmMzhcdTZmMzJcdTZmMjNcdTZmMTVcdTZmMmJcdTZmMmZcdTZmODhcdTZmMmFcdTZlZWNcdTZmMDFcdTZlZjJcdTZlY2NcdTZlZjdcdTcxOTRcdTcxOTlcdTcxN2RcdTcxOGFcdTcxODRcdTcxOTJcdTcyM2VcdTcyOTJcdTcy'@; put 'OTZcdTczNDRcdTczNTBcdTc0NjRcdTc0NjNcdTc0NmFcdTc0NzBcdTc0NmRcdTc1MDRcdTc1OTFcdTc2MjdcdTc2MGRcdTc2MGJcdTc2MDlcdTc2MTNcdTc2ZTFcdTc2ZTNcdTc3ODRcdTc3N2RcdTc3N2ZcdTc3NjFcdTc4YzFcdTc4OWZcdTc4YTdcdTc4YjNcdTc4YTlcdTc4YTNcdTc5OGVc'@; put 'dTc5OGZcdTc5OGRcdTdhMmVcdTdhMzFcdTdhYWFcdTdhYTlcdTdhZWRcdTdhZWZcdTdiYTFcdTdiOTVcdTdiOGJcdTdiNzVcdTdiOTdcdTdiOWRcdTdiOTRcdTdiOGZcdTdiYjhcdTdiODdcdTdiODRcdTdjYjlcdTdjYmRcdTdjYmVcdTdkYmJcdTdkYjBcdTdkOWNcdTdkYmRcdTdkYmVcdTdk'@; put 'YTBcdTdkY2FcdTdkYjRcdTdkYjJcdTdkYjFcdTdkYmFcdTdkYTJcdTdkYmZcdTdkYjVcdTdkYjhcdTdkYWRcdTdkZDJcdTdkYzdcdTdkYWMiXSxbImJiNDAiLCJcdTdmNzBcdTdmZTBcdTdmZTFcdTdmZGZcdTgwNWVcdTgwNWFcdTgwODdcdTgxNTBcdTgxODBcdTgxOGZcdTgxODhcdTgxOGFc'@; put 'dTgxN2ZcdTgxODJcdTgxZTdcdTgxZmFcdTgyMDdcdTgyMTRcdTgyMWVcdTgyNGJcdTg0YzlcdTg0YmZcdTg0YzZcdTg0YzRcdTg0OTlcdTg0OWVcdTg0YjJcdTg0OWNcdTg0Y2JcdTg0YjhcdTg0YzBcdTg0ZDNcdTg0OTBcdTg0YmNcdTg0ZDFcdTg0Y2FcdTg3M2ZcdTg3MWNcdTg3M2JcdTg3'@; put 'MjJcdTg3MjVcdTg3MzRcdTg3MThcdTg3NTVcdTg3MzdcdTg3MjlcdTg4ZjNcdTg5MDJcdTg4ZjRcdTg4ZjlcdTg4ZjhcdTg4ZmRcdTg4ZThcdTg5MWFcdTg4ZWZcdThhYTZcdThhOGNcdThhOWVcdThhYTNcdThhOGRcdThhYTFcdThhOTNcdThhYTQiXSxbImJiYTEiLCJcdThhYWFcdThhYTVc'@; put 'dThhYThcdThhOThcdThhOTFcdThhOWFcdThhYTdcdThjNmFcdThjOGRcdThjOGNcdThjZDNcdThjZDFcdThjZDJcdThkNmJcdThkOTlcdThkOTVcdThkZmNcdThmMTRcdThmMTJcdThmMTVcdThmMTNcdThmYTNcdTkwNjBcdTkwNThcdTkwNWNcdTkwNjNcdTkwNTlcdTkwNWVcdTkwNjJcdTkw'@; put 'NWRcdTkwNWJcdTkxMTlcdTkxMThcdTkxMWVcdTkxNzVcdTkxNzhcdTkxNzdcdTkxNzRcdTkyNzhcdTkyODBcdTkyODVcdTkyOThcdTkyOTZcdTkyN2JcdTkyOTNcdTkyOWNcdTkyYThcdTkyN2NcdTkyOTFcdTk1YTFcdTk1YThcdTk1YTlcdTk1YTNcdTk1YTVcdTk1YTRcdTk2OTlcdTk2OWNc'@; put 'dTk2OWJcdTk2Y2NcdTk2ZDJcdTk3MDBcdTk3N2NcdTk3ODVcdTk3ZjZcdTk4MTdcdTk4MThcdTk4YWZcdTk4YjFcdTk5MDNcdTk5MDVcdTk5MGNcdTk5MDlcdTk5YzFcdTlhYWZcdTlhYjBcdTlhZTZcdTliNDFcdTliNDJcdTljZjRcdTljZjZcdTljZjNcdTllYmNcdTlmM2JcdTlmNGFcdTUx'@; put 'MDRcdTUxMDBcdTUwZmJcdTUwZjVcdTUwZjlcdTUxMDJcdTUxMDhcdTUxMDlcdTUxMDVcdTUxZGMiXSxbImJjNDAiLCJcdTUyODdcdTUyODhcdTUyODlcdTUyOGRcdTUyOGFcdTUyZjBcdTUzYjJcdTU2MmVcdTU2M2JcdTU2MzlcdTU2MzJcdTU2M2ZcdTU2MzRcdTU2MjlcdTU2NTNcdTU2NGVc'@; put 'dTU2NTdcdTU2NzRcdTU2MzZcdTU2MmZcdTU2MzBcdTU4ODBcdTU4OWZcdTU4OWVcdTU4YjNcdTU4OWNcdTU4YWVcdTU4YTlcdTU4YTZcdTU5NmRcdTViMDlcdTVhZmJcdTViMGJcdTVhZjVcdTViMGNcdTViMDhcdTViZWVcdTViZWNcdTViZTlcdTViZWJcdTVjNjRcdTVjNjVcdTVkOWRcdTVk'@; put 'OTRcdTVlNjJcdTVlNWZcdTVlNjFcdTVlZTJcdTVlZGFcdTVlZGZcdTVlZGRcdTVlZTNcdTVlZTBcdTVmNDhcdTVmNzFcdTVmYjdcdTVmYjVcdTYxNzZcdTYxNjdcdTYxNmVcdTYxNWRcdTYxNTVcdTYxODIiXSxbImJjYTEiLCJcdTYxN2NcdTYxNzBcdTYxNmJcdTYxN2VcdTYxYTdcdTYxOTBc'@; put 'dTYxYWJcdTYxOGVcdTYxYWNcdTYxOWFcdTYxYTRcdTYxOTRcdTYxYWVcdTYyMmVcdTY0NjlcdTY0NmZcdTY0NzlcdTY0OWVcdTY0YjJcdTY0ODhcdTY0OTBcdTY0YjBcdTY0YTVcdTY0OTNcdTY0OTVcdTY0YTlcdTY0OTJcdTY0YWVcdTY0YWRcdTY0YWJcdTY0OWFcdTY0YWNcdTY0OTlcdTY0'@; put 'YTJcdTY0YjNcdTY1NzVcdTY1NzdcdTY1NzhcdTY2YWVcdTY2YWJcdTY2YjRcdTY2YjFcdTZhMjNcdTZhMWZcdTY5ZThcdTZhMDFcdTZhMWVcdTZhMTlcdTY5ZmRcdTZhMjFcdTZhMTNcdTZhMGFcdTY5ZjNcdTZhMDJcdTZhMDVcdTY5ZWRcdTZhMTFcdTZiNTBcdTZiNGVcdTZiYTRcdTZiYzVc'@; put 'dTZiYzZcdTZmM2ZcdTZmN2NcdTZmODRcdTZmNTFcdTZmNjZcdTZmNTRcdTZmODZcdTZmNmRcdTZmNWJcdTZmNzhcdTZmNmVcdTZmOGVcdTZmN2FcdTZmNzBcdTZmNjRcdTZmOTdcdTZmNThcdTZlZDVcdTZmNmZcdTZmNjBcdTZmNWZcdTcxOWZcdTcxYWNcdTcxYjFcdTcxYThcdTcyNTZcdTcy'@; put 'OWJcdTczNGVcdTczNTdcdTc0NjlcdTc0OGJcdTc0ODMiXSxbImJkNDAiLCJcdTc0N2VcdTc0ODBcdTc1N2ZcdTc2MjBcdTc2MjlcdTc2MWZcdTc2MjRcdTc2MjZcdTc2MjFcdTc2MjJcdTc2OWFcdTc2YmFcdTc2ZTRcdTc3OGVcdTc3ODdcdTc3OGNcdTc3OTFcdTc3OGJcdTc4Y2JcdTc4YzVc'@; put 'dTc4YmFcdTc4Y2FcdTc4YmVcdTc4ZDVcdTc4YmNcdTc4ZDBcdTdhM2ZcdTdhM2NcdTdhNDBcdTdhM2RcdTdhMzdcdTdhM2JcdTdhYWZcdTdhYWVcdTdiYWRcdTdiYjFcdTdiYzRcdTdiYjRcdTdiYzZcdTdiYzdcdTdiYzFcdTdiYTBcdTdiY2NcdTdjY2FcdTdkZTBcdTdkZjRcdTdkZWZcdTdk'@; put 'ZmJcdTdkZDhcdTdkZWNcdTdkZGRcdTdkZThcdTdkZTNcdTdkZGFcdTdkZGVcdTdkZTlcdTdkOWVcdTdkZDlcdTdkZjJcdTdkZjlcdTdmNzVcdTdmNzdcdTdmYWYiXSxbImJkYTEiLCJcdTdmZTlcdTgwMjZcdTgxOWJcdTgxOWNcdTgxOWRcdTgxYTBcdTgxOWFcdTgxOThcdTg1MTdcdTg1M2Rc'@; put 'dTg1MWFcdTg0ZWVcdTg1MmNcdTg1MmRcdTg1MTNcdTg1MTFcdTg1MjNcdTg1MjFcdTg1MTRcdTg0ZWNcdTg1MjVcdTg0ZmZcdTg1MDZcdTg3ODJcdTg3NzRcdTg3NzZcdTg3NjBcdTg3NjZcdTg3NzhcdTg3NjhcdTg3NTlcdTg3NTdcdTg3NGNcdTg3NTNcdTg4NWJcdTg4NWRcdTg5MTBcdTg5'@; put 'MDdcdTg5MTJcdTg5MTNcdTg5MTVcdTg5MGFcdThhYmNcdThhZDJcdThhYzdcdThhYzRcdThhOTVcdThhY2JcdThhZjhcdThhYjJcdThhYzlcdThhYzJcdThhYmZcdThhYjBcdThhZDZcdThhY2RcdThhYjZcdThhYjlcdThhZGJcdThjNGNcdThjNGVcdThjNmNcdThjZTBcdThjZGVcdThjZTZc'@; put 'dThjZTRcdThjZWNcdThjZWRcdThjZTJcdThjZTNcdThjZGNcdThjZWFcdThjZTFcdThkNmRcdThkOWZcdThkYTNcdThlMmJcdThlMTBcdThlMWRcdThlMjJcdThlMGZcdThlMjlcdThlMWZcdThlMjFcdThlMWVcdThlYmFcdThmMWRcdThmMWJcdThmMWZcdThmMjlcdThmMjZcdThmMmFcdThm'@; put 'MWNcdThmMWUiXSxbImJlNDAiLCJcdThmMjVcdTkwNjlcdTkwNmVcdTkwNjhcdTkwNmRcdTkwNzdcdTkxMzBcdTkxMmRcdTkxMjdcdTkxMzFcdTkxODdcdTkxODlcdTkxOGJcdTkxODNcdTkyYzVcdTkyYmJcdTkyYjdcdTkyZWFcdTkyYWNcdTkyZTRcdTkyYzFcdTkyYjNcdTkyYmNcdTkyZDJc'@; put 'dTkyYzdcdTkyZjBcdTkyYjJcdTk1YWRcdTk1YjFcdTk3MDRcdTk3MDZcdTk3MDdcdTk3MDlcdTk3NjBcdTk3OGRcdTk3OGJcdTk3OGZcdTk4MjFcdTk4MmJcdTk4MWNcdTk4YjNcdTk5MGFcdTk5MTNcdTk5MTJcdTk5MThcdTk5ZGRcdTk5ZDBcdTk5ZGZcdTk5ZGJcdTk5ZDFcdTk5ZDVcdTk5'@; put 'ZDJcdTk5ZDlcdTlhYjdcdTlhZWVcdTlhZWZcdTliMjdcdTliNDVcdTliNDRcdTliNzdcdTliNmZcdTlkMDZcdTlkMDkiXSxbImJlYTEiLCJcdTlkMDNcdTllYTlcdTllYmVcdTllY2VcdTU4YThcdTlmNTJcdTUxMTJcdTUxMThcdTUxMTRcdTUxMTBcdTUxMTVcdTUxODBcdTUxYWFcdTUxZGRc'@; put 'dTUyOTFcdTUyOTNcdTUyZjNcdTU2NTlcdTU2NmJcdTU2NzlcdTU2NjlcdTU2NjRcdTU2NzhcdTU2NmFcdTU2NjhcdTU2NjVcdTU2NzFcdTU2NmZcdTU2NmNcdTU2NjJcdTU2NzZcdTU4YzFcdTU4YmVcdTU4YzdcdTU4YzVcdTU5NmVcdTViMWRcdTViMzRcdTViNzhcdTViZjBcdTVjMGVcdTVm'@; put 'NGFcdTYxYjJcdTYxOTFcdTYxYTlcdTYxOGFcdTYxY2RcdTYxYjZcdTYxYmVcdTYxY2FcdTYxYzhcdTYyMzBcdTY0YzVcdTY0YzFcdTY0Y2JcdTY0YmJcdTY0YmNcdTY0ZGFcdTY0YzRcdTY0YzdcdTY0YzJcdTY0Y2RcdTY0YmZcdTY0ZDJcdTY0ZDRcdTY0YmVcdTY1NzRcdTY2YzZcdTY2Yzlc'@; put 'dTY2YjlcdTY2YzRcdTY2YzdcdTY2YjhcdTZhM2RcdTZhMzhcdTZhM2FcdTZhNTlcdTZhNmJcdTZhNThcdTZhMzlcdTZhNDRcdTZhNjJcdTZhNjFcdTZhNGJcdTZhNDdcdTZhMzVcdTZhNWZcdTZhNDhcdTZiNTlcdTZiNzdcdTZjMDVcdTZmYzJcdTZmYjFcdTZmYTEiXSxbImJmNDAiLCJcdTZm'@; put 'YzNcdTZmYTRcdTZmYzFcdTZmYTdcdTZmYjNcdTZmYzBcdTZmYjlcdTZmYjZcdTZmYTZcdTZmYTBcdTZmYjRcdTcxYmVcdTcxYzlcdTcxZDBcdTcxZDJcdTcxYzhcdTcxZDVcdTcxYjlcdTcxY2VcdTcxZDlcdTcxZGNcdTcxYzNcdTcxYzRcdTczNjhcdTc0OWNcdTc0YTNcdTc0OThcdTc0OWZc'@; put 'dTc0OWVcdTc0ZTJcdTc1MGNcdTc1MGRcdTc2MzRcdTc2MzhcdTc2M2FcdTc2ZTdcdTc2ZTVcdTc3YTBcdTc3OWVcdTc3OWZcdTc3YTVcdTc4ZThcdTc4ZGFcdTc4ZWNcdTc4ZTdcdTc5YTZcdTdhNGRcdTdhNGVcdTdhNDZcdTdhNGNcdTdhNGJcdTdhYmFcdTdiZDlcdTdjMTFcdTdiYzlcdTdi'@; put 'ZTRcdTdiZGJcdTdiZTFcdTdiZTlcdTdiZTZcdTdjZDVcdTdjZDZcdTdlMGEiXSxbImJmYTEiLCJcdTdlMTFcdTdlMDhcdTdlMWJcdTdlMjNcdTdlMWVcdTdlMWRcdTdlMDlcdTdlMTBcdTdmNzlcdTdmYjJcdTdmZjBcdTdmZjFcdTdmZWVcdTgwMjhcdTgxYjNcdTgxYTlcdTgxYThcdTgxZmJc'@; put 'dTgyMDhcdTgyNThcdTgyNTlcdTg1NGFcdTg1NTlcdTg1NDhcdTg1NjhcdTg1NjlcdTg1NDNcdTg1NDlcdTg1NmRcdTg1NmFcdTg1NWVcdTg3ODNcdTg3OWZcdTg3OWVcdTg3YTJcdTg3OGRcdTg4NjFcdTg5MmFcdTg5MzJcdTg5MjVcdTg5MmJcdTg5MjFcdTg5YWFcdTg5YTZcdThhZTZcdThh'@; put 'ZmFcdThhZWJcdThhZjFcdThiMDBcdThhZGNcdThhZTdcdThhZWVcdThhZmVcdThiMDFcdThiMDJcdThhZjdcdThhZWRcdThhZjNcdThhZjZcdThhZmNcdThjNmJcdThjNmRcdThjOTNcdThjZjRcdThlNDRcdThlMzFcdThlMzRcdThlNDJcdThlMzlcdThlMzVcdThmM2JcdThmMmZcdThmMzhc'@; put 'dThmMzNcdThmYThcdThmYTZcdTkwNzVcdTkwNzRcdTkwNzhcdTkwNzJcdTkwN2NcdTkwN2FcdTkxMzRcdTkxOTJcdTkzMjBcdTkzMzZcdTkyZjhcdTkzMzNcdTkzMmZcdTkzMjJcdTkyZmNcdTkzMmJcdTkzMDRcdTkzMWEiXSxbImMwNDAiLCJcdTkzMTBcdTkzMjZcdTkzMjFcdTkzMTVcdTkz'@; put 'MmVcdTkzMTlcdTk1YmJcdTk2YTdcdTk2YThcdTk2YWFcdTk2ZDVcdTk3MGVcdTk3MTFcdTk3MTZcdTk3MGRcdTk3MTNcdTk3MGZcdTk3NWJcdTk3NWNcdTk3NjZcdTk3OThcdTk4MzBcdTk4MzhcdTk4M2JcdTk4MzdcdTk4MmRcdTk4MzlcdTk4MjRcdTk5MTBcdTk5MjhcdTk5MWVcdTk5MWJc'@; put 'dTk5MjFcdTk5MWFcdTk5ZWRcdTk5ZTJcdTk5ZjFcdTlhYjhcdTlhYmNcdTlhZmJcdTlhZWRcdTliMjhcdTliOTFcdTlkMTVcdTlkMjNcdTlkMjZcdTlkMjhcdTlkMTJcdTlkMWJcdTllZDhcdTllZDRcdTlmOGRcdTlmOWNcdTUxMmFcdTUxMWZcdTUxMjFcdTUxMzJcdTUyZjVcdTU2OGVcdTU2'@; put 'ODBcdTU2OTBcdTU2ODVcdTU2ODciXSxbImMwYTEiLCJcdTU2OGZcdTU4ZDVcdTU4ZDNcdTU4ZDFcdTU4Y2VcdTViMzBcdTViMmFcdTViMjRcdTViN2FcdTVjMzdcdTVjNjhcdTVkYmNcdTVkYmFcdTVkYmRcdTVkYjhcdTVlNmJcdTVmNGNcdTVmYmRcdTYxYzlcdTYxYzJcdTYxYzdcdTYxZTZc'@; put 'dTYxY2JcdTYyMzJcdTYyMzRcdTY0Y2VcdTY0Y2FcdTY0ZDhcdTY0ZTBcdTY0ZjBcdTY0ZTZcdTY0ZWNcdTY0ZjFcdTY0ZTJcdTY0ZWRcdTY1ODJcdTY1ODNcdTY2ZDlcdTY2ZDZcdTZhODBcdTZhOTRcdTZhODRcdTZhYTJcdTZhOWNcdTZhZGJcdTZhYTNcdTZhN2VcdTZhOTdcdTZhOTBcdTZh'@; put 'YTBcdTZiNWNcdTZiYWVcdTZiZGFcdTZjMDhcdTZmZDhcdTZmZjFcdTZmZGZcdTZmZTBcdTZmZGJcdTZmZTRcdTZmZWJcdTZmZWZcdTZmODBcdTZmZWNcdTZmZTFcdTZmZTlcdTZmZDVcdTZmZWVcdTZmZjBcdTcxZTdcdTcxZGZcdTcxZWVcdTcxZTZcdTcxZTVcdTcxZWRcdTcxZWNcdTcxZjRc'@; put 'dTcxZTBcdTcyMzVcdTcyNDZcdTczNzBcdTczNzJcdTc0YTlcdTc0YjBcdTc0YTZcdTc0YThcdTc2NDZcdTc2NDJcdTc2NGNcdTc2ZWFcdTc3YjNcdTc3YWFcdTc3YjBcdTc3YWMiXSxbImMxNDAiLCJcdTc3YTdcdTc3YWRcdTc3ZWZcdTc4ZjdcdTc4ZmFcdTc4ZjRcdTc4ZWZcdTc5MDFcdTc5'@; put 'YTdcdTc5YWFcdTdhNTdcdTdhYmZcdTdjMDdcdTdjMGRcdTdiZmVcdTdiZjdcdTdjMGNcdTdiZTBcdTdjZTBcdTdjZGNcdTdjZGVcdTdjZTJcdTdjZGZcdTdjZDlcdTdjZGRcdTdlMmVcdTdlM2VcdTdlNDZcdTdlMzdcdTdlMzJcdTdlNDNcdTdlMmJcdTdlM2RcdTdlMzFcdTdlNDVcdTdlNDFc'@; put 'dTdlMzRcdTdlMzlcdTdlNDhcdTdlMzVcdTdlM2ZcdTdlMmZcdTdmNDRcdTdmZjNcdTdmZmNcdTgwNzFcdTgwNzJcdTgwNzBcdTgwNmZcdTgwNzNcdTgxYzZcdTgxYzNcdTgxYmFcdTgxYzJcdTgxYzBcdTgxYmZcdTgxYmRcdTgxYzlcdTgxYmVcdTgxZThcdTgyMDlcdTgyNzFcdTg1YWEiXSxb'@; put 'ImMxYTEiLCJcdTg1ODRcdTg1N2VcdTg1OWNcdTg1OTFcdTg1OTRcdTg1YWZcdTg1OWJcdTg1ODdcdTg1YThcdTg1OGFcdTg2NjdcdTg3YzBcdTg3ZDFcdTg3YjNcdTg3ZDJcdTg3YzZcdTg3YWJcdTg3YmJcdTg3YmFcdTg3YzhcdTg3Y2JcdTg5M2JcdTg5MzZcdTg5NDRcdTg5MzhcdTg5M2Rc'@; put 'dTg5YWNcdThiMGVcdThiMTdcdThiMTlcdThiMWJcdThiMGFcdThiMjBcdThiMWRcdThiMDRcdThiMTBcdThjNDFcdThjM2ZcdThjNzNcdThjZmFcdThjZmRcdThjZmNcdThjZjhcdThjZmJcdThkYThcdThlNDlcdThlNGJcdThlNDhcdThlNGFcdThmNDRcdThmM2VcdThmNDJcdThmNDVcdThm'@; put 'M2ZcdTkwN2ZcdTkwN2RcdTkwODRcdTkwODFcdTkwODJcdTkwODBcdTkxMzlcdTkxYTNcdTkxOWVcdTkxOWNcdTkzNGRcdTkzODJcdTkzMjhcdTkzNzVcdTkzNGFcdTkzNjVcdTkzNGJcdTkzMThcdTkzN2VcdTkzNmNcdTkzNWJcdTkzNzBcdTkzNWFcdTkzNTRcdTk1Y2FcdTk1Y2JcdTk1Y2Nc'@; put 'dTk1YzhcdTk1YzZcdTk2YjFcdTk2YjhcdTk2ZDZcdTk3MWNcdTk3MWVcdTk3YTBcdTk3ZDNcdTk4NDZcdTk4YjZcdTk5MzVcdTlhMDEiXSxbImMyNDAiLCJcdTk5ZmZcdTliYWVcdTliYWJcdTliYWFcdTliYWRcdTlkM2JcdTlkM2ZcdTllOGJcdTllY2ZcdTllZGVcdTllZGNcdTllZGRcdTll'@; put 'ZGJcdTlmM2VcdTlmNGJcdTUzZTJcdTU2OTVcdTU2YWVcdTU4ZDlcdTU4ZDhcdTViMzhcdTVmNWRcdTYxZTNcdTYyMzNcdTY0ZjRcdTY0ZjJcdTY0ZmVcdTY1MDZcdTY0ZmFcdTY0ZmJcdTY0ZjdcdTY1YjdcdTY2ZGNcdTY3MjZcdTZhYjNcdTZhYWNcdTZhYzNcdTZhYmJcdTZhYjhcdTZhYzJc'@; put 'dTZhYWVcdTZhYWZcdTZiNWZcdTZiNzhcdTZiYWZcdTcwMDlcdTcwMGJcdTZmZmVcdTcwMDZcdTZmZmFcdTcwMTFcdTcwMGZcdTcxZmJcdTcxZmNcdTcxZmVcdTcxZjhcdTczNzdcdTczNzVcdTc0YTdcdTc0YmZcdTc1MTVcdTc2NTZcdTc2NTgiXSxbImMyYTEiLCJcdTc2NTJcdTc3YmRcdTc3'@; put 'YmZcdTc3YmJcdTc3YmNcdTc5MGVcdTc5YWVcdTdhNjFcdTdhNjJcdTdhNjBcdTdhYzRcdTdhYzVcdTdjMmJcdTdjMjdcdTdjMmFcdTdjMWVcdTdjMjNcdTdjMjFcdTdjZTdcdTdlNTRcdTdlNTVcdTdlNWVcdTdlNWFcdTdlNjFcdTdlNTJcdTdlNTlcdTdmNDhcdTdmZjlcdTdmZmJcdTgwNzdc'@; put 'dTgwNzZcdTgxY2RcdTgxY2ZcdTgyMGFcdTg1Y2ZcdTg1YTlcdTg1Y2RcdTg1ZDBcdTg1YzlcdTg1YjBcdTg1YmFcdTg1YjlcdTg1YTZcdTg3ZWZcdTg3ZWNcdTg3ZjJcdTg3ZTBcdTg5ODZcdTg5YjJcdTg5ZjRcdThiMjhcdThiMzlcdThiMmNcdThiMmJcdThjNTBcdThkMDVcdThlNTlcdThl'@; put 'NjNcdThlNjZcdThlNjRcdThlNWZcdThlNTVcdThlYzBcdThmNDlcdThmNGRcdTkwODdcdTkwODNcdTkwODhcdTkxYWJcdTkxYWNcdTkxZDBcdTkzOTRcdTkzOGFcdTkzOTZcdTkzYTJcdTkzYjNcdTkzYWVcdTkzYWNcdTkzYjBcdTkzOThcdTkzOWFcdTkzOTdcdTk1ZDRcdTk1ZDZcdTk1ZDBc'@; put 'dTk1ZDVcdTk2ZTJcdTk2ZGNcdTk2ZDlcdTk2ZGJcdTk2ZGVcdTk3MjRcdTk3YTNcdTk3YTYiXSxbImMzNDAiLCJcdTk3YWRcdTk3ZjlcdTk4NGRcdTk4NGZcdTk4NGNcdTk4NGVcdTk4NTNcdTk4YmFcdTk5M2VcdTk5M2ZcdTk5M2RcdTk5MmVcdTk5YTVcdTlhMGVcdTlhYzFcdTliMDNcdTli'@; put 'MDZcdTliNGZcdTliNGVcdTliNGRcdTliY2FcdTliYzlcdTliZmRcdTliYzhcdTliYzBcdTlkNTFcdTlkNWRcdTlkNjBcdTllZTBcdTlmMTVcdTlmMmNcdTUxMzNcdTU2YTVcdTU4ZGVcdTU4ZGZcdTU4ZTJcdTViZjVcdTlmOTBcdTVlZWNcdTYxZjJcdTYxZjdcdTYxZjZcdTYxZjVcdTY1MDBc'@; put 'dTY1MGZcdTY2ZTBcdTY2ZGRcdTZhZTVcdTZhZGRcdTZhZGFcdTZhZDNcdTcwMWJcdTcwMWZcdTcwMjhcdTcwMWFcdTcwMWRcdTcwMTVcdTcwMThcdTcyMDZcdTcyMGRcdTcyNThcdTcyYTJcdTczNzgiXSxbImMzYTEiLCJcdTczN2FcdTc0YmRcdTc0Y2FcdTc0ZTNcdTc1ODdcdTc1ODZcdTc2'@; put 'NWZcdTc2NjFcdTc3YzdcdTc5MTlcdTc5YjFcdTdhNmJcdTdhNjlcdTdjM2VcdTdjM2ZcdTdjMzhcdTdjM2RcdTdjMzdcdTdjNDBcdTdlNmJcdTdlNmRcdTdlNzlcdTdlNjlcdTdlNmFcdTdmODVcdTdlNzNcdTdmYjZcdTdmYjlcdTdmYjhcdTgxZDhcdTg1ZTlcdTg1ZGRcdTg1ZWFcdTg1ZDVc'@; put 'dTg1ZTRcdTg1ZTVcdTg1ZjdcdTg3ZmJcdTg4MDVcdTg4MGRcdTg3ZjlcdTg3ZmVcdTg5NjBcdTg5NWZcdTg5NTZcdTg5NWVcdThiNDFcdThiNWNcdThiNThcdThiNDlcdThiNWFcdThiNGVcdThiNGZcdThiNDZcdThiNTlcdThkMDhcdThkMGFcdThlN2NcdThlNzJcdThlODdcdThlNzZcdThl'@; put 'NmNcdThlN2FcdThlNzRcdThmNTRcdThmNGVcdThmYWRcdTkwOGFcdTkwOGJcdTkxYjFcdTkxYWVcdTkzZTFcdTkzZDFcdTkzZGZcdTkzYzNcdTkzYzhcdTkzZGNcdTkzZGRcdTkzZDZcdTkzZTJcdTkzY2RcdTkzZDhcdTkzZTRcdTkzZDdcdTkzZThcdTk1ZGNcdTk2YjRcdTk2ZTNcdTk3MmFc'@; put 'dTk3MjdcdTk3NjFcdTk3ZGNcdTk3ZmJcdTk4NWUiXSxbImM0NDAiLCJcdTk4NThcdTk4NWJcdTk4YmNcdTk5NDVcdTk5NDlcdTlhMTZcdTlhMTlcdTliMGRcdTliZThcdTliZTdcdTliZDZcdTliZGJcdTlkODlcdTlkNjFcdTlkNzJcdTlkNmFcdTlkNmNcdTllOTJcdTllOTdcdTllOTNcdTll'@; put 'YjRcdTUyZjhcdTU2YThcdTU2YjdcdTU2YjZcdTU2YjRcdTU2YmNcdTU4ZTRcdTViNDBcdTViNDNcdTViN2RcdTViZjZcdTVkYzlcdTYxZjhcdTYxZmFcdTY1MThcdTY1MTRcdTY1MTlcdTY2ZTZcdTY3MjdcdTZhZWNcdTcwM2VcdTcwMzBcdTcwMzJcdTcyMTBcdTczN2JcdTc0Y2ZcdTc2NjJc'@; put 'dTc2NjVcdTc5MjZcdTc5MmFcdTc5MmNcdTc5MmJcdTdhYzdcdTdhZjZcdTdjNGNcdTdjNDNcdTdjNGRcdTdjZWZcdTdjZjBcdThmYWVcdTdlN2RcdTdlN2MiXSxbImM0YTEiLCJcdTdlODJcdTdmNGNcdTgwMDBcdTgxZGFcdTgyNjZcdTg1ZmJcdTg1ZjlcdTg2MTFcdTg1ZmFcdTg2MDZcdTg2'@; put 'MGJcdTg2MDdcdTg2MGFcdTg4MTRcdTg4MTVcdTg5NjRcdTg5YmFcdTg5ZjhcdThiNzBcdThiNmNcdThiNjZcdThiNmZcdThiNWZcdThiNmJcdThkMGZcdThkMGRcdThlODlcdThlODFcdThlODVcdThlODJcdTkxYjRcdTkxY2JcdTk0MThcdTk0MDNcdTkzZmRcdTk1ZTFcdTk3MzBcdTk4YzRc'@; put 'dTk5NTJcdTk5NTFcdTk5YThcdTlhMmJcdTlhMzBcdTlhMzdcdTlhMzVcdTljMTNcdTljMGRcdTllNzlcdTllYjVcdTllZThcdTlmMmZcdTlmNWZcdTlmNjNcdTlmNjFcdTUxMzdcdTUxMzhcdTU2YzFcdTU2YzBcdTU2YzJcdTU5MTRcdTVjNmNcdTVkY2RcdTYxZmNcdTYxZmVcdTY1MWRcdTY1'@; put 'MWNcdTY1OTVcdTY2ZTlcdTZhZmJcdTZiMDRcdTZhZmFcdTZiYjJcdTcwNGNcdTcyMWJcdTcyYTdcdTc0ZDZcdTc0ZDRcdTc2NjlcdTc3ZDNcdTdjNTBcdTdlOGZcdTdlOGNcdTdmYmNcdTg2MTdcdTg2MmRcdTg2MWFcdTg4MjNcdTg4MjJcdTg4MjFcdTg4MWZcdTg5NmFcdTg5NmNcdTg5YmRc'@; put 'dThiNzQiXSxbImM1NDAiLCJcdThiNzdcdThiN2RcdThkMTNcdThlOGFcdThlOGRcdThlOGJcdThmNWZcdThmYWZcdTkxYmFcdTk0MmVcdTk0MzNcdTk0MzVcdTk0M2FcdTk0MzhcdTk0MzJcdTk0MmJcdTk1ZTJcdTk3MzhcdTk3MzlcdTk3MzJcdTk3ZmZcdTk4NjdcdTk4NjVcdTk5NTdcdTlh'@; put 'NDVcdTlhNDNcdTlhNDBcdTlhM2VcdTlhY2ZcdTliNTRcdTliNTFcdTljMmRcdTljMjVcdTlkYWZcdTlkYjRcdTlkYzJcdTlkYjhcdTllOWRcdTllZWZcdTlmMTlcdTlmNWNcdTlmNjZcdTlmNjdcdTUxM2NcdTUxM2JcdTU2YzhcdTU2Y2FcdTU2YzlcdTViN2ZcdTVkZDRcdTVkZDJcdTVmNGVc'@; put 'dTYxZmZcdTY1MjRcdTZiMGFcdTZiNjFcdTcwNTFcdTcwNThcdTczODBcdTc0ZTRcdTc1OGFcdTc2NmVcdTc2NmMiXSxbImM1YTEiLCJcdTc5YjNcdTdjNjBcdTdjNWZcdTgwN2VcdTgwN2RcdTgxZGZcdTg5NzJcdTg5NmZcdTg5ZmNcdThiODBcdThkMTZcdThkMTdcdThlOTFcdThlOTNcdThm'@; put 'NjFcdTkxNDhcdTk0NDRcdTk0NTFcdTk0NTJcdTk3M2RcdTk3M2VcdTk3YzNcdTk3YzFcdTk4NmJcdTk5NTVcdTlhNTVcdTlhNGRcdTlhZDJcdTliMWFcdTljNDlcdTljMzFcdTljM2VcdTljM2JcdTlkZDNcdTlkZDdcdTlmMzRcdTlmNmNcdTlmNmFcdTlmOTRcdTU2Y2NcdTVkZDZcdTYyMDBc'@; put 'dTY1MjNcdTY1MmJcdTY1MmFcdTY2ZWNcdTZiMTBcdTc0ZGFcdTdhY2FcdTdjNjRcdTdjNjNcdTdjNjVcdTdlOTNcdTdlOTZcdTdlOTRcdTgxZTJcdTg2MzhcdTg2M2ZcdTg4MzFcdThiOGFcdTkwOTBcdTkwOGZcdTk0NjNcdTk0NjBcdTk0NjRcdTk3NjhcdTk4NmZcdTk5NWNcdTlhNWFcdTlh'@; put 'NWJcdTlhNTdcdTlhZDNcdTlhZDRcdTlhZDFcdTljNTRcdTljNTdcdTljNTZcdTlkZTVcdTllOWZcdTllZjRcdTU2ZDFcdTU4ZTlcdTY1MmNcdTcwNWVcdTc2NzFcdTc2NzJcdTc3ZDdcdTdmNTBcdTdmODhcdTg4MzZcdTg4MzlcdTg4NjJcdThiOTNcdThiOTIiXSxbImM2NDAiLCJcdThiOTZc'@; put 'dTgyNzdcdThkMWJcdTkxYzBcdTk0NmFcdTk3NDJcdTk3NDhcdTk3NDRcdTk3YzZcdTk4NzBcdTlhNWZcdTliMjJcdTliNThcdTljNWZcdTlkZjlcdTlkZmFcdTllN2NcdTllN2RcdTlmMDdcdTlmNzdcdTlmNzJcdTVlZjNcdTZiMTZcdTcwNjNcdTdjNmNcdTdjNmVcdTg4M2JcdTg5YzBcdThl'@; put 'YTFcdTkxYzFcdTk0NzJcdTk0NzBcdTk4NzFcdTk5NWVcdTlhZDZcdTliMjNcdTllY2NcdTcwNjRcdTc3ZGFcdThiOWFcdTk0NzdcdTk3YzlcdTlhNjJcdTlhNjVcdTdlOWNcdThiOWNcdThlYWFcdTkxYzVcdTk0N2RcdTk0N2VcdTk0N2NcdTljNzdcdTljNzhcdTllZjdcdThjNTRcdTk0N2Zc'@; put 'dTllMWFcdTcyMjhcdTlhNmFcdTliMzFcdTllMWJcdTllMWVcdTdjNzIiXSxbImM5NDAiLCJcdTRlNDJcdTRlNWNcdTUxZjVcdTUzMWFcdTUzODJcdTRlMDdcdTRlMGNcdTRlNDdcdTRlOGRcdTU2ZDdcdWZhMGNcdTVjNmVcdTVmNzNcdTRlMGZcdTUxODdcdTRlMGVcdTRlMmVcdTRlOTNcdTRl'@; put 'YzJcdTRlYzlcdTRlYzhcdTUxOThcdTUyZmNcdTUzNmNcdTUzYjlcdTU3MjBcdTU5MDNcdTU5MmNcdTVjMTBcdTVkZmZcdTY1ZTFcdTZiYjNcdTZiY2NcdTZjMTRcdTcyM2ZcdTRlMzFcdTRlM2NcdTRlZThcdTRlZGNcdTRlZTlcdTRlZTFcdTRlZGRcdTRlZGFcdTUyMGNcdTUzMWNcdTUzNGNc'@; put 'dTU3MjJcdTU3MjNcdTU5MTdcdTU5MmZcdTViODFcdTViODRcdTVjMTJcdTVjM2JcdTVjNzRcdTVjNzNcdTVlMDRcdTVlODBcdTVlODJcdTVmYzlcdTYyMDlcdTYyNTBcdTZjMTUiXSxbImM5YTEiLCJcdTZjMzZcdTZjNDNcdTZjM2ZcdTZjM2JcdTcyYWVcdTcyYjBcdTczOGFcdTc5YjhcdTgw'@; put 'OGFcdTk2MWVcdTRmMGVcdTRmMThcdTRmMmNcdTRlZjVcdTRmMTRcdTRlZjFcdTRmMDBcdTRlZjdcdTRmMDhcdTRmMWRcdTRmMDJcdTRmMDVcdTRmMjJcdTRmMTNcdTRmMDRcdTRlZjRcdTRmMTJcdTUxYjFcdTUyMTNcdTUyMDlcdTUyMTBcdTUyYTZcdTUzMjJcdTUzMWZcdTUzNGRcdTUzOGFc'@; put 'dTU0MDdcdTU2ZTFcdTU2ZGZcdTU3MmVcdTU3MmFcdTU3MzRcdTU5M2NcdTU5ODBcdTU5N2NcdTU5ODVcdTU5N2JcdTU5N2VcdTU5NzdcdTU5N2ZcdTViNTZcdTVjMTVcdTVjMjVcdTVjN2NcdTVjN2FcdTVjN2JcdTVjN2VcdTVkZGZcdTVlNzVcdTVlODRcdTVmMDJcdTVmMWFcdTVmNzRcdTVm'@; put 'ZDVcdTVmZDRcdTVmY2ZcdTYyNWNcdTYyNWVcdTYyNjRcdTYyNjFcdTYyNjZcdTYyNjJcdTYyNTlcdTYyNjBcdTYyNWFcdTYyNjVcdTY1ZWZcdTY1ZWVcdTY3M2VcdTY3MzlcdTY3MzhcdTY3M2JcdTY3M2FcdTY3M2ZcdTY3M2NcdTY3MzNcdTZjMThcdTZjNDZcdTZjNTJcdTZjNWNcdTZjNGZc'@; put 'dTZjNGFcdTZjNTRcdTZjNGIiXSxbImNhNDAiLCJcdTZjNGNcdTcwNzFcdTcyNWVcdTcyYjRcdTcyYjVcdTczOGVcdTc1MmFcdTc2N2ZcdTdhNzVcdTdmNTFcdTgyNzhcdTgyN2NcdTgyODBcdTgyN2RcdTgyN2ZcdTg2NGRcdTg5N2VcdTkwOTlcdTkwOTdcdTkwOThcdTkwOWJcdTkwOTRcdTk2'@; put 'MjJcdTk2MjRcdTk2MjBcdTk2MjNcdTRmNTZcdTRmM2JcdTRmNjJcdTRmNDlcdTRmNTNcdTRmNjRcdTRmM2VcdTRmNjdcdTRmNTJcdTRmNWZcdTRmNDFcdTRmNThcdTRmMmRcdTRmMzNcdTRmM2ZcdTRmNjFcdTUxOGZcdTUxYjlcdTUyMWNcdTUyMWVcdTUyMjFcdTUyYWRcdTUyYWVcdTUzMDlc'@; put 'dTUzNjNcdTUzNzJcdTUzOGVcdTUzOGZcdTU0MzBcdTU0MzdcdTU0MmFcdTU0NTRcdTU0NDVcdTU0MTlcdTU0MWNcdTU0MjVcdTU0MTgiXSxbImNhYTEiLCJcdTU0M2RcdTU0NGZcdTU0NDFcdTU0MjhcdTU0MjRcdTU0NDdcdTU2ZWVcdTU2ZTdcdTU2ZTVcdTU3NDFcdTU3NDVcdTU3NGNcdTU3'@; put 'NDlcdTU3NGJcdTU3NTJcdTU5MDZcdTU5NDBcdTU5YTZcdTU5OThcdTU5YTBcdTU5OTdcdTU5OGVcdTU5YTJcdTU5OTBcdTU5OGZcdTU5YTdcdTU5YTFcdTViOGVcdTViOTJcdTVjMjhcdTVjMmFcdTVjOGRcdTVjOGZcdTVjODhcdTVjOGJcdTVjODlcdTVjOTJcdTVjOGFcdTVjODZcdTVjOTNc'@; put 'dTVjOTVcdTVkZTBcdTVlMGFcdTVlMGVcdTVlOGJcdTVlODlcdTVlOGNcdTVlODhcdTVlOGRcdTVmMDVcdTVmMWRcdTVmNzhcdTVmNzZcdTVmZDJcdTVmZDFcdTVmZDBcdTVmZWRcdTVmZThcdTVmZWVcdTVmZjNcdTVmZTFcdTVmZTRcdTVmZTNcdTVmZmFcdTVmZWZcdTVmZjdcdTVmZmJcdTYw'@; put 'MDBcdTVmZjRcdTYyM2FcdTYyODNcdTYyOGNcdTYyOGVcdTYyOGZcdTYyOTRcdTYyODdcdTYyNzFcdTYyN2JcdTYyN2FcdTYyNzBcdTYyODFcdTYyODhcdTYyNzdcdTYyN2RcdTYyNzJcdTYyNzRcdTY1MzdcdTY1ZjBcdTY1ZjRcdTY1ZjNcdTY1ZjJcdTY1ZjVcdTY3NDVcdTY3NDciXSxbImNi'@; put 'NDAiLCJcdTY3NTlcdTY3NTVcdTY3NGNcdTY3NDhcdTY3NWRcdTY3NGRcdTY3NWFcdTY3NGJcdTZiZDBcdTZjMTlcdTZjMWFcdTZjNzhcdTZjNjdcdTZjNmJcdTZjODRcdTZjOGJcdTZjOGZcdTZjNzFcdTZjNmZcdTZjNjlcdTZjOWFcdTZjNmRcdTZjODdcdTZjOTVcdTZjOWNcdTZjNjZcdTZj'@; put 'NzNcdTZjNjVcdTZjN2JcdTZjOGVcdTcwNzRcdTcwN2FcdTcyNjNcdTcyYmZcdTcyYmRcdTcyYzNcdTcyYzZcdTcyYzFcdTcyYmFcdTcyYzVcdTczOTVcdTczOTdcdTczOTNcdTczOTRcdTczOTJcdTc1M2FcdTc1MzlcdTc1OTRcdTc1OTVcdTc2ODFcdTc5M2RcdTgwMzRcdTgwOTVcdTgwOTlc'@; put 'dTgwOTBcdTgwOTJcdTgwOWNcdTgyOTBcdTgyOGZcdTgyODVcdTgyOGVcdTgyOTFcdTgyOTMiXSxbImNiYTEiLCJcdTgyOGFcdTgyODNcdTgyODRcdThjNzhcdThmYzlcdThmYmZcdTkwOWZcdTkwYTFcdTkwYTVcdTkwOWVcdTkwYTdcdTkwYTBcdTk2MzBcdTk2MjhcdTk2MmZcdTk2MmRcdTRl'@; put 'MzNcdTRmOThcdTRmN2NcdTRmODVcdTRmN2RcdTRmODBcdTRmODdcdTRmNzZcdTRmNzRcdTRmODlcdTRmODRcdTRmNzdcdTRmNGNcdTRmOTdcdTRmNmFcdTRmOWFcdTRmNzlcdTRmODFcdTRmNzhcdTRmOTBcdTRmOWNcdTRmOTRcdTRmOWVcdTRmOTJcdTRmODJcdTRmOTVcdTRmNmJcdTRmNmVc'@; put 'dTUxOWVcdTUxYmNcdTUxYmVcdTUyMzVcdTUyMzJcdTUyMzNcdTUyNDZcdTUyMzFcdTUyYmNcdTUzMGFcdTUzMGJcdTUzM2NcdTUzOTJcdTUzOTRcdTU0ODdcdTU0N2ZcdTU0ODFcdTU0OTFcdTU0ODJcdTU0ODhcdTU0NmJcdTU0N2FcdTU0N2VcdTU0NjVcdTU0NmNcdTU0NzRcdTU0NjZcdTU0'@; put 'OGRcdTU0NmZcdTU0NjFcdTU0NjBcdTU0OThcdTU0NjNcdTU0NjdcdTU0NjRcdTU2ZjdcdTU2ZjlcdTU3NmZcdTU3NzJcdTU3NmRcdTU3NmJcdTU3NzFcdTU3NzBcdTU3NzZcdTU3ODBcdTU3NzVcdTU3N2JcdTU3NzNcdTU3NzRcdTU3NjIiXSxbImNjNDAiLCJcdTU3NjhcdTU3N2RcdTU5MGNc'@; put 'dTU5NDVcdTU5YjVcdTU5YmFcdTU5Y2ZcdTU5Y2VcdTU5YjJcdTU5Y2NcdTU5YzFcdTU5YjZcdTU5YmNcdTU5YzNcdTU5ZDZcdTU5YjFcdTU5YmRcdTU5YzBcdTU5YzhcdTU5YjRcdTU5YzdcdTViNjJcdTViNjVcdTViOTNcdTViOTVcdTVjNDRcdTVjNDdcdTVjYWVcdTVjYTRcdTVjYTBcdTVj'@; put 'YjVcdTVjYWZcdTVjYThcdTVjYWNcdTVjOWZcdTVjYTNcdTVjYWRcdTVjYTJcdTVjYWFcdTVjYTdcdTVjOWRcdTVjYTVcdTVjYjZcdTVjYjBcdTVjYTZcdTVlMTdcdTVlMTRcdTVlMTlcdTVmMjhcdTVmMjJcdTVmMjNcdTVmMjRcdTVmNTRcdTVmODJcdTVmN2VcdTVmN2RcdTVmZGVcdTVmZTVc'@; put 'dTYwMmRcdTYwMjZcdTYwMTlcdTYwMzJcdTYwMGIiXSxbImNjYTEiLCJcdTYwMzRcdTYwMGFcdTYwMTdcdTYwMzNcdTYwMWFcdTYwMWVcdTYwMmNcdTYwMjJcdTYwMGRcdTYwMTBcdTYwMmVcdTYwMTNcdTYwMTFcdTYwMGNcdTYwMDlcdTYwMWNcdTYyMTRcdTYyM2RcdTYyYWRcdTYyYjRcdTYy'@; put 'ZDFcdTYyYmVcdTYyYWFcdTYyYjZcdTYyY2FcdTYyYWVcdTYyYjNcdTYyYWZcdTYyYmJcdTYyYTlcdTYyYjBcdTYyYjhcdTY1M2RcdTY1YThcdTY1YmJcdTY2MDlcdTY1ZmNcdTY2MDRcdTY2MTJcdTY2MDhcdTY1ZmJcdTY2MDNcdTY2MGJcdTY2MGRcdTY2MDVcdTY1ZmRcdTY2MTFcdTY2MTBc'@; put 'dTY2ZjZcdTY3MGFcdTY3ODVcdTY3NmNcdTY3OGVcdTY3OTJcdTY3NzZcdTY3N2JcdTY3OThcdTY3ODZcdTY3ODRcdTY3NzRcdTY3OGRcdTY3OGNcdTY3N2FcdTY3OWZcdTY3OTFcdTY3OTlcdTY3ODNcdTY3N2RcdTY3ODFcdTY3NzhcdTY3NzlcdTY3OTRcdTZiMjVcdTZiODBcdTZiN2VcdTZi'@; put 'ZGVcdTZjMWRcdTZjOTNcdTZjZWNcdTZjZWJcdTZjZWVcdTZjZDlcdTZjYjZcdTZjZDRcdTZjYWRcdTZjZTdcdTZjYjdcdTZjZDBcdTZjYzJcdTZjYmFcdTZjYzNcdTZjYzZcdTZjZWRcdTZjZjIiXSxbImNkNDAiLCJcdTZjZDJcdTZjZGRcdTZjYjRcdTZjOGFcdTZjOWRcdTZjODBcdTZjZGVc'@; put 'dTZjYzBcdTZkMzBcdTZjY2RcdTZjYzdcdTZjYjBcdTZjZjlcdTZjY2ZcdTZjZTlcdTZjZDFcdTcwOTRcdTcwOThcdTcwODVcdTcwOTNcdTcwODZcdTcwODRcdTcwOTFcdTcwOTZcdTcwODJcdTcwOWFcdTcwODNcdTcyNmFcdTcyZDZcdTcyY2JcdTcyZDhcdTcyYzlcdTcyZGNcdTcyZDJcdTcy'@; put 'ZDRcdTcyZGFcdTcyY2NcdTcyZDFcdTczYTRcdTczYTFcdTczYWRcdTczYTZcdTczYTJcdTczYTBcdTczYWNcdTczOWRcdTc0ZGRcdTc0ZThcdTc1M2ZcdTc1NDBcdTc1M2VcdTc1OGNcdTc1OThcdTc2YWZcdTc2ZjNcdTc2ZjFcdTc2ZjBcdTc2ZjVcdTc3ZjhcdTc3ZmNcdTc3ZjlcdTc3ZmJc'@; put 'dTc3ZmEiXSxbImNkYTEiLCJcdTc3ZjdcdTc5NDJcdTc5M2ZcdTc5YzVcdTdhNzhcdTdhN2JcdTdhZmJcdTdjNzVcdTdjZmRcdTgwMzVcdTgwOGZcdTgwYWVcdTgwYTNcdTgwYjhcdTgwYjVcdTgwYWRcdTgyMjBcdTgyYTBcdTgyYzBcdTgyYWJcdTgyOWFcdTgyOThcdTgyOWJcdTgyYjVcdTgy'@; put 'YTdcdTgyYWVcdTgyYmNcdTgyOWVcdTgyYmFcdTgyYjRcdTgyYThcdTgyYTFcdTgyYTlcdTgyYzJcdTgyYTRcdTgyYzNcdTgyYjZcdTgyYTJcdTg2NzBcdTg2NmZcdTg2NmRcdTg2NmVcdThjNTZcdThmZDJcdThmY2JcdThmZDNcdThmY2RcdThmZDZcdThmZDVcdThmZDdcdTkwYjJcdTkwYjRc'@; put 'dTkwYWZcdTkwYjNcdTkwYjBcdTk2MzlcdTk2M2RcdTk2M2NcdTk2M2FcdTk2NDNcdTRmY2RcdTRmYzVcdTRmZDNcdTRmYjJcdTRmYzlcdTRmY2JcdTRmYzFcdTRmZDRcdTRmZGNcdTRmZDlcdTRmYmJcdTRmYjNcdTRmZGJcdTRmYzdcdTRmZDZcdTRmYmFcdTRmYzBcdTRmYjlcdTRmZWNcdTUy'@; put 'NDRcdTUyNDlcdTUyYzBcdTUyYzJcdTUzM2RcdTUzN2NcdTUzOTdcdTUzOTZcdTUzOTlcdTUzOThcdTU0YmFcdTU0YTFcdTU0YWRcdTU0YTVcdTU0Y2YiXSxbImNlNDAiLCJcdTU0YzNcdTgzMGRcdTU0YjdcdTU0YWVcdTU0ZDZcdTU0YjZcdTU0YzVcdTU0YzZcdTU0YTBcdTU0NzBcdTU0YmNc'@; put 'dTU0YTJcdTU0YmVcdTU0NzJcdTU0ZGVcdTU0YjBcdTU3YjVcdTU3OWVcdTU3OWZcdTU3YTRcdTU3OGNcdTU3OTdcdTU3OWRcdTU3OWJcdTU3OTRcdTU3OThcdTU3OGZcdTU3OTlcdTU3YTVcdTU3OWFcdTU3OTVcdTU4ZjRcdTU5MGRcdTU5NTNcdTU5ZTFcdTU5ZGVcdTU5ZWVcdTVhMDBcdTU5'@; put 'ZjFcdTU5ZGRcdTU5ZmFcdTU5ZmRcdTU5ZmNcdTU5ZjZcdTU5ZTRcdTU5ZjJcdTU5ZjdcdTU5ZGJcdTU5ZTlcdTU5ZjNcdTU5ZjVcdTU5ZTBcdTU5ZmVcdTU5ZjRcdTU5ZWRcdTViYThcdTVjNGNcdTVjZDBcdTVjZDhcdTVjY2NcdTVjZDdcdTVjY2JcdTVjZGIiXSxbImNlYTEiLCJcdTVjZGVc'@; put 'dTVjZGFcdTVjYzlcdTVjYzdcdTVjY2FcdTVjZDZcdTVjZDNcdTVjZDRcdTVjY2ZcdTVjYzhcdTVjYzZcdTVjY2VcdTVjZGZcdTVjZjhcdTVkZjlcdTVlMjFcdTVlMjJcdTVlMjNcdTVlMjBcdTVlMjRcdTVlYjBcdTVlYTRcdTVlYTJcdTVlOWJcdTVlYTNcdTVlYTVcdTVmMDdcdTVmMmVcdTVm'@; put 'NTZcdTVmODZcdTYwMzdcdTYwMzlcdTYwNTRcdTYwNzJcdTYwNWVcdTYwNDVcdTYwNTNcdTYwNDdcdTYwNDlcdTYwNWJcdTYwNGNcdTYwNDBcdTYwNDJcdTYwNWZcdTYwMjRcdTYwNDRcdTYwNThcdTYwNjZcdTYwNmVcdTYyNDJcdTYyNDNcdTYyY2ZcdTYzMGRcdTYzMGJcdTYyZjVcdTYzMGVc'@; put 'dTYzMDNcdTYyZWJcdTYyZjlcdTYzMGZcdTYzMGNcdTYyZjhcdTYyZjZcdTYzMDBcdTYzMTNcdTYzMTRcdTYyZmFcdTYzMTVcdTYyZmJcdTYyZjBcdTY1NDFcdTY1NDNcdTY1YWFcdTY1YmZcdTY2MzZcdTY2MjFcdTY2MzJcdTY2MzVcdTY2MWNcdTY2MjZcdTY2MjJcdTY2MzNcdTY2MmJcdTY2'@; put 'M2FcdTY2MWRcdTY2MzRcdTY2MzlcdTY2MmVcdTY3MGZcdTY3MTBcdTY3YzFcdTY3ZjJcdTY3YzhcdTY3YmEiXSxbImNmNDAiLCJcdTY3ZGNcdTY3YmJcdTY3ZjhcdTY3ZDhcdTY3YzBcdTY3YjdcdTY3YzVcdTY3ZWJcdTY3ZTRcdTY3ZGZcdTY3YjVcdTY3Y2RcdTY3YjNcdTY3ZjdcdTY3ZjZc'@; put 'dTY3ZWVcdTY3ZTNcdTY3YzJcdTY3YjlcdTY3Y2VcdTY3ZTdcdTY3ZjBcdTY3YjJcdTY3ZmNcdTY3YzZcdTY3ZWRcdTY3Y2NcdTY3YWVcdTY3ZTZcdTY3ZGJcdTY3ZmFcdTY3YzlcdTY3Y2FcdTY3YzNcdTY3ZWFcdTY3Y2JcdTZiMjhcdTZiODJcdTZiODRcdTZiYjZcdTZiZDZcdTZiZDhcdTZi'@; put 'ZTBcdTZjMjBcdTZjMjFcdTZkMjhcdTZkMzRcdTZkMmRcdTZkMWZcdTZkM2NcdTZkM2ZcdTZkMTJcdTZkMGFcdTZjZGFcdTZkMzNcdTZkMDRcdTZkMTlcdTZkM2FcdTZkMWFcdTZkMTFcdTZkMDBcdTZkMWRcdTZkNDIiXSxbImNmYTEiLCJcdTZkMDFcdTZkMThcdTZkMzdcdTZkMDNcdTZkMGZc'@; put 'dTZkNDBcdTZkMDdcdTZkMjBcdTZkMmNcdTZkMDhcdTZkMjJcdTZkMDlcdTZkMTBcdTcwYjdcdTcwOWZcdTcwYmVcdTcwYjFcdTcwYjBcdTcwYTFcdTcwYjRcdTcwYjVcdTcwYTlcdTcyNDFcdTcyNDlcdTcyNGFcdTcyNmNcdTcyNzBcdTcyNzNcdTcyNmVcdTcyY2FcdTcyZTRcdTcyZThcdTcy'@; put 'ZWJcdTcyZGZcdTcyZWFcdTcyZTZcdTcyZTNcdTczODVcdTczY2NcdTczYzJcdTczYzhcdTczYzVcdTczYjlcdTczYjZcdTczYjVcdTczYjRcdTczZWJcdTczYmZcdTczYzdcdTczYmVcdTczYzNcdTczYzZcdTczYjhcdTczY2JcdTc0ZWNcdTc0ZWVcdTc1MmVcdTc1NDdcdTc1NDhcdTc1YTdc'@; put 'dTc1YWFcdTc2NzlcdTc2YzRcdTc3MDhcdTc3MDNcdTc3MDRcdTc3MDVcdTc3MGFcdTc2ZjdcdTc2ZmJcdTc2ZmFcdTc3ZTdcdTc3ZThcdTc4MDZcdTc4MTFcdTc4MTJcdTc4MDVcdTc4MTBcdTc4MGZcdTc4MGVcdTc4MDlcdTc4MDNcdTc4MTNcdTc5NGFcdTc5NGNcdTc5NGJcdTc5NDVcdTc5'@; put 'NDRcdTc5ZDVcdTc5Y2RcdTc5Y2ZcdTc5ZDZcdTc5Y2VcdTdhODAiXSxbImQwNDAiLCJcdTdhN2VcdTdhZDFcdTdiMDBcdTdiMDFcdTdjN2FcdTdjNzhcdTdjNzlcdTdjN2ZcdTdjODBcdTdjODFcdTdkMDNcdTdkMDhcdTdkMDFcdTdmNThcdTdmOTFcdTdmOGRcdTdmYmVcdTgwMDdcdTgwMGVc'@; put 'dTgwMGZcdTgwMTRcdTgwMzdcdTgwZDhcdTgwYzdcdTgwZTBcdTgwZDFcdTgwYzhcdTgwYzJcdTgwZDBcdTgwYzVcdTgwZTNcdTgwZDlcdTgwZGNcdTgwY2FcdTgwZDVcdTgwYzlcdTgwY2ZcdTgwZDdcdTgwZTZcdTgwY2RcdTgxZmZcdTgyMjFcdTgyOTRcdTgyZDlcdTgyZmVcdTgyZjlcdTgz'@; put 'MDdcdTgyZThcdTgzMDBcdTgyZDVcdTgzM2FcdTgyZWJcdTgyZDZcdTgyZjRcdTgyZWNcdTgyZTFcdTgyZjJcdTgyZjVcdTgzMGNcdTgyZmJcdTgyZjZcdTgyZjBcdTgyZWEiXSxbImQwYTEiLCJcdTgyZTRcdTgyZTBcdTgyZmFcdTgyZjNcdTgyZWRcdTg2NzdcdTg2NzRcdTg2N2NcdTg2NzNc'@; put 'dTg4NDFcdTg4NGVcdTg4NjdcdTg4NmFcdTg4NjlcdTg5ZDNcdThhMDRcdThhMDdcdThkNzJcdThmZTNcdThmZTFcdThmZWVcdThmZTBcdTkwZjFcdTkwYmRcdTkwYmZcdTkwZDVcdTkwYzVcdTkwYmVcdTkwYzdcdTkwY2JcdTkwYzhcdTkxZDRcdTkxZDNcdTk2NTRcdTk2NGZcdTk2NTFcdTk2'@; put 'NTNcdTk2NGFcdTk2NGVcdTUwMWVcdTUwMDVcdTUwMDdcdTUwMTNcdTUwMjJcdTUwMzBcdTUwMWJcdTRmZjVcdTRmZjRcdTUwMzNcdTUwMzdcdTUwMmNcdTRmZjZcdTRmZjdcdTUwMTdcdTUwMWNcdTUwMjBcdTUwMjdcdTUwMzVcdTUwMmZcdTUwMzFcdTUwMGVcdTUxNWFcdTUxOTRcdTUxOTNc'@; put 'dTUxY2FcdTUxYzRcdTUxYzVcdTUxYzhcdTUxY2VcdTUyNjFcdTUyNWFcdTUyNTJcdTUyNWVcdTUyNWZcdTUyNTVcdTUyNjJcdTUyY2RcdTUzMGVcdTUzOWVcdTU1MjZcdTU0ZTJcdTU1MTdcdTU1MTJcdTU0ZTdcdTU0ZjNcdTU0ZTRcdTU1MWFcdTU0ZmZcdTU1MDRcdTU1MDhcdTU0ZWJcdTU1'@; put 'MTFcdTU1MDVcdTU0ZjEiXSxbImQxNDAiLCJcdTU1MGFcdTU0ZmJcdTU0ZjdcdTU0ZjhcdTU0ZTBcdTU1MGVcdTU1MDNcdTU1MGJcdTU3MDFcdTU3MDJcdTU3Y2NcdTU4MzJcdTU3ZDVcdTU3ZDJcdTU3YmFcdTU3YzZcdTU3YmRcdTU3YmNcdTU3YjhcdTU3YjZcdTU3YmZcdTU3YzdcdTU3ZDBc'@; put 'dTU3YjlcdTU3YzFcdTU5MGVcdTU5NGFcdTVhMTlcdTVhMTZcdTVhMmRcdTVhMmVcdTVhMTVcdTVhMGZcdTVhMTdcdTVhMGFcdTVhMWVcdTVhMzNcdTViNmNcdTViYTdcdTViYWRcdTViYWNcdTVjMDNcdTVjNTZcdTVjNTRcdTVjZWNcdTVjZmZcdTVjZWVcdTVjZjFcdTVjZjdcdTVkMDBcdTVj'@; put 'ZjlcdTVlMjlcdTVlMjhcdTVlYThcdTVlYWVcdTVlYWFcdTVlYWNcdTVmMzNcdTVmMzBcdTVmNjdcdTYwNWRcdTYwNWFcdTYwNjciXSxbImQxYTEiLCJcdTYwNDFcdTYwYTJcdTYwODhcdTYwODBcdTYwOTJcdTYwODFcdTYwOWRcdTYwODNcdTYwOTVcdTYwOWJcdTYwOTdcdTYwODdcdTYwOWNc'@; put 'dTYwOGVcdTYyMTlcdTYyNDZcdTYyZjJcdTYzMTBcdTYzNTZcdTYzMmNcdTYzNDRcdTYzNDVcdTYzMzZcdTYzNDNcdTYzZTRcdTYzMzlcdTYzNGJcdTYzNGFcdTYzM2NcdTYzMjlcdTYzNDFcdTYzMzRcdTYzNThcdTYzNTRcdTYzNTlcdTYzMmRcdTYzNDdcdTYzMzNcdTYzNWFcdTYzNTFcdTYz'@; put 'MzhcdTYzNTdcdTYzNDBcdTYzNDhcdTY1NGFcdTY1NDZcdTY1YzZcdTY1YzNcdTY1YzRcdTY1YzJcdTY2NGFcdTY2NWZcdTY2NDdcdTY2NTFcdTY3MTJcdTY3MTNcdTY4MWZcdTY4MWFcdTY4NDlcdTY4MzJcdTY4MzNcdTY4M2JcdTY4NGJcdTY4NGZcdTY4MTZcdTY4MzFcdTY4MWNcdTY4MzVc'@; put 'dTY4MmJcdTY4MmRcdTY4MmZcdTY4NGVcdTY4NDRcdTY4MzRcdTY4MWRcdTY4MTJcdTY4MTRcdTY4MjZcdTY4MjhcdTY4MmVcdTY4NGRcdTY4M2FcdTY4MjVcdTY4MjBcdTZiMmNcdTZiMmZcdTZiMmRcdTZiMzFcdTZiMzRcdTZiNmRcdTgwODJcdTZiODhcdTZiZTZcdTZiZTQiXSxbImQyNDAi'@; put 'LCJcdTZiZThcdTZiZTNcdTZiZTJcdTZiZTdcdTZjMjVcdTZkN2FcdTZkNjNcdTZkNjRcdTZkNzZcdTZkMGRcdTZkNjFcdTZkOTJcdTZkNThcdTZkNjJcdTZkNmRcdTZkNmZcdTZkOTFcdTZkOGRcdTZkZWZcdTZkN2ZcdTZkODZcdTZkNWVcdTZkNjdcdTZkNjBcdTZkOTdcdTZkNzBcdTZkN2Nc'@; put 'dTZkNWZcdTZkODJcdTZkOThcdTZkMmZcdTZkNjhcdTZkOGJcdTZkN2VcdTZkODBcdTZkODRcdTZkMTZcdTZkODNcdTZkN2JcdTZkN2RcdTZkNzVcdTZkOTBcdTcwZGNcdTcwZDNcdTcwZDFcdTcwZGRcdTcwY2JcdTdmMzlcdTcwZTJcdTcwZDdcdTcwZDJcdTcwZGVcdTcwZTBcdTcwZDRcdTcw'@; put 'Y2RcdTcwYzVcdTcwYzZcdTcwYzdcdTcwZGFcdTcwY2VcdTcwZTFcdTcyNDJcdTcyNzgiXSxbImQyYTEiLCJcdTcyNzdcdTcyNzZcdTczMDBcdTcyZmFcdTcyZjRcdTcyZmVcdTcyZjZcdTcyZjNcdTcyZmJcdTczMDFcdTczZDNcdTczZDlcdTczZTVcdTczZDZcdTczYmNcdTczZTdcdTczZTNc'@; put 'dTczZTlcdTczZGNcdTczZDJcdTczZGJcdTczZDRcdTczZGRcdTczZGFcdTczZDdcdTczZDhcdTczZThcdTc0ZGVcdTc0ZGZcdTc0ZjRcdTc0ZjVcdTc1MjFcdTc1NWJcdTc1NWZcdTc1YjBcdTc1YzFcdTc1YmJcdTc1YzRcdTc1YzBcdTc1YmZcdTc1YjZcdTc1YmFcdTc2OGFcdTc2YzlcdTc3'@; put 'MWRcdTc3MWJcdTc3MTBcdTc3MTNcdTc3MTJcdTc3MjNcdTc3MTFcdTc3MTVcdTc3MTlcdTc3MWFcdTc3MjJcdTc3MjdcdTc4MjNcdTc4MmNcdTc4MjJcdTc4MzVcdTc4MmZcdTc4MjhcdTc4MmVcdTc4MmJcdTc4MjFcdTc4MjlcdTc4MzNcdTc4MmFcdTc4MzFcdTc5NTRcdTc5NWJcdTc5NGZc'@; put 'dTc5NWNcdTc5NTNcdTc5NTJcdTc5NTFcdTc5ZWJcdTc5ZWNcdTc5ZTBcdTc5ZWVcdTc5ZWRcdTc5ZWFcdTc5ZGNcdTc5ZGVcdTc5ZGRcdTdhODZcdTdhODlcdTdhODVcdTdhOGJcdTdhOGNcdTdhOGFcdTdhODdcdTdhZDhcdTdiMTAiXSxbImQzNDAiLCJcdTdiMDRcdTdiMTNcdTdiMDVcdTdi'@; put 'MGZcdTdiMDhcdTdiMGFcdTdiMGVcdTdiMDlcdTdiMTJcdTdjODRcdTdjOTFcdTdjOGFcdTdjOGNcdTdjODhcdTdjOGRcdTdjODVcdTdkMWVcdTdkMWRcdTdkMTFcdTdkMGVcdTdkMThcdTdkMTZcdTdkMTNcdTdkMWZcdTdkMTJcdTdkMGZcdTdkMGNcdTdmNWNcdTdmNjFcdTdmNWVcdTdmNjBc'@; put 'dTdmNWRcdTdmNWJcdTdmOTZcdTdmOTJcdTdmYzNcdTdmYzJcdTdmYzBcdTgwMTZcdTgwM2VcdTgwMzlcdTgwZmFcdTgwZjJcdTgwZjlcdTgwZjVcdTgxMDFcdTgwZmJcdTgxMDBcdTgyMDFcdTgyMmZcdTgyMjVcdTgzMzNcdTgzMmRcdTgzNDRcdTgzMTlcdTgzNTFcdTgzMjVcdTgzNTZcdTgz'@; put 'M2ZcdTgzNDFcdTgzMjZcdTgzMWNcdTgzMjIiXSxbImQzYTEiLCJcdTgzNDJcdTgzNGVcdTgzMWJcdTgzMmFcdTgzMDhcdTgzM2NcdTgzNGRcdTgzMTZcdTgzMjRcdTgzMjBcdTgzMzdcdTgzMmZcdTgzMjlcdTgzNDdcdTgzNDVcdTgzNGNcdTgzNTNcdTgzMWVcdTgzMmNcdTgzNGJcdTgzMjdc'@; put 'dTgzNDhcdTg2NTNcdTg2NTJcdTg2YTJcdTg2YThcdTg2OTZcdTg2OGRcdTg2OTFcdTg2OWVcdTg2ODdcdTg2OTdcdTg2ODZcdTg2OGJcdTg2OWFcdTg2ODVcdTg2YTVcdTg2OTlcdTg2YTFcdTg2YTdcdTg2OTVcdTg2OThcdTg2OGVcdTg2OWRcdTg2OTBcdTg2OTRcdTg4NDNcdTg4NDRcdTg4'@; put 'NmRcdTg4NzVcdTg4NzZcdTg4NzJcdTg4ODBcdTg4NzFcdTg4N2ZcdTg4NmZcdTg4ODNcdTg4N2VcdTg4NzRcdTg4N2NcdThhMTJcdThjNDdcdThjNTdcdThjN2JcdThjYTRcdThjYTNcdThkNzZcdThkNzhcdThkYjVcdThkYjdcdThkYjZcdThlZDFcdThlZDNcdThmZmVcdThmZjVcdTkwMDJc'@; put 'dThmZmZcdThmZmJcdTkwMDRcdThmZmNcdThmZjZcdTkwZDZcdTkwZTBcdTkwZDlcdTkwZGFcdTkwZTNcdTkwZGZcdTkwZTVcdTkwZDhcdTkwZGJcdTkwZDdcdTkwZGNcdTkwZTRcdTkxNTAiXSxbImQ0NDAiLCJcdTkxNGVcdTkxNGZcdTkxZDVcdTkxZTJcdTkxZGFcdTk2NWNcdTk2NWZcdTk2'@; put 'YmNcdTk4ZTNcdTlhZGZcdTliMmZcdTRlN2ZcdTUwNzBcdTUwNmFcdTUwNjFcdTUwNWVcdTUwNjBcdTUwNTNcdTUwNGJcdTUwNWRcdTUwNzJcdTUwNDhcdTUwNGRcdTUwNDFcdTUwNWJcdTUwNGFcdTUwNjJcdTUwMTVcdTUwNDVcdTUwNWZcdTUwNjlcdTUwNmJcdTUwNjNcdTUwNjRcdTUwNDZc'@; put 'dTUwNDBcdTUwNmVcdTUwNzNcdTUwNTdcdTUwNTFcdTUxZDBcdTUyNmJcdTUyNmRcdTUyNmNcdTUyNmVcdTUyZDZcdTUyZDNcdTUzMmRcdTUzOWNcdTU1NzVcdTU1NzZcdTU1M2NcdTU1NGRcdTU1NTBcdTU1MzRcdTU1MmFcdTU1NTFcdTU1NjJcdTU1MzZcdTU1MzVcdTU1MzBcdTU1NTJcdTU1'@; put 'NDUiXSxbImQ0YTEiLCJcdTU1MGNcdTU1MzJcdTU1NjVcdTU1NGVcdTU1MzlcdTU1NDhcdTU1MmRcdTU1M2JcdTU1NDBcdTU1NGJcdTU3MGFcdTU3MDdcdTU3ZmJcdTU4MTRcdTU3ZTJcdTU3ZjZcdTU3ZGNcdTU3ZjRcdTU4MDBcdTU3ZWRcdTU3ZmRcdTU4MDhcdTU3ZjhcdTU4MGJcdTU3ZjNc'@; put 'dTU3Y2ZcdTU4MDdcdTU3ZWVcdTU3ZTNcdTU3ZjJcdTU3ZTVcdTU3ZWNcdTU3ZTFcdTU4MGVcdTU3ZmNcdTU4MTBcdTU3ZTdcdTU4MDFcdTU4MGNcdTU3ZjFcdTU3ZTlcdTU3ZjBcdTU4MGRcdTU4MDRcdTU5NWNcdTVhNjBcdTVhNThcdTVhNTVcdTVhNjdcdTVhNWVcdTVhMzhcdTVhMzVcdTVh'@; put 'NmRcdTVhNTBcdTVhNWZcdTVhNjVcdTVhNmNcdTVhNTNcdTVhNjRcdTVhNTdcdTVhNDNcdTVhNWRcdTVhNTJcdTVhNDRcdTVhNWJcdTVhNDhcdTVhOGVcdTVhM2VcdTVhNGRcdTVhMzlcdTVhNGNcdTVhNzBcdTVhNjlcdTVhNDdcdTVhNTFcdTVhNTZcdTVhNDJcdTVhNWNcdTViNzJcdTViNmVc'@; put 'dTViYzFcdTViYzBcdTVjNTlcdTVkMWVcdTVkMGJcdTVkMWRcdTVkMWFcdTVkMjBcdTVkMGNcdTVkMjhcdTVkMGRcdTVkMjZcdTVkMjVcdTVkMGYiXSxbImQ1NDAiLCJcdTVkMzBcdTVkMTJcdTVkMjNcdTVkMWZcdTVkMmVcdTVlM2VcdTVlMzRcdTVlYjFcdTVlYjRcdTVlYjlcdTVlYjJcdTVl'@; put 'YjNcdTVmMzZcdTVmMzhcdTVmOWJcdTVmOTZcdTVmOWZcdTYwOGFcdTYwOTBcdTYwODZcdTYwYmVcdTYwYjBcdTYwYmFcdTYwZDNcdTYwZDRcdTYwY2ZcdTYwZTRcdTYwZDlcdTYwZGRcdTYwYzhcdTYwYjFcdTYwZGJcdTYwYjdcdTYwY2FcdTYwYmZcdTYwYzNcdTYwY2RcdTYwYzBcdTYzMzJc'@; put 'dTYzNjVcdTYzOGFcdTYzODJcdTYzN2RcdTYzYmRcdTYzOWVcdTYzYWRcdTYzOWRcdTYzOTdcdTYzYWJcdTYzOGVcdTYzNmZcdTYzODdcdTYzOTBcdTYzNmVcdTYzYWZcdTYzNzVcdTYzOWNcdTYzNmRcdTYzYWVcdTYzN2NcdTYzYTRcdTYzM2JcdTYzOWYiXSxbImQ1YTEiLCJcdTYzNzhcdTYz'@; put 'ODVcdTYzODFcdTYzOTFcdTYzOGRcdTYzNzBcdTY1NTNcdTY1Y2RcdTY2NjVcdTY2NjFcdTY2NWJcdTY2NTlcdTY2NWNcdTY2NjJcdTY3MThcdTY4NzlcdTY4ODdcdTY4OTBcdTY4OWNcdTY4NmRcdTY4NmVcdTY4YWVcdTY4YWJcdTY5NTZcdTY4NmZcdTY4YTNcdTY4YWNcdTY4YTlcdTY4NzVc'@; put 'dTY4NzRcdTY4YjJcdTY4OGZcdTY4NzdcdTY4OTJcdTY4N2NcdTY4NmJcdTY4NzJcdTY4YWFcdTY4ODBcdTY4NzFcdTY4N2VcdTY4OWJcdTY4OTZcdTY4OGJcdTY4YTBcdTY4ODlcdTY4YTRcdTY4NzhcdTY4N2JcdTY4OTFcdTY4OGNcdTY4OGFcdTY4N2RcdTZiMzZcdTZiMzNcdTZiMzdcdTZi'@; put 'MzhcdTZiOTFcdTZiOGZcdTZiOGRcdTZiOGVcdTZiOGNcdTZjMmFcdTZkYzBcdTZkYWJcdTZkYjRcdTZkYjNcdTZlNzRcdTZkYWNcdTZkZTlcdTZkZTJcdTZkYjdcdTZkZjZcdTZkZDRcdTZlMDBcdTZkYzhcdTZkZTBcdTZkZGZcdTZkZDZcdTZkYmVcdTZkZTVcdTZkZGNcdTZkZGRcdTZkZGJc'@; put 'dTZkZjRcdTZkY2FcdTZkYmRcdTZkZWRcdTZkZjBcdTZkYmFcdTZkZDVcdTZkYzJcdTZkY2ZcdTZkYzkiXSxbImQ2NDAiLCJcdTZkZDBcdTZkZjJcdTZkZDNcdTZkZmRcdTZkZDdcdTZkY2RcdTZkZTNcdTZkYmJcdTcwZmFcdTcxMGRcdTcwZjdcdTcxMTdcdTcwZjRcdTcxMGNcdTcwZjBcdTcx'@; put 'MDRcdTcwZjNcdTcxMTBcdTcwZmNcdTcwZmZcdTcxMDZcdTcxMTNcdTcxMDBcdTcwZjhcdTcwZjZcdTcxMGJcdTcxMDJcdTcxMGVcdTcyN2VcdTcyN2JcdTcyN2NcdTcyN2ZcdTczMWRcdTczMTdcdTczMDdcdTczMTFcdTczMThcdTczMGFcdTczMDhcdTcyZmZcdTczMGZcdTczMWVcdTczODhc'@; put 'dTczZjZcdTczZjhcdTczZjVcdTc0MDRcdTc0MDFcdTczZmRcdTc0MDdcdTc0MDBcdTczZmFcdTczZmNcdTczZmZcdTc0MGNcdTc0MGJcdTczZjRcdTc0MDhcdTc1NjRcdTc1NjNcdTc1Y2VcdTc1ZDJcdTc1Y2YiXSxbImQ2YTEiLCJcdTc1Y2JcdTc1Y2NcdTc1ZDFcdTc1ZDBcdTc2OGZcdTc2'@; put 'ODlcdTc2ZDNcdTc3MzlcdTc3MmZcdTc3MmRcdTc3MzFcdTc3MzJcdTc3MzRcdTc3MzNcdTc3M2RcdTc3MjVcdTc3M2JcdTc3MzVcdTc4NDhcdTc4NTJcdTc4NDlcdTc4NGRcdTc4NGFcdTc4NGNcdTc4MjZcdTc4NDVcdTc4NTBcdTc5NjRcdTc5NjdcdTc5NjlcdTc5NmFcdTc5NjNcdTc5NmJc'@; put 'dTc5NjFcdTc5YmJcdTc5ZmFcdTc5ZjhcdTc5ZjZcdTc5ZjdcdTdhOGZcdTdhOTRcdTdhOTBcdTdiMzVcdTdiNDdcdTdiMzRcdTdiMjVcdTdiMzBcdTdiMjJcdTdiMjRcdTdiMzNcdTdiMThcdTdiMmFcdTdiMWRcdTdiMzFcdTdiMmJcdTdiMmRcdTdiMmZcdTdiMzJcdTdiMzhcdTdiMWFcdTdi'@; put 'MjNcdTdjOTRcdTdjOThcdTdjOTZcdTdjYTNcdTdkMzVcdTdkM2RcdTdkMzhcdTdkMzZcdTdkM2FcdTdkNDVcdTdkMmNcdTdkMjlcdTdkNDFcdTdkNDdcdTdkM2VcdTdkM2ZcdTdkNGFcdTdkM2JcdTdkMjhcdTdmNjNcdTdmOTVcdTdmOWNcdTdmOWRcdTdmOWJcdTdmY2FcdTdmY2JcdTdmY2Rc'@; put 'dTdmZDBcdTdmZDFcdTdmYzdcdTdmY2ZcdTdmYzlcdTgwMWYiXSxbImQ3NDAiLCJcdTgwMWVcdTgwMWJcdTgwNDdcdTgwNDNcdTgwNDhcdTgxMThcdTgxMjVcdTgxMTlcdTgxMWJcdTgxMmRcdTgxMWZcdTgxMmNcdTgxMWVcdTgxMjFcdTgxMTVcdTgxMjdcdTgxMWRcdTgxMjJcdTgyMTFcdTgy'@; put 'MzhcdTgyMzNcdTgyM2FcdTgyMzRcdTgyMzJcdTgyNzRcdTgzOTBcdTgzYTNcdTgzYThcdTgzOGRcdTgzN2FcdTgzNzNcdTgzYTRcdTgzNzRcdTgzOGZcdTgzODFcdTgzOTVcdTgzOTlcdTgzNzVcdTgzOTRcdTgzYTlcdTgzN2RcdTgzODNcdTgzOGNcdTgzOWRcdTgzOWJcdTgzYWFcdTgzOGJc'@; put 'dTgzN2VcdTgzYTVcdTgzYWZcdTgzODhcdTgzOTdcdTgzYjBcdTgzN2ZcdTgzYTZcdTgzODdcdTgzYWVcdTgzNzZcdTgzOWFcdTg2NTlcdTg2NTZcdTg2YmZcdTg2YjciXSxbImQ3YTEiLCJcdTg2YzJcdTg2YzFcdTg2YzVcdTg2YmFcdTg2YjBcdTg2YzhcdTg2YjlcdTg2YjNcdTg2YjhcdTg2'@; put 'Y2NcdTg2YjRcdTg2YmJcdTg2YmNcdTg2YzNcdTg2YmRcdTg2YmVcdTg4NTJcdTg4ODlcdTg4OTVcdTg4YThcdTg4YTJcdTg4YWFcdTg4OWFcdTg4OTFcdTg4YTFcdTg4OWZcdTg4OThcdTg4YTdcdTg4OTlcdTg4OWJcdTg4OTdcdTg4YTRcdTg4YWNcdTg4OGNcdTg4OTNcdTg4OGVcdTg5ODJc'@; put 'dTg5ZDZcdTg5ZDlcdTg5ZDVcdThhMzBcdThhMjdcdThhMmNcdThhMWVcdThjMzlcdThjM2JcdThjNWNcdThjNWRcdThjN2RcdThjYTVcdThkN2RcdThkN2JcdThkNzlcdThkYmNcdThkYzJcdThkYjlcdThkYmZcdThkYzFcdThlZDhcdThlZGVcdThlZGRcdThlZGNcdThlZDdcdThlZTBcdThl'@; put 'ZTFcdTkwMjRcdTkwMGJcdTkwMTFcdTkwMWNcdTkwMGNcdTkwMjFcdTkwZWZcdTkwZWFcdTkwZjBcdTkwZjRcdTkwZjJcdTkwZjNcdTkwZDRcdTkwZWJcdTkwZWNcdTkwZTlcdTkxNTZcdTkxNThcdTkxNWFcdTkxNTNcdTkxNTVcdTkxZWNcdTkxZjRcdTkxZjFcdTkxZjNcdTkxZjhcdTkxZTRc'@; put 'dTkxZjlcdTkxZWEiXSxbImQ4NDAiLCJcdTkxZWJcdTkxZjdcdTkxZThcdTkxZWVcdTk1N2FcdTk1ODZcdTk1ODhcdTk2N2NcdTk2NmRcdTk2NmJcdTk2NzFcdTk2NmZcdTk2YmZcdTk3NmFcdTk4MDRcdTk4ZTVcdTk5OTdcdTUwOWJcdTUwOTVcdTUwOTRcdTUwOWVcdTUwOGJcdTUwYTNcdTUw'@; put 'ODNcdTUwOGNcdTUwOGVcdTUwOWRcdTUwNjhcdTUwOWNcdTUwOTJcdTUwODJcdTUwODdcdTUxNWZcdTUxZDRcdTUzMTJcdTUzMTFcdTUzYTRcdTUzYTdcdTU1OTFcdTU1YThcdTU1YTVcdTU1YWRcdTU1NzdcdTU2NDVcdTU1YTJcdTU1OTNcdTU1ODhcdTU1OGZcdTU1YjVcdTU1ODFcdTU1YTNc'@; put 'dTU1OTJcdTU1YTRcdTU1N2RcdTU1OGNcdTU1YTZcdTU1N2ZcdTU1OTVcdTU1YTFcdTU1OGVcdTU3MGNcdTU4MjlcdTU4MzciXSxbImQ4YTEiLCJcdTU4MTlcdTU4MWVcdTU4MjdcdTU4MjNcdTU4MjhcdTU3ZjVcdTU4NDhcdTU4MjVcdTU4MWNcdTU4MWJcdTU4MzNcdTU4M2ZcdTU4MzZcdTU4'@; put 'MmVcdTU4MzlcdTU4MzhcdTU4MmRcdTU4MmNcdTU4M2JcdTU5NjFcdTVhYWZcdTVhOTRcdTVhOWZcdTVhN2FcdTVhYTJcdTVhOWVcdTVhNzhcdTVhYTZcdTVhN2NcdTVhYTVcdTVhYWNcdTVhOTVcdTVhYWVcdTVhMzdcdTVhODRcdTVhOGFcdTVhOTdcdTVhODNcdTVhOGJcdTVhYTlcdTVhN2Jc'@; put 'dTVhN2RcdTVhOGNcdTVhOWNcdTVhOGZcdTVhOTNcdTVhOWRcdTViZWFcdTViY2RcdTViY2JcdTViZDRcdTViZDFcdTViY2FcdTViY2VcdTVjMGNcdTVjMzBcdTVkMzdcdTVkNDNcdTVkNmJcdTVkNDFcdTVkNGJcdTVkM2ZcdTVkMzVcdTVkNTFcdTVkNGVcdTVkNTVcdTVkMzNcdTVkM2FcdTVk'@; put 'NTJcdTVkM2RcdTVkMzFcdTVkNTlcdTVkNDJcdTVkMzlcdTVkNDlcdTVkMzhcdTVkM2NcdTVkMzJcdTVkMzZcdTVkNDBcdTVkNDVcdTVlNDRcdTVlNDFcdTVmNThcdTVmYTZcdTVmYTVcdTVmYWJcdTYwYzlcdTYwYjlcdTYwY2NcdTYwZTJcdTYwY2VcdTYwYzRcdTYxMTQiXSxbImQ5NDAiLCJc'@; put 'dTYwZjJcdTYxMGFcdTYxMTZcdTYxMDVcdTYwZjVcdTYxMTNcdTYwZjhcdTYwZmNcdTYwZmVcdTYwYzFcdTYxMDNcdTYxMThcdTYxMWRcdTYxMTBcdTYwZmZcdTYxMDRcdTYxMGJcdTYyNGFcdTYzOTRcdTYzYjFcdTYzYjBcdTYzY2VcdTYzZTVcdTYzZThcdTYzZWZcdTYzYzNcdTY0OWRcdTYz'@; put 'ZjNcdTYzY2FcdTYzZTBcdTYzZjZcdTYzZDVcdTYzZjJcdTYzZjVcdTY0NjFcdTYzZGZcdTYzYmVcdTYzZGRcdTYzZGNcdTYzYzRcdTYzZDhcdTYzZDNcdTYzYzJcdTYzYzdcdTYzY2NcdTYzY2JcdTYzYzhcdTYzZjBcdTYzZDdcdTYzZDlcdTY1MzJcdTY1NjdcdTY1NmFcdTY1NjRcdTY1NWNc'@; put 'dTY1NjhcdTY1NjVcdTY1OGNcdTY1OWRcdTY1OWVcdTY1YWVcdTY1ZDBcdTY1ZDIiXSxbImQ5YTEiLCJcdTY2N2NcdTY2NmNcdTY2N2JcdTY2ODBcdTY2NzFcdTY2NzlcdTY2NmFcdTY2NzJcdTY3MDFcdTY5MGNcdTY4ZDNcdTY5MDRcdTY4ZGNcdTY5MmFcdTY4ZWNcdTY4ZWFcdTY4ZjFcdTY5'@; put 'MGZcdTY4ZDZcdTY4ZjdcdTY4ZWJcdTY4ZTRcdTY4ZjZcdTY5MTNcdTY5MTBcdTY4ZjNcdTY4ZTFcdTY5MDdcdTY4Y2NcdTY5MDhcdTY5NzBcdTY4YjRcdTY5MTFcdTY4ZWZcdTY4YzZcdTY5MTRcdTY4ZjhcdTY4ZDBcdTY4ZmRcdTY4ZmNcdTY4ZThcdTY5MGJcdTY5MGFcdTY5MTdcdTY4Y2Vc'@; put 'dTY4YzhcdTY4ZGRcdTY4ZGVcdTY4ZTZcdTY4ZjRcdTY4ZDFcdTY5MDZcdTY4ZDRcdTY4ZTlcdTY5MTVcdTY5MjVcdTY4YzdcdTZiMzlcdTZiM2JcdTZiM2ZcdTZiM2NcdTZiOTRcdTZiOTdcdTZiOTlcdTZiOTVcdTZiYmRcdTZiZjBcdTZiZjJcdTZiZjNcdTZjMzBcdTZkZmNcdTZlNDZcdTZl'@; put 'NDdcdTZlMWZcdTZlNDlcdTZlODhcdTZlM2NcdTZlM2RcdTZlNDVcdTZlNjJcdTZlMmJcdTZlM2ZcdTZlNDFcdTZlNWRcdTZlNzNcdTZlMWNcdTZlMzNcdTZlNGJcdTZlNDBcdTZlNTFcdTZlM2JcdTZlMDNcdTZlMmVcdTZlNWUiXSxbImRhNDAiLCJcdTZlNjhcdTZlNWNcdTZlNjFcdTZlMzFc'@; put 'dTZlMjhcdTZlNjBcdTZlNzFcdTZlNmJcdTZlMzlcdTZlMjJcdTZlMzBcdTZlNTNcdTZlNjVcdTZlMjdcdTZlNzhcdTZlNjRcdTZlNzdcdTZlNTVcdTZlNzlcdTZlNTJcdTZlNjZcdTZlMzVcdTZlMzZcdTZlNWFcdTcxMjBcdTcxMWVcdTcxMmZcdTcwZmJcdTcxMmVcdTcxMzFcdTcxMjNcdTcx'@; put 'MjVcdTcxMjJcdTcxMzJcdTcxMWZcdTcxMjhcdTcxM2FcdTcxMWJcdTcyNGJcdTcyNWFcdTcyODhcdTcyODlcdTcyODZcdTcyODVcdTcyOGJcdTczMTJcdTczMGJcdTczMzBcdTczMjJcdTczMzFcdTczMzNcdTczMjdcdTczMzJcdTczMmRcdTczMjZcdTczMjNcdTczMzVcdTczMGNcdTc0MmVc'@; put 'dTc0MmNcdTc0MzBcdTc0MmJcdTc0MTYiXSxbImRhYTEiLCJcdTc0MWFcdTc0MjFcdTc0MmRcdTc0MzFcdTc0MjRcdTc0MjNcdTc0MWRcdTc0MjlcdTc0MjBcdTc0MzJcdTc0ZmJcdTc1MmZcdTc1NmZcdTc1NmNcdTc1ZTdcdTc1ZGFcdTc1ZTFcdTc1ZTZcdTc1ZGRcdTc1ZGZcdTc1ZTRcdTc1'@; put 'ZDdcdTc2OTVcdTc2OTJcdTc2ZGFcdTc3NDZcdTc3NDdcdTc3NDRcdTc3NGRcdTc3NDVcdTc3NGFcdTc3NGVcdTc3NGJcdTc3NGNcdTc3ZGVcdTc3ZWNcdTc4NjBcdTc4NjRcdTc4NjVcdTc4NWNcdTc4NmRcdTc4NzFcdTc4NmFcdTc4NmVcdTc4NzBcdTc4NjlcdTc4NjhcdTc4NWVcdTc4NjJc'@; put 'dTc5NzRcdTc5NzNcdTc5NzJcdTc5NzBcdTdhMDJcdTdhMGFcdTdhMDNcdTdhMGNcdTdhMDRcdTdhOTlcdTdhZTZcdTdhZTRcdTdiNGFcdTdiM2JcdTdiNDRcdTdiNDhcdTdiNGNcdTdiNGVcdTdiNDBcdTdiNThcdTdiNDVcdTdjYTJcdTdjOWVcdTdjYThcdTdjYTFcdTdkNThcdTdkNmZcdTdk'@; put 'NjNcdTdkNTNcdTdkNTZcdTdkNjdcdTdkNmFcdTdkNGZcdTdkNmRcdTdkNWNcdTdkNmJcdTdkNTJcdTdkNTRcdTdkNjlcdTdkNTFcdTdkNWZcdTdkNGVcdTdmM2VcdTdmM2ZcdTdmNjUiXSxbImRiNDAiLCJcdTdmNjZcdTdmYTJcdTdmYTBcdTdmYTFcdTdmZDdcdTgwNTFcdTgwNGZcdTgwNTBc'@; put 'dTgwZmVcdTgwZDRcdTgxNDNcdTgxNGFcdTgxNTJcdTgxNGZcdTgxNDdcdTgxM2RcdTgxNGRcdTgxM2FcdTgxZTZcdTgxZWVcdTgxZjdcdTgxZjhcdTgxZjlcdTgyMDRcdTgyM2NcdTgyM2RcdTgyM2ZcdTgyNzVcdTgzM2JcdTgzY2ZcdTgzZjlcdTg0MjNcdTgzYzBcdTgzZThcdTg0MTJcdTgz'@; put 'ZTdcdTgzZTRcdTgzZmNcdTgzZjZcdTg0MTBcdTgzYzZcdTgzYzhcdTgzZWJcdTgzZTNcdTgzYmZcdTg0MDFcdTgzZGRcdTgzZTVcdTgzZDhcdTgzZmZcdTgzZTFcdTgzY2JcdTgzY2VcdTgzZDZcdTgzZjVcdTgzYzlcdTg0MDlcdTg0MGZcdTgzZGVcdTg0MTFcdTg0MDZcdTgzYzJcdTgzZjMi'@; put 'XSxbImRiYTEiLCJcdTgzZDVcdTgzZmFcdTgzYzdcdTgzZDFcdTgzZWFcdTg0MTNcdTgzYzNcdTgzZWNcdTgzZWVcdTgzYzRcdTgzZmJcdTgzZDdcdTgzZTJcdTg0MWJcdTgzZGJcdTgzZmVcdTg2ZDhcdTg2ZTJcdTg2ZTZcdTg2ZDNcdTg2ZTNcdTg2ZGFcdTg2ZWFcdTg2ZGRcdTg2ZWJcdTg2'@; put 'ZGNcdTg2ZWNcdTg2ZTlcdTg2ZDdcdTg2ZThcdTg2ZDFcdTg4NDhcdTg4NTZcdTg4NTVcdTg4YmFcdTg4ZDdcdTg4YjlcdTg4YjhcdTg4YzBcdTg4YmVcdTg4YjZcdTg4YmNcdTg4YjdcdTg4YmRcdTg4YjJcdTg5MDFcdTg4YzlcdTg5OTVcdTg5OThcdTg5OTdcdTg5ZGRcdTg5ZGFcdTg5ZGJc'@; put 'dThhNGVcdThhNGRcdThhMzlcdThhNTlcdThhNDBcdThhNTdcdThhNThcdThhNDRcdThhNDVcdThhNTJcdThhNDhcdThhNTFcdThhNGFcdThhNGNcdThhNGZcdThjNWZcdThjODFcdThjODBcdThjYmFcdThjYmVcdThjYjBcdThjYjlcdThjYjVcdThkODRcdThkODBcdThkODlcdThkZDhcdThk'@; put 'ZDNcdThkY2RcdThkYzdcdThkZDZcdThkZGNcdThkY2ZcdThkZDVcdThkZDlcdThkYzhcdThkZDdcdThkYzVcdThlZWZcdThlZjdcdThlZmEiXSxbImRjNDAiLCJcdThlZjlcdThlZTZcdThlZWVcdThlZTVcdThlZjVcdThlZTdcdThlZThcdThlZjZcdThlZWJcdThlZjFcdThlZWNcdThlZjRc'@; put 'dThlZTlcdTkwMmRcdTkwMzRcdTkwMmZcdTkxMDZcdTkxMmNcdTkxMDRcdTkwZmZcdTkwZmNcdTkxMDhcdTkwZjlcdTkwZmJcdTkxMDFcdTkxMDBcdTkxMDdcdTkxMDVcdTkxMDNcdTkxNjFcdTkxNjRcdTkxNWZcdTkxNjJcdTkxNjBcdTkyMDFcdTkyMGFcdTkyMjVcdTkyMDNcdTkyMWFcdTky'@; put 'MjZcdTkyMGZcdTkyMGNcdTkyMDBcdTkyMTJcdTkxZmZcdTkxZmRcdTkyMDZcdTkyMDRcdTkyMjdcdTkyMDJcdTkyMWNcdTkyMjRcdTkyMTlcdTkyMTdcdTkyMDVcdTkyMTZcdTk1N2JcdTk1OGRcdTk1OGNcdTk1OTBcdTk2ODdcdTk2N2VcdTk2ODgiXSxbImRjYTEiLCJcdTk2ODlcdTk2ODNc'@; put 'dTk2ODBcdTk2YzJcdTk2YzhcdTk2YzNcdTk2ZjFcdTk2ZjBcdTk3NmNcdTk3NzBcdTk3NmVcdTk4MDdcdTk4YTlcdTk4ZWJcdTljZTZcdTllZjlcdTRlODNcdTRlODRcdTRlYjZcdTUwYmRcdTUwYmZcdTUwYzZcdTUwYWVcdTUwYzRcdTUwY2FcdTUwYjRcdTUwYzhcdTUwYzJcdTUwYjBcdTUw'@; put 'YzFcdTUwYmFcdTUwYjFcdTUwY2JcdTUwYzlcdTUwYjZcdTUwYjhcdTUxZDdcdTUyN2FcdTUyNzhcdTUyN2JcdTUyN2NcdTU1YzNcdTU1ZGJcdTU1Y2NcdTU1ZDBcdTU1Y2JcdTU1Y2FcdTU1ZGRcdTU1YzBcdTU1ZDRcdTU1YzRcdTU1ZTlcdTU1YmZcdTU1ZDJcdTU1OGRcdTU1Y2ZcdTU1ZDVc'@; put 'dTU1ZTJcdTU1ZDZcdTU1YzhcdTU1ZjJcdTU1Y2RcdTU1ZDlcdTU1YzJcdTU3MTRcdTU4NTNcdTU4NjhcdTU4NjRcdTU4NGZcdTU4NGRcdTU4NDlcdTU4NmZcdTU4NTVcdTU4NGVcdTU4NWRcdTU4NTlcdTU4NjVcdTU4NWJcdTU4M2RcdTU4NjNcdTU4NzFcdTU4ZmNcdTVhYzdcdTVhYzRcdTVh'@; put 'Y2JcdTVhYmFcdTVhYjhcdTVhYjFcdTVhYjVcdTVhYjBcdTVhYmZcdTVhYzhcdTVhYmJcdTVhYzYiXSxbImRkNDAiLCJcdTVhYjdcdTVhYzBcdTVhY2FcdTVhYjRcdTVhYjZcdTVhY2RcdTVhYjlcdTVhOTBcdTViZDZcdTViZDhcdTViZDlcdTVjMWZcdTVjMzNcdTVkNzFcdTVkNjNcdTVkNGFc'@; put 'dTVkNjVcdTVkNzJcdTVkNmNcdTVkNWVcdTVkNjhcdTVkNjdcdTVkNjJcdTVkZjBcdTVlNGZcdTVlNGVcdTVlNGFcdTVlNGRcdTVlNGJcdTVlYzVcdTVlY2NcdTVlYzZcdTVlY2JcdTVlYzdcdTVmNDBcdTVmYWZcdTVmYWRcdTYwZjdcdTYxNDlcdTYxNGFcdTYxMmJcdTYxNDVcdTYxMzZcdTYx'@; put 'MzJcdTYxMmVcdTYxNDZcdTYxMmZcdTYxNGZcdTYxMjlcdTYxNDBcdTYyMjBcdTkxNjhcdTYyMjNcdTYyMjVcdTYyMjRcdTYzYzVcdTYzZjFcdTYzZWJcdTY0MTBcdTY0MTJcdTY0MDlcdTY0MjBcdTY0MjQiXSxbImRkYTEiLCJcdTY0MzNcdTY0NDNcdTY0MWZcdTY0MTVcdTY0MThcdTY0Mzlc'@; put 'dTY0MzdcdTY0MjJcdTY0MjNcdTY0MGNcdTY0MjZcdTY0MzBcdTY0MjhcdTY0NDFcdTY0MzVcdTY0MmZcdTY0MGFcdTY0MWFcdTY0NDBcdTY0MjVcdTY0MjdcdTY0MGJcdTYzZTdcdTY0MWJcdTY0MmVcdTY0MjFcdTY0MGVcdTY1NmZcdTY1OTJcdTY1ZDNcdTY2ODZcdTY2OGNcdTY2OTVcdTY2'@; put 'OTBcdTY2OGJcdTY2OGFcdTY2OTlcdTY2OTRcdTY2NzhcdTY3MjBcdTY5NjZcdTY5NWZcdTY5MzhcdTY5NGVcdTY5NjJcdTY5NzFcdTY5M2ZcdTY5NDVcdTY5NmFcdTY5MzlcdTY5NDJcdTY5NTdcdTY5NTlcdTY5N2FcdTY5NDhcdTY5NDlcdTY5MzVcdTY5NmNcdTY5MzNcdTY5M2RcdTY5NjVc'@; put 'dTY4ZjBcdTY5NzhcdTY5MzRcdTY5NjlcdTY5NDBcdTY5NmZcdTY5NDRcdTY5NzZcdTY5NThcdTY5NDFcdTY5NzRcdTY5NGNcdTY5M2JcdTY5NGJcdTY5MzdcdTY5NWNcdTY5NGZcdTY5NTFcdTY5MzJcdTY5NTJcdTY5MmZcdTY5N2JcdTY5M2NcdTZiNDZcdTZiNDVcdTZiNDNcdTZiNDJcdTZi'@; put 'NDhcdTZiNDFcdTZiOWJcdWZhMGRcdTZiZmJcdTZiZmMiXSxbImRlNDAiLCJcdTZiZjlcdTZiZjdcdTZiZjhcdTZlOWJcdTZlZDZcdTZlYzhcdTZlOGZcdTZlYzBcdTZlOWZcdTZlOTNcdTZlOTRcdTZlYTBcdTZlYjFcdTZlYjlcdTZlYzZcdTZlZDJcdTZlYmRcdTZlYzFcdTZlOWVcdTZlYzlc'@; put 'dTZlYjdcdTZlYjBcdTZlY2RcdTZlYTZcdTZlY2ZcdTZlYjJcdTZlYmVcdTZlYzNcdTZlZGNcdTZlZDhcdTZlOTlcdTZlOTJcdTZlOGVcdTZlOGRcdTZlYTRcdTZlYTFcdTZlYmZcdTZlYjNcdTZlZDBcdTZlY2FcdTZlOTdcdTZlYWVcdTZlYTNcdTcxNDdcdTcxNTRcdTcxNTJcdTcxNjNcdTcx'@; put 'NjBcdTcxNDFcdTcxNWRcdTcxNjJcdTcxNzJcdTcxNzhcdTcxNmFcdTcxNjFcdTcxNDJcdTcxNThcdTcxNDNcdTcxNGJcdTcxNzBcdTcxNWZcdTcxNTBcdTcxNTMiXSxbImRlYTEiLCJcdTcxNDRcdTcxNGRcdTcxNWFcdTcyNGZcdTcyOGRcdTcyOGNcdTcyOTFcdTcyOTBcdTcyOGVcdTczM2Nc'@; put 'dTczNDJcdTczM2JcdTczM2FcdTczNDBcdTczNGFcdTczNDlcdTc0NDRcdTc0NGFcdTc0NGJcdTc0NTJcdTc0NTFcdTc0NTdcdTc0NDBcdTc0NGZcdTc0NTBcdTc0NGVcdTc0NDJcdTc0NDZcdTc0NGRcdTc0NTRcdTc0ZTFcdTc0ZmZcdTc0ZmVcdTc0ZmRcdTc1MWRcdTc1NzlcdTc1NzdcdTY5'@; put 'ODNcdTc1ZWZcdTc2MGZcdTc2MDNcdTc1ZjdcdTc1ZmVcdTc1ZmNcdTc1ZjlcdTc1ZjhcdTc2MTBcdTc1ZmJcdTc1ZjZcdTc1ZWRcdTc1ZjVcdTc1ZmRcdTc2OTlcdTc2YjVcdTc2ZGRcdTc3NTVcdTc3NWZcdTc3NjBcdTc3NTJcdTc3NTZcdTc3NWFcdTc3NjlcdTc3NjdcdTc3NTRcdTc3NTlc'@; put 'dTc3NmRcdTc3ZTBcdTc4ODdcdTc4OWFcdTc4OTRcdTc4OGZcdTc4ODRcdTc4OTVcdTc4ODVcdTc4ODZcdTc4YTFcdTc4ODNcdTc4NzlcdTc4OTlcdTc4ODBcdTc4OTZcdTc4N2JcdTc5N2NcdTc5ODJcdTc5N2RcdTc5NzlcdTdhMTFcdTdhMThcdTdhMTlcdTdhMTJcdTdhMTdcdTdhMTVcdTdh'@; put 'MjJcdTdhMTMiXSxbImRmNDAiLCJcdTdhMWJcdTdhMTBcdTdhYTNcdTdhYTJcdTdhOWVcdTdhZWJcdTdiNjZcdTdiNjRcdTdiNmRcdTdiNzRcdTdiNjlcdTdiNzJcdTdiNjVcdTdiNzNcdTdiNzFcdTdiNzBcdTdiNjFcdTdiNzhcdTdiNzZcdTdiNjNcdTdjYjJcdTdjYjRcdTdjYWZcdTdkODhc'@; put 'dTdkODZcdTdkODBcdTdkOGRcdTdkN2ZcdTdkODVcdTdkN2FcdTdkOGVcdTdkN2JcdTdkODNcdTdkN2NcdTdkOGNcdTdkOTRcdTdkODRcdTdkN2RcdTdkOTJcdTdmNmRcdTdmNmJcdTdmNjdcdTdmNjhcdTdmNmNcdTdmYTZcdTdmYTVcdTdmYTdcdTdmZGJcdTdmZGNcdTgwMjFcdTgxNjRcdTgx'@; put 'NjBcdTgxNzdcdTgxNWNcdTgxNjlcdTgxNWJcdTgxNjJcdTgxNzJcdTY3MjFcdTgxNWVcdTgxNzZcdTgxNjdcdTgxNmYiXSxbImRmYTEiLCJcdTgxNDRcdTgxNjFcdTgyMWRcdTgyNDlcdTgyNDRcdTgyNDBcdTgyNDJcdTgyNDVcdTg0ZjFcdTg0M2ZcdTg0NTZcdTg0NzZcdTg0NzlcdTg0OGZc'@; put 'dTg0OGRcdTg0NjVcdTg0NTFcdTg0NDBcdTg0ODZcdTg0NjdcdTg0MzBcdTg0NGRcdTg0N2RcdTg0NWFcdTg0NTlcdTg0NzRcdTg0NzNcdTg0NWRcdTg1MDdcdTg0NWVcdTg0MzdcdTg0M2FcdTg0MzRcdTg0N2FcdTg0NDNcdTg0NzhcdTg0MzJcdTg0NDVcdTg0MjlcdTgzZDlcdTg0NGJcdTg0'@; put 'MmZcdTg0NDJcdTg0MmRcdTg0NWZcdTg0NzBcdTg0MzlcdTg0NGVcdTg0NGNcdTg0NTJcdTg0NmZcdTg0YzVcdTg0OGVcdTg0M2JcdTg0NDdcdTg0MzZcdTg0MzNcdTg0NjhcdTg0N2VcdTg0NDRcdTg0MmJcdTg0NjBcdTg0NTRcdTg0NmVcdTg0NTBcdTg3MGJcdTg3MDRcdTg2ZjdcdTg3MGNc'@; put 'dTg2ZmFcdTg2ZDZcdTg2ZjVcdTg3NGRcdTg2ZjhcdTg3MGVcdTg3MDlcdTg3MDFcdTg2ZjZcdTg3MGRcdTg3MDVcdTg4ZDZcdTg4Y2JcdTg4Y2RcdTg4Y2VcdTg4ZGVcdTg4ZGJcdTg4ZGFcdTg4Y2NcdTg4ZDBcdTg5ODVcdTg5OWJcdTg5ZGZcdTg5ZTVcdTg5ZTQiXSxbImUwNDAiLCJcdTg5'@; put 'ZTFcdTg5ZTBcdTg5ZTJcdTg5ZGNcdTg5ZTZcdThhNzZcdThhODZcdThhN2ZcdThhNjFcdThhM2ZcdThhNzdcdThhODJcdThhODRcdThhNzVcdThhODNcdThhODFcdThhNzRcdThhN2FcdThjM2NcdThjNGJcdThjNGFcdThjNjVcdThjNjRcdThjNjZcdThjODZcdThjODRcdThjODVcdThjY2Nc'@; put 'dThkNjhcdThkNjlcdThkOTFcdThkOGNcdThkOGVcdThkOGZcdThkOGRcdThkOTNcdThkOTRcdThkOTBcdThkOTJcdThkZjBcdThkZTBcdThkZWNcdThkZjFcdThkZWVcdThkZDBcdThkZTlcdThkZTNcdThkZTJcdThkZTdcdThkZjJcdThkZWJcdThkZjRcdThmMDZcdThlZmZcdThmMDFcdThm'@; put 'MDBcdThmMDVcdThmMDdcdThmMDhcdThmMDJcdThmMGJcdTkwNTJcdTkwM2YiXSxbImUwYTEiLCJcdTkwNDRcdTkwNDlcdTkwM2RcdTkxMTBcdTkxMGRcdTkxMGZcdTkxMTFcdTkxMTZcdTkxMTRcdTkxMGJcdTkxMGVcdTkxNmVcdTkxNmZcdTkyNDhcdTkyNTJcdTkyMzBcdTkyM2FcdTkyNjZc'@; put 'dTkyMzNcdTkyNjVcdTkyNWVcdTkyODNcdTkyMmVcdTkyNGFcdTkyNDZcdTkyNmRcdTkyNmNcdTkyNGZcdTkyNjBcdTkyNjdcdTkyNmZcdTkyMzZcdTkyNjFcdTkyNzBcdTkyMzFcdTkyNTRcdTkyNjNcdTkyNTBcdTkyNzJcdTkyNGVcdTkyNTNcdTkyNGNcdTkyNTZcdTkyMzJcdTk1OWZcdTk1'@; put 'OWNcdTk1OWVcdTk1OWJcdTk2OTJcdTk2OTNcdTk2OTFcdTk2OTdcdTk2Y2VcdTk2ZmFcdTk2ZmRcdTk2ZjhcdTk2ZjVcdTk3NzNcdTk3NzdcdTk3NzhcdTk3NzJcdTk4MGZcdTk4MGRcdTk4MGVcdTk4YWNcdTk4ZjZcdTk4ZjlcdTk5YWZcdTk5YjJcdTk5YjBcdTk5YjVcdTlhYWRcdTlhYWJc'@; put 'dTliNWJcdTljZWFcdTljZWRcdTljZTdcdTllODBcdTllZmRcdTUwZTZcdTUwZDRcdTUwZDdcdTUwZThcdTUwZjNcdTUwZGJcdTUwZWFcdTUwZGRcdTUwZTRcdTUwZDNcdTUwZWNcdTUwZjBcdTUwZWZcdTUwZTNcdTUwZTAiXSxbImUxNDAiLCJcdTUxZDhcdTUyODBcdTUyODFcdTUyZTlcdTUy'@; put 'ZWJcdTUzMzBcdTUzYWNcdTU2MjdcdTU2MTVcdTU2MGNcdTU2MTJcdTU1ZmNcdTU2MGZcdTU2MWNcdTU2MDFcdTU2MTNcdTU2MDJcdTU1ZmFcdTU2MWRcdTU2MDRcdTU1ZmZcdTU1ZjlcdTU4ODlcdTU4N2NcdTU4OTBcdTU4OThcdTU4ODZcdTU4ODFcdTU4N2ZcdTU4NzRcdTU4OGJcdTU4N2Fc'@; put 'dTU4ODdcdTU4OTFcdTU4OGVcdTU4NzZcdTU4ODJcdTU4ODhcdTU4N2JcdTU4OTRcdTU4OGZcdTU4ZmVcdTU5NmJcdTVhZGNcdTVhZWVcdTVhZTVcdTVhZDVcdTVhZWFcdTVhZGFcdTVhZWRcdTVhZWJcdTVhZjNcdTVhZTJcdTVhZTBcdTVhZGJcdTVhZWNcdTVhZGVcdTVhZGRcdTVhZDlcdTVh'@; put 'ZThcdTVhZGZcdTViNzdcdTViZTAiXSxbImUxYTEiLCJcdTViZTNcdTVjNjNcdTVkODJcdTVkODBcdTVkN2RcdTVkODZcdTVkN2FcdTVkODFcdTVkNzdcdTVkOGFcdTVkODlcdTVkODhcdTVkN2VcdTVkN2NcdTVkOGRcdTVkNzlcdTVkN2ZcdTVlNThcdTVlNTlcdTVlNTNcdTVlZDhcdTVlZDFc'@; put 'dTVlZDdcdTVlY2VcdTVlZGNcdTVlZDVcdTVlZDlcdTVlZDJcdTVlZDRcdTVmNDRcdTVmNDNcdTVmNmZcdTVmYjZcdTYxMmNcdTYxMjhcdTYxNDFcdTYxNWVcdTYxNzFcdTYxNzNcdTYxNTJcdTYxNTNcdTYxNzJcdTYxNmNcdTYxODBcdTYxNzRcdTYxNTRcdTYxN2FcdTYxNWJcdTYxNjVcdTYx'@; put 'M2JcdTYxNmFcdTYxNjFcdTYxNTZcdTYyMjlcdTYyMjdcdTYyMmJcdTY0MmJcdTY0NGRcdTY0NWJcdTY0NWRcdTY0NzRcdTY0NzZcdTY0NzJcdTY0NzNcdTY0N2RcdTY0NzVcdTY0NjZcdTY0YTZcdTY0NGVcdTY0ODJcdTY0NWVcdTY0NWNcdTY0NGJcdTY0NTNcdTY0NjBcdTY0NTBcdTY0N2Zc'@; put 'dTY0M2ZcdTY0NmNcdTY0NmJcdTY0NTlcdTY0NjVcdTY0NzdcdTY1NzNcdTY1YTBcdTY2YTFcdTY2YTBcdTY2OWZcdTY3MDVcdTY3MDRcdTY3MjJcdTY5YjFcdTY5YjZcdTY5YzkiXSxbImUyNDAiLCJcdTY5YTBcdTY5Y2VcdTY5OTZcdTY5YjBcdTY5YWNcdTY5YmNcdTY5OTFcdTY5OTlcdTY5'@; put 'OGVcdTY5YTdcdTY5OGRcdTY5YTlcdTY5YmVcdTY5YWZcdTY5YmZcdTY5YzRcdTY5YmRcdTY5YTRcdTY5ZDRcdTY5YjlcdTY5Y2FcdTY5OWFcdTY5Y2ZcdTY5YjNcdTY5OTNcdTY5YWFcdTY5YTFcdTY5OWVcdTY5ZDlcdTY5OTdcdTY5OTBcdTY5YzJcdTY5YjVcdTY5YTVcdTY5YzZcdTZiNGFc'@; put 'dTZiNGRcdTZiNGJcdTZiOWVcdTZiOWZcdTZiYTBcdTZiYzNcdTZiYzRcdTZiZmVcdTZlY2VcdTZlZjVcdTZlZjFcdTZmMDNcdTZmMjVcdTZlZjhcdTZmMzdcdTZlZmJcdTZmMmVcdTZmMDlcdTZmNGVcdTZmMTlcdTZmMWFcdTZmMjdcdTZmMThcdTZmM2JcdTZmMTJcdTZlZWRcdTZmMGEiXSxb'@; put 'ImUyYTEiLCJcdTZmMzZcdTZmNzNcdTZlZjlcdTZlZWVcdTZmMmRcdTZmNDBcdTZmMzBcdTZmM2NcdTZmMzVcdTZlZWJcdTZmMDdcdTZmMGVcdTZmNDNcdTZmMDVcdTZlZmRcdTZlZjZcdTZmMzlcdTZmMWNcdTZlZmNcdTZmM2FcdTZmMWZcdTZmMGRcdTZmMWVcdTZmMDhcdTZmMjFcdTcxODdc'@; put 'dTcxOTBcdTcxODlcdTcxODBcdTcxODVcdTcxODJcdTcxOGZcdTcxN2JcdTcxODZcdTcxODFcdTcxOTdcdTcyNDRcdTcyNTNcdTcyOTdcdTcyOTVcdTcyOTNcdTczNDNcdTczNGRcdTczNTFcdTczNGNcdTc0NjJcdTc0NzNcdTc0NzFcdTc0NzVcdTc0NzJcdTc0NjdcdTc0NmVcdTc1MDBcdTc1'@; put 'MDJcdTc1MDNcdTc1N2RcdTc1OTBcdTc2MTZcdTc2MDhcdTc2MGNcdTc2MTVcdTc2MTFcdTc2MGFcdTc2MTRcdTc2YjhcdTc3ODFcdTc3N2NcdTc3ODVcdTc3ODJcdTc3NmVcdTc3ODBcdTc3NmZcdTc3N2VcdTc3ODNcdTc4YjJcdTc4YWFcdTc4YjRcdTc4YWRcdTc4YThcdTc4N2VcdTc4YWJc'@; put 'dTc4OWVcdTc4YTVcdTc4YTBcdTc4YWNcdTc4YTJcdTc4YTRcdTc5OThcdTc5OGFcdTc5OGJcdTc5OTZcdTc5OTVcdTc5OTRcdTc5OTMiXSxbImUzNDAiLCJcdTc5OTdcdTc5ODhcdTc5OTJcdTc5OTBcdTdhMmJcdTdhNGFcdTdhMzBcdTdhMmZcdTdhMjhcdTdhMjZcdTdhYThcdTdhYWJcdTdh'@; put 'YWNcdTdhZWVcdTdiODhcdTdiOWNcdTdiOGFcdTdiOTFcdTdiOTBcdTdiOTZcdTdiOGRcdTdiOGNcdTdiOWJcdTdiOGVcdTdiODVcdTdiOThcdTUyODRcdTdiOTlcdTdiYTRcdTdiODJcdTdjYmJcdTdjYmZcdTdjYmNcdTdjYmFcdTdkYTdcdTdkYjdcdTdkYzJcdTdkYTNcdTdkYWFcdTdkYzFc'@; put 'dTdkYzBcdTdkYzVcdTdkOWRcdTdkY2VcdTdkYzRcdTdkYzZcdTdkY2JcdTdkY2NcdTdkYWZcdTdkYjlcdTdkOTZcdTdkYmNcdTdkOWZcdTdkYTZcdTdkYWVcdTdkYTlcdTdkYTFcdTdkYzlcdTdmNzNcdTdmZTJcdTdmZTNcdTdmZTVcdTdmZGUiXSxbImUzYTEiLCJcdTgwMjRcdTgwNWRcdTgw'@; put 'NWNcdTgxODlcdTgxODZcdTgxODNcdTgxODdcdTgxOGRcdTgxOGNcdTgxOGJcdTgyMTVcdTg0OTdcdTg0YTRcdTg0YTFcdTg0OWZcdTg0YmFcdTg0Y2VcdTg0YzJcdTg0YWNcdTg0YWVcdTg0YWJcdTg0YjlcdTg0YjRcdTg0YzFcdTg0Y2RcdTg0YWFcdTg0OWFcdTg0YjFcdTg0ZDBcdTg0OWRc'@; put 'dTg0YTdcdTg0YmJcdTg0YTJcdTg0OTRcdTg0YzdcdTg0Y2NcdTg0OWJcdTg0YTlcdTg0YWZcdTg0YThcdTg0ZDZcdTg0OThcdTg0YjZcdTg0Y2ZcdTg0YTBcdTg0ZDdcdTg0ZDRcdTg0ZDJcdTg0ZGJcdTg0YjBcdTg0OTFcdTg2NjFcdTg3MzNcdTg3MjNcdTg3MjhcdTg3NmJcdTg3NDBcdTg3'@; put 'MmVcdTg3MWVcdTg3MjFcdTg3MTlcdTg3MWJcdTg3NDNcdTg3MmNcdTg3NDFcdTg3M2VcdTg3NDZcdTg3MjBcdTg3MzJcdTg3MmFcdTg3MmRcdTg3M2NcdTg3MTJcdTg3M2FcdTg3MzFcdTg3MzVcdTg3NDJcdTg3MjZcdTg3MjdcdTg3MzhcdTg3MjRcdTg3MWFcdTg3MzBcdTg3MTFcdTg4Zjdc'@; put 'dTg4ZTdcdTg4ZjFcdTg4ZjJcdTg4ZmFcdTg4ZmVcdTg4ZWVcdTg4ZmNcdTg4ZjZcdTg4ZmIiXSxbImU0NDAiLCJcdTg4ZjBcdTg4ZWNcdTg4ZWJcdTg5OWRcdTg5YTFcdTg5OWZcdTg5OWVcdTg5ZTlcdTg5ZWJcdTg5ZThcdThhYWJcdThhOTlcdThhOGJcdThhOTJcdThhOGZcdThhOTZcdThj'@; put 'M2RcdThjNjhcdThjNjlcdThjZDVcdThjY2ZcdThjZDdcdThkOTZcdThlMDlcdThlMDJcdThkZmZcdThlMGRcdThkZmRcdThlMGFcdThlMDNcdThlMDdcdThlMDZcdThlMDVcdThkZmVcdThlMDBcdThlMDRcdThmMTBcdThmMTFcdThmMGVcdThmMGRcdTkxMjNcdTkxMWNcdTkxMjBcdTkxMjJc'@; put 'dTkxMWZcdTkxMWRcdTkxMWFcdTkxMjRcdTkxMjFcdTkxMWJcdTkxN2FcdTkxNzJcdTkxNzlcdTkxNzNcdTkyYTVcdTkyYTRcdTkyNzZcdTkyOWJcdTkyN2FcdTkyYTBcdTkyOTRcdTkyYWFcdTkyOGQiXSxbImU0YTEiLCJcdTkyYTZcdTkyOWFcdTkyYWJcdTkyNzlcdTkyOTdcdTkyN2ZcdTky'@; put 'YTNcdTkyZWVcdTkyOGVcdTkyODJcdTkyOTVcdTkyYTJcdTkyN2RcdTkyODhcdTkyYTFcdTkyOGFcdTkyODZcdTkyOGNcdTkyOTlcdTkyYTdcdTkyN2VcdTkyODdcdTkyYTlcdTkyOWRcdTkyOGJcdTkyMmRcdTk2OWVcdTk2YTFcdTk2ZmZcdTk3NThcdTk3N2RcdTk3N2FcdTk3N2VcdTk3ODNc'@; put 'dTk3ODBcdTk3ODJcdTk3N2JcdTk3ODRcdTk3ODFcdTk3N2ZcdTk3Y2VcdTk3Y2RcdTk4MTZcdTk4YWRcdTk4YWVcdTk5MDJcdTk5MDBcdTk5MDdcdTk5OWRcdTk5OWNcdTk5YzNcdTk5YjlcdTk5YmJcdTk5YmFcdTk5YzJcdTk5YmRcdTk5YzdcdTlhYjFcdTlhZTNcdTlhZTdcdTliM2VcdTli'@; put 'M2ZcdTliNjBcdTliNjFcdTliNWZcdTljZjFcdTljZjJcdTljZjVcdTllYTdcdTUwZmZcdTUxMDNcdTUxMzBcdTUwZjhcdTUxMDZcdTUxMDdcdTUwZjZcdTUwZmVcdTUxMGJcdTUxMGNcdTUwZmRcdTUxMGFcdTUyOGJcdTUyOGNcdTUyZjFcdTUyZWZcdTU2NDhcdTU2NDJcdTU2NGNcdTU2MzVc'@; put 'dTU2NDFcdTU2NGFcdTU2NDlcdTU2NDZcdTU2NTgiXSxbImU1NDAiLCJcdTU2NWFcdTU2NDBcdTU2MzNcdTU2M2RcdTU2MmNcdTU2M2VcdTU2MzhcdTU2MmFcdTU2M2FcdTU3MWFcdTU4YWJcdTU4OWRcdTU4YjFcdTU4YTBcdTU4YTNcdTU4YWZcdTU4YWNcdTU4YTVcdTU4YTFcdTU4ZmZcdTVh'@; put 'ZmZcdTVhZjRcdTVhZmRcdTVhZjdcdTVhZjZcdTViMDNcdTVhZjhcdTViMDJcdTVhZjlcdTViMDFcdTViMDdcdTViMDVcdTViMGZcdTVjNjdcdTVkOTlcdTVkOTdcdTVkOWZcdTVkOTJcdTVkYTJcdTVkOTNcdTVkOTVcdTVkYTBcdTVkOWNcdTVkYTFcdTVkOWFcdTVkOWVcdTVlNjlcdTVlNWRc'@; put 'dTVlNjBcdTVlNWNcdTdkZjNcdTVlZGJcdTVlZGVcdTVlZTFcdTVmNDlcdTVmYjJcdTYxOGJcdTYxODNcdTYxNzlcdTYxYjFcdTYxYjBcdTYxYTJcdTYxODkiXSxbImU1YTEiLCJcdTYxOWJcdTYxOTNcdTYxYWZcdTYxYWRcdTYxOWZcdTYxOTJcdTYxYWFcdTYxYTFcdTYxOGRcdTYxNjZcdTYx'@; put 'YjNcdTYyMmRcdTY0NmVcdTY0NzBcdTY0OTZcdTY0YTBcdTY0ODVcdTY0OTdcdTY0OWNcdTY0OGZcdTY0OGJcdTY0OGFcdTY0OGNcdTY0YTNcdTY0OWZcdTY0NjhcdTY0YjFcdTY0OThcdTY1NzZcdTY1N2FcdTY1NzlcdTY1N2JcdTY1YjJcdTY1YjNcdTY2YjVcdTY2YjBcdTY2YTlcdTY2YjJc'@; put 'dTY2YjdcdTY2YWFcdTY2YWZcdTZhMDBcdTZhMDZcdTZhMTdcdTY5ZTVcdTY5ZjhcdTZhMTVcdTY5ZjFcdTY5ZTRcdTZhMjBcdTY5ZmZcdTY5ZWNcdTY5ZTJcdTZhMWJcdTZhMWRcdTY5ZmVcdTZhMjdcdTY5ZjJcdTY5ZWVcdTZhMTRcdTY5ZjdcdTY5ZTdcdTZhNDBcdTZhMDhcdTY5ZTZcdTY5'@; put 'ZmJcdTZhMGRcdTY5ZmNcdTY5ZWJcdTZhMDlcdTZhMDRcdTZhMThcdTZhMjVcdTZhMGZcdTY5ZjZcdTZhMjZcdTZhMDdcdTY5ZjRcdTZhMTZcdTZiNTFcdTZiYTVcdTZiYTNcdTZiYTJcdTZiYTZcdTZjMDFcdTZjMDBcdTZiZmZcdTZjMDJcdTZmNDFcdTZmMjZcdTZmN2VcdTZmODdcdTZmYzZc'@; put 'dTZmOTIiXSxbImU2NDAiLCJcdTZmOGRcdTZmODlcdTZmOGNcdTZmNjJcdTZmNGZcdTZmODVcdTZmNWFcdTZmOTZcdTZmNzZcdTZmNmNcdTZmODJcdTZmNTVcdTZmNzJcdTZmNTJcdTZmNTBcdTZmNTdcdTZmOTRcdTZmOTNcdTZmNWRcdTZmMDBcdTZmNjFcdTZmNmJcdTZmN2RcdTZmNjdcdTZm'@; put 'OTBcdTZmNTNcdTZmOGJcdTZmNjlcdTZmN2ZcdTZmOTVcdTZmNjNcdTZmNzdcdTZmNmFcdTZmN2JcdTcxYjJcdTcxYWZcdTcxOWJcdTcxYjBcdTcxYTBcdTcxOWFcdTcxYTlcdTcxYjVcdTcxOWRcdTcxYTVcdTcxOWVcdTcxYTRcdTcxYTFcdTcxYWFcdTcxOWNcdTcxYTdcdTcxYjNcdTcyOThc'@; put 'dTcyOWFcdTczNThcdTczNTJcdTczNWVcdTczNWZcdTczNjBcdTczNWRcdTczNWJcdTczNjFcdTczNWFcdTczNTkiXSxbImU2YTEiLCJcdTczNjJcdTc0ODdcdTc0ODlcdTc0OGFcdTc0ODZcdTc0ODFcdTc0N2RcdTc0ODVcdTc0ODhcdTc0N2NcdTc0NzlcdTc1MDhcdTc1MDdcdTc1N2VcdTc2'@; put 'MjVcdTc2MWVcdTc2MTlcdTc2MWRcdTc2MWNcdTc2MjNcdTc2MWFcdTc2MjhcdTc2MWJcdTc2OWNcdTc2OWRcdTc2OWVcdTc2OWJcdTc3OGRcdTc3OGZcdTc3ODlcdTc3ODhcdTc4Y2RcdTc4YmJcdTc4Y2ZcdTc4Y2NcdTc4ZDFcdTc4Y2VcdTc4ZDRcdTc4YzhcdTc4YzNcdTc4YzRcdTc4Yzlc'@; put 'dTc5OWFcdTc5YTFcdTc5YTBcdTc5OWNcdTc5YTJcdTc5OWJcdTZiNzZcdTdhMzlcdTdhYjJcdTdhYjRcdTdhYjNcdTdiYjdcdTdiY2JcdTdiYmVcdTdiYWNcdTdiY2VcdTdiYWZcdTdiYjlcdTdiY2FcdTdiYjVcdTdjYzVcdTdjYzhcdTdjY2NcdTdjY2JcdTdkZjdcdTdkZGJcdTdkZWFcdTdk'@; put 'ZTdcdTdkZDdcdTdkZTFcdTdlMDNcdTdkZmFcdTdkZTZcdTdkZjZcdTdkZjFcdTdkZjBcdTdkZWVcdTdkZGZcdTdmNzZcdTdmYWNcdTdmYjBcdTdmYWRcdTdmZWRcdTdmZWJcdTdmZWFcdTdmZWNcdTdmZTZcdTdmZThcdTgwNjRcdTgwNjdcdTgxYTNcdTgxOWYiXSxbImU3NDAiLCJcdTgxOWVc'@; put 'dTgxOTVcdTgxYTJcdTgxOTlcdTgxOTdcdTgyMTZcdTgyNGZcdTgyNTNcdTgyNTJcdTgyNTBcdTgyNGVcdTgyNTFcdTg1MjRcdTg1M2JcdTg1MGZcdTg1MDBcdTg1MjlcdTg1MGVcdTg1MDlcdTg1MGRcdTg1MWZcdTg1MGFcdTg1MjdcdTg1MWNcdTg0ZmJcdTg1MmJcdTg0ZmFcdTg1MDhcdTg1'@; put 'MGNcdTg0ZjRcdTg1MmFcdTg0ZjJcdTg1MTVcdTg0ZjdcdTg0ZWJcdTg0ZjNcdTg0ZmNcdTg1MTJcdTg0ZWFcdTg0ZTlcdTg1MTZcdTg0ZmVcdTg1MjhcdTg1MWRcdTg1MmVcdTg1MDJcdTg0ZmRcdTg1MWVcdTg0ZjZcdTg1MzFcdTg1MjZcdTg0ZTdcdTg0ZThcdTg0ZjBcdTg0ZWZcdTg0Zjlc'@; put 'dTg1MThcdTg1MjBcdTg1MzBcdTg1MGJcdTg1MTlcdTg1MmZcdTg2NjIiXSxbImU3YTEiLCJcdTg3NTZcdTg3NjNcdTg3NjRcdTg3NzdcdTg3ZTFcdTg3NzNcdTg3NThcdTg3NTRcdTg3NWJcdTg3NTJcdTg3NjFcdTg3NWFcdTg3NTFcdTg3NWVcdTg3NmRcdTg3NmFcdTg3NTBcdTg3NGVcdTg3'@; put 'NWZcdTg3NWRcdTg3NmZcdTg3NmNcdTg3N2FcdTg3NmVcdTg3NWNcdTg3NjVcdTg3NGZcdTg3N2JcdTg3NzVcdTg3NjJcdTg3NjdcdTg3NjlcdTg4NWFcdTg5MDVcdTg5MGNcdTg5MTRcdTg5MGJcdTg5MTdcdTg5MThcdTg5MTlcdTg5MDZcdTg5MTZcdTg5MTFcdTg5MGVcdTg5MDlcdTg5YTJc'@; put 'dTg5YTRcdTg5YTNcdTg5ZWRcdTg5ZjBcdTg5ZWNcdThhY2ZcdThhYzZcdThhYjhcdThhZDNcdThhZDFcdThhZDRcdThhZDVcdThhYmJcdThhZDdcdThhYmVcdThhYzBcdThhYzVcdThhZDhcdThhYzNcdThhYmFcdThhYmRcdThhZDlcdThjM2VcdThjNGRcdThjOGZcdThjZTVcdThjZGZcdThj'@; put 'ZDlcdThjZThcdThjZGFcdThjZGRcdThjZTdcdThkYTBcdThkOWNcdThkYTFcdThkOWJcdThlMjBcdThlMjNcdThlMjVcdThlMjRcdThlMmVcdThlMTVcdThlMWJcdThlMTZcdThlMTFcdThlMTlcdThlMjZcdThlMjciXSxbImU4NDAiLCJcdThlMTRcdThlMTJcdThlMThcdThlMTNcdThlMWNc'@; put 'dThlMTdcdThlMWFcdThmMmNcdThmMjRcdThmMThcdThmMWFcdThmMjBcdThmMjNcdThmMTZcdThmMTdcdTkwNzNcdTkwNzBcdTkwNmZcdTkwNjdcdTkwNmJcdTkxMmZcdTkxMmJcdTkxMjlcdTkxMmFcdTkxMzJcdTkxMjZcdTkxMmVcdTkxODVcdTkxODZcdTkxOGFcdTkxODFcdTkxODJcdTkx'@; put 'ODRcdTkxODBcdTkyZDBcdTkyYzNcdTkyYzRcdTkyYzBcdTkyZDlcdTkyYjZcdTkyY2ZcdTkyZjFcdTkyZGZcdTkyZDhcdTkyZTlcdTkyZDdcdTkyZGRcdTkyY2NcdTkyZWZcdTkyYzJcdTkyZThcdTkyY2FcdTkyYzhcdTkyY2VcdTkyZTZcdTkyY2RcdTkyZDVcdTkyYzlcdTkyZTBcdTkyZGVc'@; put 'dTkyZTdcdTkyZDFcdTkyZDMiXSxbImU4YTEiLCJcdTkyYjVcdTkyZTFcdTkyYzZcdTkyYjRcdTk1N2NcdTk1YWNcdTk1YWJcdTk1YWVcdTk1YjBcdTk2YTRcdTk2YTJcdTk2ZDNcdTk3MDVcdTk3MDhcdTk3MDJcdTk3NWFcdTk3OGFcdTk3OGVcdTk3ODhcdTk3ZDBcdTk3Y2ZcdTk4MWVcdTk4'@; put 'MWRcdTk4MjZcdTk4MjlcdTk4MjhcdTk4MjBcdTk4MWJcdTk4MjdcdTk4YjJcdTk5MDhcdTk4ZmFcdTk5MTFcdTk5MTRcdTk5MTZcdTk5MTdcdTk5MTVcdTk5ZGNcdTk5Y2RcdTk5Y2ZcdTk5ZDNcdTk5ZDRcdTk5Y2VcdTk5YzlcdTk5ZDZcdTk5ZDhcdTk5Y2JcdTk5ZDdcdTk5Y2NcdTlhYjNc'@; put 'dTlhZWNcdTlhZWJcdTlhZjNcdTlhZjJcdTlhZjFcdTliNDZcdTliNDNcdTliNjdcdTliNzRcdTliNzFcdTliNjZcdTliNzZcdTliNzVcdTliNzBcdTliNjhcdTliNjRcdTliNmNcdTljZmNcdTljZmFcdTljZmRcdTljZmZcdTljZjdcdTlkMDdcdTlkMDBcdTljZjlcdTljZmJcdTlkMDhcdTlk'@; put 'MDVcdTlkMDRcdTllODNcdTllZDNcdTlmMGZcdTlmMTBcdTUxMWNcdTUxMTNcdTUxMTdcdTUxMWFcdTUxMTFcdTUxZGVcdTUzMzRcdTUzZTFcdTU2NzBcdTU2NjBcdTU2NmUiXSxbImU5NDAiLCJcdTU2NzNcdTU2NjZcdTU2NjNcdTU2NmRcdTU2NzJcdTU2NWVcdTU2NzdcdTU3MWNcdTU3MWJc'@; put 'dTU4YzhcdTU4YmRcdTU4YzlcdTU4YmZcdTU4YmFcdTU4YzJcdTU4YmNcdTU4YzZcdTViMTdcdTViMTlcdTViMWJcdTViMjFcdTViMTRcdTViMTNcdTViMTBcdTViMTZcdTViMjhcdTViMWFcdTViMjBcdTViMWVcdTViZWZcdTVkYWNcdTVkYjFcdTVkYTlcdTVkYTdcdTVkYjVcdTVkYjBcdTVk'@; put 'YWVcdTVkYWFcdTVkYThcdTVkYjJcdTVkYWRcdTVkYWZcdTVkYjRcdTVlNjdcdTVlNjhcdTVlNjZcdTVlNmZcdTVlZTlcdTVlZTdcdTVlZTZcdTVlZThcdTVlZTVcdTVmNGJcdTVmYmNcdTYxOWRcdTYxYThcdTYxOTZcdTYxYzVcdTYxYjRcdTYxYzZcdTYxYzFcdTYxY2NcdTYxYmEiXSxbImU5'@; put 'YTEiLCJcdTYxYmZcdTYxYjhcdTYxOGNcdTY0ZDdcdTY0ZDZcdTY0ZDBcdTY0Y2ZcdTY0YzlcdTY0YmRcdTY0ODlcdTY0YzNcdTY0ZGJcdTY0ZjNcdTY0ZDlcdTY1MzNcdTY1N2ZcdTY1N2NcdTY1YTJcdTY2YzhcdTY2YmVcdTY2YzBcdTY2Y2FcdTY2Y2JcdTY2Y2ZcdTY2YmRcdTY2YmJcdTY2'@; put 'YmFcdTY2Y2NcdTY3MjNcdTZhMzRcdTZhNjZcdTZhNDlcdTZhNjdcdTZhMzJcdTZhNjhcdTZhM2VcdTZhNWRcdTZhNmRcdTZhNzZcdTZhNWJcdTZhNTFcdTZhMjhcdTZhNWFcdTZhM2JcdTZhM2ZcdTZhNDFcdTZhNmFcdTZhNjRcdTZhNTBcdTZhNGZcdTZhNTRcdTZhNmZcdTZhNjlcdTZhNjBc'@; put 'dTZhM2NcdTZhNWVcdTZhNTZcdTZhNTVcdTZhNGRcdTZhNGVcdTZhNDZcdTZiNTVcdTZiNTRcdTZiNTZcdTZiYTdcdTZiYWFcdTZiYWJcdTZiYzhcdTZiYzdcdTZjMDRcdTZjMDNcdTZjMDZcdTZmYWRcdTZmY2JcdTZmYTNcdTZmYzdcdTZmYmNcdTZmY2VcdTZmYzhcdTZmNWVcdTZmYzRcdTZm'@; put 'YmRcdTZmOWVcdTZmY2FcdTZmYThcdTcwMDRcdTZmYTVcdTZmYWVcdTZmYmFcdTZmYWNcdTZmYWFcdTZmY2ZcdTZmYmZcdTZmYjgiXSxbImVhNDAiLCJcdTZmYTJcdTZmYzlcdTZmYWJcdTZmY2RcdTZmYWZcdTZmYjJcdTZmYjBcdTcxYzVcdTcxYzJcdTcxYmZcdTcxYjhcdTcxZDZcdTcxYzBc'@; put 'dTcxYzFcdTcxY2JcdTcxZDRcdTcxY2FcdTcxYzdcdTcxY2ZcdTcxYmRcdTcxZDhcdTcxYmNcdTcxYzZcdTcxZGFcdTcxZGJcdTcyOWRcdTcyOWVcdTczNjlcdTczNjZcdTczNjdcdTczNmNcdTczNjVcdTczNmJcdTczNmFcdTc0N2ZcdTc0OWFcdTc0YTBcdTc0OTRcdTc0OTJcdTc0OTVcdTc0'@; put 'YTFcdTc1MGJcdTc1ODBcdTc2MmZcdTc2MmRcdTc2MzFcdTc2M2RcdTc2MzNcdTc2M2NcdTc2MzVcdTc2MzJcdTc2MzBcdTc2YmJcdTc2ZTZcdTc3OWFcdTc3OWRcdTc3YTFcdTc3OWNcdTc3OWJcdTc3YTJcdTc3YTNcdTc3OTVcdTc3OTkiXSxbImVhYTEiLCJcdTc3OTdcdTc4ZGRcdTc4ZTlc'@; put 'dTc4ZTVcdTc4ZWFcdTc4ZGVcdTc4ZTNcdTc4ZGJcdTc4ZTFcdTc4ZTJcdTc4ZWRcdTc4ZGZcdTc4ZTBcdTc5YTRcdTdhNDRcdTdhNDhcdTdhNDdcdTdhYjZcdTdhYjhcdTdhYjVcdTdhYjFcdTdhYjdcdTdiZGVcdTdiZTNcdTdiZTdcdTdiZGRcdTdiZDVcdTdiZTVcdTdiZGFcdTdiZThcdTdi'@; put 'ZjlcdTdiZDRcdTdiZWFcdTdiZTJcdTdiZGNcdTdiZWJcdTdiZDhcdTdiZGZcdTdjZDJcdTdjZDRcdTdjZDdcdTdjZDBcdTdjZDFcdTdlMTJcdTdlMjFcdTdlMTdcdTdlMGNcdTdlMWZcdTdlMjBcdTdlMTNcdTdlMGVcdTdlMWNcdTdlMTVcdTdlMWFcdTdlMjJcdTdlMGJcdTdlMGZcdTdlMTZc'@; put 'dTdlMGRcdTdlMTRcdTdlMjVcdTdlMjRcdTdmNDNcdTdmN2JcdTdmN2NcdTdmN2FcdTdmYjFcdTdmZWZcdTgwMmFcdTgwMjlcdTgwNmNcdTgxYjFcdTgxYTZcdTgxYWVcdTgxYjlcdTgxYjVcdTgxYWJcdTgxYjBcdTgxYWNcdTgxYjRcdTgxYjJcdTgxYjdcdTgxYTdcdTgxZjJcdTgyNTVcdTgy'@; put 'NTZcdTgyNTdcdTg1NTZcdTg1NDVcdTg1NmJcdTg1NGRcdTg1NTNcdTg1NjFcdTg1NTgiXSxbImViNDAiLCJcdTg1NDBcdTg1NDZcdTg1NjRcdTg1NDFcdTg1NjJcdTg1NDRcdTg1NTFcdTg1NDdcdTg1NjNcdTg1M2VcdTg1NWJcdTg1NzFcdTg1NGVcdTg1NmVcdTg1NzVcdTg1NTVcdTg1Njdc'@; put 'dTg1NjBcdTg1OGNcdTg1NjZcdTg1NWRcdTg1NTRcdTg1NjVcdTg1NmNcdTg2NjNcdTg2NjVcdTg2NjRcdTg3OWJcdTg3OGZcdTg3OTdcdTg3OTNcdTg3OTJcdTg3ODhcdTg3ODFcdTg3OTZcdTg3OThcdTg3NzlcdTg3ODdcdTg3YTNcdTg3ODVcdTg3OTBcdTg3OTFcdTg3OWRcdTg3ODRcdTg3'@; put 'OTRcdTg3OWNcdTg3OWFcdTg3ODlcdTg5MWVcdTg5MjZcdTg5MzBcdTg5MmRcdTg5MmVcdTg5MjdcdTg5MzFcdTg5MjJcdTg5MjlcdTg5MjNcdTg5MmZcdTg5MmNcdTg5MWZcdTg5ZjFcdThhZTAiXSxbImViYTEiLCJcdThhZTJcdThhZjJcdThhZjRcdThhZjVcdThhZGRcdThiMTRcdThhZTRc'@; put 'dThhZGZcdThhZjBcdThhYzhcdThhZGVcdThhZTFcdThhZThcdThhZmZcdThhZWZcdThhZmJcdThjOTFcdThjOTJcdThjOTBcdThjZjVcdThjZWVcdThjZjFcdThjZjBcdThjZjNcdThkNmNcdThkNmVcdThkYTVcdThkYTdcdThlMzNcdThlM2VcdThlMzhcdThlNDBcdThlNDVcdThlMzZcdThl'@; put 'M2NcdThlM2RcdThlNDFcdThlMzBcdThlM2ZcdThlYmRcdThmMzZcdThmMmVcdThmMzVcdThmMzJcdThmMzlcdThmMzdcdThmMzRcdTkwNzZcdTkwNzlcdTkwN2JcdTkwODZcdTkwZmFcdTkxMzNcdTkxMzVcdTkxMzZcdTkxOTNcdTkxOTBcdTkxOTFcdTkxOGRcdTkxOGZcdTkzMjdcdTkzMWVc'@; put 'dTkzMDhcdTkzMWZcdTkzMDZcdTkzMGZcdTkzN2FcdTkzMzhcdTkzM2NcdTkzMWJcdTkzMjNcdTkzMTJcdTkzMDFcdTkzNDZcdTkzMmRcdTkzMGVcdTkzMGRcdTkyY2JcdTkzMWRcdTkyZmFcdTkzMjVcdTkzMTNcdTkyZjlcdTkyZjdcdTkzMzRcdTkzMDJcdTkzMjRcdTkyZmZcdTkzMjlcdTkz'@; put 'MzlcdTkzMzVcdTkzMmFcdTkzMTRcdTkzMGMiXSxbImVjNDAiLCJcdTkzMGJcdTkyZmVcdTkzMDlcdTkzMDBcdTkyZmJcdTkzMTZcdTk1YmNcdTk1Y2RcdTk1YmVcdTk1YjlcdTk1YmFcdTk1YjZcdTk1YmZcdTk1YjVcdTk1YmRcdTk2YTlcdTk2ZDRcdTk3MGJcdTk3MTJcdTk3MTBcdTk3OTlc'@; put 'dTk3OTdcdTk3OTRcdTk3ZjBcdTk3ZjhcdTk4MzVcdTk4MmZcdTk4MzJcdTk5MjRcdTk5MWZcdTk5MjdcdTk5MjlcdTk5OWVcdTk5ZWVcdTk5ZWNcdTk5ZTVcdTk5ZTRcdTk5ZjBcdTk5ZTNcdTk5ZWFcdTk5ZTlcdTk5ZTdcdTlhYjlcdTlhYmZcdTlhYjRcdTlhYmJcdTlhZjZcdTlhZmFcdTlh'@; put 'ZjlcdTlhZjdcdTliMzNcdTliODBcdTliODVcdTliODdcdTliN2NcdTliN2VcdTliN2JcdTliODJcdTliOTNcdTliOTJcdTliOTBcdTliN2FcdTliOTUiXSxbImVjYTEiLCJcdTliN2RcdTliODhcdTlkMjVcdTlkMTdcdTlkMjBcdTlkMWVcdTlkMTRcdTlkMjlcdTlkMWRcdTlkMThcdTlkMjJc'@; put 'dTlkMTBcdTlkMTlcdTlkMWZcdTllODhcdTllODZcdTllODdcdTllYWVcdTllYWRcdTllZDVcdTllZDZcdTllZmFcdTlmMTJcdTlmM2RcdTUxMjZcdTUxMjVcdTUxMjJcdTUxMjRcdTUxMjBcdTUxMjlcdTUyZjRcdTU2OTNcdTU2OGNcdTU2OGRcdTU2ODZcdTU2ODRcdTU2ODNcdTU2N2VcdTU2'@; put 'ODJcdTU2N2ZcdTU2ODFcdTU4ZDZcdTU4ZDRcdTU4Y2ZcdTU4ZDJcdTViMmRcdTViMjVcdTViMzJcdTViMjNcdTViMmNcdTViMjdcdTViMjZcdTViMmZcdTViMmVcdTViN2JcdTViZjFcdTViZjJcdTVkYjdcdTVlNmNcdTVlNmFcdTVmYmVcdTVmYmJcdTYxYzNcdTYxYjVcdTYxYmNcdTYxZTdc'@; put 'dTYxZTBcdTYxZTVcdTYxZTRcdTYxZThcdTYxZGVcdTY0ZWZcdTY0ZTlcdTY0ZTNcdTY0ZWJcdTY0ZTRcdTY0ZThcdTY1ODFcdTY1ODBcdTY1YjZcdTY1ZGFcdTY2ZDJcdTZhOGRcdTZhOTZcdTZhODFcdTZhYTVcdTZhODlcdTZhOWZcdTZhOWJcdTZhYTFcdTZhOWVcdTZhODdcdTZhOTNcdTZh'@; put 'OGUiXSxbImVkNDAiLCJcdTZhOTVcdTZhODNcdTZhYThcdTZhYTRcdTZhOTFcdTZhN2ZcdTZhYTZcdTZhOWFcdTZhODVcdTZhOGNcdTZhOTJcdTZiNWJcdTZiYWRcdTZjMDlcdTZmY2NcdTZmYTlcdTZmZjRcdTZmZDRcdTZmZTNcdTZmZGNcdTZmZWRcdTZmZTdcdTZmZTZcdTZmZGVcdTZmZjJc'@; put 'dTZmZGRcdTZmZTJcdTZmZThcdTcxZTFcdTcxZjFcdTcxZThcdTcxZjJcdTcxZTRcdTcxZjBcdTcxZTJcdTczNzNcdTczNmVcdTczNmZcdTc0OTdcdTc0YjJcdTc0YWJcdTc0OTBcdTc0YWFcdTc0YWRcdTc0YjFcdTc0YTVcdTc0YWZcdTc1MTBcdTc1MTFcdTc1MTJcdTc1MGZcdTc1ODRcdTc2'@; put 'NDNcdTc2NDhcdTc2NDlcdTc2NDdcdTc2YTRcdTc2ZTlcdTc3YjVcdTc3YWJcdTc3YjJcdTc3YjdcdTc3YjYiXSxbImVkYTEiLCJcdTc3YjRcdTc3YjFcdTc3YThcdTc3ZjBcdTc4ZjNcdTc4ZmRcdTc5MDJcdTc4ZmJcdTc4ZmNcdTc4ZjJcdTc5MDVcdTc4ZjlcdTc4ZmVcdTc5MDRcdTc5YWJc'@; put 'dTc5YThcdTdhNWNcdTdhNWJcdTdhNTZcdTdhNThcdTdhNTRcdTdhNWFcdTdhYmVcdTdhYzBcdTdhYzFcdTdjMDVcdTdjMGZcdTdiZjJcdTdjMDBcdTdiZmZcdTdiZmJcdTdjMGVcdTdiZjRcdTdjMGJcdTdiZjNcdTdjMDJcdTdjMDlcdTdjMDNcdTdjMDFcdTdiZjhcdTdiZmRcdTdjMDZcdTdi'@; put 'ZjBcdTdiZjFcdTdjMTBcdTdjMGFcdTdjZThcdTdlMmRcdTdlM2NcdTdlNDJcdTdlMzNcdTk4NDhcdTdlMzhcdTdlMmFcdTdlNDlcdTdlNDBcdTdlNDdcdTdlMjlcdTdlNGNcdTdlMzBcdTdlM2JcdTdlMzZcdTdlNDRcdTdlM2FcdTdmNDVcdTdmN2ZcdTdmN2VcdTdmN2RcdTdmZjRcdTdmZjJc'@; put 'dTgwMmNcdTgxYmJcdTgxYzRcdTgxY2NcdTgxY2FcdTgxYzVcdTgxYzdcdTgxYmNcdTgxZTlcdTgyNWJcdTgyNWFcdTgyNWNcdTg1ODNcdTg1ODBcdTg1OGZcdTg1YTdcdTg1OTVcdTg1YTBcdTg1OGJcdTg1YTNcdTg1N2JcdTg1YTRcdTg1OWFcdTg1OWUiXSxbImVlNDAiLCJcdTg1NzdcdTg1'@; put 'N2NcdTg1ODlcdTg1YTFcdTg1N2FcdTg1NzhcdTg1NTdcdTg1OGVcdTg1OTZcdTg1ODZcdTg1OGRcdTg1OTlcdTg1OWRcdTg1ODFcdTg1YTJcdTg1ODJcdTg1ODhcdTg1ODVcdTg1NzlcdTg1NzZcdTg1OThcdTg1OTBcdTg1OWZcdTg2NjhcdTg3YmVcdTg3YWFcdTg3YWRcdTg3YzVcdTg3YjBc'@; put 'dTg3YWNcdTg3YjlcdTg3YjVcdTg3YmNcdTg3YWVcdTg3YzlcdTg3YzNcdTg3YzJcdTg3Y2NcdTg3YjdcdTg3YWZcdTg3YzRcdTg3Y2FcdTg3YjRcdTg3YjZcdTg3YmZcdTg3YjhcdTg3YmRcdTg3ZGVcdTg3YjJcdTg5MzVcdTg5MzNcdTg5M2NcdTg5M2VcdTg5NDFcdTg5NTJcdTg5MzdcdTg5'@; put 'NDJcdTg5YWRcdTg5YWZcdTg5YWVcdTg5ZjJcdTg5ZjNcdThiMWUiXSxbImVlYTEiLCJcdThiMThcdThiMTZcdThiMTFcdThiMDVcdThiMGJcdThiMjJcdThiMGZcdThiMTJcdThiMTVcdThiMDdcdThiMGRcdThiMDhcdThiMDZcdThiMWNcdThiMTNcdThiMWFcdThjNGZcdThjNzBcdThjNzJc'@; put 'dThjNzFcdThjNmZcdThjOTVcdThjOTRcdThjZjlcdThkNmZcdThlNGVcdThlNGRcdThlNTNcdThlNTBcdThlNGNcdThlNDdcdThmNDNcdThmNDBcdTkwODVcdTkwN2VcdTkxMzhcdTkxOWFcdTkxYTJcdTkxOWJcdTkxOTlcdTkxOWZcdTkxYTFcdTkxOWRcdTkxYTBcdTkzYTFcdTkzODNcdTkz'@; put 'YWZcdTkzNjRcdTkzNTZcdTkzNDdcdTkzN2NcdTkzNThcdTkzNWNcdTkzNzZcdTkzNDlcdTkzNTBcdTkzNTFcdTkzNjBcdTkzNmRcdTkzOGZcdTkzNGNcdTkzNmFcdTkzNzlcdTkzNTdcdTkzNTVcdTkzNTJcdTkzNGZcdTkzNzFcdTkzNzdcdTkzN2JcdTkzNjFcdTkzNWVcdTkzNjNcdTkzNjdc'@; put 'dTkzODBcdTkzNGVcdTkzNTlcdTk1YzdcdTk1YzBcdTk1YzlcdTk1YzNcdTk1YzVcdTk1YjdcdTk2YWVcdTk2YjBcdTk2YWNcdTk3MjBcdTk3MWZcdTk3MThcdTk3MWRcdTk3MTlcdTk3OWFcdTk3YTFcdTk3OWMiXSxbImVmNDAiLCJcdTk3OWVcdTk3OWRcdTk3ZDVcdTk3ZDRcdTk3ZjFcdTk4'@; put 'NDFcdTk4NDRcdTk4NGFcdTk4NDlcdTk4NDVcdTk4NDNcdTk5MjVcdTk5MmJcdTk5MmNcdTk5MmFcdTk5MzNcdTk5MzJcdTk5MmZcdTk5MmRcdTk5MzFcdTk5MzBcdTk5OThcdTk5YTNcdTk5YTFcdTlhMDJcdTk5ZmFcdTk5ZjRcdTk5ZjdcdTk5ZjlcdTk5ZjhcdTk5ZjZcdTk5ZmJcdTk5ZmRc'@; put 'dTk5ZmVcdTk5ZmNcdTlhMDNcdTlhYmVcdTlhZmVcdTlhZmRcdTliMDFcdTlhZmNcdTliNDhcdTliOWFcdTliYThcdTliOWVcdTliOWJcdTliYTZcdTliYTFcdTliYTVcdTliYTRcdTliODZcdTliYTJcdTliYTBcdTliYWZcdTlkMzNcdTlkNDFcdTlkNjdcdTlkMzZcdTlkMmVcdTlkMmZcdTlk'@; put 'MzFcdTlkMzhcdTlkMzAiXSxbImVmYTEiLCJcdTlkNDVcdTlkNDJcdTlkNDNcdTlkM2VcdTlkMzdcdTlkNDBcdTlkM2RcdTdmZjVcdTlkMmRcdTllOGFcdTllODlcdTllOGRcdTllYjBcdTllYzhcdTllZGFcdTllZmJcdTllZmZcdTlmMjRcdTlmMjNcdTlmMjJcdTlmNTRcdTlmYTBcdTUxMzFc'@; put 'dTUxMmRcdTUxMmVcdTU2OThcdTU2OWNcdTU2OTdcdTU2OWFcdTU2OWRcdTU2OTlcdTU5NzBcdTViM2NcdTVjNjlcdTVjNmFcdTVkYzBcdTVlNmRcdTVlNmVcdTYxZDhcdTYxZGZcdTYxZWRcdTYxZWVcdTYxZjFcdTYxZWFcdTYxZjBcdTYxZWJcdTYxZDZcdTYxZTlcdTY0ZmZcdTY1MDRcdTY0'@; put 'ZmRcdTY0ZjhcdTY1MDFcdTY1MDNcdTY0ZmNcdTY1OTRcdTY1ZGJcdTY2ZGFcdTY2ZGJcdTY2ZDhcdTZhYzVcdTZhYjlcdTZhYmRcdTZhZTFcdTZhYzZcdTZhYmFcdTZhYjZcdTZhYjdcdTZhYzdcdTZhYjRcdTZhYWRcdTZiNWVcdTZiYzlcdTZjMGJcdTcwMDdcdTcwMGNcdTcwMGRcdTcwMDFc'@; put 'dTcwMDVcdTcwMTRcdTcwMGVcdTZmZmZcdTcwMDBcdTZmZmJcdTcwMjZcdTZmZmNcdTZmZjdcdTcwMGFcdTcyMDFcdTcxZmZcdTcxZjlcdTcyMDNcdTcxZmRcdTczNzYiXSxbImYwNDAiLCJcdTc0YjhcdTc0YzBcdTc0YjVcdTc0YzFcdTc0YmVcdTc0YjZcdTc0YmJcdTc0YzJcdTc1MTRcdTc1'@; put 'MTNcdTc2NWNcdTc2NjRcdTc2NTlcdTc2NTBcdTc2NTNcdTc2NTdcdTc2NWFcdTc2YTZcdTc2YmRcdTc2ZWNcdTc3YzJcdTc3YmFcdTc4ZmZcdTc5MGNcdTc5MTNcdTc5MTRcdTc5MDlcdTc5MTBcdTc5MTJcdTc5MTFcdTc5YWRcdTc5YWNcdTdhNWZcdTdjMWNcdTdjMjlcdTdjMTlcdTdjMjBc'@; put 'dTdjMWZcdTdjMmRcdTdjMWRcdTdjMjZcdTdjMjhcdTdjMjJcdTdjMjVcdTdjMzBcdTdlNWNcdTdlNTBcdTdlNTZcdTdlNjNcdTdlNThcdTdlNjJcdTdlNWZcdTdlNTFcdTdlNjBcdTdlNTdcdTdlNTNcdTdmYjVcdTdmYjNcdTdmZjdcdTdmZjhcdTgwNzVcdTgxZDFcdTgxZDIiXSxbImYwYTEi'@; put 'LCJcdTgxZDBcdTgyNWZcdTgyNWVcdTg1YjRcdTg1YzZcdTg1YzBcdTg1YzNcdTg1YzJcdTg1YjNcdTg1YjVcdTg1YmRcdTg1YzdcdTg1YzRcdTg1YmZcdTg1Y2JcdTg1Y2VcdTg1YzhcdTg1YzVcdTg1YjFcdTg1YjZcdTg1ZDJcdTg2MjRcdTg1YjhcdTg1YjdcdTg1YmVcdTg2NjlcdTg3ZTdc'@; put 'dTg3ZTZcdTg3ZTJcdTg3ZGJcdTg3ZWJcdTg3ZWFcdTg3ZTVcdTg3ZGZcdTg3ZjNcdTg3ZTRcdTg3ZDRcdTg3ZGNcdTg3ZDNcdTg3ZWRcdTg3ZDhcdTg3ZTNcdTg3YTRcdTg3ZDdcdTg3ZDlcdTg4MDFcdTg3ZjRcdTg3ZThcdTg3ZGRcdTg5NTNcdTg5NGJcdTg5NGZcdTg5NGNcdTg5NDZcdTg5'@; put 'NTBcdTg5NTFcdTg5NDlcdThiMmFcdThiMjdcdThiMjNcdThiMzNcdThiMzBcdThiMzVcdThiNDdcdThiMmZcdThiM2NcdThiM2VcdThiMzFcdThiMjVcdThiMzdcdThiMjZcdThiMzZcdThiMmVcdThiMjRcdThiM2JcdThiM2RcdThiM2FcdThjNDJcdThjNzVcdThjOTlcdThjOThcdThjOTdc'@; put 'dThjZmVcdThkMDRcdThkMDJcdThkMDBcdThlNWNcdThlNjJcdThlNjBcdThlNTdcdThlNTZcdThlNWVcdThlNjVcdThlNjciXSxbImYxNDAiLCJcdThlNWJcdThlNWFcdThlNjFcdThlNWRcdThlNjlcdThlNTRcdThmNDZcdThmNDdcdThmNDhcdThmNGJcdTkxMjhcdTkxM2FcdTkxM2JcdTkx'@; put 'M2VcdTkxYThcdTkxYTVcdTkxYTdcdTkxYWZcdTkxYWFcdTkzYjVcdTkzOGNcdTkzOTJcdTkzYjdcdTkzOWJcdTkzOWRcdTkzODlcdTkzYTdcdTkzOGVcdTkzYWFcdTkzOWVcdTkzYTZcdTkzOTVcdTkzODhcdTkzOTlcdTkzOWZcdTkzOGRcdTkzYjFcdTkzOTFcdTkzYjJcdTkzYTRcdTkzYThc'@; put 'dTkzYjRcdTkzYTNcdTkzYTVcdTk1ZDJcdTk1ZDNcdTk1ZDFcdTk2YjNcdTk2ZDdcdTk2ZGFcdTVkYzJcdTk2ZGZcdTk2ZDhcdTk2ZGRcdTk3MjNcdTk3MjJcdTk3MjVcdTk3YWNcdTk3YWVcdTk3YThcdTk3YWJcdTk3YTRcdTk3YWEiXSxbImYxYTEiLCJcdTk3YTJcdTk3YTVcdTk3ZDdcdTk3'@; put 'ZDlcdTk3ZDZcdTk3ZDhcdTk3ZmFcdTk4NTBcdTk4NTFcdTk4NTJcdTk4YjhcdTk5NDFcdTk5M2NcdTk5M2FcdTlhMGZcdTlhMGJcdTlhMDlcdTlhMGRcdTlhMDRcdTlhMTFcdTlhMGFcdTlhMDVcdTlhMDdcdTlhMDZcdTlhYzBcdTlhZGNcdTliMDhcdTliMDRcdTliMDVcdTliMjlcdTliMzVc'@; put 'dTliNGFcdTliNGNcdTliNGJcdTliYzdcdTliYzZcdTliYzNcdTliYmZcdTliYzFcdTliYjVcdTliYjhcdTliZDNcdTliYjZcdTliYzRcdTliYjlcdTliYmRcdTlkNWNcdTlkNTNcdTlkNGZcdTlkNGFcdTlkNWJcdTlkNGJcdTlkNTlcdTlkNTZcdTlkNGNcdTlkNTdcdTlkNTJcdTlkNTRcdTlk'@; put 'NWZcdTlkNThcdTlkNWFcdTllOGVcdTllOGNcdTllZGZcdTlmMDFcdTlmMDBcdTlmMTZcdTlmMjVcdTlmMmJcdTlmMmFcdTlmMjlcdTlmMjhcdTlmNGNcdTlmNTVcdTUxMzRcdTUxMzVcdTUyOTZcdTUyZjdcdTUzYjRcdTU2YWJcdTU2YWRcdTU2YTZcdTU2YTdcdTU2YWFcdTU2YWNcdTU4ZGFc'@; put 'dTU4ZGRcdTU4ZGJcdTU5MTJcdTViM2RcdTViM2VcdTViM2ZcdTVkYzNcdTVlNzAiXSxbImYyNDAiLCJcdTVmYmZcdTYxZmJcdTY1MDdcdTY1MTBcdTY1MGRcdTY1MDlcdTY1MGNcdTY1MGVcdTY1ODRcdTY1ZGVcdTY1ZGRcdTY2ZGVcdTZhZTdcdTZhZTBcdTZhY2NcdTZhZDFcdTZhZDlcdTZh'@; put 'Y2JcdTZhZGZcdTZhZGNcdTZhZDBcdTZhZWJcdTZhY2ZcdTZhY2RcdTZhZGVcdTZiNjBcdTZiYjBcdTZjMGNcdTcwMTlcdTcwMjdcdTcwMjBcdTcwMTZcdTcwMmJcdTcwMjFcdTcwMjJcdTcwMjNcdTcwMjlcdTcwMTdcdTcwMjRcdTcwMWNcdTcwMmFcdTcyMGNcdTcyMGFcdTcyMDdcdTcyMDJc'@; put 'dTcyMDVcdTcyYTVcdTcyYTZcdTcyYTRcdTcyYTNcdTcyYTFcdTc0Y2JcdTc0YzVcdTc0YjdcdTc0YzNcdTc1MTZcdTc2NjBcdTc3YzlcdTc3Y2FcdTc3YzRcdTc3ZjFcdTc5MWRcdTc5MWIiXSxbImYyYTEiLCJcdTc5MjFcdTc5MWNcdTc5MTdcdTc5MWVcdTc5YjBcdTdhNjdcdTdhNjhcdTdj'@; put 'MzNcdTdjM2NcdTdjMzlcdTdjMmNcdTdjM2JcdTdjZWNcdTdjZWFcdTdlNzZcdTdlNzVcdTdlNzhcdTdlNzBcdTdlNzdcdTdlNmZcdTdlN2FcdTdlNzJcdTdlNzRcdTdlNjhcdTdmNGJcdTdmNGFcdTdmODNcdTdmODZcdTdmYjdcdTdmZmRcdTdmZmVcdTgwNzhcdTgxZDdcdTgxZDVcdTgyNjRc'@; put 'dTgyNjFcdTgyNjNcdTg1ZWJcdTg1ZjFcdTg1ZWRcdTg1ZDlcdTg1ZTFcdTg1ZThcdTg1ZGFcdTg1ZDdcdTg1ZWNcdTg1ZjJcdTg1ZjhcdTg1ZDhcdTg1ZGZcdTg1ZTNcdTg1ZGNcdTg1ZDFcdTg1ZjBcdTg1ZTZcdTg1ZWZcdTg1ZGVcdTg1ZTJcdTg4MDBcdTg3ZmFcdTg4MDNcdTg3ZjZcdTg3'@; put 'ZjdcdTg4MDlcdTg4MGNcdTg4MGJcdTg4MDZcdTg3ZmNcdTg4MDhcdTg3ZmZcdTg4MGFcdTg4MDJcdTg5NjJcdTg5NWFcdTg5NWJcdTg5NTdcdTg5NjFcdTg5NWNcdTg5NThcdTg5NWRcdTg5NTlcdTg5ODhcdTg5YjdcdTg5YjZcdTg5ZjZcdThiNTBcdThiNDhcdThiNGFcdThiNDBcdThiNTNc'@; put 'dThiNTZcdThiNTRcdThiNGJcdThiNTUiXSxbImYzNDAiLCJcdThiNTFcdThiNDJcdThiNTJcdThiNTdcdThjNDNcdThjNzdcdThjNzZcdThjOWFcdThkMDZcdThkMDdcdThkMDlcdThkYWNcdThkYWFcdThkYWRcdThkYWJcdThlNmRcdThlNzhcdThlNzNcdThlNmFcdThlNmZcdThlN2JcdThl'@; put 'YzJcdThmNTJcdThmNTFcdThmNGZcdThmNTBcdThmNTNcdThmYjRcdTkxNDBcdTkxM2ZcdTkxYjBcdTkxYWRcdTkzZGVcdTkzYzdcdTkzY2ZcdTkzYzJcdTkzZGFcdTkzZDBcdTkzZjlcdTkzZWNcdTkzY2NcdTkzZDlcdTkzYTlcdTkzZTZcdTkzY2FcdTkzZDRcdTkzZWVcdTkzZTNcdTkzZDVc'@; put 'dTkzYzRcdTkzY2VcdTkzYzBcdTkzZDJcdTkzZTdcdTk1N2RcdTk1ZGFcdTk1ZGJcdTk2ZTFcdTk3MjlcdTk3MmJcdTk3MmNcdTk3MjhcdTk3MjYiXSxbImYzYTEiLCJcdTk3YjNcdTk3YjdcdTk3YjZcdTk3ZGRcdTk3ZGVcdTk3ZGZcdTk4NWNcdTk4NTlcdTk4NWRcdTk4NTdcdTk4YmZcdTk4'@; put 'YmRcdTk4YmJcdTk4YmVcdTk5NDhcdTk5NDdcdTk5NDNcdTk5YTZcdTk5YTdcdTlhMWFcdTlhMTVcdTlhMjVcdTlhMWRcdTlhMjRcdTlhMWJcdTlhMjJcdTlhMjBcdTlhMjdcdTlhMjNcdTlhMWVcdTlhMWNcdTlhMTRcdTlhYzJcdTliMGJcdTliMGFcdTliMGVcdTliMGNcdTliMzdcdTliZWFc'@; put 'dTliZWJcdTliZTBcdTliZGVcdTliZTRcdTliZTZcdTliZTJcdTliZjBcdTliZDRcdTliZDdcdTliZWNcdTliZGNcdTliZDlcdTliZTVcdTliZDVcdTliZTFcdTliZGFcdTlkNzdcdTlkODFcdTlkOGFcdTlkODRcdTlkODhcdTlkNzFcdTlkODBcdTlkNzhcdTlkODZcdTlkOGJcdTlkOGNcdTlk'@; put 'N2RcdTlkNmJcdTlkNzRcdTlkNzVcdTlkNzBcdTlkNjlcdTlkODVcdTlkNzNcdTlkN2JcdTlkODJcdTlkNmZcdTlkNzlcdTlkN2ZcdTlkODdcdTlkNjhcdTllOTRcdTllOTFcdTllYzBcdTllZmNcdTlmMmRcdTlmNDBcdTlmNDFcdTlmNGRcdTlmNTZcdTlmNTdcdTlmNThcdTUzMzdcdTU2YjIi'@; put 'XSxbImY0NDAiLCJcdTU2YjVcdTU2YjNcdTU4ZTNcdTViNDVcdTVkYzZcdTVkYzdcdTVlZWVcdTVlZWZcdTVmYzBcdTVmYzFcdTYxZjlcdTY1MTdcdTY1MTZcdTY1MTVcdTY1MTNcdTY1ZGZcdTY2ZThcdTY2ZTNcdTY2ZTRcdTZhZjNcdTZhZjBcdTZhZWFcdTZhZThcdTZhZjlcdTZhZjFcdTZh'@; put 'ZWVcdTZhZWZcdTcwM2NcdTcwMzVcdTcwMmZcdTcwMzdcdTcwMzRcdTcwMzFcdTcwNDJcdTcwMzhcdTcwM2ZcdTcwM2FcdTcwMzlcdTcwNDBcdTcwM2JcdTcwMzNcdTcwNDFcdTcyMTNcdTcyMTRcdTcyYThcdTczN2RcdTczN2NcdTc0YmFcdTc2YWJcdTc2YWFcdTc2YmVcdTc2ZWRcdTc3Y2Nc'@; put 'dTc3Y2VcdTc3Y2ZcdTc3Y2RcdTc3ZjJcdTc5MjVcdTc5MjNcdTc5MjdcdTc5MjhcdTc5MjRcdTc5MjkiXSxbImY0YTEiLCJcdTc5YjJcdTdhNmVcdTdhNmNcdTdhNmRcdTdhZjdcdTdjNDlcdTdjNDhcdTdjNGFcdTdjNDdcdTdjNDVcdTdjZWVcdTdlN2JcdTdlN2VcdTdlODFcdTdlODBcdTdm'@; put 'YmFcdTdmZmZcdTgwNzlcdTgxZGJcdTgxZDlcdTgyMGJcdTgyNjhcdTgyNjlcdTg2MjJcdTg1ZmZcdTg2MDFcdTg1ZmVcdTg2MWJcdTg2MDBcdTg1ZjZcdTg2MDRcdTg2MDlcdTg2MDVcdTg2MGNcdTg1ZmRcdTg4MTlcdTg4MTBcdTg4MTFcdTg4MTdcdTg4MTNcdTg4MTZcdTg5NjNcdTg5NjZc'@; put 'dTg5YjlcdTg5ZjdcdThiNjBcdThiNmFcdThiNWRcdThiNjhcdThiNjNcdThiNjVcdThiNjdcdThiNmRcdThkYWVcdThlODZcdThlODhcdThlODRcdThmNTlcdThmNTZcdThmNTdcdThmNTVcdThmNThcdThmNWFcdTkwOGRcdTkxNDNcdTkxNDFcdTkxYjdcdTkxYjVcdTkxYjJcdTkxYjNcdTk0'@; put 'MGJcdTk0MTNcdTkzZmJcdTk0MjBcdTk0MGZcdTk0MTRcdTkzZmVcdTk0MTVcdTk0MTBcdTk0MjhcdTk0MTlcdTk0MGRcdTkzZjVcdTk0MDBcdTkzZjdcdTk0MDdcdTk0MGVcdTk0MTZcdTk0MTJcdTkzZmFcdTk0MDlcdTkzZjhcdTk0MGFcdTkzZmYiXSxbImY1NDAiLCJcdTkzZmNcdTk0MGNc'@; put 'dTkzZjZcdTk0MTFcdTk0MDZcdTk1ZGVcdTk1ZTBcdTk1ZGZcdTk3MmVcdTk3MmZcdTk3YjlcdTk3YmJcdTk3ZmRcdTk3ZmVcdTk4NjBcdTk4NjJcdTk4NjNcdTk4NWZcdTk4YzFcdTk4YzJcdTk5NTBcdTk5NGVcdTk5NTlcdTk5NGNcdTk5NGJcdTk5NTNcdTlhMzJcdTlhMzRcdTlhMzFcdTlh'@; put 'MmNcdTlhMmFcdTlhMzZcdTlhMjlcdTlhMmVcdTlhMzhcdTlhMmRcdTlhYzdcdTlhY2FcdTlhYzZcdTliMTBcdTliMTJcdTliMTFcdTljMGJcdTljMDhcdTliZjdcdTljMDVcdTljMTJcdTliZjhcdTljNDBcdTljMDdcdTljMGVcdTljMDZcdTljMTdcdTljMTRcdTljMDlcdTlkOWZcdTlkOTlc'@; put 'dTlkYTRcdTlkOWRcdTlkOTJcdTlkOThcdTlkOTBcdTlkOWIiXSxbImY1YTEiLCJcdTlkYTBcdTlkOTRcdTlkOWNcdTlkYWFcdTlkOTdcdTlkYTFcdTlkOWFcdTlkYTJcdTlkYThcdTlkOWVcdTlkYTNcdTlkYmZcdTlkYTlcdTlkOTZcdTlkYTZcdTlkYTdcdTllOTlcdTllOWJcdTllOWFcdTll'@; put 'ZTVcdTllZTRcdTllZTdcdTllZTZcdTlmMzBcdTlmMmVcdTlmNWJcdTlmNjBcdTlmNWVcdTlmNWRcdTlmNTlcdTlmOTFcdTUxM2FcdTUxMzlcdTUyOThcdTUyOTdcdTU2YzNcdTU2YmRcdTU2YmVcdTViNDhcdTViNDdcdTVkY2JcdTVkY2ZcdTVlZjFcdTYxZmRcdTY1MWJcdTZiMDJcdTZhZmNc'@; put 'dTZiMDNcdTZhZjhcdTZiMDBcdTcwNDNcdTcwNDRcdTcwNGFcdTcwNDhcdTcwNDlcdTcwNDVcdTcwNDZcdTcyMWRcdTcyMWFcdTcyMTlcdTczN2VcdTc1MTdcdTc2NmFcdTc3ZDBcdTc5MmRcdTc5MzFcdTc5MmZcdTdjNTRcdTdjNTNcdTdjZjJcdTdlOGFcdTdlODdcdTdlODhcdTdlOGJcdTdl'@; put 'ODZcdTdlOGRcdTdmNGRcdTdmYmJcdTgwMzBcdTgxZGRcdTg2MThcdTg2MmFcdTg2MjZcdTg2MWZcdTg2MjNcdTg2MWNcdTg2MTlcdTg2MjdcdTg2MmVcdTg2MjFcdTg2MjBcdTg2MjlcdTg2MWVcdTg2MjUiXSxbImY2NDAiLCJcdTg4MjlcdTg4MWRcdTg4MWJcdTg4MjBcdTg4MjRcdTg4MWNc'@; put 'dTg4MmJcdTg4NGFcdTg5NmRcdTg5NjlcdTg5NmVcdTg5NmJcdTg5ZmFcdThiNzlcdThiNzhcdThiNDVcdThiN2FcdThiN2JcdThkMTBcdThkMTRcdThkYWZcdThlOGVcdThlOGNcdThmNWVcdThmNWJcdThmNWRcdTkxNDZcdTkxNDRcdTkxNDVcdTkxYjlcdTk0M2ZcdTk0M2JcdTk0MzZcdTk0'@; put 'MjlcdTk0M2RcdTk0M2NcdTk0MzBcdTk0MzlcdTk0MmFcdTk0MzdcdTk0MmNcdTk0NDBcdTk0MzFcdTk1ZTVcdTk1ZTRcdTk1ZTNcdTk3MzVcdTk3M2FcdTk3YmZcdTk3ZTFcdTk4NjRcdTk4YzlcdTk4YzZcdTk4YzBcdTk5NThcdTk5NTZcdTlhMzlcdTlhM2RcdTlhNDZcdTlhNDRcdTlhNDJc'@; put 'dTlhNDFcdTlhM2EiXSxbImY2YTEiLCJcdTlhM2ZcdTlhY2RcdTliMTVcdTliMTdcdTliMThcdTliMTZcdTliM2FcdTliNTJcdTljMmJcdTljMWRcdTljMWNcdTljMmNcdTljMjNcdTljMjhcdTljMjlcdTljMjRcdTljMjFcdTlkYjdcdTlkYjZcdTlkYmNcdTlkYzFcdTlkYzdcdTlkY2FcdTlk'@; put 'Y2ZcdTlkYmVcdTlkYzVcdTlkYzNcdTlkYmJcdTlkYjVcdTlkY2VcdTlkYjlcdTlkYmFcdTlkYWNcdTlkYzhcdTlkYjFcdTlkYWRcdTlkY2NcdTlkYjNcdTlkY2RcdTlkYjJcdTllN2FcdTllOWNcdTllZWJcdTllZWVcdTllZWRcdTlmMWJcdTlmMThcdTlmMWFcdTlmMzFcdTlmNGVcdTlmNjVc'@; put 'dTlmNjRcdTlmOTJcdTRlYjlcdTU2YzZcdTU2YzVcdTU2Y2JcdTU5NzFcdTViNGJcdTViNGNcdTVkZDVcdTVkZDFcdTVlZjJcdTY1MjFcdTY1MjBcdTY1MjZcdTY1MjJcdTZiMGJcdTZiMDhcdTZiMDlcdTZjMGRcdTcwNTVcdTcwNTZcdTcwNTdcdTcwNTJcdTcyMWVcdTcyMWZcdTcyYTlcdTcz'@; put 'N2ZcdTc0ZDhcdTc0ZDVcdTc0ZDlcdTc0ZDdcdTc2NmRcdTc2YWRcdTc5MzVcdTc5YjRcdTdhNzBcdTdhNzFcdTdjNTdcdTdjNWNcdTdjNTlcdTdjNWJcdTdjNWEiXSxbImY3NDAiLCJcdTdjZjRcdTdjZjFcdTdlOTFcdTdmNGZcdTdmODdcdTgxZGVcdTgyNmJcdTg2MzRcdTg2MzVcdTg2MzNc'@; put 'dTg2MmNcdTg2MzJcdTg2MzZcdTg4MmNcdTg4MjhcdTg4MjZcdTg4MmFcdTg4MjVcdTg5NzFcdTg5YmZcdTg5YmVcdTg5ZmJcdThiN2VcdThiODRcdThiODJcdThiODZcdThiODVcdThiN2ZcdThkMTVcdThlOTVcdThlOTRcdThlOWFcdThlOTJcdThlOTBcdThlOTZcdThlOTdcdThmNjBcdThm'@; put 'NjJcdTkxNDdcdTk0NGNcdTk0NTBcdTk0NGFcdTk0NGJcdTk0NGZcdTk0NDdcdTk0NDVcdTk0NDhcdTk0NDlcdTk0NDZcdTk3M2ZcdTk3ZTNcdTk4NmFcdTk4NjlcdTk4Y2JcdTk5NTRcdTk5NWJcdTlhNGVcdTlhNTNcdTlhNTRcdTlhNGNcdTlhNGZcdTlhNDhcdTlhNGEiXSxbImY3YTEiLCJc'@; put 'dTlhNDlcdTlhNTJcdTlhNTBcdTlhZDBcdTliMTlcdTliMmJcdTliM2JcdTliNTZcdTliNTVcdTljNDZcdTljNDhcdTljM2ZcdTljNDRcdTljMzlcdTljMzNcdTljNDFcdTljM2NcdTljMzdcdTljMzRcdTljMzJcdTljM2RcdTljMzZcdTlkZGJcdTlkZDJcdTlkZGVcdTlkZGFcdTlkY2JcdTlk'@; put 'ZDBcdTlkZGNcdTlkZDFcdTlkZGZcdTlkZTlcdTlkZDlcdTlkZDhcdTlkZDZcdTlkZjVcdTlkZDVcdTlkZGRcdTllYjZcdTllZjBcdTlmMzVcdTlmMzNcdTlmMzJcdTlmNDJcdTlmNmJcdTlmOTVcdTlmYTJcdTUxM2RcdTUyOTlcdTU4ZThcdTU4ZTdcdTU5NzJcdTViNGRcdTVkZDhcdTg4MmZc'@; put 'dTVmNGZcdTYyMDFcdTYyMDNcdTYyMDRcdTY1MjlcdTY1MjVcdTY1OTZcdTY2ZWJcdTZiMTFcdTZiMTJcdTZiMGZcdTZiY2FcdTcwNWJcdTcwNWFcdTcyMjJcdTczODJcdTczODFcdTczODNcdTc2NzBcdTc3ZDRcdTdjNjdcdTdjNjZcdTdlOTVcdTgyNmNcdTg2M2FcdTg2NDBcdTg2MzlcdTg2'@; put 'M2NcdTg2MzFcdTg2M2JcdTg2M2VcdTg4MzBcdTg4MzJcdTg4MmVcdTg4MzNcdTg5NzZcdTg5NzRcdTg5NzNcdTg5ZmUiXSxbImY4NDAiLCJcdThiOGNcdThiOGVcdThiOGJcdThiODhcdThjNDVcdThkMTlcdThlOThcdThmNjRcdThmNjNcdTkxYmNcdTk0NjJcdTk0NTVcdTk0NWRcdTk0NTdc'@; put 'dTk0NWVcdTk3YzRcdTk3YzVcdTk4MDBcdTlhNTZcdTlhNTlcdTliMWVcdTliMWZcdTliMjBcdTljNTJcdTljNThcdTljNTBcdTljNGFcdTljNGRcdTljNGJcdTljNTVcdTljNTlcdTljNGNcdTljNGVcdTlkZmJcdTlkZjdcdTlkZWZcdTlkZTNcdTlkZWJcdTlkZjhcdTlkZTRcdTlkZjZcdTlk'@; put 'ZTFcdTlkZWVcdTlkZTZcdTlkZjJcdTlkZjBcdTlkZTJcdTlkZWNcdTlkZjRcdTlkZjNcdTlkZThcdTlkZWRcdTllYzJcdTllZDBcdTllZjJcdTllZjNcdTlmMDZcdTlmMWNcdTlmMzhcdTlmMzdcdTlmMzZcdTlmNDNcdTlmNGYiXSxbImY4YTEiLCJcdTlmNzFcdTlmNzBcdTlmNmVcdTlmNmZc'@; put 'dTU2ZDNcdTU2Y2RcdTViNGVcdTVjNmRcdTY1MmRcdTY2ZWRcdTY2ZWVcdTZiMTNcdTcwNWZcdTcwNjFcdTcwNWRcdTcwNjBcdTcyMjNcdTc0ZGJcdTc0ZTVcdTc3ZDVcdTc5MzhcdTc5YjdcdTc5YjZcdTdjNmFcdTdlOTdcdTdmODlcdTgyNmRcdTg2NDNcdTg4MzhcdTg4MzdcdTg4MzVcdTg4'@; put 'NGJcdThiOTRcdThiOTVcdThlOWVcdThlOWZcdThlYTBcdThlOWRcdTkxYmVcdTkxYmRcdTkxYzJcdTk0NmJcdTk0NjhcdTk0NjlcdTk2ZTVcdTk3NDZcdTk3NDNcdTk3NDdcdTk3YzdcdTk3ZTVcdTlhNWVcdTlhZDVcdTliNTlcdTljNjNcdTljNjdcdTljNjZcdTljNjJcdTljNWVcdTljNjBc'@; put 'dTllMDJcdTlkZmVcdTllMDdcdTllMDNcdTllMDZcdTllMDVcdTllMDBcdTllMDFcdTllMDlcdTlkZmZcdTlkZmRcdTllMDRcdTllYTBcdTlmMWVcdTlmNDZcdTlmNzRcdTlmNzVcdTlmNzZcdTU2ZDRcdTY1MmVcdTY1YjhcdTZiMThcdTZiMTlcdTZiMTdcdTZiMWFcdTcwNjJcdTcyMjZcdTcy'@; put 'YWFcdTc3ZDhcdTc3ZDlcdTc5MzlcdTdjNjlcdTdjNmJcdTdjZjZcdTdlOWEiXSxbImY5NDAiLCJcdTdlOThcdTdlOWJcdTdlOTlcdTgxZTBcdTgxZTFcdTg2NDZcdTg2NDdcdTg2NDhcdTg5NzlcdTg5N2FcdTg5N2NcdTg5N2JcdTg5ZmZcdThiOThcdThiOTlcdThlYTVcdThlYTRcdThlYTNc'@; put 'dTk0NmVcdTk0NmRcdTk0NmZcdTk0NzFcdTk0NzNcdTk3NDlcdTk4NzJcdTk5NWZcdTljNjhcdTljNmVcdTljNmRcdTllMGJcdTllMGRcdTllMTBcdTllMGZcdTllMTJcdTllMTFcdTllYTFcdTllZjVcdTlmMDlcdTlmNDdcdTlmNzhcdTlmN2JcdTlmN2FcdTlmNzlcdTU3MWVcdTcwNjZcdTdj'@; put 'NmZcdTg4M2NcdThkYjJcdThlYTZcdTkxYzNcdTk0NzRcdTk0NzhcdTk0NzZcdTk0NzVcdTlhNjBcdTljNzRcdTljNzNcdTljNzFcdTljNzVcdTllMTRcdTllMTNcdTllZjZcdTlmMGEiXSxbImY5YTEiLCJcdTlmYTRcdTcwNjhcdTcwNjVcdTdjZjdcdTg2NmFcdTg4M2VcdTg4M2RcdTg4M2Zc'@; put 'dThiOWVcdThjOWNcdThlYTlcdThlYzlcdTk3NGJcdTk4NzNcdTk4NzRcdTk4Y2NcdTk5NjFcdTk5YWJcdTlhNjRcdTlhNjZcdTlhNjdcdTliMjRcdTllMTVcdTllMTdcdTlmNDhcdTYyMDdcdTZiMWVcdTcyMjdcdTg2NGNcdThlYThcdTk0ODJcdTk0ODBcdTk0ODFcdTlhNjlcdTlhNjhcdTli'@; put 'MmVcdTllMTlcdTcyMjlcdTg2NGJcdThiOWZcdTk0ODNcdTljNzlcdTllYjdcdTc2NzVcdTlhNmJcdTljN2FcdTllMWRcdTcwNjlcdTcwNmFcdTllYTRcdTlmN2VcdTlmNDlcdTlmOThcdTc4ODFcdTkyYjlcdTg4Y2ZcdTU4YmJcdTYwNTJcdTdjYTdcdTVhZmFcdTI1NTRcdTI1NjZcdTI1NTdc'@; put 'dTI1NjBcdTI1NmNcdTI1NjNcdTI1NWFcdTI1NjlcdTI1NWRcdTI1NTJcdTI1NjRcdTI1NTVcdTI1NWVcdTI1NmFcdTI1NjFcdTI1NThcdTI1NjdcdTI1NWJcdTI1NTNcdTI1NjVcdTI1NTZcdTI1NWZcdTI1NmJcdTI1NjJcdTI1NTlcdTI1NjhcdTI1NWNcdTI1NTFcdTI1NTBcdTI1NmRcdTI1'@; put 'NmVcdTI1NzBcdTI1NmZcdTI1OTMiXV0nKX0sNTY0MDY6Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz1KU09OLnBhcnNlKCdbWyIwIiwiXFx1MDAwMCIsMTI3XSxbIjhlYTEiLCJcdWZmNjEiLDYyXSxbImExYTEiLCJcdTMwMDBcdTMwMDFcdTMwMDJcdWZmMGNcdWZmMGVcdTMwZmJcdWZm'@; put 'MWFcdWZmMWJcdWZmMWZcdWZmMDFcdTMwOWJcdTMwOWNceGI0XHVmZjQwXHhhOFx1ZmYzZVx1ZmZlM1x1ZmYzZlx1MzBmZFx1MzBmZVx1MzA5ZFx1MzA5ZVx1MzAwM1x1NGVkZFx1MzAwNVx1MzAwNlx1MzAwN1x1MzBmY1x1MjAxNVx1MjAxMFx1ZmYwZlx1ZmYzY1x1ZmY1ZVx1MjIyNVx1ZmY1'@; put 'Y1x1MjAyNlx1MjAyNVx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1ZmYwOFx1ZmYwOVx1MzAxNFx1MzAxNVx1ZmYzYlx1ZmYzZFx1ZmY1Ylx1ZmY1ZFx1MzAwOCIsOSwiXHVmZjBiXHVmZjBkXHhiMVx4ZDdceGY3XHVmZjFkXHUyMjYwXHVmZjFjXHVmZjFlXHUyMjY2XHUyMjY3XHUyMjFlXHUy'@; put 'MjM0XHUyNjQyXHUyNjQwXHhiMFx1MjAzMlx1MjAzM1x1MjEwM1x1ZmZlNVx1ZmYwNFx1ZmZlMFx1ZmZlMVx1ZmYwNVx1ZmYwM1x1ZmYwNlx1ZmYwYVx1ZmYyMFx4YTdcdTI2MDZcdTI2MDVcdTI1Y2JcdTI1Y2ZcdTI1Y2VcdTI1YzciXSxbImEyYTEiLCJcdTI1YzZcdTI1YTFcdTI1YTBcdTI1'@; put 'YjNcdTI1YjJcdTI1YmRcdTI1YmNcdTIwM2JcdTMwMTJcdTIxOTJcdTIxOTBcdTIxOTFcdTIxOTNcdTMwMTMiXSxbImEyYmEiLCJcdTIyMDhcdTIyMGJcdTIyODZcdTIyODdcdTIyODJcdTIyODNcdTIyMmFcdTIyMjkiXSxbImEyY2EiLCJcdTIyMjdcdTIyMjhcdWZmZTJcdTIxZDJcdTIxZDRc'@; put 'dTIyMDBcdTIyMDMiXSxbImEyZGMiLCJcdTIyMjBcdTIyYTVcdTIzMTJcdTIyMDJcdTIyMDdcdTIyNjFcdTIyNTJcdTIyNmFcdTIyNmJcdTIyMWFcdTIyM2RcdTIyMWRcdTIyMzVcdTIyMmJcdTIyMmMiXSxbImEyZjIiLCJcdTIxMmJcdTIwMzBcdTI2NmZcdTI2NmRcdTI2NmFcdTIwMjBcdTIw'@; put 'MjFceGI2Il0sWyJhMmZlIiwiXHUyNWVmIl0sWyJhM2IwIiwiXHVmZjEwIiw5XSxbImEzYzEiLCJcdWZmMjEiLDI1XSxbImEzZTEiLCJcdWZmNDEiLDI1XSxbImE0YTEiLCJcdTMwNDEiLDgyXSxbImE1YTEiLCJcdTMwYTEiLDg1XSxbImE2YTEiLCJcdTAzOTEiLDE2LCJcdTAzYTMiLDZdLFsi'@; put 'YTZjMSIsIlx1MDNiMSIsMTYsIlx1MDNjMyIsNl0sWyJhN2ExIiwiXHUwNDEwIiw1LCJcdTA0MDFcdTA0MTYiLDI1XSxbImE3ZDEiLCJcdTA0MzAiLDUsIlx1MDQ1MVx1MDQzNiIsMjVdLFsiYThhMSIsIlx1MjUwMFx1MjUwMlx1MjUwY1x1MjUxMFx1MjUxOFx1MjUxNFx1MjUxY1x1MjUyY1x1'@; put 'MjUyNFx1MjUzNFx1MjUzY1x1MjUwMVx1MjUwM1x1MjUwZlx1MjUxM1x1MjUxYlx1MjUxN1x1MjUyM1x1MjUzM1x1MjUyYlx1MjUzYlx1MjU0Ylx1MjUyMFx1MjUyZlx1MjUyOFx1MjUzN1x1MjUzZlx1MjUxZFx1MjUzMFx1MjUyNVx1MjUzOFx1MjU0MiJdLFsiYWRhMSIsIlx1MjQ2MCIsMTks'@; put 'Ilx1MjE2MCIsOV0sWyJhZGMwIiwiXHUzMzQ5XHUzMzE0XHUzMzIyXHUzMzRkXHUzMzE4XHUzMzI3XHUzMzAzXHUzMzM2XHUzMzUxXHUzMzU3XHUzMzBkXHUzMzI2XHUzMzIzXHUzMzJiXHUzMzRhXHUzMzNiXHUzMzljXHUzMzlkXHUzMzllXHUzMzhlXHUzMzhmXHUzM2M0XHUzM2ExIl0sWyJh'@; put 'ZGRmIiwiXHUzMzdiXHUzMDFkXHUzMDFmXHUyMTE2XHUzM2NkXHUyMTIxXHUzMmE0Iiw0LCJcdTMyMzFcdTMyMzJcdTMyMzlcdTMzN2VcdTMzN2RcdTMzN2NcdTIyNTJcdTIyNjFcdTIyMmJcdTIyMmVcdTIyMTFcdTIyMWFcdTIyYTVcdTIyMjBcdTIyMWZcdTIyYmZcdTIyMzVcdTIyMjlcdTIy'@; put 'MmEiXSxbImIwYTEiLCJcdTRlOWNcdTU1MTZcdTVhMDNcdTk2M2ZcdTU0YzBcdTYxMWJcdTYzMjhcdTU5ZjZcdTkwMjJcdTg0NzVcdTgzMWNcdTdhNTBcdTYwYWFcdTYzZTFcdTZlMjVcdTY1ZWRcdTg0NjZcdTgyYTZcdTliZjVcdTY4OTNcdTU3MjdcdTY1YTFcdTYyNzFcdTViOWJcdTU5ZDBc'@; put 'dTg2N2JcdTk4ZjRcdTdkNjJcdTdkYmVcdTliOGVcdTYyMTZcdTdjOWZcdTg4YjdcdTViODlcdTVlYjVcdTYzMDlcdTY2OTdcdTY4NDhcdTk1YzdcdTk3OGRcdTY3NGZcdTRlZTVcdTRmMGFcdTRmNGRcdTRmOWRcdTUwNDlcdTU2ZjJcdTU5MzdcdTU5ZDRcdTVhMDFcdTVjMDlcdTYwZGZcdTYx'@; put 'MGZcdTYxNzBcdTY2MTNcdTY5MDVcdTcwYmFcdTc1NGZcdTc1NzBcdTc5ZmJcdTdkYWRcdTdkZWZcdTgwYzNcdTg0MGVcdTg4NjNcdThiMDJcdTkwNTVcdTkwN2FcdTUzM2JcdTRlOTVcdTRlYTVcdTU3ZGZcdTgwYjJcdTkwYzFcdTc4ZWZcdTRlMDBcdTU4ZjFcdTZlYTJcdTkwMzhcdTdhMzJc'@; put 'dTgzMjhcdTgyOGJcdTljMmZcdTUxNDFcdTUzNzBcdTU0YmRcdTU0ZTFcdTU2ZTBcdTU5ZmJcdTVmMTVcdTk4ZjJcdTZkZWJcdTgwZTRcdTg1MmQiXSxbImIxYTEiLCJcdTk2NjJcdTk2NzBcdTk2YTBcdTk3ZmJcdTU0MGJcdTUzZjNcdTViODdcdTcwY2ZcdTdmYmRcdThmYzJcdTk2ZThcdTUz'@; put 'NmZcdTlkNWNcdTdhYmFcdTRlMTFcdTc4OTNcdTgxZmNcdTZlMjZcdTU2MThcdTU1MDRcdTZiMWRcdTg1MWFcdTljM2JcdTU5ZTVcdTUzYTlcdTZkNjZcdTc0ZGNcdTk1OGZcdTU2NDJcdTRlOTFcdTkwNGJcdTk2ZjJcdTgzNGZcdTk5MGNcdTUzZTFcdTU1YjZcdTViMzBcdTVmNzFcdTY2MjBc'@; put 'dTY2ZjNcdTY4MDRcdTZjMzhcdTZjZjNcdTZkMjlcdTc0NWJcdTc2YzhcdTdhNGVcdTk4MzRcdTgyZjFcdTg4NWJcdThhNjBcdTkyZWRcdTZkYjJcdTc1YWJcdTc2Y2FcdTk5YzVcdTYwYTZcdThiMDFcdThkOGFcdTk1YjJcdTY5OGVcdTUzYWRcdTUxODZcdTU3MTJcdTU4MzBcdTU5NDRcdTVi'@; put 'YjRcdTVlZjZcdTYwMjhcdTYzYTlcdTYzZjRcdTZjYmZcdTZmMTRcdTcwOGVcdTcxMTRcdTcxNTlcdTcxZDVcdTczM2ZcdTdlMDFcdTgyNzZcdTgyZDFcdTg1OTdcdTkwNjBcdTkyNWJcdTlkMWJcdTU4NjlcdTY1YmNcdTZjNWFcdTc1MjVcdTUxZjlcdTU5MmVcdTU5NjVcdTVmODBcdTVmZGMi'@; put 'XSxbImIyYTEiLCJcdTYyYmNcdTY1ZmFcdTZhMmFcdTZiMjdcdTZiYjRcdTczOGJcdTdmYzFcdTg5NTZcdTlkMmNcdTlkMGVcdTllYzRcdTVjYTFcdTZjOTZcdTgzN2JcdTUxMDRcdTVjNGJcdTYxYjZcdTgxYzZcdTY4NzZcdTcyNjFcdTRlNTlcdTRmZmFcdTUzNzhcdTYwNjlcdTZlMjlcdTdh'@; put 'NGZcdTk3ZjNcdTRlMGJcdTUzMTZcdTRlZWVcdTRmNTVcdTRmM2RcdTRmYTFcdTRmNzNcdTUyYTBcdTUzZWZcdTU2MDlcdTU5MGZcdTVhYzFcdTViYjZcdTViZTFcdTc5ZDFcdTY2ODdcdTY3OWNcdTY3YjZcdTZiNGNcdTZjYjNcdTcwNmJcdTczYzJcdTc5OGRcdTc5YmVcdTdhM2NcdTdiODdc'@; put 'dTgyYjFcdTgyZGJcdTgzMDRcdTgzNzdcdTgzZWZcdTgzZDNcdTg3NjZcdThhYjJcdTU2MjlcdThjYThcdThmZTZcdTkwNGVcdTk3MWVcdTg2OGFcdTRmYzRcdTVjZThcdTYyMTFcdTcyNTlcdTc1M2JcdTgxZTVcdTgyYmRcdTg2ZmVcdThjYzBcdTk2YzVcdTk5MTNcdTk5ZDVcdTRlY2JcdTRm'@; put 'MWFcdTg5ZTNcdTU2ZGVcdTU4NGFcdTU4Y2FcdTVlZmJcdTVmZWJcdTYwMmFcdTYwOTRcdTYwNjJcdTYxZDBcdTYyMTJcdTYyZDBcdTY1MzkiXSxbImIzYTEiLCJcdTliNDFcdTY2NjZcdTY4YjBcdTZkNzdcdTcwNzBcdTc1NGNcdTc2ODZcdTdkNzVcdTgyYTVcdTg3ZjlcdTk1OGJcdTk2OGVc'@; put 'dThjOWRcdTUxZjFcdTUyYmVcdTU5MTZcdTU0YjNcdTViYjNcdTVkMTZcdTYxNjhcdTY5ODJcdTZkYWZcdTc4OGRcdTg0Y2JcdTg4NTdcdThhNzJcdTkzYTdcdTlhYjhcdTZkNmNcdTk5YThcdTg2ZDlcdTU3YTNcdTY3ZmZcdTg2Y2VcdTkyMGVcdTUyODNcdTU2ODdcdTU0MDRcdTVlZDNcdTYy'@; put 'ZTFcdTY0YjlcdTY4M2NcdTY4MzhcdTZiYmJcdTczNzJcdTc4YmFcdTdhNmJcdTg5OWFcdTg5ZDJcdThkNmJcdThmMDNcdTkwZWRcdTk1YTNcdTk2OTRcdTk3NjlcdTViNjZcdTVjYjNcdTY5N2RcdTk4NGRcdTk4NGVcdTYzOWJcdTdiMjBcdTZhMmJcdTZhN2ZcdTY4YjZcdTljMGRcdTZmNWZc'@; put 'dTUyNzJcdTU1OWRcdTYwNzBcdTYyZWNcdTZkM2JcdTZlMDdcdTZlZDFcdTg0NWJcdTg5MTBcdThmNDRcdTRlMTRcdTljMzlcdTUzZjZcdTY5MWJcdTZhM2FcdTk3ODRcdTY4MmFcdTUxNWNcdTdhYzNcdTg0YjJcdTkxZGNcdTkzOGNcdTU2NWJcdTlkMjhcdTY4MjJcdTgzMDVcdTg0MzEiXSxb'@; put 'ImI0YTEiLCJcdTdjYTVcdTUyMDhcdTgyYzVcdTc0ZTZcdTRlN2VcdTRmODNcdTUxYTBcdTViZDJcdTUyMGFcdTUyZDhcdTUyZTdcdTVkZmJcdTU1OWFcdTU4MmFcdTU5ZTZcdTViOGNcdTViOThcdTViZGJcdTVlNzJcdTVlNzlcdTYwYTNcdTYxMWZcdTYxNjNcdTYxYmVcdTYzZGJcdTY1NjJc'@; put 'dTY3ZDFcdTY4NTNcdTY4ZmFcdTZiM2VcdTZiNTNcdTZjNTdcdTZmMjJcdTZmOTdcdTZmNDVcdTc0YjBcdTc1MThcdTc2ZTNcdTc3MGJcdTdhZmZcdTdiYTFcdTdjMjFcdTdkZTlcdTdmMzZcdTdmZjBcdTgwOWRcdTgyNjZcdTgzOWVcdTg5YjNcdThhY2NcdThjYWJcdTkwODRcdTk0NTFcdTk1'@; put 'OTNcdTk1OTFcdTk1YTJcdTk2NjVcdTk3ZDNcdTk5MjhcdTgyMThcdTRlMzhcdTU0MmJcdTVjYjhcdTVkY2NcdTczYTlcdTc2NGNcdTc3M2NcdTVjYTlcdTdmZWJcdThkMGJcdTk2YzFcdTk4MTFcdTk4NTRcdTk4NThcdTRmMDFcdTRmMGVcdTUzNzFcdTU1OWNcdTU2NjhcdTU3ZmFcdTU5NDdc'@; put 'dTViMDlcdTViYzRcdTVjOTBcdTVlMGNcdTVlN2VcdTVmY2NcdTYzZWVcdTY3M2FcdTY1ZDdcdTY1ZTJcdTY3MWZcdTY4Y2JcdTY4YzQiXSxbImI1YTEiLCJcdTZhNWZcdTVlMzBcdTZiYzVcdTZjMTdcdTZjN2RcdTc1N2ZcdTc5NDhcdTViNjNcdTdhMDBcdTdkMDBcdTVmYmRcdTg5OGZcdThh'@; put 'MThcdThjYjRcdThkNzdcdThlY2NcdThmMWRcdTk4ZTJcdTlhMGVcdTliM2NcdTRlODBcdTUwN2RcdTUxMDBcdTU5OTNcdTViOWNcdTYyMmZcdTYyODBcdTY0ZWNcdTZiM2FcdTcyYTBcdTc1OTFcdTc5NDdcdTdmYTlcdTg3ZmJcdThhYmNcdThiNzBcdTYzYWNcdTgzY2FcdTk3YTBcdTU0MDlc'@; put 'dTU0MDNcdTU1YWJcdTY4NTRcdTZhNThcdThhNzBcdTc4MjdcdTY3NzVcdTllY2RcdTUzNzRcdTViYTJcdTgxMWFcdTg2NTBcdTkwMDZcdTRlMThcdTRlNDVcdTRlYzdcdTRmMTFcdTUzY2FcdTU0MzhcdTViYWVcdTVmMTNcdTYwMjVcdTY1NTFcdTY3M2RcdTZjNDJcdTZjNzJcdTZjZTNcdTcw'@; put 'NzhcdTc0MDNcdTdhNzZcdTdhYWVcdTdiMDhcdTdkMWFcdTdjZmVcdTdkNjZcdTY1ZTdcdTcyNWJcdTUzYmJcdTVjNDVcdTVkZThcdTYyZDJcdTYyZTBcdTYzMTlcdTZlMjBcdTg2NWFcdThhMzFcdThkZGRcdTkyZjhcdTZmMDFcdTc5YTZcdTliNWFcdTRlYThcdTRlYWJcdTRlYWMiXSxbImI2'@; put 'YTEiLCJcdTRmOWJcdTRmYTBcdTUwZDFcdTUxNDdcdTdhZjZcdTUxNzFcdTUxZjZcdTUzNTRcdTUzMjFcdTUzN2ZcdTUzZWJcdTU1YWNcdTU4ODNcdTVjZTFcdTVmMzdcdTVmNGFcdTYwMmZcdTYwNTBcdTYwNmRcdTYzMWZcdTY1NTlcdTZhNGJcdTZjYzFcdTcyYzJcdTcyZWRcdTc3ZWZcdTgw'@; put 'ZjhcdTgxMDVcdTgyMDhcdTg1NGVcdTkwZjdcdTkzZTFcdTk3ZmZcdTk5NTdcdTlhNWFcdTRlZjBcdTUxZGRcdTVjMmRcdTY2ODFcdTY5NmRcdTVjNDBcdTY2ZjJcdTY5NzVcdTczODlcdTY4NTBcdTdjODFcdTUwYzVcdTUyZTRcdTU3NDdcdTVkZmVcdTkzMjZcdTY1YTRcdTZiMjNcdTZiM2Rc'@; put 'dTc0MzRcdTc5ODFcdTc5YmRcdTdiNGJcdTdkY2FcdTgyYjlcdTgzY2NcdTg4N2ZcdTg5NWZcdThiMzlcdThmZDFcdTkxZDFcdTU0MWZcdTkyODBcdTRlNWRcdTUwMzZcdTUzZTVcdTUzM2FcdTcyZDdcdTczOTZcdTc3ZTlcdTgyZTZcdThlYWZcdTk5YzZcdTk5YzhcdTk5ZDJcdTUxNzdcdTYx'@; put 'MWFcdTg2NWVcdTU1YjBcdTdhN2FcdTUwNzZcdTViZDNcdTkwNDdcdTk2ODVcdTRlMzJcdTZhZGJcdTkxZTdcdTVjNTFcdTVjNDgiXSxbImI3YTEiLCJcdTYzOThcdTdhOWZcdTZjOTNcdTk3NzRcdThmNjFcdTdhYWFcdTcxOGFcdTk2ODhcdTdjODJcdTY4MTdcdTdlNzBcdTY4NTFcdTkzNmNc'@; put 'dTUyZjJcdTU0MWJcdTg1YWJcdThhMTNcdTdmYTRcdThlY2RcdTkwZTFcdTUzNjZcdTg4ODhcdTc5NDFcdTRmYzJcdTUwYmVcdTUyMTFcdTUxNDRcdTU1NTNcdTU3MmRcdTczZWFcdTU3OGJcdTU5NTFcdTVmNjJcdTVmODRcdTYwNzVcdTYxNzZcdTYxNjdcdTYxYTlcdTYzYjJcdTY0M2FcdTY1'@; put 'NmNcdTY2NmZcdTY4NDJcdTZlMTNcdTc1NjZcdTdhM2RcdTdjZmJcdTdkNGNcdTdkOTlcdTdlNGJcdTdmNmJcdTgzMGVcdTgzNGFcdTg2Y2RcdThhMDhcdThhNjNcdThiNjZcdThlZmRcdTk4MWFcdTlkOGZcdTgyYjhcdThmY2VcdTliZThcdTUyODdcdTYyMWZcdTY0ODNcdTZmYzBcdTk2OTlc'@; put 'dTY4NDFcdTUwOTFcdTZiMjBcdTZjN2FcdTZmNTRcdTdhNzRcdTdkNTBcdTg4NDBcdThhMjNcdTY3MDhcdTRlZjZcdTUwMzlcdTUwMjZcdTUwNjVcdTUxN2NcdTUyMzhcdTUyNjNcdTU1YTdcdTU3MGZcdTU4MDVcdTVhY2NcdTVlZmFcdTYxYjJcdTYxZjhcdTYyZjNcdTYzNzIiXSxbImI4YTEi'@; put 'LCJcdTY5MWNcdTZhMjlcdTcyN2RcdTcyYWNcdTczMmVcdTc4MTRcdTc4NmZcdTdkNzlcdTc3MGNcdTgwYTlcdTg5OGJcdThiMTlcdThjZTJcdThlZDJcdTkwNjNcdTkzNzVcdTk2N2FcdTk4NTVcdTlhMTNcdTllNzhcdTUxNDNcdTUzOWZcdTUzYjNcdTVlN2JcdTVmMjZcdTZlMWJcdTZlOTBc'@; put 'dTczODRcdTczZmVcdTdkNDNcdTgyMzdcdThhMDBcdThhZmFcdTk2NTBcdTRlNGVcdTUwMGJcdTUzZTRcdTU0N2NcdTU2ZmFcdTU5ZDFcdTViNjRcdTVkZjFcdTVlYWJcdTVmMjdcdTYyMzhcdTY1NDVcdTY3YWZcdTZlNTZcdTcyZDBcdTdjY2FcdTg4YjRcdTgwYTFcdTgwZTFcdTgzZjBcdTg2'@; put 'NGVcdThhODdcdThkZThcdTkyMzdcdTk2YzdcdTk4NjdcdTlmMTNcdTRlOTRcdTRlOTJcdTRmMGRcdTUzNDhcdTU0NDlcdTU0M2VcdTVhMmZcdTVmOGNcdTVmYTFcdTYwOWZcdTY4YTdcdTZhOGVcdTc0NWFcdTc4ODFcdThhOWVcdThhYTRcdThiNzdcdTkxOTBcdTRlNWVcdTliYzlcdTRlYTRc'@; put 'dTRmN2NcdTRmYWZcdTUwMTlcdTUwMTZcdTUxNDlcdTUxNmNcdTUyOWZcdTUyYjlcdTUyZmVcdTUzOWFcdTUzZTNcdTU0MTEiXSxbImI5YTEiLCJcdTU0MGVcdTU1ODlcdTU3NTFcdTU3YTJcdTU5N2RcdTViNTRcdTViNWRcdTViOGZcdTVkZTVcdTVkZTdcdTVkZjdcdTVlNzhcdTVlODNcdTVl'@; put 'OWFcdTVlYjdcdTVmMThcdTYwNTJcdTYxNGNcdTYyOTdcdTYyZDhcdTYzYTdcdTY1M2JcdTY2MDJcdTY2NDNcdTY2ZjRcdTY3NmRcdTY4MjFcdTY4OTdcdTY5Y2JcdTZjNWZcdTZkMmFcdTZkNjlcdTZlMmZcdTZlOWRcdTc1MzJcdTc2ODdcdTc4NmNcdTdhM2ZcdTdjZTBcdTdkMDVcdTdkMThc'@; put 'dTdkNWVcdTdkYjFcdTgwMTVcdTgwMDNcdTgwYWZcdTgwYjFcdTgxNTRcdTgxOGZcdTgyMmFcdTgzNTJcdTg4NGNcdTg4NjFcdThiMWJcdThjYTJcdThjZmNcdTkwY2FcdTkxNzVcdTkyNzFcdTc4M2ZcdTkyZmNcdTk1YTRcdTk2NGRcdTk4MDVcdTk5OTlcdTlhZDhcdTlkM2JcdTUyNWJcdTUy'@; put 'YWJcdTUzZjdcdTU0MDhcdTU4ZDVcdTYyZjdcdTZmZTBcdThjNmFcdThmNWZcdTllYjlcdTUxNGJcdTUyM2JcdTU0NGFcdTU2ZmRcdTdhNDBcdTkxNzdcdTlkNjBcdTllZDJcdTczNDRcdTZmMDlcdTgxNzBcdTc1MTFcdTVmZmRcdTYwZGFcdTlhYThcdTcyZGJcdThmYmMiXSxbImJhYTEiLCJc'@; put 'dTZiNjRcdTk4MDNcdTRlY2FcdTU2ZjBcdTU3NjRcdTU4YmVcdTVhNWFcdTYwNjhcdTYxYzdcdTY2MGZcdTY2MDZcdTY4MzlcdTY4YjFcdTZkZjdcdTc1ZDVcdTdkM2FcdTgyNmVcdTliNDJcdTRlOWJcdTRmNTBcdTUzYzlcdTU1MDZcdTVkNmZcdTVkZTZcdTVkZWVcdTY3ZmJcdTZjOTlcdTc0'@; put 'NzNcdTc4MDJcdThhNTBcdTkzOTZcdTg4ZGZcdTU3NTBcdTVlYTdcdTYzMmJcdTUwYjVcdTUwYWNcdTUxOGRcdTY3MDBcdTU0YzlcdTU4NWVcdTU5YmJcdTViYjBcdTVmNjlcdTYyNGRcdTYzYTFcdTY4M2RcdTZiNzNcdTZlMDhcdTcwN2RcdTkxYzdcdTcyODBcdTc4MTVcdTc4MjZcdTc5NmRc'@; put 'dTY1OGVcdTdkMzBcdTgzZGNcdTg4YzFcdThmMDlcdTk2OWJcdTUyNjRcdTU3MjhcdTY3NTBcdTdmNmFcdThjYTFcdTUxYjRcdTU3NDJcdTk2MmFcdTU4M2FcdTY5OGFcdTgwYjRcdTU0YjJcdTVkMGVcdTU3ZmNcdTc4OTVcdTlkZmFcdTRmNWNcdTUyNGFcdTU0OGJcdTY0M2VcdTY2MjhcdTY3'@; put 'MTRcdTY3ZjVcdTdhODRcdTdiNTZcdTdkMjJcdTkzMmZcdTY4NWNcdTliYWRcdTdiMzlcdTUzMTlcdTUxOGFcdTUyMzciXSxbImJiYTEiLCJcdTViZGZcdTYyZjZcdTY0YWVcdTY0ZTZcdTY3MmRcdTZiYmFcdTg1YTlcdTk2ZDFcdTc2OTBcdTliZDZcdTYzNGNcdTkzMDZcdTliYWJcdTc2YmZc'@; put 'dTY2NTJcdTRlMDlcdTUwOThcdTUzYzJcdTVjNzFcdTYwZThcdTY0OTJcdTY1NjNcdTY4NWZcdTcxZTZcdTczY2FcdTc1MjNcdTdiOTdcdTdlODJcdTg2OTVcdThiODNcdThjZGJcdTkxNzhcdTk5MTBcdTY1YWNcdTY2YWJcdTZiOGJcdTRlZDVcdTRlZDRcdTRmM2FcdTRmN2ZcdTUyM2FcdTUz'@; put 'ZjhcdTUzZjJcdTU1ZTNcdTU2ZGJcdTU4ZWJcdTU5Y2JcdTU5YzlcdTU5ZmZcdTViNTBcdTVjNGRcdTVlMDJcdTVlMmJcdTVmZDdcdTYwMWRcdTYzMDdcdTY1MmZcdTViNWNcdTY1YWZcdTY1YmRcdTY1ZThcdTY3OWRcdTZiNjJcdTZiN2JcdTZjMGZcdTczNDVcdTc5NDlcdTc5YzFcdTdjZjhc'@; put 'dTdkMTlcdTdkMmJcdTgwYTJcdTgxMDJcdTgxZjNcdTg5OTZcdThhNWVcdThhNjlcdThhNjZcdThhOGNcdThhZWVcdThjYzdcdThjZGNcdTk2Y2NcdTk4ZmNcdTZiNmZcdTRlOGJcdTRmM2NcdTRmOGRcdTUxNTBcdTViNTdcdTViZmFcdTYxNDhcdTYzMDFcdTY2NDIiXSxbImJjYTEiLCJcdTZi'@; put 'MjFcdTZlY2JcdTZjYmJcdTcyM2VcdTc0YmRcdTc1ZDRcdTc4YzFcdTc5M2FcdTgwMGNcdTgwMzNcdTgxZWFcdTg0OTRcdThmOWVcdTZjNTBcdTllN2ZcdTVmMGZcdThiNThcdTlkMmJcdTdhZmFcdThlZjhcdTViOGRcdTk2ZWJcdTRlMDNcdTUzZjFcdTU3ZjdcdTU5MzFcdTVhYzlcdTViYTRc'@; put 'dTYwODlcdTZlN2ZcdTZmMDZcdTc1YmVcdThjZWFcdTViOWZcdTg1MDBcdTdiZTBcdTUwNzJcdTY3ZjRcdTgyOWRcdTVjNjFcdTg1NGFcdTdlMWVcdTgyMGVcdTUxOTlcdTVjMDRcdTYzNjhcdThkNjZcdTY1OWNcdTcxNmVcdTc5M2VcdTdkMTdcdTgwMDVcdThiMWRcdThlY2FcdTkwNmVcdTg2'@; put 'YzdcdTkwYWFcdTUwMWZcdTUyZmFcdTVjM2FcdTY3NTNcdTcwN2NcdTcyMzVcdTkxNGNcdTkxYzhcdTkzMmJcdTgyZTVcdTViYzJcdTVmMzFcdTYwZjlcdTRlM2JcdTUzZDZcdTViODhcdTYyNGJcdTY3MzFcdTZiOGFcdTcyZTlcdTczZTBcdTdhMmVcdTgxNmJcdThkYTNcdTkxNTJcdTk5OTZc'@; put 'dTUxMTJcdTUzZDdcdTU0NmFcdTViZmZcdTYzODhcdTZhMzlcdTdkYWNcdTk3MDBcdTU2ZGFcdTUzY2VcdTU0NjgiXSxbImJkYTEiLCJcdTViOTdcdTVjMzFcdTVkZGVcdTRmZWVcdTYxMDFcdTYyZmVcdTZkMzJcdTc5YzBcdTc5Y2JcdTdkNDJcdTdlNGRcdTdmZDJcdTgxZWRcdTgyMWZcdTg0'@; put 'OTBcdTg4NDZcdTg5NzJcdThiOTBcdThlNzRcdThmMmZcdTkwMzFcdTkxNGJcdTkxNmNcdTk2YzZcdTkxOWNcdTRlYzBcdTRmNGZcdTUxNDVcdTUzNDFcdTVmOTNcdTYyMGVcdTY3ZDRcdTZjNDFcdTZlMGJcdTczNjNcdTdlMjZcdTkxY2RcdTkyODNcdTUzZDRcdTU5MTlcdTViYmZcdTZkZDFc'@; put 'dTc5NWRcdTdlMmVcdTdjOWJcdTU4N2VcdTcxOWZcdTUxZmFcdTg4NTNcdThmZjBcdTRmY2FcdTVjZmJcdTY2MjVcdTc3YWNcdTdhZTNcdTgyMWNcdTk5ZmZcdTUxYzZcdTVmYWFcdTY1ZWNcdTY5NmZcdTZiODlcdTZkZjNcdTZlOTZcdTZmNjRcdTc2ZmVcdTdkMTRcdTVkZTFcdTkwNzVcdTkx'@; put 'ODdcdTk4MDZcdTUxZTZcdTUyMWRcdTYyNDBcdTY2OTFcdTY2ZDlcdTZlMWFcdTVlYjZcdTdkZDJcdTdmNzJcdTY2ZjhcdTg1YWZcdTg1ZjdcdThhZjhcdTUyYTlcdTUzZDlcdTU5NzNcdTVlOGZcdTVmOTBcdTYwNTVcdTkyZTRcdTk2NjRcdTUwYjdcdTUxMWYiXSxbImJlYTEiLCJcdTUyZGRc'@; put 'dTUzMjBcdTUzNDdcdTUzZWNcdTU0ZThcdTU1NDZcdTU1MzFcdTU2MTdcdTU5NjhcdTU5YmVcdTVhM2NcdTViYjVcdTVjMDZcdTVjMGZcdTVjMTFcdTVjMWFcdTVlODRcdTVlOGFcdTVlZTBcdTVmNzBcdTYyN2ZcdTYyODRcdTYyZGJcdTYzOGNcdTYzNzdcdTY2MDdcdTY2MGNcdTY2MmRcdTY2'@; put 'NzZcdTY3N2VcdTY4YTJcdTZhMWZcdTZhMzVcdTZjYmNcdTZkODhcdTZlMDlcdTZlNThcdTcxM2NcdTcxMjZcdTcxNjdcdTc1YzdcdTc3MDFcdTc4NWRcdTc5MDFcdTc5NjVcdTc5ZjBcdTdhZTBcdTdiMTFcdTdjYTdcdTdkMzlcdTgwOTZcdTgzZDZcdTg0OGJcdTg1NDlcdTg4NWRcdTg4ZjNc'@; put 'dThhMWZcdThhM2NcdThhNTRcdThhNzNcdThjNjFcdThjZGVcdTkxYTRcdTkyNjZcdTkzN2VcdTk0MThcdTk2OWNcdTk3OThcdTRlMGFcdTRlMDhcdTRlMWVcdTRlNTdcdTUxOTdcdTUyNzBcdTU3Y2VcdTU4MzRcdTU4Y2NcdTViMjJcdTVlMzhcdTYwYzVcdTY0ZmVcdTY3NjFcdTY3NTZcdTZk'@; put 'NDRcdTcyYjZcdTc1NzNcdTdhNjNcdTg0YjhcdThiNzJcdTkxYjhcdTkzMjBcdTU2MzFcdTU3ZjRcdTk4ZmUiXSxbImJmYTEiLCJcdTYyZWRcdTY5MGRcdTZiOTZcdTcxZWRcdTdlNTRcdTgwNzdcdTgyNzJcdTg5ZTZcdTk4ZGZcdTg3NTVcdThmYjFcdTVjM2JcdTRmMzhcdTRmZTFcdTRmYjVc'@; put 'dTU1MDdcdTVhMjBcdTViZGRcdTViZTlcdTVmYzNcdTYxNGVcdTYzMmZcdTY1YjBcdTY2NGJcdTY4ZWVcdTY5OWJcdTZkNzhcdTZkZjFcdTc1MzNcdTc1YjlcdTc3MWZcdTc5NWVcdTc5ZTZcdTdkMzNcdTgxZTNcdTgyYWZcdTg1YWFcdTg5YWFcdThhM2FcdThlYWJcdThmOWJcdTkwMzJcdTkx'@; put 'ZGRcdTk3MDdcdTRlYmFcdTRlYzFcdTUyMDNcdTU4NzVcdTU4ZWNcdTVjMGJcdTc1MWFcdTVjM2RcdTgxNGVcdThhMGFcdThmYzVcdTk2NjNcdTk3NmRcdTdiMjVcdThhY2ZcdTk4MDhcdTkxNjJcdTU2ZjNcdTUzYThcdTkwMTdcdTU0MzlcdTU3ODJcdTVlMjVcdTYzYThcdTZjMzRcdTcwOGFc'@; put 'dTc3NjFcdTdjOGJcdTdmZTBcdTg4NzBcdTkwNDJcdTkxNTRcdTkzMTBcdTkzMThcdTk2OGZcdTc0NWVcdTlhYzRcdTVkMDdcdTVkNjlcdTY1NzBcdTY3YTJcdThkYThcdTk2ZGJcdTYzNmVcdTY3NDlcdTY5MTlcdTgzYzVcdTk4MTdcdTk2YzBcdTg4ZmUiXSxbImMwYTEiLCJcdTZmODRcdTY0'@; put 'N2FcdTViZjhcdTRlMTZcdTcwMmNcdTc1NWRcdTY2MmZcdTUxYzRcdTUyMzZcdTUyZTJcdTU5ZDNcdTVmODFcdTYwMjdcdTYyMTBcdTY1M2ZcdTY1NzRcdTY2MWZcdTY2NzRcdTY4ZjJcdTY4MTZcdTZiNjNcdTZlMDVcdTcyNzJcdTc1MWZcdTc2ZGJcdTdjYmVcdTgwNTZcdTU4ZjBcdTg4ZmRc'@; put 'dTg5N2ZcdThhYTBcdThhOTNcdThhY2JcdTkwMWRcdTkxOTJcdTk3NTJcdTk3NTlcdTY1ODlcdTdhMGVcdTgxMDZcdTk2YmJcdTVlMmRcdTYwZGNcdTYyMWFcdTY1YTVcdTY2MTRcdTY3OTBcdTc3ZjNcdTdhNGRcdTdjNGRcdTdlM2VcdTgxMGFcdThjYWNcdThkNjRcdThkZTFcdThlNWZcdTc4'@; put 'YTlcdTUyMDdcdTYyZDlcdTYzYTVcdTY0NDJcdTYyOThcdThhMmRcdTdhODNcdTdiYzBcdThhYWNcdTk2ZWFcdTdkNzZcdTgyMGNcdTg3NDlcdTRlZDlcdTUxNDhcdTUzNDNcdTUzNjBcdTViYTNcdTVjMDJcdTVjMTZcdTVkZGRcdTYyMjZcdTYyNDdcdTY0YjBcdTY4MTNcdTY4MzRcdTZjYzlc'@; put 'dTZkNDVcdTZkMTdcdTY3ZDNcdTZmNWNcdTcxNGVcdTcxN2RcdTY1Y2JcdTdhN2ZcdTdiYWRcdTdkZGEiXSxbImMxYTEiLCJcdTdlNGFcdTdmYThcdTgxN2FcdTgyMWJcdTgyMzlcdTg1YTZcdThhNmVcdThjY2VcdThkZjVcdTkwNzhcdTkwNzdcdTkyYWRcdTkyOTFcdTk1ODNcdTliYWVcdTUy'@; put 'NGRcdTU1ODRcdTZmMzhcdTcxMzZcdTUxNjhcdTc5ODVcdTdlNTVcdTgxYjNcdTdjY2VcdTU2NGNcdTU4NTFcdTVjYThcdTYzYWFcdTY2ZmVcdTY2ZmRcdTY5NWFcdTcyZDlcdTc1OGZcdTc1OGVcdTc5MGVcdTc5NTZcdTc5ZGZcdTdjOTdcdTdkMjBcdTdkNDRcdTg2MDdcdThhMzRcdTk2M2Jc'@; put 'dTkwNjFcdTlmMjBcdTUwZTdcdTUyNzVcdTUzY2NcdTUzZTJcdTUwMDlcdTU1YWFcdTU4ZWVcdTU5NGZcdTcyM2RcdTViOGJcdTVjNjRcdTUzMWRcdTYwZTNcdTYwZjNcdTYzNWNcdTYzODNcdTYzM2ZcdTYzYmJcdTY0Y2RcdTY1ZTlcdTY2ZjlcdTVkZTNcdTY5Y2RcdTY5ZmRcdTZmMTVcdTcx'@; put 'ZTVcdTRlODlcdTc1ZTlcdTc2ZjhcdTdhOTNcdTdjZGZcdTdkY2ZcdTdkOWNcdTgwNjFcdTgzNDlcdTgzNThcdTg0NmNcdTg0YmNcdTg1ZmJcdTg4YzVcdThkNzBcdTkwMDFcdTkwNmRcdTkzOTdcdTk3MWNcdTlhMTJcdTUwY2ZcdTU4OTdcdTYxOGUiXSxbImMyYTEiLCJcdTgxZDNcdTg1MzVc'@; put 'dThkMDhcdTkwMjBcdTRmYzNcdTUwNzRcdTUyNDdcdTUzNzNcdTYwNmZcdTYzNDlcdTY3NWZcdTZlMmNcdThkYjNcdTkwMWZcdTRmZDdcdTVjNWVcdThjY2FcdTY1Y2ZcdTdkOWFcdTUzNTJcdTg4OTZcdTUxNzZcdTYzYzNcdTViNThcdTViNmJcdTVjMGFcdTY0MGRcdTY3NTFcdTkwNWNcdTRl'@; put 'ZDZcdTU5MWFcdTU5MmFcdTZjNzBcdThhNTFcdTU1M2VcdTU4MTVcdTU5YTVcdTYwZjBcdTYyNTNcdTY3YzFcdTgyMzVcdTY5NTVcdTk2NDBcdTk5YzRcdTlhMjhcdTRmNTNcdTU4MDZcdTViZmVcdTgwMTBcdTVjYjFcdTVlMmZcdTVmODVcdTYwMjBcdTYxNGJcdTYyMzRcdTY2ZmZcdTZjZjBc'@; put 'dTZlZGVcdTgwY2VcdTgxN2ZcdTgyZDRcdTg4OGJcdThjYjhcdTkwMDBcdTkwMmVcdTk2OGFcdTllZGJcdTliZGJcdTRlZTNcdTUzZjBcdTU5MjdcdTdiMmNcdTkxOGRcdTk4NGNcdTlkZjlcdTZlZGRcdTcwMjdcdTUzNTNcdTU1NDRcdTViODVcdTYyNThcdTYyOWVcdTYyZDNcdTZjYTJcdTZm'@; put 'ZWZcdTc0MjJcdThhMTdcdTk0MzhcdTZmYzFcdThhZmVcdTgzMzhcdTUxZTdcdTg2ZjhcdTUzZWEiXSxbImMzYTEiLCJcdTUzZTlcdTRmNDZcdTkwNTRcdThmYjBcdTU5NmFcdTgxMzFcdTVkZmRcdTdhZWFcdThmYmZcdTY4ZGFcdThjMzdcdTcyZjhcdTljNDhcdTZhM2RcdThhYjBcdTRlMzlc'@; put 'dTUzNThcdTU2MDZcdTU3NjZcdTYyYzVcdTYzYTJcdTY1ZTZcdTZiNGVcdTZkZTFcdTZlNWJcdTcwYWRcdTc3ZWRcdTdhZWZcdTdiYWFcdTdkYmJcdTgwM2RcdTgwYzZcdTg2Y2JcdThhOTVcdTkzNWJcdTU2ZTNcdTU4YzdcdTVmM2VcdTY1YWRcdTY2OTZcdTZhODBcdTZiYjVcdTc1MzdcdThh'@; put 'YzdcdTUwMjRcdTc3ZTVcdTU3MzBcdTVmMWJcdTYwNjVcdTY2N2FcdTZjNjBcdTc1ZjRcdTdhMWFcdTdmNmVcdTgxZjRcdTg3MThcdTkwNDVcdTk5YjNcdTdiYzlcdTc1NWNcdTdhZjlcdTdiNTFcdTg0YzRcdTkwMTBcdTc5ZTlcdTdhOTJcdTgzMzZcdTVhZTFcdTc3NDBcdTRlMmRcdTRlZjJc'@; put 'dTViOTlcdTVmZTBcdTYyYmRcdTY2M2NcdTY3ZjFcdTZjZThcdTg2NmJcdTg4NzdcdThhM2JcdTkxNGVcdTkyZjNcdTk5ZDBcdTZhMTdcdTcwMjZcdTczMmFcdTgyZTdcdTg0NTdcdThjYWZcdTRlMDFcdTUxNDZcdTUxY2JcdTU1OGJcdTViZjUiXSxbImM0YTEiLCJcdTVlMTZcdTVlMzNcdTVl'@; put 'ODFcdTVmMTRcdTVmMzVcdTVmNmJcdTVmYjRcdTYxZjJcdTYzMTFcdTY2YTJcdTY3MWRcdTZmNmVcdTcyNTJcdTc1M2FcdTc3M2FcdTgwNzRcdTgxMzlcdTgxNzhcdTg3NzZcdThhYmZcdThhZGNcdThkODVcdThkZjNcdTkyOWFcdTk1NzdcdTk4MDJcdTljZTVcdTUyYzVcdTYzNTdcdTc2ZjRc'@; put 'dTY3MTVcdTZjODhcdTczY2RcdThjYzNcdTkzYWVcdTk2NzNcdTZkMjVcdTU4OWNcdTY5MGVcdTY5Y2NcdThmZmRcdTkzOWFcdTc1ZGJcdTkwMWFcdTU4NWFcdTY4MDJcdTYzYjRcdTY5ZmJcdTRmNDNcdTZmMmNcdTY3ZDhcdThmYmJcdTg1MjZcdTdkYjRcdTkzNTRcdTY5M2ZcdTZmNzBcdTU3'@; put 'NmFcdTU4ZjdcdTViMmNcdTdkMmNcdTcyMmFcdTU0MGFcdTkxZTNcdTlkYjRcdTRlYWRcdTRmNGVcdTUwNWNcdTUwNzVcdTUyNDNcdThjOWVcdTU0NDhcdTU4MjRcdTViOWFcdTVlMWRcdTVlOTVcdTVlYWRcdTVlZjdcdTVmMWZcdTYwOGNcdTYyYjVcdTYzM2FcdTYzZDBcdTY4YWZcdTZjNDBc'@; put 'dTc4ODdcdTc5OGVcdTdhMGJcdTdkZTBcdTgyNDdcdThhMDJcdThhZTZcdThlNDRcdTkwMTMiXSxbImM1YTEiLCJcdTkwYjhcdTkxMmRcdTkxZDhcdTlmMGVcdTZjZTVcdTY0NThcdTY0ZTJcdTY1NzVcdTZlZjRcdTc2ODRcdTdiMWJcdTkwNjlcdTkzZDFcdTZlYmFcdTU0ZjJcdTVmYjlcdTY0'@; put 'YTRcdThmNGRcdThmZWRcdTkyNDRcdTUxNzhcdTU4NmJcdTU5MjlcdTVjNTVcdTVlOTdcdTZkZmJcdTdlOGZcdTc1MWNcdThjYmNcdThlZTJcdTk4NWJcdTcwYjlcdTRmMWRcdTZiYmZcdTZmYjFcdTc1MzBcdTk2ZmJcdTUxNGVcdTU0MTBcdTU4MzVcdTU4NTdcdTU5YWNcdTVjNjBcdTVmOTJc'@; put 'dTY1OTdcdTY3NWNcdTZlMjFcdTc2N2JcdTgzZGZcdThjZWRcdTkwMTRcdTkwZmRcdTkzNGRcdTc4MjVcdTc4M2FcdTUyYWFcdTVlYTZcdTU3MWZcdTU5NzRcdTYwMTJcdTUwMTJcdTUxNWFcdTUxYWNcdTUxY2RcdTUyMDBcdTU1MTBcdTU4NTRcdTU4NThcdTU5NTdcdTViOTVcdTVjZjZcdTVk'@; put 'OGJcdTYwYmNcdTYyOTVcdTY0MmRcdTY3NzFcdTY4NDNcdTY4YmNcdTY4ZGZcdTc2ZDdcdTZkZDhcdTZlNmZcdTZkOWJcdTcwNmZcdTcxYzhcdTVmNTNcdTc1ZDhcdTc5NzdcdTdiNDlcdTdiNTRcdTdiNTJcdTdjZDZcdTdkNzFcdTUyMzAiXSxbImM2YTEiLCJcdTg0NjNcdTg1NjlcdTg1ZTRc'@; put 'dThhMGVcdThiMDRcdThjNDZcdThlMGZcdTkwMDNcdTkwMGZcdTk0MTlcdTk2NzZcdTk4MmRcdTlhMzBcdTk1ZDhcdTUwY2RcdTUyZDVcdTU0MGNcdTU4MDJcdTVjMGVcdTYxYTdcdTY0OWVcdTZkMWVcdTc3YjNcdTdhZTVcdTgwZjRcdTg0MDRcdTkwNTNcdTkyODVcdTVjZTBcdTlkMDdcdTUz'@; put 'M2ZcdTVmOTdcdTVmYjNcdTZkOWNcdTcyNzlcdTc3NjNcdTc5YmZcdTdiZTRcdTZiZDJcdTcyZWNcdThhYWRcdTY4MDNcdTZhNjFcdTUxZjhcdTdhODFcdTY5MzRcdTVjNGFcdTljZjZcdTgyZWJcdTViYzVcdTkxNDlcdTcwMWVcdTU2NzhcdTVjNmZcdTYwYzdcdTY1NjZcdTZjOGNcdThjNWFc'@; put 'dTkwNDFcdTk4MTNcdTU0NTFcdTY2YzdcdTkyMGRcdTU5NDhcdTkwYTNcdTUxODVcdTRlNGRcdTUxZWFcdTg1OTlcdThiMGVcdTcwNThcdTYzN2FcdTkzNGJcdTY5NjJcdTk5YjRcdTdlMDRcdTc1NzdcdTUzNTdcdTY5NjBcdThlZGZcdTk2ZTNcdTZjNWRcdTRlOGNcdTVjM2NcdTVmMTBcdThm'@; put 'ZTlcdTUzMDJcdThjZDFcdTgwODlcdTg2NzlcdTVlZmZcdTY1ZTVcdTRlNzNcdTUxNjUiXSxbImM3YTEiLCJcdTU5ODJcdTVjM2ZcdTk3ZWVcdTRlZmJcdTU5OGFcdTVmY2RcdThhOGRcdTZmZTFcdTc5YjBcdTc5NjJcdTViZTdcdTg0NzFcdTczMmJcdTcxYjFcdTVlNzRcdTVmZjVcdTYzN2Jc'@; put 'dTY0OWFcdTcxYzNcdTdjOThcdTRlNDNcdTVlZmNcdTRlNGJcdTU3ZGNcdTU2YTJcdTYwYTlcdTZmYzNcdTdkMGRcdTgwZmRcdTgxMzNcdTgxYmZcdThmYjJcdTg5OTdcdTg2YTRcdTVkZjRcdTYyOGFcdTY0YWRcdTg5ODdcdTY3NzdcdTZjZTJcdTZkM2VcdTc0MzZcdTc4MzRcdTVhNDZcdTdm'@; put 'NzVcdTgyYWRcdTk5YWNcdTRmZjNcdTVlYzNcdTYyZGRcdTYzOTJcdTY1NTdcdTY3NmZcdTc2YzNcdTcyNGNcdTgwY2NcdTgwYmFcdThmMjlcdTkxNGRcdTUwMGRcdTU3ZjlcdTVhOTJcdTY4ODVcdTY5NzNcdTcxNjRcdTcyZmRcdThjYjdcdTU4ZjJcdThjZTBcdTk2NmFcdTkwMTlcdTg3N2Zc'@; put 'dTc5ZTRcdTc3ZTdcdTg0MjlcdTRmMmZcdTUyNjVcdTUzNWFcdTYyY2RcdTY3Y2ZcdTZjY2FcdTc2N2RcdTdiOTRcdTdjOTVcdTgyMzZcdTg1ODRcdThmZWJcdTY2ZGRcdTZmMjBcdTcyMDZcdTdlMWJcdTgzYWJcdTk5YzFcdTllYTYiXSxbImM4YTEiLCJcdTUxZmRcdTdiYjFcdTc4NzJcdTdi'@; put 'YjhcdTgwODdcdTdiNDhcdTZhZThcdTVlNjFcdTgwOGNcdTc1NTFcdTc1NjBcdTUxNmJcdTkyNjJcdTZlOGNcdTc2N2FcdTkxOTdcdTlhZWFcdTRmMTBcdTdmNzBcdTYyOWNcdTdiNGZcdTk1YTVcdTljZTlcdTU2N2FcdTU4NTlcdTg2ZTRcdTk2YmNcdTRmMzRcdTUyMjRcdTUzNGFcdTUzY2Rc'@; put 'dTUzZGJcdTVlMDZcdTY0MmNcdTY1OTFcdTY3N2ZcdTZjM2VcdTZjNGVcdTcyNDhcdTcyYWZcdTczZWRcdTc1NTRcdTdlNDFcdTgyMmNcdTg1ZTlcdThjYTlcdTdiYzRcdTkxYzZcdTcxNjlcdTk4MTJcdTk4ZWZcdTYzM2RcdTY2NjlcdTc1NmFcdTc2ZTRcdTc4ZDBcdTg1NDNcdTg2ZWVcdTUz'@; put 'MmFcdTUzNTFcdTU0MjZcdTU5ODNcdTVlODdcdTVmN2NcdTYwYjJcdTYyNDlcdTYyNzlcdTYyYWJcdTY1OTBcdTZiZDRcdTZjY2NcdTc1YjJcdTc2YWVcdTc4OTFcdTc5ZDhcdTdkY2JcdTdmNzdcdTgwYTVcdTg4YWJcdThhYjlcdThjYmJcdTkwN2ZcdTk3NWVcdTk4ZGJcdTZhMGJcdTdjMzhc'@; put 'dTUwOTlcdTVjM2VcdTVmYWVcdTY3ODdcdTZiZDhcdTc0MzVcdTc3MDlcdTdmOGUiXSxbImM5YTEiLCJcdTlmM2JcdTY3Y2FcdTdhMTdcdTUzMzlcdTc1OGJcdTlhZWRcdTVmNjZcdTgxOWRcdTgzZjFcdTgwOThcdTVmM2NcdTVmYzVcdTc1NjJcdTdiNDZcdTkwM2NcdTY4NjdcdTU5ZWJcdTVh'@; put 'OWJcdTdkMTBcdTc2N2VcdThiMmNcdTRmZjVcdTVmNmFcdTZhMTlcdTZjMzdcdTZmMDJcdTc0ZTJcdTc5NjhcdTg4NjhcdThhNTVcdThjNzlcdTVlZGZcdTYzY2ZcdTc1YzVcdTc5ZDJcdTgyZDdcdTkzMjhcdTkyZjJcdTg0OWNcdTg2ZWRcdTljMmRcdTU0YzFcdTVmNmNcdTY1OGNcdTZkNWNc'@; put 'dTcwMTVcdThjYTdcdThjZDNcdTk4M2JcdTY1NGZcdTc0ZjZcdTRlMGRcdTRlZDhcdTU3ZTBcdTU5MmJcdTVhNjZcdTViY2NcdTUxYThcdTVlMDNcdTVlOWNcdTYwMTZcdTYyNzZcdTY1NzdcdTY1YTdcdTY2NmVcdTZkNmVcdTcyMzZcdTdiMjZcdTgxNTBcdTgxOWFcdTgyOTlcdThiNWNcdThj'@; put 'YTBcdThjZTZcdThkNzRcdTk2MWNcdTk2NDRcdTRmYWVcdTY0YWJcdTZiNjZcdTgyMWVcdTg0NjFcdTg1NmFcdTkwZThcdTVjMDFcdTY5NTNcdTk4YThcdTg0N2FcdTg1NTdcdTRmMGZcdTUyNmZcdTVmYTlcdTVlNDVcdTY3MGQiXSxbImNhYTEiLCJcdTc5OGZcdTgxNzlcdTg5MDdcdTg5ODZc'@; put 'dTZkZjVcdTVmMTdcdTYyNTVcdTZjYjhcdTRlY2ZcdTcyNjlcdTliOTJcdTUyMDZcdTU0M2JcdTU2NzRcdTU4YjNcdTYxYTRcdTYyNmVcdTcxMWFcdTU5NmVcdTdjODlcdTdjZGVcdTdkMWJcdTk2ZjBcdTY1ODdcdTgwNWVcdTRlMTlcdTRmNzVcdTUxNzVcdTU4NDBcdTVlNjNcdTVlNzNcdTVm'@; put 'MGFcdTY3YzRcdTRlMjZcdTg1M2RcdTk1ODlcdTk2NWJcdTdjNzNcdTk4MDFcdTUwZmJcdTU4YzFcdTc2NTZcdTc4YTdcdTUyMjVcdTc3YTVcdTg1MTFcdTdiODZcdTUwNGZcdTU5MDlcdTcyNDdcdTdiYzdcdTdkZThcdThmYmFcdThmZDRcdTkwNGRcdTRmYmZcdTUyYzlcdTVhMjlcdTVmMDFc'@; put 'dTk3YWRcdTRmZGRcdTgyMTdcdTkyZWFcdTU3MDNcdTYzNTVcdTZiNjlcdTc1MmJcdTg4ZGNcdThmMTRcdTdhNDJcdTUyZGZcdTU4OTNcdTYxNTVcdTYyMGFcdTY2YWVcdTZiY2RcdTdjM2ZcdTgzZTlcdTUwMjNcdTRmZjhcdTUzMDVcdTU0NDZcdTU4MzFcdTU5NDlcdTViOWRcdTVjZjBcdTVj'@; put 'ZWZcdTVkMjlcdTVlOTZcdTYyYjFcdTYzNjdcdTY1M2VcdTY1YjlcdTY3MGIiXSxbImNiYTEiLCJcdTZjZDVcdTZjZTFcdTcwZjlcdTc4MzJcdTdlMmJcdTgwZGVcdTgyYjNcdTg0MGNcdTg0ZWNcdTg3MDJcdTg5MTJcdThhMmFcdThjNGFcdTkwYTZcdTkyZDJcdTk4ZmRcdTljZjNcdTlkNmNc'@; put 'dTRlNGZcdTRlYTFcdTUwOGRcdTUyNTZcdTU3NGFcdTU5YThcdTVlM2RcdTVmZDhcdTVmZDlcdTYyM2ZcdTY2YjRcdTY3MWJcdTY3ZDBcdTY4ZDJcdTUxOTJcdTdkMjFcdTgwYWFcdTgxYThcdThiMDBcdThjOGNcdThjYmZcdTkyN2VcdTk2MzJcdTU0MjBcdTk4MmNcdTUzMTdcdTUwZDVcdTUz'@; put 'NWNcdTU4YThcdTY0YjJcdTY3MzRcdTcyNjdcdTc3NjZcdTdhNDZcdTkxZTZcdTUyYzNcdTZjYTFcdTZiODZcdTU4MDBcdTVlNGNcdTU5NTRcdTY3MmNcdTdmZmJcdTUxZTFcdTc2YzZcdTY0NjlcdTc4ZThcdTliNTRcdTllYmJcdTU3Y2JcdTU5YjlcdTY2MjdcdTY3OWFcdTZiY2VcdTU0ZTlc'@; put 'dTY5ZDlcdTVlNTVcdTgxOWNcdTY3OTVcdTliYWFcdTY3ZmVcdTljNTJcdTY4NWRcdTRlYTZcdTRmZTNcdTUzYzhcdTYyYjlcdTY3MmJcdTZjYWJcdThmYzRcdTRmYWRcdTdlNmRcdTllYmZcdTRlMDdcdTYxNjJcdTZlODAiXSxbImNjYTEiLCJcdTZmMmJcdTg1MTNcdTU0NzNcdTY3MmFcdTli'@; put 'NDVcdTVkZjNcdTdiOTVcdTVjYWNcdTViYzZcdTg3MWNcdTZlNGFcdTg0ZDFcdTdhMTRcdTgxMDhcdTU5OTlcdTdjOGRcdTZjMTFcdTc3MjBcdTUyZDlcdTU5MjJcdTcxMjFcdTcyNWZcdTc3ZGJcdTk3MjdcdTlkNjFcdTY5MGJcdTVhN2ZcdTVhMThcdTUxYTVcdTU0MGRcdTU0N2RcdTY2MGVc'@; put 'dTc2ZGZcdThmZjdcdTkyOThcdTljZjRcdTU5ZWFcdTcyNWRcdTZlYzVcdTUxNGRcdTY4YzlcdTdkYmZcdTdkZWNcdTk3NjJcdTllYmFcdTY0NzhcdTZhMjFcdTgzMDJcdTU5ODRcdTViNWZcdTZiZGJcdTczMWJcdTc2ZjJcdTdkYjJcdTgwMTdcdTg0OTlcdTUxMzJcdTY3MjhcdTllZDlcdTc2'@; put 'ZWVcdTY3NjJcdTUyZmZcdTk5MDVcdTVjMjRcdTYyM2JcdTdjN2VcdThjYjBcdTU1NGZcdTYwYjZcdTdkMGJcdTk1ODBcdTUzMDFcdTRlNWZcdTUxYjZcdTU5MWNcdTcyM2FcdTgwMzZcdTkxY2VcdTVmMjVcdTc3ZTJcdTUzODRcdTVmNzlcdTdkMDRcdTg1YWNcdThhMzNcdThlOGRcdTk3NTZc'@; put 'dTY3ZjNcdTg1YWVcdTk0NTNcdTYxMDlcdTYxMDhcdTZjYjlcdTc2NTIiXSxbImNkYTEiLCJcdThhZWRcdThmMzhcdTU1MmZcdTRmNTFcdTUxMmFcdTUyYzdcdTUzY2JcdTViYTVcdTVlN2RcdTYwYTBcdTYxODJcdTYzZDZcdTY3MDlcdTY3ZGFcdTZlNjdcdTZkOGNcdTczMzZcdTczMzdcdTc1'@; put 'MzFcdTc5NTBcdTg4ZDVcdThhOThcdTkwNGFcdTkwOTFcdTkwZjVcdTk2YzRcdTg3OGRcdTU5MTVcdTRlODhcdTRmNTlcdTRlMGVcdThhODlcdThmM2ZcdTk4MTBcdTUwYWRcdTVlN2NcdTU5OTZcdTViYjlcdTVlYjhcdTYzZGFcdTYzZmFcdTY0YzFcdTY2ZGNcdTY5NGFcdTY5ZDhcdTZkMGJc'@; put 'dTZlYjZcdTcxOTRcdTc1MjhcdTdhYWZcdTdmOGFcdTgwMDBcdTg0NDlcdTg0YzlcdTg5ODFcdThiMjFcdThlMGFcdTkwNjVcdTk2N2RcdTk5MGFcdTYxN2VcdTYyOTFcdTZiMzJcdTZjODNcdTZkNzRcdTdmY2NcdTdmZmNcdTZkYzBcdTdmODVcdTg3YmFcdTg4ZjhcdTY3NjVcdTgzYjFcdTk4'@; put 'M2NcdTk2ZjdcdTZkMWJcdTdkNjFcdTg0M2RcdTkxNmFcdTRlNzFcdTUzNzVcdTVkNTBcdTZiMDRcdTZmZWJcdTg1Y2RcdTg2MmRcdTg5YTdcdTUyMjlcdTU0MGZcdTVjNjVcdTY3NGVcdTY4YThcdTc0MDZcdTc0ODMiXSxbImNlYTEiLCJcdTc1ZTJcdTg4Y2ZcdTg4ZTFcdTkxY2NcdTk2ZTJc'@; put 'dTk2NzhcdTVmOGJcdTczODdcdTdhY2JcdTg0NGVcdTYzYTBcdTc1NjVcdTUyODlcdTZkNDFcdTZlOWNcdTc0MDlcdTc1NTlcdTc4NmJcdTdjOTJcdTk2ODZcdTdhZGNcdTlmOGRcdTRmYjZcdTYxNmVcdTY1YzVcdTg2NWNcdTRlODZcdTRlYWVcdTUwZGFcdTRlMjFcdTUxY2NcdTViZWVcdTY1'@; put 'OTlcdTY4ODFcdTZkYmNcdTczMWZcdTc2NDJcdTc3YWRcdTdhMWNcdTdjZTdcdTgyNmZcdThhZDJcdTkwN2NcdTkxY2ZcdTk2NzVcdTk4MThcdTUyOWJcdTdkZDFcdTUwMmJcdTUzOThcdTY3OTdcdTZkY2JcdTcxZDBcdTc0MzNcdTgxZThcdThmMmFcdTk2YTNcdTljNTdcdTllOWZcdTc0NjBc'@; put 'dTU4NDFcdTZkOTlcdTdkMmZcdTk4NWVcdTRlZTRcdTRmMzZcdTRmOGJcdTUxYjdcdTUyYjFcdTVkYmFcdTYwMWNcdTczYjJcdTc5M2NcdTgyZDNcdTkyMzRcdTk2YjdcdTk2ZjZcdTk3MGFcdTllOTdcdTlmNjJcdTY2YTZcdTZiNzRcdTUyMTdcdTUyYTNcdTcwYzhcdTg4YzJcdTVlYzlcdTYw'@; put 'NGJcdTYxOTBcdTZmMjNcdTcxNDlcdTdjM2VcdTdkZjRcdTgwNmYiXSxbImNmYTEiLCJcdTg0ZWVcdTkwMjNcdTkzMmNcdTU0NDJcdTliNmZcdTZhZDNcdTcwODlcdThjYzJcdThkZWZcdTk3MzJcdTUyYjRcdTVhNDFcdTVlY2FcdTVmMDRcdTY3MTdcdTY5N2NcdTY5OTRcdTZkNmFcdTZmMGZc'@; put 'dTcyNjJcdTcyZmNcdTdiZWRcdTgwMDFcdTgwN2VcdTg3NGJcdTkwY2VcdTUxNmRcdTllOTNcdTc5ODRcdTgwOGJcdTkzMzJcdThhZDZcdTUwMmRcdTU0OGNcdThhNzFcdTZiNmFcdThjYzRcdTgxMDdcdTYwZDFcdTY3YTBcdTlkZjJcdTRlOTlcdTRlOThcdTljMTBcdThhNmJcdTg1YzFcdTg1'@; put 'NjhcdTY5MDBcdTZlN2VcdTc4OTdcdTgxNTUiXSxbImQwYTEiLCJcdTVmMGNcdTRlMTBcdTRlMTVcdTRlMmFcdTRlMzFcdTRlMzZcdTRlM2NcdTRlM2ZcdTRlNDJcdTRlNTZcdTRlNThcdTRlODJcdTRlODVcdThjNmJcdTRlOGFcdTgyMTJcdTVmMGRcdTRlOGVcdTRlOWVcdTRlOWZcdTRlYTBc'@; put 'dTRlYTJcdTRlYjBcdTRlYjNcdTRlYjZcdTRlY2VcdTRlY2RcdTRlYzRcdTRlYzZcdTRlYzJcdTRlZDdcdTRlZGVcdTRlZWRcdTRlZGZcdTRlZjdcdTRmMDlcdTRmNWFcdTRmMzBcdTRmNWJcdTRmNWRcdTRmNTdcdTRmNDdcdTRmNzZcdTRmODhcdTRmOGZcdTRmOThcdTRmN2JcdTRmNjlcdTRm'@; put 'NzBcdTRmOTFcdTRmNmZcdTRmODZcdTRmOTZcdTUxMThcdTRmZDRcdTRmZGZcdTRmY2VcdTRmZDhcdTRmZGJcdTRmZDFcdTRmZGFcdTRmZDBcdTRmZTRcdTRmZTVcdTUwMWFcdTUwMjhcdTUwMTRcdTUwMmFcdTUwMjVcdTUwMDVcdTRmMWNcdTRmZjZcdTUwMjFcdTUwMjlcdTUwMmNcdTRmZmVc'@; put 'dTRmZWZcdTUwMTFcdTUwMDZcdTUwNDNcdTUwNDdcdTY3MDNcdTUwNTVcdTUwNTBcdTUwNDhcdTUwNWFcdTUwNTZcdTUwNmNcdTUwNzhcdTUwODBcdTUwOWFcdTUwODVcdTUwYjRcdTUwYjIiXSxbImQxYTEiLCJcdTUwYzlcdTUwY2FcdTUwYjNcdTUwYzJcdTUwZDZcdTUwZGVcdTUwZTVcdTUw'@; put 'ZWRcdTUwZTNcdTUwZWVcdTUwZjlcdTUwZjVcdTUxMDlcdTUxMDFcdTUxMDJcdTUxMTZcdTUxMTVcdTUxMTRcdTUxMWFcdTUxMjFcdTUxM2FcdTUxMzdcdTUxM2NcdTUxM2JcdTUxM2ZcdTUxNDBcdTUxNTJcdTUxNGNcdTUxNTRcdTUxNjJcdTdhZjhcdTUxNjlcdTUxNmFcdTUxNmVcdTUxODBc'@; put 'dTUxODJcdTU2ZDhcdTUxOGNcdTUxODlcdTUxOGZcdTUxOTFcdTUxOTNcdTUxOTVcdTUxOTZcdTUxYTRcdTUxYTZcdTUxYTJcdTUxYTlcdTUxYWFcdTUxYWJcdTUxYjNcdTUxYjFcdTUxYjJcdTUxYjBcdTUxYjVcdTUxYmRcdTUxYzVcdTUxYzlcdTUxZGJcdTUxZTBcdTg2NTVcdTUxZTlcdTUx'@; put 'ZWRcdTUxZjBcdTUxZjVcdTUxZmVcdTUyMDRcdTUyMGJcdTUyMTRcdTUyMGVcdTUyMjdcdTUyMmFcdTUyMmVcdTUyMzNcdTUyMzlcdTUyNGZcdTUyNDRcdTUyNGJcdTUyNGNcdTUyNWVcdTUyNTRcdTUyNmFcdTUyNzRcdTUyNjlcdTUyNzNcdTUyN2ZcdTUyN2RcdTUyOGRcdTUyOTRcdTUyOTJc'@; put 'dTUyNzFcdTUyODhcdTUyOTFcdThmYTgiXSxbImQyYTEiLCJcdThmYTdcdTUyYWNcdTUyYWRcdTUyYmNcdTUyYjVcdTUyYzFcdTUyY2RcdTUyZDdcdTUyZGVcdTUyZTNcdTUyZTZcdTk4ZWRcdTUyZTBcdTUyZjNcdTUyZjVcdTUyZjhcdTUyZjlcdTUzMDZcdTUzMDhcdTc1MzhcdTUzMGRcdTUz'@; put 'MTBcdTUzMGZcdTUzMTVcdTUzMWFcdTUzMjNcdTUzMmZcdTUzMzFcdTUzMzNcdTUzMzhcdTUzNDBcdTUzNDZcdTUzNDVcdTRlMTdcdTUzNDlcdTUzNGRcdTUxZDZcdTUzNWVcdTUzNjlcdTUzNmVcdTU5MThcdTUzN2JcdTUzNzdcdTUzODJcdTUzOTZcdTUzYTBcdTUzYTZcdTUzYTVcdTUzYWVc'@; put 'dTUzYjBcdTUzYjZcdTUzYzNcdTdjMTJcdTk2ZDlcdTUzZGZcdTY2ZmNcdTcxZWVcdTUzZWVcdTUzZThcdTUzZWRcdTUzZmFcdTU0MDFcdTU0M2RcdTU0NDBcdTU0MmNcdTU0MmRcdTU0M2NcdTU0MmVcdTU0MzZcdTU0MjlcdTU0MWRcdTU0NGVcdTU0OGZcdTU0NzVcdTU0OGVcdTU0NWZcdTU0'@; put 'NzFcdTU0NzdcdTU0NzBcdTU0OTJcdTU0N2JcdTU0ODBcdTU0NzZcdTU0ODRcdTU0OTBcdTU0ODZcdTU0YzdcdTU0YTJcdTU0YjhcdTU0YTVcdTU0YWNcdTU0YzRcdTU0YzhcdTU0YTgiXSxbImQzYTEiLCJcdTU0YWJcdTU0YzJcdTU0YTRcdTU0YmVcdTU0YmNcdTU0ZDhcdTU0ZTVcdTU0ZTZc'@; put 'dTU1MGZcdTU1MTRcdTU0ZmRcdTU0ZWVcdTU0ZWRcdTU0ZmFcdTU0ZTJcdTU1MzlcdTU1NDBcdTU1NjNcdTU1NGNcdTU1MmVcdTU1NWNcdTU1NDVcdTU1NTZcdTU1NTdcdTU1MzhcdTU1MzNcdTU1NWRcdTU1OTlcdTU1ODBcdTU0YWZcdTU1OGFcdTU1OWZcdTU1N2JcdTU1N2VcdTU1OThcdTU1'@; put 'OWVcdTU1YWVcdTU1N2NcdTU1ODNcdTU1YTlcdTU1ODdcdTU1YThcdTU1ZGFcdTU1YzVcdTU1ZGZcdTU1YzRcdTU1ZGNcdTU1ZTRcdTU1ZDRcdTU2MTRcdTU1ZjdcdTU2MTZcdTU1ZmVcdTU1ZmRcdTU2MWJcdTU1ZjlcdTU2NGVcdTU2NTBcdTcxZGZcdTU2MzRcdTU2MzZcdTU2MzJcdTU2Mzhc'@; put 'dTU2NmJcdTU2NjRcdTU2MmZcdTU2NmNcdTU2NmFcdTU2ODZcdTU2ODBcdTU2OGFcdTU2YTBcdTU2OTRcdTU2OGZcdTU2YTVcdTU2YWVcdTU2YjZcdTU2YjRcdTU2YzJcdTU2YmNcdTU2YzFcdTU2YzNcdTU2YzBcdTU2YzhcdTU2Y2VcdTU2ZDFcdTU2ZDNcdTU2ZDdcdTU2ZWVcdTU2ZjlcdTU3'@; put 'MDBcdTU2ZmZcdTU3MDRcdTU3MDkiXSxbImQ0YTEiLCJcdTU3MDhcdTU3MGJcdTU3MGRcdTU3MTNcdTU3MThcdTU3MTZcdTU1YzdcdTU3MWNcdTU3MjZcdTU3MzdcdTU3MzhcdTU3NGVcdTU3M2JcdTU3NDBcdTU3NGZcdTU3NjlcdTU3YzBcdTU3ODhcdTU3NjFcdTU3N2ZcdTU3ODlcdTU3OTNc'@; put 'dTU3YTBcdTU3YjNcdTU3YTRcdTU3YWFcdTU3YjBcdTU3YzNcdTU3YzZcdTU3ZDRcdTU3ZDJcdTU3ZDNcdTU4MGFcdTU3ZDZcdTU3ZTNcdTU4MGJcdTU4MTlcdTU4MWRcdTU4NzJcdTU4MjFcdTU4NjJcdTU4NGJcdTU4NzBcdTZiYzBcdTU4NTJcdTU4M2RcdTU4NzlcdTU4ODVcdTU4YjlcdTU4'@; put 'OWZcdTU4YWJcdTU4YmFcdTU4ZGVcdTU4YmJcdTU4YjhcdTU4YWVcdTU4YzVcdTU4ZDNcdTU4ZDFcdTU4ZDdcdTU4ZDlcdTU4ZDhcdTU4ZTVcdTU4ZGNcdTU4ZTRcdTU4ZGZcdTU4ZWZcdTU4ZmFcdTU4ZjlcdTU4ZmJcdTU4ZmNcdTU4ZmRcdTU5MDJcdTU5MGFcdTU5MTBcdTU5MWJcdTY4YTZc'@; put 'dTU5MjVcdTU5MmNcdTU5MmRcdTU5MzJcdTU5MzhcdTU5M2VcdTdhZDJcdTU5NTVcdTU5NTBcdTU5NGVcdTU5NWFcdTU5NThcdTU5NjJcdTU5NjBcdTU5NjdcdTU5NmNcdTU5NjkiXSxbImQ1YTEiLCJcdTU5NzhcdTU5ODFcdTU5OWRcdTRmNWVcdTRmYWJcdTU5YTNcdTU5YjJcdTU5YzZcdTU5'@; put 'ZThcdTU5ZGNcdTU5OGRcdTU5ZDlcdTU5ZGFcdTVhMjVcdTVhMWZcdTVhMTFcdTVhMWNcdTVhMDlcdTVhMWFcdTVhNDBcdTVhNmNcdTVhNDlcdTVhMzVcdTVhMzZcdTVhNjJcdTVhNmFcdTVhOWFcdTVhYmNcdTVhYmVcdTVhY2JcdTVhYzJcdTVhYmRcdTVhZTNcdTVhZDdcdTVhZTZcdTVhZTlc'@; put 'dTVhZDZcdTVhZmFcdTVhZmJcdTViMGNcdTViMGJcdTViMTZcdTViMzJcdTVhZDBcdTViMmFcdTViMzZcdTViM2VcdTViNDNcdTViNDVcdTViNDBcdTViNTFcdTViNTVcdTViNWFcdTViNWJcdTViNjVcdTViNjlcdTViNzBcdTViNzNcdTViNzVcdTViNzhcdTY1ODhcdTViN2FcdTViODBcdTVi'@; put 'ODNcdTViYTZcdTViYjhcdTViYzNcdTViYzdcdTViYzlcdTViZDRcdTViZDBcdTViZTRcdTViZTZcdTViZTJcdTViZGVcdTViZTVcdTViZWJcdTViZjBcdTViZjZcdTViZjNcdTVjMDVcdTVjMDdcdTVjMDhcdTVjMGRcdTVjMTNcdTVjMjBcdTVjMjJcdTVjMjhcdTVjMzhcdTVjMzlcdTVjNDFc'@; put 'dTVjNDZcdTVjNGVcdTVjNTMiXSxbImQ2YTEiLCJcdTVjNTBcdTVjNGZcdTViNzFcdTVjNmNcdTVjNmVcdTRlNjJcdTVjNzZcdTVjNzlcdTVjOGNcdTVjOTFcdTVjOTRcdTU5OWJcdTVjYWJcdTVjYmJcdTVjYjZcdTVjYmNcdTVjYjdcdTVjYzVcdTVjYmVcdTVjYzdcdTVjZDlcdTVjZTlcdTVj'@; put 'ZmRcdTVjZmFcdTVjZWRcdTVkOGNcdTVjZWFcdTVkMGJcdTVkMTVcdTVkMTdcdTVkNWNcdTVkMWZcdTVkMWJcdTVkMTFcdTVkMTRcdTVkMjJcdTVkMWFcdTVkMTlcdTVkMThcdTVkNGNcdTVkNTJcdTVkNGVcdTVkNGJcdTVkNmNcdTVkNzNcdTVkNzZcdTVkODdcdTVkODRcdTVkODJcdTVkYTJc'@; put 'dTVkOWRcdTVkYWNcdTVkYWVcdTVkYmRcdTVkOTBcdTVkYjdcdTVkYmNcdTVkYzlcdTVkY2RcdTVkZDNcdTVkZDJcdTVkZDZcdTVkZGJcdTVkZWJcdTVkZjJcdTVkZjVcdTVlMGJcdTVlMWFcdTVlMTlcdTVlMTFcdTVlMWJcdTVlMzZcdTVlMzdcdTVlNDRcdTVlNDNcdTVlNDBcdTVlNGVcdTVl'@; put 'NTdcdTVlNTRcdTVlNWZcdTVlNjJcdTVlNjRcdTVlNDdcdTVlNzVcdTVlNzZcdTVlN2FcdTllYmNcdTVlN2ZcdTVlYTBcdTVlYzFcdTVlYzJcdTVlYzhcdTVlZDBcdTVlY2YiXSxbImQ3YTEiLCJcdTVlZDZcdTVlZTNcdTVlZGRcdTVlZGFcdTVlZGJcdTVlZTJcdTVlZTFcdTVlZThcdTVlZTlc'@; put 'dTVlZWNcdTVlZjFcdTVlZjNcdTVlZjBcdTVlZjRcdTVlZjhcdTVlZmVcdTVmMDNcdTVmMDlcdTVmNWRcdTVmNWNcdTVmMGJcdTVmMTFcdTVmMTZcdTVmMjlcdTVmMmRcdTVmMzhcdTVmNDFcdTVmNDhcdTVmNGNcdTVmNGVcdTVmMmZcdTVmNTFcdTVmNTZcdTVmNTdcdTVmNTlcdTVmNjFcdTVm'@; put 'NmRcdTVmNzNcdTVmNzdcdTVmODNcdTVmODJcdTVmN2ZcdTVmOGFcdTVmODhcdTVmOTFcdTVmODdcdTVmOWVcdTVmOTlcdTVmOThcdTVmYTBcdTVmYThcdTVmYWRcdTVmYmNcdTVmZDZcdTVmZmJcdTVmZTRcdTVmZjhcdTVmZjFcdTVmZGRcdTYwYjNcdTVmZmZcdTYwMjFcdTYwNjBcdTYwMTlc'@; put 'dTYwMTBcdTYwMjlcdTYwMGVcdTYwMzFcdTYwMWJcdTYwMTVcdTYwMmJcdTYwMjZcdTYwMGZcdTYwM2FcdTYwNWFcdTYwNDFcdTYwNmFcdTYwNzdcdTYwNWZcdTYwNGFcdTYwNDZcdTYwNGRcdTYwNjNcdTYwNDNcdTYwNjRcdTYwNDJcdTYwNmNcdTYwNmJcdTYwNTlcdTYwODFcdTYwOGRcdTYw'@; put 'ZTdcdTYwODNcdTYwOWEiXSxbImQ4YTEiLCJcdTYwODRcdTYwOWJcdTYwOTZcdTYwOTdcdTYwOTJcdTYwYTdcdTYwOGJcdTYwZTFcdTYwYjhcdTYwZTBcdTYwZDNcdTYwYjRcdTVmZjBcdTYwYmRcdTYwYzZcdTYwYjVcdTYwZDhcdTYxNGRcdTYxMTVcdTYxMDZcdTYwZjZcdTYwZjdcdTYxMDBc'@; put 'dTYwZjRcdTYwZmFcdTYxMDNcdTYxMjFcdTYwZmJcdTYwZjFcdTYxMGRcdTYxMGVcdTYxNDdcdTYxM2VcdTYxMjhcdTYxMjdcdTYxNGFcdTYxM2ZcdTYxM2NcdTYxMmNcdTYxMzRcdTYxM2RcdTYxNDJcdTYxNDRcdTYxNzNcdTYxNzdcdTYxNThcdTYxNTlcdTYxNWFcdTYxNmJcdTYxNzRcdTYx'@; put 'NmZcdTYxNjVcdTYxNzFcdTYxNWZcdTYxNWRcdTYxNTNcdTYxNzVcdTYxOTlcdTYxOTZcdTYxODdcdTYxYWNcdTYxOTRcdTYxOWFcdTYxOGFcdTYxOTFcdTYxYWJcdTYxYWVcdTYxY2NcdTYxY2FcdTYxYzlcdTYxZjdcdTYxYzhcdTYxYzNcdTYxYzZcdTYxYmFcdTYxY2JcdTdmNzlcdTYxY2Rc'@; put 'dTYxZTZcdTYxZTNcdTYxZjZcdTYxZmFcdTYxZjRcdTYxZmZcdTYxZmRcdTYxZmNcdTYxZmVcdTYyMDBcdTYyMDhcdTYyMDlcdTYyMGRcdTYyMGNcdTYyMTRcdTYyMWIiXSxbImQ5YTEiLCJcdTYyMWVcdTYyMjFcdTYyMmFcdTYyMmVcdTYyMzBcdTYyMzJcdTYyMzNcdTYyNDFcdTYyNGVcdTYy'@; put 'NWVcdTYyNjNcdTYyNWJcdTYyNjBcdTYyNjhcdTYyN2NcdTYyODJcdTYyODlcdTYyN2VcdTYyOTJcdTYyOTNcdTYyOTZcdTYyZDRcdTYyODNcdTYyOTRcdTYyZDdcdTYyZDFcdTYyYmJcdTYyY2ZcdTYyZmZcdTYyYzZcdTY0ZDRcdTYyYzhcdTYyZGNcdTYyY2NcdTYyY2FcdTYyYzJcdTYyYzdc'@; put 'dTYyOWJcdTYyYzlcdTYzMGNcdTYyZWVcdTYyZjFcdTYzMjdcdTYzMDJcdTYzMDhcdTYyZWZcdTYyZjVcdTYzNTBcdTYzM2VcdTYzNGRcdTY0MWNcdTYzNGZcdTYzOTZcdTYzOGVcdTYzODBcdTYzYWJcdTYzNzZcdTYzYTNcdTYzOGZcdTYzODlcdTYzOWZcdTYzYjVcdTYzNmJcdTYzNjlcdTYz'@; put 'YmVcdTYzZTlcdTYzYzBcdTYzYzZcdTYzZTNcdTYzYzlcdTYzZDJcdTYzZjZcdTYzYzRcdTY0MTZcdTY0MzRcdTY0MDZcdTY0MTNcdTY0MjZcdTY0MzZcdTY1MWRcdTY0MTdcdTY0MjhcdTY0MGZcdTY0NjdcdTY0NmZcdTY0NzZcdTY0NGVcdTY1MmFcdTY0OTVcdTY0OTNcdTY0YTVcdTY0YTlc'@; put 'dTY0ODhcdTY0YmMiXSxbImRhYTEiLCJcdTY0ZGFcdTY0ZDJcdTY0YzVcdTY0YzdcdTY0YmJcdTY0ZDhcdTY0YzJcdTY0ZjFcdTY0ZTdcdTgyMDlcdTY0ZTBcdTY0ZTFcdTYyYWNcdTY0ZTNcdTY0ZWZcdTY1MmNcdTY0ZjZcdTY0ZjRcdTY0ZjJcdTY0ZmFcdTY1MDBcdTY0ZmRcdTY1MThcdTY1'@; put 'MWNcdTY1MDVcdTY1MjRcdTY1MjNcdTY1MmJcdTY1MzRcdTY1MzVcdTY1MzdcdTY1MzZcdTY1MzhcdTc1NGJcdTY1NDhcdTY1NTZcdTY1NTVcdTY1NGRcdTY1NThcdTY1NWVcdTY1NWRcdTY1NzJcdTY1NzhcdTY1ODJcdTY1ODNcdThiOGFcdTY1OWJcdTY1OWZcdTY1YWJcdTY1YjdcdTY1YzNc'@; put 'dTY1YzZcdTY1YzFcdTY1YzRcdTY1Y2NcdTY1ZDJcdTY1ZGJcdTY1ZDlcdTY1ZTBcdTY1ZTFcdTY1ZjFcdTY3NzJcdTY2MGFcdTY2MDNcdTY1ZmJcdTY3NzNcdTY2MzVcdTY2MzZcdTY2MzRcdTY2MWNcdTY2NGZcdTY2NDRcdTY2NDlcdTY2NDFcdTY2NWVcdTY2NWRcdTY2NjRcdTY2NjdcdTY2'@; put 'NjhcdTY2NWZcdTY2NjJcdTY2NzBcdTY2ODNcdTY2ODhcdTY2OGVcdTY2ODlcdTY2ODRcdTY2OThcdTY2OWRcdTY2YzFcdTY2YjlcdTY2YzlcdTY2YmVcdTY2YmMiXSxbImRiYTEiLCJcdTY2YzRcdTY2YjhcdTY2ZDZcdTY2ZGFcdTY2ZTBcdTY2M2ZcdTY2ZTZcdTY2ZTlcdTY2ZjBcdTY2ZjVc'@; put 'dTY2ZjdcdTY3MGZcdTY3MTZcdTY3MWVcdTY3MjZcdTY3MjdcdTk3MzhcdTY3MmVcdTY3M2ZcdTY3MzZcdTY3NDFcdTY3MzhcdTY3MzdcdTY3NDZcdTY3NWVcdTY3NjBcdTY3NTlcdTY3NjNcdTY3NjRcdTY3ODlcdTY3NzBcdTY3YTlcdTY3N2NcdTY3NmFcdTY3OGNcdTY3OGJcdTY3YTZcdTY3'@; put 'YTFcdTY3ODVcdTY3YjdcdTY3ZWZcdTY3YjRcdTY3ZWNcdTY3YjNcdTY3ZTlcdTY3YjhcdTY3ZTRcdTY3ZGVcdTY3ZGRcdTY3ZTJcdTY3ZWVcdTY3YjlcdTY3Y2VcdTY3YzZcdTY3ZTdcdTZhOWNcdTY4MWVcdTY4NDZcdTY4MjlcdTY4NDBcdTY4NGRcdTY4MzJcdTY4NGVcdTY4YjNcdTY4MmJc'@; put 'dTY4NTlcdTY4NjNcdTY4NzdcdTY4N2ZcdTY4OWZcdTY4OGZcdTY4YWRcdTY4OTRcdTY4OWRcdTY4OWJcdTY4ODNcdTZhYWVcdTY4YjlcdTY4NzRcdTY4YjVcdTY4YTBcdTY4YmFcdTY5MGZcdTY4OGRcdTY4N2VcdTY5MDFcdTY4Y2FcdTY5MDhcdTY4ZDhcdTY5MjJcdTY5MjZcdTY4ZTFcdTY5'@; put 'MGNcdTY4Y2QiXSxbImRjYTEiLCJcdTY4ZDRcdTY4ZTdcdTY4ZDVcdTY5MzZcdTY5MTJcdTY5MDRcdTY4ZDdcdTY4ZTNcdTY5MjVcdTY4ZjlcdTY4ZTBcdTY4ZWZcdTY5MjhcdTY5MmFcdTY5MWFcdTY5MjNcdTY5MjFcdTY4YzZcdTY5NzlcdTY5NzdcdTY5NWNcdTY5NzhcdTY5NmJcdTY5NTRc'@; put 'dTY5N2VcdTY5NmVcdTY5MzlcdTY5NzRcdTY5M2RcdTY5NTlcdTY5MzBcdTY5NjFcdTY5NWVcdTY5NWRcdTY5ODFcdTY5NmFcdTY5YjJcdTY5YWVcdTY5ZDBcdTY5YmZcdTY5YzFcdTY5ZDNcdTY5YmVcdTY5Y2VcdTViZThcdTY5Y2FcdTY5ZGRcdTY5YmJcdTY5YzNcdTY5YTdcdTZhMmVcdTY5'@; put 'OTFcdTY5YTBcdTY5OWNcdTY5OTVcdTY5YjRcdTY5ZGVcdTY5ZThcdTZhMDJcdTZhMWJcdTY5ZmZcdTZiMGFcdTY5ZjlcdTY5ZjJcdTY5ZTdcdTZhMDVcdTY5YjFcdTZhMWVcdTY5ZWRcdTZhMTRcdTY5ZWJcdTZhMGFcdTZhMTJcdTZhYzFcdTZhMjNcdTZhMTNcdTZhNDRcdTZhMGNcdTZhNzJc'@; put 'dTZhMzZcdTZhNzhcdTZhNDdcdTZhNjJcdTZhNTlcdTZhNjZcdTZhNDhcdTZhMzhcdTZhMjJcdTZhOTBcdTZhOGRcdTZhYTBcdTZhODRcdTZhYTJcdTZhYTMiXSxbImRkYTEiLCJcdTZhOTdcdTg2MTdcdTZhYmJcdTZhYzNcdTZhYzJcdTZhYjhcdTZhYjNcdTZhYWNcdTZhZGVcdTZhZDFcdTZh'@; put 'ZGZcdTZhYWFcdTZhZGFcdTZhZWFcdTZhZmJcdTZiMDVcdTg2MTZcdTZhZmFcdTZiMTJcdTZiMTZcdTliMzFcdTZiMWZcdTZiMzhcdTZiMzdcdTc2ZGNcdTZiMzlcdTk4ZWVcdTZiNDdcdTZiNDNcdTZiNDlcdTZiNTBcdTZiNTlcdTZiNTRcdTZiNWJcdTZiNWZcdTZiNjFcdTZiNzhcdTZiNzlc'@; put 'dTZiN2ZcdTZiODBcdTZiODRcdTZiODNcdTZiOGRcdTZiOThcdTZiOTVcdTZiOWVcdTZiYTRcdTZiYWFcdTZiYWJcdTZiYWZcdTZiYjJcdTZiYjFcdTZiYjNcdTZiYjdcdTZiYmNcdTZiYzZcdTZiY2JcdTZiZDNcdTZiZGZcdTZiZWNcdTZiZWJcdTZiZjNcdTZiZWZcdTllYmVcdTZjMDhcdTZj'@; put 'MTNcdTZjMTRcdTZjMWJcdTZjMjRcdTZjMjNcdTZjNWVcdTZjNTVcdTZjNjJcdTZjNmFcdTZjODJcdTZjOGRcdTZjOWFcdTZjODFcdTZjOWJcdTZjN2VcdTZjNjhcdTZjNzNcdTZjOTJcdTZjOTBcdTZjYzRcdTZjZjFcdTZjZDNcdTZjYmRcdTZjZDdcdTZjYzVcdTZjZGRcdTZjYWVcdTZjYjFc'@; put 'dTZjYmUiXSxbImRlYTEiLCJcdTZjYmFcdTZjZGJcdTZjZWZcdTZjZDlcdTZjZWFcdTZkMWZcdTg4NGRcdTZkMzZcdTZkMmJcdTZkM2RcdTZkMzhcdTZkMTlcdTZkMzVcdTZkMzNcdTZkMTJcdTZkMGNcdTZkNjNcdTZkOTNcdTZkNjRcdTZkNWFcdTZkNzlcdTZkNTlcdTZkOGVcdTZkOTVcdTZm'@; put 'ZTRcdTZkODVcdTZkZjlcdTZlMTVcdTZlMGFcdTZkYjVcdTZkYzdcdTZkZTZcdTZkYjhcdTZkYzZcdTZkZWNcdTZkZGVcdTZkY2NcdTZkZThcdTZkZDJcdTZkYzVcdTZkZmFcdTZkZDlcdTZkZTRcdTZkZDVcdTZkZWFcdTZkZWVcdTZlMmRcdTZlNmVcdTZlMmVcdTZlMTlcdTZlNzJcdTZlNWZc'@; put 'dTZlM2VcdTZlMjNcdTZlNmJcdTZlMmJcdTZlNzZcdTZlNGRcdTZlMWZcdTZlNDNcdTZlM2FcdTZlNGVcdTZlMjRcdTZlZmZcdTZlMWRcdTZlMzhcdTZlODJcdTZlYWFcdTZlOThcdTZlYzlcdTZlYjdcdTZlZDNcdTZlYmRcdTZlYWZcdTZlYzRcdTZlYjJcdTZlZDRcdTZlZDVcdTZlOGZcdTZl'@; put 'YTVcdTZlYzJcdTZlOWZcdTZmNDFcdTZmMTFcdTcwNGNcdTZlZWNcdTZlZjhcdTZlZmVcdTZmM2ZcdTZlZjJcdTZmMzFcdTZlZWZcdTZmMzJcdTZlY2MiXSxbImRmYTEiLCJcdTZmM2VcdTZmMTNcdTZlZjdcdTZmODZcdTZmN2FcdTZmNzhcdTZmODFcdTZmODBcdTZmNmZcdTZmNWJcdTZmZjNc'@; put 'dTZmNmRcdTZmODJcdTZmN2NcdTZmNThcdTZmOGVcdTZmOTFcdTZmYzJcdTZmNjZcdTZmYjNcdTZmYTNcdTZmYTFcdTZmYTRcdTZmYjlcdTZmYzZcdTZmYWFcdTZmZGZcdTZmZDVcdTZmZWNcdTZmZDRcdTZmZDhcdTZmZjFcdTZmZWVcdTZmZGJcdTcwMDlcdTcwMGJcdTZmZmFcdTcwMTFcdTcw'@; put 'MDFcdTcwMGZcdTZmZmVcdTcwMWJcdTcwMWFcdTZmNzRcdTcwMWRcdTcwMThcdTcwMWZcdTcwMzBcdTcwM2VcdTcwMzJcdTcwNTFcdTcwNjNcdTcwOTlcdTcwOTJcdTcwYWZcdTcwZjFcdTcwYWNcdTcwYjhcdTcwYjNcdTcwYWVcdTcwZGZcdTcwY2JcdTcwZGRcdTcwZDlcdTcxMDlcdTcwZmRc'@; put 'dTcxMWNcdTcxMTlcdTcxNjVcdTcxNTVcdTcxODhcdTcxNjZcdTcxNjJcdTcxNGNcdTcxNTZcdTcxNmNcdTcxOGZcdTcxZmJcdTcxODRcdTcxOTVcdTcxYThcdTcxYWNcdTcxZDdcdTcxYjlcdTcxYmVcdTcxZDJcdTcxYzlcdTcxZDRcdTcxY2VcdTcxZTBcdTcxZWNcdTcxZTdcdTcxZjVcdTcx'@; put 'ZmMiXSxbImUwYTEiLCJcdTcxZjlcdTcxZmZcdTcyMGRcdTcyMTBcdTcyMWJcdTcyMjhcdTcyMmRcdTcyMmNcdTcyMzBcdTcyMzJcdTcyM2JcdTcyM2NcdTcyM2ZcdTcyNDBcdTcyNDZcdTcyNGJcdTcyNThcdTcyNzRcdTcyN2VcdTcyODJcdTcyODFcdTcyODdcdTcyOTJcdTcyOTZcdTcyYTJc'@; put 'dTcyYTdcdTcyYjlcdTcyYjJcdTcyYzNcdTcyYzZcdTcyYzRcdTcyY2VcdTcyZDJcdTcyZTJcdTcyZTBcdTcyZTFcdTcyZjlcdTcyZjdcdTUwMGZcdTczMTdcdTczMGFcdTczMWNcdTczMTZcdTczMWRcdTczMzRcdTczMmZcdTczMjlcdTczMjVcdTczM2VcdTczNGVcdTczNGZcdTllZDhcdTcz'@; put 'NTdcdTczNmFcdTczNjhcdTczNzBcdTczNzhcdTczNzVcdTczN2JcdTczN2FcdTczYzhcdTczYjNcdTczY2VcdTczYmJcdTczYzBcdTczZTVcdTczZWVcdTczZGVcdTc0YTJcdTc0MDVcdTc0NmZcdTc0MjVcdTczZjhcdTc0MzJcdTc0M2FcdTc0NTVcdTc0M2ZcdTc0NWZcdTc0NTlcdTc0NDFc'@; put 'dTc0NWNcdTc0NjlcdTc0NzBcdTc0NjNcdTc0NmFcdTc0NzZcdTc0N2VcdTc0OGJcdTc0OWVcdTc0YTdcdTc0Y2FcdTc0Y2ZcdTc0ZDRcdTczZjEiXSxbImUxYTEiLCJcdTc0ZTBcdTc0ZTNcdTc0ZTdcdTc0ZTlcdTc0ZWVcdTc0ZjJcdTc0ZjBcdTc0ZjFcdTc0ZjhcdTc0ZjdcdTc1MDRcdTc1'@; put 'MDNcdTc1MDVcdTc1MGNcdTc1MGVcdTc1MGRcdTc1MTVcdTc1MTNcdTc1MWVcdTc1MjZcdTc1MmNcdTc1M2NcdTc1NDRcdTc1NGRcdTc1NGFcdTc1NDlcdTc1NWJcdTc1NDZcdTc1NWFcdTc1NjlcdTc1NjRcdTc1NjdcdTc1NmJcdTc1NmRcdTc1NzhcdTc1NzZcdTc1ODZcdTc1ODdcdTc1NzRc'@; put 'dTc1OGFcdTc1ODlcdTc1ODJcdTc1OTRcdTc1OWFcdTc1OWRcdTc1YTVcdTc1YTNcdTc1YzJcdTc1YjNcdTc1YzNcdTc1YjVcdTc1YmRcdTc1YjhcdTc1YmNcdTc1YjFcdTc1Y2RcdTc1Y2FcdTc1ZDJcdTc1ZDlcdTc1ZTNcdTc1ZGVcdTc1ZmVcdTc1ZmZcdTc1ZmNcdTc2MDFcdTc1ZjBcdTc1'@; put 'ZmFcdTc1ZjJcdTc1ZjNcdTc2MGJcdTc2MGRcdTc2MDlcdTc2MWZcdTc2MjdcdTc2MjBcdTc2MjFcdTc2MjJcdTc2MjRcdTc2MzRcdTc2MzBcdTc2M2JcdTc2NDdcdTc2NDhcdTc2NDZcdTc2NWNcdTc2NThcdTc2NjFcdTc2NjJcdTc2NjhcdTc2NjlcdTc2NmFcdTc2NjdcdTc2NmNcdTc2NzAi'@; put 'XSxbImUyYTEiLCJcdTc2NzJcdTc2NzZcdTc2NzhcdTc2N2NcdTc2ODBcdTc2ODNcdTc2ODhcdTc2OGJcdTc2OGVcdTc2OTZcdTc2OTNcdTc2OTlcdTc2OWFcdTc2YjBcdTc2YjRcdTc2YjhcdTc2YjlcdTc2YmFcdTc2YzJcdTc2Y2RcdTc2ZDZcdTc2ZDJcdTc2ZGVcdTc2ZTFcdTc2ZTVcdTc2'@; put 'ZTdcdTc2ZWFcdTg2MmZcdTc2ZmJcdTc3MDhcdTc3MDdcdTc3MDRcdTc3MjlcdTc3MjRcdTc3MWVcdTc3MjVcdTc3MjZcdTc3MWJcdTc3MzdcdTc3MzhcdTc3NDdcdTc3NWFcdTc3NjhcdTc3NmJcdTc3NWJcdTc3NjVcdTc3N2ZcdTc3N2VcdTc3NzlcdTc3OGVcdTc3OGJcdTc3OTFcdTc3YTBc'@; put 'dTc3OWVcdTc3YjBcdTc3YjZcdTc3YjlcdTc3YmZcdTc3YmNcdTc3YmRcdTc3YmJcdTc3YzdcdTc3Y2RcdTc3ZDdcdTc3ZGFcdTc3ZGNcdTc3ZTNcdTc3ZWVcdTc3ZmNcdTc4MGNcdTc4MTJcdTc5MjZcdTc4MjBcdTc5MmFcdTc4NDVcdTc4OGVcdTc4NzRcdTc4ODZcdTc4N2NcdTc4OWFcdTc4'@; put 'OGNcdTc4YTNcdTc4YjVcdTc4YWFcdTc4YWZcdTc4ZDFcdTc4YzZcdTc4Y2JcdTc4ZDRcdTc4YmVcdTc4YmNcdTc4YzVcdTc4Y2FcdTc4ZWMiXSxbImUzYTEiLCJcdTc4ZTdcdTc4ZGFcdTc4ZmRcdTc4ZjRcdTc5MDdcdTc5MTJcdTc5MTFcdTc5MTlcdTc5MmNcdTc5MmJcdTc5NDBcdTc5NjBc'@; put 'dTc5NTdcdTc5NWZcdTc5NWFcdTc5NTVcdTc5NTNcdTc5N2FcdTc5N2ZcdTc5OGFcdTc5OWRcdTc5YTdcdTlmNGJcdTc5YWFcdTc5YWVcdTc5YjNcdTc5YjlcdTc5YmFcdTc5YzlcdTc5ZDVcdTc5ZTdcdTc5ZWNcdTc5ZTFcdTc5ZTNcdTdhMDhcdTdhMGRcdTdhMThcdTdhMTlcdTdhMjBcdTdh'@; put 'MWZcdTc5ODBcdTdhMzFcdTdhM2JcdTdhM2VcdTdhMzdcdTdhNDNcdTdhNTdcdTdhNDlcdTdhNjFcdTdhNjJcdTdhNjlcdTlmOWRcdTdhNzBcdTdhNzlcdTdhN2RcdTdhODhcdTdhOTdcdTdhOTVcdTdhOThcdTdhOTZcdTdhYTlcdTdhYzhcdTdhYjBcdTdhYjZcdTdhYzVcdTdhYzRcdTdhYmZc'@; put 'dTkwODNcdTdhYzdcdTdhY2FcdTdhY2RcdTdhY2ZcdTdhZDVcdTdhZDNcdTdhZDlcdTdhZGFcdTdhZGRcdTdhZTFcdTdhZTJcdTdhZTZcdTdhZWRcdTdhZjBcdTdiMDJcdTdiMGZcdTdiMGFcdTdiMDZcdTdiMzNcdTdiMThcdTdiMTlcdTdiMWVcdTdiMzVcdTdiMjhcdTdiMzZcdTdiNTAiXSxb'@; put 'ImU0YTEiLCJcdTdiN2FcdTdiMDRcdTdiNGRcdTdiMGJcdTdiNGNcdTdiNDVcdTdiNzVcdTdiNjVcdTdiNzRcdTdiNjdcdTdiNzBcdTdiNzFcdTdiNmNcdTdiNmVcdTdiOWRcdTdiOThcdTdiOWZcdTdiOGRcdTdiOWNcdTdiOWFcdTdiOGJcdTdiOTJcdTdiOGZcdTdiNWRcdTdiOTlcdTdiY2Jc'@; put 'dTdiYzFcdTdiY2NcdTdiY2ZcdTdiYjRcdTdiYzZcdTdiZGRcdTdiZTlcdTdjMTFcdTdjMTRcdTdiZTZcdTdiZTVcdTdjNjBcdTdjMDBcdTdjMDdcdTdjMTNcdTdiZjNcdTdiZjdcdTdjMTdcdTdjMGRcdTdiZjZcdTdjMjNcdTdjMjdcdTdjMmFcdTdjMWZcdTdjMzdcdTdjMmJcdTdjM2RcdTdj'@; put 'NGNcdTdjNDNcdTdjNTRcdTdjNGZcdTdjNDBcdTdjNTBcdTdjNThcdTdjNWZcdTdjNjRcdTdjNTZcdTdjNjVcdTdjNmNcdTdjNzVcdTdjODNcdTdjOTBcdTdjYTRcdTdjYWRcdTdjYTJcdTdjYWJcdTdjYTFcdTdjYThcdTdjYjNcdTdjYjJcdTdjYjFcdTdjYWVcdTdjYjlcdTdjYmRcdTdjYzBc'@; put 'dTdjYzVcdTdjYzJcdTdjZDhcdTdjZDJcdTdjZGNcdTdjZTJcdTliM2JcdTdjZWZcdTdjZjJcdTdjZjRcdTdjZjZcdTdjZmFcdTdkMDYiXSxbImU1YTEiLCJcdTdkMDJcdTdkMWNcdTdkMTVcdTdkMGFcdTdkNDVcdTdkNGJcdTdkMmVcdTdkMzJcdTdkM2ZcdTdkMzVcdTdkNDZcdTdkNzNcdTdk'@; put 'NTZcdTdkNGVcdTdkNzJcdTdkNjhcdTdkNmVcdTdkNGZcdTdkNjNcdTdkOTNcdTdkODlcdTdkNWJcdTdkOGZcdTdkN2RcdTdkOWJcdTdkYmFcdTdkYWVcdTdkYTNcdTdkYjVcdTdkYzdcdTdkYmRcdTdkYWJcdTdlM2RcdTdkYTJcdTdkYWZcdTdkZGNcdTdkYjhcdTdkOWZcdTdkYjBcdTdkZDhc'@; put 'dTdkZGRcdTdkZTRcdTdkZGVcdTdkZmJcdTdkZjJcdTdkZTFcdTdlMDVcdTdlMGFcdTdlMjNcdTdlMjFcdTdlMTJcdTdlMzFcdTdlMWZcdTdlMDlcdTdlMGJcdTdlMjJcdTdlNDZcdTdlNjZcdTdlM2JcdTdlMzVcdTdlMzlcdTdlNDNcdTdlMzdcdTdlMzJcdTdlM2FcdTdlNjdcdTdlNWRcdTdl'@; put 'NTZcdTdlNWVcdTdlNTlcdTdlNWFcdTdlNzlcdTdlNmFcdTdlNjlcdTdlN2NcdTdlN2JcdTdlODNcdTdkZDVcdTdlN2RcdThmYWVcdTdlN2ZcdTdlODhcdTdlODlcdTdlOGNcdTdlOTJcdTdlOTBcdTdlOTNcdTdlOTRcdTdlOTZcdTdlOGVcdTdlOWJcdTdlOWNcdTdmMzhcdTdmM2EiXSxbImU2'@; put 'YTEiLCJcdTdmNDVcdTdmNGNcdTdmNGRcdTdmNGVcdTdmNTBcdTdmNTFcdTdmNTVcdTdmNTRcdTdmNThcdTdmNWZcdTdmNjBcdTdmNjhcdTdmNjlcdTdmNjdcdTdmNzhcdTdmODJcdTdmODZcdTdmODNcdTdmODhcdTdmODdcdTdmOGNcdTdmOTRcdTdmOWVcdTdmOWRcdTdmOWFcdTdmYTNcdTdm'@; put 'YWZcdTdmYjJcdTdmYjlcdTdmYWVcdTdmYjZcdTdmYjhcdThiNzFcdTdmYzVcdTdmYzZcdTdmY2FcdTdmZDVcdTdmZDRcdTdmZTFcdTdmZTZcdTdmZTlcdTdmZjNcdTdmZjlcdTk4ZGNcdTgwMDZcdTgwMDRcdTgwMGJcdTgwMTJcdTgwMThcdTgwMTlcdTgwMWNcdTgwMjFcdTgwMjhcdTgwM2Zc'@; put 'dTgwM2JcdTgwNGFcdTgwNDZcdTgwNTJcdTgwNThcdTgwNWFcdTgwNWZcdTgwNjJcdTgwNjhcdTgwNzNcdTgwNzJcdTgwNzBcdTgwNzZcdTgwNzlcdTgwN2RcdTgwN2ZcdTgwODRcdTgwODZcdTgwODVcdTgwOWJcdTgwOTNcdTgwOWFcdTgwYWRcdTUxOTBcdTgwYWNcdTgwZGJcdTgwZTVcdTgw'@; put 'ZDlcdTgwZGRcdTgwYzRcdTgwZGFcdTgwZDZcdTgxMDlcdTgwZWZcdTgwZjFcdTgxMWJcdTgxMjlcdTgxMjNcdTgxMmZcdTgxNGIiXSxbImU3YTEiLCJcdTk2OGJcdTgxNDZcdTgxM2VcdTgxNTNcdTgxNTFcdTgwZmNcdTgxNzFcdTgxNmVcdTgxNjVcdTgxNjZcdTgxNzRcdTgxODNcdTgxODhc'@; put 'dTgxOGFcdTgxODBcdTgxODJcdTgxYTBcdTgxOTVcdTgxYTRcdTgxYTNcdTgxNWZcdTgxOTNcdTgxYTlcdTgxYjBcdTgxYjVcdTgxYmVcdTgxYjhcdTgxYmRcdTgxYzBcdTgxYzJcdTgxYmFcdTgxYzlcdTgxY2RcdTgxZDFcdTgxZDlcdTgxZDhcdTgxYzhcdTgxZGFcdTgxZGZcdTgxZTBcdTgx'@; put 'ZTdcdTgxZmFcdTgxZmJcdTgxZmVcdTgyMDFcdTgyMDJcdTgyMDVcdTgyMDdcdTgyMGFcdTgyMGRcdTgyMTBcdTgyMTZcdTgyMjlcdTgyMmJcdTgyMzhcdTgyMzNcdTgyNDBcdTgyNTlcdTgyNThcdTgyNWRcdTgyNWFcdTgyNWZcdTgyNjRcdTgyNjJcdTgyNjhcdTgyNmFcdTgyNmJcdTgyMmVc'@; put 'dTgyNzFcdTgyNzdcdTgyNzhcdTgyN2VcdTgyOGRcdTgyOTJcdTgyYWJcdTgyOWZcdTgyYmJcdTgyYWNcdTgyZTFcdTgyZTNcdTgyZGZcdTgyZDJcdTgyZjRcdTgyZjNcdTgyZmFcdTgzOTNcdTgzMDNcdTgyZmJcdTgyZjlcdTgyZGVcdTgzMDZcdTgyZGNcdTgzMDlcdTgyZDkiXSxbImU4YTEi'@; put 'LCJcdTgzMzVcdTgzMzRcdTgzMTZcdTgzMzJcdTgzMzFcdTgzNDBcdTgzMzlcdTgzNTBcdTgzNDVcdTgzMmZcdTgzMmJcdTgzMTdcdTgzMThcdTgzODVcdTgzOWFcdTgzYWFcdTgzOWZcdTgzYTJcdTgzOTZcdTgzMjNcdTgzOGVcdTgzODdcdTgzOGFcdTgzN2NcdTgzYjVcdTgzNzNcdTgzNzVc'@; put 'dTgzYTBcdTgzODlcdTgzYThcdTgzZjRcdTg0MTNcdTgzZWJcdTgzY2VcdTgzZmRcdTg0MDNcdTgzZDhcdTg0MGJcdTgzYzFcdTgzZjdcdTg0MDdcdTgzZTBcdTgzZjJcdTg0MGRcdTg0MjJcdTg0MjBcdTgzYmRcdTg0MzhcdTg1MDZcdTgzZmJcdTg0NmRcdTg0MmFcdTg0M2NcdTg1NWFcdTg0'@; put 'ODRcdTg0NzdcdTg0NmJcdTg0YWRcdTg0NmVcdTg0ODJcdTg0NjlcdTg0NDZcdTg0MmNcdTg0NmZcdTg0NzlcdTg0MzVcdTg0Y2FcdTg0NjJcdTg0YjlcdTg0YmZcdTg0OWZcdTg0ZDlcdTg0Y2RcdTg0YmJcdTg0ZGFcdTg0ZDBcdTg0YzFcdTg0YzZcdTg0ZDZcdTg0YTFcdTg1MjFcdTg0ZmZc'@; put 'dTg0ZjRcdTg1MTdcdTg1MThcdTg1MmNcdTg1MWZcdTg1MTVcdTg1MTRcdTg0ZmNcdTg1NDBcdTg1NjNcdTg1NThcdTg1NDgiXSxbImU5YTEiLCJcdTg1NDFcdTg2MDJcdTg1NGJcdTg1NTVcdTg1ODBcdTg1YTRcdTg1ODhcdTg1OTFcdTg1OGFcdTg1YThcdTg1NmRcdTg1OTRcdTg1OWJcdTg1'@; put 'ZWFcdTg1ODdcdTg1OWNcdTg1NzdcdTg1N2VcdTg1OTBcdTg1YzlcdTg1YmFcdTg1Y2ZcdTg1YjlcdTg1ZDBcdTg1ZDVcdTg1ZGRcdTg1ZTVcdTg1ZGNcdTg1ZjlcdTg2MGFcdTg2MTNcdTg2MGJcdTg1ZmVcdTg1ZmFcdTg2MDZcdTg2MjJcdTg2MWFcdTg2MzBcdTg2M2ZcdTg2NGRcdTRlNTVc'@; put 'dTg2NTRcdTg2NWZcdTg2NjdcdTg2NzFcdTg2OTNcdTg2YTNcdTg2YTlcdTg2YWFcdTg2OGJcdTg2OGNcdTg2YjZcdTg2YWZcdTg2YzRcdTg2YzZcdTg2YjBcdTg2YzlcdTg4MjNcdTg2YWJcdTg2ZDRcdTg2ZGVcdTg2ZTlcdTg2ZWNcdTg2ZGZcdTg2ZGJcdTg2ZWZcdTg3MTJcdTg3MDZcdTg3'@; put 'MDhcdTg3MDBcdTg3MDNcdTg2ZmJcdTg3MTFcdTg3MDlcdTg3MGRcdTg2ZjlcdTg3MGFcdTg3MzRcdTg3M2ZcdTg3MzdcdTg3M2JcdTg3MjVcdTg3MjlcdTg3MWFcdTg3NjBcdTg3NWZcdTg3NzhcdTg3NGNcdTg3NGVcdTg3NzRcdTg3NTdcdTg3NjhcdTg3NmVcdTg3NTkiXSxbImVhYTEiLCJc'@; put 'dTg3NTNcdTg3NjNcdTg3NmFcdTg4MDVcdTg3YTJcdTg3OWZcdTg3ODJcdTg3YWZcdTg3Y2JcdTg3YmRcdTg3YzBcdTg3ZDBcdTk2ZDZcdTg3YWJcdTg3YzRcdTg3YjNcdTg3YzdcdTg3YzZcdTg3YmJcdTg3ZWZcdTg3ZjJcdTg3ZTBcdTg4MGZcdTg4MGRcdTg3ZmVcdTg3ZjZcdTg3ZjdcdTg4'@; put 'MGVcdTg3ZDJcdTg4MTFcdTg4MTZcdTg4MTVcdTg4MjJcdTg4MjFcdTg4MzFcdTg4MzZcdTg4MzlcdTg4MjdcdTg4M2JcdTg4NDRcdTg4NDJcdTg4NTJcdTg4NTlcdTg4NWVcdTg4NjJcdTg4NmJcdTg4ODFcdTg4N2VcdTg4OWVcdTg4NzVcdTg4N2RcdTg4YjVcdTg4NzJcdTg4ODJcdTg4OTdc'@; put 'dTg4OTJcdTg4YWVcdTg4OTlcdTg4YTJcdTg4OGRcdTg4YTRcdTg4YjBcdTg4YmZcdTg4YjFcdTg4YzNcdTg4YzRcdTg4ZDRcdTg4ZDhcdTg4ZDlcdTg4ZGRcdTg4ZjlcdTg5MDJcdTg4ZmNcdTg4ZjRcdTg4ZThcdTg4ZjJcdTg5MDRcdTg5MGNcdTg5MGFcdTg5MTNcdTg5NDNcdTg5MWVcdTg5'@; put 'MjVcdTg5MmFcdTg5MmJcdTg5NDFcdTg5NDRcdTg5M2JcdTg5MzZcdTg5MzhcdTg5NGNcdTg5MWRcdTg5NjBcdTg5NWUiXSxbImViYTEiLCJcdTg5NjZcdTg5NjRcdTg5NmRcdTg5NmFcdTg5NmZcdTg5NzRcdTg5NzdcdTg5N2VcdTg5ODNcdTg5ODhcdTg5OGFcdTg5OTNcdTg5OThcdTg5YTFc'@; put 'dTg5YTlcdTg5YTZcdTg5YWNcdTg5YWZcdTg5YjJcdTg5YmFcdTg5YmRcdTg5YmZcdTg5YzBcdTg5ZGFcdTg5ZGNcdTg5ZGRcdTg5ZTdcdTg5ZjRcdTg5ZjhcdThhMDNcdThhMTZcdThhMTBcdThhMGNcdThhMWJcdThhMWRcdThhMjVcdThhMzZcdThhNDFcdThhNWJcdThhNTJcdThhNDZcdThh'@; put 'NDhcdThhN2NcdThhNmRcdThhNmNcdThhNjJcdThhODVcdThhODJcdThhODRcdThhYThcdThhYTFcdThhOTFcdThhYTVcdThhYTZcdThhOWFcdThhYTNcdThhYzRcdThhY2RcdThhYzJcdThhZGFcdThhZWJcdThhZjNcdThhZTdcdThhZTRcdThhZjFcdThiMTRcdThhZTBcdThhZTJcdThhZjdc'@; put 'dThhZGVcdThhZGJcdThiMGNcdThiMDdcdThiMWFcdThhZTFcdThiMTZcdThiMTBcdThiMTdcdThiMjBcdThiMzNcdTk3YWJcdThiMjZcdThiMmJcdThiM2VcdThiMjhcdThiNDFcdThiNGNcdThiNGZcdThiNGVcdThiNDlcdThiNTZcdThiNWJcdThiNWFcdThiNmIiXSxbImVjYTEiLCJcdThi'@; put 'NWZcdThiNmNcdThiNmZcdThiNzRcdThiN2RcdThiODBcdThiOGNcdThiOGVcdThiOTJcdThiOTNcdThiOTZcdThiOTlcdThiOWFcdThjM2FcdThjNDFcdThjM2ZcdThjNDhcdThjNGNcdThjNGVcdThjNTBcdThjNTVcdThjNjJcdThjNmNcdThjNzhcdThjN2FcdThjODJcdThjODlcdThjODVc'@; put 'dThjOGFcdThjOGRcdThjOGVcdThjOTRcdThjN2NcdThjOThcdTYyMWRcdThjYWRcdThjYWFcdThjYmRcdThjYjJcdThjYjNcdThjYWVcdThjYjZcdThjYzhcdThjYzFcdThjZTRcdThjZTNcdThjZGFcdThjZmRcdThjZmFcdThjZmJcdThkMDRcdThkMDVcdThkMGFcdThkMDdcdThkMGZcdThk'@; put 'MGRcdThkMTBcdTlmNGVcdThkMTNcdThjY2RcdThkMTRcdThkMTZcdThkNjdcdThkNmRcdThkNzFcdThkNzNcdThkODFcdThkOTlcdThkYzJcdThkYmVcdThkYmFcdThkY2ZcdThkZGFcdThkZDZcdThkY2NcdThkZGJcdThkY2JcdThkZWFcdThkZWJcdThkZGZcdThkZTNcdThkZmNcdThlMDhc'@; put 'dThlMDlcdThkZmZcdThlMWRcdThlMWVcdThlMTBcdThlMWZcdThlNDJcdThlMzVcdThlMzBcdThlMzRcdThlNGEiXSxbImVkYTEiLCJcdThlNDdcdThlNDlcdThlNGNcdThlNTBcdThlNDhcdThlNTlcdThlNjRcdThlNjBcdThlMmFcdThlNjNcdThlNTVcdThlNzZcdThlNzJcdThlN2NcdThl'@; put 'ODFcdThlODdcdThlODVcdThlODRcdThlOGJcdThlOGFcdThlOTNcdThlOTFcdThlOTRcdThlOTlcdThlYWFcdThlYTFcdThlYWNcdThlYjBcdThlYzZcdThlYjFcdThlYmVcdThlYzVcdThlYzhcdThlY2JcdThlZGJcdThlZTNcdThlZmNcdThlZmJcdThlZWJcdThlZmVcdThmMGFcdThmMDVc'@; put 'dThmMTVcdThmMTJcdThmMTlcdThmMTNcdThmMWNcdThmMWZcdThmMWJcdThmMGNcdThmMjZcdThmMzNcdThmM2JcdThmMzlcdThmNDVcdThmNDJcdThmM2VcdThmNGNcdThmNDlcdThmNDZcdThmNGVcdThmNTdcdThmNWNcdThmNjJcdThmNjNcdThmNjRcdThmOWNcdThmOWZcdThmYTNcdThm'@; put 'YWRcdThmYWZcdThmYjdcdThmZGFcdThmZTVcdThmZTJcdThmZWFcdThmZWZcdTkwODdcdThmZjRcdTkwMDVcdThmZjlcdThmZmFcdTkwMTFcdTkwMTVcdTkwMjFcdTkwMGRcdTkwMWVcdTkwMTZcdTkwMGJcdTkwMjdcdTkwMzZcdTkwMzVcdTkwMzlcdThmZjgiXSxbImVlYTEiLCJcdTkwNGZc'@; put 'dTkwNTBcdTkwNTFcdTkwNTJcdTkwMGVcdTkwNDlcdTkwM2VcdTkwNTZcdTkwNThcdTkwNWVcdTkwNjhcdTkwNmZcdTkwNzZcdTk2YThcdTkwNzJcdTkwODJcdTkwN2RcdTkwODFcdTkwODBcdTkwOGFcdTkwODlcdTkwOGZcdTkwYThcdTkwYWZcdTkwYjFcdTkwYjVcdTkwZTJcdTkwZTRcdTYy'@; put 'NDhcdTkwZGJcdTkxMDJcdTkxMTJcdTkxMTlcdTkxMzJcdTkxMzBcdTkxNGFcdTkxNTZcdTkxNThcdTkxNjNcdTkxNjVcdTkxNjlcdTkxNzNcdTkxNzJcdTkxOGJcdTkxODlcdTkxODJcdTkxYTJcdTkxYWJcdTkxYWZcdTkxYWFcdTkxYjVcdTkxYjRcdTkxYmFcdTkxYzBcdTkxYzFcdTkxYzlc'@; put 'dTkxY2JcdTkxZDBcdTkxZDZcdTkxZGZcdTkxZTFcdTkxZGJcdTkxZmNcdTkxZjVcdTkxZjZcdTkyMWVcdTkxZmZcdTkyMTRcdTkyMmNcdTkyMTVcdTkyMTFcdTkyNWVcdTkyNTdcdTkyNDVcdTkyNDlcdTkyNjRcdTkyNDhcdTkyOTVcdTkyM2ZcdTkyNGJcdTkyNTBcdTkyOWNcdTkyOTZcdTky'@; put 'OTNcdTkyOWJcdTkyNWFcdTkyY2ZcdTkyYjlcdTkyYjdcdTkyZTlcdTkzMGZcdTkyZmFcdTkzNDRcdTkzMmUiXSxbImVmYTEiLCJcdTkzMTlcdTkzMjJcdTkzMWFcdTkzMjNcdTkzM2FcdTkzMzVcdTkzM2JcdTkzNWNcdTkzNjBcdTkzN2NcdTkzNmVcdTkzNTZcdTkzYjBcdTkzYWNcdTkzYWRc'@; put 'dTkzOTRcdTkzYjlcdTkzZDZcdTkzZDdcdTkzZThcdTkzZTVcdTkzZDhcdTkzYzNcdTkzZGRcdTkzZDBcdTkzYzhcdTkzZTRcdTk0MWFcdTk0MTRcdTk0MTNcdTk0MDNcdTk0MDdcdTk0MTBcdTk0MzZcdTk0MmJcdTk0MzVcdTk0MjFcdTk0M2FcdTk0NDFcdTk0NTJcdTk0NDRcdTk0NWJcdTk0'@; put 'NjBcdTk0NjJcdTk0NWVcdTk0NmFcdTkyMjlcdTk0NzBcdTk0NzVcdTk0NzdcdTk0N2RcdTk0NWFcdTk0N2NcdTk0N2VcdTk0ODFcdTk0N2ZcdTk1ODJcdTk1ODdcdTk1OGFcdTk1OTRcdTk1OTZcdTk1OThcdTk1OTlcdTk1YTBcdTk1YThcdTk1YTdcdTk1YWRcdTk1YmNcdTk1YmJcdTk1Yjlc'@; put 'dTk1YmVcdTk1Y2FcdTZmZjZcdTk1YzNcdTk1Y2RcdTk1Y2NcdTk1ZDVcdTk1ZDRcdTk1ZDZcdTk1ZGNcdTk1ZTFcdTk1ZTVcdTk1ZTJcdTk2MjFcdTk2MjhcdTk2MmVcdTk2MmZcdTk2NDJcdTk2NGNcdTk2NGZcdTk2NGJcdTk2NzdcdTk2NWNcdTk2NWUiXSxbImYwYTEiLCJcdTk2NWRcdTk2'@; put 'NWZcdTk2NjZcdTk2NzJcdTk2NmNcdTk2OGRcdTk2OThcdTk2OTVcdTk2OTdcdTk2YWFcdTk2YTdcdTk2YjFcdTk2YjJcdTk2YjBcdTk2YjRcdTk2YjZcdTk2YjhcdTk2YjlcdTk2Y2VcdTk2Y2JcdTk2YzlcdTk2Y2RcdTg5NGRcdTk2ZGNcdTk3MGRcdTk2ZDVcdTk2ZjlcdTk3MDRcdTk3MDZc'@; put 'dTk3MDhcdTk3MTNcdTk3MGVcdTk3MTFcdTk3MGZcdTk3MTZcdTk3MTlcdTk3MjRcdTk3MmFcdTk3MzBcdTk3MzlcdTk3M2RcdTk3M2VcdTk3NDRcdTk3NDZcdTk3NDhcdTk3NDJcdTk3NDlcdTk3NWNcdTk3NjBcdTk3NjRcdTk3NjZcdTk3NjhcdTUyZDJcdTk3NmJcdTk3NzFcdTk3NzlcdTk3'@; put 'ODVcdTk3N2NcdTk3ODFcdTk3N2FcdTk3ODZcdTk3OGJcdTk3OGZcdTk3OTBcdTk3OWNcdTk3YThcdTk3YTZcdTk3YTNcdTk3YjNcdTk3YjRcdTk3YzNcdTk3YzZcdTk3YzhcdTk3Y2JcdTk3ZGNcdTk3ZWRcdTlmNGZcdTk3ZjJcdTdhZGZcdTk3ZjZcdTk3ZjVcdTk4MGZcdTk4MGNcdTk4Mzhc'@; put 'dTk4MjRcdTk4MjFcdTk4MzdcdTk4M2RcdTk4NDZcdTk4NGZcdTk4NGJcdTk4NmJcdTk4NmZcdTk4NzAiXSxbImYxYTEiLCJcdTk4NzFcdTk4NzRcdTk4NzNcdTk4YWFcdTk4YWZcdTk4YjFcdTk4YjZcdTk4YzRcdTk4YzNcdTk4YzZcdTk4ZTlcdTk4ZWJcdTk5MDNcdTk5MDlcdTk5MTJcdTk5'@; put 'MTRcdTk5MThcdTk5MjFcdTk5MWRcdTk5MWVcdTk5MjRcdTk5MjBcdTk5MmNcdTk5MmVcdTk5M2RcdTk5M2VcdTk5NDJcdTk5NDlcdTk5NDVcdTk5NTBcdTk5NGJcdTk5NTFcdTk5NTJcdTk5NGNcdTk5NTVcdTk5OTdcdTk5OThcdTk5YTVcdTk5YWRcdTk5YWVcdTk5YmNcdTk5ZGZcdTk5ZGJc'@; put 'dTk5ZGRcdTk5ZDhcdTk5ZDFcdTk5ZWRcdTk5ZWVcdTk5ZjFcdTk5ZjJcdTk5ZmJcdTk5ZjhcdTlhMDFcdTlhMGZcdTlhMDVcdTk5ZTJcdTlhMTlcdTlhMmJcdTlhMzdcdTlhNDVcdTlhNDJcdTlhNDBcdTlhNDNcdTlhM2VcdTlhNTVcdTlhNGRcdTlhNWJcdTlhNTdcdTlhNWZcdTlhNjJcdTlh'@; put 'NjVcdTlhNjRcdTlhNjlcdTlhNmJcdTlhNmFcdTlhYWRcdTlhYjBcdTlhYmNcdTlhYzBcdTlhY2ZcdTlhZDFcdTlhZDNcdTlhZDRcdTlhZGVcdTlhZGZcdTlhZTJcdTlhZTNcdTlhZTZcdTlhZWZcdTlhZWJcdTlhZWVcdTlhZjRcdTlhZjFcdTlhZjciXSxbImYyYTEiLCJcdTlhZmJcdTliMDZc'@; put 'dTliMThcdTliMWFcdTliMWZcdTliMjJcdTliMjNcdTliMjVcdTliMjdcdTliMjhcdTliMjlcdTliMmFcdTliMmVcdTliMmZcdTliMzJcdTliNDRcdTliNDNcdTliNGZcdTliNGRcdTliNGVcdTliNTFcdTliNThcdTliNzRcdTliOTNcdTliODNcdTliOTFcdTliOTZcdTliOTdcdTliOWZcdTli'@; put 'YTBcdTliYThcdTliYjRcdTliYzBcdTliY2FcdTliYjlcdTliYzZcdTliY2ZcdTliZDFcdTliZDJcdTliZTNcdTliZTJcdTliZTRcdTliZDRcdTliZTFcdTljM2FcdTliZjJcdTliZjFcdTliZjBcdTljMTVcdTljMTRcdTljMDlcdTljMTNcdTljMGNcdTljMDZcdTljMDhcdTljMTJcdTljMGFc'@; put 'dTljMDRcdTljMmVcdTljMWJcdTljMjVcdTljMjRcdTljMjFcdTljMzBcdTljNDdcdTljMzJcdTljNDZcdTljM2VcdTljNWFcdTljNjBcdTljNjdcdTljNzZcdTljNzhcdTljZTdcdTljZWNcdTljZjBcdTlkMDlcdTlkMDhcdTljZWJcdTlkMDNcdTlkMDZcdTlkMmFcdTlkMjZcdTlkYWZcdTlk'@; put 'MjNcdTlkMWZcdTlkNDRcdTlkMTVcdTlkMTJcdTlkNDFcdTlkM2ZcdTlkM2VcdTlkNDZcdTlkNDgiXSxbImYzYTEiLCJcdTlkNWRcdTlkNWVcdTlkNjRcdTlkNTFcdTlkNTBcdTlkNTlcdTlkNzJcdTlkODlcdTlkODdcdTlkYWJcdTlkNmZcdTlkN2FcdTlkOWFcdTlkYTRcdTlkYTlcdTlkYjJc'@; put 'dTlkYzRcdTlkYzFcdTlkYmJcdTlkYjhcdTlkYmFcdTlkYzZcdTlkY2ZcdTlkYzJcdTlkZDlcdTlkZDNcdTlkZjhcdTlkZTZcdTlkZWRcdTlkZWZcdTlkZmRcdTllMWFcdTllMWJcdTllMWVcdTllNzVcdTllNzlcdTllN2RcdTllODFcdTllODhcdTllOGJcdTllOGNcdTllOTJcdTllOTVcdTll'@; put 'OTFcdTllOWRcdTllYTVcdTllYTlcdTllYjhcdTllYWFcdTllYWRcdTk3NjFcdTllY2NcdTllY2VcdTllY2ZcdTllZDBcdTllZDRcdTllZGNcdTllZGVcdTllZGRcdTllZTBcdTllZTVcdTllZThcdTllZWZcdTllZjRcdTllZjZcdTllZjdcdTllZjlcdTllZmJcdTllZmNcdTllZmRcdTlmMDdc'@; put 'dTlmMDhcdTc2YjdcdTlmMTVcdTlmMjFcdTlmMmNcdTlmM2VcdTlmNGFcdTlmNTJcdTlmNTRcdTlmNjNcdTlmNWZcdTlmNjBcdTlmNjFcdTlmNjZcdTlmNjdcdTlmNmNcdTlmNmFcdTlmNzdcdTlmNzJcdTlmNzZcdTlmOTVcdTlmOWNcdTlmYTAiXSxbImY0YTEiLCJcdTU4MmZcdTY5YzdcdTkw'@; put 'NTlcdTc0NjRcdTUxZGNcdTcxOTkiXSxbImY5YTEiLCJcdTdlOGFcdTg5MWNcdTkzNDhcdTkyODhcdTg0ZGNcdTRmYzlcdTcwYmJcdTY2MzFcdTY4YzhcdTkyZjlcdTY2ZmJcdTVmNDVcdTRlMjhcdTRlZTFcdTRlZmNcdTRmMDBcdTRmMDNcdTRmMzlcdTRmNTZcdTRmOTJcdTRmOGFcdTRmOWFc'@; put 'dTRmOTRcdTRmY2RcdTUwNDBcdTUwMjJcdTRmZmZcdTUwMWVcdTUwNDZcdTUwNzBcdTUwNDJcdTUwOTRcdTUwZjRcdTUwZDhcdTUxNGFcdTUxNjRcdTUxOWRcdTUxYmVcdTUxZWNcdTUyMTVcdTUyOWNcdTUyYTZcdTUyYzBcdTUyZGJcdTUzMDBcdTUzMDdcdTUzMjRcdTUzNzJcdTUzOTNcdTUz'@; put 'YjJcdTUzZGRcdWZhMGVcdTU0OWNcdTU0OGFcdTU0YTlcdTU0ZmZcdTU1ODZcdTU3NTlcdTU3NjVcdTU3YWNcdTU3YzhcdTU3YzdcdWZhMGZcdWZhMTBcdTU4OWVcdTU4YjJcdTU5MGJcdTU5NTNcdTU5NWJcdTU5NWRcdTU5NjNcdTU5YTRcdTU5YmFcdTViNTZcdTViYzBcdTc1MmZcdTViZDhc'@; put 'dTViZWNcdTVjMWVcdTVjYTZcdTVjYmFcdTVjZjVcdTVkMjdcdTVkNTNcdWZhMTFcdTVkNDJcdTVkNmRcdTVkYjhcdTVkYjlcdTVkZDBcdTVmMjFcdTVmMzRcdTVmNjdcdTVmYjciXSxbImZhYTEiLCJcdTVmZGVcdTYwNWRcdTYwODVcdTYwOGFcdTYwZGVcdTYwZDVcdTYxMjBcdTYwZjJcdTYx'@; put 'MTFcdTYxMzdcdTYxMzBcdTYxOThcdTYyMTNcdTYyYTZcdTYzZjVcdTY0NjBcdTY0OWRcdTY0Y2VcdTY1NGVcdTY2MDBcdTY2MTVcdTY2M2JcdTY2MDlcdTY2MmVcdTY2MWVcdTY2MjRcdTY2NjVcdTY2NTdcdTY2NTlcdWZhMTJcdTY2NzNcdTY2OTlcdTY2YTBcdTY2YjJcdTY2YmZcdTY2ZmFc'@; put 'dTY3MGVcdWY5MjlcdTY3NjZcdTY3YmJcdTY4NTJcdTY3YzBcdTY4MDFcdTY4NDRcdTY4Y2ZcdWZhMTNcdTY5NjhcdWZhMTRcdTY5OThcdTY5ZTJcdTZhMzBcdTZhNmJcdTZhNDZcdTZhNzNcdTZhN2VcdTZhZTJcdTZhZTRcdTZiZDZcdTZjM2ZcdTZjNWNcdTZjODZcdTZjNmZcdTZjZGFcdTZk'@; put 'MDRcdTZkODdcdTZkNmZcdTZkOTZcdTZkYWNcdTZkY2ZcdTZkZjhcdTZkZjJcdTZkZmNcdTZlMzlcdTZlNWNcdTZlMjdcdTZlM2NcdTZlYmZcdTZmODhcdTZmYjVcdTZmZjVcdTcwMDVcdTcwMDdcdTcwMjhcdTcwODVcdTcwYWJcdTcxMGZcdTcxMDRcdTcxNWNcdTcxNDZcdTcxNDdcdWZhMTVc'@; put 'dTcxYzFcdTcxZmVcdTcyYjEiXSxbImZiYTEiLCJcdTcyYmVcdTczMjRcdWZhMTZcdTczNzdcdTczYmRcdTczYzlcdTczZDZcdTczZTNcdTczZDJcdTc0MDdcdTczZjVcdTc0MjZcdTc0MmFcdTc0MjlcdTc0MmVcdTc0NjJcdTc0ODlcdTc0OWZcdTc1MDFcdTc1NmZcdTc2ODJcdTc2OWNcdTc2'@; put 'OWVcdTc2OWJcdTc2YTZcdWZhMTdcdTc3NDZcdTUyYWZcdTc4MjFcdTc4NGVcdTc4NjRcdTc4N2FcdTc5MzBcdWZhMThcdWZhMTlcdWZhMWFcdTc5OTRcdWZhMWJcdTc5OWJcdTdhZDFcdTdhZTdcdWZhMWNcdTdhZWJcdTdiOWVcdWZhMWRcdTdkNDhcdTdkNWNcdTdkYjdcdTdkYTBcdTdkZDZc'@; put 'dTdlNTJcdTdmNDdcdTdmYTFcdWZhMWVcdTgzMDFcdTgzNjJcdTgzN2ZcdTgzYzdcdTgzZjZcdTg0NDhcdTg0YjRcdTg1NTNcdTg1NTlcdTg1NmJcdWZhMWZcdTg1YjBcdWZhMjBcdWZhMjFcdTg4MDdcdTg4ZjVcdThhMTJcdThhMzdcdThhNzlcdThhYTdcdThhYmVcdThhZGZcdWZhMjJcdThh'@; put 'ZjZcdThiNTNcdThiN2ZcdThjZjBcdThjZjRcdThkMTJcdThkNzZcdWZhMjNcdThlY2ZcdWZhMjRcdWZhMjVcdTkwNjdcdTkwZGVcdWZhMjZcdTkxMTVcdTkxMjdcdTkxZGEiXSxbImZjYTEiLCJcdTkxZDdcdTkxZGVcdTkxZWRcdTkxZWVcdTkxZTRcdTkxZTVcdTkyMDZcdTkyMTBcdTkyMGFc'@; put 'dTkyM2FcdTkyNDBcdTkyM2NcdTkyNGVcdTkyNTlcdTkyNTFcdTkyMzlcdTkyNjdcdTkyYTdcdTkyNzdcdTkyNzhcdTkyZTdcdTkyZDdcdTkyZDlcdTkyZDBcdWZhMjdcdTkyZDVcdTkyZTBcdTkyZDNcdTkzMjVcdTkzMjFcdTkyZmJcdWZhMjhcdTkzMWVcdTkyZmZcdTkzMWRcdTkzMDJcdTkz'@; put 'NzBcdTkzNTdcdTkzYTRcdTkzYzZcdTkzZGVcdTkzZjhcdTk0MzFcdTk0NDVcdTk0NDhcdTk1OTJcdWY5ZGNcdWZhMjlcdTk2OWRcdTk2YWZcdTk3MzNcdTk3M2JcdTk3NDNcdTk3NGRcdTk3NGZcdTk3NTFcdTk3NTVcdTk4NTdcdTk4NjVcdWZhMmFcdWZhMmJcdTk5MjdcdWZhMmNcdTk5OWVc'@; put 'dTlhNGVcdTlhZDlcdTlhZGNcdTliNzVcdTliNzJcdTliOGZcdTliYjFcdTliYmJcdTljMDBcdTlkNzBcdTlkNmJcdWZhMmRcdTllMTlcdTllZDEiXSxbImZjZjEiLCJcdTIxNzAiLDksIlx1ZmZlMlx1ZmZlNFx1ZmYwN1x1ZmYwMiJdLFsiOGZhMmFmIiwiXHUwMmQ4XHUwMmM3XHhiOFx1MDJk'@; put 'OVx1MDJkZFx4YWZcdTAyZGJcdTAyZGFcdWZmNWVcdTAzODRcdTAzODUiXSxbIjhmYTJjMiIsIlx4YTFceGE2XHhiZiJdLFsiOGZhMmViIiwiXHhiYVx4YWFceGE5XHhhZVx1MjEyMlx4YTRcdTIxMTYiXSxbIjhmYTZlMSIsIlx1MDM4Nlx1MDM4OFx1MDM4OVx1MDM4YVx1MDNhYSJdLFsiOGZh'@; put 'NmU3IiwiXHUwMzhjIl0sWyI4ZmE2ZTkiLCJcdTAzOGVcdTAzYWIiXSxbIjhmYTZlYyIsIlx1MDM4ZiJdLFsiOGZhNmYxIiwiXHUwM2FjXHUwM2FkXHUwM2FlXHUwM2FmXHUwM2NhXHUwMzkwXHUwM2NjXHUwM2MyXHUwM2NkXHUwM2NiXHUwM2IwXHUwM2NlIl0sWyI4ZmE3YzIiLCJcdTA0MDIi'@; put 'LDEwLCJcdTA0MGVcdTA0MGYiXSxbIjhmYTdmMiIsIlx1MDQ1MiIsMTAsIlx1MDQ1ZVx1MDQ1ZiJdLFsiOGZhOWExIiwiXHhjNlx1MDExMCJdLFsiOGZhOWE0IiwiXHUwMTI2Il0sWyI4ZmE5YTYiLCJcdTAxMzIiXSxbIjhmYTlhOCIsIlx1MDE0MVx1MDEzZiJdLFsiOGZhOWFiIiwiXHUwMTRh'@; put 'XHhkOFx1MDE1MiJdLFsiOGZhOWFmIiwiXHUwMTY2XHhkZSJdLFsiOGZhOWMxIiwiXHhlNlx1MDExMVx4ZjBcdTAxMjdcdTAxMzFcdTAxMzNcdTAxMzhcdTAxNDJcdTAxNDBcdTAxNDlcdTAxNGJceGY4XHUwMTUzXHhkZlx1MDE2N1x4ZmUiXSxbIjhmYWFhMSIsIlx4YzFceGMwXHhjNFx4YzJc'@; put 'dTAxMDJcdTAxY2RcdTAxMDBcdTAxMDRceGM1XHhjM1x1MDEwNlx1MDEwOFx1MDEwY1x4YzdcdTAxMGFcdTAxMGVceGM5XHhjOFx4Y2JceGNhXHUwMTFhXHUwMTE2XHUwMTEyXHUwMTE4Il0sWyI4ZmFhYmEiLCJcdTAxMWNcdTAxMWVcdTAxMjJcdTAxMjBcdTAxMjRceGNkXHhjY1x4Y2ZceGNl'@; put 'XHUwMWNmXHUwMTMwXHUwMTJhXHUwMTJlXHUwMTI4XHUwMTM0XHUwMTM2XHUwMTM5XHUwMTNkXHUwMTNiXHUwMTQzXHUwMTQ3XHUwMTQ1XHhkMVx4ZDNceGQyXHhkNlx4ZDRcdTAxZDFcdTAxNTBcdTAxNGNceGQ1XHUwMTU0XHUwMTU4XHUwMTU2XHUwMTVhXHUwMTVjXHUwMTYwXHUwMTVlXHUw'@; put 'MTY0XHUwMTYyXHhkYVx4ZDlceGRjXHhkYlx1MDE2Y1x1MDFkM1x1MDE3MFx1MDE2YVx1MDE3Mlx1MDE2ZVx1MDE2OFx1MDFkN1x1MDFkYlx1MDFkOVx1MDFkNVx1MDE3NFx4ZGRcdTAxNzhcdTAxNzZcdTAxNzlcdTAxN2RcdTAxN2IiXSxbIjhmYWJhMSIsIlx4ZTFceGUwXHhlNFx4ZTJcdTAx'@; put 'MDNcdTAxY2VcdTAxMDFcdTAxMDVceGU1XHhlM1x1MDEwN1x1MDEwOVx1MDEwZFx4ZTdcdTAxMGJcdTAxMGZceGU5XHhlOFx4ZWJceGVhXHUwMTFiXHUwMTE3XHUwMTEzXHUwMTE5XHUwMWY1XHUwMTFkXHUwMTFmIl0sWyI4ZmFiYmQiLCJcdTAxMjFcdTAxMjVceGVkXHhlY1x4ZWZceGVlXHUw'@; put 'MWQwIl0sWyI4ZmFiYzUiLCJcdTAxMmJcdTAxMmZcdTAxMjlcdTAxMzVcdTAxMzdcdTAxM2FcdTAxM2VcdTAxM2NcdTAxNDRcdTAxNDhcdTAxNDZceGYxXHhmM1x4ZjJceGY2XHhmNFx1MDFkMlx1MDE1MVx1MDE0ZFx4ZjVcdTAxNTVcdTAxNTlcdTAxNTdcdTAxNWJcdTAxNWRcdTAxNjFcdTAx'@; put 'NWZcdTAxNjVcdTAxNjNceGZhXHhmOVx4ZmNceGZiXHUwMTZkXHUwMWQ0XHUwMTcxXHUwMTZiXHUwMTczXHUwMTZmXHUwMTY5XHUwMWQ4XHUwMWRjXHUwMWRhXHUwMWQ2XHUwMTc1XHhmZFx4ZmZcdTAxNzdcdTAxN2FcdTAxN2VcdTAxN2MiXSxbIjhmYjBhMSIsIlx1NGUwMlx1NGUwNFx1NGUw'@; put 'NVx1NGUwY1x1NGUxMlx1NGUxZlx1NGUyM1x1NGUyNFx1NGUyOFx1NGUyYlx1NGUyZVx1NGUyZlx1NGUzMFx1NGUzNVx1NGU0MFx1NGU0MVx1NGU0NFx1NGU0N1x1NGU1MVx1NGU1YVx1NGU1Y1x1NGU2M1x1NGU2OFx1NGU2OVx1NGU3NFx1NGU3NVx1NGU3OVx1NGU3Zlx1NGU4ZFx1NGU5Nlx1'@; put 'NGU5N1x1NGU5ZFx1NGVhZlx1NGViOVx1NGVjM1x1NGVkMFx1NGVkYVx1NGVkYlx1NGVlMFx1NGVlMVx1NGVlMlx1NGVlOFx1NGVlZlx1NGVmMVx1NGVmM1x1NGVmNVx1NGVmZFx1NGVmZVx1NGVmZlx1NGYwMFx1NGYwMlx1NGYwM1x1NGYwOFx1NGYwYlx1NGYwY1x1NGYxMlx1NGYxNVx1NGYx'@; put 'Nlx1NGYxN1x1NGYxOVx1NGYyZVx1NGYzMVx1NGY2MFx1NGYzM1x1NGYzNVx1NGYzN1x1NGYzOVx1NGYzYlx1NGYzZVx1NGY0MFx1NGY0Mlx1NGY0OFx1NGY0OVx1NGY0Ylx1NGY0Y1x1NGY1Mlx1NGY1NFx1NGY1Nlx1NGY1OFx1NGY1Zlx1NGY2M1x1NGY2YVx1NGY2Y1x1NGY2ZVx1NGY3MVx1'@; put 'NGY3N1x1NGY3OFx1NGY3OVx1NGY3YVx1NGY3ZFx1NGY3ZVx1NGY4MVx1NGY4Mlx1NGY4NCJdLFsiOGZiMWExIiwiXHU0Zjg1XHU0Zjg5XHU0ZjhhXHU0ZjhjXHU0ZjhlXHU0ZjkwXHU0ZjkyXHU0ZjkzXHU0Zjk0XHU0Zjk3XHU0Zjk5XHU0ZjlhXHU0ZjllXHU0ZjlmXHU0ZmIyXHU0ZmI3XHU0'@; put 'ZmI5XHU0ZmJiXHU0ZmJjXHU0ZmJkXHU0ZmJlXHU0ZmMwXHU0ZmMxXHU0ZmM1XHU0ZmM2XHU0ZmM4XHU0ZmM5XHU0ZmNiXHU0ZmNjXHU0ZmNkXHU0ZmNmXHU0ZmQyXHU0ZmRjXHU0ZmUwXHU0ZmUyXHU0ZmYwXHU0ZmYyXHU0ZmZjXHU0ZmZkXHU0ZmZmXHU1MDAwXHU1MDAxXHU1MDA0XHU1MDA3'@; put 'XHU1MDBhXHU1MDBjXHU1MDBlXHU1MDEwXHU1MDEzXHU1MDE3XHU1MDE4XHU1MDFiXHU1MDFjXHU1MDFkXHU1MDFlXHU1MDIyXHU1MDI3XHU1MDJlXHU1MDMwXHU1MDMyXHU1MDMzXHU1MDM1XHU1MDQwXHU1MDQxXHU1MDQyXHU1MDQ1XHU1MDQ2XHU1MDRhXHU1MDRjXHU1MDRlXHU1MDUxXHU1'@; put 'MDUyXHU1MDUzXHU1MDU3XHU1MDU5XHU1MDVmXHU1MDYwXHU1MDYyXHU1MDYzXHU1MDY2XHU1MDY3XHU1MDZhXHU1MDZkXHU1MDcwXHU1MDcxXHU1MDNiXHU1MDgxXHU1MDgzXHU1MDg0XHU1MDg2XHU1MDhhXHU1MDhlXHU1MDhmXHU1MDkwIl0sWyI4ZmIyYTEiLCJcdTUwOTJcdTUwOTNcdTUw'@; put 'OTRcdTUwOTZcdTUwOWJcdTUwOWNcdTUwOWUiLDQsIlx1NTBhYVx1NTBhZlx1NTBiMFx1NTBiOVx1NTBiYVx1NTBiZFx1NTBjMFx1NTBjM1x1NTBjNFx1NTBjN1x1NTBjY1x1NTBjZVx1NTBkMFx1NTBkM1x1NTBkNFx1NTBkOFx1NTBkY1x1NTBkZFx1NTBkZlx1NTBlMlx1NTBlNFx1NTBlNlx1'@; put 'NTBlOFx1NTBlOVx1NTBlZlx1NTBmMVx1NTBmNlx1NTBmYVx1NTBmZVx1NTEwM1x1NTEwNlx1NTEwN1x1NTEwOFx1NTEwYlx1NTEwY1x1NTEwZFx1NTEwZVx1NTBmMlx1NTExMFx1NTExN1x1NTExOVx1NTExYlx1NTExY1x1NTExZFx1NTExZVx1NTEyM1x1NTEyN1x1NTEyOFx1NTEyY1x1NTEy'@; put 'ZFx1NTEyZlx1NTEzMVx1NTEzM1x1NTEzNFx1NTEzNVx1NTEzOFx1NTEzOVx1NTE0Mlx1NTE0YVx1NTE0Zlx1NTE1M1x1NTE1NVx1NTE1N1x1NTE1OFx1NTE1Zlx1NTE2NFx1NTE2Nlx1NTE3ZVx1NTE4M1x1NTE4NFx1NTE4Ylx1NTE4ZVx1NTE5OFx1NTE5ZFx1NTFhMVx1NTFhM1x1NTFhZFx1'@; put 'NTFiOFx1NTFiYVx1NTFiY1x1NTFiZVx1NTFiZlx1NTFjMiJdLFsiOGZiM2ExIiwiXHU1MWM4XHU1MWNmXHU1MWQxXHU1MWQyXHU1MWQzXHU1MWQ1XHU1MWQ4XHU1MWRlXHU1MWUyXHU1MWU1XHU1MWVlXHU1MWYyXHU1MWYzXHU1MWY0XHU1MWY3XHU1MjAxXHU1MjAyXHU1MjA1XHU1MjEyXHU1'@; put 'MjEzXHU1MjE1XHU1MjE2XHU1MjE4XHU1MjIyXHU1MjI4XHU1MjMxXHU1MjMyXHU1MjM1XHU1MjNjXHU1MjQ1XHU1MjQ5XHU1MjU1XHU1MjU3XHU1MjU4XHU1MjVhXHU1MjVjXHU1MjVmXHU1MjYwXHU1MjYxXHU1MjY2XHU1MjZlXHU1Mjc3XHU1Mjc4XHU1Mjc5XHU1MjgwXHU1MjgyXHU1Mjg1'@; put 'XHU1MjhhXHU1MjhjXHU1MjkzXHU1Mjk1XHU1Mjk2XHU1Mjk3XHU1Mjk4XHU1MjlhXHU1MjljXHU1MmE0XHU1MmE1XHU1MmE2XHU1MmE3XHU1MmFmXHU1MmIwXHU1MmI2XHU1MmI3XHU1MmI4XHU1MmJhXHU1MmJiXHU1MmJkXHU1MmMwXHU1MmM0XHU1MmM2XHU1MmM4XHU1MmNjXHU1MmNmXHU1'@; put 'MmQxXHU1MmQ0XHU1MmQ2XHU1MmRiXHU1MmRjXHU1MmUxXHU1MmU1XHU1MmU4XHU1MmU5XHU1MmVhXHU1MmVjXHU1MmYwXHU1MmYxXHU1MmY0XHU1MmY2XHU1MmY3XHU1MzAwXHU1MzAzXHU1MzBhXHU1MzBiIl0sWyI4ZmI0YTEiLCJcdTUzMGNcdTUzMTFcdTUzMTNcdTUzMThcdTUzMWJcdTUz'@; put 'MWNcdTUzMWVcdTUzMWZcdTUzMjVcdTUzMjdcdTUzMjhcdTUzMjlcdTUzMmJcdTUzMmNcdTUzMmRcdTUzMzBcdTUzMzJcdTUzMzVcdTUzM2NcdTUzM2RcdTUzM2VcdTUzNDJcdTUzNGNcdTUzNGJcdTUzNTlcdTUzNWJcdTUzNjFcdTUzNjNcdTUzNjVcdTUzNmNcdTUzNmRcdTUzNzJcdTUzNzlc'@; put 'dTUzN2VcdTUzODNcdTUzODdcdTUzODhcdTUzOGVcdTUzOTNcdTUzOTRcdTUzOTlcdTUzOWRcdTUzYTFcdTUzYTRcdTUzYWFcdTUzYWJcdTUzYWZcdTUzYjJcdTUzYjRcdTUzYjVcdTUzYjdcdTUzYjhcdTUzYmFcdTUzYmRcdTUzYzBcdTUzYzVcdTUzY2ZcdTUzZDJcdTUzZDNcdTUzZDVcdTUz'@; put 'ZGFcdTUzZGRcdTUzZGVcdTUzZTBcdTUzZTZcdTUzZTdcdTUzZjVcdTU0MDJcdTU0MTNcdTU0MWFcdTU0MjFcdTU0MjdcdTU0MjhcdTU0MmFcdTU0MmZcdTU0MzFcdTU0MzRcdTU0MzVcdTU0NDNcdTU0NDRcdTU0NDdcdTU0NGRcdTU0NGZcdTU0NWVcdTU0NjJcdTU0NjRcdTU0NjZcdTU0Njdc'@; put 'dTU0NjlcdTU0NmJcdTU0NmRcdTU0NmVcdTU0NzRcdTU0N2YiXSxbIjhmYjVhMSIsIlx1NTQ4MVx1NTQ4M1x1NTQ4NVx1NTQ4OFx1NTQ4OVx1NTQ4ZFx1NTQ5MVx1NTQ5NVx1NTQ5Nlx1NTQ5Y1x1NTQ5Zlx1NTRhMVx1NTRhNlx1NTRhN1x1NTRhOVx1NTRhYVx1NTRhZFx1NTRhZVx1NTRiMVx1'@; put 'NTRiN1x1NTRiOVx1NTRiYVx1NTRiYlx1NTRiZlx1NTRjNlx1NTRjYVx1NTRjZFx1NTRjZVx1NTRlMFx1NTRlYVx1NTRlY1x1NTRlZlx1NTRmNlx1NTRmY1x1NTRmZVx1NTRmZlx1NTUwMFx1NTUwMVx1NTUwNVx1NTUwOFx1NTUwOVx1NTUwY1x1NTUwZFx1NTUwZVx1NTUxNVx1NTUyYVx1NTUy'@; put 'Ylx1NTUzMlx1NTUzNVx1NTUzNlx1NTUzYlx1NTUzY1x1NTUzZFx1NTU0MVx1NTU0N1x1NTU0OVx1NTU0YVx1NTU0ZFx1NTU1MFx1NTU1MVx1NTU1OFx1NTU1YVx1NTU1Ylx1NTU1ZVx1NTU2MFx1NTU2MVx1NTU2NFx1NTU2Nlx1NTU3Zlx1NTU4MVx1NTU4Mlx1NTU4Nlx1NTU4OFx1NTU4ZVx1'@; put 'NTU4Zlx1NTU5MVx1NTU5Mlx1NTU5M1x1NTU5NFx1NTU5N1x1NTVhM1x1NTVhNFx1NTVhZFx1NTViMlx1NTViZlx1NTVjMVx1NTVjM1x1NTVjNlx1NTVjOVx1NTVjYlx1NTVjY1x1NTVjZVx1NTVkMVx1NTVkMiJdLFsiOGZiNmExIiwiXHU1NWQzXHU1NWQ3XHU1NWQ4XHU1NWRiXHU1NWRlXHU1'@; put 'NWUyXHU1NWU5XHU1NWY2XHU1NWZmXHU1NjA1XHU1NjA4XHU1NjBhXHU1NjBkIiw1LCJcdTU2MTlcdTU2MmNcdTU2MzBcdTU2MzNcdTU2MzVcdTU2MzdcdTU2MzlcdTU2M2JcdTU2M2NcdTU2M2RcdTU2M2ZcdTU2NDBcdTU2NDFcdTU2NDNcdTU2NDRcdTU2NDZcdTU2NDlcdTU2NGJcdTU2NGRc'@; put 'dTU2NGZcdTU2NTRcdTU2NWVcdTU2NjBcdTU2NjFcdTU2NjJcdTU2NjNcdTU2NjZcdTU2NjlcdTU2NmRcdTU2NmZcdTU2NzFcdTU2NzJcdTU2NzVcdTU2ODRcdTU2ODVcdTU2ODhcdTU2OGJcdTU2OGNcdTU2OTVcdTU2OTlcdTU2OWFcdTU2OWRcdTU2OWVcdTU2OWZcdTU2YTZcdTU2YTdcdTU2'@; put 'YThcdTU2YTlcdTU2YWJcdTU2YWNcdTU2YWRcdTU2YjFcdTU2YjNcdTU2YjdcdTU2YmVcdTU2YzVcdTU2YzlcdTU2Y2FcdTU2Y2JcdTU2Y2ZcdTU2ZDBcdTU2Y2NcdTU2Y2RcdTU2ZDlcdTU2ZGNcdTU2ZGRcdTU2ZGZcdTU2ZTFcdTU2ZTQiLDQsIlx1NTZmMVx1NTZlYlx1NTZlZCJdLFsiOGZi'@; put 'N2ExIiwiXHU1NmY2XHU1NmY3XHU1NzAxXHU1NzAyXHU1NzA3XHU1NzBhXHU1NzBjXHU1NzExXHU1NzE1XHU1NzFhXHU1NzFiXHU1NzFkXHU1NzIwXHU1NzIyXHU1NzIzXHU1NzI0XHU1NzI1XHU1NzI5XHU1NzJhXHU1NzJjXHU1NzJlXHU1NzJmXHU1NzMzXHU1NzM0XHU1NzNkXHU1NzNlXHU1'@; put 'NzNmXHU1NzQ1XHU1NzQ2XHU1NzRjXHU1NzRkXHU1NzUyXHU1NzYyXHU1NzY1XHU1NzY3XHU1NzY4XHU1NzZiXHU1NzZkIiw0LCJcdTU3NzNcdTU3NzRcdTU3NzVcdTU3NzdcdTU3NzlcdTU3N2FcdTU3N2JcdTU3N2NcdTU3N2VcdTU3ODFcdTU3ODNcdTU3OGNcdTU3OTRcdTU3OTdcdTU3OTlc'@; put 'dTU3OWFcdTU3OWNcdTU3OWRcdTU3OWVcdTU3OWZcdTU3YTFcdTU3OTVcdTU3YTdcdTU3YThcdTU3YTlcdTU3YWNcdTU3YjhcdTU3YmRcdTU3YzdcdTU3YzhcdTU3Y2NcdTU3Y2ZcdTU3ZDVcdTU3ZGRcdTU3ZGVcdTU3ZTRcdTU3ZTZcdTU3ZTdcdTU3ZTlcdTU3ZWRcdTU3ZjBcdTU3ZjVcdTU3'@; put 'ZjZcdTU3ZjhcdTU3ZmRcdTU3ZmVcdTU3ZmZcdTU4MDNcdTU4MDRcdTU4MDhcdTU4MDlcdTU3ZTEiXSxbIjhmYjhhMSIsIlx1NTgwY1x1NTgwZFx1NTgxYlx1NTgxZVx1NTgxZlx1NTgyMFx1NTgyNlx1NTgyN1x1NTgyZFx1NTgzMlx1NTgzOVx1NTgzZlx1NTg0OVx1NTg0Y1x1NTg0ZFx1NTg0'@; put 'Zlx1NTg1MFx1NTg1NVx1NTg1Zlx1NTg2MVx1NTg2NFx1NTg2N1x1NTg2OFx1NTg3OFx1NTg3Y1x1NTg3Zlx1NTg4MFx1NTg4MVx1NTg4N1x1NTg4OFx1NTg4OVx1NTg4YVx1NTg4Y1x1NTg4ZFx1NTg4Zlx1NTg5MFx1NTg5NFx1NTg5Nlx1NTg5ZFx1NThhMFx1NThhMVx1NThhMlx1NThhNlx1'@; put 'NThhOVx1NThiMVx1NThiMlx1NThjNFx1NThiY1x1NThjMlx1NThjOFx1NThjZFx1NThjZVx1NThkMFx1NThkMlx1NThkNFx1NThkNlx1NThkYVx1NThkZFx1NThlMVx1NThlMlx1NThlOVx1NThmM1x1NTkwNVx1NTkwNlx1NTkwYlx1NTkwY1x1NTkxMlx1NTkxM1x1NTkxNFx1ODY0MVx1NTkx'@; put 'ZFx1NTkyMVx1NTkyM1x1NTkyNFx1NTkyOFx1NTkyZlx1NTkzMFx1NTkzM1x1NTkzNVx1NTkzNlx1NTkzZlx1NTk0M1x1NTk0Nlx1NTk1Mlx1NTk1M1x1NTk1OVx1NTk1Ylx1NTk1ZFx1NTk1ZVx1NTk1Zlx1NTk2MVx1NTk2M1x1NTk2Ylx1NTk2ZCJdLFsiOGZiOWExIiwiXHU1OTZmXHU1OTcy'@; put 'XHU1OTc1XHU1OTc2XHU1OTc5XHU1OTdiXHU1OTdjXHU1OThiXHU1OThjXHU1OThlXHU1OTkyXHU1OTk1XHU1OTk3XHU1OTlmXHU1OWE0XHU1OWE3XHU1OWFkXHU1OWFlXHU1OWFmXHU1OWIwXHU1OWIzXHU1OWI3XHU1OWJhXHU1OWJjXHU1OWMxXHU1OWMzXHU1OWM0XHU1OWM4XHU1OWNhXHU1'@; put 'OWNkXHU1OWQyXHU1OWRkXHU1OWRlXHU1OWRmXHU1OWUzXHU1OWU0XHU1OWU3XHU1OWVlXHU1OWVmXHU1OWYxXHU1OWYyXHU1OWY0XHU1OWY3XHU1YTAwXHU1YTA0XHU1YTBjXHU1YTBkXHU1YTBlXHU1YTEyXHU1YTEzXHU1YTFlXHU1YTIzXHU1YTI0XHU1YTI3XHU1YTI4XHU1YTJhXHU1YTJk'@; put 'XHU1YTMwXHU1YTQ0XHU1YTQ1XHU1YTQ3XHU1YTQ4XHU1YTRjXHU1YTUwXHU1YTU1XHU1YTVlXHU1YTYzXHU1YTY1XHU1YTY3XHU1YTZkXHU1YTc3XHU1YTdhXHU1YTdiXHU1YTdlXHU1YThiXHU1YTkwXHU1YTkzXHU1YTk2XHU1YTk5XHU1YTljXHU1YTllXHU1YTlmXHU1YWEwXHU1YWEyXHU1'@; put 'YWE3XHU1YWFjXHU1YWIxXHU1YWIyXHU1YWIzXHU1YWI1XHU1YWI4XHU1YWJhXHU1YWJiXHU1YWJmIl0sWyI4ZmJhYTEiLCJcdTVhYzRcdTVhYzZcdTVhYzhcdTVhY2ZcdTVhZGFcdTVhZGNcdTVhZTBcdTVhZTVcdTVhZWFcdTVhZWVcdTVhZjVcdTVhZjZcdTVhZmRcdTViMDBcdTViMDFcdTVi'@; put 'MDhcdTViMTdcdTViMzRcdTViMTlcdTViMWJcdTViMWRcdTViMjFcdTViMjVcdTViMmRcdTViMzhcdTViNDFcdTViNGJcdTViNGNcdTViNTJcdTViNTZcdTViNWVcdTViNjhcdTViNmVcdTViNmZcdTViN2NcdTViN2RcdTViN2VcdTViN2ZcdTViODFcdTViODRcdTViODZcdTViOGFcdTViOGVc'@; put 'dTViOTBcdTViOTFcdTViOTNcdTViOTRcdTViOTZcdTViYThcdTViYTlcdTViYWNcdTViYWRcdTViYWZcdTViYjFcdTViYjJcdTViYjdcdTViYmFcdTViYmNcdTViYzBcdTViYzFcdTViY2RcdTViY2ZcdTViZDYiLDQsIlx1NWJlMFx1NWJlZlx1NWJmMVx1NWJmNFx1NWJmZFx1NWMwY1x1NWMx'@; put 'N1x1NWMxZVx1NWMxZlx1NWMyM1x1NWMyNlx1NWMyOVx1NWMyYlx1NWMyY1x1NWMyZVx1NWMzMFx1NWMzMlx1NWMzNVx1NWMzNlx1NWM1OVx1NWM1YVx1NWM1Y1x1NWM2Mlx1NWM2M1x1NWM2N1x1NWM2OFx1NWM2OSJdLFsiOGZiYmExIiwiXHU1YzZkXHU1YzcwXHU1Yzc0XHU1Yzc1XHU1Yzdh'@; put 'XHU1YzdiXHU1YzdjXHU1YzdkXHU1Yzg3XHU1Yzg4XHU1YzhhXHU1YzhmXHU1YzkyXHU1YzlkXHU1YzlmXHU1Y2EwXHU1Y2EyXHU1Y2EzXHU1Y2E2XHU1Y2FhXHU1Y2IyXHU1Y2I0XHU1Y2I1XHU1Y2JhXHU1Y2M5XHU1Y2NiXHU1Y2QyXHU1Y2RkXHU1Y2Q3XHU1Y2VlXHU1Y2YxXHU1Y2YyXHU1'@; put 'Y2Y0XHU1ZDAxXHU1ZDA2XHU1ZDBkXHU1ZDEyXHU1ZDJiXHU1ZDIzXHU1ZDI0XHU1ZDI2XHU1ZDI3XHU1ZDMxXHU1ZDM0XHU1ZDM5XHU1ZDNkXHU1ZDNmXHU1ZDQyXHU1ZDQzXHU1ZDQ2XHU1ZDQ4XHU1ZDU1XHU1ZDUxXHU1ZDU5XHU1ZDRhXHU1ZDVmXHU1ZDYwXHU1ZDYxXHU1ZDYyXHU1ZDY0'@; put 'XHU1ZDZhXHU1ZDZkXHU1ZDcwXHU1ZDc5XHU1ZDdhXHU1ZDdlXHU1ZDdmXHU1ZDgxXHU1ZDgzXHU1ZDg4XHU1ZDhhXHU1ZDkyXHU1ZDkzXHU1ZDk0XHU1ZDk1XHU1ZDk5XHU1ZDliXHU1ZDlmXHU1ZGEwXHU1ZGE3XHU1ZGFiXHU1ZGIwXHU1ZGI0XHU1ZGI4XHU1ZGI5XHU1ZGMzXHU1ZGM3XHU1'@; put 'ZGNiXHU1ZGQwXHU1ZGNlXHU1ZGQ4XHU1ZGQ5XHU1ZGUwXHU1ZGU0Il0sWyI4ZmJjYTEiLCJcdTVkZTlcdTVkZjhcdTVkZjlcdTVlMDBcdTVlMDdcdTVlMGRcdTVlMTJcdTVlMTRcdTVlMTVcdTVlMThcdTVlMWZcdTVlMjBcdTVlMmVcdTVlMjhcdTVlMzJcdTVlMzVcdTVlM2VcdTVlNGJcdTVl'@; put 'NTBcdTVlNDlcdTVlNTFcdTVlNTZcdTVlNThcdTVlNWJcdTVlNWNcdTVlNWVcdTVlNjhcdTVlNmEiLDQsIlx1NWU3MFx1NWU4MFx1NWU4Ylx1NWU4ZVx1NWVhMlx1NWVhNFx1NWVhNVx1NWVhOFx1NWVhYVx1NWVhY1x1NWViMVx1NWViM1x1NWViZFx1NWViZVx1NWViZlx1NWVjNlx1NWVjY1x1'@; put 'NWVjYlx1NWVjZVx1NWVkMVx1NWVkMlx1NWVkNFx1NWVkNVx1NWVkY1x1NWVkZVx1NWVlNVx1NWVlYlx1NWYwMlx1NWYwNlx1NWYwN1x1NWYwOFx1NWYwZVx1NWYxOVx1NWYxY1x1NWYxZFx1NWYyMVx1NWYyMlx1NWYyM1x1NWYyNFx1NWYyOFx1NWYyYlx1NWYyY1x1NWYyZVx1NWYzMFx1NWYz'@; put 'NFx1NWYzNlx1NWYzYlx1NWYzZFx1NWYzZlx1NWY0MFx1NWY0NFx1NWY0NVx1NWY0N1x1NWY0ZFx1NWY1MFx1NWY1NFx1NWY1OFx1NWY1Ylx1NWY2MFx1NWY2M1x1NWY2NFx1NWY2NyJdLFsiOGZiZGExIiwiXHU1ZjZmXHU1ZjcyXHU1Zjc0XHU1Zjc1XHU1Zjc4XHU1ZjdhXHU1ZjdkXHU1Zjdl'@; put 'XHU1Zjg5XHU1ZjhkXHU1ZjhmXHU1Zjk2XHU1ZjljXHU1ZjlkXHU1ZmEyXHU1ZmE3XHU1ZmFiXHU1ZmE0XHU1ZmFjXHU1ZmFmXHU1ZmIwXHU1ZmIxXHU1ZmI4XHU1ZmM0XHU1ZmM3XHU1ZmM4XHU1ZmM5XHU1ZmNiXHU1ZmQwIiw0LCJcdTVmZGVcdTVmZTFcdTVmZTJcdTVmZThcdTVmZTlcdTVm'@; put 'ZWFcdTVmZWNcdTVmZWRcdTVmZWVcdTVmZWZcdTVmZjJcdTVmZjNcdTVmZjZcdTVmZmFcdTVmZmNcdTYwMDdcdTYwMGFcdTYwMGRcdTYwMTNcdTYwMTRcdTYwMTdcdTYwMThcdTYwMWFcdTYwMWZcdTYwMjRcdTYwMmRcdTYwMzNcdTYwMzVcdTYwNDBcdTYwNDdcdTYwNDhcdTYwNDlcdTYwNGNc'@; put 'dTYwNTFcdTYwNTRcdTYwNTZcdTYwNTdcdTYwNWRcdTYwNjFcdTYwNjdcdTYwNzFcdTYwN2VcdTYwN2ZcdTYwODJcdTYwODZcdTYwODhcdTYwOGFcdTYwOGVcdTYwOTFcdTYwOTNcdTYwOTVcdTYwOThcdTYwOWRcdTYwOWVcdTYwYTJcdTYwYTRcdTYwYTVcdTYwYThcdTYwYjBcdTYwYjFcdTYw'@; put 'YjciXSxbIjhmYmVhMSIsIlx1NjBiYlx1NjBiZVx1NjBjMlx1NjBjNFx1NjBjOFx1NjBjOVx1NjBjYVx1NjBjYlx1NjBjZVx1NjBjZlx1NjBkNFx1NjBkNVx1NjBkOVx1NjBkYlx1NjBkZFx1NjBkZVx1NjBlMlx1NjBlNVx1NjBmMlx1NjBmNVx1NjBmOFx1NjBmY1x1NjBmZFx1NjEwMlx1NjEw'@; put 'N1x1NjEwYVx1NjEwY1x1NjExMCIsNCwiXHU2MTE2XHU2MTE3XHU2MTE5XHU2MTFjXHU2MTFlXHU2MTIyXHU2MTJhXHU2MTJiXHU2MTMwXHU2MTMxXHU2MTM1XHU2MTM2XHU2MTM3XHU2MTM5XHU2MTQxXHU2MTQ1XHU2MTQ2XHU2MTQ5XHU2MTVlXHU2MTYwXHU2MTZjXHU2MTcyXHU2MTc4XHU2'@; put 'MTdiXHU2MTdjXHU2MTdmXHU2MTgwXHU2MTgxXHU2MTgzXHU2MTg0XHU2MThiXHU2MThkXHU2MTkyXHU2MTkzXHU2MTk3XHU2MTk4XHU2MTljXHU2MTlkXHU2MTlmXHU2MWEwXHU2MWE1XHU2MWE4XHU2MWFhXHU2MWFkXHU2MWI4XHU2MWI5XHU2MWJjXHU2MWMwXHU2MWMxXHU2MWMyXHU2MWNl'@; put 'XHU2MWNmXHU2MWQ1XHU2MWRjXHU2MWRkXHU2MWRlXHU2MWRmXHU2MWUxXHU2MWUyXHU2MWU3XHU2MWU5XHU2MWU1Il0sWyI4ZmJmYTEiLCJcdTYxZWNcdTYxZWRcdTYxZWZcdTYyMDFcdTYyMDNcdTYyMDRcdTYyMDdcdTYyMTNcdTYyMTVcdTYyMWNcdTYyMjBcdTYyMjJcdTYyMjNcdTYyMjdc'@; put 'dTYyMjlcdTYyMmJcdTYyMzlcdTYyM2RcdTYyNDJcdTYyNDNcdTYyNDRcdTYyNDZcdTYyNGNcdTYyNTBcdTYyNTFcdTYyNTJcdTYyNTRcdTYyNTZcdTYyNWFcdTYyNWNcdTYyNjRcdTYyNmRcdTYyNmZcdTYyNzNcdTYyN2FcdTYyN2RcdTYyOGRcdTYyOGVcdTYyOGZcdTYyOTBcdTYyYTZcdTYy'@; put 'YThcdTYyYjNcdTYyYjZcdTYyYjdcdTYyYmFcdTYyYmVcdTYyYmZcdTYyYzRcdTYyY2VcdTYyZDVcdTYyZDZcdTYyZGFcdTYyZWFcdTYyZjJcdTYyZjRcdTYyZmNcdTYyZmRcdTYzMDNcdTYzMDRcdTYzMGFcdTYzMGJcdTYzMGRcdTYzMTBcdTYzMTNcdTYzMTZcdTYzMThcdTYzMjlcdTYzMmFc'@; put 'dTYzMmRcdTYzMzVcdTYzMzZcdTYzMzlcdTYzM2NcdTYzNDFcdTYzNDJcdTYzNDNcdTYzNDRcdTYzNDZcdTYzNGFcdTYzNGJcdTYzNGVcdTYzNTJcdTYzNTNcdTYzNTRcdTYzNThcdTYzNWJcdTYzNjVcdTYzNjZcdTYzNmNcdTYzNmRcdTYzNzFcdTYzNzRcdTYzNzUiXSxbIjhmYzBhMSIsIlx1'@; put 'NjM3OFx1NjM3Y1x1NjM3ZFx1NjM3Zlx1NjM4Mlx1NjM4NFx1NjM4N1x1NjM4YVx1NjM5MFx1NjM5NFx1NjM5NVx1NjM5OVx1NjM5YVx1NjM5ZVx1NjNhNFx1NjNhNlx1NjNhZFx1NjNhZVx1NjNhZlx1NjNiZFx1NjNjMVx1NjNjNVx1NjNjOFx1NjNjZVx1NjNkMVx1NjNkM1x1NjNkNFx1NjNk'@; put 'NVx1NjNkY1x1NjNlMFx1NjNlNVx1NjNlYVx1NjNlY1x1NjNmMlx1NjNmM1x1NjNmNVx1NjNmOFx1NjNmOVx1NjQwOVx1NjQwYVx1NjQxMFx1NjQxMlx1NjQxNFx1NjQxOFx1NjQxZVx1NjQyMFx1NjQyMlx1NjQyNFx1NjQyNVx1NjQyOVx1NjQyYVx1NjQyZlx1NjQzMFx1NjQzNVx1NjQzZFx1'@; put 'NjQzZlx1NjQ0Ylx1NjQ0Zlx1NjQ1MVx1NjQ1Mlx1NjQ1M1x1NjQ1NFx1NjQ1YVx1NjQ1Ylx1NjQ1Y1x1NjQ1ZFx1NjQ1Zlx1NjQ2MFx1NjQ2MVx1NjQ2M1x1NjQ2ZFx1NjQ3M1x1NjQ3NFx1NjQ3Ylx1NjQ3ZFx1NjQ4NVx1NjQ4N1x1NjQ4Zlx1NjQ5MFx1NjQ5MVx1NjQ5OFx1NjQ5OVx1NjQ5'@; put 'Ylx1NjQ5ZFx1NjQ5Zlx1NjRhMVx1NjRhM1x1NjRhNlx1NjRhOFx1NjRhY1x1NjRiM1x1NjRiZFx1NjRiZVx1NjRiZiJdLFsiOGZjMWExIiwiXHU2NGM0XHU2NGM5XHU2NGNhXHU2NGNiXHU2NGNjXHU2NGNlXHU2NGQwXHU2NGQxXHU2NGQ1XHU2NGQ3XHU2NGU0XHU2NGU1XHU2NGU5XHU2NGVh'@; put 'XHU2NGVkXHU2NGYwXHU2NGY1XHU2NGY3XHU2NGZiXHU2NGZmXHU2NTAxXHU2NTA0XHU2NTA4XHU2NTA5XHU2NTBhXHU2NTBmXHU2NTEzXHU2NTE0XHU2NTE2XHU2NTE5XHU2NTFiXHU2NTFlXHU2NTFmXHU2NTIyXHU2NTI2XHU2NTI5XHU2NTJlXHU2NTMxXHU2NTNhXHU2NTNjXHU2NTNkXHU2'@; put 'NTQzXHU2NTQ3XHU2NTQ5XHU2NTUwXHU2NTUyXHU2NTU0XHU2NTVmXHU2NTYwXHU2NTY3XHU2NTZiXHU2NTdhXHU2NTdkXHU2NTgxXHU2NTg1XHU2NThhXHU2NTkyXHU2NTk1XHU2NTk4XHU2NTlkXHU2NWEwXHU2NWEzXHU2NWE2XHU2NWFlXHU2NWIyXHU2NWIzXHU2NWI0XHU2NWJmXHU2NWMy'@; put 'XHU2NWM4XHU2NWM5XHU2NWNlXHU2NWQwXHU2NWQ0XHU2NWQ2XHU2NWQ4XHU2NWRmXHU2NWYwXHU2NWYyXHU2NWY0XHU2NWY1XHU2NWY5XHU2NWZlXHU2NWZmXHU2NjAwXHU2NjA0XHU2NjA4XHU2NjA5XHU2NjBkXHU2NjExXHU2NjEyXHU2NjE1XHU2NjE2XHU2NjFkIl0sWyI4ZmMyYTEiLCJc'@; put 'dTY2MWVcdTY2MjFcdTY2MjJcdTY2MjNcdTY2MjRcdTY2MjZcdTY2MjlcdTY2MmFcdTY2MmJcdTY2MmNcdTY2MmVcdTY2MzBcdTY2MzFcdTY2MzNcdTY2MzlcdTY2MzdcdTY2NDBcdTY2NDVcdTY2NDZcdTY2NGFcdTY2NGNcdTY2NTFcdTY2NGVcdTY2NTdcdTY2NThcdTY2NTlcdTY2NWJcdTY2'@; put 'NWNcdTY2NjBcdTY2NjFcdTY2ZmJcdTY2NmFcdTY2NmJcdTY2NmNcdTY2N2VcdTY2NzNcdTY2NzVcdTY2N2ZcdTY2NzdcdTY2NzhcdTY2NzlcdTY2N2JcdTY2ODBcdTY2N2NcdTY2OGJcdTY2OGNcdTY2OGRcdTY2OTBcdTY2OTJcdTY2OTlcdTY2OWFcdTY2OWJcdTY2OWNcdTY2OWZcdTY2YTBc'@; put 'dTY2YTRcdTY2YWRcdTY2YjFcdTY2YjJcdTY2YjVcdTY2YmJcdTY2YmZcdTY2YzBcdTY2YzJcdTY2YzNcdTY2YzhcdTY2Y2NcdTY2Y2VcdTY2Y2ZcdTY2ZDRcdTY2ZGJcdTY2ZGZcdTY2ZThcdTY2ZWJcdTY2ZWNcdTY2ZWVcdTY2ZmFcdTY3MDVcdTY3MDdcdTY3MGVcdTY3MTNcdTY3MTlcdTY3'@; put 'MWNcdTY3MjBcdTY3MjJcdTY3MzNcdTY3M2VcdTY3NDVcdTY3NDdcdTY3NDhcdTY3NGNcdTY3NTRcdTY3NTVcdTY3NWQiXSxbIjhmYzNhMSIsIlx1Njc2Nlx1Njc2Y1x1Njc2ZVx1Njc3NFx1Njc3Nlx1Njc3Ylx1Njc4MVx1Njc4NFx1Njc4ZVx1Njc4Zlx1Njc5MVx1Njc5M1x1Njc5Nlx1Njc5'@; put 'OFx1Njc5OVx1Njc5Ylx1NjdiMFx1NjdiMVx1NjdiMlx1NjdiNVx1NjdiYlx1NjdiY1x1NjdiZFx1NjdmOVx1NjdjMFx1NjdjMlx1NjdjM1x1NjdjNVx1NjdjOFx1NjdjOVx1NjdkMlx1NjdkN1x1NjdkOVx1NjdkY1x1NjdlMVx1NjdlNlx1NjdmMFx1NjdmMlx1NjdmNlx1NjdmN1x1Njg1Mlx1'@; put 'NjgxNFx1NjgxOVx1NjgxZFx1NjgxZlx1NjgyOFx1NjgyN1x1NjgyY1x1NjgyZFx1NjgyZlx1NjgzMFx1NjgzMVx1NjgzM1x1NjgzYlx1NjgzZlx1Njg0NFx1Njg0NVx1Njg0YVx1Njg0Y1x1Njg1NVx1Njg1N1x1Njg1OFx1Njg1Ylx1Njg2Ylx1Njg2ZSIsNCwiXHU2ODc1XHU2ODc5XHU2ODdh'@; put 'XHU2ODdiXHU2ODdjXHU2ODgyXHU2ODg0XHU2ODg2XHU2ODg4XHU2ODk2XHU2ODk4XHU2ODlhXHU2ODljXHU2OGExXHU2OGEzXHU2OGE1XHU2OGE5XHU2OGFhXHU2OGFlXHU2OGIyXHU2OGJiXHU2OGM1XHU2OGM4XHU2OGNjXHU2OGNmIl0sWyI4ZmM0YTEiLCJcdTY4ZDBcdTY4ZDFcdTY4ZDNc'@; put 'dTY4ZDZcdTY4ZDlcdTY4ZGNcdTY4ZGRcdTY4ZTVcdTY4ZThcdTY4ZWFcdTY4ZWJcdTY4ZWNcdTY4ZWRcdTY4ZjBcdTY4ZjFcdTY4ZjVcdTY4ZjZcdTY4ZmJcdTY4ZmNcdTY4ZmRcdTY5MDZcdTY5MDlcdTY5MGFcdTY5MTBcdTY5MTFcdTY5MTNcdTY5MTZcdTY5MTdcdTY5MzFcdTY5MzNcdTY5'@; put 'MzVcdTY5MzhcdTY5M2JcdTY5NDJcdTY5NDVcdTY5NDlcdTY5NGVcdTY5NTdcdTY5NWJcdTY5NjNcdTY5NjRcdTY5NjVcdTY5NjZcdTY5NjhcdTY5NjlcdTY5NmNcdTY5NzBcdTY5NzFcdTY5NzJcdTY5N2FcdTY5N2JcdTY5N2ZcdTY5ODBcdTY5OGRcdTY5OTJcdTY5OTZcdTY5OThcdTY5YTFc'@; put 'dTY5YTVcdTY5YTZcdTY5YThcdTY5YWJcdTY5YWRcdTY5YWZcdTY5YjdcdTY5YjhcdTY5YmFcdTY5YmNcdTY5YzVcdTY5YzhcdTY5ZDFcdTY5ZDZcdTY5ZDdcdTY5ZTJcdTY5ZTVcdTY5ZWVcdTY5ZWZcdTY5ZjFcdTY5ZjNcdTY5ZjVcdTY5ZmVcdTZhMDBcdTZhMDFcdTZhMDNcdTZhMGZcdTZh'@; put 'MTFcdTZhMTVcdTZhMWFcdTZhMWRcdTZhMjBcdTZhMjRcdTZhMjhcdTZhMzBcdTZhMzIiXSxbIjhmYzVhMSIsIlx1NmEzNFx1NmEzN1x1NmEzYlx1NmEzZVx1NmEzZlx1NmE0NVx1NmE0Nlx1NmE0OVx1NmE0YVx1NmE0ZVx1NmE1MFx1NmE1MVx1NmE1Mlx1NmE1NVx1NmE1Nlx1NmE1Ylx1NmE2'@; put 'NFx1NmE2N1x1NmE2YVx1NmE3MVx1NmE3M1x1NmE3ZVx1NmE4MVx1NmE4M1x1NmE4Nlx1NmE4N1x1NmE4OVx1NmE4Ylx1NmE5MVx1NmE5Ylx1NmE5ZFx1NmE5ZVx1NmE5Zlx1NmFhNVx1NmFhYlx1NmFhZlx1NmFiMFx1NmFiMVx1NmFiNFx1NmFiZFx1NmFiZVx1NmFiZlx1NmFjNlx1NmFjOVx1'@; put 'NmFjOFx1NmFjY1x1NmFkMFx1NmFkNFx1NmFkNVx1NmFkNlx1NmFkY1x1NmFkZFx1NmFlNFx1NmFlN1x1NmFlY1x1NmFmMFx1NmFmMVx1NmFmMlx1NmFmY1x1NmFmZFx1NmIwMlx1NmIwM1x1NmIwNlx1NmIwN1x1NmIwOVx1NmIwZlx1NmIxMFx1NmIxMVx1NmIxN1x1NmIxYlx1NmIxZVx1NmIy'@; put 'NFx1NmIyOFx1NmIyYlx1NmIyY1x1NmIyZlx1NmIzNVx1NmIzNlx1NmIzYlx1NmIzZlx1NmI0Nlx1NmI0YVx1NmI0ZFx1NmI1Mlx1NmI1Nlx1NmI1OFx1NmI1ZFx1NmI2MFx1NmI2N1x1NmI2Ylx1NmI2ZVx1NmI3MFx1NmI3NVx1NmI3ZCJdLFsiOGZjNmExIiwiXHU2YjdlXHU2YjgyXHU2Yjg1'@; put 'XHU2Yjk3XHU2YjliXHU2YjlmXHU2YmEwXHU2YmEyXHU2YmEzXHU2YmE4XHU2YmE5XHU2YmFjXHU2YmFkXHU2YmFlXHU2YmIwXHU2YmI4XHU2YmI5XHU2YmJkXHU2YmJlXHU2YmMzXHU2YmM0XHU2YmM5XHU2YmNjXHU2YmQ2XHU2YmRhXHU2YmUxXHU2YmUzXHU2YmU2XHU2YmU3XHU2YmVlXHU2'@; put 'YmYxXHU2YmY3XHU2YmY5XHU2YmZmXHU2YzAyXHU2YzA0XHU2YzA1XHU2YzA5XHU2YzBkXHU2YzBlXHU2YzEwXHU2YzEyXHU2YzE5XHU2YzFmXHU2YzI2XHU2YzI3XHU2YzI4XHU2YzJjXHU2YzJlXHU2YzMzXHU2YzM1XHU2YzM2XHU2YzNhXHU2YzNiXHU2YzNmXHU2YzRhXHU2YzRiXHU2YzRk'@; put 'XHU2YzRmXHU2YzUyXHU2YzU0XHU2YzU5XHU2YzViXHU2YzVjXHU2YzZiXHU2YzZkXHU2YzZmXHU2Yzc0XHU2Yzc2XHU2Yzc4XHU2Yzc5XHU2YzdiXHU2Yzg1XHU2Yzg2XHU2Yzg3XHU2Yzg5XHU2Yzk0XHU2Yzk1XHU2Yzk3XHU2Yzk4XHU2YzljXHU2YzlmXHU2Y2IwXHU2Y2IyXHU2Y2I0XHU2'@; put 'Y2MyXHU2Y2M2XHU2Y2NkXHU2Y2NmXHU2Y2QwXHU2Y2QxXHU2Y2QyXHU2Y2Q0XHU2Y2Q2Il0sWyI4ZmM3YTEiLCJcdTZjZGFcdTZjZGNcdTZjZTBcdTZjZTdcdTZjZTlcdTZjZWJcdTZjZWNcdTZjZWVcdTZjZjJcdTZjZjRcdTZkMDRcdTZkMDdcdTZkMGFcdTZkMGVcdTZkMGZcdTZkMTFcdTZk'@; put 'MTNcdTZkMWFcdTZkMjZcdTZkMjdcdTZkMjhcdTZjNjdcdTZkMmVcdTZkMmZcdTZkMzFcdTZkMzlcdTZkM2NcdTZkM2ZcdTZkNTdcdTZkNWVcdTZkNWZcdTZkNjFcdTZkNjVcdTZkNjdcdTZkNmZcdTZkNzBcdTZkN2NcdTZkODJcdTZkODdcdTZkOTFcdTZkOTJcdTZkOTRcdTZkOTZcdTZkOTdc'@; put 'dTZkOThcdTZkYWFcdTZkYWNcdTZkYjRcdTZkYjdcdTZkYjlcdTZkYmRcdTZkYmZcdTZkYzRcdTZkYzhcdTZkY2FcdTZkY2VcdTZkY2ZcdTZkZDZcdTZkZGJcdTZkZGRcdTZkZGZcdTZkZTBcdTZkZTJcdTZkZTVcdTZkZTlcdTZkZWZcdTZkZjBcdTZkZjRcdTZkZjZcdTZkZmNcdTZlMDBcdTZl'@; put 'MDRcdTZlMWVcdTZlMjJcdTZlMjdcdTZlMzJcdTZlMzZcdTZlMzlcdTZlM2JcdTZlM2NcdTZlNDRcdTZlNDVcdTZlNDhcdTZlNDlcdTZlNGJcdTZlNGZcdTZlNTFcdTZlNTJcdTZlNTNcdTZlNTRcdTZlNTdcdTZlNWNcdTZlNWRcdTZlNWUiXSxbIjhmYzhhMSIsIlx1NmU2Mlx1NmU2M1x1NmU2'@; put 'OFx1NmU3M1x1NmU3Ylx1NmU3ZFx1NmU4ZFx1NmU5M1x1NmU5OVx1NmVhMFx1NmVhN1x1NmVhZFx1NmVhZVx1NmViMVx1NmViM1x1NmViYlx1NmViZlx1NmVjMFx1NmVjMVx1NmVjM1x1NmVjN1x1NmVjOFx1NmVjYVx1NmVjZFx1NmVjZVx1NmVjZlx1NmVlYlx1NmVlZFx1NmVlZVx1NmVmOVx1'@; put 'NmVmYlx1NmVmZFx1NmYwNFx1NmYwOFx1NmYwYVx1NmYwY1x1NmYwZFx1NmYxNlx1NmYxOFx1NmYxYVx1NmYxYlx1NmYyNlx1NmYyOVx1NmYyYVx1NmYyZlx1NmYzMFx1NmYzM1x1NmYzNlx1NmYzYlx1NmYzY1x1NmYyZFx1NmY0Zlx1NmY1MVx1NmY1Mlx1NmY1M1x1NmY1N1x1NmY1OVx1NmY1'@; put 'YVx1NmY1ZFx1NmY1ZVx1NmY2MVx1NmY2Mlx1NmY2OFx1NmY2Y1x1NmY3ZFx1NmY3ZVx1NmY4M1x1NmY4N1x1NmY4OFx1NmY4Ylx1NmY4Y1x1NmY4ZFx1NmY5MFx1NmY5Mlx1NmY5M1x1NmY5NFx1NmY5Nlx1NmY5YVx1NmY5Zlx1NmZhMFx1NmZhNVx1NmZhNlx1NmZhN1x1NmZhOFx1NmZhZVx1'@; put 'NmZhZlx1NmZiMFx1NmZiNVx1NmZiNlx1NmZiY1x1NmZjNVx1NmZjN1x1NmZjOFx1NmZjYSJdLFsiOGZjOWExIiwiXHU2ZmRhXHU2ZmRlXHU2ZmU4XHU2ZmU5XHU2ZmYwXHU2ZmY1XHU2ZmY5XHU2ZmZjXHU2ZmZkXHU3MDAwXHU3MDA1XHU3MDA2XHU3MDA3XHU3MDBkXHU3MDE3XHU3MDIwXHU3'@; put 'MDIzXHU3MDJmXHU3MDM0XHU3MDM3XHU3MDM5XHU3MDNjXHU3MDQzXHU3MDQ0XHU3MDQ4XHU3MDQ5XHU3MDRhXHU3MDRiXHU3MDU0XHU3MDU1XHU3MDVkXHU3MDVlXHU3MDRlXHU3MDY0XHU3MDY1XHU3MDZjXHU3MDZlXHU3MDc1XHU3MDc2XHU3MDdlXHU3MDgxXHU3MDg1XHU3MDg2XHU3MDk0'@; put 'Iiw0LCJcdTcwOWJcdTcwYTRcdTcwYWJcdTcwYjBcdTcwYjFcdTcwYjRcdTcwYjdcdTcwY2FcdTcwZDFcdTcwZDNcdTcwZDRcdTcwZDVcdTcwZDZcdTcwZDhcdTcwZGNcdTcwZTRcdTcwZmFcdTcxMDMiLDQsIlx1NzEwYlx1NzEwY1x1NzEwZlx1NzExZVx1NzEyMFx1NzEyYlx1NzEyZFx1NzEy'@; put 'Zlx1NzEzMFx1NzEzMVx1NzEzOFx1NzE0MVx1NzE0NVx1NzE0Nlx1NzE0N1x1NzE0YVx1NzE0Ylx1NzE1MFx1NzE1Mlx1NzE1N1x1NzE1YVx1NzE1Y1x1NzE1ZVx1NzE2MCJdLFsiOGZjYWExIiwiXHU3MTY4XHU3MTc5XHU3MTgwXHU3MTg1XHU3MTg3XHU3MThjXHU3MTkyXHU3MTlhXHU3MTli'@; put 'XHU3MWEwXHU3MWEyXHU3MWFmXHU3MWIwXHU3MWIyXHU3MWIzXHU3MWJhXHU3MWJmXHU3MWMwXHU3MWMxXHU3MWM0XHU3MWNiXHU3MWNjXHU3MWQzXHU3MWQ2XHU3MWQ5XHU3MWRhXHU3MWRjXHU3MWY4XHU3MWZlXHU3MjAwXHU3MjA3XHU3MjA4XHU3MjA5XHU3MjEzXHU3MjE3XHU3MjFhXHU3'@; put 'MjFkXHU3MjFmXHU3MjI0XHU3MjJiXHU3MjJmXHU3MjM0XHU3MjM4XHU3MjM5XHU3MjQxXHU3MjQyXHU3MjQzXHU3MjQ1XHU3MjRlXHU3MjRmXHU3MjUwXHU3MjUzXHU3MjU1XHU3MjU2XHU3MjVhXHU3MjVjXHU3MjVlXHU3MjYwXHU3MjYzXHU3MjY4XHU3MjZiXHU3MjZlXHU3MjZmXHU3Mjcx'@; put 'XHU3Mjc3XHU3Mjc4XHU3MjdiXHU3MjdjXHU3MjdmXHU3Mjg0XHU3Mjg5XHU3MjhkXHU3MjhlXHU3MjkzXHU3MjliXHU3MmE4XHU3MmFkXHU3MmFlXHU3MmIxXHU3MmI0XHU3MmJlXHU3MmMxXHU3MmM3XHU3MmM5XHU3MmNjXHU3MmQ1XHU3MmQ2XHU3MmQ4XHU3MmRmXHU3MmU1XHU3MmYzXHU3'@; put 'MmY0XHU3MmZhXHU3MmZiIl0sWyI4ZmNiYTEiLCJcdTcyZmVcdTczMDJcdTczMDRcdTczMDVcdTczMDdcdTczMGJcdTczMGRcdTczMTJcdTczMTNcdTczMThcdTczMTlcdTczMWVcdTczMjJcdTczMjRcdTczMjdcdTczMjhcdTczMmNcdTczMzFcdTczMzJcdTczMzVcdTczM2FcdTczM2JcdTcz'@; put 'M2RcdTczNDNcdTczNGRcdTczNTBcdTczNTJcdTczNTZcdTczNThcdTczNWRcdTczNWVcdTczNWZcdTczNjBcdTczNjZcdTczNjdcdTczNjlcdTczNmJcdTczNmNcdTczNmVcdTczNmZcdTczNzFcdTczNzdcdTczNzlcdTczN2NcdTczODBcdTczODFcdTczODNcdTczODVcdTczODZcdTczOGVc'@; put 'dTczOTBcdTczOTNcdTczOTVcdTczOTdcdTczOThcdTczOWNcdTczOWVcdTczOWZcdTczYTBcdTczYTJcdTczYTVcdTczYTZcdTczYWFcdTczYWJcdTczYWRcdTczYjVcdTczYjdcdTczYjlcdTczYmNcdTczYmRcdTczYmZcdTczYzVcdTczYzZcdTczYzlcdTczY2JcdTczY2NcdTczY2ZcdTcz'@; put 'ZDJcdTczZDNcdTczZDZcdTczZDlcdTczZGRcdTczZTFcdTczZTNcdTczZTZcdTczZTdcdTczZTlcdTczZjRcdTczZjVcdTczZjdcdTczZjlcdTczZmFcdTczZmJcdTczZmQiXSxbIjhmY2NhMSIsIlx1NzNmZlx1NzQwMFx1NzQwMVx1NzQwNFx1NzQwN1x1NzQwYVx1NzQxMVx1NzQxYVx1NzQx'@; put 'Ylx1NzQyNFx1NzQyNlx1NzQyOCIsOSwiXHU3NDM5XHU3NDQwXHU3NDQzXHU3NDQ0XHU3NDQ2XHU3NDQ3XHU3NDRiXHU3NDRkXHU3NDUxXHU3NDUyXHU3NDU3XHU3NDVkXHU3NDYyXHU3NDY2XHU3NDY3XHU3NDY4XHU3NDZiXHU3NDZkXHU3NDZlXHU3NDcxXHU3NDcyXHU3NDgwXHU3NDgxXHU3'@; put 'NDg1XHU3NDg2XHU3NDg3XHU3NDg5XHU3NDhmXHU3NDkwXHU3NDkxXHU3NDkyXHU3NDk4XHU3NDk5XHU3NDlhXHU3NDljXHU3NDlmXHU3NGEwXHU3NGExXHU3NGEzXHU3NGE2XHU3NGE4XHU3NGE5XHU3NGFhXHU3NGFiXHU3NGFlXHU3NGFmXHU3NGIxXHU3NGIyXHU3NGI1XHU3NGI5XHU3NGJi'@; put 'XHU3NGJmXHU3NGM4XHU3NGM5XHU3NGNjXHU3NGQwXHU3NGQzXHU3NGQ4XHU3NGRhXHU3NGRiXHU3NGRlXHU3NGRmXHU3NGU0XHU3NGU4XHU3NGVhXHU3NGViXHU3NGVmXHU3NGY0XHU3NGZhXHU3NGZiXHU3NGZjXHU3NGZmXHU3NTA2Il0sWyI4ZmNkYTEiLCJcdTc1MTJcdTc1MTZcdTc1MTdc'@; put 'dTc1MjBcdTc1MjFcdTc1MjRcdTc1MjdcdTc1MjlcdTc1MmFcdTc1MmZcdTc1MzZcdTc1MzlcdTc1M2RcdTc1M2VcdTc1M2ZcdTc1NDBcdTc1NDNcdTc1NDdcdTc1NDhcdTc1NGVcdTc1NTBcdTc1NTJcdTc1NTdcdTc1NWVcdTc1NWZcdTc1NjFcdTc1NmZcdTc1NzFcdTc1NzkiLDUsIlx1NzU4'@; put 'MVx1NzU4NVx1NzU5MFx1NzU5Mlx1NzU5M1x1NzU5NVx1NzU5OVx1NzU5Y1x1NzVhMlx1NzVhNFx1NzViNFx1NzViYVx1NzViZlx1NzVjMFx1NzVjMVx1NzVjNFx1NzVjNlx1NzVjY1x1NzVjZVx1NzVjZlx1NzVkN1x1NzVkY1x1NzVkZlx1NzVlMFx1NzVlMVx1NzVlNFx1NzVlN1x1NzVlY1x1'@; put 'NzVlZVx1NzVlZlx1NzVmMVx1NzVmOVx1NzYwMFx1NzYwMlx1NzYwM1x1NzYwNFx1NzYwN1x1NzYwOFx1NzYwYVx1NzYwY1x1NzYwZlx1NzYxMlx1NzYxM1x1NzYxNVx1NzYxNlx1NzYxOVx1NzYxYlx1NzYxY1x1NzYxZFx1NzYxZVx1NzYyM1x1NzYyNVx1NzYyNlx1NzYyOVx1NzYyZFx1NzYz'@; put 'Mlx1NzYzM1x1NzYzNVx1NzYzOFx1NzYzOSJdLFsiOGZjZWExIiwiXHU3NjNhXHU3NjNjXHU3NjRhXHU3NjQwXHU3NjQxXHU3NjQzXHU3NjQ0XHU3NjQ1XHU3NjQ5XHU3NjRiXHU3NjU1XHU3NjU5XHU3NjVmXHU3NjY0XHU3NjY1XHU3NjZkXHU3NjZlXHU3NjZmXHU3NjcxXHU3Njc0XHU3Njgx'@; put 'XHU3Njg1XHU3NjhjXHU3NjhkXHU3Njk1XHU3NjliXHU3NjljXHU3NjlkXHU3NjlmXHU3NmEwXHU3NmEyIiw2LCJcdTc2YWFcdTc2YWRcdTc2YmRcdTc2YzFcdTc2YzVcdTc2YzlcdTc2Y2JcdTc2Y2NcdTc2Y2VcdTc2ZDRcdTc2ZDlcdTc2ZTBcdTc2ZTZcdTc2ZThcdTc2ZWNcdTc2ZjBcdTc2'@; put 'ZjFcdTc2ZjZcdTc2ZjlcdTc2ZmNcdTc3MDBcdTc3MDZcdTc3MGFcdTc3MGVcdTc3MTJcdTc3MTRcdTc3MTVcdTc3MTdcdTc3MTlcdTc3MWFcdTc3MWNcdTc3MjJcdTc3MjhcdTc3MmRcdTc3MmVcdTc3MmZcdTc3MzRcdTc3MzVcdTc3MzZcdTc3MzlcdTc3M2RcdTc3M2VcdTc3NDJcdTc3NDVc'@; put 'dTc3NDZcdTc3NGFcdTc3NGRcdTc3NGVcdTc3NGZcdTc3NTJcdTc3NTZcdTc3NTdcdTc3NWNcdTc3NWVcdTc3NWZcdTc3NjBcdTc3NjIiXSxbIjhmY2ZhMSIsIlx1Nzc2NFx1Nzc2N1x1Nzc2YVx1Nzc2Y1x1Nzc3MFx1Nzc3Mlx1Nzc3M1x1Nzc3NFx1Nzc3YVx1Nzc3ZFx1Nzc4MFx1Nzc4NFx1'@; put 'Nzc4Y1x1Nzc4ZFx1Nzc5NFx1Nzc5NVx1Nzc5Nlx1Nzc5YVx1Nzc5Zlx1NzdhMlx1NzdhN1x1NzdhYVx1NzdhZVx1NzdhZlx1NzdiMVx1NzdiNVx1NzdiZVx1NzdjM1x1NzdjOVx1NzdkMVx1NzdkMlx1NzdkNVx1NzdkOVx1NzdkZVx1NzdkZlx1NzdlMFx1NzdlNFx1NzdlNlx1NzdlYVx1Nzdl'@; put 'Y1x1NzdmMFx1NzdmMVx1NzdmNFx1NzdmOFx1NzdmYlx1NzgwNVx1NzgwNlx1NzgwOVx1NzgwZFx1NzgwZVx1NzgxMVx1NzgxZFx1NzgyMVx1NzgyMlx1NzgyM1x1NzgyZFx1NzgyZVx1NzgzMFx1NzgzNVx1NzgzN1x1Nzg0M1x1Nzg0NFx1Nzg0N1x1Nzg0OFx1Nzg0Y1x1Nzg0ZVx1Nzg1Mlx1'@; put 'Nzg1Y1x1Nzg1ZVx1Nzg2MFx1Nzg2MVx1Nzg2M1x1Nzg2NFx1Nzg2OFx1Nzg2YVx1Nzg2ZVx1Nzg3YVx1Nzg3ZVx1Nzg4YVx1Nzg4Zlx1Nzg5NFx1Nzg5OFx1NzhhMVx1Nzg5ZFx1Nzg5ZVx1Nzg5Zlx1NzhhNFx1NzhhOFx1NzhhY1x1NzhhZFx1NzhiMFx1NzhiMVx1NzhiMlx1NzhiMyJdLFsi'@; put 'OGZkMGExIiwiXHU3OGJiXHU3OGJkXHU3OGJmXHU3OGM3XHU3OGM4XHU3OGM5XHU3OGNjXHU3OGNlXHU3OGQyXHU3OGQzXHU3OGQ1XHU3OGQ2XHU3OGU0XHU3OGRiXHU3OGRmXHU3OGUwXHU3OGUxXHU3OGU2XHU3OGVhXHU3OGYyXHU3OGYzXHU3OTAwXHU3OGY2XHU3OGY3XHU3OGZhXHU3OGZi'@; put 'XHU3OGZmXHU3OTA2XHU3OTBjXHU3OTEwXHU3OTFhXHU3OTFjXHU3OTFlXHU3OTFmXHU3OTIwXHU3OTI1XHU3OTI3XHU3OTI5XHU3OTJkXHU3OTMxXHU3OTM0XHU3OTM1XHU3OTNiXHU3OTNkXHU3OTNmXHU3OTQ0XHU3OTQ1XHU3OTQ2XHU3OTRhXHU3OTRiXHU3OTRmXHU3OTUxXHU3OTU0XHU3'@; put 'OTU4XHU3OTViXHU3OTVjXHU3OTY3XHU3OTY5XHU3OTZiXHU3OTcyXHU3OTc5XHU3OTdiXHU3OTdjXHU3OTdlXHU3OThiXHU3OThjXHU3OTkxXHU3OTkzXHU3OTk0XHU3OTk1XHU3OTk2XHU3OTk4XHU3OTliXHU3OTljXHU3OWExXHU3OWE4XHU3OWE5XHU3OWFiXHU3OWFmXHU3OWIxXHU3OWI0'@; put 'XHU3OWI4XHU3OWJiXHU3OWMyXHU3OWM0XHU3OWM3XHU3OWM4XHU3OWNhXHU3OWNmXHU3OWQ0XHU3OWQ2XHU3OWRhXHU3OWRkXHU3OWRlIl0sWyI4ZmQxYTEiLCJcdTc5ZTBcdTc5ZTJcdTc5ZTVcdTc5ZWFcdTc5ZWJcdTc5ZWRcdTc5ZjFcdTc5ZjhcdTc5ZmNcdTdhMDJcdTdhMDNcdTdhMDdc'@; put 'dTdhMDlcdTdhMGFcdTdhMGNcdTdhMTFcdTdhMTVcdTdhMWJcdTdhMWVcdTdhMjFcdTdhMjdcdTdhMmJcdTdhMmRcdTdhMmZcdTdhMzBcdTdhMzRcdTdhMzVcdTdhMzhcdTdhMzlcdTdhM2FcdTdhNDRcdTdhNDVcdTdhNDdcdTdhNDhcdTdhNGNcdTdhNTVcdTdhNTZcdTdhNTlcdTdhNWNcdTdh'@; put 'NWRcdTdhNWZcdTdhNjBcdTdhNjVcdTdhNjdcdTdhNmFcdTdhNmRcdTdhNzVcdTdhNzhcdTdhN2VcdTdhODBcdTdhODJcdTdhODVcdTdhODZcdTdhOGFcdTdhOGJcdTdhOTBcdTdhOTFcdTdhOTRcdTdhOWVcdTdhYTBcdTdhYTNcdTdhYWNcdTdhYjNcdTdhYjVcdTdhYjlcdTdhYmJcdTdhYmNc'@; put 'dTdhYzZcdTdhYzlcdTdhY2NcdTdhY2VcdTdhZDFcdTdhZGJcdTdhZThcdTdhZTlcdTdhZWJcdTdhZWNcdTdhZjFcdTdhZjRcdTdhZmJcdTdhZmRcdTdhZmVcdTdiMDdcdTdiMTRcdTdiMWZcdTdiMjNcdTdiMjdcdTdiMjlcdTdiMmFcdTdiMmJcdTdiMmRcdTdiMmVcdTdiMmZcdTdiMzAiXSxb'@; put 'IjhmZDJhMSIsIlx1N2IzMVx1N2IzNFx1N2IzZFx1N2IzZlx1N2I0MFx1N2I0MVx1N2I0N1x1N2I0ZVx1N2I1NVx1N2I2MFx1N2I2NFx1N2I2Nlx1N2I2OVx1N2I2YVx1N2I2ZFx1N2I2Zlx1N2I3Mlx1N2I3M1x1N2I3N1x1N2I4NFx1N2I4OVx1N2I4ZVx1N2I5MFx1N2I5MVx1N2I5Nlx1N2I5'@; put 'Ylx1N2I5ZVx1N2JhMFx1N2JhNVx1N2JhY1x1N2JhZlx1N2JiMFx1N2JiMlx1N2JiNVx1N2JiNlx1N2JiYVx1N2JiYlx1N2JiY1x1N2JiZFx1N2JjMlx1N2JjNVx1N2JjOFx1N2JjYVx1N2JkNFx1N2JkNlx1N2JkN1x1N2JkOVx1N2JkYVx1N2JkYlx1N2JlOFx1N2JlYVx1N2JmMlx1N2JmNFx1'@; put 'N2JmNVx1N2JmOFx1N2JmOVx1N2JmYVx1N2JmY1x1N2JmZVx1N2MwMVx1N2MwMlx1N2MwM1x1N2MwNFx1N2MwNlx1N2MwOVx1N2MwYlx1N2MwY1x1N2MwZVx1N2MwZlx1N2MxOVx1N2MxYlx1N2MyMFx1N2MyNVx1N2MyNlx1N2MyOFx1N2MyY1x1N2MzMVx1N2MzM1x1N2MzNFx1N2MzNlx1N2Mz'@; put 'OVx1N2MzYVx1N2M0Nlx1N2M0YVx1N2M1NVx1N2M1MVx1N2M1Mlx1N2M1M1x1N2M1OSIsNV0sWyI4ZmQzYTEiLCJcdTdjNjFcdTdjNjNcdTdjNjdcdTdjNjlcdTdjNmRcdTdjNmVcdTdjNzBcdTdjNzJcdTdjNzlcdTdjN2NcdTdjN2RcdTdjODZcdTdjODdcdTdjOGZcdTdjOTRcdTdjOWVcdTdj'@; put 'YTBcdTdjYTZcdTdjYjBcdTdjYjZcdTdjYjdcdTdjYmFcdTdjYmJcdTdjYmNcdTdjYmZcdTdjYzRcdTdjYzdcdTdjYzhcdTdjYzlcdTdjY2RcdTdjY2ZcdTdjZDNcdTdjZDRcdTdjZDVcdTdjZDdcdTdjZDlcdTdjZGFcdTdjZGRcdTdjZTZcdTdjZTlcdTdjZWJcdTdjZjVcdTdkMDNcdTdkMDdc'@; put 'dTdkMDhcdTdkMDlcdTdkMGZcdTdkMTFcdTdkMTJcdTdkMTNcdTdkMTZcdTdkMWRcdTdkMWVcdTdkMjNcdTdkMjZcdTdkMmFcdTdkMmRcdTdkMzFcdTdkM2NcdTdkM2RcdTdkM2VcdTdkNDBcdTdkNDFcdTdkNDdcdTdkNDhcdTdkNGRcdTdkNTFcdTdkNTNcdTdkNTdcdTdkNTlcdTdkNWFcdTdk'@; put 'NWNcdTdkNWRcdTdkNjVcdTdkNjdcdTdkNmFcdTdkNzBcdTdkNzhcdTdkN2FcdTdkN2JcdTdkN2ZcdTdkODFcdTdkODJcdTdkODNcdTdkODVcdTdkODZcdTdkODhcdTdkOGJcdTdkOGNcdTdkOGRcdTdkOTFcdTdkOTZcdTdkOTdcdTdkOWQiXSxbIjhmZDRhMSIsIlx1N2Q5ZVx1N2RhNlx1N2Rh'@; put 'N1x1N2RhYVx1N2RiM1x1N2RiNlx1N2RiN1x1N2RiOVx1N2RjMiIsNCwiXHU3ZGNjXHU3ZGNkXHU3ZGNlXHU3ZGQ3XHU3ZGQ5XHU3ZTAwXHU3ZGUyXHU3ZGU1XHU3ZGU2XHU3ZGVhXHU3ZGViXHU3ZGVkXHU3ZGYxXHU3ZGY1XHU3ZGY2XHU3ZGY5XHU3ZGZhXHU3ZTA4XHU3ZTEwXHU3ZTExXHU3'@; put 'ZTE1XHU3ZTE3XHU3ZTFjXHU3ZTFkXHU3ZTIwXHU3ZTI3XHU3ZTI4XHU3ZTJjXHU3ZTJkXHU3ZTJmXHU3ZTMzXHU3ZTM2XHU3ZTNmXHU3ZTQ0XHU3ZTQ1XHU3ZTQ3XHU3ZTRlXHU3ZTUwXHU3ZTUyXHU3ZTU4XHU3ZTVmXHU3ZTYxXHU3ZTYyXHU3ZTY1XHU3ZTZiXHU3ZTZlXHU3ZTZmXHU3ZTcz'@; put 'XHU3ZTc4XHU3ZTdlXHU3ZTgxXHU3ZTg2XHU3ZTg3XHU3ZThhXHU3ZThkXHU3ZTkxXHU3ZTk1XHU3ZTk4XHU3ZTlhXHU3ZTlkXHU3ZTllXHU3ZjNjXHU3ZjNiXHU3ZjNkXHU3ZjNlXHU3ZjNmXHU3ZjQzXHU3ZjQ0XHU3ZjQ3XHU3ZjRmXHU3ZjUyXHU3ZjUzXHU3ZjViXHU3ZjVjXHU3ZjVkXHU3'@; put 'ZjYxXHU3ZjYzXHU3ZjY0XHU3ZjY1XHU3ZjY2XHU3ZjZkIl0sWyI4ZmQ1YTEiLCJcdTdmNzFcdTdmN2RcdTdmN2VcdTdmN2ZcdTdmODBcdTdmOGJcdTdmOGRcdTdmOGZcdTdmOTBcdTdmOTFcdTdmOTZcdTdmOTdcdTdmOWNcdTdmYTFcdTdmYTJcdTdmYTZcdTdmYWFcdTdmYWRcdTdmYjRcdTdm'@; put 'YmNcdTdmYmZcdTdmYzBcdTdmYzNcdTdmYzhcdTdmY2VcdTdmY2ZcdTdmZGJcdTdmZGZcdTdmZTNcdTdmZTVcdTdmZThcdTdmZWNcdTdmZWVcdTdmZWZcdTdmZjJcdTdmZmFcdTdmZmRcdTdmZmVcdTdmZmZcdTgwMDdcdTgwMDhcdTgwMGFcdTgwMGRcdTgwMGVcdTgwMGZcdTgwMTFcdTgwMTNc'@; put 'dTgwMTRcdTgwMTZcdTgwMWRcdTgwMWVcdTgwMWZcdTgwMjBcdTgwMjRcdTgwMjZcdTgwMmNcdTgwMmVcdTgwMzBcdTgwMzRcdTgwMzVcdTgwMzdcdTgwMzlcdTgwM2FcdTgwM2NcdTgwM2VcdTgwNDBcdTgwNDRcdTgwNjBcdTgwNjRcdTgwNjZcdTgwNmRcdTgwNzFcdTgwNzVcdTgwODFcdTgw'@; put 'ODhcdTgwOGVcdTgwOWNcdTgwOWVcdTgwYTZcdTgwYTdcdTgwYWJcdTgwYjhcdTgwYjlcdTgwYzhcdTgwY2RcdTgwY2ZcdTgwZDJcdTgwZDRcdTgwZDVcdTgwZDdcdTgwZDhcdTgwZTBcdTgwZWRcdTgwZWUiXSxbIjhmZDZhMSIsIlx1ODBmMFx1ODBmMlx1ODBmM1x1ODBmNlx1ODBmOVx1ODBm'@; put 'YVx1ODBmZVx1ODEwM1x1ODEwYlx1ODExNlx1ODExN1x1ODExOFx1ODExY1x1ODExZVx1ODEyMFx1ODEyNFx1ODEyN1x1ODEyY1x1ODEzMFx1ODEzNVx1ODEzYVx1ODEzY1x1ODE0NVx1ODE0N1x1ODE0YVx1ODE0Y1x1ODE1Mlx1ODE1N1x1ODE2MFx1ODE2MVx1ODE2N1x1ODE2OFx1ODE2OVx1'@; put 'ODE2ZFx1ODE2Zlx1ODE3N1x1ODE4MVx1ODE5MFx1ODE4NFx1ODE4NVx1ODE4Nlx1ODE4Ylx1ODE4ZVx1ODE5Nlx1ODE5OFx1ODE5Ylx1ODE5ZVx1ODFhMlx1ODFhZVx1ODFiMlx1ODFiNFx1ODFiYlx1ODFjYlx1ODFjM1x1ODFjNVx1ODFjYVx1ODFjZVx1ODFjZlx1ODFkNVx1ODFkN1x1ODFk'@; put 'Ylx1ODFkZFx1ODFkZVx1ODFlMVx1ODFlNFx1ODFlYlx1ODFlY1x1ODFmMFx1ODFmMVx1ODFmMlx1ODFmNVx1ODFmNlx1ODFmOFx1ODFmOVx1ODFmZFx1ODFmZlx1ODIwMFx1ODIwM1x1ODIwZlx1ODIxM1x1ODIxNFx1ODIxOVx1ODIxYVx1ODIxZFx1ODIyMVx1ODIyMlx1ODIyOFx1ODIzMlx1'@; put 'ODIzNFx1ODIzYVx1ODI0M1x1ODI0NFx1ODI0NVx1ODI0NiJdLFsiOGZkN2ExIiwiXHU4MjRiXHU4MjRlXHU4MjRmXHU4MjUxXHU4MjU2XHU4MjVjXHU4MjYwXHU4MjYzXHU4MjY3XHU4MjZkXHU4Mjc0XHU4MjdiXHU4MjdkXHU4MjdmXHU4MjgwXHU4MjgxXHU4MjgzXHU4Mjg0XHU4Mjg3XHU4'@; put 'Mjg5XHU4MjhhXHU4MjhlXHU4MjkxXHU4Mjk0XHU4Mjk2XHU4Mjk4XHU4MjlhXHU4MjliXHU4MmEwXHU4MmExXHU4MmEzXHU4MmE0XHU4MmE3XHU4MmE4XHU4MmE5XHU4MmFhXHU4MmFlXHU4MmIwXHU4MmIyXHU4MmI0XHU4MmI3XHU4MmJhXHU4MmJjXHU4MmJlXHU4MmJmXHU4MmM2XHU4MmQw'@; put 'XHU4MmQ1XHU4MmRhXHU4MmUwXHU4MmUyXHU4MmU0XHU4MmU4XHU4MmVhXHU4MmVkXHU4MmVmXHU4MmY2XHU4MmY3XHU4MmZkXHU4MmZlXHU4MzAwXHU4MzAxXHU4MzA3XHU4MzA4XHU4MzBhXHU4MzBiXHU4MzU0XHU4MzFiXHU4MzFkXHU4MzFlXHU4MzFmXHU4MzIxXHU4MzIyXHU4MzJjXHU4'@; put 'MzJkXHU4MzJlXHU4MzMwXHU4MzMzXHU4MzM3XHU4MzNhXHU4MzNjXHU4MzNkXHU4MzQyXHU4MzQzXHU4MzQ0XHU4MzQ3XHU4MzRkXHU4MzRlXHU4MzUxXHU4MzU1XHU4MzU2XHU4MzU3XHU4MzcwXHU4Mzc4Il0sWyI4ZmQ4YTEiLCJcdTgzN2RcdTgzN2ZcdTgzODBcdTgzODJcdTgzODRcdTgz'@; put 'ODZcdTgzOGRcdTgzOTJcdTgzOTRcdTgzOTVcdTgzOThcdTgzOTlcdTgzOWJcdTgzOWNcdTgzOWRcdTgzYTZcdTgzYTdcdTgzYTlcdTgzYWNcdTgzYmVcdTgzYmZcdTgzYzBcdTgzYzdcdTgzYzlcdTgzY2ZcdTgzZDBcdTgzZDFcdTgzZDRcdTgzZGRcdTgzNTNcdTgzZThcdTgzZWFcdTgzZjZc'@; put 'dTgzZjhcdTgzZjlcdTgzZmNcdTg0MDFcdTg0MDZcdTg0MGFcdTg0MGZcdTg0MTFcdTg0MTVcdTg0MTlcdTgzYWRcdTg0MmZcdTg0MzlcdTg0NDVcdTg0NDdcdTg0NDhcdTg0NGFcdTg0NGRcdTg0NGZcdTg0NTFcdTg0NTJcdTg0NTZcdTg0NThcdTg0NTlcdTg0NWFcdTg0NWNcdTg0NjBcdTg0'@; put 'NjRcdTg0NjVcdTg0NjdcdTg0NmFcdTg0NzBcdTg0NzNcdTg0NzRcdTg0NzZcdTg0NzhcdTg0N2NcdTg0N2RcdTg0ODFcdTg0ODVcdTg0OTJcdTg0OTNcdTg0OTVcdTg0OWVcdTg0YTZcdTg0YThcdTg0YTlcdTg0YWFcdTg0YWZcdTg0YjFcdTg0YjRcdTg0YmFcdTg0YmRcdTg0YmVcdTg0YzBc'@; put 'dTg0YzJcdTg0YzdcdTg0YzhcdTg0Y2NcdTg0Y2ZcdTg0ZDMiXSxbIjhmZDlhMSIsIlx1ODRkY1x1ODRlN1x1ODRlYVx1ODRlZlx1ODRmMFx1ODRmMVx1ODRmMlx1ODRmN1x1ODUzMlx1ODRmYVx1ODRmYlx1ODRmZFx1ODUwMlx1ODUwM1x1ODUwN1x1ODUwY1x1ODUwZVx1ODUxMFx1ODUxY1x1'@; put 'ODUxZVx1ODUyMlx1ODUyM1x1ODUyNFx1ODUyNVx1ODUyN1x1ODUyYVx1ODUyYlx1ODUyZlx1ODUzM1x1ODUzNFx1ODUzNlx1ODUzZlx1ODU0Nlx1ODU0ZiIsNCwiXHU4NTU2XHU4NTU5XHU4NTVjIiw2LCJcdTg1NjRcdTg1NmJcdTg1NmZcdTg1NzlcdTg1N2FcdTg1N2JcdTg1N2RcdTg1N2Zc'@; put 'dTg1ODFcdTg1ODVcdTg1ODZcdTg1ODlcdTg1OGJcdTg1OGNcdTg1OGZcdTg1OTNcdTg1OThcdTg1OWRcdTg1OWZcdTg1YTBcdTg1YTJcdTg1YTVcdTg1YTdcdTg1YjRcdTg1YjZcdTg1YjdcdTg1YjhcdTg1YmNcdTg1YmRcdTg1YmVcdTg1YmZcdTg1YzJcdTg1YzdcdTg1Y2FcdTg1Y2JcdTg1'@; put 'Y2VcdTg1YWRcdTg1ZDhcdTg1ZGFcdTg1ZGZcdTg1ZTBcdTg1ZTZcdTg1ZThcdTg1ZWRcdTg1ZjNcdTg1ZjZcdTg1ZmMiXSxbIjhmZGFhMSIsIlx1ODVmZlx1ODYwMFx1ODYwNFx1ODYwNVx1ODYwZFx1ODYwZVx1ODYxMFx1ODYxMVx1ODYxMlx1ODYxOFx1ODYxOVx1ODYxYlx1ODYxZVx1ODYy'@; put 'MVx1ODYyN1x1ODYyOVx1ODYzNlx1ODYzOFx1ODYzYVx1ODYzY1x1ODYzZFx1ODY0MFx1ODY0Mlx1ODY0Nlx1ODY1Mlx1ODY1M1x1ODY1Nlx1ODY1N1x1ODY1OFx1ODY1OVx1ODY1ZFx1ODY2MCIsNCwiXHU4NjY5XHU4NjZjXHU4NjZmXHU4Njc1XHU4Njc2XHU4Njc3XHU4NjdhXHU4NjhkXHU4'@; put 'NjkxXHU4Njk2XHU4Njk4XHU4NjlhXHU4NjljXHU4NmExXHU4NmE2XHU4NmE3XHU4NmE4XHU4NmFkXHU4NmIxXHU4NmIzXHU4NmI0XHU4NmI1XHU4NmI3XHU4NmI4XHU4NmI5XHU4NmJmXHU4NmMwXHU4NmMxXHU4NmMzXHU4NmM1XHU4NmQxXHU4NmQyXHU4NmQ1XHU4NmQ3XHU4NmRhXHU4NmRj'@; put 'XHU4NmUwXHU4NmUzXHU4NmU1XHU4NmU3XHU4Njg4XHU4NmZhXHU4NmZjXHU4NmZkXHU4NzA0XHU4NzA1XHU4NzA3XHU4NzBiXHU4NzBlXHU4NzBmXHU4NzEwXHU4NzEzXHU4NzE0XHU4NzE5XHU4NzFlXHU4NzFmXHU4NzIxXHU4NzIzIl0sWyI4ZmRiYTEiLCJcdTg3MjhcdTg3MmVcdTg3MmZc'@; put 'dTg3MzFcdTg3MzJcdTg3MzlcdTg3M2FcdTg3M2NcdTg3M2RcdTg3M2VcdTg3NDBcdTg3NDNcdTg3NDVcdTg3NGRcdTg3NThcdTg3NWRcdTg3NjFcdTg3NjRcdTg3NjVcdTg3NmZcdTg3NzFcdTg3NzJcdTg3N2JcdTg3ODMiLDYsIlx1ODc4Ylx1ODc4Y1x1ODc5MFx1ODc5M1x1ODc5NVx1ODc5'@; put 'N1x1ODc5OFx1ODc5OVx1ODc5ZVx1ODdhMFx1ODdhM1x1ODdhN1x1ODdhY1x1ODdhZFx1ODdhZVx1ODdiMVx1ODdiNVx1ODdiZVx1ODdiZlx1ODdjMVx1ODdjOFx1ODdjOVx1ODdjYVx1ODdjZVx1ODdkNVx1ODdkNlx1ODdkOVx1ODdkYVx1ODdkY1x1ODdkZlx1ODdlMlx1ODdlM1x1ODdlNFx1'@; put 'ODdlYVx1ODdlYlx1ODdlZFx1ODdmMVx1ODdmM1x1ODdmOFx1ODdmYVx1ODdmZlx1ODgwMVx1ODgwM1x1ODgwNlx1ODgwOVx1ODgwYVx1ODgwYlx1ODgxMFx1ODgxOVx1ODgxMlx1ODgxM1x1ODgxNFx1ODgxOFx1ODgxYVx1ODgxYlx1ODgxY1x1ODgxZVx1ODgxZlx1ODgyOFx1ODgyZFx1ODgy'@; put 'ZVx1ODgzMFx1ODgzMlx1ODgzNSJdLFsiOGZkY2ExIiwiXHU4ODNhXHU4ODNjXHU4ODQxXHU4ODQzXHU4ODQ1XHU4ODQ4XHU4ODQ5XHU4ODRhXHU4ODRiXHU4ODRlXHU4ODUxXHU4ODU1XHU4ODU2XHU4ODU4XHU4ODVhXHU4ODVjXHU4ODVmXHU4ODYwXHU4ODY0XHU4ODY5XHU4ODcxXHU4ODc5'@; put 'XHU4ODdiXHU4ODgwXHU4ODk4XHU4ODlhXHU4ODliXHU4ODljXHU4ODlmXHU4OGEwXHU4OGE4XHU4OGFhXHU4OGJhXHU4OGJkXHU4OGJlXHU4OGMwXHU4OGNhIiw0LCJcdTg4ZDFcdTg4ZDJcdTg4ZDNcdTg4ZGJcdTg4ZGVcdTg4ZTdcdTg4ZWZcdTg4ZjBcdTg4ZjFcdTg4ZjVcdTg4ZjdcdTg5'@; put 'MDFcdTg5MDZcdTg5MGRcdTg5MGVcdTg5MGZcdTg5MTVcdTg5MTZcdTg5MThcdTg5MTlcdTg5MWFcdTg5MWNcdTg5MjBcdTg5MjZcdTg5MjdcdTg5MjhcdTg5MzBcdTg5MzFcdTg5MzJcdTg5MzVcdTg5MzlcdTg5M2FcdTg5M2VcdTg5NDBcdTg5NDJcdTg5NDVcdTg5NDZcdTg5NDlcdTg5NGZc'@; put 'dTg5NTJcdTg5NTdcdTg5NWFcdTg5NWJcdTg5NWNcdTg5NjFcdTg5NjJcdTg5NjNcdTg5NmJcdTg5NmVcdTg5NzBcdTg5NzNcdTg5NzVcdTg5N2EiXSxbIjhmZGRhMSIsIlx1ODk3Ylx1ODk3Y1x1ODk3ZFx1ODk4OVx1ODk4ZFx1ODk5MFx1ODk5NFx1ODk5NVx1ODk5Ylx1ODk5Y1x1ODk5Zlx1'@; put 'ODlhMFx1ODlhNVx1ODliMFx1ODliNFx1ODliNVx1ODliNlx1ODliN1x1ODliY1x1ODlkNCIsNCwiXHU4OWU1XHU4OWU5XHU4OWViXHU4OWVkXHU4OWYxXHU4OWYzXHU4OWY2XHU4OWY5XHU4OWZkXHU4OWZmXHU4YTA0XHU4YTA1XHU4YTA3XHU4YTBmXHU4YTExXHU4YTEyXHU4YTE0XHU4YTE1'@; put 'XHU4YTFlXHU4YTIwXHU4YTIyXHU4YTI0XHU4YTI2XHU4YTJiXHU4YTJjXHU4YTJmXHU4YTM1XHU4YTM3XHU4YTNkXHU4YTNlXHU4YTQwXHU4YTQzXHU4YTQ1XHU4YTQ3XHU4YTQ5XHU4YTRkXHU4YTRlXHU4YTUzXHU4YTU2XHU4YTU3XHU4YTU4XHU4YTVjXHU4YTVkXHU4YTYxXHU4YTY1XHU4'@; put 'YTY3XHU4YTc1XHU4YTc2XHU4YTc3XHU4YTc5XHU4YTdhXHU4YTdiXHU4YTdlXHU4YTdmXHU4YTgwXHU4YTgzXHU4YTg2XHU4YThiXHU4YThmXHU4YTkwXHU4YTkyXHU4YTk2XHU4YTk3XHU4YTk5XHU4YTlmXHU4YWE3XHU4YWE5XHU4YWFlXHU4YWFmXHU4YWIzIl0sWyI4ZmRlYTEiLCJcdThh'@; put 'YjZcdThhYjdcdThhYmJcdThhYmVcdThhYzNcdThhYzZcdThhYzhcdThhYzlcdThhY2FcdThhZDFcdThhZDNcdThhZDRcdThhZDVcdThhZDdcdThhZGRcdThhZGZcdThhZWNcdThhZjBcdThhZjRcdThhZjVcdThhZjZcdThhZmNcdThhZmZcdThiMDVcdThiMDZcdThiMGJcdThiMTFcdThiMWNc'@; put 'dThiMWVcdThiMWZcdThiMGFcdThiMmRcdThiMzBcdThiMzdcdThiM2NcdThiNDIiLDQsIlx1OGI0OFx1OGI1Mlx1OGI1M1x1OGI1NFx1OGI1OVx1OGI0ZFx1OGI1ZVx1OGI2M1x1OGI2ZFx1OGI3Nlx1OGI3OFx1OGI3OVx1OGI3Y1x1OGI3ZVx1OGI4MVx1OGI4NFx1OGI4NVx1OGI4Ylx1OGI4'@; put 'ZFx1OGI4Zlx1OGI5NFx1OGI5NVx1OGI5Y1x1OGI5ZVx1OGI5Zlx1OGMzOFx1OGMzOVx1OGMzZFx1OGMzZVx1OGM0NVx1OGM0N1x1OGM0OVx1OGM0Ylx1OGM0Zlx1OGM1MVx1OGM1M1x1OGM1NFx1OGM1N1x1OGM1OFx1OGM1Ylx1OGM1ZFx1OGM1OVx1OGM2M1x1OGM2NFx1OGM2Nlx1OGM2OFx1'@; put 'OGM2OVx1OGM2ZFx1OGM3M1x1OGM3NVx1OGM3Nlx1OGM3Ylx1OGM3ZVx1OGM4NiJdLFsiOGZkZmExIiwiXHU4Yzg3XHU4YzhiXHU4YzkwXHU4YzkyXHU4YzkzXHU4Yzk5XHU4YzliXHU4YzljXHU4Y2E0XHU4Y2I5XHU4Y2JhXHU4Y2M1XHU4Y2M2XHU4Y2M5XHU4Y2NiXHU4Y2NmXHU4Y2Q2XHU4'@; put 'Y2Q1XHU4Y2Q5XHU4Y2RkXHU4Y2UxXHU4Y2U4XHU4Y2VjXHU4Y2VmXHU4Y2YwXHU4Y2YyXHU4Y2Y1XHU4Y2Y3XHU4Y2Y4XHU4Y2ZlXHU4Y2ZmXHU4ZDAxXHU4ZDAzXHU4ZDA5XHU4ZDEyXHU4ZDE3XHU4ZDFiXHU4ZDY1XHU4ZDY5XHU4ZDZjXHU4ZDZlXHU4ZDdmXHU4ZDgyXHU4ZDg0XHU4ZDg4'@; put 'XHU4ZDhkXHU4ZDkwXHU4ZDkxXHU4ZDk1XHU4ZDllXHU4ZDlmXHU4ZGEwXHU4ZGE2XHU4ZGFiXHU4ZGFjXHU4ZGFmXHU4ZGIyXHU4ZGI1XHU4ZGI3XHU4ZGI5XHU4ZGJiXHU4ZGMwXHU4ZGM1XHU4ZGM2XHU4ZGM3XHU4ZGM4XHU4ZGNhXHU4ZGNlXHU4ZGQxXHU4ZGQ0XHU4ZGQ1XHU4ZGQ3XHU4'@; put 'ZGQ5XHU4ZGU0XHU4ZGU1XHU4ZGU3XHU4ZGVjXHU4ZGYwXHU4ZGJjXHU4ZGYxXHU4ZGYyXHU4ZGY0XHU4ZGZkXHU4ZTAxXHU4ZTA0XHU4ZTA1XHU4ZTA2XHU4ZTBiXHU4ZTExXHU4ZTE0XHU4ZTE2XHU4ZTIwXHU4ZTIxXHU4ZTIyIl0sWyI4ZmUwYTEiLCJcdThlMjNcdThlMjZcdThlMjdcdThl'@; put 'MzFcdThlMzNcdThlMzZcdThlMzdcdThlMzhcdThlMzlcdThlM2RcdThlNDBcdThlNDFcdThlNGJcdThlNGRcdThlNGVcdThlNGZcdThlNTRcdThlNWJcdThlNWNcdThlNWRcdThlNWVcdThlNjFcdThlNjJcdThlNjlcdThlNmNcdThlNmRcdThlNmZcdThlNzBcdThlNzFcdThlNzlcdThlN2Fc'@; put 'dThlN2JcdThlODJcdThlODNcdThlODlcdThlOTBcdThlOTJcdThlOTVcdThlOWFcdThlOWJcdThlOWRcdThlOWVcdThlYTJcdThlYTdcdThlYTlcdThlYWRcdThlYWVcdThlYjNcdThlYjVcdThlYmFcdThlYmJcdThlYzBcdThlYzFcdThlYzNcdThlYzRcdThlYzdcdThlY2ZcdThlZDFcdThl'@; put 'ZDRcdThlZGNcdThlZThcdThlZWVcdThlZjBcdThlZjFcdThlZjdcdThlZjlcdThlZmFcdThlZWRcdThmMDBcdThmMDJcdThmMDdcdThmMDhcdThmMGZcdThmMTBcdThmMTZcdThmMTdcdThmMThcdThmMWVcdThmMjBcdThmMjFcdThmMjNcdThmMjVcdThmMjdcdThmMjhcdThmMmNcdThmMmRc'@; put 'dThmMmVcdThmMzRcdThmMzVcdThmMzZcdThmMzdcdThmM2FcdThmNDBcdThmNDEiXSxbIjhmZTFhMSIsIlx1OGY0M1x1OGY0N1x1OGY0Zlx1OGY1MSIsNCwiXHU4ZjU4XHU4ZjVkXHU4ZjVlXHU4ZjY1XHU4ZjlkXHU4ZmEwXHU4ZmExXHU4ZmE0XHU4ZmE1XHU4ZmE2XHU4ZmI1XHU4ZmI2XHU4'@; put 'ZmI4XHU4ZmJlXHU4ZmMwXHU4ZmMxXHU4ZmM2XHU4ZmNhXHU4ZmNiXHU4ZmNkXHU4ZmQwXHU4ZmQyXHU4ZmQzXHU4ZmQ1XHU4ZmUwXHU4ZmUzXHU4ZmU0XHU4ZmU4XHU4ZmVlXHU4ZmYxXHU4ZmY1XHU4ZmY2XHU4ZmZiXHU4ZmZlXHU5MDAyXHU5MDA0XHU5MDA4XHU5MDBjXHU5MDE4XHU5MDFi'@; put 'XHU5MDI4XHU5MDI5XHU5MDJmXHU5MDJhXHU5MDJjXHU5MDJkXHU5MDMzXHU5MDM0XHU5MDM3XHU5MDNmXHU5MDQzXHU5MDQ0XHU5MDRjXHU5MDViXHU5MDVkXHU5MDYyXHU5MDY2XHU5MDY3XHU5MDZjXHU5MDcwXHU5MDc0XHU5MDc5XHU5MDg1XHU5MDg4XHU5MDhiXHU5MDhjXHU5MDhlXHU5'@; put 'MDkwXHU5MDk1XHU5MDk3XHU5MDk4XHU5MDk5XHU5MDliXHU5MGEwXHU5MGExXHU5MGEyXHU5MGE1XHU5MGIwXHU5MGIyXHU5MGIzXHU5MGI0XHU5MGI2XHU5MGJkXHU5MGNjXHU5MGJlXHU5MGMzIl0sWyI4ZmUyYTEiLCJcdTkwYzRcdTkwYzVcdTkwYzdcdTkwYzhcdTkwZDVcdTkwZDdcdTkw'@; put 'ZDhcdTkwZDlcdTkwZGNcdTkwZGRcdTkwZGZcdTkwZTVcdTkwZDJcdTkwZjZcdTkwZWJcdTkwZWZcdTkwZjBcdTkwZjRcdTkwZmVcdTkwZmZcdTkxMDBcdTkxMDRcdTkxMDVcdTkxMDZcdTkxMDhcdTkxMGRcdTkxMTBcdTkxMTRcdTkxMTZcdTkxMTdcdTkxMThcdTkxMWFcdTkxMWNcdTkxMWVc'@; put 'dTkxMjBcdTkxMjVcdTkxMjJcdTkxMjNcdTkxMjdcdTkxMjlcdTkxMmVcdTkxMmZcdTkxMzFcdTkxMzRcdTkxMzZcdTkxMzdcdTkxMzlcdTkxM2FcdTkxM2NcdTkxM2RcdTkxNDNcdTkxNDdcdTkxNDhcdTkxNGZcdTkxNTNcdTkxNTdcdTkxNTlcdTkxNWFcdTkxNWJcdTkxNjFcdTkxNjRcdTkx'@; put 'NjdcdTkxNmRcdTkxNzRcdTkxNzlcdTkxN2FcdTkxN2JcdTkxODFcdTkxODNcdTkxODVcdTkxODZcdTkxOGFcdTkxOGVcdTkxOTFcdTkxOTNcdTkxOTRcdTkxOTVcdTkxOThcdTkxOWVcdTkxYTFcdTkxYTZcdTkxYThcdTkxYWNcdTkxYWRcdTkxYWVcdTkxYjBcdTkxYjFcdTkxYjJcdTkxYjNc'@; put 'dTkxYjZcdTkxYmJcdTkxYmNcdTkxYmRcdTkxYmYiXSxbIjhmZTNhMSIsIlx1OTFjMlx1OTFjM1x1OTFjNVx1OTFkM1x1OTFkNFx1OTFkN1x1OTFkOVx1OTFkYVx1OTFkZVx1OTFlNFx1OTFlNVx1OTFlOVx1OTFlYVx1OTFlYyIsNSwiXHU5MWY3XHU5MWY5XHU5MWZiXHU5MWZkXHU5MjAwXHU5'@; put 'MjAxXHU5MjA0XHU5MjA1XHU5MjA2XHU5MjA3XHU5MjA5XHU5MjBhXHU5MjBjXHU5MjEwXHU5MjEyXHU5MjEzXHU5MjE2XHU5MjE4XHU5MjFjXHU5MjFkXHU5MjIzXHU5MjI0XHU5MjI1XHU5MjI2XHU5MjI4XHU5MjJlXHU5MjJmXHU5MjMwXHU5MjMzXHU5MjM1XHU5MjM2XHU5MjM4XHU5MjM5'@; put 'XHU5MjNhXHU5MjNjXHU5MjNlXHU5MjQwXHU5MjQyXHU5MjQzXHU5MjQ2XHU5MjQ3XHU5MjRhXHU5MjRkXHU5MjRlXHU5MjRmXHU5MjUxXHU5MjU4XHU5MjU5XHU5MjVjXHU5MjVkXHU5MjYwXHU5MjYxXHU5MjY1XHU5MjY3XHU5MjY4XHU5MjY5XHU5MjZlXHU5MjZmXHU5MjcwXHU5Mjc1Iiw0'@; put 'LCJcdTkyN2JcdTkyN2NcdTkyN2RcdTkyN2ZcdTkyODhcdTkyODlcdTkyOGFcdTkyOGRcdTkyOGVcdTkyOTJcdTkyOTciXSxbIjhmZTRhMSIsIlx1OTI5OVx1OTI5Zlx1OTJhMFx1OTJhNFx1OTJhNVx1OTJhN1x1OTJhOFx1OTJhYlx1OTJhZlx1OTJiMlx1OTJiNlx1OTJiOFx1OTJiYVx1OTJi'@; put 'Ylx1OTJiY1x1OTJiZFx1OTJiZiIsNCwiXHU5MmM1XHU5MmM2XHU5MmM3XHU5MmM4XHU5MmNiXHU5MmNjXHU5MmNkXHU5MmNlXHU5MmQwXHU5MmQzXHU5MmQ1XHU5MmQ3XHU5MmQ4XHU5MmQ5XHU5MmRjXHU5MmRkXHU5MmRmXHU5MmUwXHU5MmUxXHU5MmUzXHU5MmU1XHU5MmU3XHU5MmU4XHU5'@; put 'MmVjXHU5MmVlXHU5MmYwXHU5MmY5XHU5MmZiXHU5MmZmXHU5MzAwXHU5MzAyXHU5MzA4XHU5MzBkXHU5MzExXHU5MzE0XHU5MzE1XHU5MzFjXHU5MzFkXHU5MzFlXHU5MzFmXHU5MzIxXHU5MzI0XHU5MzI1XHU5MzI3XHU5MzI5XHU5MzJhXHU5MzMzXHU5MzM0XHU5MzM2XHU5MzM3XHU5MzQ3'@; put 'XHU5MzQ4XHU5MzQ5XHU5MzUwXHU5MzUxXHU5MzUyXHU5MzU1XHU5MzU3XHU5MzU4XHU5MzVhXHU5MzVlXHU5MzY0XHU5MzY1XHU5MzY3XHU5MzY5XHU5MzZhXHU5MzZkXHU5MzZmXHU5MzcwXHU5MzcxXHU5MzczXHU5Mzc0XHU5Mzc2Il0sWyI4ZmU1YTEiLCJcdTkzN2FcdTkzN2RcdTkzN2Zc'@; put 'dTkzODBcdTkzODFcdTkzODJcdTkzODhcdTkzOGFcdTkzOGJcdTkzOGRcdTkzOGZcdTkzOTJcdTkzOTVcdTkzOThcdTkzOWJcdTkzOWVcdTkzYTFcdTkzYTNcdTkzYTRcdTkzYTZcdTkzYThcdTkzYWJcdTkzYjRcdTkzYjVcdTkzYjZcdTkzYmFcdTkzYTlcdTkzYzFcdTkzYzRcdTkzYzVcdTkz'@; put 'YzZcdTkzYzdcdTkzYzkiLDQsIlx1OTNkM1x1OTNkOVx1OTNkY1x1OTNkZVx1OTNkZlx1OTNlMlx1OTNlNlx1OTNlN1x1OTNmOVx1OTNmN1x1OTNmOFx1OTNmYVx1OTNmYlx1OTNmZFx1OTQwMVx1OTQwMlx1OTQwNFx1OTQwOFx1OTQwOVx1OTQwZFx1OTQwZVx1OTQwZlx1OTQxNVx1OTQxNlx1'@; put 'OTQxN1x1OTQxZlx1OTQyZVx1OTQyZlx1OTQzMVx1OTQzMlx1OTQzM1x1OTQzNFx1OTQzYlx1OTQzZlx1OTQzZFx1OTQ0M1x1OTQ0NVx1OTQ0OFx1OTQ0YVx1OTQ0Y1x1OTQ1NVx1OTQ1OVx1OTQ1Y1x1OTQ1Zlx1OTQ2MVx1OTQ2M1x1OTQ2OFx1OTQ2Ylx1OTQ2ZFx1OTQ2ZVx1OTQ2Zlx1OTQ3'@; put 'MVx1OTQ3Mlx1OTQ4NFx1OTQ4M1x1OTU3OFx1OTU3OSJdLFsiOGZlNmExIiwiXHU5NTdlXHU5NTg0XHU5NTg4XHU5NThjXHU5NThkXHU5NThlXHU5NTlkXHU5NTllXHU5NTlmXHU5NWExXHU5NWE2XHU5NWE5XHU5NWFiXHU5NWFjXHU5NWI0XHU5NWI2XHU5NWJhXHU5NWJkXHU5NWJmXHU5NWM2'@; put 'XHU5NWM4XHU5NWM5XHU5NWNiXHU5NWQwXHU5NWQxXHU5NWQyXHU5NWQzXHU5NWQ5XHU5NWRhXHU5NWRkXHU5NWRlXHU5NWRmXHU5NWUwXHU5NWU0XHU5NWU2XHU5NjFkXHU5NjFlXHU5NjIyXHU5NjI0XHU5NjI1XHU5NjI2XHU5NjJjXHU5NjMxXHU5NjMzXHU5NjM3XHU5NjM4XHU5NjM5XHU5'@; put 'NjNhXHU5NjNjXHU5NjNkXHU5NjQxXHU5NjUyXHU5NjU0XHU5NjU2XHU5NjU3XHU5NjU4XHU5NjYxXHU5NjZlXHU5Njc0XHU5NjdiXHU5NjdjXHU5NjdlXHU5NjdmXHU5NjgxXHU5NjgyXHU5NjgzXHU5Njg0XHU5Njg5XHU5NjkxXHU5Njk2XHU5NjlhXHU5NjlkXHU5NjlmXHU5NmE0XHU5NmE1'@; put 'XHU5NmE2XHU5NmE5XHU5NmFlXHU5NmFmXHU5NmIzXHU5NmJhXHU5NmNhXHU5NmQyXHU1ZGIyXHU5NmQ4XHU5NmRhXHU5NmRkXHU5NmRlXHU5NmRmXHU5NmU5XHU5NmVmXHU5NmYxXHU5NmZhXHU5NzAyIl0sWyI4ZmU3YTEiLCJcdTk3MDNcdTk3MDVcdTk3MDlcdTk3MWFcdTk3MWJcdTk3MWRc'@; put 'dTk3MjFcdTk3MjJcdTk3MjNcdTk3MjhcdTk3MzFcdTk3MzNcdTk3NDFcdTk3NDNcdTk3NGFcdTk3NGVcdTk3NGZcdTk3NTVcdTk3NTdcdTk3NThcdTk3NWFcdTk3NWJcdTk3NjNcdTk3NjdcdTk3NmFcdTk3NmVcdTk3NzNcdTk3NzZcdTk3NzdcdTk3NzhcdTk3N2JcdTk3N2RcdTk3N2ZcdTk3'@; put 'ODBcdTk3ODlcdTk3OTVcdTk3OTZcdTk3OTdcdTk3OTlcdTk3OWFcdTk3OWVcdTk3OWZcdTk3YTJcdTk3YWNcdTk3YWVcdTk3YjFcdTk3YjJcdTk3YjVcdTk3YjZcdTk3YjhcdTk3YjlcdTk3YmFcdTk3YmNcdTk3YmVcdTk3YmZcdTk3YzFcdTk3YzRcdTk3YzVcdTk3YzdcdTk3YzlcdTk3Y2Fc'@; put 'dTk3Y2NcdTk3Y2RcdTk3Y2VcdTk3ZDBcdTk3ZDFcdTk3ZDRcdTk3ZDdcdTk3ZDhcdTk3ZDlcdTk3ZGRcdTk3ZGVcdTk3ZTBcdTk3ZGJcdTk3ZTFcdTk3ZTRcdTk3ZWZcdTk3ZjFcdTk3ZjRcdTk3ZjdcdTk3ZjhcdTk3ZmFcdTk4MDdcdTk4MGFcdTk4MTlcdTk4MGRcdTk4MGVcdTk4MTRcdTk4'@; put 'MTZcdTk4MWNcdTk4MWVcdTk4MjBcdTk4MjNcdTk4MjYiXSxbIjhmZThhMSIsIlx1OTgyYlx1OTgyZVx1OTgyZlx1OTgzMFx1OTgzMlx1OTgzM1x1OTgzNVx1OTgyNVx1OTgzZVx1OTg0NFx1OTg0N1x1OTg0YVx1OTg1MVx1OTg1Mlx1OTg1M1x1OTg1Nlx1OTg1N1x1OTg1OVx1OTg1YVx1OTg2'@; put 'Mlx1OTg2M1x1OTg2NVx1OTg2Nlx1OTg2YVx1OTg2Y1x1OThhYlx1OThhZFx1OThhZVx1OThiMFx1OThiNFx1OThiN1x1OThiOFx1OThiYVx1OThiYlx1OThiZlx1OThjMlx1OThjNVx1OThjOFx1OThjY1x1OThlMVx1OThlM1x1OThlNVx1OThlNlx1OThlN1x1OThlYVx1OThmM1x1OThmNlx1'@; put 'OTkwMlx1OTkwN1x1OTkwOFx1OTkxMVx1OTkxNVx1OTkxNlx1OTkxN1x1OTkxYVx1OTkxYlx1OTkxY1x1OTkxZlx1OTkyMlx1OTkyNlx1OTkyN1x1OTkyYlx1OTkzMSIsNCwiXHU5OTM5XHU5OTNhXHU5OTNiXHU5OTNjXHU5OTQwXHU5OTQxXHU5OTQ2XHU5OTQ3XHU5OTQ4XHU5OTRkXHU5OTRl'@; put 'XHU5OTU0XHU5OTU4XHU5OTU5XHU5OTViXHU5OTVjXHU5OTVlXHU5OTVmXHU5OTYwXHU5OTliXHU5OTlkXHU5OTlmXHU5OWE2XHU5OWIwXHU5OWIxXHU5OWIyXHU5OWI1Il0sWyI4ZmU5YTEiLCJcdTk5YjlcdTk5YmFcdTk5YmRcdTk5YmZcdTk5YzNcdTk5YzlcdTk5ZDNcdTk5ZDRcdTk5ZDlc'@; put 'dTk5ZGFcdTk5ZGNcdTk5ZGVcdTk5ZTdcdTk5ZWFcdTk5ZWJcdTk5ZWNcdTk5ZjBcdTk5ZjRcdTk5ZjVcdTk5ZjlcdTk5ZmRcdTk5ZmVcdTlhMDJcdTlhMDNcdTlhMDRcdTlhMGJcdTlhMGNcdTlhMTBcdTlhMTFcdTlhMTZcdTlhMWVcdTlhMjBcdTlhMjJcdTlhMjNcdTlhMjRcdTlhMjdcdTlh'@; put 'MmRcdTlhMmVcdTlhMzNcdTlhMzVcdTlhMzZcdTlhMzhcdTlhNDdcdTlhNDFcdTlhNDRcdTlhNGFcdTlhNGJcdTlhNGNcdTlhNGVcdTlhNTFcdTlhNTRcdTlhNTZcdTlhNWRcdTlhYWFcdTlhYWNcdTlhYWVcdTlhYWZcdTlhYjJcdTlhYjRcdTlhYjVcdTlhYjZcdTlhYjlcdTlhYmJcdTlhYmVc'@; put 'dTlhYmZcdTlhYzFcdTlhYzNcdTlhYzZcdTlhYzhcdTlhY2VcdTlhZDBcdTlhZDJcdTlhZDVcdTlhZDZcdTlhZDdcdTlhZGJcdTlhZGNcdTlhZTBcdTlhZTRcdTlhZTVcdTlhZTdcdTlhZTlcdTlhZWNcdTlhZjJcdTlhZjNcdTlhZjVcdTlhZjlcdTlhZmFcdTlhZmRcdTlhZmYiLDRdLFsiOGZl'@; put 'YWExIiwiXHU5YjA0XHU5YjA1XHU5YjA4XHU5YjA5XHU5YjBiXHU5YjBjXHU5YjBkXHU5YjBlXHU5YjEwXHU5YjEyXHU5YjE2XHU5YjE5XHU5YjFiXHU5YjFjXHU5YjIwXHU5YjI2XHU5YjJiXHU5YjJkXHU5YjMzXHU5YjM0XHU5YjM1XHU5YjM3XHU5YjM5XHU5YjNhXHU5YjNkXHU5YjQ4XHU5'@; put 'YjRiXHU5YjRjXHU5YjU1XHU5YjU2XHU5YjU3XHU5YjViXHU5YjVlXHU5YjYxXHU5YjYzXHU5YjY1XHU5YjY2XHU5YjY4XHU5YjZhIiw0LCJcdTliNzNcdTliNzVcdTliNzdcdTliNzhcdTliNzlcdTliN2ZcdTliODBcdTliODRcdTliODVcdTliODZcdTliODdcdTliODlcdTliOGFcdTliOGJc'@; put 'dTliOGRcdTliOGZcdTliOTBcdTliOTRcdTliOWFcdTliOWRcdTliOWVcdTliYTZcdTliYTdcdTliYTlcdTliYWNcdTliYjBcdTliYjFcdTliYjJcdTliYjdcdTliYjhcdTliYmJcdTliYmNcdTliYmVcdTliYmZcdTliYzFcdTliYzdcdTliYzhcdTliY2VcdTliZDBcdTliZDdcdTliZDhcdTli'@; put 'ZGRcdTliZGZcdTliZTVcdTliZTdcdTliZWFcdTliZWJcdTliZWZcdTliZjNcdTliZjdcdTliZjgiXSxbIjhmZWJhMSIsIlx1OWJmOVx1OWJmYVx1OWJmZFx1OWJmZlx1OWMwMFx1OWMwMlx1OWMwYlx1OWMwZlx1OWMxMVx1OWMxNlx1OWMxOFx1OWMxOVx1OWMxYVx1OWMxY1x1OWMxZVx1OWMy'@; put 'Mlx1OWMyM1x1OWMyNiIsNCwiXHU5YzMxXHU5YzM1XHU5YzM2XHU5YzM3XHU5YzNkXHU5YzQxXHU5YzQzXHU5YzQ0XHU5YzQ1XHU5YzQ5XHU5YzRhXHU5YzRlXHU5YzRmXHU5YzUwXHU5YzUzXHU5YzU0XHU5YzU2XHU5YzU4XHU5YzViXHU5YzVkXHU5YzVlXHU5YzVmXHU5YzYzXHU5YzY5XHU5'@; put 'YzZhXHU5YzVjXHU5YzZiXHU5YzY4XHU5YzZlXHU5YzcwXHU5YzcyXHU5Yzc1XHU5Yzc3XHU5YzdiXHU5Y2U2XHU5Y2YyXHU5Y2Y3XHU5Y2Y5XHU5ZDBiXHU5ZDAyXHU5ZDExXHU5ZDE3XHU5ZDE4XHU5ZDFjXHU5ZDFkXHU5ZDFlXHU5ZDJmXHU5ZDMwXHU5ZDMyXHU5ZDMzXHU5ZDM0XHU5ZDNh'@; put 'XHU5ZDNjXHU5ZDQ1XHU5ZDNkXHU5ZDQyXHU5ZDQzXHU5ZDQ3XHU5ZDRhXHU5ZDUzXHU5ZDU0XHU5ZDVmXHU5ZDYzXHU5ZDYyXHU5ZDY1XHU5ZDY5XHU5ZDZhXHU5ZDZiXHU5ZDcwXHU5ZDc2XHU5ZDc3XHU5ZDdiIl0sWyI4ZmVjYTEiLCJcdTlkN2NcdTlkN2VcdTlkODNcdTlkODRcdTlkODZc'@; put 'dTlkOGFcdTlkOGRcdTlkOGVcdTlkOTJcdTlkOTNcdTlkOTVcdTlkOTZcdTlkOTdcdTlkOThcdTlkYTFcdTlkYWFcdTlkYWNcdTlkYWVcdTlkYjFcdTlkYjVcdTlkYjlcdTlkYmNcdTlkYmZcdTlkYzNcdTlkYzdcdTlkYzlcdTlkY2FcdTlkZDRcdTlkZDVcdTlkZDZcdTlkZDdcdTlkZGFcdTlk'@; put 'ZGVcdTlkZGZcdTlkZTBcdTlkZTVcdTlkZTdcdTlkZTlcdTlkZWJcdTlkZWVcdTlkZjBcdTlkZjNcdTlkZjRcdTlkZmVcdTllMGFcdTllMDJcdTllMDdcdTllMGVcdTllMTBcdTllMTFcdTllMTJcdTllMTVcdTllMTZcdTllMTlcdTllMWNcdTllMWRcdTllN2FcdTllN2JcdTllN2NcdTllODBc'@; put 'dTllODJcdTllODNcdTllODRcdTllODVcdTllODdcdTllOGVcdTllOGZcdTllOTZcdTllOThcdTllOWJcdTllOWVcdTllYTRcdTllYThcdTllYWNcdTllYWVcdTllYWZcdTllYjBcdTllYjNcdTllYjRcdTllYjVcdTllYzZcdTllYzhcdTllY2JcdTllZDVcdTllZGZcdTllZTRcdTllZTdcdTll'@; put 'ZWNcdTllZWRcdTllZWVcdTllZjBcdTllZjFcdTllZjJcdTllZjUiXSxbIjhmZWRhMSIsIlx1OWVmOFx1OWVmZlx1OWYwMlx1OWYwM1x1OWYwOVx1OWYwZlx1OWYxMFx1OWYxMVx1OWYxMlx1OWYxNFx1OWYxNlx1OWYxN1x1OWYxOVx1OWYxYVx1OWYxYlx1OWYxZlx1OWYyMlx1OWYyNlx1OWYy'@; put 'YVx1OWYyYlx1OWYyZlx1OWYzMVx1OWYzMlx1OWYzNFx1OWYzN1x1OWYzOVx1OWYzYVx1OWYzY1x1OWYzZFx1OWYzZlx1OWY0MVx1OWY0MyIsNCwiXHU5ZjUzXHU5ZjU1XHU5ZjU2XHU5ZjU3XHU5ZjU4XHU5ZjVhXHU5ZjVkXHU5ZjVlXHU5ZjY4XHU5ZjY5XHU5ZjZkIiw0LCJcdTlmNzNcdTlm'@; put 'NzVcdTlmN2FcdTlmN2RcdTlmOGZcdTlmOTBcdTlmOTFcdTlmOTJcdTlmOTRcdTlmOTZcdTlmOTdcdTlmOWVcdTlmYTFcdTlmYTJcdTlmYTNcdTlmYTUiXV0nKX0sOTkxMjk6Y2U9PnsidXNlIHN0cmljdCI7Y2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7InVDaGFycyI6WzEyOCwxNjUsMTY5LDE3'@; put 'OCwxODQsMjE2LDIyNiwyMzUsMjM4LDI0NCwyNDgsMjUxLDI1MywyNTgsMjc2LDI4NCwzMDAsMzI1LDMyOSwzMzQsMzY0LDQ2Myw0NjUsNDY3LDQ2OSw0NzEsNDczLDQ3NSw0NzcsNTA2LDU5NCw2MTAsNzEyLDcxNiw3MzAsOTMwLDkzOCw5NjIsOTcwLDEwMjYsMTEwNCwxMTA2LDgyMDksODIx'@; put 'NSw4MjE4LDgyMjIsODIzMSw4MjQxLDgyNDQsODI0Niw4MjUyLDgzNjUsODQ1Miw4NDU0LDg0NTgsODQ3MSw4NDgyLDg1NTYsODU3MCw4NTk2LDg2MDIsODcxMyw4NzIwLDg3MjIsODcyNiw4NzMxLDg3MzcsODc0MCw4NzQyLDg3NDgsODc1MSw4NzYwLDg3NjYsODc3Nyw4NzgxLDg3ODcsODgw'@; put 'Miw4ODA4LDg4MTYsODg1NCw4ODU4LDg4NzAsODg5Niw4OTc5LDkzMjIsOTM3Miw5NTQ4LDk1ODgsOTYxNiw5NjIyLDk2MzQsOTY1Miw5NjYyLDk2NzIsOTY3Niw5NjgwLDk3MDIsOTczNSw5NzM4LDk3OTMsOTc5NSwxMTkwNiwxMTkwOSwxMTkxMywxMTkxNywxMTkyOCwxMTk0NCwxMTk0Nywx'@; put 'MTk1MSwxMTk1NiwxMTk2MCwxMTk2NCwxMTk3OSwxMjI4NCwxMjI5MiwxMjMxMiwxMjMxOSwxMjMzMCwxMjM1MSwxMjQzNiwxMjQ0NywxMjUzNSwxMjU0MywxMjU4NiwxMjg0MiwxMjg1MCwxMjk2NCwxMzIwMCwxMzIxNSwxMzIxOCwxMzI1MywxMzI2MywxMzI2NywxMzI3MCwxMzM4NCwxMzQy'@; put 'OCwxMzcyNywxMzgzOSwxMzg1MSwxNDYxNywxNDcwMywxNDgwMSwxNDgxNiwxNDk2NCwxNTE4MywxNTQ3MSwxNTU4NSwxNjQ3MSwxNjczNiwxNzIwOCwxNzMyNSwxNzMzMCwxNzM3NCwxNzYyMywxNzk5NywxODAxOCwxODIxMiwxODIxOCwxODMwMSwxODMxOCwxODc2MCwxODgxMSwxODgxNCwx'@; put 'ODgyMCwxODgyMywxODg0NCwxODg0OCwxODg3MiwxOTU3NiwxOTYyMCwxOTczOCwxOTg4Nyw0MDg3MCw1OTI0NCw1OTMzNiw1OTM2Nyw1OTQxMyw1OTQxNyw1OTQyMyw1OTQzMSw1OTQzNyw1OTQ0Myw1OTQ1Miw1OTQ2MCw1OTQ3OCw1OTQ5Myw2Mzc4OSw2Mzg2Niw2Mzg5NCw2Mzk3Niw2Mzk4'@; put 'Niw2NDAxNiw2NDAxOCw2NDAyMSw2NDAyNSw2NDAzNCw2NDAzNyw2NDA0Miw2NTA3NCw2NTA5Myw2NTEwNyw2NTExMiw2NTEyNyw2NTEzMiw2NTM3NSw2NTUxMCw2NTUzNl0sImdiQ2hhcnMiOlswLDM2LDM4LDQ1LDUwLDgxLDg5LDk1LDk2LDEwMCwxMDMsMTA0LDEwNSwxMDksMTI2LDEzMywx'@; put 'NDgsMTcyLDE3NSwxNzksMjA4LDMwNiwzMDcsMzA4LDMwOSwzMTAsMzExLDMxMiwzMTMsMzQxLDQyOCw0NDMsNTQ0LDU0NSw1NTgsNzQxLDc0Miw3NDksNzUwLDgwNSw4MTksODIwLDc5MjIsNzkyNCw3OTI1LDc5MjcsNzkzNCw3OTQzLDc5NDQsNzk0NSw3OTUwLDgwNjIsODE0OCw4MTQ5LDgx'@; put 'NTIsODE2NCw4MTc0LDgyMzYsODI0MCw4MjYyLDgyNjQsODM3NCw4MzgwLDgzODEsODM4NCw4Mzg4LDgzOTAsODM5Miw4MzkzLDgzOTQsODM5Niw4NDAxLDg0MDYsODQxNiw4NDE5LDg0MjQsODQzNyw4NDM5LDg0NDUsODQ4Miw4NDg1LDg0OTYsODUyMSw4NjAzLDg5MzYsODk0Niw5MDQ2LDkw'@; put 'NTAsOTA2Myw5MDY2LDkwNzYsOTA5Miw5MTAwLDkxMDgsOTExMSw5MTEzLDkxMzEsOTE2Miw5MTY0LDkyMTgsOTIxOSwxMTMyOSwxMTMzMSwxMTMzNCwxMTMzNiwxMTM0NiwxMTM2MSwxMTM2MywxMTM2NiwxMTM3MCwxMTM3MiwxMTM3NSwxMTM4OSwxMTY4MiwxMTY4NiwxMTY4NywxMTY5Miwx'@; put 'MTY5NCwxMTcxNCwxMTcxNiwxMTcyMywxMTcyNSwxMTczMCwxMTczNiwxMTk4MiwxMTk4OSwxMjEwMiwxMjMzNiwxMjM0OCwxMjM1MCwxMjM4NCwxMjM5MywxMjM5NSwxMjM5NywxMjUxMCwxMjU1MywxMjg1MSwxMjk2MiwxMjk3MywxMzczOCwxMzgyMywxMzkxOSwxMzkzMywxNDA4MCwxNDI5'@; put 'OCwxNDU4NSwxNDY5OCwxNTU4MywxNTg0NywxNjMxOCwxNjQzNCwxNjQzOCwxNjQ4MSwxNjcyOSwxNzEwMiwxNzEyMiwxNzMxNSwxNzMyMCwxNzQwMiwxNzQxOCwxNzg1OSwxNzkwOSwxNzkxMSwxNzkxNSwxNzkxNiwxNzkzNiwxNzkzOSwxNzk2MSwxODY2NCwxODcwMywxODgxNCwxODk2Miwx'@; put 'OTA0MywzMzQ2OSwzMzQ3MCwzMzQ3MSwzMzQ4NCwzMzQ4NSwzMzQ5MCwzMzQ5NywzMzUwMSwzMzUwNSwzMzUxMywzMzUyMCwzMzUzNiwzMzU1MCwzNzg0NSwzNzkyMSwzNzk0OCwzODAyOSwzODAzOCwzODA2NCwzODA2NSwzODA2NiwzODA2OSwzODA3NSwzODA3NiwzODA3OCwzOTEwOCwzOTEw'@; put 'OSwzOTExMywzOTExNCwzOTExNSwzOTExNiwzOTI2NSwzOTM5NCwxODkwMDBdfScpfSw1NTkxNDpjZT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPUpTT04ucGFyc2UoJ1tbImExNDAiLCJcdWU0YzYiLDYyXSxbImExODAiLCJcdWU1MDUiLDMyXSxbImEyNDAiLCJcdWU1MjYiLDYyXSxbImEy'@; put 'ODAiLCJcdWU1NjUiLDMyXSxbImEyYWIiLCJcdWU3NjYiLDVdLFsiYTJlMyIsIlx1MjBhY1x1ZTc2ZCJdLFsiYTJlZiIsIlx1ZTc2ZVx1ZTc2ZiJdLFsiYTJmZCIsIlx1ZTc3MFx1ZTc3MSJdLFsiYTM0MCIsIlx1ZTU4NiIsNjJdLFsiYTM4MCIsIlx1ZTVjNSIsMzEsIlx1MzAwMCJdLFsiYTQ0'@; put 'MCIsIlx1ZTVlNiIsNjJdLFsiYTQ4MCIsIlx1ZTYyNSIsMzJdLFsiYTRmNCIsIlx1ZTc3MiIsMTBdLFsiYTU0MCIsIlx1ZTY0NiIsNjJdLFsiYTU4MCIsIlx1ZTY4NSIsMzJdLFsiYTVmNyIsIlx1ZTc3ZCIsN10sWyJhNjQwIiwiXHVlNmE2Iiw2Ml0sWyJhNjgwIiwiXHVlNmU1IiwzMl0sWyJh'@; put 'NmI5IiwiXHVlNzg1Iiw3XSxbImE2ZDkiLCJcdWU3OGQiLDZdLFsiYTZlYyIsIlx1ZTc5NFx1ZTc5NSJdLFsiYTZmMyIsIlx1ZTc5NiJdLFsiYTZmNiIsIlx1ZTc5NyIsOF0sWyJhNzQwIiwiXHVlNzA2Iiw2Ml0sWyJhNzgwIiwiXHVlNzQ1IiwzMl0sWyJhN2MyIiwiXHVlN2EwIiwxNF0sWyJh'@; put 'N2YyIiwiXHVlN2FmIiwxMl0sWyJhODk2IiwiXHVlN2JjIiwxMF0sWyJhOGJjIiwiXHVlN2M3Il0sWyJhOGJmIiwiXHUwMWY5Il0sWyJhOGMxIiwiXHVlN2M5XHVlN2NhXHVlN2NiXHVlN2NjIl0sWyJhOGVhIiwiXHVlN2NkIiwyMF0sWyJhOTU4IiwiXHVlN2UyIl0sWyJhOTViIiwiXHVlN2Uz'@; put 'Il0sWyJhOTVkIiwiXHVlN2U0XHVlN2U1XHVlN2U2Il0sWyJhOTg5IiwiXHUzMDNlXHUyZmYwIiwxMV0sWyJhOTk3IiwiXHVlN2Y0IiwxMl0sWyJhOWYwIiwiXHVlODAxIiwxNF0sWyJhYWExIiwiXHVlMDAwIiw5M10sWyJhYmExIiwiXHVlMDVlIiw5M10sWyJhY2ExIiwiXHVlMGJjIiw5M10s'@; put 'WyJhZGExIiwiXHVlMTFhIiw5M10sWyJhZWExIiwiXHVlMTc4Iiw5M10sWyJhZmExIiwiXHVlMWQ2Iiw5M10sWyJkN2ZhIiwiXHVlODEwIiw0XSxbImY4YTEiLCJcdWUyMzQiLDkzXSxbImY5YTEiLCJcdWUyOTIiLDkzXSxbImZhYTEiLCJcdWUyZjAiLDkzXSxbImZiYTEiLCJcdWUzNGUiLDkz'@; put 'XSxbImZjYTEiLCJcdWUzYWMiLDkzXSxbImZkYTEiLCJcdWU0MGEiLDkzXSxbImZlNTAiLCJcdTJlODFcdWU4MTZcdWU4MTdcdWU4MThcdTJlODRcdTM0NzNcdTM0NDdcdTJlODhcdTJlOGJcdWU4MWVcdTM1OWVcdTM2MWFcdTM2MGVcdTJlOGNcdTJlOTdcdTM5NmVcdTM5MThcdWU4MjZcdTM5'@; put 'Y2ZcdTM5ZGZcdTNhNzNcdTM5ZDBcdWU4MmJcdWU4MmNcdTNiNGVcdTNjNmVcdTNjZTBcdTJlYTdcdWU4MzFcdWU4MzJcdTJlYWFcdTQwNTZcdTQxNWZcdTJlYWVcdTQzMzdcdTJlYjNcdTJlYjZcdTJlYjdcdWU4M2JcdTQzYjFcdTQzYWNcdTJlYmJcdTQzZGRcdTQ0ZDZcdTQ2NjFcdTQ2NGNc'@; put 'dWU4NDMiXSxbImZlODAiLCJcdTQ3MjNcdTQ3MjlcdTQ3N2NcdTQ3OGRcdTJlY2FcdTQ5NDdcdTQ5N2FcdTQ5N2RcdTQ5ODJcdTQ5ODNcdTQ5ODVcdTQ5ODZcdTQ5OWZcdTQ5OWJcdTQ5YjdcdTQ5YjZcdWU4NTRcdWU4NTVcdTRjYTNcdTRjOWZcdTRjYTBcdTRjYTFcdTRjNzdcdTRjYTJcdTRk'@; put 'MTMiLDYsIlx1NGRhZVx1ZTg2NFx1ZTQ2OCIsOTNdXScpfSw0MDY3OTpjZT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPUpTT04ucGFyc2UoJ1tbIjAiLCJcXHUwMDAwIiwxMjhdLFsiYTEiLCJcdWZmNjEiLDYyXSxbIjgxNDAiLCJcdTMwMDBcdTMwMDFcdTMwMDJcdWZmMGNcdWZmMGVcdTMw'@; put 'ZmJcdWZmMWFcdWZmMWJcdWZmMWZcdWZmMDFcdTMwOWJcdTMwOWNceGI0XHVmZjQwXHhhOFx1ZmYzZVx1ZmZlM1x1ZmYzZlx1MzBmZFx1MzBmZVx1MzA5ZFx1MzA5ZVx1MzAwM1x1NGVkZFx1MzAwNVx1MzAwNlx1MzAwN1x1MzBmY1x1MjAxNVx1MjAxMFx1ZmYwZlx1ZmYzY1x1ZmY1ZVx1MjIy'@; put 'NVx1ZmY1Y1x1MjAyNlx1MjAyNVx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1ZmYwOFx1ZmYwOVx1MzAxNFx1MzAxNVx1ZmYzYlx1ZmYzZFx1ZmY1Ylx1ZmY1ZFx1MzAwOCIsOSwiXHVmZjBiXHVmZjBkXHhiMVx4ZDciXSxbIjgxODAiLCJceGY3XHVmZjFkXHUyMjYwXHVmZjFjXHVmZjFlXHUy'@; put 'MjY2XHUyMjY3XHUyMjFlXHUyMjM0XHUyNjQyXHUyNjQwXHhiMFx1MjAzMlx1MjAzM1x1MjEwM1x1ZmZlNVx1ZmYwNFx1ZmZlMFx1ZmZlMVx1ZmYwNVx1ZmYwM1x1ZmYwNlx1ZmYwYVx1ZmYyMFx4YTdcdTI2MDZcdTI2MDVcdTI1Y2JcdTI1Y2ZcdTI1Y2VcdTI1YzdcdTI1YzZcdTI1YTFcdTI1'@; put 'YTBcdTI1YjNcdTI1YjJcdTI1YmRcdTI1YmNcdTIwM2JcdTMwMTJcdTIxOTJcdTIxOTBcdTIxOTFcdTIxOTNcdTMwMTMiXSxbIjgxYjgiLCJcdTIyMDhcdTIyMGJcdTIyODZcdTIyODdcdTIyODJcdTIyODNcdTIyMmFcdTIyMjkiXSxbIjgxYzgiLCJcdTIyMjdcdTIyMjhcdWZmZTJcdTIxZDJc'@; put 'dTIxZDRcdTIyMDBcdTIyMDMiXSxbIjgxZGEiLCJcdTIyMjBcdTIyYTVcdTIzMTJcdTIyMDJcdTIyMDdcdTIyNjFcdTIyNTJcdTIyNmFcdTIyNmJcdTIyMWFcdTIyM2RcdTIyMWRcdTIyMzVcdTIyMmJcdTIyMmMiXSxbIjgxZjAiLCJcdTIxMmJcdTIwMzBcdTI2NmZcdTI2NmRcdTI2NmFcdTIw'@; put 'MjBcdTIwMjFceGI2Il0sWyI4MWZjIiwiXHUyNWVmIl0sWyI4MjRmIiwiXHVmZjEwIiw5XSxbIjgyNjAiLCJcdWZmMjEiLDI1XSxbIjgyODEiLCJcdWZmNDEiLDI1XSxbIjgyOWYiLCJcdTMwNDEiLDgyXSxbIjgzNDAiLCJcdTMwYTEiLDYyXSxbIjgzODAiLCJcdTMwZTAiLDIyXSxbIjgzOWYi'@; put 'LCJcdTAzOTEiLDE2LCJcdTAzYTMiLDZdLFsiODNiZiIsIlx1MDNiMSIsMTYsIlx1MDNjMyIsNl0sWyI4NDQwIiwiXHUwNDEwIiw1LCJcdTA0MDFcdTA0MTYiLDI1XSxbIjg0NzAiLCJcdTA0MzAiLDUsIlx1MDQ1MVx1MDQzNiIsN10sWyI4NDgwIiwiXHUwNDNlIiwxN10sWyI4NDlmIiwiXHUy'@; put 'NTAwXHUyNTAyXHUyNTBjXHUyNTEwXHUyNTE4XHUyNTE0XHUyNTFjXHUyNTJjXHUyNTI0XHUyNTM0XHUyNTNjXHUyNTAxXHUyNTAzXHUyNTBmXHUyNTEzXHUyNTFiXHUyNTE3XHUyNTIzXHUyNTMzXHUyNTJiXHUyNTNiXHUyNTRiXHUyNTIwXHUyNTJmXHUyNTI4XHUyNTM3XHUyNTNmXHUyNTFk'@; put 'XHUyNTMwXHUyNTI1XHUyNTM4XHUyNTQyIl0sWyI4NzQwIiwiXHUyNDYwIiwxOSwiXHUyMTYwIiw5XSxbIjg3NWYiLCJcdTMzNDlcdTMzMTRcdTMzMjJcdTMzNGRcdTMzMThcdTMzMjdcdTMzMDNcdTMzMzZcdTMzNTFcdTMzNTdcdTMzMGRcdTMzMjZcdTMzMjNcdTMzMmJcdTMzNGFcdTMzM2Jc'@; put 'dTMzOWNcdTMzOWRcdTMzOWVcdTMzOGVcdTMzOGZcdTMzYzRcdTMzYTEiXSxbIjg3N2UiLCJcdTMzN2IiXSxbIjg3ODAiLCJcdTMwMWRcdTMwMWZcdTIxMTZcdTMzY2RcdTIxMjFcdTMyYTQiLDQsIlx1MzIzMVx1MzIzMlx1MzIzOVx1MzM3ZVx1MzM3ZFx1MzM3Y1x1MjI1Mlx1MjI2MVx1MjIy'@; put 'Ylx1MjIyZVx1MjIxMVx1MjIxYVx1MjJhNVx1MjIyMFx1MjIxZlx1MjJiZlx1MjIzNVx1MjIyOVx1MjIyYSJdLFsiODg5ZiIsIlx1NGU5Y1x1NTUxNlx1NWEwM1x1OTYzZlx1NTRjMFx1NjExYlx1NjMyOFx1NTlmNlx1OTAyMlx1ODQ3NVx1ODMxY1x1N2E1MFx1NjBhYVx1NjNlMVx1NmUyNVx1'@; put 'NjVlZFx1ODQ2Nlx1ODJhNlx1OWJmNVx1Njg5M1x1NTcyN1x1NjVhMVx1NjI3MVx1NWI5Ylx1NTlkMFx1ODY3Ylx1OThmNFx1N2Q2Mlx1N2RiZVx1OWI4ZVx1NjIxNlx1N2M5Zlx1ODhiN1x1NWI4OVx1NWViNVx1NjMwOVx1NjY5N1x1Njg0OFx1OTVjN1x1OTc4ZFx1Njc0Zlx1NGVlNVx1NGYw'@; put 'YVx1NGY0ZFx1NGY5ZFx1NTA0OVx1NTZmMlx1NTkzN1x1NTlkNFx1NWEwMVx1NWMwOVx1NjBkZlx1NjEwZlx1NjE3MFx1NjYxM1x1NjkwNVx1NzBiYVx1NzU0Zlx1NzU3MFx1NzlmYlx1N2RhZFx1N2RlZlx1ODBjM1x1ODQwZVx1ODg2M1x1OGIwMlx1OTA1NVx1OTA3YVx1NTMzYlx1NGU5NVx1'@; put 'NGVhNVx1NTdkZlx1ODBiMlx1OTBjMVx1NzhlZlx1NGUwMFx1NThmMVx1NmVhMlx1OTAzOFx1N2EzMlx1ODMyOFx1ODI4Ylx1OWMyZlx1NTE0MVx1NTM3MFx1NTRiZFx1NTRlMVx1NTZlMFx1NTlmYlx1NWYxNVx1OThmMlx1NmRlYlx1ODBlNFx1ODUyZCJdLFsiODk0MCIsIlx1OTY2Mlx1OTY3'@; put 'MFx1OTZhMFx1OTdmYlx1NTQwYlx1NTNmM1x1NWI4N1x1NzBjZlx1N2ZiZFx1OGZjMlx1OTZlOFx1NTM2Zlx1OWQ1Y1x1N2FiYVx1NGUxMVx1Nzg5M1x1ODFmY1x1NmUyNlx1NTYxOFx1NTUwNFx1NmIxZFx1ODUxYVx1OWMzYlx1NTllNVx1NTNhOVx1NmQ2Nlx1NzRkY1x1OTU4Zlx1NTY0Mlx1'@; put 'NGU5MVx1OTA0Ylx1OTZmMlx1ODM0Zlx1OTkwY1x1NTNlMVx1NTViNlx1NWIzMFx1NWY3MVx1NjYyMFx1NjZmM1x1NjgwNFx1NmMzOFx1NmNmM1x1NmQyOVx1NzQ1Ylx1NzZjOFx1N2E0ZVx1OTgzNFx1ODJmMVx1ODg1Ylx1OGE2MFx1OTJlZFx1NmRiMlx1NzVhYlx1NzZjYVx1OTljNVx1NjBh'@; put 'Nlx1OGIwMVx1OGQ4YVx1OTViMlx1Njk4ZVx1NTNhZFx1NTE4NiJdLFsiODk4MCIsIlx1NTcxMlx1NTgzMFx1NTk0NFx1NWJiNFx1NWVmNlx1NjAyOFx1NjNhOVx1NjNmNFx1NmNiZlx1NmYxNFx1NzA4ZVx1NzExNFx1NzE1OVx1NzFkNVx1NzMzZlx1N2UwMVx1ODI3Nlx1ODJkMVx1ODU5N1x1'@; put 'OTA2MFx1OTI1Ylx1OWQxYlx1NTg2OVx1NjViY1x1NmM1YVx1NzUyNVx1NTFmOVx1NTkyZVx1NTk2NVx1NWY4MFx1NWZkY1x1NjJiY1x1NjVmYVx1NmEyYVx1NmIyN1x1NmJiNFx1NzM4Ylx1N2ZjMVx1ODk1Nlx1OWQyY1x1OWQwZVx1OWVjNFx1NWNhMVx1NmM5Nlx1ODM3Ylx1NTEwNFx1NWM0'@; put 'Ylx1NjFiNlx1ODFjNlx1Njg3Nlx1NzI2MVx1NGU1OVx1NGZmYVx1NTM3OFx1NjA2OVx1NmUyOVx1N2E0Zlx1OTdmM1x1NGUwYlx1NTMxNlx1NGVlZVx1NGY1NVx1NGYzZFx1NGZhMVx1NGY3M1x1NTJhMFx1NTNlZlx1NTYwOVx1NTkwZlx1NWFjMVx1NWJiNlx1NWJlMVx1NzlkMVx1NjY4N1x1'@; put 'Njc5Y1x1NjdiNlx1NmI0Y1x1NmNiM1x1NzA2Ylx1NzNjMlx1Nzk4ZFx1NzliZVx1N2EzY1x1N2I4N1x1ODJiMVx1ODJkYlx1ODMwNFx1ODM3N1x1ODNlZlx1ODNkM1x1ODc2Nlx1OGFiMlx1NTYyOVx1OGNhOFx1OGZlNlx1OTA0ZVx1OTcxZVx1ODY4YVx1NGZjNFx1NWNlOFx1NjIxMVx1NzI1'@; put 'OVx1NzUzYlx1ODFlNVx1ODJiZFx1ODZmZVx1OGNjMFx1OTZjNVx1OTkxM1x1OTlkNVx1NGVjYlx1NGYxYVx1ODllM1x1NTZkZVx1NTg0YVx1NThjYVx1NWVmYlx1NWZlYlx1NjAyYVx1NjA5NFx1NjA2Mlx1NjFkMFx1NjIxMlx1NjJkMFx1NjUzOSJdLFsiOGE0MCIsIlx1OWI0MVx1NjY2Nlx1'@; put 'NjhiMFx1NmQ3N1x1NzA3MFx1NzU0Y1x1NzY4Nlx1N2Q3NVx1ODJhNVx1ODdmOVx1OTU4Ylx1OTY4ZVx1OGM5ZFx1NTFmMVx1NTJiZVx1NTkxNlx1NTRiM1x1NWJiM1x1NWQxNlx1NjE2OFx1Njk4Mlx1NmRhZlx1Nzg4ZFx1ODRjYlx1ODg1N1x1OGE3Mlx1OTNhN1x1OWFiOFx1NmQ2Y1x1OTlh'@; put 'OFx1ODZkOVx1NTdhM1x1NjdmZlx1ODZjZVx1OTIwZVx1NTI4M1x1NTY4N1x1NTQwNFx1NWVkM1x1NjJlMVx1NjRiOVx1NjgzY1x1NjgzOFx1NmJiYlx1NzM3Mlx1NzhiYVx1N2E2Ylx1ODk5YVx1ODlkMlx1OGQ2Ylx1OGYwM1x1OTBlZFx1OTVhM1x1OTY5NFx1OTc2OVx1NWI2Nlx1NWNiM1x1'@; put 'Njk3ZFx1OTg0ZFx1OTg0ZVx1NjM5Ylx1N2IyMFx1NmEyYiJdLFsiOGE4MCIsIlx1NmE3Zlx1NjhiNlx1OWMwZFx1NmY1Zlx1NTI3Mlx1NTU5ZFx1NjA3MFx1NjJlY1x1NmQzYlx1NmUwN1x1NmVkMVx1ODQ1Ylx1ODkxMFx1OGY0NFx1NGUxNFx1OWMzOVx1NTNmNlx1NjkxYlx1NmEzYVx1OTc4'@; put 'NFx1NjgyYVx1NTE1Y1x1N2FjM1x1ODRiMlx1OTFkY1x1OTM4Y1x1NTY1Ylx1OWQyOFx1NjgyMlx1ODMwNVx1ODQzMVx1N2NhNVx1NTIwOFx1ODJjNVx1NzRlNlx1NGU3ZVx1NGY4M1x1NTFhMFx1NWJkMlx1NTIwYVx1NTJkOFx1NTJlN1x1NWRmYlx1NTU5YVx1NTgyYVx1NTllNlx1NWI4Y1x1'@; put 'NWI5OFx1NWJkYlx1NWU3Mlx1NWU3OVx1NjBhM1x1NjExZlx1NjE2M1x1NjFiZVx1NjNkYlx1NjU2Mlx1NjdkMVx1Njg1M1x1NjhmYVx1NmIzZVx1NmI1M1x1NmM1N1x1NmYyMlx1NmY5N1x1NmY0NVx1NzRiMFx1NzUxOFx1NzZlM1x1NzcwYlx1N2FmZlx1N2JhMVx1N2MyMVx1N2RlOVx1N2Yz'@; put 'Nlx1N2ZmMFx1ODA5ZFx1ODI2Nlx1ODM5ZVx1ODliM1x1OGFjY1x1OGNhYlx1OTA4NFx1OTQ1MVx1OTU5M1x1OTU5MVx1OTVhMlx1OTY2NVx1OTdkM1x1OTkyOFx1ODIxOFx1NGUzOFx1NTQyYlx1NWNiOFx1NWRjY1x1NzNhOVx1NzY0Y1x1NzczY1x1NWNhOVx1N2ZlYlx1OGQwYlx1OTZjMVx1'@; put 'OTgxMVx1OTg1NFx1OTg1OFx1NGYwMVx1NGYwZVx1NTM3MVx1NTU5Y1x1NTY2OFx1NTdmYVx1NTk0N1x1NWIwOVx1NWJjNFx1NWM5MFx1NWUwY1x1NWU3ZVx1NWZjY1x1NjNlZVx1NjczYVx1NjVkN1x1NjVlMlx1NjcxZlx1NjhjYlx1NjhjNCJdLFsiOGI0MCIsIlx1NmE1Zlx1NWUzMFx1NmJj'@; put 'NVx1NmMxN1x1NmM3ZFx1NzU3Zlx1Nzk0OFx1NWI2M1x1N2EwMFx1N2QwMFx1NWZiZFx1ODk4Zlx1OGExOFx1OGNiNFx1OGQ3N1x1OGVjY1x1OGYxZFx1OThlMlx1OWEwZVx1OWIzY1x1NGU4MFx1NTA3ZFx1NTEwMFx1NTk5M1x1NWI5Y1x1NjIyZlx1NjI4MFx1NjRlY1x1NmIzYVx1NzJhMFx1'@; put 'NzU5MVx1Nzk0N1x1N2ZhOVx1ODdmYlx1OGFiY1x1OGI3MFx1NjNhY1x1ODNjYVx1OTdhMFx1NTQwOVx1NTQwM1x1NTVhYlx1Njg1NFx1NmE1OFx1OGE3MFx1NzgyN1x1Njc3NVx1OWVjZFx1NTM3NFx1NWJhMlx1ODExYVx1ODY1MFx1OTAwNlx1NGUxOFx1NGU0NVx1NGVjN1x1NGYxMVx1NTNj'@; put 'YVx1NTQzOFx1NWJhZVx1NWYxM1x1NjAyNVx1NjU1MSJdLFsiOGI4MCIsIlx1NjczZFx1NmM0Mlx1NmM3Mlx1NmNlM1x1NzA3OFx1NzQwM1x1N2E3Nlx1N2FhZVx1N2IwOFx1N2QxYVx1N2NmZVx1N2Q2Nlx1NjVlN1x1NzI1Ylx1NTNiYlx1NWM0NVx1NWRlOFx1NjJkMlx1NjJlMFx1NjMxOVx1'@; put 'NmUyMFx1ODY1YVx1OGEzMVx1OGRkZFx1OTJmOFx1NmYwMVx1NzlhNlx1OWI1YVx1NGVhOFx1NGVhYlx1NGVhY1x1NGY5Ylx1NGZhMFx1NTBkMVx1NTE0N1x1N2FmNlx1NTE3MVx1NTFmNlx1NTM1NFx1NTMyMVx1NTM3Zlx1NTNlYlx1NTVhY1x1NTg4M1x1NWNlMVx1NWYzN1x1NWY0YVx1NjAy'@; put 'Zlx1NjA1MFx1NjA2ZFx1NjMxZlx1NjU1OVx1NmE0Ylx1NmNjMVx1NzJjMlx1NzJlZFx1NzdlZlx1ODBmOFx1ODEwNVx1ODIwOFx1ODU0ZVx1OTBmN1x1OTNlMVx1OTdmZlx1OTk1N1x1OWE1YVx1NGVmMFx1NTFkZFx1NWMyZFx1NjY4MVx1Njk2ZFx1NWM0MFx1NjZmMlx1Njk3NVx1NzM4OVx1'@; put 'Njg1MFx1N2M4MVx1NTBjNVx1NTJlNFx1NTc0N1x1NWRmZVx1OTMyNlx1NjVhNFx1NmIyM1x1NmIzZFx1NzQzNFx1Nzk4MVx1NzliZFx1N2I0Ylx1N2RjYVx1ODJiOVx1ODNjY1x1ODg3Zlx1ODk1Zlx1OGIzOVx1OGZkMVx1OTFkMVx1NTQxZlx1OTI4MFx1NGU1ZFx1NTAzNlx1NTNlNVx1NTMz'@; put 'YVx1NzJkN1x1NzM5Nlx1NzdlOVx1ODJlNlx1OGVhZlx1OTljNlx1OTljOFx1OTlkMlx1NTE3N1x1NjExYVx1ODY1ZVx1NTViMFx1N2E3YVx1NTA3Nlx1NWJkM1x1OTA0N1x1OTY4NVx1NGUzMlx1NmFkYlx1OTFlN1x1NWM1MVx1NWM0OCJdLFsiOGM0MCIsIlx1NjM5OFx1N2E5Zlx1NmM5M1x1'@; put 'OTc3NFx1OGY2MVx1N2FhYVx1NzE4YVx1OTY4OFx1N2M4Mlx1NjgxN1x1N2U3MFx1Njg1MVx1OTM2Y1x1NTJmMlx1NTQxYlx1ODVhYlx1OGExM1x1N2ZhNFx1OGVjZFx1OTBlMVx1NTM2Nlx1ODg4OFx1Nzk0MVx1NGZjMlx1NTBiZVx1NTIxMVx1NTE0NFx1NTU1M1x1NTcyZFx1NzNlYVx1NTc4'@; put 'Ylx1NTk1MVx1NWY2Mlx1NWY4NFx1NjA3NVx1NjE3Nlx1NjE2N1x1NjFhOVx1NjNiMlx1NjQzYVx1NjU2Y1x1NjY2Zlx1Njg0Mlx1NmUxM1x1NzU2Nlx1N2EzZFx1N2NmYlx1N2Q0Y1x1N2Q5OVx1N2U0Ylx1N2Y2Ylx1ODMwZVx1ODM0YVx1ODZjZFx1OGEwOFx1OGE2M1x1OGI2Nlx1OGVmZFx1'@; put 'OTgxYVx1OWQ4Zlx1ODJiOFx1OGZjZVx1OWJlOCJdLFsiOGM4MCIsIlx1NTI4N1x1NjIxZlx1NjQ4M1x1NmZjMFx1OTY5OVx1Njg0MVx1NTA5MVx1NmIyMFx1NmM3YVx1NmY1NFx1N2E3NFx1N2Q1MFx1ODg0MFx1OGEyM1x1NjcwOFx1NGVmNlx1NTAzOVx1NTAyNlx1NTA2NVx1NTE3Y1x1NTIz'@; put 'OFx1NTI2M1x1NTVhN1x1NTcwZlx1NTgwNVx1NWFjY1x1NWVmYVx1NjFiMlx1NjFmOFx1NjJmM1x1NjM3Mlx1NjkxY1x1NmEyOVx1NzI3ZFx1NzJhY1x1NzMyZVx1NzgxNFx1Nzg2Zlx1N2Q3OVx1NzcwY1x1ODBhOVx1ODk4Ylx1OGIxOVx1OGNlMlx1OGVkMlx1OTA2M1x1OTM3NVx1OTY3YVx1'@; put 'OTg1NVx1OWExM1x1OWU3OFx1NTE0M1x1NTM5Zlx1NTNiM1x1NWU3Ylx1NWYyNlx1NmUxYlx1NmU5MFx1NzM4NFx1NzNmZVx1N2Q0M1x1ODIzN1x1OGEwMFx1OGFmYVx1OTY1MFx1NGU0ZVx1NTAwYlx1NTNlNFx1NTQ3Y1x1NTZmYVx1NTlkMVx1NWI2NFx1NWRmMVx1NWVhYlx1NWYyN1x1NjIz'@; put 'OFx1NjU0NVx1NjdhZlx1NmU1Nlx1NzJkMFx1N2NjYVx1ODhiNFx1ODBhMVx1ODBlMVx1ODNmMFx1ODY0ZVx1OGE4N1x1OGRlOFx1OTIzN1x1OTZjN1x1OTg2N1x1OWYxM1x1NGU5NFx1NGU5Mlx1NGYwZFx1NTM0OFx1NTQ0OVx1NTQzZVx1NWEyZlx1NWY4Y1x1NWZhMVx1NjA5Zlx1NjhhN1x1'@; put 'NmE4ZVx1NzQ1YVx1Nzg4MVx1OGE5ZVx1OGFhNFx1OGI3N1x1OTE5MFx1NGU1ZVx1OWJjOVx1NGVhNFx1NGY3Y1x1NGZhZlx1NTAxOVx1NTAxNlx1NTE0OVx1NTE2Y1x1NTI5Zlx1NTJiOVx1NTJmZVx1NTM5YVx1NTNlM1x1NTQxMSJdLFsiOGQ0MCIsIlx1NTQwZVx1NTU4OVx1NTc1MVx1NTdh'@; put 'Mlx1NTk3ZFx1NWI1NFx1NWI1ZFx1NWI4Zlx1NWRlNVx1NWRlN1x1NWRmN1x1NWU3OFx1NWU4M1x1NWU5YVx1NWViN1x1NWYxOFx1NjA1Mlx1NjE0Y1x1NjI5N1x1NjJkOFx1NjNhN1x1NjUzYlx1NjYwMlx1NjY0M1x1NjZmNFx1Njc2ZFx1NjgyMVx1Njg5N1x1NjljYlx1NmM1Zlx1NmQyYVx1'@; put 'NmQ2OVx1NmUyZlx1NmU5ZFx1NzUzMlx1NzY4N1x1Nzg2Y1x1N2EzZlx1N2NlMFx1N2QwNVx1N2QxOFx1N2Q1ZVx1N2RiMVx1ODAxNVx1ODAwM1x1ODBhZlx1ODBiMVx1ODE1NFx1ODE4Zlx1ODIyYVx1ODM1Mlx1ODg0Y1x1ODg2MVx1OGIxYlx1OGNhMlx1OGNmY1x1OTBjYVx1OTE3NVx1OTI3'@; put 'MVx1NzgzZlx1OTJmY1x1OTVhNFx1OTY0ZCJdLFsiOGQ4MCIsIlx1OTgwNVx1OTk5OVx1OWFkOFx1OWQzYlx1NTI1Ylx1NTJhYlx1NTNmN1x1NTQwOFx1NThkNVx1NjJmN1x1NmZlMFx1OGM2YVx1OGY1Zlx1OWViOVx1NTE0Ylx1NTIzYlx1NTQ0YVx1NTZmZFx1N2E0MFx1OTE3N1x1OWQ2MFx1'@; put 'OWVkMlx1NzM0NFx1NmYwOVx1ODE3MFx1NzUxMVx1NWZmZFx1NjBkYVx1OWFhOFx1NzJkYlx1OGZiY1x1NmI2NFx1OTgwM1x1NGVjYVx1NTZmMFx1NTc2NFx1NThiZVx1NWE1YVx1NjA2OFx1NjFjN1x1NjYwZlx1NjYwNlx1NjgzOVx1NjhiMVx1NmRmN1x1NzVkNVx1N2QzYVx1ODI2ZVx1OWI0'@; put 'Mlx1NGU5Ylx1NGY1MFx1NTNjOVx1NTUwNlx1NWQ2Zlx1NWRlNlx1NWRlZVx1NjdmYlx1NmM5OVx1NzQ3M1x1NzgwMlx1OGE1MFx1OTM5Nlx1ODhkZlx1NTc1MFx1NWVhN1x1NjMyYlx1NTBiNVx1NTBhY1x1NTE4ZFx1NjcwMFx1NTRjOVx1NTg1ZVx1NTliYlx1NWJiMFx1NWY2OVx1NjI0ZFx1'@; put 'NjNhMVx1NjgzZFx1NmI3M1x1NmUwOFx1NzA3ZFx1OTFjN1x1NzI4MFx1NzgxNVx1NzgyNlx1Nzk2ZFx1NjU4ZVx1N2QzMFx1ODNkY1x1ODhjMVx1OGYwOVx1OTY5Ylx1NTI2NFx1NTcyOFx1Njc1MFx1N2Y2YVx1OGNhMVx1NTFiNFx1NTc0Mlx1OTYyYVx1NTgzYVx1Njk4YVx1ODBiNFx1NTRi'@; put 'Mlx1NWQwZVx1NTdmY1x1Nzg5NVx1OWRmYVx1NGY1Y1x1NTI0YVx1NTQ4Ylx1NjQzZVx1NjYyOFx1NjcxNFx1NjdmNVx1N2E4NFx1N2I1Nlx1N2QyMlx1OTMyZlx1Njg1Y1x1OWJhZFx1N2IzOVx1NTMxOVx1NTE4YVx1NTIzNyJdLFsiOGU0MCIsIlx1NWJkZlx1NjJmNlx1NjRhZVx1NjRlNlx1'@; put 'NjcyZFx1NmJiYVx1ODVhOVx1OTZkMVx1NzY5MFx1OWJkNlx1NjM0Y1x1OTMwNlx1OWJhYlx1NzZiZlx1NjY1Mlx1NGUwOVx1NTA5OFx1NTNjMlx1NWM3MVx1NjBlOFx1NjQ5Mlx1NjU2M1x1Njg1Zlx1NzFlNlx1NzNjYVx1NzUyM1x1N2I5N1x1N2U4Mlx1ODY5NVx1OGI4M1x1OGNkYlx1OTE3'@; put 'OFx1OTkxMFx1NjVhY1x1NjZhYlx1NmI4Ylx1NGVkNVx1NGVkNFx1NGYzYVx1NGY3Zlx1NTIzYVx1NTNmOFx1NTNmMlx1NTVlM1x1NTZkYlx1NThlYlx1NTljYlx1NTljOVx1NTlmZlx1NWI1MFx1NWM0ZFx1NWUwMlx1NWUyYlx1NWZkN1x1NjAxZFx1NjMwN1x1NjUyZlx1NWI1Y1x1NjVhZlx1'@; put 'NjViZFx1NjVlOFx1Njc5ZFx1NmI2MiJdLFsiOGU4MCIsIlx1NmI3Ylx1NmMwZlx1NzM0NVx1Nzk0OVx1NzljMVx1N2NmOFx1N2QxOVx1N2QyYlx1ODBhMlx1ODEwMlx1ODFmM1x1ODk5Nlx1OGE1ZVx1OGE2OVx1OGE2Nlx1OGE4Y1x1OGFlZVx1OGNjN1x1OGNkY1x1OTZjY1x1OThmY1x1NmI2'@; put 'Zlx1NGU4Ylx1NGYzY1x1NGY4ZFx1NTE1MFx1NWI1N1x1NWJmYVx1NjE0OFx1NjMwMVx1NjY0Mlx1NmIyMVx1NmVjYlx1NmNiYlx1NzIzZVx1NzRiZFx1NzVkNFx1NzhjMVx1NzkzYVx1ODAwY1x1ODAzM1x1ODFlYVx1ODQ5NFx1OGY5ZVx1NmM1MFx1OWU3Zlx1NWYwZlx1OGI1OFx1OWQyYlx1'@; put 'N2FmYVx1OGVmOFx1NWI4ZFx1OTZlYlx1NGUwM1x1NTNmMVx1NTdmN1x1NTkzMVx1NWFjOVx1NWJhNFx1NjA4OVx1NmU3Zlx1NmYwNlx1NzViZVx1OGNlYVx1NWI5Zlx1ODUwMFx1N2JlMFx1NTA3Mlx1NjdmNFx1ODI5ZFx1NWM2MVx1ODU0YVx1N2UxZVx1ODIwZVx1NTE5OVx1NWMwNFx1NjM2'@; put 'OFx1OGQ2Nlx1NjU5Y1x1NzE2ZVx1NzkzZVx1N2QxN1x1ODAwNVx1OGIxZFx1OGVjYVx1OTA2ZVx1ODZjN1x1OTBhYVx1NTAxZlx1NTJmYVx1NWMzYVx1Njc1M1x1NzA3Y1x1NzIzNVx1OTE0Y1x1OTFjOFx1OTMyYlx1ODJlNVx1NWJjMlx1NWYzMVx1NjBmOVx1NGUzYlx1NTNkNlx1NWI4OFx1'@; put 'NjI0Ylx1NjczMVx1NmI4YVx1NzJlOVx1NzNlMFx1N2EyZVx1ODE2Ylx1OGRhM1x1OTE1Mlx1OTk5Nlx1NTExMlx1NTNkN1x1NTQ2YVx1NWJmZlx1NjM4OFx1NmEzOVx1N2RhY1x1OTcwMFx1NTZkYVx1NTNjZVx1NTQ2OCJdLFsiOGY0MCIsIlx1NWI5N1x1NWMzMVx1NWRkZVx1NGZlZVx1NjEw'@; put 'MVx1NjJmZVx1NmQzMlx1NzljMFx1NzljYlx1N2Q0Mlx1N2U0ZFx1N2ZkMlx1ODFlZFx1ODIxZlx1ODQ5MFx1ODg0Nlx1ODk3Mlx1OGI5MFx1OGU3NFx1OGYyZlx1OTAzMVx1OTE0Ylx1OTE2Y1x1OTZjNlx1OTE5Y1x1NGVjMFx1NGY0Zlx1NTE0NVx1NTM0MVx1NWY5M1x1NjIwZVx1NjdkNFx1'@; put 'NmM0MVx1NmUwYlx1NzM2M1x1N2UyNlx1OTFjZFx1OTI4M1x1NTNkNFx1NTkxOVx1NWJiZlx1NmRkMVx1Nzk1ZFx1N2UyZVx1N2M5Ylx1NTg3ZVx1NzE5Zlx1NTFmYVx1ODg1M1x1OGZmMFx1NGZjYVx1NWNmYlx1NjYyNVx1NzdhY1x1N2FlM1x1ODIxY1x1OTlmZlx1NTFjNlx1NWZhYVx1NjVl'@; put 'Y1x1Njk2Zlx1NmI4OVx1NmRmMyJdLFsiOGY4MCIsIlx1NmU5Nlx1NmY2NFx1NzZmZVx1N2QxNFx1NWRlMVx1OTA3NVx1OTE4N1x1OTgwNlx1NTFlNlx1NTIxZFx1NjI0MFx1NjY5MVx1NjZkOVx1NmUxYVx1NWViNlx1N2RkMlx1N2Y3Mlx1NjZmOFx1ODVhZlx1ODVmN1x1OGFmOFx1NTJhOVx1'@; put 'NTNkOVx1NTk3M1x1NWU4Zlx1NWY5MFx1NjA1NVx1OTJlNFx1OTY2NFx1NTBiN1x1NTExZlx1NTJkZFx1NTMyMFx1NTM0N1x1NTNlY1x1NTRlOFx1NTU0Nlx1NTUzMVx1NTYxN1x1NTk2OFx1NTliZVx1NWEzY1x1NWJiNVx1NWMwNlx1NWMwZlx1NWMxMVx1NWMxYVx1NWU4NFx1NWU4YVx1NWVl'@; put 'MFx1NWY3MFx1NjI3Zlx1NjI4NFx1NjJkYlx1NjM4Y1x1NjM3N1x1NjYwN1x1NjYwY1x1NjYyZFx1NjY3Nlx1Njc3ZVx1NjhhMlx1NmExZlx1NmEzNVx1NmNiY1x1NmQ4OFx1NmUwOVx1NmU1OFx1NzEzY1x1NzEyNlx1NzE2N1x1NzVjN1x1NzcwMVx1Nzg1ZFx1NzkwMVx1Nzk2NVx1NzlmMFx1'@; put 'N2FlMFx1N2IxMVx1N2NhN1x1N2QzOVx1ODA5Nlx1ODNkNlx1ODQ4Ylx1ODU0OVx1ODg1ZFx1ODhmM1x1OGExZlx1OGEzY1x1OGE1NFx1OGE3M1x1OGM2MVx1OGNkZVx1OTFhNFx1OTI2Nlx1OTM3ZVx1OTQxOFx1OTY5Y1x1OTc5OFx1NGUwYVx1NGUwOFx1NGUxZVx1NGU1N1x1NTE5N1x1NTI3'@; put 'MFx1NTdjZVx1NTgzNFx1NThjY1x1NWIyMlx1NWUzOFx1NjBjNVx1NjRmZVx1Njc2MVx1Njc1Nlx1NmQ0NFx1NzJiNlx1NzU3M1x1N2E2M1x1ODRiOFx1OGI3Mlx1OTFiOFx1OTMyMFx1NTYzMVx1NTdmNFx1OThmZSJdLFsiOTA0MCIsIlx1NjJlZFx1NjkwZFx1NmI5Nlx1NzFlZFx1N2U1NFx1'@; put 'ODA3N1x1ODI3Mlx1ODllNlx1OThkZlx1ODc1NVx1OGZiMVx1NWMzYlx1NGYzOFx1NGZlMVx1NGZiNVx1NTUwN1x1NWEyMFx1NWJkZFx1NWJlOVx1NWZjM1x1NjE0ZVx1NjMyZlx1NjViMFx1NjY0Ylx1NjhlZVx1Njk5Ylx1NmQ3OFx1NmRmMVx1NzUzM1x1NzViOVx1NzcxZlx1Nzk1ZVx1Nzll'@; put 'Nlx1N2QzM1x1ODFlM1x1ODJhZlx1ODVhYVx1ODlhYVx1OGEzYVx1OGVhYlx1OGY5Ylx1OTAzMlx1OTFkZFx1OTcwN1x1NGViYVx1NGVjMVx1NTIwM1x1NTg3NVx1NThlY1x1NWMwYlx1NzUxYVx1NWMzZFx1ODE0ZVx1OGEwYVx1OGZjNVx1OTY2M1x1OTc2ZFx1N2IyNVx1OGFjZlx1OTgwOFx1'@; put 'OTE2Mlx1NTZmM1x1NTNhOCJdLFsiOTA4MCIsIlx1OTAxN1x1NTQzOVx1NTc4Mlx1NWUyNVx1NjNhOFx1NmMzNFx1NzA4YVx1Nzc2MVx1N2M4Ylx1N2ZlMFx1ODg3MFx1OTA0Mlx1OTE1NFx1OTMxMFx1OTMxOFx1OTY4Zlx1NzQ1ZVx1OWFjNFx1NWQwN1x1NWQ2OVx1NjU3MFx1NjdhMlx1OGRh'@; put 'OFx1OTZkYlx1NjM2ZVx1Njc0OVx1NjkxOVx1ODNjNVx1OTgxN1x1OTZjMFx1ODhmZVx1NmY4NFx1NjQ3YVx1NWJmOFx1NGUxNlx1NzAyY1x1NzU1ZFx1NjYyZlx1NTFjNFx1NTIzNlx1NTJlMlx1NTlkM1x1NWY4MVx1NjAyN1x1NjIxMFx1NjUzZlx1NjU3NFx1NjYxZlx1NjY3NFx1NjhmMlx1'@; put 'NjgxNlx1NmI2M1x1NmUwNVx1NzI3Mlx1NzUxZlx1NzZkYlx1N2NiZVx1ODA1Nlx1NThmMFx1ODhmZFx1ODk3Zlx1OGFhMFx1OGE5M1x1OGFjYlx1OTAxZFx1OTE5Mlx1OTc1Mlx1OTc1OVx1NjU4OVx1N2EwZVx1ODEwNlx1OTZiYlx1NWUyZFx1NjBkY1x1NjIxYVx1NjVhNVx1NjYxNFx1Njc5'@; put 'MFx1NzdmM1x1N2E0ZFx1N2M0ZFx1N2UzZVx1ODEwYVx1OGNhY1x1OGQ2NFx1OGRlMVx1OGU1Zlx1NzhhOVx1NTIwN1x1NjJkOVx1NjNhNVx1NjQ0Mlx1NjI5OFx1OGEyZFx1N2E4M1x1N2JjMFx1OGFhY1x1OTZlYVx1N2Q3Nlx1ODIwY1x1ODc0OVx1NGVkOVx1NTE0OFx1NTM0M1x1NTM2MFx1'@; put 'NWJhM1x1NWMwMlx1NWMxNlx1NWRkZFx1NjIyNlx1NjI0N1x1NjRiMFx1NjgxM1x1NjgzNFx1NmNjOVx1NmQ0NVx1NmQxN1x1NjdkM1x1NmY1Y1x1NzE0ZVx1NzE3ZFx1NjVjYlx1N2E3Zlx1N2JhZFx1N2RkYSJdLFsiOTE0MCIsIlx1N2U0YVx1N2ZhOFx1ODE3YVx1ODIxYlx1ODIzOVx1ODVh'@; put 'Nlx1OGE2ZVx1OGNjZVx1OGRmNVx1OTA3OFx1OTA3N1x1OTJhZFx1OTI5MVx1OTU4M1x1OWJhZVx1NTI0ZFx1NTU4NFx1NmYzOFx1NzEzNlx1NTE2OFx1Nzk4NVx1N2U1NVx1ODFiM1x1N2NjZVx1NTY0Y1x1NTg1MVx1NWNhOFx1NjNhYVx1NjZmZVx1NjZmZFx1Njk1YVx1NzJkOVx1NzU4Zlx1'@; put 'NzU4ZVx1NzkwZVx1Nzk1Nlx1NzlkZlx1N2M5N1x1N2QyMFx1N2Q0NFx1ODYwN1x1OGEzNFx1OTYzYlx1OTA2MVx1OWYyMFx1NTBlN1x1NTI3NVx1NTNjY1x1NTNlMlx1NTAwOVx1NTVhYVx1NThlZVx1NTk0Zlx1NzIzZFx1NWI4Ylx1NWM2NFx1NTMxZFx1NjBlM1x1NjBmM1x1NjM1Y1x1NjM4'@; put 'M1x1NjMzZlx1NjNiYiJdLFsiOTE4MCIsIlx1NjRjZFx1NjVlOVx1NjZmOVx1NWRlM1x1NjljZFx1NjlmZFx1NmYxNVx1NzFlNVx1NGU4OVx1NzVlOVx1NzZmOFx1N2E5M1x1N2NkZlx1N2RjZlx1N2Q5Y1x1ODA2MVx1ODM0OVx1ODM1OFx1ODQ2Y1x1ODRiY1x1ODVmYlx1ODhjNVx1OGQ3MFx1'@; put 'OTAwMVx1OTA2ZFx1OTM5N1x1OTcxY1x1OWExMlx1NTBjZlx1NTg5N1x1NjE4ZVx1ODFkM1x1ODUzNVx1OGQwOFx1OTAyMFx1NGZjM1x1NTA3NFx1NTI0N1x1NTM3M1x1NjA2Zlx1NjM0OVx1Njc1Zlx1NmUyY1x1OGRiM1x1OTAxZlx1NGZkN1x1NWM1ZVx1OGNjYVx1NjVjZlx1N2Q5YVx1NTM1'@; put 'Mlx1ODg5Nlx1NTE3Nlx1NjNjM1x1NWI1OFx1NWI2Ylx1NWMwYVx1NjQwZFx1Njc1MVx1OTA1Y1x1NGVkNlx1NTkxYVx1NTkyYVx1NmM3MFx1OGE1MVx1NTUzZVx1NTgxNVx1NTlhNVx1NjBmMFx1NjI1M1x1NjdjMVx1ODIzNVx1Njk1NVx1OTY0MFx1OTljNFx1OWEyOFx1NGY1M1x1NTgwNlx1'@; put 'NWJmZVx1ODAxMFx1NWNiMVx1NWUyZlx1NWY4NVx1NjAyMFx1NjE0Ylx1NjIzNFx1NjZmZlx1NmNmMFx1NmVkZVx1ODBjZVx1ODE3Zlx1ODJkNFx1ODg4Ylx1OGNiOFx1OTAwMFx1OTAyZVx1OTY4YVx1OWVkYlx1OWJkYlx1NGVlM1x1NTNmMFx1NTkyN1x1N2IyY1x1OTE4ZFx1OTg0Y1x1OWRm'@; put 'OVx1NmVkZFx1NzAyN1x1NTM1M1x1NTU0NFx1NWI4NVx1NjI1OFx1NjI5ZVx1NjJkM1x1NmNhMlx1NmZlZlx1NzQyMlx1OGExN1x1OTQzOFx1NmZjMVx1OGFmZVx1ODMzOFx1NTFlN1x1ODZmOFx1NTNlYSJdLFsiOTI0MCIsIlx1NTNlOVx1NGY0Nlx1OTA1NFx1OGZiMFx1NTk2YVx1ODEzMVx1'@; put 'NWRmZFx1N2FlYVx1OGZiZlx1NjhkYVx1OGMzN1x1NzJmOFx1OWM0OFx1NmEzZFx1OGFiMFx1NGUzOVx1NTM1OFx1NTYwNlx1NTc2Nlx1NjJjNVx1NjNhMlx1NjVlNlx1NmI0ZVx1NmRlMVx1NmU1Ylx1NzBhZFx1NzdlZFx1N2FlZlx1N2JhYVx1N2RiYlx1ODAzZFx1ODBjNlx1ODZjYlx1OGE5'@; put 'NVx1OTM1Ylx1NTZlM1x1NThjN1x1NWYzZVx1NjVhZFx1NjY5Nlx1NmE4MFx1NmJiNVx1NzUzN1x1OGFjN1x1NTAyNFx1NzdlNVx1NTczMFx1NWYxYlx1NjA2NVx1NjY3YVx1NmM2MFx1NzVmNFx1N2ExYVx1N2Y2ZVx1ODFmNFx1ODcxOFx1OTA0NVx1OTliM1x1N2JjOVx1NzU1Y1x1N2FmOVx1'@; put 'N2I1MVx1ODRjNCJdLFsiOTI4MCIsIlx1OTAxMFx1NzllOVx1N2E5Mlx1ODMzNlx1NWFlMVx1Nzc0MFx1NGUyZFx1NGVmMlx1NWI5OVx1NWZlMFx1NjJiZFx1NjYzY1x1NjdmMVx1NmNlOFx1ODY2Ylx1ODg3N1x1OGEzYlx1OTE0ZVx1OTJmM1x1OTlkMFx1NmExN1x1NzAyNlx1NzMyYVx1ODJl'@; put 'N1x1ODQ1N1x1OGNhZlx1NGUwMVx1NTE0Nlx1NTFjYlx1NTU4Ylx1NWJmNVx1NWUxNlx1NWUzM1x1NWU4MVx1NWYxNFx1NWYzNVx1NWY2Ylx1NWZiNFx1NjFmMlx1NjMxMVx1NjZhMlx1NjcxZFx1NmY2ZVx1NzI1Mlx1NzUzYVx1NzczYVx1ODA3NFx1ODEzOVx1ODE3OFx1ODc3Nlx1OGFiZlx1'@; put 'OGFkY1x1OGQ4NVx1OGRmM1x1OTI5YVx1OTU3N1x1OTgwMlx1OWNlNVx1NTJjNVx1NjM1N1x1NzZmNFx1NjcxNVx1NmM4OFx1NzNjZFx1OGNjM1x1OTNhZVx1OTY3M1x1NmQyNVx1NTg5Y1x1NjkwZVx1NjljY1x1OGZmZFx1OTM5YVx1NzVkYlx1OTAxYVx1NTg1YVx1NjgwMlx1NjNiNFx1Njlm'@; put 'Ylx1NGY0M1x1NmYyY1x1NjdkOFx1OGZiYlx1ODUyNlx1N2RiNFx1OTM1NFx1NjkzZlx1NmY3MFx1NTc2YVx1NThmN1x1NWIyY1x1N2QyY1x1NzIyYVx1NTQwYVx1OTFlM1x1OWRiNFx1NGVhZFx1NGY0ZVx1NTA1Y1x1NTA3NVx1NTI0M1x1OGM5ZVx1NTQ0OFx1NTgyNFx1NWI5YVx1NWUxZFx1'@; put 'NWU5NVx1NWVhZFx1NWVmN1x1NWYxZlx1NjA4Y1x1NjJiNVx1NjMzYVx1NjNkMFx1NjhhZlx1NmM0MFx1Nzg4N1x1Nzk4ZVx1N2EwYlx1N2RlMFx1ODI0N1x1OGEwMlx1OGFlNlx1OGU0NFx1OTAxMyJdLFsiOTM0MCIsIlx1OTBiOFx1OTEyZFx1OTFkOFx1OWYwZVx1NmNlNVx1NjQ1OFx1NjRl'@; put 'Mlx1NjU3NVx1NmVmNFx1NzY4NFx1N2IxYlx1OTA2OVx1OTNkMVx1NmViYVx1NTRmMlx1NWZiOVx1NjRhNFx1OGY0ZFx1OGZlZFx1OTI0NFx1NTE3OFx1NTg2Ylx1NTkyOVx1NWM1NVx1NWU5N1x1NmRmYlx1N2U4Zlx1NzUxY1x1OGNiY1x1OGVlMlx1OTg1Ylx1NzBiOVx1NGYxZFx1NmJiZlx1'@; put 'NmZiMVx1NzUzMFx1OTZmYlx1NTE0ZVx1NTQxMFx1NTgzNVx1NTg1N1x1NTlhY1x1NWM2MFx1NWY5Mlx1NjU5N1x1Njc1Y1x1NmUyMVx1NzY3Ylx1ODNkZlx1OGNlZFx1OTAxNFx1OTBmZFx1OTM0ZFx1NzgyNVx1NzgzYVx1NTJhYVx1NWVhNlx1NTcxZlx1NTk3NFx1NjAxMlx1NTAxMlx1NTE1'@; put 'YVx1NTFhYyJdLFsiOTM4MCIsIlx1NTFjZFx1NTIwMFx1NTUxMFx1NTg1NFx1NTg1OFx1NTk1N1x1NWI5NVx1NWNmNlx1NWQ4Ylx1NjBiY1x1NjI5NVx1NjQyZFx1Njc3MVx1Njg0M1x1NjhiY1x1NjhkZlx1NzZkN1x1NmRkOFx1NmU2Zlx1NmQ5Ylx1NzA2Zlx1NzFjOFx1NWY1M1x1NzVkOFx1'@; put 'Nzk3N1x1N2I0OVx1N2I1NFx1N2I1Mlx1N2NkNlx1N2Q3MVx1NTIzMFx1ODQ2M1x1ODU2OVx1ODVlNFx1OGEwZVx1OGIwNFx1OGM0Nlx1OGUwZlx1OTAwM1x1OTAwZlx1OTQxOVx1OTY3Nlx1OTgyZFx1OWEzMFx1OTVkOFx1NTBjZFx1NTJkNVx1NTQwY1x1NTgwMlx1NWMwZVx1NjFhN1x1NjQ5'@; put 'ZVx1NmQxZVx1NzdiM1x1N2FlNVx1ODBmNFx1ODQwNFx1OTA1M1x1OTI4NVx1NWNlMFx1OWQwN1x1NTMzZlx1NWY5N1x1NWZiM1x1NmQ5Y1x1NzI3OVx1Nzc2M1x1NzliZlx1N2JlNFx1NmJkMlx1NzJlY1x1OGFhZFx1NjgwM1x1NmE2MVx1NTFmOFx1N2E4MVx1NjkzNFx1NWM0YVx1OWNmNlx1'@; put 'ODJlYlx1NWJjNVx1OTE0OVx1NzAxZVx1NTY3OFx1NWM2Zlx1NjBjN1x1NjU2Nlx1NmM4Y1x1OGM1YVx1OTA0MVx1OTgxM1x1NTQ1MVx1NjZjN1x1OTIwZFx1NTk0OFx1OTBhM1x1NTE4NVx1NGU0ZFx1NTFlYVx1ODU5OVx1OGIwZVx1NzA1OFx1NjM3YVx1OTM0Ylx1Njk2Mlx1OTliNFx1N2Uw'@; put 'NFx1NzU3N1x1NTM1N1x1Njk2MFx1OGVkZlx1OTZlM1x1NmM1ZFx1NGU4Y1x1NWMzY1x1NWYxMFx1OGZlOVx1NTMwMlx1OGNkMVx1ODA4OVx1ODY3OVx1NWVmZlx1NjVlNVx1NGU3M1x1NTE2NSJdLFsiOTQ0MCIsIlx1NTk4Mlx1NWMzZlx1OTdlZVx1NGVmYlx1NTk4YVx1NWZjZFx1OGE4ZFx1'@; put 'NmZlMVx1NzliMFx1Nzk2Mlx1NWJlN1x1ODQ3MVx1NzMyYlx1NzFiMVx1NWU3NFx1NWZmNVx1NjM3Ylx1NjQ5YVx1NzFjM1x1N2M5OFx1NGU0M1x1NWVmY1x1NGU0Ylx1NTdkY1x1NTZhMlx1NjBhOVx1NmZjM1x1N2QwZFx1ODBmZFx1ODEzM1x1ODFiZlx1OGZiMlx1ODk5N1x1ODZhNFx1NWRm'@; put 'NFx1NjI4YVx1NjRhZFx1ODk4N1x1Njc3N1x1NmNlMlx1NmQzZVx1NzQzNlx1NzgzNFx1NWE0Nlx1N2Y3NVx1ODJhZFx1OTlhY1x1NGZmM1x1NWVjM1x1NjJkZFx1NjM5Mlx1NjU1N1x1Njc2Zlx1NzZjM1x1NzI0Y1x1ODBjY1x1ODBiYVx1OGYyOVx1OTE0ZFx1NTAwZFx1NTdmOVx1NWE5Mlx1'@; put 'Njg4NSJdLFsiOTQ4MCIsIlx1Njk3M1x1NzE2NFx1NzJmZFx1OGNiN1x1NThmMlx1OGNlMFx1OTY2YVx1OTAxOVx1ODc3Zlx1NzllNFx1NzdlN1x1ODQyOVx1NGYyZlx1NTI2NVx1NTM1YVx1NjJjZFx1NjdjZlx1NmNjYVx1NzY3ZFx1N2I5NFx1N2M5NVx1ODIzNlx1ODU4NFx1OGZlYlx1NjZk'@; put 'ZFx1NmYyMFx1NzIwNlx1N2UxYlx1ODNhYlx1OTljMVx1OWVhNlx1NTFmZFx1N2JiMVx1Nzg3Mlx1N2JiOFx1ODA4N1x1N2I0OFx1NmFlOFx1NWU2MVx1ODA4Y1x1NzU1MVx1NzU2MFx1NTE2Ylx1OTI2Mlx1NmU4Y1x1NzY3YVx1OTE5N1x1OWFlYVx1NGYxMFx1N2Y3MFx1NjI5Y1x1N2I0Zlx1'@; put 'OTVhNVx1OWNlOVx1NTY3YVx1NTg1OVx1ODZlNFx1OTZiY1x1NGYzNFx1NTIyNFx1NTM0YVx1NTNjZFx1NTNkYlx1NWUwNlx1NjQyY1x1NjU5MVx1Njc3Zlx1NmMzZVx1NmM0ZVx1NzI0OFx1NzJhZlx1NzNlZFx1NzU1NFx1N2U0MVx1ODIyY1x1ODVlOVx1OGNhOVx1N2JjNFx1OTFjNlx1NzE2'@; put 'OVx1OTgxMlx1OThlZlx1NjMzZFx1NjY2OVx1NzU2YVx1NzZlNFx1NzhkMFx1ODU0M1x1ODZlZVx1NTMyYVx1NTM1MVx1NTQyNlx1NTk4M1x1NWU4N1x1NWY3Y1x1NjBiMlx1NjI0OVx1NjI3OVx1NjJhYlx1NjU5MFx1NmJkNFx1NmNjY1x1NzViMlx1NzZhZVx1Nzg5MVx1NzlkOFx1N2RjYlx1'@; put 'N2Y3N1x1ODBhNVx1ODhhYlx1OGFiOVx1OGNiYlx1OTA3Zlx1OTc1ZVx1OThkYlx1NmEwYlx1N2MzOFx1NTA5OVx1NWMzZVx1NWZhZVx1Njc4N1x1NmJkOFx1NzQzNVx1NzcwOVx1N2Y4ZSJdLFsiOTU0MCIsIlx1OWYzYlx1NjdjYVx1N2ExN1x1NTMzOVx1NzU4Ylx1OWFlZFx1NWY2Nlx1ODE5'@; put 'ZFx1ODNmMVx1ODA5OFx1NWYzY1x1NWZjNVx1NzU2Mlx1N2I0Nlx1OTAzY1x1Njg2N1x1NTllYlx1NWE5Ylx1N2QxMFx1NzY3ZVx1OGIyY1x1NGZmNVx1NWY2YVx1NmExOVx1NmMzN1x1NmYwMlx1NzRlMlx1Nzk2OFx1ODg2OFx1OGE1NVx1OGM3OVx1NWVkZlx1NjNjZlx1NzVjNVx1NzlkMlx1'@; put 'ODJkN1x1OTMyOFx1OTJmMlx1ODQ5Y1x1ODZlZFx1OWMyZFx1NTRjMVx1NWY2Y1x1NjU4Y1x1NmQ1Y1x1NzAxNVx1OGNhN1x1OGNkM1x1OTgzYlx1NjU0Zlx1NzRmNlx1NGUwZFx1NGVkOFx1NTdlMFx1NTkyYlx1NWE2Nlx1NWJjY1x1NTFhOFx1NWUwM1x1NWU5Y1x1NjAxNlx1NjI3Nlx1NjU3'@; put 'NyJdLFsiOTU4MCIsIlx1NjVhN1x1NjY2ZVx1NmQ2ZVx1NzIzNlx1N2IyNlx1ODE1MFx1ODE5YVx1ODI5OVx1OGI1Y1x1OGNhMFx1OGNlNlx1OGQ3NFx1OTYxY1x1OTY0NFx1NGZhZVx1NjRhYlx1NmI2Nlx1ODIxZVx1ODQ2MVx1ODU2YVx1OTBlOFx1NWMwMVx1Njk1M1x1OThhOFx1ODQ3YVx1'@; put 'ODU1N1x1NGYwZlx1NTI2Zlx1NWZhOVx1NWU0NVx1NjcwZFx1Nzk4Zlx1ODE3OVx1ODkwN1x1ODk4Nlx1NmRmNVx1NWYxN1x1NjI1NVx1NmNiOFx1NGVjZlx1NzI2OVx1OWI5Mlx1NTIwNlx1NTQzYlx1NTY3NFx1NThiM1x1NjFhNFx1NjI2ZVx1NzExYVx1NTk2ZVx1N2M4OVx1N2NkZVx1N2Qx'@; put 'Ylx1OTZmMFx1NjU4N1x1ODA1ZVx1NGUxOVx1NGY3NVx1NTE3NVx1NTg0MFx1NWU2M1x1NWU3M1x1NWYwYVx1NjdjNFx1NGUyNlx1ODUzZFx1OTU4OVx1OTY1Ylx1N2M3M1x1OTgwMVx1NTBmYlx1NThjMVx1NzY1Nlx1NzhhN1x1NTIyNVx1NzdhNVx1ODUxMVx1N2I4Nlx1NTA0Zlx1NTkwOVx1'@; put 'NzI0N1x1N2JjN1x1N2RlOFx1OGZiYVx1OGZkNFx1OTA0ZFx1NGZiZlx1NTJjOVx1NWEyOVx1NWYwMVx1OTdhZFx1NGZkZFx1ODIxN1x1OTJlYVx1NTcwM1x1NjM1NVx1NmI2OVx1NzUyYlx1ODhkY1x1OGYxNFx1N2E0Mlx1NTJkZlx1NTg5M1x1NjE1NVx1NjIwYVx1NjZhZVx1NmJjZFx1N2Mz'@; put 'Zlx1ODNlOVx1NTAyM1x1NGZmOFx1NTMwNVx1NTQ0Nlx1NTgzMVx1NTk0OVx1NWI5ZFx1NWNmMFx1NWNlZlx1NWQyOVx1NWU5Nlx1NjJiMVx1NjM2N1x1NjUzZVx1NjViOVx1NjcwYiJdLFsiOTY0MCIsIlx1NmNkNVx1NmNlMVx1NzBmOVx1NzgzMlx1N2UyYlx1ODBkZVx1ODJiM1x1ODQwY1x1'@; put 'ODRlY1x1ODcwMlx1ODkxMlx1OGEyYVx1OGM0YVx1OTBhNlx1OTJkMlx1OThmZFx1OWNmM1x1OWQ2Y1x1NGU0Zlx1NGVhMVx1NTA4ZFx1NTI1Nlx1NTc0YVx1NTlhOFx1NWUzZFx1NWZkOFx1NWZkOVx1NjIzZlx1NjZiNFx1NjcxYlx1NjdkMFx1NjhkMlx1NTE5Mlx1N2QyMVx1ODBhYVx1ODFh'@; put 'OFx1OGIwMFx1OGM4Y1x1OGNiZlx1OTI3ZVx1OTYzMlx1NTQyMFx1OTgyY1x1NTMxN1x1NTBkNVx1NTM1Y1x1NThhOFx1NjRiMlx1NjczNFx1NzI2N1x1Nzc2Nlx1N2E0Nlx1OTFlNlx1NTJjM1x1NmNhMVx1NmI4Nlx1NTgwMFx1NWU0Y1x1NTk1NFx1NjcyY1x1N2ZmYlx1NTFlMVx1NzZjNiJd'@; put 'LFsiOTY4MCIsIlx1NjQ2OVx1NzhlOFx1OWI1NFx1OWViYlx1NTdjYlx1NTliOVx1NjYyN1x1Njc5YVx1NmJjZVx1NTRlOVx1NjlkOVx1NWU1NVx1ODE5Y1x1Njc5NVx1OWJhYVx1NjdmZVx1OWM1Mlx1Njg1ZFx1NGVhNlx1NGZlM1x1NTNjOFx1NjJiOVx1NjcyYlx1NmNhYlx1OGZjNFx1NGZh'@; put 'ZFx1N2U2ZFx1OWViZlx1NGUwN1x1NjE2Mlx1NmU4MFx1NmYyYlx1ODUxM1x1NTQ3M1x1NjcyYVx1OWI0NVx1NWRmM1x1N2I5NVx1NWNhY1x1NWJjNlx1ODcxY1x1NmU0YVx1ODRkMVx1N2ExNFx1ODEwOFx1NTk5OVx1N2M4ZFx1NmMxMVx1NzcyMFx1NTJkOVx1NTkyMlx1NzEyMVx1NzI1Zlx1'@; put 'NzdkYlx1OTcyN1x1OWQ2MVx1NjkwYlx1NWE3Zlx1NWExOFx1NTFhNVx1NTQwZFx1NTQ3ZFx1NjYwZVx1NzZkZlx1OGZmN1x1OTI5OFx1OWNmNFx1NTllYVx1NzI1ZFx1NmVjNVx1NTE0ZFx1NjhjOVx1N2RiZlx1N2RlY1x1OTc2Mlx1OWViYVx1NjQ3OFx1NmEyMVx1ODMwMlx1NTk4NFx1NWI1'@; put 'Zlx1NmJkYlx1NzMxYlx1NzZmMlx1N2RiMlx1ODAxN1x1ODQ5OVx1NTEzMlx1NjcyOFx1OWVkOVx1NzZlZVx1Njc2Mlx1NTJmZlx1OTkwNVx1NWMyNFx1NjIzYlx1N2M3ZVx1OGNiMFx1NTU0Zlx1NjBiNlx1N2QwYlx1OTU4MFx1NTMwMVx1NGU1Zlx1NTFiNlx1NTkxY1x1NzIzYVx1ODAzNlx1'@; put 'OTFjZVx1NWYyNVx1NzdlMlx1NTM4NFx1NWY3OVx1N2QwNFx1ODVhY1x1OGEzM1x1OGU4ZFx1OTc1Nlx1NjdmM1x1ODVhZVx1OTQ1M1x1NjEwOVx1NjEwOFx1NmNiOVx1NzY1MiJdLFsiOTc0MCIsIlx1OGFlZFx1OGYzOFx1NTUyZlx1NGY1MVx1NTEyYVx1NTJjN1x1NTNjYlx1NWJhNVx1NWU3'@; put 'ZFx1NjBhMFx1NjE4Mlx1NjNkNlx1NjcwOVx1NjdkYVx1NmU2N1x1NmQ4Y1x1NzMzNlx1NzMzN1x1NzUzMVx1Nzk1MFx1ODhkNVx1OGE5OFx1OTA0YVx1OTA5MVx1OTBmNVx1OTZjNFx1ODc4ZFx1NTkxNVx1NGU4OFx1NGY1OVx1NGUwZVx1OGE4OVx1OGYzZlx1OTgxMFx1NTBhZFx1NWU3Y1x1'@; put 'NTk5Nlx1NWJiOVx1NWViOFx1NjNkYVx1NjNmYVx1NjRjMVx1NjZkY1x1Njk0YVx1NjlkOFx1NmQwYlx1NmViNlx1NzE5NFx1NzUyOFx1N2FhZlx1N2Y4YVx1ODAwMFx1ODQ0OVx1ODRjOVx1ODk4MVx1OGIyMVx1OGUwYVx1OTA2NVx1OTY3ZFx1OTkwYVx1NjE3ZVx1NjI5MVx1NmIzMiJdLFsi'@; put 'OTc4MCIsIlx1NmM4M1x1NmQ3NFx1N2ZjY1x1N2ZmY1x1NmRjMFx1N2Y4NVx1ODdiYVx1ODhmOFx1Njc2NVx1ODNiMVx1OTgzY1x1OTZmN1x1NmQxYlx1N2Q2MVx1ODQzZFx1OTE2YVx1NGU3MVx1NTM3NVx1NWQ1MFx1NmIwNFx1NmZlYlx1ODVjZFx1ODYyZFx1ODlhN1x1NTIyOVx1NTQwZlx1'@; put 'NWM2NVx1Njc0ZVx1NjhhOFx1NzQwNlx1NzQ4M1x1NzVlMlx1ODhjZlx1ODhlMVx1OTFjY1x1OTZlMlx1OTY3OFx1NWY4Ylx1NzM4N1x1N2FjYlx1ODQ0ZVx1NjNhMFx1NzU2NVx1NTI4OVx1NmQ0MVx1NmU5Y1x1NzQwOVx1NzU1OVx1Nzg2Ylx1N2M5Mlx1OTY4Nlx1N2FkY1x1OWY4ZFx1NGZi'@; put 'Nlx1NjE2ZVx1NjVjNVx1ODY1Y1x1NGU4Nlx1NGVhZVx1NTBkYVx1NGUyMVx1NTFjY1x1NWJlZVx1NjU5OVx1Njg4MVx1NmRiY1x1NzMxZlx1NzY0Mlx1NzdhZFx1N2ExY1x1N2NlN1x1ODI2Zlx1OGFkMlx1OTA3Y1x1OTFjZlx1OTY3NVx1OTgxOFx1NTI5Ylx1N2RkMVx1NTAyYlx1NTM5OFx1'@; put 'Njc5N1x1NmRjYlx1NzFkMFx1NzQzM1x1ODFlOFx1OGYyYVx1OTZhM1x1OWM1N1x1OWU5Zlx1NzQ2MFx1NTg0MVx1NmQ5OVx1N2QyZlx1OTg1ZVx1NGVlNFx1NGYzNlx1NGY4Ylx1NTFiN1x1NTJiMVx1NWRiYVx1NjAxY1x1NzNiMlx1NzkzY1x1ODJkM1x1OTIzNFx1OTZiN1x1OTZmNlx1OTcw'@; put 'YVx1OWU5N1x1OWY2Mlx1NjZhNlx1NmI3NFx1NTIxN1x1NTJhM1x1NzBjOFx1ODhjMlx1NWVjOVx1NjA0Ylx1NjE5MFx1NmYyM1x1NzE0OVx1N2MzZVx1N2RmNFx1ODA2ZiJdLFsiOTg0MCIsIlx1ODRlZVx1OTAyM1x1OTMyY1x1NTQ0Mlx1OWI2Zlx1NmFkM1x1NzA4OVx1OGNjMlx1OGRlZlx1'@; put 'OTczMlx1NTJiNFx1NWE0MVx1NWVjYVx1NWYwNFx1NjcxN1x1Njk3Y1x1Njk5NFx1NmQ2YVx1NmYwZlx1NzI2Mlx1NzJmY1x1N2JlZFx1ODAwMVx1ODA3ZVx1ODc0Ylx1OTBjZVx1NTE2ZFx1OWU5M1x1Nzk4NFx1ODA4Ylx1OTMzMlx1OGFkNlx1NTAyZFx1NTQ4Y1x1OGE3MVx1NmI2YVx1OGNj'@; put 'NFx1ODEwN1x1NjBkMVx1NjdhMFx1OWRmMlx1NGU5OVx1NGU5OFx1OWMxMFx1OGE2Ylx1ODVjMVx1ODU2OFx1NjkwMFx1NmU3ZVx1Nzg5N1x1ODE1NSJdLFsiOTg5ZiIsIlx1NWYwY1x1NGUxMFx1NGUxNVx1NGUyYVx1NGUzMVx1NGUzNlx1NGUzY1x1NGUzZlx1NGU0Mlx1NGU1Nlx1NGU1OFx1'@; put 'NGU4Mlx1NGU4NVx1OGM2Ylx1NGU4YVx1ODIxMlx1NWYwZFx1NGU4ZVx1NGU5ZVx1NGU5Zlx1NGVhMFx1NGVhMlx1NGViMFx1NGViM1x1NGViNlx1NGVjZVx1NGVjZFx1NGVjNFx1NGVjNlx1NGVjMlx1NGVkN1x1NGVkZVx1NGVlZFx1NGVkZlx1NGVmN1x1NGYwOVx1NGY1YVx1NGYzMFx1NGY1'@; put 'Ylx1NGY1ZFx1NGY1N1x1NGY0N1x1NGY3Nlx1NGY4OFx1NGY4Zlx1NGY5OFx1NGY3Ylx1NGY2OVx1NGY3MFx1NGY5MVx1NGY2Zlx1NGY4Nlx1NGY5Nlx1NTExOFx1NGZkNFx1NGZkZlx1NGZjZVx1NGZkOFx1NGZkYlx1NGZkMVx1NGZkYVx1NGZkMFx1NGZlNFx1NGZlNVx1NTAxYVx1NTAyOFx1'@; put 'NTAxNFx1NTAyYVx1NTAyNVx1NTAwNVx1NGYxY1x1NGZmNlx1NTAyMVx1NTAyOVx1NTAyY1x1NGZmZVx1NGZlZlx1NTAxMVx1NTAwNlx1NTA0M1x1NTA0N1x1NjcwM1x1NTA1NVx1NTA1MFx1NTA0OFx1NTA1YVx1NTA1Nlx1NTA2Y1x1NTA3OFx1NTA4MFx1NTA5YVx1NTA4NVx1NTBiNFx1NTBi'@; put 'MiJdLFsiOTk0MCIsIlx1NTBjOVx1NTBjYVx1NTBiM1x1NTBjMlx1NTBkNlx1NTBkZVx1NTBlNVx1NTBlZFx1NTBlM1x1NTBlZVx1NTBmOVx1NTBmNVx1NTEwOVx1NTEwMVx1NTEwMlx1NTExNlx1NTExNVx1NTExNFx1NTExYVx1NTEyMVx1NTEzYVx1NTEzN1x1NTEzY1x1NTEzYlx1NTEzZlx1'@; put 'NTE0MFx1NTE1Mlx1NTE0Y1x1NTE1NFx1NTE2Mlx1N2FmOFx1NTE2OVx1NTE2YVx1NTE2ZVx1NTE4MFx1NTE4Mlx1NTZkOFx1NTE4Y1x1NTE4OVx1NTE4Zlx1NTE5MVx1NTE5M1x1NTE5NVx1NTE5Nlx1NTFhNFx1NTFhNlx1NTFhMlx1NTFhOVx1NTFhYVx1NTFhYlx1NTFiM1x1NTFiMVx1NTFi'@; put 'Mlx1NTFiMFx1NTFiNVx1NTFiZFx1NTFjNVx1NTFjOVx1NTFkYlx1NTFlMFx1ODY1NVx1NTFlOVx1NTFlZCJdLFsiOTk4MCIsIlx1NTFmMFx1NTFmNVx1NTFmZVx1NTIwNFx1NTIwYlx1NTIxNFx1NTIwZVx1NTIyN1x1NTIyYVx1NTIyZVx1NTIzM1x1NTIzOVx1NTI0Zlx1NTI0NFx1NTI0Ylx1'@; put 'NTI0Y1x1NTI1ZVx1NTI1NFx1NTI2YVx1NTI3NFx1NTI2OVx1NTI3M1x1NTI3Zlx1NTI3ZFx1NTI4ZFx1NTI5NFx1NTI5Mlx1NTI3MVx1NTI4OFx1NTI5MVx1OGZhOFx1OGZhN1x1NTJhY1x1NTJhZFx1NTJiY1x1NTJiNVx1NTJjMVx1NTJjZFx1NTJkN1x1NTJkZVx1NTJlM1x1NTJlNlx1OThl'@; put 'ZFx1NTJlMFx1NTJmM1x1NTJmNVx1NTJmOFx1NTJmOVx1NTMwNlx1NTMwOFx1NzUzOFx1NTMwZFx1NTMxMFx1NTMwZlx1NTMxNVx1NTMxYVx1NTMyM1x1NTMyZlx1NTMzMVx1NTMzM1x1NTMzOFx1NTM0MFx1NTM0Nlx1NTM0NVx1NGUxN1x1NTM0OVx1NTM0ZFx1NTFkNlx1NTM1ZVx1NTM2OVx1'@; put 'NTM2ZVx1NTkxOFx1NTM3Ylx1NTM3N1x1NTM4Mlx1NTM5Nlx1NTNhMFx1NTNhNlx1NTNhNVx1NTNhZVx1NTNiMFx1NTNiNlx1NTNjM1x1N2MxMlx1OTZkOVx1NTNkZlx1NjZmY1x1NzFlZVx1NTNlZVx1NTNlOFx1NTNlZFx1NTNmYVx1NTQwMVx1NTQzZFx1NTQ0MFx1NTQyY1x1NTQyZFx1NTQz'@; put 'Y1x1NTQyZVx1NTQzNlx1NTQyOVx1NTQxZFx1NTQ0ZVx1NTQ4Zlx1NTQ3NVx1NTQ4ZVx1NTQ1Zlx1NTQ3MVx1NTQ3N1x1NTQ3MFx1NTQ5Mlx1NTQ3Ylx1NTQ4MFx1NTQ3Nlx1NTQ4NFx1NTQ5MFx1NTQ4Nlx1NTRjN1x1NTRhMlx1NTRiOFx1NTRhNVx1NTRhY1x1NTRjNFx1NTRjOFx1NTRhOCJd'@; put 'LFsiOWE0MCIsIlx1NTRhYlx1NTRjMlx1NTRhNFx1NTRiZVx1NTRiY1x1NTRkOFx1NTRlNVx1NTRlNlx1NTUwZlx1NTUxNFx1NTRmZFx1NTRlZVx1NTRlZFx1NTRmYVx1NTRlMlx1NTUzOVx1NTU0MFx1NTU2M1x1NTU0Y1x1NTUyZVx1NTU1Y1x1NTU0NVx1NTU1Nlx1NTU1N1x1NTUzOFx1NTUz'@; put 'M1x1NTU1ZFx1NTU5OVx1NTU4MFx1NTRhZlx1NTU4YVx1NTU5Zlx1NTU3Ylx1NTU3ZVx1NTU5OFx1NTU5ZVx1NTVhZVx1NTU3Y1x1NTU4M1x1NTVhOVx1NTU4N1x1NTVhOFx1NTVkYVx1NTVjNVx1NTVkZlx1NTVjNFx1NTVkY1x1NTVlNFx1NTVkNFx1NTYxNFx1NTVmN1x1NTYxNlx1NTVmZVx1'@; put 'NTVmZFx1NTYxYlx1NTVmOVx1NTY0ZVx1NTY1MFx1NzFkZlx1NTYzNFx1NTYzNlx1NTYzMlx1NTYzOCJdLFsiOWE4MCIsIlx1NTY2Ylx1NTY2NFx1NTYyZlx1NTY2Y1x1NTY2YVx1NTY4Nlx1NTY4MFx1NTY4YVx1NTZhMFx1NTY5NFx1NTY4Zlx1NTZhNVx1NTZhZVx1NTZiNlx1NTZiNFx1NTZj'@; put 'Mlx1NTZiY1x1NTZjMVx1NTZjM1x1NTZjMFx1NTZjOFx1NTZjZVx1NTZkMVx1NTZkM1x1NTZkN1x1NTZlZVx1NTZmOVx1NTcwMFx1NTZmZlx1NTcwNFx1NTcwOVx1NTcwOFx1NTcwYlx1NTcwZFx1NTcxM1x1NTcxOFx1NTcxNlx1NTVjN1x1NTcxY1x1NTcyNlx1NTczN1x1NTczOFx1NTc0ZVx1'@; put 'NTczYlx1NTc0MFx1NTc0Zlx1NTc2OVx1NTdjMFx1NTc4OFx1NTc2MVx1NTc3Zlx1NTc4OVx1NTc5M1x1NTdhMFx1NTdiM1x1NTdhNFx1NTdhYVx1NTdiMFx1NTdjM1x1NTdjNlx1NTdkNFx1NTdkMlx1NTdkM1x1NTgwYVx1NTdkNlx1NTdlM1x1NTgwYlx1NTgxOVx1NTgxZFx1NTg3Mlx1NTgy'@; put 'MVx1NTg2Mlx1NTg0Ylx1NTg3MFx1NmJjMFx1NTg1Mlx1NTgzZFx1NTg3OVx1NTg4NVx1NThiOVx1NTg5Zlx1NThhYlx1NThiYVx1NThkZVx1NThiYlx1NThiOFx1NThhZVx1NThjNVx1NThkM1x1NThkMVx1NThkN1x1NThkOVx1NThkOFx1NThlNVx1NThkY1x1NThlNFx1NThkZlx1NThlZlx1'@; put 'NThmYVx1NThmOVx1NThmYlx1NThmY1x1NThmZFx1NTkwMlx1NTkwYVx1NTkxMFx1NTkxYlx1NjhhNlx1NTkyNVx1NTkyY1x1NTkyZFx1NTkzMlx1NTkzOFx1NTkzZVx1N2FkMlx1NTk1NVx1NTk1MFx1NTk0ZVx1NTk1YVx1NTk1OFx1NTk2Mlx1NTk2MFx1NTk2N1x1NTk2Y1x1NTk2OSJdLFsi'@; put 'OWI0MCIsIlx1NTk3OFx1NTk4MVx1NTk5ZFx1NGY1ZVx1NGZhYlx1NTlhM1x1NTliMlx1NTljNlx1NTllOFx1NTlkY1x1NTk4ZFx1NTlkOVx1NTlkYVx1NWEyNVx1NWExZlx1NWExMVx1NWExY1x1NWEwOVx1NWExYVx1NWE0MFx1NWE2Y1x1NWE0OVx1NWEzNVx1NWEzNlx1NWE2Mlx1NWE2YVx1'@; put 'NWE5YVx1NWFiY1x1NWFiZVx1NWFjYlx1NWFjMlx1NWFiZFx1NWFlM1x1NWFkN1x1NWFlNlx1NWFlOVx1NWFkNlx1NWFmYVx1NWFmYlx1NWIwY1x1NWIwYlx1NWIxNlx1NWIzMlx1NWFkMFx1NWIyYVx1NWIzNlx1NWIzZVx1NWI0M1x1NWI0NVx1NWI0MFx1NWI1MVx1NWI1NVx1NWI1YVx1NWI1'@; put 'Ylx1NWI2NVx1NWI2OVx1NWI3MFx1NWI3M1x1NWI3NVx1NWI3OFx1NjU4OFx1NWI3YVx1NWI4MCJdLFsiOWI4MCIsIlx1NWI4M1x1NWJhNlx1NWJiOFx1NWJjM1x1NWJjN1x1NWJjOVx1NWJkNFx1NWJkMFx1NWJlNFx1NWJlNlx1NWJlMlx1NWJkZVx1NWJlNVx1NWJlYlx1NWJmMFx1NWJmNlx1'@; put 'NWJmM1x1NWMwNVx1NWMwN1x1NWMwOFx1NWMwZFx1NWMxM1x1NWMyMFx1NWMyMlx1NWMyOFx1NWMzOFx1NWMzOVx1NWM0MVx1NWM0Nlx1NWM0ZVx1NWM1M1x1NWM1MFx1NWM0Zlx1NWI3MVx1NWM2Y1x1NWM2ZVx1NGU2Mlx1NWM3Nlx1NWM3OVx1NWM4Y1x1NWM5MVx1NWM5NFx1NTk5Ylx1NWNh'@; put 'Ylx1NWNiYlx1NWNiNlx1NWNiY1x1NWNiN1x1NWNjNVx1NWNiZVx1NWNjN1x1NWNkOVx1NWNlOVx1NWNmZFx1NWNmYVx1NWNlZFx1NWQ4Y1x1NWNlYVx1NWQwYlx1NWQxNVx1NWQxN1x1NWQ1Y1x1NWQxZlx1NWQxYlx1NWQxMVx1NWQxNFx1NWQyMlx1NWQxYVx1NWQxOVx1NWQxOFx1NWQ0Y1x1'@; put 'NWQ1Mlx1NWQ0ZVx1NWQ0Ylx1NWQ2Y1x1NWQ3M1x1NWQ3Nlx1NWQ4N1x1NWQ4NFx1NWQ4Mlx1NWRhMlx1NWQ5ZFx1NWRhY1x1NWRhZVx1NWRiZFx1NWQ5MFx1NWRiN1x1NWRiY1x1NWRjOVx1NWRjZFx1NWRkM1x1NWRkMlx1NWRkNlx1NWRkYlx1NWRlYlx1NWRmMlx1NWRmNVx1NWUwYlx1NWUx'@; put 'YVx1NWUxOVx1NWUxMVx1NWUxYlx1NWUzNlx1NWUzN1x1NWU0NFx1NWU0M1x1NWU0MFx1NWU0ZVx1NWU1N1x1NWU1NFx1NWU1Zlx1NWU2Mlx1NWU2NFx1NWU0N1x1NWU3NVx1NWU3Nlx1NWU3YVx1OWViY1x1NWU3Zlx1NWVhMFx1NWVjMVx1NWVjMlx1NWVjOFx1NWVkMFx1NWVjZiJdLFsiOWM0'@; put 'MCIsIlx1NWVkNlx1NWVlM1x1NWVkZFx1NWVkYVx1NWVkYlx1NWVlMlx1NWVlMVx1NWVlOFx1NWVlOVx1NWVlY1x1NWVmMVx1NWVmM1x1NWVmMFx1NWVmNFx1NWVmOFx1NWVmZVx1NWYwM1x1NWYwOVx1NWY1ZFx1NWY1Y1x1NWYwYlx1NWYxMVx1NWYxNlx1NWYyOVx1NWYyZFx1NWYzOFx1NWY0'@; put 'MVx1NWY0OFx1NWY0Y1x1NWY0ZVx1NWYyZlx1NWY1MVx1NWY1Nlx1NWY1N1x1NWY1OVx1NWY2MVx1NWY2ZFx1NWY3M1x1NWY3N1x1NWY4M1x1NWY4Mlx1NWY3Zlx1NWY4YVx1NWY4OFx1NWY5MVx1NWY4N1x1NWY5ZVx1NWY5OVx1NWY5OFx1NWZhMFx1NWZhOFx1NWZhZFx1NWZiY1x1NWZkNlx1'@; put 'NWZmYlx1NWZlNFx1NWZmOFx1NWZmMVx1NWZkZFx1NjBiM1x1NWZmZlx1NjAyMVx1NjA2MCJdLFsiOWM4MCIsIlx1NjAxOVx1NjAxMFx1NjAyOVx1NjAwZVx1NjAzMVx1NjAxYlx1NjAxNVx1NjAyYlx1NjAyNlx1NjAwZlx1NjAzYVx1NjA1YVx1NjA0MVx1NjA2YVx1NjA3N1x1NjA1Zlx1NjA0'@; put 'YVx1NjA0Nlx1NjA0ZFx1NjA2M1x1NjA0M1x1NjA2NFx1NjA0Mlx1NjA2Y1x1NjA2Ylx1NjA1OVx1NjA4MVx1NjA4ZFx1NjBlN1x1NjA4M1x1NjA5YVx1NjA4NFx1NjA5Ylx1NjA5Nlx1NjA5N1x1NjA5Mlx1NjBhN1x1NjA4Ylx1NjBlMVx1NjBiOFx1NjBlMFx1NjBkM1x1NjBiNFx1NWZmMFx1'@; put 'NjBiZFx1NjBjNlx1NjBiNVx1NjBkOFx1NjE0ZFx1NjExNVx1NjEwNlx1NjBmNlx1NjBmN1x1NjEwMFx1NjBmNFx1NjBmYVx1NjEwM1x1NjEyMVx1NjBmYlx1NjBmMVx1NjEwZFx1NjEwZVx1NjE0N1x1NjEzZVx1NjEyOFx1NjEyN1x1NjE0YVx1NjEzZlx1NjEzY1x1NjEyY1x1NjEzNFx1NjEz'@; put 'ZFx1NjE0Mlx1NjE0NFx1NjE3M1x1NjE3N1x1NjE1OFx1NjE1OVx1NjE1YVx1NjE2Ylx1NjE3NFx1NjE2Zlx1NjE2NVx1NjE3MVx1NjE1Zlx1NjE1ZFx1NjE1M1x1NjE3NVx1NjE5OVx1NjE5Nlx1NjE4N1x1NjFhY1x1NjE5NFx1NjE5YVx1NjE4YVx1NjE5MVx1NjFhYlx1NjFhZVx1NjFjY1x1'@; put 'NjFjYVx1NjFjOVx1NjFmN1x1NjFjOFx1NjFjM1x1NjFjNlx1NjFiYVx1NjFjYlx1N2Y3OVx1NjFjZFx1NjFlNlx1NjFlM1x1NjFmNlx1NjFmYVx1NjFmNFx1NjFmZlx1NjFmZFx1NjFmY1x1NjFmZVx1NjIwMFx1NjIwOFx1NjIwOVx1NjIwZFx1NjIwY1x1NjIxNFx1NjIxYiJdLFsiOWQ0MCIs'@; put 'Ilx1NjIxZVx1NjIyMVx1NjIyYVx1NjIyZVx1NjIzMFx1NjIzMlx1NjIzM1x1NjI0MVx1NjI0ZVx1NjI1ZVx1NjI2M1x1NjI1Ylx1NjI2MFx1NjI2OFx1NjI3Y1x1NjI4Mlx1NjI4OVx1NjI3ZVx1NjI5Mlx1NjI5M1x1NjI5Nlx1NjJkNFx1NjI4M1x1NjI5NFx1NjJkN1x1NjJkMVx1NjJiYlx1'@; put 'NjJjZlx1NjJmZlx1NjJjNlx1NjRkNFx1NjJjOFx1NjJkY1x1NjJjY1x1NjJjYVx1NjJjMlx1NjJjN1x1NjI5Ylx1NjJjOVx1NjMwY1x1NjJlZVx1NjJmMVx1NjMyN1x1NjMwMlx1NjMwOFx1NjJlZlx1NjJmNVx1NjM1MFx1NjMzZVx1NjM0ZFx1NjQxY1x1NjM0Zlx1NjM5Nlx1NjM4ZVx1NjM4'@; put 'MFx1NjNhYlx1NjM3Nlx1NjNhM1x1NjM4Zlx1NjM4OVx1NjM5Zlx1NjNiNVx1NjM2YiJdLFsiOWQ4MCIsIlx1NjM2OVx1NjNiZVx1NjNlOVx1NjNjMFx1NjNjNlx1NjNlM1x1NjNjOVx1NjNkMlx1NjNmNlx1NjNjNFx1NjQxNlx1NjQzNFx1NjQwNlx1NjQxM1x1NjQyNlx1NjQzNlx1NjUxZFx1'@; put 'NjQxN1x1NjQyOFx1NjQwZlx1NjQ2N1x1NjQ2Zlx1NjQ3Nlx1NjQ0ZVx1NjUyYVx1NjQ5NVx1NjQ5M1x1NjRhNVx1NjRhOVx1NjQ4OFx1NjRiY1x1NjRkYVx1NjRkMlx1NjRjNVx1NjRjN1x1NjRiYlx1NjRkOFx1NjRjMlx1NjRmMVx1NjRlN1x1ODIwOVx1NjRlMFx1NjRlMVx1NjJhY1x1NjRl'@; put 'M1x1NjRlZlx1NjUyY1x1NjRmNlx1NjRmNFx1NjRmMlx1NjRmYVx1NjUwMFx1NjRmZFx1NjUxOFx1NjUxY1x1NjUwNVx1NjUyNFx1NjUyM1x1NjUyYlx1NjUzNFx1NjUzNVx1NjUzN1x1NjUzNlx1NjUzOFx1NzU0Ylx1NjU0OFx1NjU1Nlx1NjU1NVx1NjU0ZFx1NjU1OFx1NjU1ZVx1NjU1ZFx1'@; put 'NjU3Mlx1NjU3OFx1NjU4Mlx1NjU4M1x1OGI4YVx1NjU5Ylx1NjU5Zlx1NjVhYlx1NjViN1x1NjVjM1x1NjVjNlx1NjVjMVx1NjVjNFx1NjVjY1x1NjVkMlx1NjVkYlx1NjVkOVx1NjVlMFx1NjVlMVx1NjVmMVx1Njc3Mlx1NjYwYVx1NjYwM1x1NjVmYlx1Njc3M1x1NjYzNVx1NjYzNlx1NjYz'@; put 'NFx1NjYxY1x1NjY0Zlx1NjY0NFx1NjY0OVx1NjY0MVx1NjY1ZVx1NjY1ZFx1NjY2NFx1NjY2N1x1NjY2OFx1NjY1Zlx1NjY2Mlx1NjY3MFx1NjY4M1x1NjY4OFx1NjY4ZVx1NjY4OVx1NjY4NFx1NjY5OFx1NjY5ZFx1NjZjMVx1NjZiOVx1NjZjOVx1NjZiZVx1NjZiYyJdLFsiOWU0MCIsIlx1'@; put 'NjZjNFx1NjZiOFx1NjZkNlx1NjZkYVx1NjZlMFx1NjYzZlx1NjZlNlx1NjZlOVx1NjZmMFx1NjZmNVx1NjZmN1x1NjcwZlx1NjcxNlx1NjcxZVx1NjcyNlx1NjcyN1x1OTczOFx1NjcyZVx1NjczZlx1NjczNlx1Njc0MVx1NjczOFx1NjczN1x1Njc0Nlx1Njc1ZVx1Njc2MFx1Njc1OVx1Njc2'@; put 'M1x1Njc2NFx1Njc4OVx1Njc3MFx1NjdhOVx1Njc3Y1x1Njc2YVx1Njc4Y1x1Njc4Ylx1NjdhNlx1NjdhMVx1Njc4NVx1NjdiN1x1NjdlZlx1NjdiNFx1NjdlY1x1NjdiM1x1NjdlOVx1NjdiOFx1NjdlNFx1NjdkZVx1NjdkZFx1NjdlMlx1NjdlZVx1NjdiOVx1NjdjZVx1NjdjNlx1NjdlN1x1'@; put 'NmE5Y1x1NjgxZVx1Njg0Nlx1NjgyOVx1Njg0MFx1Njg0ZFx1NjgzMlx1Njg0ZSJdLFsiOWU4MCIsIlx1NjhiM1x1NjgyYlx1Njg1OVx1Njg2M1x1Njg3N1x1Njg3Zlx1Njg5Zlx1Njg4Zlx1NjhhZFx1Njg5NFx1Njg5ZFx1Njg5Ylx1Njg4M1x1NmFhZVx1NjhiOVx1Njg3NFx1NjhiNVx1Njhh'@; put 'MFx1NjhiYVx1NjkwZlx1Njg4ZFx1Njg3ZVx1NjkwMVx1NjhjYVx1NjkwOFx1NjhkOFx1NjkyMlx1NjkyNlx1NjhlMVx1NjkwY1x1NjhjZFx1NjhkNFx1NjhlN1x1NjhkNVx1NjkzNlx1NjkxMlx1NjkwNFx1NjhkN1x1NjhlM1x1NjkyNVx1NjhmOVx1NjhlMFx1NjhlZlx1NjkyOFx1NjkyYVx1'@; put 'NjkxYVx1NjkyM1x1NjkyMVx1NjhjNlx1Njk3OVx1Njk3N1x1Njk1Y1x1Njk3OFx1Njk2Ylx1Njk1NFx1Njk3ZVx1Njk2ZVx1NjkzOVx1Njk3NFx1NjkzZFx1Njk1OVx1NjkzMFx1Njk2MVx1Njk1ZVx1Njk1ZFx1Njk4MVx1Njk2YVx1NjliMlx1NjlhZVx1NjlkMFx1NjliZlx1NjljMVx1Njlk'@; put 'M1x1NjliZVx1NjljZVx1NWJlOFx1NjljYVx1NjlkZFx1NjliYlx1NjljM1x1NjlhN1x1NmEyZVx1Njk5MVx1NjlhMFx1Njk5Y1x1Njk5NVx1NjliNFx1NjlkZVx1NjllOFx1NmEwMlx1NmExYlx1NjlmZlx1NmIwYVx1NjlmOVx1NjlmMlx1NjllN1x1NmEwNVx1NjliMVx1NmExZVx1NjllZFx1'@; put 'NmExNFx1NjllYlx1NmEwYVx1NmExMlx1NmFjMVx1NmEyM1x1NmExM1x1NmE0NFx1NmEwY1x1NmE3Mlx1NmEzNlx1NmE3OFx1NmE0N1x1NmE2Mlx1NmE1OVx1NmE2Nlx1NmE0OFx1NmEzOFx1NmEyMlx1NmE5MFx1NmE4ZFx1NmFhMFx1NmE4NFx1NmFhMlx1NmFhMyJdLFsiOWY0MCIsIlx1NmE5'@; put 'N1x1ODYxN1x1NmFiYlx1NmFjM1x1NmFjMlx1NmFiOFx1NmFiM1x1NmFhY1x1NmFkZVx1NmFkMVx1NmFkZlx1NmFhYVx1NmFkYVx1NmFlYVx1NmFmYlx1NmIwNVx1ODYxNlx1NmFmYVx1NmIxMlx1NmIxNlx1OWIzMVx1NmIxZlx1NmIzOFx1NmIzN1x1NzZkY1x1NmIzOVx1OThlZVx1NmI0N1x1'@; put 'NmI0M1x1NmI0OVx1NmI1MFx1NmI1OVx1NmI1NFx1NmI1Ylx1NmI1Zlx1NmI2MVx1NmI3OFx1NmI3OVx1NmI3Zlx1NmI4MFx1NmI4NFx1NmI4M1x1NmI4ZFx1NmI5OFx1NmI5NVx1NmI5ZVx1NmJhNFx1NmJhYVx1NmJhYlx1NmJhZlx1NmJiMlx1NmJiMVx1NmJiM1x1NmJiN1x1NmJiY1x1NmJj'@; put 'Nlx1NmJjYlx1NmJkM1x1NmJkZlx1NmJlY1x1NmJlYlx1NmJmM1x1NmJlZiJdLFsiOWY4MCIsIlx1OWViZVx1NmMwOFx1NmMxM1x1NmMxNFx1NmMxYlx1NmMyNFx1NmMyM1x1NmM1ZVx1NmM1NVx1NmM2Mlx1NmM2YVx1NmM4Mlx1NmM4ZFx1NmM5YVx1NmM4MVx1NmM5Ylx1NmM3ZVx1NmM2OFx1'@; put 'NmM3M1x1NmM5Mlx1NmM5MFx1NmNjNFx1NmNmMVx1NmNkM1x1NmNiZFx1NmNkN1x1NmNjNVx1NmNkZFx1NmNhZVx1NmNiMVx1NmNiZVx1NmNiYVx1NmNkYlx1NmNlZlx1NmNkOVx1NmNlYVx1NmQxZlx1ODg0ZFx1NmQzNlx1NmQyYlx1NmQzZFx1NmQzOFx1NmQxOVx1NmQzNVx1NmQzM1x1NmQx'@; put 'Mlx1NmQwY1x1NmQ2M1x1NmQ5M1x1NmQ2NFx1NmQ1YVx1NmQ3OVx1NmQ1OVx1NmQ4ZVx1NmQ5NVx1NmZlNFx1NmQ4NVx1NmRmOVx1NmUxNVx1NmUwYVx1NmRiNVx1NmRjN1x1NmRlNlx1NmRiOFx1NmRjNlx1NmRlY1x1NmRkZVx1NmRjY1x1NmRlOFx1NmRkMlx1NmRjNVx1NmRmYVx1NmRkOVx1'@; put 'NmRlNFx1NmRkNVx1NmRlYVx1NmRlZVx1NmUyZFx1NmU2ZVx1NmUyZVx1NmUxOVx1NmU3Mlx1NmU1Zlx1NmUzZVx1NmUyM1x1NmU2Ylx1NmUyYlx1NmU3Nlx1NmU0ZFx1NmUxZlx1NmU0M1x1NmUzYVx1NmU0ZVx1NmUyNFx1NmVmZlx1NmUxZFx1NmUzOFx1NmU4Mlx1NmVhYVx1NmU5OFx1NmVj'@; put 'OVx1NmViN1x1NmVkM1x1NmViZFx1NmVhZlx1NmVjNFx1NmViMlx1NmVkNFx1NmVkNVx1NmU4Zlx1NmVhNVx1NmVjMlx1NmU5Zlx1NmY0MVx1NmYxMVx1NzA0Y1x1NmVlY1x1NmVmOFx1NmVmZVx1NmYzZlx1NmVmMlx1NmYzMVx1NmVlZlx1NmYzMlx1NmVjYyJdLFsiZTA0MCIsIlx1NmYzZVx1'@; put 'NmYxM1x1NmVmN1x1NmY4Nlx1NmY3YVx1NmY3OFx1NmY4MVx1NmY4MFx1NmY2Zlx1NmY1Ylx1NmZmM1x1NmY2ZFx1NmY4Mlx1NmY3Y1x1NmY1OFx1NmY4ZVx1NmY5MVx1NmZjMlx1NmY2Nlx1NmZiM1x1NmZhM1x1NmZhMVx1NmZhNFx1NmZiOVx1NmZjNlx1NmZhYVx1NmZkZlx1NmZkNVx1NmZl'@; put 'Y1x1NmZkNFx1NmZkOFx1NmZmMVx1NmZlZVx1NmZkYlx1NzAwOVx1NzAwYlx1NmZmYVx1NzAxMVx1NzAwMVx1NzAwZlx1NmZmZVx1NzAxYlx1NzAxYVx1NmY3NFx1NzAxZFx1NzAxOFx1NzAxZlx1NzAzMFx1NzAzZVx1NzAzMlx1NzA1MVx1NzA2M1x1NzA5OVx1NzA5Mlx1NzBhZlx1NzBmMVx1'@; put 'NzBhY1x1NzBiOFx1NzBiM1x1NzBhZVx1NzBkZlx1NzBjYlx1NzBkZCJdLFsiZTA4MCIsIlx1NzBkOVx1NzEwOVx1NzBmZFx1NzExY1x1NzExOVx1NzE2NVx1NzE1NVx1NzE4OFx1NzE2Nlx1NzE2Mlx1NzE0Y1x1NzE1Nlx1NzE2Y1x1NzE4Zlx1NzFmYlx1NzE4NFx1NzE5NVx1NzFhOFx1NzFh'@; put 'Y1x1NzFkN1x1NzFiOVx1NzFiZVx1NzFkMlx1NzFjOVx1NzFkNFx1NzFjZVx1NzFlMFx1NzFlY1x1NzFlN1x1NzFmNVx1NzFmY1x1NzFmOVx1NzFmZlx1NzIwZFx1NzIxMFx1NzIxYlx1NzIyOFx1NzIyZFx1NzIyY1x1NzIzMFx1NzIzMlx1NzIzYlx1NzIzY1x1NzIzZlx1NzI0MFx1NzI0Nlx1'@; put 'NzI0Ylx1NzI1OFx1NzI3NFx1NzI3ZVx1NzI4Mlx1NzI4MVx1NzI4N1x1NzI5Mlx1NzI5Nlx1NzJhMlx1NzJhN1x1NzJiOVx1NzJiMlx1NzJjM1x1NzJjNlx1NzJjNFx1NzJjZVx1NzJkMlx1NzJlMlx1NzJlMFx1NzJlMVx1NzJmOVx1NzJmN1x1NTAwZlx1NzMxN1x1NzMwYVx1NzMxY1x1NzMx'@; put 'Nlx1NzMxZFx1NzMzNFx1NzMyZlx1NzMyOVx1NzMyNVx1NzMzZVx1NzM0ZVx1NzM0Zlx1OWVkOFx1NzM1N1x1NzM2YVx1NzM2OFx1NzM3MFx1NzM3OFx1NzM3NVx1NzM3Ylx1NzM3YVx1NzNjOFx1NzNiM1x1NzNjZVx1NzNiYlx1NzNjMFx1NzNlNVx1NzNlZVx1NzNkZVx1NzRhMlx1NzQwNVx1'@; put 'NzQ2Zlx1NzQyNVx1NzNmOFx1NzQzMlx1NzQzYVx1NzQ1NVx1NzQzZlx1NzQ1Zlx1NzQ1OVx1NzQ0MVx1NzQ1Y1x1NzQ2OVx1NzQ3MFx1NzQ2M1x1NzQ2YVx1NzQ3Nlx1NzQ3ZVx1NzQ4Ylx1NzQ5ZVx1NzRhN1x1NzRjYVx1NzRjZlx1NzRkNFx1NzNmMSJdLFsiZTE0MCIsIlx1NzRlMFx1NzRl'@; put 'M1x1NzRlN1x1NzRlOVx1NzRlZVx1NzRmMlx1NzRmMFx1NzRmMVx1NzRmOFx1NzRmN1x1NzUwNFx1NzUwM1x1NzUwNVx1NzUwY1x1NzUwZVx1NzUwZFx1NzUxNVx1NzUxM1x1NzUxZVx1NzUyNlx1NzUyY1x1NzUzY1x1NzU0NFx1NzU0ZFx1NzU0YVx1NzU0OVx1NzU1Ylx1NzU0Nlx1NzU1YVx1'@; put 'NzU2OVx1NzU2NFx1NzU2N1x1NzU2Ylx1NzU2ZFx1NzU3OFx1NzU3Nlx1NzU4Nlx1NzU4N1x1NzU3NFx1NzU4YVx1NzU4OVx1NzU4Mlx1NzU5NFx1NzU5YVx1NzU5ZFx1NzVhNVx1NzVhM1x1NzVjMlx1NzViM1x1NzVjM1x1NzViNVx1NzViZFx1NzViOFx1NzViY1x1NzViMVx1NzVjZFx1NzVj'@; put 'YVx1NzVkMlx1NzVkOVx1NzVlM1x1NzVkZVx1NzVmZVx1NzVmZiJdLFsiZTE4MCIsIlx1NzVmY1x1NzYwMVx1NzVmMFx1NzVmYVx1NzVmMlx1NzVmM1x1NzYwYlx1NzYwZFx1NzYwOVx1NzYxZlx1NzYyN1x1NzYyMFx1NzYyMVx1NzYyMlx1NzYyNFx1NzYzNFx1NzYzMFx1NzYzYlx1NzY0N1x1'@; put 'NzY0OFx1NzY0Nlx1NzY1Y1x1NzY1OFx1NzY2MVx1NzY2Mlx1NzY2OFx1NzY2OVx1NzY2YVx1NzY2N1x1NzY2Y1x1NzY3MFx1NzY3Mlx1NzY3Nlx1NzY3OFx1NzY3Y1x1NzY4MFx1NzY4M1x1NzY4OFx1NzY4Ylx1NzY4ZVx1NzY5Nlx1NzY5M1x1NzY5OVx1NzY5YVx1NzZiMFx1NzZiNFx1NzZi'@; put 'OFx1NzZiOVx1NzZiYVx1NzZjMlx1NzZjZFx1NzZkNlx1NzZkMlx1NzZkZVx1NzZlMVx1NzZlNVx1NzZlN1x1NzZlYVx1ODYyZlx1NzZmYlx1NzcwOFx1NzcwN1x1NzcwNFx1NzcyOVx1NzcyNFx1NzcxZVx1NzcyNVx1NzcyNlx1NzcxYlx1NzczN1x1NzczOFx1Nzc0N1x1Nzc1YVx1Nzc2OFx1'@; put 'Nzc2Ylx1Nzc1Ylx1Nzc2NVx1Nzc3Zlx1Nzc3ZVx1Nzc3OVx1Nzc4ZVx1Nzc4Ylx1Nzc5MVx1NzdhMFx1Nzc5ZVx1NzdiMFx1NzdiNlx1NzdiOVx1NzdiZlx1NzdiY1x1NzdiZFx1NzdiYlx1NzdjN1x1NzdjZFx1NzdkN1x1NzdkYVx1NzdkY1x1NzdlM1x1NzdlZVx1NzdmY1x1NzgwY1x1Nzgx'@; put 'Mlx1NzkyNlx1NzgyMFx1NzkyYVx1Nzg0NVx1Nzg4ZVx1Nzg3NFx1Nzg4Nlx1Nzg3Y1x1Nzg5YVx1Nzg4Y1x1NzhhM1x1NzhiNVx1NzhhYVx1NzhhZlx1NzhkMVx1NzhjNlx1NzhjYlx1NzhkNFx1NzhiZVx1NzhiY1x1NzhjNVx1NzhjYVx1NzhlYyJdLFsiZTI0MCIsIlx1NzhlN1x1NzhkYVx1'@; put 'NzhmZFx1NzhmNFx1NzkwN1x1NzkxMlx1NzkxMVx1NzkxOVx1NzkyY1x1NzkyYlx1Nzk0MFx1Nzk2MFx1Nzk1N1x1Nzk1Zlx1Nzk1YVx1Nzk1NVx1Nzk1M1x1Nzk3YVx1Nzk3Zlx1Nzk4YVx1Nzk5ZFx1NzlhN1x1OWY0Ylx1NzlhYVx1NzlhZVx1NzliM1x1NzliOVx1NzliYVx1NzljOVx1Nzlk'@; put 'NVx1NzllN1x1NzllY1x1NzllMVx1NzllM1x1N2EwOFx1N2EwZFx1N2ExOFx1N2ExOVx1N2EyMFx1N2ExZlx1Nzk4MFx1N2EzMVx1N2EzYlx1N2EzZVx1N2EzN1x1N2E0M1x1N2E1N1x1N2E0OVx1N2E2MVx1N2E2Mlx1N2E2OVx1OWY5ZFx1N2E3MFx1N2E3OVx1N2E3ZFx1N2E4OFx1N2E5N1x1'@; put 'N2E5NVx1N2E5OFx1N2E5Nlx1N2FhOVx1N2FjOFx1N2FiMCJdLFsiZTI4MCIsIlx1N2FiNlx1N2FjNVx1N2FjNFx1N2FiZlx1OTA4M1x1N2FjN1x1N2FjYVx1N2FjZFx1N2FjZlx1N2FkNVx1N2FkM1x1N2FkOVx1N2FkYVx1N2FkZFx1N2FlMVx1N2FlMlx1N2FlNlx1N2FlZFx1N2FmMFx1N2Iw'@; put 'Mlx1N2IwZlx1N2IwYVx1N2IwNlx1N2IzM1x1N2IxOFx1N2IxOVx1N2IxZVx1N2IzNVx1N2IyOFx1N2IzNlx1N2I1MFx1N2I3YVx1N2IwNFx1N2I0ZFx1N2IwYlx1N2I0Y1x1N2I0NVx1N2I3NVx1N2I2NVx1N2I3NFx1N2I2N1x1N2I3MFx1N2I3MVx1N2I2Y1x1N2I2ZVx1N2I5ZFx1N2I5OFx1'@; put 'N2I5Zlx1N2I4ZFx1N2I5Y1x1N2I5YVx1N2I4Ylx1N2I5Mlx1N2I4Zlx1N2I1ZFx1N2I5OVx1N2JjYlx1N2JjMVx1N2JjY1x1N2JjZlx1N2JiNFx1N2JjNlx1N2JkZFx1N2JlOVx1N2MxMVx1N2MxNFx1N2JlNlx1N2JlNVx1N2M2MFx1N2MwMFx1N2MwN1x1N2MxM1x1N2JmM1x1N2JmN1x1N2Mx'@; put 'N1x1N2MwZFx1N2JmNlx1N2MyM1x1N2MyN1x1N2MyYVx1N2MxZlx1N2MzN1x1N2MyYlx1N2MzZFx1N2M0Y1x1N2M0M1x1N2M1NFx1N2M0Zlx1N2M0MFx1N2M1MFx1N2M1OFx1N2M1Zlx1N2M2NFx1N2M1Nlx1N2M2NVx1N2M2Y1x1N2M3NVx1N2M4M1x1N2M5MFx1N2NhNFx1N2NhZFx1N2NhMlx1'@; put 'N2NhYlx1N2NhMVx1N2NhOFx1N2NiM1x1N2NiMlx1N2NiMVx1N2NhZVx1N2NiOVx1N2NiZFx1N2NjMFx1N2NjNVx1N2NjMlx1N2NkOFx1N2NkMlx1N2NkY1x1N2NlMlx1OWIzYlx1N2NlZlx1N2NmMlx1N2NmNFx1N2NmNlx1N2NmYVx1N2QwNiJdLFsiZTM0MCIsIlx1N2QwMlx1N2QxY1x1N2Qx'@; put 'NVx1N2QwYVx1N2Q0NVx1N2Q0Ylx1N2QyZVx1N2QzMlx1N2QzZlx1N2QzNVx1N2Q0Nlx1N2Q3M1x1N2Q1Nlx1N2Q0ZVx1N2Q3Mlx1N2Q2OFx1N2Q2ZVx1N2Q0Zlx1N2Q2M1x1N2Q5M1x1N2Q4OVx1N2Q1Ylx1N2Q4Zlx1N2Q3ZFx1N2Q5Ylx1N2RiYVx1N2RhZVx1N2RhM1x1N2RiNVx1N2RjN1x1'@; put 'N2RiZFx1N2RhYlx1N2UzZFx1N2RhMlx1N2RhZlx1N2RkY1x1N2RiOFx1N2Q5Zlx1N2RiMFx1N2RkOFx1N2RkZFx1N2RlNFx1N2RkZVx1N2RmYlx1N2RmMlx1N2RlMVx1N2UwNVx1N2UwYVx1N2UyM1x1N2UyMVx1N2UxMlx1N2UzMVx1N2UxZlx1N2UwOVx1N2UwYlx1N2UyMlx1N2U0Nlx1N2U2'@; put 'Nlx1N2UzYlx1N2UzNVx1N2UzOVx1N2U0M1x1N2UzNyJdLFsiZTM4MCIsIlx1N2UzMlx1N2UzYVx1N2U2N1x1N2U1ZFx1N2U1Nlx1N2U1ZVx1N2U1OVx1N2U1YVx1N2U3OVx1N2U2YVx1N2U2OVx1N2U3Y1x1N2U3Ylx1N2U4M1x1N2RkNVx1N2U3ZFx1OGZhZVx1N2U3Zlx1N2U4OFx1N2U4OVx1'@; put 'N2U4Y1x1N2U5Mlx1N2U5MFx1N2U5M1x1N2U5NFx1N2U5Nlx1N2U4ZVx1N2U5Ylx1N2U5Y1x1N2YzOFx1N2YzYVx1N2Y0NVx1N2Y0Y1x1N2Y0ZFx1N2Y0ZVx1N2Y1MFx1N2Y1MVx1N2Y1NVx1N2Y1NFx1N2Y1OFx1N2Y1Zlx1N2Y2MFx1N2Y2OFx1N2Y2OVx1N2Y2N1x1N2Y3OFx1N2Y4Mlx1N2Y4'@; put 'Nlx1N2Y4M1x1N2Y4OFx1N2Y4N1x1N2Y4Y1x1N2Y5NFx1N2Y5ZVx1N2Y5ZFx1N2Y5YVx1N2ZhM1x1N2ZhZlx1N2ZiMlx1N2ZiOVx1N2ZhZVx1N2ZiNlx1N2ZiOFx1OGI3MVx1N2ZjNVx1N2ZjNlx1N2ZjYVx1N2ZkNVx1N2ZkNFx1N2ZlMVx1N2ZlNlx1N2ZlOVx1N2ZmM1x1N2ZmOVx1OThkY1x1'@; put 'ODAwNlx1ODAwNFx1ODAwYlx1ODAxMlx1ODAxOFx1ODAxOVx1ODAxY1x1ODAyMVx1ODAyOFx1ODAzZlx1ODAzYlx1ODA0YVx1ODA0Nlx1ODA1Mlx1ODA1OFx1ODA1YVx1ODA1Zlx1ODA2Mlx1ODA2OFx1ODA3M1x1ODA3Mlx1ODA3MFx1ODA3Nlx1ODA3OVx1ODA3ZFx1ODA3Zlx1ODA4NFx1ODA4'@; put 'Nlx1ODA4NVx1ODA5Ylx1ODA5M1x1ODA5YVx1ODBhZFx1NTE5MFx1ODBhY1x1ODBkYlx1ODBlNVx1ODBkOVx1ODBkZFx1ODBjNFx1ODBkYVx1ODBkNlx1ODEwOVx1ODBlZlx1ODBmMVx1ODExYlx1ODEyOVx1ODEyM1x1ODEyZlx1ODE0YiJdLFsiZTQ0MCIsIlx1OTY4Ylx1ODE0Nlx1ODEzZVx1'@; put 'ODE1M1x1ODE1MVx1ODBmY1x1ODE3MVx1ODE2ZVx1ODE2NVx1ODE2Nlx1ODE3NFx1ODE4M1x1ODE4OFx1ODE4YVx1ODE4MFx1ODE4Mlx1ODFhMFx1ODE5NVx1ODFhNFx1ODFhM1x1ODE1Zlx1ODE5M1x1ODFhOVx1ODFiMFx1ODFiNVx1ODFiZVx1ODFiOFx1ODFiZFx1ODFjMFx1ODFjMlx1ODFi'@; put 'YVx1ODFjOVx1ODFjZFx1ODFkMVx1ODFkOVx1ODFkOFx1ODFjOFx1ODFkYVx1ODFkZlx1ODFlMFx1ODFlN1x1ODFmYVx1ODFmYlx1ODFmZVx1ODIwMVx1ODIwMlx1ODIwNVx1ODIwN1x1ODIwYVx1ODIwZFx1ODIxMFx1ODIxNlx1ODIyOVx1ODIyYlx1ODIzOFx1ODIzM1x1ODI0MFx1ODI1OVx1'@; put 'ODI1OFx1ODI1ZFx1ODI1YVx1ODI1Zlx1ODI2NCJdLFsiZTQ4MCIsIlx1ODI2Mlx1ODI2OFx1ODI2YVx1ODI2Ylx1ODIyZVx1ODI3MVx1ODI3N1x1ODI3OFx1ODI3ZVx1ODI4ZFx1ODI5Mlx1ODJhYlx1ODI5Zlx1ODJiYlx1ODJhY1x1ODJlMVx1ODJlM1x1ODJkZlx1ODJkMlx1ODJmNFx1ODJm'@; put 'M1x1ODJmYVx1ODM5M1x1ODMwM1x1ODJmYlx1ODJmOVx1ODJkZVx1ODMwNlx1ODJkY1x1ODMwOVx1ODJkOVx1ODMzNVx1ODMzNFx1ODMxNlx1ODMzMlx1ODMzMVx1ODM0MFx1ODMzOVx1ODM1MFx1ODM0NVx1ODMyZlx1ODMyYlx1ODMxN1x1ODMxOFx1ODM4NVx1ODM5YVx1ODNhYVx1ODM5Zlx1'@; put 'ODNhMlx1ODM5Nlx1ODMyM1x1ODM4ZVx1ODM4N1x1ODM4YVx1ODM3Y1x1ODNiNVx1ODM3M1x1ODM3NVx1ODNhMFx1ODM4OVx1ODNhOFx1ODNmNFx1ODQxM1x1ODNlYlx1ODNjZVx1ODNmZFx1ODQwM1x1ODNkOFx1ODQwYlx1ODNjMVx1ODNmN1x1ODQwN1x1ODNlMFx1ODNmMlx1ODQwZFx1ODQy'@; put 'Mlx1ODQyMFx1ODNiZFx1ODQzOFx1ODUwNlx1ODNmYlx1ODQ2ZFx1ODQyYVx1ODQzY1x1ODU1YVx1ODQ4NFx1ODQ3N1x1ODQ2Ylx1ODRhZFx1ODQ2ZVx1ODQ4Mlx1ODQ2OVx1ODQ0Nlx1ODQyY1x1ODQ2Zlx1ODQ3OVx1ODQzNVx1ODRjYVx1ODQ2Mlx1ODRiOVx1ODRiZlx1ODQ5Zlx1ODRkOVx1'@; put 'ODRjZFx1ODRiYlx1ODRkYVx1ODRkMFx1ODRjMVx1ODRjNlx1ODRkNlx1ODRhMVx1ODUyMVx1ODRmZlx1ODRmNFx1ODUxN1x1ODUxOFx1ODUyY1x1ODUxZlx1ODUxNVx1ODUxNFx1ODRmY1x1ODU0MFx1ODU2M1x1ODU1OFx1ODU0OCJdLFsiZTU0MCIsIlx1ODU0MVx1ODYwMlx1ODU0Ylx1ODU1'@; put 'NVx1ODU4MFx1ODVhNFx1ODU4OFx1ODU5MVx1ODU4YVx1ODVhOFx1ODU2ZFx1ODU5NFx1ODU5Ylx1ODVlYVx1ODU4N1x1ODU5Y1x1ODU3N1x1ODU3ZVx1ODU5MFx1ODVjOVx1ODViYVx1ODVjZlx1ODViOVx1ODVkMFx1ODVkNVx1ODVkZFx1ODVlNVx1ODVkY1x1ODVmOVx1ODYwYVx1ODYxM1x1'@; put 'ODYwYlx1ODVmZVx1ODVmYVx1ODYwNlx1ODYyMlx1ODYxYVx1ODYzMFx1ODYzZlx1ODY0ZFx1NGU1NVx1ODY1NFx1ODY1Zlx1ODY2N1x1ODY3MVx1ODY5M1x1ODZhM1x1ODZhOVx1ODZhYVx1ODY4Ylx1ODY4Y1x1ODZiNlx1ODZhZlx1ODZjNFx1ODZjNlx1ODZiMFx1ODZjOVx1ODgyM1x1ODZh'@; put 'Ylx1ODZkNFx1ODZkZVx1ODZlOVx1ODZlYyJdLFsiZTU4MCIsIlx1ODZkZlx1ODZkYlx1ODZlZlx1ODcxMlx1ODcwNlx1ODcwOFx1ODcwMFx1ODcwM1x1ODZmYlx1ODcxMVx1ODcwOVx1ODcwZFx1ODZmOVx1ODcwYVx1ODczNFx1ODczZlx1ODczN1x1ODczYlx1ODcyNVx1ODcyOVx1ODcxYVx1'@; put 'ODc2MFx1ODc1Zlx1ODc3OFx1ODc0Y1x1ODc0ZVx1ODc3NFx1ODc1N1x1ODc2OFx1ODc2ZVx1ODc1OVx1ODc1M1x1ODc2M1x1ODc2YVx1ODgwNVx1ODdhMlx1ODc5Zlx1ODc4Mlx1ODdhZlx1ODdjYlx1ODdiZFx1ODdjMFx1ODdkMFx1OTZkNlx1ODdhYlx1ODdjNFx1ODdiM1x1ODdjN1x1ODdj'@; put 'Nlx1ODdiYlx1ODdlZlx1ODdmMlx1ODdlMFx1ODgwZlx1ODgwZFx1ODdmZVx1ODdmNlx1ODdmN1x1ODgwZVx1ODdkMlx1ODgxMVx1ODgxNlx1ODgxNVx1ODgyMlx1ODgyMVx1ODgzMVx1ODgzNlx1ODgzOVx1ODgyN1x1ODgzYlx1ODg0NFx1ODg0Mlx1ODg1Mlx1ODg1OVx1ODg1ZVx1ODg2Mlx1'@; put 'ODg2Ylx1ODg4MVx1ODg3ZVx1ODg5ZVx1ODg3NVx1ODg3ZFx1ODhiNVx1ODg3Mlx1ODg4Mlx1ODg5N1x1ODg5Mlx1ODhhZVx1ODg5OVx1ODhhMlx1ODg4ZFx1ODhhNFx1ODhiMFx1ODhiZlx1ODhiMVx1ODhjM1x1ODhjNFx1ODhkNFx1ODhkOFx1ODhkOVx1ODhkZFx1ODhmOVx1ODkwMlx1ODhm'@; put 'Y1x1ODhmNFx1ODhlOFx1ODhmMlx1ODkwNFx1ODkwY1x1ODkwYVx1ODkxM1x1ODk0M1x1ODkxZVx1ODkyNVx1ODkyYVx1ODkyYlx1ODk0MVx1ODk0NFx1ODkzYlx1ODkzNlx1ODkzOFx1ODk0Y1x1ODkxZFx1ODk2MFx1ODk1ZSJdLFsiZTY0MCIsIlx1ODk2Nlx1ODk2NFx1ODk2ZFx1ODk2YVx1'@; put 'ODk2Zlx1ODk3NFx1ODk3N1x1ODk3ZVx1ODk4M1x1ODk4OFx1ODk4YVx1ODk5M1x1ODk5OFx1ODlhMVx1ODlhOVx1ODlhNlx1ODlhY1x1ODlhZlx1ODliMlx1ODliYVx1ODliZFx1ODliZlx1ODljMFx1ODlkYVx1ODlkY1x1ODlkZFx1ODllN1x1ODlmNFx1ODlmOFx1OGEwM1x1OGExNlx1OGEx'@; put 'MFx1OGEwY1x1OGExYlx1OGExZFx1OGEyNVx1OGEzNlx1OGE0MVx1OGE1Ylx1OGE1Mlx1OGE0Nlx1OGE0OFx1OGE3Y1x1OGE2ZFx1OGE2Y1x1OGE2Mlx1OGE4NVx1OGE4Mlx1OGE4NFx1OGFhOFx1OGFhMVx1OGE5MVx1OGFhNVx1OGFhNlx1OGE5YVx1OGFhM1x1OGFjNFx1OGFjZFx1OGFjMlx1'@; put 'OGFkYVx1OGFlYlx1OGFmM1x1OGFlNyJdLFsiZTY4MCIsIlx1OGFlNFx1OGFmMVx1OGIxNFx1OGFlMFx1OGFlMlx1OGFmN1x1OGFkZVx1OGFkYlx1OGIwY1x1OGIwN1x1OGIxYVx1OGFlMVx1OGIxNlx1OGIxMFx1OGIxN1x1OGIyMFx1OGIzM1x1OTdhYlx1OGIyNlx1OGIyYlx1OGIzZVx1OGIy'@; put 'OFx1OGI0MVx1OGI0Y1x1OGI0Zlx1OGI0ZVx1OGI0OVx1OGI1Nlx1OGI1Ylx1OGI1YVx1OGI2Ylx1OGI1Zlx1OGI2Y1x1OGI2Zlx1OGI3NFx1OGI3ZFx1OGI4MFx1OGI4Y1x1OGI4ZVx1OGI5Mlx1OGI5M1x1OGI5Nlx1OGI5OVx1OGI5YVx1OGMzYVx1OGM0MVx1OGMzZlx1OGM0OFx1OGM0Y1x1'@; put 'OGM0ZVx1OGM1MFx1OGM1NVx1OGM2Mlx1OGM2Y1x1OGM3OFx1OGM3YVx1OGM4Mlx1OGM4OVx1OGM4NVx1OGM4YVx1OGM4ZFx1OGM4ZVx1OGM5NFx1OGM3Y1x1OGM5OFx1NjIxZFx1OGNhZFx1OGNhYVx1OGNiZFx1OGNiMlx1OGNiM1x1OGNhZVx1OGNiNlx1OGNjOFx1OGNjMVx1OGNlNFx1OGNl'@; put 'M1x1OGNkYVx1OGNmZFx1OGNmYVx1OGNmYlx1OGQwNFx1OGQwNVx1OGQwYVx1OGQwN1x1OGQwZlx1OGQwZFx1OGQxMFx1OWY0ZVx1OGQxM1x1OGNjZFx1OGQxNFx1OGQxNlx1OGQ2N1x1OGQ2ZFx1OGQ3MVx1OGQ3M1x1OGQ4MVx1OGQ5OVx1OGRjMlx1OGRiZVx1OGRiYVx1OGRjZlx1OGRkYVx1'@; put 'OGRkNlx1OGRjY1x1OGRkYlx1OGRjYlx1OGRlYVx1OGRlYlx1OGRkZlx1OGRlM1x1OGRmY1x1OGUwOFx1OGUwOVx1OGRmZlx1OGUxZFx1OGUxZVx1OGUxMFx1OGUxZlx1OGU0Mlx1OGUzNVx1OGUzMFx1OGUzNFx1OGU0YSJdLFsiZTc0MCIsIlx1OGU0N1x1OGU0OVx1OGU0Y1x1OGU1MFx1OGU0'@; put 'OFx1OGU1OVx1OGU2NFx1OGU2MFx1OGUyYVx1OGU2M1x1OGU1NVx1OGU3Nlx1OGU3Mlx1OGU3Y1x1OGU4MVx1OGU4N1x1OGU4NVx1OGU4NFx1OGU4Ylx1OGU4YVx1OGU5M1x1OGU5MVx1OGU5NFx1OGU5OVx1OGVhYVx1OGVhMVx1OGVhY1x1OGViMFx1OGVjNlx1OGViMVx1OGViZVx1OGVjNVx1'@; put 'OGVjOFx1OGVjYlx1OGVkYlx1OGVlM1x1OGVmY1x1OGVmYlx1OGVlYlx1OGVmZVx1OGYwYVx1OGYwNVx1OGYxNVx1OGYxMlx1OGYxOVx1OGYxM1x1OGYxY1x1OGYxZlx1OGYxYlx1OGYwY1x1OGYyNlx1OGYzM1x1OGYzYlx1OGYzOVx1OGY0NVx1OGY0Mlx1OGYzZVx1OGY0Y1x1OGY0OVx1OGY0'@; put 'Nlx1OGY0ZVx1OGY1N1x1OGY1YyJdLFsiZTc4MCIsIlx1OGY2Mlx1OGY2M1x1OGY2NFx1OGY5Y1x1OGY5Zlx1OGZhM1x1OGZhZFx1OGZhZlx1OGZiN1x1OGZkYVx1OGZlNVx1OGZlMlx1OGZlYVx1OGZlZlx1OTA4N1x1OGZmNFx1OTAwNVx1OGZmOVx1OGZmYVx1OTAxMVx1OTAxNVx1OTAyMVx1'@; put 'OTAwZFx1OTAxZVx1OTAxNlx1OTAwYlx1OTAyN1x1OTAzNlx1OTAzNVx1OTAzOVx1OGZmOFx1OTA0Zlx1OTA1MFx1OTA1MVx1OTA1Mlx1OTAwZVx1OTA0OVx1OTAzZVx1OTA1Nlx1OTA1OFx1OTA1ZVx1OTA2OFx1OTA2Zlx1OTA3Nlx1OTZhOFx1OTA3Mlx1OTA4Mlx1OTA3ZFx1OTA4MVx1OTA4'@; put 'MFx1OTA4YVx1OTA4OVx1OTA4Zlx1OTBhOFx1OTBhZlx1OTBiMVx1OTBiNVx1OTBlMlx1OTBlNFx1NjI0OFx1OTBkYlx1OTEwMlx1OTExMlx1OTExOVx1OTEzMlx1OTEzMFx1OTE0YVx1OTE1Nlx1OTE1OFx1OTE2M1x1OTE2NVx1OTE2OVx1OTE3M1x1OTE3Mlx1OTE4Ylx1OTE4OVx1OTE4Mlx1'@; put 'OTFhMlx1OTFhYlx1OTFhZlx1OTFhYVx1OTFiNVx1OTFiNFx1OTFiYVx1OTFjMFx1OTFjMVx1OTFjOVx1OTFjYlx1OTFkMFx1OTFkNlx1OTFkZlx1OTFlMVx1OTFkYlx1OTFmY1x1OTFmNVx1OTFmNlx1OTIxZVx1OTFmZlx1OTIxNFx1OTIyY1x1OTIxNVx1OTIxMVx1OTI1ZVx1OTI1N1x1OTI0'@; put 'NVx1OTI0OVx1OTI2NFx1OTI0OFx1OTI5NVx1OTIzZlx1OTI0Ylx1OTI1MFx1OTI5Y1x1OTI5Nlx1OTI5M1x1OTI5Ylx1OTI1YVx1OTJjZlx1OTJiOVx1OTJiN1x1OTJlOVx1OTMwZlx1OTJmYVx1OTM0NFx1OTMyZSJdLFsiZTg0MCIsIlx1OTMxOVx1OTMyMlx1OTMxYVx1OTMyM1x1OTMzYVx1'@; put 'OTMzNVx1OTMzYlx1OTM1Y1x1OTM2MFx1OTM3Y1x1OTM2ZVx1OTM1Nlx1OTNiMFx1OTNhY1x1OTNhZFx1OTM5NFx1OTNiOVx1OTNkNlx1OTNkN1x1OTNlOFx1OTNlNVx1OTNkOFx1OTNjM1x1OTNkZFx1OTNkMFx1OTNjOFx1OTNlNFx1OTQxYVx1OTQxNFx1OTQxM1x1OTQwM1x1OTQwN1x1OTQx'@; put 'MFx1OTQzNlx1OTQyYlx1OTQzNVx1OTQyMVx1OTQzYVx1OTQ0MVx1OTQ1Mlx1OTQ0NFx1OTQ1Ylx1OTQ2MFx1OTQ2Mlx1OTQ1ZVx1OTQ2YVx1OTIyOVx1OTQ3MFx1OTQ3NVx1OTQ3N1x1OTQ3ZFx1OTQ1YVx1OTQ3Y1x1OTQ3ZVx1OTQ4MVx1OTQ3Zlx1OTU4Mlx1OTU4N1x1OTU4YVx1OTU5NFx1'@; put 'OTU5Nlx1OTU5OFx1OTU5OSJdLFsiZTg4MCIsIlx1OTVhMFx1OTVhOFx1OTVhN1x1OTVhZFx1OTViY1x1OTViYlx1OTViOVx1OTViZVx1OTVjYVx1NmZmNlx1OTVjM1x1OTVjZFx1OTVjY1x1OTVkNVx1OTVkNFx1OTVkNlx1OTVkY1x1OTVlMVx1OTVlNVx1OTVlMlx1OTYyMVx1OTYyOFx1OTYy'@; put 'ZVx1OTYyZlx1OTY0Mlx1OTY0Y1x1OTY0Zlx1OTY0Ylx1OTY3N1x1OTY1Y1x1OTY1ZVx1OTY1ZFx1OTY1Zlx1OTY2Nlx1OTY3Mlx1OTY2Y1x1OTY4ZFx1OTY5OFx1OTY5NVx1OTY5N1x1OTZhYVx1OTZhN1x1OTZiMVx1OTZiMlx1OTZiMFx1OTZiNFx1OTZiNlx1OTZiOFx1OTZiOVx1OTZjZVx1'@; put 'OTZjYlx1OTZjOVx1OTZjZFx1ODk0ZFx1OTZkY1x1OTcwZFx1OTZkNVx1OTZmOVx1OTcwNFx1OTcwNlx1OTcwOFx1OTcxM1x1OTcwZVx1OTcxMVx1OTcwZlx1OTcxNlx1OTcxOVx1OTcyNFx1OTcyYVx1OTczMFx1OTczOVx1OTczZFx1OTczZVx1OTc0NFx1OTc0Nlx1OTc0OFx1OTc0Mlx1OTc0'@; put 'OVx1OTc1Y1x1OTc2MFx1OTc2NFx1OTc2Nlx1OTc2OFx1NTJkMlx1OTc2Ylx1OTc3MVx1OTc3OVx1OTc4NVx1OTc3Y1x1OTc4MVx1OTc3YVx1OTc4Nlx1OTc4Ylx1OTc4Zlx1OTc5MFx1OTc5Y1x1OTdhOFx1OTdhNlx1OTdhM1x1OTdiM1x1OTdiNFx1OTdjM1x1OTdjNlx1OTdjOFx1OTdjYlx1'@; put 'OTdkY1x1OTdlZFx1OWY0Zlx1OTdmMlx1N2FkZlx1OTdmNlx1OTdmNVx1OTgwZlx1OTgwY1x1OTgzOFx1OTgyNFx1OTgyMVx1OTgzN1x1OTgzZFx1OTg0Nlx1OTg0Zlx1OTg0Ylx1OTg2Ylx1OTg2Zlx1OTg3MCJdLFsiZTk0MCIsIlx1OTg3MVx1OTg3NFx1OTg3M1x1OThhYVx1OThhZlx1OThi'@; put 'MVx1OThiNlx1OThjNFx1OThjM1x1OThjNlx1OThlOVx1OThlYlx1OTkwM1x1OTkwOVx1OTkxMlx1OTkxNFx1OTkxOFx1OTkyMVx1OTkxZFx1OTkxZVx1OTkyNFx1OTkyMFx1OTkyY1x1OTkyZVx1OTkzZFx1OTkzZVx1OTk0Mlx1OTk0OVx1OTk0NVx1OTk1MFx1OTk0Ylx1OTk1MVx1OTk1Mlx1'@; put 'OTk0Y1x1OTk1NVx1OTk5N1x1OTk5OFx1OTlhNVx1OTlhZFx1OTlhZVx1OTliY1x1OTlkZlx1OTlkYlx1OTlkZFx1OTlkOFx1OTlkMVx1OTllZFx1OTllZVx1OTlmMVx1OTlmMlx1OTlmYlx1OTlmOFx1OWEwMVx1OWEwZlx1OWEwNVx1OTllMlx1OWExOVx1OWEyYlx1OWEzN1x1OWE0NVx1OWE0'@; put 'Mlx1OWE0MFx1OWE0MyJdLFsiZTk4MCIsIlx1OWEzZVx1OWE1NVx1OWE0ZFx1OWE1Ylx1OWE1N1x1OWE1Zlx1OWE2Mlx1OWE2NVx1OWE2NFx1OWE2OVx1OWE2Ylx1OWE2YVx1OWFhZFx1OWFiMFx1OWFiY1x1OWFjMFx1OWFjZlx1OWFkMVx1OWFkM1x1OWFkNFx1OWFkZVx1OWFkZlx1OWFlMlx1'@; put 'OWFlM1x1OWFlNlx1OWFlZlx1OWFlYlx1OWFlZVx1OWFmNFx1OWFmMVx1OWFmN1x1OWFmYlx1OWIwNlx1OWIxOFx1OWIxYVx1OWIxZlx1OWIyMlx1OWIyM1x1OWIyNVx1OWIyN1x1OWIyOFx1OWIyOVx1OWIyYVx1OWIyZVx1OWIyZlx1OWIzMlx1OWI0NFx1OWI0M1x1OWI0Zlx1OWI0ZFx1OWI0'@; put 'ZVx1OWI1MVx1OWI1OFx1OWI3NFx1OWI5M1x1OWI4M1x1OWI5MVx1OWI5Nlx1OWI5N1x1OWI5Zlx1OWJhMFx1OWJhOFx1OWJiNFx1OWJjMFx1OWJjYVx1OWJiOVx1OWJjNlx1OWJjZlx1OWJkMVx1OWJkMlx1OWJlM1x1OWJlMlx1OWJlNFx1OWJkNFx1OWJlMVx1OWMzYVx1OWJmMlx1OWJmMVx1'@; put 'OWJmMFx1OWMxNVx1OWMxNFx1OWMwOVx1OWMxM1x1OWMwY1x1OWMwNlx1OWMwOFx1OWMxMlx1OWMwYVx1OWMwNFx1OWMyZVx1OWMxYlx1OWMyNVx1OWMyNFx1OWMyMVx1OWMzMFx1OWM0N1x1OWMzMlx1OWM0Nlx1OWMzZVx1OWM1YVx1OWM2MFx1OWM2N1x1OWM3Nlx1OWM3OFx1OWNlN1x1OWNl'@; put 'Y1x1OWNmMFx1OWQwOVx1OWQwOFx1OWNlYlx1OWQwM1x1OWQwNlx1OWQyYVx1OWQyNlx1OWRhZlx1OWQyM1x1OWQxZlx1OWQ0NFx1OWQxNVx1OWQxMlx1OWQ0MVx1OWQzZlx1OWQzZVx1OWQ0Nlx1OWQ0OCJdLFsiZWE0MCIsIlx1OWQ1ZFx1OWQ1ZVx1OWQ2NFx1OWQ1MVx1OWQ1MFx1OWQ1OVx1'@; put 'OWQ3Mlx1OWQ4OVx1OWQ4N1x1OWRhYlx1OWQ2Zlx1OWQ3YVx1OWQ5YVx1OWRhNFx1OWRhOVx1OWRiMlx1OWRjNFx1OWRjMVx1OWRiYlx1OWRiOFx1OWRiYVx1OWRjNlx1OWRjZlx1OWRjMlx1OWRkOVx1OWRkM1x1OWRmOFx1OWRlNlx1OWRlZFx1OWRlZlx1OWRmZFx1OWUxYVx1OWUxYlx1OWUx'@; put 'ZVx1OWU3NVx1OWU3OVx1OWU3ZFx1OWU4MVx1OWU4OFx1OWU4Ylx1OWU4Y1x1OWU5Mlx1OWU5NVx1OWU5MVx1OWU5ZFx1OWVhNVx1OWVhOVx1OWViOFx1OWVhYVx1OWVhZFx1OTc2MVx1OWVjY1x1OWVjZVx1OWVjZlx1OWVkMFx1OWVkNFx1OWVkY1x1OWVkZVx1OWVkZFx1OWVlMFx1OWVlNVx1'@; put 'OWVlOFx1OWVlZiJdLFsiZWE4MCIsIlx1OWVmNFx1OWVmNlx1OWVmN1x1OWVmOVx1OWVmYlx1OWVmY1x1OWVmZFx1OWYwN1x1OWYwOFx1NzZiN1x1OWYxNVx1OWYyMVx1OWYyY1x1OWYzZVx1OWY0YVx1OWY1Mlx1OWY1NFx1OWY2M1x1OWY1Zlx1OWY2MFx1OWY2MVx1OWY2Nlx1OWY2N1x1OWY2'@; put 'Y1x1OWY2YVx1OWY3N1x1OWY3Mlx1OWY3Nlx1OWY5NVx1OWY5Y1x1OWZhMFx1NTgyZlx1NjljN1x1OTA1OVx1NzQ2NFx1NTFkY1x1NzE5OSJdLFsiZWQ0MCIsIlx1N2U4YVx1ODkxY1x1OTM0OFx1OTI4OFx1ODRkY1x1NGZjOVx1NzBiYlx1NjYzMVx1NjhjOFx1OTJmOVx1NjZmYlx1NWY0NVx1'@; put 'NGUyOFx1NGVlMVx1NGVmY1x1NGYwMFx1NGYwM1x1NGYzOVx1NGY1Nlx1NGY5Mlx1NGY4YVx1NGY5YVx1NGY5NFx1NGZjZFx1NTA0MFx1NTAyMlx1NGZmZlx1NTAxZVx1NTA0Nlx1NTA3MFx1NTA0Mlx1NTA5NFx1NTBmNFx1NTBkOFx1NTE0YVx1NTE2NFx1NTE5ZFx1NTFiZVx1NTFlY1x1NTIx'@; put 'NVx1NTI5Y1x1NTJhNlx1NTJjMFx1NTJkYlx1NTMwMFx1NTMwN1x1NTMyNFx1NTM3Mlx1NTM5M1x1NTNiMlx1NTNkZFx1ZmEwZVx1NTQ5Y1x1NTQ4YVx1NTRhOVx1NTRmZlx1NTU4Nlx1NTc1OVx1NTc2NVx1NTdhY1x1NTdjOFx1NTdjN1x1ZmEwZiJdLFsiZWQ4MCIsIlx1ZmExMFx1NTg5ZVx1'@; put 'NThiMlx1NTkwYlx1NTk1M1x1NTk1Ylx1NTk1ZFx1NTk2M1x1NTlhNFx1NTliYVx1NWI1Nlx1NWJjMFx1NzUyZlx1NWJkOFx1NWJlY1x1NWMxZVx1NWNhNlx1NWNiYVx1NWNmNVx1NWQyN1x1NWQ1M1x1ZmExMVx1NWQ0Mlx1NWQ2ZFx1NWRiOFx1NWRiOVx1NWRkMFx1NWYyMVx1NWYzNFx1NWY2'@; put 'N1x1NWZiN1x1NWZkZVx1NjA1ZFx1NjA4NVx1NjA4YVx1NjBkZVx1NjBkNVx1NjEyMFx1NjBmMlx1NjExMVx1NjEzN1x1NjEzMFx1NjE5OFx1NjIxM1x1NjJhNlx1NjNmNVx1NjQ2MFx1NjQ5ZFx1NjRjZVx1NjU0ZVx1NjYwMFx1NjYxNVx1NjYzYlx1NjYwOVx1NjYyZVx1NjYxZVx1NjYyNFx1'@; put 'NjY2NVx1NjY1N1x1NjY1OVx1ZmExMlx1NjY3M1x1NjY5OVx1NjZhMFx1NjZiMlx1NjZiZlx1NjZmYVx1NjcwZVx1ZjkyOVx1Njc2Nlx1NjdiYlx1Njg1Mlx1NjdjMFx1NjgwMVx1Njg0NFx1NjhjZlx1ZmExM1x1Njk2OFx1ZmExNFx1Njk5OFx1NjllMlx1NmEzMFx1NmE2Ylx1NmE0Nlx1NmE3'@; put 'M1x1NmE3ZVx1NmFlMlx1NmFlNFx1NmJkNlx1NmMzZlx1NmM1Y1x1NmM4Nlx1NmM2Zlx1NmNkYVx1NmQwNFx1NmQ4N1x1NmQ2Zlx1NmQ5Nlx1NmRhY1x1NmRjZlx1NmRmOFx1NmRmMlx1NmRmY1x1NmUzOVx1NmU1Y1x1NmUyN1x1NmUzY1x1NmViZlx1NmY4OFx1NmZiNVx1NmZmNVx1NzAwNVx1'@; put 'NzAwN1x1NzAyOFx1NzA4NVx1NzBhYlx1NzEwZlx1NzEwNFx1NzE1Y1x1NzE0Nlx1NzE0N1x1ZmExNVx1NzFjMVx1NzFmZVx1NzJiMSJdLFsiZWU0MCIsIlx1NzJiZVx1NzMyNFx1ZmExNlx1NzM3N1x1NzNiZFx1NzNjOVx1NzNkNlx1NzNlM1x1NzNkMlx1NzQwN1x1NzNmNVx1NzQyNlx1NzQy'@; put 'YVx1NzQyOVx1NzQyZVx1NzQ2Mlx1NzQ4OVx1NzQ5Zlx1NzUwMVx1NzU2Zlx1NzY4Mlx1NzY5Y1x1NzY5ZVx1NzY5Ylx1NzZhNlx1ZmExN1x1Nzc0Nlx1NTJhZlx1NzgyMVx1Nzg0ZVx1Nzg2NFx1Nzg3YVx1NzkzMFx1ZmExOFx1ZmExOVx1ZmExYVx1Nzk5NFx1ZmExYlx1Nzk5Ylx1N2FkMVx1'@; put 'N2FlN1x1ZmExY1x1N2FlYlx1N2I5ZVx1ZmExZFx1N2Q0OFx1N2Q1Y1x1N2RiN1x1N2RhMFx1N2RkNlx1N2U1Mlx1N2Y0N1x1N2ZhMVx1ZmExZVx1ODMwMVx1ODM2Mlx1ODM3Zlx1ODNjN1x1ODNmNlx1ODQ0OFx1ODRiNFx1ODU1M1x1ODU1OSJdLFsiZWU4MCIsIlx1ODU2Ylx1ZmExZlx1ODVi'@; put 'MFx1ZmEyMFx1ZmEyMVx1ODgwN1x1ODhmNVx1OGExMlx1OGEzN1x1OGE3OVx1OGFhN1x1OGFiZVx1OGFkZlx1ZmEyMlx1OGFmNlx1OGI1M1x1OGI3Zlx1OGNmMFx1OGNmNFx1OGQxMlx1OGQ3Nlx1ZmEyM1x1OGVjZlx1ZmEyNFx1ZmEyNVx1OTA2N1x1OTBkZVx1ZmEyNlx1OTExNVx1OTEyN1x1'@; put 'OTFkYVx1OTFkN1x1OTFkZVx1OTFlZFx1OTFlZVx1OTFlNFx1OTFlNVx1OTIwNlx1OTIxMFx1OTIwYVx1OTIzYVx1OTI0MFx1OTIzY1x1OTI0ZVx1OTI1OVx1OTI1MVx1OTIzOVx1OTI2N1x1OTJhN1x1OTI3N1x1OTI3OFx1OTJlN1x1OTJkN1x1OTJkOVx1OTJkMFx1ZmEyN1x1OTJkNVx1OTJl'@; put 'MFx1OTJkM1x1OTMyNVx1OTMyMVx1OTJmYlx1ZmEyOFx1OTMxZVx1OTJmZlx1OTMxZFx1OTMwMlx1OTM3MFx1OTM1N1x1OTNhNFx1OTNjNlx1OTNkZVx1OTNmOFx1OTQzMVx1OTQ0NVx1OTQ0OFx1OTU5Mlx1ZjlkY1x1ZmEyOVx1OTY5ZFx1OTZhZlx1OTczM1x1OTczYlx1OTc0M1x1OTc0ZFx1'@; put 'OTc0Zlx1OTc1MVx1OTc1NVx1OTg1N1x1OTg2NVx1ZmEyYVx1ZmEyYlx1OTkyN1x1ZmEyY1x1OTk5ZVx1OWE0ZVx1OWFkOVx1OWFkY1x1OWI3NVx1OWI3Mlx1OWI4Zlx1OWJiMVx1OWJiYlx1OWMwMFx1OWQ3MFx1OWQ2Ylx1ZmEyZFx1OWUxOVx1OWVkMSJdLFsiZWVlZiIsIlx1MjE3MCIsOSwi'@; put 'XHVmZmUyXHVmZmU0XHVmZjA3XHVmZjAyIl0sWyJmMDQwIiwiXHVlMDAwIiw2Ml0sWyJmMDgwIiwiXHVlMDNmIiwxMjRdLFsiZjE0MCIsIlx1ZTBiYyIsNjJdLFsiZjE4MCIsIlx1ZTBmYiIsMTI0XSxbImYyNDAiLCJcdWUxNzgiLDYyXSxbImYyODAiLCJcdWUxYjciLDEyNF0sWyJmMzQwIiwi'@; put 'XHVlMjM0Iiw2Ml0sWyJmMzgwIiwiXHVlMjczIiwxMjRdLFsiZjQ0MCIsIlx1ZTJmMCIsNjJdLFsiZjQ4MCIsIlx1ZTMyZiIsMTI0XSxbImY1NDAiLCJcdWUzYWMiLDYyXSxbImY1ODAiLCJcdWUzZWIiLDEyNF0sWyJmNjQwIiwiXHVlNDY4Iiw2Ml0sWyJmNjgwIiwiXHVlNGE3IiwxMjRdLFsi'@; put 'Zjc0MCIsIlx1ZTUyNCIsNjJdLFsiZjc4MCIsIlx1ZTU2MyIsMTI0XSxbImY4NDAiLCJcdWU1ZTAiLDYyXSxbImY4ODAiLCJcdWU2MWYiLDEyNF0sWyJmOTQwIiwiXHVlNjljIl0sWyJmYTQwIiwiXHUyMTcwIiw5LCJcdTIxNjAiLDksIlx1ZmZlMlx1ZmZlNFx1ZmYwN1x1ZmYwMlx1MzIzMVx1'@; put 'MjExNlx1MjEyMVx1MjIzNVx1N2U4YVx1ODkxY1x1OTM0OFx1OTI4OFx1ODRkY1x1NGZjOVx1NzBiYlx1NjYzMVx1NjhjOFx1OTJmOVx1NjZmYlx1NWY0NVx1NGUyOFx1NGVlMVx1NGVmY1x1NGYwMFx1NGYwM1x1NGYzOVx1NGY1Nlx1NGY5Mlx1NGY4YVx1NGY5YVx1NGY5NFx1NGZjZFx1NTA0'@; put 'MFx1NTAyMlx1NGZmZlx1NTAxZVx1NTA0Nlx1NTA3MFx1NTA0Mlx1NTA5NFx1NTBmNFx1NTBkOFx1NTE0YSJdLFsiZmE4MCIsIlx1NTE2NFx1NTE5ZFx1NTFiZVx1NTFlY1x1NTIxNVx1NTI5Y1x1NTJhNlx1NTJjMFx1NTJkYlx1NTMwMFx1NTMwN1x1NTMyNFx1NTM3Mlx1NTM5M1x1NTNiMlx1'@; put 'NTNkZFx1ZmEwZVx1NTQ5Y1x1NTQ4YVx1NTRhOVx1NTRmZlx1NTU4Nlx1NTc1OVx1NTc2NVx1NTdhY1x1NTdjOFx1NTdjN1x1ZmEwZlx1ZmExMFx1NTg5ZVx1NThiMlx1NTkwYlx1NTk1M1x1NTk1Ylx1NTk1ZFx1NTk2M1x1NTlhNFx1NTliYVx1NWI1Nlx1NWJjMFx1NzUyZlx1NWJkOFx1NWJl'@; put 'Y1x1NWMxZVx1NWNhNlx1NWNiYVx1NWNmNVx1NWQyN1x1NWQ1M1x1ZmExMVx1NWQ0Mlx1NWQ2ZFx1NWRiOFx1NWRiOVx1NWRkMFx1NWYyMVx1NWYzNFx1NWY2N1x1NWZiN1x1NWZkZVx1NjA1ZFx1NjA4NVx1NjA4YVx1NjBkZVx1NjBkNVx1NjEyMFx1NjBmMlx1NjExMVx1NjEzN1x1NjEzMFx1'@; put 'NjE5OFx1NjIxM1x1NjJhNlx1NjNmNVx1NjQ2MFx1NjQ5ZFx1NjRjZVx1NjU0ZVx1NjYwMFx1NjYxNVx1NjYzYlx1NjYwOVx1NjYyZVx1NjYxZVx1NjYyNFx1NjY2NVx1NjY1N1x1NjY1OVx1ZmExMlx1NjY3M1x1NjY5OVx1NjZhMFx1NjZiMlx1NjZiZlx1NjZmYVx1NjcwZVx1ZjkyOVx1Njc2'@; put 'Nlx1NjdiYlx1Njg1Mlx1NjdjMFx1NjgwMVx1Njg0NFx1NjhjZlx1ZmExM1x1Njk2OFx1ZmExNFx1Njk5OFx1NjllMlx1NmEzMFx1NmE2Ylx1NmE0Nlx1NmE3M1x1NmE3ZVx1NmFlMlx1NmFlNFx1NmJkNlx1NmMzZlx1NmM1Y1x1NmM4Nlx1NmM2Zlx1NmNkYVx1NmQwNFx1NmQ4N1x1NmQ2ZiJd'@; put 'LFsiZmI0MCIsIlx1NmQ5Nlx1NmRhY1x1NmRjZlx1NmRmOFx1NmRmMlx1NmRmY1x1NmUzOVx1NmU1Y1x1NmUyN1x1NmUzY1x1NmViZlx1NmY4OFx1NmZiNVx1NmZmNVx1NzAwNVx1NzAwN1x1NzAyOFx1NzA4NVx1NzBhYlx1NzEwZlx1NzEwNFx1NzE1Y1x1NzE0Nlx1NzE0N1x1ZmExNVx1NzFj'@; put 'MVx1NzFmZVx1NzJiMVx1NzJiZVx1NzMyNFx1ZmExNlx1NzM3N1x1NzNiZFx1NzNjOVx1NzNkNlx1NzNlM1x1NzNkMlx1NzQwN1x1NzNmNVx1NzQyNlx1NzQyYVx1NzQyOVx1NzQyZVx1NzQ2Mlx1NzQ4OVx1NzQ5Zlx1NzUwMVx1NzU2Zlx1NzY4Mlx1NzY5Y1x1NzY5ZVx1NzY5Ylx1NzZhNlx1'@; put 'ZmExN1x1Nzc0Nlx1NTJhZlx1NzgyMVx1Nzg0ZVx1Nzg2NFx1Nzg3YVx1NzkzMFx1ZmExOFx1ZmExOSJdLFsiZmI4MCIsIlx1ZmExYVx1Nzk5NFx1ZmExYlx1Nzk5Ylx1N2FkMVx1N2FlN1x1ZmExY1x1N2FlYlx1N2I5ZVx1ZmExZFx1N2Q0OFx1N2Q1Y1x1N2RiN1x1N2RhMFx1N2RkNlx1N2U1'@; put 'Mlx1N2Y0N1x1N2ZhMVx1ZmExZVx1ODMwMVx1ODM2Mlx1ODM3Zlx1ODNjN1x1ODNmNlx1ODQ0OFx1ODRiNFx1ODU1M1x1ODU1OVx1ODU2Ylx1ZmExZlx1ODViMFx1ZmEyMFx1ZmEyMVx1ODgwN1x1ODhmNVx1OGExMlx1OGEzN1x1OGE3OVx1OGFhN1x1OGFiZVx1OGFkZlx1ZmEyMlx1OGFmNlx1'@; put 'OGI1M1x1OGI3Zlx1OGNmMFx1OGNmNFx1OGQxMlx1OGQ3Nlx1ZmEyM1x1OGVjZlx1ZmEyNFx1ZmEyNVx1OTA2N1x1OTBkZVx1ZmEyNlx1OTExNVx1OTEyN1x1OTFkYVx1OTFkN1x1OTFkZVx1OTFlZFx1OTFlZVx1OTFlNFx1OTFlNVx1OTIwNlx1OTIxMFx1OTIwYVx1OTIzYVx1OTI0MFx1OTIz'@; put 'Y1x1OTI0ZVx1OTI1OVx1OTI1MVx1OTIzOVx1OTI2N1x1OTJhN1x1OTI3N1x1OTI3OFx1OTJlN1x1OTJkN1x1OTJkOVx1OTJkMFx1ZmEyN1x1OTJkNVx1OTJlMFx1OTJkM1x1OTMyNVx1OTMyMVx1OTJmYlx1ZmEyOFx1OTMxZVx1OTJmZlx1OTMxZFx1OTMwMlx1OTM3MFx1OTM1N1x1OTNhNFx1'@; put 'OTNjNlx1OTNkZVx1OTNmOFx1OTQzMVx1OTQ0NVx1OTQ0OFx1OTU5Mlx1ZjlkY1x1ZmEyOVx1OTY5ZFx1OTZhZlx1OTczM1x1OTczYlx1OTc0M1x1OTc0ZFx1OTc0Zlx1OTc1MVx1OTc1NVx1OTg1N1x1OTg2NVx1ZmEyYVx1ZmEyYlx1OTkyN1x1ZmEyY1x1OTk5ZVx1OWE0ZVx1OWFkOSJdLFsi'@; put 'ZmM0MCIsIlx1OWFkY1x1OWI3NVx1OWI3Mlx1OWI4Zlx1OWJiMVx1OWJiYlx1OWMwMFx1OWQ3MFx1OWQ2Ylx1ZmEyZFx1OWUxOVx1OWVkMSJdXScpfSwxNTU3OTpjZT0+eyJ1c2Ugc3RyaWN0IjtjZS5leHBvcnRzPUpTT04ucGFyc2UoJ3siMi4xNi44NDAuMS4xMDEuMy40LjEuMSI6ImFlcy0x'@; put 'MjgtZWNiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuMiI6ImFlcy0xMjgtY2JjIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuMyI6ImFlcy0xMjgtb2ZiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuNCI6ImFlcy0xMjgtY2ZiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuMjEiOiJhZXMtMTkyLWVjYiIs'@; put 'IjIuMTYuODQwLjEuMTAxLjMuNC4xLjIyIjoiYWVzLTE5Mi1jYmMiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4yMyI6ImFlcy0xOTItb2ZiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuMjQiOiJhZXMtMTkyLWNmYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjQxIjoiYWVzLTI1Ni1lY2IiLCIyLjE2'@; put 'Ljg0MC4xLjEwMS4zLjQuMS40MiI6ImFlcy0yNTYtY2JjIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuNDMiOiJhZXMtMjU2LW9mYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjQ0IjoiYWVzLTI1Ni1jZmIifScpfX0sY2U9PntjZShjZS5zPTg5Mjk2KX1dKTs='; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64,swap=compiled_apploc apploc) filename filecode clear; %let filename=polyfills.06e7f05dd7d911ae.js; filename filecode temp lrecl=209176; data _null_; file filecode; put 'KHNlbGYud2VicGFja0NodW5rZGF0YWNvbnRyb2xsZXI9c2VsZi53ZWJwYWNrQ2h1bmtkYXRhY29udHJvbGxlcnx8W10pLnB1c2goW1s0NjFdLHsyNDA1MDooYyxsLHQpPT57InVzZSBzdHJpY3QiO3QoMTg4ODMpLHQoNTQ5NDApLHQoMzkyNzEpLHQoNTI0NDQpLHQoMjYyMDMpLHQoMTU2MjYp'@; put 'LHQoODgwMjUpLHQoNTY0NDIpLHQoMzI4OTkpLHQoNjYzNzQpLHQoNDI0NiksdCgyMjkxMyksdCgxMDc0MyksdCg2NTg0NiksdCg5MzUzKSx0KDk2OTM1KSx0KDkyNTY4KTt2YXIgZHQ9dCg4MzgzOCk7d2luZG93Lmdsb2JhbD13aW5kb3csd2luZG93Lmdsb2JhbC5CdWZmZXI9d2luZG93Lmds'@; put 'b2JhbC5CdWZmZXJ8fGR0LkJ1ZmZlcix3aW5kb3cucHJvY2Vzcz17dmVyc2lvbjoiIn19LDEzOTgxOihjLGwpPT57InVzZSBzdHJpY3QiO2wuYnl0ZUxlbmd0aD1mdW5jdGlvbiBpKGcpe3ZhciBEPWYoZykseD1EWzFdO3JldHVybiAzKihEWzBdK3gpLzQteH0sbC50b0J5dGVBcnJheT1mdW5j'@; put 'dGlvbiBwKGcpe3ZhciBELFQsRj1mKGcpLHg9RlswXSx3PUZbMV0sQz1uZXcgZShmdW5jdGlvbiB2KGcsRCxGKXtyZXR1cm4gMyooRCtGKS80LUZ9KDAseCx3KSksST0wLE09dz4wP3gtNDp4O2ZvcihUPTA7VDxNO1QrPTQpRD1uW2cuY2hhckNvZGVBdChUKV08PDE4fG5bZy5jaGFyQ29kZUF0'@; put 'KFQrMSldPDwxMnxuW2cuY2hhckNvZGVBdChUKzIpXTw8NnxuW2cuY2hhckNvZGVBdChUKzMpXSxDW0krK109RD4+MTYmMjU1LENbSSsrXT1EPj44JjI1NSxDW0krK109MjU1JkQ7cmV0dXJuIDI9PT13JiYoRD1uW2cuY2hhckNvZGVBdChUKV08PDJ8bltnLmNoYXJDb2RlQXQoVCsxKV0+PjQs'@; put 'Q1tJKytdPTI1NSZEKSwxPT09dyYmKEQ9bltnLmNoYXJDb2RlQXQoVCldPDwxMHxuW2cuY2hhckNvZGVBdChUKzEpXTw8NHxuW2cuY2hhckNvZGVBdChUKzIpXT4+MixDW0krK109RD4+OCYyNTUsQ1tJKytdPTI1NSZEKSxDfSxsLmZyb21CeXRlQXJyYXk9ZnVuY3Rpb24gRShnKXtmb3IodmFy'@; put 'IEQsRj1nLmxlbmd0aCx4PUYlMyx3PVtdLEM9MTYzODMsST0wLE09Ri14O0k8TTtJKz1DKXcucHVzaChtKGcsSSxJK0M+TT9NOkkrQykpO3JldHVybiAxPT09eD93LnB1c2godFsoRD1nW0YtMV0pPj4yXSt0W0Q8PDQmNjNdKyI9PSIpOjI9PT14JiZ3LnB1c2godFsoRD0oZ1tGLTJdPDw4KStn'@; put 'W0YtMV0pPj4xMF0rdFtEPj40JjYzXSt0W0Q8PDImNjNdKyI9Iiksdy5qb2luKCIiKX07Zm9yKHZhciB0PVtdLG49W10sZT10eXBlb2YgVWludDhBcnJheTwidSI/VWludDhBcnJheTpBcnJheSxzPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6'@; put 'MDEyMzQ1Njc4OSsvIixhPTA7YTw2NDsrK2EpdFthXT1zW2FdLG5bcy5jaGFyQ29kZUF0KGEpXT1hO2Z1bmN0aW9uIGYoZyl7dmFyIEQ9Zy5sZW5ndGg7aWYoRCU0PjApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHN0cmluZy4gTGVuZ3RoIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA0Iik7dmFy'@; put 'IEY9Zy5pbmRleE9mKCI9Iik7cmV0dXJuLTE9PT1GJiYoRj1EKSxbRixGPT09RD8wOjQtRiU0XX1mdW5jdGlvbiBkKGcpe3JldHVybiB0W2c+PjE4JjYzXSt0W2c+PjEyJjYzXSt0W2c+PjYmNjNdK3RbNjMmZ119ZnVuY3Rpb24gbShnLEQsRil7Zm9yKHZhciB3PVtdLEM9RDtDPEY7Qys9Myl3'@; put 'LnB1c2goZCgoZ1tDXTw8MTYmMTY3MTE2ODApKyhnW0MrMV08PDgmNjUyODApKygyNTUmZ1tDKzJdKSkpO3JldHVybiB3LmpvaW4oIiIpfW5bNDVdPTYyLG5bOTVdPTYzfSw4MzgzODooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoMTM5ODEpLGU9dCgyMjAyMCkscz0iZnVuY3Rpb24i'@; put 'PT10eXBlb2YgU3ltYm9sJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sLmZvcj9TeW1ib2wuZm9yKCJub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbSIpOm51bGw7bC5CdWZmZXI9aSxsLlNsb3dCdWZmZXI9ZnVuY3Rpb24gQyhoKXtyZXR1cm4raCE9aCYmKGg9MCksaS5hbGxvYygraCl9LGwu'@; put 'SU5TUEVDVF9NQVhfQllURVM9NTA7dmFyIGE9MjE0NzQ4MzY0NztmdW5jdGlvbiBmKGgpe2lmKGg+YSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlICInK2grJyIgaXMgaW52YWxpZCBmb3Igb3B0aW9uICJzaXplIicpO3ZhciByPW5ldyBVaW50OEFycmF5KGgpO3JldHVybiBPYmpl'@; put 'Y3Quc2V0UHJvdG90eXBlT2YocixpLnByb3RvdHlwZSkscn1mdW5jdGlvbiBpKGgscixvKXtpZigibnVtYmVyIj09dHlwZW9mIGgpe2lmKCJzdHJpbmciPT10eXBlb2Ygcil0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInN0cmluZyIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIHN0cmluZy4g'@; put 'UmVjZWl2ZWQgdHlwZSBudW1iZXInKTtyZXR1cm4gbShoKX1yZXR1cm4gdihoLHIsbyl9ZnVuY3Rpb24gdihoLHIsbyl7aWYoInN0cmluZyI9PXR5cGVvZiBoKXJldHVybiBmdW5jdGlvbiBFKGgscil7aWYoKCJzdHJpbmciIT10eXBlb2Ygcnx8IiI9PT1yKSYmKHI9InV0ZjgiKSwhaS5pc0Vu'@; put 'Y29kaW5nKHIpKXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrcik7dmFyIG89MHxJKGgscikseT1mKG8pLFA9eS53cml0ZShoLHIpO3JldHVybiBQIT09byYmKHk9eS5zbGljZSgwLFApKSx5fShoLHIpO2lmKEFycmF5QnVmZmVyLmlzVmlldyhoKSlyZXR1cm4gZnVu'@; put 'Y3Rpb24gRChoKXtpZihfdChoLFVpbnQ4QXJyYXkpKXt2YXIgcj1uZXcgVWludDhBcnJheShoKTtyZXR1cm4gRihyLmJ1ZmZlcixyLmJ5dGVPZmZzZXQsci5ieXRlTGVuZ3RoKX1yZXR1cm4gZyhoKX0oaCk7aWYobnVsbD09aCl0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgZmlyc3QgYXJndW1l'@; put 'bnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSAiK3R5cGVvZiBoKTtpZihfdChoLEFycmF5QnVmZmVyKXx8aCYmX3QoaC5idWZmZXIsQXJyYXlCdWZmZXIpfHx0eXBlb2Yg'@; put 'U2hhcmVkQXJyYXlCdWZmZXI8InUiJiYoX3QoaCxTaGFyZWRBcnJheUJ1ZmZlcil8fGgmJl90KGguYnVmZmVyLFNoYXJlZEFycmF5QnVmZmVyKSkpcmV0dXJuIEYoaCxyLG8pO2lmKCJudW1iZXIiPT10eXBlb2YgaCl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInZhbHVlIiBhcmd1bWVudCBt'@; put 'dXN0IG5vdCBiZSBvZiB0eXBlIG51bWJlci4gUmVjZWl2ZWQgdHlwZSBudW1iZXInKTt2YXIgeT1oLnZhbHVlT2YmJmgudmFsdWVPZigpO2lmKG51bGwhPXkmJnkhPT1oKXJldHVybiBpLmZyb20oeSxyLG8pO3ZhciBQPWZ1bmN0aW9uIHgoaCl7aWYoaS5pc0J1ZmZlcihoKSl7dmFyIHI9MHx3'@; put 'KGgubGVuZ3RoKSxvPWYocik7cmV0dXJuIDA9PT1vLmxlbmd0aHx8aC5jb3B5KG8sMCwwLHIpLG99cmV0dXJuIHZvaWQgMCE9PWgubGVuZ3RoPyJudW1iZXIiIT10eXBlb2YgaC5sZW5ndGh8fG1uKGgubGVuZ3RoKT9mKDApOmcoaCk6IkJ1ZmZlciI9PT1oLnR5cGUmJkFycmF5LmlzQXJyYXko'@; put 'aC5kYXRhKT9nKGguZGF0YSk6dm9pZCAwfShoKTtpZihQKXJldHVybiBQO2lmKHR5cGVvZiBTeW1ib2w8InUiJiZudWxsIT1TeW1ib2wudG9QcmltaXRpdmUmJiJmdW5jdGlvbiI9PXR5cGVvZiBoW1N5bWJvbC50b1ByaW1pdGl2ZV0pcmV0dXJuIGkuZnJvbShoW1N5bWJvbC50b1ByaW1pdGl2'@; put 'ZV0oInN0cmluZyIpLHIsbyk7dGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgb3IgQXJyYXktbGlrZSBPYmplY3QuIFJlY2VpdmVkIHR5cGUgIit0eXBlb2YgaCl9ZnVu'@; put 'Y3Rpb24gcChoKXtpZigibnVtYmVyIiE9dHlwZW9mIGgpdGhyb3cgbmV3IFR5cGVFcnJvcignInNpemUiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBudW1iZXInKTtpZihoPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSAiJytoKyciIGlzIGludmFsaWQgZm9yIG9wdGlvbiAi'@; put 'c2l6ZSInKX1mdW5jdGlvbiBtKGgpe3JldHVybiBwKGgpLGYoaDwwPzA6MHx3KGgpKX1mdW5jdGlvbiBnKGgpe2Zvcih2YXIgcj1oLmxlbmd0aDwwPzA6MHx3KGgubGVuZ3RoKSxvPWYocikseT0wO3k8cjt5Kz0xKW9beV09MjU1JmhbeV07cmV0dXJuIG99ZnVuY3Rpb24gRihoLHIsbyl7aWYo'@; put 'cjwwfHxoLmJ5dGVMZW5ndGg8cil0aHJvdyBuZXcgUmFuZ2VFcnJvcignIm9mZnNldCIgaXMgb3V0c2lkZSBvZiBidWZmZXIgYm91bmRzJyk7aWYoaC5ieXRlTGVuZ3RoPHIrKG98fDApKXRocm93IG5ldyBSYW5nZUVycm9yKCcibGVuZ3RoIiBpcyBvdXRzaWRlIG9mIGJ1ZmZlciBib3VuZHMn'@; put 'KTt2YXIgeTtyZXR1cm4geT12b2lkIDA9PT1yJiZ2b2lkIDA9PT1vP25ldyBVaW50OEFycmF5KGgpOnZvaWQgMD09PW8/bmV3IFVpbnQ4QXJyYXkoaCxyKTpuZXcgVWludDhBcnJheShoLHIsbyksT2JqZWN0LnNldFByb3RvdHlwZU9mKHksaS5wcm90b3R5cGUpLHl9ZnVuY3Rpb24gdyhoKXtp'@; put 'ZihoPj1hKXRocm93IG5ldyBSYW5nZUVycm9yKCJBdHRlbXB0IHRvIGFsbG9jYXRlIEJ1ZmZlciBsYXJnZXIgdGhhbiBtYXhpbXVtIHNpemU6IDB4IithLnRvU3RyaW5nKDE2KSsiIGJ5dGVzIik7cmV0dXJuIDB8aH1mdW5jdGlvbiBJKGgscil7aWYoaS5pc0J1ZmZlcihoKSlyZXR1cm4gaC5s'@; put 'ZW5ndGg7aWYoQXJyYXlCdWZmZXIuaXNWaWV3KGgpfHxfdChoLEFycmF5QnVmZmVyKSlyZXR1cm4gaC5ieXRlTGVuZ3RoO2lmKCJzdHJpbmciIT10eXBlb2YgaCl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInN0cmluZyIgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1'@; put 'ZmZlciwgb3IgQXJyYXlCdWZmZXIuIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2YgaCk7dmFyIG89aC5sZW5ndGgseT1hcmd1bWVudHMubGVuZ3RoPjImJiEwPT09YXJndW1lbnRzWzJdO2lmKCF5JiYwPT09bylyZXR1cm4gMDtmb3IodmFyIFA9ITE7Oylzd2l0Y2gocil7Y2FzZSJhc2NpaSI6Y2Fz'@; put 'ZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gbztjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiBybihoKS5sZW5ndGg7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiAyKm87Y2FzZSJoZXgiOnJldHVybiBvPj4+MTtjYXNl'@; put 'ImJhc2U2NCI6cmV0dXJuIGRuKGgpLmxlbmd0aDtkZWZhdWx0OmlmKFApcmV0dXJuIHk/LTE6cm4oaCkubGVuZ3RoO3I9KCIiK3IpLnRvTG93ZXJDYXNlKCksUD0hMH19ZnVuY3Rpb24gTShoLHIsbyl7dmFyIHk9ITE7aWYoKHZvaWQgMD09PXJ8fHI8MCkmJihyPTApLHI+dGhpcy5sZW5ndGh8'@; put 'fCgodm9pZCAwPT09b3x8bz50aGlzLmxlbmd0aCkmJihvPXRoaXMubGVuZ3RoKSxvPD0wKXx8KG8+Pj49MCk8PShyPj4+PTApKXJldHVybiIiO2ZvcihofHwoaD0idXRmOCIpOzspc3dpdGNoKGgpe2Nhc2UiaGV4IjpyZXR1cm4gZHQodGhpcyxyLG8pO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6'@; put 'cmV0dXJuIHEodGhpcyxyLG8pO2Nhc2UiYXNjaWkiOnJldHVybiBWKHRoaXMscixvKTtjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiBmdCh0aGlzLHIsbyk7Y2FzZSJiYXNlNjQiOnJldHVybiBtdCh0aGlzLHIsbyk7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUi'@; put 'OmNhc2UidXRmLTE2bGUiOnJldHVybiBidCh0aGlzLHIsbyk7ZGVmYXVsdDppZih5KXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIraCk7aD0oaCsiIikudG9Mb3dlckNhc2UoKSx5PSEwfX1mdW5jdGlvbiBUKGgscixvKXt2YXIgeT1oW3JdO2hbcl09aFtvXSxoW29d'@; put 'PXl9ZnVuY3Rpb24gYihoLHIsbyx5LFApe2lmKDA9PT1oLmxlbmd0aClyZXR1cm4tMTtpZigic3RyaW5nIj09dHlwZW9mIG8/KHk9byxvPTApOm8+MjE0NzQ4MzY0Nz9vPTIxNDc0ODM2NDc6bzwtMjE0NzQ4MzY0OCYmKG89LTIxNDc0ODM2NDgpLG1uKG89K28pJiYobz1QPzA6aC5sZW5ndGgt'@; put 'MSksbzwwJiYobz1oLmxlbmd0aCtvKSxvPj1oLmxlbmd0aCl7aWYoUClyZXR1cm4tMTtvPWgubGVuZ3RoLTF9ZWxzZSBpZihvPDApe2lmKCFQKXJldHVybi0xO289MH1pZigic3RyaW5nIj09dHlwZW9mIHImJihyPWkuZnJvbShyLHkpKSxpLmlzQnVmZmVyKHIpKXJldHVybiAwPT09ci5sZW5n'@; put 'dGg/LTE6TChoLHIsbyx5LFApO2lmKCJudW1iZXIiPT10eXBlb2YgcilyZXR1cm4gciY9MjU1LCJmdW5jdGlvbiI9PXR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mP1A/VWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGgscixvKTpVaW50OEFycmF5LnByb3RvdHlw'@; put 'ZS5sYXN0SW5kZXhPZi5jYWxsKGgscixvKTpMKGgsW3JdLG8seSxQKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJ2YWwgbXVzdCBiZSBzdHJpbmcsIG51bWJlciBvciBCdWZmZXIiKX1mdW5jdGlvbiBMKGgscixvLHksUCl7dmFyIEgsSz0xLCQ9aC5sZW5ndGgsanQ9ci5sZW5ndGg7aWYodm9pZCAw'@; put 'IT09eSYmKCJ1Y3MyIj09PSh5PVN0cmluZyh5KS50b0xvd2VyQ2FzZSgpKXx8InVjcy0yIj09PXl8fCJ1dGYxNmxlIj09PXl8fCJ1dGYtMTZsZSI9PT15KSl7aWYoaC5sZW5ndGg8Mnx8ci5sZW5ndGg8MilyZXR1cm4tMTtLPTIsJC89MixqdC89MixvLz0yfWZ1bmN0aW9uIF8oUXQsYW4pe3Jl'@; put 'dHVybiAxPT09Sz9RdFthbl06UXQucmVhZFVJbnQxNkJFKGFuKkspfWlmKFApe3ZhciBRPS0xO2ZvcihIPW87SDwkO0grKylpZihfKGgsSCk9PT1fKHIsLTE9PT1RPzA6SC1RKSl7aWYoLTE9PT1RJiYoUT1IKSxILVErMT09PWp0KXJldHVybiBRKkt9ZWxzZS0xIT09USYmKEgtPUgtUSksUT0t'@; put 'MX1lbHNlIGZvcihvK2p0PiQmJihvPSQtanQpLEg9bztIPj0wO0gtLSl7Zm9yKHZhciBpdD0hMCx6dD0wO3p0PGp0O3p0KyspaWYoXyhoLEgrenQpIT09XyhyLHp0KSl7aXQ9ITE7YnJlYWt9aWYoaXQpcmV0dXJuIEh9cmV0dXJuLTF9ZnVuY3Rpb24gVShoLHIsbyx5KXtvPU51bWJlcihvKXx8'@; put 'MDt2YXIgUD1oLmxlbmd0aC1vO3k/KHk9TnVtYmVyKHkpKT5QJiYoeT1QKTp5PVA7dmFyIEs9ci5sZW5ndGg7eT5LLzImJih5PUsvMik7Zm9yKHZhciAkPTA7JDx5OysrJCl7dmFyIGp0PXBhcnNlSW50KHIuc3Vic3RyKDIqJCwyKSwxNik7aWYobW4oanQpKXJldHVybiAkO2hbbyskXT1qdH1y'@; put 'ZXR1cm4gJH1mdW5jdGlvbiBaKGgscixvLHkpe3JldHVybiBzbihybihyLGgubGVuZ3RoLW8pLGgsbyx5KX1mdW5jdGlvbiBudChoLHIsbyx5KXtyZXR1cm4gc24oZnVuY3Rpb24geG4oaCl7Zm9yKHZhciByPVtdLG89MDtvPGgubGVuZ3RoOysrbylyLnB1c2goMjU1JmguY2hhckNvZGVBdChv'@; put 'KSk7cmV0dXJuIHJ9KHIpLGgsbyx5KX1mdW5jdGlvbiB0dChoLHIsbyx5KXtyZXR1cm4gc24oZG4ociksaCxvLHkpfWZ1bmN0aW9uIHl0KGgscixvLHkpe3JldHVybiBzbihmdW5jdGlvbiBxdChoLHIpe2Zvcih2YXIgbyx5LEs9W10sJD0wOyQ8aC5sZW5ndGgmJiEoKHItPTIpPDApOysrJCl5'@; put 'PShvPWguY2hhckNvZGVBdCgkKSk+PjgsSy5wdXNoKG8lMjU2KSxLLnB1c2goeSk7cmV0dXJuIEt9KHIsaC5sZW5ndGgtbyksaCxvLHkpfWZ1bmN0aW9uIG10KGgscixvKXtyZXR1cm4gbi5mcm9tQnl0ZUFycmF5KDA9PT1yJiZvPT09aC5sZW5ndGg/aDpoLnNsaWNlKHIsbykpfWZ1bmN0aW9u'@; put 'IHEoaCxyLG8pe289TWF0aC5taW4oaC5sZW5ndGgsbyk7Zm9yKHZhciB5PVtdLFA9cjtQPG87KXt2YXIgXyxILFEsaXQsSz1oW1BdLCQ9bnVsbCxqdD1LPjIzOT80Oks+MjIzPzM6Sz4xOTE/MjoxO2lmKFAranQ8PW8pc3dpdGNoKGp0KXtjYXNlIDE6SzwxMjgmJigkPUspO2JyZWFrO2Nhc2Ug'@; put 'MjoxMjg9PSgxOTImKF89aFtQKzFdKSkmJihpdD0oMzEmSyk8PDZ8NjMmXyk+MTI3JiYoJD1pdCk7YnJlYWs7Y2FzZSAzOkg9aFtQKzJdLDEyOD09KDE5MiYoXz1oW1ArMV0pKSYmMTI4PT0oMTkyJkgpJiYoaXQ9KDE1JkspPDwxMnwoNjMmXyk8PDZ8NjMmSCk+MjA0NyYmKGl0PDU1Mjk2fHxp'@; put 'dD41NzM0MykmJigkPWl0KTticmVhaztjYXNlIDQ6SD1oW1ArMl0sUT1oW1ArM10sMTI4PT0oMTkyJihfPWhbUCsxXSkpJiYxMjg9PSgxOTImSCkmJjEyOD09KDE5MiZRKSYmKGl0PSgxNSZLKTw8MTh8KDYzJl8pPDwxMnwoNjMmSCk8PDZ8NjMmUSk+NjU1MzUmJml0PDExMTQxMTImJigkPWl0'@; put 'KX1udWxsPT09JD8oJD02NTUzMyxqdD0xKTokPjY1NTM1JiYoeS5wdXNoKCgkLT02NTUzNik+Pj4xMCYxMDIzfDU1Mjk2KSwkPTU2MzIwfDEwMjMmJCkseS5wdXNoKCQpLFArPWp0fXJldHVybiBmdW5jdGlvbiBldChoKXt2YXIgcj1oLmxlbmd0aDtpZihyPD1YKXJldHVybiBTdHJpbmcuZnJv'@; put 'bUNoYXJDb2RlLmFwcGx5KFN0cmluZyxoKTtmb3IodmFyIG89IiIseT0wO3k8cjspbys9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsaC5zbGljZSh5LHkrPVgpKTtyZXR1cm4gb30oeSl9bC5rTWF4TGVuZ3RoPWEsIShpLlRZUEVEX0FSUkFZX1NVUFBPUlQ9ZnVuY3Rpb24gdSgp'@; put 'e3RyeXt2YXIgaD1uZXcgVWludDhBcnJheSgxKSxyPXtmb286ZnVuY3Rpb24oKXtyZXR1cm4gNDJ9fTtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKHIsVWludDhBcnJheS5wcm90b3R5cGUpLE9iamVjdC5zZXRQcm90b3R5cGVPZihoLHIpLDQyPT09aC5mb28oKX1jYXRjaHtyZXR1cm4h'@; put 'MX19KCkpJiZ0eXBlb2YgY29uc29sZTwidSImJiJmdW5jdGlvbiI9PXR5cGVvZiBjb25zb2xlLmVycm9yJiZjb25zb2xlLmVycm9yKCJUaGlzIGJyb3dzZXIgbGFja3MgdHlwZWQgYXJyYXkgKFVpbnQ4QXJyYXkpIHN1cHBvcnQgd2hpY2ggaXMgcmVxdWlyZWQgYnkgYGJ1ZmZlcmAgdjUueC4g'@; put 'VXNlIGBidWZmZXJgIHY0LnggaWYgeW91IHJlcXVpcmUgb2xkIGJyb3dzZXIgc3VwcG9ydC4iKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoaS5wcm90b3R5cGUsInBhcmVudCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7aWYoaS5pc0J1ZmZlcih0aGlzKSlyZXR1cm4gdGhpcy5idWZm'@; put 'ZXJ9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGkucHJvdG90eXBlLCJvZmZzZXQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2lmKGkuaXNCdWZmZXIodGhpcykpcmV0dXJuIHRoaXMuYnl0ZU9mZnNldH19KSxpLnBvb2xTaXplPTgxOTIsaS5mcm9tPWZ1bmN0aW9uKGgscixvKXty'@; put 'ZXR1cm4gdihoLHIsbyl9LE9iamVjdC5zZXRQcm90b3R5cGVPZihpLnByb3RvdHlwZSxVaW50OEFycmF5LnByb3RvdHlwZSksT2JqZWN0LnNldFByb3RvdHlwZU9mKGksVWludDhBcnJheSksaS5hbGxvYz1mdW5jdGlvbihoLHIsbyl7cmV0dXJuIGZ1bmN0aW9uIGQoaCxyLG8pe3JldHVybiBw'@; put 'KGgpLGg8PTA/ZihoKTp2b2lkIDAhPT1yPyJzdHJpbmciPT10eXBlb2Ygbz9mKGgpLmZpbGwocixvKTpmKGgpLmZpbGwocik6ZihoKX0oaCxyLG8pfSxpLmFsbG9jVW5zYWZlPWZ1bmN0aW9uKGgpe3JldHVybiBtKGgpfSxpLmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbihoKXtyZXR1cm4gbSho'@; put 'KX0saS5pc0J1ZmZlcj1mdW5jdGlvbihyKXtyZXR1cm4gbnVsbCE9ciYmITA9PT1yLl9pc0J1ZmZlciYmciE9PWkucHJvdG90eXBlfSxpLmNvbXBhcmU9ZnVuY3Rpb24ocixvKXtpZihfdChyLFVpbnQ4QXJyYXkpJiYocj1pLmZyb20ocixyLm9mZnNldCxyLmJ5dGVMZW5ndGgpKSxfdChvLFVp'@; put 'bnQ4QXJyYXkpJiYobz1pLmZyb20obyxvLm9mZnNldCxvLmJ5dGVMZW5ndGgpKSwhaS5pc0J1ZmZlcihyKXx8IWkuaXNCdWZmZXIobykpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJidWYxIiwgImJ1ZjIiIGFyZ3VtZW50cyBtdXN0IGJlIG9uZSBvZiB0eXBlIEJ1ZmZlciBvciBVaW50OEFy'@; put 'cmF5Jyk7aWYocj09PW8pcmV0dXJuIDA7Zm9yKHZhciB5PXIubGVuZ3RoLFA9by5sZW5ndGgsSz0wLCQ9TWF0aC5taW4oeSxQKTtLPCQ7KytLKWlmKHJbS10hPT1vW0tdKXt5PXJbS10sUD1vW0tdO2JyZWFrfXJldHVybiB5PFA/LTE6UDx5PzE6MH0saS5pc0VuY29kaW5nPWZ1bmN0aW9uKHIp'@; put 'e3N3aXRjaChTdHJpbmcocikudG9Mb3dlckNhc2UoKSl7Y2FzZSJoZXgiOmNhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6Y2FzZSJhc2NpaSI6Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpjYXNlImJhc2U2NCI6Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2'@; put 'bGUiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fSxpLmNvbmNhdD1mdW5jdGlvbihyLG8pe2lmKCFBcnJheS5pc0FycmF5KHIpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJsaXN0IiBhcmd1bWVudCBtdXN0IGJlIGFuIEFycmF5IG9mIEJ1ZmZlcnMnKTtpZigwPT09ci5sZW5ndGgpcmV0dXJu'@; put 'IGkuYWxsb2MoMCk7dmFyIHk7aWYodm9pZCAwPT09bylmb3Iobz0wLHk9MDt5PHIubGVuZ3RoOysreSlvKz1yW3ldLmxlbmd0aDt2YXIgUD1pLmFsbG9jVW5zYWZlKG8pLEs9MDtmb3IoeT0wO3k8ci5sZW5ndGg7Kyt5KXt2YXIgJD1yW3ldO2lmKF90KCQsVWludDhBcnJheSkpSyskLmxlbmd0'@; put 'aD5QLmxlbmd0aD9pLmZyb20oJCkuY29weShQLEspOlVpbnQ4QXJyYXkucHJvdG90eXBlLnNldC5jYWxsKFAsJCxLKTtlbHNle2lmKCFpLmlzQnVmZmVyKCQpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJsaXN0IiBhcmd1bWVudCBtdXN0IGJlIGFuIEFycmF5IG9mIEJ1ZmZlcnMnKTskLmNvcHko'@; put 'UCxLKX1LKz0kLmxlbmd0aH1yZXR1cm4gUH0saS5ieXRlTGVuZ3RoPUksaS5wcm90b3R5cGUuX2lzQnVmZmVyPSEwLGkucHJvdG90eXBlLnN3YXAxNj1mdW5jdGlvbigpe3ZhciByPXRoaXMubGVuZ3RoO2lmKHIlMiE9MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBi'@; put 'ZSBhIG11bHRpcGxlIG9mIDE2LWJpdHMiKTtmb3IodmFyIG89MDtvPHI7bys9MilUKHRoaXMsbyxvKzEpO3JldHVybiB0aGlzfSxpLnByb3RvdHlwZS5zd2FwMzI9ZnVuY3Rpb24oKXt2YXIgcj10aGlzLmxlbmd0aDtpZihyJTQhPTApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkJ1ZmZlciBzaXpl'@; put 'IG11c3QgYmUgYSBtdWx0aXBsZSBvZiAzMi1iaXRzIik7Zm9yKHZhciBvPTA7bzxyO28rPTQpVCh0aGlzLG8sbyszKSxUKHRoaXMsbysxLG8rMik7cmV0dXJuIHRoaXN9LGkucHJvdG90eXBlLnN3YXA2ND1mdW5jdGlvbigpe3ZhciByPXRoaXMubGVuZ3RoO2lmKHIlOCE9MCl0aHJvdyBuZXcg'@; put 'UmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDY0LWJpdHMiKTtmb3IodmFyIG89MDtvPHI7bys9OClUKHRoaXMsbyxvKzcpLFQodGhpcyxvKzEsbys2KSxUKHRoaXMsbysyLG8rNSksVCh0aGlzLG8rMyxvKzQpO3JldHVybiB0aGlzfSxpLnByb3RvdHlwZS50'@; put 'b0xvY2FsZVN0cmluZz1pLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3ZhciByPXRoaXMubGVuZ3RoO3JldHVybiAwPT09cj8iIjowPT09YXJndW1lbnRzLmxlbmd0aD9xKHRoaXMsMCxyKTpNLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0saS5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9u'@; put 'KHIpe2lmKCFpLmlzQnVmZmVyKHIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIiKTtyZXR1cm4gdGhpcz09PXJ8fDA9PT1pLmNvbXBhcmUodGhpcyxyKX0saS5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3ZhciByPSIiLG89bC5JTlNQRUNUX01B'@; put 'WF9CWVRFUztyZXR1cm4gcj10aGlzLnRvU3RyaW5nKCJoZXgiLDAsbykucmVwbGFjZSgvKC57Mn0pL2csIiQxICIpLnRyaW0oKSx0aGlzLmxlbmd0aD5vJiYocis9IiAuLi4gIiksIjxCdWZmZXIgIityKyI+In0scyYmKGkucHJvdG90eXBlW3NdPWkucHJvdG90eXBlLmluc3BlY3QpLGkucHJv'@; put 'dG90eXBlLmNvbXBhcmU9ZnVuY3Rpb24ocixvLHksUCxLKXtpZihfdChyLFVpbnQ4QXJyYXkpJiYocj1pLmZyb20ocixyLm9mZnNldCxyLmJ5dGVMZW5ndGgpKSwhaS5pc0J1ZmZlcihyKSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInRhcmdldCIgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2Yg'@; put 'dHlwZSBCdWZmZXIgb3IgVWludDhBcnJheS4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiByKTtpZih2b2lkIDA9PT1vJiYobz0wKSx2b2lkIDA9PT15JiYoeT1yP3IubGVuZ3RoOjApLHZvaWQgMD09PVAmJihQPTApLHZvaWQgMD09PUsmJihLPXRoaXMubGVuZ3RoKSxvPDB8fHk+ci5sZW5ndGh8'@; put 'fFA8MHx8Sz50aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib3V0IG9mIHJhbmdlIGluZGV4Iik7aWYoUD49SyYmbz49eSlyZXR1cm4gMDtpZihQPj1LKXJldHVybi0xO2lmKG8+PXkpcmV0dXJuIDE7aWYodGhpcz09PXIpcmV0dXJuIDA7Zm9yKHZhciAkPShLPj4+PTApLShQPj4+'@; put 'PTApLGp0PSh5Pj4+PTApLShvPj4+PTApLF89TWF0aC5taW4oJCxqdCksSD10aGlzLnNsaWNlKFAsSyksUT1yLnNsaWNlKG8seSksaXQ9MDtpdDxfOysraXQpaWYoSFtpdF0hPT1RW2l0XSl7JD1IW2l0XSxqdD1RW2l0XTticmVha31yZXR1cm4gJDxqdD8tMTpqdDwkPzE6MH0saS5wcm90b3R5'@; put 'cGUuaW5jbHVkZXM9ZnVuY3Rpb24ocixvLHkpe3JldHVybi0xIT09dGhpcy5pbmRleE9mKHIsbyx5KX0saS5wcm90b3R5cGUuaW5kZXhPZj1mdW5jdGlvbihyLG8seSl7cmV0dXJuIGIodGhpcyxyLG8seSwhMCl9LGkucHJvdG90eXBlLmxhc3RJbmRleE9mPWZ1bmN0aW9uKHIsbyx5KXtyZXR1'@; put 'cm4gYih0aGlzLHIsbyx5LCExKX0saS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24ocixvLHksUCl7aWYodm9pZCAwPT09bylQPSJ1dGY4Iix5PXRoaXMubGVuZ3RoLG89MDtlbHNlIGlmKHZvaWQgMD09PXkmJiJzdHJpbmciPT10eXBlb2YgbylQPW8seT10aGlzLmxlbmd0aCxvPTA7ZWxzZXtp'@; put 'ZighaXNGaW5pdGUobykpdGhyb3cgbmV3IEVycm9yKCJCdWZmZXIud3JpdGUoc3RyaW5nLCBlbmNvZGluZywgb2Zmc2V0WywgbGVuZ3RoXSkgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCIpO28+Pj49MCxpc0Zpbml0ZSh5KT8oeT4+Pj0wLHZvaWQgMD09PVAmJihQPSJ1dGY4IikpOihQPXkseT12'@; put 'b2lkIDApfXZhciBLPXRoaXMubGVuZ3RoLW87aWYoKHZvaWQgMD09PXl8fHk+SykmJih5PUspLHIubGVuZ3RoPjAmJih5PDB8fG88MCl8fG8+dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkF0dGVtcHQgdG8gd3JpdGUgb3V0c2lkZSBidWZmZXIgYm91bmRzIik7UHx8KFA9InV0'@; put 'ZjgiKTtmb3IodmFyICQ9ITE7Oylzd2l0Y2goUCl7Y2FzZSJoZXgiOnJldHVybiBVKHRoaXMscixvLHkpO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIFoodGhpcyxyLG8seSk7Y2FzZSJhc2NpaSI6Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gbnQodGhpcyxyLG8seSk7'@; put 'Y2FzZSJiYXNlNjQiOnJldHVybiB0dCh0aGlzLHIsbyx5KTtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIHl0KHRoaXMscixvLHkpO2RlZmF1bHQ6aWYoJCl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK1Ap'@; put 'O1A9KCIiK1ApLnRvTG93ZXJDYXNlKCksJD0hMH19LGkucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJCdWZmZXIiLGRhdGE6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodGhpcy5fYXJyfHx0aGlzLDApfX07dmFyIFg9NDA5NjtmdW5jdGlvbiBWKGgscixvKXt2'@; put 'YXIgeT0iIjtvPU1hdGgubWluKGgubGVuZ3RoLG8pO2Zvcih2YXIgUD1yO1A8bzsrK1ApeSs9U3RyaW5nLmZyb21DaGFyQ29kZSgxMjcmaFtQXSk7cmV0dXJuIHl9ZnVuY3Rpb24gZnQoaCxyLG8pe3ZhciB5PSIiO289TWF0aC5taW4oaC5sZW5ndGgsbyk7Zm9yKHZhciBQPXI7UDxvOysrUCl5'@; put 'Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKGhbUF0pO3JldHVybiB5fWZ1bmN0aW9uIGR0KGgscixvKXt2YXIgeT1oLmxlbmd0aDsoIXJ8fHI8MCkmJihyPTApLCghb3x8bzwwfHxvPnkpJiYobz15KTtmb3IodmFyIFA9IiIsSz1yO0s8bzsrK0spUCs9VG5baFtLXV07cmV0dXJuIFB9ZnVuY3Rpb24g'@; put 'YnQoaCxyLG8pe2Zvcih2YXIgeT1oLnNsaWNlKHIsbyksUD0iIixLPTA7Szx5Lmxlbmd0aC0xO0srPTIpUCs9U3RyaW5nLmZyb21DaGFyQ29kZSh5W0tdKzI1Nip5W0srMV0pO3JldHVybiBQfWZ1bmN0aW9uIE90KGgscixvKXtpZihoJTEhPTB8fGg8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigi'@; put 'b2Zmc2V0IGlzIG5vdCB1aW50Iik7aWYoaCtyPm8pdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlRyeWluZyB0byBhY2Nlc3MgYmV5b25kIGJ1ZmZlciBsZW5ndGgiKX1mdW5jdGlvbiBOdChoLHIsbyx5LFAsSyl7aWYoIWkuaXNCdWZmZXIoaCkpdGhyb3cgbmV3IFR5cGVFcnJvcignImJ1ZmZlciIg'@; put 'YXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciBpbnN0YW5jZScpO2lmKHI+UHx8cjxLKXRocm93IG5ldyBSYW5nZUVycm9yKCcidmFsdWUiIGFyZ3VtZW50IGlzIG91dCBvZiBib3VuZHMnKTtpZihvK3k+aC5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkluZGV4IG91dCBvZiByYW5nZSIp'@; put 'fWZ1bmN0aW9uIFl0KGgscixvLHksUCxLKXtpZihvK3k+aC5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkluZGV4IG91dCBvZiByYW5nZSIpO2lmKG88MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gb24oaCxyLG8seSxQKXtyZXR1cm4g'@; put 'cj0rcixvPj4+PTAsUHx8WXQoaCwwLG8sNCksZS53cml0ZShoLHIsbyx5LDIzLDQpLG8rNH1mdW5jdGlvbiBHdChoLHIsbyx5LFApe3JldHVybiByPStyLG8+Pj49MCxQfHxZdChoLDAsbyw4KSxlLndyaXRlKGgscixvLHksNTIsOCksbys4fWkucHJvdG90eXBlLnNsaWNlPWZ1bmN0aW9uKHIs'@; put 'byl7dmFyIHk9dGhpcy5sZW5ndGg7KHI9fn5yKTwwPyhyKz15KTwwJiYocj0wKTpyPnkmJihyPXkpLChvPXZvaWQgMD09PW8/eTp+fm8pPDA/KG8rPXkpPDAmJihvPTApOm8+eSYmKG89eSksbzxyJiYobz1yKTt2YXIgUD10aGlzLnN1YmFycmF5KHIsbyk7cmV0dXJuIE9iamVjdC5zZXRQcm90'@; put 'b3R5cGVPZihQLGkucHJvdG90eXBlKSxQfSxpLnByb3RvdHlwZS5yZWFkVWludExFPWkucHJvdG90eXBlLnJlYWRVSW50TEU9ZnVuY3Rpb24ocixvLHkpe3I+Pj49MCxvPj4+PTAseXx8T3QocixvLHRoaXMubGVuZ3RoKTtmb3IodmFyIFA9dGhpc1tyXSxLPTEsJD0wOysrJDxvJiYoSyo9MjU2'@; put 'KTspUCs9dGhpc1tyKyRdKks7cmV0dXJuIFB9LGkucHJvdG90eXBlLnJlYWRVaW50QkU9aS5wcm90b3R5cGUucmVhZFVJbnRCRT1mdW5jdGlvbihyLG8seSl7cj4+Pj0wLG8+Pj49MCx5fHxPdChyLG8sdGhpcy5sZW5ndGgpO2Zvcih2YXIgUD10aGlzW3IrLS1vXSxLPTE7bz4wJiYoSyo9MjU2'@; put 'KTspUCs9dGhpc1tyKy0tb10qSztyZXR1cm4gUH0saS5wcm90b3R5cGUucmVhZFVpbnQ4PWkucHJvdG90eXBlLnJlYWRVSW50OD1mdW5jdGlvbihyLG8pe3JldHVybiByPj4+PTAsb3x8T3QociwxLHRoaXMubGVuZ3RoKSx0aGlzW3JdfSxpLnByb3RvdHlwZS5yZWFkVWludDE2TEU9aS5wcm90'@; put 'b3R5cGUucmVhZFVJbnQxNkxFPWZ1bmN0aW9uKHIsbyl7cmV0dXJuIHI+Pj49MCxvfHxPdChyLDIsdGhpcy5sZW5ndGgpLHRoaXNbcl18dGhpc1tyKzFdPDw4fSxpLnByb3RvdHlwZS5yZWFkVWludDE2QkU9aS5wcm90b3R5cGUucmVhZFVJbnQxNkJFPWZ1bmN0aW9uKHIsbyl7cmV0dXJuIHI+'@; put 'Pj49MCxvfHxPdChyLDIsdGhpcy5sZW5ndGgpLHRoaXNbcl08PDh8dGhpc1tyKzFdfSxpLnByb3RvdHlwZS5yZWFkVWludDMyTEU9aS5wcm90b3R5cGUucmVhZFVJbnQzMkxFPWZ1bmN0aW9uKHIsbyl7cmV0dXJuIHI+Pj49MCxvfHxPdChyLDQsdGhpcy5sZW5ndGgpLCh0aGlzW3JdfHRoaXNb'@; put 'cisxXTw8OHx0aGlzW3IrMl08PDE2KSsxNjc3NzIxNip0aGlzW3IrM119LGkucHJvdG90eXBlLnJlYWRVaW50MzJCRT1pLnByb3RvdHlwZS5yZWFkVUludDMyQkU9ZnVuY3Rpb24ocixvKXtyZXR1cm4gcj4+Pj0wLG98fE90KHIsNCx0aGlzLmxlbmd0aCksMTY3NzcyMTYqdGhpc1tyXSsodGhp'@; put 'c1tyKzFdPDwxNnx0aGlzW3IrMl08PDh8dGhpc1tyKzNdKX0saS5wcm90b3R5cGUucmVhZEludExFPWZ1bmN0aW9uKHIsbyx5KXtyPj4+PTAsbz4+Pj0wLHl8fE90KHIsbyx0aGlzLmxlbmd0aCk7Zm9yKHZhciBQPXRoaXNbcl0sSz0xLCQ9MDsrKyQ8byYmKEsqPTI1Nik7KVArPXRoaXNbcisk'@; put 'XSpLO3JldHVybiBQPj0oSyo9MTI4KSYmKFAtPU1hdGgucG93KDIsOCpvKSksUH0saS5wcm90b3R5cGUucmVhZEludEJFPWZ1bmN0aW9uKHIsbyx5KXtyPj4+PTAsbz4+Pj0wLHl8fE90KHIsbyx0aGlzLmxlbmd0aCk7Zm9yKHZhciBQPW8sSz0xLCQ9dGhpc1tyKy0tUF07UD4wJiYoSyo9MjU2'@; put 'KTspJCs9dGhpc1tyKy0tUF0qSztyZXR1cm4gJD49KEsqPTEyOCkmJigkLT1NYXRoLnBvdygyLDgqbykpLCR9LGkucHJvdG90eXBlLnJlYWRJbnQ4PWZ1bmN0aW9uKHIsbyl7cmV0dXJuIHI+Pj49MCxvfHxPdChyLDEsdGhpcy5sZW5ndGgpLDEyOCZ0aGlzW3JdPy0xKigyNTUtdGhpc1tyXSsx'@; put 'KTp0aGlzW3JdfSxpLnByb3RvdHlwZS5yZWFkSW50MTZMRT1mdW5jdGlvbihyLG8pe3I+Pj49MCxvfHxPdChyLDIsdGhpcy5sZW5ndGgpO3ZhciB5PXRoaXNbcl18dGhpc1tyKzFdPDw4O3JldHVybiAzMjc2OCZ5PzQyOTQ5MDE3NjB8eTp5fSxpLnByb3RvdHlwZS5yZWFkSW50MTZCRT1mdW5j'@; put 'dGlvbihyLG8pe3I+Pj49MCxvfHxPdChyLDIsdGhpcy5sZW5ndGgpO3ZhciB5PXRoaXNbcisxXXx0aGlzW3JdPDw4O3JldHVybiAzMjc2OCZ5PzQyOTQ5MDE3NjB8eTp5fSxpLnByb3RvdHlwZS5yZWFkSW50MzJMRT1mdW5jdGlvbihyLG8pe3JldHVybiByPj4+PTAsb3x8T3Qociw0LHRoaXMu'@; put 'bGVuZ3RoKSx0aGlzW3JdfHRoaXNbcisxXTw8OHx0aGlzW3IrMl08PDE2fHRoaXNbciszXTw8MjR9LGkucHJvdG90eXBlLnJlYWRJbnQzMkJFPWZ1bmN0aW9uKHIsbyl7cmV0dXJuIHI+Pj49MCxvfHxPdChyLDQsdGhpcy5sZW5ndGgpLHRoaXNbcl08PDI0fHRoaXNbcisxXTw8MTZ8dGhpc1ty'@; put 'KzJdPDw4fHRoaXNbciszXX0saS5wcm90b3R5cGUucmVhZEZsb2F0TEU9ZnVuY3Rpb24ocixvKXtyZXR1cm4gcj4+Pj0wLG98fE90KHIsNCx0aGlzLmxlbmd0aCksZS5yZWFkKHRoaXMsciwhMCwyMyw0KX0saS5wcm90b3R5cGUucmVhZEZsb2F0QkU9ZnVuY3Rpb24ocixvKXtyZXR1cm4gcj4+'@; put 'Pj0wLG98fE90KHIsNCx0aGlzLmxlbmd0aCksZS5yZWFkKHRoaXMsciwhMSwyMyw0KX0saS5wcm90b3R5cGUucmVhZERvdWJsZUxFPWZ1bmN0aW9uKHIsbyl7cmV0dXJuIHI+Pj49MCxvfHxPdChyLDgsdGhpcy5sZW5ndGgpLGUucmVhZCh0aGlzLHIsITAsNTIsOCl9LGkucHJvdG90eXBlLnJl'@; put 'YWREb3VibGVCRT1mdW5jdGlvbihyLG8pe3JldHVybiByPj4+PTAsb3x8T3Qociw4LHRoaXMubGVuZ3RoKSxlLnJlYWQodGhpcyxyLCExLDUyLDgpfSxpLnByb3RvdHlwZS53cml0ZVVpbnRMRT1pLnByb3RvdHlwZS53cml0ZVVJbnRMRT1mdW5jdGlvbihyLG8seSxQKXtyPStyLG8+Pj49MCx5'@; put 'Pj4+PTAsUHx8TnQodGhpcyxyLG8seSxNYXRoLnBvdygyLDgqeSktMSwwKTt2YXIgJD0xLGp0PTA7Zm9yKHRoaXNbb109MjU1JnI7KytqdDx5JiYoJCo9MjU2KTspdGhpc1tvK2p0XT1yLyQmMjU1O3JldHVybiBvK3l9LGkucHJvdG90eXBlLndyaXRlVWludEJFPWkucHJvdG90eXBlLndyaXRl'@; put 'VUludEJFPWZ1bmN0aW9uKHIsbyx5LFApe3I9K3Isbz4+Pj0wLHk+Pj49MCxQfHxOdCh0aGlzLHIsbyx5LE1hdGgucG93KDIsOCp5KS0xLDApO3ZhciAkPXktMSxqdD0xO2Zvcih0aGlzW28rJF09MjU1JnI7LS0kPj0wJiYoanQqPTI1Nik7KXRoaXNbbyskXT1yL2p0JjI1NTtyZXR1cm4gbyt5'@; put 'fSxpLnByb3RvdHlwZS53cml0ZVVpbnQ4PWkucHJvdG90eXBlLndyaXRlVUludDg9ZnVuY3Rpb24ocixvLHkpe3JldHVybiByPStyLG8+Pj49MCx5fHxOdCh0aGlzLHIsbywxLDI1NSwwKSx0aGlzW29dPTI1NSZyLG8rMX0saS5wcm90b3R5cGUud3JpdGVVaW50MTZMRT1pLnByb3RvdHlwZS53'@; put 'cml0ZVVJbnQxNkxFPWZ1bmN0aW9uKHIsbyx5KXtyZXR1cm4gcj0rcixvPj4+PTAseXx8TnQodGhpcyxyLG8sMiw2NTUzNSwwKSx0aGlzW29dPTI1NSZyLHRoaXNbbysxXT1yPj4+OCxvKzJ9LGkucHJvdG90eXBlLndyaXRlVWludDE2QkU9aS5wcm90b3R5cGUud3JpdGVVSW50MTZCRT1mdW5j'@; put 'dGlvbihyLG8seSl7cmV0dXJuIHI9K3Isbz4+Pj0wLHl8fE50KHRoaXMscixvLDIsNjU1MzUsMCksdGhpc1tvXT1yPj4+OCx0aGlzW28rMV09MjU1JnIsbysyfSxpLnByb3RvdHlwZS53cml0ZVVpbnQzMkxFPWkucHJvdG90eXBlLndyaXRlVUludDMyTEU9ZnVuY3Rpb24ocixvLHkpe3JldHVy'@; put 'biByPStyLG8+Pj49MCx5fHxOdCh0aGlzLHIsbyw0LDQyOTQ5NjcyOTUsMCksdGhpc1tvKzNdPXI+Pj4yNCx0aGlzW28rMl09cj4+PjE2LHRoaXNbbysxXT1yPj4+OCx0aGlzW29dPTI1NSZyLG8rNH0saS5wcm90b3R5cGUud3JpdGVVaW50MzJCRT1pLnByb3RvdHlwZS53cml0ZVVJbnQzMkJF'@; put 'PWZ1bmN0aW9uKHIsbyx5KXtyZXR1cm4gcj0rcixvPj4+PTAseXx8TnQodGhpcyxyLG8sNCw0Mjk0OTY3Mjk1LDApLHRoaXNbb109cj4+PjI0LHRoaXNbbysxXT1yPj4+MTYsdGhpc1tvKzJdPXI+Pj44LHRoaXNbbyszXT0yNTUmcixvKzR9LGkucHJvdG90eXBlLndyaXRlSW50TEU9ZnVuY3Rp'@; put 'b24ocixvLHksUCl7aWYocj0rcixvPj4+PTAsIVApe3ZhciBLPU1hdGgucG93KDIsOCp5LTEpO050KHRoaXMscixvLHksSy0xLC1LKX12YXIgJD0wLGp0PTEsXz0wO2Zvcih0aGlzW29dPTI1NSZyOysrJDx5JiYoanQqPTI1Nik7KXI8MCYmMD09PV8mJjAhPT10aGlzW28rJC0xXSYmKF89MSks'@; put 'dGhpc1tvKyRdPShyL2p0fDApLV8mMjU1O3JldHVybiBvK3l9LGkucHJvdG90eXBlLndyaXRlSW50QkU9ZnVuY3Rpb24ocixvLHksUCl7aWYocj0rcixvPj4+PTAsIVApe3ZhciBLPU1hdGgucG93KDIsOCp5LTEpO050KHRoaXMscixvLHksSy0xLC1LKX12YXIgJD15LTEsanQ9MSxfPTA7Zm9y'@; put 'KHRoaXNbbyskXT0yNTUmcjstLSQ+PTAmJihqdCo9MjU2KTspcjwwJiYwPT09XyYmMCE9PXRoaXNbbyskKzFdJiYoXz0xKSx0aGlzW28rJF09KHIvanR8MCktXyYyNTU7cmV0dXJuIG8reX0saS5wcm90b3R5cGUud3JpdGVJbnQ4PWZ1bmN0aW9uKHIsbyx5KXtyZXR1cm4gcj0rcixvPj4+PTAs'@; put 'eXx8TnQodGhpcyxyLG8sMSwxMjcsLTEyOCkscjwwJiYocj0yNTUrcisxKSx0aGlzW29dPTI1NSZyLG8rMX0saS5wcm90b3R5cGUud3JpdGVJbnQxNkxFPWZ1bmN0aW9uKHIsbyx5KXtyZXR1cm4gcj0rcixvPj4+PTAseXx8TnQodGhpcyxyLG8sMiwzMjc2NywtMzI3NjgpLHRoaXNbb109MjU1'@; put 'JnIsdGhpc1tvKzFdPXI+Pj44LG8rMn0saS5wcm90b3R5cGUud3JpdGVJbnQxNkJFPWZ1bmN0aW9uKHIsbyx5KXtyZXR1cm4gcj0rcixvPj4+PTAseXx8TnQodGhpcyxyLG8sMiwzMjc2NywtMzI3NjgpLHRoaXNbb109cj4+PjgsdGhpc1tvKzFdPTI1NSZyLG8rMn0saS5wcm90b3R5cGUud3Jp'@; put 'dGVJbnQzMkxFPWZ1bmN0aW9uKHIsbyx5KXtyZXR1cm4gcj0rcixvPj4+PTAseXx8TnQodGhpcyxyLG8sNCwyMTQ3NDgzNjQ3LC0yMTQ3NDgzNjQ4KSx0aGlzW29dPTI1NSZyLHRoaXNbbysxXT1yPj4+OCx0aGlzW28rMl09cj4+PjE2LHRoaXNbbyszXT1yPj4+MjQsbys0fSxpLnByb3RvdHlw'@; put 'ZS53cml0ZUludDMyQkU9ZnVuY3Rpb24ocixvLHkpe3JldHVybiByPStyLG8+Pj49MCx5fHxOdCh0aGlzLHIsbyw0LDIxNDc0ODM2NDcsLTIxNDc0ODM2NDgpLHI8MCYmKHI9NDI5NDk2NzI5NStyKzEpLHRoaXNbb109cj4+PjI0LHRoaXNbbysxXT1yPj4+MTYsdGhpc1tvKzJdPXI+Pj44LHRo'@; put 'aXNbbyszXT0yNTUmcixvKzR9LGkucHJvdG90eXBlLndyaXRlRmxvYXRMRT1mdW5jdGlvbihyLG8seSl7cmV0dXJuIG9uKHRoaXMscixvLCEwLHkpfSxpLnByb3RvdHlwZS53cml0ZUZsb2F0QkU9ZnVuY3Rpb24ocixvLHkpe3JldHVybiBvbih0aGlzLHIsbywhMSx5KX0saS5wcm90b3R5cGUu'@; put 'd3JpdGVEb3VibGVMRT1mdW5jdGlvbihyLG8seSl7cmV0dXJuIEd0KHRoaXMscixvLCEwLHkpfSxpLnByb3RvdHlwZS53cml0ZURvdWJsZUJFPWZ1bmN0aW9uKHIsbyx5KXtyZXR1cm4gR3QodGhpcyxyLG8sITEseSl9LGkucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24ocixvLHksUCl7aWYoIWku'@; put 'aXNCdWZmZXIocikpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXJndW1lbnQgc2hvdWxkIGJlIGEgQnVmZmVyIik7aWYoeXx8KHk9MCksIVAmJjAhPT1QJiYoUD10aGlzLmxlbmd0aCksbz49ci5sZW5ndGgmJihvPXIubGVuZ3RoKSxvfHwobz0wKSxQPjAmJlA8eSYmKFA9eSksUD09PXl8fDA9PT1y'@; put 'Lmxlbmd0aHx8MD09PXRoaXMubGVuZ3RoKXJldHVybiAwO2lmKG88MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigidGFyZ2V0U3RhcnQgb3V0IG9mIGJvdW5kcyIpO2lmKHk8MHx8eT49dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkluZGV4IG91dCBvZiByYW5nZSIpO2lmKFA8MCl0'@; put 'aHJvdyBuZXcgUmFuZ2VFcnJvcigic291cmNlRW5kIG91dCBvZiBib3VuZHMiKTtQPnRoaXMubGVuZ3RoJiYoUD10aGlzLmxlbmd0aCksci5sZW5ndGgtbzxQLXkmJihQPXIubGVuZ3RoLW8reSk7dmFyIEs9UC15O3JldHVybiB0aGlzPT09ciYmImZ1bmN0aW9uIj09dHlwZW9mIFVpbnQ4QXJy'@; put 'YXkucHJvdG90eXBlLmNvcHlXaXRoaW4/dGhpcy5jb3B5V2l0aGluKG8seSxQKTpVaW50OEFycmF5LnByb3RvdHlwZS5zZXQuY2FsbChyLHRoaXMuc3ViYXJyYXkoeSxQKSxvKSxLfSxpLnByb3RvdHlwZS5maWxsPWZ1bmN0aW9uKHIsbyx5LFApe2lmKCJzdHJpbmciPT10eXBlb2Ygcil7aWYo'@; put 'InN0cmluZyI9PXR5cGVvZiBvPyhQPW8sbz0wLHk9dGhpcy5sZW5ndGgpOiJzdHJpbmciPT10eXBlb2YgeSYmKFA9eSx5PXRoaXMubGVuZ3RoKSx2b2lkIDAhPT1QJiYic3RyaW5nIiE9dHlwZW9mIFApdGhyb3cgbmV3IFR5cGVFcnJvcigiZW5jb2RpbmcgbXVzdCBiZSBhIHN0cmluZyIpO2lm'@; put 'KCJzdHJpbmciPT10eXBlb2YgUCYmIWkuaXNFbmNvZGluZyhQKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK1ApO2lmKDE9PT1yLmxlbmd0aCl7dmFyIEs9ci5jaGFyQ29kZUF0KDApOygidXRmOCI9PT1QJiZLPDEyOHx8ImxhdGluMSI9PT1QKSYmKHI9Syl9fWVs'@; put 'c2UibnVtYmVyIj09dHlwZW9mIHI/ciY9MjU1OiJib29sZWFuIj09dHlwZW9mIHImJihyPU51bWJlcihyKSk7aWYobzwwfHx0aGlzLmxlbmd0aDxvfHx0aGlzLmxlbmd0aDx5KXRocm93IG5ldyBSYW5nZUVycm9yKCJPdXQgb2YgcmFuZ2UgaW5kZXgiKTtpZih5PD1vKXJldHVybiB0aGlzO3Zh'@; put 'ciAkO2lmKG8+Pj49MCx5PXZvaWQgMD09PXk/dGhpcy5sZW5ndGg6eT4+PjAscnx8KHI9MCksIm51bWJlciI9PXR5cGVvZiByKWZvcigkPW87JDx5OysrJCl0aGlzWyRdPXI7ZWxzZXt2YXIganQ9aS5pc0J1ZmZlcihyKT9yOmkuZnJvbShyLFApLF89anQubGVuZ3RoO2lmKDA9PT1fKXRocm93'@; put 'IG5ldyBUeXBlRXJyb3IoJ1RoZSB2YWx1ZSAiJytyKyciIGlzIGludmFsaWQgZm9yIGFyZ3VtZW50ICJ2YWx1ZSInKTtmb3IoJD0wOyQ8eS1vOysrJCl0aGlzWyQrb109anRbJCVfXX1yZXR1cm4gdGhpc307dmFyIHVuPS9bXisvMC05QS1aYS16LV9dL2c7ZnVuY3Rpb24gcm4oaCxyKXtyPXJ8'@; put 'fDEvMDtmb3IodmFyIG8seT1oLmxlbmd0aCxQPW51bGwsSz1bXSwkPTA7JDx5OysrJCl7aWYoKG89aC5jaGFyQ29kZUF0KCQpKT41NTI5NSYmbzw1NzM0NCl7aWYoIVApe2lmKG8+NTYzMTkpeyhyLT0zKT4tMSYmSy5wdXNoKDIzOSwxOTEsMTg5KTtjb250aW51ZX1pZigkKzE9PT15KXsoci09'@; put 'Myk+LTEmJksucHVzaCgyMzksMTkxLDE4OSk7Y29udGludWV9UD1vO2NvbnRpbnVlfWlmKG88NTYzMjApeyhyLT0zKT4tMSYmSy5wdXNoKDIzOSwxOTEsMTg5KSxQPW87Y29udGludWV9bz02NTUzNisoUC01NTI5Njw8MTB8by01NjMyMCl9ZWxzZSBQJiYoci09Myk+LTEmJksucHVzaCgyMzks'@; put 'MTkxLDE4OSk7aWYoUD1udWxsLG88MTI4KXtpZigoci09MSk8MClicmVhaztLLnB1c2gobyl9ZWxzZSBpZihvPDIwNDgpe2lmKChyLT0yKTwwKWJyZWFrO0sucHVzaChvPj42fDE5Miw2MyZvfDEyOCl9ZWxzZSBpZihvPDY1NTM2KXtpZigoci09Myk8MClicmVhaztLLnB1c2gobz4+MTJ8MjI0'@; put 'LG8+PjYmNjN8MTI4LDYzJm98MTI4KX1lbHNle2lmKCEobzwxMTE0MTEyKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgY29kZSBwb2ludCIpO2lmKChyLT00KTwwKWJyZWFrO0sucHVzaChvPj4xOHwyNDAsbz4+MTImNjN8MTI4LG8+PjYmNjN8MTI4LDYzJm98MTI4KX19cmV0dXJuIEt9ZnVu'@; put 'Y3Rpb24gZG4oaCl7cmV0dXJuIG4udG9CeXRlQXJyYXkoZnVuY3Rpb24geW4oaCl7aWYoKGg9KGg9aC5zcGxpdCgiPSIpWzBdKS50cmltKCkucmVwbGFjZSh1biwiIikpLmxlbmd0aDwyKXJldHVybiIiO2Zvcig7aC5sZW5ndGglNCE9MDspaCs9Ij0iO3JldHVybiBofShoKSl9ZnVuY3Rpb24g'@; put 'c24oaCxyLG8seSl7Zm9yKHZhciBQPTA7UDx5JiYhKFArbz49ci5sZW5ndGh8fFA+PWgubGVuZ3RoKTsrK1ApcltQK29dPWhbUF07cmV0dXJuIFB9ZnVuY3Rpb24gX3QoaCxyKXtyZXR1cm4gaCBpbnN0YW5jZW9mIHJ8fG51bGwhPWgmJm51bGwhPWguY29uc3RydWN0b3ImJm51bGwhPWguY29u'@; put 'c3RydWN0b3IubmFtZSYmaC5jb25zdHJ1Y3Rvci5uYW1lPT09ci5uYW1lfWZ1bmN0aW9uIG1uKGgpe3JldHVybiBoIT1ofXZhciBUbj1mdW5jdGlvbigpe2Zvcih2YXIgaD0iMDEyMzQ1Njc4OWFiY2RlZiIscj1uZXcgQXJyYXkoMjU2KSxvPTA7bzwxNjsrK28pZm9yKHZhciB5PTE2Km8sUD0w'@; put 'O1A8MTY7KytQKXJbeStQXT1oW29dK2hbUF07cmV0dXJuIHJ9KCl9LDIyMDIwOihjLGwpPT57bC5yZWFkPWZ1bmN0aW9uKHQsbixlLHMsYSl7dmFyIHUsZixpPTgqYS1zLTEsdj0oMTw8aSktMSxwPXY+PjEsZD0tNyxtPWU/YS0xOjAsRT1lPy0xOjEsZz10W24rbV07Zm9yKG0rPUUsdT1nJigx'@; put 'PDwtZCktMSxnPj49LWQsZCs9aTtkPjA7dT0yNTYqdSt0W24rbV0sbSs9RSxkLT04KTtmb3IoZj11JigxPDwtZCktMSx1Pj49LWQsZCs9cztkPjA7Zj0yNTYqZit0W24rbV0sbSs9RSxkLT04KTtpZigwPT09dSl1PTEtcDtlbHNle2lmKHU9PT12KXJldHVybiBmP05hTjoxLzAqKGc/LTE6MSk7'@; put 'Zis9TWF0aC5wb3coMixzKSx1LT1wfXJldHVybihnPy0xOjEpKmYqTWF0aC5wb3coMix1LXMpfSxsLndyaXRlPWZ1bmN0aW9uKHQsbixlLHMsYSx1KXt2YXIgZixpLHYscD04KnUtYS0xLGQ9KDE8PHApLTEsbT1kPj4xLEU9MjM9PT1hP01hdGgucG93KDIsLTI0KS1NYXRoLnBvdygyLC03Nyk6'@; put 'MCxnPXM/MDp1LTEsRD1zPzE6LTEsRj1uPDB8fDA9PT1uJiYxL248MD8xOjA7Zm9yKG49TWF0aC5hYnMobiksaXNOYU4obil8fG49PT0xLzA/KGk9aXNOYU4obik/MTowLGY9ZCk6KGY9TWF0aC5mbG9vcihNYXRoLmxvZyhuKS9NYXRoLkxOMiksbioodj1NYXRoLnBvdygyLC1mKSk8MSYmKGYt'@; put 'LSx2Kj0yKSwobis9ZittPj0xP0UvdjpFKk1hdGgucG93KDIsMS1tKSkqdj49MiYmKGYrKyx2Lz0yKSxmK20+PWQ/KGk9MCxmPWQpOmYrbT49MT8oaT0obip2LTEpKk1hdGgucG93KDIsYSksZis9bSk6KGk9bipNYXRoLnBvdygyLG0tMSkqTWF0aC5wb3coMixhKSxmPTApKTthPj04O3RbZStn'@; put 'XT0yNTUmaSxnKz1ELGkvPTI1NixhLT04KTtmb3IoZj1mPDxhfGkscCs9YTtwPjA7dFtlK2ddPTI1NSZmLGcrPUQsZi89MjU2LHAtPTgpO3RbZStnLURdfD0xMjgqRn19LDk2OTM1OigpPT57InVzZSBzdHJpY3QiO2NvbnN0IGM9Z2xvYmFsVGhpcztmdW5jdGlvbiBsKFMpe3JldHVybihjLl9f'@; put 'Wm9uZV9zeW1ib2xfcHJlZml4fHwiX196b25lX3N5bWJvbF9fIikrU31jb25zdCBlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iscz1PYmplY3QuZGVmaW5lUHJvcGVydHksYT1PYmplY3QuZ2V0UHJvdG90eXBlT2YsdT1PYmplY3QuY3JlYXRlLGY9QXJyYXkucHJvdG90eXBlLnNs'@; put 'aWNlLGk9ImFkZEV2ZW50TGlzdGVuZXIiLHY9InJlbW92ZUV2ZW50TGlzdGVuZXIiLHA9bChpKSxkPWwodiksbT0idHJ1ZSIsRT0iZmFsc2UiLGc9bCgiIik7ZnVuY3Rpb24gRChTLFIpe3JldHVybiBab25lLmN1cnJlbnQud3JhcChTLFIpfWZ1bmN0aW9uIEYoUyxSLEIsTyxOKXtyZXR1cm4g'@; put 'Wm9uZS5jdXJyZW50LnNjaGVkdWxlTWFjcm9UYXNrKFMsUixCLE8sTil9Y29uc3QgeD1sLHc9dHlwZW9mIHdpbmRvdzwidSIsQz13P3dpbmRvdzp2b2lkIDAsST13JiZDfHxnbG9iYWxUaGlzLE09InJlbW92ZUF0dHJpYnV0ZSI7ZnVuY3Rpb24gVChTLFIpe2ZvcihsZXQgQj1TLmxlbmd0aC0x'@; put 'O0I+PTA7Qi0tKSJmdW5jdGlvbiI9PXR5cGVvZiBTW0JdJiYoU1tCXT1EKFNbQl0sUisiXyIrQikpO3JldHVybiBTfWZ1bmN0aW9uIEwoUyl7cmV0dXJuIVN8fCExIT09Uy53cml0YWJsZSYmISgiZnVuY3Rpb24iPT10eXBlb2YgUy5nZXQmJnR5cGVvZiBTLnNldD4idSIpfWNvbnN0IFU9dHlw'@; put 'ZW9mIFdvcmtlckdsb2JhbFNjb3BlPCJ1IiYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlLFo9ISgibnciaW4gSSkmJnR5cGVvZiBJLnByb2Nlc3M8InUiJiYiW29iamVjdCBwcm9jZXNzXSI9PT1JLnByb2Nlc3MudG9TdHJpbmcoKSxudD0hWiYmIVUmJiEoIXd8fCFDLkhUTUxF'@; put 'bGVtZW50KSx0dD10eXBlb2YgSS5wcm9jZXNzPCJ1IiYmIltvYmplY3QgcHJvY2Vzc10iPT09SS5wcm9jZXNzLnRvU3RyaW5nKCkmJiFVJiYhKCF3fHwhQy5IVE1MRWxlbWVudCkseXQ9e30sbXQ9eCgiZW5hYmxlX2JlZm9yZXVubG9hZCIpLHE9ZnVuY3Rpb24oUyl7aWYoIShTPVN8fEkuZXZl'@; put 'bnQpKXJldHVybjtsZXQgUj15dFtTLnR5cGVdO1J8fChSPXl0W1MudHlwZV09eCgiT05fUFJPUEVSVFkiK1MudHlwZSkpO2NvbnN0IEI9dGhpc3x8Uy50YXJnZXR8fEksTz1CW1JdO2xldCBOO3JldHVybiBudCYmQj09PUMmJiJlcnJvciI9PT1TLnR5cGU/KE49TyYmTy5jYWxsKHRoaXMsUy5t'@; put 'ZXNzYWdlLFMuZmlsZW5hbWUsUy5saW5lbm8sUy5jb2xubyxTLmVycm9yKSwhMD09PU4mJlMucHJldmVudERlZmF1bHQoKSk6KE49TyYmTy5hcHBseSh0aGlzLGFyZ3VtZW50cyksImJlZm9yZXVubG9hZCI9PT1TLnR5cGUmJklbbXRdJiYic3RyaW5nIj09dHlwZW9mIE4/Uy5yZXR1cm5WYWx1'@; put 'ZT1OOm51bGwhPU4mJiFOJiZTLnByZXZlbnREZWZhdWx0KCkpLE59O2Z1bmN0aW9uIFgoUyxSLEIpe2xldCBPPWUoUyxSKTtpZighTyYmQiYmZShCLFIpJiYoTz17ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSwhT3x8IU8uY29uZmlndXJhYmxlKXJldHVybjtjb25zdCBOPXgoIm9u'@; put 'IitSKyJwYXRjaGVkIik7aWYoUy5oYXNPd25Qcm9wZXJ0eShOKSYmU1tOXSlyZXR1cm47ZGVsZXRlIE8ud3JpdGFibGUsZGVsZXRlIE8udmFsdWU7Y29uc3QgSj1PLmdldCxvdD1PLnNldCxzdD1SLnNsaWNlKDIpO2xldCBsdD15dFtzdF07bHR8fChsdD15dFtzdF09eCgiT05fUFJPUEVSVFki'@; put 'K3N0KSksTy5zZXQ9ZnVuY3Rpb24oU3Qpe2xldCBydD10aGlzOyFydCYmUz09PUkmJihydD1JKSxydCYmKCJmdW5jdGlvbiI9PXR5cGVvZiBydFtsdF0mJnJ0LnJlbW92ZUV2ZW50TGlzdGVuZXIoc3QscSksb3QmJm90LmNhbGwocnQsbnVsbCkscnRbbHRdPVN0LCJmdW5jdGlvbiI9PXR5cGVv'@; put 'ZiBTdCYmcnQuYWRkRXZlbnRMaXN0ZW5lcihzdCxxLCExKSl9LE8uZ2V0PWZ1bmN0aW9uKCl7bGV0IFN0PXRoaXM7aWYoIVN0JiZTPT09SSYmKFN0PUkpLCFTdClyZXR1cm4gbnVsbDtjb25zdCBydD1TdFtsdF07aWYocnQpcmV0dXJuIHJ0O2lmKEope2xldCB4dD1KLmNhbGwodGhpcyk7aWYo'@; put 'eHQpcmV0dXJuIE8uc2V0LmNhbGwodGhpcyx4dCksImZ1bmN0aW9uIj09dHlwZW9mIFN0W01dJiZTdC5yZW1vdmVBdHRyaWJ1dGUoUikseHR9cmV0dXJuIG51bGx9LHMoUyxSLE8pLFNbTl09ITB9ZnVuY3Rpb24gZXQoUyxSLEIpe2lmKFIpZm9yKGxldCBPPTA7TzxSLmxlbmd0aDtPKyspWChT'@; put 'LCJvbiIrUltPXSxCKTtlbHNle2NvbnN0IE89W107Zm9yKGNvbnN0IE4gaW4gUykib24iPT1OLnNsaWNlKDAsMikmJk8ucHVzaChOKTtmb3IobGV0IE49MDtOPE8ubGVuZ3RoO04rKylYKFMsT1tOXSxCKX19Y29uc3QgVj14KCJvcmlnaW5hbEluc3RhbmNlIik7ZnVuY3Rpb24gZnQoUyl7Y29u'@; put 'c3QgUj1JW1NdO2lmKCFSKXJldHVybjtJW3goUyldPVIsSVtTXT1mdW5jdGlvbigpe2NvbnN0IE49VChhcmd1bWVudHMsUyk7c3dpdGNoKE4ubGVuZ3RoKXtjYXNlIDA6dGhpc1tWXT1uZXcgUjticmVhaztjYXNlIDE6dGhpc1tWXT1uZXcgUihOWzBdKTticmVhaztjYXNlIDI6dGhpc1tWXT1u'@; put 'ZXcgUihOWzBdLE5bMV0pO2JyZWFrO2Nhc2UgMzp0aGlzW1ZdPW5ldyBSKE5bMF0sTlsxXSxOWzJdKTticmVhaztjYXNlIDQ6dGhpc1tWXT1uZXcgUihOWzBdLE5bMV0sTlsyXSxOWzNdKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiQXJnIGxpc3QgdG9vIGxvbmcuIil9fSxPdChJ'@; put 'W1NdLFIpO2NvbnN0IEI9bmV3IFIoZnVuY3Rpb24oKXt9KTtsZXQgTztmb3IoTyBpbiBCKSJYTUxIdHRwUmVxdWVzdCI9PT1TJiYicmVzcG9uc2VCbG9iIj09PU98fGZ1bmN0aW9uKE4peyJmdW5jdGlvbiI9PXR5cGVvZiBCW05dP0lbU10ucHJvdG90eXBlW05dPWZ1bmN0aW9uKCl7cmV0dXJu'@; put 'IHRoaXNbVl1bTl0uYXBwbHkodGhpc1tWXSxhcmd1bWVudHMpfTpzKElbU10ucHJvdG90eXBlLE4se3NldDpmdW5jdGlvbihKKXsiZnVuY3Rpb24iPT10eXBlb2YgSj8odGhpc1tWXVtOXT1EKEosUysiLiIrTiksT3QodGhpc1tWXVtOXSxKKSk6dGhpc1tWXVtOXT1KfSxnZXQ6ZnVuY3Rpb24o'@; put 'KXtyZXR1cm4gdGhpc1tWXVtOXX19KX0oTyk7Zm9yKE8gaW4gUikicHJvdG90eXBlIiE9PU8mJlIuaGFzT3duUHJvcGVydHkoTykmJihJW1NdW09dPVJbT10pfWZ1bmN0aW9uIGR0KFMsUixCKXtsZXQgTz1TO2Zvcig7TyYmIU8uaGFzT3duUHJvcGVydHkoUik7KU89YShPKTshTyYmU1tSXSYm'@; put 'KE89Uyk7Y29uc3QgTj14KFIpO2xldCBKPW51bGw7aWYoTyYmKCEoSj1PW05dKXx8IU8uaGFzT3duUHJvcGVydHkoTikpJiYoSj1PW05dPU9bUl0sTChPJiZlKE8sUikpKSl7Y29uc3Qgc3Q9QihKLE4sUik7T1tSXT1mdW5jdGlvbigpe3JldHVybiBzdCh0aGlzLGFyZ3VtZW50cyl9LE90KE9b'@; put 'Ul0sSil9cmV0dXJuIEp9ZnVuY3Rpb24gYnQoUyxSLEIpe2xldCBPPW51bGw7ZnVuY3Rpb24gTihKKXtjb25zdCBvdD1KLmRhdGE7cmV0dXJuIG90LmFyZ3Nbb3QuY2JJZHhdPWZ1bmN0aW9uKCl7Si5pbnZva2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxPLmFwcGx5KG90LnRhcmdldCxvdC5h'@; put 'cmdzKSxKfU89ZHQoUyxSLEo9PmZ1bmN0aW9uKG90LHN0KXtjb25zdCBsdD1CKG90LHN0KTtyZXR1cm4gbHQuY2JJZHg+PTAmJiJmdW5jdGlvbiI9PXR5cGVvZiBzdFtsdC5jYklkeF0/RihsdC5uYW1lLHN0W2x0LmNiSWR4XSxsdCxOKTpKLmFwcGx5KG90LHN0KX0pfWZ1bmN0aW9uIE90KFMs'@; put 'Uil7U1t4KCJPcmlnaW5hbERlbGVnYXRlIildPVJ9bGV0IE50PSExLFl0PSExO2Z1bmN0aW9uIEd0KCl7aWYoTnQpcmV0dXJuIFl0O050PSEwO3RyeXtjb25zdCBTPUMubmF2aWdhdG9yLnVzZXJBZ2VudDsoLTEhPT1TLmluZGV4T2YoIk1TSUUgIil8fC0xIT09Uy5pbmRleE9mKCJUcmlkZW50'@; put 'LyIpfHwtMSE9PVMuaW5kZXhPZigiRWRnZS8iKSkmJihZdD0hMCl9Y2F0Y2h7fXJldHVybiBZdH1mdW5jdGlvbiB1bihTKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgU31mdW5jdGlvbiB5bihTKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIFN9bGV0IHJuPSExO2lmKHR5cGVvZiB3aW5kb3c8'@; put 'InUiKXRyeXtjb25zdCBTPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwicGFzc2l2ZSIse2dldDpmdW5jdGlvbigpe3JuPSEwfX0pO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IixTLFMpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0IixTLFMpfWNhdGNoe3JuPSExfWNv'@; put 'bnN0IHhuPXt1c2VHOiEwfSxxdD17fSxkbj17fSxzbj1uZXcgUmVnRXhwKCJeIitnKyIoXFx3KykodHJ1ZXxmYWxzZSkkIiksX3Q9eCgicHJvcGFnYXRpb25TdG9wcGVkIik7ZnVuY3Rpb24gbW4oUyxSKXtjb25zdCBCPShSP1IoUyk6UykrRSxPPShSP1IoUyk6UykrbSxOPWcrQixKPWcrTztx'@; put 'dFtTXT17fSxxdFtTXVtFXT1OLHF0W1NdW21dPUp9ZnVuY3Rpb24gVG4oUyxSLEIsTyl7Y29uc3QgTj1PJiZPLmFkZHx8aSxKPU8mJk8ucm18fHYsb3Q9TyYmTy5saXN0ZW5lcnN8fCJldmVudExpc3RlbmVycyIsc3Q9TyYmTy5ybUFsbHx8InJlbW92ZUFsbExpc3RlbmVycyIsbHQ9eChOKSxT'@; put 'dD0iLiIrTisiOiIscnQ9InByZXBlbmRMaXN0ZW5lciIseHQ9Ii4iK3J0KyI6IixEdD1mdW5jdGlvbih2dCxZLGt0KXtpZih2dC5pc1JlbW92ZWQpcmV0dXJuO2NvbnN0IEx0PXZ0LmNhbGxiYWNrO2xldCBYdDsib2JqZWN0Ij09dHlwZW9mIEx0JiZMdC5oYW5kbGVFdmVudCYmKHZ0LmNhbGxi'@; put 'YWNrPXV0PT5MdC5oYW5kbGVFdmVudCh1dCksdnQub3JpZ2luYWxEZWxlZ2F0ZT1MdCk7dHJ5e3Z0Lmludm9rZSh2dCxZLFtrdF0pfWNhdGNoKHV0KXtYdD11dH1jb25zdCBLdD12dC5vcHRpb25zO3JldHVybiBLdCYmIm9iamVjdCI9PXR5cGVvZiBLdCYmS3Qub25jZSYmWVtKXS5jYWxsKFks'@; put 'a3QudHlwZSx2dC5vcmlnaW5hbERlbGVnYXRlP3Z0Lm9yaWdpbmFsRGVsZWdhdGU6dnQuY2FsbGJhY2ssS3QpLFh0fTtmdW5jdGlvbiBCdCh2dCxZLGt0KXtpZighKFk9WXx8Uy5ldmVudCkpcmV0dXJuO2NvbnN0IEx0PXZ0fHxZLnRhcmdldHx8UyxYdD1MdFtxdFtZLnR5cGVdW2t0P206RV1d'@; put 'O2lmKFh0KXtjb25zdCBLdD1bXTtpZigxPT09WHQubGVuZ3RoKXtjb25zdCB1dD1EdChYdFswXSxMdCxZKTt1dCYmS3QucHVzaCh1dCl9ZWxzZXtjb25zdCB1dD1YdC5zbGljZSgpO2ZvcihsZXQgV3Q9MDtXdDx1dC5sZW5ndGgmJighWXx8ITAhPT1ZW190XSk7V3QrKyl7Y29uc3QgSXQ9RHQo'@; put 'dXRbV3RdLEx0LFkpO0l0JiZLdC5wdXNoKEl0KX19aWYoMT09PUt0Lmxlbmd0aCl0aHJvdyBLdFswXTtmb3IobGV0IHV0PTA7dXQ8S3QubGVuZ3RoO3V0Kyspe2NvbnN0IFd0PUt0W3V0XTtSLm5hdGl2ZVNjaGVkdWxlTWljcm9UYXNrKCgpPT57dGhyb3cgV3R9KX19fWNvbnN0IEh0PWZ1bmN0'@; put 'aW9uKHZ0KXtyZXR1cm4gQnQodGhpcyx2dCwhMSl9LHRuPWZ1bmN0aW9uKHZ0KXtyZXR1cm4gQnQodGhpcyx2dCwhMCl9O2Z1bmN0aW9uIG5uKHZ0LFkpe2lmKCF2dClyZXR1cm4hMTtsZXQga3Q9ITA7WSYmdm9pZCAwIT09WS51c2VHJiYoa3Q9WS51c2VHKTtjb25zdCBMdD1ZJiZZLnZoO2xl'@; put 'dCBYdD0hMDtZJiZ2b2lkIDAhPT1ZLmNoa0R1cCYmKFh0PVkuY2hrRHVwKTtsZXQgS3Q9ITE7WSYmdm9pZCAwIT09WS5ydCYmKEt0PVkucnQpO2xldCB1dD12dDtmb3IoO3V0JiYhdXQuaGFzT3duUHJvcGVydHkoTik7KXV0PWEodXQpO2lmKCF1dCYmdnRbTl0mJih1dD12dCksIXV0fHx1dFts'@; put 'dF0pcmV0dXJuITE7Y29uc3QgV3Q9WSYmWS5ldmVudE5hbWVUb1N0cmluZyxJdD17fSxUdD11dFtsdF09dXRbTl0sZ3Q9dXRbeChKKV09dXRbSl0sUHQ9dXRbeChvdCldPXV0W290XSxlbj11dFt4KHN0KV09dXRbc3RdO2xldCBKdDtZJiZZLnByZXBlbmQmJihKdD11dFt4KFkucHJlcGVuZCld'@; put 'PXV0W1kucHJlcGVuZF0pO2NvbnN0IFp0PWt0P2Z1bmN0aW9uKGspe2lmKCFJdC5pc0V4aXN0aW5nKXJldHVybiBUdC5jYWxsKEl0LnRhcmdldCxJdC5ldmVudE5hbWUsSXQuY2FwdHVyZT90bjpIdCxJdC5vcHRpb25zKX06ZnVuY3Rpb24oayl7cmV0dXJuIFR0LmNhbGwoSXQudGFyZ2V0LEl0'@; put 'LmV2ZW50TmFtZSxrLmludm9rZSxJdC5vcHRpb25zKX0sQ3Q9a3Q/ZnVuY3Rpb24oayl7aWYoIWsuaXNSZW1vdmVkKXtjb25zdCBHPXF0W2suZXZlbnROYW1lXTtsZXQgcHQ7RyYmKHB0PUdbay5jYXB0dXJlP206RV0pO2NvbnN0IE10PXB0JiZrLnRhcmdldFtwdF07aWYoTXQpZm9yKGxldCBj'@; put 'dD0wO2N0PE10Lmxlbmd0aDtjdCsrKWlmKE10W2N0XT09PWspe010LnNwbGljZShjdCwxKSxrLmlzUmVtb3ZlZD0hMCxrLnJlbW92ZUFib3J0TGlzdGVuZXImJihrLnJlbW92ZUFib3J0TGlzdGVuZXIoKSxrLnJlbW92ZUFib3J0TGlzdGVuZXI9bnVsbCksMD09PU10Lmxlbmd0aCYmKGsuYWxs'@; put 'UmVtb3ZlZD0hMCxrLnRhcmdldFtwdF09bnVsbCk7YnJlYWt9fWlmKGsuYWxsUmVtb3ZlZClyZXR1cm4gZ3QuY2FsbChrLnRhcmdldCxrLmV2ZW50TmFtZSxrLmNhcHR1cmU/dG46SHQsay5vcHRpb25zKX06ZnVuY3Rpb24oayl7cmV0dXJuIGd0LmNhbGwoay50YXJnZXQsay5ldmVudE5hbWUs'@; put 'ay5pbnZva2Usay5vcHRpb25zKX0sdm49WSYmWS5kaWZmP1kuZGlmZjpmdW5jdGlvbihrLEcpe2NvbnN0IHB0PXR5cGVvZiBHO3JldHVybiJmdW5jdGlvbiI9PT1wdCYmay5jYWxsYmFjaz09PUd8fCJvYmplY3QiPT09cHQmJmsub3JpZ2luYWxEZWxlZ2F0ZT09PUd9LHBuPVpvbmVbeCgiVU5Q'@; put 'QVRDSEVEX0VWRU5UUyIpXSxjbj1TW3goIlBBU1NJVkVfRVZFTlRTIildLFc9ZnVuY3Rpb24oayxHLHB0LE10LGN0PSExLHd0PSExKXtyZXR1cm4gZnVuY3Rpb24oKXtjb25zdCBSdD10aGlzfHxTO2xldCBGdD1hcmd1bWVudHNbMF07WSYmWS50cmFuc2ZlckV2ZW50TmFtZSYmKEZ0PVkudHJh'@; put 'bnNmZXJFdmVudE5hbWUoRnQpKTtsZXQgJHQ9YXJndW1lbnRzWzFdO2lmKCEkdClyZXR1cm4gay5hcHBseSh0aGlzLGFyZ3VtZW50cyk7aWYoWiYmInVuY2F1Z2h0RXhjZXB0aW9uIj09PUZ0KXJldHVybiBrLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtsZXQgVXQ9ITE7aWYoImZ1bmN0aW9uIiE9'@; put 'dHlwZW9mICR0KXtpZighJHQuaGFuZGxlRXZlbnQpcmV0dXJuIGsuYXBwbHkodGhpcyxhcmd1bWVudHMpO1V0PSEwfWlmKEx0JiYhTHQoaywkdCxSdCxhcmd1bWVudHMpKXJldHVybjtjb25zdCBFbj1ybiYmISFjbiYmLTEhPT1jbi5pbmRleE9mKEZ0KSxsbj1mdW5jdGlvbiB6KGspe2lmKCJv'@; put 'YmplY3QiPT10eXBlb2YgayYmbnVsbCE9PWspe2NvbnN0IEc9ey4uLmt9O3JldHVybiBrLnNpZ25hbCYmKEcuc2lnbmFsPWsuc2lnbmFsKSxHfXJldHVybiBrfShmdW5jdGlvbiBBdChrLEcpe3JldHVybiFybiYmIm9iamVjdCI9PXR5cGVvZiBrJiZrPyEhay5jYXB0dXJlOnJuJiZHPyJib29s'@; put 'ZWFuIj09dHlwZW9mIGs/e2NhcHR1cmU6ayxwYXNzaXZlOiEwfTprPyJvYmplY3QiPT10eXBlb2YgayYmITEhPT1rLnBhc3NpdmU/ey4uLmsscGFzc2l2ZTohMH06azp7cGFzc2l2ZTohMH06a30oYXJndW1lbnRzWzJdLEVuKSksU249bG4/LnNpZ25hbDtpZihTbj8uYWJvcnRlZClyZXR1cm47'@; put 'aWYocG4pZm9yKGxldCBobj0wO2huPHBuLmxlbmd0aDtobisrKWlmKEZ0PT09cG5baG5dKXJldHVybiBFbj9rLmNhbGwoUnQsRnQsJHQsbG4pOmsuYXBwbHkodGhpcyxhcmd1bWVudHMpO2NvbnN0IEFuPSEhbG4mJigiYm9vbGVhbiI9PXR5cGVvZiBsbnx8bG4uY2FwdHVyZSksRm49ISghbG58'@; put 'fCJvYmplY3QiIT10eXBlb2YgbG4pJiZsbi5vbmNlLEJuPVpvbmUuY3VycmVudDtsZXQgd249cXRbRnRdO3dufHwobW4oRnQsV3QpLHduPXF0W0Z0XSk7Y29uc3QgRG49d25bQW4/bTpFXTtsZXQgSW4sT249UnRbRG5dLGJuPSExO2lmKE9uKXtpZihibj0hMCxYdClmb3IobGV0IGhuPTA7aG48'@; put 'T24ubGVuZ3RoO2huKyspaWYodm4oT25baG5dLCR0KSlyZXR1cm59ZWxzZSBPbj1SdFtEbl09W107Y29uc3Qgam49UnQuY29uc3RydWN0b3IubmFtZSxDbj1kbltqbl07Q24mJihJbj1DbltGdF0pLElufHwoSW49am4rRysoV3Q/V3QoRnQpOkZ0KSksSXQub3B0aW9ucz1sbixGbiYmKEl0Lm9w'@; put 'dGlvbnMub25jZT0hMSksSXQudGFyZ2V0PVJ0LEl0LmNhcHR1cmU9QW4sSXQuZXZlbnROYW1lPUZ0LEl0LmlzRXhpc3Rpbmc9Ym47Y29uc3QgUG49a3Q/eG46dm9pZCAwO1BuJiYoUG4udGFza0RhdGE9SXQpLFNuJiYoSXQub3B0aW9ucy5zaWduYWw9dm9pZCAwKTtjb25zdCBmbj1Cbi5zY2hl'@; put 'ZHVsZUV2ZW50VGFzayhJbiwkdCxQbixwdCxNdCk7aWYoU24pe0l0Lm9wdGlvbnMuc2lnbmFsPVNuO2NvbnN0IGhuPSgpPT5mbi56b25lLmNhbmNlbFRhc2soZm4pO2suY2FsbChTbiwiYWJvcnQiLGhuLHtvbmNlOiEwfSksZm4ucmVtb3ZlQWJvcnRMaXN0ZW5lcj0oKT0+U24ucmVtb3ZlRXZl'@; put 'bnRMaXN0ZW5lcigiYWJvcnQiLGhuKX1yZXR1cm4gSXQudGFyZ2V0PW51bGwsUG4mJihQbi50YXNrRGF0YT1udWxsKSxGbiYmKEl0Lm9wdGlvbnMub25jZT0hMCksIXJuJiYiYm9vbGVhbiI9PXR5cGVvZiBmbi5vcHRpb25zfHwoZm4ub3B0aW9ucz1sbiksZm4udGFyZ2V0PVJ0LGZuLmNhcHR1'@; put 'cmU9QW4sZm4uZXZlbnROYW1lPUZ0LFV0JiYoZm4ub3JpZ2luYWxEZWxlZ2F0ZT0kdCksd3Q/T24udW5zaGlmdChmbik6T24ucHVzaChmbiksY3Q/UnQ6dm9pZCAwfX07cmV0dXJuIHV0W05dPVcoVHQsU3QsWnQsQ3QsS3QpLEp0JiYodXRbcnRdPVcoSnQseHQsZnVuY3Rpb24oayl7cmV0dXJu'@; put 'IEp0LmNhbGwoSXQudGFyZ2V0LEl0LmV2ZW50TmFtZSxrLmludm9rZSxJdC5vcHRpb25zKX0sQ3QsS3QsITApKSx1dFtKXT1mdW5jdGlvbigpe2NvbnN0IGs9dGhpc3x8UztsZXQgRz1hcmd1bWVudHNbMF07WSYmWS50cmFuc2ZlckV2ZW50TmFtZSYmKEc9WS50cmFuc2ZlckV2ZW50TmFtZShH'@; put 'KSk7Y29uc3QgcHQ9YXJndW1lbnRzWzJdLE10PSEhcHQmJigiYm9vbGVhbiI9PXR5cGVvZiBwdHx8cHQuY2FwdHVyZSksY3Q9YXJndW1lbnRzWzFdO2lmKCFjdClyZXR1cm4gZ3QuYXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKEx0JiYhTHQoZ3QsY3Qsayxhcmd1bWVudHMpKXJldHVybjtjb25z'@; put 'dCB3dD1xdFtHXTtsZXQgUnQ7d3QmJihSdD13dFtNdD9tOkVdKTtjb25zdCBGdD1SdCYma1tSdF07aWYoRnQpZm9yKGxldCAkdD0wOyR0PEZ0Lmxlbmd0aDskdCsrKXtjb25zdCBVdD1GdFskdF07aWYodm4oVXQsY3QpKXJldHVybiBGdC5zcGxpY2UoJHQsMSksVXQuaXNSZW1vdmVkPSEwLDAh'@; put 'PT1GdC5sZW5ndGh8fChVdC5hbGxSZW1vdmVkPSEwLGtbUnRdPW51bGwsTXR8fCJzdHJpbmciIT10eXBlb2YgRyl8fChrW2crIk9OX1BST1BFUlRZIitHXT1udWxsKSxVdC56b25lLmNhbmNlbFRhc2soVXQpLEt0P2s6dm9pZCAwfXJldHVybiBndC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHV0'@; put 'W290XT1mdW5jdGlvbigpe2NvbnN0IGs9dGhpc3x8UztsZXQgRz1hcmd1bWVudHNbMF07WSYmWS50cmFuc2ZlckV2ZW50TmFtZSYmKEc9WS50cmFuc2ZlckV2ZW50TmFtZShHKSk7Y29uc3QgcHQ9W10sTXQ9aChrLFd0P1d0KEcpOkcpO2ZvcihsZXQgY3Q9MDtjdDxNdC5sZW5ndGg7Y3QrKyl7'@; put 'Y29uc3Qgd3Q9TXRbY3RdO3B0LnB1c2god3Qub3JpZ2luYWxEZWxlZ2F0ZT93dC5vcmlnaW5hbERlbGVnYXRlOnd0LmNhbGxiYWNrKX1yZXR1cm4gcHR9LHV0W3N0XT1mdW5jdGlvbigpe2NvbnN0IGs9dGhpc3x8UztsZXQgRz1hcmd1bWVudHNbMF07aWYoRyl7WSYmWS50cmFuc2ZlckV2ZW50'@; put 'TmFtZSYmKEc9WS50cmFuc2ZlckV2ZW50TmFtZShHKSk7Y29uc3QgcHQ9cXRbR107aWYocHQpe2NvbnN0IHd0PWtbcHRbRV1dLFJ0PWtbcHRbbV1dO2lmKHd0KXtjb25zdCBGdD13dC5zbGljZSgpO2ZvcihsZXQgJHQ9MDskdDxGdC5sZW5ndGg7JHQrKyl7Y29uc3QgVXQ9RnRbJHRdO3RoaXNb'@; put 'Sl0uY2FsbCh0aGlzLEcsVXQub3JpZ2luYWxEZWxlZ2F0ZT9VdC5vcmlnaW5hbERlbGVnYXRlOlV0LmNhbGxiYWNrLFV0Lm9wdGlvbnMpfX1pZihSdCl7Y29uc3QgRnQ9UnQuc2xpY2UoKTtmb3IobGV0ICR0PTA7JHQ8RnQubGVuZ3RoOyR0Kyspe2NvbnN0IFV0PUZ0WyR0XTt0aGlzW0pdLmNh'@; put 'bGwodGhpcyxHLFV0Lm9yaWdpbmFsRGVsZWdhdGU/VXQub3JpZ2luYWxEZWxlZ2F0ZTpVdC5jYWxsYmFjayxVdC5vcHRpb25zKX19fX1lbHNle2NvbnN0IHB0PU9iamVjdC5rZXlzKGspO2ZvcihsZXQgTXQ9MDtNdDxwdC5sZW5ndGg7TXQrKyl7Y29uc3Qgd3Q9c24uZXhlYyhwdFtNdF0pO2xl'@; put 'dCBSdD13dCYmd3RbMV07UnQmJiJyZW1vdmVMaXN0ZW5lciIhPT1SdCYmdGhpc1tzdF0uY2FsbCh0aGlzLFJ0KX10aGlzW3N0XS5jYWxsKHRoaXMsInJlbW92ZUxpc3RlbmVyIil9aWYoS3QpcmV0dXJuIHRoaXN9LE90KHV0W05dLFR0KSxPdCh1dFtKXSxndCksZW4mJk90KHV0W3N0XSxlbiks'@; put 'UHQmJk90KHV0W290XSxQdCksITB9bGV0IFZ0PVtdO2ZvcihsZXQgdnQ9MDt2dDxCLmxlbmd0aDt2dCsrKVZ0W3Z0XT1ubihCW3Z0XSxPKTtyZXR1cm4gVnR9ZnVuY3Rpb24gaChTLFIpe2lmKCFSKXtjb25zdCBKPVtdO2ZvcihsZXQgb3QgaW4gUyl7Y29uc3Qgc3Q9c24uZXhlYyhvdCk7bGV0'@; put 'IGx0PXN0JiZzdFsxXTtpZihsdCYmKCFSfHxsdD09PVIpKXtjb25zdCBTdD1TW290XTtpZihTdClmb3IobGV0IHJ0PTA7cnQ8U3QubGVuZ3RoO3J0KyspSi5wdXNoKFN0W3J0XSl9fXJldHVybiBKfWxldCBCPXF0W1JdO0J8fChtbihSKSxCPXF0W1JdKTtjb25zdCBPPVNbQltFXV0sTj1TW0Jb'@; put 'bV1dO3JldHVybiBPP04/Ty5jb25jYXQoTik6Ty5zbGljZSgpOk4/Ti5zbGljZSgpOltdfWZ1bmN0aW9uIHIoUyxSKXtjb25zdCBCPVMuRXZlbnQ7QiYmQi5wcm90b3R5cGUmJlIucGF0Y2hNZXRob2QoQi5wcm90b3R5cGUsInN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbiIsTz0+ZnVuY3Rpb24o'@; put 'TixKKXtOW190XT0hMCxPJiZPLmFwcGx5KE4sSil9KX1jb25zdCB5PXgoInpvbmVUYXNrIik7ZnVuY3Rpb24gUChTLFIsQixPKXtsZXQgTj1udWxsLEo9bnVsbDtCKz1PO2NvbnN0IG90PXt9O2Z1bmN0aW9uIHN0KFN0KXtjb25zdCBydD1TdC5kYXRhO3J0LmFyZ3NbMF09ZnVuY3Rpb24oKXty'@; put 'ZXR1cm4gU3QuaW52b2tlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07Y29uc3QgeHQ9Ti5hcHBseShTLHJ0LmFyZ3MpO3JldHVybiB5bih4dCk/cnQuaGFuZGxlSWQ9eHQ6KHJ0LmhhbmRsZT14dCxydC5pc1JlZnJlc2hhYmxlPXVuKHh0LnJlZnJlc2gpKSxTdH1mdW5jdGlvbiBsdChTdCl7Y29u'@; put 'c3R7aGFuZGxlOnJ0LGhhbmRsZUlkOnh0fT1TdC5kYXRhO3JldHVybiBKLmNhbGwoUyxydD8/eHQpfU49ZHQoUyxSKz1PLFN0PT5mdW5jdGlvbihydCx4dCl7aWYodW4oeHRbMF0pKXtjb25zdCBEdD17aXNSZWZyZXNoYWJsZTohMSxpc1BlcmlvZGljOiJJbnRlcnZhbCI9PT1PLGRlbGF5OiJU'@; put 'aW1lb3V0Ij09PU98fCJJbnRlcnZhbCI9PT1PP3h0WzFdfHwwOnZvaWQgMCxhcmdzOnh0fSxCdD14dFswXTt4dFswXT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gQnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZpbmFsbHl7Y29uc3R7aGFuZGxlOmt0LGhhbmRsZUlkOkx0LGlzUGVyaW9kaWM6WHQs'@; put 'aXNSZWZyZXNoYWJsZTpLdH09RHQ7IVh0JiYhS3QmJihMdD9kZWxldGUgb3RbTHRdOmt0JiYoa3RbeV09bnVsbCkpfX07Y29uc3QgSHQ9RihSLHh0WzBdLER0LHN0LGx0KTtpZighSHQpcmV0dXJuIEh0O2NvbnN0e2hhbmRsZUlkOnRuLGhhbmRsZTpubixpc1JlZnJlc2hhYmxlOlZ0LGlzUGVy'@; put 'aW9kaWM6dnR9PUh0LmRhdGE7aWYodG4pb3RbdG5dPUh0O2Vsc2UgaWYobm4mJihublt5XT1IdCxWdCYmIXZ0KSl7Y29uc3QgWT1ubi5yZWZyZXNoO25uLnJlZnJlc2g9ZnVuY3Rpb24oKXtjb25zdHt6b25lOmt0LHN0YXRlOkx0fT1IdDtyZXR1cm4ibm90U2NoZWR1bGVkIj09PUx0PyhIdC5f'@; put 'c3RhdGU9InNjaGVkdWxlZCIsa3QuX3VwZGF0ZVRhc2tDb3VudChIdCwxKSk6InJ1bm5pbmciPT09THQmJihIdC5fc3RhdGU9InNjaGVkdWxpbmciKSxZLmNhbGwodGhpcyl9fXJldHVybiBubj8/dG4/P0h0fXJldHVybiBTdC5hcHBseShTLHh0KX0pLEo9ZHQoUyxCLFN0PT5mdW5jdGlvbihy'@; put 'dCx4dCl7Y29uc3QgRHQ9eHRbMF07bGV0IEJ0O3luKER0KT8oQnQ9b3RbRHRdLGRlbGV0ZSBvdFtEdF0pOihCdD1EdD8uW3ldLEJ0P0R0W3ldPW51bGw6QnQ9RHQpLEJ0Py50eXBlP0J0LmNhbmNlbEZuJiZCdC56b25lLmNhbmNlbFRhc2soQnQpOlN0LmFwcGx5KFMseHQpfSl9ZnVuY3Rpb24g'@; put 'XyhTLFIsQil7aWYoIUJ8fDA9PT1CLmxlbmd0aClyZXR1cm4gUjtjb25zdCBPPUIuZmlsdGVyKEo9PkoudGFyZ2V0PT09Uyk7aWYoIU98fDA9PT1PLmxlbmd0aClyZXR1cm4gUjtjb25zdCBOPU9bMF0uaWdub3JlUHJvcGVydGllcztyZXR1cm4gUi5maWx0ZXIoSj0+LTE9PT1OLmluZGV4T2Yo'@; put 'SikpfWZ1bmN0aW9uIEgoUyxSLEIsTyl7UyYmZXQoUyxfKFMsUixCKSxPKX1mdW5jdGlvbiBRKFMpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhTKS5maWx0ZXIoUj0+Ui5zdGFydHNXaXRoKCJvbiIpJiZSLmxlbmd0aD4yKS5tYXAoUj0+Ui5zdWJzdHJpbmcoMikpfWZ1bmN0'@; put 'aW9uIE1uKFMsUixCLE8sTil7Y29uc3QgSj1ab25lLl9fc3ltYm9sX18oTyk7aWYoUltKXSlyZXR1cm47Y29uc3Qgb3Q9UltKXT1SW09dO1JbT109ZnVuY3Rpb24oc3QsbHQsU3Qpe3JldHVybiBsdCYmbHQucHJvdG90eXBlJiZOLmZvckVhY2goZnVuY3Rpb24ocnQpe2NvbnN0IHh0PWAke0J9'@; put 'LiR7T306OmArcnQsRHQ9bHQucHJvdG90eXBlO3RyeXtpZihEdC5oYXNPd25Qcm9wZXJ0eShydCkpe2NvbnN0IEJ0PVMuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKER0LHJ0KTtCdCYmQnQudmFsdWU/KEJ0LnZhbHVlPVMud3JhcFdpdGhDdXJyZW50Wm9uZShCdC52YWx1ZSx4dCks'@; put 'Uy5fcmVkZWZpbmVQcm9wZXJ0eShsdC5wcm90b3R5cGUscnQsQnQpKTpEdFtydF0mJihEdFtydF09Uy53cmFwV2l0aEN1cnJlbnRab25lKER0W3J0XSx4dCkpfWVsc2UgRHRbcnRdJiYoRHRbcnRdPVMud3JhcFdpdGhDdXJyZW50Wm9uZShEdFtydF0seHQpKX1jYXRjaHt9fSksb3QuY2FsbChS'@; put 'LHN0LGx0LFN0KX0sUy5hdHRhY2hPcmlnaW5Ub1BhdGNoZWQoUltPXSxvdCl9Y29uc3QgUm49ZnVuY3Rpb24gbigpe2NvbnN0IFM9Z2xvYmFsVGhpcyxSPSEwPT09U1tsKCJmb3JjZUR1cGxpY2F0ZVpvbmVDaGVjayIpXTtpZihTLlpvbmUmJihSfHwiZnVuY3Rpb24iIT10eXBlb2YgUy5ab25l'@; put 'Ll9fc3ltYm9sX18pKXRocm93IG5ldyBFcnJvcigiWm9uZSBhbHJlYWR5IGxvYWRlZC4iKTtyZXR1cm4gUy5ab25lPz89ZnVuY3Rpb24gdCgpe2NvbnN0IFM9Yy5wZXJmb3JtYW5jZTtmdW5jdGlvbiBSKEF0KXtTJiZTLm1hcmsmJlMubWFyayhBdCl9ZnVuY3Rpb24gQihBdCxhdCl7UyYmUy5t'@; put 'ZWFzdXJlJiZTLm1lYXN1cmUoQXQsYXQpfVIoIlpvbmUiKTtsZXQgTz0oKCk9PntjbGFzcyBBdHtzdGF0aWN7dGhpcy5fX3N5bWJvbF9fPWx9c3RhdGljIGFzc2VydFpvbmVQYXRjaGVkKCl7aWYoYy5Qcm9taXNlIT09SXQuWm9uZUF3YXJlUHJvbWlzZSl0aHJvdyBuZXcgRXJyb3IoIlpvbmUu'@; put 'anMgaGFzIGRldGVjdGVkIHRoYXQgWm9uZUF3YXJlUHJvbWlzZSBgKHdpbmRvd3xnbG9iYWwpLlByb21pc2VgIGhhcyBiZWVuIG92ZXJ3cml0dGVuLlxuTW9zdCBsaWtlbHkgY2F1c2UgaXMgdGhhdCBhIFByb21pc2UgcG9seWZpbGwgaGFzIGJlZW4gbG9hZGVkIGFmdGVyIFpvbmUuanMgKFBv'@; put 'bHlmaWxsaW5nIFByb21pc2UgYXBpIGlzIG5vdCBuZWNlc3Nhcnkgd2hlbiB6b25lLmpzIGlzIGxvYWRlZC4gSWYgeW91IG11c3QgbG9hZCBvbmUsIGRvIHNvIGJlZm9yZSBsb2FkaW5nIHpvbmUuanMuKSIpfXN0YXRpYyBnZXQgcm9vdCgpe2xldCBBPUF0LmN1cnJlbnQ7Zm9yKDtBLnBhcmVu'@; put 'dDspQT1BLnBhcmVudDtyZXR1cm4gQX1zdGF0aWMgZ2V0IGN1cnJlbnQoKXtyZXR1cm4gZ3Quem9uZX1zdGF0aWMgZ2V0IGN1cnJlbnRUYXNrKCl7cmV0dXJuIFB0fXN0YXRpYyBfX2xvYWRfcGF0Y2goQSxqLGh0PSExKXtpZihJdC5oYXNPd25Qcm9wZXJ0eShBKSl7Y29uc3QgRXQ9ITA9PT1j'@; put 'W2woImZvcmNlRHVwbGljYXRlWm9uZUNoZWNrIildO2lmKCFodCYmRXQpdGhyb3cgRXJyb3IoIkFscmVhZHkgbG9hZGVkIHBhdGNoOiAiK0EpfWVsc2UgaWYoIWNbIl9fWm9uZV9kaXNhYmxlXyIrQV0pe2NvbnN0IEV0PSJab25lOiIrQTtSKEV0KSxJdFtBXT1qKGMsQXQsVHQpLEIoRXQsRXQp'@; put 'fX1nZXQgcGFyZW50KCl7cmV0dXJuIHRoaXMuX3BhcmVudH1nZXQgbmFtZSgpe3JldHVybiB0aGlzLl9uYW1lfWNvbnN0cnVjdG9yKEEsail7dGhpcy5fcGFyZW50PUEsdGhpcy5fbmFtZT1qP2oubmFtZXx8InVubmFtZWQiOiI8cm9vdD4iLHRoaXMuX3Byb3BlcnRpZXM9aiYmai5wcm9wZXJ0'@; put 'aWVzfHx7fSx0aGlzLl96b25lRGVsZWdhdGU9bmV3IEoodGhpcyx0aGlzLl9wYXJlbnQmJnRoaXMuX3BhcmVudC5fem9uZURlbGVnYXRlLGopfWdldChBKXtjb25zdCBqPXRoaXMuZ2V0Wm9uZVdpdGgoQSk7aWYoailyZXR1cm4gai5fcHJvcGVydGllc1tBXX1nZXRab25lV2l0aChBKXtsZXQg'@; put 'aj10aGlzO2Zvcig7ajspe2lmKGouX3Byb3BlcnRpZXMuaGFzT3duUHJvcGVydHkoQSkpcmV0dXJuIGo7aj1qLl9wYXJlbnR9cmV0dXJuIG51bGx9Zm9yayhBKXtpZighQSl0aHJvdyBuZXcgRXJyb3IoIlpvbmVTcGVjIHJlcXVpcmVkISIpO3JldHVybiB0aGlzLl96b25lRGVsZWdhdGUuZm9y'@; put 'ayh0aGlzLEEpfXdyYXAoQSxqKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgQSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGluZyBmdW5jdGlvbiBnb3Q6ICIrQSk7Y29uc3QgaHQ9dGhpcy5fem9uZURlbGVnYXRlLmludGVyY2VwdCh0aGlzLEEsaiksRXQ9dGhpcztyZXR1cm4gZnVuY3Rpb24oKXty'@; put 'ZXR1cm4gRXQucnVuR3VhcmRlZChodCx0aGlzLGFyZ3VtZW50cyxqKX19cnVuKEEsaixodCxFdCl7Z3Q9e3BhcmVudDpndCx6b25lOnRoaXN9O3RyeXtyZXR1cm4gdGhpcy5fem9uZURlbGVnYXRlLmludm9rZSh0aGlzLEEsaixodCxFdCl9ZmluYWxseXtndD1ndC5wYXJlbnR9fXJ1bkd1YXJk'@; put 'ZWQoQSxqPW51bGwsaHQsRXQpe2d0PXtwYXJlbnQ6Z3Qsem9uZTp0aGlzfTt0cnl7dHJ5e3JldHVybiB0aGlzLl96b25lRGVsZWdhdGUuaW52b2tlKHRoaXMsQSxqLGh0LEV0KX1jYXRjaChadCl7aWYodGhpcy5fem9uZURlbGVnYXRlLmhhbmRsZUVycm9yKHRoaXMsWnQpKXRocm93IFp0fX1m'@; put 'aW5hbGx5e2d0PWd0LnBhcmVudH19cnVuVGFzayhBLGosaHQpe2lmKEEuem9uZSE9dGhpcyl0aHJvdyBuZXcgRXJyb3IoIkEgdGFzayBjYW4gb25seSBiZSBydW4gaW4gdGhlIHpvbmUgb2YgY3JlYXRpb24hIChDcmVhdGlvbjogIisoQS56b25lfHxubikubmFtZSsiOyBFeGVjdXRpb246ICIr'@; put 'dGhpcy5uYW1lKyIpIik7Y29uc3QgRXQ9QSx7dHlwZTpadCxkYXRhOntpc1BlcmlvZGljOkN0PSExLGlzUmVmcmVzaGFibGU6Z249ITF9PXt9fT1BO2lmKEEuc3RhdGU9PT1WdCYmKFp0PT09V3R8fFp0PT09dXQpKXJldHVybjtjb25zdCB2bj1BLnN0YXRlIT1rdDt2biYmRXQuX3RyYW5zaXRp'@; put 'b25UbyhrdCxZKTtjb25zdCBwbj1QdDtQdD1FdCxndD17cGFyZW50Omd0LHpvbmU6dGhpc307dHJ5e1p0PT11dCYmQS5kYXRhJiYhQ3QmJiFnbiYmKEEuY2FuY2VsRm49dm9pZCAwKTt0cnl7cmV0dXJuIHRoaXMuX3pvbmVEZWxlZ2F0ZS5pbnZva2VUYXNrKHRoaXMsRXQsaixodCl9Y2F0Y2go'@; put 'Y24pe2lmKHRoaXMuX3pvbmVEZWxlZ2F0ZS5oYW5kbGVFcnJvcih0aGlzLGNuKSl0aHJvdyBjbn19ZmluYWxseXtjb25zdCBjbj1BLnN0YXRlO2lmKGNuIT09VnQmJmNuIT09WHQpaWYoWnQ9PVd0fHxDdHx8Z24mJmNuPT09dnQpdm4mJkV0Ll90cmFuc2l0aW9uVG8oWSxrdCx2dCk7ZWxzZXtj'@; put 'b25zdCB6PUV0Ll96b25lRGVsZWdhdGVzO3RoaXMuX3VwZGF0ZVRhc2tDb3VudChFdCwtMSksdm4mJkV0Ll90cmFuc2l0aW9uVG8oVnQsa3QsVnQpLGduJiYoRXQuX3pvbmVEZWxlZ2F0ZXM9eil9Z3Q9Z3QucGFyZW50LFB0PXBufX1zY2hlZHVsZVRhc2soQSl7aWYoQS56b25lJiZBLnpvbmUh'@; put 'PT10aGlzKXtsZXQgaHQ9dGhpcztmb3IoO2h0Oyl7aWYoaHQ9PT1BLnpvbmUpdGhyb3cgRXJyb3IoYGNhbiBub3QgcmVzY2hlZHVsZSB0YXNrIHRvICR7dGhpcy5uYW1lfSB3aGljaCBpcyBkZXNjZW5kYW50cyBvZiB0aGUgb3JpZ2luYWwgem9uZSAke0Euem9uZS5uYW1lfWApO2h0PWh0LnBh'@; put 'cmVudH19QS5fdHJhbnNpdGlvblRvKHZ0LFZ0KTtjb25zdCBqPVtdO0EuX3pvbmVEZWxlZ2F0ZXM9aixBLl96b25lPXRoaXM7dHJ5e0E9dGhpcy5fem9uZURlbGVnYXRlLnNjaGVkdWxlVGFzayh0aGlzLEEpfWNhdGNoKGh0KXt0aHJvdyBBLl90cmFuc2l0aW9uVG8oWHQsdnQsVnQpLHRoaXMu'@; put 'X3pvbmVEZWxlZ2F0ZS5oYW5kbGVFcnJvcih0aGlzLGh0KSxodH1yZXR1cm4gQS5fem9uZURlbGVnYXRlcz09PWomJnRoaXMuX3VwZGF0ZVRhc2tDb3VudChBLDEpLEEuc3RhdGU9PXZ0JiZBLl90cmFuc2l0aW9uVG8oWSx2dCksQX1zY2hlZHVsZU1pY3JvVGFzayhBLGosaHQsRXQpe3JldHVy'@; put 'biB0aGlzLnNjaGVkdWxlVGFzayhuZXcgb3QoS3QsQSxqLGh0LEV0LHZvaWQgMCkpfXNjaGVkdWxlTWFjcm9UYXNrKEEsaixodCxFdCxadCl7cmV0dXJuIHRoaXMuc2NoZWR1bGVUYXNrKG5ldyBvdCh1dCxBLGosaHQsRXQsWnQpKX1zY2hlZHVsZUV2ZW50VGFzayhBLGosaHQsRXQsWnQpe3Jl'@; put 'dHVybiB0aGlzLnNjaGVkdWxlVGFzayhuZXcgb3QoV3QsQSxqLGh0LEV0LFp0KSl9Y2FuY2VsVGFzayhBKXtpZihBLnpvbmUhPXRoaXMpdGhyb3cgbmV3IEVycm9yKCJBIHRhc2sgY2FuIG9ubHkgYmUgY2FuY2VsbGVkIGluIHRoZSB6b25lIG9mIGNyZWF0aW9uISAoQ3JlYXRpb246ICIrKEEu'@; put 'em9uZXx8bm4pLm5hbWUrIjsgRXhlY3V0aW9uOiAiK3RoaXMubmFtZSsiKSIpO2lmKEEuc3RhdGU9PT1ZfHxBLnN0YXRlPT09a3Qpe0EuX3RyYW5zaXRpb25UbyhMdCxZLGt0KTt0cnl7dGhpcy5fem9uZURlbGVnYXRlLmNhbmNlbFRhc2sodGhpcyxBKX1jYXRjaChqKXt0aHJvdyBBLl90cmFu'@; put 'c2l0aW9uVG8oWHQsTHQpLHRoaXMuX3pvbmVEZWxlZ2F0ZS5oYW5kbGVFcnJvcih0aGlzLGopLGp9cmV0dXJuIHRoaXMuX3VwZGF0ZVRhc2tDb3VudChBLC0xKSxBLl90cmFuc2l0aW9uVG8oVnQsTHQpLEEucnVuQ291bnQ9LTEsQX19X3VwZGF0ZVRhc2tDb3VudChBLGope2NvbnN0IGh0PUEu'@; put 'X3pvbmVEZWxlZ2F0ZXM7LTE9PWomJihBLl96b25lRGVsZWdhdGVzPW51bGwpO2ZvcihsZXQgRXQ9MDtFdDxodC5sZW5ndGg7RXQrKylodFtFdF0uX3VwZGF0ZVRhc2tDb3VudChBLnR5cGUsail9fXJldHVybiBBdH0pKCk7Y29uc3QgTj17bmFtZToiIixvbkhhc1Rhc2s6KEF0LGF0LEEsaik9'@; put 'PkF0Lmhhc1Rhc2soQSxqKSxvblNjaGVkdWxlVGFzazooQXQsYXQsQSxqKT0+QXQuc2NoZWR1bGVUYXNrKEEsaiksb25JbnZva2VUYXNrOihBdCxhdCxBLGosaHQsRXQpPT5BdC5pbnZva2VUYXNrKEEsaixodCxFdCksb25DYW5jZWxUYXNrOihBdCxhdCxBLGopPT5BdC5jYW5jZWxUYXNrKEEs'@; put 'ail9O2NsYXNzIEp7Z2V0IHpvbmUoKXtyZXR1cm4gdGhpcy5fem9uZX1jb25zdHJ1Y3RvcihhdCxBLGope3RoaXMuX3Rhc2tDb3VudHM9e21pY3JvVGFzazowLG1hY3JvVGFzazowLGV2ZW50VGFzazowfSx0aGlzLl96b25lPWF0LHRoaXMuX3BhcmVudERlbGVnYXRlPUEsdGhpcy5fZm9ya1pT'@; put 'PWomJihqJiZqLm9uRm9yaz9qOkEuX2ZvcmtaUyksdGhpcy5fZm9ya0RsZ3Q9aiYmKGoub25Gb3JrP0E6QS5fZm9ya0RsZ3QpLHRoaXMuX2ZvcmtDdXJyWm9uZT1qJiYoai5vbkZvcms/dGhpcy5fem9uZTpBLl9mb3JrQ3VyclpvbmUpLHRoaXMuX2ludGVyY2VwdFpTPWomJihqLm9uSW50ZXJj'@; put 'ZXB0P2o6QS5faW50ZXJjZXB0WlMpLHRoaXMuX2ludGVyY2VwdERsZ3Q9aiYmKGoub25JbnRlcmNlcHQ/QTpBLl9pbnRlcmNlcHREbGd0KSx0aGlzLl9pbnRlcmNlcHRDdXJyWm9uZT1qJiYoai5vbkludGVyY2VwdD90aGlzLl96b25lOkEuX2ludGVyY2VwdEN1cnJab25lKSx0aGlzLl9pbnZv'@; put 'a2VaUz1qJiYoai5vbkludm9rZT9qOkEuX2ludm9rZVpTKSx0aGlzLl9pbnZva2VEbGd0PWomJihqLm9uSW52b2tlP0E6QS5faW52b2tlRGxndCksdGhpcy5faW52b2tlQ3VyclpvbmU9aiYmKGoub25JbnZva2U/dGhpcy5fem9uZTpBLl9pbnZva2VDdXJyWm9uZSksdGhpcy5faGFuZGxlRXJy'@; put 'b3JaUz1qJiYoai5vbkhhbmRsZUVycm9yP2o6QS5faGFuZGxlRXJyb3JaUyksdGhpcy5faGFuZGxlRXJyb3JEbGd0PWomJihqLm9uSGFuZGxlRXJyb3I/QTpBLl9oYW5kbGVFcnJvckRsZ3QpLHRoaXMuX2hhbmRsZUVycm9yQ3VyclpvbmU9aiYmKGoub25IYW5kbGVFcnJvcj90aGlzLl96b25l'@; put 'OkEuX2hhbmRsZUVycm9yQ3VyclpvbmUpLHRoaXMuX3NjaGVkdWxlVGFza1pTPWomJihqLm9uU2NoZWR1bGVUYXNrP2o6QS5fc2NoZWR1bGVUYXNrWlMpLHRoaXMuX3NjaGVkdWxlVGFza0RsZ3Q9aiYmKGoub25TY2hlZHVsZVRhc2s/QTpBLl9zY2hlZHVsZVRhc2tEbGd0KSx0aGlzLl9zY2hl'@; put 'ZHVsZVRhc2tDdXJyWm9uZT1qJiYoai5vblNjaGVkdWxlVGFzaz90aGlzLl96b25lOkEuX3NjaGVkdWxlVGFza0N1cnJab25lKSx0aGlzLl9pbnZva2VUYXNrWlM9aiYmKGoub25JbnZva2VUYXNrP2o6QS5faW52b2tlVGFza1pTKSx0aGlzLl9pbnZva2VUYXNrRGxndD1qJiYoai5vbkludm9r'@; put 'ZVRhc2s/QTpBLl9pbnZva2VUYXNrRGxndCksdGhpcy5faW52b2tlVGFza0N1cnJab25lPWomJihqLm9uSW52b2tlVGFzaz90aGlzLl96b25lOkEuX2ludm9rZVRhc2tDdXJyWm9uZSksdGhpcy5fY2FuY2VsVGFza1pTPWomJihqLm9uQ2FuY2VsVGFzaz9qOkEuX2NhbmNlbFRhc2taUyksdGhp'@; put 'cy5fY2FuY2VsVGFza0RsZ3Q9aiYmKGoub25DYW5jZWxUYXNrP0E6QS5fY2FuY2VsVGFza0RsZ3QpLHRoaXMuX2NhbmNlbFRhc2tDdXJyWm9uZT1qJiYoai5vbkNhbmNlbFRhc2s/dGhpcy5fem9uZTpBLl9jYW5jZWxUYXNrQ3VyclpvbmUpLHRoaXMuX2hhc1Rhc2taUz1udWxsLHRoaXMuX2hh'@; put 'c1Rhc2tEbGd0PW51bGwsdGhpcy5faGFzVGFza0RsZ3RPd25lcj1udWxsLHRoaXMuX2hhc1Rhc2tDdXJyWm9uZT1udWxsO2NvbnN0IGh0PWomJmoub25IYXNUYXNrOyhodHx8QSYmQS5faGFzVGFza1pTKSYmKHRoaXMuX2hhc1Rhc2taUz1odD9qOk4sdGhpcy5faGFzVGFza0RsZ3Q9QSx0aGlz'@; put 'Ll9oYXNUYXNrRGxndE93bmVyPXRoaXMsdGhpcy5faGFzVGFza0N1cnJab25lPXRoaXMuX3pvbmUsai5vblNjaGVkdWxlVGFza3x8KHRoaXMuX3NjaGVkdWxlVGFza1pTPU4sdGhpcy5fc2NoZWR1bGVUYXNrRGxndD1BLHRoaXMuX3NjaGVkdWxlVGFza0N1cnJab25lPXRoaXMuX3pvbmUpLGou'@; put 'b25JbnZva2VUYXNrfHwodGhpcy5faW52b2tlVGFza1pTPU4sdGhpcy5faW52b2tlVGFza0RsZ3Q9QSx0aGlzLl9pbnZva2VUYXNrQ3VyclpvbmU9dGhpcy5fem9uZSksai5vbkNhbmNlbFRhc2t8fCh0aGlzLl9jYW5jZWxUYXNrWlM9Tix0aGlzLl9jYW5jZWxUYXNrRGxndD1BLHRoaXMuX2Nh'@; put 'bmNlbFRhc2tDdXJyWm9uZT10aGlzLl96b25lKSl9Zm9yayhhdCxBKXtyZXR1cm4gdGhpcy5fZm9ya1pTP3RoaXMuX2ZvcmtaUy5vbkZvcmsodGhpcy5fZm9ya0RsZ3QsdGhpcy56b25lLGF0LEEpOm5ldyBPKGF0LEEpfWludGVyY2VwdChhdCxBLGope3JldHVybiB0aGlzLl9pbnRlcmNlcHRa'@; put 'Uz90aGlzLl9pbnRlcmNlcHRaUy5vbkludGVyY2VwdCh0aGlzLl9pbnRlcmNlcHREbGd0LHRoaXMuX2ludGVyY2VwdEN1cnJab25lLGF0LEEsaik6QX1pbnZva2UoYXQsQSxqLGh0LEV0KXtyZXR1cm4gdGhpcy5faW52b2tlWlM/dGhpcy5faW52b2tlWlMub25JbnZva2UodGhpcy5faW52b2tl'@; put 'RGxndCx0aGlzLl9pbnZva2VDdXJyWm9uZSxhdCxBLGosaHQsRXQpOkEuYXBwbHkoaixodCl9aGFuZGxlRXJyb3IoYXQsQSl7cmV0dXJuIXRoaXMuX2hhbmRsZUVycm9yWlN8fHRoaXMuX2hhbmRsZUVycm9yWlMub25IYW5kbGVFcnJvcih0aGlzLl9oYW5kbGVFcnJvckRsZ3QsdGhpcy5faGFu'@; put 'ZGxlRXJyb3JDdXJyWm9uZSxhdCxBKX1zY2hlZHVsZVRhc2soYXQsQSl7bGV0IGo9QTtpZih0aGlzLl9zY2hlZHVsZVRhc2taUyl0aGlzLl9oYXNUYXNrWlMmJmouX3pvbmVEZWxlZ2F0ZXMucHVzaCh0aGlzLl9oYXNUYXNrRGxndE93bmVyKSxqPXRoaXMuX3NjaGVkdWxlVGFza1pTLm9uU2No'@; put 'ZWR1bGVUYXNrKHRoaXMuX3NjaGVkdWxlVGFza0RsZ3QsdGhpcy5fc2NoZWR1bGVUYXNrQ3VyclpvbmUsYXQsQSksanx8KGo9QSk7ZWxzZSBpZihBLnNjaGVkdWxlRm4pQS5zY2hlZHVsZUZuKEEpO2Vsc2V7aWYoQS50eXBlIT1LdCl0aHJvdyBuZXcgRXJyb3IoIlRhc2sgaXMgbWlzc2luZyBz'@; put 'Y2hlZHVsZUZuLiIpO0h0KEEpfXJldHVybiBqfWludm9rZVRhc2soYXQsQSxqLGh0KXtyZXR1cm4gdGhpcy5faW52b2tlVGFza1pTP3RoaXMuX2ludm9rZVRhc2taUy5vbkludm9rZVRhc2sodGhpcy5faW52b2tlVGFza0RsZ3QsdGhpcy5faW52b2tlVGFza0N1cnJab25lLGF0LEEsaixodCk6'@; put 'QS5jYWxsYmFjay5hcHBseShqLGh0KX1jYW5jZWxUYXNrKGF0LEEpe2xldCBqO2lmKHRoaXMuX2NhbmNlbFRhc2taUylqPXRoaXMuX2NhbmNlbFRhc2taUy5vbkNhbmNlbFRhc2sodGhpcy5fY2FuY2VsVGFza0RsZ3QsdGhpcy5fY2FuY2VsVGFza0N1cnJab25lLGF0LEEpO2Vsc2V7aWYoIUEu'@; put 'Y2FuY2VsRm4pdGhyb3cgRXJyb3IoIlRhc2sgaXMgbm90IGNhbmNlbGFibGUiKTtqPUEuY2FuY2VsRm4oQSl9cmV0dXJuIGp9aGFzVGFzayhhdCxBKXt0cnl7dGhpcy5faGFzVGFza1pTJiZ0aGlzLl9oYXNUYXNrWlMub25IYXNUYXNrKHRoaXMuX2hhc1Rhc2tEbGd0LHRoaXMuX2hhc1Rhc2tD'@; put 'dXJyWm9uZSxhdCxBKX1jYXRjaChqKXt0aGlzLmhhbmRsZUVycm9yKGF0LGopfX1fdXBkYXRlVGFza0NvdW50KGF0LEEpe2NvbnN0IGo9dGhpcy5fdGFza0NvdW50cyxodD1qW2F0XSxFdD1qW2F0XT1odCtBO2lmKEV0PDApdGhyb3cgbmV3IEVycm9yKCJNb3JlIHRhc2tzIGV4ZWN1dGVkIHRo'@; put 'ZW4gd2VyZSBzY2hlZHVsZWQuIik7MCE9aHQmJjAhPUV0fHx0aGlzLmhhc1Rhc2sodGhpcy5fem9uZSx7bWljcm9UYXNrOmoubWljcm9UYXNrPjAsbWFjcm9UYXNrOmoubWFjcm9UYXNrPjAsZXZlbnRUYXNrOmouZXZlbnRUYXNrPjAsY2hhbmdlOmF0fSl9fWNsYXNzIG90e2NvbnN0cnVjdG9y'@; put 'KGF0LEEsaixodCxFdCxadCl7aWYodGhpcy5fem9uZT1udWxsLHRoaXMucnVuQ291bnQ9MCx0aGlzLl96b25lRGVsZWdhdGVzPW51bGwsdGhpcy5fc3RhdGU9Im5vdFNjaGVkdWxlZCIsdGhpcy50eXBlPWF0LHRoaXMuc291cmNlPUEsdGhpcy5kYXRhPWh0LHRoaXMuc2NoZWR1bGVGbj1FdCx0'@; put 'aGlzLmNhbmNlbEZuPVp0LCFqKXRocm93IG5ldyBFcnJvcigiY2FsbGJhY2sgaXMgbm90IGRlZmluZWQiKTt0aGlzLmNhbGxiYWNrPWo7Y29uc3QgQ3Q9dGhpczt0aGlzLmludm9rZT1hdD09PVd0JiZodCYmaHQudXNlRz9vdC5pbnZva2VUYXNrOmZ1bmN0aW9uKCl7cmV0dXJuIG90Lmludm9r'@; put 'ZVRhc2suY2FsbChjLEN0LHRoaXMsYXJndW1lbnRzKX19c3RhdGljIGludm9rZVRhc2soYXQsQSxqKXthdHx8KGF0PXRoaXMpLGVuKys7dHJ5e3JldHVybiBhdC5ydW5Db3VudCsrLGF0LnpvbmUucnVuVGFzayhhdCxBLGopfWZpbmFsbHl7MT09ZW4mJnRuKCksZW4tLX19Z2V0IHpvbmUoKXty'@; put 'ZXR1cm4gdGhpcy5fem9uZX1nZXQgc3RhdGUoKXtyZXR1cm4gdGhpcy5fc3RhdGV9Y2FuY2VsU2NoZWR1bGVSZXF1ZXN0KCl7dGhpcy5fdHJhbnNpdGlvblRvKFZ0LHZ0KX1fdHJhbnNpdGlvblRvKGF0LEEsail7aWYodGhpcy5fc3RhdGUhPT1BJiZ0aGlzLl9zdGF0ZSE9PWopdGhyb3cgbmV3'@; put 'IEVycm9yKGAke3RoaXMudHlwZX0gJyR7dGhpcy5zb3VyY2V9JzogY2FuIG5vdCB0cmFuc2l0aW9uIHRvICcke2F0fScsIGV4cGVjdGluZyBzdGF0ZSAnJHtBfScke2o/IiBvciAnIitqKyInIjoiIn0sIHdhcyAnJHt0aGlzLl9zdGF0ZX0nLmApO3RoaXMuX3N0YXRlPWF0LGF0PT1WdCYmKHRo'@; put 'aXMuX3pvbmVEZWxlZ2F0ZXM9bnVsbCl9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5kYXRhJiZ0eXBlb2YgdGhpcy5kYXRhLmhhbmRsZUlkPCJ1Ij90aGlzLmRhdGEuaGFuZGxlSWQudG9TdHJpbmcoKTpPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGhpcyl9dG9KU09OKCl7cmV0dXJu'@; put 'e3R5cGU6dGhpcy50eXBlLHN0YXRlOnRoaXMuc3RhdGUsc291cmNlOnRoaXMuc291cmNlLHpvbmU6dGhpcy56b25lLm5hbWUscnVuQ291bnQ6dGhpcy5ydW5Db3VudH19fWNvbnN0IHN0PWwoInNldFRpbWVvdXQiKSxsdD1sKCJQcm9taXNlIiksU3Q9bCgidGhlbiIpO2xldCBEdCxydD1bXSx4'@; put 'dD0hMTtmdW5jdGlvbiBCdChBdCl7aWYoRHR8fGNbbHRdJiYoRHQ9Y1tsdF0ucmVzb2x2ZSgwKSksRHQpe2xldCBhdD1EdFtTdF07YXR8fChhdD1EdC50aGVuKSxhdC5jYWxsKER0LEF0KX1lbHNlIGNbc3RdKEF0LDApfWZ1bmN0aW9uIEh0KEF0KXswPT09ZW4mJjA9PT1ydC5sZW5ndGgmJkJ0'@; put 'KHRuKSxBdCYmcnQucHVzaChBdCl9ZnVuY3Rpb24gdG4oKXtpZigheHQpe2Zvcih4dD0hMDtydC5sZW5ndGg7KXtjb25zdCBBdD1ydDtydD1bXTtmb3IobGV0IGF0PTA7YXQ8QXQubGVuZ3RoO2F0Kyspe2NvbnN0IEE9QXRbYXRdO3RyeXtBLnpvbmUucnVuVGFzayhBLG51bGwsbnVsbCl9Y2F0'@; put 'Y2goail7VHQub25VbmhhbmRsZWRFcnJvcihqKX19fVR0Lm1pY3JvdGFza0RyYWluRG9uZSgpLHh0PSExfX1jb25zdCBubj17bmFtZToiTk8gWk9ORSJ9LFZ0PSJub3RTY2hlZHVsZWQiLHZ0PSJzY2hlZHVsaW5nIixZPSJzY2hlZHVsZWQiLGt0PSJydW5uaW5nIixMdD0iY2FuY2VsaW5nIixY'@; put 'dD0idW5rbm93biIsS3Q9Im1pY3JvVGFzayIsdXQ9Im1hY3JvVGFzayIsV3Q9ImV2ZW50VGFzayIsSXQ9e30sVHQ9e3N5bWJvbDpsLGN1cnJlbnRab25lRnJhbWU6KCk9Pmd0LG9uVW5oYW5kbGVkRXJyb3I6SnQsbWljcm90YXNrRHJhaW5Eb25lOkp0LHNjaGVkdWxlTWljcm9UYXNrOkh0LHNo'@; put 'b3dVbmNhdWdodEVycm9yOigpPT4hT1tsKCJpZ25vcmVDb25zb2xlRXJyb3JVbmNhdWdodEVycm9yIildLHBhdGNoRXZlbnRUYXJnZXQ6KCk9PltdLHBhdGNoT25Qcm9wZXJ0aWVzOkp0LHBhdGNoTWV0aG9kOigpPT5KdCxiaW5kQXJndW1lbnRzOigpPT5bXSxwYXRjaFRoZW46KCk9Pkp0LHBh'@; put 'dGNoTWFjcm9UYXNrOigpPT5KdCxwYXRjaEV2ZW50UHJvdG90eXBlOigpPT5KdCxpc0lFT3JFZGdlOigpPT4hMSxnZXRHbG9iYWxPYmplY3RzOigpPT57fSxPYmplY3REZWZpbmVQcm9wZXJ0eTooKT0+SnQsT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOigpPT57fSxPYmplY3RDcmVh'@; put 'dGU6KCk9Pnt9LEFycmF5U2xpY2U6KCk9PltdLHBhdGNoQ2xhc3M6KCk9Pkp0LHdyYXBXaXRoQ3VycmVudFpvbmU6KCk9Pkp0LGZpbHRlclByb3BlcnRpZXM6KCk9PltdLGF0dGFjaE9yaWdpblRvUGF0Y2hlZDooKT0+SnQsX3JlZGVmaW5lUHJvcGVydHk6KCk9Pkp0LHBhdGNoQ2FsbGJhY2tz'@; put 'OigpPT5KdCxuYXRpdmVTY2hlZHVsZU1pY3JvVGFzazpCdH07bGV0IGd0PXtwYXJlbnQ6bnVsbCx6b25lOm5ldyBPKG51bGwsbnVsbCl9LFB0PW51bGwsZW49MDtmdW5jdGlvbiBKdCgpe31yZXR1cm4gQigiWm9uZSIsIlpvbmUiKSxPfSgpLFMuWm9uZX0oKTsoZnVuY3Rpb24gTm4oUyl7KGZ1'@; put 'bmN0aW9uIFF0KFMpe1MuX19sb2FkX3BhdGNoKCJab25lQXdhcmVQcm9taXNlIiwoUixCLE8pPT57Y29uc3QgTj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLEo9T2JqZWN0LmRlZmluZVByb3BlcnR5LHN0PU8uc3ltYm9sLGx0PVtdLFN0PSExIT09UltzdCgiRElTQUJMRV9XUkFQ'@; put 'UElOR19VTkNBVUdIVF9QUk9NSVNFX1JFSkVDVElPTiIpXSxydD1zdCgiUHJvbWlzZSIpLHh0PXN0KCJ0aGVuIiksRHQ9Il9fY3JlYXRpb25UcmFjZV9fIjtPLm9uVW5oYW5kbGVkRXJyb3I9ej0+e2lmKE8uc2hvd1VuY2F1Z2h0RXJyb3IoKSl7Y29uc3QgVz16JiZ6LnJlamVjdGlvbjtXP2Nv'@; put 'bnNvbGUuZXJyb3IoIlVuaGFuZGxlZCBQcm9taXNlIHJlamVjdGlvbjoiLFcgaW5zdGFuY2VvZiBFcnJvcj9XLm1lc3NhZ2U6VywiOyBab25lOiIsei56b25lLm5hbWUsIjsgVGFzazoiLHoudGFzayYmei50YXNrLnNvdXJjZSwiOyBWYWx1ZToiLFcsVyBpbnN0YW5jZW9mIEVycm9yP1cuc3Rh'@; put 'Y2s6dm9pZCAwKTpjb25zb2xlLmVycm9yKHopfX0sTy5taWNyb3Rhc2tEcmFpbkRvbmU9KCk9Pntmb3IoO2x0Lmxlbmd0aDspe2NvbnN0IHo9bHQuc2hpZnQoKTt0cnl7ei56b25lLnJ1bkd1YXJkZWQoKCk9Pnt0aHJvdyB6LnRocm93T3JpZ2luYWw/ei5yZWplY3Rpb246en0pfWNhdGNoKFcp'@; put 'e0h0KFcpfX19O2NvbnN0IEJ0PXN0KCJ1bmhhbmRsZWRQcm9taXNlUmVqZWN0aW9uSGFuZGxlciIpO2Z1bmN0aW9uIEh0KHope08ub25VbmhhbmRsZWRFcnJvcih6KTt0cnl7Y29uc3QgVz1CW0J0XTsiZnVuY3Rpb24iPT10eXBlb2YgVyYmVy5jYWxsKHRoaXMseil9Y2F0Y2h7fX1mdW5jdGlv'@; put 'biB0bih6KXtyZXR1cm4geiYmei50aGVufWZ1bmN0aW9uIG5uKHope3JldHVybiB6fWZ1bmN0aW9uIFZ0KHope3JldHVybiBDdC5yZWplY3Qoeil9Y29uc3QgdnQ9c3QoInN0YXRlIiksWT1zdCgidmFsdWUiKSxrdD1zdCgiZmluYWxseSIpLEx0PXN0KCJwYXJlbnRQcm9taXNlVmFsdWUiKSxY'@; put 'dD1zdCgicGFyZW50UHJvbWlzZVN0YXRlIiksS3Q9IlByb21pc2UudGhlbiIsdXQ9bnVsbCxXdD0hMCxJdD0hMSxUdD0wO2Z1bmN0aW9uIGd0KHosVyl7cmV0dXJuIGs9Pnt0cnl7QXQoeixXLGspfWNhdGNoKEcpe0F0KHosITEsRyl9fX1jb25zdCBQdD1mdW5jdGlvbigpe2xldCB6PSExO3Jl'@; put 'dHVybiBmdW5jdGlvbihrKXtyZXR1cm4gZnVuY3Rpb24oKXt6fHwoej0hMCxrLmFwcGx5KG51bGwsYXJndW1lbnRzKSl9fX0sZW49IlByb21pc2UgcmVzb2x2ZWQgd2l0aCBpdHNlbGYiLEp0PXN0KCJjdXJyZW50VGFza1RyYWNlIik7ZnVuY3Rpb24gQXQoeixXLGspe2NvbnN0IEc9UHQoKTtp'@; put 'Zih6PT09ayl0aHJvdyBuZXcgVHlwZUVycm9yKGVuKTtpZih6W3Z0XT09PXV0KXtsZXQgcHQ9bnVsbDt0cnl7KCJvYmplY3QiPT10eXBlb2Yga3x8ImZ1bmN0aW9uIj09dHlwZW9mIGspJiYocHQ9ayYmay50aGVuKX1jYXRjaChNdCl7cmV0dXJuIEcoKCk9PntBdCh6LCExLE10KX0pKCksen1p'@; put 'ZihXIT09SXQmJmsgaW5zdGFuY2VvZiBDdCYmay5oYXNPd25Qcm9wZXJ0eSh2dCkmJmsuaGFzT3duUHJvcGVydHkoWSkmJmtbdnRdIT09dXQpQShrKSxBdCh6LGtbdnRdLGtbWV0pO2Vsc2UgaWYoVyE9PUl0JiYiZnVuY3Rpb24iPT10eXBlb2YgcHQpdHJ5e3B0LmNhbGwoayxHKGd0KHosVykp'@; put 'LEcoZ3QoeiwhMSkpKX1jYXRjaChNdCl7RygoKT0+e0F0KHosITEsTXQpfSkoKX1lbHNle3pbdnRdPVc7Y29uc3QgTXQ9eltZXTtpZih6W1ldPWsseltrdF09PT1rdCYmVz09PVd0JiYoelt2dF09eltYdF0seltZXT16W0x0XSksVz09PUl0JiZrIGluc3RhbmNlb2YgRXJyb3Ipe2NvbnN0IGN0'@; put 'PUIuY3VycmVudFRhc2smJkIuY3VycmVudFRhc2suZGF0YSYmQi5jdXJyZW50VGFzay5kYXRhW0R0XTtjdCYmSihrLEp0LHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCx2YWx1ZTpjdH0pfWZvcihsZXQgY3Q9MDtjdDxNdC5sZW5ndGg7KWooeixNdFtjdCsrXSxN'@; put 'dFtjdCsrXSxNdFtjdCsrXSxNdFtjdCsrXSk7aWYoMD09TXQubGVuZ3RoJiZXPT1JdCl7elt2dF09VHQ7bGV0IGN0PWs7dHJ5e3Rocm93IG5ldyBFcnJvcigiVW5jYXVnaHQgKGluIHByb21pc2UpOiAiK2Z1bmN0aW9uIG90KHope3JldHVybiB6JiZ6LnRvU3RyaW5nPT09T2JqZWN0LnByb3Rv'@; put 'dHlwZS50b1N0cmluZz8oei5jb25zdHJ1Y3RvciYmei5jb25zdHJ1Y3Rvci5uYW1lfHwiIikrIjogIitKU09OLnN0cmluZ2lmeSh6KTp6P3oudG9TdHJpbmcoKTpPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoeil9KGspKyhrJiZrLnN0YWNrPyJcbiIray5zdGFjazoiIikpfWNhdGNo'@; put 'KHd0KXtjdD13dH1TdCYmKGN0LnRocm93T3JpZ2luYWw9ITApLGN0LnJlamVjdGlvbj1rLGN0LnByb21pc2U9eixjdC56b25lPUIuY3VycmVudCxjdC50YXNrPUIuY3VycmVudFRhc2ssbHQucHVzaChjdCksTy5zY2hlZHVsZU1pY3JvVGFzaygpfX19cmV0dXJuIHp9Y29uc3QgYXQ9c3QoInJl'@; put 'amVjdGlvbkhhbmRsZWRIYW5kbGVyIik7ZnVuY3Rpb24gQSh6KXtpZih6W3Z0XT09PVR0KXt0cnl7Y29uc3QgVz1CW2F0XTtXJiYiZnVuY3Rpb24iPT10eXBlb2YgVyYmVy5jYWxsKHRoaXMse3JlamVjdGlvbjp6W1ldLHByb21pc2U6en0pfWNhdGNoe316W3Z0XT1JdDtmb3IobGV0IFc9MDtX'@; put 'PGx0Lmxlbmd0aDtXKyspej09PWx0W1ddLnByb21pc2UmJmx0LnNwbGljZShXLDEpfX1mdW5jdGlvbiBqKHosVyxrLEcscHQpe0Eoeik7Y29uc3QgTXQ9elt2dF0sY3Q9TXQ/ImZ1bmN0aW9uIj09dHlwZW9mIEc/RzpubjoiZnVuY3Rpb24iPT10eXBlb2YgcHQ/cHQ6VnQ7Vy5zY2hlZHVsZU1p'@; put 'Y3JvVGFzayhLdCwoKT0+e3RyeXtjb25zdCB3dD16W1ldLFJ0PSEhayYma3Q9PT1rW2t0XTtSdCYmKGtbTHRdPXd0LGtbWHRdPU10KTtjb25zdCBGdD1XLnJ1bihjdCx2b2lkIDAsUnQmJmN0IT09VnQmJmN0IT09bm4/W106W3d0XSk7QXQoaywhMCxGdCl9Y2F0Y2god3Qpe0F0KGssITEsd3Qp'@; put 'fX0sayl9Y29uc3QgRXQ9ZnVuY3Rpb24oKXt9LFp0PVIuQWdncmVnYXRlRXJyb3I7Y2xhc3MgQ3R7c3RhdGljIHRvU3RyaW5nKCl7cmV0dXJuImZ1bmN0aW9uIFpvbmVBd2FyZVByb21pc2UoKSB7IFtuYXRpdmUgY29kZV0gfSJ9c3RhdGljIHJlc29sdmUoVyl7cmV0dXJuIFcgaW5zdGFuY2Vv'@; put 'ZiBDdD9XOkF0KG5ldyB0aGlzKG51bGwpLFd0LFcpfXN0YXRpYyByZWplY3QoVyl7cmV0dXJuIEF0KG5ldyB0aGlzKG51bGwpLEl0LFcpfXN0YXRpYyB3aXRoUmVzb2x2ZXJzKCl7Y29uc3QgVz17fTtyZXR1cm4gVy5wcm9taXNlPW5ldyBDdCgoayxHKT0+e1cucmVzb2x2ZT1rLFcucmVqZWN0'@; put 'PUd9KSxXfXN0YXRpYyBhbnkoVyl7aWYoIVd8fCJmdW5jdGlvbiIhPXR5cGVvZiBXW1N5bWJvbC5pdGVyYXRvcl0pcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBadChbXSwiQWxsIHByb21pc2VzIHdlcmUgcmVqZWN0ZWQiKSk7Y29uc3Qgaz1bXTtsZXQgRz0wO3RyeXtmb3IobGV0IGN0IG9m'@; put 'IFcpRysrLGsucHVzaChDdC5yZXNvbHZlKGN0KSl9Y2F0Y2h7cmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBadChbXSwiQWxsIHByb21pc2VzIHdlcmUgcmVqZWN0ZWQiKSl9aWYoMD09PUcpcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBadChbXSwiQWxsIHByb21pc2VzIHdlcmUgcmVqZWN0'@; put 'ZWQiKSk7bGV0IHB0PSExO2NvbnN0IE10PVtdO3JldHVybiBuZXcgQ3QoKGN0LHd0KT0+e2ZvcihsZXQgUnQ9MDtSdDxrLmxlbmd0aDtSdCsrKWtbUnRdLnRoZW4oRnQ9PntwdHx8KHB0PSEwLGN0KEZ0KSl9LEZ0PT57TXQucHVzaChGdCksRy0tLDA9PT1HJiYocHQ9ITAsd3QobmV3IFp0KE10'@; put 'LCJBbGwgcHJvbWlzZXMgd2VyZSByZWplY3RlZCIpKSl9KX0pfXN0YXRpYyByYWNlKFcpe2xldCBrLEcscHQ9bmV3IHRoaXMoKHd0LFJ0KT0+e2s9d3QsRz1SdH0pO2Z1bmN0aW9uIE10KHd0KXtrKHd0KX1mdW5jdGlvbiBjdCh3dCl7Ryh3dCl9Zm9yKGxldCB3dCBvZiBXKXRuKHd0KXx8KHd0'@; put 'PXRoaXMucmVzb2x2ZSh3dCkpLHd0LnRoZW4oTXQsY3QpO3JldHVybiBwdH1zdGF0aWMgYWxsKFcpe3JldHVybiBDdC5hbGxXaXRoQ2FsbGJhY2soVyl9c3RhdGljIGFsbFNldHRsZWQoVyl7cmV0dXJuKHRoaXMmJnRoaXMucHJvdG90eXBlIGluc3RhbmNlb2YgQ3Q/dGhpczpDdCkuYWxsV2l0'@; put 'aENhbGxiYWNrKFcse3RoZW5DYWxsYmFjazpHPT4oe3N0YXR1czoiZnVsZmlsbGVkIix2YWx1ZTpHfSksZXJyb3JDYWxsYmFjazpHPT4oe3N0YXR1czoicmVqZWN0ZWQiLHJlYXNvbjpHfSl9KX1zdGF0aWMgYWxsV2l0aENhbGxiYWNrKFcsayl7bGV0IEcscHQsTXQ9bmV3IHRoaXMoKEZ0LCR0'@; put 'KT0+e0c9RnQscHQ9JHR9KSxjdD0yLHd0PTA7Y29uc3QgUnQ9W107Zm9yKGxldCBGdCBvZiBXKXt0bihGdCl8fChGdD10aGlzLnJlc29sdmUoRnQpKTtjb25zdCAkdD13dDt0cnl7RnQudGhlbihVdD0+e1J0WyR0XT1rP2sudGhlbkNhbGxiYWNrKFV0KTpVdCxjdC0tLDA9PT1jdCYmRyhSdCl9'@; put 'LFV0PT57az8oUnRbJHRdPWsuZXJyb3JDYWxsYmFjayhVdCksY3QtLSwwPT09Y3QmJkcoUnQpKTpwdChVdCl9KX1jYXRjaChVdCl7cHQoVXQpfWN0Kyssd3QrK31yZXR1cm4gY3QtPTIsMD09PWN0JiZHKFJ0KSxNdH1jb25zdHJ1Y3RvcihXKXtjb25zdCBrPXRoaXM7aWYoIShrIGluc3RhbmNl'@; put 'b2YgQ3QpKXRocm93IG5ldyBFcnJvcigiTXVzdCBiZSBhbiBpbnN0YW5jZW9mIFByb21pc2UuIik7a1t2dF09dXQsa1tZXT1bXTt0cnl7Y29uc3QgRz1QdCgpO1cmJlcoRyhndChrLFd0KSksRyhndChrLEl0KSkpfWNhdGNoKEcpe0F0KGssITEsRyl9fWdldFtTeW1ib2wudG9TdHJpbmdUYWdd'@; put 'KCl7cmV0dXJuIlByb21pc2UifWdldFtTeW1ib2wuc3BlY2llc10oKXtyZXR1cm4gQ3R9dGhlbihXLGspe2xldCBHPXRoaXMuY29uc3RydWN0b3I/LltTeW1ib2wuc3BlY2llc107KCFHfHwiZnVuY3Rpb24iIT10eXBlb2YgRykmJihHPXRoaXMuY29uc3RydWN0b3J8fEN0KTtjb25zdCBwdD1u'@; put 'ZXcgRyhFdCksTXQ9Qi5jdXJyZW50O3JldHVybiB0aGlzW3Z0XT09dXQ/dGhpc1tZXS5wdXNoKE10LHB0LFcsayk6aih0aGlzLE10LHB0LFcsaykscHR9Y2F0Y2goVyl7cmV0dXJuIHRoaXMudGhlbihudWxsLFcpfWZpbmFsbHkoVyl7bGV0IGs9dGhpcy5jb25zdHJ1Y3Rvcj8uW1N5bWJvbC5z'@; put 'cGVjaWVzXTsoIWt8fCJmdW5jdGlvbiIhPXR5cGVvZiBrKSYmKGs9Q3QpO2NvbnN0IEc9bmV3IGsoRXQpO0dba3RdPWt0O2NvbnN0IHB0PUIuY3VycmVudDtyZXR1cm4gdGhpc1t2dF09PXV0P3RoaXNbWV0ucHVzaChwdCxHLFcsVyk6aih0aGlzLHB0LEcsVyxXKSxHfX1DdC5yZXNvbHZlPUN0'@; put 'LnJlc29sdmUsQ3QucmVqZWN0PUN0LnJlamVjdCxDdC5yYWNlPUN0LnJhY2UsQ3QuYWxsPUN0LmFsbDtjb25zdCBnbj1SW3J0XT1SLlByb21pc2U7Ui5Qcm9taXNlPUN0O2NvbnN0IHZuPXN0KCJ0aGVuUGF0Y2hlZCIpO2Z1bmN0aW9uIHBuKHope2NvbnN0IFc9ei5wcm90b3R5cGUsaz1OKFcs'@; put 'InRoZW4iKTtpZihrJiYoITE9PT1rLndyaXRhYmxlfHwhay5jb25maWd1cmFibGUpKXJldHVybjtjb25zdCBHPVcudGhlbjtXW3h0XT1HLHoucHJvdG90eXBlLnRoZW49ZnVuY3Rpb24ocHQsTXQpe3JldHVybiBuZXcgQ3QoKHd0LFJ0KT0+e0cuY2FsbCh0aGlzLHd0LFJ0KX0pLnRoZW4ocHQs'@; put 'TXQpfSx6W3ZuXT0hMH1yZXR1cm4gTy5wYXRjaFRoZW49cG4sZ24mJihwbihnbiksZHQoUiwiZmV0Y2giLHo9PmZ1bmN0aW9uIGNuKHope3JldHVybiBmdW5jdGlvbihXLGspe2xldCBHPXouYXBwbHkoVyxrKTtpZihHIGluc3RhbmNlb2YgQ3QpcmV0dXJuIEc7bGV0IHB0PUcuY29uc3RydWN0'@; put 'b3I7cmV0dXJuIHB0W3ZuXXx8cG4ocHQpLEd9fSh6KSkpLFByb21pc2VbQi5fX3N5bWJvbF9fKCJ1bmNhdWdodFByb21pc2VFcnJvcnMiKV09bHQsQ3R9KX0pKFMpLGZ1bmN0aW9uIGFuKFMpe1MuX19sb2FkX3BhdGNoKCJ0b1N0cmluZyIsUj0+e2NvbnN0IEI9RnVuY3Rpb24ucHJvdG90eXBl'@; put 'LnRvU3RyaW5nLE89eCgiT3JpZ2luYWxEZWxlZ2F0ZSIpLE49eCgiUHJvbWlzZSIpLEo9eCgiRXJyb3IiKSxvdD1mdW5jdGlvbigpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzKXtjb25zdCBydD10aGlzW09dO2lmKHJ0KXJldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBydD9CLmNhbGwocnQp'@; put 'Ok9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChydCk7aWYodGhpcz09PVByb21pc2Upe2NvbnN0IHh0PVJbTl07aWYoeHQpcmV0dXJuIEIuY2FsbCh4dCl9aWYodGhpcz09PUVycm9yKXtjb25zdCB4dD1SW0pdO2lmKHh0KXJldHVybiBCLmNhbGwoeHQpfX1yZXR1cm4gQi5jYWxsKHRo'@; put 'aXMpfTtvdFtPXT1CLEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZz1vdDtjb25zdCBzdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO09iamVjdC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgUHJvbWlzZSYmdGhpcyBpbnN0YW5jZW9m'@; put 'IFByb21pc2U/IltvYmplY3QgUHJvbWlzZV0iOnN0LmNhbGwodGhpcyl9fSl9KFMpLGZ1bmN0aW9uIGtuKFMpe1MuX19sb2FkX3BhdGNoKCJ1dGlsIiwoUixCLE8pPT57Y29uc3QgTj1RKFIpO08ucGF0Y2hPblByb3BlcnRpZXM9ZXQsTy5wYXRjaE1ldGhvZD1kdCxPLmJpbmRBcmd1bWVudHM9'@; put 'VCxPLnBhdGNoTWFjcm9UYXNrPWJ0O2NvbnN0IEo9Qi5fX3N5bWJvbF9fKCJCTEFDS19MSVNURURfRVZFTlRTIiksb3Q9Qi5fX3N5bWJvbF9fKCJVTlBBVENIRURfRVZFTlRTIik7UltvdF0mJihSW0pdPVJbb3RdKSxSW0pdJiYoQltKXT1CW290XT1SW0pdKSxPLnBhdGNoRXZlbnRQcm90b3R5'@; put 'cGU9cixPLnBhdGNoRXZlbnRUYXJnZXQ9VG4sTy5pc0lFT3JFZGdlPUd0LE8uT2JqZWN0RGVmaW5lUHJvcGVydHk9cyxPLk9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvcj1lLE8uT2JqZWN0Q3JlYXRlPXUsTy5BcnJheVNsaWNlPWYsTy5wYXRjaENsYXNzPWZ0LE8ud3JhcFdpdGhDdXJy'@; put 'ZW50Wm9uZT1ELE8uZmlsdGVyUHJvcGVydGllcz1fLE8uYXR0YWNoT3JpZ2luVG9QYXRjaGVkPU90LE8uX3JlZGVmaW5lUHJvcGVydHk9T2JqZWN0LmRlZmluZVByb3BlcnR5LE8ucGF0Y2hDYWxsYmFja3M9TW4sTy5nZXRHbG9iYWxPYmplY3RzPSgpPT4oe2dsb2JhbFNvdXJjZXM6ZG4sem9u'@; put 'ZVN5bWJvbEV2ZW50TmFtZXM6cXQsZXZlbnROYW1lczpOLGlzQnJvd3NlcjpudCxpc01peDp0dCxpc05vZGU6WixUUlVFX1NUUjptLEZBTFNFX1NUUjpFLFpPTkVfU1lNQk9MX1BSRUZJWDpnLEFERF9FVkVOVF9MSVNURU5FUl9TVFI6aSxSRU1PVkVfRVZFTlRfTElTVEVORVJfU1RSOnZ9KX0p'@; put 'fShTKX0pKFJuKSxmdW5jdGlvbiB6dChTKXtTLl9fbG9hZF9wYXRjaCgibGVnYWN5IixSPT57Y29uc3QgQj1SW1MuX19zeW1ib2xfXygibGVnYWN5UGF0Y2giKV07QiYmQigpfSksUy5fX2xvYWRfcGF0Y2goInRpbWVycyIsUj0+e2NvbnN0IEI9InNldCIsTz0iY2xlYXIiO1AoUixCLE8sIlRp'@; put 'bWVvdXQiKSxQKFIsQixPLCJJbnRlcnZhbCIpLFAoUixCLE8sIkltbWVkaWF0ZSIpfSksUy5fX2xvYWRfcGF0Y2goInJlcXVlc3RBbmltYXRpb25GcmFtZSIsUj0+e1AoUiwicmVxdWVzdCIsImNhbmNlbCIsIkFuaW1hdGlvbkZyYW1lIiksUChSLCJtb3pSZXF1ZXN0IiwibW96Q2FuY2VsIiwi'@; put 'QW5pbWF0aW9uRnJhbWUiKSxQKFIsIndlYmtpdFJlcXVlc3QiLCJ3ZWJraXRDYW5jZWwiLCJBbmltYXRpb25GcmFtZSIpfSksUy5fX2xvYWRfcGF0Y2goImJsb2NraW5nIiwoUixCKT0+e2NvbnN0IE89WyJhbGVydCIsInByb21wdCIsImNvbmZpcm0iXTtmb3IobGV0IE49MDtOPE8ubGVuZ3Ro'@; put 'O04rKylkdChSLE9bTl0sKG90LHN0LGx0KT0+ZnVuY3Rpb24oU3QscnQpe3JldHVybiBCLmN1cnJlbnQucnVuKG90LFIscnQsbHQpfSl9KSxTLl9fbG9hZF9wYXRjaCgiRXZlbnRUYXJnZXQiLChSLEIsTyk9PnsoZnVuY3Rpb24ganQoUyxSKXtSLnBhdGNoRXZlbnRQcm90b3R5cGUoUyxSKX0p'@; put 'KFIsTyksZnVuY3Rpb24gJChTLFIpe2lmKFpvbmVbUi5zeW1ib2woInBhdGNoRXZlbnRUYXJnZXQiKV0pcmV0dXJuO2NvbnN0e2V2ZW50TmFtZXM6Qix6b25lU3ltYm9sRXZlbnROYW1lczpPLFRSVUVfU1RSOk4sRkFMU0VfU1RSOkosWk9ORV9TWU1CT0xfUFJFRklYOm90fT1SLmdldEdsb2Jh'@; put 'bE9iamVjdHMoKTtmb3IobGV0IGx0PTA7bHQ8Qi5sZW5ndGg7bHQrKyl7Y29uc3QgU3Q9QltsdF0sRHQ9b3QrKFN0K0opLEJ0PW90KyhTdCtOKTtPW1N0XT17fSxPW1N0XVtKXT1EdCxPW1N0XVtOXT1CdH1jb25zdCBzdD1TLkV2ZW50VGFyZ2V0O3N0JiZzdC5wcm90b3R5cGUmJlIucGF0Y2hF'@; put 'dmVudFRhcmdldChTLFIsW3N0JiZzdC5wcm90b3R5cGVdKX0oUixPKTtjb25zdCBOPVIuWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldDtOJiZOLnByb3RvdHlwZSYmTy5wYXRjaEV2ZW50VGFyZ2V0KFIsTyxbTi5wcm90b3R5cGVdKX0pLFMuX19sb2FkX3BhdGNoKCJNdXRhdGlvbk9ic2VydmVy'@; put 'IiwoUixCLE8pPT57ZnQoIk11dGF0aW9uT2JzZXJ2ZXIiKSxmdCgiV2ViS2l0TXV0YXRpb25PYnNlcnZlciIpfSksUy5fX2xvYWRfcGF0Y2goIkludGVyc2VjdGlvbk9ic2VydmVyIiwoUixCLE8pPT57ZnQoIkludGVyc2VjdGlvbk9ic2VydmVyIil9KSxTLl9fbG9hZF9wYXRjaCgiRmlsZVJl'@; put 'YWRlciIsKFIsQixPKT0+e2Z0KCJGaWxlUmVhZGVyIil9KSxTLl9fbG9hZF9wYXRjaCgib25fcHJvcGVydHkiLChSLEIsTyk9PnshZnVuY3Rpb24gaXQoUyxSKXtpZihaJiYhdHR8fFpvbmVbUy5zeW1ib2woInBhdGNoRXZlbnRzIildKXJldHVybjtjb25zdCBCPVIuX19ab25lX2lnbm9yZV9v'@; put 'bl9wcm9wZXJ0aWVzO2xldCBPPVtdO2lmKG50KXtjb25zdCBOPXdpbmRvdztPPU8uY29uY2F0KFsiRG9jdW1lbnQiLCJTVkdFbGVtZW50IiwiRWxlbWVudCIsIkhUTUxFbGVtZW50IiwiSFRNTEJvZHlFbGVtZW50IiwiSFRNTE1lZGlhRWxlbWVudCIsIkhUTUxGcmFtZVNldEVsZW1lbnQiLCJI'@; put 'VE1MRnJhbWVFbGVtZW50IiwiSFRNTElGcmFtZUVsZW1lbnQiLCJIVE1MTWFycXVlZUVsZW1lbnQiLCJXb3JrZXIiXSk7Y29uc3QgSj1mdW5jdGlvbiBvbigpe3RyeXtjb25zdCBTPUMubmF2aWdhdG9yLnVzZXJBZ2VudDtpZigtMSE9PVMuaW5kZXhPZigiTVNJRSAiKXx8LTEhPT1TLmluZGV4'@; put 'T2YoIlRyaWRlbnQvIikpcmV0dXJuITB9Y2F0Y2h7fXJldHVybiExfSgpP1t7dGFyZ2V0Ok4saWdub3JlUHJvcGVydGllczpbImVycm9yIl19XTpbXTtIKE4sUShOKSxCJiZCLmNvbmNhdChKKSxhKE4pKX1PPU8uY29uY2F0KFsiWE1MSHR0cFJlcXVlc3QiLCJYTUxIdHRwUmVxdWVzdEV2ZW50'@; put 'VGFyZ2V0IiwiSURCSW5kZXgiLCJJREJSZXF1ZXN0IiwiSURCT3BlbkRCUmVxdWVzdCIsIklEQkRhdGFiYXNlIiwiSURCVHJhbnNhY3Rpb24iLCJJREJDdXJzb3IiLCJXZWJTb2NrZXQiXSk7Zm9yKGxldCBOPTA7TjxPLmxlbmd0aDtOKyspe2NvbnN0IEo9UltPW05dXTtKJiZKLnByb3RvdHlw'@; put 'ZSYmSChKLnByb3RvdHlwZSxRKEoucHJvdG90eXBlKSxCKX19KE8sUil9KSxTLl9fbG9hZF9wYXRjaCgiY3VzdG9tRWxlbWVudHMiLChSLEIsTyk9PnshZnVuY3Rpb24gSyhTLFIpe2NvbnN0e2lzQnJvd3NlcjpCLGlzTWl4Ok99PVIuZ2V0R2xvYmFsT2JqZWN0cygpOyhCfHxPKSYmUy5jdXN0'@; put 'b21FbGVtZW50cyYmImN1c3RvbUVsZW1lbnRzImluIFMmJlIucGF0Y2hDYWxsYmFja3MoUixTLmN1c3RvbUVsZW1lbnRzLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSIsWyJjb25uZWN0ZWRDYWxsYmFjayIsImRpc2Nvbm5lY3RlZENhbGxiYWNrIiwiYWRvcHRlZENhbGxiYWNrIiwiYXR0cmli'@; put 'dXRlQ2hhbmdlZENhbGxiYWNrIiwiZm9ybUFzc29jaWF0ZWRDYWxsYmFjayIsImZvcm1EaXNhYmxlZENhbGxiYWNrIiwiZm9ybVJlc2V0Q2FsbGJhY2siLCJmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2siXSl9KFIsTyl9KSxTLl9fbG9hZF9wYXRjaCgiWEhSIiwoUixCKT0+eyFmdW5jdGlvbiBT'@; put 'dChydCl7Y29uc3QgeHQ9cnQuWE1MSHR0cFJlcXVlc3Q7aWYoIXh0KXJldHVybjtjb25zdCBEdD14dC5wcm90b3R5cGU7bGV0IEh0PUR0W3BdLHRuPUR0W2RdO2lmKCFIdCl7Y29uc3QgVHQ9cnQuWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldDtpZihUdCl7Y29uc3QgZ3Q9VHQucHJvdG90eXBl'@; put 'O0h0PWd0W3BdLHRuPWd0W2RdfX1jb25zdCBubj0icmVhZHlzdGF0ZWNoYW5nZSIsVnQ9InNjaGVkdWxlZCI7ZnVuY3Rpb24gdnQoVHQpe2NvbnN0IGd0PVR0LmRhdGEsUHQ9Z3QudGFyZ2V0O1B0W290XT0hMSxQdFtsdF09ITE7Y29uc3QgZW49UHRbSl07SHR8fChIdD1QdFtwXSx0bj1QdFtk'@; put 'XSksZW4mJnRuLmNhbGwoUHQsbm4sZW4pO2NvbnN0IEp0PVB0W0pdPSgpPT57aWYoUHQucmVhZHlTdGF0ZT09PVB0LkRPTkUpaWYoIWd0LmFib3J0ZWQmJlB0W290XSYmVHQuc3RhdGU9PT1WdCl7Y29uc3QgYXQ9UHRbQi5fX3N5bWJvbF9fKCJsb2FkZmFsc2UiKV07aWYoMCE9PVB0LnN0YXR1'@; put 'cyYmYXQmJmF0Lmxlbmd0aD4wKXtjb25zdCBBPVR0Lmludm9rZTtUdC5pbnZva2U9ZnVuY3Rpb24oKXtjb25zdCBqPVB0W0IuX19zeW1ib2xfXygibG9hZGZhbHNlIildO2ZvcihsZXQgaHQ9MDtodDxqLmxlbmd0aDtodCsrKWpbaHRdPT09VHQmJmouc3BsaWNlKGh0LDEpOyFndC5hYm9ydGVk'@; put 'JiZUdC5zdGF0ZT09PVZ0JiZBLmNhbGwoVHQpfSxhdC5wdXNoKFR0KX1lbHNlIFR0Lmludm9rZSgpfWVsc2UhZ3QuYWJvcnRlZCYmITE9PT1QdFtvdF0mJihQdFtsdF09ITApfTtyZXR1cm4gSHQuY2FsbChQdCxubixKdCksUHRbT118fChQdFtPXT1UdCksV3QuYXBwbHkoUHQsZ3QuYXJncyks'@; put 'UHRbb3RdPSEwLFR0fWZ1bmN0aW9uIFkoKXt9ZnVuY3Rpb24ga3QoVHQpe2NvbnN0IGd0PVR0LmRhdGE7cmV0dXJuIGd0LmFib3J0ZWQ9ITAsSXQuYXBwbHkoZ3QudGFyZ2V0LGd0LmFyZ3MpfWNvbnN0IEx0PWR0KER0LCJvcGVuIiwoKT0+ZnVuY3Rpb24oVHQsZ3Qpe3JldHVybiBUdFtOXT0w'@; put 'PT1ndFsyXSxUdFtzdF09Z3RbMV0sTHQuYXBwbHkoVHQsZ3QpfSksS3Q9eCgiZmV0Y2hUYXNrQWJvcnRpbmciKSx1dD14KCJmZXRjaFRhc2tTY2hlZHVsaW5nIiksV3Q9ZHQoRHQsInNlbmQiLCgpPT5mdW5jdGlvbihUdCxndCl7aWYoITA9PT1CLmN1cnJlbnRbdXRdfHxUdFtOXSlyZXR1cm4g'@; put 'V3QuYXBwbHkoVHQsZ3QpO3tjb25zdCBQdD17dGFyZ2V0OlR0LHVybDpUdFtzdF0saXNQZXJpb2RpYzohMSxhcmdzOmd0LGFib3J0ZWQ6ITF9LGVuPUYoIlhNTEh0dHBSZXF1ZXN0LnNlbmQiLFksUHQsdnQsa3QpO1R0JiYhMD09PVR0W2x0XSYmIVB0LmFib3J0ZWQmJmVuLnN0YXRlPT09VnQm'@; put 'JmVuLmludm9rZSgpfX0pLEl0PWR0KER0LCJhYm9ydCIsKCk9PmZ1bmN0aW9uKFR0LGd0KXtjb25zdCBQdD1mdW5jdGlvbiBCdChUdCl7cmV0dXJuIFR0W09dfShUdCk7aWYoUHQmJiJzdHJpbmciPT10eXBlb2YgUHQudHlwZSl7aWYobnVsbD09UHQuY2FuY2VsRm58fFB0LmRhdGEmJlB0LmRh'@; put 'dGEuYWJvcnRlZClyZXR1cm47UHQuem9uZS5jYW5jZWxUYXNrKFB0KX1lbHNlIGlmKCEwPT09Qi5jdXJyZW50W0t0XSlyZXR1cm4gSXQuYXBwbHkoVHQsZ3QpfSl9KFIpO2NvbnN0IE89eCgieGhyVGFzayIpLE49eCgieGhyU3luYyIpLEo9eCgieGhyTGlzdGVuZXIiKSxvdD14KCJ4aHJTY2hl'@; put 'ZHVsZWQiKSxzdD14KCJ4aHJVUkwiKSxsdD14KCJ4aHJFcnJvckJlZm9yZVNjaGVkdWxlZCIpfSksUy5fX2xvYWRfcGF0Y2goImdlb2xvY2F0aW9uIixSPT57Ui5uYXZpZ2F0b3ImJlIubmF2aWdhdG9yLmdlb2xvY2F0aW9uJiZmdW5jdGlvbiBiKFMsUil7Y29uc3QgQj1TLmNvbnN0cnVjdG9y'@; put 'Lm5hbWU7Zm9yKGxldCBPPTA7TzxSLmxlbmd0aDtPKyspe2NvbnN0IE49UltPXSxKPVNbTl07aWYoSil7aWYoIUwoZShTLE4pKSljb250aW51ZTtTW05dPShzdD0+e2NvbnN0IGx0PWZ1bmN0aW9uKCl7cmV0dXJuIHN0LmFwcGx5KHRoaXMsVChhcmd1bWVudHMsQisiLiIrTikpfTtyZXR1cm4g'@; put 'T3QobHQsc3QpLGx0fSkoSil9fX0oUi5uYXZpZ2F0b3IuZ2VvbG9jYXRpb24sWyJnZXRDdXJyZW50UG9zaXRpb24iLCJ3YXRjaFBvc2l0aW9uIl0pfSksUy5fX2xvYWRfcGF0Y2goIlByb21pc2VSZWplY3Rpb25FdmVudCIsKFIsQik9PntmdW5jdGlvbiBPKE4pe3JldHVybiBmdW5jdGlvbihK'@; put 'KXtoKFIsTikuZm9yRWFjaChzdD0+e2NvbnN0IGx0PVIuUHJvbWlzZVJlamVjdGlvbkV2ZW50O2lmKGx0KXtjb25zdCBTdD1uZXcgbHQoTix7cHJvbWlzZTpKLnByb21pc2UscmVhc29uOkoucmVqZWN0aW9ufSk7c3QuaW52b2tlKFN0KX19KX19Ui5Qcm9taXNlUmVqZWN0aW9uRXZlbnQmJihC'@; put 'W3goInVuaGFuZGxlZFByb21pc2VSZWplY3Rpb25IYW5kbGVyIildPU8oInVuaGFuZGxlZHJlamVjdGlvbiIpLEJbeCgicmVqZWN0aW9uSGFuZGxlZEhhbmRsZXIiKV09TygicmVqZWN0aW9uaGFuZGxlZCIpKX0pLFMuX19sb2FkX3BhdGNoKCJxdWV1ZU1pY3JvdGFzayIsKFIsQixPKT0+eyFm'@; put 'dW5jdGlvbiBvKFMsUil7Ui5wYXRjaE1ldGhvZChTLCJxdWV1ZU1pY3JvdGFzayIsQj0+ZnVuY3Rpb24oTyxOKXtab25lLmN1cnJlbnQuc2NoZWR1bGVNaWNyb1Rhc2soInF1ZXVlTWljcm90YXNrIixOWzBdKX0pfShSLE8pfSl9KFJuKX0sOTI1Njg6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijtj'@; put 'b25zdCBuPXQoODI1NzQpO0ludGwuRGF0ZVRpbWVGb3JtYXQucHJvdG90eXBlLmZvcm1hdFRvUGFydHM9ZnVuY3Rpb24oSSl7bGV0IE09dGhpcy5yZXNvbHZlZE9wdGlvbnMoKSxUPWZ1bmN0aW9uIEMoSSl7dmFyIFosbnQsdHQseXQsbXQsTT1JLmF2YWlsYWJsZUZvcm1hdHMsVD1JLnRpbWVG'@; put 'b3JtYXRzLGI9SS5kYXRlRm9ybWF0cyxMPUkubWVkaXVtLFU9W10scT1bXSxYPVtdO2Z1bmN0aW9uIGV0KFYsZnQpe3ZhciBkdD1uZXcgQXJyYXkoKFYubWF0Y2goL00vZyl8fFtdKS5sZW5ndGgrMSksYnQ9bmV3IEFycmF5KChWLm1hdGNoKC9FL2cpfHxbXSkubGVuZ3RoKzEpO3JldHVybiBk'@; put 'dC5sZW5ndGg+MiYmKGZ0PWZ0LnJlcGxhY2UoLyhNfEwpKy8sZHQuam9pbigiJDEiKSkpLGJ0Lmxlbmd0aD4yJiYoZnQ9ZnQucmVwbGFjZSgvKFtFZWNdKSsvLGJ0LmpvaW4oIiQxIikpKSxmdH1mb3IoWiBpbiBNKU0uaGFzT3duUHJvcGVydHkoWikmJigodHQ9dyhudD1ldChaLE1bWl0pKSkm'@; put 'JihVLnB1c2godHQpLEYodHQpP1gucHVzaChudCk6eCh0dCkmJnEucHVzaChudCkpKTtmb3IoeXQ9MDt5dDxxLmxlbmd0aDt5dCs9MSlmb3IobXQ9MDttdDxYLmxlbmd0aDttdCs9MSkodHQ9dyhudD1MLnJlcGxhY2UoInswfSIscVt5dF0pLnJlcGxhY2UoInsxfSIsWFttdF0pLnJlcGxhY2Uo'@; put 'L15bLFxzXSt8Wyxcc10rJC9naSwiIikpKSYmVS5wdXNoKHR0KTtmb3IoWiBpbiBUKVQuaGFzT3duUHJvcGVydHkoWikmJigodHQ9dyhudD1ldChaLFRbWl0pKSkmJlUucHVzaCh0dCkpO2ZvcihaIGluIGIpYi5oYXNPd25Qcm9wZXJ0eShaKSYmKCh0dD13KG50PWV0KFosYltaXSkpKSYmVS5w'@; put 'dXNoKHR0KSk7cmV0dXJuIFV9KG4uZGF0ZS5mb3JtYXRzKSxiPXt9O2Zvcih2YXIgTCBpbiBmKXMuY2FsbChmLEwpJiYoYlsiW1siK0wrIl1dIl09TVtMXSk7bGV0IFo9ZnVuY3Rpb24gaShJLE0sVCl7Zm9yKHZhciBxLG10PS0xLzAsWD0wLGV0PU0ubGVuZ3RoO1g8ZXQ7KXt2YXIgVj1NW1hd'@; put 'LGZ0PTA7Zm9yKHZhciBkdCBpbiBmKWlmKHMuY2FsbChmLGR0KSl7dmFyIGJ0PUlbIltbIitkdCsiXV0iXSxPdD1zLmNhbGwoVixkdCk/VltkdF06dm9pZCAwO2lmKHZvaWQgMD09PWJ0JiZ2b2lkIDAhPT1PdClmdC09MjA7ZWxzZSBpZih2b2lkIDAhPT1idCYmdm9pZCAwPT09T3QpZnQtPTEy'@; put 'MDtlbHNle3ZhciBOdD1bIjItZGlnaXQiLCJudW1lcmljIiwibmFycm93Iiwic2hvcnQiLCJsb25nIl0sWXQ9YS5jYWxsKE50LGJ0KSxvbj1hLmNhbGwoTnQsT3QpLEd0PU1hdGgubWF4KE1hdGgubWluKG9uLVl0LDIpLC0yKTtUJiYoKCJudW1lcmljIj09PWJ0fHwiMi1kaWdpdCI9PT1idCkm'@; put 'JiJudW1lcmljIiE9PU90JiYiMi1kaWdpdCIhPT1PdHx8Im51bWVyaWMiIT09YnQmJiIyLWRpZ2l0IiE9PWJ0JiYoIjItZGlnaXQiPT09T3R8fCJudW1lcmljIj09PU90KSkmJihmdC09OCksMj09PUd0P2Z0LT02OjE9PT1HdD9mdC09MzotMT09PUd0P2Z0LT02Oi0yPT09R3QmJihmdC09OCl9'@; put 'fWZ0Pm10JiYobXQ9ZnQscT1WKSxYKyt9cmV0dXJuIHF9KGIsVCk7cmV0dXJuIGZ1bmN0aW9uIGUoSSxNKXtpZighaXNGaW5pdGUoTSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgdmFsaWQgZGF0ZSBwYXNzZWQgdG8gZm9ybWF0VG9QYXJ0cyIpO2Zvcih2YXIgcSxUPSJlbi1VUyIs'@; put 'Yj1JLnBhdHRlcm4sWj0obmV3IEludGwuTnVtYmVyRm9ybWF0KFtUXSx7dXNlR3JvdXBpbmc6ITF9KSxuZXcgSW50bC5OdW1iZXJGb3JtYXQoW1RdLHttaW5pbXVtSW50ZWdlckRpZ2l0czoyLHVzZUdyb3VwaW5nOiExfSksZnVuY3Rpb24gdihJLE0sVCl7dmFyIGI9bmV3IERhdGUoSSksTD0i'@; put 'Z2V0IisoVHx8IiIpO3JldHVybnsiW1t3ZWVrZGF5XV0iOmJbTCsiRGF5Il0oKSwiW1tlcmFdXSI6KyhiW0wrIkZ1bGxZZWFyIl0oKT49MCksIltbeWVhcl1dIjpiW0wrIkZ1bGxZZWFyIl0oKSwiW1ttb250aF1dIjpiW0wrIk1vbnRoIl0oKSwiW1tkYXldXSI6YltMKyJEYXRlIl0oKSwiW1to'@; put 'b3VyXV0iOmJbTCsiSG91cnMiXSgpLCJbW21pbnV0ZV1dIjpiW0wrIk1pbnV0ZXMiXSgpLCJbW3NlY29uZF1dIjpiW0wrIlNlY29uZHMiXSgpLCJbW2luRFNUXV0iOiExfX0oTSkpLG50PSJncmVnb3J5Iix0dD1uLmRhdGUuY2FsZW5kYXJzLHl0PVtdLG10PS97KFtefV0rKX0vZyxYPTA7bnVs'@; put 'bCE9PShxPW10LmV4ZWMoYikpOyl7WDxxLmluZGV4JiZ5dC5wdXNoKHt0eXBlOiJzZXBhcmF0b3IiLHZhbHVlOmIuc3Vic3RyKFgscS5pbmRleC1YKX0pO3ZhciBldD1xWzFdLFY9bnVsbDtpZihzLmNhbGwoSSxldCkpe3ZhciBmdCxkdD1JW2V0XSxidD1aWyJbWyIrZXQrIl1dIl07aWYoInll'@; put 'YXIiPT09ZXQmJmJ0PD0wP2J0PTEtYnQ6Im1vbnRoIj09PWV0P2J0Kys6ImhvdXIiPT09ZXQmJiEwPT09SVsiW1tob3VyMTJdXSJdJiYoZnQ9KGJ0JT0xMikhPT1aWyJbWyIrZXQrIl1dIl0sMD09PWJ0JiYhMD09PUlbIltbaG91ck5vMF1dIl0mJihidD0xMikpLCJudW1lcmljIj09PWR0KVY9'@; put 'YnQ7ZWxzZSBpZigiMi1kaWdpdCI9PT1kdCkoVj1idCkubGVuZ3RoPjImJihWPVYuc2xpY2UoLTIpKTtlbHNlIGlmKGR0IGluIHUpc3dpdGNoKGV0KXtjYXNlIm1vbnRoIjpWPXAodHQsbnQsIm1vbnRocyIsZHQsWlsiW1siK2V0KyJdXSJdKTticmVhaztjYXNlIndlZWtkYXkiOnRyeXtWPXAo'@; put 'dHQsbnQsImRheXMiLGR0LFpbIltbIitldCsiXV0iXSl9Y2F0Y2h7dGhyb3cgbmV3IEVycm9yKCJDb3VsZCBub3QgZmluZCB3ZWVrZGF5IGRhdGEgZm9yIGxvY2FsZSAiK1QpfWJyZWFrO2Nhc2UidGltZVpvbmVOYW1lIjpWPSIiO2JyZWFrO2RlZmF1bHQ6Vj1aWyJbWyIrZXQrIl1dIl19fWVs'@; put 'c2UiYW1wbSI9PT1ldCYmKFY9cCh0dCxudCwiZGF5UGVyaW9kcyIsZnQ/InBtIjoiYW0iKSk7bnVsbCE9PVYmJih5dC5wdXNoKHt0eXBlOnFbMV0sdmFsdWU6Vn0pLFg9cS5pbmRleCtxWzBdLmxlbmd0aCl9cmV0dXJuIFg8Yi5sZW5ndGgmJnl0LnB1c2goe3R5cGU6InNlcGFyYXRvciIsdmFs'@; put 'dWU6Yi5zdWJzdHIoWCl9KSx5dH0oWixJKX07dmFyIHM9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxhPUFycmF5LnByb3RvdHlwZS5pbmRleE9mLHU9T2JqZWN0LmNyZWF0ZShudWxsLHtuYXJyb3c6e30sc2hvcnQ6e30sbG9uZzp7fX0pLGY9e3dlZWtkYXk6WyJuYXJyb3ciLCJz'@; put 'aG9ydCIsImxvbmciXSxlcmE6WyJuYXJyb3ciLCJzaG9ydCIsImxvbmciXSx5ZWFyOlsiMi1kaWdpdCIsIm51bWVyaWMiXSxtb250aDpbIjItZGlnaXQiLCJudW1lcmljIiwibmFycm93Iiwic2hvcnQiLCJsb25nIl0sZGF5OlsiMi1kaWdpdCIsIm51bWVyaWMiXSxob3VyOlsiMi1kaWdpdCIs'@; put 'Im51bWVyaWMiXSxtaW51dGU6WyIyLWRpZ2l0IiwibnVtZXJpYyJdLHNlY29uZDpbIjItZGlnaXQiLCJudW1lcmljIl0sdGltZVpvbmVOYW1lOlsic2hvcnQiLCJsb25nIl19O2Z1bmN0aW9uIHAoSSxNLFQsYixMKXt2YXIgVT1JW01dJiZJW01dW1RdP0lbTV1bVF06SS5ncmVnb3J5W1RdLFo9'@; put 'e25hcnJvdzpbInNob3J0IiwibG9uZyJdLHNob3J0OlsibG9uZyIsIm5hcnJvdyJdLGxvbmc6WyJzaG9ydCIsIm5hcnJvdyJdfSxudD1zLmNhbGwoVSxiKT9VW2JdOnMuY2FsbChVLFpbYl1bMF0pP1VbWltiXVswXV06VVtaW2JdWzFdXTtyZXR1cm4gbnVsbCE9TD9udFtMXTpudH12YXIgZD0v'@; put 'KD86W0VlY117MSw2fXxHezEsNX18KD86W3lZdV0rfFV7MSw1fSl8W01MXXsxLDV9fGR7MSwyfXxhfFtoa0hLXXsxLDJ9fG17MSwyfXxzezEsMn18ensxLDR9KSg/PShbXiddKidbXiddKicpKlteJ10qJCkvZyxtPS9bUXhYVk92WkFTamdGRHdXSVFxSF0vLEU9e21vbnRoOlsibnVtZXJpYyIs'@; put 'IjItZGlnaXQiLCJzaG9ydCIsImxvbmciLCJuYXJyb3ciXSx3ZWVrZGF5Olsic2hvcnQiLCJzaG9ydCIsInNob3J0IiwibG9uZyIsIm5hcnJvdyJdLGVyYTpbInNob3J0Iiwic2hvcnQiLCJzaG9ydCIsImxvbmciLCJuYXJyb3ciXX0sZz1bIndlZWtkYXkiLCJlcmEiLCJ5ZWFyIiwibW9udGgi'@; put 'LCJkYXkiXSxEPVsiaG91ciIsIm1pbnV0ZSIsInNlY29uZCIsInRpbWVab25lTmFtZSJdO2Z1bmN0aW9uIEYoSSl7Zm9yKHZhciBNPTA7TTxELmxlbmd0aDtNKz0xKWlmKEkuaGFzT3duUHJvcGVydHkoRFtNXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24geChJKXtmb3IodmFyIE09MDtN'@; put 'PGcubGVuZ3RoO00rPTEpaWYoSS5oYXNPd25Qcm9wZXJ0eShnW01dKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiB3KEkpe2lmKCFtLnRlc3QoSSkpe3ZhciBNPXt9O3JldHVybiBNLnBhdHRlcm49SS5yZXBsYWNlKGQsZnVuY3Rpb24oVCl7c3dpdGNoKFQuY2hhckF0KDApKXtjYXNlIkUi'@; put 'OmNhc2UiZSI6Y2FzZSJjIjpyZXR1cm4gTS53ZWVrZGF5PUUud2Vla2RheVtULmxlbmd0aC0xXSwie3dlZWtkYXl9IjtjYXNlIkciOnJldHVybiBNLmVyYT1FLmVyYVtULmxlbmd0aC0xXSwie2VyYX0iO2Nhc2UieSI6Y2FzZSJZIjpjYXNlInUiOmNhc2UiVSI6cmV0dXJuIE0ueWVhcj0yPT09'@; put 'VC5sZW5ndGg/IjItZGlnaXQiOiJudW1lcmljIiwie3llYXJ9IjtjYXNlIk0iOmNhc2UiTCI6cmV0dXJuIE0ubW9udGg9RS5tb250aFtULmxlbmd0aC0xXSwie21vbnRofSI7Y2FzZSJkIjpyZXR1cm4gTS5kYXk9Mj09PVQubGVuZ3RoPyIyLWRpZ2l0IjoibnVtZXJpYyIsIntkYXl9IjtjYXNl'@; put 'ImEiOnJldHVybiJ7YW1wbX0iO2Nhc2UiaCI6Y2FzZSJIIjpjYXNlImsiOmNhc2UiSyI6cmV0dXJuIE0uaG91cj0yPT09VC5sZW5ndGg/IjItZGlnaXQiOiJudW1lcmljIiwie2hvdXJ9IjtjYXNlIm0iOnJldHVybiBNLm1pbnV0ZT0yPT09VC5sZW5ndGg/IjItZGlnaXQiOiJudW1lcmljIiwi'@; put 'e21pbnV0ZX0iO2Nhc2UicyI6cmV0dXJuIE0uc2Vjb25kPTI9PT1ULmxlbmd0aD8iMi1kaWdpdCI6Im51bWVyaWMiLCJ7c2Vjb25kfSI7Y2FzZSJ6IjpyZXR1cm4gTS50aW1lWm9uZU5hbWU9VC5sZW5ndGg8ND8ic2hvcnQiOiJsb25nIiwie3RpbWVab25lTmFtZX0ifX0pLE0ucGF0dGVybj1N'@; put 'LnBhdHRlcm4ucmVwbGFjZSgvJyhbXiddKiknL2csZnVuY3Rpb24oVCxiKXtyZXR1cm4gYnx8IicifSksTS5wYXR0ZXJuLmluZGV4T2YoInthbXBtfSIpPi0xJiYoTS5ob3VyMTI9ITAsTS5wYXR0ZXJuMTI9TS5wYXR0ZXJuLE0ucGF0dGVybj1NLnBhdHRlcm4ucmVwbGFjZSgie2FtcG19Iiwi'@; put 'IikucmVwbGFjZSgvXltcc1x1RkVGRlx4QTBdK3xbXHNcdUZFRkZceEEwXSskL2csIiIpKSxNfX19LDY2Mzc0OihjLGwsdCk9Pnt0KDgyOTc1KSx0KDQ3ODk5KSx0KDkzODYzKSx0KDgyMTg5KSx0KDk2NTExKSx0KDk1ODUzKSx0KDk3MDc1KSx0KDM1MDQpLHQoNTQ5MTMpLHQoMzk4MTMpLHQo'@; put 'ODY1MTEpLHQoNTg4ODgpLHQoODE0NDkpLHQoNDc4NzQpLHQoMzQ2MDkpLHQoMzM3MDYpLHQoMTk2MjApLHQoNTc3NjIpLHQoMTUxNDQpLHQoNzUzNjkpLHQoNzYyMDkpLHQoOTUxNjUpLHQoNTYwOTQpfSwzMjg5OTooYyxsLHQpPT57dCgxMzI5MiksdCg1MjM0NiksdCg5NDI5KSx0KDc4NDkp'@; put 'LHQoNDg5NTEpLGMuZXhwb3J0cz1EYXRlfSwzOTI3MTooYyxsLHQpPT57dCg2NTA0OSksdCg3MDQ4OSksdCg5NTUwMiksdCg1NjA5NCl9LDIyOTEzOihjLGwsdCk9Pnt0KDE3NDgyKSx0KDgyOTc1KSx0KDM1ODkwKSx0KDkzMzg2KSx0KDU2MDk0KX0sODgwMjU6KGMsbCx0KT0+e3QoNzY2NDgp'@; put 'LHQoNTU3NzEpLHQoODIzOTIpLHQoNzIzMzUpLHQoNzQ4OTYpLHQoOTQ1MjEpLHQoMjkxNDcpLHQoNDEzMTgpLHQoODQzNTIpLHQoMTUzMjcpLHQoNTc1MDkpLHQoMTU5MDkpLHQoNzk1ODQpLHQoNDAzNDUpLHQoOTkxMzQpLHQoNjc5MDEpLHQoNDY1OTIpLHQoNTYwOTQpfSwxNTYyNjooYyxs'@; put 'LHQpPT57dCg2NDUwOSksdCgzNzcyNyksdCg2NzAxKSx0KDM0NDE5KSx0KDkxOTMzKSx0KDU1NTM4KSx0KDM5NDk3KSx0KDQxMDQpLHQoNjAyMTApLHQoNTY1NzYpLHQoODQ0MzcpLHQoODgwNTApLHQoNTYwOTQpfSw1NDk0MDooYyxsLHQpPT57dCg5OTY1MCksdCg5MzUpLHQoNjYwNjQpLHQo'@; put 'ODk0NDgpLHQoMjI2NDIpLHQoNTNlMyksdCg4ODY0NyksdCg4MTg5NSksdCg0ODIzNiksdCg3MzgyMiksdCgxNTU3MiksdCg2OTMxOCksdCg2NTAzMiksdCg3OTA3MyksdCgxMTQzMCksdCgzODQ1MSksdCgxODEzMiksdCgxNzQ4MiksdCg1NjA5NCl9LDI2MjAzOihjLGwsdCk9Pnt0KDk2MTA4'@; put 'KSx0KDU2MDk0KX0sNTI0NDQ6KGMsbCx0KT0+e3QoOTA1NzEpLHQoNTYwOTQpfSw2NTg0NjooYyxsLHQpPT57dCg3MTAzKSx0KDgyNTg2KSx0KDkyNTUyKSx0KDQzNzYpLHQoNzUxNTMpLHQoMTE4NzkpLHQoNTI2NTApLHQoMzExMDQpLHQoMjE4ODMpLHQoMzU0MzMpLHQoNTVlMyksdCgxNTkz'@; put 'MiksdCg1NDQzKSx0KDI2MzE2KSx0KDU2MDk0KX0sNDI0NjooYyxsLHQpPT57dCg4MzAxKSx0KDk0MTE2KSx0KDc4NjA0KSx0KDM5NjM4KSx0KDQwNDApLHQoNjgzMDUpLHQoNzQ3MDEpLHQoMjAzNDEpLHQoNTYwOTQpfSwxMDc0MzooYyxsLHQpPT57dCgxNzQ4MiksdCg4Mjk3NSksdCgzNTg5'@; put 'MCksdCg3MTYzMiksdCg1NjA5NCl9LDU2NDQyOihjLGwsdCk9Pnt0KDEyMjIwKSx0KDIzNDgzKSx0KDIwOTU3KSx0KDgyOTc1KSx0KDMyNDA1KSx0KDE3MjI0KSx0KDI4ODcyKSx0KDQ0ODk0KSx0KDEwMTc3KSx0KDY0OTc5KSx0KDg5MDExKSx0KDU0NTkxKSx0KDQ3MzM0KSx0KDcwODMpLHQo'@; put 'NjkyMTMpLHQoMzg0MzcpLHQoNjIyMjApLHQoNzY1NDkpLHQoNDI4MTgpLHQoMjg1NDMpLHQoMzU1OSksdCg4NDE1MyksdCg0MDQwKSx0KDY4MzA1KSx0KDc0NzAxKSx0KDIwMzQxKSx0KDU2MDk0KX0sMTg4ODM6KGMsbCx0KT0+e3QoOTk2NTApLHQoMTc0ODIpLHQoNTYwOTQpfSw5MzUzOihj'@; put 'LGwsdCk9Pnt0KDc3NDkxKSx0KDc0OTA3KSx0KDc5MTAwKSx0KDE5MjY5KSx0KDkxMzE5KSx0KDc5NzMyKSx0KDExNzYpLHQoMzEwNyksdCg2MTY5MSksdCg1NjA5NCl9LDYzMzg3OmM9PntjLmV4cG9ydHM9ZnVuY3Rpb24obCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGwpdGhyb3cgVHlwZUVy'@; put 'cm9yKGwrIiBpcyBub3QgYSBmdW5jdGlvbiEiKTtyZXR1cm4gbH19LDE1MTIyOihjLGwsdCk9Pnt2YXIgbj10KDU1MDg5KTtjLmV4cG9ydHM9ZnVuY3Rpb24oZSxzKXtpZigibnVtYmVyIiE9dHlwZW9mIGUmJiJOdW1iZXIiIT1uKGUpKXRocm93IFR5cGVFcnJvcihzKTtyZXR1cm4rZX19LDg4'@; put 'MTg0OihjLGwsdCk9Pnt2YXIgbj10KDY3NTc0KSgidW5zY29wYWJsZXMiKSxlPUFycmF5LnByb3RvdHlwZTtudWxsPT1lW25dJiZ0KDMzMzQxKShlLG4se30pLGMuZXhwb3J0cz1mdW5jdGlvbihzKXtlW25dW3NdPSEwfX0sMjg4Mjg6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDkx'@; put 'MjEyKSghMCk7Yy5leHBvcnRzPWZ1bmN0aW9uKGUscyxhKXtyZXR1cm4gcysoYT9uKGUscykubGVuZ3RoOjEpfX0sMTY0NDA6Yz0+e2MuZXhwb3J0cz1mdW5jdGlvbihsLHQsbixlKXtpZighKGwgaW5zdGFuY2VvZiB0KXx8dm9pZCAwIT09ZSYmZSBpbiBsKXRocm93IFR5cGVFcnJvcihuKyI6'@; put 'IGluY29ycmVjdCBpbnZvY2F0aW9uISIpO3JldHVybiBsfX0sNDIyODooYyxsLHQpPT57dmFyIG49dCg0MzMwNSk7Yy5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKCFuKGUpKXRocm93IFR5cGVFcnJvcihlKyIgaXMgbm90IGFuIG9iamVjdCEiKTtyZXR1cm4gZX19LDg0NDM4OihjLGwsdCk9Pnsi'@; put 'dXNlIHN0cmljdCI7dmFyIG49dCgxODI3MCksZT10KDcwMTU3KSxzPXQoODE0ODUpO2MuZXhwb3J0cz1bXS5jb3B5V2l0aGlufHxmdW5jdGlvbih1LGYpe3ZhciBpPW4odGhpcyksdj1zKGkubGVuZ3RoKSxwPWUodSx2KSxkPWUoZix2KSxtPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNb'@; put 'Ml06dm9pZCAwLEU9TWF0aC5taW4oKHZvaWQgMD09PW0/djplKG0sdikpLWQsdi1wKSxnPTE7Zm9yKGQ8cCYmcDxkK0UmJihnPS0xLGQrPUUtMSxwKz1FLTEpO0UtLSA+MDspZCBpbiBpP2lbcF09aVtkXTpkZWxldGUgaVtwXSxwKz1nLGQrPWc7cmV0dXJuIGl9fSwzNTU2NDooYyxsLHQpPT57'@; put 'InVzZSBzdHJpY3QiO3ZhciBuPXQoMTgyNzApLGU9dCg3MDE1Nykscz10KDgxNDg1KTtjLmV4cG9ydHM9ZnVuY3Rpb24odSl7Zm9yKHZhciBmPW4odGhpcyksaT1zKGYubGVuZ3RoKSx2PWFyZ3VtZW50cy5sZW5ndGgscD1lKHY+MT9hcmd1bWVudHNbMV06dm9pZCAwLGkpLGQ9dj4yP2FyZ3Vt'@; put 'ZW50c1syXTp2b2lkIDAsbT12b2lkIDA9PT1kP2k6ZShkLGkpO20+cDspZltwKytdPXU7cmV0dXJuIGZ9fSw4MDk1NjooYyxsLHQpPT57dmFyIG49dCg0ODc5MCk7Yy5leHBvcnRzPWZ1bmN0aW9uKGUscyl7dmFyIGE9W107cmV0dXJuIG4oZSwhMSxhLnB1c2gsYSxzKSxhfX0sNjE0NjQ6KGMs'@; put 'bCx0KT0+e3ZhciBuPXQoNTcyMjEpLGU9dCg4MTQ4NSkscz10KDcwMTU3KTtjLmV4cG9ydHM9ZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKHUsZixpKXt2YXIgbSx2PW4odSkscD1lKHYubGVuZ3RoKSxkPXMoaSxwKTtpZihhJiZmIT1mKXtmb3IoO3A+ZDspaWYoKG09dltkKytdKSE9bSly'@; put 'ZXR1cm4hMH1lbHNlIGZvcig7cD5kO2QrKylpZigoYXx8ZCBpbiB2KSYmdltkXT09PWYpcmV0dXJuIGF8fGR8fDA7cmV0dXJuIWEmJi0xfX19LDY2MTc5OihjLGwsdCk9Pnt2YXIgbj10KDM1MDUyKSxlPXQoNjEyNDkpLHM9dCgxODI3MCksYT10KDgxNDg1KSx1PXQoOTMxOTEpO2MuZXhwb3J0'@; put 'cz1mdW5jdGlvbihmLGkpe3ZhciB2PTE9PWYscD0yPT1mLGQ9Mz09ZixtPTQ9PWYsRT02PT1mLGc9NT09Znx8RSxEPWl8fHU7cmV0dXJuIGZ1bmN0aW9uKEYseCx3KXtmb3IodmFyIFUsWixDPXMoRiksST1lKEMpLE09bih4LHcsMyksVD1hKEkubGVuZ3RoKSxiPTAsTD12P0QoRixUKTpwP0Qo'@; put 'RiwwKTp2b2lkIDA7VD5iO2IrKylpZigoZ3x8YiBpbiBJKSYmKFo9TShVPUlbYl0sYixDKSxmKSlpZih2KUxbYl09WjtlbHNlIGlmKFopc3dpdGNoKGYpe2Nhc2UgMzpyZXR1cm4hMDtjYXNlIDU6cmV0dXJuIFU7Y2FzZSA2OnJldHVybiBiO2Nhc2UgMjpMLnB1c2goVSl9ZWxzZSBpZihtKXJl'@; put 'dHVybiExO3JldHVybiBFPy0xOmR8fG0/bTpMfX19LDY1NDM6KGMsbCx0KT0+e3ZhciBuPXQoNjMzODcpLGU9dCgxODI3MCkscz10KDYxMjQ5KSxhPXQoODE0ODUpO2MuZXhwb3J0cz1mdW5jdGlvbih1LGYsaSx2LHApe24oZik7dmFyIGQ9ZSh1KSxtPXMoZCksRT1hKGQubGVuZ3RoKSxnPXA/'@; put 'RS0xOjAsRD1wPy0xOjE7aWYoaTwyKWZvcig7Oyl7aWYoZyBpbiBtKXt2PW1bZ10sZys9RDticmVha31pZihnKz1ELHA/ZzwwOkU8PWcpdGhyb3cgVHlwZUVycm9yKCJSZWR1Y2Ugb2YgZW1wdHkgYXJyYXkgd2l0aCBubyBpbml0aWFsIHZhbHVlIil9Zm9yKDtwP2c+PTA6RT5nO2crPUQpZyBp'@; put 'biBtJiYodj1mKHYsbVtnXSxnLGQpKTtyZXR1cm4gdn19LDYzNjA2OihjLGwsdCk9Pnt2YXIgbj10KDQzMzA1KSxlPXQoNzc5ODEpLHM9dCg2NzU3NCkoInNwZWNpZXMiKTtjLmV4cG9ydHM9ZnVuY3Rpb24oYSl7dmFyIHU7cmV0dXJuIGUoYSkmJigiZnVuY3Rpb24iPT10eXBlb2YodT1hLmNv'@; put 'bnN0cnVjdG9yKSYmKHU9PT1BcnJheXx8ZSh1LnByb3RvdHlwZSkpJiYodT12b2lkIDApLG4odSkmJm51bGw9PT0odT11W3NdKSYmKHU9dm9pZCAwKSksdm9pZCAwPT09dT9BcnJheTp1fX0sOTMxOTE6KGMsbCx0KT0+e3ZhciBuPXQoNjM2MDYpO2MuZXhwb3J0cz1mdW5jdGlvbihlLHMpe3Jl'@; put 'dHVybiBuZXcobihlKSkocyl9fSwxNTUzODooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoNjMzODcpLGU9dCg0MzMwNSkscz10KDI0ODc3KSxhPVtdLnNsaWNlLHU9e307Yy5leHBvcnRzPUZ1bmN0aW9uLmJpbmR8fGZ1bmN0aW9uKHYpe3ZhciBwPW4odGhpcyksZD1hLmNhbGwoYXJn'@; put 'dW1lbnRzLDEpLG09ZnVuY3Rpb24oKXt2YXIgRT1kLmNvbmNhdChhLmNhbGwoYXJndW1lbnRzKSk7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBtP2Z1bmN0aW9uKGksdixwKXtpZighKHYgaW4gdSkpe2Zvcih2YXIgZD1bXSxtPTA7bTx2O20rKylkW21dPSJhWyIrbSsiXSI7dVt2XT1GdW5jdGlv'@; put 'bigiRixhIiwicmV0dXJuIG5ldyBGKCIrZC5qb2luKCIsIikrIikiKX1yZXR1cm4gdVt2XShpLHApfShwLEUubGVuZ3RoLEUpOnMocCxFLHYpfTtyZXR1cm4gZShwLnByb3RvdHlwZSkmJihtLnByb3RvdHlwZT1wLnByb3RvdHlwZSksbX19LDM0ODQ4OihjLGwsdCk9Pnt2YXIgbj10KDU1MDg5'@; put 'KSxlPXQoNjc1NzQpKCJ0b1N0cmluZ1RhZyIpLHM9IkFyZ3VtZW50cyI9PW4oZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSgpKTtjLmV4cG9ydHM9ZnVuY3Rpb24odSl7dmFyIGYsaSx2O3JldHVybiB2b2lkIDA9PT11PyJVbmRlZmluZWQiOm51bGw9PT11PyJOdWxsIjoic3RyaW5nIj09'@; put 'dHlwZW9mKGk9ZnVuY3Rpb24odSxmKXt0cnl7cmV0dXJuIHVbZl19Y2F0Y2h7fX0oZj1PYmplY3QodSksZSkpP2k6cz9uKGYpOiJPYmplY3QiPT0odj1uKGYpKSYmImZ1bmN0aW9uIj09dHlwZW9mIGYuY2FsbGVlPyJBcmd1bWVudHMiOnZ9fSw1NTA4OTpjPT57dmFyIGw9e30udG9TdHJpbmc7'@; put 'Yy5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBsLmNhbGwodCkuc2xpY2UoOCwtMSl9fSwzNjE5NzooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoNDc5NjcpLmYsZT10KDg0NzE5KSxzPXQoOTYwNjUpLGE9dCgzNTA1MiksdT10KDE2NDQwKSxmPXQoNDg3OTApLGk9dCg5ODE3NSks'@; put 'dj10KDc0OTcwKSxwPXQoNTU3NjIpLGQ9dCgxNzYzKSxtPXQoMTI5ODgpLmZhc3RLZXksRT10KDEyODg4KSxnPWQ/Il9zIjoic2l6ZSIsRD1mdW5jdGlvbihGLHgpe3ZhciBDLHc9bSh4KTtpZigiRiIhPT13KXJldHVybiBGLl9pW3ddO2ZvcihDPUYuX2Y7QztDPUMubilpZihDLms9PXgpcmV0'@; put 'dXJuIEN9O2MuZXhwb3J0cz17Z2V0Q29uc3RydWN0b3I6ZnVuY3Rpb24oRix4LHcsQyl7dmFyIEk9RihmdW5jdGlvbihNLFQpe3UoTSxJLHgsIl9pIiksTS5fdD14LE0uX2k9ZShudWxsKSxNLl9mPXZvaWQgMCxNLl9sPXZvaWQgMCxNW2ddPTAsbnVsbCE9VCYmZihULHcsTVtDXSxNKX0pO3Jl'@; put 'dHVybiBzKEkucHJvdG90eXBlLHtjbGVhcjpmdW5jdGlvbigpe2Zvcih2YXIgVD1FKHRoaXMseCksYj1ULl9pLEw9VC5fZjtMO0w9TC5uKUwucj0hMCxMLnAmJihMLnA9TC5wLm49dm9pZCAwKSxkZWxldGUgYltMLmldO1QuX2Y9VC5fbD12b2lkIDAsVFtnXT0wfSxkZWxldGU6ZnVuY3Rpb24o'@; put 'TSl7dmFyIFQ9RSh0aGlzLHgpLGI9RChULE0pO2lmKGIpe3ZhciBMPWIubixVPWIucDtkZWxldGUgVC5faVtiLmldLGIucj0hMCxVJiYoVS5uPUwpLEwmJihMLnA9VSksVC5fZj09YiYmKFQuX2Y9TCksVC5fbD09YiYmKFQuX2w9VSksVFtnXS0tfXJldHVybiEhYn0sZm9yRWFjaDpmdW5jdGlv'@; put 'bihUKXtFKHRoaXMseCk7Zm9yKHZhciBMLGI9YShULGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLDMpO0w9TD9MLm46dGhpcy5fZjspZm9yKGIoTC52LEwuayx0aGlzKTtMJiZMLnI7KUw9TC5wfSxoYXM6ZnVuY3Rpb24oVCl7cmV0dXJuISFEKEUodGhpcyx4KSxUKX19'@; put 'KSxkJiZuKEkucHJvdG90eXBlLCJzaXplIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcyx4KVtnXX19KSxJfSxkZWY6ZnVuY3Rpb24oRix4LHcpe3ZhciBJLE0sQz1EKEYseCk7cmV0dXJuIEM/Qy52PXc6KEYuX2w9Qz17aTpNPW0oeCwhMCksazp4LHY6dyxwOkk9Ri5fbCxuOnZvaWQg'@; put 'MCxyOiExfSxGLl9mfHwoRi5fZj1DKSxJJiYoSS5uPUMpLEZbZ10rKywiRiIhPT1NJiYoRi5faVtNXT1DKSksRn0sZ2V0RW50cnk6RCxzZXRTdHJvbmc6ZnVuY3Rpb24oRix4LHcpe2koRix4LGZ1bmN0aW9uKEMsSSl7dGhpcy5fdD1FKEMseCksdGhpcy5faz1JLHRoaXMuX2w9dm9pZCAwfSxm'@; put 'dW5jdGlvbigpe2Zvcih2YXIgQz10aGlzLEk9Qy5fayxNPUMuX2w7TSYmTS5yOylNPU0ucDtyZXR1cm4gQy5fdCYmKEMuX2w9TT1NP00ubjpDLl90Ll9mKT92KDAsImtleXMiPT1JP00uazoidmFsdWVzIj09ST9NLnY6W00uayxNLnZdKTooQy5fdD12b2lkIDAsdigxKSl9LHc/ImVudHJpZXMi'@; put 'OiJ2YWx1ZXMiLCF3LCEwKSxwKHgpfX19LDk5ODgyOihjLGwsdCk9PnsidXNlIHN0cmljdCI7dmFyIG49dCg5NjA2NSksZT10KDEyOTg4KS5nZXRXZWFrLHM9dCg0MjI4KSxhPXQoNDMzMDUpLHU9dCgxNjQ0MCksZj10KDQ4NzkwKSxpPXQoNjYxNzkpLHY9dCg1NzkxNykscD10KDEyODg4KSxk'@; put 'PWkoNSksbT1pKDYpLEU9MCxnPWZ1bmN0aW9uKHgpe3JldHVybiB4Ll9sfHwoeC5fbD1uZXcgRCl9LEQ9ZnVuY3Rpb24oKXt0aGlzLmE9W119LEY9ZnVuY3Rpb24oeCx3KXtyZXR1cm4gZCh4LmEsZnVuY3Rpb24oQyl7cmV0dXJuIENbMF09PT13fSl9O0QucHJvdG90eXBlPXtnZXQ6ZnVuY3Rp'@; put 'b24oeCl7dmFyIHc9Rih0aGlzLHgpO2lmKHcpcmV0dXJuIHdbMV19LGhhczpmdW5jdGlvbih4KXtyZXR1cm4hIUYodGhpcyx4KX0sc2V0OmZ1bmN0aW9uKHgsdyl7dmFyIEM9Rih0aGlzLHgpO0M/Q1sxXT13OnRoaXMuYS5wdXNoKFt4LHddKX0sZGVsZXRlOmZ1bmN0aW9uKHgpe3ZhciB3PW0o'@; put 'dGhpcy5hLGZ1bmN0aW9uKEMpe3JldHVybiBDWzBdPT09eH0pO3JldHVybn53JiZ0aGlzLmEuc3BsaWNlKHcsMSksISF+d319LGMuZXhwb3J0cz17Z2V0Q29uc3RydWN0b3I6ZnVuY3Rpb24oeCx3LEMsSSl7dmFyIE09eChmdW5jdGlvbihULGIpe3UoVCxNLHcsIl9pIiksVC5fdD13LFQuX2k9'@; put 'RSsrLFQuX2w9dm9pZCAwLG51bGwhPWImJmYoYixDLFRbSV0sVCl9KTtyZXR1cm4gbihNLnByb3RvdHlwZSx7ZGVsZXRlOmZ1bmN0aW9uKFQpe2lmKCFhKFQpKXJldHVybiExO3ZhciBiPWUoVCk7cmV0dXJuITA9PT1iP2cocCh0aGlzLHcpKS5kZWxldGUoVCk6YiYmdihiLHRoaXMuX2kpJiZk'@; put 'ZWxldGUgYlt0aGlzLl9pXX0saGFzOmZ1bmN0aW9uKGIpe2lmKCFhKGIpKXJldHVybiExO3ZhciBMPWUoYik7cmV0dXJuITA9PT1MP2cocCh0aGlzLHcpKS5oYXMoYik6TCYmdihMLHRoaXMuX2kpfX0pLE19LGRlZjpmdW5jdGlvbih4LHcsQyl7dmFyIEk9ZShzKHcpLCEwKTtyZXR1cm4hMD09'@; put 'PUk/Zyh4KS5zZXQodyxDKTpJW3guX2ldPUMseH0sdWZzdG9yZTpnfX0sNTg5MzM6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDY3NTI2KSxlPXQoOTIxMjcpLHM9dCgyODg1OSksYT10KDk2MDY1KSx1PXQoMTI5ODgpLGY9dCg0ODc5MCksaT10KDE2NDQwKSx2PXQoNDMzMDUpLHA9'@; put 'dCg3OTQ0OCksZD10KDk4OTMxKSxtPXQoMzg0NCksRT10KDk4ODgwKTtjLmV4cG9ydHM9ZnVuY3Rpb24oZyxELEYseCx3LEMpe3ZhciBJPW5bZ10sTT1JLFQ9dz8ic2V0IjoiYWRkIixiPU0mJk0ucHJvdG90eXBlLEw9e30sVT1mdW5jdGlvbihxKXt2YXIgWD1iW3FdO3MoYixxLCJkZWxldGUi'@; put 'PT1xP2Z1bmN0aW9uKGV0KXtyZXR1cm4hKEMmJiF2KGV0KSkmJlguY2FsbCh0aGlzLDA9PT1ldD8wOmV0KX06ImhhcyI9PXE/ZnVuY3Rpb24oVil7cmV0dXJuIShDJiYhdihWKSkmJlguY2FsbCh0aGlzLDA9PT1WPzA6Vil9OiJnZXQiPT1xP2Z1bmN0aW9uKFYpe3JldHVybiBDJiYhdihWKT92'@; put 'b2lkIDA6WC5jYWxsKHRoaXMsMD09PVY/MDpWKX06ImFkZCI9PXE/ZnVuY3Rpb24oVil7cmV0dXJuIFguY2FsbCh0aGlzLDA9PT1WPzA6ViksdGhpc306ZnVuY3Rpb24oVixmdCl7cmV0dXJuIFguY2FsbCh0aGlzLDA9PT1WPzA6VixmdCksdGhpc30pfTtpZigiZnVuY3Rpb24iPT10eXBlb2Yg'@; put 'TSYmKEN8fGIuZm9yRWFjaCYmIXAoZnVuY3Rpb24oKXsobmV3IE0pLmVudHJpZXMoKS5uZXh0KCl9KSkpe3ZhciBaPW5ldyBNLG50PVpbVF0oQz97fTotMCwxKSE9Wix0dD1wKGZ1bmN0aW9uKCl7Wi5oYXMoMSl9KSx5dD1kKGZ1bmN0aW9uKHEpe25ldyBNKHEpfSksbXQ9IUMmJnAoZnVuY3Rp'@; put 'b24oKXtmb3IodmFyIHE9bmV3IE0sWD01O1gtLTspcVtUXShYLFgpO3JldHVybiFxLmhhcygtMCl9KTt5dHx8KChNPUQoZnVuY3Rpb24ocSxYKXtpKHEsTSxnKTt2YXIgZXQ9RShuZXcgSSxxLE0pO3JldHVybiBudWxsIT1YJiZmKFgsdyxldFtUXSxldCksZXR9KSkucHJvdG90eXBlPWIsYi5j'@; put 'b25zdHJ1Y3Rvcj1NKSwodHR8fG10KSYmKFUoImRlbGV0ZSIpLFUoImhhcyIpLHcmJlUoImdldCIpKSwobXR8fG50KSYmVShUKSxDJiZiLmNsZWFyJiZkZWxldGUgYi5jbGVhcn1lbHNlIE09eC5nZXRDb25zdHJ1Y3RvcihELGcsdyxUKSxhKE0ucHJvdG90eXBlLEYpLHUuTkVFRD0hMDtyZXR1'@; put 'cm4gbShNLGcpLExbZ109TSxlKGUuRytlLlcrZS5GKihNIT1JKSxMKSxDfHx4LnNldFN0cm9uZyhNLGcsdyksTX19LDU2MDk0OmM9Pnt2YXIgbD1jLmV4cG9ydHM9e3ZlcnNpb246IjIuNi4xMiJ9OyJudW1iZXIiPT10eXBlb2YgX19lJiYoX19lPWwpfSw2NzIyNzooYyxsLHQpPT57InVzZSBz'@; put 'dHJpY3QiO3ZhciBuPXQoNDc5NjcpLGU9dCgxMTk5Nik7Yy5leHBvcnRzPWZ1bmN0aW9uKHMsYSx1KXthIGluIHM/bi5mKHMsYSxlKDAsdSkpOnNbYV09dX19LDM1MDUyOihjLGwsdCk9Pnt2YXIgbj10KDYzMzg3KTtjLmV4cG9ydHM9ZnVuY3Rpb24oZSxzLGEpe2lmKG4oZSksdm9pZCAwPT09'@; put 'cylyZXR1cm4gZTtzd2l0Y2goYSl7Y2FzZSAxOnJldHVybiBmdW5jdGlvbih1KXtyZXR1cm4gZS5jYWxsKHMsdSl9O2Nhc2UgMjpyZXR1cm4gZnVuY3Rpb24odSxmKXtyZXR1cm4gZS5jYWxsKHMsdSxmKX07Y2FzZSAzOnJldHVybiBmdW5jdGlvbih1LGYsaSl7cmV0dXJuIGUuY2FsbChzLHUs'@; put 'ZixpKX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkocyxhcmd1bWVudHMpfX19LDU1Mzg1OihjLGwsdCk9PnsidXNlIHN0cmljdCI7dmFyIG49dCg3OTQ0OCksZT1EYXRlLnByb3RvdHlwZS5nZXRUaW1lLHM9RGF0ZS5wcm90b3R5cGUudG9JU09TdHJpbmcsYT1mdW5jdGlvbih1'@; put 'KXtyZXR1cm4gdT45P3U6IjAiK3V9O2MuZXhwb3J0cz1uKGZ1bmN0aW9uKCl7cmV0dXJuIjAzODUtMDctMjVUMDc6MDY6MzkuOTk5WiIhPXMuY2FsbChuZXcgRGF0ZSgtNTAwMDAwMDAwMDAwMDEpKX0pfHwhbihmdW5jdGlvbigpe3MuY2FsbChuZXcgRGF0ZShOYU4pKX0pP2Z1bmN0aW9uKCl7'@; put 'aWYoIWlzRmluaXRlKGUuY2FsbCh0aGlzKSkpdGhyb3cgUmFuZ2VFcnJvcigiSW52YWxpZCB0aW1lIHZhbHVlIik7dmFyIGY9dGhpcyxpPWYuZ2V0VVRDRnVsbFllYXIoKSx2PWYuZ2V0VVRDTWlsbGlzZWNvbmRzKCkscD1pPDA/Ii0iOmk+OTk5OT8iKyI6IiI7cmV0dXJuIHArKCIwMDAwMCIr'@; put 'TWF0aC5hYnMoaSkpLnNsaWNlKHA/LTY6LTQpKyItIithKGYuZ2V0VVRDTW9udGgoKSsxKSsiLSIrYShmLmdldFVUQ0RhdGUoKSkrIlQiK2EoZi5nZXRVVENIb3VycygpKSsiOiIrYShmLmdldFVUQ01pbnV0ZXMoKSkrIjoiK2EoZi5nZXRVVENTZWNvbmRzKCkpKyIuIisodj45OT92OiIwIith'@; put 'KHYpKSsiWiJ9OnN9LDIwMTA3OihjLGwsdCk9PnsidXNlIHN0cmljdCI7dmFyIG49dCg0MjI4KSxlPXQoODMwNDgpLHM9Im51bWJlciI7Yy5leHBvcnRzPWZ1bmN0aW9uKGEpe2lmKCJzdHJpbmciIT09YSYmYSE9PXMmJiJkZWZhdWx0IiE9PWEpdGhyb3cgVHlwZUVycm9yKCJJbmNvcnJlY3Qg'@; put 'aGludCIpO3JldHVybiBlKG4odGhpcyksYSE9cyl9fSwzMzQ0OmM9PntjLmV4cG9ydHM9ZnVuY3Rpb24obCl7aWYobnVsbD09bCl0aHJvdyBUeXBlRXJyb3IoIkNhbid0IGNhbGwgbWV0aG9kIG9uICAiK2wpO3JldHVybiBsfX0sMTc2MzooYyxsLHQpPT57Yy5leHBvcnRzPSF0KDc5NDQ4KShm'@; put 'dW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSl9LDQ2MDM0OihjLGwsdCk9Pnt2YXIgbj10KDQzMzA1KSxlPXQoNjc1MjYpLmRvY3VtZW50LHM9bihlKSYmbihlLmNyZWF0ZUVsZW1lbnQpO2MuZXhw'@; put 'b3J0cz1mdW5jdGlvbihhKXtyZXR1cm4gcz9lLmNyZWF0ZUVsZW1lbnQoYSk6e319fSw4NjE0MDpjPT57Yy5leHBvcnRzPSJjb25zdHJ1Y3RvcixoYXNPd25Qcm9wZXJ0eSxpc1Byb3RvdHlwZU9mLHByb3BlcnR5SXNFbnVtZXJhYmxlLHRvTG9jYWxlU3RyaW5nLHRvU3RyaW5nLHZhbHVlT2Yi'@; put 'LnNwbGl0KCIsIil9LDE1OTY5OihjLGwsdCk9Pnt2YXIgbj10KDUxMzExKSxlPXQoMTA2MCkscz10KDg0NDkpO2MuZXhwb3J0cz1mdW5jdGlvbihhKXt2YXIgdT1uKGEpLGY9ZS5mO2lmKGYpZm9yKHZhciBkLGk9ZihhKSx2PXMuZixwPTA7aS5sZW5ndGg+cDspdi5jYWxsKGEsZD1pW3ArK10p'@; put 'JiZ1LnB1c2goZCk7cmV0dXJuIHV9fSw5MjEyNzooYyxsLHQpPT57dmFyIG49dCg2NzUyNiksZT10KDU2MDk0KSxzPXQoMzMzNDEpLGE9dCgyODg1OSksdT10KDM1MDUyKSxmPSJwcm90b3R5cGUiLGk9ZnVuY3Rpb24odixwLGQpe3ZhciBJLE0sVCxiLG09diZpLkYsRT12JmkuRyxEPXYmaS5Q'@; put 'LEY9diZpLkIseD1FP246diZpLlM/bltwXXx8KG5bcF09e30pOihuW3BdfHx7fSlbZl0sdz1FP2U6ZVtwXXx8KGVbcF09e30pLEM9d1tmXXx8KHdbZl09e30pO2ZvcihJIGluIEUmJihkPXApLGQpVD0oKE09IW0mJngmJnZvaWQgMCE9PXhbSV0pP3g6ZClbSV0sYj1GJiZNP3UoVCxuKTpEJiYi'@; put 'ZnVuY3Rpb24iPT10eXBlb2YgVD91KEZ1bmN0aW9uLmNhbGwsVCk6VCx4JiZhKHgsSSxULHYmaS5VKSx3W0ldIT1UJiZzKHcsSSxiKSxEJiZDW0ldIT1UJiYoQ1tJXT1UKX07bi5jb3JlPWUsaS5GPTEsaS5HPTIsaS5TPTQsaS5QPTgsaS5CPTE2LGkuVz0zMixpLlU9NjQsaS5SPTEyOCxjLmV4'@; put 'cG9ydHM9aX0sMjUyMDM6KGMsbCx0KT0+e3ZhciBuPXQoNjc1NzQpKCJtYXRjaCIpO2MuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgcz0vLi87dHJ5eyIvLi8iW2VdKHMpfWNhdGNoe3RyeXtyZXR1cm4gc1tuXT0hMSwhIi8uLyJbZV0ocyl9Y2F0Y2h7fX1yZXR1cm4hMH19LDc5NDQ4OmM9Pntj'@; put 'LmV4cG9ydHM9ZnVuY3Rpb24obCl7dHJ5e3JldHVybiEhbCgpfWNhdGNoe3JldHVybiEwfX19LDY5MjI4OihjLGwsdCk9PnsidXNlIHN0cmljdCI7dCg5NDExNik7dmFyIG49dCgyODg1OSksZT10KDMzMzQxKSxzPXQoNzk0NDgpLGE9dCgzMzQ0KSx1PXQoNjc1NzQpLGY9dCg2OTYwMCksaT11'@; put 'KCJzcGVjaWVzIiksdj0hcyhmdW5jdGlvbigpe3ZhciBkPS8uLztyZXR1cm4gZC5leGVjPWZ1bmN0aW9uKCl7dmFyIG09W107cmV0dXJuIG0uZ3JvdXBzPXthOiI3In0sbX0sIjciIT09IiIucmVwbGFjZShkLCIkPGE+Iil9KSxwPWZ1bmN0aW9uKCl7dmFyIGQ9Lyg/OikvLG09ZC5leGVjO2Qu'@; put 'ZXhlYz1mdW5jdGlvbigpe3JldHVybiBtLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07dmFyIEU9ImFiIi5zcGxpdChkKTtyZXR1cm4gMj09PUUubGVuZ3RoJiYiYSI9PT1FWzBdJiYiYiI9PT1FWzFdfSgpO2MuZXhwb3J0cz1mdW5jdGlvbihkLG0sRSl7dmFyIGc9dShkKSxEPSFzKGZ1bmN0aW9u'@; put 'KCl7dmFyIE09e307cmV0dXJuIE1bZ109ZnVuY3Rpb24oKXtyZXR1cm4gN30sNyE9IiJbZF0oTSl9KSxGPUQ/IXMoZnVuY3Rpb24oKXt2YXIgTT0hMSxUPS9hLztyZXR1cm4gVC5leGVjPWZ1bmN0aW9uKCl7cmV0dXJuIE09ITAsbnVsbH0sInNwbGl0Ij09PWQmJihULmNvbnN0cnVjdG9yPXt9'@; put 'LFQuY29uc3RydWN0b3JbaV09ZnVuY3Rpb24oKXtyZXR1cm4gVH0pLFRbZ10oIiIpLCFNfSk6dm9pZCAwO2lmKCFEfHwhRnx8InJlcGxhY2UiPT09ZCYmIXZ8fCJzcGxpdCI9PT1kJiYhcCl7dmFyIHg9Ly4vW2ddLHc9RShhLGcsIiJbZF0sZnVuY3Rpb24oVCxiLEwsVSxaKXtyZXR1cm4gYi5l'@; put 'eGVjPT09Zj9EJiYhWj97ZG9uZTohMCx2YWx1ZTp4LmNhbGwoYixMLFUpfTp7ZG9uZTohMCx2YWx1ZTpULmNhbGwoTCxiLFUpfTp7ZG9uZTohMX19KSxJPXdbMV07bihTdHJpbmcucHJvdG90eXBlLGQsd1swXSksZShSZWdFeHAucHJvdG90eXBlLGcsMj09bT9mdW5jdGlvbihNLFQpe3JldHVy'@; put 'biBJLmNhbGwoTSx0aGlzLFQpfTpmdW5jdGlvbihNKXtyZXR1cm4gSS5jYWxsKE0sdGhpcyl9KX19fSwxMTU4OihjLGwsdCk9PnsidXNlIHN0cmljdCI7dmFyIG49dCg0MjI4KTtjLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgZT1uKHRoaXMpLHM9IiI7cmV0dXJuIGUuZ2xvYmFsJiYocys9Imci'@; put 'KSxlLmlnbm9yZUNhc2UmJihzKz0iaSIpLGUubXVsdGlsaW5lJiYocys9Im0iKSxlLnVuaWNvZGUmJihzKz0idSIpLGUuc3RpY2t5JiYocys9InkiKSxzfX0sNDg3OTA6KGMsbCx0KT0+e3ZhciBuPXQoMzUwNTIpLGU9dCg5NzM2OCkscz10KDE1MDgpLGE9dCg0MjI4KSx1PXQoODE0ODUpLGY9'@; put 'dCgyMDc2MiksaT17fSx2PXt9LHA9Yy5leHBvcnRzPWZ1bmN0aW9uKGQsbSxFLGcsRCl7dmFyIEMsSSxNLFQsRj1EP2Z1bmN0aW9uKCl7cmV0dXJuIGR9OmYoZCkseD1uKEUsZyxtPzI6MSksdz0wO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBGKXRocm93IFR5cGVFcnJvcihkKyIgaXMgbm90IGl0'@; put 'ZXJhYmxlISIpO2lmKHMoRikpe2ZvcihDPXUoZC5sZW5ndGgpO0M+dzt3KyspaWYoKFQ9bT94KGEoST1kW3ddKVswXSxJWzFdKTp4KGRbd10pKT09PWl8fFQ9PT12KXJldHVybiBUfWVsc2UgZm9yKE09Ri5jYWxsKGQpOyEoST1NLm5leHQoKSkuZG9uZTspaWYoKFQ9ZShNLHgsSS52YWx1ZSxt'@; put 'KSk9PT1pfHxUPT09dilyZXR1cm4gVH07cC5CUkVBSz1pLHAuUkVUVVJOPXZ9LDQ5NDYxOihjLGwsdCk9PntjLmV4cG9ydHM9dCg0NDU1NikoIm5hdGl2ZS1mdW5jdGlvbi10by1zdHJpbmciLEZ1bmN0aW9uLnRvU3RyaW5nKX0sNjc1MjY6Yz0+e3ZhciBsPWMuZXhwb3J0cz10eXBlb2Ygd2lu'@; put 'ZG93PCJ1IiYmd2luZG93Lk1hdGg9PU1hdGg/d2luZG93OnR5cGVvZiBzZWxmPCJ1IiYmc2VsZi5NYXRoPT1NYXRoP3NlbGY6RnVuY3Rpb24oInJldHVybiB0aGlzIikoKTsibnVtYmVyIj09dHlwZW9mIF9fZyYmKF9fZz1sKX0sNTc5MTc6Yz0+e3ZhciBsPXt9Lmhhc093blByb3BlcnR5O2Mu'@; put 'ZXhwb3J0cz1mdW5jdGlvbih0LG4pe3JldHVybiBsLmNhbGwodCxuKX19LDMzMzQxOihjLGwsdCk9Pnt2YXIgbj10KDQ3OTY3KSxlPXQoMTE5OTYpO2MuZXhwb3J0cz10KDE3NjMpP2Z1bmN0aW9uKHMsYSx1KXtyZXR1cm4gbi5mKHMsYSxlKDEsdSkpfTpmdW5jdGlvbihzLGEsdSl7cmV0dXJu'@; put 'IHNbYV09dSxzfX0sNjEzMDg6KGMsbCx0KT0+e3ZhciBuPXQoNjc1MjYpLmRvY3VtZW50O2MuZXhwb3J0cz1uJiZuLmRvY3VtZW50RWxlbWVudH0sMjI5NTY6KGMsbCx0KT0+e2MuZXhwb3J0cz0hdCgxNzYzKSYmIXQoNzk0NDgpKGZ1bmN0aW9uKCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQ'@; put 'cm9wZXJ0eSh0KDQ2MDM0KSgiZGl2IiksImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSl9LDk4ODgwOihjLGwsdCk9Pnt2YXIgbj10KDQzMzA1KSxlPXQoMjUxNzApLnNldDtjLmV4cG9ydHM9ZnVuY3Rpb24ocyxhLHUpe3ZhciBpLGY9YS5jb25zdHJ1Y3RvcjtyZXR1cm4gZiE9'@; put 'PXUmJiJmdW5jdGlvbiI9PXR5cGVvZiBmJiYoaT1mLnByb3RvdHlwZSkhPT11LnByb3RvdHlwZSYmbihpKSYmZSYmZShzLGkpLHN9fSwyNDg3NzpjPT57Yy5leHBvcnRzPWZ1bmN0aW9uKGwsdCxuKXt2YXIgZT12b2lkIDA9PT1uO3N3aXRjaCh0Lmxlbmd0aCl7Y2FzZSAwOnJldHVybiBlP2wo'@; put 'KTpsLmNhbGwobik7Y2FzZSAxOnJldHVybiBlP2wodFswXSk6bC5jYWxsKG4sdFswXSk7Y2FzZSAyOnJldHVybiBlP2wodFswXSx0WzFdKTpsLmNhbGwobix0WzBdLHRbMV0pO2Nhc2UgMzpyZXR1cm4gZT9sKHRbMF0sdFsxXSx0WzJdKTpsLmNhbGwobix0WzBdLHRbMV0sdFsyXSk7Y2FzZSA0'@; put 'OnJldHVybiBlP2wodFswXSx0WzFdLHRbMl0sdFszXSk6bC5jYWxsKG4sdFswXSx0WzFdLHRbMl0sdFszXSl9cmV0dXJuIGwuYXBwbHkobix0KX19LDYxMjQ5OihjLGwsdCk9Pnt2YXIgbj10KDU1MDg5KTtjLmV4cG9ydHM9T2JqZWN0KCJ6IikucHJvcGVydHlJc0VudW1lcmFibGUoMCk/T2Jq'@; put 'ZWN0OmZ1bmN0aW9uKGUpe3JldHVybiJTdHJpbmciPT1uKGUpP2Uuc3BsaXQoIiIpOk9iamVjdChlKX19LDE1MDg6KGMsbCx0KT0+e3ZhciBuPXQoNjA5MDYpLGU9dCg2NzU3NCkoIml0ZXJhdG9yIikscz1BcnJheS5wcm90b3R5cGU7Yy5leHBvcnRzPWZ1bmN0aW9uKGEpe3JldHVybiB2b2lk'@; put 'IDAhPT1hJiYobi5BcnJheT09PWF8fHNbZV09PT1hKX19LDc3OTgxOihjLGwsdCk9Pnt2YXIgbj10KDU1MDg5KTtjLmV4cG9ydHM9QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24ocyl7cmV0dXJuIkFycmF5Ij09bihzKX19LDMzODQyOihjLGwsdCk9Pnt2YXIgbj10KDQzMzA1KSxlPU1hdGguZmxv'@; put 'b3I7Yy5leHBvcnRzPWZ1bmN0aW9uKGEpe3JldHVybiFuKGEpJiZpc0Zpbml0ZShhKSYmZShhKT09PWF9fSw0MzMwNTpjPT57Yy5leHBvcnRzPWZ1bmN0aW9uKGwpe3JldHVybiJvYmplY3QiPT10eXBlb2YgbD9udWxsIT09bDoiZnVuY3Rpb24iPT10eXBlb2YgbH19LDk1NDExOihjLGwsdCk9'@; put 'Pnt2YXIgbj10KDQzMzA1KSxlPXQoNTUwODkpLHM9dCg2NzU3NCkoIm1hdGNoIik7Yy5leHBvcnRzPWZ1bmN0aW9uKGEpe3ZhciB1O3JldHVybiBuKGEpJiYodm9pZCAwIT09KHU9YVtzXSk/ISF1OiJSZWdFeHAiPT1lKGEpKX19LDk3MzY4OihjLGwsdCk9Pnt2YXIgbj10KDQyMjgpO2MuZXhw'@; put 'b3J0cz1mdW5jdGlvbihlLHMsYSx1KXt0cnl7cmV0dXJuIHU/cyhuKGEpWzBdLGFbMV0pOnMoYSl9Y2F0Y2goaSl7dmFyIGY9ZS5yZXR1cm47dGhyb3cgdm9pZCAwIT09ZiYmbihmLmNhbGwoZSkpLGl9fX0sNjAzMjooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoODQ3MTkpLGU9dCgx'@; put 'MTk5Nikscz10KDM4NDQpLGE9e307dCgzMzM0MSkoYSx0KDY3NTc0KSgiaXRlcmF0b3IiKSxmdW5jdGlvbigpe3JldHVybiB0aGlzfSksYy5leHBvcnRzPWZ1bmN0aW9uKHUsZixpKXt1LnByb3RvdHlwZT1uKGEse25leHQ6ZSgxLGkpfSkscyh1LGYrIiBJdGVyYXRvciIpfX0sOTgxNzU6KGMs'@; put 'bCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDIyNzUwKSxlPXQoOTIxMjcpLHM9dCgyODg1OSksYT10KDMzMzQxKSx1PXQoNjA5MDYpLGY9dCg2MDMyKSxpPXQoMzg0NCksdj10KDQwNjI3KSxwPXQoNjc1NzQpKCJpdGVyYXRvciIpLGQ9IShbXS5rZXlzJiYibmV4dCJpbltdLmtleXMoKSks'@; put 'RT0ia2V5cyIsZz0idmFsdWVzIixEPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9O2MuZXhwb3J0cz1mdW5jdGlvbihGLHgsdyxDLEksTSxUKXtmKHcseCxDKTt2YXIgWCxldCxWLGI9ZnVuY3Rpb24oZnQpe2lmKCFkJiZmdCBpbiBudClyZXR1cm4gbnRbZnRdO3N3aXRjaChmdCl7Y2FzZSBFOmNh'@; put 'c2UgZzpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHcodGhpcyxmdCl9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgdyh0aGlzLGZ0KX19LEw9eCsiIEl0ZXJhdG9yIixVPUk9PWcsWj0hMSxudD1GLnByb3RvdHlwZSx0dD1udFtwXXx8bnRbIkBAaXRlcmF0b3IiXXx8SSYmbnRb'@; put 'SV0seXQ9dHR8fGIoSSksbXQ9ST9VP2IoImVudHJpZXMiKTp5dDp2b2lkIDAscT0iQXJyYXkiPT14JiZudC5lbnRyaWVzfHx0dDtpZihxJiYoVj12KHEuY2FsbChuZXcgRikpKSE9PU9iamVjdC5wcm90b3R5cGUmJlYubmV4dCYmKGkoVixMLCEwKSwhbiYmImZ1bmN0aW9uIiE9dHlwZW9mIFZb'@; put 'cF0mJmEoVixwLEQpKSxVJiZ0dCYmdHQubmFtZSE9PWcmJihaPSEwLHl0PWZ1bmN0aW9uKCl7cmV0dXJuIHR0LmNhbGwodGhpcyl9KSwoIW58fFQpJiYoZHx8Wnx8IW50W3BdKSYmYShudCxwLHl0KSx1W3hdPXl0LHVbTF09RCxJKWlmKFg9e3ZhbHVlczpVP3l0OmIoZyksa2V5czpNP3l0OmIo'@; put 'RSksZW50cmllczptdH0sVClmb3IoZXQgaW4gWClldCBpbiBudHx8cyhudCxldCxYW2V0XSk7ZWxzZSBlKGUuUCtlLkYqKGR8fFopLHgsWCk7cmV0dXJuIFh9fSw5ODkzMTooYyxsLHQpPT57dmFyIG49dCg2NzU3NCkoIml0ZXJhdG9yIiksZT0hMTt0cnl7dmFyIHM9WzddW25dKCk7cy5yZXR1'@; put 'cm49ZnVuY3Rpb24oKXtlPSEwfSxBcnJheS5mcm9tKHMsZnVuY3Rpb24oKXt0aHJvdyAyfSl9Y2F0Y2h7fWMuZXhwb3J0cz1mdW5jdGlvbihhLHUpe2lmKCF1JiYhZSlyZXR1cm4hMTt2YXIgZj0hMTt0cnl7dmFyIGk9WzddLHY9aVtuXSgpO3YubmV4dD1mdW5jdGlvbigpe3JldHVybntkb25l'@; put 'OmY9ITB9fSxpW25dPWZ1bmN0aW9uKCl7cmV0dXJuIHZ9LGEoaSl9Y2F0Y2h7fXJldHVybiBmfX0sNzQ5NzA6Yz0+e2MuZXhwb3J0cz1mdW5jdGlvbihsLHQpe3JldHVybnt2YWx1ZTp0LGRvbmU6ISFsfX19LDYwOTA2OmM9PntjLmV4cG9ydHM9e319LDIyNzUwOmM9PntjLmV4cG9ydHM9ITF9'@; put 'LDc1NTUxOmM9Pnt2YXIgbD1NYXRoLmV4cG0xO2MuZXhwb3J0cz0hbHx8bCgxMCk+MjIwMjUuNDY1Nzk0ODA2NzE4fHxsKDEwKTwyMjAyNS40NjU3OTQ4MDY3MTh8fC0yZS0xNyE9bCgtMmUtMTcpP2Z1bmN0aW9uKG4pe3JldHVybiAwPT0obj0rbik/bjpuPi0xZS02JiZuPDFlLTY/bituKm4v'@; put 'MjpNYXRoLmV4cChuKS0xfTpsfSw3MjEyMjooYyxsLHQpPT57dmFyIG49dCgzNzMzKSxlPU1hdGgucG93LHM9ZSgyLC01MiksYT1lKDIsLTIzKSx1PWUoMiwxMjcpKigyLWEpLGY9ZSgyLC0xMjYpO2MuZXhwb3J0cz1NYXRoLmZyb3VuZHx8ZnVuY3Rpb24ocCl7dmFyIEUsZyxkPU1hdGguYWJz'@; put 'KHApLG09bihwKTtyZXR1cm4gZDxmP20qKGQvZi9hKzEvcy0xL3MpKmYqYTooZz0oRT0oMSthL3MpKmQpLShFLWQpKT51fHxnIT1nP20qKDEvMCk6bSpnfX0sNzE0NzM6Yz0+e2MuZXhwb3J0cz1NYXRoLmxvZzFwfHxmdW5jdGlvbih0KXtyZXR1cm4odD0rdCk+LTFlLTgmJnQ8MWUtOD90LXQq'@; put 'dC8yOk1hdGgubG9nKDErdCl9fSwzNzMzOmM9PntjLmV4cG9ydHM9TWF0aC5zaWdufHxmdW5jdGlvbih0KXtyZXR1cm4gMD09KHQ9K3QpfHx0IT10P3Q6dDwwPy0xOjF9fSwxMjk4ODooYyxsLHQpPT57dmFyIG49dCg0NDE1KSgibWV0YSIpLGU9dCg0MzMwNSkscz10KDU3OTE3KSxhPXQoNDc5'@; put 'NjcpLmYsdT0wLGY9T2JqZWN0LmlzRXh0ZW5zaWJsZXx8ZnVuY3Rpb24oKXtyZXR1cm4hMH0saT0hdCg3OTQ0OCkoZnVuY3Rpb24oKXtyZXR1cm4gZihPYmplY3QucHJldmVudEV4dGVuc2lvbnMoe30pKX0pLHY9ZnVuY3Rpb24oZyl7YShnLG4se3ZhbHVlOntpOiJPIisgKyt1LHc6e319fSl9'@; put 'LEU9Yy5leHBvcnRzPXtLRVk6bixORUVEOiExLGZhc3RLZXk6ZnVuY3Rpb24oZyxEKXtpZighZShnKSlyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGc/ZzooInN0cmluZyI9PXR5cGVvZiBnPyJTIjoiUCIpK2c7aWYoIXMoZyxuKSl7aWYoIWYoZykpcmV0dXJuIkYiO2lmKCFEKXJldHVybiJFIjt2'@; put 'KGcpfXJldHVybiBnW25dLml9LGdldFdlYWs6ZnVuY3Rpb24oZyxEKXtpZighcyhnLG4pKXtpZighZihnKSlyZXR1cm4hMDtpZighRClyZXR1cm4hMTt2KGcpfXJldHVybiBnW25dLnd9LG9uRnJlZXplOmZ1bmN0aW9uKGcpe3JldHVybiBpJiZFLk5FRUQmJmYoZykmJiFzKGcsbikmJnYoZyks'@; put 'Z319fSw5NzM4MDooYyxsLHQpPT57dmFyIG49dCg5MzM4NiksZT10KDkyMTI3KSxzPXQoNDQ1NTYpKCJtZXRhZGF0YSIpLGE9cy5zdG9yZXx8KHMuc3RvcmU9bmV3KHQoNzkzOTcpKSksdT1mdW5jdGlvbihFLGcsRCl7dmFyIEY9YS5nZXQoRSk7aWYoIUYpe2lmKCFEKXJldHVybjthLnNldChF'@; put 'LEY9bmV3IG4pfXZhciB4PUYuZ2V0KGcpO2lmKCF4KXtpZighRClyZXR1cm47Ri5zZXQoZyx4PW5ldyBuKX1yZXR1cm4geH07Yy5leHBvcnRzPXtzdG9yZTphLG1hcDp1LGhhczpmdW5jdGlvbihFLGcsRCl7dmFyIEY9dShnLEQsITEpO3JldHVybiB2b2lkIDAhPT1GJiZGLmhhcyhFKX0sZ2V0'@; put 'OmZ1bmN0aW9uKEUsZyxEKXt2YXIgRj11KGcsRCwhMSk7cmV0dXJuIHZvaWQgMD09PUY/dm9pZCAwOkYuZ2V0KEUpfSxzZXQ6ZnVuY3Rpb24oRSxnLEQsRil7dShELEYsITApLnNldChFLGcpfSxrZXlzOmZ1bmN0aW9uKEUsZyl7dmFyIEQ9dShFLGcsITEpLEY9W107cmV0dXJuIEQmJkQuZm9y'@; put 'RWFjaChmdW5jdGlvbih4LHcpe0YucHVzaCh3KX0pLEZ9LGtleTpmdW5jdGlvbihFKXtyZXR1cm4gdm9pZCAwPT09RXx8InN5bWJvbCI9PXR5cGVvZiBFP0U6U3RyaW5nKEUpfSxleHA6ZnVuY3Rpb24oRSl7ZShlLlMsIlJlZmxlY3QiLEUpfX19LDI4MjA2OihjLGwsdCk9PnsidXNlIHN0cmlj'@; put 'dCI7dmFyIG49dCgxNzYzKSxlPXQoNTEzMTEpLHM9dCgxMDYwKSxhPXQoODQ0OSksdT10KDE4MjcwKSxmPXQoNjEyNDkpLGk9T2JqZWN0LmFzc2lnbjtjLmV4cG9ydHM9IWl8fHQoNzk0NDgpKGZ1bmN0aW9uKCl7dmFyIHY9e30scD17fSxkPVN5bWJvbCgpLG09ImFiY2RlZmdoaWprbG1ub3Bx'@; put 'cnN0IjtyZXR1cm4gdltkXT03LG0uc3BsaXQoIiIpLmZvckVhY2goZnVuY3Rpb24oRSl7cFtFXT1FfSksNyE9aSh7fSx2KVtkXXx8T2JqZWN0LmtleXMoaSh7fSxwKSkuam9pbigiIikhPW19KT9mdW5jdGlvbihwLGQpe2Zvcih2YXIgbT11KHApLEU9YXJndW1lbnRzLmxlbmd0aCxnPTEsRD1z'@; put 'LmYsRj1hLmY7RT5nOylmb3IodmFyIE0seD1mKGFyZ3VtZW50c1tnKytdKSx3PUQ/ZSh4KS5jb25jYXQoRCh4KSk6ZSh4KSxDPXcubGVuZ3RoLEk9MDtDPkk7KU09d1tJKytdLCghbnx8Ri5jYWxsKHgsTSkpJiYobVtNXT14W01dKTtyZXR1cm4gbX06aX0sODQ3MTk6KGMsbCx0KT0+e3ZhciBu'@; put 'PXQoNDIyOCksZT10KDIxNjI2KSxzPXQoODYxNDApLGE9dCg0MDc2NikoIklFX1BST1RPIiksdT1mdW5jdGlvbigpe30sZj0icHJvdG90eXBlIixpPWZ1bmN0aW9uKCl7dmFyIEUsdj10KDQ2MDM0KSgiaWZyYW1lIikscD1zLmxlbmd0aDtmb3Iodi5zdHlsZS5kaXNwbGF5PSJub25lIix0KDYx'@; put 'MzA4KS5hcHBlbmRDaGlsZCh2KSx2LnNyYz0iamF2YXNjcmlwdDoiLChFPXYuY29udGVudFdpbmRvdy5kb2N1bWVudCkub3BlbigpLEUud3JpdGUoIjxzY3JpcHQ+ZG9jdW1lbnQuRj1PYmplY3Q8XC9zY3JpcHQ+IiksRS5jbG9zZSgpLGk9RS5GO3AtLTspZGVsZXRlIGlbZl1bc1twXV07cmV0'@; put 'dXJuIGkoKX07Yy5leHBvcnRzPU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uKHAsZCl7dmFyIG07cmV0dXJuIG51bGwhPT1wPyh1W2ZdPW4ocCksbT1uZXcgdSx1W2ZdPW51bGwsbVthXT1wKTptPWkoKSx2b2lkIDA9PT1kP206ZShtLGQpfX0sNDc5Njc6KGMsbCx0KT0+e3ZhciBuPXQoNDIyOCks'@; put 'ZT10KDIyOTU2KSxzPXQoODMwNDgpLGE9T2JqZWN0LmRlZmluZVByb3BlcnR5O2wuZj10KDE3NjMpP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihmLGksdil7aWYobihmKSxpPXMoaSwhMCksbih2KSxlKXRyeXtyZXR1cm4gYShmLGksdil9Y2F0Y2h7fWlmKCJnZXQiaW4gdnx8InNl'@; put 'dCJpbiB2KXRocm93IFR5cGVFcnJvcigiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQhIik7cmV0dXJuInZhbHVlImluIHYmJihmW2ldPXYudmFsdWUpLGZ9fSwyMTYyNjooYyxsLHQpPT57dmFyIG49dCg0Nzk2NyksZT10KDQyMjgpLHM9dCg1MTMxMSk7Yy5leHBvcnRzPXQoMTc2Myk/T2JqZWN0'@; put 'LmRlZmluZVByb3BlcnRpZXM6ZnVuY3Rpb24odSxmKXtlKHUpO2Zvcih2YXIgZCxpPXMoZiksdj1pLmxlbmd0aCxwPTA7dj5wOyluLmYodSxkPWlbcCsrXSxmW2RdKTtyZXR1cm4gdX19LDY4NjQxOihjLGwsdCk9Pnt2YXIgbj10KDg0NDkpLGU9dCgxMTk5Nikscz10KDU3MjIxKSxhPXQoODMw'@; put 'NDgpLHU9dCg1NzkxNyksZj10KDIyOTU2KSxpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7bC5mPXQoMTc2Myk/aTpmdW5jdGlvbihwLGQpe2lmKHA9cyhwKSxkPWEoZCwhMCksZil0cnl7cmV0dXJuIGkocCxkKX1jYXRjaHt9aWYodShwLGQpKXJldHVybiBlKCFuLmYuY2FsbChw'@; put 'LGQpLHBbZF0pfX0sNDc2NTooYyxsLHQpPT57dmFyIG49dCg1NzIyMSksZT10KDU5NDE1KS5mLHM9e30udG9TdHJpbmcsYT0ib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93JiZPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcz9PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh3aW5kb3cp'@; put 'OltdO2MuZXhwb3J0cy5mPWZ1bmN0aW9uKGkpe3JldHVybiBhJiYiW29iamVjdCBXaW5kb3ddIj09cy5jYWxsKGkpP2Z1bmN0aW9uKGYpe3RyeXtyZXR1cm4gZShmKX1jYXRjaHtyZXR1cm4gYS5zbGljZSgpfX0oaSk6ZShuKGkpKX19LDU5NDE1OihjLGwsdCk9Pnt2YXIgbj10KDM0NTYxKSxl'@; put 'PXQoODYxNDApLmNvbmNhdCgibGVuZ3RoIiwicHJvdG90eXBlIik7bC5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbihhKXtyZXR1cm4gbihhLGUpfX0sMTA2MDooYyxsKT0+e2wuZj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzfSw0MDYyNzooYyxsLHQpPT57dmFy'@; put 'IG49dCg1NzkxNyksZT10KDE4MjcwKSxzPXQoNDA3NjYpKCJJRV9QUk9UTyIpLGE9T2JqZWN0LnByb3RvdHlwZTtjLmV4cG9ydHM9T2JqZWN0LmdldFByb3RvdHlwZU9mfHxmdW5jdGlvbih1KXtyZXR1cm4gdT1lKHUpLG4odSxzKT91W3NdOiJmdW5jdGlvbiI9PXR5cGVvZiB1LmNvbnN0cnVj'@; put 'dG9yJiZ1IGluc3RhbmNlb2YgdS5jb25zdHJ1Y3Rvcj91LmNvbnN0cnVjdG9yLnByb3RvdHlwZTp1IGluc3RhbmNlb2YgT2JqZWN0P2E6bnVsbH19LDM0NTYxOihjLGwsdCk9Pnt2YXIgbj10KDU3OTE3KSxlPXQoNTcyMjEpLHM9dCg2MTQ2NCkoITEpLGE9dCg0MDc2NikoIklFX1BST1RPIik7'@; put 'Yy5leHBvcnRzPWZ1bmN0aW9uKHUsZil7dmFyIGQsaT1lKHUpLHY9MCxwPVtdO2ZvcihkIGluIGkpZCE9YSYmbihpLGQpJiZwLnB1c2goZCk7Zm9yKDtmLmxlbmd0aD52OyluKGksZD1mW3YrK10pJiYofnMocCxkKXx8cC5wdXNoKGQpKTtyZXR1cm4gcH19LDUxMzExOihjLGwsdCk9Pnt2YXIg'@; put 'bj10KDM0NTYxKSxlPXQoODYxNDApO2MuZXhwb3J0cz1PYmplY3Qua2V5c3x8ZnVuY3Rpb24oYSl7cmV0dXJuIG4oYSxlKX19LDg0NDk6KGMsbCk9PntsLmY9e30ucHJvcGVydHlJc0VudW1lcmFibGV9LDgwOTIzOihjLGwsdCk9Pnt2YXIgbj10KDkyMTI3KSxlPXQoNTYwOTQpLHM9dCg3OTQ0'@; put 'OCk7Yy5leHBvcnRzPWZ1bmN0aW9uKGEsdSl7dmFyIGY9KGUuT2JqZWN0fHx7fSlbYV18fE9iamVjdFthXSxpPXt9O2lbYV09dShmKSxuKG4uUytuLkYqcyhmdW5jdGlvbigpe2YoMSl9KSwiT2JqZWN0IixpKX19LDk2MjIyOihjLGwsdCk9Pnt2YXIgbj10KDU5NDE1KSxlPXQoMTA2MCkscz10'@; put 'KDQyMjgpLGE9dCg2NzUyNikuUmVmbGVjdDtjLmV4cG9ydHM9YSYmYS5vd25LZXlzfHxmdW5jdGlvbihmKXt2YXIgaT1uLmYocyhmKSksdj1lLmY7cmV0dXJuIHY/aS5jb25jYXQodihmKSk6aX19LDMzNTg5OihjLGwsdCk9Pnt2YXIgbj10KDY3NTI2KS5wYXJzZUZsb2F0LGU9dCg0MDYyOSku'@; put 'dHJpbTtjLmV4cG9ydHM9MS9uKHQoNzg0NTEpKyItMCIpIT0tMS8wP2Z1bmN0aW9uKGEpe3ZhciB1PWUoU3RyaW5nKGEpLDMpLGY9bih1KTtyZXR1cm4gMD09PWYmJiItIj09dS5jaGFyQXQoMCk/LTA6Zn06bn0sODI3Mzg6KGMsbCx0KT0+e3ZhciBuPXQoNjc1MjYpLnBhcnNlSW50LGU9dCg0'@; put 'MDYyOSkudHJpbSxzPXQoNzg0NTEpLGE9L15bLStdPzBbeFhdLztjLmV4cG9ydHM9OCE9PW4ocysiMDgiKXx8MjIhPT1uKHMrIjB4MTYiKT9mdW5jdGlvbihmLGkpe3ZhciB2PWUoU3RyaW5nKGYpLDMpO3JldHVybiBuKHYsaT4+PjB8fChhLnRlc3Qodik/MTY6MTApKX06bn0sMTE5OTY6Yz0+'@; put 'e2MuZXhwb3J0cz1mdW5jdGlvbihsLHQpe3JldHVybntlbnVtZXJhYmxlOiEoMSZsKSxjb25maWd1cmFibGU6ISgyJmwpLHdyaXRhYmxlOiEoNCZsKSx2YWx1ZTp0fX19LDk2MDY1OihjLGwsdCk9Pnt2YXIgbj10KDI4ODU5KTtjLmV4cG9ydHM9ZnVuY3Rpb24oZSxzLGEpe2Zvcih2YXIgdSBp'@; put 'biBzKW4oZSx1LHNbdV0sYSk7cmV0dXJuIGV9fSwyODg1OTooYyxsLHQpPT57dmFyIG49dCg2NzUyNiksZT10KDMzMzQxKSxzPXQoNTc5MTcpLGE9dCg0NDE1KSgic3JjIiksdT10KDQ5NDYxKSxmPSJ0b1N0cmluZyIsaT0oIiIrdSkuc3BsaXQoZik7dCg1NjA5NCkuaW5zcGVjdFNvdXJjZT1m'@; put 'dW5jdGlvbih2KXtyZXR1cm4gdS5jYWxsKHYpfSwoYy5leHBvcnRzPWZ1bmN0aW9uKHYscCxkLG0pe3ZhciBFPSJmdW5jdGlvbiI9PXR5cGVvZiBkO0UmJihzKGQsIm5hbWUiKXx8ZShkLCJuYW1lIixwKSksdltwXSE9PWQmJihFJiYocyhkLGEpfHxlKGQsYSx2W3BdPyIiK3ZbcF06aS5qb2lu'@; put 'KFN0cmluZyhwKSkpKSx2PT09bj92W3BdPWQ6bT92W3BdP3ZbcF09ZDplKHYscCxkKTooZGVsZXRlIHZbcF0sZSh2LHAsZCkpKX0pKEZ1bmN0aW9uLnByb3RvdHlwZSxmLGZ1bmN0aW9uKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMmJnRoaXNbYV18fHUuY2FsbCh0aGlzKX0pfSw1'@; put 'MjUzNTooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoMzQ4NDgpLGU9UmVnRXhwLnByb3RvdHlwZS5leGVjO2MuZXhwb3J0cz1mdW5jdGlvbihzLGEpe3ZhciB1PXMuZXhlYztpZigiZnVuY3Rpb24iPT10eXBlb2YgdSl7dmFyIGY9dS5jYWxsKHMsYSk7aWYoIm9iamVjdCIhPXR5cGVv'@; put 'ZiBmKXRocm93IG5ldyBUeXBlRXJyb3IoIlJlZ0V4cCBleGVjIG1ldGhvZCByZXR1cm5lZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBhbiBPYmplY3Qgb3IgbnVsbCIpO3JldHVybiBmfWlmKCJSZWdFeHAiIT09bihzKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJSZWdFeHAjZXhlYyBjYWxsZWQgb24g'@; put 'aW5jb21wYXRpYmxlIHJlY2VpdmVyIik7cmV0dXJuIGUuY2FsbChzLGEpfX0sNjk2MDA6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcCxkLG49dCgxMTU4KSxlPVJlZ0V4cC5wcm90b3R5cGUuZXhlYyxzPVN0cmluZy5wcm90b3R5cGUucmVwbGFjZSxhPWUsdT0ibGFzdEluZGV4IixmPShk'@; put 'PS9iKi9nLGUuY2FsbChwPS9hLywiYSIpLGUuY2FsbChkLCJhIiksMCE9PXBbdV18fDAhPT1kW3VdKSxpPXZvaWQgMCE9PS8oKT8/Ly5leGVjKCIiKVsxXTsoZnx8aSkmJihhPWZ1bmN0aW9uKGQpe3ZhciBFLGcsRCxGLG09dGhpcztyZXR1cm4gaSYmKGc9bmV3IFJlZ0V4cCgiXiIrbS5zb3Vy'@; put 'Y2UrIiQoPyFcXHMpIixuLmNhbGwobSkpKSxmJiYoRT1tW3VdKSxEPWUuY2FsbChtLGQpLGYmJkQmJihtW3VdPW0uZ2xvYmFsP0QuaW5kZXgrRFswXS5sZW5ndGg6RSksaSYmRCYmRC5sZW5ndGg+MSYmcy5jYWxsKERbMF0sZyxmdW5jdGlvbigpe2ZvcihGPTE7Rjxhcmd1bWVudHMubGVuZ3Ro'@; put 'LTI7RisrKXZvaWQgMD09PWFyZ3VtZW50c1tGXSYmKERbRl09dm9pZCAwKX0pLER9KSxjLmV4cG9ydHM9YX0sNzM1OTpjPT57Yy5leHBvcnRzPU9iamVjdC5pc3x8ZnVuY3Rpb24odCxuKXtyZXR1cm4gdD09PW4/MCE9PXR8fDEvdD09MS9uOnQhPXQmJm4hPW59fSwyNTE3MDooYyxsLHQpPT57'@; put 'dmFyIG49dCg0MzMwNSksZT10KDQyMjgpLHM9ZnVuY3Rpb24oYSx1KXtpZihlKGEpLCFuKHUpJiZudWxsIT09dSl0aHJvdyBUeXBlRXJyb3IodSsiOiBjYW4ndCBzZXQgYXMgcHJvdG90eXBlISIpfTtjLmV4cG9ydHM9e3NldDpPYmplY3Quc2V0UHJvdG90eXBlT2Z8fCgiX19wcm90b19fImlu'@; put 'e30/ZnVuY3Rpb24oYSx1LGYpe3RyeXsoZj10KDM1MDUyKShGdW5jdGlvbi5jYWxsLHQoNjg2NDEpLmYoT2JqZWN0LnByb3RvdHlwZSwiX19wcm90b19fIikuc2V0LDIpKShhLFtdKSx1PSEoYSBpbnN0YW5jZW9mIEFycmF5KX1jYXRjaHt1PSEwfXJldHVybiBmdW5jdGlvbih2LHApe3JldHVy'@; put 'biBzKHYscCksdT92Ll9fcHJvdG9fXz1wOmYodixwKSx2fX0oe30sITEpOnZvaWQgMCksY2hlY2s6c319LDU1NzYyOihjLGwsdCk9PnsidXNlIHN0cmljdCI7dmFyIG49dCg2NzUyNiksZT10KDQ3OTY3KSxzPXQoMTc2MyksYT10KDY3NTc0KSgic3BlY2llcyIpO2MuZXhwb3J0cz1mdW5jdGlv'@; put 'bih1KXt2YXIgZj1uW3VdO3MmJmYmJiFmW2FdJiZlLmYoZixhLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fSl9fSwzODQ0OihjLGwsdCk9Pnt2YXIgbj10KDQ3OTY3KS5mLGU9dCg1NzkxNykscz10KDY3NTc0KSgidG9TdHJpbmdUYWciKTtjLmV4cG9ydHM9'@; put 'ZnVuY3Rpb24oYSx1LGYpe2EmJiFlKGE9Zj9hOmEucHJvdG90eXBlLHMpJiZuKGEscyx7Y29uZmlndXJhYmxlOiEwLHZhbHVlOnV9KX19LDQwNzY2OihjLGwsdCk9Pnt2YXIgbj10KDQ0NTU2KSgia2V5cyIpLGU9dCg0NDE1KTtjLmV4cG9ydHM9ZnVuY3Rpb24ocyl7cmV0dXJuIG5bc118fChu'@; put 'W3NdPWUocykpfX0sNDQ1NTY6KGMsbCx0KT0+e3ZhciBuPXQoNTYwOTQpLGU9dCg2NzUyNikscz0iX19jb3JlLWpzX3NoYXJlZF9fIixhPWVbc118fChlW3NdPXt9KTsoYy5leHBvcnRzPWZ1bmN0aW9uKHUsZil7cmV0dXJuIGFbdV18fChhW3VdPXZvaWQgMCE9PWY/Zjp7fSl9KSgidmVyc2lv'@; put 'bnMiLFtdKS5wdXNoKHt2ZXJzaW9uOm4udmVyc2lvbixtb2RlOnQoMjI3NTApPyJwdXJlIjoiZ2xvYmFsIixjb3B5cmlnaHQ6Ilx4YTkgMjAyMCBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSJ9KX0sMTkxOTA6KGMsbCx0KT0+e3ZhciBuPXQoNDIyOCksZT10KDYzMzg3KSxzPXQoNjc1'@; put 'NzQpKCJzcGVjaWVzIik7Yy5leHBvcnRzPWZ1bmN0aW9uKGEsdSl7dmFyIGksZj1uKGEpLmNvbnN0cnVjdG9yO3JldHVybiB2b2lkIDA9PT1mfHxudWxsPT0oaT1uKGYpW3NdKT91OmUoaSl9fSw4Njg4NDooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoNzk0NDgpO2MuZXhwb3J0cz1m'@; put 'dW5jdGlvbihlLHMpe3JldHVybiEhZSYmbihmdW5jdGlvbigpe3M/ZS5jYWxsKG51bGwsZnVuY3Rpb24oKXt9LDEpOmUuY2FsbChudWxsKX0pfX0sOTEyMTI6KGMsbCx0KT0+e3ZhciBuPXQoMjcwODcpLGU9dCgzMzQ0KTtjLmV4cG9ydHM9ZnVuY3Rpb24ocyl7cmV0dXJuIGZ1bmN0aW9uKGEs'@; put 'dSl7dmFyIHAsZCxmPVN0cmluZyhlKGEpKSxpPW4odSksdj1mLmxlbmd0aDtyZXR1cm4gaTwwfHxpPj12P3M/IiI6dm9pZCAwOihwPWYuY2hhckNvZGVBdChpKSk8NTUyOTZ8fHA+NTYzMTl8fGkrMT09PXZ8fChkPWYuY2hhckNvZGVBdChpKzEpKTw1NjMyMHx8ZD41NzM0Mz9zP2YuY2hhckF0'@; put 'KGkpOnA6cz9mLnNsaWNlKGksaSsyKTpkLTU2MzIwKyhwLTU1Mjk2PDwxMCkrNjU1MzZ9fX0sNzg5NDI6KGMsbCx0KT0+e3ZhciBuPXQoOTU0MTEpLGU9dCgzMzQ0KTtjLmV4cG9ydHM9ZnVuY3Rpb24ocyxhLHUpe2lmKG4oYSkpdGhyb3cgVHlwZUVycm9yKCJTdHJpbmcjIit1KyIgZG9lc24n'@; put 'dCBhY2NlcHQgcmVnZXghIik7cmV0dXJuIFN0cmluZyhlKHMpKX19LDUyNDY4OihjLGwsdCk9Pnt2YXIgbj10KDkyMTI3KSxlPXQoNzk0NDgpLHM9dCgzMzQ0KSxhPS8iL2csdT1mdW5jdGlvbihmLGksdixwKXt2YXIgZD1TdHJpbmcocyhmKSksbT0iPCIraTtyZXR1cm4iIiE9PXYmJihtKz0i'@; put 'ICIrdisnPSInK1N0cmluZyhwKS5yZXBsYWNlKGEsIiZxdW90OyIpKyciJyksbSsiPiIrZCsiPC8iK2krIj4ifTtjLmV4cG9ydHM9ZnVuY3Rpb24oZixpKXt2YXIgdj17fTt2W2ZdPWkodSksbihuLlArbi5GKmUoZnVuY3Rpb24oKXt2YXIgcD0iIltmXSgnIicpO3JldHVybiBwIT09cC50b0xv'@; put 'd2VyQ2FzZSgpfHxwLnNwbGl0KCciJykubGVuZ3RoPjN9KSwiU3RyaW5nIix2KX19LDI3OTI2OihjLGwsdCk9PnsidXNlIHN0cmljdCI7dmFyIG49dCgyNzA4NyksZT10KDMzNDQpO2MuZXhwb3J0cz1mdW5jdGlvbihhKXt2YXIgdT1TdHJpbmcoZSh0aGlzKSksZj0iIixpPW4oYSk7aWYoaTww'@; put 'fHxpPT0xLzApdGhyb3cgUmFuZ2VFcnJvcigiQ291bnQgY2FuJ3QgYmUgbmVnYXRpdmUiKTtmb3IoO2k+MDsoaT4+Pj0xKSYmKHUrPXUpKTEmaSYmKGYrPXUpO3JldHVybiBmfX0sNDA2Mjk6KGMsbCx0KT0+e3ZhciBuPXQoOTIxMjcpLGU9dCgzMzQ0KSxzPXQoNzk0NDgpLGE9dCg3ODQ1MSks'@; put 'dT0iWyIrYSsiXSIsaT1SZWdFeHAoIl4iK3UrdSsiKiIpLHY9UmVnRXhwKHUrdSsiKiQiKSxwPWZ1bmN0aW9uKG0sRSxnKXt2YXIgRD17fSxGPXMoZnVuY3Rpb24oKXtyZXR1cm4hIWFbbV0oKXx8Ilx1MjAwYlx4ODUiIT0iXHUyMDBiXHg4NSJbbV0oKX0pLHg9RFttXT1GP0UoZCk6YVttXTtn'@; put 'JiYoRFtnXT14KSxuKG4uUCtuLkYqRiwiU3RyaW5nIixEKX0sZD1wLnRyaW09ZnVuY3Rpb24obSxFKXtyZXR1cm4gbT1TdHJpbmcoZShtKSksMSZFJiYobT1tLnJlcGxhY2UoaSwiIikpLDImRSYmKG09bS5yZXBsYWNlKHYsIiIpKSxtfTtjLmV4cG9ydHM9cH0sNzg0NTE6Yz0+e2MuZXhwb3J0'@; put 'cz0iXHRcblx2XGZcciBceGEwXHUxNjgwXHUxODBlXHUyMDAwXHUyMDAxXHUyMDAyXHUyMDAzXHUyMDA0XHUyMDA1XHUyMDA2XHUyMDA3XHUyMDA4XHUyMDA5XHUyMDBhXHUyMDJmXHUyMDVmXHUzMDAwXHUyMDI4XHUyMDI5XHVmZWZmIn0sNzAxNTc6KGMsbCx0KT0+e3ZhciBuPXQoMjcwODcp'@; put 'LGU9TWF0aC5tYXgscz1NYXRoLm1pbjtjLmV4cG9ydHM9ZnVuY3Rpb24oYSx1KXtyZXR1cm4oYT1uKGEpKTwwP2UoYSt1LDApOnMoYSx1KX19LDI3MDg3OmM9Pnt2YXIgbD1NYXRoLmNlaWwsdD1NYXRoLmZsb29yO2MuZXhwb3J0cz1mdW5jdGlvbihuKXtyZXR1cm4gaXNOYU4obj0rbik/MDoo'@; put 'bj4wP3Q6bCkobil9fSw1NzIyMTooYyxsLHQpPT57dmFyIG49dCg2MTI0OSksZT10KDMzNDQpO2MuZXhwb3J0cz1mdW5jdGlvbihzKXtyZXR1cm4gbihlKHMpKX19LDgxNDg1OihjLGwsdCk9Pnt2YXIgbj10KDI3MDg3KSxlPU1hdGgubWluO2MuZXhwb3J0cz1mdW5jdGlvbihzKXtyZXR1cm4g'@; put 'cz4wP2UobihzKSw5MDA3MTk5MjU0NzQwOTkxKTowfX0sMTgyNzA6KGMsbCx0KT0+e3ZhciBuPXQoMzM0NCk7Yy5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QobihlKSl9fSw4MzA0ODooYyxsLHQpPT57dmFyIG49dCg0MzMwNSk7Yy5leHBvcnRzPWZ1bmN0aW9uKGUscyl7aWYo'@; put 'IW4oZSkpcmV0dXJuIGU7dmFyIGEsdTtpZihzJiYiZnVuY3Rpb24iPT10eXBlb2YoYT1lLnRvU3RyaW5nKSYmIW4odT1hLmNhbGwoZSkpfHwiZnVuY3Rpb24iPT10eXBlb2YoYT1lLnZhbHVlT2YpJiYhbih1PWEuY2FsbChlKSl8fCFzJiYiZnVuY3Rpb24iPT10eXBlb2YoYT1lLnRvU3RyaW5n'@; put 'KSYmIW4odT1hLmNhbGwoZSkpKXJldHVybiB1O3Rocm93IFR5cGVFcnJvcigiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlIil9fSw0NDE1OmM9Pnt2YXIgbD0wLHQ9TWF0aC5yYW5kb20oKTtjLmV4cG9ydHM9ZnVuY3Rpb24obil7cmV0dXJuIlN5bWJvbCgiLmNvbmNh'@; put 'dCh2b2lkIDA9PT1uPyIiOm4sIilfIiwoKytsK3QpLnRvU3RyaW5nKDM2KSl9fSwxMjg4ODooYyxsLHQpPT57dmFyIG49dCg0MzMwNSk7Yy5leHBvcnRzPWZ1bmN0aW9uKGUscyl7aWYoIW4oZSl8fGUuX3QhPT1zKXRocm93IFR5cGVFcnJvcigiSW5jb21wYXRpYmxlIHJlY2VpdmVyLCAiK3Mr'@; put 'IiByZXF1aXJlZCEiKTtyZXR1cm4gZX19LDIzMDExOihjLGwsdCk9Pnt2YXIgbj10KDY3NTI2KSxlPXQoNTYwOTQpLHM9dCgyMjc1MCksYT10KDQ3OTYwKSx1PXQoNDc5NjcpLmY7Yy5leHBvcnRzPWZ1bmN0aW9uKGYpe3ZhciBpPWUuU3ltYm9sfHwoZS5TeW1ib2w9cz97fTpuLlN5bWJvbHx8'@; put 'e30pOyJfIiE9Zi5jaGFyQXQoMCkmJiEoZiBpbiBpKSYmdShpLGYse3ZhbHVlOmEuZihmKX0pfX0sNDc5NjA6KGMsbCx0KT0+e2wuZj10KDY3NTc0KX0sNjc1NzQ6KGMsbCx0KT0+e3ZhciBuPXQoNDQ1NTYpKCJ3a3MiKSxlPXQoNDQxNSkscz10KDY3NTI2KS5TeW1ib2wsYT0iZnVuY3Rpb24i'@; put 'PT10eXBlb2YgczsoYy5leHBvcnRzPWZ1bmN0aW9uKGYpe3JldHVybiBuW2ZdfHwobltmXT1hJiZzW2ZdfHwoYT9zOmUpKCJTeW1ib2wuIitmKSl9KS5zdG9yZT1ufSwyMDc2MjooYyxsLHQpPT57dmFyIG49dCgzNDg0OCksZT10KDY3NTc0KSgiaXRlcmF0b3IiKSxzPXQoNjA5MDYpO2MuZXhw'@; put 'b3J0cz10KDU2MDk0KS5nZXRJdGVyYXRvck1ldGhvZD1mdW5jdGlvbihhKXtpZihudWxsIT1hKXJldHVybiBhW2VdfHxhWyJAQGl0ZXJhdG9yIl18fHNbbihhKV19fSwxOTYyMDooYyxsLHQpPT57dmFyIG49dCg5MjEyNyk7bihuLlAsIkFycmF5Iix7Y29weVdpdGhpbjp0KDg0NDM4KX0pLHQo'@; put 'ODgxODQpKCJjb3B5V2l0aGluIil9LDU4ODg4OihjLGwsdCk9PnsidXNlIHN0cmljdCI7dmFyIG49dCg5MjEyNyksZT10KDY2MTc5KSg0KTtuKG4uUCtuLkYqIXQoODY4ODQpKFtdLmV2ZXJ5LCEwKSwiQXJyYXkiLHtldmVyeTpmdW5jdGlvbihhKXtyZXR1cm4gZSh0aGlzLGEsYXJndW1lbnRz'@; put 'WzFdKX19KX0sNTc3NjI6KGMsbCx0KT0+e3ZhciBuPXQoOTIxMjcpO24obi5QLCJBcnJheSIse2ZpbGw6dCgzNTU2NCl9KSx0KDg4MTg0KSgiZmlsbCIpfSwzOTgxMzooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoOTIxMjcpLGU9dCg2NjE3OSkoMik7bihuLlArbi5GKiF0KDg2ODg0'@; put 'KShbXS5maWx0ZXIsITApLCJBcnJheSIse2ZpbHRlcjpmdW5jdGlvbihhKXtyZXR1cm4gZSh0aGlzLGEsYXJndW1lbnRzWzFdKX19KX0sNzUzNjk6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDkyMTI3KSxlPXQoNjYxNzkpKDYpLHM9ImZpbmRJbmRleCIsYT0hMDtzIGluW10mJkFy'@; put 'cmF5KDEpW3NdKGZ1bmN0aW9uKCl7YT0hMX0pLG4obi5QK24uRiphLCJBcnJheSIse2ZpbmRJbmRleDpmdW5jdGlvbihmKXtyZXR1cm4gZSh0aGlzLGYsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLHQoODgxODQpKHMpfSwxNTE0NDooYyxsLHQpPT57InVzZSBz'@; put 'dHJpY3QiO3ZhciBuPXQoOTIxMjcpLGU9dCg2NjE3OSkoNSkscz0iZmluZCIsYT0hMDtzIGluW10mJkFycmF5KDEpW3NdKGZ1bmN0aW9uKCl7YT0hMX0pLG4obi5QK24uRiphLCJBcnJheSIse2ZpbmQ6ZnVuY3Rpb24oZil7cmV0dXJuIGUodGhpcyxmLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1'@; put 'bWVudHNbMV06dm9pZCAwKX19KSx0KDg4MTg0KShzKX0sMzUwNDooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoOTIxMjcpLGU9dCg2NjE3OSkoMCkscz10KDg2ODg0KShbXS5mb3JFYWNoLCEwKTtuKG4uUCtuLkYqIXMsIkFycmF5Iix7Zm9yRWFjaDpmdW5jdGlvbih1KXtyZXR1cm4g'@; put 'ZSh0aGlzLHUsYXJndW1lbnRzWzFdKX19KX0sOTM4NjM6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDM1MDUyKSxlPXQoOTIxMjcpLHM9dCgxODI3MCksYT10KDk3MzY4KSx1PXQoMTUwOCksZj10KDgxNDg1KSxpPXQoNjcyMjcpLHY9dCgyMDc2Mik7ZShlLlMrZS5GKiF0KDk4OTMx'@; put 'KShmdW5jdGlvbihwKXtBcnJheS5mcm9tKHApfSksIkFycmF5Iix7ZnJvbTpmdW5jdGlvbihkKXt2YXIgQyxJLE0sVCxtPXMoZCksRT0iZnVuY3Rpb24iPT10eXBlb2YgdGhpcz90aGlzOkFycmF5LGc9YXJndW1lbnRzLmxlbmd0aCxEPWc+MT9hcmd1bWVudHNbMV06dm9pZCAwLEY9dm9pZCAw'@; put 'IT09RCx4PTAsdz12KG0pO2lmKEYmJihEPW4oRCxnPjI/YXJndW1lbnRzWzJdOnZvaWQgMCwyKSksbnVsbD09d3x8RT09QXJyYXkmJnUodykpZm9yKEk9bmV3IEUoQz1mKG0ubGVuZ3RoKSk7Qz54O3grKylpKEkseCxGP0QobVt4XSx4KTptW3hdKTtlbHNlIGZvcihUPXcuY2FsbChtKSxJPW5l'@; put 'dyBFOyEoTT1ULm5leHQoKSkuZG9uZTt4KyspaShJLHgsRj9hKFQsRCxbTS52YWx1ZSx4XSwhMCk6TS52YWx1ZSk7cmV0dXJuIEkubGVuZ3RoPXgsSX19KX0sMzQ2MDk6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDkyMTI3KSxlPXQoNjE0NjQpKCExKSxzPVtdLmluZGV4T2YsYT0h'@; put 'IXMmJjEvWzFdLmluZGV4T2YoMSwtMCk8MDtuKG4uUCtuLkYqKGF8fCF0KDg2ODg0KShzKSksIkFycmF5Iix7aW5kZXhPZjpmdW5jdGlvbihmKXtyZXR1cm4gYT9zLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8MDplKHRoaXMsZixhcmd1bWVudHNbMV0pfX0pfSw0Nzg5OTooYyxsLHQpPT57dmFy'@; put 'IG49dCg5MjEyNyk7bihuLlMsIkFycmF5Iix7aXNBcnJheTp0KDc3OTgxKX0pfSw5NTE2NTooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoODgxODQpLGU9dCg3NDk3MCkscz10KDYwOTA2KSxhPXQoNTcyMjEpO2MuZXhwb3J0cz10KDk4MTc1KShBcnJheSwiQXJyYXkiLGZ1bmN0aW9u'@; put 'KHUsZil7dGhpcy5fdD1hKHUpLHRoaXMuX2k9MCx0aGlzLl9rPWZ9LGZ1bmN0aW9uKCl7dmFyIHU9dGhpcy5fdCxmPXRoaXMuX2ssaT10aGlzLl9pKys7cmV0dXJuIXV8fGk+PXUubGVuZ3RoPyh0aGlzLl90PXZvaWQgMCxlKDEpKTplKDAsImtleXMiPT1mP2k6InZhbHVlcyI9PWY/dVtpXTpb'@; put 'aSx1W2ldXSl9LCJ2YWx1ZXMiKSxzLkFyZ3VtZW50cz1zLkFycmF5LG4oImtleXMiKSxuKCJ2YWx1ZXMiKSxuKCJlbnRyaWVzIil9LDk2NTExOihjLGwsdCk9PnsidXNlIHN0cmljdCI7dmFyIG49dCg5MjEyNyksZT10KDU3MjIxKSxzPVtdLmpvaW47bihuLlArbi5GKih0KDYxMjQ5KSE9T2Jq'@; put 'ZWN0fHwhdCg4Njg4NCkocykpLCJBcnJheSIse2pvaW46ZnVuY3Rpb24odSl7cmV0dXJuIHMuY2FsbChlKHRoaXMpLHZvaWQgMD09PXU/IiwiOnUpfX0pfSwzMzcwNjooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoOTIxMjcpLGU9dCg1NzIyMSkscz10KDI3MDg3KSxhPXQoODE0ODUp'@; put 'LHU9W10ubGFzdEluZGV4T2YsZj0hIXUmJjEvWzFdLmxhc3RJbmRleE9mKDEsLTApPDA7bihuLlArbi5GKihmfHwhdCg4Njg4NCkodSkpLCJBcnJheSIse2xhc3RJbmRleE9mOmZ1bmN0aW9uKHYpe2lmKGYpcmV0dXJuIHUuYXBwbHkodGhpcyxhcmd1bWVudHMpfHwwO3ZhciBwPWUodGhpcyks'@; put 'ZD1hKHAubGVuZ3RoKSxtPWQtMTtmb3IoYXJndW1lbnRzLmxlbmd0aD4xJiYobT1NYXRoLm1pbihtLHMoYXJndW1lbnRzWzFdKSkpLG08MCYmKG09ZCttKTttPj0wO20tLSlpZihtIGluIHAmJnBbbV09PT12KXJldHVybiBtfHwwO3JldHVybi0xfX0pfSw1NDkxMzooYyxsLHQpPT57InVzZSBz'@; put 'dHJpY3QiO3ZhciBuPXQoOTIxMjcpLGU9dCg2NjE3OSkoMSk7bihuLlArbi5GKiF0KDg2ODg0KShbXS5tYXAsITApLCJBcnJheSIse21hcDpmdW5jdGlvbihhKXtyZXR1cm4gZSh0aGlzLGEsYXJndW1lbnRzWzFdKX19KX0sODIxODk6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDky'@; put 'MTI3KSxlPXQoNjcyMjcpO24obi5TK24uRip0KDc5NDQ4KShmdW5jdGlvbigpe2Z1bmN0aW9uIHMoKXt9cmV0dXJuIShBcnJheS5vZi5jYWxsKHMpaW5zdGFuY2VvZiBzKX0pLCJBcnJheSIse29mOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPTAsdT1hcmd1bWVudHMubGVuZ3RoLGY9bmV3KCJmdW5j'@; put 'dGlvbiI9PXR5cGVvZiB0aGlzP3RoaXM6QXJyYXkpKHUpO3U+YTspZShmLGEsYXJndW1lbnRzW2ErK10pO3JldHVybiBmLmxlbmd0aD11LGZ9fSl9LDQ3ODc0OihjLGwsdCk9PnsidXNlIHN0cmljdCI7dmFyIG49dCg5MjEyNyksZT10KDY1NDMpO24obi5QK24uRiohdCg4Njg4NCkoW10ucmVk'@; put 'dWNlUmlnaHQsITApLCJBcnJheSIse3JlZHVjZVJpZ2h0OmZ1bmN0aW9uKGEpe3JldHVybiBlKHRoaXMsYSxhcmd1bWVudHMubGVuZ3RoLGFyZ3VtZW50c1sxXSwhMCl9fSl9LDgxNDQ5OihjLGwsdCk9PnsidXNlIHN0cmljdCI7dmFyIG49dCg5MjEyNyksZT10KDY1NDMpO24obi5QK24uRioh'@; put 'dCg4Njg4NCkoW10ucmVkdWNlLCEwKSwiQXJyYXkiLHtyZWR1Y2U6ZnVuY3Rpb24oYSl7cmV0dXJuIGUodGhpcyxhLGFyZ3VtZW50cy5sZW5ndGgsYXJndW1lbnRzWzFdLCExKX19KX0sOTU4NTM6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDkyMTI3KSxlPXQoNjEzMDgpLHM9dCg1'@; put 'NTA4OSksYT10KDcwMTU3KSx1PXQoODE0ODUpLGY9W10uc2xpY2U7bihuLlArbi5GKnQoNzk0NDgpKGZ1bmN0aW9uKCl7ZSYmZi5jYWxsKGUpfSksIkFycmF5Iix7c2xpY2U6ZnVuY3Rpb24odixwKXt2YXIgZD11KHRoaXMubGVuZ3RoKSxtPXModGhpcyk7aWYocD12b2lkIDA9PT1wP2Q6cCwi'@; put 'QXJyYXkiPT1tKXJldHVybiBmLmNhbGwodGhpcyx2LHApO2Zvcih2YXIgRT1hKHYsZCksZz1hKHAsZCksRD11KGctRSksRj1uZXcgQXJyYXkoRCkseD0wO3g8RDt4KyspRlt4XT0iU3RyaW5nIj09bT90aGlzLmNoYXJBdChFK3gpOnRoaXNbRSt4XTtyZXR1cm4gRn19KX0sODY1MTE6KGMsbCx0'@; put 'KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDkyMTI3KSxlPXQoNjYxNzkpKDMpO24obi5QK24uRiohdCg4Njg4NCkoW10uc29tZSwhMCksIkFycmF5Iix7c29tZTpmdW5jdGlvbihhKXtyZXR1cm4gZSh0aGlzLGEsYXJndW1lbnRzWzFdKX19KX0sOTcwNzU6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0'@; put 'Ijt2YXIgbj10KDkyMTI3KSxlPXQoNjMzODcpLHM9dCgxODI3MCksYT10KDc5NDQ4KSx1PVtdLnNvcnQsZj1bMSwyLDNdO24obi5QK24uRiooYShmdW5jdGlvbigpe2Yuc29ydCh2b2lkIDApfSl8fCFhKGZ1bmN0aW9uKCl7Zi5zb3J0KG51bGwpfSl8fCF0KDg2ODg0KSh1KSksIkFycmF5Iix7'@; put 'c29ydDpmdW5jdGlvbih2KXtyZXR1cm4gdm9pZCAwPT09dj91LmNhbGwocyh0aGlzKSk6dS5jYWxsKHModGhpcyksZSh2KSl9fSl9LDc2MjA5OihjLGwsdCk9Pnt0KDU1NzYyKSgiQXJyYXkiKX0sMTMyOTI6KGMsbCx0KT0+e3ZhciBuPXQoOTIxMjcpO24obi5TLCJEYXRlIix7bm93OmZ1bmN0'@; put 'aW9uKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9fSl9LDk0Mjk6KGMsbCx0KT0+e3ZhciBuPXQoOTIxMjcpLGU9dCg1NTM4NSk7bihuLlArbi5GKihEYXRlLnByb3RvdHlwZS50b0lTT1N0cmluZyE9PWUpLCJEYXRlIix7dG9JU09TdHJpbmc6ZX0pfSw1MjM0NjooYyxsLHQpPT57InVz'@; put 'ZSBzdHJpY3QiO3ZhciBuPXQoOTIxMjcpLGU9dCgxODI3MCkscz10KDgzMDQ4KTtuKG4uUCtuLkYqdCg3OTQ0OCkoZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9PW5ldyBEYXRlKE5hTikudG9KU09OKCl8fDEhPT1EYXRlLnByb3RvdHlwZS50b0pTT04uY2FsbCh7dG9JU09TdHJpbmc6ZnVuY3Rp'@; put 'b24oKXtyZXR1cm4gMX19KX0pLCJEYXRlIix7dG9KU09OOmZ1bmN0aW9uKHUpe3ZhciBmPWUodGhpcyksaT1zKGYpO3JldHVybiJudW1iZXIiIT10eXBlb2YgaXx8aXNGaW5pdGUoaSk/Zi50b0lTT1N0cmluZygpOm51bGx9fSl9LDQ4OTUxOihjLGwsdCk9Pnt2YXIgbj10KDY3NTc0KSgidG9Q'@; put 'cmltaXRpdmUiKSxlPURhdGUucHJvdG90eXBlO24gaW4gZXx8dCgzMzM0MSkoZSxuLHQoMjAxMDcpKX0sNzg0OTooYyxsLHQpPT57dmFyIG49RGF0ZS5wcm90b3R5cGUsZT0iSW52YWxpZCBEYXRlIixzPSJ0b1N0cmluZyIsYT1uW3NdLHU9bi5nZXRUaW1lO25ldyBEYXRlKE5hTikrIiIhPWUm'@; put 'JnQoMjg4NTkpKG4scyxmdW5jdGlvbigpe3ZhciBpPXUuY2FsbCh0aGlzKTtyZXR1cm4gaT09aT9hLmNhbGwodGhpcyk6ZX0pfSw2NTA0OTooYyxsLHQpPT57dmFyIG49dCg5MjEyNyk7bihuLlAsIkZ1bmN0aW9uIix7YmluZDp0KDE1NTM4KX0pfSw5NTUwMjooYyxsLHQpPT57InVzZSBzdHJp'@; put 'Y3QiO3ZhciBuPXQoNDMzMDUpLGU9dCg0MDYyNykscz10KDY3NTc0KSgiaGFzSW5zdGFuY2UiKSxhPUZ1bmN0aW9uLnByb3RvdHlwZTtzIGluIGF8fHQoNDc5NjcpLmYoYSxzLHt2YWx1ZTpmdW5jdGlvbih1KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdGhpc3x8IW4odSkpcmV0dXJuITE7aWYo'@; put 'IW4odGhpcy5wcm90b3R5cGUpKXJldHVybiB1IGluc3RhbmNlb2YgdGhpcztmb3IoO3U9ZSh1KTspaWYodGhpcy5wcm90b3R5cGU9PT11KXJldHVybiEwO3JldHVybiExfX0pfSw3MDQ4OTooYyxsLHQpPT57dmFyIG49dCg0Nzk2NykuZixlPUZ1bmN0aW9uLnByb3RvdHlwZSxzPS9eXHMqZnVu'@; put 'Y3Rpb24gKFteIChdKikvLGE9Im5hbWUiO2EgaW4gZXx8dCgxNzYzKSYmbihlLGEse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuKCIiK3RoaXMpLm1hdGNoKHMpWzFdfWNhdGNoe3JldHVybiIifX19KX0sOTMzODY6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIg'@; put 'bj10KDM2MTk3KSxlPXQoMTI4ODgpLHM9Ik1hcCI7Yy5leHBvcnRzPXQoNTg5MzMpKHMsZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGEodGhpcyxhcmd1bWVudHMubGVuZ3RoPjA/YXJndW1lbnRzWzBdOnZvaWQgMCl9fSx7Z2V0OmZ1bmN0aW9uKHUpe3ZhciBmPW4uZ2V0'@; put 'RW50cnkoZSh0aGlzLHMpLHUpO3JldHVybiBmJiZmLnZ9LHNldDpmdW5jdGlvbih1LGYpe3JldHVybiBuLmRlZihlKHRoaXMscyksMD09PXU/MDp1LGYpfX0sbiwhMCl9LDc2NjQ4OihjLGwsdCk9Pnt2YXIgbj10KDkyMTI3KSxlPXQoNzE0NzMpLHM9TWF0aC5zcXJ0LGE9TWF0aC5hY29zaDtu'@; put 'KG4uUytuLkYqIShhJiY3MTA9PU1hdGguZmxvb3IoYShOdW1iZXIuTUFYX1ZBTFVFKSkmJmEoMS8wKT09MS8wKSwiTWF0aCIse2Fjb3NoOmZ1bmN0aW9uKGYpe3JldHVybihmPStmKTwxP05hTjpmPjk0OTA2MjY1LjYyNDI1MTU2P01hdGgubG9nKGYpK01hdGguTE4yOmUoZi0xK3MoZi0xKSpz'@; put 'KGYrMSkpfX0pfSw1NTc3MTooYyxsLHQpPT57dmFyIG49dCg5MjEyNyksZT1NYXRoLmFzaW5oO24obi5TK24uRiohKGUmJjEvZSgwKT4wKSwiTWF0aCIse2FzaW5oOmZ1bmN0aW9uIHMoYSl7cmV0dXJuIGlzRmluaXRlKGE9K2EpJiYwIT1hP2E8MD8tcygtYSk6TWF0aC5sb2coYStNYXRoLnNx'@; put 'cnQoYSphKzEpKTphfX0pfSw4MjM5MjooYyxsLHQpPT57dmFyIG49dCg5MjEyNyksZT1NYXRoLmF0YW5oO24obi5TK24uRiohKGUmJjEvZSgtMCk8MCksIk1hdGgiLHthdGFuaDpmdW5jdGlvbihhKXtyZXR1cm4gMD09KGE9K2EpP2E6TWF0aC5sb2coKDErYSkvKDEtYSkpLzJ9fSl9LDcyMzM1'@; put 'OihjLGwsdCk9Pnt2YXIgbj10KDkyMTI3KSxlPXQoMzczMyk7bihuLlMsIk1hdGgiLHtjYnJ0OmZ1bmN0aW9uKGEpe3JldHVybiBlKGE9K2EpKk1hdGgucG93KE1hdGguYWJzKGEpLDEvMyl9fSl9LDc0ODk2OihjLGwsdCk9Pnt2YXIgbj10KDkyMTI3KTtuKG4uUywiTWF0aCIse2NsejMyOmZ1'@; put 'bmN0aW9uKHMpe3JldHVybihzPj4+PTApPzMxLU1hdGguZmxvb3IoTWF0aC5sb2cocysuNSkqTWF0aC5MT0cyRSk6MzJ9fSl9LDk0NTIxOihjLGwsdCk9Pnt2YXIgbj10KDkyMTI3KSxlPU1hdGguZXhwO24obi5TLCJNYXRoIix7Y29zaDpmdW5jdGlvbihhKXtyZXR1cm4oZShhPSthKStlKC1h'@; put 'KSkvMn19KX0sMjkxNDc6KGMsbCx0KT0+e3ZhciBuPXQoOTIxMjcpLGU9dCg3NTU1MSk7bihuLlMrbi5GKihlIT1NYXRoLmV4cG0xKSwiTWF0aCIse2V4cG0xOmV9KX0sNDEzMTg6KGMsbCx0KT0+e3ZhciBuPXQoOTIxMjcpO24obi5TLCJNYXRoIix7ZnJvdW5kOnQoNzIxMjIpfSl9LDg0MzUy'@; put 'OihjLGwsdCk9Pnt2YXIgbj10KDkyMTI3KSxlPU1hdGguYWJzO24obi5TLCJNYXRoIix7aHlwb3Q6ZnVuY3Rpb24oYSx1KXtmb3IodmFyIGQsbSxmPTAsaT0wLHY9YXJndW1lbnRzLmxlbmd0aCxwPTA7aTx2OylwPChkPWUoYXJndW1lbnRzW2krK10pKT8oZj1mKihtPXAvZCkqbSsxLHA9ZCk6'@; put 'Zis9ZD4wPyhtPWQvcCkqbTpkO3JldHVybiBwPT09MS8wPzEvMDpwKk1hdGguc3FydChmKX19KX0sMTUzMjc6KGMsbCx0KT0+e3ZhciBuPXQoOTIxMjcpLGU9TWF0aC5pbXVsO24obi5TK24uRip0KDc5NDQ4KShmdW5jdGlvbigpe3JldHVybi01IT1lKDQyOTQ5NjcyOTUsNSl8fDIhPWUubGVu'@; put 'Z3RofSksIk1hdGgiLHtpbXVsOmZ1bmN0aW9uKGEsdSl7dmFyIGY9NjU1MzUsaT0rYSx2PSt1LHA9ZiZpLGQ9ZiZ2O3JldHVybiAwfHAqZCsoKGYmaT4+PjE2KSpkK3AqKGYmdj4+PjE2KTw8MTY+Pj4wKX19KX0sNTc1MDk6KGMsbCx0KT0+e3ZhciBuPXQoOTIxMjcpO24obi5TLCJNYXRoIix7'@; put 'bG9nMTA6ZnVuY3Rpb24ocyl7cmV0dXJuIE1hdGgubG9nKHMpKk1hdGguTE9HMTBFfX0pfSwxNTkwOTooYyxsLHQpPT57dmFyIG49dCg5MjEyNyk7bihuLlMsIk1hdGgiLHtsb2cxcDp0KDcxNDczKX0pfSw3OTU4NDooYyxsLHQpPT57dmFyIG49dCg5MjEyNyk7bihuLlMsIk1hdGgiLHtsb2cy'@; put 'OmZ1bmN0aW9uKHMpe3JldHVybiBNYXRoLmxvZyhzKS9NYXRoLkxOMn19KX0sNDAzNDU6KGMsbCx0KT0+e3ZhciBuPXQoOTIxMjcpO24obi5TLCJNYXRoIix7c2lnbjp0KDM3MzMpfSl9LDk5MTM0OihjLGwsdCk9Pnt2YXIgbj10KDkyMTI3KSxlPXQoNzU1NTEpLHM9TWF0aC5leHA7bihuLlMr'@; put 'bi5GKnQoNzk0NDgpKGZ1bmN0aW9uKCl7cmV0dXJuLTJlLTE3IT0hTWF0aC5zaW5oKC0yZS0xNyl9KSwiTWF0aCIse3Npbmg6ZnVuY3Rpb24odSl7cmV0dXJuIE1hdGguYWJzKHU9K3UpPDE/KGUodSktZSgtdSkpLzI6KHModS0xKS1zKC11LTEpKSooTWF0aC5FLzIpfX0pfSw2NzkwMTooYyxs'@; put 'LHQpPT57dmFyIG49dCg5MjEyNyksZT10KDc1NTUxKSxzPU1hdGguZXhwO24obi5TLCJNYXRoIix7dGFuaDpmdW5jdGlvbih1KXt2YXIgZj1lKHU9K3UpLGk9ZSgtdSk7cmV0dXJuIGY9PTEvMD8xOmk9PTEvMD8tMTooZi1pKS8ocyh1KStzKC11KSl9fSl9LDQ2NTkyOihjLGwsdCk9Pnt2YXIg'@; put 'bj10KDkyMTI3KTtuKG4uUywiTWF0aCIse3RydW5jOmZ1bmN0aW9uKHMpe3JldHVybihzPjA/TWF0aC5mbG9vcjpNYXRoLmNlaWwpKHMpfX0pfSw2NDUwOTooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoNjc1MjYpLGU9dCg1NzkxNykscz10KDU1MDg5KSxhPXQoOTg4ODApLHU9dCg4'@; put 'MzA0OCksZj10KDc5NDQ4KSxpPXQoNTk0MTUpLmYsdj10KDY4NjQxKS5mLHA9dCg0Nzk2NykuZixkPXQoNDA2MjkpLnRyaW0sbT0iTnVtYmVyIixFPW5bbV0sZz1FLEQ9RS5wcm90b3R5cGUsRj1zKHQoODQ3MTkpKEQpKT09bSx4PSJ0cmltImluIFN0cmluZy5wcm90b3R5cGUsdz1mdW5jdGlv'@; put 'bihUKXt2YXIgYj11KFQsITEpO2lmKCJzdHJpbmciPT10eXBlb2YgYiYmYi5sZW5ndGg+Mil7dmFyIFUsWixudCxMPShiPXg/Yi50cmltKCk6ZChiLDMpKS5jaGFyQ29kZUF0KDApO2lmKDQzPT09THx8NDU9PT1MKXtpZig4OD09PShVPWIuY2hhckNvZGVBdCgyKSl8fDEyMD09PVUpcmV0dXJu'@; put 'IE5hTn1lbHNlIGlmKDQ4PT09TCl7c3dpdGNoKGIuY2hhckNvZGVBdCgxKSl7Y2FzZSA2NjpjYXNlIDk4Olo9MixudD00OTticmVhaztjYXNlIDc5OmNhc2UgMTExOlo9OCxudD01NTticmVhaztkZWZhdWx0OnJldHVybitifWZvcih2YXIgcSx0dD1iLnNsaWNlKDIpLHl0PTAsbXQ9dHQubGVu'@; put 'Z3RoO3l0PG10O3l0KyspaWYoKHE9dHQuY2hhckNvZGVBdCh5dCkpPDQ4fHxxPm50KXJldHVybiBOYU47cmV0dXJuIHBhcnNlSW50KHR0LFopfX1yZXR1cm4rYn07aWYoIUUoIiAwbzEiKXx8IUUoIjBiMSIpfHxFKCIrMHgxIikpe0U9ZnVuY3Rpb24oYil7dmFyIEw9YXJndW1lbnRzLmxlbmd0'@; put 'aDwxPzA6YixVPXRoaXM7cmV0dXJuIFUgaW5zdGFuY2VvZiBFJiYoRj9mKGZ1bmN0aW9uKCl7RC52YWx1ZU9mLmNhbGwoVSl9KTpzKFUpIT1tKT9hKG5ldyBnKHcoTCkpLFUsRSk6dyhMKX07Zm9yKHZhciBNLEM9dCgxNzYzKT9pKGcpOiJNQVhfVkFMVUUsTUlOX1ZBTFVFLE5hTixORUdBVElW'@; put 'RV9JTkZJTklUWSxQT1NJVElWRV9JTkZJTklUWSxFUFNJTE9OLGlzRmluaXRlLGlzSW50ZWdlcixpc05hTixpc1NhZmVJbnRlZ2VyLE1BWF9TQUZFX0lOVEVHRVIsTUlOX1NBRkVfSU5URUdFUixwYXJzZUZsb2F0LHBhcnNlSW50LGlzSW50ZWdlciIuc3BsaXQoIiwiKSxJPTA7Qy5sZW5ndGg+'@; put 'STtJKyspZShnLE09Q1tJXSkmJiFlKEUsTSkmJnAoRSxNLHYoZyxNKSk7RS5wcm90b3R5cGU9RCxELmNvbnN0cnVjdG9yPUUsdCgyODg1OSkobixtLEUpfX0sMzQ0MTk6KGMsbCx0KT0+e3ZhciBuPXQoOTIxMjcpO24obi5TLCJOdW1iZXIiLHtFUFNJTE9OOk1hdGgucG93KDIsLTUyKX0pfSw5'@; put 'MTkzMzooYyxsLHQpPT57dmFyIG49dCg5MjEyNyksZT10KDY3NTI2KS5pc0Zpbml0ZTtuKG4uUywiTnVtYmVyIix7aXNGaW5pdGU6ZnVuY3Rpb24oYSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBhJiZlKGEpfX0pfSw1NTUzODooYyxsLHQpPT57dmFyIG49dCg5MjEyNyk7bihuLlMsIk51bWJl'@; put 'ciIse2lzSW50ZWdlcjp0KDMzODQyKX0pfSwzOTQ5NzooYyxsLHQpPT57dmFyIG49dCg5MjEyNyk7bihuLlMsIk51bWJlciIse2lzTmFOOmZ1bmN0aW9uKHMpe3JldHVybiBzIT1zfX0pfSw0MTA0OihjLGwsdCk9Pnt2YXIgbj10KDkyMTI3KSxlPXQoMzM4NDIpLHM9TWF0aC5hYnM7bihuLlMs'@; put 'Ik51bWJlciIse2lzU2FmZUludGVnZXI6ZnVuY3Rpb24odSl7cmV0dXJuIGUodSkmJnModSk8PTkwMDcxOTkyNTQ3NDA5OTF9fSl9LDYwMjEwOihjLGwsdCk9Pnt2YXIgbj10KDkyMTI3KTtuKG4uUywiTnVtYmVyIix7TUFYX1NBRkVfSU5URUdFUjo5MDA3MTk5MjU0NzQwOTkxfSl9LDU2NTc2'@; put 'OihjLGwsdCk9Pnt2YXIgbj10KDkyMTI3KTtuKG4uUywiTnVtYmVyIix7TUlOX1NBRkVfSU5URUdFUjotOTAwNzE5OTI1NDc0MDk5MX0pfSw4NDQzNzooYyxsLHQpPT57dmFyIG49dCg5MjEyNyksZT10KDMzNTg5KTtuKG4uUytuLkYqKE51bWJlci5wYXJzZUZsb2F0IT1lKSwiTnVtYmVyIix7'@; put 'cGFyc2VGbG9hdDplfSl9LDg4MDUwOihjLGwsdCk9Pnt2YXIgbj10KDkyMTI3KSxlPXQoODI3MzgpO24obi5TK24uRiooTnVtYmVyLnBhcnNlSW50IT1lKSwiTnVtYmVyIix7cGFyc2VJbnQ6ZX0pfSwzNzcyNzooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoOTIxMjcpLGU9dCgyNzA4'@; put 'Nykscz10KDE1MTIyKSxhPXQoMjc5MjYpLHU9MS4udG9GaXhlZCxmPU1hdGguZmxvb3IsaT1bMCwwLDAsMCwwLDBdLHY9Ik51bWJlci50b0ZpeGVkOiBpbmNvcnJlY3QgaW52b2NhdGlvbiEiLHA9IjAiLGQ9ZnVuY3Rpb24oRix4KXtmb3IodmFyIHc9LTEsQz14Oysrdzw2OylpW3ddPShDKz1G'@; put 'Kmlbd10pJTFlNyxDPWYoQy8xZTcpfSxtPWZ1bmN0aW9uKEYpe2Zvcih2YXIgeD02LHc9MDstLXg+PTA7KWlbeF09Zigodys9aVt4XSkvRiksdz13JUYqMWU3fSxFPWZ1bmN0aW9uKCl7Zm9yKHZhciBGPTYseD0iIjstLUY+PTA7KWlmKCIiIT09eHx8MD09PUZ8fDAhPT1pW0ZdKXt2YXIgdz1T'@; put 'dHJpbmcoaVtGXSk7eD0iIj09PXg/dzp4K2EuY2FsbChwLDctdy5sZW5ndGgpK3d9cmV0dXJuIHh9LGc9ZnVuY3Rpb24oRix4LHcpe3JldHVybiAwPT09eD93OnglMj09MT9nKEYseC0xLHcqRik6ZyhGKkYseC8yLHcpfTtuKG4uUCtuLkYqKCEhdSYmKCIwLjAwMCIhPT04ZS01LnRvRml4ZWQo'@; put 'Myl8fCIxIiE9PS45LnRvRml4ZWQoMCl8fCIxLjI1IiE9PTEuMjU1LnRvRml4ZWQoMil8fCIxMDAwMDAwMDAwMDAwMDAwMTI4IiE9PSgweGRlMGI2YjNhNzY0MDA4MCkudG9GaXhlZCgwKSl8fCF0KDc5NDQ4KShmdW5jdGlvbigpe3UuY2FsbCh7fSl9KSksIk51bWJlciIse3RvRml4ZWQ6ZnVu'@; put 'Y3Rpb24oeCl7dmFyIFQsYixMLFUsdz1zKHRoaXMsdiksQz1lKHgpLEk9IiIsTT1wO2lmKEM8MHx8Qz4yMCl0aHJvdyBSYW5nZUVycm9yKHYpO2lmKHchPXcpcmV0dXJuIk5hTiI7aWYodzw9LTFlMjF8fHc+PTFlMjEpcmV0dXJuIFN0cmluZyh3KTtpZih3PDAmJihJPSItIix3PS13KSx3PjFl'@; put 'LTIxKWlmKFQ9ZnVuY3Rpb24oRil7Zm9yKHZhciB4PTAsdz1GO3c+PTQwOTY7KXgrPTEyLHcvPTQwOTY7Zm9yKDt3Pj0yOyl4Kz0xLHcvPTI7cmV0dXJuIHh9KHcqZygyLDY5LDEpKS02OSxiPVQ8MD93KmcoMiwtVCwxKTp3L2coMixULDEpLGIqPTQ1MDM1OTk2MjczNzA0OTYsKFQ9NTItVCk+'@; put 'MCl7Zm9yKGQoMCxiKSxMPUM7TD49NzspZCgxZTcsMCksTC09Nztmb3IoZChnKDEwLEwsMSksMCksTD1ULTE7TD49MjM7KW0oMTw8MjMpLEwtPTIzO20oMTw8TCksZCgxLDEpLG0oMiksTT1FKCl9ZWxzZSBkKDAsYiksZCgxPDwtVCwwKSxNPUUoKSthLmNhbGwocCxDKTtyZXR1cm4gTT1DPjA/'@; put 'SSsoKFU9TS5sZW5ndGgpPD1DPyIwLiIrYS5jYWxsKHAsQy1VKStNOk0uc2xpY2UoMCxVLUMpKyIuIitNLnNsaWNlKFUtQykpOkkrTX19KX0sNjcwMTooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoOTIxMjcpLGU9dCg3OTQ0OCkscz10KDE1MTIyKSxhPTEuLnRvUHJlY2lzaW9uO24o'@; put 'bi5QK24uRiooZShmdW5jdGlvbigpe3JldHVybiIxIiE9PWEuY2FsbCgxLHZvaWQgMCl9KXx8IWUoZnVuY3Rpb24oKXthLmNhbGwoe30pfSkpLCJOdW1iZXIiLHt0b1ByZWNpc2lvbjpmdW5jdGlvbihmKXt2YXIgaT1zKHRoaXMsIk51bWJlciN0b1ByZWNpc2lvbjogaW5jb3JyZWN0IGludm9j'@; put 'YXRpb24hIik7cmV0dXJuIHZvaWQgMD09PWY/YS5jYWxsKGkpOmEuY2FsbChpLGYpfX0pfSwxMTQzMDooYyxsLHQpPT57dmFyIG49dCg5MjEyNyk7bihuLlMrbi5GLCJPYmplY3QiLHthc3NpZ246dCgyODIwNil9KX0sOTM1OihjLGwsdCk9Pnt2YXIgbj10KDkyMTI3KTtuKG4uUywiT2JqZWN0'@; put 'Iix7Y3JlYXRlOnQoODQ3MTkpfSl9LDg5NDQ4OihjLGwsdCk9Pnt2YXIgbj10KDkyMTI3KTtuKG4uUytuLkYqIXQoMTc2MyksIk9iamVjdCIse2RlZmluZVByb3BlcnRpZXM6dCgyMTYyNil9KX0sNjYwNjQ6KGMsbCx0KT0+e3ZhciBuPXQoOTIxMjcpO24obi5TK24uRiohdCgxNzYzKSwiT2Jq'@; put 'ZWN0Iix7ZGVmaW5lUHJvcGVydHk6dCg0Nzk2NykuZn0pfSw0ODIzNjooYyxsLHQpPT57dmFyIG49dCg0MzMwNSksZT10KDEyOTg4KS5vbkZyZWV6ZTt0KDgwOTIzKSgiZnJlZXplIixmdW5jdGlvbihzKXtyZXR1cm4gZnVuY3Rpb24odSl7cmV0dXJuIHMmJm4odSk/cyhlKHUpKTp1fX0pfSwy'@; put 'MjY0MjooYyxsLHQpPT57dmFyIG49dCg1NzIyMSksZT10KDY4NjQxKS5mO3QoODA5MjMpKCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGEsdSl7cmV0dXJuIGUobihhKSx1KX19KX0sODE4OTU6KGMsbCx0KT0+e3QoODA5MjMpKCJnZXRPd25Q'@; put 'cm9wZXJ0eU5hbWVzIixmdW5jdGlvbigpe3JldHVybiB0KDQ3NjUpLmZ9KX0sNTNlMzooYyxsLHQpPT57dmFyIG49dCgxODI3MCksZT10KDQwNjI3KTt0KDgwOTIzKSgiZ2V0UHJvdG90eXBlT2YiLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiBlKG4oYSkpfX0pfSw3OTA3'@; put 'MzooYyxsLHQpPT57dmFyIG49dCg0MzMwNSk7dCg4MDkyMykoImlzRXh0ZW5zaWJsZSIsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiEhbihhKSYmKCFlfHxlKGEpKX19KX0sNjkzMTg6KGMsbCx0KT0+e3ZhciBuPXQoNDMzMDUpO3QoODA5MjMpKCJpc0Zyb3plbiIsZnVu'@; put 'Y3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiFuKGEpfHwhIWUmJmUoYSl9fSl9LDY1MDMyOihjLGwsdCk9Pnt2YXIgbj10KDQzMzA1KTt0KDgwOTIzKSgiaXNTZWFsZWQiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihhKXtyZXR1cm4hbihhKXx8ISFlJiZlKGEpfX0pfSwz'@; put 'ODQ1MTooYyxsLHQpPT57dmFyIG49dCg5MjEyNyk7bihuLlMsIk9iamVjdCIse2lzOnQoNzM1OSl9KX0sODg2NDc6KGMsbCx0KT0+e3ZhciBuPXQoMTgyNzApLGU9dCg1MTMxMSk7dCg4MDkyMykoImtleXMiLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiBlKG4oYSkpfX0p'@; put 'fSwxNTU3MjooYyxsLHQpPT57dmFyIG49dCg0MzMwNSksZT10KDEyOTg4KS5vbkZyZWV6ZTt0KDgwOTIzKSgicHJldmVudEV4dGVuc2lvbnMiLGZ1bmN0aW9uKHMpe3JldHVybiBmdW5jdGlvbih1KXtyZXR1cm4gcyYmbih1KT9zKGUodSkpOnV9fSl9LDczODIyOihjLGwsdCk9Pnt2YXIgbj10'@; put 'KDQzMzA1KSxlPXQoMTI5ODgpLm9uRnJlZXplO3QoODA5MjMpKCJzZWFsIixmdW5jdGlvbihzKXtyZXR1cm4gZnVuY3Rpb24odSl7cmV0dXJuIHMmJm4odSk/cyhlKHUpKTp1fX0pfSwxODEzMjooYyxsLHQpPT57dmFyIG49dCg5MjEyNyk7bihuLlMsIk9iamVjdCIse3NldFByb3RvdHlwZU9m'@; put 'OnQoMjUxNzApLnNldH0pfSwxNzQ4MjooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoMzQ4NDgpLGU9e307ZVt0KDY3NTc0KSgidG9TdHJpbmdUYWciKV09InoiLGUrIiIhPSJbb2JqZWN0IHpdIiYmdCgyODg1OSkoT2JqZWN0LnByb3RvdHlwZSwidG9TdHJpbmciLGZ1bmN0aW9uKCl7'@; put 'cmV0dXJuIltvYmplY3QgIituKHRoaXMpKyJdIn0sITApfSw5NjEwODooYyxsLHQpPT57dmFyIG49dCg5MjEyNyksZT10KDMzNTg5KTtuKG4uRytuLkYqKHBhcnNlRmxvYXQhPWUpLHtwYXJzZUZsb2F0OmV9KX0sOTA1NzE6KGMsbCx0KT0+e3ZhciBuPXQoOTIxMjcpLGU9dCg4MjczOCk7bihu'@; put 'Lkcrbi5GKihwYXJzZUludCE9ZSkse3BhcnNlSW50OmV9KX0sNzEwMzooYyxsLHQpPT57dmFyIG49dCg5MjEyNyksZT10KDYzMzg3KSxzPXQoNDIyOCksYT0odCg2NzUyNikuUmVmbGVjdHx8e30pLmFwcGx5LHU9RnVuY3Rpb24uYXBwbHk7bihuLlMrbi5GKiF0KDc5NDQ4KShmdW5jdGlvbigp'@; put 'e2EoZnVuY3Rpb24oKXt9KX0pLCJSZWZsZWN0Iix7YXBwbHk6ZnVuY3Rpb24oaSx2LHApe3ZhciBkPWUoaSksbT1zKHApO3JldHVybiBhP2EoZCx2LG0pOnUuY2FsbChkLHYsbSl9fSl9LDgyNTg2OihjLGwsdCk9Pnt2YXIgbj10KDkyMTI3KSxlPXQoODQ3MTkpLHM9dCg2MzM4NyksYT10KDQy'@; put 'MjgpLHU9dCg0MzMwNSksZj10KDc5NDQ4KSxpPXQoMTU1MzgpLHY9KHQoNjc1MjYpLlJlZmxlY3R8fHt9KS5jb25zdHJ1Y3QscD1mKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gbSgpe31yZXR1cm4hKHYoZnVuY3Rpb24oKXt9LFtdLG0paW5zdGFuY2VvZiBtKX0pLGQ9IWYoZnVuY3Rpb24oKXt2KGZ1'@; put 'bmN0aW9uKCl7fSl9KTtuKG4uUytuLkYqKHB8fGQpLCJSZWZsZWN0Iix7Y29uc3RydWN0OmZ1bmN0aW9uKEUsZyl7cyhFKSxhKGcpO3ZhciBEPWFyZ3VtZW50cy5sZW5ndGg8Mz9FOnMoYXJndW1lbnRzWzJdKTtpZihkJiYhcClyZXR1cm4gdihFLGcsRCk7aWYoRT09RCl7c3dpdGNoKGcubGVu'@; put 'Z3RoKXtjYXNlIDA6cmV0dXJuIG5ldyBFO2Nhc2UgMTpyZXR1cm4gbmV3IEUoZ1swXSk7Y2FzZSAyOnJldHVybiBuZXcgRShnWzBdLGdbMV0pO2Nhc2UgMzpyZXR1cm4gbmV3IEUoZ1swXSxnWzFdLGdbMl0pO2Nhc2UgNDpyZXR1cm4gbmV3IEUoZ1swXSxnWzFdLGdbMl0sZ1szXSl9dmFyIEY9'@; put 'W251bGxdO3JldHVybiBGLnB1c2guYXBwbHkoRixnKSxuZXcoaS5hcHBseShFLEYpKX12YXIgeD1ELnByb3RvdHlwZSx3PWUodSh4KT94Ok9iamVjdC5wcm90b3R5cGUpLEM9RnVuY3Rpb24uYXBwbHkuY2FsbChFLHcsZyk7cmV0dXJuIHUoQyk/Qzp3fX0pfSw5MjU1MjooYyxsLHQpPT57dmFy'@; put 'IG49dCg0Nzk2NyksZT10KDkyMTI3KSxzPXQoNDIyOCksYT10KDgzMDQ4KTtlKGUuUytlLkYqdCg3OTQ0OCkoZnVuY3Rpb24oKXtSZWZsZWN0LmRlZmluZVByb3BlcnR5KG4uZih7fSwxLHt2YWx1ZToxfSksMSx7dmFsdWU6Mn0pfSksIlJlZmxlY3QiLHtkZWZpbmVQcm9wZXJ0eTpmdW5jdGlv'@; put 'bihmLGksdil7cyhmKSxpPWEoaSwhMCkscyh2KTt0cnl7cmV0dXJuIG4uZihmLGksdiksITB9Y2F0Y2h7cmV0dXJuITF9fX0pfSw0Mzc2OihjLGwsdCk9Pnt2YXIgbj10KDkyMTI3KSxlPXQoNjg2NDEpLmYscz10KDQyMjgpO24obi5TLCJSZWZsZWN0Iix7ZGVsZXRlUHJvcGVydHk6ZnVuY3Rp'@; put 'b24odSxmKXt2YXIgaT1lKHModSksZik7cmV0dXJuIShpJiYhaS5jb25maWd1cmFibGUpJiZkZWxldGUgdVtmXX19KX0sNzUxNTM6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDkyMTI3KSxlPXQoNDIyOCkscz1mdW5jdGlvbihhKXt0aGlzLl90PWUoYSksdGhpcy5faT0wO3ZhciBm'@; put 'LHU9dGhpcy5faz1bXTtmb3IoZiBpbiBhKXUucHVzaChmKX07dCg2MDMyKShzLCJPYmplY3QiLGZ1bmN0aW9uKCl7dmFyIGYsYT10aGlzLHU9YS5faztkb3tpZihhLl9pPj11Lmxlbmd0aClyZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fXdoaWxlKCEoKGY9dVthLl9pKytdKWluIGEuX3Qp'@; put 'KTtyZXR1cm57dmFsdWU6Zixkb25lOiExfX0pLG4obi5TLCJSZWZsZWN0Iix7ZW51bWVyYXRlOmZ1bmN0aW9uKHUpe3JldHVybiBuZXcgcyh1KX19KX0sNTI2NTA6KGMsbCx0KT0+e3ZhciBuPXQoNjg2NDEpLGU9dCg5MjEyNykscz10KDQyMjgpO2UoZS5TLCJSZWZsZWN0Iix7Z2V0T3duUHJv'@; put 'cGVydHlEZXNjcmlwdG9yOmZ1bmN0aW9uKHUsZil7cmV0dXJuIG4uZihzKHUpLGYpfX0pfSwzMTEwNDooYyxsLHQpPT57dmFyIG49dCg5MjEyNyksZT10KDQwNjI3KSxzPXQoNDIyOCk7bihuLlMsIlJlZmxlY3QiLHtnZXRQcm90b3R5cGVPZjpmdW5jdGlvbih1KXtyZXR1cm4gZShzKHUpKX19'@; put 'KX0sMTE4Nzk6KGMsbCx0KT0+e3ZhciBuPXQoNjg2NDEpLGU9dCg0MDYyNykscz10KDU3OTE3KSxhPXQoOTIxMjcpLHU9dCg0MzMwNSksZj10KDQyMjgpO2EoYS5TLCJSZWZsZWN0Iix7Z2V0OmZ1bmN0aW9uIGkodixwKXt2YXIgbSxFLGQ9YXJndW1lbnRzLmxlbmd0aDwzP3Y6YXJndW1lbnRz'@; put 'WzJdO3JldHVybiBmKHYpPT09ZD92W3BdOihtPW4uZih2LHApKT9zKG0sInZhbHVlIik/bS52YWx1ZTp2b2lkIDAhPT1tLmdldD9tLmdldC5jYWxsKGQpOnZvaWQgMDp1KEU9ZSh2KSk/aShFLHAsZCk6dm9pZCAwfX0pfSwyMTg4MzooYyxsLHQpPT57dmFyIG49dCg5MjEyNyk7bihuLlMsIlJl'@; put 'ZmxlY3QiLHtoYXM6ZnVuY3Rpb24ocyxhKXtyZXR1cm4gYSBpbiBzfX0pfSwzNTQzMzooYyxsLHQpPT57dmFyIG49dCg5MjEyNyksZT10KDQyMjgpLHM9T2JqZWN0LmlzRXh0ZW5zaWJsZTtuKG4uUywiUmVmbGVjdCIse2lzRXh0ZW5zaWJsZTpmdW5jdGlvbih1KXtyZXR1cm4gZSh1KSwhc3x8'@; put 'cyh1KX19KX0sNTVlMzooYyxsLHQpPT57dmFyIG49dCg5MjEyNyk7bihuLlMsIlJlZmxlY3QiLHtvd25LZXlzOnQoOTYyMjIpfSl9LDE1OTMyOihjLGwsdCk9Pnt2YXIgbj10KDkyMTI3KSxlPXQoNDIyOCkscz1PYmplY3QucHJldmVudEV4dGVuc2lvbnM7bihuLlMsIlJlZmxlY3QiLHtwcmV2'@; put 'ZW50RXh0ZW5zaW9uczpmdW5jdGlvbih1KXtlKHUpO3RyeXtyZXR1cm4gcyYmcyh1KSwhMH1jYXRjaHtyZXR1cm4hMX19fSl9LDI2MzE2OihjLGwsdCk9Pnt2YXIgbj10KDkyMTI3KSxlPXQoMjUxNzApO2UmJm4obi5TLCJSZWZsZWN0Iix7c2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24oYSx1KXtl'@; put 'LmNoZWNrKGEsdSk7dHJ5e3JldHVybiBlLnNldChhLHUpLCEwfWNhdGNoe3JldHVybiExfX19KX0sNTQ0MzooYyxsLHQpPT57dmFyIG49dCg0Nzk2NyksZT10KDY4NjQxKSxzPXQoNDA2MjcpLGE9dCg1NzkxNyksdT10KDkyMTI3KSxmPXQoMTE5OTYpLGk9dCg0MjI4KSx2PXQoNDMzMDUpO3Uo'@; put 'dS5TLCJSZWZsZWN0Iix7c2V0OmZ1bmN0aW9uIHAoZCxtLEUpe3ZhciBGLHgsZz1hcmd1bWVudHMubGVuZ3RoPDQ/ZDphcmd1bWVudHNbM10sRD1lLmYoaShkKSxtKTtpZighRCl7aWYodih4PXMoZCkpKXJldHVybiBwKHgsbSxFLGcpO0Q9ZigwKX1pZihhKEQsInZhbHVlIikpe2lmKCExPT09'@; put 'RC53cml0YWJsZXx8IXYoZykpcmV0dXJuITE7aWYoRj1lLmYoZyxtKSl7aWYoRi5nZXR8fEYuc2V0fHwhMT09PUYud3JpdGFibGUpcmV0dXJuITE7Ri52YWx1ZT1FLG4uZihnLG0sRil9ZWxzZSBuLmYoZyxtLGYoMCxFKSk7cmV0dXJuITB9cmV0dXJuIHZvaWQgMCE9PUQuc2V0JiYoRC5zZXQu'@; put 'Y2FsbChnLEUpLCEwKX19KX0sODMwMTooYyxsLHQpPT57dmFyIG49dCg2NzUyNiksZT10KDk4ODgwKSxzPXQoNDc5NjcpLmYsYT10KDU5NDE1KS5mLHU9dCg5NTQxMSksZj10KDExNTgpLGk9bi5SZWdFeHAsdj1pLHA9aS5wcm90b3R5cGUsZD0vYS9nLG09L2EvZyxFPW5ldyBpKGQpIT09ZDtp'@; put 'Zih0KDE3NjMpJiYoIUV8fHQoNzk0NDgpKGZ1bmN0aW9uKCl7cmV0dXJuIG1bdCg2NzU3NCkoIm1hdGNoIildPSExLGkoZCkhPWR8fGkobSk9PW18fCIvYS9pIiE9aShkLCJpIil9KSkpe2k9ZnVuY3Rpb24odyxDKXt2YXIgST10aGlzIGluc3RhbmNlb2YgaSxNPXUodyksVD12b2lkIDA9PT1D'@; put 'O3JldHVybiFJJiZNJiZ3LmNvbnN0cnVjdG9yPT09aSYmVD93OmUoRT9uZXcgdihNJiYhVD93LnNvdXJjZTp3LEMpOnYoKE09dyBpbnN0YW5jZW9mIGkpP3cuc291cmNlOncsTSYmVD9mLmNhbGwodyk6QyksST90aGlzOnAsaSl9O2Zvcih2YXIgZz1mdW5jdGlvbih4KXt4IGluIGl8fHMoaSx4'@; put 'LHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHZbeF19LHNldDpmdW5jdGlvbih3KXt2W3hdPXd9fSl9LEQ9YSh2KSxGPTA7RC5sZW5ndGg+RjspZyhEW0YrK10pO3AuY29uc3RydWN0b3I9aSxpLnByb3RvdHlwZT1wLHQoMjg4NTkpKG4sIlJlZ0V4cCIsaSl9dCg1NTc2'@; put 'MikoIlJlZ0V4cCIpfSw5NDExNjooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoNjk2MDApO3QoOTIxMjcpKHt0YXJnZXQ6IlJlZ0V4cCIscHJvdG86ITAsZm9yY2VkOm4hPT0vLi8uZXhlY30se2V4ZWM6bn0pfSwzOTYzODooYyxsLHQpPT57dCgxNzYzKSYmImciIT0vLi9nLmZsYWdz'@; put 'JiZ0KDQ3OTY3KS5mKFJlZ0V4cC5wcm90b3R5cGUsImZsYWdzIix7Y29uZmlndXJhYmxlOiEwLGdldDp0KDExNTgpfSl9LDQwNDA6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDQyMjgpLGU9dCg4MTQ4NSkscz10KDI4ODI4KSxhPXQoNTI1MzUpO3QoNjkyMjgpKCJtYXRjaCIsMSxm'@; put 'dW5jdGlvbih1LGYsaSx2KXtyZXR1cm5bZnVuY3Rpb24oZCl7dmFyIG09dSh0aGlzKSxFPWQ/LltmXTtyZXR1cm4gdm9pZCAwIT09RT9FLmNhbGwoZCxtKTpuZXcgUmVnRXhwKGQpW2ZdKFN0cmluZyhtKSl9LGZ1bmN0aW9uKHApe3ZhciBkPXYoaSxwLHRoaXMpO2lmKGQuZG9uZSlyZXR1cm4g'@; put 'ZC52YWx1ZTt2YXIgbT1uKHApLEU9U3RyaW5nKHRoaXMpO2lmKCFtLmdsb2JhbClyZXR1cm4gYShtLEUpO3ZhciBnPW0udW5pY29kZTttLmxhc3RJbmRleD0wO2Zvcih2YXIgeCxEPVtdLEY9MDtudWxsIT09KHg9YShtLEUpKTspe3ZhciB3PVN0cmluZyh4WzBdKTtEW0ZdPXcsIiI9PT13JiYo'@; put 'bS5sYXN0SW5kZXg9cyhFLGUobS5sYXN0SW5kZXgpLGcpKSxGKyt9cmV0dXJuIDA9PT1GP251bGw6RH1dfSl9LDY4MzA1OihjLGwsdCk9PnsidXNlIHN0cmljdCI7dmFyIG49dCg0MjI4KSxlPXQoMTgyNzApLHM9dCg4MTQ4NSksYT10KDI3MDg3KSx1PXQoMjg4MjgpLGY9dCg1MjUzNSksaT1N'@; put 'YXRoLm1heCx2PU1hdGgubWluLHA9TWF0aC5mbG9vcixkPS9cJChbJCZgJ118XGRcZD98PFtePl0qPikvZyxtPS9cJChbJCZgJ118XGRcZD8pL2csRT1mdW5jdGlvbihnKXtyZXR1cm4gdm9pZCAwPT09Zz9nOlN0cmluZyhnKX07dCg2OTIyOCkoInJlcGxhY2UiLDIsZnVuY3Rpb24oZyxELEYs'@; put 'eCl7cmV0dXJuW2Z1bmN0aW9uKEksTSl7dmFyIFQ9Zyh0aGlzKSxiPUk/LltEXTtyZXR1cm4gdm9pZCAwIT09Yj9iLmNhbGwoSSxULE0pOkYuY2FsbChTdHJpbmcoVCksSSxNKX0sZnVuY3Rpb24oQyxJKXt2YXIgTT14KEYsQyx0aGlzLEkpO2lmKE0uZG9uZSlyZXR1cm4gTS52YWx1ZTt2YXIg'@; put 'VD1uKEMpLGI9U3RyaW5nKHRoaXMpLEw9ImZ1bmN0aW9uIj09dHlwZW9mIEk7THx8KEk9U3RyaW5nKEkpKTt2YXIgVT1ULmdsb2JhbDtpZihVKXt2YXIgWj1ULnVuaWNvZGU7VC5sYXN0SW5kZXg9MH1mb3IodmFyIG50PVtdOzspe3ZhciB0dD1mKFQsYik7aWYobnVsbD09PXR0fHwobnQucHVz'@; put 'aCh0dCksIVUpKWJyZWFrOyIiPT09U3RyaW5nKHR0WzBdKSYmKFQubGFzdEluZGV4PXUoYixzKFQubGFzdEluZGV4KSxaKSl9Zm9yKHZhciBtdD0iIixxPTAsWD0wO1g8bnQubGVuZ3RoO1grKyl7dHQ9bnRbWF07Zm9yKHZhciBldD1TdHJpbmcodHRbMF0pLFY9aSh2KGEodHQuaW5kZXgpLGIu'@; put 'bGVuZ3RoKSwwKSxmdD1bXSxkdD0xO2R0PHR0Lmxlbmd0aDtkdCsrKWZ0LnB1c2goRSh0dFtkdF0pKTt2YXIgYnQ9dHQuZ3JvdXBzO2lmKEwpe3ZhciBPdD1bZXRdLmNvbmNhdChmdCxWLGIpO3ZvaWQgMCE9PWJ0JiZPdC5wdXNoKGJ0KTt2YXIgTnQ9U3RyaW5nKEkuYXBwbHkodm9pZCAwLE90'@; put 'KSl9ZWxzZSBOdD13KGV0LGIsVixmdCxidCxJKTtWPj1xJiYobXQrPWIuc2xpY2UocSxWKStOdCxxPVYrZXQubGVuZ3RoKX1yZXR1cm4gbXQrYi5zbGljZShxKX1dO2Z1bmN0aW9uIHcoQyxJLE0sVCxiLEwpe3ZhciBVPU0rQy5sZW5ndGgsWj1ULmxlbmd0aCxudD1tO3JldHVybiB2b2lkIDAh'@; put 'PT1iJiYoYj1lKGIpLG50PWQpLEYuY2FsbChMLG50LGZ1bmN0aW9uKHR0LHl0KXt2YXIgbXQ7c3dpdGNoKHl0LmNoYXJBdCgwKSl7Y2FzZSIkIjpyZXR1cm4iJCI7Y2FzZSImIjpyZXR1cm4gQztjYXNlImAiOnJldHVybiBJLnNsaWNlKDAsTSk7Y2FzZSInIjpyZXR1cm4gSS5zbGljZShVKTtj'@; put 'YXNlIjwiOm10PWJbeXQuc2xpY2UoMSwtMSldO2JyZWFrO2RlZmF1bHQ6dmFyIHE9K3l0O2lmKDA9PT1xKXJldHVybiB0dDtpZihxPlope3ZhciBYPXAocS8xMCk7cmV0dXJuIDA9PT1YP3R0Olg8PVo/dm9pZCAwPT09VFtYLTFdP3l0LmNoYXJBdCgxKTpUW1gtMV0reXQuY2hhckF0KDEpOnR0'@; put 'fW10PVRbcS0xXX1yZXR1cm4gdm9pZCAwPT09bXQ/IiI6bXR9KX19KX0sNzQ3MDE6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDQyMjgpLGU9dCg3MzU5KSxzPXQoNTI1MzUpO3QoNjkyMjgpKCJzZWFyY2giLDEsZnVuY3Rpb24oYSx1LGYsaSl7cmV0dXJuW2Z1bmN0aW9uKHApe3Zh'@; put 'ciBkPWEodGhpcyksbT1wPy5bdV07cmV0dXJuIHZvaWQgMCE9PW0/bS5jYWxsKHAsZCk6bmV3IFJlZ0V4cChwKVt1XShTdHJpbmcoZCkpfSxmdW5jdGlvbih2KXt2YXIgcD1pKGYsdix0aGlzKTtpZihwLmRvbmUpcmV0dXJuIHAudmFsdWU7dmFyIGQ9bih2KSxtPVN0cmluZyh0aGlzKSxFPWQu'@; put 'bGFzdEluZGV4O2UoRSwwKXx8KGQubGFzdEluZGV4PTApO3ZhciBnPXMoZCxtKTtyZXR1cm4gZShkLmxhc3RJbmRleCxFKXx8KGQubGFzdEluZGV4PUUpLG51bGw9PT1nPy0xOmcuaW5kZXh9XX0pfSwyMDM0MTooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoOTU0MTEpLGU9dCg0MjI4'@; put 'KSxzPXQoMTkxOTApLGE9dCgyODgyOCksdT10KDgxNDg1KSxmPXQoNTI1MzUpLGk9dCg2OTYwMCksdj10KDc5NDQ4KSxwPU1hdGgubWluLGQ9W10ucHVzaCxtPSJzcGxpdCIsRT0ibGVuZ3RoIixnPSJsYXN0SW5kZXgiLEQ9NDI5NDk2NzI5NSxGPSF2KGZ1bmN0aW9uKCl7UmVnRXhwKEQsInki'@; put 'KX0pO3QoNjkyMjgpKCJzcGxpdCIsMixmdW5jdGlvbih4LHcsQyxJKXt2YXIgTTtyZXR1cm4gTT0iYyI9PSJhYmJjIlttXSgvKGIpKi8pWzFdfHw0IT0idGVzdCJbbV0oLyg/OikvLC0xKVtFXXx8MiE9ImFiIlttXSgvKD86YWIpKi8pW0VdfHw0IT0iLiJbbV0oLyguPykoLj8pLylbRV18fCIu'@; put 'IlttXSgvKCkoKS8pW0VdPjF8fCIiW21dKC8uPy8pW0VdP2Z1bmN0aW9uKFQsYil7dmFyIEw9U3RyaW5nKHRoaXMpO2lmKHZvaWQgMD09PVQmJjA9PT1iKXJldHVybltdO2lmKCFuKFQpKXJldHVybiBDLmNhbGwoTCxULGIpO2Zvcih2YXIgbXQscSxYLFU9W10sbnQ9MCx0dD12b2lkIDA9PT1i'@; put 'P0Q6Yj4+PjAseXQ9bmV3IFJlZ0V4cChULnNvdXJjZSwoVC5pZ25vcmVDYXNlPyJpIjoiIikrKFQubXVsdGlsaW5lPyJtIjoiIikrKFQudW5pY29kZT8idSI6IiIpKyhULnN0aWNreT8ieSI6IiIpKyJnIik7KG10PWkuY2FsbCh5dCxMKSkmJiEoKHE9eXRbZ10pPm50JiYoVS5wdXNoKEwuc2xp'@; put 'Y2UobnQsbXQuaW5kZXgpKSxtdFtFXT4xJiZtdC5pbmRleDxMW0VdJiZkLmFwcGx5KFUsbXQuc2xpY2UoMSkpLFg9bXRbMF1bRV0sbnQ9cSxVW0VdPj10dCkpOyl5dFtnXT09PW10LmluZGV4JiZ5dFtnXSsrO3JldHVybiBudD09PUxbRV0/KFh8fCF5dC50ZXN0KCIiKSkmJlUucHVzaCgiIik6'@; put 'VS5wdXNoKEwuc2xpY2UobnQpKSxVW0VdPnR0P1Uuc2xpY2UoMCx0dCk6VX06IjAiW21dKHZvaWQgMCwwKVtFXT9mdW5jdGlvbihULGIpe3JldHVybiB2b2lkIDA9PT1UJiYwPT09Yj9bXTpDLmNhbGwodGhpcyxULGIpfTpDLFtmdW5jdGlvbihiLEwpe3ZhciBVPXgodGhpcyksWj1iPy5bd107'@; put 'cmV0dXJuIHZvaWQgMCE9PVo/Wi5jYWxsKGIsVSxMKTpNLmNhbGwoU3RyaW5nKFUpLGIsTCl9LGZ1bmN0aW9uKFQsYil7dmFyIEw9SShNLFQsdGhpcyxiLE0hPT1DKTtpZihMLmRvbmUpcmV0dXJuIEwudmFsdWU7dmFyIFU9ZShUKSxaPVN0cmluZyh0aGlzKSxudD1zKFUsUmVnRXhwKSx0dD1V'@; put 'LnVuaWNvZGUsbXQ9bmV3IG50KEY/VToiXig/OiIrVS5zb3VyY2UrIikiLChVLmlnbm9yZUNhc2U/ImkiOiIiKSsoVS5tdWx0aWxpbmU/Im0iOiIiKSsoVS51bmljb2RlPyJ1IjoiIikrKEY/InkiOiJnIikpLHE9dm9pZCAwPT09Yj9EOmI+Pj4wO2lmKDA9PT1xKXJldHVybltdO2lmKDA9PT1a'@; put 'Lmxlbmd0aClyZXR1cm4gbnVsbD09PWYobXQsWik/W1pdOltdO2Zvcih2YXIgWD0wLGV0PTAsVj1bXTtldDxaLmxlbmd0aDspe210Lmxhc3RJbmRleD1GP2V0OjA7dmFyIGR0LGZ0PWYobXQsRj9aOlouc2xpY2UoZXQpKTtpZihudWxsPT09ZnR8fChkdD1wKHUobXQubGFzdEluZGV4KyhGPzA6'@; put 'ZXQpKSxaLmxlbmd0aCkpPT09WClldD1hKFosZXQsdHQpO2Vsc2V7aWYoVi5wdXNoKFouc2xpY2UoWCxldCkpLFYubGVuZ3RoPT09cSlyZXR1cm4gVjtmb3IodmFyIGJ0PTE7YnQ8PWZ0Lmxlbmd0aC0xO2J0KyspaWYoVi5wdXNoKGZ0W2J0XSksVi5sZW5ndGg9PT1xKXJldHVybiBWO2V0PVg9'@; put 'ZHR9fXJldHVybiBWLnB1c2goWi5zbGljZShYKSksVn1dfSl9LDc4NjA0OihjLGwsdCk9PnsidXNlIHN0cmljdCI7dCgzOTYzOCk7dmFyIG49dCg0MjI4KSxlPXQoMTE1OCkscz10KDE3NjMpLGE9InRvU3RyaW5nIix1PS8uL1thXSxmPWZ1bmN0aW9uKGkpe3QoMjg4NTkpKFJlZ0V4cC5wcm90'@; put 'b3R5cGUsYSxpLCEwKX07dCg3OTQ0OCkoZnVuY3Rpb24oKXtyZXR1cm4iL2EvYiIhPXUuY2FsbCh7c291cmNlOiJhIixmbGFnczoiYiJ9KX0pP2YoZnVuY3Rpb24oKXt2YXIgdj1uKHRoaXMpO3JldHVybiIvIi5jb25jYXQodi5zb3VyY2UsIi8iLCJmbGFncyJpbiB2P3YuZmxhZ3M6IXMmJnYg'@; put 'aW5zdGFuY2VvZiBSZWdFeHA/ZS5jYWxsKHYpOnZvaWQgMCl9KTp1Lm5hbWUhPWEmJmYoZnVuY3Rpb24oKXtyZXR1cm4gdS5jYWxsKHRoaXMpfSl9LDcxNjMyOihjLGwsdCk9PnsidXNlIHN0cmljdCI7dmFyIG49dCgzNjE5NyksZT10KDEyODg4KTtjLmV4cG9ydHM9dCg1ODkzMykoIlNldCIs'@; put 'ZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGEodGhpcyxhcmd1bWVudHMubGVuZ3RoPjA/YXJndW1lbnRzWzBdOnZvaWQgMCl9fSx7YWRkOmZ1bmN0aW9uKHUpe3JldHVybiBuLmRlZihlKHRoaXMsIlNldCIpLHU9MD09PXU/MDp1LHUpfX0sbil9LDY0OTc5OihjLGwsdCk9'@; put 'PnsidXNlIHN0cmljdCI7dCg1MjQ2OCkoImFuY2hvciIsZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKHMpe3JldHVybiBuKHRoaXMsImEiLCJuYW1lIixzKX19KX0sODkwMTE6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt0KDUyNDY4KSgiYmlnIixmdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rp'@; put 'b24oKXtyZXR1cm4gbih0aGlzLCJiaWciLCIiLCIiKX19KX0sNTQ1OTE6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt0KDUyNDY4KSgiYmxpbmsiLGZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBuKHRoaXMsImJsaW5rIiwiIiwiIil9fSl9LDQ3MzM0OihjLGwsdCk9PnsidXNl'@; put 'IHN0cmljdCI7dCg1MjQ2OCkoImJvbGQiLGZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBuKHRoaXMsImIiLCIiLCIiKX19KX0sMzI0MDU6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDkyMTI3KSxlPXQoOTEyMTIpKCExKTtuKG4uUCwiU3RyaW5nIix7Y29kZVBv'@; put 'aW50QXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGUodGhpcyxhKX19KX0sMTcyMjQ6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KDkyMTI3KSxlPXQoODE0ODUpLHM9dCg3ODk0MiksYT0iZW5kc1dpdGgiLHU9IiJbYV07bihuLlArbi5GKnQoMjUyMDMpKGEpLCJTdHJpbmciLHtlbmRzV2l0'@; put 'aDpmdW5jdGlvbihpKXt2YXIgdj1zKHRoaXMsaSxhKSxwPWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLGQ9ZSh2Lmxlbmd0aCksbT12b2lkIDA9PT1wP2Q6TWF0aC5taW4oZShwKSxkKSxFPVN0cmluZyhpKTtyZXR1cm4gdT91LmNhbGwodixFLG0pOnYuc2xpY2UobS1F'@; put 'Lmxlbmd0aCxtKT09PUV9fSl9LDcwODM6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt0KDUyNDY4KSgiZml4ZWQiLGZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBuKHRoaXMsInR0IiwiIiwiIil9fSl9LDY5MjEzOihjLGwsdCk9PnsidXNlIHN0cmljdCI7dCg1MjQ2OCkoImZv'@; put 'bnRjb2xvciIsZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKHMpe3JldHVybiBuKHRoaXMsImZvbnQiLCJjb2xvciIscyl9fSl9LDM4NDM3OihjLGwsdCk9PnsidXNlIHN0cmljdCI7dCg1MjQ2OCkoImZvbnRzaXplIixmdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rpb24ocyl7cmV0dXJuIG4o'@; put 'dGhpcywiZm9udCIsInNpemUiLHMpfX0pfSwxMjIyMDooYyxsLHQpPT57dmFyIG49dCg5MjEyNyksZT10KDcwMTU3KSxzPVN0cmluZy5mcm9tQ2hhckNvZGUsYT1TdHJpbmcuZnJvbUNvZGVQb2ludDtuKG4uUytuLkYqKCEhYSYmMSE9YS5sZW5ndGgpLCJTdHJpbmciLHtmcm9tQ29kZVBvaW50'@; put 'OmZ1bmN0aW9uKGYpe2Zvcih2YXIgZCxpPVtdLHY9YXJndW1lbnRzLmxlbmd0aCxwPTA7dj5wOyl7aWYoZD0rYXJndW1lbnRzW3ArK10sZShkLDExMTQxMTEpIT09ZCl0aHJvdyBSYW5nZUVycm9yKGQrIiBpcyBub3QgYSB2YWxpZCBjb2RlIHBvaW50Iik7aS5wdXNoKGQ8NjU1MzY/cyhkKTpz'@; put 'KDU1Mjk2KygoZC09NjU1MzYpPj4xMCksZCUxMDI0KzU2MzIwKSl9cmV0dXJuIGkuam9pbigiIil9fSl9LDI4ODcyOihjLGwsdCk9PnsidXNlIHN0cmljdCI7dmFyIG49dCg5MjEyNyksZT10KDc4OTQyKSxzPSJpbmNsdWRlcyI7bihuLlArbi5GKnQoMjUyMDMpKHMpLCJTdHJpbmciLHtpbmNs'@; put 'dWRlczpmdW5jdGlvbih1KXtyZXR1cm4hIX5lKHRoaXMsdSxzKS5pbmRleE9mKHUsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pfSw2MjIyMDooYyxsLHQpPT57InVzZSBzdHJpY3QiO3QoNTI0NjgpKCJpdGFsaWNzIixmdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rp'@; put 'b24oKXtyZXR1cm4gbih0aGlzLCJpIiwiIiwiIil9fSl9LDgyOTc1OihjLGwsdCk9PnsidXNlIHN0cmljdCI7dmFyIG49dCg5MTIxMikoITApO3QoOTgxNzUpKFN0cmluZywiU3RyaW5nIixmdW5jdGlvbihlKXt0aGlzLl90PVN0cmluZyhlKSx0aGlzLl9pPTB9LGZ1bmN0aW9uKCl7dmFyIGEs'@; put 'ZT10aGlzLl90LHM9dGhpcy5faTtyZXR1cm4gcz49ZS5sZW5ndGg/e3ZhbHVlOnZvaWQgMCxkb25lOiEwfTooYT1uKGUscyksdGhpcy5faSs9YS5sZW5ndGgse3ZhbHVlOmEsZG9uZTohMX0pfSl9LDc2NTQ5OihjLGwsdCk9PnsidXNlIHN0cmljdCI7dCg1MjQ2OCkoImxpbmsiLGZ1bmN0aW9u'@; put 'KG4pe3JldHVybiBmdW5jdGlvbihzKXtyZXR1cm4gbih0aGlzLCJhIiwiaHJlZiIscyl9fSl9LDIzNDgzOihjLGwsdCk9Pnt2YXIgbj10KDkyMTI3KSxlPXQoNTcyMjEpLHM9dCg4MTQ4NSk7bihuLlMsIlN0cmluZyIse3JhdzpmdW5jdGlvbih1KXtmb3IodmFyIGY9ZSh1LnJhdyksaT1zKGYu'@; put 'bGVuZ3RoKSx2PWFyZ3VtZW50cy5sZW5ndGgscD1bXSxkPTA7aT5kOylwLnB1c2goU3RyaW5nKGZbZCsrXSkpLGQ8diYmcC5wdXNoKFN0cmluZyhhcmd1bWVudHNbZF0pKTtyZXR1cm4gcC5qb2luKCIiKX19KX0sNDQ4OTQ6KGMsbCx0KT0+e3ZhciBuPXQoOTIxMjcpO24obi5QLCJTdHJpbmci'@; put 'LHtyZXBlYXQ6dCgyNzkyNil9KX0sNDI4MTg6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt0KDUyNDY4KSgic21hbGwiLGZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBuKHRoaXMsInNtYWxsIiwiIiwiIil9fSl9LDEwMTc3OihjLGwsdCk9PnsidXNlIHN0cmljdCI7dmFyIG49'@; put 'dCg5MjEyNyksZT10KDgxNDg1KSxzPXQoNzg5NDIpLGE9InN0YXJ0c1dpdGgiLHU9IiJbYV07bihuLlArbi5GKnQoMjUyMDMpKGEpLCJTdHJpbmciLHtzdGFydHNXaXRoOmZ1bmN0aW9uKGkpe3ZhciB2PXModGhpcyxpLGEpLHA9ZShNYXRoLm1pbihhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1l'@; put 'bnRzWzFdOnZvaWQgMCx2Lmxlbmd0aCkpLGQ9U3RyaW5nKGkpO3JldHVybiB1P3UuY2FsbCh2LGQscCk6di5zbGljZShwLHArZC5sZW5ndGgpPT09ZH19KX0sMjg1NDM6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt0KDUyNDY4KSgic3RyaWtlIixmdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rpb24o'@; put 'KXtyZXR1cm4gbih0aGlzLCJzdHJpa2UiLCIiLCIiKX19KX0sMzU1OTooYyxsLHQpPT57InVzZSBzdHJpY3QiO3QoNTI0NjgpKCJzdWIiLGZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBuKHRoaXMsInN1YiIsIiIsIiIpfX0pfSw4NDE1MzooYyxsLHQpPT57InVzZSBzdHJp'@; put 'Y3QiO3QoNTI0NjgpKCJzdXAiLGZ1bmN0aW9uKG4pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBuKHRoaXMsInN1cCIsIiIsIiIpfX0pfSwyMDk1NzooYyxsLHQpPT57InVzZSBzdHJpY3QiO3QoNDA2MjkpKCJ0cmltIixmdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbih0'@; put 'aGlzLDMpfX0pfSw5OTY1MDooYyxsLHQpPT57InVzZSBzdHJpY3QiO3ZhciBuPXQoNjc1MjYpLGU9dCg1NzkxNykscz10KDE3NjMpLGE9dCg5MjEyNyksdT10KDI4ODU5KSxmPXQoMTI5ODgpLktFWSxpPXQoNzk0NDgpLHY9dCg0NDU1NikscD10KDM4NDQpLGQ9dCg0NDE1KSxtPXQoNjc1NzQp'@; put 'LEU9dCg0Nzk2MCksZz10KDIzMDExKSxEPXQoMTU5NjkpLEY9dCg3Nzk4MSkseD10KDQyMjgpLHc9dCg0MzMwNSksQz10KDE4MjcwKSxJPXQoNTcyMjEpLE09dCg4MzA0OCksVD10KDExOTk2KSxiPXQoODQ3MTkpLEw9dCg0NzY1KSxVPXQoNjg2NDEpLFo9dCgxMDYwKSxudD10KDQ3OTY3KSx0'@; put 'dD10KDUxMzExKSx5dD1VLmYsbXQ9bnQuZixxPUwuZixYPW4uU3ltYm9sLGV0PW4uSlNPTixWPWV0JiZldC5zdHJpbmdpZnksZnQ9InByb3RvdHlwZSIsZHQ9bSgiX2hpZGRlbiIpLGJ0PW0oInRvUHJpbWl0aXZlIiksT3Q9e30ucHJvcGVydHlJc0VudW1lcmFibGUsTnQ9digic3ltYm9sLXJl'@; put 'Z2lzdHJ5IiksWXQ9digic3ltYm9scyIpLG9uPXYoIm9wLXN5bWJvbHMiKSxHdD1PYmplY3RbZnRdLHVuPSJmdW5jdGlvbiI9PXR5cGVvZiBYJiYhIVouZix5bj1uLlFPYmplY3Qscm49IXlufHwheW5bZnRdfHwheW5bZnRdLmZpbmRDaGlsZCx4bj1zJiZpKGZ1bmN0aW9uKCl7cmV0dXJuIDch'@; put 'PWIobXQoe30sImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbXQodGhpcywiYSIse3ZhbHVlOjd9KS5hfX0pKS5hfSk/ZnVuY3Rpb24oXyxILFEpe3ZhciBpdD15dChHdCxIKTtpdCYmZGVsZXRlIEd0W0hdLG10KF8sSCxRKSxpdCYmXyE9PUd0JiZtdChHdCxILGl0KX06bXQscXQ9ZnVuY3Rp'@; put 'b24oXyl7dmFyIEg9WXRbX109YihYW2Z0XSk7cmV0dXJuIEguX2s9XyxIfSxkbj11biYmInN5bWJvbCI9PXR5cGVvZiBYLml0ZXJhdG9yP2Z1bmN0aW9uKF8pe3JldHVybiJzeW1ib2wiPT10eXBlb2YgX306ZnVuY3Rpb24oXyl7cmV0dXJuIF8gaW5zdGFuY2VvZiBYfSxzbj1mdW5jdGlvbihI'@; put 'LFEsaXQpe3JldHVybiBIPT09R3QmJnNuKG9uLFEsaXQpLHgoSCksUT1NKFEsITApLHgoaXQpLGUoWXQsUSk/KGl0LmVudW1lcmFibGU/KGUoSCxkdCkmJkhbZHRdW1FdJiYoSFtkdF1bUV09ITEpLGl0PWIoaXQse2VudW1lcmFibGU6VCgwLCExKX0pKTooZShILGR0KXx8bXQoSCxkdCxUKDEs'@; put 'e30pKSxIW2R0XVtRXT0hMCkseG4oSCxRLGl0KSk6bXQoSCxRLGl0KX0sX3Q9ZnVuY3Rpb24oSCxRKXt4KEgpO2Zvcih2YXIgYW4saXQ9RChRPUkoUSkpLHp0PTAsUXQ9aXQubGVuZ3RoO1F0Pnp0OylzbihILGFuPWl0W3p0KytdLFFbYW5dKTtyZXR1cm4gSH0sVG49ZnVuY3Rpb24oSCl7dmFy'@; put 'IFE9T3QuY2FsbCh0aGlzLEg9TShILCEwKSk7cmV0dXJuISh0aGlzPT09R3QmJmUoWXQsSCkmJiFlKG9uLEgpKSYmKCEoUXx8IWUodGhpcyxIKXx8IWUoWXQsSCl8fGUodGhpcyxkdCkmJnRoaXNbZHRdW0hdKXx8USl9LGg9ZnVuY3Rpb24oSCxRKXtpZihIPUkoSCksUT1NKFEsITApLEghPT1H'@; put 'dHx8IWUoWXQsUSl8fGUob24sUSkpe3ZhciBpdD15dChILFEpO3JldHVybiBpdCYmZShZdCxRKSYmIShlKEgsZHQpJiZIW2R0XVtRXSkmJihpdC5lbnVtZXJhYmxlPSEwKSxpdH19LHI9ZnVuY3Rpb24oSCl7Zm9yKHZhciBRdCxRPXEoSShIKSksaXQ9W10senQ9MDtRLmxlbmd0aD56dDspIWUo'@; put 'WXQsUXQ9UVt6dCsrXSkmJlF0IT1kdCYmUXQhPWYmJml0LnB1c2goUXQpO3JldHVybiBpdH0sbz1mdW5jdGlvbihIKXtmb3IodmFyIGFuLFE9SD09PUd0LGl0PXEoUT9vbjpJKEgpKSx6dD1bXSxRdD0wO2l0Lmxlbmd0aD5RdDspZShZdCxhbj1pdFtRdCsrXSkmJighUXx8ZShHdCxhbikpJiZ6'@; put 'dC5wdXNoKFl0W2FuXSk7cmV0dXJuIHp0fTt1bnx8KHUoKFg9ZnVuY3Rpb24oKXtpZih0aGlzIGluc3RhbmNlb2YgWCl0aHJvdyBUeXBlRXJyb3IoIlN5bWJvbCBpcyBub3QgYSBjb25zdHJ1Y3RvciEiKTt2YXIgSD1kKGFyZ3VtZW50cy5sZW5ndGg+MD9hcmd1bWVudHNbMF06dm9pZCAwKSxR'@; put 'PWZ1bmN0aW9uKGl0KXt0aGlzPT09R3QmJlEuY2FsbChvbixpdCksZSh0aGlzLGR0KSYmZSh0aGlzW2R0XSxIKSYmKHRoaXNbZHRdW0hdPSExKSx4bih0aGlzLEgsVCgxLGl0KSl9O3JldHVybiBzJiZybiYmeG4oR3QsSCx7Y29uZmlndXJhYmxlOiEwLHNldDpRfSkscXQoSCl9KVtmdF0sInRv'@; put 'U3RyaW5nIixmdW5jdGlvbigpe3JldHVybiB0aGlzLl9rfSksVS5mPWgsbnQuZj1zbix0KDU5NDE1KS5mPUwuZj1yLHQoODQ0OSkuZj1UbixaLmY9byxzJiYhdCgyMjc1MCkmJnUoR3QsInByb3BlcnR5SXNFbnVtZXJhYmxlIixUbiwhMCksRS5mPWZ1bmN0aW9uKF8pe3JldHVybiBxdChtKF8p'@; put 'KX0pLGEoYS5HK2EuVythLkYqIXVuLHtTeW1ib2w6WH0pO2Zvcih2YXIgeT0iaGFzSW5zdGFuY2UsaXNDb25jYXRTcHJlYWRhYmxlLGl0ZXJhdG9yLG1hdGNoLHJlcGxhY2Usc2VhcmNoLHNwZWNpZXMsc3BsaXQsdG9QcmltaXRpdmUsdG9TdHJpbmdUYWcsdW5zY29wYWJsZXMiLnNwbGl0KCIs'@; put 'IiksUD0wO3kubGVuZ3RoPlA7KW0oeVtQKytdKTtmb3IodmFyIEs9dHQobS5zdG9yZSksJD0wO0subGVuZ3RoPiQ7KWcoS1skKytdKTthKGEuUythLkYqIXVuLCJTeW1ib2wiLHtmb3I6ZnVuY3Rpb24oXyl7cmV0dXJuIGUoTnQsXys9IiIpP050W19dOk50W19dPVgoXyl9LGtleUZvcjpmdW5j'@; put 'dGlvbihIKXtpZighZG4oSCkpdGhyb3cgVHlwZUVycm9yKEgrIiBpcyBub3QgYSBzeW1ib2whIik7Zm9yKHZhciBRIGluIE50KWlmKE50W1FdPT09SClyZXR1cm4gUX0sdXNlU2V0dGVyOmZ1bmN0aW9uKCl7cm49ITB9LHVzZVNpbXBsZTpmdW5jdGlvbigpe3JuPSExfX0pLGEoYS5TK2EuRioh'@; put 'dW4sIk9iamVjdCIse2NyZWF0ZTpmdW5jdGlvbihILFEpe3JldHVybiB2b2lkIDA9PT1RP2IoSCk6X3QoYihIKSxRKX0sZGVmaW5lUHJvcGVydHk6c24sZGVmaW5lUHJvcGVydGllczpfdCxnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6aCxnZXRPd25Qcm9wZXJ0eU5hbWVzOnIsZ2V0T3duUHJv'@; put 'cGVydHlTeW1ib2xzOm99KTt2YXIganQ9aShmdW5jdGlvbigpe1ouZigxKX0pO2EoYS5TK2EuRipqdCwiT2JqZWN0Iix7Z2V0T3duUHJvcGVydHlTeW1ib2xzOmZ1bmN0aW9uKEgpe3JldHVybiBaLmYoQyhIKSl9fSksZXQmJmEoYS5TK2EuRiooIXVufHxpKGZ1bmN0aW9uKCl7dmFyIF89WCgp'@; put 'O3JldHVybiJbbnVsbF0iIT1WKFtfXSl8fCJ7fSIhPVYoe2E6X30pfHwie30iIT1WKE9iamVjdChfKSl9KSksIkpTT04iLHtzdHJpbmdpZnk6ZnVuY3Rpb24oSCl7Zm9yKHZhciB6dCxRdCxRPVtIXSxpdD0xO2FyZ3VtZW50cy5sZW5ndGg+aXQ7KVEucHVzaChhcmd1bWVudHNbaXQrK10pO2lm'@; put 'KFF0PXp0PVFbMV0sKHcoenQpfHx2b2lkIDAhPT1IKSYmIWRuKEgpKXJldHVybiBGKHp0KXx8KHp0PWZ1bmN0aW9uKGFuLE1uKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgUXQmJihNbj1RdC5jYWxsKHRoaXMsYW4sTW4pKSwhZG4oTW4pKXJldHVybiBNbn0pLFFbMV09enQsVi5hcHBseShldCxR'@; put 'KX19KSxYW2Z0XVtidF18fHQoMzMzNDEpKFhbZnRdLGJ0LFhbZnRdLnZhbHVlT2YpLHAoWCwiU3ltYm9sIikscChNYXRoLCJNYXRoIiwhMCkscChuLkpTT04sIkpTT04iLCEwKX0sNzkzOTc6KGMsbCx0KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRixuPXQoNjc1MjYpLGU9dCg2NjE3OSkoMCkscz10'@; put 'KDI4ODU5KSxhPXQoMTI5ODgpLHU9dCgyODIwNiksZj10KDk5ODgyKSxpPXQoNDMzMDUpLHY9dCgxMjg4OCkscD10KDEyODg4KSxkPSFuLkFjdGl2ZVhPYmplY3QmJiJBY3RpdmVYT2JqZWN0ImluIG4sbT0iV2Vha01hcCIsRT1hLmdldFdlYWssZz1PYmplY3QuaXNFeHRlbnNpYmxlLEQ9Zi51'@; put 'ZnN0b3JlLHg9ZnVuY3Rpb24oSSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEkodGhpcyxhcmd1bWVudHMubGVuZ3RoPjA/YXJndW1lbnRzWzBdOnZvaWQgMCl9fSx3PXtnZXQ6ZnVuY3Rpb24oTSl7aWYoaShNKSl7dmFyIFQ9RShNKTtyZXR1cm4hMD09PVQ/RCh2KHRoaXMsbSkpLmdldChN'@; put 'KTpUP1RbdGhpcy5faV06dm9pZCAwfX0sc2V0OmZ1bmN0aW9uKE0sVCl7cmV0dXJuIGYuZGVmKHYodGhpcyxtKSxNLFQpfX0sQz1jLmV4cG9ydHM9dCg1ODkzMykobSx4LHcsZiwhMCwhMCk7cCYmZCYmKHUoKEY9Zi5nZXRDb25zdHJ1Y3Rvcih4LG0pKS5wcm90b3R5cGUsdyksYS5ORUVEPSEw'@; put 'LGUoWyJkZWxldGUiLCJoYXMiLCJnZXQiLCJzZXQiXSxmdW5jdGlvbihJKXt2YXIgTT1DLnByb3RvdHlwZSxUPU1bSV07cyhNLEksZnVuY3Rpb24oYixMKXtpZihpKGIpJiYhZyhiKSl7dGhpcy5fZnx8KHRoaXMuX2Y9bmV3IEYpO3ZhciBVPXRoaXMuX2ZbSV0oYixMKTtyZXR1cm4ic2V0Ij09'@; put 'ST90aGlzOlV9cmV0dXJuIFQuY2FsbCh0aGlzLGIsTCl9KX0pKX0sNzc0OTE6KGMsbCx0KT0+e3ZhciBuPXQoOTczODApLGU9dCg0MjI4KSxzPW4ua2V5LGE9bi5zZXQ7bi5leHAoe2RlZmluZU1ldGFkYXRhOmZ1bmN0aW9uKGYsaSx2LHApe2EoZixpLGUodikscyhwKSl9fSl9LDc0OTA3Oihj'@; put 'LGwsdCk9Pnt2YXIgbj10KDk3MzgwKSxlPXQoNDIyOCkscz1uLmtleSxhPW4ubWFwLHU9bi5zdG9yZTtuLmV4cCh7ZGVsZXRlTWV0YWRhdGE6ZnVuY3Rpb24oaSx2KXt2YXIgcD1hcmd1bWVudHMubGVuZ3RoPDM/dm9pZCAwOnMoYXJndW1lbnRzWzJdKSxkPWEoZSh2KSxwLCExKTtpZih2b2lk'@; put 'IDA9PT1kfHwhZC5kZWxldGUoaSkpcmV0dXJuITE7aWYoZC5zaXplKXJldHVybiEwO3ZhciBtPXUuZ2V0KHYpO3JldHVybiBtLmRlbGV0ZShwKSwhIW0uc2l6ZXx8dS5kZWxldGUodil9fSl9LDE5MjY5OihjLGwsdCk9Pnt2YXIgbj10KDcxNjMyKSxlPXQoODA5NTYpLHM9dCg5NzM4MCksYT10'@; put 'KDQyMjgpLHU9dCg0MDYyNyksZj1zLmtleXMsaT1zLmtleSx2PWZ1bmN0aW9uKHAsZCl7dmFyIG09ZihwLGQpLEU9dShwKTtpZihudWxsPT09RSlyZXR1cm4gbTt2YXIgZz12KEUsZCk7cmV0dXJuIGcubGVuZ3RoP20ubGVuZ3RoP2UobmV3IG4obS5jb25jYXQoZykpKTpnOm19O3MuZXhwKHtn'@; put 'ZXRNZXRhZGF0YUtleXM6ZnVuY3Rpb24oZCl7cmV0dXJuIHYoYShkKSxhcmd1bWVudHMubGVuZ3RoPDI/dm9pZCAwOmkoYXJndW1lbnRzWzFdKSl9fSl9LDc5MTAwOihjLGwsdCk9Pnt2YXIgbj10KDk3MzgwKSxlPXQoNDIyOCkscz10KDQwNjI3KSxhPW4uaGFzLHU9bi5nZXQsZj1uLmtleSxp'@; put 'PWZ1bmN0aW9uKHYscCxkKXtpZihhKHYscCxkKSlyZXR1cm4gdSh2LHAsZCk7dmFyIEU9cyhwKTtyZXR1cm4gbnVsbCE9PUU/aSh2LEUsZCk6dm9pZCAwfTtuLmV4cCh7Z2V0TWV0YWRhdGE6ZnVuY3Rpb24ocCxkKXtyZXR1cm4gaShwLGUoZCksYXJndW1lbnRzLmxlbmd0aDwzP3ZvaWQgMDpm'@; put 'KGFyZ3VtZW50c1syXSkpfX0pfSw3OTczMjooYyxsLHQpPT57dmFyIG49dCg5NzM4MCksZT10KDQyMjgpLHM9bi5rZXlzLGE9bi5rZXk7bi5leHAoe2dldE93bk1ldGFkYXRhS2V5czpmdW5jdGlvbihmKXtyZXR1cm4gcyhlKGYpLGFyZ3VtZW50cy5sZW5ndGg8Mj92b2lkIDA6YShhcmd1bWVu'@; put 'dHNbMV0pKX19KX0sOTEzMTk6KGMsbCx0KT0+e3ZhciBuPXQoOTczODApLGU9dCg0MjI4KSxzPW4uZ2V0LGE9bi5rZXk7bi5leHAoe2dldE93bk1ldGFkYXRhOmZ1bmN0aW9uKGYsaSl7cmV0dXJuIHMoZixlKGkpLGFyZ3VtZW50cy5sZW5ndGg8Mz92b2lkIDA6YShhcmd1bWVudHNbMl0pKX19'@; put 'KX0sMTE3NjooYyxsLHQpPT57dmFyIG49dCg5NzM4MCksZT10KDQyMjgpLHM9dCg0MDYyNyksYT1uLmhhcyx1PW4ua2V5LGY9ZnVuY3Rpb24oaSx2LHApe2lmKGEoaSx2LHApKXJldHVybiEwO3ZhciBtPXModik7cmV0dXJuIG51bGwhPT1tJiZmKGksbSxwKX07bi5leHAoe2hhc01ldGFkYXRh'@; put 'OmZ1bmN0aW9uKHYscCl7cmV0dXJuIGYodixlKHApLGFyZ3VtZW50cy5sZW5ndGg8Mz92b2lkIDA6dShhcmd1bWVudHNbMl0pKX19KX0sMzEwNzooYyxsLHQpPT57dmFyIG49dCg5NzM4MCksZT10KDQyMjgpLHM9bi5oYXMsYT1uLmtleTtuLmV4cCh7aGFzT3duTWV0YWRhdGE6ZnVuY3Rpb24o'@; put 'ZixpKXtyZXR1cm4gcyhmLGUoaSksYXJndW1lbnRzLmxlbmd0aDwzP3ZvaWQgMDphKGFyZ3VtZW50c1syXSkpfX0pfSw2MTY5MTooYyxsLHQpPT57dmFyIG49dCg5NzM4MCksZT10KDQyMjgpLHM9dCg2MzM4NyksYT1uLmtleSx1PW4uc2V0O24uZXhwKHttZXRhZGF0YTpmdW5jdGlvbihpLHYp'@; put 'e3JldHVybiBmdW5jdGlvbihkLG0pe3UoaSx2LCh2b2lkIDAhPT1tP2U6cykoZCksYShtKSl9fX0pfSwzNTg5MDooYyxsLHQpPT57Zm9yKHZhciBuPXQoOTUxNjUpLGU9dCg1MTMxMSkscz10KDI4ODU5KSxhPXQoNjc1MjYpLHU9dCgzMzM0MSksZj10KDYwOTA2KSxpPXQoNjc1NzQpLHY9aSgi'@; put 'aXRlcmF0b3IiKSxwPWkoInRvU3RyaW5nVGFnIiksZD1mLkFycmF5LG09e0NTU1J1bGVMaXN0OiEwLENTU1N0eWxlRGVjbGFyYXRpb246ITEsQ1NTVmFsdWVMaXN0OiExLENsaWVudFJlY3RMaXN0OiExLERPTVJlY3RMaXN0OiExLERPTVN0cmluZ0xpc3Q6ITEsRE9NVG9rZW5MaXN0OiEwLERh'@; put 'dGFUcmFuc2Zlckl0ZW1MaXN0OiExLEZpbGVMaXN0OiExLEhUTUxBbGxDb2xsZWN0aW9uOiExLEhUTUxDb2xsZWN0aW9uOiExLEhUTUxGb3JtRWxlbWVudDohMSxIVE1MU2VsZWN0RWxlbWVudDohMSxNZWRpYUxpc3Q6ITAsTWltZVR5cGVBcnJheTohMSxOYW1lZE5vZGVNYXA6ITEsTm9kZUxp'@; put 'c3Q6ITAsUGFpbnRSZXF1ZXN0TGlzdDohMSxQbHVnaW46ITEsUGx1Z2luQXJyYXk6ITEsU1ZHTGVuZ3RoTGlzdDohMSxTVkdOdW1iZXJMaXN0OiExLFNWR1BhdGhTZWdMaXN0OiExLFNWR1BvaW50TGlzdDohMSxTVkdTdHJpbmdMaXN0OiExLFNWR1RyYW5zZm9ybUxpc3Q6ITEsU291cmNlQnVm'@; put 'ZmVyTGlzdDohMSxTdHlsZVNoZWV0TGlzdDohMCxUZXh0VHJhY2tDdWVMaXN0OiExLFRleHRUcmFja0xpc3Q6ITEsVG91Y2hMaXN0OiExfSxFPWUobSksZz0wO2c8RS5sZW5ndGg7ZysrKXt2YXIgQyxEPUVbZ10sRj1tW0RdLHg9YVtEXSx3PXgmJngucHJvdG90eXBlO2lmKHcmJih3W3ZdfHx1'@; put 'KHcsdixkKSx3W3BdfHx1KHcscCxEKSxmW0RdPWQsRikpZm9yKEMgaW4gbil3W0NdfHxzKHcsQyxuW0NdLCEwKX19LDgyNTc0OmM9PnsidXNlIHN0cmljdCI7Yy5leHBvcnRzPUpTT04ucGFyc2UoJ3sibG9jYWxlIjoiZW4iLCJkYXRlIjp7ImNhIjpbImdyZWdvcnkiLCJidWRkaGlzdCIsImNo'@; put 'aW5lc2UiLCJjb3B0aWMiLCJkYW5naSIsImV0aGlvYWEiLCJldGhpb3BpYyIsImdlbmVyaWMiLCJoZWJyZXciLCJpbmRpYW4iLCJpc2xhbWljIiwiaXNsYW1pY2MiLCJqYXBhbmVzZSIsInBlcnNpYW4iLCJyb2MiXSwiaG91ck5vMCI6dHJ1ZSwiaG91cjEyIjp0cnVlLCJmb3JtYXRzIjp7InNo'@; put 'b3J0IjoiezF9LCB7MH0iLCJtZWRpdW0iOiJ7MX0sIHswfSIsImZ1bGwiOiJ7MX0gXCdhdFwnIHswfSIsImxvbmciOiJ7MX0gXCdhdFwnIHswfSIsImF2YWlsYWJsZUZvcm1hdHMiOnsiZCI6ImQiLCJFIjoiY2NjIiwiRWQiOiJkIEUiLCJFaG0iOiJFIGg6bW0gYSIsIkVIbSI6IkUgSEg6bW0i'@; put 'LCJFaG1zIjoiRSBoOm1tOnNzIGEiLCJFSG1zIjoiRSBISDptbTpzcyIsIkd5IjoieSBHIiwiR3lNTU0iOiJNTU0geSBHIiwiR3lNTU1kIjoiTU1NIGQsIHkgRyIsIkd5TU1NRWQiOiJFLCBNTU0gZCwgeSBHIiwiaCI6ImggYSIsIkgiOiJISCIsImhtIjoiaDptbSBhIiwiSG0iOiJISDptbSIs'@; put 'ImhtcyI6Img6bW06c3MgYSIsIkhtcyI6IkhIOm1tOnNzIiwiaG1zdiI6Img6bW06c3MgYSB2IiwiSG1zdiI6IkhIOm1tOnNzIHYiLCJobXYiOiJoOm1tIGEgdiIsIkhtdiI6IkhIOm1tIHYiLCJNIjoiTCIsIk1kIjoiTS9kIiwiTUVkIjoiRSwgTS9kIiwiTU1NIjoiTExMIiwiTU1NZCI6Ik1N'@; put 'TSBkIiwiTU1NRWQiOiJFLCBNTU0gZCIsIk1NTU1kIjoiTU1NTSBkIiwibXMiOiJtbTpzcyIsInkiOiJ5IiwieU0iOiJNL3kiLCJ5TWQiOiJNL2QveSIsInlNRWQiOiJFLCBNL2QveSIsInlNTU0iOiJNTU0geSIsInlNTU1kIjoiTU1NIGQsIHkiLCJ5TU1NRWQiOiJFLCBNTU0gZCwgeSIsInlN'@; put 'TU1NIjoiTU1NTSB5IiwieVFRUSI6IlFRUSB5IiwieVFRUVEiOiJRUVFRIHkifSwiZGF0ZUZvcm1hdHMiOnsieU1NTU1FRUVFZCI6IkVFRUUsIE1NTU0gZCwgeSIsInlNTU1NZCI6Ik1NTU0gZCwgeSIsInlNTU1kIjoiTU1NIGQsIHkiLCJ5TWQiOiJNL2QveXkifSwidGltZUZvcm1hdHMiOnsi'@; put 'aG1tc3N6enp6IjoiaDptbTpzcyBhIHp6enoiLCJobXN6IjoiaDptbTpzcyBhIHoiLCJobXMiOiJoOm1tOnNzIGEiLCJobSI6Img6bW0gYSJ9fSwiY2FsZW5kYXJzIjp7ImJ1ZGRoaXN0Ijp7Im1vbnRocyI6eyJuYXJyb3ciOlsiSiIsIkYiLCJNIiwiQSIsIk0iLCJKIiwiSiIsIkEiLCJTIiwi'@; put 'TyIsIk4iLCJEIl0sInNob3J0IjpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLCJsb25nIjpbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3Vz'@; put 'dCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl19LCJkYXlzIjp7Im5hcnJvdyI6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sInNob3J0IjpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLCJsb25nIjpbIlN1bmRheSIs'@; put 'Ik1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LCJlcmFzIjp7Im5hcnJvdyI6WyJCRSJdLCJzaG9ydCI6WyJCRSJdLCJsb25nIjpbIkJFIl19LCJkYXlQZXJpb2RzIjp7ImFtIjoiQU0iLCJwbSI6IlBNIn19LCJjaGluZXNlIjp7'@; put 'Im1vbnRocyI6eyJuYXJyb3ciOlsiMSIsIjIiLCIzIiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiMTAiLCIxMSIsIjEyIl0sInNob3J0IjpbIk1vMSIsIk1vMiIsIk1vMyIsIk1vNCIsIk1vNSIsIk1vNiIsIk1vNyIsIk1vOCIsIk1vOSIsIk1vMTAiLCJNbzExIiwiTW8xMiJdLCJsb25nIjpb'@; put 'Ik1vbnRoMSIsIk1vbnRoMiIsIk1vbnRoMyIsIk1vbnRoNCIsIk1vbnRoNSIsIk1vbnRoNiIsIk1vbnRoNyIsIk1vbnRoOCIsIk1vbnRoOSIsIk1vbnRoMTAiLCJNb250aDExIiwiTW9udGgxMiJdfSwiZGF5cyI6eyJuYXJyb3ciOlsiUyIsIk0iLCJUIiwiVyIsIlQiLCJGIiwiUyJdLCJzaG9y'@; put 'dCI6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSwibG9uZyI6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdfSwiZGF5UGVyaW9kcyI6eyJhbSI6IkFNIiwicG0iOiJQTSJ9fSwi'@; put 'Y29wdGljIjp7Im1vbnRocyI6eyJuYXJyb3ciOlsiMSIsIjIiLCIzIiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiMTAiLCIxMSIsIjEyIiwiMTMiXSwic2hvcnQiOlsiVG91dCIsIkJhYmEiLCJIYXRvciIsIktpYWhrIiwiVG9iYSIsIkFtc2hpciIsIkJhcmFtaGF0IiwiQmFyYW1vdWRhIiwi'@; put 'QmFzaGFucyIsIlBhb25hIiwiRXBlcCIsIk1lc3JhIiwiTmFzaWUiXSwibG9uZyI6WyJUb3V0IiwiQmFiYSIsIkhhdG9yIiwiS2lhaGsiLCJUb2JhIiwiQW1zaGlyIiwiQmFyYW1oYXQiLCJCYXJhbW91ZGEiLCJCYXNoYW5zIiwiUGFvbmEiLCJFcGVwIiwiTWVzcmEiLCJOYXNpZSJdfSwiZGF5'@; put 'cyI6eyJuYXJyb3ciOlsiUyIsIk0iLCJUIiwiVyIsIlQiLCJGIiwiUyJdLCJzaG9ydCI6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSwibG9uZyI6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJT'@; put 'YXR1cmRheSJdfSwiZXJhcyI6eyJuYXJyb3ciOlsiRVJBMCIsIkVSQTEiXSwic2hvcnQiOlsiRVJBMCIsIkVSQTEiXSwibG9uZyI6WyJFUkEwIiwiRVJBMSJdfSwiZGF5UGVyaW9kcyI6eyJhbSI6IkFNIiwicG0iOiJQTSJ9fSwiZGFuZ2kiOnsibW9udGhzIjp7Im5hcnJvdyI6WyIxIiwiMiIs'@; put 'IjMiLCI0IiwiNSIsIjYiLCI3IiwiOCIsIjkiLCIxMCIsIjExIiwiMTIiXSwic2hvcnQiOlsiTW8xIiwiTW8yIiwiTW8zIiwiTW80IiwiTW81IiwiTW82IiwiTW83IiwiTW84IiwiTW85IiwiTW8xMCIsIk1vMTEiLCJNbzEyIl0sImxvbmciOlsiTW9udGgxIiwiTW9udGgyIiwiTW9udGgzIiwi'@; put 'TW9udGg0IiwiTW9udGg1IiwiTW9udGg2IiwiTW9udGg3IiwiTW9udGg4IiwiTW9udGg5IiwiTW9udGgxMCIsIk1vbnRoMTEiLCJNb250aDEyIl19LCJkYXlzIjp7Im5hcnJvdyI6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sInNob3J0IjpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIs'@; put 'IlRodSIsIkZyaSIsIlNhdCJdLCJsb25nIjpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LCJkYXlQZXJpb2RzIjp7ImFtIjoiQU0iLCJwbSI6IlBNIn19LCJldGhpb3BpYyI6eyJtb250aHMiOnsibmFycm93'@; put 'IjpbIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiwiOSIsIjEwIiwiMTEiLCIxMiIsIjEzIl0sInNob3J0IjpbIk1lc2tlcmVtIiwiVGVrZW10IiwiSGVkYXIiLCJUYWhzYXMiLCJUZXIiLCJZZWthdGl0IiwiTWVnYWJpdCIsIk1pYXppYSIsIkdlbmJvdCIsIlNlbmUiLCJIYW1sZSIs'@; put 'Ik5laGFzc2UiLCJQYWd1bWVuIl0sImxvbmciOlsiTWVza2VyZW0iLCJUZWtlbXQiLCJIZWRhciIsIlRhaHNhcyIsIlRlciIsIllla2F0aXQiLCJNZWdhYml0IiwiTWlhemlhIiwiR2VuYm90IiwiU2VuZSIsIkhhbWxlIiwiTmVoYXNzZSIsIlBhZ3VtZW4iXX0sImRheXMiOnsibmFycm93Ijpb'@; put 'IlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSwic2hvcnQiOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sImxvbmciOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sImVy'@; put 'YXMiOnsibmFycm93IjpbIkVSQTAiLCJFUkExIl0sInNob3J0IjpbIkVSQTAiLCJFUkExIl0sImxvbmciOlsiRVJBMCIsIkVSQTEiXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIsInBtIjoiUE0ifX0sImV0aGlvYWEiOnsibW9udGhzIjp7Im5hcnJvdyI6WyIxIiwiMiIsIjMiLCI0IiwiNSIs'@; put 'IjYiLCI3IiwiOCIsIjkiLCIxMCIsIjExIiwiMTIiLCIxMyJdLCJzaG9ydCI6WyJNZXNrZXJlbSIsIlRla2VtdCIsIkhlZGFyIiwiVGFoc2FzIiwiVGVyIiwiWWVrYXRpdCIsIk1lZ2FiaXQiLCJNaWF6aWEiLCJHZW5ib3QiLCJTZW5lIiwiSGFtbGUiLCJOZWhhc3NlIiwiUGFndW1lbiJdLCJs'@; put 'b25nIjpbIk1lc2tlcmVtIiwiVGVrZW10IiwiSGVkYXIiLCJUYWhzYXMiLCJUZXIiLCJZZWthdGl0IiwiTWVnYWJpdCIsIk1pYXppYSIsIkdlbmJvdCIsIlNlbmUiLCJIYW1sZSIsIk5laGFzc2UiLCJQYWd1bWVuIl19LCJkYXlzIjp7Im5hcnJvdyI6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYi'@; put 'LCJTIl0sInNob3J0IjpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLCJsb25nIjpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LCJlcmFzIjp7Im5hcnJvdyI6WyJFUkEwIl0s'@; put 'InNob3J0IjpbIkVSQTAiXSwibG9uZyI6WyJFUkEwIl19LCJkYXlQZXJpb2RzIjp7ImFtIjoiQU0iLCJwbSI6IlBNIn19LCJnZW5lcmljIjp7Im1vbnRocyI6eyJuYXJyb3ciOlsiMSIsIjIiLCIzIiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiMTAiLCIxMSIsIjEyIl0sInNob3J0IjpbIk0w'@; put 'MSIsIk0wMiIsIk0wMyIsIk0wNCIsIk0wNSIsIk0wNiIsIk0wNyIsIk0wOCIsIk0wOSIsIk0xMCIsIk0xMSIsIk0xMiJdLCJsb25nIjpbIk0wMSIsIk0wMiIsIk0wMyIsIk0wNCIsIk0wNSIsIk0wNiIsIk0wNyIsIk0wOCIsIk0wOSIsIk0xMCIsIk0xMSIsIk0xMiJdfSwiZGF5cyI6eyJuYXJy'@; put 'b3ciOlsiUyIsIk0iLCJUIiwiVyIsIlQiLCJGIiwiUyJdLCJzaG9ydCI6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSwibG9uZyI6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJd'@; put 'fSwiZXJhcyI6eyJuYXJyb3ciOlsiRVJBMCIsIkVSQTEiXSwic2hvcnQiOlsiRVJBMCIsIkVSQTEiXSwibG9uZyI6WyJFUkEwIiwiRVJBMSJdfSwiZGF5UGVyaW9kcyI6eyJhbSI6IkFNIiwicG0iOiJQTSJ9fSwiZ3JlZ29yeSI6eyJtb250aHMiOnsibmFycm93IjpbIkoiLCJGIiwiTSIsIkEi'@; put 'LCJNIiwiSiIsIkoiLCJBIiwiUyIsIk8iLCJOIiwiRCJdLCJzaG9ydCI6WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXSwibG9uZyI6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5'@; put 'IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdfSwiZGF5cyI6eyJuYXJyb3ciOlsiUyIsIk0iLCJUIiwiVyIsIlQiLCJGIiwiUyJdLCJzaG9ydCI6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJT'@; put 'YXQiXSwibG9uZyI6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdfSwiZXJhcyI6eyJuYXJyb3ciOlsiQiIsIkEiLCJCQ0UiLCJDRSJdLCJzaG9ydCI6WyJCQyIsIkFEIiwiQkNFIiwiQ0UiXSwibG9uZyI6WyJC'@; put 'ZWZvcmUgQ2hyaXN0IiwiQW5ubyBEb21pbmkiLCJCZWZvcmUgQ29tbW9uIEVyYSIsIkNvbW1vbiBFcmEiXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIsInBtIjoiUE0ifX0sImhlYnJldyI6eyJtb250aHMiOnsibmFycm93IjpbIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiwiOSIs'@; put 'IjEwIiwiMTEiLCIxMiIsIjEzIiwiNyJdLCJzaG9ydCI6WyJUaXNocmkiLCJIZXNodmFuIiwiS2lzbGV2IiwiVGV2ZXQiLCJTaGV2YXQiLCJBZGFyIEkiLCJBZGFyIiwiTmlzYW4iLCJJeWFyIiwiU2l2YW4iLCJUYW11eiIsIkF2IiwiRWx1bCIsIkFkYXIgSUkiXSwibG9uZyI6WyJUaXNocmki'@; put 'LCJIZXNodmFuIiwiS2lzbGV2IiwiVGV2ZXQiLCJTaGV2YXQiLCJBZGFyIEkiLCJBZGFyIiwiTmlzYW4iLCJJeWFyIiwiU2l2YW4iLCJUYW11eiIsIkF2IiwiRWx1bCIsIkFkYXIgSUkiXX0sImRheXMiOnsibmFycm93IjpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSwic2hvcnQiOlsi'@; put 'U3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sImxvbmciOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sImVyYXMiOnsibmFycm93IjpbIkFNIl0sInNob3J0IjpbIkFNIl0sImxv'@; put 'bmciOlsiQU0iXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIsInBtIjoiUE0ifX0sImluZGlhbiI6eyJtb250aHMiOnsibmFycm93IjpbIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiwiOSIsIjEwIiwiMTEiLCIxMiJdLCJzaG9ydCI6WyJDaGFpdHJhIiwiVmFpc2FraGEiLCJKeWFp'@; put 'c3RoYSIsIkFzYWRoYSIsIlNyYXZhbmEiLCJCaGFkcmEiLCJBc3ZpbmEiLCJLYXJ0aWthIiwiQWdyYWhheWFuYSIsIlBhdXNhIiwiTWFnaGEiLCJQaGFsZ3VuYSJdLCJsb25nIjpbIkNoYWl0cmEiLCJWYWlzYWtoYSIsIkp5YWlzdGhhIiwiQXNhZGhhIiwiU3JhdmFuYSIsIkJoYWRyYSIsIkFz'@; put 'dmluYSIsIkthcnRpa2EiLCJBZ3JhaGF5YW5hIiwiUGF1c2EiLCJNYWdoYSIsIlBoYWxndW5hIl19LCJkYXlzIjp7Im5hcnJvdyI6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sInNob3J0IjpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLCJsb25nIjpb'@; put 'IlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LCJlcmFzIjp7Im5hcnJvdyI6WyJTYWthIl0sInNob3J0IjpbIlNha2EiXSwibG9uZyI6WyJTYWthIl19LCJkYXlQZXJpb2RzIjp7ImFtIjoiQU0iLCJwbSI6IlBN'@; put 'In19LCJpc2xhbWljIjp7Im1vbnRocyI6eyJuYXJyb3ciOlsiMSIsIjIiLCIzIiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiMTAiLCIxMSIsIjEyIl0sInNob3J0IjpbIk11aC4iLCJTYWYuIiwiUmFiLiBJIiwiUmFiLiBJSSIsIkp1bS4gSSIsIkp1bS4gSUkiLCJSYWouIiwiU2hhLiIsIlJh'@; put 'bS4iLCJTaGF3LiIsIkRodVx1MDJiYmwtUS4iLCJEaHVcdTAyYmJsLUguIl0sImxvbmciOlsiTXVoYXJyYW0iLCJTYWZhciIsIlJhYmlcdTAyYmIgSSIsIlJhYmlcdTAyYmIgSUkiLCJKdW1hZGEgSSIsIkp1bWFkYSBJSSIsIlJhamFiIiwiU2hhXHUwMmJiYmFuIiwiUmFtYWRhbiIsIlNoYXd3'@; put 'YWwiLCJEaHVcdTAyYmJsLVFpXHUwMmJiZGFoIiwiRGh1XHUwMmJibC1IaWpqYWgiXX0sImRheXMiOnsibmFycm93IjpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSwic2hvcnQiOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sImxvbmciOlsiU3VuZGF5'@; put 'IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sImVyYXMiOnsibmFycm93IjpbIkFIIl0sInNob3J0IjpbIkFIIl0sImxvbmciOlsiQUgiXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIsInBtIjoiUE0ifX0sImlzbGFtaWNj'@; put 'Ijp7Im1vbnRocyI6eyJuYXJyb3ciOlsiMSIsIjIiLCIzIiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiMTAiLCIxMSIsIjEyIl0sInNob3J0IjpbIk11aC4iLCJTYWYuIiwiUmFiLiBJIiwiUmFiLiBJSSIsIkp1bS4gSSIsIkp1bS4gSUkiLCJSYWouIiwiU2hhLiIsIlJhbS4iLCJTaGF3LiIs'@; put 'IkRodVx1MDJiYmwtUS4iLCJEaHVcdTAyYmJsLUguIl0sImxvbmciOlsiTXVoYXJyYW0iLCJTYWZhciIsIlJhYmlcdTAyYmIgSSIsIlJhYmlcdTAyYmIgSUkiLCJKdW1hZGEgSSIsIkp1bWFkYSBJSSIsIlJhamFiIiwiU2hhXHUwMmJiYmFuIiwiUmFtYWRhbiIsIlNoYXd3YWwiLCJEaHVcdTAy'@; put 'YmJsLVFpXHUwMmJiZGFoIiwiRGh1XHUwMmJibC1IaWpqYWgiXX0sImRheXMiOnsibmFycm93IjpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSwic2hvcnQiOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sImxvbmciOlsiU3VuZGF5IiwiTW9uZGF5Iiwi'@; put 'VHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sImVyYXMiOnsibmFycm93IjpbIkFIIl0sInNob3J0IjpbIkFIIl0sImxvbmciOlsiQUgiXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIsInBtIjoiUE0ifX0sImphcGFuZXNlIjp7Im1vbnRocyI6'@; put 'eyJuYXJyb3ciOlsiSiIsIkYiLCJNIiwiQSIsIk0iLCJKIiwiSiIsIkEiLCJTIiwiTyIsIk4iLCJEIl0sInNob3J0IjpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLCJsb25nIjpbIkphbnVhcnkiLCJGZWJy'@; put 'dWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl19LCJkYXlzIjp7Im5hcnJvdyI6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sInNob3J0IjpbIlN1biIsIk1vbiIs'@; put 'IlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLCJsb25nIjpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LCJlcmFzIjp7Im5hcnJvdyI6WyJUYWlrYSAoNjQ1XHUyMDEzNjUwKSIsIkhha3VjaGkgKDY1'@; put 'MFx1MjAxMzY3MSkiLCJIYWt1aFx1MDE0ZCAoNjcyXHUyMDEzNjg2KSIsIlNodWNoXHUwMTRkICg2ODZcdTIwMTM3MDEpIiwiVGFpaFx1MDE0ZCAoNzAxXHUyMDEzNzA0KSIsIktlaXVuICg3MDRcdTIwMTM3MDgpIiwiV2FkXHUwMTRkICg3MDhcdTIwMTM3MTUpIiwiUmVpa2kgKDcxNVx1MjAx'@; put 'MzcxNykiLCJZXHUwMTRkclx1MDE0ZCAoNzE3XHUyMDEzNzI0KSIsIkppbmtpICg3MjRcdTIwMTM3MjkpIiwiVGVucHlcdTAxNGQgKDcyOVx1MjAxMzc0OSkiLCJUZW5weVx1MDE0ZC1rYW1wXHUwMTRkICg3NDktNzQ5KSIsIlRlbnB5XHUwMTRkLXNoXHUwMTRkaFx1MDE0ZCAoNzQ5LTc1Nyki'@; put 'LCJUZW5weVx1MDE0ZC1oXHUwMTRkamkgKDc1Ny03NjUpIiwiVGVucHlcdTAxNGQtamluZ28gKDc2NS03NjcpIiwiSmluZ28ta2VpdW4gKDc2Ny03NzApIiwiSFx1MDE0ZGtpICg3NzBcdTIwMTM3ODApIiwiVGVuLVx1MDE0ZCAoNzgxLTc4MikiLCJFbnJ5YWt1ICg3ODJcdTIwMTM4MDYpIiwi'@; put 'RGFpZFx1MDE0ZCAoODA2XHUyMDEzODEwKSIsIktcdTAxNGRuaW4gKDgxMFx1MjAxMzgyNCkiLCJUZW5jaFx1MDE0ZCAoODI0XHUyMDEzODM0KSIsIkpcdTAxNGR3YSAoODM0XHUyMDEzODQ4KSIsIkthalx1MDE0ZCAoODQ4XHUyMDEzODUxKSIsIk5pbmp1ICg4NTFcdTIwMTM4NTQpIiwiU2Fp'@; put 'a1x1MDE0ZCAoODU0XHUyMDEzODU3KSIsIlRlbi1hbiAoODU3LTg1OSkiLCJKXHUwMTRkZ2FuICg4NTlcdTIwMTM4NzcpIiwiR2FuZ3lcdTAxNGQgKDg3N1x1MjAxMzg4NSkiLCJOaW5uYSAoODg1XHUyMDEzODg5KSIsIkthbnB5XHUwMTRkICg4ODlcdTIwMTM4OTgpIiwiU2hcdTAxNGR0YWkg'@; put 'KDg5OFx1MjAxMzkwMSkiLCJFbmdpICg5MDFcdTIwMTM5MjMpIiwiRW5jaFx1MDE0ZCAoOTIzXHUyMDEzOTMxKSIsIkpcdTAxNGRoZWkgKDkzMVx1MjAxMzkzOCkiLCJUZW5neVx1MDE0ZCAoOTM4XHUyMDEzOTQ3KSIsIlRlbnJ5YWt1ICg5NDdcdTIwMTM5NTcpIiwiVGVudG9rdSAoOTU3XHUy'@; put 'MDEzOTYxKSIsIlx1MDE0Y3dhICg5NjFcdTIwMTM5NjQpIiwiS1x1MDE0ZGhcdTAxNGQgKDk2NFx1MjAxMzk2OCkiLCJBbm5hICg5NjhcdTIwMTM5NzApIiwiVGVucm9rdSAoOTcwXHUyMDEzOTczKSIsIlRlblx1MjAxOWVuICg5NzNcdTIwMTM5NzYpIiwiSlx1MDE0ZGdlbiAoOTc2XHUyMDEz'@; put 'OTc4KSIsIlRlbmdlbiAoOTc4XHUyMDEzOTgzKSIsIkVpa2FuICg5ODNcdTIwMTM5ODUpIiwiS2FubmEgKDk4NVx1MjAxMzk4NykiLCJFaWVuICg5ODdcdTIwMTM5ODkpIiwiRWlzbyAoOTg5XHUyMDEzOTkwKSIsIlNoXHUwMTRkcnlha3UgKDk5MFx1MjAxMzk5NSkiLCJDaFx1MDE0ZHRva3Ug'@; put 'KDk5NVx1MjAxMzk5OSkiLCJDaFx1MDE0ZGhcdTAxNGQgKDk5OVx1MjAxMzEwMDQpIiwiS2Fua1x1MDE0ZCAoMTAwNFx1MjAxMzEwMTIpIiwiQ2hcdTAxNGR3YSAoMTAxMlx1MjAxMzEwMTcpIiwiS2FubmluICgxMDE3XHUyMDEzMTAyMSkiLCJKaWFuICgxMDIxXHUyMDEzMTAyNCkiLCJNYW5q'@; put 'dSAoMTAyNFx1MjAxMzEwMjgpIiwiQ2hcdTAxNGRnZW4gKDEwMjhcdTIwMTMxMDM3KSIsIkNoXHUwMTRkcnlha3UgKDEwMzdcdTIwMTMxMDQwKSIsIkNoXHUwMTRka3lcdTAxNmIgKDEwNDBcdTIwMTMxMDQ0KSIsIkthbnRva3UgKDEwNDRcdTIwMTMxMDQ2KSIsIkVpc2hcdTAxNGQgKDEwNDZc'@; put 'dTIwMTMxMDUzKSIsIlRlbmdpICgxMDUzXHUyMDEzMTA1OCkiLCJLXHUwMTRkaGVpICgxMDU4XHUyMDEzMTA2NSkiLCJKaXJ5YWt1ICgxMDY1XHUyMDEzMTA2OSkiLCJFbmt5XHUwMTZiICgxMDY5XHUyMDEzMTA3NCkiLCJTaFx1MDE0ZGhvICgxMDc0XHUyMDEzMTA3NykiLCJTaFx1MDE0ZHJ5'@; put 'YWt1ICgxMDc3XHUyMDEzMTA4MSkiLCJFaWhcdTAxNGQgKDEwODFcdTIwMTMxMDg0KSIsIlx1MDE0Y3Rva3UgKDEwODRcdTIwMTMxMDg3KSIsIkthbmppICgxMDg3XHUyMDEzMTA5NCkiLCJLYWhcdTAxNGQgKDEwOTRcdTIwMTMxMDk2KSIsIkVpY2hcdTAxNGQgKDEwOTZcdTIwMTMxMDk3KSIs'@; put 'IkpcdTAxNGR0b2t1ICgxMDk3XHUyMDEzMTA5OSkiLCJLXHUwMTRkd2EgKDEwOTlcdTIwMTMxMTA0KSIsIkNoXHUwMTRkamkgKDExMDRcdTIwMTMxMTA2KSIsIkthc2hcdTAxNGQgKDExMDZcdTIwMTMxMTA4KSIsIlRlbm5pbiAoMTEwOFx1MjAxMzExMTApIiwiVGVuLWVpICgxMTEwLTExMTMp'@; put 'IiwiRWlreVx1MDE2YiAoMTExM1x1MjAxMzExMTgpIiwiR2VuXHUyMDE5ZWkgKDExMThcdTIwMTMxMTIwKSIsIkhcdTAxNGRhbiAoMTEyMFx1MjAxMzExMjQpIiwiVGVuamkgKDExMjRcdTIwMTMxMTI2KSIsIkRhaWppICgxMTI2XHUyMDEzMTEzMSkiLCJUZW5zaFx1MDE0ZCAoMTEzMVx1MjAx'@; put 'MzExMzIpIiwiQ2hcdTAxNGRzaFx1MDE0ZCAoMTEzMlx1MjAxMzExMzUpIiwiSFx1MDE0ZGVuICgxMTM1XHUyMDEzMTE0MSkiLCJFaWppICgxMTQxXHUyMDEzMTE0MikiLCJLXHUwMTRkamkgKDExNDJcdTIwMTMxMTQ0KSIsIlRlblx1MjAxOXlcdTAxNGQgKDExNDRcdTIwMTMxMTQ1KSIsIkt5'@; put 'XHUwMTZiYW4gKDExNDVcdTIwMTMxMTUxKSIsIk5pbnBlaSAoMTE1MVx1MjAxMzExNTQpIiwiS3lcdTAxNmJqdSAoMTE1NFx1MjAxMzExNTYpIiwiSFx1MDE0ZGdlbiAoMTE1Nlx1MjAxMzExNTkpIiwiSGVpamkgKDExNTlcdTIwMTMxMTYwKSIsIkVpcnlha3UgKDExNjBcdTIwMTMxMTYxKSIs'@; put 'Ilx1MDE0Y2hvICgxMTYxXHUyMDEzMTE2MykiLCJDaFx1MDE0ZGthbiAoMTE2M1x1MjAxMzExNjUpIiwiRWltYW4gKDExNjVcdTIwMTMxMTY2KSIsIk5pblx1MjAxOWFuICgxMTY2XHUyMDEzMTE2OSkiLCJLYVx1MDE0ZCAoMTE2OVx1MjAxMzExNzEpIiwiU2hcdTAxNGRhbiAoMTE3MVx1MjAx'@; put 'MzExNzUpIiwiQW5nZW4gKDExNzVcdTIwMTMxMTc3KSIsIkppc2hcdTAxNGQgKDExNzdcdTIwMTMxMTgxKSIsIllcdTAxNGR3YSAoMTE4MVx1MjAxMzExODIpIiwiSnVlaSAoMTE4Mlx1MjAxMzExODQpIiwiR2Vucnlha3UgKDExODRcdTIwMTMxMTg1KSIsIkJ1bmppICgxMTg1XHUyMDEzMTE5'@; put 'MCkiLCJLZW5reVx1MDE2YiAoMTE5MFx1MjAxMzExOTkpIiwiU2hcdTAxNGRqaSAoMTE5OVx1MjAxMzEyMDEpIiwiS2VubmluICgxMjAxXHUyMDEzMTIwNCkiLCJHZW5reVx1MDE2YiAoMTIwNFx1MjAxMzEyMDYpIiwiS2VuXHUyMDE5ZWkgKDEyMDZcdTIwMTMxMjA3KSIsIkpcdTAxNGRnZW4g'@; put 'KDEyMDdcdTIwMTMxMjExKSIsIktlbnJ5YWt1ICgxMjExXHUyMDEzMTIxMykiLCJLZW5wXHUwMTRkICgxMjEzXHUyMDEzMTIxOSkiLCJKXHUwMTRka3lcdTAxNmIgKDEyMTlcdTIwMTMxMjIyKSIsIkpcdTAxNGRcdTAxNGQgKDEyMjJcdTIwMTMxMjI0KSIsIkdlbm5pbiAoMTIyNFx1MjAxMzEy'@; put 'MjUpIiwiS2Fyb2t1ICgxMjI1XHUyMDEzMTIyNykiLCJBbnRlaSAoMTIyN1x1MjAxMzEyMjkpIiwiS2Fua2kgKDEyMjlcdTIwMTMxMjMyKSIsIkpcdTAxNGRlaSAoMTIzMlx1MjAxMzEyMzMpIiwiVGVucHVrdSAoMTIzM1x1MjAxMzEyMzQpIiwiQnVucnlha3UgKDEyMzRcdTIwMTMxMjM1KSIs'@; put 'IkthdGVpICgxMjM1XHUyMDEzMTIzOCkiLCJSeWFrdW5pbiAoMTIzOFx1MjAxMzEyMzkpIiwiRW5cdTIwMTlcdTAxNGQgKDEyMzlcdTIwMTMxMjQwKSIsIk5pbmppICgxMjQwXHUyMDEzMTI0MykiLCJLYW5nZW4gKDEyNDNcdTIwMTMxMjQ3KSIsIkhcdTAxNGRqaSAoMTI0N1x1MjAxMzEyNDkp'@; put 'IiwiS2VuY2hcdTAxNGQgKDEyNDlcdTIwMTMxMjU2KSIsIktcdTAxNGRnZW4gKDEyNTZcdTIwMTMxMjU3KSIsIlNoXHUwMTRka2EgKDEyNTdcdTIwMTMxMjU5KSIsIlNoXHUwMTRkZ2VuICgxMjU5XHUyMDEzMTI2MCkiLCJCdW5cdTIwMTlcdTAxNGQgKDEyNjBcdTIwMTMxMjYxKSIsIktcdTAx'@; put 'NGRjaFx1MDE0ZCAoMTI2MVx1MjAxMzEyNjQpIiwiQnVuXHUyMDE5ZWkgKDEyNjRcdTIwMTMxMjc1KSIsIktlbmppICgxMjc1XHUyMDEzMTI3OCkiLCJLXHUwMTRkYW4gKDEyNzhcdTIwMTMxMjg4KSIsIlNoXHUwMTRkXHUwMTRkICgxMjg4XHUyMDEzMTI5MykiLCJFaW5pbiAoMTI5M1x1MjAx'@; put 'MzEyOTkpIiwiU2hcdTAxNGRhbiAoMTI5OVx1MjAxMzEzMDIpIiwiS2VuZ2VuICgxMzAyXHUyMDEzMTMwMykiLCJLYWdlbiAoMTMwM1x1MjAxMzEzMDYpIiwiVG9rdWppICgxMzA2XHUyMDEzMTMwOCkiLCJFbmt5XHUwMTRkICgxMzA4XHUyMDEzMTMxMSkiLCJcdTAxNGNjaFx1MDE0ZCAoMTMx'@; put 'MVx1MjAxMzEzMTIpIiwiU2hcdTAxNGR3YSAoMTMxMlx1MjAxMzEzMTcpIiwiQnVucFx1MDE0ZCAoMTMxN1x1MjAxMzEzMTkpIiwiR2VuXHUwMTRkICgxMzE5XHUyMDEzMTMyMSkiLCJHZW5rXHUwMTRkICgxMzIxXHUyMDEzMTMyNCkiLCJTaFx1MDE0ZGNoXHUwMTZiICgxMzI0XHUyMDEzMTMy'@; put 'NikiLCJLYXJ5YWt1ICgxMzI2XHUyMDEzMTMyOSkiLCJHZW50b2t1ICgxMzI5XHUyMDEzMTMzMSkiLCJHZW5rXHUwMTRkICgxMzMxXHUyMDEzMTMzNCkiLCJLZW5tdSAoMTMzNFx1MjAxMzEzMzYpIiwiRW5nZW4gKDEzMzZcdTIwMTMxMzQwKSIsIktcdTAxNGRrb2t1ICgxMzQwXHUyMDEzMTM0'@; put 'NikiLCJTaFx1MDE0ZGhlaSAoMTM0Nlx1MjAxMzEzNzApIiwiS2VudG9rdSAoMTM3MFx1MjAxMzEzNzIpIiwiQnVuY2hcdTAxNmIgKDEzNzJcdTIwMTMxMzc1KSIsIlRlbmp1ICgxMzc1XHUyMDEzMTM3OSkiLCJLXHUwMTRkcnlha3UgKDEzNzlcdTIwMTMxMzgxKSIsIktcdTAxNGR3YSAoMTM4'@; put 'MVx1MjAxMzEzODQpIiwiR2VuY2hcdTAxNmIgKDEzODRcdTIwMTMxMzkyKSIsIk1laXRva3UgKDEzODRcdTIwMTMxMzg3KSIsIktha2VpICgxMzg3XHUyMDEzMTM4OSkiLCJLXHUwMTRkXHUwMTRkICgxMzg5XHUyMDEzMTM5MCkiLCJNZWl0b2t1ICgxMzkwXHUyMDEzMTM5NCkiLCJcdTAxNGNl'@; put 'aSAoMTM5NFx1MjAxMzE0MjgpIiwiU2hcdTAxNGRjaFx1MDE0ZCAoMTQyOFx1MjAxMzE0MjkpIiwiRWlreVx1MDE0ZCAoMTQyOVx1MjAxMzE0NDEpIiwiS2FraXRzdSAoMTQ0MVx1MjAxMzE0NDQpIiwiQnVuXHUyMDE5YW4gKDE0NDRcdTIwMTMxNDQ5KSIsIkhcdTAxNGR0b2t1ICgxNDQ5XHUy'@; put 'MDEzMTQ1MikiLCJLeVx1MDE0ZHRva3UgKDE0NTJcdTIwMTMxNDU1KSIsIktcdTAxNGRzaFx1MDE0ZCAoMTQ1NVx1MjAxMzE0NTcpIiwiQ2hcdTAxNGRyb2t1ICgxNDU3XHUyMDEzMTQ2MCkiLCJLYW5zaFx1MDE0ZCAoMTQ2MFx1MjAxMzE0NjYpIiwiQnVuc2hcdTAxNGQgKDE0NjZcdTIwMTMx'@; put 'NDY3KSIsIlx1MDE0Y25pbiAoMTQ2N1x1MjAxMzE0NjkpIiwiQnVubWVpICgxNDY5XHUyMDEzMTQ4NykiLCJDaFx1MDE0ZGt5XHUwMTRkICgxNDg3XHUyMDEzMTQ4OSkiLCJFbnRva3UgKDE0ODlcdTIwMTMxNDkyKSIsIk1laVx1MDE0ZCAoMTQ5Mlx1MjAxMzE1MDEpIiwiQnVua2kgKDE1MDFc'@; put 'dTIwMTMxNTA0KSIsIkVpc2hcdTAxNGQgKDE1MDRcdTIwMTMxNTIxKSIsIlRhaWVpICgxNTIxXHUyMDEzMTUyOCkiLCJLeVx1MDE0ZHJva3UgKDE1MjhcdTIwMTMxNTMyKSIsIlRlbmJ1biAoMTUzMlx1MjAxMzE1NTUpIiwiS1x1MDE0ZGppICgxNTU1XHUyMDEzMTU1OCkiLCJFaXJva3UgKDE1'@; put 'NThcdTIwMTMxNTcwKSIsIkdlbmtpICgxNTcwXHUyMDEzMTU3MykiLCJUZW5zaFx1MDE0ZCAoMTU3M1x1MjAxMzE1OTIpIiwiQnVucm9rdSAoMTU5Mlx1MjAxMzE1OTYpIiwiS2VpY2hcdTAxNGQgKDE1OTZcdTIwMTMxNjE1KSIsIkdlbm5hICgxNjE1XHUyMDEzMTYyNCkiLCJLYW5cdTIwMTll'@; put 'aSAoMTYyNFx1MjAxMzE2NDQpIiwiU2hcdTAxNGRobyAoMTY0NFx1MjAxMzE2NDgpIiwiS2VpYW4gKDE2NDhcdTIwMTMxNjUyKSIsIkpcdTAxNGRcdTAxNGQgKDE2NTJcdTIwMTMxNjU1KSIsIk1laXJla2kgKDE2NTVcdTIwMTMxNjU4KSIsIk1hbmppICgxNjU4XHUyMDEzMTY2MSkiLCJLYW5i'@; put 'dW4gKDE2NjFcdTIwMTMxNjczKSIsIkVucFx1MDE0ZCAoMTY3M1x1MjAxMzE2ODEpIiwiVGVubmEgKDE2ODFcdTIwMTMxNjg0KSIsIkpcdTAxNGRreVx1MDE0ZCAoMTY4NFx1MjAxMzE2ODgpIiwiR2Vucm9rdSAoMTY4OFx1MjAxMzE3MDQpIiwiSFx1MDE0ZGVpICgxNzA0XHUyMDEzMTcxMSki'@; put 'LCJTaFx1MDE0ZHRva3UgKDE3MTFcdTIwMTMxNzE2KSIsIkt5XHUwMTRkaFx1MDE0ZCAoMTcxNlx1MjAxMzE3MzYpIiwiR2VuYnVuICgxNzM2XHUyMDEzMTc0MSkiLCJLYW5wXHUwMTRkICgxNzQxXHUyMDEzMTc0NCkiLCJFbmt5XHUwMTRkICgxNzQ0XHUyMDEzMTc0OCkiLCJLYW5cdTIwMTll'@; put 'biAoMTc0OFx1MjAxMzE3NTEpIiwiSFx1MDE0ZHJla2kgKDE3NTFcdTIwMTMxNzY0KSIsIk1laXdhICgxNzY0XHUyMDEzMTc3MikiLCJBblx1MjAxOWVpICgxNzcyXHUyMDEzMTc4MSkiLCJUZW5tZWkgKDE3ODFcdTIwMTMxNzg5KSIsIkthbnNlaSAoMTc4OVx1MjAxMzE4MDEpIiwiS3lcdTAx'@; put 'NGR3YSAoMTgwMVx1MjAxMzE4MDQpIiwiQnVua2EgKDE4MDRcdTIwMTMxODE4KSIsIkJ1bnNlaSAoMTgxOFx1MjAxMzE4MzApIiwiVGVucFx1MDE0ZCAoMTgzMFx1MjAxMzE4NDQpIiwiS1x1MDE0ZGthICgxODQ0XHUyMDEzMTg0OCkiLCJLYWVpICgxODQ4XHUyMDEzMTg1NCkiLCJBbnNlaSAo'@; put 'MTg1NFx1MjAxMzE4NjApIiwiTWFuXHUyMDE5ZW4gKDE4NjBcdTIwMTMxODYxKSIsIkJ1bmt5XHUwMTZiICgxODYxXHUyMDEzMTg2NCkiLCJHZW5qaSAoMTg2NFx1MjAxMzE4NjUpIiwiS2VpXHUwMTRkICgxODY1XHUyMDEzMTg2OCkiLCJNIiwiVCIsIlMiLCJIIl0sInNob3J0IjpbIlRhaWth'@; put 'ICg2NDVcdTIwMTM2NTApIiwiSGFrdWNoaSAoNjUwXHUyMDEzNjcxKSIsIkhha3VoXHUwMTRkICg2NzJcdTIwMTM2ODYpIiwiU2h1Y2hcdTAxNGQgKDY4Nlx1MjAxMzcwMSkiLCJUYWloXHUwMTRkICg3MDFcdTIwMTM3MDQpIiwiS2VpdW4gKDcwNFx1MjAxMzcwOCkiLCJXYWRcdTAxNGQgKDcw'@; put 'OFx1MjAxMzcxNSkiLCJSZWlraSAoNzE1XHUyMDEzNzE3KSIsIllcdTAxNGRyXHUwMTRkICg3MTdcdTIwMTM3MjQpIiwiSmlua2kgKDcyNFx1MjAxMzcyOSkiLCJUZW5weVx1MDE0ZCAoNzI5XHUyMDEzNzQ5KSIsIlRlbnB5XHUwMTRkLWthbXBcdTAxNGQgKDc0OS03NDkpIiwiVGVucHlcdTAx'@; put 'NGQtc2hcdTAxNGRoXHUwMTRkICg3NDktNzU3KSIsIlRlbnB5XHUwMTRkLWhcdTAxNGRqaSAoNzU3LTc2NSkiLCJUZW5weVx1MDE0ZC1qaW5nbyAoNzY1LTc2NykiLCJKaW5nby1rZWl1biAoNzY3LTc3MCkiLCJIXHUwMTRka2kgKDc3MFx1MjAxMzc4MCkiLCJUZW4tXHUwMTRkICg3ODEtNzgy'@; put 'KSIsIkVucnlha3UgKDc4Mlx1MjAxMzgwNikiLCJEYWlkXHUwMTRkICg4MDZcdTIwMTM4MTApIiwiS1x1MDE0ZG5pbiAoODEwXHUyMDEzODI0KSIsIlRlbmNoXHUwMTRkICg4MjRcdTIwMTM4MzQpIiwiSlx1MDE0ZHdhICg4MzRcdTIwMTM4NDgpIiwiS2FqXHUwMTRkICg4NDhcdTIwMTM4NTEp'@; put 'IiwiTmluanUgKDg1MVx1MjAxMzg1NCkiLCJTYWlrXHUwMTRkICg4NTRcdTIwMTM4NTcpIiwiVGVuLWFuICg4NTctODU5KSIsIkpcdTAxNGRnYW4gKDg1OVx1MjAxMzg3NykiLCJHYW5neVx1MDE0ZCAoODc3XHUyMDEzODg1KSIsIk5pbm5hICg4ODVcdTIwMTM4ODkpIiwiS2FucHlcdTAxNGQg'@; put 'KDg4OVx1MjAxMzg5OCkiLCJTaFx1MDE0ZHRhaSAoODk4XHUyMDEzOTAxKSIsIkVuZ2kgKDkwMVx1MjAxMzkyMykiLCJFbmNoXHUwMTRkICg5MjNcdTIwMTM5MzEpIiwiSlx1MDE0ZGhlaSAoOTMxXHUyMDEzOTM4KSIsIlRlbmd5XHUwMTRkICg5MzhcdTIwMTM5NDcpIiwiVGVucnlha3UgKDk0'@; put 'N1x1MjAxMzk1NykiLCJUZW50b2t1ICg5NTdcdTIwMTM5NjEpIiwiXHUwMTRjd2EgKDk2MVx1MjAxMzk2NCkiLCJLXHUwMTRkaFx1MDE0ZCAoOTY0XHUyMDEzOTY4KSIsIkFubmEgKDk2OFx1MjAxMzk3MCkiLCJUZW5yb2t1ICg5NzBcdTIwMTM5NzMpIiwiVGVuXHUyMDE5ZW4gKDk3M1x1MjAx'@; put 'Mzk3NikiLCJKXHUwMTRkZ2VuICg5NzZcdTIwMTM5NzgpIiwiVGVuZ2VuICg5NzhcdTIwMTM5ODMpIiwiRWlrYW4gKDk4M1x1MjAxMzk4NSkiLCJLYW5uYSAoOTg1XHUyMDEzOTg3KSIsIkVpZW4gKDk4N1x1MjAxMzk4OSkiLCJFaXNvICg5ODlcdTIwMTM5OTApIiwiU2hcdTAxNGRyeWFrdSAo'@; put 'OTkwXHUyMDEzOTk1KSIsIkNoXHUwMTRkdG9rdSAoOTk1XHUyMDEzOTk5KSIsIkNoXHUwMTRkaFx1MDE0ZCAoOTk5XHUyMDEzMTAwNCkiLCJLYW5rXHUwMTRkICgxMDA0XHUyMDEzMTAxMikiLCJDaFx1MDE0ZHdhICgxMDEyXHUyMDEzMTAxNykiLCJLYW5uaW4gKDEwMTdcdTIwMTMxMDIxKSIs'@; put 'IkppYW4gKDEwMjFcdTIwMTMxMDI0KSIsIk1hbmp1ICgxMDI0XHUyMDEzMTAyOCkiLCJDaFx1MDE0ZGdlbiAoMTAyOFx1MjAxMzEwMzcpIiwiQ2hcdTAxNGRyeWFrdSAoMTAzN1x1MjAxMzEwNDApIiwiQ2hcdTAxNGRreVx1MDE2YiAoMTA0MFx1MjAxMzEwNDQpIiwiS2FudG9rdSAoMTA0NFx1'@; put 'MjAxMzEwNDYpIiwiRWlzaFx1MDE0ZCAoMTA0Nlx1MjAxMzEwNTMpIiwiVGVuZ2kgKDEwNTNcdTIwMTMxMDU4KSIsIktcdTAxNGRoZWkgKDEwNThcdTIwMTMxMDY1KSIsIkppcnlha3UgKDEwNjVcdTIwMTMxMDY5KSIsIkVua3lcdTAxNmIgKDEwNjlcdTIwMTMxMDc0KSIsIlNoXHUwMTRkaG8g'@; put 'KDEwNzRcdTIwMTMxMDc3KSIsIlNoXHUwMTRkcnlha3UgKDEwNzdcdTIwMTMxMDgxKSIsIkVpaFx1MDE0ZCAoMTA4MVx1MjAxMzEwODQpIiwiXHUwMTRjdG9rdSAoMTA4NFx1MjAxMzEwODcpIiwiS2FuamkgKDEwODdcdTIwMTMxMDk0KSIsIkthaFx1MDE0ZCAoMTA5NFx1MjAxMzEwOTYpIiwi'@; put 'RWljaFx1MDE0ZCAoMTA5Nlx1MjAxMzEwOTcpIiwiSlx1MDE0ZHRva3UgKDEwOTdcdTIwMTMxMDk5KSIsIktcdTAxNGR3YSAoMTA5OVx1MjAxMzExMDQpIiwiQ2hcdTAxNGRqaSAoMTEwNFx1MjAxMzExMDYpIiwiS2FzaFx1MDE0ZCAoMTEwNlx1MjAxMzExMDgpIiwiVGVubmluICgxMTA4XHUy'@; put 'MDEzMTExMCkiLCJUZW4tZWkgKDExMTAtMTExMykiLCJFaWt5XHUwMTZiICgxMTEzXHUyMDEzMTExOCkiLCJHZW5cdTIwMTllaSAoMTExOFx1MjAxMzExMjApIiwiSFx1MDE0ZGFuICgxMTIwXHUyMDEzMTEyNCkiLCJUZW5qaSAoMTEyNFx1MjAxMzExMjYpIiwiRGFpamkgKDExMjZcdTIwMTMx'@; put 'MTMxKSIsIlRlbnNoXHUwMTRkICgxMTMxXHUyMDEzMTEzMikiLCJDaFx1MDE0ZHNoXHUwMTRkICgxMTMyXHUyMDEzMTEzNSkiLCJIXHUwMTRkZW4gKDExMzVcdTIwMTMxMTQxKSIsIkVpamkgKDExNDFcdTIwMTMxMTQyKSIsIktcdTAxNGRqaSAoMTE0Mlx1MjAxMzExNDQpIiwiVGVuXHUyMDE5'@; put 'eVx1MDE0ZCAoMTE0NFx1MjAxMzExNDUpIiwiS3lcdTAxNmJhbiAoMTE0NVx1MjAxMzExNTEpIiwiTmlucGVpICgxMTUxXHUyMDEzMTE1NCkiLCJLeVx1MDE2Ymp1ICgxMTU0XHUyMDEzMTE1NikiLCJIXHUwMTRkZ2VuICgxMTU2XHUyMDEzMTE1OSkiLCJIZWlqaSAoMTE1OVx1MjAxMzExNjAp'@; put 'IiwiRWlyeWFrdSAoMTE2MFx1MjAxMzExNjEpIiwiXHUwMTRjaG8gKDExNjFcdTIwMTMxMTYzKSIsIkNoXHUwMTRka2FuICgxMTYzXHUyMDEzMTE2NSkiLCJFaW1hbiAoMTE2NVx1MjAxMzExNjYpIiwiTmluXHUyMDE5YW4gKDExNjZcdTIwMTMxMTY5KSIsIkthXHUwMTRkICgxMTY5XHUyMDEz'@; put 'MTE3MSkiLCJTaFx1MDE0ZGFuICgxMTcxXHUyMDEzMTE3NSkiLCJBbmdlbiAoMTE3NVx1MjAxMzExNzcpIiwiSmlzaFx1MDE0ZCAoMTE3N1x1MjAxMzExODEpIiwiWVx1MDE0ZHdhICgxMTgxXHUyMDEzMTE4MikiLCJKdWVpICgxMTgyXHUyMDEzMTE4NCkiLCJHZW5yeWFrdSAoMTE4NFx1MjAx'@; put 'MzExODUpIiwiQnVuamkgKDExODVcdTIwMTMxMTkwKSIsIktlbmt5XHUwMTZiICgxMTkwXHUyMDEzMTE5OSkiLCJTaFx1MDE0ZGppICgxMTk5XHUyMDEzMTIwMSkiLCJLZW5uaW4gKDEyMDFcdTIwMTMxMjA0KSIsIkdlbmt5XHUwMTZiICgxMjA0XHUyMDEzMTIwNikiLCJLZW5cdTIwMTllaSAo'@; put 'MTIwNlx1MjAxMzEyMDcpIiwiSlx1MDE0ZGdlbiAoMTIwN1x1MjAxMzEyMTEpIiwiS2Vucnlha3UgKDEyMTFcdTIwMTMxMjEzKSIsIktlbnBcdTAxNGQgKDEyMTNcdTIwMTMxMjE5KSIsIkpcdTAxNGRreVx1MDE2YiAoMTIxOVx1MjAxMzEyMjIpIiwiSlx1MDE0ZFx1MDE0ZCAoMTIyMlx1MjAx'@; put 'MzEyMjQpIiwiR2VubmluICgxMjI0XHUyMDEzMTIyNSkiLCJLYXJva3UgKDEyMjVcdTIwMTMxMjI3KSIsIkFudGVpICgxMjI3XHUyMDEzMTIyOSkiLCJLYW5raSAoMTIyOVx1MjAxMzEyMzIpIiwiSlx1MDE0ZGVpICgxMjMyXHUyMDEzMTIzMykiLCJUZW5wdWt1ICgxMjMzXHUyMDEzMTIzNCki'@; put 'LCJCdW5yeWFrdSAoMTIzNFx1MjAxMzEyMzUpIiwiS2F0ZWkgKDEyMzVcdTIwMTMxMjM4KSIsIlJ5YWt1bmluICgxMjM4XHUyMDEzMTIzOSkiLCJFblx1MjAxOVx1MDE0ZCAoMTIzOVx1MjAxMzEyNDApIiwiTmluamkgKDEyNDBcdTIwMTMxMjQzKSIsIkthbmdlbiAoMTI0M1x1MjAxMzEyNDcp'@; put 'IiwiSFx1MDE0ZGppICgxMjQ3XHUyMDEzMTI0OSkiLCJLZW5jaFx1MDE0ZCAoMTI0OVx1MjAxMzEyNTYpIiwiS1x1MDE0ZGdlbiAoMTI1Nlx1MjAxMzEyNTcpIiwiU2hcdTAxNGRrYSAoMTI1N1x1MjAxMzEyNTkpIiwiU2hcdTAxNGRnZW4gKDEyNTlcdTIwMTMxMjYwKSIsIkJ1blx1MjAxOVx1'@; put 'MDE0ZCAoMTI2MFx1MjAxMzEyNjEpIiwiS1x1MDE0ZGNoXHUwMTRkICgxMjYxXHUyMDEzMTI2NCkiLCJCdW5cdTIwMTllaSAoMTI2NFx1MjAxMzEyNzUpIiwiS2VuamkgKDEyNzVcdTIwMTMxMjc4KSIsIktcdTAxNGRhbiAoMTI3OFx1MjAxMzEyODgpIiwiU2hcdTAxNGRcdTAxNGQgKDEyODhc'@; put 'dTIwMTMxMjkzKSIsIkVpbmluICgxMjkzXHUyMDEzMTI5OSkiLCJTaFx1MDE0ZGFuICgxMjk5XHUyMDEzMTMwMikiLCJLZW5nZW4gKDEzMDJcdTIwMTMxMzAzKSIsIkthZ2VuICgxMzAzXHUyMDEzMTMwNikiLCJUb2t1amkgKDEzMDZcdTIwMTMxMzA4KSIsIkVua3lcdTAxNGQgKDEzMDhcdTIw'@; put 'MTMxMzExKSIsIlx1MDE0Y2NoXHUwMTRkICgxMzExXHUyMDEzMTMxMikiLCJTaFx1MDE0ZHdhICgxMzEyXHUyMDEzMTMxNykiLCJCdW5wXHUwMTRkICgxMzE3XHUyMDEzMTMxOSkiLCJHZW5cdTAxNGQgKDEzMTlcdTIwMTMxMzIxKSIsIkdlbmtcdTAxNGQgKDEzMjFcdTIwMTMxMzI0KSIsIlNo'@; put 'XHUwMTRkY2hcdTAxNmIgKDEzMjRcdTIwMTMxMzI2KSIsIkthcnlha3UgKDEzMjZcdTIwMTMxMzI5KSIsIkdlbnRva3UgKDEzMjlcdTIwMTMxMzMxKSIsIkdlbmtcdTAxNGQgKDEzMzFcdTIwMTMxMzM0KSIsIktlbm11ICgxMzM0XHUyMDEzMTMzNikiLCJFbmdlbiAoMTMzNlx1MjAxMzEzNDAp'@; put 'IiwiS1x1MDE0ZGtva3UgKDEzNDBcdTIwMTMxMzQ2KSIsIlNoXHUwMTRkaGVpICgxMzQ2XHUyMDEzMTM3MCkiLCJLZW50b2t1ICgxMzcwXHUyMDEzMTM3MikiLCJCdW5jaFx1MDE2YiAoMTM3Mlx1MjAxMzEzNzUpIiwiVGVuanUgKDEzNzVcdTIwMTMxMzc5KSIsIktcdTAxNGRyeWFrdSAoMTM3'@; put 'OVx1MjAxMzEzODEpIiwiS1x1MDE0ZHdhICgxMzgxXHUyMDEzMTM4NCkiLCJHZW5jaFx1MDE2YiAoMTM4NFx1MjAxMzEzOTIpIiwiTWVpdG9rdSAoMTM4NFx1MjAxMzEzODcpIiwiS2FrZWkgKDEzODdcdTIwMTMxMzg5KSIsIktcdTAxNGRcdTAxNGQgKDEzODlcdTIwMTMxMzkwKSIsIk1laXRv'@; put 'a3UgKDEzOTBcdTIwMTMxMzk0KSIsIlx1MDE0Y2VpICgxMzk0XHUyMDEzMTQyOCkiLCJTaFx1MDE0ZGNoXHUwMTRkICgxNDI4XHUyMDEzMTQyOSkiLCJFaWt5XHUwMTRkICgxNDI5XHUyMDEzMTQ0MSkiLCJLYWtpdHN1ICgxNDQxXHUyMDEzMTQ0NCkiLCJCdW5cdTIwMTlhbiAoMTQ0NFx1MjAx'@; put 'MzE0NDkpIiwiSFx1MDE0ZHRva3UgKDE0NDlcdTIwMTMxNDUyKSIsIkt5XHUwMTRkdG9rdSAoMTQ1Mlx1MjAxMzE0NTUpIiwiS1x1MDE0ZHNoXHUwMTRkICgxNDU1XHUyMDEzMTQ1NykiLCJDaFx1MDE0ZHJva3UgKDE0NTdcdTIwMTMxNDYwKSIsIkthbnNoXHUwMTRkICgxNDYwXHUyMDEzMTQ2'@; put 'NikiLCJCdW5zaFx1MDE0ZCAoMTQ2Nlx1MjAxMzE0NjcpIiwiXHUwMTRjbmluICgxNDY3XHUyMDEzMTQ2OSkiLCJCdW5tZWkgKDE0NjlcdTIwMTMxNDg3KSIsIkNoXHUwMTRka3lcdTAxNGQgKDE0ODdcdTIwMTMxNDg5KSIsIkVudG9rdSAoMTQ4OVx1MjAxMzE0OTIpIiwiTWVpXHUwMTRkICgx'@; put 'NDkyXHUyMDEzMTUwMSkiLCJCdW5raSAoMTUwMVx1MjAxMzE1MDQpIiwiRWlzaFx1MDE0ZCAoMTUwNFx1MjAxMzE1MjEpIiwiVGFpZWkgKDE1MjFcdTIwMTMxNTI4KSIsIkt5XHUwMTRkcm9rdSAoMTUyOFx1MjAxMzE1MzIpIiwiVGVuYnVuICgxNTMyXHUyMDEzMTU1NSkiLCJLXHUwMTRkamkg'@; put 'KDE1NTVcdTIwMTMxNTU4KSIsIkVpcm9rdSAoMTU1OFx1MjAxMzE1NzApIiwiR2Vua2kgKDE1NzBcdTIwMTMxNTczKSIsIlRlbnNoXHUwMTRkICgxNTczXHUyMDEzMTU5MikiLCJCdW5yb2t1ICgxNTkyXHUyMDEzMTU5NikiLCJLZWljaFx1MDE0ZCAoMTU5Nlx1MjAxMzE2MTUpIiwiR2VubmEg'@; put 'KDE2MTVcdTIwMTMxNjI0KSIsIkthblx1MjAxOWVpICgxNjI0XHUyMDEzMTY0NCkiLCJTaFx1MDE0ZGhvICgxNjQ0XHUyMDEzMTY0OCkiLCJLZWlhbiAoMTY0OFx1MjAxMzE2NTIpIiwiSlx1MDE0ZFx1MDE0ZCAoMTY1Mlx1MjAxMzE2NTUpIiwiTWVpcmVraSAoMTY1NVx1MjAxMzE2NTgpIiwi'@; put 'TWFuamkgKDE2NThcdTIwMTMxNjYxKSIsIkthbmJ1biAoMTY2MVx1MjAxMzE2NzMpIiwiRW5wXHUwMTRkICgxNjczXHUyMDEzMTY4MSkiLCJUZW5uYSAoMTY4MVx1MjAxMzE2ODQpIiwiSlx1MDE0ZGt5XHUwMTRkICgxNjg0XHUyMDEzMTY4OCkiLCJHZW5yb2t1ICgxNjg4XHUyMDEzMTcwNCki'@; put 'LCJIXHUwMTRkZWkgKDE3MDRcdTIwMTMxNzExKSIsIlNoXHUwMTRkdG9rdSAoMTcxMVx1MjAxMzE3MTYpIiwiS3lcdTAxNGRoXHUwMTRkICgxNzE2XHUyMDEzMTczNikiLCJHZW5idW4gKDE3MzZcdTIwMTMxNzQxKSIsIkthbnBcdTAxNGQgKDE3NDFcdTIwMTMxNzQ0KSIsIkVua3lcdTAxNGQg'@; put 'KDE3NDRcdTIwMTMxNzQ4KSIsIkthblx1MjAxOWVuICgxNzQ4XHUyMDEzMTc1MSkiLCJIXHUwMTRkcmVraSAoMTc1MVx1MjAxMzE3NjQpIiwiTWVpd2EgKDE3NjRcdTIwMTMxNzcyKSIsIkFuXHUyMDE5ZWkgKDE3NzJcdTIwMTMxNzgxKSIsIlRlbm1laSAoMTc4MVx1MjAxMzE3ODkpIiwiS2Fu'@; put 'c2VpICgxNzg5XHUyMDEzMTgwMSkiLCJLeVx1MDE0ZHdhICgxODAxXHUyMDEzMTgwNCkiLCJCdW5rYSAoMTgwNFx1MjAxMzE4MTgpIiwiQnVuc2VpICgxODE4XHUyMDEzMTgzMCkiLCJUZW5wXHUwMTRkICgxODMwXHUyMDEzMTg0NCkiLCJLXHUwMTRka2EgKDE4NDRcdTIwMTMxODQ4KSIsIkth'@; put 'ZWkgKDE4NDhcdTIwMTMxODU0KSIsIkFuc2VpICgxODU0XHUyMDEzMTg2MCkiLCJNYW5cdTIwMTllbiAoMTg2MFx1MjAxMzE4NjEpIiwiQnVua3lcdTAxNmIgKDE4NjFcdTIwMTMxODY0KSIsIkdlbmppICgxODY0XHUyMDEzMTg2NSkiLCJLZWlcdTAxNGQgKDE4NjVcdTIwMTMxODY4KSIsIk1l'@; put 'aWppIiwiVGFpc2hcdTAxNGQiLCJTaFx1MDE0ZHdhIiwiSGVpc2VpIl0sImxvbmciOlsiVGFpa2EgKDY0NVx1MjAxMzY1MCkiLCJIYWt1Y2hpICg2NTBcdTIwMTM2NzEpIiwiSGFrdWhcdTAxNGQgKDY3Mlx1MjAxMzY4NikiLCJTaHVjaFx1MDE0ZCAoNjg2XHUyMDEzNzAxKSIsIlRhaWhcdTAx'@; put 'NGQgKDcwMVx1MjAxMzcwNCkiLCJLZWl1biAoNzA0XHUyMDEzNzA4KSIsIldhZFx1MDE0ZCAoNzA4XHUyMDEzNzE1KSIsIlJlaWtpICg3MTVcdTIwMTM3MTcpIiwiWVx1MDE0ZHJcdTAxNGQgKDcxN1x1MjAxMzcyNCkiLCJKaW5raSAoNzI0XHUyMDEzNzI5KSIsIlRlbnB5XHUwMTRkICg3Mjlc'@; put 'dTIwMTM3NDkpIiwiVGVucHlcdTAxNGQta2FtcFx1MDE0ZCAoNzQ5LTc0OSkiLCJUZW5weVx1MDE0ZC1zaFx1MDE0ZGhcdTAxNGQgKDc0OS03NTcpIiwiVGVucHlcdTAxNGQtaFx1MDE0ZGppICg3NTctNzY1KSIsIlRlbnB5XHUwMTRkLWppbmdvICg3NjUtNzY3KSIsIkppbmdvLWtlaXVuICg3'@; put 'NjctNzcwKSIsIkhcdTAxNGRraSAoNzcwXHUyMDEzNzgwKSIsIlRlbi1cdTAxNGQgKDc4MS03ODIpIiwiRW5yeWFrdSAoNzgyXHUyMDEzODA2KSIsIkRhaWRcdTAxNGQgKDgwNlx1MjAxMzgxMCkiLCJLXHUwMTRkbmluICg4MTBcdTIwMTM4MjQpIiwiVGVuY2hcdTAxNGQgKDgyNFx1MjAxMzgz'@; put 'NCkiLCJKXHUwMTRkd2EgKDgzNFx1MjAxMzg0OCkiLCJLYWpcdTAxNGQgKDg0OFx1MjAxMzg1MSkiLCJOaW5qdSAoODUxXHUyMDEzODU0KSIsIlNhaWtcdTAxNGQgKDg1NFx1MjAxMzg1NykiLCJUZW4tYW4gKDg1Ny04NTkpIiwiSlx1MDE0ZGdhbiAoODU5XHUyMDEzODc3KSIsIkdhbmd5XHUw'@; put 'MTRkICg4NzdcdTIwMTM4ODUpIiwiTmlubmEgKDg4NVx1MjAxMzg4OSkiLCJLYW5weVx1MDE0ZCAoODg5XHUyMDEzODk4KSIsIlNoXHUwMTRkdGFpICg4OThcdTIwMTM5MDEpIiwiRW5naSAoOTAxXHUyMDEzOTIzKSIsIkVuY2hcdTAxNGQgKDkyM1x1MjAxMzkzMSkiLCJKXHUwMTRkaGVpICg5'@; put 'MzFcdTIwMTM5MzgpIiwiVGVuZ3lcdTAxNGQgKDkzOFx1MjAxMzk0NykiLCJUZW5yeWFrdSAoOTQ3XHUyMDEzOTU3KSIsIlRlbnRva3UgKDk1N1x1MjAxMzk2MSkiLCJcdTAxNGN3YSAoOTYxXHUyMDEzOTY0KSIsIktcdTAxNGRoXHUwMTRkICg5NjRcdTIwMTM5NjgpIiwiQW5uYSAoOTY4XHUy'@; put 'MDEzOTcwKSIsIlRlbnJva3UgKDk3MFx1MjAxMzk3MykiLCJUZW5cdTIwMTllbiAoOTczXHUyMDEzOTc2KSIsIkpcdTAxNGRnZW4gKDk3Nlx1MjAxMzk3OCkiLCJUZW5nZW4gKDk3OFx1MjAxMzk4MykiLCJFaWthbiAoOTgzXHUyMDEzOTg1KSIsIkthbm5hICg5ODVcdTIwMTM5ODcpIiwiRWll'@; put 'biAoOTg3XHUyMDEzOTg5KSIsIkVpc28gKDk4OVx1MjAxMzk5MCkiLCJTaFx1MDE0ZHJ5YWt1ICg5OTBcdTIwMTM5OTUpIiwiQ2hcdTAxNGR0b2t1ICg5OTVcdTIwMTM5OTkpIiwiQ2hcdTAxNGRoXHUwMTRkICg5OTlcdTIwMTMxMDA0KSIsIkthbmtcdTAxNGQgKDEwMDRcdTIwMTMxMDEyKSIs'@; put 'IkNoXHUwMTRkd2EgKDEwMTJcdTIwMTMxMDE3KSIsIkthbm5pbiAoMTAxN1x1MjAxMzEwMjEpIiwiSmlhbiAoMTAyMVx1MjAxMzEwMjQpIiwiTWFuanUgKDEwMjRcdTIwMTMxMDI4KSIsIkNoXHUwMTRkZ2VuICgxMDI4XHUyMDEzMTAzNykiLCJDaFx1MDE0ZHJ5YWt1ICgxMDM3XHUyMDEzMTA0'@; put 'MCkiLCJDaFx1MDE0ZGt5XHUwMTZiICgxMDQwXHUyMDEzMTA0NCkiLCJLYW50b2t1ICgxMDQ0XHUyMDEzMTA0NikiLCJFaXNoXHUwMTRkICgxMDQ2XHUyMDEzMTA1MykiLCJUZW5naSAoMTA1M1x1MjAxMzEwNTgpIiwiS1x1MDE0ZGhlaSAoMTA1OFx1MjAxMzEwNjUpIiwiSmlyeWFrdSAoMTA2'@; put 'NVx1MjAxMzEwNjkpIiwiRW5reVx1MDE2YiAoMTA2OVx1MjAxMzEwNzQpIiwiU2hcdTAxNGRobyAoMTA3NFx1MjAxMzEwNzcpIiwiU2hcdTAxNGRyeWFrdSAoMTA3N1x1MjAxMzEwODEpIiwiRWloXHUwMTRkICgxMDgxXHUyMDEzMTA4NCkiLCJcdTAxNGN0b2t1ICgxMDg0XHUyMDEzMTA4Nyki'@; put 'LCJLYW5qaSAoMTA4N1x1MjAxMzEwOTQpIiwiS2FoXHUwMTRkICgxMDk0XHUyMDEzMTA5NikiLCJFaWNoXHUwMTRkICgxMDk2XHUyMDEzMTA5NykiLCJKXHUwMTRkdG9rdSAoMTA5N1x1MjAxMzEwOTkpIiwiS1x1MDE0ZHdhICgxMDk5XHUyMDEzMTEwNCkiLCJDaFx1MDE0ZGppICgxMTA0XHUy'@; put 'MDEzMTEwNikiLCJLYXNoXHUwMTRkICgxMTA2XHUyMDEzMTEwOCkiLCJUZW5uaW4gKDExMDhcdTIwMTMxMTEwKSIsIlRlbi1laSAoMTExMC0xMTEzKSIsIkVpa3lcdTAxNmIgKDExMTNcdTIwMTMxMTE4KSIsIkdlblx1MjAxOWVpICgxMTE4XHUyMDEzMTEyMCkiLCJIXHUwMTRkYW4gKDExMjBc'@; put 'dTIwMTMxMTI0KSIsIlRlbmppICgxMTI0XHUyMDEzMTEyNikiLCJEYWlqaSAoMTEyNlx1MjAxMzExMzEpIiwiVGVuc2hcdTAxNGQgKDExMzFcdTIwMTMxMTMyKSIsIkNoXHUwMTRkc2hcdTAxNGQgKDExMzJcdTIwMTMxMTM1KSIsIkhcdTAxNGRlbiAoMTEzNVx1MjAxMzExNDEpIiwiRWlqaSAo'@; put 'MTE0MVx1MjAxMzExNDIpIiwiS1x1MDE0ZGppICgxMTQyXHUyMDEzMTE0NCkiLCJUZW5cdTIwMTl5XHUwMTRkICgxMTQ0XHUyMDEzMTE0NSkiLCJLeVx1MDE2YmFuICgxMTQ1XHUyMDEzMTE1MSkiLCJOaW5wZWkgKDExNTFcdTIwMTMxMTU0KSIsIkt5XHUwMTZianUgKDExNTRcdTIwMTMxMTU2'@; put 'KSIsIkhcdTAxNGRnZW4gKDExNTZcdTIwMTMxMTU5KSIsIkhlaWppICgxMTU5XHUyMDEzMTE2MCkiLCJFaXJ5YWt1ICgxMTYwXHUyMDEzMTE2MSkiLCJcdTAxNGNobyAoMTE2MVx1MjAxMzExNjMpIiwiQ2hcdTAxNGRrYW4gKDExNjNcdTIwMTMxMTY1KSIsIkVpbWFuICgxMTY1XHUyMDEzMTE2'@; put 'NikiLCJOaW5cdTIwMTlhbiAoMTE2Nlx1MjAxMzExNjkpIiwiS2FcdTAxNGQgKDExNjlcdTIwMTMxMTcxKSIsIlNoXHUwMTRkYW4gKDExNzFcdTIwMTMxMTc1KSIsIkFuZ2VuICgxMTc1XHUyMDEzMTE3NykiLCJKaXNoXHUwMTRkICgxMTc3XHUyMDEzMTE4MSkiLCJZXHUwMTRkd2EgKDExODFc'@; put 'dTIwMTMxMTgyKSIsIkp1ZWkgKDExODJcdTIwMTMxMTg0KSIsIkdlbnJ5YWt1ICgxMTg0XHUyMDEzMTE4NSkiLCJCdW5qaSAoMTE4NVx1MjAxMzExOTApIiwiS2Vua3lcdTAxNmIgKDExOTBcdTIwMTMxMTk5KSIsIlNoXHUwMTRkamkgKDExOTlcdTIwMTMxMjAxKSIsIktlbm5pbiAoMTIwMVx1'@; put 'MjAxMzEyMDQpIiwiR2Vua3lcdTAxNmIgKDEyMDRcdTIwMTMxMjA2KSIsIktlblx1MjAxOWVpICgxMjA2XHUyMDEzMTIwNykiLCJKXHUwMTRkZ2VuICgxMjA3XHUyMDEzMTIxMSkiLCJLZW5yeWFrdSAoMTIxMVx1MjAxMzEyMTMpIiwiS2VucFx1MDE0ZCAoMTIxM1x1MjAxMzEyMTkpIiwiSlx1'@; put 'MDE0ZGt5XHUwMTZiICgxMjE5XHUyMDEzMTIyMikiLCJKXHUwMTRkXHUwMTRkICgxMjIyXHUyMDEzMTIyNCkiLCJHZW5uaW4gKDEyMjRcdTIwMTMxMjI1KSIsIkthcm9rdSAoMTIyNVx1MjAxMzEyMjcpIiwiQW50ZWkgKDEyMjdcdTIwMTMxMjI5KSIsIkthbmtpICgxMjI5XHUyMDEzMTIzMiki'@; put 'LCJKXHUwMTRkZWkgKDEyMzJcdTIwMTMxMjMzKSIsIlRlbnB1a3UgKDEyMzNcdTIwMTMxMjM0KSIsIkJ1bnJ5YWt1ICgxMjM0XHUyMDEzMTIzNSkiLCJLYXRlaSAoMTIzNVx1MjAxMzEyMzgpIiwiUnlha3VuaW4gKDEyMzhcdTIwMTMxMjM5KSIsIkVuXHUyMDE5XHUwMTRkICgxMjM5XHUyMDEz'@; put 'MTI0MCkiLCJOaW5qaSAoMTI0MFx1MjAxMzEyNDMpIiwiS2FuZ2VuICgxMjQzXHUyMDEzMTI0NykiLCJIXHUwMTRkamkgKDEyNDdcdTIwMTMxMjQ5KSIsIktlbmNoXHUwMTRkICgxMjQ5XHUyMDEzMTI1NikiLCJLXHUwMTRkZ2VuICgxMjU2XHUyMDEzMTI1NykiLCJTaFx1MDE0ZGthICgxMjU3'@; put 'XHUyMDEzMTI1OSkiLCJTaFx1MDE0ZGdlbiAoMTI1OVx1MjAxMzEyNjApIiwiQnVuXHUyMDE5XHUwMTRkICgxMjYwXHUyMDEzMTI2MSkiLCJLXHUwMTRkY2hcdTAxNGQgKDEyNjFcdTIwMTMxMjY0KSIsIkJ1blx1MjAxOWVpICgxMjY0XHUyMDEzMTI3NSkiLCJLZW5qaSAoMTI3NVx1MjAxMzEy'@; put 'NzgpIiwiS1x1MDE0ZGFuICgxMjc4XHUyMDEzMTI4OCkiLCJTaFx1MDE0ZFx1MDE0ZCAoMTI4OFx1MjAxMzEyOTMpIiwiRWluaW4gKDEyOTNcdTIwMTMxMjk5KSIsIlNoXHUwMTRkYW4gKDEyOTlcdTIwMTMxMzAyKSIsIktlbmdlbiAoMTMwMlx1MjAxMzEzMDMpIiwiS2FnZW4gKDEzMDNcdTIw'@; put 'MTMxMzA2KSIsIlRva3VqaSAoMTMwNlx1MjAxMzEzMDgpIiwiRW5reVx1MDE0ZCAoMTMwOFx1MjAxMzEzMTEpIiwiXHUwMTRjY2hcdTAxNGQgKDEzMTFcdTIwMTMxMzEyKSIsIlNoXHUwMTRkd2EgKDEzMTJcdTIwMTMxMzE3KSIsIkJ1bnBcdTAxNGQgKDEzMTdcdTIwMTMxMzE5KSIsIkdlblx1'@; put 'MDE0ZCAoMTMxOVx1MjAxMzEzMjEpIiwiR2Vua1x1MDE0ZCAoMTMyMVx1MjAxMzEzMjQpIiwiU2hcdTAxNGRjaFx1MDE2YiAoMTMyNFx1MjAxMzEzMjYpIiwiS2FyeWFrdSAoMTMyNlx1MjAxMzEzMjkpIiwiR2VudG9rdSAoMTMyOVx1MjAxMzEzMzEpIiwiR2Vua1x1MDE0ZCAoMTMzMVx1MjAx'@; put 'MzEzMzQpIiwiS2VubXUgKDEzMzRcdTIwMTMxMzM2KSIsIkVuZ2VuICgxMzM2XHUyMDEzMTM0MCkiLCJLXHUwMTRka29rdSAoMTM0MFx1MjAxMzEzNDYpIiwiU2hcdTAxNGRoZWkgKDEzNDZcdTIwMTMxMzcwKSIsIktlbnRva3UgKDEzNzBcdTIwMTMxMzcyKSIsIkJ1bmNoXHUwMTZiICgxMzcy'@; put 'XHUyMDEzMTM3NSkiLCJUZW5qdSAoMTM3NVx1MjAxMzEzNzkpIiwiS1x1MDE0ZHJ5YWt1ICgxMzc5XHUyMDEzMTM4MSkiLCJLXHUwMTRkd2EgKDEzODFcdTIwMTMxMzg0KSIsIkdlbmNoXHUwMTZiICgxMzg0XHUyMDEzMTM5MikiLCJNZWl0b2t1ICgxMzg0XHUyMDEzMTM4NykiLCJLYWtlaSAo'@; put 'MTM4N1x1MjAxMzEzODkpIiwiS1x1MDE0ZFx1MDE0ZCAoMTM4OVx1MjAxMzEzOTApIiwiTWVpdG9rdSAoMTM5MFx1MjAxMzEzOTQpIiwiXHUwMTRjZWkgKDEzOTRcdTIwMTMxNDI4KSIsIlNoXHUwMTRkY2hcdTAxNGQgKDE0MjhcdTIwMTMxNDI5KSIsIkVpa3lcdTAxNGQgKDE0MjlcdTIwMTMx'@; put 'NDQxKSIsIktha2l0c3UgKDE0NDFcdTIwMTMxNDQ0KSIsIkJ1blx1MjAxOWFuICgxNDQ0XHUyMDEzMTQ0OSkiLCJIXHUwMTRkdG9rdSAoMTQ0OVx1MjAxMzE0NTIpIiwiS3lcdTAxNGR0b2t1ICgxNDUyXHUyMDEzMTQ1NSkiLCJLXHUwMTRkc2hcdTAxNGQgKDE0NTVcdTIwMTMxNDU3KSIsIkNo'@; put 'XHUwMTRkcm9rdSAoMTQ1N1x1MjAxMzE0NjApIiwiS2Fuc2hcdTAxNGQgKDE0NjBcdTIwMTMxNDY2KSIsIkJ1bnNoXHUwMTRkICgxNDY2XHUyMDEzMTQ2NykiLCJcdTAxNGNuaW4gKDE0NjdcdTIwMTMxNDY5KSIsIkJ1bm1laSAoMTQ2OVx1MjAxMzE0ODcpIiwiQ2hcdTAxNGRreVx1MDE0ZCAo'@; put 'MTQ4N1x1MjAxMzE0ODkpIiwiRW50b2t1ICgxNDg5XHUyMDEzMTQ5MikiLCJNZWlcdTAxNGQgKDE0OTJcdTIwMTMxNTAxKSIsIkJ1bmtpICgxNTAxXHUyMDEzMTUwNCkiLCJFaXNoXHUwMTRkICgxNTA0XHUyMDEzMTUyMSkiLCJUYWllaSAoMTUyMVx1MjAxMzE1MjgpIiwiS3lcdTAxNGRyb2t1'@; put 'ICgxNTI4XHUyMDEzMTUzMikiLCJUZW5idW4gKDE1MzJcdTIwMTMxNTU1KSIsIktcdTAxNGRqaSAoMTU1NVx1MjAxMzE1NTgpIiwiRWlyb2t1ICgxNTU4XHUyMDEzMTU3MCkiLCJHZW5raSAoMTU3MFx1MjAxMzE1NzMpIiwiVGVuc2hcdTAxNGQgKDE1NzNcdTIwMTMxNTkyKSIsIkJ1bnJva3Ug'@; put 'KDE1OTJcdTIwMTMxNTk2KSIsIktlaWNoXHUwMTRkICgxNTk2XHUyMDEzMTYxNSkiLCJHZW5uYSAoMTYxNVx1MjAxMzE2MjQpIiwiS2FuXHUyMDE5ZWkgKDE2MjRcdTIwMTMxNjQ0KSIsIlNoXHUwMTRkaG8gKDE2NDRcdTIwMTMxNjQ4KSIsIktlaWFuICgxNjQ4XHUyMDEzMTY1MikiLCJKXHUw'@; put 'MTRkXHUwMTRkICgxNjUyXHUyMDEzMTY1NSkiLCJNZWlyZWtpICgxNjU1XHUyMDEzMTY1OCkiLCJNYW5qaSAoMTY1OFx1MjAxMzE2NjEpIiwiS2FuYnVuICgxNjYxXHUyMDEzMTY3MykiLCJFbnBcdTAxNGQgKDE2NzNcdTIwMTMxNjgxKSIsIlRlbm5hICgxNjgxXHUyMDEzMTY4NCkiLCJKXHUw'@; put 'MTRka3lcdTAxNGQgKDE2ODRcdTIwMTMxNjg4KSIsIkdlbnJva3UgKDE2ODhcdTIwMTMxNzA0KSIsIkhcdTAxNGRlaSAoMTcwNFx1MjAxMzE3MTEpIiwiU2hcdTAxNGR0b2t1ICgxNzExXHUyMDEzMTcxNikiLCJLeVx1MDE0ZGhcdTAxNGQgKDE3MTZcdTIwMTMxNzM2KSIsIkdlbmJ1biAoMTcz'@; put 'Nlx1MjAxMzE3NDEpIiwiS2FucFx1MDE0ZCAoMTc0MVx1MjAxMzE3NDQpIiwiRW5reVx1MDE0ZCAoMTc0NFx1MjAxMzE3NDgpIiwiS2FuXHUyMDE5ZW4gKDE3NDhcdTIwMTMxNzUxKSIsIkhcdTAxNGRyZWtpICgxNzUxXHUyMDEzMTc2NCkiLCJNZWl3YSAoMTc2NFx1MjAxMzE3NzIpIiwiQW5c'@; put 'dTIwMTllaSAoMTc3Mlx1MjAxMzE3ODEpIiwiVGVubWVpICgxNzgxXHUyMDEzMTc4OSkiLCJLYW5zZWkgKDE3ODlcdTIwMTMxODAxKSIsIkt5XHUwMTRkd2EgKDE4MDFcdTIwMTMxODA0KSIsIkJ1bmthICgxODA0XHUyMDEzMTgxOCkiLCJCdW5zZWkgKDE4MThcdTIwMTMxODMwKSIsIlRlbnBc'@; put 'dTAxNGQgKDE4MzBcdTIwMTMxODQ0KSIsIktcdTAxNGRrYSAoMTg0NFx1MjAxMzE4NDgpIiwiS2FlaSAoMTg0OFx1MjAxMzE4NTQpIiwiQW5zZWkgKDE4NTRcdTIwMTMxODYwKSIsIk1hblx1MjAxOWVuICgxODYwXHUyMDEzMTg2MSkiLCJCdW5reVx1MDE2YiAoMTg2MVx1MjAxMzE4NjQpIiwi'@; put 'R2VuamkgKDE4NjRcdTIwMTMxODY1KSIsIktlaVx1MDE0ZCAoMTg2NVx1MjAxMzE4NjgpIiwiTWVpamkiLCJUYWlzaFx1MDE0ZCIsIlNoXHUwMTRkd2EiLCJIZWlzZWkiXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIsInBtIjoiUE0ifX0sInBlcnNpYW4iOnsibW9udGhzIjp7Im5hcnJvdyI6'@; put 'WyIxIiwiMiIsIjMiLCI0IiwiNSIsIjYiLCI3IiwiOCIsIjkiLCIxMCIsIjExIiwiMTIiXSwic2hvcnQiOlsiRmFydmFyZGluIiwiT3JkaWJlaGVzaHQiLCJLaG9yZGFkIiwiVGlyIiwiTW9yZGFkIiwiU2hhaHJpdmFyIiwiTWVociIsIkFiYW4iLCJBemFyIiwiRGV5IiwiQmFobWFuIiwiRXNm'@; put 'YW5kIl0sImxvbmciOlsiRmFydmFyZGluIiwiT3JkaWJlaGVzaHQiLCJLaG9yZGFkIiwiVGlyIiwiTW9yZGFkIiwiU2hhaHJpdmFyIiwiTWVociIsIkFiYW4iLCJBemFyIiwiRGV5IiwiQmFobWFuIiwiRXNmYW5kIl19LCJkYXlzIjp7Im5hcnJvdyI6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYi'@; put 'LCJTIl0sInNob3J0IjpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLCJsb25nIjpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LCJlcmFzIjp7Im5hcnJvdyI6WyJBUCJdLCJz'@; put 'aG9ydCI6WyJBUCJdLCJsb25nIjpbIkFQIl19LCJkYXlQZXJpb2RzIjp7ImFtIjoiQU0iLCJwbSI6IlBNIn19LCJyb2MiOnsibW9udGhzIjp7Im5hcnJvdyI6WyJKIiwiRiIsIk0iLCJBIiwiTSIsIkoiLCJKIiwiQSIsIlMiLCJPIiwiTiIsIkQiXSwic2hvcnQiOlsiSmFuIiwiRmViIiwiTWFy'@; put 'IiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl0sImxvbmciOlsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwi'@; put 'RGVjZW1iZXIiXX0sImRheXMiOnsibmFycm93IjpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSwic2hvcnQiOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sImxvbmciOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJz'@; put 'ZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sImVyYXMiOnsibmFycm93IjpbIkJlZm9yZSBSLk8uQy4iLCJNaW5ndW8iXSwic2hvcnQiOlsiQmVmb3JlIFIuTy5DLiIsIk1pbmd1byJdLCJsb25nIjpbIkJlZm9yZSBSLk8uQy4iLCJNaW5ndW8iXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIs'@; put 'InBtIjoiUE0ifX19fSwibnVtYmVyIjp7Im51IjpbImxhdG4iXSwicGF0dGVybnMiOnsiZGVjaW1hbCI6eyJwb3NpdGl2ZVBhdHRlcm4iOiJ7bnVtYmVyfSIsIm5lZ2F0aXZlUGF0dGVybiI6InttaW51c1NpZ259e251bWJlcn0ifSwiY3VycmVuY3kiOnsicG9zaXRpdmVQYXR0ZXJuIjoie2N1'@; put 'cnJlbmN5fXtudW1iZXJ9IiwibmVnYXRpdmVQYXR0ZXJuIjoie21pbnVzU2lnbn17Y3VycmVuY3l9e251bWJlcn0ifSwicGVyY2VudCI6eyJwb3NpdGl2ZVBhdHRlcm4iOiJ7bnVtYmVyfXtwZXJjZW50U2lnbn0iLCJuZWdhdGl2ZVBhdHRlcm4iOiJ7bWludXNTaWdufXtudW1iZXJ9e3BlcmNl'@; put 'bnRTaWdufSJ9fSwic3ltYm9scyI6eyJsYXRuIjp7ImRlY2ltYWwiOiIuIiwiZ3JvdXAiOiIsIiwibmFuIjoiTmFOIiwicGx1c1NpZ24iOiIrIiwibWludXNTaWduIjoiLSIsInBlcmNlbnRTaWduIjoiJSIsImluZmluaXR5IjoiXHUyMjFlIn19LCJjdXJyZW5jaWVzIjp7IkFVRCI6IkEkIiwi'@; put 'QlJMIjoiUiQiLCJDQUQiOiJDQSQiLCJDTlkiOiJDTlx4YTUiLCJFVVIiOiJcdTIwYWMiLCJHQlAiOiJceGEzIiwiSEtEIjoiSEskIiwiSUxTIjoiXHUyMGFhIiwiSU5SIjoiXHUyMGI5IiwiSlBZIjoiXHhhNSIsIktSVyI6Ilx1MjBhOSIsIk1YTiI6Ik1YJCIsIk5aRCI6Ik5aJCIsIlRXRCI6'@; put 'Ik5UJCIsIlVTRCI6IiQiLCJWTkQiOiJcdTIwYWIiLCJYQUYiOiJGQ0ZBIiwiWENEIjoiRUMkIiwiWE9GIjoiQ0ZBIiwiWFBGIjoiQ0ZQRiJ9fX0nKX19LGM9Pnt2YXIgbD1uPT5jKGMucz1uKTtsKDI0MDUwKSxsKDk2OTM1KX1dKTs='; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64,swap=compiled_apploc apploc) filename filecode clear; %let filename=runtime.402fc3cfbc7e1bd4.js; filename filecode temp lrecl=32767; data _null_; file filecode; put 'KCgpPT57InVzZSBzdHJpY3QiO3ZhciBlLHM9e30scD17fTtmdW5jdGlvbiByKGUpe3ZhciBhPXBbZV07aWYodm9pZCAwIT09YSlyZXR1cm4gYS5leHBvcnRzO3ZhciB0PXBbZV09e2lkOmUsbG9hZGVkOiExLGV4cG9ydHM6e319O3JldHVybiBzW2VdLmNhbGwodC5leHBvcnRzLHQsdC5leHBv'@; put 'cnRzLHIpLHQubG9hZGVkPSEwLHQuZXhwb3J0c31yLm09cyxlPVtdLHIuTz0oYSx0LG8sbCk9PntpZighdCl7dmFyIGM9MS8wO2ZvcihuPTA7bjxlLmxlbmd0aDtuKyspe2Zvcih2YXJbdCxvLGxdPWVbbl0sZD0hMCxmPTA7Zjx0Lmxlbmd0aDtmKyspKCExJmx8fGM+PWwpJiZPYmplY3Qua2V5'@; put 'cyhyLk8pLmV2ZXJ5KF89PnIuT1tfXSh0W2ZdKSk/dC5zcGxpY2UoZi0tLDEpOihkPSExLGw8YyYmKGM9bCkpO2lmKGQpe2Uuc3BsaWNlKG4tLSwxKTt2YXIgdT1vKCk7dm9pZCAwIT09dSYmKGE9dSl9fXJldHVybiBhfWw9bHx8MDtmb3IodmFyIG49ZS5sZW5ndGg7bj4wJiZlW24tMV1bMl0+'@; put 'bDtuLS0pZVtuXT1lW24tMV07ZVtuXT1bdCxvLGxdfSxyLm49ZT0+e3ZhciBhPWUmJmUuX19lc01vZHVsZT8oKT0+ZS5kZWZhdWx0OigpPT5lO3JldHVybiByLmQoYSx7YX0pLGF9LHIuZD0oZSxhKT0+e2Zvcih2YXIgdCBpbiBhKXIubyhhLHQpJiYhci5vKGUsdCkmJk9iamVjdC5kZWZpbmVQ'@; put 'cm9wZXJ0eShlLHQse2VudW1lcmFibGU6ITAsZ2V0OmFbdF19KX0sci51PWU9PmUrIi4yNjg5NmQ5M2UwNTZkY2I5LmpzIixyLm89KGUsYSk9Pk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLGEpLHIucj1lPT57dHlwZW9mIFN5bWJvbDwidSImJlN5bWJvbC50b1N0cmlu'@; put 'Z1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZToiTW9kdWxlIn0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sci5ubWQ9ZT0+KGUucGF0aHM9W10sZS5jaGlsZHJlbnx8KGUuY2hpbGRyZW49W10p'@; put 'LGUpLCgoKT0+e3ZhciBlO3IudHQ9KCk9Pih2b2lkIDA9PT1lJiYoZT17Y3JlYXRlU2NyaXB0VVJMOmE9PmF9LHR5cGVvZiB0cnVzdGVkVHlwZXM8InUiJiZ0cnVzdGVkVHlwZXMuY3JlYXRlUG9saWN5JiYoZT10cnVzdGVkVHlwZXMuY3JlYXRlUG9saWN5KCJhbmd1bGFyI2J1bmRsZXIiLGUp'@; put 'KSksZSl9KSgpLHIudHU9ZT0+ci50dCgpLmNyZWF0ZVNjcmlwdFVSTChlKSxyLnA9IiIsKCgpPT57ci5iPWRvY3VtZW50LmJhc2VVUkl8fHNlbGYubG9jYXRpb24uaHJlZjt2YXIgZT17MTIxOjB9O3IuTy5qPW89PjA9PT1lW29dO3ZhciBhPShvLGwpPT57dmFyIGYsdSxbbixjLGRdPWwsaT0w'@; put 'O2lmKG4uc29tZShiPT4wIT09ZVtiXSkpe2ZvcihmIGluIGMpci5vKGMsZikmJihyLm1bZl09Y1tmXSk7aWYoZCl2YXIgdj1kKHIpfWZvcihvJiZvKGwpO2k8bi5sZW5ndGg7aSsrKXIubyhlLHU9bltpXSkmJmVbdV0mJmVbdV1bMF0oKSxlW3VdPTA7cmV0dXJuIHIuTyh2KX0sdD1zZWxmLndl'@; put 'YnBhY2tDaHVua2RhdGFjb250cm9sbGVyPXNlbGYud2VicGFja0NodW5rZGF0YWNvbnRyb2xsZXJ8fFtdO3QuZm9yRWFjaChhLmJpbmQobnVsbCwwKSksdC5wdXNoPWEuYmluZChudWxsLHQucHVzaC5iaW5kKHQpKX0pKCl9KSgpOw=='; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64,swap=compiled_apploc apploc) filename filecode clear; %let filename=scripts.f418d7e71dbfd309.js; filename filecode temp lrecl=69888; data _null_; file filecode; put 'IWZ1bmN0aW9uKEMsUCl7Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiZ0eXBlb2YgbW9kdWxlPCJ1Ij9QKGV4cG9ydHMpOiJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFsiZXhwb3J0cyJdLFApOlAoKEM9dHlwZW9mIGdsb2JhbFRoaXM8InUiP2dsb2JhbFRo'@; put 'aXM6Q3x8c2VsZikubWFya2VkPXt9KX0odGhpcyxmdW5jdGlvbihDKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gUChhLGkpe2Zvcih2YXIgdD0wO3Q8aS5sZW5ndGg7dCsrKXt2YXIgdT1pW3RdO3UuZW51bWVyYWJsZT11LmVudW1lcmFibGV8fCExLHUuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJp'@; put 'biB1JiYodS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsInN5bWJvbCI9PXR5cGVvZihlPWZ1bmN0aW9uKHIsbil7aWYoIm9iamVjdCIhPXR5cGVvZiByfHxudWxsPT09cilyZXR1cm4gcjt2YXIgcz1yW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwPT09cylyZXR1'@; put 'cm4gU3RyaW5nKHIpO2lmKCJvYmplY3QiIT10eXBlb2Yocz1zLmNhbGwociwic3RyaW5nIikpKXJldHVybiBzO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9KGU9dS5rZXkpKT9lOlN0cmluZyhlKSx1KX12YXIgZX1m'@; put 'dW5jdGlvbiB2KCl7cmV0dXJuKHY9T2JqZWN0LmFzc2lnbj9PYmplY3QuYXNzaWduLmJpbmQoKTpmdW5jdGlvbihhKXtmb3IodmFyIGk9MTtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXt2YXIgdCx1PWFyZ3VtZW50c1tpXTtmb3IodCBpbiB1KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVy'@; put 'dHkuY2FsbCh1LHQpJiYoYVt0XT11W3RdKX1yZXR1cm4gYX0pLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBKKGEsaSl7KG51bGw9PWl8fGk+YS5sZW5ndGgpJiYoaT1hLmxlbmd0aCk7Zm9yKHZhciB0PTAsdT1uZXcgQXJyYXkoaSk7dDxpO3QrKyl1W3RdPWFbdF07cmV0dXJuIHV9'@; put 'ZnVuY3Rpb24gVShhLGkpe3ZhciB0LHU9dHlwZW9mIFN5bWJvbDwidSImJmFbU3ltYm9sLml0ZXJhdG9yXXx8YVsiQEBpdGVyYXRvciJdO2lmKHUpcmV0dXJuKHU9dS5jYWxsKGEpKS5uZXh0LmJpbmQodSk7aWYoQXJyYXkuaXNBcnJheShhKXx8KHU9ZnVuY3Rpb24oZSxyKXt2YXIgbjtpZihl'@; put 'KXJldHVybiJzdHJpbmciPT10eXBlb2YgZT9KKGUscik6Ik1hcCI9PT0obj0iT2JqZWN0Ij09PShuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKSkmJmUuY29uc3RydWN0b3I/ZS5jb25zdHJ1Y3Rvci5uYW1lOm4pfHwiU2V0Ij09PW4/QXJyYXkuZnJvbShl'@; put 'KToiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP0ooZSxyKTp2b2lkIDB9KGEpKXx8aSYmYSYmIm51bWJlciI9PXR5cGVvZiBhLmxlbmd0aClyZXR1cm4gdSYmKGE9dSksdD0wLGZ1bmN0aW9uKCl7cmV0dXJuIHQ+PWEu'@; put 'bGVuZ3RoP3tkb25lOiEwfTp7ZG9uZTohMSx2YWx1ZTphW3QrK119fTt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZl'@; put 'IGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9dmFyIG9lPTA7ZnVuY3Rpb24gSyhhKXtyZXR1cm4iX19wcml2YXRlXyIrb2UrKysiXyIrYX1mdW5jdGlvbiBHKGEsaSl7aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsaSkpcmV0dXJuIGE7dGhyb3cgbmV3'@; put 'IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIHVzZSBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZSIpfWZ1bmN0aW9uIFEoKXtyZXR1cm57YXN5bmM6ITEsYmFzZVVybDpudWxsLGJyZWFrczohMSxleHRlbnNpb25zOm51bGwsZ2ZtOiEwLGhlYWRlcklkczohMCxoZWFkZXJQcmVmaXg6IiIs'@; put 'aGlnaGxpZ2h0Om51bGwsaG9va3M6bnVsbCxsYW5nUHJlZml4OiJsYW5ndWFnZS0iLG1hbmdsZTohMCxwZWRhbnRpYzohMSxyZW5kZXJlcjpudWxsLHNhbml0aXplOiExLHNhbml0aXplcjpudWxsLHNpbGVudDohMSxzbWFydHlwYW50czohMSx0b2tlbml6ZXI6bnVsbCx3YWxrVG9rZW5zOm51'@; put 'bGwseGh0bWw6ITF9fWZ1bmN0aW9uIFcoYSl7Qy5kZWZhdWx0cz1hfWZ1bmN0aW9uIFkoYSl7cmV0dXJuIGNlW2FdfUMuZGVmYXVsdHM9e2FzeW5jOiExLGJhc2VVcmw6bnVsbCxicmVha3M6ITEsZXh0ZW5zaW9uczpudWxsLGdmbTohMCxoZWFkZXJJZHM6ITAsaGVhZGVyUHJlZml4OiIiLGhp'@; put 'Z2hsaWdodDpudWxsLGhvb2tzOm51bGwsbGFuZ1ByZWZpeDoibGFuZ3VhZ2UtIixtYW5nbGU6ITAscGVkYW50aWM6ITEscmVuZGVyZXI6bnVsbCxzYW5pdGl6ZTohMSxzYW5pdGl6ZXI6bnVsbCxzaWxlbnQ6ITEsc21hcnR5cGFudHM6ITEsdG9rZW5pemVyOm51bGwsd2Fsa1Rva2VuczpudWxs'@; put 'LHhodG1sOiExfTt2YXIgZWU9L1smPD4iJ10vLGxlPW5ldyBSZWdFeHAoZWUuc291cmNlLCJnIiksdGU9L1s8PiInXXwmKD8hKCNcZHsxLDd9fCNbWHhdW2EtZkEtRjAtOV17MSw2fXxcdyspOykvLERlPW5ldyBSZWdFeHAodGUuc291cmNlLCJnIiksY2U9eyImIjoiJmFtcDsiLCI8IjoiJmx0'@; put 'OyIsIj4iOiImZ3Q7IiwnIic6IiZxdW90OyIsIiciOiImIzM5OyJ9O2Z1bmN0aW9uIHkoYSxpKXtpZihpKXtpZihlZS50ZXN0KGEpKXJldHVybiBhLnJlcGxhY2UobGUsWSl9ZWxzZSBpZih0ZS50ZXN0KGEpKXJldHVybiBhLnJlcGxhY2UoRGUsWSk7cmV0dXJuIGF9dmFyIHBlPS8mKCMoPzpc'@; put 'ZCspfCg/OiN4WzAtOUEtRmEtZl0rKXwoPzpcdyspKTs/L2dpO2Z1bmN0aW9uIHVlKGEpe3JldHVybiBhLnJlcGxhY2UocGUsZnVuY3Rpb24oaSx0KXtyZXR1cm4iY29sb24iPT09KHQ9dC50b0xvd2VyQ2FzZSgpKT8iOiI6IiMiPT09dC5jaGFyQXQoMCk/IngiPT09dC5jaGFyQXQoMSk/U3Ry'@; put 'aW5nLmZyb21DaGFyQ29kZShwYXJzZUludCh0LnN1YnN0cmluZygyKSwxNikpOlN0cmluZy5mcm9tQ2hhckNvZGUoK3Quc3Vic3RyaW5nKDEpKToiIn0pfXZhciBoZT0vKF58W15cW10pXF4vZztmdW5jdGlvbiBFKGEsaSl7YT0ic3RyaW5nIj09dHlwZW9mIGE/YTphLnNvdXJjZSxpPWl8fCIi'@; put 'O3ZhciB0PXtyZXBsYWNlOmZ1bmN0aW9uKHUsZSl7cmV0dXJuIGU9KGU9ZS5zb3VyY2V8fGUpLnJlcGxhY2UoaGUsIiQxIiksYT1hLnJlcGxhY2UodSxlKSx0fSxnZXRSZWdleDpmdW5jdGlvbigpe3JldHVybiBuZXcgUmVnRXhwKGEsaSl9fTtyZXR1cm4gdH12YXIgZ2U9L1teXHc6XS9nLGZl'@; put 'PS9eJHxeW2Etel1bYS16MC05Ky4tXSo6fF5bPyNdL2k7ZnVuY3Rpb24gbmUoYSxpLHQpe2lmKGEpe3RyeXt1PWRlY29kZVVSSUNvbXBvbmVudCh1ZSh0KSkucmVwbGFjZShnZSwiIikudG9Mb3dlckNhc2UoKX1jYXRjaHtyZXR1cm4gbnVsbH1pZigwPT09dS5pbmRleE9mKCJqYXZhc2NyaXB0'@; put 'OiIpfHwwPT09dS5pbmRleE9mKCJ2YnNjcmlwdDoiKXx8MD09PXUuaW5kZXhPZigiZGF0YToiKSlyZXR1cm4gbnVsbH12YXIgdTtpJiYhZmUudGVzdCh0KSYmKGE9dCxNWyIgIisodT1pKV18fChNWyIgIit1XT1GZS50ZXN0KHUpP3UrIi8iOkgodSwiLyIsITApKSxpPS0xPT09KHU9TVsiICIr'@; put 'dV0pLmluZGV4T2YoIjoiKSx0PSIvLyI9PT1hLnN1YnN0cmluZygwLDIpP2k/YTp1LnJlcGxhY2UoZGUsIiQxIikrYToiLyI9PT1hLmNoYXJBdCgwKT9pP2E6dS5yZXBsYWNlKEFlLCIkMSIpK2E6dSthKTt0cnl7dD1lbmNvZGVVUkkodCkucmVwbGFjZSgvJTI1L2csIiUiKX1jYXRjaHtyZXR1'@; put 'cm4gbnVsbH1yZXR1cm4gdH12YXIgTT17fSxGZT0vXlteOl0rOlwvKlteL10qJC8sZGU9L14oW146XSs6KVtcc1xTXSokLyxBZT0vXihbXjpdKzpcLypbXi9dKilbXHNcU10qJC8sST17ZXhlYzpmdW5jdGlvbigpe319O2Z1bmN0aW9uIHJlKGEsaSl7dmFyIHQ9YS5yZXBsYWNlKC9cfC9nLGZ1'@; put 'bmN0aW9uKGUscixuKXtmb3IodmFyIHM9ITEscD1yOzA8PS0tcCYmIlxcIj09PW5bcF07KXM9IXM7cmV0dXJuIHM/InwiOiIgfCJ9KS5zcGxpdCgvIFx8LyksdT0wO2lmKHRbMF0udHJpbSgpfHx0LnNoaWZ0KCksMDx0Lmxlbmd0aCYmIXRbdC5sZW5ndGgtMV0udHJpbSgpJiZ0LnBvcCgpLHQu'@; put 'bGVuZ3RoPmkpdC5zcGxpY2UoaSk7ZWxzZSBmb3IoO3QubGVuZ3RoPGk7KXQucHVzaCgiIik7Zm9yKDt1PHQubGVuZ3RoO3UrKyl0W3VdPXRbdV0udHJpbSgpLnJlcGxhY2UoL1xcXHwvZywifCIpO3JldHVybiB0fWZ1bmN0aW9uIEgoYSxpLHQpe3ZhciB1PWEubGVuZ3RoO2lmKDA9PT11KXJl'@; put 'dHVybiIiO2Zvcih2YXIgZT0wO2U8dTspe3ZhciByPWEuY2hhckF0KHUtZS0xKTtpZigociE9PWl8fHQpJiYocj09PWl8fCF0KSlicmVhaztlKyt9cmV0dXJuIGEuc2xpY2UoMCx1LWUpfWZ1bmN0aW9uIGllKGEscix0LHUpe3ZhciBlPXIuaHJlZixuPShyPXIudGl0bGU/eShyLnRpdGxlKTpu'@; put 'dWxsLGFbMV0ucmVwbGFjZSgvXFwoW1xbXF1dKS9nLCIkMSIpKTtyZXR1cm4iISIhPT1hWzBdLmNoYXJBdCgwKT8odS5zdGF0ZS5pbkxpbms9ITAsYT17dHlwZToibGluayIscmF3OnQsaHJlZjplLHRpdGxlOnIsdGV4dDpuLHRva2Vuczp1LmlubGluZVRva2VucyhuKX0sdS5zdGF0ZS5pbkxp'@; put 'bms9ITEsYSk6e3R5cGU6ImltYWdlIixyYXc6dCxocmVmOmUsdGl0bGU6cix0ZXh0Onkobil9fXZhciBqPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSh0KXt0aGlzLm9wdGlvbnM9dHx8Qy5kZWZhdWx0c312YXIgaT1hLnByb3RvdHlwZTtyZXR1cm4gaS5zcGFjZT1mdW5jdGlvbih0KXtpZigodD10'@; put 'aGlzLnJ1bGVzLmJsb2NrLm5ld2xpbmUuZXhlYyh0KSkmJjA8dFswXS5sZW5ndGgpcmV0dXJue3R5cGU6InNwYWNlIixyYXc6dFswXX19LGkuY29kZT1mdW5jdGlvbihlKXt2YXIgdTtpZihlPXRoaXMucnVsZXMuYmxvY2suY29kZS5leGVjKGUpKXJldHVybiB1PWVbMF0ucmVwbGFjZSgvXiB7'@; put 'MSw0fS9nbSwiIikse3R5cGU6ImNvZGUiLHJhdzplWzBdLGNvZGVCbG9ja1N0eWxlOiJpbmRlbnRlZCIsdGV4dDp0aGlzLm9wdGlvbnMucGVkYW50aWM/dTpIKHUsIlxuIil9fSxpLmZlbmNlcz1mdW5jdGlvbihzKXt2YXIgdSxlLHIsbjtpZihzPXRoaXMucnVsZXMuYmxvY2suZmVuY2VzLmV4'@; put 'ZWMocykpcmV0dXJuIGU9dT1zWzBdLHI9c1szXXx8IiIsZT1udWxsPT09KGU9dS5tYXRjaCgvXihccyspKD86YGBgKS8pKT9yOihuPWVbMV0sci5zcGxpdCgiXG4iKS5tYXAoZnVuY3Rpb24ocCl7dmFyIGc9cC5tYXRjaCgvXlxzKy8pO3JldHVybiBudWxsIT09ZyYmZ1swXS5sZW5ndGg+PW4u'@; put 'bGVuZ3RoP3Auc2xpY2Uobi5sZW5ndGgpOnB9KS5qb2luKCJcbiIpKSx7dHlwZToiY29kZSIscmF3OnUsbGFuZzpzWzJdJiZzWzJdLnRyaW0oKS5yZXBsYWNlKHRoaXMucnVsZXMuaW5saW5lLl9lc2NhcGVzLCIkMSIpLHRleHQ6ZX19LGkuaGVhZGluZz1mdW5jdGlvbihyKXt2YXIgdSxlO2lm'@; put 'KHI9dGhpcy5ydWxlcy5ibG9jay5oZWFkaW5nLmV4ZWMocikpcmV0dXJuIHU9clsyXS50cmltKCksLyMkLy50ZXN0KHUpJiYoZT1IKHUsIiMiKSwhdGhpcy5vcHRpb25zLnBlZGFudGljJiZlJiYhLyAkLy50ZXN0KGUpfHwodT1lLnRyaW0oKSkpLHt0eXBlOiJoZWFkaW5nIixyYXc6clswXSxk'@; put 'ZXB0aDpyWzFdLmxlbmd0aCx0ZXh0OnUsdG9rZW5zOnRoaXMubGV4ZXIuaW5saW5lKHUpfX0saS5ocj1mdW5jdGlvbih0KXtpZih0PXRoaXMucnVsZXMuYmxvY2suaHIuZXhlYyh0KSlyZXR1cm57dHlwZToiaHIiLHJhdzp0WzBdfX0saS5ibG9ja3F1b3RlPWZ1bmN0aW9uKG4pe3ZhciB1LGUs'@; put 'cjtpZihuPXRoaXMucnVsZXMuYmxvY2suYmxvY2txdW90ZS5leGVjKG4pKXJldHVybiB1PW5bMF0ucmVwbGFjZSgvXiAqPlsgXHRdPy9nbSwiIiksZT10aGlzLmxleGVyLnN0YXRlLnRvcCx0aGlzLmxleGVyLnN0YXRlLnRvcD0hMCxyPXRoaXMubGV4ZXIuYmxvY2tUb2tlbnModSksdGhpcy5s'@; put 'ZXhlci5zdGF0ZS50b3A9ZSx7dHlwZToiYmxvY2txdW90ZSIscmF3Om5bMF0sdG9rZW5zOnIsdGV4dDp1fX0saS5saXN0PWZ1bmN0aW9uKHQpe3ZhciB1PXRoaXMucnVsZXMuYmxvY2subGlzdC5leGVjKHQpO2lmKHUpe3ZhciBlLHIsbixzLHAsZyxELG8sRixkLHgsaD0xPChrPXVbMV0udHJp'@; put 'bSgpKS5sZW5ndGgsbD17dHlwZToibGlzdCIscmF3OiIiLG9yZGVyZWQ6aCxzdGFydDpoPytrLnNsaWNlKDAsLTEpOiIiLGxvb3NlOiExLGl0ZW1zOltdfSxrPWg/IlxcZHsxLDl9XFwiK2suc2xpY2UoLTEpOiJcXCIrazt0aGlzLm9wdGlvbnMucGVkYW50aWMmJihrPWg/azoiWyorLV0iKTtm'@; put 'b3IodmFyIGI9bmV3IFJlZ0V4cCgiXiggezAsM30iK2srIikoKD86W1x0IF1bXlxcbl0qKT8oPzpcXG58JCkpIik7dCYmKHg9ITEsdT1iLmV4ZWModCkpJiYhdGhpcy5ydWxlcy5ibG9jay5oci50ZXN0KHQpOyl7aWYodD10LnN1YnN0cmluZygoZT11WzBdKS5sZW5ndGgpLEQ9dVsyXS5zcGxp'@; put 'dCgiXG4iLDEpWzBdLnJlcGxhY2UoL15cdCsvLGZ1bmN0aW9uKEwpe3JldHVybiIgIi5yZXBlYXQoMypMLmxlbmd0aCl9KSxvPXQuc3BsaXQoIlxuIiwxKVswXSx0aGlzLm9wdGlvbnMucGVkYW50aWM/KHM9MixkPUQudHJpbUxlZnQoKSk6KHM9dVsyXS5zZWFyY2goL1teIF0vKSxkPUQuc2xp'@; put 'Y2Uocz00PHM/MTpzKSxzKz11WzFdLmxlbmd0aCkscD0hMSwhRCYmL14gKiQvLnRlc3QobykmJihlKz1vKyJcbiIsdD10LnN1YnN0cmluZyhvLmxlbmd0aCsxKSx4PSEwKSwheClmb3IodmFyIHc9bmV3IFJlZ0V4cCgiXiB7MCwiK01hdGgubWluKDMscy0xKSsifSg/OlsqKy1dfFxcZHsxLDl9'@; put 'Wy4pXSkoKD86WyBcdF1bXlxcbl0qKT8oPzpcXG58JCkpIiksQT1uZXcgUmVnRXhwKCJeIHswLCIrTWF0aC5taW4oMyxzLTEpKyJ9KCg/Oi0gKil7Myx9fCg/Ol8gKil7Myx9fCg/OlxcKiAqKXszLH0pKD86XFxuK3wkKSIpLEI9bmV3IFJlZ0V4cCgiXiB7MCwiK01hdGgubWluKDMscy0xKSsi'@; put 'fSg/OmBgYHx+fn4pIiksXz1uZXcgUmVnRXhwKCJeIHswLCIrTWF0aC5taW4oMyxzLTEpKyJ9IyIpO3QmJihvPUY9dC5zcGxpdCgiXG4iLDEpWzBdLHRoaXMub3B0aW9ucy5wZWRhbnRpYyYmKG89by5yZXBsYWNlKC9eIHsxLDR9KD89KCB7NH0pKlteIF0pL2csIiAgIikpLCFCLnRlc3Qobykp'@; put 'JiYhXy50ZXN0KG8pJiYhdy50ZXN0KG8pJiYhQS50ZXN0KHQpOyl7aWYoby5zZWFyY2goL1teIF0vKT49c3x8IW8udHJpbSgpKWQrPSJcbiIrby5zbGljZShzKTtlbHNle2lmKHB8fDQ8PUQuc2VhcmNoKC9bXiBdLyl8fEIudGVzdChEKXx8Xy50ZXN0KEQpfHxBLnRlc3QoRCkpYnJlYWs7ZCs9'@; put 'IlxuIitvfXB8fG8udHJpbSgpfHwocD0hMCksZSs9RisiXG4iLHQ9dC5zdWJzdHJpbmcoRi5sZW5ndGgrMSksRD1vLnNsaWNlKHMpfWwubG9vc2V8fChnP2wubG9vc2U9ITA6L1xuICpcbiAqJC8udGVzdChlKSYmKGc9ITApKSx0aGlzLm9wdGlvbnMuZ2ZtJiYocj0vXlxbWyB4WF1cXSAvLmV4'@; put 'ZWMoZCkpJiYobj0iWyBdICIhPT1yWzBdLGQ9ZC5yZXBsYWNlKC9eXFtbIHhYXVxdICsvLCIiKSksbC5pdGVtcy5wdXNoKHt0eXBlOiJsaXN0X2l0ZW0iLHJhdzplLHRhc2s6ISFyLGNoZWNrZWQ6bixsb29zZTohMSx0ZXh0OmR9KSxsLnJhdys9ZX1sLml0ZW1zW2wuaXRlbXMubGVuZ3RoLTFd'@; put 'LnJhdz1lLnRyaW1SaWdodCgpLGwuaXRlbXNbbC5pdGVtcy5sZW5ndGgtMV0udGV4dD1kLnRyaW1SaWdodCgpLGwucmF3PWwucmF3LnRyaW1SaWdodCgpO2Zvcih2YXIgeixhZT1sLml0ZW1zLmxlbmd0aCwkPTA7JDxhZTskKyspdGhpcy5sZXhlci5zdGF0ZS50b3A9ITEsbC5pdGVtc1skXS50'@; put 'b2tlbnM9dGhpcy5sZXhlci5ibG9ja1Rva2VucyhsLml0ZW1zWyRdLnRleHQsW10pLGwubG9vc2V8fCh6PTA8KHo9bC5pdGVtc1skXS50b2tlbnMuZmlsdGVyKGZ1bmN0aW9uKEwpe3JldHVybiJzcGFjZSI9PT1MLnR5cGV9KSkubGVuZ3RoJiZ6LnNvbWUoZnVuY3Rpb24oTCl7cmV0dXJuL1xu'@; put 'Lipcbi8udGVzdChMLnJhdyl9KSxsLmxvb3NlPXopO2lmKGwubG9vc2UpZm9yKCQ9MDskPGFlOyQrKylsLml0ZW1zWyRdLmxvb3NlPSEwO3JldHVybiBsfX0saS5odG1sPWZ1bmN0aW9uKGUpe3ZhciB1O2lmKGU9dGhpcy5ydWxlcy5ibG9jay5odG1sLmV4ZWMoZSkpcmV0dXJuIHU9e3R5cGU6'@; put 'Imh0bWwiLGJsb2NrOiEwLHJhdzplWzBdLHByZTohdGhpcy5vcHRpb25zLnNhbml0aXplciYmKCJwcmUiPT09ZVsxXXx8InNjcmlwdCI9PT1lWzFdfHwic3R5bGUiPT09ZVsxXSksdGV4dDplWzBdfSx0aGlzLm9wdGlvbnMuc2FuaXRpemUmJihlPXRoaXMub3B0aW9ucy5zYW5pdGl6ZXI/dGhp'@; put 'cy5vcHRpb25zLnNhbml0aXplcihlWzBdKTp5KGVbMF0pLHUudHlwZT0icGFyYWdyYXBoIix1LnRleHQ9ZSx1LnRva2Vucz10aGlzLmxleGVyLmlubGluZShlKSksdX0saS5kZWY9ZnVuY3Rpb24obil7dmFyIHUsZSxyO2lmKG49dGhpcy5ydWxlcy5ibG9jay5kZWYuZXhlYyhuKSlyZXR1cm4g'@; put 'dT1uWzFdLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXHMrL2csIiAiKSxlPW5bMl0/blsyXS5yZXBsYWNlKC9ePCguKik+JC8sIiQxIikucmVwbGFjZSh0aGlzLnJ1bGVzLmlubGluZS5fZXNjYXBlcywiJDEiKToiIixyPW5bM10mJm5bM10uc3Vic3RyaW5nKDEsblszXS5sZW5ndGgtMSkucmVw'@; put 'bGFjZSh0aGlzLnJ1bGVzLmlubGluZS5fZXNjYXBlcywiJDEiKSx7dHlwZToiZGVmIix0YWc6dSxyYXc6blswXSxocmVmOmUsdGl0bGU6cn19LGkudGFibGU9ZnVuY3Rpb24odCl7aWYodD10aGlzLnJ1bGVzLmJsb2NrLnRhYmxlLmV4ZWModCkpe3ZhciB1PXt0eXBlOiJ0YWJsZSIsaGVhZGVy'@; put 'OnJlKHRbMV0pLm1hcChmdW5jdGlvbihnKXtyZXR1cm57dGV4dDpnfX0pLGFsaWduOnRbMl0ucmVwbGFjZSgvXiAqfFx8ICokL2csIiIpLnNwbGl0KC8gKlx8ICovKSxyb3dzOnRbM10mJnRbM10udHJpbSgpP3RbM10ucmVwbGFjZSgvXG5bIFx0XSokLywiIikuc3BsaXQoIlxuIik6W119O2lm'@; put 'KHUuaGVhZGVyLmxlbmd0aD09PXUuYWxpZ24ubGVuZ3RoKXt1LnJhdz10WzBdO2Zvcih2YXIgZSxyLG4scz11LmFsaWduLmxlbmd0aCxwPTA7cDxzO3ArKyl1LmFsaWduW3BdPS9eICotKzogKiQvLnRlc3QodS5hbGlnbltwXSk/InJpZ2h0IjovXiAqOi0rOiAqJC8udGVzdCh1LmFsaWduW3Bd'@; put 'KT8iY2VudGVyIjovXiAqOi0rICokLy50ZXN0KHUuYWxpZ25bcF0pPyJsZWZ0IjpudWxsO2ZvcihzPXUucm93cy5sZW5ndGgscD0wO3A8cztwKyspdS5yb3dzW3BdPXJlKHUucm93c1twXSx1LmhlYWRlci5sZW5ndGgpLm1hcChmdW5jdGlvbihnKXtyZXR1cm57dGV4dDpnfX0pO2ZvcihzPXUu'@; put 'aGVhZGVyLmxlbmd0aCxlPTA7ZTxzO2UrKyl1LmhlYWRlcltlXS50b2tlbnM9dGhpcy5sZXhlci5pbmxpbmUodS5oZWFkZXJbZV0udGV4dCk7Zm9yKHM9dS5yb3dzLmxlbmd0aCxlPTA7ZTxzO2UrKylmb3Iobj11LnJvd3NbZV0scj0wO3I8bi5sZW5ndGg7cisrKW5bcl0udG9rZW5zPXRoaXMu'@; put 'bGV4ZXIuaW5saW5lKG5bcl0udGV4dCk7cmV0dXJuIHV9fX0saS5saGVhZGluZz1mdW5jdGlvbih0KXtpZih0PXRoaXMucnVsZXMuYmxvY2subGhlYWRpbmcuZXhlYyh0KSlyZXR1cm57dHlwZToiaGVhZGluZyIscmF3OnRbMF0sZGVwdGg6Ij0iPT09dFsyXS5jaGFyQXQoMCk/MToyLHRleHQ6'@; put 'dFsxXSx0b2tlbnM6dGhpcy5sZXhlci5pbmxpbmUodFsxXSl9fSxpLnBhcmFncmFwaD1mdW5jdGlvbihlKXt2YXIgdTtpZihlPXRoaXMucnVsZXMuYmxvY2sucGFyYWdyYXBoLmV4ZWMoZSkpcmV0dXJuIHU9IlxuIj09PWVbMV0uY2hhckF0KGVbMV0ubGVuZ3RoLTEpP2VbMV0uc2xpY2UoMCwt'@; put 'MSk6ZVsxXSx7dHlwZToicGFyYWdyYXBoIixyYXc6ZVswXSx0ZXh0OnUsdG9rZW5zOnRoaXMubGV4ZXIuaW5saW5lKHUpfX0saS50ZXh0PWZ1bmN0aW9uKHQpe2lmKHQ9dGhpcy5ydWxlcy5ibG9jay50ZXh0LmV4ZWModCkpcmV0dXJue3R5cGU6InRleHQiLHJhdzp0WzBdLHRleHQ6dFswXSx0'@; put 'b2tlbnM6dGhpcy5sZXhlci5pbmxpbmUodFswXSl9fSxpLmVzY2FwZT1mdW5jdGlvbih0KXtpZih0PXRoaXMucnVsZXMuaW5saW5lLmVzY2FwZS5leGVjKHQpKXJldHVybnt0eXBlOiJlc2NhcGUiLHJhdzp0WzBdLHRleHQ6eSh0WzFdKX19LGkudGFnPWZ1bmN0aW9uKHQpe2lmKHQ9dGhpcy5y'@; put 'dWxlcy5pbmxpbmUudGFnLmV4ZWModCkpcmV0dXJuIXRoaXMubGV4ZXIuc3RhdGUuaW5MaW5rJiYvXjxhIC9pLnRlc3QodFswXSk/dGhpcy5sZXhlci5zdGF0ZS5pbkxpbms9ITA6dGhpcy5sZXhlci5zdGF0ZS5pbkxpbmsmJi9ePFwvYT4vaS50ZXN0KHRbMF0pJiYodGhpcy5sZXhlci5zdGF0'@; put 'ZS5pbkxpbms9ITEpLCF0aGlzLmxleGVyLnN0YXRlLmluUmF3QmxvY2smJi9ePChwcmV8Y29kZXxrYmR8c2NyaXB0KShcc3w+KS9pLnRlc3QodFswXSk/dGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrPSEwOnRoaXMubGV4ZXIuc3RhdGUuaW5SYXdCbG9jayYmL148XC8ocHJlfGNvZGV8a2Jk'@; put 'fHNjcmlwdCkoXHN8PikvaS50ZXN0KHRbMF0pJiYodGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrPSExKSx7dHlwZTp0aGlzLm9wdGlvbnMuc2FuaXRpemU/InRleHQiOiJodG1sIixyYXc6dFswXSxpbkxpbms6dGhpcy5sZXhlci5zdGF0ZS5pbkxpbmssaW5SYXdCbG9jazp0aGlzLmxleGVy'@; put 'LnN0YXRlLmluUmF3QmxvY2ssYmxvY2s6ITEsdGV4dDp0aGlzLm9wdGlvbnMuc2FuaXRpemU/dGhpcy5vcHRpb25zLnNhbml0aXplcj90aGlzLm9wdGlvbnMuc2FuaXRpemVyKHRbMF0pOnkodFswXSk6dFswXX19LGkubGluaz1mdW5jdGlvbih0KXtpZih0PXRoaXMucnVsZXMuaW5saW5lLmxp'@; put 'bmsuZXhlYyh0KSl7dmFyIHU9dFsyXS50cmltKCk7aWYoIXRoaXMub3B0aW9ucy5wZWRhbnRpYyYmL148Ly50ZXN0KHUpKXtpZighLz4kLy50ZXN0KHUpKXJldHVybjt2YXIgcj1IKHUuc2xpY2UoMCwtMSksIlxcIik7aWYoKHUubGVuZ3RoLXIubGVuZ3RoKSUyPT0wKXJldHVybn1lbHNlLTE8'@; put 'KHI9ZnVuY3Rpb24ocyxwKXtpZigtMSE9PXMuaW5kZXhPZihwWzFdKSlmb3IodmFyIGc9cy5sZW5ndGgsRD0wLG89MDtvPGc7bysrKWlmKCJcXCI9PT1zW29dKW8rKztlbHNlIGlmKHNbb109PT1wWzBdKUQrKztlbHNlIGlmKHNbb109PT1wWzFdJiYtLUQ8MClyZXR1cm4gbztyZXR1cm4tMX0o'@; put 'dFsyXSwiKCkiKSkmJihuPSgwPT09dFswXS5pbmRleE9mKCIhIik/NTo0KSt0WzFdLmxlbmd0aCtyLHRbMl09dFsyXS5zdWJzdHJpbmcoMCxyKSx0WzBdPXRbMF0uc3Vic3RyaW5nKDAsbikudHJpbSgpLHRbM109IiIpO3I9dFsyXTt2YXIgZSxuPSIiO3JldHVybiB0aGlzLm9wdGlvbnMucGVk'@; put 'YW50aWM/KGU9L14oW14nIl0qW15cc10pXHMrKFsnIl0pKC4qKVwyLy5leGVjKHIpKSYmKHI9ZVsxXSxuPWVbM10pOm49dFszXT90WzNdLnNsaWNlKDEsLTEpOiIiLHI9ci50cmltKCksaWUodCx7aHJlZjoocj0vXjwvLnRlc3Qocik/dGhpcy5vcHRpb25zLnBlZGFudGljJiYhLz4kLy50ZXN0'@; put 'KHUpP3Iuc2xpY2UoMSk6ci5zbGljZSgxLC0xKTpyKSYmci5yZXBsYWNlKHRoaXMucnVsZXMuaW5saW5lLl9lc2NhcGVzLCIkMSIpLHRpdGxlOm4mJm4ucmVwbGFjZSh0aGlzLnJ1bGVzLmlubGluZS5fZXNjYXBlcywiJDEiKX0sdFswXSx0aGlzLmxleGVyKX19LGkucmVmbGluaz1mdW5jdGlv'@; put 'bih0LHUpe3ZhciBlO2lmKGU9KGU9dGhpcy5ydWxlcy5pbmxpbmUucmVmbGluay5leGVjKHQpKXx8dGhpcy5ydWxlcy5pbmxpbmUubm9saW5rLmV4ZWModCkpcmV0dXJuKHQ9dVsodD0oZVsyXXx8ZVsxXSkucmVwbGFjZSgvXHMrL2csIiAiKSkudG9Mb3dlckNhc2UoKV0pP2llKGUsdCxlWzBd'@; put 'LHRoaXMubGV4ZXIpOnt0eXBlOiJ0ZXh0IixyYXc6dT1lWzBdLmNoYXJBdCgwKSx0ZXh0OnV9fSxpLmVtU3Ryb25nPWZ1bmN0aW9uKHQsdSxlKXt2b2lkIDA9PT1lJiYoZT0iIik7dmFyIHI9dGhpcy5ydWxlcy5pbmxpbmUuZW1TdHJvbmcubERlbGltLmV4ZWModCk7aWYociYmKCFyWzNdfHwh'@; put 'ZS5tYXRjaCgvKD86WzAtOUEtWmEtelx4QUFceEIyXHhCM1x4QjVceEI5XHhCQVx4QkMtXHhCRVx4QzAtXHhENlx4RDgtXHhGNlx4RjgtXHUwMkMxXHUwMkM2LVx1MDJEMVx1MDJFMC1cdTAyRTRcdTAyRUNcdTAyRUVcdTAzNzAtXHUwMzc0XHUwMzc2XHUwMzc3XHUwMzdBLVx1MDM3RFx1MDM3'@; put 'Rlx1MDM4Nlx1MDM4OC1cdTAzOEFcdTAzOENcdTAzOEUtXHUwM0ExXHUwM0EzLVx1MDNGNVx1MDNGNy1cdTA0ODFcdTA0OEEtXHUwNTJGXHUwNTMxLVx1MDU1Nlx1MDU1OVx1MDU2MC1cdTA1ODhcdTA1RDAtXHUwNUVBXHUwNUVGLVx1MDVGMlx1MDYyMC1cdTA2NEFcdTA2NjAtXHUwNjY5XHUw'@; put 'NjZFXHUwNjZGXHUwNjcxLVx1MDZEM1x1MDZENVx1MDZFNVx1MDZFNlx1MDZFRS1cdTA2RkNcdTA2RkZcdTA3MTBcdTA3MTItXHUwNzJGXHUwNzRELVx1MDdBNVx1MDdCMVx1MDdDMC1cdTA3RUFcdTA3RjRcdTA3RjVcdTA3RkFcdTA4MDAtXHUwODE1XHUwODFBXHUwODI0XHUwODI4XHUwODQw'@; put 'LVx1MDg1OFx1MDg2MC1cdTA4NkFcdTA4NzAtXHUwODg3XHUwODg5LVx1MDg4RVx1MDhBMC1cdTA4QzlcdTA5MDQtXHUwOTM5XHUwOTNEXHUwOTUwXHUwOTU4LVx1MDk2MVx1MDk2Ni1cdTA5NkZcdTA5NzEtXHUwOTgwXHUwOTg1LVx1MDk4Q1x1MDk4Rlx1MDk5MFx1MDk5My1cdTA5QThcdTA5'@; put 'QUEtXHUwOUIwXHUwOUIyXHUwOUI2LVx1MDlCOVx1MDlCRFx1MDlDRVx1MDlEQ1x1MDlERFx1MDlERi1cdTA5RTFcdTA5RTYtXHUwOUYxXHUwOUY0LVx1MDlGOVx1MDlGQ1x1MEEwNS1cdTBBMEFcdTBBMEZcdTBBMTBcdTBBMTMtXHUwQTI4XHUwQTJBLVx1MEEzMFx1MEEzMlx1MEEzM1x1MEEz'@; put 'NVx1MEEzNlx1MEEzOFx1MEEzOVx1MEE1OS1cdTBBNUNcdTBBNUVcdTBBNjYtXHUwQTZGXHUwQTcyLVx1MEE3NFx1MEE4NS1cdTBBOERcdTBBOEYtXHUwQTkxXHUwQTkzLVx1MEFBOFx1MEFBQS1cdTBBQjBcdTBBQjJcdTBBQjNcdTBBQjUtXHUwQUI5XHUwQUJEXHUwQUQwXHUwQUUwXHUwQUUx'@; put 'XHUwQUU2LVx1MEFFRlx1MEFGOVx1MEIwNS1cdTBCMENcdTBCMEZcdTBCMTBcdTBCMTMtXHUwQjI4XHUwQjJBLVx1MEIzMFx1MEIzMlx1MEIzM1x1MEIzNS1cdTBCMzlcdTBCM0RcdTBCNUNcdTBCNURcdTBCNUYtXHUwQjYxXHUwQjY2LVx1MEI2Rlx1MEI3MS1cdTBCNzdcdTBCODNcdTBCODUt'@; put 'XHUwQjhBXHUwQjhFLVx1MEI5MFx1MEI5Mi1cdTBCOTVcdTBCOTlcdTBCOUFcdTBCOUNcdTBCOUVcdTBCOUZcdTBCQTNcdTBCQTRcdTBCQTgtXHUwQkFBXHUwQkFFLVx1MEJCOVx1MEJEMFx1MEJFNi1cdTBCRjJcdTBDMDUtXHUwQzBDXHUwQzBFLVx1MEMxMFx1MEMxMi1cdTBDMjhcdTBDMkEt'@; put 'XHUwQzM5XHUwQzNEXHUwQzU4LVx1MEM1QVx1MEM1RFx1MEM2MFx1MEM2MVx1MEM2Ni1cdTBDNkZcdTBDNzgtXHUwQzdFXHUwQzgwXHUwQzg1LVx1MEM4Q1x1MEM4RS1cdTBDOTBcdTBDOTItXHUwQ0E4XHUwQ0FBLVx1MENCM1x1MENCNS1cdTBDQjlcdTBDQkRcdTBDRERcdTBDREVcdTBDRTBc'@; put 'dTBDRTFcdTBDRTYtXHUwQ0VGXHUwQ0YxXHUwQ0YyXHUwRDA0LVx1MEQwQ1x1MEQwRS1cdTBEMTBcdTBEMTItXHUwRDNBXHUwRDNEXHUwRDRFXHUwRDU0LVx1MEQ1Nlx1MEQ1OC1cdTBENjFcdTBENjYtXHUwRDc4XHUwRDdBLVx1MEQ3Rlx1MEQ4NS1cdTBEOTZcdTBEOUEtXHUwREIxXHUwREIz'@; put 'LVx1MERCQlx1MERCRFx1MERDMC1cdTBEQzZcdTBERTYtXHUwREVGXHUwRTAxLVx1MEUzMFx1MEUzMlx1MEUzM1x1MEU0MC1cdTBFNDZcdTBFNTAtXHUwRTU5XHUwRTgxXHUwRTgyXHUwRTg0XHUwRTg2LVx1MEU4QVx1MEU4Qy1cdTBFQTNcdTBFQTVcdTBFQTctXHUwRUIwXHUwRUIyXHUwRUIz'@; put 'XHUwRUJEXHUwRUMwLVx1MEVDNFx1MEVDNlx1MEVEMC1cdTBFRDlcdTBFREMtXHUwRURGXHUwRjAwXHUwRjIwLVx1MEYzM1x1MEY0MC1cdTBGNDdcdTBGNDktXHUwRjZDXHUwRjg4LVx1MEY4Q1x1MTAwMC1cdTEwMkFcdTEwM0YtXHUxMDQ5XHUxMDUwLVx1MTA1NVx1MTA1QS1cdTEwNURcdTEw'@; put 'NjFcdTEwNjVcdTEwNjZcdTEwNkUtXHUxMDcwXHUxMDc1LVx1MTA4MVx1MTA4RVx1MTA5MC1cdTEwOTlcdTEwQTAtXHUxMEM1XHUxMEM3XHUxMENEXHUxMEQwLVx1MTBGQVx1MTBGQy1cdTEyNDhcdTEyNEEtXHUxMjREXHUxMjUwLVx1MTI1Nlx1MTI1OFx1MTI1QS1cdTEyNURcdTEyNjAtXHUx'@; put 'Mjg4XHUxMjhBLVx1MTI4RFx1MTI5MC1cdTEyQjBcdTEyQjItXHUxMkI1XHUxMkI4LVx1MTJCRVx1MTJDMFx1MTJDMi1cdTEyQzVcdTEyQzgtXHUxMkQ2XHUxMkQ4LVx1MTMxMFx1MTMxMi1cdTEzMTVcdTEzMTgtXHUxMzVBXHUxMzY5LVx1MTM3Q1x1MTM4MC1cdTEzOEZcdTEzQTAtXHUxM0Y1'@; put 'XHUxM0Y4LVx1MTNGRFx1MTQwMS1cdTE2NkNcdTE2NkYtXHUxNjdGXHUxNjgxLVx1MTY5QVx1MTZBMC1cdTE2RUFcdTE2RUUtXHUxNkY4XHUxNzAwLVx1MTcxMVx1MTcxRi1cdTE3MzFcdTE3NDAtXHUxNzUxXHUxNzYwLVx1MTc2Q1x1MTc2RS1cdTE3NzBcdTE3ODAtXHUxN0IzXHUxN0Q3XHUx'@; put 'N0RDXHUxN0UwLVx1MTdFOVx1MTdGMC1cdTE3RjlcdTE4MTAtXHUxODE5XHUxODIwLVx1MTg3OFx1MTg4MC1cdTE4ODRcdTE4ODctXHUxOEE4XHUxOEFBXHUxOEIwLVx1MThGNVx1MTkwMC1cdTE5MUVcdTE5NDYtXHUxOTZEXHUxOTcwLVx1MTk3NFx1MTk4MC1cdTE5QUJcdTE5QjAtXHUxOUM5'@; put 'XHUxOUQwLVx1MTlEQVx1MUEwMC1cdTFBMTZcdTFBMjAtXHUxQTU0XHUxQTgwLVx1MUE4OVx1MUE5MC1cdTFBOTlcdTFBQTdcdTFCMDUtXHUxQjMzXHUxQjQ1LVx1MUI0Q1x1MUI1MC1cdTFCNTlcdTFCODMtXHUxQkEwXHUxQkFFLVx1MUJFNVx1MUMwMC1cdTFDMjNcdTFDNDAtXHUxQzQ5XHUx'@; put 'QzRELVx1MUM3RFx1MUM4MC1cdTFDODhcdTFDOTAtXHUxQ0JBXHUxQ0JELVx1MUNCRlx1MUNFOS1cdTFDRUNcdTFDRUUtXHUxQ0YzXHUxQ0Y1XHUxQ0Y2XHUxQ0ZBXHUxRDAwLVx1MURCRlx1MUUwMC1cdTFGMTVcdTFGMTgtXHUxRjFEXHUxRjIwLVx1MUY0NVx1MUY0OC1cdTFGNERcdTFGNTAt'@; put 'XHUxRjU3XHUxRjU5XHUxRjVCXHUxRjVEXHUxRjVGLVx1MUY3RFx1MUY4MC1cdTFGQjRcdTFGQjYtXHUxRkJDXHUxRkJFXHUxRkMyLVx1MUZDNFx1MUZDNi1cdTFGQ0NcdTFGRDAtXHUxRkQzXHUxRkQ2LVx1MUZEQlx1MUZFMC1cdTFGRUNcdTFGRjItXHUxRkY0XHUxRkY2LVx1MUZGQ1x1MjA3'@; put 'MFx1MjA3MVx1MjA3NC1cdTIwNzlcdTIwN0YtXHUyMDg5XHUyMDkwLVx1MjA5Q1x1MjEwMlx1MjEwN1x1MjEwQS1cdTIxMTNcdTIxMTVcdTIxMTktXHUyMTFEXHUyMTI0XHUyMTI2XHUyMTI4XHUyMTJBLVx1MjEyRFx1MjEyRi1cdTIxMzlcdTIxM0MtXHUyMTNGXHUyMTQ1LVx1MjE0OVx1MjE0'@; put 'RVx1MjE1MC1cdTIxODlcdTI0NjAtXHUyNDlCXHUyNEVBLVx1MjRGRlx1Mjc3Ni1cdTI3OTNcdTJDMDAtXHUyQ0U0XHUyQ0VCLVx1MkNFRVx1MkNGMlx1MkNGM1x1MkNGRFx1MkQwMC1cdTJEMjVcdTJEMjdcdTJEMkRcdTJEMzAtXHUyRDY3XHUyRDZGXHUyRDgwLVx1MkQ5Nlx1MkRBMC1cdTJE'@; put 'QTZcdTJEQTgtXHUyREFFXHUyREIwLVx1MkRCNlx1MkRCOC1cdTJEQkVcdTJEQzAtXHUyREM2XHUyREM4LVx1MkRDRVx1MkREMC1cdTJERDZcdTJERDgtXHUyRERFXHUyRTJGXHUzMDA1LVx1MzAwN1x1MzAyMS1cdTMwMjlcdTMwMzEtXHUzMDM1XHUzMDM4LVx1MzAzQ1x1MzA0MS1cdTMwOTZc'@; put 'dTMwOUQtXHUzMDlGXHUzMEExLVx1MzBGQVx1MzBGQy1cdTMwRkZcdTMxMDUtXHUzMTJGXHUzMTMxLVx1MzE4RVx1MzE5Mi1cdTMxOTVcdTMxQTAtXHUzMUJGXHUzMUYwLVx1MzFGRlx1MzIyMC1cdTMyMjlcdTMyNDgtXHUzMjRGXHUzMjUxLVx1MzI1Rlx1MzI4MC1cdTMyODlcdTMyQjEtXHUz'@; put 'MkJGXHUzNDAwLVx1NERCRlx1NEUwMC1cdUE0OENcdUE0RDAtXHVBNEZEXHVBNTAwLVx1QTYwQ1x1QTYxMC1cdUE2MkJcdUE2NDAtXHVBNjZFXHVBNjdGLVx1QTY5RFx1QTZBMC1cdUE2RUZcdUE3MTctXHVBNzFGXHVBNzIyLVx1QTc4OFx1QTc4Qi1cdUE3Q0FcdUE3RDBcdUE3RDFcdUE3RDNc'@; put 'dUE3RDUtXHVBN0Q5XHVBN0YyLVx1QTgwMVx1QTgwMy1cdUE4MDVcdUE4MDctXHVBODBBXHVBODBDLVx1QTgyMlx1QTgzMC1cdUE4MzVcdUE4NDAtXHVBODczXHVBODgyLVx1QThCM1x1QThEMC1cdUE4RDlcdUE4RjItXHVBOEY3XHVBOEZCXHVBOEZEXHVBOEZFXHVBOTAwLVx1QTkyNVx1QTkz'@; put 'MC1cdUE5NDZcdUE5NjAtXHVBOTdDXHVBOTg0LVx1QTlCMlx1QTlDRi1cdUE5RDlcdUE5RTAtXHVBOUU0XHVBOUU2LVx1QTlGRVx1QUEwMC1cdUFBMjhcdUFBNDAtXHVBQTQyXHVBQTQ0LVx1QUE0Qlx1QUE1MC1cdUFBNTlcdUFBNjAtXHVBQTc2XHVBQTdBXHVBQTdFLVx1QUFBRlx1QUFCMVx1'@; put 'QUFCNVx1QUFCNlx1QUFCOS1cdUFBQkRcdUFBQzBcdUFBQzJcdUFBREItXHVBQUREXHVBQUUwLVx1QUFFQVx1QUFGMi1cdUFBRjRcdUFCMDEtXHVBQjA2XHVBQjA5LVx1QUIwRVx1QUIxMS1cdUFCMTZcdUFCMjAtXHVBQjI2XHVBQjI4LVx1QUIyRVx1QUIzMC1cdUFCNUFcdUFCNUMtXHVBQjY5'@; put 'XHVBQjcwLVx1QUJFMlx1QUJGMC1cdUFCRjlcdUFDMDAtXHVEN0EzXHVEN0IwLVx1RDdDNlx1RDdDQi1cdUQ3RkJcdUY5MDAtXHVGQTZEXHVGQTcwLVx1RkFEOVx1RkIwMC1cdUZCMDZcdUZCMTMtXHVGQjE3XHVGQjFEXHVGQjFGLVx1RkIyOFx1RkIyQS1cdUZCMzZcdUZCMzgtXHVGQjNDXHVG'@; put 'QjNFXHVGQjQwXHVGQjQxXHVGQjQzXHVGQjQ0XHVGQjQ2LVx1RkJCMVx1RkJEMy1cdUZEM0RcdUZENTAtXHVGRDhGXHVGRDkyLVx1RkRDN1x1RkRGMC1cdUZERkJcdUZFNzAtXHVGRTc0XHVGRTc2LVx1RkVGQ1x1RkYxMC1cdUZGMTlcdUZGMjEtXHVGRjNBXHVGRjQxLVx1RkY1QVx1RkY2Ni1c'@; put 'dUZGQkVcdUZGQzItXHVGRkM3XHVGRkNBLVx1RkZDRlx1RkZEMi1cdUZGRDdcdUZGREEtXHVGRkRDXXxcdUQ4MDBbXHVEQzAwLVx1REMwQlx1REMwRC1cdURDMjZcdURDMjgtXHVEQzNBXHVEQzNDXHVEQzNEXHVEQzNGLVx1REM0RFx1REM1MC1cdURDNURcdURDODAtXHVEQ0ZBXHVERDA3LVx1'@; put 'REQzM1x1REQ0MC1cdURENzhcdUREOEFcdUREOEJcdURFODAtXHVERTlDXHVERUEwLVx1REVEMFx1REVFMS1cdURFRkJcdURGMDAtXHVERjIzXHVERjJELVx1REY0QVx1REY1MC1cdURGNzVcdURGODAtXHVERjlEXHVERkEwLVx1REZDM1x1REZDOC1cdURGQ0ZcdURGRDEtXHVERkQ1XXxcdUQ4'@; put 'MDFbXHVEQzAwLVx1REM5RFx1RENBMC1cdURDQTlcdURDQjAtXHVEQ0QzXHVEQ0Q4LVx1RENGQlx1REQwMC1cdUREMjdcdUREMzAtXHVERDYzXHVERDcwLVx1REQ3QVx1REQ3Qy1cdUREOEFcdUREOEMtXHVERDkyXHVERDk0XHVERDk1XHVERDk3LVx1RERBMVx1RERBMy1cdUREQjFcdUREQjMt'@; put 'XHVEREI5XHVEREJCXHVEREJDXHVERTAwLVx1REYzNlx1REY0MC1cdURGNTVcdURGNjAtXHVERjY3XHVERjgwLVx1REY4NVx1REY4Ny1cdURGQjBcdURGQjItXHVERkJBXXxcdUQ4MDJbXHVEQzAwLVx1REMwNVx1REMwOFx1REMwQS1cdURDMzVcdURDMzdcdURDMzhcdURDM0NcdURDM0YtXHVE'@; put 'QzU1XHVEQzU4LVx1REM3Nlx1REM3OS1cdURDOUVcdURDQTctXHVEQ0FGXHVEQ0UwLVx1RENGMlx1RENGNFx1RENGNVx1RENGQi1cdUREMUJcdUREMjAtXHVERDM5XHVERDgwLVx1RERCN1x1RERCQy1cdUREQ0ZcdURERDItXHVERTAwXHVERTEwLVx1REUxM1x1REUxNS1cdURFMTdcdURFMTkt'@; put 'XHVERTM1XHVERTQwLVx1REU0OFx1REU2MC1cdURFN0VcdURFODAtXHVERTlGXHVERUMwLVx1REVDN1x1REVDOS1cdURFRTRcdURFRUItXHVERUVGXHVERjAwLVx1REYzNVx1REY0MC1cdURGNTVcdURGNTgtXHVERjcyXHVERjc4LVx1REY5MVx1REZBOS1cdURGQUZdfFx1RDgwM1tcdURDMDAt'@; put 'XHVEQzQ4XHVEQzgwLVx1RENCMlx1RENDMC1cdURDRjJcdURDRkEtXHVERDIzXHVERDMwLVx1REQzOVx1REU2MC1cdURFN0VcdURFODAtXHVERUE5XHVERUIwXHVERUIxXHVERjAwLVx1REYyN1x1REYzMC1cdURGNDVcdURGNTEtXHVERjU0XHVERjcwLVx1REY4MVx1REZCMC1cdURGQ0JcdURG'@; put 'RTAtXHVERkY2XXxcdUQ4MDRbXHVEQzAzLVx1REMzN1x1REM1Mi1cdURDNkZcdURDNzFcdURDNzJcdURDNzVcdURDODMtXHVEQ0FGXHVEQ0QwLVx1RENFOFx1RENGMC1cdURDRjlcdUREMDMtXHVERDI2XHVERDM2LVx1REQzRlx1REQ0NFx1REQ0N1x1REQ1MC1cdURENzJcdURENzZcdUREODMt'@; put 'XHVEREIyXHVEREMxLVx1RERDNFx1REREMC1cdUREREFcdURERENcdURERTEtXHVEREY0XHVERTAwLVx1REUxMVx1REUxMy1cdURFMkJcdURFM0ZcdURFNDBcdURFODAtXHVERTg2XHVERTg4XHVERThBLVx1REU4RFx1REU4Ri1cdURFOURcdURFOUYtXHVERUE4XHVERUIwLVx1REVERVx1REVG'@; put 'MC1cdURFRjlcdURGMDUtXHVERjBDXHVERjBGXHVERjEwXHVERjEzLVx1REYyOFx1REYyQS1cdURGMzBcdURGMzJcdURGMzNcdURGMzUtXHVERjM5XHVERjNEXHVERjUwXHVERjVELVx1REY2MV18XHVEODA1W1x1REMwMC1cdURDMzRcdURDNDctXHVEQzRBXHVEQzUwLVx1REM1OVx1REM1Ri1c'@; put 'dURDNjFcdURDODAtXHVEQ0FGXHVEQ0M0XHVEQ0M1XHVEQ0M3XHVEQ0QwLVx1RENEOVx1REQ4MC1cdUREQUVcdURERDgtXHVERERCXHVERTAwLVx1REUyRlx1REU0NFx1REU1MC1cdURFNTlcdURFODAtXHVERUFBXHVERUI4XHVERUMwLVx1REVDOVx1REYwMC1cdURGMUFcdURGMzAtXHVERjNC'@; put 'XHVERjQwLVx1REY0Nl18XHVEODA2W1x1REMwMC1cdURDMkJcdURDQTAtXHVEQ0YyXHVEQ0ZGLVx1REQwNlx1REQwOVx1REQwQy1cdUREMTNcdUREMTVcdUREMTZcdUREMTgtXHVERDJGXHVERDNGXHVERDQxXHVERDUwLVx1REQ1OVx1RERBMC1cdUREQTdcdUREQUEtXHVEREQwXHVEREUxXHVE'@; put 'REUzXHVERTAwXHVERTBCLVx1REUzMlx1REUzQVx1REU1MFx1REU1Qy1cdURFODlcdURFOURcdURFQjAtXHVERUY4XXxcdUQ4MDdbXHVEQzAwLVx1REMwOFx1REMwQS1cdURDMkVcdURDNDBcdURDNTAtXHVEQzZDXHVEQzcyLVx1REM4Rlx1REQwMC1cdUREMDZcdUREMDhcdUREMDlcdUREMEIt'@; put 'XHVERDMwXHVERDQ2XHVERDUwLVx1REQ1OVx1REQ2MC1cdURENjVcdURENjdcdURENjhcdURENkEtXHVERDg5XHVERDk4XHVEREEwLVx1RERBOVx1REVFMC1cdURFRjJcdURGMDJcdURGMDQtXHVERjEwXHVERjEyLVx1REYzM1x1REY1MC1cdURGNTlcdURGQjBcdURGQzAtXHVERkQ0XXxcdUQ4'@; put 'MDhbXHVEQzAwLVx1REY5OV18XHVEODA5W1x1REMwMC1cdURDNkVcdURDODAtXHVERDQzXXxcdUQ4MEJbXHVERjkwLVx1REZGMF18W1x1RDgwQ1x1RDgxQy1cdUQ4MjBcdUQ4MjJcdUQ4NDAtXHVEODY4XHVEODZBLVx1RDg2Q1x1RDg2Ri1cdUQ4NzJcdUQ4NzQtXHVEODc5XHVEODgwLVx1RDg4'@; put 'M1x1RDg4NS1cdUQ4ODddW1x1REMwMC1cdURGRkZdfFx1RDgwRFtcdURDMDAtXHVEQzJGXHVEQzQxLVx1REM0Nl18XHVEODExW1x1REMwMC1cdURFNDZdfFx1RDgxQVtcdURDMDAtXHVERTM4XHVERTQwLVx1REU1RVx1REU2MC1cdURFNjlcdURFNzAtXHVERUJFXHVERUMwLVx1REVDOVx1REVE'@; put 'MC1cdURFRURcdURGMDAtXHVERjJGXHVERjQwLVx1REY0M1x1REY1MC1cdURGNTlcdURGNUItXHVERjYxXHVERjYzLVx1REY3N1x1REY3RC1cdURGOEZdfFx1RDgxQltcdURFNDAtXHVERTk2XHVERjAwLVx1REY0QVx1REY1MFx1REY5My1cdURGOUZcdURGRTBcdURGRTFcdURGRTNdfFx1RDgy'@; put 'MVtcdURDMDAtXHVERkY3XXxcdUQ4MjNbXHVEQzAwLVx1RENENVx1REQwMC1cdUREMDhdfFx1RDgyQltcdURGRjAtXHVERkYzXHVERkY1LVx1REZGQlx1REZGRFx1REZGRV18XHVEODJDW1x1REMwMC1cdUREMjJcdUREMzJcdURENTAtXHVERDUyXHVERDU1XHVERDY0LVx1REQ2N1x1REQ3MC1c'@; put 'dURFRkJdfFx1RDgyRltcdURDMDAtXHVEQzZBXHVEQzcwLVx1REM3Q1x1REM4MC1cdURDODhcdURDOTAtXHVEQzk5XXxcdUQ4MzRbXHVERUMwLVx1REVEM1x1REVFMC1cdURFRjNcdURGNjAtXHVERjc4XXxcdUQ4MzVbXHVEQzAwLVx1REM1NFx1REM1Ni1cdURDOUNcdURDOUVcdURDOUZcdURD'@; put 'QTJcdURDQTVcdURDQTZcdURDQTktXHVEQ0FDXHVEQ0FFLVx1RENCOVx1RENCQlx1RENCRC1cdURDQzNcdURDQzUtXHVERDA1XHVERDA3LVx1REQwQVx1REQwRC1cdUREMTRcdUREMTYtXHVERDFDXHVERDFFLVx1REQzOVx1REQzQi1cdUREM0VcdURENDAtXHVERDQ0XHVERDQ2XHVERDRBLVx1'@; put 'REQ1MFx1REQ1Mi1cdURFQTVcdURFQTgtXHVERUMwXHVERUMyLVx1REVEQVx1REVEQy1cdURFRkFcdURFRkMtXHVERjE0XHVERjE2LVx1REYzNFx1REYzNi1cdURGNEVcdURGNTAtXHVERjZFXHVERjcwLVx1REY4OFx1REY4QS1cdURGQThcdURGQUEtXHVERkMyXHVERkM0LVx1REZDQlx1REZD'@; put 'RS1cdURGRkZdfFx1RDgzN1tcdURGMDAtXHVERjFFXHVERjI1LVx1REYyQV18XHVEODM4W1x1REMzMC1cdURDNkRcdUREMDAtXHVERDJDXHVERDM3LVx1REQzRFx1REQ0MC1cdURENDlcdURENEVcdURFOTAtXHVERUFEXHVERUMwLVx1REVFQlx1REVGMC1cdURFRjldfFx1RDgzOVtcdURDRDAt'@; put 'XHVEQ0VCXHVEQ0YwLVx1RENGOVx1REZFMC1cdURGRTZcdURGRTgtXHVERkVCXHVERkVEXHVERkVFXHVERkYwLVx1REZGRV18XHVEODNBW1x1REMwMC1cdURDQzRcdURDQzctXHVEQ0NGXHVERDAwLVx1REQ0M1x1REQ0Qlx1REQ1MC1cdURENTldfFx1RDgzQltcdURDNzEtXHVEQ0FCXHVEQ0FE'@; put 'LVx1RENBRlx1RENCMS1cdURDQjRcdUREMDEtXHVERDJEXHVERDJGLVx1REQzRFx1REUwMC1cdURFMDNcdURFMDUtXHVERTFGXHVERTIxXHVERTIyXHVERTI0XHVERTI3XHVERTI5LVx1REUzMlx1REUzNC1cdURFMzdcdURFMzlcdURFM0JcdURFNDJcdURFNDdcdURFNDlcdURFNEJcdURFNEQt'@; put 'XHVERTRGXHVERTUxXHVERTUyXHVERTU0XHVERTU3XHVERTU5XHVERTVCXHVERTVEXHVERTVGXHVERTYxXHVERTYyXHVERTY0XHVERTY3LVx1REU2QVx1REU2Qy1cdURFNzJcdURFNzQtXHVERTc3XHVERTc5LVx1REU3Q1x1REU3RVx1REU4MC1cdURFODlcdURFOEItXHVERTlCXHVERUExLVx1'@; put 'REVBM1x1REVBNS1cdURFQTlcdURFQUItXHVERUJCXXxcdUQ4M0NbXHVERDAwLVx1REQwQ118XHVEODNFW1x1REZGMC1cdURGRjldfFx1RDg2OVtcdURDMDAtXHVERURGXHVERjAwLVx1REZGRl18XHVEODZEW1x1REMwMC1cdURGMzlcdURGNDAtXHVERkZGXXxcdUQ4NkVbXHVEQzAwLVx1REMx'@; put 'RFx1REMyMC1cdURGRkZdfFx1RDg3M1tcdURDMDAtXHVERUExXHVERUIwLVx1REZGRl18XHVEODdBW1x1REMwMC1cdURGRTBdfFx1RDg3RVtcdURDMDAtXHVERTFEXXxcdUQ4ODRbXHVEQzAwLVx1REY0QVx1REY1MC1cdURGRkZdfFx1RDg4OFtcdURDMDAtXHVERkFGXSkvKSkmJighclsxXSYm'@; put 'IXJbMl18fCFlfHx0aGlzLnJ1bGVzLmlubGluZS5wdW5jdHVhdGlvbi5leGVjKGUpKSl7dmFyIG49clswXS5sZW5ndGgtMSxzPW4scD0wLGc9IioiPT09clswXVswXT90aGlzLnJ1bGVzLmlubGluZS5lbVN0cm9uZy5yRGVsaW1Bc3Q6dGhpcy5ydWxlcy5pbmxpbmUuZW1TdHJvbmcuckRlbGlt'@; put 'VW5kO2ZvcihnLmxhc3RJbmRleD0wLHU9dS5zbGljZSgtMSp0Lmxlbmd0aCtuKTtudWxsIT0ocj1nLmV4ZWModSkpOyl7dmFyIEQsbz1yWzFdfHxyWzJdfHxyWzNdfHxyWzRdfHxyWzVdfHxyWzZdO2lmKG8paWYobz1vLmxlbmd0aCxyWzNdfHxyWzRdKXMrPW87ZWxzZSBpZigocls1XXx8cls2'@; put 'XSkmJm4lMyYmISgobitvKSUzKSlwKz1vO2Vsc2UgaWYoISgwPChzLT1vKSkpcmV0dXJuIG89TWF0aC5taW4obyxvK3MrcCksRD10LnNsaWNlKDAsbityLmluZGV4K28rMSksTWF0aC5taW4obixvKSUyPyhvPUQuc2xpY2UoMSwtMSkse3R5cGU6ImVtIixyYXc6RCx0ZXh0Om8sdG9rZW5zOnRo'@; put 'aXMubGV4ZXIuaW5saW5lVG9rZW5zKG8pfSk6KG89RC5zbGljZSgyLC0yKSx7dHlwZToic3Ryb25nIixyYXc6RCx0ZXh0Om8sdG9rZW5zOnRoaXMubGV4ZXIuaW5saW5lVG9rZW5zKG8pfSl9fX0saS5jb2Rlc3Bhbj1mdW5jdGlvbihuKXt2YXIgdSxlLHI7aWYobj10aGlzLnJ1bGVzLmlubGlu'@; put 'ZS5jb2RlLmV4ZWMobikpcmV0dXJuIHI9blsyXS5yZXBsYWNlKC9cbi9nLCIgIiksdT0vW14gXS8udGVzdChyKSxlPS9eIC8udGVzdChyKSYmLyAkLy50ZXN0KHIpLHI9eShyPXUmJmU/ci5zdWJzdHJpbmcoMSxyLmxlbmd0aC0xKTpyLCEwKSx7dHlwZToiY29kZXNwYW4iLHJhdzpuWzBdLHRl'@; put 'eHQ6cn19LGkuYnI9ZnVuY3Rpb24odCl7aWYodD10aGlzLnJ1bGVzLmlubGluZS5ici5leGVjKHQpKXJldHVybnt0eXBlOiJiciIscmF3OnRbMF19fSxpLmRlbD1mdW5jdGlvbih0KXtpZih0PXRoaXMucnVsZXMuaW5saW5lLmRlbC5leGVjKHQpKXJldHVybnt0eXBlOiJkZWwiLHJhdzp0WzBd'@; put 'LHRleHQ6dFsyXSx0b2tlbnM6dGhpcy5sZXhlci5pbmxpbmVUb2tlbnModFsyXSl9fSxpLmF1dG9saW5rPWZ1bmN0aW9uKHIsdSl7dmFyIGU7aWYocj10aGlzLnJ1bGVzLmlubGluZS5hdXRvbGluay5leGVjKHIpKXJldHVybiB1PSJAIj09PXJbMl0/Im1haWx0bzoiKyhlPXkodGhpcy5vcHRp'@; put 'b25zLm1hbmdsZT91KHJbMV0pOnJbMV0pKTplPXkoclsxXSkse3R5cGU6ImxpbmsiLHJhdzpyWzBdLHRleHQ6ZSxocmVmOnUsdG9rZW5zOlt7dHlwZToidGV4dCIscmF3OmUsdGV4dDplfV19fSxpLnVybD1mdW5jdGlvbih0LHUpe3ZhciBlLHIsbixzO2lmKGU9dGhpcy5ydWxlcy5pbmxpbmUu'@; put 'dXJsLmV4ZWModCkpe2lmKCJAIj09PWVbMl0pbj0ibWFpbHRvOiIrKHI9eSh0aGlzLm9wdGlvbnMubWFuZ2xlP3UoZVswXSk6ZVswXSkpO2Vsc2V7Zm9yKDtzPWVbMF0sZVswXT10aGlzLnJ1bGVzLmlubGluZS5fYmFja3BlZGFsLmV4ZWMoZVswXSlbMF0scyE9PWVbMF07KTtyPXkoZVswXSks'@; put 'bj0id3d3LiI9PT1lWzFdPyJodHRwOi8vIitlWzBdOmVbMF19cmV0dXJue3R5cGU6ImxpbmsiLHJhdzplWzBdLHRleHQ6cixocmVmOm4sdG9rZW5zOlt7dHlwZToidGV4dCIscmF3OnIsdGV4dDpyfV19fX0saS5pbmxpbmVUZXh0PWZ1bmN0aW9uKHQsdSl7aWYodD10aGlzLnJ1bGVzLmlubGlu'@; put 'ZS50ZXh0LmV4ZWModCkpcmV0dXJuIHU9dGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrP3RoaXMub3B0aW9ucy5zYW5pdGl6ZT90aGlzLm9wdGlvbnMuc2FuaXRpemVyP3RoaXMub3B0aW9ucy5zYW5pdGl6ZXIodFswXSk6eSh0WzBdKTp0WzBdOnkodGhpcy5vcHRpb25zLnNtYXJ0eXBhbnRz'@; put 'P3UodFswXSk6dFswXSkse3R5cGU6InRleHQiLHJhdzp0WzBdLHRleHQ6dX19LGF9KCksZj17bmV3bGluZTovXig/OiAqKD86XG58JCkpKy8sY29kZTovXiggezR9W15cbl0rKD86XG4oPzogKig/OlxufCQpKSopPykrLyxmZW5jZXM6L14gezAsM30oYHszLH0oPz1bXmBcbl0qKD86XG58JCkp'@; put 'fH57Myx9KShbXlxuXSopKD86XG58JCkoPzp8KFtcc1xTXSo/KSg/OlxufCQpKSg/OiB7MCwzfVwxW35gXSogKig/PVxufCQpfCQpLyxocjovXiB7MCwzfSgoPzotW1x0IF0qKXszLH18KD86X1sgXHRdKil7Myx9fCg/OlwqWyBcdF0qKXszLH0pKD86XG4rfCQpLyxoZWFkaW5nOi9eIHswLDN9'@; put 'KCN7MSw2fSkoPz1cc3wkKSguKikoPzpcbit8JCkvLGJsb2NrcXVvdGU6L14oIHswLDN9PiA/KHBhcmFncmFwaHxbXlxuXSopKD86XG58JCkpKy8sbGlzdDovXiggezAsM31idWxsKShbIFx0XVteXG5dKz8pPyg/OlxufCQpLyxodG1sOiJeIHswLDN9KD86PChzY3JpcHR8cHJlfHN0eWxlfHRl'@; put 'eHRhcmVhKVtcXHM+XVtcXHNcXFNdKj8oPzo8L1xcMT5bXlxcbl0qXFxuK3wkKXxjb21tZW50W15cXG5dKihcXG4rfCQpfDxcXD9bXFxzXFxTXSo/KD86XFw/Plxcbip8JCl8PCFbQS1aXVtcXHNcXFNdKj8oPzo+XFxuKnwkKXw8IVxcW0NEQVRBXFxbW1xcc1xcU10qPyg/OlxcXVxcXT5cXG4q'@; put 'fCQpfDwvPyh0YWcpKD86ICt8XFxufC8/PilbXFxzXFxTXSo/KD86KD86XFxuICopK1xcbnwkKXw8KD8hc2NyaXB0fHByZXxzdHlsZXx0ZXh0YXJlYSkoW2Etel1bXFx3LV0qKSg/OmF0dHJpYnV0ZSkqPyAqLz8+KD89WyBcXHRdKig/OlxcbnwkKSlbXFxzXFxTXSo/KD86KD86XFxuICopK1xc'@; put 'bnwkKXw8Lyg/IXNjcmlwdHxwcmV8c3R5bGV8dGV4dGFyZWEpW2Etel1bXFx3LV0qXFxzKj4oPz1bIFxcdF0qKD86XFxufCQpKVtcXHNcXFNdKj8oPzooPzpcXG4gKikrXFxufCQpKSIsZGVmOi9eIHswLDN9XFsobGFiZWwpXF06ICooPzpcbiAqKT8oW148XHNdW15cc10qfDwuKj8+KSg/Oig/'@; put 'OiArKD86XG4gKik/fCAqXG4gKikodGl0bGUpKT8gKig/OlxuK3wkKS8sdGFibGU6SSxsaGVhZGluZzovXigoPzooPyFeYnVsbCApLnxcbig/IVxufGJ1bGwgKSkrPylcbiB7MCwzfSg9K3wtKykgKig/OlxuK3wkKS8sX3BhcmFncmFwaDovXihbXlxuXSsoPzpcbig/IWhyfGhlYWRpbmd8bGhl'@; put 'YWRpbmd8YmxvY2txdW90ZXxmZW5jZXN8bGlzdHxodG1sfHRhYmxlfCArXG4pW15cbl0rKSopLyx0ZXh0Oi9eW15cbl0rLyxfbGFiZWw6Lyg/IVxzKlxdKSg/OlxcLnxbXlxbXF1cXF0pKy8sX3RpdGxlOi8oPzoiKD86XFwiP3xbXiJcXF0pKiJ8J1teJ1xuXSooPzpcblteJ1xuXSspKlxuPyd8'@; put 'XChbXigpXSpcKSkvfSxjPShmLmRlZj1FKGYuZGVmKS5yZXBsYWNlKCJsYWJlbCIsZi5fbGFiZWwpLnJlcGxhY2UoInRpdGxlIixmLl90aXRsZSkuZ2V0UmVnZXgoKSxmLmJ1bGxldD0vKD86WyorLV18XGR7MSw5fVsuKV0pLyxmLmxpc3RJdGVtU3RhcnQ9RSgvXiggKikoYnVsbCkgKi8pLnJl'@; put 'cGxhY2UoImJ1bGwiLGYuYnVsbGV0KS5nZXRSZWdleCgpLGYubGlzdD1FKGYubGlzdCkucmVwbGFjZSgvYnVsbC9nLGYuYnVsbGV0KS5yZXBsYWNlKCJociIsIlxcbisoPz1cXDE/KD86KD86LSAqKXszLH18KD86XyAqKXszLH18KD86XFwqICopezMsfSkoPzpcXG4rfCQpKSIpLnJlcGxhY2Uo'@; put 'ImRlZiIsIlxcbisoPz0iK2YuZGVmLnNvdXJjZSsiKSIpLmdldFJlZ2V4KCksZi5fdGFnPSJhZGRyZXNzfGFydGljbGV8YXNpZGV8YmFzZXxiYXNlZm9udHxibG9ja3F1b3RlfGJvZHl8Y2FwdGlvbnxjZW50ZXJ8Y29sfGNvbGdyb3VwfGRkfGRldGFpbHN8ZGlhbG9nfGRpcnxkaXZ8ZGx8ZHR8'@; put 'ZmllbGRzZXR8ZmlnY2FwdGlvbnxmaWd1cmV8Zm9vdGVyfGZvcm18ZnJhbWV8ZnJhbWVzZXR8aFsxLTZdfGhlYWR8aGVhZGVyfGhyfGh0bWx8aWZyYW1lfGxlZ2VuZHxsaXxsaW5rfG1haW58bWVudXxtZW51aXRlbXxtZXRhfG5hdnxub2ZyYW1lc3xvbHxvcHRncm91cHxvcHRpb258cHxwYXJh'@; put 'bXxzZWN0aW9ufHNvdXJjZXxzdW1tYXJ5fHRhYmxlfHRib2R5fHRkfHRmb290fHRofHRoZWFkfHRpdGxlfHRyfHRyYWNrfHVsIixmLl9jb21tZW50PS88IS0tKD8hLT8+KVtcc1xTXSo/KD86LS0+fCQpLyxmLmh0bWw9RShmLmh0bWwsImkiKS5yZXBsYWNlKCJjb21tZW50IixmLl9jb21tZW50'@; put 'KS5yZXBsYWNlKCJ0YWciLGYuX3RhZykucmVwbGFjZSgiYXR0cmlidXRlIiwvICtbYS16QS1aOl9dW1x3LjotXSooPzogKj0gKiJbXiJcbl0qInwgKj0gKidbXidcbl0qJ3wgKj0gKlteXHMiJz08PmBdKyk/LykuZ2V0UmVnZXgoKSxmLmxoZWFkaW5nPUUoZi5saGVhZGluZykucmVwbGFjZSgv'@; put 'YnVsbC9nLGYuYnVsbGV0KS5nZXRSZWdleCgpLGYucGFyYWdyYXBoPUUoZi5fcGFyYWdyYXBoKS5yZXBsYWNlKCJociIsZi5ocikucmVwbGFjZSgiaGVhZGluZyIsIiB7MCwzfSN7MSw2fSAiKS5yZXBsYWNlKCJ8bGhlYWRpbmciLCIiKS5yZXBsYWNlKCJ8dGFibGUiLCIiKS5yZXBsYWNlKCJi'@; put 'bG9ja3F1b3RlIiwiIHswLDN9PiIpLnJlcGxhY2UoImZlbmNlcyIsIiB7MCwzfSg/OmB7Myx9KD89W15gXFxuXSpcXG4pfH57Myx9KVteXFxuXSpcXG4iKS5yZXBsYWNlKCJsaXN0IiwiIHswLDN9KD86WyorLV18MVsuKV0pICIpLnJlcGxhY2UoImh0bWwiLCI8Lz8oPzp0YWcpKD86ICt8XFxu'@; put 'fC8/Pil8PCg/OnNjcmlwdHxwcmV8c3R5bGV8dGV4dGFyZWF8IS0tKSIpLnJlcGxhY2UoInRhZyIsZi5fdGFnKS5nZXRSZWdleCgpLGYuYmxvY2txdW90ZT1FKGYuYmxvY2txdW90ZSkucmVwbGFjZSgicGFyYWdyYXBoIixmLnBhcmFncmFwaCkuZ2V0UmVnZXgoKSxmLm5vcm1hbD12KHt9LGYp'@; put 'LGYuZ2ZtPXYoe30sZi5ub3JtYWwse3RhYmxlOiJeICooW15cXG4gXS4qXFx8LiopXFxuIHswLDN9KD86XFx8ICopPyg6Py0rOj8gKig/OlxcfCAqOj8tKzo/ICopKikoPzpcXHwgKik/KD86XFxuKCg/Oig/ISAqXFxufGhyfGhlYWRpbmd8YmxvY2txdW90ZXxjb2RlfGZlbmNlc3xsaXN0fGh0'@; put 'bWwpLiooPzpcXG58JCkpKilcXG4qfCQpIn0pLGYuZ2ZtLnRhYmxlPUUoZi5nZm0udGFibGUpLnJlcGxhY2UoImhyIixmLmhyKS5yZXBsYWNlKCJoZWFkaW5nIiwiIHswLDN9I3sxLDZ9ICIpLnJlcGxhY2UoImJsb2NrcXVvdGUiLCIgezAsM30+IikucmVwbGFjZSgiY29kZSIsIiB7NH1bXlxc'@; put 'bl0iKS5yZXBsYWNlKCJmZW5jZXMiLCIgezAsM30oPzpgezMsfSg/PVteYFxcbl0qXFxuKXx+ezMsfSlbXlxcbl0qXFxuIikucmVwbGFjZSgibGlzdCIsIiB7MCwzfSg/OlsqKy1dfDFbLildKSAiKS5yZXBsYWNlKCJodG1sIiwiPC8/KD86dGFnKSg/OiArfFxcbnwvPz4pfDwoPzpzY3JpcHR8'@; put 'cHJlfHN0eWxlfHRleHRhcmVhfCEtLSkiKS5yZXBsYWNlKCJ0YWciLGYuX3RhZykuZ2V0UmVnZXgoKSxmLmdmbS5wYXJhZ3JhcGg9RShmLl9wYXJhZ3JhcGgpLnJlcGxhY2UoImhyIixmLmhyKS5yZXBsYWNlKCJoZWFkaW5nIiwiIHswLDN9I3sxLDZ9ICIpLnJlcGxhY2UoInxsaGVhZGluZyIs'@; put 'IiIpLnJlcGxhY2UoInRhYmxlIixmLmdmbS50YWJsZSkucmVwbGFjZSgiYmxvY2txdW90ZSIsIiB7MCwzfT4iKS5yZXBsYWNlKCJmZW5jZXMiLCIgezAsM30oPzpgezMsfSg/PVteYFxcbl0qXFxuKXx+ezMsfSlbXlxcbl0qXFxuIikucmVwbGFjZSgibGlzdCIsIiB7MCwzfSg/OlsqKy1dfDFb'@; put 'LildKSAiKS5yZXBsYWNlKCJodG1sIiwiPC8/KD86dGFnKSg/OiArfFxcbnwvPz4pfDwoPzpzY3JpcHR8cHJlfHN0eWxlfHRleHRhcmVhfCEtLSkiKS5yZXBsYWNlKCJ0YWciLGYuX3RhZykuZ2V0UmVnZXgoKSxmLnBlZGFudGljPXYoe30sZi5ub3JtYWwse2h0bWw6RSgiXiAqKD86Y29tbWVu'@; put 'dCAqKD86XFxufFxccyokKXw8KHRhZylbXFxzXFxTXSs/PC9cXDE+ICooPzpcXG57Mix9fFxccyokKXw8dGFnKD86XCJbXlwiXSpcInwnW14nXSonfFxcc1teJ1wiLz5cXHNdKikqPy8/PiAqKD86XFxuezIsfXxcXHMqJCkpIikucmVwbGFjZSgiY29tbWVudCIsZi5fY29tbWVudCkucmVwbGFj'@; put 'ZSgvdGFnL2csIig/ISg/OmF8ZW18c3Ryb25nfHNtYWxsfHN8Y2l0ZXxxfGRmbnxhYmJyfGRhdGF8dGltZXxjb2RlfHZhcnxzYW1wfGtiZHxzdWJ8c3VwfGl8Ynx1fG1hcmt8cnVieXxydHxycHxiZGl8YmRvfHNwYW58YnJ8d2JyfGluc3xkZWx8aW1nKVxcYilcXHcrKD8hOnxbXlxcd1xcc0Bd'@; put 'KkApXFxiIikuZ2V0UmVnZXgoKSxkZWY6L14gKlxbKFteXF1dKylcXTogKjw/KFteXHM+XSspPj8oPzogKyhbIihdW15cbl0rWyIpXSkpPyAqKD86XG4rfCQpLyxoZWFkaW5nOi9eKCN7MSw2fSkoLiopKD86XG4rfCQpLyxmZW5jZXM6SSxsaGVhZGluZzovXiguKz8pXG4gezAsM30oPSt8LSsp'@; put 'ICooPzpcbit8JCkvLHBhcmFncmFwaDpFKGYubm9ybWFsLl9wYXJhZ3JhcGgpLnJlcGxhY2UoImhyIixmLmhyKS5yZXBsYWNlKCJoZWFkaW5nIiwiICojezEsNn0gKlteXG5dIikucmVwbGFjZSgibGhlYWRpbmciLGYubGhlYWRpbmcpLnJlcGxhY2UoImJsb2NrcXVvdGUiLCIgezAsM30+Iiku'@; put 'cmVwbGFjZSgifGZlbmNlcyIsIiIpLnJlcGxhY2UoInxsaXN0IiwiIikucmVwbGFjZSgifGh0bWwiLCIiKS5nZXRSZWdleCgpfSkse2VzY2FwZTovXlxcKFshIiMkJSYnKCkqKyxcLS4vOjs8PT4/QFxbXF1cXF5fYHt8fX5dKS8sYXV0b2xpbms6L148KHNjaGVtZTpbXlxzXHgwMC1ceDFmPD5d'@; put 'KnxlbWFpbCk+Lyx1cmw6SSx0YWc6Il5jb21tZW50fF48L1thLXpBLVpdW1xcdzotXSpcXHMqPnxePFthLXpBLVpdW1xcdy1dKig/OmF0dHJpYnV0ZSkqP1xccyovPz58XjxcXD9bXFxzXFxTXSo/XFw/PnxePCFbYS16QS1aXStcXHNbXFxzXFxTXSo/PnxePCFcXFtDREFUQVxcW1tcXHNcXFNd'@; put 'Kj9cXF1cXF0+IixsaW5rOi9eIT9cWyhsYWJlbClcXVwoXHMqKGhyZWYpKD86XHMrKHRpdGxlKSk/XHMqXCkvLHJlZmxpbms6L14hP1xbKGxhYmVsKVxdXFsocmVmKVxdLyxub2xpbms6L14hP1xbKHJlZilcXSg/OlxbXF0pPy8scmVmbGlua1NlYXJjaDoicmVmbGlua3xub2xpbmsoPyFcXCgp'@; put 'IixlbVN0cm9uZzp7bERlbGltOi9eKD86XCorKD86KCg/IVwqKVtwdW5jdF0pfFteXHMqXSkpfF5fKyg/OigoPyFfKVtwdW5jdF0pfChbXlxzX10pKS8sckRlbGltQXN0Oi9eW15fKl0qP19fW15fKl0qP1wqW15fKl0qPyg/PV9fKXxbXipdKyg/PVteKl0pfCg/IVwqKVtwdW5jdF0oXCorKSg/'@; put 'PVtcc118JCl8W15wdW5jdFxzXShcKispKD8hXCopKD89W3B1bmN0XHNdfCQpfCg/IVwqKVtwdW5jdFxzXShcKispKD89W15wdW5jdFxzXSl8W1xzXShcKispKD8hXCopKD89W3B1bmN0XSl8KD8hXCopW3B1bmN0XShcKispKD8hXCopKD89W3B1bmN0XSl8W15wdW5jdFxzXShcKispKD89W15w'@; put 'dW5jdFxzXSkvLHJEZWxpbVVuZDovXlteXypdKj9cKlwqW15fKl0qP19bXl8qXSo/KD89XCpcKil8W15fXSsoPz1bXl9dKXwoPyFfKVtwdW5jdF0oXyspKD89W1xzXXwkKXxbXnB1bmN0XHNdKF8rKSg/IV8pKD89W3B1bmN0XHNdfCQpfCg/IV8pW3B1bmN0XHNdKF8rKSg/PVtecHVuY3Rcc10p'@; put 'fFtcc10oXyspKD8hXykoPz1bcHVuY3RdKXwoPyFfKVtwdW5jdF0oXyspKD8hXykoPz1bcHVuY3RdKS99LGNvZGU6L14oYCspKFteYF18W15gXVtcc1xTXSo/W15gXSlcMSg/IWApLyxicjovXiggezIsfXxcXClcbig/IVxzKiQpLyxkZWw6SSx0ZXh0Oi9eKGArfFteYF0pKD86KD89IHsyLH1c'@; put 'bil8W1xzXFNdKj8oPzooPz1bXFw8IVxbYCpfXXxcYl98JCl8W14gXSg/PSB7Mix9XG4pKSkvLHB1bmN0dWF0aW9uOi9eKCg/IVsqX10pW1xzcHVuY3R1YXRpb25dKS99KTtmdW5jdGlvbiBrZShhKXtyZXR1cm4gYS5yZXBsYWNlKC8tLS0vZywiXHUyMDE0IikucmVwbGFjZSgvLS0vZywiXHUy'@; put 'MDEzIikucmVwbGFjZSgvKF58Wy1cdTIwMTQvKFxbeyJcc10pJy9nLCIkMVx1MjAxOCIpLnJlcGxhY2UoLycvZywiXHUyMDE5IikucmVwbGFjZSgvKF58Wy1cdTIwMTQvKFxbe1x1MjAxOFxzXSkiL2csIiQxXHUyMDFjIikucmVwbGFjZSgvIi9nLCJcdTIwMWQiKS5yZXBsYWNlKC9cLnszfS9n'@; put 'LCJcdTIwMjYiKX1mdW5jdGlvbiBzZShhKXtmb3IodmFyIGksdD0iIix1PWEubGVuZ3RoLGU9MDtlPHU7ZSsrKWk9YS5jaGFyQ29kZUF0KGUpLHQrPSImIyIrKGk9LjU8TWF0aC5yYW5kb20oKT8ieCIraS50b1N0cmluZygxNik6aSkrIjsiO3JldHVybiB0fWMuX3B1bmN0dWF0aW9uPSJcXHB7'@; put 'UH0kKzw9PmBefH4iLGMucHVuY3R1YXRpb249RShjLnB1bmN0dWF0aW9uLCJ1IikucmVwbGFjZSgvcHVuY3R1YXRpb24vZyxjLl9wdW5jdHVhdGlvbikuZ2V0UmVnZXgoKSxjLmJsb2NrU2tpcD0vXFtbXltcXV0qP1xdXChbXlwoXCldKj9cKXxgW15gXSo/YHw8W148Pl0qPz4vZyxjLmFueVB1'@; put 'bmN0dWF0aW9uPS9cXFtwdW5jdF0vZyxjLl9lc2NhcGVzPS9cXChbcHVuY3RdKS9nLGMuX2NvbW1lbnQ9RShmLl9jb21tZW50KS5yZXBsYWNlKCIoPzotLVx4M2V8JCkiLCItLVx4M2UiKS5nZXRSZWdleCgpLGMuZW1TdHJvbmcubERlbGltPUUoYy5lbVN0cm9uZy5sRGVsaW0sInUiKS5yZXBs'@; put 'YWNlKC9wdW5jdC9nLGMuX3B1bmN0dWF0aW9uKS5nZXRSZWdleCgpLGMuZW1TdHJvbmcuckRlbGltQXN0PUUoYy5lbVN0cm9uZy5yRGVsaW1Bc3QsImd1IikucmVwbGFjZSgvcHVuY3QvZyxjLl9wdW5jdHVhdGlvbikuZ2V0UmVnZXgoKSxjLmVtU3Ryb25nLnJEZWxpbVVuZD1FKGMuZW1TdHJv'@; put 'bmcuckRlbGltVW5kLCJndSIpLnJlcGxhY2UoL3B1bmN0L2csYy5fcHVuY3R1YXRpb24pLmdldFJlZ2V4KCksYy5hbnlQdW5jdHVhdGlvbj1FKGMuYW55UHVuY3R1YXRpb24sImd1IikucmVwbGFjZSgvcHVuY3QvZyxjLl9wdW5jdHVhdGlvbikuZ2V0UmVnZXgoKSxjLl9lc2NhcGVzPUUoYy5f'@; put 'ZXNjYXBlcywiZ3UiKS5yZXBsYWNlKC9wdW5jdC9nLGMuX3B1bmN0dWF0aW9uKS5nZXRSZWdleCgpLGMuX3NjaGVtZT0vW2EtekEtWl1bYS16QS1aMC05Ky4tXXsxLDMxfS8sYy5fZW1haWw9L1thLXpBLVowLTkuISMkJSYnKisvPT9eX2B7fH1+LV0rKEApW2EtekEtWjAtOV0oPzpbYS16QS1a'@; put 'MC05LV17MCw2MX1bYS16QS1aMC05XSk/KD86XC5bYS16QS1aMC05XSg/OlthLXpBLVowLTktXXswLDYxfVthLXpBLVowLTldKT8pKyg/IVstX10pLyxjLmF1dG9saW5rPUUoYy5hdXRvbGluaykucmVwbGFjZSgic2NoZW1lIixjLl9zY2hlbWUpLnJlcGxhY2UoImVtYWlsIixjLl9lbWFpbCku'@; put 'Z2V0UmVnZXgoKSxjLl9hdHRyaWJ1dGU9L1xzK1thLXpBLVo6X11bXHcuOi1dKig/OlxzKj1ccyoiW14iXSoifFxzKj1ccyonW14nXSonfFxzKj1ccypbXlxzIic9PD5gXSspPy8sYy50YWc9RShjLnRhZykucmVwbGFjZSgiY29tbWVudCIsYy5fY29tbWVudCkucmVwbGFjZSgiYXR0cmlidXRl'@; put 'IixjLl9hdHRyaWJ1dGUpLmdldFJlZ2V4KCksYy5fbGFiZWw9Lyg/OlxbKD86XFwufFteXFtcXVxcXSkqXF18XFwufGBbXmBdKmB8W15cW1xdXFxgXSkqPy8sYy5faHJlZj0vPCg/OlxcLnxbXlxuPD5cXF0pKz58W15cc1x4MDAtXHgxZl0qLyxjLl90aXRsZT0vIig/OlxcIj98W14iXFxdKSoi'@; put 'fCcoPzpcXCc/fFteJ1xcXSkqJ3xcKCg/OlxcXCk/fFteKVxcXSkqXCkvLGMubGluaz1FKGMubGluaykucmVwbGFjZSgibGFiZWwiLGMuX2xhYmVsKS5yZXBsYWNlKCJocmVmIixjLl9ocmVmKS5yZXBsYWNlKCJ0aXRsZSIsYy5fdGl0bGUpLmdldFJlZ2V4KCksYy5yZWZsaW5rPUUoYy5yZWZs'@; put 'aW5rKS5yZXBsYWNlKCJsYWJlbCIsYy5fbGFiZWwpLnJlcGxhY2UoInJlZiIsZi5fbGFiZWwpLmdldFJlZ2V4KCksYy5ub2xpbms9RShjLm5vbGluaykucmVwbGFjZSgicmVmIixmLl9sYWJlbCkuZ2V0UmVnZXgoKSxjLnJlZmxpbmtTZWFyY2g9RShjLnJlZmxpbmtTZWFyY2gsImciKS5yZXBs'@; put 'YWNlKCJyZWZsaW5rIixjLnJlZmxpbmspLnJlcGxhY2UoIm5vbGluayIsYy5ub2xpbmspLmdldFJlZ2V4KCksYy5ub3JtYWw9dih7fSxjKSxjLnBlZGFudGljPXYoe30sYy5ub3JtYWwse3N0cm9uZzp7c3RhcnQ6L15fX3xcKlwqLyxtaWRkbGU6L15fXyg/PVxTKShbXHNcU10qP1xTKV9fKD8h'@; put 'Xyl8XlwqXCooPz1cUykoW1xzXFNdKj9cUylcKlwqKD8hXCopLyxlbmRBc3Q6L1wqXCooPyFcKikvZyxlbmRVbmQ6L19fKD8hXykvZ30sZW06e3N0YXJ0Oi9eX3xcKi8sbWlkZGxlOi9eKClcKig/PVxTKShbXHNcU10qP1xTKVwqKD8hXCopfF5fKD89XFMpKFtcc1xTXSo/XFMpXyg/IV8pLyxl'@; put 'bmRBc3Q6L1wqKD8hXCopL2csZW5kVW5kOi9fKD8hXykvZ30sbGluazpFKC9eIT9cWyhsYWJlbClcXVwoKC4qPylcKS8pLnJlcGxhY2UoImxhYmVsIixjLl9sYWJlbCkuZ2V0UmVnZXgoKSxyZWZsaW5rOkUoL14hP1xbKGxhYmVsKVxdXHMqXFsoW15cXV0qKVxdLykucmVwbGFjZSgibGFiZWwi'@; put 'LGMuX2xhYmVsKS5nZXRSZWdleCgpfSksYy5nZm09dih7fSxjLm5vcm1hbCx7ZXNjYXBlOkUoYy5lc2NhcGUpLnJlcGxhY2UoIl0pIiwifnxdKSIpLmdldFJlZ2V4KCksX2V4dGVuZGVkX2VtYWlsOi9bQS1aYS16MC05Ll8rLV0rKEApW2EtekEtWjAtOS1fXSsoPzpcLlthLXpBLVowLTktX10q'@; put 'W2EtekEtWjAtOV0pKyg/IVstX10pLyx1cmw6L14oKD86ZnRwfGh0dHBzPyk6XC9cL3x3d3dcLikoPzpbYS16QS1aMC05XC1dK1wuPykrW15cczxdKnxeZW1haWwvLF9iYWNrcGVkYWw6Lyg/OltePyEuLDo7Kl8nIn4oKSZdK3xcKFteKV0qXCl8Jig/IVthLXpBLVowLTldKzskKXxbPyEuLDo7'@; put 'Kl8nIn4pXSsoPyEkKSkrLyxkZWw6L14ofn4/KSg/PVteXHN+XSkoW1xzXFNdKj9bXlxzfl0pXDEoPz1bXn5dfCQpLyx0ZXh0Oi9eKFtgfl0rfFteYH5dKSg/Oig/PSB7Mix9XG4pfCg/PVthLXpBLVowLTkuISMkJSYnKitcLz0/X2B7XHx9fi1dK0ApfFtcc1xTXSo/KD86KD89W1xcPCFcW2Aq'@; put 'fl9dfFxiX3xodHRwcz86XC9cL3xmdHA6XC9cL3x3d3dcLnwkKXxbXiBdKD89IHsyLH1cbil8W15hLXpBLVowLTkuISMkJSYnKitcLz0/X2B7XHx9fi1dKD89W2EtekEtWjAtOS4hIyQlJicqK1wvPT9fYHtcfH1+LV0rQCkpKS99KSxjLmdmbS51cmw9RShjLmdmbS51cmwsImkiKS5yZXBsYWNl'@; put 'KCJlbWFpbCIsYy5nZm0uX2V4dGVuZGVkX2VtYWlsKS5nZXRSZWdleCgpLGMuYnJlYWtzPXYoe30sYy5nZm0se2JyOkUoYy5icikucmVwbGFjZSgiezIsfSIsIioiKS5nZXRSZWdleCgpLHRleHQ6RShjLmdmbS50ZXh0KS5yZXBsYWNlKCJcXGJfIiwiXFxiX3wgezIsfVxcbiIpLnJlcGxhY2Uo'@; put 'L1x7MixcfS9nLCIqIikuZ2V0UmVnZXgoKX0pO3ZhciBTPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShlKXt0aGlzLnRva2Vucz1bXSx0aGlzLnRva2Vucy5saW5rcz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMub3B0aW9ucz1lfHxDLmRlZmF1bHRzLHRoaXMub3B0aW9ucy50b2tlbml6ZXI9dGhp'@; put 'cy5vcHRpb25zLnRva2VuaXplcnx8bmV3IGosdGhpcy50b2tlbml6ZXI9dGhpcy5vcHRpb25zLnRva2VuaXplcix0aGlzLnRva2VuaXplci5vcHRpb25zPXRoaXMub3B0aW9ucywodGhpcy50b2tlbml6ZXIubGV4ZXI9dGhpcykuaW5saW5lUXVldWU9W10sdGhpcy5zdGF0ZT17aW5MaW5rOiEx'@; put 'LGluUmF3QmxvY2s6ITEsdG9wOiEwfSxlPXtibG9jazpmLm5vcm1hbCxpbmxpbmU6Yy5ub3JtYWx9LHRoaXMub3B0aW9ucy5wZWRhbnRpYz8oZS5ibG9jaz1mLnBlZGFudGljLGUuaW5saW5lPWMucGVkYW50aWMpOnRoaXMub3B0aW9ucy5nZm0mJihlLmJsb2NrPWYuZ2ZtLGUuaW5saW5lPXRo'@; put 'aXMub3B0aW9ucy5icmVha3M/Yy5icmVha3M6Yy5nZm0pLHRoaXMudG9rZW5pemVyLnJ1bGVzPWV9YS5sZXg9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gbmV3IGEocikubGV4KGUpfSxhLmxleElubGluZT1mdW5jdGlvbihlLHIpe3JldHVybiBuZXcgYShyKS5pbmxpbmVUb2tlbnMoZSl9O3ZhciB0'@; put 'LHU9YS5wcm90b3R5cGU7cmV0dXJuIHUubGV4PWZ1bmN0aW9uKGUpe3ZhciByO2ZvcihlPWUucmVwbGFjZSgvXHJcbnxcci9nLCJcbiIpLHRoaXMuYmxvY2tUb2tlbnMoZSx0aGlzLnRva2Vucyk7cj10aGlzLmlubGluZVF1ZXVlLnNoaWZ0KCk7KXRoaXMuaW5saW5lVG9rZW5zKHIuc3JjLHIu'@; put 'dG9rZW5zKTtyZXR1cm4gdGhpcy50b2tlbnN9LHUuYmxvY2tUb2tlbnM9ZnVuY3Rpb24oZSxyKXt2YXIgbixzLHAsZyxEPXRoaXM7Zm9yKHZvaWQgMD09PXImJihyPVtdKSxlPXRoaXMub3B0aW9ucy5wZWRhbnRpYz9lLnJlcGxhY2UoL1x0L2csIiAgICAiKS5yZXBsYWNlKC9eICskL2dtLCIi'@; put 'KTplLnJlcGxhY2UoL14oICopKFx0KykvZ20sZnVuY3Rpb24oRixkLHgpe3JldHVybiBkKyIgICAgIi5yZXBlYXQoeC5sZW5ndGgpfSk7ZTspe3ZhciBvPWZ1bmN0aW9uKCl7aWYoRC5vcHRpb25zLmV4dGVuc2lvbnMmJkQub3B0aW9ucy5leHRlbnNpb25zLmJsb2NrJiZELm9wdGlvbnMuZXh0'@; put 'ZW5zaW9ucy5ibG9jay5zb21lKGZ1bmN0aW9uKGwpe3JldHVybiEhKG49bC5jYWxsKHtsZXhlcjpEfSxlLHIpKSYmKGU9ZS5zdWJzdHJpbmcobi5yYXcubGVuZ3RoKSxyLnB1c2gobiksITApfSkpcmV0dXJuImNvbnRpbnVlIjtpZihuPUQudG9rZW5pemVyLnNwYWNlKGUpKXJldHVybiBlPWUu'@; put 'c3Vic3RyaW5nKG4ucmF3Lmxlbmd0aCksMT09PW4ucmF3Lmxlbmd0aCYmMDxyLmxlbmd0aD9yW3IubGVuZ3RoLTFdLnJhdys9IlxuIjpyLnB1c2gobiksImNvbnRpbnVlIjtpZihuPUQudG9rZW5pemVyLmNvZGUoZSkpcmV0dXJuIGU9ZS5zdWJzdHJpbmcobi5yYXcubGVuZ3RoKSwhKHM9clty'@; put 'Lmxlbmd0aC0xXSl8fCJwYXJhZ3JhcGgiIT09cy50eXBlJiYidGV4dCIhPT1zLnR5cGU/ci5wdXNoKG4pOihzLnJhdys9IlxuIituLnJhdyxzLnRleHQrPSJcbiIrbi50ZXh0LEQuaW5saW5lUXVldWVbRC5pbmxpbmVRdWV1ZS5sZW5ndGgtMV0uc3JjPXMudGV4dCksImNvbnRpbnVlIjtpZigo'@; put 'bj1ELnRva2VuaXplci5mZW5jZXMoZSkpfHwobj1ELnRva2VuaXplci5oZWFkaW5nKGUpKXx8KG49RC50b2tlbml6ZXIuaHIoZSkpfHwobj1ELnRva2VuaXplci5ibG9ja3F1b3RlKGUpKXx8KG49RC50b2tlbml6ZXIubGlzdChlKSl8fChuPUQudG9rZW5pemVyLmh0bWwoZSkpKXJldHVybiBl'@; put 'PWUuc3Vic3RyaW5nKG4ucmF3Lmxlbmd0aCksci5wdXNoKG4pLCJjb250aW51ZSI7aWYobj1ELnRva2VuaXplci5kZWYoZSkpcmV0dXJuIGU9ZS5zdWJzdHJpbmcobi5yYXcubGVuZ3RoKSwhKHM9cltyLmxlbmd0aC0xXSl8fCJwYXJhZ3JhcGgiIT09cy50eXBlJiYidGV4dCIhPT1zLnR5cGU/'@; put 'RC50b2tlbnMubGlua3Nbbi50YWddfHwoRC50b2tlbnMubGlua3Nbbi50YWddPXtocmVmOm4uaHJlZix0aXRsZTpuLnRpdGxlfSk6KHMucmF3Kz0iXG4iK24ucmF3LHMudGV4dCs9IlxuIituLnJhdyxELmlubGluZVF1ZXVlW0QuaW5saW5lUXVldWUubGVuZ3RoLTFdLnNyYz1zLnRleHQpLCJj'@; put 'b250aW51ZSI7aWYoKG49RC50b2tlbml6ZXIudGFibGUoZSkpfHwobj1ELnRva2VuaXplci5saGVhZGluZyhlKSkpcmV0dXJuIGU9ZS5zdWJzdHJpbmcobi5yYXcubGVuZ3RoKSxyLnB1c2gobiksImNvbnRpbnVlIjt2YXIgRixkLHg7aWYocD1lLEQub3B0aW9ucy5leHRlbnNpb25zJiZELm9w'@; put 'dGlvbnMuZXh0ZW5zaW9ucy5zdGFydEJsb2NrJiYoRj0xLzAsZD1lLnNsaWNlKDEpLEQub3B0aW9ucy5leHRlbnNpb25zLnN0YXJ0QmxvY2suZm9yRWFjaChmdW5jdGlvbihsKXsibnVtYmVyIj09dHlwZW9mKHg9bC5jYWxsKHtsZXhlcjp0aGlzfSxkKSkmJjA8PXgmJihGPU1hdGgubWluKEYs'@; put 'eCkpfSksRjwxLzApJiYwPD1GJiYocD1lLnN1YnN0cmluZygwLEYrMSkpLEQuc3RhdGUudG9wJiYobj1ELnRva2VuaXplci5wYXJhZ3JhcGgocCkpKXJldHVybiBzPXJbci5sZW5ndGgtMV0sZyYmInBhcmFncmFwaCI9PT1zLnR5cGU/KHMucmF3Kz0iXG4iK24ucmF3LHMudGV4dCs9IlxuIitu'@; put 'LnRleHQsRC5pbmxpbmVRdWV1ZS5wb3AoKSxELmlubGluZVF1ZXVlW0QuaW5saW5lUXVldWUubGVuZ3RoLTFdLnNyYz1zLnRleHQpOnIucHVzaChuKSxnPXAubGVuZ3RoIT09ZS5sZW5ndGgsZT1lLnN1YnN0cmluZyhuLnJhdy5sZW5ndGgpLCJjb250aW51ZSI7aWYobj1ELnRva2VuaXplci50'@; put 'ZXh0KGUpKXJldHVybiBlPWUuc3Vic3RyaW5nKG4ucmF3Lmxlbmd0aCksKHM9cltyLmxlbmd0aC0xXSkmJiJ0ZXh0Ij09PXMudHlwZT8ocy5yYXcrPSJcbiIrbi5yYXcscy50ZXh0Kz0iXG4iK24udGV4dCxELmlubGluZVF1ZXVlLnBvcCgpLEQuaW5saW5lUXVldWVbRC5pbmxpbmVRdWV1ZS5s'@; put 'ZW5ndGgtMV0uc3JjPXMudGV4dCk6ci5wdXNoKG4pLCJjb250aW51ZSI7aWYoZSl7dmFyIGg9IkluZmluaXRlIGxvb3Agb24gYnl0ZTogIitlLmNoYXJDb2RlQXQoMCk7aWYoRC5vcHRpb25zLnNpbGVudClyZXR1cm4gY29uc29sZS5lcnJvcihoKSwiYnJlYWsiO3Rocm93IG5ldyBFcnJvciho'@; put 'KX19KCk7aWYoImNvbnRpbnVlIiE9PW8mJiJicmVhayI9PT1vKWJyZWFrfXJldHVybiB0aGlzLnN0YXRlLnRvcD0hMCxyfSx1LmlubGluZT1mdW5jdGlvbihlLHIpe3JldHVybiB0aGlzLmlubGluZVF1ZXVlLnB1c2goe3NyYzplLHRva2VuczpyPXZvaWQgMD09PXI/W106cn0pLHJ9LHUuaW5s'@; put 'aW5lVG9rZW5zPWZ1bmN0aW9uKGUscil7dmFyIG4scyxwLGcsRCxvLEY9dGhpcyxkPSh2b2lkIDA9PT1yJiYocj1bXSksZSk7aWYodGhpcy50b2tlbnMubGlua3Mpe3ZhciB4PU9iamVjdC5rZXlzKHRoaXMudG9rZW5zLmxpbmtzKTtpZigwPHgubGVuZ3RoKWZvcig7bnVsbCE9KGc9dGhpcy50'@; put 'b2tlbml6ZXIucnVsZXMuaW5saW5lLnJlZmxpbmtTZWFyY2guZXhlYyhkKSk7KXguaW5jbHVkZXMoZ1swXS5zbGljZShnWzBdLmxhc3RJbmRleE9mKCJbIikrMSwtMSkpJiYoZD1kLnNsaWNlKDAsZy5pbmRleCkrIlsiKyJhIi5yZXBlYXQoZ1swXS5sZW5ndGgtMikrIl0iK2Quc2xpY2UodGhp'@; put 'cy50b2tlbml6ZXIucnVsZXMuaW5saW5lLnJlZmxpbmtTZWFyY2gubGFzdEluZGV4KSl9Zm9yKDtudWxsIT0oZz10aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUuYmxvY2tTa2lwLmV4ZWMoZCkpOylkPWQuc2xpY2UoMCxnLmluZGV4KSsiWyIrImEiLnJlcGVhdChnWzBdLmxlbmd0aC0yKSsi'@; put 'XSIrZC5zbGljZSh0aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUuYmxvY2tTa2lwLmxhc3RJbmRleCk7Zm9yKDtudWxsIT0oZz10aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUuYW55UHVuY3R1YXRpb24uZXhlYyhkKSk7KWQ9ZC5zbGljZSgwLGcuaW5kZXgpKyIrKyIrZC5zbGljZSh0aGlz'@; put 'LnRva2VuaXplci5ydWxlcy5pbmxpbmUuYW55UHVuY3R1YXRpb24ubGFzdEluZGV4KTtmb3IoO2U7KXt2YXIgaD1mdW5jdGlvbigpe2lmKER8fChvPSIiKSxEPSExLEYub3B0aW9ucy5leHRlbnNpb25zJiZGLm9wdGlvbnMuZXh0ZW5zaW9ucy5pbmxpbmUmJkYub3B0aW9ucy5leHRlbnNpb25z'@; put 'LmlubGluZS5zb21lKGZ1bmN0aW9uKEEpe3JldHVybiEhKG49QS5jYWxsKHtsZXhlcjpGfSxlLHIpKSYmKGU9ZS5zdWJzdHJpbmcobi5yYXcubGVuZ3RoKSxyLnB1c2gobiksITApfSkpcmV0dXJuImNvbnRpbnVlIjtpZihuPUYudG9rZW5pemVyLmVzY2FwZShlKSlyZXR1cm4gZT1lLnN1YnN0'@; put 'cmluZyhuLnJhdy5sZW5ndGgpLHIucHVzaChuKSwiY29udGludWUiO2lmKG49Ri50b2tlbml6ZXIudGFnKGUpKXJldHVybiBlPWUuc3Vic3RyaW5nKG4ucmF3Lmxlbmd0aCksKHM9cltyLmxlbmd0aC0xXSkmJiJ0ZXh0Ij09PW4udHlwZSYmInRleHQiPT09cy50eXBlPyhzLnJhdys9bi5yYXcs'@; put 'cy50ZXh0Kz1uLnRleHQpOnIucHVzaChuKSwiY29udGludWUiO2lmKG49Ri50b2tlbml6ZXIubGluayhlKSlyZXR1cm4gZT1lLnN1YnN0cmluZyhuLnJhdy5sZW5ndGgpLHIucHVzaChuKSwiY29udGludWUiO2lmKG49Ri50b2tlbml6ZXIucmVmbGluayhlLEYudG9rZW5zLmxpbmtzKSlyZXR1'@; put 'cm4gZT1lLnN1YnN0cmluZyhuLnJhdy5sZW5ndGgpLChzPXJbci5sZW5ndGgtMV0pJiYidGV4dCI9PT1uLnR5cGUmJiJ0ZXh0Ij09PXMudHlwZT8ocy5yYXcrPW4ucmF3LHMudGV4dCs9bi50ZXh0KTpyLnB1c2gobiksImNvbnRpbnVlIjtpZigobj1GLnRva2VuaXplci5lbVN0cm9uZyhlLGQs'@; put 'bykpfHwobj1GLnRva2VuaXplci5jb2Rlc3BhbihlKSl8fChuPUYudG9rZW5pemVyLmJyKGUpKXx8KG49Ri50b2tlbml6ZXIuZGVsKGUpKXx8KG49Ri50b2tlbml6ZXIuYXV0b2xpbmsoZSxzZSkpfHwhRi5zdGF0ZS5pbkxpbmsmJihuPUYudG9rZW5pemVyLnVybChlLHNlKSkpcmV0dXJuIGU9'@; put 'ZS5zdWJzdHJpbmcobi5yYXcubGVuZ3RoKSxyLnB1c2gobiksImNvbnRpbnVlIjt2YXIgbCxrLGI7aWYocD1lLEYub3B0aW9ucy5leHRlbnNpb25zJiZGLm9wdGlvbnMuZXh0ZW5zaW9ucy5zdGFydElubGluZSYmKGw9MS8wLGs9ZS5zbGljZSgxKSxGLm9wdGlvbnMuZXh0ZW5zaW9ucy5zdGFy'@; put 'dElubGluZS5mb3JFYWNoKGZ1bmN0aW9uKEEpeyJudW1iZXIiPT10eXBlb2YoYj1BLmNhbGwoe2xleGVyOnRoaXN9LGspKSYmMDw9YiYmKGw9TWF0aC5taW4obCxiKSl9KSxsPDEvMCkmJjA8PWwmJihwPWUuc3Vic3RyaW5nKDAsbCsxKSksbj1GLnRva2VuaXplci5pbmxpbmVUZXh0KHAsa2Up'@; put 'KXJldHVybiBlPWUuc3Vic3RyaW5nKG4ucmF3Lmxlbmd0aCksIl8iIT09bi5yYXcuc2xpY2UoLTEpJiYobz1uLnJhdy5zbGljZSgtMSkpLEQ9ITAsKHM9cltyLmxlbmd0aC0xXSkmJiJ0ZXh0Ij09PXMudHlwZT8ocy5yYXcrPW4ucmF3LHMudGV4dCs9bi50ZXh0KTpyLnB1c2gobiksImNvbnRp'@; put 'bnVlIjtpZihlKXt2YXIgdz0iSW5maW5pdGUgbG9vcCBvbiBieXRlOiAiK2UuY2hhckNvZGVBdCgwKTtpZihGLm9wdGlvbnMuc2lsZW50KXJldHVybiBjb25zb2xlLmVycm9yKHcpLCJicmVhayI7dGhyb3cgbmV3IEVycm9yKHcpfX0oKTtpZigiY29udGludWUiIT09aCYmImJyZWFrIj09PWgp'@; put 'YnJlYWt9cmV0dXJuIHJ9LHU9YSwodD1be2tleToicnVsZXMiLGdldDpmdW5jdGlvbigpe3JldHVybntibG9jazpmLGlubGluZTpjfX19XSkmJlAodSx0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxhfSgpLFo9ZnVuY3Rpb24oKXtmdW5jdGlv'@; put 'biBhKHQpe3RoaXMub3B0aW9ucz10fHxDLmRlZmF1bHRzfXZhciBpPWEucHJvdG90eXBlO3JldHVybiBpLmNvZGU9ZnVuY3Rpb24odCxuLGUpe3ZhciByO3JldHVybiBuPShufHwiIikubWF0Y2goL1xTKi8pWzBdLHRoaXMub3B0aW9ucy5oaWdobGlnaHQmJm51bGwhPShyPXRoaXMub3B0aW9u'@; put 'cy5oaWdobGlnaHQodCxuKSkmJnIhPT10JiYoZT0hMCx0PXIpLHQ9dC5yZXBsYWNlKC9cbiQvLCIiKSsiXG4iLG4/JzxwcmU+PGNvZGUgY2xhc3M9IicrdGhpcy5vcHRpb25zLmxhbmdQcmVmaXgreShuKSsnIj4nKyhlP3Q6eSh0LCEwKSkrIjwvY29kZT48L3ByZT5cbiI6IjxwcmU+PGNvZGU+'@; put 'IisoZT90OnkodCwhMCkpKyI8L2NvZGU+PC9wcmU+XG4ifSxpLmJsb2NrcXVvdGU9ZnVuY3Rpb24odCl7cmV0dXJuIjxibG9ja3F1b3RlPlxuIit0KyI8L2Jsb2NrcXVvdGU+XG4ifSxpLmh0bWw9ZnVuY3Rpb24odCx1KXtyZXR1cm4gdH0saS5oZWFkaW5nPWZ1bmN0aW9uKHQsdSxlLHIpe3Jl'@; put 'dHVybiB0aGlzLm9wdGlvbnMuaGVhZGVySWRzPyI8aCIrdSsnIGlkPSInKyh0aGlzLm9wdGlvbnMuaGVhZGVyUHJlZml4K3Iuc2x1ZyhlKSkrJyI+Jyt0KyI8L2giK3UrIj5cbiI6IjxoIit1KyI+Iit0KyI8L2giK3UrIj5cbiJ9LGkuaHI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vcHRpb25z'@; put 'LnhodG1sPyI8aHIvPlxuIjoiPGhyPlxuIn0saS5saXN0PWZ1bmN0aW9uKHQsdSxlKXt2YXIgcj11PyJvbCI6InVsIjtyZXR1cm4iPCIrcisodSYmMSE9PWU/JyBzdGFydD0iJytlKyciJzoiIikrIj5cbiIrdCsiPC8iK3IrIj5cbiJ9LGkubGlzdGl0ZW09ZnVuY3Rpb24odCl7cmV0dXJuIjxs'@; put 'aT4iK3QrIjwvbGk+XG4ifSxpLmNoZWNrYm94PWZ1bmN0aW9uKHQpe3JldHVybiI8aW5wdXQgIisodD8nY2hlY2tlZD0iIiAnOiIiKSsnZGlzYWJsZWQ9IiIgdHlwZT0iY2hlY2tib3giJysodGhpcy5vcHRpb25zLnhodG1sPyIgLyI6IiIpKyI+ICJ9LGkucGFyYWdyYXBoPWZ1bmN0aW9uKHQp'@; put 'e3JldHVybiI8cD4iK3QrIjwvcD5cbiJ9LGkudGFibGU9ZnVuY3Rpb24odCx1KXtyZXR1cm4iPHRhYmxlPlxuPHRoZWFkPlxuIit0KyI8L3RoZWFkPlxuIisodT11JiYiPHRib2R5PiIrdSsiPC90Ym9keT4iKSsiPC90YWJsZT5cbiJ9LGkudGFibGVyb3c9ZnVuY3Rpb24odCl7cmV0dXJuIjx0'@; put 'cj5cbiIrdCsiPC90cj5cbiJ9LGkudGFibGVjZWxsPWZ1bmN0aW9uKHQsdSl7dmFyIGU9dS5oZWFkZXI/InRoIjoidGQiO3JldHVybih1LmFsaWduPyI8IitlKycgYWxpZ249IicrdS5hbGlnbisnIj4nOiI8IitlKyI+IikrdCsiPC8iK2UrIj5cbiJ9LGkuc3Ryb25nPWZ1bmN0aW9uKHQpe3Jl'@; put 'dHVybiI8c3Ryb25nPiIrdCsiPC9zdHJvbmc+In0saS5lbT1mdW5jdGlvbih0KXtyZXR1cm4iPGVtPiIrdCsiPC9lbT4ifSxpLmNvZGVzcGFuPWZ1bmN0aW9uKHQpe3JldHVybiI8Y29kZT4iK3QrIjwvY29kZT4ifSxpLmJyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3B0aW9ucy54aHRtbD8i'@; put 'PGJyLz4iOiI8YnI+In0saS5kZWw9ZnVuY3Rpb24odCl7cmV0dXJuIjxkZWw+Iit0KyI8L2RlbD4ifSxpLmxpbms9ZnVuY3Rpb24odCx1LGUpe3JldHVybiBudWxsPT09KHQ9bmUodGhpcy5vcHRpb25zLnNhbml0aXplLHRoaXMub3B0aW9ucy5iYXNlVXJsLHQpKT9lOih0PSc8YSBocmVmPSIn'@; put 'K3QrJyInLHUmJih0Kz0nIHRpdGxlPSInK3UrJyInKSx0KyI+IitlKyI8L2E+Iil9LGkuaW1hZ2U9ZnVuY3Rpb24odCx1LGUpe3JldHVybiBudWxsPT09KHQ9bmUodGhpcy5vcHRpb25zLnNhbml0aXplLHRoaXMub3B0aW9ucy5iYXNlVXJsLHQpKT9lOih0PSc8aW1nIHNyYz0iJyt0KyciIGFs'@; put 'dD0iJytlKyciJyx1JiYodCs9JyB0aXRsZT0iJyt1KyciJyksdCsodGhpcy5vcHRpb25zLnhodG1sPyIvPiI6Ij4iKSl9LGkudGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gdH0sYX0oKSxOPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe312YXIgaT1hLnByb3RvdHlwZTtyZXR1cm4gaS5zdHJvbmc9'@; put 'ZnVuY3Rpb24odCl7cmV0dXJuIHR9LGkuZW09ZnVuY3Rpb24odCl7cmV0dXJuIHR9LGkuY29kZXNwYW49ZnVuY3Rpb24odCl7cmV0dXJuIHR9LGkuZGVsPWZ1bmN0aW9uKHQpe3JldHVybiB0fSxpLmh0bWw9ZnVuY3Rpb24odCl7cmV0dXJuIHR9LGkudGV4dD1mdW5jdGlvbih0KXtyZXR1cm4g'@; put 'dH0saS5saW5rPWZ1bmN0aW9uKHQsdSxlKXtyZXR1cm4iIitlfSxpLmltYWdlPWZ1bmN0aW9uKHQsdSxlKXtyZXR1cm4iIitlfSxpLmJyPWZ1bmN0aW9uKCl7cmV0dXJuIiJ9LGF9KCksWD1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXt0aGlzLnNlZW49e319dmFyIGk9YS5wcm90b3R5cGU7cmV0'@; put 'dXJuIGkuc2VyaWFsaXplPWZ1bmN0aW9uKHQpe3JldHVybiB0LnRvTG93ZXJDYXNlKCkudHJpbSgpLnJlcGxhY2UoLzxbIVwvYS16XS4qPz4vZ2ksIiIpLnJlcGxhY2UoL1tcdTIwMDAtXHUyMDZGXHUyRTAwLVx1MkU3RlxcJyEiIyQlJigpKissLi86Ozw9Pj9AW1xdXmB7fH1+XS9nLCIiKS5y'@; put 'ZXBsYWNlKC9ccy9nLCItIil9LGkuZ2V0TmV4dFNhZmVTbHVnPWZ1bmN0aW9uKHQsdSl7dmFyIGU9dCxyPTA7aWYodGhpcy5zZWVuLmhhc093blByb3BlcnR5KGUpKWZvcihyPXRoaXMuc2Vlblt0XTtlPXQrIi0iKyArK3IsdGhpcy5zZWVuLmhhc093blByb3BlcnR5KGUpOyk7cmV0dXJuIHV8'@; put 'fCh0aGlzLnNlZW5bdF09cix0aGlzLnNlZW5bZV09MCksZX0saS5zbHVnPWZ1bmN0aW9uKHQsdSl7cmV0dXJuIHZvaWQgMD09PXUmJih1PXt9KSx0PXRoaXMuc2VyaWFsaXplKHQpLHRoaXMuZ2V0TmV4dFNhZmVTbHVnKHQsdS5kcnlydW4pfSxhfSgpLFQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBh'@; put 'KHQpe3RoaXMub3B0aW9ucz10fHxDLmRlZmF1bHRzLHRoaXMub3B0aW9ucy5yZW5kZXJlcj10aGlzLm9wdGlvbnMucmVuZGVyZXJ8fG5ldyBaLHRoaXMucmVuZGVyZXI9dGhpcy5vcHRpb25zLnJlbmRlcmVyLHRoaXMucmVuZGVyZXIub3B0aW9ucz10aGlzLm9wdGlvbnMsdGhpcy50ZXh0UmVu'@; put 'ZGVyZXI9bmV3IE4sdGhpcy5zbHVnZ2VyPW5ldyBYfWEucGFyc2U9ZnVuY3Rpb24odCx1KXtyZXR1cm4gbmV3IGEodSkucGFyc2UodCl9LGEucGFyc2VJbmxpbmU9ZnVuY3Rpb24odCx1KXtyZXR1cm4gbmV3IGEodSkucGFyc2VJbmxpbmUodCl9O3ZhciBpPWEucHJvdG90eXBlO3JldHVybiBp'@; put 'LnBhcnNlPWZ1bmN0aW9uKHQsdSl7dm9pZCAwPT09dSYmKHU9ITApO2Zvcih2YXIgZSxyLG4scyxwLGcsRCxvLEYsZCx4LGgsbCxrLGIsdyxBPSIiLEI9dC5sZW5ndGgsXz0wO188QjtfKyspaWYobz10W19dLHRoaXMub3B0aW9ucy5leHRlbnNpb25zJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9u'@; put 'cy5yZW5kZXJlcnMmJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLnJlbmRlcmVyc1tvLnR5cGVdJiYoITEhPT0odz10aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5yZW5kZXJlcnNbby50eXBlXS5jYWxsKHtwYXJzZXI6dGhpc30sbykpfHwhWyJzcGFjZSIsImhyIiwiaGVhZGluZyIsImNvZGUiLCJ0'@; put 'YWJsZSIsImJsb2NrcXVvdGUiLCJsaXN0IiwiaHRtbCIsInBhcmFncmFwaCIsInRleHQiXS5pbmNsdWRlcyhvLnR5cGUpKSlBKz13fHwiIjtlbHNlIHN3aXRjaChvLnR5cGUpe2Nhc2Uic3BhY2UiOmNvbnRpbnVlO2Nhc2UiaHIiOkErPXRoaXMucmVuZGVyZXIuaHIoKTtjb250aW51ZTtjYXNl'@; put 'ImhlYWRpbmciOkErPXRoaXMucmVuZGVyZXIuaGVhZGluZyh0aGlzLnBhcnNlSW5saW5lKG8udG9rZW5zKSxvLmRlcHRoLHVlKHRoaXMucGFyc2VJbmxpbmUoby50b2tlbnMsdGhpcy50ZXh0UmVuZGVyZXIpKSx0aGlzLnNsdWdnZXIpO2NvbnRpbnVlO2Nhc2UiY29kZSI6QSs9dGhpcy5yZW5k'@; put 'ZXJlci5jb2RlKG8udGV4dCxvLmxhbmcsby5lc2NhcGVkKTtjb250aW51ZTtjYXNlInRhYmxlIjpmb3IoZz1GPSIiLG49by5oZWFkZXIubGVuZ3RoLGU9MDtlPG47ZSsrKWcrPXRoaXMucmVuZGVyZXIudGFibGVjZWxsKHRoaXMucGFyc2VJbmxpbmUoby5oZWFkZXJbZV0udG9rZW5zKSx7aGVh'@; put 'ZGVyOiEwLGFsaWduOm8uYWxpZ25bZV19KTtmb3IoRis9dGhpcy5yZW5kZXJlci50YWJsZXJvdyhnKSxEPSIiLG49by5yb3dzLmxlbmd0aCxlPTA7ZTxuO2UrKyl7Zm9yKGc9IiIscz0ocD1vLnJvd3NbZV0pLmxlbmd0aCxyPTA7cjxzO3IrKylnKz10aGlzLnJlbmRlcmVyLnRhYmxlY2VsbCh0'@; put 'aGlzLnBhcnNlSW5saW5lKHBbcl0udG9rZW5zKSx7aGVhZGVyOiExLGFsaWduOm8uYWxpZ25bcl19KTtEKz10aGlzLnJlbmRlcmVyLnRhYmxlcm93KGcpfUErPXRoaXMucmVuZGVyZXIudGFibGUoRixEKTtjb250aW51ZTtjYXNlImJsb2NrcXVvdGUiOkQ9dGhpcy5wYXJzZShvLnRva2Vucyks'@; put 'QSs9dGhpcy5yZW5kZXJlci5ibG9ja3F1b3RlKEQpO2NvbnRpbnVlO2Nhc2UibGlzdCI6Zm9yKEY9by5vcmRlcmVkLHo9by5zdGFydCxkPW8ubG9vc2Usbj1vLml0ZW1zLmxlbmd0aCxEPSIiLGU9MDtlPG47ZSsrKWw9KGg9by5pdGVtc1tlXSkuY2hlY2tlZCxrPWgudGFzayx4PSIiLGgudGFz'@; put 'ayYmKGI9dGhpcy5yZW5kZXJlci5jaGVja2JveChsKSxkPzA8aC50b2tlbnMubGVuZ3RoJiYicGFyYWdyYXBoIj09PWgudG9rZW5zWzBdLnR5cGU/KGgudG9rZW5zWzBdLnRleHQ9YisiICIraC50b2tlbnNbMF0udGV4dCxoLnRva2Vuc1swXS50b2tlbnMmJjA8aC50b2tlbnNbMF0udG9rZW5z'@; put 'Lmxlbmd0aCYmInRleHQiPT09aC50b2tlbnNbMF0udG9rZW5zWzBdLnR5cGUmJihoLnRva2Vuc1swXS50b2tlbnNbMF0udGV4dD1iKyIgIitoLnRva2Vuc1swXS50b2tlbnNbMF0udGV4dCkpOmgudG9rZW5zLnVuc2hpZnQoe3R5cGU6InRleHQiLHRleHQ6Yn0pOngrPWIpLHgrPXRoaXMucGFy'@; put 'c2UoaC50b2tlbnMsZCksRCs9dGhpcy5yZW5kZXJlci5saXN0aXRlbSh4LGssbCk7QSs9dGhpcy5yZW5kZXJlci5saXN0KEQsRix6KTtjb250aW51ZTtjYXNlImh0bWwiOkErPXRoaXMucmVuZGVyZXIuaHRtbChvLnRleHQsby5ibG9jayk7Y29udGludWU7Y2FzZSJwYXJhZ3JhcGgiOkErPXRo'@; put 'aXMucmVuZGVyZXIucGFyYWdyYXBoKHRoaXMucGFyc2VJbmxpbmUoby50b2tlbnMpKTtjb250aW51ZTtjYXNlInRleHQiOmZvcihEPW8udG9rZW5zP3RoaXMucGFyc2VJbmxpbmUoby50b2tlbnMpOm8udGV4dDtfKzE8QiYmInRleHQiPT09dFtfKzFdLnR5cGU7KUQrPSJcbiIrKChvPXRbKytf'@; put 'XSkudG9rZW5zP3RoaXMucGFyc2VJbmxpbmUoby50b2tlbnMpOm8udGV4dCk7QSs9dT90aGlzLnJlbmRlcmVyLnBhcmFncmFwaChEKTpEO2NvbnRpbnVlO2RlZmF1bHQ6dmFyIHo9J1Rva2VuIHdpdGggIicrby50eXBlKyciIHR5cGUgd2FzIG5vdCBmb3VuZC4nO2lmKHRoaXMub3B0aW9ucy5z'@; put 'aWxlbnQpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcih6KTt0aHJvdyBuZXcgRXJyb3Ioeil9cmV0dXJuIEF9LGkucGFyc2VJbmxpbmU9ZnVuY3Rpb24odCx1KXt1PXV8fHRoaXMucmVuZGVyZXI7Zm9yKHZhciBlLHIsbj0iIixzPXQubGVuZ3RoLHA9MDtwPHM7cCsrKWlmKGU9dFtwXSx0aGlz'@; put 'Lm9wdGlvbnMuZXh0ZW5zaW9ucyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMucmVuZGVyZXJzJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5yZW5kZXJlcnNbZS50eXBlXSYmKCExIT09KHI9dGhpcy5vcHRpb25zLmV4dGVuc2lvbnMucmVuZGVyZXJzW2UudHlwZV0uY2FsbCh7cGFyc2VyOnRo'@; put 'aXN9LGUpKXx8IVsiZXNjYXBlIiwiaHRtbCIsImxpbmsiLCJpbWFnZSIsInN0cm9uZyIsImVtIiwiY29kZXNwYW4iLCJiciIsImRlbCIsInRleHQiXS5pbmNsdWRlcyhlLnR5cGUpKSluKz1yfHwiIjtlbHNlIHN3aXRjaChlLnR5cGUpe2Nhc2UiZXNjYXBlIjpjYXNlInRleHQiOm4rPXUudGV4'@; put 'dChlLnRleHQpO2JyZWFrO2Nhc2UiaHRtbCI6bis9dS5odG1sKGUudGV4dCk7YnJlYWs7Y2FzZSJsaW5rIjpuKz11LmxpbmsoZS5ocmVmLGUudGl0bGUsdGhpcy5wYXJzZUlubGluZShlLnRva2Vucyx1KSk7YnJlYWs7Y2FzZSJpbWFnZSI6bis9dS5pbWFnZShlLmhyZWYsZS50aXRsZSxlLnRl'@; put 'eHQpO2JyZWFrO2Nhc2Uic3Ryb25nIjpuKz11LnN0cm9uZyh0aGlzLnBhcnNlSW5saW5lKGUudG9rZW5zLHUpKTticmVhaztjYXNlImVtIjpuKz11LmVtKHRoaXMucGFyc2VJbmxpbmUoZS50b2tlbnMsdSkpO2JyZWFrO2Nhc2UiY29kZXNwYW4iOm4rPXUuY29kZXNwYW4oZS50ZXh0KTticmVh'@; put 'aztjYXNlImJyIjpuKz11LmJyKCk7YnJlYWs7Y2FzZSJkZWwiOm4rPXUuZGVsKHRoaXMucGFyc2VJbmxpbmUoZS50b2tlbnMsdSkpO2JyZWFrO2RlZmF1bHQ6dmFyIGc9J1Rva2VuIHdpdGggIicrZS50eXBlKyciIHR5cGUgd2FzIG5vdCBmb3VuZC4nO2lmKHRoaXMub3B0aW9ucy5zaWxlbnQp'@; put 'cmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcihnKTt0aHJvdyBuZXcgRXJyb3IoZyl9cmV0dXJuIG59LGF9KCksTz1mdW5jdGlvbigpe2Z1bmN0aW9uIGEodCl7dGhpcy5vcHRpb25zPXR8fEMuZGVmYXVsdHN9dmFyIGk9YS5wcm90b3R5cGU7cmV0dXJuIGkucHJlcHJvY2Vzcz1mdW5jdGlvbih0'@; put 'KXtyZXR1cm4gdH0saS5wb3N0cHJvY2Vzcz1mdW5jdGlvbih0KXtyZXR1cm4gdH0sYX0oKSxxPShPLnBhc3NUaHJvdWdoSG9va3M9bmV3IFNldChbInByZXByb2Nlc3MiLCJwb3N0cHJvY2VzcyJdKSxLKCJwYXJzZU1hcmtkb3duIikpLFY9Sygib25FcnJvciIpO2Z1bmN0aW9uIENlKGEsaSl7'@; put 'dmFyIHQ9dGhpcztyZXR1cm4gZnVuY3Rpb24odSxlLHIpeyJmdW5jdGlvbiI9PXR5cGVvZiBlJiYocj1lLGU9bnVsbCk7dmFyIG4scz12KHt9LGUpLHA9KGU9dih7fSx0LmRlZmF1bHRzLHMpLEcodCxWKVtWXShlLnNpbGVudCxlLmFzeW5jLHIpKTtpZihudWxsPT11KXJldHVybiBwKG5ldyBF'@; put 'cnJvcigibWFya2VkKCk6IGlucHV0IHBhcmFtZXRlciBpcyB1bmRlZmluZWQgb3IgbnVsbCIpKTtpZigic3RyaW5nIiE9dHlwZW9mIHUpcmV0dXJuIHAobmV3IEVycm9yKCJtYXJrZWQoKTogaW5wdXQgcGFyYW1ldGVyIGlzIG9mIHR5cGUgIitPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNh'@; put 'bGwodSkrIiwgc3RyaW5nIGV4cGVjdGVkIikpO2lmKHM9ciwobj1lKSYmIW4uc2lsZW50JiYocyYmY29uc29sZS53YXJuKCJtYXJrZWQoKTogY2FsbGJhY2sgaXMgZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDUuMC4wLCBzaG91bGQgbm90IGJlIHVzZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBp'@; put 'biB0aGUgZnV0dXJlLiBSZWFkIG1vcmUgaGVyZTogaHR0cHM6Ly9tYXJrZWQuanMub3JnL3VzaW5nX3BybyNhc3luYyIpLChuLnNhbml0aXplfHxuLnNhbml0aXplcikmJmNvbnNvbGUud2FybigibWFya2VkKCk6IHNhbml0aXplIGFuZCBzYW5pdGl6ZXIgcGFyYW1ldGVycyBhcmUgZGVwcmVj'@; put 'YXRlZCBzaW5jZSB2ZXJzaW9uIDAuNy4wLCBzaG91bGQgbm90IGJlIHVzZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlLiBSZWFkIG1vcmUgaGVyZTogaHR0cHM6Ly9tYXJrZWQuanMub3JnLyMvVVNJTkdfQURWQU5DRUQubWQjb3B0aW9ucyIpLCFuLmhpZ2hsaWdodCYmImxh'@; put 'bmd1YWdlLSI9PT1uLmxhbmdQcmVmaXh8fGNvbnNvbGUud2FybigibWFya2VkKCk6IGhpZ2hsaWdodCBhbmQgbGFuZ1ByZWZpeCBwYXJhbWV0ZXJzIGFyZSBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gNS4wLjAsIHNob3VsZCBub3QgYmUgdXNlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRo'@; put 'ZSBmdXR1cmUuIEluc3RlYWQgdXNlIGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL21hcmtlZC1oaWdobGlnaHQuIiksbi5tYW5nbGUmJmNvbnNvbGUud2FybigibWFya2VkKCk6IG1hbmdsZSBwYXJhbWV0ZXIgaXMgZW5hYmxlZCBieSBkZWZhdWx0LCBidXQgaXMgZGVwcmVjYXRlZCBz'@; put 'aW5jZSB2ZXJzaW9uIDUuMC4wLCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBmdXR1cmUuIFRvIGNsZWFyIHRoaXMgd2FybmluZywgaW5zdGFsbCBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9tYXJrZWQtbWFuZ2xlLCBvciBkaXNhYmxlIGJ5IHNldHRpbmcgYHttYW5nbGU6IGZh'@; put 'bHNlfWAuIiksbi5iYXNlVXJsJiZjb25zb2xlLndhcm4oIm1hcmtlZCgpOiBiYXNlVXJsIHBhcmFtZXRlciBpcyBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gNS4wLjAsIHNob3VsZCBub3QgYmUgdXNlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBmdXR1cmUuIEluc3RlYWQgdXNlIGh0'@; put 'dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL21hcmtlZC1iYXNlLXVybC4iKSxuLnNtYXJ0eXBhbnRzJiZjb25zb2xlLndhcm4oIm1hcmtlZCgpOiBzbWFydHlwYW50cyBwYXJhbWV0ZXIgaXMgZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDUuMC4wLCBzaG91bGQgbm90IGJlIHVzZWQgYW5k'@; put 'IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlLiBJbnN0ZWFkIHVzZSBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9tYXJrZWQtc21hcnR5cGFudHMuIiksbi54aHRtbCYmY29uc29sZS53YXJuKCJtYXJrZWQoKTogeGh0bWwgcGFyYW1ldGVyIGlzIGRlcHJlY2F0ZWQgc2luY2Ug'@; put 'dmVyc2lvbiA1LjAuMCwgc2hvdWxkIG5vdCBiZSB1c2VkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIGZ1dHVyZS4gSW5zdGVhZCB1c2UgaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvbWFya2VkLXhodG1sLiIpLG4uaGVhZGVySWRzfHxuLmhlYWRlclByZWZpeCkmJmNvbnNvbGUu'@; put 'd2FybigibWFya2VkKCk6IGhlYWRlcklkcyBhbmQgaGVhZGVyUHJlZml4IHBhcmFtZXRlcnMgZW5hYmxlZCBieSBkZWZhdWx0LCBidXQgYXJlIGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiA1LjAuMCwgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlLiBUbyBjbGVhciB0aGlzIHdh'@; put 'cm5pbmcsIGluc3RhbGwgIGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL21hcmtlZC1nZm0taGVhZGluZy1pZCwgb3IgZGlzYWJsZSBieSBzZXR0aW5nIGB7aGVhZGVySWRzOiBmYWxzZX1gLiIpLGUuaG9va3MmJihlLmhvb2tzLm9wdGlvbnM9ZSkscil7dmFyIGcsRD1lLmhpZ2hsaWdo'@; put 'dDt0cnl7ZS5ob29rcyYmKHU9ZS5ob29rcy5wcmVwcm9jZXNzKHUpKSxnPWEodSxlKX1jYXRjaChoKXtyZXR1cm4gcChoKX12YXIgbyxGPWZ1bmN0aW9uKGgpe3ZhciBsO2lmKCFoKXRyeXtlLndhbGtUb2tlbnMmJnQud2Fsa1Rva2VucyhnLGUud2Fsa1Rva2VucyksbD1pKGcsZSksZS5ob29r'@; put 'cyYmKGw9ZS5ob29rcy5wb3N0cHJvY2VzcyhsKSl9Y2F0Y2goayl7aD1rfXJldHVybiBlLmhpZ2hsaWdodD1ELGg/cChoKTpyKG51bGwsbCl9O3JldHVybiFEfHxELmxlbmd0aDwzP0YoKTooZGVsZXRlIGUuaGlnaGxpZ2h0LGcubGVuZ3RoPyhvPTAsdC53YWxrVG9rZW5zKGcsZnVuY3Rpb24o'@; put 'aCl7ImNvZGUiPT09aC50eXBlJiYobysrLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtEKGgudGV4dCxoLmxhbmcsZnVuY3Rpb24obCxrKXtpZihsKXJldHVybiBGKGwpO251bGwhPWsmJmshPT1oLnRleHQmJihoLnRleHQ9ayxoLmVzY2FwZWQ9ITApLDA9PS0tbyYmRigpfSl9LDApKX0pLHZvaWQo'@; put 'MD09PW8mJkYoKSkpOkYoKSl9aWYoZS5hc3luYylyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGUuaG9va3M/ZS5ob29rcy5wcmVwcm9jZXNzKHUpOnUpLnRoZW4oZnVuY3Rpb24oaCl7cmV0dXJuIGEoaCxlKX0pLnRoZW4oZnVuY3Rpb24oaCl7cmV0dXJuIGUud2Fsa1Rva2Vucz9Qcm9taXNlLmFs'@; put 'bCh0LndhbGtUb2tlbnMoaCxlLndhbGtUb2tlbnMpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGh9KTpofSkudGhlbihmdW5jdGlvbihoKXtyZXR1cm4gaShoLGUpfSkudGhlbihmdW5jdGlvbihoKXtyZXR1cm4gZS5ob29rcz9lLmhvb2tzLnBvc3Rwcm9jZXNzKGgpOmh9KS5jYXRjaChwKTt0'@; put 'cnl7ZS5ob29rcyYmKHU9ZS5ob29rcy5wcmVwcm9jZXNzKHUpKTt2YXIgZD1hKHUsZSkseD0oZS53YWxrVG9rZW5zJiZ0LndhbGtUb2tlbnMoZCxlLndhbGtUb2tlbnMpLGkoZCxlKSk7cmV0dXJuIGUuaG9va3M/ZS5ob29rcy5wb3N0cHJvY2Vzcyh4KTp4fWNhdGNoKGgpe3JldHVybiBwKGgp'@; put 'fX19ZnVuY3Rpb24gRWUoYSxpLHQpe3JldHVybiBmdW5jdGlvbih1KXt2YXIgZTtpZih1Lm1lc3NhZ2UrPSJcblBsZWFzZSByZXBvcnQgdGhpcyB0byBodHRwczovL2dpdGh1Yi5jb20vbWFya2VkanMvbWFya2VkLiIsYSlyZXR1cm4gZT0iPHA+QW4gZXJyb3Igb2NjdXJyZWQ6PC9wPjxwcmU+'@; put 'Iit5KHUubWVzc2FnZSsiIiwhMCkrIjwvcHJlPiIsaT9Qcm9taXNlLnJlc29sdmUoZSk6dD92b2lkIHQobnVsbCxlKTplO2lmKGkpcmV0dXJuIFByb21pc2UucmVqZWN0KHUpO2lmKCF0KXRocm93IHU7dCh1KX19ST1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtPYmplY3QuZGVmaW5lUHJvcGVy'@; put 'dHkodGhpcyxWLHt2YWx1ZTpFZX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLHEse3ZhbHVlOkNlfSksdGhpcy5kZWZhdWx0cz17YXN5bmM6ITEsYmFzZVVybDpudWxsLGJyZWFrczohMSxleHRlbnNpb25zOm51bGwsZ2ZtOiEwLGhlYWRlcklkczohMCxoZWFkZXJQcmVmaXg6IiIsaGln'@; put 'aGxpZ2h0Om51bGwsaG9va3M6bnVsbCxsYW5nUHJlZml4OiJsYW5ndWFnZS0iLG1hbmdsZTohMCxwZWRhbnRpYzohMSxyZW5kZXJlcjpudWxsLHNhbml0aXplOiExLHNhbml0aXplcjpudWxsLHNpbGVudDohMSxzbWFydHlwYW50czohMSx0b2tlbml6ZXI6bnVsbCx3YWxrVG9rZW5zOm51bGws'@; put 'eGh0bWw6ITF9LHRoaXMub3B0aW9ucz10aGlzLnNldE9wdGlvbnMsdGhpcy5wYXJzZT1HKHRoaXMscSlbcV0oUy5sZXgsVC5wYXJzZSksdGhpcy5wYXJzZUlubGluZT1HKHRoaXMscSlbcV0oUy5sZXhJbmxpbmUsVC5wYXJzZUlubGluZSksdGhpcy5QYXJzZXI9VCx0aGlzLnBhcnNlcj1ULnBh'@; put 'cnNlLHRoaXMuUmVuZGVyZXI9Wix0aGlzLlRleHRSZW5kZXJlcj1OLHRoaXMuTGV4ZXI9Uyx0aGlzLmxleGVyPVMubGV4LHRoaXMuVG9rZW5pemVyPWosdGhpcy5TbHVnZ2VyPVgsdGhpcy5Ib29rcz1PLHRoaXMudXNlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX12YXIgaT1hLnByb3RvdHlwZTty'@; put 'ZXR1cm4gaS53YWxrVG9rZW5zPWZ1bmN0aW9uKHQsdSl7Zm9yKHZhciBlLHI9dGhpcyxuPVtdLHM9VSh0KTshKGU9cygpKS5kb25lOykhZnVuY3Rpb24oKXt2YXIgcD1lLnZhbHVlO3N3aXRjaChuPW4uY29uY2F0KHUuY2FsbChyLHApKSxwLnR5cGUpe2Nhc2UidGFibGUiOmZvcih2YXIgZz1V'@; put 'KHAuaGVhZGVyKTshKEQ9ZygpKS5kb25lOyl7dmFyIEQ9RC52YWx1ZTtuPW4uY29uY2F0KHIud2Fsa1Rva2VucyhELnRva2Vucyx1KSl9Zm9yKHZhciBvLEY9VShwLnJvd3MpOyEobz1GKCkpLmRvbmU7KWZvcih2YXIgZD1VKG8udmFsdWUpOyEoeD1kKCkpLmRvbmU7KXt2YXIgeD14LnZhbHVl'@; put 'O249bi5jb25jYXQoci53YWxrVG9rZW5zKHgudG9rZW5zLHUpKX1icmVhaztjYXNlImxpc3QiOm49bi5jb25jYXQoci53YWxrVG9rZW5zKHAuaXRlbXMsdSkpO2JyZWFrO2RlZmF1bHQ6ci5kZWZhdWx0cy5leHRlbnNpb25zJiZyLmRlZmF1bHRzLmV4dGVuc2lvbnMuY2hpbGRUb2tlbnMmJnIu'@; put 'ZGVmYXVsdHMuZXh0ZW5zaW9ucy5jaGlsZFRva2Vuc1twLnR5cGVdP3IuZGVmYXVsdHMuZXh0ZW5zaW9ucy5jaGlsZFRva2Vuc1twLnR5cGVdLmZvckVhY2goZnVuY3Rpb24oaCl7bj1uLmNvbmNhdChyLndhbGtUb2tlbnMocFtoXSx1KSl9KTpwLnRva2VucyYmKG49bi5jb25jYXQoci53YWxr'@; put 'VG9rZW5zKHAudG9rZW5zLHUpKSl9fSgpO3JldHVybiBufSxpLnVzZT1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLHU9dGhpcy5kZWZhdWx0cy5leHRlbnNpb25zfHx7cmVuZGVyZXJzOnt9LGNoaWxkVG9rZW5zOnt9fSxlPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoZSksbj0wO248'@; put 'ZTtuKyspcltuXT1hcmd1bWVudHNbbl07cmV0dXJuIHIuZm9yRWFjaChmdW5jdGlvbihzKXt2YXIgcCxnPXYoe30scyk7aWYoZy5hc3luYz10LmRlZmF1bHRzLmFzeW5jfHxnLmFzeW5jfHwhMSxzLmV4dGVuc2lvbnMmJihzLmV4dGVuc2lvbnMuZm9yRWFjaChmdW5jdGlvbihsKXtpZighbC5u'@; put 'YW1lKXRocm93IG5ldyBFcnJvcigiZXh0ZW5zaW9uIG5hbWUgcmVxdWlyZWQiKTt2YXIgaztpZihsLnJlbmRlcmVyJiYodS5yZW5kZXJlcnNbbC5uYW1lXT0oaz11LnJlbmRlcmVyc1tsLm5hbWVdKT9mdW5jdGlvbigpe2Zvcih2YXIgYj1hcmd1bWVudHMubGVuZ3RoLHc9bmV3IEFycmF5KGIp'@; put 'LEE9MDtBPGI7QSsrKXdbQV09YXJndW1lbnRzW0FdO3ZhciBCPWwucmVuZGVyZXIuYXBwbHkodGhpcyx3KTtyZXR1cm4hMT09PUI/ay5hcHBseSh0aGlzLHcpOkJ9OmwucmVuZGVyZXIpLGwudG9rZW5pemVyKXtpZighbC5sZXZlbHx8ImJsb2NrIiE9PWwubGV2ZWwmJiJpbmxpbmUiIT09bC5s'@; put 'ZXZlbCl0aHJvdyBuZXcgRXJyb3IoImV4dGVuc2lvbiBsZXZlbCBtdXN0IGJlICdibG9jaycgb3IgJ2lubGluZSciKTt1W2wubGV2ZWxdP3VbbC5sZXZlbF0udW5zaGlmdChsLnRva2VuaXplcik6dVtsLmxldmVsXT1bbC50b2tlbml6ZXJdLGwuc3RhcnQmJigiYmxvY2siPT09bC5sZXZlbD91'@; put 'LnN0YXJ0QmxvY2s/dS5zdGFydEJsb2NrLnB1c2gobC5zdGFydCk6dS5zdGFydEJsb2NrPVtsLnN0YXJ0XToiaW5saW5lIj09PWwubGV2ZWwmJih1LnN0YXJ0SW5saW5lP3Uuc3RhcnRJbmxpbmUucHVzaChsLnN0YXJ0KTp1LnN0YXJ0SW5saW5lPVtsLnN0YXJ0XSkpfWwuY2hpbGRUb2tlbnMm'@; put 'Jih1LmNoaWxkVG9rZW5zW2wubmFtZV09bC5jaGlsZFRva2Vucyl9KSxnLmV4dGVuc2lvbnM9dSkscy5yZW5kZXJlcil7dmFyIEQsbz10LmRlZmF1bHRzLnJlbmRlcmVyfHxuZXcgWih0LmRlZmF1bHRzKTtmb3IoRCBpbiBzLnJlbmRlcmVyKSFmdW5jdGlvbihsKXt2YXIgaz1vW2xdO29bbF09'@; put 'ZnVuY3Rpb24oKXtmb3IodmFyIGI9YXJndW1lbnRzLmxlbmd0aCx3PW5ldyBBcnJheShiKSxBPTA7QTxiO0ErKyl3W0FdPWFyZ3VtZW50c1tBXTt2YXIgQj1zLnJlbmRlcmVyW2xdLmFwcGx5KG8sdyk7cmV0dXJuITE9PT1CP2suYXBwbHkobyx3KTpCfX0oRCk7Zy5yZW5kZXJlcj1vfWlmKHMu'@; put 'dG9rZW5pemVyKXt2YXIgRixkPXQuZGVmYXVsdHMudG9rZW5pemVyfHxuZXcgaih0LmRlZmF1bHRzKTtmb3IoRiBpbiBzLnRva2VuaXplcikhZnVuY3Rpb24obCl7dmFyIGs9ZFtsXTtkW2xdPWZ1bmN0aW9uKCl7Zm9yKHZhciBiPWFyZ3VtZW50cy5sZW5ndGgsdz1uZXcgQXJyYXkoYiksQT0w'@; put 'O0E8YjtBKyspd1tBXT1hcmd1bWVudHNbQV07dmFyIEI9cy50b2tlbml6ZXJbbF0uYXBwbHkoZCx3KTtyZXR1cm4hMT09PUI/ay5hcHBseShkLHcpOkJ9fShGKTtnLnRva2VuaXplcj1kfWlmKHMuaG9va3Mpe3ZhciB4LGg9dC5kZWZhdWx0cy5ob29rc3x8bmV3IE87Zm9yKHggaW4gcy5ob29r'@; put 'cykhZnVuY3Rpb24obCl7dmFyIGs9aFtsXTtoW2xdPU8ucGFzc1Rocm91Z2hIb29rcy5oYXMobCk/ZnVuY3Rpb24oYil7cmV0dXJuIHQuZGVmYXVsdHMuYXN5bmM/UHJvbWlzZS5yZXNvbHZlKHMuaG9va3NbbF0uY2FsbChoLGIpKS50aGVuKGZ1bmN0aW9uKHcpe3JldHVybiBrLmNhbGwoaCx3'@; put 'KX0pOihiPXMuaG9va3NbbF0uY2FsbChoLGIpLGsuY2FsbChoLGIpKX06ZnVuY3Rpb24oKXtmb3IodmFyIGI9YXJndW1lbnRzLmxlbmd0aCx3PW5ldyBBcnJheShiKSxBPTA7QTxiO0ErKyl3W0FdPWFyZ3VtZW50c1tBXTt2YXIgQj1zLmhvb2tzW2xdLmFwcGx5KGgsdyk7cmV0dXJuITE9PT1C'@; put 'P2suYXBwbHkoaCx3KTpCfX0oeCk7Zy5ob29rcz1ofXMud2Fsa1Rva2VucyYmKHA9dC5kZWZhdWx0cy53YWxrVG9rZW5zLGcud2Fsa1Rva2Vucz1mdW5jdGlvbihsKXt2YXIgaz1bXTtyZXR1cm4gay5wdXNoKHMud2Fsa1Rva2Vucy5jYWxsKHRoaXMsbCkpLHA/ay5jb25jYXQocC5jYWxsKHRo'@; put 'aXMsbCkpOmt9KSx0LmRlZmF1bHRzPXYoe30sdC5kZWZhdWx0cyxnKX0pLHRoaXN9LGkuc2V0T3B0aW9ucz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kZWZhdWx0cz12KHt9LHRoaXMuZGVmYXVsdHMsdCksdGhpc30sYX0oKTt2YXIgUj1uZXcgSShDLmRlZmF1bHRzKTtmdW5jdGlvbiBtKGEs'@; put 'aSx0KXtyZXR1cm4gUi5wYXJzZShhLGksdCl9bS5vcHRpb25zPW0uc2V0T3B0aW9ucz1mdW5jdGlvbihhKXtyZXR1cm4gUi5zZXRPcHRpb25zKGEpLFcobS5kZWZhdWx0cz1SLmRlZmF1bHRzKSxtfSxtLmdldERlZmF1bHRzPVEsbS5kZWZhdWx0cz1DLmRlZmF1bHRzLG0udXNlPWZ1bmN0aW9u'@; put 'KCl7cmV0dXJuIFIudXNlLmFwcGx5KFIsYXJndW1lbnRzKSxXKG0uZGVmYXVsdHM9Ui5kZWZhdWx0cyksbX0sbS53YWxrVG9rZW5zPWZ1bmN0aW9uKGEsaSl7cmV0dXJuIFIud2Fsa1Rva2VucyhhLGkpfSxtLnBhcnNlSW5saW5lPVIucGFyc2VJbmxpbmUsbS5QYXJzZXI9VCxtLnBhcnNlcj1U'@; put 'LnBhcnNlLG0uUmVuZGVyZXI9WixtLlRleHRSZW5kZXJlcj1OLG0uTGV4ZXI9UyxtLmxleGVyPVMubGV4LG0uVG9rZW5pemVyPWosbS5TbHVnZ2VyPVgsbS5Ib29rcz1PO3ZhciBtZT0obS5wYXJzZT1tKS5vcHRpb25zLHhlPW0uc2V0T3B0aW9ucyxiZT1tLnVzZSx3ZT1tLndhbGtUb2tlbnMs'@; put 'QmU9bS5wYXJzZUlubGluZSx5ZT1tLHZlPVQucGFyc2UsX2U9Uy5sZXg7Qy5Ib29rcz1PLEMuTGV4ZXI9UyxDLk1hcmtlZD1JLEMuUGFyc2VyPVQsQy5SZW5kZXJlcj1aLEMuU2x1Z2dlcj1YLEMuVGV4dFJlbmRlcmVyPU4sQy5Ub2tlbml6ZXI9aixDLmdldERlZmF1bHRzPVEsQy5sZXhlcj1f'@; put 'ZSxDLm1hcmtlZD1tLEMub3B0aW9ucz1tZSxDLnBhcnNlPXllLEMucGFyc2VJbmxpbmU9QmUsQy5wYXJzZXI9dmUsQy5zZXRPcHRpb25zPXhlLEMudXNlPWJlLEMud2Fsa1Rva2Vucz13ZX0pOw=='; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64,swap=compiled_apploc apploc) filename filecode clear; %let filename=styles.bf1a6f46575a454a.css; filename filecode temp lrecl=1415572; data _null_; file filecode; put 'QGNoYXJzZXQgIlVURi04IjsvKiEKICogQ29weXJpZ2h0IChjKSBIQU5EU09OQ09ERSBzcC4geiBvLiBvLgogKgogKiBIQU5EU09OVEFCTEUgaXMgYSBzb2Z0d2FyZSBkaXN0cmlidXRlZCBieSBIQU5EU09OQ09ERSBzcC4geiBvLiBvLiwgYSBQb2xpc2ggY29ycG9yYXRpb24gYmFzZWQgaW4K'@; put 'ICogR2R5bmlhLCBQb2xhbmQsIGF0IEFsZWphIFp3eWNpZXN0d2EgOTYtOTgsIHJlZ2lzdGVyZWQgYnkgdGhlIERpc3RyaWN0IENvdXJ0IGluIEdkYW5zayB1bmRlciBudW1iZXIKICogNTM4NjUxLCBFVSB0YXggSUQgbnVtYmVyOiBQTDU4NjIyOTQwMDIsIHNoYXJlIGNhcGl0YWw6IFBMTiA2'@; put 'Miw4MDAuMDAuCiAqCiAqIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IGFwcGxpY2FibGUgY29weXJpZ2h0IGxhd3MsIGluY2x1ZGluZyBpbnRlcm5hdGlvbmFsIHRyZWF0aWVzLCBhbmQgZHVhbC0KICogbGljZW5zZWQgLSBkZXBlbmRpbmcgb24gd2hldGhlciB5b3VyIHVzZSBmb3Ig'@; put 'Y29tbWVyY2lhbCBwdXJwb3NlcywgbWVhbmluZyBpbnRlbmRlZCBmb3Igb3IKICogcmVzdWx0aW5nIGluIGNvbW1lcmNpYWwgYWR2YW50YWdlIG9yIG1vbmV0YXJ5IGNvbXBlbnNhdGlvbiwgb3Igbm90LgogKgogKiBJZiB5b3VyIHVzZSBpcyBzdHJpY3RseSBwZXJzb25hbCBvciBzb2xlbHkg'@; put 'Zm9yIGV2YWx1YXRpb24gcHVycG9zZXMsIG1lYW5pbmcgZm9yIHRoZSBwdXJwb3NlcyBvZiB0ZXN0aW5nCiAqIHRoZSBzdWl0YWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCB1c2VmdWxuZXNzIG9mIHRoaXMgc29mdHdhcmUgb3V0c2lkZSB0aGUgcHJvZHVjdGlvbiBlbnZpcm9ubWVudCwKICog'@; put 'eW91IGFncmVlIHRvIGJlIGJvdW5kIGJ5IHRoZSB0ZXJtcyBpbmNsdWRlZCBpbiB0aGUgImhhbmRzb250YWJsZS1ub24tY29tbWVyY2lhbC1saWNlbnNlLnBkZiIgZmlsZS4KICoKICogWW91ciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZSBmb3IgY29tbWVyY2lhbCBwdXJwb3NlcyBpcyBzdWJqZWN0'@; put 'IHRvIHRoZSB0ZXJtcyBpbmNsdWRlZCBpbiBhbiBhcHBsaWNhYmxlCiAqIGxpY2Vuc2UgYWdyZWVtZW50LgogKgogKiBJbiBhbnkgY2FzZSwgeW91IG11c3Qgbm90IG1ha2UgYW55IHN1Y2ggdXNlIG9mIHRoaXMgc29mdHdhcmUgYXMgdG8gZGV2ZWxvcCBzb2Z0d2FyZSB3aGljaCBtYXkgYmUK'@; put 'ICogY29uc2lkZXJlZCBjb21wZXRpdGl2ZSB3aXRoIHRoaXMgc29mdHdhcmUuCiAqCiAqIFVOTEVTUyBFWFBSRVNTTFkgQUdSRUVEIE9USEVSV0lTRSwgSEFORFNPTkNPREUgUFJPVklERVMgVEhJUyBTT0ZUV0FSRSBPTiBBTiAiQVMgSVMiCiAqIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMg'@; put 'T1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgQU5EIElOIE5PIEVWRU5UIEFORCBVTkRFUiBOTwogKiBMRUdBTCBUSEVPUlksIFNIQUxMIEhBTkRTT05DT0RFIEJFIExJQUJMRSBUTyBZT1UgRk9SIERBTUFHRVMsIElOQ0xVRElORyBBTlkgRElSRUNULAogKiBJTkRJUkVDVCwgU1BFQ0lBTCwg'@; put 'SU5DSURFTlRBTCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9GIEFOWSBDSEFSQUNURVIgQVJJU0lORyBGUk9NCiAqIFVTRSBPUiBJTkFCSUxJVFkgVE8gVVNFIFRISVMgU09GVFdBUkUuCiAqCiAqIFZlcnNpb246IDE2LjAuMQogKiBSZWxlYXNlIGRhdGU6IDEwLzA3LzIwMjUgKGJ1aWx0'@; put 'IGF0IDEwLzA3LzIwMjUgMTA6NTk6MTIpCiAqLy5oYW5kc29udGFibGUgLnRhYmxlIHRoLC5oYW5kc29udGFibGUgLnRhYmxlIHRke2JvcmRlci10b3A6bm9uZX0uaGFuZHNvbnRhYmxlIHRye2JhY2tncm91bmQ6I2ZmZn0uaGFuZHNvbnRhYmxlIHRke2JhY2tncm91bmQtY29sb3I6aW5oZXJp'@; put 'dH0uaGFuZHNvbnRhYmxlIC50YWJsZSBjYXB0aW9uK3RoZWFkIHRyOmZpcnN0LWNoaWxkIHRoLC5oYW5kc29udGFibGUgLnRhYmxlIGNhcHRpb24rdGhlYWQgdHI6Zmlyc3QtY2hpbGQgdGQsLmhhbmRzb250YWJsZSAudGFibGUgY29sZ3JvdXArdGhlYWQgdHI6Zmlyc3QtY2hpbGQgdGgsLmhh'@; put 'bmRzb250YWJsZSAudGFibGUgY29sZ3JvdXArdGhlYWQgdHI6Zmlyc3QtY2hpbGQgdGQsLmhhbmRzb250YWJsZSAudGFibGUgdGhlYWQ6Zmlyc3QtY2hpbGQgdHI6Zmlyc3QtY2hpbGQgdGgsLmhhbmRzb250YWJsZSAudGFibGUgdGhlYWQ6Zmlyc3QtY2hpbGQgdHI6Zmlyc3QtY2hpbGQgdGR7'@; put 'Ym9yZGVyLXRvcDoxcHggc29saWQgI0NDQ0NDQ30uaGFuZHNvbnRhYmxlIC50YWJsZS1ib3JkZXJlZHtib3JkZXI6MDtib3JkZXItY29sbGFwc2U6c2VwYXJhdGV9LmhhbmRzb250YWJsZSAudGFibGUtYm9yZGVyZWQgdGgsLmhhbmRzb250YWJsZSAudGFibGUtYm9yZGVyZWQgdGR7Ym9yZGVy'@; put 'LWxlZnQ6bm9uZX0uaGFuZHNvbnRhYmxlIC50YWJsZS1ib3JkZXJlZCB0aDpmaXJzdC1jaGlsZCwuaGFuZHNvbnRhYmxlIC50YWJsZS1ib3JkZXJlZCB0ZDpmaXJzdC1jaGlsZHtib3JkZXItbGVmdDoxcHggc29saWQgI0NDQ0NDQ30uaGFuZHNvbnRhYmxlIC50YWJsZT50Ym9keT50cj50ZCwu'@; put 'aGFuZHNvbnRhYmxlIC50YWJsZT50Ym9keT50cj50aCwuaGFuZHNvbnRhYmxlIC50YWJsZT50Zm9vdD50cj50ZCwuaGFuZHNvbnRhYmxlIC50YWJsZT50Zm9vdD50cj50aCwuaGFuZHNvbnRhYmxlIC50YWJsZT50aGVhZD50cj50ZCwuaGFuZHNvbnRhYmxlIC50YWJsZT50aGVhZD50cj50aHts'@; put 'aW5lLWhlaWdodDoyMXB4O3BhZGRpbmc6MH0uY29sLWxnLTEuaGFuZHNvbnRhYmxlLC5jb2wtbGctMTAuaGFuZHNvbnRhYmxlLC5jb2wtbGctMTEuaGFuZHNvbnRhYmxlLC5jb2wtbGctMTIuaGFuZHNvbnRhYmxlLC5jb2wtbGctMi5oYW5kc29udGFibGUsLmNvbC1sZy0zLmhhbmRzb250YWJs'@; put 'ZSwuY29sLWxnLTQuaGFuZHNvbnRhYmxlLC5jb2wtbGctNS5oYW5kc29udGFibGUsLmNvbC1sZy02LmhhbmRzb250YWJsZSwuY29sLWxnLTcuaGFuZHNvbnRhYmxlLC5jb2wtbGctOC5oYW5kc29udGFibGUsLmNvbC1sZy05LmhhbmRzb250YWJsZSwuY29sLW1kLTEuaGFuZHNvbnRhYmxlLC5j'@; put 'b2wtbWQtMTAuaGFuZHNvbnRhYmxlLC5jb2wtbWQtMTEuaGFuZHNvbnRhYmxlLC5jb2wtbWQtMTIuaGFuZHNvbnRhYmxlLC5jb2wtbWQtMi5oYW5kc29udGFibGUsLmNvbC1tZC0zLmhhbmRzb250YWJsZSwuY29sLW1kLTQuaGFuZHNvbnRhYmxlLC5jb2wtbWQtNS5oYW5kc29udGFibGUsLmNv'@; put 'bC1tZC02LmhhbmRzb250YWJsZSwuY29sLW1kLTcuaGFuZHNvbnRhYmxlLC5jb2wtbWQtOC5oYW5kc29udGFibGUsLmNvbC1tZC05LmhhbmRzb250YWJsZSAuY29sLXNtLTEuaGFuZHNvbnRhYmxlLC5jb2wtc20tMTAuaGFuZHNvbnRhYmxlLC5jb2wtc20tMTEuaGFuZHNvbnRhYmxlLC5jb2wt'@; put 'c20tMTIuaGFuZHNvbnRhYmxlLC5jb2wtc20tMi5oYW5kc29udGFibGUsLmNvbC1zbS0zLmhhbmRzb250YWJsZSwuY29sLXNtLTQuaGFuZHNvbnRhYmxlLC5jb2wtc20tNS5oYW5kc29udGFibGUsLmNvbC1zbS02LmhhbmRzb250YWJsZSwuY29sLXNtLTcuaGFuZHNvbnRhYmxlLC5jb2wtc20t'@; put 'OC5oYW5kc29udGFibGUsLmNvbC1zbS05LmhhbmRzb250YWJsZSAuY29sLXhzLTEuaGFuZHNvbnRhYmxlLC5jb2wteHMtMTAuaGFuZHNvbnRhYmxlLC5jb2wteHMtMTEuaGFuZHNvbnRhYmxlLC5jb2wteHMtMTIuaGFuZHNvbnRhYmxlLC5jb2wteHMtMi5oYW5kc29udGFibGUsLmNvbC14cy0z'@; put 'LmhhbmRzb250YWJsZSwuY29sLXhzLTQuaGFuZHNvbnRhYmxlLC5jb2wteHMtNS5oYW5kc29udGFibGUsLmNvbC14cy02LmhhbmRzb250YWJsZSwuY29sLXhzLTcuaGFuZHNvbnRhYmxlLC5jb2wteHMtOC5oYW5kc29udGFibGUsLmNvbC14cy05LmhhbmRzb250YWJsZXtwYWRkaW5nLWxlZnQ6'@; put 'MDtwYWRkaW5nLXJpZ2h0OjB9LmhhbmRzb250YWJsZSAudGFibGUtc3RyaXBlZD50Ym9keT50cjpudGgtb2YtdHlwZSgybil7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5oYW5kc29udGFibGUgLmhpZGV7ZGlzcGxheTpub25lfS5oYW5kc29udGFibGUgLnJlbGF0aXZle3Bvc2l0aW9uOnJlbGF0'@; put 'aXZlfS5oYW5kc29udGFibGUgLnd0SGlkZXJ7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MH0uaGFuZHNvbnRhYmxlIC53dFNwcmVhZGVye3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjA7aGVpZ2h0OmF1dG99LmhhbmRzb250YWJsZSB0YWJsZSwuaGFuZHNvbnRhYmxlIHRib2R5LC5oYW5kc29u'@; put 'dGFibGUgdGhlYWQsLmhhbmRzb250YWJsZSB0ZCwuaGFuZHNvbnRhYmxlIHRoLC5oYW5kc29udGFibGUgaW5wdXQsLmhhbmRzb250YWJsZSB0ZXh0YXJlYSwuaGFuZHNvbnRhYmxlIGRpdntib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96'@; put 'LWJveC1zaXppbmc6Y29udGVudC1ib3h9LmhhbmRzb250YWJsZSBpbnB1dCwuaGFuZHNvbnRhYmxlIHRleHRhcmVhe21pbi1oZWlnaHQ6aW5pdGlhbH0uaGFuZHNvbnRhYmxlIHRhYmxlLmh0Q29yZXtib3JkZXItY29sbGFwc2U6c2VwYXJhdGU7Ym9yZGVyLXNwYWNpbmc6MDttYXJnaW46MDti'@; put 'b3JkZXItd2lkdGg6MDt0YWJsZS1sYXlvdXQ6Zml4ZWQ7d2lkdGg6MDtvdXRsaW5lLXdpZHRoOjA7Y3Vyc29yOmRlZmF1bHQ7bWF4LXdpZHRoOm5vbmU7bWF4LWhlaWdodDpub25lfS5oYW5kc29udGFibGUgY29sLC5oYW5kc29udGFibGUgY29sLnJvd0hlYWRlcnt3aWR0aDo1MHB4fS5oYW5k'@; put 'c29udGFibGUgdGgsLmhhbmRzb250YWJsZSB0ZHtib3JkZXItdG9wLXdpZHRoOjA7Ym9yZGVyLWxlZnQtd2lkdGg6MDtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNjY2M7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjYztoZWlnaHQ6MjJweDtlbXB0eS1jZWxsczpzaG93O2xpbmUtaGVpZ2h0'@; put 'OjIxcHg7cGFkZGluZzowIDRweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7dmVydGljYWwtYWxpZ246dG9wO292ZXJmbG93OmhpZGRlbjtvdXRsaW5lOm5vbmU7b3V0bGluZS13aWR0aDowO3doaXRlLXNwYWNlOnByZS13cmFwfVtkaXI9cnRsXS5oYW5kc29udGFibGUgdGgsW2Rpcj1ydGxdLmhh'@; put 'bmRzb250YWJsZSB0ZHtib3JkZXItcmlnaHQtd2lkdGg6MDtib3JkZXItbGVmdDoxcHggc29saWQgI2NjY30uaGFuZHNvbnRhYmxlIHRoOmxhc3QtY2hpbGR7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNjY2M7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjY31b'@; put 'ZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIHRoOmxhc3QtY2hpbGR7Ym9yZGVyLXJpZ2h0Om5vbmU7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNjY2N9LmhhbmRzb250YWJsZSB0aDpmaXJzdC1jaGlsZCwuaGFuZHNvbnRhYmxlIHRkOmZpcnN0LW9mLXR5cGV7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNj'@; put 'Y2N9W2Rpcj1ydGxdLmhhbmRzb250YWJsZSB0aDpmaXJzdC1jaGlsZCxbZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIHRkOmZpcnN0LW9mLXR5cGV7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjY2NjfS5oYW5kc29udGFibGUgLmh0X2Nsb25lX3RvcCB0aDpudGgtY2hpbGQoMil7Ym9yZGVyLWxlZnQt'@; put 'd2lkdGg6MDtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNjY2N9W2Rpcj1ydGxdLmhhbmRzb250YWJsZSAuaHRfY2xvbmVfdG9wIHRoOm50aC1jaGlsZCgyKXtib3JkZXItcmlnaHQtd2lkdGg6MDtib3JkZXItbGVmdDoxcHggc29saWQgI2NjY30uaGFuZHNvbnRhYmxlLmh0Um93SGVhZGVycyB0'@; put 'aGVhZCB0ciB0aDpudGgtY2hpbGQoMil7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNjY2N9W2Rpcj1ydGxdLmhhbmRzb250YWJsZS5odFJvd0hlYWRlcnMgdGhlYWQgdHIgdGg6bnRoLWNoaWxkKDIpe2JvcmRlci1yaWdodDoxcHggc29saWQgI2NjY30uaGFuZHNvbnRhYmxlIHRyOmZpcnN0LWNo'@; put 'aWxkIHRoLC5oYW5kc29udGFibGUgdHI6Zmlyc3QtY2hpbGQgdGR7Ym9yZGVyLXRvcDoxcHggc29saWQgI2NjY30uaHRfbWFzdGVyOm5vdCguaW5uZXJCb3JkZXJJbmxpbmVTdGFydCk6bm90KC5lbXB0eUNvbHVtbnMpIHRib2R5IHRyIHRoLC5odF9tYXN0ZXI6bm90KC5pbm5lckJvcmRlcklu'@; put 'bGluZVN0YXJ0KTpub3QoLmVtcHR5Q29sdW1ucykgdGhlYWQgdHIgdGg6Zmlyc3QtY2hpbGQsLmh0X21hc3Rlcjpub3QoLmlubmVyQm9yZGVySW5saW5lU3RhcnQpOm5vdCguZW1wdHlDb2x1bW5zKX4uaGFuZHNvbnRhYmxlOm5vdCguaHRHaG9zdFRhYmxlKSB0Ym9keSB0ciB0aCwuaHRfbWFz'@; put 'dGVyOm5vdCguaW5uZXJCb3JkZXJJbmxpbmVTdGFydCk6bm90KC5lbXB0eUNvbHVtbnMpfi5oYW5kc29udGFibGU6bm90KC5odF9jbG9uZV90b3ApOm5vdCguaHRHaG9zdFRhYmxlKSB0aGVhZCB0ciB0aDpmaXJzdC1jaGlsZHtib3JkZXItcmlnaHQtd2lkdGg6MDtib3JkZXItbGVmdDoxcHgg'@; put 'c29saWQgI2NjY31bZGlyPXJ0bF0uaHRfbWFzdGVyOm5vdCguaW5uZXJCb3JkZXJJbmxpbmVTdGFydCk6bm90KC5lbXB0eUNvbHVtbnMpIHRib2R5IHRyIHRoLFtkaXI9cnRsXS5odF9tYXN0ZXI6bm90KC5pbm5lckJvcmRlcklubGluZVN0YXJ0KTpub3QoLmVtcHR5Q29sdW1ucykgdGhlYWQg'@; put 'dHIgdGg6Zmlyc3QtY2hpbGQsW2Rpcj1ydGxdLmh0X21hc3Rlcjpub3QoLmlubmVyQm9yZGVySW5saW5lU3RhcnQpOm5vdCguZW1wdHlDb2x1bW5zKX4uaGFuZHNvbnRhYmxlOm5vdCguaHRHaG9zdFRhYmxlKSB0Ym9keSB0ciB0aCxbZGlyPXJ0bF0uaHRfbWFzdGVyOm5vdCguaW5uZXJCb3Jk'@; put 'ZXJJbmxpbmVTdGFydCk6bm90KC5lbXB0eUNvbHVtbnMpfi5oYW5kc29udGFibGU6bm90KC5odF9jbG9uZV90b3ApOm5vdCguaHRHaG9zdFRhYmxlKSB0aGVhZCB0ciB0aDpmaXJzdC1jaGlsZHtib3JkZXItbGVmdC13aWR0aDowO2JvcmRlci1yaWdodDoxcHggc29saWQgI2NjY30uaHRfbWFz'@; put 'dGVyOm5vdCguaW5uZXJCb3JkZXJUb3ApOm5vdCguaW5uZXJCb3JkZXJCb3R0b20pIHRoZWFkIHRyOmxhc3QtY2hpbGQgdGgsLmh0X21hc3Rlcjpub3QoLmlubmVyQm9yZGVyVG9wKTpub3QoLmlubmVyQm9yZGVyQm90dG9tKX4uaGFuZHNvbnRhYmxlIHRoZWFkIHRyOmxhc3QtY2hpbGQgdGgs'@; put 'Lmh0X21hc3Rlcjpub3QoLmlubmVyQm9yZGVyVG9wKTpub3QoLmlubmVyQm9yZGVyQm90dG9tKSB0aGVhZCB0ci5sYXN0Q2hpbGQgdGgsLmh0X21hc3Rlcjpub3QoLmlubmVyQm9yZGVyVG9wKTpub3QoLmlubmVyQm9yZGVyQm90dG9tKX4uaGFuZHNvbnRhYmxlIHRoZWFkIHRyLmxhc3RDaGls'@; put 'ZCB0aHtib3JkZXItYm90dG9tLXdpZHRoOjB9LmhhbmRzb250YWJsZSB0aHtiYWNrZ3JvdW5kLWNvbG9yOiNmMGYwZjA7Y29sb3I6IzIyMjt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXdlaWdodDo0MDA7d2hpdGUtc3BhY2U6bm93cmFwfS5oYW5kc29udGFibGUgdGhlYWQgdGh7cGFkZGluZzow'@; put 'fS5oYW5kc29udGFibGUgdGguYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2NjY30uaGFuZHNvbnRhYmxlIHRoZWFkIHRoIC5yZWxhdGl2ZXtwYWRkaW5nOjJweCA0cHh9LmhhbmRzb250YWJsZSBzcGFuLmNvbEhlYWRlcntkaXNwbGF5OmlubGluZS1ibG9jaztsaW5lLWhlaWdodDoxLjF9Lmhh'@; put 'bmRzb250YWJsZSAud3RCb3JkZXJ7cG9zaXRpb246YWJzb2x1dGU7Zm9udC1zaXplOjB9LmhhbmRzb250YWJsZSAud3RCb3JkZXIuaGlkZGVue2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmhhbmRzb250YWJsZSAud3RCb3JkZXI6bnRoLWNoaWxkKDEpLC5oYW5kc29udGFibGUgLnd0Qm9yZGVy'@; put 'Om50aC1jaGlsZCgzKXt6LWluZGV4OjJ9LmhhbmRzb250YWJsZSAud3RCb3JkZXI6bnRoLWNoaWxkKDIpLC5oYW5kc29udGFibGUgLnd0Qm9yZGVyOm50aC1jaGlsZCg0KXt6LWluZGV4OjF9LmhhbmRzb250YWJsZSAud3RCb3JkZXIuY3VycmVudHt6LWluZGV4OjEwfS5oYW5kc29udGFibGUg'@; put 'Lnd0Qm9yZGVyLmFyZWF7ei1pbmRleDo4fS5oYW5kc29udGFibGUgLnd0Qm9yZGVyLmZpbGx7ei1pbmRleDo2fS5oYW5kc29udGFibGUgLnd0Qm9yZGVyLmNvcm5lcntmb250LXNpemU6MDtjdXJzb3I6Y3Jvc3NoYWlyfS5odF9jbG9uZV9tYXN0ZXJ7ei1pbmRleDoxMDB9Lmh0X2Nsb25lX2lu'@; put 'bGluZV9zdGFydHt6LWluZGV4OjEyMH0uaHRfY2xvbmVfYm90dG9te3otaW5kZXg6MTMwfS5odF9jbG9uZV9ib3R0b21faW5saW5lX3N0YXJ0X2Nvcm5lcnt6LWluZGV4OjE1MH0uaHRfY2xvbmVfdG9we3otaW5kZXg6MTYwfS5odF9jbG9uZV90b3BfaW5saW5lX3N0YXJ0X2Nvcm5lcnt6LWlu'@; put 'ZGV4OjE4MH0uaGFuZHNvbnRhYmxlIGNvbC5oaWRkZW57d2lkdGg6MCFpbXBvcnRhbnR9LmhhbmRzb250YWJsZSB0ci5oaWRkZW4sLmhhbmRzb250YWJsZSB0ci5oaWRkZW4gdGQsLmhhbmRzb250YWJsZSB0ci5oaWRkZW4gdGh7ZGlzcGxheTpub25lfS5odF9tYXN0ZXIsLmh0X2Nsb25lX2lu'@; put 'bGluZV9zdGFydCwuaHRfY2xvbmVfdG9wLC5odF9jbG9uZV9ib3R0b217b3ZlcmZsb3c6aGlkZGVufS5odF9tYXN0ZXIgLnd0SG9sZGVye292ZXJmbG93OmF1dG99LmhhbmRzb250YWJsZSAuaHRfbWFzdGVyIHRhYmxlLmh0Q29yZT50aGVhZCwuaGFuZHNvbnRhYmxlIC5odF9tYXN0ZXIgdGFi'@; put 'bGUuaHRDb3JlPnRib2R5PnRyPnRoLC5oYW5kc29udGFibGUgLmh0X2Nsb25lX2lubGluZV9zdGFydCB0YWJsZS5odENvcmU+dGhlYWR7dmlzaWJpbGl0eTpoaWRkZW59Lmh0X2Nsb25lX3RvcCAud3RIb2xkZXIsLmh0X2Nsb25lX2lubGluZV9zdGFydCAud3RIb2xkZXIsLmh0X2Nsb25lX2Jv'@; put 'dHRvbSAud3RIb2xkZXJ7b3ZlcmZsb3c6aGlkZGVufS5oYW5kc29udGFibGV7cG9zaXRpb246cmVsYXRpdmU7dG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbjtmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxTZWdvZSBVSSxSb2JvdG8sT3h5Z2VuLFVidW50dSxI'@; put 'ZWx2ZXRpY2EgTmV1ZSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjojMzczNzM3fS5oYW5kc29udGFibGUgYXtjb2xvcjojMTA0YWNjfS5oYW5kc29udGFibGUuaHRBdXRvU2l6ZXt2aXNpYmlsaXR5OmhpZGRlbjtsZWZ0Oi05OTAwMHB4O3Bv'@; put 'c2l0aW9uOmFic29sdXRlO3RvcDotOTkwMDBweH0uaGFuZHNvbnRhYmxlIHRkLmh0SW52YWxpZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmJlYmEhaW1wb3J0YW50fS5oYW5kc29udGFibGUgdGQuaHROb1dyYXB7d2hpdGUtc3BhY2U6bm93cmFwfS5oYW5kc29udGFibGUgdGQuaW52aXNpYmxlU2Vs'@; put 'ZWN0aW9uLC5oYW5kc29udGFibGUgdGguaW52aXNpYmxlU2VsZWN0aW9ue291dGxpbmU6bm9uZX0uaGFuZHNvbnRhYmxlIHRkLmludmlzaWJsZVNlbGVjdGlvbjo6c2VsZWN0aW9uLC5oYW5kc29udGFibGUgdGguaW52aXNpYmxlU2VsZWN0aW9uOjpzZWxlY3Rpb257YmFja2dyb3VuZDojZmZm'@; put 'MH0uaG90LWRpc3BsYXktbGljZW5zZS1pbmZve2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFNlZ29lIFVJLFJvYm90byxPeHlnZW4sVWJ1bnR1LEhlbHZldGljYSBOZXVlLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwcHg7Zm9udC13ZWlnaHQ6NDAw'@; put 'O2NvbG9yOiMzNzM3Mzc7cGFkZGluZzo1cHggMCAzcHg7dGV4dC1hbGlnbjpsZWZ0fS5ob3QtZGlzcGxheS1saWNlbnNlLWluZm8gYXtjb2xvcjojMTA0YWNjO2ZvbnQtc2l6ZToxMHB4fS5odC1yb290LXdyYXBwZXIgLmh0Rm9jdXNDYXRjaGVye3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6'@; put 'LTE7b3BhY2l0eTowO2JvcmRlcjowO21hcmdpbjowO3BhZGRpbmc6MDt3aWR0aDowO2hlaWdodDowfS5oYW5kc29udGFibGUgLmh0VGV4dEVsbGlwc2lze3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcH0uaGFuZHNvbnRhYmxlIC5tYW51'@; put 'YWxDb2x1bW5SZXNpemVye3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2N1cnNvcjpjb2wtcmVzaXplO3otaW5kZXg6MjEwO3dpZHRoOjVweDtoZWlnaHQ6MjVweH0uaGFuZHNvbnRhYmxlIC5tYW51YWxSb3dSZXNpemVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtjdXJzb3I6cm93LXJlc2l6'@; put 'ZTt6LWluZGV4OjIxMDtoZWlnaHQ6NXB4O3dpZHRoOjUwcHh9LmhhbmRzb250YWJsZSAubWFudWFsQ29sdW1uUmVzaXplcjpob3ZlciwuaGFuZHNvbnRhYmxlIC5tYW51YWxDb2x1bW5SZXNpemVyLmFjdGl2ZSwuaGFuZHNvbnRhYmxlIC5tYW51YWxSb3dSZXNpemVyOmhvdmVyLC5oYW5kc29u'@; put 'dGFibGUgLm1hbnVhbFJvd1Jlc2l6ZXIuYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzM0YTlkYn0uaGFuZHNvbnRhYmxlIC5tYW51YWxDb2x1bW5SZXNpemVyR3VpZGV7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6dW5zZXQ7dG9wOjA7YmFja2dyb3VuZC1jb2xvcjojMzRhOWRiO2Rpc3BsYXk6'@; put 'bm9uZTt3aWR0aDowO2JvcmRlci1yaWdodDoxcHggZGFzaGVkICM3Nzc7Ym9yZGVyLWxlZnQ6bm9uZTttYXJnaW4tbGVmdDo1cHg7bWFyZ2luLXJpZ2h0OnVuc2V0fVtkaXI9cnRsXS5oYW5kc29udGFibGUgLm1hbnVhbENvbHVtblJlc2l6ZXJHdWlkZXtsZWZ0OnVuc2V0O2JvcmRlci1sZWZ0'@; put 'OjFweCBkYXNoZWQgIzc3Nztib3JkZXItcmlnaHQ6bm9uZTttYXJnaW4tcmlnaHQ6NXB4O21hcmdpbi1sZWZ0OnVuc2V0fS5oYW5kc29udGFibGUgLm1hbnVhbFJvd1Jlc2l6ZXJHdWlkZXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7Ym90dG9tOjA7YmFja2dyb3VuZC1jb2xvcjojMzRhOWRi'@; put 'O2Rpc3BsYXk6bm9uZTtoZWlnaHQ6MDtib3JkZXItYm90dG9tOjFweCBkYXNoZWQgIzc3NzttYXJnaW4tdG9wOjVweH0uaGFuZHNvbnRhYmxlIC5tYW51YWxDb2x1bW5SZXNpemVyR3VpZGUuYWN0aXZlLC5oYW5kc29udGFibGUgLm1hbnVhbFJvd1Jlc2l6ZXJHdWlkZS5hY3RpdmV7ZGlzcGxh'@; put 'eTpibG9jazt6LWluZGV4OjIwOX0uaGFuZHNvbnRhYmxlIHRkLmFyZWEsLmhhbmRzb250YWJsZSB0ZC5hcmVhLTEsLmhhbmRzb250YWJsZSB0ZC5hcmVhLTIsLmhhbmRzb250YWJsZSB0ZC5hcmVhLTMsLmhhbmRzb250YWJsZSB0ZC5hcmVhLTQsLmhhbmRzb250YWJsZSB0ZC5hcmVhLTUsLmhh'@; put 'bmRzb250YWJsZSB0ZC5hcmVhLTYsLmhhbmRzb250YWJsZSB0ZC5hcmVhLTd7cG9zaXRpb246cmVsYXRpdmV9LmhhbmRzb250YWJsZSB0ZC5hcmVhOmJlZm9yZSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtMTpiZWZvcmUsLmhhbmRzb250YWJsZSB0ZC5hcmVhLTI6YmVmb3JlLC5oYW5kc29udGFi'@; put 'bGUgdGQuYXJlYS0zOmJlZm9yZSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtNDpiZWZvcmUsLmhhbmRzb250YWJsZSB0ZC5hcmVhLTU6YmVmb3JlLC5oYW5kc29udGFibGUgdGQuYXJlYS02OmJlZm9yZSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtNzpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjph'@; put 'YnNvbHV0ZTtpbnNldDowO2JhY2tncm91bmQ6IzAwNWVmZn0uaGFuZHNvbnRhYmxlIHRkLmFyZWE6YmVmb3Jle29wYWNpdHk6LjF9LmhhbmRzb250YWJsZSB0ZC5hcmVhLTE6YmVmb3Jle29wYWNpdHk6LjJ9LmhhbmRzb250YWJsZSB0ZC5hcmVhLTI6YmVmb3Jle29wYWNpdHk6LjI3fS5oYW5k'@; put 'c29udGFibGUgdGQuYXJlYS0zOmJlZm9yZXtvcGFjaXR5Oi4zNX0uaGFuZHNvbnRhYmxlIHRkLmFyZWEtNDpiZWZvcmV7b3BhY2l0eTouNDF9LmhhbmRzb250YWJsZSB0ZC5hcmVhLTU6YmVmb3Jle29wYWNpdHk6LjQ3fS5oYW5kc29udGFibGUgdGQuYXJlYS02OmJlZm9yZXtvcGFjaXR5Oi41'@; put 'NH0uaGFuZHNvbnRhYmxlIHRkLmFyZWEtNzpiZWZvcmV7b3BhY2l0eTouNTh9LmhhbmRzb250YWJsZSB0Ym9keSB0aC5jdXJyZW50LC5oYW5kc29udGFibGUgdGhlYWQgdGguY3VycmVudHtib3gtc2hhZG93Omluc2V0IDAgMCAwIDJweCAjNGI4OWZmfS5oYW5kc29udGFibGUgdGJvZHkgdGgu'@; put 'aHRfX2hpZ2hsaWdodCwuaGFuZHNvbnRhYmxlIHRoZWFkIHRoLmh0X19oaWdobGlnaHR7YmFja2dyb3VuZC1jb2xvcjojZGNkY2RjfS5oYW5kc29udGFibGUgdGJvZHkgdGguaHRfX2FjdGl2ZV9oaWdobGlnaHQsLmhhbmRzb250YWJsZSB0aGVhZCB0aC5odF9fYWN0aXZlX2hpZ2hsaWdodHti'@; put 'YWNrZ3JvdW5kLWNvbG9yOiM4ZWIwZTc7Y29sb3I6IzAwMH0uaGFuZHNvbnRhYmxlSW5wdXR7Ym9yZGVyOm5vbmU7b3V0bGluZS13aWR0aDowO21hcmdpbjowO3BhZGRpbmc6MXB4IDVweCAwO2ZvbnQtZmFtaWx5OmluaGVyaXQ7bGluZS1oZWlnaHQ6MjFweDtmb250LXNpemU6aW5oZXJpdDti'@; put 'b3gtc2hhZG93OjAgMCAwIDJweCAjNTI5MmY3IGluc2V0O3Jlc2l6ZTpub25lO2Rpc3BsYXk6YmxvY2s7Y29sb3I6IzAwMDtib3JkZXItcmFkaXVzOjA7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JveC1zaXppbmc6Ym9yZGVyLWJveCFpbXBvcnRhbnR9LmhhbmRzb250YWJsZUlucHV0OmZvY3Vz'@; put 'e291dGxpbmU6bm9uZX0uaGFuZHNvbnRhYmxlSW5wdXRIb2xkZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowfS5odFNlbGVjdEVkaXRvcntwb3NpdGlvbjphYnNvbHV0ZX0uaHRTZWxlY3RFZGl0b3Igc2VsZWN0ey13ZWJraXQtYXBwZWFyYW5jZTptZW51bGlzdC1idXR0b24haW1w'@; put 'b3J0YW50O3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Ym9yZGVyOjJweCBzb2xpZCAjNGI4OWZmO2JveC1zaXppbmc6Ym9yZGVyLWJveCFpbXBvcnRhbnR9Lmh0U2VsZWN0RWRpdG9yIHNlbGVjdDpmb2N1c3tvdXRsaW5lOm5vbmV9Lmh0U2VsZWN0RWRpdG9yIC5odEF1dG9jb21wbGV0ZUFycm93'@; put 'e2Rpc3BsYXk6bm9uZX0uaGFuZHNvbnRhYmxlIC5odERpbW1lZHtjb2xvcjojNzc3fS5oYW5kc29udGFibGUgLmh0U3VibWVudXtwb3NpdGlvbjpyZWxhdGl2ZX0uaGFuZHNvbnRhYmxlIC5odFN1Ym1lbnUgOmFmdGVye2NvbnRlbnQ6IlwyNWI2Ijtjb2xvcjojNzc3O3Bvc2l0aW9uOmFic29s'@; put 'dXRlO3JpZ2h0OjVweDtmb250LXNpemU6OXB4fVtkaXI9cnRsXS5oYW5kc29udGFibGUgLmh0U3VibWVudSA6YWZ0ZXJ7Y29udGVudDoiIn1bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5odFN1Ym1lbnUgOmJlZm9yZXtjb250ZW50OiJcMjVjMCI7Y29sb3I6Izc3Nztwb3NpdGlvbjphYnNvbHV0'@; put 'ZTtsZWZ0OjVweDtmb250LXNpemU6OXB4fS5oYW5kc29udGFibGUgLmh0TGVmdHt0ZXh0LWFsaWduOmxlZnR9LmhhbmRzb250YWJsZSAuaHRDZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9LmhhbmRzb250YWJsZSAuaHRSaWdodHt0ZXh0LWFsaWduOnJpZ2h0fS5oYW5kc29udGFibGUgLmh0SnVz'@; put 'dGlmeXt0ZXh0LWFsaWduOmp1c3RpZnl9LmhhbmRzb250YWJsZSAuaHRUb3B7dmVydGljYWwtYWxpZ246dG9wfS5oYW5kc29udGFibGUgLmh0TWlkZGxle3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uaGFuZHNvbnRhYmxlIC5odEJvdHRvbXt2ZXJ0aWNhbC1hbGlnbjpib3R0b219LmhhbmRzb250'@; put 'YWJsZSAuaHRQbGFjZWhvbGRlcntjb2xvcjojOTk5fS5oYW5kc29udGFibGUubGlzdGJveHtib3JkZXI6MXB4IHNvbGlkICNjY2M7bWFyZ2luOjB9LmhhbmRzb250YWJsZS5saXN0Ym94LmF1dG9jb21wbGV0ZUVkaXRvciwuaGFuZHNvbnRhYmxlLmxpc3Rib3guZHJvcGRvd25FZGl0b3J7Ym9y'@; put 'ZGVyLXdpZHRoOjB9LmhhbmRzb250YWJsZS5saXN0Ym94IC5odF9tYXN0ZXIgdGFibGV7Ym9yZGVyLWNvbGxhcHNlOnNlcGFyYXRlO2JhY2tncm91bmQ6I2ZmZn0uaGFuZHNvbnRhYmxlLmxpc3Rib3guYXV0b2NvbXBsZXRlRWRpdG9yIC5odF9tYXN0ZXIgdGFibGUsLmhhbmRzb250YWJsZS5s'@; put 'aXN0Ym94LmRyb3Bkb3duRWRpdG9yIC5odF9tYXN0ZXIgdGFibGV7Ym9yZGVyOjFweCBzb2xpZCAjY2NjfS5oYW5kc29udGFibGUubGlzdGJveCB0aCwuaGFuZHNvbnRhYmxlLmxpc3Rib3ggdHI6Zmlyc3QtY2hpbGQgdGgsLmhhbmRzb250YWJsZS5saXN0Ym94IHRyOmxhc3QtY2hpbGQgdGgs'@; put 'LmhhbmRzb250YWJsZS5saXN0Ym94IHRyOmZpcnN0LWNoaWxkIHRkLC5oYW5kc29udGFibGUubGlzdGJveCB0ZHtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQhaW1wb3J0YW50fS5oYW5kc29udGFibGUubGlzdGJveCB0aCwuaGFuZHNvbnRhYmxlLmxpc3Rib3ggdGR7d2hpdGUtc3BhY2U6bm93'@; put 'cmFwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9LmhhbmRzb250YWJsZS5saXN0Ym94IHRkLmh0RGltbWVke2N1cnNvcjpkZWZhdWx0O2NvbG9yOmluaGVyaXQ7Zm9udC1zdHlsZTppbmhlcml0fS5oYW5kc29udGFibGUubGlzdGJveCAud3RCb3JkZXJ7dmlzaWJpbGl0eTpoaWRkZW59LmhhbmRz'@; put 'b250YWJsZS5saXN0Ym94IHRyIHRkLmN1cnJlbnQsLmhhbmRzb250YWJsZS5saXN0Ym94IHRyOmhvdmVyIHRke2JhY2tncm91bmQ6I2VlZX0uaHRfZWRpdG9yX2hpZGRlbnt6LWluZGV4Oi0xfS5odF9lZGl0b3JfdmlzaWJsZXt6LWluZGV4OjIwMH0uaGFuZHNvbnRhYmxlIHRkLmh0U2VhcmNo'@; put 'UmVzdWx0e2JhY2tncm91bmQ6I2ZjZWRkOTtjb2xvcjojNTgzNzA3fS5oYW5kc29udGFibGUubW9iaWxlLC5oYW5kc29udGFibGUubW9iaWxlIC53dEhvbGRlcnstd2Via2l0LXRvdWNoLWNhbGxvdXQ6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTstd2Vi'@; put 'a2l0LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKTstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH0uaGFuZHNvbnRhYmxlLm1vYmlsZSAuaGFuZHNvbnRhYmxlSW5wdXQ6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAycHggIzUyOTJmNyBpbnNldDstd2Via2l0LWFwcGVh'@; put 'cmFuY2U6bm9uZX0uaGFuZHNvbnRhYmxlIC50b3BTZWxlY3Rpb25IYW5kbGUsLmhhbmRzb250YWJsZSAudG9wU2VsZWN0aW9uSGFuZGxlLUhpdEFyZWEsLmhhbmRzb250YWJsZSAuYm90dG9tU2VsZWN0aW9uSGFuZGxlLC5oYW5kc29udGFibGUgLmJvdHRvbVNlbGVjdGlvbkhhbmRsZS1IaXRB'@; put 'cmVhe2xlZnQ6LTEwMDAwcHg7cmlnaHQ6dW5zZXQ7dG9wOi0xMDAwMHB4O3otaW5kZXg6OTk5OX1bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC50b3BTZWxlY3Rpb25IYW5kbGUsW2Rpcj1ydGxdLmhhbmRzb250YWJsZSAudG9wU2VsZWN0aW9uSGFuZGxlLUhpdEFyZWEsW2Rpcj1ydGxdLmhhbmRz'@; put 'b250YWJsZSAuYm90dG9tU2VsZWN0aW9uSGFuZGxlLFtkaXI9cnRsXS5oYW5kc29udGFibGUgLmJvdHRvbVNlbGVjdGlvbkhhbmRsZS1IaXRBcmVhe3JpZ2h0Oi0xMDAwMHB4O2xlZnQ6dW5zZXR9LmhhbmRzb250YWJsZS5oaWRlLXR3ZWVue2FuaW1hdGlvbjpvcGFjaXR5LWhpZGUgLjNzO2Fu'@; put 'aW1hdGlvbi1maWxsLW1vZGU6Zm9yd2FyZHM7LXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOmZvcndhcmRzfS5oYW5kc29udGFibGUuc2hvdy10d2VlbnthbmltYXRpb246b3BhY2l0eS1zaG93IC4zczthbmltYXRpb24tZmlsbC1tb2RlOmZvcndhcmRzOy13ZWJraXQtYW5pbWF0aW9uLWZp'@; put 'bGwtbW9kZTpmb3J3YXJkc30uaGFuZHNvbnRhYmxlIC5odEF1dG9jb21wbGV0ZUFycm93e2Zsb2F0OnJpZ2h0O2ZvbnQtc2l6ZToxMHB4O2NvbG9yOiNiYmI7Y3Vyc29yOmRlZmF1bHQ7d2lkdGg6MTZweDt0ZXh0LWFsaWduOmNlbnRlcn1bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5odEF1dG9j'@; put 'b21wbGV0ZUFycm93e2Zsb2F0OmxlZnR9LmhhbmRzb250YWJsZSB0ZC5odEludmFsaWQgLmh0QXV0b2NvbXBsZXRlQXJyb3d7Y29sb3I6IzU1NX0uaGFuZHNvbnRhYmxlIHRkLmh0SW52YWxpZCAuaHRBdXRvY29tcGxldGVBcnJvdzpob3Zlcntjb2xvcjojMWExYTFhfS5oYW5kc29udGFibGUg'@; put 'dGQgLmh0QXV0b2NvbXBsZXRlQXJyb3c6aG92ZXJ7Y29sb3I6Izc3N30uaGFuZHNvbnRhYmxlIHRkLmFyZWEgLmh0QXV0b2NvbXBsZXRlQXJyb3d7Y29sb3I6I2QzZDNkM30uaGFuZHNvbnRhYmxlIC5odENoZWNrYm94UmVuZGVyZXJJbnB1dC5ub1ZhbHVle29wYWNpdHk6LjV9LmhhbmRzb250'@; put 'YWJsZSAuaHRDaGVja2JveFJlbmRlcmVyTGFiZWx7Zm9udC1zaXplOmluaGVyaXQ7dmVydGljYWwtYWxpZ246bWlkZGxlO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5oYW5kc29udGFibGUgLmh0Q2hlY2tib3hSZW5kZXJlckxhYmVsLmZ1bGxXaWR0aHt3aWR0aDoxMDAl'@; put 'fS5oYW5kc29udGFibGUgLmNvbGxhcHNpYmxlSW5kaWNhdG9ye3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7bGVmdDp1bnNldDtyaWdodDo1cHg7Ym9yZGVyOjFweCBzb2xpZCAjQTZBNkE2O2xpbmUtaGVpZ2h0OjhweDtjb2xvcjojMjIyO2Jv'@; put 'cmRlci1yYWRpdXM6MTBweDtmb250LXNpemU6MTBweDt3aWR0aDoxMHB4O2hlaWdodDoxMHB4O2N1cnNvcjpwb2ludGVyO2JveC1zaGFkb3c6MCAwIDAgM3B4ICNlZWU7YmFja2dyb3VuZDojZWVlO3RleHQtYWxpZ246Y2VudGVyfVtkaXI9cnRsXS5oYW5kc29udGFibGUgLmNvbGxhcHNpYmxl'@; put 'SW5kaWNhdG9ye3JpZ2h0OnVuc2V0O2xlZnQ6NXB4fS5oYW5kc29udGFibGVbZGlyPWx0cl0gdGhlYWQgdGg6aGFzKC5jb2xsYXBzaWJsZUluZGljYXRvcikgZGl2Lmh0UmlnaHQgc3Bhbi5jb2xIZWFkZXJ7bWFyZ2luLXJpZ2h0OjIwcHh9LmhhbmRzb250YWJsZVtkaXI9cnRsXSB0aGVhZCB0'@; put 'aDpoYXMoLmNvbGxhcHNpYmxlSW5kaWNhdG9yKSBkaXYuaHRMZWZ0IHNwYW4uY29sSGVhZGVye21hcmdpbi1sZWZ0OjIwcHh9LmhhbmRzb250YWJsZSAuY29sdW1uU29ydGluZ3twb3NpdGlvbjpyZWxhdGl2ZX0uaGFuZHNvbnRhYmxlW2Rpcj1sdHJdIGRpdi5odFJpZ2h0IHNwYW5bY2xhc3Mq'@; put 'PWFzY2VuZGluZ10sLmhhbmRzb250YWJsZVtkaXI9bHRyXSBkaXYuaHRSaWdodCBzcGFuW2NsYXNzKj1kZXNjZW5kaW5nXXttYXJnaW4tcmlnaHQ6MTBweDttYXJnaW4tbGVmdDotMTBweH0uaGFuZHNvbnRhYmxlW2Rpcj1ydGxdIGRpdi5odExlZnQgc3BhbltjbGFzcyo9YXNjZW5kaW5nXSwu'@; put 'aGFuZHNvbnRhYmxlW2Rpcj1ydGxdIGRpdi5odExlZnQgc3BhbltjbGFzcyo9ZGVzY2VuZGluZ117bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6LTEwcHh9LmhhbmRzb250YWJsZVtkaXI9bHRyXSBkaXYuaHRSaWdodCBzcGFuW2NsYXNzKj1hc2NlbmRpbmddOm9ubHktY2hpbGQsLmhh'@; put 'bmRzb250YWJsZVtkaXI9bHRyXSBkaXYuaHRSaWdodCBzcGFuW2NsYXNzKj1kZXNjZW5kaW5nXTpvbmx5LWNoaWxke21hcmdpbi1yaWdodDoxNXB4O21hcmdpbi1sZWZ0Oi0xNXB4fS5oYW5kc29udGFibGVbZGlyPXJ0bF0gZGl2Lmh0TGVmdCBzcGFuW2NsYXNzKj1hc2NlbmRpbmddOm9ubHkt'@; put 'Y2hpbGQsLmhhbmRzb250YWJsZVtkaXI9cnRsXSBkaXYuaHRMZWZ0IHNwYW5bY2xhc3MqPWRlc2NlbmRpbmddOm9ubHktY2hpbGR7bWFyZ2luLWxlZnQ6MTVweDttYXJnaW4tcmlnaHQ6LTE1cHh9LmhhbmRzb250YWJsZSAuY29sdW1uU29ydGluZy5zb3J0QWN0aW9uOmhvdmVye3RleHQtZGVj'@; put 'b3JhdGlvbjp1bmRlcmxpbmU7Y3Vyc29yOnBvaW50ZXJ9LmhhbmRzb250YWJsZSBzcGFuLmNvbEhlYWRlci5jb2x1bW5Tb3J0aW5nOmJlZm9yZXt0b3A6NTAlO21hcmdpbi10b3A6LTZweDtwYWRkaW5nLWxlZnQ6OHB4O3BhZGRpbmctcmlnaHQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDot'@; put 'OXB4O2xlZnQ6dW5zZXQ7Y29udGVudDoiIjtoZWlnaHQ6MTBweDt3aWR0aDo1cHg7YmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb24teDpyaWdodH1bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIHNwYW4uY29sSGVhZGVy'@; put 'LmNvbHVtblNvcnRpbmc6YmVmb3Jle3BhZGRpbmctcmlnaHQ6OHB4O3BhZGRpbmctbGVmdDowO2xlZnQ6LTlweDtyaWdodDp1bnNldDtiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6bGVmdH0uaGFuZHNvbnRhYmxlIHNwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmcuYXNjZW5kaW5nOmJlZm9yZXti'@; put 'YWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJRQUFBQW9DQU1BQUFESjd5cnBBQUFBS2xCTVZFVUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBS0U4NklBQUFBRFhS'@; put 'U1RsTUFCQkVtUkdwcmxKVzcyZTc3dFRrVEt3QUFBRk5KUkVGVWVBSHR6amtTZ0NBVUJOSFBnc295OTcrdWxHWFJxSkU1TCt4a3hvWXQyVWRzTGI1YnFGSU56K2FMdXVMbjVySXUyUmtPM2ZacFdFTmltTmdpdzZpQllSVFBNTEpqR0Z4UVoxaHh4Yi94QkkxcUM4azM5Q2RLQUFBQUFFbEZUa1N1'@; put 'UW1DQyl9LmhhbmRzb250YWJsZSBzcGFuLmNvbEhlYWRlci5jb2x1bW5Tb3J0aW5nLmRlc2NlbmRpbmc6YmVmb3Jle2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQlFBQUFBb0NBTUFBQURKN3lycEFBQUFLbEJNVkVV'@; put 'QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFLRTg2SUFBQUFEWFJTVGxNQUJCRW1SR3BybEpXNzJlNzd0VGtUS3dBQUFGSkpSRUZVZUFIdHpqa1NnQ0FRUk5GbVFZVVo3bjlkS1V2cnUwVG12UEFuM2JyMFFmZ2RaNXh4NngrclFuMjNHcVRZ'@; put 'bnExRkRjbnV6WklPMldtZWRWcUlSVnhnR0tFeWpOZ1lSaktHa1oxaEZJWjNJNzBMeU0wVnRVOEFBQUFBU1VWT1JLNUNZSUk9KX0uaHRHaG9zdFRhYmxlIC5odENvcmUgc3Bhbi5jb2xIZWFkZXIuY29sdW1uU29ydGluZzpub3QoLmluZGljYXRvckRpc2FibGVkKTpiZWZvcmV7Y29udGVudDoi'@; put 'KiI7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZy1yaWdodDoyMHB4fS5oYW5kc29udGFibGUuaHRHaG9zdFRhYmxlIHRhYmxlIHRoZWFkIHRoe2JvcmRlci1ib3R0b20td2lkdGg6MH0uaGFuZHNvbnRhYmxlLmh0R2hvc3RUYWJsZSB0YWJsZSB0Ym9keSB0'@; put 'ciB0aCwuaGFuZHNvbnRhYmxlLmh0R2hvc3RUYWJsZSB0YWJsZSB0Ym9keSB0ciB0ZHtib3JkZXItdG9wLXdpZHRoOjB9LmhhbmRzb250YWJsZSAuaHRDb21tZW50Q2VsbHtwb3NpdGlvbjpyZWxhdGl2ZX0uaGFuZHNvbnRhYmxlIC5odENvbW1lbnRDZWxsOmFmdGVye2NvbnRlbnQ6IiI7cG9z'@; put 'aXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDtsZWZ0OnVuc2V0O2JvcmRlci1sZWZ0OjZweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6bm9uZTtib3JkZXItdG9wOjZweCBzb2xpZCBibGFja31bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5odENvbW1lbnRDZWxsOmFmdGVye2xl'@; put 'ZnQ6MDtyaWdodDp1bnNldDtib3JkZXItcmlnaHQ6NnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0Om5vbmV9Lmh0Q29tbWVudHNDb250YWluZXIgLmh0Q29tbWVudHN7ZGlzcGxheTpub25lO3otaW5kZXg6MTA1OTtwb3NpdGlvbjphYnNvbHV0ZX0uaHRDb21tZW50c0NvbnRhaW5l'@; put 'ciAuaHRDb21tZW50VGV4dEFyZWF7Ym94LXNoYWRvdzojMDAwMDAwMWUgMCAxcHggM3B4LCMwMDAwMDAzZCAwIDFweCAycHg7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlcjpub25lO2JvcmRlci1sZWZ0OjNweCBzb2xpZCAjY2NjO2JvcmRlci1yaWdodDpub25lO2JhY2tncm91bmQtY29s'@; put 'b3I6I2ZmZjt3aWR0aDoyMTVweDtoZWlnaHQ6OTBweDtmb250LXNpemU6MTJweDtwYWRkaW5nOjVweDtvdXRsaW5lOjAhaW1wb3J0YW50Oy13ZWJraXQtYXBwZWFyYW5jZTpub25lfVtkaXI9cnRsXS5odENvbW1lbnRzQ29udGFpbmVyIC5odENvbW1lbnRUZXh0QXJlYXtib3JkZXItcmlnaHQ6'@; put 'M3B4IHNvbGlkICNjY2M7Ym9yZGVyLWxlZnQ6bm9uZX0uaHRDb21tZW50c0NvbnRhaW5lciAuaHRDb21tZW50VGV4dEFyZWE6Zm9jdXN7Ym94LXNoYWRvdzojMDAwMDAwMWUgMCAxcHggM3B4LCMwMDAwMDAzZCAwIDFweCAycHgsaW5zZXQgMCAwIDAgMXB4ICM1MjkyZjc7Ym9yZGVyLWxlZnQ6'@; put 'M3B4IHNvbGlkICM1MjkyZjc7Ym9yZGVyLXJpZ2h0Om5vbmV9W2Rpcj1ydGxdLmh0Q29tbWVudHNDb250YWluZXIgLmh0Q29tbWVudFRleHRBcmVhOmZvY3Vze2JvcmRlci1yaWdodDozcHggc29saWQgIzUyOTJmNztib3JkZXItbGVmdDpub25lfS8qIQogKiBIYW5kc29udGFibGUgQ29udGV4'@; put 'dE1lbnUKICovLmh0Q29udGV4dE1lbnU6bm90KC5odEdob3N0VGFibGUpe2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwNjB9Lmh0Q29udGV4dE1lbnUgLmh0X2Nsb25lX3RvcCwuaHRDb250ZXh0TWVudSAuaHRfY2xvbmVfYm90dG9tLC5odENvbnRleHRNZW51IC5o'@; put 'dF9jbG9uZV9pbmxpbmVfc3RhcnQsLmh0Q29udGV4dE1lbnUgLmh0X2Nsb25lX3RvcF9pbmxpbmVfc3RhcnRfY29ybmVyLC5odENvbnRleHRNZW51IC5odF9jbG9uZV9ib3R0b21faW5saW5lX3N0YXJ0X2Nvcm5lcntkaXNwbGF5Om5vbmV9Lmh0Q29udGV4dE1lbnUgLmh0X21hc3RlciB0YWJs'@; put 'ZS5odENvcmV7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci10b3Atd2lkdGg6MXB4O2JvcmRlci1ib3R0b20td2lkdGg6MnB4O2JvcmRlci1sZWZ0LXdpZHRoOjFweDtib3JkZXItcmlnaHQtd2lkdGg6MnB4fVtkaXI9cnRsXS5odENvbnRleHRNZW51IC5odF9t'@; put 'YXN0ZXIgdGFibGUuaHRDb3Jle2JvcmRlci1yaWdodC13aWR0aDoxcHg7Ym9yZGVyLWxlZnQtd2lkdGg6MnB4fS5odENvbnRleHRNZW51LmhhbmRzb250YWJsZTpmb2N1c3tvdXRsaW5lOm5vbmV9Lmh0Q29udGV4dE1lbnUgLnd0Qm9yZGVye3Zpc2liaWxpdHk6aGlkZGVufS5odENvbnRleHRN'@; put 'ZW51IHRhYmxlIHRib2R5IHRyIHRke2JhY2tncm91bmQ6I2ZmZjtib3JkZXItd2lkdGg6MDtwYWRkaW5nOjRweCA2cHggMDtjdXJzb3I6cG9pbnRlcjtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lmh0Q29udGV4dE1lbnUgdGFibGUg'@; put 'dGJvZHkgdHIgdGQ6Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcC13aWR0aDowO2JvcmRlci1ib3R0b20td2lkdGg6MDtib3JkZXItbGVmdC13aWR0aDowO2JvcmRlci1yaWdodC13aWR0aDowfVtkaXI9cnRsXS5odENvbnRleHRNZW51IHRhYmxlIHRib2R5IHRyIHRkOmZpcnN0LWNoaWxke2JvcmRl'@; put 'ci1yaWdodC13aWR0aDowO2JvcmRlci1sZWZ0LXdpZHRoOjB9Lmh0Q29udGV4dE1lbnUgdGFibGUgdGJvZHkgdHIgdGQuaHREaW1tZWR7Zm9udC1zdHlsZTpub3JtYWw7Y29sb3I6IzMyMzIzMn0uaHRDb250ZXh0TWVudSB0YWJsZSB0Ym9keSB0ciB0ZC5jdXJyZW50e2JhY2tncm91bmQ6I2Yz'@; put 'ZjNmM30uaHRDb250ZXh0TWVudSB0YWJsZSB0Ym9keSB0ciB0ZC5odFNlcGFyYXRvcntib3JkZXItdG9wOjFweCBzb2xpZCAjZTZlNmU2O2hlaWdodDowO3BhZGRpbmc6MDtjdXJzb3I6ZGVmYXVsdH0uaHRDb250ZXh0TWVudSB0YWJsZSB0Ym9keSB0ciB0ZC5odERpc2FibGVke2NvbG9yOiM5'@; put 'OTk7Y3Vyc29yOmRlZmF1bHR9Lmh0Q29udGV4dE1lbnUgdGFibGUgdGJvZHkgdHIgdGQuaHREaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6Izk5OTtjdXJzb3I6ZGVmYXVsdH0uaHRDb250ZXh0TWVudSB0YWJsZSB0Ym9keSB0ci5odEhpZGRlbntkaXNwbGF5Om5vbmV9Lmh0'@; put 'Q29udGV4dE1lbnUgdGFibGUgdGJvZHkgdHIgdGQgLmh0SXRlbVdyYXBwZXJ7bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6NnB4fVtkaXI9cnRsXS5odENvbnRleHRNZW51IHRhYmxlIHRib2R5IHRyIHRkIC5odEl0ZW1XcmFwcGVye21hcmdpbi1yaWdodDoxMHB4O21hcmdpbi1sZWZ0'@; put 'OjZweH0uaHRDb250ZXh0TWVudSB0YWJsZSB0Ym9keSB0ciB0ZCBkaXYgc3Bhbi5zZWxlY3RlZHttYXJnaW4tdG9wOi0ycHg7cG9zaXRpb246YWJzb2x1dGU7bGVmdDo0cHg7cmlnaHQ6MH1bZGlyPXJ0bF0uaHRDb250ZXh0TWVudSB0YWJsZSB0Ym9keSB0ciB0ZCBkaXYgc3Bhbi5zZWxlY3Rl'@; put 'ZHtyaWdodDo0cHg7bGVmdDowfS5odENvbnRleHRNZW51IC5odF9tYXN0ZXIgLnd0SG9sZGVye292ZXJmbG93OmhpZGRlbn10ZXh0YXJlYS5IYW5kc29udGFibGVDb3B5UGFzdGV7cG9zaXRpb246Zml4ZWQhaW1wb3J0YW50O3RvcDowIWltcG9ydGFudDtyaWdodDoxMDAlIWltcG9ydGFudDtv'@; put 'dmVyZmxvdzpoaWRkZW47b3BhY2l0eTowO291dGxpbmU6MCBub25lIWltcG9ydGFudH0vKiEKICogSGFuZHNvbnRhYmxlIERyb3Bkb3duTWVudQogKi8uaGFuZHNvbnRhYmxlIC5jaGFuZ2VUeXBle2JhY2tncm91bmQ6I2VlZTtib3JkZXItcmFkaXVzOjJweDtib3JkZXI6MXB4IHNvbGlkICNi'@; put 'YmI7Y29sb3I6I2JiYjtmb250LXNpemU6OXB4O2xpbmUtaGVpZ2h0OjlweDtwYWRkaW5nOjJweDttYXJnaW46M3B4IDFweCAwIDVweDtmbG9hdDpyaWdodH1bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5jaGFuZ2VUeXBle2Zsb2F0OmxlZnR9LmhhbmRzb250YWJsZVtkaXI9cnRsXSAuY2hhbmdl'@; put 'VHlwZXttYXJnaW46M3B4IDVweCAwIDFweH0uaGFuZHNvbnRhYmxlIC5jaGFuZ2VUeXBlOmJlZm9yZXtjb250ZW50OiJcMjViYyAgIn0uaGFuZHNvbnRhYmxlIC5jaGFuZ2VUeXBlOmhvdmVye2JvcmRlcjoxcHggc29saWQgIzc3Nztjb2xvcjojNzc3O2N1cnNvcjpwb2ludGVyfS5odERyb3Bk'@; put 'b3duTWVudTpub3QoLmh0R2hvc3RUYWJsZSl7ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTA2MH0uaHREcm9wZG93bk1lbnUgLmh0X2Nsb25lX3RvcCwuaHREcm9wZG93bk1lbnUgLmh0X2Nsb25lX2JvdHRvbSwuaHREcm9wZG93bk1lbnUgLmh0X2Nsb25lX2lubGlu'@; put 'ZV9zdGFydCwuaHREcm9wZG93bk1lbnUgLmh0X2Nsb25lX3RvcF9pbmxpbmVfc3RhcnRfY29ybmVyLC5odERyb3Bkb3duTWVudSAuaHRfY2xvbmVfYm90dG9tX2lubGluZV9zdGFydF9jb3JuZXJ7ZGlzcGxheTpub25lfS5odERyb3Bkb3duTWVudSB0YWJsZS5odENvcmV7Ym9yZGVyLWNvbG9y'@; put 'OiNjY2M7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci10b3Atd2lkdGg6MXB4O2JvcmRlci1ib3R0b20td2lkdGg6MnB4O2JvcmRlci1sZWZ0LXdpZHRoOjFweDtib3JkZXItcmlnaHQtd2lkdGg6MnB4fVtkaXI9cnRsXS5odERyb3Bkb3duTWVudSB0YWJsZS5odENvcmV7Ym9yZGVyLXJpZ2h0'@; put 'LXdpZHRoOjFweDtib3JkZXItbGVmdC13aWR0aDoycHh9Lmh0RHJvcGRvd25NZW51LmhhbmRzb250YWJsZTpmb2N1c3tvdXRsaW5lOm5vbmV9Lmh0RHJvcGRvd25NZW51IC53dEJvcmRlcnt2aXNpYmlsaXR5OmhpZGRlbn0uaHREcm9wZG93bk1lbnUgdGFibGUgdGJvZHkgdHIgdGR7YmFja2dy'@; put 'b3VuZDojZmZmO2JvcmRlci13aWR0aDowO3BhZGRpbmc6NHB4IDZweCAwO2N1cnNvcjpwb2ludGVyO292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1vdmVyZmxvdzplbGxpcHNpc30uaHREcm9wZG93bk1lbnUgdGFibGUgdGJvZHkgdHIgdGQ6Zmlyc3QtY2hpbGR7Ym9y'@; put 'ZGVyLXRvcC13aWR0aDowO2JvcmRlci1yaWdodC13aWR0aDowO2JvcmRlci1ib3R0b20td2lkdGg6MDtib3JkZXItbGVmdC13aWR0aDowfVtkaXI9cnRsXS5odERyb3Bkb3duTWVudSB0YWJsZSB0Ym9keSB0ciB0ZDpmaXJzdC1jaGlsZHtib3JkZXItbGVmdC13aWR0aDowO2JvcmRlci1yaWdo'@; put 'dC13aWR0aDowfS5odERyb3Bkb3duTWVudSB0YWJsZSB0Ym9keSB0ciB0ZC5odERpbW1lZHtmb250LXN0eWxlOm5vcm1hbDtjb2xvcjojMzIzMjMyfS5odERyb3Bkb3duTWVudSB0YWJsZSB0Ym9keSB0ciB0ZC5jdXJyZW50e2JhY2tncm91bmQ6I2U5ZTllOX0uaHREcm9wZG93bk1lbnUgdGFi'@; put 'bGUgdGJvZHkgdHIgdGQuaHRTZXBhcmF0b3J7Ym9yZGVyLXRvcDoxcHggc29saWQgI2U2ZTZlNjtoZWlnaHQ6MDtwYWRkaW5nOjA7Y3Vyc29yOmRlZmF1bHR9Lmh0RHJvcGRvd25NZW51IHRhYmxlIHRib2R5IHRyIHRkLmh0RGlzYWJsZWR7Y29sb3I6Izk5OX0uaHREcm9wZG93bk1lbnUgdGFi'@; put 'bGUgdGJvZHkgdHIgdGQuaHREaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6Izk5OTtjdXJzb3I6ZGVmYXVsdH0uaHREcm9wZG93bk1lbnU6bm90KC5odEdob3N0VGFibGUpIHRhYmxlIHRib2R5IHRyLmh0SGlkZGVue2Rpc3BsYXk6bm9uZX0uaHREcm9wZG93bk1lbnUgdGFi'@; put 'bGUgdGJvZHkgdHIgdGQgLmh0SXRlbVdyYXBwZXJ7bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6MTBweH1bZGlyPXJ0bF0uaHREcm9wZG93bk1lbnUgdGFibGUgdGJvZHkgdHIgdGQgLmh0SXRlbVdyYXBwZXJ7bWFyZ2luLXJpZ2h0OjEwcHg7bWFyZ2luLWxlZnQ6MTBweH0uaHREcm9w'@; put 'ZG93bk1lbnUgdGFibGUgdGJvZHkgdHIgdGQgZGl2IHNwYW4uc2VsZWN0ZWR7bWFyZ2luLXRvcDotMnB4O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6NHB4O3JpZ2h0OjB9W2Rpcj1ydGxdLmh0RHJvcGRvd25NZW51IHRhYmxlIHRib2R5IHRyIHRkIGRpdiBzcGFuLnNlbGVjdGVke3JpZ2h0OjRw'@; put 'eDtsZWZ0OjB9Lmh0RHJvcGRvd25NZW51IC5odF9tYXN0ZXIgLnd0SG9sZGVye292ZXJmbG93OmhpZGRlbn0vKiEKICogSGFuZHNvbnRhYmxlIEZpbHRlcnMKICovLmh0RmlsdGVyc0NvbmRpdGlvbnNNZW51Om5vdCguaHRHaG9zdFRhYmxlKXtkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1'@; put 'dGU7ei1pbmRleDoxMDcwfS5odEZpbHRlcnNDb25kaXRpb25zTWVudSAuaHRfY2xvbmVfdG9wLC5odEZpbHRlcnNDb25kaXRpb25zTWVudSAuaHRfY2xvbmVfYm90dG9tLC5odEZpbHRlcnNDb25kaXRpb25zTWVudSAuaHRfY2xvbmVfaW5saW5lX3N0YXJ0LC5odEZpbHRlcnNDb25kaXRpb25z'@; put 'TWVudSAuaHRfY2xvbmVfdG9wX2lubGluZV9zdGFydF9jb3JuZXIsLmh0RmlsdGVyc0NvbmRpdGlvbnNNZW51IC5odF9jbG9uZV9ib3R0b21faW5saW5lX3N0YXJ0X2Nvcm5lcntkaXNwbGF5Om5vbmV9Lmh0RmlsdGVyc0NvbmRpdGlvbnNNZW51IHRhYmxlLmh0Q29yZXtib3JkZXI6MXB4IHNv'@; put 'bGlkICNiYmI7Ym9yZGVyLWJvdHRvbS13aWR0aDoycHg7Ym9yZGVyLXJpZ2h0LXdpZHRoOjJweH0uaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgLnd0Qm9yZGVye3Zpc2liaWxpdHk6aGlkZGVufS5odEZpbHRlcnNDb25kaXRpb25zTWVudSB0YWJsZSB0Ym9keSB0ciB0ZHtiYWNrZ3JvdW5kOiNm'@; put 'ZmY7Ym9yZGVyLXdpZHRoOjA7cGFkZGluZzo0cHggNnB4IDA7Y3Vyc29yOnBvaW50ZXI7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS5odEZpbHRlcnNDb25kaXRpb25zTWVudSB0YWJsZSB0Ym9keSB0ciB0ZDpmaXJzdC1jaGlsZHti'@; put 'b3JkZXItdG9wLXdpZHRoOjA7Ym9yZGVyLXJpZ2h0LXdpZHRoOjA7Ym9yZGVyLWJvdHRvbS13aWR0aDowO2JvcmRlci1sZWZ0LXdpZHRoOjB9W2Rpcj1ydGxdLmh0RmlsdGVyc0NvbmRpdGlvbnNNZW51IHRhYmxlIHRib2R5IHRyIHRkOmZpcnN0LWNoaWxke2JvcmRlci1sZWZ0LXdpZHRoOjA7'@; put 'Ym9yZGVyLXJpZ2h0LXdpZHRoOjB9Lmh0RmlsdGVyc0NvbmRpdGlvbnNNZW51IHRhYmxlIHRib2R5IHRyIHRkLmh0RGltbWVke2ZvbnQtc3R5bGU6bm9ybWFsO2NvbG9yOiMzMjMyMzJ9Lmh0RmlsdGVyc0NvbmRpdGlvbnNNZW51IHRhYmxlIHRib2R5IHRyIHRkLmN1cnJlbnR7YmFja2dyb3Vu'@; put 'ZDojZTllOWU5fS5odEZpbHRlcnNDb25kaXRpb25zTWVudSB0YWJsZSB0Ym9keSB0ciB0ZC5odFNlcGFyYXRvcntib3JkZXItdG9wOjFweCBzb2xpZCAjZTZlNmU2O2hlaWdodDowO3BhZGRpbmc6MH0uaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgdGFibGUgdGJvZHkgdHIgdGQuaHREaXNhYmxl'@; put 'ZHtjb2xvcjojOTk5fS5odEZpbHRlcnNDb25kaXRpb25zTWVudSB0YWJsZSB0Ym9keSB0ciB0ZC5odERpc2FibGVkOmhvdmVye2JhY2tncm91bmQ6I2ZmZjtjb2xvcjojOTk5O2N1cnNvcjpkZWZhdWx0fS5odEZpbHRlcnNDb25kaXRpb25zTWVudSB0YWJsZSB0Ym9keSB0ciB0ZCAuaHRJdGVt'@; put 'V3JhcHBlcnttYXJnaW4tbGVmdDoxMHB4O21hcmdpbi1yaWdodDoxMHB4fS5odEZpbHRlcnNDb25kaXRpb25zTWVudSB0YWJsZSB0Ym9keSB0ciB0ZCBkaXYgc3Bhbi5zZWxlY3RlZHttYXJnaW4tdG9wOi0ycHg7cG9zaXRpb246YWJzb2x1dGU7bGVmdDo0cHh9Lmh0RmlsdGVyc0NvbmRpdGlv'@; put 'bnNNZW51IC5odF9tYXN0ZXIgLnd0SG9sZGVye292ZXJmbG93OmhpZGRlbn0uaGFuZHNvbnRhYmxlIC5odE1lbnVGaWx0ZXJpbmd7Ym9yZGVyLWJvdHRvbToxcHggZG90dGVkICNjY2M7aGVpZ2h0OjEzNXB4O292ZXJmbG93OmhpZGRlbn0uaGFuZHNvbnRhYmxlIC5odF9tYXN0ZXIgdGFibGUg'@; put 'dGQuaHRDdXN0b21NZW51UmVuZGVyZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2N1cnNvcjphdXRvfS5oYW5kc29udGFibGUgLmh0RmlsdGVyc01lbnVMYWJlbHtmb250LXNpemU6Ljc1ZW19LmhhbmRzb250YWJsZSAuaHRGaWx0ZXJzTWVudUFjdGlvbkJhcnt0ZXh0LWFsaWduOmNlbnRlcjtw'@; put 'YWRkaW5nLXRvcDoxMHB4O3BhZGRpbmctYm90dG9tOjNweH0uaGFuZHNvbnRhYmxlIC5odEZpbHRlcnNNZW51Q29uZGl0aW9uLmJvcmRlcntib3JkZXItYm90dG9tOjFweCBkb3R0ZWQgI2NjYyFpbXBvcnRhbnR9LmhhbmRzb250YWJsZSAuaHRGaWx0ZXJzTWVudUNvbmRpdGlvbiAuaHRVSUlu'@; put 'cHV0e3BhZGRpbmc6MCAwIDVweH0uaGFuZHNvbnRhYmxlIC5odEZpbHRlcnNNZW51VmFsdWV7Ym9yZGVyLWJvdHRvbToxcHggZG90dGVkICNjY2MhaW1wb3J0YW50fS5oYW5kc29udGFibGUgLmh0RmlsdGVyc01lbnVWYWx1ZSAuaHRVSU11bHRpcGxlU2VsZWN0U2VhcmNoe3BhZGRpbmc6MH0u'@; put 'aGFuZHNvbnRhYmxlIC5odEZpbHRlcnNNZW51Q29uZGl0aW9uIC5odFVJSW5wdXQgaW5wdXQsLmhhbmRzb250YWJsZSAuaHRGaWx0ZXJzTWVudVZhbHVlIC5odFVJTXVsdGlwbGVTZWxlY3RTZWFyY2ggaW5wdXR7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6Ljc1ZW07cGFkZGluZzo0'@; put 'cHg7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCV9Lmh0VUlNdWx0aXBsZVNlbGVjdCAuaHRfbWFzdGVyIC53dEhvbGRlcntvdmVyZmxvdzphdXRvfS5oYW5kc29udGFibGUgLmh0RmlsdGVyc0FjdGl2ZSAuY2hhbmdlVHlwZXtib3JkZXI6MXB4IHNvbGlkICM1MDkyNzI7Y29sb3I6'@; put 'IzE4ODA0ZTtiYWNrZ3JvdW5kLWNvbG9yOiNkMmUwZDl9LmhhbmRzb250YWJsZSAuaHRVSVNlbGVjdEFsbHttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDoxMHB4fVtkaXI9cnRsXS5oYW5kc29udGFibGUgLmh0VUlTZWxlY3RBbGx7bWFyZ2luLXJpZ2h0OjA7bWFyZ2luLWxlZnQ6MTBweH0u'@; put 'aGFuZHNvbnRhYmxlIC5odFVJQ2xlYXJBbGwsLmhhbmRzb250YWJsZSAuaHRVSVNlbGVjdEFsbHtkaXNwbGF5OmlubGluZS1ibG9ja30uaGFuZHNvbnRhYmxlIC5odFVJQ2xlYXJBbGwgYSwuaGFuZHNvbnRhYmxlIC5odFVJU2VsZWN0QWxsIGF7Zm9udC1zaXplOi43NWVtfS5oYW5kc29udGFi'@; put 'bGUgLmh0VUlTZWxlY3Rpb25Db250cm9sc3t0ZXh0LWFsaWduOnJpZ2h0fVtkaXI9cnRsXS5oYW5kc29udGFibGUgLmh0VUlTZWxlY3Rpb25Db250cm9sc3t0ZXh0LWFsaWduOmxlZnR9LmhhbmRzb250YWJsZSAuaHRDaGVja2JveFJlbmRlcmVySW5wdXR7ZGlzcGxheTppbmxpbmUtYmxvY2s7'@; put 'bWFyZ2luOjAgNXB4IDAgMDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7aGVpZ2h0OjFlbX1bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5odENoZWNrYm94UmVuZGVyZXJJbnB1dHttYXJnaW4tbGVmdDo1cHg7bWFyZ2luLXJpZ2h0OjB9LmhhbmRzb250YWJsZSAuaHRVSUlucHV0e3BhZGRpbmc6M3B4'@; put 'IDAgN3B4O3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246Y2VudGVyfS5oYW5kc29udGFibGUgLmh0VUlJbnB1dCBpbnB1dHtib3JkZXItcmFkaXVzOjJweDtib3JkZXI6MXB4IHNvbGlkICNkMmQxZDF9LmhhbmRzb250YWJsZSAuaHRVSUlucHV0SWNvbntwb3NpdGlvbjphYnNvbHV0ZX0u'@; put 'aGFuZHNvbnRhYmxlIC5odFVJSW5wdXQuaHRVSUJ1dHRvbntjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9ja30uaGFuZHNvbnRhYmxlIC5odFVJSW5wdXQuaHRVSUJ1dHRvbiBpbnB1dHtiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7Y29sb3I6IzAwMDtjdXJzb3I6cG9pbnRlcjtmb250'@; put 'LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTouNzVlbTtmb250LXdlaWdodDo3MDA7aGVpZ2h0OjE5cHg7bWluLXdpZHRoOjY0cHh9LmhhbmRzb250YWJsZSAuaHRVSUlucHV0Lmh0VUlCdXR0b24gaW5wdXQ6aG92ZXJ7Ym9yZGVyLWNvbG9yOiNiOWI5Yjl9LmhhbmRzb250YWJsZSAuaHRVSUlu'@; put 'cHV0Lmh0VUlCdXR0b25PS3ttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDoxMHB4fVtkaXI9cnRsXS5oYW5kc29udGFibGUgLmh0VUlJbnB1dC5odFVJQnV0dG9uT0t7bWFyZ2luLXJpZ2h0OjA7bWFyZ2luLWxlZnQ6MTBweH0uaGFuZHNvbnRhYmxlIC5odFVJSW5wdXQuaHRVSUJ1dHRvbk9L'@; put 'IGlucHV0e2JhY2tncm91bmQtY29sb3I6IzBmOWQ1ODtib3JkZXItY29sb3I6IzE4ODA0ZTtjb2xvcjojZmZmfS5oYW5kc29udGFibGUgLmh0VUlJbnB1dC5odFVJQnV0dG9uT0sgaW5wdXQ6Zm9jdXMtdmlzaWJsZXtiYWNrZ3JvdW5kLWNvbG9yOiM5MmRkOGQ7Ym9yZGVyLWNvbG9yOiM3Y2I4'@; put 'Nzg7Y29sb3I6IzAwMH0uaGFuZHNvbnRhYmxlIC5odFVJSW5wdXQuaHRVSUJ1dHRvbk9LIGlucHV0OmhvdmVye2JvcmRlci1jb2xvcjojMWE2ZjQ2fS5oYW5kc29udGFibGUgLmh0VUlTZWxlY3R7Y3Vyc29yOnBvaW50ZXI7bWFyZ2luLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmV9Lmhh'@; put 'bmRzb250YWJsZSAuaHRVSVNlbGVjdENhcHRpb257YmFja2dyb3VuZC1jb2xvcjojZThlOGU4O2JvcmRlci1yYWRpdXM6MnB4O2JvcmRlcjoxcHggc29saWQgI2QyZDFkMTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTouNzVlbTtmb250LXdlaWdodDo3MDA7cGFkZGluZzozcHggMjBw'@; put 'eCAzcHggMTBweDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW59LmhhbmRzb250YWJsZSAuaHRVSVNlbGVjdENhcHRpb246aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZThlOGU4O2JvcmRlcjoxcHggc29saWQgI2I5YjliOX0uaGFuZHNv'@; put 'bnRhYmxlIC5odFVJU2VsZWN0RHJvcGRvd246YWZ0ZXJ7Y29udGVudDoiXDI1YjIiO2ZvbnQtc2l6ZTo3cHg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTBweDt0b3A6MH0uaGFuZHNvbnRhYmxlIC5odFVJU2VsZWN0RHJvcGRvd246YmVmb3Jle2NvbnRlbnQ6IlwyNWJjIjtmb250LXNpemU6'@; put 'N3B4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjEwcHg7dG9wOjhweH0uaGFuZHNvbnRhYmxlIC5odFVJTXVsdGlwbGVTZWxlY3QgLmhhbmRzb250YWJsZSAuaHRDb3Jle2JvcmRlcjpub25lfS5oYW5kc29udGFibGUgLmh0VUlNdWx0aXBsZVNlbGVjdCAuaGFuZHNvbnRhYmxlIC5odENvcmUg'@; put 'dGQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1fS5oYW5kc29udGFibGUgLmh0VUlNdWx0aXBsZVNlbGVjdFNlYXJjaCBpbnB1dHtib3JkZXItcmFkaXVzOjJweDtib3JkZXI6MXB4IHNvbGlkICNkMmQxZDE7cGFkZGluZzozcHh9LmhhbmRzb250YWJsZSAuaHRVSVJhZGlve2Rpc3Bs'@; put 'YXk6aW5saW5lLWJsb2NrO21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjVweDtoZWlnaHQ6MTAwJX1bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5odFVJUmFkaW97bWFyZ2luLXJpZ2h0OjA7bWFyZ2luLWxlZnQ6NXB4fS5oYW5kc29udGFibGUgLmh0VUlSYWRpbzpsYXN0LWNoaWxke21hcmdp'@; put 'bi1yaWdodDowfS5oYW5kc29udGFibGUgLmh0VUlSYWRpbz5pbnB1dFt0eXBlPXJhZGlvXXttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDouNWV4fVtkaXI9cnRsXS5oYW5kc29udGFibGUgLmh0VUlSYWRpbz5pbnB1dFt0eXBlPXJhZGlvXXttYXJnaW4tcmlnaHQ6MDttYXJnaW4tbGVmdDou'@; put 'NWV4fS5oYW5kc29udGFibGUgLmh0VUlSYWRpbyBsYWJlbHt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmhhbmRzb250YWJsZSAuaHRGaWx0ZXJzTWVudU9wZXJhdG9yc3twYWRkaW5nLWJvdHRvbTo1cHh9LmhhbmRzb250YWJsZSB0aC5iZWZvcmVIaWRkZW5Db2x1bW57cG9zaXRpb246cmVsYXRp'@; put 'dmV9LmhhbmRzb250YWJsZSB0aC5iZWZvcmVIaWRkZW5Db2x1bW46YWZ0ZXIsLmhhbmRzb250YWJsZSB0aC5hZnRlckhpZGRlbkNvbHVtbjpiZWZvcmV7Y29sb3I6I2JiYjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2ZvbnQtc2l6ZTo1cHQ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9'@; put 'LmhhbmRzb250YWJsZSB0aC5hZnRlckhpZGRlbkNvbHVtbntwb3NpdGlvbjpyZWxhdGl2ZX0uaGFuZHNvbnRhYmxlW2Rpcj1sdHJdIHRoLmFmdGVySGlkZGVuQ29sdW1uIGRpdi5odExlZnR7bWFyZ2luLWxlZnQ6MTBweH0uaGFuZHNvbnRhYmxlW2Rpcj1sdHJdIHRoLmJlZm9yZUhpZGRlbkNv'@; put 'bHVtbiBkaXYuaHRSaWdodCwuaGFuZHNvbnRhYmxlW2Rpcj1ydGxdIHRoLmFmdGVySGlkZGVuQ29sdW1uIGRpdi5odFJpZ2h0e21hcmdpbi1yaWdodDoxMHB4fS5oYW5kc29udGFibGVbZGlyPXJ0bF0gdGguYmVmb3JlSGlkZGVuQ29sdW1uIGRpdi5odExlZnR7bWFyZ2luLWxlZnQ6MTBweH0u'@; put 'aGFuZHNvbnRhYmxlIHRoLmJlZm9yZUhpZGRlbkNvbHVtbjphZnRlcntyaWdodDoxcHg7Y29udGVudDoiXDI1YzAifVtkaXI9cnRsXS5oYW5kc29udGFibGUgdGguYmVmb3JlSGlkZGVuQ29sdW1uOmFmdGVye3JpZ2h0OmluaXRpYWw7bGVmdDoxcHg7Y29udGVudDoiXDI1YjYifS5oYW5kc29u'@; put 'dGFibGUgdGguYWZ0ZXJIaWRkZW5Db2x1bW46YmVmb3Jle2xlZnQ6MXB4O2NvbnRlbnQ6IlwyNWI2In1bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIHRoLmFmdGVySGlkZGVuQ29sdW1uOmJlZm9yZXtyaWdodDoxcHg7bGVmdDppbml0aWFsO2NvbnRlbnQ6IlwyNWMwIn0vKiEKICogSGFuZHNvbnRh'@; put 'YmxlIEhpZGRlblJvd3MKICovLmhhbmRzb250YWJsZSB0aC5iZWZvcmVIaWRkZW5Sb3c6YmVmb3JlLC5oYW5kc29udGFibGUgdGguYWZ0ZXJIaWRkZW5Sb3c6YWZ0ZXJ7Y29sb3I6I2JiYjtmb250LXNpemU6NnB0O2xpbmUtaGVpZ2h0OjZwdDtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjJweH0u'@; put 'aGFuZHNvbnRhYmxlIHRoLmJlZm9yZUhpZGRlblJvdywuaGFuZHNvbnRhYmxlIHRoLmFmdGVySGlkZGVuUm93e3Bvc2l0aW9uOnJlbGF0aXZlfS5oYW5kc29udGFibGUgdGguYmVmb3JlSGlkZGVuUm93OmJlZm9yZXtjb250ZW50OiJcMjViMiI7Ym90dG9tOjJweH0uaGFuZHNvbnRhYmxlIHRo'@; put 'LmFmdGVySGlkZGVuUm93OmFmdGVye2NvbnRlbnQ6IlwyNWJjIjt0b3A6MnB4fS5oYW5kc29udGFibGUuaHRfX3NlbGVjdGlvbi0tcm93cyB0Ym9keSB0aC5iZWZvcmVIaWRkZW5Sb3cuaHRfX2hpZ2hsaWdodDpiZWZvcmUsLmhhbmRzb250YWJsZS5odF9fc2VsZWN0aW9uLS1yb3dzIHRib2R5'@; put 'IHRoLmFmdGVySGlkZGVuUm93Lmh0X19oaWdobGlnaHQ6YWZ0ZXJ7Y29sb3I6I2VlZX0uaGFuZHNvbnRhYmxlIHRkLmFmdGVySGlkZGVuUm93LmZpcnN0VmlzaWJsZVJvdywuaGFuZHNvbnRhYmxlIHRoLmFmdGVySGlkZGVuUm93LmZpcnN0VmlzaWJsZVJvd3tib3JkZXItdG9wOjFweCBzb2xp'@; put 'ZCAjQ0NDfS5odFJvd0hlYWRlcnMgLmh0X21hc3Rlci5pbm5lckJvcmRlcklubGluZVN0YXJ0fi5odF9jbG9uZV90b3BfaW5saW5lX3N0YXJ0X2Nvcm5lciB0aDpudGgtY2hpbGQoMiksLmh0Um93SGVhZGVycyAuaHRfbWFzdGVyLmlubmVyQm9yZGVySW5saW5lU3RhcnR+Lmh0X2Nsb25lX2lu'@; put 'bGluZV9zdGFydCB0ZDpmaXJzdC1vZi10eXBle2JvcmRlci1sZWZ0OjAgbm9uZX0uaGFuZHNvbnRhYmxlLmh0X19tYW51YWxDb2x1bW5Nb3ZlLmFmdGVyLXNlbGVjdGlvbi0tY29sdW1ucyB0aGVhZCB0aC5odF9faGlnaGxpZ2h0e2N1cnNvcjptb3ZlO2N1cnNvcjpncmFifS5oYW5kc29udGFi'@; put 'bGUuaHRfX21hbnVhbENvbHVtbk1vdmUub24tbW92aW5nLS1jb2x1bW5zICosLmhhbmRzb250YWJsZS5odF9fbWFudWFsQ29sdW1uTW92ZS5vbi1tb3ZpbmctLWNvbHVtbnMgdGhlYWQgdGguaHRfX2hpZ2hsaWdodHtjdXJzb3I6bW92ZTtjdXJzb3I6Z3JhYmJpbmd9LmhhbmRzb250YWJsZS5o'@; put 'dF9fbWFudWFsQ29sdW1uTW92ZS5vbi1tb3ZpbmctLWNvbHVtbnMgLm1hbnVhbENvbHVtblJlc2l6ZXJ7ZGlzcGxheTpub25lfS5oYW5kc29udGFibGUgLmh0X19tYW51YWxDb2x1bW5Nb3ZlLS1ndWlkZWxpbmUsLmhhbmRzb250YWJsZSAuaHRfX21hbnVhbENvbHVtbk1vdmUtLWJhY2tsaWdo'@; put 'dHtwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6MTAwJTtkaXNwbGF5Om5vbmV9LmhhbmRzb250YWJsZSAuaHRfX21hbnVhbENvbHVtbk1vdmUtLWd1aWRlbGluZXtiYWNrZ3JvdW5kOiM3NTc1NzU7d2lkdGg6MnB4O3RvcDowO21hcmdpbi1pbmxpbmUtc3RhcnQ6LTFweDttYXJnaW4taW5saW5l'@; put 'LWVuZDowO3otaW5kZXg6MjA1fS5oYW5kc29udGFibGUgLmh0X19tYW51YWxDb2x1bW5Nb3ZlLS1iYWNrbGlnaHR7YmFja2dyb3VuZDojMzQzNDM0O2JhY2tncm91bmQ6IzM0MzQzNDQwO2Rpc3BsYXk6bm9uZTt6LWluZGV4OjIwNTtwb2ludGVyLWV2ZW50czpub25lfS5oYW5kc29udGFibGUu'@; put 'b24tbW92aW5nLS1jb2x1bW5zLnNob3ctdWkgLmh0X19tYW51YWxDb2x1bW5Nb3ZlLS1ndWlkZWxpbmUsLmhhbmRzb250YWJsZS5vbi1tb3ZpbmctLWNvbHVtbnMgLmh0X19tYW51YWxDb2x1bW5Nb3ZlLS1iYWNrbGlnaHR7ZGlzcGxheTpibG9ja30uaGFuZHNvbnRhYmxlLmh0X19tYW51YWxS'@; put 'b3dNb3ZlLmFmdGVyLXNlbGVjdGlvbi0tcm93cyB0Ym9keSB0aC5odF9faGlnaGxpZ2h0e2N1cnNvcjptb3ZlO2N1cnNvcjpncmFifS5oYW5kc29udGFibGUuaHRfX21hbnVhbFJvd01vdmUub24tbW92aW5nLS1yb3dzICosLmhhbmRzb250YWJsZS5odF9fbWFudWFsUm93TW92ZS5vbi1tb3Zp'@; put 'bmctLXJvd3MgdGJvZHkgdGguaHRfX2hpZ2hsaWdodHtjdXJzb3I6bW92ZTtjdXJzb3I6Z3JhYmJpbmd9LmhhbmRzb250YWJsZS5odF9fbWFudWFsUm93TW92ZS5vbi1tb3ZpbmctLXJvd3MgLm1hbnVhbFJvd1Jlc2l6ZXJ7ZGlzcGxheTpub25lfS5oYW5kc29udGFibGUgLmh0X19tYW51YWxS'@; put 'b3dNb3ZlLS1ndWlkZWxpbmUsLmhhbmRzb250YWJsZSAuaHRfX21hbnVhbFJvd01vdmUtLWJhY2tsaWdodHtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO2Rpc3BsYXk6bm9uZX0uaGFuZHNvbnRhYmxlIC5odF9fbWFudWFsUm93TW92ZS0tZ3VpZGVsaW5le2JhY2tncm91bmQ6Izc1NzU3'@; put 'NTtoZWlnaHQ6MnB4O2xlZnQ6MDttYXJnaW4tdG9wOi0xcHg7ei1pbmRleDoyMDV9LmhhbmRzb250YWJsZSAuaHRfX21hbnVhbFJvd01vdmUtLWJhY2tsaWdodHtiYWNrZ3JvdW5kOiMzNDM0MzQ7YmFja2dyb3VuZDojMzQzNDM0NDA7ZGlzcGxheTpub25lO3otaW5kZXg6MjA1O3BvaW50ZXIt'@; put 'ZXZlbnRzOm5vbmV9LmhhbmRzb250YWJsZS5vbi1tb3ZpbmctLXJvd3Muc2hvdy11aSAuaHRfX21hbnVhbFJvd01vdmUtLWd1aWRlbGluZSwuaGFuZHNvbnRhYmxlLm9uLW1vdmluZy0tcm93cyAuaHRfX21hbnVhbFJvd01vdmUtLWJhY2tsaWdodHtkaXNwbGF5OmJsb2NrfS5oYW5kc29udGFi'@; put 'bGUgdGJvZHkgdGRbcm93c3Bhbl1bY2xhc3MqPWFyZWFdW2NsYXNzKj1oaWdobGlnaHRdOm5vdChbY2xhc3MqPWZ1bGx5U2VsZWN0ZWRNZXJnZWRDZWxsXSk6YmVmb3Jle29wYWNpdHk6MH0uaGFuZHNvbnRhYmxlIHRib2R5IHRkW3Jvd3NwYW5dW2NsYXNzKj1hcmVhXVtjbGFzcyo9aGlnaGxp'@; put 'Z2h0XVtjbGFzcyo9ZnVsbHlTZWxlY3RlZE1lcmdlZENlbGwtbXVsdGlwbGVdOmJlZm9yZXtvcGFjaXR5Oi4xfS5oYW5kc29udGFibGUgdGJvZHkgdGRbcm93c3Bhbl1bY2xhc3MqPWFyZWFdW2NsYXNzKj1oaWdobGlnaHRdW2NsYXNzKj1mdWxseVNlbGVjdGVkTWVyZ2VkQ2VsbC0wXTpiZWZv'@; put 'cmV7b3BhY2l0eTouMX0uaGFuZHNvbnRhYmxlIHRib2R5IHRkW3Jvd3NwYW5dW2NsYXNzKj1hcmVhXVtjbGFzcyo9aGlnaGxpZ2h0XVtjbGFzcyo9ZnVsbHlTZWxlY3RlZE1lcmdlZENlbGwtMV06YmVmb3Jle29wYWNpdHk6LjJ9LmhhbmRzb250YWJsZSB0Ym9keSB0ZFtyb3dzcGFuXVtjbGFz'@; put 'cyo9YXJlYV1bY2xhc3MqPWhpZ2hsaWdodF1bY2xhc3MqPWZ1bGx5U2VsZWN0ZWRNZXJnZWRDZWxsLTJdOmJlZm9yZXtvcGFjaXR5Oi4yN30uaGFuZHNvbnRhYmxlIHRib2R5IHRkW3Jvd3NwYW5dW2NsYXNzKj1hcmVhXVtjbGFzcyo9aGlnaGxpZ2h0XVtjbGFzcyo9ZnVsbHlTZWxlY3RlZE1l'@; put 'cmdlZENlbGwtM106YmVmb3Jle29wYWNpdHk6LjM1fS5oYW5kc29udGFibGUgdGJvZHkgdGRbcm93c3Bhbl1bY2xhc3MqPWFyZWFdW2NsYXNzKj1oaWdobGlnaHRdW2NsYXNzKj1mdWxseVNlbGVjdGVkTWVyZ2VkQ2VsbC00XTpiZWZvcmV7b3BhY2l0eTouNDF9LmhhbmRzb250YWJsZSB0Ym9k'@; put 'eSB0ZFtyb3dzcGFuXVtjbGFzcyo9YXJlYV1bY2xhc3MqPWhpZ2hsaWdodF1bY2xhc3MqPWZ1bGx5U2VsZWN0ZWRNZXJnZWRDZWxsLTVdOmJlZm9yZXtvcGFjaXR5Oi40N30uaGFuZHNvbnRhYmxlIHRib2R5IHRkW3Jvd3NwYW5dW2NsYXNzKj1hcmVhXVtjbGFzcyo9aGlnaGxpZ2h0XVtjbGFz'@; put 'cyo9ZnVsbHlTZWxlY3RlZE1lcmdlZENlbGwtNl06YmVmb3Jle29wYWNpdHk6LjU0fS5oYW5kc29udGFibGUgdGJvZHkgdGRbcm93c3Bhbl1bY2xhc3MqPWFyZWFdW2NsYXNzKj1oaWdobGlnaHRdW2NsYXNzKj1mdWxseVNlbGVjdGVkTWVyZ2VkQ2VsbC03XTpiZWZvcmV7b3BhY2l0eTouNTh9'@; put 'LmhhbmRzb250YWJsZVtkaXI9bHRyXSBkaXYuaHRSaWdodCBzcGFuW2NsYXNzKj1zb3J0LV17bWFyZ2luLXJpZ2h0OjE1cHg7bWFyZ2luLWxlZnQ6LTE1cHh9LmhhbmRzb250YWJsZVtkaXI9cnRsXSBkaXYuaHRMZWZ0IHNwYW5bY2xhc3MqPXNvcnQtXXttYXJnaW4tbGVmdDoxNXB4O21hcmdp'@; put 'bi1yaWdodDotMTVweH0uaGFuZHNvbnRhYmxlW2Rpcj1sdHJdIGRpdi5odFJpZ2h0IHNwYW5bY2xhc3MqPXNvcnQtXTpvbmx5LWNoaWxke21hcmdpbi1yaWdodDoyMHB4O21hcmdpbi1sZWZ0Oi0yMHB4fS5oYW5kc29udGFibGVbZGlyPXJ0bF0gZGl2Lmh0TGVmdCBzcGFuW2NsYXNzKj1zb3J0'@; put 'LV06b25seS1jaGlsZHttYXJnaW4tbGVmdDoyMHB4O21hcmdpbi1yaWdodDotMjBweH0uaGFuZHNvbnRhYmxlIHNwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmc6YWZ0ZXJ7dG9wOjUwJTttYXJnaW4tdG9wOi0ycHg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6LTE1cHg7bGVmdDp1bnNldDtw'@; put 'YWRkaW5nLWxlZnQ6NXB4O3BhZGRpbmctcmlnaHQ6dW5zZXQ7Zm9udC1zaXplOjhweDtoZWlnaHQ6OHB4O2xpbmUtaGVpZ2h0OjEuMX1bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIHNwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmc6YWZ0ZXJ7bGVmdDotMTVweDtyaWdodDp1bnNldDtwYWRkaW5n'@; put 'LXJpZ2h0OjVweDtwYWRkaW5nLWxlZnQ6dW5zZXR9LmhhbmRzb250YWJsZSBzcGFuLmNvbEhlYWRlci5jb2x1bW5Tb3J0aW5nW2NsYXNzXj1zb3J0LV06YWZ0ZXIsLmhhbmRzb250YWJsZSBzcGFuLmNvbEhlYWRlci5jb2x1bW5Tb3J0aW5nW2NsYXNzKj0iIHNvcnQtIl06YWZ0ZXJ7Y29udGVu'@; put 'dDoiKyJ9LmhhbmRzb250YWJsZSBzcGFuLmNvbEhlYWRlci5jb2x1bW5Tb3J0aW5nLnNvcnQtMTphZnRlcntjb250ZW50OiIxIn0uaGFuZHNvbnRhYmxlIHNwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmcuc29ydC0yOmFmdGVye2NvbnRlbnQ6IjIifS5oYW5kc29udGFibGUgc3Bhbi5jb2xI'@; put 'ZWFkZXIuY29sdW1uU29ydGluZy5zb3J0LTM6YWZ0ZXJ7Y29udGVudDoiMyJ9LmhhbmRzb250YWJsZSBzcGFuLmNvbEhlYWRlci5jb2x1bW5Tb3J0aW5nLnNvcnQtNDphZnRlcntjb250ZW50OiI0In0uaGFuZHNvbnRhYmxlIHNwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmcuc29ydC01OmFm'@; put 'dGVye2NvbnRlbnQ6IjUifS5oYW5kc29udGFibGUgc3Bhbi5jb2xIZWFkZXIuY29sdW1uU29ydGluZy5zb3J0LTY6YWZ0ZXJ7Y29udGVudDoiNiJ9LmhhbmRzb250YWJsZSBzcGFuLmNvbEhlYWRlci5jb2x1bW5Tb3J0aW5nLnNvcnQtNzphZnRlcntjb250ZW50OiI3In0uaHRHaG9zdFRhYmxl'@; put 'IHRoIGRpdiBidXR0b24uY2hhbmdlVHlwZStzcGFuLmNvbEhlYWRlci5jb2x1bW5Tb3J0aW5nOm5vdCguaW5kaWNhdG9yRGlzYWJsZWQpe3BhZGRpbmctcmlnaHQ6NXB4fS5oYW5kc29udGFibGUgdGhlYWQgdGguaGlkZGVuSGVhZGVyOm5vdCg6Zmlyc3Qtb2YtdHlwZSl7ZGlzcGxheTpub25l'@; put 'fXRoZWFkIHRoLmhpZGRlbkhlYWRlclRleHQgLmNvbEhlYWRlcntvcGFjaXR5OjB9LmhhbmRzb250YWJsZSB0aC5odF9uZXN0aW5nTGV2ZWxze3RleHQtYWxpZ246bGVmdDtwYWRkaW5nLWxlZnQ6N3B4fVtkaXI9cnRsXS5oYW5kc29udGFibGUgdGguaHRfbmVzdGluZ0xldmVsc3t0ZXh0LWFs'@; put 'aWduOnJpZ2h0O3BhZGRpbmctcmlnaHQ6N3B4fS5oYW5kc29udGFibGUgdGggZGl2Lmh0X25lc3RpbmdMZXZlbHN7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246YWJzb2x1dGU7bGVmdDoxMXB4O3JpZ2h0OnVuc2V0fVtkaXI9cnRsXS5oYW5kc29udGFibGUgdGggZGl2Lmh0X25lc3Rp'@; put 'bmdMZXZlbHN7cmlnaHQ6MTFweDtsZWZ0OnVuc2V0fS5oYW5kc29udGFibGUuaW5uZXJCb3JkZXJJbmxpbmVTdGFydCB0aCBkaXYuaHRfbmVzdGluZ0xldmVscywuaGFuZHNvbnRhYmxlLmlubmVyQm9yZGVySW5saW5lU3RhcnR+LmhhbmRzb250YWJsZSB0aCBkaXYuaHRfbmVzdGluZ0xldmVs'@; put 'c3tyaWdodDoxMHB4O2xlZnQ6dW5zZXR9W2Rpcj1ydGxdLmhhbmRzb250YWJsZS5pbm5lckJvcmRlcklubGluZVN0YXJ0IHRoIGRpdi5odF9uZXN0aW5nTGV2ZWxzLFtkaXI9cnRsXS5oYW5kc29udGFibGUuaW5uZXJCb3JkZXJJbmxpbmVTdGFydH4uaGFuZHNvbnRhYmxlIHRoIGRpdi5odF9u'@; put 'ZXN0aW5nTGV2ZWxze2xlZnQ6MTBweDtyaWdodDp1bnNldH0uaGFuZHNvbnRhYmxlIHRoIHNwYW4uaHRfbmVzdGluZ0xldmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5oYW5kc29udGFibGUgdGggc3Bhbi5odF9uZXN0aW5nTGV2ZWxfZW1wdHl7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6'@; put 'MTBweDtoZWlnaHQ6MXB4O2Zsb2F0OmxlZnR9W2Rpcj1ydGxdLmhhbmRzb250YWJsZSB0aCBzcGFuLmh0X25lc3RpbmdMZXZlbF9lbXB0eXtmbG9hdDpyaWdodH0uaGFuZHNvbnRhYmxlIHRoIHNwYW4uaHRfbmVzdGluZ0xldmVsOmFmdGVye2NvbnRlbnQ6IlwyNTEwIjtmb250LXNpemU6OXB4'@; put 'O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO2JvdHRvbTozcHh9LmhhbmRzb250YWJsZSB0aCBkaXYuaHRfbmVzdGluZ0J1dHRvbntkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotMnB4O2xlZnQ6dW5zZXQ7Y3Vyc29yOnBvaW50ZXJ9'@; put 'W2Rpcj1ydGxdLmhhbmRzb250YWJsZSB0aCBkaXYuaHRfbmVzdGluZ0J1dHRvbntsZWZ0Oi0ycHg7cmlnaHQ6dW5zZXR9LmhhbmRzb250YWJsZSB0aCBkaXYuaHRfbmVzdGluZ0J1dHRvbi5odF9uZXN0aW5nRXhwYW5kOmFmdGVye2NvbnRlbnQ6IisifS5oYW5kc29udGFibGUgdGggZGl2Lmh0'@; put 'X25lc3RpbmdCdXR0b24uaHRfbmVzdGluZ0NvbGxhcHNlOmFmdGVye2NvbnRlbnQ6Ii0ifS5oYW5kc29udGFibGUuaW5uZXJCb3JkZXJJbmxpbmVTdGFydCB0aCBkaXYuaHRfbmVzdGluZ0J1dHRvbiwuaGFuZHNvbnRhYmxlLmlubmVyQm9yZGVySW5saW5lU3RhcnR+LmhhbmRzb250YWJsZSB0'@; put 'aCBkaXYuaHRfbmVzdGluZ0J1dHRvbntyaWdodDowO2xlZnQ6dW5zZXR9W2Rpcj1ydGxdLmhhbmRzb250YWJsZS5pbm5lckJvcmRlcklubGluZVN0YXJ0IHRoIGRpdi5odF9uZXN0aW5nQnV0dG9uLFtkaXI9cnRsXS5oYW5kc29udGFibGUuaW5uZXJCb3JkZXJJbmxpbmVTdGFydH4uaGFuZHNv'@; put 'bnRhYmxlIHRoIGRpdi5odF9uZXN0aW5nQnV0dG9ue2xlZnQ6MDtyaWdodDp1bnNldH0vKiEKICogUGlrYWRheQogKiBDb3B5cmlnaHQgwqkgMjAxNCBEYXZpZCBCdXNoZWxsIHwgQlNEICYgTUlUIGxpY2Vuc2UgfCBodHRwczovL2RidXNoZWxsLmNvbS8KICovLnBpa2Etc2luZ2xle3otaW5k'@; put 'ZXg6OTk5OTtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO2NvbG9yOiMzMzM7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI2NjYztib3JkZXItYm90dG9tLWNvbG9yOiNiYmI7Zm9udC1mYW1pbHk6SGVsdmV0aWNhIE5ldWUsSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2Vy'@; put 'aWZ9LnBpa2Etc2luZ2xlOmJlZm9yZSwucGlrYS1zaW5nbGU6YWZ0ZXJ7Y29udGVudDoiICI7ZGlzcGxheTp0YWJsZX0ucGlrYS1zaW5nbGU6YWZ0ZXJ7Y2xlYXI6Ym90aH0ucGlrYS1zaW5nbGUuaXMtaGlkZGVue2Rpc3BsYXk6bm9uZX0ucGlrYS1zaW5nbGUuaXMtYm91bmR7cG9zaXRpb246'@; put 'YWJzb2x1dGU7Ym94LXNoYWRvdzowIDVweCAxNXB4IC01cHggIzAwMDAwMDgwfS5waWthLWxlbmRhcntmbG9hdDpsZWZ0O3dpZHRoOjI0MHB4O21hcmdpbjo4cHh9LnBpa2EtdGl0bGV7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpjZW50ZXJ9LnBpa2EtbGFiZWx7ZGlzcGxheTppbmxp'@; put 'bmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDo5OTk5O292ZXJmbG93OmhpZGRlbjttYXJnaW46MDtwYWRkaW5nOjVweCAzcHg7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MjBweDtmb250LXdlaWdodDo3MDA7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5waWthLXRpdGxlIHNl'@; put 'bGVjdHtjdXJzb3I6cG9pbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4Ojk5OTg7bWFyZ2luOjA7bGVmdDowO3RvcDo1cHg7b3BhY2l0eTowfS5waWthLXByZXYsLnBpa2EtbmV4dHtkaXNwbGF5OmJsb2NrO2N1cnNvcjpwb2ludGVyO3Bvc2l0aW9uOnJlbGF0aXZlO291dGxpbmU6bm9u'@; put 'ZTtib3JkZXI6MDtwYWRkaW5nOjA7d2lkdGg6MjBweDtoZWlnaHQ6MzBweDt0ZXh0LWluZGVudDoyMHB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7YmFja2dy'@; put 'b3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTo3NSUgNzUlO29wYWNpdHk6LjV9LnBpa2EtcHJldjpob3ZlciwucGlrYS1uZXh0OmhvdmVye29wYWNpdHk6MX0ucGlrYS1wcmV2LC5pcy1ydGwgLnBpa2EtbmV4dHtmbG9hdDpsZWZ0O2JhY2tncm91bmQtaW1hZ2U6dXJsKGRh'@; put 'dGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQlFBQUFBZUNBWUFBQUFzRWo1ckFBQUFVa2xFUVZSNDJ1M1ZNUW9BSUJBRFFmOFBnaitPRDloRzJDdE9OSkIyeW1Ra0tlMEhid0FQMHh1Y0RpUVdBUklUSURFQkVuTWdNUThTOCtBcUJJbDZrS2dIaVhxUXFBZUpl'@; put 'cEJvL3ozOEovVTB1QUhsYUJrQmw5STRHd0FBQUFCSlJVNUVya0pnZ2c9PSl9LnBpa2EtbmV4dCwuaXMtcnRsIC5waWthLXByZXZ7ZmxvYXQ6cmlnaHQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCUUFBQUFlQ0FZ'@; put 'QUFBQXNFajVyQUFBQVUwbEVRVlI0MnUzVk93b0FNQWdFMGR3ZkFuTmpVMjZiWWtCQ0ZHd2ZpTDlWVldvTytCSjRHZjNndHNFS0tvRkJOVENvQ0FZVndhQWlHTlFHTVVITWtqR2JnamsybUlPTnVYbzBuQzhYbkNmMUpYZ0FyVklaQVFoNVRLWUFBQUFBU1VWT1JLNUNZSUk9KX0ucGlrYS1wcmV2'@; put 'LmlzLWRpc2FibGVkLC5waWthLW5leHQuaXMtZGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHQ7b3BhY2l0eTouMn0ucGlrYS1zZWxlY3R7ZGlzcGxheTppbmxpbmUtYmxvY2t9LnBpa2EtdGFibGV7d2lkdGg6MTAwJTtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Ym9yZGVyLXNwYWNpbmc6MDtib3Jk'@; put 'ZXI6MH0ucGlrYS10YWJsZSB0aCwucGlrYS10YWJsZSB0ZHt3aWR0aDoxNC4yODU3MTQyODU3MTQyODYlO3BhZGRpbmc6MH0ucGlrYS10YWJsZSB0aHtjb2xvcjojOTk5O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjI1cHg7Zm9udC13ZWlnaHQ6NzAwO3RleHQtYWxpZ246Y2VudGVyfS5w'@; put 'aWthLWJ1dHRvbntjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtvdXRsaW5lOm5vbmU7Ym9yZGVyOjA7bWFyZ2luOjA7d2lkdGg6MTAwJTtwYWRkaW5nOjVweDtjb2xvcjojNjY2O2ZvbnQtc2l6ZTox'@; put 'MnB4O2xpbmUtaGVpZ2h0OjE1cHg7dGV4dC1hbGlnbjpjZW50ZXI7YmFja2dyb3VuZDojZjVmNWY1O2hlaWdodDppbml0aWFsfS5waWthLXdlZWt7Zm9udC1zaXplOjExcHg7Y29sb3I6Izk5OX0uaXMtdG9kYXkgLnBpa2EtYnV0dG9ue2NvbG9yOiMzYWY7Zm9udC13ZWlnaHQ6NzAwfS5pcy1z'@; put 'ZWxlY3RlZCAucGlrYS1idXR0b24sLmhhcy1ldmVudCAucGlrYS1idXR0b257Y29sb3I6I2ZmZjtmb250LXdlaWdodDo3MDA7YmFja2dyb3VuZDojM2FmO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggM3B4ICMxNzhmZTU7Ym9yZGVyLXJhZGl1czozcHh9Lmhhcy1ldmVudCAucGlrYS1idXR0b257'@; put 'YmFja2dyb3VuZDojMDA1ZGE5O2JveC1zaGFkb3c6aW5zZXQgMCAxcHggM3B4ICMwMDc2Yzl9LmlzLWRpc2FibGVkIC5waWthLWJ1dHRvbiwuaXMtaW5yYW5nZSAucGlrYS1idXR0b257YmFja2dyb3VuZDojZDVlOWY3fS5pcy1zdGFydHJhbmdlIC5waWthLWJ1dHRvbntjb2xvcjojZmZmO2Jh'@; put 'Y2tncm91bmQ6IzZjYjMxZDtib3gtc2hhZG93Om5vbmU7Ym9yZGVyLXJhZGl1czozcHh9LmlzLWVuZHJhbmdlIC5waWthLWJ1dHRvbntjb2xvcjojZmZmO2JhY2tncm91bmQ6IzNhZjtib3gtc2hhZG93Om5vbmU7Ym9yZGVyLXJhZGl1czozcHh9LmlzLWRpc2FibGVkIC5waWthLWJ1dHRvbntw'@; put 'b2ludGVyLWV2ZW50czpub25lO2N1cnNvcjpkZWZhdWx0O2NvbG9yOiM5OTk7b3BhY2l0eTouM30uaXMtb3V0c2lkZS1jdXJyZW50LW1vbnRoIC5waWthLWJ1dHRvbntjb2xvcjojOTk5O29wYWNpdHk6LjN9LmlzLXNlbGVjdGlvbi1kaXNhYmxlZHtwb2ludGVyLWV2ZW50czpub25lO2N1cnNv'@; put 'cjpkZWZhdWx0fS5waWthLWJ1dHRvbjpob3ZlciwucGlrYS1yb3cucGljay13aG9sZS13ZWVrOmhvdmVyIC5waWthLWJ1dHRvbntjb2xvcjojZmZmO2JhY2tncm91bmQ6I2ZmODAwMDtib3gtc2hhZG93Om5vbmU7Ym9yZGVyLXJhZGl1czozcHh9LnBpa2EtdGFibGUgYWJicntib3JkZXItYm90'@; put 'dG9tOm5vbmU7Y3Vyc29yOmhlbHB9Y2xyLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luOjA7aGVpZ2h0OjE2cHg7d2lkdGg6MTZweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7ZmlsbDpjdXJyZW50Q29sb3J9Y2xyLWljb24gLnRyYW5zcGFyZW50LWZpbGwtc3Ryb2tle3N0cm9rZTpj'@; put 'dXJyZW50Q29sb3J9Y2xyLWljb24uaXMtZ3JlZW4sY2xyLWljb24uaXMtc3VjY2Vzc3tmaWxsOiMyZTg1MDB9Y2xyLWljb24uaXMtZ3JlZW4gLnRyYW5zcGFyZW50LWZpbGwtc3Ryb2tlLGNsci1pY29uLmlzLXN1Y2Nlc3MgLnRyYW5zcGFyZW50LWZpbGwtc3Ryb2tle3N0cm9rZTojMmU4NTAw'@; put 'fWNsci1pY29uLmlzLXJlZCxjbHItaWNvbi5pcy1kYW5nZXIsY2xyLWljb24uaXMtZXJyb3J7ZmlsbDojZTAyMjAwfWNsci1pY29uLmlzLXJlZCAudHJhbnNwYXJlbnQtZmlsbC1zdHJva2UsY2xyLWljb24uaXMtZGFuZ2VyIC50cmFuc3BhcmVudC1maWxsLXN0cm9rZSxjbHItaWNvbi5pcy1l'@; put 'cnJvciAudHJhbnNwYXJlbnQtZmlsbC1zdHJva2V7c3Ryb2tlOiNlMDIyMDB9Y2xyLWljb24uaXMtd2FybmluZ3tmaWxsOiNjMjdiMDB9Y2xyLWljb24uaXMtd2FybmluZyAudHJhbnNwYXJlbnQtZmlsbC1zdHJva2V7c3Ryb2tlOiNjMjdiMDB9Y2xyLWljb24uaXMtYmx1ZSxjbHItaWNvbi5p'@; put 'cy1pbmZve2ZpbGw6IzAwNzdiOH1jbHItaWNvbi5pcy1ibHVlIC50cmFuc3BhcmVudC1maWxsLXN0cm9rZSxjbHItaWNvbi5pcy1pbmZvIC50cmFuc3BhcmVudC1maWxsLXN0cm9rZXtzdHJva2U6IzAwNzdiOH1jbHItaWNvbi5pcy13aGl0ZSxjbHItaWNvbi5pcy1pbnZlcnNle2ZpbGw6I2Zm'@; put 'Zn1jbHItaWNvbi5pcy13aGl0ZSAudHJhbnNwYXJlbnQtZmlsbC1zdHJva2UsY2xyLWljb24uaXMtaW52ZXJzZSAudHJhbnNwYXJlbnQtZmlsbC1zdHJva2V7c3Ryb2tlOiNmZmZ9Y2xyLWljb24uaXMtaGlnaGxpZ2h0e2ZpbGw6IzAwNzdiOH1jbHItaWNvbi5pcy1oaWdobGlnaHQgLnRyYW5z'@; put 'cGFyZW50LWZpbGwtc3Ryb2tle3N0cm9rZTojMDA3N2I4fWNsci1pY29uW3NoYXBlJD0iIHVwIl0gc3ZnLGNsci1pY29uW2Rpcj11cF0gc3Zne3RyYW5zZm9ybTpyb3RhdGUoMCl9Y2xyLWljb25bc2hhcGUkPSIgZG93biJdIHN2ZyxjbHItaWNvbltkaXI9ZG93bl0gc3Zne3RyYW5zZm9ybTpy'@; put 'b3RhdGUoMTgwZGVnKX1jbHItaWNvbltzaGFwZSQ9IiByaWdodCJdIHN2ZyxjbHItaWNvbltkaXI9cmlnaHRdIHN2Z3t0cmFuc2Zvcm06cm90YXRlKDkwZGVnKX1jbHItaWNvbltzaGFwZSQ9IiBsZWZ0Il0gc3ZnLGNsci1pY29uW2Rpcj1sZWZ0XSBzdmd7dHJhbnNmb3JtOnJvdGF0ZSgyNzBk'@; put 'ZWcpfWNsci1pY29uW2ZsaXA9aG9yaXpvbnRhbF0gc3Zne3RyYW5zZm9ybTpzY2FsZSgtMSkgcm90YXRlWCgxODBkZWcpfWNsci1pY29uW2ZsaXA9dmVydGljYWxdIHN2Z3t0cmFuc2Zvcm06c2NhbGUoLTEpIHJvdGF0ZVkoMTgwZGVnKX1jbHItaWNvbiAuY2xyLWktYmFkZ2V7ZmlsbDojZTAy'@; put 'MjAwfWNsci1pY29uIC5jbHItaS1iYWRnZSAudHJhbnNwYXJlbnQtZmlsbC1zdHJva2V7c3Ryb2tlOiNlMDIyMDB9Y2xyLWljb24+KntoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2Rpc3BsYXk6YmxvY2s7cG9pbnRlci1ldmVudHM6bm9uZX1jbHItaWNvbj5zdmd7dHJhbnNpdGlvbjppbmhlcml0'@; put 'fWNsci1pY29uPnN2ZyB0aXRsZXtkaXNwbGF5Om5vbmV9Y2xyLWljb24gLmNsci1pLXNvbGlkLGNsci1pY29uIC5jbHItaS1zb2xpZC0tYmFkZ2VkLGNsci1pY29uIC5jbHItaS1zb2xpZC0tYWxlcnRlZHtkaXNwbGF5Om5vbmV9Y2xyLWljb24gLmNsci1pLW91dGxpbmUtLWFsZXJ0ZWQ6bm90'@; put 'KC5jbHItaS1vdXRsaW5lKSxjbHItaWNvbiAuY2xyLWktb3V0bGluZS0tYmFkZ2VkOm5vdCguY2xyLWktb3V0bGluZSl7ZGlzcGxheTpub25lfWNsci1pY29uW2NsYXNzKj1oYXMtYWxlcnRdIC5jYW4tYWxlcnQgLmNsci1pLW91dGxpbmUtLWFsZXJ0ZWR7ZGlzcGxheTpibG9ja31jbHItaWNv'@; put 'bltjbGFzcyo9aGFzLWFsZXJ0XSAuY2FuLWFsZXJ0IC5jbHItaS1vdXRsaW5lOm5vdCguY2xyLWktb3V0bGluZS0tYWxlcnRlZCl7ZGlzcGxheTpub25lfWNsci1pY29uW2NsYXNzKj1oYXMtYmFkZ2VdIC5jYW4tYmFkZ2UgLmNsci1pLW91dGxpbmUtLWJhZGdlZHtkaXNwbGF5OmJsb2NrfWNs'@; put 'ci1pY29uW2NsYXNzKj1oYXMtYmFkZ2VdIC5jYW4tYmFkZ2UgLmNsci1pLW91dGxpbmU6bm90KC5jbHItaS1vdXRsaW5lLS1iYWRnZWQpe2Rpc3BsYXk6bm9uZX1jbHItaWNvbi5pcy1zb2xpZCAuaGFzLXNvbGlkIC5jbHItaS1zb2xpZHtkaXNwbGF5OmJsb2NrfWNsci1pY29uLmlzLXNvbGlk'@; put 'IC5oYXMtc29saWQgLmNsci1pLW91dGxpbmUsY2xyLWljb24uaXMtc29saWQgLmhhcy1zb2xpZCAuY2xyLWktb3V0bGluZS0tYmFkZ2Vke2Rpc3BsYXk6bm9uZX1jbHItaWNvbi5pcy1zb2xpZCAuaGFzLXNvbGlkIC5jbHItaS1zb2xpZC0tYWxlcnRlZDpub3QoLmNsci1pLXNvbGlkKSxjbHIt'@; put 'aWNvbi5pcy1zb2xpZCAuaGFzLXNvbGlkIC5jbHItaS1zb2xpZC0tYmFkZ2VkOm5vdCguY2xyLWktc29saWQpe2Rpc3BsYXk6bm9uZX1jbHItaWNvbi5pcy1zb2xpZFtjbGFzcyo9aGFzLWJhZGdlXSAuY2FuLWJhZGdlLmhhcy1zb2xpZCAuY2xyLWktc29saWQtLWJhZGdlZHtkaXNwbGF5OmJs'@; put 'b2NrfWNsci1pY29uLmlzLXNvbGlkW2NsYXNzKj1oYXMtYmFkZ2VdIC5jYW4tYmFkZ2UuaGFzLXNvbGlkIC5jbHItaS1vdXRsaW5lLGNsci1pY29uLmlzLXNvbGlkW2NsYXNzKj1oYXMtYmFkZ2VdIC5jYW4tYmFkZ2UuaGFzLXNvbGlkIC5jbHItaS1vdXRsaW5lLS1iYWRnZWQsY2xyLWljb24u'@; put 'aXMtc29saWRbY2xhc3MqPWhhcy1iYWRnZV0gLmNhbi1iYWRnZS5oYXMtc29saWQgLmNsci1pLXNvbGlkOm5vdCguY2xyLWktc29saWQtLWJhZGdlZCl7ZGlzcGxheTpub25lfWNsci1pY29uLmlzLXNvbGlkW2NsYXNzKj1oYXMtYWxlcnRdIC5jYW4tYWxlcnQuaGFzLXNvbGlkIC5jbHItaS1z'@; put 'b2xpZC0tYWxlcnRlZHtkaXNwbGF5OmJsb2NrfWNsci1pY29uLmlzLXNvbGlkW2NsYXNzKj1oYXMtYWxlcnRdIC5jYW4tYWxlcnQuaGFzLXNvbGlkIC5jbHItaS1vdXRsaW5lLGNsci1pY29uLmlzLXNvbGlkW2NsYXNzKj1oYXMtYWxlcnRdIC5jYW4tYWxlcnQuaGFzLXNvbGlkIC5jbHItaS1v'@; put 'dXRsaW5lLS1hbGVydGVkLGNsci1pY29uLmlzLXNvbGlkW2NsYXNzKj1oYXMtYWxlcnRdIC5jYW4tYWxlcnQuaGFzLXNvbGlkIC5jbHItaS1zb2xpZDpub3QoLmNsci1pLXNvbGlkLS1hbGVydGVkKXtkaXNwbGF5Om5vbmV9Y2xyLWljb24uaGFzLWJhZGdlLS1zdWNjZXNzIC5jbHItaS1iYWRn'@; put 'ZXtmaWxsOiMyZTg1MDB9Y2xyLWljb24uaGFzLWJhZGdlLS1zdWNjZXNzIC5jbHItaS1iYWRnZSAudHJhbnNwYXJlbnQtZmlsbC1zdHJva2V7c3Ryb2tlOiMyZTg1MDB9Y2xyLWljb24uaGFzLWJhZGdlLS1lcnJvciAuY2xyLWktYmFkZ2V7ZmlsbDojZTAyMjAwfWNsci1pY29uLmhhcy1iYWRn'@; put 'ZS0tZXJyb3IgLmNsci1pLWJhZGdlIC50cmFuc3BhcmVudC1maWxsLXN0cm9rZXtzdHJva2U6I2UwMjIwMH1jbHItaWNvbi5oYXMtYmFkZ2UtLWluZm8gLmNsci1pLWJhZGdle2ZpbGw6IzAwNzdiOH1jbHItaWNvbi5oYXMtYmFkZ2UtLWluZm8gLmNsci1pLWJhZGdlIC50cmFuc3BhcmVudC1m'@; put 'aWxsLXN0cm9rZXtzdHJva2U6IzAwNzdiOH1jbHItaWNvbi5oYXMtYWxlcnQgLmNsci1pLWFsZXJ0e2ZpbGw6I2MyN2IwMH1jbHItaWNvbi5oYXMtYWxlcnQgLmNsci1pLWFsZXJ0IC50cmFuc3BhcmVudC1maWxsLXN0cm9rZXtzdHJva2U6I2MyN2IwMH1jbHItaWNvbiAuaXMtb2ZmLXNjcmVl'@; put 'bntwb3NpdGlvbjpmaXhlZCFpbXBvcnRhbnQ7Ym9yZGVyOjAhaW1wb3J0YW50O2hlaWdodDoxcHghaW1wb3J0YW50O3dpZHRoOjFweCFpbXBvcnRhbnQ7bGVmdDowIWltcG9ydGFudDt0b3A6LTFweCFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0'@; put 'YW50O21hcmdpbjowIDAgLTFweCFpbXBvcnRhbnR9OnJvb3R7LS1jZHMtZ2xvYmFsLWJhc2U6MjA7LS1jZHMtZ2xvYmFsLXNjYWxlLXNwYWNlOjE7LS1jZHMtZ2xvYmFsLXNjYWxlLWxheW91dC1zcGFjZToxOy0tY2RzLWdsb2JhbC1zY2FsZS10eXBvZ3JhcGh5OjE7LS1jZHMtZ2xvYmFsLWxh'@; put 'eW91dC1ncmlkLWNvbHM6MTI7LS1jZHMtZ2xvYmFsLWxheW91dC13aWR0aC14czo1NzZweDstLWNkcy1nbG9iYWwtbGF5b3V0LXdpZHRoLXNtOjc2OHB4Oy0tY2RzLWdsb2JhbC1sYXlvdXQtd2lkdGgtbWQ6OTkycHg7LS1jZHMtZ2xvYmFsLWxheW91dC13aWR0aC1sZzoxMjAwcHg7LS1jZHMt'@; put 'Z2xvYmFsLWxheW91dC13aWR0aC14bDoxNDQwcHg7LS1jZHMtZ2xvYmFsLWxheW91dC1zcGFjZS14eHhzOmNhbGMoMiAqIHZhcigtLWNkcy1pbnRlcm5hbC1zY2FsZS0xKSk7LS1jZHMtZ2xvYmFsLWxheW91dC1zcGFjZS14eHM6Y2FsYyg0ICogdmFyKC0tY2RzLWludGVybmFsLXNjYWxlLTEp'@; put 'KTstLWNkcy1nbG9iYWwtbGF5b3V0LXNwYWNlLXhzOmNhbGMoOCAqIHZhcigtLWNkcy1pbnRlcm5hbC1zY2FsZS0xKSk7LS1jZHMtZ2xvYmFsLWxheW91dC1zcGFjZS1zbTpjYWxjKDEyICogdmFyKC0tY2RzLWludGVybmFsLXNjYWxlLTEpKTstLWNkcy1nbG9iYWwtbGF5b3V0LXNwYWNlLW1k'@; put 'OmNhbGMoMTYgKiB2YXIoLS1jZHMtaW50ZXJuYWwtc2NhbGUtMSkpOy0tY2RzLWdsb2JhbC1sYXlvdXQtc3BhY2UtbGc6Y2FsYygyNCAqIHZhcigtLWNkcy1pbnRlcm5hbC1zY2FsZS0xKSk7LS1jZHMtZ2xvYmFsLWxheW91dC1zcGFjZS14bDpjYWxjKDMyICogdmFyKC0tY2RzLWludGVybmFs'@; put 'LXNjYWxlLTEpKTstLWNkcy1nbG9iYWwtbGF5b3V0LXNwYWNlLXh4bDpjYWxjKDQ4ICogdmFyKC0tY2RzLWludGVybmFsLXNjYWxlLTEpKTstLWNkcy1nbG9iYWwtbGF5b3V0LXNwYWNlLXh4eGw6Y2FsYyg2NCAqIHZhcigtLWNkcy1pbnRlcm5hbC1zY2FsZS0xKSk7LS1jZHMtZ2xvYmFsLXNw'@; put 'YWNlLTA6Y2FsYygwICogdmFyKC0tY2RzLWludGVybmFsLXNjYWxlLTIpKTstLWNkcy1nbG9iYWwtc3BhY2UtMTpjYWxjKDEgKiB2YXIoLS1jZHMtaW50ZXJuYWwtc2NhbGUtMikpOy0tY2RzLWdsb2JhbC1zcGFjZS0yOmNhbGMoMiAqIHZhcigtLWNkcy1pbnRlcm5hbC1zY2FsZS0yKSk7LS1j'@; put 'ZHMtZ2xvYmFsLXNwYWNlLTM6Y2FsYyg0ICogdmFyKC0tY2RzLWludGVybmFsLXNjYWxlLTIpKTstLWNkcy1nbG9iYWwtc3BhY2UtNDpjYWxjKDYgKiB2YXIoLS1jZHMtaW50ZXJuYWwtc2NhbGUtMikpOy0tY2RzLWdsb2JhbC1zcGFjZS01OmNhbGMoOCAqIHZhcigtLWNkcy1pbnRlcm5hbC1z'@; put 'Y2FsZS0yKSk7LS1jZHMtZ2xvYmFsLXNwYWNlLTY6Y2FsYygxMiAqIHZhcigtLWNkcy1pbnRlcm5hbC1zY2FsZS0yKSk7LS1jZHMtZ2xvYmFsLXNwYWNlLTc6Y2FsYygxNiAqIHZhcigtLWNkcy1pbnRlcm5hbC1zY2FsZS0yKSk7LS1jZHMtZ2xvYmFsLXNwYWNlLTg6Y2FsYygxOCAqIHZhcigt'@; put 'LWNkcy1pbnRlcm5hbC1zY2FsZS0yKSk7LS1jZHMtZ2xvYmFsLXNwYWNlLTk6Y2FsYygyNCAqIHZhcigtLWNkcy1pbnRlcm5hbC1zY2FsZS0yKSk7LS1jZHMtZ2xvYmFsLXNwYWNlLTEwOmNhbGMoMzIgKiB2YXIoLS1jZHMtaW50ZXJuYWwtc2NhbGUtMikpOy0tY2RzLWdsb2JhbC1zcGFjZS0x'@; put 'MTpjYWxjKDM2ICogdmFyKC0tY2RzLWludGVybmFsLXNjYWxlLTIpKTstLWNkcy1nbG9iYWwtc3BhY2UtMTI6Y2FsYyg0OCAqIHZhcigtLWNkcy1pbnRlcm5hbC1zY2FsZS0yKSk7LS1jZHMtZ2xvYmFsLXNwYWNlLTEzOmNhbGMoNjQgKiB2YXIoLS1jZHMtaW50ZXJuYWwtc2NhbGUtMikpOy0t'@; put 'Y2RzLWdsb2JhbC1zcGFjZS0xNDpjYWxjKDcyICogdmFyKC0tY2RzLWludGVybmFsLXNjYWxlLTIpKTstLWNkcy1nbG9iYWwtc3BhY2UtMTU6Y2FsYyg5NiAqIHZhcigtLWNkcy1pbnRlcm5hbC1zY2FsZS0yKSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWJsYWNrOmhzbCgwLCAwJSwgMCUpOy0tY2Rz'@; put 'LWdsb2JhbC1jb2xvci13aGl0ZTpoc2woMCwgMCUsIDEwMCUpOy0tY2RzLWdsb2JhbC1jb2xvci1ncmVlbi01MDpoc2woOTMsIDgwJSwgOTQlKTstLWNkcy1nbG9iYWwtY29sb3ItZ3JlZW4tMTAwOmhzbCg5MywgODAlLCA4MyUpOy0tY2RzLWdsb2JhbC1jb2xvci1ncmVlbi0yMDA6aHNsKDkz'@; put 'LCA4MCUsIDcwJSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWdyZWVuLTMwMDpoc2woOTMsIDgwJSwgNTYlKTstLWNkcy1nbG9iYWwtY29sb3ItZ3JlZW4tNDAwOmhzbCg5MywgODAlLCA0OCUpOy0tY2RzLWdsb2JhbC1jb2xvci1ncmVlbi01MDA6aHNsKDkzLCA4MCUsIDQ0JSk7LS1jZHMtZ2xvYmFs'@; put 'LWNvbG9yLWdyZWVuLTYwMDpoc2woOTMsIDgwJSwgMzclKTstLWNkcy1nbG9iYWwtY29sb3ItZ3JlZW4tNzAwOmhzbCg5MywgODAlLCAyOCUpOy0tY2RzLWdsb2JhbC1jb2xvci1ncmVlbi04MDA6aHNsKDkzLCA4MCUsIDIzJSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWdyZWVuLTkwMDpoc2woOTMs'@; put 'IDgwJSwgMTclKTstLWNkcy1nbG9iYWwtY29sb3ItZ3JlZW4tMTAwMDpoc2woOTMsIDgwJSwgMTIlKTstLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS0yNTpoc2woMTk4LCAxMDAlLCA5NiUpOy0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTUwOmhzbCgxOTgsIDEwMCUsIDk1JSk7LS1jZHMtZ2xvYmFs'@; put 'LWNvbG9yLWJsdWUtNzU6aHNsKDE5OCwgMTAwJSwgOTQlKTstLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS0xMDA6aHNsKDE5OCwgMTAwJSwgODclKTstLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS0yMDA6aHNsKDE5OCwgMTAwJSwgNzglKTstLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS0zMDA6aHNsKDE5'@; put 'OCwgMTAwJSwgNzAlKTstLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS00MDA6aHNsKDE5OCwgMTAwJSwgNTklKTstLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS01MDA6aHNsKDE5OCwgMTAwJSwgNDglKTstLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS02MDA6aHNsKDE5OCwgMTAwJSwgNDMlKTstLWNkcy1n'@; put 'bG9iYWwtY29sb3ItYmx1ZS03MDA6aHNsKDE5OCwgMTAwJSwgMzQlKTstLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS04MDA6aHNsKDE5OCwgMTAwJSwgMjclKTstLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS05MDA6aHNsKDE5OCwgMTAwJSwgMjElKTstLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS0xMDAw'@; put 'OmhzbCgxOTgsIDEwMCUsIDE1JSk7LS1jZHMtZ2xvYmFsLWNvbG9yLXZpb2xldC01MDpoc2woMjgyLCAxMDAlLCA5NyUpOy0tY2RzLWdsb2JhbC1jb2xvci12aW9sZXQtMTAwOmhzbCgyODIsIDgwJSwgOTElKTstLWNkcy1nbG9iYWwtY29sb3ItdmlvbGV0LTIwMDpoc2woMjgyLCA3MyUsIDgz'@; put 'JSk7LS1jZHMtZ2xvYmFsLWNvbG9yLXZpb2xldC0zMDA6aHNsKDI4MiwgNjYlLCA3NCUpOy0tY2RzLWdsb2JhbC1jb2xvci12aW9sZXQtNDAwOmhzbCgyODIsIDYwJSwgNjUlKTstLWNkcy1nbG9iYWwtY29sb3ItdmlvbGV0LTUwMDpoc2woMjgyLCA2MCUsIDU3JSk7LS1jZHMtZ2xvYmFsLWNv'@; put 'bG9yLXZpb2xldC02MDA6aHNsKDI4MiwgNjAlLCA0OSUpOy0tY2RzLWdsb2JhbC1jb2xvci12aW9sZXQtNzAwOmhzbCgyODMsIDgwJSwgMzYlKTstLWNkcy1nbG9iYWwtY29sb3ItdmlvbGV0LTgwMDpoc2woMjgyLCAxMDAlLCAyNiUpOy0tY2RzLWdsb2JhbC1jb2xvci12aW9sZXQtOTAwOmhz'@; put 'bCgyODIsIDEwMCUsIDE5JSk7LS1jZHMtZ2xvYmFsLWNvbG9yLXZpb2xldC0xMDAwOmhzbCgyODIsIDEwMCUsIDE0JSk7LS1jZHMtZ2xvYmFsLWNvbG9yLXJlZC01MDpoc2woOSwgMTAwJSwgOTclKTstLWNkcy1nbG9iYWwtY29sb3ItcmVkLTEwMDpoc2woOSwgMTAwJSwgOTQlKTstLWNkcy1n'@; put 'bG9iYWwtY29sb3ItcmVkLTIwMDpoc2woOSwgMTAwJSwgODglKTstLWNkcy1nbG9iYWwtY29sb3ItcmVkLTMwMDpoc2woOSwgMTAwJSwgNzklKTstLWNkcy1nbG9iYWwtY29sb3ItcmVkLTQwMDpoc2woOSwgMTAwJSwgNzElKTstLWNkcy1nbG9iYWwtY29sb3ItcmVkLTUwMDpoc2woOSwgMTAw'@; put 'JSwgNjUlKTstLWNkcy1nbG9iYWwtY29sb3ItcmVkLTYwMDpoc2woOSwgMTAwJSwgNTklKTstLWNkcy1nbG9iYWwtY29sb3ItcmVkLTcwMDpoc2woOSwgMTAwJSwgNDQlKTstLWNkcy1nbG9iYWwtY29sb3ItcmVkLTgwMDpoc2woOSwgMTAwJSwgMzglKTstLWNkcy1nbG9iYWwtY29sb3ItcmVk'@; put 'LTkwMDpoc2woOSwgMTAwJSwgMjglKTstLWNkcy1nbG9iYWwtY29sb3ItcmVkLTEwMDA6aHNsKDksIDEwMCUsIDIyJSk7LS1jZHMtZ2xvYmFsLWNvbG9yLW9jaHJlLTUwOmhzbCg0MSwgMTAwJSwgOTYlKTstLWNkcy1nbG9iYWwtY29sb3Itb2NocmUtMTAwOmhzbCg0MSwgMTAwJSwgOTIlKTst'@; put 'LWNkcy1nbG9iYWwtY29sb3Itb2NocmUtMjAwOmhzbCg0MSwgMTAwJSwgODYlKTstLWNkcy1nbG9iYWwtY29sb3Itb2NocmUtMzAwOmhzbCg0MSwgMTAwJSwgNzglKTstLWNkcy1nbG9iYWwtY29sb3Itb2NocmUtNDAwOmhzbCg0MSwgMTAwJSwgNzAlKTstLWNkcy1nbG9iYWwtY29sb3Itb2No'@; put 'cmUtNTAwOmhzbCg0MCwgMTAwJSwgNTklKTstLWNkcy1nbG9iYWwtY29sb3Itb2NocmUtNjAwOmhzbCgzOSwgMTAwJSwgNTAlKTstLWNkcy1nbG9iYWwtY29sb3Itb2NocmUtNzAwOmhzbCgzOCwgMTAwJSwgNDIlKTstLWNkcy1nbG9iYWwtY29sb3Itb2NocmUtODAwOmhzbCgzNywgMTAwJSwg'@; put 'MzIlKTstLWNkcy1nbG9iYWwtY29sb3Itb2NocmUtOTAwOmhzbCgzNiwgMTAwJSwgMjclKTstLWNkcy1nbG9iYWwtY29sb3Itb2NocmUtMTAwMDpoc2woMzUsIDEwMCUsIDE5JSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWxhdmVuZGVyLTUwOmhzbCgyMzgsIDEwMCUsIDk2JSk7LS1jZHMtZ2xvYmFs'@; put 'LWNvbG9yLWxhdmVuZGVyLTEwMDpoc2woMjM4LCA1OCUsIDg4JSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWxhdmVuZGVyLTIwMDpoc2woMjM4LCA1MyUsIDc5JSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWxhdmVuZGVyLTMwMDpoc2woMjM4LCA1MiUsIDcwJSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWxhdmVu'@; put 'ZGVyLTQwMDpoc2woMjM4LCA1OCUsIDY0JSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWxhdmVuZGVyLTUwMDpoc2woMjM4LCA1OSUsIDU4JSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWxhdmVuZGVyLTYwMDpoc2woMjM4LCA2MCUsIDUyJSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWxhdmVuZGVyLTcwMDpoc2wo'@; put 'MjM4LCA2OSUsIDQ1JSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWxhdmVuZGVyLTgwMDpoc2woMjM4LCAxMDAlLCAzMiUpOy0tY2RzLWdsb2JhbC1jb2xvci1sYXZlbmRlci05MDA6aHNsKDIzOCwgMTAwJSwgMjIlKTstLWNkcy1nbG9iYWwtY29sb3ItbGF2ZW5kZXItMTAwMDpoc2woMjM4LCAxMDAl'@; put 'LCAxNCUpOy0tY2RzLWdsb2JhbC1jb2xvci1henVyZS01MDpoc2woMjExLCAxMDAlLCA5NSUpOy0tY2RzLWdsb2JhbC1jb2xvci1henVyZS0xMDA6aHNsKDIxMSwgMTAwJSwgODglKTstLWNkcy1nbG9iYWwtY29sb3ItYXp1cmUtMjAwOmhzbCgyMTEsIDEwMCUsIDgxJSk7LS1jZHMtZ2xvYmFs'@; put 'LWNvbG9yLWF6dXJlLTMwMDpoc2woMjExLCAxMDAlLCA3MCUpOy0tY2RzLWdsb2JhbC1jb2xvci1henVyZS00MDA6aHNsKDIxMSwgMTAwJSwgNjIlKTstLWNkcy1nbG9iYWwtY29sb3ItYXp1cmUtNTAwOmhzbCgyMTEsIDEwMCUsIDU0JSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWF6dXJlLTYwMDpo'@; put 'c2woMjExLCAxMDAlLCA0NiUpOy0tY2RzLWdsb2JhbC1jb2xvci1henVyZS03MDA6aHNsKDIxMSwgMTAwJSwgMzclKTstLWNkcy1nbG9iYWwtY29sb3ItYXp1cmUtODAwOmhzbCgyMTEsIDEwMCUsIDI2JSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWF6dXJlLTkwMDpoc2woMjExLCAxMDAlLCAxOCUp'@; put 'Oy0tY2RzLWdsb2JhbC1jb2xvci1henVyZS0xMDAwOmhzbCgyMTEsIDEwMCUsIDE0JSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWFxdWEtNTA6aHNsKDE4NCwgMTAwJSwgOTYlKTstLWNkcy1nbG9iYWwtY29sb3ItYXF1YS0xMDA6aHNsKDE4NCwgMTAwJSwgODYlKTstLWNkcy1nbG9iYWwtY29sb3It'@; put 'YXF1YS0yMDA6aHNsKDE4NCwgMTAwJSwgNzUlKTstLWNkcy1nbG9iYWwtY29sb3ItYXF1YS0zMDA6aHNsKDE4NCwgMTAwJSwgNjIlKTstLWNkcy1nbG9iYWwtY29sb3ItYXF1YS00MDA6aHNsKDE4NCwgMTAwJSwgNDglKTstLWNkcy1nbG9iYWwtY29sb3ItYXF1YS01MDA6aHNsKDE4NCwgMTAw'@; put 'JSwgNDMlKTstLWNkcy1nbG9iYWwtY29sb3ItYXF1YS02MDA6aHNsKDE4NCwgMTAwJSwgMzQlKTstLWNkcy1nbG9iYWwtY29sb3ItYXF1YS03MDA6aHNsKDE4NCwgMTAwJSwgMjUlKTstLWNkcy1nbG9iYWwtY29sb3ItYXF1YS04MDA6aHNsKDE4NCwgMTAwJSwgMTglKTstLWNkcy1nbG9iYWwt'@; put 'Y29sb3ItYXF1YS05MDA6aHNsKDE4NCwgMTAwJSwgMTMlKTstLWNkcy1nbG9iYWwtY29sb3ItYXF1YS0xMDAwOmhzbCgxODQsIDEwMCUsIDEwJSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWphZGUtNTA6aHNsKDE2MCwgODMlLCA5NSUpOy0tY2RzLWdsb2JhbC1jb2xvci1qYWRlLTEwMDpoc2woMTYw'@; put 'LCA4MiUsIDg4JSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWphZGUtMjAwOmhzbCgxNjAsIDc4JSwgNzglKTstLWNkcy1nbG9iYWwtY29sb3ItamFkZS0zMDA6aHNsKDE2MCwgNjklLCA2NSUpOy0tY2RzLWdsb2JhbC1jb2xvci1qYWRlLTQwMDpoc2woMTYwLCA2OSUsIDUzJSk7LS1jZHMtZ2xvYmFs'@; put 'LWNvbG9yLWphZGUtNTAwOmhzbCgxNjAsIDY0JSwgNDUlKTstLWNkcy1nbG9iYWwtY29sb3ItamFkZS02MDA6aHNsKDE2MCwgNjklLCAzNiUpOy0tY2RzLWdsb2JhbC1jb2xvci1qYWRlLTcwMDpoc2woMTYwLCA2NCUsIDMwJSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWphZGUtODAwOmhzbCgxNjAs'@; put 'IDEwMCUsIDIxJSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWphZGUtOTAwOmhzbCgxNjAsIDcwJSwgMTglKTstLWNkcy1nbG9iYWwtY29sb3ItamFkZS0xMDAwOmhzbCgxNjAsIDY5JSwgMTQlKTstLWNkcy1nbG9iYWwtY29sb3IteWVsbG93LTUwOmhzbCg1MCwgMTAwJSwgOTUlKTstLWNkcy1nbG9i'@; put 'YWwtY29sb3IteWVsbG93LTEwMDpoc2woNTAsIDEwMCUsIDg0JSk7LS1jZHMtZ2xvYmFsLWNvbG9yLXllbGxvdy0yMDA6aHNsKDUwLCAxMDAlLCA3MyUpOy0tY2RzLWdsb2JhbC1jb2xvci15ZWxsb3ctMzAwOmhzbCg1MCwgMTAwJSwgNTclKTstLWNkcy1nbG9iYWwtY29sb3IteWVsbG93LTQw'@; put 'MDpoc2woNDYsIDEwMCUsIDUyJSk7LS1jZHMtZ2xvYmFsLWNvbG9yLXllbGxvdy01MDA6aHNsKDQ0LCAxMDAlLCA0NyUpOy0tY2RzLWdsb2JhbC1jb2xvci15ZWxsb3ctNjAwOmhzbCg0MiwgMTAwJSwgNDIlKTstLWNkcy1nbG9iYWwtY29sb3IteWVsbG93LTcwMDpoc2woNDAsIDEwMCUsIDM3'@; put 'JSk7LS1jZHMtZ2xvYmFsLWNvbG9yLXllbGxvdy04MDA6aHNsKDQwLCAxMDAlLCAyNiUpOy0tY2RzLWdsb2JhbC1jb2xvci15ZWxsb3ctOTAwOmhzbCg0MCwgMTAwJSwgMTglKTstLWNkcy1nbG9iYWwtY29sb3IteWVsbG93LTEwMDA6aHNsKDQwLCAxMDAlLCAxMyUpOy0tY2RzLWdsb2JhbC1j'@; put 'b2xvci1saW1lLTUwOmhzbCg2NiwgMTAwJSwgOTQlKTstLWNkcy1nbG9iYWwtY29sb3ItbGltZS0xMDA6aHNsKDY2LCA5NSUsIDgzJSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWxpbWUtMjAwOmhzbCg2NiwgODUlLCA3MCUpOy0tY2RzLWdsb2JhbC1jb2xvci1saW1lLTMwMDpoc2woNjYsIDgwJSwg'@; put 'NTglKTstLWNkcy1nbG9iYWwtY29sb3ItbGltZS00MDA6aHNsKDY2LCA4MCUsIDQ4JSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWxpbWUtNTAwOmhzbCg2NiwgOTAlLCA0MSUpOy0tY2RzLWdsb2JhbC1jb2xvci1saW1lLTYwMDpoc2woNjYsIDkwJSwgMzYlKTstLWNkcy1nbG9iYWwtY29sb3ItbGlt'@; put 'ZS03MDA6aHNsKDY2LCAxMDAlLCAyOCUpOy0tY2RzLWdsb2JhbC1jb2xvci1saW1lLTgwMDpoc2woNjYsIDEwMCUsIDIyJSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWxpbWUtOTAwOmhzbCg2NiwgMTAwJSwgMTIlKTstLWNkcy1nbG9iYWwtY29sb3ItbGltZS0xMDAwOmhzbCg2NiwgMTAwJSwgNyUp'@; put 'Oy0tY2RzLWdsb2JhbC1jb2xvci10YW5nZXJpbmUtNTA6aHNsKDI1LCAxMDAlLCA5NSUpOy0tY2RzLWdsb2JhbC1jb2xvci10YW5nZXJpbmUtMTAwOmhzbCgyNSwgMTAwJSwgODglKTstLWNkcy1nbG9iYWwtY29sb3ItdGFuZ2VyaW5lLTIwMDpoc2woMjUsIDk0JSwgNzglKTstLWNkcy1nbG9i'@; put 'YWwtY29sb3ItdGFuZ2VyaW5lLTMwMDpoc2woMjUsIDEwMCUsIDcyJSk7LS1jZHMtZ2xvYmFsLWNvbG9yLXRhbmdlcmluZS00MDA6aHNsKDI1LCAxMDAlLCA2MiUpOy0tY2RzLWdsb2JhbC1jb2xvci10YW5nZXJpbmUtNTAwOmhzbCgyNSwgMTAwJSwgNDglKTstLWNkcy1nbG9iYWwtY29sb3It'@; put 'dGFuZ2VyaW5lLTYwMDpoc2woMjUsIDEwMCUsIDQxJSk7LS1jZHMtZ2xvYmFsLWNvbG9yLXRhbmdlcmluZS03MDA6aHNsKDI1LCAxMDAlLCAzNCUpOy0tY2RzLWdsb2JhbC1jb2xvci10YW5nZXJpbmUtODAwOmhzbCgyNSwgMTAwJSwgMjUlKTstLWNkcy1nbG9iYWwtY29sb3ItdGFuZ2VyaW5l'@; put 'LTkwMDpoc2woMjUsIDEwMCUsIDE5JSk7LS1jZHMtZ2xvYmFsLWNvbG9yLXRhbmdlcmluZS0xMDAwOmhzbCgyNSwgMTAwJSwgMTUlKTstLWNkcy1nbG9iYWwtY29sb3ItbWFnZW50YS01MDpoc2woMzQ1LCAxMDAlLCA5NSUpOy0tY2RzLWdsb2JhbC1jb2xvci1tYWdlbnRhLTEwMDpoc2woMzQ1'@; put 'LCAxMDAlLCA4NyUpOy0tY2RzLWdsb2JhbC1jb2xvci1tYWdlbnRhLTIwMDpoc2woMzQ1LCAxMDAlLCA3OSUpOy0tY2RzLWdsb2JhbC1jb2xvci1tYWdlbnRhLTMwMDpoc2woMzQ1LCAxMDAlLCA3MCUpOy0tY2RzLWdsb2JhbC1jb2xvci1tYWdlbnRhLTQwMDpoc2woMzQ1LCAxMDAlLCA2MSUp'@; put 'Oy0tY2RzLWdsb2JhbC1jb2xvci1tYWdlbnRhLTUwMDpoc2woMzQ1LCA4MSUsIDUwJSk7LS1jZHMtZ2xvYmFsLWNvbG9yLW1hZ2VudGEtNjAwOmhzbCgzNDUsIDgzJSwgNDAlKTstLWNkcy1nbG9iYWwtY29sb3ItbWFnZW50YS03MDA6aHNsKDM0NSwgOTElLCAzMSUpOy0tY2RzLWdsb2JhbC1j'@; put 'b2xvci1tYWdlbnRhLTgwMDpoc2woMzQ1LCAxMDAlLCAyNCUpOy0tY2RzLWdsb2JhbC1jb2xvci1tYWdlbnRhLTkwMDpoc2woMzQ1LCAxMDAlLCAxOSUpOy0tY2RzLWdsb2JhbC1jb2xvci1tYWdlbnRhLTEwMDA6aHNsKDM0NSwgMTAwJSwgMTUlKTstLWNkcy1nbG9iYWwtY29sb3ItcGluay01'@; put 'MDpoc2woMzI0LCAxMDAlLCA5NyUpOy0tY2RzLWdsb2JhbC1jb2xvci1waW5rLTEwMDpoc2woMzI0LCA5NSUsIDkxJSk7LS1jZHMtZ2xvYmFsLWNvbG9yLXBpbmstMjAwOmhzbCgzMjQsIDg0JSwgODElKTstLWNkcy1nbG9iYWwtY29sb3ItcGluay0zMDA6aHNsKDMyNCwgNzglLCA3MCUpOy0t'@; put 'Y2RzLWdsb2JhbC1jb2xvci1waW5rLTQwMDpoc2woMzI0LCA3OCUsIDYyJSk7LS1jZHMtZ2xvYmFsLWNvbG9yLXBpbmstNTAwOmhzbCgzMjQsIDY0JSwgNTElKTstLWNkcy1nbG9iYWwtY29sb3ItcGluay02MDA6aHNsKDMyNCwgODAlLCAzOSUpOy0tY2RzLWdsb2JhbC1jb2xvci1waW5rLTcw'@; put 'MDpoc2woMzI0LCAxMDAlLCAzMCUpOy0tY2RzLWdsb2JhbC1jb2xvci1waW5rLTgwMDpoc2woMzI0LCAxMDAlLCAyNCUpOy0tY2RzLWdsb2JhbC1jb2xvci1waW5rLTkwMDpoc2woMzI0LCAxMDAlLCAxOCUpOy0tY2RzLWdsb2JhbC1jb2xvci1waW5rLTEwMDA6aHNsKDMyNCwgMTAwJSwgMTUl'@; put 'KTstLWNkcy1nbG9iYWwtY29sb3Itd2FybS1ncmF5LTUwOmhzbCgyODIsIDMlLCA5NyUpOy0tY2RzLWdsb2JhbC1jb2xvci13YXJtLWdyYXktMTAwOmhzbCgyODIsIDMlLCA5MiUpOy0tY2RzLWdsb2JhbC1jb2xvci13YXJtLWdyYXktMjAwOmhzbCgyODIsIDMlLCA4NCUpOy0tY2RzLWdsb2Jh'@; put 'bC1jb2xvci13YXJtLWdyYXktMzAwOmhzbCgyODIsIDMlLCA3NCUpOy0tY2RzLWdsb2JhbC1jb2xvci13YXJtLWdyYXktNDAwOmhzbCgyODIsIDMlLCA2MyUpOy0tY2RzLWdsb2JhbC1jb2xvci13YXJtLWdyYXktNTAwOmhzbCgyODIsIDMlLCA1NCUpOy0tY2RzLWdsb2JhbC1jb2xvci13YXJt'@; put 'LWdyYXktNjAwOmhzbCgyODIsIDMlLCA0MyUpOy0tY2RzLWdsb2JhbC1jb2xvci13YXJtLWdyYXktNzAwOmhzbCgyODIsIDMlLCAzNSUpOy0tY2RzLWdsb2JhbC1jb2xvci13YXJtLWdyYXktODAwOmhzbCgyODIsIDMlLCAyOCUpOy0tY2RzLWdsb2JhbC1jb2xvci13YXJtLWdyYXktOTAwOmhz'@; put 'bCgyODIsIDMlLCAyMCUpOy0tY2RzLWdsb2JhbC1jb2xvci13YXJtLWdyYXktMTAwMDpoc2woMjgyLCAzJSwgMTQlKTstLWNkcy1nbG9iYWwtY29sb3Itc2xhdGUtNTA6aHNsKDIzOCwgMjAlLCA5NiUpOy0tY2RzLWdsb2JhbC1jb2xvci1zbGF0ZS0xMDA6aHNsKDIzOCwgMjAlLCA5MSUpOy0t'@; put 'Y2RzLWdsb2JhbC1jb2xvci1zbGF0ZS0yMDA6aHNsKDIzOCwgMjAlLCA4MiUpOy0tY2RzLWdsb2JhbC1jb2xvci1zbGF0ZS0zMDA6aHNsKDIzOCwgMjAlLCA3MyUpOy0tY2RzLWdsb2JhbC1jb2xvci1zbGF0ZS00MDA6aHNsKDIzOCwgMjAlLCA2MyUpOy0tY2RzLWdsb2JhbC1jb2xvci1zbGF0'@; put 'ZS01MDA6aHNsKDIzOCwgMjMlLCA1NiUpOy0tY2RzLWdsb2JhbC1jb2xvci1zbGF0ZS02MDA6aHNsKDIzOCwgMjQlLCA0OSUpOy0tY2RzLWdsb2JhbC1jb2xvci1zbGF0ZS03MDA6aHNsKDIzOCwgMjglLCAzOCUpOy0tY2RzLWdsb2JhbC1jb2xvci1zbGF0ZS04MDA6aHNsKDIzOCwgMjglLCAy'@; put 'OSUpOy0tY2RzLWdsb2JhbC1jb2xvci1zbGF0ZS05MDA6aHNsKDIzOCwgMjglLCAyMiUpOy0tY2RzLWdsb2JhbC1jb2xvci1zbGF0ZS0xMDAwOmhzbCgyMzgsIDI4JSwgMTQlKTstLWNkcy1nbG9iYWwtY29sb3ItaWNlLTUwOmhzbCgyMTEsIDEwMCUsIDk3JSk7LS1jZHMtZ2xvYmFsLWNvbG9y'@; put 'LWljZS0xMDA6aHNsKDIxMSwgNTglLCA5MCUpOy0tY2RzLWdsb2JhbC1jb2xvci1pY2UtMjAwOmhzbCgyMTEsIDUzJSwgODElKTstLWNkcy1nbG9iYWwtY29sb3ItaWNlLTMwMDpoc2woMjExLCA0OSUsIDcwJSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWljZS00MDA6aHNsKDIxMSwgNDclLCA2MiUp'@; put 'Oy0tY2RzLWdsb2JhbC1jb2xvci1pY2UtNTAwOmhzbCgyMTEsIDQ3JSwgNTMlKTstLWNkcy1nbG9iYWwtY29sb3ItaWNlLTYwMDpoc2woMjExLCA1NiUsIDQ0JSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWljZS03MDA6aHNsKDIxMSwgNjklLCAzNCUpOy0tY2RzLWdsb2JhbC1jb2xvci1pY2UtODAw'@; put 'OmhzbCgyMTEsIDY5JSwgMjclKTstLWNkcy1nbG9iYWwtY29sb3ItaWNlLTkwMDpoc2woMjExLCAxMDAlLCAyMCUpOy0tY2RzLWdsb2JhbC1jb2xvci1pY2UtMTAwMDpoc2woMjExLCAxMDAlLCAxNCUpOy0tY2RzLWdsb2JhbC1jb2xvci1jb29sLWdyYXktNTA6aHNsKDIxMSwgMjAlLCA5NiUp'@; put 'Oy0tY2RzLWdsb2JhbC1jb2xvci1jb29sLWdyYXktMTAwOmhzbCgyMTEsIDIwJSwgOTAlKTstLWNkcy1nbG9iYWwtY29sb3ItY29vbC1ncmF5LTIwMDpoc2woMjExLCAyMCUsIDgxJSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWNvb2wtZ3JheS0zMDA6aHNsKDIxMSwgMjAlLCA3MiUpOy0tY2RzLWds'@; put 'b2JhbC1jb2xvci1jb29sLWdyYXktNDAwOmhzbCgyMTEsIDIwJSwgNjElKTstLWNkcy1nbG9iYWwtY29sb3ItY29vbC1ncmF5LTUwMDpoc2woMjExLCAyMCUsIDUzJSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWNvb2wtZ3JheS02MDA6aHNsKDIxMSwgMjAlLCA0NCUpOy0tY2RzLWdsb2JhbC1jb2xv'@; put 'ci1jb29sLWdyYXktNzAwOmhzbCgyMTEsIDIzJSwgMzYlKTstLWNkcy1nbG9iYWwtY29sb3ItY29vbC1ncmF5LTgwMDpoc2woMjExLCAzMCUsIDI4JSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWNvb2wtZ3JheS05MDA6aHNsKDIxMSwgNDAlLCAyMiUpOy0tY2RzLWdsb2JhbC1jb2xvci1jb29sLWdy'@; put 'YXktMTAwMDpoc2woMjExLCA2MyUsIDE0JSk7LS1jZHMtZ2xvYmFsLWNvbG9yLXRhbi01MDpoc2woNDEsIDIzJSwgOTYlKTstLWNkcy1nbG9iYWwtY29sb3ItdGFuLTEwMDpoc2woNDEsIDIyJSwgOTElKTstLWNkcy1nbG9iYWwtY29sb3ItdGFuLTIwMDpoc2woNDEsIDI3JSwgODIlKTstLWNk'@; put 'cy1nbG9iYWwtY29sb3ItdGFuLTMwMDpoc2woNDEsIDIzJSwgNjglKTstLWNkcy1nbG9iYWwtY29sb3ItdGFuLTQwMDpoc2woNDEsIDIzJSwgNTglKTstLWNkcy1nbG9iYWwtY29sb3ItdGFuLTUwMDpoc2woNDEsIDIwJSwgNDclKTstLWNkcy1nbG9iYWwtY29sb3ItdGFuLTYwMDpoc2woNDEs'@; put 'IDIwJSwgNDAlKTstLWNkcy1nbG9iYWwtY29sb3ItdGFuLTcwMDpoc2woNDEsIDIwJSwgMzIlKTstLWNkcy1nbG9iYWwtY29sb3ItdGFuLTgwMDpoc2woNDEsIDIzJSwgMjYlKTstLWNkcy1nbG9iYWwtY29sb3ItdGFuLTkwMDpoc2woNDEsIDIzJSwgMjElKTstLWNkcy1nbG9iYWwtY29sb3It'@; put 'dGFuLTEwMDA6aHNsKDQxLCAyMiUsIDE2JSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0yNTpoc2woMTk4LCAzMyUsIDk5JSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi01MDpoc2woMTk4LCAzNiUsIDk2JSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlv'@; put 'bi0xMDA6aHNsKDE5OCwgMjAlLCA5MSUpOy0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tMjAwOmhzbCgxOTgsIDE0JSwgODIlKTstLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTMwMDpoc2woMTk4LCAxMCUsIDcxJSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlv'@; put 'bi00MDA6aHNsKDE5OCwgOSUsIDU2JSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi01MDA6aHNsKDE5OCwgMTAlLCA0NiUpOy0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tNjAwOmhzbCgxOTgsIDE0JSwgMzYlKTstLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9u'@; put 'LTcwMDpoc2woMTk4LCAxOSUsIDI4JSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi04MDA6aHNsKDE5OCwgMjMlLCAyMyUpOy0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tOTAwOmhzbCgxOTgsIDI4JSwgMTglKTstLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9u'@; put 'LTEwMDA6aHNsKDE5OCwgMzAlLCAxNSUpOy0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tMTEwMDpoc2woMjAwLCAzMSUsIDEzJSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWdyYXktMDpoc2woMCwgMCUsIDEwMCUpOy0tY2RzLWdsb2JhbC1jb2xvci1ncmF5LTUwOmhzbCgwLCAwJSwgOTgl'@; put 'KTstLWNkcy1nbG9iYWwtY29sb3ItZ3JheS0xMDA6aHNsKDAsIDAlLCA5NSUpOy0tY2RzLWdsb2JhbC1jb2xvci1ncmF5LTIwMDpoc2woMCwgMCUsIDkxJSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWdyYXktMzAwOmhzbCgwLCAwJSwgODclKTstLWNkcy1nbG9iYWwtY29sb3ItZ3JheS00MDA6aHNs'@; put 'KDAsIDAlLCA4MCUpOy0tY2RzLWdsb2JhbC1jb2xvci1ncmF5LTUwMDpoc2woMCwgMCUsIDcwJSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWdyYXktNjAwOmhzbCgwLCAwJSwgNTUlKTstLWNkcy1nbG9iYWwtY29sb3ItZ3JheS03MDA6aHNsKDAsIDAlLCA0MCUpOy0tY2RzLWdsb2JhbC1jb2xvci1n'@; put 'cmF5LTgwMDpoc2woMCwgMCUsIDI3JSk7LS1jZHMtZ2xvYmFsLWNvbG9yLWdyYXktOTAwOmhzbCgwLCAwJSwgMjAlKTstLWNkcy1nbG9iYWwtY29sb3ItZ3JheS0xMDAwOmhzbCgwLCAwJSwgMCUpOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWNvbG9yLTEwMDp2YXIoLS1jZHMtZ2xvYmFsLWNv'@; put 'bG9yLXdoaXRlKTstLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1jb2xvci0yMDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tNjAwKTstLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1jb2xvci0zMDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tODAwKTstLWNk'@; put 'cy1nbG9iYWwtdHlwb2dyYXBoeS1jb2xvci00MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tOTAwKTstLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1jb2xvci00NTA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tMTAwMCk7LS1jZHMtZ2xvYmFsLXR5cG9n'@; put 'cmFwaHktY29sb3ItNTAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmxhY2spOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LWxpZ2h0OjMwMDstLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1mb250LXdlaWdodC1yZWd1bGFyOjQwMDstLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1m'@; put 'b250LXdlaWdodC1tZWRpdW06NTAwOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LXNlbWlib2xkOjYwMDstLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1mb250LXdlaWdodC1ib2xkOjYwMDstLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1mb250LXdlaWdodC1leHRyYWJvbGQ6NjAw'@; put 'Oy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWZvbnQtc2l6ZS0wOmNhbGMoMTAgKiB2YXIoLS1jZHMtaW50ZXJuYWwtc2NhbGUtMykpOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWZvbnQtc2l6ZS0xOmNhbGMoMTEgKiB2YXIoLS1jZHMtaW50ZXJuYWwtc2NhbGUtMykpOy0tY2RzLWdsb2JhbC10'@; put 'eXBvZ3JhcGh5LWZvbnQtc2l6ZS0yOmNhbGMoMTIgKiB2YXIoLS1jZHMtaW50ZXJuYWwtc2NhbGUtMykpOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWZvbnQtc2l6ZS0zOmNhbGMoMTMgKiB2YXIoLS1jZHMtaW50ZXJuYWwtc2NhbGUtMykpOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWZvbnQt'@; put 'c2l6ZS00OmNhbGMoMTQgKiB2YXIoLS1jZHMtaW50ZXJuYWwtc2NhbGUtMykpOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWZvbnQtc2l6ZS01OmNhbGMoMTYgKiB2YXIoLS1jZHMtaW50ZXJuYWwtc2NhbGUtMykpOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWZvbnQtc2l6ZS02OmNhbGMoMjAg'@; put 'KiB2YXIoLS1jZHMtaW50ZXJuYWwtc2NhbGUtMykpOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWZvbnQtc2l6ZS03OmNhbGMoMjQgKiB2YXIoLS1jZHMtaW50ZXJuYWwtc2NhbGUtMykpOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWZvbnQtc2l6ZS04OmNhbGMoMzIgKiB2YXIoLS1jZHMtaW50'@; put 'ZXJuYWwtc2NhbGUtMykpOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWZvbnQtc2l6ZS05OmNhbGMoNDAgKiB2YXIoLS1jZHMtaW50ZXJuYWwtc2NhbGUtMykpOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5OiJDbGFyaXR5IENpdHkiLCAiQXZlbmlyIE5leHQiLCBzYW5zLXNl'@; put 'cmlmOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWhlYWRlci1mb250LWZhbWlseToiQ2xhcml0eSBDaXR5IiwgIkF2ZW5pciBOZXh0Iiwgc2Fucy1zZXJpZjstLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1tb25vc3BhY2UtZm9udC1mYW1pbHk6dWktbW9ub3NwYWNlLCBDb25zb2xhcywgTWVubG8s'@; put 'IE1vbmFjbywgbW9ub3NwYWNlOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0Oi4xNDc1ZW07LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYXNjZW5kZXItaGVpZ2h0Oi4xNzAzZW07LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHkteC1oZWlnaHQ6LjUxN2VtOy0tY2RzLWdsb2Jh'@; put 'bC10eXBvZ3JhcGh5LWxpbmstY29sb3I6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTcwMCk7LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktbGluay1jb2xvci1ob3Zlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtODAwKTstLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1saW5rLWNvbG9y'@; put 'LXZpc2l0ZWQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1sYXZlbmRlci02MDApOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWxpbmstY29sb3ItdmlzaXRlZC1ob3Zlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWxhdmVuZGVyLTcwMCk7LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktbGluay1vbi1j'@; put 'b2xvcmJnOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmxhY2spOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWJvZHktZm9udC1zaXplOmNhbGMoMTQgKiB2YXIoLS1jZHMtaW50ZXJuYWwtc2NhbGUtMykpOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWJvZHktbGluZS1oZWlnaHQ6MS40Mjg1NzE0'@; put 'ZW07LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYm9keS1sZXR0ZXItc3BhY2luZzotLjAwNzE0Mjg2ZW07LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYm9keS1mb250LXdlaWdodDo0MDA7LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZGlzcGxheS1mb250LXNpemU6Y2FsYyg0MCAqIHZhcigtLWNk'@; put 'cy1pbnRlcm5hbC1zY2FsZS0zKSk7LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZGlzcGxheS1saW5lLWhlaWdodDoxLjFlbTstLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1kaXNwbGF5LWxldHRlci1zcGFjaW5nOi0uMDEyNWVtOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWRpc3BsYXktZm9udC13'@; put 'ZWlnaHQ6NTAwOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWhlYWRpbmctZm9udC1zaXplOmNhbGMoMzIgKiB2YXIoLS1jZHMtaW50ZXJuYWwtc2NhbGUtMykpOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWhlYWRpbmctbGluZS1oZWlnaHQ6MS4xMjVlbTstLWNkcy1nbG9iYWwtdHlwb2dyYXBo'@; put 'eS1oZWFkaW5nLWxldHRlci1zcGFjaW5nOi0uMDEyNWVtOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWhlYWRpbmctZm9udC13ZWlnaHQ6NTAwOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWhlYWRsaW5lLWZvbnQtc2l6ZTpjYWxjKDMyICogdmFyKC0tY2RzLWludGVybmFsLXNjYWxlLTMpKTst'@; put 'LWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1oZWFkbGluZS1saW5lLWhlaWdodDoxLjEyNWVtOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWhlYWRsaW5lLWxldHRlci1zcGFjaW5nOi0uMDEyNWVtOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWhlYWRsaW5lLWZvbnQtd2VpZ2h0OjUwMDstLWNkcy1n'@; put 'bG9iYWwtdHlwb2dyYXBoeS10aXRsZS1mb250LXNpemU6Y2FsYygyNCAqIHZhcigtLWNkcy1pbnRlcm5hbC1zY2FsZS0zKSk7LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdGl0bGUtbGluZS1oZWlnaHQ6MS4zMzMzMzNlbTstLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10aXRsZS1sZXR0ZXItc3Bh'@; put 'Y2luZzotLjAwODMzMzMzZW07LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdGl0bGUtZm9udC13ZWlnaHQ6NTAwOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY3Rpb24tZm9udC1zaXplOmNhbGMoMjAgKiB2YXIoLS1jZHMtaW50ZXJuYWwtc2NhbGUtMykpOy0tY2RzLWdsb2JhbC10eXBvZ3Jh'@; put 'cGh5LXNlY3Rpb24tbGluZS1oZWlnaHQ6MS4yZW07LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc2VjdGlvbi1sZXR0ZXItc3BhY2luZzotLjAxZW07LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc2VjdGlvbi1mb250LXdlaWdodDo1MDA7LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc3Vic2VjdGlv'@; put 'bi1mb250LXNpemU6Y2FsYygxNiAqIHZhcigtLWNkcy1pbnRlcm5hbC1zY2FsZS0zKSk7LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc3Vic2VjdGlvbi1saW5lLWhlaWdodDoxLjVlbTstLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zdWJzZWN0aW9uLWxldHRlci1zcGFjaW5nOi0uMDEyNWVtOy0t'@; put 'Y2RzLWdsb2JhbC10eXBvZ3JhcGh5LXN1YnNlY3Rpb24tZm9udC13ZWlnaHQ6NTAwOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LW1lc3NhZ2UtZm9udC1zaXplOmNhbGMoMTYgKiB2YXIoLS1jZHMtaW50ZXJuYWwtc2NhbGUtMykpOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LW1lc3NhZ2UtbGlu'@; put 'ZS1oZWlnaHQ6MS41ZW07LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktbWVzc2FnZS1sZXR0ZXItc3BhY2luZzotLjAxMjVlbTstLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1tZXNzYWdlLWZvbnQtd2VpZ2h0OmNhbGMoNDAwICogKDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UpKSk7LS1jZHMt'@; put 'Z2xvYmFsLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWZvbnQtc2l6ZTpjYWxjKDEzICogdmFyKC0tY2RzLWludGVybmFsLXNjYWxlLTMpKTstLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zZWNvbmRhcnktbGluZS1oZWlnaHQ6MS4yMzA3N2VtOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY29uZGFy'@; put 'eS1sZXR0ZXItc3BhY2luZzotLjAwNzY5MmVtOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY29uZGFyeS1mb250LXdlaWdodDo0MDA7LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktY2FwdGlvbi1mb250LXNpemU6Y2FsYygxMSAqIHZhcigtLWNkcy1pbnRlcm5hbC1zY2FsZS0zKSk7LS1jZHMt'@; put 'Z2xvYmFsLXR5cG9ncmFwaHktY2FwdGlvbi1saW5lLWhlaWdodDoxLjQ1NDU0NWVtOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWNhcHRpb24tbGV0dGVyLXNwYWNpbmc6LjAxODE4MmVtOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWNhcHRpb24tZm9udC13ZWlnaHQ6NDAwOy0tY2RzLWdsb2Jh'@; put 'bC10eXBvZ3JhcGh5LXNtYWxsY2FwdGlvbi1mb250LXNpemU6Y2FsYygxMCAqIHZhcigtLWNkcy1pbnRlcm5hbC1zY2FsZS0zKSk7LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc21hbGxjYXB0aW9uLWxpbmUtaGVpZ2h0OjEuMmVtOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNtYWxsY2FwdGlv'@; put 'bi1sZXR0ZXItc3BhY2luZzouMDVlbTstLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zbWFsbGNhcHRpb24tZm9udC13ZWlnaHQ6NTAwOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWluZm8taG92ZXI6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTgwMCk7LS1jZHMtZ2xvYmFsLXR5cG9ncmFw'@; put 'aHktc3VjY2Vzcy1ob3Zlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWdyZWVuLTgwMCk7LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktd2FybmluZy1ob3Zlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLW9jaHJlLTkwMCk7LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZGFuZ2VyLWhvdmVyOnZhcigt'@; put 'LWNkcy1nbG9iYWwtY29sb3ItcmVkLTgwMCk7LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktbmV1dHJhbC1ob3Zlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi03MDApOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWRpc2FibGVkOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29u'@; put 'c3RydWN0aW9uLTUwMCk7LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZGlzYWJsZWQtYnV0dG9uOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTUwMCk7LS1jZHMtZ2xvYmFsLWFuaW1hdGlvbi1kdXJhdGlvbi1pbnN0YW50OjBzOy0tY2RzLWdsb2JhbC1hbmltYXRpb24tZHVy'@; put 'YXRpb24tcXVpY2tlc3Q6LjFzOy0tY2RzLWdsb2JhbC1hbmltYXRpb24tZHVyYXRpb24tcXVpY2tlcjouMTVzOy0tY2RzLWdsb2JhbC1hbmltYXRpb24tZHVyYXRpb24tcXVpY2s6LjJzOy0tY2RzLWdsb2JhbC1hbmltYXRpb24tZHVyYXRpb24tc2Vjb25kYXJ5Oi4zczstLWNkcy1nbG9iYWwt'@; put 'YW5pbWF0aW9uLWR1cmF0aW9uLXByaW1hcnk6LjRzOy0tY2RzLWdsb2JhbC1hbmltYXRpb24tZHVyYXRpb24tc2xvdzouNXM7LS1jZHMtZ2xvYmFsLWFuaW1hdGlvbi1kdXJhdGlvbi1zbG93ZXI6LjdzOy0tY2RzLWdsb2JhbC1hbmltYXRpb24tZHVyYXRpb24tc2xvd2VzdDouOHM7LS1jZHMt'@; put 'Z2xvYmFsLWFuaW1hdGlvbi1lYXNpbmctcHJpbWFyeTpjdWJpYy1iZXppZXIoMCwuOTksMCwuOTkpOy0tY2RzLWdsb2JhbC1hbmltYXRpb24tZWFzaW5nLXNlY29uZGFyeTpjdWJpYy1iZXppZXIoMCwgMS41LCAuNSwgMSk7LS1jZHMtZ2xvYmFsLWFuaW1hdGlvbi1lYXNpbmctbG9vcDpjdWJp'@; put 'Yy1iZXppZXIoLjE3LCAuNCwgLjgsIC43OSk7LS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1yYWRpdXMtMTAwOmNhbGMoNCAqICgxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpOy0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItcmFkaXVzLTIwMDpjYWxjKDEyICogKDFyZW0gLyB2YXIo'@; put 'LS1jZHMtZ2xvYmFsLWJhc2UpKSk7LS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1yYWRpdXMtMzAwOjUwJTstLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTEwMDpjYWxjKDEgKiAoMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTstLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVy'@; put 'LXdpZHRoLTIwMDpjYWxjKDIgKiAoMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTstLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTMwMDpjYWxjKDMgKiAoMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTstLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTQw'@; put 'MDpjYWxjKDQgKiAoMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTstLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLWNvbG9yOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTIwMCk7LS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1jb2xvci10aW50OnZhcigtLWNkcy1n'@; put 'bG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTEwMCk7LS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1jb2xvci1zaGFkZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0zMDApOy0tY2RzLWFsaWFzLW9iamVjdC1zaGFkb3ctMTAwOjAgY2FsYygoMSAvIHZhcigtLWNkcy1nbG9i'@; put 'YWwtYmFzZSwgMjApKSAqIDFyZW0pIGNhbGMoKDMgLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsIDIwKSkgKiAxcmVtKSAwIGhzbGEoMTk4LCAzMCUsIDE1JSwgLjUpOy0tY2RzLWFsaWFzLW9iamVjdC1zaGFkb3ctMjAwOjAgY2FsYygoMSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwgMjApKSAq'@; put 'IDFyZW0pIGNhbGMoKDMgLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsIDIwKSkgKiAxcmVtKSAwIGhzbGEoMTk4LCAzMCUsIDE1JSwgLjMpOy0tY2RzLWFsaWFzLW9iamVjdC1zaGFkb3ctMzAwOjAgY2FsYygoMSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwgMjApKSAqIDFyZW0pIGNhbGMoKDMg'@; put 'LyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsIDIwKSkgKiAxcmVtKSAwIGhzbGEoMTk4LCAzMCUsIDE1JSwgLjIpOy0tY2RzLWFsaWFzLW9iamVjdC1vcGFjaXR5LTA6aHNsYSgwLCAwJSwgMCUsIDApOy0tY2RzLWFsaWFzLW9iamVjdC1vcGFjaXR5LTEwMDpoc2xhKDAsIDAlLCAwJSwgLjIpOy0t'@; put 'Y2RzLWFsaWFzLW9iamVjdC1vcGFjaXR5LTIwMDpoc2xhKDAsIDAlLCAwJSwgLjQpOy0tY2RzLWFsaWFzLW9iamVjdC1vcGFjaXR5LTMwMDpoc2xhKDAsIDAlLCAwJSwgLjYpOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1vdXRsaW5lOkhpZ2hsaWdodCBzb2xpZCAycHg7LS1jZHMt'@; put 'YWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLW91dGxpbmUtd2Via2l0OjVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tb3V0bGluZS1vZmZzZXQ6MXB4Oy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi10b3VjaC10YXJn'@; put 'ZXQ6Y2FsYygzNiAqICgxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1ib3JkZXItY29sb3I6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tNTAwKTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFj'@; put 'a2dyb3VuZDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXdoaXRlKTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1ob3Zlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi01MCk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91'@; put 'bmQtYWN0aXZlOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTEwMCk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtc2VsZWN0ZWQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTc1KTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24t'@; put 'YmFja2dyb3VuZC1zZWxlY3RlZC1ob3Zlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0xMDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLXNlbGVjdGVkLWFjdGl2ZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0yMDAp'@; put 'Oy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLWRpc2FibGVkOnZhcigtLWNkcy1nbG9iYWwtY29sb3Itd2hpdGUpOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLWhpZ2hsaWdodDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtNzAw'@; put 'KTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1zaGFkZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvb2wtZ3JheS01MCk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtc2hhZGUtaG92ZXI6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1j'@; put 'b25zdHJ1Y3Rpb24tMTAwKTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1zaGFkZS1hY3RpdmU6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTc1KTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1zaGFkZS1zZWxlY3RlZDp2YXIo'@; put 'LS1jZHMtZ2xvYmFsLWNvbG9yLXdoaXRlKTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1zaGFkZS1zZWxlY3RlZC1ob3Zlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0xMDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNr'@; put 'Z3JvdW5kLXNoYWRlLXNlbGVjdGVkLWFjdGl2ZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0yMDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi03MDApOy0tY2RzLWFsaWFzLW9iamVj'@; put 'dC1pbnRlcmFjdGlvbi1jb2xvci1ob3Zlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0xMDAwKTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tY29sb3ItYWN0aXZlOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTEwMDApOy0tY2RzLWFsaWFz'@; put 'LW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvci1zZWxlY3RlZDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi03MDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvci1kaXNhYmxlZDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0zMDApOy0t'@; put 'Y2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1pbmZvLWhvdmVyOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS04MDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1pbmZvLWNsaWNrOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS05MDApOy0tY2RzLWFsaWFzLW9iamVj'@; put 'dC1pbnRlcmFjdGlvbi1pbmZvLWFjdGl2ZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtOTAwKTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24taW5mby1zZWxlY3RlZDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtOTAwKTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rp'@; put 'b24taW5mby1zZWNvbmRhcnktaG92ZXI6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTUwKTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tc3VjY2Vzcy1ob3Zlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWdyZWVuLTgwMCk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9u'@; put 'LXN1Y2Nlc3MtY2xpY2s6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ncmVlbi05MDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1zdWNjZXNzLWFjdGl2ZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWdyZWVuLTkwMCk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLXN1Y2Nl'@; put 'c3Mtc2Vjb25kYXJ5LWhvdmVyOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItZ3JlZW4tNTApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi13YXJuaW5nLWhvdmVyOnZhcigtLWNkcy1nbG9iYWwtY29sb3Itb2NocmUtNjAwKTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24td2Fy'@; put 'bmluZy1jbGljazp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWdyZWVuLTkwMCk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLXdhcm5pbmctYWN0aXZlOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItZ3JlZW4tOTAwKTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24td2FybmluZy1z'@; put 'ZWNvbmRhcnktaG92ZXI6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1vY2hyZS01MCk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWRhbmdlci1ob3Zlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXJlZC04MDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1kYW5nZXItY2xp'@; put 'Y2s6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1yZWQtOTAwKTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tZGFuZ2VyLWFjdGl2ZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXJlZC05MDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1kYW5nZXItc2Vjb25kYXJ5LWhvdmVy'@; put 'OnZhcigtLWNkcy1nbG9iYWwtY29sb3ItcmVkLTUwKTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tbmV1dHJhbC1ob3Zlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi03MDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1uZXV0cmFsLWNsaWNrOnZh'@; put 'cigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTgwMCk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLW5ldXRyYWwtYWN0aXZlOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTgwMCk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLW5ldXRyYWwt'@; put 'c2Vjb25kYXJ5LWhvdmVyOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTUwKTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24taW52ZXJzZS1ob3Zlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi02MDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRl'@; put 'cmFjdGlvbi1pbnZlcnNlLWNsaWNrOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTgwMCk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWludmVyc2UtYWN0aXZlOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTgwMCk7LS1jZHMtYWxpYXMtb2Jq'@; put 'ZWN0LWFwcC1iYWNrZ3JvdW5kOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTI1KTstLWNkcy1hbGlhcy1vYmplY3Qtb3ZlcmxheS1iYWNrZ3JvdW5kOnZhcigtLWNkcy1nbG9iYWwtY29sb3Itd2hpdGUpOy0tY2RzLWFsaWFzLW9iamVjdC1vdmVybGF5LWJhY2tkcm9wLWJh'@; put 'Y2tncm91bmQ6aHNsYSgwLCAwJSwgMCUsIC42KTstLWNkcy1hbGlhcy1vYmplY3QtY29udGFpbmVyLWJhY2tncm91bmQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci13aGl0ZSk7LS1jZHMtYWxpYXMtb2JqZWN0LWNvbnRhaW5lci1iYWNrZ3JvdW5kLXRpbnQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xv'@; put 'ci1jb25zdHJ1Y3Rpb24tNTApOy0tY2RzLWFsaWFzLW9iamVjdC1jb250YWluZXItYmFja2dyb3VuZC1zaGFkZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0xMDApOy0tY2RzLWFsaWFzLW9iamVjdC1jb250YWluZXItYmFja2dyb3VuZC1kYXJrOnZhcigtLWNkcy1nbG9i'@; put 'YWwtY29sb3ItY29vbC1ncmF5LTUwKTstLWNkcy1hbGlhcy1vYmplY3QtY29udGFpbmVyLWJhY2tncm91bmQtaW52ZXJzZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi02MDApOy0tY2RzLWFsaWFzLW9iamVjdC1jb250YWluZXItYmFja2dyb3VuZC1pbnZlcnNlLXRpbnQ6'@; put 'dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tODAwKTstLWNkcy1hbGlhcy1vYmplY3QtY29udGFpbmVyLWJhY2tncm91bmQtaW52ZXJzZS1zaGFkZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi01MDApOy0tY2RzLWFsaWFzLW9iamVjdC1jb250YWluZXIt'@; put 'YmFja2Ryb3AtYmFja2dyb3VuZDpoc2xhKDAsIDAlLCAxMDAlLCAuNik7LS1jZHMtYWxpYXMtb2JqZWN0LWNvbnRhaW5lci1ib3JkZXItY29sb3I6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tMjAwKTstLWNkcy1hbGlhcy1zdGF0dXMtaW5mbzp2YXIoLS1jZHMtZ2xvYmFs'@; put 'LWNvbG9yLWJsdWUtNzAwKTstLWNkcy1hbGlhcy1zdGF0dXMtaW5mby10aW50OnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS01MCk7LS1jZHMtYWxpYXMtc3RhdHVzLWluZm8tc2hhZGU6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTgwMCk7LS1jZHMtYWxpYXMtc3RhdHVzLXN1Y2Nl'@; put 'c3M6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ncmVlbi03MDApOy0tY2RzLWFsaWFzLXN0YXR1cy1zdWNjZXNzLXRpbnQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ncmVlbi01MCk7LS1jZHMtYWxpYXMtc3RhdHVzLXN1Y2Nlc3Mtc2hhZGU6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ncmVlbi04'@; put 'MDApOy0tY2RzLWFsaWFzLXN0YXR1cy13YXJuaW5nOnZhcigtLWNkcy1nbG9iYWwtY29sb3Itb2NocmUtNTAwKTstLWNkcy1hbGlhcy1zdGF0dXMtd2FybmluZy10aW50OnZhcigtLWNkcy1nbG9iYWwtY29sb3Itb2NocmUtMTAwKTstLWNkcy1hbGlhcy1zdGF0dXMtd2FybmluZy1zaGFkZTp2'@; put 'YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLW9jaHJlLTYwMCk7LS1jZHMtYWxpYXMtc3RhdHVzLXdhcm5pbmctZGFyazp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLW9jaHJlLTgwMCk7LS1jZHMtYWxpYXMtc3RhdHVzLWRhbmdlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXJlZC03MDApOy0tY2RzLWFs'@; put 'aWFzLXN0YXR1cy1kYW5nZXItdGludDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXJlZC01MCk7LS1jZHMtYWxpYXMtc3RhdHVzLWRhbmdlci1zaGFkZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXJlZC04MDApOy0tY2RzLWFsaWFzLXN0YXR1cy1kYW5nZXItZGFyazp2YXIoLS1jZHMtZ2xvYmFs'@; put 'LWNvbG9yLXJlZC05MDApOy0tY2RzLWFsaWFzLXN0YXR1cy1uZXV0cmFsOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTYwMCk7LS1jZHMtYWxpYXMtc3RhdHVzLW5ldXRyYWwtdGludDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi01MCk7LS1jZHMtYWxp'@; put 'YXMtc3RhdHVzLW5ldXRyYWwtc2hhZGU6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tNzAwKTstLWNkcy1hbGlhcy1zdGF0dXMtZGlzYWJsZWQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tMzAwKTstLWNkcy1hbGlhcy1zdGF0dXMtZGlzYWJsZWQtdGlu'@; put 'dDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0yMDApOy0tY2RzLWFsaWFzLXN0YXR1cy1kaXNhYmxlZC1zaGFkZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi00MDApOy0tY2RzLWFsaWFzLXN0YXR1cy1hbHQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci12'@; put 'aW9sZXQtNzAwKTstLWNkcy1hbGlhcy1zdGF0dXMtYWx0LXRpbnQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci12aW9sZXQtNjAwKTstLWNkcy1hbGlhcy1zdGF0dXMtYWx0LXNoYWRlOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItdmlvbGV0LTkwMCk7LS1jZHMtYWxpYXMtdXRpbGl0eS1ncmF5OnZh'@; put 'cigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTYwMCk7LS1jZHMtYWxpYXMtdXRpbGl0eS1ncmF5LXRpbnQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tNTApOy0tY2RzLWFsaWFzLXV0aWxpdHktZ3JheS1zaGFkZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNv'@; put 'bnN0cnVjdGlvbi03MDApOy0tY2RzLWFsaWFzLXV0aWxpdHktYmx1ZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtNzAwKTstLWNkcy1hbGlhcy11dGlsaXR5LWJsdWUtdGludDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtNTApOy0tY2RzLWFsaWFzLXV0aWxpdHktYmx1ZS1zaGFk'@; put 'ZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtODAwKTstLWNkcy1hbGlhcy11dGlsaXR5LWxpZ2h0LWJsdWU6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTMwMCk7LS1jZHMtYWxpYXMtdXRpbGl0eS1saWdodC1ibHVlLXRpbnQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTUw'@; put 'KTstLWNkcy1hbGlhcy11dGlsaXR5LWxpZ2h0LWJsdWUtc2hhZGU6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTYwMCk7LS1jZHMtYWxpYXMtdXRpbGl0eS1kYXJrLWJsdWU6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1henVyZS04MDApOy0tY2RzLWFsaWFzLXV0aWxpdHktZGFyay1ibHVl'@; put 'LXRpbnQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1henVyZS01MCk7LS1jZHMtYWxpYXMtdXRpbGl0eS1kYXJrLWJsdWUtc2hhZGU6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1henVyZS0xMDAwKTstLWNkcy1hbGlhcy11dGlsaXR5LWdyZWVuOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItZ3JlZW4t'@; put 'NzAwKTstLWNkcy1hbGlhcy11dGlsaXR5LWdyZWVuLXRpbnQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ncmVlbi01MCk7LS1jZHMtYWxpYXMtdXRpbGl0eS1ncmVlbi1zaGFkZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWdyZWVuLTgwMCk7LS1jZHMtYWxpYXMtdXRpbGl0eS15ZWxsb3c6dmFy'@; put 'KC0tY2RzLWdsb2JhbC1jb2xvci1vY2hyZS01MDApOy0tY2RzLWFsaWFzLXV0aWxpdHkteWVsbG93LXRpbnQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1vY2hyZS0xMDApOy0tY2RzLWFsaWFzLXV0aWxpdHkteWVsbG93LXNoYWRlOnZhcigtLWNkcy1nbG9iYWwtY29sb3Itb2NocmUtNzAwKTst'@; put 'LWNkcy1hbGlhcy11dGlsaXR5LXJlZDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXJlZC03MDApOy0tY2RzLWFsaWFzLXV0aWxpdHktcmVkLXRpbnQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1yZWQtNTApOy0tY2RzLWFsaWFzLXV0aWxpdHktcmVkLXNoYWRlOnZhcigtLWNkcy1nbG9iYWwtY29s'@; put 'b3ItcmVkLTgwMCk7LS1jZHMtYWxpYXMtdXRpbGl0eS10YW5nZXJpbmU6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci10YW5nZXJpbmUtNDAwKTstLWNkcy1hbGlhcy11dGlsaXR5LXRhbmdlcmluZS10aW50OnZhcigtLWNkcy1nbG9iYWwtY29sb3ItdGFuZ2VyaW5lLTUwKTstLWNkcy1hbGlhcy11'@; put 'dGlsaXR5LXRhbmdlcmluZS1zaGFkZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXRhbmdlcmluZS02MDApOy0tY2RzLWFsaWFzLXV0aWxpdHktdmlvbGV0OnZhcigtLWNkcy1nbG9iYWwtY29sb3ItdmlvbGV0LTYwMCk7LS1jZHMtYWxpYXMtdXRpbGl0eS12aW9sZXQtdGludDp2YXIoLS1jZHMt'@; put 'Z2xvYmFsLWNvbG9yLXZpb2xldC01MCk7LS1jZHMtYWxpYXMtdXRpbGl0eS12aW9sZXQtc2hhZGU6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci12aW9sZXQtODAwKTstLWNkcy1hbGlhcy12aXotYm9yZGVyOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTExMDApOy0tY2RzLWFs'@; put 'aWFzLXZpei1nZW5lcmFsLTE6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTYwMCk7LS1jZHMtYWxpYXMtdml6LWdlbmVyYWwtMS1ibHVlOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS02MDApOy0tY2RzLWFsaWFzLXZpei1nZW5lcmFsLTI6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci12'@; put 'aW9sZXQtNzAwKTstLWNkcy1hbGlhcy12aXotZ2VuZXJhbC0yLXZpb2xldDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXZpb2xldC02MDApOy0tY2RzLWFsaWFzLXZpei1nZW5lcmFsLTM6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1hcXVhLTgwMCk7LS1jZHMtYWxpYXMtdml6LWdlbmVyYWwtMy1h'@; put 'cXVhOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYXF1YS04MDApOy0tY2RzLWFsaWFzLXZpei1nZW5lcmFsLTQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1sYXZlbmRlci00MDApOy0tY2RzLWFsaWFzLXZpei1nZW5lcmFsLTQtbGltZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWxpbWUtNzAwKTst'@; put 'LWNkcy1hbGlhcy12aXotZ2VuZXJhbC01OnZhcigtLWNkcy1nbG9iYWwtY29sb3ItcGluay01MDApOy0tY2RzLWFsaWFzLXZpei1nZW5lcmFsLTUtYmx1ZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtODAwKTstLWNkcy1hbGlhcy12aXotZ2VuZXJhbC02OnZhcigtLWNkcy1nbG9iYWwt'@; put 'Y29sb3ItbGltZS03MDApOy0tY2RzLWFsaWFzLXZpei1nZW5lcmFsLTYtYXF1YTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWFxdWEtMTAwMCk7LS1jZHMtYWxpYXMtdml6LWdlbmVyYWwtNzp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWxhdmVuZGVyLTcwMCk7LS1jZHMtYWxpYXMtdml6LWdlbmVy'@; put 'YWwtNy12aW9sZXQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci12aW9sZXQtODAwKTstLWNkcy1hbGlhcy12aXotZ2VuZXJhbC04OnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYXF1YS02MDApOy0tY2RzLWFsaWFzLXZpei1nZW5lcmFsLTgtbGltZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWxpbWUt'@; put 'OTAwKTstLWNkcy1hbGlhcy12aXotZ2VuZXJhbC05OnZhcigtLWNkcy1nbG9iYWwtY29sb3ItbGltZS04MDApOy0tY2RzLWFsaWFzLXZpei1nZW5lcmFsLTktYmx1ZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtNzAwKTstLWNkcy1hbGlhcy12aXotZ2VuZXJhbC0xMDp2YXIoLS1jZHMt'@; put 'Z2xvYmFsLWNvbG9yLXZpb2xldC02MDApOy0tY2RzLWFsaWFzLXZpei1nZW5lcmFsLTEwLWxpbWU6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1saW1lLTEwMDApOy0tY2RzLWFsaWFzLXZpei1nZW5lcmFsLTExOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItamFkZS02MDApOy0tY2RzLWFsaWFzLXZp'@; put 'ei1nZW5lcmFsLTExLWFxdWE6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1hcXVhLTYwMCk7LS1jZHMtYWxpYXMtdml6LWdlbmVyYWwtMTI6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1henVyZS04MDApOy0tY2RzLWFsaWFzLXZpei1nZW5lcmFsLTEyLXZpb2xldDp2YXIoLS1jZHMtZ2xvYmFsLWNv'@; put 'bG9yLXZpb2xldC0xMDAwKTstLWNkcy1hbGlhcy12aXotZ2VuZXJhbC0xMzp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXZpb2xldC00MDApOy0tY2RzLWFsaWFzLXZpei1nZW5lcmFsLTEzLXZpb2xldDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXZpb2xldC03MDApOy0tY2RzLWFsaWFzLXZpei1n'@; put 'ZW5lcmFsLTE0OnZhcigtLWNkcy1nbG9iYWwtY29sb3ItZ3JlZW4tNzAwKTstLWNkcy1hbGlhcy12aXotZ2VuZXJhbC0xNC1ibHVlOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS0xMDAwKTstLWNkcy1hbGlhcy12aXotZ2VuZXJhbC0xNTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXBpbmst'@; put 'NzAwKTstLWNkcy1hbGlhcy12aXotZ2VuZXJhbC0xNS1hcXVhOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYXF1YS03MDApOy0tY2RzLWFsaWFzLXZpei1nZW5lcmFsLTE2OnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYXp1cmUtNjAwKTstLWNkcy1hbGlhcy12aXotZ2VuZXJhbC0xNi1saW1lOnZh'@; put 'cigtLWNkcy1nbG9iYWwtY29sb3ItbGltZS04MDApOy0tY2RzLWFsaWFzLXZpei1zZXZlcml0eS1uZXV0cmFsOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTYwMCk7LS1jZHMtYWxpYXMtdml6LXNldmVyaXR5LXN1Y2Nlc3M6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ncmVl'@; put 'bi03MDApOy0tY2RzLWFsaWFzLXZpei1zZXZlcml0eS13YXJuaW5nOnZhcigtLWNkcy1nbG9iYWwtY29sb3IteWVsbG93LTcwMCk7LS1jZHMtYWxpYXMtdml6LXNldmVyaXR5LXdhcm5pbmctbGlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci15ZWxsb3ctNDAwKTstLWNkcy1hbGlhcy12aXot'@; put 'c2V2ZXJpdHktaW1tZWRpYXRlOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItdGFuZ2VyaW5lLTQwMCk7LS1jZHMtYWxpYXMtdml6LXNldmVyaXR5LWNyaXRpY2FsOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItcmVkLTcwMCk7LS1jZHMtYWxpYXMtdml6LXNldmVyaXR5LWZyZWUtc3BhY2UtZmlsbDp2'@; put 'YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0xMDApOy0tY2RzLWFsaWFzLXZpei1zZXZlcml0eS1mcmVlLXNwYWNlLWJvcmRlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi00MDApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50aWFsLWJsdWUtNTA6dmFyKC0t'@; put 'Y2RzLWdsb2JhbC1jb2xvci1ibHVlLTUwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1ibHVlLTEwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtMTAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1ibHVlLTIwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtMjAwKTst'@; put 'LWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1ibHVlLTMwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtMzAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1ibHVlLTQwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtNDAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1i'@; put 'bHVlLTUwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtNTAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1ibHVlLTYwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtNjAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1ibHVlLTcwMDp2YXIoLS1jZHMtZ2xvYmFsLWNv'@; put 'bG9yLWJsdWUtNzAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1ibHVlLTgwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtODAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1ibHVlLTkwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtOTAwKTstLWNkcy1hbGlhcy12'@; put 'aXotc2VxdWVudGlhbC1ibHVlLTEwMDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTEwMDApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50aWFsLXZpb2xldC01MDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXZpb2xldC01MCk7LS1jZHMtYWxpYXMtdml6LXNlcXVlbnRpYWwtdmlvbGV0LTEw'@; put 'MDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXZpb2xldC0xMDApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50aWFsLXZpb2xldC0yMDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci12aW9sZXQtMjAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC12aW9sZXQtMzAwOnZhcigtLWNkcy1nbG9iYWwt'@; put 'Y29sb3ItdmlvbGV0LTMwMCk7LS1jZHMtYWxpYXMtdml6LXNlcXVlbnRpYWwtdmlvbGV0LTQwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXZpb2xldC00MDApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50aWFsLXZpb2xldC01MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci12aW9sZXQtNTAwKTst'@; put 'LWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC12aW9sZXQtNjAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItdmlvbGV0LTYwMCk7LS1jZHMtYWxpYXMtdml6LXNlcXVlbnRpYWwtdmlvbGV0LTcwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXZpb2xldC03MDApOy0tY2RzLWFsaWFzLXZpei1zZXF1'@; put 'ZW50aWFsLXZpb2xldC04MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci12aW9sZXQtODAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC12aW9sZXQtOTAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItdmlvbGV0LTkwMCk7LS1jZHMtYWxpYXMtdml6LXNlcXVlbnRpYWwtdmlvbGV0LTEwMDA6'@; put 'dmFyKC0tY2RzLWdsb2JhbC1jb2xvci12aW9sZXQtMTAwMCk7LS1jZHMtYWxpYXMtdml6LXNlcXVlbnRpYWwtb2NocmUtNTA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1vY2hyZS01MCk7LS1jZHMtYWxpYXMtdml6LXNlcXVlbnRpYWwtb2NocmUtMTAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3It'@; put 'b2NocmUtMTAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1vY2hyZS0yMDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1vY2hyZS0yMDApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50aWFsLW9jaHJlLTMwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLW9jaHJlLTMwMCk7LS1jZHMtYWxpYXMt'@; put 'dml6LXNlcXVlbnRpYWwtb2NocmUtNDAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3Itb2NocmUtNDAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1vY2hyZS01MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1vY2hyZS01MDApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50aWFsLW9jaHJlLTYw'@; put 'MDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLW9jaHJlLTYwMCk7LS1jZHMtYWxpYXMtdml6LXNlcXVlbnRpYWwtb2NocmUtNzAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3Itb2NocmUtNzAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1vY2hyZS04MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xv'@; put 'ci1vY2hyZS04MDApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50aWFsLW9jaHJlLTkwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLW9jaHJlLTkwMCk7LS1jZHMtYWxpYXMtdml6LXNlcXVlbnRpYWwtb2NocmUtMTAwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLW9jaHJlLTEwMDApOy0tY2RzLWFs'@; put 'aWFzLXZpei1zZXF1ZW50aWFsLWFxdWEtNTA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1hcXVhLTUwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1hcXVhLTEwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWFxdWEtMTAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1hcXVhLTIwMDp2'@; put 'YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWFxdWEtMjAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1hcXVhLTMwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWFxdWEtMzAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1hcXVhLTQwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWFxdWEt'@; put 'NDAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1hcXVhLTUwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWFxdWEtNTAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1hcXVhLTYwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWFxdWEtNjAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVu'@; put 'dGlhbC1hcXVhLTcwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWFxdWEtNzAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1hcXVhLTgwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWFxdWEtODAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1hcXVhLTkwMDp2YXIoLS1jZHMtZ2xv'@; put 'YmFsLWNvbG9yLWFxdWEtOTAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1hcXVhLTEwMDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1hcXVhLTEwMDApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50aWFsLWdyZWVuLTUwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItZ3JlZW4tNTApOy0tY2Rz'@; put 'LWFsaWFzLXZpei1zZXF1ZW50aWFsLWdyZWVuLTEwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWdyZWVuLTEwMCk7LS1jZHMtYWxpYXMtdml6LXNlcXVlbnRpYWwtZ3JlZW4tMjAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItZ3JlZW4tMjAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1n'@; put 'cmVlbi0zMDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ncmVlbi0zMDApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50aWFsLWdyZWVuLTQwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWdyZWVuLTQwMCk7LS1jZHMtYWxpYXMtdml6LXNlcXVlbnRpYWwtZ3JlZW4tNTAwOnZhcigtLWNkcy1nbG9i'@; put 'YWwtY29sb3ItZ3JlZW4tNTAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1ncmVlbi02MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ncmVlbi02MDApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50aWFsLWdyZWVuLTcwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWdyZWVuLTcwMCk7LS1j'@; put 'ZHMtYWxpYXMtdml6LXNlcXVlbnRpYWwtZ3JlZW4tODAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItZ3JlZW4tODAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1ncmVlbi05MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ncmVlbi05MDApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50aWFs'@; put 'LWdyZWVuLTEwMDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ncmVlbi0xMDAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1yZWQtNTA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1yZWQtNTApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50aWFsLXJlZC0xMDA6dmFyKC0tY2RzLWdsb2JhbC1j'@; put 'b2xvci1yZWQtMTAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1yZWQtMjAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItcmVkLTIwMCk7LS1jZHMtYWxpYXMtdml6LXNlcXVlbnRpYWwtcmVkLTMwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXJlZC0zMDApOy0tY2RzLWFsaWFzLXZpei1z'@; put 'ZXF1ZW50aWFsLXJlZC00MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1yZWQtNDAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1yZWQtNTAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItcmVkLTUwMCk7LS1jZHMtYWxpYXMtdml6LXNlcXVlbnRpYWwtcmVkLTYwMDp2YXIoLS1jZHMtZ2xv'@; put 'YmFsLWNvbG9yLXJlZC02MDApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50aWFsLXJlZC03MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1yZWQtNzAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1yZWQtODAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItcmVkLTgwMCk7LS1jZHMtYWxpYXMt'@; put 'dml6LXNlcXVlbnRpYWwtcmVkLTkwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXJlZC05MDApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50aWFsLXJlZC0xMDAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItcmVkLTEwMDApOy0tY2RzLWFsaWFzLXZpei1kaXZlcmdpbmctdmlvbGV0LWFxdWEtdi0y'@; put 'MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci12aW9sZXQtMjAwKTstLWNkcy1hbGlhcy12aXotZGl2ZXJnaW5nLXZpb2xldC1hcXVhLXYtMzAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItdmlvbGV0LTMwMCk7LS1jZHMtYWxpYXMtdml6LWRpdmVyZ2luZy12aW9sZXQtYXF1YS12LTQwMDp2YXIo'@; put 'LS1jZHMtZ2xvYmFsLWNvbG9yLXZpb2xldC00MDApOy0tY2RzLWFsaWFzLXZpei1kaXZlcmdpbmctdmlvbGV0LWFxdWEtdi01MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci12aW9sZXQtNTAwKTstLWNkcy1hbGlhcy12aXotZGl2ZXJnaW5nLXZpb2xldC1hcXVhLXYtNjAwOnZhcigtLWNkcy1n'@; put 'bG9iYWwtY29sb3ItdmlvbGV0LTYwMCk7LS1jZHMtYWxpYXMtdml6LWRpdmVyZ2luZy12aW9sZXQtYXF1YS12LTcwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXZpb2xldC03MDApOy0tY2RzLWFsaWFzLXZpei1kaXZlcmdpbmctdmlvbGV0LWFxdWEtbmV1dHJhbDp2YXIoLS1jZHMtZ2xvYmFs'@; put 'LWNvbG9yLXZpb2xldC01MCk7LS1jZHMtYWxpYXMtdml6LWRpdmVyZ2luZy12aW9sZXQtYXF1YS1hLTQwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWFxdWEtNDAwKTstLWNkcy1hbGlhcy12aXotZGl2ZXJnaW5nLXZpb2xldC1hcXVhLWEtNTAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYXF1'@; put 'YS01MDApOy0tY2RzLWFsaWFzLXZpei1kaXZlcmdpbmctdmlvbGV0LWFxdWEtYS02MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1hcXVhLTYwMCk7LS1jZHMtYWxpYXMtdml6LWRpdmVyZ2luZy12aW9sZXQtYXF1YS1hLTcwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWFxdWEtNzAwKTstLWNk'@; put 'cy1hbGlhcy12aXotZGl2ZXJnaW5nLXZpb2xldC1hcXVhLWEtODAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYXF1YS04MDApOy0tY2RzLWFsaWFzLXZpei1kaXZlcmdpbmctdmlvbGV0LWFxdWEtYS05MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1hcXVhLTkwMCk7LS1jZHMtYWxpYXMtdml6'@; put 'LWRpdmVyZ2luZy1ibHVlLWphZGUtYi0zMDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTMwMCk7LS1jZHMtYWxpYXMtdml6LWRpdmVyZ2luZy1ibHVlLWphZGUtYi00MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTQwMCk7LS1jZHMtYWxpYXMtdml6LWRpdmVyZ2luZy1ibHVl'@; put 'LWphZGUtYi01MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTUwMCk7LS1jZHMtYWxpYXMtdml6LWRpdmVyZ2luZy1ibHVlLWphZGUtYi02MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTYwMCk7LS1jZHMtYWxpYXMtdml6LWRpdmVyZ2luZy1ibHVlLWphZGUtYi03MDA6dmFy'@; put 'KC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTcwMCk7LS1jZHMtYWxpYXMtdml6LWRpdmVyZ2luZy1ibHVlLWphZGUtYi04MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTgwMCk7LS1jZHMtYWxpYXMtdml6LWRpdmVyZ2luZy1ibHVlLWphZGUtbmV1dHJhbDp2YXIoLS1jZHMtZ2xvYmFs'@; put 'LWNvbG9yLWJsdWUtNTApOy0tY2RzLWFsaWFzLXZpei1kaXZlcmdpbmctYmx1ZS1qYWRlLWotMzAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItamFkZS0zMDApOy0tY2RzLWFsaWFzLXZpei1kaXZlcmdpbmctYmx1ZS1qYWRlLWotNDAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItamFkZS00MDAp'@; put 'Oy0tY2RzLWFsaWFzLXZpei1kaXZlcmdpbmctYmx1ZS1qYWRlLWotNTAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItamFkZS01MDApOy0tY2RzLWFsaWFzLXZpei1kaXZlcmdpbmctYmx1ZS1qYWRlLWotNjAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItamFkZS02MDApOy0tY2RzLWFsaWFzLXZp'@; put 'ei1kaXZlcmdpbmctYmx1ZS1qYWRlLWotNzAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItamFkZS03MDApOy0tY2RzLWFsaWFzLXZpei1kaXZlcmdpbmctYmx1ZS1qYWRlLWotODAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItamFkZS04MDApOy0tY2RzLWFsaWFzLXZpei1kaXZlcmdpbmctYmx1'@; put 'ZS1ncmVlbi1iLTMwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtMzAwKTstLWNkcy1hbGlhcy12aXotZGl2ZXJnaW5nLWJsdWUtZ3JlZW4tYi00MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTQwMCk7LS1jZHMtYWxpYXMtdml6LWRpdmVyZ2luZy1ibHVlLWdyZWVuLWItNTAw'@; put 'OnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS01MDApOy0tY2RzLWFsaWFzLXZpei1kaXZlcmdpbmctYmx1ZS1ncmVlbi1iLTYwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtNjAwKTstLWNkcy1hbGlhcy12aXotZGl2ZXJnaW5nLWJsdWUtZ3JlZW4tYi03MDA6dmFyKC0tY2RzLWds'@; put 'b2JhbC1jb2xvci1ibHVlLTcwMCk7LS1jZHMtYWxpYXMtdml6LWRpdmVyZ2luZy1ibHVlLWdyZWVuLWItODAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS04MDApOy0tY2RzLWFsaWFzLXZpei1kaXZlcmdpbmctYmx1ZS1ncmVlbi1uZXV0cmFsOnZhcigtLWNkcy1nbG9iYWwtY29sb3It'@; put 'Ymx1ZS01MCk7LS1jZHMtYWxpYXMtdml6LWRpdmVyZ2luZy1ibHVlLWdyZWVuLWctMzAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItZ3JlZW4tMzAwKTstLWNkcy1hbGlhcy12aXotZGl2ZXJnaW5nLWJsdWUtZ3JlZW4tZy00MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ncmVlbi00MDApOy0t'@; put 'Y2RzLWFsaWFzLXZpei1kaXZlcmdpbmctYmx1ZS1ncmVlbi1nLTUwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWdyZWVuLTUwMCk7LS1jZHMtYWxpYXMtdml6LWRpdmVyZ2luZy1ibHVlLWdyZWVuLWctNjAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItZ3JlZW4tNjAwKTstLWNkcy1hbGlhcy12'@; put 'aXotZGl2ZXJnaW5nLWJsdWUtZ3JlZW4tZy03MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ncmVlbi03MDApOy0tY2RzLWFsaWFzLXZpei1kaXZlcmdpbmctYmx1ZS1ncmVlbi1nLTgwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWdyZWVuLTgwMCk7LS1jZHMtYWxpYXMtdml6LWRpdmVyZ2lu'@; put 'Zy1ncmVlbi15ZWxsb3ctcmVkLWctMjAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItZ3JlZW4tMjAwKTstLWNkcy1hbGlhcy12aXotZGl2ZXJnaW5nLWdyZWVuLXllbGxvdy1yZWQtZy0zMDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ncmVlbi0zMDApOy0tY2RzLWFsaWFzLXZpei1kaXZlcmdp'@; put 'bmctZ3JlZW4teWVsbG93LXJlZC1nLTQwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWdyZWVuLTQwMCk7LS1jZHMtYWxpYXMtdml6LWRpdmVyZ2luZy1ncmVlbi15ZWxsb3ctcmVkLWctNTAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItZ3JlZW4tNTAwKTstLWNkcy1hbGlhcy12aXotZGl2ZXJn'@; put 'aW5nLWdyZWVuLXllbGxvdy1yZWQtZy02MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ncmVlbi02MDApOy0tY2RzLWFsaWFzLXZpei1kaXZlcmdpbmctZ3JlZW4teWVsbG93LXJlZC1nLTcwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWdyZWVuLTcwMCk7LS1jZHMtYWxpYXMtdml6LWRpdmVy'@; put 'Z2luZy1ncmVlbi15ZWxsb3ctcmVkLW5ldXRyYWw6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci15ZWxsb3ctMjAwKTstLWNkcy1hbGlhcy12aXotZGl2ZXJnaW5nLWdyZWVuLXllbGxvdy1yZWQtci00MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1yZWQtNDAwKTstLWNkcy1hbGlhcy12aXotZGl2'@; put 'ZXJnaW5nLWdyZWVuLXllbGxvdy1yZWQtci01MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1yZWQtNTAwKTstLWNkcy1hbGlhcy12aXotZGl2ZXJnaW5nLWdyZWVuLXllbGxvdy1yZWQtci02MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1yZWQtNjAwKTstLWNkcy1hbGlhcy12aXotZGl2ZXJn'@; put 'aW5nLWdyZWVuLXllbGxvdy1yZWQtci03MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1yZWQtNzAwKTstLWNkcy1hbGlhcy12aXotZGl2ZXJnaW5nLWdyZWVuLXllbGxvdy1yZWQtci04MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1yZWQtODAwKTstLWNkcy1hbGlhcy12aXotZGl2ZXJnaW5n'@; put 'LWdyZWVuLXllbGxvdy1yZWQtci05MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1yZWQtOTAwKTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTEwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXdoaXRlKTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTIwMDp2YXIoLS1jZHMtZ2xv'@; put 'YmFsLWNvbG9yLWNvbnN0cnVjdGlvbi02MDApOy0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItMzAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTgwMCk7LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci00MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1'@; put 'Y3Rpb24tOTAwKTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTQ1MDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0xMDAwKTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTUwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsYWNrKTstLWNkcy1hbGlhcy10eXBv'@; put 'Z3JhcGh5LWZvbnQtd2VpZ2h0LWxpZ2h0OjMwMDstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LXJlZ3VsYXI6NDAwOy0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtbWVkaXVtOjUwMDstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LXNlbWlib2xk'@; put 'OjYwMDstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LWJvbGQ6NjAwOy0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtZXh0cmFib2xkOjYwMDstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWZvbnQtc2l6ZS0wOmNhbGMoMTAgKiB2YXIoLS1jZHMtaW50ZXJuYWwtc2Nh'@; put 'bGUtMykpOy0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZm9udC1zaXplLTE6Y2FsYygxMSAqIHZhcigtLWNkcy1pbnRlcm5hbC1zY2FsZS0zKSk7LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1mb250LXNpemUtMjpjYWxjKDEyICogdmFyKC0tY2RzLWludGVybmFsLXNjYWxlLTMpKTstLWNkcy1hbGlh'@; put 'cy10eXBvZ3JhcGh5LWZvbnQtc2l6ZS0zOmNhbGMoMTMgKiB2YXIoLS1jZHMtaW50ZXJuYWwtc2NhbGUtMykpOy0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZm9udC1zaXplLTQ6Y2FsYygxNCAqIHZhcigtLWNkcy1pbnRlcm5hbC1zY2FsZS0zKSk7LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1mb250'@; put 'LXNpemUtNTpjYWxjKDE2ICogdmFyKC0tY2RzLWludGVybmFsLXNjYWxlLTMpKTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWZvbnQtc2l6ZS02OmNhbGMoMjAgKiB2YXIoLS1jZHMtaW50ZXJuYWwtc2NhbGUtMykpOy0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZm9udC1zaXplLTc6Y2FsYygyNCAq'@; put 'IHZhcigtLWNkcy1pbnRlcm5hbC1zY2FsZS0zKSk7LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1mb250LXNpemUtODpjYWxjKDMyICogdmFyKC0tY2RzLWludGVybmFsLXNjYWxlLTMpKTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWZvbnQtc2l6ZS05OmNhbGMoNDAgKiB2YXIoLS1jZHMtaW50ZXJu'@; put 'YWwtc2NhbGUtMykpOy0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZm9udC1mYW1pbHk6IkNsYXJpdHkgQ2l0eSIsICJBdmVuaXIgTmV4dCIsIHNhbnMtc2VyaWY7LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1oZWFkZXItZm9udC1mYW1pbHk6IkNsYXJpdHkgQ2l0eSIsICJBdmVuaXIgTmV4dCIsIHNh'@; put 'bnMtc2VyaWY7LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1tb25vc3BhY2UtZm9udC1mYW1pbHk6dWktbW9ub3NwYWNlLCBDb25zb2xhcywgTWVubG8sIE1vbmFjbywgbW9ub3NwYWNlOy0tY2RzLWFsaWFzLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQ6LjE0NzVlbTstLWNkcy1hbGlhcy10eXBv'@; put 'Z3JhcGh5LWFzY2VuZGVyLWhlaWdodDouMTcwM2VtOy0tY2RzLWFsaWFzLXR5cG9ncmFwaHkteC1oZWlnaHQ6LjUxN2VtOy0tY2RzLWFsaWFzLXR5cG9ncmFwaHktbGluay1jb2xvcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtNzAwKTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWxpbmst'@; put 'Y29sb3ItaG92ZXI6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTgwMCk7LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1saW5rLWNvbG9yLXZpc2l0ZWQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1sYXZlbmRlci02MDApOy0tY2RzLWFsaWFzLXR5cG9ncmFwaHktbGluay1jb2xvci12aXNpdGVk'@; put 'LWhvdmVyOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItbGF2ZW5kZXItNzAwKTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWxpbmstb24tY29sb3JiZzp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsYWNrKTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWJvZHktZm9udC1zaXplOmNhbGMoMTQgKiB2YXIo'@; put 'LS1jZHMtaW50ZXJuYWwtc2NhbGUtMykpOy0tY2RzLWFsaWFzLXR5cG9ncmFwaHktYm9keS1saW5lLWhlaWdodDoxLjQyODU3MTRlbTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWJvZHktbGV0dGVyLXNwYWNpbmc6LS4wMDcxNDI4NmVtOy0tY2RzLWFsaWFzLXR5cG9ncmFwaHktYm9keS1mb250'@; put 'LXdlaWdodDo0MDA7LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1kaXNwbGF5LWZvbnQtc2l6ZTpjYWxjKDQwICogdmFyKC0tY2RzLWludGVybmFsLXNjYWxlLTMpKTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWRpc3BsYXktbGluZS1oZWlnaHQ6MS4xZW07LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1k'@; put 'aXNwbGF5LWxldHRlci1zcGFjaW5nOi0uMDEyNWVtOy0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZGlzcGxheS1mb250LXdlaWdodDo1MDA7LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1oZWFkaW5nLWZvbnQtc2l6ZTpjYWxjKDMyICogdmFyKC0tY2RzLWludGVybmFsLXNjYWxlLTMpKTstLWNkcy1h'@; put 'bGlhcy10eXBvZ3JhcGh5LWhlYWRpbmctbGluZS1oZWlnaHQ6MS4xMjVlbTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWhlYWRpbmctbGV0dGVyLXNwYWNpbmc6LS4wMTI1ZW07LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1oZWFkaW5nLWZvbnQtd2VpZ2h0OjUwMDstLWNkcy1hbGlhcy10eXBvZ3Jh'@; put 'cGh5LWhlYWRsaW5lLWZvbnQtc2l6ZTpjYWxjKDMyICogdmFyKC0tY2RzLWludGVybmFsLXNjYWxlLTMpKTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWhlYWRsaW5lLWxpbmUtaGVpZ2h0OjEuMTI1ZW07LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1oZWFkbGluZS1sZXR0ZXItc3BhY2luZzotLjAx'@; put 'MjVlbTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWhlYWRsaW5lLWZvbnQtd2VpZ2h0OjUwMDstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXRpdGxlLWZvbnQtc2l6ZTpjYWxjKDI0ICogdmFyKC0tY2RzLWludGVybmFsLXNjYWxlLTMpKTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXRpdGxlLWxpbmUt'@; put 'aGVpZ2h0OjEuMzMzMzMzZW07LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS10aXRsZS1sZXR0ZXItc3BhY2luZzotLjAwODMzMzMzZW07LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS10aXRsZS1mb250LXdlaWdodDo1MDA7LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWN0aW9uLWZvbnQtc2l6ZTpjYWxj'@; put 'KDIwICogdmFyKC0tY2RzLWludGVybmFsLXNjYWxlLTMpKTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY3Rpb24tbGluZS1oZWlnaHQ6MS4yZW07LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWN0aW9uLWxldHRlci1zcGFjaW5nOi0uMDFlbTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY3Rp'@; put 'b24tZm9udC13ZWlnaHQ6NTAwOy0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc3Vic2VjdGlvbi1mb250LXNpemU6Y2FsYygxNiAqIHZhcigtLWNkcy1pbnRlcm5hbC1zY2FsZS0zKSk7LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zdWJzZWN0aW9uLWxpbmUtaGVpZ2h0OjEuNWVtOy0tY2RzLWFsaWFz'@; put 'LXR5cG9ncmFwaHktc3Vic2VjdGlvbi1sZXR0ZXItc3BhY2luZzotLjAxMjVlbTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXN1YnNlY3Rpb24tZm9udC13ZWlnaHQ6NTAwOy0tY2RzLWFsaWFzLXR5cG9ncmFwaHktbWVzc2FnZS1mb250LXNpemU6Y2FsYygxNiAqIHZhcigtLWNkcy1pbnRlcm5h'@; put 'bC1zY2FsZS0zKSk7LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1tZXNzYWdlLWxpbmUtaGVpZ2h0OjEuNWVtOy0tY2RzLWFsaWFzLXR5cG9ncmFwaHktbWVzc2FnZS1sZXR0ZXItc3BhY2luZzotLjAxMjVlbTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LW1lc3NhZ2UtZm9udC13ZWlnaHQ6Y2FsYyg0'@; put 'MDAgKiAoMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFyeS1mb250LXNpemU6Y2FsYygxMyAqIHZhcigtLWNkcy1pbnRlcm5hbC1zY2FsZS0zKSk7LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWNvbmRhcnktbGluZS1oZWlnaHQ6'@; put 'MS4yMzA3N2VtOy0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWxldHRlci1zcGFjaW5nOi0uMDA3NjkyZW07LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWNvbmRhcnktZm9udC13ZWlnaHQ6NDAwOy0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY2FwdGlvbi1mb250LXNpemU6Y2FsYygx'@; put 'MSAqIHZhcigtLWNkcy1pbnRlcm5hbC1zY2FsZS0zKSk7LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jYXB0aW9uLWxpbmUtaGVpZ2h0OjEuNDU0NTQ1ZW07LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jYXB0aW9uLWxldHRlci1zcGFjaW5nOi4wMTgxODJlbTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5'@; put 'LWNhcHRpb24tZm9udC13ZWlnaHQ6NDAwOy0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc21hbGxjYXB0aW9uLWZvbnQtc2l6ZTpjYWxjKDEwICogdmFyKC0tY2RzLWludGVybmFsLXNjYWxlLTMpKTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNtYWxsY2FwdGlvbi1saW5lLWhlaWdodDoxLjJlbTst'@; put 'LWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNtYWxsY2FwdGlvbi1sZXR0ZXItc3BhY2luZzouMDVlbTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNtYWxsY2FwdGlvbi1mb250LXdlaWdodDo1MDA7LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1pbmZvLWhvdmVyOnZhcigtLWNkcy1nbG9iYWwtY29sb3It'@; put 'Ymx1ZS04MDApOy0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc3VjY2Vzcy1ob3Zlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWdyZWVuLTgwMCk7LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS13YXJuaW5nLWhvdmVyOnZhcigtLWNkcy1nbG9iYWwtY29sb3Itb2NocmUtOTAwKTstLWNkcy1hbGlhcy10'@; put 'eXBvZ3JhcGh5LWRhbmdlci1ob3Zlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXJlZC04MDApOy0tY2RzLWFsaWFzLXR5cG9ncmFwaHktbmV1dHJhbC1ob3Zlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi03MDApOy0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZGlzYWJsZWQ6'@; put 'dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tNTAwKTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWRpc2FibGVkLWJ1dHRvbjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi01MDApOy0tY2RzLWludGVybmFsLXNjYWxlLTE6Y2FsYygoMXJlbSAvIHZhcigtLWNk'@; put 'cy1nbG9iYWwtYmFzZSkpICogdmFyKC0tY2RzLWdsb2JhbC1zY2FsZS1sYXlvdXQtc3BhY2UpKTstLWNkcy1pbnRlcm5hbC1zY2FsZS0yOmNhbGMoKDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UpKSAqIHZhcigtLWNkcy1nbG9iYWwtc2NhbGUtc3BhY2UpKTstLWNkcy1pbnRlcm5hbC1z'@; put 'Y2FsZS0zOmNhbGMoKDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UpKSAqIHZhcigtLWNkcy1nbG9iYWwtc2NhbGUtdHlwb2dyYXBoeSkpfWh0bWx7Zm9udC1zaXplOmNhbGMoKHZhcigtLWNkcy1nbG9iYWwtYmFzZSkvMTYpKjEwMCUpO2JveC1zaXppbmc6Ym9yZGVyLWJveCFpbXBvcnRh'@; put 'bnR9Kiw6YWZ0ZXIsOmJlZm9yZXtib3gtc2l6aW5nOmluaGVyaXQhaW1wb3J0YW50fVtjZHMtYmFzZS1mb250PSIxNiJdey0tY2RzLWdsb2JhbC1iYXNlOjE2fVtjZHMtdGhlbWVde2JhY2tncm91bmQ6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1hcHAtYmFja2dyb3VuZCk7Y29sb3I6dmFyKC0t'@; put 'Y2RzLWdsb2JhbC10eXBvZ3JhcGh5LWNvbG9yLTUwMCl9W2Nkcy1jb250cm9sXSA6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWNvbG9yLTIwMCl9W2Nkcy1jb250cm9sXSA6Oi1tb3otcGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0t'@; put 'Y2RzLWdsb2JhbC10eXBvZ3JhcGh5LWNvbG9yLTIwMCl9W2Nkcy1jb250cm9sXVtfZGlzYWJsZWRdey0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWNvbG9yLTIwMDp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWRpc2FibGVkKX1odG1sW2Nkcy1mb2N1cy10cmFwXXtvdmVyZmxvdzpoaWRkZW4haW1w'@; put 'b3J0YW50O3dpZHRoOjEwMHZ3O2hlaWdodDoxMDB2aH1bY2RzLXRleHRde2ZvbnQtZmFtaWx5OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1mb250LWZhbWlseSk7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MH1bY2RzLXRleHRdW2Nkcy1sYXlvdXR+PWdyaWRdOmFmdGVyLFtjZHMt'@; put 'dGV4dF1bY2RzLWxheW91dH49Z3JpZF06YmVmb3JlLFtjZHMtdGV4dF1bY2RzLWxheW91dH49aG9yaXpvbnRhbF06YWZ0ZXIsW2Nkcy10ZXh0XVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXTpiZWZvcmUsW2Nkcy10ZXh0XVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF06YWZ0ZXIsW2Nkcy10ZXh0XVtj'@; put 'ZHMtbGF5b3V0fj12ZXJ0aWNhbF06YmVmb3Jle2Rpc3BsYXk6bm9uZX1bY2RzLXRleHQqPWRpc3BsYXldLFtjZHMtdGV4dCo9aGVhZGluZ10sW2Nkcy10ZXh0Kj1oZWFkbGluZV0sW2Nkcy10ZXh0Kj1zZWN0aW9uXSxbY2RzLXRleHQqPXN1YnNlY3Rpb25dLFtjZHMtdGV4dCo9dGl0bGVde2Zv'@; put 'bnQtZmFtaWx5OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1oZWFkZXItZm9udC1mYW1pbHkpO2NvbG9yOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1jb2xvci00MDApfVtjZHMtdGV4dCo9Ym9keV0sW2Nkcy10ZXh0Kj1jYXB0aW9uXSxbY2RzLXRleHQqPW1lc3NhZ2VdLFtjZHMt'@; put 'dGV4dCo9c2Vjb25kYXJ5XSxbY2RzLXRleHQqPXNtYWxsY2FwdGlvbl17Y29sb3I6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWNvbG9yLTUwMCl9W2Nkcy10ZXh0Kj1pbmxpbmVde3dpZHRoOmF1dG8haW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH1bY2RzLXRl'@; put 'eHQqPWRpc3BsYXlde2ZvbnQtc2l6ZTp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZGlzcGxheS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1kaXNwbGF5LWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9n'@; put 'cmFwaHktZGlzcGxheS1saW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWRpc3BsYXktbGV0dGVyLXNwYWNpbmcpfVtjZHMtdGV4dCo9ZGlzcGxheV06YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21h'@; put 'cmdpbi1ib3R0b206Y2FsYygoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCkgKyBjYWxjKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZGlzcGxheS1saW5lLWhlaWdodCkgLSAxZW0pLzIpKSotMSkgKyAuMDM3ZW0pfVtjZHMtdGV4dCo9ZGlzcGxheV06'@; put 'YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLXRvcDpjYWxjKCgoKDFlbSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYXNjZW5kZXItaGVpZ2h0KSAt'@; put 'IHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS14LWhlaWdodCkpICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWRpc3BsYXktbGluZS1oZWlnaHQpIC0gMWVtKS8yKSkqLTEpIC0gLjA0NGVtKX1bY2RzLXRleHQqPWhlYWRpbmddLFtjZHMtdGV4dCo9aGVhZGxpbmVde2Zv'@; put 'bnQtc2l6ZTp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktaGVhZGluZy1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1oZWFkaW5nLWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktaGVhZGluZy1s'@; put 'aW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWhlYWRpbmctbGV0dGVyLXNwYWNpbmcpfVtjZHMtdGV4dCo9aGVhZGluZ106YmVmb3JlLFtjZHMtdGV4dCo9aGVhZGxpbmVdOmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0'@; put 'OjA7d2lkdGg6MDttYXJnaW4tYm90dG9tOmNhbGMoKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQpICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWhlYWRpbmctbGluZS1oZWlnaHQpIC0gMWVtKS8yKSkqLTEpICsgLjAzN2VtKX1bY2RzLXRl'@; put 'eHQqPWhlYWRpbmddOmFmdGVyLFtjZHMtdGV4dCo9aGVhZGxpbmVdOmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi10b3A6Y2FsYygoKCgxZW0gLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQpIC0gdmFyKC0t'@; put 'Y2RzLWdsb2JhbC10eXBvZ3JhcGh5LWFzY2VuZGVyLWhlaWdodCkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHkteC1oZWlnaHQpKSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1oZWFkaW5nLWxpbmUtaGVpZ2h0KSAtIDFlbSkvMikpKi0xKSAtIC4wNDRlbSl9W2Nk'@; put 'cy10ZXh0Kj10aXRsZV17Zm9udC1zaXplOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10aXRsZS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10aXRsZS1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3Jh'@; put 'cGh5LXRpdGxlLWxpbmUtaGVpZ2h0KTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdGl0bGUtbGV0dGVyLXNwYWNpbmcpfVtjZHMtdGV4dCo9dGl0bGVdOmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tYm90'@; put 'dG9tOmNhbGMoKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQpICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRpdGxlLWxpbmUtaGVpZ2h0KSAtIDFlbSkvMikpKi0xKSArIC4wMzdlbSl9W2Nkcy10ZXh0Kj10aXRsZV06YWZ0ZXJ7Y29udGVu'@; put 'dDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLXRvcDpjYWxjKCgoKDFlbSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYXNjZW5kZXItaGVpZ2h0KSAtIHZhcigtLWNkcy1n'@; put 'bG9iYWwtdHlwb2dyYXBoeS14LWhlaWdodCkpICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRpdGxlLWxpbmUtaGVpZ2h0KSAtIDFlbSkvMikpKi0xKSAtIC4wNDRlbSl9W2Nkcy10ZXh0Kj1zZWN0aW9uXXtmb250LXNpemU6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5'@; put 'LXNlY3Rpb24tZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc2VjdGlvbi1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY3Rpb24tbGluZS1oZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWNk'@; put 'cy1nbG9iYWwtdHlwb2dyYXBoeS1zZWN0aW9uLWxldHRlci1zcGFjaW5nKX1bY2RzLXRleHQqPXNlY3Rpb25dOmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tYm90dG9tOmNhbGMoKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9w'@; put 'LWdhcC1oZWlnaHQpICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY3Rpb24tbGluZS1oZWlnaHQpIC0gMWVtKS8yKSkqLTEpICsgLjAzN2VtKX1bY2RzLXRleHQqPXNlY3Rpb25dOmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21h'@; put 'cmdpbi10b3A6Y2FsYygoKCgxZW0gLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQpIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWFzY2VuZGVyLWhlaWdodCkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHkteC1oZWlnaHQpKSArIGNhbGMoKHZh'@; put 'cigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zZWN0aW9uLWxpbmUtaGVpZ2h0KSAtIDFlbSkvMikpKi0xKSAtIC4wNDRlbSl9W2Nkcy10ZXh0Kj1zdWJzZWN0aW9uXXtmb250LXNpemU6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXN1YnNlY3Rpb24tZm9udC1zaXplKTtmb250LXdlaWdo'@; put 'dDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc3Vic2VjdGlvbi1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXN1YnNlY3Rpb24tbGluZS1oZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zdWJz'@; put 'ZWN0aW9uLWxldHRlci1zcGFjaW5nKX1bY2RzLXRleHQqPXN1YnNlY3Rpb25dOmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tYm90dG9tOmNhbGMoKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQpICsgY2Fs'@; put 'YygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXN1YnNlY3Rpb24tbGluZS1oZWlnaHQpIC0gMWVtKS8yKSkqLTEpICsgLjAzN2VtKX1bY2RzLXRleHQqPXN1YnNlY3Rpb25dOmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi10b3A6Y2Fs'@; put 'YygoKCgxZW0gLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQpIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWFzY2VuZGVyLWhlaWdodCkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHkteC1oZWlnaHQpKSArIGNhbGMoKHZhcigtLWNkcy1nbG9i'@; put 'YWwtdHlwb2dyYXBoeS1zdWJzZWN0aW9uLWxpbmUtaGVpZ2h0KSAtIDFlbSkvMikpKi0xKSAtIC4wNDRlbSl9W2Nkcy10ZXh0Kj1ib2R5XXtmb250LXdlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYm9keS1mb250LXdlaWdodCk7Zm9udC1zaXplOnZhcigtLWNkcy1nbG9iYWwt'@; put 'dHlwb2dyYXBoeS1ib2R5LWZvbnQtc2l6ZSk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWJvZHktbGV0dGVyLXNwYWNpbmcpO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1ib2R5LWxpbmUtaGVpZ2h0KX1bY2RzLXRleHQqPWJvZHld'@; put 'OmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tYm90dG9tOmNhbGMoKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQpICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWJvZHktbGluZS1oZWln'@; put 'aHQpIC0gMWVtKS8yKSkqLTEpICsgLjFlbSl9W2Nkcy10ZXh0Kj1ib2R5XTphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tdG9wOmNhbGMoKCgoMWVtIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0KSAtIHZh'@; put 'cigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1hc2NlbmRlci1oZWlnaHQpIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXgtaGVpZ2h0KSkgKyBjYWxjKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYm9keS1saW5lLWhlaWdodCkgLSAxZW0pLzIpKSotMSkgLSAuMDQ0ZW0pfWJv'@; put 'ZHlbY2RzLXRleHQqPWJvZHldOmFmdGVyLGJvZHlbY2RzLXRleHQqPWJvZHldOmJlZm9yZXtjb250ZW50Om5vbmV9W2Nkcy10ZXh0Kj1tZXNzYWdlXXtmb250LXNpemU6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LW1lc3NhZ2UtZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jZHMt'@; put 'Z2xvYmFsLXR5cG9ncmFwaHktbWVzc2FnZS1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LW1lc3NhZ2UtbGluZS1oZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1tZXNzYWdlLWxldHRlci1zcGFjaW5n'@; put 'KX1bY2RzLXRleHQqPW1lc3NhZ2VdOmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tYm90dG9tOmNhbGMoKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQpICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBv'@; put 'Z3JhcGh5LW1lc3NhZ2UtbGluZS1oZWlnaHQpIC0gMWVtKS8yKSkqLTEpICsgLjAzN2VtKX1bY2RzLXRleHQqPW1lc3NhZ2VdOmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi10b3A6Y2FsYygoKCgxZW0gLSB2YXIoLS1jZHMtZ2xvYmFsLXR5'@; put 'cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQpIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWFzY2VuZGVyLWhlaWdodCkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHkteC1oZWlnaHQpKSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1tZXNzYWdlLWxpbmUtaGVp'@; put 'Z2h0KSAtIDFlbSkvMikpKi0xKSAtIC4wNDRlbSl9W2Nkcy10ZXh0Kj1zZWNvbmRhcnlde2ZvbnQtc2l6ZTp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY29uZGFyeS1mb250'@; put 'LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY29uZGFyeS1saW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY29uZGFyeS1sZXR0ZXItc3BhY2luZyl9W2Nkcy10ZXh0Kj1zZWNvbmRhcnldOmJl'@; put 'Zm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tYm90dG9tOmNhbGMoKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQpICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY29uZGFyeS1saW5lLWhl'@; put 'aWdodCkgLSAxZW0pLzIpKSotMSkgKyAuMDM3ZW0pfVtjZHMtdGV4dCo9c2Vjb25kYXJ5XTphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tdG9wOmNhbGMoKCgoMWVtIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVp'@; put 'Z2h0KSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1hc2NlbmRlci1oZWlnaHQpIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXgtaGVpZ2h0KSkgKyBjYWxjKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWxpbmUtaGVpZ2h0KSAtIDFlbSkvMikpKi0x'@; put 'KSAtIC4wNDRlbSl9W2Nkcy10ZXh0Kj1jYXB0aW9uXXtmb250LXNpemU6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWNhcHRpb24tZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktY2FwdGlvbi1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFy'@; put 'KC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWNhcHRpb24tbGluZS1oZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1jYXB0aW9uLWxldHRlci1zcGFjaW5nKX1bY2RzLXRleHQqPWNhcHRpb25dOmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7'@; put 'aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tYm90dG9tOmNhbGMoKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQpICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWNhcHRpb24tbGluZS1oZWlnaHQpIC0gMWVtKS8yKSkqLTEpICsgLjAzN2VtKX1b'@; put 'Y2RzLXRleHQqPWNhcHRpb25dOmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi10b3A6Y2FsYygoKCgxZW0gLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQpIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5'@; put 'LWFzY2VuZGVyLWhlaWdodCkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHkteC1oZWlnaHQpKSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1jYXB0aW9uLWxpbmUtaGVpZ2h0KSAtIDFlbSkvMikpKi0xKSAtIC4wNDRlbSl9W2Nkcy10ZXh0Kj1zbWFsbGNhcHRpb25d'@; put 'e2ZvbnQtc2l6ZTp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc21hbGxjYXB0aW9uLWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNtYWxsY2FwdGlvbi1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3Jh'@; put 'cGh5LXNtYWxsY2FwdGlvbi1saW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNtYWxsY2FwdGlvbi1sZXR0ZXItc3BhY2luZyl9W2Nkcy10ZXh0Kj1zbWFsbGNhcHRpb25dOmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0'@; put 'OjA7d2lkdGg6MDttYXJnaW4tYm90dG9tOmNhbGMoKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQpICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNtYWxsY2FwdGlvbi1saW5lLWhlaWdodCkgLSAxZW0pLzIpKSotMSkgKyAuMDM3ZW0pfVtj'@; put 'ZHMtdGV4dCo9c21hbGxjYXB0aW9uXTphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tdG9wOmNhbGMoKCgoMWVtIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0KSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dy'@; put 'YXBoeS1hc2NlbmRlci1oZWlnaHQpIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXgtaGVpZ2h0KSkgKyBjYWxjKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc21hbGxjYXB0aW9uLWxpbmUtaGVpZ2h0KSAtIDFlbSkvMikpKi0xKSAtIC4wNDRlbSl9W2Nkcy10ZXh0fj1saW5r'@; put 'XXtjb2xvcjp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktbGluay1jb2xvcikhaW1wb3J0YW50O3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUhaW1wb3J0YW50O2xpbmUtaGVpZ2h0OmluaGVyaXQhaW1wb3J0YW50O2ZvbnQtc2l6ZTppbmhlcml0IWltcG9ydGFudH1bY2RzLXRleHR+PWxp'@; put 'bmtdOmZvY3Vze291dGxpbmU6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1vdXRsaW5lKTtvdXRsaW5lLW9mZnNldDp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLW91dGxpbmUtb2Zmc2V0KX1bY2RzLXRleHR+PWxpbmtdOmhvdmVye2NvbG9yOnZhcigtLWNk'@; put 'cy1nbG9iYWwtdHlwb2dyYXBoeS1saW5rLWNvbG9yLWhvdmVyKSFpbXBvcnRhbnR9W2Nkcy10ZXh0fj1saW5rXTp2aXNpdGVkOm5vdChbY2RzLXRleHR+PXN0YXRpY10pLFtjZHMtdGV4dH49bGlua11bY2RzLXRleHR+PXZpc2l0ZWRde2NvbG9yOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBo'@; put 'eS1saW5rLWNvbG9yLXZpc2l0ZWQpIWltcG9ydGFudH1bY2RzLXRleHR+PWxpbmtdOnZpc2l0ZWQ6bm90KFtjZHMtdGV4dH49c3RhdGljXSk6aG92ZXIsW2Nkcy10ZXh0fj1saW5rXVtjZHMtdGV4dH49dmlzaXRlZF06aG92ZXJ7Y29sb3I6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWxp'@; put 'bmstY29sb3ItdmlzaXRlZC1ob3ZlcikhaW1wb3J0YW50fUBtZWRpYSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOjApe1tjZHMtdGV4dD1saW5rXTpmb2N1c3tvdXRsaW5lOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tb3V0bGluZS13ZWJraXQpfX1bY2RzLXRl'@; put 'eHR+PWNvZGVde2NvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtZGFuZ2VyKTtmb250LWZhbWlseTptb25vc3BhY2V9W2Nkcy1kaXZpZGVyXXtkaXNwbGF5OmJsb2NrO2hlaWdodDp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0aC0xMDApO292ZXJmbG93OmhpZGRlbjtib3gt'@; put 'c2hhZG93OnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLWNvbG9yKSAwIDAgMCB2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0aC0xMDApIGluc2V0fVtjZHMtdGV4dH49ZXh0cmFib2xkXXtmb250LXdlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZm9udC13'@; put 'ZWlnaHQtZXh0cmFib2xkKSFpbXBvcnRhbnR9W2Nkcy10ZXh0fj1ib2xkXXtmb250LXdlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtYm9sZCkhaW1wb3J0YW50fVtjZHMtdGV4dH49c2VtaWJvbGRde2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlw'@; put 'b2dyYXBoeS1mb250LXdlaWdodC1zZW1pYm9sZCkhaW1wb3J0YW50fVtjZHMtdGV4dH49bWVkaXVtXXtmb250LXdlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtbWVkaXVtKSFpbXBvcnRhbnR9W2Nkcy10ZXh0fj1yZWd1bGFyXXtmb250LXdlaWdodDp2YXIo'@; put 'LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtcmVndWxhcikhaW1wb3J0YW50fVtjZHMtdGV4dH49bGlnaHRde2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1mb250LXdlaWdodC1saWdodCkhaW1wb3J0YW50fVtjZHMtdGV4dH49Y2FwaXRhbGl6ZV17'@; put 'dGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZSFpbXBvcnRhbnR9W2Nkcy10ZXh0fj11cHBlcmNhc2Vde3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZSFpbXBvcnRhbnR9W2Nkcy10ZXh0fj1sb3dlcmNhc2Vde3RleHQtdHJhbnNmb3JtOmxvd2VyY2FzZSFpbXBvcnRhbnR9W2Nkcy10ZXh0fj10cnVu'@; put 'Y2F0ZV17b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzIWltcG9ydGFudDt3aGl0ZS1zcGFjZTpub3dyYXAhaW1wb3J0YW50fVtjZHMtdGV4dH49dHJ1bmNhdGVdOmFmdGVyLFtjZHMtdGV4dH49dHJ1bmNhdGVdOmJlZm9yZXtjb250ZW50Om5vbmV9W2Nk'@; put 'cy10ZXh0fj1qdXN0aWZ5XXt0ZXh0LWFsaWduOmp1c3RpZnkhaW1wb3J0YW50fVtjZHMtdGV4dH49bGVmdF17dGV4dC1hbGlnbjpsZWZ0IWltcG9ydGFudH1bY2RzLXRleHR+PXJpZ2h0XXt0ZXh0LWFsaWduOnJpZ2h0IWltcG9ydGFudH1bY2RzLXRleHR+PWNlbnRlcl17dGV4dC1hbGlnbjpj'@; put 'ZW50ZXIhaW1wb3J0YW50fVtjZHMtdGV4dH49bW9ub3NwYWNlXXtmb250LWZhbWlseTp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktbW9ub3NwYWNlLWZvbnQtZmFtaWx5KX1bY2RzLXRleHR+PWxoZV17cGFkZGluZzouMDVweCAwfVtjZHMtdGV4dH49bGhlXTpiZWZvcmV7Y29udGVudDoi'@; put 'IjttYXJnaW4tdG9wOi0uMTI0ZW07ZGlzcGxheTpibG9jaztoZWlnaHQ6MH1bY2RzLXRleHR+PWxoZV06YWZ0ZXJ7Y29udGVudDoiIjttYXJnaW4tYm90dG9tOi0uMjIxZW07ZGlzcGxheTpibG9jaztoZWlnaHQ6MH1bY2RzLWxheW91dH49ZGlzYWJsZS1saGVdOmFmdGVyLFtjZHMtbGF5b3V0'@; put 'fj1kaXNhYmxlLWxoZV06YmVmb3JlLFtjZHMtdGV4dH49ZGlzYWJsZS1saGVdOmFmdGVyLFtjZHMtdGV4dH49ZGlzYWJsZS1saGVdOmJlZm9yZXtjb250ZW50Om5vbmV9W2Nkcy10ZXh0Kj1oMF0sW2Nkcy10ZXh0Kj1oMV0sW2Nkcy10ZXh0Kj1oMl0sW2Nkcy10ZXh0Kj1oM10sW2Nkcy10ZXh0'@; put 'Kj1oNF0sW2Nkcy10ZXh0Kj1oNV0sW2Nkcy10ZXh0Kj1oNl17Zm9udC1mYW1pbHk6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWhlYWRlci1mb250LWZhbWlseSwgIkNsYXJpdHkgQ2l0eSIsICJBdmVuaXIgTmV4dCIsIHNhbnMtc2VyaWYpO2ZvbnQtc2l6ZToycmVtO2ZvbnQtd2VpZ2h0'@; put 'OjIwMDtjb2xvcjp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktY29sb3ItNDAwKTtsaW5lLWhlaWdodDoxLjJlbTtsZXR0ZXItc3BhY2luZzotLjAxMjVlbX1bY2RzLXRleHQqPWgwXTpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLWJv'@; put 'dHRvbTpjYWxjKCgodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0KSArIGNhbGMoKDEuMmVtIC0gMWVtKS8yKSkqLTEpICsgLjAzN2VtKX1bY2RzLXRleHQqPWgwXTphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4t'@; put 'dG9wOmNhbGMoKCgoMWVtIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0KSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1hc2NlbmRlci1oZWlnaHQpIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXgtaGVpZ2h0KSkgKyBjYWxjKCgxLjJlbSAt'@; put 'IDFlbSkvMikpKi0xKSAtIC4wNDRlbSl9W2Nkcy10ZXh0Kj1oMV0sW2Nkcy10ZXh0Kj1oMl0sW2Nkcy10ZXh0Kj1oM10sW2Nkcy10ZXh0Kj1oNF0sW2Nkcy10ZXh0Kj1oNV0sW2Nkcy10ZXh0Kj1oNl17Zm9udC1zaXplOjEuNnJlbTtsaW5lLWhlaWdodDoxLjVlbTtsZXR0ZXItc3BhY2luZzot'@; put 'LjAxNTZlbX1bY2RzLXRleHQqPWgxXTpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLWJvdHRvbTpjYWxjKCgodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0KSArIC4yNWVtKSotMSkgKyAuMDM3ZW0pfVtjZHMt'@; put 'dGV4dCo9aDFdOmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi10b3A6Y2FsYygoKCgxZW0gLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQpIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWFzY2VuZGVy'@; put 'LWhlaWdodCkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHkteC1oZWlnaHQpKSArIC4yNWVtKSotMSkgLSAuMDQ0ZW0pfVtjZHMtdGV4dCo9aDJdLFtjZHMtdGV4dCo9aDNdLFtjZHMtdGV4dCo9aDRdLFtjZHMtdGV4dCo9aDVdLFtjZHMtdGV4dCo9aDZde2ZvbnQtc2l6ZToxLjRyZW07'@; put 'bGluZS1oZWlnaHQ6MS43MTQzZW07bGV0dGVyLXNwYWNpbmc6LS4wMTc4NTdlbX1bY2RzLXRleHQqPWgyXTpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLWJvdHRvbTpjYWxjKCgodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1n'@; put 'YXAtaGVpZ2h0KSArIGNhbGMoKDEuNzE0M2VtIC0gMWVtKS8yKSkqLTEpICsgLjAzN2VtKX1bY2RzLXRleHQqPWgyXTphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tdG9wOmNhbGMoKCgoMWVtIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3Jh'@; put 'cGh5LXRvcC1nYXAtaGVpZ2h0KSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1hc2NlbmRlci1oZWlnaHQpIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXgtaGVpZ2h0KSkgKyBjYWxjKCgxLjcxNDNlbSAtIDFlbSkvMikpKi0xKSAtIC4wNDRlbSl9W2Nkcy10ZXh0Kj1oM10s'@; put 'W2Nkcy10ZXh0Kj1oNF0sW2Nkcy10ZXh0Kj1oNV0sW2Nkcy10ZXh0Kj1oNl17Zm9udC1zaXplOjEuMXJlbTtsaW5lLWhlaWdodDoxLjA5MDllbTtsZXR0ZXItc3BhY2luZzotLjAxMzYzNmVtfVtjZHMtdGV4dCo9aDNdOmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7'@; put 'd2lkdGg6MDttYXJnaW4tYm90dG9tOmNhbGMoKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQpICsgY2FsYygoMS4wOTA5ZW0gLSAxZW0pLzIpKSotMSkgKyAuMDM3ZW0pfVtjZHMtdGV4dCo9aDNdOmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWln'@; put 'aHQ6MDt3aWR0aDowO21hcmdpbi10b3A6Y2FsYygoKCgxZW0gLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQpIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWFzY2VuZGVyLWhlaWdodCkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHkteC1oZWln'@; put 'aHQpKSArIGNhbGMoKDEuMDkwOWVtIC0gMWVtKS8yKSkqLTEpIC0gLjA0NGVtKX1bY2RzLXRleHQqPWg0XSxbY2RzLXRleHQqPWg1XSxbY2RzLXRleHQqPWg2XXtmb250LXNpemU6LjlyZW07bGluZS1oZWlnaHQ6MS4zMzMzMzNlbTtsZXR0ZXItc3BhY2luZzotLjAxMTExMWVtfVtjZHMtdGV4'@; put 'dCo9aDRdOmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tYm90dG9tOmNhbGMoKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQpICsgY2FsYygoMS4zMzMzMzNlbSAtIDFlbSkvMikpKi0xKSArIC4wMzdlbSl9'@; put 'W2Nkcy10ZXh0Kj1oNF06YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLXRvcDpjYWxjKCgoKDFlbSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYXNj'@; put 'ZW5kZXItaGVpZ2h0KSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS14LWhlaWdodCkpICsgY2FsYygoMS4zMzMzMzNlbSAtIDFlbSkvMikpKi0xKSAtIC4wNDRlbSl9W2Nkcy10ZXh0Kj1oNV0sW2Nkcy10ZXh0Kj1oNl17Zm9udC1zaXplOi44cmVtO2ZvbnQtd2VpZ2h0OjQwMDtsaW5l'@; put 'LWhlaWdodDoxLjVlbTtsZXR0ZXItc3BhY2luZzotLjAxMjVlbX1bY2RzLXRleHQqPWg1XTpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLWJvdHRvbTpjYWxjKCgodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0'@; put 'KSArIC4yNWVtKSotMSkgKyAuMDM3ZW0pfVtjZHMtdGV4dCo9aDVdOmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi10b3A6Y2FsYygoKCgxZW0gLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQpIC0gdmFyKC0t'@; put 'Y2RzLWdsb2JhbC10eXBvZ3JhcGh5LWFzY2VuZGVyLWhlaWdodCkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHkteC1oZWlnaHQpKSArIC4yNWVtKSotMSkgLSAuMDQ0ZW0pfVtjZHMtdGV4dCo9aDZde2ZvbnQtc2l6ZTouN3JlbTtmb250LXdlaWdodDo1MDA7bGV0dGVyLXNwYWNpbmc6'@; put 'LS4wMzEyNWVtfVtjZHMtdGV4dCo9aDZdOmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tYm90dG9tOmNhbGMoKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQpICsgLjI1ZW0pKi0xKSArIC4wMzdlbSl9W2Nk'@; put 'cy10ZXh0Kj1oNl06YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLXRvcDpjYWxjKCgoKDFlbSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYXNjZW5k'@; put 'ZXItaGVpZ2h0KSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS14LWhlaWdodCkpICsgLjI1ZW0pKi0xKSAtIC4wNDRlbSl9W2Nkcy10ZXh0Kj1wMF0sW2Nkcy10ZXh0Kj1wMV17Zm9udC1zaXplOjEuMnJlbTtmb250LXdlaWdodDo0MDA7Y29sb3I6dmFyKC0tY2RzLWdsb2JhbC10eXBv'@; put 'Z3JhcGh5LWNvbG9yLTUwMCk7bGluZS1oZWlnaHQ6MS4xNjY2N2VtO2xldHRlci1zcGFjaW5nOi0uMDA4MzMzZW19W2Nkcy10ZXh0Kj1wMF06YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi1ib3R0b206Y2FsYygoKHZhcigtLWNkcy1nbG9i'@; put 'YWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCkgKyBjYWxjKCgxLjE2NjY3ZW0gLSAxZW0pLzIpKSotMSkgKyAuMDM3ZW0pfVtjZHMtdGV4dCo9cDBdOmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi10b3A6Y2FsYygoKCgxZW0gLSB2YXIo'@; put 'LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQpIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWFzY2VuZGVyLWhlaWdodCkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHkteC1oZWlnaHQpKSArIGNhbGMoKDEuMTY2NjdlbSAtIDFlbSkvMikpKi0xKSAtIC4w'@; put 'NDRlbSl9W2Nkcy10ZXh0Kj1wMV17Zm9udC1zaXplOi43cmVtO2NvbG9yOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1jb2xvci00MDApO2xpbmUtaGVpZ2h0OjEuNzE0MjllbTtsZXR0ZXItc3BhY2luZzotLjAxNDI4NmVtfVtjZHMtdGV4dCo9cDFdOmJlZm9yZXtjb250ZW50OiIiO2Rp'@; put 'c3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tYm90dG9tOmNhbGMoKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQpICsgY2FsYygoMS43MTQyOWVtIC0gMWVtKS8yKSkqLTEpICsgLjAzN2VtKX1bY2RzLXRleHQqPXAxXTphZnRlcntjb250ZW50'@; put 'OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tdG9wOmNhbGMoKCgoMWVtIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0KSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1hc2NlbmRlci1oZWlnaHQpIC0gdmFyKC0tY2RzLWds'@; put 'b2JhbC10eXBvZ3JhcGh5LXgtaGVpZ2h0KSkgKyBjYWxjKCgxLjcxNDI5ZW0gLSAxZW0pLzIpKSotMSkgLSAuMDQ0ZW0pfVtjZHMtdGV4dCo9cDJdLFtjZHMtdGV4dCo9cDNdLFtjZHMtdGV4dCo9cDRdLFtjZHMtdGV4dCo9cDVde2ZvbnQtc2l6ZTouNjVyZW07Zm9udC13ZWlnaHQ6NTAwO2Nv'@; put 'bG9yOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1jb2xvci00MDApO2xpbmUtaGVpZ2h0OjEuODQ2MTVlbTtsZXR0ZXItc3BhY2luZzotLjAwNzY5MmVtfVtjZHMtdGV4dCo9cDJdOmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tYm90'@; put 'dG9tOmNhbGMoKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQpICsgY2FsYygoMS44NDYxNWVtIC0gMWVtKS8yKSkqLTEpICsgLjAzN2VtKX1bY2RzLXRleHQqPXAyXTphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJn'@; put 'aW4tdG9wOmNhbGMoKCgoMWVtIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0KSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1hc2NlbmRlci1oZWlnaHQpIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXgtaGVpZ2h0KSkgKyBjYWxjKCgxLjg0'@; put 'NjE1ZW0gLSAxZW0pLzIpKSotMSkgLSAuMDQ0ZW0pfVtjZHMtdGV4dCo9cDNdLFtjZHMtdGV4dCo9cDRdLFtjZHMtdGV4dCo9cDVde2ZvbnQtd2VpZ2h0OjQwMH1bY2RzLXRleHQqPXAzXTpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLWJv'@; put 'dHRvbTpjYWxjKCgodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0KSArIGNhbGMoKDEuODQ2MTVlbSAtIDFlbSkvMikpKi0xKSArIC4wMzdlbSl9W2Nkcy10ZXh0Kj1wM106YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFy'@; put 'Z2luLXRvcDpjYWxjKCgoKDFlbSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYXNjZW5kZXItaGVpZ2h0KSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS14LWhlaWdodCkpICsgY2FsYygoMS44'@; put 'NDYxNWVtIC0gMWVtKS8yKSkqLTEpIC0gLjA0NGVtKX1bY2RzLXRleHQqPXA0XSxbY2RzLXRleHQqPXA1XXtmb250LXNpemU6LjZyZW07Zm9udC13ZWlnaHQ6NjAwO2xpbmUtaGVpZ2h0OjJlbTtsZXR0ZXItc3BhY2luZzotLjAwODMzM2VtfVtjZHMtdGV4dCo9cDRdOmJlZm9yZXtjb250ZW50'@; put 'OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tYm90dG9tOmNhbGMoKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQpICsgLjVlbSkqLTEpICsgLjAzN2VtKX1bY2RzLXRleHQqPXA0XTphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6Ymxv'@; put 'Y2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tdG9wOmNhbGMoKCgoMWVtIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0KSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1hc2NlbmRlci1oZWlnaHQpIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5'@; put 'LXgtaGVpZ2h0KSkgKyAuNWVtKSotMSkgLSAuMDQ0ZW0pfVtjZHMtdGV4dCo9cDVde2ZvbnQtd2VpZ2h0OjQwMH1bY2RzLXRleHQqPXA1XTpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLWJvdHRvbTpjYWxjKCgodmFyKC0tY2RzLWdsb2Jh'@; put 'bC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0KSArIC41ZW0pKi0xKSArIC4wMzdlbSl9W2Nkcy10ZXh0Kj1wNV06YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLXRvcDpjYWxjKCgoKDFlbSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBo'@; put 'eS10b3AtZ2FwLWhlaWdodCkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYXNjZW5kZXItaGVpZ2h0KSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS14LWhlaWdodCkpICsgLjVlbSkqLTEpIC0gLjA0NGVtKX1bY2RzLXRleHQqPXA2XSxbY2RzLXRleHQqPXA3XSxbY2RzLXRl'@; put 'eHQqPXA4XXtmb250LXNpemU6LjU1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktY29sb3ItNDAwKTtsaW5lLWhlaWdodDoxLjA5MDkwOWVtO2xldHRlci1zcGFjaW5nOi4wMTgxODJlbX1bY2RzLXRleHQqPXA2XTpiZWZvcmV7Y29udGVudDoi'@; put 'IjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLWJvdHRvbTpjYWxjKCgodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0KSArIGNhbGMoKDEuMDkwOTA5ZW0gLSAxZW0pLzIpKSotMSkgKyAuMDM3ZW0pfVtjZHMtdGV4dCo9cDZdOmFmdGVye2Nv'@; put 'bnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi10b3A6Y2FsYygoKCgxZW0gLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQpIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWFzY2VuZGVyLWhlaWdodCkgLSB2YXIoLS1j'@; put 'ZHMtZ2xvYmFsLXR5cG9ncmFwaHkteC1oZWlnaHQpKSArIGNhbGMoKDEuMDkwOTA5ZW0gLSAxZW0pLzIpKSotMSkgLSAuMDQ0ZW0pfVtjZHMtdGV4dCo9cDddLFtjZHMtdGV4dCo9cDhde2ZvbnQtd2VpZ2h0OjQwMH1bY2RzLXRleHQqPXA3XTpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmJs'@; put 'b2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLWJvdHRvbTpjYWxjKCgodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0KSArIGNhbGMoKDEuMDkwOTA5ZW0gLSAxZW0pLzIpKSotMSkgKyAuMDM3ZW0pfVtjZHMtdGV4dCo9cDddOmFmdGVye2NvbnRlbnQ6IiI7ZGlz'@; put 'cGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi10b3A6Y2FsYygoKCgxZW0gLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQpIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWFzY2VuZGVyLWhlaWdodCkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5'@; put 'cG9ncmFwaHkteC1oZWlnaHQpKSArIGNhbGMoKDEuMDkwOTA5ZW0gLSAxZW0pLzIpKSotMSkgLSAuMDQ0ZW0pfVtjZHMtdGV4dCo9cDhde2ZvbnQtc2l6ZTouNXJlbTtsaW5lLWhlaWdodDoxLjJlbTtsZXR0ZXItc3BhY2luZzouMDJlbX1bY2RzLXRleHQqPXA4XTpiZWZvcmV7Y29udGVudDoi'@; put 'IjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLWJvdHRvbTpjYWxjKCgodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0KSArIGNhbGMoKDEuMmVtIC0gMWVtKS8yKSkqLTEpICsgLjAzN2VtKX1bY2RzLXRleHQqPXA4XTphZnRlcntjb250ZW50'@; put 'OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tdG9wOmNhbGMoKCgoMWVtIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0KSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1hc2NlbmRlci1oZWlnaHQpIC0gdmFyKC0tY2RzLWds'@; put 'b2JhbC10eXBvZ3JhcGh5LXgtaGVpZ2h0KSkgKyBjYWxjKCgxLjJlbSAtIDFlbSkvMikpKi0xKSAtIC4wNDRlbSl9Omhvc3QsOnJvb3R7LS1cM2I0IDE6dmFyKC0tY2RzLWdsb2JhbC1sYXlvdXQtc3BhY2UteHh4cyk7LS1cM2I0IDI6dmFyKC0tY2RzLWdsb2JhbC1sYXlvdXQtc3BhY2UteHhz'@; put 'KTstLVwzYjQgMzp2YXIoLS1jZHMtZ2xvYmFsLWxheW91dC1zcGFjZS14cyk7LS1cM2I0IDQ6dmFyKC0tY2RzLWdsb2JhbC1sYXlvdXQtc3BhY2Utc20pOy0tXDNiNCA1OnZhcigtLWNkcy1nbG9iYWwtbGF5b3V0LXNwYWNlLW1kKTstLVwzYjQgNjp2YXIoLS1jZHMtZ2xvYmFsLWxheW91dC1z'@; put 'cGFjZS1sZyk7LS1cM2I0IDc6dmFyKC0tY2RzLWdsb2JhbC1sYXlvdXQtc3BhY2UteGwpOy0tXDNiNCA4OnZhcigtLWNkcy1nbG9iYWwtbGF5b3V0LXNwYWNlLXh4bCk7LS1cM2I0IDk6dmFyKC0tY2RzLWdsb2JhbC1sYXlvdXQtc3BhY2UteHh4bCl9W2Nkcy1sYXlvdXQqPSJhbGlnbjpmaWxs'@; put 'Il0+KntmbGV4LWdyb3c6MSFpbXBvcnRhbnQ7ZmxleC1iYXNpczowIWltcG9ydGFudH1bY2RzLWxheW91dH49IndyYXA6bm9uZSJde2ZsZXgtd3JhcDpub3dyYXAhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iYWxpZ246c3RyZXRjaCJde2ZsZXgtZ3JvdzoxIWltcG9ydGFudH1bY2RzLWxheW91'@; put 'dCo9ImFsaWduOnNocmluayJde2ZsZXgtc2hyaW5rOjEhaW1wb3J0YW50O2ZsZXgtZ3JvdzowIWltcG9ydGFudH1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7W2Nkcy1sYXlvdXQqPSJhbGlnbkB4czpmaWxsIl0+KntmbGV4LWdyb3c6MSFpbXBvcnRhbnQ7ZmxleC1iYXNpczowIWltcG9ydGFu'@; put 'dH1bY2RzLWxheW91dH49IndyYXBAeHM6bm9uZSJde2ZsZXgtd3JhcDpub3dyYXAhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6c3RyZXRjaCJde2ZsZXgtZ3JvdzoxIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImFsaWduQHhzOnNocmluayJde2ZsZXgtc2hyaW5rOjEhaW1wb3J0'@; put 'YW50O2ZsZXgtZ3JvdzowIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpe1tjZHMtbGF5b3V0Kj0iYWxpZ25Ac206ZmlsbCJdPip7ZmxleC1ncm93OjEhaW1wb3J0YW50O2ZsZXgtYmFzaXM6MCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJ3cmFwQHNtOm5vbmUiXXtmbGV4LXdy'@; put 'YXA6bm93cmFwIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImFsaWduQHNtOnN0cmV0Y2giXXtmbGV4LWdyb3c6MSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTpzaHJpbmsiXXtmbGV4LXNocmluazoxIWltcG9ydGFudDtmbGV4LWdyb3c6MCFpbXBvcnRhbnR9fUBtZWRpYSAobWlu'@; put 'LXdpZHRoOjk5MnB4KXtbY2RzLWxheW91dCo9ImFsaWduQG1kOmZpbGwiXT4qe2ZsZXgtZ3JvdzoxIWltcG9ydGFudDtmbGV4LWJhc2lzOjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0id3JhcEBtZDpub25lIl17ZmxleC13cmFwOm5vd3JhcCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJhbGln'@; put 'bkBtZDpzdHJldGNoIl17ZmxleC1ncm93OjEhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6c2hyaW5rIl17ZmxleC1zaHJpbms6MSFpbXBvcnRhbnQ7ZmxleC1ncm93OjAhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpe1tjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6'@; put 'ZmlsbCJdPip7ZmxleC1ncm93OjEhaW1wb3J0YW50O2ZsZXgtYmFzaXM6MCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJ3cmFwQGxnOm5vbmUiXXtmbGV4LXdyYXA6bm93cmFwIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImFsaWduQGxnOnN0cmV0Y2giXXtmbGV4LWdyb3c6MSFpbXBvcnRhbnR9'@; put 'W2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpzaHJpbmsiXXtmbGV4LXNocmluazoxIWltcG9ydGFudDtmbGV4LWdyb3c6MCFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjE0NDBweCl7W2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDpmaWxsIl0+KntmbGV4LWdyb3c6MSFpbXBvcnRhbnQ7ZmxleC1i'@; put 'YXNpczowIWltcG9ydGFudH1bY2RzLWxheW91dH49IndyYXBAeGw6bm9uZSJde2ZsZXgtd3JhcDpub3dyYXAhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6c3RyZXRjaCJde2ZsZXgtZ3JvdzoxIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImFsaWduQHhsOnNocmluayJde2ZsZXgt'@; put 'c2hyaW5rOjEhaW1wb3J0YW50O2ZsZXgtZ3JvdzowIWltcG9ydGFudH19W2Nkcy1sYXlvdXR+PWhvcml6b250YWxde2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC13cmFwOndyYXA7anVzdGlmeS1pdGVtczpmbGV4LXN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7d2lk'@; put 'dGg6MTAwJTttYXJnaW46MDttaW4taGVpZ2h0OjB9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdPltjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy10ZXh0XXt3'@; put 'aWR0aDppbml0aWFsIWltcG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduOnRvcCJde2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpib3R0b20iXXthbGlnbi1pdGVtczpmbGV4'@; put 'LWVuZH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduOmxlZnQiXXtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduOnJpZ2h0Il17anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfVtjZHMt'@; put 'bGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ246dmVydGljYWwtY2VudGVyIl17YWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWNvbnRlbnQ6Y2VudGVyfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ246aG9yaXpvbnRhbC1jZW50ZXIiXXtqdXN0'@; put 'aWZ5LWNvbnRlbnQ6Y2VudGVyfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ246Y2VudGVyIl17YWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1s'@; put 'YXlvdXQqPSJvcmRlcjpyZXZlcnNlIl17ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2V9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjp2ZXJ0aWNhbC1zdHJldGNoIl17YWxpZ24taXRlbXM6c3RyZXRjaDthbGlnbi1jb250ZW50OnN0cmV0Y2g7ZmxleC1ncm93'@; put 'OjF9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpob3Jpem9udGFsLXN0cmV0Y2giXXtqdXN0aWZ5LWNvbnRlbnQ6c3RyZXRjaDtmbGV4LWdyb3c6MX1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduOmhvcml6b250YWwtc3RyZXRj'@; put 'aCJdPip7ZmxleC1ncm93OjF9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpzdHJldGNoIl17YWxpZ24taXRlbXM6c3RyZXRjaDthbGlnbi1jb250ZW50OnN0cmV0Y2g7ZmxleC1ncm93OjF9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJh'@; put 'bGlnbjpzdHJldGNoIl0+KntmbGV4LWdyb3c6MX1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjpjZW50ZXIiXSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjp2ZXJ0aWNhbC1jZW50ZXIiXXthbGlnbi1zZWxmOmNlbnRlcn1b'@; put 'Y2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjpjZW50ZXIiXSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjpob3Jpem9udGFsLWNlbnRlciJde21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50O21hcmdpbi1yaWdodDphdXRvIWlt'@; put 'cG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjp0b3AiXXthbGlnbi1zZWxmOmZsZXgtc3RhcnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdPltjZHMtbGF5b3V0Kj0iYWxpZ246Ym90dG9tIl17YWxpZ24tc2VsZjpmbGV4LWVuZH1bY2RzLWxheW91'@; put 'dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjpyaWdodCJde21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxheW91dCo9ImFsaWduOmxlZnQiXXttYXJnaW4tcmlnaHQ6YXV0byFpbXBvcnRhbnR9QG1lZGlhIChtaW4td2lk'@; put 'dGg6NTc2cHgpe1tjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6dG9wIl17YWxpZ24taXRlbXM6ZmxleC1zdGFydH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduQHhzOmJvdHRvbSJde2FsaWduLWl0ZW1zOmZsZXgtZW5kfVtj'@; put 'ZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6bGVmdCJde2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6cmlnaHQiXXtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9W2Nkcy1s'@; put 'YXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czp2ZXJ0aWNhbC1jZW50ZXIiXXthbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24tY29udGVudDpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czpob3Jpem9udGFsLWNlbnRlciJd'@; put 'e2p1c3RpZnktY29udGVudDpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czpjZW50ZXIiXXthbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24tY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn1bY2RzLWxheW91dH49aG9yaXpvbnRh'@; put 'bF1bY2RzLWxheW91dCo9Im9yZGVyQHhzOnJldmVyc2UiXXtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZX1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduQHhzOnZlcnRpY2FsLXN0cmV0Y2giXXthbGlnbi1pdGVtczpzdHJldGNoO2FsaWduLWNvbnRlbnQ6c3Ry'@; put 'ZXRjaDtmbGV4LWdyb3c6MX1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduQHhzOmhvcml6b250YWwtc3RyZXRjaCJde2p1c3RpZnktY29udGVudDpzdHJldGNoO2ZsZXgtZ3JvdzoxfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ25A'@; put 'eHM6aG9yaXpvbnRhbC1zdHJldGNoIl0+KntmbGV4LWdyb3c6MX1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduQHhzOnN0cmV0Y2giXXthbGlnbi1pdGVtczpzdHJldGNoO2FsaWduLWNvbnRlbnQ6c3RyZXRjaDtmbGV4LWdyb3c6MX1bY2RzLWxheW91dH49aG9y'@; put 'aXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduQHhzOnN0cmV0Y2giXT4qe2ZsZXgtZ3JvdzoxfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxheW91dCo9ImFsaWduQHhzOmNlbnRlciJdLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxheW91dCo9ImFsaWduQHhzOnZlcnRp'@; put 'Y2FsLWNlbnRlciJde2FsaWduLXNlbGY6Y2VudGVyfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxheW91dCo9ImFsaWduQHhzOmNlbnRlciJdLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxheW91dCo9ImFsaWduQHhzOmhvcml6b250YWwtY2VudGVyIl17bWFyZ2luLWxl'@; put 'ZnQ6YXV0byFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxheW91dCo9ImFsaWduQHhzOnRvcCJde2FsaWduLXNlbGY6ZmxleC1zdGFydH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGln'@; put 'bkB4czpib3R0b20iXXthbGlnbi1zZWxmOmZsZXgtZW5kfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxheW91dCo9ImFsaWduQHhzOnJpZ2h0Il17bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdPltjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6'@; put 'bGVmdCJde21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpe1tjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206dG9wIl17YWxpZ24taXRlbXM6ZmxleC1zdGFydH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2Rz'@; put 'LWxheW91dCo9ImFsaWduQHNtOmJvdHRvbSJde2FsaWduLWl0ZW1zOmZsZXgtZW5kfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206bGVmdCJde2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0'@; put 'Kj0iYWxpZ25Ac206cmlnaHQiXXtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTp2ZXJ0aWNhbC1jZW50ZXIiXXthbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24tY29udGVudDpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWhv'@; put 'cml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTpob3Jpem9udGFsLWNlbnRlciJde2p1c3RpZnktY29udGVudDpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTpjZW50ZXIiXXthbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24tY29udGVudDpj'@; put 'ZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9Im9yZGVyQHNtOnJldmVyc2UiXXtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZX1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduQHNtOnZlcnRp'@; put 'Y2FsLXN0cmV0Y2giXXthbGlnbi1pdGVtczpzdHJldGNoO2FsaWduLWNvbnRlbnQ6c3RyZXRjaDtmbGV4LWdyb3c6MX1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduQHNtOmhvcml6b250YWwtc3RyZXRjaCJde2p1c3RpZnktY29udGVudDpzdHJldGNoO2ZsZXgt'@; put 'Z3JvdzoxfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206aG9yaXpvbnRhbC1zdHJldGNoIl0+KntmbGV4LWdyb3c6MX1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduQHNtOnN0cmV0Y2giXXthbGlnbi1pdGVtczpzdHJldGNo'@; put 'O2FsaWduLWNvbnRlbnQ6c3RyZXRjaDtmbGV4LWdyb3c6MX1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduQHNtOnN0cmV0Y2giXT4qe2ZsZXgtZ3JvdzoxfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxheW91dCo9ImFsaWduQHNtOmNlbnRlciJdLFtj'@; put 'ZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxheW91dCo9ImFsaWduQHNtOnZlcnRpY2FsLWNlbnRlciJde2FsaWduLXNlbGY6Y2VudGVyfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxheW91dCo9ImFsaWduQHNtOmNlbnRlciJdLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5b'@; put 'Y2RzLWxheW91dCo9ImFsaWduQHNtOmhvcml6b250YWwtY2VudGVyIl17bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxheW91dCo9ImFsaWduQHNtOnRvcCJde2FsaWduLXNlbGY6Zmxl'@; put 'eC1zdGFydH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTpib3R0b20iXXthbGlnbi1zZWxmOmZsZXgtZW5kfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxheW91dCo9ImFsaWduQHNtOnJpZ2h0Il17bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRh'@; put 'bnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdPltjZHMtbGF5b3V0Kj0iYWxpZ25Ac206bGVmdCJde21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpe1tjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6dG9wIl17'@; put 'YWxpZ24taXRlbXM6ZmxleC1zdGFydH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduQG1kOmJvdHRvbSJde2FsaWduLWl0ZW1zOmZsZXgtZW5kfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6bGVmdCJde2p1c3RpZnktY29u'@; put 'dGVudDpmbGV4LXN0YXJ0fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6cmlnaHQiXXtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDp2ZXJ0aWNhbC1jZW50ZXIiXXthbGln'@; put 'bi1pdGVtczpjZW50ZXI7YWxpZ24tY29udGVudDpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDpob3Jpem9udGFsLWNlbnRlciJde2p1c3RpZnktY29udGVudDpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJh'@; put 'bGlnbkBtZDpjZW50ZXIiXXthbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24tY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9Im9yZGVyQG1kOnJldmVyc2UiXXtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZX1b'@; put 'Y2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduQG1kOnZlcnRpY2FsLXN0cmV0Y2giXXthbGlnbi1pdGVtczpzdHJldGNoO2FsaWduLWNvbnRlbnQ6c3RyZXRjaDtmbGV4LWdyb3c6MX1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduQG1k'@; put 'Omhvcml6b250YWwtc3RyZXRjaCJde2p1c3RpZnktY29udGVudDpzdHJldGNoO2ZsZXgtZ3JvdzoxfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6aG9yaXpvbnRhbC1zdHJldGNoIl0+KntmbGV4LWdyb3c6MX1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1b'@; put 'Y2RzLWxheW91dCo9ImFsaWduQG1kOnN0cmV0Y2giXXthbGlnbi1pdGVtczpzdHJldGNoO2FsaWduLWNvbnRlbnQ6c3RyZXRjaDtmbGV4LWdyb3c6MX1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduQG1kOnN0cmV0Y2giXT4qe2ZsZXgtZ3JvdzoxfVtjZHMtbGF5'@; put 'b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxheW91dCo9ImFsaWduQG1kOmNlbnRlciJdLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxheW91dCo9ImFsaWduQG1kOnZlcnRpY2FsLWNlbnRlciJde2FsaWduLXNlbGY6Y2VudGVyfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxh'@; put 'eW91dCo9ImFsaWduQG1kOmNlbnRlciJdLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxheW91dCo9ImFsaWduQG1kOmhvcml6b250YWwtY2VudGVyIl17bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj1ob3Jp'@; put 'em9udGFsXT5bY2RzLWxheW91dCo9ImFsaWduQG1kOnRvcCJde2FsaWduLXNlbGY6ZmxleC1zdGFydH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDpib3R0b20iXXthbGlnbi1zZWxmOmZsZXgtZW5kfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2Rz'@; put 'LWxheW91dCo9ImFsaWduQG1kOnJpZ2h0Il17bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdPltjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6bGVmdCJde21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXtb'@; put 'Y2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduQGxnOnRvcCJde2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpib3R0b20iXXthbGlnbi1pdGVtczpmbGV4LWVuZH1bY2RzLWxheW91dH49'@; put 'aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduQGxnOmxlZnQiXXtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduQGxnOnJpZ2h0Il17anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfVtjZHMtbGF5b3V0fj1ob3Jp'@; put 'em9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6dmVydGljYWwtY2VudGVyIl17YWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWNvbnRlbnQ6Y2VudGVyfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6aG9yaXpvbnRhbC1jZW50ZXIiXXtqdXN0aWZ5LWNv'@; put 'bnRlbnQ6Y2VudGVyfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6Y2VudGVyIl17YWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlv'@; put 'dXQqPSJvcmRlckBsZzpyZXZlcnNlIl17ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2V9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzp2ZXJ0aWNhbC1zdHJldGNoIl17YWxpZ24taXRlbXM6c3RyZXRjaDthbGlnbi1jb250ZW50OnN0cmV0Y2g7ZmxleC1n'@; put 'cm93OjF9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpob3Jpem9udGFsLXN0cmV0Y2giXXtqdXN0aWZ5LWNvbnRlbnQ6c3RyZXRjaDtmbGV4LWdyb3c6MX1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduQGxnOmhvcml6b250'@; put 'YWwtc3RyZXRjaCJdPip7ZmxleC1ncm93OjF9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpzdHJldGNoIl17YWxpZ24taXRlbXM6c3RyZXRjaDthbGlnbi1jb250ZW50OnN0cmV0Y2g7ZmxleC1ncm93OjF9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nk'@; put 'cy1sYXlvdXQqPSJhbGlnbkBsZzpzdHJldGNoIl0+KntmbGV4LWdyb3c6MX1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpjZW50ZXIiXSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzp2ZXJ0aWNhbC1jZW50ZXIi'@; put 'XXthbGlnbi1zZWxmOmNlbnRlcn1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpjZW50ZXIiXSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpob3Jpem9udGFsLWNlbnRlciJde21hcmdpbi1sZWZ0OmF1dG8haW1w'@; put 'b3J0YW50O21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzp0b3AiXXthbGlnbi1zZWxmOmZsZXgtc3RhcnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdPltjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6Ym90dG9t'@; put 'Il17YWxpZ24tc2VsZjpmbGV4LWVuZH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpyaWdodCJde21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxheW91dCo9ImFsaWduQGxnOmxlZnQiXXttYXJn'@; put 'aW4tcmlnaHQ6YXV0byFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjE0NDBweCl7W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDp0b3AiXXthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0i'@; put 'YWxpZ25AeGw6Ym90dG9tIl17YWxpZ24taXRlbXM6ZmxleC1lbmR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDpsZWZ0Il17anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkB4'@; put 'bDpyaWdodCJde2p1c3RpZnktY29udGVudDpmbGV4LWVuZH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduQHhsOnZlcnRpY2FsLWNlbnRlciJde2FsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1jb250ZW50OmNlbnRlcn1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1b'@; put 'Y2RzLWxheW91dCo9ImFsaWduQHhsOmhvcml6b250YWwtY2VudGVyIl17anVzdGlmeS1jb250ZW50OmNlbnRlcn1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduQHhsOmNlbnRlciJde2FsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1jb250ZW50OmNlbnRlcjtqdXN0'@; put 'aWZ5LWNvbnRlbnQ6Y2VudGVyfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0ib3JkZXJAeGw6cmV2ZXJzZSJde2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6dmVydGljYWwtc3RyZXRj'@; put 'aCJde2FsaWduLWl0ZW1zOnN0cmV0Y2g7YWxpZ24tY29udGVudDpzdHJldGNoO2ZsZXgtZ3JvdzoxfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6aG9yaXpvbnRhbC1zdHJldGNoIl17anVzdGlmeS1jb250ZW50OnN0cmV0Y2g7ZmxleC1ncm93OjF9W2Nk'@; put 'cy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDpob3Jpem9udGFsLXN0cmV0Y2giXT4qe2ZsZXgtZ3JvdzoxfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6c3RyZXRjaCJde2FsaWduLWl0ZW1zOnN0cmV0Y2g7YWxpZ24tY29u'@; put 'dGVudDpzdHJldGNoO2ZsZXgtZ3JvdzoxfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6c3RyZXRjaCJdPip7ZmxleC1ncm93OjF9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdPltjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6Y2VudGVyIl0sW2Nkcy1sYXlvdXR+'@; put 'PWhvcml6b250YWxdPltjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6dmVydGljYWwtY2VudGVyIl17YWxpZ24tc2VsZjpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdPltjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6Y2VudGVyIl0sW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdPltjZHMtbGF5b3V0'@; put 'Kj0iYWxpZ25AeGw6aG9yaXpvbnRhbC1jZW50ZXIiXXttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdPltjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6dG9wIl17YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fVtj'@; put 'ZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxheW91dCo9ImFsaWduQHhsOmJvdHRvbSJde2FsaWduLXNlbGY6ZmxleC1lbmR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdPltjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6cmlnaHQiXXttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudH1bY2RzLWxh'@; put 'eW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDpsZWZ0Il17bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50fX1bY2RzLWxheW91dH49dmVydGljYWxde3dpZHRoOjEwMCU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LXN0'@; put 'YXJ0fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0sW2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ246dG9wIl17anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ246Ym90dG9tIl17anVzdGlmeS1jb250'@; put 'ZW50OmZsZXgtZW5kfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduOmxlZnQiXXthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduOnJpZ2h0Il17YWxpZ24taXRlbXM6ZmxleC1lbmR9W2Nkcy1sYXlv'@; put 'dXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ246dmVydGljYWwtY2VudGVyIl17anVzdGlmeS1jb250ZW50OmNlbnRlcn1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpob3Jpem9udGFsLWNlbnRlciJde2FsaWduLWl0ZW1zOmNlbnRlcn1bY2RzLWxheW91'@; put 'dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpjZW50ZXIiXXthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJvcmRlcjpyZXZlcnNlIl17ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2V9'@; put 'W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ246dmVydGljYWwtc3RyZXRjaCJde2p1c3RpZnktY29udGVudDpzdHJldGNofVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduOnZlcnRpY2FsLXN0cmV0Y2giXT4qe2ZsZXgtZ3JvdzoxfVtjZHMt'@; put 'bGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduOmhvcml6b250YWwtc3RyZXRjaCJde2FsaWduLWl0ZW1zOnN0cmV0Y2h9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ246c3RyZXRjaCJde2FsaWduLWl0ZW1zOnN0cmV0Y2g7anVzdGlmeS1jb250ZW50'@; put 'OnN0cmV0Y2h9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ246c3RyZXRjaCJdPip7ZmxleC1ncm93OjF9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXT5bY2RzLWxheW91dCo9ImFsaWduOmNlbnRlciJdLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJh'@; put 'bGlnbjp2ZXJ0aWNhbC1jZW50ZXIiXXttYXJnaW4tdG9wOmF1dG87bWFyZ2luLWJvdHRvbTphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjpjZW50ZXIiXSxbY2RzLWxheW91dH49dmVydGljYWxdPltjZHMtbGF5b3V0Kj0iYWxpZ246aG9yaXpvbnRhbC1j'@; put 'ZW50ZXIiXXthbGlnbi1zZWxmOmNlbnRlcn1bY2RzLWxheW91dH49dmVydGljYWxdPltjZHMtbGF5b3V0Kj0iYWxpZ246dG9wIl17bWFyZ2luLWJvdHRvbTphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49dmVydGljYWxdPltjZHMtbGF5b3V0Kj0iYWxpZ246Ym90dG9tIl17bWFyZ2luLXRv'@; put 'cDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49dmVydGljYWxdPltjZHMtbGF5b3V0Kj0iYWxpZ246cmlnaHQiXXttYXJnaW4tbGVmdDphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbjpsZWZ0Il17bWFyZ2luLXJpZ2h0OmF1dG99QG1lZGlhIChtaW4t'@; put 'd2lkdGg6NTc2cHgpe1tjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduQHhzOnRvcCJde2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduQHhzOmJvdHRvbSJde2p1c3RpZnktY29udGVudDpmbGV4'@; put 'LWVuZH1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czpsZWZ0Il17YWxpZ24taXRlbXM6ZmxleC1zdGFydH1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czpyaWdodCJde2FsaWduLWl0ZW1zOmZsZXgtZW5kfVtjZHMtbGF5b3V0'@; put 'fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduQHhzOnZlcnRpY2FsLWNlbnRlciJde2p1c3RpZnktY29udGVudDpjZW50ZXJ9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6aG9yaXpvbnRhbC1jZW50ZXIiXXthbGlnbi1pdGVtczpjZW50ZXJ9W2Nkcy1s'@; put 'YXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6Y2VudGVyIl17YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0ib3JkZXJAeHM6cmV2ZXJzZSJde2ZsZXgtZGlyZWN0aW9uOmNvbHVt'@; put 'bi1yZXZlcnNlfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduQHhzOnZlcnRpY2FsLXN0cmV0Y2giXXtqdXN0aWZ5LWNvbnRlbnQ6c3RyZXRjaH1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czp2ZXJ0aWNhbC1zdHJldGNoIl0+Kntm'@; put 'bGV4LWdyb3c6MX1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czpob3Jpem9udGFsLXN0cmV0Y2giXXthbGlnbi1pdGVtczpzdHJldGNofVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduQHhzOnN0cmV0Y2giXXthbGlnbi1pdGVtczpz'@; put 'dHJldGNoO2p1c3RpZnktY29udGVudDpzdHJldGNofVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduQHhzOnN0cmV0Y2giXT4qe2ZsZXgtZ3JvdzoxfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbkB4czpjZW50ZXIiXSxbY2RzLWxheW91'@; put 'dH49dmVydGljYWxdPltjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6dmVydGljYWwtY2VudGVyIl17bWFyZ2luLXRvcDphdXRvO21hcmdpbi1ib3R0b206YXV0b31bY2RzLWxheW91dH49dmVydGljYWxdPltjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6Y2VudGVyIl0sW2Nkcy1sYXlvdXR+PXZlcnRpY2Fs'@; put 'XT5bY2RzLWxheW91dCo9ImFsaWduQHhzOmhvcml6b250YWwtY2VudGVyIl17YWxpZ24tc2VsZjpjZW50ZXJ9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXT5bY2RzLWxheW91dCo9ImFsaWduQHhzOnRvcCJde21hcmdpbi1ib3R0b206YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2Fs'@; put 'XT5bY2RzLWxheW91dCo9ImFsaWduQHhzOmJvdHRvbSJde21hcmdpbi10b3A6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXT5bY2RzLWxheW91dCo9ImFsaWduQHhzOnJpZ2h0Il17bWFyZ2luLWxlZnQ6YXV0b31bY2RzLWxheW91dH49dmVydGljYWxdPltjZHMtbGF5b3V0'@; put 'Kj0iYWxpZ25AeHM6bGVmdCJde21hcmdpbi1yaWdodDphdXRvfX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206dG9wIl17anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtj'@; put 'ZHMtbGF5b3V0Kj0iYWxpZ25Ac206Ym90dG9tIl17anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduQHNtOmxlZnQiXXthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9'@; put 'ImFsaWduQHNtOnJpZ2h0Il17YWxpZ24taXRlbXM6ZmxleC1lbmR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206dmVydGljYWwtY2VudGVyIl17anVzdGlmeS1jb250ZW50OmNlbnRlcn1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGln'@; put 'bkBzbTpob3Jpem9udGFsLWNlbnRlciJde2FsaWduLWl0ZW1zOmNlbnRlcn1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTpjZW50ZXIiXXthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn1bY2RzLWxheW91dH49dmVydGljYWxdW2Nk'@; put 'cy1sYXlvdXQqPSJvcmRlckBzbTpyZXZlcnNlIl17ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2V9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206dmVydGljYWwtc3RyZXRjaCJde2p1c3RpZnktY29udGVudDpzdHJldGNofVtjZHMtbGF5b3V0fj12ZXJ0'@; put 'aWNhbF1bY2RzLWxheW91dCo9ImFsaWduQHNtOnZlcnRpY2FsLXN0cmV0Y2giXT4qe2ZsZXgtZ3JvdzoxfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduQHNtOmhvcml6b250YWwtc3RyZXRjaCJde2FsaWduLWl0ZW1zOnN0cmV0Y2h9W2Nkcy1sYXlvdXR+PXZlcnRp'@; put 'Y2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206c3RyZXRjaCJde2FsaWduLWl0ZW1zOnN0cmV0Y2g7anVzdGlmeS1jb250ZW50OnN0cmV0Y2h9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206c3RyZXRjaCJdPip7ZmxleC1ncm93OjF9W2Nkcy1sYXlvdXR+PXZl'@; put 'cnRpY2FsXT5bY2RzLWxheW91dCo9ImFsaWduQHNtOmNlbnRlciJdLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTp2ZXJ0aWNhbC1jZW50ZXIiXXttYXJnaW4tdG9wOmF1dG87bWFyZ2luLWJvdHRvbTphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nk'@; put 'cy1sYXlvdXQqPSJhbGlnbkBzbTpjZW50ZXIiXSxbY2RzLWxheW91dH49dmVydGljYWxdPltjZHMtbGF5b3V0Kj0iYWxpZ25Ac206aG9yaXpvbnRhbC1jZW50ZXIiXXthbGlnbi1zZWxmOmNlbnRlcn1bY2RzLWxheW91dH49dmVydGljYWxdPltjZHMtbGF5b3V0Kj0iYWxpZ25Ac206dG9wIl17'@; put 'bWFyZ2luLWJvdHRvbTphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49dmVydGljYWxdPltjZHMtbGF5b3V0Kj0iYWxpZ25Ac206Ym90dG9tIl17bWFyZ2luLXRvcDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49dmVydGljYWxdPltjZHMtbGF5b3V0Kj0iYWxpZ25Ac206cmlnaHQiXXtt'@; put 'YXJnaW4tbGVmdDphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTpsZWZ0Il17bWFyZ2luLXJpZ2h0OmF1dG99fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXtbY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDp0b3AiXXtq'@; put 'dXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDpib3R0b20iXXtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6bGVmdCJde2FsaWduLWl0'@; put 'ZW1zOmZsZXgtc3RhcnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6cmlnaHQiXXthbGlnbi1pdGVtczpmbGV4LWVuZH1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDp2ZXJ0aWNhbC1jZW50ZXIiXXtqdXN0aWZ5LWNvbnRl'@; put 'bnQ6Y2VudGVyfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduQG1kOmhvcml6b250YWwtY2VudGVyIl17YWxpZ24taXRlbXM6Y2VudGVyfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduQG1kOmNlbnRlciJde2FsaWduLWl0ZW1zOmNlbnRl'@; put 'cjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9Im9yZGVyQG1kOnJldmVyc2UiXXtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZX1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDp2ZXJ0aWNhbC1z'@; put 'dHJldGNoIl17anVzdGlmeS1jb250ZW50OnN0cmV0Y2h9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6dmVydGljYWwtc3RyZXRjaCJdPip7ZmxleC1ncm93OjF9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6aG9yaXpvbnRh'@; put 'bC1zdHJldGNoIl17YWxpZ24taXRlbXM6c3RyZXRjaH1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDpzdHJldGNoIl17YWxpZ24taXRlbXM6c3RyZXRjaDtqdXN0aWZ5LWNvbnRlbnQ6c3RyZXRjaH1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQq'@; put 'PSJhbGlnbkBtZDpzdHJldGNoIl0+KntmbGV4LWdyb3c6MX1bY2RzLWxheW91dH49dmVydGljYWxdPltjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6Y2VudGVyIl0sW2Nkcy1sYXlvdXR+PXZlcnRpY2FsXT5bY2RzLWxheW91dCo9ImFsaWduQG1kOnZlcnRpY2FsLWNlbnRlciJde21hcmdpbi10b3A6'@; put 'YXV0bzttYXJnaW4tYm90dG9tOmF1dG99W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXT5bY2RzLWxheW91dCo9ImFsaWduQG1kOmNlbnRlciJdLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDpob3Jpem9udGFsLWNlbnRlciJde2FsaWduLXNlbGY6Y2VudGVyfVtj'@; put 'ZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDp0b3AiXXttYXJnaW4tYm90dG9tOmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDpib3R0b20iXXttYXJnaW4tdG9wOmF1dG8haW1wb3J0YW50fVtjZHMt'@; put 'bGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDpyaWdodCJde21hcmdpbi1sZWZ0OmF1dG99W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXT5bY2RzLWxheW91dCo9ImFsaWduQG1kOmxlZnQiXXttYXJnaW4tcmlnaHQ6YXV0b319QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXtb'@; put 'Y2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzp0b3AiXXtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpib3R0b20iXXtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9W2Nkcy1sYXlv'@; put 'dXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6bGVmdCJde2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6cmlnaHQiXXthbGlnbi1pdGVtczpmbGV4LWVuZH1bY2RzLWxheW91dH49dmVydGljYWxdW2Nk'@; put 'cy1sYXlvdXQqPSJhbGlnbkBsZzp2ZXJ0aWNhbC1jZW50ZXIiXXtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduQGxnOmhvcml6b250YWwtY2VudGVyIl17YWxpZ24taXRlbXM6Y2VudGVyfVtjZHMtbGF5b3V0fj12ZXJ0aWNh'@; put 'bF1bY2RzLWxheW91dCo9ImFsaWduQGxnOmNlbnRlciJde2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9Im9yZGVyQGxnOnJldmVyc2UiXXtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZX1bY2Rz'@; put 'LWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzp2ZXJ0aWNhbC1zdHJldGNoIl17anVzdGlmeS1jb250ZW50OnN0cmV0Y2h9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6dmVydGljYWwtc3RyZXRjaCJdPip7ZmxleC1ncm93OjF9W2Nk'@; put 'cy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6aG9yaXpvbnRhbC1zdHJldGNoIl17YWxpZ24taXRlbXM6c3RyZXRjaH1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpzdHJldGNoIl17YWxpZ24taXRlbXM6c3RyZXRjaDtqdXN0aWZ5'@; put 'LWNvbnRlbnQ6c3RyZXRjaH1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpzdHJldGNoIl0+KntmbGV4LWdyb3c6MX1bY2RzLWxheW91dH49dmVydGljYWxdPltjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6Y2VudGVyIl0sW2Nkcy1sYXlvdXR+PXZlcnRpY2FsXT5b'@; put 'Y2RzLWxheW91dCo9ImFsaWduQGxnOnZlcnRpY2FsLWNlbnRlciJde21hcmdpbi10b3A6YXV0bzttYXJnaW4tYm90dG9tOmF1dG99W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXT5bY2RzLWxheW91dCo9ImFsaWduQGxnOmNlbnRlciJdLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQq'@; put 'PSJhbGlnbkBsZzpob3Jpem9udGFsLWNlbnRlciJde2FsaWduLXNlbGY6Y2VudGVyfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzp0b3AiXXttYXJnaW4tYm90dG9tOmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQq'@; put 'PSJhbGlnbkBsZzpib3R0b20iXXttYXJnaW4tdG9wOmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpyaWdodCJde21hcmdpbi1sZWZ0OmF1dG99W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXT5bY2RzLWxheW91dCo9ImFsaWduQGxnOmxl'@; put 'ZnQiXXttYXJnaW4tcmlnaHQ6YXV0b319QG1lZGlhIChtaW4td2lkdGg6MTQ0MHB4KXtbY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDp0b3AiXXtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJh'@; put 'bGlnbkB4bDpib3R0b20iXXtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6bGVmdCJde2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6cmln'@; put 'aHQiXXthbGlnbi1pdGVtczpmbGV4LWVuZH1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDp2ZXJ0aWNhbC1jZW50ZXIiXXtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduQHhsOmhvcml6b250'@; put 'YWwtY2VudGVyIl17YWxpZ24taXRlbXM6Y2VudGVyfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduQHhsOmNlbnRlciJde2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9Im9y'@; put 'ZGVyQHhsOnJldmVyc2UiXXtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZX1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDp2ZXJ0aWNhbC1zdHJldGNoIl17anVzdGlmeS1jb250ZW50OnN0cmV0Y2h9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5'@; put 'b3V0Kj0iYWxpZ25AeGw6dmVydGljYWwtc3RyZXRjaCJdPip7ZmxleC1ncm93OjF9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6aG9yaXpvbnRhbC1zdHJldGNoIl17YWxpZ24taXRlbXM6c3RyZXRjaH1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlv'@; put 'dXQqPSJhbGlnbkB4bDpzdHJldGNoIl17YWxpZ24taXRlbXM6c3RyZXRjaDtqdXN0aWZ5LWNvbnRlbnQ6c3RyZXRjaH1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDpzdHJldGNoIl0+KntmbGV4LWdyb3c6MX1bY2RzLWxheW91dH49dmVydGljYWxdPltjZHMt'@; put 'bGF5b3V0Kj0iYWxpZ25AeGw6Y2VudGVyIl0sW2Nkcy1sYXlvdXR+PXZlcnRpY2FsXT5bY2RzLWxheW91dCo9ImFsaWduQHhsOnZlcnRpY2FsLWNlbnRlciJde21hcmdpbi10b3A6YXV0bzttYXJnaW4tYm90dG9tOmF1dG99W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXT5bY2RzLWxheW91dCo9ImFs'@; put 'aWduQHhsOmNlbnRlciJdLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDpob3Jpem9udGFsLWNlbnRlciJde2FsaWduLXNlbGY6Y2VudGVyfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDp0b3AiXXttYXJnaW4tYm90dG9t'@; put 'OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDpib3R0b20iXXttYXJnaW4tdG9wOmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDpyaWdodCJde21hcmdpbi1sZWZ0OmF1'@; put 'dG99W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXT5bY2RzLWxheW91dCo9ImFsaWduQHhsOmxlZnQiXXttYXJnaW4tcmlnaHQ6YXV0b319W2Nkcy1sYXlvdXR+PWdyaWRde2Rpc3BsYXk6Z3JpZDthbGlnbi1pdGVtczpzdGFydDthbGlnbi1jb250ZW50OnN0YXJ0O2dyaWQtdGVtcGxhdGUtY29sdW1u'@; put 'czpyZXBlYXQodmFyKC0tY2RzLWdsb2JhbC1sYXlvdXQtZ3JpZC1jb2xzKSwxZnIpO3dpZHRoOjEwMCV9W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPXJvd3Nde2dyaWQtdGVtcGxhdGUtcm93czpyZXBlYXQoMTIsYXV0byl9W2Nkcy1sYXlvdXR+PWdyaWRdPltjZHMtbGF5b3V0Kj1y'@; put 'b3dde2FsaWduLXNlbGY6c3RyZXRjaH1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImNvbHM6YXV0byJde2dyaWQtYXV0by1mbG93OmNvbHVtbjtncmlkLXRlbXBsYXRlLWNvbHVtbnM6aW5pdGlhbH1bY2RzLWxheW91dCo9ImNvbHNAIl0+KntncmlkLWNvbHVtbjpzcGFuIHZhcigt'@; put 'LWNkcy1nbG9iYWwtbGF5b3V0LWdyaWQtY29scyl9W2Nkcy1sYXlvdXQqPSJjb2xAIl17Z3JpZC1jb2x1bW46c3BhbiAxMn1bY2RzLWxheW91dCo9ImNvbHM6MSJdPip7Z3JpZC1jb2x1bW46c3BhbiAxL3NwYW4gMX1bY2RzLWxheW91dCo9InJvd3M6MSJdPip7Z3JpZC1yb3c6c3BhbiAxL3Nw'@; put 'YW4gMX1bY2RzLWxheW91dCo9ImNvbHM6MiJdPip7Z3JpZC1jb2x1bW46c3BhbiAyL3NwYW4gMn1bY2RzLWxheW91dCo9InJvd3M6MiJdPip7Z3JpZC1yb3c6c3BhbiAyL3NwYW4gMn1bY2RzLWxheW91dCo9ImNvbHM6MyJdPip7Z3JpZC1jb2x1bW46c3BhbiAzL3NwYW4gM31bY2RzLWxheW91'@; put 'dCo9InJvd3M6MyJdPip7Z3JpZC1yb3c6c3BhbiAzL3NwYW4gM31bY2RzLWxheW91dCo9ImNvbHM6NCJdPip7Z3JpZC1jb2x1bW46c3BhbiA0L3NwYW4gNH1bY2RzLWxheW91dCo9InJvd3M6NCJdPip7Z3JpZC1yb3c6c3BhbiA0L3NwYW4gNH1bY2RzLWxheW91dCo9ImNvbHM6NSJdPip7Z3Jp'@; put 'ZC1jb2x1bW46c3BhbiA1L3NwYW4gNX1bY2RzLWxheW91dCo9InJvd3M6NSJdPip7Z3JpZC1yb3c6c3BhbiA1L3NwYW4gNX1bY2RzLWxheW91dCo9ImNvbHM6NiJdPip7Z3JpZC1jb2x1bW46c3BhbiA2L3NwYW4gNn1bY2RzLWxheW91dCo9InJvd3M6NiJdPip7Z3JpZC1yb3c6c3BhbiA2L3Nw'@; put 'YW4gNn1bY2RzLWxheW91dCo9ImNvbHM6NyJdPip7Z3JpZC1jb2x1bW46c3BhbiA3L3NwYW4gN31bY2RzLWxheW91dCo9InJvd3M6NyJdPip7Z3JpZC1yb3c6c3BhbiA3L3NwYW4gN31bY2RzLWxheW91dCo9ImNvbHM6OCJdPip7Z3JpZC1jb2x1bW46c3BhbiA4L3NwYW4gOH1bY2RzLWxheW91'@; put 'dCo9InJvd3M6OCJdPip7Z3JpZC1yb3c6c3BhbiA4L3NwYW4gOH1bY2RzLWxheW91dCo9ImNvbHM6OSJdPip7Z3JpZC1jb2x1bW46c3BhbiA5L3NwYW4gOX1bY2RzLWxheW91dCo9InJvd3M6OSJdPip7Z3JpZC1yb3c6c3BhbiA5L3NwYW4gOX1bY2RzLWxheW91dCo9ImNvbHM6MTAiXT4qe2dy'@; put 'aWQtY29sdW1uOnNwYW4gMTAvc3BhbiAxMH1bY2RzLWxheW91dCo9InJvd3M6MTAiXT4qe2dyaWQtcm93OnNwYW4gMTAvc3BhbiAxMH1bY2RzLWxheW91dCo9ImNvbHM6MTEiXT4qe2dyaWQtY29sdW1uOnNwYW4gMTEvc3BhbiAxMX1bY2RzLWxheW91dCo9InJvd3M6MTEiXT4qe2dyaWQtcm93'@; put 'OnNwYW4gMTEvc3BhbiAxMX1bY2RzLWxheW91dCo9ImNvbHM6MTIiXT4qe2dyaWQtY29sdW1uOnNwYW4gMTIvc3BhbiAxMn1bY2RzLWxheW91dCo9InJvd3M6MTIiXT4qe2dyaWQtcm93OnNwYW4gMTIvc3BhbiAxMn1bY2RzLWxheW91dCo9ImNvbDoxIl17Z3JpZC1jb2x1bW46c3BhbiAxL3Nw'@; put 'YW4gMSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3c6MSJde2dyaWQtcm93OnNwYW4gMS9zcGFuIDEhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sOjIiXXtncmlkLWNvbHVtbjpzcGFuIDIvc3BhbiAyIWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvdzoyIl17Z3JpZC1yb3c6c3BhbiAy'@; put 'L3NwYW4gMiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2w6MyJde2dyaWQtY29sdW1uOnNwYW4gMy9zcGFuIDMhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93OjMiXXtncmlkLXJvdzpzcGFuIDMvc3BhbiAzIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbDo0Il17Z3JpZC1jb2x1bW46'@; put 'c3BhbiA0L3NwYW4gNCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3c6NCJde2dyaWQtcm93OnNwYW4gNC9zcGFuIDQhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sOjUiXXtncmlkLWNvbHVtbjpzcGFuIDUvc3BhbiA1IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvdzo1Il17Z3JpZC1y'@; put 'b3c6c3BhbiA1L3NwYW4gNSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2w6NiJde2dyaWQtY29sdW1uOnNwYW4gNi9zcGFuIDYhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93OjYiXXtncmlkLXJvdzpzcGFuIDYvc3BhbiA2IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbDo3Il17Z3Jp'@; put 'ZC1jb2x1bW46c3BhbiA3L3NwYW4gNyFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3c6NyJde2dyaWQtcm93OnNwYW4gNy9zcGFuIDchaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sOjgiXXtncmlkLWNvbHVtbjpzcGFuIDgvc3BhbiA4IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvdzo4'@; put 'Il17Z3JpZC1yb3c6c3BhbiA4L3NwYW4gOCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2w6OSJde2dyaWQtY29sdW1uOnNwYW4gOS9zcGFuIDkhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93OjkiXXtncmlkLXJvdzpzcGFuIDkvc3BhbiA5IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNv'@; put 'bDoxMCJde2dyaWQtY29sdW1uOnNwYW4gMTAvc3BhbiAxMCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3c6MTAiXXtncmlkLXJvdzpzcGFuIDEwL3NwYW4gMTAhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sOjExIl17Z3JpZC1jb2x1bW46c3BhbiAxMS9zcGFuIDExIWltcG9ydGFudH1b'@; put 'Y2RzLWxheW91dCo9InJvdzoxMSJde2dyaWQtcm93OnNwYW4gMTEvc3BhbiAxMSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2w6MTIiXXtncmlkLWNvbHVtbjpzcGFuIDEyL3NwYW4gMTIhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93OjEyIl17Z3JpZC1yb3c6c3BhbiAxMi9zcGFuIDEy'@; put 'IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbDpzdGFydC0xIl17Z3JpZC1jb2x1bW4tc3RhcnQ6MSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2w6ZW5kLTEiXXtncmlkLWNvbHVtbi1lbmQ6MSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3c6c3RhcnQtMSJde2dyaWQtcm93LXN0YXJ0'@; put 'OjEhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93OmVuZC0xIl17Z3JpZC1yb3ctZW5kOjEhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sOnN0YXJ0LTIiXXtncmlkLWNvbHVtbi1zdGFydDoyIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbDplbmQtMiJde2dyaWQtY29sdW1uLWVuZDoy'@; put 'IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvdzpzdGFydC0yIl17Z3JpZC1yb3ctc3RhcnQ6MiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3c6ZW5kLTIiXXtncmlkLXJvdy1lbmQ6MiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2w6c3RhcnQtMyJde2dyaWQtY29sdW1uLXN0YXJ0OjMh'@; put 'aW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sOmVuZC0zIl17Z3JpZC1jb2x1bW4tZW5kOjMhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93OnN0YXJ0LTMiXXtncmlkLXJvdy1zdGFydDozIWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvdzplbmQtMyJde2dyaWQtcm93LWVuZDozIWltcG9y'@; put 'dGFudH1bY2RzLWxheW91dCo9ImNvbDpzdGFydC00Il17Z3JpZC1jb2x1bW4tc3RhcnQ6NCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2w6ZW5kLTQiXXtncmlkLWNvbHVtbi1lbmQ6NCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3c6c3RhcnQtNCJde2dyaWQtcm93LXN0YXJ0OjQhaW1w'@; put 'b3J0YW50fVtjZHMtbGF5b3V0Kj0icm93OmVuZC00Il17Z3JpZC1yb3ctZW5kOjQhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sOnN0YXJ0LTUiXXtncmlkLWNvbHVtbi1zdGFydDo1IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbDplbmQtNSJde2dyaWQtY29sdW1uLWVuZDo1IWltcG9y'@; put 'dGFudH1bY2RzLWxheW91dCo9InJvdzpzdGFydC01Il17Z3JpZC1yb3ctc3RhcnQ6NSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3c6ZW5kLTUiXXtncmlkLXJvdy1lbmQ6NSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2w6c3RhcnQtNiJde2dyaWQtY29sdW1uLXN0YXJ0OjYhaW1wb3J0'@; put 'YW50fVtjZHMtbGF5b3V0Kj0iY29sOmVuZC02Il17Z3JpZC1jb2x1bW4tZW5kOjYhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93OnN0YXJ0LTYiXXtncmlkLXJvdy1zdGFydDo2IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvdzplbmQtNiJde2dyaWQtcm93LWVuZDo2IWltcG9ydGFudH1b'@; put 'Y2RzLWxheW91dCo9ImNvbDpzdGFydC03Il17Z3JpZC1jb2x1bW4tc3RhcnQ6NyFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2w6ZW5kLTciXXtncmlkLWNvbHVtbi1lbmQ6NyFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3c6c3RhcnQtNyJde2dyaWQtcm93LXN0YXJ0OjchaW1wb3J0YW50'@; put 'fVtjZHMtbGF5b3V0Kj0icm93OmVuZC03Il17Z3JpZC1yb3ctZW5kOjchaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sOnN0YXJ0LTgiXXtncmlkLWNvbHVtbi1zdGFydDo4IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbDplbmQtOCJde2dyaWQtY29sdW1uLWVuZDo4IWltcG9ydGFudH1b'@; put 'Y2RzLWxheW91dCo9InJvdzpzdGFydC04Il17Z3JpZC1yb3ctc3RhcnQ6OCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3c6ZW5kLTgiXXtncmlkLXJvdy1lbmQ6OCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2w6c3RhcnQtOSJde2dyaWQtY29sdW1uLXN0YXJ0OjkhaW1wb3J0YW50fVtj'@; put 'ZHMtbGF5b3V0Kj0iY29sOmVuZC05Il17Z3JpZC1jb2x1bW4tZW5kOjkhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93OnN0YXJ0LTkiXXtncmlkLXJvdy1zdGFydDo5IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvdzplbmQtOSJde2dyaWQtcm93LWVuZDo5IWltcG9ydGFudH1bY2RzLWxh'@; put 'eW91dCo9ImNvbDpzdGFydC0xMCJde2dyaWQtY29sdW1uLXN0YXJ0OjEwIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbDplbmQtMTAiXXtncmlkLWNvbHVtbi1lbmQ6MTAhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93OnN0YXJ0LTEwIl17Z3JpZC1yb3ctc3RhcnQ6MTAhaW1wb3J0YW50'@; put 'fVtjZHMtbGF5b3V0Kj0icm93OmVuZC0xMCJde2dyaWQtcm93LWVuZDoxMCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2w6c3RhcnQtMTEiXXtncmlkLWNvbHVtbi1zdGFydDoxMSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2w6ZW5kLTExIl17Z3JpZC1jb2x1bW4tZW5kOjExIWltcG9y'@; put 'dGFudH1bY2RzLWxheW91dCo9InJvdzpzdGFydC0xMSJde2dyaWQtcm93LXN0YXJ0OjExIWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvdzplbmQtMTEiXXtncmlkLXJvdy1lbmQ6MTEhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sOnN0YXJ0LTEyIl17Z3JpZC1jb2x1bW4tc3RhcnQ6MTIh'@; put 'aW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sOmVuZC0xMiJde2dyaWQtY29sdW1uLWVuZDoxMiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3c6c3RhcnQtMTIiXXtncmlkLXJvdy1zdGFydDoxMiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3c6ZW5kLTEyIl17Z3JpZC1yb3ctZW5kOjEy'@; put 'IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbDpzdGFydC0xMyJde2dyaWQtY29sdW1uLXN0YXJ0OjEzIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbDplbmQtMTMiXXtncmlkLWNvbHVtbi1lbmQ6MTMhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93OnN0YXJ0LTEzIl17Z3JpZC1yb3ct'@; put 'c3RhcnQ6MTMhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93OmVuZC0xMyJde2dyaWQtcm93LWVuZDoxMyFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbjp0b3AiXXthbGlnbi1jb250ZW50OnN0YXJ0fVtjZHMtbGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0'@; put 'Kj0iYWxpZ246cmlnaHQiXXtqdXN0aWZ5LWNvbnRlbnQ6ZW5kfVtjZHMtbGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ246Ym90dG9tIl17YWxpZ24tY29udGVudDplbmR9W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbjpsZWZ0Il17anVzdGlmeS1jb250ZW50OnN0'@; put 'YXJ0fVtjZHMtbGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ246dmVydGljYWwtc3RyZXRjaCJde2FsaWduLWl0ZW1zOnN0cmV0Y2g7YWxpZ24tY29udGVudDpzdHJldGNofVtjZHMtbGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ246aG9yaXpvbnRhbC1zdHJldGNoIl17anVz'@; put 'dGlmeS1pdGVtczpzdHJldGNoO2p1c3RpZnktY29udGVudDpzdHJldGNofVtjZHMtbGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ246c3RyZXRjaCJde2FsaWduLWl0ZW1zOnN0cmV0Y2g7YWxpZ24tY29udGVudDpzdHJldGNoO2p1c3RpZnktaXRlbXM6c3RyZXRjaDtqdXN0aWZ5LWNv'@; put 'bnRlbnQ6c3RyZXRjaH1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduOnZlcnRpY2FsLWNlbnRlciJde2FsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1jb250ZW50OmNlbnRlcn1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduOmhvcml6b250YWwtY2VudGVy'@; put 'Il17anVzdGlmeS1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduOmNlbnRlciJde2FsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNv'@; put 'bnRlbnQ6Y2VudGVyfUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXtbY2RzLWxheW91dCo9ImNvbHNAeHM6MSJdPip7Z3JpZC1jb2x1bW46c3BhbiAxL3NwYW4gMX1bY2RzLWxheW91dCo9InJvd3NAeHM6MSJdPip7Z3JpZC1yb3c6c3BhbiAxL3NwYW4gMX1bY2RzLWxheW91dCo9ImNvbHNAeHM6'@; put 'MiJdPip7Z3JpZC1jb2x1bW46c3BhbiAyL3NwYW4gMn1bY2RzLWxheW91dCo9InJvd3NAeHM6MiJdPip7Z3JpZC1yb3c6c3BhbiAyL3NwYW4gMn1bY2RzLWxheW91dCo9ImNvbHNAeHM6MyJdPip7Z3JpZC1jb2x1bW46c3BhbiAzL3NwYW4gM31bY2RzLWxheW91dCo9InJvd3NAeHM6MyJdPip7'@; put 'Z3JpZC1yb3c6c3BhbiAzL3NwYW4gM31bY2RzLWxheW91dCo9ImNvbHNAeHM6NCJdPip7Z3JpZC1jb2x1bW46c3BhbiA0L3NwYW4gNH1bY2RzLWxheW91dCo9InJvd3NAeHM6NCJdPip7Z3JpZC1yb3c6c3BhbiA0L3NwYW4gNH1bY2RzLWxheW91dCo9ImNvbHNAeHM6NSJdPip7Z3JpZC1jb2x1'@; put 'bW46c3BhbiA1L3NwYW4gNX1bY2RzLWxheW91dCo9InJvd3NAeHM6NSJdPip7Z3JpZC1yb3c6c3BhbiA1L3NwYW4gNX1bY2RzLWxheW91dCo9ImNvbHNAeHM6NiJdPip7Z3JpZC1jb2x1bW46c3BhbiA2L3NwYW4gNn1bY2RzLWxheW91dCo9InJvd3NAeHM6NiJdPip7Z3JpZC1yb3c6c3BhbiA2'@; put 'L3NwYW4gNn1bY2RzLWxheW91dCo9ImNvbHNAeHM6NyJdPip7Z3JpZC1jb2x1bW46c3BhbiA3L3NwYW4gN31bY2RzLWxheW91dCo9InJvd3NAeHM6NyJdPip7Z3JpZC1yb3c6c3BhbiA3L3NwYW4gN31bY2RzLWxheW91dCo9ImNvbHNAeHM6OCJdPip7Z3JpZC1jb2x1bW46c3BhbiA4L3NwYW4g'@; put 'OH1bY2RzLWxheW91dCo9InJvd3NAeHM6OCJdPip7Z3JpZC1yb3c6c3BhbiA4L3NwYW4gOH1bY2RzLWxheW91dCo9ImNvbHNAeHM6OSJdPip7Z3JpZC1jb2x1bW46c3BhbiA5L3NwYW4gOX1bY2RzLWxheW91dCo9InJvd3NAeHM6OSJdPip7Z3JpZC1yb3c6c3BhbiA5L3NwYW4gOX1bY2RzLWxh'@; put 'eW91dCo9ImNvbHNAeHM6MTAiXT4qe2dyaWQtY29sdW1uOnNwYW4gMTAvc3BhbiAxMH1bY2RzLWxheW91dCo9InJvd3NAeHM6MTAiXT4qe2dyaWQtcm93OnNwYW4gMTAvc3BhbiAxMH1bY2RzLWxheW91dCo9ImNvbHNAeHM6MTEiXT4qe2dyaWQtY29sdW1uOnNwYW4gMTEvc3BhbiAxMX1bY2Rz'@; put 'LWxheW91dCo9InJvd3NAeHM6MTEiXT4qe2dyaWQtcm93OnNwYW4gMTEvc3BhbiAxMX1bY2RzLWxheW91dCo9ImNvbHNAeHM6MTIiXT4qe2dyaWQtY29sdW1uOnNwYW4gMTIvc3BhbiAxMn1bY2RzLWxheW91dCo9InJvd3NAeHM6MTIiXT4qe2dyaWQtcm93OnNwYW4gMTIvc3BhbiAxMn19QG1l'@; put 'ZGlhIChtaW4td2lkdGg6NzY4cHgpe1tjZHMtbGF5b3V0Kj0iY29sc0BzbToxIl0+KntncmlkLWNvbHVtbjpzcGFuIDEvc3BhbiAxfVtjZHMtbGF5b3V0Kj0icm93c0BzbToxIl0+KntncmlkLXJvdzpzcGFuIDEvc3BhbiAxfVtjZHMtbGF5b3V0Kj0iY29sc0BzbToyIl0+KntncmlkLWNvbHVt'@; put 'bjpzcGFuIDIvc3BhbiAyfVtjZHMtbGF5b3V0Kj0icm93c0BzbToyIl0+KntncmlkLXJvdzpzcGFuIDIvc3BhbiAyfVtjZHMtbGF5b3V0Kj0iY29sc0BzbTozIl0+KntncmlkLWNvbHVtbjpzcGFuIDMvc3BhbiAzfVtjZHMtbGF5b3V0Kj0icm93c0BzbTozIl0+KntncmlkLXJvdzpzcGFuIDMv'@; put 'c3BhbiAzfVtjZHMtbGF5b3V0Kj0iY29sc0BzbTo0Il0+KntncmlkLWNvbHVtbjpzcGFuIDQvc3BhbiA0fVtjZHMtbGF5b3V0Kj0icm93c0BzbTo0Il0+KntncmlkLXJvdzpzcGFuIDQvc3BhbiA0fVtjZHMtbGF5b3V0Kj0iY29sc0BzbTo1Il0+KntncmlkLWNvbHVtbjpzcGFuIDUvc3BhbiA1'@; put 'fVtjZHMtbGF5b3V0Kj0icm93c0BzbTo1Il0+KntncmlkLXJvdzpzcGFuIDUvc3BhbiA1fVtjZHMtbGF5b3V0Kj0iY29sc0BzbTo2Il0+KntncmlkLWNvbHVtbjpzcGFuIDYvc3BhbiA2fVtjZHMtbGF5b3V0Kj0icm93c0BzbTo2Il0+KntncmlkLXJvdzpzcGFuIDYvc3BhbiA2fVtjZHMtbGF5'@; put 'b3V0Kj0iY29sc0BzbTo3Il0+KntncmlkLWNvbHVtbjpzcGFuIDcvc3BhbiA3fVtjZHMtbGF5b3V0Kj0icm93c0BzbTo3Il0+KntncmlkLXJvdzpzcGFuIDcvc3BhbiA3fVtjZHMtbGF5b3V0Kj0iY29sc0BzbTo4Il0+KntncmlkLWNvbHVtbjpzcGFuIDgvc3BhbiA4fVtjZHMtbGF5b3V0Kj0i'@; put 'cm93c0BzbTo4Il0+KntncmlkLXJvdzpzcGFuIDgvc3BhbiA4fVtjZHMtbGF5b3V0Kj0iY29sc0BzbTo5Il0+KntncmlkLWNvbHVtbjpzcGFuIDkvc3BhbiA5fVtjZHMtbGF5b3V0Kj0icm93c0BzbTo5Il0+KntncmlkLXJvdzpzcGFuIDkvc3BhbiA5fVtjZHMtbGF5b3V0Kj0iY29sc0BzbTox'@; put 'MCJdPip7Z3JpZC1jb2x1bW46c3BhbiAxMC9zcGFuIDEwfVtjZHMtbGF5b3V0Kj0icm93c0BzbToxMCJdPip7Z3JpZC1yb3c6c3BhbiAxMC9zcGFuIDEwfVtjZHMtbGF5b3V0Kj0iY29sc0BzbToxMSJdPip7Z3JpZC1jb2x1bW46c3BhbiAxMS9zcGFuIDExfVtjZHMtbGF5b3V0Kj0icm93c0Bz'@; put 'bToxMSJdPip7Z3JpZC1yb3c6c3BhbiAxMS9zcGFuIDExfVtjZHMtbGF5b3V0Kj0iY29sc0BzbToxMiJdPip7Z3JpZC1jb2x1bW46c3BhbiAxMi9zcGFuIDEyfVtjZHMtbGF5b3V0Kj0icm93c0BzbToxMiJdPip7Z3JpZC1yb3c6c3BhbiAxMi9zcGFuIDEyfX1AbWVkaWEgKG1pbi13aWR0aDo5'@; put 'OTJweCl7W2Nkcy1sYXlvdXQqPSJjb2xzQG1kOjEiXT4qe2dyaWQtY29sdW1uOnNwYW4gMS9zcGFuIDF9W2Nkcy1sYXlvdXQqPSJyb3dzQG1kOjEiXT4qe2dyaWQtcm93OnNwYW4gMS9zcGFuIDF9W2Nkcy1sYXlvdXQqPSJjb2xzQG1kOjIiXT4qe2dyaWQtY29sdW1uOnNwYW4gMi9zcGFuIDJ9'@; put 'W2Nkcy1sYXlvdXQqPSJyb3dzQG1kOjIiXT4qe2dyaWQtcm93OnNwYW4gMi9zcGFuIDJ9W2Nkcy1sYXlvdXQqPSJjb2xzQG1kOjMiXT4qe2dyaWQtY29sdW1uOnNwYW4gMy9zcGFuIDN9W2Nkcy1sYXlvdXQqPSJyb3dzQG1kOjMiXT4qe2dyaWQtcm93OnNwYW4gMy9zcGFuIDN9W2Nkcy1sYXlv'@; put 'dXQqPSJjb2xzQG1kOjQiXT4qe2dyaWQtY29sdW1uOnNwYW4gNC9zcGFuIDR9W2Nkcy1sYXlvdXQqPSJyb3dzQG1kOjQiXT4qe2dyaWQtcm93OnNwYW4gNC9zcGFuIDR9W2Nkcy1sYXlvdXQqPSJjb2xzQG1kOjUiXT4qe2dyaWQtY29sdW1uOnNwYW4gNS9zcGFuIDV9W2Nkcy1sYXlvdXQqPSJy'@; put 'b3dzQG1kOjUiXT4qe2dyaWQtcm93OnNwYW4gNS9zcGFuIDV9W2Nkcy1sYXlvdXQqPSJjb2xzQG1kOjYiXT4qe2dyaWQtY29sdW1uOnNwYW4gNi9zcGFuIDZ9W2Nkcy1sYXlvdXQqPSJyb3dzQG1kOjYiXT4qe2dyaWQtcm93OnNwYW4gNi9zcGFuIDZ9W2Nkcy1sYXlvdXQqPSJjb2xzQG1kOjci'@; put 'XT4qe2dyaWQtY29sdW1uOnNwYW4gNy9zcGFuIDd9W2Nkcy1sYXlvdXQqPSJyb3dzQG1kOjciXT4qe2dyaWQtcm93OnNwYW4gNy9zcGFuIDd9W2Nkcy1sYXlvdXQqPSJjb2xzQG1kOjgiXT4qe2dyaWQtY29sdW1uOnNwYW4gOC9zcGFuIDh9W2Nkcy1sYXlvdXQqPSJyb3dzQG1kOjgiXT4qe2dy'@; put 'aWQtcm93OnNwYW4gOC9zcGFuIDh9W2Nkcy1sYXlvdXQqPSJjb2xzQG1kOjkiXT4qe2dyaWQtY29sdW1uOnNwYW4gOS9zcGFuIDl9W2Nkcy1sYXlvdXQqPSJyb3dzQG1kOjkiXT4qe2dyaWQtcm93OnNwYW4gOS9zcGFuIDl9W2Nkcy1sYXlvdXQqPSJjb2xzQG1kOjEwIl0+KntncmlkLWNvbHVt'@; put 'bjpzcGFuIDEwL3NwYW4gMTB9W2Nkcy1sYXlvdXQqPSJyb3dzQG1kOjEwIl0+KntncmlkLXJvdzpzcGFuIDEwL3NwYW4gMTB9W2Nkcy1sYXlvdXQqPSJjb2xzQG1kOjExIl0+KntncmlkLWNvbHVtbjpzcGFuIDExL3NwYW4gMTF9W2Nkcy1sYXlvdXQqPSJyb3dzQG1kOjExIl0+KntncmlkLXJv'@; put 'dzpzcGFuIDExL3NwYW4gMTF9W2Nkcy1sYXlvdXQqPSJjb2xzQG1kOjEyIl0+KntncmlkLWNvbHVtbjpzcGFuIDEyL3NwYW4gMTJ9W2Nkcy1sYXlvdXQqPSJyb3dzQG1kOjEyIl0+KntncmlkLXJvdzpzcGFuIDEyL3NwYW4gMTJ9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7W2Nkcy1sYXlv'@; put 'dXQqPSJjb2xzQGxnOjEiXT4qe2dyaWQtY29sdW1uOnNwYW4gMS9zcGFuIDF9W2Nkcy1sYXlvdXQqPSJyb3dzQGxnOjEiXT4qe2dyaWQtcm93OnNwYW4gMS9zcGFuIDF9W2Nkcy1sYXlvdXQqPSJjb2xzQGxnOjIiXT4qe2dyaWQtY29sdW1uOnNwYW4gMi9zcGFuIDJ9W2Nkcy1sYXlvdXQqPSJy'@; put 'b3dzQGxnOjIiXT4qe2dyaWQtcm93OnNwYW4gMi9zcGFuIDJ9W2Nkcy1sYXlvdXQqPSJjb2xzQGxnOjMiXT4qe2dyaWQtY29sdW1uOnNwYW4gMy9zcGFuIDN9W2Nkcy1sYXlvdXQqPSJyb3dzQGxnOjMiXT4qe2dyaWQtcm93OnNwYW4gMy9zcGFuIDN9W2Nkcy1sYXlvdXQqPSJjb2xzQGxnOjQi'@; put 'XT4qe2dyaWQtY29sdW1uOnNwYW4gNC9zcGFuIDR9W2Nkcy1sYXlvdXQqPSJyb3dzQGxnOjQiXT4qe2dyaWQtcm93OnNwYW4gNC9zcGFuIDR9W2Nkcy1sYXlvdXQqPSJjb2xzQGxnOjUiXT4qe2dyaWQtY29sdW1uOnNwYW4gNS9zcGFuIDV9W2Nkcy1sYXlvdXQqPSJyb3dzQGxnOjUiXT4qe2dy'@; put 'aWQtcm93OnNwYW4gNS9zcGFuIDV9W2Nkcy1sYXlvdXQqPSJjb2xzQGxnOjYiXT4qe2dyaWQtY29sdW1uOnNwYW4gNi9zcGFuIDZ9W2Nkcy1sYXlvdXQqPSJyb3dzQGxnOjYiXT4qe2dyaWQtcm93OnNwYW4gNi9zcGFuIDZ9W2Nkcy1sYXlvdXQqPSJjb2xzQGxnOjciXT4qe2dyaWQtY29sdW1u'@; put 'OnNwYW4gNy9zcGFuIDd9W2Nkcy1sYXlvdXQqPSJyb3dzQGxnOjciXT4qe2dyaWQtcm93OnNwYW4gNy9zcGFuIDd9W2Nkcy1sYXlvdXQqPSJjb2xzQGxnOjgiXT4qe2dyaWQtY29sdW1uOnNwYW4gOC9zcGFuIDh9W2Nkcy1sYXlvdXQqPSJyb3dzQGxnOjgiXT4qe2dyaWQtcm93OnNwYW4gOC9z'@; put 'cGFuIDh9W2Nkcy1sYXlvdXQqPSJjb2xzQGxnOjkiXT4qe2dyaWQtY29sdW1uOnNwYW4gOS9zcGFuIDl9W2Nkcy1sYXlvdXQqPSJyb3dzQGxnOjkiXT4qe2dyaWQtcm93OnNwYW4gOS9zcGFuIDl9W2Nkcy1sYXlvdXQqPSJjb2xzQGxnOjEwIl0+KntncmlkLWNvbHVtbjpzcGFuIDEwL3NwYW4g'@; put 'MTB9W2Nkcy1sYXlvdXQqPSJyb3dzQGxnOjEwIl0+KntncmlkLXJvdzpzcGFuIDEwL3NwYW4gMTB9W2Nkcy1sYXlvdXQqPSJjb2xzQGxnOjExIl0+KntncmlkLWNvbHVtbjpzcGFuIDExL3NwYW4gMTF9W2Nkcy1sYXlvdXQqPSJyb3dzQGxnOjExIl0+KntncmlkLXJvdzpzcGFuIDExL3NwYW4g'@; put 'MTF9W2Nkcy1sYXlvdXQqPSJjb2xzQGxnOjEyIl0+KntncmlkLWNvbHVtbjpzcGFuIDEyL3NwYW4gMTJ9W2Nkcy1sYXlvdXQqPSJyb3dzQGxnOjEyIl0+KntncmlkLXJvdzpzcGFuIDEyL3NwYW4gMTJ9fUBtZWRpYSAobWluLXdpZHRoOjE0NDBweCl7W2Nkcy1sYXlvdXQqPSJjb2xzQHhsOjEi'@; put 'XT4qe2dyaWQtY29sdW1uOnNwYW4gMS9zcGFuIDF9W2Nkcy1sYXlvdXQqPSJyb3dzQHhsOjEiXT4qe2dyaWQtcm93OnNwYW4gMS9zcGFuIDF9W2Nkcy1sYXlvdXQqPSJjb2xzQHhsOjIiXT4qe2dyaWQtY29sdW1uOnNwYW4gMi9zcGFuIDJ9W2Nkcy1sYXlvdXQqPSJyb3dzQHhsOjIiXT4qe2dy'@; put 'aWQtcm93OnNwYW4gMi9zcGFuIDJ9W2Nkcy1sYXlvdXQqPSJjb2xzQHhsOjMiXT4qe2dyaWQtY29sdW1uOnNwYW4gMy9zcGFuIDN9W2Nkcy1sYXlvdXQqPSJyb3dzQHhsOjMiXT4qe2dyaWQtcm93OnNwYW4gMy9zcGFuIDN9W2Nkcy1sYXlvdXQqPSJjb2xzQHhsOjQiXT4qe2dyaWQtY29sdW1u'@; put 'OnNwYW4gNC9zcGFuIDR9W2Nkcy1sYXlvdXQqPSJyb3dzQHhsOjQiXT4qe2dyaWQtcm93OnNwYW4gNC9zcGFuIDR9W2Nkcy1sYXlvdXQqPSJjb2xzQHhsOjUiXT4qe2dyaWQtY29sdW1uOnNwYW4gNS9zcGFuIDV9W2Nkcy1sYXlvdXQqPSJyb3dzQHhsOjUiXT4qe2dyaWQtcm93OnNwYW4gNS9z'@; put 'cGFuIDV9W2Nkcy1sYXlvdXQqPSJjb2xzQHhsOjYiXT4qe2dyaWQtY29sdW1uOnNwYW4gNi9zcGFuIDZ9W2Nkcy1sYXlvdXQqPSJyb3dzQHhsOjYiXT4qe2dyaWQtcm93OnNwYW4gNi9zcGFuIDZ9W2Nkcy1sYXlvdXQqPSJjb2xzQHhsOjciXT4qe2dyaWQtY29sdW1uOnNwYW4gNy9zcGFuIDd9'@; put 'W2Nkcy1sYXlvdXQqPSJyb3dzQHhsOjciXT4qe2dyaWQtcm93OnNwYW4gNy9zcGFuIDd9W2Nkcy1sYXlvdXQqPSJjb2xzQHhsOjgiXT4qe2dyaWQtY29sdW1uOnNwYW4gOC9zcGFuIDh9W2Nkcy1sYXlvdXQqPSJyb3dzQHhsOjgiXT4qe2dyaWQtcm93OnNwYW4gOC9zcGFuIDh9W2Nkcy1sYXlv'@; put 'dXQqPSJjb2xzQHhsOjkiXT4qe2dyaWQtY29sdW1uOnNwYW4gOS9zcGFuIDl9W2Nkcy1sYXlvdXQqPSJyb3dzQHhsOjkiXT4qe2dyaWQtcm93OnNwYW4gOS9zcGFuIDl9W2Nkcy1sYXlvdXQqPSJjb2xzQHhsOjEwIl0+KntncmlkLWNvbHVtbjpzcGFuIDEwL3NwYW4gMTB9W2Nkcy1sYXlvdXQq'@; put 'PSJyb3dzQHhsOjEwIl0+KntncmlkLXJvdzpzcGFuIDEwL3NwYW4gMTB9W2Nkcy1sYXlvdXQqPSJjb2xzQHhsOjExIl0+KntncmlkLWNvbHVtbjpzcGFuIDExL3NwYW4gMTF9W2Nkcy1sYXlvdXQqPSJyb3dzQHhsOjExIl0+KntncmlkLXJvdzpzcGFuIDExL3NwYW4gMTF9W2Nkcy1sYXlvdXQq'@; put 'PSJjb2xzQHhsOjEyIl0+KntncmlkLWNvbHVtbjpzcGFuIDEyL3NwYW4gMTJ9W2Nkcy1sYXlvdXQqPSJyb3dzQHhsOjEyIl0+KntncmlkLXJvdzpzcGFuIDEyL3NwYW4gMTJ9fUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXtbY2RzLWxheW91dCo9ImNvbEB4czoxIl17Z3JpZC1jb2x1bW46c3Bh'@; put 'biAxL3NwYW4gMSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAeHM6MSJde2dyaWQtcm93OnNwYW4gMS9zcGFuIDEhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHhzOjIiXXtncmlkLWNvbHVtbjpzcGFuIDIvc3BhbiAyIWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0B4czoyIl17'@; put 'Z3JpZC1yb3c6c3BhbiAyL3NwYW4gMiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAeHM6MyJde2dyaWQtY29sdW1uOnNwYW4gMy9zcGFuIDMhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHhzOjMiXXtncmlkLXJvdzpzcGFuIDMvc3BhbiAzIWltcG9ydGFudH1bY2RzLWxheW91dCo9'@; put 'ImNvbEB4czo0Il17Z3JpZC1jb2x1bW46c3BhbiA0L3NwYW4gNCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAeHM6NCJde2dyaWQtcm93OnNwYW4gNC9zcGFuIDQhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHhzOjUiXXtncmlkLWNvbHVtbjpzcGFuIDUvc3BhbiA1IWltcG9ydGFu'@; put 'dH1bY2RzLWxheW91dCo9InJvd0B4czo1Il17Z3JpZC1yb3c6c3BhbiA1L3NwYW4gNSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAeHM6NiJde2dyaWQtY29sdW1uOnNwYW4gNi9zcGFuIDYhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHhzOjYiXXtncmlkLXJvdzpzcGFuIDYvc3Bh'@; put 'biA2IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEB4czo3Il17Z3JpZC1jb2x1bW46c3BhbiA3L3NwYW4gNyFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAeHM6NyJde2dyaWQtcm93OnNwYW4gNy9zcGFuIDchaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHhzOjgiXXtncmlkLWNv'@; put 'bHVtbjpzcGFuIDgvc3BhbiA4IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0B4czo4Il17Z3JpZC1yb3c6c3BhbiA4L3NwYW4gOCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAeHM6OSJde2dyaWQtY29sdW1uOnNwYW4gOS9zcGFuIDkhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93'@; put 'QHhzOjkiXXtncmlkLXJvdzpzcGFuIDkvc3BhbiA5IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEB4czoxMCJde2dyaWQtY29sdW1uOnNwYW4gMTAvc3BhbiAxMCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAeHM6MTAiXXtncmlkLXJvdzpzcGFuIDEwL3NwYW4gMTAhaW1wb3J0YW50'@; put 'fVtjZHMtbGF5b3V0Kj0iY29sQHhzOjExIl17Z3JpZC1jb2x1bW46c3BhbiAxMS9zcGFuIDExIWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0B4czoxMSJde2dyaWQtcm93OnNwYW4gMTEvc3BhbiAxMSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAeHM6MTIiXXtncmlkLWNvbHVtbjpz'@; put 'cGFuIDEyL3NwYW4gMTIhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHhzOjEyIl17Z3JpZC1yb3c6c3BhbiAxMi9zcGFuIDEyIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpe1tjZHMtbGF5b3V0Kj0iY29sQHNtOjEiXXtncmlkLWNvbHVtbjpzcGFuIDEvc3BhbiAxIWlt'@; put 'cG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BzbToxIl17Z3JpZC1yb3c6c3BhbiAxL3NwYW4gMSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAc206MiJde2dyaWQtY29sdW1uOnNwYW4gMi9zcGFuIDIhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHNtOjIiXXtncmlkLXJvdzpzcGFu'@; put 'IDIvc3BhbiAyIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBzbTozIl17Z3JpZC1jb2x1bW46c3BhbiAzL3NwYW4gMyFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAc206MyJde2dyaWQtcm93OnNwYW4gMy9zcGFuIDMhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHNtOjQiXXtn'@; put 'cmlkLWNvbHVtbjpzcGFuIDQvc3BhbiA0IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BzbTo0Il17Z3JpZC1yb3c6c3BhbiA0L3NwYW4gNCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAc206NSJde2dyaWQtY29sdW1uOnNwYW4gNS9zcGFuIDUhaW1wb3J0YW50fVtjZHMtbGF5b3V0'@; put 'Kj0icm93QHNtOjUiXXtncmlkLXJvdzpzcGFuIDUvc3BhbiA1IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBzbTo2Il17Z3JpZC1jb2x1bW46c3BhbiA2L3NwYW4gNiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAc206NiJde2dyaWQtcm93OnNwYW4gNi9zcGFuIDYhaW1wb3J0YW50'@; put 'fVtjZHMtbGF5b3V0Kj0iY29sQHNtOjciXXtncmlkLWNvbHVtbjpzcGFuIDcvc3BhbiA3IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BzbTo3Il17Z3JpZC1yb3c6c3BhbiA3L3NwYW4gNyFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAc206OCJde2dyaWQtY29sdW1uOnNwYW4gOC9z'@; put 'cGFuIDghaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHNtOjgiXXtncmlkLXJvdzpzcGFuIDgvc3BhbiA4IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBzbTo5Il17Z3JpZC1jb2x1bW46c3BhbiA5L3NwYW4gOSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAc206OSJde2dyaWQt'@; put 'cm93OnNwYW4gOS9zcGFuIDkhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHNtOjEwIl17Z3JpZC1jb2x1bW46c3BhbiAxMC9zcGFuIDEwIWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BzbToxMCJde2dyaWQtcm93OnNwYW4gMTAvc3BhbiAxMCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQq'@; put 'PSJjb2xAc206MTEiXXtncmlkLWNvbHVtbjpzcGFuIDExL3NwYW4gMTEhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHNtOjExIl17Z3JpZC1yb3c6c3BhbiAxMS9zcGFuIDExIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBzbToxMiJde2dyaWQtY29sdW1uOnNwYW4gMTIvc3BhbiAx'@; put 'MiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAc206MTIiXXtncmlkLXJvdzpzcGFuIDEyL3NwYW4gMTIhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7W2Nkcy1sYXlvdXQqPSJjb2xAbWQ6MSJde2dyaWQtY29sdW1uOnNwYW4gMS9zcGFuIDEhaW1wb3J0YW50fVtjZHMt'@; put 'bGF5b3V0Kj0icm93QG1kOjEiXXtncmlkLXJvdzpzcGFuIDEvc3BhbiAxIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBtZDoyIl17Z3JpZC1jb2x1bW46c3BhbiAyL3NwYW4gMiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAbWQ6MiJde2dyaWQtcm93OnNwYW4gMi9zcGFuIDIhaW1w'@; put 'b3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQG1kOjMiXXtncmlkLWNvbHVtbjpzcGFuIDMvc3BhbiAzIWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BtZDozIl17Z3JpZC1yb3c6c3BhbiAzL3NwYW4gMyFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAbWQ6NCJde2dyaWQtY29sdW1uOnNw'@; put 'YW4gNC9zcGFuIDQhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QG1kOjQiXXtncmlkLXJvdzpzcGFuIDQvc3BhbiA0IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBtZDo1Il17Z3JpZC1jb2x1bW46c3BhbiA1L3NwYW4gNSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAbWQ6NSJd'@; put 'e2dyaWQtcm93OnNwYW4gNS9zcGFuIDUhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQG1kOjYiXXtncmlkLWNvbHVtbjpzcGFuIDYvc3BhbiA2IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BtZDo2Il17Z3JpZC1yb3c6c3BhbiA2L3NwYW4gNiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQq'@; put 'PSJjb2xAbWQ6NyJde2dyaWQtY29sdW1uOnNwYW4gNy9zcGFuIDchaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QG1kOjciXXtncmlkLXJvdzpzcGFuIDcvc3BhbiA3IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBtZDo4Il17Z3JpZC1jb2x1bW46c3BhbiA4L3NwYW4gOCFpbXBvcnRh'@; put 'bnR9W2Nkcy1sYXlvdXQqPSJyb3dAbWQ6OCJde2dyaWQtcm93OnNwYW4gOC9zcGFuIDghaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQG1kOjkiXXtncmlkLWNvbHVtbjpzcGFuIDkvc3BhbiA5IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BtZDo5Il17Z3JpZC1yb3c6c3BhbiA5L3Nw'@; put 'YW4gOSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAbWQ6MTAiXXtncmlkLWNvbHVtbjpzcGFuIDEwL3NwYW4gMTAhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QG1kOjEwIl17Z3JpZC1yb3c6c3BhbiAxMC9zcGFuIDEwIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBtZDoxMSJd'@; put 'e2dyaWQtY29sdW1uOnNwYW4gMTEvc3BhbiAxMSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAbWQ6MTEiXXtncmlkLXJvdzpzcGFuIDExL3NwYW4gMTEhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQG1kOjEyIl17Z3JpZC1jb2x1bW46c3BhbiAxMi9zcGFuIDEyIWltcG9ydGFudH1b'@; put 'Y2RzLWxheW91dCo9InJvd0BtZDoxMiJde2dyaWQtcm93OnNwYW4gMTIvc3BhbiAxMiFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7W2Nkcy1sYXlvdXQqPSJjb2xAbGc6MSJde2dyaWQtY29sdW1uOnNwYW4gMS9zcGFuIDEhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93'@; put 'QGxnOjEiXXtncmlkLXJvdzpzcGFuIDEvc3BhbiAxIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBsZzoyIl17Z3JpZC1jb2x1bW46c3BhbiAyL3NwYW4gMiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAbGc6MiJde2dyaWQtcm93OnNwYW4gMi9zcGFuIDIhaW1wb3J0YW50fVtjZHMt'@; put 'bGF5b3V0Kj0iY29sQGxnOjMiXXtncmlkLWNvbHVtbjpzcGFuIDMvc3BhbiAzIWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BsZzozIl17Z3JpZC1yb3c6c3BhbiAzL3NwYW4gMyFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAbGc6NCJde2dyaWQtY29sdW1uOnNwYW4gNC9zcGFuIDQh'@; put 'aW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QGxnOjQiXXtncmlkLXJvdzpzcGFuIDQvc3BhbiA0IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBsZzo1Il17Z3JpZC1jb2x1bW46c3BhbiA1L3NwYW4gNSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAbGc6NSJde2dyaWQtcm93OnNw'@; put 'YW4gNS9zcGFuIDUhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQGxnOjYiXXtncmlkLWNvbHVtbjpzcGFuIDYvc3BhbiA2IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BsZzo2Il17Z3JpZC1yb3c6c3BhbiA2L3NwYW4gNiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAbGc6NyJd'@; put 'e2dyaWQtY29sdW1uOnNwYW4gNy9zcGFuIDchaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QGxnOjciXXtncmlkLXJvdzpzcGFuIDcvc3BhbiA3IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBsZzo4Il17Z3JpZC1jb2x1bW46c3BhbiA4L3NwYW4gOCFpbXBvcnRhbnR9W2Nkcy1sYXlv'@; put 'dXQqPSJyb3dAbGc6OCJde2dyaWQtcm93OnNwYW4gOC9zcGFuIDghaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQGxnOjkiXXtncmlkLWNvbHVtbjpzcGFuIDkvc3BhbiA5IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BsZzo5Il17Z3JpZC1yb3c6c3BhbiA5L3NwYW4gOSFpbXBvcnRh'@; put 'bnR9W2Nkcy1sYXlvdXQqPSJjb2xAbGc6MTAiXXtncmlkLWNvbHVtbjpzcGFuIDEwL3NwYW4gMTAhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QGxnOjEwIl17Z3JpZC1yb3c6c3BhbiAxMC9zcGFuIDEwIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBsZzoxMSJde2dyaWQtY29sdW1u'@; put 'OnNwYW4gMTEvc3BhbiAxMSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAbGc6MTEiXXtncmlkLXJvdzpzcGFuIDExL3NwYW4gMTEhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQGxnOjEyIl17Z3JpZC1jb2x1bW46c3BhbiAxMi9zcGFuIDEyIWltcG9ydGFudH1bY2RzLWxheW91dCo9'@; put 'InJvd0BsZzoxMiJde2dyaWQtcm93OnNwYW4gMTIvc3BhbiAxMiFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjE0NDBweCl7W2Nkcy1sYXlvdXQqPSJjb2xAeGw6MSJde2dyaWQtY29sdW1uOnNwYW4gMS9zcGFuIDEhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHhsOjEiXXtncmlk'@; put 'LXJvdzpzcGFuIDEvc3BhbiAxIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEB4bDoyIl17Z3JpZC1jb2x1bW46c3BhbiAyL3NwYW4gMiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAeGw6MiJde2dyaWQtcm93OnNwYW4gMi9zcGFuIDIhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29s'@; put 'QHhsOjMiXXtncmlkLWNvbHVtbjpzcGFuIDMvc3BhbiAzIWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0B4bDozIl17Z3JpZC1yb3c6c3BhbiAzL3NwYW4gMyFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAeGw6NCJde2dyaWQtY29sdW1uOnNwYW4gNC9zcGFuIDQhaW1wb3J0YW50fVtj'@; put 'ZHMtbGF5b3V0Kj0icm93QHhsOjQiXXtncmlkLXJvdzpzcGFuIDQvc3BhbiA0IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEB4bDo1Il17Z3JpZC1jb2x1bW46c3BhbiA1L3NwYW4gNSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAeGw6NSJde2dyaWQtcm93OnNwYW4gNS9zcGFuIDUh'@; put 'aW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHhsOjYiXXtncmlkLWNvbHVtbjpzcGFuIDYvc3BhbiA2IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0B4bDo2Il17Z3JpZC1yb3c6c3BhbiA2L3NwYW4gNiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAeGw6NyJde2dyaWQtY29sdW1u'@; put 'OnNwYW4gNy9zcGFuIDchaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHhsOjciXXtncmlkLXJvdzpzcGFuIDcvc3BhbiA3IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEB4bDo4Il17Z3JpZC1jb2x1bW46c3BhbiA4L3NwYW4gOCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAeGw6'@; put 'OCJde2dyaWQtcm93OnNwYW4gOC9zcGFuIDghaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHhsOjkiXXtncmlkLWNvbHVtbjpzcGFuIDkvc3BhbiA5IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0B4bDo5Il17Z3JpZC1yb3c6c3BhbiA5L3NwYW4gOSFpbXBvcnRhbnR9W2Nkcy1sYXlv'@; put 'dXQqPSJjb2xAeGw6MTAiXXtncmlkLWNvbHVtbjpzcGFuIDEwL3NwYW4gMTAhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHhsOjEwIl17Z3JpZC1yb3c6c3BhbiAxMC9zcGFuIDEwIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEB4bDoxMSJde2dyaWQtY29sdW1uOnNwYW4gMTEvc3Bh'@; put 'biAxMSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAeGw6MTEiXXtncmlkLXJvdzpzcGFuIDExL3NwYW4gMTEhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHhsOjEyIl17Z3JpZC1jb2x1bW46c3BhbiAxMi9zcGFuIDEyIWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0B4bDoxMiJd'@; put 'e2dyaWQtcm93OnNwYW4gMTIvc3BhbiAxMiFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXtbY2RzLWxheW91dCo9ImNvbEB4czpzdGFydC0xIl17Z3JpZC1jb2x1bW4tc3RhcnQ6MSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAeHM6ZW5kLTEiXXtncmlkLWNvbHVtbi1l'@; put 'bmQ6MSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAeHM6c3RhcnQtMSJde2dyaWQtcm93LXN0YXJ0OjEhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHhzOmVuZC0xIl17Z3JpZC1yb3ctZW5kOjEhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHhzOnN0YXJ0LTIiXXtncmlkLWNv'@; put 'bHVtbi1zdGFydDoyIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEB4czplbmQtMiJde2dyaWQtY29sdW1uLWVuZDoyIWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0B4czpzdGFydC0yIl17Z3JpZC1yb3ctc3RhcnQ6MiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAeHM6ZW5kLTIi'@; put 'XXtncmlkLXJvdy1lbmQ6MiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAeHM6c3RhcnQtMyJde2dyaWQtY29sdW1uLXN0YXJ0OjMhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHhzOmVuZC0zIl17Z3JpZC1jb2x1bW4tZW5kOjMhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHhz'@; put 'OnN0YXJ0LTMiXXtncmlkLXJvdy1zdGFydDozIWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0B4czplbmQtMyJde2dyaWQtcm93LWVuZDozIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEB4czpzdGFydC00Il17Z3JpZC1jb2x1bW4tc3RhcnQ6NCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQq'@; put 'PSJjb2xAeHM6ZW5kLTQiXXtncmlkLWNvbHVtbi1lbmQ6NCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAeHM6c3RhcnQtNCJde2dyaWQtcm93LXN0YXJ0OjQhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHhzOmVuZC00Il17Z3JpZC1yb3ctZW5kOjQhaW1wb3J0YW50fVtjZHMtbGF5'@; put 'b3V0Kj0iY29sQHhzOnN0YXJ0LTUiXXtncmlkLWNvbHVtbi1zdGFydDo1IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEB4czplbmQtNSJde2dyaWQtY29sdW1uLWVuZDo1IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0B4czpzdGFydC01Il17Z3JpZC1yb3ctc3RhcnQ6NSFpbXBvcnRh'@; put 'bnR9W2Nkcy1sYXlvdXQqPSJyb3dAeHM6ZW5kLTUiXXtncmlkLXJvdy1lbmQ6NSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAeHM6c3RhcnQtNiJde2dyaWQtY29sdW1uLXN0YXJ0OjYhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHhzOmVuZC02Il17Z3JpZC1jb2x1bW4tZW5kOjYh'@; put 'aW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHhzOnN0YXJ0LTYiXXtncmlkLXJvdy1zdGFydDo2IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0B4czplbmQtNiJde2dyaWQtcm93LWVuZDo2IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEB4czpzdGFydC03Il17Z3JpZC1jb2x1bW4t'@; put 'c3RhcnQ6NyFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAeHM6ZW5kLTciXXtncmlkLWNvbHVtbi1lbmQ6NyFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAeHM6c3RhcnQtNyJde2dyaWQtcm93LXN0YXJ0OjchaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHhzOmVuZC03Il17Z3Jp'@; put 'ZC1yb3ctZW5kOjchaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHhzOnN0YXJ0LTgiXXtncmlkLWNvbHVtbi1zdGFydDo4IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEB4czplbmQtOCJde2dyaWQtY29sdW1uLWVuZDo4IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0B4czpzdGFy'@; put 'dC04Il17Z3JpZC1yb3ctc3RhcnQ6OCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAeHM6ZW5kLTgiXXtncmlkLXJvdy1lbmQ6OCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAeHM6c3RhcnQtOSJde2dyaWQtY29sdW1uLXN0YXJ0OjkhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29s'@; put 'QHhzOmVuZC05Il17Z3JpZC1jb2x1bW4tZW5kOjkhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHhzOnN0YXJ0LTkiXXtncmlkLXJvdy1zdGFydDo5IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0B4czplbmQtOSJde2dyaWQtcm93LWVuZDo5IWltcG9ydGFudH1bY2RzLWxheW91dCo9'@; put 'ImNvbEB4czpzdGFydC0xMCJde2dyaWQtY29sdW1uLXN0YXJ0OjEwIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEB4czplbmQtMTAiXXtncmlkLWNvbHVtbi1lbmQ6MTAhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHhzOnN0YXJ0LTEwIl17Z3JpZC1yb3ctc3RhcnQ6MTAhaW1wb3J0'@; put 'YW50fVtjZHMtbGF5b3V0Kj0icm93QHhzOmVuZC0xMCJde2dyaWQtcm93LWVuZDoxMCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAeHM6c3RhcnQtMTEiXXtncmlkLWNvbHVtbi1zdGFydDoxMSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAeHM6ZW5kLTExIl17Z3JpZC1jb2x1bW4t'@; put 'ZW5kOjExIWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0B4czpzdGFydC0xMSJde2dyaWQtcm93LXN0YXJ0OjExIWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0B4czplbmQtMTEiXXtncmlkLXJvdy1lbmQ6MTEhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHhzOnN0YXJ0LTEyIl17'@; put 'Z3JpZC1jb2x1bW4tc3RhcnQ6MTIhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHhzOmVuZC0xMiJde2dyaWQtY29sdW1uLWVuZDoxMiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAeHM6c3RhcnQtMTIiXXtncmlkLXJvdy1zdGFydDoxMiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJy'@; put 'b3dAeHM6ZW5kLTEyIl17Z3JpZC1yb3ctZW5kOjEyIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEB4czpzdGFydC0xMyJde2dyaWQtY29sdW1uLXN0YXJ0OjEzIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEB4czplbmQtMTMiXXtncmlkLWNvbHVtbi1lbmQ6MTMhaW1wb3J0YW50fVtj'@; put 'ZHMtbGF5b3V0Kj0icm93QHhzOnN0YXJ0LTEzIl17Z3JpZC1yb3ctc3RhcnQ6MTMhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHhzOmVuZC0xMyJde2dyaWQtcm93LWVuZDoxMyFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXtbY2RzLWxheW91dCo9ImNvbEBzbTpzdGFy'@; put 'dC0xIl17Z3JpZC1jb2x1bW4tc3RhcnQ6MSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAc206ZW5kLTEiXXtncmlkLWNvbHVtbi1lbmQ6MSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAc206c3RhcnQtMSJde2dyaWQtcm93LXN0YXJ0OjEhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0i'@; put 'cm93QHNtOmVuZC0xIl17Z3JpZC1yb3ctZW5kOjEhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHNtOnN0YXJ0LTIiXXtncmlkLWNvbHVtbi1zdGFydDoyIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBzbTplbmQtMiJde2dyaWQtY29sdW1uLWVuZDoyIWltcG9ydGFudH1bY2RzLWxh'@; put 'eW91dCo9InJvd0BzbTpzdGFydC0yIl17Z3JpZC1yb3ctc3RhcnQ6MiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAc206ZW5kLTIiXXtncmlkLXJvdy1lbmQ6MiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAc206c3RhcnQtMyJde2dyaWQtY29sdW1uLXN0YXJ0OjMhaW1wb3J0YW50'@; put 'fVtjZHMtbGF5b3V0Kj0iY29sQHNtOmVuZC0zIl17Z3JpZC1jb2x1bW4tZW5kOjMhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHNtOnN0YXJ0LTMiXXtncmlkLXJvdy1zdGFydDozIWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BzbTplbmQtMyJde2dyaWQtcm93LWVuZDozIWltcG9y'@; put 'dGFudH1bY2RzLWxheW91dCo9ImNvbEBzbTpzdGFydC00Il17Z3JpZC1jb2x1bW4tc3RhcnQ6NCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAc206ZW5kLTQiXXtncmlkLWNvbHVtbi1lbmQ6NCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAc206c3RhcnQtNCJde2dyaWQtcm93LXN0'@; put 'YXJ0OjQhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHNtOmVuZC00Il17Z3JpZC1yb3ctZW5kOjQhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHNtOnN0YXJ0LTUiXXtncmlkLWNvbHVtbi1zdGFydDo1IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBzbTplbmQtNSJde2dyaWQt'@; put 'Y29sdW1uLWVuZDo1IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BzbTpzdGFydC01Il17Z3JpZC1yb3ctc3RhcnQ6NSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAc206ZW5kLTUiXXtncmlkLXJvdy1lbmQ6NSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAc206c3RhcnQtNiJd'@; put 'e2dyaWQtY29sdW1uLXN0YXJ0OjYhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHNtOmVuZC02Il17Z3JpZC1jb2x1bW4tZW5kOjYhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHNtOnN0YXJ0LTYiXXtncmlkLXJvdy1zdGFydDo2IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0Bz'@; put 'bTplbmQtNiJde2dyaWQtcm93LWVuZDo2IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBzbTpzdGFydC03Il17Z3JpZC1jb2x1bW4tc3RhcnQ6NyFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAc206ZW5kLTciXXtncmlkLWNvbHVtbi1lbmQ6NyFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQq'@; put 'PSJyb3dAc206c3RhcnQtNyJde2dyaWQtcm93LXN0YXJ0OjchaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHNtOmVuZC03Il17Z3JpZC1yb3ctZW5kOjchaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHNtOnN0YXJ0LTgiXXtncmlkLWNvbHVtbi1zdGFydDo4IWltcG9ydGFudH1bY2Rz'@; put 'LWxheW91dCo9ImNvbEBzbTplbmQtOCJde2dyaWQtY29sdW1uLWVuZDo4IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BzbTpzdGFydC04Il17Z3JpZC1yb3ctc3RhcnQ6OCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAc206ZW5kLTgiXXtncmlkLXJvdy1lbmQ6OCFpbXBvcnRhbnR9'@; put 'W2Nkcy1sYXlvdXQqPSJjb2xAc206c3RhcnQtOSJde2dyaWQtY29sdW1uLXN0YXJ0OjkhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHNtOmVuZC05Il17Z3JpZC1jb2x1bW4tZW5kOjkhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHNtOnN0YXJ0LTkiXXtncmlkLXJvdy1zdGFydDo5'@; put 'IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BzbTplbmQtOSJde2dyaWQtcm93LWVuZDo5IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBzbTpzdGFydC0xMCJde2dyaWQtY29sdW1uLXN0YXJ0OjEwIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBzbTplbmQtMTAiXXtncmlkLWNv'@; put 'bHVtbi1lbmQ6MTAhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHNtOnN0YXJ0LTEwIl17Z3JpZC1yb3ctc3RhcnQ6MTAhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHNtOmVuZC0xMCJde2dyaWQtcm93LWVuZDoxMCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAc206c3RhcnQt'@; put 'MTEiXXtncmlkLWNvbHVtbi1zdGFydDoxMSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAc206ZW5kLTExIl17Z3JpZC1jb2x1bW4tZW5kOjExIWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BzbTpzdGFydC0xMSJde2dyaWQtcm93LXN0YXJ0OjExIWltcG9ydGFudH1bY2RzLWxheW91'@; put 'dCo9InJvd0BzbTplbmQtMTEiXXtncmlkLXJvdy1lbmQ6MTEhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHNtOnN0YXJ0LTEyIl17Z3JpZC1jb2x1bW4tc3RhcnQ6MTIhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHNtOmVuZC0xMiJde2dyaWQtY29sdW1uLWVuZDoxMiFpbXBvcnRh'@; put 'bnR9W2Nkcy1sYXlvdXQqPSJyb3dAc206c3RhcnQtMTIiXXtncmlkLXJvdy1zdGFydDoxMiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAc206ZW5kLTEyIl17Z3JpZC1yb3ctZW5kOjEyIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBzbTpzdGFydC0xMyJde2dyaWQtY29sdW1uLXN0'@; put 'YXJ0OjEzIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBzbTplbmQtMTMiXXtncmlkLWNvbHVtbi1lbmQ6MTMhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHNtOnN0YXJ0LTEzIl17Z3JpZC1yb3ctc3RhcnQ6MTMhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHNtOmVuZC0xMyJd'@; put 'e2dyaWQtcm93LWVuZDoxMyFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXtbY2RzLWxheW91dCo9ImNvbEBtZDpzdGFydC0xIl17Z3JpZC1jb2x1bW4tc3RhcnQ6MSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAbWQ6ZW5kLTEiXXtncmlkLWNvbHVtbi1lbmQ6MSFpbXBv'@; put 'cnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAbWQ6c3RhcnQtMSJde2dyaWQtcm93LXN0YXJ0OjEhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QG1kOmVuZC0xIl17Z3JpZC1yb3ctZW5kOjEhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQG1kOnN0YXJ0LTIiXXtncmlkLWNvbHVtbi1zdGFy'@; put 'dDoyIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBtZDplbmQtMiJde2dyaWQtY29sdW1uLWVuZDoyIWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BtZDpzdGFydC0yIl17Z3JpZC1yb3ctc3RhcnQ6MiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAbWQ6ZW5kLTIiXXtncmlkLXJv'@; put 'dy1lbmQ6MiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAbWQ6c3RhcnQtMyJde2dyaWQtY29sdW1uLXN0YXJ0OjMhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQG1kOmVuZC0zIl17Z3JpZC1jb2x1bW4tZW5kOjMhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QG1kOnN0YXJ0LTMi'@; put 'XXtncmlkLXJvdy1zdGFydDozIWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BtZDplbmQtMyJde2dyaWQtcm93LWVuZDozIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBtZDpzdGFydC00Il17Z3JpZC1jb2x1bW4tc3RhcnQ6NCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAbWQ6'@; put 'ZW5kLTQiXXtncmlkLWNvbHVtbi1lbmQ6NCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAbWQ6c3RhcnQtNCJde2dyaWQtcm93LXN0YXJ0OjQhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QG1kOmVuZC00Il17Z3JpZC1yb3ctZW5kOjQhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29s'@; put 'QG1kOnN0YXJ0LTUiXXtncmlkLWNvbHVtbi1zdGFydDo1IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBtZDplbmQtNSJde2dyaWQtY29sdW1uLWVuZDo1IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BtZDpzdGFydC01Il17Z3JpZC1yb3ctc3RhcnQ6NSFpbXBvcnRhbnR9W2Nkcy1s'@; put 'YXlvdXQqPSJyb3dAbWQ6ZW5kLTUiXXtncmlkLXJvdy1lbmQ6NSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAbWQ6c3RhcnQtNiJde2dyaWQtY29sdW1uLXN0YXJ0OjYhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQG1kOmVuZC02Il17Z3JpZC1jb2x1bW4tZW5kOjYhaW1wb3J0YW50'@; put 'fVtjZHMtbGF5b3V0Kj0icm93QG1kOnN0YXJ0LTYiXXtncmlkLXJvdy1zdGFydDo2IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BtZDplbmQtNiJde2dyaWQtcm93LWVuZDo2IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBtZDpzdGFydC03Il17Z3JpZC1jb2x1bW4tc3RhcnQ6NyFp'@; put 'bXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAbWQ6ZW5kLTciXXtncmlkLWNvbHVtbi1lbmQ6NyFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAbWQ6c3RhcnQtNyJde2dyaWQtcm93LXN0YXJ0OjchaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QG1kOmVuZC03Il17Z3JpZC1yb3ctZW5k'@; put 'OjchaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQG1kOnN0YXJ0LTgiXXtncmlkLWNvbHVtbi1zdGFydDo4IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBtZDplbmQtOCJde2dyaWQtY29sdW1uLWVuZDo4IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BtZDpzdGFydC04Il17Z3Jp'@; put 'ZC1yb3ctc3RhcnQ6OCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAbWQ6ZW5kLTgiXXtncmlkLXJvdy1lbmQ6OCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAbWQ6c3RhcnQtOSJde2dyaWQtY29sdW1uLXN0YXJ0OjkhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQG1kOmVuZC05'@; put 'Il17Z3JpZC1jb2x1bW4tZW5kOjkhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QG1kOnN0YXJ0LTkiXXtncmlkLXJvdy1zdGFydDo5IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BtZDplbmQtOSJde2dyaWQtcm93LWVuZDo5IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBtZDpz'@; put 'dGFydC0xMCJde2dyaWQtY29sdW1uLXN0YXJ0OjEwIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBtZDplbmQtMTAiXXtncmlkLWNvbHVtbi1lbmQ6MTAhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QG1kOnN0YXJ0LTEwIl17Z3JpZC1yb3ctc3RhcnQ6MTAhaW1wb3J0YW50fVtjZHMt'@; put 'bGF5b3V0Kj0icm93QG1kOmVuZC0xMCJde2dyaWQtcm93LWVuZDoxMCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAbWQ6c3RhcnQtMTEiXXtncmlkLWNvbHVtbi1zdGFydDoxMSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAbWQ6ZW5kLTExIl17Z3JpZC1jb2x1bW4tZW5kOjExIWlt'@; put 'cG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BtZDpzdGFydC0xMSJde2dyaWQtcm93LXN0YXJ0OjExIWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BtZDplbmQtMTEiXXtncmlkLXJvdy1lbmQ6MTEhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQG1kOnN0YXJ0LTEyIl17Z3JpZC1jb2x1'@; put 'bW4tc3RhcnQ6MTIhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQG1kOmVuZC0xMiJde2dyaWQtY29sdW1uLWVuZDoxMiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAbWQ6c3RhcnQtMTIiXXtncmlkLXJvdy1zdGFydDoxMiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAbWQ6ZW5k'@; put 'LTEyIl17Z3JpZC1yb3ctZW5kOjEyIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBtZDpzdGFydC0xMyJde2dyaWQtY29sdW1uLXN0YXJ0OjEzIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBtZDplbmQtMTMiXXtncmlkLWNvbHVtbi1lbmQ6MTMhaW1wb3J0YW50fVtjZHMtbGF5b3V0'@; put 'Kj0icm93QG1kOnN0YXJ0LTEzIl17Z3JpZC1yb3ctc3RhcnQ6MTMhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QG1kOmVuZC0xMyJde2dyaWQtcm93LWVuZDoxMyFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7W2Nkcy1sYXlvdXQqPSJjb2xAbGc6c3RhcnQtMSJde2dy'@; put 'aWQtY29sdW1uLXN0YXJ0OjEhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQGxnOmVuZC0xIl17Z3JpZC1jb2x1bW4tZW5kOjEhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QGxnOnN0YXJ0LTEiXXtncmlkLXJvdy1zdGFydDoxIWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BsZzpl'@; put 'bmQtMSJde2dyaWQtcm93LWVuZDoxIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBsZzpzdGFydC0yIl17Z3JpZC1jb2x1bW4tc3RhcnQ6MiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAbGc6ZW5kLTIiXXtncmlkLWNvbHVtbi1lbmQ6MiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJy'@; put 'b3dAbGc6c3RhcnQtMiJde2dyaWQtcm93LXN0YXJ0OjIhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QGxnOmVuZC0yIl17Z3JpZC1yb3ctZW5kOjIhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQGxnOnN0YXJ0LTMiXXtncmlkLWNvbHVtbi1zdGFydDozIWltcG9ydGFudH1bY2RzLWxh'@; put 'eW91dCo9ImNvbEBsZzplbmQtMyJde2dyaWQtY29sdW1uLWVuZDozIWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BsZzpzdGFydC0zIl17Z3JpZC1yb3ctc3RhcnQ6MyFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAbGc6ZW5kLTMiXXtncmlkLXJvdy1lbmQ6MyFpbXBvcnRhbnR9W2Nk'@; put 'cy1sYXlvdXQqPSJjb2xAbGc6c3RhcnQtNCJde2dyaWQtY29sdW1uLXN0YXJ0OjQhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQGxnOmVuZC00Il17Z3JpZC1jb2x1bW4tZW5kOjQhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QGxnOnN0YXJ0LTQiXXtncmlkLXJvdy1zdGFydDo0IWlt'@; put 'cG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BsZzplbmQtNCJde2dyaWQtcm93LWVuZDo0IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBsZzpzdGFydC01Il17Z3JpZC1jb2x1bW4tc3RhcnQ6NSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAbGc6ZW5kLTUiXXtncmlkLWNvbHVtbi1l'@; put 'bmQ6NSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAbGc6c3RhcnQtNSJde2dyaWQtcm93LXN0YXJ0OjUhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QGxnOmVuZC01Il17Z3JpZC1yb3ctZW5kOjUhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQGxnOnN0YXJ0LTYiXXtncmlkLWNv'@; put 'bHVtbi1zdGFydDo2IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBsZzplbmQtNiJde2dyaWQtY29sdW1uLWVuZDo2IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BsZzpzdGFydC02Il17Z3JpZC1yb3ctc3RhcnQ6NiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAbGc6ZW5kLTYi'@; put 'XXtncmlkLXJvdy1lbmQ6NiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAbGc6c3RhcnQtNyJde2dyaWQtY29sdW1uLXN0YXJ0OjchaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQGxnOmVuZC03Il17Z3JpZC1jb2x1bW4tZW5kOjchaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QGxn'@; put 'OnN0YXJ0LTciXXtncmlkLXJvdy1zdGFydDo3IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BsZzplbmQtNyJde2dyaWQtcm93LWVuZDo3IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBsZzpzdGFydC04Il17Z3JpZC1jb2x1bW4tc3RhcnQ6OCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQq'@; put 'PSJjb2xAbGc6ZW5kLTgiXXtncmlkLWNvbHVtbi1lbmQ6OCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAbGc6c3RhcnQtOCJde2dyaWQtcm93LXN0YXJ0OjghaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QGxnOmVuZC04Il17Z3JpZC1yb3ctZW5kOjghaW1wb3J0YW50fVtjZHMtbGF5'@; put 'b3V0Kj0iY29sQGxnOnN0YXJ0LTkiXXtncmlkLWNvbHVtbi1zdGFydDo5IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBsZzplbmQtOSJde2dyaWQtY29sdW1uLWVuZDo5IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BsZzpzdGFydC05Il17Z3JpZC1yb3ctc3RhcnQ6OSFpbXBvcnRh'@; put 'bnR9W2Nkcy1sYXlvdXQqPSJyb3dAbGc6ZW5kLTkiXXtncmlkLXJvdy1lbmQ6OSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAbGc6c3RhcnQtMTAiXXtncmlkLWNvbHVtbi1zdGFydDoxMCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAbGc6ZW5kLTEwIl17Z3JpZC1jb2x1bW4tZW5k'@; put 'OjEwIWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BsZzpzdGFydC0xMCJde2dyaWQtcm93LXN0YXJ0OjEwIWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BsZzplbmQtMTAiXXtncmlkLXJvdy1lbmQ6MTAhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQGxnOnN0YXJ0LTExIl17Z3Jp'@; put 'ZC1jb2x1bW4tc3RhcnQ6MTEhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQGxnOmVuZC0xMSJde2dyaWQtY29sdW1uLWVuZDoxMSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAbGc6c3RhcnQtMTEiXXtncmlkLXJvdy1zdGFydDoxMSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dA'@; put 'bGc6ZW5kLTExIl17Z3JpZC1yb3ctZW5kOjExIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBsZzpzdGFydC0xMiJde2dyaWQtY29sdW1uLXN0YXJ0OjEyIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEBsZzplbmQtMTIiXXtncmlkLWNvbHVtbi1lbmQ6MTIhaW1wb3J0YW50fVtjZHMt'@; put 'bGF5b3V0Kj0icm93QGxnOnN0YXJ0LTEyIl17Z3JpZC1yb3ctc3RhcnQ6MTIhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QGxnOmVuZC0xMiJde2dyaWQtcm93LWVuZDoxMiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAbGc6c3RhcnQtMTMiXXtncmlkLWNvbHVtbi1zdGFydDoxMyFp'@; put 'bXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAbGc6ZW5kLTEzIl17Z3JpZC1jb2x1bW4tZW5kOjEzIWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BsZzpzdGFydC0xMyJde2dyaWQtcm93LXN0YXJ0OjEzIWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0BsZzplbmQtMTMiXXtncmlkLXJv'@; put 'dy1lbmQ6MTMhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDoxNDQwcHgpe1tjZHMtbGF5b3V0Kj0iY29sQHhsOnN0YXJ0LTEiXXtncmlkLWNvbHVtbi1zdGFydDoxIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEB4bDplbmQtMSJde2dyaWQtY29sdW1uLWVuZDoxIWltcG9ydGFudH1b'@; put 'Y2RzLWxheW91dCo9InJvd0B4bDpzdGFydC0xIl17Z3JpZC1yb3ctc3RhcnQ6MSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAeGw6ZW5kLTEiXXtncmlkLXJvdy1lbmQ6MSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAeGw6c3RhcnQtMiJde2dyaWQtY29sdW1uLXN0YXJ0OjIhaW1w'@; put 'b3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHhsOmVuZC0yIl17Z3JpZC1jb2x1bW4tZW5kOjIhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHhsOnN0YXJ0LTIiXXtncmlkLXJvdy1zdGFydDoyIWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0B4bDplbmQtMiJde2dyaWQtcm93LWVuZDoy'@; put 'IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEB4bDpzdGFydC0zIl17Z3JpZC1jb2x1bW4tc3RhcnQ6MyFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAeGw6ZW5kLTMiXXtncmlkLWNvbHVtbi1lbmQ6MyFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAeGw6c3RhcnQtMyJde2dyaWQt'@; put 'cm93LXN0YXJ0OjMhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHhsOmVuZC0zIl17Z3JpZC1yb3ctZW5kOjMhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHhsOnN0YXJ0LTQiXXtncmlkLWNvbHVtbi1zdGFydDo0IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEB4bDplbmQtNCJd'@; put 'e2dyaWQtY29sdW1uLWVuZDo0IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0B4bDpzdGFydC00Il17Z3JpZC1yb3ctc3RhcnQ6NCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAeGw6ZW5kLTQiXXtncmlkLXJvdy1lbmQ6NCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAeGw6c3Rh'@; put 'cnQtNSJde2dyaWQtY29sdW1uLXN0YXJ0OjUhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHhsOmVuZC01Il17Z3JpZC1jb2x1bW4tZW5kOjUhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHhsOnN0YXJ0LTUiXXtncmlkLXJvdy1zdGFydDo1IWltcG9ydGFudH1bY2RzLWxheW91dCo9'@; put 'InJvd0B4bDplbmQtNSJde2dyaWQtcm93LWVuZDo1IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEB4bDpzdGFydC02Il17Z3JpZC1jb2x1bW4tc3RhcnQ6NiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAeGw6ZW5kLTYiXXtncmlkLWNvbHVtbi1lbmQ6NiFpbXBvcnRhbnR9W2Nkcy1s'@; put 'YXlvdXQqPSJyb3dAeGw6c3RhcnQtNiJde2dyaWQtcm93LXN0YXJ0OjYhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHhsOmVuZC02Il17Z3JpZC1yb3ctZW5kOjYhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHhsOnN0YXJ0LTciXXtncmlkLWNvbHVtbi1zdGFydDo3IWltcG9ydGFu'@; put 'dH1bY2RzLWxheW91dCo9ImNvbEB4bDplbmQtNyJde2dyaWQtY29sdW1uLWVuZDo3IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0B4bDpzdGFydC03Il17Z3JpZC1yb3ctc3RhcnQ6NyFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAeGw6ZW5kLTciXXtncmlkLXJvdy1lbmQ6NyFpbXBv'@; put 'cnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAeGw6c3RhcnQtOCJde2dyaWQtY29sdW1uLXN0YXJ0OjghaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHhsOmVuZC04Il17Z3JpZC1jb2x1bW4tZW5kOjghaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHhsOnN0YXJ0LTgiXXtncmlkLXJvdy1z'@; put 'dGFydDo4IWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0B4bDplbmQtOCJde2dyaWQtcm93LWVuZDo4IWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEB4bDpzdGFydC05Il17Z3JpZC1jb2x1bW4tc3RhcnQ6OSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAeGw6ZW5kLTkiXXtncmlk'@; put 'LWNvbHVtbi1lbmQ6OSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAeGw6c3RhcnQtOSJde2dyaWQtcm93LXN0YXJ0OjkhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHhsOmVuZC05Il17Z3JpZC1yb3ctZW5kOjkhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHhsOnN0YXJ0LTEw'@; put 'Il17Z3JpZC1jb2x1bW4tc3RhcnQ6MTAhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHhsOmVuZC0xMCJde2dyaWQtY29sdW1uLWVuZDoxMCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAeGw6c3RhcnQtMTAiXXtncmlkLXJvdy1zdGFydDoxMCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQq'@; put 'PSJyb3dAeGw6ZW5kLTEwIl17Z3JpZC1yb3ctZW5kOjEwIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEB4bDpzdGFydC0xMSJde2dyaWQtY29sdW1uLXN0YXJ0OjExIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImNvbEB4bDplbmQtMTEiXXtncmlkLWNvbHVtbi1lbmQ6MTEhaW1wb3J0YW50'@; put 'fVtjZHMtbGF5b3V0Kj0icm93QHhsOnN0YXJ0LTExIl17Z3JpZC1yb3ctc3RhcnQ6MTEhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0icm93QHhsOmVuZC0xMSJde2dyaWQtcm93LWVuZDoxMSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAeGw6c3RhcnQtMTIiXXtncmlkLWNvbHVtbi1zdGFy'@; put 'dDoxMiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJjb2xAeGw6ZW5kLTEyIl17Z3JpZC1jb2x1bW4tZW5kOjEyIWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0B4bDpzdGFydC0xMiJde2dyaWQtcm93LXN0YXJ0OjEyIWltcG9ydGFudH1bY2RzLWxheW91dCo9InJvd0B4bDplbmQtMTIiXXtn'@; put 'cmlkLXJvdy1lbmQ6MTIhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHhsOnN0YXJ0LTEzIl17Z3JpZC1jb2x1bW4tc3RhcnQ6MTMhaW1wb3J0YW50fVtjZHMtbGF5b3V0Kj0iY29sQHhsOmVuZC0xMyJde2dyaWQtY29sdW1uLWVuZDoxMyFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dA'@; put 'eGw6c3RhcnQtMTMiXXtncmlkLXJvdy1zdGFydDoxMyFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJyb3dAeGw6ZW5kLTEzIl17Z3JpZC1yb3ctZW5kOjEzIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpe1tjZHMtbGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6'@; put 'dG9wIl17YWxpZ24tY29udGVudDpzdGFydH1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduQHhzOnJpZ2h0Il17anVzdGlmeS1jb250ZW50OmVuZH1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduQHhzOmJvdHRvbSJde2FsaWduLWNvbnRlbnQ6ZW5kfVtj'@; put 'ZHMtbGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6bGVmdCJde2p1c3RpZnktY29udGVudDpzdGFydH1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduQHhzOnZlcnRpY2FsLXN0cmV0Y2giXXthbGlnbi1pdGVtczpzdHJldGNoO2FsaWduLWNvbnRlbnQ6c3Ry'@; put 'ZXRjaH1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduQHhzOmhvcml6b250YWwtc3RyZXRjaCJde2p1c3RpZnktaXRlbXM6c3RyZXRjaDtqdXN0aWZ5LWNvbnRlbnQ6c3RyZXRjaH1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduQHhzOnN0cmV0Y2giXXth'@; put 'bGlnbi1pdGVtczpzdHJldGNoO2FsaWduLWNvbnRlbnQ6c3RyZXRjaDtqdXN0aWZ5LWl0ZW1zOnN0cmV0Y2g7anVzdGlmeS1jb250ZW50OnN0cmV0Y2h9W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czp2ZXJ0aWNhbC1jZW50ZXIiXXthbGlnbi1pdGVtczpjZW50ZXI7'@; put 'YWxpZ24tY29udGVudDpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czpob3Jpem9udGFsLWNlbnRlciJde2p1c3RpZnktaXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbkB4'@; put 'czpjZW50ZXIiXXthbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24tY29udGVudDpjZW50ZXI7anVzdGlmeS1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpe1tjZHMtbGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206dG9w'@; put 'Il17YWxpZ24tY29udGVudDpzdGFydH1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduQHNtOnJpZ2h0Il17anVzdGlmeS1jb250ZW50OmVuZH1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduQHNtOmJvdHRvbSJde2FsaWduLWNvbnRlbnQ6ZW5kfVtjZHMt'@; put 'bGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206bGVmdCJde2p1c3RpZnktY29udGVudDpzdGFydH1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduQHNtOnZlcnRpY2FsLXN0cmV0Y2giXXthbGlnbi1pdGVtczpzdHJldGNoO2FsaWduLWNvbnRlbnQ6c3RyZXRj'@; put 'aH1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduQHNtOmhvcml6b250YWwtc3RyZXRjaCJde2p1c3RpZnktaXRlbXM6c3RyZXRjaDtqdXN0aWZ5LWNvbnRlbnQ6c3RyZXRjaH1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduQHNtOnN0cmV0Y2giXXthbGln'@; put 'bi1pdGVtczpzdHJldGNoO2FsaWduLWNvbnRlbnQ6c3RyZXRjaDtqdXN0aWZ5LWl0ZW1zOnN0cmV0Y2g7anVzdGlmeS1jb250ZW50OnN0cmV0Y2h9W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTp2ZXJ0aWNhbC1jZW50ZXIiXXthbGlnbi1pdGVtczpjZW50ZXI7YWxp'@; put 'Z24tY29udGVudDpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTpob3Jpem9udGFsLWNlbnRlciJde2p1c3RpZnktaXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTpj'@; put 'ZW50ZXIiXXthbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24tY29udGVudDpjZW50ZXI7anVzdGlmeS1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpe1tjZHMtbGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6dG9wIl17'@; put 'YWxpZ24tY29udGVudDpzdGFydH1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduQG1kOnJpZ2h0Il17anVzdGlmeS1jb250ZW50OmVuZH1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduQG1kOmJvdHRvbSJde2FsaWduLWNvbnRlbnQ6ZW5kfVtjZHMtbGF5'@; put 'b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6bGVmdCJde2p1c3RpZnktY29udGVudDpzdGFydH1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduQG1kOnZlcnRpY2FsLXN0cmV0Y2giXXthbGlnbi1pdGVtczpzdHJldGNoO2FsaWduLWNvbnRlbnQ6c3RyZXRjaH1b'@; put 'Y2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduQG1kOmhvcml6b250YWwtc3RyZXRjaCJde2p1c3RpZnktaXRlbXM6c3RyZXRjaDtqdXN0aWZ5LWNvbnRlbnQ6c3RyZXRjaH1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduQG1kOnN0cmV0Y2giXXthbGlnbi1p'@; put 'dGVtczpzdHJldGNoO2FsaWduLWNvbnRlbnQ6c3RyZXRjaDtqdXN0aWZ5LWl0ZW1zOnN0cmV0Y2g7anVzdGlmeS1jb250ZW50OnN0cmV0Y2h9W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDp2ZXJ0aWNhbC1jZW50ZXIiXXthbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24t'@; put 'Y29udGVudDpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDpob3Jpem9udGFsLWNlbnRlciJde2p1c3RpZnktaXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDpjZW50'@; put 'ZXIiXXthbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24tY29udGVudDpjZW50ZXI7anVzdGlmeS1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXtbY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduQGxnOnRvcCJde2Fs'@; put 'aWduLWNvbnRlbnQ6c3RhcnR9W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpyaWdodCJde2p1c3RpZnktY29udGVudDplbmR9W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpib3R0b20iXXthbGlnbi1jb250ZW50OmVuZH1bY2RzLWxheW91'@; put 'dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduQGxnOmxlZnQiXXtqdXN0aWZ5LWNvbnRlbnQ6c3RhcnR9W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzp2ZXJ0aWNhbC1zdHJldGNoIl17YWxpZ24taXRlbXM6c3RyZXRjaDthbGlnbi1jb250ZW50OnN0cmV0Y2h9W2Nk'@; put 'cy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpob3Jpem9udGFsLXN0cmV0Y2giXXtqdXN0aWZ5LWl0ZW1zOnN0cmV0Y2g7anVzdGlmeS1jb250ZW50OnN0cmV0Y2h9W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpzdHJldGNoIl17YWxpZ24taXRl'@; put 'bXM6c3RyZXRjaDthbGlnbi1jb250ZW50OnN0cmV0Y2g7anVzdGlmeS1pdGVtczpzdHJldGNoO2p1c3RpZnktY29udGVudDpzdHJldGNofVtjZHMtbGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6dmVydGljYWwtY2VudGVyIl17YWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWNv'@; put 'bnRlbnQ6Y2VudGVyfVtjZHMtbGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6aG9yaXpvbnRhbC1jZW50ZXIiXXtqdXN0aWZ5LWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfVtjZHMtbGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6Y2VudGVy'@; put 'Il17YWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktaXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9fUBtZWRpYSAobWluLXdpZHRoOjE0NDBweCl7W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDp0b3AiXXthbGln'@; put 'bi1jb250ZW50OnN0YXJ0fVtjZHMtbGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6cmlnaHQiXXtqdXN0aWZ5LWNvbnRlbnQ6ZW5kfVtjZHMtbGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6Ym90dG9tIl17YWxpZ24tY29udGVudDplbmR9W2Nkcy1sYXlvdXR+'@; put 'PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDpsZWZ0Il17anVzdGlmeS1jb250ZW50OnN0YXJ0fVtjZHMtbGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6dmVydGljYWwtc3RyZXRjaCJde2FsaWduLWl0ZW1zOnN0cmV0Y2g7YWxpZ24tY29udGVudDpzdHJldGNofVtjZHMt'@; put 'bGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6aG9yaXpvbnRhbC1zdHJldGNoIl17anVzdGlmeS1pdGVtczpzdHJldGNoO2p1c3RpZnktY29udGVudDpzdHJldGNofVtjZHMtbGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6c3RyZXRjaCJde2FsaWduLWl0ZW1z'@; put 'OnN0cmV0Y2g7YWxpZ24tY29udGVudDpzdHJldGNoO2p1c3RpZnktaXRlbXM6c3RyZXRjaDtqdXN0aWZ5LWNvbnRlbnQ6c3RyZXRjaH1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduQHhsOnZlcnRpY2FsLWNlbnRlciJde2FsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1jb250'@; put 'ZW50OmNlbnRlcn1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduQHhsOmhvcml6b250YWwtY2VudGVyIl17anVzdGlmeS1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduQHhsOmNlbnRlciJd'@; put 'e2FsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfX1bY2RzLWxheW91dH49ImRpc3BsYXk6bm9uZSJde2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJkaXNwbGF5OmZsZXgi'@; put 'XXtkaXNwbGF5OmZsZXghaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0iZGlzcGxheTpjb250ZW50cyJde2Rpc3BsYXk6Y29udGVudHMhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0iZGlzcGxheTpibG9jayJde2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0iZGlzcGxheTppbmxp'@; put 'bmUiXXtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnR9QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpe1tjZHMtbGF5b3V0fj0iZGlzcGxheUBzbTpub25lIl17ZGlzcGxheTpub25lIWltcG9ydGFudH1bY2RzLWxheW91dH49ImRpc3BsYXlAc206ZmxleCJde2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnR9'@; put 'W2Nkcy1sYXlvdXR+PSJkaXNwbGF5QHNtOmJsb2NrIl17ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJkaXNwbGF5QHNtOmlubGluZSJde2Rpc3BsYXk6aW5saW5lIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpe1tjZHMtbGF5b3V0fj0iZGlzcGxheUBt'@; put 'ZDpub25lIl17ZGlzcGxheTpub25lIWltcG9ydGFudH1bY2RzLWxheW91dH49ImRpc3BsYXlAbWQ6ZmxleCJde2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJkaXNwbGF5QG1kOmJsb2NrIl17ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJkaXNwbGF5'@; put 'QG1kOmlubGluZSJde2Rpc3BsYXk6aW5saW5lIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXtbY2RzLWxheW91dH49ImRpc3BsYXlAbGc6bm9uZSJde2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJkaXNwbGF5QGxnOmZsZXgiXXtkaXNwbGF5OmZsZXgh'@; put 'aW1wb3J0YW50fVtjZHMtbGF5b3V0fj0iZGlzcGxheUBsZzpibG9jayJde2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0iZGlzcGxheUBsZzppbmxpbmUiXXtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjE0NDBweCl7W2Nkcy1sYXlvdXR+'@; put 'PSJkaXNwbGF5QHhsOm5vbmUiXXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0iZGlzcGxheUB4bDpmbGV4Il17ZGlzcGxheTpmbGV4IWltcG9ydGFudH1bY2RzLWxheW91dH49ImRpc3BsYXlAeGw6YmxvY2siXXtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH1bY2RzLWxheW91'@; put 'dH49ImRpc3BsYXlAeGw6aW5saW5lIl17ZGlzcGxheTppbmxpbmUhaW1wb3J0YW50fX06OnNsb3R0ZWQoW2Nkcy1sYXlvdXR+PSJkaXNwbGF5OnNjcmVlbi1yZWFkZXItb25seSJdKSxbY2RzLWxheW91dH49ImRpc3BsYXk6c2NyZWVuLXJlYWRlci1vbmx5Il17cG9zaXRpb246YWJzb2x1dGUh'@; put 'aW1wb3J0YW50O2NsaXA6cmVjdCgxcHgsMXB4LDFweCwxcHgpO2NsaXAtcGF0aDppbnNldCg1MCUpO3BhZGRpbmc6MDtib3JkZXI6MDtoZWlnaHQ6MXB4O3dpZHRoOjFweDtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3RvcDowO2xlZnQ6MDtkaXNwbGF5OmJsb2NrIWltcG9y'@; put 'dGFudH1bY2RzLWxheW91dCo9ImdhcDpub25lIl17Z2FwOjB9W2Nkcy1sYXlvdXQqPSJnYXA6eHh4cyJde2dhcDp2YXIoLS1cM2I0IDEpfVtjZHMtbGF5b3V0Kj0iZ2FwOnh4cyJde2dhcDp2YXIoLS1cM2I0IDIpfVtjZHMtbGF5b3V0Kj0iZ2FwOnhzIl17Z2FwOnZhcigtLVwzYjQgMyl9W2Nk'@; put 'cy1sYXlvdXQqPSJnYXA6c20iXXtnYXA6dmFyKC0tXDNiNCA0KX1bY2RzLWxheW91dCo9ImdhcDptZCJde2dhcDp2YXIoLS1cM2I0IDUpfVtjZHMtbGF5b3V0Kj0iZ2FwOmxnIl17Z2FwOnZhcigtLVwzYjQgNil9W2Nkcy1sYXlvdXQqPSJnYXA6eGwiXXtnYXA6dmFyKC0tXDNiNCA3KX1bY2Rz'@; put 'LWxheW91dCo9ImdhcDp4eGwiXXtnYXA6dmFyKC0tXDNiNCA4KX1bY2RzLWxheW91dCo9ImdhcDp4eHhsIl17Z2FwOnZhcigtLVwzYjQgOSl9W2Nkcy1sYXlvdXR+PSJwOm5vbmUiXXtwYWRkaW5nOjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibTpub25lIl17bWFyZ2luOjAhaW1wb3J0YW50'@; put 'fVtjZHMtbGF5b3V0fj0icDp4eHhzIl17cGFkZGluZzp2YXIoLS1cM2I0IDEpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im06eHh4cyJde21hcmdpbjp2YXIoLS1cM2I0IDEpIWltcG9ydGFudH1bY2RzLWxheW91dH49InA6eHhzIl17cGFkZGluZzp2YXIoLS1cM2I0IDIpIWltcG9ydGFudH1b'@; put 'Y2RzLWxheW91dH49Im06eHhzIl17bWFyZ2luOnZhcigtLVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icDp4cyJde3BhZGRpbmc6dmFyKC0tXDNiNCAzKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtOnhzIl17bWFyZ2luOnZhcigtLVwzYjQgMykhaW1wb3J0YW50fVtjZHMtbGF5'@; put 'b3V0fj0icDpzbSJde3BhZGRpbmc6dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtOnNtIl17bWFyZ2luOnZhcigtLVwzYjQgNCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icDptZCJde3BhZGRpbmc6dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJt'@; put 'Om1kIl17bWFyZ2luOnZhcigtLVwzYjQgNSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icDpsZyJde3BhZGRpbmc6dmFyKC0tXDNiNCA2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtOmxnIl17bWFyZ2luOnZhcigtLVwzYjQgNikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icDp4bCJde3Bh'@; put 'ZGRpbmc6dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtOnhsIl17bWFyZ2luOnZhcigtLVwzYjQgNykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icDp4eGwiXXtwYWRkaW5nOnZhcigtLVwzYjQgOCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibTp4eGwiXXttYXJnaW46'@; put 'dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwOnh4eGwiXXtwYWRkaW5nOnZhcigtLVwzYjQgOSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibTp4eHhsIl17bWFyZ2luOnZhcigtLVwzYjQgOSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC14Om5vbmUiXXtwYWRkaW5n'@; put 'LWxlZnQ6MCFpbXBvcnRhbnQ7cGFkZGluZy1yaWdodDowIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteTpub25lIl17cGFkZGluZy10b3A6MCFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206MCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXg6eHh4cyJde3BhZGRpbmctbGVmdDp2YXIoLS1c'@; put 'M2I0IDEpIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgMSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC15Onh4eHMiXXtwYWRkaW5nLXRvcDp2YXIoLS1cM2I0IDEpIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTp2YXIoLS1cM2I0IDEpIWltcG9ydGFudH1bY2RzLWxheW91'@; put 'dH49InAteDp4eHMiXXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCAyKSFpbXBvcnRhbnQ7cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDIpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteTp4eHMiXXtwYWRkaW5nLXRvcDp2YXIoLS1cM2I0IDIpIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTp2'@; put 'YXIoLS1cM2I0IDIpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteDp4cyJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDMpIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgMykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC15OnhzIl17cGFkZGluZy10b3A6dmFyKC0tXDNi'@; put 'NCAzKSFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCAzKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXg6c20iXXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnQ7cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDQpIWltcG9ydGFudH1bY2RzLWxheW91dH49'@; put 'InAteTpzbSJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgNCkhaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgNCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC14Om1kIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgNSkhaW1wb3J0YW50O3BhZGRpbmctcmlnaHQ6dmFyKC0t'@; put 'XDNiNCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXk6bWQiXXtwYWRkaW5nLXRvcDp2YXIoLS1cM2I0IDUpIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTp2YXIoLS1cM2I0IDUpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteDpsZyJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDYp'@; put 'IWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgNikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC15OmxnIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCA2KSFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCA2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXg6'@; put 'eGwiXXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnQ7cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDcpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteTp4bCJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgNykhaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQg'@; put 'NykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC14Onh4bCJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDgpIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgOCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC15Onh4bCJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgOCkhaW1w'@; put 'b3J0YW50O3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgOCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC14Onh4eGwiXXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCA5KSFpbXBvcnRhbnQ7cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDkpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteTp4'@; put 'eHhsIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCA5KSFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCA5KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXg6bm9uZSJde21hcmdpbi1sZWZ0OjAhaW1wb3J0YW50O21hcmdpbi1yaWdodDowIWltcG9ydGFudH1bY2RzLWxheW91'@; put 'dH49Im0teTpub25lIl17bWFyZ2luLXRvcDowIWltcG9ydGFudDttYXJnaW4tYm90dG9tOjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS14Onh4eHMiXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDEpIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnR9W2Nk'@; put 'cy1sYXlvdXR+PSJtLXk6eHh4cyJde21hcmdpbi10b3A6dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbTp2YXIoLS1cM2I0IDEpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0teDp4eHMiXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDIpIWltcG9ydGFudDttYXJnaW4tcmln'@; put 'aHQ6dmFyKC0tXDNiNCAyKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXk6eHhzIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDIpIWltcG9ydGFudDttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS14OnhzIl17bWFyZ2luLWxlZnQ6dmFyKC0t'@; put 'XDNiNCAzKSFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQgMykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS15OnhzIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDMpIWltcG9ydGFudDttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgMykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0i'@; put 'bS14OnNtIl17bWFyZ2luLWxlZnQ6dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQgNCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS15OnNtIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDQpIWltcG9ydGFudDttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQg'@; put 'NCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS14Om1kIl17bWFyZ2luLWxlZnQ6dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQgNSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS15Om1kIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDUpIWltcG9ydGFu'@; put 'dDttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgNSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS14OmxnIl17bWFyZ2luLWxlZnQ6dmFyKC0tXDNiNCA2KSFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQgNikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS15OmxnIl17bWFyZ2lu'@; put 'LXRvcDp2YXIoLS1cM2I0IDYpIWltcG9ydGFudDttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgNikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS14OnhsIl17bWFyZ2luLWxlZnQ6dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQgNykhaW1wb3J0YW50fVtj'@; put 'ZHMtbGF5b3V0fj0ibS15OnhsIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDcpIWltcG9ydGFudDttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgNykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS14Onh4bCJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgOCkhaW1wb3J0YW50O21hcmdpbi1yaWdo'@; put 'dDp2YXIoLS1cM2I0IDgpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0teTp4eGwiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgOCkhaW1wb3J0YW50O21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXg6eHh4bCJde21hcmdpbi1sZWZ0OnZhcigt'@; put 'LVwzYjQgOSkhaW1wb3J0YW50O21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDkpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0teTp4eHhsIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDkpIWltcG9ydGFudDttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgOSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0'@; put 'fj0icC10Om5vbmUiXXtwYWRkaW5nLXRvcDowIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtcjpub25lIl17cGFkZGluZy1yaWdodDowIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtYjpub25lIl17cGFkZGluZy1ib3R0b206MCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWw6bm9uZSJd'@; put 'e3BhZGRpbmctbGVmdDowIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtdDp4eHhzIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXI6eHh4cyJde3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJw'@; put 'LWI6eHh4cyJde3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgMSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1sOnh4eHMiXXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXQ6eHhzIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCAyKSFpbXBv'@; put 'cnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXI6eHhzIl17cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDIpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtYjp4eHMiXXtwYWRkaW5nLWJvdHRvbTp2YXIoLS1cM2I0IDIpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtbDp4eHMiXXtwYWRkaW5nLWxl'@; put 'ZnQ6dmFyKC0tXDNiNCAyKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXQ6eHMiXXtwYWRkaW5nLXRvcDp2YXIoLS1cM2I0IDMpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtcjp4cyJde3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNiNCAzKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWI6'@; put 'eHMiXXtwYWRkaW5nLWJvdHRvbTp2YXIoLS1cM2I0IDMpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtbDp4cyJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDMpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtdDpzbSJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgNCkhaW1wb3J0YW50fVtj'@; put 'ZHMtbGF5b3V0fj0icC1yOnNtIl17cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDQpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtYjpzbSJde3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgNCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1sOnNtIl17cGFkZGluZy1sZWZ0OnZhcigtLVwz'@; put 'YjQgNCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC10Om1kIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXI6bWQiXXtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgNSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1iOm1kIl17cGFkZGlu'@; put 'Zy1ib3R0b206dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWw6bWQiXXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXQ6bGciXXtwYWRkaW5nLXRvcDp2YXIoLS1cM2I0IDYpIWltcG9ydGFudH1bY2RzLWxheW91dH49'@; put 'InAtcjpsZyJde3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNiNCA2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWI6bGciXXtwYWRkaW5nLWJvdHRvbTp2YXIoLS1cM2I0IDYpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtbDpsZyJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDYpIWltcG9y'@; put 'dGFudH1bY2RzLWxheW91dH49InAtdDp4bCJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgNykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1yOnhsIl17cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDcpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtYjp4bCJde3BhZGRpbmctYm90dG9tOnZh'@; put 'cigtLVwzYjQgNykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1sOnhsIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgNykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC10Onh4bCJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgOCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1yOnh4bCJd'@; put 'e3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWI6eHhsIl17cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWw6eHhsIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgOCkhaW1wb3J0YW50fVtj'@; put 'ZHMtbGF5b3V0fj0icC10Onh4eGwiXXtwYWRkaW5nLXRvcDp2YXIoLS1cM2I0IDkpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtcjp4eHhsIl17cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDkpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtYjp4eHhsIl17cGFkZGluZy1ib3R0b206dmFy'@; put 'KC0tXDNiNCA5KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWw6eHh4bCJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDkpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tdDpub25lIl17bWFyZ2luLXRvcDowIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tcjpub25lIl17bWFyZ2luLXJp'@; put 'Z2h0OjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1iOm5vbmUiXXttYXJnaW4tYm90dG9tOjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1sOm5vbmUiXXttYXJnaW4tbGVmdDowIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tdDp4eHhzIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDEp'@; put 'IWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tcjp4eHhzIl17bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQgMSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1iOnh4eHMiXXttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgMSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1sOnh4eHMiXXttYXJn'@; put 'aW4tbGVmdDp2YXIoLS1cM2I0IDEpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tdDp4eHMiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1yOnh4cyJde21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDIpIWltcG9ydGFudH1bY2RzLWxheW91dH49'@; put 'Im0tYjp4eHMiXXttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1sOnh4cyJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS10OnhzIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDMpIWltcG9ydGFu'@; put 'dH1bY2RzLWxheW91dH49Im0tcjp4cyJde21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDMpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tYjp4cyJde21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCAzKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWw6eHMiXXttYXJnaW4tbGVmdDp2YXIoLS1c'@; put 'M2I0IDMpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tdDpzbSJde21hcmdpbi10b3A6dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXI6c20iXXttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWI6c20iXXttYXJnaW4t'@; put 'Ym90dG9tOnZhcigtLVwzYjQgNCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1sOnNtIl17bWFyZ2luLWxlZnQ6dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXQ6bWQiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgNSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1y'@; put 'Om1kIl17bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQgNSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1iOm1kIl17bWFyZ2luLWJvdHRvbTp2YXIoLS1cM2I0IDUpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tbDptZCJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgNSkhaW1wb3J0YW50fVtj'@; put 'ZHMtbGF5b3V0fj0ibS10OmxnIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDYpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tcjpsZyJde21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDYpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tYjpsZyJde21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCA2'@; put 'KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWw6bGciXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDYpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tdDp4bCJde21hcmdpbi10b3A6dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXI6eGwiXXttYXJnaW4tcmlnaHQ6'@; put 'dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWI6eGwiXXttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgNykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1sOnhsIl17bWFyZ2luLWxlZnQ6dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXQ6eHhs'@; put 'Il17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDgpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tcjp4eGwiXXttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWI6eHhsIl17bWFyZ2luLWJvdHRvbTp2YXIoLS1cM2I0IDgpIWltcG9ydGFudH1bY2Rz'@; put 'LWxheW91dH49Im0tbDp4eGwiXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDgpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tdDp4eHhsIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDkpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tcjp4eHhsIl17bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQg'@; put 'OSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1iOnh4eGwiXXttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgOSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1sOnh4eGwiXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDkpIWltcG9ydGFudH1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7W2Nk'@; put 'cy1sYXlvdXQqPSJnYXBAeHM6bm9uZSJde2dhcDowfVtjZHMtbGF5b3V0Kj0iZ2FwQHhzOnh4eHMiXXtnYXA6dmFyKC0tXDNiNCAxKX1bY2RzLWxheW91dCo9ImdhcEB4czp4eHMiXXtnYXA6dmFyKC0tXDNiNCAyKX1bY2RzLWxheW91dCo9ImdhcEB4czp4cyJde2dhcDp2YXIoLS1cM2I0IDMp'@; put 'fVtjZHMtbGF5b3V0Kj0iZ2FwQHhzOnNtIl17Z2FwOnZhcigtLVwzYjQgNCl9W2Nkcy1sYXlvdXQqPSJnYXBAeHM6bWQiXXtnYXA6dmFyKC0tXDNiNCA1KX1bY2RzLWxheW91dCo9ImdhcEB4czpsZyJde2dhcDp2YXIoLS1cM2I0IDYpfVtjZHMtbGF5b3V0Kj0iZ2FwQHhzOnhsIl17Z2FwOnZh'@; put 'cigtLVwzYjQgNyl9W2Nkcy1sYXlvdXQqPSJnYXBAeHM6eHhsIl17Z2FwOnZhcigtLVwzYjQgOCl9W2Nkcy1sYXlvdXQqPSJnYXBAeHM6eHh4bCJde2dhcDp2YXIoLS1cM2I0IDkpfVtjZHMtbGF5b3V0fj0icEB4czpub25lIl17cGFkZGluZzowIWltcG9ydGFudH1bY2RzLWxheW91dH49Im1A'@; put 'eHM6bm9uZSJde21hcmdpbjowIWltcG9ydGFudH1bY2RzLWxheW91dH49InBAeHM6eHh4cyJde3BhZGRpbmc6dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtQHhzOnh4eHMiXXttYXJnaW46dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwQHhzOnh4'@; put 'cyJde3BhZGRpbmc6dmFyKC0tXDNiNCAyKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtQHhzOnh4cyJde21hcmdpbjp2YXIoLS1cM2I0IDIpIWltcG9ydGFudH1bY2RzLWxheW91dH49InBAeHM6eHMiXXtwYWRkaW5nOnZhcigtLVwzYjQgMykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibUB4'@; put 'czp4cyJde21hcmdpbjp2YXIoLS1cM2I0IDMpIWltcG9ydGFudH1bY2RzLWxheW91dH49InBAeHM6c20iXXtwYWRkaW5nOnZhcigtLVwzYjQgNCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibUB4czpzbSJde21hcmdpbjp2YXIoLS1cM2I0IDQpIWltcG9ydGFudH1bY2RzLWxheW91dH49InBA'@; put 'eHM6bWQiXXtwYWRkaW5nOnZhcigtLVwzYjQgNSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibUB4czptZCJde21hcmdpbjp2YXIoLS1cM2I0IDUpIWltcG9ydGFudH1bY2RzLWxheW91dH49InBAeHM6bGciXXtwYWRkaW5nOnZhcigtLVwzYjQgNikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0i'@; put 'bUB4czpsZyJde21hcmdpbjp2YXIoLS1cM2I0IDYpIWltcG9ydGFudH1bY2RzLWxheW91dH49InBAeHM6eGwiXXtwYWRkaW5nOnZhcigtLVwzYjQgNykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibUB4czp4bCJde21hcmdpbjp2YXIoLS1cM2I0IDcpIWltcG9ydGFudH1bY2RzLWxheW91dH49'@; put 'InBAeHM6eHhsIl17cGFkZGluZzp2YXIoLS1cM2I0IDgpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im1AeHM6eHhsIl17bWFyZ2luOnZhcigtLVwzYjQgOCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icEB4czp4eHhsIl17cGFkZGluZzp2YXIoLS1cM2I0IDkpIWltcG9ydGFudH1bY2RzLWxh'@; put 'eW91dH49Im1AeHM6eHh4bCJde21hcmdpbjp2YXIoLS1cM2I0IDkpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteEB4czpub25lIl17cGFkZGluZy1sZWZ0OjAhaW1wb3J0YW50O3BhZGRpbmctcmlnaHQ6MCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXlAeHM6bm9uZSJde3BhZGRpbmct'@; put 'dG9wOjAhaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC14QHhzOnh4eHMiXXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnQ7cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDEpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteUB4'@; put 'czp4eHhzIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXhAeHM6eHhzIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgMikhaW1wb3J0YW50O3BhZGRpbmctcmlnaHQ6dmFy'@; put 'KC0tXDNiNCAyKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXlAeHM6eHhzIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCAyKSFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCAyKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXhAeHM6eHMiXXtwYWRkaW5nLWxlZnQ6dmFy'@; put 'KC0tXDNiNCAzKSFpbXBvcnRhbnQ7cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDMpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteUB4czp4cyJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgMykhaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgMykhaW1wb3J0YW50fVtjZHMt'@; put 'bGF5b3V0fj0icC14QHhzOnNtIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgNCkhaW1wb3J0YW50O3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXlAeHM6c20iXXtwYWRkaW5nLXRvcDp2YXIoLS1cM2I0IDQpIWltcG9ydGFudDtwYWRkaW5n'@; put 'LWJvdHRvbTp2YXIoLS1cM2I0IDQpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteEB4czptZCJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDUpIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgNSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC15QHhzOm1kIl17cGFkZGlu'@; put 'Zy10b3A6dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXhAeHM6bGciXXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCA2KSFpbXBvcnRhbnQ7cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDYpIWltcG9y'@; put 'dGFudH1bY2RzLWxheW91dH49InAteUB4czpsZyJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgNikhaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgNikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC14QHhzOnhsIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgNykhaW1wb3J0'@; put 'YW50O3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXlAeHM6eGwiXXtwYWRkaW5nLXRvcDp2YXIoLS1cM2I0IDcpIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTp2YXIoLS1cM2I0IDcpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteEB4czp4'@; put 'eGwiXXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnQ7cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDgpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteUB4czp4eGwiXXtwYWRkaW5nLXRvcDp2YXIoLS1cM2I0IDgpIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTp2YXIoLS1c'@; put 'M2I0IDgpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteEB4czp4eHhsIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgOSkhaW1wb3J0YW50O3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNiNCA5KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXlAeHM6eHh4bCJde3BhZGRpbmctdG9wOnZhcigt'@; put 'LVwzYjQgOSkhaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgOSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS14QHhzOm5vbmUiXXttYXJnaW4tbGVmdDowIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6MCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXlAeHM6bm9uZSJde21h'@; put 'cmdpbi10b3A6MCFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbTowIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0teEB4czp4eHhzIl17bWFyZ2luLWxlZnQ6dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQgMSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS15'@; put 'QHhzOnh4eHMiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgMSkhaW1wb3J0YW50O21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXhAeHM6eHhzIl17bWFyZ2luLWxlZnQ6dmFyKC0tXDNiNCAyKSFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OnZhcigt'@; put 'LVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS15QHhzOnh4cyJde21hcmdpbi10b3A6dmFyKC0tXDNiNCAyKSFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbTp2YXIoLS1cM2I0IDIpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0teEB4czp4cyJde21hcmdpbi1sZWZ0OnZhcigtLVwz'@; put 'YjQgMykhaW1wb3J0YW50O21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDMpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0teUB4czp4cyJde21hcmdpbi10b3A6dmFyKC0tXDNiNCAzKSFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbTp2YXIoLS1cM2I0IDMpIWltcG9ydGFudH1bY2RzLWxheW91dH49'@; put 'Im0teEB4czpzbSJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgNCkhaW1wb3J0YW50O21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDQpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0teUB4czpzbSJde21hcmdpbi10b3A6dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbTp2YXIo'@; put 'LS1cM2I0IDQpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0teEB4czptZCJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgNSkhaW1wb3J0YW50O21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDUpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0teUB4czptZCJde21hcmdpbi10b3A6dmFyKC0tXDNi'@; put 'NCA1KSFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbTp2YXIoLS1cM2I0IDUpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0teEB4czpsZyJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgNikhaW1wb3J0YW50O21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDYpIWltcG9ydGFudH1bY2RzLWxheW91dH49'@; put 'Im0teUB4czpsZyJde21hcmdpbi10b3A6dmFyKC0tXDNiNCA2KSFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbTp2YXIoLS1cM2I0IDYpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0teEB4czp4bCJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgNykhaW1wb3J0YW50O21hcmdpbi1yaWdodDp2YXIo'@; put 'LS1cM2I0IDcpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0teUB4czp4bCJde21hcmdpbi10b3A6dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbTp2YXIoLS1cM2I0IDcpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0teEB4czp4eGwiXXttYXJnaW4tbGVmdDp2YXIoLS1c'@; put 'M2I0IDgpIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXlAeHM6eHhsIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDgpIWltcG9ydGFudDttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgOCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0'@; put 'fj0ibS14QHhzOnh4eGwiXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDkpIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCA5KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXlAeHM6eHh4bCJde21hcmdpbi10b3A6dmFyKC0tXDNiNCA5KSFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRv'@; put 'bTp2YXIoLS1cM2I0IDkpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtdEB4czpub25lIl17cGFkZGluZy10b3A6MCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXJAeHM6bm9uZSJde3BhZGRpbmctcmlnaHQ6MCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWJAeHM6bm9uZSJde3BhZGRp'@; put 'bmctYm90dG9tOjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1sQHhzOm5vbmUiXXtwYWRkaW5nLWxlZnQ6MCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXRAeHM6eHh4cyJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgMSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1yQHhzOnh4eHMi'@; put 'XXtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgMSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1iQHhzOnh4eHMiXXtwYWRkaW5nLWJvdHRvbTp2YXIoLS1cM2I0IDEpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtbEB4czp4eHhzIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgMSkhaW1w'@; put 'b3J0YW50fVtjZHMtbGF5b3V0fj0icC10QHhzOnh4cyJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1yQHhzOnh4cyJde3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNiNCAyKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWJAeHM6eHhzIl17cGFk'@; put 'ZGluZy1ib3R0b206dmFyKC0tXDNiNCAyKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWxAeHM6eHhzIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC10QHhzOnhzIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCAzKSFpbXBvcnRhbnR9W2Nk'@; put 'cy1sYXlvdXR+PSJwLXJAeHM6eHMiXXtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgMykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1iQHhzOnhzIl17cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCAzKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWxAeHM6eHMiXXtwYWRkaW5nLWxlZnQ6'@; put 'dmFyKC0tXDNiNCAzKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXRAeHM6c20iXXtwYWRkaW5nLXRvcDp2YXIoLS1cM2I0IDQpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtckB4czpzbSJde3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJw'@; put 'LWJAeHM6c20iXXtwYWRkaW5nLWJvdHRvbTp2YXIoLS1cM2I0IDQpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtbEB4czpzbSJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDQpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtdEB4czptZCJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgNSkh'@; put 'aW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1yQHhzOm1kIl17cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDUpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtYkB4czptZCJde3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgNSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1sQHhzOm1kIl17'@; put 'cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgNSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC10QHhzOmxnIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCA2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXJAeHM6bGciXXtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgNikhaW1wb3J0YW50fVtj'@; put 'ZHMtbGF5b3V0fj0icC1iQHhzOmxnIl17cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCA2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWxAeHM6bGciXXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCA2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXRAeHM6eGwiXXtwYWRkaW5nLXRvcDp2'@; put 'YXIoLS1cM2I0IDcpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtckB4czp4bCJde3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWJAeHM6eGwiXXtwYWRkaW5nLWJvdHRvbTp2YXIoLS1cM2I0IDcpIWltcG9ydGFudH1bY2RzLWxheW91dH49'@; put 'InAtbEB4czp4bCJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDcpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtdEB4czp4eGwiXXtwYWRkaW5nLXRvcDp2YXIoLS1cM2I0IDgpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtckB4czp4eGwiXXtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQg'@; put 'OCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1iQHhzOnh4bCJde3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgOCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1sQHhzOnh4bCJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDgpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtdEB4czp4'@; put 'eHhsIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCA5KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXJAeHM6eHh4bCJde3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNiNCA5KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWJAeHM6eHh4bCJde3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgOSkh'@; put 'aW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1sQHhzOnh4eGwiXXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCA5KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXRAeHM6bm9uZSJde21hcmdpbi10b3A6MCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXJAeHM6bm9uZSJde21hcmdpbi1yaWdo'@; put 'dDowIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tYkB4czpub25lIl17bWFyZ2luLWJvdHRvbTowIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tbEB4czpub25lIl17bWFyZ2luLWxlZnQ6MCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXRAeHM6eHh4cyJde21hcmdpbi10b3A6dmFyKC0t'@; put 'XDNiNCAxKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXJAeHM6eHh4cyJde21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDEpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tYkB4czp4eHhzIl17bWFyZ2luLWJvdHRvbTp2YXIoLS1cM2I0IDEpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0t'@; put 'bEB4czp4eHhzIl17bWFyZ2luLWxlZnQ6dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXRAeHM6eHhzIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDIpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tckB4czp4eHMiXXttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCAyKSFp'@; put 'bXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWJAeHM6eHhzIl17bWFyZ2luLWJvdHRvbTp2YXIoLS1cM2I0IDIpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tbEB4czp4eHMiXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDIpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tdEB4czp4cyJde21h'@; put 'cmdpbi10b3A6dmFyKC0tXDNiNCAzKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXJAeHM6eHMiXXttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCAzKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWJAeHM6eHMiXXttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgMykhaW1wb3J0YW50fVtjZHMt'@; put 'bGF5b3V0fj0ibS1sQHhzOnhzIl17bWFyZ2luLWxlZnQ6dmFyKC0tXDNiNCAzKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXRAeHM6c20iXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgNCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1yQHhzOnNtIl17bWFyZ2luLXJpZ2h0OnZhcigtLVwz'@; put 'YjQgNCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1iQHhzOnNtIl17bWFyZ2luLWJvdHRvbTp2YXIoLS1cM2I0IDQpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tbEB4czpzbSJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgNCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS10QHhzOm1k'@; put 'Il17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDUpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tckB4czptZCJde21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDUpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tYkB4czptZCJde21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9'@; put 'W2Nkcy1sYXlvdXR+PSJtLWxAeHM6bWQiXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDUpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tdEB4czpsZyJde21hcmdpbi10b3A6dmFyKC0tXDNiNCA2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXJAeHM6bGciXXttYXJnaW4tcmlnaHQ6dmFy'@; put 'KC0tXDNiNCA2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWJAeHM6bGciXXttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgNikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1sQHhzOmxnIl17bWFyZ2luLWxlZnQ6dmFyKC0tXDNiNCA2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXRA'@; put 'eHM6eGwiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgNykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1yQHhzOnhsIl17bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQgNykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1iQHhzOnhsIl17bWFyZ2luLWJvdHRvbTp2YXIoLS1cM2I0IDcpIWltcG9y'@; put 'dGFudH1bY2RzLWxheW91dH49Im0tbEB4czp4bCJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgNykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS10QHhzOnh4bCJde21hcmdpbi10b3A6dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXJAeHM6eHhsIl17bWFyZ2luLXJp'@; put 'Z2h0OnZhcigtLVwzYjQgOCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1iQHhzOnh4bCJde21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWxAeHM6eHhsIl17bWFyZ2luLWxlZnQ6dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnR9W2Nkcy1sYXlv'@; put 'dXR+PSJtLXRAeHM6eHh4bCJde21hcmdpbi10b3A6dmFyKC0tXDNiNCA5KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXJAeHM6eHh4bCJde21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDkpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tYkB4czp4eHhsIl17bWFyZ2luLWJvdHRvbTp2YXIo'@; put 'LS1cM2I0IDkpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tbEB4czp4eHhsIl17bWFyZ2luLWxlZnQ6dmFyKC0tXDNiNCA5KSFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXtbY2RzLWxheW91dCo9ImdhcEBzbTpub25lIl17Z2FwOjB9W2Nkcy1sYXlvdXQqPSJnYXBAc206'@; put 'eHh4cyJde2dhcDp2YXIoLS1cM2I0IDEpfVtjZHMtbGF5b3V0Kj0iZ2FwQHNtOnh4cyJde2dhcDp2YXIoLS1cM2I0IDIpfVtjZHMtbGF5b3V0Kj0iZ2FwQHNtOnhzIl17Z2FwOnZhcigtLVwzYjQgMyl9W2Nkcy1sYXlvdXQqPSJnYXBAc206c20iXXtnYXA6dmFyKC0tXDNiNCA0KX1bY2RzLWxh'@; put 'eW91dCo9ImdhcEBzbTptZCJde2dhcDp2YXIoLS1cM2I0IDUpfVtjZHMtbGF5b3V0Kj0iZ2FwQHNtOmxnIl17Z2FwOnZhcigtLVwzYjQgNil9W2Nkcy1sYXlvdXQqPSJnYXBAc206eGwiXXtnYXA6dmFyKC0tXDNiNCA3KX1bY2RzLWxheW91dCo9ImdhcEBzbTp4eGwiXXtnYXA6dmFyKC0tXDNi'@; put 'NCA4KX1bY2RzLWxheW91dCo9ImdhcEBzbTp4eHhsIl17Z2FwOnZhcigtLVwzYjQgOSl9W2Nkcy1sYXlvdXR+PSJwQHNtOm5vbmUiXXtwYWRkaW5nOjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibUBzbTpub25lIl17bWFyZ2luOjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icEBzbTp4eHhz'@; put 'Il17cGFkZGluZzp2YXIoLS1cM2I0IDEpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im1Ac206eHh4cyJde21hcmdpbjp2YXIoLS1cM2I0IDEpIWltcG9ydGFudH1bY2RzLWxheW91dH49InBAc206eHhzIl17cGFkZGluZzp2YXIoLS1cM2I0IDIpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im1A'@; put 'c206eHhzIl17bWFyZ2luOnZhcigtLVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icEBzbTp4cyJde3BhZGRpbmc6dmFyKC0tXDNiNCAzKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtQHNtOnhzIl17bWFyZ2luOnZhcigtLVwzYjQgMykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0i'@; put 'cEBzbTpzbSJde3BhZGRpbmc6dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtQHNtOnNtIl17bWFyZ2luOnZhcigtLVwzYjQgNCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icEBzbTptZCJde3BhZGRpbmc6dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+'@; put 'PSJtQHNtOm1kIl17bWFyZ2luOnZhcigtLVwzYjQgNSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icEBzbTpsZyJde3BhZGRpbmc6dmFyKC0tXDNiNCA2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtQHNtOmxnIl17bWFyZ2luOnZhcigtLVwzYjQgNikhaW1wb3J0YW50fVtjZHMtbGF5b3V0'@; put 'fj0icEBzbTp4bCJde3BhZGRpbmc6dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtQHNtOnhsIl17bWFyZ2luOnZhcigtLVwzYjQgNykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icEBzbTp4eGwiXXtwYWRkaW5nOnZhcigtLVwzYjQgOCkhaW1wb3J0YW50fVtjZHMtbGF5'@; put 'b3V0fj0ibUBzbTp4eGwiXXttYXJnaW46dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwQHNtOnh4eGwiXXtwYWRkaW5nOnZhcigtLVwzYjQgOSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibUBzbTp4eHhsIl17bWFyZ2luOnZhcigtLVwzYjQgOSkhaW1wb3J0YW50fVtj'@; put 'ZHMtbGF5b3V0fj0icC14QHNtOm5vbmUiXXtwYWRkaW5nLWxlZnQ6MCFpbXBvcnRhbnQ7cGFkZGluZy1yaWdodDowIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteUBzbTpub25lIl17cGFkZGluZy10b3A6MCFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206MCFpbXBvcnRhbnR9W2Nkcy1sYXlv'@; put 'dXR+PSJwLXhAc206eHh4cyJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDEpIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgMSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC15QHNtOnh4eHMiXXtwYWRkaW5nLXRvcDp2YXIoLS1cM2I0IDEpIWltcG9ydGFudDtwYWRkaW5n'@; put 'LWJvdHRvbTp2YXIoLS1cM2I0IDEpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteEBzbTp4eHMiXXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCAyKSFpbXBvcnRhbnQ7cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDIpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteUBzbTp4eHMiXXtwYWRk'@; put 'aW5nLXRvcDp2YXIoLS1cM2I0IDIpIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTp2YXIoLS1cM2I0IDIpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteEBzbTp4cyJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDMpIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgMykhaW1w'@; put 'b3J0YW50fVtjZHMtbGF5b3V0fj0icC15QHNtOnhzIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCAzKSFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCAzKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXhAc206c20iXXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCA0KSFpbXBv'@; put 'cnRhbnQ7cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDQpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteUBzbTpzbSJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgNCkhaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgNCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC14QHNt'@; put 'Om1kIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgNSkhaW1wb3J0YW50O3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXlAc206bWQiXXtwYWRkaW5nLXRvcDp2YXIoLS1cM2I0IDUpIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTp2YXIoLS1c'@; put 'M2I0IDUpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteEBzbTpsZyJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDYpIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgNikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC15QHNtOmxnIl17cGFkZGluZy10b3A6dmFyKC0tXDNi'@; put 'NCA2KSFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCA2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXhAc206eGwiXXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnQ7cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDcpIWltcG9ydGFudH1bY2RzLWxheW91'@; put 'dH49InAteUBzbTp4bCJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgNykhaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgNykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC14QHNtOnh4bCJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDgpIWltcG9ydGFudDtwYWRkaW5nLXJp'@; put 'Z2h0OnZhcigtLVwzYjQgOCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC15QHNtOnh4bCJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgOCkhaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgOCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC14QHNtOnh4eGwiXXtwYWRkaW5n'@; put 'LWxlZnQ6dmFyKC0tXDNiNCA5KSFpbXBvcnRhbnQ7cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDkpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteUBzbTp4eHhsIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCA5KSFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCA5KSFpbXBv'@; put 'cnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXhAc206bm9uZSJde21hcmdpbi1sZWZ0OjAhaW1wb3J0YW50O21hcmdpbi1yaWdodDowIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0teUBzbTpub25lIl17bWFyZ2luLXRvcDowIWltcG9ydGFudDttYXJnaW4tYm90dG9tOjAhaW1wb3J0YW50fVtjZHMt'@; put 'bGF5b3V0fj0ibS14QHNtOnh4eHMiXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDEpIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXlAc206eHh4cyJde21hcmdpbi10b3A6dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnQ7bWFyZ2lu'@; put 'LWJvdHRvbTp2YXIoLS1cM2I0IDEpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0teEBzbTp4eHMiXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDIpIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCAyKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXlAc206eHhzIl17bWFyZ2lu'@; put 'LXRvcDp2YXIoLS1cM2I0IDIpIWltcG9ydGFudDttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS14QHNtOnhzIl17bWFyZ2luLWxlZnQ6dmFyKC0tXDNiNCAzKSFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQgMykhaW1wb3J0YW50'@; put 'fVtjZHMtbGF5b3V0fj0ibS15QHNtOnhzIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDMpIWltcG9ydGFudDttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgMykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS14QHNtOnNtIl17bWFyZ2luLWxlZnQ6dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnQ7bWFy'@; put 'Z2luLXJpZ2h0OnZhcigtLVwzYjQgNCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS15QHNtOnNtIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDQpIWltcG9ydGFudDttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgNCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS14QHNtOm1kIl17bWFyZ2lu'@; put 'LWxlZnQ6dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQgNSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS15QHNtOm1kIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDUpIWltcG9ydGFudDttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgNSkhaW1wb3J0YW50'@; put 'fVtjZHMtbGF5b3V0fj0ibS14QHNtOmxnIl17bWFyZ2luLWxlZnQ6dmFyKC0tXDNiNCA2KSFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQgNikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS15QHNtOmxnIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDYpIWltcG9ydGFudDttYXJn'@; put 'aW4tYm90dG9tOnZhcigtLVwzYjQgNikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS14QHNtOnhsIl17bWFyZ2luLWxlZnQ6dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQgNykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS15QHNtOnhsIl17bWFyZ2lu'@; put 'LXRvcDp2YXIoLS1cM2I0IDcpIWltcG9ydGFudDttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgNykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS14QHNtOnh4bCJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgOCkhaW1wb3J0YW50O21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDgpIWltcG9ydGFu'@; put 'dH1bY2RzLWxheW91dH49Im0teUBzbTp4eGwiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgOCkhaW1wb3J0YW50O21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXhAc206eHh4bCJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgOSkhaW1wb3J0YW50'@; put 'O21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDkpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0teUBzbTp4eHhsIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDkpIWltcG9ydGFudDttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgOSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC10QHNtOm5vbmUi'@; put 'XXtwYWRkaW5nLXRvcDowIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtckBzbTpub25lIl17cGFkZGluZy1yaWdodDowIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtYkBzbTpub25lIl17cGFkZGluZy1ib3R0b206MCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWxAc206bm9uZSJde3Bh'@; put 'ZGRpbmctbGVmdDowIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtdEBzbTp4eHhzIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXJAc206eHh4cyJde3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+'@; put 'PSJwLWJAc206eHh4cyJde3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgMSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1sQHNtOnh4eHMiXXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXRAc206eHhzIl17cGFkZGluZy10b3A6dmFyKC0t'@; put 'XDNiNCAyKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXJAc206eHhzIl17cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDIpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtYkBzbTp4eHMiXXtwYWRkaW5nLWJvdHRvbTp2YXIoLS1cM2I0IDIpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAt'@; put 'bEBzbTp4eHMiXXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCAyKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXRAc206eHMiXXtwYWRkaW5nLXRvcDp2YXIoLS1cM2I0IDMpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtckBzbTp4cyJde3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNiNCAzKSFp'@; put 'bXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWJAc206eHMiXXtwYWRkaW5nLWJvdHRvbTp2YXIoLS1cM2I0IDMpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtbEBzbTp4cyJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDMpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtdEBzbTpzbSJde3Bh'@; put 'ZGRpbmctdG9wOnZhcigtLVwzYjQgNCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1yQHNtOnNtIl17cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDQpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtYkBzbTpzbSJde3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgNCkhaW1wb3J0YW50fVtj'@; put 'ZHMtbGF5b3V0fj0icC1sQHNtOnNtIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgNCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC10QHNtOm1kIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXJAc206bWQiXXtwYWRkaW5nLXJpZ2h0OnZh'@; put 'cigtLVwzYjQgNSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1iQHNtOm1kIl17cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWxAc206bWQiXXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJw'@; put 'LXRAc206bGciXXtwYWRkaW5nLXRvcDp2YXIoLS1cM2I0IDYpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtckBzbTpsZyJde3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNiNCA2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWJAc206bGciXXtwYWRkaW5nLWJvdHRvbTp2YXIoLS1cM2I0IDYp'@; put 'IWltcG9ydGFudH1bY2RzLWxheW91dH49InAtbEBzbTpsZyJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDYpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtdEBzbTp4bCJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgNykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1yQHNtOnhsIl17cGFk'@; put 'ZGluZy1yaWdodDp2YXIoLS1cM2I0IDcpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtYkBzbTp4bCJde3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgNykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1sQHNtOnhsIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgNykhaW1wb3J0YW50fVtj'@; put 'ZHMtbGF5b3V0fj0icC10QHNtOnh4bCJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgOCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1yQHNtOnh4bCJde3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWJAc206eHhsIl17cGFkZGluZy1ib3R0'@; put 'b206dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWxAc206eHhsIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgOCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC10QHNtOnh4eGwiXXtwYWRkaW5nLXRvcDp2YXIoLS1cM2I0IDkpIWltcG9ydGFudH1bY2RzLWxheW91'@; put 'dH49InAtckBzbTp4eHhsIl17cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDkpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtYkBzbTp4eHhsIl17cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCA5KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWxAc206eHh4bCJde3BhZGRpbmctbGVmdDp2'@; put 'YXIoLS1cM2I0IDkpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tdEBzbTpub25lIl17bWFyZ2luLXRvcDowIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tckBzbTpub25lIl17bWFyZ2luLXJpZ2h0OjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1iQHNtOm5vbmUiXXttYXJnaW4tYm90'@; put 'dG9tOjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1sQHNtOm5vbmUiXXttYXJnaW4tbGVmdDowIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tdEBzbTp4eHhzIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDEpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tckBzbTp4eHhzIl17bWFyZ2lu'@; put 'LXJpZ2h0OnZhcigtLVwzYjQgMSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1iQHNtOnh4eHMiXXttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgMSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1sQHNtOnh4eHMiXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDEpIWltcG9ydGFudH1bY2Rz'@; put 'LWxheW91dH49Im0tdEBzbTp4eHMiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1yQHNtOnh4cyJde21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDIpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tYkBzbTp4eHMiXXttYXJnaW4tYm90dG9tOnZh'@; put 'cigtLVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1sQHNtOnh4cyJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS10QHNtOnhzIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDMpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tckBz'@; put 'bTp4cyJde21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDMpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tYkBzbTp4cyJde21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCAzKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWxAc206eHMiXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDMpIWltcG9y'@; put 'dGFudH1bY2RzLWxheW91dH49Im0tdEBzbTpzbSJde21hcmdpbi10b3A6dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXJAc206c20iXXttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWJAc206c20iXXttYXJnaW4tYm90'@; put 'dG9tOnZhcigtLVwzYjQgNCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1sQHNtOnNtIl17bWFyZ2luLWxlZnQ6dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXRAc206bWQiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgNSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0i'@; put 'bS1yQHNtOm1kIl17bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQgNSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1iQHNtOm1kIl17bWFyZ2luLWJvdHRvbTp2YXIoLS1cM2I0IDUpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tbEBzbTptZCJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgNSkh'@; put 'aW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS10QHNtOmxnIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDYpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tckBzbTpsZyJde21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDYpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tYkBzbTpsZyJde21hcmdp'@; put 'bi1ib3R0b206dmFyKC0tXDNiNCA2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWxAc206bGciXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDYpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tdEBzbTp4bCJde21hcmdpbi10b3A6dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlv'@; put 'dXR+PSJtLXJAc206eGwiXXttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWJAc206eGwiXXttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgNykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1sQHNtOnhsIl17bWFyZ2luLWxlZnQ6dmFyKC0tXDNi'@; put 'NCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXRAc206eHhsIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDgpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tckBzbTp4eGwiXXttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWJAc206eHhs'@; put 'Il17bWFyZ2luLWJvdHRvbTp2YXIoLS1cM2I0IDgpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tbEBzbTp4eGwiXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDgpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tdEBzbTp4eHhsIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDkpIWltcG9ydGFu'@; put 'dH1bY2RzLWxheW91dH49Im0tckBzbTp4eHhsIl17bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQgOSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1iQHNtOnh4eGwiXXttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgOSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1sQHNtOnh4eGwiXXttYXJn'@; put 'aW4tbGVmdDp2YXIoLS1cM2I0IDkpIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpe1tjZHMtbGF5b3V0Kj0iZ2FwQG1kOm5vbmUiXXtnYXA6MH1bY2RzLWxheW91dCo9ImdhcEBtZDp4eHhzIl17Z2FwOnZhcigtLVwzYjQgMSl9W2Nkcy1sYXlvdXQqPSJnYXBAbWQ6eHhzIl17'@; put 'Z2FwOnZhcigtLVwzYjQgMil9W2Nkcy1sYXlvdXQqPSJnYXBAbWQ6eHMiXXtnYXA6dmFyKC0tXDNiNCAzKX1bY2RzLWxheW91dCo9ImdhcEBtZDpzbSJde2dhcDp2YXIoLS1cM2I0IDQpfVtjZHMtbGF5b3V0Kj0iZ2FwQG1kOm1kIl17Z2FwOnZhcigtLVwzYjQgNSl9W2Nkcy1sYXlvdXQqPSJn'@; put 'YXBAbWQ6bGciXXtnYXA6dmFyKC0tXDNiNCA2KX1bY2RzLWxheW91dCo9ImdhcEBtZDp4bCJde2dhcDp2YXIoLS1cM2I0IDcpfVtjZHMtbGF5b3V0Kj0iZ2FwQG1kOnh4bCJde2dhcDp2YXIoLS1cM2I0IDgpfVtjZHMtbGF5b3V0Kj0iZ2FwQG1kOnh4eGwiXXtnYXA6dmFyKC0tXDNiNCA5KX1b'@; put 'Y2RzLWxheW91dH49InBAbWQ6bm9uZSJde3BhZGRpbmc6MCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtQG1kOm5vbmUiXXttYXJnaW46MCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwQG1kOnh4eHMiXXtwYWRkaW5nOnZhcigtLVwzYjQgMSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibUBt'@; put 'ZDp4eHhzIl17bWFyZ2luOnZhcigtLVwzYjQgMSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icEBtZDp4eHMiXXtwYWRkaW5nOnZhcigtLVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibUBtZDp4eHMiXXttYXJnaW46dmFyKC0tXDNiNCAyKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+'@; put 'PSJwQG1kOnhzIl17cGFkZGluZzp2YXIoLS1cM2I0IDMpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im1AbWQ6eHMiXXttYXJnaW46dmFyKC0tXDNiNCAzKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwQG1kOnNtIl17cGFkZGluZzp2YXIoLS1cM2I0IDQpIWltcG9ydGFudH1bY2RzLWxheW91'@; put 'dH49Im1AbWQ6c20iXXttYXJnaW46dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwQG1kOm1kIl17cGFkZGluZzp2YXIoLS1cM2I0IDUpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im1AbWQ6bWQiXXttYXJnaW46dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlv'@; put 'dXR+PSJwQG1kOmxnIl17cGFkZGluZzp2YXIoLS1cM2I0IDYpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im1AbWQ6bGciXXttYXJnaW46dmFyKC0tXDNiNCA2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwQG1kOnhsIl17cGFkZGluZzp2YXIoLS1cM2I0IDcpIWltcG9ydGFudH1bY2RzLWxh'@; put 'eW91dH49Im1AbWQ6eGwiXXttYXJnaW46dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwQG1kOnh4bCJde3BhZGRpbmc6dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtQG1kOnh4bCJde21hcmdpbjp2YXIoLS1cM2I0IDgpIWltcG9ydGFudH1bY2Rz'@; put 'LWxheW91dH49InBAbWQ6eHh4bCJde3BhZGRpbmc6dmFyKC0tXDNiNCA5KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtQG1kOnh4eGwiXXttYXJnaW46dmFyKC0tXDNiNCA5KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXhAbWQ6bm9uZSJde3BhZGRpbmctbGVmdDowIWltcG9ydGFudDtw'@; put 'YWRkaW5nLXJpZ2h0OjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC15QG1kOm5vbmUiXXtwYWRkaW5nLXRvcDowIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTowIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteEBtZDp4eHhzIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgMSkhaW1wb3J0'@; put 'YW50O3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXlAbWQ6eHh4cyJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgMSkhaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgMSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC14QG1k'@; put 'Onh4cyJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDIpIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC15QG1kOnh4cyJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgMikhaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOnZhcigt'@; put 'LVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC14QG1kOnhzIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgMykhaW1wb3J0YW50O3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNiNCAzKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXlAbWQ6eHMiXXtwYWRkaW5nLXRvcDp2YXIoLS1c'@; put 'M2I0IDMpIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTp2YXIoLS1cM2I0IDMpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteEBtZDpzbSJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDQpIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgNCkhaW1wb3J0YW50fVtjZHMtbGF5'@; put 'b3V0fj0icC15QG1kOnNtIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXhAbWQ6bWQiXXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnQ7cGFkZGluZy1y'@; put 'aWdodDp2YXIoLS1cM2I0IDUpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteUBtZDptZCJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgNSkhaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgNSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC14QG1kOmxnIl17cGFkZGluZy1s'@; put 'ZWZ0OnZhcigtLVwzYjQgNikhaW1wb3J0YW50O3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNiNCA2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXlAbWQ6bGciXXtwYWRkaW5nLXRvcDp2YXIoLS1cM2I0IDYpIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTp2YXIoLS1cM2I0IDYpIWltcG9ydGFu'@; put 'dH1bY2RzLWxheW91dH49InAteEBtZDp4bCJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDcpIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgNykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC15QG1kOnhsIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnQ7'@; put 'cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXhAbWQ6eHhsIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgOCkhaW1wb3J0YW50O3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXlAbWQ6eHhs'@; put 'Il17cGFkZGluZy10b3A6dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXhAbWQ6eHh4bCJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDkpIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OnZhcigtLVwz'@; put 'YjQgOSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC15QG1kOnh4eGwiXXtwYWRkaW5nLXRvcDp2YXIoLS1cM2I0IDkpIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTp2YXIoLS1cM2I0IDkpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0teEBtZDpub25lIl17bWFyZ2luLWxlZnQ6MCFpbXBv'@; put 'cnRhbnQ7bWFyZ2luLXJpZ2h0OjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS15QG1kOm5vbmUiXXttYXJnaW4tdG9wOjAhaW1wb3J0YW50O21hcmdpbi1ib3R0b206MCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXhAbWQ6eHh4cyJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgMSkhaW1w'@; put 'b3J0YW50O21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDEpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0teUBtZDp4eHhzIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDEpIWltcG9ydGFudDttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgMSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS14QG1k'@; put 'Onh4cyJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgMikhaW1wb3J0YW50O21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDIpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0teUBtZDp4eHMiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgMikhaW1wb3J0YW50O21hcmdpbi1ib3R0b206dmFyKC0tXDNi'@; put 'NCAyKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXhAbWQ6eHMiXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDMpIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCAzKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXlAbWQ6eHMiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgMykh'@; put 'aW1wb3J0YW50O21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCAzKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXhAbWQ6c20iXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDQpIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXlA'@; put 'bWQ6c20iXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgNCkhaW1wb3J0YW50O21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXhAbWQ6bWQiXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDUpIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6dmFyKC0tXDNi'@; put 'NCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXlAbWQ6bWQiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgNSkhaW1wb3J0YW50O21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXhAbWQ6bGciXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDYp'@; put 'IWltcG9ydGFudDttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCA2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXlAbWQ6bGciXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgNikhaW1wb3J0YW50O21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCA2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXhA'@; put 'bWQ6eGwiXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDcpIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXlAbWQ6eGwiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgNykhaW1wb3J0YW50O21hcmdpbi1ib3R0b206dmFyKC0tXDNi'@; put 'NCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXhAbWQ6eHhsIl17bWFyZ2luLWxlZnQ6dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQgOCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS15QG1kOnh4bCJde21hcmdpbi10b3A6dmFyKC0tXDNiNCA4'@; put 'KSFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbTp2YXIoLS1cM2I0IDgpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0teEBtZDp4eHhsIl17bWFyZ2luLWxlZnQ6dmFyKC0tXDNiNCA5KSFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQgOSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0i'@; put 'bS15QG1kOnh4eGwiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgOSkhaW1wb3J0YW50O21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCA5KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXRAbWQ6bm9uZSJde3BhZGRpbmctdG9wOjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1yQG1kOm5vbmUi'@; put 'XXtwYWRkaW5nLXJpZ2h0OjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1iQG1kOm5vbmUiXXtwYWRkaW5nLWJvdHRvbTowIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtbEBtZDpub25lIl17cGFkZGluZy1sZWZ0OjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC10QG1kOnh4eHMiXXtw'@; put 'YWRkaW5nLXRvcDp2YXIoLS1cM2I0IDEpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtckBtZDp4eHhzIl17cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDEpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtYkBtZDp4eHhzIl17cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCAxKSFpbXBvcnRh'@; put 'bnR9W2Nkcy1sYXlvdXR+PSJwLWxAbWQ6eHh4cyJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDEpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtdEBtZDp4eHMiXXtwYWRkaW5nLXRvcDp2YXIoLS1cM2I0IDIpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtckBtZDp4eHMiXXtwYWRkaW5n'@; put 'LXJpZ2h0OnZhcigtLVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1iQG1kOnh4cyJde3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1sQG1kOnh4cyJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDIpIWltcG9ydGFudH1bY2Rz'@; put 'LWxheW91dH49InAtdEBtZDp4cyJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgMykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1yQG1kOnhzIl17cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDMpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtYkBtZDp4cyJde3BhZGRpbmctYm90dG9tOnZh'@; put 'cigtLVwzYjQgMykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1sQG1kOnhzIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgMykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC10QG1kOnNtIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXJA'@; put 'bWQ6c20iXXtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgNCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1iQG1kOnNtIl17cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWxAbWQ6c20iXXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCA0KSFp'@; put 'bXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXRAbWQ6bWQiXXtwYWRkaW5nLXRvcDp2YXIoLS1cM2I0IDUpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtckBtZDptZCJde3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWJAbWQ6bWQiXXtwYWRk'@; put 'aW5nLWJvdHRvbTp2YXIoLS1cM2I0IDUpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtbEBtZDptZCJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDUpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtdEBtZDpsZyJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgNikhaW1wb3J0YW50fVtjZHMt'@; put 'bGF5b3V0fj0icC1yQG1kOmxnIl17cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDYpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtYkBtZDpsZyJde3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgNikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1sQG1kOmxnIl17cGFkZGluZy1sZWZ0OnZh'@; put 'cigtLVwzYjQgNikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC10QG1kOnhsIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXJAbWQ6eGwiXXtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgNykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1i'@; put 'QG1kOnhsIl17cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWxAbWQ6eGwiXXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXRAbWQ6eHhsIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCA4KSFp'@; put 'bXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXJAbWQ6eHhsIl17cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDgpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtYkBtZDp4eGwiXXtwYWRkaW5nLWJvdHRvbTp2YXIoLS1cM2I0IDgpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtbEBtZDp4eGwi'@; put 'XXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXRAbWQ6eHh4bCJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgOSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1yQG1kOnh4eGwiXXtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgOSkhaW1wb3J0'@; put 'YW50fVtjZHMtbGF5b3V0fj0icC1iQG1kOnh4eGwiXXtwYWRkaW5nLWJvdHRvbTp2YXIoLS1cM2I0IDkpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtbEBtZDp4eHhsIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgOSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS10QG1kOm5vbmUiXXtt'@; put 'YXJnaW4tdG9wOjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1yQG1kOm5vbmUiXXttYXJnaW4tcmlnaHQ6MCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWJAbWQ6bm9uZSJde21hcmdpbi1ib3R0b206MCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWxAbWQ6bm9uZSJde21hcmdpbi1s'@; put 'ZWZ0OjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS10QG1kOnh4eHMiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgMSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1yQG1kOnh4eHMiXXttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWJAbWQ6'@; put 'eHh4cyJde21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWxAbWQ6eHh4cyJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgMSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS10QG1kOnh4cyJde21hcmdpbi10b3A6dmFyKC0tXDNiNCAyKSFpbXBv'@; put 'cnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXJAbWQ6eHhzIl17bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1iQG1kOnh4cyJde21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCAyKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWxAbWQ6eHhzIl17bWFy'@; put 'Z2luLWxlZnQ6dmFyKC0tXDNiNCAyKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXRAbWQ6eHMiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgMykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1yQG1kOnhzIl17bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQgMykhaW1wb3J0YW50fVtjZHMtbGF5'@; put 'b3V0fj0ibS1iQG1kOnhzIl17bWFyZ2luLWJvdHRvbTp2YXIoLS1cM2I0IDMpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tbEBtZDp4cyJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgMykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS10QG1kOnNtIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0'@; put 'IDQpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tckBtZDpzbSJde21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDQpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tYkBtZDpzbSJde21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWxAbWQ6c20i'@; put 'XXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDQpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tdEBtZDptZCJde21hcmdpbi10b3A6dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXJAbWQ6bWQiXXttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nk'@; put 'cy1sYXlvdXR+PSJtLWJAbWQ6bWQiXXttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgNSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1sQG1kOm1kIl17bWFyZ2luLWxlZnQ6dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXRAbWQ6bGciXXttYXJnaW4tdG9wOnZhcigt'@; put 'LVwzYjQgNikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1yQG1kOmxnIl17bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQgNikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1iQG1kOmxnIl17bWFyZ2luLWJvdHRvbTp2YXIoLS1cM2I0IDYpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tbEBt'@; put 'ZDpsZyJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgNikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS10QG1kOnhsIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDcpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tckBtZDp4bCJde21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDcpIWltcG9ydGFu'@; put 'dH1bY2RzLWxheW91dH49Im0tYkBtZDp4bCJde21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWxAbWQ6eGwiXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDcpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tdEBtZDp4eGwiXXttYXJnaW4tdG9w'@; put 'OnZhcigtLVwzYjQgOCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1yQG1kOnh4bCJde21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDgpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tYkBtZDp4eGwiXXttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgOCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0'@; put 'fj0ibS1sQG1kOnh4bCJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgOCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS10QG1kOnh4eGwiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgOSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1yQG1kOnh4eGwiXXttYXJnaW4tcmlnaHQ6dmFyKC0tXDNi'@; put 'NCA5KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWJAbWQ6eHh4bCJde21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCA5KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWxAbWQ6eHh4bCJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgOSkhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDox'@; put 'MjAwcHgpe1tjZHMtbGF5b3V0Kj0iZ2FwQGxnOm5vbmUiXXtnYXA6MH1bY2RzLWxheW91dCo9ImdhcEBsZzp4eHhzIl17Z2FwOnZhcigtLVwzYjQgMSl9W2Nkcy1sYXlvdXQqPSJnYXBAbGc6eHhzIl17Z2FwOnZhcigtLVwzYjQgMil9W2Nkcy1sYXlvdXQqPSJnYXBAbGc6eHMiXXtnYXA6dmFy'@; put 'KC0tXDNiNCAzKX1bY2RzLWxheW91dCo9ImdhcEBsZzpzbSJde2dhcDp2YXIoLS1cM2I0IDQpfVtjZHMtbGF5b3V0Kj0iZ2FwQGxnOm1kIl17Z2FwOnZhcigtLVwzYjQgNSl9W2Nkcy1sYXlvdXQqPSJnYXBAbGc6bGciXXtnYXA6dmFyKC0tXDNiNCA2KX1bY2RzLWxheW91dCo9ImdhcEBsZzp4'@; put 'bCJde2dhcDp2YXIoLS1cM2I0IDcpfVtjZHMtbGF5b3V0Kj0iZ2FwQGxnOnh4bCJde2dhcDp2YXIoLS1cM2I0IDgpfVtjZHMtbGF5b3V0Kj0iZ2FwQGxnOnh4eGwiXXtnYXA6dmFyKC0tXDNiNCA5KX1bY2RzLWxheW91dH49InBAbGc6bm9uZSJde3BhZGRpbmc6MCFpbXBvcnRhbnR9W2Nkcy1s'@; put 'YXlvdXR+PSJtQGxnOm5vbmUiXXttYXJnaW46MCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwQGxnOnh4eHMiXXtwYWRkaW5nOnZhcigtLVwzYjQgMSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibUBsZzp4eHhzIl17bWFyZ2luOnZhcigtLVwzYjQgMSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0'@; put 'fj0icEBsZzp4eHMiXXtwYWRkaW5nOnZhcigtLVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibUBsZzp4eHMiXXttYXJnaW46dmFyKC0tXDNiNCAyKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwQGxnOnhzIl17cGFkZGluZzp2YXIoLS1cM2I0IDMpIWltcG9ydGFudH1bY2RzLWxh'@; put 'eW91dH49Im1AbGc6eHMiXXttYXJnaW46dmFyKC0tXDNiNCAzKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwQGxnOnNtIl17cGFkZGluZzp2YXIoLS1cM2I0IDQpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im1AbGc6c20iXXttYXJnaW46dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1s'@; put 'YXlvdXR+PSJwQGxnOm1kIl17cGFkZGluZzp2YXIoLS1cM2I0IDUpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im1AbGc6bWQiXXttYXJnaW46dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwQGxnOmxnIl17cGFkZGluZzp2YXIoLS1cM2I0IDYpIWltcG9ydGFudH1bY2Rz'@; put 'LWxheW91dH49Im1AbGc6bGciXXttYXJnaW46dmFyKC0tXDNiNCA2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwQGxnOnhsIl17cGFkZGluZzp2YXIoLS1cM2I0IDcpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im1AbGc6eGwiXXttYXJnaW46dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nk'@; put 'cy1sYXlvdXR+PSJwQGxnOnh4bCJde3BhZGRpbmc6dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtQGxnOnh4bCJde21hcmdpbjp2YXIoLS1cM2I0IDgpIWltcG9ydGFudH1bY2RzLWxheW91dH49InBAbGc6eHh4bCJde3BhZGRpbmc6dmFyKC0tXDNiNCA5KSFpbXBvcnRh'@; put 'bnR9W2Nkcy1sYXlvdXR+PSJtQGxnOnh4eGwiXXttYXJnaW46dmFyKC0tXDNiNCA5KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXhAbGc6bm9uZSJde3BhZGRpbmctbGVmdDowIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC15QGxnOm5vbmUi'@; put 'XXtwYWRkaW5nLXRvcDowIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTowIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteEBsZzp4eHhzIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgMSkhaW1wb3J0YW50O3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnR9W2Nkcy1sYXlv'@; put 'dXR+PSJwLXlAbGc6eHh4cyJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgMSkhaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgMSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC14QGxnOnh4cyJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDIpIWltcG9ydGFudDtwYWRkaW5n'@; put 'LXJpZ2h0OnZhcigtLVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC15QGxnOnh4cyJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgMikhaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC14QGxnOnhzIl17cGFkZGlu'@; put 'Zy1sZWZ0OnZhcigtLVwzYjQgMykhaW1wb3J0YW50O3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNiNCAzKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXlAbGc6eHMiXXtwYWRkaW5nLXRvcDp2YXIoLS1cM2I0IDMpIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTp2YXIoLS1cM2I0IDMpIWltcG9y'@; put 'dGFudH1bY2RzLWxheW91dH49InAteEBsZzpzbSJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDQpIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgNCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC15QGxnOnNtIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCA0KSFpbXBvcnRh'@; put 'bnQ7cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXhAbGc6bWQiXXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnQ7cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDUpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteUBsZzpt'@; put 'ZCJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgNSkhaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgNSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC14QGxnOmxnIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgNikhaW1wb3J0YW50O3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNi'@; put 'NCA2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXlAbGc6bGciXXtwYWRkaW5nLXRvcDp2YXIoLS1cM2I0IDYpIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTp2YXIoLS1cM2I0IDYpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteEBsZzp4bCJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0'@; put 'IDcpIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgNykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC15QGxnOnhsIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+'@; put 'PSJwLXhAbGc6eHhsIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgOCkhaW1wb3J0YW50O3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXlAbGc6eHhsIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0'@; put 'b206dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXhAbGc6eHh4bCJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDkpIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgOSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC15QGxnOnh4eGwiXXtwYWRkaW5n'@; put 'LXRvcDp2YXIoLS1cM2I0IDkpIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTp2YXIoLS1cM2I0IDkpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0teEBsZzpub25lIl17bWFyZ2luLWxlZnQ6MCFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS15QGxn'@; put 'Om5vbmUiXXttYXJnaW4tdG9wOjAhaW1wb3J0YW50O21hcmdpbi1ib3R0b206MCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXhAbGc6eHh4cyJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgMSkhaW1wb3J0YW50O21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDEpIWltcG9ydGFudH1bY2RzLWxh'@; put 'eW91dH49Im0teUBsZzp4eHhzIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDEpIWltcG9ydGFudDttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgMSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS14QGxnOnh4cyJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgMikhaW1wb3J0YW50O21hcmdpbi1y'@; put 'aWdodDp2YXIoLS1cM2I0IDIpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0teUBsZzp4eHMiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgMikhaW1wb3J0YW50O21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCAyKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXhAbGc6eHMiXXttYXJnaW4tbGVm'@; put 'dDp2YXIoLS1cM2I0IDMpIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCAzKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXlAbGc6eHMiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgMykhaW1wb3J0YW50O21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCAzKSFpbXBvcnRhbnR9W2Nk'@; put 'cy1sYXlvdXR+PSJtLXhAbGc6c20iXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDQpIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXlAbGc6c20iXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgNCkhaW1wb3J0YW50O21hcmdpbi1i'@; put 'b3R0b206dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXhAbGc6bWQiXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDUpIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXlAbGc6bWQiXXttYXJnaW4tdG9w'@; put 'OnZhcigtLVwzYjQgNSkhaW1wb3J0YW50O21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXhAbGc6bGciXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDYpIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCA2KSFpbXBvcnRhbnR9W2Nk'@; put 'cy1sYXlvdXR+PSJtLXlAbGc6bGciXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgNikhaW1wb3J0YW50O21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCA2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXhAbGc6eGwiXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDcpIWltcG9ydGFudDttYXJnaW4t'@; put 'cmlnaHQ6dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXlAbGc6eGwiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgNykhaW1wb3J0YW50O21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXhAbGc6eHhsIl17bWFyZ2luLWxl'@; put 'ZnQ6dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQgOCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS15QGxnOnh4bCJde21hcmdpbi10b3A6dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbTp2YXIoLS1cM2I0IDgpIWltcG9ydGFudH1b'@; put 'Y2RzLWxheW91dH49Im0teEBsZzp4eHhsIl17bWFyZ2luLWxlZnQ6dmFyKC0tXDNiNCA5KSFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQgOSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS15QGxnOnh4eGwiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgOSkhaW1wb3J0YW50O21h'@; put 'cmdpbi1ib3R0b206dmFyKC0tXDNiNCA5KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXRAbGc6bm9uZSJde3BhZGRpbmctdG9wOjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1yQGxnOm5vbmUiXXtwYWRkaW5nLXJpZ2h0OjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1iQGxnOm5v'@; put 'bmUiXXtwYWRkaW5nLWJvdHRvbTowIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtbEBsZzpub25lIl17cGFkZGluZy1sZWZ0OjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC10QGxnOnh4eHMiXXtwYWRkaW5nLXRvcDp2YXIoLS1cM2I0IDEpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAt'@; put 'ckBsZzp4eHhzIl17cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDEpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtYkBsZzp4eHhzIl17cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWxAbGc6eHh4cyJde3BhZGRpbmctbGVmdDp2YXIoLS1c'@; put 'M2I0IDEpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtdEBsZzp4eHMiXXtwYWRkaW5nLXRvcDp2YXIoLS1cM2I0IDIpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtckBsZzp4eHMiXXtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1iQGxn'@; put 'Onh4cyJde3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1sQGxnOnh4cyJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDIpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtdEBsZzp4cyJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgMykhaW1w'@; put 'b3J0YW50fVtjZHMtbGF5b3V0fj0icC1yQGxnOnhzIl17cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDMpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtYkBsZzp4cyJde3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgMykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1sQGxnOnhzIl17cGFk'@; put 'ZGluZy1sZWZ0OnZhcigtLVwzYjQgMykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC10QGxnOnNtIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXJAbGc6c20iXXtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgNCkhaW1wb3J0YW50fVtjZHMt'@; put 'bGF5b3V0fj0icC1iQGxnOnNtIl17cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWxAbGc6c20iXXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXRAbGc6bWQiXXtwYWRkaW5nLXRvcDp2YXIo'@; put 'LS1cM2I0IDUpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtckBsZzptZCJde3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWJAbGc6bWQiXXtwYWRkaW5nLWJvdHRvbTp2YXIoLS1cM2I0IDUpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAt'@; put 'bEBsZzptZCJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDUpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtdEBsZzpsZyJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgNikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1yQGxnOmxnIl17cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDYpIWlt'@; put 'cG9ydGFudH1bY2RzLWxheW91dH49InAtYkBsZzpsZyJde3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgNikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1sQGxnOmxnIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgNikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC10QGxnOnhsIl17cGFk'@; put 'ZGluZy10b3A6dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXJAbGc6eGwiXXtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgNykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1iQGxnOnhsIl17cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nk'@; put 'cy1sYXlvdXR+PSJwLWxAbGc6eGwiXXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXRAbGc6eHhsIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXJAbGc6eHhsIl17cGFkZGluZy1yaWdodDp2'@; put 'YXIoLS1cM2I0IDgpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtYkBsZzp4eGwiXXtwYWRkaW5nLWJvdHRvbTp2YXIoLS1cM2I0IDgpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtbEBsZzp4eGwiXXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+'@; put 'PSJwLXRAbGc6eHh4bCJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgOSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1yQGxnOnh4eGwiXXtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgOSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1iQGxnOnh4eGwiXXtwYWRkaW5nLWJvdHRvbTp2YXIo'@; put 'LS1cM2I0IDkpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtbEBsZzp4eHhsIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgOSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS10QGxnOm5vbmUiXXttYXJnaW4tdG9wOjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1yQGxnOm5vbmUiXXtt'@; put 'YXJnaW4tcmlnaHQ6MCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWJAbGc6bm9uZSJde21hcmdpbi1ib3R0b206MCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWxAbGc6bm9uZSJde21hcmdpbi1sZWZ0OjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS10QGxnOnh4eHMiXXttYXJnaW4t'@; put 'dG9wOnZhcigtLVwzYjQgMSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1yQGxnOnh4eHMiXXttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWJAbGc6eHh4cyJde21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnR9W2Nkcy1s'@; put 'YXlvdXR+PSJtLWxAbGc6eHh4cyJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgMSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS10QGxnOnh4cyJde21hcmdpbi10b3A6dmFyKC0tXDNiNCAyKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXJAbGc6eHhzIl17bWFyZ2luLXJpZ2h0OnZhcigt'@; put 'LVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1iQGxnOnh4cyJde21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCAyKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWxAbGc6eHhzIl17bWFyZ2luLWxlZnQ6dmFyKC0tXDNiNCAyKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXRA'@; put 'bGc6eHMiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgMykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1yQGxnOnhzIl17bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQgMykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1iQGxnOnhzIl17bWFyZ2luLWJvdHRvbTp2YXIoLS1cM2I0IDMpIWltcG9y'@; put 'dGFudH1bY2RzLWxheW91dH49Im0tbEBsZzp4cyJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgMykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS10QGxnOnNtIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDQpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tckBsZzpzbSJde21hcmdpbi1yaWdo'@; put 'dDp2YXIoLS1cM2I0IDQpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tYkBsZzpzbSJde21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWxAbGc6c20iXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDQpIWltcG9ydGFudH1bY2RzLWxheW91dH49'@; put 'Im0tdEBsZzptZCJde21hcmdpbi10b3A6dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXJAbGc6bWQiXXttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWJAbGc6bWQiXXttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgNSkh'@; put 'aW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1sQGxnOm1kIl17bWFyZ2luLWxlZnQ6dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXRAbGc6bGciXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgNikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1yQGxnOmxnIl17bWFyZ2lu'@; put 'LXJpZ2h0OnZhcigtLVwzYjQgNikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1iQGxnOmxnIl17bWFyZ2luLWJvdHRvbTp2YXIoLS1cM2I0IDYpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tbEBsZzpsZyJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgNikhaW1wb3J0YW50fVtjZHMtbGF5'@; put 'b3V0fj0ibS10QGxnOnhsIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDcpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tckBsZzp4bCJde21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDcpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tYkBsZzp4bCJde21hcmdpbi1ib3R0b206dmFyKC0tXDNi'@; put 'NCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWxAbGc6eGwiXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDcpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tdEBsZzp4eGwiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgOCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1yQGxnOnh4bCJd'@; put 'e21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDgpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tYkBsZzp4eGwiXXttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgOCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1sQGxnOnh4bCJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgOCkhaW1wb3J0YW50'@; put 'fVtjZHMtbGF5b3V0fj0ibS10QGxnOnh4eGwiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgOSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1yQGxnOnh4eGwiXXttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCA5KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWJAbGc6eHh4bCJde21hcmdpbi1i'@; put 'b3R0b206dmFyKC0tXDNiNCA5KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWxAbGc6eHh4bCJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgOSkhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDoxNDQwcHgpe1tjZHMtbGF5b3V0Kj0iZ2FwQHhsOm5vbmUiXXtnYXA6MH1bY2RzLWxheW91'@; put 'dCo9ImdhcEB4bDp4eHhzIl17Z2FwOnZhcigtLVwzYjQgMSl9W2Nkcy1sYXlvdXQqPSJnYXBAeGw6eHhzIl17Z2FwOnZhcigtLVwzYjQgMil9W2Nkcy1sYXlvdXQqPSJnYXBAeGw6eHMiXXtnYXA6dmFyKC0tXDNiNCAzKX1bY2RzLWxheW91dCo9ImdhcEB4bDpzbSJde2dhcDp2YXIoLS1cM2I0'@; put 'IDQpfVtjZHMtbGF5b3V0Kj0iZ2FwQHhsOm1kIl17Z2FwOnZhcigtLVwzYjQgNSl9W2Nkcy1sYXlvdXQqPSJnYXBAeGw6bGciXXtnYXA6dmFyKC0tXDNiNCA2KX1bY2RzLWxheW91dCo9ImdhcEB4bDp4bCJde2dhcDp2YXIoLS1cM2I0IDcpfVtjZHMtbGF5b3V0Kj0iZ2FwQHhsOnh4bCJde2dh'@; put 'cDp2YXIoLS1cM2I0IDgpfVtjZHMtbGF5b3V0Kj0iZ2FwQHhsOnh4eGwiXXtnYXA6dmFyKC0tXDNiNCA5KX1bY2RzLWxheW91dH49InBAeGw6bm9uZSJde3BhZGRpbmc6MCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtQHhsOm5vbmUiXXttYXJnaW46MCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+'@; put 'PSJwQHhsOnh4eHMiXXtwYWRkaW5nOnZhcigtLVwzYjQgMSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibUB4bDp4eHhzIl17bWFyZ2luOnZhcigtLVwzYjQgMSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icEB4bDp4eHMiXXtwYWRkaW5nOnZhcigtLVwzYjQgMikhaW1wb3J0YW50fVtjZHMt'@; put 'bGF5b3V0fj0ibUB4bDp4eHMiXXttYXJnaW46dmFyKC0tXDNiNCAyKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwQHhsOnhzIl17cGFkZGluZzp2YXIoLS1cM2I0IDMpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im1AeGw6eHMiXXttYXJnaW46dmFyKC0tXDNiNCAzKSFpbXBvcnRhbnR9W2Nk'@; put 'cy1sYXlvdXR+PSJwQHhsOnNtIl17cGFkZGluZzp2YXIoLS1cM2I0IDQpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im1AeGw6c20iXXttYXJnaW46dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwQHhsOm1kIl17cGFkZGluZzp2YXIoLS1cM2I0IDUpIWltcG9ydGFudH1b'@; put 'Y2RzLWxheW91dH49Im1AeGw6bWQiXXttYXJnaW46dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwQHhsOmxnIl17cGFkZGluZzp2YXIoLS1cM2I0IDYpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im1AeGw6bGciXXttYXJnaW46dmFyKC0tXDNiNCA2KSFpbXBvcnRhbnR9'@; put 'W2Nkcy1sYXlvdXR+PSJwQHhsOnhsIl17cGFkZGluZzp2YXIoLS1cM2I0IDcpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im1AeGw6eGwiXXttYXJnaW46dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwQHhsOnh4bCJde3BhZGRpbmc6dmFyKC0tXDNiNCA4KSFpbXBvcnRh'@; put 'bnR9W2Nkcy1sYXlvdXR+PSJtQHhsOnh4bCJde21hcmdpbjp2YXIoLS1cM2I0IDgpIWltcG9ydGFudH1bY2RzLWxheW91dH49InBAeGw6eHh4bCJde3BhZGRpbmc6dmFyKC0tXDNiNCA5KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtQHhsOnh4eGwiXXttYXJnaW46dmFyKC0tXDNiNCA5KSFp'@; put 'bXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXhAeGw6bm9uZSJde3BhZGRpbmctbGVmdDowIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC15QHhsOm5vbmUiXXtwYWRkaW5nLXRvcDowIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTowIWltcG9ydGFu'@; put 'dH1bY2RzLWxheW91dH49InAteEB4bDp4eHhzIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgMSkhaW1wb3J0YW50O3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXlAeGw6eHh4cyJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgMSkhaW1wb3J0'@; put 'YW50O3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgMSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC14QHhsOnh4cyJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDIpIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC15QHhs'@; put 'Onh4cyJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgMikhaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC14QHhsOnhzIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgMykhaW1wb3J0YW50O3BhZGRpbmctcmlnaHQ6dmFyKC0t'@; put 'XDNiNCAzKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXlAeGw6eHMiXXtwYWRkaW5nLXRvcDp2YXIoLS1cM2I0IDMpIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTp2YXIoLS1cM2I0IDMpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteEB4bDpzbSJde3BhZGRpbmctbGVmdDp2YXIoLS1c'@; put 'M2I0IDQpIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgNCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC15QHhsOnNtIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlv'@; put 'dXR+PSJwLXhAeGw6bWQiXXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnQ7cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDUpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteUB4bDptZCJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgNSkhaW1wb3J0YW50O3BhZGRpbmctYm90'@; put 'dG9tOnZhcigtLVwzYjQgNSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC14QHhsOmxnIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgNikhaW1wb3J0YW50O3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNiNCA2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXlAeGw6bGciXXtwYWRkaW5nLXRv'@; put 'cDp2YXIoLS1cM2I0IDYpIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTp2YXIoLS1cM2I0IDYpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteEB4bDp4bCJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDcpIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgNykhaW1wb3J0YW50'@; put 'fVtjZHMtbGF5b3V0fj0icC15QHhsOnhsIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXhAeGw6eHhsIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgOCkhaW1wb3J0YW50'@; put 'O3BhZGRpbmctcmlnaHQ6dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXlAeGw6eHhsIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXhAeGw6eHh4'@; put 'bCJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDkpIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgOSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC15QHhsOnh4eGwiXXtwYWRkaW5nLXRvcDp2YXIoLS1cM2I0IDkpIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTp2YXIoLS1c'@; put 'M2I0IDkpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0teEB4bDpub25lIl17bWFyZ2luLWxlZnQ6MCFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS15QHhsOm5vbmUiXXttYXJnaW4tdG9wOjAhaW1wb3J0YW50O21hcmdpbi1ib3R0b206MCFpbXBv'@; put 'cnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXhAeGw6eHh4cyJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgMSkhaW1wb3J0YW50O21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDEpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0teUB4bDp4eHhzIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDEpIWltcG9y'@; put 'dGFudDttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgMSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS14QHhsOnh4cyJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgMikhaW1wb3J0YW50O21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDIpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0teUB4bDp4'@; put 'eHMiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgMikhaW1wb3J0YW50O21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCAyKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXhAeGw6eHMiXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDMpIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCAz'@; put 'KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXlAeGw6eHMiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgMykhaW1wb3J0YW50O21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCAzKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXhAeGw6c20iXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDQpIWlt'@; put 'cG9ydGFudDttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXlAeGw6c20iXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgNCkhaW1wb3J0YW50O21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXhAeGw6'@; put 'bWQiXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDUpIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXlAeGw6bWQiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgNSkhaW1wb3J0YW50O21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCA1'@; put 'KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXhAeGw6bGciXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDYpIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCA2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXlAeGw6bGciXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgNikhaW1w'@; put 'b3J0YW50O21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCA2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXhAeGw6eGwiXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDcpIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXlAeGw6'@; put 'eGwiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgNykhaW1wb3J0YW50O21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXhAeGw6eHhsIl17bWFyZ2luLWxlZnQ6dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQg'@; put 'OCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS15QHhsOnh4bCJde21hcmdpbi10b3A6dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnQ7bWFyZ2luLWJvdHRvbTp2YXIoLS1cM2I0IDgpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0teEB4bDp4eHhsIl17bWFyZ2luLWxlZnQ6dmFyKC0tXDNiNCA5'@; put 'KSFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQgOSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS15QHhsOnh4eGwiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgOSkhaW1wb3J0YW50O21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCA5KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJw'@; put 'LXRAeGw6bm9uZSJde3BhZGRpbmctdG9wOjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1yQHhsOm5vbmUiXXtwYWRkaW5nLXJpZ2h0OjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1iQHhsOm5vbmUiXXtwYWRkaW5nLWJvdHRvbTowIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtbEB4'@; put 'bDpub25lIl17cGFkZGluZy1sZWZ0OjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC10QHhsOnh4eHMiXXtwYWRkaW5nLXRvcDp2YXIoLS1cM2I0IDEpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtckB4bDp4eHhzIl17cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDEpIWltcG9ydGFudH1b'@; put 'Y2RzLWxheW91dH49InAtYkB4bDp4eHhzIl17cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWxAeGw6eHh4cyJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDEpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtdEB4bDp4eHMiXXtwYWRkaW5n'@; put 'LXRvcDp2YXIoLS1cM2I0IDIpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtckB4bDp4eHMiXXtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1iQHhsOnh4cyJde3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgMikhaW1wb3J0YW50fVtjZHMt'@; put 'bGF5b3V0fj0icC1sQHhsOnh4cyJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDIpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtdEB4bDp4cyJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgMykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1yQHhsOnhzIl17cGFkZGluZy1yaWdodDp2YXIo'@; put 'LS1cM2I0IDMpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtYkB4bDp4cyJde3BhZGRpbmctYm90dG9tOnZhcigtLVwzYjQgMykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1sQHhsOnhzIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgMykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC10'@; put 'QHhsOnNtIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXJAeGw6c20iXXtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgNCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1iQHhsOnNtIl17cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCA0KSFp'@; put 'bXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWxAeGw6c20iXXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXRAeGw6bWQiXXtwYWRkaW5nLXRvcDp2YXIoLS1cM2I0IDUpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtckB4bDptZCJde3BhZGRp'@; put 'bmctcmlnaHQ6dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWJAeGw6bWQiXXtwYWRkaW5nLWJvdHRvbTp2YXIoLS1cM2I0IDUpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtbEB4bDptZCJde3BhZGRpbmctbGVmdDp2YXIoLS1cM2I0IDUpIWltcG9ydGFudH1bY2Rz'@; put 'LWxheW91dH49InAtdEB4bDpsZyJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgNikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1yQHhsOmxnIl17cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDYpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtYkB4bDpsZyJde3BhZGRpbmctYm90dG9tOnZh'@; put 'cigtLVwzYjQgNikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1sQHhsOmxnIl17cGFkZGluZy1sZWZ0OnZhcigtLVwzYjQgNikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC10QHhsOnhsIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXJA'@; put 'eGw6eGwiXXtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgNykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1iQHhsOnhsIl17cGFkZGluZy1ib3R0b206dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWxAeGw6eGwiXXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCA3KSFp'@; put 'bXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXRAeGw6eHhsIl17cGFkZGluZy10b3A6dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXJAeGw6eHhsIl17cGFkZGluZy1yaWdodDp2YXIoLS1cM2I0IDgpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtYkB4bDp4eGwiXXtw'@; put 'YWRkaW5nLWJvdHRvbTp2YXIoLS1cM2I0IDgpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtbEB4bDp4eGwiXXtwYWRkaW5nLWxlZnQ6dmFyKC0tXDNiNCA4KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXRAeGw6eHh4bCJde3BhZGRpbmctdG9wOnZhcigtLVwzYjQgOSkhaW1wb3J0YW50'@; put 'fVtjZHMtbGF5b3V0fj0icC1yQHhsOnh4eGwiXXtwYWRkaW5nLXJpZ2h0OnZhcigtLVwzYjQgOSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1iQHhsOnh4eGwiXXtwYWRkaW5nLWJvdHRvbTp2YXIoLS1cM2I0IDkpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAtbEB4bDp4eHhsIl17cGFk'@; put 'ZGluZy1sZWZ0OnZhcigtLVwzYjQgOSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS10QHhsOm5vbmUiXXttYXJnaW4tdG9wOjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1yQHhsOm5vbmUiXXttYXJnaW4tcmlnaHQ6MCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWJAeGw6bm9uZSJd'@; put 'e21hcmdpbi1ib3R0b206MCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWxAeGw6bm9uZSJde21hcmdpbi1sZWZ0OjAhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS10QHhsOnh4eHMiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgMSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1yQHhsOnh4'@; put 'eHMiXXttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWJAeGw6eHh4cyJde21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCAxKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWxAeGw6eHh4cyJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgMSkhaW1w'@; put 'b3J0YW50fVtjZHMtbGF5b3V0fj0ibS10QHhsOnh4cyJde21hcmdpbi10b3A6dmFyKC0tXDNiNCAyKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXJAeGw6eHhzIl17bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQgMikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1iQHhsOnh4cyJde21hcmdp'@; put 'bi1ib3R0b206dmFyKC0tXDNiNCAyKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWxAeGw6eHhzIl17bWFyZ2luLWxlZnQ6dmFyKC0tXDNiNCAyKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXRAeGw6eHMiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgMykhaW1wb3J0YW50fVtjZHMtbGF5'@; put 'b3V0fj0ibS1yQHhsOnhzIl17bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQgMykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1iQHhsOnhzIl17bWFyZ2luLWJvdHRvbTp2YXIoLS1cM2I0IDMpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tbEB4bDp4cyJde21hcmdpbi1sZWZ0OnZhcigtLVwz'@; put 'YjQgMykhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS10QHhsOnNtIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDQpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tckB4bDpzbSJde21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDQpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tYkB4bDpzbSJd'@; put 'e21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCA0KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWxAeGw6c20iXXttYXJnaW4tbGVmdDp2YXIoLS1cM2I0IDQpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tdEB4bDptZCJde21hcmdpbi10b3A6dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nk'@; put 'cy1sYXlvdXR+PSJtLXJAeGw6bWQiXXttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWJAeGw6bWQiXXttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgNSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1sQHhsOm1kIl17bWFyZ2luLWxlZnQ6dmFy'@; put 'KC0tXDNiNCA1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLXRAeGw6bGciXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgNikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1yQHhsOmxnIl17bWFyZ2luLXJpZ2h0OnZhcigtLVwzYjQgNikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1iQHhs'@; put 'OmxnIl17bWFyZ2luLWJvdHRvbTp2YXIoLS1cM2I0IDYpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tbEB4bDpsZyJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgNikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS10QHhsOnhsIl17bWFyZ2luLXRvcDp2YXIoLS1cM2I0IDcpIWltcG9ydGFu'@; put 'dH1bY2RzLWxheW91dH49Im0tckB4bDp4bCJde21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDcpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tYkB4bDp4bCJde21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCA3KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWxAeGw6eGwiXXttYXJnaW4tbGVm'@; put 'dDp2YXIoLS1cM2I0IDcpIWltcG9ydGFudH1bY2RzLWxheW91dH49Im0tdEB4bDp4eGwiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQgOCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1yQHhsOnh4bCJde21hcmdpbi1yaWdodDp2YXIoLS1cM2I0IDgpIWltcG9ydGFudH1bY2RzLWxheW91dH49'@; put 'Im0tYkB4bDp4eGwiXXttYXJnaW4tYm90dG9tOnZhcigtLVwzYjQgOCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1sQHhsOnh4bCJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgOCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS10QHhsOnh4eGwiXXttYXJnaW4tdG9wOnZhcigtLVwzYjQg'@; put 'OSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibS1yQHhsOnh4eGwiXXttYXJnaW4tcmlnaHQ6dmFyKC0tXDNiNCA5KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWJAeGw6eHh4bCJde21hcmdpbi1ib3R0b206dmFyKC0tXDNiNCA5KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtLWxAeGw6'@; put 'eHh4bCJde21hcmdpbi1sZWZ0OnZhcigtLVwzYjQgOSkhaW1wb3J0YW50fX1bY2RzLWxheW91dD1uby1zY3JvbGxpbmdde292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJjb250YWluZXI6ZmlsbCJdLFtjZHMtbGF5b3V0fj1maWxsXXt3aWR0aDoxMDAlIWltcG9ydGFu'@; put 'dH1bY2RzLWxheW91dH49ImNvbnRhaW5lcjpjZW50ZXIiXXttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvfVtjZHMtbGF5b3V0fj0iY29udGFpbmVyOnhzIl17d2lkdGg6MTAwJTttYXgtd2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1sYXlvdXQtd2lkdGgteHMpfVtjZHMtbGF5b3V0'@; put 'fj0iY29udGFpbmVyOnNtIl17d2lkdGg6MTAwJTttYXgtd2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1sYXlvdXQtd2lkdGgtc20pfVtjZHMtbGF5b3V0fj0iY29udGFpbmVyOm1kIl17d2lkdGg6MTAwJTttYXgtd2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1sYXlvdXQtd2lkdGgtbWQpfVtjZHMtbGF5'@; put 'b3V0fj0iY29udGFpbmVyOmxnIl17d2lkdGg6MTAwJTttYXgtd2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1sYXlvdXQtd2lkdGgtbGcpfVtjZHMtbGF5b3V0fj0iY29udGFpbmVyOnhsIl17d2lkdGg6MTAwJTttYXgtd2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1sYXlvdXQtd2lkdGgteGwpfSosOmFm'@; put 'dGVyLDpiZWZvcmUsOmhvc3R7Ym94LXNpemluZzpib3JkZXItYm94fVtjZHMtdGhlbWV+PWRhcmtdey0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWNvbG9yLTUwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXdoaXRlKTstLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1jb2xvci00MDA6dmFyKC0tY2Rz'@; put 'LWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tMTAwKTstLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1jb2xvci0zMDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tMjAwKTstLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1jb2xvci0yMDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1j'@; put 'b25zdHJ1Y3Rpb24tMzAwKTstLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1jb2xvci0xMDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibGFjayk7LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktbGluay1jb2xvcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtNDAwKTstLWNkcy1nbG9iYWwtdHlw'@; put 'b2dyYXBoeS1saW5rLWNvbG9yLWhvdmVyOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS0yMDApOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWxpbmstY29sb3ItdmlzaXRlZDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWxhdmVuZGVyLTMwMCk7LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktbGlu'@; put 'ay1jb2xvci12aXNpdGVkLWhvdmVyOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItbGF2ZW5kZXItMjAwKTstLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1jb2xvci00NTA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tNTApOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWRpc2FibGVk'@; put 'LWJ1dHRvbjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi05MDApOy0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWRpc2FibGVkOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTUwMCk7LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktaW5mby1ob3Zlcjp2YXIoLS1j'@; put 'ZHMtZ2xvYmFsLWNvbG9yLWJsdWUtMjAwKTstLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zdWNjZXNzLWhvdmVyOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItZ3JlZW4tNDAwKTstLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS13YXJuaW5nLWhvdmVyOnZhcigtLWNkcy1nbG9iYWwtY29sb3IteWVsbG93'@; put 'LTYwMCk7LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZGFuZ2VyLWhvdmVyOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItcmVkLTQwMCk7LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktbmV1dHJhbC1ob3Zlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0yMDApOy0tY2RzLWdsb2Jh'@; put 'bC10eXBvZ3JhcGh5LWxpbmstb24tY29sb3JiZzp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0xMDAwKTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTEwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsYWNrKTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTIw'@; put 'MDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0zMDApOy0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItMzAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTIwMCk7LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci00MDA6dmFyKC0tY2RzLWdsb2Jh'@; put 'bC1jb2xvci1jb25zdHJ1Y3Rpb24tMTAwKTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTQ1MDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi01MCk7LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci01MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci13aGl0ZSk7LS1j'@; put 'ZHMtYWxpYXMtdHlwb2dyYXBoeS1kaXNhYmxlZC1idXR0b246dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tOTAwKTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWRpc2FibGVkOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTUwMCk7LS1jZHMtYWxpYXMtdHlw'@; put 'b2dyYXBoeS1pbmZvLWhvdmVyOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS0yMDApOy0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc3VjY2Vzcy1ob3Zlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWdyZWVuLTQwMCk7LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS13YXJuaW5nLWhvdmVyOnZhcigt'@; put 'LWNkcy1nbG9iYWwtY29sb3IteWVsbG93LTYwMCk7LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1kYW5nZXItaG92ZXI6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1yZWQtNDAwKTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LW5ldXRyYWwtaG92ZXI6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1'@; put 'Y3Rpb24tMjAwKTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWxpbmstb24tY29sb3JiZzp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0xMDAwKTstLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWxpbmstY29sb3I6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTQwMCk7LS1jZHMt'@; put 'YWxpYXMtdHlwb2dyYXBoeS1saW5rLWNvbG9yLWhvdmVyOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS0yMDApOy0tY2RzLWFsaWFzLXR5cG9ncmFwaHktbGluay1jb2xvci12aXNpdGVkOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItbGF2ZW5kZXItMzAwKTstLWNkcy1hbGlhcy10eXBvZ3Jh'@; put 'cGh5LWxpbmstY29sb3ItdmlzaXRlZC1ob3Zlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWxhdmVuZGVyLTIwMCk7LS1jZHMtYWxpYXMtb2JqZWN0LWFwcC1iYWNrZ3JvdW5kOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTEwMDApOy0tY2RzLWFsaWFzLW9iamVjdC1jb250'@; put 'YWluZXItYmFja2Ryb3AtYmFja2dyb3VuZDp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LW9wYWNpdHktMzAwKTstLWNkcy1hbGlhcy1vYmplY3QtY29udGFpbmVyLWJhY2tncm91bmQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tOTAwKTstLWNkcy1hbGlhcy1vYmplY3QtY29u'@; put 'dGFpbmVyLWJhY2tncm91bmQtdGludDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0xMDAwKTstLWNkcy1hbGlhcy1vYmplY3QtY29udGFpbmVyLWJhY2tncm91bmQtc2hhZGU6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tODAwKTstLWNkcy1hbGlhcy1v'@; put 'YmplY3QtY29udGFpbmVyLWJhY2tncm91bmQtZGFyazp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0xMTAwKTstLWNkcy1hbGlhcy1vYmplY3QtY29udGFpbmVyLWJhY2tncm91bmQtaW52ZXJzZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0yMDApOy0t'@; put 'Y2RzLWFsaWFzLW9iamVjdC1jb250YWluZXItYmFja2dyb3VuZC1pbnZlcnNlLXRpbnQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tMTAwKTstLWNkcy1hbGlhcy1vYmplY3QtY29udGFpbmVyLWJhY2tncm91bmQtaW52ZXJzZS1zaGFkZTp2YXIoLS1jZHMtZ2xvYmFsLWNv'@; put 'bG9yLWNvbnN0cnVjdGlvbi0zMDApOy0tY2RzLWFsaWFzLW9iamVjdC1jb250YWluZXItYm9yZGVyLWNvbG9yOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmxhY2spOy0tY2RzLWFsaWFzLW9iamVjdC1vdmVybGF5LWJhY2tncm91bmQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rp'@; put 'b24tOTAwKTstLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLWNvbG9yOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTUwMCk7LS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1jb2xvci10aW50OnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTQwMCk7LS1jZHMt'@; put 'YWxpYXMtb2JqZWN0LWJvcmRlci1jb2xvci1zaGFkZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi02MDApOy0tY2RzLWFsaWFzLW9iamVjdC1zaGFkb3ctMTAwOjAgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xKSB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTIpIDAgdmFyKC0t'@; put 'Y2RzLWFsaWFzLW9iamVjdC1vcGFjaXR5LTMwMCk7LS1jZHMtYWxpYXMtb2JqZWN0LXNoYWRvdy0yMDA6MCB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEpIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMikgMCB2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LW9wYWNpdHktMjAwKTstLWNkcy1hbGlhcy1v'@; put 'YmplY3Qtc2hhZG93LTMwMDowIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSkgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0yKSAwIHZhcigtLWNkcy1hbGlhcy1vYmplY3Qtb3BhY2l0eS0xMDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvcjp2YXIoLS1jZHMtZ2xvYmFsLWNv'@; put 'bG9yLWNvbnN0cnVjdGlvbi0yMDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvci1ob3Zlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi01MCk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yLWFjdGl2ZTp2YXIoLS1jZHMtZ2xvYmFs'@; put 'LWNvbG9yLWNvbnN0cnVjdGlvbi0xMDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvci1zZWxlY3RlZDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0yMDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvci1kaXNhYmxlZDp2YXIoLS1j'@; put 'ZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi02MDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTEwMDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLWhvdmVy'@; put 'OnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTgwMCk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtYWN0aXZlOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTYwMCk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJh'@; put 'Y2tncm91bmQtc2VsZWN0ZWQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTkwMCk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtc2VsZWN0ZWQtYWN0aXZlOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTYwMCk7LS1jZHMtYWxpYXMtb2Jq'@; put 'ZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtc2VsZWN0ZWQtaG92ZXI6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tNzAwKTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1kaXNhYmxlZDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVj'@; put 'dGlvbi03MDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLWhpZ2hsaWdodDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtNDAwKTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1zaGFkZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9y'@; put 'LWNvbnN0cnVjdGlvbi0xMTAwKTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1zaGFkZS1ob3Zlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi02MDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLXNoYWRlLWFj'@; put 'dGl2ZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi04MDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLXNoYWRlLXNlbGVjdGVkOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTcwMCk7LS1jZHMtYWxpYXMtb2JqZWN0LWlu'@; put 'dGVyYWN0aW9uLWJhY2tncm91bmQtc2hhZGUtc2VsZWN0ZWQtaG92ZXI6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tODAwKTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1zaGFkZS1zZWxlY3RlZC1hY3RpdmU6dmFyKC0tY2RzLWdsb2JhbC1j'@; put 'b2xvci1jb25zdHJ1Y3Rpb24tNjAwKTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYm9yZGVyLWNvbG9yOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTMwMCk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWluZm8taG92ZXI6dmFyKC0tY2RzLWdsb2Jh'@; put 'bC1jb2xvci1ibHVlLTMwMCk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWluZm8tYWN0aXZlOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS01MDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1pbmZvLXNlbGVjdGVkOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1'@; put 'ZS01MDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1pbmZvLWNsaWNrOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS01MDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1pbmZvLXNlY29uZGFyeS1ob3Zlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtMTAw'@; put 'MCk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLXN1Y2Nlc3MtaG92ZXI6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ncmVlbi00MDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1zdWNjZXNzLWFjdGl2ZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWdyZWVuLTYwMCk7LS1j'@; put 'ZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLXN1Y2Nlc3MtY2xpY2s6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ncmVlbi02MDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1zdWNjZXNzLXNlY29uZGFyeS1ob3Zlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWdyZWVuLTEwMDAp'@; put 'Oy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi13YXJuaW5nLWhvdmVyOnZhcigtLWNkcy1nbG9iYWwtY29sb3IteWVsbG93LTMwMCk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLXdhcm5pbmctYWN0aXZlOnZhcigtLWNkcy1nbG9iYWwtY29sb3IteWVsbG93LTUwMCk7LS1j'@; put 'ZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLXdhcm5pbmctY2xpY2s6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci15ZWxsb3ctNTAwKTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24td2FybmluZy1zZWNvbmRhcnktaG92ZXI6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci15ZWxsb3ctMTAw'@; put 'MCk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWRhbmdlci1ob3Zlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXJlZC00MDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1kYW5nZXItYWN0aXZlOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItcmVkLTYwMCk7LS1jZHMtYWxp'@; put 'YXMtb2JqZWN0LWludGVyYWN0aW9uLWRhbmdlci1jbGljazp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXJlZC02MDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1kYW5nZXItc2Vjb25kYXJ5LWhvdmVyOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItcmVkLTEwMDApOy0tY2RzLWFsaWFz'@; put 'LW9iamVjdC1pbnRlcmFjdGlvbi1uZXV0cmFsLWhvdmVyOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTIwMCk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLW5ldXRyYWwtYWN0aXZlOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTQwMCk7LS1j'@; put 'ZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLW5ldXRyYWwtY2xpY2s6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tNDAwKTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tbmV1dHJhbC1zZWNvbmRhcnktaG92ZXI6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25z'@; put 'dHJ1Y3Rpb24tODAwKTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24taW52ZXJzZS1ob3Zlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi03MDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1pbnZlcnNlLWFjdGl2ZTp2YXIoLS1jZHMtZ2xvYmFsLWNv'@; put 'bG9yLWNvbnN0cnVjdGlvbi04MDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1pbnZlcnNlLWNsaWNrOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTgwMCk7LS1jZHMtYWxpYXMtc3RhdHVzLXRpbnQ6dHJhbnNwYXJlbnQ7LS1jZHMtYWxpYXMtc3RhdHVzLWlu'@; put 'Zm86dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTQwMCk7LS1jZHMtYWxpYXMtc3RhdHVzLWluZm8tdGludDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtODAwKTstLWNkcy1hbGlhcy1zdGF0dXMtaW5mby1zaGFkZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtNTAwKTstLWNk'@; put 'cy1hbGlhcy1zdGF0dXMtc3VjY2Vzczp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWdyZWVuLTUwMCk7LS1jZHMtYWxpYXMtc3RhdHVzLXN1Y2Nlc3MtdGludDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWdyZWVuLTgwMCk7LS1jZHMtYWxpYXMtc3RhdHVzLXN1Y2Nlc3Mtc2hhZGU6dmFyKC0tY2Rz'@; put 'LWdsb2JhbC1jb2xvci1ncmVlbi02MDApOy0tY2RzLWFsaWFzLXN0YXR1cy13YXJuaW5nOnZhcigtLWNkcy1nbG9iYWwtY29sb3Itb2NocmUtNDAwKTstLWNkcy1hbGlhcy1zdGF0dXMtd2FybmluZy10aW50OnZhcigtLWNkcy1nbG9iYWwtY29sb3Itb2NocmUtOTAwKTstLWNkcy1hbGlhcy1z'@; put 'dGF0dXMtd2FybmluZy1zaGFkZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLW9jaHJlLTUwMCk7LS1jZHMtYWxpYXMtc3RhdHVzLXdhcm5pbmctZGFyazp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLW9jaHJlLTYwMCk7LS1jZHMtYWxpYXMtc3RhdHVzLWRhbmdlcjp2YXIoLS1jZHMtZ2xvYmFsLWNv'@; put 'bG9yLXJlZC01MDApOy0tY2RzLWFsaWFzLXN0YXR1cy1kYW5nZXItdGludDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXJlZC05MDApOy0tY2RzLWFsaWFzLXN0YXR1cy1kYW5nZXItc2hhZGU6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1yZWQtNjAwKTstLWNkcy1hbGlhcy1zdGF0dXMtZGFuZ2Vy'@; put 'LWRhcms6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1yZWQtOTAwKTstLWNkcy1hbGlhcy1zdGF0dXMtbmV1dHJhbDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0zMDApOy0tY2RzLWFsaWFzLXN0YXR1cy1uZXV0cmFsLXRpbnQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25z'@; put 'dHJ1Y3Rpb24tNzAwKTstLWNkcy1hbGlhcy1zdGF0dXMtbmV1dHJhbC1zaGFkZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi00MDApOy0tY2RzLWFsaWFzLXN0YXR1cy1kaXNhYmxlZDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi02MDApOy0tY2RzLWFs'@; put 'aWFzLXN0YXR1cy1kaXNhYmxlZC10aW50OnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTcwMCk7LS1jZHMtYWxpYXMtc3RhdHVzLWRpc2FibGVkLXNoYWRlOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTUwMCk7LS1jZHMtYWxpYXMtdXRpbGl0eS1ncmF5'@; put 'OnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTMwMCk7LS1jZHMtYWxpYXMtdXRpbGl0eS1ncmF5LXRpbnQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tMTAwMCk7LS1jZHMtYWxpYXMtdXRpbGl0eS1ncmF5LXNoYWRlOnZhcigtLWNkcy1nbG9iYWwtY29s'@; put 'b3ItY29uc3RydWN0aW9uLTIwMCk7LS1jZHMtYWxpYXMtdXRpbGl0eS1ibHVlOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS0zMDApOy0tY2RzLWFsaWFzLXV0aWxpdHktYmx1ZS10aW50OnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS0xMDAwKTstLWNkcy1hbGlhcy11dGlsaXR5LWJs'@; put 'dWUtc2hhZGU6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTIwMCk7LS1jZHMtYWxpYXMtdXRpbGl0eS1saWdodC1ibHVlOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS03MDApOy0tY2RzLWFsaWFzLXV0aWxpdHktbGlnaHQtYmx1ZS10aW50OnZhcigtLWNkcy1nbG9iYWwtY29sb3It'@; put 'Ymx1ZS0xMDAwKTstLWNkcy1hbGlhcy11dGlsaXR5LWxpZ2h0LWJsdWUtc2hhZGU6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTUwMCk7LS1jZHMtYWxpYXMtdXRpbGl0eS1kYXJrLWJsdWU6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1henVyZS0yMDApOy0tY2RzLWFsaWFzLXV0aWxpdHkt'@; put 'ZGFyay1ibHVlLXRpbnQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1henVyZS0xMDAwKTstLWNkcy1hbGlhcy11dGlsaXR5LWRhcmstYmx1ZS1zaGFkZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWF6dXJlLTUwKTstLWNkcy1hbGlhcy11dGlsaXR5LWdyZWVuOnZhcigtLWNkcy1nbG9iYWwtY29s'@; put 'b3ItZ3JlZW4tNDAwKTstLWNkcy1hbGlhcy11dGlsaXR5LWdyZWVuLXRpbnQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ncmVlbi0xMDAwKTstLWNkcy1hbGlhcy11dGlsaXR5LWdyZWVuLXNoYWRlOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItZ3JlZW4tMjAwKTstLWNkcy1hbGlhcy11dGlsaXR5'@; put 'LXllbGxvdzp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLW9jaHJlLTQwMCk7LS1jZHMtYWxpYXMtdXRpbGl0eS15ZWxsb3ctdGludDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLW9jaHJlLTkwMCk7LS1jZHMtYWxpYXMtdXRpbGl0eS15ZWxsb3ctc2hhZGU6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1v'@; put 'Y2hyZS0zMDApOy0tY2RzLWFsaWFzLXV0aWxpdHktcmVkOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItcmVkLTUwMCk7LS1jZHMtYWxpYXMtdXRpbGl0eS1yZWQtdGludDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXJlZC0xMDAwKTstLWNkcy1hbGlhcy11dGlsaXR5LXJlZC1zaGFkZTp2YXIoLS1j'@; put 'ZHMtZ2xvYmFsLWNvbG9yLXJlZC0yMDApOy0tY2RzLWFsaWFzLXV0aWxpdHktdGFuZ2VyaW5lOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItdGFuZ2VyaW5lLTYwMCk7LS1jZHMtYWxpYXMtdXRpbGl0eS10YW5nZXJpbmUtdGludDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXRhbmdlcmluZS0xMDAw'@; put 'KTstLWNkcy1hbGlhcy11dGlsaXR5LXRhbmdlcmluZS1zaGFkZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXRhbmdlcmluZS00MDApOy0tY2RzLWFsaWFzLXV0aWxpdHktdmlvbGV0OnZhcigtLWNkcy1nbG9iYWwtY29sb3ItdmlvbGV0LTQwMCk7LS1jZHMtYWxpYXMtdXRpbGl0eS12aW9sZXQt'@; put 'dGludDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXZpb2xldC0xMDAwKTstLWNkcy1hbGlhcy11dGlsaXR5LXZpb2xldC1zaGFkZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXZpb2xldC0yMDApOy0tY2RzLWFsaWFzLXZpei1ib3JkZXI6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb29sLWdyYXkt'@; put 'NTApOy0tY2RzLWFsaWFzLXZpei1nZW5lcmFsLTE6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTQwMCk7LS1jZHMtYWxpYXMtdml6LWdlbmVyYWwtMS1ibHVlOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS00MDApOy0tY2RzLWFsaWFzLXZpei1nZW5lcmFsLTI6dmFyKC0tY2RzLWds'@; put 'b2JhbC1jb2xvci12aW9sZXQtNTAwKTstLWNkcy1hbGlhcy12aXotZ2VuZXJhbC0yLXZpb2xldDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXZpb2xldC00MDApOy0tY2RzLWFsaWFzLXZpei1nZW5lcmFsLTM6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1hcXVhLTIwMCk7LS1jZHMtYWxpYXMtdml6'@; put 'LWdlbmVyYWwtMy1hcXVhOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYXF1YS0yMDApOy0tY2RzLWFsaWFzLXZpei1nZW5lcmFsLTQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1sYXZlbmRlci00MDApOy0tY2RzLWFsaWFzLXZpei1nZW5lcmFsLTQtbGltZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9y'@; put 'LWxpbWUtMzAwKTstLWNkcy1hbGlhcy12aXotZ2VuZXJhbC01OnZhcigtLWNkcy1nbG9iYWwtY29sb3ItcGluay00MDApOy0tY2RzLWFsaWFzLXZpei1nZW5lcmFsLTUtYmx1ZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtMjAwKTstLWNkcy1hbGlhcy12aXotZ2VuZXJhbC02OnZhcigt'@; put 'LWNkcy1nbG9iYWwtY29sb3ItbGltZS00MDApOy0tY2RzLWFsaWFzLXZpei1nZW5lcmFsLTYtYXF1YTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWFxdWEtNTApOy0tY2RzLWFsaWFzLXZpei1nZW5lcmFsLTc6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1sYXZlbmRlci0zMDApOy0tY2RzLWFsaWFz'@; put 'LXZpei1nZW5lcmFsLTctdmlvbGV0OnZhcigtLWNkcy1nbG9iYWwtY29sb3ItdmlvbGV0LTIwMCk7LS1jZHMtYWxpYXMtdml6LWdlbmVyYWwtODp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWFxdWEtNDAwKTstLWNkcy1hbGlhcy12aXotZ2VuZXJhbC04LWxpbWU6dmFyKC0tY2RzLWdsb2JhbC1j'@; put 'b2xvci1saW1lLTEwMCk7LS1jZHMtYWxpYXMtdml6LWdlbmVyYWwtOTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWxpbWUtMjAwKTstLWNkcy1hbGlhcy12aXotZ2VuZXJhbC05LWJsdWU6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTMwMCk7LS1jZHMtYWxpYXMtdml6LWdlbmVyYWwtMTA6'@; put 'dmFyKC0tY2RzLWdsb2JhbC1jb2xvci12aW9sZXQtMzAwKTstLWNkcy1hbGlhcy12aXotZ2VuZXJhbC0xMC1saW1lOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItbGltZS01MCk7LS1jZHMtYWxpYXMtdml6LWdlbmVyYWwtMTE6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1qYWRlLTQwMCk7LS1jZHMt'@; put 'YWxpYXMtdml6LWdlbmVyYWwtMTEtYXF1YTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWFxdWEtNDAwKTstLWNkcy1hbGlhcy12aXotZ2VuZXJhbC0xMjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWF6dXJlLTEwMCk7LS1jZHMtYWxpYXMtdml6LWdlbmVyYWwtMTItdmlvbGV0OnZhcigtLWNkcy1n'@; put 'bG9iYWwtY29sb3ItdmlvbGV0LTUwKTstLWNkcy1hbGlhcy12aXotZ2VuZXJhbC0xMzp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXZpb2xldC00MDApOy0tY2RzLWFsaWFzLXZpei1nZW5lcmFsLTEzLXZpb2xldDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXZpb2xldC0zMDApOy0tY2RzLWFsaWFz'@; put 'LXZpei1nZW5lcmFsLTE0OnZhcigtLWNkcy1nbG9iYWwtY29sb3ItZ3JlZW4tMjAwKTstLWNkcy1hbGlhcy12aXotZ2VuZXJhbC0xNC1ibHVlOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS01MCk7LS1jZHMtYWxpYXMtdml6LWdlbmVyYWwtMTU6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1w'@; put 'aW5rLTMwMCk7LS1jZHMtYWxpYXMtdml6LWdlbmVyYWwtMTUtYXF1YTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWFxdWEtMzAwKTstLWNkcy1hbGlhcy12aXotZ2VuZXJhbC0xNjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWF6dXJlLTMwMCk7LS1jZHMtYWxpYXMtdml6LWdlbmVyYWwtMTYtbGlt'@; put 'ZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWxpbWUtMjAwKTstLWNkcy1hbGlhcy12aXotc2V2ZXJpdHktbmV1dHJhbDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0zMDApOy0tY2RzLWFsaWFzLXZpei1zZXZlcml0eS1zdWNjZXNzOnZhcigtLWNkcy1nbG9iYWwtY29sb3It'@; put 'Z3JlZW4tNTAwKTstLWNkcy1hbGlhcy12aXotc2V2ZXJpdHktd2FybmluZzp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXllbGxvdy0zMDApOy0tY2RzLWFsaWFzLXZpei1zZXZlcml0eS13YXJuaW5nLWxpZ2h0OnZhcigtLWNkcy1nbG9iYWwtY29sb3IteWVsbG93LTMwMCk7LS1jZHMtYWxpYXMt'@; put 'dml6LXNldmVyaXR5LWltbWVkaWF0ZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXRhbmdlcmluZS00MDApOy0tY2RzLWFsaWFzLXZpei1zZXZlcml0eS1jcml0aWNhbDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXJlZC03MDApOy0tY2RzLWFsaWFzLXZpei1zZXZlcml0eS1mcmVlLXNwYWNlLWZp'@; put 'bGw6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tODAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1ibHVlLTUwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS0xMDAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1ibHVlLTEwMDp2YXIoLS1jZHMtZ2xvYmFs'@; put 'LWNvbG9yLWJsdWUtOTAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1ibHVlLTIwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtODAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1ibHVlLTMwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtNzAwKTstLWNkcy1hbGlh'@; put 'cy12aXotc2VxdWVudGlhbC1ibHVlLTQwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtNjAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1ibHVlLTUwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtNTAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1ibHVlLTYwMDp2'@; put 'YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtNDAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1ibHVlLTcwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtMzAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1ibHVlLTgwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUt'@; put 'MjAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1ibHVlLTkwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtMTAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1ibHVlLTEwMDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTUwKTstLWNkcy1hbGlhcy12aXotc2VxdWVu'@; put 'dGlhbC12aW9sZXQtNTA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci12aW9sZXQtMTAwMCk7LS1jZHMtYWxpYXMtdml6LXNlcXVlbnRpYWwtdmlvbGV0LTEwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXZpb2xldC05MDApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50aWFsLXZpb2xldC0yMDA6dmFy'@; put 'KC0tY2RzLWdsb2JhbC1jb2xvci12aW9sZXQtODAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC12aW9sZXQtMzAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItdmlvbGV0LTcwMCk7LS1jZHMtYWxpYXMtdml6LXNlcXVlbnRpYWwtdmlvbGV0LTQwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9y'@; put 'LXZpb2xldC02MDApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50aWFsLXZpb2xldC01MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci12aW9sZXQtNTAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC12aW9sZXQtNjAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItdmlvbGV0LTQwMCk7LS1jZHMt'@; put 'YWxpYXMtdml6LXNlcXVlbnRpYWwtdmlvbGV0LTcwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXZpb2xldC0zMDApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50aWFsLXZpb2xldC04MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci12aW9sZXQtMjAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlh'@; put 'bC12aW9sZXQtOTAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItdmlvbGV0LTEwMCk7LS1jZHMtYWxpYXMtdml6LXNlcXVlbnRpYWwtdmlvbGV0LTEwMDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci12aW9sZXQtNTApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50aWFsLW9jaHJlLTUwOnZhcigtLWNk'@; put 'cy1nbG9iYWwtY29sb3Itb2NocmUtMTAwMCk7LS1jZHMtYWxpYXMtdml6LXNlcXVlbnRpYWwtb2NocmUtMTAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3Itb2NocmUtOTAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1vY2hyZS0yMDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1vY2hyZS04'@; put 'MDApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50aWFsLW9jaHJlLTMwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLW9jaHJlLTcwMCk7LS1jZHMtYWxpYXMtdml6LXNlcXVlbnRpYWwtb2NocmUtNDAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3Itb2NocmUtNjAwKTstLWNkcy1hbGlhcy12aXotc2Vx'@; put 'dWVudGlhbC1vY2hyZS01MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1vY2hyZS01MDApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50aWFsLW9jaHJlLTYwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLW9jaHJlLTQwMCk7LS1jZHMtYWxpYXMtdml6LXNlcXVlbnRpYWwtb2NocmUtNzAwOnZhcigt'@; put 'LWNkcy1nbG9iYWwtY29sb3Itb2NocmUtMzAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1vY2hyZS04MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1vY2hyZS0yMDApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50aWFsLW9jaHJlLTkwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLW9jaHJl'@; put 'LTEwMCk7LS1jZHMtYWxpYXMtdml6LXNlcXVlbnRpYWwtb2NocmUtMTAwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLW9jaHJlLTUwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1hcXVhLTUwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYXF1YS0xMDAwKTstLWNkcy1hbGlhcy12aXotc2Vx'@; put 'dWVudGlhbC1hcXVhLTEwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWFxdWEtOTAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1hcXVhLTIwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWFxdWEtODAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1hcXVhLTMwMDp2YXIoLS1jZHMt'@; put 'Z2xvYmFsLWNvbG9yLWFxdWEtNzAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1hcXVhLTQwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWFxdWEtNjAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1hcXVhLTUwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWFxdWEtNTAwKTstLWNk'@; put 'cy1hbGlhcy12aXotc2VxdWVudGlhbC1hcXVhLTYwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWFxdWEtNDAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1hcXVhLTcwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWFxdWEtMzAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1hcXVh'@; put 'LTgwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWFxdWEtMjAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1hcXVhLTkwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWFxdWEtMTAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1hcXVhLTEwMDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xv'@; put 'ci1hcXVhLTUwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1ncmVlbi01MDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWdyZWVuLTEwMDApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50aWFsLWdyZWVuLTEwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWdyZWVuLTkwMCk7LS1jZHMtYWxpYXMt'@; put 'dml6LXNlcXVlbnRpYWwtZ3JlZW4tMjAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItZ3JlZW4tODAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1ncmVlbi0zMDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ncmVlbi03MDApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50aWFsLWdyZWVuLTQw'@; put 'MDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWdyZWVuLTYwMCk7LS1jZHMtYWxpYXMtdml6LXNlcXVlbnRpYWwtZ3JlZW4tNTAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItZ3JlZW4tNTAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1ncmVlbi02MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xv'@; put 'ci1ncmVlbi00MDApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50aWFsLWdyZWVuLTcwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWdyZWVuLTMwMCk7LS1jZHMtYWxpYXMtdml6LXNlcXVlbnRpYWwtZ3JlZW4tODAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItZ3JlZW4tMjAwKTstLWNkcy1hbGlh'@; put 'cy12aXotc2VxdWVudGlhbC1ncmVlbi05MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ncmVlbi0xMDApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50aWFsLWdyZWVuLTEwMDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ncmVlbi01MCk7LS1jZHMtYWxpYXMtdml6LXNlcXVlbnRpYWwtcmVkLTUw'@; put 'OnZhcigtLWNkcy1nbG9iYWwtY29sb3ItcmVkLTEwMDApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50aWFsLXJlZC0xMDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1yZWQtOTAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1yZWQtMjAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItcmVkLTgw'@; put 'MCk7LS1jZHMtYWxpYXMtdml6LXNlcXVlbnRpYWwtcmVkLTMwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXJlZC03MDApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50aWFsLXJlZC00MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1yZWQtNjAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1y'@; put 'ZWQtNTAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItcmVkLTUwMCk7LS1jZHMtYWxpYXMtdml6LXNlcXVlbnRpYWwtcmVkLTYwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXJlZC00MDApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50aWFsLXJlZC03MDA6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1y'@; put 'ZWQtMzAwKTstLWNkcy1hbGlhcy12aXotc2VxdWVudGlhbC1yZWQtODAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItcmVkLTIwMCk7LS1jZHMtYWxpYXMtdml6LXNlcXVlbnRpYWwtcmVkLTkwMDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXJlZC0xMDApOy0tY2RzLWFsaWFzLXZpei1zZXF1ZW50'@; put 'aWFsLXJlZC0xMDAwOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItcmVkLTUwKX06cm9vdHstLWNkcy1nbG9iYWwtYmFzZToyMH1odG1se2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7bGluZS1oZWlnaHQ6MS4xNTstbXMtdGV4dC1zaXplLWFkanVzdDoxMDAlOy13ZWJraXQtdGV4dC1zaXplLWFkanVz'@; put 'dDoxMDAlfWJvZHl7bWFyZ2luOjB9YXJ0aWNsZSxhc2lkZSxkZXRhaWxzLGZpZ2NhcHRpb24sZmlndXJlLGZvb3RlcixoZWFkZXIsbWFpbixtZW51LG5hdixzZWN0aW9uLHN1bW1hcnl7ZGlzcGxheTpibG9ja31hdWRpbyxjYW52YXMscHJvZ3Jlc3MsdmlkZW97ZGlzcGxheTppbmxpbmUtYmxv'@; put 'Y2t9YXVkaW86bm90KFtjb250cm9sc10pe2Rpc3BsYXk6bm9uZTtoZWlnaHQ6MH1wcm9ncmVzc3t2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX10ZW1wbGF0ZSxbaGlkZGVuXXtkaXNwbGF5Om5vbmV9YXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50Oy13ZWJraXQtdGV4dC1kZWNvcmF0aW9u'@; put 'LXNraXA6b2JqZWN0c31hOmFjdGl2ZSxhOmhvdmVye291dGxpbmUtd2lkdGg6MH1hYmJyW3RpdGxlXXtib3JkZXItYm90dG9tOm5vbmU7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTstd2Via2l0LXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgZG90dGVkO3RleHQtZGVjb3JhdGlvbjp1bmRl'@; put 'cmxpbmUgZG90dGVkfWIsc3Ryb25ne2ZvbnQtd2VpZ2h0OmluaGVyaXR9YixzdHJvbmd7Zm9udC13ZWlnaHQ6Ym9sZGVyfWRmbntmb250LXN0eWxlOml0YWxpY31oMXtmb250LXNpemU6MmVtO21hcmdpbjouNjdlbSAwfW1hcmt7YmFja2dyb3VuZC1jb2xvcjojZmYwO2NvbG9yOiMwMDB9c21h'@; put 'bGx7Zm9udC1zaXplOjgwJX1zdWIsc3Vwe2ZvbnQtc2l6ZTo3NSU7bGluZS1oZWlnaHQ6MDtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX1zdWJ7Ym90dG9tOi0uMjVlbX1zdXB7dG9wOi0uNWVtfWltZ3tib3JkZXItc3R5bGU6bm9uZX1zdmc6bm90KDpyb290KXtv'@; put 'dmVyZmxvdzpoaWRkZW59Y29kZSxrYmQscHJlLHNhbXB7Zm9udC1mYW1pbHk6bW9ub3NwYWNlO2ZvbnQtc2l6ZToxZW19ZmlndXJle21hcmdpbjoxZW0gNDBweH1ocntib3gtc2l6aW5nOmNvbnRlbnQtYm94O2hlaWdodDowO292ZXJmbG93OnZpc2libGV9YnV0dG9uLGlucHV0LG9wdGdyb3Vw'@; put 'LHNlbGVjdCx0ZXh0YXJlYXtmb250OmluaGVyaXQ7bWFyZ2luOjB9dGV4dGFyZWF7bGluZS1oZWlnaHQ6MS4xNX1vcHRncm91cHtmb250LXdlaWdodDo3MDB9YnV0dG9uLGlucHV0e292ZXJmbG93OnZpc2libGV9YnV0dG9uLHNlbGVjdHt0ZXh0LXRyYW5zZm9ybTpub25lfWJ1dHRvbixodG1s'@; put 'IFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdLFt0eXBlPXN1Ym1pdF17LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbn1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsW3R5cGU9YnV0dG9uXTo6LW1vei1mb2N1cy1pbm5lcixbdHlwZT1yZXNldF06Oi1tb3otZm9jdXMtaW5uZXIsW3R5cGU9c3Vi'@; put 'bWl0XTo6LW1vei1mb2N1cy1pbm5lcntib3JkZXItc3R5bGU6bm9uZTtwYWRkaW5nOjB9ZmllbGRzZXR7Ym9yZGVyOjFweCBzb2xpZCBzaWx2ZXI7bWFyZ2luOjAgMnB4O3BhZGRpbmc6LjM1ZW0gLjYyNWVtIC43NWVtfWxlZ2VuZHtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29sb3I6aW5oZXJp'@; put 'dDtkaXNwbGF5OnRhYmxlO21heC13aWR0aDoxMDAlO3BhZGRpbmc6MDt3aGl0ZS1zcGFjZTpub3JtYWx9dGV4dGFyZWF7b3ZlcmZsb3c6YXV0b31bdHlwZT1jaGVja2JveF0sW3R5cGU9cmFkaW9de2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjB9W3R5cGU9bnVtYmVyXTo6LXdlYmtp'@; put 'dC1pbm5lci1zcGluLWJ1dHRvbixbdHlwZT1udW1iZXJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9ue2hlaWdodDphdXRvfVt0eXBlPXNlYXJjaF17LXdlYmtpdC1hcHBlYXJhbmNlOnRleHRmaWVsZDtvdXRsaW5lLW9mZnNldDotMnB4fVt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNo'@; put 'LWNhbmNlbC1idXR0b24sW3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX06Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uey13ZWJraXQtYXBwZWFyYW5jZTpidXR0b247Zm9udDppbmhlcml0fTpyb290ey0tY2xyLWNvbG9y'@; put 'LW5ldXRyYWwtMDpoc2woMTk4LCAwJSwgMTAwJSk7LS1jbHItY29sb3ItbmV1dHJhbC01MDpoc2woMTk4LCAwJSwgOTglKTstLWNsci1jb2xvci1uZXV0cmFsLTEwMDpoc2woMTk4LCAwJSwgOTUlKTstLWNsci1jb2xvci1uZXV0cmFsLTIwMDpoc2woMTk4LCAwJSwgOTElKTstLWNsci1jb2xv'@; put 'ci1uZXV0cmFsLTMwMDpoc2woMTk4LCAwJSwgODclKTstLWNsci1jb2xvci1uZXV0cmFsLTQwMDpoc2woMTk4LCAwJSwgODAlKTstLWNsci1jb2xvci1uZXV0cmFsLTUwMDpoc2woMTk4LCAwJSwgNzAlKTstLWNsci1jb2xvci1uZXV0cmFsLTYwMDpoc2woMTk4LCAwJSwgNTUlKTstLWNsci1j'@; put 'b2xvci1uZXV0cmFsLTcwMDpoc2woMTk4LCAwJSwgNDAlKTstLWNsci1jb2xvci1uZXV0cmFsLTgwMDpoc2woMTk4LCAwJSwgMjclKTstLWNsci1jb2xvci1uZXV0cmFsLTkwMDpoc2woMTk4LCAwJSwgMjAlKTstLWNsci1jb2xvci1uZXV0cmFsLTEwMDA6aHNsKDE5OCwgMCUsIDAlKTstLWNs'@; put 'ci1jb2xvci1vbi1uZXV0cmFsLTA6aHNsKDE5OCwgMCUsIDAlKTstLWNsci1jb2xvci1vbi1uZXV0cmFsLTUwOmhzbCgxOTgsIDAlLCAwJSk7LS1jbHItY29sb3Itb24tbmV1dHJhbC0xMDA6aHNsKDE5OCwgMCUsIDAlKTstLWNsci1jb2xvci1vbi1uZXV0cmFsLTIwMDpoc2woMTk4LCAwJSwg'@; put 'MCUpOy0tY2xyLWNvbG9yLW9uLW5ldXRyYWwtMzAwOmhzbCgxOTgsIDAlLCAwJSk7LS1jbHItY29sb3Itb24tbmV1dHJhbC00MDA6aHNsKDE5OCwgMCUsIDAlKTstLWNsci1jb2xvci1vbi1uZXV0cmFsLTUwMDpoc2woMTk4LCAwJSwgMCUpOy0tY2xyLWNvbG9yLW9uLW5ldXRyYWwtNjAwOmhz'@; put 'bCgxOTgsIDAlLCAxMDAlKTstLWNsci1jb2xvci1vbi1uZXV0cmFsLTcwMDpoc2woMTk4LCAwJSwgMTAwJSk7LS1jbHItY29sb3Itb24tbmV1dHJhbC04MDA6aHNsKDE5OCwgMCUsIDEwMCUpOy0tY2xyLWNvbG9yLW9uLW5ldXRyYWwtOTAwOmhzbCgxOTgsIDAlLCAxMDAlKTstLWNsci1jb2xv'@; put 'ci1vbi1uZXV0cmFsLTEwMDA6aHNsKDE5OCwgMCUsIDEwMCUpOy0tY2xyLWNvbG9yLWFjdGlvbi01MDpoc2woMTk4LCA4MyUsIDk0JSk7LS1jbHItY29sb3ItYWN0aW9uLTEwMDpoc2woMTk4LCA4MSUsIDg4JSk7LS1jbHItY29sb3ItYWN0aW9uLTIwMDpoc2woMTk4LCA3OCUsIDc4JSk7LS1j'@; put 'bHItY29sb3ItYWN0aW9uLTMwMDpoc2woMTk4LCA2OSUsIDY5JSk7LS1jbHItY29sb3ItYWN0aW9uLTQwMDpoc2woMTk4LCA2NiUsIDU3JSk7LS1jbHItY29sb3ItYWN0aW9uLTUwMDpoc2woMTk4LCA4MCUsIDQ2JSk7LS1jbHItY29sb3ItYWN0aW9uLTYwMDpoc2woMTk4LCAxMDAlLCAzMiUp'@; put 'Oy0tY2xyLWNvbG9yLWFjdGlvbi03MDA6aHNsKDE5OCwgMTAwJSwgMjglKTstLWNsci1jb2xvci1hY3Rpb24tODAwOmhzbCgxOTgsIDEwMCUsIDI0JSk7LS1jbHItY29sb3ItYWN0aW9uLTkwMDpoc2woMTk4LCAxMDAlLCAyMSUpOy0tY2xyLWNvbG9yLWFjdGlvbi0xMDAwOmhzbCgxOTgsIDEw'@; put 'MCUsIDE1JSk7LS1jbHItY29sb3Itb24tYWN0aW9uLTUwOmhzbCgxOTgsIDAlLCAwJSk7LS1jbHItY29sb3Itb24tYWN0aW9uLTEwMDpoc2woMTk4LCAwJSwgMCUpOy0tY2xyLWNvbG9yLW9uLWFjdGlvbi0yMDA6aHNsKDE5OCwgMCUsIDAlKTstLWNsci1jb2xvci1vbi1hY3Rpb24tMzAwOmhz'@; put 'bCgxOTgsIDAlLCAwJSk7LS1jbHItY29sb3Itb24tYWN0aW9uLTQwMDpoc2woMTk4LCAwJSwgMCUpOy0tY2xyLWNvbG9yLW9uLWFjdGlvbi01MDA6aHNsKDE5OCwgMCUsIDAlKTstLWNsci1jb2xvci1vbi1hY3Rpb24tNjAwOmhzbCgxOTgsIDAlLCAxMDAlKTstLWNsci1jb2xvci1vbi1hY3Rp'@; put 'b24tNzAwOmhzbCgxOTgsIDAlLCAxMDAlKTstLWNsci1jb2xvci1vbi1hY3Rpb24tODAwOmhzbCgxOTgsIDAlLCAxMDAlKTstLWNsci1jb2xvci1vbi1hY3Rpb24tOTAwOmhzbCgxOTgsIDAlLCAxMDAlKTstLWNsci1jb2xvci1vbi1hY3Rpb24tMTAwMDpoc2woMTk4LCAwJSwgMTAwJSk7LS1j'@; put 'bHItY29sb3Itc2Vjb25kYXJ5LWFjdGlvbi01MDpoc2woMjgyLCAxMDAlLCA5NSUpOy0tY2xyLWNvbG9yLXNlY29uZGFyeS1hY3Rpb24tMTAwOmhzbCgyODIsIDU5JSwgODclKTstLWNsci1jb2xvci1zZWNvbmRhcnktYWN0aW9uLTIwMDpoc2woMjgyLCA1MSUsIDc4JSk7LS1jbHItY29sb3It'@; put 'c2Vjb25kYXJ5LWFjdGlvbi0zMDA6aHNsKDI4MiwgNDUlLCA3MCUpOy0tY2xyLWNvbG9yLXNlY29uZGFyeS1hY3Rpb24tNDAwOmhzbCgyODIsIDQ0JSwgNjIlKTstLWNsci1jb2xvci1zZWNvbmRhcnktYWN0aW9uLTUwMDpoc2woMjgyLCA0MyUsIDU0JSk7LS1jbHItY29sb3Itc2Vjb25kYXJ5'@; put 'LWFjdGlvbi02MDA6aHNsKDI4MiwgNTAlLCA0NSUpOy0tY2xyLWNvbG9yLXNlY29uZGFyeS1hY3Rpb24tNzAwOmhzbCgyODIsIDY5JSwgMzclKTstLWNsci1jb2xvci1zZWNvbmRhcnktYWN0aW9uLTgwMDpoc2woMjgyLCAxMDAlLCAyOSUpOy0tY2xyLWNvbG9yLXNlY29uZGFyeS1hY3Rpb24t'@; put 'OTAwOmhzbCgyODIsIDEwMCUsIDIyJSk7LS1jbHItY29sb3Itc2Vjb25kYXJ5LWFjdGlvbi0xMDAwOmhzbCgyODIsIDEwMCUsIDE0JSk7LS1jbHItY29sb3Itb24tc2Vjb25kYXJ5LWFjdGlvbi01MDpoc2woMTk4LCAwJSwgMCUpOy0tY2xyLWNvbG9yLW9uLXNlY29uZGFyeS1hY3Rpb24tMTAw'@; put 'OmhzbCgxOTgsIDAlLCAwJSk7LS1jbHItY29sb3Itb24tc2Vjb25kYXJ5LWFjdGlvbi0yMDA6aHNsKDE5OCwgMCUsIDAlKTstLWNsci1jb2xvci1vbi1zZWNvbmRhcnktYWN0aW9uLTMwMDpoc2woMTk4LCAwJSwgMCUpOy0tY2xyLWNvbG9yLW9uLXNlY29uZGFyeS1hY3Rpb24tNDAwOmhzbCgx'@; put 'OTgsIDAlLCAwJSk7LS1jbHItY29sb3Itb24tc2Vjb25kYXJ5LWFjdGlvbi01MDA6aHNsKDE5OCwgMCUsIDEwMCUpOy0tY2xyLWNvbG9yLW9uLXNlY29uZGFyeS1hY3Rpb24tNjAwOmhzbCgxOTgsIDAlLCAxMDAlKTstLWNsci1jb2xvci1vbi1zZWNvbmRhcnktYWN0aW9uLTcwMDpoc2woMTk4'@; put 'LCAwJSwgMTAwJSk7LS1jbHItY29sb3Itb24tc2Vjb25kYXJ5LWFjdGlvbi04MDA6aHNsKDE5OCwgMCUsIDEwMCUpOy0tY2xyLWNvbG9yLW9uLXNlY29uZGFyeS1hY3Rpb24tOTAwOmhzbCgxOTgsIDAlLCAxMDAlKTstLWNsci1jb2xvci1vbi1zZWNvbmRhcnktYWN0aW9uLTEwMDA6aHNsKDE5'@; put 'OCwgMCUsIDEwMCUpOy0tY2xyLWNvbG9yLWRhbmdlci01MDpoc2woOSwgMTAwJSwgOTclKTstLWNsci1jb2xvci1kYW5nZXItMTAwOmhzbCg5LCA5NSUsIDkyJSk7LS1jbHItY29sb3ItZGFuZ2VyLTIwMDpoc2woOSwgOTElLCA4NiUpOy0tY2xyLWNvbG9yLWRhbmdlci0zMDA6aHNsKDksIDgz'@; put 'JSwgNzYlKTstLWNsci1jb2xvci1kYW5nZXItNDAwOmhzbCg5LCA4NSUsIDY3JSk7LS1jbHItY29sb3ItZGFuZ2VyLTUwMDpoc2woOSwgODglLCA2MSUpOy0tY2xyLWNvbG9yLWRhbmdlci02MDA6aHNsKDksIDkyJSwgNTAlKTstLWNsci1jb2xvci1kYW5nZXItNzAwOmhzbCg5LCAxMDAlLCA0'@; put 'MyUpOy0tY2xyLWNvbG9yLWRhbmdlci04MDA6aHNsKDksIDEwMCUsIDM4JSk7LS1jbHItY29sb3ItZGFuZ2VyLTkwMDpoc2woOSwgMTAwJSwgMzAlKTstLWNsci1jb2xvci1kYW5nZXItMTAwMDpoc2woOSwgMTAwJSwgMjAlKTstLWNsci1jb2xvci1vbi1kYW5nZXItNTA6aHNsKDE5OCwgMCUs'@; put 'IDAlKTstLWNsci1jb2xvci1vbi1kYW5nZXItMTAwOmhzbCgxOTgsIDAlLCAwJSk7LS1jbHItY29sb3Itb24tZGFuZ2VyLTIwMDpoc2woMTk4LCAwJSwgMCUpOy0tY2xyLWNvbG9yLW9uLWRhbmdlci0zMDA6aHNsKDE5OCwgMCUsIDAlKTstLWNsci1jb2xvci1vbi1kYW5nZXItNDAwOmhzbCgx'@; put 'OTgsIDAlLCAwJSk7LS1jbHItY29sb3Itb24tZGFuZ2VyLTUwMDpoc2woMTk4LCAwJSwgMCUpOy0tY2xyLWNvbG9yLW9uLWRhbmdlci02MDA6aHNsKDE5OCwgMCUsIDAlKTstLWNsci1jb2xvci1vbi1kYW5nZXItNzAwOmhzbCgxOTgsIDAlLCAxMDAlKTstLWNsci1jb2xvci1vbi1kYW5nZXIt'@; put 'ODAwOmhzbCgxOTgsIDAlLCAxMDAlKTstLWNsci1jb2xvci1vbi1kYW5nZXItOTAwOmhzbCgxOTgsIDAlLCAxMDAlKTstLWNsci1jb2xvci1vbi1kYW5nZXItMTAwMDpoc2woMTk4LCAwJSwgMTAwJSk7LS1jbHItY29sb3Itd2FybmluZy01MDpoc2woNDgsIDEwMCUsIDk1JSk7LS1jbHItY29s'@; put 'b3Itd2FybmluZy0xMDA6aHNsKDQ4LCAxMDAlLCA4OSUpOy0tY2xyLWNvbG9yLXdhcm5pbmctMjAwOmhzbCg0OCwgMTAwJSwgODMlKTstLWNsci1jb2xvci13YXJuaW5nLTMwMDpoc2woNDgsIDk4JSwgNzIlKTstLWNsci1jb2xvci13YXJuaW5nLTQwMDpoc2woNDgsIDk0JSwgNTclKTstLWNs'@; put 'ci1jb2xvci13YXJuaW5nLTUwMDpoc2woNDgsIDk1JSwgNDglKTstLWNsci1jb2xvci13YXJuaW5nLTYwMDpoc2woNDYsIDEwMCUsIDQ1JSk7LS1jbHItY29sb3Itd2FybmluZy03MDA6aHNsKDQzLCAxMDAlLCA0MiUpOy0tY2xyLWNvbG9yLXdhcm5pbmctODAwOmhzbCg0MSwgMTAwJSwgMzQl'@; put 'KTstLWNsci1jb2xvci13YXJuaW5nLTkwMDpoc2woMzgsIDEwMCUsIDI4JSk7LS1jbHItY29sb3Itd2FybmluZy0xMDAwOmhzbCgzMSwgMTAwJSwgMTklKTstLWNsci1jb2xvci1vbi13YXJuaW5nLTUwOmhzbCgxOTgsIDAlLCAwJSk7LS1jbHItY29sb3Itb24td2FybmluZy0xMDA6aHNsKDE5'@; put 'OCwgMCUsIDAlKTstLWNsci1jb2xvci1vbi13YXJuaW5nLTIwMDpoc2woMTk4LCAwJSwgMCUpOy0tY2xyLWNvbG9yLW9uLXdhcm5pbmctMzAwOmhzbCgxOTgsIDAlLCAwJSk7LS1jbHItY29sb3Itb24td2FybmluZy00MDA6aHNsKDE5OCwgMCUsIDAlKTstLWNsci1jb2xvci1vbi13YXJuaW5n'@; put 'LTUwMDpoc2woMTk4LCAwJSwgMCUpOy0tY2xyLWNvbG9yLW9uLXdhcm5pbmctNjAwOmhzbCgxOTgsIDAlLCAwJSk7LS1jbHItY29sb3Itb24td2FybmluZy03MDA6aHNsKDE5OCwgMCUsIDAlKTstLWNsci1jb2xvci1vbi13YXJuaW5nLTgwMDpoc2woMTk4LCAwJSwgMCUpOy0tY2xyLWNvbG9y'@; put 'LW9uLXdhcm5pbmctOTAwOmhzbCgxOTgsIDAlLCAwJSk7LS1jbHItY29sb3Itb24td2FybmluZy0xMDAwOmhzbCgxOTgsIDAlLCAxMDAlKTstLWNsci1jb2xvci1zdWNjZXNzLTUwOmhzbCg5MywgNTIlLCA4OCUpOy0tY2xyLWNvbG9yLXN1Y2Nlc3MtMTAwOmhzbCg5MywgNTglLCA3NSUpOy0t'@; put 'Y2xyLWNvbG9yLXN1Y2Nlc3MtMjAwOmhzbCg5MywgNzYlLCA0OSUpOy0tY2xyLWNvbG9yLXN1Y2Nlc3MtMzAwOmhzbCg5MywgNzclLCA0NCUpOy0tY2xyLWNvbG9yLXN1Y2Nlc3MtNDAwOmhzbCg5MywgNzklLCA0MCUpOy0tY2xyLWNvbG9yLXN1Y2Nlc3MtNTAwOmhzbCg5MywgNjclLCAzOCUp'@; put 'Oy0tY2xyLWNvbG9yLXN1Y2Nlc3MtNjAwOmhzbCg5MywgODUlLCAzMiUpOy0tY2xyLWNvbG9yLXN1Y2Nlc3MtNzAwOmhzbCg5MywgMTAwJSwgMjYlKTstLWNsci1jb2xvci1zdWNjZXNzLTgwMDpoc2woOTMsIDEwMCUsIDIxJSk7LS1jbHItY29sb3Itc3VjY2Vzcy05MDA6aHNsKDkzLCAxMDAl'@; put 'LCAxNiUpOy0tY2xyLWNvbG9yLXN1Y2Nlc3MtMTAwMDpoc2woOTMsIDEwMCUsIDEzJSk7LS1jbHItY29sb3Itb24tc3VjY2Vzcy01MDpoc2woMTk4LCAwJSwgMCUpOy0tY2xyLWNvbG9yLW9uLXN1Y2Nlc3MtMTAwOmhzbCgxOTgsIDAlLCAwJSk7LS1jbHItY29sb3Itb24tc3VjY2Vzcy0yMDA6'@; put 'aHNsKDE5OCwgMCUsIDAlKTstLWNsci1jb2xvci1vbi1zdWNjZXNzLTMwMDpoc2woMTk4LCAwJSwgMCUpOy0tY2xyLWNvbG9yLW9uLXN1Y2Nlc3MtNDAwOmhzbCgxOTgsIDAlLCAwJSk7LS1jbHItY29sb3Itb24tc3VjY2Vzcy01MDA6aHNsKDE5OCwgMCUsIDAlKTstLWNsci1jb2xvci1vbi1z'@; put 'dWNjZXNzLTYwMDpoc2woMTk4LCAwJSwgMCUpOy0tY2xyLWNvbG9yLW9uLXN1Y2Nlc3MtNzAwOmhzbCgxOTgsIDAlLCAxMDAlKTstLWNsci1jb2xvci1vbi1zdWNjZXNzLTgwMDpoc2woMTk4LCAwJSwgMTAwJSk7LS1jbHItY29sb3Itb24tc3VjY2Vzcy05MDA6aHNsKDE5OCwgMCUsIDEwMCUp'@; put 'Oy0tY2xyLWNvbG9yLW9uLXN1Y2Nlc3MtMTAwMDpoc2woMTk4LCAwJSwgMTAwJSl9OnJvb3QgW2Nkcy10aGVtZV17LS1jbHItZ3JpZC1ndXR0ZXItd2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTstLWNsci1ncmlkLWNvbnRhaW5lci1wYWRkaW5nOmNhbGModmFyKC0tY2xyLWdyaWQt'@; put 'Z3V0dGVyLXdpZHRoKSAqIC41KTstLWNsci1ncmlkLWNvbHVtbi1wYWRkaW5nOmNhbGModmFyKC0tY2xyLWdyaWQtZ3V0dGVyLXdpZHRoKSAqIC41KTstLWNsci1ncmlkLXJvdy1tYXJnaW46Y2FsYyh2YXIoLS1jbHItZ3JpZC1ndXR0ZXItd2lkdGgpICogLS41KX06cm9vdCBbY2RzLXRoZW1l'@; put 'XXstLWNsci1jbG9zZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yKTstLWNsci1jbG9zZS1jb2xvci1ob3Zlcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yLWhvdmVyKTstLWNsci1jbG9zZS1jb2xvci1hY3RpdmU6dmFyKC0t'@; put 'Y2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvci1hY3RpdmUpOy0tY2xyLWJhc2Vmb250LXNpemU6MTI1JTstLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXJhZGl1cy0xMDApOy0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aDp2YXIo'@; put 'LS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0aC0xMDApOy0tY2xyLWdsb2JhbC1hcHAtYmFja2dyb3VuZDp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWFwcC1iYWNrZ3JvdW5kKTstLWNsci1nbG9iYWwtc2VsZWN0aW9uLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rp'@; put 'b24tYmFja2dyb3VuZC1zZWxlY3RlZCk7LS1jbHItZ2xvYmFsLW9uLXNlbGVjdGlvbi1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yLXNlbGVjdGVkKTstLWNsci1nbG9iYWwtaG92ZXItY29sb3I6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWxpbmst'@; put 'Y29sb3ItaG92ZXIpOy0tY2xyLWdsb2JhbC1jb250ZW50LWhlYWRlci1mb250LWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTQwMCk7LS1jbHItZ2xvYmFsLWZvbnQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNTAwKTstLWNsci1nbG9iYWwt'@; put 'c3VjY2Vzcy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLXN1Y2Nlc3MpOy0tY2xyLWdsb2JhbC1lcnJvci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWRhbmdlcil9OnJvb3R7LS1jbHItcG9wb3Zlci1ib3gtc2hhZG93LWNvbG9yOnJnYmEoMTQwLCAxNDAsIDE0MCwgLjI1KX06'@; put 'cm9vdCBbY2RzLXRoZW1lXXstLWNsci1tZXRyb3BvbGlzLWZvbnQtZmFtaWx5Ok1ldHJvcG9saXMsICJBdmVuaXIgTmV4dCIsICJIZWx2ZXRpY2EgTmV1ZSIsIEFyaWFsLCBzYW5zLXNlcmlmOy0tY2xyLWJvZHktZm9udDp2YXIoLS1jbHItbWV0cm9wb2xpcy1mb250LWZhbWlseSk7LS1jbHIt'@; put 'Zm9udDp2YXIoLS1jbHItYm9keS1mb250KTstLWNsci1kaXNwbGF5LWZvbnQ6dmFyKC0tY2xyLW1ldHJvcG9saXMtZm9udC1mYW1pbHkpOy0tY2xyLWZvbnQtd2VpZ2h0LWxpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LWxpZ2h0KTstLWNsci1mb250LXdlaWdo'@; put 'dC1yZWd1bGFyOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LXJlZ3VsYXIpOy0tY2xyLWZvbnQtd2VpZ2h0LXNlbWlib2xkOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LXNlbWlib2xkKTstLWNsci1mb250LXdlaWdodC1ib2xkOnZhcigtLWNk'@; put 'cy1hbGlhcy10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LWJvbGQpOy0tY2xyLWZvbnQtd2VpZ2h0LWV4dHJhYm9sZDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1mb250LXdlaWdodC1leHRyYWJvbGQpOy0tY2xyLWgxLWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTMw'@; put 'MCk7LS1jbHItaDEtZm9udC1zaXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWRpc3BsYXktZm9udC1zaXplKTstLWNsci1oMS1mb250LXdlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1kaXNwbGF5LWZvbnQtd2VpZ2h0KTstLWNsci1oMS1mb250LWZhbWlseTp2YXIoLS1j'@; put 'bHItZGlzcGxheS1mb250KTstLWNsci1oMS1saW5lLWhlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1kaXNwbGF5LWxpbmUtaGVpZ2h0KTstLWNsci1oMS1sZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1kaXNwbGF5LWxldHRlci1zcGFjaW5nKTstLWNs'@; put 'ci1oMi1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci0zMDApOy0tY2xyLWgyLWZvbnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1oZWFkbGluZS1mb250LXNpemUpOy0tY2xyLWgyLWZvbnQtd2VpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWhl'@; put 'YWRsaW5lLWZvbnQtd2VpZ2h0KTstLWNsci1oMi1mb250LWZhbWlseTp2YXIoLS1jbHItZGlzcGxheS1mb250KTstLWNsci1oMi1saW5lLWhlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1oZWFkbGluZS1saW5lLWhlaWdodCk7LS1jbHItaDItbGV0dGVyLXNwYWNpbmc6dmFyKC0t'@; put 'Y2RzLWFsaWFzLXR5cG9ncmFwaHktaGVhZGxpbmUtbGV0dGVyLXNwYWNpbmcpOy0tY2xyLWgzLWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTMwMCk7LS1jbHItaDMtZm9udC1zaXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXRpdGxlLWZvbnQtc2l6ZSk7LS1j'@; put 'bHItaDMtZm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktdGl0bGUtZm9udC13ZWlnaHQpOy0tY2xyLWgzLWZvbnQtZmFtaWx5OnZhcigtLWNsci1kaXNwbGF5LWZvbnQpOy0tY2xyLWgzLWxpbmUtaGVpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXRpdGxlLWxp'@; put 'bmUtaGVpZ2h0KTstLWNsci1oMy1sZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS10aXRsZS1sZXR0ZXItc3BhY2luZyk7LS1jbHItaDQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItMzAwKTstLWNsci1oNC1mb250LXNpemU6dmFyKC0tY2Rz'@; put 'LWFsaWFzLXR5cG9ncmFwaHktc2VjdGlvbi1mb250LXNpemUpOy0tY2xyLWg0LWZvbnQtd2VpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY3Rpb24tZm9udC13ZWlnaHQpOy0tY2xyLWg0LWZvbnQtZmFtaWx5OnZhcigtLWNsci1kaXNwbGF5LWZvbnQpOy0tY2xyLWg0LWxpbmUt'@; put 'aGVpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY3Rpb24tbGluZS1oZWlnaHQpOy0tY2xyLWg0LWxldHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY3Rpb24tbGV0dGVyLXNwYWNpbmcpOy0tY2xyLWg1LWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBv'@; put 'Z3JhcGh5LWNvbG9yLTMwMCk7LS1jbHItaDUtZm9udC1zaXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXN1YnNlY3Rpb24tZm9udC1zaXplKTstLWNsci1oNS1mb250LXdlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zdWJzZWN0aW9uLWZvbnQtd2VpZ2h0KTstLWNsci1o'@; put 'NS1mb250LWZhbWlseTp2YXIoLS1jbHItZGlzcGxheS1mb250KTstLWNsci1oNS1saW5lLWhlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zdWJzZWN0aW9uLWxpbmUtaGVpZ2h0KTstLWNsci1oNS1sZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zdWJz'@; put 'ZWN0aW9uLWxldHRlci1zcGFjaW5nKTstLWNsci1oNi1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci0zMDApOy0tY2xyLWg2LWZvbnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1tZXNzYWdlLWZvbnQtc2l6ZSk7LS1jbHItaDYtZm9udC13ZWlnaHQ6dmFy'@; put 'KC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktbWVzc2FnZS1mb250LXdlaWdodCk7LS1jbHItaDYtZm9udC1mYW1pbHk6dmFyKC0tY2xyLWRpc3BsYXktZm9udCk7LS1jbHItaDYtbGluZS1oZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktbWVzc2FnZS1saW5lLWhlaWdodCk7LS1jbHIt'@; put 'aDYtbGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktbWVzc2FnZS1sZXR0ZXItc3BhY2luZyk7LS1jbHItcDAtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNDUwKTstLWNsci1wMC1mb250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFw'@; put 'aHktYm9keS1mb250LXNpemUpOy0tY2xyLXAwLWZvbnQtd2VpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWJvZHktZm9udC13ZWlnaHQpOy0tY2xyLXAwLWxpbmUtaGVpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWJvZHktbGluZS1oZWlnaHQpOy0tY2xyLXAwLWxldHRl'@; put 'ci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWJvZHktbGV0dGVyLXNwYWNpbmcpOy0tY2xyLXAxLWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTQ1MCk7LS1jbHItcDEtZm9udC1zaXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWJvZHktZm9u'@; put 'dC1zaXplKTstLWNsci1wMS1mb250LXdlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1ib2R5LWZvbnQtd2VpZ2h0KTstLWNsci1wMS1saW5lLWhlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1ib2R5LWxpbmUtaGVpZ2h0KTstLWNsci1wMS1sZXR0ZXItc3BhY2luZzp2'@; put 'YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1ib2R5LWxldHRlci1zcGFjaW5nKTstLWNsci1wMi1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci00NTApOy0tY2xyLXAyLWZvbnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWNvbmRhcnktZm9udC1zaXpl'@; put 'KTstLWNsci1wMi1mb250LXdlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1mb250LXdlaWdodC1tZWRpdW0pOy0tY2xyLXAyLWxpbmUtaGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSk7LS1jbHItcDItbGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFw'@; put 'aHktc2Vjb25kYXJ5LWxldHRlci1zcGFjaW5nKTstLWNsci1wMy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci00NTApOy0tY2xyLXAzLWZvbnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWNvbmRhcnktZm9udC1zaXplKTstLWNsci1wMy1mb250LXdl'@; put 'aWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWNvbmRhcnktZm9udC13ZWlnaHQpOy0tY2xyLXAzLWxpbmUtaGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSk7LS1jbHItcDMtbGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWxl'@; put 'dHRlci1zcGFjaW5nKTstLWNsci1wNC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci00NTApOy0tY2xyLXA0LWZvbnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWNvbmRhcnktZm9udC1zaXplKTstLWNsci1wNC1mb250LXdlaWdodDp2YXIoLS1jZHMt'@; put 'YWxpYXMtdHlwb2dyYXBoeS1mb250LXdlaWdodC1zZW1pYm9sZCk7LS1jbHItcDQtbGluZS1oZWlnaHQ6Y2FsYygyMCAqICgxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpOy0tY2xyLXA0LWxldHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFyeS1s'@; put 'ZXR0ZXItc3BhY2luZyk7LS1jbHItcDUtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNDUwKTstLWNsci1wNS1mb250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWZvbnQtc2l6ZSk7LS1jbHItcDUtZm9udC13ZWlnaHQ6dmFyKC0tY2Rz'@; put 'LWFsaWFzLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWZvbnQtd2VpZ2h0KTstLWNsci1wNS1saW5lLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpOy0tY2xyLXA1LWxldHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFyeS1sZXR0ZXItc3BhY2luZyk7'@; put 'LS1jbHItcDYtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNDUwKTstLWNsci1wNi1mb250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY2FwdGlvbi1mb250LXNpemUpOy0tY2xyLXA2LWZvbnQtd2VpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5'@; put 'LWNhcHRpb24tZm9udC13ZWlnaHQpOy0tY2xyLXA2LWxpbmUtaGVpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNhcHRpb24tbGluZS1oZWlnaHQpOy0tY2xyLXA2LWxldHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNhcHRpb24tbGV0dGVyLXNwYWNpbmcp'@; put 'Oy0tY2xyLXA3LWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTQ1MCk7LS1jbHItcDctZm9udC1zaXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNtYWxsY2FwdGlvbi1mb250LXNpemUpOy0tY2xyLXA3LWZvbnQtd2VpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBv'@; put 'Z3JhcGh5LXNtYWxsY2FwdGlvbi1mb250LXdlaWdodCk7LS1jbHItcDctbGluZS1oZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc21hbGxjYXB0aW9uLWxpbmUtaGVpZ2h0KTstLWNsci1wNy1sZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zbWFsbGNh'@; put 'cHRpb24tbGV0dGVyLXNwYWNpbmcpOy0tY2xyLXA4LWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTQ1MCk7LS1jbHItcDgtZm9udC1zaXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNtYWxsY2FwdGlvbi1mb250LXNpemUpOy0tY2xyLXA4LWZvbnQtd2VpZ2h0'@; put 'OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNtYWxsY2FwdGlvbi1mb250LXdlaWdodCk7LS1jbHItcDgtbGluZS1oZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc21hbGxjYXB0aW9uLWxpbmUtaGVpZ2h0KTstLWNsci1wOC1sZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtYWxp'@; put 'YXMtdHlwb2dyYXBoeS1zbWFsbGNhcHRpb24tbGV0dGVyLXNwYWNpbmcpOy0tY2xyLWxpc3QtaXRlbS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci00MDApfS5jbHItYWxpZ24tYmFzZWxpbmV7dmVydGljYWwtYWxpZ246YmFzZWxpbmUhaW1wb3J0YW50fS5jbHItYWxp'@; put 'Z24tdG9we3ZlcnRpY2FsLWFsaWduOnRvcCFpbXBvcnRhbnR9LmNsci1hbGlnbi1taWRkbGV7dmVydGljYWwtYWxpZ246bWlkZGxlIWltcG9ydGFudH0uY2xyLWFsaWduLWJvdHRvbXt2ZXJ0aWNhbC1hbGlnbjpib3R0b20haW1wb3J0YW50fS5jbHItYWxpZ24tdGV4dC1ib3R0b217dmVydGlj'@; put 'YWwtYWxpZ246dGV4dC1ib3R0b20haW1wb3J0YW50fS5jbHItYWxpZ24tdGV4dC10b3B7dmVydGljYWwtYWxpZ246dGV4dC10b3AhaW1wb3J0YW50fS5jbHItY2xlYXJmaXg6YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OnRhYmxlO2NsZWFyOmJvdGh9LmNsci1kaXNwbGF5LWJsb2Nre2Rpc3Bs'@; put 'YXk6YmxvY2shaW1wb3J0YW50fS5jbHItZGlzcGxheS1pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fS5jbHItZGlzcGxheS1pbmxpbmV7ZGlzcGxheTppbmxpbmUhaW1wb3J0YW50fS5jbHItZmxleC1yb3d7ZmxleC1kaXJlY3Rpb246cm93IWltcG9ydGFudH0u'@; put 'Y2xyLWZsZXgtY29sdW1ue2ZsZXgtZGlyZWN0aW9uOmNvbHVtbiFpbXBvcnRhbnR9LmNsci1mbGV4LXJvdy1yZXZlcnNle2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlIWltcG9ydGFudH0uY2xyLWZsZXgtY29sdW1uLXJldmVyc2V7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2UhaW1w'@; put 'b3J0YW50fS5jbHItZmxleC13cmFwe2ZsZXgtd3JhcDp3cmFwIWltcG9ydGFudH0uY2xyLWZsZXgtbm93cmFwe2ZsZXgtd3JhcDpub3dyYXAhaW1wb3J0YW50fS5jbHItZmxleC13cmFwLXJldmVyc2V7ZmxleC13cmFwOndyYXAtcmV2ZXJzZSFpbXBvcnRhbnR9LmNsci1mbGV4LWZpbGx7Zmxl'@; put 'eDoxIDEgYXV0byFpbXBvcnRhbnR9LmNsci1mbGV4LWdyb3ctMHtmbGV4LWdyb3c6MCFpbXBvcnRhbnR9LmNsci1mbGV4LWdyb3ctMXtmbGV4LWdyb3c6MSFpbXBvcnRhbnR9LmNsci1mbGV4LXNocmluay0we2ZsZXgtc2hyaW5rOjAhaW1wb3J0YW50fS5jbHItZmxleC1zaHJpbmstMXtmbGV4'@; put 'LXNocmluazoxIWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC1zdGFydHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtZW5ke2p1c3RpZnktY29udGVudDpmbGV4LWVuZCFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQt'@; put 'Y2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW4haW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LWFyb3VuZHtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5k'@; put 'IWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLXN0YXJ0e2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMtZW5ke2FsaWduLWl0ZW1zOmZsZXgtZW5kIWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLWNlbnRlcnthbGlnbi1pdGVtczpjZW50ZXIhaW1w'@; put 'b3J0YW50fS5jbHItYWxpZ24taXRlbXMtYmFzZWxpbmV7YWxpZ24taXRlbXM6YmFzZWxpbmUhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMtc3RyZXRjaHthbGlnbi1pdGVtczpzdHJldGNoIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtc3RhcnR7YWxpZ24tY29udGVudDpmbGV4LXN0'@; put 'YXJ0IWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtZW5ke2FsaWduLWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1jZW50ZXJ7YWxpZ24tY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1iZXR3ZWVue2FsaWduLWNvbnRl'@; put 'bnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LWFyb3VuZHthbGlnbi1jb250ZW50OnNwYWNlLWFyb3VuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LXN0cmV0Y2h7YWxpZ24tY29udGVudDpzdHJldGNoIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYt'@; put 'YXV0b3thbGlnbi1zZWxmOmF1dG8haW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1zdGFydHthbGlnbi1zZWxmOmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1lbmR7YWxpZ24tc2VsZjpmbGV4LWVuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLWNlbnRlcnthbGlnbi1z'@; put 'ZWxmOmNlbnRlciFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLWJhc2VsaW5le2FsaWduLXNlbGY6YmFzZWxpbmUhaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1zdHJldGNoe2FsaWduLXNlbGY6c3RyZXRjaCFpbXBvcnRhbnR9QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5jbHItZmxleC1z'@; put 'bS1yb3d7ZmxleC1kaXJlY3Rpb246cm93IWltcG9ydGFudH0uY2xyLWZsZXgtc20tY29sdW1ue2ZsZXgtZGlyZWN0aW9uOmNvbHVtbiFpbXBvcnRhbnR9LmNsci1mbGV4LXNtLXJvdy1yZXZlcnNle2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlIWltcG9ydGFudH0uY2xyLWZsZXgtc20tY29s'@; put 'dW1uLXJldmVyc2V7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2UhaW1wb3J0YW50fS5jbHItZmxleC1zbS13cmFwe2ZsZXgtd3JhcDp3cmFwIWltcG9ydGFudH0uY2xyLWZsZXgtc20tbm93cmFwe2ZsZXgtd3JhcDpub3dyYXAhaW1wb3J0YW50fS5jbHItZmxleC1zbS13cmFwLXJldmVy'@; put 'c2V7ZmxleC13cmFwOndyYXAtcmV2ZXJzZSFpbXBvcnRhbnR9LmNsci1mbGV4LXNtLWZpbGx7ZmxleDoxIDEgYXV0byFpbXBvcnRhbnR9LmNsci1mbGV4LXNtLWdyb3ctMHtmbGV4LWdyb3c6MCFpbXBvcnRhbnR9LmNsci1mbGV4LXNtLWdyb3ctMXtmbGV4LWdyb3c6MSFpbXBvcnRhbnR9LmNs'@; put 'ci1mbGV4LXNtLXNocmluay0we2ZsZXgtc2hyaW5rOjAhaW1wb3J0YW50fS5jbHItZmxleC1zbS1zaHJpbmstMXtmbGV4LXNocmluazoxIWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC1zbS1zdGFydHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1qdXN0'@; put 'aWZ5LWNvbnRlbnQtc20tZW5ke2p1c3RpZnktY29udGVudDpmbGV4LWVuZCFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtc20tY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LXNtLWJldHdlZW57anVzdGlmeS1jb250ZW50'@; put 'OnNwYWNlLWJldHdlZW4haW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LXNtLWFyb3VuZHtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kIWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLXNtLXN0YXJ0e2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItYWxpZ24t'@; put 'aXRlbXMtc20tZW5ke2FsaWduLWl0ZW1zOmZsZXgtZW5kIWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLXNtLWNlbnRlcnthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMtc20tYmFzZWxpbmV7YWxpZ24taXRlbXM6YmFzZWxpbmUhaW1wb3J0YW50fS5jbHIt'@; put 'YWxpZ24taXRlbXMtc20tc3RyZXRjaHthbGlnbi1pdGVtczpzdHJldGNoIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtc20tc3RhcnR7YWxpZ24tY29udGVudDpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtc20tZW5ke2FsaWduLWNvbnRlbnQ6ZmxleC1lbmQh'@; put 'aW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1zbS1jZW50ZXJ7YWxpZ24tY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1zbS1iZXR3ZWVue2FsaWduLWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LXNtLWFyb3Vu'@; put 'ZHthbGlnbi1jb250ZW50OnNwYWNlLWFyb3VuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LXNtLXN0cmV0Y2h7YWxpZ24tY29udGVudDpzdHJldGNoIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtc20tYXV0b3thbGlnbi1zZWxmOmF1dG8haW1wb3J0YW50fS5jbHItYWxpZ24tc2Vs'@; put 'Zi1zbS1zdGFydHthbGlnbi1zZWxmOmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1zbS1lbmR7YWxpZ24tc2VsZjpmbGV4LWVuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLXNtLWNlbnRlcnthbGlnbi1zZWxmOmNlbnRlciFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxm'@; put 'LXNtLWJhc2VsaW5le2FsaWduLXNlbGY6YmFzZWxpbmUhaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1zbS1zdHJldGNoe2FsaWduLXNlbGY6c3RyZXRjaCFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsuY2xyLWZsZXgtbWQtcm93e2ZsZXgtZGlyZWN0aW9uOnJvdyFpbXBv'@; put 'cnRhbnR9LmNsci1mbGV4LW1kLWNvbHVtbntmbGV4LWRpcmVjdGlvbjpjb2x1bW4haW1wb3J0YW50fS5jbHItZmxleC1tZC1yb3ctcmV2ZXJzZXtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZSFpbXBvcnRhbnR9LmNsci1mbGV4LW1kLWNvbHVtbi1yZXZlcnNle2ZsZXgtZGlyZWN0aW9uOmNv'@; put 'bHVtbi1yZXZlcnNlIWltcG9ydGFudH0uY2xyLWZsZXgtbWQtd3JhcHtmbGV4LXdyYXA6d3JhcCFpbXBvcnRhbnR9LmNsci1mbGV4LW1kLW5vd3JhcHtmbGV4LXdyYXA6bm93cmFwIWltcG9ydGFudH0uY2xyLWZsZXgtbWQtd3JhcC1yZXZlcnNle2ZsZXgtd3JhcDp3cmFwLXJldmVyc2UhaW1w'@; put 'b3J0YW50fS5jbHItZmxleC1tZC1maWxse2ZsZXg6MSAxIGF1dG8haW1wb3J0YW50fS5jbHItZmxleC1tZC1ncm93LTB7ZmxleC1ncm93OjAhaW1wb3J0YW50fS5jbHItZmxleC1tZC1ncm93LTF7ZmxleC1ncm93OjEhaW1wb3J0YW50fS5jbHItZmxleC1tZC1zaHJpbmstMHtmbGV4LXNocmlu'@; put 'azowIWltcG9ydGFudH0uY2xyLWZsZXgtbWQtc2hyaW5rLTF7ZmxleC1zaHJpbms6MSFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtbWQtc3RhcnR7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LW1kLWVuZHtqdXN0aWZ5LWNv'@; put 'bnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LW1kLWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC1tZC1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuIWltcG9ydGFudH0uY2xy'@; put 'LWp1c3RpZnktY29udGVudC1tZC1hcm91bmR7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy1tZC1zdGFydHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLW1kLWVuZHthbGlnbi1pdGVtczpmbGV4'@; put 'LWVuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy1tZC1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLW1kLWJhc2VsaW5le2FsaWduLWl0ZW1zOmJhc2VsaW5lIWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLW1kLXN0cmV0Y2h7YWxpZ24t'@; put 'aXRlbXM6c3RyZXRjaCFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LW1kLXN0YXJ0e2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LW1kLWVuZHthbGlnbi1jb250ZW50OmZsZXgtZW5kIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQt'@; put 'bWQtY2VudGVye2FsaWduLWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtbWQtYmV0d2VlbnthbGlnbi1jb250ZW50OnNwYWNlLWJldHdlZW4haW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1tZC1hcm91bmR7YWxpZ24tY29udGVudDpzcGFjZS1hcm91bmQh'@; put 'aW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1tZC1zdHJldGNoe2FsaWduLWNvbnRlbnQ6c3RyZXRjaCFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLW1kLWF1dG97YWxpZ24tc2VsZjphdXRvIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtbWQtc3RhcnR7YWxpZ24tc2VsZjpmbGV4LXN0'@; put 'YXJ0IWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtbWQtZW5ke2FsaWduLXNlbGY6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1tZC1jZW50ZXJ7YWxpZ24tc2VsZjpjZW50ZXIhaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1tZC1iYXNlbGluZXthbGlnbi1zZWxmOmJhc2Vs'@; put 'aW5lIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtbWQtc3RyZXRjaHthbGlnbi1zZWxmOnN0cmV0Y2ghaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7LmNsci1mbGV4LWxnLXJvd3tmbGV4LWRpcmVjdGlvbjpyb3chaW1wb3J0YW50fS5jbHItZmxleC1sZy1jb2x1bW57Zmxl'@; put 'eC1kaXJlY3Rpb246Y29sdW1uIWltcG9ydGFudH0uY2xyLWZsZXgtbGctcm93LXJldmVyc2V7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2UhaW1wb3J0YW50fS5jbHItZmxleC1sZy1jb2x1bW4tcmV2ZXJzZXtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZSFpbXBvcnRhbnR9LmNsci1m'@; put 'bGV4LWxnLXdyYXB7ZmxleC13cmFwOndyYXAhaW1wb3J0YW50fS5jbHItZmxleC1sZy1ub3dyYXB7ZmxleC13cmFwOm5vd3JhcCFpbXBvcnRhbnR9LmNsci1mbGV4LWxnLXdyYXAtcmV2ZXJzZXtmbGV4LXdyYXA6d3JhcC1yZXZlcnNlIWltcG9ydGFudH0uY2xyLWZsZXgtbGctZmlsbHtmbGV4'@; put 'OjEgMSBhdXRvIWltcG9ydGFudH0uY2xyLWZsZXgtbGctZ3Jvdy0we2ZsZXgtZ3JvdzowIWltcG9ydGFudH0uY2xyLWZsZXgtbGctZ3Jvdy0xe2ZsZXgtZ3JvdzoxIWltcG9ydGFudH0uY2xyLWZsZXgtbGctc2hyaW5rLTB7ZmxleC1zaHJpbms6MCFpbXBvcnRhbnR9LmNsci1mbGV4LWxnLXNo'@; put 'cmluay0xe2ZsZXgtc2hyaW5rOjEhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LWxnLXN0YXJ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC1sZy1lbmR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kIWltcG9ydGFudH0uY2xy'@; put 'LWp1c3RpZnktY29udGVudC1sZy1jZW50ZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlciFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtbGctYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtbGctYXJvdW5ke2p1'@; put 'c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMtbGctc3RhcnR7YWxpZ24taXRlbXM6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy1sZy1lbmR7YWxpZ24taXRlbXM6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHItYWxpZ24taXRl'@; put 'bXMtbGctY2VudGVye2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy1sZy1iYXNlbGluZXthbGlnbi1pdGVtczpiYXNlbGluZSFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy1sZy1zdHJldGNoe2FsaWduLWl0ZW1zOnN0cmV0Y2ghaW1wb3J0YW50fS5jbHIt'@; put 'YWxpZ24tY29udGVudC1sZy1zdGFydHthbGlnbi1jb250ZW50OmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1sZy1lbmR7YWxpZ24tY29udGVudDpmbGV4LWVuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LWxnLWNlbnRlcnthbGlnbi1jb250ZW50OmNlbnRl'@; put 'ciFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LWxnLWJldHdlZW57YWxpZ24tY29udGVudDpzcGFjZS1iZXR3ZWVuIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtbGctYXJvdW5ke2FsaWduLWNvbnRlbnQ6c3BhY2UtYXJvdW5kIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQt'@; put 'bGctc3RyZXRjaHthbGlnbi1jb250ZW50OnN0cmV0Y2ghaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1sZy1hdXRve2FsaWduLXNlbGY6YXV0byFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLWxnLXN0YXJ0e2FsaWduLXNlbGY6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxm'@; put 'LWxnLWVuZHthbGlnbi1zZWxmOmZsZXgtZW5kIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtbGctY2VudGVye2FsaWduLXNlbGY6Y2VudGVyIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtbGctYmFzZWxpbmV7YWxpZ24tc2VsZjpiYXNlbGluZSFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxm'@; put 'LWxnLXN0cmV0Y2h7YWxpZ24tc2VsZjpzdHJldGNoIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsuY2xyLWZsZXgteGwtcm93e2ZsZXgtZGlyZWN0aW9uOnJvdyFpbXBvcnRhbnR9LmNsci1mbGV4LXhsLWNvbHVtbntmbGV4LWRpcmVjdGlvbjpjb2x1bW4haW1wb3J0YW50'@; put 'fS5jbHItZmxleC14bC1yb3ctcmV2ZXJzZXtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZSFpbXBvcnRhbnR9LmNsci1mbGV4LXhsLWNvbHVtbi1yZXZlcnNle2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlIWltcG9ydGFudH0uY2xyLWZsZXgteGwtd3JhcHtmbGV4LXdyYXA6d3JhcCFp'@; put 'bXBvcnRhbnR9LmNsci1mbGV4LXhsLW5vd3JhcHtmbGV4LXdyYXA6bm93cmFwIWltcG9ydGFudH0uY2xyLWZsZXgteGwtd3JhcC1yZXZlcnNle2ZsZXgtd3JhcDp3cmFwLXJldmVyc2UhaW1wb3J0YW50fS5jbHItZmxleC14bC1maWxse2ZsZXg6MSAxIGF1dG8haW1wb3J0YW50fS5jbHItZmxl'@; put 'eC14bC1ncm93LTB7ZmxleC1ncm93OjAhaW1wb3J0YW50fS5jbHItZmxleC14bC1ncm93LTF7ZmxleC1ncm93OjEhaW1wb3J0YW50fS5jbHItZmxleC14bC1zaHJpbmstMHtmbGV4LXNocmluazowIWltcG9ydGFudH0uY2xyLWZsZXgteGwtc2hyaW5rLTF7ZmxleC1zaHJpbms6MSFpbXBvcnRh'@; put 'bnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQteGwtc3RhcnR7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LXhsLWVuZHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LXhsLWNlbnRlcntq'@; put 'dXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC14bC1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuIWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC14bC1hcm91bmR7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZCFp'@; put 'bXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy14bC1zdGFydHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLXhsLWVuZHthbGlnbi1pdGVtczpmbGV4LWVuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy14bC1jZW50ZXJ7YWxpZ24taXRlbXM6Y2Vu'@; put 'dGVyIWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLXhsLWJhc2VsaW5le2FsaWduLWl0ZW1zOmJhc2VsaW5lIWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLXhsLXN0cmV0Y2h7YWxpZ24taXRlbXM6c3RyZXRjaCFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LXhsLXN0YXJ0e2FsaWdu'@; put 'LWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LXhsLWVuZHthbGlnbi1jb250ZW50OmZsZXgtZW5kIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQteGwtY2VudGVye2FsaWduLWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRl'@; put 'bnQteGwtYmV0d2VlbnthbGlnbi1jb250ZW50OnNwYWNlLWJldHdlZW4haW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC14bC1hcm91bmR7YWxpZ24tY29udGVudDpzcGFjZS1hcm91bmQhaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC14bC1zdHJldGNoe2FsaWduLWNvbnRlbnQ6c3Ry'@; put 'ZXRjaCFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLXhsLWF1dG97YWxpZ24tc2VsZjphdXRvIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYteGwtc3RhcnR7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYteGwtZW5ke2FsaWduLXNlbGY6ZmxleC1lbmQh'@; put 'aW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi14bC1jZW50ZXJ7YWxpZ24tc2VsZjpjZW50ZXIhaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi14bC1iYXNlbGluZXthbGlnbi1zZWxmOmJhc2VsaW5lIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYteGwtc3RyZXRjaHthbGlnbi1zZWxmOnN0cmV0'@; put 'Y2ghaW1wb3J0YW50fX0uY2xyLWZsZXgteHMtZmlyc3R7b3JkZXI6LTF9LmNsci1mbGV4LXhzLWxhc3R7b3JkZXI6MX0uY2xyLWZsZXgteHMtdW5vcmRlcmVke29yZGVyOjB9LmNsci1mbGV4LWl0ZW1zLXhzLXRvcHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5jbHItZmxleC1pdGVtcy14cy1t'@; put 'aWRkbGV7YWxpZ24taXRlbXM6Y2VudGVyfS5jbHItZmxleC1pdGVtcy14cy1ib3R0b217YWxpZ24taXRlbXM6ZmxleC1lbmR9LmNsci1mbGV4LXhzLXRvcHthbGlnbi1zZWxmOmZsZXgtc3RhcnR9LmNsci1mbGV4LXhzLW1pZGRsZXthbGlnbi1zZWxmOmNlbnRlcn0uY2xyLWZsZXgteHMtYm90'@; put 'dG9te2FsaWduLXNlbGY6ZmxleC1lbmR9LmNsci1mbGV4LWl0ZW1zLXhzLWxlZnR7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LmNsci1mbGV4LWl0ZW1zLXhzLWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5jbHItZmxleC1pdGVtcy14cy1yaWdodHtqdXN0aWZ5LWNvbnRlbnQ6'@; put 'ZmxleC1lbmR9LmNsci1mbGV4LWl0ZW1zLXhzLWFyb3VuZHtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kfS5jbHItZmxleC1pdGVtcy14cy1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsuY2xyLWZsZXgtc20tZmlyc3R7'@; put 'b3JkZXI6LTF9LmNsci1mbGV4LXNtLWxhc3R7b3JkZXI6MX0uY2xyLWZsZXgtc20tdW5vcmRlcmVke29yZGVyOjB9fUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsuY2xyLWZsZXgtaXRlbXMtc20tdG9we2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LmNsci1mbGV4LWl0ZW1zLXNtLW1pZGRsZXth'@; put 'bGlnbi1pdGVtczpjZW50ZXJ9LmNsci1mbGV4LWl0ZW1zLXNtLWJvdHRvbXthbGlnbi1pdGVtczpmbGV4LWVuZH19QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5jbHItZmxleC1zbS10b3B7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fS5jbHItZmxleC1zbS1taWRkbGV7YWxpZ24tc2VsZjpjZW50'@; put 'ZXJ9LmNsci1mbGV4LXNtLWJvdHRvbXthbGlnbi1zZWxmOmZsZXgtZW5kfX1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7LmNsci1mbGV4LWl0ZW1zLXNtLWxlZnR7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LmNsci1mbGV4LWl0ZW1zLXNtLWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2Vu'@; put 'dGVyfS5jbHItZmxleC1pdGVtcy1zbS1yaWdodHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmNsci1mbGV4LWl0ZW1zLXNtLWFyb3VuZHtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kfS5jbHItZmxleC1pdGVtcy1zbS1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVu'@; put 'fX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmNsci1mbGV4LW1kLWZpcnN0e29yZGVyOi0xfS5jbHItZmxleC1tZC1sYXN0e29yZGVyOjF9LmNsci1mbGV4LW1kLXVub3JkZXJlZHtvcmRlcjowfX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmNsci1mbGV4LWl0ZW1zLW1kLXRvcHthbGln'@; put 'bi1pdGVtczpmbGV4LXN0YXJ0fS5jbHItZmxleC1pdGVtcy1tZC1taWRkbGV7YWxpZ24taXRlbXM6Y2VudGVyfS5jbHItZmxleC1pdGVtcy1tZC1ib3R0b217YWxpZ24taXRlbXM6ZmxleC1lbmR9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsuY2xyLWZsZXgtbWQtdG9we2FsaWduLXNlbGY6'@; put 'ZmxleC1zdGFydH0uY2xyLWZsZXgtbWQtbWlkZGxle2FsaWduLXNlbGY6Y2VudGVyfS5jbHItZmxleC1tZC1ib3R0b217YWxpZ24tc2VsZjpmbGV4LWVuZH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5jbHItZmxleC1pdGVtcy1tZC1sZWZ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0'@; put 'fS5jbHItZmxleC1pdGVtcy1tZC1jZW50ZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uY2xyLWZsZXgtaXRlbXMtbWQtcmlnaHR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5jbHItZmxleC1pdGVtcy1tZC1hcm91bmR7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZH0uY2xyLWZsZXgt'@; put 'aXRlbXMtbWQtYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpey5jbHItZmxleC1sZy1maXJzdHtvcmRlcjotMX0uY2xyLWZsZXgtbGctbGFzdHtvcmRlcjoxfS5jbHItZmxleC1sZy11bm9yZGVyZWR7b3JkZXI6MH19QG1lZGlh'@; put 'IChtaW4td2lkdGg6OTkycHgpey5jbHItZmxleC1pdGVtcy1sZy10b3B7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0uY2xyLWZsZXgtaXRlbXMtbGctbWlkZGxle2FsaWduLWl0ZW1zOmNlbnRlcn0uY2xyLWZsZXgtaXRlbXMtbGctYm90dG9te2FsaWduLWl0ZW1zOmZsZXgtZW5kfX1AbWVkaWEg'@; put 'KG1pbi13aWR0aDo5OTJweCl7LmNsci1mbGV4LWxnLXRvcHthbGlnbi1zZWxmOmZsZXgtc3RhcnR9LmNsci1mbGV4LWxnLW1pZGRsZXthbGlnbi1zZWxmOmNlbnRlcn0uY2xyLWZsZXgtbGctYm90dG9te2FsaWduLXNlbGY6ZmxleC1lbmR9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsuY2xy'@; put 'LWZsZXgtaXRlbXMtbGctbGVmdHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0uY2xyLWZsZXgtaXRlbXMtbGctY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmNsci1mbGV4LWl0ZW1zLWxnLXJpZ2h0e2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uY2xyLWZsZXgtaXRlbXMtbGct'@; put 'YXJvdW5ke2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmR9LmNsci1mbGV4LWl0ZW1zLWxnLWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7LmNsci1mbGV4LXhsLWZpcnN0e29yZGVyOi0xfS5jbHItZmxleC14bC1sYXN0'@; put 'e29yZGVyOjF9LmNsci1mbGV4LXhsLXVub3JkZXJlZHtvcmRlcjowfX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5jbHItZmxleC1pdGVtcy14bC10b3B7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0uY2xyLWZsZXgtaXRlbXMteGwtbWlkZGxle2FsaWduLWl0ZW1zOmNlbnRlcn0uY2xyLWZs'@; put 'ZXgtaXRlbXMteGwtYm90dG9te2FsaWduLWl0ZW1zOmZsZXgtZW5kfX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5jbHItZmxleC14bC10b3B7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fS5jbHItZmxleC14bC1taWRkbGV7YWxpZ24tc2VsZjpjZW50ZXJ9LmNsci1mbGV4LXhsLWJvdHRvbXth'@; put 'bGlnbi1zZWxmOmZsZXgtZW5kfX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5jbHItZmxleC1pdGVtcy14bC1sZWZ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5jbHItZmxleC1pdGVtcy14bC1jZW50ZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uY2xyLWZsZXgtaXRlbXMteGwt'@; put 'cmlnaHR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5jbHItZmxleC1pdGVtcy14bC1hcm91bmR7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZH0uY2xyLWZsZXgtaXRlbXMteGwtYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn19LmNsci1mbG9hdC14cy1sZWZ0e2Zs'@; put 'b2F0OmxlZnQhaW1wb3J0YW50fS5jbHItZmxvYXQteHMtcmlnaHR7ZmxvYXQ6cmlnaHQhaW1wb3J0YW50fS5jbHItZmxvYXQteHMtbm9uZXtmbG9hdDpub25lIWltcG9ydGFudH1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7LmNsci1mbG9hdC1zbS1sZWZ0e2Zsb2F0OmxlZnQhaW1wb3J0YW50'@; put 'fS5jbHItZmxvYXQtc20tcmlnaHR7ZmxvYXQ6cmlnaHQhaW1wb3J0YW50fS5jbHItZmxvYXQtc20tbm9uZXtmbG9hdDpub25lIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5jbHItZmxvYXQtbWQtbGVmdHtmbG9hdDpsZWZ0IWltcG9ydGFudH0uY2xyLWZsb2F0LW1kLXJp'@; put 'Z2h0e2Zsb2F0OnJpZ2h0IWltcG9ydGFudH0uY2xyLWZsb2F0LW1kLW5vbmV7ZmxvYXQ6bm9uZSFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsuY2xyLWZsb2F0LWxnLWxlZnR7ZmxvYXQ6bGVmdCFpbXBvcnRhbnR9LmNsci1mbG9hdC1sZy1yaWdodHtmbG9hdDpyaWdodCFp'@; put 'bXBvcnRhbnR9LmNsci1mbG9hdC1sZy1ub25le2Zsb2F0Om5vbmUhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5jbHItZmxvYXQteGwtbGVmdHtmbG9hdDpsZWZ0IWltcG9ydGFudH0uY2xyLWZsb2F0LXhsLXJpZ2h0e2Zsb2F0OnJpZ2h0IWltcG9ydGFudH0uY2xyLWZs'@; put 'b2F0LXhsLW5vbmV7ZmxvYXQ6bm9uZSFpbXBvcnRhbnR9fS5jbHItaW52aXNpYmxle3Zpc2liaWxpdHk6aGlkZGVuIWltcG9ydGFudH0uY2xyLWhpZGRlbi14cy11cHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fUBtZWRpYSAobWF4LXdpZHRoOjU3NS45OHB4KXsuY2xyLWhpZGRlbi14cy1kb3du'@; put 'e2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsuY2xyLWhpZGRlbi1zbS11cHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fX1AbWVkaWEgKG1heC13aWR0aDo3NjcuOThweCl7LmNsci1oaWRkZW4tc20tZG93bntkaXNwbGF5Om5vbmUhaW1wb3J0YW50fX1A'@; put 'bWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmNsci1oaWRkZW4tbWQtdXB7ZGlzcGxheTpub25lIWltcG9ydGFudH19QG1lZGlhIChtYXgtd2lkdGg6OTkxLjk4cHgpey5jbHItaGlkZGVuLW1kLWRvd257ZGlzcGxheTpub25lIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpey5j'@; put 'bHItaGlkZGVuLWxnLXVwe2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9fUBtZWRpYSAobWF4LXdpZHRoOjExOTkuOThweCl7LmNsci1oaWRkZW4tbGctZG93bntkaXNwbGF5Om5vbmUhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5jbHItaGlkZGVuLXhsLXVwe2Rpc3BsYXk6'@; put 'bm9uZSFpbXBvcnRhbnR9fS5jbHItaGlkZGVuLXhsLWRvd24sLmNsci12aXNpYmxlLXByaW50LWJsb2Nre2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9QG1lZGlhIHByaW50ey5jbHItdmlzaWJsZS1wcmludC1ibG9ja3tkaXNwbGF5OmJsb2NrIWltcG9ydGFudH19LmNsci12aXNpYmxlLXByaW50'@; put 'LWlubGluZXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fUBtZWRpYSBwcmludHsuY2xyLXZpc2libGUtcHJpbnQtaW5saW5le2Rpc3BsYXk6aW5saW5lIWltcG9ydGFudH19LmNsci12aXNpYmxlLXByaW50LWlubGluZS1ibG9ja3tkaXNwbGF5Om5vbmUhaW1wb3J0YW50fUBtZWRpYSBwcmludHsu'@; put 'Y2xyLXZpc2libGUtcHJpbnQtaW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH19QG1lZGlhIHByaW50ey5jbHItaGlkZGVuLXByaW50e2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9fS5jbHItY29udGFpbmVye3dpZHRoOjEwMCU7cGFkZGluZy1yaWdodDp2YXIoLS1j'@; put 'bHItZ3JpZC1jb250YWluZXItcGFkZGluZyk7cGFkZGluZy1sZWZ0OnZhcigtLWNsci1ncmlkLWNvbnRhaW5lci1wYWRkaW5nKTttYXJnaW4tcmlnaHQ6YXV0bzttYXJnaW4tbGVmdDphdXRvfS5jbHItcm93e2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDttYXJnaW4tcmlnaHQ6dmFyKC0t'@; put 'Y2xyLWdyaWQtcm93LW1hcmdpbik7bWFyZ2luLWxlZnQ6dmFyKC0tY2xyLWdyaWQtcm93LW1hcmdpbil9LmNsci1uby1ndXR0ZXJze21hcmdpbi1yaWdodDowO21hcmdpbi1sZWZ0OjB9LmNsci1uby1ndXR0ZXJzPi5jbHItY29sLC5jbHItbm8tZ3V0dGVycz5bY2xhc3MqPWNsci1jb2wtXXtw'@; put 'YWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1sZWZ0OjB9LmNsci1jb2wteGwsLmNsci1jb2wteGwtYXV0bywuY2xyLWNvbC14bC0xMiwuY2xyLWNvbC14bC0xMSwuY2xyLWNvbC14bC0xMCwuY2xyLWNvbC14bC05LC5jbHItY29sLXhsLTgsLmNsci1jb2wteGwtNywuY2xyLWNvbC14bC02LC5jbHIt'@; put 'Y29sLXhsLTUsLmNsci1jb2wteGwtNCwuY2xyLWNvbC14bC0zLC5jbHItY29sLXhsLTIsLmNsci1jb2wteGwtMSwuY2xyLWNvbC1sZywuY2xyLWNvbC1sZy1hdXRvLC5jbHItY29sLWxnLTEyLC5jbHItY29sLWxnLTExLC5jbHItY29sLWxnLTEwLC5jbHItY29sLWxnLTksLmNsci1jb2wtbGct'@; put 'OCwuY2xyLWNvbC1sZy03LC5jbHItY29sLWxnLTYsLmNsci1jb2wtbGctNSwuY2xyLWNvbC1sZy00LC5jbHItY29sLWxnLTMsLmNsci1jb2wtbGctMiwuY2xyLWNvbC1sZy0xLC5jbHItY29sLW1kLC5jbHItY29sLW1kLWF1dG8sLmNsci1jb2wtbWQtMTIsLmNsci1jb2wtbWQtMTEsLmNsci1j'@; put 'b2wtbWQtMTAsLmNsci1jb2wtbWQtOSwuY2xyLWNvbC1tZC04LC5jbHItY29sLW1kLTcsLmNsci1jb2wtbWQtNiwuY2xyLWNvbC1tZC01LC5jbHItY29sLW1kLTQsLmNsci1jb2wtbWQtMywuY2xyLWNvbC1tZC0yLC5jbHItY29sLW1kLTEsLmNsci1jb2wtc20sLmNsci1jb2wtc20tYXV0bywu'@; put 'Y2xyLWNvbC1zbS0xMiwuY2xyLWNvbC1zbS0xMSwuY2xyLWNvbC1zbS0xMCwuY2xyLWNvbC1zbS05LC5jbHItY29sLXNtLTgsLmNsci1jb2wtc20tNywuY2xyLWNvbC1zbS02LC5jbHItY29sLXNtLTUsLmNsci1jb2wtc20tNCwuY2xyLWNvbC1zbS0zLC5jbHItY29sLXNtLTIsLmNsci1jb2wt'@; put 'c20tMSwuY2xyLWNvbCwuY2xyLWNvbC1hdXRvLC5jbHItY29sLTEyLC5jbHItY29sLTExLC5jbHItY29sLTEwLC5jbHItY29sLTksLmNsci1jb2wtOCwuY2xyLWNvbC03LC5jbHItY29sLTYsLmNsci1jb2wtNSwuY2xyLWNvbC00LC5jbHItY29sLTMsLmNsci1jb2wtMiwuY2xyLWNvbC0xe3dp'@; put 'ZHRoOjEwMCU7bWluLWhlaWdodDouMDVyZW07cGFkZGluZy1yaWdodDp2YXIoLS1jbHItZ3JpZC1jb2x1bW4tcGFkZGluZyk7cGFkZGluZy1sZWZ0OnZhcigtLWNsci1ncmlkLWNvbHVtbi1wYWRkaW5nKX0uY2xyLWNvbHtmbGV4LWJhc2lzOjA7ZmxleC1ncm93OjE7bWF4LXdpZHRoOjEwMCV9'@; put 'LmNsci1jb2wtYXV0b3tmbGV4OjAgMCBhdXRvO3dpZHRoOmF1dG87bWF4LXdpZHRoOm5vbmV9LmNsci1jb2wtMXtmbGV4OjAgMCA4LjMzMzMzMzMzMzMlO21heC13aWR0aDo4LjMzMzMzMzMzMzMlfS5jbHItY29sLTJ7ZmxleDowIDAgMTYuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjE2LjY2NjY2'@; put 'NjY2NjclfS5jbHItY29sLTN7ZmxleDowIDAgMjUlO21heC13aWR0aDoyNSV9LmNsci1jb2wtNHtmbGV4OjAgMCAzMy4zMzMzMzMzMzMzJTttYXgtd2lkdGg6MzMuMzMzMzMzMzMzMyV9LmNsci1jb2wtNXtmbGV4OjAgMCA0MS42NjY2NjY2NjY3JTttYXgtd2lkdGg6NDEuNjY2NjY2NjY2NyV9'@; put 'LmNsci1jb2wtNntmbGV4OjAgMCA1MCU7bWF4LXdpZHRoOjUwJX0uY2xyLWNvbC03e2ZsZXg6MCAwIDU4LjMzMzMzMzMzMzMlO21heC13aWR0aDo1OC4zMzMzMzMzMzMzJX0uY2xyLWNvbC04e2ZsZXg6MCAwIDY2LjY2NjY2NjY2NjclO21heC13aWR0aDo2Ni42NjY2NjY2NjY3JX0uY2xyLWNv'@; put 'bC05e2ZsZXg6MCAwIDc1JTttYXgtd2lkdGg6NzUlfS5jbHItY29sLTEwe2ZsZXg6MCAwIDgzLjMzMzMzMzMzMzMlO21heC13aWR0aDo4My4zMzMzMzMzMzMzJX0uY2xyLWNvbC0xMXtmbGV4OjAgMCA5MS42NjY2NjY2NjY3JTttYXgtd2lkdGg6OTEuNjY2NjY2NjY2NyV9LmNsci1jb2wtMTJ7'@; put 'ZmxleDowIDAgMTAwJTttYXgtd2lkdGg6MTAwJX0uY2xyLW9yZGVyLWZpcnN0e29yZGVyOi0xfS5jbHItb3JkZXItbGFzdHtvcmRlcjoxM30uY2xyLW9yZGVyLTB7b3JkZXI6MH0uY2xyLW9yZGVyLTF7b3JkZXI6MX0uY2xyLW9yZGVyLTJ7b3JkZXI6Mn0uY2xyLW9yZGVyLTN7b3JkZXI6M30u'@; put 'Y2xyLW9yZGVyLTR7b3JkZXI6NH0uY2xyLW9yZGVyLTV7b3JkZXI6NX0uY2xyLW9yZGVyLTZ7b3JkZXI6Nn0uY2xyLW9yZGVyLTd7b3JkZXI6N30uY2xyLW9yZGVyLTh7b3JkZXI6OH0uY2xyLW9yZGVyLTl7b3JkZXI6OX0uY2xyLW9yZGVyLTEwe29yZGVyOjEwfS5jbHItb3JkZXItMTF7b3Jk'@; put 'ZXI6MTF9LmNsci1vcmRlci0xMntvcmRlcjoxMn0uY2xyLW9mZnNldC0xe21hcmdpbi1sZWZ0OjguMzMzMzMzMzMzMyV9LmNsci1vZmZzZXQtMnttYXJnaW4tbGVmdDoxNi42NjY2NjY2NjY3JX0uY2xyLW9mZnNldC0ze21hcmdpbi1sZWZ0OjI1JX0uY2xyLW9mZnNldC00e21hcmdpbi1sZWZ0'@; put 'OjMzLjMzMzMzMzMzMzMlfS5jbHItb2Zmc2V0LTV7bWFyZ2luLWxlZnQ6NDEuNjY2NjY2NjY2NyV9LmNsci1vZmZzZXQtNnttYXJnaW4tbGVmdDo1MCV9LmNsci1vZmZzZXQtN3ttYXJnaW4tbGVmdDo1OC4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC04e21hcmdpbi1sZWZ0OjY2LjY2NjY2NjY2'@; put 'NjclfS5jbHItb2Zmc2V0LTl7bWFyZ2luLWxlZnQ6NzUlfS5jbHItb2Zmc2V0LTEwe21hcmdpbi1sZWZ0OjgzLjMzMzMzMzMzMzMlfS5jbHItb2Zmc2V0LTExe21hcmdpbi1sZWZ0OjkxLjY2NjY2NjY2NjclfUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsuY2xyLWNvbC1zbXtmbGV4LWJhc2lz'@; put 'OjA7ZmxleC1ncm93OjE7bWF4LXdpZHRoOjEwMCV9LmNsci1jb2wtc20tYXV0b3tmbGV4OjAgMCBhdXRvO3dpZHRoOmF1dG87bWF4LXdpZHRoOm5vbmV9LmNsci1jb2wtc20tMXtmbGV4OjAgMCA4LjMzMzMzMzMzMzMlO21heC13aWR0aDo4LjMzMzMzMzMzMzMlfS5jbHItY29sLXNtLTJ7Zmxl'@; put 'eDowIDAgMTYuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjE2LjY2NjY2NjY2NjclfS5jbHItY29sLXNtLTN7ZmxleDowIDAgMjUlO21heC13aWR0aDoyNSV9LmNsci1jb2wtc20tNHtmbGV4OjAgMCAzMy4zMzMzMzMzMzMzJTttYXgtd2lkdGg6MzMuMzMzMzMzMzMzMyV9LmNsci1jb2wtc20tNXtm'@; put 'bGV4OjAgMCA0MS42NjY2NjY2NjY3JTttYXgtd2lkdGg6NDEuNjY2NjY2NjY2NyV9LmNsci1jb2wtc20tNntmbGV4OjAgMCA1MCU7bWF4LXdpZHRoOjUwJX0uY2xyLWNvbC1zbS03e2ZsZXg6MCAwIDU4LjMzMzMzMzMzMzMlO21heC13aWR0aDo1OC4zMzMzMzMzMzMzJX0uY2xyLWNvbC1zbS04'@; put 'e2ZsZXg6MCAwIDY2LjY2NjY2NjY2NjclO21heC13aWR0aDo2Ni42NjY2NjY2NjY3JX0uY2xyLWNvbC1zbS05e2ZsZXg6MCAwIDc1JTttYXgtd2lkdGg6NzUlfS5jbHItY29sLXNtLTEwe2ZsZXg6MCAwIDgzLjMzMzMzMzMzMzMlO21heC13aWR0aDo4My4zMzMzMzMzMzMzJX0uY2xyLWNvbC1z'@; put 'bS0xMXtmbGV4OjAgMCA5MS42NjY2NjY2NjY3JTttYXgtd2lkdGg6OTEuNjY2NjY2NjY2NyV9LmNsci1jb2wtc20tMTJ7ZmxleDowIDAgMTAwJTttYXgtd2lkdGg6MTAwJX0uY2xyLW9yZGVyLXNtLWZpcnN0e29yZGVyOi0xfS5jbHItb3JkZXItc20tbGFzdHtvcmRlcjoxM30uY2xyLW9yZGVy'@; put 'LXNtLTB7b3JkZXI6MH0uY2xyLW9yZGVyLXNtLTF7b3JkZXI6MX0uY2xyLW9yZGVyLXNtLTJ7b3JkZXI6Mn0uY2xyLW9yZGVyLXNtLTN7b3JkZXI6M30uY2xyLW9yZGVyLXNtLTR7b3JkZXI6NH0uY2xyLW9yZGVyLXNtLTV7b3JkZXI6NX0uY2xyLW9yZGVyLXNtLTZ7b3JkZXI6Nn0uY2xyLW9y'@; put 'ZGVyLXNtLTd7b3JkZXI6N30uY2xyLW9yZGVyLXNtLTh7b3JkZXI6OH0uY2xyLW9yZGVyLXNtLTl7b3JkZXI6OX0uY2xyLW9yZGVyLXNtLTEwe29yZGVyOjEwfS5jbHItb3JkZXItc20tMTF7b3JkZXI6MTF9LmNsci1vcmRlci1zbS0xMntvcmRlcjoxMn0uY2xyLW9mZnNldC1zbS0we21hcmdp'@; put 'bi1sZWZ0OjB9LmNsci1vZmZzZXQtc20tMXttYXJnaW4tbGVmdDo4LjMzMzMzMzMzMzMlfS5jbHItb2Zmc2V0LXNtLTJ7bWFyZ2luLWxlZnQ6MTYuNjY2NjY2NjY2NyV9LmNsci1vZmZzZXQtc20tM3ttYXJnaW4tbGVmdDoyNSV9LmNsci1vZmZzZXQtc20tNHttYXJnaW4tbGVmdDozMy4zMzMz'@; put 'MzMzMzMzJX0uY2xyLW9mZnNldC1zbS01e21hcmdpbi1sZWZ0OjQxLjY2NjY2NjY2NjclfS5jbHItb2Zmc2V0LXNtLTZ7bWFyZ2luLWxlZnQ6NTAlfS5jbHItb2Zmc2V0LXNtLTd7bWFyZ2luLWxlZnQ6NTguMzMzMzMzMzMzMyV9LmNsci1vZmZzZXQtc20tOHttYXJnaW4tbGVmdDo2Ni42NjY2'@; put 'NjY2NjY3JX0uY2xyLW9mZnNldC1zbS05e21hcmdpbi1sZWZ0Ojc1JX0uY2xyLW9mZnNldC1zbS0xMHttYXJnaW4tbGVmdDo4My4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC1zbS0xMXttYXJnaW4tbGVmdDo5MS42NjY2NjY2NjY3JX19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5jbHItY29s'@; put 'LW1ke2ZsZXgtYmFzaXM6MDtmbGV4LWdyb3c6MTttYXgtd2lkdGg6MTAwJX0uY2xyLWNvbC1tZC1hdXRve2ZsZXg6MCAwIGF1dG87d2lkdGg6YXV0bzttYXgtd2lkdGg6bm9uZX0uY2xyLWNvbC1tZC0xe2ZsZXg6MCAwIDguMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjguMzMzMzMzMzMzMyV9LmNs'@; put 'ci1jb2wtbWQtMntmbGV4OjAgMCAxNi42NjY2NjY2NjY3JTttYXgtd2lkdGg6MTYuNjY2NjY2NjY2NyV9LmNsci1jb2wtbWQtM3tmbGV4OjAgMCAyNSU7bWF4LXdpZHRoOjI1JX0uY2xyLWNvbC1tZC00e2ZsZXg6MCAwIDMzLjMzMzMzMzMzMzMlO21heC13aWR0aDozMy4zMzMzMzMzMzMzJX0u'@; put 'Y2xyLWNvbC1tZC01e2ZsZXg6MCAwIDQxLjY2NjY2NjY2NjclO21heC13aWR0aDo0MS42NjY2NjY2NjY3JX0uY2xyLWNvbC1tZC02e2ZsZXg6MCAwIDUwJTttYXgtd2lkdGg6NTAlfS5jbHItY29sLW1kLTd7ZmxleDowIDAgNTguMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjU4LjMzMzMzMzMzMzMl'@; put 'fS5jbHItY29sLW1kLTh7ZmxleDowIDAgNjYuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjY2LjY2NjY2NjY2NjclfS5jbHItY29sLW1kLTl7ZmxleDowIDAgNzUlO21heC13aWR0aDo3NSV9LmNsci1jb2wtbWQtMTB7ZmxleDowIDAgODMuMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjgzLjMzMzMzMzMz'@; put 'MzMlfS5jbHItY29sLW1kLTExe2ZsZXg6MCAwIDkxLjY2NjY2NjY2NjclO21heC13aWR0aDo5MS42NjY2NjY2NjY3JX0uY2xyLWNvbC1tZC0xMntmbGV4OjAgMCAxMDAlO21heC13aWR0aDoxMDAlfS5jbHItb3JkZXItbWQtZmlyc3R7b3JkZXI6LTF9LmNsci1vcmRlci1tZC1sYXN0e29yZGVy'@; put 'OjEzfS5jbHItb3JkZXItbWQtMHtvcmRlcjowfS5jbHItb3JkZXItbWQtMXtvcmRlcjoxfS5jbHItb3JkZXItbWQtMntvcmRlcjoyfS5jbHItb3JkZXItbWQtM3tvcmRlcjozfS5jbHItb3JkZXItbWQtNHtvcmRlcjo0fS5jbHItb3JkZXItbWQtNXtvcmRlcjo1fS5jbHItb3JkZXItbWQtNntv'@; put 'cmRlcjo2fS5jbHItb3JkZXItbWQtN3tvcmRlcjo3fS5jbHItb3JkZXItbWQtOHtvcmRlcjo4fS5jbHItb3JkZXItbWQtOXtvcmRlcjo5fS5jbHItb3JkZXItbWQtMTB7b3JkZXI6MTB9LmNsci1vcmRlci1tZC0xMXtvcmRlcjoxMX0uY2xyLW9yZGVyLW1kLTEye29yZGVyOjEyfS5jbHItb2Zm'@; put 'c2V0LW1kLTB7bWFyZ2luLWxlZnQ6MH0uY2xyLW9mZnNldC1tZC0xe21hcmdpbi1sZWZ0OjguMzMzMzMzMzMzMyV9LmNsci1vZmZzZXQtbWQtMnttYXJnaW4tbGVmdDoxNi42NjY2NjY2NjY3JX0uY2xyLW9mZnNldC1tZC0ze21hcmdpbi1sZWZ0OjI1JX0uY2xyLW9mZnNldC1tZC00e21hcmdp'@; put 'bi1sZWZ0OjMzLjMzMzMzMzMzMzMlfS5jbHItb2Zmc2V0LW1kLTV7bWFyZ2luLWxlZnQ6NDEuNjY2NjY2NjY2NyV9LmNsci1vZmZzZXQtbWQtNnttYXJnaW4tbGVmdDo1MCV9LmNsci1vZmZzZXQtbWQtN3ttYXJnaW4tbGVmdDo1OC4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC1tZC04e21hcmdp'@; put 'bi1sZWZ0OjY2LjY2NjY2NjY2NjclfS5jbHItb2Zmc2V0LW1kLTl7bWFyZ2luLWxlZnQ6NzUlfS5jbHItb2Zmc2V0LW1kLTEwe21hcmdpbi1sZWZ0OjgzLjMzMzMzMzMzMzMlfS5jbHItb2Zmc2V0LW1kLTExe21hcmdpbi1sZWZ0OjkxLjY2NjY2NjY2NjclfX1AbWVkaWEgKG1pbi13aWR0aDo5'@; put 'OTJweCl7LmNsci1jb2wtbGd7ZmxleC1iYXNpczowO2ZsZXgtZ3JvdzoxO21heC13aWR0aDoxMDAlfS5jbHItY29sLWxnLWF1dG97ZmxleDowIDAgYXV0bzt3aWR0aDphdXRvO21heC13aWR0aDpub25lfS5jbHItY29sLWxnLTF7ZmxleDowIDAgOC4zMzMzMzMzMzMzJTttYXgtd2lkdGg6OC4z'@; put 'MzMzMzMzMzMzJX0uY2xyLWNvbC1sZy0ye2ZsZXg6MCAwIDE2LjY2NjY2NjY2NjclO21heC13aWR0aDoxNi42NjY2NjY2NjY3JX0uY2xyLWNvbC1sZy0ze2ZsZXg6MCAwIDI1JTttYXgtd2lkdGg6MjUlfS5jbHItY29sLWxnLTR7ZmxleDowIDAgMzMuMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjMz'@; put 'LjMzMzMzMzMzMzMlfS5jbHItY29sLWxnLTV7ZmxleDowIDAgNDEuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjQxLjY2NjY2NjY2NjclfS5jbHItY29sLWxnLTZ7ZmxleDowIDAgNTAlO21heC13aWR0aDo1MCV9LmNsci1jb2wtbGctN3tmbGV4OjAgMCA1OC4zMzMzMzMzMzMzJTttYXgtd2lkdGg6'@; put 'NTguMzMzMzMzMzMzMyV9LmNsci1jb2wtbGctOHtmbGV4OjAgMCA2Ni42NjY2NjY2NjY3JTttYXgtd2lkdGg6NjYuNjY2NjY2NjY2NyV9LmNsci1jb2wtbGctOXtmbGV4OjAgMCA3NSU7bWF4LXdpZHRoOjc1JX0uY2xyLWNvbC1sZy0xMHtmbGV4OjAgMCA4My4zMzMzMzMzMzMzJTttYXgtd2lk'@; put 'dGg6ODMuMzMzMzMzMzMzMyV9LmNsci1jb2wtbGctMTF7ZmxleDowIDAgOTEuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjkxLjY2NjY2NjY2NjclfS5jbHItY29sLWxnLTEye2ZsZXg6MCAwIDEwMCU7bWF4LXdpZHRoOjEwMCV9LmNsci1vcmRlci1sZy1maXJzdHtvcmRlcjotMX0uY2xyLW9yZGVy'@; put 'LWxnLWxhc3R7b3JkZXI6MTN9LmNsci1vcmRlci1sZy0we29yZGVyOjB9LmNsci1vcmRlci1sZy0xe29yZGVyOjF9LmNsci1vcmRlci1sZy0ye29yZGVyOjJ9LmNsci1vcmRlci1sZy0ze29yZGVyOjN9LmNsci1vcmRlci1sZy00e29yZGVyOjR9LmNsci1vcmRlci1sZy01e29yZGVyOjV9LmNs'@; put 'ci1vcmRlci1sZy02e29yZGVyOjZ9LmNsci1vcmRlci1sZy03e29yZGVyOjd9LmNsci1vcmRlci1sZy04e29yZGVyOjh9LmNsci1vcmRlci1sZy05e29yZGVyOjl9LmNsci1vcmRlci1sZy0xMHtvcmRlcjoxMH0uY2xyLW9yZGVyLWxnLTExe29yZGVyOjExfS5jbHItb3JkZXItbGctMTJ7b3Jk'@; put 'ZXI6MTJ9LmNsci1vZmZzZXQtbGctMHttYXJnaW4tbGVmdDowfS5jbHItb2Zmc2V0LWxnLTF7bWFyZ2luLWxlZnQ6OC4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC1sZy0ye21hcmdpbi1sZWZ0OjE2LjY2NjY2NjY2NjclfS5jbHItb2Zmc2V0LWxnLTN7bWFyZ2luLWxlZnQ6MjUlfS5jbHItb2Zm'@; put 'c2V0LWxnLTR7bWFyZ2luLWxlZnQ6MzMuMzMzMzMzMzMzMyV9LmNsci1vZmZzZXQtbGctNXttYXJnaW4tbGVmdDo0MS42NjY2NjY2NjY3JX0uY2xyLW9mZnNldC1sZy02e21hcmdpbi1sZWZ0OjUwJX0uY2xyLW9mZnNldC1sZy03e21hcmdpbi1sZWZ0OjU4LjMzMzMzMzMzMzMlfS5jbHItb2Zm'@; put 'c2V0LWxnLTh7bWFyZ2luLWxlZnQ6NjYuNjY2NjY2NjY2NyV9LmNsci1vZmZzZXQtbGctOXttYXJnaW4tbGVmdDo3NSV9LmNsci1vZmZzZXQtbGctMTB7bWFyZ2luLWxlZnQ6ODMuMzMzMzMzMzMzMyV9LmNsci1vZmZzZXQtbGctMTF7bWFyZ2luLWxlZnQ6OTEuNjY2NjY2NjY2NyV9fUBtZWRp'@; put 'YSAobWluLXdpZHRoOjEyMDBweCl7LmNsci1jb2wteGx7ZmxleC1iYXNpczowO2ZsZXgtZ3JvdzoxO21heC13aWR0aDoxMDAlfS5jbHItY29sLXhsLWF1dG97ZmxleDowIDAgYXV0bzt3aWR0aDphdXRvO21heC13aWR0aDpub25lfS5jbHItY29sLXhsLTF7ZmxleDowIDAgOC4zMzMzMzMzMzMz'@; put 'JTttYXgtd2lkdGg6OC4zMzMzMzMzMzMzJX0uY2xyLWNvbC14bC0ye2ZsZXg6MCAwIDE2LjY2NjY2NjY2NjclO21heC13aWR0aDoxNi42NjY2NjY2NjY3JX0uY2xyLWNvbC14bC0ze2ZsZXg6MCAwIDI1JTttYXgtd2lkdGg6MjUlfS5jbHItY29sLXhsLTR7ZmxleDowIDAgMzMuMzMzMzMzMzMz'@; put 'MyU7bWF4LXdpZHRoOjMzLjMzMzMzMzMzMzMlfS5jbHItY29sLXhsLTV7ZmxleDowIDAgNDEuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjQxLjY2NjY2NjY2NjclfS5jbHItY29sLXhsLTZ7ZmxleDowIDAgNTAlO21heC13aWR0aDo1MCV9LmNsci1jb2wteGwtN3tmbGV4OjAgMCA1OC4zMzMzMzMz'@; put 'MzMzJTttYXgtd2lkdGg6NTguMzMzMzMzMzMzMyV9LmNsci1jb2wteGwtOHtmbGV4OjAgMCA2Ni42NjY2NjY2NjY3JTttYXgtd2lkdGg6NjYuNjY2NjY2NjY2NyV9LmNsci1jb2wteGwtOXtmbGV4OjAgMCA3NSU7bWF4LXdpZHRoOjc1JX0uY2xyLWNvbC14bC0xMHtmbGV4OjAgMCA4My4zMzMz'@; put 'MzMzMzMzJTttYXgtd2lkdGg6ODMuMzMzMzMzMzMzMyV9LmNsci1jb2wteGwtMTF7ZmxleDowIDAgOTEuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjkxLjY2NjY2NjY2NjclfS5jbHItY29sLXhsLTEye2ZsZXg6MCAwIDEwMCU7bWF4LXdpZHRoOjEwMCV9LmNsci1vcmRlci14bC1maXJzdHtvcmRl'@; put 'cjotMX0uY2xyLW9yZGVyLXhsLWxhc3R7b3JkZXI6MTN9LmNsci1vcmRlci14bC0we29yZGVyOjB9LmNsci1vcmRlci14bC0xe29yZGVyOjF9LmNsci1vcmRlci14bC0ye29yZGVyOjJ9LmNsci1vcmRlci14bC0ze29yZGVyOjN9LmNsci1vcmRlci14bC00e29yZGVyOjR9LmNsci1vcmRlci14'@; put 'bC01e29yZGVyOjV9LmNsci1vcmRlci14bC02e29yZGVyOjZ9LmNsci1vcmRlci14bC03e29yZGVyOjd9LmNsci1vcmRlci14bC04e29yZGVyOjh9LmNsci1vcmRlci14bC05e29yZGVyOjl9LmNsci1vcmRlci14bC0xMHtvcmRlcjoxMH0uY2xyLW9yZGVyLXhsLTExe29yZGVyOjExfS5jbHIt'@; put 'b3JkZXIteGwtMTJ7b3JkZXI6MTJ9LmNsci1vZmZzZXQteGwtMHttYXJnaW4tbGVmdDowfS5jbHItb2Zmc2V0LXhsLTF7bWFyZ2luLWxlZnQ6OC4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC14bC0ye21hcmdpbi1sZWZ0OjE2LjY2NjY2NjY2NjclfS5jbHItb2Zmc2V0LXhsLTN7bWFyZ2luLWxl'@; put 'ZnQ6MjUlfS5jbHItb2Zmc2V0LXhsLTR7bWFyZ2luLWxlZnQ6MzMuMzMzMzMzMzMzMyV9LmNsci1vZmZzZXQteGwtNXttYXJnaW4tbGVmdDo0MS42NjY2NjY2NjY3JX0uY2xyLW9mZnNldC14bC02e21hcmdpbi1sZWZ0OjUwJX0uY2xyLW9mZnNldC14bC03e21hcmdpbi1sZWZ0OjU4LjMzMzMz'@; put 'MzMzMzMlfS5jbHItb2Zmc2V0LXhsLTh7bWFyZ2luLWxlZnQ6NjYuNjY2NjY2NjY2NyV9LmNsci1vZmZzZXQteGwtOXttYXJnaW4tbGVmdDo3NSV9LmNsci1vZmZzZXQteGwtMTB7bWFyZ2luLWxlZnQ6ODMuMzMzMzMzMzMzMyV9LmNsci1vZmZzZXQteGwtMTF7bWFyZ2luLWxlZnQ6OTEuNjY2'@; put 'NjY2NjY2NyV9fS5jbHItYnJlYWstcm93e3dpZHRoOjEwMCV9Kiw6YmVmb3JlLDphZnRlcntib3gtc2l6aW5nOmJvcmRlci1ib3h9dWwubGlzdC11bnN0eWxlZDpub3QoW2Nkcy1saXN0XSl7cGFkZGluZy1sZWZ0OjA7bWFyZ2luLWxlZnQ6MDtsaXN0LXN0eWxlLXBvc2l0aW9uOm91dHNpZGV9'@; put 'dWwubGlzdC11bnN0eWxlZDpub3QoW2Nkcy1saXN0XSkgbGk6Om1hcmtlcntjb2xvcjp0cmFuc3BhcmVudH1saXtjb2xvcjp2YXIoLS1jbHItbGlzdC1pdGVtLWNvbG9yKTtmb250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktYm9keS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZh'@; put 'cigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWJvZHktZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWJvZHktbGluZS1oZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWJvZHktbGV0dGVyLXNwYWNpbmcpfXVs'@; put 'Om5vdChbY2RzLWxpc3RdKSxvbDpub3QoW2Nkcy1saXN0XSl7bGlzdC1zdHlsZS1wb3NpdGlvbjppbnNpZGU7bWFyZ2luLWxlZnQ6MDttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowO3BhZGRpbmctbGVmdDowfXVsLmxpc3Q6bm90KFtjZHMtbGlzdF0pLG9sLmxpc3Q6bm90KFtjZHMtbGlz'@; put 'dF0pe2xpc3Qtc3R5bGUtcG9zaXRpb246b3V0c2lkZTttYXJnaW4tbGVmdDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTYpfXVsLmxpc3Q6bm90KFtjZHMtbGlzdF0pLmNvbXBhY3Q+bGksb2wubGlzdDpub3QoW2Nkcy1saXN0XSkuY29tcGFjdD5saXttYXJnaW4tYm90dG9tOjB9dWw6bm90KC5s'@; put 'aXN0LXVuc3R5bGVkKTpub3QoW2Nkcy1saXN0XSk+bGk+dWwubGlzdC11bnN0eWxlZCxvbDpub3QoW2Nkcy1saXN0XSk+bGk+dWwubGlzdC11bnN0eWxlZHttYXJnaW4tbGVmdDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTYpfWxpPnVsOm5vdChbY2RzLWxpc3RdKXttYXJnaW4tdG9wOjA7bWFy'@; put 'Z2luLWxlZnQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KX11bC5saXN0LWdyb3VwOm5vdChbY2RzLWxpc3RdKXttYXJnaW4tdG9wOjB9dWw6bm90KFtjZHMtbGlzdF0pLmxpc3Qtc3BhY2VyLG9sOm5vdChbY2RzLWxpc3RdKS5saXN0LXNwYWNlcnttYXJnaW4tdG9wOnZhcigtLWNkcy1nbG9i'@; put 'YWwtc3BhY2UtOSl9cHJle21hcmdpbjp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTYpIDB9cHJle2JvcmRlcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0aC0xMDApIHNvbGlkIHZhcigtLWNkcy1hbGlhcy1vYmplY3QtY29udGFpbmVyLWJvcmRlci1jb2xvcik7Ym9yZGVyLXJh'@; put 'ZGl1czp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1yYWRpdXMtMTAwKX1wcmUgY29kZXt3aGl0ZS1zcGFjZTpwcmV9Y29kZS5jbHItY29kZXtjb2xvcjp2YXIoLS1jZHMtYWxpYXMtdXRpbGl0eS1yZWQpO3BhZGRpbmc6MDtiYWNrZ3JvdW5kOjAgMH1oMTpub3QoW2Nkcy10ZXh0XSl7'@; put 'bWFyZ2luLXRvcDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpO21hcmdpbi1ib3R0b206MDtmb250LWZhbWlseTp2YXIoLS1jbHItaDEtZm9udC1mYW1pbHkpO2NvbG9yOnZhcigtLWNsci1oMS1jb2xvcik7Zm9udC1zaXplOnZhcigtLWNsci1oMS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZh'@; put 'cigtLWNsci1oMS1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tY2xyLWgxLWxpbmUtaGVpZ2h0KTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jbHItaDEtbGV0dGVyLXNwYWNpbmcpfWgyOm5vdChbY2RzLXRleHRdKXttYXJnaW4tdG9wOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSk7bWFy'@; put 'Z2luLWJvdHRvbTowO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1oMi1mb250LWZhbWlseSk7Y29sb3I6dmFyKC0tY2xyLWgyLWNvbG9yKTtmb250LXNpemU6dmFyKC0tY2xyLWgyLWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWgyLWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIo'@; put 'LS1jbHItaDItbGluZS1oZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWNsci1oMi1sZXR0ZXItc3BhY2luZyl9aDM6bm90KFtjZHMtdGV4dF0pe21hcmdpbi10b3A6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTttYXJnaW4tYm90dG9tOjA7Zm9udC1mYW1pbHk6dmFyKC0tY2xyLWgzLWZv'@; put 'bnQtZmFtaWx5KTtjb2xvcjp2YXIoLS1jbHItaDMtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS1jbHItaDMtZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jbHItaDMtZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNsci1oMy1saW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFy'@; put 'KC0tY2xyLWgzLWxldHRlci1zcGFjaW5nKX1oNDpub3QoW2Nkcy10ZXh0XSl7bWFyZ2luLXRvcDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpO21hcmdpbi1ib3R0b206MDtmb250LWZhbWlseTp2YXIoLS1jbHItaDQtZm9udC1mYW1pbHkpO2NvbG9yOnZhcigtLWNsci1oNC1jb2xvcik7Zm9u'@; put 'dC1zaXplOnZhcigtLWNsci1oNC1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1oNC1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tY2xyLWg0LWxpbmUtaGVpZ2h0KTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jbHItaDQtbGV0dGVyLXNwYWNpbmcpfWg1Om5vdChbY2RzLXRl'@; put 'eHRdKXttYXJnaW4tdG9wOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSk7bWFyZ2luLWJvdHRvbTowO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1oNS1mb250LWZhbWlseSk7Y29sb3I6dmFyKC0tY2xyLWg1LWNvbG9yKTtmb250LXNpemU6dmFyKC0tY2xyLWg1LWZvbnQtc2l6ZSk7Zm9udC13ZWln'@; put 'aHQ6dmFyKC0tY2xyLWg1LWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1jbHItaDUtbGluZS1oZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWNsci1oNS1sZXR0ZXItc3BhY2luZyl9aDY6bm90KFtjZHMtdGV4dF0pe21hcmdpbi10b3A6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05'@; put 'KTttYXJnaW4tYm90dG9tOjA7Zm9udC1mYW1pbHk6dmFyKC0tY2xyLWg2LWZvbnQtZmFtaWx5KTtjb2xvcjp2YXIoLS1jbHItaDYtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS1jbHItaDYtZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jbHItaDYtZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0'@; put 'OnZhcigtLWNsci1oNi1saW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2xyLWg2LWxldHRlci1zcGFjaW5nKX1ib2R5Om5vdChbY2RzLXRleHRdKXttYXJnaW4tdG9wOjAhaW1wb3J0YW50O21hcmdpbi1ib3R0b206MDtmb250LWZhbWlseTp2YXIoLS1jbHItZm9udCk7Y29sb3I6'@; put 'dmFyKC0tY2xyLXAxLWNvbG9yKTtmb250LXNpemU6dmFyKC0tY2xyLXAxLWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXAxLWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1jbHItcDEtbGluZS1oZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWNsci1wMS1sZXR0ZXIt'@; put 'c3BhY2luZyl9Ym9keSBwOm5vdChbY2RzLXRleHRdKXttYXJnaW4tdG9wOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSk7bWFyZ2luLWJvdHRvbTowO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1mb250KTtjb2xvcjp2YXIoLS1jbHItcDEtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS1jbHItcDEtZm9u'@; put 'dC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jbHItcDEtZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNsci1wMS1saW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2xyLXAxLWxldHRlci1zcGFjaW5nKX1ib2R5IC5wMDpub3QoW2Nkcy10ZXh0XSksYm9keSBwLnAwOm5v'@; put 'dChbY2RzLXRleHRdKXttYXJnaW4tdG9wOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSk7bWFyZ2luLWJvdHRvbTowO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1mb250KTtjb2xvcjp2YXIoLS1jbHItcDAtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS1jbHItcDAtZm9udC1zaXplKTtmb250LXdlaWdo'@; put 'dDp2YXIoLS1jbHItcDAtZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNsci1wMC1saW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2xyLXAwLWxldHRlci1zcGFjaW5nKX1ib2R5IC5wMjpub3QoW2Nkcy10ZXh0XSksYm9keSBwLnAyOm5vdChbY2RzLXRleHRdKXttYXJn'@; put 'aW4tdG9wOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSk7bWFyZ2luLWJvdHRvbTowO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1mb250KTtjb2xvcjp2YXIoLS1jbHItcDItY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS1jbHItcDItZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jbHItcDItZm9u'@; put 'dC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNsci1wMi1saW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2xyLXAyLWxldHRlci1zcGFjaW5nKX1ib2R5IC5wMzpub3QoW2Nkcy10ZXh0XSksYm9keSBwLnAzOm5vdChbY2RzLXRleHRdKXttYXJnaW4tdG9wOnZhcigtLWNkcy1n'@; put 'bG9iYWwtc3BhY2UtOSk7bWFyZ2luLWJvdHRvbTowO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1mb250KTtjb2xvcjp2YXIoLS1jbHItcDMtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS1jbHItcDMtZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jbHItcDMtZm9udC13ZWlnaHQpO2xpbmUtaGVp'@; put 'Z2h0OnZhcigtLWNsci1wMy1saW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2xyLXAzLWxldHRlci1zcGFjaW5nKX1ib2R5IC5wNDpub3QoW2Nkcy10ZXh0XSksYm9keSBwLnA0Om5vdChbY2RzLXRleHRdKXttYXJnaW4tdG9wOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSk7bWFy'@; put 'Z2luLWJvdHRvbTowO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1mb250KTtjb2xvcjp2YXIoLS1jbHItcDQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS1jbHItcDQtZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jbHItcDQtZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNsci1wNC1s'@; put 'aW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2xyLXA0LWxldHRlci1zcGFjaW5nKX1ib2R5IC5wNTpub3QoW2Nkcy10ZXh0XSksYm9keSBwLnA1Om5vdChbY2RzLXRleHRdKXttYXJnaW4tdG9wOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSk7bWFyZ2luLWJvdHRvbTowO2ZvbnQt'@; put 'ZmFtaWx5OnZhcigtLWNsci1mb250KTtjb2xvcjp2YXIoLS1jbHItcDUtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS1jbHItcDUtZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jbHItcDUtZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNsci1wNS1saW5lLWhlaWdodCk7bGV0dGVy'@; put 'LXNwYWNpbmc6dmFyKC0tY2xyLXA1LWxldHRlci1zcGFjaW5nKX1ib2R5IC5wNjpub3QoW2Nkcy10ZXh0XSksYm9keSBwLnA2Om5vdChbY2RzLXRleHRdKXttYXJnaW4tdG9wOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSk7bWFyZ2luLWJvdHRvbTowO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1m'@; put 'b250KTtjb2xvcjp2YXIoLS1jbHItcDYtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS1jbHItcDYtZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jbHItcDYtZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNsci1wNi1saW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2xy'@; put 'LXA2LWxldHRlci1zcGFjaW5nKX1ib2R5IC5wNzpub3QoW2Nkcy10ZXh0XSksYm9keSBwLnA3Om5vdChbY2RzLXRleHRdKXttYXJnaW4tdG9wOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSk7bWFyZ2luLWJvdHRvbTowO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1mb250KTtjb2xvcjp2YXIoLS1j'@; put 'bHItcDctY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS1jbHItcDctZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jbHItcDctZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNsci1wNy1saW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2xyLXA3LWxldHRlci1zcGFjaW5n'@; put 'KX1ib2R5IC5wODpub3QoW2Nkcy10ZXh0XSksYm9keSBwLnA4Om5vdChbY2RzLXRleHRdKXttYXJnaW4tdG9wOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSk7bWFyZ2luLWJvdHRvbTowO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1mb250KTtjb2xvcjp2YXIoLS1jbHItcDgtY29sb3IpO2ZvbnQt'@; put 'c2l6ZTp2YXIoLS1jbHItcDgtZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jbHItcDgtZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNsci1wOC1saW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2xyLXA4LWxldHRlci1zcGFjaW5nKX0udGV4dC1saWdodHtmb250'@; put 'LXdlaWdodDp2YXIoLS1jbHItZm9udC13ZWlnaHQtbGlnaHQpfS50ZXh0LXJpZ2h0e3RleHQtYWxpZ246cmlnaHQhaW1wb3J0YW50fS50ZXh0LWNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnR9LnRleHQtbGVmdHt0ZXh0LWFsaWduOmxlZnQhaW1wb3J0YW50fS50ZXh0LWp1c3Rp'@; put 'Znl7dGV4dC1hbGlnbjpqdXN0aWZ5IWltcG9ydGFudH1odG1sOm5vdChbY2RzLXRleHRdKXtjb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci00NTApO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1mb250KTtmb250LXNpemU6Y2FsYyh2YXIoLS1jZHMtZ2xvYmFsLWJhc2UpLzE2'@; put 'KjEwMCUpfTpyb290IFtjZHMtdGhlbWVdey0tY2xyLWxpbmstYWN0aXZlLWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWxpbmstY29sb3IpOy0tY2xyLWxpbmstY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktbGluay1jb2xvcik7LS1jbHItbGluay1ob3Zlci1jb2xv'@; put 'cjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1saW5rLWNvbG9yLWhvdmVyKTstLWNsci1saW5rLXZpc2l0ZWQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktbGluay1jb2xvci12aXNpdGVkKTstLWNsci1saW5rLXZpc2l0ZWQtY29sb3ItaG92ZXI6dmFyKC0tY2RzLWFsaWFz'@; put 'LXR5cG9ncmFwaHktbGluay1jb2xvci12aXNpdGVkLWhvdmVyKX1odG1se2JveC1zaXppbmc6Ym9yZGVyLWJveH0qLDpiZWZvcmUsOmFmdGVye2JveC1zaXppbmc6aW5oZXJpdH1odG1sey1tcy1vdmVyZmxvdy1zdHlsZTpzY3JvbGxiYXI7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRy'@; put 'YW5zcGFyZW50fWltZ3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9W3JvbGU9YnV0dG9uXXtjdXJzb3I6cG9pbnRlcn1hLGFyZWEsYnV0dG9uLFtyb2xlPWJ1dHRvbl0saW5wdXQsbGFiZWwsc2VsZWN0LHN1bW1hcnksdGV4dGFyZWF7dG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbn1pbnB1dCxidXR0'@; put 'b24sc2VsZWN0LHRleHRhcmVhe2JvcmRlci1yYWRpdXM6MH1pbnB1dFt0eXBlPXJhZGlvXTpkaXNhYmxlZCxpbnB1dFt0eXBlPWNoZWNrYm94XTpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWR9aW5wdXRbdHlwZT1kYXRlXSxpbnB1dFt0eXBlPXRpbWVdLGlucHV0W3R5cGU9ZGF0ZXRpbWUt'@; put 'bG9jYWxdLGlucHV0W3R5cGU9bW9udGhdey13ZWJraXQtYXBwZWFyYW5jZTpsaXN0Ym94fXRleHRhcmVhe3Jlc2l6ZTp2ZXJ0aWNhbH1maWVsZHNldHttaW4td2lkdGg6MDtwYWRkaW5nOjA7bWFyZ2luOjA7Ym9yZGVyOjB9bGVnZW5ke2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtwYWRkaW5n'@; put 'OjA7bGluZS1oZWlnaHQ6aW5oZXJpdH1pbnB1dFt0eXBlPXNlYXJjaF17LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9W2hpZGRlbl17ZGlzcGxheTpub25lIWltcG9ydGFudH1kbHttYXJnaW4tYm90dG9tOjA7bWFyZ2luLXRvcDoxcmVtfXRhYmxle2JvcmRlci1zcGFjaW5nOjB9LmNsci1zci1v'@; put 'bmx5e3Bvc2l0aW9uOmFic29sdXRlO2NsaXA6cmVjdCgxcHgsMXB4LDFweCwxcHgpO2NsaXAtcGF0aDppbnNldCg1MCUpO3BhZGRpbmc6MDtib3JkZXI6MDtoZWlnaHQ6MXB4O3dpZHRoOjFweDtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3RvcDowO2xlZnQ6MH0uYWxlcnQt'@; put 'aWNvbiwuY2xyLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTtwYWRkaW5nOjA7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTpjb250YWluO3Zl'@; put 'cnRpY2FsLWFsaWduOm1pZGRsZX0uYWxlcnQtaWNvbi5jbHItaWNvbi13YXJuaW5nLC5hbGVydC1pY29uLmljb24td2FybmluZywuY2xyLWljb24uY2xyLWljb24td2FybmluZywuY2xyLWljb24uaWNvbi13YXJuaW5ne2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtj'@; put 'aGFyc2V0PXV0ZjgsJTNDc3ZnJTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUyMHZpZXdCb3glM0QlMjI1JTIwNSUyMDI2JTIwMjYlMjIlMjBwcmVzZXJ2ZUFzcGVjdFJhdGlvJTNEJTIyeE1pZFlNaWQlMjBtZWV0JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAl'@; put 'MkZzdmclMjIlMjB4bWxucyUzQXhsaW5rJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGxpbmslMjIlM0UlM0NkZWZzJTNFJTNDc3R5bGUlMjB0eXBlJTNEJTIydGV4dCUyRmNzcyUyMiUzRSUwQSUwOS5jbHItaS1vdXRsaW5lJTdCZmlsbC1ydWxlJTNBZXZlbm9kZCUz'@; put 'QmNsaXAtcnVsZSUzQWV2ZW5vZGQlM0JmaWxsJTNBJTIzNzQ3NDc0JTNCJTdEJTNDJTJGc3R5bGUlM0UlM0MlMkZkZWZzJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdGl0bGUlM0VleGNsYW1hdGlvbi10cmlhbmdsZS1saW5lJTNDJTJG'@; put 'dGl0bGUlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NwYXRoJTIwY2xhc3MlM0QlMjJjbHItaS1vdXRsaW5lJTIwY2xyLWktb3V0bGluZS1wYXRoLTElMjIlMjBkJTNEJTIyTTE4JTJDMjEuMzJhMS4zJTJDMS4zJTJDMCUyQzAlMkMwJTJD'@; put 'MS4zLTEuM1YxNGExLjMlMkMxLjMlMkMwJTJDMSUyQzAtMi42JTJDMHY2QTEuMyUyQzEuMyUyQzAlMkMwJTJDMCUyQzE4JTJDMjEuMzJaJTIyJTNFJTNDJTJGcGF0aCUzRSUzQ2NpcmNsZSUyMGNsYXNzJTNEJTIyY2xyLWktb3V0bGluZSUyMGNsci1pLW91dGxpbmUtcGF0aC0yJTIyJTIwY3gl'@; put 'M0QlMjIxNy45NSUyMiUyMGN5JTNEJTIyMjQuMjclMjIlMjByJTNEJTIyMS41JTIyJTNFJTNDJTJGY2lyY2xlJTNFJTNDcGF0aCUyMGNsYXNzJTNEJTIyY2xyLWktb3V0bGluZSUyMGNsci1pLW91dGxpbmUtcGF0aC0zJTIyJTIwZCUzRCUyMk0zMC4zMyUyQzI1LjU0JTJDMjAuNTklMkM3LjZh'@; put 'MyUyQzMlMkMwJTJDMCUyQzAtNS4yNyUyQzBMNS41NyUyQzI1LjU0QTMlMkMzJTJDMCUyQzAlMkMwJTJDOC4yMSUyQzMwSDI3LjY5YTMlMkMzJTJDMCUyQzAlMkMwJTJDMi42NC00LjQzWm0tMS43OCUyQzEuOTRhMSUyQzElMkMwJTJDMCUyQzEtLjg2LjQ5SDguMjFhMSUyQzElMkMwJTJDMCUy'@; put 'QzEtLjg4LTEuNDhMMTcuMDclMkM4LjU1YTElMkMxJTJDMCUyQzAlMkMxJTJDMS43NiUyQzBsOS43NCUyQzE3Ljk0QTElMkMxJTJDMCUyQzAlMkMxJTJDMjguNTUlMkMyNy40OFolMjIlM0UlM0MlMkZwYXRoJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJG'@; put 'c3ZnJTNFKX0uYWxlcnQtaWNvbi5jbHItaWNvbi13YXJuaW5nLXdoaXRlLC5jbHItaWNvbi5jbHItaWNvbi13YXJuaW5nLXdoaXRle2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMHZlcnNpb24lM0QlMjIxLjElMjIlMjB2aWV3'@; put 'Qm94JTNEJTIyNSUyMDUlMjAyNiUyMDI2JTIyJTIwcHJlc2VydmVBc3BlY3RSYXRpbyUzRCUyMnhNaWRZTWlkJTIwbWVldCUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIweG1sbnMlM0F4bGluayUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cu'@; put 'dzMub3JnJTJGMTk5OSUyRnhsaW5rJTIyJTNFJTNDZGVmcyUzRSUzQ3N0eWxlJTIwdHlwZSUzRCUyMnRleHQlMkZjc3MlMjIlM0UlMEElMDkuY2xyLWktb3V0bGluZSU3QmZpbGwtcnVsZSUzQWV2ZW5vZGQlM0JjbGlwLXJ1bGUlM0FldmVub2RkJTNCZmlsbCUzQWhzbCgxOTgsIDAlLCAxMDAl'@; put 'KSUzQiU3RCUzQyUyRnN0eWxlJTNFJTNDJTJGZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RpdGxlJTNFZXhjbGFtYXRpb24tdHJpYW5nbGUtbGluZSUzQyUyRnRpdGxlJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcGF0aCUyMGNsYXNzJTNEJTIyY2xyLWktb3V0bGluZSUyMGNsci1pLW91dGxpbmUtcGF0aC0xJTIyJTIwZCUzRCUyMk0xOCUyQzIxLjMyYTEuMyUyQzEuMyUyQzAlMkMwJTJDMCUyQzEuMy0xLjNWMTRhMS4zJTJDMS4zJTJDMCUyQzElMkMwLTIuNiUy'@; put 'QzB2NkExLjMlMkMxLjMlMkMwJTJDMCUyQzAlMkMxOCUyQzIxLjMyWiUyMiUzRSUzQyUyRnBhdGglM0UlM0NjaXJjbGUlMjBjbGFzcyUzRCUyMmNsci1pLW91dGxpbmUlMjBjbHItaS1vdXRsaW5lLXBhdGgtMiUyMiUyMGN4JTNEJTIyMTcuOTUlMjIlMjBjeSUzRCUyMjI0LjI3JTIyJTIwciUz'@; put 'RCUyMjEuNSUyMiUzRSUzQyUyRmNpcmNsZSUzRSUzQ3BhdGglMjBjbGFzcyUzRCUyMmNsci1pLW91dGxpbmUlMjBjbHItaS1vdXRsaW5lLXBhdGgtMyUyMiUyMGQlM0QlMjJNMzAuMzMlMkMyNS41NCUyQzIwLjU5JTJDNy42YTMlMkMzJTJDMCUyQzAlMkMwLTUuMjclMkMwTDUuNTclMkMyNS41'@; put 'NEEzJTJDMyUyQzAlMkMwJTJDMCUyQzguMjElMkMzMEgyNy42OWEzJTJDMyUyQzAlMkMwJTJDMCUyQzIuNjQtNC40M1ptLTEuNzglMkMxLjk0YTElMkMxJTJDMCUyQzAlMkMxLS44Ni40OUg4LjIxYTElMkMxJTJDMCUyQzAlMkMxLS44OC0xLjQ4TDE3LjA3JTJDOC41NWExJTJDMSUyQzAlMkMw'@; put 'JTJDMSUyQzEuNzYlMkMwbDkuNzQlMkMxNy45NEExJTJDMSUyQzAlMkMwJTJDMSUyQzI4LjU1JTJDMjcuNDhaJTIyJTNFJTNDJTJGcGF0aCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRnN2ZyUzRSIpfS5hbGVydC1pY29uLmNsci12bXctbG9nbywuY2xy'@; put 'LWljb24uY2xyLXZtdy1sb2dve2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDM2JTIwMzYlMjIlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3'@; put 'LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB4bWxucyUzQXhsaW5rJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGxpbmslMjIlM0UlMEElMjAlMjAlMjAlMjAlM0N0aXRsZSUzRXZtJTIwYnVnJTNDJTJGdGl0bGUlM0UlMEElMjAlMjAlMjAlMjAlM0NkZWZzJTNFJTND'@; put 'JTJGZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUzQ2clMjBpZCUzRCUyMkhlYWRlcnMlMjIlMjBzdHJva2UlM0QlMjJub25lJTIyJTIwc3Ryb2tlLXdpZHRoJTNEJTIyMSUyMiUyMGZpbGwlM0QlMjJub25lJTIyJTIwZmlsbC1ydWxlJTNEJTIyZXZlbm9kZCUyMiUzRSUwQSUyMCUyMCUyMCUyMCUy'@; put 'MCUyMCUyMCUyMCUzQ2clMjBpZCUzRCUyMkNMLUhlYWRlcnMtU3BlY3MlMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUoLTI2Mi4wMDAwMDAlMkMlMjAtMTc1LjAwMDAwMCklMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NnJTIwaWQlM0QlMjIwMSUy'@; put 'MiUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSgyMzguMDAwMDAwJTJDJTIwMTYzLjAwMDAwMCklMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NnJTIwaWQlM0QlMjJ2bS1idWclMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUo'@; put 'MjQuNzAzMTI1JTJDJTIwMTIuMDAwMDAwKSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBpZCUzRCUyMlJlY3RhbmdsZS00MiUyMiUyMGZpbGwtb3BhY2l0eSUzRCUyMjAuMjUlMjIlMjBmaWxsJTNE'@; put 'JTIyJTIzREREREREJTIyJTIwb3BhY2l0eSUzRCUyMjAuNiUyMiUyMHglM0QlMjIwJTIyJTIweSUzRCUyMjAlMjIlMjB3aWR0aCUzRCUyMjM2JTIyJTIwaGVpZ2h0JTNEJTIyMzYlMjIlMjByeCUzRCUyMjMlMjIlM0UlM0MlMkZyZWN0JTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcGF0aCUyMGQlM0QlMjJNNy42Mzk0ODM3NiUyQzEzLjg3NjI0MDIlMjBDNy4zMjI2NTMyNCUyQzEzLjIwOTcwODIlMjA2LjUzOTc4MTUyJTJDMTIuOTA4NTEzOSUyMDUuODA5MjMwNDIlMkMxMy4yMTk5MzQlMjBDNS4wNzc3MTA0'@; put 'MyUyQzEzLjUzMjI4MzclMjA0LjgwOTMyNDk1JTJDMTQuMzEwMzY5MSUyMDUuMTM5NzIwMDclMkMxNC45NzY5MDExJTIwTDguMjA3MjU5NTQlMkMyMS4zNzQ0OTIzJTIwQzguNjg5NzcyMDclMkMyMi4zNzg0NzM1JTIwOS4xOTg0NDQ5MSUyQzIyLjkwMzcwNDQlMjAxMC4xNTI4MTIxJTJDMjIu'@; put 'OTAzNzA0NCUyMEMxMS4xNzIwOTU1JTJDMjIuOTAzNzA0NCUyMDExLjYxNjgyMDklMkMyMi4zMzEwNjMzJTIwMTIuMDk4MzY0NiUyQzIxLjM3NDQ5MjMlMjBDMTIuMDk4MzY0NiUyQzIxLjM3NDQ5MjMlMjAxNC43NzQ0NjgyJTJDMTUuNzg0NzM0MSUyMDE0LjgwMTU5NzQlMkMxNS43MjYxNjg1'@; put 'JTIwQzE0LjgyODcyNjYlMkMxNS42NjY2NzMzJTIwMTQuOTE0OTU4OCUyQzE1LjQ4NjMyODYlMjAxNS4xODcyMTk5JTJDMTUuNDg3MjU4MiUyMEMxNS40MTc4MTgyJTJDMTUuNDkwMDQ3JTIwMTUuNjEwNjI5NCUyQzE1LjY2NTc0MzclMjAxNS42MTA2Mjk0JTJDMTUuOTAxODY1MiUyMEwxNS42'@; put 'MTA2Mjk0JTJDMjEuMzY5ODQ0MyUyMEMxNS42MTA2Mjk0JTJDMjIuMjEyMDczJTIwMTYuMDk3OTg2NSUyQzIyLjkwMzcwNDQlMjAxNy4wMzQ5MTM0JTJDMjIuOTAzNzA0NCUyMEMxNy45NzE4NDAzJTJDMjIuOTAzNzA0NCUyMDE4LjQ3ODU3NTQlMkMyMi4yMTIwNzMlMjAxOC40Nzg1NzU0JTJD'@; put 'MjEuMzY5ODQ0MyUyMEwxOC40Nzg1NzU0JTJDMTYuODk2NTUwMyUyMEMxOC40Nzg1NzU0JTJDMTYuMDMzODcwMiUyMDE5LjEyMTkyNTQlMkMxNS40NzQyNDM2JTIwMjAuMDAwNzE4MyUyQzE1LjQ3NDI0MzYlMjBDMjAuODc4NTQyMyUyQzE1LjQ3NDI0MzYlMjAyMS40NjM3NTgzJTJDMTYuMDUy'@; put 'NDYyNCUyMDIxLjQ2Mzc1ODMlMkMxNi44OTY1NTAzJTIwTDIxLjQ2Mzc1ODMlMkMyMS4zNjk4NDQzJTIwQzIxLjQ2Mzc1ODMlMkMyMi4yMTIwNzMlMjAyMS45NTIwODQyJTJDMjIuOTAzNzA0NCUyMDIyLjg4ODA0MjMlMkMyMi45MDM3MDQ0JTIwQzIzLjgyNDAwMDMlMkMyMi45MDM3MDQ0JTIw'@; put 'MjQuMzMyNjczMSUyQzIyLjIxMjA3MyUyMDI0LjMzMjY3MzElMkMyMS4zNjk4NDQzJTIwTDI0LjMzMjY3MzElMkMxNi44OTY1NTAzJTIwQzI0LjMzMjY3MzElMkMxNi4wMzM4NzAyJTIwMjQuOTc1MDU0MyUyQzE1LjQ3NDI0MzYlMjAyNS44NTM4NDcyJTJDMTUuNDc0MjQzNiUyMEMyNi43MzA3'@; put 'MDIzJTJDMTUuNDc0MjQzNiUyMDI3LjMxNjg4NzElMkMxNi4wNTI0NjI0JTIwMjcuMzE2ODg3MSUyQzE2Ljg5NjU1MDMlMjBMMjcuMzE2ODg3MSUyQzIxLjM2OTg0NDMlMjBDMjcuMzE2ODg3MSUyQzIyLjIxMjA3MyUyMDI3LjgwNTIxMzElMkMyMi45MDM3MDQ0JTIwMjguNzQyMTQlMkMyMi45'@; put 'MDM3MDQ0JTIwQzI5LjY3NzEyOTElMkMyMi45MDM3MDQ0JTIwMzAuMTg0ODMzMSUyQzIyLjIxMjA3MyUyMDMwLjE4NDgzMzElMkMyMS4zNjk4NDQzJTIwTDMwLjE4NDgzMzElMkMxNi4yNzgzNTgyJTIwQzMwLjE4NDgzMzElMkMxNC40MDcwNDg4JTIwMjguNjE4MTIwNyUyQzEzLjA5NjI5NTYl'@; put 'MjAyNi43MzA3MDIzJTJDMTMuMDk2Mjk1NiUyMEMyNC44NDUyMjE2JTJDMTMuMDk2Mjk1NiUyMDIzLjY2NTEwMDYlMkMxNC4zNDc1NTM2JTIwMjMuNjY1MTAwNiUyQzE0LjM0NzU1MzYlMjBDMjMuMDM3MjUzJTJDMTMuNTY2Njc5MyUyMDIyLjE3MjAyNDclMkMxMy4wOTcyMjUyJTIwMjAuNzA4'@; put 'OTg0NyUyQzEzLjA5NzIyNTIlMjBDMTkuMTY0NTU3JTJDMTMuMDk3MjI1MiUyMDE3LjgxMjk0MDYlMkMxNC4zNDc1NTM2JTIwMTcuODEyOTQwNiUyQzE0LjM0NzU1MzYlMjBDMTcuMTg0MTI0MSUyQzEzLjU2NjY3OTMlMjAxNi4xMTU0MjY3JTJDMTMuMDk3MjI1MiUyMDE1LjIzMDgyMDQlMkMx'@; put 'My4wOTcyMjUyJTIwQzEzLjg2MTc2MzglMkMxMy4wOTcyMjUyJTIwMTIuNzc0NjU3MiUyQzEzLjY3NTQ0NCUyMDEyLjExMTkyOTIlMkMxNS4xMzAyODcxJTIwTDEwLjE1MjgxMjElMkMxOS41NjA4MTg5JTIwTDcuNjM5NDgzNzYlMkMxMy44NzYyNDAyJTIyJTIwaWQlM0QlMjJGaWxsLTQlMjIl'@; put 'MjBmaWxsJTNEJTIyJTIzRkZGRkZGJTIyJTNFJTNDJTJGcGF0aCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRmclM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZnJTNFJTBBJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTNDJTJGZyUzRSUwQSUyMCUyMCUyMCUyMCUzQyUyRmclM0UlMEElM0MlMkZzdmclM0UiKX0uaXMtb2ZmLXNjcmVlbntwb3NpdGlvbjpmaXhlZCFpbXBvcnRhbnQ7Ym9yZGVyOjAhaW1wb3J0YW50O2hlaWdodDoxcHghaW1wb3J0YW50O3dpZHRoOjFweCFpbXBvcnRhbnQ7'@; put 'bGVmdDowIWltcG9ydGFudDt0b3A6LjA1cmVtIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50O3Zpc2liaWxpdHk6aGlkZGVuIWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50O21hcmdpbjowIDAgLjA1cmVtIWltcG9ydGFudH0uY2xyLXBvcG92ZXItY29udGVudHtwb3Np'@; put 'dGlvbjpmaXhlZDt6LWluZGV4OjEwNTB9OnJvb3QgW2Nkcy10aGVtZV17LS1jbHItYnRuLXZlcnRpY2FsLW1hcmdpbjp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTQpOy0tY2xyLWJ0bi1ob3Jpem9udGFsLW1hcmdpbjp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTYpOy0tY2xyLWJ0bi1ob3Jpem9u'@; put 'dGFsLXBhZGRpbmc6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KTstLWNsci1idG4tdmVydGljYWwtcGFkZGluZzowOy0tY2xyLWJ0bi1wYWRkaW5nOnZhcigtLWNsci1idG4tdmVydGljYWwtcGFkZGluZykgdmFyKC0tY2xyLWJ0bi1ob3Jpem9udGFsLXBhZGRpbmcpOy0tY2xyLWJ0bi1oZWln'@; put 'aHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMSk7LS1jbHItYnRuLWhlaWdodC1zbTp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpOy0tY2xyLWJ0bi1ib3JkZXItcmFkaXVzOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXJhZGl1cy0xMDApOy0tY2xyLWJ0bi1ib3JkZXItd2lkdGg6'@; put 'dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xKTstLWNsci1idG4tYXBwZWFyYW5jZS1zdGFuZGFyZC1oZWlnaHQ6dmFyKC0tY2xyLWJ0bi1oZWlnaHQtc20pOy0tY2xyLWJ0bi1hcHBlYXJhbmNlLXN0YW5kYXJkLXBhZGRpbmc6MCB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTYpOy0tY2xyLWJ0bi1h'@; put 'cHBlYXJhbmNlLXN0YW5kYXJkLWljb24tc2l6ZTp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpOy0tY2xyLWJ0bi1hcHBlYXJhbmNlLWZvcm0taGVpZ2h0OnZhcigtLWNsci1idG4taGVpZ2h0KTstLWNsci1idG4tYXBwZWFyYW5jZS1mb3JtLXBhZGRpbmc6dmFyKC0tY2xyLWJ0bi1wYWRkaW5n'@; put 'KTstLWNsci1idG4tZ3JvdXAtZm9jdXMtb3V0bGluZTp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLW91dGxpbmUpOy0tY2xyLWJ0bi10cmFuc3BhcmVudC1iZy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LW9wYWNpdHktMCk7LS1jbHItYnRuLW91dGxpbmUtYmctY29s'@; put 'b3I6dmFyKC0tY2xyLWJ0bi10cmFuc3BhcmVudC1iZy1jb2xvcik7LS1jbHItYnRuLWRlZmF1bHQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1pbmZvKTstLWNsci1idG4tZGVmYXVsdC1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWNvbG9yKTstLWNsci1idG4tZGVm'@; put 'YXVsdC1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLW91dGxpbmUtYmctY29sb3IpOy0tY2xyLWJ0bi1kZWZhdWx0LWhvdmVyLWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24taW5mby1zZWNvbmRhcnktaG92ZXIpOy0tY2xyLWJ0bi1kZWZhdWx0LWhvdmVyLWNvbG9y'@; put 'OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWluZm8taG92ZXIpOy0tY2xyLWJ0bi1kZWZhdWx0LWFjdGl2ZS1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY29sb3IpOy0tY2xyLWJ0bi1kZWZhdWx0LWFjdGl2ZS1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLW91dGxpbmUtYmctY29sb3Ip'@; put 'Oy0tY2xyLWJ0bi1kZWZhdWx0LWRpc2FibGVkLWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWRpc2FibGVkKTstLWNsci1idG4tZGVmYXVsdC1kaXNhYmxlZC1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1iZy1jb2xvcik7LS1jbHItYnRuLWRlZmF1bHQt'@; put 'ZGlzYWJsZWQtYm9yZGVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtZGlzYWJsZWQpOy0tY2xyLWJ0bi1kZWZhdWx0LWNoZWNrZWQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItMTAwKTstLWNsci1idG4tZGVmYXVsdC1jaGVja2VkLWJnLWNvbG9yOnZhcigt'@; put 'LWNsci1idG4tZGVmYXVsdC1jb2xvcik7LS1jbHItYnRuLWRlZmF1bHQtY2hlY2tlZC1ob3Zlci1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY2hlY2tlZC1jb2xvcik7LS1jbHItYnRuLWRlZmF1bHQtY2hlY2tlZC1ob3Zlci1iZy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWlu'@; put 'dGVyYWN0aW9uLWluZm8taG92ZXIpOy0tY2xyLWJ0bi1kZWZhdWx0LWNoZWNrZWQtYWN0aXZlLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1jaGVja2VkLWNvbG9yKTstLWNsci1idG4tZGVmYXVsdC1jaGVja2VkLWFjdGl2ZS1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY29s'@; put 'b3IpOy0tY2xyLWJ0bi1kZWZhdWx0LWNoZWNrZWQtZGlzYWJsZWQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZGlzYWJsZWQtYnV0dG9uKTstLWNsci1idG4tZGVmYXVsdC1jaGVja2VkLWRpc2FibGVkLWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtZGlzYWJsZWQp'@; put 'Oy0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1pbmZvKTstLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktb3V0bGluZS1jb2xvcik7LS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1i'@; put 'Zy1jb2xvcjp2YXIoLS1jbHItYnRuLW91dGxpbmUtYmctY29sb3IpOy0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtaG92ZXItYmctY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1pbmZvLXNlY29uZGFyeS1ob3Zlcik7LS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1o'@; put 'b3Zlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1pbmZvLWhvdmVyKTstLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWFjdGl2ZS1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1jb2xvcik7LS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1hY3RpdmUtYmctY29s'@; put 'b3I6dmFyKC0tY2xyLWJ0bi1vdXRsaW5lLWJnLWNvbG9yKTstLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWRpc2FibGVkLWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWRpc2FibGVkKTstLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWRpc2FibGVkLWJnLWNvbG9yOnZhcigtLWNs'@; put 'ci1idG4tZGVmYXVsdC1vdXRsaW5lLWJnLWNvbG9yKTstLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWRpc2FibGVkLWJvcmRlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWRpc2FibGVkKTstLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWNoZWNrZWQtY29sb3I6dmFyKC0tY2RzLWFs'@; put 'aWFzLXR5cG9ncmFwaHktY29sb3ItMTAwKTstLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWNoZWNrZWQtYmctY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtYmctY29sb3IpOy0tY2xyLWJ0bi1wcmltYXJ5LWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9y'@; put 'LTEwMCk7LS1jbHItYnRuLXByaW1hcnktYmctY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1pbmZvKTstLWNsci1idG4tcHJpbWFyeS1ib3JkZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1pbmZvKTstLWNsci1idG4tcHJpbWFyeS1ob3Zlci1iZy1jb2xvcjp2YXIoLS1jZHMt'@; put 'YWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWluZm8taG92ZXIpOy0tY2xyLWJ0bi1wcmltYXJ5LWhvdmVyLWNvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1jb2xvcik7LS1jbHItYnRuLXByaW1hcnktYWN0aXZlLWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTEwMCk7'@; put 'LS1jbHItYnRuLXByaW1hcnktYWN0aXZlLWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24taW5mby1hY3RpdmUpOy0tY2xyLWJ0bi1wcmltYXJ5LWRpc2FibGVkLWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWRpc2FibGVkLWJ1dHRvbik7LS1jbHIt'@; put 'YnRuLXByaW1hcnktZGlzYWJsZWQtYmctY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1kaXNhYmxlZCk7LS1jbHItYnRuLXByaW1hcnktZGlzYWJsZWQtYm9yZGVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtZGlzYWJsZWQpOy0tY2xyLWJ0bi1wcmltYXJ5LWNoZWNrZWQtYmct'@; put 'Y29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1pbmZvKTstLWNsci1idG4tcHJpbWFyeS1jaGVja2VkLWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTEwMCk7LS1jbHItYnRuLXByaW1hcnktb3V0bGluZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWluZm8p'@; put 'Oy0tY2xyLWJ0bi1wcmltYXJ5LW91dGxpbmUtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1vdXRsaW5lLWNvbG9yKTstLWNsci1idG4tcHJpbWFyeS1vdXRsaW5lLWJnLWNvbG9yOnZhcigtLWNsci1idG4tb3V0bGluZS1iZy1jb2xvcik7LS1jbHItYnRuLXByaW1hcnktb3V0'@; put 'bGluZS1ob3Zlci1iZy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWluZm8tc2Vjb25kYXJ5LWhvdmVyKTstLWNsci1idG4tcHJpbWFyeS1vdXRsaW5lLWhvdmVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWluZm8taG92ZXIpOy0tY2xyLWJ0bi1w'@; put 'cmltYXJ5LW91dGxpbmUtYWN0aXZlLWJnLWNvbG9yOnZhcigtLWNsci1idG4tb3V0bGluZS1iZy1jb2xvcik7LS1jbHItYnRuLXByaW1hcnktb3V0bGluZS1hY3RpdmUtY29sb3I6dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LW91dGxpbmUtY29sb3IpOy0tY2xyLWJ0bi1wcmltYXJ5LW91dGxpbmUt'@; put 'ZGlzYWJsZWQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZGlzYWJsZWQpOy0tY2xyLWJ0bi1wcmltYXJ5LW91dGxpbmUtZGlzYWJsZWQtYmctY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtYmctY29sb3IpOy0tY2xyLWJ0bi1wcmltYXJ5LW91dGxpbmUtZGlz'@; put 'YWJsZWQtYm9yZGVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtZGlzYWJsZWQpOy0tY2xyLWJ0bi1wcmltYXJ5LW91dGxpbmUtY2hlY2tlZC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci0xMDApOy0tY2xyLWJ0bi1wcmltYXJ5LW91dGxpbmUtY2hlY2tlZC1i'@; put 'Zy1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1iZy1jb2xvcik7LS1jbHItYnRuLXN1Y2Nlc3MtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItMTAwKTstLWNsci1idG4tc3VjY2Vzcy1iZy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLXN1Y2Nl'@; put 'c3MpOy0tY2xyLWJ0bi1zdWNjZXNzLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3MtYmctY29sb3IpOy0tY2xyLWJ0bi1zdWNjZXNzLWhvdmVyLWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tc3VjY2Vzcy1ob3Zlcik7LS1jbHItYnRuLXN1Y2Nl'@; put 'c3MtaG92ZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWNvbG9yKTstLWNsci1idG4tc3VjY2Vzcy1hY3RpdmUtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItMTAwKTstLWNsci1idG4tc3VjY2Vzcy1hY3RpdmUtYmctY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9i'@; put 'amVjdC1pbnRlcmFjdGlvbi1zdWNjZXNzLWFjdGl2ZSk7LS1jbHItYnRuLXN1Y2Nlc3MtZGlzYWJsZWQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZGlzYWJsZWQtYnV0dG9uKTstLWNsci1idG4tc3VjY2Vzcy1kaXNhYmxlZC1iZy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3Rh'@; put 'dHVzLWRpc2FibGVkKTstLWNsci1idG4tc3VjY2Vzcy1kaXNhYmxlZC1ib3JkZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1kaXNhYmxlZCk7LS1jbHItYnRuLXN1Y2Nlc3MtY2hlY2tlZC1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3MtY29sb3IpOy0tY2xyLWJ0bi1zdWNj'@; put 'ZXNzLWNoZWNrZWQtY29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWJnLWNvbG9yKTstLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtc3VjY2Vzcyk7LS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLW91'@; put 'dGxpbmUtYmctY29sb3IpOy0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtYm9yZGVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtc3VjY2Vzcyk7LS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1ob3Zlci1iZy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLXN1'@; put 'Y2Nlc3Mtc2Vjb25kYXJ5LWhvdmVyKTstLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWhvdmVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXN1Y2Nlc3MtaG92ZXIpOy0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtYWN0aXZlLWJnLWNvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vz'@; put 'cy1vdXRsaW5lLWJnLWNvbG9yKTstLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWFjdGl2ZS1jb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1jb2xvcik7LS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1kaXNhYmxlZC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1k'@; put 'aXNhYmxlZCk7LS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1kaXNhYmxlZC1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1iZy1jb2xvcik7LS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1kaXNhYmxlZC1ib3JkZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1k'@; put 'aXNhYmxlZCk7LS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1jaGVja2VkLWJnLWNvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWJnLWNvbG9yKTstLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWNoZWNrZWQtY29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtY29s'@; put 'b3IpOy0tY2xyLWJ0bi1kYW5nZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItMTAwKTstLWNsci1idG4tZGFuZ2VyLWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtZGFuZ2VyKTstLWNsci1idG4tZGFuZ2VyLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRu'@; put 'LWRhbmdlci1iZy1jb2xvcik7LS1jbHItYnRuLWRhbmdlci1ob3Zlci1iZy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWRhbmdlci1ob3Zlcik7LS1jbHItYnRuLWRhbmdlci1ob3Zlci1jb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1jb2xvcik7LS1jbHItYnRu'@; put 'LWRhbmdlci1hY3RpdmUtYmctY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1kYW5nZXItYWN0aXZlKTstLWNsci1idG4tZGFuZ2VyLWFjdGl2ZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci0xMDApOy0tY2xyLWJ0bi1kYW5nZXItZGlzYWJs'@; put 'ZWQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZGlzYWJsZWQtYnV0dG9uKTstLWNsci1idG4tZGFuZ2VyLWRpc2FibGVkLWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtZGlzYWJsZWQpOy0tY2xyLWJ0bi1kYW5nZXItZGlzYWJsZWQtYm9yZGVyLWNvbG9yOnZhcigt'@; put 'LWNkcy1hbGlhcy1zdGF0dXMtZGlzYWJsZWQpOy0tY2xyLWJ0bi1kYW5nZXItY2hlY2tlZC1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1iZy1jb2xvcik7LS1jbHItYnRuLWRhbmdlci1jaGVja2VkLWNvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLWNvbG9yKTstLWNsci1idG4tZGFu'@; put 'Z2VyLW91dGxpbmUtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1kYW5nZXIpOy0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLW91dGxpbmUtYmctY29sb3IpOy0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1ib3JkZXItY29sb3I6dmFyKC0tY2RzLWFs'@; put 'aWFzLXN0YXR1cy1kYW5nZXIpOy0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1ob3Zlci1iZy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWRhbmdlci1zZWNvbmRhcnktaG92ZXIpOy0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1ob3Zlci1jb2xvcjp2YXIoLS1jZHMt'@; put 'YWxpYXMtdHlwb2dyYXBoeS1kYW5nZXItaG92ZXIpOy0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1hY3RpdmUtYmctY29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1iZy1jb2xvcik7LS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWFjdGl2ZS1jb2xvcjp2YXIoLS1jbHItYnRuLWRh'@; put 'bmdlci1vdXRsaW5lLWNvbG9yKTstLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtZGlzYWJsZWQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZGlzYWJsZWQpOy0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1kaXNhYmxlZC1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0'@; put 'bGluZS1iZy1jb2xvcik7LS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWRpc2FibGVkLWJvcmRlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWRpc2FibGVkKTstLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtY2hlY2tlZC1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1vdXRsaW5l'@; put 'LWJnLWNvbG9yKTstLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtY2hlY2tlZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWNvbG9yKTstLWNsci1idG4td2FybmluZy1jb2xvcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsYWNrKTstLWNsci1idG4td2FybmluZy1iZy1jb2xv'@; put 'cjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLXdhcm5pbmcpOy0tY2xyLWJ0bi13YXJuaW5nLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctYmctY29sb3IpOy0tY2xyLWJ0bi13YXJuaW5nLWhvdmVyLWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24t'@; put 'd2FybmluZy1ob3Zlcik7LS1jbHItYnRuLXdhcm5pbmctaG92ZXItY29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLWNvbG9yKTstLWNsci1idG4td2FybmluZy1hY3RpdmUtYmctY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi13YXJuaW5nLWFjdGl2ZSk7LS1jbHIt'@; put 'YnRuLXdhcm5pbmctYWN0aXZlLWNvbG9yOnZhcigtLWNsci1idG4td2FybmluZy1jb2xvcik7LS1jbHItYnRuLXdhcm5pbmctZGlzYWJsZWQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZGlzYWJsZWQtYnV0dG9uKTstLWNsci1idG4td2FybmluZy1kaXNhYmxlZC1iZy1jb2xv'@; put 'cjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWRpc2FibGVkKTstLWNsci1idG4td2FybmluZy1kaXNhYmxlZC1ib3JkZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1kaXNhYmxlZCk7LS1jbHItYnRuLXdhcm5pbmctY2hlY2tlZC1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmct'@; put 'YmctY29sb3IpOy0tY2xyLWJ0bi13YXJuaW5nLWNoZWNrZWQtY29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLWNvbG9yKTstLWNsci1idG4td2FybmluZy1vdXRsaW5lLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtd2FybmluZy1kYXJrKTstLWNsci1idG4td2FybmluZy1vdXRsaW5l'@; put 'LWJnLWNvbG9yOnZhcigtLWNsci1idG4tb3V0bGluZS1iZy1jb2xvcik7LS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1ib3JkZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy13YXJuaW5nLWRhcmspOy0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtaG92ZXItYmctY29sb3I6dmFyKC0t'@; put 'Y2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi13YXJuaW5nLXNlY29uZGFyeS1ob3Zlcik7LS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1ob3Zlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS13YXJuaW5nLWhvdmVyKTstLWNsci1idG4td2FybmluZy1vdXRsaW5lLWFjdGl2'@; put 'ZS1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1iZy1jb2xvcik7LS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1hY3RpdmUtY29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtY29sb3IpOy0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtZGlzYWJsZWQtY29s'@; put 'b3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZGlzYWJsZWQpOy0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtZGlzYWJsZWQtYmctY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtYmctY29sb3IpOy0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtZGlzYWJsZWQtYm9yZGVy'@; put 'LWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtZGlzYWJsZWQpOy0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtY2hlY2tlZC1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1iZy1jb2xvcik7LS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1jaGVja2VkLWNvbG9yOnZh'@; put 'cigtLWNsci1idG4td2FybmluZy1vdXRsaW5lLWNvbG9yKTstLWNsci1idG4tbmV1dHJhbC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci0xMDApOy0tY2xyLWJ0bi1uZXV0cmFsLWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtbmV1dHJhbCk7LS1jbHItYnRu'@; put 'LW5ldXRyYWwtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tbmV1dHJhbC1iZy1jb2xvcik7LS1jbHItYnRuLW5ldXRyYWwtaG92ZXItYmctY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1uZXV0cmFsLWhvdmVyKTstLWNsci1idG4tbmV1dHJhbC1ob3Zlci1jb2xv'@; put 'cjp2YXIoLS1jbHItYnRuLW5ldXRyYWwtY29sb3IpOy0tY2xyLWJ0bi1uZXV0cmFsLWFjdGl2ZS1iZy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLW5ldXRyYWwtYWN0aXZlKTstLWNsci1idG4tbmV1dHJhbC1hY3RpdmUtY29sb3I6dmFyKC0tY2xyLWJ0bi1uZXV0'@; put 'cmFsLWNvbG9yKTstLWNsci1idG4tbmV1dHJhbC1kaXNhYmxlZC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1kaXNhYmxlZC1idXR0b24pOy0tY2xyLWJ0bi1uZXV0cmFsLWRpc2FibGVkLWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtZGlzYWJsZWQpOy0tY2xyLWJ0'@; put 'bi1uZXV0cmFsLWRpc2FibGVkLWJvcmRlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWRpc2FibGVkKTstLWNsci1idG4tbmV1dHJhbC1jaGVja2VkLWJnLWNvbG9yOnZhcigtLWNsci1idG4tbmV1dHJhbC1iZy1jb2xvcik7LS1jbHItYnRuLW5ldXRyYWwtY2hlY2tlZC1jb2xvcjp2'@; put 'YXIoLS1jbHItYnRuLW5ldXRyYWwtY29sb3IpOy0tY2xyLWJ0bi1uZXV0cmFsLW91dGxpbmUtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1uZXV0cmFsKTstLWNsci1idG4tbmV1dHJhbC1vdXRsaW5lLWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3Qtb3BhY2l0eS0wKTstLWNs'@; put 'ci1idG4tbmV1dHJhbC1vdXRsaW5lLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLW5ldXRyYWwtb3V0bGluZS1jb2xvcik7LS1jbHItYnRuLW5ldXRyYWwtb3V0bGluZS1ob3Zlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1uZXV0cmFsLWhvdmVyKTstLWNsci1idG4tbmV1'@; put 'dHJhbC1vdXRsaW5lLWhvdmVyLWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tbmV1dHJhbC1zZWNvbmRhcnktaG92ZXIpOy0tY2xyLWJ0bi1uZXV0cmFsLW91dGxpbmUtYWN0aXZlLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtbmV1dHJhbCk7LS1jbHIt'@; put 'YnRuLW5ldXRyYWwtb3V0bGluZS1hY3RpdmUtYmctY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1vcGFjaXR5LTApOy0tY2xyLWJ0bi1uZXV0cmFsLW91dGxpbmUtZGlzYWJsZWQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZGlzYWJsZWQpOy0tY2xyLWJ0bi1uZXV0cmFs'@; put 'LW91dGxpbmUtZGlzYWJsZWQtYmctY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtYmctY29sb3IpOy0tY2xyLWJ0bi1uZXV0cmFsLW91dGxpbmUtZGlzYWJsZWQtYm9yZGVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtZGlzYWJsZWQpOy0tY2xyLWJ0bi1uZXV0cmFs'@; put 'LW91dGxpbmUtY2hlY2tlZC1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLW5ldXRyYWwtb3V0bGluZS1iZy1jb2xvcik7LS1jbHItYnRuLW5ldXRyYWwtb3V0bGluZS1jaGVja2VkLWNvbG9yOnZhcigtLWNsci1idG4tbmV1dHJhbC1vdXRsaW5lLWNvbG9yKTstLWNsci1idG4tbGluay1jb2xvcjp2'@; put 'YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWluZm8pOy0tY2xyLWJ0bi1saW5rLWJnLWNvbG9yOnZhcigtLWNsci1idG4tdHJhbnNwYXJlbnQtYmctY29sb3IpOy0tY2xyLWJ0bi1saW5rLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLXRyYW5zcGFyZW50LWJnLWNvbG9yKTstLWNsci1idG4tbGlu'@; put 'ay1hY3RpdmUtY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWNvbG9yKTstLWNsci1idG4tbGluay1hY3RpdmUtYmctY29sb3I6dmFyKC0tY2xyLWJ0bi10cmFuc3BhcmVudC1iZy1jb2xvcik7LS1jbHItYnRuLWxpbmstaG92ZXItYmctY29sb3I6dmFyKC0tY2xyLWJ0bi10cmFuc3BhcmVudC1i'@; put 'Zy1jb2xvcik7LS1jbHItYnRuLWxpbmstaG92ZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktaW5mby1ob3Zlcik7LS1jbHItYnRuLWxpbmstdmlzaXRlZC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1saW5rLWNvbG9yLXZpc2l0ZWQpOy0tY2xyLWJ0bi1saW5r'@; put 'LXZpc2l0ZWQtaG92ZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktbGluay1jb2xvci12aXNpdGVkLWhvdmVyKTstLWNsci1idG4tbGluay1kaXNhYmxlZC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1kaXNhYmxlZCk7LS1jbHItYnRuLWxpbmstZGlzYWJsZWQt'@; put 'YmctY29sb3I6dmFyKC0tY2xyLWJ0bi10cmFuc3BhcmVudC1iZy1jb2xvcik7LS1jbHItYnRuLWxpbmstZGlzYWJsZWQtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tdHJhbnNwYXJlbnQtYmctY29sb3IpOy0tY2xyLWJ0bi1saW5rLWNoZWNrZWQtYmctY29sb3I6dmFyKC0tY2xyLWJ0bi10'@; put 'cmFuc3BhcmVudC1iZy1jb2xvcik7LS1jbHItYnRuLWxpbmstY2hlY2tlZC1jb2xvcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtODAwKTstLWNsci1idG4tbGluay1wcmltYXJ5LWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtaW5mbyk7LS1jbHItYnRuLWxpbmstcHJpbWFyeS1i'@; put 'Zy1jb2xvcjp2YXIoLS1jbHItYnRuLXRyYW5zcGFyZW50LWJnLWNvbG9yKTstLWNsci1idG4tbGluay1wcmltYXJ5LWJvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLXRyYW5zcGFyZW50LWJnLWNvbG9yKTstLWNsci1idG4tbGluay1wcmltYXJ5LWhvdmVyLWJnLWNvbG9yOnZhcigtLWNsci1i'@; put 'dG4tdHJhbnNwYXJlbnQtYmctY29sb3IpOy0tY2xyLWJ0bi1saW5rLXByaW1hcnktaG92ZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktaW5mby1ob3Zlcik7LS1jbHItYnRuLWxpbmstcHJpbWFyeS1hY3RpdmUtY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLXByaW1hcnktY29s'@; put 'b3IpOy0tY2xyLWJ0bi1saW5rLXByaW1hcnktYWN0aXZlLWJnLWNvbG9yOnZhcigtLWNsci1idG4tdHJhbnNwYXJlbnQtYmctY29sb3IpOy0tY2xyLWJ0bi1saW5rLXByaW1hcnktZGlzYWJsZWQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZGlzYWJsZWQpOy0tY2xyLWJ0bi1s'@; put 'aW5rLXByaW1hcnktZGlzYWJsZWQtYmctY29sb3I6dmFyKC0tY2xyLWJ0bi10cmFuc3BhcmVudC1iZy1jb2xvcik7LS1jbHItYnRuLWxpbmstcHJpbWFyeS1kaXNhYmxlZC1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi10cmFuc3BhcmVudC1iZy1jb2xvcik7LS1jbHItYnRuLWxpbmstcHJp'@; put 'bWFyeS1jaGVja2VkLWJnLWNvbG9yOnZhcigtLWNsci1idG4tdHJhbnNwYXJlbnQtYmctY29sb3IpOy0tY2xyLWJ0bi1saW5rLXByaW1hcnktY2hlY2tlZC1jb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstcHJpbWFyeS1jb2xvcik7LS1jbHItYnRuLWxpbmstc3VjY2Vzcy1jb2xvcjp2YXIoLS1j'@; put 'ZHMtYWxpYXMtc3RhdHVzLXN1Y2Nlc3MpOy0tY2xyLWJ0bi1saW5rLXN1Y2Nlc3MtYmctY29sb3I6dmFyKC0tY2xyLWJ0bi10cmFuc3BhcmVudC1iZy1jb2xvcik7LS1jbHItYnRuLWxpbmstc3VjY2Vzcy1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi10cmFuc3BhcmVudC1iZy1jb2xvcik7'@; put 'LS1jbHItYnRuLWxpbmstc3VjY2Vzcy1ob3Zlci1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLXRyYW5zcGFyZW50LWJnLWNvbG9yKTstLWNsci1idG4tbGluay1zdWNjZXNzLWhvdmVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXN1Y2Nlc3MtaG92ZXIpOy0tY2xyLWJ0bi1saW5r'@; put 'LXN1Y2Nlc3MtYWN0aXZlLWNvbG9yOnZhcigtLWNsci1idG4tbGluay1zdWNjZXNzLWNvbG9yKTstLWNsci1idG4tbGluay1zdWNjZXNzLWFjdGl2ZS1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLXRyYW5zcGFyZW50LWJnLWNvbG9yKTstLWNsci1idG4tbGluay1zdWNjZXNzLWRpc2FibGVkLWNv'@; put 'bG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWRpc2FibGVkKTstLWNsci1idG4tbGluay1zdWNjZXNzLWRpc2FibGVkLWJnLWNvbG9yOnZhcigtLWNsci1idG4tdHJhbnNwYXJlbnQtYmctY29sb3IpOy0tY2xyLWJ0bi1saW5rLXN1Y2Nlc3MtZGlzYWJsZWQtYm9yZGVyLWNvbG9yOnZh'@; put 'cigtLWNsci1idG4tdHJhbnNwYXJlbnQtYmctY29sb3IpOy0tY2xyLWJ0bi1saW5rLXN1Y2Nlc3MtY2hlY2tlZC1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLXRyYW5zcGFyZW50LWJnLWNvbG9yKTstLWNsci1idG4tbGluay1zdWNjZXNzLWNoZWNrZWQtY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5r'@; put 'LXN1Y2Nlc3MtY29sb3IpOy0tY2xyLWJ0bi1saW5rLXdhcm5pbmctY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy13YXJuaW5nLWRhcmspOy0tY2xyLWJ0bi1saW5rLXdhcm5pbmctYmctY29sb3I6dmFyKC0tY2xyLWJ0bi10cmFuc3BhcmVudC1iZy1jb2xvcik7LS1jbHItYnRuLWxpbmst'@; put 'd2FybmluZy1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi10cmFuc3BhcmVudC1iZy1jb2xvcik7LS1jbHItYnRuLWxpbmstd2FybmluZy1ob3Zlci1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLXRyYW5zcGFyZW50LWJnLWNvbG9yKTstLWNsci1idG4tbGluay13YXJuaW5nLWhvdmVyLWNvbG9y'@; put 'OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXdhcm5pbmctaG92ZXIpOy0tY2xyLWJ0bi1saW5rLXdhcm5pbmctYWN0aXZlLWNvbG9yOnZhcigtLWNsci1idG4tbGluay13YXJuaW5nLWNvbG9yKTstLWNsci1idG4tbGluay13YXJuaW5nLWFjdGl2ZS1iZy1jb2xvcjp2YXIoLS1jbHItYnRu'@; put 'LXRyYW5zcGFyZW50LWJnLWNvbG9yKTstLWNsci1idG4tbGluay13YXJuaW5nLWRpc2FibGVkLWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWRpc2FibGVkKTstLWNsci1idG4tbGluay13YXJuaW5nLWRpc2FibGVkLWJnLWNvbG9yOnZhcigtLWNsci1idG4tdHJhbnNwYXJlbnQt'@; put 'YmctY29sb3IpOy0tY2xyLWJ0bi1saW5rLXdhcm5pbmctZGlzYWJsZWQtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tdHJhbnNwYXJlbnQtYmctY29sb3IpOy0tY2xyLWJ0bi1saW5rLXdhcm5pbmctY2hlY2tlZC1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLXRyYW5zcGFyZW50LWJnLWNvbG9y'@; put 'KTstLWNsci1idG4tbGluay13YXJuaW5nLWNoZWNrZWQtY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLXdhcm5pbmctY29sb3IpOy0tY2xyLWJ0bi1saW5rLWRhbmdlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWRhbmdlcik7LS1jbHItYnRuLWxpbmstZGFuZ2VyLWJnLWNvbG9yOnZh'@; put 'cigtLWNsci1idG4tdHJhbnNwYXJlbnQtYmctY29sb3IpOy0tY2xyLWJ0bi1saW5rLWRhbmdlci1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi10cmFuc3BhcmVudC1iZy1jb2xvcik7LS1jbHItYnRuLWxpbmstZGFuZ2VyLWhvdmVyLWJnLWNvbG9yOnZhcigtLWNsci1idG4tdHJhbnNwYXJl'@; put 'bnQtYmctY29sb3IpOy0tY2xyLWJ0bi1saW5rLWRhbmdlci1ob3Zlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1kYW5nZXItaG92ZXIpOy0tY2xyLWJ0bi1saW5rLWRhbmdlci1hY3RpdmUtY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWRhbmdlci1jb2xvcik7LS1jbHItYnRu'@; put 'LWxpbmstZGFuZ2VyLWFjdGl2ZS1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLXRyYW5zcGFyZW50LWJnLWNvbG9yKTstLWNsci1idG4tbGluay1kYW5nZXItZGlzYWJsZWQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZGlzYWJsZWQpOy0tY2xyLWJ0bi1saW5rLWRhbmdlci1kaXNh'@; put 'YmxlZC1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLXRyYW5zcGFyZW50LWJnLWNvbG9yKTstLWNsci1idG4tbGluay1kYW5nZXItZGlzYWJsZWQtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tdHJhbnNwYXJlbnQtYmctY29sb3IpOy0tY2xyLWJ0bi1saW5rLWRhbmdlci1jaGVja2VkLWJnLWNv'@; put 'bG9yOnZhcigtLWNsci1idG4tdHJhbnNwYXJlbnQtYmctY29sb3IpOy0tY2xyLWJ0bi1saW5rLWRhbmdlci1jaGVja2VkLWNvbG9yOnZhcigtLWNsci1idG4tbGluay1kYW5nZXItY29sb3IpOy0tY2xyLWJ0bi1saW5rLW5ldXRyYWwtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1uZXV0'@; put 'cmFsKTstLWNsci1idG4tbGluay1uZXV0cmFsLWJnLWNvbG9yOnZhcigtLWNsci1idG4tdHJhbnNwYXJlbnQtYmctY29sb3IpOy0tY2xyLWJ0bi1saW5rLW5ldXRyYWwtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tdHJhbnNwYXJlbnQtYmctY29sb3IpOy0tY2xyLWJ0bi1saW5rLW5ldXRy'@; put 'YWwtaG92ZXItYmctY29sb3I6dmFyKC0tY2xyLWJ0bi10cmFuc3BhcmVudC1iZy1jb2xvcik7LS1jbHItYnRuLWxpbmstbmV1dHJhbC1ob3Zlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1uZXV0cmFsLWhvdmVyKTstLWNsci1idG4tbGluay1uZXV0cmFsLWFjdGl2ZS1jb2xv'@; put 'cjp2YXIoLS1jbHItYnRuLWxpbmstbmV1dHJhbC1jb2xvcik7LS1jbHItYnRuLWxpbmstbmV1dHJhbC1hY3RpdmUtYmctY29sb3I6dmFyKC0tY2xyLWJ0bi10cmFuc3BhcmVudC1iZy1jb2xvcik7LS1jbHItYnRuLWxpbmstbmV1dHJhbC1kaXNhYmxlZC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMt'@; put 'dHlwb2dyYXBoeS1kaXNhYmxlZCk7LS1jbHItYnRuLWxpbmstbmV1dHJhbC1kaXNhYmxlZC1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLXRyYW5zcGFyZW50LWJnLWNvbG9yKTstLWNsci1idG4tbGluay1uZXV0cmFsLWRpc2FibGVkLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLXRyYW5zcGFy'@; put 'ZW50LWJnLWNvbG9yKTstLWNsci1idG4tbGluay1uZXV0cmFsLWNoZWNrZWQtYmctY29sb3I6dmFyKC0tY2xyLWJ0bi10cmFuc3BhcmVudC1iZy1jb2xvcik7LS1jbHItYnRuLWxpbmstbmV1dHJhbC1jaGVja2VkLWNvbG9yOnZhcigtLWNsci1idG4tbGluay1uZXV0cmFsLWNvbG9yKTstLWNs'@; put 'ci1idG4taW52ZXJzZS1jb2xvcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXdoaXRlKTstLWNsci1idG4taW52ZXJzZS1ib3JkZXItY29sb3I6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci13aGl0ZSk7LS1jbHItYnRuLWludmVyc2UtYmctY29sb3I6dmFyKC0tY2xyLWJ0bi10cmFuc3BhcmVudC1i'@; put 'Zy1jb2xvcik7LS1jbHItYnRuLWludmVyc2UtaG92ZXItYmctY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1pbnZlcnNlLWhvdmVyKTstLWNsci1idG4taW52ZXJzZS1ob3Zlci1jb2xvcjp2YXIoLS1jbHItYnRuLWludmVyc2UtY29sb3IpOy0tY2xyLWJ0bi1pbnZl'@; put 'cnNlLWFjdGl2ZS1iZy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWludmVyc2UtYWN0aXZlKTstLWNsci1idG4taW52ZXJzZS1hY3RpdmUtY29sb3I6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci13aGl0ZSk7LS1jbHItYnRuLWludmVyc2UtZGlzYWJsZWQtY29sb3I6'@; put 'dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZGlzYWJsZWQpOy0tY2xyLWJ0bi1pbnZlcnNlLWRpc2FibGVkLWJnLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWJnLWNvbG9yKTstLWNsci1idG4taW52ZXJzZS1kaXNhYmxlZC1ib3JkZXItY29sb3I6dmFyKC0tY2RzLWFs'@; put 'aWFzLXN0YXR1cy1kaXNhYmxlZCk7LS1jbHItYnRuLWludmVyc2UtY2hlY2tlZC1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLWludmVyc2UtYmctY29sb3IpOy0tY2xyLWJ0bi1pbnZlcnNlLWNoZWNrZWQtY29sb3I6dmFyKC0tY2xyLWJ0bi1pbnZlcnNlLWNvbG9yKX0uYnRuLC5hbGVydC1hcHAt'@; put 'bGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bntjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2dhcDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpO2FsaWduLWl0ZW1zOmNlbnRlcjtwbGFjZS1jb250ZW50OmNlbnRlcjstd2Via2l0LWFwcGVhcmFuY2U6bm9uZSFpbXBvcnRhbnQ7Ym9y'@; put 'ZGVyOnZhcigtLWNsci1idG4tYm9yZGVyLXdpZHRoKSBzb2xpZDtib3JkZXItcmFkaXVzOnZhcigtLWNsci1idG4tYm9yZGVyLXJhZGl1cyk7bWluLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTQpO21heC13aWR0aDpjYWxjKDM2MCooMXJlbS92YXIoLS1jZHMtZ2xvYmFsLWJhc2Up'@; put 'KSk7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7b3ZlcmZsb3c6aGlkZGVuO3RleHQtYWxpZ246Y2VudGVyO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWJvcmRlci1j'@; put 'b2xvcik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1jb2xvcik7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtc2VtaWJvbGQpO2ZvbnQtc2l6ZTp2YXIo'@; put 'LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1mb250LXNpemUtMik7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEpO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtoZWlnaHQ6dmFyKC0tY2xyLWJ0bi1hcHBl'@; put 'YXJhbmNlLWZvcm0taGVpZ2h0KTtwYWRkaW5nOnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1mb3JtLXBhZGRpbmcpfS5idG46aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lfS5idG4gY2RzLWljb24sLmFsZXJ0LWFwcC1s'@; put 'ZXZlbCAuYWxlcnQtaXRlbSAuYnRuIGNkcy1pY29uLC5idG4gY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1jb2xvcil9LmJ0bjpob3ZlciwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5i'@; put 'dG46aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtaG92ZXItYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1ob3Zlci1jb2xvcil9LmJ0bjpob3ZlciBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG46aG92ZXIg'@; put 'Y2RzLWljb24sLmJ0bjpob3ZlciBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG46aG92ZXIgY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWhvdmVyLWNvbG9yKX0uYnRuOmFjdGl2ZSwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG46'@; put 'YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWFjdGl2ZS1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWFjdGl2ZS1jb2xvcil9LmJ0bjphY3RpdmUgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuOmFjdGl2'@; put 'ZSBjZHMtaWNvbiwuYnRuOmFjdGl2ZSBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG46YWN0aXZlIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1hY3RpdmUtY29sb3IpfS5idG4uZGlzYWJsZWQsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRl'@; put 'bSAuZGlzYWJsZWQuYnRuLC5idG46ZGlzYWJsZWQsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuOmRpc2FibGVke2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1kaXNhYmxlZC1jb2xvcik7Y3Vyc29yOm5vdC1hbGxvd2VkO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0'@; put 'bi1kZWZhdWx0LWRpc2FibGVkLWJnLWNvbG9yKTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWRpc2FibGVkLWJvcmRlci1jb2xvcil9LmJ0bi5kaXNhYmxlZCBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5kaXNhYmxlZC5idG4gY2RzLWljb24sLmJ0'@; put 'bi5kaXNhYmxlZCBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5kaXNhYmxlZC5idG4gY2xyLWljb24sLmJ0bjpkaXNhYmxlZCBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG46ZGlzYWJsZWQgY2RzLWljb24sLmJ0bjpkaXNhYmxlZCBjbHIt'@; put 'aWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG46ZGlzYWJsZWQgY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWRpc2FibGVkLWNvbG9yKX0uYnRuIC5jbHItbG9hZGluZy1idG4tY29udGVudCwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4g'@; put 'LmNsci1sb2FkaW5nLWJ0bi1jb250ZW50e2Rpc3BsYXk6ZmxleDtnYXA6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KTthbGlnbi1pdGVtczpjZW50ZXJ9LmJ0bi1ncm91cD4uYnRuIGNsci1pY29uLC5idG4gY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuIGNsci1p'@; put 'Y29ue3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLGNhbGMoLTEqdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0yKSksMCl9YS5idG4sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSBhLmJ0biwuYnRuLmJ0bi1zZWNvbmRhcnksLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLXNlY29u'@; put 'ZGFyeS5idG4sLmJ0bi1zZWNvbmRhcnkgLmJ0biwuYnRuLXNlY29uZGFyeSAuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLXNlY29uZGFyeSAuYnRue2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtYm9y'@; put 'ZGVyLWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWNvbG9yKX1hLmJ0biBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIGEuYnRuIGNkcy1pY29uLGEuYnRuIGNsci1p'@; put 'Y29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gYS5idG4gY2xyLWljb24sLmJ0bi5idG4tc2Vjb25kYXJ5IGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1zZWNvbmRhcnkuYnRuIGNkcy1pY29uLC5idG4uYnRuLXNlY29uZGFyeSBjbHItaWNvbiwuYWxl'@; put 'cnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tc2Vjb25kYXJ5LmJ0biBjbHItaWNvbiwuYnRuLXNlY29uZGFyeSAuYnRuIGNkcy1pY29uLC5idG4tc2Vjb25kYXJ5IC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0biBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1p'@; put 'dGVtIC5idG4tc2Vjb25kYXJ5IC5idG4gY2RzLWljb24sLmJ0bi1zZWNvbmRhcnkgLmJ0biBjbHItaWNvbiwuYnRuLXNlY29uZGFyeSAuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4gY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLXNlY29uZGFyeSAu'@; put 'YnRuIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1jb2xvcil9YS5idG46aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSBhLmJ0bjpob3ZlciwuYnRuLmJ0bi1zZWNvbmRhcnk6aG92ZXIsLmJ0bi1zZWNvbmRhcnkgLmJ0bjpob3ZlcntiYWNrZ3JvdW5kLWNv'@; put 'bG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1ob3Zlci1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWhvdmVyLWNvbG9yKX1hLmJ0bjpob3ZlciBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIGEuYnRuOmhvdmVyIGNkcy1pY29uLGEuYnRuOmhvdmVy'@; put 'IGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gYS5idG46aG92ZXIgY2xyLWljb24sLmJ0bi5idG4tc2Vjb25kYXJ5OmhvdmVyIGNkcy1pY29uLC5idG4uYnRuLXNlY29uZGFyeTpob3ZlciBjbHItaWNvbiwuYnRuLXNlY29uZGFyeSAuYnRuOmhvdmVyIGNkcy1pY29uLC5i'@; put 'dG4tc2Vjb25kYXJ5IC5idG46aG92ZXIgY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWhvdmVyLWNvbG9yKX1hLmJ0bjphY3RpdmUsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSBhLmJ0bjphY3RpdmUsLmJ0bi5idG4tc2Vjb25kYXJ5OmFjdGl2ZSwuYnRuLXNlY29u'@; put 'ZGFyeSAuYnRuOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1hY3RpdmUtYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1hY3RpdmUtY29sb3IpfWEuYnRuOmFjdGl2ZSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVt'@; put 'IGEuYnRuOmFjdGl2ZSBjZHMtaWNvbixhLmJ0bjphY3RpdmUgY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSBhLmJ0bjphY3RpdmUgY2xyLWljb24sLmJ0bi5idG4tc2Vjb25kYXJ5OmFjdGl2ZSBjZHMtaWNvbiwuYnRuLmJ0bi1zZWNvbmRhcnk6YWN0aXZlIGNsci1pY29u'@; put 'LC5idG4tc2Vjb25kYXJ5IC5idG46YWN0aXZlIGNkcy1pY29uLC5idG4tc2Vjb25kYXJ5IC5idG46YWN0aXZlIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1hY3RpdmUtY29sb3IpfWEuYnRuLmRpc2FibGVkLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gYS5kaXNh'@; put 'YmxlZC5idG4sYS5idG46ZGlzYWJsZWQsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSBhLmJ0bjpkaXNhYmxlZCwuYnRuLmJ0bi1zZWNvbmRhcnkuZGlzYWJsZWQsLmJ0bi5idG4tc2Vjb25kYXJ5OmRpc2FibGVkLC5idG4tc2Vjb25kYXJ5IC5idG4uZGlzYWJsZWQsLmJ0bi1zZWNvbmRh'@; put 'cnkgLmJ0bjpkaXNhYmxlZHtjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtZGlzYWJsZWQtY29sb3IpO2N1cnNvcjpub3QtYWxsb3dlZDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1kaXNhYmxlZC1iZy1jb2xvcik7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4t'@; put 'ZGVmYXVsdC1kaXNhYmxlZC1ib3JkZXItY29sb3IpfWEuYnRuLmRpc2FibGVkIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gYS5kaXNhYmxlZC5idG4gY2RzLWljb24sYS5idG4uZGlzYWJsZWQgY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSBhLmRp'@; put 'c2FibGVkLmJ0biBjbHItaWNvbixhLmJ0bjpkaXNhYmxlZCBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIGEuYnRuOmRpc2FibGVkIGNkcy1pY29uLGEuYnRuOmRpc2FibGVkIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gYS5idG46ZGlzYWJsZWQg'@; put 'Y2xyLWljb24sLmJ0bi5idG4tc2Vjb25kYXJ5LmRpc2FibGVkIGNkcy1pY29uLC5idG4uYnRuLXNlY29uZGFyeS5kaXNhYmxlZCBjbHItaWNvbiwuYnRuLmJ0bi1zZWNvbmRhcnk6ZGlzYWJsZWQgY2RzLWljb24sLmJ0bi5idG4tc2Vjb25kYXJ5OmRpc2FibGVkIGNsci1pY29uLC5idG4tc2Vj'@; put 'b25kYXJ5IC5idG4uZGlzYWJsZWQgY2RzLWljb24sLmJ0bi1zZWNvbmRhcnkgLmJ0bi5kaXNhYmxlZCBjbHItaWNvbiwuYnRuLXNlY29uZGFyeSAuYnRuOmRpc2FibGVkIGNkcy1pY29uLC5idG4tc2Vjb25kYXJ5IC5idG46ZGlzYWJsZWQgY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi1k'@; put 'ZWZhdWx0LWRpc2FibGVkLWNvbG9yKX0uYnRuLmJ0bi1pbmZvLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1pbmZvLmJ0biwuYnRuLWluZm8gLmJ0biwuYnRuLWluZm8gLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0'@; put 'ZW0gLmJ0bi1pbmZvIC5idG4sLmJ0bi5idG4tcHJpbWFyeSwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tcHJpbWFyeS5idG4sLmJ0bi1wcmltYXJ5IC5idG4sLmJ0bi1wcmltYXJ5IC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0biwuYWxlcnQtYXBwLWxldmVsIC5h'@; put 'bGVydC1pdGVtIC5idG4tcHJpbWFyeSAuYnRue2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktYm9yZGVyLWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LWNvbG9yKX0uYnRu'@; put 'LmJ0bi1pbmZvIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1pbmZvLmJ0biBjZHMtaWNvbiwuYnRuLmJ0bi1pbmZvIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1pbmZvLmJ0biBjbHItaWNvbiwuYnRuLWluZm8gLmJ0biBjZHMt'@; put 'aWNvbiwuYnRuLWluZm8gLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1pbmZvIC5idG4gY2RzLWljb24sLmJ0bi1pbmZvIC5idG4gY2xyLWljb24sLmJ0bi1pbmZvIC5hbGVydC1hcHAtbGV2ZWwgLmFs'@; put 'ZXJ0LWl0ZW0gLmJ0biBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4taW5mbyAuYnRuIGNsci1pY29uLC5idG4uYnRuLXByaW1hcnkgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLXByaW1hcnkuYnRuIGNkcy1pY29uLC5idG4uYnRu'@; put 'LXByaW1hcnkgY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLXByaW1hcnkuYnRuIGNsci1pY29uLC5idG4tcHJpbWFyeSAuYnRuIGNkcy1pY29uLC5idG4tcHJpbWFyeSAuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4gY2RzLWljb24sLmFsZXJ0LWFw'@; put 'cC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLXByaW1hcnkgLmJ0biBjZHMtaWNvbiwuYnRuLXByaW1hcnkgLmJ0biBjbHItaWNvbiwuYnRuLXByaW1hcnkgLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1w'@; put 'cmltYXJ5IC5idG4gY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LWNvbG9yKX0uYnRuLmJ0bi1pbmZvOmhvdmVyLC5idG4taW5mbyAuYnRuOmhvdmVyLC5idG4uYnRuLXByaW1hcnk6aG92ZXIsLmJ0bi1wcmltYXJ5IC5idG46aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIo'@; put 'LS1jbHItYnRuLXByaW1hcnktaG92ZXItYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1ob3Zlci1jb2xvcil9LmJ0bi5idG4taW5mbzpob3ZlciBjZHMtaWNvbiwuYnRuLmJ0bi1pbmZvOmhvdmVyIGNsci1pY29uLC5idG4taW5mbyAuYnRuOmhvdmVyIGNkcy1pY29uLC5i'@; put 'dG4taW5mbyAuYnRuOmhvdmVyIGNsci1pY29uLC5idG4uYnRuLXByaW1hcnk6aG92ZXIgY2RzLWljb24sLmJ0bi5idG4tcHJpbWFyeTpob3ZlciBjbHItaWNvbiwuYnRuLXByaW1hcnkgLmJ0bjpob3ZlciBjZHMtaWNvbiwuYnRuLXByaW1hcnkgLmJ0bjpob3ZlciBjbHItaWNvbntjb2xvcjp2'@; put 'YXIoLS1jbHItYnRuLXByaW1hcnktaG92ZXItY29sb3IpfS5idG4uYnRuLWluZm86YWN0aXZlLC5idG4taW5mbyAuYnRuOmFjdGl2ZSwuYnRuLmJ0bi1wcmltYXJ5OmFjdGl2ZSwuYnRuLXByaW1hcnkgLmJ0bjphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnkt'@; put 'YWN0aXZlLWJnLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktYWN0aXZlLWNvbG9yKX0uYnRuLmJ0bi1pbmZvOmFjdGl2ZSBjZHMtaWNvbiwuYnRuLmJ0bi1pbmZvOmFjdGl2ZSBjbHItaWNvbiwuYnRuLWluZm8gLmJ0bjphY3RpdmUgY2RzLWljb24sLmJ0bi1pbmZvIC5idG46'@; put 'YWN0aXZlIGNsci1pY29uLC5idG4uYnRuLXByaW1hcnk6YWN0aXZlIGNkcy1pY29uLC5idG4uYnRuLXByaW1hcnk6YWN0aXZlIGNsci1pY29uLC5idG4tcHJpbWFyeSAuYnRuOmFjdGl2ZSBjZHMtaWNvbiwuYnRuLXByaW1hcnkgLmJ0bjphY3RpdmUgY2xyLWljb257Y29sb3I6dmFyKC0tY2xy'@; put 'LWJ0bi1wcmltYXJ5LWFjdGl2ZS1jb2xvcil9LmJ0bi5idG4taW5mby5kaXNhYmxlZCwuYnRuLmJ0bi1pbmZvOmRpc2FibGVkLC5idG4taW5mbyAuYnRuLmRpc2FibGVkLC5idG4taW5mbyAuYnRuOmRpc2FibGVkLC5idG4uYnRuLXByaW1hcnkuZGlzYWJsZWQsLmJ0bi5idG4tcHJpbWFyeTpk'@; put 'aXNhYmxlZCwuYnRuLXByaW1hcnkgLmJ0bi5kaXNhYmxlZCwuYnRuLXByaW1hcnkgLmJ0bjpkaXNhYmxlZHtjb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktZGlzYWJsZWQtY29sb3IpO2N1cnNvcjpub3QtYWxsb3dlZDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1k'@; put 'aXNhYmxlZC1iZy1jb2xvcik7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1kaXNhYmxlZC1ib3JkZXItY29sb3IpfS5idG4uYnRuLWluZm8uZGlzYWJsZWQgY2RzLWljb24sLmJ0bi5idG4taW5mby5kaXNhYmxlZCBjbHItaWNvbiwuYnRuLmJ0bi1pbmZvOmRpc2FibGVkIGNk'@; put 'cy1pY29uLC5idG4uYnRuLWluZm86ZGlzYWJsZWQgY2xyLWljb24sLmJ0bi1pbmZvIC5idG4uZGlzYWJsZWQgY2RzLWljb24sLmJ0bi1pbmZvIC5idG4uZGlzYWJsZWQgY2xyLWljb24sLmJ0bi1pbmZvIC5idG46ZGlzYWJsZWQgY2RzLWljb24sLmJ0bi1pbmZvIC5idG46ZGlzYWJsZWQgY2xy'@; put 'LWljb24sLmJ0bi5idG4tcHJpbWFyeS5kaXNhYmxlZCBjZHMtaWNvbiwuYnRuLmJ0bi1wcmltYXJ5LmRpc2FibGVkIGNsci1pY29uLC5idG4uYnRuLXByaW1hcnk6ZGlzYWJsZWQgY2RzLWljb24sLmJ0bi5idG4tcHJpbWFyeTpkaXNhYmxlZCBjbHItaWNvbiwuYnRuLXByaW1hcnkgLmJ0bi5k'@; put 'aXNhYmxlZCBjZHMtaWNvbiwuYnRuLXByaW1hcnkgLmJ0bi5kaXNhYmxlZCBjbHItaWNvbiwuYnRuLXByaW1hcnkgLmJ0bjpkaXNhYmxlZCBjZHMtaWNvbiwuYnRuLXByaW1hcnkgLmJ0bjpkaXNhYmxlZCBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktZGlzYWJsZWQtY29s'@; put 'b3IpfS5idG4uYnRuLXN1Y2Nlc3MsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLXN1Y2Nlc3MuYnRuLC5idG4tc3VjY2VzcyAuYnRuLC5idG4tc3VjY2VzcyAuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRu'@; put 'LXN1Y2Nlc3MgLmJ0bntib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWJvcmRlci1jb2xvcik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3MtYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1jb2xvcil9LmJ0bi5idG4tc3VjY2VzcyBj'@; put 'ZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tc3VjY2Vzcy5idG4gY2RzLWljb24sLmJ0bi5idG4tc3VjY2VzcyBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tc3VjY2Vzcy5idG4gY2xyLWljb24sLmJ0bi1zdWNjZXNzIC5idG4gY2Rz'@; put 'LWljb24sLmJ0bi1zdWNjZXNzIC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0biBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tc3VjY2VzcyAuYnRuIGNkcy1pY29uLC5idG4tc3VjY2VzcyAuYnRuIGNsci1pY29uLC5idG4tc3VjY2VzcyAuYWxlcnQt'@; put 'YXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4gY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLXN1Y2Nlc3MgLmJ0biBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3MtY29sb3IpfS5idG4uYnRuLXN1Y2Nlc3M6aG92ZXIsLmJ0bi1zdWNjZXNzIC5i'@; put 'dG46aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3MtaG92ZXItYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1ob3Zlci1jb2xvcil9LmJ0bi5idG4tc3VjY2Vzczpob3ZlciBjZHMtaWNvbiwuYnRuLmJ0bi1zdWNjZXNzOmhvdmVyIGNsci1p'@; put 'Y29uLC5idG4tc3VjY2VzcyAuYnRuOmhvdmVyIGNkcy1pY29uLC5idG4tc3VjY2VzcyAuYnRuOmhvdmVyIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1ob3Zlci1jb2xvcil9LmJ0bi5idG4tc3VjY2VzczphY3RpdmUsLmJ0bi1zdWNjZXNzIC5idG46YWN0aXZle2JhY2tn'@; put 'cm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWFjdGl2ZS1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWFjdGl2ZS1jb2xvcil9LmJ0bi5idG4tc3VjY2VzczphY3RpdmUgY2RzLWljb24sLmJ0bi5idG4tc3VjY2VzczphY3RpdmUgY2xyLWljb24sLmJ0bi1z'@; put 'dWNjZXNzIC5idG46YWN0aXZlIGNkcy1pY29uLC5idG4tc3VjY2VzcyAuYnRuOmFjdGl2ZSBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3MtYWN0aXZlLWNvbG9yKX0uYnRuLmJ0bi1zdWNjZXNzLmRpc2FibGVkLC5idG4uYnRuLXN1Y2Nlc3M6ZGlzYWJsZWQsLmJ0bi1zdWNj'@; put 'ZXNzIC5idG4uZGlzYWJsZWQsLmJ0bi1zdWNjZXNzIC5idG46ZGlzYWJsZWR7Y29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWRpc2FibGVkLWNvbG9yKTtjdXJzb3I6bm90LWFsbG93ZWQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3MtZGlzYWJsZWQtYmctY29sb3Ip'@; put 'O2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3MtZGlzYWJsZWQtYm9yZGVyLWNvbG9yKX0uYnRuLmJ0bi1zdWNjZXNzLmRpc2FibGVkIGNkcy1pY29uLC5idG4uYnRuLXN1Y2Nlc3MuZGlzYWJsZWQgY2xyLWljb24sLmJ0bi5idG4tc3VjY2VzczpkaXNhYmxlZCBjZHMtaWNvbiwu'@; put 'YnRuLmJ0bi1zdWNjZXNzOmRpc2FibGVkIGNsci1pY29uLC5idG4tc3VjY2VzcyAuYnRuLmRpc2FibGVkIGNkcy1pY29uLC5idG4tc3VjY2VzcyAuYnRuLmRpc2FibGVkIGNsci1pY29uLC5idG4tc3VjY2VzcyAuYnRuOmRpc2FibGVkIGNkcy1pY29uLC5idG4tc3VjY2VzcyAuYnRuOmRpc2Fi'@; put 'bGVkIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1kaXNhYmxlZC1jb2xvcil9LmJ0bi5idG4td2FybmluZywuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4td2FybmluZy5idG4sLmJ0bi13YXJuaW5nIC5idG4sLmJ0bi13YXJuaW5nIC5hbGVydC1hcHAtbGV2'@; put 'ZWwgLmFsZXJ0LWl0ZW0gLmJ0biwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4td2FybmluZyAuYnRue2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctYm9yZGVyLWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4td2FybmluZy1iZy1jb2xvcik7'@; put 'Y29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLWNvbG9yKX0uYnRuLmJ0bi13YXJuaW5nIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi13YXJuaW5nLmJ0biBjZHMtaWNvbiwuYnRuLmJ0bi13YXJuaW5nIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0'@; put 'LWl0ZW0gLmJ0bi13YXJuaW5nLmJ0biBjbHItaWNvbiwuYnRuLXdhcm5pbmcgLmJ0biBjZHMtaWNvbiwuYnRuLXdhcm5pbmcgLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi13YXJuaW5nIC5idG4gY2Rz'@; put 'LWljb24sLmJ0bi13YXJuaW5nIC5idG4gY2xyLWljb24sLmJ0bi13YXJuaW5nIC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0biBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4td2FybmluZyAuYnRuIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1idG4t'@; put 'd2FybmluZy1jb2xvcil9LmJ0bi5idG4td2FybmluZzpob3ZlciwuYnRuLXdhcm5pbmcgLmJ0bjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4td2FybmluZy1ob3Zlci1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLWhvdmVyLWNvbG9yKX0uYnRuLmJ0'@; put 'bi13YXJuaW5nOmhvdmVyIGNkcy1pY29uLC5idG4uYnRuLXdhcm5pbmc6aG92ZXIgY2xyLWljb24sLmJ0bi13YXJuaW5nIC5idG46aG92ZXIgY2RzLWljb24sLmJ0bi13YXJuaW5nIC5idG46aG92ZXIgY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLWhvdmVyLWNvbG9yKX0u'@; put 'YnRuLmJ0bi13YXJuaW5nOmFjdGl2ZSwuYnRuLXdhcm5pbmcgLmJ0bjphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctYWN0aXZlLWJnLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctYWN0aXZlLWNvbG9yKX0uYnRuLmJ0bi13YXJuaW5nOmFj'@; put 'dGl2ZSBjZHMtaWNvbiwuYnRuLmJ0bi13YXJuaW5nOmFjdGl2ZSBjbHItaWNvbiwuYnRuLXdhcm5pbmcgLmJ0bjphY3RpdmUgY2RzLWljb24sLmJ0bi13YXJuaW5nIC5idG46YWN0aXZlIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1idG4td2FybmluZy1hY3RpdmUtY29sb3IpfS5idG4uYnRu'@; put 'LXdhcm5pbmcuZGlzYWJsZWQsLmJ0bi5idG4td2FybmluZzpkaXNhYmxlZCwuYnRuLXdhcm5pbmcgLmJ0bi5kaXNhYmxlZCwuYnRuLXdhcm5pbmcgLmJ0bjpkaXNhYmxlZHtjb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctZGlzYWJsZWQtY29sb3IpO2N1cnNvcjpub3QtYWxsb3dlZDtiYWNr'@; put 'Z3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4td2FybmluZy1kaXNhYmxlZC1iZy1jb2xvcik7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4td2FybmluZy1kaXNhYmxlZC1ib3JkZXItY29sb3IpfS5idG4uYnRuLXdhcm5pbmcuZGlzYWJsZWQgY2RzLWljb24sLmJ0bi5idG4td2FybmluZy5k'@; put 'aXNhYmxlZCBjbHItaWNvbiwuYnRuLmJ0bi13YXJuaW5nOmRpc2FibGVkIGNkcy1pY29uLC5idG4uYnRuLXdhcm5pbmc6ZGlzYWJsZWQgY2xyLWljb24sLmJ0bi13YXJuaW5nIC5idG4uZGlzYWJsZWQgY2RzLWljb24sLmJ0bi13YXJuaW5nIC5idG4uZGlzYWJsZWQgY2xyLWljb24sLmJ0bi13'@; put 'YXJuaW5nIC5idG46ZGlzYWJsZWQgY2RzLWljb24sLmJ0bi13YXJuaW5nIC5idG46ZGlzYWJsZWQgY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLWRpc2FibGVkLWNvbG9yKX0uYnRuLmJ0bi1kYW5nZXIsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLWRhbmdl'@; put 'ci5idG4sLmJ0bi1kYW5nZXIgLmJ0biwuYnRuLWRhbmdlciAuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLWRhbmdlciAuYnRue2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1ib3JkZXItY29sb3IpO2Jh'@; put 'Y2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLWNvbG9yKX0uYnRuLmJ0bi1kYW5nZXIgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLWRhbmdlci5idG4gY2RzLWljb24sLmJ0bi5i'@; put 'dG4tZGFuZ2VyIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1kYW5nZXIuYnRuIGNsci1pY29uLC5idG4tZGFuZ2VyIC5idG4gY2RzLWljb24sLmJ0bi1kYW5nZXIgLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuIGNkcy1pY29uLC5hbGVydC1hcHAt'@; put 'bGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1kYW5nZXIgLmJ0biBjZHMtaWNvbiwuYnRuLWRhbmdlciAuYnRuIGNsci1pY29uLC5idG4tZGFuZ2VyIC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0biBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tZGFuZ2Vy'@; put 'IC5idG4gY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItY29sb3IpfS5idG4uYnRuLWRhbmdlcjpob3ZlciwuYnRuLWRhbmdlciAuYnRuOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItaG92ZXItYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1i'@; put 'dG4tZGFuZ2VyLWhvdmVyLWNvbG9yKX0uYnRuLmJ0bi1kYW5nZXI6aG92ZXIgY2RzLWljb24sLmJ0bi5idG4tZGFuZ2VyOmhvdmVyIGNsci1pY29uLC5idG4tZGFuZ2VyIC5idG46aG92ZXIgY2RzLWljb24sLmJ0bi1kYW5nZXIgLmJ0bjpob3ZlciBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHIt'@; put 'YnRuLWRhbmdlci1ob3Zlci1jb2xvcil9LmJ0bi5idG4tZGFuZ2VyOmFjdGl2ZSwuYnRuLWRhbmdlciAuYnRuOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLWFjdGl2ZS1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItYWN0aXZlLWNvbG9y'@; put 'KX0uYnRuLmJ0bi1kYW5nZXI6YWN0aXZlIGNkcy1pY29uLC5idG4uYnRuLWRhbmdlcjphY3RpdmUgY2xyLWljb24sLmJ0bi1kYW5nZXIgLmJ0bjphY3RpdmUgY2RzLWljb24sLmJ0bi1kYW5nZXIgLmJ0bjphY3RpdmUgY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItYWN0aXZl'@; put 'LWNvbG9yKX0uYnRuLmJ0bi1kYW5nZXIuZGlzYWJsZWQsLmJ0bi5idG4tZGFuZ2VyOmRpc2FibGVkLC5idG4tZGFuZ2VyIC5idG4uZGlzYWJsZWQsLmJ0bi1kYW5nZXIgLmJ0bjpkaXNhYmxlZHtjb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1kaXNhYmxlZC1jb2xvcik7Y3Vyc29yOm5vdC1h'@; put 'bGxvd2VkO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItZGlzYWJsZWQtYmctY29sb3IpO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1kaXNhYmxlZC1ib3JkZXItY29sb3IpfS5idG4uYnRuLWRhbmdlci5kaXNhYmxlZCBjZHMtaWNvbiwuYnRuLmJ0bi1k'@; put 'YW5nZXIuZGlzYWJsZWQgY2xyLWljb24sLmJ0bi5idG4tZGFuZ2VyOmRpc2FibGVkIGNkcy1pY29uLC5idG4uYnRuLWRhbmdlcjpkaXNhYmxlZCBjbHItaWNvbiwuYnRuLWRhbmdlciAuYnRuLmRpc2FibGVkIGNkcy1pY29uLC5idG4tZGFuZ2VyIC5idG4uZGlzYWJsZWQgY2xyLWljb24sLmJ0'@; put 'bi1kYW5nZXIgLmJ0bjpkaXNhYmxlZCBjZHMtaWNvbiwuYnRuLWRhbmdlciAuYnRuOmRpc2FibGVkIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLWRpc2FibGVkLWNvbG9yKX0uYnRuLmJ0bi1uZXV0cmFsLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1uZXV0'@; put 'cmFsLmJ0biwuYnRuLW5ldXRyYWwgLmJ0biwuYnRuLW5ldXRyYWwgLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1uZXV0cmFsIC5idG57Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tbmV1dHJhbC1ib3JkZXItY29s'@; put 'b3IpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1uZXV0cmFsLWJnLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHItYnRuLW5ldXRyYWwtY29sb3IpfS5idG4uYnRuLW5ldXRyYWwgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLW5ldXRyYWwuYnRuIGNkcy1p'@; put 'Y29uLC5idG4uYnRuLW5ldXRyYWwgY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLW5ldXRyYWwuYnRuIGNsci1pY29uLC5idG4tbmV1dHJhbCAuYnRuIGNkcy1pY29uLC5idG4tbmV1dHJhbCAuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4gY2RzLWlj'@; put 'b24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLW5ldXRyYWwgLmJ0biBjZHMtaWNvbiwuYnRuLW5ldXRyYWwgLmJ0biBjbHItaWNvbiwuYnRuLW5ldXRyYWwgLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0'@; put 'LWl0ZW0gLmJ0bi1uZXV0cmFsIC5idG4gY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi1uZXV0cmFsLWNvbG9yKX0uYnRuLmJ0bi1uZXV0cmFsOmhvdmVyLC5idG4tbmV1dHJhbCAuYnRuOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1uZXV0cmFsLWhvdmVyLWJnLWNv'@; put 'bG9yKTtjb2xvcjp2YXIoLS1jbHItYnRuLW5ldXRyYWwtaG92ZXItY29sb3IpfS5idG4uYnRuLW5ldXRyYWw6aG92ZXIgY2RzLWljb24sLmJ0bi5idG4tbmV1dHJhbDpob3ZlciBjbHItaWNvbiwuYnRuLW5ldXRyYWwgLmJ0bjpob3ZlciBjZHMtaWNvbiwuYnRuLW5ldXRyYWwgLmJ0bjpob3Zl'@; put 'ciBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLW5ldXRyYWwtaG92ZXItY29sb3IpfS5idG4uYnRuLW5ldXRyYWw6YWN0aXZlLC5idG4tbmV1dHJhbCAuYnRuOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tbmV1dHJhbC1hY3RpdmUtYmctY29sb3IpO2NvbG9yOnZh'@; put 'cigtLWNsci1idG4tbmV1dHJhbC1hY3RpdmUtY29sb3IpfS5idG4uYnRuLW5ldXRyYWw6YWN0aXZlIGNkcy1pY29uLC5idG4uYnRuLW5ldXRyYWw6YWN0aXZlIGNsci1pY29uLC5idG4tbmV1dHJhbCAuYnRuOmFjdGl2ZSBjZHMtaWNvbiwuYnRuLW5ldXRyYWwgLmJ0bjphY3RpdmUgY2xyLWlj'@; put 'b257Y29sb3I6dmFyKC0tY2xyLWJ0bi1uZXV0cmFsLWFjdGl2ZS1jb2xvcil9LmJ0bi5idG4tbmV1dHJhbC5kaXNhYmxlZCwuYnRuLmJ0bi1uZXV0cmFsOmRpc2FibGVkLC5idG4tbmV1dHJhbCAuYnRuLmRpc2FibGVkLC5idG4tbmV1dHJhbCAuYnRuOmRpc2FibGVke2NvbG9yOnZhcigtLWNs'@; put 'ci1idG4tbmV1dHJhbC1kaXNhYmxlZC1jb2xvcik7Y3Vyc29yOm5vdC1hbGxvd2VkO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1uZXV0cmFsLWRpc2FibGVkLWJnLWNvbG9yKTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1uZXV0cmFsLWRpc2FibGVkLWJvcmRlci1jb2xvcil9'@; put 'LmJ0bi5idG4tbmV1dHJhbC5kaXNhYmxlZCBjZHMtaWNvbiwuYnRuLmJ0bi1uZXV0cmFsLmRpc2FibGVkIGNsci1pY29uLC5idG4uYnRuLW5ldXRyYWw6ZGlzYWJsZWQgY2RzLWljb24sLmJ0bi5idG4tbmV1dHJhbDpkaXNhYmxlZCBjbHItaWNvbiwuYnRuLW5ldXRyYWwgLmJ0bi5kaXNhYmxl'@; put 'ZCBjZHMtaWNvbiwuYnRuLW5ldXRyYWwgLmJ0bi5kaXNhYmxlZCBjbHItaWNvbiwuYnRuLW5ldXRyYWwgLmJ0bjpkaXNhYmxlZCBjZHMtaWNvbiwuYnRuLW5ldXRyYWwgLmJ0bjpkaXNhYmxlZCBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLW5ldXRyYWwtZGlzYWJsZWQtY29sb3IpfS5i'@; put 'dG4uYnRuLW91dGxpbmUsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLW91dGxpbmUuYnRuLC5idG4uYnRuLW91dGxpbmUgLmJ0biwuYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tc2Vjb25kYXJ5LW91dGxpbmUuYnRu'@; put 'LC5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5LC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1vdXRsaW5lLXNlY29uZGFyeS5idG4sLmJ0bi1zZWNvbmRhcnktb3V0bGluZSAuYnRuLC5idG4tc2Vjb25kYXJ5LW91dGxpbmUgLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAu'@; put 'YnRuLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1zZWNvbmRhcnktb3V0bGluZSAuYnRuLC5idG4tb3V0bGluZS1zZWNvbmRhcnkgLmJ0biwuYnRuLW91dGxpbmUtc2Vjb25kYXJ5IC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0biwuYWxlcnQtYXBwLWxldmVsIC5h'@; put 'bGVydC1pdGVtIC5idG4tb3V0bGluZS1zZWNvbmRhcnkgLmJ0biwuYnRuLW91dGxpbmUgLmJ0biwuYnRuLW91dGxpbmUgLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1vdXRsaW5lIC5idG57Ym9yZGVyLWNvbG9yOnZh'@; put 'cigtLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWJvcmRlci1jb2xvcik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtY29sb3IpfS5idG4uYnRuLW91dGxpbmUgY2RzLWlj'@; put 'b24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLW91dGxpbmUuYnRuIGNkcy1pY29uLC5idG4uYnRuLW91dGxpbmUgY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLW91dGxpbmUuYnRuIGNsci1pY29uLC5idG4uYnRuLW91dGxpbmUgLmJ0biBjZHMt'@; put 'aWNvbiwuYnRuLmJ0bi1vdXRsaW5lIC5idG4gY2xyLWljb24sLmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmUgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLXNlY29uZGFyeS1vdXRsaW5lLmJ0biBjZHMtaWNvbiwuYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSBj'@; put 'bHItaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tc2Vjb25kYXJ5LW91dGxpbmUuYnRuIGNsci1pY29uLC5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1vdXRsaW5lLXNlY29uZGFyeS5idG4g'@; put 'Y2RzLWljb24sLmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnkgY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmJ0biBjbHItaWNvbiwuYnRuLXNlY29uZGFyeS1vdXRsaW5lIC5idG4gY2RzLWljb24sLmJ0bi1zZWNvbmRhcnktb3V0'@; put 'bGluZSAuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4gY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLXNlY29uZGFyeS1vdXRsaW5lIC5idG4gY2RzLWljb24sLmJ0bi1zZWNvbmRhcnktb3V0bGluZSAuYnRuIGNsci1pY29uLC5idG4tc2Vjb25kYXJ5'@; put 'LW91dGxpbmUgLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1zZWNvbmRhcnktb3V0bGluZSAuYnRuIGNsci1pY29uLC5idG4tb3V0bGluZS1zZWNvbmRhcnkgLmJ0biBjZHMtaWNvbiwuYnRuLW91dGxp'@; put 'bmUtc2Vjb25kYXJ5IC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0biBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tb3V0bGluZS1zZWNvbmRhcnkgLmJ0biBjZHMtaWNvbiwuYnRuLW91dGxpbmUtc2Vjb25kYXJ5IC5idG4gY2xyLWljb24sLmJ0bi1v'@; put 'dXRsaW5lLXNlY29uZGFyeSAuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4gY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5IC5idG4gY2xyLWljb24sLmJ0bi1vdXRsaW5lIC5idG4gY2RzLWljb24sLmJ0bi1vdXRsaW5l'@; put 'IC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0biBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tb3V0bGluZSAuYnRuIGNkcy1pY29uLC5idG4tb3V0bGluZSAuYnRuIGNsci1pY29uLC5idG4tb3V0bGluZSAuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1p'@; put 'dGVtIC5idG4gY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLW91dGxpbmUgLmJ0biBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1jb2xvcil9LmJ0bi5idG4tb3V0bGluZTpob3ZlciwuYnRuLmJ0bi1vdXRsaW5lIC5idG46aG92'@; put 'ZXIsLmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmU6aG92ZXIsLmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnk6aG92ZXIsLmJ0bi1zZWNvbmRhcnktb3V0bGluZSAuYnRuOmhvdmVyLC5idG4tb3V0bGluZS1zZWNvbmRhcnkgLmJ0bjpob3ZlciwuYnRuLW91dGxpbmUgLmJ0bjpob3ZlcntiYWNr'@; put 'Z3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWhvdmVyLWJnLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1ob3Zlci1jb2xvcil9LmJ0bi5idG4tb3V0bGluZTpob3ZlciBjZHMtaWNvbiwuYnRuLmJ0bi1vdXRsaW5lOmhvdmVyIGNs'@; put 'ci1pY29uLC5idG4uYnRuLW91dGxpbmUgLmJ0bjpob3ZlciBjZHMtaWNvbiwuYnRuLmJ0bi1vdXRsaW5lIC5idG46aG92ZXIgY2xyLWljb24sLmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmU6aG92ZXIgY2RzLWljb24sLmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmU6aG92ZXIgY2xyLWljb24s'@; put 'LmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnk6aG92ZXIgY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnk6aG92ZXIgY2xyLWljb24sLmJ0bi1zZWNvbmRhcnktb3V0bGluZSAuYnRuOmhvdmVyIGNkcy1pY29uLC5idG4tc2Vjb25kYXJ5LW91dGxpbmUgLmJ0bjpob3ZlciBjbHIt'@; put 'aWNvbiwuYnRuLW91dGxpbmUtc2Vjb25kYXJ5IC5idG46aG92ZXIgY2RzLWljb24sLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSAuYnRuOmhvdmVyIGNsci1pY29uLC5idG4tb3V0bGluZSAuYnRuOmhvdmVyIGNkcy1pY29uLC5idG4tb3V0bGluZSAuYnRuOmhvdmVyIGNsci1pY29ue2NvbG9yOnZh'@; put 'cigtLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWhvdmVyLWNvbG9yKX0uYnRuLmJ0bi1vdXRsaW5lOmFjdGl2ZSwuYnRuLmJ0bi1vdXRsaW5lIC5idG46YWN0aXZlLC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lOmFjdGl2ZSwuYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTphY3RpdmUsLmJ0'@; put 'bi1zZWNvbmRhcnktb3V0bGluZSAuYnRuOmFjdGl2ZSwuYnRuLW91dGxpbmUtc2Vjb25kYXJ5IC5idG46YWN0aXZlLC5idG4tb3V0bGluZSAuYnRuOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWFjdGl2ZS1iZy1jb2xvcik7Y29sb3I6dmFy'@; put 'KC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtYWN0aXZlLWNvbG9yKX0uYnRuLmJ0bi1vdXRsaW5lOmFjdGl2ZSBjZHMtaWNvbiwuYnRuLmJ0bi1vdXRsaW5lOmFjdGl2ZSBjbHItaWNvbiwuYnRuLmJ0bi1vdXRsaW5lIC5idG46YWN0aXZlIGNkcy1pY29uLC5idG4uYnRuLW91dGxpbmUgLmJ0'@; put 'bjphY3RpdmUgY2xyLWljb24sLmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmU6YWN0aXZlIGNkcy1pY29uLC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lOmFjdGl2ZSBjbHItaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTphY3RpdmUgY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZS1z'@; put 'ZWNvbmRhcnk6YWN0aXZlIGNsci1pY29uLC5idG4tc2Vjb25kYXJ5LW91dGxpbmUgLmJ0bjphY3RpdmUgY2RzLWljb24sLmJ0bi1zZWNvbmRhcnktb3V0bGluZSAuYnRuOmFjdGl2ZSBjbHItaWNvbiwuYnRuLW91dGxpbmUtc2Vjb25kYXJ5IC5idG46YWN0aXZlIGNkcy1pY29uLC5idG4tb3V0'@; put 'bGluZS1zZWNvbmRhcnkgLmJ0bjphY3RpdmUgY2xyLWljb24sLmJ0bi1vdXRsaW5lIC5idG46YWN0aXZlIGNkcy1pY29uLC5idG4tb3V0bGluZSAuYnRuOmFjdGl2ZSBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1hY3RpdmUtY29sb3IpfS5idG4uYnRuLW91'@; put 'dGxpbmUuZGlzYWJsZWQsLmJ0bi5idG4tb3V0bGluZTpkaXNhYmxlZCwuYnRuLmJ0bi1vdXRsaW5lIC5idG4uZGlzYWJsZWQsLmJ0bi5idG4tb3V0bGluZSAuYnRuOmRpc2FibGVkLC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lLmRpc2FibGVkLC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5l'@; put 'OmRpc2FibGVkLC5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmRpc2FibGVkLC5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5OmRpc2FibGVkLC5idG4tc2Vjb25kYXJ5LW91dGxpbmUgLmJ0bi5kaXNhYmxlZCwuYnRuLXNlY29uZGFyeS1vdXRsaW5lIC5idG46ZGlzYWJsZWQsLmJ0bi1vdXRs'@; put 'aW5lLXNlY29uZGFyeSAuYnRuLmRpc2FibGVkLC5idG4tb3V0bGluZS1zZWNvbmRhcnkgLmJ0bjpkaXNhYmxlZCwuYnRuLW91dGxpbmUgLmJ0bi5kaXNhYmxlZCwuYnRuLW91dGxpbmUgLmJ0bjpkaXNhYmxlZHtjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1kaXNhYmxlZC1j'@; put 'b2xvcik7Y3Vyc29yOm5vdC1hbGxvd2VkO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtZGlzYWJsZWQtYmctY29sb3IpO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1kaXNhYmxlZC1ib3JkZXItY29sb3IpfS5idG4uYnRu'@; put 'LW91dGxpbmUuZGlzYWJsZWQgY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZS5kaXNhYmxlZCBjbHItaWNvbiwuYnRuLmJ0bi1vdXRsaW5lOmRpc2FibGVkIGNkcy1pY29uLC5idG4uYnRuLW91dGxpbmU6ZGlzYWJsZWQgY2xyLWljb24sLmJ0bi5idG4tb3V0bGluZSAuYnRuLmRpc2FibGVkIGNk'@; put 'cy1pY29uLC5idG4uYnRuLW91dGxpbmUgLmJ0bi5kaXNhYmxlZCBjbHItaWNvbiwuYnRuLmJ0bi1vdXRsaW5lIC5idG46ZGlzYWJsZWQgY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZSAuYnRuOmRpc2FibGVkIGNsci1pY29uLC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lLmRpc2FibGVkIGNk'@; put 'cy1pY29uLC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lLmRpc2FibGVkIGNsci1pY29uLC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lOmRpc2FibGVkIGNkcy1pY29uLC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lOmRpc2FibGVkIGNsci1pY29uLC5idG4uYnRuLW91dGxpbmUtc2Vjb25k'@; put 'YXJ5LmRpc2FibGVkIGNkcy1pY29uLC5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmRpc2FibGVkIGNsci1pY29uLC5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5OmRpc2FibGVkIGNkcy1pY29uLC5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5OmRpc2FibGVkIGNsci1pY29uLC5idG4tc2Vj'@; put 'b25kYXJ5LW91dGxpbmUgLmJ0bi5kaXNhYmxlZCBjZHMtaWNvbiwuYnRuLXNlY29uZGFyeS1vdXRsaW5lIC5idG4uZGlzYWJsZWQgY2xyLWljb24sLmJ0bi1zZWNvbmRhcnktb3V0bGluZSAuYnRuOmRpc2FibGVkIGNkcy1pY29uLC5idG4tc2Vjb25kYXJ5LW91dGxpbmUgLmJ0bjpkaXNhYmxl'@; put 'ZCBjbHItaWNvbiwuYnRuLW91dGxpbmUtc2Vjb25kYXJ5IC5idG4uZGlzYWJsZWQgY2RzLWljb24sLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSAuYnRuLmRpc2FibGVkIGNsci1pY29uLC5idG4tb3V0bGluZS1zZWNvbmRhcnkgLmJ0bjpkaXNhYmxlZCBjZHMtaWNvbiwuYnRuLW91dGxpbmUtc2Vj'@; put 'b25kYXJ5IC5idG46ZGlzYWJsZWQgY2xyLWljb24sLmJ0bi1vdXRsaW5lIC5idG4uZGlzYWJsZWQgY2RzLWljb24sLmJ0bi1vdXRsaW5lIC5idG4uZGlzYWJsZWQgY2xyLWljb24sLmJ0bi1vdXRsaW5lIC5idG46ZGlzYWJsZWQgY2RzLWljb24sLmJ0bi1vdXRsaW5lIC5idG46ZGlzYWJsZWQg'@; put 'Y2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtZGlzYWJsZWQtY29sb3IpfS5idG4uYnRuLXByaW1hcnktb3V0bGluZSwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tcHJpbWFyeS1vdXRsaW5lLmJ0biwuYnRuLW91dGxpbmUtaW5mbyAuYnRuLC5i'@; put 'dG4tb3V0bGluZS1pbmZvIC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0biwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tb3V0bGluZS1pbmZvIC5idG4sLmJ0bi1pbmZvLW91dGxpbmUgLmJ0biwuYnRuLWluZm8tb3V0bGluZSAuYWxlcnQtYXBwLWxldmVsIC5hbGVy'@; put 'dC1pdGVtIC5idG4sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLWluZm8tb3V0bGluZSAuYnRuLC5idG4tcHJpbWFyeS1vdXRsaW5lIC5idG4sLmJ0bi1wcmltYXJ5LW91dGxpbmUgLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLC5hbGVydC1hcHAtbGV2ZWwgLmFs'@; put 'ZXJ0LWl0ZW0gLmJ0bi1wcmltYXJ5LW91dGxpbmUgLmJ0biwuYnRuLW91dGxpbmUtcHJpbWFyeSAuYnRuLC5idG4tb3V0bGluZS1wcmltYXJ5IC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0biwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tb3V0bGluZS1wcmltYXJ5'@; put 'IC5idG4sLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5LC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1vdXRsaW5lLXByaW1hcnkuYnRuLC5idG4uYnRuLW91dGxpbmUtaW5mbywuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tb3V0bGluZS1pbmZvLmJ0biwuYnRuLmJ0'@; put 'bi1pbmZvLW91dGxpbmUsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLWluZm8tb3V0bGluZS5idG4sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1pdGVtIC5idG57Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1vdXRsaW5lLWJvcmRlci1jb2xv'@; put 'cik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktb3V0bGluZS1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LW91dGxpbmUtY29sb3IpfS5idG4uYnRuLXByaW1hcnktb3V0bGluZSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVt'@; put 'IC5idG4tcHJpbWFyeS1vdXRsaW5lLmJ0biBjZHMtaWNvbiwuYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUgY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLXByaW1hcnktb3V0bGluZS5idG4gY2xyLWljb24sLmJ0bi1vdXRsaW5lLWluZm8gLmJ0biBjZHMtaWNvbiwu'@; put 'YnRuLW91dGxpbmUtaW5mbyAuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4gY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLW91dGxpbmUtaW5mbyAuYnRuIGNkcy1pY29uLC5idG4tb3V0bGluZS1pbmZvIC5idG4gY2xyLWljb24sLmJ0bi1vdXRsaW5l'@; put 'LWluZm8gLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1vdXRsaW5lLWluZm8gLmJ0biBjbHItaWNvbiwuYnRuLWluZm8tb3V0bGluZSAuYnRuIGNkcy1pY29uLC5idG4taW5mby1vdXRsaW5lIC5hbGVy'@; put 'dC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0biBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4taW5mby1vdXRsaW5lIC5idG4gY2RzLWljb24sLmJ0bi1pbmZvLW91dGxpbmUgLmJ0biBjbHItaWNvbiwuYnRuLWluZm8tb3V0bGluZSAuYWxlcnQtYXBwLWxldmVs'@; put 'IC5hbGVydC1pdGVtIC5idG4gY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLWluZm8tb3V0bGluZSAuYnRuIGNsci1pY29uLC5idG4tcHJpbWFyeS1vdXRsaW5lIC5idG4gY2RzLWljb24sLmJ0bi1wcmltYXJ5LW91dGxpbmUgLmFsZXJ0LWFwcC1sZXZlbCAuYWxl'@; put 'cnQtaXRlbSAuYnRuIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1wcmltYXJ5LW91dGxpbmUgLmJ0biBjZHMtaWNvbiwuYnRuLXByaW1hcnktb3V0bGluZSAuYnRuIGNsci1pY29uLC5idG4tcHJpbWFyeS1vdXRsaW5lIC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0'@; put 'LWl0ZW0gLmJ0biBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tcHJpbWFyeS1vdXRsaW5lIC5idG4gY2xyLWljb24sLmJ0bi1vdXRsaW5lLXByaW1hcnkgLmJ0biBjZHMtaWNvbiwuYnRuLW91dGxpbmUtcHJpbWFyeSAuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1p'@; put 'dGVtIC5idG4gY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLW91dGxpbmUtcHJpbWFyeSAuYnRuIGNkcy1pY29uLC5idG4tb3V0bGluZS1wcmltYXJ5IC5idG4gY2xyLWljb24sLmJ0bi1vdXRsaW5lLXByaW1hcnkgLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRl'@; put 'bSAuYnRuIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1vdXRsaW5lLXByaW1hcnkgLmJ0biBjbHItaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnkgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLW91dGxpbmUtcHJpbWFyeS5i'@; put 'dG4gY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1vdXRsaW5lLXByaW1hcnkuYnRuIGNsci1pY29uLC5idG4uYnRuLW91dGxpbmUtaW5mbyBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1p'@; put 'dGVtIC5idG4tb3V0bGluZS1pbmZvLmJ0biBjZHMtaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLWluZm8gY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLW91dGxpbmUtaW5mby5idG4gY2xyLWljb24sLmJ0bi5idG4taW5mby1vdXRsaW5lIGNkcy1pY29uLC5hbGVydC1h'@; put 'cHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1pbmZvLW91dGxpbmUuYnRuIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtaXRlbSAuYnRuIGNkcy1pY29uLC5idG4uYnRuLWluZm8tb3V0bGluZSBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVt'@; put 'IC5idG4taW5mby1vdXRsaW5lLmJ0biBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmFsZXJ0LWl0ZW0gLmJ0biBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktb3V0bGluZS1jb2xvcil9LmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lOmhvdmVyLC5idG4t'@; put 'b3V0bGluZS1pbmZvIC5idG46aG92ZXIsLmJ0bi1pbmZvLW91dGxpbmUgLmJ0bjpob3ZlciwuYnRuLXByaW1hcnktb3V0bGluZSAuYnRuOmhvdmVyLC5idG4tb3V0bGluZS1wcmltYXJ5IC5idG46aG92ZXIsLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5OmhvdmVyLC5idG4uYnRuLW91dGxpbmUt'@; put 'aW5mbzpob3ZlciwuYnRuLmJ0bi1pbmZvLW91dGxpbmU6aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1pdGVtIC5idG46aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktb3V0bGluZS1ob3Zlci1iZy1jb2xvcik7Y29sb3I6dmFyKC0t'@; put 'Y2xyLWJ0bi1wcmltYXJ5LW91dGxpbmUtaG92ZXItY29sb3IpfS5idG4uYnRuLXByaW1hcnktb3V0bGluZTpob3ZlciBjZHMtaWNvbiwuYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmU6aG92ZXIgY2xyLWljb24sLmJ0bi1vdXRsaW5lLWluZm8gLmJ0bjpob3ZlciBjZHMtaWNvbiwuYnRuLW91dGxp'@; put 'bmUtaW5mbyAuYnRuOmhvdmVyIGNsci1pY29uLC5idG4taW5mby1vdXRsaW5lIC5idG46aG92ZXIgY2RzLWljb24sLmJ0bi1pbmZvLW91dGxpbmUgLmJ0bjpob3ZlciBjbHItaWNvbiwuYnRuLXByaW1hcnktb3V0bGluZSAuYnRuOmhvdmVyIGNkcy1pY29uLC5idG4tcHJpbWFyeS1vdXRsaW5l'@; put 'IC5idG46aG92ZXIgY2xyLWljb24sLmJ0bi1vdXRsaW5lLXByaW1hcnkgLmJ0bjpob3ZlciBjZHMtaWNvbiwuYnRuLW91dGxpbmUtcHJpbWFyeSAuYnRuOmhvdmVyIGNsci1pY29uLC5idG4uYnRuLW91dGxpbmUtcHJpbWFyeTpob3ZlciBjZHMtaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLXByaW1h'@; put 'cnk6aG92ZXIgY2xyLWljb24sLmJ0bi5idG4tb3V0bGluZS1pbmZvOmhvdmVyIGNkcy1pY29uLC5idG4uYnRuLW91dGxpbmUtaW5mbzpob3ZlciBjbHItaWNvbiwuYnRuLmJ0bi1pbmZvLW91dGxpbmU6aG92ZXIgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1p'@; put 'dGVtIC5idG46aG92ZXIgY2RzLWljb24sLmJ0bi5idG4taW5mby1vdXRsaW5lOmhvdmVyIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtaXRlbSAuYnRuOmhvdmVyIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1vdXRsaW5lLWhvdmVyLWNv'@; put 'bG9yKX0uYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmU6YWN0aXZlLC5idG4tb3V0bGluZS1pbmZvIC5idG46YWN0aXZlLC5idG4taW5mby1vdXRsaW5lIC5idG46YWN0aXZlLC5idG4tcHJpbWFyeS1vdXRsaW5lIC5idG46YWN0aXZlLC5idG4tb3V0bGluZS1wcmltYXJ5IC5idG46YWN0aXZlLC5i'@; put 'dG4uYnRuLW91dGxpbmUtcHJpbWFyeTphY3RpdmUsLmJ0bi5idG4tb3V0bGluZS1pbmZvOmFjdGl2ZSwuYnRuLmJ0bi1pbmZvLW91dGxpbmU6YWN0aXZlLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtaXRlbSAuYnRuOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNs'@; put 'ci1idG4tcHJpbWFyeS1vdXRsaW5lLWFjdGl2ZS1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LW91dGxpbmUtYWN0aXZlLWNvbG9yKX0uYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmU6YWN0aXZlIGNkcy1pY29uLC5idG4uYnRuLXByaW1hcnktb3V0bGluZTphY3RpdmUgY2xy'@; put 'LWljb24sLmJ0bi1vdXRsaW5lLWluZm8gLmJ0bjphY3RpdmUgY2RzLWljb24sLmJ0bi1vdXRsaW5lLWluZm8gLmJ0bjphY3RpdmUgY2xyLWljb24sLmJ0bi1pbmZvLW91dGxpbmUgLmJ0bjphY3RpdmUgY2RzLWljb24sLmJ0bi1pbmZvLW91dGxpbmUgLmJ0bjphY3RpdmUgY2xyLWljb24sLmJ0'@; put 'bi1wcmltYXJ5LW91dGxpbmUgLmJ0bjphY3RpdmUgY2RzLWljb24sLmJ0bi1wcmltYXJ5LW91dGxpbmUgLmJ0bjphY3RpdmUgY2xyLWljb24sLmJ0bi1vdXRsaW5lLXByaW1hcnkgLmJ0bjphY3RpdmUgY2RzLWljb24sLmJ0bi1vdXRsaW5lLXByaW1hcnkgLmJ0bjphY3RpdmUgY2xyLWljb24s'@; put 'LmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5OmFjdGl2ZSBjZHMtaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnk6YWN0aXZlIGNsci1pY29uLC5idG4uYnRuLW91dGxpbmUtaW5mbzphY3RpdmUgY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZS1pbmZvOmFjdGl2ZSBjbHItaWNvbiwuYnRuLmJ0'@; put 'bi1pbmZvLW91dGxpbmU6YWN0aXZlIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtaXRlbSAuYnRuOmFjdGl2ZSBjZHMtaWNvbiwuYnRuLmJ0bi1pbmZvLW91dGxpbmU6YWN0aXZlIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQt'@; put 'aXRlbSAuYnRuOmFjdGl2ZSBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktb3V0bGluZS1hY3RpdmUtY29sb3IpfS5idG4uYnRuLXByaW1hcnktb3V0bGluZS5kaXNhYmxlZCwuYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmU6ZGlzYWJsZWQsLmJ0bi1vdXRsaW5lLWluZm8gLmJ0'@; put 'bi5kaXNhYmxlZCwuYnRuLW91dGxpbmUtaW5mbyAuYnRuOmRpc2FibGVkLC5idG4taW5mby1vdXRsaW5lIC5idG4uZGlzYWJsZWQsLmJ0bi1pbmZvLW91dGxpbmUgLmJ0bjpkaXNhYmxlZCwuYnRuLXByaW1hcnktb3V0bGluZSAuYnRuLmRpc2FibGVkLC5idG4tcHJpbWFyeS1vdXRsaW5lIC5i'@; put 'dG46ZGlzYWJsZWQsLmJ0bi1vdXRsaW5lLXByaW1hcnkgLmJ0bi5kaXNhYmxlZCwuYnRuLW91dGxpbmUtcHJpbWFyeSAuYnRuOmRpc2FibGVkLC5idG4uYnRuLW91dGxpbmUtcHJpbWFyeS5kaXNhYmxlZCwuYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnk6ZGlzYWJsZWQsLmJ0bi5idG4tb3V0bGlu'@; put 'ZS1pbmZvLmRpc2FibGVkLC5idG4uYnRuLW91dGxpbmUtaW5mbzpkaXNhYmxlZCwuYnRuLmJ0bi1pbmZvLW91dGxpbmUuZGlzYWJsZWQsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1pdGVtIC5idG4uZGlzYWJsZWQsLmJ0bi5idG4taW5mby1vdXRsaW5lOmRpc2FibGVkLC5h'@; put 'bGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtaXRlbSAuYnRuOmRpc2FibGVke2NvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1vdXRsaW5lLWRpc2FibGVkLWNvbG9yKTtjdXJzb3I6bm90LWFsbG93ZWQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktb3V0'@; put 'bGluZS1kaXNhYmxlZC1iZy1jb2xvcik7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1vdXRsaW5lLWRpc2FibGVkLWJvcmRlci1jb2xvcil9LmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lLmRpc2FibGVkIGNkcy1pY29uLC5idG4uYnRuLXByaW1hcnktb3V0bGluZS5kaXNhYmxl'@; put 'ZCBjbHItaWNvbiwuYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmU6ZGlzYWJsZWQgY2RzLWljb24sLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lOmRpc2FibGVkIGNsci1pY29uLC5idG4tb3V0bGluZS1pbmZvIC5idG4uZGlzYWJsZWQgY2RzLWljb24sLmJ0bi1vdXRsaW5lLWluZm8gLmJ0bi5kaXNh'@; put 'YmxlZCBjbHItaWNvbiwuYnRuLW91dGxpbmUtaW5mbyAuYnRuOmRpc2FibGVkIGNkcy1pY29uLC5idG4tb3V0bGluZS1pbmZvIC5idG46ZGlzYWJsZWQgY2xyLWljb24sLmJ0bi1pbmZvLW91dGxpbmUgLmJ0bi5kaXNhYmxlZCBjZHMtaWNvbiwuYnRuLWluZm8tb3V0bGluZSAuYnRuLmRpc2Fi'@; put 'bGVkIGNsci1pY29uLC5idG4taW5mby1vdXRsaW5lIC5idG46ZGlzYWJsZWQgY2RzLWljb24sLmJ0bi1pbmZvLW91dGxpbmUgLmJ0bjpkaXNhYmxlZCBjbHItaWNvbiwuYnRuLXByaW1hcnktb3V0bGluZSAuYnRuLmRpc2FibGVkIGNkcy1pY29uLC5idG4tcHJpbWFyeS1vdXRsaW5lIC5idG4u'@; put 'ZGlzYWJsZWQgY2xyLWljb24sLmJ0bi1wcmltYXJ5LW91dGxpbmUgLmJ0bjpkaXNhYmxlZCBjZHMtaWNvbiwuYnRuLXByaW1hcnktb3V0bGluZSAuYnRuOmRpc2FibGVkIGNsci1pY29uLC5idG4tb3V0bGluZS1wcmltYXJ5IC5idG4uZGlzYWJsZWQgY2RzLWljb24sLmJ0bi1vdXRsaW5lLXBy'@; put 'aW1hcnkgLmJ0bi5kaXNhYmxlZCBjbHItaWNvbiwuYnRuLW91dGxpbmUtcHJpbWFyeSAuYnRuOmRpc2FibGVkIGNkcy1pY29uLC5idG4tb3V0bGluZS1wcmltYXJ5IC5idG46ZGlzYWJsZWQgY2xyLWljb24sLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5LmRpc2FibGVkIGNkcy1pY29uLC5idG4u'@; put 'YnRuLW91dGxpbmUtcHJpbWFyeS5kaXNhYmxlZCBjbHItaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnk6ZGlzYWJsZWQgY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5OmRpc2FibGVkIGNsci1pY29uLC5idG4uYnRuLW91dGxpbmUtaW5mby5kaXNhYmxlZCBjZHMtaWNvbiwu'@; put 'YnRuLmJ0bi1vdXRsaW5lLWluZm8uZGlzYWJsZWQgY2xyLWljb24sLmJ0bi5idG4tb3V0bGluZS1pbmZvOmRpc2FibGVkIGNkcy1pY29uLC5idG4uYnRuLW91dGxpbmUtaW5mbzpkaXNhYmxlZCBjbHItaWNvbiwuYnRuLmJ0bi1pbmZvLW91dGxpbmUuZGlzYWJsZWQgY2RzLWljb24sLmFsZXJ0'@; put 'LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1pdGVtIC5idG4uZGlzYWJsZWQgY2RzLWljb24sLmJ0bi5idG4taW5mby1vdXRsaW5lLmRpc2FibGVkIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtaXRlbSAuYnRuLmRpc2FibGVkIGNsci1pY29uLC5idG4u'@; put 'YnRuLWluZm8tb3V0bGluZTpkaXNhYmxlZCBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmFsZXJ0LWl0ZW0gLmJ0bjpkaXNhYmxlZCBjZHMtaWNvbiwuYnRuLmJ0bi1pbmZvLW91dGxpbmU6ZGlzYWJsZWQgY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZv'@; put 'IC5hbGVydC1pdGVtIC5idG46ZGlzYWJsZWQgY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LW91dGxpbmUtZGlzYWJsZWQtY29sb3IpfS5idG4uYnRuLXN1Y2Nlc3Mtb3V0bGluZSwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tc3VjY2Vzcy1vdXRsaW5lLmJ0'@; put 'biwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWl0ZW0gLmJ0biwuYnRuLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLW91dGxpbmUtc3VjY2Vzcy5idG4sLmJ0bi1zdWNjZXNzLW91dGxpbmUgLmJ0biwuYnRuLXN1Y2Nl'@; put 'c3Mtb3V0bGluZSAuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLXN1Y2Nlc3Mtb3V0bGluZSAuYnRuLC5idG4tb3V0bGluZS1zdWNjZXNzIC5idG4sLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MgLmFsZXJ0LWFwcC1sZXZlbCAu'@; put 'YWxlcnQtaXRlbSAuYnRuLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MgLmJ0bntib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtYm9yZGVyLWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vz'@; put 'cy1vdXRsaW5lLWJnLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1jb2xvcil9LmJ0bi5idG4tc3VjY2Vzcy1vdXRsaW5lIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1zdWNjZXNzLW91dGxpbmUuYnRuIGNkcy1pY29uLC5hbGVy'@; put 'dC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuYWxlcnQtaXRlbSAuYnRuIGNkcy1pY29uLC5idG4uYnRuLXN1Y2Nlc3Mtb3V0bGluZSBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tc3VjY2Vzcy1vdXRsaW5lLmJ0biBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVs'@; put 'LmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWl0ZW0gLmJ0biBjbHItaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLW91dGxpbmUtc3VjY2Vzcy5idG4gY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZS1zdWNjZXNzIGNs'@; put 'ci1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuYnRuIGNsci1pY29uLC5idG4tc3VjY2Vzcy1vdXRsaW5lIC5idG4gY2RzLWljb24sLmJ0bi1zdWNjZXNzLW91dGxpbmUgLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuIGNkcy1p'@; put 'Y29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1zdWNjZXNzLW91dGxpbmUgLmJ0biBjZHMtaWNvbiwuYnRuLXN1Y2Nlc3Mtb3V0bGluZSAuYnRuIGNsci1pY29uLC5idG4tc3VjY2Vzcy1vdXRsaW5lIC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0biBjbHItaWNv'@; put 'biwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tc3VjY2Vzcy1vdXRsaW5lIC5idG4gY2xyLWljb24sLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MgLmJ0biBjZHMtaWNvbiwuYnRuLW91dGxpbmUtc3VjY2VzcyAuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4gY2RzLWljb24s'@; put 'LmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLW91dGxpbmUtc3VjY2VzcyAuYnRuIGNkcy1pY29uLC5idG4tb3V0bGluZS1zdWNjZXNzIC5idG4gY2xyLWljb24sLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MgLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuIGNsci1pY29uLC5h'@; put 'bGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MgLmJ0biBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1jb2xvcil9LmJ0bi5idG4tc3VjY2Vzcy1vdXRsaW5lOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2Vz'@; put 'cyAuYWxlcnQtaXRlbSAuYnRuOmhvdmVyLC5idG4uYnRuLW91dGxpbmUtc3VjY2Vzczpob3ZlciwuYnRuLXN1Y2Nlc3Mtb3V0bGluZSAuYnRuOmhvdmVyLC5idG4tb3V0bGluZS1zdWNjZXNzIC5idG46aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGlu'@; put 'ZS1ob3Zlci1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtaG92ZXItY29sb3IpfS5idG4uYnRuLXN1Y2Nlc3Mtb3V0bGluZTpob3ZlciBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWl0ZW0gLmJ0bjpob3ZlciBjZHMt'@; put 'aWNvbiwuYnRuLmJ0bi1zdWNjZXNzLW91dGxpbmU6aG92ZXIgY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1pdGVtIC5idG46aG92ZXIgY2xyLWljb24sLmJ0bi5idG4tb3V0bGluZS1zdWNjZXNzOmhvdmVyIGNkcy1pY29uLC5idG4uYnRuLW91dGxpbmUt'@; put 'c3VjY2Vzczpob3ZlciBjbHItaWNvbiwuYnRuLXN1Y2Nlc3Mtb3V0bGluZSAuYnRuOmhvdmVyIGNkcy1pY29uLC5idG4tc3VjY2Vzcy1vdXRsaW5lIC5idG46aG92ZXIgY2xyLWljb24sLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MgLmJ0bjpob3ZlciBjZHMtaWNvbiwuYnRuLW91dGxpbmUtc3VjY2Vz'@; put 'cyAuYnRuOmhvdmVyIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWhvdmVyLWNvbG9yKX0uYnRuLmJ0bi1zdWNjZXNzLW91dGxpbmU6YWN0aXZlLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuYWxlcnQtaXRlbSAuYnRuOmFjdGl2ZSwuYnRuLmJ0'@; put 'bi1vdXRsaW5lLXN1Y2Nlc3M6YWN0aXZlLC5idG4tc3VjY2Vzcy1vdXRsaW5lIC5idG46YWN0aXZlLC5idG4tb3V0bGluZS1zdWNjZXNzIC5idG46YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtYWN0aXZlLWJnLWNvbG9yKTtjb2xvcjp2YXIo'@; put 'LS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1hY3RpdmUtY29sb3IpfS5idG4uYnRuLXN1Y2Nlc3Mtb3V0bGluZTphY3RpdmUgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1pdGVtIC5idG46YWN0aXZlIGNkcy1pY29uLC5idG4uYnRuLXN1Y2Nlc3Mtb3V0'@; put 'bGluZTphY3RpdmUgY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1pdGVtIC5idG46YWN0aXZlIGNsci1pY29uLC5idG4uYnRuLW91dGxpbmUtc3VjY2VzczphY3RpdmUgY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZS1zdWNjZXNzOmFjdGl2ZSBjbHItaWNv'@; put 'biwuYnRuLXN1Y2Nlc3Mtb3V0bGluZSAuYnRuOmFjdGl2ZSBjZHMtaWNvbiwuYnRuLXN1Y2Nlc3Mtb3V0bGluZSAuYnRuOmFjdGl2ZSBjbHItaWNvbiwuYnRuLW91dGxpbmUtc3VjY2VzcyAuYnRuOmFjdGl2ZSBjZHMtaWNvbiwuYnRuLW91dGxpbmUtc3VjY2VzcyAuYnRuOmFjdGl2ZSBjbHIt'@; put 'aWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1hY3RpdmUtY29sb3IpfS5idG4uYnRuLXN1Y2Nlc3Mtb3V0bGluZS5kaXNhYmxlZCwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWl0ZW0gLmJ0bi5kaXNhYmxlZCwuYnRuLmJ0bi1zdWNjZXNzLW91'@; put 'dGxpbmU6ZGlzYWJsZWQsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1pdGVtIC5idG46ZGlzYWJsZWQsLmJ0bi5idG4tb3V0bGluZS1zdWNjZXNzLmRpc2FibGVkLC5idG4uYnRuLW91dGxpbmUtc3VjY2VzczpkaXNhYmxlZCwuYnRuLXN1Y2Nlc3Mtb3V0bGluZSAuYnRu'@; put 'LmRpc2FibGVkLC5idG4tc3VjY2Vzcy1vdXRsaW5lIC5idG46ZGlzYWJsZWQsLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MgLmJ0bi5kaXNhYmxlZCwuYnRuLW91dGxpbmUtc3VjY2VzcyAuYnRuOmRpc2FibGVke2NvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWRpc2FibGVkLWNvbG9y'@; put 'KTtjdXJzb3I6bm90LWFsbG93ZWQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1kaXNhYmxlZC1iZy1jb2xvcik7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWRpc2FibGVkLWJvcmRlci1jb2xvcil9LmJ0bi5idG4tc3Vj'@; put 'Y2Vzcy1vdXRsaW5lLmRpc2FibGVkIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuYWxlcnQtaXRlbSAuYnRuLmRpc2FibGVkIGNkcy1pY29uLC5idG4uYnRuLXN1Y2Nlc3Mtb3V0bGluZS5kaXNhYmxlZCBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1'@; put 'Y2Nlc3MgLmFsZXJ0LWl0ZW0gLmJ0bi5kaXNhYmxlZCBjbHItaWNvbiwuYnRuLmJ0bi1zdWNjZXNzLW91dGxpbmU6ZGlzYWJsZWQgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1pdGVtIC5idG46ZGlzYWJsZWQgY2RzLWljb24sLmJ0bi5idG4tc3VjY2Vz'@; put 'cy1vdXRsaW5lOmRpc2FibGVkIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuYWxlcnQtaXRlbSAuYnRuOmRpc2FibGVkIGNsci1pY29uLC5idG4uYnRuLW91dGxpbmUtc3VjY2Vzcy5kaXNhYmxlZCBjZHMtaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuZGlz'@; put 'YWJsZWQgY2xyLWljb24sLmJ0bi5idG4tb3V0bGluZS1zdWNjZXNzOmRpc2FibGVkIGNkcy1pY29uLC5idG4uYnRuLW91dGxpbmUtc3VjY2VzczpkaXNhYmxlZCBjbHItaWNvbiwuYnRuLXN1Y2Nlc3Mtb3V0bGluZSAuYnRuLmRpc2FibGVkIGNkcy1pY29uLC5idG4tc3VjY2Vzcy1vdXRsaW5l'@; put 'IC5idG4uZGlzYWJsZWQgY2xyLWljb24sLmJ0bi1zdWNjZXNzLW91dGxpbmUgLmJ0bjpkaXNhYmxlZCBjZHMtaWNvbiwuYnRuLXN1Y2Nlc3Mtb3V0bGluZSAuYnRuOmRpc2FibGVkIGNsci1pY29uLC5idG4tb3V0bGluZS1zdWNjZXNzIC5idG4uZGlzYWJsZWQgY2RzLWljb24sLmJ0bi1vdXRs'@; put 'aW5lLXN1Y2Nlc3MgLmJ0bi5kaXNhYmxlZCBjbHItaWNvbiwuYnRuLW91dGxpbmUtc3VjY2VzcyAuYnRuOmRpc2FibGVkIGNkcy1pY29uLC5idG4tb3V0bGluZS1zdWNjZXNzIC5idG46ZGlzYWJsZWQgY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtZGlzYWJs'@; put 'ZWQtY29sb3IpfS5idG4uYnRuLXdhcm5pbmctb3V0bGluZSwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4td2FybmluZy1vdXRsaW5lLmJ0biwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWl0ZW0gLmJ0biwuYnRuLmJ0bi1vdXRsaW5lLXdhcm5pbmcsLmFs'@; put 'ZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLW91dGxpbmUtd2FybmluZy5idG4sLmJ0bi13YXJuaW5nLW91dGxpbmUgLmJ0biwuYnRuLXdhcm5pbmctb3V0bGluZSAuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRu'@; put 'LXdhcm5pbmctb3V0bGluZSAuYnRuLC5idG4tb3V0bGluZS13YXJuaW5nIC5idG4sLmJ0bi1vdXRsaW5lLXdhcm5pbmcgLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1vdXRsaW5lLXdhcm5pbmcgLmJ0bntib3JkZXIt'@; put 'Y29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtYm9yZGVyLWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4td2FybmluZy1vdXRsaW5lLWJnLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1jb2xvcil9LmJ0bi5idG4td2Fybmlu'@; put 'Zy1vdXRsaW5lIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi13YXJuaW5nLW91dGxpbmUuYnRuIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuYWxlcnQtaXRlbSAuYnRuIGNkcy1pY29uLC5idG4uYnRuLXdhcm5pbmctb3V0bGluZSBj'@; put 'bHItaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4td2FybmluZy1vdXRsaW5lLmJ0biBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWl0ZW0gLmJ0biBjbHItaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLXdhcm5pbmcgY2RzLWljb24sLmFs'@; put 'ZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLW91dGxpbmUtd2FybmluZy5idG4gY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZS13YXJuaW5nIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1vdXRsaW5lLXdhcm5pbmcuYnRuIGNsci1pY29uLC5idG4td2Fy'@; put 'bmluZy1vdXRsaW5lIC5idG4gY2RzLWljb24sLmJ0bi13YXJuaW5nLW91dGxpbmUgLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi13YXJuaW5nLW91dGxpbmUgLmJ0biBjZHMtaWNvbiwuYnRuLXdhcm5p'@; put 'bmctb3V0bGluZSAuYnRuIGNsci1pY29uLC5idG4td2FybmluZy1vdXRsaW5lIC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0biBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4td2FybmluZy1vdXRsaW5lIC5idG4gY2xyLWljb24sLmJ0bi1vdXRsaW5l'@; put 'LXdhcm5pbmcgLmJ0biBjZHMtaWNvbiwuYnRuLW91dGxpbmUtd2FybmluZyAuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4gY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLW91dGxpbmUtd2FybmluZyAuYnRuIGNkcy1pY29uLC5idG4tb3V0bGluZS13'@; put 'YXJuaW5nIC5idG4gY2xyLWljb24sLmJ0bi1vdXRsaW5lLXdhcm5pbmcgLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1vdXRsaW5lLXdhcm5pbmcgLmJ0biBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHIt'@; put 'YnRuLXdhcm5pbmctb3V0bGluZS1jb2xvcil9LmJ0bi5idG4td2FybmluZy1vdXRsaW5lOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuYWxlcnQtaXRlbSAuYnRuOmhvdmVyLC5idG4uYnRuLW91dGxpbmUtd2FybmluZzpob3ZlciwuYnRuLXdhcm5pbmctb3V0bGluZSAu'@; put 'YnRuOmhvdmVyLC5idG4tb3V0bGluZS13YXJuaW5nIC5idG46aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1ob3Zlci1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtaG92ZXItY29sb3IpfS5idG4uYnRuLXdh'@; put 'cm5pbmctb3V0bGluZTpob3ZlciBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWl0ZW0gLmJ0bjpob3ZlciBjZHMtaWNvbiwuYnRuLmJ0bi13YXJuaW5nLW91dGxpbmU6aG92ZXIgY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5h'@; put 'bGVydC1pdGVtIC5idG46aG92ZXIgY2xyLWljb24sLmJ0bi5idG4tb3V0bGluZS13YXJuaW5nOmhvdmVyIGNkcy1pY29uLC5idG4uYnRuLW91dGxpbmUtd2FybmluZzpob3ZlciBjbHItaWNvbiwuYnRuLXdhcm5pbmctb3V0bGluZSAuYnRuOmhvdmVyIGNkcy1pY29uLC5idG4td2FybmluZy1v'@; put 'dXRsaW5lIC5idG46aG92ZXIgY2xyLWljb24sLmJ0bi1vdXRsaW5lLXdhcm5pbmcgLmJ0bjpob3ZlciBjZHMtaWNvbiwuYnRuLW91dGxpbmUtd2FybmluZyAuYnRuOmhvdmVyIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1idG4td2FybmluZy1vdXRsaW5lLWhvdmVyLWNvbG9yKX0uYnRuLmJ0'@; put 'bi13YXJuaW5nLW91dGxpbmU6YWN0aXZlLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuYWxlcnQtaXRlbSAuYnRuOmFjdGl2ZSwuYnRuLmJ0bi1vdXRsaW5lLXdhcm5pbmc6YWN0aXZlLC5idG4td2FybmluZy1vdXRsaW5lIC5idG46YWN0aXZlLC5idG4tb3V0bGluZS13YXJuaW5n'@; put 'IC5idG46YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtYWN0aXZlLWJnLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1hY3RpdmUtY29sb3IpfS5idG4uYnRuLXdhcm5pbmctb3V0bGluZTphY3RpdmUgY2RzLWlj'@; put 'b24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5hbGVydC1pdGVtIC5idG46YWN0aXZlIGNkcy1pY29uLC5idG4uYnRuLXdhcm5pbmctb3V0bGluZTphY3RpdmUgY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5hbGVydC1pdGVtIC5idG46YWN0aXZlIGNs'@; put 'ci1pY29uLC5idG4uYnRuLW91dGxpbmUtd2FybmluZzphY3RpdmUgY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZS13YXJuaW5nOmFjdGl2ZSBjbHItaWNvbiwuYnRuLXdhcm5pbmctb3V0bGluZSAuYnRuOmFjdGl2ZSBjZHMtaWNvbiwuYnRuLXdhcm5pbmctb3V0bGluZSAuYnRuOmFjdGl2ZSBj'@; put 'bHItaWNvbiwuYnRuLW91dGxpbmUtd2FybmluZyAuYnRuOmFjdGl2ZSBjZHMtaWNvbiwuYnRuLW91dGxpbmUtd2FybmluZyAuYnRuOmFjdGl2ZSBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1hY3RpdmUtY29sb3IpfS5idG4uYnRuLXdhcm5pbmctb3V0bGlu'@; put 'ZS5kaXNhYmxlZCwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWl0ZW0gLmJ0bi5kaXNhYmxlZCwuYnRuLmJ0bi13YXJuaW5nLW91dGxpbmU6ZGlzYWJsZWQsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5hbGVydC1pdGVtIC5idG46ZGlzYWJsZWQsLmJ0bi5i'@; put 'dG4tb3V0bGluZS13YXJuaW5nLmRpc2FibGVkLC5idG4uYnRuLW91dGxpbmUtd2FybmluZzpkaXNhYmxlZCwuYnRuLXdhcm5pbmctb3V0bGluZSAuYnRuLmRpc2FibGVkLC5idG4td2FybmluZy1vdXRsaW5lIC5idG46ZGlzYWJsZWQsLmJ0bi1vdXRsaW5lLXdhcm5pbmcgLmJ0bi5kaXNhYmxl'@; put 'ZCwuYnRuLW91dGxpbmUtd2FybmluZyAuYnRuOmRpc2FibGVke2NvbG9yOnZhcigtLWNsci1idG4td2FybmluZy1vdXRsaW5lLWRpc2FibGVkLWNvbG9yKTtjdXJzb3I6bm90LWFsbG93ZWQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1kaXNhYmxlZC1i'@; put 'Zy1jb2xvcik7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4td2FybmluZy1vdXRsaW5lLWRpc2FibGVkLWJvcmRlci1jb2xvcil9LmJ0bi5idG4td2FybmluZy1vdXRsaW5lLmRpc2FibGVkIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuYWxlcnQtaXRlbSAuYnRu'@; put 'LmRpc2FibGVkIGNkcy1pY29uLC5idG4uYnRuLXdhcm5pbmctb3V0bGluZS5kaXNhYmxlZCBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWl0ZW0gLmJ0bi5kaXNhYmxlZCBjbHItaWNvbiwuYnRuLmJ0bi13YXJuaW5nLW91dGxpbmU6ZGlzYWJsZWQgY2Rz'@; put 'LWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5hbGVydC1pdGVtIC5idG46ZGlzYWJsZWQgY2RzLWljb24sLmJ0bi5idG4td2FybmluZy1vdXRsaW5lOmRpc2FibGVkIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuYWxlcnQtaXRlbSAuYnRuOmRp'@; put 'c2FibGVkIGNsci1pY29uLC5idG4uYnRuLW91dGxpbmUtd2FybmluZy5kaXNhYmxlZCBjZHMtaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLXdhcm5pbmcuZGlzYWJsZWQgY2xyLWljb24sLmJ0bi5idG4tb3V0bGluZS13YXJuaW5nOmRpc2FibGVkIGNkcy1pY29uLC5idG4uYnRuLW91dGxpbmUtd2Fy'@; put 'bmluZzpkaXNhYmxlZCBjbHItaWNvbiwuYnRuLXdhcm5pbmctb3V0bGluZSAuYnRuLmRpc2FibGVkIGNkcy1pY29uLC5idG4td2FybmluZy1vdXRsaW5lIC5idG4uZGlzYWJsZWQgY2xyLWljb24sLmJ0bi13YXJuaW5nLW91dGxpbmUgLmJ0bjpkaXNhYmxlZCBjZHMtaWNvbiwuYnRuLXdhcm5p'@; put 'bmctb3V0bGluZSAuYnRuOmRpc2FibGVkIGNsci1pY29uLC5idG4tb3V0bGluZS13YXJuaW5nIC5idG4uZGlzYWJsZWQgY2RzLWljb24sLmJ0bi1vdXRsaW5lLXdhcm5pbmcgLmJ0bi5kaXNhYmxlZCBjbHItaWNvbiwuYnRuLW91dGxpbmUtd2FybmluZyAuYnRuOmRpc2FibGVkIGNkcy1pY29u'@; put 'LC5idG4tb3V0bGluZS13YXJuaW5nIC5idG46ZGlzYWJsZWQgY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtZGlzYWJsZWQtY29sb3IpfS5idG4uYnRuLWRhbmdlci1vdXRsaW5lLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1kYW5nZXItb3V0'@; put 'bGluZS5idG4sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmFsZXJ0LWl0ZW0gLmJ0biwuYnRuLmJ0bi1vdXRsaW5lLWRhbmdlciwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tb3V0bGluZS1kYW5nZXIuYnRuLC5idG4tZGFuZ2VyLW91dGxpbmUgLmJ0biwuYnRuLWRh'@; put 'bmdlci1vdXRsaW5lIC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0biwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tZGFuZ2VyLW91dGxpbmUgLmJ0biwuYnRuLW91dGxpbmUtZGFuZ2VyIC5idG4sLmJ0bi1vdXRsaW5lLWRhbmdlciAuYWxlcnQtYXBwLWxldmVsIC5h'@; put 'bGVydC1pdGVtIC5idG4sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLW91dGxpbmUtZGFuZ2VyIC5idG57Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtYm9yZGVyLWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLW91'@; put 'dGxpbmUtYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtY29sb3IpfS5idG4uYnRuLWRhbmdlci1vdXRsaW5lIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1kYW5nZXItb3V0bGluZS5idG4gY2RzLWljb24sLmFsZXJ0LWFwcC1s'@; put 'ZXZlbC5hbGVydC1kYW5nZXIgLmFsZXJ0LWl0ZW0gLmJ0biBjZHMtaWNvbiwuYnRuLmJ0bi1kYW5nZXItb3V0bGluZSBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tZGFuZ2VyLW91dGxpbmUuYnRuIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFu'@; put 'Z2VyIC5hbGVydC1pdGVtIC5idG4gY2xyLWljb24sLmJ0bi5idG4tb3V0bGluZS1kYW5nZXIgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLW91dGxpbmUtZGFuZ2VyLmJ0biBjZHMtaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLWRhbmdlciBjbHItaWNvbiwuYWxlcnQt'@; put 'YXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tb3V0bGluZS1kYW5nZXIuYnRuIGNsci1pY29uLC5idG4tZGFuZ2VyLW91dGxpbmUgLmJ0biBjZHMtaWNvbiwuYnRuLWRhbmdlci1vdXRsaW5lIC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0biBjZHMtaWNvbiwuYWxlcnQtYXBwLWxl'@; put 'dmVsIC5hbGVydC1pdGVtIC5idG4tZGFuZ2VyLW91dGxpbmUgLmJ0biBjZHMtaWNvbiwuYnRuLWRhbmdlci1vdXRsaW5lIC5idG4gY2xyLWljb24sLmJ0bi1kYW5nZXItb3V0bGluZSAuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4gY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAu'@; put 'YWxlcnQtaXRlbSAuYnRuLWRhbmdlci1vdXRsaW5lIC5idG4gY2xyLWljb24sLmJ0bi1vdXRsaW5lLWRhbmdlciAuYnRuIGNkcy1pY29uLC5idG4tb3V0bGluZS1kYW5nZXIgLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0'@; put 'LWl0ZW0gLmJ0bi1vdXRsaW5lLWRhbmdlciAuYnRuIGNkcy1pY29uLC5idG4tb3V0bGluZS1kYW5nZXIgLmJ0biBjbHItaWNvbiwuYnRuLW91dGxpbmUtZGFuZ2VyIC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0biBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVt'@; put 'IC5idG4tb3V0bGluZS1kYW5nZXIgLmJ0biBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWNvbG9yKX0uYnRuLmJ0bi1kYW5nZXItb3V0bGluZTpob3ZlciwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuYWxlcnQtaXRlbSAuYnRuOmhvdmVyLC5idG4u'@; put 'YnRuLW91dGxpbmUtZGFuZ2VyOmhvdmVyLC5idG4tZGFuZ2VyLW91dGxpbmUgLmJ0bjpob3ZlciwuYnRuLW91dGxpbmUtZGFuZ2VyIC5idG46aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWhvdmVyLWJnLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHIt'@; put 'YnRuLWRhbmdlci1vdXRsaW5lLWhvdmVyLWNvbG9yKX0uYnRuLmJ0bi1kYW5nZXItb3V0bGluZTpob3ZlciBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuYWxlcnQtaXRlbSAuYnRuOmhvdmVyIGNkcy1pY29uLC5idG4uYnRuLWRhbmdlci1vdXRsaW5lOmhvdmVyIGNs'@; put 'ci1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5hbGVydC1pdGVtIC5idG46aG92ZXIgY2xyLWljb24sLmJ0bi5idG4tb3V0bGluZS1kYW5nZXI6aG92ZXIgY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZS1kYW5nZXI6aG92ZXIgY2xyLWljb24sLmJ0bi1kYW5nZXItb3V0bGlu'@; put 'ZSAuYnRuOmhvdmVyIGNkcy1pY29uLC5idG4tZGFuZ2VyLW91dGxpbmUgLmJ0bjpob3ZlciBjbHItaWNvbiwuYnRuLW91dGxpbmUtZGFuZ2VyIC5idG46aG92ZXIgY2RzLWljb24sLmJ0bi1vdXRsaW5lLWRhbmdlciAuYnRuOmhvdmVyIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1idG4tZGFu'@; put 'Z2VyLW91dGxpbmUtaG92ZXItY29sb3IpfS5idG4uYnRuLWRhbmdlci1vdXRsaW5lOmFjdGl2ZSwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuYWxlcnQtaXRlbSAuYnRuOmFjdGl2ZSwuYnRuLmJ0bi1vdXRsaW5lLWRhbmdlcjphY3RpdmUsLmJ0bi1kYW5nZXItb3V0bGluZSAuYnRu'@; put 'OmFjdGl2ZSwuYnRuLW91dGxpbmUtZGFuZ2VyIC5idG46YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1hY3RpdmUtYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtYWN0aXZlLWNvbG9yKX0uYnRuLmJ0bi1kYW5n'@; put 'ZXItb3V0bGluZTphY3RpdmUgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmFsZXJ0LWl0ZW0gLmJ0bjphY3RpdmUgY2RzLWljb24sLmJ0bi5idG4tZGFuZ2VyLW91dGxpbmU6YWN0aXZlIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5hbGVy'@; put 'dC1pdGVtIC5idG46YWN0aXZlIGNsci1pY29uLC5idG4uYnRuLW91dGxpbmUtZGFuZ2VyOmFjdGl2ZSBjZHMtaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLWRhbmdlcjphY3RpdmUgY2xyLWljb24sLmJ0bi1kYW5nZXItb3V0bGluZSAuYnRuOmFjdGl2ZSBjZHMtaWNvbiwuYnRuLWRhbmdlci1vdXRs'@; put 'aW5lIC5idG46YWN0aXZlIGNsci1pY29uLC5idG4tb3V0bGluZS1kYW5nZXIgLmJ0bjphY3RpdmUgY2RzLWljb24sLmJ0bi1vdXRsaW5lLWRhbmdlciAuYnRuOmFjdGl2ZSBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWFjdGl2ZS1jb2xvcil9LmJ0bi5idG4t'@; put 'ZGFuZ2VyLW91dGxpbmUuZGlzYWJsZWQsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmFsZXJ0LWl0ZW0gLmJ0bi5kaXNhYmxlZCwuYnRuLmJ0bi1kYW5nZXItb3V0bGluZTpkaXNhYmxlZCwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuYWxlcnQtaXRlbSAuYnRuOmRpc2Fi'@; put 'bGVkLC5idG4uYnRuLW91dGxpbmUtZGFuZ2VyLmRpc2FibGVkLC5idG4uYnRuLW91dGxpbmUtZGFuZ2VyOmRpc2FibGVkLC5idG4tZGFuZ2VyLW91dGxpbmUgLmJ0bi5kaXNhYmxlZCwuYnRuLWRhbmdlci1vdXRsaW5lIC5idG46ZGlzYWJsZWQsLmJ0bi1vdXRsaW5lLWRhbmdlciAuYnRuLmRp'@; put 'c2FibGVkLC5idG4tb3V0bGluZS1kYW5nZXIgLmJ0bjpkaXNhYmxlZHtjb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWRpc2FibGVkLWNvbG9yKTtjdXJzb3I6bm90LWFsbG93ZWQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWRpc2FibGVk'@; put 'LWJnLWNvbG9yKTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1kaXNhYmxlZC1ib3JkZXItY29sb3IpfS5idG4uYnRuLWRhbmdlci1vdXRsaW5lLmRpc2FibGVkIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5hbGVydC1pdGVtIC5idG4u'@; put 'ZGlzYWJsZWQgY2RzLWljb24sLmJ0bi5idG4tZGFuZ2VyLW91dGxpbmUuZGlzYWJsZWQgY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmFsZXJ0LWl0ZW0gLmJ0bi5kaXNhYmxlZCBjbHItaWNvbiwuYnRuLmJ0bi1kYW5nZXItb3V0bGluZTpkaXNhYmxlZCBjZHMtaWNv'@; put 'biwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuYWxlcnQtaXRlbSAuYnRuOmRpc2FibGVkIGNkcy1pY29uLC5idG4uYnRuLWRhbmdlci1vdXRsaW5lOmRpc2FibGVkIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5hbGVydC1pdGVtIC5idG46ZGlzYWJsZWQg'@; put 'Y2xyLWljb24sLmJ0bi5idG4tb3V0bGluZS1kYW5nZXIuZGlzYWJsZWQgY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZS1kYW5nZXIuZGlzYWJsZWQgY2xyLWljb24sLmJ0bi5idG4tb3V0bGluZS1kYW5nZXI6ZGlzYWJsZWQgY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZS1kYW5nZXI6ZGlzYWJs'@; put 'ZWQgY2xyLWljb24sLmJ0bi1kYW5nZXItb3V0bGluZSAuYnRuLmRpc2FibGVkIGNkcy1pY29uLC5idG4tZGFuZ2VyLW91dGxpbmUgLmJ0bi5kaXNhYmxlZCBjbHItaWNvbiwuYnRuLWRhbmdlci1vdXRsaW5lIC5idG46ZGlzYWJsZWQgY2RzLWljb24sLmJ0bi1kYW5nZXItb3V0bGluZSAuYnRu'@; put 'OmRpc2FibGVkIGNsci1pY29uLC5idG4tb3V0bGluZS1kYW5nZXIgLmJ0bi5kaXNhYmxlZCBjZHMtaWNvbiwuYnRuLW91dGxpbmUtZGFuZ2VyIC5idG4uZGlzYWJsZWQgY2xyLWljb24sLmJ0bi1vdXRsaW5lLWRhbmdlciAuYnRuOmRpc2FibGVkIGNkcy1pY29uLC5idG4tb3V0bGluZS1kYW5n'@; put 'ZXIgLmJ0bjpkaXNhYmxlZCBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWRpc2FibGVkLWNvbG9yKX0uYnRuLmJ0bi1uZXV0cmFsLW91dGxpbmUsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLW5ldXRyYWwtb3V0bGluZS5idG4sLmFsZXJ0LWFw'@; put 'cC1sZXZlbC5hbGVydC1uZXV0cmFsIC5hbGVydC1pdGVtIC5idG4sLmJ0bi5idG4tb3V0bGluZS1uZXV0cmFsLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1vdXRsaW5lLW5ldXRyYWwuYnRuLC5idG4tbmV1dHJhbC1vdXRsaW5lIC5idG4sLmJ0bi1uZXV0cmFsLW91dGxpbmUg'@; put 'LmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1uZXV0cmFsLW91dGxpbmUgLmJ0biwuYnRuLW91dGxpbmUtbmV1dHJhbCAuYnRuLC5idG4tb3V0bGluZS1uZXV0cmFsIC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0g'@; put 'LmJ0biwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tb3V0bGluZS1uZXV0cmFsIC5idG57Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tbmV1dHJhbC1vdXRsaW5lLWJvcmRlci1jb2xvcik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLW5ldXRyYWwtb3V0bGluZS1i'@; put 'Zy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi1uZXV0cmFsLW91dGxpbmUtY29sb3IpfS5idG4uYnRuLW5ldXRyYWwtb3V0bGluZSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tbmV1dHJhbC1vdXRsaW5lLmJ0biBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVs'@; put 'LmFsZXJ0LW5ldXRyYWwgLmFsZXJ0LWl0ZW0gLmJ0biBjZHMtaWNvbiwuYnRuLmJ0bi1uZXV0cmFsLW91dGxpbmUgY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLW5ldXRyYWwtb3V0bGluZS5idG4gY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1uZXV0'@; put 'cmFsIC5hbGVydC1pdGVtIC5idG4gY2xyLWljb24sLmJ0bi5idG4tb3V0bGluZS1uZXV0cmFsIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1vdXRsaW5lLW5ldXRyYWwuYnRuIGNkcy1pY29uLC5idG4uYnRuLW91dGxpbmUtbmV1dHJhbCBjbHItaWNvbiwuYWxl'@; put 'cnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tb3V0bGluZS1uZXV0cmFsLmJ0biBjbHItaWNvbiwuYnRuLW5ldXRyYWwtb3V0bGluZSAuYnRuIGNkcy1pY29uLC5idG4tbmV1dHJhbC1vdXRsaW5lIC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0biBjZHMtaWNvbiwuYWxlcnQt'@; put 'YXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tbmV1dHJhbC1vdXRsaW5lIC5idG4gY2RzLWljb24sLmJ0bi1uZXV0cmFsLW91dGxpbmUgLmJ0biBjbHItaWNvbiwuYnRuLW5ldXRyYWwtb3V0bGluZSAuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4gY2xyLWljb24sLmFsZXJ0LWFw'@; put 'cC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLW5ldXRyYWwtb3V0bGluZSAuYnRuIGNsci1pY29uLC5idG4tb3V0bGluZS1uZXV0cmFsIC5idG4gY2RzLWljb24sLmJ0bi1vdXRsaW5lLW5ldXRyYWwgLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuIGNkcy1pY29uLC5hbGVydC1hcHAt'@; put 'bGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1vdXRsaW5lLW5ldXRyYWwgLmJ0biBjZHMtaWNvbiwuYnRuLW91dGxpbmUtbmV1dHJhbCAuYnRuIGNsci1pY29uLC5idG4tb3V0bGluZS1uZXV0cmFsIC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0biBjbHItaWNvbiwuYWxlcnQtYXBwLWxl'@; put 'dmVsIC5hbGVydC1pdGVtIC5idG4tb3V0bGluZS1uZXV0cmFsIC5idG4gY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi1uZXV0cmFsLW91dGxpbmUtY29sb3IpfS5idG4uYnRuLW5ldXRyYWwtb3V0bGluZTpob3ZlciwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LW5ldXRyYWwgLmFsZXJ0LWl0'@; put 'ZW0gLmJ0bjpob3ZlciwuYnRuLmJ0bi1vdXRsaW5lLW5ldXRyYWw6aG92ZXIsLmJ0bi1uZXV0cmFsLW91dGxpbmUgLmJ0bjpob3ZlciwuYnRuLW91dGxpbmUtbmV1dHJhbCAuYnRuOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1uZXV0cmFsLW91dGxpbmUtaG92ZXItYmct'@; put 'Y29sb3IpO2NvbG9yOnZhcigtLWNsci1idG4tbmV1dHJhbC1vdXRsaW5lLWhvdmVyLWNvbG9yKX0uYnRuLmJ0bi1uZXV0cmFsLW91dGxpbmU6aG92ZXIgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1uZXV0cmFsIC5hbGVydC1pdGVtIC5idG46aG92ZXIgY2RzLWljb24sLmJ0bi5i'@; put 'dG4tbmV1dHJhbC1vdXRsaW5lOmhvdmVyIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtbmV1dHJhbCAuYWxlcnQtaXRlbSAuYnRuOmhvdmVyIGNsci1pY29uLC5idG4uYnRuLW91dGxpbmUtbmV1dHJhbDpob3ZlciBjZHMtaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLW5ldXRyYWw6aG92'@; put 'ZXIgY2xyLWljb24sLmJ0bi1uZXV0cmFsLW91dGxpbmUgLmJ0bjpob3ZlciBjZHMtaWNvbiwuYnRuLW5ldXRyYWwtb3V0bGluZSAuYnRuOmhvdmVyIGNsci1pY29uLC5idG4tb3V0bGluZS1uZXV0cmFsIC5idG46aG92ZXIgY2RzLWljb24sLmJ0bi1vdXRsaW5lLW5ldXRyYWwgLmJ0bjpob3Zl'@; put 'ciBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLW5ldXRyYWwtb3V0bGluZS1ob3Zlci1jb2xvcil9LmJ0bi5idG4tbmV1dHJhbC1vdXRsaW5lOmFjdGl2ZSwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LW5ldXRyYWwgLmFsZXJ0LWl0ZW0gLmJ0bjphY3RpdmUsLmJ0bi5idG4tb3V0bGluZS1u'@; put 'ZXV0cmFsOmFjdGl2ZSwuYnRuLW5ldXRyYWwtb3V0bGluZSAuYnRuOmFjdGl2ZSwuYnRuLW91dGxpbmUtbmV1dHJhbCAuYnRuOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tbmV1dHJhbC1vdXRsaW5lLWFjdGl2ZS1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi1u'@; put 'ZXV0cmFsLW91dGxpbmUtYWN0aXZlLWNvbG9yKX0uYnRuLmJ0bi1uZXV0cmFsLW91dGxpbmU6YWN0aXZlIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtbmV1dHJhbCAuYWxlcnQtaXRlbSAuYnRuOmFjdGl2ZSBjZHMtaWNvbiwuYnRuLmJ0bi1uZXV0cmFsLW91dGxpbmU6YWN0aXZl'@; put 'IGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtbmV1dHJhbCAuYWxlcnQtaXRlbSAuYnRuOmFjdGl2ZSBjbHItaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLW5ldXRyYWw6YWN0aXZlIGNkcy1pY29uLC5idG4uYnRuLW91dGxpbmUtbmV1dHJhbDphY3RpdmUgY2xyLWljb24sLmJ0bi1uZXV0'@; put 'cmFsLW91dGxpbmUgLmJ0bjphY3RpdmUgY2RzLWljb24sLmJ0bi1uZXV0cmFsLW91dGxpbmUgLmJ0bjphY3RpdmUgY2xyLWljb24sLmJ0bi1vdXRsaW5lLW5ldXRyYWwgLmJ0bjphY3RpdmUgY2RzLWljb24sLmJ0bi1vdXRsaW5lLW5ldXRyYWwgLmJ0bjphY3RpdmUgY2xyLWljb257Y29sb3I6'@; put 'dmFyKC0tY2xyLWJ0bi1uZXV0cmFsLW91dGxpbmUtYWN0aXZlLWNvbG9yKX0uYnRuLmJ0bi1uZXV0cmFsLW91dGxpbmUuZGlzYWJsZWQsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1uZXV0cmFsIC5hbGVydC1pdGVtIC5idG4uZGlzYWJsZWQsLmJ0bi5idG4tbmV1dHJhbC1vdXRsaW5lOmRpc2Fi'@; put 'bGVkLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtbmV1dHJhbCAuYWxlcnQtaXRlbSAuYnRuOmRpc2FibGVkLC5idG4uYnRuLW91dGxpbmUtbmV1dHJhbC5kaXNhYmxlZCwuYnRuLmJ0bi1vdXRsaW5lLW5ldXRyYWw6ZGlzYWJsZWQsLmJ0bi1uZXV0cmFsLW91dGxpbmUgLmJ0bi5kaXNhYmxlZCwu'@; put 'YnRuLW5ldXRyYWwtb3V0bGluZSAuYnRuOmRpc2FibGVkLC5idG4tb3V0bGluZS1uZXV0cmFsIC5idG4uZGlzYWJsZWQsLmJ0bi1vdXRsaW5lLW5ldXRyYWwgLmJ0bjpkaXNhYmxlZHtjb2xvcjp2YXIoLS1jbHItYnRuLW5ldXRyYWwtb3V0bGluZS1kaXNhYmxlZC1jb2xvcik7Y3Vyc29yOm5v'@; put 'dC1hbGxvd2VkO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1uZXV0cmFsLW91dGxpbmUtZGlzYWJsZWQtYmctY29sb3IpO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLW5ldXRyYWwtb3V0bGluZS1kaXNhYmxlZC1ib3JkZXItY29sb3IpfS5idG4uYnRuLW5ldXRyYWwtb3V0bGlu'@; put 'ZS5kaXNhYmxlZCBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LW5ldXRyYWwgLmFsZXJ0LWl0ZW0gLmJ0bi5kaXNhYmxlZCBjZHMtaWNvbiwuYnRuLmJ0bi1uZXV0cmFsLW91dGxpbmUuZGlzYWJsZWQgY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1uZXV0cmFsIC5hbGVy'@; put 'dC1pdGVtIC5idG4uZGlzYWJsZWQgY2xyLWljb24sLmJ0bi5idG4tbmV1dHJhbC1vdXRsaW5lOmRpc2FibGVkIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtbmV1dHJhbCAuYWxlcnQtaXRlbSAuYnRuOmRpc2FibGVkIGNkcy1pY29uLC5idG4uYnRuLW5ldXRyYWwtb3V0bGluZTpk'@; put 'aXNhYmxlZCBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LW5ldXRyYWwgLmFsZXJ0LWl0ZW0gLmJ0bjpkaXNhYmxlZCBjbHItaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLW5ldXRyYWwuZGlzYWJsZWQgY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZS1uZXV0cmFsLmRpc2FibGVkIGNsci1p'@; put 'Y29uLC5idG4uYnRuLW91dGxpbmUtbmV1dHJhbDpkaXNhYmxlZCBjZHMtaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLW5ldXRyYWw6ZGlzYWJsZWQgY2xyLWljb24sLmJ0bi1uZXV0cmFsLW91dGxpbmUgLmJ0bi5kaXNhYmxlZCBjZHMtaWNvbiwuYnRuLW5ldXRyYWwtb3V0bGluZSAuYnRuLmRpc2Fi'@; put 'bGVkIGNsci1pY29uLC5idG4tbmV1dHJhbC1vdXRsaW5lIC5idG46ZGlzYWJsZWQgY2RzLWljb24sLmJ0bi1uZXV0cmFsLW91dGxpbmUgLmJ0bjpkaXNhYmxlZCBjbHItaWNvbiwuYnRuLW91dGxpbmUtbmV1dHJhbCAuYnRuLmRpc2FibGVkIGNkcy1pY29uLC5idG4tb3V0bGluZS1uZXV0cmFs'@; put 'IC5idG4uZGlzYWJsZWQgY2xyLWljb24sLmJ0bi1vdXRsaW5lLW5ldXRyYWwgLmJ0bjpkaXNhYmxlZCBjZHMtaWNvbiwuYnRuLW91dGxpbmUtbmV1dHJhbCAuYnRuOmRpc2FibGVkIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1idG4tbmV1dHJhbC1vdXRsaW5lLWRpc2FibGVkLWNvbG9yKX0u'@; put 'YnRuLmJ0bi1saW5rLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1saW5rLmJ0biwuYnRuLWxpbmsgLmJ0biwuYnRuLWxpbmsgLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1saW5rIC5idG57Ym9yZGVy'@; put 'LWNvbG9yOnZhcigtLWNsci1idG4tbGluay1ib3JkZXItY29sb3IpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWJnLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstY29sb3IpfS5idG4uYnRuLWxpbmsgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQt'@; put 'aXRlbSAuYnRuLWxpbmsuYnRuIGNkcy1pY29uLC5idG4uYnRuLWxpbmsgY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLWxpbmsuYnRuIGNsci1pY29uLC5idG4tbGluayAuYnRuIGNkcy1pY29uLC5idG4tbGluayAuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVt'@; put 'IC5idG4gY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLWxpbmsgLmJ0biBjZHMtaWNvbiwuYnRuLWxpbmsgLmJ0biBjbHItaWNvbiwuYnRuLWxpbmsgLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFs'@; put 'ZXJ0LWl0ZW0gLmJ0bi1saW5rIC5idG4gY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWNvbG9yKX0uYnRuLmJ0bi1saW5rOmhvdmVyLC5idG4tbGluayAuYnRuOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWhvdmVyLWJnLWNvbG9yKTtjb2xvcjp2'@; put 'YXIoLS1jbHItYnRuLWxpbmstaG92ZXItY29sb3IpfS5idG4uYnRuLWxpbms6aG92ZXIgY2RzLWljb24sLmJ0bi5idG4tbGluazpob3ZlciBjbHItaWNvbiwuYnRuLWxpbmsgLmJ0bjpob3ZlciBjZHMtaWNvbiwuYnRuLWxpbmsgLmJ0bjpob3ZlciBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHIt'@; put 'YnRuLWxpbmstaG92ZXItY29sb3IpfS5idG4uYnRuLWxpbms6YWN0aXZlLC5idG4tbGluayAuYnRuOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tbGluay1hY3RpdmUtYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1idG4tbGluay1hY3RpdmUtY29sb3IpfS5idG4uYnRu'@; put 'LWxpbms6YWN0aXZlIGNkcy1pY29uLC5idG4uYnRuLWxpbms6YWN0aXZlIGNsci1pY29uLC5idG4tbGluayAuYnRuOmFjdGl2ZSBjZHMtaWNvbiwuYnRuLWxpbmsgLmJ0bjphY3RpdmUgY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWFjdGl2ZS1jb2xvcil9LmJ0bi5idG4tbGlu'@; put 'ay5kaXNhYmxlZCwuYnRuLmJ0bi1saW5rOmRpc2FibGVkLC5idG4tbGluayAuYnRuLmRpc2FibGVkLC5idG4tbGluayAuYnRuOmRpc2FibGVke2NvbG9yOnZhcigtLWNsci1idG4tbGluay1kaXNhYmxlZC1jb2xvcik7Y3Vyc29yOm5vdC1hbGxvd2VkO2JhY2tncm91bmQtY29sb3I6dmFyKC0t'@; put 'Y2xyLWJ0bi1saW5rLWRpc2FibGVkLWJnLWNvbG9yKTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWRpc2FibGVkLWJvcmRlci1jb2xvcil9LmJ0bi5idG4tbGluay5kaXNhYmxlZCBjZHMtaWNvbiwuYnRuLmJ0bi1saW5rLmRpc2FibGVkIGNsci1pY29uLC5idG4uYnRuLWxpbms6'@; put 'ZGlzYWJsZWQgY2RzLWljb24sLmJ0bi5idG4tbGluazpkaXNhYmxlZCBjbHItaWNvbiwuYnRuLWxpbmsgLmJ0bi5kaXNhYmxlZCBjZHMtaWNvbiwuYnRuLWxpbmsgLmJ0bi5kaXNhYmxlZCBjbHItaWNvbiwuYnRuLWxpbmsgLmJ0bjpkaXNhYmxlZCBjZHMtaWNvbiwuYnRuLWxpbmsgLmJ0bjpk'@; put 'aXNhYmxlZCBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstZGlzYWJsZWQtY29sb3IpfS5idG4uYnRuLWxpbmstcHJpbWFyeSwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tbGluay1wcmltYXJ5LmJ0biwuYnRuLWxpbmstcHJpbWFyeSAuYnRuLC5idG4tbGluay1w'@; put 'cmltYXJ5IC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0biwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tbGluay1wcmltYXJ5IC5idG57Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tbGluay1wcmltYXJ5LWJvcmRlci1jb2xvcik7YmFja2dyb3VuZC1jb2xvcjp2'@; put 'YXIoLS1jbHItYnRuLWxpbmstcHJpbWFyeS1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLXByaW1hcnktY29sb3IpfS5idG4uYnRuLWxpbmstcHJpbWFyeSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tbGluay1wcmltYXJ5LmJ0biBjZHMtaWNv'@; put 'biwuYnRuLmJ0bi1saW5rLXByaW1hcnkgY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLWxpbmstcHJpbWFyeS5idG4gY2xyLWljb24sLmJ0bi1saW5rLXByaW1hcnkgLmJ0biBjZHMtaWNvbiwuYnRuLWxpbmstcHJpbWFyeSAuYWxlcnQtYXBwLWxldmVsIC5hbGVy'@; put 'dC1pdGVtIC5idG4gY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLWxpbmstcHJpbWFyeSAuYnRuIGNkcy1pY29uLC5idG4tbGluay1wcmltYXJ5IC5idG4gY2xyLWljb24sLmJ0bi1saW5rLXByaW1hcnkgLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRu'@; put 'IGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1saW5rLXByaW1hcnkgLmJ0biBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstcHJpbWFyeS1jb2xvcil9LmJ0bi5idG4tbGluay1wcmltYXJ5OmhvdmVyLC5idG4tbGluay1wcmltYXJ5IC5idG46aG92'@; put 'ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstcHJpbWFyeS1ob3Zlci1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLXByaW1hcnktaG92ZXItY29sb3IpfS5idG4uYnRuLWxpbmstcHJpbWFyeTpob3ZlciBjZHMtaWNvbiwuYnRuLmJ0bi1saW5rLXByaW1h'@; put 'cnk6aG92ZXIgY2xyLWljb24sLmJ0bi1saW5rLXByaW1hcnkgLmJ0bjpob3ZlciBjZHMtaWNvbiwuYnRuLWxpbmstcHJpbWFyeSAuYnRuOmhvdmVyIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1idG4tbGluay1wcmltYXJ5LWhvdmVyLWNvbG9yKX0uYnRuLmJ0bi1saW5rLXByaW1hcnk6YWN0'@; put 'aXZlLC5idG4tbGluay1wcmltYXJ5IC5idG46YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLXByaW1hcnktYWN0aXZlLWJnLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstcHJpbWFyeS1hY3RpdmUtY29sb3IpfS5idG4uYnRuLWxpbmstcHJpbWFyeTph'@; put 'Y3RpdmUgY2RzLWljb24sLmJ0bi5idG4tbGluay1wcmltYXJ5OmFjdGl2ZSBjbHItaWNvbiwuYnRuLWxpbmstcHJpbWFyeSAuYnRuOmFjdGl2ZSBjZHMtaWNvbiwuYnRuLWxpbmstcHJpbWFyeSAuYnRuOmFjdGl2ZSBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstcHJpbWFyeS1h'@; put 'Y3RpdmUtY29sb3IpfS5idG4uYnRuLWxpbmstcHJpbWFyeS5kaXNhYmxlZCwuYnRuLmJ0bi1saW5rLXByaW1hcnk6ZGlzYWJsZWQsLmJ0bi1saW5rLXByaW1hcnkgLmJ0bi5kaXNhYmxlZCwuYnRuLWxpbmstcHJpbWFyeSAuYnRuOmRpc2FibGVke2NvbG9yOnZhcigtLWNsci1idG4tbGluay1w'@; put 'cmltYXJ5LWRpc2FibGVkLWNvbG9yKTtjdXJzb3I6bm90LWFsbG93ZWQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstcHJpbWFyeS1kaXNhYmxlZC1iZy1jb2xvcik7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tbGluay1wcmltYXJ5LWRpc2FibGVkLWJvcmRlci1jb2xv'@; put 'cil9LmJ0bi5idG4tbGluay1wcmltYXJ5LmRpc2FibGVkIGNkcy1pY29uLC5idG4uYnRuLWxpbmstcHJpbWFyeS5kaXNhYmxlZCBjbHItaWNvbiwuYnRuLmJ0bi1saW5rLXByaW1hcnk6ZGlzYWJsZWQgY2RzLWljb24sLmJ0bi5idG4tbGluay1wcmltYXJ5OmRpc2FibGVkIGNsci1pY29uLC5i'@; put 'dG4tbGluay1wcmltYXJ5IC5idG4uZGlzYWJsZWQgY2RzLWljb24sLmJ0bi1saW5rLXByaW1hcnkgLmJ0bi5kaXNhYmxlZCBjbHItaWNvbiwuYnRuLWxpbmstcHJpbWFyeSAuYnRuOmRpc2FibGVkIGNkcy1pY29uLC5idG4tbGluay1wcmltYXJ5IC5idG46ZGlzYWJsZWQgY2xyLWljb257Y29s'@; put 'b3I6dmFyKC0tY2xyLWJ0bi1saW5rLXByaW1hcnktZGlzYWJsZWQtY29sb3IpfS5idG4uYnRuLWxpbmstc3VjY2VzcywuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tbGluay1zdWNjZXNzLmJ0biwuYnRuLWxpbmstc3VjY2VzcyAuYnRuLC5idG4tbGluay1zdWNjZXNzIC5hbGVy'@; put 'dC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0biwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tbGluay1zdWNjZXNzIC5idG57Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tbGluay1zdWNjZXNzLWJvcmRlci1jb2xvcik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRu'@; put 'LWxpbmstc3VjY2Vzcy1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLXN1Y2Nlc3MtY29sb3IpfS5idG4uYnRuLWxpbmstc3VjY2VzcyBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tbGluay1zdWNjZXNzLmJ0biBjZHMtaWNvbiwuYnRuLmJ0bi1s'@; put 'aW5rLXN1Y2Nlc3MgY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLWxpbmstc3VjY2Vzcy5idG4gY2xyLWljb24sLmJ0bi1saW5rLXN1Y2Nlc3MgLmJ0biBjZHMtaWNvbiwuYnRuLWxpbmstc3VjY2VzcyAuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4g'@; put 'Y2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLWxpbmstc3VjY2VzcyAuYnRuIGNkcy1pY29uLC5idG4tbGluay1zdWNjZXNzIC5idG4gY2xyLWljb24sLmJ0bi1saW5rLXN1Y2Nlc3MgLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuIGNsci1pY29uLC5h'@; put 'bGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1saW5rLXN1Y2Nlc3MgLmJ0biBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstc3VjY2Vzcy1jb2xvcil9LmJ0bi5idG4tbGluay1zdWNjZXNzOmhvdmVyLC5idG4tbGluay1zdWNjZXNzIC5idG46aG92ZXJ7YmFja2dyb3Vu'@; put 'ZC1jb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstc3VjY2Vzcy1ob3Zlci1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLXN1Y2Nlc3MtaG92ZXItY29sb3IpfS5idG4uYnRuLWxpbmstc3VjY2Vzczpob3ZlciBjZHMtaWNvbiwuYnRuLmJ0bi1saW5rLXN1Y2Nlc3M6aG92ZXIgY2xy'@; put 'LWljb24sLmJ0bi1saW5rLXN1Y2Nlc3MgLmJ0bjpob3ZlciBjZHMtaWNvbiwuYnRuLWxpbmstc3VjY2VzcyAuYnRuOmhvdmVyIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1idG4tbGluay1zdWNjZXNzLWhvdmVyLWNvbG9yKX0uYnRuLmJ0bi1saW5rLXN1Y2Nlc3M6YWN0aXZlLC5idG4tbGlu'@; put 'ay1zdWNjZXNzIC5idG46YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLXN1Y2Nlc3MtYWN0aXZlLWJnLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstc3VjY2Vzcy1hY3RpdmUtY29sb3IpfS5idG4uYnRuLWxpbmstc3VjY2VzczphY3RpdmUgY2RzLWlj'@; put 'b24sLmJ0bi5idG4tbGluay1zdWNjZXNzOmFjdGl2ZSBjbHItaWNvbiwuYnRuLWxpbmstc3VjY2VzcyAuYnRuOmFjdGl2ZSBjZHMtaWNvbiwuYnRuLWxpbmstc3VjY2VzcyAuYnRuOmFjdGl2ZSBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstc3VjY2Vzcy1hY3RpdmUtY29sb3Ip'@; put 'fS5idG4uYnRuLWxpbmstc3VjY2Vzcy5kaXNhYmxlZCwuYnRuLmJ0bi1saW5rLXN1Y2Nlc3M6ZGlzYWJsZWQsLmJ0bi1saW5rLXN1Y2Nlc3MgLmJ0bi5kaXNhYmxlZCwuYnRuLWxpbmstc3VjY2VzcyAuYnRuOmRpc2FibGVke2NvbG9yOnZhcigtLWNsci1idG4tbGluay1zdWNjZXNzLWRpc2Fi'@; put 'bGVkLWNvbG9yKTtjdXJzb3I6bm90LWFsbG93ZWQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstc3VjY2Vzcy1kaXNhYmxlZC1iZy1jb2xvcik7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tbGluay1zdWNjZXNzLWRpc2FibGVkLWJvcmRlci1jb2xvcil9LmJ0bi5idG4t'@; put 'bGluay1zdWNjZXNzLmRpc2FibGVkIGNkcy1pY29uLC5idG4uYnRuLWxpbmstc3VjY2Vzcy5kaXNhYmxlZCBjbHItaWNvbiwuYnRuLmJ0bi1saW5rLXN1Y2Nlc3M6ZGlzYWJsZWQgY2RzLWljb24sLmJ0bi5idG4tbGluay1zdWNjZXNzOmRpc2FibGVkIGNsci1pY29uLC5idG4tbGluay1zdWNj'@; put 'ZXNzIC5idG4uZGlzYWJsZWQgY2RzLWljb24sLmJ0bi1saW5rLXN1Y2Nlc3MgLmJ0bi5kaXNhYmxlZCBjbHItaWNvbiwuYnRuLWxpbmstc3VjY2VzcyAuYnRuOmRpc2FibGVkIGNkcy1pY29uLC5idG4tbGluay1zdWNjZXNzIC5idG46ZGlzYWJsZWQgY2xyLWljb257Y29sb3I6dmFyKC0tY2xy'@; put 'LWJ0bi1saW5rLXN1Y2Nlc3MtZGlzYWJsZWQtY29sb3IpfS5idG4uYnRuLWxpbmstd2FybmluZywuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tbGluay13YXJuaW5nLmJ0biwuYnRuLWxpbmstd2FybmluZyAuYnRuLC5idG4tbGluay13YXJuaW5nIC5hbGVydC1hcHAtbGV2ZWwg'@; put 'LmFsZXJ0LWl0ZW0gLmJ0biwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tbGluay13YXJuaW5nIC5idG57Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tbGluay13YXJuaW5nLWJvcmRlci1jb2xvcik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstd2Fybmlu'@; put 'Zy1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLXdhcm5pbmctY29sb3IpfS5idG4uYnRuLWxpbmstd2FybmluZyBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tbGluay13YXJuaW5nLmJ0biBjZHMtaWNvbiwuYnRuLmJ0bi1saW5rLXdhcm5pbmcg'@; put 'Y2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLWxpbmstd2FybmluZy5idG4gY2xyLWljb24sLmJ0bi1saW5rLXdhcm5pbmcgLmJ0biBjZHMtaWNvbiwuYnRuLWxpbmstd2FybmluZyAuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4gY2RzLWljb24sLmFs'@; put 'ZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLWxpbmstd2FybmluZyAuYnRuIGNkcy1pY29uLC5idG4tbGluay13YXJuaW5nIC5idG4gY2xyLWljb24sLmJ0bi1saW5rLXdhcm5pbmcgLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuIGNsci1pY29uLC5hbGVydC1hcHAtbGV2'@; put 'ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1saW5rLXdhcm5pbmcgLmJ0biBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstd2FybmluZy1jb2xvcil9LmJ0bi5idG4tbGluay13YXJuaW5nOmhvdmVyLC5idG4tbGluay13YXJuaW5nIC5idG46aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIo'@; put 'LS1jbHItYnRuLWxpbmstd2FybmluZy1ob3Zlci1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLXdhcm5pbmctaG92ZXItY29sb3IpfS5idG4uYnRuLWxpbmstd2FybmluZzpob3ZlciBjZHMtaWNvbiwuYnRuLmJ0bi1saW5rLXdhcm5pbmc6aG92ZXIgY2xyLWljb24sLmJ0bi1s'@; put 'aW5rLXdhcm5pbmcgLmJ0bjpob3ZlciBjZHMtaWNvbiwuYnRuLWxpbmstd2FybmluZyAuYnRuOmhvdmVyIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1idG4tbGluay13YXJuaW5nLWhvdmVyLWNvbG9yKX0uYnRuLmJ0bi1saW5rLXdhcm5pbmc6YWN0aXZlLC5idG4tbGluay13YXJuaW5nIC5i'@; put 'dG46YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLXdhcm5pbmctYWN0aXZlLWJnLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstd2FybmluZy1hY3RpdmUtY29sb3IpfS5idG4uYnRuLWxpbmstd2FybmluZzphY3RpdmUgY2RzLWljb24sLmJ0bi5idG4t'@; put 'bGluay13YXJuaW5nOmFjdGl2ZSBjbHItaWNvbiwuYnRuLWxpbmstd2FybmluZyAuYnRuOmFjdGl2ZSBjZHMtaWNvbiwuYnRuLWxpbmstd2FybmluZyAuYnRuOmFjdGl2ZSBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstd2FybmluZy1hY3RpdmUtY29sb3IpfS5idG4uYnRuLWxp'@; put 'bmstd2FybmluZy5kaXNhYmxlZCwuYnRuLmJ0bi1saW5rLXdhcm5pbmc6ZGlzYWJsZWQsLmJ0bi1saW5rLXdhcm5pbmcgLmJ0bi5kaXNhYmxlZCwuYnRuLWxpbmstd2FybmluZyAuYnRuOmRpc2FibGVke2NvbG9yOnZhcigtLWNsci1idG4tbGluay13YXJuaW5nLWRpc2FibGVkLWNvbG9yKTtj'@; put 'dXJzb3I6bm90LWFsbG93ZWQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstd2FybmluZy1kaXNhYmxlZC1iZy1jb2xvcik7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tbGluay13YXJuaW5nLWRpc2FibGVkLWJvcmRlci1jb2xvcil9LmJ0bi5idG4tbGluay13YXJuaW5n'@; put 'LmRpc2FibGVkIGNkcy1pY29uLC5idG4uYnRuLWxpbmstd2FybmluZy5kaXNhYmxlZCBjbHItaWNvbiwuYnRuLmJ0bi1saW5rLXdhcm5pbmc6ZGlzYWJsZWQgY2RzLWljb24sLmJ0bi5idG4tbGluay13YXJuaW5nOmRpc2FibGVkIGNsci1pY29uLC5idG4tbGluay13YXJuaW5nIC5idG4uZGlz'@; put 'YWJsZWQgY2RzLWljb24sLmJ0bi1saW5rLXdhcm5pbmcgLmJ0bi5kaXNhYmxlZCBjbHItaWNvbiwuYnRuLWxpbmstd2FybmluZyAuYnRuOmRpc2FibGVkIGNkcy1pY29uLC5idG4tbGluay13YXJuaW5nIC5idG46ZGlzYWJsZWQgY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLXdh'@; put 'cm5pbmctZGlzYWJsZWQtY29sb3IpfS5idG4uYnRuLWxpbmstZGFuZ2VyLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1saW5rLWRhbmdlci5idG4sLmJ0bi1saW5rLWRhbmdlciAuYnRuLC5idG4tbGluay1kYW5nZXIgLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRu'@; put 'LC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1saW5rLWRhbmdlciAuYnRue2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstZGFuZ2VyLWJvcmRlci1jb2xvcik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstZGFuZ2VyLWJnLWNvbG9yKTtjb2xvcjp2'@; put 'YXIoLS1jbHItYnRuLWxpbmstZGFuZ2VyLWNvbG9yKX0uYnRuLmJ0bi1saW5rLWRhbmdlciBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tbGluay1kYW5nZXIuYnRuIGNkcy1pY29uLC5idG4uYnRuLWxpbmstZGFuZ2VyIGNsci1pY29uLC5hbGVydC1hcHAtbGV2'@; put 'ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1saW5rLWRhbmdlci5idG4gY2xyLWljb24sLmJ0bi1saW5rLWRhbmdlciAuYnRuIGNkcy1pY29uLC5idG4tbGluay1kYW5nZXIgLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0g'@; put 'LmJ0bi1saW5rLWRhbmdlciAuYnRuIGNkcy1pY29uLC5idG4tbGluay1kYW5nZXIgLmJ0biBjbHItaWNvbiwuYnRuLWxpbmstZGFuZ2VyIC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0biBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tbGluay1kYW5n'@; put 'ZXIgLmJ0biBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstZGFuZ2VyLWNvbG9yKX0uYnRuLmJ0bi1saW5rLWRhbmdlcjpob3ZlciwuYnRuLWxpbmstZGFuZ2VyIC5idG46aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstZGFuZ2VyLWhvdmVyLWJnLWNv'@; put 'bG9yKTtjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstZGFuZ2VyLWhvdmVyLWNvbG9yKX0uYnRuLmJ0bi1saW5rLWRhbmdlcjpob3ZlciBjZHMtaWNvbiwuYnRuLmJ0bi1saW5rLWRhbmdlcjpob3ZlciBjbHItaWNvbiwuYnRuLWxpbmstZGFuZ2VyIC5idG46aG92ZXIgY2RzLWljb24sLmJ0bi1s'@; put 'aW5rLWRhbmdlciAuYnRuOmhvdmVyIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1idG4tbGluay1kYW5nZXItaG92ZXItY29sb3IpfS5idG4uYnRuLWxpbmstZGFuZ2VyOmFjdGl2ZSwuYnRuLWxpbmstZGFuZ2VyIC5idG46YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1s'@; put 'aW5rLWRhbmdlci1hY3RpdmUtYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1idG4tbGluay1kYW5nZXItYWN0aXZlLWNvbG9yKX0uYnRuLmJ0bi1saW5rLWRhbmdlcjphY3RpdmUgY2RzLWljb24sLmJ0bi5idG4tbGluay1kYW5nZXI6YWN0aXZlIGNsci1pY29uLC5idG4tbGluay1kYW5nZXIg'@; put 'LmJ0bjphY3RpdmUgY2RzLWljb24sLmJ0bi1saW5rLWRhbmdlciAuYnRuOmFjdGl2ZSBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstZGFuZ2VyLWFjdGl2ZS1jb2xvcil9LmJ0bi5idG4tbGluay1kYW5nZXIuZGlzYWJsZWQsLmJ0bi5idG4tbGluay1kYW5nZXI6ZGlzYWJsZWQs'@; put 'LmJ0bi1saW5rLWRhbmdlciAuYnRuLmRpc2FibGVkLC5idG4tbGluay1kYW5nZXIgLmJ0bjpkaXNhYmxlZHtjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstZGFuZ2VyLWRpc2FibGVkLWNvbG9yKTtjdXJzb3I6bm90LWFsbG93ZWQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWxpbmst'@; put 'ZGFuZ2VyLWRpc2FibGVkLWJnLWNvbG9yKTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWRhbmdlci1kaXNhYmxlZC1ib3JkZXItY29sb3IpfS5idG4uYnRuLWxpbmstZGFuZ2VyLmRpc2FibGVkIGNkcy1pY29uLC5idG4uYnRuLWxpbmstZGFuZ2VyLmRpc2FibGVkIGNsci1pY29u'@; put 'LC5idG4uYnRuLWxpbmstZGFuZ2VyOmRpc2FibGVkIGNkcy1pY29uLC5idG4uYnRuLWxpbmstZGFuZ2VyOmRpc2FibGVkIGNsci1pY29uLC5idG4tbGluay1kYW5nZXIgLmJ0bi5kaXNhYmxlZCBjZHMtaWNvbiwuYnRuLWxpbmstZGFuZ2VyIC5idG4uZGlzYWJsZWQgY2xyLWljb24sLmJ0bi1s'@; put 'aW5rLWRhbmdlciAuYnRuOmRpc2FibGVkIGNkcy1pY29uLC5idG4tbGluay1kYW5nZXIgLmJ0bjpkaXNhYmxlZCBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstZGFuZ2VyLWRpc2FibGVkLWNvbG9yKX0uYnRuLmJ0bi1saW5rLW5ldXRyYWwsLmFsZXJ0LWFwcC1sZXZlbCAuYWxl'@; put 'cnQtaXRlbSAuYnRuLWxpbmstbmV1dHJhbC5idG4sLmJ0bi1saW5rLW5ldXRyYWwgLmJ0biwuYnRuLWxpbmstbmV1dHJhbCAuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLWxpbmstbmV1dHJhbCAuYnRue2JvcmRlci1j'@; put 'b2xvcjp2YXIoLS1jbHItYnRuLWxpbmstbmV1dHJhbC1ib3JkZXItY29sb3IpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLW5ldXRyYWwtYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1idG4tbGluay1uZXV0cmFsLWNvbG9yKX0uYnRuLmJ0bi1saW5rLW5ldXRyYWwgY2Rz'@; put 'LWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLWxpbmstbmV1dHJhbC5idG4gY2RzLWljb24sLmJ0bi5idG4tbGluay1uZXV0cmFsIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1saW5rLW5ldXRyYWwuYnRuIGNsci1pY29uLC5idG4tbGlu'@; put 'ay1uZXV0cmFsIC5idG4gY2RzLWljb24sLmJ0bi1saW5rLW5ldXRyYWwgLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1saW5rLW5ldXRyYWwgLmJ0biBjZHMtaWNvbiwuYnRuLWxpbmstbmV1dHJhbCAu'@; put 'YnRuIGNsci1pY29uLC5idG4tbGluay1uZXV0cmFsIC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0biBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tbGluay1uZXV0cmFsIC5idG4gY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLW5ldXRy'@; put 'YWwtY29sb3IpfS5idG4uYnRuLWxpbmstbmV1dHJhbDpob3ZlciwuYnRuLWxpbmstbmV1dHJhbCAuYnRuOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLW5ldXRyYWwtaG92ZXItYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1idG4tbGluay1uZXV0cmFsLWhvdmVy'@; put 'LWNvbG9yKX0uYnRuLmJ0bi1saW5rLW5ldXRyYWw6aG92ZXIgY2RzLWljb24sLmJ0bi5idG4tbGluay1uZXV0cmFsOmhvdmVyIGNsci1pY29uLC5idG4tbGluay1uZXV0cmFsIC5idG46aG92ZXIgY2RzLWljb24sLmJ0bi1saW5rLW5ldXRyYWwgLmJ0bjpob3ZlciBjbHItaWNvbntjb2xvcjp2'@; put 'YXIoLS1jbHItYnRuLWxpbmstbmV1dHJhbC1ob3Zlci1jb2xvcil9LmJ0bi5idG4tbGluay1uZXV0cmFsOmFjdGl2ZSwuYnRuLWxpbmstbmV1dHJhbCAuYnRuOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tbGluay1uZXV0cmFsLWFjdGl2ZS1iZy1jb2xvcik7Y29sb3I6'@; put 'dmFyKC0tY2xyLWJ0bi1saW5rLW5ldXRyYWwtYWN0aXZlLWNvbG9yKX0uYnRuLmJ0bi1saW5rLW5ldXRyYWw6YWN0aXZlIGNkcy1pY29uLC5idG4uYnRuLWxpbmstbmV1dHJhbDphY3RpdmUgY2xyLWljb24sLmJ0bi1saW5rLW5ldXRyYWwgLmJ0bjphY3RpdmUgY2RzLWljb24sLmJ0bi1saW5r'@; put 'LW5ldXRyYWwgLmJ0bjphY3RpdmUgY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLW5ldXRyYWwtYWN0aXZlLWNvbG9yKX0uYnRuLmJ0bi1saW5rLW5ldXRyYWwuZGlzYWJsZWQsLmJ0bi5idG4tbGluay1uZXV0cmFsOmRpc2FibGVkLC5idG4tbGluay1uZXV0cmFsIC5idG4uZGlz'@; put 'YWJsZWQsLmJ0bi1saW5rLW5ldXRyYWwgLmJ0bjpkaXNhYmxlZHtjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstbmV1dHJhbC1kaXNhYmxlZC1jb2xvcik7Y3Vyc29yOm5vdC1hbGxvd2VkO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLW5ldXRyYWwtZGlzYWJsZWQtYmctY29s'@; put 'b3IpO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstbmV1dHJhbC1kaXNhYmxlZC1ib3JkZXItY29sb3IpfS5idG4uYnRuLWxpbmstbmV1dHJhbC5kaXNhYmxlZCBjZHMtaWNvbiwuYnRuLmJ0bi1saW5rLW5ldXRyYWwuZGlzYWJsZWQgY2xyLWljb24sLmJ0bi5idG4tbGluay1uZXV0'@; put 'cmFsOmRpc2FibGVkIGNkcy1pY29uLC5idG4uYnRuLWxpbmstbmV1dHJhbDpkaXNhYmxlZCBjbHItaWNvbiwuYnRuLWxpbmstbmV1dHJhbCAuYnRuLmRpc2FibGVkIGNkcy1pY29uLC5idG4tbGluay1uZXV0cmFsIC5idG4uZGlzYWJsZWQgY2xyLWljb24sLmJ0bi1saW5rLW5ldXRyYWwgLmJ0'@; put 'bjpkaXNhYmxlZCBjZHMtaWNvbiwuYnRuLWxpbmstbmV1dHJhbCAuYnRuOmRpc2FibGVkIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1idG4tbGluay1uZXV0cmFsLWRpc2FibGVkLWNvbG9yKX0uYnRuLmJ0bi1pbnZlcnNlLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1pbnZl'@; put 'cnNlLmJ0biwuYnRuLWludmVyc2UgLmJ0biwuYnRuLWludmVyc2UgLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1pbnZlcnNlIC5idG57Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4taW52ZXJzZS1ib3JkZXItY29s'@; put 'b3IpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1pbnZlcnNlLWJnLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHItYnRuLWludmVyc2UtY29sb3IpfS5idG4uYnRuLWludmVyc2UgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLWludmVyc2UuYnRuIGNkcy1p'@; put 'Y29uLC5idG4uYnRuLWludmVyc2UgY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLWludmVyc2UuYnRuIGNsci1pY29uLC5idG4taW52ZXJzZSAuYnRuIGNkcy1pY29uLC5idG4taW52ZXJzZSAuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4gY2RzLWlj'@; put 'b24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLWludmVyc2UgLmJ0biBjZHMtaWNvbiwuYnRuLWludmVyc2UgLmJ0biBjbHItaWNvbiwuYnRuLWludmVyc2UgLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0'@; put 'LWl0ZW0gLmJ0bi1pbnZlcnNlIC5idG4gY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi1pbnZlcnNlLWNvbG9yKX0uYnRuLmJ0bi1pbnZlcnNlOmhvdmVyLC5idG4taW52ZXJzZSAuYnRuOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1pbnZlcnNlLWhvdmVyLWJnLWNv'@; put 'bG9yKTtjb2xvcjp2YXIoLS1jbHItYnRuLWludmVyc2UtaG92ZXItY29sb3IpfS5idG4uYnRuLWludmVyc2U6aG92ZXIgY2RzLWljb24sLmJ0bi5idG4taW52ZXJzZTpob3ZlciBjbHItaWNvbiwuYnRuLWludmVyc2UgLmJ0bjpob3ZlciBjZHMtaWNvbiwuYnRuLWludmVyc2UgLmJ0bjpob3Zl'@; put 'ciBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLWludmVyc2UtaG92ZXItY29sb3IpfS5idG4uYnRuLWludmVyc2U6YWN0aXZlLC5idG4taW52ZXJzZSAuYnRuOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4taW52ZXJzZS1hY3RpdmUtYmctY29sb3IpO2NvbG9yOnZh'@; put 'cigtLWNsci1idG4taW52ZXJzZS1hY3RpdmUtY29sb3IpfS5idG4uYnRuLWludmVyc2U6YWN0aXZlIGNkcy1pY29uLC5idG4uYnRuLWludmVyc2U6YWN0aXZlIGNsci1pY29uLC5idG4taW52ZXJzZSAuYnRuOmFjdGl2ZSBjZHMtaWNvbiwuYnRuLWludmVyc2UgLmJ0bjphY3RpdmUgY2xyLWlj'@; put 'b257Y29sb3I6dmFyKC0tY2xyLWJ0bi1pbnZlcnNlLWFjdGl2ZS1jb2xvcil9LmJ0bi5idG4taW52ZXJzZS5kaXNhYmxlZCwuYnRuLmJ0bi1pbnZlcnNlOmRpc2FibGVkLC5idG4taW52ZXJzZSAuYnRuLmRpc2FibGVkLC5idG4taW52ZXJzZSAuYnRuOmRpc2FibGVke2NvbG9yOnZhcigtLWNs'@; put 'ci1idG4taW52ZXJzZS1kaXNhYmxlZC1jb2xvcik7Y3Vyc29yOm5vdC1hbGxvd2VkO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1pbnZlcnNlLWRpc2FibGVkLWJnLWNvbG9yKTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1pbnZlcnNlLWRpc2FibGVkLWJvcmRlci1jb2xvcil9'@; put 'LmJ0bi5idG4taW52ZXJzZS5kaXNhYmxlZCBjZHMtaWNvbiwuYnRuLmJ0bi1pbnZlcnNlLmRpc2FibGVkIGNsci1pY29uLC5idG4uYnRuLWludmVyc2U6ZGlzYWJsZWQgY2RzLWljb24sLmJ0bi5idG4taW52ZXJzZTpkaXNhYmxlZCBjbHItaWNvbiwuYnRuLWludmVyc2UgLmJ0bi5kaXNhYmxl'@; put 'ZCBjZHMtaWNvbiwuYnRuLWludmVyc2UgLmJ0bi5kaXNhYmxlZCBjbHItaWNvbiwuYnRuLWludmVyc2UgLmJ0bjpkaXNhYmxlZCBjZHMtaWNvbiwuYnRuLWludmVyc2UgLmJ0bjpkaXNhYmxlZCBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLWludmVyc2UtZGlzYWJsZWQtY29sb3IpfS5i'@; put 'dG4uYnRuLXNtLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0biwuYnRuLXNtIC5idG57Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtc2VtaWJvbGQpO2ZvbnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1mb250LXNpemUt'@; put 'MSk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTtsZXR0ZXItc3BhY2luZzpjYWxjKC4yKigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7aGVpZ2h0OnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1zdGFuZGFyZC1oZWln'@; put 'aHQpO3BhZGRpbmc6dmFyKC0tY2xyLWJ0bi1hcHBlYXJhbmNlLXN0YW5kYXJkLXBhZGRpbmcpfS5idG4tYmxvY2t7ZGlzcGxheTpmbGV4O3dpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCV9LmJ0biwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG57bWFyZ2luOnZhcigtLWNsci1idG4t'@; put 'dmVydGljYWwtbWFyZ2luKSB2YXIoLS1jbHItYnRuLWhvcml6b250YWwtbWFyZ2luKSB2YXIoLS1jbHItYnRuLXZlcnRpY2FsLW1hcmdpbikgMH0uYnRuLmJ0bi1saW5rLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi1saW5rLmJ0bnttYXJnaW4tcmlnaHQ6MH0uYnRuLmJ0bi1s'@; put 'aW5rLmJ0bi1pbnZlcnNle2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH0uYnRuLXNtOm5vdCguYnRuLWxpbmspIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bjpub3QoLmJ0bi1saW5rKSBjbHItaWNvbnt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCxjYWxjKC0xKnZh'@; put 'cigtLWNkcy1nbG9iYWwtc3BhY2UtMSkpLDApfS5idG4tc206bm90KC5idG4tbGluaykgY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuOm5vdCguYnRuLWxpbmspIGNsci1pY29uLC5idG4tc206bm90KC5idG4tbGluaykgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZl'@; put 'bCAuYWxlcnQtaXRlbSAuYnRuOm5vdCguYnRuLWxpbmspIGNkcy1pY29ue2hlaWdodDp2YXIoLS1jbHItYnRuLWFwcGVhcmFuY2Utc3RhbmRhcmQtaWNvbi1zaXplKTt3aWR0aDp2YXIoLS1jbHItYnRuLWFwcGVhcmFuY2Utc3RhbmRhcmQtaWNvbi1zaXplKX0uYnRuLWljb257bWluLXdpZHRo'@; put 'OjB9LmJ0bi1ncm91cC5idG4tbGluayAuZHJvcGRvd24tdG9nZ2xle2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstYm9yZGVyLWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tbGluay1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWNvbG9yKX0u'@; put 'YnRuLWdyb3VwLmJ0bi1saW5rIC5kcm9wZG93bi10b2dnbGUgY2RzLWljb24sLmJ0bi1ncm91cC5idG4tbGluayAuZHJvcGRvd24tdG9nZ2xlIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1idG4tbGluay1jb2xvcil9LmJ0bi1ncm91cC5idG4tbGluayAuZHJvcGRvd24tdG9nZ2xlOmhvdmVy'@; put 'e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWhvdmVyLWJnLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstaG92ZXItY29sb3IpfS5idG4tZ3JvdXAuYnRuLWxpbmsgLmRyb3Bkb3duLXRvZ2dsZTpob3ZlciBjZHMtaWNvbiwuYnRuLWdyb3VwLmJ0bi1saW5rIC5k'@; put 'cm9wZG93bi10b2dnbGU6aG92ZXIgY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWhvdmVyLWNvbG9yKX0uYnRuLWdyb3VwLmJ0bi1saW5rIC5kcm9wZG93bi10b2dnbGU6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWFjdGl2ZS1iZy1jb2xvcik7'@; put 'Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWFjdGl2ZS1jb2xvcil9LmJ0bi1ncm91cC5idG4tbGluayAuZHJvcGRvd24tdG9nZ2xlOmFjdGl2ZSBjZHMtaWNvbiwuYnRuLWdyb3VwLmJ0bi1saW5rIC5kcm9wZG93bi10b2dnbGU6YWN0aXZlIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1idG4t'@; put 'bGluay1hY3RpdmUtY29sb3IpfS5idG4tZ3JvdXAuYnRuLWxpbmsgLmRyb3Bkb3duLXRvZ2dsZS5kaXNhYmxlZCwuYnRuLWdyb3VwLmJ0bi1saW5rIC5kcm9wZG93bi10b2dnbGU6ZGlzYWJsZWR7Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWRpc2FibGVkLWNvbG9yKTtjdXJzb3I6bm90LWFs'@; put 'bG93ZWQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstZGlzYWJsZWQtYmctY29sb3IpO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstZGlzYWJsZWQtYm9yZGVyLWNvbG9yKX0uYnRuLWdyb3VwLmJ0bi1saW5rIC5kcm9wZG93bi10b2dnbGUuZGlzYWJsZWQgY2Rz'@; put 'LWljb24sLmJ0bi1ncm91cC5idG4tbGluayAuZHJvcGRvd24tdG9nZ2xlLmRpc2FibGVkIGNsci1pY29uLC5idG4tZ3JvdXAuYnRuLWxpbmsgLmRyb3Bkb3duLXRvZ2dsZTpkaXNhYmxlZCBjZHMtaWNvbiwuYnRuLWdyb3VwLmJ0bi1saW5rIC5kcm9wZG93bi10b2dnbGU6ZGlzYWJsZWQgY2xy'@; put 'LWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWRpc2FibGVkLWNvbG9yKX0uYnRuLWdyb3VwLmJ0bi1zbSAuYnRuLWdyb3VwLW92ZXJmbG93Pi5kcm9wZG93bi10b2dnbGUsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLWdyb3VwLmJ0biAuYnRuLWdyb3VwLW92ZXJmbG93'@; put 'Pi5kcm9wZG93bi10b2dnbGV7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtc2VtaWJvbGQpO2ZvbnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1mb250LXNpemUtMSk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03'@; put 'KTtsZXR0ZXItc3BhY2luZzpjYWxjKC4yKigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7aGVpZ2h0OnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1zdGFuZGFyZC1oZWlnaHQpO3BhZGRpbmc6dmFyKC0tY2xyLWJ0bi1hcHBlYXJhbmNlLXN0'@; put 'YW5kYXJkLXBhZGRpbmcpfS5jaGVja2JveC5idG4sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuY2hlY2tib3guYnRuLC5jaGVja2JveC1pbmxpbmUuYnRuLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmNoZWNrYm94LWlubGluZS5idG4sLnJhZGlvLmJ0biwuYWxlcnQtYXBw'@; put 'LWxldmVsIC5hbGVydC1pdGVtIC5yYWRpby5idG4sLnJhZGlvLWlubGluZS5idG4sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAucmFkaW8taW5saW5lLmJ0bntwYWRkaW5nOjB9LmNoZWNrYm94LmJ0biBsYWJlbCwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5jaGVja2JveC5i'@; put 'dG4gbGFiZWwsLmNoZWNrYm94LWlubGluZS5idG4gbGFiZWwsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuY2hlY2tib3gtaW5saW5lLmJ0biBsYWJlbCwucmFkaW8uYnRuIGxhYmVsLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLnJhZGlvLmJ0biBsYWJlbCwucmFkaW8taW5s'@; put 'aW5lLmJ0biBsYWJlbCwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5yYWRpby1pbmxpbmUuYnRuIGxhYmVse2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7Z2FwOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSk7YWxpZ24taXRlbXM6Y2VudGVyO3BsYWNlLWNvbnRlbnQ6'@; put 'Y2VudGVyOy13ZWJraXQtYXBwZWFyYW5jZTpub25lIWltcG9ydGFudDtwYWRkaW5nOjAgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KX0uY2hlY2tib3guYnRuLmRpc2FibGVkIGxhYmVsLC5jaGVja2JveC5idG46ZGlzYWJsZWQgbGFiZWwsLmNoZWNrYm94LWlubGluZS5idG4uZGlzYWJsZWQg'@; put 'bGFiZWwsLmNoZWNrYm94LWlubGluZS5idG46ZGlzYWJsZWQgbGFiZWwsLnJhZGlvLmJ0bi5kaXNhYmxlZCBsYWJlbCwucmFkaW8uYnRuOmRpc2FibGVkIGxhYmVsLC5yYWRpby1pbmxpbmUuYnRuLmRpc2FibGVkIGxhYmVsLC5yYWRpby1pbmxpbmUuYnRuOmRpc2FibGVkIGxhYmVse2N1cnNv'@; put 'cjpub3QtYWxsb3dlZH0uY2hlY2tib3guYnRuIGlucHV0W3R5cGU9Y2hlY2tib3hdK2xhYmVsOmJlZm9yZSwuY2hlY2tib3guYnRuIGlucHV0W3R5cGU9Y2hlY2tib3hdK2xhYmVsOmFmdGVyLC5jaGVja2JveC1pbmxpbmUuYnRuIGlucHV0W3R5cGU9Y2hlY2tib3hdK2xhYmVsOmJlZm9yZSwu'@; put 'Y2hlY2tib3gtaW5saW5lLmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XStsYWJlbDphZnRlcntjb250ZW50Om5vbmV9LnJhZGlvLmJ0biBpbnB1dFt0eXBlPXJhZGlvXStsYWJlbDpiZWZvcmUsLnJhZGlvLmJ0biBpbnB1dFt0eXBlPXJhZGlvXStsYWJlbDphZnRlciwucmFkaW8taW5saW5lLmJ0'@; put 'biBpbnB1dFt0eXBlPXJhZGlvXStsYWJlbDpiZWZvcmUsLnJhZGlvLWlubGluZS5idG4gaW5wdXRbdHlwZT1yYWRpb10rbGFiZWw6YWZ0ZXJ7Y29udGVudDpub25lfS5jaGVja2JveC5idG4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0biBp'@; put 'bnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVse2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWNoZWNrZWQtYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1jaGVja2VkLWNvbG9yKX0uY2hlY2tib3guYnRuIGlucHV0W3R5cGU9Y2hlY2ti'@; put 'b3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LWlubGlu'@; put 'ZS5idG4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY2hlY2tlZC1jb2xvcil9LmNoZWNrYm94LmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmhvdmVyK2xhYmVsLC5jaGVja2JveC1pbmxpbmUu'@; put 'YnRuIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6aG92ZXIrbGFiZWx7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY2hlY2tlZC1ob3Zlci1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWNoZWNrZWQtaG92ZXItY29sb3IpfS5jaGVja2Jv'@; put 'eC5idG4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpob3ZlcitsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6aG92ZXIrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hl'@; put 'Y2tlZDpob3ZlcitsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmhvdmVyK2xhYmVsPmNkcy1pY29ue2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1jaGVja2VkLWhvdmVyLWNvbG9yKX0uY2hlY2tib3guYnRuIGlucHV0'@; put 'W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6YWN0aXZlK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6YWN0aXZlK2xhYmVse2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWNoZWNrZWQtYWN0aXZlLWJnLWNvbG9yKTtj'@; put 'b2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY2hlY2tlZC1hY3RpdmUtY29sb3IpfS5jaGVja2JveC5idG4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDphY3RpdmUrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmFjdGl2ZSts'@; put 'YWJlbD5jZHMtaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmFjdGl2ZStsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmFjdGl2ZStsYWJlbD5jZHMtaWNvbntjb2xvcjp2'@; put 'YXIoLS1jbHItYnRuLWRlZmF1bHQtY2hlY2tlZC1hY3RpdmUtY29sb3IpfS5jaGVja2JveC5idG4uZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3guYnRuOmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNr'@; put 'Ym94LWlubGluZS5idG4uZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bjpkaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVse2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1jaGVja2VkLWRpc2Fi'@; put 'bGVkLWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1jaGVja2VkLWRpc2FibGVkLWJnLWNvbG9yKX0uY2hlY2tib3guYnRuLmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5kaXNhYmxl'@; put 'ZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC5idG46ZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuOmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQr'@; put 'bGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5kaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5j'@; put 'aGVja2JveC1pbmxpbmUuYnRuOmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LWlubGluZS5idG46ZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbntjb2xvcjp2YXIoLS1jbHItYnRu'@; put 'LWRlZmF1bHQtY2hlY2tlZC1kaXNhYmxlZC1jb2xvcil9LmNoZWNrYm94LmJ0biBsYWJlbCwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5jaGVja2JveC5idG4gbGFiZWwsLmNoZWNrYm94LWlubGluZS5idG4gbGFiZWwsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuY2hlY2ti'@; put 'b3gtaW5saW5lLmJ0biBsYWJlbHt3aWR0aDoxMDAlfS5jaGVja2JveC5idG4uYnRuLXNlY29uZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC5idG4uYnRuLWluZm8gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3guYnRu'@; put 'LmJ0bi1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmUgaW5wdXRbdHlwZT1j'@; put 'aGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3guYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnkgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3guYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5j'@; put 'aGVja2JveC5idG4uYnRuLWluZm8tb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtaXRlbSAuY2hlY2tib3guYnRuIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LmJ0'@; put 'bi5idG4tb3V0bGluZS1pbmZvIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXNlY29uZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1pbmZvIGlucHV0W3R5cGU9'@; put 'Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFi'@; put 'ZWwsLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtcHJpbWFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2Jv'@; put 'eC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1pbmZvLW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0'@; put 'LWluZm8gLmFsZXJ0LWl0ZW0gLmNoZWNrYm94LWlubGluZS5idG4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tb3V0bGluZS1pbmZvIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWx7YmFja2dyb3VuZC1jb2xvcjp2'@; put 'YXIoLS1jbHItYnRuLWRlZmF1bHQtY2hlY2tlZC1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWNoZWNrZWQtY29sb3IpfS5jaGVja2JveC5idG4uYnRuLXNlY29uZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5i'@; put 'dG4uYnRuLXNlY29uZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC5idG4uYnRuLWluZm8gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1pbmZvIGlucHV0W3R5cGU9Y2hl'@; put 'Y2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4uYnRuLW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMt'@; put 'aWNvbiwuY2hlY2tib3guYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwuY2hl'@; put 'Y2tib3guYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94'@; put 'LmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4t'@; put 'b3V0bGluZS1zZWNvbmRhcnkgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC5idG4uYnRuLWluZm8t'@; put 'b3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtaXRlbSAuY2hlY2tib3guYnRuIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5i'@; put 'dG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1pdGVtIC5jaGVja2JveC5idG4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwuY2hlY2ti'@; put 'b3guYnRuLmJ0bi1vdXRsaW5lLWluZm8gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1vdXRsaW5lLWluZm8gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5i'@; put 'dG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXNlY29uZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1pbmZv'@; put 'IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLWluZm8gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tb3V0bGluZSBpbnB1dFt0eXBlPWNo'@; put 'ZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXByaW1hcnktb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNr'@; put 'Ym94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmUgaW5wdXRbdHlw'@; put 'ZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlu'@; put 'cHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtcHJpbWFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lLXNlY29u'@; put 'ZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1pbmZv'@; put 'LW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmFsZXJ0LWl0ZW0gLmNoZWNrYm94LWlubGluZS5idG4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2ti'@; put 'b3gtaW5saW5lLmJ0bi5idG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1pdGVtIC5jaGVja2JveC1pbmxpbmUuYnRuIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQr'@; put 'bGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtaW5mbyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lLWluZm8gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCts'@; put 'YWJlbD5jZHMtaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY2hlY2tlZC1jb2xvcil9LmNoZWNrYm94LmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6aG92ZXIrbGFiZWwsLmNoZWNrYm94LmJ0bi5idG4taW5mbyBpbnB1dFt0eXBlPWNoZWNr'@; put 'Ym94XTpjaGVja2VkOmhvdmVyK2xhYmVsLC5jaGVja2JveC5idG4uYnRuLW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpob3ZlcitsYWJlbCwuY2hlY2tib3guYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpob3ZlcitsYWJl'@; put 'bCwuY2hlY2tib3guYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmhvdmVyK2xhYmVsLC5jaGVja2JveC5idG4uYnRuLW91dGxpbmUtcHJpbWFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmhvdmVyK2xhYmVsLC5jaGVja2JveC5i'@; put 'dG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6aG92ZXIrbGFiZWwsLmNoZWNrYm94LmJ0bi5idG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6aG92ZXIrbGFiZWwsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZv'@; put 'IC5hbGVydC1pdGVtIC5jaGVja2JveC5idG4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpob3ZlcitsYWJlbCwuY2hlY2tib3guYnRuLmJ0bi1vdXRsaW5lLWluZm8gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpob3ZlcitsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4t'@; put 'c2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6aG92ZXIrbGFiZWwsLmNoZWNrYm94LWlubGluZS5idG4uYnRuLWluZm8gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpob3ZlcitsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tb3V0bGluZSBpbnB1dFt0eXBl'@; put 'PWNoZWNrYm94XTpjaGVja2VkOmhvdmVyK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpob3ZlcitsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmUgaW5wdXRbdHlw'@; put 'ZT1jaGVja2JveF06Y2hlY2tlZDpob3ZlcitsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6aG92ZXIrbGFiZWwsLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGlucHV0W3R5'@; put 'cGU9Y2hlY2tib3hdOmNoZWNrZWQ6aG92ZXIrbGFiZWwsLmNoZWNrYm94LWlubGluZS5idG4uYnRuLWluZm8tb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmhvdmVyK2xhYmVsLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtaXRlbSAuY2hlY2tib3gtaW5s'@; put 'aW5lLmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmhvdmVyK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lLWluZm8gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpob3ZlcitsYWJlbHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVs'@; put 'dC1jaGVja2VkLWhvdmVyLWJnLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY2hlY2tlZC1ob3Zlci1jb2xvcil9LmNoZWNrYm94LmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6aG92ZXIrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0'@; put 'bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6aG92ZXIrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4taW5mbyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmhvdmVyK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4uYnRuLWluZm8gaW5w'@; put 'dXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpob3ZlcitsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6aG92ZXIrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNr'@; put 'Ym94XTpjaGVja2VkOmhvdmVyK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC5idG4uYnRuLXByaW1hcnktb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmhvdmVyK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4uYnRuLXByaW1hcnktb3V0bGluZSBpbnB1dFt0eXBlPWNo'@; put 'ZWNrYm94XTpjaGVja2VkOmhvdmVyK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6aG92ZXIrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmUgaW5wdXRb'@; put 'dHlwZT1jaGVja2JveF06Y2hlY2tlZDpob3ZlcitsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnkgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpob3ZlcitsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnkgaW5w'@; put 'dXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpob3ZlcitsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmhvdmVyK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4uYnRuLW91dGxpbmUtc2Vjb25k'@; put 'YXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6aG92ZXIrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6aG92ZXIrbGFiZWw+Y2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5h'@; put 'bGVydC1pdGVtIC5jaGVja2JveC5idG4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpob3ZlcitsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1pbmZvLW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpob3ZlcitsYWJlbD5jZHMtaWNvbiwuYWxlcnQtYXBw'@; put 'LWxldmVsLmFsZXJ0LWluZm8gLmFsZXJ0LWl0ZW0gLmNoZWNrYm94LmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmhvdmVyK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC5idG4uYnRuLW91dGxpbmUtaW5mbyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmhvdmVyK2xhYmVs'@; put 'PmNsci1pY29uLC5jaGVja2JveC5idG4uYnRuLW91dGxpbmUtaW5mbyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmhvdmVyK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1zZWNvbmRhcnkgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpob3ZlcitsYWJl'@; put 'bD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6aG92ZXIrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLWluZm8gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpob3ZlcitsYWJl'@; put 'bD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4taW5mbyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmhvdmVyK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6aG92ZXIrbGFiZWw+'@; put 'Y2xyLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpob3ZlcitsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6aG92'@; put 'ZXIrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXByaW1hcnktb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmhvdmVyK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSBpbnB1dFt0eXBlPWNo'@; put 'ZWNrYm94XTpjaGVja2VkOmhvdmVyK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmhvdmVyK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lLXBy'@; put 'aW1hcnkgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpob3ZlcitsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6aG92ZXIrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5i'@; put 'dG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6aG92ZXIrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6aG92ZXIrbGFiZWw+Y2RzLWlj'@; put 'b24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLWluZm8tb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmhvdmVyK2xhYmVsPmNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtaXRlbSAuY2hlY2tib3gtaW5saW5lLmJ0biBpbnB1dFt0eXBlPWNo'@; put 'ZWNrYm94XTpjaGVja2VkOmhvdmVyK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1pbmZvLW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpob3ZlcitsYWJlbD5jZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmFsZXJ0LWl0ZW0g'@; put 'LmNoZWNrYm94LWlubGluZS5idG4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpob3ZlcitsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tb3V0bGluZS1pbmZvIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6aG92ZXIrbGFiZWw+Y2xyLWljb24sLmNoZWNr'@; put 'Ym94LWlubGluZS5idG4uYnRuLW91dGxpbmUtaW5mbyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmhvdmVyK2xhYmVsPmNkcy1pY29ue2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1jaGVja2VkLWhvdmVyLWNvbG9yKX0uY2hlY2tib3guYnRuLmJ0bi1zZWNvbmRhcnkgaW5wdXRb'@; put 'dHlwZT1jaGVja2JveF06Y2hlY2tlZDphY3RpdmUrbGFiZWwsLmNoZWNrYm94LmJ0bi5idG4taW5mbyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmFjdGl2ZStsYWJlbCwuY2hlY2tib3guYnRuLmJ0bi1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6YWN0aXZlK2xh'@; put 'YmVsLC5jaGVja2JveC5idG4uYnRuLXByaW1hcnktb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmFjdGl2ZStsYWJlbCwuY2hlY2tib3guYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmFjdGl2ZStsYWJlbCwuY2hlY2ti'@; put 'b3guYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnkgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDphY3RpdmUrbGFiZWwsLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnkgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDphY3RpdmUrbGFiZWwsLmNoZWNrYm94LmJ0bi5idG4t'@; put 'aW5mby1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6YWN0aXZlK2xhYmVsLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtaXRlbSAuY2hlY2tib3guYnRuIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6YWN0aXZlK2xhYmVsLC5jaGVja2JveC5idG4u'@; put 'YnRuLW91dGxpbmUtaW5mbyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmFjdGl2ZStsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6YWN0aXZlK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1pbmZv'@; put 'IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6YWN0aXZlK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6YWN0aXZlK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUgaW5wdXRb'@; put 'dHlwZT1jaGVja2JveF06Y2hlY2tlZDphY3RpdmUrbGFiZWwsLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6YWN0aXZlK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnkgaW5w'@; put 'dXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDphY3RpdmUrbGFiZWwsLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6YWN0aXZlK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1pbmZvLW91dGxpbmUgaW5w'@; put 'dXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDphY3RpdmUrbGFiZWwsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1pdGVtIC5jaGVja2JveC1pbmxpbmUuYnRuIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6YWN0aXZlK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0'@; put 'bi1vdXRsaW5lLWluZm8gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDphY3RpdmUrbGFiZWx7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY2hlY2tlZC1hY3RpdmUtYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1jaGVja2VkLWFjdGl2ZS1j'@; put 'b2xvcil9LmNoZWNrYm94LmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6YWN0aXZlK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4uYnRuLXNlY29uZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmFjdGl2ZStsYWJlbD5jZHMtaWNvbiwu'@; put 'Y2hlY2tib3guYnRuLmJ0bi1pbmZvIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6YWN0aXZlK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4uYnRuLWluZm8gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDphY3RpdmUrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4t'@; put 'b3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmFjdGl2ZStsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6YWN0aXZlK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC5idG4uYnRuLXByaW1hcnktb3V0'@; put 'bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmFjdGl2ZStsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDphY3RpdmUrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4tc2Vjb25k'@; put 'YXJ5LW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDphY3RpdmUrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDphY3RpdmUrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5i'@; put 'dG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6YWN0aXZlK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4uYnRuLW91dGxpbmUtcHJpbWFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmFjdGl2ZStsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3gu'@; put 'YnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmFjdGl2ZStsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmFjdGl2ZStsYWJlbD5jZHMtaWNvbiwu'@; put 'Y2hlY2tib3guYnRuLmJ0bi1pbmZvLW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDphY3RpdmUrbGFiZWw+Y2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1pdGVtIC5jaGVja2JveC5idG4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDph'@; put 'Y3RpdmUrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6YWN0aXZlK2xhYmVsPmNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtaXRlbSAuY2hlY2tib3guYnRuIGlucHV0W3R5'@; put 'cGU9Y2hlY2tib3hdOmNoZWNrZWQ6YWN0aXZlK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC5idG4uYnRuLW91dGxpbmUtaW5mbyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmFjdGl2ZStsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1vdXRsaW5lLWluZm8gaW5wdXRbdHlw'@; put 'ZT1jaGVja2JveF06Y2hlY2tlZDphY3RpdmUrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXNlY29uZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmFjdGl2ZStsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tc2Vjb25kYXJ5IGlu'@; put 'cHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6YWN0aXZlK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1pbmZvIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6YWN0aXZlK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1pbmZvIGlucHV0'@; put 'W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6YWN0aXZlK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6YWN0aXZlK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lIGlu'@; put 'cHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6YWN0aXZlK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDphY3RpdmUrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRu'@; put 'LXByaW1hcnktb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmFjdGl2ZStsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDphY3RpdmUrbGFiZWw+Y2xyLWljb24sLmNo'@; put 'ZWNrYm94LWlubGluZS5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6YWN0aXZlK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnkgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDphY3Rp'@; put 'dmUrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtcHJpbWFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmFjdGl2ZStsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnkgaW5wdXRbdHlwZT1j'@; put 'aGVja2JveF06Y2hlY2tlZDphY3RpdmUrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6YWN0aXZlK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1pbmZvLW91'@; put 'dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDphY3RpdmUrbGFiZWw+Y2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1pdGVtIC5jaGVja2JveC1pbmxpbmUuYnRuIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6YWN0aXZlK2xhYmVsPmNsci1p'@; put 'Y29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1pbmZvLW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDphY3RpdmUrbGFiZWw+Y2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1pdGVtIC5jaGVja2JveC1pbmxpbmUuYnRuIGlucHV0W3R5cGU9'@; put 'Y2hlY2tib3hdOmNoZWNrZWQ6YWN0aXZlK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lLWluZm8gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDphY3RpdmUrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtaW5m'@; put 'byBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmFjdGl2ZStsYWJlbD5jZHMtaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY2hlY2tlZC1hY3RpdmUtY29sb3IpfS5jaGVja2JveC5idG4uYnRuLXNlY29uZGFyeS5kaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVj'@; put 'a2VkK2xhYmVsLC5jaGVja2JveC5idG4uYnRuLXNlY29uZGFyeTpkaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC5idG4uYnRuLWluZm8uZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3guYnRuLmJ0'@; put 'bi1pbmZvOmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZS5kaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC5idG4uYnRuLW91dGxpbmU6ZGlzYWJsZWQgaW5wdXRbdHlw'@; put 'ZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3guYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUuZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3guYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmU6ZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2Jv'@; put 'eF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3guYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZS5kaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lOmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNo'@; put 'ZWNrZWQrbGFiZWwsLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5LmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5OmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFi'@; put 'ZWwsLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnkuZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3guYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpkaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5j'@; put 'aGVja2JveC5idG4uYnRuLWluZm8tb3V0bGluZS5kaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtaXRlbSAuY2hlY2tib3guYnRuLmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQr'@; put 'bGFiZWwsLmNoZWNrYm94LmJ0bi5idG4taW5mby1vdXRsaW5lOmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1pdGVtIC5jaGVja2JveC5idG46ZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06'@; put 'Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3guYnRuLmJ0bi1vdXRsaW5lLWluZm8uZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3guYnRuLmJ0bi1vdXRsaW5lLWluZm86ZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwu'@; put 'Y2hlY2tib3gtaW5saW5lLmJ0bi5idG4tc2Vjb25kYXJ5LmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXNlY29uZGFyeTpkaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2Jv'@; put 'eC1pbmxpbmUuYnRuLmJ0bi1pbmZvLmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LWlubGluZS5idG4uYnRuLWluZm86ZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4t'@; put 'b3V0bGluZS5kaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lOmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXByaW1hcnktb3V0'@; put 'bGluZS5kaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmU6ZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tc2Vjb25k'@; put 'YXJ5LW91dGxpbmUuZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmU6ZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5i'@; put 'dG4tb3V0bGluZS1wcmltYXJ5LmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtcHJpbWFyeTpkaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1pbmxpbmUu'@; put 'YnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeS5kaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpkaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2Jv'@; put 'eC1pbmxpbmUuYnRuLmJ0bi1pbmZvLW91dGxpbmUuZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmFsZXJ0LWl0ZW0gLmNoZWNrYm94LWlubGluZS5idG4uZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06'@; put 'Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4taW5mby1vdXRsaW5lOmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1pdGVtIC5jaGVja2JveC1pbmxpbmUuYnRuOmRpc2FibGVk'@; put 'IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtaW5mby5kaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lLWluZm86ZGlzYWJsZWQg'@; put 'aW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbHtjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY2hlY2tlZC1kaXNhYmxlZC1jb2xvcik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY2hlY2tlZC1kaXNhYmxlZC1iZy1jb2xvcil9LmNoZWNrYm94LmJ0'@; put 'bi5idG4tc2Vjb25kYXJ5LmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4tc2Vjb25kYXJ5LmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5i'@; put 'dG4tc2Vjb25kYXJ5OmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4tc2Vjb25kYXJ5OmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4t'@; put 'aW5mby5kaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4uYnRuLWluZm8uZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1pbmZvOmRpc2FibGVk'@; put 'IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4taW5mbzpkaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC5idG4uYnRuLW91dGxpbmUuZGlzYWJsZWQgaW5wdXRbdHlw'@; put 'ZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1vdXRsaW5lLmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZTpkaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNr'@; put 'Ym94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4uYnRuLW91dGxpbmU6ZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUuZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVj'@; put 'a2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUuZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmU6ZGlzYWJsZWQgaW5wdXRb'@; put 'dHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmU6ZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZS5kaXNh'@; put 'YmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lLmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4tc2Vjb25kYXJ5'@; put 'LW91dGxpbmU6ZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZTpkaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC5idG4u'@; put 'YnRuLW91dGxpbmUtcHJpbWFyeS5kaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4uYnRuLW91dGxpbmUtcHJpbWFyeS5kaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVj'@; put 'a2JveC5idG4uYnRuLW91dGxpbmUtcHJpbWFyeTpkaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4uYnRuLW91dGxpbmUtcHJpbWFyeTpkaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1p'@; put 'Y29uLC5jaGVja2JveC5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnkuZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tl'@; put 'ZCtsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpkaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5OmRpc2FibGVkIGlucHV0W3R5cGU9Y2hl'@; put 'Y2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LmJ0bi5idG4taW5mby1vdXRsaW5lLmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1pdGVtIC5jaGVja2JveC5i'@; put 'dG4uZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1pbmZvLW91dGxpbmUuZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWlu'@; put 'Zm8gLmFsZXJ0LWl0ZW0gLmNoZWNrYm94LmJ0bi5kaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC5idG4uYnRuLWluZm8tb3V0bGluZTpkaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29u'@; put 'LC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtaXRlbSAuY2hlY2tib3guYnRuOmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4taW5mby1vdXRsaW5lOmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2ti'@; put 'b3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1pdGVtIC5jaGVja2JveC5idG46ZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1vdXRsaW5lLWluZm8u'@; put 'ZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1vdXRsaW5lLWluZm8uZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1vdXRsaW5lLWlu'@; put 'Zm86ZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1vdXRsaW5lLWluZm86ZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4t'@; put 'c2Vjb25kYXJ5LmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXNlY29uZGFyeS5kaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxp'@; put 'bmUuYnRuLmJ0bi1zZWNvbmRhcnk6ZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tc2Vjb25kYXJ5OmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNo'@; put 'ZWNrYm94LWlubGluZS5idG4uYnRuLWluZm8uZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4taW5mby5kaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5j'@; put 'aGVja2JveC1pbmxpbmUuYnRuLmJ0bi1pbmZvOmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLWluZm86ZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwu'@; put 'Y2hlY2tib3gtaW5saW5lLmJ0bi5idG4tb3V0bGluZS5kaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lLmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2Rz'@; put 'LWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmU6ZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tb3V0bGluZTpkaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xh'@; put 'YmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUuZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lLmRpc2FibGVkIGlucHV0W3R5'@; put 'cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXByaW1hcnktb3V0bGluZTpkaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1wcmltYXJ5LW91'@; put 'dGxpbmU6ZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmUuZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gt'@; put 'aW5saW5lLmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmUuZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmU6ZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tl'@; put 'ZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmU6ZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5LmRpc2FibGVkIGlu'@; put 'cHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtcHJpbWFyeS5kaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRs'@; put 'aW5lLXByaW1hcnk6ZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5OmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNr'@; put 'Ym94LWlubGluZS5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNo'@; put 'ZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5OmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5OmRpc2Fi'@; put 'bGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLWluZm8tb3V0bGluZS5kaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5m'@; put 'byAuYWxlcnQtaXRlbSAuY2hlY2tib3gtaW5saW5lLmJ0bi5kaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1pbmZvLW91dGxpbmUuZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCts'@; put 'YWJlbD5jZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmFsZXJ0LWl0ZW0gLmNoZWNrYm94LWlubGluZS5idG4uZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4taW5mby1vdXRsaW5l'@; put 'OmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1pdGVtIC5jaGVja2JveC1pbmxpbmUuYnRuOmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWlj'@; put 'b24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLWluZm8tb3V0bGluZTpkaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtaXRlbSAuY2hlY2tib3gtaW5saW5lLmJ0bjpkaXNhYmxlZCBp'@; put 'bnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lLWluZm8uZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tb3V0bGlu'@; put 'ZS1pbmZvLmRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtaW5mbzpkaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxp'@; put 'bmUuYnRuLmJ0bi1vdXRsaW5lLWluZm86ZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY2hlY2tlZC1kaXNhYmxlZC1jb2xvcil9LmNoZWNrYm94LmJ0bi5idG4tcHJpbWFyeSBpbnB1dFt0eXBl'@; put 'PWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1wcmltYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWx7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktY2hlY2tlZC1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xy'@; put 'LWJ0bi1wcmltYXJ5LWNoZWNrZWQtY29sb3IpfS5jaGVja2JveC5idG4uYnRuLXByaW1hcnkgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1wcmltYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWlj'@; put 'b24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXByaW1hcnkgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tcHJpbWFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2NvbG9yOnZh'@; put 'cigtLWNsci1idG4tcHJpbWFyeS1jaGVja2VkLWNvbG9yKX0uY2hlY2tib3guYnRuLmJ0bi1zdWNjZXNzIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXN1Y2Nlc3MgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbHti'@; put 'YWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1jaGVja2VkLWJnLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3MtY2hlY2tlZC1jb2xvcil9LmNoZWNrYm94LmJ0bi5idG4tc3VjY2VzcyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1p'@; put 'Y29uLC5jaGVja2JveC5idG4uYnRuLXN1Y2Nlc3MgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tc3VjY2VzcyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxp'@; put 'bmUuYnRuLmJ0bi1zdWNjZXNzIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWNoZWNrZWQtY29sb3IpfS5jaGVja2JveC5idG4uYnRuLXdhcm5pbmcgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJl'@; put 'bCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4td2FybmluZyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVse2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLWNoZWNrZWQtYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1idG4td2FybmluZy1jaGVja2VkLWNv'@; put 'bG9yKX0uY2hlY2tib3guYnRuLmJ0bi13YXJuaW5nIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4td2FybmluZyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRu'@; put 'LmJ0bi13YXJuaW5nIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXdhcm5pbmcgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctY2hl'@; put 'Y2tlZC1jb2xvcil9LmNoZWNrYm94LmJ0bi5idG4tZGFuZ2VyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LWlubGluZS5idG4uYnRuLWRhbmdlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVse2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xy'@; put 'LWJ0bi1kYW5nZXItY2hlY2tlZC1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItY2hlY2tlZC1jb2xvcil9LmNoZWNrYm94LmJ0bi5idG4tZGFuZ2VyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4tZGFuZ2Vy'@; put 'IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLWRhbmdlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1kYW5nZXIgaW5wdXRbdHlwZT1j'@; put 'aGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1jaGVja2VkLWNvbG9yKX0uY2hlY2tib3guYnRuLmJ0bi1saW5rIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LWlubGluZS5idG4uYnRuLWxpbmsgaW5w'@; put 'dXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tbGluay1jaGVja2VkLWJnLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstY2hlY2tlZC1jb2xvcil9LmNoZWNrYm94LmJ0bi5idG4tbGluayBpbnB1dFt0eXBlPWNoZWNr'@; put 'Ym94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4uYnRuLWxpbmsgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tbGluayBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1p'@; put 'Y29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1saW5rIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWNoZWNrZWQtY29sb3IpfS5jaGVja2JveC5idG4uYnRuLWludmVyc2UgaW5wdXRbdHlwZT1jaGVja2JveF06'@; put 'Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4taW52ZXJzZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVse2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1pbnZlcnNlLWNoZWNrZWQtYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1idG4taW52ZXJz'@; put 'ZS1jaGVja2VkLWNvbG9yKX0uY2hlY2tib3guYnRuLmJ0bi1pbnZlcnNlIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4taW52ZXJzZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2Jv'@; put 'eC1pbmxpbmUuYnRuLmJ0bi1pbnZlcnNlIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLWludmVyc2UgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbntjb2xvcjp2YXIoLS1jbHItYnRu'@; put 'LWludmVyc2UtY2hlY2tlZC1jb2xvcil9LnJhZGlvLmJ0biBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVse2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWNoZWNrZWQtYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1jaGVja2VkLWNvbG9y'@; put 'KX0ucmFkaW8uYnRuIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0biBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1jaGVja2VkLWNvbG9yKX0ucmFkaW8uYnRuIGlucHV0'@; put 'W3R5cGU9cmFkaW9dOmNoZWNrZWQ6aG92ZXIrbGFiZWx7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY2hlY2tlZC1ob3Zlci1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWNoZWNrZWQtaG92ZXItY29sb3IpfS5yYWRpby5idG4gaW5wdXRbdHlw'@; put 'ZT1yYWRpb106Y2hlY2tlZDpob3ZlcitsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQ6aG92ZXIrbGFiZWw+Y2RzLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWNoZWNrZWQtaG92ZXItY29sb3IpfS5yYWRpby5idG4gaW5wdXRbdHlw'@; put 'ZT1yYWRpb106Y2hlY2tlZDphY3RpdmUrbGFiZWx7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY2hlY2tlZC1hY3RpdmUtYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1jaGVja2VkLWFjdGl2ZS1jb2xvcil9LnJhZGlvLmJ0biBpbnB1dFt0eXBl'@; put 'PXJhZGlvXTpjaGVja2VkOmFjdGl2ZStsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQ6YWN0aXZlK2xhYmVsPmNkcy1pY29ue2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1jaGVja2VkLWFjdGl2ZS1jb2xvcil9LnJhZGlvLmJ0bi5kaXNhYmxl'@; put 'ZCBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG46ZGlzYWJsZWQgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbHtjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY2hlY2tlZC1kaXNhYmxlZC1jb2xvcik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHIt'@; put 'YnRuLWRlZmF1bHQtY2hlY2tlZC1kaXNhYmxlZC1iZy1jb2xvcil9LnJhZGlvLmJ0bi5kaXNhYmxlZCBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uZGlzYWJsZWQgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwucmFk'@; put 'aW8uYnRuOmRpc2FibGVkIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bjpkaXNhYmxlZCBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1jaGVja2VkLWRpc2FibGVkLWNv'@; put 'bG9yKX0ucmFkaW8uYnRuIGxhYmVsLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLnJhZGlvLmJ0biBsYWJlbHt3aWR0aDoxMDAlfS5yYWRpby5idG4uYnRuLXNlY29uZGFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLWluZm8gaW5wdXRbdHlw'@; put 'ZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5'@; put 'LW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnkgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xh'@; put 'YmVsLC5yYWRpby5idG4uYnRuLWluZm8tb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtaXRlbSAucmFkaW8uYnRuIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tb3V0'@; put 'bGluZS1pbmZvIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWx7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY2hlY2tlZC1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWNoZWNrZWQtY29sb3IpfS5yYWRpby5idG4uYnRuLXNlY29uZGFy'@; put 'eSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLXNlY29uZGFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLWluZm8gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHIt'@; put 'aWNvbiwucmFkaW8uYnRuLmJ0bi1pbmZvIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUgaW5wdXRbdHlwZT1y'@; put 'YWRpb106Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwucmFkaW8uYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5j'@; put 'ZHMtaWNvbiwucmFkaW8uYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0'@; put 'bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1zZWNvbmRh'@; put 'cnkgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLWluZm8tb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpj'@; put 'aGVja2VkK2xhYmVsPmNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtaXRlbSAucmFkaW8uYnRuIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNr'@; put 'ZWQrbGFiZWw+Y2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1pdGVtIC5yYWRpby5idG4gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLWluZm8gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCts'@; put 'YWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLWluZm8gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY2hlY2tlZC1jb2xvcil9LnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9cmFk'@; put 'aW9dOmNoZWNrZWQ6aG92ZXIrbGFiZWwsLnJhZGlvLmJ0bi5idG4taW5mbyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkOmhvdmVyK2xhYmVsLC5yYWRpby5idG4uYnRuLW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZDpob3ZlcitsYWJlbCwucmFkaW8uYnRuLmJ0bi1wcmltYXJ5'@; put 'LW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZDpob3ZlcitsYWJlbCwucmFkaW8uYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkOmhvdmVyK2xhYmVsLC5yYWRpby5idG4uYnRuLW91dGxpbmUtcHJpbWFyeSBpbnB1dFt0eXBlPXJhZGlv'@; put 'XTpjaGVja2VkOmhvdmVyK2xhYmVsLC5yYWRpby5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQ6aG92ZXIrbGFiZWwsLnJhZGlvLmJ0bi5idG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQ6aG92ZXIrbGFiZWwsLmFsZXJ0'@; put 'LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1pdGVtIC5yYWRpby5idG4gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZDpob3ZlcitsYWJlbCwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLWluZm8gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZDpob3ZlcitsYWJlbHtiYWNrZ3JvdW5kLWNvbG9y'@; put 'OnZhcigtLWNsci1idG4tZGVmYXVsdC1jaGVja2VkLWhvdmVyLWJnLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY2hlY2tlZC1ob3Zlci1jb2xvcil9LnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQ6aG92ZXIrbGFiZWw+Y2xyLWlj'@; put 'b24sLnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQ6aG92ZXIrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4taW5mbyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkOmhvdmVyK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLWluZm8gaW5w'@; put 'dXRbdHlwZT1yYWRpb106Y2hlY2tlZDpob3ZlcitsYWJlbD5jZHMtaWNvbiwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQ6aG92ZXIrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkOmhv'@; put 'dmVyK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLXByaW1hcnktb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkOmhvdmVyK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLXByaW1hcnktb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkOmhvdmVyK2xhYmVs'@; put 'PmNkcy1pY29uLC5yYWRpby5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQ6aG92ZXIrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZDpob3ZlcitsYWJlbD5jZHMt'@; put 'aWNvbiwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnkgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZDpob3ZlcitsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnkgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZDpob3ZlcitsYWJlbD5jZHMtaWNvbiwucmFk'@; put 'aW8uYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkOmhvdmVyK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQ6aG92ZXIrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0'@; put 'bi5idG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQ6aG92ZXIrbGFiZWw+Y2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1pdGVtIC5yYWRpby5idG4gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZDpob3ZlcitsYWJlbD5jbHItaWNvbiwu'@; put 'cmFkaW8uYnRuLmJ0bi1pbmZvLW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZDpob3ZlcitsYWJlbD5jZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmFsZXJ0LWl0ZW0gLnJhZGlvLmJ0biBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkOmhvdmVyK2xhYmVsPmNk'@; put 'cy1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtaW5mbyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkOmhvdmVyK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtaW5mbyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkOmhvdmVyK2xhYmVsPmNkcy1pY29ue2NvbG9yOnZh'@; put 'cigtLWNsci1idG4tZGVmYXVsdC1jaGVja2VkLWhvdmVyLWNvbG9yKX0ucmFkaW8uYnRuLmJ0bi1zZWNvbmRhcnkgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZDphY3RpdmUrbGFiZWwsLnJhZGlvLmJ0bi5idG4taW5mbyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkOmFjdGl2ZStsYWJlbCwu'@; put 'cmFkaW8uYnRuLmJ0bi1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQ6YWN0aXZlK2xhYmVsLC5yYWRpby5idG4uYnRuLXByaW1hcnktb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkOmFjdGl2ZStsYWJlbCwucmFkaW8uYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSBp'@; put 'bnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkOmFjdGl2ZStsYWJlbCwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnkgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZDphY3RpdmUrbGFiZWwsLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnkgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tl'@; put 'ZDphY3RpdmUrbGFiZWwsLnJhZGlvLmJ0bi5idG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQ6YWN0aXZlK2xhYmVsLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtaXRlbSAucmFkaW8uYnRuIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQ6YWN0aXZl'@; put 'K2xhYmVsLC5yYWRpby5idG4uYnRuLW91dGxpbmUtaW5mbyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkOmFjdGl2ZStsYWJlbHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1jaGVja2VkLWFjdGl2ZS1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0'@; put 'LWNoZWNrZWQtYWN0aXZlLWNvbG9yKX0ucmFkaW8uYnRuLmJ0bi1zZWNvbmRhcnkgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZDphY3RpdmUrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQ6YWN0aXZlK2xhYmVsPmNkcy1p'@; put 'Y29uLC5yYWRpby5idG4uYnRuLWluZm8gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZDphY3RpdmUrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4taW5mbyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkOmFjdGl2ZStsYWJlbD5jZHMtaWNvbiwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lIGlu'@; put 'cHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQ6YWN0aXZlK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZDphY3RpdmUrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9d'@; put 'OmNoZWNrZWQ6YWN0aXZlK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLXByaW1hcnktb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkOmFjdGl2ZStsYWJlbD5jZHMtaWNvbiwucmFkaW8uYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVj'@; put 'a2VkOmFjdGl2ZStsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkOmFjdGl2ZStsYWJlbD5jZHMtaWNvbiwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnkgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZDph'@; put 'Y3RpdmUrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQ6YWN0aXZlK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQ6YWN0aXZl'@; put 'K2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQ6YWN0aXZlK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLWluZm8tb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkOmFjdGl2ZStsYWJlbD5j'@; put 'bHItaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmFsZXJ0LWl0ZW0gLnJhZGlvLmJ0biBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkOmFjdGl2ZStsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1pbmZvLW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZDphY3Rp'@; put 'dmUrbGFiZWw+Y2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1pdGVtIC5yYWRpby5idG4gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZDphY3RpdmUrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1pbmZvIGlucHV0W3R5cGU9cmFkaW9dOmNo'@; put 'ZWNrZWQ6YWN0aXZlK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtaW5mbyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkOmFjdGl2ZStsYWJlbD5jZHMtaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY2hlY2tlZC1hY3RpdmUtY29sb3IpfS5yYWRpby5idG4u'@; put 'YnRuLXNlY29uZGFyeS5kaXNhYmxlZCBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLXNlY29uZGFyeTpkaXNhYmxlZCBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLWluZm8uZGlzYWJsZWQgaW5wdXRbdHlwZT1yYWRp'@; put 'b106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1pbmZvOmRpc2FibGVkIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tb3V0bGluZS5kaXNhYmxlZCBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLW91dGxpbmU6'@; put 'ZGlzYWJsZWQgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUuZGlzYWJsZWQgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmU6ZGlzYWJsZWQgaW5wdXRbdHlwZT1y'@; put 'YWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZS5kaXNhYmxlZCBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lOmRpc2FibGVkIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFi'@; put 'ZWwsLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5LmRpc2FibGVkIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5OmRpc2FibGVkIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tb3V0'@; put 'bGluZS1zZWNvbmRhcnkuZGlzYWJsZWQgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpkaXNhYmxlZCBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLWluZm8tb3V0bGluZS5kaXNhYmxl'@; put 'ZCBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtaXRlbSAucmFkaW8uYnRuLmRpc2FibGVkIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4taW5mby1vdXRsaW5lOmRpc2FibGVkIGlu'@; put 'cHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1pdGVtIC5yYWRpby5idG46ZGlzYWJsZWQgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLWluZm8uZGlzYWJsZWQgaW5wdXRb'@; put 'dHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLWluZm86ZGlzYWJsZWQgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbHtjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY2hlY2tlZC1kaXNhYmxlZC1jb2xvcik7YmFja2dyb3VuZC1jb2xvcjp2'@; put 'YXIoLS1jbHItYnRuLWRlZmF1bHQtY2hlY2tlZC1kaXNhYmxlZC1iZy1jb2xvcil9LnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5LmRpc2FibGVkIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5LmRpc2FibGVkIGlucHV0W3R5'@; put 'cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5OmRpc2FibGVkIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5OmRpc2FibGVkIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNr'@; put 'ZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4taW5mby5kaXNhYmxlZCBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLWluZm8uZGlzYWJsZWQgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwucmFkaW8u'@; put 'YnRuLmJ0bi1pbmZvOmRpc2FibGVkIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4taW5mbzpkaXNhYmxlZCBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUuZGlzYWJsZWQg'@; put 'aW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLmRpc2FibGVkIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZTpkaXNhYmxlZCBpbnB1dFt0eXBlPXJhZGlvXTpj'@; put 'aGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmU6ZGlzYWJsZWQgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwucmFkaW8uYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUuZGlzYWJsZWQgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJl'@; put 'bD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUuZGlzYWJsZWQgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwucmFkaW8uYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmU6ZGlzYWJsZWQgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5j'@; put 'bHItaWNvbiwucmFkaW8uYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmU6ZGlzYWJsZWQgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwucmFkaW8uYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZS5kaXNhYmxlZCBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNs'@; put 'ci1pY29uLC5yYWRpby5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lLmRpc2FibGVkIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmU6ZGlzYWJsZWQgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5j'@; put 'bHItaWNvbiwucmFkaW8uYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZTpkaXNhYmxlZCBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtcHJpbWFyeS5kaXNhYmxlZCBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNs'@; put 'ci1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtcHJpbWFyeS5kaXNhYmxlZCBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtcHJpbWFyeTpkaXNhYmxlZCBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1p'@; put 'Y29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtcHJpbWFyeTpkaXNhYmxlZCBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmRpc2FibGVkIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWlj'@; put 'b24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnkuZGlzYWJsZWQgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpkaXNhYmxlZCBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1p'@; put 'Y29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5OmRpc2FibGVkIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4taW5mby1vdXRsaW5lLmRpc2FibGVkIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24s'@; put 'LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1pdGVtIC5yYWRpby5idG4uZGlzYWJsZWQgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1pbmZvLW91dGxpbmUuZGlzYWJsZWQgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCts'@; put 'YWJlbD5jZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmFsZXJ0LWl0ZW0gLnJhZGlvLmJ0bi5kaXNhYmxlZCBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLWluZm8tb3V0bGluZTpkaXNhYmxlZCBpbnB1dFt0eXBlPXJh'@; put 'ZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtaXRlbSAucmFkaW8uYnRuOmRpc2FibGVkIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4taW5mby1vdXRsaW5lOmRpc2FibGVk'@; put 'IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1pdGVtIC5yYWRpby5idG46ZGlzYWJsZWQgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwucmFkaW8uYnRuLmJ0bi1vdXRsaW5l'@; put 'LWluZm8uZGlzYWJsZWQgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLWluZm8uZGlzYWJsZWQgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLWluZm86ZGlz'@; put 'YWJsZWQgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLWluZm86ZGlzYWJsZWQgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY2hlY2tlZC1kaXNh'@; put 'YmxlZC1jb2xvcil9LnJhZGlvLmJ0bi5idG4tcHJpbWFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVse2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LWNoZWNrZWQtYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1jaGVja2VkLWNvbG9y'@; put 'KX0ucmFkaW8uYnRuLmJ0bi1wcmltYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tcHJpbWFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2NvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1jaGVja2Vk'@; put 'LWNvbG9yKX0ucmFkaW8uYnRuLmJ0bi1zdWNjZXNzIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWx7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3MtY2hlY2tlZC1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWNoZWNrZWQtY29sb3IpfS5y'@; put 'YWRpby5idG4uYnRuLXN1Y2Nlc3MgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1zdWNjZXNzIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWNoZWNrZWQtY29s'@; put 'b3IpfS5yYWRpby5idG4uYnRuLXdhcm5pbmcgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4td2FybmluZy1jaGVja2VkLWJnLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctY2hlY2tlZC1jb2xvcil9LnJhZGlv'@; put 'LmJ0bi5idG4td2FybmluZyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLXdhcm5pbmcgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctY2hlY2tlZC1jb2xvcil9'@; put 'LnJhZGlvLmJ0bi5idG4tZGFuZ2VyIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWx7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1jaGVja2VkLWJnLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1jaGVja2VkLWNvbG9yKX0ucmFkaW8uYnRuLmJ0'@; put 'bi1kYW5nZXIgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1kYW5nZXIgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1jaGVja2VkLWNvbG9yKX0ucmFkaW8uYnRu'@; put 'LmJ0bi1zdWNjZXNzLW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWl0ZW0gLnJhZGlvLmJ0biBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLW91dGxpbmUtc3Vj'@; put 'Y2VzcyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVse2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtY2hlY2tlZC1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtY2hlY2tlZC1jb2xvcil9LnJhZGlvLmJ0bi5i'@; put 'dG4tc3VjY2Vzcy1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1pdGVtIC5yYWRpby5idG4gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRu'@; put 'LmJ0bi1zdWNjZXNzLW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWl0ZW0gLnJhZGlvLmJ0biBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5i'@; put 'dG4uYnRuLW91dGxpbmUtc3VjY2VzcyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtc3VjY2VzcyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2NvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1v'@; put 'dXRsaW5lLWNoZWNrZWQtY29sb3IpfS5yYWRpby5idG4uYnRuLXdhcm5pbmctb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuYWxlcnQtaXRlbSAucmFkaW8uYnRuIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQr'@; put 'bGFiZWwsLnJhZGlvLmJ0bi5idG4tb3V0bGluZS13YXJuaW5nIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWx7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1jaGVja2VkLWJnLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctb3V0'@; put 'bGluZS1jaGVja2VkLWNvbG9yKX0ucmFkaW8uYnRuLmJ0bi13YXJuaW5nLW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWl0ZW0gLnJhZGlvLmJ0biBpbnB1dFt0eXBlPXJhZGlvXTpj'@; put 'aGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLXdhcm5pbmctb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuYWxlcnQtaXRlbSAucmFkaW8uYnRuIGlucHV0W3R5cGU9cmFkaW9d'@; put 'OmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS13YXJuaW5nIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZS13YXJuaW5nIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2RzLWlj'@; put 'b257Y29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtY2hlY2tlZC1jb2xvcil9LnJhZGlvLmJ0bi5idG4tZGFuZ2VyLW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuYWxlcnQtaXRlbSAucmFkaW8u'@; put 'YnRuIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1kYW5nZXIgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtY2hlY2tlZC1iZy1jb2xvcik7Y29s'@; put 'b3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1jaGVja2VkLWNvbG9yKX0ucmFkaW8uYnRuLmJ0bi1kYW5nZXItb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5hbGVydC1pdGVtIC5yYWRp'@; put 'by5idG4gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1kYW5nZXItb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5hbGVydC1pdGVtIC5yYWRp'@; put 'by5idG4gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLWRhbmdlciBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtZGFuZ2VyIGlucHV0W3R5cGU9cmFkaW9d'@; put 'OmNoZWNrZWQrbGFiZWw+Y2RzLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1jaGVja2VkLWNvbG9yKX0ucmFkaW8uYnRuLmJ0bi1saW5rIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWx7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstY2hl'@; put 'Y2tlZC1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWNoZWNrZWQtY29sb3IpfS5yYWRpby5idG4uYnRuLWxpbmsgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1saW5rIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFi'@; put 'ZWw+Y2RzLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWNoZWNrZWQtY29sb3IpfS5yYWRpby5idG4uYnRuLWludmVyc2UgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4taW52ZXJzZS1jaGVja2VkLWJnLWNvbG9yKTtj'@; put 'b2xvcjp2YXIoLS1jbHItYnRuLWludmVyc2UtY2hlY2tlZC1jb2xvcil9LnJhZGlvLmJ0bi5idG4taW52ZXJzZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLWludmVyc2UgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jZHMt'@; put 'aWNvbntjb2xvcjp2YXIoLS1jbHItYnRuLWludmVyc2UtY2hlY2tlZC1jb2xvcil9LmJ0bi1ncm91cHtkaXNwbGF5OmlubGluZS1mbGV4O21hcmdpbi1yaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTYpfS5idG4tZ3JvdXAgY2xyLWRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGV7Ym9yZGVy'@; put 'LXJhZGl1czowfS5idG4tZ3JvdXAgY2xyLWRyb3Bkb3duOmxhc3QtY2hpbGQgLmRyb3Bkb3duLXRvZ2dsZXtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czp2YXIoLS1jbHItYnRuLWJvcmRlci1yYWRpdXMpO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWNsci1idG4tYm9yZGVyLXJh'@; put 'ZGl1cyl9LmJ0bi1ncm91cCAuYnRue21hcmdpbjowO292ZXJmbG93OmhpZGRlbn0uYnRuLWdyb3VwIC5idG4gbGFiZWx7aGVpZ2h0OjEwMCV9LmJ0bi1ncm91cCAuYnRuIGlucHV0W3R5cGU9cmFkaW9dOmhvdmVyLC5idG4tZ3JvdXAgLmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XTpob3Zlcnth'@; put 'cHBlYXJhbmNlOm5vbmU7b3BhY2l0eToxO3RvcDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7Ym9yZGVyOkhpZ2hsaWdodCBzb2xpZCAycHh9LmJ0bi1ncm91cCAuYnRuIGlucHV0W3R5cGU9cmFkaW9dOmhvdmVyOjotbXMtY2hlY2ssLmJ0bi1ncm91cCAuYnRuIGlucHV0W3R5cGU9Y2hlY2ti'@; put 'b3hdOmhvdmVyOjotbXMtY2hlY2t7ZGlzcGxheTpub25lfS5idG4tZ3JvdXAgLmJ0bjpub3QoOmZpcnN0LWNoaWxkKXtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowfS5idG4tZ3JvdXAgLmJ0bjpub3QoOmxhc3QtY2hpbGQpe2JvcmRlci10b3At'@; put 'cmlnaHQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MH0uYnRuLWdyb3VwIC5idG46ZGlzYWJsZWQ6bm90KDpsYXN0LWNoaWxkKXtib3JkZXItcmlnaHQ6bm9uZX0uYnRuLWdyb3VwIC50b29sdGlwOm5vdCg6Zmlyc3QtY2hpbGQpIC5idG57Ym9yZGVyLXRvcC1sZWZ0LXJh'@; put 'ZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0uYnRuLWdyb3VwIC50b29sdGlwOm5vdCg6bGFzdC1jaGlsZCkgLmJ0bntib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjB9LmJ0bi1ncm91cC5idG4tcHJpbWFyeSAudG9vbHRpcDpu'@; put 'b3QoOmxhc3QtY2hpbGQpPi5idG4sLmJ0bi1ncm91cC5idG4tcHJpbWFyeT4uYnRuOm5vdCg6bGFzdC1jaGlsZCksLmJ0bi1ncm91cC5idG4tbmV1dHJhbCAudG9vbHRpcDpub3QoOmxhc3QtY2hpbGQpPi5idG4sLmJ0bi1ncm91cC5idG4tbmV1dHJhbD4uYnRuOm5vdCg6bGFzdC1jaGlsZCks'@; put 'LmJ0bi1ncm91cC5idG4tc3VjY2VzcyAudG9vbHRpcDpub3QoOmxhc3QtY2hpbGQpPi5idG4sLmJ0bi1ncm91cC5idG4tc3VjY2Vzcz4uYnRuOm5vdCg6bGFzdC1jaGlsZCksLmJ0bi1ncm91cC5idG4tZGFuZ2VyIC50b29sdGlwOm5vdCg6bGFzdC1jaGlsZCk+LmJ0biwuYnRuLWdyb3VwLmJ0'@; put 'bi1kYW5nZXI+LmJ0bjpub3QoOmxhc3QtY2hpbGQpLC5idG4tZ3JvdXAuYnRuLXdhcm5pbmcgLnRvb2x0aXA6bm90KDpsYXN0LWNoaWxkKT4uYnRuLC5idG4tZ3JvdXAuYnRuLXdhcm5pbmc+LmJ0bjpub3QoOmxhc3QtY2hpbGQpe21hcmdpbjowIHZhcigtLWNsci1idG4tYm9yZGVyLXdpZHRo'@; put 'KSAwIDB9LmJ0bi1ncm91cD4uYnRuLWdyb3VwLW92ZXJmbG93e3Bvc2l0aW9uOnJlbGF0aXZlfS5idG4tZ3JvdXA+LmJ0bi1ncm91cC1vdmVyZmxvdzpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpPi5idG46Zmlyc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czowIHZhcigtLWNsci1idG4tYm9y'@; put 'ZGVyLXJhZGl1cykgdmFyKC0tY2xyLWJ0bi1ib3JkZXItcmFkaXVzKSAwfS5idG4tZ3JvdXA+LmJ0bi1ncm91cC1vdmVyZmxvdzpsYXN0LWNoaWxkOmZpcnN0LWNoaWxkPi5idG46Zmlyc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItYnRuLWJvcmRlci1yYWRpdXMpfS5idG4tZ3Jv'@; put 'dXAgLmJ0bjpub3QoW2Rpc2FibGVkXSkrLmJ0bntib3JkZXItbGVmdDpub25lfS5idG4tZ3JvdXAgLnRvb2x0aXA6bm90KDpmaXJzdC1jaGlsZCkgLmJ0bntib3JkZXItbGVmdDpub25lfS5idG4tZ3JvdXAgLmJ0bjpub3QoW2Rpc2FibGVkXSkrLmJ0bi1ncm91cC1vdmVyZmxvdyAuYnRue2Jv'@; put 'cmRlci1sZWZ0Om5vbmV9LmJ0bi1ncm91cC5idG4tbGluayAuZHJvcGRvd24tdG9nZ2xlLC5idG4tZ3JvdXAuYnRuLWljb24tbGluay5idG4tbGluayAuYnRuLC5idG4tZ3JvdXAuYnRuLWljb24gLmJ0bnttaW4td2lkdGg6MH0uYnRuLWdyb3VwIC5jbHItaWNvbi10aXRsZXtkaXNwbGF5Om5v'@; put 'bmU7dGV4dC10cmFuc2Zvcm06bm9uZX0uYnRuLWdyb3VwIC5kcm9wZG93bi10b2dnbGV7ZGlzcGxheTpibG9ja30uYnRuLWdyb3VwIC5kcm9wZG93bi1tZW51IGNkcy1pY29uLC5idG4tZ3JvdXAgLmRyb3Bkb3duLW1lbnUgY2xyLWljb257ZGlzcGxheTpub25lfS5idG4tZ3JvdXAgLmRyb3Bk'@; put 'b3duLW1lbnUgLmNsci1pY29uLXRpdGxle2Rpc3BsYXk6aW5saW5lfS5jaGVja2JveCwucmFkaW97cG9zaXRpb246cmVsYXRpdmV9LmNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdLC5jaGVja2JveCBpbnB1dFt0eXBlPXJhZGlvXSwucmFkaW8gaW5wdXRbdHlwZT1jaGVja2JveF0sLnJh'@; put 'ZGlvIGlucHV0W3R5cGU9cmFkaW9de2N1cnNvcjpwb2ludGVyO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MDt3aWR0aDowO29wYWNpdHk6MH0uZHJvcGRvd24tbWVudS5jbHItYnV0dG9uLWdyb3VwLW1lbnV7dmlzaWJpbGl0eTp2aXNpYmxlfWJ1dHRvbi5jbG9zZXtw'@; put 'YWRkaW5nOjA7Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZDowIDA7Ym9yZGVyOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9LmNsb3Nle2Zsb2F0OnJpZ2h0O2ZvbnQtc2l6ZToxLjhyZW07dHJhbnNpdGlvbjpjb2xvciBsaW5lYXIgLjJzO2ZvbnQtd2VpZ2h0OjIwMDt0ZXh0LXNoYWRvdzpu'@; put 'b25lO2xpbmUtaGVpZ2h0OmluaGVyaXQ7Y29sb3I6dmFyKC0tY2xyLWNsb3NlLWNvbG9yKX0uY2xvc2UgY2RzLWljb24sLmNsb3NlIGNsci1pY29ue2ZpbGw6dmFyKC0tY2xyLWNsb3NlLWNvbG9yKX0uY2xvc2U6aG92ZXJ7Y29sb3I6dmFyKC0tY2xyLWNsb3NlLWNvbG9yLWhvdmVyKX0uY2xv'@; put 'c2U6aG92ZXIgY2RzLWljb24sLmNsb3NlOmhvdmVyIGNsci1pY29ue2ZpbGw6dmFyKC0tY2xyLWNsb3NlLWNvbG9yLWhvdmVyKX0uY2xvc2U6YWN0aXZle2NvbG9yOnZhcigtLWNsci1jbG9zZS1jb2xvci1hY3RpdmUpfS5jbG9zZTphY3RpdmUgY2RzLWljb24sLmNsb3NlOmFjdGl2ZSBjbHIt'@; put 'aWNvbntmaWxsOnZhcigtLWNsci1jbG9zZS1jb2xvci1hY3RpdmUpfS5jbG9zZTpmb2N1c3tvdXRsaW5lOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tb3V0bGluZSk7b3V0bGluZS1jb2xvcjotd2Via2l0LWZvY3VzLXJpbmctY29sb3I7b3V0bGluZS1vZmZzZXQ6dmFyKC0t'@; put 'Y2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1vdXRsaW5lLW9mZnNldCl9OnJvb3QgW2Nkcy10aGVtZV17LS1jbHItYWxlcnQtYm9yZGVycmFkaXVzOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXJhZGl1cy0xMDApOy0tY2xyLWFwcC1hbGVydC1wYWdlci13aWR0aDpjYWxjKDE0'@; put 'NCAqICgxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpOy0tY2xyLWFsZXJ0LWFjdGlvbi1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci01MDApOy0tY2xyLWFsZXJ0LWFjdGlvbi1hY3RpdmUtY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlv'@; put 'bi1jb2xvci1hY3RpdmUpOy0tY2xyLWFsZXJ0LWNsb3NlLWljb24tY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWFjdGlvbi1jb2xvcik7LS1jbHItYWxlcnQtY2xvc2UtaWNvbi1ob3Zlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtYWN0aW9uLWFjdGl2ZS1jb2xvcik7LS1jbHItYXBwLWxldmVsLWFs'@; put 'ZXJ0LWNvbG9yOnZhcigtLWNkcy1nbG9iYWwtY29sb3Itd2hpdGUpOy0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLWNvbG9yOnZhcigtLWNsci1hcHAtbGV2ZWwtYWxlcnQtY29sb3IpOy0tY2xyLWFsZXJ0LWluZm8tYmctY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1pbmZvLXRpbnQp'@; put 'Oy0tY2xyLWFsZXJ0LWluZm8tZm9udC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci01MDApOy0tY2xyLWFsZXJ0LWluZm8tYm9yZGVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtaW5mbyk7LS1jbHItYWxlcnQtaW5mby1pY29uLWNvbG9yOnZhcigtLWNsci1h'@; put 'bGVydC1pbmZvLWZvbnQtY29sb3IpOy0tY2xyLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1jb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1mb250LWNvbG9yKTstLWNsci1hbGVydC1pbmZvLWFjdGlvbi1jb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1mb250LWNvbG9yKTstLWNsci1hbGVydC1p'@; put 'bmZvLWFjdGlvbi1hY3RpdmUtY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWFjdGlvbi1hY3RpdmUtY29sb3IpOy0tY2xyLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1ob3Zlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtY2xvc2UtaWNvbi1ob3Zlci1jb2xvcik7LS1jbHItYWxlcnQtc3VjY2Vzcy1iZy1j'@; put 'b2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLXN1Y2Nlc3MtdGludCk7LS1jbHItYWxlcnQtc3VjY2Vzcy1mb250LWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTUwMCk7LS1jbHItYWxlcnQtc3VjY2Vzcy1ib3JkZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1'@; put 'cy1zdWNjZXNzKTstLWNsci1hbGVydC1zdWNjZXNzLWljb24tY29sb3I6dmFyKC0tY2xyLWFsZXJ0LXN1Y2Nlc3MtZm9udC1jb2xvcik7LS1jbHItYWxlcnQtc3VjY2Vzcy1jbG9zZS1pY29uLWNvbG9yOnZhcigtLWNsci1hbGVydC1zdWNjZXNzLWZvbnQtY29sb3IpOy0tY2xyLWFsZXJ0LXN1'@; put 'Y2Nlc3MtYWN0aW9uLWNvbG9yOnZhcigtLWNsci1hbGVydC1zdWNjZXNzLWZvbnQtY29sb3IpOy0tY2xyLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWFjdGl2ZS1jb2xvcjp2YXIoLS1jbHItYWxlcnQtYWN0aW9uLWFjdGl2ZS1jb2xvcik7LS1jbHItYWxlcnQtc3VjY2Vzcy1jbG9zZS1pY29uLWhv'@; put 'dmVyLWNvbG9yOnZhcigtLWNsci1hbGVydC1jbG9zZS1pY29uLWhvdmVyLWNvbG9yKTstLWNsci1hbGVydC13YXJuaW5nLWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtd2FybmluZy10aW50KTstLWNsci1hbGVydC13YXJuaW5nLWZvbnQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5'@; put 'cG9ncmFwaHktY29sb3ItNTAwKTstLWNsci1hbGVydC13YXJuaW5nLWJvcmRlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLXdhcm5pbmcpOy0tY2xyLWFsZXJ0LXdhcm5pbmctaWNvbi1jb2xvcjp2YXIoLS1jbHItYWxlcnQtd2FybmluZy1mb250LWNvbG9yKTstLWNsci1hbGVydC13'@; put 'YXJuaW5nLWNsb3NlLWljb24tY29sb3I6dmFyKC0tY2xyLWFsZXJ0LXdhcm5pbmctZm9udC1jb2xvcik7LS1jbHItYWxlcnQtd2FybmluZy1hY3Rpb24tY29sb3I6dmFyKC0tY2xyLWFsZXJ0LXdhcm5pbmctZm9udC1jb2xvcik7LS1jbHItYWxlcnQtd2FybmluZy1hY3Rpb24tYWN0aXZlLWNv'@; put 'bG9yOnZhcigtLWNsci1hbGVydC1hY3Rpb24tYWN0aXZlLWNvbG9yKTstLWNsci1hbGVydC13YXJuaW5nLWNsb3NlLWljb24taG92ZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LXdhcm5pbmctZm9udC1jb2xvcik7LS1jbHItYWxlcnQtZGFuZ2VyLWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1z'@; put 'dGF0dXMtZGFuZ2VyLXRpbnQpOy0tY2xyLWFsZXJ0LWRhbmdlci1mb250LWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTUwMCk7LS1jbHItYWxlcnQtZGFuZ2VyLWJvcmRlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWRhbmdlcik7LS1jbHItYWxlcnQtZGFu'@; put 'Z2VyLWljb24tY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWRhbmdlci1mb250LWNvbG9yKTstLWNsci1hbGVydC1kYW5nZXItY2xvc2UtaWNvbi1jb2xvcjp2YXIoLS1jbHItYWxlcnQtZGFuZ2VyLWZvbnQtY29sb3IpOy0tY2xyLWFsZXJ0LWRhbmdlci1hY3Rpb24tY29sb3I6dmFyKC0tY2xyLWFs'@; put 'ZXJ0LWRhbmdlci1mb250LWNvbG9yKTstLWNsci1hbGVydC1kYW5nZXItYWN0aW9uLWFjdGl2ZS1jb2xvcjp2YXIoLS1jbHItYWxlcnQtYWN0aW9uLWFjdGl2ZS1jb2xvcik7LS1jbHItYWxlcnQtZGFuZ2VyLWNsb3NlLWljb24taG92ZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWNsb3NlLWlj'@; put 'b24taG92ZXItY29sb3IpOy0tY2xyLWFsZXJ0LW5ldXRyYWwtYmctY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1uZXV0cmFsLXRpbnQpOy0tY2xyLWFsZXJ0LW5ldXRyYWwtZm9udC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci01MDApOy0tY2xyLWFsZXJ0LW5l'@; put 'dXRyYWwtYm9yZGVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtbmV1dHJhbCk7LS1jbHItYWxlcnQtbmV1dHJhbC1pY29uLWNvbG9yOnZhcigtLWNsci1hbGVydC1uZXV0cmFsLWZvbnQtY29sb3IpOy0tY2xyLWFsZXJ0LW5ldXRyYWwtY2xvc2UtaWNvbi1jb2xvcjp2YXIoLS1jbHIt'@; put 'YWxlcnQtbmV1dHJhbC1mb250LWNvbG9yKTstLWNsci1hbGVydC1uZXV0cmFsLWFjdGlvbi1jb2xvcjp2YXIoLS1jbHItYWxlcnQtbmV1dHJhbC1mb250LWNvbG9yKTstLWNsci1hbGVydC1uZXV0cmFsLWFjdGlvbi1hY3RpdmUtY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWFjdGlvbi1hY3RpdmUt'@; put 'Y29sb3IpOy0tY2xyLWFsZXJ0LW5ldXRyYWwtY2xvc2UtaWNvbi1ob3Zlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtY2xvc2UtaWNvbi1ob3Zlci1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LWluZm8tYmctY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1pbmZvKTstLWNsci1hcHAtYWxlcnQt'@; put 'aW5mby1mb250LWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTEwMCk7LS1jbHItYXBwLWFsZXJ0LWluZm8tYm9yZGVyLWNvbG9yOm5vbmU7LS1jbHItYXBwLWFsZXJ0LWluZm8taWNvbi1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tZm9udC1jb2xvcik7LS1j'@; put 'bHItYXBwLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1mb250LWNvbG9yKTstLWNsci1hcHAtYWxlcnQtaW5mby1hY3Rpb24tYWN0aXZlLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1mb250LWNvbG9yKTstLWNsci1hcHAtYWxlcnQtaW5m'@; put 'by1jbG9zZS1pY29uLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1mb250LWNvbG9yKTstLWNsci1hcHAtYWxlcnQtaW5mby1jbG9zZS1pY29uLWhvdmVyLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1mb250LWNvbG9yKTstLWNsci1hcHAtYWxlcnQtd2FybmluZy1iZy1j'@; put 'b2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLXdhcm5pbmcpOy0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWZvbnQtY29sb3I6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibGFjayk7LS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctYm9yZGVyLWNvbG9yOm5vbmU7LS1jbHItYXBwLWFsZXJ0LXdhcm5p'@; put 'bmctaWNvbi1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctZm9udC1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctY2xvc2UtaWNvbi1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctZm9udC1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctYWN0aW9u'@; put 'LWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1mb250LWNvbG9yKTstLWNsci1hcHAtYWxlcnQtd2FybmluZy1hY3Rpb24tYWN0aXZlLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1mb250LWNvbG9yKTstLWNsci1hcHAtYWxlcnQtd2FybmluZy1jbG9zZS1pY29u'@; put 'LWhvdmVyLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1mb250LWNvbG9yKTstLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtZGFuZ2VyKTstLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWZvbnQtY29sb3I6dmFyKC0tY2RzLWFsaWFz'@; put 'LXR5cG9ncmFwaHktY29sb3ItMTAwKTstLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWJvcmRlci1jb2xvcjpub25lOy0tY2xyLWFwcC1hbGVydC1kYW5nZXItaWNvbi1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1mb250LWNvbG9yKTstLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWNsb3Nl'@; put 'LWljb24tY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1kYW5nZXItZm9udC1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LWRhbmdlci1hY3Rpb24tY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1kYW5nZXItZm9udC1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LWRhbmdlci1hY3Rpb24tYWN0aXZlLWNv'@; put 'bG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWZvbnQtY29sb3IpOy0tY2xyLWFwcC1hbGVydC1kYW5nZXItY2xvc2UtaWNvbi1ob3Zlci1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1mb250LWNvbG9yKTstLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1iZy1jb2xvcjp2YXIo'@; put 'LS1jZHMtYWxpYXMtc3RhdHVzLXN1Y2Nlc3MpOy0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWZvbnQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItMTAwKTstLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1ib3JkZXItY29sb3I6bm9uZTstLWNsci1hcHAtYWxlcnQtc3VjY2Vz'@; put 'cy1pY29uLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1mb250LWNvbG9yKTstLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1jbG9zZS1pY29uLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1mb250LWNvbG9yKTstLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1hY3Rpb24t'@; put 'Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWZvbnQtY29sb3IpOy0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWFjdGlvbi1hY3RpdmUtY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWZvbnQtY29sb3IpOy0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWNsb3NlLWljb24t'@; put 'aG92ZXItY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWZvbnQtY29sb3IpOy0tY2xyLWFwcC1hbGVydC1uZXV0cmFsLWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtbmV1dHJhbCk7LS1jbHItYXBwLWFsZXJ0LW5ldXRyYWwtZm9udC1jb2xvcjp2YXIoLS1jZHMtYWxp'@; put 'YXMtdHlwb2dyYXBoeS1jb2xvci0xMDApOy0tY2xyLWFwcC1hbGVydC1uZXV0cmFsLWJvcmRlci1jb2xvcjpub25lOy0tY2xyLWFwcC1hbGVydC1uZXV0cmFsLWljb24tY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1uZXV0cmFsLWZvbnQtY29sb3IpOy0tY2xyLWFwcC1hbGVydC1uZXV0cmFs'@; put 'LWNsb3NlLWljb24tY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1uZXV0cmFsLWZvbnQtY29sb3IpOy0tY2xyLWFwcC1hbGVydC1uZXV0cmFsLWFjdGlvbi1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LW5ldXRyYWwtZm9udC1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LW5ldXRyYWwtYWN0aW9u'@; put 'LWFjdGl2ZS1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LW5ldXRyYWwtZm9udC1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LW5ldXRyYWwtY2xvc2UtaWNvbi1ob3Zlci1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LW5ldXRyYWwtZm9udC1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LXBhZ2VyLXRl'@; put 'eHQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNTAwKTstLWNsci1hcHAtYWxlcnQtaW5mby1wYWdlci1iZy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWluZm8tc2hhZGUpOy0tY2xyLWFwcC1hbGVydC13YXJuaW5nLXBhZ2VyLWJnLWNvbG9yOnZhcigtLWNk'@; put 'cy1hbGlhcy1zdGF0dXMtd2FybmluZy1zaGFkZSk7LS1jbHItYXBwLWFsZXJ0LWRhbmdlci1wYWdlci1iZy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWRhbmdlci1zaGFkZSk7LS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtcGFnZXItYmctY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1'@; put 'cy1zdWNjZXNzLXNoYWRlKTstLWNsci1hcHAtYWxlcnQtbmV1dHJhbC1wYWdlci1iZy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLW5ldXRyYWwtc2hhZGUpOy0tY2xyLWFwcC1hbGVydC1pbmZvLXBhZ2VyLWZvbnQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3It'@; put 'MTAwKTstLWNsci1hcHAtYWxlcnQtd2FybmluZy1wYWdlci1mb250LWNvbG9yOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmxhY2spOy0tY2xyLWFwcC1hbGVydC1kYW5nZXItcGFnZXItZm9udC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci0xMDApOy0tY2xyLWFwcC1h'@; put 'bGVydC1zdWNjZXNzLXBhZ2VyLWZvbnQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItMTAwKTstLWNsci1hcHAtYWxlcnQtbmV1dHJhbC1wYWdlci1mb250LWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTEwMCk7LS1jbHItbGlnaHR3ZWlnaHQt'@; put 'YWxlcnQtaW5mby1pY29uLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtaW5mbyk7LS1jbHItbGlnaHR3ZWlnaHQtYWxlcnQtaW5mby1mb250LWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTUwMCk7LS1jbHItbGlnaHR3ZWlnaHQtYWxlcnQtd2FybmluZy1pY29u'@; put 'LWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtd2FybmluZy1kYXJrKTstLWNsci1saWdodHdlaWdodC1hbGVydC13YXJuaW5nLWZvbnQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNTAwKTstLWNsci1saWdodHdlaWdodC1hbGVydC1kYW5nZXItaWNvbi1jb2xv'@; put 'cjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWRhbmdlcik7LS1jbHItbGlnaHR3ZWlnaHQtYWxlcnQtZGFuZ2VyLWZvbnQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNTAwKTstLWNsci1saWdodHdlaWdodC1hbGVydC1zdWNjZXNzLWljb24tY29sb3I6dmFyKC0tY2Rz'@; put 'LWFsaWFzLXN0YXR1cy1zdWNjZXNzKTstLWNsci1saWdodHdlaWdodC1hbGVydC1zdWNjZXNzLWZvbnQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNTAwKTstLWNsci1saWdodHdlaWdodC1hbGVydC1uZXV0cmFsLWljb24tY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0'@; put 'YXR1cy1uZXV0cmFsLXNoYWRlKTstLWNsci1saWdodHdlaWdodC1hbGVydC1uZXV0cmFsLWZvbnQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNTAwKX0uYWxlcnQtaWNvbntoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTt3aWR0aDp2YXIoLS1jZHMtZ2xv'@; put 'YmFsLXNwYWNlLTkpO21pbi1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTttaW4td2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KX0uYWxlcnQtaWNvbi13cmFwcGVye2Rpc3BsYXk6aW5saW5lLWZsZXg7ZmxleDowIDAgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KX0uYWxl'@; put 'cnQtaXRlbXtmbGV4OjEgMSBhdXRvO2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6bm93cmFwO2dhcDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpO21pbi1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS04KX0uYWxlcnQtaXRlbXN7ZmxleDoxIDEgYXV0bztmbGV4LWZsb3c6Y29sdW1uIG5v'@; put 'd3JhcDtwYWRkaW5nOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkgMDtnYXA6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KTtkaXNwbGF5OmZsZXh9LmFsZXJ0LWl0ZW0+c3BhbiwuYWxlcnQtdGV4dHtmbGV4OjEgMTt0ZXh0LWFsaWduOmxlZnQ7YWxpZ24tc2VsZjpjZW50ZXJ9LmFsZXJ0e2Zv'@; put 'bnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1mb250LXNpemUtMyk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDpjYWxjKDIwKigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTtsZXR0'@; put 'ZXItc3BhY2luZzp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWNvbmRhcnktbGV0dGVyLXNwYWNpbmcpO2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O3dpZHRoOmF1dG87Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItYWxlcnQtYm9yZGVy'@; put 'cmFkaXVzKTtwYWRkaW5nOjAgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KTtnYXA6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KTttYXJnaW4tdG9wOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNCk7YmFja2dyb3VuZDp2YXIoLS1jbHItYWxlcnQtaW5mby1iZy1jb2xvcik7Y29sb3I6dmFyKC0t'@; put 'Y2xyLWFsZXJ0LWluZm8tZm9udC1jb2xvcik7Ym9yZGVyOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTEwMCkgc29saWQgdmFyKC0tY2xyLWFsZXJ0LWluZm8tYm9yZGVyLWNvbG9yKX0uYWxlcnQgLmFsZXJ0LWl0ZW1zIC5hbGVydC1pdGVtIGE6bm90KC5iYWRnZSl7Y29s'@; put 'b3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tZm9udC1jb2xvcil9LmFsZXJ0IC5hbGVydC1pdGVtcyAuYWxlcnQtaXRlbSBhOm5vdCguYmFkZ2UpIGNkcy1pY29uLC5hbGVydCAuYWxlcnQtaXRlbXMgLmFsZXJ0LWl0ZW0gYTpub3QoLmJhZGdlKSBjbHItaWNvbntmaWxsOnZhcigtLWNsci1hbGVy'@; put 'dC1pbmZvLWZvbnQtY29sb3IpfS5hbGVydCAuYWxlcnQtaWNvbntjb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1pY29uLWNvbG9yKX0uYWxlcnQgLmFsZXJ0LWFjdGlvbnMgLmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9y'@; put 'KTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tYWN0aW9uLWFjdGl2ZS1jb2xvcil9LmFsZXJ0IC5hbGVydC1hY3Rpb24sLmFsZXJ0IC5kcm9wZG93bi10b2dnbGV7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yKX0uYWxlcnQgLmFsZXJ0LWFjdGlvbi5i'@; put 'dG4sLmFsZXJ0IC5kcm9wZG93bi10b2dnbGUuYnRue2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1hY3Rpb24tY29sb3IpO2NvbG9yOnZhcigtLWNsci1hbGVydC1pbmZvLWFjdGlvbi1jb2xvcil9LmFsZXJ0IC5hbGVydC1hY3Rpb24uYnRuIGNkcy1pY29uLC5hbGVydCAuYWxl'@; put 'cnQtYWN0aW9uLmJ0biBjbHItaWNvbiwuYWxlcnQgLmRyb3Bkb3duLXRvZ2dsZS5idG4gY2RzLWljb24sLmFsZXJ0IC5kcm9wZG93bi10b2dnbGUuYnRuIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1hbGVydC1pbmZvLWFjdGlvbi1jb2xvcil9LmFsZXJ0IC5hbGVydC1hY3Rpb24uYnRuOmFj'@; put 'dGl2ZSwuYWxlcnQgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2NvbG9yOnZhcigtLWNsci1hbGVydC1pbmZvLWFjdGlvbi1jb2xvcil9LmFsZXJ0IC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSBjZHMtaWNvbiwuYWxlcnQgLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZlIGNsci1pY29uLC5h'@; put 'bGVydCAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmUgY2RzLWljb24sLmFsZXJ0IC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZSBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1hY3Rpb24tY29sb3IpfS5hbGVydCAuY2xvc2V7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWlu'@; put 'Zm8tY2xvc2UtaWNvbi1jb2xvcil9LmFsZXJ0IC5jbG9zZSBjZHMtaWNvbiwuYWxlcnQgLmNsb3NlIGNsci1pY29ue2ZpbGw6dmFyKC0tY2xyLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1jb2xvcil9LmFsZXJ0IC5jbG9zZTpmb2N1cywuYWxlcnQgLmNsb3NlOmhvdmVyLC5hbGVydCAuY2xvc2U6'@; put 'YWN0aXZle2NvbG9yOnZhcigtLWNsci1hbGVydC1pbmZvLWNsb3NlLWljb24taG92ZXItY29sb3IpfS5hbGVydCAuY2xvc2U6Zm9jdXMgY2RzLWljb24sLmFsZXJ0IC5jbG9zZTpmb2N1cyBjbHItaWNvbiwuYWxlcnQgLmNsb3NlOmhvdmVyIGNkcy1pY29uLC5hbGVydCAuY2xvc2U6aG92ZXIg'@; put 'Y2xyLWljb24sLmFsZXJ0IC5jbG9zZTphY3RpdmUgY2RzLWljb24sLmFsZXJ0IC5jbG9zZTphY3RpdmUgY2xyLWljb257ZmlsbDp2YXIoLS1jbHItYWxlcnQtaW5mby1jbG9zZS1pY29uLWhvdmVyLWNvbG9yKX0uYWxlcnQuYWxlcnQtaW5mb3tiYWNrZ3JvdW5kOnZhcigtLWNsci1hbGVydC1p'@; put 'bmZvLWJnLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1mb250LWNvbG9yKTtib3JkZXI6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMTAwKSBzb2xpZCB2YXIoLS1jbHItYWxlcnQtaW5mby1ib3JkZXItY29sb3IpfS5hbGVydC5hbGVydC1pbmZvIC5hbGVy'@; put 'dC1pdGVtcyAuYWxlcnQtaXRlbSBhOm5vdCguYmFkZ2Upe2NvbG9yOnZhcigtLWNsci1hbGVydC1pbmZvLWZvbnQtY29sb3IpfS5hbGVydC5hbGVydC1pbmZvIC5hbGVydC1pdGVtcyAuYWxlcnQtaXRlbSBhOm5vdCguYmFkZ2UpIGNkcy1pY29uLC5hbGVydC5hbGVydC1pbmZvIC5hbGVydC1p'@; put 'dGVtcyAuYWxlcnQtaXRlbSBhOm5vdCguYmFkZ2UpIGNsci1pY29ue2ZpbGw6dmFyKC0tY2xyLWFsZXJ0LWluZm8tZm9udC1jb2xvcil9LmFsZXJ0LmFsZXJ0LWluZm8gLmFsZXJ0LWljb257Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8taWNvbi1jb2xvcil9LmFsZXJ0LmFsZXJ0LWluZm8g'@; put 'LmFsZXJ0LWFjdGlvbnMgLmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yKTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tYWN0aW9uLWFjdGl2ZS1jb2xvcil9LmFsZXJ0LmFsZXJ0LWluZm8gLmFsZXJ0LWFj'@; put 'dGlvbiwuYWxlcnQuYWxlcnQtaW5mbyAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOnZhcigtLWNsci1hbGVydC1pbmZvLWFjdGlvbi1jb2xvcil9LmFsZXJ0LmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbi5idG4sLmFsZXJ0LmFsZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZS5idG57Ym9yZGVyLWNv'@; put 'bG9yOnZhcigtLWNsci1hbGVydC1pbmZvLWFjdGlvbi1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yKX0uYWxlcnQuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9uLmJ0biBjZHMtaWNvbiwuYWxlcnQuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9uLmJ0biBjbHIt'@; put 'aWNvbiwuYWxlcnQuYWxlcnQtaW5mbyAuZHJvcGRvd24tdG9nZ2xlLmJ0biBjZHMtaWNvbiwuYWxlcnQuYWxlcnQtaW5mbyAuZHJvcGRvd24tdG9nZ2xlLmJ0biBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1hY3Rpb24tY29sb3IpfS5hbGVydC5hbGVydC1pbmZvIC5hbGVy'@; put 'dC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQuYWxlcnQtaW5mbyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmV7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yKX0uYWxlcnQuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUgY2RzLWljb24sLmFsZXJ0'@; put 'LmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZlIGNsci1pY29uLC5hbGVydC5hbGVydC1pbmZvIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZSBjZHMtaWNvbiwuYWxlcnQuYWxlcnQtaW5mbyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmUgY2xyLWljb257Y29sb3I6dmFy'@; put 'KC0tY2xyLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yKX0uYWxlcnQuYWxlcnQtaW5mbyAuY2xvc2V7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1jb2xvcil9LmFsZXJ0LmFsZXJ0LWluZm8gLmNsb3NlIGNkcy1pY29uLC5hbGVydC5hbGVydC1pbmZvIC5jbG9zZSBjbHIt'@; put 'aWNvbntmaWxsOnZhcigtLWNsci1hbGVydC1pbmZvLWNsb3NlLWljb24tY29sb3IpfS5hbGVydC5hbGVydC1pbmZvIC5jbG9zZTpmb2N1cywuYWxlcnQuYWxlcnQtaW5mbyAuY2xvc2U6aG92ZXIsLmFsZXJ0LmFsZXJ0LWluZm8gLmNsb3NlOmFjdGl2ZXtjb2xvcjp2YXIoLS1jbHItYWxlcnQt'@; put 'aW5mby1jbG9zZS1pY29uLWhvdmVyLWNvbG9yKX0uYWxlcnQuYWxlcnQtaW5mbyAuY2xvc2U6Zm9jdXMgY2RzLWljb24sLmFsZXJ0LmFsZXJ0LWluZm8gLmNsb3NlOmZvY3VzIGNsci1pY29uLC5hbGVydC5hbGVydC1pbmZvIC5jbG9zZTpob3ZlciBjZHMtaWNvbiwuYWxlcnQuYWxlcnQtaW5m'@; put 'byAuY2xvc2U6aG92ZXIgY2xyLWljb24sLmFsZXJ0LmFsZXJ0LWluZm8gLmNsb3NlOmFjdGl2ZSBjZHMtaWNvbiwuYWxlcnQuYWxlcnQtaW5mbyAuY2xvc2U6YWN0aXZlIGNsci1pY29ue2ZpbGw6dmFyKC0tY2xyLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1ob3Zlci1jb2xvcil9LmFsZXJ0LmFs'@; put 'ZXJ0LXN1Y2Nlc3N7YmFja2dyb3VuZDp2YXIoLS1jbHItYWxlcnQtc3VjY2Vzcy1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LXN1Y2Nlc3MtZm9udC1jb2xvcik7Ym9yZGVyOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTEwMCkgc29saWQgdmFyKC0tY2xyLWFs'@; put 'ZXJ0LXN1Y2Nlc3MtYm9yZGVyLWNvbG9yKX0uYWxlcnQuYWxlcnQtc3VjY2VzcyAuYWxlcnQtaXRlbXMgLmFsZXJ0LWl0ZW0gYTpub3QoLmJhZGdlKXtjb2xvcjp2YXIoLS1jbHItYWxlcnQtc3VjY2Vzcy1mb250LWNvbG9yKX0uYWxlcnQuYWxlcnQtc3VjY2VzcyAuYWxlcnQtaXRlbXMgLmFs'@; put 'ZXJ0LWl0ZW0gYTpub3QoLmJhZGdlKSBjZHMtaWNvbiwuYWxlcnQuYWxlcnQtc3VjY2VzcyAuYWxlcnQtaXRlbXMgLmFsZXJ0LWl0ZW0gYTpub3QoLmJhZGdlKSBjbHItaWNvbntmaWxsOnZhcigtLWNsci1hbGVydC1zdWNjZXNzLWZvbnQtY29sb3IpfS5hbGVydC5hbGVydC1zdWNjZXNzIC5h'@; put 'bGVydC1pY29ue2NvbG9yOnZhcigtLWNsci1hbGVydC1zdWNjZXNzLWljb24tY29sb3IpfS5hbGVydC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb25zIC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOnZhcigtLWNsci1hbGVydC1zdWNjZXNzLWFjdGlvbi1jb2xvcik7Ym9yZGVy'@; put 'LWNvbG9yOnZhcigtLWNsci1hbGVydC1zdWNjZXNzLWFjdGlvbi1hY3RpdmUtY29sb3IpfS5hbGVydC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb24sLmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjp2YXIoLS1jbHItYWxlcnQtc3VjY2Vzcy1hY3Rpb24tY29s'@; put 'b3IpfS5hbGVydC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb24uYnRuLC5hbGVydC5hbGVydC1zdWNjZXNzIC5kcm9wZG93bi10b2dnbGUuYnRue2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtc3VjY2Vzcy1hY3Rpb24tY29sb3IpO2NvbG9yOnZhcigtLWNsci1hbGVydC1zdWNjZXNz'@; put 'LWFjdGlvbi1jb2xvcil9LmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWFjdGlvbi5idG4gY2RzLWljb24sLmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWFjdGlvbi5idG4gY2xyLWljb24sLmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZS5idG4gY2RzLWljb24sLmFs'@; put 'ZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZS5idG4gY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWNvbG9yKX0uYWxlcnQuYWxlcnQtc3VjY2VzcyAuYWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUsLmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bk'@; put 'b3duLXRvZ2dsZS5idG46YWN0aXZle2NvbG9yOnZhcigtLWNsci1hbGVydC1zdWNjZXNzLWFjdGlvbi1jb2xvcil9LmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZlIGNkcy1pY29uLC5hbGVydC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2'@; put 'ZSBjbHItaWNvbiwuYWxlcnQuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmUgY2RzLWljb24sLmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZlIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1hbGVydC1zdWNjZXNzLWFjdGlvbi1j'@; put 'b2xvcil9LmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmNsb3Nle2NvbG9yOnZhcigtLWNsci1hbGVydC1zdWNjZXNzLWNsb3NlLWljb24tY29sb3IpfS5hbGVydC5hbGVydC1zdWNjZXNzIC5jbG9zZSBjZHMtaWNvbiwuYWxlcnQuYWxlcnQtc3VjY2VzcyAuY2xvc2UgY2xyLWljb257ZmlsbDp2YXIo'@; put 'LS1jbHItYWxlcnQtc3VjY2Vzcy1jbG9zZS1pY29uLWNvbG9yKX0uYWxlcnQuYWxlcnQtc3VjY2VzcyAuY2xvc2U6Zm9jdXMsLmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmNsb3NlOmhvdmVyLC5hbGVydC5hbGVydC1zdWNjZXNzIC5jbG9zZTphY3RpdmV7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LXN1'@; put 'Y2Nlc3MtY2xvc2UtaWNvbi1ob3Zlci1jb2xvcil9LmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmNsb3NlOmZvY3VzIGNkcy1pY29uLC5hbGVydC5hbGVydC1zdWNjZXNzIC5jbG9zZTpmb2N1cyBjbHItaWNvbiwuYWxlcnQuYWxlcnQtc3VjY2VzcyAuY2xvc2U6aG92ZXIgY2RzLWljb24sLmFsZXJ0'@; put 'LmFsZXJ0LXN1Y2Nlc3MgLmNsb3NlOmhvdmVyIGNsci1pY29uLC5hbGVydC5hbGVydC1zdWNjZXNzIC5jbG9zZTphY3RpdmUgY2RzLWljb24sLmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmNsb3NlOmFjdGl2ZSBjbHItaWNvbntmaWxsOnZhcigtLWNsci1hbGVydC1zdWNjZXNzLWNsb3NlLWljb24t'@; put 'aG92ZXItY29sb3IpfS5hbGVydC5hbGVydC13YXJuaW5ne2JhY2tncm91bmQ6dmFyKC0tY2xyLWFsZXJ0LXdhcm5pbmctYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1hbGVydC13YXJuaW5nLWZvbnQtY29sb3IpO2JvcmRlcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0aC0x'@; put 'MDApIHNvbGlkIHZhcigtLWNsci1hbGVydC13YXJuaW5nLWJvcmRlci1jb2xvcil9LmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWl0ZW1zIC5hbGVydC1pdGVtIGE6bm90KC5iYWRnZSl7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LXdhcm5pbmctZm9udC1jb2xvcil9LmFsZXJ0LmFsZXJ0LXdh'@; put 'cm5pbmcgLmFsZXJ0LWl0ZW1zIC5hbGVydC1pdGVtIGE6bm90KC5iYWRnZSkgY2RzLWljb24sLmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWl0ZW1zIC5hbGVydC1pdGVtIGE6bm90KC5iYWRnZSkgY2xyLWljb257ZmlsbDp2YXIoLS1jbHItYWxlcnQtd2FybmluZy1mb250LWNvbG9yKX0u'@; put 'YWxlcnQuYWxlcnQtd2FybmluZyAuYWxlcnQtaWNvbntjb2xvcjp2YXIoLS1jbHItYWxlcnQtd2FybmluZy1pY29uLWNvbG9yKX0uYWxlcnQuYWxlcnQtd2FybmluZyAuYWxlcnQtYWN0aW9ucyAuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjp2YXIoLS1jbHItYWxlcnQtd2Fybmlu'@; put 'Zy1hY3Rpb24tY29sb3IpO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtd2FybmluZy1hY3Rpb24tYWN0aXZlLWNvbG9yKX0uYWxlcnQuYWxlcnQtd2FybmluZyAuYWxlcnQtYWN0aW9uLC5hbGVydC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6dmFyKC0tY2xyLWFs'@; put 'ZXJ0LXdhcm5pbmctYWN0aW9uLWNvbG9yKX0uYWxlcnQuYWxlcnQtd2FybmluZyAuYWxlcnQtYWN0aW9uLmJ0biwuYWxlcnQuYWxlcnQtd2FybmluZyAuZHJvcGRvd24tdG9nZ2xlLmJ0bntib3JkZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LXdhcm5pbmctYWN0aW9uLWNvbG9yKTtjb2xvcjp2'@; put 'YXIoLS1jbHItYWxlcnQtd2FybmluZy1hY3Rpb24tY29sb3IpfS5hbGVydC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rpb24uYnRuIGNkcy1pY29uLC5hbGVydC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rpb24uYnRuIGNsci1pY29uLC5hbGVydC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10'@; put 'b2dnbGUuYnRuIGNkcy1pY29uLC5hbGVydC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGUuYnRuIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1hbGVydC13YXJuaW5nLWFjdGlvbi1jb2xvcil9LmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZlLC5hbGVy'@; put 'dC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZXtjb2xvcjp2YXIoLS1jbHItYWxlcnQtd2FybmluZy1hY3Rpb24tY29sb3IpfS5hbGVydC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSBjZHMtaWNvbiwuYWxlcnQuYWxlcnQtd2FybmluZyAu'@; put 'YWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUgY2xyLWljb24sLmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZlIGNkcy1pY29uLC5hbGVydC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZSBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHIt'@; put 'YWxlcnQtd2FybmluZy1hY3Rpb24tY29sb3IpfS5hbGVydC5hbGVydC13YXJuaW5nIC5jbG9zZXtjb2xvcjp2YXIoLS1jbHItYWxlcnQtd2FybmluZy1jbG9zZS1pY29uLWNvbG9yKX0uYWxlcnQuYWxlcnQtd2FybmluZyAuY2xvc2UgY2RzLWljb24sLmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmNs'@; put 'b3NlIGNsci1pY29ue2ZpbGw6dmFyKC0tY2xyLWFsZXJ0LXdhcm5pbmctY2xvc2UtaWNvbi1jb2xvcil9LmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmNsb3NlOmZvY3VzLC5hbGVydC5hbGVydC13YXJuaW5nIC5jbG9zZTpob3ZlciwuYWxlcnQuYWxlcnQtd2FybmluZyAuY2xvc2U6YWN0aXZle2Nv'@; put 'bG9yOnZhcigtLWNsci1hbGVydC13YXJuaW5nLWNsb3NlLWljb24taG92ZXItY29sb3IpfS5hbGVydC5hbGVydC13YXJuaW5nIC5jbG9zZTpmb2N1cyBjZHMtaWNvbiwuYWxlcnQuYWxlcnQtd2FybmluZyAuY2xvc2U6Zm9jdXMgY2xyLWljb24sLmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmNsb3Nl'@; put 'OmhvdmVyIGNkcy1pY29uLC5hbGVydC5hbGVydC13YXJuaW5nIC5jbG9zZTpob3ZlciBjbHItaWNvbiwuYWxlcnQuYWxlcnQtd2FybmluZyAuY2xvc2U6YWN0aXZlIGNkcy1pY29uLC5hbGVydC5hbGVydC13YXJuaW5nIC5jbG9zZTphY3RpdmUgY2xyLWljb257ZmlsbDp2YXIoLS1jbHItYWxl'@; put 'cnQtd2FybmluZy1jbG9zZS1pY29uLWhvdmVyLWNvbG9yKX0uYWxlcnQuYWxlcnQtZGFuZ2Vye2JhY2tncm91bmQ6dmFyKC0tY2xyLWFsZXJ0LWRhbmdlci1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWRhbmdlci1mb250LWNvbG9yKTtib3JkZXI6dmFyKC0tY2RzLWFsaWFzLW9i'@; put 'amVjdC1ib3JkZXItd2lkdGgtMTAwKSBzb2xpZCB2YXIoLS1jbHItYWxlcnQtZGFuZ2VyLWJvcmRlci1jb2xvcil9LmFsZXJ0LmFsZXJ0LWRhbmdlciAuYWxlcnQtaXRlbXMgLmFsZXJ0LWl0ZW0gYTpub3QoLmJhZGdlKXtjb2xvcjp2YXIoLS1jbHItYWxlcnQtZGFuZ2VyLWZvbnQtY29sb3Ip'@; put 'fS5hbGVydC5hbGVydC1kYW5nZXIgLmFsZXJ0LWl0ZW1zIC5hbGVydC1pdGVtIGE6bm90KC5iYWRnZSkgY2RzLWljb24sLmFsZXJ0LmFsZXJ0LWRhbmdlciAuYWxlcnQtaXRlbXMgLmFsZXJ0LWl0ZW0gYTpub3QoLmJhZGdlKSBjbHItaWNvbntmaWxsOnZhcigtLWNsci1hbGVydC1kYW5nZXIt'@; put 'Zm9udC1jb2xvcil9LmFsZXJ0LmFsZXJ0LWRhbmdlciAuYWxlcnQtaWNvbntjb2xvcjp2YXIoLS1jbHItYWxlcnQtZGFuZ2VyLWljb24tY29sb3IpfS5hbGVydC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbnMgLmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6dmFyKC0tY2xyLWFs'@; put 'ZXJ0LWRhbmdlci1hY3Rpb24tY29sb3IpO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtZGFuZ2VyLWFjdGlvbi1hY3RpdmUtY29sb3IpfS5hbGVydC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbiwuYWxlcnQuYWxlcnQtZGFuZ2VyIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6dmFyKC0t'@; put 'Y2xyLWFsZXJ0LWRhbmdlci1hY3Rpb24tY29sb3IpfS5hbGVydC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbi5idG4sLmFsZXJ0LmFsZXJ0LWRhbmdlciAuZHJvcGRvd24tdG9nZ2xlLmJ0bntib3JkZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWRhbmdlci1hY3Rpb24tY29sb3IpO2NvbG9y'@; put 'OnZhcigtLWNsci1hbGVydC1kYW5nZXItYWN0aW9uLWNvbG9yKX0uYWxlcnQuYWxlcnQtZGFuZ2VyIC5hbGVydC1hY3Rpb24uYnRuIGNkcy1pY29uLC5hbGVydC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbi5idG4gY2xyLWljb24sLmFsZXJ0LmFsZXJ0LWRhbmdlciAuZHJvcGRvd24tdG9n'@; put 'Z2xlLmJ0biBjZHMtaWNvbiwuYWxlcnQuYWxlcnQtZGFuZ2VyIC5kcm9wZG93bi10b2dnbGUuYnRuIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1hbGVydC1kYW5nZXItYWN0aW9uLWNvbG9yKX0uYWxlcnQuYWxlcnQtZGFuZ2VyIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQuYWxl'@; put 'cnQtZGFuZ2VyIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZXtjb2xvcjp2YXIoLS1jbHItYWxlcnQtZGFuZ2VyLWFjdGlvbi1jb2xvcil9LmFsZXJ0LmFsZXJ0LWRhbmdlciAuYWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUgY2RzLWljb24sLmFsZXJ0LmFsZXJ0LWRhbmdlciAuYWxlcnQtYWN0'@; put 'aW9uLmJ0bjphY3RpdmUgY2xyLWljb24sLmFsZXJ0LmFsZXJ0LWRhbmdlciAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmUgY2RzLWljb24sLmFsZXJ0LmFsZXJ0LWRhbmdlciAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmUgY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWRhbmdl'@; put 'ci1hY3Rpb24tY29sb3IpfS5hbGVydC5hbGVydC1kYW5nZXIgLmNsb3Nle2NvbG9yOnZhcigtLWNsci1hbGVydC1kYW5nZXItY2xvc2UtaWNvbi1jb2xvcil9LmFsZXJ0LmFsZXJ0LWRhbmdlciAuY2xvc2UgY2RzLWljb24sLmFsZXJ0LmFsZXJ0LWRhbmdlciAuY2xvc2UgY2xyLWljb257Zmls'@; put 'bDp2YXIoLS1jbHItYWxlcnQtZGFuZ2VyLWNsb3NlLWljb24tY29sb3IpfS5hbGVydC5hbGVydC1kYW5nZXIgLmNsb3NlOmZvY3VzLC5hbGVydC5hbGVydC1kYW5nZXIgLmNsb3NlOmhvdmVyLC5hbGVydC5hbGVydC1kYW5nZXIgLmNsb3NlOmFjdGl2ZXtjb2xvcjp2YXIoLS1jbHItYWxlcnQt'@; put 'ZGFuZ2VyLWNsb3NlLWljb24taG92ZXItY29sb3IpfS5hbGVydC5hbGVydC1kYW5nZXIgLmNsb3NlOmZvY3VzIGNkcy1pY29uLC5hbGVydC5hbGVydC1kYW5nZXIgLmNsb3NlOmZvY3VzIGNsci1pY29uLC5hbGVydC5hbGVydC1kYW5nZXIgLmNsb3NlOmhvdmVyIGNkcy1pY29uLC5hbGVydC5h'@; put 'bGVydC1kYW5nZXIgLmNsb3NlOmhvdmVyIGNsci1pY29uLC5hbGVydC5hbGVydC1kYW5nZXIgLmNsb3NlOmFjdGl2ZSBjZHMtaWNvbiwuYWxlcnQuYWxlcnQtZGFuZ2VyIC5jbG9zZTphY3RpdmUgY2xyLWljb257ZmlsbDp2YXIoLS1jbHItYWxlcnQtZGFuZ2VyLWNsb3NlLWljb24taG92ZXIt'@; put 'Y29sb3IpfS5hbGVydC5hbGVydC1uZXV0cmFse2JhY2tncm91bmQ6dmFyKC0tY2xyLWFsZXJ0LW5ldXRyYWwtYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1hbGVydC1uZXV0cmFsLWZvbnQtY29sb3IpO2JvcmRlcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0aC0xMDApIHNv'@; put 'bGlkIHZhcigtLWNsci1hbGVydC1uZXV0cmFsLWJvcmRlci1jb2xvcil9LmFsZXJ0LmFsZXJ0LW5ldXRyYWwgLmFsZXJ0LWl0ZW1zIC5hbGVydC1pdGVtIGE6bm90KC5iYWRnZSl7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LW5ldXRyYWwtZm9udC1jb2xvcil9LmFsZXJ0LmFsZXJ0LW5ldXRyYWwg'@; put 'LmFsZXJ0LWl0ZW1zIC5hbGVydC1pdGVtIGE6bm90KC5iYWRnZSkgY2RzLWljb24sLmFsZXJ0LmFsZXJ0LW5ldXRyYWwgLmFsZXJ0LWl0ZW1zIC5hbGVydC1pdGVtIGE6bm90KC5iYWRnZSkgY2xyLWljb257ZmlsbDp2YXIoLS1jbHItYWxlcnQtbmV1dHJhbC1mb250LWNvbG9yKX0uYWxlcnQg'@; put 'LmFsZXJ0LWl0ZW0+c3BhbiwuYWxlcnQgLmFsZXJ0LWl0ZW0gLmFsZXJ0LXRleHQsLmFsZXJ0IC5hbGVydC1pdGVtIC5hbGVydC1hY3Rpb25ze3BhZGRpbmc6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0yKSAwfS5hbGVydCAuYWxlcnQtaXRlbSAuY2xyLWljb257aGVpZ2h0OnZhcigtLWNkcy1n'@; put 'bG9iYWwtc3BhY2UtOCk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS04KTttYXJnaW4tcmlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS00KX0uYWxlcnQgLmFsZXJ0LWl0ZW0gLmNsci1pY29uKy5hbGVydC10ZXh0e3BhZGRpbmctbGVmdDowfS5hbGVydCAuYWxlcnQtaXRlbSAuY2xy'@; put 'LWljb24rLmFsZXJ0LXRleHQ6YmVmb3Jle2NvbnRlbnQ6bm9uZX0uYWxlcnQgLmFsZXJ0LWFjdGlvbnN7ZmxleDowIDAgYXV0bzt3aGl0ZS1zcGFjZTpub3dyYXB9LmFsZXJ0IC5hbGVydC1hY3Rpb25zPi5hbGVydC1hY3Rpb246bm90KDpsYXN0LWNoaWxkKSwuYWxlcnQgLmFsZXJ0LWFjdGlv'@; put 'bnM+LmRyb3Bkb3duOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLXJpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSl9LmFsZXJ0IC5hbGVydC1hY3Rpb25zIC5kcm9wZG93bi1pdGVte2NvbG9yOnZhcigtLWNsci1kcm9wZG93bi10ZXh0LWNvbG9yKX0uYWxlcnQgLmFsZXJ0LWFjdGlvbiwu'@; put 'YWxlcnQgLmRyb3Bkb3duLXRvZ2dsZXt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5hbGVydCAuYWxlcnQtYWN0aW9uIGJ1dHRvbi5kcm9wZG93bi10b2dnbGU6bm90KC5idG4pe2JhY2tncm91bmQ6MCAwO2N1cnNvcjpwb2ludGVyO2NvbG9yOnZhcigtLWNsci1kcm9wZG93bi10ZXh0LWNv'@; put 'bG9yKX0uYWxlcnQgLmRyb3Bkb3duLXRvZ2dsZTpub3QoLmJ0bil7YmFja2dyb3VuZDowIDA7Ym9yZGVyOjB9LmFsZXJ0IC5jbG9zZXtvcmRlcjoxMDA7ZmxleDowIDAgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTtoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTt3aWR0aDp2YXIo'@; put 'LS1jZHMtZ2xvYmFsLXNwYWNlLTkpO21hcmdpbjp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpIDB9LmFsZXJ0IC5jbG9zZSBjZHMtaWNvbiwuYWxlcnQgLmNsb3NlIGNsci1pY29ue2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpO3dpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2Ut'@; put 'OSk7bWluLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpO21pbi13aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpfS5hbGVydCAuYWxlcnQtc3Bpbm5lci5zcGlubmVyLWlubGluZXtoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTt3aWR0aDp2YXIoLS1jZHMtZ2xv'@; put 'YmFsLXNwYWNlLTkpO21pbi1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTttaW4td2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTttYXJnaW46MH0uYWxlcnQgLmFsZXJ0LXNwaW5uZXIuc3Bpbm5lci1pbmxpbmU6YmVmb3JlLC5hbGVydCAuYWxlcnQtc3Bpbm5lci5zcGlu'@; put 'bmVyLWlubGluZTphZnRlcntoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTt3aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpO21pbi1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTttaW4td2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KX0uYWxlcnQgLmNs'@; put 'b3Nlfi5hbGVydC1pdGVtPi5hbGVydC1hY3Rpb25ze3BhZGRpbmctcmlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KX0uYWxlcnQgLmNsb3Nlfi5hbGVydC1pdGVtPi5hbGVydC1hY3Rpb25zPi5hbGVydC1hY3Rpb246bGFzdC1jaGlsZHttYXJnaW4tcmlnaHQ6dmFyKC0tY2RzLWdsb2Jh'@; put 'bC1zcGFjZS02KX0uYWxlcnQuYWxlcnQtbGlnaHR3ZWlnaHR7YmFja2dyb3VuZDowIDA7Ym9yZGVyOjB9LmFsZXJ0LmFsZXJ0LWxpZ2h0d2VpZ2h0IC5hbGVydC1pdGVtc3twYWRkaW5nOjB9LmFsZXJ0LmFsZXJ0LWxpZ2h0d2VpZ2h0IC5hbGVydC1pdGVtcyAuYWxlcnQtaXRlbXttaW4taGVp'@; put 'Z2h0OjA7bWFyZ2luOjB9LmFsZXJ0LmFsZXJ0LWxpZ2h0d2VpZ2h0IC5hbGVydC1pdGVtcyAuYWxlcnQtaXRlbT5zcGFuLC5hbGVydC5hbGVydC1saWdodHdlaWdodCAuYWxlcnQtaXRlbXMgLmFsZXJ0LWl0ZW0gLmFsZXJ0LWFjdGlvbnMsLmFsZXJ0LmFsZXJ0LWxpZ2h0d2VpZ2h0IC5hbGVy'@; put 'dC1pdGVtcyAuYWxlcnQtaXRlbSAuYWxlcnQtdGV4dHtmb250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktYm9keS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWJvZHktZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1h'@; put 'bGlhcy10eXBvZ3JhcGh5LWJvZHktbGluZS1oZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWJvZHktbGV0dGVyLXNwYWNpbmcpfS5hbGVydC5hbGVydC1saWdodHdlaWdodCAuY2xvc2V7ZGlzcGxheTpub25lfS5hbGVydC5hbGVydC1saWdodHdlaWdo'@; put 'dDpub3QoLmFsZXJ0LXNtKSAuYWxlcnQtaWNvbnttYXJnaW46MH0uYWxlcnQuYWxlcnQtbGlnaHR3ZWlnaHQuYWxlcnQtaW5mbyAuYWxlcnQtdGV4dHtjb2xvcjp2YXIoLS1jbHItbGlnaHR3ZWlnaHQtYWxlcnQtaW5mby1mb250LWNvbG9yKX0uYWxlcnQuYWxlcnQtbGlnaHR3ZWlnaHQuYWxl'@; put 'cnQtaW5mbyAuYWxlcnQtaWNvbntjb2xvcjp2YXIoLS1jbHItbGlnaHR3ZWlnaHQtYWxlcnQtaW5mby1pY29uLWNvbG9yKX0uYWxlcnQuYWxlcnQtbGlnaHR3ZWlnaHQuYWxlcnQtd2FybmluZyAuYWxlcnQtdGV4dHtjb2xvcjp2YXIoLS1jbHItbGlnaHR3ZWlnaHQtYWxlcnQtd2FybmluZy1m'@; put 'b250LWNvbG9yKX0uYWxlcnQuYWxlcnQtbGlnaHR3ZWlnaHQuYWxlcnQtd2FybmluZyAuYWxlcnQtaWNvbntjb2xvcjp2YXIoLS1jbHItbGlnaHR3ZWlnaHQtYWxlcnQtd2FybmluZy1pY29uLWNvbG9yKX0uYWxlcnQuYWxlcnQtbGlnaHR3ZWlnaHQuYWxlcnQtZGFuZ2VyIC5hbGVydC10ZXh0'@; put 'e2NvbG9yOnZhcigtLWNsci1saWdodHdlaWdodC1hbGVydC1kYW5nZXItZm9udC1jb2xvcil9LmFsZXJ0LmFsZXJ0LWxpZ2h0d2VpZ2h0LmFsZXJ0LWRhbmdlciAuYWxlcnQtaWNvbntjb2xvcjp2YXIoLS1jbHItbGlnaHR3ZWlnaHQtYWxlcnQtZGFuZ2VyLWljb24tY29sb3IpfS5hbGVydC5h'@; put 'bGVydC1saWdodHdlaWdodC5hbGVydC1zdWNjZXNzIC5hbGVydC10ZXh0e2NvbG9yOnZhcigtLWNsci1saWdodHdlaWdodC1hbGVydC1zdWNjZXNzLWZvbnQtY29sb3IpfS5hbGVydC5hbGVydC1saWdodHdlaWdodC5hbGVydC1zdWNjZXNzIC5hbGVydC1pY29ue2NvbG9yOnZhcigtLWNsci1s'@; put 'aWdodHdlaWdodC1hbGVydC1zdWNjZXNzLWljb24tY29sb3IpfS5hbGVydC5hbGVydC1saWdodHdlaWdodC5hbGVydC1uZXV0cmFsIC5hbGVydC10ZXh0e2NvbG9yOnZhcigtLWNsci1saWdodHdlaWdodC1hbGVydC1uZXV0cmFsLWZvbnQtY29sb3IpfS5hbGVydC5hbGVydC1saWdodHdlaWdo'@; put 'dC5hbGVydC1uZXV0cmFsIC5hbGVydC1pY29ue2NvbG9yOnZhcigtLWNsci1saWdodHdlaWdodC1hbGVydC1uZXV0cmFsLWljb24tY29sb3IpfS5hbGVydC1hcHAtbGV2ZWx7bWFyZ2luOjA7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czowO292ZXJmbG93LXk6YXV0bztiYWNrZ3JvdW5kOnZhcigt'@; put 'LWNsci1hcHAtYWxlcnQtaW5mby1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWZvbnQtY29sb3IpO2JvcmRlcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0aC0xMDApIHNvbGlkIHZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1ib3JkZXItY29sb3Ip'@; put 'fS5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW1zIC5hbGVydC1pdGVtIGE6bm90KC5iYWRnZSl7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWZvbnQtY29sb3IpfS5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW1zIC5hbGVydC1pdGVtIGE6bm90KC5iYWRnZSkgY2RzLWljb24s'@; put 'LmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbXMgLmFsZXJ0LWl0ZW0gYTpub3QoLmJhZGdlKSBjbHItaWNvbntmaWxsOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1mb250LWNvbG9yKX0uYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pY29ue2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5m'@; put 'by1pY29uLWNvbG9yKX0uYWxlcnQtYXBwLWxldmVsIC5hbGVydC1hY3Rpb25zIC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1hY3Rpb24tY29sb3IpO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tYWN0aW9uLWFj'@; put 'dGl2ZS1jb2xvcil9LmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtYWN0aW9uLC5hbGVydC1hcHAtbGV2ZWwgLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yKX0uYWxlcnQtYXBwLWxldmVsIC5hbGVydC1hY3Rpb24uYnRuLC5hbGVydC1h'@; put 'cHAtbGV2ZWwgLmRyb3Bkb3duLXRvZ2dsZS5idG57Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1hY3Rpb24tY29sb3IpO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1hY3Rpb24tY29sb3IpfS5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWFjdGlvbi5idG4gY2Rz'@; put 'LWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtYWN0aW9uLmJ0biBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5kcm9wZG93bi10b2dnbGUuYnRuIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmRyb3Bkb3duLXRvZ2dsZS5idG4gY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWFwcC1h'@; put 'bGVydC1pbmZvLWFjdGlvbi1jb2xvcil9LmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUsLmFsZXJ0LWFwcC1sZXZlbCAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmV7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWFjdGlvbi1jb2xvcil9LmFsZXJ0LWFw'@; put 'cC1sZXZlbCAuYWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUgY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmUgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAu'@; put 'ZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmUgY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWFjdGlvbi1jb2xvcil9LmFsZXJ0LWFwcC1sZXZlbCAuY2xvc2V7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWNsb3NlLWljb24tY29sb3IpfS5hbGVydC1hcHAt'@; put 'bGV2ZWwgLmNsb3NlIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmNsb3NlIGNsci1pY29ue2ZpbGw6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWNsb3NlLWljb24tY29sb3IpfS5hbGVydC1hcHAtbGV2ZWwgLmNsb3NlOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwgLmNsb3NlOmhvdmVyLC5h'@; put 'bGVydC1hcHAtbGV2ZWwgLmNsb3NlOmFjdGl2ZXtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1ob3Zlci1jb2xvcil9LmFsZXJ0LWFwcC1sZXZlbCAuY2xvc2U6Zm9jdXMgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuY2xvc2U6Zm9jdXMgY2xyLWljb24sLmFs'@; put 'ZXJ0LWFwcC1sZXZlbCAuY2xvc2U6aG92ZXIgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuY2xvc2U6aG92ZXIgY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuY2xvc2U6YWN0aXZlIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmNsb3NlOmFjdGl2ZSBjbHItaWNvbntmaWxsOnZhcigt'@; put 'LWNsci1hcHAtYWxlcnQtaW5mby1jbG9zZS1pY29uLWhvdmVyLWNvbG9yKX0uYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG57bWFyZ2luOjB9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZve2JhY2tncm91bmQ6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWJnLWNvbG9yKTtjb2xv'@; put 'cjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tZm9udC1jb2xvcik7Ym9yZGVyOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTEwMCkgc29saWQgdmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWJvcmRlci1jb2xvcil9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVy'@; put 'dC1pdGVtcyAuYWxlcnQtaXRlbSBhOm5vdCguYmFkZ2Upe2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1mb250LWNvbG9yKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmFsZXJ0LWl0ZW1zIC5hbGVydC1pdGVtIGE6bm90KC5iYWRnZSkgY2RzLWljb24sLmFsZXJ0LWFwcC1s'@; put 'ZXZlbC5hbGVydC1pbmZvIC5hbGVydC1pdGVtcyAuYWxlcnQtaXRlbSBhOm5vdCguYmFkZ2UpIGNsci1pY29ue2ZpbGw6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWZvbnQtY29sb3IpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtaWNvbntjb2xvcjp2YXIoLS1jbHItYXBw'@; put 'LWFsZXJ0LWluZm8taWNvbi1jb2xvcil9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1hY3Rpb25zIC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1hY3Rpb24tY29sb3IpO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYXBw'@; put 'LWFsZXJ0LWluZm8tYWN0aW9uLWFjdGl2ZS1jb2xvcil9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1hY3Rpb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWFjdGlvbi1jb2xvcil9'@; put 'LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1hY3Rpb24uYnRuLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuZHJvcGRvd24tdG9nZ2xlLmJ0bntib3JkZXItY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWFjdGlvbi1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWFw'@; put 'cC1hbGVydC1pbmZvLWFjdGlvbi1jb2xvcil9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1hY3Rpb24uYnRuIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9uLmJ0biBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8g'@; put 'LmRyb3Bkb3duLXRvZ2dsZS5idG4gY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5kcm9wZG93bi10b2dnbGUuYnRuIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1hY3Rpb24tY29sb3IpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxl'@; put 'cnQtYWN0aW9uLmJ0bjphY3RpdmUsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZXtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbi5i'@; put 'dG46YWN0aXZlIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUgY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFs'@; put 'ZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZlIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1hY3Rpb24tY29sb3IpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuY2xvc2V7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWNsb3NlLWlj'@; put 'b24tY29sb3IpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuY2xvc2UgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5jbG9zZSBjbHItaWNvbntmaWxsOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1jbG9zZS1pY29uLWNvbG9yKX0uYWxlcnQtYXBwLWxldmVsLmFs'@; put 'ZXJ0LWluZm8gLmNsb3NlOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuY2xvc2U6aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5jbG9zZTphY3RpdmV7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWNsb3NlLWljb24taG92ZXItY29sb3IpfS5hbGVy'@; put 'dC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuY2xvc2U6Zm9jdXMgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5jbG9zZTpmb2N1cyBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmNsb3NlOmhvdmVyIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxl'@; put 'cnQtaW5mbyAuY2xvc2U6aG92ZXIgY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5jbG9zZTphY3RpdmUgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5jbG9zZTphY3RpdmUgY2xyLWljb257ZmlsbDp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tY2xv'@; put 'c2UtaWNvbi1ob3Zlci1jb2xvcil9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXJ7YmFja2dyb3VuZDp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1kYW5nZXItZm9udC1jb2xvcik7Ym9yZGVyOnZhcigtLWNkcy1hbGlh'@; put 'cy1vYmplY3QtYm9yZGVyLXdpZHRoLTEwMCkgc29saWQgdmFyKC0tY2xyLWFwcC1hbGVydC1kYW5nZXItYm9yZGVyLWNvbG9yKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuYWxlcnQtaXRlbXMgLmFsZXJ0LWl0ZW0gYTpub3QoLmJhZGdlKXtjb2xvcjp2YXIoLS1jbHItYXBwLWFs'@; put 'ZXJ0LWRhbmdlci1mb250LWNvbG9yKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuYWxlcnQtaXRlbXMgLmFsZXJ0LWl0ZW0gYTpub3QoLmJhZGdlKSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuYWxlcnQtaXRlbXMgLmFsZXJ0LWl0ZW0gYTpub3QoLmJh'@; put 'ZGdlKSBjbHItaWNvbntmaWxsOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWZvbnQtY29sb3IpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5hbGVydC1pY29ue2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWljb24tY29sb3IpfS5hbGVydC1hcHAtbGV2ZWwuYWxl'@; put 'cnQtZGFuZ2VyIC5hbGVydC1hY3Rpb25zIC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWFjdGlvbi1jb2xvcik7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWFjdGlvbi1hY3RpdmUtY29sb3IpfS5hbGVy'@; put 'dC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5hbGVydC1hY3Rpb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1hY3Rpb24tY29sb3IpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5h'@; put 'bGVydC1hY3Rpb24uYnRuLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5kcm9wZG93bi10b2dnbGUuYnRue2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1hY3Rpb24tY29sb3IpO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWFjdGlvbi1jb2xv'@; put 'cil9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbi5idG4gY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbi5idG4gY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZS5i'@; put 'dG4gY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZS5idG4gY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1kYW5nZXItYWN0aW9uLWNvbG9yKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuYWxlcnQtYWN0aW9uLmJ0'@; put 'bjphY3RpdmUsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWFjdGlvbi1jb2xvcil9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbi5idG46YWN0'@; put 'aXZlIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmUgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVy'@; put 'dC1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZlIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWFjdGlvbi1jb2xvcil9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmNsb3Nle2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWNs'@; put 'b3NlLWljb24tY29sb3IpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5jbG9zZSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuY2xvc2UgY2xyLWljb257ZmlsbDp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1jbG9zZS1pY29uLWNvbG9yKX0uYWxlcnQt'@; put 'YXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuY2xvc2U6Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmNsb3NlOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5jbG9zZTphY3RpdmV7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1kYW5nZXItY2xvc2UtaWNv'@; put 'bi1ob3Zlci1jb2xvcil9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmNsb3NlOmZvY3VzIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5jbG9zZTpmb2N1cyBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuY2xvc2U6aG92ZXIgY2Rz'@; put 'LWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmNsb3NlOmhvdmVyIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5jbG9zZTphY3RpdmUgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmNsb3NlOmFjdGl2ZSBjbHItaWNvbntm'@; put 'aWxsOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWNsb3NlLWljb24taG92ZXItY29sb3IpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtbmV1dHJhbHtiYWNrZ3JvdW5kOnZhcigtLWNsci1hcHAtYWxlcnQtbmV1dHJhbC1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1uZXV0'@; put 'cmFsLWZvbnQtY29sb3IpO2JvcmRlcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0aC0xMDApIHNvbGlkIHZhcigtLWNsci1hcHAtYWxlcnQtbmV1dHJhbC1ib3JkZXItY29sb3IpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtbmV1dHJhbCAuYWxlcnQtaXRlbXMgLmFsZXJ0LWl0'@; put 'ZW0gYTpub3QoLmJhZGdlKXtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LW5ldXRyYWwtZm9udC1jb2xvcil9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1uZXV0cmFsIC5hbGVydC1pdGVtcyAuYWxlcnQtaXRlbSBhOm5vdCguYmFkZ2UpIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQt'@; put 'bmV1dHJhbCAuYWxlcnQtaXRlbXMgLmFsZXJ0LWl0ZW0gYTpub3QoLmJhZGdlKSBjbHItaWNvbntmaWxsOnZhcigtLWNsci1hcHAtYWxlcnQtbmV1dHJhbC1mb250LWNvbG9yKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LW5ldXRyYWwgLmFsZXJ0LWFjdGlvbnMgLmRyb3Bkb3duIC5kcm9wZG93'@; put 'bi10b2dnbGV7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1uZXV0cmFsLWFjdGlvbi1jb2xvcik7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtbmV1dHJhbC1hY3Rpb24tYWN0aXZlLWNvbG9yKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LW5ldXRyYWwgLmFsZXJ0LWFjdGlvbiwu'@; put 'YWxlcnQtYXBwLWxldmVsLmFsZXJ0LW5ldXRyYWwgLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LW5ldXRyYWwtYWN0aW9uLWNvbG9yKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LW5ldXRyYWwgLmFsZXJ0LWFjdGlvbi5idG4sLmFsZXJ0LWFwcC1sZXZlbC5hbGVy'@; put 'dC1uZXV0cmFsIC5kcm9wZG93bi10b2dnbGUuYnRue2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LW5ldXRyYWwtYWN0aW9uLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LW5ldXRyYWwtYWN0aW9uLWNvbG9yKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LW5ldXRyYWwg'@; put 'LmFsZXJ0LWFjdGlvbi5idG4gY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1uZXV0cmFsIC5hbGVydC1hY3Rpb24uYnRuIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtbmV1dHJhbCAuZHJvcGRvd24tdG9nZ2xlLmJ0biBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFs'@; put 'ZXJ0LW5ldXRyYWwgLmRyb3Bkb3duLXRvZ2dsZS5idG4gY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1uZXV0cmFsLWFjdGlvbi1jb2xvcil9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1uZXV0cmFsIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQtYXBwLWxldmVsLmFs'@; put 'ZXJ0LW5ldXRyYWwgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtbmV1dHJhbC1hY3Rpb24tY29sb3IpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtbmV1dHJhbCAuYWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUgY2RzLWljb24sLmFsZXJ0LWFwcC1s'@; put 'ZXZlbC5hbGVydC1uZXV0cmFsIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LW5ldXRyYWwgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZlIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtbmV1dHJhbCAuZHJvcGRvd24tdG9n'@; put 'Z2xlLmJ0bjphY3RpdmUgY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1uZXV0cmFsLWFjdGlvbi1jb2xvcil9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1uZXV0cmFsIC5jbG9zZXtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LW5ldXRyYWwtY2xvc2UtaWNvbi1jb2xvcil9LmFs'@; put 'ZXJ0LWFwcC1sZXZlbC5hbGVydC1uZXV0cmFsIC5jbG9zZSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LW5ldXRyYWwgLmNsb3NlIGNsci1pY29ue2ZpbGw6dmFyKC0tY2xyLWFwcC1hbGVydC1uZXV0cmFsLWNsb3NlLWljb24tY29sb3IpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQt'@; put 'bmV1dHJhbCAuY2xvc2U6Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1uZXV0cmFsIC5jbG9zZTpob3ZlciwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LW5ldXRyYWwgLmNsb3NlOmFjdGl2ZXtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LW5ldXRyYWwtY2xvc2UtaWNvbi1ob3Zlci1jb2xv'@; put 'cil9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1uZXV0cmFsIC5jbG9zZTpmb2N1cyBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LW5ldXRyYWwgLmNsb3NlOmZvY3VzIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtbmV1dHJhbCAuY2xvc2U6aG92ZXIgY2RzLWljb24sLmFs'@; put 'ZXJ0LWFwcC1sZXZlbC5hbGVydC1uZXV0cmFsIC5jbG9zZTpob3ZlciBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LW5ldXRyYWwgLmNsb3NlOmFjdGl2ZSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LW5ldXRyYWwgLmNsb3NlOmFjdGl2ZSBjbHItaWNvbntmaWxsOnZh'@; put 'cigtLWNsci1hcHAtYWxlcnQtbmV1dHJhbC1jbG9zZS1pY29uLWhvdmVyLWNvbG9yKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmd7YmFja2dyb3VuZDp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1m'@; put 'b250LWNvbG9yKTtib3JkZXI6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMTAwKSBzb2xpZCB2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctYm9yZGVyLWNvbG9yKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWl0ZW1zIC5hbGVydC1pdGVtIGE6'@; put 'bm90KC5iYWRnZSl7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWZvbnQtY29sb3IpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuYWxlcnQtaXRlbXMgLmFsZXJ0LWl0ZW0gYTpub3QoLmJhZGdlKSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5p'@; put 'bmcgLmFsZXJ0LWl0ZW1zIC5hbGVydC1pdGVtIGE6bm90KC5iYWRnZSkgY2xyLWljb257ZmlsbDp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctZm9udC1jb2xvcil9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5hbGVydC1pY29ue2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQt'@; put 'd2FybmluZy1pY29uLWNvbG9yKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWFjdGlvbnMgLmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWFjdGlvbi1jb2xvcik7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1h'@; put 'cHAtYWxlcnQtd2FybmluZy1hY3Rpb24tYWN0aXZlLWNvbG9yKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWFjdGlvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmct'@; put 'YWN0aW9uLWNvbG9yKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWFjdGlvbi5idG4sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGUuYnRue2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctYWN0aW9uLWNv'@; put 'bG9yKTtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctYWN0aW9uLWNvbG9yKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWFjdGlvbi5idG4gY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rpb24uYnRuIGNsci1p'@; put 'Y29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuZHJvcGRvd24tdG9nZ2xlLmJ0biBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZS5idG4gY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWFjdGlv'@; put 'bi1jb2xvcil9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1hY3Rpb24t'@; put 'Y29sb3IpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuYWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5p'@; put 'bmcgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZlIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmUgY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWFjdGlvbi1jb2xvcil9LmFsZXJ0LWFw'@; put 'cC1sZXZlbC5hbGVydC13YXJuaW5nIC5jbG9zZXtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctY2xvc2UtaWNvbi1jb2xvcil9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5jbG9zZSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmNsb3Nl'@; put 'IGNsci1pY29ue2ZpbGw6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWNsb3NlLWljb24tY29sb3IpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuY2xvc2U6Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5jbG9zZTpob3ZlciwuYWxlcnQtYXBwLWxldmVs'@; put 'LmFsZXJ0LXdhcm5pbmcgLmNsb3NlOmFjdGl2ZXtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctY2xvc2UtaWNvbi1ob3Zlci1jb2xvcil9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5jbG9zZTpmb2N1cyBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdh'@; put 'cm5pbmcgLmNsb3NlOmZvY3VzIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuY2xvc2U6aG92ZXIgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5jbG9zZTpob3ZlciBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcg'@; put 'LmNsb3NlOmFjdGl2ZSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmNsb3NlOmFjdGl2ZSBjbHItaWNvbntmaWxsOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1jbG9zZS1pY29uLWhvdmVyLWNvbG9yKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3N7'@; put 'YmFja2dyb3VuZDp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1mb250LWNvbG9yKTtib3JkZXI6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMTAwKSBzb2xpZCB2YXIoLS1jbHItYXBwLWFs'@; put 'ZXJ0LXN1Y2Nlc3MtYm9yZGVyLWNvbG9yKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWl0ZW1zIC5hbGVydC1pdGVtIGE6bm90KC5iYWRnZSl7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWZvbnQtY29sb3IpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQt'@; put 'c3VjY2VzcyAuYWxlcnQtaXRlbXMgLmFsZXJ0LWl0ZW0gYTpub3QoLmJhZGdlKSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWl0ZW1zIC5hbGVydC1pdGVtIGE6bm90KC5iYWRnZSkgY2xyLWljb257ZmlsbDp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nl'@; put 'c3MtZm9udC1jb2xvcil9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1pY29ue2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1pY29uLWNvbG9yKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWFjdGlvbnMgLmRyb3Bkb3duIC5kcm9w'@; put 'ZG93bi10b2dnbGV7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWFjdGlvbi1jb2xvcik7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1hY3Rpb24tYWN0aXZlLWNvbG9yKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWFjdGlv'@; put 'biwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWNvbG9yKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWFjdGlvbi5idG4sLmFsZXJ0LWFwcC1sZXZlbC5h'@; put 'bGVydC1zdWNjZXNzIC5kcm9wZG93bi10b2dnbGUuYnRue2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWNvbG9yKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nl'@; put 'c3MgLmFsZXJ0LWFjdGlvbi5idG4gY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb24uYnRuIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlLmJ0biBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVs'@; put 'LmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZS5idG4gY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWFjdGlvbi1jb2xvcil9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQtYXBwLWxldmVs'@; put 'LmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1hY3Rpb24tY29sb3IpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuYWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUgY2RzLWljb24sLmFsZXJ0LWFw'@; put 'cC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZlIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24t'@; put 'dG9nZ2xlLmJ0bjphY3RpdmUgY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWFjdGlvbi1jb2xvcil9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5jbG9zZXtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtY2xvc2UtaWNvbi1jb2xvcil9'@; put 'LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5jbG9zZSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmNsb3NlIGNsci1pY29ue2ZpbGw6dmFyKC0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWNsb3NlLWljb24tY29sb3IpfS5hbGVydC1hcHAtbGV2ZWwuYWxl'@; put 'cnQtc3VjY2VzcyAuY2xvc2U6Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5jbG9zZTpob3ZlciwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmNsb3NlOmFjdGl2ZXtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtY2xvc2UtaWNvbi1ob3Zlci1j'@; put 'b2xvcil9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5jbG9zZTpmb2N1cyBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmNsb3NlOmZvY3VzIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuY2xvc2U6aG92ZXIgY2RzLWljb24s'@; put 'LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5jbG9zZTpob3ZlciBjbHItaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmNsb3NlOmFjdGl2ZSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmNsb3NlOmFjdGl2ZSBjbHItaWNvbntmaWxs'@; put 'OnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1jbG9zZS1pY29uLWhvdmVyLWNvbG9yKX0uYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtc3thbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTQpfS5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW17'@; put 'anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWluLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpfS5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmFsZXJ0LWFjdGlvbnN7cGFkZGluZzowfS5hbGVydC1hcHAtbGV2ZWwgLmNsb3Nle21hcmdpbjp2'@; put 'YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTQpIDB9LmFsZXJ0LXNtIC5hbGVydC1pdGVtcyAuYWxlcnQtaXRlbXttaW4taGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyl9LmFsZXJ0LXNtIC5hbGVydC1pY29uLXdyYXBwZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtYmFzaXM6dmFyKC0tY2RzLWds'@; put 'b2JhbC1zcGFjZS03KTtoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KX0uYWxlcnQtc20gLmFsZXJ0LWljb257aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTttaW4taGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3Bh'@; put 'Y2UtNyk7bWluLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyl9LmFsZXJ0LXNtIC5hbGVydC1pdGVtPnNwYW4sLmFsZXJ0LXNtIC5hbGVydC1pdGVtIC5hbGVydC10ZXh0LC5hbGVydC1zbSAuYWxlcnQtaXRlbSAuYWxlcnQtYWN0aW9uc3tmb250LXNpemU6dmFyKC0tY2RzLWFsaWFz'@; put 'LXR5cG9ncmFwaHktc2Vjb25kYXJ5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWNvbmRhcnktbGluZS1oZWlnaHQpO2xldHRlci1z'@; put 'cGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFyeS1sZXR0ZXItc3BhY2luZyk7cGFkZGluZzowfS5hbGVydC1zbSAuY2xvc2V7bWFyZ2luOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMykgMH0uYWxlcnQtc20gLmFsZXJ0LXNwaW5uZXIuc3Bpbm5lci1pbmxpbmV7aGVp'@; put 'Z2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTttaW4taGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7bWluLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyl9LmFsZXJ0LXNtIC5hbGVydC1zcGlubmVyLnNwaW5u'@; put 'ZXItaW5saW5lOmJlZm9yZSwuYWxlcnQtc20gLmFsZXJ0LXNwaW5uZXIuc3Bpbm5lci1pbmxpbmU6YWZ0ZXJ7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTttaW4taGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7'@; put 'bWluLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyl9LmFsZXJ0LXNtLmFsZXJ0LWxpZ2h0d2VpZ2h0e2JhY2tncm91bmQ6MCAwO2JvcmRlcjowfS5hbGVydC1zbS5hbGVydC1saWdodHdlaWdodCAuYWxlcnQtaXRlbXN7Z2FwOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMyl9LmFsZXJ0'@; put 'LXNtLmFsZXJ0LWxpZ2h0d2VpZ2h0IC5hbGVydC1pdGVtcyAuYWxlcnQtaXRlbXtwYWRkaW5nOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMykgMH0uYWxlcnQtc20uYWxlcnQtbGlnaHR3ZWlnaHQgLmFsZXJ0LWl0ZW1zIC5hbGVydC1pdGVtPnNwYW4sLmFsZXJ0LXNtLmFsZXJ0LWxpZ2h0d2Vp'@; put 'Z2h0IC5hbGVydC1pdGVtcyAuYWxlcnQtaXRlbSAuYWxlcnQtYWN0aW9ucywuYWxlcnQtc20uYWxlcnQtbGlnaHR3ZWlnaHQgLmFsZXJ0LWl0ZW1zIC5hbGVydC1pdGVtIC5hbGVydC10ZXh0e2ZvbnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jYXB0aW9uLWZvbnQtc2l6ZSk7'@; put 'Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY2FwdGlvbi1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY2FwdGlvbi1saW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY2Fw'@; put 'dGlvbi1sZXR0ZXItc3BhY2luZyl9LmFsZXJ0LXNtLmFsZXJ0LWxpZ2h0d2VpZ2h0IC5hbGVydC1pdGVtcyAuYWxlcnQtaXRlbSAuYWxlcnQtaWNvbi13cmFwcGVye2ZsZXgtYmFzaXM6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTtoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KX0u'@; put 'YWxlcnQtc20uYWxlcnQtbGlnaHR3ZWlnaHQgLmNsb3Nle2Rpc3BsYXk6bm9uZX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjc2OHB4KXsuYWxlcnQgLmFsZXJ0LWl0ZW17ZmxleC13cmFwOndyYXB9LmFsZXJ0IC5hbGVydC1pdGVtIC5hbGVydC10ZXh0e21heC13aWR0aDo5MCU7d2lk'@; put 'dGg6OTAlO2ZsZXgtYmFzaXM6OTAlfS5hbGVydCAuYWxlcnQtaXRlbSAuYWxlcnQtYWN0aW9uc3tmbGV4OjEgMCAxMDAlfS5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWFjdGlvbnN7bWFyZ2luLWxlZnQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMil9fS5hbGVydC1oaWRkZW57ZGlzcGxheTpu'@; put 'b25lfS5hbGVydHMgLmFsZXJ0e21hcmdpbi10b3A6MH0uYWxlcnRzIC5hbGVydHMtd3JhcHBlcntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93fS5hbGVydHMgLmFsZXJ0cy13cmFwcGVyIGNsci1hbGVydHtmbGV4OjEgMSAxMDAlfS5hbGVydHMuYWxlcnQtaW5mb3tiYWNrZ3JvdW5k'@; put 'OnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1wYWdlci1iZy1jb2xvcil9LmFsZXJ0cy5hbGVydC13YXJuaW5ne2JhY2tncm91bmQ6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLXBhZ2VyLWJnLWNvbG9yKX0uYWxlcnRzLmFsZXJ0LWRhbmdlcntiYWNrZ3JvdW5kOnZhcigtLWNsci1hcHAt'@; put 'YWxlcnQtZGFuZ2VyLXBhZ2VyLWJnLWNvbG9yKX0uYWxlcnRzLmFsZXJ0LXN1Y2Nlc3N7YmFja2dyb3VuZDp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtcGFnZXItYmctY29sb3IpfS5hbGVydHMuYWxlcnQtbmV1dHJhbHtiYWNrZ3JvdW5kOnZhcigtLWNsci1hcHAtYWxlcnQtbmV1dHJh'@; put 'bC1wYWdlci1iZy1jb2xvcil9LmFsZXJ0cy1wYWdlcntjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXBhZ2VyLXRleHQtY29sb3IpO21pbi1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMSk7ZmxleDoxIDAgdmFyKC0tY2xyLWFwcC1hbGVydC1wYWdlci13aWR0aCl9LmFsZXJ0LWlu'@; put 'Zm8gLmFsZXJ0cy1wYWdlcntjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tcGFnZXItZm9udC1jb2xvcil9LmFsZXJ0LXdhcm5pbmcgLmFsZXJ0cy1wYWdlcntjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctcGFnZXItZm9udC1jb2xvcil9LmFsZXJ0LWRhbmdlciAuYWxl'@; put 'cnRzLXBhZ2Vye2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLXBhZ2VyLWZvbnQtY29sb3IpfS5hbGVydC1zdWNjZXNzIC5hbGVydHMtcGFnZXJ7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLXBhZ2VyLWZvbnQtY29sb3IpfS5hbGVydC1uZXV0cmFsIC5hbGVydHMt'@; put 'cGFnZXJ7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1uZXV0cmFsLXBhZ2VyLWZvbnQtY29sb3IpfS5hbGVydHMtcGFnZXItYnV0dG9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lO21h'@; put 'cmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQ6MCAwO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtcGFnZXItdGV4dC1jb2xvcik7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpj'@; put 'ZW50ZXI7aGVpZ2h0OnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1zdGFuZGFyZC1oZWlnaHQpfWJ1dHRvbi5hbGVydHMtcGFnZXItYnV0dG9ue2N1cnNvcjpwb2ludGVyfS5hbGVydHMtcGFnZXItYnV0dG9uIGNkcy1pY29uLC5hbGVydHMtcGFnZXItYnV0dG9uIGNsci1pY29ue2NvbG9yOnZh'@; put 'cigtLWNsci1hcHAtYWxlcnQtcGFnZXItdGV4dC1jb2xvcil9LmFsZXJ0LWluZm8gLmFsZXJ0cy1wYWdlci1idXR0b24gY2RzLWljb24sLmFsZXJ0LWluZm8gLmFsZXJ0cy1wYWdlci1idXR0b24gY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLXBhZ2VyLWZvbnQtY29s'@; put 'b3IpfS5hbGVydC13YXJuaW5nIC5hbGVydHMtcGFnZXItYnV0dG9uIGNkcy1pY29uLC5hbGVydC13YXJuaW5nIC5hbGVydHMtcGFnZXItYnV0dG9uIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1wYWdlci1mb250LWNvbG9yKX0uYWxlcnQtZGFuZ2VyIC5hbGVy'@; put 'dHMtcGFnZXItYnV0dG9uIGNkcy1pY29uLC5hbGVydC1kYW5nZXIgLmFsZXJ0cy1wYWdlci1idXR0b24gY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1kYW5nZXItcGFnZXItZm9udC1jb2xvcil9LmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0cy1wYWdlci1idXR0b24gY2RzLWljb24s'@; put 'LmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0cy1wYWdlci1idXR0b24gY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLXBhZ2VyLWZvbnQtY29sb3IpfS5hbGVydC1uZXV0cmFsIC5hbGVydHMtcGFnZXItYnV0dG9uIGNkcy1pY29uLC5hbGVydC1uZXV0cmFsIC5hbGVydHMt'@; put 'cGFnZXItYnV0dG9uIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtbmV1dHJhbC1wYWdlci1mb250LWNvbG9yKX0uYWxlcnRzLXBhZ2VyLWNvbnRyb2x7ZGlzcGxheTpmbGV4O3doaXRlLXNwYWNlOm5vd3JhcDtoZWlnaHQ6MTAwJTthbGlnbi1pdGVtczpjZW50ZXI7dGV4dC1h'@; put 'bGlnbjpjZW50ZXI7cGFkZGluZzowIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSl9LmFsZXJ0cy1wYWdlci1jb250cm9sPip7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXg6MSAxIGF1dG99OnJvb3QgW2Nkcy10aGVtZV17LS1jbHItY2FyZC1iZy1jb2xv'@; put 'cjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWNvbnRhaW5lci1iYWNrZ3JvdW5kKTstLWNsci1jYXJkLWRpdmlkZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItY29sb3IpOy0tY2xyLWNhcmQtdGl0bGUtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3It'@; put 'NDAwKTstLWNsci1jYXJkLXRpdGxlLWZvbnQtd2VpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zZWN0aW9uLWZvbnQtd2VpZ2h0KTstLWNsci1jYXJkLWJvcmRlci1yYWRpdXM6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItcmFkaXVzLTEwMCk7LS1jbHItY2FyZC1ib3Jk'@; put 'ZXItd2lkdGg6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMTAwKTstLWNsci1jYXJkLWJvcmRlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1jb2xvcik7LS1jbHItY2FyZC1ib3gtc2hhZG93OnZhcigtLWNkcy1hbGlhcy1vYmplY3Qtc2hhZG93LTMw'@; put 'MCk7LS1jbHItY2FyZC1jbGlja2FibGUtYm9yZGVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1oaWdobGlnaHQpOy0tY2xyLWNhcmQtY2xpY2thYmxlLWJveC1zaGFkb3c6MCAwIDAgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xKSB2YXIoLS1j'@; put 'bHItY2FyZC1jbGlja2FibGUtYm9yZGVyLWNvbG9yKTstLWNsci1jYXJkLWhlYWRlci10aXRsZS1jb2xvcjp2YXIoLS1jbHItY2FyZC10aXRsZS1jb2xvcik7LS1jbHItY2FyZC1jb250ZW50LXRpdGxlLWNvbG9yOnZhcigtLWNsci1jYXJkLXRpdGxlLWNvbG9yKTstLWNsci1jYXJkLXRleHQt'@; put 'Y29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNDAwKX0uY2FyZHtib3gtc2hhZG93OnZhcigtLWNsci1jYXJkLWJveC1zaGFkb3cpO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWNhcmQtYm9yZGVyLXJhZGl1cyk7Ym9yZGVyOnZhcigtLWNsci1jYXJkLWJvcmRlci13aWR0'@; put 'aCkgc29saWQgdmFyKC0tY2xyLWNhcmQtYm9yZGVyLWNvbG9yKX0uY2FyZC5jbGlja2FibGU6aG92ZXJ7Ym94LXNoYWRvdzp2YXIoLS1jbHItY2FyZC1jbGlja2FibGUtYm94LXNoYWRvdyk7Ym9yZGVyOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTEwMCkgc29saWQgdmFy'@; put 'KC0tY2xyLWNhcmQtY2xpY2thYmxlLWJvcmRlci1jb2xvcik7Y3Vyc29yOnBvaW50ZXI7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dHJhbnNpdGlvbjpib3JkZXIgLjJzIGVhc2UsYm94LXNoYWRvdyAuMnMgZWFzZSx0cmFuc2Zvcm0gLjJzIGVhc2V9LmNhcmQtYmxvY2sgLmNhcmQtZGl2aWRlciwu'@; put 'Y2FyZCAuY2FyZC10aXRsZSwuY2FyZCAuY2FyZC10ZXh0LC5jYXJkIC5jYXJkLW1lZGlhLWJsb2NrLC5jYXJkIC5saXN0LC5jYXJkIC5saXN0LXVuc3R5bGVke21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyl9LmNhcmQtYmxvY2sgLmNhcmQtZGl2'@; put 'aWRlcjpsYXN0LWNoaWxkLC5jYXJkIC5jYXJkLXRpdGxlOmxhc3QtY2hpbGQsLmNhcmQgLmNhcmQtdGV4dDpsYXN0LWNoaWxkLC5jYXJkIC5jYXJkLW1lZGlhLWJsb2NrOmxhc3QtY2hpbGQsLmNhcmQgLmxpc3Q6bGFzdC1jaGlsZCwuY2FyZCAubGlzdC11bnN0eWxlZDpsYXN0LWNoaWxke21h'@; put 'cmdpbi1ib3R0b206MH0uY2FyZC5jYXJkLWltZz5pbWcsLmNhcmQ+LmNhcmQtaW1nOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQ+aW1nLC5jYXJkLWltZz5pbWd7ZGlzcGxheTpibG9jaztoZWlnaHQ6YXV0bzt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlfS5jYXJke3Bvc2l0aW9uOnJlbGF0aXZl'@; put 'O2Rpc3BsYXk6YmxvY2s7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItY2FyZC1iZy1jb2xvcik7d2lkdGg6MTAwJTttYXJnaW4tdG9wOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSl9LmNhcmQgLmFsZXJ0e21hcmdpbjowIDAgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KSAwfS5jYXJkIC5i'@; put 'dG4tbGlua3ttaW4td2lkdGg6MDtwYWRkaW5nOjB9LmNhcmQuY2xpY2thYmxle2NvbG9yOmluaGVyaXR9LmNhcmQ+Lmxpc3QsLmNhcmQ+Lmxpc3QtdW5zdHlsZWR7cGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTYpIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOCl9LmNhcmQgLmxpc3Qt'@; put 'Z3JvdXB7cGFkZGluZy1sZWZ0OjA7bWFyZ2luLWJvdHRvbTowO2xpc3Qtc3R5bGU6bm9uZX0uY2FyZCAubGlzdC1ncm91cC1pdGVte2ZvbnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1ib2R5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFw'@; put 'aHktYm9keS1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktYm9keS1saW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktYm9keS1sZXR0ZXItc3BhY2luZyk7cGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFs'@; put 'LXNwYWNlLTcpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNhcmQtYmctY29sb3IpO2JvcmRlci1ib3R0b206dmFyKC0tY2xyLWNhcmQtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1jbHItY2FyZC1ib3JkZXItY29sb3IpfUBzdXBwb3J0cyAoLW1zLWltZS1hbGlnbjphdXRvKXsuY2Fy'@; put 'ZCAuZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZTphZnRlcntkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tdG9wOmNhbGMoLTEqdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KSl9fS5jYXJkLWJsb2Nre3BhZGRpbmc6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KX0uY2FyZC1mb290ZXJ7ZGlz'@; put 'cGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztnYXA6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KTtwYWRkaW5nOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KX1oMy5jYXJkLWhlYWRlciwuY2FyZC1oZWFkZXJ7Zm9udC1zaXplOnZhcigtLWNk'@; put 'cy1hbGlhcy10eXBvZ3JhcGh5LXNlY3Rpb24tZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWN0aW9uLWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWN0aW9uLWxpbmUtaGVpZ2h0KTtsZXR0ZXIt'@; put 'c3BhY2luZzp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWN0aW9uLWxldHRlci1zcGFjaW5nKTtwYWRkaW5nOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7Y29sb3I6dmFyKC0tY2xyLWNhcmQtaGVhZGVyLXRpdGxlLWNvbG9yKX1oNC5jYXJkLXRpdGxlLC5jYXJkLXRpdGxle2ZvbnQt'@; put 'c2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zdWJzZWN0aW9uLWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc3Vic2VjdGlvbi1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc3Vic2VjdGlv'@; put 'bi1saW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc3Vic2VjdGlvbi1sZXR0ZXItc3BhY2luZyk7Y29sb3I6dmFyKC0tY2xyLWNhcmQtY29udGVudC10aXRsZS1jb2xvcil9aDEuY2FyZC1oZWFkZXIsaDEuY2FyZC10aXRsZSxoMi5jYXJkLWhl'@; put 'YWRlcixoMi5jYXJkLXRpdGxlLGgzLmNhcmQtaGVhZGVyLGgzLmNhcmQtdGl0bGUsaDQuY2FyZC1oZWFkZXIsaDQuY2FyZC10aXRsZSxoNS5jYXJkLWhlYWRlcixoNS5jYXJkLXRpdGxlLGg2LmNhcmQtaGVhZGVyLGg2LmNhcmQtdGl0bGV7bWFyZ2luLXRvcDowfS5jYXJkLXRleHR7Zm9udC1z'@; put 'aXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWJvZHktZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1ib2R5LWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1ib2R5LWxpbmUtaGVpZ2h0KTtsZXR0'@; put 'ZXItc3BhY2luZzp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1ib2R5LWxldHRlci1zcGFjaW5nKTtjb2xvcjp2YXIoLS1jbHItY2FyZC10ZXh0LWNvbG9yKX0uY2FyZC1pbWc6Zmlyc3QtY2hpbGQ+aW1ne2JvcmRlci1yYWRpdXM6MDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWNs'@; put 'ci1jYXJkLWJvcmRlci1yYWRpdXMpO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLWNsci1jYXJkLWJvcmRlci1yYWRpdXMpfS5jYXJkLWltZzpsYXN0LWNoaWxkPmltZ3tib3JkZXItcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1jbHItY2FyZC1ib3JkZXIt'@; put 'cmFkaXVzKTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czp2YXIoLS1jbHItY2FyZC1ib3JkZXItcmFkaXVzKX0uY2FyZC5jYXJkLWltZz5pbWcsLmNhcmQ+LmNhcmQtaW1nOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQ+aW1ne2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWNhcmQtYm9yZGVyLXJh'@; put 'ZGl1cyl9LmNhcmQtYmxvY2sgLmJ0biwuY2FyZC1ibG9jayAuYnRuLmJ0bi1saW5rLC5jYXJkLWJsb2NrIC5jYXJkLWxpbmssLmNhcmQtZm9vdGVyIC5idG4sLmNhcmQtZm9vdGVyIC5idG4uYnRuLWxpbmssLmNhcmQtZm9vdGVyIC5jYXJkLWxpbmssLmNhcmQtYmxvY2sgLmJ0bi1ncm91cCAu'@; put 'YnRuLC5jYXJkLWZvb3RlciAuYnRuLWdyb3VwIC5idG57bWFyZ2luOjB9LmNhcmQtaGVhZGVyLC5jYXJkLWJsb2Nre2JvcmRlci1ib3R0b206dmFyKC0tY2xyLWNhcmQtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1jbHItY2FyZC1ib3JkZXItY29sb3IpfS5jYXJkLWhlYWRlcjpsYXN0LWNo'@; put 'aWxkLC5jYXJkLWJsb2NrOmxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbTpub25lfS5jYXJkLWRpdmlkZXJ7ZGlzcGxheTpibG9jaztib3JkZXItYm90dG9tOnZhcigtLWNsci1jYXJkLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tY2xyLWNhcmQtZGl2aWRlci1jb2xvcil9LmNhcmQtYmxvY2sg'@; put 'LmNhcmQtZGl2aWRlcnttYXJnaW4tbGVmdDpjYWxjKC0xKnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOCkpO21hcmdpbi1yaWdodDpjYWxjKC0xKnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOCkpO3dpZHRoOmF1dG99LmNhcmQtaGVhZGVyKy5jYXJkLWRpdmlkZXIsLmNhcmQtYmxvY2srLmNhcmQt'@; put 'ZGl2aWRlcntkaXNwbGF5Om5vbmV9LmNhcmQtbWVkaWEtYmxvY2t7ZGlzcGxheTpmbGV4fS5jYXJkLW1lZGlhLWJsb2NrIC5jYXJkLW1lZGlhLWltYWdle2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZsZXg6MCAwIGF1dG87aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTMpO3dpZHRoOnZh'@; put 'cigtLWNkcy1nbG9iYWwtc3BhY2UtMTMpO21heC1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMyk7bWF4LXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTMpfS5jYXJkLW1lZGlhLWJsb2NrIC5jYXJkLW1lZGlhLWRlc2NyaXB0aW9ue2ZvbnQtc2l6ZTp2YXIoLS1jZHMtYWxp'@; put 'YXMtdHlwb2dyYXBoeS1ib2R5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktYm9keS1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktYm9keS1saW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0t'@; put 'Y2RzLWFsaWFzLXR5cG9ncmFwaHktYm9keS1sZXR0ZXItc3BhY2luZyk7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtjb2xvcjp2YXIoLS1jbHItY2FyZC10ZXh0LWNvbG9yKTttYXJnaW4tbGVmdDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpfS5jYXJkLW1lZGlhLWJsb2Nr'@; put 'IC5jYXJkLW1lZGlhLXRpdGxlLC5jYXJkLW1lZGlhLWJsb2NrIHNwYW4sLmNhcmQtbWVkaWEtYmxvY2sgLmNhcmQtbWVkaWEtdGV4dHtkaXNwbGF5OmlubGluZS1ibG9ja30uY2FyZC1tZWRpYS1ibG9jay53cmFwe2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uY2FyZC1tZWRpYS1ibG9jay53cmFw'@; put 'IC5jYXJkLW1lZGlhLWRlc2NyaXB0aW9ue21hcmdpbi1sZWZ0OjA7bWFyZ2luLXRvcDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpfS5jYXJkLWJsb2NrPi5saXN0LC5jYXJkLWJsb2NrPi5saXN0LXVuc3R5bGVke3BhZGRpbmc6MH1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjU3NnB4'@; put 'KXsuY2FyZC1jb2x1bW5ze2NvbHVtbi1jb3VudDozO2NvbHVtbi1nYXA6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KTticmVhay1pbnNpZGU6YXZvaWQ7Y29sdW1uLWZpbGw6YmFsYW5jZTstd2Via2l0LXBlcnNwZWN0aXZlOjF9LmNhcmQtY29sdW1ucy5jYXJkLWNvbHVtbnMtMntjb2x1bW4t'@; put 'Y291bnQ6Mn0uY2FyZC1jb2x1bW5zLmNhcmQtY29sdW1ucy00e2NvbHVtbi1jb3VudDo0fS5jYXJkLWNvbHVtbnMgLmNhcmR7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNCl9LmNhcmQtY29sdW1ucyAuY2xpY2thYmxle2JhY2tmYWNlLXZpc2li'@; put 'aWxpdHk6aGlkZGVufX1Ac3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246YXV0byl7LmNhcmQgLmNoZWNrYm94LmJ0biBsYWJlbCwuY2FyZCAuY2hlY2tib3gtaW5saW5lLmJ0biBsYWJlbCwuY2FyZCAucmFkaW8uYnRuIGxhYmVsLC5jYXJkIC5yYWRpby1pbmxpbmUuYnRuIGxhYmVse2Rpc3BsYXk6'@; put 'aW5saW5lLWJsb2NrfX06cm9vdCBbY2RzLXRoZW1lXXstLWNsci1uYXYtYm94LXNoYWRvdy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1jb2xvcik7LS1jbHItbmF2LWFjdGl2ZS1iZy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91'@; put 'bmQtYWN0aXZlKTstLWNsci1uYXYtc2VsZWN0ZWQtYmctY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1vcGFjaXR5LTApOy0tY2xyLW5hdi1ob3Zlci1iZy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtaG92ZXIpOy0tY2xyLW5hdi1zZWxl'@; put 'Y3RlZC1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1zZWxlY3RlZC1ob3Zlcik7LS1jbHItbmF2LXNlbGVjdGVkLWFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rp'@; put 'b24tYmFja2dyb3VuZC1zZWxlY3RlZC1hY3RpdmUpOy0tY2xyLW5hdi1saW5rLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tY29sb3IpOy0tY2xyLW5hdi1saW5rLWFjdGl2ZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yLWFj'@; put 'dGl2ZSl9QG1lZGlhIHNjcmVlbntzZWN0aW9uW2FyaWEtaGlkZGVuPXRydWVde2Rpc3BsYXk6bm9uZX19W2RhdGEtaGlkZGVuPXRydWVde2Rpc3BsYXk6bm9uZX1idXR0b24ubmF2LWxpbmt7Ym9yZGVyLXJhZGl1czowO3RleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7bWluLXdpZHRoOjB9LnRh'@; put 'YnMtb3ZlcmZsb3d7cG9zaXRpb246cmVsYXRpdmV9LnRhYnMtb3ZlcmZsb3cgLmRyb3Bkb3duLW1lbnV7cGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTApO2JveC1zaGFkb3c6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1zaGFkb3ctMTAwKTtvdmVyZmxvdzpoaWRkZW59LnRhYnMtb3Zl'@; put 'cmZsb3cgLmJ0bntsaW5lLWhlaWdodDpjYWxjKDIwKigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTtmb250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZm9udC1zaXplLTQpO3BhZGRpbmc6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KSB2YXIoLS1jZHMtZ2xvYmFsLXNw'@; put 'YWNlLTYpO2JvcmRlci1yYWRpdXM6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0wKX0udGFiLWNvbnRlbnR7ZGlzcGxheTppbmxpbmV9XzotbXMtZnVsbHNjcmVlbiAudGFiLWNvbnRlbnQsOnJvb3QgLnRhYi1jb250ZW50e2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEwMCV9LnRhYnMtdmVy'@; put 'dGljYWx7ZGlzcGxheTpmbGV4fS50YWJzLXZlcnRpY2FsPi5uYXZ7aGVpZ2h0OmF1dG87Ym94LXNoYWRvdzpub25lO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpzdHJldGNoO21hcmdpbi1yaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpO292ZXJmbG93OmF1dG87Zmxl'@; put 'eC1zaHJpbms6MDtwYWRkaW5nOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMyk7d2lkdGg6Y2FsYygyNDAqKDFyZW0vdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpO21pbi13aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEyKTtnYXA6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KX0udGFicy12'@; put 'ZXJ0aWNhbD4ubmF2IC5uYXYtbGlua3t0ZXh0LWFsaWduOmxlZnQ7cGFkZGluZzowIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNik7Ym9yZGVyOjA7ZmxleC1zaHJpbms6MDttYXJnaW4tdG9wOjA7bWFyZ2luLWxlZnQ6MDt3aWR0aDoxMDAlfS50YWJzLXZlcnRpY2FsPi5uYXYgLm5hdi1saW5r'@; put 'LmJ0bnttYXJnaW4tYm90dG9tOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSl9LnRhYnMtdmVydGljYWw+Lm5hdiAubmF2LWxpbmsuYWN0aXZlOmJlZm9yZSwudGFicy12ZXJ0aWNhbD4ubmF2IC5uYXYtbGluazpob3ZlcjpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6'@; put 'MDtib3R0b206MDtsZWZ0OjA7d2lkdGg6MTAwJTtib3JkZXI6MDtib3JkZXItbGVmdDp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0aC0zMDApIHNvbGlkIHZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1oaWdobGlnaHQpO3RyYW5zaXRpb246'@; put 'Ym9yZGVyLWxlZnQgLjJzIGVhc2UtaW59LnRhYnMtYWN0aW9uc3tkaXNwbGF5OmlubGluZS1mbGV4O3dpZHRoOjEwMCV9LnRhYnMtYWN0aW9uc1twb3NpdGlvbn49bGVmdF17anVzdGlmeS1jb250ZW50OnN0YXJ0fS50YWJzLWFjdGlvbnNbcG9zaXRpb25+PXJpZ2h0XXtqdXN0aWZ5LWNvbnRl'@; put 'bnQ6ZW5kfTpyb290IFtjZHMtdGhlbWVdey0tY2xyLWRyb3Bkb3duLWFjdGl2ZS10ZXh0LWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tY29sb3ItYWN0aXZlKTstLWNsci1kcm9wZG93bi1iZy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWNvbnRhaW5lci1i'@; put 'YWNrZ3JvdW5kKTstLWNsci1kcm9wZG93bi1ib3JkZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItY29sb3IpOy0tY2xyLWRyb3Bkb3duLWRpdmlkZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItY29sb3ItdGludCk7LS1jbHItZHJvcGRvd24tZGl2'@; put 'aWRlci1ib3JkZXItd2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xKTstLWNsci1kcm9wZG93bi1jaGlsZC1ib3JkZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItY29sb3IpOy0tY2xyLWRyb3Bkb3duLWJnLWhvdmVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmpl'@; put 'Y3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1ob3Zlcik7LS1jbHItZHJvcGRvd24tc2VsZWN0aW9uLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1zZWxlY3RlZCk7LS1jbHItZHJvcGRvd24tdGV4dC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2Jq'@; put 'ZWN0LWludGVyYWN0aW9uLWNvbG9yKTstLWNsci1kcm9wZG93bi1oZWFkZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNDAwKTstLWNsci1kcm9wZG93bi1oZWFkZXItZm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtbWVk'@; put 'aXVtKTstLWNsci1kcm9wZG93bi1pdGVtLWZvbnQtd2VpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFyeS1mb250LXdlaWdodCk7LS1jbHItZHJvcGRvd24taXRlbS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yKTstLWNsci1kcm9w'@; put 'ZG93bi1pdGVtLWJnLWNvbG9yOnRyYW5zcGFyZW50Oy0tY2xyLWRyb3Bkb3duLWl0ZW0taG92ZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvci1ob3Zlcik7LS1jbHItZHJvcGRvd24taXRlbS1ob3Zlci1iZy1jb2xvcjp2YXIoIC0tY2xyLWRyb3Bkb3du'@; put 'LWJnLWhvdmVyLWNvbG9yICk7LS1jbHItZHJvcGRvd24taXRlbS1hY3RpdmUtY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvci1hY3RpdmUpOy0tY2xyLWRyb3Bkb3duLWl0ZW0tYWN0aXZlLWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJh'@; put 'Y3Rpb24tYmFja2dyb3VuZC1hY3RpdmUpOy0tY2xyLWRyb3Bkb3duLWl0ZW0tc2VsZWN0ZWQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvci1zZWxlY3RlZCk7LS1jbHItZHJvcGRvd24taXRlbS1zZWxlY3RlZC1iZy1jb2xvcjp2YXIoIC0tY2xyLWRyb3Bk'@; put 'b3duLXNlbGVjdGlvbi1jb2xvciApOy0tY2xyLWRyb3Bkb3duLWl0ZW0tc2VsZWN0ZWQtaG92ZXItYmctY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLXNlbGVjdGVkLWhvdmVyKTstLWNsci1kcm9wZG93bi1pdGVtLXNlbGVjdGVkLWFjdGl2ZS1i'@; put 'Zy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtc2VsZWN0ZWQtYWN0aXZlKTstLWNsci1kcm9wZG93bi1pdGVtLWRpc2FibGVkLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tY29sb3ItZGlzYWJsZWQpOy0tY2xyLWRy'@; put 'b3Bkb3duLWl0ZW0tZGlzYWJsZWQtYmctY29sb3I6dHJhbnNwYXJlbnR9LmRyb3Bkb3duLW1lbnUgLmJ0biwuZHJvcGRvd24tbWVudSAuYnRuLXNlY29uZGFyeSwuZHJvcGRvd24tbWVudSAuYnRuLWluZm8sLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLC5kcm9wZG93bi1tZW51IC5idG4t'@; put 'b3V0bGluZS1wcmltYXJ5LC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zZWNvbmRhcnksLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmcsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLWRhbmdlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc3VjY2VzcywuZHJv'@; put 'cGRvd24tbWVudSAuYnRuLWRhbmdlciwuZHJvcGRvd24tbWVudSAuYnRuLXByaW1hcnksLmRyb3Bkb3duLW1lbnUgLmJ0bi13YXJuaW5nLC5kcm9wZG93bi1tZW51IC5idG4tc3VjY2VzcywuZHJvcGRvd24tbWVudSAuYnRuLWxpbmssLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW0sLmRy'@; put 'b3Bkb3duLW1lbnUgLmRyb3Bkb3duLWhlYWRlcntvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt0ZXh0LWFsaWduOmxlZnQ7anVzdGlmeS1jb250ZW50OnN0YXJ0fS5kcm9wZG93bntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9ja30uZHJvcGRvd24g'@; put 'LmRyb3Bkb3duLXRvZ2dsZXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46MDt3aGl0ZS1zcGFjZTpub3dyYXA7Y3Vyc29yOnBvaW50ZXJ9LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUgY2xyLWljb25bc2hhcGVePWNhcmV0'@; put 'XSwuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZSBjbHItaWNvbltzaGFwZV49YW5nbGVde2NvbG9yOmluaGVyaXQ7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTttaW4taGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2Ut'@; put 'Nyk7bWluLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyl9LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUgY2RzLWljb25bc2hhcGVePWNhcmV0XSwuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZSBjZHMtaWNvbltzaGFwZV49YW5nbGVde21hcmdpbi10b3A6dW5zZXQ7Y29sb3I6aW5o'@; put 'ZXJpdDtoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTt3aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpfS5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLmJ0bnt0ZXh0LW92ZXJmbG93OnVuc2V0fS5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLmJ0biBjbHItaWNvbnt0cmFu'@; put 'c2Zvcm06bm9uZX0uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5idG4gY2RzLWljb25bc2hhcGVePWNhcmV0XSwuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5idG4gY2xyLWljb25bc2hhcGVePWNhcmV0XSwuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5idG4gY2RzLWljb25bc2hhcGVe'@; put 'PWFuZ2xlXSwuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5idG4gY2xyLWljb25bc2hhcGVePWFuZ2xlXXtyaWdodDp2YXIoLS1jbHItYnRuLWhvcml6b250YWwtcGFkZGluZyl9LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGU6bm90KC5idG4pe3BhZGRpbmc6MDtjb2xvcjp2YXIoLS1jbHIt'@; put 'ZHJvcGRvd24tYWN0aXZlLXRleHQtY29sb3IpfS5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlOm5vdCguYnRuKSBjZHMtaWNvbltzaGFwZV49Y2FyZXRdLC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlOm5vdCguYnRuKSBjbHItaWNvbltzaGFwZV49Y2FyZXRdLC5kcm9wZG93biAuZHJvcGRv'@; put 'd24tdG9nZ2xlOm5vdCguYnRuKSBjZHMtaWNvbltzaGFwZV49YW5nbGVdLC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlOm5vdCguYnRuKSBjbHItaWNvbltzaGFwZV49YW5nbGVde3JpZ2h0OjB9LmRyb3Bkb3duIGJ1dHRvbi5kcm9wZG93bi10b2dnbGU6bm90KC5idG4pe2JhY2tncm91bmQ6'@; put 'MCAwO2JvcmRlcjowO2N1cnNvcjpwb2ludGVyO2NvbG9yOnZhcigtLWNsci1kcm9wZG93bi1hY3RpdmUtdGV4dC1jb2xvcil9LmRyb3Bkb3duLW1lbnU+KntkaXNwbGF5OmJsb2NrO3doaXRlLXNwYWNlOm5vd3JhcH0uZHJvcGRvd24tbWVudXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246'@; put 'Y29sdW1uO3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMDAlO2xlZnQ6MDttaW4td2lkdGg6Y2FsYygxMjAqKDFyZW0vdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpO21heC13aWR0aDpjYWxjKDM2MCooMXJlbS92YXIoLS1jZHMtZ2xvYmFsLWJhc2UpKSk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1j'@; put 'bHItZHJvcGRvd24tYmctY29sb3IpO2JvcmRlci13aWR0aDp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0aC0xMDApO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWJvcmRlci1jb2xvcik7Ym9yZGVyLXJhZGl1czp2YXIoLS1jZHMt'@; put 'YWxpYXMtb2JqZWN0LWJvcmRlci1yYWRpdXMtMTAwKTtib3gtc2hhZG93OnZhcigtLWNkcy1hbGlhcy1vYmplY3Qtc2hhZG93LTIwMCk7bWFyZ2luLXRvcDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTIpO3BhZGRpbmc6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KSAwO3Zpc2liaWxpdHk6aGlk'@; put 'ZGVuO3otaW5kZXg6MTA1MH0uZHJvcGRvd24tbWVudSAuZHJvcGRvd24taGVhZGVye2NvbG9yOnZhcigtLWNsci1kcm9wZG93bi1oZWFkZXItY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWNvbmRhcnktZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1j'@; put 'bHItZHJvcGRvd24taGVhZGVyLWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFyeS1sZXR0ZXItc3BhY2luZyk7cGFkZGluZzowIHZhcigtLWNkcy1nbG9iYWwt'@; put 'c3BhY2UtNyk7bWFyZ2luOjB9LmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWhlYWRlcn4uZHJvcGRvd24taXRlbSwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taGVhZGVyfi5kcm9wZG93bj4uZHJvcGRvd24taXRlbXtwYWRkaW5nLWxlZnQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMCl9LmRy'@; put 'b3Bkb3duLW1lbnUgLmJ0biwuZHJvcGRvd24tbWVudSAuYnRuLXNlY29uZGFyeSwuZHJvcGRvd24tbWVudSAuYnRuLWluZm8sLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1wcmltYXJ5LC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1z'@; put 'ZWNvbmRhcnksLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmcsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLWRhbmdlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc3VjY2VzcywuZHJvcGRvd24tbWVudSAuYnRuLWRhbmdlciwuZHJvcGRvd24tbWVudSAuYnRuLXBy'@; put 'aW1hcnksLmRyb3Bkb3duLW1lbnUgLmJ0bi13YXJuaW5nLC5kcm9wZG93bi1tZW51IC5idG4tc3VjY2VzcywuZHJvcGRvd24tbWVudSAuYnRuLWxpbmssLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW17Zm9udC1zaXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFyeS1m'@; put 'b250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1kcm9wZG93bi1pdGVtLWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFyeS1sZXR0ZXItc3BhY2luZyk7'@; put 'Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWl0ZW0tY29sb3IpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWl0ZW0tYmctY29sb3IpO2JvcmRlcjowO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6ZmxleDtnYXA6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0zKTthbGlnbi1pdGVt'@; put 'czpjZW50ZXI7aGVpZ2h0OmF1dG87bWFyZ2luOjA7d2lkdGg6MTAwJTt0ZXh0LXRyYW5zZm9ybTpub25lfS5kcm9wZG93bi1tZW51IC5idG4uYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tc2Vjb25kYXJ5LmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLWluZm8uYWN0aXZlLC5kcm9wZG93'@; put 'bi1tZW51IC5idG4tb3V0bGluZS5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXByaW1hcnkuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zZWNvbmRhcnkuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS13YXJuaW5nLmFjdGl2ZSwuZHJvcGRv'@; put 'd24tbWVudSAuYnRuLW91dGxpbmUtZGFuZ2VyLmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc3VjY2Vzcy5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1kYW5nZXIuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tcHJpbWFyeS5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0'@; put 'bi13YXJuaW5nLmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLXN1Y2Nlc3MuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tbGluay5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW0uYWN0aXZle2NvbG9yOnZhcigtLWNsci1kcm9wZG93bi1pdGVtLXNlbGVjdGVkLWNvbG9y'@; put 'KTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1kcm9wZG93bi1pdGVtLXNlbGVjdGVkLWJnLWNvbG9yKX0uZHJvcGRvd24tbWVudSAuYnRuOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tc2Vjb25kYXJ5OmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4taW5mbzpob3ZlciwuZHJvcGRvd24t'@; put 'bWVudSAuYnRuLW91dGxpbmU6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXByaW1hcnk6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtd2FybmluZzpob3ZlciwuZHJvcGRvd24tbWVu'@; put 'dSAuYnRuLW91dGxpbmUtZGFuZ2VyOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zdWNjZXNzOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tZGFuZ2VyOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tcHJpbWFyeTpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLXdhcm5pbmc6'@; put 'aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zdWNjZXNzOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tbGluazpob3ZlciwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbTpob3Zlcntjb2xvcjp2YXIoLS1jbHItZHJvcGRvd24taXRlbS1ob3Zlci1jb2xvcik7YmFja2dyb3VuZC1jb2xv'@; put 'cjp2YXIoLS1jbHItZHJvcGRvd24taXRlbS1ob3Zlci1iZy1jb2xvcik7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmRyb3Bkb3duLW1lbnUgLmJ0bjpob3Zlci5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zZWNvbmRhcnk6aG92ZXIuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4taW5mbzpo'@; put 'b3Zlci5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lOmhvdmVyLmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtcHJpbWFyeTpob3Zlci5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpob3Zlci5hY3RpdmUsLmRyb3Bkb3duLW1l'@; put 'bnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmc6aG92ZXIuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1kYW5nZXI6aG92ZXIuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zdWNjZXNzOmhvdmVyLmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLWRhbmdlcjpob3Zl'@; put 'ci5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1wcmltYXJ5OmhvdmVyLmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLXdhcm5pbmc6aG92ZXIuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tc3VjY2Vzczpob3Zlci5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1saW5rOmhvdmVyLmFj'@; put 'dGl2ZSwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbTpob3Zlci5hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZHJvcGRvd24taXRlbS1zZWxlY3RlZC1ob3Zlci1iZy1jb2xvcil9LmRyb3Bkb3duLW1lbnUgLmJ0bjphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zZWNv'@; put 'bmRhcnk6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4taW5mbzphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtcHJpbWFyeTphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTphY3Rp'@; put 'dmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmc6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1kYW5nZXI6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zdWNjZXNzOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLWRhbmdlcjphY3RpdmUs'@; put 'LmRyb3Bkb3duLW1lbnUgLmJ0bi1wcmltYXJ5OmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLXdhcm5pbmc6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tc3VjY2VzczphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1saW5rOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRl'@; put 'bTphY3RpdmV7Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWl0ZW0tYWN0aXZlLWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1kcm9wZG93bi1pdGVtLWFjdGl2ZS1iZy1jb2xvcil9LmRyb3Bkb3duLW1lbnUgLmJ0bjphY3RpdmUuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4t'@; put 'c2Vjb25kYXJ5OmFjdGl2ZS5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1pbmZvOmFjdGl2ZS5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lOmFjdGl2ZS5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXByaW1hcnk6YWN0aXZlLmFjdGl2ZSwuZHJvcGRvd24t'@; put 'bWVudSAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5OmFjdGl2ZS5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmc6YWN0aXZlLmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtZGFuZ2VyOmFjdGl2ZS5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRs'@; put 'aW5lLXN1Y2Nlc3M6YWN0aXZlLmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLWRhbmdlcjphY3RpdmUuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tcHJpbWFyeTphY3RpdmUuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4td2FybmluZzphY3RpdmUuYWN0aXZlLC5kcm9wZG93bi1tZW51'@; put 'IC5idG4tc3VjY2VzczphY3RpdmUuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tbGluazphY3RpdmUuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtOmFjdGl2ZS5hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZHJvcGRvd24taXRlbS1zZWxlY3RlZC1hY3Rp'@; put 'dmUtYmctY29sb3IpfS5kcm9wZG93bi1tZW51IC5idG46Zm9jdXMsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zZWNvbmRhcnk6Zm9jdXMsLmRyb3Bkb3duLW1lbnUgLmJ0bi1pbmZvOmZvY3VzLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZTpmb2N1cywuZHJvcGRvd24tbWVudSAuYnRuLW91dGxp'@; put 'bmUtcHJpbWFyeTpmb2N1cywuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5OmZvY3VzLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS13YXJuaW5nOmZvY3VzLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1kYW5nZXI6Zm9jdXMsLmRyb3Bkb3duLW1lbnUgLmJ0bi1v'@; put 'dXRsaW5lLXN1Y2Nlc3M6Zm9jdXMsLmRyb3Bkb3duLW1lbnUgLmJ0bi1kYW5nZXI6Zm9jdXMsLmRyb3Bkb3duLW1lbnUgLmJ0bi1wcmltYXJ5OmZvY3VzLC5kcm9wZG93bi1tZW51IC5idG4td2FybmluZzpmb2N1cywuZHJvcGRvd24tbWVudSAuYnRuLXN1Y2Nlc3M6Zm9jdXMsLmRyb3Bkb3du'@; put 'LW1lbnUgLmJ0bi1saW5rOmZvY3VzLC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtOmZvY3Vze3otaW5kZXg6aW5oZXJpdH0uZHJvcGRvd24tbWVudSAuYnRuLmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG46ZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zZWNvbmRhcnkuZGlz'@; put 'YWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zZWNvbmRhcnk6ZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1pbmZvLmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4taW5mbzpkaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUuZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUg'@; put 'LmJ0bi1vdXRsaW5lOmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1wcmltYXJ5LmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1wcmltYXJ5OmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zZWNvbmRhcnkuZGlzYWJsZWQsLmRyb3Bk'@; put 'b3duLW1lbnUgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpkaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtd2FybmluZy5kaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtd2FybmluZzpkaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtZGFuZ2Vy'@; put 'LmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1kYW5nZXI6ZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3M6ZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1k'@; put 'YW5nZXIuZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1kYW5nZXI6ZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1wcmltYXJ5LmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tcHJpbWFyeTpkaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLXdhcm5pbmcuZGlzYWJsZWQsLmRy'@; put 'b3Bkb3duLW1lbnUgLmJ0bi13YXJuaW5nOmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tc3VjY2Vzcy5kaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLXN1Y2Nlc3M6ZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1saW5rLmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tbGlu'@; put 'azpkaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbS5kaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbTpkaXNhYmxlZHtwb2ludGVyLWV2ZW50czpub25lO2NvbG9yOnZhcigtLWNsci1kcm9wZG93bi1pdGVtLWRpc2FibGVkLWNvbG9yKTtiYWNrZ3JvdW5k'@; put 'LWNvbG9yOnZhcigtLWNsci1kcm9wZG93bi1pdGVtLWRpc2FibGVkLWJnLWNvbG9yKTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0uZHJvcGRvd24tbWVudSAuYnRuLmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG46ZGlzYWJsZWQ6aG92ZXIsLmRy'@; put 'b3Bkb3duLW1lbnUgLmJ0bi1zZWNvbmRhcnkuZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zZWNvbmRhcnk6ZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1pbmZvLmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4taW5mbzpkaXNhYmxlZDpob3Zl'@; put 'ciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUuZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lOmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1wcmltYXJ5LmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGlu'@; put 'ZS1wcmltYXJ5OmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zZWNvbmRhcnkuZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpkaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtd2Fybmlu'@; put 'Zy5kaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtd2FybmluZzpkaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtZGFuZ2VyLmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1kYW5nZXI6ZGlzYWJsZWQ6aG92'@; put 'ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3M6ZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1kYW5nZXIuZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0'@; put 'bi1kYW5nZXI6ZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1wcmltYXJ5LmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tcHJpbWFyeTpkaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLXdhcm5pbmcuZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1l'@; put 'bnUgLmJ0bi13YXJuaW5nOmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tc3VjY2Vzcy5kaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLXN1Y2Nlc3M6ZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1saW5rLmRpc2FibGVkOmhvdmVyLC5kcm9wZG93'@; put 'bi1tZW51IC5idG4tbGluazpkaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbS5kaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbTpkaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOjAgMH0uZHJvcGRvd24tbWVudSAuYnRuLmRpc2FibGVk'@; put 'OmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuOmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLXNlY29uZGFyeS5kaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zZWNvbmRhcnk6ZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4taW5mby5kaXNh'@; put 'YmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1pbmZvOmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUuZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZTpkaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRs'@; put 'aW5lLXByaW1hcnkuZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1wcmltYXJ5OmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc2Vj'@; put 'b25kYXJ5OmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtd2FybmluZy5kaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmc6ZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1kYW5nZXIuZGlz'@; put 'YWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1kYW5nZXI6ZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zdWNjZXNzLmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc3VjY2VzczpkaXNhYmxlZDphY3Rp'@; put 'dmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1kYW5nZXIuZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tZGFuZ2VyOmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLXByaW1hcnkuZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tcHJpbWFyeTpkaXNh'@; put 'YmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi13YXJuaW5nLmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLXdhcm5pbmc6ZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tc3VjY2Vzcy5kaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1z'@; put 'dWNjZXNzOmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLWxpbmsuZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tbGluazpkaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW0uZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51'@; put 'IC5kcm9wZG93bi1pdGVtOmRpc2FibGVkOmFjdGl2ZXtiYWNrZ3JvdW5kOjAgMDtib3gtc2hhZG93Om5vbmV9LmRyb3Bkb3duLW1lbnUgLmJ0bi5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zZWNvbmRhcnkuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4taW5mby5hY3RpdmUsLmRyb3Bk'@; put 'b3duLW1lbnUgLmJ0bi1vdXRsaW5lLmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtcHJpbWFyeS5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeS5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmcuYWN0aXZlLC5kcm9w'@; put 'ZG93bi1tZW51IC5idG4tb3V0bGluZS1kYW5nZXIuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zdWNjZXNzLmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLWRhbmdlci5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1wcmltYXJ5LmFjdGl2ZSwuZHJvcGRvd24tbWVudSAu'@; put 'YnRuLXdhcm5pbmcuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tc3VjY2Vzcy5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1saW5rLmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbS5hY3RpdmV7cG9zaXRpb246cmVsYXRpdmV9LmRyb3Bkb3duLW1lbnUgLmJ0bi5hY3Rp'@; put 'dmU6YmVmb3JlLC5kcm9wZG93bi1tZW51IC5idG4tc2Vjb25kYXJ5LmFjdGl2ZTpiZWZvcmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1pbmZvLmFjdGl2ZTpiZWZvcmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLmFjdGl2ZTpiZWZvcmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXBy'@; put 'aW1hcnkuYWN0aXZlOmJlZm9yZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmFjdGl2ZTpiZWZvcmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmcuYWN0aXZlOmJlZm9yZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtZGFuZ2VyLmFjdGl2ZTpi'@; put 'ZWZvcmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuYWN0aXZlOmJlZm9yZSwuZHJvcGRvd24tbWVudSAuYnRuLWRhbmdlci5hY3RpdmU6YmVmb3JlLC5kcm9wZG93bi1tZW51IC5idG4tcHJpbWFyeS5hY3RpdmU6YmVmb3JlLC5kcm9wZG93bi1tZW51IC5idG4td2Fybmlu'@; put 'Zy5hY3RpdmU6YmVmb3JlLC5kcm9wZG93bi1tZW51IC5idG4tc3VjY2Vzcy5hY3RpdmU6YmVmb3JlLC5kcm9wZG93bi1tZW51IC5idG4tbGluay5hY3RpdmU6YmVmb3JlLC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtLmFjdGl2ZTpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNv'@; put 'bHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7d2lkdGg6MTAwJTtib3JkZXI6MDtib3JkZXItbGVmdDp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0aC0zMDApIHNvbGlkIHZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1oaWdobGlnaHQpO3Ry'@; put 'YW5zaXRpb246Ym9yZGVyLWxlZnQgLjJzIGVhc2UtaW59LmRyb3Bkb3duLW1lbnUgLmJ0bi5leHBhbmRhYmxlLC5kcm9wZG93bi1tZW51IC5idG4tc2Vjb25kYXJ5LmV4cGFuZGFibGUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1pbmZvLmV4cGFuZGFibGUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRs'@; put 'aW5lLmV4cGFuZGFibGUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXByaW1hcnkuZXhwYW5kYWJsZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmV4cGFuZGFibGUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmcuZXhwYW5kYWJsZSwuZHJvcGRv'@; put 'd24tbWVudSAuYnRuLW91dGxpbmUtZGFuZ2VyLmV4cGFuZGFibGUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuZXhwYW5kYWJsZSwuZHJvcGRvd24tbWVudSAuYnRuLWRhbmdlci5leHBhbmRhYmxlLC5kcm9wZG93bi1tZW51IC5idG4tcHJpbWFyeS5leHBhbmRhYmxlLC5k'@; put 'cm9wZG93bi1tZW51IC5idG4td2FybmluZy5leHBhbmRhYmxlLC5kcm9wZG93bi1tZW51IC5idG4tc3VjY2Vzcy5leHBhbmRhYmxlLC5kcm9wZG93bi1tZW51IC5idG4tbGluay5leHBhbmRhYmxlLC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtLmV4cGFuZGFibGV7cGFkZGluZy1yaWdo'@; put 'dDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpfS5kcm9wZG93bi1tZW51IC5idG4uZXhwYW5kYWJsZTphZnRlciwuZHJvcGRvd24tbWVudSAuYnRuLXNlY29uZGFyeS5leHBhbmRhYmxlOmFmdGVyLC5kcm9wZG93bi1tZW51IC5idG4taW5mby5leHBhbmRhYmxlOmFmdGVyLC5kcm9wZG93bi1t'@; put 'ZW51IC5idG4tb3V0bGluZS5leHBhbmRhYmxlOmFmdGVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1wcmltYXJ5LmV4cGFuZGFibGU6YWZ0ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeS5leHBhbmRhYmxlOmFmdGVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0'@; put 'bGluZS13YXJuaW5nLmV4cGFuZGFibGU6YWZ0ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLWRhbmdlci5leHBhbmRhYmxlOmFmdGVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zdWNjZXNzLmV4cGFuZGFibGU6YWZ0ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1kYW5nZXIuZXhw'@; put 'YW5kYWJsZTphZnRlciwuZHJvcGRvd24tbWVudSAuYnRuLXByaW1hcnkuZXhwYW5kYWJsZTphZnRlciwuZHJvcGRvd24tbWVudSAuYnRuLXdhcm5pbmcuZXhwYW5kYWJsZTphZnRlciwuZHJvcGRvd24tbWVudSAuYnRuLXN1Y2Nlc3MuZXhwYW5kYWJsZTphZnRlciwuZHJvcGRvd24tbWVudSAu'@; put 'YnRuLWxpbmsuZXhwYW5kYWJsZTphZnRlciwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbS5leHBhbmRhYmxlOmFmdGVye2NvbnRlbnQ6IiI7bWFzazp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3Lncz'@; put 'Lm9yZyUyRjIwMDAlMkZzdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxMiUyMDEyJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3N0eWxlJTNFLmNscy0xJTdCZmlsbCUzQSdub25lJyUzQiU3RCUzQyUyRnN0eWxlJTNFJTBB'@; put 'JTIwJTIwJTIwJTIwJTNDJTJGZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUzQ3RpdGxlJTNFQ2FyZXQlM0MlMkZ0aXRsZSUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BhdGglMjBjbGFzcyUzRCUyMmNscy0xJTIyJTIwZCUzRCUyMk02JTJDOUwxLjIlMkM0LjJhMC42OCUyQzAuNjglMkMwJTJDMCUyQzEl'@; put 'MkMxLTFMNiUyQzcuMDglMkM5Ljg0JTJDMy4yNGEwLjY4JTJDMC42OCUyQzAlMkMxJTJDMSUyQzElMkMxWiUyMiUyRiUzRSUwQSUzQyUyRnN2ZyUzRSUwQSIpOy13ZWJraXQtbWFzay1yZXBlYXQ6bm8tcmVwZWF0O21hc2stcmVwZWF0Om5vLXJlcGVhdDstd2Via2l0LW1hc2stc2l6ZTpjb3Zl'@; put 'cjttYXNrLXNpemU6Y292ZXI7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZHJvcGRvd24taXRlbS1jb2xvcik7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNik7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KTt0cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7bWFyZ2luLWxl'@; put 'ZnQ6YXV0b30uZHJvcGRvd24tbWVudSAuYnRuLmV4cGFuZGFibGUuYWN0aXZlOmFmdGVyLC5kcm9wZG93bi1tZW51IC5idG4tc2Vjb25kYXJ5LmV4cGFuZGFibGUuYWN0aXZlOmFmdGVyLC5kcm9wZG93bi1tZW51IC5idG4taW5mby5leHBhbmRhYmxlLmFjdGl2ZTphZnRlciwuZHJvcGRvd24t'@; put 'bWVudSAuYnRuLW91dGxpbmUuZXhwYW5kYWJsZS5hY3RpdmU6YWZ0ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXByaW1hcnkuZXhwYW5kYWJsZS5hY3RpdmU6YWZ0ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeS5leHBhbmRhYmxlLmFjdGl2ZTphZnRlciwu'@; put 'ZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtd2FybmluZy5leHBhbmRhYmxlLmFjdGl2ZTphZnRlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtZGFuZ2VyLmV4cGFuZGFibGUuYWN0aXZlOmFmdGVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zdWNjZXNzLmV4cGFuZGFibGUu'@; put 'YWN0aXZlOmFmdGVyLC5kcm9wZG93bi1tZW51IC5idG4tZGFuZ2VyLmV4cGFuZGFibGUuYWN0aXZlOmFmdGVyLC5kcm9wZG93bi1tZW51IC5idG4tcHJpbWFyeS5leHBhbmRhYmxlLmFjdGl2ZTphZnRlciwuZHJvcGRvd24tbWVudSAuYnRuLXdhcm5pbmcuZXhwYW5kYWJsZS5hY3RpdmU6YWZ0'@; put 'ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zdWNjZXNzLmV4cGFuZGFibGUuYWN0aXZlOmFmdGVyLC5kcm9wZG93bi1tZW51IC5idG4tbGluay5leHBhbmRhYmxlLmFjdGl2ZTphZnRlciwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbS5leHBhbmRhYmxlLmFjdGl2ZTphZnRlcntiYWNrZ3Jv'@; put 'dW5kLWNvbG9yOnZhcigtLWNsci1kcm9wZG93bi1pdGVtLXNlbGVjdGVkLWNvbG9yKX0uZHJvcGRvd24tbWVudSAuYnRuLmV4cGFuZGFibGU6aG92ZXI6YWZ0ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zZWNvbmRhcnkuZXhwYW5kYWJsZTpob3ZlcjphZnRlciwuZHJvcGRvd24tbWVudSAuYnRu'@; put 'LWluZm8uZXhwYW5kYWJsZTpob3ZlcjphZnRlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUuZXhwYW5kYWJsZTpob3ZlcjphZnRlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtcHJpbWFyeS5leHBhbmRhYmxlOmhvdmVyOmFmdGVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGlu'@; put 'ZS1zZWNvbmRhcnkuZXhwYW5kYWJsZTpob3ZlcjphZnRlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtd2FybmluZy5leHBhbmRhYmxlOmhvdmVyOmFmdGVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1kYW5nZXIuZXhwYW5kYWJsZTpob3ZlcjphZnRlciwuZHJvcGRvd24tbWVu'@; put 'dSAuYnRuLW91dGxpbmUtc3VjY2Vzcy5leHBhbmRhYmxlOmhvdmVyOmFmdGVyLC5kcm9wZG93bi1tZW51IC5idG4tZGFuZ2VyLmV4cGFuZGFibGU6aG92ZXI6YWZ0ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1wcmltYXJ5LmV4cGFuZGFibGU6aG92ZXI6YWZ0ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0'@; put 'bi13YXJuaW5nLmV4cGFuZGFibGU6aG92ZXI6YWZ0ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zdWNjZXNzLmV4cGFuZGFibGU6aG92ZXI6YWZ0ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1saW5rLmV4cGFuZGFibGU6aG92ZXI6YWZ0ZXIsLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW0uZXhw'@; put 'YW5kYWJsZTpob3ZlcjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1kcm9wZG93bi1pdGVtLWhvdmVyLWNvbG9yKX0uZHJvcGRvd24tbWVudSAuYnRuLmV4cGFuZGFibGU6YWN0aXZlOmFmdGVyLC5kcm9wZG93bi1tZW51IC5idG4tc2Vjb25kYXJ5LmV4cGFuZGFibGU6YWN0aXZl'@; put 'OmFmdGVyLC5kcm9wZG93bi1tZW51IC5idG4taW5mby5leHBhbmRhYmxlOmFjdGl2ZTphZnRlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUuZXhwYW5kYWJsZTphY3RpdmU6YWZ0ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXByaW1hcnkuZXhwYW5kYWJsZTphY3RpdmU6YWZ0'@; put 'ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeS5leHBhbmRhYmxlOmFjdGl2ZTphZnRlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtd2FybmluZy5leHBhbmRhYmxlOmFjdGl2ZTphZnRlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtZGFuZ2VyLmV4cGFu'@; put 'ZGFibGU6YWN0aXZlOmFmdGVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zdWNjZXNzLmV4cGFuZGFibGU6YWN0aXZlOmFmdGVyLC5kcm9wZG93bi1tZW51IC5idG4tZGFuZ2VyLmV4cGFuZGFibGU6YWN0aXZlOmFmdGVyLC5kcm9wZG93bi1tZW51IC5idG4tcHJpbWFyeS5leHBhbmRh'@; put 'YmxlOmFjdGl2ZTphZnRlciwuZHJvcGRvd24tbWVudSAuYnRuLXdhcm5pbmcuZXhwYW5kYWJsZTphY3RpdmU6YWZ0ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zdWNjZXNzLmV4cGFuZGFibGU6YWN0aXZlOmFmdGVyLC5kcm9wZG93bi1tZW51IC5idG4tbGluay5leHBhbmRhYmxlOmFjdGl2ZTph'@; put 'ZnRlciwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbS5leHBhbmRhYmxlOmFjdGl2ZTphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1kcm9wZG93bi1pdGVtLWFjdGl2ZS1jb2xvcil9LmRyb3Bkb3duLW1lbnUgLmJ0bi5leHBhbmRhYmxlLmRpc2FibGVkOmFmdGVyLC5kcm9w'@; put 'ZG93bi1tZW51IC5idG4uZXhwYW5kYWJsZTpkaXNhYmxlZDphZnRlciwuZHJvcGRvd24tbWVudSAuYnRuLXNlY29uZGFyeS5leHBhbmRhYmxlLmRpc2FibGVkOmFmdGVyLC5kcm9wZG93bi1tZW51IC5idG4tc2Vjb25kYXJ5LmV4cGFuZGFibGU6ZGlzYWJsZWQ6YWZ0ZXIsLmRyb3Bkb3duLW1l'@; put 'bnUgLmJ0bi1pbmZvLmV4cGFuZGFibGUuZGlzYWJsZWQ6YWZ0ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1pbmZvLmV4cGFuZGFibGU6ZGlzYWJsZWQ6YWZ0ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLmV4cGFuZGFibGUuZGlzYWJsZWQ6YWZ0ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1v'@; put 'dXRsaW5lLmV4cGFuZGFibGU6ZGlzYWJsZWQ6YWZ0ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXByaW1hcnkuZXhwYW5kYWJsZS5kaXNhYmxlZDphZnRlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtcHJpbWFyeS5leHBhbmRhYmxlOmRpc2FibGVkOmFmdGVyLC5kcm9wZG93'@; put 'bi1tZW51IC5idG4tb3V0bGluZS1zZWNvbmRhcnkuZXhwYW5kYWJsZS5kaXNhYmxlZDphZnRlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmV4cGFuZGFibGU6ZGlzYWJsZWQ6YWZ0ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmcuZXhwYW5kYWJs'@; put 'ZS5kaXNhYmxlZDphZnRlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtd2FybmluZy5leHBhbmRhYmxlOmRpc2FibGVkOmFmdGVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1kYW5nZXIuZXhwYW5kYWJsZS5kaXNhYmxlZDphZnRlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxp'@; put 'bmUtZGFuZ2VyLmV4cGFuZGFibGU6ZGlzYWJsZWQ6YWZ0ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuZXhwYW5kYWJsZS5kaXNhYmxlZDphZnRlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc3VjY2Vzcy5leHBhbmRhYmxlOmRpc2FibGVkOmFmdGVyLC5kcm9w'@; put 'ZG93bi1tZW51IC5idG4tZGFuZ2VyLmV4cGFuZGFibGUuZGlzYWJsZWQ6YWZ0ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1kYW5nZXIuZXhwYW5kYWJsZTpkaXNhYmxlZDphZnRlciwuZHJvcGRvd24tbWVudSAuYnRuLXByaW1hcnkuZXhwYW5kYWJsZS5kaXNhYmxlZDphZnRlciwuZHJvcGRvd24t'@; put 'bWVudSAuYnRuLXByaW1hcnkuZXhwYW5kYWJsZTpkaXNhYmxlZDphZnRlciwuZHJvcGRvd24tbWVudSAuYnRuLXdhcm5pbmcuZXhwYW5kYWJsZS5kaXNhYmxlZDphZnRlciwuZHJvcGRvd24tbWVudSAuYnRuLXdhcm5pbmcuZXhwYW5kYWJsZTpkaXNhYmxlZDphZnRlciwuZHJvcGRvd24tbWVu'@; put 'dSAuYnRuLXN1Y2Nlc3MuZXhwYW5kYWJsZS5kaXNhYmxlZDphZnRlciwuZHJvcGRvd24tbWVudSAuYnRuLXN1Y2Nlc3MuZXhwYW5kYWJsZTpkaXNhYmxlZDphZnRlciwuZHJvcGRvd24tbWVudSAuYnRuLWxpbmsuZXhwYW5kYWJsZS5kaXNhYmxlZDphZnRlciwuZHJvcGRvd24tbWVudSAuYnRu'@; put 'LWxpbmsuZXhwYW5kYWJsZTpkaXNhYmxlZDphZnRlciwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbS5leHBhbmRhYmxlLmRpc2FibGVkOmFmdGVyLC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtLmV4cGFuZGFibGU6ZGlzYWJsZWQ6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIo'@; put 'LS1jbHItZHJvcGRvd24taXRlbS1kaXNhYmxlZC1jb2xvcil9LmRyb3Bkb3duLW1lbnUgLmJ0bjpmb2N1cywuZHJvcGRvd24tbWVudSAuYnRuLXNlY29uZGFyeTpmb2N1cywuZHJvcGRvd24tbWVudSAuYnRuLWluZm86Zm9jdXMsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lOmZvY3VzLC5k'@; put 'cm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1wcmltYXJ5OmZvY3VzLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zZWNvbmRhcnk6Zm9jdXMsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmc6Zm9jdXMsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLWRhbmdlcjpmb2N1'@; put 'cywuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc3VjY2Vzczpmb2N1cywuZHJvcGRvd24tbWVudSAuYnRuLWRhbmdlcjpmb2N1cywuZHJvcGRvd24tbWVudSAuYnRuLXByaW1hcnk6Zm9jdXMsLmRyb3Bkb3duLW1lbnUgLmJ0bi13YXJuaW5nOmZvY3VzLC5kcm9wZG93bi1tZW51IC5idG4t'@; put 'c3VjY2Vzczpmb2N1cywuZHJvcGRvd24tbWVudSAuYnRuLWxpbms6Zm9jdXMsLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW06Zm9jdXN7b3V0bGluZS1vZmZzZXQ6Y2FsYygtMSp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTIpKX0uZHJvcGRvd24tbWVudSAuYnRuLC5kcm9wZG93bi1tZW51'@; put 'IC5kcm9wZG93bi1pdGVte3BhZGRpbmc6MCB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NTc2cHgpey5kcm9wZG93bi1tZW51IC5idG4sLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW17cGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNw'@; put 'YWNlLTQpIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSl9fS5kcm9wZG93bi1tZW51IGEuZHJvcGRvd24taXRlbXt0ZXh0LWRlY29yYXRpb246bm9uZX0uZHJvcGRvd24tbWVudSAuZHJvcGRvd24tZGl2aWRlcntib3JkZXItYm90dG9tLXdpZHRoOnZhcigtLWNsci1kcm9wZG93bi1kaXZpZGVy'@; put 'LWJvcmRlci13aWR0aCk7Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1kcm9wZG93bi1kaXZpZGVyLWNvbG9yKTttYXJnaW46dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KX0uYnRuLWdyb3VwLW92ZXJmbG93Lm9wZW4+LmRyb3Bkb3duLW1l'@; put 'bnUsLmJ0bi1ncm91cC1vdmVyZmxvdy5vcGVuPi5kcm9wZG93bi1tZW51LXdyYXBwZXI+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cub3Blbj4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdy5vcGVuPi5kcm9wZG93bi1tZW51LXdyYXBwZXI+LmRyb3Bkb3duLW1lbnUsLmRyb3Bk'@; put 'b3duLm9wZW4+LmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duLm9wZW4+LmRyb3Bkb3duLW1lbnUtd3JhcHBlcj4uZHJvcGRvd24tbWVudXt2aXNpYmlsaXR5OnZpc2libGV9LmJ0bi1ncm91cC1vdmVyZmxvdy5ib3R0b20tbGVmdD4uZHJvcGRvd24tbWVudSwuYnRuLWdyb3VwLW92ZXJmbG93LmJv'@; put 'dHRvbS1yaWdodD4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdy5ib3R0b20tbGVmdD4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdy5ib3R0b20tcmlnaHQ+LmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duLmJvdHRvbS1sZWZ0Pi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi5ib3R0b20t'@; put 'cmlnaHQ+LmRyb3Bkb3duLW1lbnV7dG9wOjEwMCU7Ym90dG9tOmF1dG87bWFyZ2luOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMikgMCAwIDB9LmJ0bi1ncm91cC1vdmVyZmxvdy5ib3R0b20tbGVmdD4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdy5ib3R0b20tbGVmdD4uZHJvcGRvd24t'@; put 'bWVudSwuZHJvcGRvd24uYm90dG9tLWxlZnQ+LmRyb3Bkb3duLW1lbnV7bGVmdDowO3JpZ2h0OmF1dG99LmJ0bi1ncm91cC1vdmVyZmxvdy5ib3R0b20tcmlnaHQ+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cuYm90dG9tLXJpZ2h0Pi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi5ib3R0'@; put 'b20tcmlnaHQ+LmRyb3Bkb3duLW1lbnV7cmlnaHQ6MDtsZWZ0OmF1dG99LmJ0bi1ncm91cC1vdmVyZmxvdy50b3AtbGVmdD4uZHJvcGRvd24tbWVudSwuYnRuLWdyb3VwLW92ZXJmbG93LnRvcC1yaWdodD4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdy50b3AtbGVmdD4uZHJvcGRvd24t'@; put 'bWVudSwudGFicy1vdmVyZmxvdy50b3AtcmlnaHQ+LmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duLnRvcC1sZWZ0Pi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi50b3AtcmlnaHQ+LmRyb3Bkb3duLW1lbnV7dG9wOmF1dG87Ym90dG9tOjEwMCU7bWFyZ2luOjAgMCB2YXIoLS1jZHMtZ2xvYmFsLXNw'@; put 'YWNlLTIpIDB9LmJ0bi1ncm91cC1vdmVyZmxvdy50b3AtbGVmdD4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdy50b3AtbGVmdD4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24udG9wLWxlZnQ+LmRyb3Bkb3duLW1lbnV7bGVmdDowO3JpZ2h0OmF1dG99LmJ0bi1ncm91cC1vdmVyZmxvdy50'@; put 'b3AtcmlnaHQ+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cudG9wLXJpZ2h0Pi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi50b3AtcmlnaHQ+LmRyb3Bkb3duLW1lbnV7cmlnaHQ6MDtsZWZ0OmF1dG99LmJ0bi1ncm91cC1vdmVyZmxvdy5sZWZ0LXRvcD4uZHJvcGRvd24tbWVudSwuYnRu'@; put 'LWdyb3VwLW92ZXJmbG93LmxlZnQtYm90dG9tPi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93LmxlZnQtdG9wPi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93LmxlZnQtYm90dG9tPi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi5sZWZ0LXRvcD4uZHJvcGRvd24tbWVudSwuZHJvcGRv'@; put 'd24ubGVmdC1ib3R0b20+LmRyb3Bkb3duLW1lbnV7cmlnaHQ6MTAwJTtsZWZ0OmF1dG87bWFyZ2luOjAgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0yKSAwIDB9LmJ0bi1ncm91cC1vdmVyZmxvdy5sZWZ0LWJvdHRvbT4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdy5sZWZ0LWJvdHRvbT4u'@; put 'ZHJvcGRvd24tbWVudSwuZHJvcGRvd24ubGVmdC1ib3R0b20+LmRyb3Bkb3duLW1lbnV7dG9wOjA7Ym90dG9tOmF1dG99LmJ0bi1ncm91cC1vdmVyZmxvdy5sZWZ0LXRvcD4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdy5sZWZ0LXRvcD4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24ubGVm'@; put 'dC10b3A+LmRyb3Bkb3duLW1lbnV7Ym90dG9tOjA7dG9wOmF1dG99LmJ0bi1ncm91cC1vdmVyZmxvdy5yaWdodC10b3A+LmRyb3Bkb3duLW1lbnUsLmJ0bi1ncm91cC1vdmVyZmxvdy5yaWdodC1ib3R0b20+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cucmlnaHQtdG9wPi5kcm9wZG93'@; put 'bi1tZW51LC50YWJzLW92ZXJmbG93LnJpZ2h0LWJvdHRvbT4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24ucmlnaHQtdG9wPi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi5yaWdodC1ib3R0b20+LmRyb3Bkb3duLW1lbnV7bGVmdDoxMDAlO3JpZ2h0OmF1dG87bWFyZ2luOjAgMCAwIHZhcigtLWNk'@; put 'cy1nbG9iYWwtc3BhY2UtMil9LmJ0bi1ncm91cC1vdmVyZmxvdy5yaWdodC1ib3R0b20+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cucmlnaHQtYm90dG9tPi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi5yaWdodC1ib3R0b20+LmRyb3Bkb3duLW1lbnV7dG9wOjA7Ym90dG9tOmF1dG99'@; put 'LmJ0bi1ncm91cC1vdmVyZmxvdy5yaWdodC10b3A+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cucmlnaHQtdG9wPi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi5yaWdodC10b3A+LmRyb3Bkb3duLW1lbnV7Ym90dG9tOjA7dG9wOmF1dG99LmJ0bi1ncm91cC1vdmVyZmxvdyAuZHJvcGRv'@; put 'd24gLmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cgLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51LC5kcm9wZG93biAuZHJvcGRvd24gLmRyb3Bkb3duLW1lbnV7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1kcm9wZG93bi1jaGlsZC1ib3JkZXItY29sb3IpO3Bvc2l0aW9uOmFic29sdXRlfS5i'@; put 'dG4tZ3JvdXAtb3ZlcmZsb3cgLmRyb3Bkb3duLmxlZnQtdG9wPi5kcm9wZG93bi1tZW51LC5idG4tZ3JvdXAtb3ZlcmZsb3cgLmRyb3Bkb3duLmxlZnQtdG9wPi5kcm9wZG93bi1tZW51LXdyYXBwZXI+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cgLmRyb3Bkb3duLmxlZnQtdG9wPi5k'@; put 'cm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93IC5kcm9wZG93bi5sZWZ0LXRvcD4uZHJvcGRvd24tbWVudS13cmFwcGVyPi5kcm9wZG93bi1tZW51LC5kcm9wZG93biAuZHJvcGRvd24ubGVmdC10b3A+LmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duIC5kcm9wZG93bi5sZWZ0LXRvcD4uZHJvcGRv'@; put 'd24tbWVudS13cmFwcGVyPi5kcm9wZG93bi1tZW51e2luc2V0OjAgMTAwJSBhdXRvIGF1dG87bWFyZ2luLXRvcDpjYWxjKCgtMSp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTgpKSAtIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSkpO21hcmdpbi1yaWdodDpjYWxjKC0xKnZhcigtLWNkcy1nbG9i'@; put 'YWwtc3BhY2UtMykpfS5idG4tZ3JvdXAtb3ZlcmZsb3cgLmRyb3Bkb3duLnJpZ2h0LXRvcD4uZHJvcGRvd24tbWVudSwuYnRuLWdyb3VwLW92ZXJmbG93IC5kcm9wZG93bi5yaWdodC10b3A+LmRyb3Bkb3duLW1lbnUtd3JhcHBlcj4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdyAuZHJv'@; put 'cGRvd24ucmlnaHQtdG9wPi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93IC5kcm9wZG93bi5yaWdodC10b3A+LmRyb3Bkb3duLW1lbnUtd3JhcHBlcj4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24gLmRyb3Bkb3duLnJpZ2h0LXRvcD4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24gLmRyb3Bk'@; put 'b3duLnJpZ2h0LXRvcD4uZHJvcGRvd24tbWVudS13cmFwcGVyPi5kcm9wZG93bi1tZW51e2luc2V0OjAgYXV0byBhdXRvIDEwMCU7bWFyZ2luLXRvcDpjYWxjKCgtMSp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTgpKSAtIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSkpO21hcmdpbi1sZWZ0OmNh'@; put 'bGMoLTEqdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0zKSl9LmJ0bi1ncm91cC1vdmVyZmxvdyAuZHJvcGRvd24ubGVmdC1ib3R0b20+LmRyb3Bkb3duLW1lbnUsLmJ0bi1ncm91cC1vdmVyZmxvdyAuZHJvcGRvd24ubGVmdC1ib3R0b20+LmRyb3Bkb3duLW1lbnUtd3JhcHBlcj4uZHJvcGRvd24t'@; put 'bWVudSwudGFicy1vdmVyZmxvdyAuZHJvcGRvd24ubGVmdC1ib3R0b20+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cgLmRyb3Bkb3duLmxlZnQtYm90dG9tPi5kcm9wZG93bi1tZW51LXdyYXBwZXI+LmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duIC5kcm9wZG93bi5sZWZ0LWJvdHRvbT4u'@; put 'ZHJvcGRvd24tbWVudSwuZHJvcGRvd24gLmRyb3Bkb3duLmxlZnQtYm90dG9tPi5kcm9wZG93bi1tZW51LXdyYXBwZXI+LmRyb3Bkb3duLW1lbnV7aW5zZXQ6YXV0byAxMDAlIDAgYXV0bzttYXJnaW4tYm90dG9tOmNhbGMoKC0xKnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOCkpIC0gdmFyKC0t'@; put 'Y2RzLWdsb2JhbC1zcGFjZS0xKSk7bWFyZ2luLXJpZ2h0OmNhbGMoLTEqdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0zKSl9LmJ0bi1ncm91cC1vdmVyZmxvdyAuZHJvcGRvd24ucmlnaHQtYm90dG9tPi5kcm9wZG93bi1tZW51LC5idG4tZ3JvdXAtb3ZlcmZsb3cgLmRyb3Bkb3duLnJpZ2h0LWJv'@; put 'dHRvbT4uZHJvcGRvd24tbWVudS13cmFwcGVyPi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93IC5kcm9wZG93bi5yaWdodC1ib3R0b20+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cgLmRyb3Bkb3duLnJpZ2h0LWJvdHRvbT4uZHJvcGRvd24tbWVudS13cmFwcGVyPi5kcm9wZG93'@; put 'bi1tZW51LC5kcm9wZG93biAuZHJvcGRvd24ucmlnaHQtYm90dG9tPi5kcm9wZG93bi1tZW51LC5kcm9wZG93biAuZHJvcGRvd24ucmlnaHQtYm90dG9tPi5kcm9wZG93bi1tZW51LXdyYXBwZXI+LmRyb3Bkb3duLW1lbnV7aW5zZXQ6YXV0byBhdXRvIDAgMTAwJTttYXJnaW4tYm90dG9tOmNh'@; put 'bGMoKC0xKnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOCkpIC0gdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xKSk7bWFyZ2luLWxlZnQ6Y2FsYygtMSp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTMpKX06cm9vdCBbY2RzLXRoZW1lXXstLWNsci1sb2dpbi10aXRsZS1jb2xvcjp2YXIoLS1jZHMtYWxp'@; put 'YXMtdHlwb2dyYXBoeS1jb2xvci00MDApOy0tY2xyLWxvZ2luLWhpbnQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNDAwKTstLWNsci1sb2dpbi1mb290ZXItZ2FwOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7LS1jbHItbG9naW4tY29weXJpZ2h0LWNvbG9yOnZh'@; put 'cigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWxpbmstY29sb3IpOy0tY2xyLWxvZ2luLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1jb250YWluZXItYmFja2dyb3VuZCk7LS1jbHItbG9naW4td2VsY29tZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1j'@; put 'b2xvci00MDApOy0tY2xyLWxvZ2luLWVycm9yLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWRhbmdlci1iZy1jb2xvcik7LS1jbHItbG9naW4tZXJyb3ItaWNvbi1jb2xvcjp2YXIoLS1jbHItYWxlcnQtZGFuZ2VyLWljb24tY29sb3IpOy0tY2xyLWxvZ2luLWxvZ28tY29sb3I6'@; put 'IzcxNzE3NTstLWNsci1sb2dpbi10cmFkZW1hcmstY29sb3I6dmFyKC0tY2xyLWgyLWNvbG9yKTstLWNsci1sb2dpbi10cmFkZW1hcmstZm9udC13ZWlnaHQ6dmFyKC0tY2xyLWgyLWZvbnQtd2VpZ2h0KTstLWNsci1sb2dpbi10cmFkZW1hcmstZm9udC1mYW1pbHk6dmFyKC0tY2xyLWgyLWZv'@; put 'bnQtZmFtaWx5KTstLWNsci1sb2dpbi10cmFkZW1hcmstZm9udC1zaXplOnZhcigtLWNsci1oMi1mb250LXNpemUpOy0tY2xyLWxvZ2luLXRyYWRlbWFyay1sZXR0ZXItc3BhY2luZzp2YXIoLS1jbHItaDItbGV0dGVyLXNwYWNpbmcpfTpyb290IFtjZHMtdGhlbWV+PWRhcmtdey0tY2xyLWxv'@; put 'Z2luLWxvZ28tY29sb3I6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci13aGl0ZSl9LmxvZ2luLXdyYXBwZXJ7ZGlzcGxheTpmbGV4O2hlaWdodDoxMDAlO2JhY2tncm91bmQ6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDJTNGeG1sJTIwdmVyc2lvbiUzRCUyMjEuMCUyMiUy'@; put 'MGVuY29kaW5nJTNEJTIydXRmLTglMjIlM0YlM0UlMEQlMEElM0MlMjFET0NUWVBFJTIwc3ZnJTIwUFVCTElDJTIwJTIyLSUyRiUyRlczQyUyRiUyRkRURCUyMFNWRyUyMDEuMSUyRiUyRkVOJTIyJTIwJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkZHcmFwaGljcyUyRlNWRyUyRjEuMSUy'@; put 'RkRURCUyRnN2ZzExLmR0ZCUyMiUzRSUwRCUwQSUzQ3N2ZyUwRCUwQSUyMCUyMCUyMCUyMCUyMHZlcnNpb24lM0QlMjIxLjElMjIlMEQlMEElMjAlMjAlMjAlMjAlMjBpZCUzRCUyMm5vLWFzcGVjdC1yYXRpbyUyMiUwRCUwQSUyMCUyMCUyMCUyMCUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUy'@; put 'Rnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTBEJTBBJTIwJTIwJTIwJTIwJTIweG1sbnMlM0F4bGluayUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhsaW5rJTIyJTBEJTBBJTIwJTIwJTIwJTIwJTIweCUzRCUyMjBweCUyMiUwRCUwQSUyMCUyMCUyMCUyMCUyMHkl'@; put 'M0QlMjIwcHglMjIlMEQlMEElMjAlMjAlMjAlMjAlMjBoZWlnaHQlM0QlMjIyMDU1LjU1cHglMjIlMEQlMEElMjAlMjAlMjAlMjAlMjB3aWR0aCUzRCUyMjE0NDBweCUyMiUwRCUwQSUyMCUyMCUyMCUyMCUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDIwNTUuNTUlMjAxNDQwJTIyJTBEJTBBJTIw'@; put 'JTIwJTIwJTIwJTIwcHJlc2VydmVBc3BlY3RSYXRpbyUzRCUyMnhNaW5ZTWluJTIwc2xpY2UlMjIlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NkZXNjJTNFTG9naW4lMjBJbWFnZSUzQyUyRmRlc2MlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl'@; put 'MjAlMjAlMjAlM0NnJTIwc3Ryb2tlJTNEJTIybm9uZSUyMiUyMHN0cm9rZS13aWR0aCUzRCUyMjElMjIlMjBmaWxsJTNEJTIybm9uZSUyMiUyMGZpbGwtcnVsZSUzRCUyMmV2ZW5vZGQlMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgwLjAwMDAwMCUyQyUyMC00LjAwMDAwMCUyOSUy'@; put 'MiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ2clM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NnJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIl'@; put 'MjNGQUZBRkElMjIlMjB4JTNEJTIyMCUyMiUyMHklM0QlMjI0JTIyJTNFJTNDJTJGcmVjdCUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzMDA3Q0JCJTIyJTIwb3BhY2l0eSUzRCUyMjAuNCUy'@; put 'MiUyMHN0eWxlJTNEJTIybWl4LWJsZW5kLW1vZGUlM0ElMjBtdWx0aXBseSUzQiUyMiUyMHBvaW50cyUzRCUyMjExMDguNDMlMjAxNDQzLjYzJTIwMTEwOS4wOCUyMDE0NDMuNjMlMjA0NDMuNDQlMjA3NzcuNzQlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5M0Q4Q0ElMjIlMjBvcGFjaXR5JTNEJTIyMC42JTIyJTIwc3R5bGUlM0QlMjJtaXgtYmxlbmQtbW9kZSUzQSUyMG92ZXJsYXklM0IlMjIlMjBwb2ludHMlM0QlMjIwLjc5JTIwMzM0LjkyJTIw'@; put 'NDQzLjQ0JTIwNzc3Ljc0JTIwMC43OSUyMDMzNC40OSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0EwREVFQSUyMiUyMHBvaW50cyUzRCUyMjAuNzklMjAy'@; put 'MTEuODglMjAwLjc5JTIwMzI5LjYlMjA1OS42MiUyMDI3MC43NyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk2QzdERiUyMiUyMHBvaW50cyUzRCUyMjE2'@; put 'MC42NSUyMDE2OS43NCUyMDAuNzklMjA5LjczJTIwMC43OSUyMDIxMS44OCUyMDkwLjI3JTIwMzAxLjQ2JTIwNTkuNjIlMjAyNzAuNzclMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUy'@; put 'MGZpbGwlM0QlMjIlMjNDREUzRUUlMjIlMjBwb2ludHMlM0QlMjI1MDMuNzclMjAxNDQzLjYzJTIwNjk3LjQ3JTIwMTQ0My42MyUyMDgwMy43NCUyMDEzMzcuMzYlMjA3MDYuOTMlMjAxMjQwLjQzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy'@; put 'MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQ0RFM0VFJTIyJTIwcG9pbnRzJTNEJTIyMTU4LjMzJTIwNjkxLjE1JTIwMC43OSUyMDg0OC43MiUyMDAuNzklMjAxNDI3LjQzJTIwNDQ3LjUyJTIwOTgwLjclMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBB'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNDRURERTAlMjIlMjBwb2ludHMlM0QlMjIyNTcuNzElMjA1OTEuNzUlMjAwLjc5JTIwMzM0LjQ5JTIwMC43OSUyMDUzMy40MiUyMDE1OC4zMyUyMDY5MS4xNSUy'@; put 'MiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0E5QzlENSUyMiUyMHBvaW50cyUzRCUyMjAuNzklMjA1MzMuNDIlMjAwLjc5JTIwODQ4LjcyJTIwMTU4LjMzJTIw'@; put 'NjkxLjE1JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQUZENEU3JTIyJTIwcG9pbnRzJTNEJTIyODA2LjQ2JTIwMTE0MC44OSUyMDU0Ni45NCUyMDg4MS4y'@; put 'OCUyMDQ0Ny41MiUyMDk4MC43JTIwNzA2LjkzJTIwMTI0MC40MyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzhGQzRERiUyMiUyMHBvaW50cyUzRCUyMjQ0'@; put 'Ny41MiUyMDk4MC43JTIwMC43OSUyMDE0MjcuNDMlMjAwLjc5JTIwMTQ0My42MyUyMDUwMy43NyUyMDE0NDMuNjMlMjA3MDYuOTMlMjAxMjQwLjQzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3Bv'@; put 'bHlnb24lMjBmaWxsJTNEJTIyJTIzNzBDMERDJTIyJTIwcG9pbnRzJTNEJTIyNjA4LjIzJTIwODE5Ljk5JTIwNTQ2Ljk0JTIwODgxLjI4JTIwODA2LjQ2JTIwMTE0MC44OSUyMDg2Ny42NCUyMDEwNzkuNyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAl'@; put 'MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk2QzdERiUyMiUyMHBvaW50cyUzRCUyMjQyMC4wNSUyMDQyOS4zOSUyMDMxOS4wMSUyMDUzMC40NSUyMDYwOC4yMyUyMDgxOS45OSUyMDcwOS4zJTIwNzE4LjkxJTIyJTNFJTNDJTJGcG9seWdvbiUz'@; put 'RSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNjlBRkQ0JTIyJTIwcG9pbnRzJTNEJTIyNzA5LjMlMjA3MTguOTElMjA2MDguMjMlMjA4MTkuOTklMjA4NjcuNjQlMjAxMDc5LjclMjA5NjguNzQl'@; put 'MjA5NzguNiUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzhFQjVCQyUyMiUyMHBvaW50cyUzRCUyMjYxOS41OSUyMDIyOS44MiUyMDM5My40MiUyMDMuMTIl'@; put 'MjAzMjcuMjclMjAzLjEyJTIwMTYwLjY1JTIwMTY5Ljc0JTIwNDIwLjA1JTIwNDI5LjM5JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOEVCNUJDJTIyJTIw'@; put 'cG9pbnRzJTNEJTIyMzE5LjAxJTIwNTMwLjQ1JTIwMzE5LjAxJTIwNTMwLjQ1JTIwOTAuMjclMjAzMDEuNDYlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM3'@; put 'Q0IwQzclMjIlMjBwb2ludHMlM0QlMjIxNjAuNjUlMjAxNjkuNzQlMjA1OS42MiUyMDI3MC43NyUyMDkwLjI3JTIwMzAxLjQ2JTIwMzE5LjAxJTIwNTMwLjQ1JTIwNDIwLjA1JTIwNDI5LjM5JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy'@; put 'MCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzODRDNEQyJTIyJTIwcG9pbnRzJTNEJTIyNTkuNjIlMjAyNzAuNzclMjAwLjc5JTIwMzI5LjYlMjAwLjc5JTIwMzM0LjQ5JTIwMjU3LjcxJTIwNTkxLjc1JTIwMzE5LjAxJTIwNTMwLjQ1JTIyJTNFJTNDJTJGcG9s'@; put 'eWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzN0NCMEM3JTIyJTIwcG9pbnRzJTNEJTIyNTM3LjU1JTIwMy4xMiUyMDM5My40MiUyMDMuMTIlMjA2MTkuNTklMjAyMjkuODIlMjA2OTEu'@; put 'NzQlMjAxNTcuNjYlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM4N0QxREIlMjIlMjBwb2ludHMlM0QlMjI4NDYuMjUlMjAzLjEyJTIwNTM3LjU1JTIwMy4x'@; put 'MiUyMDY5MS43NCUyMDE1Ny42NiUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0NERTNFRSUyMiUyMHBvaW50cyUzRCUyMjkwOS44NyUyMDE0NDMuNjMlMjA4'@; put 'NTAuMTklMjAxMzgzLjg3JTIwNzkwLjQzJTIwMTQ0My42MyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0EwREVFQSUyMiUyMHBvaW50cyUzRCUyMjMxOS4w'@; put 'MSUyMDUzMC40NSUyMDI1Ny43MSUyMDU5MS43NSUyMDQ0My40NCUyMDc3Ny43NCUyMDU0Ni45NCUyMDg4MS4yOCUyMDYwOC4yMyUyMDgxOS45OSUyMDg2Ny42NCUyMDEwNzkuNyUyMDg2Ny42NCUyMDEwNzkuNyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAl'@; put 'MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0EwREVFQSUyMiUyMHBvaW50cyUzRCUyMjg2Ny42NCUyMDEwNzkuNyUyMDgwNi40NiUyMDExNDAuODklMjA5MDMuMzElMjAxMjM3Ljc4JTIwOTY0LjQ2JTIwMTE3Ni42MyUyMiUzRSUzQyUyRnBv'@; put 'bHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk2QzdERiUyMiUyMHBvaW50cyUzRCUyMjEwNjUuNTclMjAxMDc1LjUyJTIwOTY4Ljc0JTIwOTc4LjYlMjA4NjcuNjQlMjAxMDc5Ljcl'@; put 'MjA5NjQuNDYlMjAxMTc2LjYzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTZDN0RGJTIyJTIwcG9pbnRzJTNEJTIyOTY0LjQ2JTIwMTE3Ni42MyUyMDg2'@; put 'Ny42NCUyMDEwNzkuNyUyMDg2Ny42NCUyMDEwNzkuNyUyMDk2NC40NiUyMDExNzYuNjMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5NkM3REYlMjIlMjBw'@; put 'b2ludHMlM0QlMjIxMDEwLjkyJTIwMTIyMy4xMyUyMDEyMzEuMTYlMjAxNDQzLjYzJTIwMTAxMC45MiUyMDEyMjMuMTMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0Ql'@; put 'MjIlMjM5NkM3REYlMjIlMjBwb2ludHMlM0QlMjIxMjQwLjA4JTIwNzA3LjIyJTIwMTE2Ny45JTIwNzc5LjQlMjAxMjY0LjY4JTIwODc2LjQlMjAxMzM2Ljg3JTIwODA0LjIyJTIwMTI0MC4wOCUyMDcwNy4yMSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAl'@; put 'MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk2QzdERiUyMiUyMHBvaW50cyUzRCUyMjk4MC44MyUyMDQ0Ny4zOSUyMDY5MS43NCUyMDE1Ny42NiUyMDYxOS41OSUyMDIyOS44MiUyMDkwOC42NiUyMDUxOS41NiUyMDk4MC44MyUyMDQ0Ny4z'@; put 'OSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0FGRDRFNyUyMiUyMHBvaW50cyUzRCUyMjcwOS4zJTIwNzE4LjkxJTIwOTY4Ljc0JTIwOTc4LjYlMjAxMTY3'@; put 'LjkxJTIwNzc5LjQlMjA5MDguNjYlMjA1MTkuNTUlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM2OUFGRDQlMjIlMjBwb2ludHMlM0QlMjI5ODAuODMlMjA0'@; put 'NDcuMzklMjA5MDguNjYlMjA1MTkuNTUlMjAxMTY3LjkxJTIwNzc5LjQlMjAxMjQwLjA4JTIwNzA3LjIxJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTBE'@; put 'RUVBJTIyJTIwcG9pbnRzJTNEJTIyMTAzNC41OSUyMDMuMTIlMjA4NDYuMjUlMjAzLjEyJTIwNjkxLjc0JTIwMTU3LjY2JTIwOTgwLjgzJTIwNDQ3LjM5JTIwMTIyOS43NSUyMDE5OC40NyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl'@; put 'MjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0EwREVFQSUyMiUyMHBvaW50cyUzRCUyMjEyNDAuMDglMjA3MDcuMjElMjAxMzM2Ljg3JTIwODA0LjIyJTIwMTU4Ni4wMSUyMDU1NS4wOCUyMDE0ODkuMTQlMjA0NTguMTIlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBE'@; put 'JTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM3MEMwREMlMjIlMjBwb2ludHMlM0QlMjIxMjI5Ljc1JTIwMTk4LjQ3JTIwOTgwLjgzJTIwNDQ3LjM5JTIwMTI0MC4wOCUyMDcwNy4yMSUyMDE0ODkuMTQl'@; put 'MjA0NTguMTIlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNCN0NFRDIlMjIlMjBwb2ludHMlM0QlMjIxMjkyLjIyJTIwMTMwMi4zOCUyMDE0MzMuMzIlMjAx'@; put 'NDQzLjYzJTIwMTgzMC42MSUyMDE0NDMuNjMlMjAxNDkxLjE4JTIwMTEwMy40MiUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0EwREVFQSUyMiUyMHBvaW50'@; put 'cyUzRCUyMjEwMTAuOTIlMjAxMjIzLjEzJTIwOTQ5Ljc4JTIwMTI4NC4yNyUyMDExMDkuMDglMjAxNDQzLjYzJTIwMTE1MC45OCUyMDE0NDMuNjMlMjAxMTkxLjA5JTIwMTQwMy41MSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl'@; put 'MjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzc1QjhDNSUyMiUyMHBvaW50cyUzRCUyMjExNTAuOTglMjAxNDQzLjYzJTIwMTIzMS4xNiUyMDE0NDMuNjMlMjAxMTkxLjA5JTIwMTQwMy41MSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAl'@; put 'MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk2QzdERiUyMiUyMHBvaW50cyUzRCUyMjEyOTIuMjIlMjAxMzAyLjM4JTIwMTExMi4wMyUyMDExMjIuMDIlMjAxMDEwLjkyJTIwMTIyMy4xMyUyMDExOTEuMDklMjAxNDAzLjUxJTIyJTNF'@; put 'JTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNkVBNEJDJTIyJTIwcG9pbnRzJTNEJTIyMTE5MS4wOSUyMDE0MDMuNTElMjAxMjMxLjE2JTIwMTQ0My42MyUyMDE0MzMu'@; put 'MzIlMjAxNDQzLjYzJTIwMTI5Mi4yMiUyMDEzMDIuMzglMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjMwMDdDQkIlMjIlMjBvcGFjaXR5JTNEJTIyMC40JTIy'@; put 'JTIwc3R5bGUlM0QlMjJtaXgtYmxlbmQtbW9kZSUzQSUyMG11bHRpcGx5JTNCJTIyJTIwcG9pbnRzJTNEJTIyMTM4My4zJTIwODUwLjc1JTIwMTMxMS4xMiUyMDkyMi45NCUyMDE0OTEuMTglMjAxMTAzLjQyJTIwMTU2My4zNyUyMDEwMzEuMjMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBB'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNCN0NFRDIlMjIlMjBwb2ludHMlM0QlMjIxNDkxLjE4JTIwMTEwMy40MiUyMDE4MzAuNjElMjAxNDQzLjYzJTIwMTk3NC44NiUyMDE0NDMuNjMlMjAxNTYzLjM3'@; put 'JTIwMTAzMS4yMyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzZFQTRCQyUyMiUyMHBvaW50cyUzRCUyMjE0OTEuMTglMjAxMTAzLjQyJTIwMTgzMC42MSUy'@; put 'MDE0NDMuNjMlMjAxOTc0Ljg2JTIwMTQ0My42MyUyMDE1NjMuMzclMjAxMDMxLjIzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTBERUVBJTIyJTIwcG9p'@; put 'bnRzJTNEJTIyMTgxMi42NSUyMDc4MS45NSUyMDE2MzIuNDYlMjA2MDEuNTklMjAxMzgzLjMlMjA4NTAuNzUlMjAxNTYzLjM3JTIwMTAzMS4yMyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5'@; put 'Z29uJTIwZmlsbCUzRCUyMiUyM0I3Q0VEMiUyMiUyMHBvaW50cyUzRCUyMjE1NjMuMzclMjAxMDMxLjIzJTIwMTk3NC44NiUyMDE0NDMuNjMlMjAyMDU0LjQ1JTIwMTQ0My42MyUyMDIwNTQuNDUlMjAxMDIzLjk5JTIwMTgxMi42NSUyMDc4MS45NSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQl'@; put 'MEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzc4Q0FENCUyMiUyMHBvaW50cyUzRCUyMjE1NjMuMzclMjAxMDMxLjIzJTIwMTk3NC44NiUyMDE0NDMuNjMlMjAyMDU0LjQ1JTIwMTQ0My42MyUyMDIwNTQu'@; put 'NDUlMjAxMDIzLjk5JTIwMTgxMi42NSUyMDc4MS45NSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzkxQzVFMCUyMiUyMHBvaW50cyUzRCUyMjgwMy43NCUy'@; put 'MDEzMzcuMzYlMjA4NTAuMTklMjAxMzgzLjg3JTIwOTQ5Ljc4JTIwMTI4NC4yNyUyMDkwMy4zMSUyMDEyMzcuNzglMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIl'@; put 'MjM5MUM1RTAlMjIlMjBwb2ludHMlM0QlMjIxMDY1LjU3JTIwMTA3NS41MiUyMDExMTIuMDMlMjAxMTIyLjAyJTIwMTMxMS4xMiUyMDkyMi45NCUyMDEyNjQuNjklMjA4NzYuNCUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl'@; put 'MjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzc3QjhEOSUyMiUyMHBvaW50cyUzRCUyMjY5Ny40NyUyMDE0NDMuNjMlMjA3OTAuNDMlMjAxNDQzLjYzJTIwODUwLjE5JTIwMTM4My44NyUyMDgwMy43NCUyMDEzMzcuMzYlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIw'@; put 'JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNBMERFRUElMjIlMjBwb2ludHMlM0QlMjI5NjQuNDYlMjAxMTc2LjYzJTIwOTAzLjMxJTIwMTIzNy43OCUyMDk0OS43OCUyMDEyODQuMjclMjAxMDEwLjkyJTIwMTIy'@; put 'My4xMyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzVEQjVENiUyMiUyMHBvaW50cyUzRCUyMjk2NC40NiUyMDExNzYuNjMlMjA5MDMuMzElMjAxMjM3Ljc4'@; put 'JTIwOTQ5Ljc4JTIwMTI4NC4yNyUyMDEwMTAuOTIlMjAxMjIzLjEzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBmaWxsJTNEJTIyJTIzOTZDN0RGJTIyJTIwdHJhbnNmb3JtJTNEJTIy'@; put 'dHJhbnNsYXRlJTI4MTAzOC4yNDcyOTclMkMlMjAxMTQ5LjI3NTQyOSUyOSUyMHJvdGF0ZSUyOC00NC45NzAwMDAlMjklMjB0cmFuc2xhdGUlMjgtMTAzOC4yNDcyOTclMkMlMjAtMTE0OS4yNzU0MjklMjklMjAlMjIlMjB4JTNEJTIyOTY2Ljc1MjI5NyUyMiUyMHklM0QlMjIxMTE2LjQxMDQz'@; put 'JTIyJTIwd2lkdGglM0QlMjIxNDIuOTklMjIlMjBoZWlnaHQlM0QlMjI2NS43MyUyMiUzRSUzQyUyRnJlY3QlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NyZWN0JTIwZmlsbCUzRCUyMiUyMzU3QThEMCUyMiUyMHRyYW5zZm9ybSUz'@; put 'RCUyMnRyYW5zbGF0ZSUyODEwMzguMjQ3Mjk3JTJDJTIwMTE0OS4yNzU0MjklMjklMjByb3RhdGUlMjgtNDQuOTcwMDAwJTI5JTIwdHJhbnNsYXRlJTI4LTEwMzguMjQ3Mjk3JTJDJTIwLTExNDkuMjc1NDI5JTI5JTIwJTIyJTIweCUzRCUyMjk2Ni43NTIyOTclMjIlMjB5JTNEJTIyMTExNi40'@; put 'MTA0MyUyMiUyMHdpZHRoJTNEJTIyMTQyLjk5JTIyJTIwaGVpZ2h0JTNEJTIyNjUuNzMlMjIlM0UlM0MlMkZyZWN0JTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5NkM3REYlMjIlMjBwb2lu'@; put 'dHMlM0QlMjIxMDEwLjkyJTIwMTIyMy4xMyUyMDEwMTAuOTIlMjAxMjIzLjEzJTIwOTY0LjQ2JTIwMTE3Ni42MyUyMDk2NC40NiUyMDExNzYuNjMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9s'@; put 'eWdvbiUyMGZpbGwlM0QlMjIlMjMwMDAwMDAlMjIlMjBvcGFjaXR5JTNEJTIyMC40MiUyMiUyMHBvaW50cyUzRCUyMjEwMTAuOTIlMjAxMjIzLjEzJTIwMTAxMC45MiUyMDEyMjMuMTMlMjA5NjQuNDYlMjAxMTc2LjYzJTIwOTY0LjQ2JTIwMTE3Ni42MyUyMiUzRSUzQyUyRnBvbHlnb24lM0Ul'@; put 'MEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzAwN0NCQiUyMiUyMG9wYWNpdHklM0QlMjIwLjQlMjIlMjBzdHlsZSUzRCUyMm1peC1ibGVuZC1tb2RlJTNBJTIwbXVsdGlwbHklM0IlMjIlMjBwb2lu'@; put 'dHMlM0QlMjIxMzM2Ljg3JTIwODA0LjIyJTIwMTI2NC42OSUyMDg3Ni40JTIwMTMxMS4xMiUyMDkyMi45NCUyMDEzODMuMyUyMDg1MC43NSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29u'@; put 'JTIwZmlsbCUzRCUyMiUyMzU3QThEMCUyMiUyMHBvaW50cyUzRCUyMjEzMzYuODclMjA4MDQuMjIlMjAxMjY0LjY5JTIwODc2LjQlMjAxMzExLjEyJTIwOTIyLjk0JTIwMTM4My4zJTIwODUwLjc1JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy'@; put 'MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTNEOENBJTIyJTIwb3BhY2l0eSUzRCUyMjAuNiUyMiUyMHN0eWxlJTNEJTIybWl4LWJsZW5kLW1vZGUlM0ElMjBvdmVybGF5JTNCJTIyJTIwcG9pbnRzJTNEJTIyMTMzNi44NyUyMDgwNC4yMiUyMDEzODMu'@; put 'MyUyMDg1MC43NSUyMDE2MzIuNDYlMjA2MDEuNTklMjAxNTg2LjAxJTIwNTU1LjA4JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNURCNUQ2JTIyJTIwcG9p'@; put 'bnRzJTNEJTIyMTMzNi44NyUyMDgwNC4yMiUyMDEzODMuMyUyMDg1MC43NSUyMDE2MzIuNDYlMjA2MDEuNTklMjAxNTg2LjAxJTIwNTU1LjA4JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHln'@; put 'b24lMjBmaWxsJTNEJTIyJTIzQUZEM0U2JTIyJTIwcG9pbnRzJTNEJTIyMjA1NiUyMDAuMTIlMjAxNjQ1LjQ5JTIwMC4xMiUyMDE2NDguNDklMjAzLjEyJTIwMTk0NC4wNyUyMDMuMTIlMjAxNzk2LjIyJTIwMTUwLjk5JTIwMTg5My4xMiUyMDI0Ny45NyUyMDIwNTQuNDUlMjA4Ni42NCUyMDIw'@; put 'NTQuNDUlMjAxNzkuNiUyMDE5MzkuNTglMjAyOTQuNDclMjAyMDU2JTIwNDExJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzN0FCOUQ5JTIyJTIwcG9pbnRz'@; put 'JTNEJTIyMTY0OC40OSUyMDMuMTIlMjAxNzk2LjIyJTIwMTUwLjk5JTIwMTk0NC4wNyUyMDMuMTIlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM2NkFFRDQl'@; put 'MjIlMjBwb2ludHMlM0QlMjIyMDU0LjQ1JTIwODYuNjQlMjAxODkzLjEyJTIwMjQ3Ljk3JTIwMTkzOS41OCUyMDI5NC40NyUyMDIwNTQuNDUlMjAxNzkuNiUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl'@; put 'M0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0I3Q0VEMiUyMiUyMHBvaW50cyUzRCUyMjE4ODQuODIlMjA3MDkuNzglMjAyMDU0LjQ1JTIwODc5LjU3JTIwMjA1NC40NSUyMDU0MC4xNSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl'@; put 'MjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0FGRDRFNyUyMiUyMHBvaW50cyUzRCUyMjE0ODkuMTQlMjA0NTguMTIlMjAxNDg5LjE0JTIwNDU4LjEyJTIwMTM3MS4xMyUyMDMzOS45OSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAl'@; put 'MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0FGRDRFNyUyMiUyMHBvaW50cyUzRCUyMjE3OTYuMjIlMjAxNTAuOTklMjAxNjQ4LjQ5JTIwMy4xMiUyMDE0MjUuMSUyMDMuMTIlMjAxMzAxLjkxJTIwMTI2LjMxJTIwMTU2MS4zJTIwMzg1Ljk1'@; put 'JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBmaWxsJTNEJTIyJTIzOTFDNUUwJTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MTc5OC45NTQwNjYlMkMlMjAzODguNzk4Nzgx'@; put 'JTI5JTIwcm90YXRlJTI4LTQ0Ljk3MDAwMCUyOSUyMHRyYW5zbGF0ZSUyOC0xNzk4Ljk1NDA2NiUyQyUyMC0zODguNzk4NzgxJTI5JTIwJTIyJTIweCUzRCUyMjE2MzIuODI0MDclMjIlMjB5JTNEJTIyMzU1LjkzMzc4MSUyMiUyMHdpZHRoJTNEJTIyMzMyLjI2JTIyJTIwaGVpZ2h0JTNEJTIy'@; put 'NjUuNzMlMjIlM0UlM0MlMkZyZWN0JTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5MUM1RTAlMjIlMjBwb2ludHMlM0QlMjIxNTg2LjAxJTIwNTU1LjA4JTIwMTYzMi40NiUyMDYwMS41OSUy'@; put 'MDE2MzIuNDYlMjA2MDEuNTklMjAxNTg2LjAxJTIwNTU1LjA4JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBmaWxsJTNEJTIyJTIzQjNFQUVFJTIyJTIwdHJhbnNmb3JtJTNEJTIydHJh'@; put 'bnNsYXRlJTI4MTU3My43MTE1NzclMkMlMjA0NzAuNjIwMjYzJTI5JTIwcm90YXRlJTI4LTQ1LjAwMDAwMCUyOSUyMHRyYW5zbGF0ZSUyOC0xNTczLjcxMTU3NyUyQyUyMC00NzAuNjIwMjYzJTI5JTIwJTIyJTIweCUzRCUyMjE1MjIuNjgxNTglMjIlMjB5JTNEJTIyNDAyLjA4NTI2MyUyMiUy'@; put 'MHdpZHRoJTNEJTIyMTAyLjA2JTIyJTIwaGVpZ2h0JTNEJTIyMTM3LjA3JTIyJTNFJTNDJTJGcmVjdCUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBmaWxsJTNEJTIyJTIzQjNFQUVFJTIyJTIwdHJhbnNmb3JtJTNEJTIy'@; put 'dHJhbnNsYXRlJTI4MTc1OC42NzY3NTglMkMlMjA2NTUuNzY3MTIwJTI5JTIwcm90YXRlJTI4LTQ0Ljk3MDAwMCUyOSUyMHRyYW5zbGF0ZSUyOC0xNzU4LjY3Njc1OCUyQyUyMC02NTUuNzY3MTIwJTI5JTIwJTIyJTIweCUzRCUyMjE3MDcuNjQ2NzYlMjIlMjB5JTNEJTIyNTI4LjI5MjEyJTIy'@; put 'JTIwd2lkdGglM0QlMjIxMDIuMDYlMjIlMjBoZWlnaHQlM0QlMjIyNTQuOTUlMjIlM0UlM0MlMkZyZWN0JTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNCM0VBRUUlMjIlMjBwb2ludHMlM0Ql'@; put 'MjIxMzAxLjkxJTIwMTI2LjMxJTIwMTE3OC44NCUyMDMuMTIlMjAxMDM0LjU5JTIwMy4xMiUyMDEyMjkuNzUlMjAxOTguNDclMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwl'@; put 'M0QlMjIlMjM4M0MwQzglMjIlMjBwb2ludHMlM0QlMjIxODEyLjY1JTIwNzgxLjk1JTIwMjA1NC40NSUyMDEwMjMuOTklMjAyMDU0LjQ1JTIwODc5LjU3JTIwMTg4NC44MiUyMDcwOS43OCUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl'@; put 'MjAlMjAlMjAlMjAlMjAlMjAlM0NyZWN0JTIwZmlsbCUzRCUyMiUyMzdEQzZEQyUyMiUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSUyODEzOTUuNTE2OTAxJTJDJTIwMjkyLjIwNjUxOSUyOSUyMHJvdGF0ZSUyOC00NS4wMDAwMDAlMjklMjB0cmFuc2xhdGUlMjgtMTM5NS41MTY5MDElMkMl'@; put 'MjAtMjkyLjIwNjUxOSUyOSUyMCUyMiUyMHglM0QlMjIxMzQ0LjQ5MTklMjIlMjB5JTNEJTIyMTA4LjcwMTUxOSUyMiUyMHdpZHRoJTNEJTIyMTAyLjA1JTIyJTIwaGVpZ2h0JTNEJTIyMzY3LjAxJTIyJTNFJTNDJTJGcmVjdCUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy'@; put 'MCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBmaWxsJTNEJTIyJTIzNjhCOEQ1JTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MTY0NS4zMTM2MTklMkMlMjA1NDIuMjQ5NzYwJTI5JTIwcm90YXRlJTI4LTQ1LjAwMDAwMCUyOSUyMHRyYW5zbGF0ZSUyOC0xNjQ1LjMxMzYxOSUy'@; put 'QyUyMC01NDIuMjQ5NzYwJTI5JTIwJTIyJTIweCUzRCUyMjE1OTQuMjgzNjIlMjIlMjB5JTNEJTIyNTA5LjM4NDc2JTIyJTIwd2lkdGglM0QlMjIxMDIuMDYlMjIlMjBoZWlnaHQlM0QlMjI2NS43MyUyMiUzRSUzQyUyRnJlY3QlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl'@; put 'MjAlMjAlMjAlM0MlMkZnJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDZyUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSUyODAuMDAwMDAwJTJDJTIwMy4wMDAwMDAlMjklMjIlMjBzdHJva2UlM0QlMjIlMjMwMDAwMDAlMjIlMjBvcGFjaXR5JTNEJTIy'@; put 'MC4xNSUyMiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BhdGglMjBkJTNEJTIyTTAuOTUlMkMwLjEyJTIwTDAuOTUlMkM4NDAuMTIlMjIlMjBpZCUzRCUyMlNoYXBlJTIyJTNFJTNDJTJGcGF0aCUzRSUwRCUwQSUyMCUyMCUyMCUy'@; put 'MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRmclM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZnJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTNDJTJGZyUzRSUwRCUwQSUzQyUyRnN2ZyUzRSk7YmFja2dyb3VuZC1zaXplOjEwMCU7YmFja2dyb3VuZC1wb3NpdGlvbjpj'@; put 'YWxjKDU4MCooMXJlbS92YXIoLS1jZHMtZ2xvYmFsLWJhc2UpKSkgMDtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXR9LmxvZ2luLXdyYXBwZXIgLmxvZ2lue2JhY2tncm91bmQ6dmFyKC0tY2xyLWxvZ2luLWJhY2tncm91bmQtY29sb3IpO3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6Zmxl'@; put 'eDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpO2hlaWdodDphdXRvO21pbi1oZWlnaHQ6MTAwdmg7d2lkdGg6Y2FsYyg1ODAqKDFyZW0vdmFyKC0tY2RzLWdsb2Jh'@; put 'bC1iYXNlKSkpfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZm9vdGVyLC5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4taGVhZGVye2Rpc3BsYXk6ZmxleDt3aWR0aDoxMDAlO2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXJ9LmxvZ2luLXdyYXBwZXIgLmxvZ2lu'@; put 'IC5sb2dpbi1mb290ZXIgLmFjdGlvbnMsLmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1oZWFkZXIgLmFjdGlvbnN7bWFyZ2luLWxlZnQ6YXV0b30ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWhlYWRlciAubG9nb3toZWlnaHQ6MTZweDt3aWR0aDoxMDAlO21hc2s6dXJsKGRhdGE6'@; put 'aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsXCAlM0NzdmclMjB3aWR0aCUzRCUyMjEwNSUyMiUyMGhlaWdodCUzRCUyMjE2JTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTA1JTIwMTYlMjIlMjBmaWxsJTNEJTIybm9uZSUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5v'@; put 'cmclMkYyMDAwJTJGc3ZnJTIyJTNFJTBBJTNDcGF0aCUyMGQlM0QlMjJNNDQuOTM3MSUyMDE0LjhMNDAuMzU5OCUyMDIuMDAwODJDNDAuMjkzMiUyMDEuODAwOTQlMjA0MC4yMjY2JTIwMS42MDEwNiUyMDQwLjIyNjYlMjAxLjQwMTE3QzQwLjIyNjYlMjAwLjg2ODE1MyUyMDQwLjY5MyUyMDAu'@; put 'MzQxNzk3JTIwNDEuMzUyNiUyMDAuMzQxNzk3QzQxLjk1MjIlMjAwLjM0MTc5NyUyMDQyLjM0NTMlMjAwLjc0MTU2MyUyMDQyLjQ3ODYlMjAxLjI2NzkyTDQ2LjI1NjQlMjAxMi4yNzQ4TDUwLjEwMDglMjAxLjI2NzkyQzUwLjMwMDclMjAwLjczNDklMjA1MC42MzM4JTIwMC4zNDE3OTclMjA1'@; put 'MS4yMjY4JTIwMC4zNDE3OTdINTEuMzZDNTEuOTU5NyUyMDAuMzQxNzk3JTIwNTIuMzUyOCUyMDAuNzQxNTYzJTIwNTIuNTUyNyUyMDEuMjY3OTJMNTYuMzMwNSUyMDEyLjI3NDhMNjAuMTc0OSUyMDEuMjAxMjlDNjAuMzA4MiUyMDAuNzM0OTAxJTIwNjAuNjQxMyUyMDAuMzQxNzk3JTIwNjEu'@; put 'MjM0MyUyMDAuMzQxNzk3QzYxLjkwMDYlMjAwLjM0MTc5NyUyMDYyLjM2MDMlMjAwLjgwODE4OCUyMDYyLjM2MDMlMjAxLjQwMTE3QzYyLjM2MDMlMjAxLjYwMTA2JTIwNjIuMjkzNiUyMDEuODY3NTclMjA2Mi4yMjclMjAyLjAwMDgyTDU3LjU4MzElMjAxNC44QzU3LjMxNjYlMjAxNS40NjYz'@; put 'JTIwNTYuODUwMiUyMDE1Ljc5MjglMjA1Ni4zMjM4JTIwMTUuNzkyOEg1Ni4yNTcyQzU1LjY1NzUlMjAxNS43OTI4JTIwNTUuMjY0NCUyMDE1LjQ1OTYlMjA1NC45OTc5JTIwMTQuOEw1MS4yODY4JTIwMy45MjYzNkw0Ny41MDklMjAxNC44QzQ3LjMwOTElMjAxNS40NjYzJTIwNDYuODQ5NCUy'@; put 'MDE1Ljc5MjglMjA0Ni4zMTYzJTIwMTUuNzkyOEg0Ni4yNDk3QzQ1LjY1MDElMjAxNS43OTI4JTIwNDUuMTkwMyUyMDE1LjQ1OTYlMjA0NC45MjM4JTIwMTQuOEg0NC45MzcxWiUyMiUyMGZpbGwlM0QlMjIlMjM3MTcxNzUlMjIlMkYlM0UlMEElM0NwYXRoJTIwZCUzRCUyMk03OC4zNTI1JTIw'@; put 'MS40Njc4Qzc4LjM1MjUlMjAwLjg2ODE1MiUyMDc4LjgxODklMjAwLjM0MTc5NyUyMDc5LjQ3ODUlMjAwLjM0MTc5N0M4MC4xMzgyJTIwMC4zNDE3OTclMjA4MC42MDQ1JTIwMC44MDgxODclMjA4MC42MDQ1JTIwMS40Njc4VjQuMDUyOTZDODEuNzMwNiUyMDEuNTM0NDMlMjA4NC4xODI1JTIw'@; put 'MC4zNDE3OTclMjA4NS44NDE1JTIwMC4zNDE3OTdDODYuNTAxMSUyMDAuMzQxNzk3JTIwODYuOTY3NSUyMDAuODA4MTg3JTIwODYuOTY3NSUyMDEuNDY3OEM4Ni45Njc1JTIwMi4wNjc0NSUyMDg2LjU2NzclMjAyLjUyNzE4JTIwODUuOTc0NyUyMDIuNTkzODFDODMuMDU2NCUyMDIuOTI2OTUl'@; put 'MjA4MC42NzEyJTIwNS4xMTIzNCUyMDgwLjY3MTIlMjA5LjQ4OTc4VjE0LjU5MzVDODAuNjcxMiUyMDE1LjE5MzElMjA4MC4yMDQ4JTIwMTUuNzE5NSUyMDc5LjU0NTIlMjAxNS43MTk1Qzc4Ljg4NTYlMjAxNS43MTk1JTIwNzguNDE5MiUyMDE1LjE4NjQlMjA3OC40MTkyJTIwMTQuNTkzNVYx'@; put 'LjQ2MTE0JTIyJTIwZmlsbCUzRCUyMiUyMzcxNzE3NSUyMiUyRiUzRSUwQSUzQ3BhdGglMjBkJTNEJTIyTTk0LjEyOTQlMjAxNS45MjcyQzkwLjA4NTElMjAxNS45MjcyJTIwODYuNzA3JTIwMTIuNzQyNCUyMDg2LjcwNyUyMDguMTcxN1Y4LjEwNTA4Qzg2LjcwNyUyMDMuNzk0MjclMjA4OS42'@; put 'OTE5JTIwMC4zNDk2MDklMjA5My44MDI5JTIwMC4zNDk2MDlDOTguMTgwMyUyMDAuMzQ5NjA5JTIwMTAwLjY5OSUyMDMuOTk0MTUlMjAxMDAuNjk5JTIwNy45MTE4NkMxMDAuNjk5JTIwOC41MTE1MSUyMDEwMC4yMzIlMjA4Ljk3MTIzJTIwOTkuNjM5NSUyMDguOTcxMjNIODguODk5MUM4OS4y'@; put 'MzIyJTIwMTIuMjIyNyUyMDkxLjQ4NDIlMjAxNC4wMDgzJTIwOTQuMTM2JTIwMTQuMDA4M0M5NS45OTQ5JTIwMTQuMDA4MyUyMDk3LjMyMDglMjAxMy4yODIlMjA5OC4zODAyJTIwMTIuMjgyNkM5OC41ODAxJTIwMTIuMTQ5NCUyMDk4Ljc4JTIwMTIuMDE2MSUyMDk5LjAzOTglMjAxMi4wMTYx'@; put 'Qzk5LjU3MjglMjAxMi4wMTYxJTIwMTAwLjAzMyUyMDEyLjQ4MjUlMjAxMDAuMDMzJTIwMTIuOTQyMkMxMDAuMDMzJTIwMTMuMjA4OCUyMDk5Ljg5OTMlMjAxMy40NzUzJTIwOTkuNjk5NCUyMDEzLjY2ODVDOTguMzA2OSUyMDE0Ljk5NDQlMjA5Ni42NDc5JTIwMTUuOTIwNSUyMDk0LjEyOTQl'@; put 'MjAxNS45MjA1VjE1LjkyNzJaTTk4LjUwNjglMjA3LjIzODkxQzk4LjMwNjklMjA0LjUyMDUxJTIwOTYuNzE0NSUyMDIuMTM1MjMlMjA5My44MDI5JTIwMi4xMzUyM0M5MS4yMTc3JTIwMi4xMzUyMyUyMDg5LjI5MjIlMjA0LjMyMDYyJTIwODguOTY1NyUyMDcuMjM4OTFIOTguNTEzNUg5OC41'@; put 'MDY4WiUyMiUyMGZpbGwlM0QlMjIlMjM3MTcxNzUlMjIlMkYlM0UlMEElM0NwYXRoJTIwZCUzRCUyMk02Mi4zNzUlMjAxMS4yMTU4QzYyLjM3NSUyMDcuOTY0NCUyMDY1LjAyNjglMjA2LjMwNTM3JTIwNjguODA0NiUyMDYuMzA1MzdDNzAuNzMwMSUyMDYuMzA1MzclMjA3Mi4xMjI2JTIwNi41'@; put 'NzE4OCUyMDczLjQ0MTklMjA2Ljk3MTY1VjYuNDM4NjNDNzMuNDQxOSUyMDMuNzIwMjIlMjA3MS43ODI4JTIwMi4zMjc3JTIwNjguOTMxMiUyMDIuMzI3N0M2Ny40MDU0JTIwMi4zMjc3JTIwNjYuNTQ1OSUyMDIuNTI3NTglMjA2NS40MTk5JTIwMi45OTM5N0M2NS4yODY2JTIwMy4wNjA2JTIw'@; put 'NjUuMTUzNCUyMDMuMDYwNiUyMDY1LjAyMDElMjAzLjA2MDZDNjQuNDg3MSUyMDMuMDYwNiUyMDY0LjAyNzQlMjAyLjU5NDIxJTIwNjQuMDI3NCUyMDIuMDY3ODVDNjQuMDI3NCUyMDEuNjAxNDYlMjA2NC4yMjczJTIwMS4zNDE2MSUyMDY0LjYyNyUyMDEuMTQxNzJDNjYuMDg2MiUyMDAuNDc1'@; put 'NDQ3JTIwNjcuMjEyMiUyMDAuMjgyMjI3JTIwNjkuMTM3NyUyMDAuMjgyMjI3QzcxLjI1NjUlMjAwLjI4MjIyNyUyMDcyLjkxNTUlMjAwLjgxNTI1MiUyMDczLjk3NDklMjAxLjk0MTI2Qzc0Ljk2NzYlMjAyLjkzNDAxJTIwNzUuNTAwNyUyMDQuMzkzMTYlMjA3NS41MDA3JTIwNi4zMTg3VjE0'@; put 'LjYwNzJDNzUuNTAwNyUyMDE1LjI3MzUlMjA3NS4wMzQzJTIwMTUuNzMzMiUyMDc0LjQ0MTMlMjAxNS43MzMyQzczLjc3NSUyMDE1LjczMzIlMjA3My4zODE5JTIwMTUuMjY2OCUyMDczLjM4MTklMjAxNC42NzM4VjEzLjIxNDdDNzIuMzIyNSUyMDE0LjYwNzIlMjA3MC41OTY5JTIwMTUuNzk5'@; put 'OCUyMDY3Ljk0NTElMjAxNS43OTk4QzY1LjIyNjclMjAxNS45MzMxJTIwNjIuMzc1JTIwMTQuMzQwNyUyMDYyLjM3NSUyMDExLjIyMjVWMTEuMjE1OFpNNzMuNTE1MiUyMDEwLjA4OThWOC42MzA2OEM3Mi4zODkxJTIwOC4yOTc1NCUyMDcwLjkzJTIwNy45NjQ0JTIwNjkuMDcxMSUyMDcuOTY0'@; put 'NEM2Ni4yMTk0JTIwNy45NjQ0JTIwNjQuNjkzNyUyMDkuMjIzNjYlMjA2NC42OTM3JTIwMTEuMDgyNlYxMS4xNDkyQzY0LjY5MzclMjAxMy4wNzQ3JTIwNjYuNDE5MyUyMDE0LjEzNDElMjA2OC40NzE0JTIwMTQuMTM0MUM3MS4yNTY1JTIwMTQuMTM0MSUyMDczLjUwODUlMjAxMi40NzUxJTIw'@; put 'NzMuNTA4NSUyMDEwLjA4OThINzMuNTE1MlolMjIlMjBmaWxsJTNEJTIyJTIzNzE3MTc1JTIyJTJGJTNFJTBBJTNDcGF0aCUyMGQlM0QlMjJNNC4xMDIyMiUyMDEuMjY4NjJDMy42MzU4MyUyMDAuMjA5MjM3JTIwMi4zNzY1NiUyMC0wLjMyMzc4NyUyMDEuMjUwNTUlMjAwLjIwOTIzNUMwLjEy'@; put 'NDU0NSUyMDAuNzQyMjU2JTIwLTAuMjc1MjE4JTIwMi4wMDE1MiUyMDAuMTkxMTc2JTIwMy4wNjA5TDQuOTYxNzIlMjAxMy40NzQ4QzUuNjg3OTYlMjAxNS4xMzM4JTIwNi40ODc0OSUyMDE1LjkyNjclMjA4LjAxMzI3JTIwMTUuOTI2N0M5LjUzOTA0JTIwMTUuOTI2NyUyMDEwLjI2NTMlMjAx'@; put 'NS4wMDA2JTIwMTEuMDY0OCUyMDEzLjQ3NDhDMTEuMDY0OCUyMDEzLjQ3NDglMjAxNS4yNDI0JTIwNC4zODY3OSUyMDE1LjMwOSUyMDQuMzI2ODNDMTUuMzc1NiUyMDQuMjYwMiUyMDE1LjUwODklMjAzLjkyNzA2JTIwMTUuOTA4NiUyMDMuOTI3MDZDMTYuMjQxOCUyMDMuOTI3MDYlMjAxNi41'@; put 'NjgzJTIwNC4xOTM1NyUyMDE2LjU2ODMlMjA0LjU5MzM0VjEzLjQ4MTVDMTYuNTY4MyUyMDE0Ljg3NCUyMDE3LjI5NDUlMjAxNiUyMDE4LjgyMDMlMjAxNkMyMC4zNDYxJTIwMTYlMjAyMS4wNzIzJTIwMTQuODc0JTIwMjEuMDcyMyUyMDEzLjQ4MTVWNi4xODU3NEMyMS4wNzIzJTIwNC43OTMy'@; put 'MiUyMDIyLjA2NSUyMDMuODY3MSUyMDIzLjQ1NzYlMjAzLjg2NzFDMjQuODUwMSUyMDMuODY3MSUyMDI1LjcwOTYlMjA0Ljc5MzIyJTIwMjUuNzA5NiUyMDYuMTg1NzRWMTMuNDgxNUMyNS43MDk2JTIwMTQuODc0JTIwMjYuNDQyNSUyMDE2JTIwMjcuOTYxNiUyMDE2QzI5LjQ4MDclMjAxNiUy'@; put 'MDMwLjIxMzYlMjAxNC44NzQlMjAzMC4yMTM2JTIwMTMuNDgxNVY2LjE4NTc0QzMwLjIxMzYlMjA0Ljc5MzIyJTIwMzEuMjA2NCUyMDMuODY3MSUyMDMyLjU5ODklMjAzLjg2NzFDMzMuOTkxNCUyMDMuODY3MSUyMDM0Ljg1MDklMjA0Ljc5MzIyJTIwMzQuODUwOSUyMDYuMTg1NzRWMTMuNDgx'@; put 'NUMzNC44NTA5JTIwMTQuODc0JTIwMzUuNTc3MSUyMDE2JTIwMzcuMTAyOSUyMDE2QzM4LjYyODclMjAxNiUyMDM5LjM1NDklMjAxNC44NzQlMjAzOS4zNTQ5JTIwMTMuNDgxNVY1LjE5Mjk5QzM5LjM1NDklMjAyLjE0MTQ0JTIwMzYuOTAzJTIwMC4wMjI2NzgxJTIwMzMuOTg0NyUyMDAuMDIy'@; put 'Njc4MUMzMS4wNjY0JTIwMC4wMjI2NzgxJTIwMjkuMjE0MiUyMDIuMDgxNDglMjAyOS4yMTQyJTIwMi4wODE0OEMyOC4wODgyJTIwMC44MjIyMTMlMjAyNi43NjIzJTIwMC4wMjI2NzgxJTIwMjQuNTEwMyUyMDAuMDIyNjc4MUMyMi4xMjUlMjAwLjAyMjY3ODElMjAxOS45OTk2JTIwMi4wODE0'@; put 'OCUyMDE5Ljk5OTYlMjAyLjA4MTQ4QzE5LjAwNjglMjAwLjgyMjIxMyUyMDE3LjM0NzglMjAwLjAyMjY3ODElMjAxNS45NTUzJTIwMC4wMjI2NzgxQzEzLjgzNjUlMjAwLjAyMjY3ODElMjAxMi4xMTA5JTIwMC45NDg4MDUlMjAxMS4xMTgxJTIwMy4zNDA3NEw4LjA2NjU3JTIwMTAuNTY5OEw0'@; put 'LjA4ODg5JTIwMS4yODg2MUw0LjEwMjIyJTIwMS4yNjg2MlolMjIlMjBmaWxsJTNEJTIyJTIzNzE3MTc1JTIyJTJGJTNFJTBBJTNDcGF0aCUyMGQlM0QlMjJNMTAwLjg5MiUyMDIuMjAwNzFDMTAwLjg5MiUyMDEuMTQxMzMlMjAxMDEuNjg0JTIwMC4zNDE3OTclMjAxMDIuNzUxJTIwMC4zNDE3'@; put 'OTdDMTAzLjgxNyUyMDAuMzQxNzk3JTIwMTA0LjYwOSUyMDEuMjAxMjklMjAxMDQuNjA5JTIwMi4yMDA3MUMxMDQuNjA5JTIwMy4yMDAxMyUyMDEwMy44MTclMjA0LjA1OTYyJTIwMTAyLjc1MSUyMDQuMDU5NjJDMTAxLjc1OCUyMDQuMDU5NjIlMjAxMDAuODkyJTIwMy4yMDAxMyUyMDEwMC44'@; put 'OTIlMjAyLjIwMDcxWk0xMDQuMjclMjAyLjIwMDcxQzEwNC4yNyUyMDEuMzQxMjElMjAxMDMuNjElMjAwLjY3NDkzNSUyMDEwMi43NDQlMjAwLjY3NDkzNUMxMDEuODc4JTIwMC42NzQ5MzUlMjAxMDEuMjE4JTIwMS40MDExOCUyMDEwMS4yMTglMjAyLjIwMDcxQzEwMS4yMTglMjAzLjA2MDIx'@; put 'JTIwMTAxLjg3OCUyMDMuNzI2NDglMjAxMDIuNzQ0JTIwMy43MjY0OEMxMDMuNjElMjAzLjcyNjQ4JTIwMTA0LjI3JTIwMy4wMDAyNCUyMDEwNC4yNyUyMDIuMjAwNzFaJTIyJTIwZmlsbCUzRCUyMiUyMzcxNzE3NSUyMiUyRiUzRSUwQSUzQ3BhdGglMjBkJTNEJTIyTTEwMi4wODUlMjAxLjQw'@; put 'MjAzQzEwMi4wODUlMjAxLjI2ODc3JTIwMTAyLjE1MiUyMDEuMjAyMTUlMjAxMDIuMjg1JTIwMS4yMDIxNUgxMDIuODg1QzEwMy4xNTElMjAxLjIwMjE1JTIwMTAzLjI4NCUyMDEuMjY4NzclMjAxMDMuNDE4JTIwMS40MDIwM0MxMDMuNTUxJTIwMS41MzUyOCUyMDEwMy41NTElMjAxLjY2ODU0'@; put 'JTIwMTAzLjU1MSUyMDEuODAxNzlDMTAzLjU1MSUyMDIuMDY4MyUyMDEwMy40MTglMjAyLjI2ODE5JTIwMTAzLjIxOCUyMDIuMzM0ODJMMTAzLjQ4NCUyMDIuNjY3OTZDMTAzLjUyOSUyMDIuNzEyMzclMjAxMDMuNTUxJTIwMi43NTY3OSUyMDEwMy41NTElMjAyLjgwMTIxQzEwMy41NTElMjAy'@; put 'LjkzNDQ2JTIwMTAzLjQ4NCUyMDMuMDAxMDklMjAxMDMuMzUxJTIwMy4wMDEwOUMxMDMuMjg0JTIwMy4wMDEwOSUyMDEwMy4yMTglMjAyLjkzNDQ3JTIwMTAzLjE1MSUyMDIuODY3ODRMMTAyLjc1MSUyMDIuNDAxNDRIMTAyLjQxOFYyLjgwMTIxQzEwMi40MTglMjAyLjkzNDQ2JTIwMTAyLjM1'@; put 'MiUyMDMuMDAxMDklMjAxMDIuMjE4JTIwMy4wMDEwOUMxMDIuMDg1JTIwMy4wMDEwOSUyMDEwMi4wMTklMjAyLjkzNDQ2JTIwMTAyLjAxOSUyMDIuODAxMjFWMS40MDg2OUgxMDIuMDg1VjEuNDAyMDNaTTEwMi44NzglMjAyLjEyODI3QzEwMy4wNzglMjAyLjEyODI3JTIwMTAzLjIxMSUyMDEu'@; put 'OTk1MDIlMjAxMDMuMjExJTIwMS44NjE3NkMxMDMuMjExJTIwMS42NjE4OCUyMDEwMy4wNzglMjAxLjU5NTI1JTIwMTAyLjg3OCUyMDEuNTk1MjVIMTAyLjQ3OFYyLjEyODI3SDEwMi44NzhaJTIyJTIwZmlsbCUzRCUyMiUyMzcxNzE3NSUyMiUyRiUzRSUwQSUzQyUyRnN2ZyUzRSUwQSk7LXdl'@; put 'YmtpdC1tYXNrLXJlcGVhdDpuby1yZXBlYXQ7bWFzay1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWxvZ2luLWxvZ28tY29sb3IpfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZm9vdGVye2dhcDp2YXIoLS1jbHItbG9naW4tZm9vdGVyLWdhcCl9Lmxv'@; put 'Z2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1mb290ZXIgYSwubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWZvb3RlciAuY29weXJpZ2h0e2ZvbnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jYXB0aW9uLWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFz'@; put 'LXR5cG9ncmFwaHktY2FwdGlvbi1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY2FwdGlvbi1saW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY2FwdGlvbi1sZXR0ZXItc3BhY2luZyk7Y29sb3I6'@; put 'dmFyKC0tY2xyLWxvZ2luLWNvcHlyaWdodC1jb2xvcil9LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ib2R5e2hlaWdodDoxMDAlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7d2lkdGg6Y2Fs'@; put 'YygzMjAqKDFyZW0vdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAudGl0bGV7Zm9udC1zaXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWRpc3BsYXktZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1kaXNw'@; put 'bGF5LWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1kaXNwbGF5LWxpbmUtaGVpZ2h0KTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1kaXNwbGF5LWxldHRlci1zcGFjaW5nKTtjb2xvcjp2YXIoLS1jbHItbG9naW4t'@; put 'dGl0bGUtY29sb3IpfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAudGl0bGUgLndlbGNvbWV7Y29sb3I6dmFyKC0tY2xyLWxvZ2luLXdlbGNvbWUtY29sb3IpO21hcmdpbjowIDAgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KSAwfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAudGl0bGUgLnN1YnRpdGxl'@; put 'LC5sb2dpbi13cmFwcGVyIC5sb2dpbiAudGl0bGUgLmhpbnR7Zm9udC1zaXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY3Rpb24tZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWN0aW9uLWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2'@; put 'YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWN0aW9uLWxpbmUtaGVpZ2h0KTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWN0aW9uLWxldHRlci1zcGFjaW5nKTtjb2xvcjp2YXIoLS1jbHItbG9naW4taGludC1jb2xvcik7bWFyZ2luOnZhcigtLWNkcy1n'@; put 'bG9iYWwtc3BhY2UtNSkgMCAwIDB9LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC50cmFkZW1hcmt7Y29sb3I6dmFyKC0tY2xyLWxvZ2luLXRyYWRlbWFyay1jb2xvcik7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWxvZ2luLXRyYWRlbWFyay1mb250LXdlaWdodCk7Zm9udC1mYW1pbHk6dmFyKC0tY2xy'@; put 'LWxvZ2luLXRyYWRlbWFyay1mb250LWZhbWlseSk7Zm9udC1zaXplOnZhcigtLWNsci1sb2dpbi10cmFkZW1hcmstZm9udC1zaXplKTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jbHItbG9naW4tdHJhZGVtYXJrLWxldHRlci1zcGFjaW5nKX0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdy'@; put 'b3Vwe2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cGFkZGluZy10b3A6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMyk7d2lkdGg6MTAwJX0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5hdXRoLXNvdXJjZSwubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2lu'@; put 'LWdyb3VwIC51c2VybmFtZSwubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5wYXNzd29yZCwubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5jaGVja2JveCwubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5jbHItZm9ybS1jb250cm9se21hcmdp'@; put 'bjowIDAgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KSAwfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLmNsci1jaGVja2JveC13cmFwcGVye21hcmdpbjowIDAgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMykgMH0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3Vw'@; put 'IC5jbHItY29udHJvbC1jb250YWluZXJ7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLmNsci1jb250cm9sLWNvbnRhaW5lciAuY2xyLXNlbGVjdC13cmFwcGVyLC5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLmNs'@; put 'ci1jb250cm9sLWNvbnRhaW5lciAuY2xyLXNlbGVjdHt3aWR0aDoxMDAlfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLmNsci1jb250cm9sLWNvbnRhaW5lciAuY2xyLWlucHV0LXdyYXBwZXI+LmNsci1pbnB1dHt3aWR0aDoxMDAlfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAu'@; put 'bG9naW4tZ3JvdXAgLmNsci1jb250cm9sLWNvbnRhaW5lciAuY2xyLWlucHV0LXdyYXBwZXJ7d2lkdGg6MTAwJX0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5jbHItY29udHJvbC1jb250YWluZXIgLmNsci1pbnB1dC13cmFwcGVyPi5jbHItaW5wdXQtZ3JvdXB7bWF4LXdp'@; put 'ZHRoOjEwMCU7d2lkdGg6MTAwJX0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5jbHItY29udHJvbC1jb250YWluZXIgLmNsci1pbnB1dC13cmFwcGVyPi5jbHItaW5wdXQtZ3JvdXA+LmNsci1pbnB1dHt3aWR0aDpjYWxjKDEwMCUgLSB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNl'@; put 'LTkpKX0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC50b29sdGlwLXZhbGlkYXRpb257bWFyZ2luLXRvcDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTQpfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLnRvb2x0aXAtdmFsaWRhdGlvbiAudXNlcm5hbWUsLmxv'@; put 'Z2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAudG9vbHRpcC12YWxpZGF0aW9uIC5wYXNzd29yZHt3aWR0aDoxMDAlO21hcmdpbi10b3A6MH0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5lcnJvcntmb250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHkt'@; put 'c2Vjb25kYXJ5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDpjYWxjKDIwKigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtYWxpYXMt'@; put 'dHlwb2dyYXBoeS1zZWNvbmRhcnktbGV0dGVyLXNwYWNpbmcpO2Rpc3BsYXk6bm9uZTtwYWRkaW5nOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSk7YmFja2dyb3VuZDp2YXIoLS1jbHItbG9naW4tZXJyb3ItYmFja2dyb3VuZC1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWRhbmdlci1m'@; put 'b250LWNvbG9yKTtib3JkZXItcmFkaXVzOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXJhZGl1cy0xMDApO2JvcmRlcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0aC0xMDApIHNvbGlkIHZhcigtLWNsci1hbGVydC1kYW5nZXItYm9yZGVyLWNvbG9yKX0ubG9naW4t'@; put 'd3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5lcnJvcjpiZWZvcmV7Y29udGVudDoiIjttYXNrOnVybCgiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmclMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIwdmlld0JveCUzRCUyMjUlMjA1JTIwMjYlMjAyNiUyMiUyMHByZXNl'@; put 'cnZlQXNwZWN0UmF0aW8lM0QlMjJ4TWlkWU1pZCUyMG1lZXQlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHhtbG5zJTNBeGxpbmslM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4bGluayUyMiUzRSUzQ2RlZnMl'@; put 'M0UlM0NzdHlsZSUzRS5jbHItaS1vdXRsaW5lJTdCZmlsbCUzQSdub25lJyUzQiU3RCUzQyUyRnN0eWxlJTNFJTNDJTJGZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RpdGxlJTNFZXhjbGFtYXRpb24tY2lyY2xlLWxpbmUlM0Ml'@; put 'MkZ0aXRsZSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BhdGglMjBjbGFzcyUzRCUyMmNsci1pLW91dGxpbmUlMjBjbHItaS1vdXRsaW5lLXBhdGgtMSUyMiUyMGQlM0QlMjJNMTglMkM2QTEyJTJDMTIlMkMwJTJDMSUyQzAlMkMzMCUy'@; put 'QzE4JTJDMTIlMkMxMiUyQzAlMkMwJTJDMCUyQzE4JTJDNlptMCUyQzIyQTEwJTJDMTAlMkMwJTJDMSUyQzElMkMyOCUyQzE4JTJDMTAlMkMxMCUyQzAlMkMwJTJDMSUyQzE4JTJDMjhaJTIyJTNFJTNDJTJGcGF0aCUzRSUzQ3BhdGglMjBjbGFzcyUzRCUyMmNsci1pLW91dGxpbmUlMjBjbHIt'@; put 'aS1vdXRsaW5lLXBhdGgtMiUyMiUyMGQlM0QlMjJNMTglMkMyMC4wN2ExLjMlMkMxLjMlMkMwJTJDMCUyQzEtMS4zLTEuM3YtNmExLjMlMkMxLjMlMkMwJTJDMSUyQzElMkMyLjYlMkMwdjZBMS4zJTJDMS4zJTJDMCUyQzAlMkMxJTJDMTglMkMyMC4wN1olMjIlM0UlM0MlMkZwYXRoJTNFJTND'@; put 'Y2lyY2xlJTIwY2xhc3MlM0QlMjJjbHItaS1vdXRsaW5lJTIwY2xyLWktb3V0bGluZS1wYXRoLTMlMjIlMjBjeCUzRCUyMjE3Ljk1JTIyJTIwY3klM0QlMjIyMy4wMiUyMiUyMHIlM0QlMjIxLjUlMjIlM0UlM0MlMkZjaXJjbGUlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl'@; put 'MjAlMjAlM0MlMkZzdmclM0UiKTstd2Via2l0LW1hc2stcmVwZWF0Om5vLXJlcGVhdDttYXNrLXJlcGVhdDpuby1yZXBlYXQ7LXdlYmtpdC1tYXNrLXNpemU6Y292ZXI7bWFzay1zaXplOmNvdmVyO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWxvZ2luLWVycm9yLWljb24tY29sb3IpO21h'@; put 'cmdpbjp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEpIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNCkgMCAwO2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpO3dpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyl9LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAuZXJy'@; put 'b3IuYWN0aXZle2Rpc3BsYXk6ZmxleH0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5lcnJvci5hY3RpdmU6YmVmb3Jle2ZsZXg6MCAwIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyl9LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAuYnRue21hcmdpbjp2YXIo'@; put 'LS1jZHMtZ2xvYmFsLXNwYWNlLTUpIDA7bWF4LXdpZHRoOm5vbmV9LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAuc2lnbnVwe2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWJvZHktZm9udC13ZWlnaHQpO2ZvbnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMt'@; put 'dHlwb2dyYXBoeS1ib2R5LWZvbnQtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1ib2R5LWxldHRlci1zcGFjaW5nKTt0ZXh0LWFsaWduOmNlbnRlcn0ubG9naW4td3JhcHBlciAubG9n'@; put 'aW46YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO3dpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSk7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsYWNrKTtvcGFjaXR5Oi4xO3RvcDowO3JpZ2h0OmNhbGMo'@; put 'LTEqdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0yKSl9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo3NjhweCl7LmxvZ2luLXdyYXBwZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlcjtiYWNrZ3JvdW5kOnZhcigtLWNsci1sb2dpbi1iYWNrZ3JvdW5kLWNvbG9yKX0ubG9naW4td3JhcHBlciAu'@; put 'bG9naW57d2lkdGg6MTAwJTttYXJnaW4tbGVmdDowO3BhZGRpbmc6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KSAyMCV9LmxvZ2luLXdyYXBwZXIgLmxvZ2luOmFmdGVye2NvbnRlbnQ6bm9uZX19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo1NzZweCl7LmxvZ2luLXdyYXBwZXIgLmxv'@; put 'Z2lue3BhZGRpbmc6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KSAxNSV9fS5tYWluLWNvbnRhaW5lcntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2hlaWdodDoxMDB2aDtiYWNrZ3JvdW5kOnZhcigtLWNsci1nbG9iYWwtYXBwLWJhY2tncm91bmQpfS5tYWluLWNvbnRhaW5l'@; put 'ciAuYWxlcnQuYWxlcnQtYXBwLWxldmVse2ZsZXg6MCAwIGF1dG87b3ZlcmZsb3cteDpoaWRkZW59Lm1haW4tY29udGFpbmVyIGhlYWRlciwubWFpbi1jb250YWluZXIgLmhlYWRlcntmbGV4OjAgMCB2YXIoLS1jbHItaGVhZGVyLWhlaWdodCl9Lm1haW4tY29udGFpbmVyIC5zdWItbmF2LC5t'@; put 'YWluLWNvbnRhaW5lciAuc3VibmF2e2ZsZXg6MCAwIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTEpfS5tYWluLWNvbnRhaW5lciAudS1tYWluLWNvbnRhaW5lcntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXg6MSAxIGF1dG87b3ZlcmZsb3c6aGlkZGVufS5tYWluLWNv'@; put 'bnRhaW5lciAuY29udGVudC1jb250YWluZXJ7ZGlzcGxheTpmbGV4O2ZsZXg6MSAxIGF1dG87bWluLWhlaWdodDouMDVyZW19Lm1haW4tY29udGFpbmVyIC5jb250ZW50LWNvbnRhaW5lciAuY29udGVudC1hcmVhe2ZsZXg6MSAxIGF1dG87b3ZlcmZsb3cteTphdXRvOy13ZWJraXQtb3ZlcmZs'@; put 'b3ctc2Nyb2xsaW5nOnRvdWNoO3BhZGRpbmc6MS4ycmVtfS5tYWluLWNvbnRhaW5lciAuY29udGVudC1jb250YWluZXIgLmNvbnRlbnQtYXJlYT46Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDowfS5tYWluLWNvbnRhaW5lciAuY29udGVudC1jb250YWluZXIgLmNsci12ZXJ0aWNhbC1uYXZ7Zmxl'@; put 'eDowIDAgYXV0bztvcmRlcjotMX1AbWVkaWEgcHJpbnR7Lm1haW4tY29udGFpbmVye2hlaWdodDphdXRvfX1ib2R5Lm5vLXNjcm9sbGluZyxib2R5W2Nkcy1sYXlvdXQ9bm8tc2Nyb2xsaW5nXSxib2R5Lm5vLXNjcm9sbGluZyAubWFpbi1jb250YWluZXIgLmNvbnRlbnQtY29udGFpbmVyIC5j'@; put 'b250ZW50LWFyZWEsYm9keVtjZHMtbGF5b3V0PW5vLXNjcm9sbGluZ10gLm1haW4tY29udGFpbmVyIC5jb250ZW50LWNvbnRhaW5lciAuY29udGVudC1hcmVhe292ZXJmbG93OmhpZGRlbn06cm9vdCBbY2RzLXRoZW1lXXstLWNsci1tb2RhbC1ib3JkZXItcmFkaXVzOnZhcigtLWNkcy1hbGlh'@; put 'cy1vYmplY3QtYm9yZGVyLXJhZGl1cy0xMDApOy0tY2xyLW1vZGFsLWNsb3NlLWNvbG9yOnZhcigtLWNsci1jbG9zZS1jb2xvcik7LS1jbHItbW9kYWwtYmctY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1jb250YWluZXItYmFja2dyb3VuZCk7LS1jbHItbW9kYWwtY29udGVudC1ib3gt'@; put 'c2hhZG93OnZhcigtLWNkcy1hbGlhcy1vYmplY3Qtc2hhZG93LTMwMCk7LS1jbHItbW9kYWwtYmFja2Ryb3AtY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1vdmVybGF5LWJhY2tkcm9wLWJhY2tncm91bmQpOy0tY2xyLW1vZGFsLXNtLXdpZHRoOmNhbGMoMjg4ICogKDFyZW0gLyB2YXIo'@; put 'LS1jZHMtZ2xvYmFsLWJhc2UpKSk7LS1jbHItbW9kYWwtbWQtd2lkdGg6Y2FsYyg1NzYgKiAoMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTstLWNsci1tb2RhbC1sZy13aWR0aDpjYWxjKDg2NCAqICgxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpOy0tY2xyLW1vZGFsLXhs'@; put 'LXdpZHRoOmNhbGMoMTE1MiAqICgxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpOy0tY2xyLW1vZGFsLXRpdGxlLWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTQwMCk7LS1jbHItbW9kYWwtdGl0bGUtZm9udC1zaXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3Jh'@; put 'cGh5LXNlY3Rpb24tZm9udC1zaXplKTstLWNsci1tb2RhbC10aXRsZS1mb250LWZhbWlseTp2YXIoLS1jbHItZm9udCk7LS1jbHItbW9kYWwtdGl0bGUtZm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2VjdGlvbi1mb250LXdlaWdodCk7LS1jbHItbW9kYWwtdGl0bGUt'@; put 'bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2VjdGlvbi1saW5lLWhlaWdodCk7LS1jbHItbW9kYWwtdGl0bGUtbGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2VjdGlvbi1sZXR0ZXItc3BhY2luZyl9LmNsci1zaWRlLXBhbmVsLXBpbm5l'@; put 'ZC1zbXtwYWRkaW5nLXJpZ2h0OnZhcigtLWNsci1tb2RhbC1zbS13aWR0aCkhaW1wb3J0YW50fS5jbHItc2lkZS1wYW5lbC1waW5uZWQtbWR7cGFkZGluZy1yaWdodDp2YXIoLS1jbHItbW9kYWwtbWQtd2lkdGgpIWltcG9ydGFudH0uY2xyLXNpZGUtcGFuZWwtcGlubmVkLWxne3BhZGRpbmct'@; put 'cmlnaHQ6dmFyKC0tY2xyLW1vZGFsLWxnLXdpZHRoKSFpbXBvcnRhbnR9LmNsci1zaWRlLXBhbmVsLXBpbm5lZC14bHtwYWRkaW5nLXJpZ2h0OnZhcigtLWNsci1tb2RhbC14bC13aWR0aCkhaW1wb3J0YW50fS5jbHItbW9kYWwtaG9zdHtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRp'@; put 'dmV9LmNsci1tb2RhbC1ob3N0IC5tb2RhbCwuY2xyLW1vZGFsLWhvc3QgLm1vZGFsLWJhY2tkcm9we3Bvc2l0aW9uOmFic29sdXRlfS5tb2RhbHtwb3NpdGlvbjpmaXhlZDtpbnNldDowO3otaW5kZXg6MTA1MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29u'@; put 'dGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6Y2FsYyh2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpKjIpO21heC13aWR0aDoxMDAlfS5tb2RhbCAuYWxlcnQrLm1vZGFsLWhlYWRlciwubW9kYWwgLmFsZXJ0Ky5tb2RhbC1oZWFkZXItLWFjY2Vzc2libGV7bWFyZ2luLXRv'@; put 'cDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTYpfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NTc2cHgpey5tb2RhbHtwYWRkaW5nOmNhbGModmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KS8yKX19Lm1vZGFsIC5tb2RhbC1ib2R5e3BhZGRpbmc6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05'@; put 'KX0uc2lkZS1wYW5lbCAubW9kYWx7bGVmdDppbml0aWFsO3BhZGRpbmc6MDtoZWlnaHQ6MTAwJX0uc2lkZS1wYW5lbCAubW9kYWwgLm1vZGFsLWNvbnRlbnQtd3JhcHBlcntoZWlnaHQ6MTAwJX0uc2lkZS1wYW5lbCAubW9kYWwgLm1vZGFsLWNvbnRlbnQtd3JhcHBlciAubW9kYWwtY29udGVu'@; put 'dHtoZWlnaHQ6MTAwJTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5zaWRlLXBhbmVsIC5tb2RhbCAubW9kYWwtZGlhbG9ne2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDtoZWlnaHQ6MTAwJX0uc2lkZS1wYW5lbCAubW9kYWwubW9kYWwtZnVsbC1zY3JlZW57aW5zZXQ6MDtw'@; put 'YWRkaW5nOjB9LnNpZGUtcGFuZWwgLm1vZGFsIC5tb2RhbC1ib2R5LXdyYXBwZXJ7ZmxleDoxIDE7bWF4LWhlaWdodDoxMDAlfS5tb2RhbC1kaWFsb2d7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxMDUwO3dpZHRoOnZhcigtLWNsci1tb2RhbC1tZC13aWR0aCk7Ym9yZGVyLXJhZGl1czp2'@; put 'YXIoLS1jbHItbW9kYWwtYm9yZGVyLXJhZGl1cyk7Ym94LXNoYWRvdzp2YXIoLS1jbHItbW9kYWwtY29udGVudC1ib3gtc2hhZG93KTtib3JkZXI6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMTAwKSBzb2xpZCB2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWNvbnRhaW5lci1i'@; put 'b3JkZXItY29sb3IpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLW1vZGFsLWJnLWNvbG9yKTttYXgtd2lkdGg6MTAwJX0ubW9kYWwtZGlhbG9nLm1vZGFsLXNte3dpZHRoOnZhcigtLWNsci1tb2RhbC1zbS13aWR0aCl9Lm1vZGFsLWRpYWxvZy5tb2RhbC1sZ3t3aWR0aDp2YXIoLS1jbHIt'@; put 'bW9kYWwtbGctd2lkdGgpfS5tb2RhbC1kaWFsb2cubW9kYWwteGx7d2lkdGg6dmFyKC0tY2xyLW1vZGFsLXhsLXdpZHRoKX0ubW9kYWwtaGVhZGVyLC5tb2RhbC1oZWFkZXItLWFjY2Vzc2libGV7Ym9yZGVyLWJvdHRvbTpub25lO3BhZGRpbmc6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KSB2'@; put 'YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpIDB9Lm1vZGFsLWhlYWRlcisubW9kYWwtZm9vdGVyLC5tb2RhbC1oZWFkZXItLWFjY2Vzc2libGUrLm1vZGFsLWZvb3RlcntwYWRkaW5nLXRvcDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpfS5tb2RhbC1oZWFkZXItLWFjY2Vzc2libGV7ZGlzcGxh'@; put 'eTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9Lm1vZGFsLWhlYWRlciAubW9kYWwtdGl0bGUsLm1vZGFsLWhlYWRlci0tYWNjZXNzaWJsZSAubW9kYWwtdGl0bGUsLm1vZGFsLWhlYWRlciAuc2lkZS1wYW5lbC10aXRsZSwubW9kYWwt'@; put 'aGVhZGVyLS1hY2Nlc3NpYmxlIC5zaWRlLXBhbmVsLXRpdGxle2NvbG9yOnZhcigtLWNsci1tb2RhbC10aXRsZS1jb2xvcik7Zm9udC1zaXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY3Rpb24tZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBo'@; put 'eS1zZWN0aW9uLWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWN0aW9uLWxpbmUtaGVpZ2h0KTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWN0aW9uLWxldHRlci1zcGFjaW5nKTttYXJnaW46MH0ubW9kYWwt'@; put 'aGVhZGVyIC5tb2RhbC10aXRsZTpub3QoW2Nkcy10ZXh0XSksLm1vZGFsLWhlYWRlci0tYWNjZXNzaWJsZSAubW9kYWwtdGl0bGU6bm90KFtjZHMtdGV4dF0pLC5tb2RhbC1oZWFkZXIgLnNpZGUtcGFuZWwtdGl0bGU6bm90KFtjZHMtdGV4dF0pLC5tb2RhbC1oZWFkZXItLWFjY2Vzc2libGUg'@; put 'LnNpZGUtcGFuZWwtdGl0bGU6bm90KFtjZHMtdGV4dF0pe2ZvbnQtZmFtaWx5OnZhcigtLWNsci1tb2RhbC10aXRsZS1mb250LWZhbWlseSk7Zm9udC1zaXplOnZhcigtLWNsci1tb2RhbC10aXRsZS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1tb2RhbC10aXRsZS1mb250LXdl'@; put 'aWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tY2xyLW1vZGFsLXRpdGxlLWxpbmUtaGVpZ2h0KTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jbHItbW9kYWwtdGl0bGUtbGV0dGVyLXNwYWNpbmcpfS5tb2RhbC1oZWFkZXIgLmNsb3NlLC5tb2RhbC1oZWFkZXItLWFjY2Vzc2libGUgLmNsb3NlLC5tb2Rh'@; put 'bC1oZWFkZXIgLnBpbm5hYmxlLC5tb2RhbC1oZWFkZXItLWFjY2Vzc2libGUgLnBpbm5hYmxle2ZvbnQtc2l6ZTppbml0aWFsO2xpbmUtaGVpZ2h0OmluaXRpYWx9Lm1vZGFsLWhlYWRlciAuY2xvc2UgY2RzLWljb24sLm1vZGFsLWhlYWRlci0tYWNjZXNzaWJsZSAuY2xvc2UgY2RzLWljb24s'@; put 'Lm1vZGFsLWhlYWRlciAuY2xvc2UgY2xyLWljb24sLm1vZGFsLWhlYWRlci0tYWNjZXNzaWJsZSAuY2xvc2UgY2xyLWljb24sLm1vZGFsLWhlYWRlciAucGlubmFibGUgY2RzLWljb24sLm1vZGFsLWhlYWRlci0tYWNjZXNzaWJsZSAucGlubmFibGUgY2RzLWljb24sLm1vZGFsLWhlYWRlciAu'@; put 'cGlubmFibGUgY2xyLWljb24sLm1vZGFsLWhlYWRlci0tYWNjZXNzaWJsZSAucGlubmFibGUgY2xyLWljb257ZmlsbDp2YXIoLS1jbHItbW9kYWwtY2xvc2UtY29sb3IpO2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpO3dpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSl9Lm1v'@; put 'ZGFsLWhlYWRlciAuY2xvc2U6aG92ZXIgY2RzLWljb24sLm1vZGFsLWhlYWRlci0tYWNjZXNzaWJsZSAuY2xvc2U6aG92ZXIgY2RzLWljb24sLm1vZGFsLWhlYWRlciAuY2xvc2U6aG92ZXIgY2xyLWljb24sLm1vZGFsLWhlYWRlci0tYWNjZXNzaWJsZSAuY2xvc2U6aG92ZXIgY2xyLWljb24s'@; put 'Lm1vZGFsLWhlYWRlciAucGlubmFibGU6aG92ZXIgY2RzLWljb24sLm1vZGFsLWhlYWRlci0tYWNjZXNzaWJsZSAucGlubmFibGU6aG92ZXIgY2RzLWljb24sLm1vZGFsLWhlYWRlciAucGlubmFibGU6aG92ZXIgY2xyLWljb24sLm1vZGFsLWhlYWRlci0tYWNjZXNzaWJsZSAucGlubmFibGU6'@; put 'aG92ZXIgY2xyLWljb257ZmlsbDp2YXIoLS1jbHItY2xvc2UtY29sb3ItaG92ZXIpfS5tb2RhbC1oZWFkZXIgLmNsb3NlOmhvdmVyOmFjdGl2ZSBjZHMtaWNvbiwubW9kYWwtaGVhZGVyLS1hY2Nlc3NpYmxlIC5jbG9zZTpob3ZlcjphY3RpdmUgY2RzLWljb24sLm1vZGFsLWhlYWRlciAuY2xv'@; put 'c2U6aG92ZXI6YWN0aXZlIGNsci1pY29uLC5tb2RhbC1oZWFkZXItLWFjY2Vzc2libGUgLmNsb3NlOmhvdmVyOmFjdGl2ZSBjbHItaWNvbiwubW9kYWwtaGVhZGVyIC5waW5uYWJsZTpob3ZlcjphY3RpdmUgY2RzLWljb24sLm1vZGFsLWhlYWRlci0tYWNjZXNzaWJsZSAucGlubmFibGU6aG92'@; put 'ZXI6YWN0aXZlIGNkcy1pY29uLC5tb2RhbC1oZWFkZXIgLnBpbm5hYmxlOmhvdmVyOmFjdGl2ZSBjbHItaWNvbiwubW9kYWwtaGVhZGVyLS1hY2Nlc3NpYmxlIC5waW5uYWJsZTpob3ZlcjphY3RpdmUgY2xyLWljb257ZmlsbDp2YXIoLS1jbHItY2xvc2UtY29sb3ItYWN0aXZlKX0ubW9kYWwt'@; put 'aGVhZGVyIC5waW5uYWJsZSwubW9kYWwtaGVhZGVyLS1hY2Nlc3NpYmxlIC5waW5uYWJsZXtwYWRkaW5nOjA7Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZDowIDA7Ym9yZGVyOjA7bWFyZ2luLXJpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNik7YXBwZWFyYW5jZTpub25lOy13ZWJraXQt'@; put 'YXBwZWFyYW5jZTpub25lfS5tb2RhbC10aXRsZS13cmFwcGVye2ZsZXg6MX0ubW9kYWwtdGl0bGUtd3JhcHBlciAubW9kYWwtdGl0bGUgaDMsLm1vZGFsLXRpdGxlLXdyYXBwZXIgLnNpZGUtcGFuZWwtdGl0bGUgaDN7bWFyZ2luLXRvcDowfS5tb2RhbC1ib2R5LXdyYXBwZXJ7bWF4LWhlaWdo'@; put 'dDo3MHZoO292ZXJmbG93LXk6YXV0bztvdmVyZmxvdy14OmhpZGRlbn0ubW9kYWwtYm9keS13cmFwcGVyIC5tb2RhbC1ib2R5LC5tb2RhbC1ib2R5LXdyYXBwZXIgLnNpZGUtcGFuZWwtYm9keXtjb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci00MDApO2ZvbnQtc2l6ZTp2'@; put 'YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1ib2R5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktYm9keS1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktYm9keS1saW5lLWhlaWdodCk7bGV0dGVyLXNw'@; put 'YWNpbmc6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktYm9keS1sZXR0ZXItc3BhY2luZyl9Lm1vZGFsLWJvZHktd3JhcHBlcj46Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDowfS5tb2RhbC1ib2R5LXdyYXBwZXI+Omxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5tb2RhbC1mb290ZXJ7cGFk'@; put 'ZGluZzowIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSkgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KX0ubW9kYWwtZm9vdGVyLC5zaWRlLXBhbmVsLWZvb3RlcntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO2dhcDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpfS5tb2Rh'@; put 'bC1mb290ZXIgLmJ0biwuc2lkZS1wYW5lbC1mb290ZXIgLmJ0bnttYXJnaW46MH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjc2OHB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSl7Lm1vZGFsLWJvZHktd3JhcHBlcnttYXgtaGVpZ2h0OjU1dmh9fUBtZWRpYSBzY3JlZW4gYW5k'@; put 'IChtYXgtd2lkdGg6NTc2cHgpey5tb2RhbC1ib2R5LXdyYXBwZXJ7bWF4LWhlaWdodDo1NXZofX0ubW9kYWwtYmFja2Ryb3B7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1tb2RhbC1iYWNrZHJvcC1jb2xvcik7ei1pbmRleDoxMDQwfS5tb2RhbCAu'@; put 'bW9kYWwtbmF2e2Rpc3BsYXk6bm9uZX0ubW9kYWwubW9kYWwtZnVsbC1zY3JlZW57cGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpO2hlaWdodDoxMDAlfS5tb2RhbC5tb2RhbC1mdWxsLXNjcmVlbiAubW9kYWwtZGlhbG9ne2Rpc3BsYXk6ZmxleDt3aWR0aDoxMDAlO2hlaWdodDox'@; put 'MDAlfS5tb2RhbC5tb2RhbC1mdWxsLXNjcmVlbiAubW9kYWwtZGlhbG9nIC5tb2RhbC1jb250ZW50LXdyYXBwZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtZ3JvdzoxfS5tb2RhbC5tb2RhbC1mdWxsLXNjcmVlbiAubW9kYWwtZGlhbG9nIC5tb2RhbC1jb250ZW50e2Rpc3BsYXk6ZmxleDtmbGV4LWRp'@; put 'cmVjdGlvbjpjb2x1bW47ZmxleC1ncm93OjF9Lm1vZGFsLm1vZGFsLWZ1bGwtc2NyZWVuIC5tb2RhbC1kaWFsb2cgLm1vZGFsLWJvZHktd3JhcHBlciwubW9kYWwubW9kYWwtZnVsbC1zY3JlZW4gLm1vZGFsLWRpYWxvZyAubW9kYWwtYm9keXtmbGV4LWdyb3c6MTttYXgtaGVpZ2h0OjEwMCV9'@; put 'OnJvb3QgW2Nkcy10aGVtZV17LS1jbHItaGVhZGVyLWhlaWdodDpjYWxjKDYwICogKDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UpKSk7LS1jbHItaGVhZGVyLWRpdmlkZXItY29sb3I6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tNjAwKTstLWNsci1oZWFkZXItYmct'@; put 'Y29sb3I6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb29sLWdyYXktMTAwMCk7LS1jbHItaGVhZGVyLTItYmctY29sb3I6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tODAwKTstLWNsci1oZWFkZXItMy1iZy1jb2xvcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWF6dXJlLTkw'@; put 'MCk7LS1jbHItaGVhZGVyLTQtYmctY29sb3I6dmFyKC0tY2xyLWhlYWRlci0zLWJnLWNvbG9yKTstLWNsci1oZWFkZXItNS1iZy1jb2xvcjp2YXIoLS1jbHItaGVhZGVyLTMtYmctY29sb3IpOy0tY2xyLWhlYWRlci02LWJnLWNvbG9yOnZhcigtLWNsci1oZWFkZXItYmctY29sb3IpOy0tY2xy'@; put 'LWhlYWRlci03LWJnLWNvbG9yOnZhcigtLWNsci1oZWFkZXItMi1iZy1jb2xvcik7LS1jbHItaGVhZGVyLWZvbnQtY29sb3I6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tMTAwKTstLWNsci1oZWFkZXItZm9udC1jb2xvci1ob3Zlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9y'@; put 'LWNvbnN0cnVjdGlvbi01MCk7LS1jbHItaGVhZGVyLXRpdGxlLWZvbnQtd2VpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zdWJzZWN0aW9uLWZvbnQtd2VpZ2h0KTstLWNsci1oZWFkZXItdGl0bGUtZm9udC1mYW1pbHk6dmFyKC0tY2xyLWZvbnQpOy0tY2xyLWhlYWRlci1zZWFy'@; put 'Y2gtaWNvbi1zaXplOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSk7LS1jbHItaGVhZGVyLXNlYXJjaC1tYXJnaW4tbGVmdDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpOy0tY2xyLWhlYWRlci1zZWFyY2gtbWFyZ2luLXJpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7LS1jbHItaGVh'@; put 'ZGVyLXNlYXJjaC1nYXA6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KTstLWNsci1oZWFkZXItc2VhcmNoLWlucHV0LWZvbnQtY29sb3I6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci13aGl0ZSk7LS1jbHItaGVhZGVyLXNlYXJjaC1wbGFjZWhvbGRlci1mb250LXdlaWdodDp2YXIoLS1jZHMtZ2xv'@; put 'YmFsLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtcmVndWxhcik7LS1jbHItaGVhZGVyLXNlYXJjaC1wbGFjZWhvbGRlci10ZXh0LWNvbG9yOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTQwMCk7LS1jbHItaGVhZGVyLXNlYXJjaC1ib3JkZXItYWN0aXZlOnZhcigtLWNkcy1h'@; put 'bGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTEwMCkgc29saWQgSGlnaGxpZ2h0Oy0tY2xyLWhlYWRlci1zZWFyY2gtYm9yZGVyLWhvdmVyOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTEwMCkgc29saWQgdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tNDAw'@; put 'KX1oZWFkZXIsLmhlYWRlcntkaXNwbGF5OmZsZXg7Y29sb3I6dmFyKC0tY2xyLWhlYWRlci1mb250LWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1oZWFkZXItYmctY29sb3IpO2hlaWdodDp2YXIoLS1jbHItaGVhZGVyLWhlaWdodCk7d2hpdGUtc3BhY2U6bm93cmFwfWhlYWRl'@; put 'ci5oZWFkZXItMSwuaGVhZGVyLmhlYWRlci0xe2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWhlYWRlci1iZy1jb2xvcil9aGVhZGVyLmhlYWRlci0yLC5oZWFkZXIuaGVhZGVyLTJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItaGVhZGVyLTItYmctY29sb3IpfWhlYWRlci5oZWFkZXIt'@; put 'MywuaGVhZGVyLmhlYWRlci0ze2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWhlYWRlci0zLWJnLWNvbG9yKX1oZWFkZXIuaGVhZGVyLTQsLmhlYWRlci5oZWFkZXItNHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1oZWFkZXItNC1iZy1jb2xvcil9aGVhZGVyLmhlYWRlci01LC5oZWFk'@; put 'ZXIuaGVhZGVyLTV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItaGVhZGVyLTUtYmctY29sb3IpfWhlYWRlci5oZWFkZXItNiwuaGVhZGVyLmhlYWRlci02e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWhlYWRlci02LWJnLWNvbG9yKX1oZWFkZXIuaGVhZGVyLTcsLmhlYWRlci5oZWFk'@; put 'ZXItN3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1oZWFkZXItNy1iZy1jb2xvcil9aGVhZGVyLmhlYWRlci04LC5oZWFkZXIuaGVhZGVyLTh7YmFja2dyb3VuZC1jb2xvcjojMGYxNzFjfWhlYWRlciAuYnJhbmRpbmcsLmhlYWRlciAuYnJhbmRpbmd7ZGlzcGxheTpmbGV4O2ZsZXg6MCAw'@; put 'IGF1dG87bWluLXdpZHRoOmNhbGMoMjA0KigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTtwYWRkaW5nOjAgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KX1oZWFkZXIgLmJyYW5kaW5nPmEsaGVhZGVyIC5icmFuZGluZz4ubmF2LWxpbmssLmhlYWRlciAuYnJhbmRpbmc+YSwuaGVhZGVy'@; put 'IC5icmFuZGluZz4ubmF2LWxpbmt7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Z2FwOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSk7cGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpfWhlYWRlciAuYnJhbmRpbmc+YTpm'@; put 'b2N1cyxoZWFkZXIgLmJyYW5kaW5nPi5uYXYtbGluazpmb2N1cywuaGVhZGVyIC5icmFuZGluZz5hOmZvY3VzLC5oZWFkZXIgLmJyYW5kaW5nPi5uYXYtbGluazpmb2N1c3tvdXRsaW5lLW9mZnNldDpjYWxjKC0xKnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNCkpfWhlYWRlciAuYnJhbmRpbmcg'@; put 'LmNsci1pY29uLGhlYWRlciAuYnJhbmRpbmcgY2RzLWljb24saGVhZGVyIC5icmFuZGluZyBjbHItaWNvbiwuaGVhZGVyIC5icmFuZGluZyAuY2xyLWljb24sLmhlYWRlciAuYnJhbmRpbmcgY2RzLWljb24sLmhlYWRlciAuYnJhbmRpbmcgY2xyLWljb257ZmxleC1ncm93OjA7ZmxleC1zaHJp'@; put 'bms6MDtoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMSk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMSl9aGVhZGVyIC5icmFuZGluZyAudGl0bGUsLmhlYWRlciAuYnJhbmRpbmcgLnRpdGxle2NvbG9yOnZhcigtLWNsci1oZWFkZXItZm9udC1jb2xvcik7Zm9udC1mYW1p'@; put 'bHk6dmFyKC0tY2xyLWhlYWRlci10aXRsZS1mb250LWZhbWlseSk7Zm9udC1zaXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXN1YnNlY3Rpb24tZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jbHItaGVhZGVyLXRpdGxlLWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1j'@; put 'ZHMtYWxpYXMtdHlwb2dyYXBoeS1zdWJzZWN0aW9uLWxpbmUtaGVpZ2h0KTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zdWJzZWN0aW9uLWxldHRlci1zcGFjaW5nKTt0ZXh0LWRlY29yYXRpb246bm9uZX1oZWFkZXIgLnNldHRpbmdzIC5uYXYtdGV4dCxoZWFk'@; put 'ZXIgLmhlYWRlci1uYXYgLm5hdi10ZXh0LGhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi10ZXh0LC5oZWFkZXIgLnNldHRpbmdzIC5uYXYtdGV4dCwuaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtdGV4dCwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LXRleHR7Zm9udC1zaXplOnZhcigt'@; put 'LWNkcy1hbGlhcy10eXBvZ3JhcGh5LWJvZHktZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1ib2R5LWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10'@; put 'eXBvZ3JhcGh5LWJvZHktbGV0dGVyLXNwYWNpbmcpfWhlYWRlciAuc2V0dGluZ3MgY2xyLWljb24saGVhZGVyIC5oZWFkZXItbmF2IGNsci1pY29uLGhlYWRlciAuaGVhZGVyLWFjdGlvbnMgY2xyLWljb24sLmhlYWRlciAuc2V0dGluZ3MgY2xyLWljb24sLmhlYWRlciAuaGVhZGVyLW5hdiBj'@; put 'bHItaWNvbiwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucyBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItaGVhZGVyLWZvbnQtY29sb3IpfWhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rLGhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmssaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbmss'@; put 'LmhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGlua3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWFsaWduOmNlbnRl'@; put 'cjtwYWRkaW5nOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOCkgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTt0ZXh0LWRlY29yYXRpb246bm9uZTtjb2xvcjp2YXIoLS1jbHItaGVhZGVyLWZvbnQtY29sb3IpfWhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rOmhvdmVyLGhlYWRlciAuaGVhZGVy'@; put 'LW5hdiAubmF2LWxpbms6aG92ZXIsaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbms6aG92ZXIsLmhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rOmhvdmVyLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmhvdmVyLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluazpo'@; put 'b3Zlcntjb2xvcjp2YXIoLS1jbHItaGVhZGVyLWZvbnQtY29sb3ItaG92ZXIpfWhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rOmRpc2FibGVkLGhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbms6ZGlzYWJsZWQsaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbms6ZGlzYWJsZWQsLmhl'@; put 'YWRlciAuc2V0dGluZ3MgLm5hdi1saW5rOmRpc2FibGVkLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmRpc2FibGVkLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluazpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWR9aGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmsgY2Rz'@; put 'LWljb24saGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmsgY2xyLWljb24saGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluayBjZHMtaWNvbixoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rIGNsci1pY29uLGhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rIGNkcy1pY29uLGhlYWRl'@; put 'ciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rIGNsci1pY29uLC5oZWFkZXIgLnNldHRpbmdzIC5uYXYtbGluayBjZHMtaWNvbiwuaGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmsgY2xyLWljb24sLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsgY2RzLWljb24sLmhlYWRlciAuaGVhZGVy'@; put 'LW5hdiAubmF2LWxpbmsgY2xyLWljb24sLmhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rIGNkcy1pY29uLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluayBjbHItaWNvbntoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTt3aWR0aDp2YXIoLS1jZHMtZ2xvYmFs'@; put 'LXNwYWNlLTkpfWhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rLm5hdi1pY29uLXRleHQsaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluay5uYXYtaWNvbi10ZXh0LGhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rLm5hdi1pY29uLXRleHQsLmhlYWRlciAuc2V0dGluZ3MgLm5hdi1s'@; put 'aW5rLm5hdi1pY29uLXRleHQsLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsubmF2LWljb24tdGV4dCwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbmsubmF2LWljb24tdGV4dHtnYXA6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS00KX1oZWFkZXIgLnNldHRpbmdzIC5uYXYtbGlu'@; put 'ay5uYXYtaWNvbi10ZXh0IGNkcy1pY29uLGhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rLm5hdi1pY29uLXRleHQgY2xyLWljb24saGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluay5uYXYtaWNvbi10ZXh0IGNkcy1pY29uLGhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsubmF2LWljb24t'@; put 'dGV4dCBjbHItaWNvbixoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluay5uYXYtaWNvbi10ZXh0IGNkcy1pY29uLGhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rLm5hdi1pY29uLXRleHQgY2xyLWljb24sLmhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rLm5hdi1pY29uLXRl'@; put 'eHQgY2RzLWljb24sLmhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rLm5hdi1pY29uLXRleHQgY2xyLWljb24sLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsubmF2LWljb24tdGV4dCBjZHMtaWNvbiwuaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluay5uYXYtaWNvbi10ZXh0IGNsci1p'@; put 'Y29uLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluay5uYXYtaWNvbi10ZXh0IGNkcy1pY29uLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluay5uYXYtaWNvbi10ZXh0IGNsci1pY29ue3RyYW5zZm9ybTpub25lfWhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rIC5uYXYt'@; put 'aWNvbisubmF2LXRleHQsaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluayAubmF2LWljb24rLm5hdi10ZXh0LGhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rIC5uYXYtaWNvbisubmF2LXRleHQsLmhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rIC5uYXYtaWNvbisubmF2LXRleHQs'@; put 'LmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsgLm5hdi1pY29uKy5uYXYtdGV4dCwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbmsgLm5hdi1pY29uKy5uYXYtdGV4dHtkaXNwbGF5Om5vbmV9aGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmsuYWN0aXZlIC5uYXYtdGV4dCxoZWFk'@; put 'ZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rLmFjdGl2ZSAubmF2LXRleHQsaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbmsuYWN0aXZlIC5uYXYtdGV4dCwuaGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmsuYWN0aXZlIC5uYXYtdGV4dCwuaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGlu'@; put 'ay5hY3RpdmUgLm5hdi10ZXh0LC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluay5hY3RpdmUgLm5hdi10ZXh0e2ZvbnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1ib2R5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZm9u'@; put 'dC13ZWlnaHQtc2VtaWJvbGQpO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktYm9keS1sZXR0ZXItc3BhY2luZyl9aGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbms6Zm9jdXMsaGVhZGVyIC5oZWFk'@; put 'ZXItbmF2IC5uYXYtbGluazpmb2N1cyxoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluazpmb2N1cywuaGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbms6Zm9jdXMsLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbms6Zm9jdXMsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5r'@; put 'OmZvY3Vze291dGxpbmUtb2Zmc2V0OmNhbGMoLTEqdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS00KSl9aGVhZGVyIC5oZWFkZXItbmF2LC5oZWFkZXIgLmhlYWRlci1uYXZ7ZGlzcGxheTpmbGV4O2ZsZXg6MCAwIGF1dG87YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlfWhlYWRl'@; put 'ciAuaGVhZGVyLW5hdjpiZWZvcmUsLmhlYWRlciAuaGVhZGVyLW5hdjpiZWZvcmV7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDoiIjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1oZWFkZXItZGl2aWRlci1jb2xvcik7aGVpZ2h0OnZhcigtLWNkcy1n'@; put 'bG9iYWwtc3BhY2UtMTEpO3dpZHRoOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTEwMCk7dG9wOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNik7bGVmdDowfWhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbms6Zmlyc3Qtb2YtdHlwZSxoZWFkZXIgLmhlYWRlci1uYXYgLm5h'@; put 'di1saW5rOmxhc3Qtb2YtdHlwZSwuaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluazpmaXJzdC1vZi10eXBlLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmxhc3Qtb2YtdHlwZXtwb3NpdGlvbjpyZWxhdGl2ZX1oZWFkZXIgLnNldHRpbmdzLGhlYWRlciAuaGVhZGVyLWFjdGlvbnMs'@; put 'LmhlYWRlciAuc2V0dGluZ3MsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnN7ZmxleDoxIDAgYXV0bztkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfWhlYWRlciAuc2V0dGluZ3M+Om5vdCguZHJvcGRvd24pOmJlZm9yZSxoZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93bj4uZHJv'@; put 'cGRvd24tdG9nZ2xlOmJlZm9yZSxoZWFkZXIgLmhlYWRlci1hY3Rpb25zPjpub3QoLmRyb3Bkb3duKTpiZWZvcmUsaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZTpiZWZvcmUsLmhlYWRlciAuc2V0dGluZ3M+Om5vdCguZHJvcGRvd24pOmJlZm9yZSwu'@; put 'aGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZTpiZWZvcmUsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnM+Om5vdCguZHJvcGRvd24pOmJlZm9yZSwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZTpiZWZvcmV7ZGlzcGxheTpp'@; put 'bmxpbmUtYmxvY2s7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDoiIjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1oZWFkZXItZGl2aWRlci1jb2xvcik7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTEpO3dpZHRoOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRo'@; put 'LTEwMCk7dG9wOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNik7bGVmdDowfWhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duPi5kcm9wZG93bi10b2dnbGUsaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZSwuaGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24+'@; put 'LmRyb3Bkb3duLXRvZ2dsZSwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZXtnYXA6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KTtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOCkgdmFyKC0tY2RzLWdsb2Jh'@; put 'bC1zcGFjZS03KTtvdXRsaW5lLW9mZnNldDpjYWxjKC0xKnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNCkpO2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjp2YXIoLS1jbHItaGVhZGVyLWZvbnQtY29sb3IpfWhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duPi5kcm9wZG93bi10b2dnbGU6aG92ZXIs'@; put 'aGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZTpob3ZlciwuaGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZTpob3ZlciwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZTpob3Zlcntj'@; put 'b2xvcjp2YXIoLS1jbHItaGVhZGVyLWZvbnQtY29sb3ItaG92ZXIpfWhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duPi5kcm9wZG93bi10b2dnbGU6ZGlzYWJsZWQsaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZTpkaXNhYmxlZCwuaGVhZGVyIC5zZXR0'@; put 'aW5ncz4uZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZTpkaXNhYmxlZCwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZTpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWR9aGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5u'@; put 'YXYtaWNvbiBjZHMtaWNvbjpub3QoW3NoYXBlXj1hbmdsZV0pLGhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LWljb24gY2xyLWljb246bm90KFtzaGFwZV49YW5nbGVdKSxoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJvcGRvd24tdG9n'@; put 'Z2xlLm5hdi1pY29uIGNkcy1pY29uOm5vdChbc2hhcGVePWFuZ2xlXSksaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtaWNvbiBjbHItaWNvbjpub3QoW3NoYXBlXj1hbmdsZV0pLC5oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93biAuZHJvcGRv'@; put 'd24tdG9nZ2xlLm5hdi1pY29uIGNkcy1pY29uOm5vdChbc2hhcGVePWFuZ2xlXSksLmhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LWljb24gY2xyLWljb246bm90KFtzaGFwZV49YW5nbGVdKSwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24g'@; put 'LmRyb3Bkb3duLXRvZ2dsZS5uYXYtaWNvbiBjZHMtaWNvbjpub3QoW3NoYXBlXj1hbmdsZV0pLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi1pY29uIGNsci1pY29uOm5vdChbc2hhcGVePWFuZ2xlXSl7aGVpZ2h0OnZhcigtLWNkcy1nbG9i'@; put 'YWwtc3BhY2UtOSk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KX1oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93biAuZHJvcGRvd24tbWVudSxoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJvcGRvd24tbWVudSwuaGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24gLmRy'@; put 'b3Bkb3duLW1lbnUsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRyb3Bkb3duIC5kcm9wZG93bi1tZW51e21hcmdpbi10b3A6Y2FsYygtMSp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpKTttYXJnaW4tcmlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KTtsZWZ0OmF1dG87cmlnaHQ6MH1o'@; put 'ZWFkZXIgLnNlYXJjaC1ib3gsaGVhZGVyIC5zZWFyY2gsLmhlYWRlciAuc2VhcmNoLWJveCwuaGVhZGVyIC5zZWFyY2h7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4OjAgMCBhdXRvO21heC13aWR0aDpjYWxjKDI4OCooMXJlbS92YXIoLS1jZHMtZ2xvYmFsLWJhc2UpKSk7'@; put 'cGFkZGluZzowO3Bvc2l0aW9uOnJlbGF0aXZlO2NvbG9yOnZhcigtLWNsci1oZWFkZXItZm9udC1jb2xvcil9aGVhZGVyIC5zZWFyY2gtYm94OmhvdmVyLGhlYWRlciAuc2VhcmNoOmhvdmVyLC5oZWFkZXIgLnNlYXJjaC1ib3g6aG92ZXIsLmhlYWRlciAuc2VhcmNoOmhvdmVye2NvbG9yOnZh'@; put 'cigtLWNsci1oZWFkZXItZm9udC1jb2xvci1ob3Zlcil9aGVhZGVyIC5zZWFyY2gtYm94OmRpc2FibGVkLGhlYWRlciAuc2VhcmNoOmRpc2FibGVkLC5oZWFkZXIgLnNlYXJjaC1ib3g6ZGlzYWJsZWQsLmhlYWRlciAuc2VhcmNoOmRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZH1oZWFkZXIg'@; put 'LnNlYXJjaC1ib3g6YmVmb3JlLGhlYWRlciAuc2VhcmNoOmJlZm9yZSwuaGVhZGVyIC5zZWFyY2gtYm94OmJlZm9yZSwuaGVhZGVyIC5zZWFyY2g6YmVmb3Jle2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6IiI7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1j'@; put 'bHItaGVhZGVyLWRpdmlkZXItY29sb3IpO2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTExKTt3aWR0aDp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0aC0xMDApO3RvcDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTYpO2xlZnQ6YXV0b31oZWFkZXIgLnNlYXJjaC1ib3g+'@; put 'Lm5hdi1pY29uLGhlYWRlciAuc2VhcmNoPi5uYXYtaWNvbiwuaGVhZGVyIC5zZWFyY2gtYm94Pi5uYXYtaWNvbiwuaGVhZGVyIC5zZWFyY2g+Lm5hdi1pY29ue21hcmdpbjowIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNCkgY2FsYygzKigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKSB2'@; put 'YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpfWhlYWRlciAuc2VhcmNoLWJveCBsYWJlbCxoZWFkZXIgLnNlYXJjaCBsYWJlbCwuaGVhZGVyIC5zZWFyY2gtYm94IGxhYmVsLC5oZWFkZXIgLnNlYXJjaCBsYWJlbHtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nLWxlZnQ6dmFyKC0tY2xyLWhl'@; put 'YWRlci1zZWFyY2gtZ2FwKTttYXJnaW4tbGVmdDp2YXIoLS1jbHItaGVhZGVyLXNlYXJjaC1tYXJnaW4tbGVmdCk7bWFyZ2luLXJpZ2h0OnZhcigtLWNsci1oZWFkZXItc2VhcmNoLW1hcmdpbi1yaWdodCk7dGV4dC1hbGlnbjpjZW50ZXJ9aGVhZGVyIC5zZWFyY2gtYm94IGxhYmVsOmJlZm9y'@; put 'ZSxoZWFkZXIgLnNlYXJjaCBsYWJlbDpiZWZvcmUsLmhlYWRlciAuc2VhcmNoLWJveCBsYWJlbDpiZWZvcmUsLmhlYWRlciAuc2VhcmNoIGxhYmVsOmJlZm9yZXtkaXNwbGF5OmlubGluZS1ibG9jaztjb250ZW50OiIiO2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtj'@; put 'aGFyc2V0PXV0ZjgsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAzNiUyMDM2JTIyJTNFJTNDZGVmcyUzRSUzQ3N0eWxlJTNFLmNscy0xJTdCZmlsbCUzQSUyM2ZmZmZmZiUzQiU3RCUzQyUy'@; put 'RnN0eWxlJTNFJTNDJTJGZGVmcyUzRSUzQ3RpdGxlJTNFU2VhcmNoJTNDJTJGdGl0bGUlM0UlM0NnJTIwaWQlM0QlMjJpY29ucyUyMiUzRSUzQ3BhdGglMjBjbGFzcyUzRCUyMmNscy0xJTIyJTIwZCUzRCUyMk0xNSUyQzQuMDVBMTAuOTUlMkMxMC45NSUyQzAlMkMxJTJDMSUyQzQuMDUlMkMx'@; put 'NSUyQzExJTJDMTElMkMwJTJDMCUyQzElMkMxNSUyQzQuMDVNMTUlMkMyQTEzJTJDMTMlMkMwJTJDMSUyQzAlMkMyOCUyQzE1JTJDMTMlMkMxMyUyQzAlMkMwJTJDMCUyQzE1JTJDMlolMjIlMkYlM0UlM0NwYXRoJTIwY2xhc3MlM0QlMjJjbHMtMSUyMiUyMCUyMGQlM0QlMjJNMzMuNzElMkMz'@; put 'Mi4yOWwtNy4zNy03LjQyLTEuNDIlMkMxLjQxJTJDNy4zNyUyQzcuNDJhMSUyQzElMkMwJTJDMSUyQzAlMkMxLjQyLTEuNDFaJTIyJTJGJTNFJTNDJTJGZyUzRSUzQyUyRnN2ZyUzRSk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTpjb250YWluO2N1cnNvcjpw'@; put 'b2ludGVyO2hlaWdodDp2YXIoLS1jbHItaGVhZGVyLXNlYXJjaC1pY29uLXNpemUpO3dpZHRoOnZhcigtLWNsci1oZWFkZXItc2VhcmNoLWljb24tc2l6ZSk7bWluLWhlaWdodDp2YXIoLS1jbHItaGVhZGVyLXNlYXJjaC1pY29uLXNpemUpO21pbi13aWR0aDp2YXIoLS1jbHItaGVhZGVyLXNl'@; put 'YXJjaC1pY29uLXNpemUpO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW46MDttYXJnaW4tcmlnaHQ6Y2FsYygtMSoodmFyKC0tY2xyLWhlYWRlci1zZWFyY2gtaWNvbi1zaXplKSArIHZhcigtLWNsci1oZWFkZXItc2VhcmNoLWdhcCkpKX1oZWFkZXIgLnNlYXJjaC1ib3ggbGFiZWwgaW5w'@; put 'dXQsaGVhZGVyIC5zZWFyY2ggbGFiZWwgaW5wdXQsLmhlYWRlciAuc2VhcmNoLWJveCBsYWJlbCBpbnB1dCwuaGVhZGVyIC5zZWFyY2ggbGFiZWwgaW5wdXR7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTttYXJnaW46YXV0b31oZWFkZXIgLnNlYXJjaC1ib3ggaW5wdXRb'@; put 'dHlwZT10ZXh0XSxoZWFkZXIgLnNlYXJjaCBpbnB1dFt0eXBlPXRleHRdLC5oZWFkZXIgLnNlYXJjaC1ib3ggaW5wdXRbdHlwZT10ZXh0XSwuaGVhZGVyIC5zZWFyY2ggaW5wdXRbdHlwZT10ZXh0XXtib3JkZXI6MDtiYWNrZ3JvdW5kOjAgMDtjb2xvcjp2YXIoLS1jbHItaGVhZGVyLXNlYXJj'@; put 'aC1pbnB1dC1mb250LWNvbG9yKTtib3JkZXItcmFkaXVzOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXJhZGl1cy0xMDApO2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTExKTtwYWRkaW5nOjAgMCAwIGNhbGModmFyKC0tY2xyLWhlYWRlci1zZWFyY2gtaWNvbi1zaXplKSAr'@; put 'IDIqdmFyKC0tY2xyLWhlYWRlci1zZWFyY2gtZ2FwKSk7dmVydGljYWwtYWxpZ246bWlkZGxlO2ZvbnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1ib2R5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtc2VtaWJv'@; put 'bGQpO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktYm9keS1sZXR0ZXItc3BhY2luZyl9aGVhZGVyIC5zZWFyY2gtYm94IGlucHV0W3R5cGU9dGV4dF06LXdlYmtpdC1hdXRvZmlsbCxoZWFkZXIg'@; put 'LnNlYXJjaC1ib3ggaW5wdXRbdHlwZT10ZXh0XTotd2Via2l0LWF1dG9maWxsOmZvY3VzLGhlYWRlciAuc2VhcmNoIGlucHV0W3R5cGU9dGV4dF06LXdlYmtpdC1hdXRvZmlsbCxoZWFkZXIgLnNlYXJjaCBpbnB1dFt0eXBlPXRleHRdOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsLmhlYWRlciAu'@; put 'c2VhcmNoLWJveCBpbnB1dFt0eXBlPXRleHRdOi13ZWJraXQtYXV0b2ZpbGwsLmhlYWRlciAuc2VhcmNoLWJveCBpbnB1dFt0eXBlPXRleHRdOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsLmhlYWRlciAuc2VhcmNoIGlucHV0W3R5cGU9dGV4dF06LXdlYmtpdC1hdXRvZmlsbCwuaGVhZGVyIC5z'@; put 'ZWFyY2ggaW5wdXRbdHlwZT10ZXh0XTotd2Via2l0LWF1dG9maWxsOmZvY3Vzey13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDBzIDYwMDAwMHMsY29sb3IgMHMgNjAwMDAwczt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgMHMgNjAwMDAwcyxjb2xvciAwcyA2MDAwMDBz'@; put 'fWhlYWRlciAuc2VhcmNoLWJveCBpbnB1dFt0eXBlPXRleHRdOjpwbGFjZWhvbGRlcixoZWFkZXIgLnNlYXJjaCBpbnB1dFt0eXBlPXRleHRdOjpwbGFjZWhvbGRlciwuaGVhZGVyIC5zZWFyY2gtYm94IGlucHV0W3R5cGU9dGV4dF06OnBsYWNlaG9sZGVyLC5oZWFkZXIgLnNlYXJjaCBpbnB1'@; put 'dFt0eXBlPXRleHRdOjpwbGFjZWhvbGRlcntjb2xvcjp2YXIoLS1jbHItaGVhZGVyLXNlYXJjaC1wbGFjZWhvbGRlci10ZXh0LWNvbG9yKTtmb250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktYm9keS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBv'@; put 'Z3JhcGh5LWJvZHktZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktYm9keS1sZXR0ZXItc3BhY2luZyl9aGVhZGVyIC5zZWFyY2gtYm94IGlucHV0W3R5cGU9dGV4dF06aG92'@; put 'ZXIsaGVhZGVyIC5zZWFyY2ggaW5wdXRbdHlwZT10ZXh0XTpob3ZlciwuaGVhZGVyIC5zZWFyY2gtYm94IGlucHV0W3R5cGU9dGV4dF06aG92ZXIsLmhlYWRlciAuc2VhcmNoIGlucHV0W3R5cGU9dGV4dF06aG92ZXJ7Ym9yZGVyOnZhcigtLWNsci1oZWFkZXItc2VhcmNoLWJvcmRlci1ob3Zl'@; put 'cil9aGVhZGVyIC5zZWFyY2gtYm94IGlucHV0W3R5cGU9dGV4dF06Zm9jdXMtdmlzaWJsZSxoZWFkZXIgLnNlYXJjaCBpbnB1dFt0eXBlPXRleHRdOmZvY3VzLXZpc2libGUsLmhlYWRlciAuc2VhcmNoLWJveCBpbnB1dFt0eXBlPXRleHRdOmZvY3VzLXZpc2libGUsLmhlYWRlciAuc2VhcmNo'@; put 'IGlucHV0W3R5cGU9dGV4dF06Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOjA7Ym9yZGVyOnZhcigtLWNsci1oZWFkZXItc2VhcmNoLWJvcmRlci1hY3RpdmUpfWhlYWRlciAuc2VhcmNoLWJveCBpbnB1dFt0eXBlPXRleHRdOmZvY3VzLGhlYWRlciAuc2VhcmNoLWJveCBpbnB1dFt0eXBlPXRleHRd'@; put 'OmFjdGl2ZSxoZWFkZXIgLnNlYXJjaCBpbnB1dFt0eXBlPXRleHRdOmZvY3VzLGhlYWRlciAuc2VhcmNoIGlucHV0W3R5cGU9dGV4dF06YWN0aXZlLC5oZWFkZXIgLnNlYXJjaC1ib3ggaW5wdXRbdHlwZT10ZXh0XTpmb2N1cywuaGVhZGVyIC5zZWFyY2gtYm94IGlucHV0W3R5cGU9dGV4dF06'@; put 'YWN0aXZlLC5oZWFkZXIgLnNlYXJjaCBpbnB1dFt0eXBlPXRleHRdOmZvY3VzLC5oZWFkZXIgLnNlYXJjaCBpbnB1dFt0eXBlPXRleHRdOmFjdGl2ZXtiYWNrZ3JvdW5kOjAgMH1oZWFkZXIgLmJyYW5kaW5nKy5zZWFyY2gsaGVhZGVyIC5icmFuZGluZysuc2VhcmNoLWJveCwuaGVhZGVyIC5i'@; put 'cmFuZGluZysuc2VhcmNoLC5oZWFkZXIgLmJyYW5kaW5nKy5zZWFyY2gtYm94e3Bvc2l0aW9uOnJlbGF0aXZlfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NzY4cHgpe2hlYWRlciAuc2VhcmNoLWJveCxoZWFkZXIgLnNlYXJjaCwuaGVhZGVyIC5zZWFyY2gtYm94LC5oZWFkZXIgLnNl'@; put 'YXJjaHtmbGV4OjEgMCBhdXRvO21heC13aWR0aDpub25lO2Rpc3BsYXk6bm9uZX1oZWFkZXIgLnNlYXJjaC1ib3ggbGFiZWwsaGVhZGVyIC5zZWFyY2ggbGFiZWwsLmhlYWRlciAuc2VhcmNoLWJveCBsYWJlbCwuaGVhZGVyIC5zZWFyY2ggbGFiZWx7cGFkZGluZzowfX1hOm5vdCguYnRuLC5u'@; put 'YXYtbGluaywuZHJvcGRvd24taXRlbSwubGFiZWwsLmFsZXJ0LWFjdGlvbiwuYmFkZ2UsLmNsci10cmVlbm9kZS1saW5rKXtmb250LXdlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1mb250LXdlaWdodC1yZWd1bGFyKTtmb250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFw'@; put 'aHktZm9udC1zaXplLTMpO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7bGV0dGVyLXNwYWNpbmc6Y2FsYygtLjEqKDFyZW0vdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpfWE6bm90KC5idG4sLm5hdi1saW5rLC5kcm9wZG93bi1pdGVtLC5sYWJlbCwuYWxlcnQtYWN0aW9u'@; put 'LC5iYWRnZSwuY2xyLXRyZWVub2RlLWxpbmspOmxpbmt7Y29sb3I6dmFyKC0tY2xyLWxpbmstY29sb3IpfWE6bm90KC5idG4sLm5hdi1saW5rLC5kcm9wZG93bi1pdGVtLC5sYWJlbCwuYWxlcnQtYWN0aW9uLC5iYWRnZSwuY2xyLXRyZWVub2RlLWxpbmspOmxpbms6aG92ZXJ7Y29sb3I6dmFy'@; put 'KC0tY2xyLWxpbmstaG92ZXItY29sb3IpfWE6bm90KC5idG4sLm5hdi1saW5rLC5kcm9wZG93bi1pdGVtLC5sYWJlbCwuYWxlcnQtYWN0aW9uLC5iYWRnZSwuY2xyLXRyZWVub2RlLWxpbmspOmxpbms6aG92ZXIgY2RzLWljb24sYTpub3QoLmJ0biwubmF2LWxpbmssLmRyb3Bkb3duLWl0ZW0s'@; put 'LmxhYmVsLC5hbGVydC1hY3Rpb24sLmJhZGdlLC5jbHItdHJlZW5vZGUtbGluayk6bGluazpob3ZlciBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItbGluay1ob3Zlci1jb2xvcil9YTpub3QoLmJ0biwubmF2LWxpbmssLmRyb3Bkb3duLWl0ZW0sLmxhYmVsLC5hbGVydC1hY3Rpb24sLmJhZGdl'@; put 'LC5jbHItdHJlZW5vZGUtbGluayk6bGluazphY3RpdmV7Y29sb3I6dmFyKC0tY2xyLWxpbmstYWN0aXZlLWNvbG9yKX1hOm5vdCguYnRuLC5uYXYtbGluaywuZHJvcGRvd24taXRlbSwubGFiZWwsLmFsZXJ0LWFjdGlvbiwuYmFkZ2UsLmNsci10cmVlbm9kZS1saW5rKTpsaW5rOmFjdGl2ZSBj'@; put 'ZHMtaWNvbixhOm5vdCguYnRuLC5uYXYtbGluaywuZHJvcGRvd24taXRlbSwubGFiZWwsLmFsZXJ0LWFjdGlvbiwuYmFkZ2UsLmNsci10cmVlbm9kZS1saW5rKTpsaW5rOmFjdGl2ZSBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItbGluay1hY3RpdmUtY29sb3IpfWE6bm90KC5idG4sLm5hdi1s'@; put 'aW5rLC5kcm9wZG93bi1pdGVtLC5sYWJlbCwuYWxlcnQtYWN0aW9uLC5iYWRnZSwuY2xyLXRyZWVub2RlLWxpbmspOnZpc2l0ZWR7Y29sb3I6dmFyKC0tY2xyLWxpbmstdmlzaXRlZC1jb2xvcil9YTpub3QoLmJ0biwubmF2LWxpbmssLmRyb3Bkb3duLWl0ZW0sLmxhYmVsLC5hbGVydC1hY3Rp'@; put 'b24sLmJhZGdlLC5jbHItdHJlZW5vZGUtbGluayk6dmlzaXRlZCBjZHMtaWNvbixhOm5vdCguYnRuLC5uYXYtbGluaywuZHJvcGRvd24taXRlbSwubGFiZWwsLmFsZXJ0LWFjdGlvbiwuYmFkZ2UsLmNsci10cmVlbm9kZS1saW5rKTp2aXNpdGVkIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1s'@; put 'aW5rLXZpc2l0ZWQtY29sb3IpfWE6bm90KC5idG4sLm5hdi1saW5rLC5kcm9wZG93bi1pdGVtLC5sYWJlbCwuYWxlcnQtYWN0aW9uLC5iYWRnZSwuY2xyLXRyZWVub2RlLWxpbmspOnZpc2l0ZWQ6aG92ZXJ7Y29sb3I6dmFyKC0tY2xyLWxpbmstdmlzaXRlZC1jb2xvci1ob3Zlcil9YTpub3Qo'@; put 'LmJ0biwubmF2LWxpbmssLmRyb3Bkb3duLWl0ZW0sLmxhYmVsLC5hbGVydC1hY3Rpb24sLmJhZGdlLC5jbHItdHJlZW5vZGUtbGluayk6dmlzaXRlZDpob3ZlciBjZHMtaWNvbixhOm5vdCguYnRuLC5uYXYtbGluaywuZHJvcGRvd24taXRlbSwubGFiZWwsLmFsZXJ0LWFjdGlvbiwuYmFkZ2Us'@; put 'LmNsci10cmVlbm9kZS1saW5rKTp2aXNpdGVkOmhvdmVyIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1saW5rLXZpc2l0ZWQtY29sb3ItaG92ZXIpfWEubGluay1ub3JtYWw6bGlua3tjb2xvcjp2YXIoLS1jbHItbGluay1jb2xvcil9YS5saW5rLWhvdmVyZWQ6bGlua3tjb2xvcjp2YXIoLS1j'@; put 'bHItbGluay1ob3Zlci1jb2xvcil9YS5saW5rLWNsaWNrZWQ6bGlua3tjb2xvcjp2YXIoLS1jbHItbGluay1hY3RpdmUtY29sb3IpfWEubGluay12aXNpdGVkOmxpbmt7Y29sb3I6dmFyKC0tY2xyLWxpbmstdmlzaXRlZC1jb2xvcil9YS5saW5rLXZpc2l0ZWQtaG92ZXI6bGlua3tjb2xvcjp2'@; put 'YXIoLS1jbHItbGluay12aXNpdGVkLWNvbG9yLWhvdmVyKX0ubmF2e2Rpc3BsYXk6ZmxleDtoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMSk7bGlzdC1zdHlsZS10eXBlOm5vbmU7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbjowO3dpZHRoOjEwMCU7d2hpdGUtc3BhY2U6bm93cmFw'@; put 'O2JveC1zaGFkb3c6MCBjYWxjKC0xKnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTEwMCkpIDAgdmFyKC0tY2xyLW5hdi1ib3gtc2hhZG93LWNvbG9yKSBpbnNldDtnYXA6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KX0ubmF2IC5uYXYtaXRlbXtkaXNwbGF5OmlubGluZS1i'@; put 'bG9ja30ubmF2IC5uYXYtaXRlbS5hY3RpdmU+Lm5hdi1saW5re2NvbG9yOnZhcigtLWNsci1uYXYtbGluay1hY3RpdmUtY29sb3IpO2JveC1zaGFkb3c6MCBjYWxjKC0xKnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTEwMCkpIDAgdmFyKC0tY2xyLW5hdi1ib3gtc2hhZG93'@; put 'LWNvbG9yKSBpbnNldH0ubmF2IC5uYXYtbGlua3twb3NpdGlvbjpyZWxhdGl2ZTtjb2xvcjp2YXIoLS1jbHItbmF2LWxpbmstY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1ib2R5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9n'@; put 'cmFwaHktYm9keS1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktYm9keS1saW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktYm9keS1sZXR0ZXItc3BhY2luZyk7cGFkZGluZzp2YXIoLS1jZHMtZ2xv'@; put 'YmFsLXNwYWNlLTUpIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMyk7ZGlzcGxheTppbmxpbmUtYmxvY2t9Lm5hdiAubmF2LWxpbmsuYnRue3RleHQtdHJhbnNmb3JtOm5vbmU7bWFyZ2luOjAgMCBjYWxjKC0xKnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSkpO2JvcmRlci1yYWRpdXM6MH0ubmF2'@; put 'IC5uYXYtbGluay5kcm9wZG93bi10b2dnbGV7cGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpfS5uYXYgLm5hdi1saW5rLmRyb3Bkb3duLXRvZ2dsZSBjZHMtaWNvbntjb2xvcjp2YXIoLS1jbHItbmF2LWxpbmstY29sb3IpfS5uYXYgLm5hdi1saW5rOmhvdmVyLC5uYXYgLm5hdi1s'@; put 'aW5rOmZvY3VzLC5uYXYgLm5hdi1saW5rOmFjdGl2ZXtjb2xvcjppbmhlcml0fS5uYXYgLm5hdi1saW5rOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1uYXYtYWN0aXZlLWJnLWNvbG9yKX0ubmF2IC5uYXYtbGluazpob3ZlcjpiZWZvcmUsLm5hdiAubmF2LWxpbmsuYWN0aXZl'@; put 'OmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDt3aWR0aDoxMDAlO2JvcmRlcjowO2JvcmRlci1ib3R0b206dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMzAwKSBzb2xpZCB2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWlu'@; put 'dGVyYWN0aW9uLWJhY2tncm91bmQtaGlnaGxpZ2h0KTt0cmFuc2l0aW9uOmJvcmRlci1ib3R0b20gLjJzIGVhc2UtaW59Lm5hdiAubmF2LWxpbms6aG92ZXIsLm5hdiAubmF2LWxpbms6Zm9jdXMsLm5hdiAubmF2LWxpbms6YWN0aXZlLC5uYXYgLm5hdi1saW5rLmFjdGl2ZXt0ZXh0LWRlY29y'@; put 'YXRpb246bm9uZX0ubmF2IC5uYXYtbGluay5hY3RpdmV7Y29sb3I6dmFyKC0tY2xyLW5hdi1saW5rLWFjdGl2ZS1jb2xvcil9Lm5hdiAubmF2LWxpbmsuYWN0aXZlOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLW5hdi1zZWxlY3RlZC1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yKX0u'@; put 'bmF2IC5uYXYtbGluay5hY3RpdmU6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLW5hdi1zZWxlY3RlZC1hY3RpdmUtYmFja2dyb3VuZC1jb2xvcil9Lm5hdiAubmF2LWxpbmsubmF2LWl0ZW17bWFyZ2luLXJpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSl9OnJvb3QgW2Nk'@; put 'cy10aGVtZV17LS1jbHItc3VibmF2LWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtY29udGFpbmVyLWJhY2tncm91bmQpfS5zdWItbmF2LC5zdWJuYXZ7ZGlzcGxheTpmbGV4O2JveC1zaGFkb3c6MCBjYWxjKC0xKnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTEw'@; put 'MCkpIDAgdmFyKC0tY2xyLW5hdi1ib3gtc2hhZG93LWNvbG9yKSBpbnNldDtib3gtc2hhZG93OjAgLS4wNXJlbSAwIHZhcigtLWNsci1uYXYtYm94LXNoYWRvdy1jb2xvciwgaHNsKDE5OCwgMCUsIDgwJSkpIGluc2V0O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1z'@; put 'OmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1zdWJuYXYtYmctY29sb3IpO2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTExKX0uc3ViLW5hdiAubmF2LC5zdWJuYXYgLm5hdntmbGV4OjEgMSBhdXRvO3BhZGRpbmctbGVmdDoxLjJyZW19LnN1Yi1uYXYgLm5hdi1pdGVt'@; put 'LC5zdWItbmF2IC5uYXYtaXRlbSBhLC5zdWJuYXYgLm5hdi1pdGVtLC5zdWJuYXYgLm5hdi1pdGVtIGF7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LnN1Yi1uYXYgYXNpZGUsLnN1Ym5hdiBhc2lkZXtmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OnZh'@; put 'cigtLWNkcy1nbG9iYWwtc3BhY2UtMTEpO3BhZGRpbmc6MCAxLjJyZW19LnN1Yi1uYXYgYXNpZGU+Omxhc3QtY2hpbGQsLnN1Ym5hdiBhc2lkZT46bGFzdC1jaGlsZHttYXJnaW4tcmlnaHQ6MDtwYWRkaW5nLXJpZ2h0OjB9OnJvb3QgW2Nkcy10aGVtZV17LS1jbHItdmVydGljYWwtbmF2LWRp'@; put 'dmlkZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItY29sb3IpOy0tY2xyLXZlcnRpY2FsLW5hdi1pY29uLXNpemU6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTstLWNsci12ZXJ0aWNhbC1uYXYtaWNvbi1hY3RpdmUtY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1p'@; put 'bnRlcmFjdGlvbi1jb2xvcik7LS1jbHItdmVydGljYWwtbmF2LWljb24tcmlnaHQtbWFyZ2luOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNCk7LS1jbHItdmVydGljYWwtbmF2LWNvbGxhcHNlZC1jYXJldC1zaXplOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTApOy0tY2xyLXZlcnRpY2FsLW5h'@; put 'di1pdGVtLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tY29sb3IpOy0tY2xyLXZlcnRpY2FsLW5hdi1pdGVtLWFjdGl2ZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yLWFjdGl2ZSk7LS1jbHItdmVydGljYWwtbmF2LWl0ZW0t'@; put 'cGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KSB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpOy0tY2xyLXZlcnRpY2FsLW5hdi1pdGVtLWNoaWxkLXBhZGRpbmc6dmFyKC0tY2RzLWdsb2Jh'@; put 'bC1zcGFjZS01KSB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTYpIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMCk7LS1jbHItdmVydGljYWwtbmF2LWl0ZW0taGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTApOy0tY2xyLXZlcnRpY2FsLW5h'@; put 'di1taW4td2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMik7LS1jbHItdmVydGljYWwtbmF2LWl0ZW0tYWN0aXZlLWZvbnQtd2VpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1mb250LXdlaWdodC1zZW1pYm9sZCk7LS1jbHItdmVydGljYWwtbmF2LXNlbGVjdGVkLWJnLWNv'@; put 'bG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1zaGFkZS1zZWxlY3RlZCk7LS1jbHItdmVydGljYWwtbmF2LXNlbGVjdGVkLWhvdmVyLWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1zaGFkZS1zZWxl'@; put 'Y3RlZC1ob3Zlcik7LS1jbHItdmVydGljYWwtbmF2LXNlbGVjdGVkLWFjdGl2ZS1iZy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtc2hhZGUtc2VsZWN0ZWQtYWN0aXZlKTstLWNsci12ZXJ0aWNhbC1uYXYtYmctY29sb3I6dmFyKC0tY2RzLWFs'@; put 'aWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLXNoYWRlKTstLWNsci12ZXJ0aWNhbC1uYXYtaG92ZXItYmctY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLXNoYWRlLWhvdmVyKTstLWNsci12ZXJ0aWNhbC1uYXYtYWN0aXZlLWJnLWNv'@; put 'bG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1zaGFkZS1hY3RpdmUpOy0tY2xyLXZlcnRpY2FsLW5hdi1hY3RpdmUtY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvci1hY3RpdmUpOy0tY2xyLXZlcnRpY2FsLW5hdi1p'@; put 'dGVtLXRvcC1sZXZlbC1mb250LXdlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtc2VtaWJvbGQpOy0tY2xyLXZlcnRpY2FsLW5hdi10b2dnbGUtaWNvbi1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yKTstLWNsci12ZXJ0'@; put 'aWNhbC1uYXYtdG9nZ2xlLWljb24taG92ZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvci1ob3Zlcik7LS1jbHItdmVydGljYWwtbmF2LXRvZ2dsZS1pY29uLWFjdGl2ZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9y'@; put 'LWFjdGl2ZSk7LS1jbHItdmVydGljYWwtbmF2LXRvZ2dsZS1pY29uLWRpc2FibGVkLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tY29sb3ItZGlzYWJsZWQpOy0tY2xyLXZlcnRpY2FsLW5hdi10b2dnbGUtYnV0dG9uLXNpemU6dmFyKC0tY2RzLWdsb2JhbC1zcGFj'@; put 'ZS0xMCk7LS1jbHItdmVydGljYWwtbmF2LXRyaWdnZXItZGl2aWRlci1ib3JkZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItY29sb3IpOy0tY2xyLXZlcnRpY2FsLW5hdi10cmlnZ2VyLWRpdmlkZXItYm9yZGVyLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lk'@; put 'dGgpOy0tY2xyLXZlcnRpY2FsLW5hdi10cmlnZ2VyLWNvbGxhcHNlZC1tYXJnaW46bWl4aW5zLmJhc2VsaW5lUHgoMyk7LS1jbHItdmVydGljYWwtbmF2LWhlYWRlci1mb250LXdlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtc2VtaWJvbGQpOy0tY2xyLXZl'@; put 'cnRpY2FsLW5hdi1oZWFkZXItcGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyl9LmNsci12ZXJ0aWNhbC1uYXZ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt3aWR0aDpjYWxjKDI0MCooMXJlbS92YXIoLS1jZHMtZ2xv'@; put 'YmFsLWJhc2UpKSk7bWluLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTIpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1iZy1jb2xvcik7d2lsbC1jaGFuZ2U6d2lkdGg7dHJhbnNpdGlvbjp3aWR0aCAuMnMgZWFzZS1pbi1vdXR9LmNsci12ZXJ0aWNhbC1u'@; put 'YXYgLm5hdi1kaXZpZGVye2JvcmRlci10b3A6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi10cmlnZ2VyLWRpdmlkZXItYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1jbHItdmVydGljYWwtbmF2LXRyaWdnZXItZGl2aWRlci1ib3JkZXItY29sb3IpfS5jbHItdmVydGljYWwtbmF2IC5uYXYtY29u'@; put 'dGVudHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXg6MSAxIGF1dG87Z2FwOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSk7cGFkZGluZy10b3A6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS04KTtvdmVyZmxvdy15OmF1dG87b3ZlcmZsb3cteDpoaWRkZW59LmNsci12ZXJ0'@; put 'aWNhbC1uYXYgLm5hdi1ncm91cHtkaXNwbGF5OmJsb2NrO2ZsZXg6MCAwIGF1dG87aGVpZ2h0OmF1dG87bWluLWhlaWdodDp2YXIoLS1jbHItdmVydGljYWwtbmF2LWl0ZW0taGVpZ2h0KX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLWNvbnRlbnR7ZGlzcGxheTpmbGV4O2NvbG9yOnZh'@; put 'cigtLWNsci12ZXJ0aWNhbC1uYXYtaXRlbS1jb2xvcil9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC1jb250ZW50LmFjdGl2ZXtjb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWl0ZW0tYWN0aXZlLWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYt'@; put 'c2VsZWN0ZWQtYmctY29sb3IpO3Bvc2l0aW9uOnJlbGF0aXZlfS5jbHItdmVydGljYWwtbmF2IC5uYXYtZ3JvdXAtY29udGVudC5hY3RpdmU6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3dpZHRoOjEwMCU7Ym9yZGVyOjA7Ym9yZGVy'@; put 'LWxlZnQ6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMzAwKSBzb2xpZCB2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtaGlnaGxpZ2h0KTt0cmFuc2l0aW9uOmJvcmRlci1sZWZ0IC4ycyBlYXNlLWlufS5jbHItdmVydGljYWwtbmF2IC5u'@; put 'YXYtZ3JvdXAtY29udGVudC5hY3RpdmUgLm5hdi1pY29ue2ZpbGw6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pY29uLWFjdGl2ZS1jb2xvcil9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC1jb250ZW50LmFjdGl2ZTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci12ZXJ0aWNh'@; put 'bC1uYXYtc2VsZWN0ZWQtaG92ZXItYmctY29sb3IpfS5jbHItdmVydGljYWwtbmF2IC5uYXYtZ3JvdXAtY29udGVudC5hY3RpdmU6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1zZWxlY3RlZC1hY3RpdmUtYmctY29sb3IpfS5jbHItdmVydGljYWwtbmF2'@; put 'IC5uYXYtZ3JvdXAtY29udGVudDpob3Zlcntjb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWl0ZW0tYWN0aXZlLWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtaG92ZXItYmctY29sb3IpO3RleHQtZGVjb3JhdGlvbjpub25lfS5jbHItdmVydGljYWwt'@; put 'bmF2IC5uYXYtZ3JvdXAtY29udGVudDphY3RpdmV7Y29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1hY3RpdmUtY29sb3IpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1hY3RpdmUtYmctY29sb3IpfS5jbHItdmVydGljYWwtbmF2IC5uYXYtZ3JvdXAtY29udGVu'@; put 'dCAubmF2LWxpbmt7ZmxleDoxIDEgYXV0bztwYWRkaW5nLWxlZnQ6MDttaW4td2lkdGg6MH0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLWNvbnRlbnQgLm5hdi1pY29ue21hcmdpbi1sZWZ0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyl9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91'@; put 'cC1jb250ZW50IC5uYXYtdGV4dHtwYWRkaW5nLWxlZnQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLWNvbnRlbnQgLm5hdi1pY29uKy5uYXYtdGV4dHtwYWRkaW5nLWxlZnQ6MH0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLWNvbnRl'@; put 'bnQgLm5hdi1saW5rKy5uYXYtZ3JvdXAtdGV4dHtkaXNwbGF5Om5vbmV9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC1jb250ZW50Pi5uYXYtbGluay5hY3RpdmUsLmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC1jb250ZW50Pi5uYXYtbGluazphY3RpdmV7Zm9udC13ZWlnaHQ6dmFy'@; put 'KC0tY2xyLXZlcnRpY2FsLW5hdi1pdGVtLWFjdGl2ZS1mb250LXdlaWdodCl9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC1jaGlsZHJlbntvdmVyZmxvdy15OmhpZGRlbn0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LXRyaWdnZXIsLmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC10cmln'@; put 'Z2Vye2ZsZXg6MCAwIHZhcigtLWNsci12ZXJ0aWNhbC1uYXYtdG9nZ2xlLWJ1dHRvbi1zaXplKTtib3JkZXI6MDtoZWlnaHQ6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi10b2dnbGUtYnV0dG9uLXNpemUpO3BhZGRpbmc6MDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2N1cnNvcjpwb2lu'@; put 'dGVyO291dGxpbmUtb2Zmc2V0OmNhbGMoLTEqY2FsYyg1KigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKSl9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi10cmlnZ2VyIGNkcy1pY29uW3NoYXBlPWFuZ2xlLWRvdWJsZV0sLmNsci12ZXJ0aWNhbC1uYXYgLm5hdi10cmlnZ2VyIGNsci1pY29u'@; put 'W3NoYXBlPWFuZ2xlLWRvdWJsZV0sLmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC10cmlnZ2VyIGNkcy1pY29uW3NoYXBlPWFuZ2xlLWRvdWJsZV0sLmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC10cmlnZ2VyIGNsci1pY29uW3NoYXBlPWFuZ2xlLWRvdWJsZV17Y29sb3I6dmFyKC0t'@; put 'Y2xyLXZlcnRpY2FsLW5hdi10b2dnbGUtaWNvbi1jb2xvcil9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi10cmlnZ2VyIGNkcy1pY29uW3NoYXBlPWFuZ2xlLWRvdWJsZV06aG92ZXIsLmNsci12ZXJ0aWNhbC1uYXYgLm5hdi10cmlnZ2VyIGNsci1pY29uW3NoYXBlPWFuZ2xlLWRvdWJsZV06aG92'@; put 'ZXIsLmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC10cmlnZ2VyIGNkcy1pY29uW3NoYXBlPWFuZ2xlLWRvdWJsZV06aG92ZXIsLmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC10cmlnZ2VyIGNsci1pY29uW3NoYXBlPWFuZ2xlLWRvdWJsZV06aG92ZXJ7Y29sb3I6dmFyKC0tY2xyLXZl'@; put 'cnRpY2FsLW5hdi10b2dnbGUtaWNvbi1ob3Zlci1jb2xvcil9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi10cmlnZ2VyIGNkcy1pY29uW3NoYXBlPWFuZ2xlLWRvdWJsZV06YWN0aXZlLC5jbHItdmVydGljYWwtbmF2IC5uYXYtdHJpZ2dlciBjbHItaWNvbltzaGFwZT1hbmdsZS1kb3VibGVdOmFj'@; put 'dGl2ZSwuY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLXRyaWdnZXIgY2RzLWljb25bc2hhcGU9YW5nbGUtZG91YmxlXTphY3RpdmUsLmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC10cmlnZ2VyIGNsci1pY29uW3NoYXBlPWFuZ2xlLWRvdWJsZV06YWN0aXZle2NvbG9yOnZhcigtLWNs'@; put 'ci12ZXJ0aWNhbC1uYXYtdG9nZ2xlLWljb24tYWN0aXZlLWNvbG9yKX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LXRyaWdnZXI6ZGlzYWJsZWQgY2RzLWljb25bc2hhcGU9YW5nbGUtZG91YmxlXSwuY2xyLXZlcnRpY2FsLW5hdiAubmF2LXRyaWdnZXI6ZGlzYWJsZWQgY2xyLWljb25bc2hhcGU9'@; put 'YW5nbGUtZG91YmxlXSwuY2xyLXZlcnRpY2FsLW5hdiAubmF2LXRyaWdnZXIuZGlzYWJsZWQgY2RzLWljb25bc2hhcGU9YW5nbGUtZG91YmxlXSwuY2xyLXZlcnRpY2FsLW5hdiAubmF2LXRyaWdnZXIuZGlzYWJsZWQgY2xyLWljb25bc2hhcGU9YW5nbGUtZG91YmxlXSwuY2xyLXZlcnRpY2Fs'@; put 'LW5hdiAubmF2LWdyb3VwLXRyaWdnZXI6ZGlzYWJsZWQgY2RzLWljb25bc2hhcGU9YW5nbGUtZG91YmxlXSwuY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLXRyaWdnZXI6ZGlzYWJsZWQgY2xyLWljb25bc2hhcGU9YW5nbGUtZG91YmxlXSwuY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3Vw'@; put 'LXRyaWdnZXIuZGlzYWJsZWQgY2RzLWljb25bc2hhcGU9YW5nbGUtZG91YmxlXSwuY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLXRyaWdnZXIuZGlzYWJsZWQgY2xyLWljb25bc2hhcGU9YW5nbGUtZG91YmxlXXtjb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LXRvZ2dsZS1pY29uLWRp'@; put 'c2FibGVkLWNvbG9yKX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LXRyaWdnZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7aGVpZ2h0OnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtaXRlbS1oZWlnaHQpO3BhZGRpbmc6dmFyKC0tY2RzLWds'@; put 'b2JhbC1zcGFjZS01KSB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpO21hcmdpbi1ib3R0b206dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0zKX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LXRyaWdnZXIgY2RzLWljb257bWFyZ2luLXJpZ2h0OjA7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2Ut'@; put 'Nyk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LXRyaWdnZXIub24tY29sbGFwc2V7ZGlzcGxheTpibG9ja30uY2xyLXZlcnRpY2FsLW5hdiAubmF2LXRyaWdnZXIub24tY29sbGFwc2UgY2RzLWljb257bWFyZ2luOjB9LmNsci12ZXJ0aWNh'@; put 'bC1uYXYgLm5hdi1ncm91cC10cmlnZ2Vye2Rpc3BsYXk6ZmxleDtmbGV4OjEgMSBhdXRvO2NvbG9yOmluaGVyaXQ7b3ZlcmZsb3c6aGlkZGVuO3RleHQtYWxpZ246bGVmdH0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLXRyaWdnZXIgLm5hdi1ncm91cC10cmlnZ2VyLWljb257ZmxleC1z'@; put 'aHJpbms6MDt3aWR0aDp2YXIoLS1jbHItdmVydGljYWwtbmF2LWljb24tc2l6ZSk7bWFyZ2luOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSk7YWxpZ24tc2VsZjpjZW50ZXI7dHJhbnNpdGlvbjphbGwgLjJzIGVhc2UtaW4tb3V0fS5jbHItdmVydGljYWwtbmF2IC5uYXYtdHJpZ2dlci1pY29u'@; put 'e3RyYW5zaXRpb246YWxsIC4ycyBlYXNlLWluLW91dH0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LXRyaWdnZXIrLm5hdi1jb250ZW50e2JvcmRlci10b3A6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi10cmlnZ2VyLWRpdmlkZXItYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1jbHItdmVydGljYWwt'@; put 'bmF2LXRyaWdnZXItZGl2aWRlci1ib3JkZXItY29sb3IpO3BhZGRpbmctdG9wOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSl9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC10ZXh0LC5jbHItdmVydGljYWwtbmF2IC5uYXYtbGlua3toZWlnaHQ6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1p'@; put 'dGVtLWhlaWdodCk7cGFkZGluZzp2YXIoLS1jbHItdmVydGljYWwtbmF2LWl0ZW0tcGFkZGluZyk7Zm9udC1zaXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWJvZHktZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1ib2R5LWZvbnQtd2VpZ2h0'@; put 'KTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWJvZHktbGV0dGVyLXNwYWNpbmcpO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7b3V0bGluZS1vZmZzZXQ6Y2FsYygtMSpjYWxjKDUq'@; put 'KDFyZW0vdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpKX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLXRleHQsLmNsci12ZXJ0aWNhbC1uYXYgLm5hdi10ZXh0e2ZsZXg6MSAxIGF1dG87d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lz'@; put 'fS5jbHItdmVydGljYWwtbmF2IC5uYXYtbGlua3tkaXNwbGF5OmZsZXg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pdGVtLWNvbG9yKX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWxpbmsuYWN0aXZle2NvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1u'@; put 'YXYtaXRlbS1hY3RpdmUtY29sb3IpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1zZWxlY3RlZC1iZy1jb2xvcik7cG9zaXRpb246cmVsYXRpdmV9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1saW5rLmFjdGl2ZTpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNv'@; put 'bHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7d2lkdGg6MTAwJTtib3JkZXI6MDtib3JkZXItbGVmdDp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0aC0zMDApIHNvbGlkIHZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1oaWdobGlnaHQpO3Ry'@; put 'YW5zaXRpb246Ym9yZGVyLWxlZnQgLjJzIGVhc2UtaW59LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1saW5rLmFjdGl2ZSAubmF2LWljb257ZmlsbDp2YXIoLS1jbHItdmVydGljYWwtbmF2LWljb24tYWN0aXZlLWNvbG9yKX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWxpbmsuYWN0aXZlOmhvdmVy'@; put 'e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1zZWxlY3RlZC1ob3Zlci1iZy1jb2xvcil9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1saW5rLmFjdGl2ZTphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LXNlbGVjdGVkLWFjdGl2ZS1i'@; put 'Zy1jb2xvcil9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1saW5rOmhvdmVye2NvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtaXRlbS1hY3RpdmUtY29sb3IpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1ob3Zlci1iZy1jb2xvcik7dGV4dC1kZWNvcmF0aW9uOm5v'@; put 'bmV9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1saW5rOmFjdGl2ZXtjb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWFjdGl2ZS1jb2xvcik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWFjdGl2ZS1iZy1jb2xvcil9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1oZWFk'@; put 'ZXJ7cGFkZGluZzp2YXIoLS1jbHItdmVydGljYWwtbmF2LWhlYWRlci1wYWRkaW5nKTtmb250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZm9udC1zaXplLTIpO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtaGVhZGVyLWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdo'@; put 'dDoxLjMzMzMzM2VtO2xldHRlci1zcGFjaW5nOi0uMDA4MzMzMzNlbX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWljb257ZmxleDowIDAgdmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pY29uLXNpemUpO2FsaWduLXNlbGY6Y2VudGVyO2hlaWdodDp2YXIoLS1jbHItdmVydGljYWwtbmF2LWljb24t'@; put 'c2l6ZSk7d2lkdGg6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pY29uLXNpemUpO21pbi1oZWlnaHQ6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pY29uLXNpemUpO21pbi13aWR0aDp2YXIoLS1jbHItdmVydGljYWwtbmF2LWljb24tc2l6ZSk7bWFyZ2luLXJpZ2h0OnZhcigtLWNkcy1nbG9iYWwt'@; put 'c3BhY2UtMyk7dmVydGljYWwtYWxpZ246bWlkZGxlfS5jbHItdmVydGljYWwtbmF2IGNsci12ZXJ0aWNhbC1uYXYtZ3JvdXAtY2hpbGRyZW57ZGlzcGxheTpibG9ja30uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWJ0bntmbGV4OjEgMSBhdXRvO3BhZGRpbmc6MDttYXJnaW46MDtiYWNrZ3JvdW5k'@; put 'OjAgMDtib3JkZXI6MDtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lLW9mZnNldDpjYWxjKC0xKmNhbGMoNSooMXJlbS92YXIoLS1jZHMtZ2xvYmFsLWJhc2UpKSkpfS5jbHItdmVydGljYWwtbmF2Pi5uYXYtbGluaywuY2xyLXZlcnRpY2FsLW5hdiAubmF2LWNvbnRlbnQ+Lm5hdi1saW5re2ZsZXg6'@; put 'MCAwIHZhcigtLWNsci12ZXJ0aWNhbC1uYXYtdG9nZ2xlLWJ1dHRvbi1zaXplKX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWxpbmsrLm5hdi1ncm91cC10cmlnZ2Vye2ZsZXg6MCAwIHZhcigtLWNsci12ZXJ0aWNhbC1uYXYtdG9nZ2xlLWJ1dHRvbi1zaXplKX0uY2xyLXZlcnRpY2FsLW5hdiAu'@; put 'bmF2LWxpbmsrLm5hdi1ncm91cC10cmlnZ2VyIC5uYXYtZ3JvdXAtdGV4dHtkaXNwbGF5Om5vbmV9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1pY29uKy5uYXYtZ3JvdXAtdGV4dHtwYWRkaW5nLWxlZnQ6MH0uY2xyLXZlcnRpY2FsLW5hdi5oYXMtbmF2LWdyb3VwcyAubmF2LWNvbnRlbnQ+Lm5h'@; put 'di1saW5rLC5jbHItdmVydGljYWwtbmF2Lmhhcy1uYXYtZ3JvdXBzIC5uYXYtZ3JvdXAgLm5hdi1ncm91cC10ZXh0LC5jbHItdmVydGljYWwtbmF2Lmhhcy1uYXYtZ3JvdXBzIC5uYXYtZ3JvdXAgLm5hdi1ncm91cC10cmlnZ2Vye2ZvbnQtd2VpZ2h0OnZhcigtLWNsci12ZXJ0aWNhbC1uYXYt'@; put 'aXRlbS10b3AtbGV2ZWwtZm9udC13ZWlnaHQpfS5jbHItdmVydGljYWwtbmF2Lmhhcy1uYXYtZ3JvdXBzIC5uYXYtZ3JvdXAtY2hpbGRyZW4gLm5hdi1saW5rLC5jbHItdmVydGljYWwtbmF2Lmhhcy1pY29ucyAubmF2LWdyb3VwLWNoaWxkcmVuIC5uYXYtbGlua3twYWRkaW5nOnZhcigtLWNs'@; put 'ci12ZXJ0aWNhbC1uYXYtaXRlbS1jaGlsZC1wYWRkaW5nKX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLmFjdGl2ZTpub3QoLmlzLWV4cGFuZGVkKSAubmF2LWdyb3VwLWNvbnRlbnR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LXNlbGVjdGVkLWJnLWNvbG9y'@; put 'KX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLmFjdGl2ZTpub3QoLmlzLWV4cGFuZGVkKSAubmF2LWdyb3VwLWNvbnRlbnQgLm5hdi1pY29ue2ZpbGw6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pY29uLWFjdGl2ZS1jb2xvcil9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC1jb250'@; put 'ZW50IC5uYXYtbGluay5hY3RpdmV+Lm5hdi1ncm91cC10cmlnZ2Vye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1zZWxlY3RlZC1iZy1jb2xvcil9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC1jb250ZW50IC5uYXYtbGluazpob3Zlcn4ubmF2LWdyb3VwLXRy'@; put 'aWdnZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWhvdmVyLWJnLWNvbG9yKX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLWNvbnRlbnQgLm5hdi1saW5rOmFjdGl2ZX4ubmF2LWdyb3VwLXRyaWdnZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdmVy'@; put 'dGljYWwtbmF2LWFjdGl2ZS1iZy1jb2xvcil9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC1jb250ZW50IC5uYXYtbGluay5hY3RpdmU6aG92ZXJ+Lm5hdi1ncm91cC10cmlnZ2Vye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1zZWxlY3RlZC1ob3Zlci1iZy1j'@; put 'b2xvcil9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC1jb250ZW50IC5uYXYtbGluay5hY3RpdmU6YWN0aXZlfi5uYXYtZ3JvdXAtdHJpZ2dlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtc2VsZWN0ZWQtYWN0aXZlLWJnLWNvbG9yKX0uY2xyLXZlcnRpY2Fs'@; put 'LW5hdjpub3QoLmlzLWNvbGxhcHNlZCkgLm5hdi1saW5rKy5uYXYtZ3JvdXAtdHJpZ2dlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5tYWluLWNvbnRhaW5lcjpub3QoW2NsYXNzKj1vcGVuLW92ZXJmbG93LW1lbnVdKTpub3QoW2NsYXNzKj1vcGVuLWhhbWJ1cmdlci1tZW51XSkgLmNsci12'@; put 'ZXJ0aWNhbC1uYXYuaXMtY29sbGFwc2Vke3dpZHRoOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtbWluLXdpZHRoKTttaW4td2lkdGg6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1taW4td2lkdGgpO21heC13aWR0aDpjYWxjKHZhcigtLWNsci12ZXJ0aWNhbC1uYXYtbWluLXdpZHRoKSArIGNhbGMo'@; put 'MTQqKDFyZW0vdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpKTtjdXJzb3I6cG9pbnRlcn0ubWFpbi1jb250YWluZXI6bm90KFtjbGFzcyo9b3Blbi1vdmVyZmxvdy1tZW51XSk6bm90KFtjbGFzcyo9b3Blbi1oYW1idXJnZXItbWVudV0pIC5jbHItdmVydGljYWwtbmF2LmlzLWNvbGxhcHNlZCAu'@; put 'bmF2LWljb257bWFyZ2luOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkgMCB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyl9Lm1haW4tY29udGFpbmVyOm5vdChbY2xhc3MqPW9wZW4tb3ZlcmZsb3ctbWVudV0pOm5vdChbY2xhc3MqPW9wZW4taGFt'@; put 'YnVyZ2VyLW1lbnVdKSAuY2xyLXZlcnRpY2FsLW5hdi5pcy1jb2xsYXBzZWQgLm5hdi1ncm91cC1jb250ZW50IC5uYXYtbGlua3tmbGV4OjAgMCB2YXIoLS1jbHItdmVydGljYWwtbmF2LW1pbi13aWR0aCl9Lm1haW4tY29udGFpbmVyOm5vdChbY2xhc3MqPW9wZW4tb3ZlcmZsb3ctbWVudV0p'@; put 'Om5vdChbY2xhc3MqPW9wZW4taGFtYnVyZ2VyLW1lbnVdKSAuY2xyLXZlcnRpY2FsLW5hdi5pcy1jb2xsYXBzZWQgLm5hdi1ncm91cC1jb250ZW50IC5uYXYtbGlua34ubmF2LWdyb3VwLXRyaWdnZXJ7ZmxleDowIDAgY2FsYyh2YXIoLS1jbHItdmVydGljYWwtbmF2LWNvbGxhcHNlZC1jYXJl'@; put 'dC1zaXplKSArIHZhcigtLWNsci12ZXJ0aWNhbC1uYXYtaWNvbi1yaWdodC1tYXJnaW4pKTt0cmFuc2Zvcm06dHJhbnNsYXRlKGNhbGMoLTEqdmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pY29uLXNpemUpKSk7cG9pbnRlci1ldmVudHM6bm9uZX0ubWFpbi1jb250YWluZXI6bm90KFtjbGFzcyo9'@; put 'b3Blbi1vdmVyZmxvdy1tZW51XSk6bm90KFtjbGFzcyo9b3Blbi1oYW1idXJnZXItbWVudV0pIC5jbHItdmVydGljYWwtbmF2LmlzLWNvbGxhcHNlZCAubmF2LWxpbmssLm1haW4tY29udGFpbmVyOm5vdChbY2xhc3MqPW9wZW4tb3ZlcmZsb3ctbWVudV0pOm5vdChbY2xhc3MqPW9wZW4taGFt'@; put 'YnVyZ2VyLW1lbnVdKSAuY2xyLXZlcnRpY2FsLW5hdi5pcy1jb2xsYXBzZWQgLm5hdi1ncm91cC10cmlnZ2Vye3BhZGRpbmc6MH0ubWFpbi1jb250YWluZXI6bm90KFtjbGFzcyo9b3Blbi1vdmVyZmxvdy1tZW51XSk6bm90KFtjbGFzcyo9b3Blbi1oYW1idXJnZXItbWVudV0pIC5jbHItdmVy'@; put 'dGljYWwtbmF2LmlzLWNvbGxhcHNlZCAubmF2LWdyb3VwLXRyaWdnZXJ7cGFkZGluZy1sZWZ0OjB9Lm1haW4tY29udGFpbmVyOm5vdChbY2xhc3MqPW9wZW4tb3ZlcmZsb3ctbWVudV0pOm5vdChbY2xhc3MqPW9wZW4taGFtYnVyZ2VyLW1lbnVdKSAuY2xyLXZlcnRpY2FsLW5hdi5pcy1jb2xs'@; put 'YXBzZWQgLm5hdi1ncm91cC10cmlnZ2VyIGNsci1pY29uLm5hdi1ncm91cC10cmlnZ2VyLWljb257aGVpZ2h0OnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtaXRlbS1oZWlnaHQpO3dpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7bWFyZ2luLWxlZnQ6Y2FsYygzKigxcmVtL3ZhcigtLWNk'@; put 'cy1nbG9iYWwtYmFzZSkpKTttYXJnaW4tcmlnaHQ6MH0ubWFpbi1jb250YWluZXI6bm90KFtjbGFzcyo9b3Blbi1vdmVyZmxvdy1tZW51XSk6bm90KFtjbGFzcyo9b3Blbi1oYW1idXJnZXItbWVudV0pIC5jbHItdmVydGljYWwtbmF2LmlzLWNvbGxhcHNlZCAubmF2LWdyb3VwLXRyaWdnZXIg'@; put 'Y2RzLWljb24ubmF2LWdyb3VwLXRyaWdnZXItaWNvbnt3aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpO21hcmdpbjowfS5tYWluLWNvbnRhaW5lcjpub3QoW2NsYXNzKj1vcGVuLW92ZXJmbG93LW1lbnVdKTpub3QoW2NsYXNzKj1vcGVuLWhhbWJ1cmdlci1tZW51XSkgLmNsci12ZXJ0'@; put 'aWNhbC1uYXYuaXMtY29sbGFwc2VkIC5uYXYtZ3JvdXAsLm1haW4tY29udGFpbmVyOm5vdChbY2xhc3MqPW9wZW4tb3ZlcmZsb3ctbWVudV0pOm5vdChbY2xhc3MqPW9wZW4taGFtYnVyZ2VyLW1lbnVdKSAuY2xyLXZlcnRpY2FsLW5hdi5pcy1jb2xsYXBzZWQgLm5hdi1saW5re2Rpc3BsYXk6'@; put 'bm9uZX0ubWFpbi1jb250YWluZXI6bm90KFtjbGFzcyo9b3Blbi1vdmVyZmxvdy1tZW51XSk6bm90KFtjbGFzcyo9b3Blbi1oYW1idXJnZXItbWVudV0pIC5jbHItdmVydGljYWwtbmF2LmlzLWNvbGxhcHNlZC5oYXMtaWNvbnMgLm5hdi1ncm91cHtkaXNwbGF5OmJsb2NrfS5tYWluLWNvbnRh'@; put 'aW5lcjpub3QoW2NsYXNzKj1vcGVuLW92ZXJmbG93LW1lbnVdKTpub3QoW2NsYXNzKj1vcGVuLWhhbWJ1cmdlci1tZW51XSkgLmNsci12ZXJ0aWNhbC1uYXYuaXMtY29sbGFwc2VkLmhhcy1pY29ucyAubmF2LWxpbmt7ZGlzcGxheTpmbGV4fS5tYWluLWNvbnRhaW5lcjpub3QoW2NsYXNzKj1v'@; put 'cGVuLW92ZXJmbG93LW1lbnVdKTpub3QoW2NsYXNzKj1vcGVuLWhhbWJ1cmdlci1tZW51XSkgLmNsci12ZXJ0aWNhbC1uYXYuaXMtY29sbGFwc2VkLmhhcy1pY29ucyAubmF2LWdyb3VwLXRleHQsLm1haW4tY29udGFpbmVyOm5vdChbY2xhc3MqPW9wZW4tb3ZlcmZsb3ctbWVudV0pOm5vdChb'@; put 'Y2xhc3MqPW9wZW4taGFtYnVyZ2VyLW1lbnVdKSAuY2xyLXZlcnRpY2FsLW5hdi5pcy1jb2xsYXBzZWQuaGFzLWljb25zIC5uYXYtdGV4dHtwb3NpdGlvbjphYnNvbHV0ZTtjbGlwOnJlY3QoMXB4LDFweCwxcHgsMXB4KTtjbGlwLXBhdGg6aW5zZXQoNTAlKTtwYWRkaW5nOjA7Ym9yZGVyOjA7'@; put 'aGVpZ2h0OjFweDt3aWR0aDoxcHg7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0b3A6MDtsZWZ0OjB9LmNsci12ZXJ0aWNhbC1uYXYubmF2LXRyaWdnZXItLWJvdHRvbSAubmF2LXRyaWdnZXJ7b3JkZXI6MjttYXJnaW4tdG9wOjB9LmNsci12ZXJ0aWNhbC1uYXYubmF2LXRy'@; put 'aWdnZXItLWJvdHRvbSAubmF2LXRyaWdnZXIrLm5hdi1jb250ZW50e2JvcmRlci10b3A6MDtib3JkZXItYm90dG9tOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtdHJpZ2dlci1kaXZpZGVyLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tY2xyLXZlcnRpY2FsLW5hdi10cmlnZ2VyLWRpdmlkZXIt'@; put 'Ym9yZGVyLWNvbG9yKTtwYWRkaW5nLXRvcDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTgpfTpyb290IFtjZHMtdGhlbWVdey0tY2xyLXNsaWRpbmctcGFuZWwtdGV4dC1jb2xvcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWdyYXktNzAwKTstLWNsci1yZXNwb25zaXZlLW5hdi10cmlnZ2VyLWJn'@; put 'LWNvbG9yOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItZ3JheS0wKTstLWNsci1yZXNwb25zaXZlLW5hdi10cmlnZ2VyLWJvcmRlci1yYWRpdXM6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItcmFkaXVzLTEwMCk7LS1jbHItcmVzcG9uc2l2ZS1uYXYtb3ZlcmZsb3ctYm9yZGVyLXJhZGl1'@; put 'czp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1yYWRpdXMtMTAwKTstLWNsci1yZXNwb25zaXZlLW5hdi1oYW1idXJnZXItYm9yZGVyLXJhZGl1czp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1yYWRpdXMtMTAwKX0uY2xyLW5hdi1jbG9zZXttYXJnaW46dmFyKC0tY2RzLWds'@; put 'b2JhbC1zcGFjZS03KTtiYWNrZ3JvdW5kOjAgMDtib3JkZXI6MDtjb2xvcjp2YXIoLS1jb2xvcik7LS1jb2xvcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXdoaXRlKX0uY2xyLW5hdi1jbG9zZTpob3ZlciwuY2xyLW5hdi1jbG9zZTpmb2N1c3stLWNvbG9yOnZhcigtLWNkcy1nbG9iYWwtY29s'@; put 'b3Itd2FybS1ncmF5LTEwMCl9LmhlYWRlci1oYW1idXJnZXItdHJpZ2dlciwuaGVhZGVyLW92ZXJmbG93LXRyaWdnZXJ7ZGlzcGxheTpub25lfS5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXI+c3BhbiwuaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyPnNwYW46YmVmb3JlLC5oZWFkZXItaGFtYnVy'@; put 'Z2VyLXRyaWdnZXI+c3BhbjphZnRlcntkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0yKTt3aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpO2JhY2tncm91bmQ6dmFyKC0tY2xyLXJlc3BvbnNpdmUtbmF2LXRyaWdnZXItYmctY29sb3IpO2Jv'@; put 'cmRlci1yYWRpdXM6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItcmFkaXVzLTEwMCl9LmhlYWRlci1oYW1idXJnZXItdHJpZ2dlcj5zcGFue3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyPnNwYW46YmVmb3JlLC5o'@; put 'ZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXI+c3BhbjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MH0uaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyPnNwYW46YmVmb3Jle3RvcDpjYWxjKC0xKnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkpfS5oZWFkZXItaGFtYnVyZ2Vy'@; put 'LXRyaWdnZXI+c3BhbjphZnRlcntib3R0b206Y2FsYygtMSp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpKX0uaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyLmFjdGl2ZT5zcGFue2JhY2tncm91bmQ6MCAwfS5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXIuYWN0aXZlPnNwYW46YmVmb3JlLC5oZWFk'@; put 'ZXItaGFtYnVyZ2VyLXRyaWdnZXIuYWN0aXZlPnNwYW46YWZ0ZXJ7bGVmdDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTMpO3RyYW5zZm9ybS1vcmlnaW46OSU7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjZzIGVhc2V9LmhlYWRlci1oYW1idXJnZXItdHJpZ2dlci5hY3RpdmU+c3BhbjpiZWZvcmV7'@; put 'dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9LmhlYWRlci1oYW1idXJnZXItdHJpZ2dlci5hY3RpdmU+c3BhbjphZnRlcnt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyl9LmhlYWRlci1vdmVyZmxvdy10cmlnZ2VyPnNwYW4sLmhlYWRlci1vdmVyZmxvdy10cmlnZ2VyPnNwYW46YmVmb3JlLC5oZWFk'@; put 'ZXItb3ZlcmZsb3ctdHJpZ2dlcj5zcGFuOmFmdGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTMpO3dpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMyk7YmFja2dyb3VuZDp2YXIoLS1jbHItcmVzcG9uc2l2ZS1uYXYtdHJpZ2dlci1iZy1j'@; put 'b2xvcik7Ym9yZGVyLXJhZGl1czp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTMpfS5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlcj5zcGFue3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uaGVhZGVyLW92ZXJmbG93LXRyaWdnZXI+c3BhbjpiZWZvcmUsLmhlYWRlci1vdmVy'@; put 'Zmxvdy10cmlnZ2VyPnNwYW46YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjB9LmhlYWRlci1vdmVyZmxvdy10cmlnZ2VyPnNwYW46YmVmb3Jle3RvcDpjYWxjKC0xKnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkpfS5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlcj5zcGFu'@; put 'OmFmdGVye2JvdHRvbTpjYWxjKC0xKnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkpfS5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlci5hY3RpdmU+c3BhbntiYWNrZ3JvdW5kOjAgMH0uaGVhZGVyLW92ZXJmbG93LXRyaWdnZXIuYWN0aXZlPnNwYW46YmVmb3JlLC5oZWFkZXItb3ZlcmZsb3ctdHJp'@; put 'Z2dlci5hY3RpdmU+c3BhbjphZnRlcntoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0yKTt3aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpO2xlZnQ6Y2FsYygtMSp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTQpKTt0cmFuc2Zvcm0tb3JpZ2luOi0zJTt0cmFuc2l0aW9uOnRyYW5z'@; put 'Zm9ybSAuNnMgZWFzZX0uaGVhZGVyLW92ZXJmbG93LXRyaWdnZXIuYWN0aXZlPnNwYW46YmVmb3Jle3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlci5hY3RpdmU+c3BhbjphZnRlcnt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyl9QG1lZGlhIHNjcmVlbiBh'@; put 'bmQgKG1heC13aWR0aDo5OTJweCl7Lm1haW4tY29udGFpbmVyIC5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXIsLm1haW4tY29udGFpbmVyIC5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlcntkaXNwbGF5OmlubGluZS1ibG9jaztib3JkZXI6MDtiYWNrZ3JvdW5kOjAgMDtjdXJzb3I6cG9pbnRlcjtm'@; put 'b250LXNpemU6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTtoZWlnaHQ6dmFyKC0tY2xyLWhlYWRlci1oZWlnaHQpO3dpZHRoOnZhcigtLWNsci1oZWFkZXItaGVpZ2h0KTtwYWRkaW5nOjAgMCB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTMpIDA7dGV4dC1hbGlnbjpjZW50ZXI7d2hpdGUtc3Bh'@; put 'Y2U6bm93cmFwO2NvbG9yOnZhcigtLWNsci1oZWFkZXItZm9udC1jb2xvcil9Lm1haW4tY29udGFpbmVyIC5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXI6Zm9jdXMsLm1haW4tY29udGFpbmVyIC5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlcjpmb2N1c3tvdXRsaW5lLW9mZnNldDpjYWxjKC0xKnZh'@; put 'cigtLWNkcy1nbG9iYWwtc3BhY2UtNCkpfS5tYWluLWNvbnRhaW5lciAuaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyOmhvdmVyLC5tYWluLWNvbnRhaW5lciAuaGVhZGVyLW92ZXJmbG93LXRyaWdnZXI6aG92ZXJ7Y29sb3I6dmFyKC0tY2xyLWhlYWRlci1mb250LWNvbG9yLWhvdmVyKX0ubWFp'@; put 'bi1jb250YWluZXIgLmhlYWRlci1oYW1idXJnZXItdHJpZ2dlcjpkaXNhYmxlZCwubWFpbi1jb250YWluZXIgLmhlYWRlci1vdmVyZmxvdy10cmlnZ2VyOmRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZH0ubWFpbi1jb250YWluZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xLC5tYWlu'@; put 'LWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0xLC5tYWluLWNvbnRhaW5lciAuY2xyLXZlcnRpY2FsLW5hdi5jbHItbmF2LWxldmVsLTF7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwb3Np'@; put 'dGlvbjpmaXhlZDtpbnNldDowIGF1dG8gMCAwO2JhY2tncm91bmQ6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1iZy1jb2xvcik7ei1pbmRleDoxMDM5O2hlaWdodDoxMDB2aDt0cmFuc2Zvcm06dHJhbnNsYXRlKGNhbGMoLTEqY2FsYygzNjAqKDFyZW0vdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkp'@; put 'KSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIGVhc2V9Lm1haW4tY29udGFpbmVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1j'@; put 'b250YWluZXIgLmNsci12ZXJ0aWNhbC1uYXYuY2xyLW5hdi1sZXZlbC0ye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MCAwIDAgYXV0bztiYWNrZ3JvdW5kOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtYmctY29sb3IpO3otaW5kZXg6MTAz'@; put 'OTtoZWlnaHQ6MTAwdmg7dHJhbnNmb3JtOnRyYW5zbGF0ZShjYWxjKDM2MCooMXJlbS92YXIoLS1jZHMtZ2xvYmFsLWJhc2UpKSkpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zcyBlYXNlfS5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LC5tYWluLWNvbnRhaW5l'@; put 'ciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSBhc2lkZSwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMSBhc2lkZSwubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIg'@; put 'Lm5hdiwubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIgYXNpZGUsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTIgYXNpZGV7ZmxleC1kaXJlY3Rpb246Y29sdW1u'@; put 'O2FsaWduLWl0ZW1zOnN0cmV0Y2h9Lm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xIGFzaWRlLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEgYXNpZGUsLm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0yIGFzaWRlLC5tYWlu'@; put 'LWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTIgYXNpZGV7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxMDAlfS5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEgLm5h'@; put 'diwubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIgLm5hdiwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXZ7cGFkZGluZy1sZWZ0OjA7Z2FwOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSl9Lm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xy'@; put 'LW5hdi1sZXZlbC0xIC5uYXYgLm5hdi1pdGVtLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiAubmF2LWl0ZW0sLm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYgLm5hdi1pdGVtLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5j'@; put 'bHItbmF2LWxldmVsLTIgLm5hdiAubmF2LWl0ZW17aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTEpO21hcmdpbi1yaWdodDowfS5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2IC5uYXYtbGluaywubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5h'@; put 'di1sZXZlbC0xIC5uYXYgLm5hdi1saW5rLC5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2IC5uYXYtbGluaywubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYgLm5hdi1saW5re3BhZGRpbmc6dmFyKC0tY2xyLXZlcnRpY2FsLW5h'@; put 'di1pdGVtLXBhZGRpbmcpO3dpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7Y29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pdGVtLWNvbG9yKX0ubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTEgLm5h'@; put 'diAubmF2LWxpbmsuYWN0aXZlLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiAubmF2LWxpbmsuYWN0aXZlLC5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2IC5uYXYtbGluay5hY3RpdmUsLm1haW4tY29udGFpbmVyIC5zdWIt'@; put 'bmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2IC5uYXYtbGluay5hY3RpdmV7Y29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pdGVtLWFjdGl2ZS1jb2xvcik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LXNlbGVjdGVkLWJnLWNvbG9yKTtwb3NpdGlvbjpyZWxhdGl2'@; put 'ZX0ubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiAubmF2LWxpbmsuYWN0aXZlOmJlZm9yZSwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYgLm5hdi1saW5rLmFjdGl2ZTpiZWZvcmUsLm1haW4tY29udGFpbmVyIC5zdWJuYXYu'@; put 'Y2xyLW5hdi1sZXZlbC0yIC5uYXYgLm5hdi1saW5rLmFjdGl2ZTpiZWZvcmUsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2IC5uYXYtbGluay5hY3RpdmU6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDow'@; put 'O3dpZHRoOjEwMCU7Ym9yZGVyOjA7Ym9yZGVyLWxlZnQ6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMzAwKSBzb2xpZCB2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtaGlnaGxpZ2h0KTt0cmFuc2l0aW9uOmJvcmRlci1sZWZ0IC4ycyBl'@; put 'YXNlLWlufS5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2IC5uYXYtbGluay5hY3RpdmUgLm5hdi1pY29uLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiAubmF2LWxpbmsuYWN0aXZlIC5uYXYtaWNvbiwubWFpbi1jb250YWlu'@; put 'ZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIgLm5hdiAubmF2LWxpbmsuYWN0aXZlIC5uYXYtaWNvbiwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYgLm5hdi1saW5rLmFjdGl2ZSAubmF2LWljb257ZmlsbDp2YXIoLS1jbHItdmVydGljYWwtbmF2LWljb24t'@; put 'YWN0aXZlLWNvbG9yKX0ubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiAubmF2LWxpbmsuYWN0aXZlOmhvdmVyLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiAubmF2LWxpbmsuYWN0aXZlOmhvdmVyLC5tYWluLWNvbnRhaW5l'@; put 'ciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2IC5uYXYtbGluay5hY3RpdmU6aG92ZXIsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2IC5uYXYtbGluay5hY3RpdmU6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LXNl'@; put 'bGVjdGVkLWhvdmVyLWJnLWNvbG9yKX0ubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiAubmF2LWxpbmsuYWN0aXZlOmFjdGl2ZSwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYgLm5hdi1saW5rLmFjdGl2ZTphY3RpdmUsLm1h'@; put 'aW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYgLm5hdi1saW5rLmFjdGl2ZTphY3RpdmUsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2IC5uYXYtbGluay5hY3RpdmU6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXZl'@; put 'cnRpY2FsLW5hdi1zZWxlY3RlZC1hY3RpdmUtYmctY29sb3IpfS5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2IC5uYXYtbGluazpob3ZlciwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYgLm5hdi1saW5rOmhvdmVyLC5tYWlu'@; put 'LWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2IC5uYXYtbGluazpob3ZlciwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYgLm5hdi1saW5rOmhvdmVye2NvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtaXRlbS1hY3RpdmUtY29sb3Ip'@; put 'O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1ob3Zlci1iZy1jb2xvcik7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Lm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYgLm5hdi1saW5rOmFjdGl2ZSwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYu'@; put 'Y2xyLW5hdi1sZXZlbC0xIC5uYXYgLm5hdi1saW5rOmFjdGl2ZSwubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIgLm5hdiAubmF2LWxpbms6YWN0aXZlLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdiAubmF2LWxpbms6YWN0aXZle2Nv'@; put 'bG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtYWN0aXZlLWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtYWN0aXZlLWJnLWNvbG9yKX0ubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiAubmF2LWxpbms6aG92ZXIsLm1haW4t'@; put 'Y29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYgLm5hdi1saW5rLmFjdGl2ZSwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYgLm5hdi1saW5rOmhvdmVyLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiAu'@; put 'bmF2LWxpbmsuYWN0aXZlLC5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2IC5uYXYtbGluazpob3ZlciwubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIgLm5hdiAubmF2LWxpbmsuYWN0aXZlLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5j'@; put 'bHItbmF2LWxldmVsLTIgLm5hdiAubmF2LWxpbms6aG92ZXIsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2IC5uYXYtbGluay5hY3RpdmV7Ym94LXNoYWRvdzpub25lfS5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2IC5uYXYt'@; put 'bGluazpob3Zlcjpub3QoLmFjdGl2ZSk6YmVmb3JlLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiAubmF2LWxpbms6aG92ZXI6bm90KC5hY3RpdmUpOmJlZm9yZSwubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIgLm5hdiAubmF2LWxp'@; put 'bms6aG92ZXI6bm90KC5hY3RpdmUpOmJlZm9yZSwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYgLm5hdi1saW5rOmhvdmVyOm5vdCguYWN0aXZlKTpiZWZvcmV7Y29udGVudDpub25lfS5tYWluLWNvbnRhaW5lciAuY2xyLXZlcnRpY2FsLW5hdi5jbHItbmF2'@; put 'LWxldmVsLTEsLm1haW4tY29udGFpbmVyIC5jbHItdmVydGljYWwtbmF2LmNsci1uYXYtbGV2ZWwtMntib3JkZXItcmlnaHQ6bm9uZX0ubWFpbi1jb250YWluZXIgLmhlYWRlci1vdmVyZmxvdy10cmlnZ2Vye3Bvc2l0aW9uOnJlbGF0aXZlfS5tYWluLWNvbnRhaW5lciAuaGVhZGVyLW92ZXJm'@; put 'bG93LXRyaWdnZXI6YWZ0ZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDoiIjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1oZWFkZXItZGl2aWRlci1jb2xvcik7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTEpO3dpZHRoOnZhcigtLWNk'@; put 'cy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTEwMCk7dG9wOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNik7bGVmdDowfS5tYWluLWNvbnRhaW5lciAuaGVhZGVyIC5icmFuZGluZ3ttYXgtd2lkdGg6Y2FsYygyNDAqKDFyZW0vdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpO21pbi13aWR0aDow'@; put 'O292ZXJmbG93OmhpZGRlbn0ubWFpbi1jb250YWluZXIgLmhlYWRlciAuaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyKy5icmFuZGluZ3twYWRkaW5nLWxlZnQ6MDttYXJnaW4tbGVmdDpjYWxjKC0xKnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkpfS5tYWluLWNvbnRhaW5lciAuaGVhZGVyIC5o'@; put 'ZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXIrLmJyYW5kaW5nIC5jbHItaWNvbiwubWFpbi1jb250YWluZXIgLmhlYWRlciAuaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyKy5icmFuZGluZyAubG9nbywubWFpbi1jb250YWluZXIgLmhlYWRlciAuaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyKy5icmFu'@; put 'ZGluZyBjZHMtaWNvbiwubWFpbi1jb250YWluZXIgLmhlYWRlciAuaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyKy5icmFuZGluZyBjbHItaWNvbntkaXNwbGF5Om5vbmV9Lm1haW4tY29udGFpbmVyIC5oZWFkZXIgLmJyYW5kaW5nKy5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlciwubWFpbi1jb250'@; put 'YWluZXIgLmhlYWRlciAuaGVhZGVyLW5hdisuaGVhZGVyLW92ZXJmbG93LXRyaWdnZXIsLm1haW4tY29udGFpbmVyIC5oZWFkZXIgLmhlYWRlci1uYXYrLmNkay12aXN1YWxseS1oaWRkZW4rLmhlYWRlci1vdmVyZmxvdy10cmlnZ2Vye21hcmdpbi1sZWZ0OmF1dG99Lm1haW4tY29udGFpbmVy'@; put 'Lm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLWJhY2tkcm9wLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLWJhY2tkcm9we3Bvc2l0aW9uOmZpeGVkO2luc2V0OjA7YmFja2dyb3VuZDp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LW92'@; put 'ZXJsYXktYmFja2Ryb3AtYmFja2dyb3VuZCk7Y3Vyc29yOnBvaW50ZXI7ei1pbmRleDoxMDM4fS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluaywubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJn'@; put 'ZXItbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmssLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbmssLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ct'@; put 'bWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmt7ZmxleDowIDAgYXV0bztvcGFjaXR5OjE7Y29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pdGVtLWNvbG9yKX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFk'@; put 'ZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbmsgLm5hdi1pY29uLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluayAuZmEsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUg'@; put 'LmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1saW5rIC5uYXYtaWNvbiwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmsgLmZhLC5tYWluLWNvbnRhaW5lci5vcGVuLW92'@; put 'ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rIC5uYXYtaWNvbiwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluayAuZmEsLm1haW4tY29udGFp'@; put 'bmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmsgLm5hdi1pY29uLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1saW5rIC5mYXtk'@; put 'aXNwbGF5Om5vbmV9Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rIC5uYXYtdGV4dCwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1u'@; put 'YXYtbGV2ZWwtMiAubmF2LWxpbmsgLm5hdi10ZXh0LC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rIC5uYXYtdGV4dCwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXIg'@; put 'LmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYtbGluayAubmF2LXRleHR7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTQpIDAgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS00KSB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpO3doaXRlLXNw'@; put 'YWNlOm5vcm1hbDtjb2xvcjp2YXIoLS1jbHItc2xpZGluZy1wYW5lbC10ZXh0LWNvbG9yKTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpO2ZvbnQtd2VpZ2h0OjQwMH0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNs'@; put 'ci1uYXYtbGV2ZWwtMSAubmF2LWxpbmsgLm5hdi1pY29uKy5uYXYtdGV4dCwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmsgLm5hdi1pY29uKy5uYXYtdGV4dCwubWFpbi1jb250YWluZXIub3Bl'@; put 'bi1vdmVyZmxvdy1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluayAubmF2LWljb24rLm5hdi10ZXh0LC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1saW5rIC5u'@; put 'YXYtaWNvbisubmF2LXRleHR7ZGlzcGxheTppbmxpbmUtYmxvY2t9Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rLmFjdGl2ZSwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAu'@; put 'aGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmsuYWN0aXZlLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rLmFjdGl2ZSwubWFpbi1jb250YWluZXIub3Blbi1vdmVy'@; put 'Zmxvdy1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYtbGluay5hY3RpdmV7Y29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pdGVtLWFjdGl2ZS1jb2xvcik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LXNlbGVjdGVkLWJnLWNv'@; put 'bG9yKTtwb3NpdGlvbjpyZWxhdGl2ZX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbmsuYWN0aXZlOmJlZm9yZSwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5o'@; put 'ZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmsuYWN0aXZlOmJlZm9yZSwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluay5hY3RpdmU6YmVmb3JlLC5tYWluLWNvbnRhaW5lci5vcGVu'@; put 'LW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1saW5rLmFjdGl2ZTpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7d2lkdGg6MTAwJTtib3JkZXI6MDtib3JkZXItbGVmdDp2YXIoLS1j'@; put 'ZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0aC0zMDApIHNvbGlkIHZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1oaWdobGlnaHQpO3RyYW5zaXRpb246Ym9yZGVyLWxlZnQgLjJzIGVhc2UtaW59Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1l'@; put 'bnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rLmFjdGl2ZSAubmF2LWljb24sLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1saW5rLmFjdGl2ZSAubmF2LWljb24s'@; put 'Lm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbmsuYWN0aXZlIC5uYXYtaWNvbiwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZl'@; put 'bC0yIC5uYXYtbGluay5hY3RpdmUgLm5hdi1pY29ue2ZpbGw6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pY29uLWFjdGl2ZS1jb2xvcil9Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rLmFjdGl2'@; put 'ZTpob3ZlciwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmsuYWN0aXZlOmhvdmVyLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2'@; put 'LWxldmVsLTEgLm5hdi1saW5rLmFjdGl2ZTpob3ZlciwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYtbGluay5hY3RpdmU6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2'@; put 'LXNlbGVjdGVkLWhvdmVyLWJnLWNvbG9yKX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbmsuYWN0aXZlOmFjdGl2ZSwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVy'@; put 'IC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmsuYWN0aXZlOmFjdGl2ZSwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluay5hY3RpdmU6YWN0aXZlLC5tYWluLWNvbnRhaW5lci5v'@; put 'cGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1saW5rLmFjdGl2ZTphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LXNlbGVjdGVkLWFjdGl2ZS1iZy1jb2xvcil9Lm1haW4tY29udGFpbmVyLm9wZW4t'@; put 'aGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rOmhvdmVyLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYtbGluazpob3ZlciwubWFpbi1jb250'@; put 'YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluazpob3ZlciwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYtbGluazpob3Zlcntj'@; put 'b2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWl0ZW0tYWN0aXZlLWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtaG92ZXItYmctY29sb3IpO3RleHQtZGVjb3JhdGlvbjpub25lfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFk'@; put 'ZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluazphY3RpdmUsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1saW5rOmFjdGl2ZSwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxv'@; put 'dy1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluazphY3RpdmUsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbms6YWN0aXZle2NvbG9yOnZhcigtLWNsci12'@; put 'ZXJ0aWNhbC1uYXYtYWN0aXZlLWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtYWN0aXZlLWJnLWNvbG9yKX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbmsu'@; put 'YWN0aXZlPi5uYXYtdGV4dCwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmsuYWN0aXZlPi5uYXYtdGV4dCwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXIgLmhlYWRl'@; put 'ci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluay5hY3RpdmU+Lm5hdi10ZXh0LC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1saW5rLmFjdGl2ZT4ubmF2LXRleHR7Y29sb3I6aW5oZXJpdH0ubWFp'@; put 'bi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuY2xyLXZlcnRpY2FsLW5hdiAubmF2LXRyaWdnZXIsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuY2xyLXZlcnRpY2FsLW5hdiAubmF2LXRyaWdnZXJ7ZGlzcGxheTpub25lfS5tYWluLWNvbnRhaW5lci5vcGVuLWhh'@; put 'bWJ1cmdlci1tZW51IC5oZWFkZXIgLmJyYW5kaW5ne3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDtvdmVyZmxvdzpoaWRkZW47d2lkdGg6Y2FsYygzNjAqKDFyZW0vdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpO21heC13aWR0aDpjYWxjKDM2MCooMXJlbS92YXIoLS1jZHMtZ2xvYmFsLWJh'@; put 'c2UpKSk7ei1pbmRleDoxMDQwO3BhZGRpbmctbGVmdDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmJyYW5kaW5nPi5uYXYtbGlua3tvdmVyZmxvdzpoaWRkZW59Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVy'@; put 'Z2VyLW1lbnUgLmhlYWRlciAuYnJhbmRpbmcgLmNsci1pY29uLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmJyYW5kaW5nIC5sb2dvLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmJyYW5kaW5nIGNkcy1pY29uLC5tYWlu'@; put 'LWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmJyYW5kaW5nIGNsci1pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmJyYW5kaW5nIGNkcy1pY29uW3NoYXBlPXZtLWJ1Z10sLm1haW4tY29u'@; put 'dGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuYnJhbmRpbmcgY2xyLWljb25bc2hhcGU9dm0tYnVnXSwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5icmFuZGluZyAuY2xyLXZtdy1sb2dve2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWhl'@; put 'YWRlci1iZy1jb2xvcik7Ym9yZGVyLXJhZGl1czp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1yYWRpdXMtMTAwKX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5icmFuZGluZyAudGl0bGV7Y29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pdGVt'@; put 'LWNvbG9yKTt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO292ZXJmbG93OmhpZGRlbn0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuY2xyLW5hdi1jbG9zZXtwb3NpdGlvbjpmaXhlZDt0b3A6MDtyaWdodDphdXRvO2xlZnQ6MDt6LWluZGV4OjEwMzk7dHJhbnNmb3JtOnRyYW5z'@; put 'bGF0ZShjYWxjKGNhbGMoMzYwKigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKSArIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNikpKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNnMgZWFzZX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuY2xyLW5hdi1jbG9zZTphZnRl'@; put 'cntjb250ZW50Om5vbmV9Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmNsci1uYXYtY2xvc2U+c3BhbntiYWNrZ3JvdW5kOjAgMH0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuY2xyLW5hdi1jbG9zZT5zcGFuOmJlZm9yZSwubWFpbi1jb250YWluZXIu'@; put 'b3Blbi1oYW1idXJnZXItbWVudSAuY2xyLW5hdi1jbG9zZT5zcGFuOmFmdGVye2xlZnQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0zKTt0cmFuc2Zvcm0tb3JpZ2luOjklO3RyYW5zaXRpb246dHJhbnNmb3JtIC42cyBlYXNlfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5j'@; put 'bHItbmF2LWNsb3NlPnNwYW46YmVmb3Jle3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5jbHItbmF2LWNsb3NlPnNwYW46YWZ0ZXJ7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdl'@; put 'ci1tZW51IC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29u'@; put 'dGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmNsci12ZXJ0aWNhbC1uYXYuY2xyLW5hdi1sZXZlbC0xe3BhZGRpbmctdG9wOmNhbGModmFyKC0tY2xyLWhlYWRlci1oZWlnaHQpICsgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKTt0cmFuc2l0aW9u'@; put 'OnRyYW5zZm9ybSAuM3MgZWFzZX0ubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lci5vcGVuLW92'@; put 'ZXJmbG93LW1lbnUgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmNsci12ZXJ0aWNhbC1uYXYuY2xyLW5hdi1sZXZlbC0ye3RyYW5zZm9ybTp0cmFuc2xhdGUoMCk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIGVhc2V9Lm1haW4t'@; put 'Y29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5zdWItbmF2LmNsci1u'@; put 'YXYtbGV2ZWwtMntwYWRkaW5nLXRvcDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpfS5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmNsci1uYXYtY2xvc2V7cG9zaXRpb246Zml4ZWQ7dG9wOjA7cmlnaHQ6MDtsZWZ0OmF1dG87ei1pbmRleDoxMDM5O3RyYW5zZm9ybTp0cmFu'@; put 'c2xhdGUoY2FsYygtMSpjYWxjKGNhbGMoMzYwKigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKSArIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNikpKSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjZzIGVhc2V9Lm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuY2xyLW5hdi1j'@; put 'bG9zZTphZnRlcntjb250ZW50Om5vbmV9Lm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuY2xyLW5hdi1jbG9zZT5zcGFue2JhY2tncm91bmQ6MCAwfS5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmNsci1uYXYtY2xvc2U+c3BhbjpiZWZvcmUsLm1haW4tY29u'@; put 'dGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuY2xyLW5hdi1jbG9zZT5zcGFuOmFmdGVye2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTIpO3dpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSk7bGVmdDpjYWxjKC0xKnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNCkpO3RyYW5zZm9y'@; put 'bS1vcmlnaW46LTMlO3RyYW5zaXRpb246dHJhbnNmb3JtIC42cyBlYXNlfS5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmNsci1uYXYtY2xvc2U+c3BhbjpiZWZvcmV7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9Lm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAu'@; put 'Y2xyLW5hdi1jbG9zZT5zcGFuOmFmdGVye3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLnN1Ym5hdi5jbHItbmF2'@; put 'LWxldmVsLTEsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0xLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5jbHItdmVydGljYWwtbmF2LmNsci1uYXYtbGV2ZWwtMXtvdmVyZmxvdzppbmhlcml0O3dpZHRoOmNh'@; put 'bGMoMzYwKigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTttYXgtd2lkdGg6Y2FsYygzNjAqKDFyZW0vdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMTpiZWZvcmUsLm1haW4t'@; put 'Y29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTE6YmVmb3JlLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMTpiZWZvcmUsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUg'@; put 'LmNsci12ZXJ0aWNhbC1uYXYuY2xyLW5hdi1sZXZlbC0xOmJlZm9yZXtjb250ZW50Om5vbmV9Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluaywubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAu'@; put 'c3VibmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbmssLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluaywubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuY2xyLXZlcnRpY2FsLW5hdi5jbHItbmF2'@; put 'LWxldmVsLTEgLm5hdi1saW5re3dpZHRoOjEwMCV9Lm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWlu'@; put 'ZXIub3Blbi1vdmVyZmxvdy1tZW51IC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5jbHItdmVydGljYWwtbmF2LmNsci1uYXYtbGV2ZWwtMnt3aWR0aDpjYWxjKDM2MCooMXJlbS92YXIoLS1jZHMtZ2xvYmFsLWJhc2UpKSk7bWF4'@; put 'LXdpZHRoOmNhbGMoMzYwKigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKX19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo1NzZweCl7Lm1haW4tY29udGFpbmVyIC5oZWFkZXIgLmJyYW5kaW5ne21heC13aWR0aDpjYWxjKDE0NCooMXJlbS92YXIoLS1jZHMtZ2xvYmFsLWJhc2Up'@; put 'KSk7bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVufS5tYWluLWNvbnRhaW5lciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29u'@; put 'dGFpbmVyIC5jbHItdmVydGljYWwtbmF2LmNsci1uYXYtbGV2ZWwtMXt0cmFuc2Zvcm06dHJhbnNsYXRlKGNhbGMoLTEqY2FsYygyODgqKDFyZW0vdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpKSl9Lm1haW4tY29udGFpbmVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250'@; put 'YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWluZXIgLmNsci12ZXJ0aWNhbC1uYXYuY2xyLW5hdi1sZXZlbC0ye3RyYW5zZm9ybTp0cmFuc2xhdGUoY2FsYygyODgqKDFyZW0vdmFyKC0tY2Rz'@; put 'LWdsb2JhbC1iYXNlKSkpKX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5icmFuZGluZ3t3aWR0aDpjYWxjKDI4OCooMXJlbS92YXIoLS1jZHMtZ2xvYmFsLWJhc2UpKSk7bWF4LXdpZHRoOmNhbGMoMjg4KigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkp'@; put 'KX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLnN1'@; put 'Yi1uYXYuY2xyLW5hdi1sZXZlbC0xLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5jbHItdmVydGljYWwtbmF2LmNsci1uYXYtbGV2ZWwtMXtvdmVyZmxvdzppbmhlcml0O3dpZHRoOmNhbGMoMjg4KigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTttYXgtd2lkdGg6'@; put 'Y2FsYygyODgqKDFyZW0vdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5jbHItbmF2LWNsb3Nle3Bvc2l0aW9uOmZpeGVkO3RvcDowO3JpZ2h0OmF1dG87bGVmdDowO3otaW5kZXg6MTAzOTt0cmFuc2Zvcm06dHJhbnNsYXRlKGNh'@; put 'bGMoY2FsYygyODgqKDFyZW0vdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpICsgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KSkpO3RyYW5zaXRpb246dHJhbnNmb3JtIC42cyBlYXNlfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5jbHItbmF2LWNsb3NlOmFmdGVye2NvbnRl'@; put 'bnQ6bm9uZX0ubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUg'@; put 'LnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmNsci12ZXJ0aWNhbC1uYXYuY2xyLW5hdi1sZXZlbC0ye3dpZHRoOmNhbGMoMjg4KigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTttYXgtd2lkdGg6Y2FsYygyODgqKDFyZW0v'@; put 'dmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpfS5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmNsci1uYXYtY2xvc2V7cG9zaXRpb246Zml4ZWQ7dG9wOjA7cmlnaHQ6MDtsZWZ0OmF1dG87ei1pbmRleDoxMDM5O3RyYW5zZm9ybTp0cmFuc2xhdGUoY2FsYygtMSpjYWxjKGNhbGMo'@; put 'Mjg4KigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKSArIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNikpKSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjZzIGVhc2V9Lm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuY2xyLW5hdi1jbG9zZTphZnRlcntjb250ZW50Om5vbmV9'@; put 'fTpyb290IFtjZHMtdGhlbWVdey0tY2xyLWJhZGdlLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXV0aWxpdHktZ3JheSk7LS1jbHItYmFkZ2UtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItMTAwKTstLWNsci1iYWRnZS1pbmZvLWJnLWNvbG9yOnZhcigt'@; put 'LWNkcy1hbGlhcy11dGlsaXR5LWJsdWUpOy0tY2xyLWJhZGdlLWluZm8tY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItMTAwKTstLWNsci1iYWRnZS1zdWNjZXNzLWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy11dGlsaXR5LWdyZWVuKTstLWNsci1iYWRnZS1zdWNjZXNz'@; put 'LWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTEwMCk7LS1jbHItYmFkZ2Utd2FybmluZy1iZy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdXRpbGl0eS15ZWxsb3cpOy0tY2xyLWJhZGdlLXdhcm5pbmctY29sb3I6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibGFjayk7LS1j'@; put 'bHItYmFkZ2UtZGFuZ2VyLWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy11dGlsaXR5LXJlZCk7LS1jbHItYmFkZ2UtZGFuZ2VyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTEwMCk7LS1jbHItYmFkZ2UtZ3JheS1iZy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdXRpbGl0'@; put 'eS1ncmF5KTstLWNsci1iYWRnZS1ncmF5LWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTEwMCk7LS1jbHItYmFkZ2UtcHVycGxlLWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy11dGlsaXR5LXZpb2xldCk7LS1jbHItYmFkZ2UtcHVycGxlLWNvbG9yOnZhcigtLWNkcy1h'@; put 'bGlhcy10eXBvZ3JhcGh5LWNvbG9yLTEwMCk7LS1jbHItYmFkZ2UtYmx1ZS1iZy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdXRpbGl0eS1kYXJrLWJsdWUpOy0tY2xyLWJhZGdlLWJsdWUtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItMTAwKTstLWNsci1iYWRnZS1vcmFu'@; put 'Z2UtYmctY29sb3I6dmFyKC0tY2RzLWFsaWFzLXV0aWxpdHktdGFuZ2VyaW5lKTstLWNsci1iYWRnZS1vcmFuZ2UtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNTAwKTstLWNsci1iYWRnZS1saWdodC1ibHVlLWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy11dGlsaXR5'@; put 'LWxpZ2h0LWJsdWUpOy0tY2xyLWJhZGdlLWxpZ2h0LWJsdWUtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNTAwKX0uYmFkZ2V7ZGlzcGxheTppbmxpbmUtZmxleDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpj'@; put 'ZW50ZXI7bWluLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYmFkZ2UtYmFja2dyb3VuZC1jb2xvcik7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7Ym9yZGVyLXJhZGl1czpjYWxjKDIqdmFyKC0tY2RzLWFsaWFzLW9i'@; put 'amVjdC1ib3JkZXItcmFkaXVzLTEwMCkpO2ZvbnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zbWFsbGNhcHRpb24tZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zbWFsbGNhcHRpb24tZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZh'@; put 'cigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNtYWxsY2FwdGlvbi1saW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc21hbGxjYXB0aW9uLWxldHRlci1zcGFjaW5nKTtwYWRkaW5nOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMikgdmFyKC0tY2Rz'@; put 'LWdsb2JhbC1zcGFjZS0zKTttYXJnaW4tcmlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS00KTt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6dmFyKC0tY2xyLWJhZGdlLWNvbG9yKX0uYmFkZ2U6dmlzaXRlZHtjb2xvcjp2YXIoLS1jbHItYmFkZ2UtY29sb3Ip'@; put 'fS5iYWRnZTpsaW5re2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJhZGdlLWdyYXktYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1iYWRnZS1ncmF5LWNvbG9yKX0uYmFkZ2UuYmFkZ2UtZ3JheSwuYmFkZ2UuYmFkZ2UtMXtiYWNrZ3JvdW5kOnZhcigtLWNsci1iYWRnZS1ncmF5LWJnLWNv'@; put 'bG9yKTtjb2xvcjp2YXIoLS1jbHItYmFkZ2UtZ3JheS1jb2xvcil9LmJhZGdlLmJhZGdlLXB1cnBsZSwuYmFkZ2UuYmFkZ2UtMntiYWNrZ3JvdW5kOnZhcigtLWNsci1iYWRnZS1wdXJwbGUtYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1iYWRnZS1wdXJwbGUtY29sb3IpfS5iYWRnZS5iYWRn'@; put 'ZS1ibHVlLC5iYWRnZS5iYWRnZS0ze2JhY2tncm91bmQ6dmFyKC0tY2xyLWJhZGdlLWJsdWUtYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1iYWRnZS1ibHVlLWNvbG9yKX0uYmFkZ2UuYmFkZ2Utb3JhbmdlLC5iYWRnZS5iYWRnZS00e2JhY2tncm91bmQ6dmFyKC0tY2xyLWJhZGdlLW9yYW5n'@; put 'ZS1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJhZGdlLW9yYW5nZS1jb2xvcil9LmJhZGdlLmJhZGdlLWxpZ2h0LWJsdWUsLmJhZGdlLmJhZGdlLTV7YmFja2dyb3VuZDp2YXIoLS1jbHItYmFkZ2UtbGlnaHQtYmx1ZS1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJhZGdlLWxpZ2h0LWJs'@; put 'dWUtY29sb3IpfS5iYWRnZS5iYWRnZS1pbmZve2JhY2tncm91bmQ6dmFyKC0tY2xyLWJhZGdlLWluZm8tYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1iYWRnZS1pbmZvLWNvbG9yKX0uYmFkZ2UuYmFkZ2Utc3VjY2Vzc3tiYWNrZ3JvdW5kOnZhcigtLWNsci1iYWRnZS1zdWNjZXNzLWJnLWNv'@; put 'bG9yKTtjb2xvcjp2YXIoLS1jbHItYmFkZ2Utc3VjY2Vzcy1jb2xvcil9LmJhZGdlLmJhZGdlLWRhbmdlcntiYWNrZ3JvdW5kOnZhcigtLWNsci1iYWRnZS1kYW5nZXItYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1iYWRnZS1kYW5nZXItY29sb3IpfS5iYWRnZS5iYWRnZS13YXJuaW5ne2Jh'@; put 'Y2tncm91bmQ6dmFyKC0tY2xyLWJhZGdlLXdhcm5pbmctYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1iYWRnZS13YXJuaW5nLWNvbG9yKX1fOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAuYmFkZ2UsOnJvb3QgLmJhZGdle3BhZGRpbmc6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0yKSBjYWxjKDMq'@; put 'KDFyZW0vdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpIDB9QHN1cHBvcnRzICgtbXMtaW1lLWFsaWduOmF1dG8pey5iYWRnZXtwYWRkaW5nOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMikgY2FsYygzKigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKSAwfX06cm9vdCBbY2RzLXRoZW1lXXst'@; put 'LWNsci1sYWJlbC1mb250LWNvbG9yLWxpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTUwMCk7LS1jbHItbGFiZWwtZm9udC1jb2xvci1kYXJrOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xyLWxhYmVsLWRlZmF1bHQtYm9yZGVyLWNvbG9yOnZhcigtLWNk'@; put 'cy1hbGlhcy11dGlsaXR5LWdyYXkpOy0tY2xyLWxhYmVsLWRlZmF1bHQtYmctY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1vcGFjaXR5LTApOy0tY2xyLWxhYmVsLWJnLWhvdmVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1ob3Zlcik7'@; put 'LS1jbHItbGFiZWwtaG92ZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvci1ob3Zlcik7LS1jbHItbGFiZWwtYmctYWN0aXZlLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1hY3RpdmUpOy0tY2xyLWxhYmVs'@; put 'LWFjdGl2ZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yLWFjdGl2ZSk7LS1jbHItbGFiZWwtYmctZGlzYWJsZWQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLWRpc2FibGVkKTstLWNsci1sYWJlbC1kaXNh'@; put 'YmxlZC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1kaXNhYmxlZCk7LS1jbHItbGFiZWwtZGlzYWJsZWQtYm9yZGVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtZGlzYWJsZWQpOy0tY2xyLWxhYmVsLWdyYXktYmctY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1v'@; put 'cGFjaXR5LTApOy0tY2xyLWxhYmVsLWdyYXktYm9yZGVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy11dGlsaXR5LWdyYXkpOy0tY2xyLWxhYmVsLWdyYXktY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNTAwKTstLWNsci1sYWJlbC1wdXJwbGUtYmctY29sb3I6dmFyKC0t'@; put 'Y2RzLWFsaWFzLW9iamVjdC1vcGFjaXR5LTApOy0tY2xyLWxhYmVsLXB1cnBsZS1ib3JkZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLXV0aWxpdHktdmlvbGV0KTstLWNsci1sYWJlbC1wdXJwbGUtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNTAwKTstLWNsci1sYWJl'@; put 'bC1ibHVlLWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3Qtb3BhY2l0eS0wKTstLWNsci1sYWJlbC1ibHVlLWJvcmRlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdXRpbGl0eS1kYXJrLWJsdWUpOy0tY2xyLWxhYmVsLWJsdWUtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHkt'@; put 'Y29sb3ItNTAwKTstLWNsci1sYWJlbC1vcmFuZ2UtYmctY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1vcGFjaXR5LTApOy0tY2xyLWxhYmVsLW9yYW5nZS1ib3JkZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLXV0aWxpdHktdGFuZ2VyaW5lKTstLWNsci1sYWJlbC1vcmFuZ2UtY29sb3I6'@; put 'dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNTAwKTstLWNsci1sYWJlbC1saWdodC1ibHVlLWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3Qtb3BhY2l0eS0wKTstLWNsci1sYWJlbC1saWdodC1ibHVlLWJvcmRlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdXRpbGl0eS1s'@; put 'aWdodC1ibHVlKTstLWNsci1sYWJlbC1saWdodC1ibHVlLWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTUwMCk7LS1jbHItbGFiZWwtaW5mby1iZy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdXRpbGl0eS1ibHVlLXRpbnQpOy0tY2xyLWxhYmVsLWluZm8tZm9udC1jb2xv'@; put 'cjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci01MDApOy0tY2xyLWxhYmVsLWluZm8tYm9yZGVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy11dGlsaXR5LWJsdWUpOy0tY2xyLWxhYmVsLXN1Y2Nlc3MtYmctY29sb3I6dmFyKC0tY2RzLWFsaWFzLXV0aWxpdHktZ3JlZW4tdGludCk7'@; put 'LS1jbHItbGFiZWwtc3VjY2Vzcy1mb250LWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTUwMCk7LS1jbHItbGFiZWwtc3VjY2Vzcy1ib3JkZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLXV0aWxpdHktZ3JlZW4pOy0tY2xyLWxhYmVsLXdhcm5pbmctYmctY29sb3I6dmFy'@; put 'KC0tY2RzLWFsaWFzLXV0aWxpdHkteWVsbG93LXRpbnQpOy0tY2xyLWxhYmVsLXdhcm5pbmctZm9udC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci01MDApOy0tY2xyLWxhYmVsLXdhcm5pbmctYm9yZGVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy11dGlsaXR5LXllbGxv'@; put 'dyk7LS1jbHItbGFiZWwtZGFuZ2VyLWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy11dGlsaXR5LXJlZC10aW50KTstLWNsci1sYWJlbC1kYW5nZXItZm9udC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci01MDApOy0tY2xyLWxhYmVsLWRhbmdlci1ib3JkZXItY29sb3I6'@; put 'dmFyKC0tY2RzLWFsaWFzLXV0aWxpdHktcmVkKTstLWNsci1sYWJlbC1ib3JkZXItd2lkdGg6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMTAwKX0ubGFiZWwsYS5sYWJlbHtmb250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY2FwdGlvbi1mb250LXNpemUp'@; put 'O2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNhcHRpb24tZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNhcHRpb24tbGluZS1oZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNh'@; put 'cHRpb24tbGV0dGVyLXNwYWNpbmcpO2Rpc3BsYXk6aW5saW5lLWZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSk7cGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTMpIHZhcigtLWNkcy1nbG9iYWwt'@; put 'c3BhY2UtNSk7Ym9yZGVyOnZhcigtLWNsci1sYWJlbC1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWNsci1sYWJlbC1kZWZhdWx0LWJvcmRlci1jb2xvcik7Ym9yZGVyLXJhZGl1czp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1yYWRpdXMtMjAwKTtoZWlnaHQ6dmFyKC0tY2RzLWds'@; put 'b2JhbC1zcGFjZS05KTttYXJnaW46MCB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTQpIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSkgMDt3aGl0ZS1zcGFjZTpub3dyYXA7Y29sb3I6dmFyKC0tY2xyLWxhYmVsLWZvbnQtY29sb3ItbGlnaHQpO3RleHQtZGVjb3JhdGlvbjpub25lfS5sYWJlbDpo'@; put 'YXMoPi5iYWRnZSksLmxhYmVsOmhhcyg+Y2RzLWljb24pLGEubGFiZWw6aGFzKD4uYmFkZ2UpLGEubGFiZWw6aGFzKD5jZHMtaWNvbil7cGFkZGluZy1yaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTMpfS5sYWJlbCAuYmFkZ2UsLmxhYmVsIGNkcy1pY29uLGEubGFiZWwgLmJhZGdlLGEu'@; put 'bGFiZWwgY2RzLWljb257bWFyZ2luOjA7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmxhYmVsOmhhcyguYmFkZ2UpLGEubGFiZWw6aGFzKC5iYWRnZSl7Z2FwOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMyl9LmxhYmVsLmNsaWNrYWJsZTpub3QoOmhhcygudGV4dCkpLGEubGFiZWwuY2xpY2thYmxl'@; put 'Om5vdCg6aGFzKC50ZXh0KSl7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0ubGFiZWwuY2xpY2thYmxlPi50ZXh0LGEubGFiZWwuY2xpY2thYmxlPi50ZXh0e3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9LmxhYmVsOnZpc2l0ZWQsYS5sYWJlbDp2aXNpdGVke2NvbG9yOnZhcigtLWNsci1s'@; put 'YWJlbC1mb250LWNvbG9yLWxpZ2h0KX0ubGFiZWw6Zm9jdXMsLmxhYmVsOmhvdmVyLC5sYWJlbDphY3RpdmUsYS5sYWJlbDpmb2N1cyxhLmxhYmVsOmhvdmVyLGEubGFiZWw6YWN0aXZle3RleHQtZGVjb3JhdGlvbjpub25lfS5sYWJlbC5jbGlja2FibGU6bm90KC5kaXNhYmxlZCk6aG92ZXIs'@; put 'YS5sYWJlbC5jbGlja2FibGU6bm90KC5kaXNhYmxlZCk6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7YmFja2dyb3VuZDp2YXIoLS1jbHItbGFiZWwtYmctaG92ZXItY29sb3IpO2NvbG9yOnZhcigtLWNsci1sYWJlbC1ob3Zlci1jb2xvcil9LmxhYmVsLmNsaWNrYWJsZTpub3QoLmRpc2Fi'@; put 'bGVkKTphY3RpdmUsYS5sYWJlbC5jbGlja2FibGU6bm90KC5kaXNhYmxlZCk6YWN0aXZle2NvbG9yOnZhcigtLWNsci1sYWJlbC1hY3RpdmUtY29sb3IpO2JhY2tncm91bmQ6dmFyKC0tY2xyLWxhYmVsLWJnLWFjdGl2ZS1jb2xvcik7dHJhbnNmb3JtOnRyYW5zbGF0ZVkodmFyKC0tY2RzLWds'@; put 'b2JhbC1zcGFjZS0yKSl9LmxhYmVsLmxhYmVsLWdyYXksLmxhYmVsLmxhYmVsLTEsYS5sYWJlbC5sYWJlbC1ncmF5LGEubGFiZWwubGFiZWwtMXtib3JkZXI6dmFyKC0tY2xyLWxhYmVsLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tY2xyLWxhYmVsLWdyYXktYm9yZGVyLWNvbG9yKTtiYWNr'@; put 'Z3JvdW5kLWNvbG9yOnZhcigtLWNsci1sYWJlbC1ncmF5LWJnLWNvbG9yKX0ubGFiZWwubGFiZWwtZ3JheT4uYmFkZ2UsYS5sYWJlbC5sYWJlbC1ncmF5Pi5iYWRnZXtiYWNrZ3JvdW5kOnZhcigtLWNsci1iYWRnZS1ncmF5LWJnLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHItYmFkZ2UtZ3JheS1j'@; put 'b2xvcil9LmxhYmVsLmxhYmVsLXB1cnBsZSwubGFiZWwubGFiZWwtMixhLmxhYmVsLmxhYmVsLXB1cnBsZSxhLmxhYmVsLmxhYmVsLTJ7Ym9yZGVyOnZhcigtLWNsci1sYWJlbC1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWNsci1sYWJlbC1wdXJwbGUtYm9yZGVyLWNvbG9yKTtiYWNrZ3Jv'@; put 'dW5kLWNvbG9yOnZhcigtLWNsci1sYWJlbC1wdXJwbGUtYmctY29sb3IpfS5sYWJlbC5sYWJlbC1wdXJwbGU+LmJhZGdlLGEubGFiZWwubGFiZWwtcHVycGxlPi5iYWRnZXtiYWNrZ3JvdW5kOnZhcigtLWNsci1iYWRnZS1wdXJwbGUtYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1iYWRnZS1w'@; put 'dXJwbGUtY29sb3IpfS5sYWJlbC5sYWJlbC1ibHVlLC5sYWJlbC5sYWJlbC0zLGEubGFiZWwubGFiZWwtYmx1ZSxhLmxhYmVsLmxhYmVsLTN7Ym9yZGVyOnZhcigtLWNsci1sYWJlbC1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWNsci1sYWJlbC1ibHVlLWJvcmRlci1jb2xvcik7YmFja2dy'@; put 'b3VuZC1jb2xvcjp2YXIoLS1jbHItbGFiZWwtYmx1ZS1iZy1jb2xvcil9LmxhYmVsLmxhYmVsLWJsdWU+LmJhZGdlLGEubGFiZWwubGFiZWwtYmx1ZT4uYmFkZ2V7YmFja2dyb3VuZDp2YXIoLS1jbHItYmFkZ2UtYmx1ZS1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJhZGdlLWJsdWUtY29s'@; put 'b3IpfS5sYWJlbC5sYWJlbC1vcmFuZ2UsLmxhYmVsLmxhYmVsLTQsYS5sYWJlbC5sYWJlbC1vcmFuZ2UsYS5sYWJlbC5sYWJlbC00e2JvcmRlcjp2YXIoLS1jbHItbGFiZWwtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1jbHItbGFiZWwtb3JhbmdlLWJvcmRlci1jb2xvcik7YmFja2dyb3Vu'@; put 'ZC1jb2xvcjp2YXIoLS1jbHItbGFiZWwtb3JhbmdlLWJnLWNvbG9yKX0ubGFiZWwubGFiZWwtb3JhbmdlPi5iYWRnZSxhLmxhYmVsLmxhYmVsLW9yYW5nZT4uYmFkZ2V7YmFja2dyb3VuZDp2YXIoLS1jbHItYmFkZ2Utb3JhbmdlLWJnLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHItYmFkZ2Utb3Jh'@; put 'bmdlLWNvbG9yKX0ubGFiZWwubGFiZWwtbGlnaHQtYmx1ZSwubGFiZWwubGFiZWwtNSxhLmxhYmVsLmxhYmVsLWxpZ2h0LWJsdWUsYS5sYWJlbC5sYWJlbC01e2JvcmRlcjp2YXIoLS1jbHItbGFiZWwtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1jbHItbGFiZWwtbGlnaHQtYmx1ZS1ib3Jk'@; put 'ZXItY29sb3IpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWxhYmVsLWxpZ2h0LWJsdWUtYmctY29sb3IpfS5sYWJlbC5sYWJlbC1saWdodC1ibHVlPi5iYWRnZSxhLmxhYmVsLmxhYmVsLWxpZ2h0LWJsdWU+LmJhZGdle2JhY2tncm91bmQ6dmFyKC0tY2xyLWJhZGdlLWxpZ2h0LWJsdWUt'@; put 'YmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1iYWRnZS1saWdodC1ibHVlLWNvbG9yKX0ubGFiZWwubGFiZWwtaW5mbyxhLmxhYmVsLmxhYmVsLWluZm97YmFja2dyb3VuZDp2YXIoLS1jbHItbGFiZWwtaW5mby1iZy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWxhYmVsLWluZm8tZm9udC1jb2xv'@; put 'cik7Ym9yZGVyOnZhcigtLWNsci1sYWJlbC1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWNsci1sYWJlbC1pbmZvLWJvcmRlci1jb2xvcil9LmxhYmVsLmxhYmVsLWluZm8+LmJhZGdlLGEubGFiZWwubGFiZWwtaW5mbz4uYmFkZ2V7YmFja2dyb3VuZDp2YXIoLS1jbHItYmFkZ2UtaW5mby1i'@; put 'Zy1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWJhZGdlLWluZm8tY29sb3IpfS5sYWJlbC5sYWJlbC1zdWNjZXNzLGEubGFiZWwubGFiZWwtc3VjY2Vzc3tiYWNrZ3JvdW5kOnZhcigtLWNsci1sYWJlbC1zdWNjZXNzLWJnLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHItbGFiZWwtc3VjY2Vzcy1mb250'@; put 'LWNvbG9yKTtib3JkZXI6dmFyKC0tY2xyLWxhYmVsLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tY2xyLWxhYmVsLXN1Y2Nlc3MtYm9yZGVyLWNvbG9yKX0ubGFiZWwubGFiZWwtc3VjY2Vzcz4uYmFkZ2UsYS5sYWJlbC5sYWJlbC1zdWNjZXNzPi5iYWRnZXtiYWNrZ3JvdW5kOnZhcigtLWNs'@; put 'ci1iYWRnZS1zdWNjZXNzLWJnLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHItYmFkZ2Utc3VjY2Vzcy1jb2xvcil9LmxhYmVsLmxhYmVsLXdhcm5pbmcsYS5sYWJlbC5sYWJlbC13YXJuaW5ne2JhY2tncm91bmQ6dmFyKC0tY2xyLWxhYmVsLXdhcm5pbmctYmctY29sb3IpO2NvbG9yOnZhcigtLWNs'@; put 'ci1sYWJlbC13YXJuaW5nLWZvbnQtY29sb3IpO2JvcmRlcjp2YXIoLS1jbHItbGFiZWwtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1jbHItbGFiZWwtd2FybmluZy1ib3JkZXItY29sb3IpfS5sYWJlbC5sYWJlbC13YXJuaW5nPi5iYWRnZSxhLmxhYmVsLmxhYmVsLXdhcm5pbmc+LmJhZGdl'@; put 'e2JhY2tncm91bmQ6dmFyKC0tY2xyLWJhZGdlLXdhcm5pbmctYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1iYWRnZS13YXJuaW5nLWNvbG9yKX0ubGFiZWwubGFiZWwtZGFuZ2VyLGEubGFiZWwubGFiZWwtZGFuZ2Vye2JhY2tncm91bmQ6dmFyKC0tY2xyLWxhYmVsLWRhbmdlci1iZy1jb2xv'@; put 'cik7Y29sb3I6dmFyKC0tY2xyLWxhYmVsLWRhbmdlci1mb250LWNvbG9yKTtib3JkZXI6dmFyKC0tY2xyLWxhYmVsLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tY2xyLWxhYmVsLWRhbmdlci1ib3JkZXItY29sb3IpfS5sYWJlbC5sYWJlbC1kYW5nZXI+LmJhZGdlLGEubGFiZWwubGFiZWwt'@; put 'ZGFuZ2VyPi5iYWRnZXtiYWNrZ3JvdW5kOnZhcigtLWNsci1iYWRnZS1kYW5nZXItYmctY29sb3IpO2NvbG9yOnZhcigtLWNsci1iYWRnZS1kYW5nZXItY29sb3IpfS5sYWJlbD4uYmFkZ2UsYS5sYWJlbD4uYmFkZ2V7bWFyZ2luOjB9LmxhYmVsLmRpc2FibGVkLC5sYWJlbDpkaXNhYmxlZCxh'@; put 'LmxhYmVsLmRpc2FibGVkLGEubGFiZWw6ZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2VkO3BvaW50ZXItZXZlbnRzOm5vbmU7YmFja2dyb3VuZDp2YXIoLS1jbHItbGFiZWwtYmctZGlzYWJsZWQtY29sb3IpO2NvbG9yOnZhcigtLWNsci1sYWJlbC1kaXNhYmxlZC1jb2xvcik7Ym9yZGVyLWNv'@; put 'bG9yOnZhcigtLWNsci1sYWJlbC1kaXNhYmxlZC1ib3JkZXItY29sb3IpfS5sYWJlbC5kaXNhYmxlZCAuYmFkZ2UsLmxhYmVsOmRpc2FibGVkIC5iYWRnZSxhLmxhYmVsLmRpc2FibGVkIC5iYWRnZSxhLmxhYmVsOmRpc2FibGVkIC5iYWRnZXtiYWNrZ3JvdW5kOnZhcigtLWNsci1sYWJlbC1k'@; put 'aXNhYmxlZC1jb2xvcil9QC1tb3otZG9jdW1lbnQgdXJsLXByZWZpeCgpey5sYWJlbCxhLmxhYmVse3ZlcnRpY2FsLWFsaWduOmJvdHRvbX19OnJvb3QgW2Nkcy10aGVtZV17LS1jbHItcHJvZ3Jlc3MtZGVmYXVsdC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWluZm8pOy0tY2xyLXBy'@; put 'b2dyZXNzLWFsdC1jb2xvci0xOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtc3VjY2Vzcyk7LS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTI6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1kYW5nZXItc2hhZGUpOy0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0zOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMt'@; put 'd2FybmluZyk7LS1jbHItcHJvZ3Jlc3MtYmctY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1jb250YWluZXItYmFja2dyb3VuZC1zaGFkZSk7LS1jbHItcHJvZ3Jlc3MtbGFiZWwtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNDAwKX0ucHJvZ3Jlc3MsLnByb2dy'@; put 'ZXNzLXN0YXRpY3tiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6MDtmb250LXNpemU6aW5oZXJpdDtoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KTttYXJnaW46MDtvdmVyZmxvdzpoaWRkZW47bWF4LWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNl'@; put 'LTYpO21pbi1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0zKTtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCV9LnByb2dyZXNzPnByb2dyZXNzey13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpu'@; put 'b25lO2NvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1kZWZhdWx0LWNvbG9yKTtkaXNwbGF5OmJsb2NrO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWJnLWNvbG9yKTtib3JkZXI6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5wcm9ncmVzcz5wcm9ncmVzczo6LXdlYmtpdC1w'@; put 'cm9ncmVzcy12YWx1ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1kZWZhdWx0LWNvbG9yKX0ucHJvZ3Jlc3M+cHJvZ3Jlc3M6Oi1tb3otcHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWRlZmF1bHQtY29sb3IpfS5wcm9ncmVzcz5w'@; put 'cm9ncmVzc1t2YWx1ZT0iMCJdOjotbW96LXByb2dyZXNzLWJhcnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTstbXMtYXBwZWFyYW5jZTpub25lOy1vLWFwcGVhcmFuY2U6bm9uZTtjb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYmctY29sb3IpO21pbi13aWR0'@; put 'aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEyKTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtaW1hZ2U6bm9uZX0ucHJvZ3Jlc3M+cHJvZ3Jlc3NbdmFsdWU9IjAiXTo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZXstd2Via2l0LXRyYW5zaXRpb246bm9uZTt0cmFuc2l0'@; put 'aW9uOm5vbmV9LnByb2dyZXNzPnByb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLWJhcntib3JkZXItcmFkaXVzOjA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYmctY29sb3IpfS5wcm9ncmVzcz5wcm9ncmVzczo6LXdlYmtpdC1wcm9ncmVzcy1pbm5lci1lbGVtZW50ey13'@; put 'ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lfS5wcm9ncmVzcz5wcm9ncmVzczo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZXstd2Via2l0LXRyYW5zaXRpb246d2lkdGggLjIzcyBlYXNlLWluO3Ry'@; put 'YW5zaXRpb246d2lkdGggLjIzcyBlYXNlLWluO2JvcmRlci1yYWRpdXM6MH0ucHJvZ3Jlc3Muc3VjY2Vzcz5wcm9ncmVzc3tjb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTEpfS5wcm9ncmVzcy5zdWNjZXNzPnByb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLXZhbHVle2JhY2tn'@; put 'cm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0xKX0ucHJvZ3Jlc3Muc3VjY2Vzcz5wcm9ncmVzczo6LW1vei1wcm9ncmVzcy1iYXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTEpfS5wcm9ncmVzcy53YXJuaW5nPnByb2dyZXNz'@; put 'e2NvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMyl9LnByb2dyZXNzLndhcm5pbmc+cHJvZ3Jlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTMpfS5wcm9ncmVzcy53YXJuaW5nPnByb2dyZXNz'@; put 'OjotbW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMyl9LnByb2dyZXNzLmRhbmdlcj5wcm9ncmVzc3tjb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTIpfS5wcm9ncmVzcy5kYW5nZXI+cHJvZ3Jlc3M6Oi13ZWJr'@; put 'aXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTIpfS5wcm9ncmVzcy5kYW5nZXI+cHJvZ3Jlc3M6Oi1tb3otcHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0yKX0ucHJv'@; put 'Z3Jlc3MubGFiZWxlZCwucHJvZ3Jlc3Mtc3RhdGljLmxhYmVsZWR7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZy1yaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTExKTtjb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtbGFiZWwtY29sb3IpfS5wcm9ncmVzcy5sYWJlbGVkPnNwYW4sLnByb2dy'@; put 'ZXNzLXN0YXRpYy5sYWJlbGVkPnNwYW57ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDowO21hcmdpbi10b3A6MDtmb250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY2FwdGlvbi1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1hbGlh'@; put 'cy10eXBvZ3JhcGh5LWNhcHRpb24tZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNik7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY2FwdGlvbi1sZXR0ZXItc3BhY2luZyl9LnByb2dyZXNzLmNvbXBhY3Q6bm90KC5sYWJl'@; put 'bGVkKSwucHJvZ3Jlc3Mtc3RhdGljLmNvbXBhY3Q6bm90KC5sYWJlbGVkKXtoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0zKX0ucHJvZ3Jlc3MuY29tcGFjdC5sYWJlbGVkPi5wcm9ncmVzcy1tZXRlciwucHJvZ3Jlc3Mtc3RhdGljLmNvbXBhY3QubGFiZWxlZD4ucHJvZ3Jlc3MtbWV0'@; put 'ZXJ7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMyk7dG9wOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMyl9QGtleWZyYW1lcyBjbHItcHJvZ3Jlc3MtZmFkZXswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowfX0ucHJvZ3Jlc3MucHJvZ3Jlc3MtZmFkZT5wcm9ncmVzc1t2YWx1ZT0iMTAw'@; put 'Il0sLnByb2dyZXNzLnByb2dyZXNzLWZhZGU+cHJvZ3Jlc3NbdmFsdWU9IjEwMCJdK3NwYW57YW5pbWF0aW9uOmNsci1wcm9ncmVzcy1mYWRlIC4zcyBsaW5lYXIgLjVzIGZvcndhcmRzfS5wcm9ncmVzcy5mbGFzaC1kYW5nZXI+cHJvZ3Jlc3MsLnByb2dyZXNzLmZsYXNoPnByb2dyZXNze3Ry'@; put 'YW5zaXRpb246Y29sb3IgLjFzIGVhc2Utb3V0IDFzfS5wcm9ncmVzcy5mbGFzaC1kYW5nZXI+cHJvZ3Jlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUsLnByb2dyZXNzLmZsYXNoPnByb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLXZhbHVley13ZWJraXQtdHJhbnNpdGlvbjp3aWR0aCAuMjNz'@; put 'IGVhc2UtaW4sYmFja2dyb3VuZC1jb2xvciAuMXMgZWFzZS1vdXQgLjNzO3RyYW5zaXRpb246d2lkdGggLjIzcyBlYXNlLWluLGJhY2tncm91bmQtY29sb3IgLjFzIGVhc2Utb3V0IC4zc30ucHJvZ3Jlc3MuZmxhc2gtZGFuZ2VyPnByb2dyZXNzW3ZhbHVlPSIwIl06Oi13ZWJraXQtcHJvZ3Jl'@; put 'c3MtdmFsdWUsLnByb2dyZXNzLmZsYXNoPnByb2dyZXNzW3ZhbHVlPSIwIl06Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7LXdlYmtpdC10cmFuc2l0aW9uOm5vbmU7dHJhbnNpdGlvbjpub25lfS5wcm9ncmVzcy5mbGFzaC1kYW5nZXI+cHJvZ3Jlc3M6Oi1tb3otcHJvZ3Jlc3MtYmFyLC5wcm9n'@; put 'cmVzcy5mbGFzaD5wcm9ncmVzczo6LW1vei1wcm9ncmVzcy1iYXJ7LW1vei10cmFuc2l0aW9uOndpZHRoIC4yM3MgZWFzZS1pbixiYWNrZ3JvdW5kLWNvbG9yIC4xcyBlYXNlLW91dCAuM3M7dHJhbnNpdGlvbjp3aWR0aCAuMjNzIGVhc2UtaW4sYmFja2dyb3VuZC1jb2xvciAuMXMgZWFzZS1v'@; put 'dXQgLjNzfS5wcm9ncmVzcy5mbGFzaD5wcm9ncmVzc1t2YWx1ZT0iMTAwIl17Y29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0xKX0ucHJvZ3Jlc3MuZmxhc2g+cHJvZ3Jlc3NbdmFsdWU9IjEwMCJdOjotd2Via2l0LXByb2dyZXNzLXZhbHVle2JhY2tncm91bmQtY29sb3I6dmFy'@; put 'KC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0xKX0ucHJvZ3Jlc3MuZmxhc2g+cHJvZ3Jlc3NbdmFsdWU9IjEwMCJdOjotbW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMSl9LnByb2dyZXNzLnByb2dyZXNzLWZhZGUuZmxhc2g+'@; put 'cHJvZ3Jlc3NbdmFsdWU9IjEwMCJdLC5wcm9ncmVzcy5wcm9ncmVzcy1mYWRlLmZsYXNoPnByb2dyZXNzW3ZhbHVlPSIxMDAiXStzcGFue2FuaW1hdGlvbjpjbHItcHJvZ3Jlc3MtZmFkZSAuNnMgbGluZWFyIDFzIGZvcndhcmRzfS5wcm9ncmVzcy5mbGFzaC1kYW5nZXI+cHJvZ3Jlc3NbdmFs'@; put 'dWU9IjEwMCJde2NvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMil9LnByb2dyZXNzLmZsYXNoLWRhbmdlcj5wcm9ncmVzc1t2YWx1ZT0iMTAwIl06Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTIp'@; put 'fS5wcm9ncmVzcy5mbGFzaC1kYW5nZXI+cHJvZ3Jlc3NbdmFsdWU9IjEwMCJdOjotbW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMil9QGtleWZyYW1lcyBjbHItcHJvZ3Jlc3MtbG9vcGVyezAle2xlZnQ6LTEwMCV9dG97bGVm'@; put 'dDoxMDAlfX0ucHJvZ3Jlc3MubG9vcHtwb3NpdGlvbjpyZWxhdGl2ZX0ucHJvZ3Jlc3MubG9vcD5wcm9ncmVzc3tvdmVyZmxvdzpoaWRkZW47Y29sb3I6dHJhbnNwYXJlbnR9LnByb2dyZXNzLmxvb3A+cHJvZ3Jlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjp0'@; put 'cmFuc3BhcmVudH0ucHJvZ3Jlc3MubG9vcD5wcm9ncmVzczo6LW1vei1wcm9ncmVzcy1iYXJ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ucHJvZ3Jlc3MubG9vcDphZnRlcnthbmltYXRpb246Y2xyLXByb2dyZXNzLWxvb3BlciAycyBlYXNlLWluLW91dCBpbmZpbml0ZTtjb250ZW50'@; put 'OiIgIjt0b3A6MDtib3R0b206MDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jaztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1kZWZhdWx0LWNvbG9yKTt3aWR0aDo1MCV9LnByb2dyZXNzLmxvb3AuZGFuZ2VyOmFmdGVye2JhY2tncm91bmQtY29sb3I6'@; put 'dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0yKX0ucHJvZ3Jlc3MubG9vcC53YXJuaW5nOmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0zKX0ucHJvZ3Jlc3MubG9vcC5zdWNjZXNzOmFmdGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xy'@; put 'LXByb2dyZXNzLWFsdC1jb2xvci0xKX0ucHJvZ3Jlc3Mtc3RhdGlje3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlcjowO3dpZHRoOjEwMCV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYmctY29sb3IpO2Rpc3BsYXk6'@; put 'YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MH0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtZGVmYXVsdC1jb2xvcik7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO2Rp'@; put 'c3BsYXk6YmxvY2s7d2lkdGg6MDtjb250ZW50OiIgIn0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIxIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjIiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJv'@; put 'Z3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMyJdOmJlZm9yZXt3aWR0aDoyJX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI0Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjUiXTpiZWZvcmUsLnByb2dyZXNz'@; put 'LXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNiJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI3Il06YmVmb3Jle3dpZHRoOjUlfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjgiXTpiZWZv'@; put 'cmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iOSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIxMCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIxMSJd'@; put 'OmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIxMiJdOmJlZm9yZXt3aWR0aDoxMCV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMTMiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJb'@; put 'ZGF0YS12YWx1ZT0iMTQiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMTUiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMTYiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3Mt'@; put 'bWV0ZXJbZGF0YS12YWx1ZT0iMTciXTpiZWZvcmV7d2lkdGg6MTUlfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjE4Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjE5Il06YmVmb3JlLC5wcm9ncmVzcy1z'@; put 'dGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjIwIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjIxIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjIyIl06YmVmb3Jle3dpZHRo'@; put 'OjIwJX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIyMyJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIyNCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIy'@; put 'NSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIyNiJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIyNyJdOmJlZm9yZXt3aWR0aDoyNSV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0'@; put 'ZXJbZGF0YS12YWx1ZT0iMjgiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMjkiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMzAiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jl'@; put 'c3MtbWV0ZXJbZGF0YS12YWx1ZT0iMzEiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMzIiXTpiZWZvcmV7d2lkdGg6MzAlfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjMzIl06YmVmb3JlLC5wcm9ncmVz'@; put 'cy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjM0Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjM1Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjM2Il06YmVmb3JlLC5w'@; put 'cm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjM3Il06YmVmb3Jle3dpZHRoOjM1JX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIzOCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVl'@; put 'PSIzOSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI0MCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI0MSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRh'@; put 'LXZhbHVlPSI0MiJdOmJlZm9yZXt3aWR0aDo0MCV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNDMiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNDQiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJv'@; put 'Z3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNDUiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNDYiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNDciXTpiZWZvcmV7d2lkdGg6NDUlfS5wcm9n'@; put 'cmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjQ4Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjQ5Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjUwIl06YmVmb3Jl'@; put 'LC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjUxIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjUyIl06YmVmb3Jle3dpZHRoOjUwJX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZh'@; put 'bHVlPSI1MyJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI1NCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI1NSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltk'@; put 'YXRhLXZhbHVlPSI1NiJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI1NyJdOmJlZm9yZXt3aWR0aDo1NSV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNTgiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4u'@; put 'cHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNTkiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNjAiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNjEiXTpiZWZvcmUsLnByb2dyZXNzLXN0'@; put 'YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNjIiXTpiZWZvcmV7d2lkdGg6NjAlfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjYzIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjY0Il06YmVm'@; put 'b3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjY1Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjY2Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjY3'@; put 'Il06YmVmb3Jle3dpZHRoOjY1JX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI2OCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI2OSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRl'@; put 'cltkYXRhLXZhbHVlPSI3MCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI3MSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI3MiJdOmJlZm9yZXt3aWR0aDo3MCV9LnByb2dyZXNzLXN0YXRp'@; put 'Yz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNzMiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNzQiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNzUiXTpiZWZvcmUsLnByb2dyZXNz'@; put 'LXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNzYiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNzciXTpiZWZvcmV7d2lkdGg6NzUlfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9Ijc4Il06'@; put 'YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9Ijc5Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjgwIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9'@; put 'IjgxIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjgyIl06YmVmb3Jle3dpZHRoOjgwJX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI4MyJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1t'@; put 'ZXRlcltkYXRhLXZhbHVlPSI4NCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI4NSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI4NiJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9n'@; put 'cmVzcy1tZXRlcltkYXRhLXZhbHVlPSI4NyJdOmJlZm9yZXt3aWR0aDo4NSV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iODgiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iODkiXTpiZWZvcmUsLnByb2dy'@; put 'ZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iOTAiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iOTEiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iOTIiXTpiZWZvcmV7'@; put 'd2lkdGg6OTAlfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjkzIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9Ijk0Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFs'@; put 'dWU9Ijk1Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9Ijk2Il06YmVmb3Jle3dpZHRoOjk1JX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI5NyJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVz'@; put 'cy1tZXRlcltkYXRhLXZhbHVlPSI5OCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI5OSJdOmJlZm9yZXt3aWR0aDo5OCV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMTAwIl06YmVmb3Jle3dpZHRoOjEw'@; put 'MCV9LnByb2dyZXNzLXN0YXRpYy5sYWJlbGVkPi5wcm9ncmVzcy1tZXRlcntyaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTExKX0ucHJvZ3Jlc3Mtc3RhdGljLnN1Y2Nlc3M+LnByb2dyZXNzLW1ldGVyOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1hbHQt'@; put 'Y29sb3ItMSl9LnByb2dyZXNzLXN0YXRpYy53YXJuaW5nPi5wcm9ncmVzcy1tZXRlcjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTMpfS5wcm9ncmVzcy1zdGF0aWMuZGFuZ2VyPi5wcm9ncmVzcy1tZXRlcjpiZWZvcmV7YmFja2dyb3VuZC1j'@; put 'b2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTIpfS5jYXJkLWJsb2NrIC5wcm9ncmVzcywuY2FyZC1ibG9jayAucHJvZ3Jlc3Mtc3RhdGljLC5jYXJkLWZvb3RlciAucHJvZ3Jlc3MsLmNhcmQtZm9vdGVyIC5wcm9ncmVzcy1zdGF0aWN7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwt'@; put 'c3BhY2UtMyk7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO21hcmdpbjpjYWxjKC0xKnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkpIDAgMH0uY2FyZC1ibG9jayAucHJvZ3Jlc3MudG9wLC5jYXJkLWJsb2NrIC5wcm9ncmVzcy1zdGF0aWMudG9wLC5jYXJkLWZvb3RlciAucHJvZ3Jlc3MudG9w'@; put 'LC5jYXJkLWZvb3RlciAucHJvZ3Jlc3Mtc3RhdGljLnRvcHttYXJnaW4tdG9wOjA7dG9wOjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1jbHItY2FyZC1ib3JkZXItcmFkaXVzLCB2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1yYWRpdXMtMTAwKSk7Ym9yZGVyLXRvcC1yaWdo'@; put 'dC1yYWRpdXM6dmFyKC0tY2xyLWNhcmQtYm9yZGVyLXJhZGl1cywgdmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItcmFkaXVzLTEwMCkpfS5jYXJkLWJsb2NrIC5wcm9ncmVzcz5wcm9ncmVzcywuY2FyZC1ibG9jayAucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlciwuY2FyZC1m'@; put 'b290ZXIgLnByb2dyZXNzPnByb2dyZXNzLC5jYXJkLWZvb3RlciAucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcntoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0zKTtwb3NpdGlvbjphYnNvbHV0ZX0ucHJvZ3Jlc3MtYmxvY2t7ZGlzcGxheTpmbGV4O3dpZHRoOjEwMCU7YWxp'@; put 'Z24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWxhYmVsLWNvbG9yKTtmb250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5'@; put 'cG9ncmFwaHktc2Vjb25kYXJ5LWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWNvbmRhcnktbGluZS1oZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFyeS1sZXR0ZXItc3BhY2luZyl9LnBy'@; put 'b2dyZXNzLWJsb2NrPip7ZmxleDowIDAgYXV0bztwYWRkaW5nLXJpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNil9LnByb2dyZXNzLWJsb2NrPjpsYXN0LWNoaWxke3BhZGRpbmctcmlnaHQ6MH0ucHJvZ3Jlc3MtYmxvY2s+bGFiZWwsLnByb2dyZXNzLWJsb2NrPnNwYW57bWF4LXdpZHRo'@; put 'OjMzJX0ucHJvZ3Jlc3MtYmxvY2s+LnByb2dyZXNzLC5wcm9ncmVzcy1ibG9jaz4ucHJvZ3Jlc3Mtc3RhdGlje2ZsZXg6MCAxIGF1dG99LnByb2dyZXNzLWJsb2NrPi5wcm9ncmVzcy1ncm91cHtmbGV4LWRpcmVjdGlvbjpjb2x1bW47aGVpZ2h0OmF1dG87ZmxleDowIDEgYXV0bztkaXNwbGF5'@; put 'OmZsZXg7d2lkdGg6MTAwJX0ucHJvZ3Jlc3MtYmxvY2s+LnByb2dyZXNzLWdyb3VwIC5jbHItcm93e21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjA7Y29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWxhYmVsLWNvbG9yKTtmb250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY2Fw'@; put 'dGlvbi1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNhcHRpb24tZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNhcHRpb24tbGluZS1oZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlh'@; put 'cy10eXBvZ3JhcGh5LWNhcHRpb24tbGV0dGVyLXNwYWNpbmcpfS5wcm9ncmVzcy1ibG9jaz4ucHJvZ3Jlc3MtZ3JvdXAgLmNsci1yb3c+W2NsYXNzKj1jbHItY29sLV17cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowfS5jYXJkLWJsb2NrIC5wcm9ncmVzcy1ibG9ja3ttYXJnaW4tYm90'@; put 'dG9tOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7cGFkZGluZzowfS5jYXJkLWJsb2NrIC5wcm9ncmVzcy1ibG9jazpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH0uY2FyZC1ibG9jayAucHJvZ3Jlc3MtYmxvY2s+bGFiZWx7bWF4LXdpZHRoOjMzJX0uY2FyZC1ibG9jayAucHJvZ3Jlc3Mt'@; put 'YmxvY2sgLnByb2dyZXNzLC5jYXJkLWJsb2NrIC5wcm9ncmVzcy1ibG9jayAucHJvZ3Jlc3Mtc3RhdGlje3Bvc2l0aW9uOnJlbGF0aXZlO2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTYpO21hcmdpbi10b3A6MH0uY2FyZC1ibG9jayAucHJvZ3Jlc3MtYmxvY2sgLnByb2dyZXNzPnBy'@; put 'b2dyZXNzLC5jYXJkLWJsb2NrIC5wcm9ncmVzcy1ibG9jayAucHJvZ3Jlc3M+LnByb2dyZXNzLW1ldGVyLC5jYXJkLWJsb2NrIC5wcm9ncmVzcy1ibG9jayAucHJvZ3Jlc3Mtc3RhdGljPnByb2dyZXNzLC5jYXJkLWJsb2NrIC5wcm9ncmVzcy1ibG9jayAucHJvZ3Jlc3Mtc3RhdGljPi5wcm9n'@; put 'cmVzcy1tZXRlcntoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KX1fOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAucHJvZ3Jlc3MtYmxvY2s+bGFiZWwsOnJvb3QgLnByb2dyZXNzLWJsb2NrPmxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrfTpyb290IFtjZHMtdGhlbWVdey0tY2xyLXNw'@; put 'aW5uZXItZGVmYXVsdC1zaXplOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTQpOy0tY2xyLXNwaW5uZXItbWVkaXVtLXNpemU6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMSk7LS1jbHItc3Bpbm5lci1zbWFsbC1zaXplOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOCk7LS1jbHItc3Bpbm5lci1p'@; put 'bnNpZGUtYnV0dG9uLXN0cm9rZS13aWR0aDp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0aC0xMDApOy0tY2xyLXNwaW5uZXItaW5zaWRlLXRyZWV2aWV3LXN0cm9rZS13aWR0aDp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0aC0xMDApOy0tY2xyLXNwaW5uZXIt'@; put 'ZGVmYXVsdC1zdHJva2Utd2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS00KTstLWNsci1zcGlubmVyLW1lZGl1bS1zdHJva2Utd2lkdGg6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtNDAwKTstLWNsci1zcGlubmVyLXNtYWxsLXN0cm9rZS13aWR0aDp2YXIoLS1jZHMt'@; put 'YWxpYXMtb2JqZWN0LWJvcmRlci13aWR0aC0yMDApOy0tY2xyLXNwaW5uZXItZmlsbC1iZy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWNvbnRhaW5lci1iYWNrZ3JvdW5kLXNoYWRlKTstLWNsci1zcGlubmVyLWZpbGwtaW52ZXJzZS1iZy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2Jq'@; put 'ZWN0LWNvbnRhaW5lci1iYWNrZ3JvdW5kLWludmVyc2UtdGludCk7LS1jbHItc3Bpbm5lci1maWxsLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtaW5mbyk7LS1jbHItc3Bpbm5lci1maWxsLWludmVyc2UtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1pbmZvLXRpbnQpOy0tY2xy'@; put 'LXNwaW5uZXItYm9yZGVyLXJhZGl1czp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1yYWRpdXMtMzAwKTstLWNsci1zcGlubmVyLW1hcmdpbi1yaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTYpfS5zcGlubmVye3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2Nr'@; put 'O2hlaWdodDp2YXIoLS1jbHItc3Bpbm5lci1kZWZhdWx0LXNpemUpO3dpZHRoOnZhcigtLWNsci1zcGlubmVyLWRlZmF1bHQtc2l6ZSk7bWluLWhlaWdodDp2YXIoLS1jbHItc3Bpbm5lci1kZWZhdWx0LXNpemUpO21pbi13aWR0aDp2YXIoLS1jbHItc3Bpbm5lci1kZWZhdWx0LXNpemUpO2Zv'@; put 'bnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWNvbmRhcnktZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWNvbmRhcnktZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFy'@; put 'eS1saW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWxldHRlci1zcGFjaW5nKTthbmltYXRpb246c3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7bWFyZ2luLXJpZ2h0OjA7cGFkZGluZzowO3RleHQtaW5kZW50OjEwMCU7b3ZlcmZs'@; put 'b3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcH0uc3Bpbm5lcjphZnRlcntjb250ZW50OiIiO2hlaWdodDp2YXIoLS1jbHItc3Bpbm5lci1kZWZhdWx0LXNpemUpO3dpZHRoOnZhcigtLWNsci1zcGlubmVyLWRlZmF1bHQtc2l6ZSk7bWluLWhlaWdodDp2YXIoLS1jbHItc3Bpbm5lci1kZWZh'@; put 'dWx0LXNpemUpO21pbi13aWR0aDp2YXIoLS1jbHItc3Bpbm5lci1kZWZhdWx0LXNpemUpO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtjbGlwLXBhdGg6ZWxsaXBzZSgxMDAlIDUzLjUlIGF0IDAgMCk7Ym9yZGVyOnZhcigtLWNsci1zcGlubmVyLWRlZmF1bHQtc3Ryb2tlLXdpZHRo'@; put 'KSBzb2xpZCB2YXIoLS1jbHItc3Bpbm5lci1maWxsLWNvbG9yKTtib3JkZXItcmlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOnZhcigtLWNsci1zcGlubmVyLWJvcmRlci1yYWRpdXMpfS5zcGlubmVyOmJlZm9yZXtj'@; put 'b250ZW50OiIiO2hlaWdodDp2YXIoLS1jbHItc3Bpbm5lci1kZWZhdWx0LXNpemUpO3dpZHRoOnZhcigtLWNsci1zcGlubmVyLWRlZmF1bHQtc2l6ZSk7bWluLWhlaWdodDp2YXIoLS1jbHItc3Bpbm5lci1kZWZhdWx0LXNpemUpO21pbi13aWR0aDp2YXIoLS1jbHItc3Bpbm5lci1kZWZhdWx0'@; put 'LXNpemUpO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtib3JkZXI6dmFyKC0tY2xyLXNwaW5uZXItZGVmYXVsdC1zdHJva2Utd2lkdGgpIHNvbGlkIHZhcigtLWNsci1zcGlubmVyLWZpbGwtYmctY29sb3IpO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLXNwaW5uZXItYm9yZGVyLXJh'@; put 'ZGl1cyl9LnNwaW5uZXIuc3Bpbm5lci1tZHtoZWlnaHQ6dmFyKC0tY2xyLXNwaW5uZXItbWVkaXVtLXNpemUpO3dpZHRoOnZhcigtLWNsci1zcGlubmVyLW1lZGl1bS1zaXplKTttaW4taGVpZ2h0OnZhcigtLWNsci1zcGlubmVyLW1lZGl1bS1zaXplKTttaW4td2lkdGg6dmFyKC0tY2xyLXNw'@; put 'aW5uZXItbWVkaXVtLXNpemUpfS5zcGlubmVyLnNwaW5uZXItbWQ6YmVmb3JlLC5zcGlubmVyLnNwaW5uZXItbWQ6YWZ0ZXJ7aGVpZ2h0OnZhcigtLWNsci1zcGlubmVyLW1lZGl1bS1zaXplKTt3aWR0aDp2YXIoLS1jbHItc3Bpbm5lci1tZWRpdW0tc2l6ZSk7bWluLWhlaWdodDp2YXIoLS1j'@; put 'bHItc3Bpbm5lci1tZWRpdW0tc2l6ZSk7bWluLXdpZHRoOnZhcigtLWNsci1zcGlubmVyLW1lZGl1bS1zaXplKTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLXNwaW5uZXItbWVkaXVtLXN0cm9rZS13aWR0aCl9LnNwaW5uZXIuc3Bpbm5lci1pbmxpbmUsLnNwaW5uZXIuc3Bpbm5lci1zbXtoZWln'@; put 'aHQ6dmFyKC0tY2xyLXNwaW5uZXItc21hbGwtc2l6ZSk7d2lkdGg6dmFyKC0tY2xyLXNwaW5uZXItc21hbGwtc2l6ZSk7bWluLWhlaWdodDp2YXIoLS1jbHItc3Bpbm5lci1zbWFsbC1zaXplKTttaW4td2lkdGg6dmFyKC0tY2xyLXNwaW5uZXItc21hbGwtc2l6ZSl9LnNwaW5uZXIuc3Bpbm5l'@; put 'ci1pbmxpbmU6YmVmb3JlLC5zcGlubmVyLnNwaW5uZXItaW5saW5lOmFmdGVyLC5zcGlubmVyLnNwaW5uZXItc206YmVmb3JlLC5zcGlubmVyLnNwaW5uZXItc206YWZ0ZXJ7aGVpZ2h0OnZhcigtLWNsci1zcGlubmVyLXNtYWxsLXNpemUpO3dpZHRoOnZhcigtLWNsci1zcGlubmVyLXNtYWxs'@; put 'LXNpemUpO21pbi1oZWlnaHQ6dmFyKC0tY2xyLXNwaW5uZXItc21hbGwtc2l6ZSk7bWluLXdpZHRoOnZhcigtLWNsci1zcGlubmVyLXNtYWxsLXNpemUpO2JvcmRlci13aWR0aDp2YXIoLS1jbHItc3Bpbm5lci1zbWFsbC1zdHJva2Utd2lkdGgpfS5zcGlubmVyLnNwaW5uZXItaW5saW5le3Zl'@; put 'cnRpY2FsLWFsaWduOnRleHQtYm90dG9tO21hcmdpbi1yaWdodDp2YXIoLS1jbHItc3Bpbm5lci1tYXJnaW4tcmlnaHQpfS5zcGlubmVyLnNwaW5uZXItaW52ZXJzZTpiZWZvcmV7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1zcGlubmVyLWZpbGwtaW52ZXJzZS1iZy1jb2xvcil9LnNwaW5uZXIu'@; put 'c3Bpbm5lci1pbnZlcnNlOmFmdGVye2JvcmRlci1jb2xvcjp2YXIoLS1jbHItc3Bpbm5lci1maWxsLWludmVyc2UtY29sb3IpO2JvcmRlci1yaWdodC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItYm90dG9tLWNvbG9yOnRyYW5zcGFyZW50fS5zcGlubmVyLnNwaW5uZXItbmV1dHJhbC0wOmJl'@; put 'Zm9yZXtib3JkZXItY29sb3I6IzAwMH0uc3Bpbm5lci5zcGlubmVyLW5ldXRyYWwtMDphZnRlcntib3JkZXItY29sb3I6dmFyKC0tY2xyLXNwaW5uZXItZmlsbC1jb2xvcik7Ym9yZGVyLXJpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1ib3R0b20tY29sb3I6dHJhbnNwYXJlbnR9LnNw'@; put 'aW5uZXIuc3Bpbm5lci1jaGVja3thbmltYXRpb246bm9uZTttYXNrOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMHZlcnNpb24lM0QlMjIxLjElMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAzNiUyMDM2JTIyJTIwcHJlc2VydmVBc3BlY3RSYXRpbyUzRCUy'@; put 'MnhNaWRZTWlkJTIwbWVldCUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIweG1sbnMlM0F4bGluayUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhsaW5rJTIyJTIwZm9jdXNhYmxlJTNEJTIyZmFsc2UlMjIlMjBh'@; put 'cmlhLWhpZGRlbiUzRCUyMnRydWUlMjIlMjByb2xlJTNEJTIyaW1nJTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjM3NDc0NzQlMjIlMjBjbGFzcyUzRCUyMmNsci1pLW91dGxpbmUlMjBjbHItaS1vdXRsaW5lLXBhdGgtMSUyMiUyMGQlM0QlMjJNMTMuNzIlMkMyNy42OSUyQzMuMjklMkMx'@; put 'Ny4yN2ExJTJDMSUyQzAlMkMwJTJDMSUyQzEuNDEtMS40MWw5JTJDOUwzMS4yOSUyQzcuMjlhMSUyQzElMkMwJTJDMCUyQzElMkMxLjQxJTJDMS40MVolMjIlM0UlM0MlMkZwYXRoJTNFJTNDJTJGc3ZnJTNFKTstd2Via2l0LW1hc2stcmVwZWF0Om5vLXJlcGVhdDttYXNrLXJlcGVhdDpuby1y'@; put 'ZXBlYXQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3MtY2hlY2tlZC1jb2xvcil9LnNwaW5uZXIuc3Bpbm5lci1jaGVjazphZnRlciwuc3Bpbm5lci5zcGlubmVyLWNoZWNrOmJlZm9yZXtib3JkZXI6MH0uYnRuIC5zcGlubmVye21hcmdpbi1yaWdodDowO2hlaWdodDp2'@; put 'YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpO3dpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7bWluLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpO21pbi13aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpfS5idG4gLnNwaW5uZXI6YmVmb3JlLC5idG4gLnNwaW5uZXI6'@; put 'YWZ0ZXJ7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTttaW4taGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7bWluLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7Ym9yZGVyLXdpZHRoOnZhcigtLWNs'@; put 'ci1zcGlubmVyLWluc2lkZS1idXR0b24tc3Ryb2tlLXdpZHRoKX0uYnRuLWljb246bm90KC5idG4tc20pIC5zcGlubmVye2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpO3dpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7bWluLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNw'@; put 'YWNlLTcpO21pbi13aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpfS5jbHItdHJlZW5vZGUtc3Bpbm5lci1jb250YWluZXIgLnNwaW5uZXJ7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTttaW4taGVpZ2h0OnZhcigt'@; put 'LWNkcy1nbG9iYWwtc3BhY2UtNyk7bWluLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyl9LmNsci10cmVlbm9kZS1zcGlubmVyLWNvbnRhaW5lciAuc3Bpbm5lcjpiZWZvcmUsLmNsci10cmVlbm9kZS1zcGlubmVyLWNvbnRhaW5lciAuc3Bpbm5lcjphZnRlcntoZWlnaHQ6dmFyKC0t'@; put 'Y2RzLWdsb2JhbC1zcGFjZS03KTt3aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpO21pbi1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTttaW4td2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLXNwaW5uZXItaW5zaWRlLXRy'@; put 'ZWV2aWV3LXN0cm9rZS13aWR0aCl9QGtleWZyYW1lcyBzcGluezAle3RyYW5zZm9ybTpyb3RhdGUoMCl9dG97dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX06cm9vdCBbY2RzLXRoZW1lXXstLWNsci10YWJsZS1ib3JkZXJ3aWR0aDp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0'@; put 'aC0xMDApOy0tY2xyLXRhYmxlLWJvcmRlci1yYWRpdXM6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItcmFkaXVzLTEwMCk7LS1jbHItdGFibGUtY29ybmVyY2VsbHJhZGl1czp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1yYWRpdXMtMTAwKTstLWNsci10YWJsZS1jZWxsLXBh'@; put 'ZGRpbmc6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KSB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpOy0tY2xyLXRhYmxlLWNlbGwtY29tcGFjdC1wYWRkaW5nOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMykgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTstLWNsci10YWJsZS1ub2JvcmRlci1i'@; put 'b3JkZXJ3aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTApOy0tY2xyLXRhYmxlLWRhdGEtY2VsbC1mb250LXNpemU6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWZvbnQtc2l6ZS00KTstLWNsci10YWJsZS1kYXRhLWNlbGwtbGluZS1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFj'@; put 'ZS03KTstLWNsci10YWJsZS1kYXRhLWNlbGwtZm9udC13ZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LXJlZ3VsYXIpOy0tY2xyLXRhYmxlLWhlYWRlci1jZWxsLWZvbnQtc2l6ZTp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZm9udC1zaXplLTEpOy0t'@; put 'Y2xyLXRhYmxlLWhlYWRlci1jZWxsLWxpbmUtaGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7LS1jbHItdGFibGUtaGVhZGVyLWNlbGwtZm9udC13ZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LXNlbWlib2xkKTstLWNsci10YWJsZS1iZ2NvbG9y'@; put 'OnZhcigtLWNkcy1hbGlhcy1vYmplY3QtY29udGFpbmVyLWJhY2tncm91bmQpOy0tY2xyLXRoZWFkLWJnY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1jb250YWluZXItYmFja2dyb3VuZC10aW50KTstLWNsci10YWJsZS1oZWFkZXItYm9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jZHMt'@; put 'YWxpYXMtb2JqZWN0LWJvcmRlci1jb2xvcik7LS1jbHItdGFibGUtZm9vdGVyLWJvcmRlci10b3AtY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItY29sb3IpOy0tY2xyLXRhYmxlLWJvcmRlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1jb2xvcik7LS1j'@; put 'bHItdGFibGVyb3ctYm9yZGVyY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItY29sb3IpOy0tY2xyLXRhYmxlLWZvbnQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNDAwKTstLWNsci10YWJsZS1tYXJnaW46dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05'@; put 'KSAwIDAgMDstLWNsci10aGVhZC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci00MDApOy0tY2xyLXRhYmxlLXNtYWxscGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTQpOy0tY2xyLXRhYmxlLWJvdHRvbWNlbGxwYWRkaW5nOmNhbGModmFyKC0tY2xyLXRhYmxl'@; put 'LWNlbGxwYWRkaW5nKSAtIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSkpOy0tY2xyLXRhYmxlLXRvcGNlbGxwYWRkaW5nOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNik7LS1jbHItdGFibGUtZm9udHNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWZvbnQtc2l6ZSk7'@; put 'LS1jbHItdGFibGUtbGluZWhlaWdodDptaXhpbnMuYmFzZWxpbmVQeCgxNCk7LS1jbHItdGFibGUtY2VsbHBhZGRpbmc6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KTstLWNsci10YWJsZS1jb21wYWN0LXJvdy1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTstLWNsci10YWJsZS1j'@; put 'b21wYWN0LXZlcnRpY2FsLXBhZGRpbmc6Y2FsYyggKHZhcigtLWNsci10YWJsZS1jb21wYWN0LXJvdy1oZWlnaHQpIC0gdmFyKC0tY2xyLXRhYmxlLWxpbmVoZWlnaHQpKSAqIC41ICl9LnRhYmxle2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZTtib3JkZXI6dmFyKC0tY2xyLXRhYmxlLWJvcmRl'@; put 'cndpZHRoKSBzb2xpZCB2YXIoLS1jbHItdGFibGUtYm9yZGVyLWNvbG9yKTtib3JkZXItcmFkaXVzOnZhcigtLWNsci10YWJsZS1ib3JkZXItcmFkaXVzKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10YWJsZS1iZ2NvbG9yKTtjb2xvcjp2YXIoLS1jbHItdGFibGUtZm9udC1jb2xvcik7'@; put 'bWFyZ2luOnZhcigtLWNsci10YWJsZS1tYXJnaW4pO21heC13aWR0aDoxMDAlO3dpZHRoOjEwMCV9LnRhYmxlIHRoLC50YWJsZSB0ZHtib3JkZXItdG9wLXN0eWxlOnNvbGlkO2JvcmRlci10b3Atd2lkdGg6dmFyKC0tY2xyLXRhYmxlLWJvcmRlcndpZHRoKTtib3JkZXItdG9wLWNvbG9yOnZh'@; put 'cigtLWNsci10YWJsZXJvdy1ib3JkZXJjb2xvcik7cGFkZGluZzp2YXIoLS1jbHItdGFibGUtY2VsbC1wYWRkaW5nKTt0ZXh0LWFsaWduOmNlbnRlcjt2ZXJ0aWNhbC1hbGlnbjp0b3B9LnRhYmxlIHRoLmxlZnQsLnRhYmxlIHRkLmxlZnR7dGV4dC1hbGlnbjpsZWZ0fS50YWJsZSB0aC5sZWZ0'@; put 'OmZpcnN0LWNoaWxkLC50YWJsZSB0ZC5sZWZ0OmZpcnN0LWNoaWxke3BhZGRpbmctbGVmdDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpfS50YWJsZSB0aC5yaWdodCwudGFibGUgdGQucmlnaHR7dGV4dC1hbGlnbjpyaWdodH0udGFibGUgdGR7bWluLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFs'@; put 'LXNwYWNlLTEwKTtmb250LXNpemU6dmFyKC0tY2xyLXRhYmxlLWRhdGEtY2VsbC1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci10YWJsZS1kYXRhLWNlbGwtZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNsci10YWJsZS1kYXRhLWNlbGwtbGluZS1oZWlnaHQpO2xldHRl'@; put 'ci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFyeS1sZXR0ZXItc3BhY2luZyl9LnRhYmxlIHRoe2NvbG9yOnZhcigtLWNsci10aGVhZC1jb2xvcik7Zm9udC1zaXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNhcHRpb24tZm9udC1zaXplKTtmb250LXdl'@; put 'aWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1mb250LXdlaWdodC1zZW1pYm9sZCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY2FwdGlvbi1saW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY2FwdGlvbi1s'@; put 'ZXR0ZXItc3BhY2luZyk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdGhlYWQtYmdjb2xvcik7dmVydGljYWwtYWxpZ246bWlkZGxlO2JvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7Ym9yZGVyLWJvdHRvbS13aWR0aDp2YXIoLS1jbHItdGFibGUtYm9yZGVyd2lkdGgpO2JvcmRlci1ib3R0'@; put 'b20tY29sb3I6dmFyKC0tY2xyLXRhYmxlLWJvcmRlci1jb2xvcik7Ym9yZGVyLXRvcDowIG5vbmV9LnRhYmxlIHRib2R5IHRyOmZpcnN0LWNoaWxkIHRke2JvcmRlci10b3A6MCBub25lfS50YWJsZSB0Ym9keSt0Ym9keXtib3JkZXItdG9wLXN0eWxlOnNvbGlkO2JvcmRlci10b3Atd2lkdGg6'@; put 'dmFyKC0tY2xyLXRhYmxlLWJvcmRlcndpZHRoKTtib3JkZXItdG9wLWNvbG9yOnZhcigtLWNsci10YWJsZS1ib3JkZXItY29sb3IpfS50YWJsZSB0aGVhZCB0aDpmaXJzdC1jaGlsZHtib3JkZXItcmFkaXVzOjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1jbHItdGFibGUtY29ybmVy'@; put 'Y2VsbHJhZGl1cyl9LnRhYmxlIHRoZWFkIHRoOmxhc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czowO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLWNsci10YWJsZS1jb3JuZXJjZWxscmFkaXVzKX0udGFibGUgdGJvZHk6bGFzdC1jaGlsZCB0cjpsYXN0LWNoaWxkIHRkOmZpcnN0LWNoaWxk'@; put 'e2JvcmRlci1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWNsci10YWJsZS1jb3JuZXJjZWxscmFkaXVzKX0udGFibGUgdGJvZHk6bGFzdC1jaGlsZCB0cjpsYXN0LWNoaWxkIHRkOmxhc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czowO2JvcmRlci1ib3R0b20tcmlnaHQt'@; put 'cmFkaXVzOnZhcigtLWNsci10YWJsZS1jb3JuZXJjZWxscmFkaXVzKX0udGFibGUtY29tcGFjdCB0aCwudGFibGUtY29tcGFjdCB0ZHttaW4taGVpZ2h0OnZhcigtLWNsci10YWJsZS1jb21wYWN0LXJvdy1oZWlnaHQpO3BhZGRpbmc6dmFyKC0tY2xyLXRhYmxlLWNlbGwtY29tcGFjdC1wYWRk'@; put 'aW5nKX0udGFibGUudGFibGUtdmVydGljYWwgdGhlYWQgdGh7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czowO2Rpc3BsYXk6bm9uZX0udGFibGUudGFibGUtdmVydGljYWwgdGh7Ym9yZGVyLWJvdHRvbTowO2JvcmRlci10b3Atc3R5bGU6c29saWQ7Ym9yZGVyLXRvcC13aWR0aDp2YXIoLS1jbHIt'@; put 'dGFibGUtYm9yZGVyd2lkdGgpO2JvcmRlci10b3AtY29sb3I6dmFyKC0tY2xyLXRhYmxlLWJvcmRlci1jb2xvcik7dmVydGljYWwtYWxpZ246dG9wfS50YWJsZS50YWJsZS12ZXJ0aWNhbCB0ZCwudGFibGUudGFibGUtdmVydGljYWwgdGh7dGV4dC1hbGlnbjpsZWZ0O2JvcmRlci1jb2xvcjp2'@; put 'YXIoLS1jbHItdGFibGUtYm9yZGVyLWNvbG9yKX0udGFibGUudGFibGUtdmVydGljYWwgdGQ6Zmlyc3QtY2hpbGQsLnRhYmxlLnRhYmxlLXZlcnRpY2FsIHRoOmZpcnN0LWNoaWxke2JvcmRlci1yaWdodC1zdHlsZTpzb2xpZDtib3JkZXItcmlnaHQtd2lkdGg6dmFyKC0tY2xyLXRhYmxlLWJv'@; put 'cmRlcndpZHRoKTtib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY2xyLXRhYmxlLWJvcmRlci1jb2xvcik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdGhlYWQtYmdjb2xvcik7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LXNlbWlib2xkKX0u'@; put 'dGFibGUudGFibGUtdmVydGljYWwgdGJvZHk6Zmlyc3Qtb2YtdHlwZSB0cjpmaXJzdC1jaGlsZCB0aCwudGFibGUudGFibGUtdmVydGljYWwgdGJvZHk6Zmlyc3Qtb2YtdHlwZSB0cjpmaXJzdC1jaGlsZCB0ZHtib3JkZXItdG9wOjAgbm9uZX0udGFibGUudGFibGUtdmVydGljYWwgdGJvZHk6'@; put 'Zmlyc3Qtb2YtdHlwZSB0cjpmaXJzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCwudGFibGUudGFibGUtdmVydGljYWwgdGJvZHk6Zmlyc3Qtb2YtdHlwZSB0cjpmaXJzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZHtib3JkZXItcmFkaXVzOjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1jbHIt'@; put 'dGFibGUtY29ybmVyY2VsbHJhZGl1cyl9LnRhYmxlLnRhYmxlLXZlcnRpY2FsIHRib2R5OmZpcnN0LW9mLXR5cGUgdHI6Zmlyc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCwudGFibGUudGFibGUtdmVydGljYWwgdGJvZHk6Zmlyc3Qtb2YtdHlwZSB0cjpmaXJzdC1jaGlsZCB0ZDpsYXN0LWNoaWxk'@; put 'e2JvcmRlci1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czp2YXIoLS1jbHItdGFibGUtY29ybmVyY2VsbHJhZGl1cyl9LnRhYmxlLnRhYmxlLXZlcnRpY2FsIHRib2R5Omxhc3QtY2hpbGQgdHI6bGFzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCwudGFibGUudGFibGUtdmVydGljYWwg'@; put 'dGJvZHk6bGFzdC1jaGlsZCB0cjpsYXN0LWNoaWxkIHRkOmZpcnN0LWNoaWxke2JvcmRlci1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWNsci10YWJsZS1jb3JuZXJjZWxscmFkaXVzKX0udGFibGUudGFibGUtdmVydGljYWwgdGJvZHk6bGFzdC1jaGlsZCB0cjps'@; put 'YXN0LWNoaWxkIHRoOmxhc3QtY2hpbGQsLnRhYmxlLnRhYmxlLXZlcnRpY2FsIHRib2R5Omxhc3QtY2hpbGQgdHI6bGFzdC1jaGlsZCB0ZDpsYXN0LWNoaWxke2JvcmRlci1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czp2YXIoLS1jbHItdGFibGUtY29ybmVyY2VsbHJhZGl1'@; put 'cyl9LnRhYmxlLnRhYmxlLW5vYm9yZGVye2JvcmRlci1yYWRpdXM6MDtib3gtc2hhZG93Om5vbmU7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItd2lkdGg6MH0udGFibGUudGFibGUtbm9ib3JkZXIgdGh7Ym9yZGVyLWJvdHRvbS1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXIt'@; put 'dG9wOjAgbm9uZX0udGFibGUudGFibGUtbm9ib3JkZXIgdGg6Zmlyc3QtY2hpbGR7Ym9yZGVyLXJpZ2h0OjAgbm9uZX0udGFibGUudGFibGUtbm9ib3JkZXIgdGR7Ym9yZGVyLXRvcDowIG5vbmU7cGFkZGluZy10b3A6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KX0udGFibGUudGFibGUtbm9i'@; put 'b3JkZXIgdGQ6Zmlyc3QtY2hpbGR7Ym9yZGVyLXJpZ2h0OjAgbm9uZX0udGFibGUudGFibGUtbm9ib3JkZXIgdGhlYWQgdGg6Zmlyc3QtY2hpbGQsLnRhYmxlLnRhYmxlLW5vYm9yZGVyIHRoZWFkIHRoOmxhc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czowfS50YWJsZS50YWJsZS1ub2JvcmRlciB0'@; put 'aCwudGFibGUudGFibGUtbm9ib3JkZXIgdGR7Ym9yZGVyLXJhZGl1czowIWltcG9ydGFudH0udGFibGUudGFibGUtbm9ib3JkZXIgdGg6Zmlyc3QtY2hpbGQsLnRhYmxlLnRhYmxlLW5vYm9yZGVyIHRkOmZpcnN0LWNoaWxke3BhZGRpbmctbGVmdDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcp'@; put 'fTpyb290IFtjZHMtdGhlbWVdey0tY2xyLXRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yLWFjdGl2ZSk7LS1jbHItdG9vbHRpcC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci0xMDApOy0tY2xyLXRv'@; put 'b2x0aXAtYm9yZGVyLXJhZGl1czp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1yYWRpdXMtMTAwKTstLWNsci10b29sdGlwLWZvbnQtd2VpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1ib2R5LWZvbnQtd2VpZ2h0KX0udG9vbHRpcHtkaXNwbGF5OmlubGluZS1ibG9jaztw'@; put 'b3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWFsaWduOmxlZnQ7b3ZlcmZsb3c6dmlzaWJsZX0udG9vbHRpcD4udG9vbHRpcC1jb250ZW50e3Zpc2liaWxpdHk6aGlkZGVuO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGxpbmVhcjt3aGl0ZS1zcGFjZTpub3JtYWw7ei1pbmRleDoxMDUw'@; put 'fS50b29sdGlwPi50b29sdGlwLWNvbnRlbnQ6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6LTIwcHg7Y29udGVudDoiIjt6LWluZGV4Oi0xfS50b29sdGlwPi50b29sdGlwLWNvbnRlbnQgbGl7Y29sb3I6aW5oZXJpdH0udG9vbHRpcDpob3Zlcj4udG9vbHRpcC1jb250ZW50LC50b29s'@; put 'dGlwOmZvY3VzPi50b29sdGlwLWNvbnRlbnR7dmlzaWJpbGl0eTp2aXNpYmxlO29wYWNpdHk6MX0udG9vbHRpcDpob3Zlcj4udG9vbHRpcC1jb250ZW50OmVtcHR5LC50b29sdGlwOmZvY3VzPi50b29sdGlwLWNvbnRlbnQ6ZW1wdHl7dmlzaWJpbGl0eTpoaWRkZW47b3BhY2l0eTowfS50b29s'@; put 'dGlwOmZvY3Vze291dGxpbmU6MH0udG9vbHRpcDpmb2N1cz46Zmlyc3QtY2hpbGR7b3V0bGluZS1vZmZzZXQ6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1vdXRsaW5lLW9mZnNldCk7b3V0bGluZTp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLW91dGxpbmUp'@; put 'fS50b29sdGlwPi50b29sdGlwLWNvbnRlbnQsLnRvb2x0aXAudG9vbHRpcC10b3AtcmlnaHQ+LnRvb2x0aXAtY29udGVudCwudG9vbHRpcCAudG9vbHRpcC1jb250ZW50LnRvb2x0aXAtdG9wLXJpZ2h0e21hcmdpbjowO3dpZHRoOmNhbGMoMjQwKigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFz'@; put 'ZSkpKTtib3JkZXItcmFkaXVzOnZhcigtLWNsci10b29sdGlwLWJvcmRlci1yYWRpdXMpO3BhZGRpbmc6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KTtjb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1jb2xvcik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNv'@; put 'bG9yKTtmb250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktYm9keS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci10b29sdGlwLWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1h'@; put 'bGlhcy10eXBvZ3JhcGh5LWJvZHktbGV0dGVyLXNwYWNpbmcpO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OmF1dG8gYXV0byAxMDAlIDUwJTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7bWFyZ2luLWJvdHRvbTpjYWxjKHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNikgKyB2YXIoLS1jZHMt'@; put 'Z2xvYmFsLXNwYWNlLTUpKX0udG9vbHRpcD4udG9vbHRpcC1jb250ZW50OmJlZm9yZSwudG9vbHRpcC50b29sdGlwLXRvcC1yaWdodD4udG9vbHRpcC1jb250ZW50OmJlZm9yZSwudG9vbHRpcCAudG9vbHRpcC1jb250ZW50LnRvb2x0aXAtdG9wLXJpZ2h0OmJlZm9yZXtjb250ZW50OiIiO3Bv'@; put 'c2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOm5vbmU7bGVmdDowO3RvcDphdXRvO3JpZ2h0OmF1dG87Ym90dG9tOmNhbGMoLTEqdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KSk7Ym9yZGVyLWxlZnQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KSBzb2xpZCB2YXIoLS1jbHItdG9vbHRp'@; put 'cC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItdG9wOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkgc29saWQgdmFyKC0tY2xyLXRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcik7Ym9yZGVyLWJvdHRvbTp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1y'@; put 'aWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpIHNvbGlkIHRyYW5zcGFyZW50fS50b29sdGlwLnRvb2x0aXAtdG9wLWxlZnQ+LnRvb2x0aXAtY29udGVudCwudG9vbHRpcCAudG9vbHRpcC1jb250ZW50LnRvb2x0aXAtdG9wLWxlZnR7bWFyZ2luOjA7d2lkdGg6Y2FsYygyNDAqKDFyZW0v'@; put 'dmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLXRvb2x0aXAtYm9yZGVyLXJhZGl1cyk7cGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTYpO2NvbG9yOnZhcigtLWNsci10b29sdGlwLWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10'@; put 'b29sdGlwLWJhY2tncm91bmQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1ib2R5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXRvb2x0aXAtZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7bGV0dGVy'@; put 'LXNwYWNpbmc6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktYm9keS1sZXR0ZXItc3BhY2luZyk7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6YXV0byA1MCUgMTAwJSBhdXRvO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7bWFyZ2luLWJvdHRvbTpjYWxjKHZhcigtLWNkcy1nbG9iYWwt'@; put 'c3BhY2UtNikgKyB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpKX0udG9vbHRpcC50b29sdGlwLXRvcC1sZWZ0Pi50b29sdGlwLWNvbnRlbnQ6YmVmb3JlLC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC10b3AtbGVmdDpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0'@; put 'ZTtwb2ludGVyLWV2ZW50czpub25lO3JpZ2h0OjA7dG9wOmF1dG87bGVmdDphdXRvO2JvdHRvbTpjYWxjKC0xKnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNikpO2JvcmRlci1yaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpIHNvbGlkIHZhcigtLWNsci10b29sdGlwLWJhY2tncm91bmQt'@; put 'Y29sb3IpO2JvcmRlci10b3A6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KSBzb2xpZCB2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItYm90dG9tOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkgc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWxlZnQ6dmFyKC0tY2Rz'@; put 'LWdsb2JhbC1zcGFjZS01KSBzb2xpZCB0cmFuc3BhcmVudH0udG9vbHRpcC50b29sdGlwLWJvdHRvbS1yaWdodD4udG9vbHRpcC1jb250ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1ib3R0b20tcmlnaHR7bWFyZ2luOjA7d2lkdGg6Y2FsYygyNDAqKDFyZW0vdmFyKC0t'@; put 'Y2RzLWdsb2JhbC1iYXNlKSkpO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLXRvb2x0aXAtYm9yZGVyLXJhZGl1cyk7cGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTYpO2NvbG9yOnZhcigtLWNsci10b29sdGlwLWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10b29sdGlw'@; put 'LWJhY2tncm91bmQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1ib2R5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXRvb2x0aXAtZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7bGV0dGVyLXNwYWNp'@; put 'bmc6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktYm9keS1sZXR0ZXItc3BhY2luZyk7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MTAwJSBhdXRvIGF1dG8gNTAlO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDttYXJnaW4tdG9wOmNhbGModmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KSArIHZh'@; put 'cigtLWNkcy1nbG9iYWwtc3BhY2UtNSkpfS50b29sdGlwLnRvb2x0aXAtYm90dG9tLXJpZ2h0Pi50b29sdGlwLWNvbnRlbnQ6YmVmb3JlLC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1ib3R0b20tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7cG9p'@; put 'bnRlci1ldmVudHM6bm9uZTtsZWZ0OjA7Ym90dG9tOmF1dG87cmlnaHQ6YXV0bzt0b3A6Y2FsYygtMSp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTYpKTtib3JkZXItbGVmdDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpIHNvbGlkIHZhcigtLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3Ip'@; put 'O2JvcmRlci1ib3R0b206dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KSBzb2xpZCB2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItdG9wOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkgc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0OnZhcigtLWNkcy1nbG9i'@; put 'YWwtc3BhY2UtNSkgc29saWQgdHJhbnNwYXJlbnR9LnRvb2x0aXAudG9vbHRpcC1ib3R0b20tbGVmdD4udG9vbHRpcC1jb250ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1ib3R0b20tbGVmdHttYXJnaW46MDt3aWR0aDpjYWxjKDI0MCooMXJlbS92YXIoLS1jZHMtZ2xv'@; put 'YmFsLWJhc2UpKSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItdG9vbHRpcC1ib3JkZXItcmFkaXVzKTtwYWRkaW5nOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNik7Y29sb3I6dmFyKC0tY2xyLXRvb2x0aXAtY29sb3IpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXRvb2x0aXAtYmFja2dy'@; put 'b3VuZC1jb2xvcik7Zm9udC1zaXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWJvZHktZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jbHItdG9vbHRpcC1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTtsZXR0ZXItc3BhY2luZzp2YXIo'@; put 'LS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1ib2R5LWxldHRlci1zcGFjaW5nKTtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDoxMDAlIDUwJSBhdXRvIGF1dG87Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDttYXJnaW4tdG9wOmNhbGModmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KSArIHZhcigtLWNk'@; put 'cy1nbG9iYWwtc3BhY2UtNSkpfS50b29sdGlwLnRvb2x0aXAtYm90dG9tLWxlZnQ+LnRvb2x0aXAtY29udGVudDpiZWZvcmUsLnRvb2x0aXAgLnRvb2x0aXAtY29udGVudC50b29sdGlwLWJvdHRvbS1sZWZ0OmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZl'@; put 'bnRzOm5vbmU7cmlnaHQ6MDtib3R0b206YXV0bztsZWZ0OmF1dG87dG9wOmNhbGMoLTEqdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KSk7Ym9yZGVyLXJpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkgc29saWQgdmFyKC0tY2xyLXRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcik7Ym9yZGVy'@; put 'LWJvdHRvbTp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpIHNvbGlkIHZhcigtLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3IpO2JvcmRlci10b3A6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItbGVmdDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNl'@; put 'LTUpIHNvbGlkIHRyYW5zcGFyZW50fS50b29sdGlwLnRvb2x0aXAtcmlnaHQ+LnRvb2x0aXAtY29udGVudCwudG9vbHRpcCAudG9vbHRpcC1jb250ZW50LnRvb2x0aXAtcmlnaHR7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6NTAlIGF1dG8gYXV0byAxMDAlO21hcmdpbjowO3dpZHRoOmNhbGMo'@; put 'MjQwKigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTtib3JkZXItcmFkaXVzOnZhcigtLWNsci10b29sdGlwLWJvcmRlci1yYWRpdXMpO3BhZGRpbmc6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KTtjb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1jb2xvcik7YmFja2dyb3VuZC1jb2xvcjp2'@; put 'YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTtmb250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktYm9keS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci10b29sdGlwLWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNl'@; put 'LTcpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWJvZHktbGV0dGVyLXNwYWNpbmcpO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDttYXJnaW4tbGVmdDpjYWxjKHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNikgKyB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpKX0u'@; put 'dG9vbHRpcC50b29sdGlwLXJpZ2h0Pi50b29sdGlwLWNvbnRlbnQ6YmVmb3JlLC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1yaWdodDpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtwb2ludGVyLWV2ZW50czpub25lO3RvcDowO2JvdHRvbTphdXRvO3JpZ2h0'@; put 'OmF1dG87bGVmdDpjYWxjKC0xKnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNikpO2JvcmRlci10b3A6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KSBzb2xpZCB2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItcmlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KSBz'@; put 'b2xpZCB2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItYm90dG9tOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkgc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWxlZnQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KSBzb2xpZCB0cmFuc3BhcmVudH0udG9vbHRpcC50'@; put 'b29sdGlwLWxlZnQ+LnRvb2x0aXAtY29udGVudCwudG9vbHRpcCAudG9vbHRpcC1jb250ZW50LnRvb2x0aXAtbGVmdHtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDo1MCUgMTAwJSBhdXRvIGF1dG87bWFyZ2luOjA7d2lkdGg6Y2FsYygyNDAqKDFyZW0vdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkp'@; put 'O2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLXRvb2x0aXAtYm9yZGVyLXJhZGl1cyk7cGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTYpO2NvbG9yOnZhcigtLWNsci10b29sdGlwLWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3Ip'@; put 'O2ZvbnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1ib2R5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXRvb2x0aXAtZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWFsaWFz'@; put 'LXR5cG9ncmFwaHktYm9keS1sZXR0ZXItc3BhY2luZyk7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDttYXJnaW4tcmlnaHQ6Y2FsYyh2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTYpICsgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KSl9LnRvb2x0aXAudG9vbHRpcC1sZWZ0Pi50b29sdGlwLWNv'@; put 'bnRlbnQ6YmVmb3JlLC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1sZWZ0OmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7Ym90dG9tOmF1dG87bGVmdDphdXRvO3JpZ2h0OmNhbGMoLTEqdmFyKC0tY2RzLWdsb2Jh'@; put 'bC1zcGFjZS02KSk7Ym9yZGVyLXRvcDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpIHNvbGlkIHZhcigtLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3IpO2JvcmRlci1sZWZ0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkgc29saWQgdmFyKC0tY2xyLXRvb2x0aXAtYmFja2dyb3VuZC1j'@; put 'b2xvcik7Ym9yZGVyLWJvdHRvbTp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpIHNvbGlkIHRyYW5zcGFyZW50fS50b29sdGlwLnRvb2x0aXAteHM+LnRvb2x0aXAtY29udGVudCwudG9vbHRp'@; put 'cCAudG9vbHRpcC1jb250ZW50LnRvb2x0aXAteHN7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xNCl9LnRvb2x0aXAudG9vbHRpcC1zbT4udG9vbHRpcC1jb250ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1zbXt3aWR0aDpjYWxjKDEyMCooMXJlbS92YXIoLS1j'@; put 'ZHMtZ2xvYmFsLWJhc2UpKSl9LnRvb2x0aXAudG9vbHRpcC1tZD4udG9vbHRpcC1jb250ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1tZHt3aWR0aDpjYWxjKDI0MCooMXJlbS92YXIoLS1jZHMtZ2xvYmFsLWJhc2UpKSl9LnRvb2x0aXAudG9vbHRpcC1sZz4udG9vbHRp'@; put 'cC1jb250ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1sZ3t3aWR0aDpjYWxjKDM2MCooMXJlbS92YXIoLS1jZHMtZ2xvYmFsLWJhc2UpKSl9LnRvb2x0aXA+LmJ0bisudG9vbHRpcC1jb250ZW50LC50b29sdGlwLnRvb2x0aXAtdG9wLXJpZ2h0Pi5idG4rLnRvb2x0aXAt'@; put 'Y29udGVudCwudG9vbHRpcC50b29sdGlwLXRvcC1sZWZ0Pi5idG4rLnRvb2x0aXAtY29udGVudHttYXJnaW4tYm90dG9tOmNhbGModmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KSArIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkgLSB2YXIoLS1jbHItYnRuLXZlcnRpY2FsLW1hcmdpbikpfS50'@; put 'b29sdGlwLnRvb2x0aXAtYm90dG9tLXJpZ2h0Pi5idG4rLnRvb2x0aXAtY29udGVudCwudG9vbHRpcC50b29sdGlwLWJvdHRvbS1sZWZ0Pi5idG4rLnRvb2x0aXAtY29udGVudHttYXJnaW4tdG9wOmNhbGModmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KSArIHZhcigtLWNkcy1nbG9iYWwtc3Bh'@; put 'Y2UtNSkgLSB2YXIoLS1jbHItYnRuLXZlcnRpY2FsLW1hcmdpbikpfS50b29sdGlwLnRvb2x0aXAtcmlnaHQ+LmJ0bisudG9vbHRpcC1jb250ZW50e21hcmdpbi1sZWZ0OmNhbGModmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KSArIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkgLSB2YXIoLS1j'@; put 'bHItYnRuLWhvcml6b250YWwtbWFyZ2luKSl9LnRvb2x0aXA+LmNsci1pY29ue21hcmdpbi1yaWdodDowfS50b29sdGlwPnN2Z3twb2ludGVyLWV2ZW50czpub25lfS50b29sdGlwLXRyaWdnZXI6Zm9jdXMrLnRvb2x0aXAtY29udGVudHt2aXNpYmlsaXR5OnZpc2libGV9OnJvb3QgW2Nkcy10'@; put 'aGVtZV17LS1jbHItZm9ybXMtYmFzZWxpbmU6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS00KTstLWNsci1mb3Jtcy1pY29uLXNpemU6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTstLWNsci1mb3JtLWRpc2FibGVkLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRl'@; put 'cmFjdGlvbi1iYWNrZ3JvdW5kKTstLWNsci1mb3Jtcy1sYWJlbC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci00MDApOy0tY2xyLWZvcm1zLXRleHQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNDAwKTstLWNsci1mb3Jtcy1pbnZhbGlkLWNv'@; put 'bG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtZGFuZ2VyKTstLWNsci1mb3Jtcy1pbnZhbGlkLXRleHQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1kYW5nZXIpOy0tY2xyLWZvcm1zLXZhbGlkLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtc3VjY2Vzcyk7LS1jbHItZm9ybXMt'@; put 'dmFsaWQtdGV4dC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLXN1Y2Nlc3MpOy0tY2xyLWZvcm1zLXN1YnRleHQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItMzAwKTstLWNsci1mb3Jtcy1wbGFjZWhvbGRlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dy'@; put 'YXBoeS1jb2xvci0yMDApOy0tY2xyLWZvcm1zLWJvcmRlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJvcmRlci1jb2xvcik7LS1jbHItZm9ybXMtZm9jdXNlZC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtaGln'@; put 'aGxpZ2h0KTstLWNsci1mb3Jtcy1zdWJ0ZXh0LWRpc2FibGVkLWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWRpc2FibGVkKTstLWNsci1mb3Jtcy1ib3JkZXItZGlzYWJsZWQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvci1kaXNhYmxlZCk7'@; put 'LS1jbHItZm9ybXMtdGV4dC1kaXNhYmxlZC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1kaXNhYmxlZCk7LS1jbHItZm9ybXMtbGFiZWwtZGlzYWJsZWQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZGlzYWJsZWQpOy0tY2xyLWZvcm1zLXBsYWNlaG9sZGVyLWRp'@; put 'c2FibGVkLWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWRpc2FibGVkKTstLWNsci1mb3Jtcy1sYWJlbC1mb250LXdlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1mb250LXdlaWdodC1zZW1pYm9sZCk7LS1jbHItZm9ybXMtaW5wdXQtcGFkZGluZzowIGNhbGMoNCAq'@; put 'IHZhcigtLWNsci1mb3Jtcy1iYXNlbGluZSkgLyAzKTstLWNsci1mb3Jtcy1pbnB1dC13cmFwcGVyLWhlaWdodDpjYWxjKDQgKiB2YXIoLS1jbHItZm9ybXMtYmFzZWxpbmUpKTstLWNsci1mb3Jtcy1pbnB1dC1ncm91cC1pY29uLWFjdGlvbi1zaXplOnZhcigtLWNkcy1nbG9iYWwtc3BhY2Ut'@; put 'Nyk7LS1jbHItZm9ybXMtaW5wdXQtZ3JvdXAtaWNvbi1kaXNhYmxlZC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWRpc2FibGVkKTstLWNsci1mb3Jtcy1jaGVja2JveC1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTstLWNsci1mb3Jtcy1jaGVja2JveC1ib3JkZXItcmFk'@; put 'aXVzOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXJhZGl1cy0xMDApOy0tY2xyLWZvcm1zLWNoZWNrYm94LWxhYmVsLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1sYWJlbC1jb2xvcik7LS1jbHItZm9ybXMtY2hlY2tib3gtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2Jq'@; put 'ZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtaGlnaGxpZ2h0KTstLWNsci1mb3Jtcy1jaGVja2JveC1pbmRldGVybWluYXRlLWJvcmRlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtaGlnaGxpZ2h0KTstLWNsci1mb3Jtcy1jaGVja2JveC1t'@; put 'YXJrLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZCk7LS1jbHItZm9ybXMtY2hlY2tib3gtZGlzYWJsZWQtbGFiZWwtY29sb3I6dmFyKC0tY2xyLWZvcm1zLWxhYmVsLWRpc2FibGVkLWNvbG9yKTstLWNsci1mb3Jtcy1jaGVja2JveC1kaXNhYmxl'@; put 'ZC1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3JtLWRpc2FibGVkLWJhY2tncm91bmQtY29sb3IpOy0tY2xyLWZvcm1zLWNoZWNrYm94LWRpc2FibGVkLWNoZWNrZWQtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWRpc2FibGVkKTstLWNsci1mb3Jtcy1jaGVj'@; put 'a2JveC1kaXNhYmxlZC1ib3JkZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1kaXNhYmxlZCk7LS1jbHItZm9ybXMtY2hlY2tib3gtZGlzYWJsZWQtaW5kZXRlcm1pbmF0ZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWRpc2FibGVkKTstLWNsci1mb3Jtcy1jaGVja2JveC1k'@; put 'aXNhYmxlZC1tYXJrLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZCk7LS1jbHItZm9ybXMtcmFkaW8tbGFiZWwtY29sb3I6dmFyKC0tY2xyLWZvcm1zLWxhYmVsLWNvbG9yKTstLWNsci1mb3Jtcy1yYWRpby1sYWJlbC1kaXNhYmxlZC1jb2xvcjp2'@; put 'YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1kaXNhYmxlZCk7LS1jbHItZm9ybXMtcmFkaW8tZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZm9ybS1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yKTstLWNsci1mb3Jtcy1yYWRpby1kaXNhYmxlZC1tYXJrLWNvbG9yOnZhcigt'@; put 'LWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTEwMCk7LS1jbHItZm9ybXMtcmFkaW8tc2VsZWN0ZWQtc2hhZG93Omluc2V0IDAgMCAwIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNCkgdmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLWhpZ2hsaWdodCk7LS1j'@; put 'bHItZm9ybXMtcmFkaW8tY2hlY2tlZC1kaXNhYmxlZC1zaGFkb3c6aW5zZXQgMCAwIDAgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS00KSB2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yLWRpc2FibGVkKTstLWNsci1mb3Jtcy1wYXNzd29yZC1leWUtaWNvbi1jb2xvcjp2'@; put 'YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yKTstLWNsci1mb3Jtcy1wYXNzd29yZC1kaXNhYmxlZC1leWUtaWNvbi1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWRpc2FibGVkKTstLWNsci1mb3Jtcy1yYW5nZS1wcm9ncmVzcy1maWxsLWNvbG9yOnZhcigtLWNk'@; put 'cy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1oaWdobGlnaHQpOy0tY2xyLWZvcm1zLXJhbmdlLXRyYWNrLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtY29udGFpbmVyLWJhY2tncm91bmQtc2hhZGUpOy0tY2xyLWZvcm1zLXJhbmdlLXRyYWNrLWJvcmRlci1jb2xv'@; put 'cjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtaGlnaGxpZ2h0KTstLWNsci1mb3Jtcy1yYW5nZS10aHVtYi1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTstLWNsci1mb3Jtcy1yYW5nZS10cmFjay1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1z'@; put 'cGFjZS0zKTstLWNsci1mb3Jtcy1yYW5nZS10cmFjay1ib3JkZXItcmFkaXVzOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMik7LS1jbHItZm9ybXMtcmFuZ2UtdHJhY2stYm9yZGVyLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSk7LS1jbHItZm9ybXMtcmFuZ2UtcHJvZ3Jlc3MtZmls'@; put 'bC1jb2xvci1kaXNhYmxlZDp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yLWRpc2FibGVkKTstLWNsci1mb3Jtcy1yYW5nZS10cmFjay1jb2xvci1kaXNhYmxlZDp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWRpc2FibGVkLXRpbnQpOy0tY2xyLWZvcm1zLXJhbmdlLXRy'@; put 'YWNrLWJvcmRlci1jb2xvci1kaXNhYmxlZDp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yLWRpc2FibGVkKTstLWNsci1mb3Jtcy1zZWxlY3QtaG92ZXItYmFja2dyb3VuZDp0cmFuc3BhcmVudDstLWNsci1mb3Jtcy1zZWxlY3QtZGlzYWJsZWQtY29sb3I6dmFyKC0t'@; put 'Y2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvci1kaXNhYmxlZCk7LS1jbHItZm9ybXMtc2VsZWN0LWhvdmVyLWJvcmRlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yLWhvdmVyKTstLWNsci1mb3Jtcy1zZWxlY3QtZGlzYWJsZWQtYm9yZGVy'@; put 'LWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tY29sb3ItZGlzYWJsZWQpOy0tY2xyLWZvcm1zLXNlbGVjdC1jYXJldC1ob3Zlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yLWhvdmVyKTstLWNsci1mb3Jtcy1zZWxlY3QtY2Fy'@; put 'ZXQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvcik7LS1jbHItZm9ybXMtc2VsZWN0LWNhcmV0LXNpemU6Y2FsYygxMCAqICgxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpOy0tY2xyLWZvcm1zLXNlbGVjdC1vcHRpb24tY29sb3I6dmFyKC0tY2Rz'@; put 'LWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNDAwKTstLWNsci1mb3Jtcy1zZWxlY3Qtb3B0aW9uLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kKTstLWNsci1mb3Jtcy1zZWxlY3QtbXVsdGlwbGUtYmFja2dyb3VuZC1jb2xvcjp2'@; put 'YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWNvbnRhaW5lci1iYWNrZ3JvdW5kKTstLWNsci1mb3Jtcy1zZWxlY3QtbXVsdGlwbGUtYm9yZGVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLWNvbG9yKTstLWNsci1mb3Jtcy1zZWxlY3QtbXVsdGlwbGUtb3B0aW9uLWNvbG9yOnZh'@; put 'cigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTQwMCk7LS1jbHItZm9ybXMtc2VsZWN0LW11bHRpcGxlLXNlbGVjdGVkLW9wdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1zZWxlY3RlZCk7LS1jbHItZm9ybXMt'@; put 'dGV4dGFyZWEtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWNvbnRhaW5lci1iYWNrZ3JvdW5kKTstLWNsci1mb3Jtcy10ZXh0YXJlYS1kaXNhYmxlZC1iYWNrZ3JvdW5kOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtY29udGFpbmVyLWJhY2tncm91bmQpOy0tY2xyLWZv'@; put 'cm1zLXRleHRhcmVhLWJvcmRlci1yYWRpdXM6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItcmFkaXVzLTEwMCk7LS1jbHItZm9ybXMtZGF0YWxpc3QtY2FyZXQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1uZXV0cmFsKTstLWNsci1mb3Jtcy1kYXRhbGlzdC1jYXJldC1kaXNh'@; put 'YmxlZC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWRpc2FibGVkKTstLWNsci1mb3Jtcy1kYXRhbGlzdC1jYXJldC1pY29uLXNpemU6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KX0uY2xyLWZvcm0tY29udHJvbHttYXJnaW4tdG9wOmNhbGMoNCp2YXIoLS1jbHItZm9ybXMtYmFzZWxp'@; put 'bmUpKTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LmNsci1mb3JtLWNvbnRyb2wgaW5wdXQ6Oi1tcy1yZXZlYWwsLmNsci1mb3JtLWNvbnRyb2wgaW5wdXQ6Oi1tcy1jbGVhcntkaXNwbGF5Om5vbmV9LmNsci1mb3JtLWNvbnRyb2wt'@; put 'ZGlzYWJsZWR7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHQtZGlzYWJsZWQtY29sb3IpfS5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIGxhYmVsLC5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIC5jbHItY29udHJvbC1sYWJlbHtjb2xvcjp2YXIoLS1jbHItZm9ybXMtbGFiZWwtZGlzYWJs'@; put 'ZWQtY29sb3IpfS5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIC5jbHItaW5wdXQsLmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci10ZXh0YXJlYSwuY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xyLXNlbGVjdCwuY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xyLW51bWJl'@; put 'ci1pbnB1dHtjb2xvcjp2YXIoLS1jbHItZm9ybXMtdGV4dC1kaXNhYmxlZC1jb2xvcik7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItZm9ybXMtYm9yZGVyLWRpc2FibGVkLWNvbG9yKX0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1z'@; put 'bGlkZXItdGh1bWIsLmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgaW5wdXRbdHlwZT1yYW5nZV06Oi1tb3otcmFuZ2UtdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZm9ybXMtcmFuZ2UtcHJvZ3Jlc3MtZmlsbC1jb2xvci1kaXNhYmxlZCwgdmFyKC0tY2xyLWZvcm1zLXJhbmdl'@; put 'LXByb2dyZXNzLWZpbGwtY29sb3ItZGlzYWJsZWQpKX0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xyLXN1YnRleHR7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXN1YnRleHQtZGlzYWJsZWQtY29sb3IpfS5jbHItZm9ybS1jb250cm9sLW11bHRpe2ZsZXgtZGlyZWN0aW9uOnJvdztmbGV4'@; put 'LXdyYXA6d3JhcH0uY2xyLWZvcm0tY29udHJvbC1tdWx0aSAuY2xyLWNvbnRyb2wtbGFiZWx7d2lkdGg6MTAwJX0uY2xyLWNvbnRyb2wtbGFiZWx7ZGlzcGxheTpibG9jaztjb2xvcjp2YXIoLS1jbHItZm9ybXMtbGFiZWwtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dy'@; put 'YXBoeS1zZWNvbmRhcnktZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jbHItZm9ybXMtbGFiZWwtZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFyeS1saW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWFsaWFz'@; put 'LXR5cG9ncmFwaHktc2Vjb25kYXJ5LWxldHRlci1zcGFjaW5nKX0uY2xyLWNvbnRyb2wtY29udGFpbmVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZTp2YXIoLS1jbHItcDItZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWNvbmRhcnkt'@; put 'Zm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWxldHRlci1zcGFjaW5nKX0uY2xyLWNvbnRyb2wtaW5saW5le2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3Jh'@; put 'cDthbGlnbi1jb250ZW50OmZsZXgtc3RhcnR9LmNsci1jb250cm9sLWlubGluZSAuY2xyLWNvbnRyb2wtbGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0OmNhbGMoMip2YXIoLS1jbHItZm9ybXMtYmFzZWxpbmUpKTt3aWR0aDphdXRvfS5jbHItc3VidGV4dHtkaXNwbGF5'@; put 'OmJsb2NrO2ZvbnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jYXB0aW9uLWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY2FwdGlvbi1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY2Fw'@; put 'dGlvbi1saW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY2FwdGlvbi1sZXR0ZXItc3BhY2luZyk7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXN1YnRleHQtY29sb3IpO21hcmdpbi10b3A6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0zKX0uY2xyLXN1'@; put 'YnRleHQuZXJyb3J7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLWludmFsaWQtdGV4dC1jb2xvcil9LmNsci1zdWJ0ZXh0LnN1Y2Nlc3N7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXZhbGlkLXRleHQtY29sb3IpfS5jbHItc3VidGV4dC13cmFwcGVye2ZsZXgtYmFzaXM6MTAwJTtkaXNwbGF5OmZsZXh9'@; put 'LmNsci12YWxpZGF0ZS1pY29ue2hlaWdodDp2YXIoLS1jbHItZm9ybXMtaWNvbi1zaXplKTt3aWR0aDp2YXIoLS1jbHItZm9ybXMtaWNvbi1zaXplKTttaW4taGVpZ2h0OnZhcigtLWNsci1mb3Jtcy1pY29uLXNpemUpO21pbi13aWR0aDp2YXIoLS1jbHItZm9ybXMtaWNvbi1zaXplKTtjb2xv'@; put 'cjp2YXIoLS1jbHItZm9ybXMtaW52YWxpZC1jb2xvcik7ZmlsbDp2YXIoLS1jbHItZm9ybXMtaW52YWxpZC1jb2xvcik7ZGlzcGxheTpub25lfS5jbHItc3VjY2VzcyAuY2xyLXZhbGlkYXRlLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXZhbGlkLWNv'@; put 'bG9yKTtmaWxsOnZhcigtLWNsci1mb3Jtcy12YWxpZC1jb2xvcil9LmNsci1lcnJvciAuY2xyLXZhbGlkYXRlLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2t9LmNsci1mb3JtLWhvcml6b250YWwgLmNsci1mb3JtLWNvbnRyb2w+LmNsci1jb250cm9sLWxhYmVsLC5jbHItZm9ybS1ob3Jpem9u'@; put 'dGFsIC5jbHItZm9ybS1jb250cm9sPi5jbHItZm9ybS1jb250cm9sLmNsci1mb3JtLWNvbnRyb2wtbXVsdGkgLmNsci1jb250cm9sLWxhYmVse3dpZHRoOmNhbGMoMzIqdmFyKC0tY2xyLWZvcm1zLWJhc2VsaW5lKSk7ZmxleC1zaHJpbms6MDttYXJnaW4tdG9wOnZhcigtLWNkcy1nbG9iYWwt'@; put 'c3BhY2UtMyl9LmNsci1mb3JtLWhvcml6b250YWwuY2xyLXJvdyAuY2xyLWNvbnRyb2wtbGFiZWx7d2lkdGg6YXV0b30uY2xyLWZvcm0taG9yaXpvbnRhbCAuY2xyLWZvcm0tY29udHJvbHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93fS5jbHItZm9ybTpub3QoLmNsci1mb3JtLWNv'@; put 'bXBhY3QpIC5jbHItY29udHJvbC1jb250YWluZXIuY2xyLWVycm9yPi5jbHItc3VidGV4dC13cmFwcGVyIC5jbHItdmFsaWRhdGUtaWNvbiwuY2xyLWZvcm06bm90KC5jbHItZm9ybS1jb21wYWN0KSAuY2xyLWNvbnRyb2wtY29udGFpbmVyLmNsci1zdWNjZXNzPi5jbHItc3VidGV4dC13cmFw'@; put 'cGVyIC5jbHItdmFsaWRhdGUtaWNvbnttYXJnaW4tbGVmdDpjYWxjKC0xKnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMykpfS5jbHItZm9ybS1jb21wYWN0IC5jbHItZm9ybS1jb250cm9sPi5jbHItY29udHJvbC1sYWJlbHt3aWR0aDpjYWxjKDMyKnZhcigtLWNsci1mb3Jtcy1iYXNlbGluZSkp'@; put 'O21pbi13aWR0aDpjYWxjKDMyKnZhcigtLWNsci1mb3Jtcy1iYXNlbGluZSkpfS5jbHItZm9ybS1jb21wYWN0IC5jbHItZm9ybS1jb250cm9sLmNsci1yb3c+LmNsci1jb250cm9sLWxhYmVse3dpZHRoOmF1dG87bWluLXdpZHRoOmF1dG99LmNsci1mb3JtLWNvbXBhY3QgLmNsci1jb250cm9s'@; put 'LWxhYmVse21hcmdpbi10b3A6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0zKX0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLWZvcm0tY29udHJvbHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O21hcmdpbi10b3A6Y2FsYygyKnZhcigtLWNsci1mb3Jtcy1iYXNlbGluZSkpfS5jbHItZm9y'@; put 'bS1jb21wYWN0IC5jbHItY29udHJvbC1jb250YWluZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwfS5jbHItZm9ybS1jb21wYWN0IC5jbHItc3VidGV4dHtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tbGVmdDp2YXIoLS1jbHItZm9ybXMtaWNvbi1zaXplKX0uY2xyLWZvcm0tY29t'@; put 'cGFjdCAuY2xyLWVycm9yIC5jbHItc3VidGV4dCwuY2xyLWZvcm0tY29tcGFjdCAuY2xyLXN1Y2Nlc3MgLmNsci1zdWJ0ZXh0e21hcmdpbi1sZWZ0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMyl9LmNsci1mb3JtLWNvbXBhY3QgLmNsci1lcnJvciAuY2xyLXN1YnRleHQuZXJyb3IsLmNsci1m'@; put 'b3JtLWNvbXBhY3QgLmNsci1lcnJvciAuY2xyLXN1YnRleHQuc3VjY2VzcywuY2xyLWZvcm0tY29tcGFjdCAuY2xyLXN1Y2Nlc3MgLmNsci1zdWJ0ZXh0LmVycm9yLC5jbHItZm9ybS1jb21wYWN0IC5jbHItc3VjY2VzcyAuY2xyLXN1YnRleHQuc3VjY2Vzc3ttYXJnaW4tbGVmdDp2YXIoLS1j'@; put 'ZHMtZ2xvYmFsLXNwYWNlLTQpfS5jbHItZm9ybS1jb21wYWN0IC5jbHItZXJyb3IgLmNsci12YWxpZGF0ZS1pY29uLC5jbHItZm9ybS1jb21wYWN0IC5jbHItc3VjY2VzcyAuY2xyLXZhbGlkYXRlLWljb257bWFyZ2luLWxlZnQ6MH0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLXN1YnRleHQtd3Jh'@; put 'cHBlcntmbGV4LWJhc2lzOmF1dG87ZGlzcGxheTppbmxpbmUtYmxvY2t9LmNsci1mb3Jte3BhZGRpbmc6dmFyKC0tY2xyLWZvcm1zLWJhc2VsaW5lKX0uY2xyLWZvcm0tZnVsbC13aWR0aCAuY2xyLWZvcm0tY29udHJvbCAuY2xyLWNvbnRyb2wtY29udGFpbmVyLC5jbHItZm9ybS1mdWxsLXdp'@; put 'ZHRoIC5jbHItZm9ybS1jb250cm9sIC5jbHItc2VsZWN0LXdyYXBwZXIsLmNsci1mb3JtLWZ1bGwtd2lkdGggLmNsci1mb3JtLWNvbnRyb2wgLmNsci1pbnB1dC13cmFwcGVyLC5jbHItZm9ybS1mdWxsLXdpZHRoIC5jbHItZm9ybS1jb250cm9sIC5jbHItbnVtYmVyLWlucHV0LXdyYXBwZXIs'@; put 'LmNsci1mb3JtLWZ1bGwtd2lkdGggLmNsci1mb3JtLWNvbnRyb2wgLmNsci1jb21ib2JveHt3aWR0aDpjYWxjKDEwMCUgLSB2YXIoLS1jbHItZm9ybXMtaWNvbi1zaXplKSl9LmNsci1mb3JtLWZ1bGwtd2lkdGggLmNsci1mb3JtLWNvbnRyb2wgLmNsci1jb21ib2JveC13cmFwcGVyLC5jbHIt'@; put 'Zm9ybS1mdWxsLXdpZHRoIC5jbHItZm9ybS1jb250cm9sIC5jbHItY29tYm9ib3gtaW5wdXQtd3JhcHBlciwuY2xyLWZvcm0tZnVsbC13aWR0aCAuY2xyLWZvcm0tY29udHJvbCAuY2xyLXRleHRhcmVhLXdyYXBwZXIsLmNsci1mb3JtLWZ1bGwtd2lkdGggLmNsci1mb3JtLWNvbnRyb2wgLmNs'@; put 'ci1pbnB1dC1ncm91cCwuY2xyLWZvcm0tZnVsbC13aWR0aCAuY2xyLWZvcm0tY29udHJvbCBpbnB1dCwuY2xyLWZvcm0tZnVsbC13aWR0aCAuY2xyLWZvcm0tY29udHJvbCB0ZXh0YXJlYSwuY2xyLWZvcm0tZnVsbC13aWR0aCAuY2xyLWZvcm0tY29udHJvbCBzZWxlY3R7d2lkdGg6MTAwJX0u'@; put 'Y2xyLWZvcm0tZnVsbC13aWR0aCAuY2xyLWZvcm0tY29udHJvbCAuY2xyLWNvbWJvYm94LC5jbHItZm9ybS1mdWxsLXdpZHRoLmNsci1mb3JtLWNvbXBhY3QgLmNsci1mb3JtLWNvbnRyb2wgLmNsci1pbnB1dC13cmFwcGVyLC5jbHItZm9ybS1mdWxsLXdpZHRoLmNsci1mb3JtLWNvbXBhY3Qg'@; put 'LmNsci1mb3JtLWNvbnRyb2wgLmNsci1udW1iZXItaW5wdXQtd3JhcHBlciwuY2xyLWZvcm0tZnVsbC13aWR0aC5jbHItZm9ybS1jb21wYWN0IC5jbHItZm9ybS1jb250cm9sIC5jbHItc2VsZWN0LXdyYXBwZXIsLmNsci1mb3JtLWZ1bGwtd2lkdGguY2xyLWZvcm0tY29tcGFjdCAuY2xyLWZv'@; put 'cm0tY29udHJvbCAuY2xyLW11bHRpc2VsZWN0LXdyYXBwZXJ7ZGlzcGxheTppbmxpbmUtZmxleH0uY2xyLWZvcm0tZnVsbC13aWR0aC5jbHItZm9ybS1jb21wYWN0IC5jbHItY29udHJvbC1jb250YWluZXJ7ZmxleC13cmFwOm5vd3JhcH0uY2xyLWZvcm0tZnVsbC13aWR0aC5jbHItZm9ybS1j'@; put 'b21wYWN0IC5jbHItc3VidGV4dHtmbGV4OjAgMCBhdXRvfS5jbHItZm9ybS1mdWxsLXdpZHRoOm5vdCguY2xyLWZvcm0tY29tcGFjdCkgLmNsci1mb3JtLWNvbnRyb2wgLmNsci1lcnJvciAuY2xyLXNlbGVjdC13cmFwcGVyOmFmdGVyLC5jbHItZm9ybS1mdWxsLXdpZHRoOm5vdCguY2xyLWZv'@; put 'cm0tY29tcGFjdCkgLmNsci1mb3JtLWNvbnRyb2wgLmNsci1zdWNjZXNzIC5jbHItc2VsZWN0LXdyYXBwZXI6YWZ0ZXJ7cmlnaHQ6dmFyKC0tY2xyLWZvcm1zLWJhc2VsaW5lKX0uY2xyLWZvcm0tZnVsbC13aWR0aDpub3QoLmNsci1mb3JtLWNvbXBhY3QpIC5jbHItZm9ybS1jb250cm9sIC5j'@; put 'bHItY29udHJvbC1jb250YWluZXI6bm90KC5jbHItZXJyb3IpOm5vdCguY2xyLXN1Y2Nlc3MpIHRleHRhcmVhe3dpZHRoOmNhbGMoMTAwJSAtIHZhcigtLWNsci1mb3Jtcy1pY29uLXNpemUpKX0uY2xyLWZvcm0tZ3JvdXB7cGFkZGluZzp2YXIoLS1jbHItZm9ybXMtYmFzZWxpbmUpfS5jbHIt'@; put 'cmVxdWlyZWQtbWFyazphZnRlcntjb250ZW50OiIqIjtjb2xvcjp2YXIoLS1jbHItZm9ybXMtaW52YWxpZC1jb2xvcik7ZmlsbDp2YXIoLS1jbHItZm9ybXMtaW52YWxpZC1jb2xvcik7Zm9udC1zaXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWZvbnQtc2l6ZS0zKTttYXJnaW4tbGVm'@; put 'dDp2YXIoLS1jbHItZm9ybXMtYmFzZWxpbmUpfS5jbHItY2hlY2tib3gtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XXstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTstbXMtYXBwZWFyYW5jZTpub25lOy1vLWFwcGVhcmFuY2U6bm9uZX0uY2xyLWNoZWNr'@; put 'Ym94LXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0uY2xyLWNoZWNrYm94LXdyYXBwZXIgLmNsci1jb250cm9sLWxhYmVse2ZvbnQtd2VpZ2h0OjQwMDtkaXNwbGF5OmJsb2NrfS5jbHItY2hlY2tib3gtd3JhcHBlcn4uY2xyLXZhbGlk'@; put 'YXRlLWljb257bWFyZ2luLWxlZnQ6MH0uY2xyLWNoZWNrYm94LXdyYXBwZXJ+LmNsci1zdWJ0ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jbHItY2hlY2tib3gtd3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjA7'@; put 'Y3Vyc29yOnBvaW50ZXI7bWluLWhlaWdodDpjYWxjKHZhcigtLWNsci1mb3Jtcy1iYXNlbGluZSkqNCk7cGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTMpIDA7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLWxhYmVsLWNvbG9yKTtmb250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFw'@; put 'aHktc2Vjb25kYXJ5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWNvbmRhcnktbGluZS1oZWlnaHQpO2xldHRlci1zcGFjaW5nOnZh'@; put 'cigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFyeS1sZXR0ZXItc3BhY2luZyl9LmNsci1jaGVja2JveC13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hde3Bvc2l0aW9uOnJlbGF0aXZlO2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpO3dpZHRoOnZhcigtLWNkcy1nbG9i'@; put 'YWwtc3BhY2UtOSk7bWluLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpO21pbi13aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWZvcm1zLWNoZWNrYm94LWJvcmRlci1yYWRpdXMpO3BhZGRpbmc6dmFyKC0tY2RzLWdsb2JhbC1z'@; put 'cGFjZS0zKSAwfS5jbHItY2hlY2tib3gtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpub3QoOmRpc2FibGVkKXtjdXJzb3I6cG9pbnRlcn0uY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7ZGlz'@; put 'cGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTtib3JkZXI6LjA1cmVtIHNvbGlkIHZhcigtLWNsci1mb3Jtcy1ib3JkZXItY29sb3IpO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWZvcm1zLWNo'@; put 'ZWNrYm94LWJvcmRlci1yYWRpdXMpfS5jbHItY2hlY2tib3gtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OiIiO2Rpc3BsYXk6bm9uZTtoZWlnaHQ6Y2FsYyhjYWxjKGNhbGModmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KSouNSkq'@; put 'LjUpICsgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xKSk7d2lkdGg6Y2FsYyh2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpKi41KTtib3JkZXItbGVmdDpjYWxjKHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNykqLjEyNSkgc29saWQgdmFyKC0tY2xyLWZvcm1zLWNoZWNrYm94LW1hcmstY29sb3Ip'@; put 'O2JvcmRlci1ib3R0b206Y2FsYyh2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpKi4xMjUpIHNvbGlkIHZhcigtLWNsci1mb3Jtcy1jaGVja2JveC1tYXJrLWNvbG9yKTtsZWZ0OmNhbGMoY2FsYyh2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpKi41KSouNSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVko'@; put 'Y2FsYyhjYWxjKHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNykqLjUpKi41KSkgcm90YXRlKC00NWRlZyl9LmNsci1jaGVja2JveC13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmZvY3Vze291dGxpbmU6MH0uY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Zm9j'@; put 'dXM6YmVmb3Jle291dGxpbmU6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1vdXRsaW5lKTtvdXRsaW5lLWNvbG9yOi13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtvdXRsaW5lLW9mZnNldDpjYWxjKDMqKDFyZW0vdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpfS5jbHItY2hlY2ti'@; put 'b3gtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmJlZm9yZXtiYWNrZ3JvdW5kOnZhcigtLWNsci1mb3Jtcy1jaGVja2JveC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXI6MH0uY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDphZnRl'@; put 'cntkaXNwbGF5OmlubGluZS1ibG9ja30uY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF0uY2xyLWluZGV0ZXJtaW5hdGU6YmVmb3JlLC5jbHItY2hlY2tib3gtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTppbmRldGVybWluYXRlOmJlZm9yZXtib3JkZXI6dmFy'@; put 'KC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMTAwKSBzb2xpZCB2YXIoLS1jbHItZm9ybXMtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1ib3JkZXItY29sb3IpfS5jbHItY2hlY2tib3gtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XS5jbHItaW5kZXRlcm1pbmF0ZTphZnRlciwu'@; put 'Y2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06aW5kZXRlcm1pbmF0ZTphZnRlcntib3JkZXItbGVmdDpub25lO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWZvcm1zLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtYm9yZGVyLWNvbG9yKTtkaXNwbGF5OmlubGlu'@; put 'ZS1ibG9jazt0cmFuc2Zvcm06dHJhbnNsYXRlWShjYWxjKGNhbGModmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KSouNSkqLjUpKX0uY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06ZGlzYWJsZWQrbGFiZWx7Y3Vyc29yOm5vdC1hbGxvd2VkO2NvbG9yOnZhcigtLWNs'@; put 'ci1mb3Jtcy1sYWJlbC1kaXNhYmxlZC1jb2xvcil9LmNsci1jaGVja2JveC13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmRpc2FibGVkOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3JtLWRpc2FibGVkLWJhY2tncm91bmQtY29sb3IpO2JvcmRlci1jb2xvcjp2YXIo'@; put 'LS1jbHItZm9ybXMtY2hlY2tib3gtZGlzYWJsZWQtYm9yZGVyLWNvbG9yKX0uY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06ZGlzYWJsZWQ6Y2hlY2tlZDpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZm9ybXMtY2hlY2tib3gtZGlzYWJsZWQtY2hl'@; put 'Y2tlZC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXI6MH0uY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06ZGlzYWJsZWQ6Y2hlY2tlZDphZnRlcntib3JkZXItY29sb3I6dmFyKC0tY2xyLWZvcm1zLWNoZWNrYm94LWRpc2FibGVkLW1hcmstY29sb3IpfS5jbHItY2hl'@; put 'Y2tib3gtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpkaXNhYmxlZC5jbHItaW5kZXRlcm1pbmF0ZTphZnRlciwuY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06ZGlzYWJsZWQ6aW5kZXRlcm1pbmF0ZTphZnRlcntib3JkZXItY29sb3I6dmFyKC0tY2xyLWZv'@; put 'cm1zLWNoZWNrYm94LWRpc2FibGVkLWluZGV0ZXJtaW5hdGUtY29sb3IpO2JvcmRlci1sZWZ0Om5vbmV9LmNsci1jaGVja2JveC13cmFwcGVyLmNsci1jaGVja2JveC1pbmxpbmV7ZGlzcGxheTpmbGV4fS5jbHItY2hlY2tib3gtd3JhcHBlci5jbHItY2hlY2tib3gtaW5saW5lIC5jbHItY29u'@; put 'dHJvbC1sYWJlbHtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tcmlnaHQ6Y2FsYygyKnZhcigtLWNsci1mb3Jtcy1iYXNlbGluZSkpO3dpZHRoOmF1dG99LmNsci1lcnJvciAuY2xyLWNoZWNrYm94LXdyYXBwZXI6bm90KC5kYXRhZ3JpZC1zZWxlY3QgLmNsci1jaGVja2JveC13cmFwcGVy'@; put 'KSBpbnB1dFt0eXBlPWNoZWNrYm94XTpiZWZvcmV7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1pbnZhbGlkLWNvbG9yKX0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xyLWNoZWNrYm94LXdyYXBwZXIgLmNsci1jb250cm9sLWxhYmVsLC5jbHItY2hlY2tib3gtd3JhcHBlci5j'@; put 'bHItY2hlY2tib3gtd3JhcHBlci1kaXNhYmxlZCAuY2xyLWNvbnRyb2wtbGFiZWx7Y3Vyc29yOm5vdC1hbGxvd2VkO2NvbG9yOnZhcigtLWNsci1mb3Jtcy1sYWJlbC1kaXNhYmxlZC1jb2xvcil9LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci1jaGVja2JveC13cmFwcGVyIGlucHV0'@; put 'W3R5cGU9Y2hlY2tib3hdOmJlZm9yZSwuY2xyLWNoZWNrYm94LXdyYXBwZXIuY2xyLWNoZWNrYm94LXdyYXBwZXItZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06YmVmb3Jle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm0tZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcik7Ym9y'@; put 'ZGVyLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1jaGVja2JveC1kaXNhYmxlZC1ib3JkZXItY29sb3IpfS5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIC5jbHItY2hlY2tib3gtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmJlZm9yZSwuY2xyLWNoZWNrYm94LXdyYXBwZXIu'@; put 'Y2xyLWNoZWNrYm94LXdyYXBwZXItZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZm9ybXMtY2hlY2tib3gtZGlzYWJsZWQtY2hlY2tlZC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXI6MH0uY2xyLWZvcm0tY29u'@; put 'dHJvbC1kaXNhYmxlZCAuY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDphZnRlciwuY2xyLWNoZWNrYm94LXdyYXBwZXIuY2xyLWNoZWNrYm94LXdyYXBwZXItZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDphZnRlcntib3JkZXIt'@; put 'Y29sb3I6dmFyKC0tY2xyLWZvcm1zLWNoZWNrYm94LWRpc2FibGVkLW1hcmstY29sb3IpfS5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIC5jbHItY2hlY2tib3gtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XS5jbHItaW5kZXRlcm1pbmF0ZTphZnRlciwuY2xyLWZvcm0tY29udHJvbC1k'@; put 'aXNhYmxlZCAuY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06aW5kZXRlcm1pbmF0ZTphZnRlciwuY2xyLWNoZWNrYm94LXdyYXBwZXIuY2xyLWNoZWNrYm94LXdyYXBwZXItZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF0uY2xyLWluZGV0ZXJtaW5hdGU6YWZ0'@; put 'ZXIsLmNsci1jaGVja2JveC13cmFwcGVyLmNsci1jaGVja2JveC13cmFwcGVyLWRpc2FibGVkIGlucHV0W3R5cGU9Y2hlY2tib3hdOmluZGV0ZXJtaW5hdGU6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1jaGVja2JveC1kaXNhYmxlZC1pbmRldGVybWluYXRlLWNvbG9yKTti'@; put 'b3JkZXItbGVmdDpub25lfS5jbHItZm9ybS1jb21wYWN0IC5jbHItY2hlY2tib3gtd3JhcHBlcnttYXgtd2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7bWluLWhlaWdodDpjYWxjKHZhcigtLWNsci1mb3Jtcy1iYXNlbGluZSkqNCl9LmNsci1mb3JtLWNvbXBhY3QgLmNsci1jaGVja2JveC13cmFw'@; put 'cGVyfi5jbHItc3VidGV4dHttYXJnaW4tbGVmdDp2YXIoLS1jbHItZm9ybXMtYmFzZWxpbmUpfS5jbHItZm9ybS1jb21wYWN0IC5jbHItY2hlY2tib3gtd3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0OmNhbGMoMip2YXIoLS1jbHIt'@; put 'Zm9ybXMtYmFzZWxpbmUpKTt3aWR0aDphdXRvfS5jbHItZm9ybS1jb21wYWN0IC5jbHItY2hlY2tib3gtd3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7bWFyZ2luLXRvcDowfS5jbHItZmlsZS13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbi10b3A6dmFyKC0tY2xyLWZvcm1zLWJh'@; put 'c2VsaW5lKX0uY2xyLWZpbGUtd3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7Zm9udC13ZWlnaHQ6NDAwO2Rpc3BsYXk6YmxvY2t9LmNsci1maWxlLXdyYXBwZXJ+LmNsci12YWxpZGF0ZS1pY29ue21hcmdpbi1sZWZ0OjB9LmNsci1maWxlLXdyYXBwZXJ+LmNsci1zdWJ0ZXh0e2Rpc3BsYXk6'@; put 'aW5saW5lLWJsb2NrfS5jbHItZmlsZS13cmFwcGVyIC5idG57bWFyZ2luOjB9LmNsci1maWxle2hlaWdodDowO3dpZHRoOjA7b3BhY2l0eTowO292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4Oi0xfS5jbHItZm9ybS1jb21wYWN0IC5jbHItZmlsZS13cmFwcGVye21h'@; put 'eC13aWR0aDoxMDAlO21hcmdpbi10b3A6MH0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLWZpbGUtd3JhcHBlcn4uY2xyLXN1YnRleHR7bWFyZ2luLWxlZnQ6dmFyKC0tY2xyLWZvcm1zLWJhc2VsaW5lKX0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLWZpbGUtd3JhcHBlcn4uY2xyLXZhbGlkYXRlLWlj'@; put 'b257bGluZS1oZWlnaHQ6Y2FsYyh2YXIoLS1jbHItZm9ybXMtYmFzZWxpbmUpKjQpfS5jbHItZm9ybS1jb21wYWN0IC5jbHItZmlsZS13cmFwcGVyfi5jbHItc3VidGV4dHtsaW5lLWhlaWdodDpjYWxjKHZhcigtLWNsci1mb3Jtcy1iYXNlbGluZSkqNCk7bWFyZ2luLXRvcDowfS5jbHItZm9y'@; put 'bS1jb21wYWN0IC5jbHItZmlsZS13cmFwcGVyIC5jbHItY29udHJvbC1sYWJlbHttYXJnaW4tdG9wOjA7bGluZS1oZWlnaHQ6MS4wOHJlbX0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLWZpbGUtd3JhcHBlciAuYnRue2hlaWdodDoxLjJyZW19LmNsci1maWxlLWlucHV0LXdyYXBwZXJ7ZGlzcGxh'@; put 'eTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbi10b3A6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0zKX0uY2xyLWZpbGUtaW5wdXQtd3JhcHBlciAuY2xyLWZpbGUtaW5wdXR7aGVpZ2h0OjA7d2lkdGg6MDtvcGFjaXR5OjA7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlO3ot'@; put 'aW5kZXg6LTF9LmNsci1maWxlLWlucHV0LXdyYXBwZXIgLmNsci1maWxlLWlucHV0LWJyb3dzZS1idXR0b24sLmNsci1maWxlLWlucHV0LXdyYXBwZXIgLmNsci1maWxlLWlucHV0LWNsZWFyLWJ1dHRvbnttYXJnaW46MDttYXJnaW4tcmlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0yKX0u'@; put 'Y2xyLWZpbGUtaW5wdXQtd3JhcHBlciAuY2xyLWZpbGUtaW5wdXQtY2xlYXItYnV0dG9ue3BhZGRpbmc6MCB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTIpIWltcG9ydGFudDttaW4td2lkdGg6dW5zZXQ7Ym9yZGVyOjB9LmNsci1maWxlLWlucHV0LXdyYXBwZXIgLmNsci1maWxlLWlucHV0LWJy'@; put 'b3dzZS1idXR0b24tdGV4dHtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30uY2xyLWZvcm0tY29tcGFjdCAuY2xyLWZpbGUtaW5wdXQtd3JhcHBlcnttYXJnaW4tdG9wOjB9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo3NjhweCl7LmNsci1mb3JtLWhvcml6b250'@; put 'YWwgLmNsci1maWxlLWlucHV0LXdyYXBwZXJ7bWFyZ2luLXRvcDowfX0uY2xyLWZpbGUtbGlzdCAuY2xyLWZpbGUtbGlzdC1pdGVte21hcmdpbi10b3A6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KTttYXgtd2lkdGg6NTAwcHh9LmNsci1maWxlLWxpc3QgLmNsci1maWxlLWxhYmVsLWFuZC1z'@; put 'dGF0dXMtaWNvbntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0uY2xyLWZpbGUtbGlzdCAuY2xyLWZpbGUtbGFiZWx7d2hpdGUtc3BhY2U6d3JhcDtoZWlnaHQ6dW5zZXQ7Z2FwOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSk7bWFyZ2luLXJpZ2h0OnZhcigtLWNkcy1n'@; put 'bG9iYWwtc3BhY2UtMik7cGFkZGluZy1yaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTMpfS5jbHItZmlsZS1saXN0IC5jbHItZmlsZS1jbGVhci1idXR0b257bWFyZ2luOjA7cGFkZGluZzowO21pbi13aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpO2hlaWdodDp2YXIoLS1jZHMt'@; put 'YWxpYXMtdHlwb2dyYXBoeS1jYXB0aW9uLWxpbmUtaGVpZ2h0KX0uY2xyLWZpbGUtbGlzdCAuY2xyLWZpbGUtY2xlYXItYnV0dG9uIGNkcy1pY29ue21hcmdpbjowfS5jbHItZm9ybS1jb21wYWN0IC5jbHItZmlsZS1saXN0LWl0ZW17ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2FsaWdu'@; put 'LWl0ZW1zOmNlbnRlcjtjb2x1bW4tZ2FwOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMyl9LmNsci1mb3JtLWNvbXBhY3QgLmNsci1maWxlLWxpc3QtaXRlbSAuY2xyLXN1YnRleHR7bWFyZ2luOjAhaW1wb3J0YW50fS5jbHItZm9ybS1jb21wYWN0IC5jbHItZmlsZS1saXN0LWJyZWFre2ZsZXgt'@; put 'YmFzaXM6MTAwJTtoZWlnaHQ6MH0uY2xyLWlucHV0LXdyYXBwZXJ7d2hpdGUtc3BhY2U6bm93cmFwO21heC1oZWlnaHQ6dmFyKC0tY2xyLWZvcm1zLWlucHV0LXdyYXBwZXItaGVpZ2h0KX0uY2xyLWlucHV0ey13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1t'@; put 'cy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQ6MCAwO2hlaWdodDp2YXIoLS1jbHItZm9ybXMtaW5wdXQtd3JhcHBlci1oZWlnaHQpO2NvbG9yOnZh'@; put 'cigtLWNsci1mb3Jtcy10ZXh0LWNvbG9yKTtib3JkZXItYm90dG9tOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTEwMCkgc29saWQgdmFyKC0tY2xyLWZvcm1zLWJvcmRlci1jb2xvcik7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzp2'@; put 'YXIoLS1jbHItZm9ybXMtaW5wdXQtcGFkZGluZyk7bWF4LWhlaWdodDp2YXIoLS1jbHItZm9ybXMtaW5wdXQtd3JhcHBlci1oZWlnaHQpO2ZvbnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWNvbmRhcnktZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jZHMtYWxpYXMt'@; put 'dHlwb2dyYXBoeS1zZWNvbmRhcnktZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWxldHRlci1zcGFjaW5nKX0uY2xyLWlucHV0OmZvY3Vze291dGxpbmU6'@; put 'MH0uY2xyLWlucHV0W3JlYWRvbmx5XXtib3JkZXI6MH0uY2xyLWlucHV0Om5vdChbcmVhZG9ubHldKXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sdHJhbnNwYXJlbnQgOTUlLHZhcigtLWNsci1mb3Jtcy1mb2N1c2VkLWNvbG9yKSA5NSUpIG5vLXJlcGVhdDtiYWNrZ3Jv'@; put 'dW5kLXNpemU6MCAxMDAlO3RyYW5zaXRpb246YmFja2dyb3VuZC1zaXplIC4ycyBlYXNlfS5jbHItaW5wdXQ6bm90KFtyZWFkb25seV0pOmZvY3VzLC5jbHItaW5wdXQ6bm90KFtyZWFkb25seV0pLmNsci1mb2N1cywuY2xyLWlucHV0Om5vdChbcmVhZG9ubHldKTpmb2N1cy13aXRoaW57Ym9y'@; put 'ZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItZm9ybXMtZm9jdXNlZC1jb2xvcik7YmFja2dyb3VuZC1zaXplOjEwMCUgMTAwJX0uY2xyLWlucHV0OmRpc2FibGVke2NvbG9yOnZhcigtLWNsci1mb3Jtcy10ZXh0LWRpc2FibGVkLWNvbG9yKTtjdXJzb3I6bm90LWFsbG93ZWR9LmNsci1pbnB1'@; put 'dDpkaXNhYmxlZDo6cGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXBsYWNlaG9sZGVyLWRpc2FibGVkLWNvbG9yKX0uY2xyLWVycm9yIC5jbHItaW5wdXQ6bm90KFtyZWFkb25seV0pe2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWZvcm1zLWludmFsaWQtY29sb3IpO2Jh'@; put 'Y2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSx0cmFuc3BhcmVudCA5NSUsdmFyKC0tY2xyLWZvcm1zLWludmFsaWQtY29sb3IpIDk1JSkgbm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTowIDEwMCU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLXNpemUgLjJzIGVhc2V9LmNsci1lcnJv'@; put 'ciAuY2xyLWlucHV0Om5vdChbcmVhZG9ubHldKTpmb2N1cywuY2xyLWVycm9yIC5jbHItaW5wdXQ6bm90KFtyZWFkb25seV0pLmNsci1mb2N1cywuY2xyLWVycm9yIC5jbHItaW5wdXQ6bm90KFtyZWFkb25seV0pOmZvY3VzLXdpdGhpbntib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1m'@; put 'b3Jtcy1pbnZhbGlkLWNvbG9yKTtiYWNrZ3JvdW5kLXNpemU6MTAwJSAxMDAlfS5jbHItc3VjY2VzcyAuY2xyLWlucHV0Om5vdChbcmVhZG9ubHldKXtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1mb3Jtcy12YWxpZC1jb2xvcik7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8g'@; put 'Ym90dG9tLHRyYW5zcGFyZW50IDk1JSx2YXIoLS1jbHItZm9ybXMtdmFsaWQtY29sb3IpIDk1JSkgbm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTowIDEwMCU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLXNpemUgLjJzIGVhc2V9LmNsci1zdWNjZXNzIC5jbHItaW5wdXQ6bm90KFtyZWFkb25seV0p'@; put 'OmZvY3VzLC5jbHItc3VjY2VzcyAuY2xyLWlucHV0Om5vdChbcmVhZG9ubHldKS5jbHItZm9jdXMsLmNsci1zdWNjZXNzIC5jbHItaW5wdXQ6bm90KFtyZWFkb25seV0pOmZvY3VzLXdpdGhpbntib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1mb3Jtcy12YWxpZC1jb2xvcik7YmFja2dy'@; put 'b3VuZC1zaXplOjEwMCUgMTAwJX0uY2xyLWZvcm0tY29udHJvbC5yb3cgLmNsci1pbnB1dC13cmFwcGVye21heC13aWR0aDpjYWxjKDEwMCUgLSB2YXIoLS1jbHItZm9ybXMtaWNvbi1zaXplKSl9LmNsci1mb3JtLWNvbXBhY3QgLmNsci1pbnB1dHttYXgtd2lkdGg6MTAwJX0uY2xyLWZvcm0t'@; put 'Y29tcGFjdCAuY2xyLWlucHV0fi5jbHItc3VidGV4dHttYXJnaW4tbGVmdDp2YXIoLS1jbHItZm9ybXMtYmFzZWxpbmUpfS5jbHItZm9ybS1jb250cm9sLXJlYWRvbmx5IC5jbHItaW5wdXR7Ym9yZGVyOjB9LmNsci1mb3JtLWNvbnRyb2wtbXVsdGkgLmNsci1pbnB1dHttYXgtd2lkdGg6Y2Fs'@; put 'YygxMDAlICsgdmFyKC0tY2xyLWZvcm1zLWljb24tc2l6ZSkpfTo6cGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXBsYWNlaG9sZGVyLWNvbG9yKX0uY2xyLWlucHV0LWdyb3Vwe2NvbG9yOnZhcigtLWNsci1mb3Jtcy10ZXh0LWNvbG9yKTtib3JkZXItYm90dG9tOnZhcigtLWNk'@; put 'cy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTEwMCkgc29saWQgdmFyKC0tY2xyLWZvcm1zLWJvcmRlci1jb2xvcik7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLHRyYW5zcGFyZW50IDk1JSx2YXIo'@; put 'LS1jbHItZm9ybXMtZm9jdXNlZC1jb2xvcikgOTUlKSBuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjAgMTAwJTt0cmFuc2l0aW9uOmJhY2tncm91bmQtc2l6ZSAuMnMgZWFzZTtwb3NpdGlvbjpyZWxhdGl2ZTttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OnZhcigtLWNsci1mb3Jtcy1pbnB1'@; put 'dC13cmFwcGVyLWhlaWdodCl9LmNsci1pbnB1dC1ncm91cDpmb2N1cywuY2xyLWlucHV0LWdyb3VwLmNsci1mb2N1cywuY2xyLWlucHV0LWdyb3VwOmZvY3VzLXdpdGhpbntib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1mb2N1c2VkLWNvbG9yKTtiYWNrZ3JvdW5kLXNpemU6'@; put 'MTAwJSAxMDAlfS5jbHItaW5wdXQtZ3JvdXAuY2xyLWZvY3Vze3dpZHRoOmF1dG99LmNsci1pbnB1dC1ncm91cCAuY2xyLWlucHV0e2JhY2tncm91bmQ6MCAwO2JvcmRlcjowO21hcmdpbi1yaWdodDowO21heC13aWR0aDoxMDAlfS5jbHItaW5wdXQtZ3JvdXAgLmNsci1pbnB1dDpub3QoW3Jl'@; put 'YWRvbmx5XSk6Zm9jdXN7YmFja2dyb3VuZC1zaXplOjA7Ym9yZGVyOjB9LmNsci1pbnB1dC1ncm91cCBzZWxlY3QsLmNsci1pbnB1dC1ncm91cCAuY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdCwuY2xyLWlucHV0LWdyb3VwIC5jbHItbXVsdGlzZWxlY3Qtd3JhcHBlciBzZWxlY3R7Ym9yZGVy'@; put 'OjB9LmNsci1pbnB1dC1ncm91cCAuY2xyLWlucHV0LWdyb3VwLWFkZG9ue2NvbG9yOnZhcigtLWNsci1mb3Jtcy1zdWJ0ZXh0LWNvbG9yKX0uY2xyLWlucHV0LWdyb3VwIC5jbHItaW5wdXQtZ3JvdXAtYWN0aW9uc3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0uY2xy'@; put 'LWlucHV0LWdyb3VwIC5jbHItaW5wdXQtZ3JvdXAtaWNvbi1hY3Rpb257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7LW1zLWFwcGVhcmFuY2U6bm9uZTstby1hcHBlYXJhbmNlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjowO2JvcmRlci1yYWRp'@; put 'dXM6MDtib3gtc2hhZG93Om5vbmU7YmFja2dyb3VuZDowIDA7cGFkZGluZzowIGNhbGMoMS41KnZhcigtLWNsci1mb3Jtcy1iYXNlbGluZSkpO2N1cnNvcjpwb2ludGVyfWJ1dHRvbi5jbHItaW5wdXQtZ3JvdXAgLmNsci1pbnB1dC1ncm91cC1pY29uLWFjdGlvbntjdXJzb3I6cG9pbnRlcn0u'@; put 'Y2xyLWlucHV0LWdyb3VwIC5jbHItaW5wdXQtZ3JvdXAtaWNvbi1hY3Rpb24gY2RzLWljb24sLmNsci1pbnB1dC1ncm91cCAuY2xyLWlucHV0LWdyb3VwLWljb24tYWN0aW9uIGNsci1pY29ue2ZpbGw6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvcik7aGVpZ2h0OnZh'@; put 'cigtLWNsci1mb3Jtcy1pbnB1dC1ncm91cC1pY29uLWFjdGlvbi1zaXplKTt3aWR0aDp2YXIoLS1jbHItZm9ybXMtaW5wdXQtZ3JvdXAtaWNvbi1hY3Rpb24tc2l6ZSk7dHJhbnNmb3JtOnRyYW5zbGF0ZShjYWxjKC0xKnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSkpLGNhbGMoLTEqdmFyKC0t'@; put 'Y2RzLWdsb2JhbC1zcGFjZS0xKSkpfS5jbHItZXJyb3IgLmNsci1pbnB1dC1ncm91cHtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1pbnZhbGlkLWNvbG9yKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sdHJhbnNwYXJlbnQgOTUlLHZhcigtLWNsci1m'@; put 'b3Jtcy1pbnZhbGlkLWNvbG9yKSA5NSUpIG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6MCAxMDAlO3RyYW5zaXRpb246YmFja2dyb3VuZC1zaXplIC4ycyBlYXNlfS5jbHItZXJyb3IgLmNsci1pbnB1dC1ncm91cDpmb2N1cywuY2xyLWVycm9yIC5jbHItaW5wdXQtZ3JvdXAuY2xyLWZvY3Vz'@; put 'LC5jbHItZXJyb3IgLmNsci1pbnB1dC1ncm91cDpmb2N1cy13aXRoaW57Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItZm9ybXMtaW52YWxpZC1jb2xvcik7YmFja2dyb3VuZC1zaXplOjEwMCUgMTAwJX0uY2xyLXN1Y2Nlc3MgLmNsci1pbnB1dC1ncm91cHtib3JkZXItYm90dG9tLWNv'@; put 'bG9yOnZhcigtLWNsci1mb3Jtcy12YWxpZC1jb2xvcik7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLHRyYW5zcGFyZW50IDk1JSx2YXIoLS1jbHItZm9ybXMtdmFsaWQtY29sb3IpIDk1JSkgbm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTowIDEwMCU7dHJhbnNpdGlvbjpi'@; put 'YWNrZ3JvdW5kLXNpemUgLjJzIGVhc2V9LmNsci1zdWNjZXNzIC5jbHItaW5wdXQtZ3JvdXA6Zm9jdXMsLmNsci1zdWNjZXNzIC5jbHItaW5wdXQtZ3JvdXAuY2xyLWZvY3VzLC5jbHItc3VjY2VzcyAuY2xyLWlucHV0LWdyb3VwOmZvY3VzLXdpdGhpbntib3JkZXItYm90dG9tLWNvbG9yOnZh'@; put 'cigtLWNsci1mb3Jtcy12YWxpZC1jb2xvcik7YmFja2dyb3VuZC1zaXplOjEwMCUgMTAwJX0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xyLWlucHV0LWdyb3Vwe2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWZvcm1zLWJvcmRlci1kaXNhYmxlZC1jb2xvcil9LmNsci1mb3Jt'@; put 'LWNvbnRyb2wtZGlzYWJsZWQgLmNsci1pbnB1dC1ncm91cC1pY29uLWFjdGlvbntjb2xvcjp2YXIoLS1jbHItZm9ybXMtdGV4dC1kaXNhYmxlZC1jb2xvcik7Y3Vyc29yOm5vdC1hbGxvd2VkfS5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIC5jbHItaW5wdXQtZ3JvdXAtaWNvbi1hY3Rpb24g'@; put 'Y2RzLWljb257ZmlsbDp2YXIoLS1jbHItZm9ybXMtaW5wdXQtZ3JvdXAtaWNvbi1kaXNhYmxlZC1jb2xvcil9LmNsci1pbnB1dC1ncm91cDpoYXMoaW5wdXRbcmVhZG9ubHldKSwuY2xyLWZvcm0tY29udHJvbC1yZWFkb25seSAuY2xyLWlucHV0LWdyb3Vwe2JvcmRlcjowO2JhY2tncm91bmQ6'@; put 'MCAwfS5jbHItaW5wdXQtZ3JvdXA6aGFzKGlucHV0W3JlYWRvbmx5XSkgLmNsci1pbnB1dC1ncm91cC1hY3Rpb25zLC5jbHItZm9ybS1jb250cm9sLXJlYWRvbmx5IC5jbHItaW5wdXQtZ3JvdXAgLmNsci1pbnB1dC1ncm91cC1hY3Rpb25ze2Rpc3BsYXk6bm9uZX0uY2xyLWZvcm0taG9yaXpv'@; put 'bnRhbCAuY2xyLWlucHV0LWdyb3Vwe21heC13aWR0aDoxMDAlO3BhZGRpbmctcmlnaHQ6MH0uY2xyLXJhZGlvLXdyYXBwZXIgaW5wdXRbdHlwZT1yYWRpb117LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7LW1zLWFwcGVhcmFuY2U6bm9uZTstby1hcHBlYXJh'@; put 'bmNlOm5vbmV9LmNsci1yYWRpby13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LmNsci1yYWRpby13cmFwcGVyIC5jbHItY29udHJvbC1sYWJlbHtmb250LXdlaWdodDo0MDA7ZGlzcGxheTpibG9ja30uY2xyLXJhZGlvLXdyYXBwZXJ+'@; put 'LmNsci12YWxpZGF0ZS1pY29ue21hcmdpbi1sZWZ0OjB9LmNsci1yYWRpby13cmFwcGVyfi5jbHItc3VidGV4dHtkaXNwbGF5OmlubGluZS1ibG9ja30uY2xyLXJhZGlvLXdyYXBwZXIgaW5wdXRbdHlwZT1yYWRpb117cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwt'@; put 'c3BhY2UtOSk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTttaW4taGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSk7bWluLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSk7Ym9yZGVyLXJhZGl1czo1MCU7cGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTMp'@; put 'IDB9LmNsci1yYWRpby13cmFwcGVyIGlucHV0W3R5cGU9cmFkaW9dOm5vdCg6ZGlzYWJsZWQpe2N1cnNvcjpwb2ludGVyfS5jbHItcmFkaW8td3JhcHBlciBpbnB1dFt0eXBlPXJhZGlvXTpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmlubGluZS1ibG9jazto'@; put 'ZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTt3aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpO2JvcmRlcjouMDVyZW0gc29saWQgdmFyKC0tY2xyLWZvcm1zLWJvcmRlci1jb2xvcik7Ym9yZGVyLXJhZGl1czo1MCV9LmNsci1yYWRpby13cmFwcGVyIGlucHV0W3R5cGU9cmFk'@; put 'aW9dOmNoZWNrZWQ6YmVmb3Jle2JvcmRlcjowO2JveC1zaGFkb3c6dmFyKC0tY2xyLWZvcm1zLXJhZGlvLXNlbGVjdGVkLXNoYWRvdyl9LmNsci1yYWRpby13cmFwcGVyIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQ6ZGlzYWJsZWQ6YmVmb3Jle2JveC1zaGFkb3c6dmFyKC0tY2xyLWZvcm1z'@; put 'LXJhZGlvLWNoZWNrZWQtZGlzYWJsZWQtc2hhZG93KX0uY2xyLXJhZGlvLXdyYXBwZXIgaW5wdXRbdHlwZT1yYWRpb106Zm9jdXN7b3V0bGluZTowfS5jbHItcmFkaW8td3JhcHBlciBpbnB1dFt0eXBlPXJhZGlvXTpmb2N1czpiZWZvcmV7b3V0bGluZTp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0'@; put 'LWludGVyYWN0aW9uLW91dGxpbmUpO291dGxpbmUtY29sb3I6LXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO291dGxpbmUtb2Zmc2V0OmNhbGMoMyooMXJlbS92YXIoLS1jZHMtZ2xvYmFsLWJhc2UpKSl9LmNsci1yYWRpby13cmFwcGVyIGlucHV0W3R5cGU9cmFkaW9dOmRpc2FibGVkK2xhYmVs'@; put 'e2N1cnNvcjpub3QtYWxsb3dlZDtjb2xvcjp2YXIoLS1jbHItZm9ybXMtcmFkaW8tbGFiZWwtZGlzYWJsZWQtY29sb3IpfS5jbHItcmFkaW8td3JhcHBlciBpbnB1dFt0eXBlPXJhZGlvXTpkaXNhYmxlZDpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZm9ybXMtcmFkaW8tZGlz'@; put 'YWJsZWQtYmFja2dyb3VuZC1jb2xvcik7Ym9yZGVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tY29sb3ItZGlzYWJsZWQpfS5jbHItcmFkaW8td3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jazttYXJnaW4t'@; put 'dG9wOjA7Y3Vyc29yOnBvaW50ZXI7bWluLWhlaWdodDpjYWxjKHZhcigtLWNsci1mb3Jtcy1iYXNlbGluZSkqNCk7cGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTMpIDA7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXJhZGlvLWxhYmVsLWNvbG9yKTtmb250LXNpemU6dmFyKC0tY2RzLWFs'@; put 'aWFzLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWNvbmRhcnktbGluZS1oZWlnaHQpO2xldHRl'@; put 'ci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFyeS1sZXR0ZXItc3BhY2luZyl9LmNsci1yYWRpby13cmFwcGVyIC5jbHItY29udHJvbC1sYWJlbDplbXB0eXtwYWRkaW5nLWxlZnQ6MH0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xyLXJhZGlvLXdyYXBw'@; put 'ZXIgLmNsci1jb250cm9sLWxhYmVse2N1cnNvcjpub3QtYWxsb3dlZDtjb2xvcjp2YXIoLS1jbHItZm9ybXMtcmFkaW8tbGFiZWwtZGlzYWJsZWQtY29sb3IpfS5jbHItZXJyb3IgLmNsci1yYWRpby13cmFwcGVyIGlucHV0W3R5cGU9cmFkaW9dOmJlZm9yZXtib3JkZXItY29sb3I6dmFyKC0t'@; put 'Y2xyLWZvcm1zLWludmFsaWQtY29sb3IpfS5jbHItZm9ybS1jb21wYWN0IC5jbHItcmFkaW8td3JhcHBlcnttYXgtd2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7bWluLWhlaWdodDpjYWxjKDQqdmFyKC0tY2xyLWZvcm1zLWJhc2VsaW5lKSl9LmNsci1mb3JtLWNvbXBhY3QgLmNsci1yYWRpby13'@; put 'cmFwcGVyfi5jbHItc3VidGV4dHttYXJnaW4tbGVmdDp2YXIoLS1jbHItZm9ybXMtYmFzZWxpbmUpfS5jbHItZm9ybS1jb21wYWN0IC5jbHItcmFkaW8td3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0OmNhbGMoMip2YXIoLS1jbHIt'@; put 'Zm9ybXMtYmFzZWxpbmUpKTt3aWR0aDphdXRvfS5jbHItZm9ybS1jb21wYWN0IC5jbHItcmFkaW8td3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7bWFyZ2luLXRvcDowfS5jbHItc2VsZWN0LXdyYXBwZXIsLmNsci1tdWx0aXNlbGVjdC13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO3doaXRl'@; put 'LXNwYWNlOm5vd3JhcH0uY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdCwuY2xyLW11bHRpc2VsZWN0LXdyYXBwZXIgc2VsZWN0ey13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lO21hcmdpbjow'@; put 'O3BhZGRpbmc6MDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQ6MCAwO2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpO2NvbG9yOnZhcigtLWNsci1mb3Jtcy10ZXh0LWNvbG9yKTtib3JkZXItYm90dG9tOnZhcigtLWNkcy1hbGlhcy1v'@; put 'YmplY3QtYm9yZGVyLXdpZHRoLTEwMCkgc29saWQgdmFyKC0tY2xyLWZvcm1zLWJvcmRlci1jb2xvcik7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Zm9udC1zaXplOnZhcigtLWNsci1wMi1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBv'@; put 'Z3JhcGh5LXNlY29uZGFyeS1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWNvbmRhcnktbGV0dGVyLXNwYWNpbmcpO3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MCBj'@; put 'YWxjKHZhcigtLWNsci1mb3Jtcy1zZWxlY3QtY2FyZXQtc2l6ZSkgKyB2YXIoLS1jbHItZm9ybXMtYmFzZWxpbmUpKjIpIDAgdmFyKC0tY2xyLWZvcm1zLWJhc2VsaW5lKTtjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjJ9LmNsci1zZWxlY3Qtd3JhcHBlciBzZWxlY3Q6Zm9jdXMsLmNsci1tdWx0'@; put 'aXNlbGVjdC13cmFwcGVyIHNlbGVjdDpmb2N1c3tvdXRsaW5lOjB9LmNsci1zZWxlY3Qtd3JhcHBlciBzZWxlY3Q6bm90KFttdWx0aXBsZV0pLC5jbHItbXVsdGlzZWxlY3Qtd3JhcHBlciBzZWxlY3Q6bm90KFttdWx0aXBsZV0pe2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRv'@; put 'bSx0cmFuc3BhcmVudCA5NSUsdmFyKC0tY2xyLWZvcm1zLWZvY3VzZWQtY29sb3IpIDk1JSkgbm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTowIDEwMCU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLXNpemUgLjJzIGVhc2V9LmNsci1zZWxlY3Qtd3JhcHBlciBzZWxlY3Q6bm90KFttdWx0aXBsZV0p'@; put 'OmZvY3VzLC5jbHItc2VsZWN0LXdyYXBwZXIgc2VsZWN0Om5vdChbbXVsdGlwbGVdKS5jbHItZm9jdXMsLmNsci1zZWxlY3Qtd3JhcHBlciBzZWxlY3Q6bm90KFttdWx0aXBsZV0pOmZvY3VzLXdpdGhpbiwuY2xyLW11bHRpc2VsZWN0LXdyYXBwZXIgc2VsZWN0Om5vdChbbXVsdGlwbGVdKTpm'@; put 'b2N1cywuY2xyLW11bHRpc2VsZWN0LXdyYXBwZXIgc2VsZWN0Om5vdChbbXVsdGlwbGVdKS5jbHItZm9jdXMsLmNsci1tdWx0aXNlbGVjdC13cmFwcGVyIHNlbGVjdDpub3QoW211bHRpcGxlXSk6Zm9jdXMtd2l0aGlue2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWZvcm1zLWZvY3Vz'@; put 'ZWQtY29sb3IpO2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCV9LmNsci1zZWxlY3Qtd3JhcHBlciBzZWxlY3RbbXVsdGlwbGVdOmZvY3VzLC5jbHItbXVsdGlzZWxlY3Qtd3JhcHBlciBzZWxlY3RbbXVsdGlwbGVdOmZvY3Vze291dGxpbmUtY29sb3I6SGlnaGxpZ2h0O291dGxpbmUtY29sb3I6'@; put 'LXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO291dGxpbmUtc3R5bGU6YXV0bztvdXRsaW5lLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMil9LmNsci1zZWxlY3Qtd3JhcHBlciBzZWxlY3Q6aG92ZXIsLmNsci1zZWxlY3Qtd3JhcHBlciBzZWxlY3Q6YWN0aXZlLC5jbHItbXVsdGlzZWxl'@; put 'Y3Qtd3JhcHBlciBzZWxlY3Q6aG92ZXIsLmNsci1tdWx0aXNlbGVjdC13cmFwcGVyIHNlbGVjdDphY3RpdmV7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1zZWxlY3QtaG92ZXItYm9yZGVyLWNvbG9yKTtiYWNrZ3JvdW5kOnZhcigtLWNsci1mb3Jtcy1zZWxlY3QtaG92ZXItYmFja2dy'@; put 'b3VuZCl9LmNsci1zZWxlY3Qtd3JhcHBlciBzZWxlY3Q6aG92ZXI6ZGlzYWJsZWQsLmNsci1zZWxlY3Qtd3JhcHBlciBzZWxlY3Q6YWN0aXZlOmRpc2FibGVkLC5jbHItbXVsdGlzZWxlY3Qtd3JhcHBlciBzZWxlY3Q6aG92ZXI6ZGlzYWJsZWQsLmNsci1tdWx0aXNlbGVjdC13cmFwcGVyIHNl'@; put 'bGVjdDphY3RpdmU6ZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2VkO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZm9ybXMtc2VsZWN0LWRpc2FibGVkLWJvcmRlci1jb2xvcil9LmNsci1zZWxlY3Qtd3JhcHBlciBzZWxlY3Q6ZGlzYWJsZWQgb3B0aW9uLC5jbHItc2VsZWN0LXdyYXBwZXIgc2Vs'@; put 'ZWN0IG9wdGlvbjpkaXNhYmxlZCwuY2xyLW11bHRpc2VsZWN0LXdyYXBwZXIgc2VsZWN0OmRpc2FibGVkIG9wdGlvbiwuY2xyLW11bHRpc2VsZWN0LXdyYXBwZXIgc2VsZWN0IG9wdGlvbjpkaXNhYmxlZHtjb2xvcjp2YXIoLS1jbHItZm9ybXMtc2VsZWN0LWRpc2FibGVkLWNvbG9yKTtjdXJz'@; put 'b3I6bm90LWFsbG93ZWR9LmNsci1zZWxlY3Qtd3JhcHBlciBzZWxlY3Qgb3B0aW9uLC5jbHItbXVsdGlzZWxlY3Qtd3JhcHBlciBzZWxlY3Qgb3B0aW9ue2NvbG9yOnZhcigtLWNsci1mb3Jtcy1zZWxlY3Qtb3B0aW9uLWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1z'@; put 'ZWxlY3Qtb3B0aW9uLWJhY2tncm91bmQtY29sb3IpfS5jbHItc2VsZWN0LXdyYXBwZXIgc2VsZWN0OjotbXMtZXhwYW5kLC5jbHItbXVsdGlzZWxlY3Qtd3JhcHBlciBzZWxlY3Q6Oi1tcy1leHBhbmR7ZGlzcGxheTpub25lfS5jbHItc2VsZWN0LXdyYXBwZXJ7bWF4LWhlaWdodDpjYWxjKDQq'@; put 'dmFyKC0tY2xyLWZvcm1zLWJhc2VsaW5lKSk7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmNsci1zZWxlY3Qtd3JhcHBlcjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OiIiO2hlaWdodDp2YXIoLS1jbHItZm9ybXMtc2VsZWN0LWNhcmV0LXNpemUpO3dpZHRoOnZhcigtLWNsci1mb3Jt'@; put 'cy1zZWxlY3QtY2FyZXQtc2l6ZSk7dG9wOmNhbGMoLjUqKDQqdmFyKC0tY2xyLWZvcm1zLWJhc2VsaW5lKSAtIHZhcigtLWNsci1mb3Jtcy1zZWxlY3QtY2FyZXQtc2l6ZSkpKTtyaWdodDp2YXIoLS1jbHItZm9ybXMtYmFzZWxpbmUpO21hcmdpbjowO21hc2s6dXJsKGRhdGE6aW1hZ2Uvc3Zn'@; put 'K3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxMiUyMDEyJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy'@; put 'MCUzQ3N0eWxlJTNFLmNscy0xJTdCZmlsbCUzQSUyMzlhOWE5YSUzQiU3RCUzQyUyRnN0eWxlJTNFJTBBJTIwJTIwJTIwJTIwJTNDJTJGZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUzQ3RpdGxlJTNFQ2FyZXQlM0MlMkZ0aXRsZSUzRSUwQSUyMCUyMCUyMCUyMCUzQ3BhdGglMjBjbGFzcyUzRCUy'@; put 'MmNscy0xJTIyJTIwZCUzRCUyMk02JTJDOUwxLjIlMkM0LjJhMC42OCUyQzAuNjglMkMwJTJDMCUyQzElMkMxLTFMNiUyQzcuMDglMkM5Ljg0JTJDMy4yNGEwLjY4JTJDMC42OCUyQzAlMkMxJTJDMSUyQzElMkMxWiUyMiUyRiUzRSUwQSUzQyUyRnN2ZyUzRSUwQSk7LXdlYmtpdC1tYXNrLXJl'@; put 'cGVhdDpuby1yZXBlYXQ7bWFzay1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXNlbGVjdC1jYXJldC1jb2xvcil9LmNsci1zZWxlY3Qtd3JhcHBlcjpob3ZlcjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1zZWxlY3QtY2Fy'@; put 'ZXQtaG92ZXItY29sb3IpfS5jbHItZXJyb3IgLmNsci1zZWxlY3Qtd3JhcHBlcjphZnRlciwuY2xyLXN1Y2Nlc3MgLmNsci1zZWxlY3Qtd3JhcHBlcjphZnRlcntyaWdodDpjYWxjKHZhcigtLWNsci1mb3Jtcy1pY29uLXNpemUpICsgdmFyKC0tY2xyLWZvcm1zLWJhc2VsaW5lKSl9LmNsci1t'@; put 'dWx0aXNlbGVjdC13cmFwcGVye2Rpc3BsYXk6ZmxleH0uY2xyLW11bHRpc2VsZWN0LXdyYXBwZXIgLmNsci12YWxpZGF0ZS1pY29ue21hcmdpbi1sZWZ0OjB9c2VsZWN0W211bHRpcGxlXSxzZWxlY3Rbc2l6ZV17cGFkZGluZzowO2JvcmRlcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRl'@; put 'ci13aWR0aC0xMDApIHNvbGlkIHZhcigtLWNsci1mb3Jtcy1zZWxlY3QtbXVsdGlwbGUtYm9yZGVyLWNvbG9yKTtiYWNrZ3JvdW5kOnZhcigtLWNsci1mb3Jtcy1zZWxlY3QtbXVsdGlwbGUtYmFja2dyb3VuZC1jb2xvcik7Ym9yZGVyLXJhZGl1czp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJv'@; put 'cmRlci1yYWRpdXMtMTAwKTtoZWlnaHQ6YXV0bzttaW4td2lkdGg6Y2FsYygxMjAqKDFyZW0vdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpfXNlbGVjdFttdWx0aXBsZV06aG92ZXIsc2VsZWN0W211bHRpcGxlXTphY3RpdmUsc2VsZWN0W3NpemVdOmhvdmVyLHNlbGVjdFtzaXplXTphY3RpdmV7'@; put 'YmFja2dyb3VuZDp2YXIoLS1jbHItZm9ybXMtc2VsZWN0LW11bHRpcGxlLWJhY2tncm91bmQtY29sb3IpO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZm9ybXMtc2VsZWN0LW11bHRpcGxlLWJvcmRlci1jb2xvcil9c2VsZWN0W211bHRpcGxlXSBvcHRpb24sc2VsZWN0W3NpemVdIG9wdGlvbntw'@; put 'YWRkaW5nOmNhbGModmFyKC0tY2xyLWZvcm1zLWJhc2VsaW5lKSouNSkgdmFyKC0tY2xyLWZvcm1zLWJhc2VsaW5lKTtjb2xvcjp2YXIoLS1jbHItZm9ybXMtc2VsZWN0LW11bHRpcGxlLW9wdGlvbi1jb2xvcil9c2VsZWN0W211bHRpcGxlXSBvcHRpb246Y2hlY2tlZCxzZWxlY3Rbc2l6ZV0g'@; put 'b3B0aW9uOmNoZWNrZWR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZm9ybXMtc2VsZWN0LW11bHRpcGxlLXNlbGVjdGVkLW9wdGlvbi1iYWNrZ3JvdW5kLWNvbG9yKX0uY2xyLWVycm9yIHNlbGVjdDpub3QoW211bHRpcGxlXSl7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItZm9y'@; put 'bXMtaW52YWxpZC1jb2xvcik7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLHRyYW5zcGFyZW50IDk1JSx2YXIoLS1jbHItZm9ybXMtaW52YWxpZC1jb2xvcikgOTUlKSBuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjAgMTAwJTt0cmFuc2l0aW9uOmJhY2tncm91bmQtc2l6'@; put 'ZSAuMnMgZWFzZX0uY2xyLWVycm9yIHNlbGVjdDpub3QoW211bHRpcGxlXSk6Zm9jdXMsLmNsci1lcnJvciBzZWxlY3Q6bm90KFttdWx0aXBsZV0pLmNsci1mb2N1cywuY2xyLWVycm9yIHNlbGVjdDpub3QoW211bHRpcGxlXSk6Zm9jdXMtd2l0aGlue2JvcmRlci1ib3R0b20tY29sb3I6dmFy'@; put 'KC0tY2xyLWZvcm1zLWludmFsaWQtY29sb3IpO2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCV9LmNsci1lcnJvciBzZWxlY3RbbXVsdGlwbGVde2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZm9ybXMtaW52YWxpZC1jb2xvcil9LmNsci1zdWNjZXNzIHNlbGVjdDpub3QoW211bHRpcGxlXSl7Ym9y'@; put 'ZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItZm9ybXMtdmFsaWQtY29sb3IpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSx0cmFuc3BhcmVudCA5NSUsdmFyKC0tY2xyLWZvcm1zLXZhbGlkLWNvbG9yKSA5NSUpIG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6MCAxMDAl'@; put 'O3RyYW5zaXRpb246YmFja2dyb3VuZC1zaXplIC4ycyBlYXNlfS5jbHItc3VjY2VzcyBzZWxlY3Q6bm90KFttdWx0aXBsZV0pOmZvY3VzLC5jbHItc3VjY2VzcyBzZWxlY3Q6bm90KFttdWx0aXBsZV0pLmNsci1mb2N1cywuY2xyLXN1Y2Nlc3Mgc2VsZWN0Om5vdChbbXVsdGlwbGVdKTpmb2N1'@; put 'cy13aXRoaW57Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItZm9ybXMtdmFsaWQtY29sb3IpO2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCV9LmNsci1zdWNjZXNzIHNlbGVjdFttdWx0aXBsZV17Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1mb3Jtcy12YWxpZC1jb2xvcil9LmNsci1mb3Jt'@; put 'LWNvbnRyb2wtZGlzYWJsZWQgLmNsci1zZWxlY3QuZGlzYWJsZWR7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXNlbGVjdC1kaXNhYmxlZC1jb2xvcik7Y3Vyc29yOm5vdC1hbGxvd2VkfS5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIC5jbHItc2VsZWN0LmRpc2FibGVkOmhvdmVyOmFmdGVye2Nv'@; put 'bG9yOnZhcigtLWNsci1mb3Jtcy1zZWxlY3QtY2FyZXQtY29sb3IpfS5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIC5jbHItc2VsZWN0LmRpc2FibGVkPnNlbGVjdCwuY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xyLXNlbGVjdCBzZWxlY3Q6ZGlzYWJsZWR7Y29sb3I6dmFyKC0tY2xy'@; put 'LWZvcm1zLXNlbGVjdC1kaXNhYmxlZC1jb2xvcik7Y3Vyc29yOm5vdC1hbGxvd2VkfS5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIC5jbHItc2VsZWN0LmRpc2FibGVkPnNlbGVjdDpob3ZlciwuY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xyLXNlbGVjdCBzZWxlY3Q6ZGlzYWJsZWQ6'@; put 'aG92ZXJ7YmFja2dyb3VuZDowIDA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1ib3JkZXItY29sb3IpfS5jbHItZm9ybS1jb21wYWN0IC5jbHItbXVsdGlzZWxlY3Qtd3JhcHBlcnttYXJnaW4tdG9wOjB9LmNsci10ZXh0YXJlYS13cmFwcGVye3doaXRlLXNwYWNlOm5vd3JhcDtkaXNw'@; put 'bGF5OmZsZXg7bWFyZ2luLXRvcDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpfS5jbHItdGV4dGFyZWEtd3JhcHBlciAuY2xyLXZhbGlkYXRlLWljb257bWFyZ2luLWxlZnQ6MH0uY2xyLXRleHRhcmVhe21heC13aWR0aDpjYWxjKDEwMCUgLSB2YXIoLS1jbHItZm9ybXMtYmFzZWxpbmUpKTto'@; put 'ZWlnaHQ6YXV0bztyZXNpemU6dmVydGljYWw7Ym9yZGVyOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTEwMCkgc29saWQgdmFyKC0tY2xyLWZvcm1zLWJvcmRlci1jb2xvcik7YmFja2dyb3VuZDp2YXIoLS1jbHItZm9ybXMtdGV4dGFyZWEtYmFja2dyb3VuZC1jb2xvcik7'@; put 'Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHQtY29sb3IpO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWZvcm1zLXRleHRhcmVhLWJvcmRlci1yYWRpdXMpO3BhZGRpbmc6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTtmb250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2Vjb25k'@; put 'YXJ5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDpjYWxjKDIwKigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtYWxpYXMtdHlwb2dy'@; put 'YXBoeS1zZWNvbmRhcnktbGV0dGVyLXNwYWNpbmcpfS5jbHItdGV4dGFyZWE6Zm9jdXN7b3V0bGluZS1jb2xvcjpIaWdobGlnaHQ7b3V0bGluZS1jb2xvcjotd2Via2l0LWZvY3VzLXJpbmctY29sb3I7b3V0bGluZS1zdHlsZTphdXRvO291dGxpbmUtd2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1z'@; put 'cGFjZS0yKTtvdXRsaW5lLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1mb2N1c2VkLWNvbG9yKTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWZvcm1zLWZvY3VzZWQtY29sb3IpfS5jbHItdGV4dGFyZWE6ZGlzYWJsZWR7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHQtZGlzYWJsZWQtY29sb3IpO2N1'@; put 'cnNvcjpub3QtYWxsb3dlZDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy10ZXh0YXJlYS1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWZvcm1zLWJvcmRlci1kaXNhYmxlZC1jb2xvcil9LmNsci1zdWNjZXNzIC5jbHItdGV4dGFyZWF7Ym9yZGVy'@; put 'LWNvbG9yOnZhcigtLWNsci1mb3Jtcy12YWxpZC1jb2xvcik7b3V0bGluZS1jb2xvcjp2YXIoLS1jbHItZm9ybXMtdmFsaWQtY29sb3IpfS5jbHItZXJyb3IgLmNsci10ZXh0YXJlYXtib3JkZXItY29sb3I6dmFyKC0tY2xyLWZvcm1zLWludmFsaWQtY29sb3IpO291dGxpbmUtY29sb3I6dmFy'@; put 'KC0tY2xyLWZvcm1zLWludmFsaWQtY29sb3IpfS5jbHItY29udHJvbC1jb250YWluZXIgdGV4dGFyZWF7d2lkdGg6YXV0b30uY2xyLWZvcm0tY29udHJvbC5yb3cgLmNsci10ZXh0YXJlYS13cmFwcGVye21heC13aWR0aDpjYWxjKDEwMCUgLSB2YXIoLS1jbHItZm9ybXMtYmFzZWxpbmUpKX0u'@; put 'Y2xyLWZvcm0tY29tcGFjdCAuY2xyLXRleHRhcmVhLXdyYXBwZXJ7bWFyZ2luLXRvcDowfS5jbHItZm9ybS1jb21wYWN0IC5jbHItdGV4dGFyZWEtd3JhcHBlciAuY2xyLXRleHRhcmVhe21heC13aWR0aDoxMDAlfS5jbHItZm9ybS1jb21wYWN0IC5jbHItdGV4dGFyZWEtd3JhcHBlciAuY2xy'@; put 'LXRleHRhcmVhfi5jbHItc3VidGV4dHttYXJnaW4tbGVmdDp2YXIoLS1jbHItZm9ybXMtYmFzZWxpbmUpfTpyb290IFtjZHMtdGhlbWVdey0tY2xyLXRvZ2dsZS1iZy1jb2xvci1vZmY6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1uZXV0cmFsKTstLWNsci10b2dnbGUtYmctY29sb3Itb246dmFy'@; put 'KC0tY2RzLWFsaWFzLXN0YXR1cy1zdWNjZXNzKTstLWNsci10b2dnbGUtaGFuZGxlLWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZCk7LS1jbHItdG9nZ2xlLWhhbmRsZS1ib3JkZXItY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1iZy1jb2xvci1v'@; put 'ZmYpOy0tY2xyLXRvZ2dsZS1oYW5kbGUtYm9yZGVyLWNvbG9yLW9uOnZhcigtLWNsci10b2dnbGUtYmctY29sb3Itb24pOy0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1kZWZhdWx0LWJvcmRlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yLWRpc2FibGVkKTst'@; put 'LWNsci10b2dnbGUtZGlzYWJsZWQtZGVmYXVsdC1oYW5kbGUtY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kKTstLWNsci10b2dnbGUtZGlzYWJsZWQtb2ZmLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2FibGVkLWRlZmF1bHQtYm9y'@; put 'ZGVyLWNvbG9yKTstLWNsci10b2dnbGUtZGlzYWJsZWQtb2ZmLWJnLWNvbG9yOnZhcigtLWNsci10b2dnbGUtZGlzYWJsZWQtZGVmYXVsdC1oYW5kbGUtY29sb3IpOy0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1vZmYtaGFuZGxlLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2FibGVk'@; put 'LWRlZmF1bHQtYm9yZGVyLWNvbG9yKTstLWNsci10b2dnbGUtZGlzYWJsZWQtb24tYm9yZGVyLWNvbG9yOnZhcigtLWNsci10b2dnbGUtZGlzYWJsZWQtZGVmYXVsdC1ib3JkZXItY29sb3IpOy0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1vbi1iZy1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2Fi'@; put 'bGVkLWRlZmF1bHQtYm9yZGVyLWNvbG9yKTstLWNsci10b2dnbGUtZGlzYWJsZWQtb24taGFuZGxlLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2FibGVkLWRlZmF1bHQtYm9yZGVyLWNvbG9yKX0uY2xyLXRvZ2dsZS13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdey13ZWJr'@; put 'aXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lfS5jbHItdG9nZ2xlLXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjttYXJnaW4tcmlnaHQ6dmFy'@; put 'KC0tY2RzLWdsb2JhbC1zcGFjZS02KTtoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTtqdXN0aWZ5LWNvbnRlbnQ6c3RhcnQ7Z2FwOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSl9LmNsci10b2dnbGUtd3JhcHBlciBsYWJlbHtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpy'@; put 'ZWxhdGl2ZTtjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTtmbGV4OjEgMSBhdXRvfS5jbHItdG9nZ2xlLXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF17cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7d2lk'@; put 'dGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMCk7ZmxleDowIDAgYXV0bztib3JkZXItcmFkaXVzOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXJhZGl1cy0yMDApfS5jbHItdG9nZ2xlLXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06bm90KDpkaXNhYmxlZCl7Y3Vyc29yOnBv'@; put 'aW50ZXJ9LmNsci10b2dnbGUtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29udGVudDoiIjtib3JkZXI6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMjAwKSBzb2xpZCB2YXIoLS1j'@; put 'bHItdG9nZ2xlLWJnLWNvbG9yLW9mZik7Ym9yZGVyLXJhZGl1czp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1yYWRpdXMtMjAwKTtoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTt3aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEwKTtiYWNrZ3JvdW5kLWNvbG9yOnZh'@; put 'cigtLWNsci10b2dnbGUtYmctY29sb3Itb2ZmKTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbjt0cmFuc2l0aW9uLXByb3BlcnR5OmJvcmRlci1jb2xvcixiYWNrZ3JvdW5kLWNvbG9yfS5jbHItdG9nZ2xlLXdyYXBwZXIgaW5wdXRb'@; put 'dHlwZT1jaGVja2JveF06YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29udGVudDoiIjtib3JkZXI6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMjAwKSBzb2xpZCB2YXIoLS1jbHItdG9nZ2xlLWhhbmRsZS1ib3JkZXItY29sb3IpO2Jv'@; put 'cmRlci1yYWRpdXM6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItcmFkaXVzLTMwMCk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWhhbmRsZS1iZy1jb2xvcik7bGVmdDowO3JpZ2h0OmNhbGMoLTEqdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMCkpO2hlaWdodDp2YXIo'@; put 'LS1jZHMtZ2xvYmFsLXNwYWNlLTcpO3dpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW47dHJhbnNpdGlvbi1wcm9wZXJ0eTpyaWdodCxsZWZ0fS5jbHItdG9nZ2xlLXdyYXBwZXIg'@; put 'aW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXN7b3V0bGluZTowfS5jbHItdG9nZ2xlLXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXM6YmVmb3Jle291dGxpbmU6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1vdXRsaW5lKTtvdXRsaW5lLWNvbG9yOi13ZWJraXQt'@; put 'Zm9jdXMtcmluZy1jb2xvcjtvdXRsaW5lLW9mZnNldDpjYWxjKDMqKDFyZW0vdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpfS5jbHItdG9nZ2xlLXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpiZWZvcmV7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci10b2dnbGUtYmctY29sb3It'@; put 'b24pO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1iZy1jb2xvci1vbik7dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW47dHJhbnNpdGlvbi1wcm9wZXJ0eTpib3JkZXItY29sb3IsYmFja2dyb3VuZC1jb2xvcn0uY2xy'@; put 'LXRvZ2dsZS13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci10b2dnbGUtaGFuZGxlLWJvcmRlci1jb2xvci1vbik7dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW47'@; put 'dHJhbnNpdGlvbi1wcm9wZXJ0eTpyaWdodCxsZWZ0O2xlZnQ6Y2FsYyh2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEwKSAtIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNykpO3JpZ2h0OjB9LmNsci10b2dnbGUtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpkaXNhYmxlZCtsYWJlbHtjdXJz'@; put 'b3I6bm90LWFsbG93ZWR9LmNsci10b2dnbGUtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpkaXNhYmxlZDpub3QoOmNoZWNrZWQpe2xlZnQ6MH0uY2xyLXRvZ2dsZS13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmRpc2FibGVkOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigt'@; put 'LWNsci10b2dnbGUtZGlzYWJsZWQtb2ZmLWJnLWNvbG9yKTtib3JkZXItY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1vZmYtYm9yZGVyLWNvbG9yKX0uY2xyLXRvZ2dsZS13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmRpc2FibGVkOmFmdGVye2JhY2tncm91bmQtY29sb3I6'@; put 'dmFyKC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1vZmYtYmctY29sb3IpO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2FibGVkLW9mZi1oYW5kbGUtYm9yZGVyLWNvbG9yKTtoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTt3aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNl'@; put 'LTcpfS5jbHItdG9nZ2xlLXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpkaXNhYmxlZDpiZWZvcmV7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci10b2dnbGUtZGlzYWJsZWQtb24tYm9yZGVyLWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10b2dnbGUtZGlzYWJs'@; put 'ZWQtb24tYmctY29sb3IpfS5jbHItdG9nZ2xlLXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpkaXNhYmxlZDphZnRlcntib3JkZXItY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1vbi1oYW5kbGUtYm9yZGVyLWNvbG9yKTtoZWlnaHQ6dmFyKC0tY2RzLWdsb2Jh'@; put 'bC1zcGFjZS03KTt3aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpfS5jbHItdG9nZ2xlLXdyYXBwZXIuZGlzYWJsZWQgbGFiZWx7Y3Vyc29yOm5vdC1hbGxvd2VkfS5jbHItdG9nZ2xlLXdyYXBwZXIuZGlzYWJsZWQgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpiZWZvcmV7Ym9y'@; put 'ZGVyLWNvbG9yOnZhcigtLWNsci10b2dnbGUtZGlzYWJsZWQtb24tYm9yZGVyLWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10b2dnbGUtZGlzYWJsZWQtb24tYmctY29sb3IpfS5jbHItdG9nZ2xlLXdyYXBwZXIucmlnaHQtbGFiZWx7ZmxleC1mbG93OnJvdy1yZXZlcnNlfS5j'@; put 'bHItdG9nZ2xlLXdyYXBwZXIgLmNsci1jb250cm9sLWxhYmVse2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFyeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFyeS1mb250LXdl'@; put 'aWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWxpbmUtaGVpZ2h0KTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWNvbmRhcnktbGV0dGVyLXNwYWNpbmcpO3BhZGRpbmc6dmFyKC0tY2RzLWdsb2JhbC1zcGFj'@; put 'ZS0zKSAwO21hcmdpbi10b3A6MH0uY2xyLWNvbnRyb2wtaW5saW5lIC5jbHItdG9nZ2xlLXdyYXBwZXIgLmNsci1jb250cm9sLWxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDowfS5jbHItdG9nZ2xlLXJpZ2h0IC5jbHItdG9nZ2xlLXdyYXBwZXJ7ZmxleC1mbG93OnJv'@; put 'dy1yZXZlcnNlfS5jbHItdG9nZ2xlLXJpZ2h0IGxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jbHItcmFuZ2Utd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7YWxpZ24taXRlbXM6ZmxleC1lbmQ7aGVpZ2h0OnZhcigt'@; put 'LWNsci1mb3Jtcy1yYW5nZS10aHVtYi1oZWlnaHQpO3doaXRlLXNwYWNlOm5vd3JhcH0uY2xyLXJhbmdlLXdyYXBwZXIgLmZpbGwtaW5wdXR7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDp2YXIoLS1jbHItZm9ybXMtcmFuZ2UtdHJhY2staGVp'@; put 'Z2h0KTtwb2ludGVyLWV2ZW50czpub25lO2N1cnNvcjpwb2ludGVyO3otaW5kZXg6MTA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZm9ybXMtcmFuZ2UtcHJvZ3Jlc3MtZmlsbC1jb2xvcik7Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItZm9ybXMtcmFuZ2UtdHJhY2stYm9yZGVyLXJhZGl1'@; put 'cyk7Ym9yZGVyLXN0eWxlOm5vbmV9LmNsci1yYW5nZXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpmbGV4LWVuZDtoZWlnaHQ6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXRodW1iLWhlaWdodCl9LmNsci1yYW5nZTpkaXNhYmxlZHtwb2ludGVyLWV2ZW50'@; put 'czphdXRvO2N1cnNvcjpub3QtYWxsb3dlZDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtsZWZ0OjA7aGVpZ2h0OnZhcigtLWNsci1mb3Jtcy1yYW5nZS10cmFjay1oZWlnaHQpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXRyYWNrLWNvbG9yLWRpc2FibGVkKX0uY2xy'@; put 'LXJhbmdlOmRpc2FibGVkOjotd2Via2l0LXNsaWRlci10aHVtYnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTt0cmFuc2Zvcm06dHJhbnNsYXRlWShjYWxjKHZhcigtLWNsci1mb3Jtcy1yYW5nZS10aHVtYi1oZWlnaHQpLzIgLSB2YXIoLS1jbHItZm9ybXMtcmFuZ2UtdHJhY2staGVpZ2h0KS8y'@; put 'ICsgdmFyKC0tY2xyLWZvcm1zLXJhbmdlLXRyYWNrLWJvcmRlci13aWR0aCkpKTtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1yYW5nZS1wcm9ncmVzcy1maWxsLWNvbG9yLWRpc2FibGVkKTtoZWlnaHQ6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXRo'@; put 'dW1iLWhlaWdodCk7d2lkdGg6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXRodW1iLWhlaWdodCl9LmNsci1yYW5nZTpkaXNhYmxlZDo6LW1vei1yYW5nZS10aHVtYntib3JkZXI6MDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1yYW5nZS1wcm9ncmVz'@; put 'cy1maWxsLWNvbG9yLWRpc2FibGVkKTtoZWlnaHQ6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXRodW1iLWhlaWdodCk7d2lkdGg6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXRodW1iLWhlaWdodCl9LmNsci1yYW5nZTpkaXNhYmxlZCsuZmlsbC1pbnB1dHtwb2ludGVyLWV2ZW50czphdXRvO2N1cnNv'@; put 'cjpub3QtYWxsb3dlZDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1yYW5nZS1wcm9ncmVzcy1maWxsLWNvbG9yLWRpc2FibGVkKX1pbnB1dFt0eXBlPXJhbmdlXXtwYWRkaW5nOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7bGVmdDowO2hlaWdodDp2YXIoLS1jbHItZm9ybXMt'@; put 'cmFuZ2UtdHJhY2staGVpZ2h0KTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1yYW5nZS10cmFjay1jb2xvcik7Ym9yZGVyOnZhcigtLWNsci1mb3Jtcy1yYW5nZS10cmFjay1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWNsci1mb3Jtcy1yYW5nZS10cmFjay1ib3JkZXItY29s'@; put 'b3IpO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXRyYWNrLWJvcmRlci1yYWRpdXMpfWlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci10aHVtYnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTt0cmFuc2Zvcm06dHJhbnNsYXRlWShjYWxjKHZhcigtLWNsci1mb3Jt'@; put 'cy1yYW5nZS10aHVtYi1oZWlnaHQpLzIgLSB2YXIoLS1jbHItZm9ybXMtcmFuZ2UtdHJhY2staGVpZ2h0KS8yICsgdmFyKC0tY2xyLWZvcm1zLXJhbmdlLXRyYWNrLWJvcmRlci13aWR0aCkpKTtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1yYW5n'@; put 'ZS1wcm9ncmVzcy1maWxsLWNvbG9yKTtoZWlnaHQ6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXRodW1iLWhlaWdodCk7d2lkdGg6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXRodW1iLWhlaWdodCl9aW5wdXRbdHlwZT1yYW5nZV06ZGlzYWJsZWR7Ym9yZGVyOnZhcigtLWNsci1mb3Jtcy1yYW5nZS10'@; put 'cmFjay1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWNsci1mb3Jtcy1yYW5nZS10cmFjay1ib3JkZXItY29sb3ItZGlzYWJsZWQpO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXRyYWNrLWJvcmRlci1yYWRpdXMpfWlucHV0W3R5cGU9cmFuZ2VdOjotbW96LXJhbmdlLXRo'@; put 'dW1ie2JvcmRlcjowO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXByb2dyZXNzLWZpbGwtY29sb3IpO2hlaWdodDp2YXIoLS1jbHItZm9ybXMtcmFuZ2UtdGh1bWItaGVpZ2h0KTt3aWR0aDp2YXIoLS1jbHItZm9ybXMtcmFuZ2UtdGh1'@; put 'bWItaGVpZ2h0KX1Ac3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246YXV0byl7LmNsci1yYW5nZS13cmFwcGVyIC5maWxsLWlucHV0e2Rpc3BsYXk6bm9uZX0uY2xyLXJhbmdlLXdyYXBwZXIucHJvZ3Jlc3MtZmlsbCBpbnB1dFt0eXBlPXJhbmdlXTo6LW1zLWZpbGwtbG93ZXJ7aGVpZ2h0OnZhcigt'@; put 'LWNsci1mb3Jtcy1yYW5nZS10cmFjay1oZWlnaHQpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXByb2dyZXNzLWZpbGwtY29sb3IpfWlucHV0W3R5cGU9cmFuZ2Vde2JvcmRlcjowO21hcmdpbjowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2xlZnQ6MDtoZWlnaHQ6'@; put 'dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXRodW1iLWhlaWdodCk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH1pbnB1dFt0eXBlPXJhbmdlXTo6LW1zLXRyYWNre21hcmdpbjowO2JvcmRlcjowO2hlaWdodDp2YXIoLS1jbHItZm9ybXMtcmFuZ2UtdHJhY2staGVpZ2h0KTtjdXJzb3I6cG9p'@; put 'bnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1yYW5nZS10cmFjay1jb2xvcil9aW5wdXRbdHlwZT1yYW5nZV06Oi1tcy10aHVtYntib3JkZXI6MDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1yYW5nZS1wcm9ncmVzcy1maWxs'@; put 'LWNvbG9yKTtoZWlnaHQ6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXRodW1iLWhlaWdodCk7d2lkdGg6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXRodW1iLWhlaWdodCl9fV86LW1zLWZ1bGxzY3JlZW4gLmNsci1yYW5nZS13cmFwcGVyIC5maWxsLWlucHV0LDpyb290IC5jbHItcmFuZ2Utd3JhcHBl'@; put 'ciAuZmlsbC1pbnB1dHtkaXNwbGF5Om5vbmV9XzotbXMtZnVsbHNjcmVlbiAuY2xyLXJhbmdlLXdyYXBwZXIucHJvZ3Jlc3MtZmlsbCBpbnB1dFt0eXBlPXJhbmdlXTo6LW1zLWZpbGwtbG93ZXIsOnJvb3QgLmNsci1yYW5nZS13cmFwcGVyLnByb2dyZXNzLWZpbGwgaW5wdXRbdHlwZT1yYW5n'@; put 'ZV06Oi1tcy1maWxsLWxvd2Vye2hlaWdodDp2YXIoLS1jbHItZm9ybXMtcmFuZ2UtdHJhY2staGVpZ2h0KTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1yYW5nZS1wcm9ncmVzcy1maWxsLWNvbG9yKX1fOi1tcy1mdWxsc2NyZWVuIGlucHV0W3R5cGU9cmFuZ2VdOjotbXMtdG9v'@; put 'bHRpcCw6cm9vdCBpbnB1dFt0eXBlPXJhbmdlXTo6LW1zLXRvb2x0aXB7dmlzaWJpbGl0eTpoaWRkZW59XzotbXMtZnVsbHNjcmVlbiBpbnB1dFt0eXBlPXJhbmdlXSw6cm9vdCBpbnB1dFt0eXBlPXJhbmdlXXtib3JkZXI6MDttYXJnaW46MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtsZWZ0'@; put 'OjA7aGVpZ2h0OnZhcigtLWNsci1mb3Jtcy1yYW5nZS10aHVtYi1oZWlnaHQpO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9XzotbXMtZnVsbHNjcmVlbiBpbnB1dFt0eXBlPXJhbmdlXTo6LW1zLXRyYWNrLDpyb290IGlucHV0W3R5cGU9cmFuZ2VdOjotbXMtdHJhY2t7Ym9yZGVyOjA7'@; put 'bWFyZ2luOjA7aGVpZ2h0OnZhcigtLWNsci1mb3Jtcy1yYW5nZS10cmFjay1oZWlnaHQpO2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXRyYWNrLWNvbG9yKX1fOi1tcy1mdWxsc2NyZWVuIGlucHV0W3R5cGU9cmFuZ2VdOjotbXMtdGh1bWIs'@; put 'OnJvb3QgaW5wdXRbdHlwZT1yYW5nZV06Oi1tcy10aHVtYntib3JkZXI6MDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1yYW5nZS1wcm9ncmVzcy1maWxsLWNvbG9yKTtoZWlnaHQ6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXRodW1iLWhlaWdodCk7'@; put 'd2lkdGg6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXRodW1iLWhlaWdodCl9aW5wdXRbY2xyRGF0YWxpc3RJbnB1dF17cG9zaXRpb246cmVsYXRpdmV9aW5wdXRbY2xyRGF0YWxpc3RJbnB1dF06Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvcntvcGFjaXR5OjA7Y3Vyc29yOnRleHR9'@; put 'LmNsci1pbnB1dC1ncm91cCBpbnB1dFtjbHJEYXRhbGlzdElucHV0XXt6LWluZGV4OjJ9LmNsci1pbnB1dC1ncm91cCAuY2xyLWRhdGFsaXN0LWNhcmV0e3Bvc2l0aW9uOmFic29sdXRlO3RvcDoyNSU7cmlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KTtjb2xvcjp2YXIoLS1jbHItZm9y'@; put 'bXMtZGF0YWxpc3QtY2FyZXQtY29sb3IpO2N1cnNvcjp0ZXh0O2hlaWdodDp2YXIoLS1jbHItZm9ybXMtZGF0YWxpc3QtY2FyZXQtaWNvbi1zaXplKTt3aWR0aDp2YXIoLS1jbHItZm9ybXMtZGF0YWxpc3QtY2FyZXQtaWNvbi1zaXplKX0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xy'@; put 'LWRhdGFsaXN0LWNhcmV0e2NvbG9yOnZhcigtLWNsci1mb3Jtcy1kYXRhbGlzdC1jYXJldC1kaXNhYmxlZC1jb2xvcil9Y2xyLWRhdGFsaXN0LWNvbnRhaW5lciAuY2xyLWlucHV0LWdyb3Vwe3BhZGRpbmctcmlnaHQ6MH0uY2xyLWlucHV0LXdyYXBwZXIgaW5wdXRbY2xyUGFzc3dvcmRdK2J1'@; put 'dHRvbi5jbHItaW5wdXQtZ3JvdXAtaWNvbi1hY3Rpb24gLmNsci1wYXNzd29yZC1leWUtaWNvbntjb2xvcjp2YXIoLS1jbHItZm9ybXMtcGFzc3dvcmQtZXllLWljb24tY29sb3IpfS5jbHItaW5wdXQtd3JhcHBlciBpbnB1dFtjbHJQYXNzd29yZF0rYnV0dG9uLmNsci1pbnB1dC1ncm91cC1p'@; put 'Y29uLWFjdGlvbltkaXNhYmxlZF0gLmNsci1wYXNzd29yZC1leWUtaWNvbntmaWxsOnZhcigtLWNsci1mb3Jtcy1wYXNzd29yZC1kaXNhYmxlZC1leWUtaWNvbi1jb2xvcil9LmNsci1pbnB1dC13cmFwcGVyIGlucHV0W2NsclBhc3N3b3JkXVtkaXNhYmxlZF17Y29sb3I6dmFyKC0tY2xyLWZv'@; put 'cm1zLXBhc3N3b3JkLWRpc2FibGVkLWV5ZS1pY29uLWNvbG9yKX0uY2xyLW51bWJlci1pbnB1dC13cmFwcGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3doaXRlLXNwYWNlOm5vd3JhcDttYXgtaGVpZ2h0OnZhcigtLWNsci1mb3Jtcy1pbnB1dC13cmFwcGVyLWhlaWdodCl9LmNsci1udW1iZXIt'@; put 'aW5wdXQtd3JhcHBlciAuY2xyLW51bWJlci1pbnB1dHstbW96LWFwcGVhcmFuY2U6dGV4dGZpZWxkfS5jbHItbnVtYmVyLWlucHV0LXdyYXBwZXIgLmNsci1udW1iZXItaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sLmNsci1udW1iZXItaW5wdXQtd3JhcHBlciAuY2xyLW51bWJl'@; put 'ci1pbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTttYXJnaW46MH0uY2xyLW51bWJlci1pbnB1dC13cmFwcGVyIC5jbHItbnVtYmVyLWlucHV0LXNlcGFyYXRvcntiYWNrZ3JvdW5kOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLWNv'@; put 'bG9yKTt3aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEpO2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpfS5jbHItbnVtYmVyLWlucHV0LXdyYXBwZXIgLmNsci1pbnB1dC1ncm91cC1pY29uLWFjdGlvbntoZWlnaHQ6Y2FsYyh2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpIC0g'@; put 'dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMjAwKSk7d2lkdGg6Y2FsYyh2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpIC0gdmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMjAwKSk7cGFkZGluZzowIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMyl9LmNsci1u'@; put 'dW1iZXItaW5wdXQtd3JhcHBlciAuY2xyLWlucHV0LWdyb3VwLWljb24tYWN0aW9uOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLWhvdmVyKX0uY2xyLW51bWJlci1pbnB1dC13cmFwcGVyIC5jbHItaW5wdXQtZ3Jv'@; put 'dXAtaWNvbi1hY3Rpb246YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLWFjdGl2ZSl9LmNsci1udW1iZXItaW5wdXQtd3JhcHBlciAuY2xyLWlucHV0LWdyb3VwLWljb24tYWN0aW9uOmRpc2FibGVke2JhY2tncm91'@; put 'bmQtY29sb3I6dW5zZXR9OnJvb3QgW2Nkcy10aGVtZV17LS1jbHItY2FsZW5kYXItYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWNvbnRhaW5lci1iYWNrZ3JvdW5kKTstLWNsci1jYWxlbmRhci1ib3JkZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3Jk'@; put 'ZXItY29sb3IpOy0tY2xyLWNhbGVuZGFyLW9wdGlvbi10ZXh0LWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tY29sb3IpOy0tY2xyLWNhbGVuZGFyLWFjdGl2ZS1vcHRpb24tYm9yZGVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFj'@; put 'a2dyb3VuZC1oaWdobGlnaHQpOy0tY2xyLWNhbGVuZGFyLXJhbmdlLWNlbGwtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtc2VsZWN0ZWQpOy0tY2xyLWNhbGVuZGFyLWJ0bi1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0'@; put 'LWludGVyYWN0aW9uLWNvbG9yKTstLWNsci1jYWxlbmRhci10b2RheS1kYXRlLWNlbGwtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNDAwKTstLWNsci1jYWxlbmRhci10b2RheS1kYXRlLWNlbGwtYm9yZGVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50'@; put 'ZXJhY3Rpb24tYm9yZGVyLWNvbG9yKTstLWNsci1jYWxlbmRhci1hY3RpdmUtY2VsbC1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1oaWdobGlnaHQpOy0tY2xyLWNhbGVuZGFyLWFjdGl2ZS1mb2N1cy1jZWxsLWJhY2tncm91'@; put 'bmQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLWhpZ2hsaWdodCk7LS1jbHItY2FsZW5kYXItYWN0aXZlLWNlbGwtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItMTAwKTstLWNsci1jYWxlbmRhci1idG4tcGlja2VyLXRy'@; put 'aWdnZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktbGluay1jb2xvcik7LS1jbHItY2FsZW5kYXItYnRuLXBpY2tlci10cmlnZ2VyLWhvdmVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWxpbmstY29sb3ItaG92ZXIpOy0tY2xyLWNhbGVuZGFyLWJ0bi1waWNr'@; put 'ZXItdHJpZ2dlci1hY3RpdmUtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktbGluay1jb2xvcik7LS1jbHItY2FsZW5kYXItYnRuLWhvdmVyLWZvY3VzLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1ob3Zlcik7LS1jbHItY2FsZW5k'@; put 'YXItYnRuLWhvdmVyLWZvY3VzLWNvbG9yLXRleHQ6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvci1ob3Zlcik7LS1jbHItY2FsZW5kYXItYnRuLWFjdGl2ZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yLWFjdGl2ZSk7LS1jbHIt'@; put 'Y2FsZW5kYXItYnRuLWFjdGl2ZS1jb2xvci1iZzp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtYWN0aXZlKTstLWNsci1jYWxlbmRhci13ZWVrZGF5LWZvbnQtc2l6ZTp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZm9udC1zaXplLTMpOy0tY2xyLWNh'@; put 'bGVuZGFyLXRvZGF5LWRhdGUtY2VsbC1mb250LXdlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtc2VtaWJvbGQpOy0tY2xyLWNhbGVuZGFyLXBpY2tlci1idG4tZm9udC1zaXplOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1mb250LXNpemUtNik7LS1j'@; put 'bHItY2FsZW5kYXItcGlja2VyLWJ0bi1mb250LXdlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtbWVkaXVtKX0uZGF0ZXBpY2tlcntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtd3JhcDp3cmFwO2p1c3RpZnktY29udGVudDpzcGFjZS1i'@; put 'ZXR3ZWVuO21hcmdpbi10b3A6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS00KTtwYWRkaW5nOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7d2lkdGg6Y2FsYygoNyp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTExKSkgKyAoMip2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpKSArICgyKnZhcigtLWNk'@; put 'cy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTEwMCkpKTtoZWlnaHQ6Y2FsYygoOCp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTExKSkgKyAoMip2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpKSArICgyKnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTEwMCkpICsgNip2YXIo'@; put 'LS1jZHMtZ2xvYmFsLXNwYWNlLTMpKTtiYWNrZ3JvdW5kOnZhcigtLWNsci1jYWxlbmRhci1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXI6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMTAwKSBzb2xpZCB2YXIoLS1jbHItY2FsZW5kYXItYm9yZGVyLWNvbG9yKTtib3JkZXIt'@; put 'cmFkaXVzOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXJhZGl1cy0xMDApO2JveC1zaGFkb3c6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1zaGFkb3ctMTAwKTt6LWluZGV4OjEwNTB9LmRhdGVwaWNrZXIgLmRhdGVwaWNrZXItdmlldy1tYW5hZ2Vye2Rpc3BsYXk6ZmxleDtmbGV4LWRp'@; put 'cmVjdGlvbjpjb2x1bW47cm93LWdhcDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpO3dpZHRoOmNhbGMoNyp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTExKSl9LmRhdGVwaWNrZXIuaGFzLXJhbmdlLW9wdGlvbnt3aWR0aDpjYWxjKCg3KnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTEpKSArICgy'@; put 'KnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNykpICsgKDIqdmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMTAwKSkgKyAxNTAqKDFyZW0vdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkgKyB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpICsgMip2YXIoLS1jZHMtYWxpYXMtb2JqZWN0'@; put 'LWJvcmRlci13aWR0aC0xMDApKX0uZGF0ZXBpY2tlci5oYXMtYWN0aW9uLWJ1dHRvbnN7aGVpZ2h0OmNhbGMoKDgqdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMSkpICsgKDIqdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KSkgKyAoMip2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0'@; put 'aC0xMDApKSArIDYqdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0zKSArIHZhcigtLWNsci1idG4taGVpZ2h0KSArIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNykgKyB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpKTtyb3ctZ2FwOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSl9LmRhdGVwaWNrZXIg'@; put 'LmRhdGVwaWNrZXItYWN0aW9uc3ttaW4td2lkdGg6MTAwJTtoZWlnaHQ6Y2FsYyh2YXIoLS1jbHItYnRuLWhlaWdodCkgKyB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpKTtkaXNwbGF5OmZsZXg7Ym9yZGVyLXRvcDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEpIHNvbGlkIHZhcigtLWNkcy1h'@; put 'bGlhcy1vYmplY3QtY29udGFpbmVyLWJvcmRlci1jb2xvcik7anVzdGlmeS1jb250ZW50OmVuZDtwYWRkaW5nLXRvcDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpO2dhcDp2YXIoLS1jbHItYnRuLWhvcml6b250YWwtbWFyZ2luKX0uZGF0ZXBpY2tlciAuZGF0ZXBpY2tlci1hY3Rpb25zIGJ1'@; put 'dHRvbnttYXJnaW46MH0uY2xyLWRhdGUtcmFuZ2UtcGlja2VyLW5hdnt3aWR0aDpjYWxjKDE1MCooMXJlbS92YXIoLS1jZHMtZ2xvYmFsLWJhc2UpKSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1yYWRpdXMtMTAwKTtoZWlnaHQ6MTAwJX0uY2FsZW5kYXIt'@; put 'aGVhZGVye2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXI7d2lkdGg6Y2FsYyg3KnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTEpKX0uY2FsZW5kYXItc3dpdGNoZXJzLC55ZWFyLXN3aXRjaGVyc3tkaXNwbGF5OmZsZXh9LnllYXIt'@; put 'c3dpdGNoZXJze2ZsZXg6MCAwIGF1dG87YWxpZ24tc2VsZjpjZW50ZXI7d2lkdGg6Y2FsYyh2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTExKSozKX0uY2FsZW5kYXItdGFibGV7ZmxleDoxIDEgYXV0bztib3JkZXItc3BhY2luZzowIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMyk7d2lkdGg6MTAw'@; put 'JX10ZC5jYWxlbmRhci1jZWxsLHRkLmNhbGVuZGFyLXRhYmxlIC5jYWxlbmRhci1jZWxse2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTExKTt3aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTExKTttaW4taGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTEpO21pbi13aWR0'@; put 'aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTExKTtwYWRkaW5nOjA7dGV4dC1hbGlnbjpjZW50ZXJ9LmRheXtkaXNwbGF5OmlubGluZX0ud2Vla2RheXN7ZmxleDowIDAgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMSl9LndlZWtkYXl7Zm9udC1zaXplOnZhcigtLWNsci1jYWxlbmRhci13ZWVr'@; put 'ZGF5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtc2VtaWJvbGQpO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFyeS1saW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWFs'@; put 'aWFzLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWxldHRlci1zcGFjaW5nKX0uY2FsZW5kYXItYnRue2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTExKTt3aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTExKTttaW4taGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTEpO21pbi13'@; put 'aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTExKTtwYWRkaW5nOjA7bWFyZ2luOjAhaW1wb3J0YW50O2NvbG9yOmluaGVyaXQ7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1yYWRpdXMtMTAwKTtiYWNrZ3JvdW5kOjAgMDtjdXJzb3I6cG9p'@; put 'bnRlcjtmb250LXNpemU6dmFyKC0tY2xyLWNhbGVuZGFyLXBpY2tlci1idG4tZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jbHItY2FsZW5kYXItcGlja2VyLWJ0bi1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2VjdGlvbi1saW5lLWhl'@; put 'aWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2VjdGlvbi1sZXR0ZXItc3BhY2luZyl9LmNhbGVuZGFyLWJ0bi5pbi1yYW5nZXtiYWNrZ3JvdW5kOnZhcigtLWNsci1jYWxlbmRhci1yYW5nZS1jZWxsLWJhY2tncm91bmQtY29sb3IpO2JvcmRlci1yYWRp'@; put 'dXM6MH0uY2FsZW5kYXItYnRuOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tY2xyLWNhbGVuZGFyLWJ0bi1ob3Zlci1mb2N1cy1jb2xvcil9LmNhbGVuZGFyLWJ0bjpmb2N1c3tvdXRsaW5lOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS03MDApIHNvbGlkIDJweDtvdXRsaW5lLW9mZnNldDpj'@; put 'YWxjKC0xKnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMikpO2JhY2tncm91bmQ6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLWhvdmVyKX0uY2FsZW5kYXItYnRuOmFjdGl2ZXtiYWNrZ3JvdW5kOnZhcigtLWNsci1jYWxlbmRhci1idG4tYWN0aXZlLWNvbG9y'@; put 'LWJnKX0uZGF5LWJ0bntoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMSk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMSk7bWluLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTExKTttaW4td2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMSk7cGFkZGluZzow'@; put 'O21hcmdpbjowIWltcG9ydGFudDtib3JkZXI6MDtib3JkZXItcmFkaXVzOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXJhZGl1cy0xMDApO2JhY2tncm91bmQ6MCAwO2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWNvbmRhcnktZm9u'@; put 'dC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWNvbmRhcnktZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWxldHRl'@; put 'ci1zcGFjaW5nKTt3aWR0aDoxMDAlO2NvbG9yOmluaGVyaXR9LmRheS1idG4uaW4tcmFuZ2V7YmFja2dyb3VuZDp2YXIoLS1jbHItY2FsZW5kYXItcmFuZ2UtY2VsbC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItcmFkaXVzOjB9LmRheS1idG46aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1jbHIt'@; put 'Y2FsZW5kYXItYnRuLWhvdmVyLWZvY3VzLWNvbG9yKX0uZGF5LWJ0bjpmb2N1c3tvdXRsaW5lOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItYmx1ZS03MDApIHNvbGlkIDJweDtvdXRsaW5lLW9mZnNldDpjYWxjKC0xKnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMikpO2JhY2tncm91bmQ6dmFyKC0t'@; put 'Y2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLWhvdmVyKX0uZGF5LWJ0bjphY3RpdmV7YmFja2dyb3VuZDp2YXIoLS1jbHItY2FsZW5kYXItYnRuLWFjdGl2ZS1jb2xvci1iZyl9LmRheS1idG46aG92ZXJ7Y29sb3I6dmFyKC0tY2xyLWNhbGVuZGFyLWJ0bi1ob3Zlci1m'@; put 'b2N1cy1jb2xvci10ZXh0KX0uZGF5LWJ0bjphY3RpdmV7Y29sb3I6dmFyKC0tY2xyLWNhbGVuZGFyLWJ0bi1hY3RpdmUtY29sb3IpfS5kYXktYnRuLmlzLXRvZGF5e2NvbG9yOnZhcigtLWNsci1jYWxlbmRhci10b2RheS1kYXRlLWNlbGwtY29sb3IpO2JvcmRlcjp2YXIoLS1jZHMtZ2xvYmFs'@; put 'LXNwYWNlLTEpIHNvbGlkIHZhcigtLWNsci1jYWxlbmRhci10b2RheS1kYXRlLWNlbGwtYm9yZGVyLWNvbG9yKTtmb250LXdlaWdodDp2YXIoLS1jbHItY2FsZW5kYXItdG9kYXktZGF0ZS1jZWxsLWZvbnQtd2VpZ2h0KX0uZGF5LWJ0bi5pcy1zZWxlY3RlZCwuZGF5LWJ0bi5pcy1zdGFydC1y'@; put 'YW5nZSwuZGF5LWJ0bi5pcy1lbmQtcmFuZ2V7YmFja2dyb3VuZDp2YXIoLS1jbHItY2FsZW5kYXItYWN0aXZlLWNlbGwtYmFja2dyb3VuZC1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWNhbGVuZGFyLWFjdGl2ZS1jZWxsLWNvbG9yKX0uZGF5LWJ0bi5pcy1zdGFydC1yYW5nZTpub3QoLmlzLWVu'@; put 'ZC1yYW5nZSl7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS5kYXktYnRuLmlzLWVuZC1yYW5nZTpub3QoLmlzLXN0YXJ0LXJhbmdlKXtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowfS5kYXkt'@; put 'YnRuLmlzLXNlbGVjdGVkOmZvY3Vze2JhY2tncm91bmQ6dmFyKC0tY2xyLWNhbGVuZGFyLWFjdGl2ZS1mb2N1cy1jZWxsLWJhY2tncm91bmQtY29sb3IpfS5kYXktYnRuLmlzLWV4Y2x1ZGVke2Rpc3BsYXk6bm9uZX0uZGF5LWJ0bi5pcy1kaXNhYmxlZHtjb2xvcjp2YXIoLS1jZHMtYWxpYXMt'@; put 'b2JqZWN0LWludGVyYWN0aW9uLWNvbG9yLWRpc2FibGVkKTtwb2ludGVyLWV2ZW50czpub25lO2JhY2tncm91bmQ6MCAwfS5jYWxlbmRhci1waWNrZXJze2Rpc3BsYXk6ZmxleH0uc3dpdGNoZXJ7Y29sb3I6dmFyKC0tY2xyLWNhbGVuZGFyLWJ0bi1jb2xvcil9LnN3aXRjaGVyOmhvdmVye2Nv'@; put 'bG9yOnZhcigtLWNsci1jYWxlbmRhci1idG4taG92ZXItZm9jdXMtY29sb3ItdGV4dCl9LnN3aXRjaGVyOmFjdGl2ZXtjb2xvcjp2YXIoLS1jbHItY2FsZW5kYXItYnRuLWFjdGl2ZS1jb2xvcil9LnN3aXRjaGVyIGNkcy1pY29uLC5zd2l0Y2hlciBjbHItaWNvbntoZWlnaHQ6dmFyKC0tY2Rz'@; put 'LWdsb2JhbC1zcGFjZS04KTt3aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTgpfS5tb250aHBpY2tlci10cmlnZ2VyLC55ZWFycGlja2VyLXRyaWdnZXJ7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMyk7Y29sb3I6dmFyKC0tY2xyLWNhbGVuZGFyLWJ0bi1waWNrZXItdHJpZ2dl'@; put 'ci1jb2xvcik7dGV4dC1hbGlnbjpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS5tb250aHBpY2tlci10cmlnZ2VyLnllYXItcmFuZ2UsLnllYXJwaWNrZXItdHJpZ2dlci55ZWFyLXJhbmdle3dpZHRoOnVuc2V0O2FsaWdu'@; put 'LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KX0ubW9udGhwaWNrZXIsLnllYXJwaWNrZXJ7bWluLWhlaWdodDpjYWxjKDYqdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMikpfS5tb250aHBpY2tlciwueWVhcnBpY2tlciwuZGF5cGlja2Vye2Rpc3BsYXk6'@; put 'ZmxleDtmbGV4LXdyYXA6d3JhcDtyb3ctZ2FwOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSk7aGVpZ2h0OmNhbGMoOSp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEwKSArIDMqdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KSk7d2lkdGg6Y2FsYyg3KnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTEp'@; put 'KX0ueWVhcnN7ZmxleC1kaXJlY3Rpb246cm93fS5tb250aCwueWVhcntoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMSk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMSk7bWluLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTExKTttaW4td2lkdGg6dmFyKC0tY2Rz'@; put 'LWdsb2JhbC1zcGFjZS0xMSk7cGFkZGluZzowIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNik7bWFyZ2luOjAhaW1wb3J0YW50O2NvbG9yOmluaGVyaXQ7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1yYWRpdXMtMTAwKTtiYWNrZ3JvdW5kOjAg'@; put 'MDtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtYWxpYXMt'@; put 'dHlwb2dyYXBoeS1zZWNvbmRhcnktbGluZS1oZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFyeS1sZXR0ZXItc3BhY2luZyk7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTIpO3dpZHRoOmNhbGMoLjUqY2FsYygoNyp2YXIoLS1j'@; put 'ZHMtZ2xvYmFsLXNwYWNlLTExKSkgKyAoMip2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpKSArICgyKnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTEwMCkpKSAtIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNykgLSB2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0'@; put 'aC0xMDApKX0ubW9udGg6aG92ZXIsLnllYXI6aG92ZXJ7Y29sb3I6dmFyKC0tY2xyLWNhbGVuZGFyLWJ0bi1ob3Zlci1mb2N1cy1jb2xvci10ZXh0KX0ubW9udGg6YWN0aXZlLC55ZWFyOmFjdGl2ZXtjb2xvcjp2YXIoLS1jbHItY2FsZW5kYXItYnRuLWFjdGl2ZS1jb2xvcil9Lm1vbnRoLmlz'@; put 'LXRvZGF5LC55ZWFyLmlzLXRvZGF5e2NvbG9yOnZhcigtLWNsci1jYWxlbmRhci10b2RheS1kYXRlLWNlbGwtY29sb3IpO2JvcmRlcjp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEpIHNvbGlkIHZhcigtLWNsci1jYWxlbmRhci10b2RheS1kYXRlLWNlbGwtYm9yZGVyLWNvbG9yKTtmb250LXdl'@; put 'aWdodDp2YXIoLS1jbHItY2FsZW5kYXItdG9kYXktZGF0ZS1jZWxsLWZvbnQtd2VpZ2h0KX0ubW9udGguaXMtc2VsZWN0ZWQsLm1vbnRoLmlzLXN0YXJ0LXJhbmdlLC5tb250aC5pcy1lbmQtcmFuZ2UsLnllYXIuaXMtc2VsZWN0ZWQsLnllYXIuaXMtc3RhcnQtcmFuZ2UsLnllYXIuaXMtZW5k'@; put 'LXJhbmdle2JhY2tncm91bmQ6dmFyKC0tY2xyLWNhbGVuZGFyLWFjdGl2ZS1jZWxsLWJhY2tncm91bmQtY29sb3IpO2NvbG9yOnZhcigtLWNsci1jYWxlbmRhci1hY3RpdmUtY2VsbC1jb2xvcil9Lm1vbnRoLmlzLXN0YXJ0LXJhbmdlOm5vdCguaXMtZW5kLXJhbmdlKSwueWVhci5pcy1zdGFy'@; put 'dC1yYW5nZTpub3QoLmlzLWVuZC1yYW5nZSl7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS5tb250aC5pcy1lbmQtcmFuZ2U6bm90KC5pcy1zdGFydC1yYW5nZSksLnllYXIuaXMtZW5kLXJhbmdlOm5vdCguaXMtc3RhcnQtcmFuZ2Upe2Jv'@; put 'cmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9Lm1vbnRoLmlzLXNlbGVjdGVkOmZvY3VzLC55ZWFyLmlzLXNlbGVjdGVkOmZvY3Vze2JhY2tncm91bmQ6dmFyKC0tY2xyLWNhbGVuZGFyLWFjdGl2ZS1mb2N1cy1jZWxsLWJhY2tncm91bmQtY29sb3Ip'@; put 'fS5tb250aC5pcy1kaXNhYmxlZCwueWVhci5pcy1kaXNhYmxlZHtjb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yLWRpc2FibGVkKTtwb2ludGVyLWV2ZW50czpub25lfS5tb250aC5pcy1kaXNhYmxlZDpob3ZlciwueWVhci5pcy1kaXNhYmxlZDpob3Zlcnti'@; put 'YWNrZ3JvdW5kOjAgMH0ubW9udGhzLC55ZWFyc3tyb3ctZ2FwOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMyk7ZmxleC13cmFwOndyYXA7ZGlzcGxheTpmbGV4fS5tb250aHt0ZXh0LWFsaWduOmNlbnRlcjtoZWlnaHQ6Y2FsYyg1KnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkpO3doaXRlLXNw'@; put 'YWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueWVhcnt0ZXh0LWFsaWduOmNlbnRlcn06cm9vdCBbY2RzLXRoZW1lXXstLWNsci1jb21ib2JveC1ib3JkZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItY29sb3IpOy0tY2xyLWNv'@; put 'bWJvYm94LWlucHV0LWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1jb250YWluZXItYmFja2dyb3VuZC10aW50KTstLWNsci1jb21ib2JveC1waWxsLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kKTst'@; put 'LWNsci1jb21ib2JveC1waWxsLWJvcmRlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1jb2xvcik7LS1jbHItY29tYm9ib3gtcGlsbC1mb250LWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTUwMCk7LS1jbHItY29tYm9ib3gtZmlsdGVyLWhpZ2hs'@; put 'aWdodDp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtaGlnaGxpZ2h0KTstLWNsci1jb21ib2JveC1taW4td2lkdGg6Y2FsYygxNjggKiAoMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTstLWNsci1jb21ib2JveC1tdWx0aS1taW4td2lkdGg6Y2Fs'@; put 'YygzNjAgKiAoMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTstLWNsci1jb21ib2JveC1taW4taGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSk7LS1jbHItY29tYm9ib3gtZm9udC1zaXplOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zZWNvbmRhcnktZm9udC1zaXpl'@; put 'KTstLWNsci1jb21ib2JveC1mb250LXdlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWZvbnQtd2VpZ2h0KTstLWNsci1jb21ib2JveC10ZXh0LWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTQwMCk7LS1jbHItY29tYm9ib3gtYm9yZGVy'@; put 'LXJhZGl1czp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1yYWRpdXMtMTAwKTstLWNsci1jb21ib2JveC1wYWRkaW5nLWxlZnQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KTstLWNsci1jb21ib2JveC10cmlnZ2VyLXBhZGRpbmctbGVmdDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUp'@; put 'Oy0tY2xyLWNvbWJvYm94LXRyaWdnZXItcGFkZGluZy1yaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpOy0tY2xyLWNvbWJvYm94LXRyaWdnZXItZ2FwOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNik7LS1jbHItY29tYm9ib3gtdHJpZ2dlci1mb250LWNvbG9yOnZhcigtLWNkcy1hbGlh'@; put 'cy1vYmplY3QtaW50ZXJhY3Rpb24tY29sb3IpOy0tY2xyLWNvbWJvYm94LWhvdmVyLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLWhvdmVyKTstLWNsci1jb21ib2JveC1hY3RpdmUtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1j'@; put 'ZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtYWN0aXZlKTstLWNsci1jb21ib2JveC1waWxsLXBhZGRpbmc6MCB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTMpOy0tY2xyLWNvbWJvYm94LXBpbGwtbWFyZ2luOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMykgdmFyKC0tY2Rz'@; put 'LWdsb2JhbC1zcGFjZS0zKSAwIDA7LS1jbHItY29tYm9ib3gtcGlsbC1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTstLWNsci1jb21ib2JveC1waWxsLXJlbW92ZS1pY29uLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tY29sb3IpOy0tY2xyLWNvbWJv'@; put 'Ym94LWNhcmV0LWljb24tc2l6ZTp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpOy0tY2xyLWNvbWJvYm94LXBpbGwtYm9yZGVyLXJhZGl1czp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1yYWRpdXMtMTAwKX0uY2xyLWNvbWJvYm94LWZvcm0tY29udHJvbHthbGlnbi1pdGVtczpzdHJl'@; put 'dGNofS5jbHItY29tYm9ib3gtZm9ybS1jb250cm9sIC5jbHItZXJyb3IgLmNsci12YWxpZGF0ZS1pY29ue21hcmdpbi1sZWZ0OjB9LmNsci1mb2N1cy1pbmRpY2F0b3J7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZm9ybXMtZm9jdXNlZC1jb2xvcik7aGVpZ2h0OnZhcigtLWNkcy1nbG9i'@; put 'YWwtc3BhY2UtMik7d2lkdGg6MDt0cmFuc2l0aW9uOndpZHRoIC4ycyBlYXNlO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTpjYWxjKC0xKnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSkpO2xlZnQ6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWNsci1jb21ib2JveC1ib3JkZXIt'@; put 'cmFkaXVzKTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czp2YXIoLS1jbHItY29tYm9ib3gtYm9yZGVyLXJhZGl1cyl9LmNsci1mb2N1c3t3aWR0aDoxMDAlfS5jbHItZXJyb3IgLmNsci1mb2N1cy1pbmRpY2F0b3J7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZm9ybXMtaW52YWxpZC1j'@; put 'b2xvcil9LmNsci1jb21ib2JveC13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MCBjYWxjKHZhcigtLWNsci1jb21ib2JveC10cmlnZ2VyLWdhcCkgKyB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTYpICsgdmFyKC0tY2xyLWNvbWJvYm94LXRyaWdnZXItcGFkZGluZy1yaWdodCkp'@; put 'IDAgdmFyKC0tY2xyLWNvbWJvYm94LXRyaWdnZXItcGFkZGluZy1sZWZ0KTttaW4taGVpZ2h0OnZhcigtLWNsci1jb21ib2JveC1taW4taGVpZ2h0KTttaW4td2lkdGg6dmFyKC0tY2xyLWNvbWJvYm94LW1pbi13aWR0aCk7Zm9udC1zaXplOnZhcigtLWNsci1jb21ib2JveC1mb250LXNpemUp'@; put 'O2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1jb21ib2JveC1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6Y2FsYygyMCooMXJlbS92YXIoLS1jZHMtZ2xvYmFsLWJhc2UpKSk7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHQtY29sb3IpO2JvcmRlci1ib3R0b206dmFyKC0tY2RzLWFsaWFzLW9iamVj'@; put 'dC1ib3JkZXItd2lkdGgtMTAwKSBzb2xpZCB2YXIoLS1jbHItZm9ybXMtYm9yZGVyLWNvbG9yKTtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1jb21ib2JveC1pbnB1dC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItd2lk'@; put 'dGg6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMTAwKTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1jb21ib2JveC1ib3JkZXItY29sb3IpO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWNvbWJvYm94LWJvcmRlci1yYWRpdXMpfS5jbHItY29t'@; put 'Ym9ib3gtd3JhcHBlciAuY2xyLWlucHV0e3BhZGRpbmc6MDttYXgtaGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyl9LmNsci1jb21ib2JveC13cmFwcGVyIC5jbHItaW5wdXQ6bm90KDpkaXNhYmxlZCl7Y29sb3I6dmFyKC0tY2xyLWNvbWJvYm94LXRleHQtY29sb3IpfS5jbHItY29t'@; put 'Ym9ib3gtd3JhcHBlci5tdWx0aXttaW4td2lkdGg6bWluKHZhcigtLWNsci1jb21ib2JveC1tdWx0aS1taW4td2lkdGgpLDEwMCUpO3BhZGRpbmctYm90dG9tOmNhbGMoMyooMXJlbS92YXIoLS1jZHMtZ2xvYmFsLWJhc2UpKSl9LmNsci1jb21ib2JveC13cmFwcGVyIC5jbHItaW5wdXQuY2xy'@; put 'LWNvbWJvYm94LWlucHV0OmZvY3Vze2JhY2tncm91bmQ6MCAwfS5jbHItY29tYm9ib3gtd3JhcHBlci5pbnZhbGlke2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWZvcm1zLWludmFsaWQtY29sb3IpfS5jbHItY29tYm9ib3gtd3JhcHBlciAuY2xyLWNvbWJvYm94LWlucHV0e2JhY2tn'@; put 'cm91bmQ6MCAwO2JvcmRlci1ib3R0b206bm9uZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmNsci1jb21ib2JveC13cmFwcGVyIC5jbHItY29tYm9ib3gtcmVtb3ZlLWJ0bntiYWNrZ3JvdW5kOjAgMDtib3JkZXI6MDtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmZsZXg7cGFkZGluZzowO2NvbG9y'@; put 'OnZhcigtLWNsci1jb21ib2JveC1waWxsLXJlbW92ZS1pY29uLWNvbG9yKX0uY2xyLWNvbWJvYm94LXdyYXBwZXIgLmxhYmVsLWNvbWJvYm94LXBpbGx7Zm9udC1zaXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNhcHRpb24tZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jZHMt'@; put 'YWxpYXMtdHlwb2dyYXBoeS1jYXB0aW9uLWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jYXB0aW9uLWxpbmUtaGVpZ2h0KTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jYXB0aW9uLWxldHRlci1zcGFjaW5nKTto'@; put 'ZWlnaHQ6dmFyKC0tY2xyLWNvbWJvYm94LXBpbGwtaGVpZ2h0KTttYXJnaW46dmFyKC0tY2xyLWNvbWJvYm94LXBpbGwtbWFyZ2luKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1jb21ib2JveC1waWxsLWJhY2tncm91bmQtY29sb3IpO2JvcmRlci13aWR0aDp2YXIoLS1jZHMtZ2xvYmFs'@; put 'LXNwYWNlLTEpO2JvcmRlci1zdHlsZTpzb2xpZDthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItY29tYm9ib3gtcGlsbC1ib3JkZXItcmFkaXVzKTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbWJvYm94LXBpbGwtYm9yZGVyLWNvbG9yKTtwYWRkaW5nOnZhcigt'@; put 'LWNsci1jb21ib2JveC1waWxsLXBhZGRpbmcpfS5jbHItY29tYm9ib3gtd3JhcHBlciAubGFiZWwtY29tYm9ib3gtcGlsbCAuY2xyLWNvbWJvYm94LXBpbGwtY29udGVudHtmb250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY2FwdGlvbi1mb250LXNpemUpO2ZvbnQtd2VpZ2h0'@; put 'OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNhcHRpb24tZm9udC13ZWlnaHQpO2NvbG9yOnZhcigtLWNsci1jb21ib2JveC1waWxsLWZvbnQtY29sb3IpO3BhZGRpbmc6MH0uY2xyLWNvbWJvYm94LXdyYXBwZXIgLmxhYmVsLWNvbWJvYm94LXBpbGwgY2RzLWljb24sLmNsci1jb21ib2Jv'@; put 'eC13cmFwcGVyIC5sYWJlbC1jb21ib2JveC1waWxsIGNsci1pY29ue21hcmdpbi10b3A6Y2FsYygtMSp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEpKX0uY2xyLWNvbWJvYm94LXdyYXBwZXIgLmxhYmVsLWNvbWJvYm94LXBpbGwgY2RzLWljb25bc2hhcGU9d2luZG93LWNsb3NlXSwuY2xyLWNv'@; put 'bWJvYm94LXdyYXBwZXIgLmxhYmVsLWNvbWJvYm94LXBpbGwgY2xyLWljb25bc2hhcGU9d2luZG93LWNsb3NlXXtjb2xvcjp2YXIoLS1jbHItY29tYm9ib3gtcGlsbC1mb250LWNvbG9yKX0uY2xyLWNvbWJvYm94LXdyYXBwZXIgLmNsci1jb21ib2JveC1pbnB1dC13cmFwcGVye2JvcmRlcjow'@; put 'O2JhY2tncm91bmQ6MCAwfS5jbHItY29tYm9ib3gtd3JhcHBlcjpub3QoLmRpc2FibGVkKTpob3ZlciwuY2xyLWNvbWJvYm94LXdyYXBwZXI6Zm9jdXMtd2l0aGlue2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbWJvYm94LWhvdmVyLWJhY2tncm91bmQtY29sb3IpfS5jbHItY29tYm9i'@; put 'b3gtdHJpZ2dlcntwYWRkaW5nLWxlZnQ6dmFyKC0tY2xyLWNvbWJvYm94LXRyaWdnZXItcGFkZGluZy1sZWZ0KTtwYWRkaW5nLXJpZ2h0OnZhcigtLWNsci1jb21ib2JveC10cmlnZ2VyLXBhZGRpbmctcmlnaHQpO21hcmdpbjphdXRvO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTow'@; put 'O3JpZ2h0OjA7YmFja2dyb3VuZDowIDA7Ym9yZGVyOjA7Y29sb3I6Y3VycmVudENvbG9yO2N1cnNvcjpwb2ludGVyO291dGxpbmU6MH0uY2xyLWNvbWJvYm94LXRyaWdnZXI6ZGlzYWJsZWR7Y29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvci1kaXNhYmxlZCl9'@; put 'LmNsci1jb21ib2JveC10cmlnZ2VyOmRpc2FibGVkIGNkcy1pY29uW3NoYXBlPWFuZ2xlXSwuY2xyLWNvbWJvYm94LXRyaWdnZXI6ZGlzYWJsZWQgY2xyLWljb25bc2hhcGU9YW5nbGVde2NvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tY29sb3ItZGlzYWJsZWQpfS5j'@; put 'bHItY29tYm9ib3gtdHJpZ2dlciBjZHMtaWNvbltzaGFwZT1hbmdsZV0sLmNsci1jb21ib2JveC10cmlnZ2VyIGNsci1pY29uW3NoYXBlPWFuZ2xlXXtjb2xvcjp2YXIoLS1jbHItY29tYm9ib3gtdHJpZ2dlci1mb250LWNvbG9yKTtoZWlnaHQ6dmFyKC0tY2xyLWNvbWJvYm94LWNhcmV0LWlj'@; put 'b24tc2l6ZSk7d2lkdGg6dmFyKC0tY2xyLWNvbWJvYm94LWNhcmV0LWljb24tc2l6ZSk7bWluLWhlaWdodDp2YXIoLS1jbHItY29tYm9ib3gtY2FyZXQtaWNvbi1zaXplKTttaW4td2lkdGg6dmFyKC0tY2xyLWNvbWJvYm94LWNhcmV0LWljb24tc2l6ZSl9LmNsci1jb21ib2JveC1vcHRpb25z'@; put 'e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cG9zaXRpb246YWJzb2x1dGU7dG9wOjEwMCU7bGVmdDowO21pbi13aWR0aDpjYWxjKDEyMCooMXJlbS92YXIoLS1jZHMtZ2xvYmFsLWJhc2UpKSk7bWF4LXdpZHRoOmNhbGMoMzYwKigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFz'@; put 'ZSkpKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1kcm9wZG93bi1iZy1jb2xvcik7Ym9yZGVyLXdpZHRoOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTEwMCk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZHJvcGRvd24tYm9yZGVyLWNv'@; put 'bG9yKTtib3JkZXItcmFkaXVzOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXJhZGl1cy0xMDApO2JveC1zaGFkb3c6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1zaGFkb3ctMjAwKTttYXJnaW4tdG9wOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMik7cGFkZGluZzp2YXIoLS1jZHMtZ2xv'@; put 'YmFsLXNwYWNlLTYpIDA7dmlzaWJpbGl0eTpoaWRkZW47ei1pbmRleDoxMDUwO3Bvc2l0aW9uOnN0YXRpYzttYXgtaGVpZ2h0OmNhbGMoMjQwKigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTtvdmVyZmxvdy15OmF1dG87dmlzaWJpbGl0eTp2aXNpYmxlfS5jbHItY29tYm9ib3gtb3B0'@; put 'aW9ucyAuY2xyLWNvbWJvYm94LW9wdGlvbnMtbG9hZGluZ3twYWRkaW5nOmNhbGMoMyooMXJlbS92YXIoLS1jZHMtZ2xvYmFsLWJhc2UpKSkgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xKX0uY2xyLWNvbWJvYm94LW9wdGlvbnMgLmNsci1jb21ib2JveC1vcHRpb25zLWxvYWRpbmcgLmNsci1j'@; put 'b21ib2JveC1vcHRpb25zLWxvYWRpbmctdGV4dHtwYWRkaW5nLWxlZnQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS00KX0uY2xyLWNvbWJvYm94LW9wdGlvbnMgLmNsci1jb21ib2JveC1vcHRpb25zLWVtcHR5LXRleHR7cGFkZGluZy1sZWZ0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNil9LmNs'@; put 'ci1jb21ib2JveC1vcHRpb257Zm9udC1zaXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFyeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1kcm9wZG93bi1pdGVtLWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpO2xl'@; put 'dHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFyeS1sZXR0ZXItc3BhY2luZyk7Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWl0ZW0tY29sb3IpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWl0ZW0tYmctY29sb3IpO2JvcmRlcjowO2N1'@; put 'cnNvcjpwb2ludGVyO2Rpc3BsYXk6ZmxleDtnYXA6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0zKTthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OmF1dG87bWFyZ2luOjA7d2lkdGg6MTAwJTt0ZXh0LXRyYW5zZm9ybTpub25lfS5jbHItY29tYm9ib3gtb3B0aW9uLmFjdGl2ZXtjb2xvcjp2YXIo'@; put 'LS1jbHItZHJvcGRvd24taXRlbS1zZWxlY3RlZC1jb2xvcik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZHJvcGRvd24taXRlbS1zZWxlY3RlZC1iZy1jb2xvcil9LmNsci1jb21ib2JveC1vcHRpb246aG92ZXJ7Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWl0ZW0taG92ZXItY29sb3Ip'@; put 'O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWl0ZW0taG92ZXItYmctY29sb3IpO3RleHQtZGVjb3JhdGlvbjpub25lfS5jbHItY29tYm9ib3gtb3B0aW9uOmhvdmVyLmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1kcm9wZG93bi1pdGVtLXNlbGVjdGVkLWhv'@; put 'dmVyLWJnLWNvbG9yKX0uY2xyLWNvbWJvYm94LW9wdGlvbjphY3RpdmV7Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWl0ZW0tYWN0aXZlLWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1kcm9wZG93bi1pdGVtLWFjdGl2ZS1iZy1jb2xvcil9LmNsci1jb21ib2JveC1vcHRpb246'@; put 'YWN0aXZlLmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1kcm9wZG93bi1pdGVtLXNlbGVjdGVkLWFjdGl2ZS1iZy1jb2xvcil9LmNsci1jb21ib2JveC1vcHRpb246Zm9jdXN7ei1pbmRleDppbmhlcml0fS5jbHItY29tYm9ib3gtb3B0aW9uLmRpc2FibGVkLC5jbHItY29tYm9i'@; put 'b3gtb3B0aW9uOmRpc2FibGVke3BvaW50ZXItZXZlbnRzOm5vbmU7Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWl0ZW0tZGlzYWJsZWQtY29sb3IpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWl0ZW0tZGlzYWJsZWQtYmctY29sb3IpOy13ZWJraXQtdXNlci1zZWxlY3Q6'@; put 'bm9uZTt1c2VyLXNlbGVjdDpub25lfS5jbHItY29tYm9ib3gtb3B0aW9uLmRpc2FibGVkOmhvdmVyLC5jbHItY29tYm9ib3gtb3B0aW9uOmRpc2FibGVkOmhvdmVye2JhY2tncm91bmQ6MCAwfS5jbHItY29tYm9ib3gtb3B0aW9uLmRpc2FibGVkOmFjdGl2ZSwuY2xyLWNvbWJvYm94LW9wdGlv'@; put 'bjpkaXNhYmxlZDphY3RpdmV7YmFja2dyb3VuZDowIDA7Ym94LXNoYWRvdzpub25lfS5jbHItY29tYm9ib3gtb3B0aW9uLmNsci1mb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1jb21ib2JveC1hY3RpdmUtYmFja2dyb3VuZC1jb2xvcil9LmNsci1jb21ib2JveC1vcHRpb25zIC5j'@; put 'bHItY29tYm9ib3gtb3B0aW9ue3BhZGRpbmc6MCB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NTc2cHgpey5jbHItY29tYm9ib3gtb3B0aW9ucyAuY2xyLWNvbWJvYm94LW9wdGlvbntwYWRkaW5nOnZhcigtLWNkcy1nbG9iYWwtc3BhY2Ut'@; put 'NCkgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KX19LmNsci1jb21ib2JveC1kaXNhYmxlZHtjb2xvcjp2YXIoLS1jbHItZm9ybXMtdGV4dC1kaXNhYmxlZC1jb2xvcik7Y3Vyc29yOm5vdC1hbGxvd2VkfS5jbHItY29tYm9ib3gtZGlzYWJsZWQgLmNsci1jb21ib2JveC1pbnB1dCwuY2xyLWNv'@; put 'bWJvYm94LWRpc2FibGVkIC5jbHItY29tYm9ib3gtcmVtb3ZlLWJ0biwuY2xyLWNvbWJvYm94LWRpc2FibGVkIC5jbHItY29tYm9ib3gtdHJpZ2dlcntjdXJzb3I6bm90LWFsbG93ZWR9LmNsci1maWx0ZXItaGlnaGxpZ2h0IGJ7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3Jh'@; put 'cGh5LWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtjb2xvcjp2YXIoLS1jbHItY29tYm9ib3gtZmlsdGVyLWhpZ2hsaWdodCl9OnJvb3QgW2Nkcy10aGVtZV17LS1jbHItc3RhY2stdmlldy1ib3JkZXItd2lkdGg6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMTAwKTstLWNsci1z'@; put 'dGFjay12aWV3LWJvcmRlci1yYWRpdXM6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItcmFkaXVzLTEwMCk7LS1jbHItc3RhY2stdmlldy1ib3JkZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItY29sb3IpOy0tY2xyLXN0YWNrLWJsb2NrLWNoYW5nZWQtYm9yZGVy'@; put 'LXRvcC1jb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1ib3JkZXItY29sb3IpOy0tY2xyLXN0YWNrLXZpZXctdGl0bGUtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNDAwKTstLWNsci1zdGFjay12aWV3LXJvdy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBo'@; put 'eS1jb2xvci00MDApOy0tY2xyLXN0YWNrLXZpZXctcm93LWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtY29udGFpbmVyLWJhY2tncm91bmQpOy0tY2xyLXN0YWNrLXZpZXctZXhwYW5kYWJsZS1yb3ctY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xv'@; put 'cik7LS1jbHItc3RhY2stdmlldy1leHBhbmRhYmxlLXJvdy1iZy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQpOy0tY2xyLXN0YWNrLXZpZXctZXhwYW5kYWJsZS1yb3ctaG92ZXI6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1j'@; put 'b2xvci1ob3Zlcik7LS1jbHItc3RhY2stdmlldy1leHBhbmRhYmxlLXJvdy1iZy1ob3Zlcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtaG92ZXIpOy0tY2xyLXN0YWNrLXZpZXctZXhwYW5kYWJsZS1yb3ctYWN0aXZlOnZhcigtLWNkcy1hbGlhcy1vYmpl'@; put 'Y3QtaW50ZXJhY3Rpb24tY29sb3ItYWN0aXZlKTstLWNsci1zdGFjay12aWV3LWV4cGFuZGFibGUtcm93LWJnLWFjdGl2ZTp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtYWN0aXZlKTstLWNsci1zdGFjay12aWV3LWV4cGFuZGVkLXJvdy1jb2xvcjp2YXIo'@; put 'LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yLXNlbGVjdGVkKTstLWNsci1zdGFjay12aWV3LWV4cGFuZGVkLXJvdy1iZy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtc2VsZWN0ZWQpOy0tY2xyLXN0YWNrLXZpZXctZXhwYW5k'@; put 'ZWQtaG92ZXItcm93LWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1zZWxlY3RlZC1ob3Zlcik7LS1jbHItc3RhY2stdmlldy1leHBhbmRlZC1hY3RpdmUtcm93LWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24t'@; put 'YmFja2dyb3VuZC1zZWxlY3RlZC1hY3RpdmUpOy0tY2xyLXN0YWNrLXZpZXctcm93LWZvbnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWNvbmRhcnktZm9udC1zaXplKTstLWNsci1zdGFjay12aWV3LXJvdy1mb250LXdlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBo'@; put 'eS1zZWNvbmRhcnktZm9udC13ZWlnaHQpOy0tY2xyLXN0YWNrLXZpZXctcm93LWxpbmUtaGVpZ2h0OmNhbGMoMjAgKiAoMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTstLWNsci1zdGFjay12aWV3LXJvdy1sZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1z'@; put 'ZWNvbmRhcnktbGV0dGVyLXNwYWNpbmcpOy0tY2xyLXN0YWNrLXZpZXctc3RhY2stYmxvY2stYm9yZGVyLWJvdHRvbTp2YXIoLS1jbHItc3RhY2stdmlldy1ib3JkZXItY29sb3IpOy0tY2xyLXN0YWNrLXZpZXctc3RhY2stY2hpbGRyZW4tc3RhY2stYmxvY2stYm9yZGVyLWJvdHRvbS1jb2xv'@; put 'cjp2YXIoLS1jbHItc3RhY2stdmlldy1ib3JkZXItY29sb3IpOy0tY2xyLXN0YWNrLXZpZXctc3RhY2stY2hpbGRyZW4tc3RhY2stYmxvY2stbGFiZWwtYW5kLWNvbnRlbnQtYmctY29sb3I6dmFyKC0tY2xyLXN0YWNrLXZpZXctYmctY29sb3IpOy0tY2xyLXN0YWNrLXZpZXctc3RhY2stYmxv'@; put 'Y2stY2FyZXQtY29sb3I6dmFyKC0tY2xyLXN0YWNrLXZpZXctZXhwYW5kYWJsZS1yb3ctY29sb3IpOy0tY2xyLXN0YWNrLXZpZXctY29sb3I6dmFyKC0tY2xyLXN0YWNrLXZpZXctcm93LWNvbG9yKTstLWNsci1zdGFjay12aWV3LWJnLWNvbG9yOnZhcigtLWNsci1zdGFjay12aWV3LXJvdy1i'@; put 'Zy1jb2xvcik7LS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1sYWJlbC1mb250LXNpemU6dmFyKC0tY2xyLXN0YWNrLXZpZXctcm93LWZvbnQtc2l6ZSk7LS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1sYWJlbC1mb250LXdlaWdodDp2YXIoLS1jbHItc3RhY2stdmlldy1yb3ctZm9u'@; put 'dC13ZWlnaHQpOy0tY2xyLXN0YWNrLXZpZXctc3RhY2stYmxvY2stbGFiZWwtbGluZS1oZWlnaHQ6dmFyKC0tY2xyLXN0YWNrLXZpZXctcm93LWxpbmUtaGVpZ2h0KTstLWNsci1zdGFjay12aWV3LXN0YWNrLWJsb2NrLWxhYmVsLWxldHRlci1zcGFjaW5nOnZhcigtLWNsci1zdGFjay12aWV3'@; put 'LXJvdy1sZXR0ZXItc3BhY2luZyk7LS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1leHBhbmRlZC1iZy1jb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1leHBhbmRlZC1yb3ctYmctY29sb3IpOy0tY2xyLXN0YWNrLXZpZXctc3RhY2stYmxvY2stZXhwYW5kYWJsZS1ob3Zlcjp2YXIoLS1j'@; put 'bHItc3RhY2stdmlldy1leHBhbmRhYmxlLXJvdy1ob3Zlcik7LS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1leHBhbmRlZC10ZXh0LWNvbG9yOnZhcigtLWNsci1zdGFjay12aWV3LWV4cGFuZGVkLXJvdy1jb2xvcil9LnN0YWNrLWhlYWRlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6'@; put 'ZmxleC1lbmR9LnN0YWNrLWhlYWRlciAuc3RhY2stdGl0bGV7ZGlzcGxheTpibG9jaztmbGV4OjEgMSBhdXRvO21hcmdpbjowO3BhZGRpbmc6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KSAwO2NvbG9yOnZhcigtLWNsci1zdGFjay12aWV3LXRpdGxlLWNvbG9yKTtmb250LXNpemU6dmFyKC0t'@; put 'Y2RzLWFsaWFzLXR5cG9ncmFwaHktc3Vic2VjdGlvbi1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXN1YnNlY3Rpb24tZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXN1YnNlY3Rpb24tbGluZS1oZWln'@; put 'aHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXN1YnNlY3Rpb24tbGV0dGVyLXNwYWNpbmcpfS5zdGFjay1oZWFkZXIgLnN0YWNrLWFjdGlvbnN7ZGlzcGxheTpibG9jaztmbGV4OjAgMCBhdXRvfS5zdGFjay1oZWFkZXIgLnN0YWNrLWFjdGlvbnMgLnN0YWNr'@; put 'LWFjdGlvbnttaW4td2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMSl9LnN0YWNrLXZpZXd7b3ZlcmZsb3cteTphdXRvO3dvcmQtd3JhcDpicmVhay13b3JkO21hcmdpbi10b3A6MDtib3JkZXI6dmFyKC0tY2xyLXN0YWNrLXZpZXctYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1jbHIt'@; put 'c3RhY2stdmlldy1ib3JkZXItY29sb3IpO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLXN0YWNrLXZpZXctYm9yZGVyLXJhZGl1cyl9LnN0YWNrLXZpZXcgZGQsLnN0YWNrLXZpZXcgZHR7bWFyZ2luLWlubGluZS1zdGFydDowO21hcmdpbi1sZWZ0OjB9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2Nr'@; put 'e2Rpc3BsYXk6ZmxleDtmbGV4LWZsb3c6cm93IHdyYXA7b3ZlcmZsb3cteTpoaWRkZW47Ym9yZGVyLWJvdHRvbS13aWR0aDp2YXIoLS1jbHItc3RhY2stdmlldy1ib3JkZXItd2lkdGgpO2JvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItc3Rh'@; put 'Y2stdmlldy1zdGFjay1ibG9jay1ib3JkZXItYm90dG9tKX0uc3RhY2stdmlldz4uc3RhY2stYmxvY2s6bGFzdC1jaGlsZCwuc3RhY2stdmlldz46bGFzdC1jaGlsZCAuc3RhY2stYmxvY2s6bGFzdC1vZi10eXBle2JvcmRlci1ib3R0b206bm9uZX0uc3RhY2stdmlldyAuc3RhY2stYmxvY2st'@; put 'Y2hhbmdlZDpiZWZvcmV7Y29udGVudDoiICI7cG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjA7d2lkdGg6MDtib3JkZXItdG9wOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNikgc29saWQgdmFyKC0tY2xyLXN0YWNrLWJsb2NrLWNoYW5nZWQtYm9yZGVyLXRvcC1jb2xvcik7Ym9yZGVyLXJpZ2h0'@; put 'OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNikgc29saWQgdHJhbnNwYXJlbnR9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWNhcmV0e2FsaWduLXNlbGY6Y2VudGVyfS5zdGFjay12aWV3IC5zdGFjay1ibG9jay1sYWJlbHtwYWRkaW5nOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkgdmFyKC0t'@; put 'Y2RzLWdsb2JhbC1zcGFjZS02KSB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTEpO2NvbG9yOnZhcigtLWNsci1zdGFjay12aWV3LWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1zdGFjay12aWV3LWJnLWNvbG9yKTtmb250LXNpemU6'@; put 'dmFyKC0tY2xyLXN0YWNrLXZpZXctc3RhY2stYmxvY2stbGFiZWwtZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1sYWJlbC1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tY2xyLXN0YWNrLXZpZXctc3RhY2stYmxvY2stbGFiZWwt'@; put 'bGluZS1oZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWNsci1zdGFjay12aWV3LXN0YWNrLWJsb2NrLWxhYmVsLWxldHRlci1zcGFjaW5nKTtmbGV4OjEgMSBhdXRvO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWxhYmVsOmZvY3Vz'@; put 'e291dGxpbmUtY29sb3I6SGlnaGxpZ2h0O291dGxpbmUtY29sb3I6LXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO291dGxpbmUtc3R5bGU6YXV0bztvdXRsaW5lLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSk7b3V0bGluZS1vZmZzZXQ6Y2FsYygtMSp2YXIoLS1jZHMtZ2xvYmFsLXNw'@; put 'YWNlLTEpKX0uc3RhY2stdmlldyAuc3RhY2stdmlldy1rZXl7ZmxleDowIDEgNDAlO21heC13aWR0aDo0MCU7bWFyZ2luLXJpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyl9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWNhcmV0e2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcp'@; put 'O3dpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7bWluLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpO21pbi13aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpOy0tY29sb3I6dmFyKC0tY2xyLXN0YWNrLXZpZXctc3RhY2stYmxvY2stY2FyZXQtY29sb3IpO21hcmdp'@; put 'bi1yaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpfS5zdGFjay12aWV3IC5zdGFjay1ibG9jay1jb250ZW50e2ZsZXg6MSAxIGF1dG87d2lkdGg6NjAlO21hcmdpbi1ib3R0b206MH0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stY29udGVudD46Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDow'@; put 'fS5zdGFjay12aWV3IC5zdGFjay1ibG9jay1jb250ZW50PjpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH0uc3RhY2stdmlldyAuc3RhY2stY2hpbGRyZW57ZmxleDowIDAgYXV0bzt3aWR0aDoxMDAlfS5zdGFjay12aWV3IC5zdGFjay1jaGlsZHJlbiAuc3RhY2stYmxvY2t7Ym9yZGVyLWJv'@; put 'dHRvbS1jb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1zdGFjay1jaGlsZHJlbi1zdGFjay1ibG9jay1ib3JkZXItYm90dG9tLWNvbG9yKX0uc3RhY2stdmlldyAuc3RhY2stY2hpbGRyZW4+LnN0YWNrLWJsb2NrOmxhc3QtY2hpbGQsLnN0YWNrLXZpZXcgLnN0YWNrLWNoaWxkcmVuPjpsYXN0'@; put 'LWNoaWxkIC5zdGFjay1ibG9jazpsYXN0LW9mLXR5cGV7Ym9yZGVyLWJvdHRvbTpub25lfS5zdGFjay12aWV3IC5zdGFjay1jaGlsZHJlbiAuc3RhY2stYmxvY2stbGFiZWwsLnN0YWNrLXZpZXcgLnN0YWNrLWNoaWxkcmVuIC5zdGFjay1ibG9jay1jb250ZW50e2JhY2tncm91bmQtY29sb3I6'@; put 'dmFyKC0tY2xyLXN0YWNrLXZpZXctc3RhY2stY2hpbGRyZW4tc3RhY2stYmxvY2stbGFiZWwtYW5kLWNvbnRlbnQtYmctY29sb3IpfS5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRhYmxlPi5zdGFjay1ibG9jay1sYWJlbHtwYWRkaW5nLWxlZnQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFj'@; put 'ZS02KTtjb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1leHBhbmRhYmxlLXJvdy1jb2xvcik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1leHBhbmRhYmxlLXJvdy1iZy1jb2xvcik7Y3Vyc29yOnBvaW50ZXJ9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFi'@; put 'bGU+LnN0YWNrLWJsb2NrLWxhYmVsOmJlZm9yZXtkaXNwbGF5OmlubGluZS1ibG9jaztjb250ZW50OiIiO2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpO3dpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7bWluLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpO21p'@; put 'bi13aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTND'@; put 'c3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxMiUyMDEyJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3N0eWxlJTNFLmNscy0xJTdC'@; put 'ZmlsbCUzQXZhcigtLWNsci1hY2NvcmRpb24tdGV4dC1jb2xvciklM0IlN0QlM0MlMkZzdHlsZSUzRSUwQSUyMCUyMCUyMCUyMCUzQyUyRmRlZnMlM0UlMEElMjAlMjAlMjAlMjAlM0N0aXRsZSUzRUNhcmV0JTNDJTJGdGl0bGUlM0UlMEElMjAlMjAlMjAlMjAlM0NwYXRoJTIwY2xhc3MlM0Ql'@; put 'MjJjbHMtMSUyMiUyMGQlM0QlMjJNNiUyQzlMMS4yJTJDNC4yYTAuNjglMkMwLjY4JTJDMCUyQzAlMkMxJTJDMS0xTDYlMkM3LjA4JTJDOS44NCUyQzMuMjRhMC42OCUyQzAuNjglMkMwJTJDMSUyQzElMkMxJTJDMVolMjIlMkYlM0UlMEElM0MlMkZzdmclM0UlMEEiKTt0cmFuc2Zvcm06cm90'@; put 'YXRlKC05MGRlZyk7bWFyZ2luLXJpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSl9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFibGU+LnN0YWNrLWJsb2NrLWxhYmVsLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRhYmxlPi5zdGFjay1ibG9jay1jb250ZW50e3Ry'@; put 'YW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgZWFzZS1pbi1vdXQsY29sb3IgLjJzIGVhc2UtaW4tb3V0fS5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRhYmxlOm5vdCguc3RhY2stYmxvY2stZXhwYW5kZWQpPi5zdGFjay1ibG9jay1sYWJlbDpob3Zlcntjb2xvcjp2YXIoLS1j'@; put 'bHItc3RhY2stdmlldy1zdGFjay1ibG9jay1leHBhbmRhYmxlLWhvdmVyKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1zdGFjay12aWV3LWV4cGFuZGFibGUtcm93LWJnLWhvdmVyKX0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kYWJsZTpub3QoLnN0YWNrLWJsb2NrLWV4cGFu'@; put 'ZGVkKT4uc3RhY2stYmxvY2stbGFiZWw6aG92ZXIgLnN0YWNrLWJsb2NrLWNhcmV0e2ZpbGw6dmFyKC0tY2xyLXN0YWNrLXZpZXctc3RhY2stYmxvY2stZXhwYW5kYWJsZS1ob3Zlcil9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFibGU6bm90KC5zdGFjay1ibG9jay1leHBhbmRl'@; put 'ZCk+LnN0YWNrLWJsb2NrLWxhYmVsOmhvdmVyOmFjdGl2ZXtjb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1leHBhbmRhYmxlLXJvdy1hY3RpdmUpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXN0YWNrLXZpZXctZXhwYW5kYWJsZS1yb3ctYmctYWN0aXZlKX0uc3RhY2stdmlldyAuc3Rh'@; put 'Y2stYmxvY2stZXhwYW5kYWJsZTpub3QoLnN0YWNrLWJsb2NrLWV4cGFuZGVkKT4uc3RhY2stYmxvY2stbGFiZWw6aG92ZXI6YWN0aXZlIC5zdGFjay1ibG9jay1jYXJldHtmaWxsOnZhcigtLWNsci1zdGFjay12aWV3LWV4cGFuZGFibGUtcm93LWFjdGl2ZSl9LnN0YWNrLXZpZXcgLnN0YWNr'@; put 'LWJsb2NrLWV4cGFuZGFibGUuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWxhYmVse2JvcmRlci1ib3R0b20td2lkdGg6dmFyKC0tY2xyLXN0YWNrLXZpZXctYm9yZGVyLXdpZHRoKTtib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0t'@; put 'Y2xyLXN0YWNrLXZpZXctc3RhY2stYmxvY2stYm9yZGVyLWJvdHRvbSk7Y29sb3I6dmFyKC0tY2xyLXN0YWNrLXZpZXctc3RhY2stYmxvY2stZXhwYW5kZWQtdGV4dC1jb2xvcik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1leHBhbmRlZC1iZy1j'@; put 'b2xvcil9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFibGUuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWxhYmVsOmJlZm9yZXt0cmFuc2Zvcm06cm90YXRlKDApfS5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRhYmxlLnN0YWNrLWJsb2NrLWV4cGFuZGVk'@; put 'Pi5zdGFjay1ibG9jay1sYWJlbCAuc3RhY2stYmxvY2stY2FyZXR7ZmlsbDp2YXIoLS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1leHBhbmRlZC10ZXh0LWNvbG9yKX0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kYWJsZS5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxv'@; put 'Y2stbGFiZWw6aG92ZXJ7Y29sb3I6dmFyKC0tY2xyLXN0YWNrLXZpZXctc3RhY2stYmxvY2stZXhwYW5kYWJsZS1ob3Zlcik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1leHBhbmRlZC1ob3Zlci1yb3ctYmctY29sb3IpfS5zdGFjay12aWV3IC5zdGFjay1ibG9jay1l'@; put 'eHBhbmRhYmxlLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1sYWJlbDpob3ZlciAuc3RhY2stYmxvY2stY2FyZXR7ZmlsbDp2YXIoLS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1leHBhbmRhYmxlLWhvdmVyKX0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kYWJs'@; put 'ZS5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stbGFiZWw6aG92ZXI6YWN0aXZle2NvbG9yOnZhcigtLWNsci1zdGFjay12aWV3LWV4cGFuZGFibGUtcm93LWFjdGl2ZSk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1leHBhbmRlZC1hY3RpdmUtcm93LWJn'@; put 'LWNvbG9yKX0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kYWJsZS5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stbGFiZWw6aG92ZXI6YWN0aXZlIC5zdGFjay1ibG9jay1jYXJldHtmaWxsOnZhcigtLWNsci1zdGFjay12aWV3LWV4cGFuZGFibGUtcm93LWFjdGl2ZSl9'@; put 'Lm1vZGFsIC5zdGFjay12aWV3e21hcmdpbi1ib3R0b206MH0uc3RhY2stdmlldyBjbHItc3RhY2stYmxvY2suc3RhY2stYmxvY2stZXhwYW5kYWJsZSAuc3RhY2stYmxvY2stbGFiZWw6YmVmb3Jle2NvbnRlbnQ6bm9uZX0uc3RhY2stdmlldyAuc3RhY2stY2hpbGRyZW4gY2xyLXN0YWNrLWJs'@; put 'b2NrIC5zdGFjay1ibG9jay1sYWJlbCAuc3RhY2stdmlldy1rZXksLnN0YWNrLXZpZXcgLnN0YWNrLWNoaWxkcmVuIC5zdGFjay1ibG9jay1sYWJlbCAuc3RhY2stdmlldy1rZXl7cGFkZGluZy1sZWZ0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNil9LnN0YWNrLXZpZXcgLnN0YWNrLWNoaWxk'@; put 'cmVuIGNsci1zdGFjay1ibG9jayAuc3RhY2stYmxvY2stbGFiZWw6YmVmb3JlLC5zdGFjay12aWV3IC5zdGFjay1jaGlsZHJlbiAuc3RhY2stYmxvY2stbGFiZWw6YmVmb3Jle2Rpc3BsYXk6bm9uZX06cm9vdCBbY2RzLXRoZW1lXXstLWNsci10cmVlLWJvcmRlci1yYWRpdXM6dmFyKC0tY2Rz'@; put 'LWFsaWFzLW9iamVjdC1ib3JkZXItcmFkaXVzLTEwMCk7LS1jbHItdHJlZS1saW5rLWhvdmVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1ob3Zlcik7LS1jbHItdHJlZS1saW5rLXNlbGVjdGlvbi1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2Jq'@; put 'ZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtc2VsZWN0ZWQpOy0tY2xyLXRyZWUtbGluay10ZXh0LWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tY29sb3IpOy0tY2xyLXRyZWUtbm9kZS1jYXJldC1saW5rLWhvdmVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmpl'@; put 'Y3QtaW50ZXJhY3Rpb24tY29sb3ItaG92ZXIpOy0tY2xyLXRyZWUtbm9kZS1jYXJldC1saW5rLWFjdGl2ZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yLWFjdGl2ZSk7LS1jbHItdHJlZS1ub2RlLWNhcmV0LWxpbmstZGlzYWJsZWQtY29sb3I6dmFyKC0t'@; put 'Y2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvci1kaXNhYmxlZCk7LS1jbHItdHJlZS1ub2RlLWNhcmV0LWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tY29sb3IpOy0tY2xyLXRyZWUtbm9kZS1jYXJldC1ob3Zlci1jb2xvcjp2YXIoLS1jbHItdHJlZS1u'@; put 'b2RlLWNhcmV0LWxpbmstaG92ZXItY29sb3IpOy0tY2xyLXRyZWUtbm9kZS1jYXJldC1hY3RpdmUtY29sb3I6dmFyKC0tY2xyLXRyZWUtbm9kZS1jYXJldC1saW5rLWFjdGl2ZS1jb2xvcik7LS1jbHItdHJlZS1ub2RlLWNhcmV0LWRpc2FibGVkLWNvbG9yOnZhcigtLWNsci10cmVlLW5vZGUt'@; put 'Y2FyZXQtbGluay1kaXNhYmxlZC1jb2xvcik7LS1jbHItdHJlZS1ub2RlLWNvbnRlbnQtdGV4dC1vbmx5LWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTQwMCk7LS1jbHItdHJlZS1ub2RlLWNvbnRlbnQtY29sb3I6dmFyKC0tY2xyLXRyZWUtbGluay10ZXh0LWNvbG9y'@; put 'KTstLWNsci10cmVlLW5vZGUtY29udGVudC1iZy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LW9wYWNpdHktMCk7LS1jbHItdHJlZS1ub2RlLWNvbnRlbnQtaG92ZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvci1ob3Zlcik7LS1jbHItdHJlZS1u'@; put 'b2RlLWNvbnRlbnQtYmctaG92ZXItY29sb3I6dmFyKC0tY2xyLXRyZWUtbGluay1ob3Zlci1jb2xvcik7LS1jbHItdHJlZS1ub2RlLWNvbnRlbnQtYWN0aXZlLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tY29sb3ItYWN0aXZlKTstLWNsci10cmVlLW5vZGUtY29u'@; put 'dGVudC1iZy1hY3RpdmUtY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLWFjdGl2ZSk7LS1jbHItdHJlZS1ub2RlLWNvbnRlbnQtc2VsZWN0ZWQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvci1zZWxlY3RlZCk7'@; put 'LS1jbHItdHJlZS1ub2RlLWNvbnRlbnQtYmctc2VsZWN0ZWQtY29sb3I6dmFyKC0tY2xyLXRyZWUtbGluay1zZWxlY3Rpb24tY29sb3IpOy0tY2xyLXRyZWUtbm9kZS1jb250ZW50LWJnLXNlbGVjdGVkLWhvdmVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFj'@; put 'a2dyb3VuZC1zZWxlY3RlZC1ob3Zlcik7LS1jbHItdHJlZS1ub2RlLWNvbnRlbnQtYmctc2VsZWN0ZWQtYWN0aXZlLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1zZWxlY3RlZC1hY3RpdmUpOy0tY2xyLXRyZWUtbm9kZS1jb250ZW50LWRpc2Fi'@; put 'bGVkLWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWRpc2FibGVkKTstLWNsci10cmVlLW5vZGUtY29udGVudC1iZy1kaXNhYmxlZC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LW9wYWNpdHktMCl9LmNsci10cmVlLW5vZGV7ZGlzcGxheTpibG9ja30uY2xyLXRyZWUtbm9k'@; put 'ZS5kaXNhYmxlZCAuY2xyLXRyZWUtbm9kZS1jb250ZW50LWNvbnRhaW5lcntjdXJzb3I6bm90LWFsbG93ZWR9LmNsci10cmVlLW5vZGUuZGlzYWJsZWQgLmNsci10cmVlLW5vZGUtY29udGVudC1jb250YWluZXIgLmNsci10cmVlbm9kZS1saW5re3BvaW50ZXItZXZlbnRzOm5vbmV9LmNsci10'@; put 'cmVlLW5vZGUuZGlzYWJsZWQgLmNsci10cmVlLW5vZGUtY29udGVudC1jb250YWluZXIgLmNsci10cmVlbm9kZS1saW5rLC5jbHItdHJlZS1ub2RlLmRpc2FibGVkIC5jbHItdHJlZS1ub2RlLWNvbnRlbnQtY29udGFpbmVyIC5jbHItdHJlZW5vZGUtY29udGVudCwuY2xyLXRyZWUtbm9kZS5k'@; put 'aXNhYmxlZCAuY2xyLXRyZWUtbm9kZS1jb250ZW50LWNvbnRhaW5lciAuY2xyLXRyZWVub2RlLWNoZWNrYm94e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXRyZWUtbm9kZS1jb250ZW50LWJnLWRpc2FibGVkLWNvbG9yKX0uY2xyLXRyZWUtbm9kZS5kaXNhYmxlZCAuY2xyLXRyZWUtbm9k'@; put 'ZS1jb250ZW50LWNvbnRhaW5lciAuY2xyLXRyZWVub2RlLWxpbmssLmNsci10cmVlLW5vZGUuZGlzYWJsZWQgLmNsci10cmVlLW5vZGUtY29udGVudC1jb250YWluZXIgLmNsci10cmVlbm9kZS1jb250ZW50LC5jbHItdHJlZS1ub2RlLmRpc2FibGVkIC5jbHItdHJlZS1ub2RlLWNvbnRlbnQt'@; put 'Y29udGFpbmVyIC5jbHItdHJlZW5vZGUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0rLmNsci1jb250cm9sLWxhYmVse2NvbG9yOnZhcigtLWNsci10cmVlLW5vZGUtY29udGVudC1kaXNhYmxlZC1jb2xvcil9LmNsci10cmVlLW5vZGUuZGlzYWJsZWQgLmNsci10cmVlLW5vZGUtY29u'@; put 'dGVudC1jb250YWluZXIgLmNsci10cmVlbm9kZS1saW5rIGNkcy1pY29uLC5jbHItdHJlZS1ub2RlLmRpc2FibGVkIC5jbHItdHJlZS1ub2RlLWNvbnRlbnQtY29udGFpbmVyIC5jbHItdHJlZW5vZGUtbGluayBjbHItaWNvbiwuY2xyLXRyZWUtbm9kZS5kaXNhYmxlZCAuY2xyLXRyZWUtbm9k'@; put 'ZS1jb250ZW50LWNvbnRhaW5lciAuY2xyLXRyZWVub2RlLWNvbnRlbnQgY2RzLWljb24sLmNsci10cmVlLW5vZGUuZGlzYWJsZWQgLmNsci10cmVlLW5vZGUtY29udGVudC1jb250YWluZXIgLmNsci10cmVlbm9kZS1jb250ZW50IGNsci1pY29uLC5jbHItdHJlZS1ub2RlLmRpc2FibGVkIC5j'@; put 'bHItdHJlZS1ub2RlLWNvbnRlbnQtY29udGFpbmVyIC5jbHItdHJlZW5vZGUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0rLmNsci1jb250cm9sLWxhYmVsIGNkcy1pY29uLC5jbHItdHJlZS1ub2RlLmRpc2FibGVkIC5jbHItdHJlZS1ub2RlLWNvbnRlbnQtY29udGFpbmVyIC5jbHIt'@; put 'dHJlZW5vZGUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0rLmNsci1jb250cm9sLWxhYmVsIGNsci1pY29ue2ZpbGw6dmFyKC0tY2xyLXRyZWUtbm9kZS1jYXJldC1kaXNhYmxlZC1jb2xvcil9LmNsci10cmVlLW5vZGUuZGlzYWJsZWQgLmNsci10cmVlLW5vZGUtY29udGVudC1jb250'@; put 'YWluZXIgLmNsci10cmVlbm9kZS1jYXJldHtjdXJzb3I6bm90LWFsbG93ZWR9LmNsci10cmVlLW5vZGUuZGlzYWJsZWQgLmNsci10cmVlLW5vZGUtY29udGVudC1jb250YWluZXIgLmNsci10cmVlbm9kZS1jYXJldCBjZHMtaWNvbiwuY2xyLXRyZWUtbm9kZS5kaXNhYmxlZCAuY2xyLXRyZWUt'@; put 'bm9kZS1jb250ZW50LWNvbnRhaW5lciAuY2xyLXRyZWVub2RlLWNhcmV0IGNsci1pY29ue2ZpbGw6dmFyKC0tY2xyLXRyZWUtbm9kZS1jYXJldC1kaXNhYmxlZC1jb2xvcil9LmNsci10cmVlLW5vZGUtY29udGVudC1jb250YWluZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtm'@; put 'b250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWNvbmRh'@; put 'cnktbGluZS1oZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFyeS1sZXR0ZXItc3BhY2luZyl9LmNsci10cmVlLW5vZGUtY29udGVudC1jb250YWluZXI+LmNsci10cmVlbm9kZS1jaGVja2JveC5jbHItY2hlY2tib3gtd3JhcHBlcnt3aWR0'@; put 'aDoxMDAlO3BhZGRpbmc6MCAwIDAgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KX0uY2xyLXRyZWUtbm9kZS1jb250ZW50LWNvbnRhaW5lcj4uY2xyLXRyZWVub2RlLWNoZWNrYm94LmNsci1jaGVja2JveC13cmFwcGVyOmZpcnN0LWNoaWxke21hcmdpbi1sZWZ0OnZhcigtLWNkcy1nbG9iYWwt'@; put 'c3BhY2UtMTApfS5jbHItdHJlZS1ub2RlLWNvbnRlbnQtY29udGFpbmVyPi5jbHItdHJlZW5vZGUtY2hlY2tib3guY2xyLWNoZWNrYm94LXdyYXBwZXIgLmNsci1jb250cm9sLWxhYmVse3dpZHRoOjEwMCU7cGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpIHZhcigtLWNkcy1nbG9i'@; put 'YWwtc3BhY2UtNSkgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KSAwfS5jbHItdHJlZS1ub2RlLWNvbnRlbnQtY29udGFpbmVyOmZvY3VzLXZpc2libGV7b3V0bGluZTowfS5jbHItdHJlZS1ub2RlLWNvbnRlbnQtY29udGFpbmVyOmZvY3VzPi5jbHItdHJlZW5vZGUtY29udGVudCwuY2xyLXRy'@; put 'ZWUtbm9kZS1jb250ZW50LWNvbnRhaW5lcjpmb2N1cz4uY2xyLXRyZWVub2RlLWNoZWNrYm94e291dGxpbmUtb2Zmc2V0OmNhbGMoLTEqdmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMjAwKSk7b3V0bGluZS1jb2xvcjpIaWdobGlnaHQ7b3V0bGluZS1jb2xvcjotd2Via2l0'@; put 'LWZvY3VzLXJpbmctY29sb3I7b3V0bGluZS1zdHlsZTphdXRvO291dGxpbmUtd2lkdGg6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMjAwKX0uY2xyLXRyZWVub2RlLWNvbnRlbnR7ZmxleDoxIDEgYXV0bztkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO21pbi1o'@; put 'ZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMCk7Y29sb3I6dmFyKC0tY2xyLXRyZWUtbm9kZS1jb250ZW50LXRleHQtb25seS1jb2xvcik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdHJlZS1ub2RlLWNvbnRlbnQtYmctY29sb3IpO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLXRy'@; put 'ZWUtYm9yZGVyLXJhZGl1cykgMCAwIHZhcigtLWNsci10cmVlLWJvcmRlci1yYWRpdXMpfS5jbHItdHJlZW5vZGUtY29udGVudDpmaXJzdC1jaGlsZHttYXJnaW4tbGVmdDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEwKX0uY2xyLXRyZWVub2RlLWNvbnRlbnQ6bm90KDpoYXMoLmNsci10cmVl'@; put 'bm9kZS1saW5rKSl7cGFkZGluZy1sZWZ0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSl9LmNsci10cmVlbm9kZS1jb250ZW50IGNkcy1pY29uLC5jbHItdHJlZW5vZGUtY29udGVudCBjbHItaWNvbntoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTt3aWR0aDp2YXIoLS1jZHMtZ2xv'@; put 'YmFsLXNwYWNlLTcpO21pbi1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTttaW4td2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTtjb2xvcjp2YXIoLS1jbHItdHJlZS1ub2RlLWNvbnRlbnQtdGV4dC1vbmx5LWNvbG9yKTttYXJnaW4tcmlnaHQ6dmFyKC0tY2RzLWdsb2Jh'@; put 'bC1zcGFjZS01KTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmNsci10cmVlbm9kZS1jb250ZW50IC5jbHItdHJlZW5vZGUtbGluay5hY3RpdmUsLmNsci10cmVlbm9kZS1jaGVja2JveDpoYXMoaW5wdXRbdHlwZT1jaGVja2JveF06bm90KDpkaXNhYmxlZCk6Y2hlY2tlZCl7Y29sb3I6dmFyKC0t'@; put 'Y2xyLXRyZWUtbm9kZS1jb250ZW50LXNlbGVjdGVkLWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10cmVlLW5vZGUtY29udGVudC1iZy1zZWxlY3RlZC1jb2xvcil9LmNsci10cmVlbm9kZS1jb250ZW50IC5jbHItdHJlZW5vZGUtbGluaywuY2xyLXRyZWVub2RlLWNoZWNrYm94'@; put 'e2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLXRyZWUtYm9yZGVyLXJhZGl1cyk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdHJlZS1ub2RlLWNvbnRlbnQtYmctY29sb3IpfS5jbHItdHJlZW5vZGUtY29udGVudCAuY2xyLXRyZWVub2RlLWxpbms6aG92ZXIsLmNsci10cmVlbm9kZS1jaGVj'@; put 'a2JveDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10cmVlLW5vZGUtY29udGVudC1iZy1ob3Zlci1jb2xvcil9LmNsci10cmVlbm9kZS1jb250ZW50IC5jbHItdHJlZW5vZGUtbGluazphY3RpdmUsLmNsci10cmVlbm9kZS1jaGVja2JveDphY3RpdmV7YmFja2dyb3VuZC1jb2xv'@; put 'cjp2YXIoLS1jbHItdHJlZS1ub2RlLWNvbnRlbnQtYmctYWN0aXZlLWNvbG9yKX0uY2xyLXRyZWVub2RlLWNvbnRlbnQgLmNsci10cmVlbm9kZS1saW5rLC5jbHItdHJlZW5vZGUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0rLmNsci1jb250cm9sLWxhYmVse2NvbG9yOnZhcigtLWNs'@; put 'ci10cmVlLW5vZGUtY29udGVudC1jb2xvcil9LmNsci10cmVlbm9kZS1jb250ZW50IC5jbHItdHJlZW5vZGUtbGluayBjZHMtaWNvbiwuY2xyLXRyZWVub2RlLWNvbnRlbnQgLmNsci10cmVlbm9kZS1saW5rIGNsci1pY29uLC5jbHItdHJlZW5vZGUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVj'@; put 'a2JveF0rLmNsci1jb250cm9sLWxhYmVsIGNkcy1pY29uLC5jbHItdHJlZW5vZGUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0rLmNsci1jb250cm9sLWxhYmVsIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci10cmVlLW5vZGUtY29udGVudC1jb2xvcil9LmNsci10cmVlbm9kZS1jb250'@; put 'ZW50IC5jbHItdHJlZW5vZGUtbGluazpob3ZlciwuY2xyLXRyZWVub2RlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdKy5jbHItY29udHJvbC1sYWJlbDpob3Zlcntjb2xvcjp2YXIoLS1jbHItdHJlZS1ub2RlLWNvbnRlbnQtaG92ZXItY29sb3IpfS5jbHItdHJlZW5vZGUtY29udGVu'@; put 'dCAuY2xyLXRyZWVub2RlLWxpbms6aG92ZXIgY2RzLWljb24sLmNsci10cmVlbm9kZS1jb250ZW50IC5jbHItdHJlZW5vZGUtbGluazpob3ZlciBjbHItaWNvbiwuY2xyLXRyZWVub2RlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdKy5jbHItY29udHJvbC1sYWJlbDpob3ZlciBjZHMt'@; put 'aWNvbiwuY2xyLXRyZWVub2RlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdKy5jbHItY29udHJvbC1sYWJlbDpob3ZlciBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItdHJlZS1ub2RlLWNvbnRlbnQtaG92ZXItY29sb3IpfS5jbHItdHJlZW5vZGUtY29udGVudCAuY2xyLXRyZWVub2Rl'@; put 'LWxpbms6YWN0aXZlLC5jbHItdHJlZW5vZGUtY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0rLmNsci1jb250cm9sLWxhYmVsOmFjdGl2ZXtjb2xvcjp2YXIoLS1jbHItdHJlZS1ub2RlLWNvbnRlbnQtYWN0aXZlLWNvbG9yKX0uY2xyLXRyZWVub2RlLWNvbnRlbnQgLmNsci10cmVlbm9k'@; put 'ZS1saW5rOmFjdGl2ZSBjZHMtaWNvbiwuY2xyLXRyZWVub2RlLWNvbnRlbnQgLmNsci10cmVlbm9kZS1saW5rOmFjdGl2ZSBjbHItaWNvbiwuY2xyLXRyZWVub2RlLWNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdKy5jbHItY29udHJvbC1sYWJlbDphY3RpdmUgY2RzLWljb24sLmNsci10'@; put 'cmVlbm9kZS1jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XSsuY2xyLWNvbnRyb2wtbGFiZWw6YWN0aXZlIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci10cmVlLW5vZGUtY29udGVudC1hY3RpdmUtY29sb3IpfS5jbHItdHJlZW5vZGUtY29udGVudCAuY2xyLXRyZWVub2RlLWxpbmsuYWN0'@; put 'aXZlOmhvdmVyLC5jbHItdHJlZW5vZGUtY2hlY2tib3g6aGFzKGlucHV0W3R5cGU9Y2hlY2tib3hdOm5vdCg6ZGlzYWJsZWQpOmNoZWNrZWQpOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXRyZWUtbm9kZS1jb250ZW50LWJnLXNlbGVjdGVkLWhvdmVyLWNvbG9yKX0uY2xyLXRy'@; put 'ZWVub2RlLWNvbnRlbnQgLmNsci10cmVlbm9kZS1saW5rLmFjdGl2ZTphY3RpdmUsLmNsci10cmVlbm9kZS1jaGVja2JveDpoYXMoaW5wdXRbdHlwZT1jaGVja2JveF06bm90KDpkaXNhYmxlZCk6Y2hlY2tlZCk6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXRyZWUtbm9kZS1j'@; put 'b250ZW50LWJnLXNlbGVjdGVkLWFjdGl2ZS1jb2xvcil9LmNsci10cmVlbm9kZS1jYXJldHtmbGV4OjAgMCB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEwKTttYXJnaW46MDtwYWRkaW5nOjA7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTApO3dpZHRoOnZhcigtLWNkcy1nbG9iYWwt'@; put 'c3BhY2UtMTApO21pbi1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMCk7bWluLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTApO2JhY2tncm91bmQ6MCAwO2JvcmRlcjowO2N1cnNvcjpwb2ludGVyO2NvbG9yOnZhcigtLWNsci10cmVlLW5vZGUtY2FyZXQtY29sb3IpfS5j'@; put 'bHItdHJlZW5vZGUtY2FyZXQ6aG92ZXJ7Y29sb3I6dmFyKC0tY2xyLXRyZWUtbm9kZS1jYXJldC1ob3Zlci1jb2xvcil9LmNsci10cmVlbm9kZS1jYXJldDphY3RpdmV7Y29sb3I6dmFyKC0tY2xyLXRyZWUtbm9kZS1jYXJldC1hY3RpdmUtY29sb3IpfS5jbHItdHJlZS1ub2RlLWNhcmV0LWlj'@; put 'b257aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmNsci10cmVlbm9kZS1zcGlubmVyLWNvbnRhaW5lcntoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMCk7d2lkdGg6dmFy'@; put 'KC0tY2RzLWdsb2JhbC1zcGFjZS0xMCk7cGFkZGluZzpjYWxjKCh2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEwKSAtIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNykpKi41KX0uY2xyLXRyZWVub2RlLXNwaW5uZXJ7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7d2lkdGg6dmFyKC0t'@; put 'Y2RzLWdsb2JhbC1zcGFjZS03KTttaW4taGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7bWluLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyl9LmNsci10cmVlbm9kZS1jaGlsZHJlbnttYXJnaW4tbGVmdDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEwKTt3aWxsLWNoYW5n'@; put 'ZTpoZWlnaHQ7b3ZlcmZsb3cteTpoaWRkZW59LmNsci10cmVlbm9kZS1saW5re2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7bWFyZ2luOjA7cGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkgdmFyKC0t'@; put 'Y2RzLWdsb2JhbC1zcGFjZS01KSB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpO2JvcmRlcjowO2N1cnNvcjpwb2ludGVyO3RleHQtYWxpZ246bGVmdH0uY2xyLXRyZWVub2RlLWxpbms6aG92ZXIsLmNsci10cmVlbm9kZS1saW5rOmZvY3Vze3RleHQtZGVjb3JhdGlvbjpub25lfTpyb290IFtj'@; put 'ZHMtdGhlbWVdey0tY2xyLWRhdGFncmlkLWZvbnQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNTAwKTstLWNsci1kYXRhZ3JpZC1kZWZhdWx0LWJvcmRlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1jb2xvcik7LS1jbHItZGF0YWdyaWQtaWNv'@; put 'bi1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yKTstLWNsci1kYXRhZ3JpZC1yb3ctaG92ZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLWhvdmVyKTstLWNsci1kYXRhZ3JpZC1yb3ctYWN0aXZlLWNvbG9y'@; put 'OnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1hY3RpdmUpOy0tY2xyLWRhdGFncmlkLXJvdy1ob3Zlci1mb250LWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTUwMCk7LS1jbHItZGF0YWdyaWQtYWN0aW9uLXRvZ2dsZS1jb2xvcjp2'@; put 'YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yLWFjdGl2ZSk7LS1jbHItZGF0YWdyaWQtcGFnaW5hdGlvbi1idG4tY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvcik7LS1jbHItZGF0YWdyaWQtcGFnaW5hdGlvbi1idG4tZGlzYWJsZWQt'@; put 'Y29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1kaXNhYmxlZCk7LS1jbHItZGF0YWdyaWQtcGFnaW5hdGlvbi1pbnB1dC1ib3JkZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItY29sb3IpOy0tY2xyLWRhdGFncmlkLXBhZ2luYXRpb24taW5wdXQtYm9yZGVyLWZvY3Vz'@; put 'LWNvbG9yOnZhcigtLWNsci1mb3Jtcy1mb2N1c2VkLWNvbG9yKTstLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtY29udGFpbmVyLWJhY2tncm91bmQpOy0tY2xyLWRhdGFncmlkLXBvcG92ZXItYm9yZGVyLWNvbG9yOnZhcigtLWNkcy1hbGlh'@; put 'cy1vYmplY3QtYm9yZGVyLWNvbG9yKTstLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWZvbnQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNDAwKTstLWNsci1kYXRhZ3JpZC1hY3Rpb24tcG9wb3Zlci1ob3Zlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVy'@; put 'YWN0aW9uLWJhY2tncm91bmQtaG92ZXIpOy0tY2xyLWRhdGFncmlkLXJvdy1zZWxlY3RlZDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci01MDApOy0tY2xyLWRhdGFncmlkLXJvdy1zZWxlY3RlZC1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJh'@; put 'Y3Rpb24tYmFja2dyb3VuZC1zZWxlY3RlZCk7LS1jbHItZGF0YWdyaWQtcm93LXNlbGVjdGVkLWFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1zZWxlY3RlZC1hY3RpdmUpOy0tY2xyLWRhdGFncmlkLXJvdy1zZWxl'@; put 'Y3RlZC1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1zZWxlY3RlZC1ob3Zlcik7LS1jbHItZGF0YWdyaWQtY29sdW1uLXN3aXRjaC1oZWFkZXItZm9udC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVy'@; put 'YWN0aW9uLWNvbG9yKTstLWNsci1kYXRhZ3JpZC1jb2x1bW4tc3dpdGNoLWhlYWRlci1mb250LWhvdmVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tY29sb3ItaG92ZXIpOy0tY2xyLWRhdGFncmlkLWNvbHVtbi1zd2l0Y2gtaGVhZGVyLWZvbnQtaG92ZXItYWN0'@; put 'aXZlOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tY29sb3ItYWN0aXZlKTstLWNsci1kYXRhZ3JpZC1kZXRhaWwtY2FyZXQtaWNvbi1vcGVuLWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1oaWdobGlnaHQpOy0tY2xyLWRh'@; put 'dGFncmlkLWRldGFpbC1jYXJldC1pY29uLW9wZW4taWNvbi1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQpOy0tY2xyLWRhdGFncmlkLXBsYWNlaG9sZGVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTIwMCk7LS1jbHIt'@; put 'ZGF0YWdyaWQtbG9hZGluZy1iYWNrZ3JvdW5kOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtY29udGFpbmVyLWJhY2tkcm9wLWJhY2tncm91bmQpOy0tY2xyLWRhdGFncmlkLWNvbHVtbi10b2dnbGUtZ2FwOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMyk7LS1jbHItZGF0YWdyaWQtY29sdW1uLXRv'@; put 'Z2dsZS1wYWRkaW5nOjAgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KTstLWNsci1kYXRhZ3JpZC1jb2x1bW4tdG9nZ2xlLWJvcmRlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJvcmRlci1jb2xvcik7LS1jbHItZGF0YWdyaWQtY29sdW1uLXRvZ2dsZS1maWxs'@; put 'LWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3Qtb3BhY2l0eS0wKTstLWNsci1kYXRhZ3JpZC1jb2x1bW4tdG9nZ2xlLXRleHQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNDAwKTstLWNsci1kYXRhZ3JpZC1jb2x1bW4tdG9nZ2xlLWRpc2FibGVkLWNvbG9yOnZh'@; put 'cigtLWNsci1idG4tZGVmYXVsdC1kaXNhYmxlZC1jb2xvcik7LS1jbHItZGF0YWdyaWQtY29sdW1uLXRvZ2dsZS1ib3JkZXItaG92ZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvci1hY3RpdmUpOy0tY2xyLWRhdGFncmlkLWNvbHVtbi10b2dnbGUtZmls'@; put 'bC1ob3Zlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQpOy0tY2xyLWRhdGFncmlkLWNvbHVtbi10b2dnbGUtdGV4dC1ob3Zlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci01MDApOy0tY2xyLWRhdGFncmlkLWNvbHVt'@; put 'bi10b2dnbGUtYm9yZGVyLWFjdGl2ZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJvcmRlci1jb2xvcik7LS1jbHItZGF0YWdyaWQtY29sdW1uLXRvZ2dsZS1maWxsLWFjdGl2ZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LW9wYWNpdHktMCk7LS1jbHIt'@; put 'ZGF0YWdyaWQtY29sdW1uLXRvZ2dsZS10ZXh0LWFjdGl2ZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci00MDApOy0tY2xyLWRhdGFncmlkLWRldGFpbC1wYW5lLWNvbnRlbnQtcGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpOy0tY2xyLWRhdGFncmlkLWRl'@; put 'dGFpbC1wYW5lLWNsb3NlLWljb24tc2l6ZTp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpOy0tY2xyLWRhdGFncmlkLWRldGFpbC1ib2R5LXRleHQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNDAwKTstLWNsci1kYXRhZ3JpZC1kZXRhaWwtaGVhZGVyLXRpdGxlLWNv'@; put 'bG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTQwMCk7LS1jbHItZGF0YWdyaWQtZGV0YWlsLXBhbmUtYmctY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1jb250YWluZXItYmFja2dyb3VuZCk7LS1jbHItZGF0YWdyaWQtZGV0YWlsLXBhbmUtYm9yZGVyLWNvbG9yOnZh'@; put 'cigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLWNvbG9yKTstLWNsci1kYXRhZ3JpZC1wbGFjZWhvbGRlci1mb250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2VjdGlvbi1mb250LXNpemUpOy0tY2xyLWRhdGFncmlkLXBsYWNlaG9sZGVyLWZvbnQtd2VpZ2h0OnZhcigtLWNk'@; put 'cy1hbGlhcy10eXBvZ3JhcGh5LXNlY3Rpb24tZm9udC13ZWlnaHQpOy0tY2xyLWRhdGFncmlkLXBsYWNlaG9sZGVyLWxpbmUtaGVpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY3Rpb24tbGluZS1oZWlnaHQpOy0tY2xyLWRhdGFncmlkLXBsYWNlaG9sZGVyLWxldHRlci1zcGFj'@; put 'aW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY3Rpb24tbGV0dGVyLXNwYWNpbmcpOy0tY2xyLWRhdGFncmlkLXBsYWNlaG9sZGVyLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1jb250YWluZXItYmFja2dyb3VuZCk7LS1jbHItZGF0YWdyaWQtcG9wb3Zl'@; put 'cnMtYm94LXNoYWRvdzp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LXNoYWRvdy0xMDApOy0tY2xyLWRhdGFncmlkLWNvbHVtbi1zZXBhcmF0b3ItaGVpZ2h0OmNhbGMoMTAwJSAtIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkpOy0tY2xyLWRhdGFncmlkLWNvbHVtbi1zZXBhcmF0b3Itd2lkdGg6'@; put 'dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xKTstLWNsci1kYXRhZ3JpZC1jb2x1bW4tcmVzaXplLWhhbmRsZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1ib3JkZXItY29sb3IpOy0tY2xyLWRhdGFncmlkLWZpbHRlci10b2dnbGUtc2l6ZTp2YXIoLS1jZHMtZ2xv'@; put 'YmFsLXNwYWNlLTcpOy0tY2xyLWRhdGFncmlkLWZvb3Rlci1wYWdpbmF0aW9uLWdhcDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTYpOy0tY2xyLWRhdGFncmlkLWZpeGVkLWNvbHVtbi1zaXplOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTIpOy0tY2xyLWRhdGFncmlkLWNvbHVtbi1zZXBhcmF0'@; put 'b3ItZXhwYW5kYnk6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KTstLWNsci1kYXRhZ3JpZC1pY29uLXNpemU6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTstLWNsci1kYXRhZ3JpZC1hY3Rpb24tYXJyb3ctc2l6ZTp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTQpOy0tY2xyLWRhdGFncmlkLWNv'@; put 'bXBhY3Qtb3V0bGluZS1vZmZzZXQ6Y2FsYygtMSAqIHRva2Vucy4kY2RzLWdsb2JhbC1zcGFjZS0zKTstLWNsci1kYXRhZ3JpZC1ob3Jpem9udGFsLXBhZGRpbmc6bWl4aW5zLmJhc2VsaW5lUHgoOSl9LmRhdGFncmlke2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZTtib3JkZXI6dmFyKC0tY2xy'@; put 'LXRhYmxlLWJvcmRlcndpZHRoKSBzb2xpZCB2YXIoLS1jbHItdGFibGUtYm9yZGVyLWNvbG9yKTtib3JkZXItcmFkaXVzOnZhcigtLWNsci10YWJsZS1ib3JkZXItcmFkaXVzKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10YWJsZS1iZ2NvbG9yKTtjb2xvcjp2YXIoLS1jbHItdGFibGUt'@; put 'Zm9udC1jb2xvcik7bWFyZ2luOnZhcigtLWNsci10YWJsZS1tYXJnaW4pO21heC13aWR0aDoxMDAlO3dpZHRoOjEwMCV9LmRhdGFncmlkIC5kYXRhZ3JpZC1jb2x1bW4sLmRhdGFncmlkIC5kYXRhZ3JpZC1jZWxse2JvcmRlci10b3Atc3R5bGU6c29saWQ7Ym9yZGVyLXRvcC13aWR0aDp2YXIo'@; put 'LS1jbHItdGFibGUtYm9yZGVyd2lkdGgpO2JvcmRlci10b3AtY29sb3I6dmFyKC0tY2xyLXRhYmxlcm93LWJvcmRlcmNvbG9yKTtwYWRkaW5nOnZhcigtLWNsci10YWJsZS1jZWxsLXBhZGRpbmcpO3RleHQtYWxpZ246Y2VudGVyO3ZlcnRpY2FsLWFsaWduOnRvcH0uZGF0YWdyaWQgLmRhdGFn'@; put 'cmlkLWNvbHVtbi5sZWZ0LC5kYXRhZ3JpZCAuZGF0YWdyaWQtY2VsbC5sZWZ0e3RleHQtYWxpZ246bGVmdH0uZGF0YWdyaWQgLmRhdGFncmlkLWNvbHVtbi5sZWZ0OmZpcnN0LWNoaWxkLC5kYXRhZ3JpZCAuZGF0YWdyaWQtY2VsbC5sZWZ0OmZpcnN0LWNoaWxke3BhZGRpbmctbGVmdDp2YXIo'@; put 'LS1jZHMtZ2xvYmFsLXNwYWNlLTcpfS5kYXRhZ3JpZCAuZGF0YWdyaWQtY29sdW1uLnJpZ2h0LC5kYXRhZ3JpZCAuZGF0YWdyaWQtY2VsbC5yaWdodHt0ZXh0LWFsaWduOnJpZ2h0fS5kYXRhZ3JpZCAuZGF0YWdyaWQtY2VsbHttaW4taGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTAp'@; put 'O2ZvbnQtc2l6ZTp2YXIoLS1jbHItdGFibGUtZGF0YS1jZWxsLWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXRhYmxlLWRhdGEtY2VsbC1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tY2xyLXRhYmxlLWRhdGEtY2VsbC1saW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6'@; put 'dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWxldHRlci1zcGFjaW5nKX0uZGF0YWdyaWQgLmRhdGFncmlkLWNvbHVtbntjb2xvcjp2YXIoLS1jbHItdGhlYWQtY29sb3IpO2ZvbnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jYXB0aW9uLWZvbnQtc2l6ZSk7'@; put 'Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtc2VtaWJvbGQpO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNhcHRpb24tbGluZS1oZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNh'@; put 'cHRpb24tbGV0dGVyLXNwYWNpbmcpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXRoZWFkLWJnY29sb3IpO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO2JvcmRlci1ib3R0b20td2lkdGg6dmFyKC0tY2xyLXRhYmxlLWJvcmRlcndpZHRoKTtib3Jk'@; put 'ZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci10YWJsZS1ib3JkZXItY29sb3IpO2JvcmRlci10b3A6MCBub25lfS5kYXRhZ3JpZCAuZGF0YWdyaWQtYm9keSAuZGF0YWdyaWQtcm93OmZpcnN0LWNoaWxkIC5kYXRhZ3JpZC1jZWxse2JvcmRlci10b3A6MCBub25lfS5kYXRhZ3JpZCAuZGF0YWdy'@; put 'aWQtYm9keSsuZGF0YWdyaWQtYm9keXtib3JkZXItdG9wLXN0eWxlOnNvbGlkO2JvcmRlci10b3Atd2lkdGg6dmFyKC0tY2xyLXRhYmxlLWJvcmRlcndpZHRoKTtib3JkZXItdG9wLWNvbG9yOnZhcigtLWNsci10YWJsZS1ib3JkZXItY29sb3IpfS5kYXRhZ3JpZCAuZGF0YWdyaWQtaGVhZGVy'@; put 'IC5kYXRhZ3JpZC1jb2x1bW46Zmlyc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tY2xyLXRhYmxlLWNvcm5lcmNlbGxyYWRpdXMpfS5kYXRhZ3JpZCAuZGF0YWdyaWQtaGVhZGVyIC5kYXRhZ3JpZC1jb2x1bW46bGFzdC1jaGlsZHtib3JkZXIt'@; put 'cmFkaXVzOjA7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tY2xyLXRhYmxlLWNvcm5lcmNlbGxyYWRpdXMpfS5kYXRhZ3JpZCAuZGF0YWdyaWQtYm9keTpsYXN0LWNoaWxkIC5kYXRhZ3JpZC1yb3c6bGFzdC1jaGlsZCAuZGF0YWdyaWQtY2VsbDpmaXJzdC1jaGlsZHtib3JkZXItcmFk'@; put 'aXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1jbHItdGFibGUtY29ybmVyY2VsbHJhZGl1cyl9LmRhdGFncmlkIC5kYXRhZ3JpZC1ib2R5Omxhc3QtY2hpbGQgLmRhdGFncmlkLXJvdzpsYXN0LWNoaWxkIC5kYXRhZ3JpZC1jZWxsOmxhc3QtY2hpbGR7Ym9yZGVyLXJhZGl1'@; put 'czowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWNsci10YWJsZS1jb3JuZXJjZWxscmFkaXVzKX0uZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtY29sdW1uLC5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1jZWxse21pbi1oZWlnaHQ6dmFyKC0tY2xyLXRhYmxlLWNvbXBh'@; put 'Y3Qtcm93LWhlaWdodCk7cGFkZGluZzp2YXIoLS1jbHItdGFibGUtY2VsbC1jb21wYWN0LXBhZGRpbmcpfS5kYXRhZ3JpZC1ob3N0e2Rpc3BsYXk6ZmxleDtmbGV4LWZsb3c6Y29sdW1uIG5vd3JhcDtwb3NpdGlvbjpyZWxhdGl2ZX0uZGF0YWdyaWR7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1'@; put 'czowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7LW1zLW92ZXJmbG93LXN0eWxlOi1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtvdmVyZmxvdzphdXRvO2ZsZXg6MSAxIGF1dG87bWFyZ2luLXRvcDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTYpfS5kYXRhZ3JpZC5jZGstdmlydHVhbC1z'@; put 'Y3JvbGxhYmxlIC5kYXRhZ3JpZC1yb3dze2ZsZXgtZ3JvdzowfS5kYXRhZ3JpZC1vdmVyZmxvdy1lbGxpcHNpcyAuZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1zY3JvbGxpbmctY2VsbHM+LmRhdGFncmlkLWNlbGx7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztvdmVyZmxvdzpoaWRkZW47d2hpdGUt'@; put 'c3BhY2U6bm93cmFwfS5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0e3BhZGRpbmc6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0yKSB2YXIoLS1jbHItZGF0YWdyaWQtaG9yaXpvbnRhbC1wYWRkaW5nKSB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTMpO3RleHQtYWxpZ246Y2VudGVyfS5kYXRhZ3Jp'@; put 'ZC1leHBhbmRhYmxlLWNhcmV0IC5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0LWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTstbXMtYXBwZWFyYW5jZTpub25lOy1vLWFwcGVhcmFuY2U6bm9uZTttYXJnaW46MDtwYWRkaW5nOjA7Ym9yZGVyOjA7'@; put 'Ym9yZGVyLXJhZGl1czowO2JveC1zaGFkb3c6bm9uZTtiYWNrZ3JvdW5kOjAgMDtjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMCk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMCl9YnV0dG9uLmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQgLmRh'@; put 'dGFncmlkLWV4cGFuZGFibGUtY2FyZXQtYnV0dG9ue2N1cnNvcjpwb2ludGVyfS5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0IC5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0LWljb257Y29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWljb24tY29sb3IpfS5kYXRhZ3JpZC1leHBhbmRhYmxlLWNh'@; put 'cmV0IC5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0LWljb24gc3Zne3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBlYXNlLWluLW91dH0uZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldCAuc3Bpbm5lcnttYXJnaW4tdG9wOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNCl9LmRhdGFncmlkLWV4cGFu'@; put 'ZGFibGUtY2FyZXQuZGF0YWdyaWQtY29sdW1ue3BhZGRpbmc6dmFyKC0tY2xyLXRhYmxlLXRvcGNlbGxwYWRkaW5nKSB2YXIoLS1jbHItdGFibGUtY2VsbHBhZGRpbmcpIHZhcigtLWNsci10YWJsZS1ib3R0b21jZWxscGFkZGluZyl9LmRhdGFncmlkLWhlYWRlciwuZGF0YWdyaWQtYm9keSwu'@; put 'ZGF0YWdyaWQtcm93LC5kYXRhZ3JpZC1jb2x1bW4sLmRhdGFncmlkLWNlbGwsLmRhdGFncmlkLWZpeGVkLWNvbHVtbntkaXNwbGF5OmJsb2NrfS5kYXRhZ3JpZC1yb3d7Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDtib3JkZXItdG9wLXdpZHRoOnZhcigtLWNsci10YWJsZS1ib3JkZXJ3aWR0aCk7'@; put 'Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHItdGFibGUtYm9yZGVyLWNvbG9yKX0uZGF0YWdyaWQtcm93OmZpcnN0LW9mLXR5cGV7Ym9yZGVyLXRvcDpub25lfS5kYXRhZ3JpZC1yb3c6aG92ZXIsLmRhdGFncmlkLXJvdzpob3ZlciAuZGF0YWdyaWQtcm93LXN0aWNreXtiYWNrZ3JvdW5kLWNv'@; put 'bG9yOnZhcigtLWNsci1kYXRhZ3JpZC1yb3ctaG92ZXItY29sb3IpfS5kYXRhZ3JpZC1yb3cuZGF0YWdyaWQtc2VsZWN0ZWQsLmRhdGFncmlkLXJvdy5kYXRhZ3JpZC1zZWxlY3RlZCAuZGF0YWdyaWQtcm93LXN0aWNreXtjb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcm93LXNlbGVjdGVkKTti'@; put 'YWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1yb3ctc2VsZWN0ZWQtYmFja2dyb3VuZC1jb2xvcil9LmRhdGFncmlkLXJvdy5kYXRhZ3JpZC1zZWxlY3RlZDpob3ZlciwuZGF0YWdyaWQtcm93LmRhdGFncmlkLXNlbGVjdGVkOmhvdmVyIC5kYXRhZ3JpZC1yb3ctc3RpY2t5e2Jh'@; put 'Y2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXJvdy1zZWxlY3RlZC1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yKX0uZGF0YWdyaWQtcm93LmRhdGFncmlkLXNlbGVjdGVkOmFjdGl2ZSwuZGF0YWdyaWQtcm93LmRhdGFncmlkLXNlbGVjdGVkOmFjdGl2ZSAuZGF0YWdyaWQtcm93LXN0'@; put 'aWNreXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1yb3ctc2VsZWN0ZWQtYWN0aXZlLWJhY2tncm91bmQtY29sb3IpfS5kYXRhZ3JpZC1yb3c6YWN0aXZlLC5kYXRhZ3JpZC1yb3c6YWN0aXZlIC5kYXRhZ3JpZC1yb3ctc3RpY2t5e2JhY2tncm91bmQtY29sb3I6dmFyKC0t'@; put 'Y2xyLWRhdGFncmlkLXJvdy1hY3RpdmUtY29sb3IpfS5kYXRhZ3JpZC1yb3cuZGF0YWdyaWQtcm93LXNrZWxldG9ue2JhY2tncm91bmQtY29sb3I6dW5zZXR9LmRhdGFncmlkLXJvdy5kYXRhZ3JpZC1yb3ctc2tlbGV0b24gLmRhdGFncmlkLXJvdy1zY3JvbGxhYmxlLC5kYXRhZ3JpZC1yb3cu'@; put 'ZGF0YWdyaWQtcm93LXNrZWxldG9uIC5kYXRhZ3JpZC1yb3ctc3RpY2t5e2Rpc3BsYXk6bm9uZX0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1yb3ctZGV0YWlsLXdyYXBwZXJ7ZmxleDoxIDEgYXV0bztkaXNwbGF5OmZsZXh9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtcm93LWRldGFpbHt3aWR0'@; put 'aDphdXRvfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLXJvdy1kZXRhaWwgLmRhdGFncmlkLWNlbGx7cGFkZGluZy10b3A6MDtib3JkZXI6MH0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1yb3ctZGV0YWlsIC5kYXRhZ3JpZC1jZWxsLmRhdGFncmlkLWNvbnRhaW5lcntmb250LXNpemU6dmFyKC0t'@; put 'Y2xyLXRhYmxlLWZvbnRzaXplKTtmb250LXdlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1ib2R5LWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1ib2R5LWxpbmUtaGVpZ2h0KTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtYWxpYXMt'@; put 'dHlwb2dyYXBoeS1ib2R5LWxldHRlci1zcGFjaW5nKX0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1zZWxlY3R7bWluLXdpZHRoOmNhbGModmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KSAtIHZhcigtLWNsci10YWJsZS1ib3JkZXJ3aWR0aCkpO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOnZh'@; put 'cigtLWNkcy1nbG9iYWwtc3BhY2UtMykgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KX0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1zZWxlY3QsLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtc2VsZWN0IGlucHV0e2N1cnNvcjpwb2ludGVyfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLXNlbGVjdC5j'@; put 'bHItZm9ybS1jb250cm9sLWRpc2FibGVkLC5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLXNlbGVjdC5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIGlucHV0e2N1cnNvcjpub3QtYWxsb3dlZH0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1zaWducG9zdC10cmlnZ2VyIC5zaWducG9zdHttYXJnaW46'@; put 'Y2FsYygtMSp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpKSAwO2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLXNpZ25wb3N0LXRyaWdnZXIgLnNpZ25wb3N0IC5zaWducG9zdC10cmlnZ2Vye2hlaWdodDppbmhlcml0O2xpbmUtaGVpZ2h0'@; put 'OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSl9LmRhdGFncmlkLXJvdy5kYXRhZ3JpZC1yb3ctbG9hZGluZyAuZGF0YWdyaWQtcm93LXN0aWNreXtkaXNwbGF5Om5vbmV9LmRhdGFncmlkLXJvdy5kYXRhZ3JpZC1yb3ctbG9hZGluZyAuZGF0YWdyaWQtY2VsbHtkaXNwbGF5OmZsZXg7cGFkZGlu'@; put 'Zzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5kYXRhZ3JpZC1yb3ctc3RpY2t5e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXRhYmxlLWJnY29sb3IpO2Rp'@; put 'c3BsYXk6ZmxleDtmbGV4LXdyYXA6bm93cmFwO3Bvc2l0aW9uOnN0aWNreTtsZWZ0OjA7ei1pbmRleDo1MDB9LmRhdGFncmlkLXJvdy1zdGlja3kgLmRhdGFncmlkLWNlbGw6bGFzdC1jaGlsZDphZnRlcntjb250ZW50OiIiO3dpZHRoOnZhcigtLWNsci1kYXRhZ3JpZC1jb2x1bW4tc2VwYXJh'@; put 'dG9yLXdpZHRoKTtoZWlnaHQ6dmFyKC0tY2xyLWRhdGFncmlkLWNvbHVtbi1zZXBhcmF0b3ItaGVpZ2h0KTtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTMpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXRhYmxlLWJvcmRlci1jb2xvcil9'@; put 'LmRhdGFncmlkLXJvdy1zY3JvbGxhYmxle2ZsZXg6MSAxIGF1dG87ZGlzcGxheTpmbGV4O2ZsZXgtZmxvdzpjb2x1bW4gbm93cmFwfS5kYXRhZ3JpZC1yb3ctc2Nyb2xsYWJsZS5pcy1yZXBsYWNlZHtmbGV4LWRpcmVjdGlvbjpyb3d9LmRhdGFncmlkLXJvdy1zY3JvbGxhYmxlLmlzLXJlcGxh'@; put 'Y2VkIC5kYXRhZ3JpZC1zY3JvbGxpbmctY2VsbHN7ZmxleDowIDAgYXV0b30uZGF0YWdyaWQtcm93LXNjcm9sbGFibGUgLmRhdGFncmlkLWNvbHVtbjpsYXN0LWNoaWxkIC5kYXRhZ3JpZC1jb2x1bW4tc2VwYXJhdG9ye2Rpc3BsYXk6bm9uZX0uZGF0YWdyaWQtcm93LWZsZXh7ZmxleDoxIDEg'@; put 'YXV0bztkaXNwbGF5OmZsZXg7ZmxleC1mbG93OnJvdyBub3dyYXB9LmRhdGFncmlkLXJvdy1mbGV4IC5kYXRhZ3JpZC1yb3ctZGV0YWlse2Rpc3BsYXk6ZmxleDtmbGV4LWZsb3c6cm93IG5vd3JhcH0uZGF0YWdyaWQtcm93LWZsZXggLmRhdGFncmlkLXJvdy1kZXRhaWwgLmRhdGFncmlkLWNl'@; put 'bGx7cGFkZGluZy10b3A6MH0uZGF0YWdyaWQtc2Nyb2xsaW5nLWNlbGxzLC5kYXRhZ3JpZC1zY3JvbGxpbmctZGV0YWlsc3tkaXNwbGF5OmZsZXg7ZmxleDoxIDEgYXV0bztmbGV4LWZsb3c6cm93IG5vd3JhcH0uZGF0YWdyaWQtYWN0aW9uLWJhcnttYXJnaW4tdG9wOnZhcigtLWNkcy1nbG9i'@; put 'YWwtc3BhY2UtOSl9LmRhdGFncmlkLWFjdGlvbi1iYXJ+LmRhdGFncmlkLXNwaW5uZXJ7aGVpZ2h0OmNhbGMoMTAwJSAtIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSkpO3RvcDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpfS5kYXRhZ3JpZC1oZWFkZXJ7cG9zaXRpb246c3RpY2t5O3RvcDow'@; put 'O3otaW5kZXg6NTAxO3dpZHRoOmF1dG99LmRhdGFncmlkLWhlYWRlciAuZGF0YWdyaWQtY29sdW1ue2JvcmRlci1ib3R0b206bm9uZX0uZGF0YWdyaWQtaGVhZGVyIC5kYXRhZ3JpZC1yb3d7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdGhlYWQtYmdjb2xvcik7Ym9yZGVyLXRvcDpub25l'@; put 'O2JvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7Ym9yZGVyLWJvdHRvbS13aWR0aDp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0aC0xMDApO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLXRhYmxlLWJvcmRlci1jb2xvcil9LmRhdGFncmlkLWhlYWRlciAuZGF0YWdyaWQt'@; put 'cm93IC5kYXRhZ3JpZC1yb3ctc3RpY2t5e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXRoZWFkLWJnY29sb3IpO3otaW5kZXg6NTAyfS5kYXRhZ3JpZC1oZWFkZXIgLmRhdGFncmlkLXJvdzpob3ZlciwuZGF0YWdyaWQtaGVhZGVyIC5kYXRhZ3JpZC1yb3c6aG92ZXIgLmRhdGFncmlkLXJv'@; put 'dy1zdGlja3l7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdGhlYWQtYmdjb2xvcil9LmRhdGFncmlkLWhlYWRlciAuZGF0YWdyaWQtcm93LXNjcm9sbGFibGV7ZmxleC1kaXJlY3Rpb246cm93fS5kYXRhZ3JpZC10YWJsZS13cmFwcGVye2Rpc3BsYXk6ZmxleDtmbGV4OjEgMSBhdXRvO21p'@; put 'bi1oZWlnaHQ6MTAwJX0uZGF0YWdyaWQtdGFibGUsLmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1yb3dze2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleDoxIDEgYXV0b30uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWJvZHl7d2lkdGg6YXV0b30uZGF0YWdyaWQtdGFi'@; put 'bGUgLmRhdGFncmlkLWNvbHVtbntwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWFsaWduOmxlZnQ7bWluLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTUpO2Rpc3BsYXk6ZmxleDtmbGV4OjEgMSBhdXRvO3ZlcnRpY2FsLWFsaWduOnRvcDtib3JkZXI6MH0uZGF0YWdyaWQtdGFibGUgLmRh'@; put 'dGFncmlkLWNvbHVtbjpmb2N1c3tvdXRsaW5lOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tb3V0bGluZSk7b3V0bGluZS1jb2xvcjotd2Via2l0LWZvY3VzLXJpbmctY29sb3I7b3V0bGluZS1vZmZzZXQ6Y2FsYygtMSp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTIpKX0uZGF0'@; put 'YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiBjbHItZGctZmlsdGVyLC5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIGNsci1kZy1zdHJpbmctZmlsdGVyLC5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIGNsci1kZy1udW1lcmljLWZpbHRlcntkaXNwbGF5OmZsZXg7'@; put 'b3JkZXI6OTk7bWFyZ2luLWxlZnQ6YXV0bzthbGlnbi1pdGVtczpjZW50ZXJ9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLW51bWVyaWMtZmlsdGVyLWlucHV0e3dpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTQpfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdy'@; put 'aWQtY29sdW1uIC5kYXRhZ3JpZC1udW1lcmljLWZpbHRlci1pbnB1dCAuY2xyLWZvcm0tY29udHJvbHttYXJnaW4tdG9wOjB9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWZpbHRlci10b2dnbGV7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJh'@; put 'bmNlOm5vbmU7LW1zLWFwcGVhcmFuY2U6bm9uZTstby1hcHBlYXJhbmNlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDtib3gtc2hhZG93Om5vbmU7YmFja2dyb3VuZDowIDA7Y3Vyc29yOnBvaW50ZXI7ZmxvYXQ6cmlnaHQ7dmVydGljYWwtYWxpZ246'@; put 'bWlkZGxlO2hlaWdodDp2YXIoLS1jbHItZGF0YWdyaWQtZmlsdGVyLXRvZ2dsZS1zaXplKTt3aWR0aDp2YXIoLS1jbHItZGF0YWdyaWQtZmlsdGVyLXRvZ2dsZS1zaXplKTttaW4taGVpZ2h0OnZhcigtLWNsci1kYXRhZ3JpZC1maWx0ZXItdG9nZ2xlLXNpemUpO21pbi13aWR0aDp2YXIoLS1j'@; put 'bHItZGF0YWdyaWQtZmlsdGVyLXRvZ2dsZS1zaXplKTttYXJnaW4tbGVmdDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTQpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbn1idXR0b24uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0'@; put 'YWdyaWQtZmlsdGVyLXRvZ2dsZXtjdXJzb3I6cG9pbnRlcn0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtZmlsdGVyLXRvZ2dsZSBjZHMtaWNvbiwuZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtZmlsdGVyLXRvZ2dsZSBjbHItaWNv'@; put 'bntjb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yKX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtZmlsdGVyLXRvZ2dsZTpob3ZlciBjZHMtaWNvbiwuZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQt'@; put 'ZmlsdGVyLXRvZ2dsZTpob3ZlciBjbHItaWNvbntjb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yLWhvdmVyKX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtZmlsdGVyLXRvZ2dsZS5kYXRhZ3JpZC1maWx0ZXItb3BlbiBjZHMt'@; put 'aWNvbiwuZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtZmlsdGVyLXRvZ2dsZS5kYXRhZ3JpZC1maWx0ZXItb3BlbiBjbHItaWNvbntjb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yLWFjdGl2ZSl9LmRhdGFncmlkLXRhYmxlIC5k'@; put 'YXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWZpbHRlci10b2dnbGUuZGF0YWdyaWQtZmlsdGVyZWQgY2RzLWljb24sLmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWZpbHRlci10b2dnbGUuZGF0YWdyaWQtZmlsdGVyZWQgY2xyLWljb257Y29sb3I6dmFyKC0tY2Rz'@; put 'LWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvci1zZWxlY3RlZCl9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4uZGF0YWdyaWQtZml4ZWQtd2lkdGh7ZmxleDowIDAgYXV0b30uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtY29sdW1uLWZsZXh7'@; put 'ZGlzcGxheTpmbGV4O2ZsZXg6MSAxIGF1dG99LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWNvbHVtbi10aXRsZXstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTstbXMtYXBwZWFyYW5jZTpub25lOy1vLWFwcGVhcmFuY2U6bm9u'@; put 'ZTttYXJnaW46MDtwYWRkaW5nOjA7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czowO2JveC1zaGFkb3c6bm9uZTtiYWNrZ3JvdW5kOjAgMDtjb2xvcjp2YXIoLS1jbHItdGFibGUtZm9udC1jb2xvcik7dGV4dC1hbGlnbjpsZWZ0O2ZsZXg6MSAxIGF1dG87YWxpZ24taXRlbXM6Y2VudGVyO2FsaWdu'@; put 'LXNlbGY6Y2VudGVyO2Rpc3BsYXk6ZmxleH1idXR0b24uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtY29sdW1uLXRpdGxle2N1cnNvcjpwb2ludGVyfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1jb2x1bW4tdGl0bGUgLnNpZ25w'@; put 'b3N0IC5zaWducG9zdC1hY3Rpb24uYnRue2hlaWdodDppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXR9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWNvbHVtbi10aXRsZSAuY2xyLWNoZWNrYm94LXdyYXBwZXIgLmNsci1jb250cm9sLWxhYmVse21hcmdpbi10'@; put 'b3A6Y2FsYygtMSoxMCooMXJlbS92YXIoLS1jZHMtZ2xvYmFsLWJhc2UpKSl9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gYnV0dG9uLmRhdGFncmlkLWNvbHVtbi10aXRsZTpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2N1cnNvcjpwb2ludGVyfS5kYXRhZ3JpZC10'@; put 'YWJsZSAuZGF0YWdyaWQtY29sdW1uIGJ1dHRvbi5kYXRhZ3JpZC1jb2x1bW4tdGl0bGUgLnNvcnQtaWNvbntjb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yKTttYXJnaW4tbGVmdDphdXRvO2hlaWdodDp2YXIoLS1jbHItZGF0YWdyaWQtaWNvbi1zaXplKTt3'@; put 'aWR0aDp2YXIoLS1jbHItZGF0YWdyaWQtaWNvbi1zaXplKTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gYnV0dG9uLmRhdGFncmlkLWNvbHVtbi10aXRsZSAuc29ydC1pY29uOmhvdmVye2NvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3Qt'@; put 'aW50ZXJhY3Rpb24tY29sb3ItaG92ZXIpfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIGJ1dHRvbi5kYXRhZ3JpZC1jb2x1bW4tdGl0bGUgLnNvcnQtaWNvbjphY3RpdmV7Y29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvci1hY3RpdmUpfS5kYXRh'@; put 'Z3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1jb2x1bW4tc2VwYXJhdG9ye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleDowIDAgYXV0bzt3aWR0aDp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0aC0xMDApO29yZGVyOjEwMDttYXJnaW4t'@; put 'bGVmdDphdXRvO2hlaWdodDoxMDAlfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1jb2x1bW4tc2VwYXJhdG9yOmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OnZhcigtLWNsci1kYXRhZ3JpZC1jb2x1bW4tc2VwYXJhdG9yLWhlaWdo'@; put 'dCk7d2lkdGg6dmFyKC0tY2xyLWRhdGFncmlkLWNvbHVtbi1zZXBhcmF0b3Itd2lkdGgpO3JpZ2h0OjA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdGFibGUtYm9yZGVyLWNvbG9yKX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtY29sdW1uLXNlcGFyYXRv'@; put 'ciAuZGF0YWdyaWQtY29sdW1uLWhhbmRsZXstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTstbXMtYXBwZWFyYW5jZTpub25lOy1vLWFwcGVhcmFuY2U6bm9uZTttYXJnaW46MDtwYWRkaW5nOjA7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czowO2JveC1zaGFkb3c6'@; put 'bm9uZTtiYWNrZ3JvdW5kOjAgMDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDpjYWxjKHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNikgKyB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEpKTtyaWdodDpjYWxjKC0xKnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNCkpO3RvcDpjYWxjKC0xKnZhcigtLWNk'@; put 'cy1nbG9iYWwtc3BhY2UtNCkpO2N1cnNvcjpjb2wtcmVzaXplO2hlaWdodDpjYWxjKDEwMCUgKyB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTYpIC0gdmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMTAwKSk7ei1pbmRleDo1MDF9YnV0dG9uLmRhdGFncmlkLXRhYmxlIC5kYXRh'@; put 'Z3JpZC1jb2x1bW4gLmRhdGFncmlkLWNvbHVtbi1zZXBhcmF0b3IgLmRhdGFncmlkLWNvbHVtbi1oYW5kbGV7Y3Vyc29yOnBvaW50ZXJ9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWNvbHVtbi1zZXBhcmF0b3IgLmRhdGFncmlkLWNvbHVtbi1yZXNpemUtdHJh'@; put 'Y2tlcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6Y2FsYygtMSp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTYpKTtkaXNwbGF5Om5vbmU7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xKTtoZWlnaHQ6MDtib3JkZXItcmlnaHQtc3R5bGU6ZG90dGVkO2JvcmRlci1yaWdodC1jb2xvcjp2YXIo'@; put 'LS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtMzAwKTtib3JkZXItcmlnaHQtd2lkdGg6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMTAwKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDApO2N1cnNvcjpjb2wtcmVzaXplfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5k'@; put 'YXRhZ3JpZC1jb2x1bW4tc2VwYXJhdG9yIC5kYXRhZ3JpZC1jb2x1bW4tcmVzaXplLXRyYWNrZXIub24tYXJyb3cta2V5LXJlc2l6ZXt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMgZWFzZS1vdXR9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWNvbHVtbi1zZXBh'@; put 'cmF0b3IgLmV4Y2VlZGVkLW1heHtib3JkZXItcmlnaHQ6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMTAwKSBkb3R0ZWQgdmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1kYW5nZXItZGFyayl9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLXNpZ25w'@; put 'b3N0LXRyaWdnZXIgLnNpZ25wb3N0e21hcmdpbjpjYWxjKC0xKnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkpIDA7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSl9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLXNpZ25wb3N0LXRyaWdnZXIgLnNpZ25w'@; put 'b3N0IC5zaWducG9zdC10cmlnZ2Vye2hlaWdodDppbmhlcml0O2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSl9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4uZGF0YWdyaWQtc2VsZWN0LC5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uLmRhdGFncmlk'@; put 'LWV4cGFuZGFibGUtY2FyZXQsLmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4uZGF0YWdyaWQtcm93LWFjdGlvbnN7bWF4LXdpZHRoOnZhcigtLWNsci1kYXRhZ3JpZC1maXhlZC1jb2x1bW4tc2l6ZSk7bWluLXdpZHRoOnZhcigtLWNsci1kYXRhZ3JpZC1maXhlZC1jb2x1bW4tc2l6'@; put 'ZSl9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jZWxse2ZsZXg6MSAxIGF1dG87dGV4dC1hbGlnbjpsZWZ0O21pbi13aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTE1KTtib3JkZXI6MH0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNlbGwuZGF0YWdyaWQtZml4ZWQtd2lkdGh7Zmxl'@; put 'eDowIDAgYXV0b30uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNlbGwuZGF0YWdyaWQtZml4ZWQtY29sdW1ue2ZsZXg6MCAwIHZhcigtLWNsci1kYXRhZ3JpZC1maXhlZC1jb2x1bW4tc2l6ZSk7bWF4LXdpZHRoOnZhcigtLWNsci1kYXRhZ3JpZC1maXhlZC1jb2x1bW4tc2l6ZSk7bWluLXdp'@; put 'ZHRoOnZhcigtLWNsci1kYXRhZ3JpZC1maXhlZC1jb2x1bW4tc2l6ZSl9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jZWxsLmRhdGFncmlkLXJvdy1hY3Rpb25ze2JhY2tncm91bmQ6MCAwfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY2VsbC5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0'@; put 'e3BhZGRpbmc6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0yKSB2YXIoLS1jbHItZGF0YWdyaWQtaG9yaXpvbnRhbC1wYWRkaW5nKSB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTMpO3RleHQtYWxpZ246Y2VudGVyfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY2VsbDpmb2N1c3tvdXRsaW5lOnZh'@; put 'cigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tb3V0bGluZSk7b3V0bGluZS1jb2xvcjotd2Via2l0LWZvY3VzLXJpbmctY29sb3I7b3V0bGluZS1vZmZzZXQ6Y2FsYygtMSp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTIpKX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNlbGwgLmRh'@; put 'dGFncmlkLWFjdGlvbi10b2dnbGV7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7LW1zLWFwcGVhcmFuY2U6bm9uZTstby1hcHBlYXJhbmNlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDtib3gtc2hhZG93Om5vbmU7'@; put 'YmFja2dyb3VuZDowIDA7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KX1idXR0b24uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNlbGwgLmRhdGFncmlkLWFjdGlvbi10b2dnbGV7Y3Vyc29yOnBvaW50ZXJ9LmRhdGFncmlk'@; put 'LXRhYmxlIC5kYXRhZ3JpZC1jZWxsIC5kYXRhZ3JpZC1hY3Rpb24tdG9nZ2xlIGNkcy1pY29uLC5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY2VsbCAuZGF0YWdyaWQtYWN0aW9uLXRvZ2dsZSBjbHItaWNvbntjb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtaWNvbi1jb2xvcil9LmRhdGFncmlk'@; put 'LXRhYmxlIC5kYXRhZ3JpZC1jZWxsIC5kYXRhZ3JpZC1hY3Rpb24tdG9nZ2xlOmFjdGl2ZSBjZHMtaWNvbiwuZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNlbGwgLmRhdGFncmlkLWFjdGlvbi10b2dnbGU6YWN0aXZlIGNsci1pY29ue2NvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1hY3Rpb24t'@; put 'dG9nZ2xlLWNvbG9yKX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNlbGwgLmNsci10b2dnbGUtd3JhcHBlcnttYXJnaW4tdG9wOmNhbGMoLTEqdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KSk7cGFkZGluZy10b3A6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KX0uZGF0YWdyaWQtdGFibGUg'@; put 'LmRhdGFncmlkLWRldGFpbC1jYXJldCwuZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLXJvdy1hY3Rpb25zLC5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldHtwb3NpdGlvbjpyZWxhdGl2ZX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWRldGFpbC1jYXJldCAuZGF0'@; put 'YWdyaWQtYWN0aW9uLXRvZ2dsZTpiZWZvcmUsLmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1kZXRhaWwtY2FyZXQgLmRhdGFncmlkLWRldGFpbC1jYXJldC1idXR0b246YmVmb3JlLC5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtZGV0YWlsLWNhcmV0IC5kYXRhZ3JpZC1leHBhbmRhYmxlLWNh'@; put 'cmV0LWJ1dHRvbjpiZWZvcmUsLmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1yb3ctYWN0aW9ucyAuZGF0YWdyaWQtYWN0aW9uLXRvZ2dsZTpiZWZvcmUsLmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1yb3ctYWN0aW9ucyAuZGF0YWdyaWQtZGV0YWlsLWNhcmV0LWJ1dHRvbjpiZWZvcmUsLmRh'@; put 'dGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1yb3ctYWN0aW9ucyAuZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldC1idXR0b246YmVmb3JlLC5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldCAuZGF0YWdyaWQtYWN0aW9uLXRvZ2dsZTpiZWZvcmUsLmRhdGFncmlkLXRhYmxl'@; put 'IC5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0IC5kYXRhZ3JpZC1kZXRhaWwtY2FyZXQtYnV0dG9uOmJlZm9yZSwuZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQgLmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQtYnV0dG9uOmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0'@; put 'aW9uOmFic29sdXRlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7dG9wOjA7bGVmdDowfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtcGxhY2Vob2xkZXItY29udGFpbmVye2ZsZXg6MSAxIGF1dG87ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7Ym9yZGVyLXRvcC1zdHlsZTpz'@; put 'b2xpZDtib3JkZXItdG9wLWNvbG9yOnZhcigtLWNsci10YWJsZS1ib3JkZXItY29sb3IpO2JvcmRlci10b3Atd2lkdGg6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMTAwKX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLXBsYWNlaG9sZGVye2JhY2tncm91bmQ6dmFyKC0t'@; put 'Y2xyLWRhdGFncmlkLXBsYWNlaG9sZGVyLWJhY2tncm91bmQtY29sb3IpO2Rpc3BsYXk6bm9uZTt3aWR0aDoxMDAlfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtcGxhY2Vob2xkZXIuZGF0YWdyaWQtZW1wdHl7Ym9yZGVyLXRvcDowO2Rpc3BsYXk6ZmxleDtmbGV4LWZsb3c6Y29sdW1uIG5v'@; put 'd3JhcDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7Z2FwOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSk7cGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpO2ZvbnQtc2l6ZTp2YXIoLS1jbHItZGF0YWdyaWQtcGxhY2Vob2xkZXItZm9udC1zaXpl'@; put 'KTtmb250LXdlaWdodDp2YXIoLS1jbHItZGF0YWdyaWQtcGxhY2Vob2xkZXItZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNsci1kYXRhZ3JpZC1wbGFjZWhvbGRlci1saW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2xyLWRhdGFncmlkLXBsYWNlaG9sZGVyLWxldHRl'@; put 'ci1zcGFjaW5nKTtjb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcGxhY2Vob2xkZXItY29sb3IpfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtcGxhY2Vob2xkZXIgLmRhdGFncmlkLXBsYWNlaG9sZGVyLWltYWdle2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEzKTt3aWR0aDp2YXIo'@; put 'LS1jZHMtZ2xvYmFsLXNwYWNlLTEzKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOmNvbnRhaW47YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnJTIw'@; put 'dmlld0JveCUzRCUyMjAlMjAwJTIwNjAlMjA3MiUyMiUyMHZlcnNpb24lM0QlMjIxLjElMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHhtbG5zJTNBeGxpbmslM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4bGlu'@; put 'ayUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ2RlZnMlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NlbGxpcHNlJTIwaWQlM0QlMjJwYXRoLTElMjIlMjBjeCUzRCUyMjMwJTIyJTIwY3klM0QlMjI2MS43NjY2NjY3JTIyJTIwcnglM0QlMjIxNS40NTEyOTA0JTIyJTIwcnklM0QlMjI0'@; put 'LjczMzMzMzMzJTIyJTNFJTNDJTJGZWxsaXBzZSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ21hc2slMjBpZCUzRCUyMm1hc2stMiUyMiUyMG1hc2tDb250ZW50VW5pdHMlM0QlMjJ1c2VyU3BhY2VPblVzZSUyMiUyMG1hc2tVbml0cyUzRCUyMm9iamVjdEJvdW5kaW5nQm94JTIy'@; put 'JTIweCUzRCUyMjAlMjIlMjB5JTNEJTIyMCUyMiUyMHdpZHRoJTNEJTIyMzAuOTAyNTgwOCUyMiUyMGhlaWdodCUzRCUyMjkuNDY2NjY2NjclMjIlMjBmaWxsJTNEJTIyd2hpdGUlMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0N1c2UlMjB4bGluayUzQWhy'@; put 'ZWYlM0QlMjIlMjNwYXRoLTElMjIlM0UlM0MlMkZ1c2UlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZtYXNrJTNFJTBBJTIwJTIwJTIwJTIwJTNDJTJGZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUzQ2clMjBpZCUzRCUyMlBhZ2UtMSUyMiUyMHN0cm9rZSUzRCUyMm5vbmUlMjIl'@; put 'MjBzdHJva2Utd2lkdGglM0QlMjIxJTIyJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBmaWxsLXJ1bGUlM0QlMjJldmVub2RkJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDZyUyMGlkJTNEJTIyQXJ0Ym9hcmQlMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl'@; put 'MjAlMjAlM0N1c2UlMjBpZCUzRCUyMk92YWwtMTAlMjIlMjBzdHJva2UlM0QlMjIlMjNDMURGRUYlMjIlMjBtYXNrJTNEJTIydXJsKCUyM21hc2stMiklMjIlMjBzdHJva2Utd2lkdGglM0QlMjIyLjglMjIlMjBzdHJva2UtbGluZWNhcCUzRCUyMnNxdWFyZSUyMiUyMHN0cm9rZS1kYXNoYXJy'@; put 'YXklM0QlMjIzJTJDNiUyQzMlMkM1JTIyJTIweGxpbmslM0FocmVmJTNEJTIyJTIzcGF0aC0xJTIyJTNFJTNDJTJGdXNlJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcGF0aCUyMGQlM0QlMjJNMzguNDYxMzY0NyUyQzE4LjE2NDI0NTYlMjBMMzAuOTg5MDEz'@; put 'NyUyQzM0LjkxNDE4NDYlMjBMMzElMkM0NyUyMEwzMi41OTc3NzgzJTJDNDYuNTE2NzIzNiUyMEwzMi41OTc3NzgzJTJDMzQuOTE0MTg0NiUyMEw1MS4wNjczMjE4JTJDMTUuNzU2MDQyNSUyMEM1MS4wNjczMjE4JTJDMTUuNzU2MDQyNSUyMDQ4LjYyOTUxNjYlMkMxNi42NTQyOTY5JTIwNDQu'@; put 'OTYyODkwNiUyQzE3LjMzOTIzMzQlMjBDNDEuMjk2MjY0NiUyQzE4LjAyNDE2OTklMjAzOC40NjEzNjQ3JTJDMTguMTY0MjQ1NiUyMDM4LjQ2MTM2NDclMkMxOC4xNjQyNDU2JTIwWiUyMiUyMGlkJTNEJTIyUGF0aC0xOTUlMjIlMjBmaWxsJTNEJTIyJTIzQzFERkVGJTIyJTNFJTNDJTJGcGF0'@; put 'aCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BhdGglMjBkJTNEJTIyTTQuNzQ2MzkyMjYlMkMxMi41NjYxODU1JTIwTDQuNjIwNjU3MjYlMkMxMi4xNjA1MzQ4JTIwTDUuMzUxNTQxNCUyQzExLjE2MjUwNDQlMjBMNS43NzYyMjM4NSUyQzExLjE1OTkzOSUy'@; put 'MEw2LjIwOTM2MzA5JTJDMTIuNTU3MzQ4MSUyMEw0Ljc0NjM5MjI2JTJDMTIuNTY2MTg1NSUyMFolMjBNNi4yMDkzNjMwOSUyQzEyLjU1NzM0ODElMjBMNi4zMjU0MjYzMiUyQzEyLjkzMTc5NTQlMjBMMjguNDk2Mzg1NSUyQzM0Ljg3OTY3MTglMjBMMjguNDk2Mzg1NSUyQzQ3LjgwOTY2OTEl'@; put 'MjBMMzIuNiUyQzQ2LjQ4MzY1MTMlMjBMMzIuNiUyQzM0Ljg5OTIzNjUlMjBMNTMuOTczNDk0JTJDMTIuNzAzNTgxMyUyMEw1My45NzM0OTQlMkMxMi4yNjg4MjAxJTIwTDYuMjA5MzYzMDklMkMxMi41NTczNDgxJTIwWiUyME01NS4zNzM0OTQlMkMxMC44NjAzMzc2JTIwTDU1LjM3MzQ5NCUy'@; put 'QzEzLjI2ODA2NjQlMjBMMzQlMkMzNS40NjM3MjE2JTIwTDM0JTJDNDcuNTAyNTQwMSUyMEwyNy4wOTYzODU1JTJDNDkuNzMzMzMzMyUyMEwyNy4wOTYzODU1JTJDMzUuNDYzNzIxOSUyMEw1LjA5MTc5Njg4JTJDMTMuNjgwNTQyJTIwTDQuMzEzMjUzMDElMkMxMS4xNjg3NzY0JTIwTDU1LjM3'@; put 'MzQ5NCUyQzEwLjg2MDMzNzYlMjBaJTIyJTIwaWQlM0QlMjJQYXRoLTE0OSUyMiUyMGZpbGwlM0QlMjIlMjM3RkJEREQlMjIlM0UlM0MlMkZwYXRoJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDZWxsaXBzZSUyMGlkJTNEJTIyT3ZhbC05JTIyJTIwZmlsbCUz'@; put 'RCUyMiUyM0ZGRkZGRiUyMiUyMGN4JTNEJTIyMzAlMjIlMjBjeSUzRCUyMjExLjc4NTY1NCUyMiUyMHJ4JTNEJTIyMjYlMjIlMjByeSUzRCUyMjYuNzg1NjU0MDElMjIlM0UlM0MlMkZlbGxpcHNlJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcGF0aCUyMGQl'@; put 'M0QlMjJNMzAlMkMxNy4xNzEzMDglMjBDMzYuODc3MjE3NyUyQzE3LjE3MTMwOCUyMDQzLjMxMTIyODIlMkMxNi40NjEwNzAxJTIwNDguMDMxMjM3MSUyQzE1LjIyOTIxMDYlMjBDNTAuMjc3NzYxMSUyQzE0LjY0Mjg5NzclMjA1Mi4wNTA3NjE5JTJDMTMuOTU3OTY3NyUyMDUzLjIyMTYyMzEl'@; put 'MkMxMy4yMzU0OTczJTIwQzU0LjE5Mzg1NjUlMkMxMi42MzU1ODg2JTIwNTQuNiUyQzEyLjExNzU4OTElMjA1NC42JTJDMTEuNzg1NjU0JTIwQzU0LjYlMkMxMS40NTM3MTg5JTIwNTQuMTkzODU2NSUyQzEwLjkzNTcxOTQlMjA1My4yMjE2MjMxJTJDMTAuMzM1ODEwNyUyMEM1Mi4wNTA3NjE5'@; put 'JTJDOS42MTMzNDAzMiUyMDUwLjI3Nzc2MTElMkM4LjkyODQxMDM0JTIwNDguMDMxMjM3MSUyQzguMzQyMDk3NDYlMjBDNDMuMzExMjI4MiUyQzcuMTEwMjM3OTUlMjAzNi44NzcyMTc3JTJDNi40JTIwMzAlMkM2LjQlMjBDMjMuMTIyNzgyMyUyQzYuNCUyMDE2LjY4ODc3MTglMkM3LjExMDIz'@; put 'Nzk1JTIwMTEuOTY4NzYyOSUyQzguMzQyMDk3NDYlMjBDOS43MjIyMzg4NiUyQzguOTI4NDEwMzQlMjA3Ljk0OTIzODE0JTJDOS42MTMzNDAzMiUyMDYuNzc4Mzc2ODklMkMxMC4zMzU4MTA3JTIwQzUuODA2MTQzNSUyQzEwLjkzNTcxOTQlMjA1LjQlMkMxMS40NTM3MTg5JTIwNS40JTJDMTEu'@; put 'Nzg1NjU0JTIwQzUuNCUyQzEyLjExNzU4OTElMjA1LjgwNjE0MzUlMkMxMi42MzU1ODg2JTIwNi43NzgzNzY4OSUyQzEzLjIzNTQ5NzMlMjBDNy45NDkyMzgxNCUyQzEzLjk1Nzk2NzclMjA5LjcyMjIzODg2JTJDMTQuNjQyODk3NyUyMDExLjk2ODc2MjklMkMxNS4yMjkyMTA2JTIwQzE2LjY4'@; put 'ODc3MTglMkMxNi40NjEwNzAxJTIwMjMuMTIyNzgyMyUyQzE3LjE3MTMwOCUyMDMwJTJDMTcuMTcxMzA4JTIwWiUyME0zMCUyQzE4LjU3MTMwOCUyMEMxNS42NDA1OTY1JTJDMTguNTcxMzA4JTIwNCUyQzE1LjUzMzI2NzIlMjA0JTJDMTEuNzg1NjU0JTIwQzQlMkM4LjAzODA0MDc4JTIwMTUu'@; put 'NjQwNTk2NSUyQzUlMjAzMCUyQzUlMjBDNDQuMzU5NDAzNSUyQzUlMjA1NiUyQzguMDM4MDQwNzglMjA1NiUyQzExLjc4NTY1NCUyMEM1NiUyQzE1LjUzMzI2NzIlMjA0NC4zNTk0MDM1JTJDMTguNTcxMzA4JTIwMzAlMkMxOC41NzEzMDglMjBaJTIyJTIwaWQlM0QlMjJPdmFsLTktQ29weSUy'@; put 'MiUyMGZpbGwlM0QlMjIlMjM3RkJEREQlMjIlM0UlM0MlMkZwYXRoJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcGF0aCUyMGQlM0QlMjJNMTguMjYwODY0MyUyQzcuMTQ1NjI5ODglMjBMMjIuNzI3MzU2JTJDMTYuOTA0NzI0MSUyMEMyMi43MjczNTYlMkMx'@; put 'Ni45MDQ3MjQxJTIwMTUuMzAwNjU5MiUyQzE2LjM5MTE3NDMlMjAxMC4yNzYwMDElMkMxNC43NTExNTk3JTIwQzUuMjUxMzQyNzclMkMxMy4xMTExNDUlMjA1LjM4MDMxMDA2JTJDMTEuODI4NDMwMiUyMDUuMzgwMzEwMDYlMkMxMS42ODgyOTM1JTIwQzUuMzgwMzEwMDYlMkMxMC40ODMyODMx'@; put 'JTIwOC4xNjYzMzE1MiUyQzkuNDE4Nzc3MTYlMjAxMS4xMTQ1NjMlMkM4LjU3MzI0MjE5JTIwQzE0LjU0OTMxOSUyQzcuNTg4MTc0OTIlMjAxOC4yNjA4NjQzJTJDNy4xNDU2Mjk4OCUyMDE4LjI2MDg2NDMlMkM3LjE0NTYyOTg4JTIwWiUyMiUyMGlkJTNEJTIyUGF0aC0xOTYlMjIlMjBmaWxs'@; put 'JTNEJTIyJTIzQzFERkVGJTIyJTNFJTNDJTJGcGF0aCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRmclM0UlMEElMjAlMjAlMjAlMjAlM0MlMkZnJTNFJTBBJTNDJTJGc3ZnJTNFIil9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1oaWRkZW4tY29sdW1uLmRhdGFncmlkLWNv'@; put 'bHVtbiwuZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWhpZGRlbi1jb2x1bW4uZGF0YWdyaWQtY2VsbHtkaXNwbGF5Om5vbmV9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1yb3ctc2Nyb2xsYWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1jb2x1bW4tc2VwYXJhdG9yOmFmdGVye2Jh'@; put 'Y2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWNvbHVtbi1yZXNpemUtaGFuZGxlci1jb2xvcil9LmRhdGFncmlkLXJvdy1yZXBsYWNlZCAuZGF0YWdyaWQtc2Nyb2xsaW5nLWNlbGxzIC5kYXRhZ3JpZC1jZWxsOm5vdCguZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldCk6bm90KC5k'@; put 'YXRhZ3JpZC1yb3ctYWN0aW9ucyk6bm90KC5kYXRhZ3JpZC1zZWxlY3Qpe2Rpc3BsYXk6bm9uZX0uZGF0YWdyaWQtcm93LXJlcGxhY2VkIC5kYXRhZ3JpZC1yb3ctZGV0YWlsIC5kYXRhZ3JpZC1jZWxse2Rpc3BsYXk6YmxvY2s7cGFkZGluZzp2YXIoLS1jbHItdGFibGUtY2VsbC1wYWRkaW5n'@; put 'KX0uZGF0YWdyaWQtcm93LXJlcGxhY2VkIC5kYXRhZ3JpZC1yb3ctZGV0YWlsIC5kYXRhZ3JpZC1jZWxsLmRhdGFncmlkLWhpZGRlbi1jb2x1bW57ZGlzcGxheTpub25lfS5kYXRhZ3JpZC1yb3ctcmVwbGFjZWQgLmRhdGFncmlkLXJvdy1kZXRhaWwgLmRhdGFncmlkLWV4cGFuZGFibGUtY2Fy'@; put 'ZXR7cGFkZGluZy10b3A6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0yKX0uZGF0YWdyaWQtZm9vdGVye2ZsZXg6MCAwIGF1dG87ZGlzcGxheTpmbGV4O2ZsZXgtZmxvdzpyb3cgbm93cmFwO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOnN0cmV0Y2g7cGFkZGluZzp2'@; put 'YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7Zm9udC1zaXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNhcHRpb24tZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jYXB0aW9uLWZvbnQtd2VpZ2h0'@; put 'KTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jYXB0aW9uLWxpbmUtaGVpZ2h0KTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jYXB0aW9uLWxldHRlci1zcGFjaW5nKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10aGVhZC1iZ2Nv'@; put 'bG9yKTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci10YWJsZS1mb290ZXItYm9yZGVyLXRvcC1jb2xvcik7Ym9yZGVyLXdpZHRoOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTEwMCk7Ym9yZGVyLXRvcDpub25lO2JvcmRlci1yYWRpdXM6MDti'@; put 'b3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1yYWRpdXMtMTAwKTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXJhZGl1cy0xMDApfS5kYXRhZ3JpZC1mb290ZXIgLnBhZ2luYXRpb257'@; put 'ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LXdyYXA6d3JhcDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7Z2FwOnZhcigtLWNsci1kYXRhZ3JpZC1mb290ZXItcGFnaW5hdGlvbi1nYXApfS5kYXRhZ3JpZC1mb290ZXIgLnBhZ2luYXRpb24tc2l6ZXtkaXNwbGF5OmJsb2Nr'@; put 'O2ZsZXg6MSAxIGF1dG87d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtYWxpZ246cmlnaHR9LmRhdGFncmlkLWZvb3RlciAucGFnaW5hdGlvbi1zaXplIC5jbHItcGFnZS1zaXplLXNlbGVjdHtmb250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc21hbGxjYXB0aW9uLWZvbnQtc2l6'@; put 'ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc21hbGxjYXB0aW9uLWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zbWFsbGNhcHRpb24tbGluZS1oZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10'@; put 'eXBvZ3JhcGh5LXNtYWxsY2FwdGlvbi1sZXR0ZXItc3BhY2luZyk7bWFyZ2luLWxlZnQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KTtoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmRhdGFncmlkLWZvb3RlciAucGFnaW5hdGlvbi1kZXNj'@; put 'cmlwdGlvbnt3aGl0ZS1zcGFjZTpub3dyYXB9LmRhdGFncmlkLWZvb3RlciAucGFnaW5hdGlvbi1saXN0e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXg6MCAwIGF1dG87'@; put 'ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0uZGF0YWdyaWQtZm9vdGVyIC5jb2x1bW4tc3dpdGNoLXdyYXBwZXIgLmNvbHVtbi10b2dnbGUtLWFjdGlvbnttaW4td2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS04KTt0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplO3BhZGRpbmc6'@; put 'dmFyKC0tY2xyLWRhdGFncmlkLWNvbHVtbi10b2dnbGUtcGFkZGluZyk7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1jb2x1bW4tdG9nZ2xlLWJvcmRlci1jb2xvcik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtY29sdW1uLXRvZ2dsZS1maWxsLWNvbG9yKTtj'@; put 'b2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtY29sdW1uLXRvZ2dsZS10ZXh0LWNvbG9yKTttYXJnaW46MH0uZGF0YWdyaWQtZm9vdGVyIC5jb2x1bW4tc3dpdGNoLXdyYXBwZXIgLmNvbHVtbi10b2dnbGUtLWFjdGlvbi5kaXNhYmxlZCwuZGF0YWdyaWQtZm9vdGVyIC5jb2x1bW4tc3dpdGNoLXdy'@; put 'YXBwZXIgLmNvbHVtbi10b2dnbGUtLWFjdGlvbjpkaXNhYmxlZCwuZGF0YWdyaWQtZm9vdGVyIC5jb2x1bW4tc3dpdGNoLXdyYXBwZXIgLmNvbHVtbi10b2dnbGUtLWFjdGlvbi5kaXNhYmxlZDpob3ZlciwuZGF0YWdyaWQtZm9vdGVyIC5jb2x1bW4tc3dpdGNoLXdyYXBwZXIgLmNvbHVtbi10'@; put 'b2dnbGUtLWFjdGlvbjpkaXNhYmxlZDpob3ZlciwuZGF0YWdyaWQtZm9vdGVyIC5jb2x1bW4tc3dpdGNoLXdyYXBwZXIgLmNvbHVtbi10b2dnbGUtLWFjdGlvbi5kaXNhYmxlZDphY3RpdmUsLmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tdG9nZ2xlLS1h'@; put 'Y3Rpb246ZGlzYWJsZWQ6YWN0aXZle2N1cnNvcjpub3QtYWxsb3dlZDtib3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWNvbHVtbi10b2dnbGUtZGlzYWJsZWQtY29sb3IpO2NvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1jb2x1bW4tdG9nZ2xlLWRpc2FibGVkLWNvbG9yKTtiYWNrZ3Jv'@; put 'dW5kLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1jb2x1bW4tdG9nZ2xlLWZpbGwtY29sb3IpfS5kYXRhZ3JpZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29sdW1uLXRvZ2dsZS0tYWN0aW9uOmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtY29sdW1uLXRv'@; put 'Z2dsZS1ib3JkZXItaG92ZXItY29sb3IpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWNvbHVtbi10b2dnbGUtZmlsbC1ob3Zlci1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWNvbHVtbi10b2dnbGUtdGV4dC1ob3Zlci1jb2xvcil9LmRhdGFncmlkLWZvb3Rl'@; put 'ciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tdG9nZ2xlLS1hY3Rpb246YWN0aXZlLC5kYXRhZ3JpZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29sdW1uLXRvZ2dsZS0tYWN0aW9uOmZvY3Vze2JveC1zaGFkb3c6bm9uZTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWRh'@; put 'dGFncmlkLWNvbHVtbi10b2dnbGUtYm9yZGVyLWFjdGl2ZS1jb2xvcik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtY29sdW1uLXRvZ2dsZS1maWxsLWFjdGl2ZS1jb2xvcik7Y29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWNvbHVtbi10b2dnbGUtdGV4dC1hY3RpdmUtY29s'@; put 'b3IpfS5kYXRhZ3JpZC1mb290ZXIgLmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6MTAwJX0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuZGF0YWdyaWQtZm9vdGVyLXNlbGVjdC5jbHItY2hlY2tib3gtd3JhcHBlciBp'@; put 'bnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVse2N1cnNvcjpkZWZhdWx0O21hcmdpbi1yaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpfS5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIC5kYXRhZ3JpZC1mb290ZXItc2VsZWN0LmNsci1jaGVja2JveC13cmFwcGVyIGlucHV0'@; put 'W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLWxhYmVsLWRpc2FibGVkLWNvbG9yKX0uZGF0YWdyaWQtc3Bpbm5lcntwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjth'@; put 'bGlnbi1pdGVtczpjZW50ZXI7d2lkdGg6MTAwJTt0b3A6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KTtoZWlnaHQ6Y2FsYygxMDAlIC0gdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KSk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtbG9hZGluZy1iYWNrZ3JvdW5kKTt6LWlu'@; put 'ZGV4OjU5MH0uZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtcm93LXJlcGxhY2VkIC5kYXRhZ3JpZC1yb3ctZGV0YWlsIC5kYXRhZ3JpZC1jZWxse3BhZGRpbmc6dmFyKC0tY2xyLXRhYmxlLWNlbGwtY29tcGFjdC1wYWRkaW5nKX0uZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtY29sdW1u'@; put 'IC5kYXRhZ3JpZC1jb2x1bW4tc2VwYXJhdG9yOmFmdGVye2hlaWdodDpjYWxjKDEwMCUgLSAoLjUqdmFyKC0tY2xyLWRhdGFncmlkLWNvbHVtbi1zZXBhcmF0b3ItZXhwYW5kYnkpKSl9LmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtc2VsZWN0e3BhZGRpbmc6MCB2'@; put 'YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpfS5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1kZXRhaWwtY2FyZXQuZGF0YWdyaWQtY2VsbHtwYWRkaW5nOjB9LmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLWNlbGwgY2xyLWljb257bWFyZ2luLXRvcDpjYWxjKC0xKnZhcigtLWNkcy1nbG9i'@; put 'YWwtc3BhY2UtMykgLSB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEqdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0zKSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoY2FsYygtMSp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEpKSl9LmRhdGFncmlkLWNvbXBhY3Qg'@; put 'LmRhdGFncmlkLWNlbGwgY2RzLWljb257bWFyZ2luLXRvcDpjYWxjKC0xKnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMykgLSB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEqdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0zKSl9LmRhdGFncmlkLWNvbXBhY3Qg'@; put 'LmRhdGFncmlkLWNlbGwgLmJhZGdle21hcmdpbi10b3A6Y2FsYygtMSp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTMpKTttYXJnaW4tYm90dG9tOmNhbGMoLTEqdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xKSl9LmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXR7dGV4'@; put 'dC1hbGlnbjpjZW50ZXJ9LmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQgLnNwaW5uZXJ7bWFyZ2luLXRvcDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTMpfS5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0IC5kYXRhZ3JpZC1leHBh'@; put 'bmRhYmxlLWNhcmV0LWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTstbXMtYXBwZWFyYW5jZTpub25lOy1vLWFwcGVhcmFuY2U6bm9uZTttYXJnaW46MDtwYWRkaW5nOjA7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czowO2JveC1zaGFkb3c6bm9uZTti'@; put 'YWNrZ3JvdW5kOjAgMDtoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTt3aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpO291dGxpbmUtb2Zmc2V0OnZhcigtLWNsci1kYXRhZ3JpZC1jb21wYWN0LW91dGxpbmUtb2Zmc2V0KX1idXR0b24uZGF0YWdyaWQtY29tcGFjdCAuZGF0'@; put 'YWdyaWQtZXhwYW5kYWJsZS1jYXJldCAuZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldC1idXR0b257Y3Vyc29yOnBvaW50ZXJ9LmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQgLmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQtaWNvbnttYXJnaW46MH0uZGF0YWdy'@; put 'aWQtY29tcGFjdCAuZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldC5kYXRhZ3JpZC1jZWxse3BhZGRpbmc6MH0uZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldC5kYXRhZ3JpZC1jb2x1bW57cGFkZGluZy10b3A6Y2FsYyh2YXIoLS1jbHItdGFibGUtY29tcGFjdC12'@; put 'ZXJ0aWNhbC1wYWRkaW5nKSArIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSkpO3BhZGRpbmctYm90dG9tOnZhcigtLWNsci10YWJsZS1jb21wYWN0LXZlcnRpY2FsLXBhZGRpbmcpfS5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1zaWducG9zdC10cmlnZ2VyIC5zaWducG9zdCAuc2lnbnBv'@; put 'c3QtdHJpZ2dlciBjZHMtaWNvbjpub3QoW3NoYXBlPWluZm8tY2lyY2xlXSxbc2hhcGU9ZXhjbGFtYXRpb24tdHJpYW5nbGVdLFtzaGFwZT1leGNsYW1hdGlvbi1jaXJjbGVdLFtzaGFwZT1jaGVjay1jaXJjbGVdLFtzaGFwZT1pbmZvXSxbc2hhcGU9ZXJyb3JdKSwuZGF0YWdyaWQtY29tcGFj'@; put 'dCAuZGF0YWdyaWQtc2lnbnBvc3QtdHJpZ2dlciAuc2lnbnBvc3QgLnNpZ25wb3N0LXRyaWdnZXIgY2xyLWljb246bm90KFtzaGFwZT1pbmZvLWNpcmNsZV0sW3NoYXBlPWV4Y2xhbWF0aW9uLXRyaWFuZ2xlXSxbc2hhcGU9ZXhjbGFtYXRpb24tY2lyY2xlXSxbc2hhcGU9Y2hlY2stY2lyY2xl'@; put 'XSxbc2hhcGU9aW5mb10sW3NoYXBlPWVycm9yXSl7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KX0uZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtZm9vdGVye3BhZGRpbmc6MCB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcp'@; put 'O21pbi1oZWlnaHQ6dmFyKC0tY2xyLXRhYmxlLWNvbXBhY3Qtcm93LWhlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KS12YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEpfS5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1mb290ZXIgLnBhZ2luYXRpb257bGluZS1o'@; put 'ZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KX0uZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtZm9vdGVyIC5jb2x1bW4tc3dpdGNoLXdyYXBwZXIgLmNvbHVtbi10b2dnbGUtLWFjdGlvbntvdXRsaW5lLW9mZnNldDp2YXIoLS1jbHItZGF0YWdyaWQtY29tcGFjdC1vdXRsaW5lLW9m'@; put 'ZnNldCl9LmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLWZvb3RlciAuY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuZGF0YWdyaWQtZm9vdGVyLXNlbGVjdC5jbHItY2hlY2tib3gtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVse3RvcDowfS5kYXRhZ3JpZC1m'@; put 'b290ZXItZGVzY3JpcHRpb257ZmxleDoxIDEgYXV0bztmbGV4LXdyYXA6bm93cmFwO3doaXRlLXNwYWNlOm5vd3JhcDtkaXNwbGF5OmJsb2NrO3RleHQtYWxpZ246cmlnaHQ7bWFyZ2luOmF1dG8gMH0ucGFnaW5hdGlvbi1saXN0e2xpc3Qtc3R5bGU6bm9uZTtkaXNwbGF5OmZsZXg7ZmxleC1m'@; put 'bG93OnJvdyBub3dyYXA7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpzdHJldGNofS5wYWdpbmF0aW9uLWxpc3QgLnBhZ2luYXRpb24tY3VycmVudHtmb250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc21hbGxjYXB0aW9uLWZvbnQtc2l6ZSk7Zm9udC13ZWln'@; put 'aHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc21hbGxjYXB0aW9uLWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zbWFsbGNhcHRpb24tbGluZS1oZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNt'@; put 'YWxsY2FwdGlvbi1sZXR0ZXItc3BhY2luZyk7YmFja2dyb3VuZDowIDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZm9ybXMtdGV4dGFyZWEtYmFja2dyb3VuZC1jb2xvcik7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wYWdpbmF0aW9uLWlucHV0LWJvcmRlci1jb2xvcik7'@; put 'Ym9yZGVyLXdpZHRoOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTEwMCk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1yYWRpdXM6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItcmFkaXVzLTEwMCk7bWluLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSk7'@; put 'dGV4dC1hbGlnbjpjZW50ZXI7dHJhbnNpdGlvbjpub25lIWltcG9ydGFudH0ucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLWN1cnJlbnQ6Zm9jdXMsLnBhZ2luYXRpb24tbGlzdCAucGFnaW5hdGlvbi1jdXJyZW50LmNsci1mb2N1c3tiYWNrZ3JvdW5kOjAgMDtib3JkZXI6dmFyKC0tY2Rz'@; put 'LWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMTAwKSBzb2xpZCB2YXIoLS1jbHItZGF0YWdyaWQtcGFnaW5hdGlvbi1pbnB1dC1ib3JkZXItZm9jdXMtY29sb3IpfS5wYWdpbmF0aW9uLWxpc3Q+KntwYWRkaW5nOjAgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0yKX0ucGFnaW5hdGlvbi1saXN0'@; put 'IC5wYWdpbmF0aW9uLWZpcnN0LC5wYWdpbmF0aW9uLWxpc3QgLnBhZ2luYXRpb24tbGFzdCwucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLXByZXZpb3VzLC5wYWdpbmF0aW9uLWxpc3QgLnBhZ2luYXRpb24tbmV4dHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91'@; put 'bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbn0ucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLWZpcnN0OmRpc2FibGVkLC5wYWdpbmF0aW9uLWxpc3QgLnBhZ2luYXRpb24tbGFzdDpkaXNhYmxlZCwucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLXByZXZp'@; put 'b3VzOmRpc2FibGVkLC5wYWdpbmF0aW9uLWxpc3QgLnBhZ2luYXRpb24tbmV4dDpkaXNhYmxlZHtjb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLWRpc2FibGVkKTtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eToxfS5wYWdpbmF0aW9uLWxpc3QgLnBhZ2luYXRpb24tZmlyc3QsLnBhZ2lu'@; put 'YXRpb24tbGlzdCAucGFnaW5hdGlvbi1wcmV2aW91c3ttYXJnaW4tcmlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KX0ucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLWxhc3QsLnBhZ2luYXRpb24tbGlzdCAucGFnaW5hdGlvbi1uZXh0e21hcmdpbi1sZWZ0OnZhcigtLWNkcy1nbG9i'@; put 'YWwtc3BhY2UtNil9LnBhZ2luYXRpb24tbGlzdCBidXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7LW1zLWFwcGVhcmFuY2U6bm9uZTstby1hcHBlYXJhbmNlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDti'@; put 'b3gtc2hhZG93Om5vbmU7YmFja2dyb3VuZDowIDA7Y29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBhZ2luYXRpb24tYnRuLWNvbG9yKTtjdXJzb3I6cG9pbnRlcn1idXR0b24ucGFnaW5hdGlvbi1saXN0IGJ1dHRvbntjdXJzb3I6cG9pbnRlcn0uZGF0YWdyaWQtY2VsbC13aWR0aC16ZXJve2Jv'@; put 'cmRlcjowIWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50O3dpZHRoOjA7ZmxleDowIDAgYXV0byFpbXBvcnRhbnQ7bWluLXdpZHRoOjAhaW1wb3J0YW50O2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50O3Zpc2liaWxpdHk6aGlkZGVuIWltcG9ydGFudDtwb3NpdGlvbjphYnNvbHV0ZSFpbXBv'@; put 'cnRhbnQ7dG9wOjA7bGVmdDowfS5kYXRhZ3JpZC1vdXRlci13cmFwcGVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC1ncm93OjE7b3ZlcmZsb3c6YXV0b30uZGF0YWdyaWQtaW5uZXItd3JhcHBlcntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgt'@; put 'Z3JvdzoxO292ZXJmbG93OmF1dG87bWluLXdpZHRoOmNhbGMoMjQwKigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKX0uZGF0YWdyaWQtZGV0YWlsLW9wZW4+LmRhdGFncmlkLW91dGVyLXdyYXBwZXI+LmRhdGFncmlkLWlubmVyLXdyYXBwZXIgZGl2LmRhdGFncmlkLXRhYmxle21heC13'@; put 'aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbn0uZGF0YWdyaWQtZGV0YWlsLW9wZW4+LmRhdGFncmlkLW91dGVyLXdyYXBwZXI+LmRhdGFncmlkLWlubmVyLXdyYXBwZXI+LmNkay12aXJ0dWFsLXNjcm9sbGFibGUgZGl2LmRhdGFncmlkLXRhYmxle292ZXJmbG93OnVuc2V0fS5kYXRhZ3JpZC1k'@; put 'ZXRhaWwtb3Blbj4uZGF0YWdyaWQtb3V0ZXItd3JhcHBlcj4uZGF0YWdyaWQtaW5uZXItd3JhcHBlciBjbHItZGctY2VsbHt3aWR0aDoxMDAlIWltcG9ydGFudH0uZGF0YWdyaWQtZGV0YWlsLW9wZW4+LmRhdGFncmlkLW91dGVyLXdyYXBwZXI+LmRhdGFncmlkLWlubmVyLXdyYXBwZXIgY2xy'@; put 'LWRnLWNvbHVtbjpmaXJzdC1jaGlsZHt3aWR0aDphdXRvIWltcG9ydGFudH0uZGF0YWdyaWQtZGV0YWlsLW9wZW4gLmRhdGFncmlke2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLXJpZ2h0Om5vbmV9LmRhdGFncmlkLWRldGFpbC1vcGVuIC5kYXRhZ3JpZC1pbm5lci13cmFwcGVy'@; put 'e3dpZHRoOjM0JX0uZGF0YWdyaWQtZGV0YWlsLW9wZW4gLmRhdGFncmlkLXBsYWNlaG9sZGVyLWNvbnRhaW5lciwuZGF0YWdyaWQtZGV0YWlsLW9wZW4gLmRhdGFncmlkLXJvd3tib3JkZXItcmlnaHQ6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMTAwKSBzb2xpZCB2YXIo'@; put 'LS1jbHItdGFibGUtYm9yZGVyLWNvbG9yKX0uZGF0YWdyaWQtZGV0YWlsLW9wZW4gLmRhdGFncmlkLWZvb3Rlcntib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS5kYXRhZ3JpZC1kZXRhaWwtb3BlbiAucGFnaW5hdGlvbnt3aWR0aDoxMDAlfS5kYXRhZ3JpZC1kZXRhaWwtb3BlbiAucGFn'@; put 'aW5hdGlvbi1kZXNjcmlwdGlvbi1jb21wYWN0e3RleHQtYWxpZ246bGVmdDtmbGV4OjF9LmRhdGFncmlkLWRldGFpbC1vcGVuIC5kYXRhZ3JpZC1mb290ZXIgLnBhZ2luYXRpb24tbGlzdHttYXJnaW4tcmlnaHQ6MH0uZGF0YWdyaWQtcm93LWRldGFpbC1vcGVue3Bvc2l0aW9uOnJlbGF0aXZl'@; put 'fS5kYXRhZ3JpZC1yb3ctZGV0YWlsLW9wZW46YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkgc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNsci10'@; put 'YWJsZS1ib3JkZXItY29sb3IpO3RvcDpjYWxjKDEwKigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTtyaWdodDowfS5kYXRhZ3JpZC1yb3ctZGV0YWlsLW9wZW46YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXI6dmFyKC0t'@; put 'Y2RzLWdsb2JhbC1zcGFjZS01KSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYmctY29sb3IpO3RvcDpjYWxjKDExKigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTtyaWdodDpjYWxjKC0xKnZhcigtLWNkcy1nbG9i'@; put 'YWwtc3BhY2UtMSkpfS5kYXRhZ3JpZC1kZXRhaWwtcGFuZXttYXJnaW4tdG9wOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNik7Ym9yZGVyLXdpZHRoOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTEwMCk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1j'@; put 'bHItZGF0YWdyaWQtZGV0YWlsLXBhbmUtYm9yZGVyLWNvbG9yKTtib3JkZXItbGVmdDpub25lO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXJhZGl1cy0xMDApO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWNkcy1hbGlhcy1v'@; put 'YmplY3QtYm9yZGVyLXJhZGl1cy0xMDApO2JhY2tncm91bmQ6dmFyKC0tY2xyLWRhdGFncmlkLWRldGFpbC1wYW5lLWJnLWNvbG9yKTtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpibG9jaztmbGV4LWdyb3c6Mjt3aWR0aDo2NiV9LmRhdGFncmlkLWRldGFpbC1wYW5lLWNvbnRlbnR7ZGlzcGxh'@; put 'eTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtvdmVyZmxvdzphdXRvO2hlaWdodDoxMDAlO3BhZGRpbmc6dmFyKC0tY2xyLWRhdGFncmlkLWRldGFpbC1wYW5lLWNvbnRlbnQtcGFkZGluZyl9LmRhdGFncmlkLWRldGFpbC1ib2R5e2ZsZXg6MSAxIGF1dG87cGFkZGluZzp2YXIoLS1jZHMt'@; put 'Z2xvYmFsLXNwYWNlLTcpIDA7Y29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWRldGFpbC1ib2R5LXRleHQtY29sb3IpfS5kYXRhZ3JpZC1kZXRhaWwtaGVhZGVye2ZsZXg6MCAwIGF1dG87Zm9udC1zaXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY3Rpb24tZm9udC1zaXplKTtmb250'@; put 'LXdlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWN0aW9uLWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWN0aW9uLWxpbmUtaGVpZ2h0KTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWN0aW9u'@; put 'LWxldHRlci1zcGFjaW5nKTttYXJnaW4tdG9wOjA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvd30uZGF0YWdyaWQtZGV0YWlsLWhlYWRlciAuZGF0YWdyaWQtZGV0YWlsLWhlYWRlci10aXRsZXtmbGV4OjEgMSBhdXRvO2NvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1kZXRhaWwtaGVh'@; put 'ZGVyLXRpdGxlLWNvbG9yKX0uZGF0YWdyaWQtZGV0YWlsLWhlYWRlciAuZGF0YWdyaWQtZGV0YWlsLXBhbmUtY2xvc2V7ZmxleDoxIDEgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMSk7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uZGF0YWdyaWQtZGV0YWlsLWhlYWRl'@; put 'ciAuZGF0YWdyaWQtZGV0YWlsLXBhbmUtY2xvc2UgLmJ0bi5idG4tbGlua3ttaW4td2lkdGg6YXV0bzttYXJnaW46MDtwYWRkaW5nLXJpZ2h0OjB9LmRhdGFncmlkLWRldGFpbC1oZWFkZXIgLmRhdGFncmlkLWRldGFpbC1wYW5lLWNsb3NlIC5idG4uYnRuLWxpbmsgY2RzLWljb257aGVpZ2h0'@; put 'OnZhcigtLWNsci1kYXRhZ3JpZC1kZXRhaWwtcGFuZS1jbG9zZS1pY29uLXNpemUpO3dpZHRoOnZhcigtLWNsci1kYXRhZ3JpZC1kZXRhaWwtcGFuZS1jbG9zZS1pY29uLXNpemUpO21pbi1oZWlnaHQ6dmFyKC0tY2xyLWRhdGFncmlkLWRldGFpbC1wYW5lLWNsb3NlLWljb24tc2l6ZSk7bWlu'@; put 'LXdpZHRoOnZhcigtLWNsci1kYXRhZ3JpZC1kZXRhaWwtcGFuZS1jbG9zZS1pY29uLXNpemUpO2NvbG9yOnZhcigtLWNsci1tb2RhbC1jbG9zZS1jb2xvcil9LmRhdGFncmlkLWRldGFpbC1jYXJldHtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uZGF0YWdyaWQtZGV0YWls'@; put 'LWNhcmV0LmRhdGFncmlkLWNlbGx7cGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTMpIDB9LmRhdGFncmlkLWRldGFpbC1jYXJldCAuZGF0YWdyaWQtZGV0YWlsLWNhcmV0LWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTstbXMtYXBwZWFy'@; put 'YW5jZTpub25lOy1vLWFwcGVhcmFuY2U6bm9uZTttYXJnaW46MDtwYWRkaW5nOjA7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czowO2JveC1zaGFkb3c6bm9uZTtiYWNrZ3JvdW5kOjAgMDtjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTt3aWR0aDp2YXIoLS1j'@; put 'ZHMtZ2xvYmFsLXNwYWNlLTkpfWJ1dHRvbi5kYXRhZ3JpZC1kZXRhaWwtY2FyZXQgLmRhdGFncmlkLWRldGFpbC1jYXJldC1idXR0b257Y3Vyc29yOnBvaW50ZXJ9LmRhdGFncmlkLWRldGFpbC1jYXJldCAuZGF0YWdyaWQtZGV0YWlsLWNhcmV0LWJ1dHRvbjpkaXNhYmxlZCBjZHMtaWNvbi5k'@; put 'YXRhZ3JpZC1kZXRhaWwtY2FyZXQtaWNvbnstLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tY29sb3ItZGlzYWJsZWQpfS5kYXRhZ3JpZC1kZXRhaWwtY2FyZXQgLmRhdGFncmlkLWRldGFpbC1jYXJldC1idXR0b24uaXMtb3BlbiAuZGF0YWdyaWQtZGV0YWlsLWNh'@; put 'cmV0LWljb257Ym9yZGVyLXJhZGl1czp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1yYWRpdXMtMTAwKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1kZXRhaWwtY2FyZXQtaWNvbi1vcGVuLWJnLWNvbG9yKTtjb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtZGV0YWls'@; put 'LWNhcmV0LWljb24tb3Blbi1pY29uLWNvbG9yKX0uZGF0YWdyaWQtZGV0YWlsLWNhcmV0IC5kYXRhZ3JpZC1kZXRhaWwtY2FyZXQtaWNvbntjb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtaWNvbi1jb2xvcil9LmRhdGFncmlkLWRldGFpbC1jYXJldCAuc3Bpbm5lcnttYXJnaW4tdG9wOnZhcigt'@; put 'LWNkcy1nbG9iYWwtc3BhY2UtNCl9LmRhdGFncmlkLWRldGFpbC1jYXJldC5kYXRhZ3JpZC1jb2x1bW57cGFkZGluZzp2YXIoLS1jbHItdGFibGUtdG9wY2VsbHBhZGRpbmcpIHZhcigtLWNsci10YWJsZS1jZWxscGFkZGluZykgdmFyKC0tY2xyLXRhYmxlLWJvdHRvbWNlbGxwYWRkaW5nKX0u'@; put 'ZGF0YWdyaWQtZGV0YWlsLW92ZXJsYXkuZGF0YWdyaWQtZGV0YWlsLW9wZW4+LmRhdGFncmlkLW91dGVyLXdyYXBwZXI+LmRhdGFncmlkLWlubmVyLXdyYXBwZXJ7d2lkdGg6MDttaW4td2lkdGg6dW5zZXR9LmRhdGFncmlkLWRldGFpbC1vdmVybGF5IC5kYXRhZ3JpZC1kZXRhaWwtcGFuZXti'@; put 'b3JkZXItbGVmdDp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0aC0xMDApIHNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtZGV0YWlsLXBhbmUtYm9yZGVyLWNvbG9yKTtib3JkZXItcmFkaXVzOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXJhZGl1'@; put 'cy0xMDApO3dpZHRoOjEwMCV9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo1NzZweCl7LmRhdGFncmlkLWRldGFpbC1vcGVuPi5kYXRhZ3JpZC1vdXRlci13cmFwcGVyPi5kYXRhZ3JpZC1pbm5lci13cmFwcGVye2Rpc3BsYXk6bm9uZX0uZGF0YWdyaWQtZGV0YWlsLXBhbmV7Ym9yZGVy'@; put 'LWxlZnQ6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMTAwKSBzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWRldGFpbC1wYW5lLWJvcmRlci1jb2xvcik7Ym9yZGVyLXJhZGl1czp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1yYWRpdXMtMTAw'@; put 'KX19LmNvbHVtbi1zd2l0Y2h7Ym9yZGVyLXJhZGl1czp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1yYWRpdXMtMTAwKTtwYWRkaW5nOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOCk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1iZy1jb2xvcik7Ym9y'@; put 'ZGVyLXdpZHRoOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTEwMCk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1ib3JkZXItY29sb3IpO2JveC1zaGFkb3c6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXJzLWJv'@; put 'eC1zaGFkb3cpO3dpZHRoOmNhbGMoMjUwKigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3otaW5kZXg6MTA1MH0uY29sdW1uLXN3aXRjaCAuc3dpdGNoLWhlYWRlcntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNw'@; put 'YWNlLWJldHdlZW47Zm9udC1zaXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXN1YnNlY3Rpb24tZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zdWJzZWN0aW9uLWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlw'@; put 'b2dyYXBoeS1zdWJzZWN0aW9uLWxpbmUtaGVpZ2h0KTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zdWJzZWN0aW9uLWxldHRlci1zcGFjaW5nKX0uY29sdW1uLXN3aXRjaCAuc3dpdGNoLWhlYWRlciBoMSwuY29sdW1uLXN3aXRjaCAuc3dpdGNoLWhlYWRlciBo'@; put 'MiwuY29sdW1uLXN3aXRjaCAuc3dpdGNoLWhlYWRlciBoMywuY29sdW1uLXN3aXRjaCAuc3dpdGNoLWhlYWRlciBoNCwuY29sdW1uLXN3aXRjaCAuc3dpdGNoLWhlYWRlciBoNSwuY29sdW1uLXN3aXRjaCAuc3dpdGNoLWhlYWRlciBoNntjb2xvcjp2YXIoLS1jbHItcDEtY29sb3IpO2ZvbnQt'@; put 'c2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zdWJzZWN0aW9uLWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc3Vic2VjdGlvbi1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc3Vic2VjdGlv'@; put 'bi1saW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc3Vic2VjdGlvbi1sZXR0ZXItc3BhY2luZyk7bWFyZ2luOjB9LmNvbHVtbi1zd2l0Y2ggLnN3aXRjaC1oZWFkZXIgYnV0dG9ue21pbi13aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTgp'@; put 'O21hcmdpbjowO3BhZGRpbmc6MH0uY29sdW1uLXN3aXRjaCAuc3dpdGNoLWhlYWRlciBidXR0b24gY2RzLWljb257Y29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWNvbHVtbi1zd2l0Y2gtaGVhZGVyLWZvbnQtY29sb3IpfS5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtaGVhZGVyIGJ1dHRvbiBjZHMt'@; put 'aWNvbjpob3Zlcntjb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtY29sdW1uLXN3aXRjaC1oZWFkZXItZm9udC1ob3Zlci1jb2xvcil9LmNvbHVtbi1zd2l0Y2ggLnN3aXRjaC1oZWFkZXIgYnV0dG9uIGNkcy1pY29uOmFjdGl2ZXtjb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtY29sdW1uLXN3aXRj'@; put 'aC1oZWFkZXItZm9udC1hY3RpdmUtY29sb3IpfS5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtY29udGVudHttYXgtaGVpZ2h0OmNhbGMoMzAwKigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTtvdmVyZmxvdy15OmF1dG87bWluLWhlaWdodDpjYWxjKHZhcigtLWNkcy1nbG9iYWwtc3BhY2Ut'@; put 'OSkgKyB2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0aC0xMDApKX0uY29sdW1uLXN3aXRjaCAuc3dpdGNoLWNvbnRlbnQgbGl7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTtwYWRkaW5nLWxlZnQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0yKX0uY29sdW1u'@; put 'LXN3aXRjaCAuc3dpdGNoLWZvb3RlciAuYnRue21hcmdpbjowO3BhZGRpbmc6MH0uY29sdW1uLXN3aXRjaCAuc3dpdGNoLWZvb3RlciAuYWN0aW9uLXJpZ2h0e2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmRhdGFncmlkLWZpbHRlcnttYXJnaW4tdG9wOnZhcigtLWNk'@; put 'cy1nbG9iYWwtc3BhY2UtMyk7YmFja2dyb3VuZDp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1iZy1jb2xvcik7Ym9yZGVyLXdpZHRoOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTEwMCk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZGF0'@; put 'YWdyaWQtcG9wb3Zlci1ib3JkZXItY29sb3IpO3BhZGRpbmc6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS04KTtib3gtc2hhZG93OnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVycy1ib3gtc2hhZG93KTtib3JkZXItcmFkaXVzOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXJhZGl1cy0x'@; put 'MDApO2ZvbnQtd2VpZ2h0OjQwMH0uZGF0YWdyaWQtZmlsdGVyIC5kYXRhZ3JpZC1maWx0ZXItY2xvc2Utd3JhcHBlcnt0ZXh0LWFsaWduOnJpZ2h0fS5kYXRhZ3JpZC1maWx0ZXIgLmRhdGFncmlkLWZpbHRlci1jbG9zZS13cmFwcGVyIC5jbG9zZXtmbG9hdDpub25lO2ZvbnQtc2l6ZTp1bnNl'@; put 'dH0uZGF0YWdyaWQtZmlsdGVyIC5kYXRhZ3JpZC1maWx0ZXItYXBwbHl7bWFyZ2luLWJvdHRvbTowfS5kYXRhZ3JpZC1maWx0ZXIgLmRhdGFncmlkLW51bWVyaWMtZmlsdGVyLWZvcm17ZGlzcGxheTpmbGV4O2dhcDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTYpfS5kYXRhZ3JpZC1maWx0ZXIg'@; put 'LmRhdGFncmlkLW51bWVyaWMtZmlsdGVyLWZvcm0gaW5wdXQuZGF0YWdyaWQtbnVtZXJpYy1maWx0ZXItaW5wdXR7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xNSl9LmRhdGFncmlkLWZpbHRlciAuY2xyLWZvcm0tY29udHJvbHttYXJnaW4tdG9wOjB9LmRhdGFncmlkLWFjdGlvbi1v'@; put 'dmVyZmxvd3twb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJnLWNvbG9yKTtwYWRkaW5nOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSk7bWFyZ2luLWxlZnQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS00KTtib3JkZXItc3R5bGU6c29saWQ7'@; put 'Ym9yZGVyLXdpZHRoOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXdpZHRoLTEwMCk7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJvcmRlci1jb2xvcik7Ym94LXNoYWRvdzp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3ZlcnMtYm94LXNoYWRvdyk7Ym9yZGVy'@; put 'LXJhZGl1czp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1yYWRpdXMtMTAwKTtmb250LXdlaWdodDo0MDA7d2hpdGUtc3BhY2U6bm93cmFwfS5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3c6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtyaWdodDoxMDAl'@; put 'O2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLXRvcDpjYWxjKC0xKnZhcigtLWNsci1kYXRhZ3JpZC1hY3Rpb24tYXJyb3ctc2l6ZSkpO2JvcmRlci10b3A6dmFyKC0tY2xyLWRhdGFncmlkLWFjdGlvbi1hcnJvdy1zaXplKSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOnZhcigtLWNs'@; put 'ci1kYXRhZ3JpZC1hY3Rpb24tYXJyb3ctc2l6ZSkgc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0LXdpZHRoOnZhcigtLWNsci1kYXRhZ3JpZC1hY3Rpb24tYXJyb3ctc2l6ZSk7Ym9yZGVyLXJpZ2h0LXN0eWxlOnNvbGlkO2JvcmRlci1yaWdodC1jb2xvcjp2YXIoLS1jbHItZGF0YWdy'@; put 'aWQtcG9wb3Zlci1ib3JkZXItY29sb3IpfS5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3c6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3JpZ2h0OjEwMCU7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tdG9wOmNhbGMoLTEqdmFyKC0tY2xyLWRhdGFncmlkLWFjdGlv'@; put 'bi1hcnJvdy1zaXplKSArIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSkpO2JvcmRlci10b3A6Y2FsYyh2YXIoLS1jbHItZGF0YWdyaWQtYWN0aW9uLWFycm93LXNpemUpIC0gdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xKSkgc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTpjYWxjKHZh'@; put 'cigtLWNsci1kYXRhZ3JpZC1hY3Rpb24tYXJyb3ctc2l6ZSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEpKSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQtd2lkdGg6Y2FsYyh2YXIoLS1jbHItZGF0YWdyaWQtYWN0aW9uLWFycm93LXNpemUpIC0gdmFyKC0tY2RzLWdsb2JhbC1z'@; put 'cGFjZS0xKSk7Ym9yZGVyLXJpZ2h0LXN0eWxlOnNvbGlkO2JvcmRlci1yaWdodC1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1iZy1jb2xvcil9LmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW17Zm9udC1zaXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5'@; put 'LXNlY29uZGFyeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1kcm9wZG93bi1pdGVtLWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFyeS1sZXR0'@; put 'ZXItc3BhY2luZyk7Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWl0ZW0tY29sb3IpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWl0ZW0tYmctY29sb3IpO2JvcmRlcjowO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6ZmxleDtnYXA6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0z'@; put 'KTthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OmF1dG87bWFyZ2luOjA7d2lkdGg6MTAwJTt0ZXh0LXRyYW5zZm9ybTpub25lfS5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtLmFjdGl2ZXtjb2xvcjp2YXIoLS1jbHItZHJvcGRvd24taXRlbS1zZWxlY3RlZC1jb2xvcik7'@; put 'YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZHJvcGRvd24taXRlbS1zZWxlY3RlZC1iZy1jb2xvcil9LmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW06aG92ZXJ7Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWl0ZW0taG92ZXItY29sb3IpO2JhY2tncm91bmQtY29sb3I6'@; put 'dmFyKC0tY2xyLWRyb3Bkb3duLWl0ZW0taG92ZXItYmctY29sb3IpO3RleHQtZGVjb3JhdGlvbjpub25lfS5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtOmhvdmVyLmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1kcm9wZG93bi1pdGVtLXNlbGVjdGVkLWhv'@; put 'dmVyLWJnLWNvbG9yKX0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTphY3RpdmV7Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWl0ZW0tYWN0aXZlLWNvbG9yKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1kcm9wZG93bi1pdGVtLWFjdGl2ZS1iZy1jb2xvcil9LmRh'@; put 'dGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW06YWN0aXZlLmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1kcm9wZG93bi1pdGVtLXNlbGVjdGVkLWFjdGl2ZS1iZy1jb2xvcil9LmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW06Zm9jdXN7ei1p'@; put 'bmRleDppbmhlcml0fS5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtLmRpc2FibGVkLC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtOmRpc2FibGVke3BvaW50ZXItZXZlbnRzOm5vbmU7Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWl0ZW0tZGlzYWJs'@; put 'ZWQtY29sb3IpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWl0ZW0tZGlzYWJsZWQtYmctY29sb3IpOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtLmRpc2FibGVkOmhvdmVy'@; put 'LC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtOmRpc2FibGVkOmhvdmVye2JhY2tncm91bmQ6MCAwfS5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtLmRpc2FibGVkOmFjdGl2ZSwuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpk'@; put 'aXNhYmxlZDphY3RpdmV7YmFja2dyb3VuZDowIDA7Ym94LXNoYWRvdzpub25lfS5kYXRhZ3JpZC1ob3N0LmRhdGFncmlkLWNhbGN1bGF0ZS1tb2Rle2Rpc3BsYXk6YmxvY2t9LmRhdGFncmlkLWhvc3QuZGF0YWdyaWQtY2FsY3VsYXRlLW1vZGUgLmRhdGFncmlkLC5kYXRhZ3JpZC1ob3N0LmRh'@; put 'dGFncmlkLWNhbGN1bGF0ZS1tb2RlIC5kYXRhZ3JpZC1mb290ZXIsLmRhdGFncmlkLWhvc3QuZGF0YWdyaWQtY2FsY3VsYXRlLW1vZGUgLmRhdGFncmlkLXJvdy1tYXN0ZXIsLmRhdGFncmlkLWhvc3QuZGF0YWdyaWQtY2FsY3VsYXRlLW1vZGUgLmRhdGFncmlkLXJvdy1jbGlja2FibGV7ZGlz'@; put 'cGxheTpub25lfS5kYXRhZ3JpZC1ob3N0LmRhdGFncmlkLWNhbGN1bGF0ZS1tb2RlIC5kYXRhZ3JpZC1jYWxjdWxhdGlvbi10YWJsZXtkaXNwbGF5OnRhYmxlO3RhYmxlLWxheW91dDphdXRvfS5kYXRhZ3JpZC1ob3N0LmRhdGFncmlkLWNhbGN1bGF0ZS1tb2RlIC5kYXRhZ3JpZC1jYWxjdWxh'@; put 'dGlvbi10YWJsZSAuZGF0YWdyaWQtY2FsY3VsYXRpb24taGVhZGVye2Rpc3BsYXk6dGFibGUtaGVhZGVyLWdyb3VwfS5kYXRhZ3JpZC1ob3N0LmRhdGFncmlkLWNhbGN1bGF0ZS1tb2RlIC5kYXRhZ3JpZC1jYWxjdWxhdGlvbi10YWJsZSAuZGF0YWdyaWQtY2FsY3VsYXRpb24taGVhZGVyIC5k'@; put 'YXRhZ3JpZC1jb2x1bW57ZGlzcGxheTp0YWJsZS1jZWxsO21pbi13aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTE1KX0uZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtY2FsY3VsYXRpb24tdGFibGUgLmRhdGFncmlkLWNhbGN1bGF0aW9uLWhlYWRl'@; put 'ciAuZGF0YWdyaWQtY29sdW1ue2JvcmRlci1jb2xvcjp2YXIoLS1jbHItdGFibGVyb3ctYm9yZGVyY29sb3IpO2JvcmRlci13aWR0aDp2YXIoLS1jbHItdGFibGUtYm9yZGVyd2lkdGgpO2JvcmRlci1zdHlsZTpzb2xpZDtwYWRkaW5nOnZhcigtLWNsci10YWJsZS10b3BjZWxscGFkZGluZykg'@; put 'dmFyKC0tY2xyLXRhYmxlLWNlbGxwYWRkaW5nKSB2YXIoLS1jbHItdGFibGUtYm90dG9tY2VsbHBhZGRpbmcpO3ZlcnRpY2FsLWFsaWduOnRvcDtmb250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY2FwdGlvbi1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1hbGlh'@; put 'cy10eXBvZ3JhcGh5LWNhcHRpb24tZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNhcHRpb24tbGluZS1oZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNhcHRpb24tbGV0dGVyLXNwYWNpbmcpO21hcmdp'@; put 'bi10b3A6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTttYXJnaW4tYm90dG9tOjB9LmRhdGFncmlkLWhvc3QuZGF0YWdyaWQtY2FsY3VsYXRlLW1vZGUgLmRhdGFncmlkLWNhbGN1bGF0aW9uLXRhYmxlIC5kYXRhZ3JpZC1yb3d7ZGlzcGxheTp0YWJsZS1yb3d9LmRhdGFncmlkLWhvc3QuZGF0'@; put 'YWdyaWQtY2FsY3VsYXRlLW1vZGUgLmRhdGFncmlkLWNhbGN1bGF0aW9uLXRhYmxlIC5kYXRhZ3JpZC1yb3cgY2xyLWV4cGFuZGFibGUtYW5pbWF0aW9ue2Rpc3BsYXk6bm9uZX0uZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtY2FsY3VsYXRpb24tdGFi'@; put 'bGUgLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtY2VsbHtkaXNwbGF5OnRhYmxlLWNlbGw7bWluLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTUpO2ZvbnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1ib2R5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFs'@; put 'aWFzLXR5cG9ncmFwaHktYm9keS1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1ib2R5LWxldHRlci1zcGFjaW5nKTtwYWRkaW5nOnZhcigtLWNsci10YWJsZS10b3BjZWxs'@; put 'cGFkZGluZykgdmFyKC0tY2xyLXRhYmxlLWNlbGxwYWRkaW5nKSB2YXIoLS1jbHItdGFibGUtYm90dG9tY2VsbHBhZGRpbmcpO3ZlcnRpY2FsLWFsaWduOnRvcH0uZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtY29sdW1uLXNlcGFyYXRvciwuZGF0YWdy'@; put 'aWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtcGxhY2Vob2xkZXItY29udGFpbmVyLC5kYXRhZ3JpZC1ob3N0LmRhdGFncmlkLWNhbGN1bGF0ZS1tb2RlIC5kYXRhZ3JpZC1maXhlZC1jb2x1bW57ZGlzcGxheTpub25lfUBrZXlmcmFtZXMgY2xyLXNrZWxldG9uLWxv'@; put 'YWRpbmd7MCV7YmFja2dyb3VuZC1wb3NpdGlvbi14OjB9dG97YmFja2dyb3VuZC1wb3NpdGlvbi14Oi0yMDAlfX0uZmFkZXtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlLWluLW91dDt3aWxsLWNoYW5nZTpvcGFjaXR5fS5mYWRlLmlue29wYWNpdHk6MX0uZmFkZURvd257'@; put 'b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0yNSUpO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZS1pbi1vdXQsdHJhbnNmb3JtIC4ycyBlYXNlLWluLW91dDt3aWxsLWNoYW5nZTpvcGFjaXR5LHRyYW5zZm9ybX0uZmFkZURvd24uaW57b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFu'@; put 'c2xhdGUoMCl9LnNrZWxldG9uLWxvYWRpbmc6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtib3JkZXItcmFkaXVzOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXJhZGl1cy0xMDApO2JhY2tncm91bmQ6dmFyKC0tY2Rz'@; put 'LWFsaWFzLW9iamVjdC1za2VsZXRvbi1sb2FkaW5nLWdyYWRpZW50KTthbmltYXRpb246dmFyKC0tY2RzLWdsb2JhbC1hbmltYXRpb24tc2tlbGV0b24tZHVyYXRpb24pIGNsci1za2VsZXRvbi1sb2FkaW5nIHZhcigtLWNkcy1nbG9iYWwtYW5pbWF0aW9uLWVhc2luZy1pbi1vdXQpIGluZmlu'@; put 'aXRlO2JhY2tncm91bmQtc2l6ZToyMDAlIDEwMCV9OnJvb3QgW2Nkcy10aGVtZV17LS1jbHItd2l6YXJkLWRlZmF1bHQtc3BhY2U6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTstLWNsci13aXphcmQtbWFpbi1iZ2NvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3Qtb3ZlcmxheS1iYWNrZ3Jv'@; put 'dW5kKTstLWNsci13aXphcmQtbWFpbi10ZXh0LWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTQwMCk7LS1jbHItd2l6YXJkLXN0ZXBuYXYtYmdjb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQpOy0tY2xyLXdpemFyZC1zdGVw'@; put 'bmF2LXRleHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNDAwKTstLWNsci13aXphcmQtc3RlcG5hdi10ZXh0LWFjdGl2ZTp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yLWFjdGl2ZSk7LS1jbHItd2l6YXJkLXN0ZXBuYXYtdGV4dC1ob3Zlcjp2YXIo'@; put 'LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yLWhvdmVyKTstLWNsci13aXphcmQtc3RlcG5hdi10ZXh0LS1hY3RpdmU6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvci1zZWxlY3RlZCk7LS1jbHItd2l6YXJkLXN0ZXBuYXYtdGV4dC1kaXNhYmxlZDp2'@; put 'YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1kaXNhYmxlZCk7LS1jbHItd2l6YXJkLXN0ZXBuYXYtaXRlbS1ib3JkZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1uZXV0cmFsLXRpbnQpOy0tY2xyLXdpemFyZC1zdGVwbmF2LWJvcmRlci1zaXplOnZhcigtLWNkcy1nbG9iYWwtc3Bh'@; put 'Y2UtMyk7LS1jbHItd2l6YXJkLXN0ZXBuYXYtaXRlbS1ib3JkZXItY29sb3ItLWFjdGl2ZTp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLXN1Y2Nlc3MpOy0tY2xyLXdpemFyZC1zdGVwbmF2LXNlbGVjdGVkLWJvcmRlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJh'@; put 'Y2tncm91bmQtaGlnaGxpZ2h0KTstLWNsci13aXphcmQtc3RlcG5hdi1hY3RpdmUtYmdjb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtc2VsZWN0ZWQpOy0tY2xyLXdpemFyZC1zdGVwbmF2LXNlbGVjdGVkLWJnY29sb3I6dmFyKC0tY2xyLXdpemFy'@; put 'ZC1zdGVwbmF2LWFjdGl2ZS1iZ2NvbG9yKTstLWNsci13aXphcmQtc3RlcG5hdi1zZWxlY3RlZC1ob3Zlci1iZ2NvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1zZWxlY3RlZC1ob3Zlcik7LS1jbHItd2l6YXJkLXN0ZXBuYXYtc2VsZWN0ZWQtYWN0'@; put 'aXZlLWJnY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLXNlbGVjdGVkLWFjdGl2ZSk7LS1jbHItd2l6YXJkLXN0ZXBuYXYtbGluay1lcnJvci1pY29uLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtZGFuZ2VyKTstLWNsci13aXphcmQtc3Rl'@; put 'cG5hdi1saW5rLWNvbXBsZXRlLWljb24tY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1zdWNjZXNzKTstLWNsci13aXphcmQtc3RlcG5hdi1ib3JkZXItY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1jb250YWluZXItYm9yZGVyLWNvbG9yKTstLWNsci13aXphcmQtc3RlcG5hdi1s'@; put 'aW5rLWhvdmVyLWJnLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1ob3Zlcik7LS1jbHItd2l6YXJkLXN0ZXBuYXYtbGluay1hY3RpdmUtYmctY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLWFjdGl2'@; put 'ZSk7LS1jbHItd2l6YXJkLXN0ZXBuYXYtbGluay1wYWRkaW5nOmNhbGModmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KSAtIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSkpOy0tY2xyLXdpemFyZC1zdGVwbmF2LWl0ZW0tZXJyb3ItYm9yZGVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMt'@; put 'ZGFuZ2VyKTstLWNsci13aXphcmQtdGl0bGUtdGV4dDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci00MDApOy0tY2xyLXdpemFyZC1mb290ZXItaGVpZ2h0OmF1dG87LS1jbHItd2l6YXJkLWhlYWRlci1hY3Rpb24tY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFj'@; put 'dGlvbi1jb2xvcik7LS1jbHItd2l6YXJkLWhlYWRlci1hY3Rpb24tY29sb3ItLWhvdmVyZWQ6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvci1ob3Zlcik7LS1jbHItd2l6YXJkLWJveC1zaGFkb3c6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1zaGFkb3ctMzAwKTstLWNs'@; put 'ci13aXphcmQtYm9yZGVyLXJhZGl1czp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1yYWRpdXMtMTAwKTstLWNsci13aXphcmQtY29udGVudC1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtY29udGFpbmVyLWJhY2tncm91bmQpfS5jbHItd2l6YXJkIC5tb2Rh'@; put 'bC1kaWFsb2d7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7Ym94LXNoYWRvdzp2YXIoLS1jbHItd2l6YXJkLWJveC1zaGFkb3cpO2hlaWdodDo1MCU7bWF4LWhlaWdodDoxMDAlfS5jbHItd2l6YXJkIC5tb2RhbC1jb250ZW50e2JvcmRlci1y'@; put 'YWRpdXM6MCB2YXIoLS1jbHItd2l6YXJkLWJvcmRlci1yYWRpdXMpIHZhcigtLWNsci13aXphcmQtYm9yZGVyLXJhZGl1cykgMDtib3gtc2hhZG93Om5vbmU7cGFkZGluZzowO2ZsZXg6MiAyIGF1dG87d2lkdGg6NjYlO2hlaWdodDppbml0aWFsO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmZs'@; put 'ZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmNsci13aXphcmQgLm1vZGFsLWhlYWRlci0tYWNjZXNzaWJsZXtmbGV4OjAgMCBhdXRvO3dpZHRoOjEwMCU7cGFkZGluZzp2YXIoLS1jbHItd2l6YXJkLWRlZmF1bHQtc3BhY2UpIHZhcigtLWNsci13aXph'@; put 'cmQtZGVmYXVsdC1zcGFjZSkgMH0uY2xyLXdpemFyZCAubW9kYWwtdGl0bGV7Y29sb3I6dmFyKC0tY2xyLXdpemFyZC10aXRsZS10ZXh0KTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O3dpZHRoOjEwMCV9LmNsci13aXphcmQgLm1vZGFsLWJvZHl7ZmxleDoxIDEgYXV0bztjb2xv'@; put 'cjp2YXIoLS1jbHItd2l6YXJkLW1haW4tdGV4dC1jb2xvcik7d2lkdGg6MTAwJTtwYWRkaW5nOnZhcigtLWNsci13aXphcmQtZGVmYXVsdC1zcGFjZSl9LmNsci13aXphcmQgLm1vZGFsLWZvb3RlcntkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7ZmxleDowIDAgdmFyKC0tY2xyLXdpemFyZC1m'@; put 'b290ZXItaGVpZ2h0KTtoZWlnaHQ6dmFyKC0tY2xyLXdpemFyZC1mb290ZXItaGVpZ2h0KTttaW4taGVpZ2h0OnZhcigtLWNsci13aXphcmQtZm9vdGVyLWhlaWdodCk7bWF4LWhlaWdodDp2YXIoLS1jbHItd2l6YXJkLWZvb3Rlci1oZWlnaHQpO3BhZGRpbmc6MCB2YXIoLS1jbHItd2l6YXJk'@; put 'LWRlZmF1bHQtc3BhY2UpIHZhcigtLWNsci13aXphcmQtZGVmYXVsdC1zcGFjZSl9LmNsci13aXphcmQgLmNsci13aXphcmQtYnRue21hcmdpbjowO21heC13aWR0aDoxMDAlO2Rpc3BsYXk6YmxvY2t9LmNsci13aXphcmQgLm1vZGFsLXRpdGxlLXRleHR7ZGlzcGxheTppbmxpbmUtYmxvY2s7'@; put 'ZmxleDowIDEgYXV0bzt3aWR0aDoxMDAlO291dGxpbmU6MH0uY2xyLXdpemFyZCAubW9kYWwtdGl0bGUtd3JhcHBlcnt3aWR0aDoxMDAlfS5jbHItd2l6YXJkIC5tb2RhbC1oZWFkZXItYWN0aW9ucy13cmFwcGVye2ZsZXg6MSAwIGF1dG87aGVpZ2h0OnZhcigtLWNsci13aXphcmQtZGVmYXVs'@; put 'dC1zcGFjZSk7cGFkZGluZy1sZWZ0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNik7cGFkZGluZy1yaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTMpfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLWhlYWRlci1hY3Rpb24td3JhcHBlcntkaXNwbGF5OmlubGluZS1mbGV4fS5jbHItd2l6YXJk'@; put 'IC5jbHItd2l6YXJkLWhlYWRlci1hY3Rpb257aGVpZ2h0OnZhcigtLWNsci13aXphcmQtZGVmYXVsdC1zcGFjZSk7d2lkdGg6dmFyKC0tY2xyLXdpemFyZC1kZWZhdWx0LXNwYWNlKTtib3JkZXI6MDtwYWRkaW5nOjA7bWFyZ2luOjA7bWluLXdpZHRoOnZhcigtLWNsci13aXphcmQtZGVmYXVs'@; put 'dC1zcGFjZSk7bGluZS1oZWlnaHQ6dmFyKC0tY2xyLXdpemFyZC1kZWZhdWx0LXNwYWNlKTtmb250LXNpemU6dmFyKC0tY2xyLXdpemFyZC1kZWZhdWx0LXNwYWNlKTtjb2xvcjp2YXIoLS1jbHItd2l6YXJkLWhlYWRlci1hY3Rpb24tY29sb3IpO3RyYW5zaXRpb246Y29sb3IgbGluZWFyIC4y'@; put 'c30uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1oZWFkZXItYWN0aW9uIGF7Y29sb3I6dmFyKC0tY2xyLXdpemFyZC1oZWFkZXItYWN0aW9uLWNvbG9yKX0uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1oZWFkZXItYWN0aW9uOmhvdmVyLC5jbHItd2l6YXJkIC5jbHItd2l6YXJkLWhlYWRlci1hY3Rp'@; put 'b246YWN0aXZlLC5jbHItd2l6YXJkIC5jbHItd2l6YXJkLWhlYWRlci1hY3Rpb246Zm9jdXN7Y29sb3I6dmFyKC0tY2xyLXdpemFyZC1oZWFkZXItYWN0aW9uLWNvbG9yLS1ob3ZlcmVkKX0uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1oZWFkZXItYWN0aW9uIGNkcy1pY29uLC5jbHItd2l6YXJk'@; put 'IC5jbHItd2l6YXJkLWhlYWRlci1hY3Rpb24gY2xyLWljb257aGVpZ2h0OnZhcigtLWNsci13aXphcmQtZGVmYXVsdC1zcGFjZSk7d2lkdGg6dmFyKC0tY2xyLXdpemFyZC1kZWZhdWx0LXNwYWNlKX0uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1zdGVwbmF2LXdyYXBwZXJ7ZmxleDoxIDEgYXV0'@; put 'bztoZWlnaHQ6MTAwJTt3aWR0aDozNCU7bWF4LXdpZHRoOjM0JTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO29yZGVyOi0xO292ZXJmbG93OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87Ym9yZGVyLXJpZ2h0OnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgpIHNvbGlkIHZh'@; put 'cigtLWNsci13aXphcmQtc3RlcG5hdi1ib3JkZXItY29sb3IpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXdpemFyZC1zdGVwbmF2LWJnY29sb3IpO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLXdpemFyZC1ib3JkZXItcmFkaXVzKSAwIDAgdmFyKC0tY2xyLXdpemFyZC1ib3JkZXItcmFk'@; put 'aXVzKX0uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1zdGVwbmF2e3BhZGRpbmc6MCAwIHZhcigtLWNsci13aXphcmQtZGVmYXVsdC1zcGFjZSkgdmFyKC0tY2xyLXdpemFyZC1kZWZhdWx0LXNwYWNlKTtkaXNwbGF5OmJsb2NrO2NvbG9yOnZhcigtLWNsci13aXphcmQtc3RlcG5hdi10ZXh0KTt3'@; put 'aWR0aDoxMDAlO2ZsZXg6MSAxIGF1dG99LmNsci13aXphcmQgLmNsci13aXphcmQtc3RlcG5hdi1saXN0e2Rpc3BsYXk6YmxvY2s7Ym94LXNoYWRvdzpub25lO2NvdW50ZXItcmVzZXQ6YTt3aGl0ZS1zcGFjZTpub3dyYXA7aGVpZ2h0OmF1dG87bGlzdC1zdHlsZS10eXBlOm5vbmU7bWFyZ2lu'@; put 'OjA7d2lkdGg6MTAwJX0uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1zdGVwbmF2LWl0ZW17ZGlzcGxheTpibG9jaztib3JkZXItbGVmdDp2YXIoLS1jbHItd2l6YXJkLXN0ZXBuYXYtYm9yZGVyLXNpemUpIHNvbGlkIHZhcigtLWNsci13aXphcmQtc3RlcG5hdi1pdGVtLWJvcmRlci1jb2xvcik7'@; put 'bWFyZ2luLWJvdHRvbTp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEpO2NvbG9yOnZhcigtLWNsci13aXphcmQtc3RlcG5hdi10ZXh0KTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci13aXphcmQtc3RlcG5hdi1iZ2NvbG9yKX0uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1zdGVwbmF2LWl0ZW0g'@; put 'YnV0dG9uLmNsci13aXphcmQtc3RlcG5hdi1saW5re2NvbG9yOmluaGVyaXQ7YmFja2dyb3VuZC1jb2xvcjppbmhlcml0fS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXN0ZXBuYXYtaXRlbS5kaXNhYmxlZHtjb2xvcjp2YXIoLS1jbHItd2l6YXJkLXN0ZXBuYXYtdGV4dC1kaXNhYmxlZCl9LmNs'@; put 'ci13aXphcmQgLmNsci13aXphcmQtc3RlcG5hdi1pdGVtLmFjdGl2ZXtjb2xvcjp2YXIoLS1jbHItd2l6YXJkLXN0ZXBuYXYtdGV4dC0tYWN0aXZlKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci13aXphcmQtc3RlcG5hdi1zZWxlY3RlZC1iZ2NvbG9yKTtib3JkZXItbGVmdC1jb2xvcjp2'@; put 'YXIoLS1jbHItd2l6YXJkLXN0ZXBuYXYtc2VsZWN0ZWQtYm9yZGVyLWNvbG9yKX0uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1zdGVwbmF2LWl0ZW0uYWN0aXZlOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXdpemFyZC1zdGVwbmF2LXNlbGVjdGVkLWhvdmVyLWJnY29sb3IpfS5j'@; put 'bHItd2l6YXJkIC5jbHItd2l6YXJkLXN0ZXBuYXYtaXRlbS5hY3RpdmU6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXdpemFyZC1zdGVwbmF2LXNlbGVjdGVkLWFjdGl2ZS1iZ2NvbG9yKX0uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1zdGVwbmF2LWl0ZW06bm90KC5kaXNhYmxl'@; put 'ZCk6bm90KC5hY3RpdmUpOmhvdmVye2NvbG9yOnZhcigtLWNsci13aXphcmQtc3RlcG5hdi10ZXh0LWhvdmVyKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci13aXphcmQtc3RlcG5hdi1saW5rLWhvdmVyLWJnLWNvbG9yKX0uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1zdGVwbmF2LWl0ZW06'@; put 'bm90KC5kaXNhYmxlZCk6bm90KC5hY3RpdmUpOmFjdGl2ZXtjb2xvcjp2YXIoLS1jbHItd2l6YXJkLXN0ZXBuYXYtdGV4dC1hY3RpdmUpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXdpemFyZC1zdGVwbmF2LWxpbmstYWN0aXZlLWJnLWNvbG9yKX0uY2xyLXdpemFyZCAuY2xyLXdpemFy'@; put 'ZC1zdGVwbmF2LWl0ZW0gLmNsci13aXphcmQtc3RlcG5hdi1saW5rLXRpdGxle3dvcmQtYnJlYWs6YnJlYWstd29yZDt3aGl0ZS1zcGFjZTpub3JtYWx9LmNsci13aXphcmQgLmNsci13aXphcmQtc3RlcG5hdi1pdGVtLmNvbXBsZXRle2JvcmRlci1jb2xvcjp2YXIoLS1jbHItd2l6YXJkLXN0'@; put 'ZXBuYXYtaXRlbS1ib3JkZXItY29sb3ItLWFjdGl2ZSk7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjJzIGVhc2UtaW59LmNsci13aXphcmQgLmNsci13aXphcmQtc3RlcG5hdi1pdGVtLmNvbXBsZXRlIC5jbHItd2l6YXJkLXN0ZXBuYXYtbGluay1pY29uIGNkcy1pY29uey0tY29sb3I6dmFy'@; put 'KC0tY2xyLXdpemFyZC1zdGVwbmF2LWxpbmstY29tcGxldGUtaWNvbi1jb2xvcil9LmNsci13aXphcmQgLmNsci13aXphcmQtc3RlcG5hdi1pdGVtLmVycm9ye2JvcmRlci1jb2xvcjp2YXIoLS1jbHItd2l6YXJkLXN0ZXBuYXYtaXRlbS1lcnJvci1ib3JkZXItY29sb3IpO3RyYW5zaXRpb246'@; put 'Ym9yZGVyLWNvbG9yIC4ycyBlYXNlLWlufS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXN0ZXBuYXYtaXRlbS5lcnJvciAuY2xyLXdpemFyZC1zdGVwbmF2LWxpbmstaWNvbiBjZHMtaWNvbnstLWNvbG9yOnZhcigtLWNsci13aXphcmQtc3RlcG5hdi1saW5rLWVycm9yLWljb24tY29sb3IpfS5j'@; put 'bHItd2l6YXJkIC5jbHItd2l6YXJkLXN0ZXBuYXYtaXRlbS5uby1jbGljayBidXR0b257cG9pbnRlci1ldmVudHM6bm9uZX0uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1zdGVwbmF2LWxpbmt7d2lkdGg6MTAwJTtkaXNwbGF5OmZsZXg7cGxhY2UtY29udGVudDpub3JtYWw7Y29sb3I6aW5oZXJp'@; put 'dDthbGlnbi1pdGVtczpjZW50ZXI7dGV4dC1hbGlnbjpsZWZ0O3RleHQtdHJhbnNmb3JtOm5vbmU7bWFyZ2luOjA7cGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpO2hlaWdodDphdXRvO21pbi1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMik7bWF4LXdpZHRoOmluaGVy'@; put 'aXQ7Zm9udC1zaXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWJvZHktZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1mb250LXdlaWdodC1tZWRpdW0pO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWJvZHktbGluZS1o'@; put 'ZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWJvZHktbGV0dGVyLXNwYWNpbmcpfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXN0ZXBuYXYtbGluayAuY2xyLXdpemFyZC1zdGVwbmF2LWxpbmstaWNvbntkaXNwbGF5OmZsZXh9LmNsci13aXphcmQgLmNs'@; put 'ci13aXphcmQtc3RlcG5hdi1saW5rIC5jbHItd2l6YXJkLXN0ZXBuYXYtbGluay1pY29uLC5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXN0ZXBuYXYtbGluayAuY2xyLXdpemFyZC1zdGVwbmF2LWxpbmstcGFnZS1udW1iZXJ7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KX0uY2xyLXdp'@; put 'emFyZCAuY2xyLXdpemFyZC10aXRsZXttYXJnaW4tdG9wOjA7ZmxleDowIDAgYXV0bztjb2xvcjp2YXIoLS1jbHItd2l6YXJkLXRpdGxlLXRleHQpO3BhZGRpbmc6dmFyKC0tY2xyLXdpemFyZC1kZWZhdWx0LXNwYWNlKTtmb250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2Vj'@; put 'dGlvbi1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY3Rpb24tZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY3Rpb24tbGluZS1oZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlh'@; put 'cy10eXBvZ3JhcGh5LXNlY3Rpb24tbGV0dGVyLXNwYWNpbmcpfS5jbHItd2l6YXJkIC5tb2RhbC1jb250ZW50LXdyYXBwZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztmbGV4OjEgMSAxMDAlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jbHItd2l6'@; put 'YXJkIC5tb2RhbC1jb250ZW50LXdyYXBwZXIgLm1vZGFsLW5hdntoZWlnaHQ6YXV0b30uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1mb290ZXItYnV0dG9uc3t0ZXh0LWFsaWduOnJpZ2h0O21hcmdpbjowfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLWZvb3Rlci1idXR0b25zLXdyYXBwZXJ7ZGlz'@; put 'cGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LXdyYXA6bm93cmFwO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtnYXA6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KX0uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1idG4td3JhcHBlcntmbGV4OjAgMSBhdXRvfS5jbHItd2l6YXJkIC5j'@; put 'bHItd2l6YXJkLWJ0bi13cmFwcGVyW2FyaWEtaGlkZGVuPXRydWVde2Rpc3BsYXk6bm9uZX0uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1idG4uYnRuLWxpbmt7cGFkZGluZzowfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLWNvbnRlbnR7ZGlzcGxheTpibG9ja30uY2xyLXdpemFyZCAuY2xyLXdp'@; put 'emFyZC1wYWdlOm5vdChbYXJpYS1oaWRkZW49dHJ1ZV0pe2Rpc3BsYXk6YmxvY2t9LmNsci13aXphcmQgLm1vZGFsLWRpYWxvZ3toZWlnaHQ6NzV2aH0uY2xyLXdpemFyZCAubW9kYWwtYm9keS13cmFwcGVye21heC1oZWlnaHQ6MTAwJTtkaXNwbGF5OmZsZXg7ZmxleC1ncm93OjE7d2lkdGg6'@; put 'MTAwJX0uY2xyLXdpemFyZC53aXphcmQtbWQgLm1vZGFsLWRpYWxvZ3ttaW4taGVpZ2h0OmNhbGMoNDIwKigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTttYXgtaGVpZ2h0OmNhbGMoNTA0KigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKX0uY2xyLXdpemFyZC53aXphcmQtbWQg'@; put 'Lm1vZGFsLWNvbnRlbnQsLmNsci13aXphcmQud2l6YXJkLW1kIC5jbHItd2l6YXJkLXN0ZXBuYXYtd3JhcHBlcnttYXgtaGVpZ2h0OmNhbGMoNTA0KigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKX0uY2xyLXdpemFyZC53aXphcmQtbWQgLmNsci13aXphcmQtc3RlcG5hdi13cmFwcGVy'@; put 'e21pbi13aWR0aDpjYWxjKDIxNiooMXJlbS92YXIoLS1jZHMtZ2xvYmFsLWJhc2UpKSk7bWF4LXdpZHRoOmNhbGMoMjQwKigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKX0uY2xyLXdpemFyZC53aXphcmQtbGcgLm1vZGFsLWRpYWxvZ3ttaW4taGVpZ2h0OmNhbGMoNDIwKigxcmVtL3Zh'@; put 'cigtLWNkcy1nbG9iYWwtYmFzZSkpKTttYXgtaGVpZ2h0OmNhbGMoNzIwKigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKX0uY2xyLXdpemFyZC53aXphcmQtbGcgLm1vZGFsLWNvbnRlbnQsLmNsci13aXphcmQud2l6YXJkLWxnIC5jbHItd2l6YXJkLXN0ZXBuYXYtd3JhcHBlcnttYXgt'@; put 'aGVpZ2h0OmNhbGMoNzIwKigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKX0uY2xyLXdpemFyZC53aXphcmQtbGcgLm5hdi1wYW5lbCwuY2xyLXdpemFyZC53aXphcmQtbGcgLmNsci13aXphcmQtc3RlcG5hdi13cmFwcGVye21pbi13aWR0aDpjYWxjKDI0MCooMXJlbS92YXIoLS1jZHMt'@; put 'Z2xvYmFsLWJhc2UpKSk7bWF4LXdpZHRoOmNhbGMoMjg4KigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKX0uY2xyLXdpemFyZC53aXphcmQteGwgLm1vZGFsLWRpYWxvZ3toZWlnaHQ6NzV2aDttYXgtaGVpZ2h0Om5vbmV9LmNsci13aXphcmQud2l6YXJkLXhsIC5uYXYtcGFuZWwsLmNs'@; put 'ci13aXphcmQud2l6YXJkLXhsIC5jbHItd2l6YXJkLXN0ZXBuYXYtd3JhcHBlcnttaW4td2lkdGg6Y2FsYygyNDAqKDFyZW0vdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpO21heC13aWR0aDpjYWxjKDMyMCooMXJlbS92YXIoLS1jZHMtZ2xvYmFsLWJhc2UpKSl9LmNsci13aXphcmQgLnNwaW5u'@; put 'ZXI6bm90KC5zcGlubmVyLWlubGluZSk6bm90KC5jbHItdHJlZW5vZGUtc3Bpbm5lcil7bGVmdDpjYWxjKDUwJSArIGNhbGMoMTE1KigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKSk7cG9zaXRpb246YWJzb2x1dGU7dG9wOjQwJX0uY2xyLXdpemFyZC1wYWdlPjpmaXJzdC1jaGlsZHtt'@; put 'YXJnaW4tdG9wOjB9LmNsci13aXphcmQtcGFnZT46Zmlyc3QtY2hpbGQ+OmZpcnN0LWNoaWxke21hcmdpbi10b3A6MH0uY2xyLXdpemFyZC1wYWdlPmZvcm06Zmlyc3QtY2hpbGR7cGFkZGluZy10b3A6MH0uY2xyLXdpemFyZC1wYWdlPmZvcm06Zmlyc3QtY2hpbGQ+LmZvcm0tYmxvY2s6Zmly'@; put 'c3QtY2hpbGR7bWFyZ2luLXRvcDowfS5jbHItd2l6YXJkLS1pbmxpbmV7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlfS5jbHItd2l6YXJkLS1pbmxpbmU+Y2xyLW1vZGFsPi5tb2RhbDpmb2N1c3tvdXRsaW5lLXN0eWxlOm5vbmU7b3V0bGluZS1jb2xvcjp0cmFuc3BhcmVudH0uY2xyLXdpemFy'@; put 'ZC0taW5saW5lIGNsci1tb2RhbHtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2Rpc3BsYXk6YmxvY2t9LmNsci13aXphcmQtLWlubGluZSAubW9kYWx7cGFkZGluZzowO3Bvc2l0aW9uOnN0YXRpYztoZWlnaHQ6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNsci13aXphcmQtLWlubGluZSAubW9kYWwg'@; put 'LmNvbnRlbnQtY29udGFpbmVye2hlaWdodDoxMDAlfS5jbHItd2l6YXJkLS1pbmxpbmUgLm1vZGFsIC5jb250ZW50LWNvbnRhaW5lciAubmF2LXBhbmVse2hlaWdodDo5OSU7d2lkdGg6OTklfS5jbHItd2l6YXJkLS1pbmxpbmUgLm1vZGFsIC5tb2RhbC1jb250ZW50e2JveC1zaGFkb3c6bm9u'@; put 'ZX0uY2xyLXdpemFyZC0taW5saW5lIC5tb2RhbCAubW9kYWwtZGlhbG9ne21pbi1oZWlnaHQ6MTAwJTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO3otaW5kZXg6YXV0b30uY2xyLXdpemFyZC0taW5saW5lIC5tb2RhbC1ib2R5LXdyYXBwZXJ7aGVpZ2h0OjEwMCV9LmNsci13aXphcmQtLWlubGlu'@; put 'ZSAubW9kYWwtaGVhZGVyIC5jbG9zZXtkaXNwbGF5Om5vbmV9LmNsci13aXphcmQtLWlubGluZSAubmF2Lm5hdkxpc3R7cGFkZGluZy10b3A6MH0uY2xyLXdpemFyZC0taW5saW5lIC5tb2RhbC1kaWFsb2cgLm1vZGFsLWNvbnRlbnQgLm1vZGFsLWJvZHkgLmNvbnRlbnQtYXJlYXtvdmVyZmxv'@; put 'dy15OmF1dG99LmNsci13aXphcmQtLWlubGluZSAubW9kYWwtYmFja2Ryb3B7aGVpZ2h0OjA7d2lkdGg6MDtkaXNwbGF5Om5vbmV9LmNsci13aXphcmQtLWlubGluZSAubW9kYWwtY29udGVudC13cmFwcGVye2FsaWduLWl0ZW1zOnN0cmV0Y2g7aGVpZ2h0OjEwMCV9LmNsci13aXphcmQtLWlu'@; put 'bGluZSAuY2xyLXdpemFyZC1zdGVwbmF2LXdyYXBwZXIsLmNsci13aXphcmQtLWlubGluZS5jbHItd2l6YXJkIC5tb2RhbC1jb250ZW50e21pbi1oZWlnaHQ6MTAwJTtoZWlnaHQ6YXV0bzttYXgtaGVpZ2h0OjEwMCV9LmNsci13aXphcmQtLWlubGluZSAuY2xyLXdpemFyZC1zdGVwbmF2LXdy'@; put 'YXBwZXIgLmNsci13aXphcmQtc3RlcG5hdiwuY2xyLXdpemFyZC0taW5saW5lLmNsci13aXphcmQgLm1vZGFsLWNvbnRlbnQgLmNsci13aXphcmQtc3RlcG5hdntoZWlnaHQ6MTAwJX0uY2xyLXdpemFyZC0tbm8tc2hhZG93IC5tb2RhbC1jb250ZW50LXdyYXBwZXIsLmNsci13aXphcmQtLW5v'@; put 'LXNoYWRvdyAubW9kYWwtZGlhbG9ne2JveC1zaGFkb3c6bm9uZX0uY2xyLXdpemFyZC0tbm8tdGl0bGUgLmNsci13aXphcmQtdGl0bGV7ZGlzcGxheTpub25lfS5jbHItd2l6YXJkLS1uby10aXRsZSAuY2xyLXdpemFyZC1zdGVwbmF2e3BhZGRpbmctdG9wOnZhcigtLWNkcy1nbG9iYWwtc3Bh'@; put 'Y2UtOSl9Lm1haW4tY29udGFpbmVyIC5jb250ZW50LWNvbnRhaW5lciAuY29udGVudC1hcmVhIC53aXphcmQtaW4tcGFnZS53aXphcmQtaW4tcGFnZS0tZmlsbC1jb250ZW50LWFyZWF7ZGlzcGxheTpibG9jaztoZWlnaHQ6Y2FsYygxMDAlICsgMi40cmVtKTttYXJnaW46LTEuMnJlbX0ud2l6'@; put 'YXJkLWluLXBhZ2UgLmNsci13aXphcmQtZm9vdGVyLWJ1dHRvbnMtd3JhcHBlcntqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH1AbWVkaWEgc2NyZWVuey5jbHItd2l6YXJkLXBhZ2VbYXJpYS1oaWRkZW49dHJ1ZV17ZGlzcGxheTpub25lfX1Ac3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246YXV0'@; put 'byl7LmNsci13aXphcmQgLmNsci13aXphcmQtaGVhZGVyLWFjdGlvbnttYXJnaW4tdG9wOmNhbGMoLTMqKDFyZW0vdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpfX06cm9vdCBbY2RzLXRoZW1lXXstLWNsci1zaWducG9zdC1jb250ZW50LWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5'@; put 'LWNvbG9yLTQwMCk7LS1jbHItc2lnbnBvc3QtY29udGVudC1iZy1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWNvbnRhaW5lci1iYWNrZ3JvdW5kKTstLWNsci1zaWducG9zdC1jb250ZW50LWJvcmRlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJvcmRl'@; put 'ci1jb2xvcik7LS1jbHItc2lnbnBvc3QtYWN0aW9uLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tY29sb3IpOy0tY2xyLXNpZ25wb3N0LWFjdGlvbi1ob3Zlci1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWNvbG9yLWhvdmVyKTstLWNs'@; put 'ci1zaWducG9zdC1hY3Rpb24tYWN0aXZlLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tY29sb3ItYWN0aXZlKTstLWNsci1zaWducG9zdC1ib3JkZXItcmFkaXVzOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLXJhZGl1cy0xMDApOy0tY2xyLXNpZ25wb3N0'@; put 'LXBvaW50ZXItc2l6ZTp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTYpOy0tY2xyLXNpZ25wb3N0LXBvaW50ZXItYm9yZGVyOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLXNpemUpIHNvbGlkIHZhcigtLWNsci1zaWducG9zdC1jb250ZW50LWJvcmRlci1jb2xvcik7LS1jbHItc2lnbnBvc3Qt'@; put 'cG9pbnRlci1pbnZpc2libGUtYm9yZGVyOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLXNpemUpIHNvbGlkIHRyYW5zcGFyZW50Oy0tY2xyLXNpZ25wb3N0LXBvaW50ZXItcHNldWRvLWJvcmRlcjp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1zaXplKSBzb2xpZCB2YXIoLS1jbHItc2ln'@; put 'bnBvc3QtY29udGVudC1iZy1jb2xvcik7LS1jbHItc2lnbnBvc3QtcG9pbnRlci1wc3VlZG8tYm9yZGVyOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLXBzZXVkby1ib3JkZXIpOy0tY2xyLXNpZ25wb3N0LWJvcmRlci1zaXplOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLXNpemUpfS5z'@; put 'aWducG9zdHtkaXNwbGF5OmlubGluZS1ibG9ja30uc2lnbnBvc3Q6aG92ZXJ7Y3Vyc29yOnBvaW50ZXJ9LnNpZ25wb3N0IC5zaWducG9zdC1hY3Rpb246bm90KC5jbG9zZSl7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlci13aWR0aDowO2NvbG9yOnZhcigtLWNsci1zaWducG9zdC1hY3Rpb24t'@; put 'Y29sb3IpfS5zaWducG9zdCAuc2lnbnBvc3QtYWN0aW9uOm5vdCguY2xvc2UpIGNkcy1pY29uLC5zaWducG9zdCAuc2lnbnBvc3QtYWN0aW9uOm5vdCguY2xvc2UpIGNsci1pY29ue2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpO3dpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2Ut'@; put 'OSk7Y29sb3I6dmFyKC0tY2xyLXNpZ25wb3N0LWFjdGlvbi1jb2xvcil9LnNpZ25wb3N0IC5zaWducG9zdC1hY3Rpb246bm90KC5jbG9zZSkgY2RzLWljb246aG92ZXIsLnNpZ25wb3N0IC5zaWducG9zdC1hY3Rpb246bm90KC5jbG9zZSkgY2xyLWljb246aG92ZXIsLnNpZ25wb3N0IC5zaWdu'@; put 'cG9zdC1hY3Rpb246bm90KC5jbG9zZSk6aG92ZXJ7Y29sb3I6dmFyKC0tY2xyLXNpZ25wb3N0LWFjdGlvbi1ob3Zlci1jb2xvcil9LnNpZ25wb3N0IC5zaWducG9zdC1hY3Rpb246bm90KC5jbG9zZSkuYWN0aXZlIGNkcy1pY29uLC5zaWducG9zdCAuc2lnbnBvc3QtYWN0aW9uOm5vdCguY2xv'@; put 'c2UpLmFjdGl2ZSBjbHItaWNvbiwuc2lnbnBvc3QgLnNpZ25wb3N0LWFjdGlvbjpub3QoLmNsb3NlKS5hY3RpdmV7Y29sb3I6dmFyKC0tY2xyLXNpZ25wb3N0LWFjdGlvbi1hY3RpdmUtY29sb3IpfS5zaWducG9zdCAuc2lnbnBvc3QtY29udGVudC1oZWFkZXIgYnV0dG9ue2xpbmUtaGVpZ2h0'@; put 'OjA7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTttaW4taGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7bWluLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyl9LnNpZ25wb3N0IC5zaWducG9zdC1jb250'@; put 'ZW50LWhlYWRlciBidXR0b24gY2RzLWljb24sLnNpZ25wb3N0IC5zaWducG9zdC1jb250ZW50LWhlYWRlciBidXR0b24gY2xyLWljb257aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTttaW4taGVpZ2h0OnZhcigtLWNkcy1n'@; put 'bG9iYWwtc3BhY2UtNyk7bWluLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyl9LnNpZ25wb3N0LXRyaWdnZXJ7bWFyZ2luOjA7ZGlzcGxheTppbmxpbmUtZmxleH0uc2lnbnBvc3QtY29udGVudHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O21pbi13aWR0aDpjYWxjKDIxNioo'@; put 'MXJlbS92YXIoLS1jZHMtZ2xvYmFsLWJhc2UpKSk7bWF4LXdpZHRoOmNhbGMoMzYwKigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTttaW4taGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTIpO21heC1oZWlnaHQ6Y2FsYyg1MDQqKDFyZW0vdmFyKC0tY2RzLWdsb2JhbC1iYXNl'@; put 'KSkpO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTA1MH0uc2lnbnBvc3QtY29udGVudDpob3ZlcntjdXJzb3I6ZGVmYXVsdH0uc2lnbnBvc3QtY29udGVudCAucG9wb3Zlci1wb2ludGVye2hlaWdodDowO3dpZHRoOjA7cG9zaXRpb246YWJzb2x1dGV9'@; put 'LnNpZ25wb3N0LWNvbnRlbnQgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmV7Y29udGVudDoiIjtoZWlnaHQ6MDt3aWR0aDowO3Bvc2l0aW9uOmFic29sdXRlfS5zaWducG9zdC1jb250ZW50LnRvcC1sZWZ0IC5wb3BvdmVyLXBvaW50ZXIsLnNpZ25wb3N0LWNvbnRlbnQudG9wLW1pZGRsZSAucG9w'@; put 'b3Zlci1wb2ludGVyLC5zaWducG9zdC1jb250ZW50LnRvcC1yaWdodCAucG9wb3Zlci1wb2ludGVye2JvcmRlci10b3A6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItYm9yZGVyKTtib3R0b206Y2FsYygtMSp2YXIoLS1jbHItc2lnbnBvc3QtYm9yZGVyLXNpemUpKX0uc2lnbnBvc3QtY29u'@; put 'dGVudC50b3AtbGVmdCAucG9wb3Zlci1wb2ludGVyOmJlZm9yZSwuc2lnbnBvc3QtY29udGVudC50b3AtbWlkZGxlIC5wb3BvdmVyLXBvaW50ZXI6YmVmb3JlLC5zaWducG9zdC1jb250ZW50LnRvcC1yaWdodCAucG9wb3Zlci1wb2ludGVyOmJlZm9yZXtib3JkZXItdG9wOnZhcigtLWNsci1z'@; put 'aWducG9zdC1wb2ludGVyLXBzdWVkby1ib3JkZXIpO2JvdHRvbTp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTIpfS5zaWducG9zdC1jb250ZW50LnRvcC1sZWZ0IC5zaWducG9zdC13cmFwe2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjB9LnNpZ25wb3N0LWNvbnRlbnQudG9wLWxlZnQgLnBv'@; put 'cG92ZXItcG9pbnRlcntib3JkZXItbGVmdDp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyKTtyaWdodDpjYWxjKC0xKnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSkpfS5zaWducG9zdC1jb250ZW50LnRvcC1sZWZ0IC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2Jv'@; put 'cmRlci1sZWZ0OnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIpO3JpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSl9LnNpZ25wb3N0LWNvbnRlbnQudG9wLW1pZGRsZSAucG9wb3Zlci1wb2ludGVye2JvcmRlci1yaWdodDp2YXIoLS1jbHItc2lnbnBvc3Qt'@; put 'cG9pbnRlci1pbnZpc2libGUtYm9yZGVyKTtsZWZ0OjUwJX0uc2lnbnBvc3QtY29udGVudC50b3AtbWlkZGxlIC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci1yaWdodDp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyKTtsZWZ0OnZhcigtLWNkcy1nbG9i'@; put 'YWwtc3BhY2UtMSl9LnNpZ25wb3N0LWNvbnRlbnQudG9wLXJpZ2h0IC5zaWducG9zdC13cmFwe2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0uc2lnbnBvc3QtY29udGVudC50b3AtcmlnaHQgLnBvcG92ZXItcG9pbnRlcntib3JkZXItcmlnaHQ6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50'@; put 'ZXItaW52aXNpYmxlLWJvcmRlcik7bGVmdDpjYWxjKC0xKnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSkpfS5zaWducG9zdC1jb250ZW50LnRvcC1yaWdodCAucG9wb3Zlci1wb2ludGVyOmJlZm9yZXtib3JkZXItcmlnaHQ6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJv'@; put 'cmRlcik7bGVmdDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEpfS5zaWducG9zdC1jb250ZW50LmJvdHRvbS1sZWZ0IC5wb3BvdmVyLXBvaW50ZXIsLnNpZ25wb3N0LWNvbnRlbnQuYm90dG9tLW1pZGRsZSAucG9wb3Zlci1wb2ludGVyLC5zaWducG9zdC1jb250ZW50LmJvdHRvbS1yaWdodCAu'@; put 'cG9wb3Zlci1wb2ludGVye2JvcmRlci1ib3R0b206dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItYm9yZGVyKTt0b3A6Y2FsYygtMSp2YXIoLS1jbHItc2lnbnBvc3QtYm9yZGVyLXNpemUpKX0uc2lnbnBvc3QtY29udGVudC5ib3R0b20tbGVmdCAucG9wb3Zlci1wb2ludGVyOmJlZm9yZSwu'@; put 'c2lnbnBvc3QtY29udGVudC5ib3R0b20tbWlkZGxlIC5wb3BvdmVyLXBvaW50ZXI6YmVmb3JlLC5zaWducG9zdC1jb250ZW50LmJvdHRvbS1yaWdodCAucG9wb3Zlci1wb2ludGVyOmJlZm9yZXtib3JkZXItYm90dG9tOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLXBzdWVkby1ib3JkZXIp'@; put 'O3RvcDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTIpfS5zaWducG9zdC1jb250ZW50LmJvdHRvbS1sZWZ0IC5zaWducG9zdC13cmFwe2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjB9LnNpZ25wb3N0LWNvbnRlbnQuYm90dG9tLWxlZnQgLnBvcG92ZXItcG9pbnRlcntib3JkZXItbGVmdDp2YXIo'@; put 'LS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyKTtyaWdodDpjYWxjKC0xKnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSkpfS5zaWducG9zdC1jb250ZW50LmJvdHRvbS1sZWZ0IC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci1sZWZ0OnZhcigtLWNsci1zaWducG9z'@; put 'dC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIpO3JpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSl9LnNpZ25wb3N0LWNvbnRlbnQuYm90dG9tLW1pZGRsZSAucG9wb3Zlci1wb2ludGVye2JvcmRlci1yaWdodDp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVy'@; put 'KTtsZWZ0OjUwJX0uc2lnbnBvc3QtY29udGVudC5ib3R0b20tbWlkZGxlIC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci1yaWdodDp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyKTtyaWdodDpjYWxjKC0xKnZhcigtLWNsci1zaWducG9zdC1ib3JkZXIt'@; put 'c2l6ZSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEpKX0uc2lnbnBvc3QtY29udGVudC5ib3R0b20tcmlnaHQgLnNpZ25wb3N0LXdyYXB7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowfS5zaWducG9zdC1jb250ZW50LmJvdHRvbS1yaWdodCAucG9wb3Zlci1wb2ludGVye2JvcmRlci1yaWdo'@; put 'dDp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyKTtsZWZ0OmNhbGMoLTEqdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xKSl9LnNpZ25wb3N0LWNvbnRlbnQuYm90dG9tLXJpZ2h0IC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci1yaWdodDp2YXIoLS1jbHIt'@; put 'c2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyKTtsZWZ0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSl9LnNpZ25wb3N0LWNvbnRlbnQubGVmdC10b3AgLnBvcG92ZXItcG9pbnRlciwuc2lnbnBvc3QtY29udGVudC5sZWZ0LW1pZGRsZSAucG9wb3Zlci1wb2ludGVyLC5zaWducG9z'@; put 'dC1jb250ZW50LmxlZnQtYm90dG9tIC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVyLWxlZnQ6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItYm9yZGVyKTtyaWdodDpjYWxjKC0xKnZhcigtLWNsci1zaWducG9zdC1ib3JkZXItc2l6ZSkpfS5zaWducG9zdC1jb250ZW50LmxlZnQtdG9wIC5wb3Bv'@; put 'dmVyLXBvaW50ZXI6YmVmb3JlLC5zaWducG9zdC1jb250ZW50LmxlZnQtbWlkZGxlIC5wb3BvdmVyLXBvaW50ZXI6YmVmb3JlLC5zaWducG9zdC1jb250ZW50LmxlZnQtYm90dG9tIC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci1sZWZ0OnZhcigtLWNsci1zaWducG9zdC1wb2ludGVy'@; put 'LXBzdWVkby1ib3JkZXIpfS5zaWducG9zdC1jb250ZW50LmxlZnQtdG9wIC5zaWducG9zdC13cmFwe2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjB9LnNpZ25wb3N0LWNvbnRlbnQubGVmdC10b3AgLnBvcG92ZXItcG9pbnRlcntib3JkZXItdG9wOnZhcigtLWNsci1zaWducG9zdC1wb2lu'@; put 'dGVyLWludmlzaWJsZS1ib3JkZXIpO2JvdHRvbTpjYWxjKC0xKnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSkpfS5zaWducG9zdC1jb250ZW50LmxlZnQtdG9wIC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci10b3A6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJv'@; put 'cmRlcik7dG9wOmNhbGMoLTEqdmFyKC0tY2xyLXNpZ25wb3N0LWJvcmRlci1zaXplKSAtIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSkpO3JpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMil9LnNpZ25wb3N0LWNvbnRlbnQubGVmdC1taWRkbGUgLnBvcG92ZXItcG9pbnRlcntib3JkZXIt'@; put 'Ym90dG9tOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIpO3RvcDo1MCV9LnNpZ25wb3N0LWNvbnRlbnQubGVmdC1taWRkbGUgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmV7Ym9yZGVyLWJvdHRvbTp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUt'@; put 'Ym9yZGVyKTt0b3A6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xKTtsZWZ0OmNhbGMoLTEqdmFyKC0tY2xyLXNpZ25wb3N0LWJvcmRlci1zaXplKSAtIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMikpfS5zaWducG9zdC1jb250ZW50LmxlZnQtYm90dG9tIC5zaWducG9zdC13cmFwe2JvcmRlci10'@; put 'b3AtcmlnaHQtcmFkaXVzOjB9LnNpZ25wb3N0LWNvbnRlbnQubGVmdC1ib3R0b20gLnBvcG92ZXItcG9pbnRlcntib3JkZXItYm90dG9tOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIpO3RvcDpjYWxjKC0xKnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSkpfS5z'@; put 'aWducG9zdC1jb250ZW50LmxlZnQtYm90dG9tIC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci1ib3R0b206dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlcik7dG9wOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSk7bGVmdDpjYWxjKC0xKnZhcigtLWNsci1z'@; put 'aWducG9zdC1ib3JkZXItc2l6ZSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTIpKX0uc2lnbnBvc3QtY29udGVudC5yaWdodC10b3AgLnBvcG92ZXItcG9pbnRlciwuc2lnbnBvc3QtY29udGVudC5yaWdodC1taWRkbGUgLnBvcG92ZXItcG9pbnRlciwuc2lnbnBvc3QtY29udGVudC5yaWdo'@; put 'dC1ib3R0b20gLnBvcG92ZXItcG9pbnRlcntib3JkZXItcmlnaHQ6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItYm9yZGVyKTtsZWZ0OmNhbGMoLTEqdmFyKC0tY2xyLXNpZ25wb3N0LWJvcmRlci1zaXplKSl9LnNpZ25wb3N0LWNvbnRlbnQucmlnaHQtdG9wIC5wb3BvdmVyLXBvaW50ZXI6'@; put 'YmVmb3JlLC5zaWducG9zdC1jb250ZW50LnJpZ2h0LW1pZGRsZSAucG9wb3Zlci1wb2ludGVyOmJlZm9yZSwuc2lnbnBvc3QtY29udGVudC5yaWdodC1ib3R0b20gLnBvcG92ZXItcG9pbnRlcjpiZWZvcmV7Ym9yZGVyLXJpZ2h0OnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLXBzdWVkby1i'@; put 'b3JkZXIpO2xlZnQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0yKX0uc2lnbnBvc3QtY29udGVudC5yaWdodC10b3AgLnNpZ25wb3N0LXdyYXB7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowfS5zaWducG9zdC1jb250ZW50LnJpZ2h0LXRvcCAucG9wb3Zlci1wb2ludGVye2JvcmRlci10b3A6'@; put 'dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlcik7Ym90dG9tOmNhbGMoLTEqdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xKSl9LnNpZ25wb3N0LWNvbnRlbnQucmlnaHQtdG9wIC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci10b3A6dmFyKC0tY2xyLXNpZ25w'@; put 'b3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlcik7dG9wOmNhbGMoLTEqdmFyKC0tY2xyLXNpZ25wb3N0LWJvcmRlci1zaXplKSAtIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSkpfS5zaWducG9zdC1jb250ZW50LnJpZ2h0LW1pZGRsZSAucG9wb3Zlci1wb2ludGVye2JvcmRlci1ib3R0b206'@; put 'dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlcik7dG9wOjUwJX0uc2lnbnBvc3QtY29udGVudC5yaWdodC1taWRkbGUgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmV7Ym9yZGVyLWJvdHRvbTp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVy'@; put 'KTt0b3A6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xKX0uc2lnbnBvc3QtY29udGVudC5yaWdodC1ib3R0b20gLnNpZ25wb3N0LXdyYXB7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowfS5zaWducG9zdC1jb250ZW50LnJpZ2h0LWJvdHRvbSAucG9wb3Zlci1wb2ludGVye2JvcmRlci1ib3R0b206'@; put 'dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlcik7dG9wOmNhbGMoLTEqdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xKSl9LnNpZ25wb3N0LWNvbnRlbnQucmlnaHQtYm90dG9tIC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci1ib3R0b206dmFyKC0tY2xyLXNp'@; put 'Z25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlcik7dG9wOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSl9LnNpZ25wb3N0LWNvbnRlbnQtaGVhZGVye2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7Z2FwOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMyk7d2lkdGg6MTAw'@; put 'JTtiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7dG9wOjA7Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItc2lnbnBvc3QtYm9yZGVyLXJhZGl1cyl9LnNpZ25wb3N0LWNvbnRlbnQtaGVhZGVyIC5zaWducG9zdC10aXRsZXtmb250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY2FwdGlv'@; put 'bi1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jYXB0aW9uLWxpbmUtaGVpZ2h0KTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtYWxpYXMt'@; put 'dHlwb2dyYXBoeS1jYXB0aW9uLWxldHRlci1zcGFjaW5nKTttYXJnaW4tcmlnaHQ6YXV0b30uc2lnbnBvc3Qtd3JhcHtnYXA6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KTtwYWRkaW5nOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNykgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KSBjYWxjKDE1'@; put 'KigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTtib3JkZXI6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMTAwKSBzb2xpZCB2YXIoLS1jbHItc2lnbnBvc3QtY29udGVudC1ib3JkZXItY29sb3IpO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLXNpZ25wb3N0LWJvcmRl'@; put 'ci1yYWRpdXMpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXNpZ25wb3N0LWNvbnRlbnQtYmctY29sb3IpO3otaW5kZXg6MTA1MDtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5zaWducG9zdC1jb250ZW50LWJvZHl7cGFkZGluZy1ib3R0'@; put 'b206dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xKTtjb2xvcjp2YXIoLS1jbHItc2lnbnBvc3QtY29udGVudC1jb2xvcik7dGV4dC1hbGlnbjpsZWZ0O21heC1oZWlnaHQ6Y2FsYyg0NTAqKDFyZW0vdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpO292ZXJmbG93LXk6YXV0bztmb250LXNpemU6dmFy'@; put 'KC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktYm9keS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWJvZHktZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWFsaWFz'@; put 'LXR5cG9ncmFwaHktYm9keS1sZXR0ZXItc3BhY2luZyl9LmNsci1hY2NvcmRpb257ZGlzcGxheTpibG9jazttYXJnaW4tYm90dG9tOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSl9LmNsci1hY2NvcmRpb24tcGFuZWx7ZGlzcGxheTpibG9ja30uY2xyLWFjY29yZGlvbi1oZWFkZXJ7Y29sb3I6'@; put 'dmFyKC0tY2xyLWFjY29yZGlvbi10ZXh0LWNvbG9yKTtib3gtc2hhZG93OnZhcigtLWNsci1hY2NvcmRpb24taGVhZGVyLWxlZnQtaW5kaWNhdG9yKTtiYWNrZ3JvdW5kOnZhcigtLWNsci1hY2NvcmRpb24taGVhZGVyLWJhY2tncm91bmQtY29sb3IpO3RyYW5zaXRpb246YWxsIC4ycyBlYXNl'@; put 'LWluLW91dDtib3JkZXI6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xKSBzb2xpZCB2YXIoLS1jbHItYWNjb3JkaW9uLWJvcmRlci1jb2xvcik7Ym9yZGVyLWJvdHRvbS13aWR0aDowO3dpZHRoOjEwMCU7Zm9udC1zaXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFyeS1mb250'@; put 'LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFyeS1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6Y2FsYygyMCooMXJlbS92YXIoLS1jZHMtZ2xvYmFsLWJhc2UpKSk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2Vj'@; put 'b25kYXJ5LWxldHRlci1zcGFjaW5nKTt0ZXh0LWFsaWduOmxlZnR9LmNsci1hY2NvcmRpb24taGVhZGVyOmhvdmVye2NvbG9yOnZhcigtLWNsci1hY2NvcmRpb24tdGV4dC1jb2xvci1ob3Zlcik7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYWNjb3JkaW9uLWhlYWRlci1ob3Zlci1iYWNr'@; put 'Z3JvdW5kLWNvbG9yKX0uY2xyLWFjY29yZGlvbi1oZWFkZXI6YWN0aXZle2NvbG9yOnZhcigtLWNsci1hY2NvcmRpb24tdGV4dC1jb2xvci1hY3RpdmUpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlLWJhY2tncm91bmQtY29sb3IpfS5jbHItYWNj'@; put 'b3JkaW9uLXBhbmVsLWRpc2FibGVkPmRpdj4uY2xyLWFjY29yZGlvbi1oZWFkZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYWNjb3JkaW9uLWhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yKX0uY2xyLWFjY29yZGlvbi1wYW5lbC1kaXNhYmxlZD5kaXY+LmNsci1hY2NvcmRpb24taGVhZGVy'@; put 'OmhvdmVyLC5jbHItYWNjb3JkaW9uLXBhbmVsLWRpc2FibGVkPmRpdj4uY2xyLWFjY29yZGlvbi1oZWFkZXI6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWFjY29yZGlvbi1oZWFkZXItYmFja2dyb3VuZC1jb2xvcil9LmNsci1hY2NvcmRpb24tcGFuZWwtZGlzYWJsZWQ+LmNs'@; put 'ci1hY2NvcmRpb24tcGFuZWwtb3Blbj4uY2xyLWFjY29yZGlvbi1oZWFkZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYWNjb3JkaW9uLWhlYWRlci1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yKX0uY2xyLWFjY29yZGlvbi1wYW5lbC1kaXNhYmxlZD4uY2xyLWFjY29yZGlvbi1wYW5l'@; put 'bC1vcGVuPi5jbHItYWNjb3JkaW9uLWhlYWRlcjpob3ZlciwuY2xyLWFjY29yZGlvbi1wYW5lbC1kaXNhYmxlZD4uY2xyLWFjY29yZGlvbi1wYW5lbC1vcGVuPi5jbHItYWNjb3JkaW9uLWhlYWRlcjphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYWNjb3JkaW9uLWhlYWRlci1k'@; put 'aXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yKX0uY2xyLWFjY29yZGlvbi1wYW5lbDpsYXN0LWNoaWxkIC5jbHItYWNjb3JkaW9uLWNvbnRlbnQsLmNsci1hY2NvcmRpb24tcGFuZWw6bGFzdC1jaGlsZCAuY2xyLWFjY29yZGlvbi1oZWFkZXJ7Ym9yZGVyLWJvdHRvbTp2YXIoLS1jZHMtZ2xvYmFs'@; put 'LXNwYWNlLTEpIHNvbGlkIHZhcigtLWNsci1hY2NvcmRpb24tYm9yZGVyLWNvbG9yKX0uY2xyLWFjY29yZGlvbi1oZWFkZXItYnV0dG9ue2Rpc3BsYXk6ZmxleDtmbGV4LWZsb3c6cm93IHdyYXA7ZmxleDoxIDEgMDt3aWR0aDoxMDAlO2JvcmRlcjowO3BhZGRpbmc6dmFyKC0tY2RzLWdsb2Jh'@; put 'bC1zcGFjZS04KTtiYWNrZ3JvdW5kOjAgMDt0ZXh0LWFsaWduOmxlZnQ7Y3Vyc29yOnBvaW50ZXI7Y29sb3I6aW5oZXJpdDtnYXA6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KX1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7LmNsci1hY2NvcmRpb24taGVhZGVyLWJ1dHRvbntmbGV4LWZsb3c6'@; put 'cm93fX0uY2xyLWFjY29yZGlvbi1oZWFkZXItYnV0dG9uOmRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLWFjY29yZGlvbi1oZWFkZXItYnV0dG9uOmRpc2FibGVkIC5jbHItYWNjb3JkaW9uLXN0YXR1cywuY2xyLWFjY29yZGlvbi1oZWFkZXItYnV0dG9uOmRpc2FibGVkIC5jbHIt'@; put 'YWNjb3JkaW9uLXRpdGxlLC5jbHItYWNjb3JkaW9uLWhlYWRlci1idXR0b246ZGlzYWJsZWQgLmNsci1hY2NvcmRpb24tZGVzY3JpcHRpb257Y29sb3I6dmFyKC0tY2xyLWFjY29yZGlvbi1wYW5lbC1kaXNhYmxlZC1jb2xvcil9LmNsci1hY2NvcmRpb24tc3RhdHVze3dpZHRoOnZhcigtLWNk'@; put 'cy1nbG9iYWwtc3BhY2UtMTEpO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOnRvcH0uY2xyLWFjY29yZGlvbi10aXRsZXtkaXNwbGF5OmlubGluZS1ibG9ja30uY2xyLWFjY29yZGlvbi1oZWFkZXItaGFzLWRlc2NyaXB0aW9uIC5jbHItYWNjb3JkaW9uLXRpdGxle21pbi13'@; put 'aWR0aDp2YXIoLS1jbHItYWNjb3JkaW9uLXN0ZXAtdGl0bGUtbWluLXdpZHRoKTttYXgtd2lkdGg6Y2FsYygyNjQqKDFyZW0vdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpO3dpZHRoOjEwMCV9LmNsci1hY2NvcmRpb24tZGVzY3JpcHRpb257ZGlzcGxheTppbmxpbmUtYmxvY2s7bWF4LXdpZHRo'@; put 'OmNhbGMoNjUwKigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKX1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7LmNsci1hY2NvcmRpb24tZGVzY3JpcHRpb257bWFyZ2luLWxlZnQ6Y2FsYyg0MCooMXJlbS92YXIoLS1jZHMtZ2xvYmFsLWJhc2UpKSl9fS5jbHItYWNjb3JkaW9uLWNvbnRl'@; put 'bnR7YmFja2dyb3VuZDp2YXIoLS1jbHItYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZC1jb2xvcik7Ym9yZGVyOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSkgc29saWQgdmFyKC0tY2xyLWFjY29yZGlvbi1ib3JkZXItY29sb3IpO2JvcmRlci1ib3R0b206MDtvdmVyZmxvdzpoaWRkZW47'@; put 'cGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTgpO2Rpc3BsYXk6bm9uZX0uY2xyLWFjY29yZGlvbi1jb250ZW50IC5jbHItZm9ybSwuY2xyLWFjY29yZGlvbi1jb250ZW50Lm5nLXRyaWdnZXJ7cGFkZGluZzowfUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsuY2xyLWFjY29yZGlvbi1j'@; put 'b250ZW50e3BhZGRpbmc6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS04KSBjYWxjKDU0KigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKX19LmNsci1hY2NvcmRpb24taW5uZXItY29udGVudHtwYWRkaW5nOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSl9QG1lZGlhIChtaW4td2lkdGg6NTc2'@; put 'cHgpey5jbHItYWNjb3JkaW9uLWlubmVyLWNvbnRlbnR7cGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTgpIGNhbGMoNTQqKDFyZW0vdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpfX0uY2xyLWFjY29yZGlvbi1hbmdsZXt0cmFuc2l0aW9uOmFsbCAuMnMgZWFzZS1pbi1vdXQ7dHJhbnNm'@; put 'b3JtOnJvdGF0ZSg5MGRlZyl9LmNsci1hY2NvcmRpb24tcGFuZWwtb3Blbj4uY2xyLWFjY29yZGlvbi1oZWFkZXJ7Ym94LXNoYWRvdzp2YXIoLS1jbHItYWNjb3JkaW9uLWhlYWRlci1sZWZ0LWN1cnJlbnQtaW5kaWNhdG9yKX0uY2xyLWFjY29yZGlvbi1wYW5lbC1vcGVuIC5jbHItYWNjb3Jk'@; put 'aW9uLXBhbmVsLWNvbXBsZXRlPi5jbHItYWNjb3JkaW9uLWhlYWRlcntib3gtc2hhZG93Omluc2V0IHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkgMCAwIHZhcigtLWNsci1hY2NvcmRpb24tYm9yZGVyLWxlZnQtY29sb3ItY29tcGxldGUpfS5jbHItYWNjb3JkaW9uLXBhbmVsLW9wZW4gLmNs'@; put 'ci1hY2NvcmRpb24tcGFuZWwtZXJyb3I+LmNsci1hY2NvcmRpb24taGVhZGVye2JveC1zaGFkb3c6aW5zZXQgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KSAwIDAgdmFyKC0tY2xyLWFjY29yZGlvbi1ib3JkZXItbGVmdC1jb2xvci1lcnJvcil9LmNsci1hY2NvcmRpb24tcGFuZWwtb3Blbj4u'@; put 'Y2xyLWFjY29yZGlvbi1jb250ZW50LXJlZ2lvbiAuY2xyLWFjY29yZGlvbi1jb250ZW50e2Rpc3BsYXk6YmxvY2t9LmNsci1hY2NvcmRpb24tcGFuZWwtb3Blbj4uY2xyLWFjY29yZGlvbi1oZWFkZXJ7YmFja2dyb3VuZDp2YXIoLS1jbHItYWNjb3JkaW9uLWhlYWRlci1vcGVuLWJhY2tncm91'@; put 'bmQtY29sb3IpfS5jbHItYWNjb3JkaW9uLXBhbmVsLW9wZW4+LmNsci1hY2NvcmRpb24taGVhZGVyOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWFjY29yZGlvbi1oZWFkZXItb3Blbi1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yKX0uY2xyLWFjY29yZGlvbi1wYW5lbC1vcGVuPi5j'@; put 'bHItYWNjb3JkaW9uLWhlYWRlcjphY3RpdmV7Y29sb3I6dmFyKC0tY2xyLWFjY29yZGlvbi10ZXh0LWNvbG9yLWFjdGl2ZSk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYWNjb3JkaW9uLWhlYWRlci1vcGVuLWFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yKX0uY2xyLWFjY29yZGlvbi1wYW5l'@; put 'bC1vcGVuPi5jbHItYWNjb3JkaW9uLWhlYWRlciAuY2xyLWFjY29yZGlvbi1hbmdsZXt2aXNpYmlsaXR5OnZpc2libGU7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS5jbHItYWNjb3JkaW9uLXBhbmVsLWNvbXBsZXRlPi5jbHItYWNjb3JkaW9uLWNvbXBsZXRlLWljb257ZGlzcGxheTppbmxp'@; put 'bmUtYmxvY2s7Y29sb3I6dmFyKC0tY2xyLWFjY29yZGlvbi1jb21wbGV0ZS1jb2xvcil9LmNsci1hY2NvcmRpb24tcGFuZWwtY29tcGxldGU+LmNsci1hY2NvcmRpb24tYW5nbGV7dmlzaWJpbGl0eTp2aXNpYmxlfS5jbHItYWNjb3JkaW9uLXBhbmVsLWNvbXBsZXRlPi5jbHItYWNjb3JkaW9u'@; put 'LWhlYWRlcntib3gtc2hhZG93Omluc2V0IHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkgMCAwIHZhcigtLWNsci1hY2NvcmRpb24tYm9yZGVyLWxlZnQtY29sb3ItY29tcGxldGUpfS5jbHItYWNjb3JkaW9uLXBhbmVsLWNvbXBsZXRlIC5uZy10cmlnZ2VyLmNsci1hY2NvcmRpb24tY29udGVu'@; put 'dHtkaXNwbGF5OmJsb2NrfS5jbHItYWNjb3JkaW9uLXBhbmVsLWVycm9yPi5jbHItYWNjb3JkaW9uLWhlYWRlcntib3gtc2hhZG93Omluc2V0IHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkgMCAwIHZhcigtLWNsci1hY2NvcmRpb24tYm9yZGVyLWxlZnQtY29sb3ItZXJyb3IpfS5jbHItYWNj'@; put 'b3JkaW9uLXBhbmVsLWVycm9yPi5jbHItYWNjb3JkaW9uLWVycm9yLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29sb3I6dmFyKC0tY2xyLWFjY29yZGlvbi1lcnJvci1jb2xvcil9LmNsci1hY2NvcmRpb24tcGFuZWwtZXJyb3IgLmNsci1hY2NvcmRpb24tbnVtYmVyLC5jbHItYWNjb3Jk'@; put 'aW9uLXBhbmVsLWNvbXBsZXRlIC5jbHItYWNjb3JkaW9uLW51bWJlcntwb3NpdGlvbjphYnNvbHV0ZTtjbGlwOnJlY3QoMXB4LDFweCwxcHgsMXB4KTtjbGlwLXBhdGg6aW5zZXQoNTAlKTtwYWRkaW5nOjA7Ym9yZGVyOjA7aGVpZ2h0OjFweDt3aWR0aDoxcHg7b3ZlcmZsb3c6aGlkZGVuO3do'@; put 'aXRlLXNwYWNlOm5vd3JhcDt0b3A6MDtsZWZ0OjB9LmNsci1hY2NvcmRpb246bm90KC5jbHItc3RlcHBlci1mb3JtcykgLmNsci1hY2NvcmRpb24taGVhZGVyOm5vdCguY2xyLXN0ZXBwZXItaGVhZGVyKXtib3gtc2hhZG93Om5vbmV9LmNsci1hY2NvcmRpb246bm90KC5jbHItc3RlcHBlci1m'@; put 'b3JtcykgLmNsci1hY2NvcmRpb24tcGFuZWwgLmNsci1hY2NvcmRpb24taGVhZGVyOm5vdCguY2xyLXN0ZXBwZXItaGVhZGVyKXtib3JkZXItcmFkaXVzOnZhcigtLWNsci1hY2NvcmRpb24tYm9yZGVyLXJhZGl1cyl9LmNsci1hY2NvcmRpb246bm90KC5jbHItc3RlcHBlci1mb3JtcykgLmNs'@; put 'ci1hY2NvcmRpb24tcGFuZWwgLmNsci1hY2NvcmRpb24taGVhZGVyOm5vdCguY2xyLXN0ZXBwZXItaGVhZGVyKSsuY2xyLWFjY29yZGlvbi1jb250ZW50LXJlZ2lvbj4uY2xyLWFjY29yZGlvbi1jb250ZW50e2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tY2xyLWFjY29yZGlvbi1i'@; put 'b3JkZXItcmFkaXVzKTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czp2YXIoLS1jbHItYWNjb3JkaW9uLWJvcmRlci1yYWRpdXMpfS5jbHItYWNjb3JkaW9uOm5vdCguY2xyLXN0ZXBwZXItZm9ybXMpIC5jbHItYWNjb3JkaW9uLXBhbmVsKy5jbHItYWNjb3JkaW9uLXBhbmVsPmRpdltjbGFz'@; put 'cyo9Y2xyLWFjY29yZGlvbi1wYW5lbC1dPi5jbHItYWNjb3JkaW9uLWhlYWRlcjpub3QoLmNsci1zdGVwcGVyLWhlYWRlcil7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp1bnNldDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czp1bnNldH0uY2xyLWFjY29yZGlvbjpub3QoLmNsci1zdGVwcGVyLWZv'@; put 'cm1zKSAuY2xyLWFjY29yZGlvbi1wYW5lbDpub3QoOmxhc3QtY2hpbGQpPmRpdltjbGFzcyo9Y2xyLWFjY29yZGlvbi1wYW5lbC1dPi5jbHItYWNjb3JkaW9uLWhlYWRlcjpub3QoLmNsci1zdGVwcGVyLWhlYWRlciksLmNsci1hY2NvcmRpb246bm90KC5jbHItc3RlcHBlci1mb3JtcykgLmNs'@; put 'ci1hY2NvcmRpb24tcGFuZWw6bm90KDpsYXN0LWNoaWxkKT5kaXZbY2xhc3MqPWNsci1hY2NvcmRpb24tcGFuZWwtXT4uY2xyLWFjY29yZGlvbi1oZWFkZXI6bm90KC5jbHItc3RlcHBlci1oZWFkZXIpKy5jbHItYWNjb3JkaW9uLWNvbnRlbnQtcmVnaW9uPi5jbHItYWNjb3JkaW9uLWNvbnRl'@; put 'bnR7Ym9yZGVyLWJvdHRvbTpub25lO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dW5zZXQ7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dW5zZXR9LmNsci1hY2NvcmRpb246bm90KC5jbHItc3RlcHBlci1mb3JtcykgLmNsci1hY2NvcmRpb24taGVhZGVyLWJ1dHRvbnthbGlnbi1pdGVt'@; put 'czpjZW50ZXI7cGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNil9LmNsci1hY2NvcmRpb246bm90KC5jbHItc3RlcHBlci1mb3JtcykgLmNsci1hY2NvcmRpb24tY29udGVudHtwYWRkaW5nOjB9LmNsci1hY2NvcmRpb246bm90KC5jbHIt'@; put 'c3RlcHBlci1mb3JtcykgLmNsci1hY2NvcmRpb24taW5uZXItY29udGVudHtwYWRkaW5nOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KSB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTEpO2NvbG9yOnZh'@; put 'cigtLWNsci1hY2NvcmRpb24tY29udGVudC1jb2xvcik7Zm9udC1zaXplOnZhcigtLWNsci1hY2NvcmRpb24tY29udGVudC1mb250LXNpemUpfS5jbHItYWNjb3JkaW9uOm5vdCguY2xyLXN0ZXBwZXItZm9ybXMpIC5jbHItYWNjb3JkaW9uLXBhbmVsLWRpc2FibGVkIC5jbHItYWNjb3JkaW9u'@; put 'LWlubmVyLWNvbnRlbnR7Y29sb3I6dmFyKC0tY2xyLWFjY29yZGlvbi1wYW5lbC1kaXNhYmxlZC1jb2xvcik7Y3Vyc29yOm5vdC1hbGxvd2VkfS5jbHItYWNjb3JkaW9uOm5vdCguY2xyLXN0ZXBwZXItZm9ybXMpIC5jbHItYWNjb3JkaW9uLXN0YXR1c3t3aWR0aDphdXRvfS5jbHItYWNjb3Jk'@; put 'aW9uOm5vdCguY2xyLXN0ZXBwZXItZm9ybXMpIC5jbHItYWNjb3JkaW9uLXN0YXR1cyBjZHMtaWNvbiwuY2xyLWFjY29yZGlvbjpub3QoLmNsci1zdGVwcGVyLWZvcm1zKSAuY2xyLWFjY29yZGlvbi1zdGF0dXMgY2xyLWljb257aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyk7d2lk'@; put 'dGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KX0uY2xyLWFjY29yZGlvbi1wYW5lbC1vcGVuPi5jbHItYWNjb3JkaW9uLWhlYWRlcntib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjAhaW1wb3J0YW50O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjAhaW1wb3J0YW50O2JvcmRlci1ib3R0'@; put 'b206MCFpbXBvcnRhbnR9OnJvb3QgW2Nkcy10aGVtZV17LS1jbHItYWNjb3JkaW9uLXRleHQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1jb2xvcik7LS1jbHItYWNjb3JkaW9uLXRleHQtY29sb3ItaG92ZXI6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFj'@; put 'dGlvbi1jb2xvci1ob3Zlcik7LS1jbHItYWNjb3JkaW9uLXRleHQtY29sb3ItYWN0aXZlOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tY29sb3ItYWN0aXZlKTstLWNsci1hY2NvcmRpb24tcGFuZWwtZGlzYWJsZWQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRl'@; put 'cmFjdGlvbi1jb2xvci1kaXNhYmxlZCk7LS1jbHItYWNjb3JkaW9uLWFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1zZWxlY3RlZCk7LS1jbHItYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZC1jb2xvcjp2YXIo'@; put 'LS1jZHMtYWxpYXMtb2JqZWN0LWNvbnRhaW5lci1iYWNrZ3JvdW5kKTstLWNsci1hY2NvcmRpb24tY29udGVudC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci00NTApOy0tY2xyLWFjY29yZGlvbi1jb250ZW50LWZvbnQtc2l6ZTp2YXIoLS1jZHMtYWxpYXMtdHlwb2dy'@; put 'YXBoeS1zZWNvbmRhcnktZm9udC1zaXplKTstLWNsci1hY2NvcmRpb24taGVhZGVyLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1jb250YWluZXItYmFja2dyb3VuZCk7LS1jbHItYWNjb3JkaW9uLWhlYWRlci1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOnZhcigt'@; put 'LWNkcy1hbGlhcy1vYmplY3QtY29udGFpbmVyLWJhY2tncm91bmQpOy0tY2xyLWFjY29yZGlvbi1oZWFkZXItaG92ZXItYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtaG92ZXIpOy0tY2xyLWFjY29yZGlvbi1oZWFkZXItYWN0'@; put 'aXZlLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLWFjdGl2ZSk7LS1jbHItYWNjb3JkaW9uLWhlYWRlci1vcGVuLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWFjY29yZGlvbi1hY3RpdmUtYmFja2dyb3VuZC1jb2xvcik7'@; put 'LS1jbHItYWNjb3JkaW9uLWhlYWRlci1vcGVuLWFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1zZWxlY3RlZC1hY3RpdmUpOy0tY2xyLWFjY29yZGlvbi1oZWFkZXItb3Blbi1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9y'@; put 'OnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1zZWxlY3RlZC1ob3Zlcik7LS1jbHItYWNjb3JkaW9uLWVycm9yLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtZGFuZ2VyKTstLWNsci1hY2NvcmRpb24tY29tcGxldGUtY29sb3I6dmFyKC0tY2RzLWFs'@; put 'aWFzLXN0YXR1cy1zdWNjZXNzKTstLWNsci1hY2NvcmRpb24tYm9yZGVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtYm9yZGVyLWNvbG9yKTstLWNsci1hY2NvcmRpb24tYm9yZGVyLXJhZGl1czp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci1yYWRpdXMtMTAwKTstLWNsci1h'@; put 'Y2NvcmRpb24tYm9yZGVyLWxlZnQtY29sb3ItY29tcGxldGU6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1zdWNjZXNzKTstLWNsci1hY2NvcmRpb24tYm9yZGVyLWxlZnQtY29sb3ItZXJyb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1kYW5nZXIpOy0tY2xyLWFjY29yZGlvbi1oZWFkZXItbGVm'@; put 'dC1pbmRpY2F0b3I6aW5zZXQgdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KSAwIDAgdmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1uZXV0cmFsLXRpbnQpOy0tY2xyLWFjY29yZGlvbi1oZWFkZXItbGVmdC1jdXJyZW50LWluZGljYXRvcjppbnNldCB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpIDAg'@; put 'MCB2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtaGlnaGxpZ2h0KTstLWNsci1hY2NvcmRpb24tc3RlcC10aXRsZS1taW4td2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMyl9LmNsci1zdGVwcGVyLWZvcm1zIC5jbHItc3RlcHBlci1oZWFkZXI+LmNs'@; put 'ci1hY2NvcmRpb24taGVhZGVyLWJ1dHRvbnthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSk7bWluLWhlaWdodDpjYWxjKDU2KigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTtwYWRkaW5nOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSkgdmFyKC0t'@; put 'Y2RzLWdsb2JhbC1zcGFjZS04KSB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOSl9LmNsci1zdGVwcGVyLWZvcm1zIC5jbHItc3RlcHBlci1oZWFkZXI+LmNsci1hY2NvcmRpb24taGVhZGVyLWJ1dHRvbj4uY2xyLXN0ZXAtc3RhdHVze21pbi1oZWln'@; put 'aHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTtoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTttaW4td2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMik7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMik7ZGlzcGxheTppbmxpbmUtZmxleDtnYXA6dmFyKC0tY2Rz'@; put 'LWdsb2JhbC1zcGFjZS01KTthbGlnbi1pdGVtczpjZW50ZXJ9LmNsci1zdGVwcGVyLWZvcm1zIC5jbHItc3RlcHBlci1oZWFkZXI+LmNsci1hY2NvcmRpb24taGVhZGVyLWJ1dHRvbj4uY2xyLXN0ZXAtc3RhdHVzPi5jbHItc3RlcC1lcnJvci1pY29uLC5jbHItc3RlcHBlci1mb3JtcyAuY2xy'@; put 'LXN0ZXBwZXItaGVhZGVyPi5jbHItYWNjb3JkaW9uLWhlYWRlci1idXR0b24+LmNsci1zdGVwLXN0YXR1cz4uY2xyLXN0ZXAtY29tcGxldGUtaWNvbntoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KTt3aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpO3BhZGRpbmc6MH0uY2xy'@; put 'LXN0ZXBwZXItZm9ybXMgLmNsci1zdGVwcGVyLWhlYWRlcj4uY2xyLWFjY29yZGlvbi1oZWFkZXItYnV0dG9uPi5jbHItc3RlcC1zdGF0dXM+LmNsci1zdGVwLWVycm9yLWljb257Y29sb3I6dmFyKC0tY2xyLWFjY29yZGlvbi1lcnJvci1jb2xvcil9LmNsci1zdGVwcGVyLWZvcm1zIC5jbHIt'@; put 'c3RlcHBlci1oZWFkZXI+LmNsci1hY2NvcmRpb24taGVhZGVyLWJ1dHRvbj4uY2xyLXN0ZXAtc3RhdHVzPi5jbHItc3RlcC1jb21wbGV0ZS1pY29ue2NvbG9yOnZhcigtLWNsci1hY2NvcmRpb24tY29tcGxldGUtY29sb3IpfS5jbHItc3RlcHBlci1mb3JtcyAuY2xyLXN0ZXBwZXItaGVhZGVy'@; put 'Pi5jbHItYWNjb3JkaW9uLWhlYWRlci1idXR0b24+LmNsci1zdGVwLXRpdGxlLXdyYXBwZXJ7bWluLXdpZHRoOnZhcigtLWNsci1hY2NvcmRpb24tc3RlcC10aXRsZS1taW4td2lkdGgpO21heC13aWR0aDpjYWxjKDI2NCoxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpO3dpZHRoOjEwMCU7'@; put 'ZGlzcGxheTppbmxpbmUtZmxleDtnYXA6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0zKTthbGlnbi1pdGVtczpjZW50ZXI7Zm9udC1zaXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWJvZHktZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1mb250'@; put 'LXdlaWdodC1zZW1pYm9sZCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktYm9keS1saW5lLWhlaWdodCk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktYm9keS1sZXR0ZXItc3BhY2luZyl9LmNsci1zdGVwcGVyLWZvcm1zIC5jbHItc3Rl'@; put 'cHBlci1oZWFkZXI+LmNsci1hY2NvcmRpb24taGVhZGVyLWJ1dHRvbj4uY2xyLXN0ZXAtdGl0bGUtd3JhcHBlcj4uY2xyLXN0ZXAtbnVtYmVye21pbi13aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpfS5jbHItc3RlcHBlci1mb3JtcyAuY2xyLXN0ZXBwZXItaGVhZGVyPi5jbHItYWNj'@; put 'b3JkaW9uLWhlYWRlci1idXR0b24+LmNsci1zdGVwLXRpdGxlLXdyYXBwZXI+LmNsci1hY2NvcmRpb24tdGl0bGV7bWluLXdpZHRoOmluaXRpYWw7bWF4LXdpZHRoOmluaXRpYWw7d2lkdGg6aW5pdGlhbDttYXJnaW4tbGVmdDowfS5jbHItc3RlcHBlci1mb3JtcyAuY2xyLXN0ZXBwZXItaGVh'@; put 'ZGVyPi5jbHItYWNjb3JkaW9uLWhlYWRlci1idXR0b24+LmNsci1hY2NvcmRpb24tZGVzY3JpcHRpb24sLmNsci1zdGVwcGVyLWZvcm1zIC5jbHItc3RlcHBlci1oZWFkZXI+LmNsci1hY2NvcmRpb24taGVhZGVyLWJ1dHRvbj4uY2xyLXN0ZXAtZGVzY3JpcHRpb257bWFyZ2luLWxlZnQ6dmFy'@; put 'KC0tY2RzLWdsb2JhbC1zcGFjZS05KTtmb250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktYm9keS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWJvZHktZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBv'@; put 'Z3JhcGh5LWJvZHktbGluZS1oZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWJvZHktbGV0dGVyLXNwYWNpbmcpfUBtZWRpYSAobWF4LXdpZHRoOjU3NnB4KXsuY2xyLXN0ZXBwZXItZm9ybXMgLmNsci1zdGVwcGVyLWhlYWRlcj4uY2xyLWFjY29yZGlv'@; put 'bi1oZWFkZXItYnV0dG9ue2dhcDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTMpfS5jbHItc3RlcHBlci1mb3JtcyAuY2xyLXN0ZXBwZXItaGVhZGVyPi5jbHItYWNjb3JkaW9uLWhlYWRlci1idXR0b24+LmNsci1zdGVwLXN0YXR1c3ttaW4td2lkdGg6aW5pdGlhbDt3aWR0aDppbml0aWFsfS5j'@; put 'bHItc3RlcHBlci1mb3JtcyAuY2xyLXN0ZXBwZXItaGVhZGVyPi5jbHItYWNjb3JkaW9uLWhlYWRlci1idXR0b24+LmNsci1zdGVwLXRpdGxlLXdyYXBwZXJ7d2lkdGg6aW5pdGlhbH0uY2xyLXN0ZXBwZXItZm9ybXMgLmNsci1zdGVwcGVyLWhlYWRlcj4uY2xyLWFjY29yZGlvbi1oZWFkZXIt'@; put 'YnV0dG9uPi5jbHItc3RlcC10aXRsZS13cmFwcGVyPi5jbHItc3RlcC1udW1iZXJ7bWluLXdpZHRoOmluaXRpYWx9LmNsci1zdGVwcGVyLWZvcm1zIC5jbHItc3RlcHBlci1oZWFkZXI+LmNsci1hY2NvcmRpb24taGVhZGVyLWJ1dHRvbj4uY2xyLWFjY29yZGlvbi1kZXNjcmlwdGlvbiwuY2xy'@; put 'LXN0ZXBwZXItZm9ybXMgLmNsci1zdGVwcGVyLWhlYWRlcj4uY2xyLWFjY29yZGlvbi1oZWFkZXItYnV0dG9uPi5jbHItc3RlcC1kZXNjcmlwdGlvbnttYXJnaW4tbGVmdDowfX0uY2xyLXN0ZXBwZXItZm9ybXMgLmNsci1hY2NvcmRpb24tcGFuZWwtaW5hY3RpdmU6bm90KC5jbHItYWNjb3Jk'@; put 'aW9uLXBhbmVsLW9wZW4pPi5jbHItc3RlcHBlci1oZWFkZXIgLmNsci1zdGVwLWFuZ2xle3Zpc2liaWxpdHk6aGlkZGVufUBtZWRpYSAobWF4LXdpZHRoOjU3NnB4KXsuY2xyLXN0ZXBwZXItZm9ybXMgLmNsci1hY2NvcmRpb24tcGFuZWwtaW5hY3RpdmU6bm90KC5jbHItYWNjb3JkaW9uLXBh'@; put 'bmVsLW9wZW4pPi5jbHItc3RlcHBlci1oZWFkZXIgLmNsci1zdGVwLWFuZ2xle2Rpc3BsYXk6bm9uZX19LmNsci1zdGVwcGVyLWZvcm1zIC5jbHItc3RlcC1idXR0b257bWFyZ2luLXRvcDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpO21hcmdpbi1yaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNw'@; put 'YWNlLTYpfWNsci1zdGVwcGVyLXBhbmVsIC5jbHItYWNjb3JkaW9uLWlubmVyLWNvbnRlbnR7cGFkZGluZzp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTkpIHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTEpfTpyb290IFtjZHMtdGhlbWVdey0tY2xyLXRpbWVsaW5lLWxpbmUtY29sb3I6dmFyKC0t'@; put 'Y2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1ib3JkZXItY29sb3IpOy0tY2xyLXRpbWVsaW5lLXN0ZXAtaGVhZGVyLWNvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTQwMCk7LS1jbHItdGltZWxpbmUtc3RlcC10aXRsZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlw'@; put 'b2dyYXBoeS1jb2xvci00MDApOy0tY2xyLXRpbWVsaW5lLXN0ZXAtZGVzY3JpcHRpb24tY29sb3I6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY29sb3ItNDAwKTstLWNsci10aW1lbGluZS1pbmNvbXBsZXRlLXN0ZXAtY29sb3I6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlv'@; put 'bi1ib3JkZXItY29sb3IpOy0tY2xyLXRpbWVsaW5lLWN1cnJlbnQtc3RlcC1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtaGlnaGxpZ2h0KTstLWNsci10aW1lbGluZS1zdWNjZXNzLXN0ZXAtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1z'@; put 'dWNjZXNzKTstLWNsci10aW1lbGluZS1lcnJvci1zdGVwLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtZGFuZ2VyKTstLWNsci10aW1lbGluZS1zdGVwLXRpdGxlLWZvbnQtd2VpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LXNlbWlib2xkKTstLWNsci10'@; put 'aW1lbGluZS1zdGVwLWludGVybmFsLXNwYWNpbmc6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS02KX0uY2xyLXRpbWVsaW5le2Rpc3BsYXk6ZmxleDtwYWRkaW5nOnZhcigtLWNsci10aW1lbGluZS1zdGVwLWludGVybmFsLXNwYWNpbmcpfS5jbHItdGltZWxpbmUtc3RlcHtkaXNwbGF5OmZsZXg7'@; put 'ZmxleC1kaXJlY3Rpb246Y29sdW1uO3dpZHRoOjEwMCU7bWluLXdpZHRoOmNhbGMoMTc1KigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTttYXJnaW4tbGVmdDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUpfS5jbHItdGltZWxpbmUtc3RlcCBjZHMtaWNvbiwuY2xyLXRpbWVsaW5lLXN0'@; put 'ZXAgY2xyLWljb257aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTEpO3dpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTEpO21pbi1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMSk7bWluLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTEpfS5jbHItdGltZWxp'@; put 'bmUtc3RlcCBjZHMtaWNvbltzaGFwZT1jaXJjbGVdLC5jbHItdGltZWxpbmUtc3RlcCBjbHItaWNvbltzaGFwZT1jaXJjbGVde2NvbG9yOnZhcigtLWNsci10aW1lbGluZS1pbmNvbXBsZXRlLXN0ZXAtY29sb3IpfS5jbHItdGltZWxpbmUtc3RlcCBjZHMtaWNvbltzaGFwZT1kb3QtY2lyY2xl'@; put 'XSwuY2xyLXRpbWVsaW5lLXN0ZXAgY2xyLWljb25bc2hhcGU9ZG90LWNpcmNsZV17Y29sb3I6dmFyKC0tY2xyLXRpbWVsaW5lLWN1cnJlbnQtc3RlcC1jb2xvcil9LmNsci10aW1lbGluZS1zdGVwIGNkcy1pY29uW3NoYXBlPXN1Y2Nlc3Mtc3RhbmRhcmRdLC5jbHItdGltZWxpbmUtc3RlcCBj'@; put 'bHItaWNvbltzaGFwZT1zdWNjZXNzLXN0YW5kYXJkXXtjb2xvcjp2YXIoLS1jbHItdGltZWxpbmUtc3VjY2Vzcy1zdGVwLWNvbG9yKX0uY2xyLXRpbWVsaW5lLXN0ZXAgY2RzLWljb25bc2hhcGU9ZXJyb3Itc3RhbmRhcmRdLC5jbHItdGltZWxpbmUtc3RlcCBjbHItaWNvbltzaGFwZT1lcnJv'@; put 'ci1zdGFuZGFyZF17Y29sb3I6dmFyKC0tY2xyLXRpbWVsaW5lLWVycm9yLXN0ZXAtY29sb3IpfS5jbHItdGltZWxpbmUtc3RlcCBjbHItc3Bpbm5lci5zcGlubmVye21hcmdpbjp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTIpfS5jbHItdGltZWxpbmUtc3RlcCBjbHItc3Bpbm5lci5zcGlubmVy'@; put 'LC5jbHItdGltZWxpbmUtc3RlcCBjbHItc3Bpbm5lci5zcGlubmVyOmFmdGVyLC5jbHItdGltZWxpbmUtc3RlcCBjbHItc3Bpbm5lci5zcGlubmVyOmJlZm9yZXtoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMCk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMCk7bWluLWhl'@; put 'aWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEwKTttaW4td2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMCl9LmNsci10aW1lbGluZS1zdGVwOm5vdCg6bGFzdC1vZi10eXBlKSAuY2xyLXRpbWVsaW5lLXN0ZXAtYm9keTpiZWZvcmV7Y29udGVudDoiIjtiYWNrZ3JvdW5kOnZhcigt'@; put 'LWNsci10aW1lbGluZS1saW5lLWNvbG9yKTtoZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMjAwKTt3aWR0aDpjYWxjKDEwMCUgLSB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTExKSArIHZhcigtLWNsci10aW1lbGluZS1zdGVwLWludGVybmFsLXNwYWNpbmcpKTt0'@; put 'cmFuc2Zvcm06dHJhbnNsYXRlKGNhbGModmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMSkgLSB2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0aC0yMDApKSxjYWxjKC0uNSoodmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMjAwKSArIHZhcigtLWNkcy1nbG9iYWwt'@; put 'c3BhY2UtMTEpKSkpfS5jbHItdGltZWxpbmUtc3RlcC1oZWFkZXJ7d2hpdGUtc3BhY2U6bm93cmFwO21hcmdpbi1ib3R0b206dmFyKC0tY2xyLXRpbWVsaW5lLXN0ZXAtaW50ZXJuYWwtc3BhY2luZyk7Y29sb3I6dmFyKC0tY2xyLXRpbWVsaW5lLXN0ZXAtaGVhZGVyLWNvbG9yKTtmb250LXNp'@; put 'emU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWZvbnQtc2l6ZSk7Zm9udC13ZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtbWVkaXVtKTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWNvbmRhcnktbGluZS1o'@; put 'ZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFyeS1sZXR0ZXItc3BhY2luZyl9LmNsci10aW1lbGluZS1zdGVwLWJvZHl7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uY2xyLXRpbWVsaW5lLXN0ZXAtYm9keSBjZHMtaWNv'@; put 'biwuY2xyLXRpbWVsaW5lLXN0ZXAtYm9keSBjbHItaWNvbntoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03KTt3aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcpO21pbi13aWR0aDppbml0aWFsO21pbi1oZWlnaHQ6aW5pdGlhbH0uY2xyLXRpbWVsaW5lLXN0ZXAtYm9keSBjZHMt'@; put 'aWNvbltzaGFwZT1jaXJjbGVdLC5jbHItdGltZWxpbmUtc3RlcC1ib2R5IGNkcy1pY29uW3NoYXBlPWRvdC1jaXJjbGVdLC5jbHItdGltZWxpbmUtc3RlcC1ib2R5IGNkcy1pY29uW3NoYXBlPXN1Y2Nlc3Mtc3RhbmRhcmRdLC5jbHItdGltZWxpbmUtc3RlcC1ib2R5IGNkcy1pY29uW3NoYXBl'@; put 'PWVycm9yLXN0YW5kYXJkXSwuY2xyLXRpbWVsaW5lLXN0ZXAtYm9keSBjbHItaWNvbltzaGFwZT1jaXJjbGVdLC5jbHItdGltZWxpbmUtc3RlcC1ib2R5IGNsci1pY29uW3NoYXBlPWRvdC1jaXJjbGVdLC5jbHItdGltZWxpbmUtc3RlcC1ib2R5IGNsci1pY29uW3NoYXBlPXN1Y2Nlc3Mtc3Rh'@; put 'bmRhcmRdLC5jbHItdGltZWxpbmUtc3RlcC1ib2R5IGNsci1pY29uW3NoYXBlPWVycm9yLXN0YW5kYXJkXXtjb2xvcjppbmhlcml0fS5jbHItdGltZWxpbmUtc3RlcC10aXRsZXttYXJnaW46dmFyKC0tY2xyLXRpbWVsaW5lLXN0ZXAtaW50ZXJuYWwtc3BhY2luZykgMDtjb2xvcjp2YXIoLS1j'@; put 'bHItdGltZWxpbmUtc3RlcC10aXRsZS1jb2xvcik7Zm9udC1zaXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFyeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci10aW1lbGluZS1zdGVwLXRpdGxlLWZvbnQtd2VpZ2h0KTtsaW5lLWhlaWdodDp2YXIoLS1jZHMt'@; put 'YWxpYXMtdHlwb2dyYXBoeS1zZWNvbmRhcnktbGluZS1oZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFyeS1sZXR0ZXItc3BhY2luZyl9LmNsci10aW1lbGluZS1zdGVwLWRlc2NyaXB0aW9ue2NvbG9yOnZhcigtLWNsci10aW1lbGluZS1z'@; put 'dGVwLWRlc2NyaXB0aW9uLWNvbG9yKTtmb250LXNpemU6dmFyKC0tY2RzLWFsaWFzLXR5cG9ncmFwaHktY2FwdGlvbi1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNhcHRpb24tZm9udC13ZWlnaHQpO2xpbmUtaGVpZ2h0OnZhcigtLWNkcy1hbGlh'@; put 'cy10eXBvZ3JhcGh5LWNhcHRpb24tbGluZS1oZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNhcHRpb24tbGV0dGVyLXNwYWNpbmcpfS5jbHItdGltZWxpbmUtc3RlcC1kZXNjcmlwdGlvbiBidXR0b257ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOnZh'@; put 'cigtLWNsci10aW1lbGluZS1zdGVwLWludGVybmFsLXNwYWNpbmcpfS5jbHItdGltZWxpbmUtc3RlcC1kZXNjcmlwdGlvbiBpbWd7d2lkdGg6MTAwJTttYXJnaW4tdG9wOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSl9LmNsci10aW1lbGluZS5jbHItdGltZWxpbmUtdmVydGljYWx7ZmxleC1k'@; put 'aXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDpjYWxjKDMyMCooMXJlbS92YXIoLS1jZHMtZ2xvYmFsLWJhc2UpKSl9LmNsci10aW1lbGluZS5jbHItdGltZWxpbmUtdmVydGljYWwgLmNsci10aW1lbGluZS1zdGVwe2ZsZXgtZGlyZWN0aW9uOnJvdzttYXJnaW4tbGVmdDowO3Bvc2l0aW9uOnJl'@; put 'bGF0aXZlfS5jbHItdGltZWxpbmUuY2xyLXRpbWVsaW5lLXZlcnRpY2FsIC5jbHItdGltZWxpbmUtc3RlcDpub3QoOmxhc3Qtb2YtdHlwZSl7bWFyZ2luLWJvdHRvbTp2YXIoLS1jbHItdGltZWxpbmUtc3RlcC1pbnRlcm5hbC1zcGFjaW5nKX0uY2xyLXRpbWVsaW5lLmNsci10aW1lbGluZS12'@; put 'ZXJ0aWNhbCAuY2xyLXRpbWVsaW5lLXN0ZXA6bm90KDpsYXN0LW9mLXR5cGUpIC5jbHItdGltZWxpbmUtc3RlcC1ib2R5OmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0aC0yMDApO2hlaWdodDpjYWxjKDEwMCUgLSAoLjUq'@; put 'dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMSkgKyB2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0aC0yMDApKSk7dHJhbnNmb3JtOnRyYW5zbGF0ZShjYWxjKC0uNSoodmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMSkgKyB2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0'@; put 'aC0yMDApKSAtIHZhcigtLWNsci10aW1lbGluZS1zdGVwLWludGVybmFsLXNwYWNpbmcpKSxjYWxjKHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTEpIC0gdmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMjAwKSkpfS5jbHItdGltZWxpbmUuY2xyLXRpbWVsaW5lLXZlcnRpY2Fs'@; put 'IC5jbHItdGltZWxpbmUtc3RlcC1oZWFkZXJ7dGV4dC1hbGlnbjpyaWdodDt3aGl0ZS1zcGFjZTpub3JtYWw7d29yZC1icmVhazpicmVhay13b3JkO3dpZHRoOmNhbGMoNjAqKDFyZW0vdmFyKC0tY2RzLWdsb2JhbC1iYXNlKSkpO21pbi13aWR0aDpjYWxjKDYwKigxcmVtL3ZhcigtLWNkcy1n'@; put 'bG9iYWwtYmFzZSkpKTttYXJnaW46dmFyKC0tY2xyLXRpbWVsaW5lLXN0ZXAtaW50ZXJuYWwtc3BhY2luZykgdmFyKC0tY2xyLXRpbWVsaW5lLXN0ZXAtaW50ZXJuYWwtc3BhY2luZykgMCAwfS5jbHItdGltZWxpbmUuY2xyLXRpbWVsaW5lLXZlcnRpY2FsIC5jbHItdGltZWxpbmUtc3RlcC1i'@; put 'b2R5e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOmNhbGMoMTc4KigxcmVtL3ZhcigtLWNkcy1nbG9iYWwtYmFzZSkpKTttYXJnaW4tbGVmdDp2YXIoLS1jbHItdGltZWxpbmUtc3RlcC1pbnRlcm5hbC1zcGFjaW5nKX06cm9vdCBbY2RzLXRoZW1lXXstLWNs'@; put 'ci1icmVhZGNydW1iLWl0ZW0tc3BhY2U6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01KX0uY2xyLWJyZWFkY3J1bWItbWVudXtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7YWxpZ24taXRlbXM6Y2VudGVyfS5jbHItYnJlYWRjcnVtYi1tZW51IC5jbHItYnJlYWRjcnVtYi1pdGVte2Rpc3Bs'@; put 'YXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Zm9udC1zaXplOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFyeS1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LXNlY29uZGFyeS1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0t'@; put 'Y2RzLWFsaWFzLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWxpbmUtaGVpZ2h0KTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1zZWNvbmRhcnktbGV0dGVyLXNwYWNpbmcpfS5jbHItYnJlYWRjcnVtYi1tZW51IC5jbHItYnJlYWRjcnVtYi1pdGVtIGF7dGV4dC1kZWNv'@; put 'cmF0aW9uOm5vbmU7dGV4dC1hbGlnbjpjZW50ZXI7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05KX0uY2xyLWJyZWFkY3J1bWItbWVudSAuY2xyLWJyZWFkY3J1bWItaXRlbTpub3QoOmxhc3QtY2hpbGQpOmFmdGVye2NvbnRlbnQ6Ii8iO21hcmdpbjowIHZhcigtLWNsci1i'@; put 'cmVhZGNydW1iLWl0ZW0tc3BhY2UpO2NvbG9yOnZhcigtLWNkcy1hbGlhcy10eXBvZ3JhcGh5LWNvbG9yLTQwMCl9LmNsci1icmVhZGNydW1iLW1lbnUgLmNsci1icmVhZGNydW1iLWl0ZW06bGFzdC1jaGlsZHtjb2xvcjp2YXIoLS1jZHMtYWxpYXMtdHlwb2dyYXBoeS1jb2xvci00MDApfS5j'@; put 'bHItYnJlYWRjcnVtYi1tZW51IC5jbHItYnJlYWRjcnVtYi1leHBhbmR7bWFyZ2luOjA7cGFkZGluZzowO2dhcDowO21pbi13aWR0aDotbW96LWZpdC1jb250ZW50O21pbi13aWR0aDpmaXQtY29udGVudH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5Ok1ldHJvcG9saXM7c3JjOnVybChkYXRhOmFw'@; put 'cGxpY2F0aW9uL2ZvbnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUmdBQkFBQUFBRlFnQUJNQUFBQUFtOEFBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkdSbFJOQUFBQnFBQUFBQndBQUFBY2ZOSDU1a2RFUlVZQUFBSEVBQUFBVFFBQUFHSUgxUWY4UjFCUFV3QUFBaFFB'@; put 'QUFjYUFBQU9kankrZWpsSFUxVkNBQUFKTUFBQUFDQUFBQUFnUkhaTWRVOVRMeklBQUFsUUFBQUFUUUFBQUdCb1BxenJZMjFoY0FBQUNhQUFBQUpzQUFBRG5uZEREN0ZqZG5RZ0FBQU1EQUFBQURBQUFBQThFWTRCakdad1oyMEFBQXc4QUFBR09nQUFEUloyWkgxMloyRnpjQUFBRW5nQUFBQUlB'@; put 'QUFBQ0FBQUFCQm5iSGxtQUFBU2dBQUFObk1BQUdnVXhGSWdOMmhsWVdRQUFFajBBQUFBTmdBQUFEWUxZWWdVYUdobFlRQUFTU3dBQUFBaEFBQUFKQWQyQkRKb2JYUjRBQUJKVUFBQUFvZ0FBQVR1dVBJL0ZHeHZZMkVBQUV2WUFBQUNjZ0FBQW5xSmFuQndiV0Y0Y0FBQVRrd0FBQUFnQUFBQUlB'@; put 'S0VBZWx1WVcxbEFBQk9iQUFBQVlJQUFBTldMZENFOVhCdmMzUUFBRS93QUFBRG9RQUFCaUdYRmoyS2NISmxjQUFBVTVRQUFBQ0JBQUFBalJsUUFoQjNaV0ptQUFCVUdBQUFBQVlBQUFBRzluaFltQUFBQUFFQUFBQUExRkcxYWdBQUFBRFR3WjJHQUFBQUFOUytwdlY0MmcyTVFRcUVRQkRFRWtm'@; put 'ME1MUG9mN3lwTC9Eb2ZYZlYvei9BSWdSQzBUUUNMUjZjZEZSa2pWc283SHpUdjFENEI3bTQwNDhET2xvcE5sdjY0NVNlWFhMVDUxc1h6U2ErVzNBRjNBQUFBSGphalZjQmJGYlZGZjdPdWZlK3YvMExXRW9MQ0IwRFVoa3hUV1dFU1VWR2lXTUZzVlBEbUVFSFpsdWNZNjFRN0JqWmlERktIWnFs'@; put 'Nll6RERwRTBxQXlNTnNCUXNTS3lwcXZPT1Vka1k2WWhZRndIeURZbTA3bkZDUEwydmZOKzZGOW90L0dGajhPNTk5MTd6em5mN2JtRkFNaGlNaFpDNXRYV0xVWUJQRDJJWXpqK0kxQzRobTgzclVUcGltODJOYUI4UmNPS0JzNEcvY2xvT2lOaHgrK3lHSTBKbUdJZWh3clV1WTUwTkZwbHEwclVp'@; put 'b2dmeWZEVi9HS2MrUUpLTDBCUUc3ZVNBMmFqQlo4aWxuRlFIb1B6Wkt3Y1FSR0c4V1Ivajd2ajdYRnZmQlJEL0lrL0dITGt0NE42KzdoMy92K1B4ejhkY29YM2hod1orangvalBjT01iSTk3b3YzSmJqSTM4dS92MGt3MkI1eEs3T2ttTWhNVDJHMlBrY29xZ2lIcXdpUDZVVEFGNGdJTTRrTXJp'@; put 'RUtNSXNvWkc1bnMxSnJDTUg5K0JGblBrZ0VacnlGL2hjSXdZdUU0Q1ZDY1pEdytBUGhjWlFJK0RNUjRUZ1I0VDBpd21raWd3K0lETTRRaGF6ZXAxd3RKckpTTE1Vb2xCSXBJWmRLS1hrY0s1dmwydE9va2dwK2N5VWhkdTcweEdvbmRuWmlieWNPbUVjVW9KWW94QUlpaTBWRUVScnhmYTZRUkJK'@; put 'WkpKRkZFdkFUUE1yNWJVUWhmb1pOblA4RWZzNzUyNGtpN0NReTJFVVU0QmRFQnJ1SkFqeEhaUEE4VVlBOVJDRTZpVUxzSjdMb0lyTG9KckxvSWJKNGxSRDhtaERMVG9SM2lDTDhpVWp6b3BZWHRieDR5MHV3dkFUTGk3ZThlTXVMbHpFeWh2bTZYQzRuSnprS1hMV0tHWnJDR2xleHR0TlowNW5N'@; put 'ekN4bXBCR3JjRGVhOEQyc1ppM3Z4em8wNHdGbTRVRkd2NU1SUGNkS3ZzZ0tIbVRsanJKaXgxbXAwenpKR2J0WnhkeTNOTGxmZXEvZHc5ZWtpWEVQcDdyMlVYZXQ4YjhHVWF1TkRIWUhMb3ljU2pESWw2ZUh2QnVueml1ZTkvcG8zQnczWHp5UzNycDRjN3g1MEpHLzJEZUtjdE9FbUNZVVh5TWNi'@; put 'aVU4YmlNQ2xoSVJGZkVvNXlScUVGT0RtaG9VSFVTRUhVUmtsUmFydEZpbHhTb3RWbGZGTWNMaEJPRndrbkE0U3dTY0l5SVpLU05aMTFFeWlsd21aZVNrb21JVkZSa3Y0N20rb2hLWEVVVVlTUXd6cFlzcFhVM3BMcWYwK1VTKzByM0ZFK1hGa3pHbHU1elMrelh1TFNwdlVXVXNxdk5LVHpXZXFu'@; put 'c3ZNYlN1azJpOWFWWnpFU2JLZFJabnh2VHJUTCthaXpsUnNlWWlUN1NzZWZIbks5cFpGakl5VGE3aDdzbFByMXBHdUlqMXVwVnhMV1VrYll4a0l4NWpORS9nU1R5RnJZeG9PeVBad2R2WXlkTjI4WlE5UE4weDF1QWtUM2FPSnhqRjNjWndsL0ZjY1lMcFdUSENPa3FKcWFPRXU5VFFFck5yMklt'@; put 'T1JCUElmY3gvdDZ5WEZubEVOa3E3YkpWblpKZnNrWDNTTGEvTEFUa2toK1ZkT1NHbjVFUDVXTTZwMTZ3VzYyZ3QxOGs2VmF0MGhzN1N1VnFyZGJwSWwranRlb2ZXNnlwZG8vZm9PbjFJVzNXRGJ0SXR1azA3ZExkMjZuN3QwVGYwTFgxYmoyaWZudFQzOVNQOXhNRkZicGdyY1dQZEJGZmhyblRU'@; put 'M05WdXRydk9MWEEzdXNYdU52Y05kNmU3eXpXNUg3aDczUVB1eCs1aDErWTJ1eWZkMDI2SGU5N3RkVjN1TmZlbSs3M3JkZSs0WSs2djdoL3UzKzZzVjEvZ1IvaFNQODVQOUZOOHBaL3VxLzBjUDg4djlEZjdXL3hTL3kyLzNLLzBxLzFhZjU5ZjcxdjhJMzZqYi9kYi9UTitsOS9qOS9sdS83by80'@; put 'QS81dy81ZGY4S2Y4aC82ai8yNTRFTTJGSWZSb1R4TURsTkRWWmdSWm9XNW9UYlVoVVZoU2JnOTNCSHF3NnF3SnR3VDFvV0hRbXZZRURhRkxXRmI2QWk3UTJmWUgzckNHK0d0OEhZNEV2ckN5ZkIrK0NoOEVpR0tvbUc4SFUyNms5eHNQTis0eG5oRHdtZzBialBQMm41L2ptOHdyalMrMW5obHds'@; put 'cG05dlhHYzR3cmxEOVQ1UXJqcTR5ckUwYTljYnUrVEc0d2Y2WHhiUFAzR3A4eHowVGp4NDBuR1VmR0MxdzkrU25qcHNGWmY1VVhZNDM1TDJGODJYaUxjV00veTdJMGRyUHZNbjdWZU1PbG5HYkE3RXY1ZXVNSzdmcGZyTThPeUZYWFlJeTV4bzhiMS9jenM5ZGwyZnZ2bk9hemExQ2VsTWROZVdj'@; put 'ZVlPZlZ0Tm44VjVnLzM1NXZPV3d4ZTFsZTV0TW9CdGcybXFvaTM1OW10VHExYlU2cW1iUTZhZFNwUG5OMnpwL01hVE83M2EwNXI5NmN4ZzZhM1pQWXVacW1HVnViVTNLNHlKK2VJYzNiQWJQWFdvME9KZk5kcXNBYmJLOWVtMk0zSXRYdEFIK2wyV2R5TmRwNVFkWDUvdlFHWFp1bm1iUWkrZlpX'@; put 'czcrZSttMiszUXN0TTcvcElhZTBTWG4ySE9QSVBFUFpmelA3Ym91dTF1dzN6YzVmdVNiK0pia3EzbjlScGZKM3JNN2Q3cTcvZ3dmT1ZIelczcVhndTJzcXM1SzhUajI3ZGlXN1lQTENqdkI1dnNReW1JRnE5ckNrYzQ5ZzMvNGllM3JTdVVmYUc3WEVPdmNvL2w2MWtIMm9qaWpEVGV4em85bnBi'@; put 'dUh2UGt1SWN1dmxuMkhYVzhhdTFjaTMyMFI3dmMxa1IyL25lbHZZK2I1aXZlK3I3SDR2czBPK2dnUDREbDkwcC9GRGUxVnV4RDhsNERGMjR2SG9zSjdheWZPS1hHYS9tMFdRZUwycDhEN2NTVjdQYmxlRXNkeXJnaEZOdzlVODlYVTg1WTFZek5FWFRMdS9NejVzYkhlR0d1M25nOGJMamJjWjl4'@; put 'bWZOUzdDbDdqUGNueFhNbElnaFpLVkloa3VJeTQ5MFg4QXRsS1hXQUFBQUFFQUFBQUtBQndBSGdBQlJFWk1WQUFJQUFRQUFBQUEvLzhBQUFBQUFBQjQybU5nWnJKZ25NREF5c0RDMU1VVXdjREE0QTJoR2VNWVJCak5nSHlnRkJ5d015Q0JVTzl3UHdZSEJnWFZQOHpTLzQwWkdKaVBNcW9xTURC'@; put 'TUJza3hzVEt0QjFJS0RFd0F4bGNLTmdBQUFIamF0Wk5aVUk1UkhNWi8vN2Q5RVNvVTlmYjJhZE5Hb2hSRjlxWEl2cFNzMmJLdjJScnJFRU5GVXNpZUpLTVpFMU5UdGh2dXVEVmpqTDdQbFZ2dURCM0hWMHd6ekxoeVp0NXozblBPbk9lY2VaN2ZIM0NoNnd0QmRJOVU2cGs0NTY1U3JNY2xqTU9O'@; put 'Z1pSd2l6cnUwa2dUemJUUUpoNFNJSU1rVEFaTG5DUkpxcVJMcGt5VkhNbVRRaW1TRWlQVmVHVzhkNGt5ajV1dDVoUHppK1Z1QlZyQlZxaGxzNktzWVZhNmRkL21IL2xOS1gySHhZMGUybzlwNDVuNFNuOHh4U2F4a2lncGtpWVpraVhaa2lzRnNrRTJhKzJYeGx1dGZjaHNNZHZOejVaaEJWaEJW'@; put 'b2hUZTZpVjlrdGJmVlF2MUhQMVZMV3JWdlZJTmF1SHFrazFxZ1pWcityVU5WV3JhbFMxcWxLVnFrS1ZxVE9xVkozb2ZOT1oxWm4wL1pPajNGSGd5SGZFMkFmYS9ldytkaSs3bTkzbytOcnh1ZVB3aDVCM3lWMWUvYWZtYm5nN2srQ1BXd1NqKzgvNGgwYlhTUmRjZFhidWVPQ0pGOTc0NEVzdi9P'@; put 'aE5IL3JpVHdDQjlLTS9Bd2dpV0djOFNLY2Vpa21ZVGlRY0c0T0pJSklvb29saENMSEVFVThDaVF4bEdFa01KNWtSakNTRlZFYVJSanFqR1VNR21ZelZ6R1F4bmdsTVpCS1RtY0pVcGpHZEdXU1R3MHhta2N0czVqQ1hlY3huQVF0WnhHSk5XaDc1TEtXQVpTeG5oWDcvRG5heW0ySU9jWnpUbEZO'@; put 'R0JlYzVSeVZWVkhPUkdpNXhoY3ZVY3BYcjNOUVUvV1QwTmcyYXBYdWFwcDl0RmF1MUhkRnM0R3kzTit0Wm8vdGRuUGp0VnVGZkhMeEFQWnRaMldObExac2tSbzliMk00eDdEZ2tYUE1aS1ZHNkFpSzRvM2Nlb0dtV0JGMFA4ZDFuaXB4aHhMS052V3hsSDNzNHdFRmRTL3M1d2xHOWRaaFNUbkdT'@; put 'MTdxYWVyRk92TVJiZk5nb2ZwcC96eCtRemFyb2VOcGpZTUFDSElIUWtzR1NhVDBEQTlOdUpsWUdodjhoek5ML2pabDIvLy9DZElCSjhQK1gvMzRnUGdESVBRMGllTnF0Vm1sMzAwWVVsYnhsSXh0WmFGRkx4MHljcHRISXBCU0NBUU5CaXUxQ3VqaGJLMEZwcFRoSjl3VzYwWDFmOEs5NWN0cHo2'@; put 'RGQrV3U4YjJTYUJoSjcyMUIvMDdzeTdNMitiZVdNeWxDQmozYThFUWl6ZE5ZYVdseWkzZXMyblV4Yk5CT0cyYUs3N2xDcEVmL1VhdlVhaklUZXNmSjZNZ0F4UExyWU0wL0JDMXlGVGtRaTNIVW9wc1Nub1hwMHkwOWRhTTJhL1YybFVLRmZ4ODVRdUJDdlgvYnpNVzAxZlVMMk9xWVhBRWxSaVZB'@; put 'b0NFU2ZzYUpObU1OVWVDWnBqL1J3ejc5VjlBVytha2FEK3VoOWlSckN1bjlFOG8vblFDb01nc01pMGcwQ1NVZmUzZ3NDaHRCTFlKMU9JNEZuV3EvdVVsUzdscElzNEFqSkRoekpLd2kreEdXYzNYTUVhOXRoS1BPQXZTSlVHcFdmelVIcWlLWm93RU05bEN3aHkyUS9yVnJRUytETElCNElXVm4z'@; put 'b0xBNnRiZCtocktJZXoyNFpxU1JUT1F5bEs1Rng2VWFVMnRnbXN3RURsSjExcUVjSmRuWEFhOXpOR0J1Q2Q2Q0ZNR0JLdUtoZDdWV3RuZ0hEcTdpeitXN3UrOVRlV3ZRbnU1ZzJYUEFRZHlncVRSbHhYWFMrREl0elNzS0NreDB2VVIwWkxTWW1CZzVZVGxOWVpWajNROXU5NkpEU0FiVUcrdE1v'@; put 'dGlYendXemVvVUVWcDFJVjJvd1dIUnBTSUFwQmg3eXJ2QnhBdWdFTjhtZ0ZvMEdNSEJyR05pTTZKUUlaYU1BdURYbWhhSWFDaHBBMGgwYlUwcG9mWnpZWGd5a2EzSkszSFJwVlM4diswbW95YWVVeFA2Ym5ENnZZR1BiVy9YaDRHQVdNWEJxMitjemlKTHZ4SWY0TTRrUG1KQ3FSTHRUOW1KT0hh'@; put 'TjBtNnN0bVovTVN5enJZU3ZTOEJGZUJad0pFVW9QL05jenVMZFVCQll3Tlkwd2lXeDRaRjF1bWFlcGFqU2tqTmxLVk5aK0dwU3NxTklERDF3L0RvU3RDbVA5emROUTBoZ3pYYllieDRaeE5kMnpyT05JMGp0akdiSWNtVkd5eW5FU2VXUjVSY1pybFl5ck9zSHhjeFZtV1IxV2NZMm1wdUlmbEV5'@; put 'cnVaZm1raXZ0WVBxTmtKKytVQzVGaEtZcGszdUFMNHREc0x1VmtWM2t6VWRxN2xOTmQ1YTFFZVV3Wk5Hai9oL2llUW56SDRKZEFmQ3p6aUkvbGNjVEhVaUkrbGxPSWoyVUI4YkdjUm53c24wWjhMR2NRSDB1bFJGa2ZVMGZCN0dnb1BIYkIwNlhFMVZOOFZvdUtISnNjM01JVHVBQTFjVUFWWlZT'@; put 'UzNCRWZ5YkE0K3JsdWFjMUpPakViWjgySmlvOUd4Z0UrdXpzekQ2dFBLbkZhKy9zY2VHYmxZU080bmZzYTUzbGo4ZytEZjRzWFpTaythVTV3Y0tlUUFIaTh2OE80RlZISm9kT3FlS1RzMFB3L1VYR0NHNkNmUVUyTXlZSW9paHJmZk9UeVNyTlprelcwQ2g5UEJEb3Iyc0c4YVU2TUk2VWx0S2hK'@; put 'R2dFdGc2NVowRFRxOCt5dFpsRUtVVzVpdjdON0thS1k3RVVaeklBcEtPU21zYkRzNzZSRVdsZzdxZW4wMGNEbFJ0cUxuaXcxVzFaeGhiMEg3MlBJelN4NU4xSmV1Q2twN1VXYlVLZTh5QUlPdVpFOXVDYUNXMmp2c29waVNsaW9JajRJYlFYNzdXTkVKaTB6Z3k2QkltUnhzcklQN1lvZE9hS0Nk'@; put 'Z0xmZXRJcTc5dEM3YzkxOGlBd201MXU1MEdXa2FMelhSWDFhbjFWMXRnb1Y2L2NUUjhIMDg2d3NlWVhSUmxQTG52Zm5oVHNWNmNFdVFKR1YzYS83a254OWp2VzdVcEpQdHNYZG5uaWRVb1Y4bCtBQjBQdWxQY2lHa1dSczFpbEVjK3ZXM2d5UlRrb3hrVnpIQmYwMGg3dGlsWGZvMTNZZCsyalZs'@; put 'eFdWTElmWmRCVmROWnV3amMrWHdqcVFDb0tXcVFpVm5nNlpENmJuWnJ3c1pTNExFWGNzMlRYUmZRZFBDRWQ0cjg0eExYLzY5eHlGTnlpeWhKZGFOY0p5UWR0SHl2b3JTVzdrNGNxUm1mdHZHeG5vaDFKTitnYWdwNUlMamorWHVBdWp4WHBGTzd6OHdmTVg4RjI1dmdZblFhK3F1Z014QkxucllJ'@; put 'RWl5cmUwazZtWGxCOGhHa0o4RVhWUXJNQ2VBbkFaUEN5YXBsNnBnNmdaNWFaVXdGWVlRNkRWZVl3V0dNT2czVzFnNjUzR2VnVklGT2pWOVdPbWN6NVFNbGN3RHlUMFRYbWFYU2RlUnE5eGp5TmJyQk5EK0IxdHNuZ0RiYkpJR1NiRENMbVZBRTJtTU9nd1J3R204eGhzS1g5Y29HMnRWK00zdFIr'@; put 'TVhwTCs4WG9iZTBYbzNlMFg0emUxWDR4ZWsvN3hlaDk1UGhjdDRBZjZCRmRCUHd3Z1pjQVArS2s2OUVDUmpmeGpMWTV0eExJbkk4MXgyeHpQc0hpODkxZFA5VWp2ZUt6QlBLS3p4UEk5TnZZcDAzNElvRk0rREtCVFBnSzNISjN2Ni8xU05PL1NTRFR2MDBnMDcvRHlqYmgrd1F5NFljRU11Rkhj'@; put 'QzkwOS90Smp6VDk1d1F5L1pjRU12MVhyR3dUZmtzZ0UzNVBJQlB1cUoyK1RLcnpaOVcxcVhlTDBsUDEyNTEzMlBrYlpUTzZMQUFBQUFFQUFmLy9BQTk0MnJWOUNYaGJWNW5vT2VkS3VwSWwyYjVhTGN1YnJOWFdhbXV6dk1qWFM3d3ZjYnpGU1J4bmM1eTBLVjNTbGk0aHBMUU5GQXFVQVdaWWhy'@; put 'NHUwS0ZNUzVLMmRLSHRGQ2hRMnFITERHK0FlY01INVEwekxHL1lCam93YlgwOS96bjNYbG0yN0tid2ZTKzFKUHZxclAvNTkrVVVsYUhGdFNUK0ZPZEdIS3BBZHVSQ1h0U0UwaWlIdXRBUWNvbU8zbnhuZXphVGJBNzY2cXVySEVLbFFVTlFXU0tzOVFnZTNwNjBlKzNKdERlZFRQUHNrNGRmMWFm'@; put 'MEdmMmszOENUdFBxNzBvWjF5Q2JUK0ZQU3M3anJQM3Q2Nyt2dHZlKysza2FQcDdlMzkwaXY1OWI3ampSNmpuanV1KzgrejVFanR3NE0zSGQwb09GRjdtZDlIcjhIZm00NjFqZ3c0RHNJdncxNE9uc2JqOXpRNW96dnZQTEtCNis4Y21kOHhSUDN3QTlDQkUydi9SNmRJK2ZZM3Z4aUk4SVlMU0tF'@; put 'eWtjUklkeVNCbk9ja3h2VGFEUVZtbksvVUtubG5XRnJrdk02QXVsVUp0bnFzTnQwM3YzRDVvVEc3YlpacTZ1dDVKeGtlZEZ0czdqZEZwc2JvYlUxTklnZnhXUGtrNVdOcUF5aFNnN2VIMEYwM2lDOFhRZnp1bEU5dW1IMHZIZm5iakZVb1NOSXl4Rk1FRjQyWW9PaGZMUzgwc3p4dkg3UlZFYjBl'@; put 'bUZVZ3dtcElHTnVNVUFmc0MrUm5qOWEyazlwdUNEV0lWUmZWMXNEMDdpclhWVk9XTEJWS1B6amE4T1lUL0plM3B0bHIyeVN2Wkk4ZS9IMFMveWJ6STNtRzJOdHNidmdkYTM1MnN3N3pkY3BmOTFnZnZpdXpGMzRhOTlOUHdiLzB0OU5QdzcvMHQ4RlNNYldIaVVSOGdma1FTRVVSNTFpTHViMzFk'@; put 'Vld1NXcyczZuTVlPYUlEaU9PakNEQ2tac1JSdmdXQ21hMEJIQnhvckdtcHFaNFU5eGhGeXhhM2hIMmxXUEFrWFFNQjdNT3B4REQ2VlFlWndGWkhFNGVuZ2wxMkk0Y3puUTVmR1RTcVVCUUlKSFVrUjFpejhsb2FPZnhvd2RhOStiRUt4WkR2cG5vNWUrUTlvczdPa2F3ZVdaMDZ1YTVOTmZkeTJj'@; put 'anJUc3JjV1gxcnFIa2JGclgyV1djYmZWR2VPbE45KzVKWEpPMi9aNGZicFd5STZtV0RvZjBKcXhOaStKci8wWCtsWHdKTU1VS3B4WkhIZWlGMGZOVmNISmhJOWFXWWF6VDRoV2tRM3FEVG44TWFUUm9pV0NLU1dZNEVtN0p4Qk9PcStERzNLUG5nOUFsL3BaZEVEUmwvZmdsRStaNUp3OW5udHlp'@; put 'QnlIUWxuWkRXL2RhV0JBRGlVUkRnODJHVUtJajBaNUpOY1FiWXFHQXJkNVdWMTFsdFFpVnNKbnlRRGx2RDF0azRDWmJBYWEyY3V6RlNleTFVS0I2RzNWMm15T0pObjJmeCt2Zi9mVkFNRFFZaVE3Q2V4Ui9xRk5xN3J3bTF4Nkp0TFdIOGRSQUtEZ1lsYitLdGRHSHVRaGVqRTdFVzNaR281T0ps'@; put 'b2tvM3JVNmhUODRrTTRNRG1UVEE5THg2RVJMWWlJV25ZeTNURVlUQTVuMElQMEs5c2VocHJYZmt4UGtNWUI5R1BoUFh1eUlSLzExTlc2WDA0RExPRkxQa0lwaVBsNENNbmFNYW91d0toSnBhSWlrSTZtR2NFTnp1RkVIbUtVTjZyeU5kRS9aNG8zQk44NU0xcW5qbllqdXpDbnYwcElOQk9IUE9w'@; put 'd2tpYVY5Snp1UDVPN3gxRVhHRTVIaDhOeGM1c3BJVXlhUnZGcjZkRmR0L1VSZnJqazBmanAvdG5tb21UK3czTEtRdTJrZ091aUxqSVRESTgzNVVaLzRUdkZBMWZIaGE4ang5bGhOVjZnaEcyN3VXajAzZDh0WTEvNlE2QVZpQUg2QlBrRStpVXdvT25yZUFZaGlwQ3lKblM4R0pLaEU5TTk1K0JN'@; put 'dlV0SVpYM2pFN2lPd0hXdUJJMVZnNzJ4NWxTQTR5L2tnL285RDNzb3FwK0E5bElIVytiVTVIQ05Qd2RpNmgwMWFuQWd6TnBaMUF2blluUHpuTDdua3NIZHU0WngzMTQ5dnVPSEh1LzI3djM3VkR5NEVZQ0tnNXpsY3AvYlRRVDhuSTdhc0RMRFl1WVU1NzJIb2ZNdUZIMXoxZGVqSHV0TitIZmdt'@; put 'NEgxZlFyTklGTHY4R0pQSkhkMnhScGROcTBkNEY5WWlib1REV0lPUkZxTVZIZFpxeVJKRmFPMFk3RzRXelF3UFpkSk53ZG9hTjAreEUxYmFqWG5nQm5CcVFmZ2ptK25Hd1lEOFc3TFY2YWpId1NJSVpMTEFKdGh6dXcwNlZXQ0gwOEYrWjczaFB5ZGozVjgyRzNUZWlvWnlyY2JNYThxYzBYQWta'@; put 'aS9UOEdhdHh0THMweG5Nd0t6MHVzcEtMbVRUYXMwOFZ5YUVkUkduSSt3bzQzaXpUdU1JT1l3NnZkbUFiekxyYTFxYWE4eFZQR2ZTYTR5OFdSQXNGaU52MU9oTlhGbGpUWE5MamQ1czFqdGE0Nlp5cnNISW1YUmFFMThtRUdnaW1IaVRWbWZpeWhzcytuaXJRMittQjR2NjBIRlNUbExJaUFLQUV4'@; put 'b09hMllCbDRFellBNHRBN25UbzlmZ2NjYkRLM1Y4ZFJoN3FmUk1VeW1hSk9YZnpELzNYUDZiT1A1Titnc2RiM0x0TkhvTTdVVGx5Q2tDNmFKQkZhV0FNSHdXaWoyQTg0M3JJbzJmREpxdElOR2NOZldoNDlFRUZXMyt1bHF4bFk3VmhuNkxPM0FNcUxGS3RETmtuRjFIUnFHU29hTEg3bW5EbkxT'@; put 'S1kxMXNQOE1nWXo4SDh4dXB0a0NmQUpmRDJJbnBRUnRSbVkrREF5NldxRWNVYVdvcVNGSzg5cHUxUi9ISHlVOWhYa0VzcDRPQzVNQlh5eE5TVm9VbkI2UzdCOGhQMzN3Wk1mbmFBYnppR0hrUzJGczlpb2hOZ0Zoc3h6Slh3Q0RZMlFJcWdaNHE2eXZycWh5TUQrcGdJWnJOZkk2a1V6SHNiYVJF'@; put 'QWd3QTQzY1BEcjU3YXVyMDRPRHBxZnpCVE9aZ1BuOG9rem1VTisyOVoyWGw3cjE3NzE1WnVXZHY1OWpadWRuM2pvNmVuWnM3TzhaZ1VBM3ZiNEM4MXlHM1dBVkh5UUc4Um1TdWpRRS94d1FyQXgwZnpDWUY3NU8zMUQ2WUVzbUIyWmFUcTFPSTlXK0JUZWxoUHk3VUxBYU5aYkFkd0FaQ1JoZzRH'@; put 'YnVqQ3NzaVlqSkdjUHFDR3I0cW5QVlQva1ZYendjTEhLNEN3L20wd0tuME51MW91bUpuTEhyOWNPZWgzTmpNdC9CSnFhbnRYL0tYcHBwNkE1Zjd4ZjdVWXE3djFOQ0Q4aG1HQUo1YW1EK011c1ZPZHpYTTVRT0NoaFhBTWtDU1F3c0Njb25qTkV1QW9MQVlrSmRMbEthZGpKekRxTm5uOS9qOVBP'@; put 'K0NrNmFjSTluS1dHc1lwNTJ0R1htTk9qNllVYm13QXZ4WFRrV2l2cVA1eEZqNDBOeU9nYkY5emNPUnpFSlRlUEg5K1NQdEEyMmRVNTJYOUpwNjJwdVRXWDlQVTc2M0UvZDMrdk8rZENwMEtqR1g3dG9sbE0vMlpmZW1HRDZFNEMwRjhDOURaaFFWbTAwWVVIQkVwNFY5WUFUNjZsRUFJUk9sRlpv'@; put 'eG85Rm9OZ0lOQzVaS3VsNi9KNGlUQXRWWXZXa0I0OXVrenh2d3pQaWxsNHJTeng5c3d5OUl1WTRIZjRadmtNN0s1OVFHY0hMQ1BBMVU3M0VBZXhNcU9hSkJHRTRLM3BHR0FZa3N5cEo3STVBYVVIMmpZQTJVQUVrK1AwcFZmS2FBbGo5K1Y2UzVlYVU5UGhHSlRDUW1SMXNOK0lQU1EzemZYT2R5'@; put 'Wi81RXI2azlHWThsdzJQUnlGQW9XNFdYdWw1dlNSL0k5NnkwTTFoMHdocjljSlp1ME9ON3hXNGdJbzRFcW9oV1EwWjB3R0kwV2s2emdncGlsSWNGcXR5aXBnYWhtcWFha0s4Uk9sZDcvUUU5S01SSVdSTGxJQlRMbkh5QWtrc3RoajhzNmdib2tTYnhlNDUyZFozb1BYMW04TlRZTzJaOW8zTzUv'@; put 'Wm5xeTNyOUU1SFlSTHovc0xseTN4QitNSE93TzMrczY4azdWLzdtd0s3VzRhbmI1MnpwYnVsTWZMdzVQdHcwM3JWN1dZWnpCMnpFd09pcFhxd0JHWUlaTlZFK2hKbnVEdG92YURjY0xBOTcwaDQ3TUlpbnBIZmpsNlR2REpPcnVscFczMFAxaVJUQW9ZYkJJUXpqOVlzOU5oMEJianZDRndGQjRS'@; put 'cDZBQUtHczJKY0l4S2hjSWgwUk5wVHJUWGhtbVlaR2hFRFpXT1VlMlEycVJRS2ZBcXdrRm1KVS9rN1dFNFlaL25KNVQyenZaM0QzY2M2T285MWo3WDN6dlpjMGRjMEVvK01SRUI3aUkrRVduWWxVdE9SeUs1MFlsZUxxV1UrMjdYZjdwakxwcVpqc1psVWJ0Ym0yTitablcvQnQzdHlmbDlIWTJP'@; put 'SEw1QnJJTklGWHo0UTZ2Wmk3TzBPQmZJK3ROWDUxMVhDMFJ2MFlEOFEyTG9XQ0ZsTFZvQVVPTmd2eHpsR2k2U0ZldjZORFhUSEFhK2ZuYjlEUG41UTBTbkNkbUg2aHdJQkM0WEZPdlA4M0thVDcyTDRzSU9kZkF2REF2TGt4cE9Yc1VFNlEwOWV4Z0Y1RDB5bTROZEJmc0N5UnM5SFFWTnlVcWJP'@; put 'VmlySTFwdFd0dDdjVkZEQmQ4Q2tWb3FmTDRnV2t3a2hrOVBrc0ZReVFhUlROQTFWRUpFdGhKSk4rY1IzMWxpcGRMTFdTSE9xbkFKN2o4bGEvRHJZZXhXd0RoNEp5SVMvZ0F3WE1INGNmK0Y4TWt4eE40c1dzVVNtQVhkMUQrc0k2RlBXdE45dXh2WXNmazY2QVovRlhabFg4MDgvbldmNzdFTmZK'@; put 'ZVg0WHdCYmVkUW8xbE1jcDJZZTJFNGNtVlZZUHVHb0xsQkpPVDdsRXZTL1B2ejNVcHE5L2lWL1p4N21IRU9MeEtyT3ljR2MyU2hPYSszYU1Yd1c1bnhPeW4wYVpudzE4eXFkMDczMmUvd3R3SThxNUVOWk1lVXdHU21MeEpUTmN6RHg2U0taUXhtK0ZtczBUczJZeStYeXVieitLbDlRUnhlaXlz'@; put 'MTFyczVNdVdJNS8wejczcVN2cHlrNzd3L3ZPOXUrbUVydWJlOHhxK0M5V2h2czhEWjIrcEx4NXBNdE04bkl6cHp4UFVXbU5WMW5aTzEyYmdlNUYzV2pDVmpMK1RyQUFhSFJRL1JjZzRWbzlKMGRZR2R5SSs3MVp3YjEyWUxjT0dRMEVBM0lBUjNseXJveTBDMzV3MGhoZHNCRTlIcHVDVFlvNktu'@; put 'TlZnL3RvMkJjYTdCaEhyM2RUazNVTmdTWTZRMmNmdVdpbmJXQXFTMVVKbkJJdTdKOUw1N1h6U09kamw5aTNTY1h3TWFyRWtXRXhBbHhmR2dBZ0pFUEJKb0N2a0RBeEx0THRKbkdRTENJT2xzZHpxeVRaeVpjNjBibWxHeGxkb0dYcXRITXpxT1BIVW5jZi83WVZWKzU0c2lEUjVOVHNXaW52bTYy'@; put 'SlQ3YzNITzh2WFhRWW00dmk0VHE2OW9EaTUvWnUvekZsZjEzN2NzZnpscmEzOUVmM0dNZzdlbjR6a1JQNnVxakR4NjUvQ3RYSHZ6czBzUmxHYkJERTVHSlpQL0p2cGkzVjl2NlQrNkdRSGloZC9aajh5dm5sdmQrWnJIRzQvWTN2TFk4YWl0TDV6TUxxYllCZHVZTjhQWjE0UHM4U1BLd0dESmdB'@; put 'TXdJWUNDZ3BBYWtPQldyWUZSUWpVcXYxNWZweTJRVnVRcWtPTTlNMnFBUms2eDA3ZUFBanRPZncvZmZmODg5NU56cTFLdjRqSFFHZ0w0ZnhqOEc0MWVDcHRXSXVzUjI0UHd3Z3c2b0R1U2pkaG5PVm5FUThWald4T2xjN21xTDRLbXZiblEzVmprRWw4VVZhZEF6UlhpakFQQmdxdXFBem1PM0ty'@; put 'OEkrM0ZyZGk2UmpMZjNwUlk3cEsvaFVNZm9lTmRQZnRNM045ZjNHM0l1TXRHU0huZFdMN1psNWhMNDFyNTBxdS9YMHFQakhSMWowbThwSDZIeTZ3TkFwN1VvSm9hclhjWXlpaVFqS3J0MmJIQmh3WU5hVkJQd0I2Z0xTN04rL256cG1lUHN2UWNPM0xzNGNLWWxFcm9rTjM3THhNUXQ0N2xMUXBH'@; put 'V013TW1PTG1sZXc5bVd5Tk5pYW4zVGs2K2J5clJIRzFwZzNPaGNIdUU2VmQyWnJVVXdNUU1jZ1ZNSnFQTllyU2I3SUVHNnR1eHFsZ1p4bGtGL1NoRWZuN0pmWXVMOTEzeTg1L1AzelkrZnR2OC9lVGM3cjgrZlBnenV6dUczN05yMTAzRHE4OHgrVDhKODhWZ1BpT0tpeEdWSzFKZFNyTUlvcXU4'@; put 'V0J0bVZvWlI5bmlCYW1XbC9GR1FYM2ZnNjZUMzRUc2xELzRSdWVxMXZDUjFrWE5kaGZIVE1MNEJOWWtCZFh6SzZkaW9xb29CWHhpUWdZN01lQjRiMmN2R1BTWGQwb1AvblEzNlZYVk1lbDUzd25sNVVGcHNCYTBMY2ZXRWFMUk1pZGRxRUVNdVpnTTdxQ2JLV0N4b0c2QVJCcnl5bWVjUk5oTHZw'@; put 'c05MZS9FSHNMWGxqdUZGZG9ERGQ4QUJYdDhsSDJENlJOTjM4R0hwditNNStRamJFbEgxQ1AyZTg2aXc1NnNZVElPaVQxRlhsMEZIcHZ1bGZxa0t0Qm1XbU80V1hrbDRKMWVKMHFJbzRuc3BPZUZ1dW0zcEpkd3FqNHMrekh5c1Z1ckFXTGQ1WkhNUkRKNUpVYVM5cUowRXN1Y1phQ3RRTEdMbUJj'@; put 'Tm9waXlUSlE2UXljbkFMcUJLbTE4RDNZczBaVmdHSmJNSFR6WkVuWHRid3YwQkVhd3pVM2N5SHMxRmRyYmlmNVJpZlpkMHdoejdZS2dyMkQ0YnhGcURYa3VZZE1QTTg4YkpubE9yeFNMTDA2U0Frd2FnQ1JCZCswUjg2YXowS2s1TlM3KzdHdFlyblFTZCt6bnAvWGprMUVzTWZ2MHdMb0Z4dFZR'@; put 'blpZdW1vekU2a0VHblJWcEJvSXYyQTU0a0JVS2tYckVMVUc3MVE2dy9wYUZmcksrTDMySmROa0ZkbHdHTUVxOWdnQlBZTDJJZDFvbWk5THIwT2wyV0RmL0g2aFFKc3M5L1ZzZjlTNGJMZGFLYko2UmtWRXRoVkF6TDhzcGpQZzRqRHRGamVZSU13bmlEcTA5US9rdHgrSGYvUCt4cW1lbnN2L3ZB'@; put 'Z2J2M2o5ODhNWEh6dUl5NENzczVlTy9TMG1jUGRrNjliM0x5dlZNeTNqSjVRSEgySU96TkJId0hMR05ZQlpBcWg2bWJaTjJSRDFzc045c3NabnU1WFFnMDZLZ1QzMVBnUFhhdnlwYUZTVnc5Y0dWUHo1VUQvMGZFRmZNblRzeS9UTTYxSGM2REhKTnd4OHpnNEt6MGZERU1iR0JWNXNRTTlhdHJp'@; put 'UTdNUE9hQjVEQ0hoOWZOcDJMZnR0MXVEOW1Ec1VDUU1tR1E1RTUrZ3pTR0ZaRnNNT3ZjSklySjd5Sk5ZMDA3NDFkMkxhb3dXcHU0cHVtNkJsOEJTTGpxMmtSdllrY2dYQUNXOVAzOGN1Slk4RkNxR0Z4RjhDcUg5WUQ4Sk5RQnA1cW15NkNLS094TklYZWZ6eU1JVnNwN1lMVldieEJzWUlGQlRw'@; put 'dFVZRVlPWGpiLzZNakR6NGtNZEZMc1pRWTJmTXZWNVJMOFkrRDdOSVdjN0VkOGpVVElVeWhJNVpYRFR1MWlRclZLRlZUVXlWc2tyNElvNEl2NEtLZ29qU3NxU2lDb1FtdWQrem1jQ2s3OTh2M3AwSkZiMHhOTmU0OWVmVm5IU3M4dEowTGg0OW5ZVU5PZW8xZGVtVHN4WXN5bFdvOTRPNzJacmly'@; put 'MzlIaDJUL0pRYTNQYzIrVnJhWE81ZCsvTUxpUmxQaGdGR0EwekhVUDIxUlRNU3RtNW9xamEyQXQycFJlb3hmMHJVdk1yRWN6S0xvV081d0EvemtKL08vS0lkWXBESCtQaXJkbVJ6ZWF6cWFLWThxMk5MQXpYbmhrVXN3enp4TUV6VTZhUlcyYndKNldWdnVNZEhjZjc2Rzh6dDR6SWExWDFJUjJk'@; put 'Uzh2c1lPQ2FDc09VdVE2by9ETFhvWHdNK0FiNXV2UVBBL0NEVGRoRXVTNjg3aUlIWUN3L21Fa2FSa3N3VmhubCs4QW9hRmlKaVhHMmVlQVVsa290bGFKSk42WS9uTmVJdmY2aGJ6d3orSld2RC8yODV4dmY3SUhobmlMOTdEVkZkcTkrWGw0bnlGQnlNK050d0JzTk9oZ2FqcDZ5bi9KUkxPT2F4'@; put 'V0lSS0Z4aGxUQ2tnWTJPVDJIZDVJOStOSWw1NmI4bmYvVHFKSjZYN3NjKzZRZDRIdStHZDU4OHRnWEdQZ05qNjFHdFdLM2pnQWdMREU3eEJGZ0U2Z2xReG9RakMwbS8yUG5UbjA5SS82OFBWK0cva2o0UG94Mlhma2JIYW9leFJGWHVVM2l1dTlrS3ZvV0NtODBpc0JWblpSY0RDUDkyL0lDMEY3'@; put 'OGhUZU1McTY4blNYZFhjdldyc3V5Zld2c2diaU0vZkp0V1hCSVFDMTVUUHoxMzdxZmtoNjJyVnVwN1hYdGo3VkY4MXpZK1VBNTBXKzBBWHBKZG9CaTF3SHhWaGZsay85d3lvbW9aOWRmUytkRDZmRTVnK21sNHRjQjBQKzBodjJ4OTh4d2RQb00vZ3grVWNldUM3a2kvNkFEdXpyeVdNRFAxNEY2'@; put 'dGVGZ3U2RkMvTlFuc2dmZCtMM05YKzAwMzUwQUsvZXJWVittYXBiVjNrbDFyNTJHNkJqYkdOajVqT2dRUEFDUmtadldCblRuNVhMdUppTjRrTDBOZkordHJncDVEOE0zVkZoREg4cXhacDdlNzk4WXMrVXJGaDJYKzFncjZ3eStJZ0tvQjQzYUs0MVdZMHpoQklBaWd4ZGZWYWptZFZrUE5XSzJP'@; put 'YUdWdkpkWGlYWXhXUnZWWXAxT1ZMamVZbU82QTIrK3BoNUZjUHIvWGFnQTRJWWNkQUZYczZtSzJFYlZ3TGFCK3FlRXdmUHBFM24waXUrdVN6R0w3eE5MQXpvRnAxLzRGMXlYbHM1TTl1eWM2aUhETlFla2J1eUt0ZTBkYUp5TDE5cjU5c1dTcjVNNjNUVmYzdENhNzVKZzB5WU44c1lBRjBpMTJW'@; put 'cFFScllieHljclJnbHZHeFhTb0RjNDVxeFVoYTZQVjQzWkJUMkRibTV4elFZcFRRckZQVGhXOUh6dVJ6NS9vN1Q1Y244L1hIKzRPelNRU004bjBkQ3cyblNiQzRJMWpZNmNHTzlQTDVFbnAzOUtkVWszYm9jN09nMjNVN1gwd0MyZVVBSGovQnVDOXRRM2kydDRHY2J5bERmTGJHd1lIYnhoS0x2'@; put 'ckQ3cUZnZGw4NnZTOGJHbmFIL2Z0VHBxRjNqWXljR2dyNW1tc2JjZ2M3T2c3bFBIWE4vaVo2OWhtQW0yY2RiZ0xINEVhaHhRREhWR3ZsckhubXoxTVU3R0s0V1FKZWdjSU5Ld2U5dmtxQmJKYkxIZ3F1WGhWNE56R0lKUm4weUpPck81YlRuWU9ueHNadUJPQmg5K3BWV1FxeFROdkJ6czVEMUY0'@; put 'Q3VCRWZ3TTJKNnFpVkNUeUdJMHdRRTA1RGxndkxjNDNxaXZTSHFpcUVxdXFxYXQzVjhKY0REQU82VXA4TXNXSXR3bE5Ia2tUSGUyQ3grTWdCZDdEaCt2Yis2d1ozWExOajdCMGQwcWcyTTV1YXVMUU1YNnM3TUJuMTFUWjdvME9ueGtadkhCeStkU0U5MzRML2Rubm4xQkZHZnlBUDhCUjVCYVRW'@; put 'SHJHc0F1dTBsUmpweUlqc0RLbEJPcDEyQ1RTR0ttWndvMFhRZm1USEc4dFFxQVpsVndkMHRsTDY1WUpZNXZXeTJCWFB1MlZlNTZYOGh6bUdtUE5ZWjMvczFsdnpNelA5cVZTa3dSR285aEZ0VGtyaGIrY0cyMGM4TVVlelI2YjErTm9NcVFFWTBsajhrTGlqcnBMb3RJb2ZFMmdaR0o2T3JGRDZo'@; put 'b2xCc2FGdUdWZkJtV2xGWXcwZ08rVndPSXhRSC9EN2ZaVEdzYUNRQzdNcU1odThtWUFGNlJJc3FPbStjcWp6U2w5TncyTEx3ckc2RmJIMzBxNnVTM3Q3anRiZE9wdEl6S2FUMC9INGRKSm9wZGJlbGZaQWZXdXRaKy9rL25TN2VNWEFqaXZFWFBxUXRDY3hsd1g3dm1VdURkQm5jQitIdHo4QUh0'@; put 'dHBwTUlpKzdZWkRvT3l4cnh0cmlKekRGUUp3ZWExVWZ1VDBqcUFVbkhYQ0FxNTQ4c1dXdklUK2VoSU9KKzNMN1lSb1hWUFRub0U5L2RNQjNxRDBtTkExNitGTXd5ZTNmRCtjZklWa05FVjFBSXN1Rk9yNk1FSm82bzFYVkZ1TmpGM3FYYVR1NVFIRWJMYjViSlk0QVc4aEZ6aXNnalYxWUxGdGJ6'@; put 'NkJveS85dFRhQlBvSUc5OU5jYjRDK0hJNTFzQnBhWXRtNGppR0p4cmdjaHFOV3pQR1hMUnVVN1hUWVJYWXJIeUprMVk1S3FZODZid3p5Z3JlRWEwb00vc0Z0emZmbjFwZnlwcy9NZkJwTGQ5VVR6S3JMN1FOTTNnRFN3RHFleEpHOTRvTkJnM1FHNmV5VzdvYVZUOFJyRXphWXlyb0dDOEYyRmIv'@; put 'WU9MTHkvazhicHJDVmRMUGZuWDBmUURPV2h5VjVSYzludmZEdUtyZFcxbGk5NDRCbElCVnlHMjVJT0N5RjZYRWxvWnEyZTdWYWdWR1hMb2xNQVoxT3Rlb2hzYjk1SFAzb2thdllQVmF2VFlEVUZIUjBlczIvSksweTNnTDcrUys2VmgrcUUyY3lnL1N0N3gxS3QwK1o2L2MzMW1FRWhQNTlVK2lI'@; put 'V3VLZDZaQUpCVndVdGlFazhLZmdaUDJ0NEdUMmxtR2tncWZISVI1TjltYnJvdmFtNDYzdGpkZk96VThmR3B3OE1iaDRSc0hNNHZaN0dJbVM5K3pwcEYzRFEyZG9oSUc1RXl1L1hBdWQ2aTkvVkN1L1ZDN3ZKNXA0RGw1V0UrSmJCYUtaZk82V0tZQXN1S0x5bVlWTUgrV2JKWitUUzRzbDhobUtn'@; put 'OW5RQjRLVzhoRG9VZ2Vyb3ZDVVprdmJpY1BoWXR4d3JlUWg5clZTU3lzQzhSbEtiUkJIbUkwRGZpMUFHczEwU3c4T1RxcjR0ZTZKZ0hDUTdESk9yY2xrN1FYTU9wdlRneTA3MDBDR2I3U2s0dFBwNlVmRWUwbDFJNEQzZVJwR0RPd3BiM3AybXh2QnBEZkZ5NjJOelBGNXFaRGtVelUyaVRzMkw1'@; put 'OVZkU3pieUU5MkRld2Z6SSsxUm8vMEZ5L2M2U2xyMnRuZGpEY01wc3lOZmxpdlMzK1lOVHU3c3MwOS9ycjNZbVdxSyt4cVZydzVjTGgvb0RNSS95d3hpbnlVWkRuY1RIaXhEcTJiOExkVEZraVdhVE9VNENCVHFkcUFFeHVXaHVwNFBUTGVxaWc1SDBBUjZKdS9Fd1dUOWxhcTFQOU16UDU5N3pI'@; put 'VjIycE45b3JoWkYyUEpQNzBJZHkwZ09lWmxNWjQwMHc3MzhSclV6UEhNMHVHZEVDZDZHelVmMElVZUpDYXBLR0hkbTlOaS96Y1JicFJaVGR5bGE1Z1ArTGtuR2JTdFJ3M0c4QUJRTlI0ekhwS1ViVWVGamVMK2pWeEVhMGFoNkVhcW1wdW9GZ1lSYUZWVFl0M1RzZWYyekhxMWtRbmlQNFVTcERN'@; put 'TEE5eEZtaGY2bU5LcnkxamVydHZlMHZNaDk1ZisrRCtROStLQThqVHVDSDZHdjFEWHkvTkYrd3BmRWZZV3lXZDFQR2E3Q0dzamxxNmNEWUhDbHlnSUt0U3ZIRUF4YVBOWmgwWnBPOEZaKzc5OTdoYjMxbCtOT2ZIbjdtdWU5L0grdFhYM3h4VmZvakhiZHViWXk0WUZ5Qnd0cW9KN0Jrak1FQVZv'@; put 'WXVvS0diVXp5YkZwdVhvYUdNaGQyWVk3c294L3hoZjJXdHQ3YXB2UDVmKzUvNVV0K3Zxc2F5andqWkNxZXJqNWlsTHZ6czZwT2RXU3p2QmRnbmZnbm0zTWFPRmQ3YWpzM2dQdWxaZklmMEZCNlFqclhnVDNhMFNDc2RiTnp3Mmg2OGx6d0JIQVZnNUdKeW9CTGpvVWFXVlFRTjVoV0N4V2hTY0ZB'@; put 'eHA0bmhMZ3pzUDAxMUtacTk2U3duZHFjY0ZPRnBHSnpIcGxsL0l0c1c5OCtPYUR2eUx1enpCN3pZbGUvUTNobnFUMzh3RlcySnBXN1A5QWYxY1gxTm92bU9lTlpremlRK0hFN1U2T013eTJWcmo2Szd0N0dKcVlTOUxKVlNrb0tvLzJrUDNzL1dIaEw5ZW1iTENtQlJObUk4dUo1V3QwUkJOVW16'@; put 'WlFsdkN6dEJiQVRsZ0g2V3h1cXpkYVFXQTliYkczWHdDU2NTWXlzT0JIeHN4U096L25oYk5nRTdlU2NzTnZ6aGVOWnN5c2J2YUthTDFRZjdNN2VuWWkzUjFBZlQvU0g5MmhycXdjMzROUDZDd0dQem1pVDlFaGt1SVB5NDlFc1dKYWF5WnRmYUhQb2lFVlI5aksyT0NqelhxSnBEWWlVbCtoalRp'@; put 'ZVJrTHRBT2toOVY0cW0rWVhPQ0NHcjhkSFVIL3BVcVh4OEYrMjBjMVFCbEFaZHNxSzl4VnpsdFZyTzJURmFDMUJSZFdYbG1QRWlvbHRHRmhzdTk2UmhSYzNMcFdkS2tYSHJHUHJDWGdEdmpsMlpqWXY1SUxuY2tMOGFtRzhOVitVWnZkMVZZdW1tK3IyKytJY1IxOXhySHJ1cnR2V3JVS0haeFFV'@; put 'OXpkVDBueldzYXFwdXZQaW5ndTRXVGN1NVVGaFlhWVhHdVBsR0VvNlZKR29pbnVaNDhIdFppQWt5VEo4emx5NVI4bXEzQjgwVnU5MXBVSzlqOFB0RGZxS3JrdDN2U1daWXR0OUg4ck1VMHg0ZEVKR05ITGdjeWRNZEpWN3h5SVFlYytzVVh1N3JxNjE3TTNkNS9vbE5NUldOdDBhbms3YmtYTi9p'@; put 'ZUhOUVRiTVBJZ01IMlFEekxOamlxd3dUVUZBM2hsc3RZV3JhY1grU3dXeTFxQ25hbGtTWmhzM1I0dTVyRUJ5OUc4UGkyaDE1NTVaVStlRDMwUitxdHd2MjVQYm5ycm9NM2ZDbDFXYkh6NnlkNzhCeDVnT1ZCdERJdlNaQW1DZ0l5TThmbGtwYWp3TUtUVzJRNlVBZEtzU0xkV3ZUN3Zxb3FvZEpW'@; put 'Slp4VFBza2UrdW1xcEwvTG40Qy9ZWlRHWDhaL1Y5bUl3MXBVeWVFd2VsTHgyOHppYThqWnQrUHpvZmtLM1RnanZVRE90cnhkbjQrVDl6N1JkelpMWHE0NEkvTzY0TnBMZ01QbjRMUkJmMGRVZkNKeW1vck85MUF4eHR4MnpHMGJZRklCS3pwTUIxVnBxUC9XMkwrU2F6dmM5ZHYwaldrY2J0bWR5'@; put 'KzF1V2EwblgxemRKZWRpL2dSOUNuY0EwT3BFZHhHWElKUjlUQllsTUdhS29MZFlYYzFNa0orNHJQVEQ2bEw4V1dzaWVvMW1RYUpyMmQ0cW5UYkFaYXNCeEplZThtZXdyRTFnV1RlQU9nM3lXSE1GemJZQXJyMnl6bGdQMEdGMnVrVVBhd0tZZFhxN05nc2l6U1YxSVpmVjUvTlJ3VTFCeDZMUnpM'@; put 'WlZ0QnZxdXdMaGxVbStGR3dMVmNVcUxiVStSNTNkYWl1djlDU3FOUHFvdjhZWHF6QUhLUkpZamNKRURyT2FoaFNjKzdQczNDTThQZmNJZWxySnh4akIvOHo0bFErMWk5bkdLcWRKUStUd0FrRjByUXdoWlFZRzB1Y0FVa1Nleit0MjJhMEZ2RVRGTEV4SmpxSnVJWjJxZlFLendTR0ZyM20yeUNG'@; put 'WjUzUFNtUzJ5U05nZW1OK2N1NzZ5RWRaSzgzVDYwRWZSRjVEK0FzSG41VFNkTGRvY3g4NXQycHhVMjJBZWZYR2JOaXVGTm1aMHh6WnQ1Z3B6SFVXZms5dVF6VzIrVVJqSGlMNjlzWTJjSDhFOXhHakJnZ2JGZm9IeUlpYjE5UWdERjlMRE9lZzF5d1pna0xwRjBDc1ZmN1pXMXB5WUdXV3B0RUR2'@; put 'Q29WQkdZRmpZalZpbnFaSkZLQWhnQ1ZoVXlQbjBtdjdSL0R0UkNkNWZxYUUwR2xDUlpmMER2d1I2WEtreEwxRmxxZVFRYStMN2t3NkdORHdPamRnYWpVTm1ia3FBSS9MTWVHMEN2cEhhQ3lLdzFmQUc5SzhRL1V5T1VZUjhIVEZwQUxwZHdEVzdTWTB5Y1pHTTNOb0g0UTFwOTl1SjFwdkU5dlFp'@; put 'VHQxc1Y1aWVITUhtZzFGam16UkQ0M1J0Qnhqd044TTFHY0ZBNm9HcEdVRlZ2bkRaZ3FVWmVoV3JsQ3llRzFQdVVaZnU1azhxK1kvUHI5VmprWTh5M254UnFwdDB4LzV6SjZTcEEyS1R5eUhndUYzU0tHQjl6Tjh3a1Y0dWJuTmNmVHdObTFPcW0yQUJtN2NwczFjWVp5ajZDcTV6VHArcjFFdDdj'@; put 'TnNyb2k4bnJVN3Rob0hWeGExT1k1c205dXMvUUxHZVkydEp5S3ZaKzF2UzlyOE83VDVJMXVQUE03UnRYczJyZ2RvcVJuZVhtQ3gwbHFhemJ0UjAxalVZeG9vTlJTcEdoVVY4RkZiVWNOS3JlelF6UXd5cDJ6ZDBHZkdVMUpRalh5Z3F5UVA1aXQrVGs1NEdSbFJVMTYrZy8reGtQYUN1L080ZGZW'@; put 'Mk9mbmxEM2xXaWdSd1lERjl4bE5hRko3eWlSSllzVGcxZzFXcmNyNlBsZkNkelcyTzQ5dzJiVTZxYmVCOFg5bW16VXFoalJrOXRFMmJ1Y0pjUjlGem0vZ1hScnZRWCtLdkVSMElBOTNEZXBvYkNVcGxFRWdrbUhWbW5UaHplK1IyK2VlRFlUeWgvbmI3N1dHazV2UCtqdVhJKzFDYzFnZEZ3clUx'@; put 'TG9mSm9HYytHcGEybzdnOUhITDRSRmNVUHZINy9YRi9MR2dOV2xrR3RwclZHZ0FiTDF1VUw1ZmtrY09KRlRKRmNrZ2FVKy9ITTZrRGQrOXZ2elNXSHA2TFo0QTIyMDlFMDhPenEvOFc4dU5UL3ZrWTBDZytjZk5FeUNmZEFuK1JtbmZ2V1Byc3dZQzM2MURMbVIxQW5mUTM2VHNySWZ4d1RUMFFx'@; put 'ZlQ5cWZkTlpvODJTZU0xOVF4MkxLYk16cWxOT2NzblNzNTdjNXZqNlA5dTArYWsyZ2JPOGd2YnRKa3JqSE1VM2IyWlZtVzlsODNWcWN6MTlNWnhOdVVheEJqM2hIUFFMdXV3RXVVb0ZLMkI1S2x3MkNxY2xVNGg0S25rNVFob3NpaER3MS9JME9qNTU1SU1qVk1zUmFQdHBtZG1CZ2RucEJka21U'@; put 'UERjbkdlQlJwdUVXTkdVTUtaR2dJQ2gxdFJFeTZaV3hzdjZ1UjBRYXZQNC9kRXZDd2tVWks3SGNicDlZSUZsWEZULytwTWVsOHV0eS9WR21uclNlM0o3aGtJN3dqTjllM282QmlmYkcrZkZJazVPWjFJVENkVE0xWHUvZG4wZkV1SHJ6dllNZG94a200YkhjK3RTZ0JIT1Y3NU1zQ3hIMlF2UVgy'@; put 'WHkvUzk4VGtIOFAxRTBmUG4xZmFZUDFEYy91bkNjM052OGZNSEN1TWZuUzk2enJrTDdZMVVPd01hZ3VmY1hhRERSVUhMNjBISHhPVWFnSjNIRFVxQ0hldEpEdXZLREtCNDhqb3REYU9XNlVqWkN0SWpIYS9YTFpzTlJNMEdkbzJXRzAwY0ZZYlV0d08wbFU3SFlnaWxlOUppWjNzc0ZVdTJKR0ND'@; put 'aU5YbjlmbDkvZ29BdVJyRWt0TlRTNktyc2dON1UyZ0wwVnh6TmVaS1hwWGpYSDNYZXV1dUdkcDdhWEhvZGZDQXczdDVUMG5zUzdwbElrcERzcFA5Y2hSc29LTmpZR0ZzUFNiYmxjM2tpMk5pMGt4NE5CcW83bWxOZGNvNGxsZ1RXZXd6Z3k2STdrVGMwNkRSYXV4WXAwMkJXcThycVBXcVh1UG40'@; put 'U3VDZFZlZzRoVDdRbENLbnFNYnFicEpnRFhXNmtCcGZzdldvcmUwSWJVRTBKRkNldzJ0QWdYSkJNdk15QXFKbnE4T2EvNUVSWVFXMFdXUytIQ0pJdEp6YWRkV2tkckd1VVI1aVFHUjA0OWVzNk1rZU5zWTBqUmlpcE55VEpUaS9KQk1DemZJdUxyeE9hV0ZlNHVlUDYrMngveWx4ZTBmS0l4ejlC'@; put 'Qjd2a1padzIxc25KZms4VDhndHg4RmdCbUxuaCt2a052L0czejhobzMva2p6K2ZmTHpIOFBINzlqNGN2dWpuMW12cTJnbGZ3L2FRaFR0RWEyVnpLdGFDK29BYUFNMnE2VU1EOGw1NXc3VkJTMXN5QTV6aXphYXBzRmhzbEw4R0N5NXVycTZhRjBrNEF2NGFkNnNLcGtLaVZBQktpRHBTZEpzN3Mx'@; put 'ZWVmeFBpK0tWdzhOWDlYU2Q2RC9XRno1OHlubXdQdHNWREI5eWpsVE14bU96YlpuWmVHSXVReXhmT0xEejlFRHZ0YVBESjN0bVp1YXpxWEMxcjdyR0cwbDVWbDlJN210djI1Tks3c20xNzAwQnZPUllFT1UxVXpLdkdWbUgreUNENHk1MlRuM292VnMrUDQ3T0Z6MS9YbmtPOEwydWVKeW5DOC9O'@; put 'ZTRxZlA2QStSMGN2bDNsV0h6cE55a2tkODVPNTBTRzV3THFHVml0UTF3dlM4RmlyMFI3V3FVRkdGeTJrYlVSSXA1YUVxTzIwV3MwOGtJMTJpWFdZWEJBZHpDQnlWMWFEY0ZLZGJIcHFvUllIUGNFdUtpNXF3QTdGTXYwcExiLzRqbHJPOERYVkpKM05YMWl2WXVBSzhTMG5XRzdOckFZSkxQdFFz'@; put 'TnJsTk9xMEdqM0dXazRKaEt3bk1HeldYRHdlVDdPbnlXOEpXalpvTHNXS0M5TmJuRmlPd21rVXJRVzRaa053K01iQjZmNkc0VzV2YVBqVTRLN0JobUZST3RtQ1RhbDhkakdMOFdMVzVaUmVTK2J4eC9lbmh0NDEwdUlmRGh4SURaMGFhUTJNU20vbWNYdWcvVkR1dSsySGM0R0JHdWs1UDV5UkhG'@; put 'ZWdaNzFicGpHRkpqYytwemp3c2FMbno2dnRNYit2dVAwRGhYR09Uc3ZQWlY4NkhXZWZNczdIaStKeUY4dVorYlBpY3NLZkg1ZmpWclpJbWluYXh3UEtQbUIvTTZqSXhrOFUvQURIRkwyK1dJK1daZnJaZ2t3L05sTGNkMi9CUDJCUTlMYlN2aGNLY3Q4d0xmT3VoclZwemdxNm1oTlZVL2k1c0k3'@; put 'VFk0S2RJRkc0RVpBeGlCby9SNWtPelM2WEdGVzFLQ3ROUzZtcXJxcjJDWUxnOEZEWm9sVzhOOW1nWEhRaFMraldySkZ3Vm05THZNTXU5QmNxTUdvYVBiVU4xaC9jZi84ZHRibUVzOG4wS1ZhTjBlaXViYkRqSGF3bWcrWjBUWk1jMEVnemlMQkZjUS9WU055WUtpUThpVVVObko3WFk2MittU1pC'@; put 'VTZXRTF4TytVSW5xb3V1c0FDdE5yMWRqbkVvd0RkWWREb2N6NFhUQVp3VTFKT1FwQXlPOXNQTDBObXFJWFZBM0V5aEsrQ0k1dWkyM295VHA2L0FKZVg4L1Y1Ty82QzdkVVdQZnh1d3ZtaERHdHZ5UlFoYVlhaTk5Z09uWUFVWEgva09Kcmk3blgxRjZHRkRvNFpORmZVK3FmYkVlUGJOTjMrZVZ2'@; put 'Z1RyRDY3YmxvK3d2a0dsNzgwbGVFUnpyYjVHbm9RMmc2eE5CV2p4Rm1TQU5vOXpGdG9JMmlqMk0yRG91NUdhbjNVSWFMUWF2aGtRK3l3YVl0RFRha3N0VFp6V29tVTRtc3BDQlpYQzU2ampuUEU5SnhsenU5M043cVlnallBR3ZJcnIzRnVTcDZVV3dxUE40ZWxEUFJ2aTArZlA1M3ZXVUhHUWVu'@; put 'VDFTMFZKVzM4YjYrMWRmV1JEbUxyZ3gwZ1UvQmpIWU5sYndCWDBqN01GL2VQWUxOcktCNExMMFBlMjZhdnFMaHkwVWVwZGdBWm92VXNOOWVwVmdvd1FNSzNYVlROSktZTHppNGpuRlljZVpYY1ZvMHlZQVFGWVdYMXhEYW9SYkY2YTBTMVFYRmZyWUx3cVJqdGw1TThXRmNaTXl1aGJROUc3Um5x'@; put 'MlVDWERrRFVNdUJ5cVljVXROSTUwbU9XejBSdGZ6b2hXdncvNGJ6a0d4UlEwR2g0RXJ3YTBZQSt0dVVNNkVMUTZ6VEtOMGFnSHJWejl3QklRR0psYXFZajJxMDBaQVBEaHJYclFiTEpLZG1WTXpPVzFCdnhlTHczeGFEWnVTRmVTSENkcnRMeWFJM2Q5WVpNR1c5bW1UTGtXc0N0c1l1QnZGS09o'@; put 'c2xiWnVjTkdpdFBtd0lKd2VNdnc5MWp5M0JZK01mMFdQckhOK3F0ZWtaV3NUb2p4OFdhRmp6OWIwbGZPZmFOOGZFVG00eXRLWCtuWHRNWkk3Z3Y0VTBHTVRFZGk3VG5xbElxaFBEb3NIb2pXRXoxZjVhU0dPSzJEUjBORzZoem05Sm9WZzZvb2xRUDE2WFFDZFdzeU5KTGpqa3R5M0RFZXArNnVl'@; put 'RDdlbFUxWHhDcGk0U2F2cDZiYWJxVnVyeXFUcWlUUnExUmt2Y2o1SitiVlliZXJ4bHNYTUFoT3ArV1hieXZGYnErbnVyb3Q2Z2lINk9VbmMyODMzdzcwK2Y4TitGWEdhRnIyQlI1YiszaUp2L0JsYUtObE5DM3IvTWZ1VUhJRzFxYlJENEV1clRUT1RpV21WWTZ6cTJYb0ZHU3F2UEdCZkdUcDFx'@; put 'cVVBZDFDSmI0ZlV1eXJ0b3N5d1ZFeFVSMHhrYnNWVWNoazlOb2JNTmNUTE5ibm9UZXEyRzFFdzNtd1hMWmZPREpWV2F3b0VBa0xFamZVZ1JYaXFEQnZtVUpuVlJma3BPVS82cElXcU5WV1ZWVTVTWmZtZFZ2eTlmTGkxRmlnVUxYcWdIWFd0K2g1L01mVk41U0ZBZzdTU3MyL1d2ZXRBZy9qTi9t'@; put 'R1dNNGQyR0xhUW02Y1VKSWJONXJQMHp3U0dHOGY0UFFWSUVjYUFYY1pUdU52eVhZYlBPY1lyazhvejI5anoxa2RGcE9iY1VWdWxwWFFENEFFbDNPM1FwdEpwWTBGUFNxM2VWUnRJOWR6UGFtT0ErTmZ4V1FjTHBKeGRKd3dhek9wdExsdVl4czVqNVowQVk2WWFRYWJ5VmhtQU0yZTB4TzFzbTFU'@; put 'a1pnWm1lMkZJakUrVFpFa2ErY0YwaVgxN3RramZ1UWpYVjI0TGliRzhKVDB5cWc0S2ttb2tLdUxXUTVqZzFockxPTjFWS2pxbGVxNVNxVVl4TTR1ZThFOGFMWEt3QmhQNWNmSDgxUDRRTFAwQW5hR3hCQStJajNaWE94anZsNzFNUU9NZmxVQ1I5a1dmRm14QmFuK2NaZmNGODdtTDltWnRTaG44'@; put 'M3U1dmZScm1rZW90b2ZuOXhYTmRiTGd6OWJEYVd3OTEvTUZ1MU4vREJYNWxSTUZ2L0l4OU9VU2ZVVzJzODRXYk1kamg5QlcvbTljanY2eEpPNjIwWDRsdVB5MHJET25nTEUrQytkcUFZdS9YY3dXcWxEMXBGQ0dhcURsZG1xZURUTTJhcTAxRGh0THJKTUZzV3M5dktheVF4cGhXMWRiL0xJb1h2'@; put 'MkgvZmNjT0hEUGZoS1hQRHZsZ0k4aWpIZC9ldi9TM2Z1N1ZsOGcyWWxiSnlmZVBhVFlsZHdiTEo4MGlkclJsRGpoeEhvZGRkMHhyUUU0dlZhdldUWVppRTRuVjFXNlJvMThHVWQxZXNWbGwwcjV3SXBJdGFkeTJZd3Y2V3VOTk5PVVU2c3Y0UE9iWWRFYkhYYnJmTHhJeURaczR1aElsclpjaCt5'@; put 'cEc3cWgwZnV1a1VHV2h6bjhMcS9udXFHQ3pKV09GV1ZrNGpNYmN0WEhlM3NtNUJ6TjhXNXhUQmEreFdtYWF2NjZJb01Qc3JOTksvajdUQWxleUhtSDlHeG5aZC9QbUtLckFmNGVaUGliVnZEMENiazk0TzhDdzk5WjVibXhhSzZUNmx5QXYrL2RjcTc5REg5blpmeTF5WE94dWppMnpveXl6cnRL'@; put 'Y0YvT1phVHJuSlBYcWNSV1kyc2lxNmtUMFJ1aU05bmFVSy9SNmQwMDZsNWRDYUtkcGxockZQOWpkR05jRmZURkpSRHNEdGtnMHVLdEE2dXhUWUhWaS9laTNzdjQ1a0RweGJySlFkOHRRcXRiZEpSanF5WmZ4RWRURzZ3V0E1Z0JQdGs5dVUxMEZWKzhlcEJFMGtkMlZHd1ZhQjI4UHJGOVRlSE44'@; put 'Nm1TZUd0TzJ4Wi9peXBEbHBjcXNyelVQSnhaVFd0TGZaMUd5MitNaFd0RzNLRHhEbThaRU9kNTNSS2l5ZUJvM1pkeDBZRDRSVHR0R1JDL1NLOXRBK0tsL1pTQXVDOGNlbnNCY1h5eEJGejg5S0dSTFFQamlhWEF0bG01bzd1MGpTV25GYXpmUGsyM21ENVBxdlFKdEgxc0cvcDhYcVZQck04cXRh'@; put 'UkFuN1NXMUlNZUZ1MVZjTFRJYVFhSllLS1haNDE0c0VZOTVDYUVhSXJwRlN4RVJVNVJSNVdhb01GME9VTHdBWkRrYnF3ZVZqUHRvRUhjNmJmUlF3eHVha3dMQWdrK3Nxa1BpeFRRNG41R1dQU00ySTFUVzU0UXRidHArU3VldFc1eENqVmx0Q1kydGduV2ZVVTFzbjZnQVpyM0hFZlBpYTRtck9l'@; put 'YTdjU2dqOW9JTVpSRVRpSklxOUhlWElacGJZL2hDaEJlQUY1YTJjTnhta1dkWE45VEVrQ0pydmZSRzhqcGkzVUNjRzdaWGdtbUZIWGpLSkFzMEMyTzRpd2Iyd25Bb3E2SWJTSXF1RFJEMjhrd0h3ZEtjRGVTWGMvYWJtandWMndSUUJsTUZtZHl4NnAwZmprbmk5VXNNeHpOS2pqNnpoSWNwYm5t'@; put 'UDJDNjZyeXNxNUttRW4xV2p2MG1DckhmWStoanBib3o4ODJlTGZobWp3Mmdvcmp4TndxeFpTUDZWa25jbVBWbGNVZlozMnU4QVcwVnV3WTk3UE5iOVFXTHYrQmJ4dVZMU0ttM25tYjExbjdVSWJZNWdDV1Z3OG1DNk1QY2lISjdoWHBIS25QN3JodEYwTVB2cS9MNmZmSmRGckxYZkpNM1pGTjlO'@; put 'ams3ZUdiS3JLc3FlQXlxRGx5dFZHcVRjNnd1RzFzYUZCZUJ2OXJ4eVJQRmRkc3M3MzZhN0FDN2g2M1ZBTGFpSG1zNVA2YTNFaW5KL3RSZldVaS9MM1pYK21oTlRjaERJOVFiL1pRYmMvSFhiVXF5UTNaTEZxZm01OWNOVEhmVU9MQTVTYjlneGpGOG9mWGdES2ZhNVZ3QlBGV0NDM0krUHVWN2U1'@; put 'Zyt4S1B2RmVVSG5GVHpBK0Q1clNWOVpSLzQ4Nm9QSFBPTHFLanZYQ0czNENnNlZZSUxyRTZiNFV1WG9qTTlWREsrbkFOUDhXVlIxcGtVWEpQN3pxbDl3VDc5N2paOUgxRDZVai9jblVWOVR4YjY2dEVOMi9SOVhwMFg2M3NabnJMNnQxdmg3Q3VvcjRCbTVkSzZCZVlyRU5hdk4zRXp4S3hBNVZa'@; put 'MnZZbHVVM1didnFpcTdhSE5wV3h5L2l3ZUljKy96WnB0SjYzWi9selhzZlRVempSNS9yYkZ4YTNIS05ScEVIUXowTTdWU3BXR01rWTJ5WHU3MHp1bjBzZTZ5UE9MaTdjcFk0emp3K1FDdlcyUmpkRkk4d1kwMU5GVm1rSnJSaVkvVjBoSVZ2Ykx6SXY3eCtwQ2pteHRiZFlScWgxckl1TjFkU0c3'@; put 'MDJrUDFkYkxjK3hCZHpCL1NJRE44WmI1dVp1em5lY1Y3OGE2TjBPdWdZUjFtemszeTZkdVk2UFNZajZhVWJ5aXhSekczSHloOEl4N1cxblZ4ZmNrMzlqWkdRN0RxOXJucTNiNS9TNHlMdjhkN216eXUrU0hjcDd3TkZwRk5pU2dkcmFDdU1yUGFLVWtBeUd0Y2dENVBzKzRHVWUvbVpRclIzd09q'@; put 'WkpacmR6dFcrVGN2YUhENjI0cE9IUWZaSjRibStMSmxlK2RKVjM0REhrYWR0N0w1czNhQUlaNjVzK3lZandFUXBEVmVCQ01WdGpOQmZOcWNUZmhKcG1TNXdCUnFGVVFBMUhOVGIxNGxPcllkQkgwYWd0enZVdHdtRU9tWmo0UnRMUGZnMmI2TytteldDdktoL2hzcC9vcG4wYzNmcHpsZy9Pb21x'@; put 'MnFRZ3ZZT0VTdDFLdXRsa0lldVpQMytwWEVjSnp0UFpzaEwxZmM5R0dXSUk3WDVxUmZyejI4ZGo4cVJ6NDJncXQ4aTJvVlgyRXNmdU5sdUYrUWZaQTJWNDMzRGRtM3lQeU1CZjU0dmNvZlVSL09iTU1mWDFiNUkrcERUeFh4MXZXK3gvR1hMOXIzT0JhTCtzNFYraDdGUXlYOFVlNzdRS0h2VWVx'@; put 'M1pQY1RMdEE0UW5FTTRzMDFXUWQ0YzAzUkFSSnJ1Nmt2WC9aTHN6YmZmRk9TWXp0dlNrb2IyYis5VWhqSERMeHVhLy8yMHdYL3Rua2NiWms3MXJlRmpyRXh6a3RRM3dubGZsWDBuOFNBb3hlL2YvZ2ZwRGlPZHFoOXVQYTMwWWNqYjBwcW4ySDhiWFNCM0FrNDAvb3dvTXZRcHN1NFhac3U0NWFy'@; put 'aGhZZWtiSElxanE5WlNGOWdWNm5YRzJuMXltVFcrbDl5aGEzZko4eWhTUCtGbnFNZkFxZ1VJR29MR0ExUUdTa1VBTUU2OEFuMlRwcVVmc2p0ZVZFWFlxWkZkYXorK0xaWXF3YnlqNDR4djRXSHZWVitTenNScEdOSzNKdXU4Qi8zV2F0cnRKMTQrdklweXFEOHJyWityOEs2N2NVMWs5UlN0MEl2'@; put 'WFByY2R5TlAvMm4xVkg4cjc2K2VMeTNOLzY0L0JIdmsvRm5HUEFxaEhZQ2JnaUFHMTU0L3lyRGNRSGZEQTE0ZWsrL1puZlJQZjNkYUJSbSt3LzVydjZXQ3F3dGw2L1IxMk9kQ1pjWmRXWEZWKzlielJiT2FPU1dCRU1scnltK3NUOTlrWTdzOW4yNU4wOTdjOHE5L2JrdCsyMXhjMzlKWHpBME1t'@; put 'TmpvcWplNEQ4MlB6YTNhNmM0S280TTlDZTZFL20yekphMytkditqTnY4R3piOTdTdHEyNUQ1azIvNng4T0R3Y0lmMGhQcXZmOTM1LzdVL3dIQWx2OHpnUFgvS1FDOVZ5aU4xdkRmMGRzbUh0WmluQWgzWXlmQUxuQnY1aE9meUx6K2RkTmpUNWlWTzUzU29HUXI3VGpXTHBoMTh0RlBmQ0w5MmMv'@; put 'MlB2R1k2ZXZmWUxMaVo4cWRpbkUwS1k3VnVJbEdCK0xQaU9uTnVCb3FDalhjc2dHVE1veU5OQSs4a1BsdndrYWo2dWxndG1Fc0VtNXVFaXgrc1BrRXE5OU1mVlNGZXpxQ1lCQlMwd0krOHFTUWJLZWptVVFBWkNkODBQalhpL0tWaTJPM0xUdjJUWEs2WFlkY1IyNFpWaEwrWno3a3hjUFNaM2tO'@; put 'WHBMTzEzOTBUNEpkdzloN2Npam5kSHJxYzMyWGRySnMvd01UdVZwdnRTMDNlMEtXN3poT3l2Rmx3QWQxRDROQ2wyQmNUNzRwOWpKNlJ5eFRkRURWNFlBcmV3UVA0VlpYNll2eG9TVEFwVTZwSmRkL3lXVTFhMGxpaTB0U1NvdkM2OTZxS1B5TjVXMXJ3b0hPNVRsQkJ1Q0VFbHQ0Z05HLy9QeUM4'@; put 'bnc5OWlrL2Y3N3duTCs2K1BrRDZuTjA5TkxpNSt2ajk0RmF0Zjc4YktIOXNmMUlnY0UwdVF4Z1FHTUYraTgxZWEwWVlGQmlpcW1RV0xmREFwdGhjcGxzbHhVRFJySEwvck1JUG9xTk5sY0VJc1U4KzRzTldRbnJhNloydGJ3WHNMMy9vbWd2VHhkZ1lwNlQ1U2hOKy9rSXU1dEN4WVdrNEoxV3Jx'@; put 'T2czNi9Od1BmYTB1KzFxNVBvZndBUGZueDVBQUFCQUFBQUFRQUF0Q2NBd2w4UFBQVUFId1BvQUFBQUFOUEJuWVlBQUFBQTFMNm05ZjlXL3U4RVdBUEZBQUFBQ0FBQ0FBQUFBQUFBZU5wallHUmdZRDc2N3pZREEwdkgvN0QvazFraUdJQWl5SURSR2dDbGhnYXZBQUFBZU5xTmxFMW9FMUVVaGMr'@; put 'N2s1VUx3VDhVQlNscUVsdWJwSzJoRGFZMGxCUmJiVXJTam5ZUmFrV2hDeGRhWXJXNkZ0RzZFeEVYWGZrRFV2Y3VCYkh1Uk1nbXVOS0srRU1VV2x4a0lTMDRudnVhcVhYU2dvSEROek81Yjk2NzU1MTVwb1l6NE04TVVRY29BOWZjUjc4OFJGVE9JKzdzUUVJZW9Ca2YwVy9HMEVQRnpRelNNb3lz'@; put 'QWZKbUNpa3M0b1M1Ni8yVUowaWJJdmJLU2JSTER3N0xCRlZBU3M2aFcwNXpUQUZKdmJiMUhNdTZMbjBQbVRNMTdITkthSlV2YUpKSEdKYzUxdGJJQ2RZVnFTcnZYeUdQQlY3djRodzNNU2FIME9jTXNJWjFUcFQvMzBEZThoWnJ1SGFaUmt6ZVkxVGZHV3BHV0o0aEl2ZXdYYTdqbUxtQVlhNTVo'@; put 'V3czbjlFcEJlKzNTU01qWGVpUUszQmxOOXJJVG5IUnhwN0RNa2tmc2hoQ0JSbTg5VjdJTmd6aUhYTE9GSEw2WEs3WmVsZkhtS3YwY0JFeE04bHhXZjZmWUc5SkhKUTk3RzBBKzBWWWN3ZEh6RlpjSk9QbUpYcnArNGlkczBoUHVFWXppejZ6eEpybnlOaDFqU09LRC9ROHlmc2xKT25YcWxjYnlQ'@; put 'bE9xbi9xM1RwaHdTdXJmK1FQNnB1ekJTMitkMEhKVG94WXFuL3JwZjdSWituQUtldlZCbkxLcFBiaS9pdFV2RGYwYjVEOFNuMlNTOHlGNzExUW1ndGwxdnI3VitxZitxelVmblhPSUxWM25kK241b2o3WXZ1OXpUMVZQM1JObTFHenB2dGRKNzJxY0wzcVhSTzVRaDdYUG13R21RUE5vV1poaldj'@; put 'Uk5oSHV2YzZyL1FWb2ZXVnZhMXhHTXRUQ2VabGJ6VTREbVdYTlV3T242eG56cWZ1akhtMUMvUVpzRG5VUDFiLzZ0NkI1REZJenpteG1yQjR6ODJVeVIzVlRyNW5EWDN3R2I5Ui9aNUFObnRiblpHN2hWRmZQR3l4VFR3SHBSY3E1akJUUEJIc3VtSGx5bnB5bHZ5VmU4MXdLelNCaFdoR2hZakxu'@; put 'VlcwK0hJNHQ0ZWgvaVptQit3ZWJQL1VNZU5wTndsMUlHZ0VBQUdEenYxTlBPL1c2OCs2NlgrOXVldWVkZHhFUkVUSkVRaVFrWWtqMEVORkRSRVFQUTBKa3hBanBJWHlJaUJnakltU0VoSXdZSVNONmtCZ1J3d2VKSGlRaUlpUWllaGdTTW1Uc1pRL2ord3dHdy9JL2U0WnlEOUt6Ym93YlQ0d1BK'@; put 'b01KTjFWTmQyYXJtVEsvTlUrYkQ4dzFpOUV5WjlteFBGcVQxaVhyb3kxcDI3RWQyczVzOTdhT1BkV2I2TTMyL2dRZ0lBbmtnQkxRZGxDT0ljZUNZOXZ4elhIbnREb25uQnZPbG90enJicDJYWFZYRzJUQU5KZ0ZEOEJ6c0FsMjNRUHVVZmM3ZDlVRGVxWThaVSszTDlWWDdXdERITFFDZllhT3ZV'@; put 'YnZtTGZndmZGcHZobGZ4ZmZrNS8wSi8zdi92cjhKVytFSmVCNCtnay9obC81WWY3Ry9qamdSQkJsQzBzZ0hwSVRhVVIrNmlPYlJJcnFQSHFQbjZIV0FDandIL21BZWpNRUdzUVNXd1JheFBIYUozV0F2dUFHSGNBNGZ3cWZ3R242RnQvQU9BUkE0TVUxVWlPL0VENkpCM0JKUHhPdkFKamxJeHNn'@; put 'VW1TSG55UlV5VDI2UTI1U2Q4bEVVSlZIRFZKeEtVeFVhcGhrNlFvL1FDWHFTTHRNbjlBVjlSYmZvWDB5TU9XWHFUSk41Wmpvc3dPSXN4eGJZWGJiRW5yQTFEdUkrY1VkY2xidmtycm43NEVyd1k3QVlQT2NSUHNUSCtCU2Y0UmY1UEYvazkva0czeFZBSVNEd2dpYkVoYlF3Snl3TGE4S20wQlJu'@; put 'eEdVeEp4YkVMYkVrZmhWcll2M05ZV2d0dEJYYUM0ZkNqZkJEK0ZXeVN6NkpselFwTHFXbEwxSlhCdVdBTE1uRGNsS2VrUmZrbkZ5UWQrV1NmQzEzSW9GSUtwS05WQ050WlV5WlZUYVZQYVdzbkNvWFNsTnBLUjBWVUhGVlZFZlV4SDltMVp4YVVjK2lRSlNKamtjejBZdzJvYzFwV2UxQmErdEdm'@; put 'VlFmMTZmMFdYMUpYOVhYOVlaK3F6L3B2d2VCdjB0QXZTb0FBQUFCQUFBQlBBQllBQW9BUHdBRUFBSUFLQUE1QUlzQUFBQ0RBUllBQXdBQmVOcUZrczFPd2tBVWhjOFVKSURHS0RFdUdoZDlBZmxUSWVwU3cwWlFJd283RWhBRUlsQXR4WVRYOENuMFRmeDVBZDI0ZHUzYWhZZmh0cURCa0VrNzM4'@; put 'eTU5OXk1MHdLSTRRTUJxR0FFd0NHZk1TdFlYSTNad0RMcXdnRms0QWdIa2NTRDhBSk12QW1IbVBzbEhFWmF4WVFqTUpYbnVZaHRWUkZlUWtuZEM2OWdUWDBLcnlLcXZvV2ZzRzZFaEorUk5EYUVYeEEyOHNLdmlCcm5ZMzRQd0RRcU9JQ05Hd3g1NGphYWFNSGx5Ujc1cEhueUZEdXhVS05xTWE2'@; put 'bFkvcmtJdWN1cy9yTTdTR09BaHJNYzdTVGpZNUU1WDNITStwTkRLaFVHWlZpUmxLUGZWemdDR1VjazJaNWJFNTV6S3RoL2FsUzRzcGhURnVmMFpxcU9xOVNpWFRKMldiTXFQTVQ1amM0ai9McTFLcmtVK3BEWGQvbDN2OTNNL0p6dWRwRGd1UHVsN090ZmJ1K2E1eWF6YldYMDVlc0psV1h1d04r'@; put 'Q1M4bXdkbXIyZFZkVG1vbVpuWTRhMi9TYzVscURWYzYzL1Z2cXlCM2w5T3F4WkhSV3BZblMyR1g3eTNzK1A5S0Z0ZU1hMmgvUis0OTV6c1djY3NPMmxRY3huUitBR2lpZ3ZjQUFIamFiWk5YYkJ4VkZJYS8zN0YzM1RaTzc3MVh4MTczeENrdWE4ZXhZeWN1Y2V6RVNjYTdZMmZ4ZWhmR3UzRnN1'@; put 'Z1FDSGtEd3dqUGxDUkM5Q2lSNFFLSlgwWHNIMFhta0IrL2NDVjRrN3NOOC94bWQ4NTh6OTk0aEMzZWRHMkFlLzdOVW0zNlF4UXl5eWNHSG4xenl5S2VBUWdMTXBJaFp6R1lPYzZmcTU3T0FoU3hpTVV0WXlqS1dzNEtWckdJMWExakxPdGF6Z1kxc1lqTmIyTW8ydGxQTURrb29KVWdaNVZSUVNS'@; put 'WFYxTENUWGRTeW16M3NaUjkxMU5OQUl5R2FhR1kvTFJ5Z2xUWU8wazRIaHpoTUoxMTAwOE1SZWpsS0gvMGM0emdEbk9Ba3A3QzRuYXU0bXB1NWdUdDRuK3U1bHFmNW1EdTVqYnQ1bm1lNWgwSEMzRWlFRjdGNWpoZDRsWmQ0bVZmNGxpSGU0RFZlNTE2RytZV2JlSnMzZVl2VGZNK1BYTWNGUkJs'@; put 'aGxCaHhiaUhCUlZ5SXd4Z3BrcHhobk84NHl5UVRYTXlsWE1KajNNcmxYTVlWWE1rUC9NVGp5dElNWlN0SFB2bjVpNzg1SjVTclBPVkxLbENoQXBxcElzM1NiTTNoVjM3VFhNM1RmQzNRUWkzaWQ5N1JZaTNSVWkzVGNxM2djNzdRU3EzU2FxM1JXcTNUZW0zUVJtM2lQdTdYWm0zUlZtM1RkaFZy'@; put 'aDByNGd6LzVrcTlVcXFES1ZLNEtWYXBLMWFyUlR1MVNyWFpyai9acUgwK29UdlZxVUNOZjg0MUN2TXRuZk1DSGZNU252TWNuYWxLejlxdEZCOVNxTmgxVXV6cDBTSWZWcVM1MXEwZEgxTXNEUE1nalBNcERQTXcxM0tXalBNT1RQS1UrZmxhL2p1bTRCblJDSjNWS2xnWVZWa1MyaHZ4MW8xYllT'@; put 'Y1Q5bHFHdmJ0Q3h6OWcreTRXL0xqR2NpTnNqZnN2UTF4aTIwa2tSZzhhcENpdnBEM2tXdG1GK0tKSklXdUd3SFUvbTIvOUtmOGl6c2oycmtQR3dYUlEyaHhPam81WkpMUnpPQ1B3dG5udlVZNHZuRXpVc2JNMnNITWtJZkcxV09KVzBmVEdETnRNdlp0QnVYc1pkRkxabmVzUXpQZHBOZXR5RnY4'@; put 'T2JJV0VZNkRpZGlnOWJUbW8wWnFXU2dVUm01T3MwSFJ6VG9UT3pnNVBab2ROMGNBeTZUTldZQzM4cUhpMHByUXg2TFBOMW02U2ttYWJIbXlabG1OUGpST1BET2FuME05RHpuOGxTbVpHL3g5dkJsR0ZCYnpqcWhGT2pRekg3Yk1GNGh1N0wwQlBUMnRkdlpweDBrZDgvZmRxVDA2ZWRuamhZVnVX'@; put 'eUxGanA2eDEycktsck5XN1FheHpHWGVUMVJxSzJZNDlGeC9MR3o2dDBYV21vdnRwampjY0dqNDIrUG1NMDRTTDlObGhTRXZSWTVySGNZNFhIU3NOZ1UzWW81U1Rjb0tLcEljY3F0bUxKZk11ZHhVajM3cWRsa1RYOTJlazRZSjBmMENTNjNkT3l3UHQ5akRiN210WjVWdm8wVEhJeUdvdTR5Ym5X'@; put 'Mk5RZVJXd25MMko3NmgrM1piY2hBQUFBZU5wajhON0JjQ0lvWWlNalkxL2tCc2FkSEF3Y0RNa0ZHeG5ZblRaSk1qSm9nUmliZVRnWU9TQXNNVFl3aThOcEY3TURBeU1ESjVETjZiU0xBY3BtWm5EWnFNTFlFUml4d2FFallpTnppc3RHTlJCdkYwY0RBeU9MUTBkeVNBUklTU1FRYk9iallPVFIy'@; put 'c0g0djNVRFMrOUdKZ2FYemF3cGJBd3VMZ0QrSENWZ0FBQUFBQUZZbVBaM0FBQT0pIGZvcm1hdCgid29mZiIpO2ZvbnQtd2VpZ2h0OjIwMDtmb250LXN0eWxlOm5vcm1hbH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5Ok1ldHJvcG9saXM7c3JjOnVybChkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29m'@; put 'ZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUmdBQkFBQUFBRlVrQUJNQUFBQUFwUWdBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkdSbFJOQUFBQnFBQUFBQndBQUFBY2ZOSDU1a2RFUlVZQUFBSEVBQUFBVFFBQUFHSUgxUWY4UjFCUFV3QUFBaFFBQUFjWEFBQU9kajU4ZkV4SFUx'@; put 'VkNBQUFKTEFBQUFDQUFBQUFnUkhaTWRVOVRMeklBQUFsTUFBQUFUUUFBQUdCb1FLenpZMjFoY0FBQUNad0FBQUpzQUFBRG5uZEREN0ZqZG5RZ0FBQU1DQUFBQURBQUFBQThFYXdCcEdad1oyMEFBQXc0QUFBR09nQUFEUloyWkgxMloyRnpjQUFBRW5RQUFBQUlBQUFBQ0FBQUFCQm5iSGxtQUFB'@; put 'U2ZBQUFONHdBQUhHNC83SEdER2hsWVdRQUFFb0lBQUFBTmdBQUFEWUxaWWdTYUdobFlRQUFTa0FBQUFBaEFBQUFKQWQ2QkNCb2JYUjRBQUJLWkFBQUFvWUFBQVRhcTFNK1ZXeHZZMkVBQUV6c0FBQUNjd0FBQW5wTjdqTG1iV0Y0Y0FBQVQyQUFBQUFnQUFBQUlBS0VBcEZ1WVcxbEFBQlBnQUFB'@; put 'QVhFQUFBTVFJK3g0WVhCdmMzUUFBRkQwQUFBRG9RQUFCaUdYRmoyS2NISmxjQUFBVkpnQUFBQ0JBQUFBalJsUUFoQjNaV0ptQUFCVkhBQUFBQVlBQUFBRzluZFltQUFBQUFFQUFBQUExRkcxYWdBQUFBRFR3WjJHQUFBQUFOUytwdlY0MmcyTVFRcUVRQkRFRWtmME1MUG9mN3lwTC9Eb2ZYZlYv'@; put 'ei9BSWdSQzBUUUNMUjZjZEZSa2pWc283SHpUdjFENEI3bTQwNDhET2xvcE5sdjY0NVNlWFhMVDUxc1h6U2ErVzNBRjNBQUFBSGphalZjTmJKYlZGWDdPdWZlKzM5ZXZnS1dVSDZFZ0lWZ2IweFJHbUFpeWFSaFVSeXFTamlrYVp2YmpuSVB4MTJFekZ1ZjRjV2dXVWhlSERBbHBFUGt4MmdDaVlr'@; put 'WEd1b1l4eHpZQ3lneGhZRndIeUJZbTArbENSSG4zdk9mOXNDL1FidU1KRDRkejczdnZQZWM4dCtjV0FxQ0FFWmdLbVZ4WFB3TjVlSG9ReDNEOFI2QndjNzdkT0E4VmM3L1JPQWVWYytmTW5jUFpvRDhaVFdjazdQaGRBUU13REZYbWNSaUpldGVhamtZTGJGV0ptaEh4SSttOWlGOE1ObDlBeFdj'@; put 'UTFNWE41SUNKV0lsUEVjdGdLSS9CZVRKSWpxRVV2WGl5ZjhRZDhaYjRTSHdjUGZ5SjMrOXg1UGZkZWp1NWQvYi9KK09mOTdqQ3V6Mk85SHllUDhXN2VoalpFbmZHdXhOYzVqL0N2NzlMME4wZWNUT3pwQmpPVEZjeFc5Y1JpbHJDWVJUaE1ZWUkrRHdSWVJ5UnczZ2lqd2xFQ1hNN2taVnFJZ1JM'@; put 'OFJQT2ZKUUl6UGhLK2w4bUJLOFFnbGNKeFNIQzQwM0M0emdSOEZjaXdra2l3cnRFaExORUR1OFRPWnduU2xpOVQ3bGFUQlNrVE1wUUl1VlNUcTZRQ3ZKZ1ZyYkF0VWRUSlNQNXpmV0UyTG5URTZ1ZDJObUp2WjA0WURLUlJ4MVJndHVJQWhxSVVzekhnMXdoaVNTeVNDS0xKT0J4UE1uNXE0a1Mv'@; put 'QUpyT2Y5cGJPTDhMVVFwdGhFNWJDZnllSUhJWVFlUng0dEVEaThSZWV3a1N0QkdsR0FQVVVBN1VVQUhVY0Jlb29EZkVJTGZFbUxaaWZBMlVZcS9FR2xlMVBLaWxoZHZlUW1XbDJCNThaWVhiM254TWxBR01sOVh5OVhrSkVlQnE5WXlRMVdzY1Mxck80WTFIY2ZNVEdCRzVtTUJGcUlSMzhjaTFu'@; put 'SXBsbUU1SG1FV0htWDAyeGpSaTZ6a0s2emdJVmJ1T0N0MmtwVTZ5NU9jdDV0VnhuMHJrdnVsRDlzOTNDZU5qTHMzMWJXYnVtdU9QK3BHclRiUzNSMzRiT1JNZ202K1BOdmozVGh6VWZHODE4Zmo1Zkh5eTBmU1d4ZXZpOWQxTy9JMyswWlJhWm9RMDRUaXE0VEQzWVRIUFVUQUxDS2lJcDdrbkVR'@; put 'TlltcFFVNE9pbFlpd2xZaXMwbUtWRnF1MFdLWEY2cW80UVRpY0loeE9FdzZmRUFFWGlFajZTbC9XdFovMEkvZVgvdVNrb21JVkZSa2lRN2krb2daWEVhWG9TL1F5cFlzcFhVM3BycWowVzRtczByM0ZFMlhpeVpuU1hWSHBYUnIzRnBXM3FISVcxVVdscHhwUDFiMkw2Rm5YU2JUZU5LdkZDQlBs'@; put 'T29zelovcDFwbDh0eHB5b1dJdVJKMXJXVFB4WlJUdkxRazVHeTNqdW52ejBxbU9FRGF6WDNZeHJGaU5aelVqVzRDbEc4elEyNEJsc1pFUmJHTWxXM3NZMm5yYWRwOXpMMDUxZ0RVN3paQmQ0Z243Y2JTQjNHY0lWaDVtZUZYMnNvNVNiT3NxNXk4MjB4T3liMlltT1JjUEluY3gvaDZ5UWxmS0Vy'@; put 'SkVXMlNqUHlYYlpLYnVsUTE2WEEzSllqc283Y2tyT3lBZHlUaTZvMTRLVzZRQ3QxQkZhcmJVNlZpZm9MVnFuOWRxZ00vVmV2VTluNndKdDBvZDBtVDZtemJwSzErcDYzYXl0dWtQYmRJL3UxZjE2VU4vU1k5cXBwL1U5L1ZBL2RuQ1I2K1hLM1NBM3pJMTAxN3ZSN2dZMzBVMXl0N2xwYm9hN3gz'@; put 'M2QzZSsrNXhyZEQ5ekQ3aEgzVS9jenQ5cXRjeHZjczI2cmU4bnRjdTF1bi91RGU4TWRjVys3RSs3djdwL3UzKzRUcno3disvZ0tQOWdQOTFXK3hvL3hOL292K3NsK3FwL3U3L1N6L0RmOUEzNmVYK1IvNkpmNEZYNmxmOEt2OFMxK28zL09iL2M3L1c3ZjRWLzNCL3hoZjlTLzQwLzVNLzREZjg1'@; put 'ZkNENFVRbGtZRUNyRGlGQWRhc1BZTUNIY0V1cENmV2dJTThPOTRiNHdPeXdJVGVHaHNDdzhGcHJEcXJBMnJBK2JRMnZZRWRyQ25yQTM3QThIdzF2aFdPZ01wOE43NGNQd2NZUW9pbnJ4ZGl6V2JlUWx4blVaWHBVd21veGJ6TE8weTEva2FjWTF4amNaUDVpd0RqVjd1dkVrNDJ1VlAxT2wybmlV'@; put 'OFpTRXNkQjRrNzVHYmpUL2VPT0o1dTgwUG0rZTY0dzNHRmNaNTQwYjNHenk4OGFMdTJkOU14dWorYTlnVEROKzFyaXBpK1d1TkhhejV4bnZNMTUxSmFjWk1QdEtubTU4cmJiL0w5YU5sK1NxdlR2R2w0MmZNVjdZeGN4ZXUyWHZ2M09hei9adXVTckRpek5udnNUTzFIU0orYXZObjdYVHJENXU5'@; put 'bDJaekkvcUdyMW8yMmlxaXF3L3plcVUxTFk1cVdiUzZxUlJwL29zMmtWL01xZkY3RTJ1NmFKNml4cDd3K3o5aVYyc2FacXhWTnVwOXJMKzlBeHAzZzZhL1NPcjBaOU41K2RzZnFxY1RwdGpOeUxWN1NYK0dyUFBwN2JOU1ZXZDlhYzM2S2FNWnRLS1pPMFh6UDVXNnJmNWRpOTBxUGszbUQ5Vlds'@; put 'WEdubVNjTjA5UDlrZnBmYkhvN2pEN3NOblpsZXZpWHlYVmlmZGNWcW5zamxPS3Q3djkvK0JMWnlxdXNYY3ArTzZxWmxhUzE2bG4xNjVoRjB4ZTJCRSt4NWRZRG1OeEkzdFkwcm43c0c5L2dUMDk2ZHg5N1kxYWJwMjdIMyt2bXNvK1ZFLzB4eDNzY3dQWTZlN2s3ejR6aVVycjVVUFo5YjdHcmpX'@; put 'ZmI3Zmg5bm9ieDQ3ZXd2WFdzL1BkYnIzdksreCtyN0ZEL2hJSDhCMis2TTVpc2IwcTErQmZFdkFVTy9FUXRGcFBiZU41UmE2eTM4MGlTUHhqVStFUzNFOWV3VzVYaWtIY2F5UWpHbzBiZU9wSlBPVTB6T0RvcjAyN2Z6USthbXgzQnZzeWZNaDRydkZtNDFSVk9iTkw4U1h1OHdDK0t6bkpTNGtV'@; put 'cEZSNlM1OHJUL1FmNmo2YktRQUFBUUFBQUFvQUhBQWVBQUZFUmt4VUFBZ0FCQUFBQUFELy93QUFBQUFBQUhqYVkyQm1jbUNjd01ES3dNTFV4UlRCd01EZ0RhRVo0eGhFR00yQWZLQVVITEF6SUlGUTczQS9CZ2NHQmRVL3pOTC9qUmtZbUk4eXFpc3dNRXdHeVRHeE1xMEhVZ29NVEFESlpRcEFB'@; put 'QUFBZU5xMWsxbFFqbEVjeG4vL3QzMFJLaFQxOXZacDAwYWlGRVgycGNpK2xLelpzcS9aR3VzUVEwVlN5SjRrb3hrVFUxTzJHKzY0TldPTXZzK1ZXKzRNSGNkWFREUE11SEptM25QZWM4NmM1NXg1bnQ4ZmNLSHJDMEYwajFUcW1Uam5ybEtzeHlXTXc0MkJsSENMT3U3U1NCUE50TkFtSGhJZ2d5'@; put 'Uk1Ca3VjSkVtcXBFdW1USlVjeVpOQ0taSVNJOVY0WmJ4M2lUS1BtNjNtRS9PTDVXNEZXc0ZXcUdXem9xeGhWcnAxMytZZitVMHBmWWZGalI3YWoybmptZmhLZnpIRkpyR1NLQ21TSmhtU0pkbVNLd1d5UVRacjdaZkdXNjE5eUd3eDI4M1BsbUVGV0VGV2lGTjdxSlgyUzF0OVZDL1VjL1ZVdGF0'@; put 'VzlVZzFxNGVxU1RXcUJsV3Y2dFExVmF0cVZMV3FVcFdxUXBXcE02cFVuZWg4MDVuVm1mVDlrNlBjVWVESWQ4VFlCOXI5N0Q1Mkw3dWIzZWo0MnZHNTQvQ0hrSGZKWFY3OXArWnVlRHVUNEk5YkJLUDd6L2lIUnRkSkYxeDFkdTU0NElrWDN2amdTeS84NkUwZit1SlBBSUgwb3o4RENDSllaenhJ'@; put 'cHg2S1NaaE9KQndiZzRrZ2tpaWlpV0VJc2NRUlR3S0pER1VZU1F3bm1SR01KSVZVUnBGR09xTVpRd2Faak5YTVpER2VDVXhrRXBPWndsU21NWjBaWkpQRFRHYVJ5MnptTUpkNXpHY0JDMW5FWWsxYUh2a3NwWUJsTEdlRmZ2OE9kcktiWWc1eG5OT1VVMFlGNXpsSEpWVlVjNUVhTG5HRnk5Unls'@; put 'ZXZjMUJUOVpQUTJEWnFsZTVxbW4yMFZxN1VkMFd6Z2JMYzM2MW1qKzEyYytPMVc0VjhjdkVBOW0xblpZMlV0bXlSR2oxdll6akhzT0NSYzh4a3BVYm9DSXJpamR4NmdhWllFWFEveDNXZUtuR0hFc28yOWJHVWZlempBUVYxTCt6bkNVYjExbUZKT2NaTFh1cHA2c1U2OHhGdDgyQ2grbW4vUEg1'@; put 'RE5xdWg0Mm1OZ3dBTDhnZENad1pscFBRTUQwMjRtVmdhRy95SE0wditObVhiLy84SjBqRW53LzVmL2ZpQStBTTlQRFZoNDJxMVdhWGZUUmhTVnZHVWpHMWxvVVV2SFRKeW0wY2lrRklJQkEwR0s3VUs2T0ZzclFXbWxPRW4zQmJyUmZWL3dyM2x5Mm5Qb04zNWE3eHZaSm9HRW52YlVIL1R1ekxz'@; put 'emI1dDVZektVSUdQZHJ3UkNMTjAxaHBhWEtMZDZ6YWRURnMwRTRiWm9ydnVVS2tSLzlScTlScU1oTjZ4OG5veUFERTh1dGd6VDhFTFhJVk9SQ0xjZFNpbXhLZWhlblRMVDExb3pacjlYYVZRb1YvSHpsQzRFSzlmOXZNeGJUVjlRdlk2cGhjQVNWR0pVQ2dJUkoreG9rMll3MVI0Sm1tUDlIRFB2'@; put 'MVgwQmI1cVJvUDY2SDJKR3NLNmYwVHlqK2RBS2d5Q3d5TFNEUUpKUjk3ZUN3S0cwRXRnblU0amdXZGFyKzVTVkx1V2tpemdDTWtPSE1rckNMN0VaWnpkY3dScjIyRW84NEM5SWxRYWxaL05RZXFJcG1qQVF6MlVMQ0hMWkQrdFd0Qkw0TXNnSGdoWldmZWdzRHExdDM2R3NvaDdQYmhtcEpGTTVE'@; put 'S1Vya1hIcFJwVGEyQ2F6QVFPVW5YV29Sd2wyZGNCcjNNMFlHNEozb0lVd1lFcTRxRjN0VmEyZUFjT3J1TFA1YnU3NzFONWE5Q2U3bURaYzhCQjNLQ3BOR1hGZGRMNE1pM05Ld29LVEhTOVJIUmt0SmlZR0RsaE9VMWhsV1BkRDI3M29rTklCdFFiNjB5aTJKZlBCYk42aFFSV25VaFhhakJZZEds'@; put 'SWdDa0dIdkt1OEhFQzZBUTN5YUFXalFZd2NHc1kySXpvbEFobG93QzROZWFGb2hvS0drRFNIUnRUU21oOW5OaGVES1JyY2tyY2RHbFZMeS83U2FqSnA1VEUvcHVjUHE5Z1k5dGI5ZUhnWUJZeGNHcmI1ek9Ja3UvRWgvZ3ppUStZa0twRXUxUDJZazRkbzNTYnF5MlpuOHhMTE90aEs5THdFVjRG'@; put 'bkFrUlNnLzgxek80dDFRRUZqQTFqVENKYkhoa1hXNlpwNmxxTktTTTJVcFUxbjRhbEt5bzBnTVBYRDhPaEswS1kvM04wMURTR0ROZHRodkhobkUxM2JPczQwalNPMk1ac2h5WlViTEtjUko1WkhsRnhtdVZqS3M2d2ZGekZXWlpIVlp4amFhbTRoK1VUS3U1bCthU0srMWcrbzJRbjc1UUxrV0Vw'@; put 'aW1UZTRBdmkwT3d1NVdSWGVUTlIycnVVMDEzbHJVUjVUQmswYVArSCtKNUNmTWZnbDBCOExQT0lqK1Z4eE1kU0lqNldVNGlQWlFIeHNaeEdmQ3lmUm53c1p4QWZTNlZFV1I5VFI4SHNhQ2c4ZHNIVHBjVFZVM3hXaTRvY214emN3aE80QURWeFFCVmxWSkxjRVIvSnNEajZ1VzVwelVrNk1SdG56'@; put 'WW1LajBiR0FUNjdPek1QcTA4cWNWcjcreHg0WnVWaEk3aWQreHJuZVdQeUQ0Ti9peGRsS1Q1cFRuQndwNUFBZUx5L3c3Z1ZVY21oMDZwNHBPelEvRDlSY1lJYm9KOUJUWXpKZ2lpS0d0OTg1UEpLczFtVE5iUUtIMDhFT2l2YXdieHBUb3dqcFNXMHFFa2FBUzJEcmxuUU5Pcno3SzFtVVFwUmJt'@; put 'Sy9zM3Nwb3Bqc1JSbk1nQ2tvNUtheHNPenZwRVJhV0R1cDZmVFJ3T1ZHMm91ZUxEVmJWbkdGdlFmdlk4ak5MSGszVWw2NEtTbnRSWnRRcDd6SUFnNjVrVDI0Sm9KYmFPK3lpbUpLV0tnaVBnaHRCZnZ0WTBRbUxUT0RMb0VpWkhHeXNnL3RpaDA1b29KMkF0OTYwaXJ2MjBMdHozWHlJRENiblc3'@; put 'blFaYVJvdk5kRmZWcWZWWFcyQ2hYcjl4Tkh3ZlR6ckN4NWhkRkdVOHVlOStlRk94WHB3UzVBa1pYZHIvdVNmSDJPOWJ0U2trKzJ4ZDJlZUoxU2hYeVg0QUhRKzZVOXlJYVJaR3pXS1VSejY5YmVESkZPU2pHUlhNY0YvVFNIdTJLVmQralhkaDM3YU5XWEZaVXNoOWwwRlYwMW03Q056NWZDT3BB'@; put 'S2dwYXBDSldlRHBrUHB1ZG12Q3hsTGdzUmR5elpOZEY5QjA4SVIzaXZ6akV0Zi9yM0hJVTNLTEtFbDFvMXduSkIyMGZLK2l0SmJ1VGh5cEdaKzI4YkdlaUhVazM2QnFDbmtndU9QNWU0QzZQRmVrVTd2UHpCOHhmd1hibStCaWRCcjZxNkF6RUV1ZXRnZ1NMS3Q3U1RxWmVVSHlFYVFud1JkVkNz'@; put 'd0o0Q2NCazhMSnFtWHFtRHFCbmxwbFRBVmhoRG9OVjVqQllZdzZEZGJXRHJuY1o2QlVnVTZOWDFZNlp6UGxBeVZ6QVBKUFJOZVpwZEoxNUdyM0dQSTF1c0UwUDRIVzJ5ZUFOdHNrZ1pKc01JdVpVQVRhWXc2REJIQWFiekdHd3BmMXlnYmExWDR6ZTFINHhla3Y3eGVodDdSZWpkN1Jmak43VmZq'@; put 'RjZUL3ZGNkgzaytGeTNnQi9vRVYwRS9EQ0Jsd0EvNHFUcjBRSkdOL0dNdGptM0VzaWNqelhIYkhNK3dlTHozVjAvMVNPOTRyTUU4b3JQRThqMDI5aW5UZmdpZ1V6NE1vRk0rQXJjY25lL3IvVkkwNzlKSU5PL1RTRFR2OFBLTnVIN0JETGhod1F5NFVkd0wzVDMrMG1QTlAzbkJETDlsd1F5L1Zl'@; put 'c2JCTitTeUFUZms4Z0UrNm9uYjVNcXZObjFiV3BkNHZTVS9YYm5YZlkrUnRsTTdvc0FBQUFBUUFCLy84QUQzamF0WDBKZUdQVmVlZzU1MHE2a2pmdGttVjUwUzdic2lUYjJyeGJ0cnhLdHV5eHgrUFpQSjVoeHVNWkdBaVRHUWpMREVzSUpTU2tTVU5DMmdSQ0NEeGFhRmttd0xCTUZnaGZTaVlM'@; put 'SkM5dG1yUloyclFwOUFYU3RFbEwrc0R5Kzg4NTkwcXlKYzhNK2I0SFk4bStPdXQvL24wNVFoVm9hVDJDUHl2WWtZQzB5SXhzeUkxYVVBeDFvMzQwZ1d4SnkvQkFYMDhpSG1uMWU1cnFhaTE2blVaQlVFVjdRT25VTzBWenhPdzJSMkx1V0NRbXNuY1JmcFdmMG1mMG5YNENUMkx5NzFJYjFpRVJp'@; put 'ZUhQNWw3Ry9mODVOUHp3OFBERER3KzduTTdoNGVGRHc4N2JIejdrY2g1eVB2end3ODVEaDI0ZkczdjQ4SmpqdThJYkthZlhDZjl1UGVJYUcvTWNnTi9HbkgzRHJrTTNkRm5EczhlUFAzYjgrR3g0MVJsMndqK0VDSnBmL3gzNkdubUM3YzJiZENHTTBSSkNxQ2FEQ0JHV0ZWZ1FyTUtVUXFIUUtt'@; put 'cThlcDFTdEFhTUVjRnQ4Y1dpOFVpbnhXeFN1WmYybW1LQ3cyRzFORFZaeUJNNXczY2RWclBEWWJZNkVGcGZSK1A0TWJ4SUh0UzVVQVZDT2dGZW4wWjBYais4M0FEejJsRVR1aUh6Wk9mc3ptU3pWa1dRVWlDWUlMeFNpVFdhbWt5TnJsb1FSZlZTVlFWUnEvVVpCU1pFUzZic1NSOTl3RDVFYXZG'@; put 'd2FUK3A0YTVrSTBKTmpRMzFNSTI5emxacmhRVWI5Zm4veElZQUZpT2lXM1FuMkU4aXduNGlJdnNSNllmNHY2TFhhcThORGdmdmdaL2oydVBSOTJ0UFNIOWRvMzN1bnVnOStLdXY5ajhGLy9XLzJ2ODAvTmYvS2tBeXRINldoTW5icUJGNVVSdHFUd2JiQWk2bnZhN1dhalpVVnFqRkdrU1VBR2FT'@; put 'QmpDUTJ4QkcrRU1BRWl1YWF0THJCUUN3UndWb0VmUDVFeFpyTElSajBRR2NBUFN3V0VXZjM5eUl6UWdlMThCYlBCYUZCeVI4L0VqMnByMGQwM3N2MjkrNXN5dDcxYTcyaVpuTDM1YzczTlViU1dJeW1ScS8vRW94T2F6YjNUK3RYN1BOWnp1Mng4WCsvcHE1L3RHYTM5VHRuTWYyZHYxUE5VT3R1'@; put 'WkdSVURCbWVnc1dva1RoOWY4bWI1Sm5BQ09NY0RwaDFJdStsWG15Rms0b1VJbVZGUmlybEhnVnFaQmFvMUlmUVFvRldpYVlZa3cxZ0Y1WXJoS0pJR2lGS1h2bVNUOTBDVit3QzRLbXJKKzRYSVZGMFNyQzJVYks5Q0FFMnRKdXFIeXZYYnVTdnZaMmg4TmtRcWk5dDcwbkhuV0VIYUZtbjZuSjFG'@; put 'aFhhelRvZGJDWkdsK05hQTRZT0Vnam5RQktVdzEyNHdoMkd5Z3MzUzZWMldTSm9FMmZEK0RDWjErWWJHNlpESVhZSy83b2NLNTErTnA0b3JVMTN0V0NaeWRiOGg4RjJNTkVLMTRLWlVNZE02SFFUTGg5Sm9qbjFyYmh1MU9ka1pGVXRET1ZPeGljYVEvVHo2QkZNSjZLZEk3UWoyQi9BbXBaL3gw'@; put 'NVNaNUZEaFFBUGpPUTdBMEh2VTBOOVhXMUZiaENJQTZNQkpLbUdJNlhnVnd0R1NVUUtZTU1vRkJibTlQWkZtdUxPZ1BPMWphWFNyUUVsSDZWMjBYM0ZFOFU3d3crc3NZVFZwVm9SYkExSzkrbEllSHpBMnJCVGtsdzk5STEvUWU3cG1jYjY0T3puY0YwWVB2Mi92M3RqVU1kb2ZmblB0Y1ZuK2p2'@; put 'OERWTm5oenVHWnp2Ri9mc0QrL3NUUjEwdDB6NGdwT0J3R1JnY05vNXZqSSszM0RsMEVteU94S0lqOWJIVzVyamF5OW5yNXUxWjhLOVk0RHp3QmZRZytSQlZJT0NtU2RiQUZFcUtldGg1NHNCQ1hTSS9ya0lmK0lsU2lIVHU1NjJlQWxzeHhETHN4N1JKTHAzNnUxR28xMHZ0dUVma2VPdFJydmQy'@; put 'SHFjQktESHdQb09uQ0JmUnRWSTlWUzFFcmNIR010S1dObjJyT0tqeDQ2dE5DOXMzNzdRdlBDelcyNzk2VUxyemhjK2NPMjV4UUNkRU9oM0IvYkxmVVhveThIalQzREFoVmkvRlJqaDVzVnoxMzdnaFoydEN6Kzk5WmFmTGJDK3ZmZzZ2RVMrQ2pzWlRnNHVUbzBuL1BWV1VRMmNLZDJQVVRVYzJp'@; put 'UzBBdVFuTnlFaVlDS2NvaXlXSDZRd0JTTXNvMzF6cyswaGwwTXBtZ0lHdHVaNFFpWEMvMjZYenc5L0orS0QyTTkvbzJkcHRjRC9Qajg3WU02UW9TM3RRLytpL0U1VWFiR1Yvd2JZN0tKZC9SWXIyNG43NjFvMUZoVFZ0YzFXcFZKVnBWQlUxZ2NEZ1dCOXBVSlJwVklwck0yMTFRb0JxN1VWRmZs'@; put 'MkN0V0YydUhycWpYV2lFcmJxREc1R09OV1ZxdDBPcjFlcDFOVks5V2lLRlM3VEpwR3JTcGkxVlJmZWtzRzF4UTZTbXBJRkZVaVg5S05ZRHJGQXVBOUFCSUxhQVZZQTBVVEJaNW1mRjJuRXVzQzJFMGxhb3hLMWdpcGVUSHpJdnpETFMrK21IN3BKVHJlOVBxTjZDVzBIL0RQbWdReVIrTXkrZ0VS'@; put 'ZVF3VTA0QThYQVV4Sjg0MFYxbEF5dFU3SGNHam9UQVZkMEYzNDJBWEhhc0wvUXIzNGloUWJtM1N6QkIzb1lDNGVoMGR6T2cwTzd1d2tGdkQwVW0ybjBtUXU4L0EvSlZVZzZCUGdDTmliTVVVQnlwUmhVY0FWbFVzWlk5S0VyWXFMMTN4K20vV3orS0h5T3N3cno1WlF3Y0ZZWUpQOGdrcFc4TXpD'@; put 'N2tIRnNqcjc3NkdtTXp0QmI1eUxUa0hyTEFKdFNWYmdLdXlIWE1PZ2tIWXN3WG9nUFowVGJyR1dndmptU0NNQW9yTlBKSEVvaUZBSmtwTWpUQ1Q2b09Ua3grY240UFhXK2Y3OWtXaisvcjY5c1ZpKy9xcTlueHhkZldCUFhzZVdGMzk0cDZKeVZ2bjVtNmRtS0N2SEFaMWxCUkFCMUFoZTdJV2ps'@; put 'SUFlS1U1aDhkWWk2ZjBSZ1k2MForSTZOMVBYK2Q2WkRCTFpyTTlKOWEySWRhL0F6WlZDZnV4b2Rha3Y2b1N0Z1BZUUVpYWdaT3hScXJFTENFbWovUldqMThoMWdZR01TVm11bnFWNkk5THpGQ0w0WHc2M3BrWWFoNzJkdS95SlpZKzNYZW9ON1A0TkY3SytZWitPTEFhYmU1M2RFV0NIK3JjMnpk'@; put 'NlkrYmVOSisvR2VDcGgvbGIwR0N5ejFZTGM3a3drRFNzQXd0VXVBT1Y0eFdZWGJFTUNBcUxBZG02ck1KS3BWVkpUN2tGTlhzOFRvOVhGRzF3MHBTNVJEcXBIQXJnbU5VaUNhVENDa1VKOU4rL3RUbnVQdFEvc1hQZi9HUjZmUGZpVUh5SFA3cm5FME9ydlptZS9zVytLOGVxaG1LUlVIU2l0Mjln'@; put 'QXVPaDd2aFlaemg4ZlhnaFBqQ25yOWsrMHIwN3duR2hHVjRHQVBZVndPV0N5ZFlxNEVrNHJWTENIakFDL2ZVd2dJK0pYSzFpcXJLeXNycXlHdWpLb0tOcjlUcjlPS0tuR3F3N3BzZjR6dHdqRlhoaDkrcHFOdmY3UHgvQ3IrUUd4Ly84MS9oZzdqNE9veTZBVVNQTTA0ajZrdDBtakJYYUdvRW80'@; put 'TnpUQ0Y2UkFvUzhJSkFsTHVFM0FxZ1JOYmowUnE5SEJwQWwwaWtKWTlGUDZVbU01eEh5WjljSEl6c3ZENmRiOWs3TWpYZFg0SHR5WjhXUm1jSFYvc0gzalZYMVJMcjNONDhGaHVkaTlmaEErdlZRNU1Cd2FyVUxZTkFIYTR2QStUV2dWc3F0RFhvNE8zOGRVU3BJV2dWc1JhRVVGS3NvTDJaRldK'@; put 'ak1JUnBCcjJ4c2JXenh1cUZ6dmRmclU0UGVocVRGVUs1QmlRWEVEQ2VTQmtDNWlFRldKRVJLTVhjZEhSaTRhdXoyVzlJM1QvZnRhd2w0SmtMeDNUSEhTcjhuMDd4dmZHaXBXcmM0aWgrRGhRNGU2ZnZLdlN0L2NhQzF1ZC90bmJsam02WXprZnRJY01JL0N0dWNPMERsRFp4akZhT2hwbVM5QWdp'@; put 'SVVSRGxQWmpwOEtBRmcvWkQxVXJzakRuTndCU2V5TjJGdjUvNzBXNnlrdTVkdTR2cUcxR0FReXZBd1E1dzZFRWp5U0dUaWdDSFRZdEZRSkE0aFJxQWdPR01HS2NJQk9yckVRcjBCTG9qSGZXdDlTMGVGd3hSMTZhaHJLdWN4aUhCeDVBblFNbzlyTktmL2hyQ21Na2I3eDllU0ExTURGM1JQM0RG'@; put 'VUtaM2VHSDR4SmhuSXR3eUhoamExVDd1QnBVcFB1dnp6Y1pCcWFwcVgrd2UyR3V1M2RhZG1HOEx6aWQ2WnkyV3ZmM2RpKzM0RTQxeHJ5dmVOQkx4eFJ0STdubEh0OWZmNThUWTJlZjNkanNZL204NmU0Y0JqcjFDQXpZRWdXMHJnWENWWkJYUVg0QzlDb0lsVXlRZDVMT0gzY0xaKzd4ZWR2WVc2'@; put 'ZWc1SFEvZ2Zrei9sUFp2b0pEZzdOSVN3VStWblBvZ3c0WVVPL1lPaWdIazNPWlQ1N2lRK3dnOWRuYitzQWNtUS9BNnlBc3I1ZWVVZjdORjZybnhwdVRHVzFVVlFsWFdLb3RCeHdRTDVlZUdJc0ZDeWdnWnEvU083NWFsVGU2QS9CdllkRXgyNG5XdzZiUXdtWWowUU1iM0k4MFpqSi9EOXo4WkNW'@; put 'QzZUNkNkT0VjV0FTOVZUNmtJNkZER21OZGNqYzBKNEJDMzRkTzRwL2NYWTg4L1A4N09Jb1hPa1JyOFQ0Q0pJbklsbXlqK1VsTU9GQ1NCTEVnc25BaFV0dXNvQjZlMFQvOVA0Vy9uWXV6bm45S2ZUTU9jVTJnbk1jcHpDakJuSW9oalNyTnlDcCtHT1YvSmRkLy8vUE5qditqOUJaM1R2djQ3L0Jx'@; put 'Y2Z5M3lvRVF5YXFtcXBHd1BVN1l0d01RM0Zja1F5c0NWV0tHd0txWnNOcHZINXZiV2V2d3F1aEJaRGhiNGRBMEcyNjFZYmovWHN5ZmlIR2lPem5ramUvOW9ZSDgwc3FkblJpK0Q5NVRTMCtWb1NqZzdnNUVUN2RzamJiTzlWYmNVbWM5MG5XM3Jkd21qb0NjUG9peCtKdk5rQldqS0JxZURxSVho'@; put 'Sm9PZ1VQZjFFa0RRTkJoYlZScyswUlI5WXRxaVQ3bm11M2J0NHBNMFYycUlBbVNDaW5Kb1ZRVUdyZklna2hnZ01CYTFXbGdHd09qVlU5TFVRVEM4RlZpemlDNjFrK2s5VHRMMGgweENEWXNBSEtoYUk2aFhMOXBaQ1laSEJ4VkNBbEt1YnQxTEZGV0FZeXB4bVhXZjJVWC9TOVlta3dnbHM4bnBp'@; put 'VEU0cXdHZnI5WHI4Zm1xUkh1Sjh1U2lObGFSa0FBanJJTlpsNTB5WDVUVXFrNW1yb0FCbXVEYWdNUStScDQ4OHY0WHJ6NzAyT0hvWENqVXIyNmM3NWhjU2gzcjZSdzFWS2YwSGs5alk3ZDM2YjQ5SzQrdjd2dkMzb0dEQ1VQUFZTUE5POVU0SGd0bXcvMlJrNGNmTy9TK0Y0OGZlR2c1ZTJVODFP'@; put 'd1A3NThlT1pFS2VvYVZDMmV0VGU2V3hlR0ZUeTJ1UHJHeTU3NmxlcWZkNjFpN2JFclVSbnFpT3pwaVF4UWZBUzNKRDBEZWlLQTVCSkxOR2d4d1NRTjFBTGtvUUd1Z1lsekFUSHRUcTlVVjZncXVqdGVDMWlBeVU5dGZpVWwzN3RiUkJSeW0vMWJ1LzhLOTk1SW4xcmI5S3o2YSt3ekFmQitNZnh6'@; put 'RzE0Rlc1MEw5eVI2UU9EQ0RDamdDeUdVbFZhY2tCNVdJdWRaUDU3TFhHZlRPcGpxWDNWVnIwZHNNdGphSG1pbmRHd1dQRTBzS2x0a28vN0lQOXlaMnRIZDA5QTFGbDNwenoyTi85K1JrOTQ5L21keTJMZmxMOGtSYnRpTTYxdEM0cHl1K294M2ZOZERlUHZDVDNMbnhycTd4SE5OdHFOejhLSk1o'@; put 'b1dTZ3psWlpRWEVrTFlzS3l3WVhHanhnMHNKSFhXaDVsTWlyQ01VSGpoTVA3dC8vNE5MWUxSMHgzMHBpOG5RbWMzb3lzZUtMZGR3eVZnWG50dnpnZ1VSbnZDVTBmVnRtNm9QWlVFdThnK295Rkc0dk1IM096Q3lrUEppWW8wQUNVMVdseVZCcHJqTDd3TG9FOE1nb0djQUpDZmNDV0wvdmpXT1BM'@; put 'QzgvY3V5Tk54WnV6MlJ1WC9nc2VXTG52UWNQM3JkemZPelV6TXlOWTJzL1ozdWZnZm42WUw1S0ZFNjJ5UnliNm02S0pSQ2JOY1dhTjdOb0tybkhEVlE1bzFuaTMzcW4rZlA0bXR4SDhlZHpSdndXV2ZsRit0L1Q1QWxKdDViSDE2Q1dwRThlbjNKaE5xcXMyc0FIR3FTaEl6Tit6RVoxeStQTzhF'@; put 'RnpyL0JCK1huZEQrZmxSTEZrSjVoSlNHZ2lSS0ZrQm9OU2dSaHlrV1VZMlVJMVg4YitRY3N4d3FHNXVVbnAxQmNKOWRMRGk3bnhYZGpZZnZmRUVqdkFpVStGWTk3cnV2a0J0cS82dm9FdnovMjJ2WnNmWVhkNzNOL09qOURkOEZCaHo3Y3dtUHFUSGtrOVhnR2RuTzZYK3N1MGFETXNNZDB0L0VU'@; put 'Z2xkeVN6VjJSemVKUFUzTEMzWFRidWIvQmJYeGNkQi96OFJxcFk2VmdYM0hURkl5cm1XeVc5cUkyR2NqRnYyYjBCMWpFVEJtRzBVdzVKOHNDSUpPVmdWMkh0RWF2QXJvWFRCZFlCYVd5SnovUTFHMWFEUGRuczRtRGcxWEp6cTVBMTk1Si9GcXVZK1JZSDkvbjN2dytIY2tHalZwSm1PVEZ6Q01v'@; put 'Y00rdDBXRGdzajZpeHhFTjBBU0kxYjFadkhjMTkzTWNYY205Y3d6V20vc1FQcFg3YThDZjVQdGZaZU9Pd0xnYUdGZEpkV0cyYURvYUpRMEpkRXFrMU92cG9yMkFKeEU5MGVSNnMybkF1YlhQc2Y2VWhuNWZXSmRZWmwwbXZid3VEUmhCYm4wbG5NQytMRnBINjlucytqcGRsQlAvZkcwYkVkbjcv'@; put 'NkQ4dUE4eFhHNU0ya1ZDU2tZMTVFZkZzQ3czR3hNL21zM21kdEJqK1Q0Snc0amh0ZTlUL2t0eCtMZi9QMng0em5UMlBiQi8vd1A3SmsrbjA2Y25PZUpLTE9mQWc4dkxEeDJZeUg1d0tuUGJOTWRicHA5UW5EMEllNnNDdmdOV09Ld0NTRlhBMUNWVENDVEFGbXVxVFlacWM0MVo3M09vYUJEQm1l'@; put 'YzlacmZNbHZVejJEcDJNcFU2T1hZK2l6VUxxNnNMNThnVFhTdURneXRkYitPaDdNaElOdmVUWWhpWWFCd20yVWtkKzBxaUFyTlNJTlExV2pEWkZFV2VVYlBaM0dKdUR2djhsQUdERUxlSy9tSmlwbzcxZU1LZnNHNFN3dVMzemQ3cHp0bnc4ZjRsR1VDNVY3ZTdyK2k4cXE0aER5TmNmM1U0MVRQ'@; put 'bUQrUmhsZnVYcHZxbG5tWFBZcWdZWEVYd3FvRTFnZndFZ2FIQXNpbThBcHFJeE40a2N2ZDRuSHE5a2ZJZXVtSzNIMnh1UFlPY1V2WVZrSU5INXIrMDYvR3pXUWE2WE04NUJqWjgyd2xEN3UyM0dmUStTUUVuK1RYL2k0VEpsd0ZxSUs5cXJRUWtOc0ZGNEtMTzV5SjUxWUthdlVFUEJaZEZ0bXFv'@; put 'RnpSRVN0Z2Y5eWNDT085N1gwZjRxcEhJaEhmeHNzeUJXTi9Sb2Nsckl1MXRoMkl0STc0ZEI2ODZrYmhxdXZMSy9uRFVtWEJFRTFaRFc2WTd2anNhQ2ZlM2hweUpwbzVJYmQydTdWMjdvMnl0UVlEVEpOTXp1RzhvYjlKeVo0NWtDbUEzMkxSdW9CalQ2NlQrOVN5WXRHbUpsbmNBam53SytwdVJN'@; put 'OWtvQlJzd0x0NmVHWmxNSHBNc2ppbnprdllvOFRIc3VtMHlHMS91NjF1T1p5ZHZtNithdW1NSC9tVHVxcUhWbnA3VklmcmJqanVtT0gzTE9wR0t6cVZrTmpod1RvbHBjczRESmdublBKU1hBZThnUDhoOWZ3SCtZUkJwbFBQQ3p4a3lBMk41RVZLWUdEM0JXQldVOXdPem9LRXRKc3JaNW9GYkdI'@; put 'UktLa2tqZGt6L0NlNUs3UGJ1L09yWnhiTmYzZm1yNmErOU9BM0QvUTFwWXovYnlPVGFzM3lkSUVmSjNZeS9BWC9VcUdCb09IN0tnbW95bU9PYndXRFFVN2pDS21GSURSc2RaSnE0LysvK2JobUx1ZjloN3p0emY0RnR1ZGZ4SXZ6Mk9yYnhzUTB3OXNkZ2JEVnFTTmFwQktERFBKT1R2QkFHRnR5'@; put 'U3hvUWo4K2QrZGVDblA5K1hlM01PMStMUDVKN0MwN21qdVRmb1dEMHcxcmdzK3lrOEMyNjl2RjhqNzlZejZObUtFOXk5QVFwQUQrZ1RSd25KSGNBUHJ2MTJnUGpUQTJzLzV2Si8yL3JIY0QvNTJTVmFtUkZBTFBqWjl1YWpqNzVKZnRhOTV1eUdIdXZ2ckovRlQyemhjeFZBdjFVdTRHWHVjc1dv'@; put 'QStacnlNOG4rd09wYWtiOXczUStWSmpQQ293L0JqOGRNTjJiUGVUbjNlOCtRWWVQNC92dzB4eTN6cWdPalNRdHdPR1pseFJtcGg3ams1SjM1NHdLalJnalJyZGZkUCtvOTRHaG0yNU9naXo2OVQvOEExMXpidjM5Wkc3OUdaak93Y2JZd2tkTmh4QUJnSVJzWC91clRJcWY2eUJKWXBGOEQvcGFX'@; put 'ZDhxNkRrQm41dzBnRWptc3lhczdzR1o2M3ZJVncyZjREeXVFM1NJM3hBOXNpTS8ra0hTWk1PQ29oYUVnaDQwK2FaR3BhQlNLdExjeUhSQVk2V0tVR01MYkd5cTBOc3lhcXhTb1dVSkh5WGowbE9tSFNVdDFsalcweVNiOHVKalh0cHcxS2d6VS85V3ZiL2U1M0pRejViSDZ6WnE0S2lReFF4blZX'@; put 'VEVXUXZlV2dPb2dYSzRFTjkrUmNhK0VwKy9QTEdVeU81T1Rya25BNDJIZGxnTzFrek45czVQZGhIOU5RZHkzOWpXMXJFNzB6a1RhREFPTHRvcy9aMDViM2RreHR3WENpZVFGSjhuRXlEckRHQU5QWGRXVzBHVUlDODQ5Qm9BYVhXWnZKUEtKbmtvNlRhdGVkQTVOemVpcXQ4R1g2WUV0NHVNZGdr'@; put 'RFVZaVpqRWFFakM2ajAyNkRKWVBzMnVRWjlWT2kwc3Z1MEdMOTQ3NHJCd2F1VFBVZmFNeGtHZy8wZTJiYTJtWTZPMmZiMm1ZN2lYNzB4bXoyMUdoMzlBQTVsL3UzYUhmT0I4WmE3OTVvZEc5djcxS1U0Mms3NE56YmdIUGxiVEhiMXJhWTVZSzIySCtkbXB3OE5SNWQ5a2JyUm55UnhRajg4NDNa'@; put 'bzk0RHNhcjA2WW1KVStsbVQ2VGVrZGdYVHl4MU9Sc2ozbFo2Wm5FNHMwRCt6UFJDOFpsUjJERXdNa09qR01vRmRIZHVic1NRVTJTdTF3MjRmcEhSTG1HZzBqTXorTng2ZW1aWVF2RUNlUFJrczI0VW9FZVZrZy91RkR1dFRuWnk1TnphNklGbzkraXBiUFpHT0Roc1hUdTErY3dJUFRQaWdUTXpv'@; put 'M3BxNlFPUEZ3aFRob2lnSUN2NVpkb3lxaUk5em1JQmJiZmVZcmZWVWdsdThESDNxNGVmVm1HeFppZGRuMHAwd25MeHdhWGFrUE1EWGFQWFRZNWVNM3J5MXR3dTlVcG04bEFGM3F2ZWtVNTQ2am84YldPbnB6T254cjU0NS9SbCtETjcwdWs5SEtkQUZ1UHR3UHNzYUhleVFvdFZTaDFHS3BMbTJT'@; put 'cjFTS1ZTTG9QR1Zzc2NIbWhKZ1NYUEs4dFFxUU5qUXdWY1pyWDB3MTNKQ28rYnhTbEYwYzdsakp2eWZ1WTA1RWlvTXI5MDg4MlpiZHZHRS9GV3I2WmViM1VTWlNvM2dMK2VHdTlKT3hPYUttODkwNE8za3hhQUg4M1IrSGF5cWxGSFZFcU5tdm13SmY0S0RBMWtqb3FzVXMxeVdWUVFpWEFaTUkw'@; put 'Ri9wcHZSNWtockpPMlJxVnRUWmMwNXFVTngvaXJBMVFubnFrQm0yanllYjBleWwreHZ0aVhIdC9nU2djOGpKWGdZY3ZRaVhULzFSNW40ODcyWFljQUpVZVA5ZmNmRzkyTWtzcGM1L0JxajYrcHQ4R3hmV3A3ZTJ6dzZ2SHhxd2RpN2J0eWgwTGJvcEZ0b2RDMlNIUmJpSi85TkNDb0FtallUS05q'@; put 'Qmg1WFliUUVDanZ6QnR1S1RISkFSTDNKYmFJK0NNcnE0RGdsZjUxZTRuYjRobDBkbVludXdHUmJKbU5kaWhOOVpFOVA3bGs4T0RqckdYRG5uZ1cyOW5acmpOSEVJTHgra2Z3MTZHaGE2Z1hJKy9ScktmTG9NN0pIUlZ0VFhjWGMrY3BON253UlZJaTlEUTFtVTBPRHlaZkprSU9OSnZxcnFYSGYy'@; put 'anN3L3ZvcjYxbHBmRHVsT1MzSTVScFFRVWxhV1RTVElEQmNWZXhYd1VidENoNUNzRmZWV1MxR1BadFZMQWtpRkRzQlZQa1ZYQlhVVmxWNXRiYW16SGlpc0pSM2Y2VVJCNVFxVHdPSnJIMjNoK3Rtd0pwWUxMVVN1Wk1PalFMb1hXQ21pWTZ2UnRaUDlVYW03V0dxNkRCUkFyQnQvc20rcDVZeUdX'@; put 'emZqMnR6Yi94eTc1MEF6amJjeU0rUkhzOW5ZRnpaOTZFcjhYMU1BWlNBVy9HMlFnVG95WTMrOUt5ampyaytPQjFaS0JFcmw5V2lTbEFxOVJrRmpUUVgyRFdRT2p5a1RWVFFoS2hVdHVJV3BndjB2MUJYU2g5MHdXN2tjdXVOYnFQYnBBRnVVWVJlcWcyL1JNeWNPT0NWUExrOW5FbEZCN0w4SldP'@; put 'YWlmVHNOT3YyOWhhaFhhYm9uU2luV3NLOWtjNitBdDVUbnZ6aFp6amFjeEFZbWZXa3BOU3VsekZmMnIrVjQwc0pZVWliTDl0enkwNTAyOVVYSXluekpaQ1VjaDRvaXN1WWNkalBKbitKN2FMK0VzdUYvU1ZjTVJpL2NYTHl4dkZPcWhkMGN1MUFVZ3ZTcHlZbVRxZFRYVXVKK0w0RVZ3K1FwTTl0'@; put 'QjMxT1gxNmZvM0phQldJUUNMMmdXRkVnR1hHeFBxY3ZWZE0yTmpSZGZMUkxHT2lTOURuNU9QNGdmUzczVzNMbVFEbDlqdXBRMjBHSDBwZlZvUW83c3hVcE01a05JbzJwUHZwTnF0SG1ocWFMajNZSkExMVFoOUpmVEhaZFFJZFNyczNnNm9JU2RTRFhXYXIzenNQTFlZQlRGYnIrR1o3RXdZR2ta'@; put 'NkpXd0pMdVMzVVNEaGl6VEhnRnhaaC9hQ3JmYTRzT3NPbXplaE8zdlEzeGlEbFBtczljUHQ2ekp3THMrRy82VTdDSjNNOXAwQWFqSU9qbkw4STZmYWdqR1RMRFFpMWdiQ05TOE5iWk5ydWZmTWpyQ1hEM0UwLytpTE0wQVRuVHpTcjY1QXlDUmtKbDBIZU9oL3k3ZGtRR1haSGdjdmJ3VEhoL3Ey'@; put 'ZDZJdFJYRisxS2pJU3VtS3RxOWlhRzJyeDFibE8xZlNneE90OWs3K2xvOW9BbWFkQTd1a05qTzZpK0IydmNUdTRHZlMrY2JMTmdGWlA1UkxpTmlrYXlSQU1wQUFld0pQZHpUWlRwY0VZblZlSzhORHN2cHBmU3pVQXcwWEJlUElHM3Q4WVQ0OXUyWlc2KzJXblYxMnZNem5RUFRxZisrSTlUdWJQ'@; put 'MTNpb05sVG5BbndDNUdiOFZhRUtiekcrQllVb0NmN041WUpVL29zbzhrcklIQzBaQjJaNWJkaXJ3VzdQYjVHWmhsQ0xObjBwekhwalVFNEd5MlM2WjZRSnl2Z01jRnBndW5zeTl4Smd1bm9UOTJJRjRhNGxTenVtU3ZVQ3k3cXMzTUcrRmtidXQ3TnYvNnBIdFA1NEF6V3dlUDBiMUV3emlEZ2tP'@; put 'NkYvcS85SmYyUC9sbnIzMVkwTWZ1M1gyOGZFN1B6b09JeTdqQitqUDJqdjR2dHpCZ3A5T2hMRlpEbUdGcU1BS0t0K29Gd1hHRmtoUmdNVmdNRkRFYy9wRnQ5RWZzU1lpb2hFLzhibDdkMzd6eFoyZnVudm4xMTU1OVZXc1hudjU1YlhjNyttNGpldFR4QVhqNnFtdVdLa0d2SVloQWJtbG9TbGU3'@; put 'NmRydHpPODFpT2R3ZVNXM0tvVVRRYXh3SFpSZzhWalhrT2R1ODZsYmZ5bitXZitjdHViZFZPSnAvWEphbE5ka29pNU9mejQya3ZKYnN6M0VvZVhWMkhPTFh4aytndjd5T0s0SS9lMytCTzVWM0UwZDZRWDN6YmVtenM5enNZTnJPL0dlOG56d0hVQlJqYW1BT2d3bm5DeERFbG9zQ2d4QW94bTlC'@; put 'YXFRaWxDdUIrRGJJNVJSWjNtcWx0cmlObktnNjRpcFU0UmF4YTl3VmdzNkYyY1Z2WDNXckRYNS9OaWEyK2Y2dlBOSTdHUGRiWWxncDEzeFZQTjZwaW1ycTNsRTZGRWRVMGk5UEhXb0UwVGcxbXVYRCtMSHRuQzMwYTF0eXY3K3FRRVIrcmYzbzJYMmRxYmsxNDE4NVBwTVlLMTQvRkNPdkV5QmRV'@; put 'TXJRWWdvaWxnQmJIdTU0bEtDY3BkRW8ya0FRUEttMTBxZUljVENmWDFXdm1LTGIzOXF1bjhUbzVyYk1IV2o0Y1NOZFdKMENkYTJ1bzBNWFZ6S241WFp6RFIxdm14MkVpemVuMGREZUJXZkROK1ZDL2k2dlcxM0Z0SWN3Ymg1M0p2c1F3Wkt1UG0xbmVncnhLOXJPdXoxVkdGeEphUmMrS01wRVRY'@; put 'Wi9vMlQwd0ZyVER5ZVNtWEpMalhGQ042T1hka2JSVC9XcmF4eitLM3lUU3FRMDZLS1kwTmRUYXJ4V1RVVlN0SkZZL3R3YXdMVXRrSHFIOTFMT2VTbHlCd1R6OHRQcURIQ0xJZXJHeVB4UW9pell4L09CZks5aDNzN2o3WWx3M09PcU50QTRPaGFPN0QyZDdlckt0Wk9aaXFuajQrT0hoOHVtcW9Y'@; put 'K2x2aW5Sb2NsZFdka1pPWFduRWR4aXZUUEg4SUVUNlFTK3ZSNmxrRW82VEpwd2hrZWExaTNoU2lRa3dYNUd3TUJJekhXbm1tU2l5aUJJbjBucFVUM01Ed1I2Z2FySFg3SXdsV0xadnNTc0hqcENtS1pMK3RmODdORENRT0RnNGVtMXRkL1dPUkgvMlc5OUtwMzJlYzZrN1JvNzFTUkhLTzFMbml2'@; put 'M1lGdFNkakpzdzB1QzBHaGFHS1NjN3JNSUUxRWJRWkZjcVdKa0p6NCswbUkwR3VhUkVWMG1MU2xoNWoxbE9RSVlmUnVENHM0Ky85dHByYy9EeitPK281eHRQcG1aVEowN0FDejVNM2QvYy9pTUxlQTg1dzNLNk9wbkgxVStUbkFGNVdSQmtXU2xRUU9HWk1sbGQxQmxiYkpSMUZ2MisyMDd6NU8z'@; put 'R3g2UjNzbUEzR3VyckRmUjMvZzc0Mm9haStJZjRSWjBMQjFSSUorQUErbzdrQTU3RDE1QTdMOFYvVEhPekJuRTg5eTF5WitKUy9jZFcwZjNjekIvM2tPOFpidUs4emIvK0tsNkhNOUJTV3hBaHBpamNSTVh2QjZuZ1lpRUFGZ0x5TVNtQUpmV3FsMnBiTkJaVU0zcWtwK3ZnWUc3Z21nSGMwckd6'@; put 'dTN0WDUxb1QrZk8xWFR4Ry9GUDBsM2dFZ05hWXRCZHhCVUxaeFV4UjhuVzhDSHFYTlRaYXpJMk41cDgyV2l3TkRSYUxaRnNPcmlmUi85QU1iblF0MjV2T2FnSThOdElzUWpYbHgya3VyeDFnNElCZ1YxeE5NOHVBUzY4V0dPbCtPc3dzS0ptc0NXRFdUVnUxNFZMYWhteEdqOGREcFRRRkhjL2lk'@; put 'K1hWSTVZYUM4SXFIdm5mL3E1V1cxaG5iQUFOeDJRMDFlaWMwVnFGR1BRMmVJSzZxbGFyV2E4MVZ1cXpWSmpBdVVmaDNIL0d6cjFOcE9mZWhyNHI1WjZsOFQ4eS91UkJQY21FcTlaYXBTQThYRWtRWFN0RFNNNndRTnJzUjVLSTg3anROck14ajVlb21HVkpXWjdVdmFxU0ZXUGdNTGhUNG1QTlpm'@; put 'TGxDbnd0ZDEyWmpEbTJCeGFERTI3UXVXQ3ROQ2N4aGY0RVBZclVad2grOGxIR2NNdTBPWXJydDJoelFtNkRSZlRVRm0xVzgyMnEwV2UyYUxNblA5ZGg5RmU4RGRuYzVodjVjU3JSRHphMjRmbFd3bmxHQ3dZMGxrenBLWHVrY0ZjakRFeElEY2VnVnF4b2dEZXFsa0ExbFVKalNxNG9NYXZXb0RO'@; put 'QVo2M0VueXFCV1dJNUFTZEdjN0pBSVFEcktpQW40dVIrdjNzM3ZvczA1SXcvNVJrNU5EMHJuYnNWMzV5N2xlZlFKRm5PVXh5OWs2eVB4L3craGFpcUV3QXJiRnJBM3hvTUwyazdJUDhreDMyYWZnSU02MnA0UVlxclpKZXBKWU9BbVV1MkpvaTYvYkJxZTk0SUNkSStDQ3R1dXRST2J1Z1UydEJK'@; put 'T0hXeFhzbkE1ZzQwN1pNY0t0T1BXM2lWUG04cmtKNFJETHQ2a0k5YUxET0h6ZVJYSmo0dUlUeForc0JRalVKczNFeWJ0VHMrdWFOY3dsYzRvWERoalNUYnJUbDA3NjZTREREQUpaWXZ4WEM3V2NMLzJ4a3U0U0tjM056bUtIcDJpelluNURhQS83ZHMwV1pQZnB6RDZIcmVwb0RiNjFSeTNNZm1h'@; put 'dVByV2Y5WXVYR3dvNmpOVWVCdm05cXMvenVNczg3VzA4YlhzLzVrU1JzYU5GYXc5ZkJ4RHE4L3NuRTlRRWMwTVBOdGxuZlJRQ3NSTm1vWVMycE1reTQwUlNxR1ZndHZEZHA2VmpacWhtN1ZJRzhxQ3I0UFppVkY5TExmQTRncUlvTFF4eS96NUxuUlVUbDk3bHY0ZkQ2RkRuZW5jZHZhbi9KRXVs'@; put 'K20veE5nd0hLREdDL3BrSGpKL1NWd1l2a3VERTZkMHRrK1ZzSnZOcmM1aWhOYnREa2h0NEd6ZlhXTE5xdjVOdFhvUzF1MDJaT2Y2ekI2WlJQZndtZ09mUkovbTRBcGhWUlBxV24rTjJpUWZxQU9mOEthc09LUk8ySjNmRGoyWWZvdmltZllHL3NqaHVSNmhOK3l1aDQzQ21KUk1vZ3RXRUVDclEz'@; put 'MXRpcVZVcUhCU0psUGU2WWZDVVVmWVdVKzc3bHNyN0lkOHBuUHRjelZROU1pTEJsVm1ZaXFnK2NmU3Y0Z0M0K0Rxa29EcWx1UGMvRWhLTU9wQVc0VDlMVDVqSDRqcXhFcWxCaUk3a1RCb3dUaUhsbXNtRHRIRVUvUndaWUllVEd5LzRGOVhaY0hJd3M3UXhIZ0x0Mlh0OEd2YTcveE9QQVY0NHZB'@; put 'WlBEdTAybVBJM2ZQK0NLeG5SNVpmdWlBeDlXejBuRjZGTGdML1MzMzkvdDkrUDQ0OEpqY3YyUS9PQlhaNzhzZGlDTjIvaXkzaHVGYWw0U1BUNWZnN09ZMlI5Ry9idEhtaE53RzhQR0pMZHJzeVk5ekdQM0ZabDdEZFhZMlY1ODAxMHNieDltVWR4Vml6Ritwd01vVkZaYWlqZm5DWWhDYldvdEph'@; put 'OVZaOVQ2blR1U1pJSkdpYkRWdlBsdHQ5cFdTYkxYcmVicmFUZCtVczlVb0xXeUh1WFhrWmRSQ2ZWOFZZRUF3RllybXE2M0t1ZWNzdklPWFZEeDEydWgxZXB3Qk53c1A1bjNRb3J5RVdMNU9MRjhRUlVNQTIxbXVVdXd5bHNxOG1LSXB6S21FdDljMTJkMDltU1UxMGZsUWFENTZwSnRuTTQvVExP'@; put 'WnhaOElSUzQzRzE5YjV1Zks4amU4QkhFZEFjU0FvZGFqY2N3SGdlMC9SOC9OeWV5d3VGN2YvU3Y1NWRhcjQrWm44K0lkM0ZqMFg3UG4ybFRjanhnZmd1ZkJub0grMm9RaEtvaVBKbFFhQW5hc2VOQnd6cmxCM1lWV0ZCcFJtVWFXa1ZSc1ZLbEt4aXRSSUphcFZLOVVhSWxkdDJESTFsVlVDbGVV'@; put 'UytVV2p3U0JDMFdSMHNMYzdHQWwydG9kaGdvQUJxTTNyOFdvQjVISXdlVU9lZmxHS0I0K3liSXd4STFyeEkrZDlrQi94Z1BQUVNZL3o1TWkrb3h2U1AwYVhyWjdMK3pkRm9YTjNUcmJScEpEMEVJOUhEM2JGaHhhelJWa2hpWTZPUkNFOG5UdlNNdExzTS9lRjJ1TTg5eUhKY2gvaVdKR3Nidzg3'@; put 'SFFxbElncW1pSmczUlJScE0xYkpPbGtRVEdrVm5OYlZMRVo3bFd4aTIyaWNWclVNQ2hBTEFEQXZwejNQelVLc2swcWtkY3VYMW90cVplR052ZkNwaTNWTHRwWDBvSVlRT2xTbW95b2ZJNHVqdUptclo5UVpvSGlQYWxrTnBzb2NQbEtpbGlXUERaUkwvbkF0dG10TGJLbHV6ZlExd3lYNUlLNFd3'@; put 'YzF0TEo3clFHbG9ndFBXVmFqTWMwcGJYeWg2Zmw1dWo4V2p4ZTNQNU1jNWZCbDd2djRLdk4zRHhubVZqLzloM2o0RDBMTVhQVDlxNHUzL0Q3ejlYemIrcTN6OHYrVFAvNW0rc2ZGNSs4TVBvWHk5WElKOEI3U25JTnFkTk9xWXE3cWhudDFxWVRJYUt2QkU1c2s2R3VxVS9mbjZEZG0zOXFTSnBy'@; put 'K0JORnd0Zmd4V2JXTmpZN0N4emVmeGVXbE5naXprWlBsbTlWR2xnZDJGa2JDS200TW4rQjhYa3ljbTB5ZUgraTVQSFJ4cDJYZURmVS9jUHRYaU9HZ2Z0ODIwQldaam5iTnR3VzBSVXZXRjVibWJKMUxYWmliZW45dzJPeGNmYUc0Mk5EWFoyd1ljYXo5cTM1R0lMblNHRjJLSnhRNWEyOGJpbjVS'@; put 'M2JlTzhhN0VBOTNFR3h6a08zeHZMUGFmbjkxalI4L055ZXl4ZVc5eitLL25uMWJ1TG41L0pqMy80Zlp3SHB0QzFwSWI0bUkvUWppN2o5M0RRNUEvbWhrSUtFU3NWeW9NcU9YaHZvNkU5RjBJcTVyQmFMYlJUS2hXTFFFUEtaZFpoWmxmU3dxeER1NjRPaEozc1lGUlRhNzA0bVFDTXhPSmlObXlV'@; put 'clBUWGFkbmQ5K1F5dGhkazgzdzgvVlNoZWszSXgxNnRZTVcyNVBVNEUyaGtmbCtkelZvSnVwZDZneDRISHdsRkh4WHJjZVY2bGUxUVJvK3piYW5IRmNmMUxxN0gyY3JwY1JjY2d1bHhUcWV6eGRuc05mZ05HL1M0WWpXT2FuRUtxNUVyY1JhSzVYNEI1SWpMTzNuaitPeEl3OEt3eXdlY2FHYXNj'@; put 'U0dWdTZubG5ZNDRzS0ovWDR6NDN3a244Q2YzUmlaT3AwT3VhYzl5QkJoUTJKMTlKNDU5THVCQjMrbGFTZ3gzNS83ZUNmakY0MHdVVDNkeS9EM004VzdqYzRxL2YxcjAvTHpjSG9zSGl0dWZ5WTl6V01KZkhnT2g0K3lWeHZsTVVieWI1OElOSnZ1a2dIZjVYTU9pMlBPbGhKMzFmM2pZV1ZndG0w'@; put 'ZVkzOGNaYVIrd3YxMm95RmNUeWZ0empraDJXckZkeFBXYk8vUDZ6WkZNY2QvTDhuNGVqYVREbHZaOUxxOERhYlp6dnV0WW54ZGN6Qjl0by9DcnhTcEJwTkZUckNSQ1dzUXFSQTNadzh5ZVlKY2VaV1NOMG9pbXJGYXJ6V3J6NlBWNnMxTXQxZ1dVM0F1WDhQTmFQSzZzZENZcWllQnlkM1QwMVkv'@; put 'azYvSnN6aVo3by83Zjd2L0NKeHE2TzV2clA4dEs5QncyZTZNUmo3SkNQU25QZDU0TUFuMEhVQUpmem9tdW5xcG85WmhxYUNJSmh6U0NXZ1N5VkFkQSsxREpaRjYyamJMUXhuVFJjUzQ4Uko0RHRNQWFSVFVSVitVN0dHeGc0cXZWM0dkcFphSGNqWGx3d2RJT0FFNnQxQXVWZGpLOXQxbmU0d1NV'@; put 'ZStqYjJ0b1NiWEdmeHdqNmFiT3pRcXlYanpHZWlHMmxuNXIxOHRuNml0S1J5U0E5Wll1K05DVjU5UXArNEwrU1U1UHBzVnRicThZMjVTYlRmR1dHQlo4dTVDaEwvb0NQTXZ2TEo5bGYvMUZpeC9IOFhNb2Z4aVQrOEdkRmZVL0lmYkVhdmJCRjMvTlNYNExWWE9maE5ZK3NyMS9xZTBzSlhkRmMz'@; put 'QitSYzlCbW5MWFJDbDZoR21tZ3pYTkNOVzBFYlNUZkVGRHN6VWpPM3owR1BLc09Qdm43c3dZRjBhamxzTHlQaWsrTUJDVmFnWVBTNWN1TmJSa2FFZUtYdUdqenlUcXRXN1pta29KMllaTERtdmQ5WHVyNDcyVm9pa1lHdTkzZWFtL3gwNHdGbjFzS1U3bExVbnpsQzNQUTVpeVZZME1iMGxRZWZU'@; put 'UXpsUHQ5Y2E3SzVOcXpSZm0rLzZzem1Wejc4Z2J1bXZjYlJ2Sit3eVBvV0xtekJ2MzJ6cngrZTJRQmxmTTU0Z3IwNHkzNnlycXhBRzIrenVzcWdVL1JXdEo2Tko0YzBZSEtvTWYwamcrNUFvUVNuN2lFUkZIeW5sT1JwTTB3WlFtSTA2aVV3NDBtTjYzRzBsTVNsR3RZM1RLZFdTWFdXbFRVT3NO'@; put 'cHlrR0pyaTczZ2x6aHl1aW5BK2pMMjhEclVtbU05aURMZzZhM3hkMlNOTHBkSUNOck1GR3FRR01XUWRtZzVSSk9XaTZQVktESXFSUXJOQlphc0liNE9XZmtHd3RZZHBkWGJzb0FnQStXNjBFemtYVStuNi9ORjZoMUdYeGV0NXRaVHhzM3BOcWNWTTBpTjZLY1duMDZ2MFcxV3JzaHdUb0VObkJM'@; put 'OWtISndOWFdTYnMyR1hFaDJScHMzVFlyL2k3THVDN2plMWFYOFQxdnRvdlVrbDNFYW51WmpHMlZaT3pMWmZ5b05GK2F5dGcwbDdFbnBiNjV0MmhkTU84TGVLTWxCc2tQQ2UwRks2cEJJU0FJTWFrUE5oRzFXR3VsRGlONlZ3NmE0RXdoVUVrRE1ZSmFzYXFSOWZBYUdqNVFMbGVvaUZMSncvbkxQ'@; put 'Snd2Y1lad3VTNFZXS1hTODQ2b3RKdnB2YzcwbmllaGpNSVJEbFBYZDNnZzNKK0lhVVBhVUtERjdheXZNeHVwQzd5MlNqWVFLQTV3bThENkhwTzFzYVBlN25PNE5jWTZ1L0UvTGlsdmU0ZXYwUlp0dHpiNzdVYURmZHVsSm5HRExVdUxuL1NNMy9DNHdKSDFlMHRpQnorRU5sV00zM0I3OThobmtK'@; put 'UUhNNC9lQko1aHBGa1RhdEM0akR5L1JyNVdoNmRYY1RudDBWdWNySVJMRnN5Z204cU00VTFLR3laZGxqTURKbGVicThqRGtqYkY5Q2hZeFR4NmtjWDhuU2laN0RlYmlFSndZbjROVWVHVUpWTkRteWRnbGh6aWFBUUwzS0t0THB1V2JaUVhaS1ZseGZLUzlrazVBRE4wYVUwV2E4YkxGMWZJQ1Zp'@; put 'end6cnIyelVpL3ArMWQ2U0ZBcDNRdVAxRGhUZ0w4RmZOSmo4cnkrTkc5eEJsUHQ5YVg1SnZuY2xrYVBJWWpMY1g2TzRXa0xzdW9DOUdkL2lIM0djQnovV01IclBTODArejU2eSttK2taWVVuUDBKYlFPSUFFTndoL0JHMW1wRFlXZEphM09TdTM0WFhpNStSeFlQeTdtRTZBaTNRQ09zNElhek1q'@; put 'dGZtVGpXMTRmUWpwQnh5cHBwbkZWWlVWR2pCQ0JUV1JLK1kzRlo5WG8ycHp2dmhjakZFa1NaaEZNK25QOWM3UFp6L3lrWFFhbXdPWkFKN0ovWGc4TS81YnFmNmtodVhFTzVJTmxSV2lpa3A4dFZTUnI1T0tTODNzc2pvc2drVWtEWXByNWpKVFU1azVmRmxyN3B0WTc4LzQ4WEx1bTYwRm5la2hC'@; put 'c01PQ1Q3L1dRSkQ3Z1A1bnVRRG9icmFvN3d2bk10RDdMdzZKRDVKZUh0NHJpQjZ1VDNBNm9XaXVVN2tZMXRxZEc2THVjN24vUzNxRTZnb3hoVEp4NWlPU0hvaDJTUUx4aG50Y3AvSmtjdFF1VmdZcmtIblMyTHZtL3c1dU9aYWJ0T0FHU2g4SDg3VWdCcG96a1ArWmdzMXlWOXRvYUVsL0hKdUhU'@; put 'TlVHNHoxRmhQTCsrVUtncTBRWTVkWklRMnpGOVNwQ0ZjUjFsN2U5OFg5KzcrNEQzREFPRHQ1T3BNK25lWkt3dUtmN1Z2KzR2NzAyaitUcHVsYk01bnJVa2p5cHdoQUdjQWxPbEFYMnBiTVdyRmFSVjNnVEpzQlZxOVVLMWFxTkVTbGt2MFZsV0tGVU9TeDZPeDB1UkRxN09wTXhLS3VEbGQ3YXpP'@; put 'TTVUQjRmQjV2TlN4Nm8rTzd3TU1Md3QreGlaa2pyZ1lJYlhLRmxkdDcvZWc0UzQwZnZjN3JPamtpS1FPNXE0dFM1UEgxRzJ1dituckhlZEw4V0UvdktGVUxpclBtOC9WWWtuNXdrSjFyVE1MZHI1WGdCTStIcHVlNndQMmQ4MUpmd05HRERIZGpFbzYreU52bjNxTDUwMUo3K3J5cGFLNFQ4bHlB'@; put 'dXg4dU85Y1ZESGNYT083Vzg3bFluVDFiWjF4YTUzMGxlTS96b2VrNmQvQjFIa05TRG1PUzFlZ1AwL3lLV0xTcFVhRVU3VFRycGs0SGFvZVc1VmZVYjVsZklZck1OVzdKZXdFdUpiL2lvcDNLNWxkY3BOZVcrUldsL2FUOENtK3dtZVpYR0ZoK0JmZkpsMCt3OEYzS2JRUWtIRm1aMEpaTHR2am9a'@; put 'UmU4bytDUGRzWUY5K2FzaThvREY3NjFnSjlkY0QzSmN0d0hVUzdaMUlGRlZXZFRvNkFVTjZiSEtDK1FIaVBCeHZhSEhKL3REem8rMng5NGZMYVM0L01FbWk4dFBRWmZOSmtmdjNoZ3FteWVUSGlmYitzVS8reUNzaVJiUnVsdnVrRFNmNEZXVDhpMENuUitlQXRhUFMvVEtsYkg4dWZON3Fod29o'@; put 'ZVNPbHJoanF6VklCbXE2Q1dnVXU0ZkRFQXp5NjltMFY1eWl2bzVwVVF0alpvd1pZNFF2Qi9FdVIzTFI5Vkd1eWlRY05NbDlVbTJiR3BPN3hrZytGQkpMd1c5SkZzUDYzWWlLcVJvR3FHUm1yTHNHczJ5SjBYZEEvUjJEYnhnTEhNWTlkWDB5bzNRSm9pbjhsZHdzSHFLSkt1bkNLTlhrcllXckJa'@; put 'YXpVU2pEcG9JMGVRams4cTBUQWxLaGZLMkNrenJWelZYZ3pBRE1OUDZVVUZRTEtsNEZXbEpkREZZNktQV2tKc3UxaW5aV3I2OUZHRXM2aVpRV0ZFYk1JekNyTXJEQ3RDaUxwTXRRb3U0dFBURHlrZ0F0NVhpY0hlaEhzUmI3OVdWUmhMRjhXaHhrVWpDb3ZieUdDSzdFNFhoYWtMQzFXdEtjSlhX'@; put 'c1B5YTZhMkxYRzhsdlNXNkxjK3BpT1J6S282Z3o1WHEwY3pQZjJmZXozOWt1amozNHh2NW5JMUs5RnBKUGdicnkrTDVMS1lBYlc0dGx4TUNldG1qWmZzR0NuRUtYTE1YU2ZlNXpMUDdYRHlvTjlsbEJ0NVVEU2NML0JRTGFlbUdMUGwrZUJaQ0tCaEkwTVBqcVhWN1BQeStMSlpCc2NscHMrbjZG'@; put 'L0tweWR2bXRlYThaOE55MlFla2UyRElFK3pXRjEyRDVNeHdObGp1ZlYveHBUQlN6U21zZFE1c0lDOTZtenNJYWpSZ1BLb3hGcnk0NkxaRzZhbXk4TlJVcHUzbVpubnZkcjFVa0VScmViWnlhRHVrTnRUSG5DLzZLZVBEdnZCWUZ4K0dTb0FLRHkzWWJHYjFVQnRkMUJzTGlRcTJNWm5qRHVuaXVx'@; put 'Sk1rYUhjV2pXeHVjSW9iNDR5WEtkMzVUQjY2T0g1UTNpeEJJOTVQUkhsM2JzWkxvcm9KMFU1UXlma25DRjQvcEdTdmp3V2RGNk9CV0Z4UHlycXV5ZWZiM1FZM1ZhQ3grd09HNGJyL1pJTytGVEorTHlHaCtMNkV0Y0JyMGRGZmZmSWZjSE8vdHN0K3A2UitsSmY1K2VLK3A3STkxV2pVMXYwUFMv'@; put 'UGk5WERERzlaYlRpMTNiWFU1MEdyREdqZEZmTjVzQ0ltc3A4YUZYWkdWRnBVVSs3Nk41VmJLS3I0L3RMbU1tK3BIbUNHbkwvRSsyeXM5RDZiQjhjTzk4eGt1OG41TzNmc0tEOUd2czZNd0VrUWNsS3FNcFBHU0VSRTkyQjNkcWJuOEJnNXYyUEhuZElZMC9nZ2VRNnNjcW5Lb29MUU9vczBtRlBV'@; put 'ejFGYUYxQ05xcnhDdnNwQzJqU3pseDZaYWd5YlluVjFNVk80WWFxRlREZkNueFlML05IRTVsbEFuMk8rSFIrYjU0STFCNXNyT0hhWFZHdElOU0xUdUZxd3N4cVJMalpxa0Q0SERXMVZpUVZnSFl2NTRtYmhraXBGaXIvajRzYSt2a0FBZm1yZDdscjZRNmI1MzRHK052NmcxczFySCtZeEpYMDk2'@; put 'bUVyQ05mQVpyUVVZOUpLVnVIQktyVUFwb3VNR3d2MGt4bGUvZWF4S0tScUVlazdHWXFjNkRmMk5WbjY4NDd6eDVnWHlpaTV6Tm01RFpGKy9FSHlGZGo1TUpzM0FiSUFhNWh2em9UeGhCb0xyRTROem5LVjNleTBLRi84UW9RWnBxMWFRSlFySmVSQTlJc1RDbGxkK2JvRVhOMWswMXVxVGJXcWtH'@; put 'N1dYUFE3R1RRWXRUVU9qL2dCK1oyZnh5QitqZFc0aUtpT3JVcXJCSXljb0ZiM1NhTWhYeHRqRmQxZXFkZ0ZEL0dLbDVzL2Jqak5hRzliN3EzMXA5WWZSelhJdzBhdzFaU3B1UFBreHhJM2ZqbkI0OXlmV2x0djk3M0wvYVRNWjVybmtUZklQQktsY0hRTEh2azltVWVpRkhxdWlMOFcraDRGbS9s'@; put 'aWZZL2kwYUsrZS9KOUQrUFpFaDdKKzU3Sjl6ME1mSTdaM3V2YmFieW1PTmJ6N2pyWFlkNWRsM1NZZHBDeEhtYTNUMGh0dnY1dWpzZjEzczFKYlhnOFlUVS9UalU2dEVVODRTdjVlRUwxTkNxYlU1cENIOTlDUG53dm55dVFXcEh1dkVkdkVnMk9YUHo3SUw2ZkMrUEl1TnhINkxtRVBnSjVOeWYz'@; put 'R2NkZlJ1ZklBNEF6blU4QnVreGtuclFVZjVHS2JkTVhxZkRLeDExUGN5d3l5ZzU4THFpZnAxOXYwVlJMdjk2QzNFNi8zOExzNE45dlFYMTArS3ZvSmZJZ1FFRUxVRW54T2thU3l0Y3h3anJ3Yld3ZERham42WVlhSWkrbG1sMSt3NzdyaHkzR3VLR1VUV0RzYjlkWlQ2M0h3RzVjMjdnaTY1WUxm'@; put 'R3VMdGRhWHJodmZTUjdVK2ZtNjJmcS9DZXMzNU5kUFVVcmVDQVlzL0JLZXhBKzh0OXF3QjhiSE96ckd4anEreE44NnhqbitUQUplamFMOWdCdGdjK25jOFBwTmh1TjZUQzlKRStsM0xDa09GSDNIMGlES3dHeHY4dnl1RGkxVzF2Q3ZRRkpqVlJXdXFGUlZGSDl0a3JIYUlGUldDc3Q2alU1VUZI'@; put 'L2JVdXdpSGRrM0ovSGVJdTB0U04rNTFGMjJYNWx2WFNycEM0cGZmR29xbVpTL2ZXbHFjV3JIM0d3eWsweVBqYlFQdGc5MHhjdCtFNVBwRC9nbUpzZW12ejFGYlIzeDkvd3RUWGlpNkkvY1dmazdtKzUvejEvZVZQYUxuQXBmNkVUdlhZemlDdUNkU3FSNkNyVHI5c0FndGdMc2ZBK2s3cjQ3OWM0'@; put 'M2RFOC9xNWZ1dkl4aXZkeE9ZTzM4Q2FzWWhGWVBQREQ2N05PNmI3ekNaTVViMHIzVFlUU1RuS3EzRXdXOXZhSVMwMjh1VUlBQUpBcGhSWU5KQmNhVnRMNGxYOUJVaFNzclpaY05zMjFEYllIV0ZyM0JDemFyM3VpdEJ2dTJjSStXSHd4YWFodkIyd0FwVk5UU2pFRDZmVkZPNWc3RzMrYlhVbWMr'@; put 'dkdKZHloTGx0a04xQjIrYmtPcVlwai9rd29uY0daV0E1M0l2T2o0eTE4ZXVxazRlSDAvVmFlMk8xUENSWGxiRXREaVdxbTh5bTFMWnkvajMvT0FXVW9OUEFCOVVQUVZLWFR2amV2eW0veE9zV0prcU9xRHFDTUNWblhvbkVkYlc2QThxM0x2Rzd3eFJQMk16Vml0SmU1bDd6TjdqSFJ6dkhOanlD'@; put 'ZzRwdjRUWnE3aGRpcFdjemVlZEJHaXNtVDB2eEpyNTgvUDU1K0xOeGMvUHlNL1I0ZXVLbnhmR1Q2RVBGVDIvTTkvK3lCWHl2U256NUFhQUFZMTlxSjlwY1JzeHdLREVISk1oVWJERmZKdGhjZ08zellvQkk5bG0vMTBFSDhsTzIxRUVJc2xFdTZjMHQ0NnRtZm9GK0Y1d0picS9hQzlmeWNPaytt'@; put 'RCtiaFAwZVhaM2s0d0xFYjE3WHJxdWlYNit2aDArVjVaK3JseWJRZjhQMnorYzB3QUJBQUFBQVFBQTM1dm1obDhQUFBVQUh3UG9BQUFBQU5QQm5ZWUFBQUFBMUw2bTlmOVIvdTBFWVFQRkFBQUFDQUFDQUFBQUFBQUFlTnBqWUdSZ1lENzY3eVlEQTh2RS80SC9XMWdTR1lBaXlJRFJFQUNsSUFh'@; put 'aEFBQUFlTnAxbEQ5TVUxRVV4cjl6WGdlaWc4SEJRU3NhRFZRdGY2V0JLbWh0SktMU3BpM1BvREZhdzhCazBBZ0pMa1lTNDhSQVF1S2lBeVFkREhFemNYRndjdERCUkNZSG5RaExiWWlTeUFUUjUzY3VMV0piMm56NXRlL2QrKzQ1My8zZWxYWGNCaitTcG81UmpmQmxIb05hUUVUSDBPNkYwYUh6'@; put 'T0lrU0JtVU01NmwyZVk0K3plR2lOQ0F0azRqak42N0lRckNtcjlFbm96aW9hWFRwVlp6USs5UjF4TWwrdmNFNWVjVHN0eHZQdVJ6VGE4OGhVN0tKUTk0RHRPb3ZITlZYeU9zaXgyNlFrOGpvS1BXZC96OGpnMVgrRG5PTlo3aWxVUXg0SThoN1NrVjQveWt5ampNY3d6cDFDbTFhd29nOU0zUUd6'@; put 'Zm9XTGJxQS9UcU5zM0lQT2RhOFNYWkpDVDJhRGY3SUpTVDBIRTdyWS9qYWhFNnlSMzEweWgzT2ZjVG5acEhHTWhKWURqN29FUXhoQlNsdkdpbTdyZy9kZU4vbXlCTjZ1SVkybWVDOExPOTNzN2Nram11RXZlWFFwTW94TTRqS0FZeVQ3ZktPdmpaaTJLMTVsNTZ3Um5uQld2YWdWZDRnNGVvYVJ3'@; put 'US9NQ0J4ZHoxR3Y3YThxcU1RU1BQUHZOc2hyQWFmekQveUoxWDA5dUpVeGJ0cTZXRU1PNXAvTzJYKzBXZTlnR3ZPcXpyeVBwTFdpLysvekRmNk4wU1dxQlhXMUwvdFhiVXNGOGFzOC9lZnpEL3oyV2o5MnByVnRONXQvUW90Ujl3WDYxZm51S2ZtaDlXMEd5MXJ0dDlsMHF0dnJQY0x2WXVTQVhu'@; put 'WituQVpaQTRzaDVhRmJUSXYwbzFtODliNnE2SDV5dDRxRERVZ0ZncHpYZWJXc2xORGUrZVlweHBPbFROV29lMlBlYlFMN1Ixd09iUTlOUC9LNzRMbHNacTJWekxMN0prS3pQeFhNa1VscVBkSTZqNWVRNUNyUExPYU5aNlcxNVIxd0N0dW5UZllvRjRDbWtUY20wQ2NaOEtnTzFPV3lDV3lnSnM2'@; put 'eTdPQzUxSm9EaDNTaXhhcVRSZURvc3VIeDduYzF6cGZILzVmN1J6d3BBQUFlTnBOd2w5SUduRUFBR0F6LzVTZXA2WHBlZDZkdC9NOHI3dlR6cCsvMDJNTTJVTkVpTVR3b2NlSUlSRTlSQThoRVRGaWhFaEVSQThSRWo2RWpCRVNNWWFJUkl5SWlPRkRoTVFJa1JFeWhnenBRU1NraDczc1lYeWZS'@; put 'cU5aL3FlZ09SbkFCdGEwcXZaRSs2QjlIblFPWGc2MmRUYWRvRXZxMHJxU3JxWkg5RXY2Z3Y2UFljYXdZbWdiazhhY01XODhNOWFON2FINGNIYTRiRUpNS2RPMnFXcHFtYUY1M3B3eGZ6Ylh6VjJFUnFhUVhlVEd3bG5TbHFybEFiV2hVVFNON3FNVnRHVTFXQWxyM0Rwdi9XQTl0TVZ0ZHlQWVNH'@; put 'bmtaVFE1MnJkSDdRdjJML2FtdmV2SU9KcGozRmpWT2VNOGRuWmRJZGVCcSt4cVlUWXNnV1d3QzZ6dUp0eVNlODU5NHU3aFVYd1YzOFFMZUFYLzVVRThLNTROejUybjVla1JRd1JPU0VTY3lKSXBNazFteUJ5WkowdmtCWGxMUGxJaDZpMlZvdEpVaHNwUmVhcml6WG56M3BMM3dudnJmYVJwZXBY'@; put 'ZXBIZm9RN3BJbjlIbnI5NHhEQk5pWGpOVFRJcVpZNWFZRFBPUjZmbTBQdFNIK3pnZjhNVjlSK3g3ZHBsZFo3UHNQbHRnZTM2dDMrR24vY0FmOSs5d2U5d3hkOHA5NDJwY2szdmluZ1BGUURsd0dhZ0hmdkl5LzVXLzV1LzRGdi9FdjR3M3hqdmpmVUVXdG9RRG9TUlVoQ3ZoWHZndDlFVkVmQ011'@; put 'aUd2aWxyZ25Ib21uWWxXc2lUL0V0dGlUSnFVcjZWNTZsRHBTUDRnRXNhQVFqSVljb2M2RVpnS1pPSkluNVZsNVVWNlhzL0toWEpUTDhtVVlDOWZDelhBNy9BS0dBQTRrb0lJRW1BV0xZQlY4QWplZ0hhRWkwNUh0eURXMFFRRG40QXJjZ0xzd0QwdXdBci9EQnV6QXZvSW8ySCtBa2xRMmxUMmxv'@; put 'WFNqZUZTSUNqRTZCbVBUc1hMc09sWlhVUlZYT1JXb2NUV2h6cXBGOVV3OVYydHE0eTlNTThtZ0FBQUJBQUFCUEFCZ0FBb0FRQUFFQUFJQUtBQTVBSXNBQUFDREFiVUFBd0FCZU5xTmtzMU93bEFRaGM5dDBZQWE0OEs0WUdHNk1PNkVnZ1FpTGpWc0ZEUVN3UzBJQXBGYUxjWEVyVS9pMXZjd3hw'@; put 'OFgwSTJQNERONGVqdFVKWTB4TitWK2Q4NlptZDRwQUpid0NCTXFrUUt3eXlka2hXV2VRamF3aUJOaEUyV2NDU2V3aGp2aEdhVHhJRHpMK0lkd0VubGxDS2VRVmdYaGVSUlVUWGdCRFhVci9JUVY5U2I4REZ0OUNyOGdhYXdLdjJMT1dBLzUzVVRhc0xFREY1ZTRnWWNCZXVqRGg0VjdQbm5ZeUtG'@; put 'SWFsTzE2T3RyejRoYzUrNHdhOFRjQzJSUVJaZDVucTdrWXFoZFI0ejFNT2FwUlNWSGw2M1hObzZ4aHlacXBMaThqYW5NT0k4MTVXbnc1REUrME85ai9lajJudzROUmsvcGNzbkJUUTlZbzhzOXlPMVFhNUVQcVFmYVB2Zk9IN01JNXVmelZFYVc2L3BYWlZmWGRhS3FHV291ejVPY2tXVDFxUHFN'@; put 'ampuNWlTZkxmZExUMFRmOTdwbU52V1dUc1RiL2I0SERqMlpTbFFsVnRHcHhGYlZXWXU4Y3R2aTdpVUwwOVVzNHA2K3JxM295M1VwVXNZNHJ2dU9BaWtmUDhBdmN2WGh6QUFBQWVOcHRrMWRzSEZVVWhyL2ZzWGZkTms3dnZWZkhYdmZFS1M1cng3RmpKeTV4N01SSnhydGpaL0Y2RjhhN2NXeTZC'@; put 'QUllUVBEQ00rVUpFTDBLSkhoQW9sZlJld2ZSZWFRSDc5d0pYaVR1dzN6L0daM3puelAzM2lFTGQ1MGJZQjcvczFTYmZwREZETExKd1llZlhQTElwNEJDQXN5a2lGbk1aZzV6cCtybnM0Q0ZMR0l4UzFqS01wYXpncFdzWWpWcldNczYxck9Cald4aU0xdll5amEyVTh3T1NpZ2xTQm5sVkZCSkZk'@; put 'WFVzSk5kMUxLYlBleGxIM1hVMDBBaklacG9aajh0SEtDVk5nN1NUZ2VIT0V3blhYVFR3eEY2T1VvZi9SempPQU9jNENTbnNMaWRxN2lhbTdtQk8zaWY2N21XcC9tWU83bU51M21lWjdtSFFjTGNTSVFYc1htT0YzaVZsM2laVi9pV0lkN2dOVjduWG9iNWhadDRtemQ1aTlOOHo0OWN4d1ZFR1dH'@; put 'VUdIRnVJY0ZGWElqREdDbVNuR0djN3pqTEpCTmN6S1Zjd21QY3l1VmN4aFZjeVEvOHhPUEswZ3hsSzBjKytmbUx2emtubEtzODVVc3FVS0VDbXFraXpkSnN6ZUZYZnROY3pkTjhMZEJDTGVKMzN0RmlMZEZTTGROeXJlQnp2dEJLcmRKcXJkRmFyZE42YmRCR2JlSSs3dGRtYmRGV2JkTjJGV3VI'@; put 'U3ZpRFAvbVNyMVNxb01wVXJncFZxa3JWcXRGTzdWS3RkbXVQOW1vZlQ2aE85V3BRSTEvempVSzh5MmQ4d0lkOHhLZTh4eWRxVXJQMnEwVUgxS28ySFZTN09uUkloOVdwTG5XclIwZlV5d004eUNNOHlrTTh6RFhjcGFNOHc1TThwVDUrVnIrTzZiZ0dkRUluZFVxV0JoVldSTGFHL0hXalZ0aEp4'@; put 'UDJXb2E5dTBMSFAyRDdMaGI4dU1aeUkyeU4reTlEWEdMYlNTUkdEeHFrS0sra1BlUmEyWVg0b2traGE0YkFkVCtiYi8wcC95TE95UGF1UThiQmRGRGFIRTZPamxra3RITTRJL0MyZWU5UmppK2NUTlN4c3phd2N5UWg4YlZZNGxiUjlNWU0yMHk5bTBHNWV4bDBVdG1kNnhETTkyazE2M0lXL3c1'@; put 'c2hZUmpvT0oyS0QxdE9halJtcFpLQlJHYms2elFkSE5PaE03T0RrOW1oMDNSd0RMcE0xWmdMZnlvZUxTbXRESG9zODNXYnBLU1pwc2ViSm1XWTArTkU0OE01cWZRejBQT2Z5Vktaa2IvSDI4R1VZVUZ2T09xRVU2TkRNZnRzd1hpRzdzdlFFOVBhMTI5bW5IU1Izejk5MnBQVHA1MmVPRmhXNWJJ'@; put 'c1dPbnJIWGFzcVdzMWJ0QnJITVpkNVBWR29yWmpqMFhIOHNiUHEzUmRhYWkrMm1PTnh3YVBqYjQrWXpUaEl2MDJXRklTOUZqbXNkeGpoY2RLdzJCVGRpamxKTnlnb3FraHh5cTJZc2w4eTUzRlNQZnVwMldSTmYzWjZUaGduUi9RSkxyZDA3TEErMzJNTnZ1YTFubFcralJNY2pJYWk3akp1ZGJZ'@; put 'MUI1RmJDY3ZZbnZxSDdkbHR5RUFBQUI0Mm1QdzNzRndJaWhpSXlOalgrUUd4cDBjREJ3TXlRVWJHZGlkTmtreU1taUJHSnQ1T0JnNUlDd3hOakNMdzJrWHN3TURJd01ua00zcHRJc0J5bVptY05tb3d0Z1JHTEhCb1NOaUkzT0t5MFkxRUc4WFJ3TURJNHREUjNKSUJFaEpKQkJzNXVOZzVOSGF3'@; put 'ZmkvZFFOTDcwWW1CcGZOckNsc0RDNHVBUDRjSldBQUFBQUFBVmlZOW5ZQUFBPT0pIGZvcm1hdCgid29mZiIpO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5Ok1ldHJvcG9saXM7c3JjOnVybChkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29m'@; put 'ZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUmdBQkFBQUFBRlh3QUJNQUFBQUFvT0FBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkdSbFJOQUFBQnFBQUFBQndBQUFBY2ZLVGJMRWRFUlVZQUFBSEVBQUFBVFFBQUFHSUgxUWY4UjFCUFV3QUFBaFFBQUFjZkFBQU9kaitoZlhSSFUx'@; put 'VkNBQUFKTkFBQUFDQUFBQUFnUkhaTWRVOVRMeklBQUFsVUFBQUFUZ0FBQUdCb3FhMytZMjFoY0FBQUNhUUFBQUpzQUFBRG5uZEREN0ZqZG5RZ0FBQU1FQUFBQURBQUFBQThFZDhCeTJad1oyMEFBQXhBQUFBR09nQUFEUloyWkgxMloyRnpjQUFBRW53QUFBQUlBQUFBQ0FBQUFCQm5iSGxtQUFB'@; put 'U2hBQUFPRGtBQUcwOHNOR3lOV2hsWVdRQUFFckFBQUFBTmdBQUFEWUxhNFlIYUdobFlRQUFTdmdBQUFBaEFBQUFKQWVFQkNCb2JYUjRBQUJMSEFBQUFvc0FBQVRhc25nNVBteHZZMkVBQUUyb0FBQUNid0FBQW5weVZWZmFiV0Y0Y0FBQVVCZ0FBQUFnQUFBQUlBS1JBaDV1WVcxbEFBQlFPQUFB'@; put 'QVlVQUFBTmtMK2FHU25CdmMzUUFBRkhBQUFBRG9RQUFCaUdYRmoyS2NISmxjQUFBVldRQUFBQ0JBQUFBalJsUUFoQjNaV0ptQUFCVjZBQUFBQVlBQUFBRzlHMVltQUFBQUFFQUFBQUExQ1NZdWdBQUFBRFR3WjJHQUFBQUFOUytwT3Q0MmcyTVFRcUVRQkRFRWtmME1MUG9mN3lwTC9Eb2ZYZlYv'@; put 'ei9BSWdSQzBUUUNMUjZjZEZSa2pWc283SHpUdjFENEI3bTQwNDhET2xvcE5sdjY0NVNlWFhMVDUxc1h6U2ErVzNBRjNBQUFBSGphalZjTGJGVlZGbDM3Zk81cjN3TXNwWHlFVWdraFVBaFdoakNpQ0tOeG1scElSeG1zQkEwWU5ZNGZrTTlVWktiR3lHY1V6VWpxeEpHS1pFTFFNdHBnQlVURnFr'@; put 'aGVDUDZJSWZnSkVpd0VLMkw5QVNvYUk4cDEzWDBmY0V2N1p1eEtWM2YzT2ZmY3MvZGU1KzN6SUFEU0dJb3BrTXFxbWxvVXdOR0RNSVRsSDRHQm5mT1h1bmtvbVh0ajNSeVV6cDB6ZHc1bmcvNW9OSjRSc2VWemFmUkRHWWFyeDJJWWFteExQQm9zMEZVbGFFREFoNlRuUWo0eFVIMGVKYWNocUFv'@; put 'YnlCNFRzUUsvSUpTQk1Od0c1OGtBYVVNR1BiaXpJMkUyYkE3M2h2dVI1eWY4SnUvSTdtNjluMkJBcC84L0MvK2RkNFdPdkNOdGVVZjJodGs4STgzaHdYQnJoTE9mNE8vT0NGMTJpdkR6c0lGWk1oakNUQTludGtZUUJoV0V4UVdFdzFqQzQvZEVnUEZFQ2hjVEJaaEFGREszRTFtcFJZUmdLZTdu'@; put 'ekFjSXo0eXZvUDlGUXZBU0lYaVpNSGlYY0hpZmNOaFBlSHhDQlBpVUNQQVpFZUFva2NJM1JBb25pRUpXN3hldUZoSnBLWklpRkVxeEZKTkxwSVE4a0pWTmMrMHhWTWt3UGpPS0VOMTN2R09qTzdhNlk2Yzc5cWdrQ2xCRkZLS2FTR01ha2NGODNNVVZva2dDalNUUVNEd2V4a3JPYnlRSzhSaFdj'@; put 'LzRUK0MvblAwMWtzSkZJWVJOUmdPZUlGRFlUQlhpZVNPRUZvZ0JiaUVLMEVvWFlScVNSSmRMWVRxU3hnMGpqZFVMd0ppR2FuUUFIaUF3K0p1SzhHTTJMMGJ3NHpZdlh2SGpOaTlPOE9NMkxrLzdTbi9rNlY4NGxSem55WExXQ0dSck9HbGV3dG1OWjAvSE16QVJtWkQ0VzRLK293NTFZeUZvdXhU'@; put 'TDhBL2N4Q3c4dytvMk02SGxXOGlWVzhGMVdiajhyOWlrcmRaUTdPYUVucTRqdkxZbk9sN2xYeitFYlVzZTRlMUpmVzZtN2h2RDdidFNxSTlINXlEdnlKWEdzbXllUDVUMGJYK2IrN2d1L0RnK0VENFVQblQyU081Rk5ZZFBwLzc1SWpIeXV6eGlVcWlaRU5XRndEV0Z4TGVGd0hlRXhrd2lvaUpX'@; put 'Y0U2bEJWQTFHMVdEUVFnVFlRQVJhYWRGS2kxWmF0TktpZFRVNFJGZ2NKaXc2Q0l1ZkNZK1RSQ0M5cFRmcjJrZjZrUHRLWDNKVVVkR0tpZ3lTUVZ6ZllEVE9JVExvVGZSUXBZc3EzYWpTYlU3cFZ4QkpwVHVOSjBqRWsxS2wyNXpTejJqY2FWUk9vMHBwVktlVUhtczhWdmNyUkg1ZFI5RTYxYXpK'@; put 'UlJncDEycWNLZFd2VmYyYVhNeVJpazB1OGtqTEpoRi9VdEZXczVDU01YSXgzeDU5ZWxVeHdtbXMxN1dNYXlZamFXUWtxL0E0bzNrQ1Q2SUo2eGpSMDR4a0EwOWpLM2ViNVM1M2NIZUhXSU1PN3V3a2Q5Q0hiK3ZQdHd6aWltV3FaNE5lMmxHS3c2VzBpOW5mTHFVbGFsL0tUdFFXbEpIYm1mL3Rz'@; put 'bHhXeUNPeVN0YklPbGt2bTJTTGJKWHQ4cGJza2c5a254eVV3L0tWZkNzL3lrbmpUTm9VbVg2bTFBdzE1YWJDakRNVHpHV215dFNZYVdhR3VkN2NiR2FiQldhUnVjY3NNdythQnZPb1dXM1dtcWRNaTlsc1dzMDJzOFBzTkx2Tkh0Tm0yazJIT1dLT201OHNiR0I3MkdJN3dKYlpZWGFVSFdNdnRC'@; put 'UHQ1YmJhWG1scjdYWDJCbnVMdmNQVzJiL2JlKzE5OXAvMlg3YlIvc2MrYVp2dEJ2dUNmY1ZtN1J2MkhmdWUzV3NQMkVQMkMzdk0vbUIvZHNZVnVGNnV4QTEwUTl4d045cU5kUmU1UDdoS044Vk5kZFBkVEhlVHU4M05jd3ZkM1c2SlcrNVd1RWZjS3JmR3JYUHIzU2EzeFcxMTI5MWJicGY3d08x'@; put 'ekI5MWg5NVg3MXYzb1Rucm4wNzdJOS9PbGZxZ3Y5eFYrbkovZ0wvTlZ2c1pQOHpQODlmNW1QOXN2OEl2OFBYNlpmOUEzK0VmOWFyL1dQK1ZiL0diZjZyZjVIWDZuMyszMytEYmY3anY4RVgvYy94UWdDSUllUEIzMVppTjVpWEtsY3JWeVk4UllyTnlzbm1YS0t4TThWYmxDZVpMeTN5STJnOVd1'@; put 'VmE1U0htSDRtU3JseWhYS2t5Tkd2Zkt6NXRWVHRseWlQRW45N2NvbjFETkt1VWw1cEhKRytjOTJOdmtaNWZydW1WVS9FMk8xK3Jzd3BpdHZWbDU4aG1WV0hMdmE4NVRmVkY3WmxlTU1xTjJWYTVWSG1Pei9ZMm8zbWF0c2Q0eXB5aTNLOVdlWTJjdHE5djQzeC9uTWRzc2pFMXlmMkhNbk8xSFRK'@; put 'ZW92VjMvU3J0UWNQcWIyckVUbTR5ZzYyVGtWK2JQOGpXcFBqbTJkRTJzbXJrNGNkYXpQbkozelIzT2ExWDdXTGpxbDNwekdQbFQ3L2NqTzFUVE9XS3p0V0h0SmYxelpPRy92cWIxWWEvU1I2dnhyblQ5VjM5V3VjL1JFeExydDVLOVErMFN1Z2h0UHF6cnBqMC9RcElSbTRvb2s3ZWZVdmpYMjYz'@; put 'dzlGMmF3K3B2VUh5dHRaTUt1VXM2b0o1OTlYTzI3TmJxcjFONmpkbkxsNm5BTCtYemxaS1dTYjV5Y085M1ozOENkWnhxY3AvZFM4TjVWenF4RXQxUEhyajJhWFRDNllRZjRIVzlpS1l6RFJleGhVZWZ1eGI0OWlUMDk2dHk5OVk1YXJKMjdEL3ZPRlBhaEdxSXZybUtmNjhkT041M2ZmV1lRcGRy'@; put 'TEI3UHJ6V0xYbXMrNzJ4Qzl2WTFuUjEvRDlkYXk4LzFKZTkvVjdINnZza08raGwyNGxUZTZvNmpYVytVcWZDY2VqN01URDBLTDl0Ulc3bGZrSFAxdUZrRENXSVZMY0F0NU9idGRodDkxeWhqYktONjlMK1N1TCtjdXIwUXRSOTlXN2U1VlBxaXNad2E3RTZ5VndGM0s2NVUvMXF6MVZUdURQL0k5'@; put 'dCtGMlNVbUJGRXBhTXRKVGVuWGQwYTk5bDU5MEFBQUJBQUFBQ2dBY0FCNEFBVVJHVEZRQUNBQUVBQUFBQVAvL0FBQUFBQUFBZU5wallHWnlaL3pDd01yQXd0VEZGTUhBd09BTm9SbmpHRVFZellCOEJqWUdPR0JuUUFLaDN1RitEQTRNQ3FwL21LWC9Hek13TUo5azFGRmdZSmdNa21OaVpWb1Bw'@; put 'QlFZbUFEd2JRcTFBQUI0MnJXVFdWQ09VUnpHZi8rM2ZSRXFGUFgyOW1uVFJxSVVSZmFseUw2VXJObXlyOWthNnhCRFJWTEluaVNqR1JOVFU3WWI3cmcxWTR5K3o1VmI3Z3dkeDFkTU04eTRjbWJlYzk1enpwem5uSG1lM3g5d29lc0xRWFNQVk9xWk9PZXVVcXpISll6RGpZR1VjSXM2N3RKSUU4'@; put 'MjAwQ1llRWlDREpFd0dTNXdrU2Fxa1M2Wk1sUnpKazBJcGtoSWoxWGhsdkhlSk1vK2JyZVlUODR2bGJnVmF3VmFvWmJPaXJHRld1blhmNWgvNVRTbDloOFdOSHRxUGFlT1orRXAvTWNVbXNaSW9LWkltR1pJbDJaSXJCYkpCTm12dGw4WmJyWDNJYkRIYnpjK1dZUVZZUVZhSVUzdW9sZlpMVzMx'@; put 'VUw5Uno5VlMxcTFiMVNEV3JoNnBKTmFvR1ZhL3ExRFZWcTJwVXRhcFNsYXBDbGFrenFsU2Q2SHpUbWRXWjlQMlRvOXhSNE1oM3hOZ0gydjNzUG5ZdnU1dmQ2UGphOGJuajhJZVFkOGxkWHYybjVtNTRPNVBnajFzRW8vdlArSWRHMTBrWFhIVjI3bmpnaVJmZStPQkxML3pvVFIvNjRrOEFnZlNq'@; put 'UHdNSUlsaG5QRWluSG9wSm1FNGtIQnVEaVNDU0tLS0pZUWl4eEJGUEFva01aUmhKRENlWkVZd2toVlJHa1VZNm94bERCcG1NMWN4a01aNEpUR1FTazVuQ1ZLWXhuUmxrazhOTVpwSExiT1l3bDNuTVp3RUxXY1JpVFZvZStTeWxnR1VzWjRWKy93NTJzcHRpRG5HYzA1UlRSZ1huT1VjbFZWUnpr'@; put 'Um91Y1lYTDFIS1Y2OXpVRlAxazlEWU5tcVY3bXFhZmJSV3J0UjNSYk9Cc3R6ZnJXYVA3WFp6NDdWYmhYeHk4UUQyYldkbGpaUzJiSkVhUFc5ak9NZXc0SkZ6ekdTbFJ1Z0lpdUtOM0hxQnBsZ1JkRC9IZFo0cWNZY1N5amIxc1pSOTdPTUJCWFV2N09jSlJ2WFdZVWs1eGt0ZTZtbnF4VHJ6RVcz'@; put 'ellLSDZhZjg4ZmtNMnE2SGphWTJEQUFwS0JNSXdoakdrOUF3UFRiaVpXQm9iL0ljelMvNDJaZHYvL3duU0pTZkQvbC85K0lENEEyczhOc25qYXJWWnBkOU5HRkpXOFpTTWJXV2hSUzhkTW5LYlJ5S1FVZ2dFRFFZcnRRcm80V3l0QmFhVTRTZmNGdXRGOVgvQ3ZlWExhYytnM2ZscnZHOWttZ1lT'@; put 'ZTl0UWY5TzdNdXpOdm0zbGpNcFFnWTkydkJFSXMzVFdHbHBjb3Qzck5wMU1XelFUaHRtaXUrNVFxUkgvMUdyMUdveUUzckh5ZWpJQU1UeTYyRE5Qd1F0Y2hVNUVJdHgxS0tiRXA2RjZkTXRQWFdqTm12MWRwVkNoWDhmT1VMZ1FyMS8yOHpGdE5YMUM5anFtRndCSlVZbFFLQWhFbjdHaVRaakRW'@; put 'SGdtYVkvMGNNKy9WZlFGdm1wR2cvcm9mWWthd3JwL1JQS1A1MEFxRElMREl0SU5Ba2xIM3Q0TEFvYlFTMkNkVGlPQloxcXY3bEpVdTVhU0xPQUl5UTRjeVNzSXZzUmxuTjF6Qkd2YllTanpnTDBpVkJxVm44MUI2b2ltYU1CRFBaUXNJY3RrUDYxYTBFdmd5eUFlQ0ZsWjk2Q3dPclczZm9heWlI'@; put 'czl1R2Fra1V6a01wU3VSY2VsR2xOcllKck1CQTVTZGRhaEhDWFoxd0d2Y3pSZ2JnbmVnaFRCZ1NyaW9YZTFWclo0Qnc2dTRzL2x1N3Z2VTNscjBKN3VZTmx6d0VIY29LazBaY1YxMHZneUxjMHJDZ3BNZEwxRWRHUzBtSmdZT1dFNVRXR1ZZOTBQYnZlaVEwZ0cxQnZyVEtMWWw4OEZzM3FGQkZh'@; put 'ZFNGZHFNRmgwYVVpQUtRWWU4cTd3Y1FMb0JEZkpvQmFOQmpCd2F4allqT2lVQ0dXakFMZzE1b1dpR2dvYVFOSWRHMU5LYUgyYzJGNE1wR3R5U3R4MGFWVXZML3RKcU1tbmxNVCttNXcrcjJCajIxdjE0ZUJnRmpGd2F0dm5NNGlTNzhTSCtET0pENWlRcWtTN1UvWmlUaDJqZEp1ckxabWZ6RXNz'@; put 'NjJFcjB2QVJYZ1djQ1JGS0QvelhNN2kzVkFRV01EV05NSWxzZUdSZGJwbW5xV28wcEl6WlNsVFdmaHFVcktqU0F3OWNQdzZFclFwai9jM1RVTklZTTEyMkc4ZUdjVFhkczZ6alNOSTdZeG15SEpsUnNzcHhFbmxrZVVYR2E1V01xenJCOFhNVlpsa2RWbkdOcHFiaUg1Uk1xN21YNXBJcjdXRDZq'@; put 'WkNmdmxBdVJZU21LWk43Z0MrTFE3QzdsWkZkNU0xSGF1NVRUWGVXdFJIbE1HVFJvLzRmNG5rSjh4K0NYUUh3czg0aVA1WEhFeDFJaVBwWlRpSTlsQWZHeG5FWjhMSjlHZkN4bkVCOUxwVVJaSDFOSHdleG9LRHgyd2RPbHhOVlRmRmFMaWh5YkhOekNFN2dBTlhGQUZXVlVrdHdSSDhtd09QcTVi'@; put 'bW5OU1RveEcyZk5pWXFQUnNZQlByczdNdytyVHlweFd2djdISGhtNVdFanVKMzdHdWQ1WS9JUGczK0xGMlVwUG1sT2NIQ25rQUI0dkwvRHVCVlJ5YUhUcW5pazdORDhQMUZ4Z2h1Z24wRk5qTW1DS0lvYTMzems4a3F6V1pNMXRBb2ZUd1E2SzlyQnZHbE9qQ09sSmJTb1NSb0JMWU91V2RBMDZ2'@; put 'UHNyV1pSQ2xGdVlyK3pleW1pbU94RkdjeUFLU2prcHJHdzdPK2tSRnBZTzZucDlOSEE1VWJhaTU0c05WdFdjWVc5Qis5anlNMHNlVGRTWHJncEtlMUZtMUNudk1nQ0RybVJQYmdtZ2x0bzc3S0tZa3BZcUNJK0NHMEYrKzFqUkNZdE00TXVnU0prY2JLeUQrMktIVG1pZ25ZQzMzclNLdS9iUXUz'@; put 'UGRmSWdNSnVkYnVkQmxwR2k4MTBWOVdwOVZkYllLRmV2M0UwZkI5UE9zTEhtRjBVWlR5NTczNTRVN0ZlbkJMa0NSbGQydis1SjhmWTcxdTFLU1Q3YkYzWjU0blZLRmZKZmdBZEQ3cFQzSWhwRmtiTllwUkhQcjF0NE1rVTVLTVpGY3h3WDlOSWU3WXBWMzZOZDJIZnRvMVpjVmxTeUgyWFFWWFRX'@; put 'YnNJM1BsOEk2a0FxQ2xxa0lsWjRPbVErbTUyYThMR1V1Q3hGM0xOazEwWDBIVHdoSGVLL09NUzEvK3ZjY2hUY29zb1NYV2pYQ2NrSGJSOHI2SzBsdTVPSEtrWm43YnhzWjZJZFNUZm9Hb0tlU0M0NC9sN2dMbzhWNlJUdTgvTUh6Ri9CZHViNEdKMEd2cXJvRE1RUzU2MkNCSXNxM3RKT3BsNVFm'@; put 'SVJwQ2ZCRjFVS3pBbmdKd0dUd3NtcVplcVlPb0dlV21WTUJXR0VPZzFYbU1GaGpEb04xdFlPdWR4bm9GU0JUbzFmVmpwbk0rVURKWE1BOGs5RTE1bWwwblhrYXZjWThqVzZ3VFEvZ2RiYko0QTIyeVNCa213d2k1bFFCTnBqRG9NRWNCcHZNWWJDbC9YS0J0clZmak43VWZqRjZTL3ZGNkczdEY2'@; put 'TjN0RitNM3RWK01YcFArOFhvZmVUNFhMZUFIK2dSWFFUOE1JR1hBRC9pcE92UkFrWTM4WXkyT2JjU3lKeVBOY2RzY3o3QjR2UGRYVC9WSTczaXN3VHlpczhUeVBUYjJLZE4rQ0tCVFBneWdVejRDdHh5ZDcrdjlValR2MGtnMDc5TklOTy93OG8yNGZzRU11R0hCRExoUjNBdmRQZjdTWTgwL2Vj'@; put 'RU12MlhCREw5VjZ4c0UzNUxJQk4rVHlBVDdxaWR2a3lxODJmVnRhbDNpOUpUOWR1ZGQ5ajVHMlV6dWl3QUFBQUJBQUgvL3dBUGVOcTFmUWw0WkZXWjZEbm5WdFd0TGFuVW5xU3kxWjZsa3RwU3FleXA3RXRsNlhSbjdlNGt2U1hwcHFGcDZJVkZRQkFiQmtWUm5IRWJ4VUVRQjFrYUJGcVVaUnhH'@; put 'Qlo0OUxpTU9PbzdvbTNGR0hiZm5HMFowSkRmdlArZmNXM1d6TlRqZjk2Q1RWTzc5ei9hZmZ6Ly9mNEtNYUdFOWlUOHVlSkNBTE1pSlNwQWYxYUFVYWtFZGFBaVZaRnc5bmUydDZhWmtiVGhRV1Zyc3NoWVpOQVFaWTNWYXI5VXJPcE5PdnpPWjhxZVNLWkg5Rk9HajhwUStvei9wRzNpU1VqN0xN'@; put 'S3hCT3BuQ0g1ZitEbmY4Mys2ZUIzcDZIbmlneCtmMTl2VDBIT254bm52Z2lNOTd4UHZBQXc5NGp4dzVOekR3d01wQTFkOExQK3YxQnIzdzc1YWp2b0dCd0VINE5PQnQ3L0VkdWI3WkhkMTExVldQWEhYVnJ1aXFOK3FGZndnUk5McitPdm9XT2MvV0ZzejRFTVpvQVNGVW1FV0VDRXNhTEFodVlW'@; put 'U2owVmcwaFVGcmtWWjAxOW1UZ3Q4VlNqVTJKUk11cDBQbm56bFQwcWNOaDhzOG9aQ0huSmQ4UDZ3dUt3MkhTOHVxRVZwZlIzMzRYbndEZWJESWg0d0lGUW53L1NWRXh3M0F0eHRoWEErcVJNT1pBWXVPSUsxQU1FRjQyWVFOaHNKc1lWR0JJSXI2QmJPUjZQWFdyQVlUWWlHakNGVldsSmRCSzA5'@; put 'cFNiRWJ4cmRiYy8rSjVYVllUSXArMFo5bVgra2srMHFLN0V1a0wvR2JzU3Z0SnlLN0l1K05URVF1dHgrUFhXRy9BajY5RjU2Y3NQM05lMlB2eFJlZXp6NEMvMldmeno0Sy8yV2ZSNENaMFBvRjBrYmVRQlVvaUNLb1BsTWJxZk41UGFYRmJxZk5aTlNMaFlob0FXMWtCSmFGQ1Q0STYzT2owVXFy'@; put 'VlFCc0JYU3d4NmxRT08xeXB4cHdxckVUcDJHdlhXNHhGSFpXWUNlQ3g0WFlhV3RLTmNJRDBuYm1zcWwzSGVqSTdqMXlKTG12ZGVyS3hkYis4Uk5YU1pkSEUzVk52ODYwWks0NEtXWjZpdlpsaDJ3L0twM2VsWnhwRmpzNnpidEhPNjMvNkptYnd1NGE2d3VHRnI4MDMxWmQzV0Q5SnN4RGl5THJ2'@; put 'eU5yNUNuWVhUdGdPb3JhMFAvS1BsYThheTVUWjhKYUk4WTZMVjVGT3FRMzZQUkhrVWFEbGdpbXUxOEFleUFzbVVVaUNCWmgxSk45TEF4Tm9wZHNnZ0NVdFJPWHpGZ1UzZUtvSjVQY3BnVWhBRXVib2UxYnpjOW5RckZZVlpYRGdWQ3NMZGJhMUZnVnJXcW9EamtxSFJXbHhYYWJ0UWdXVXhncUZK'@; put 'MTFObzdSWkFJdzZTakVmcHpFZm9aS3YwL25kTGlTYU5QN1RweC85Nm1SbXRxUldBeStaNlA0dmJ1azhNVHBSRElVamlkRGVPOUlMVHprcjZyajlHRWlqUGMxakVmanV4b2FKbUx4aVhvOHRUYUovN0lqR3Uzc2lEVjBTdnZxSitKUitnNGc2cnZwNDg2R2FDZWl0Qk5jZjUzY1FMNkF2S2dlTmFI'@; put 'T1RGczhHcTZxS1BlVW1JaFJJRjZNQkRKQ2FSc3ZBZXU1c2xwZ09JWVpvS0NHQnArdm9ha2g1YXYzUlNKK25laXEwNGJDT3IrUExxb3ByVjRhdkhNM3BkMDYwWTNvMnR4OG5iWTBnTk9sa3FBdnNlOTAxM0pMZHFLOE5McW5NVFpSUHpFOTFGZFhPUkdOblpUK01sbGMydE5VNzNjTVhOR3hPcG8y'@; put 'K2hyblluUHR2UWY4TmYyaGhtd2trcTF2SHczc0dlaWFEQ3ozblNJajBYQnAybHNhRHdjU2E2OTFYejJjbW16S0lJUXBuNk1ueVlQSWpPeVpJaXBGMlBiaVVXZUF3TVJ0ZVhraCtxZXRYcmZiYTdYRThIOHNlOTArbjl1N1BJeG9INjNyTTdpUFBJc0trTzZKQWkyTzFURXhrM1lEZzhDaXhBZXZ2'@; put 'SEsxY1dyWDVKN0cyUi9kOHE3WDlqUk5QM1hxMUZOVGFkYTJGdG8yS20xRmFNdVJFRTV6L05UdW1ZUjJxOUREcWVtbnJqNzE1RXpUbnRmZWRjdVA5ckMyS1h3Q0h5RFBvNE9vT1pQYU96SFVWRjNoMXVsaEVTTUN4aHFNdEJpdDZyQldTNWFBZUYxYUVFSUFlbURQN3M3MldJUFBXeWRTU29TWnBw'@; put 'dlNPaEgrOS92Qy9EZmc5UVljRHZIZmtnbTNDLzVudjNGVUFDeEFOUEZYN05kQ0RCdFpnZmx2dEpzd3RIZTVtWmg5M21yVUVidWoycXJUV1EwYWMzR0R3VzAydXcwTnhXYU5zVWlqdDFZNzdFUm50Sm9MS0p6UlpnZzVHV0FCQTdTV2FxS09BZ2JvREJsc1JncFpnRTlZVEtVSm43bkE3ak1LRnRG'@; put 'Z0VRc3RHcjFXcTlkWUN2VVd2VmlrTWZyc0JXWmZvdFJrNFpCaWtlZ3pBeWk4WmFDaUFWdk5ITlRzZzVjY2x1RzBHeTBUQjJsR0poVEsrSkZHd0pwcG9HMlFGRmhBeThEK2VBRUJhc2VZNEM3U2lhVjEyRTgxWUlwcXdpUnhQTHYvbVdmMlA0dTl6ejQ3Ly96enRMK0I5V3ZRdDlGMXFCQzVNOERL'@; put 'YUZDaE1XQ1VnSTNTR0hDQVQwVm11Mm9MUEtGd21UY2NqaDJMeEVFOWhWTzEvdUUwN2FzUi9RUzM0MDdnenVLTUU5R09wdW1jWVVZSVpsUkVPN043bmQ1R3JKZCtqenYzc3ZYMGdwNThFY1kzVVkxUG40RFV3OWlOS1RHWWtERWdBQkdvdGVKbHNrWTA1N1FoWHYvVitnVjhnZndVeHJWbUNtbW50'@; put 'OExZcC9tQVZIVGhrY3VsK3k0blAzMlRpbTVRSmswZ08yNGh6NEM0cTBTUlRBMFFIMXN4bHhJWWxET2JRRkVSS05iS29vcGlGNU9Mb0cvcU5KdmxIa2sxTm1DL2p6SlNCWXdrM3BiTjNqWTlmUzZiUFRlZG5vbkZadExwMlhoOE5tM2U5K25WMVh2MzdidDNkZlhUK3haNnJ4MGR2YWEzOTVyUjBX'@; put 'dDdHUTVnM2JnY2RMWU9lVExGc0pVQzRHdUVTM0dNTFhqVWFtZW9FOFBwcE5YL2hXdHFuOXE5UXRLancrOVltMFNzZlJRV1ZRenJLVWExbWJESkNNc0JhaUJraEtHVGlUOXFkQ3dncG5PczdrQklJeGJYZFdGRmFvdmhKbG5jV1RCc1QvVE52cmJScHFhWlVOK0JqMmVPZFl6TTNZdUhKZmVlYjdV'@; put 'c1JwdTZHeFB0NXhxWE92cXZIZnF6UlRhMkgzQlpBV1BYb0s1TWUwa3hqT1BEbU1Eb01BV211QkhCeXpDeVpnbUlFeVlDdW5PSjhyeWJzWHNOcWc0RXZJR2dLSmJBTGxPaGtreFFQUU9XbWp2UnRIbDZvb3oyZnpoWDJ4MDQxTnF6YTJvOG0rMmQzTldlbkFwMUxYeTQvM2o3U0d2SFRPZFZ3K1pN'@; put 'cXJjdWtXbE1wZkZlM0p5TWRVYnJPNitMVFRlMTc3WVY3dWx0M1pma2RPQ0hiMW5BdXhHa0cxZ2ZaakF5OEloT0MydkFDR3pORlVBZFU2a1d6YWpKWkNvd0ZRQlAyWXJvWElQZU1FNWFxYlhwVDFrRmZLdjBrQW1QWFh2NDhQSnY3NW5FWDVhRzV1OTVBL2RMejhEcTQ0Q2ZHaGlqRExWbldtd2c5'@; put 'Z3JNQkd2QW5obEI4QjFwUUlFTEFsbmcybnNqY3NBYzgxbnRBVDlERGhnNlNSa2pZcGh5a2RpVUk4Ty9PTkkxdDlLelowL3ZaTStnRVg5VytxS3VaNnp6YUVmM3FSSHo1VVA3eHR2YWhoTlZlSFh4WWlSNXFLZnZXRXVPQjdwZzN6eW9HdldEN1FOcnR3TFJCSXVKVmlPTTZFQ2FhTFNDWmhYbE5L'@; put 'Z0k4MUlFUTFrWnpLNjZMT3ozUXZ2U1FEQ2tCNHNNeWJPaHdvTHlpRnZrckFIQ09HbkwwUnBsazQ4ZTY4eGNQWGpIN2RsemU2NmNid3owUnhxbkVyanFVSXU3TnpqVDNUSlZXRGplalQvZmVMQ24rN0wyNXo2eCt0a0RFK05lYi85MTJicVk5TkhxYm4vSFNFZGliSmJTSGdnZDRtWjhVNWtwQTMy'@; put 'Q0dkZFFlWU9ablExMkxWZzExRnJFM3BUWENZTGdyNlNQNEI5TFB6cE5KaGRIMXo1SjdZZ280Q0hGOEJBRzM2TXYwKzNRRVpDcUk2SUtBN0owMEFNR01Pd1BrdzdWMVJRSjFhbnF4bWg5V2JnczVLdWlxSWdZcUxqYXpwQ1FrYU95b3R6ME0raWhRa0p0aVorZjdadnNidS9ydmJLcis4cWV3WmJ1'@; put 'WGYxbmgxSnprKzN0dTJaVHZYdGp3d0gvY0h4dnJ6azIyOXF4ejFXOHE3bDVLbEkvbFc3ZDVYTHZhMitkaStLUHRzZnFPOW9iNG0yQzlKV3VoSytwQXVPS0psK2lpKzUxR3RhWXllOTFSUkhzc1FHNFZFKzFCcXhVQ3p5cUphdEE2UUlzVHhCY1daVVNVUGFhTHpBWUNMSzlkdkd0NWh3TDJwYitJ'@; put 'aS9ZUnBmT1phSXJpYis0WlpjemJQZTcyRGJYMHgwbnoyemNaYjd6MGtmb05yUDlwbXRnZW9Mb1FDZTRxY3ltTXByTjBNb2RLaTEzcU14bWhNeHVzOHRXeEpTSFRyWWdGT1ZCdGxFa1pmSlBmSXVpVWFSVHlpZndzNWgrSkRyd3MwRC9Xa1ZrQmVuOFBtUjRIT09uOGZzZVM5WnhPcHdoaE13REhl'@; put 'cWUwQkd3a2V5cG9MTUFPOVA0NjlMNzhDa2NIL3ZCekVNUHpUSys2MFpQRUFmK0JWQ2VpSHlaU2txdjFEZEQ0QkNRYVZsTUU0SHE3eUlxcFNtbjAvKzc4WGVrZXZiMWkvbmI1bUhNRVJqVHFZd3B3SmpwZXB6U09yVWorQlNNK1hVcDljaEREODM4WU93SGRFejMrdXY0TzdEL1RyQ1cwNWxHdTBG'@; put 'UHhSdW00bG1BZ1c5UzZRa3FxTFZZbzNGclJsMHVsOWRWRlN6MkIzVjBJaklINTZReE1MWnpnNy82eE82amZjMHpBNTJMdDNjZGFvclBwUTg0Rk16ZXF1dU8xSFZOZFY0Vm4ybU1UTGFhVC93Zzc4clMrVVhXN3hUNnlYMkFtd24wbzR5NXlrYU1oczRPSW9LUXpEN21Cd2NwQllhT1FkQVliakpq'@; put 'b3hZYlo1RVdKTFdveFVlUmFNSjZVWDhZNlhTSzMwUDlLMWlHMVVDOXF4cG9uRlFhdzJJTlJzR3crcGFkNk1ERGFzbTFRa2duSU4zcXpxMzFlbkVXZ1V1OXhMcVpBRCtycEtjSG9aNkpudkhoUVZoVUpoUUsyME9CVUtoQUxOdGlRdmhDWVJYdkpGenV0RnZrRWlGQk1hNnlMaExNWXZjcm9sVG1y'@; put 'OTdIVnEvKzhzbmxSNWJUTTlGb2g3RmlWelEyV3RkeldXdTh6MjZlTHRLNERkN3k4clIvM3lmMkx6KzZzbkRQWXNkeXl0NXlzdGZlRjB6RWFnZHJtNk9uVng1ZXZ2TExWeDI0YjNIaXluUWtIS3FQN0dyc1BkVlg1Ky9TVGJqUHRKZ3FxbXFtdTZZL09MUDY2UEwrVCt3dnJ5b0xlTEV4dGljUmJZ'@; put 'eE8xTWZiMmY2VndyZnZnUndXUVpQV1phb05XRVB3Q0ZBUmtKVUd0Q2hWYldEd1UwdEdyOWNiOVVadW1oYURGaFdaYXhrMllSS1JQdDUrRW9mcHY4TjN3bi9rL05ya1QvR0E5Q1hBKzZ3YzB5aENKY2lIT2pLdElJbGhCQjF3amxaRHROUzhrSU1ySXVZV01CM0xVMnF6ZWl0TGZSNWZzY3RhWWl1'@; put 'SlZPbVpBYnBSSUhzeDA2cDEyR2xYUHN6aWdaYjVSRHplMGQxMG9FTjZCTmMzOXZRMHZ2UnE2L0J3NjZ2a2ZHUTgzampzcWRqYjBqUWR3eDlNMTlVMWYxVjZxU3VSNlBvWFpnL0ZRTmJlRGJ4V2pob3lkYVVsSnFPR0doV0tQSFZ0Q1AvQWczSlVGZ3FHYVBoSGt5Y0JjZXV1NDZiN0R4MjZmMm5v'@; put 'MXNSZ1lMR3g5MHgvLzVuZXhzWEFZT0xXSWZQQis1ZVc3anZZa3V3TFI0YXVIUmk0YmlnUzdrdTJ3TDVRdkgyWjJUZE81aTNrME1RY1l4bE5acFBEWm5LYW5hRXFMVVdQUXBoMU9DMFRZQjIyenY3cXhDTUhEejV5NGxmL09YRjlmLzg3eHQ5UHpzOTk0dkRoVDg3dHo1d2FIcjQ2SXhuWTJzR0FJ'@; put 'WDB3bmdsRk14RkZzbEY3UnJNQXVxVlFiWVV5Njk3RXcwdGczdGlkc3B5emVwMlA0OHVsUDhjZmtrVDhCekw1bGNWdkw1THppMmhEL3daVWt3a3AvVk5weFhwVlZENjhNQ0FEN1puSkxkYXJYK2wzaFhiNjBxTDBYZDRwMzYvN1liKzhLSlZKZ011QWhFcENORnBtUEdzMWlCRVg5MCtwSmNqRUpH'@; put 'aC9PMnlhbjd0WFh1dEcvdDIwZVNrLy9qTmNGdnVMNGFYUEhEcjBtYVdSUDQ4TitrODA5ZEVON0l2czh6K05yNVorSFcvalc5aWE2QXZWOHkyczhId2d2K1k3R1U3RG1ZQnNNaTZEalVyWFMrTkRGclFabDVpdUZyNlM4SjNjdVN6ZHNieU1yNkhzaEtQU3Q4bDU2VFhzZzE1b3E4ZFpmSkxHRlZT'@; put 'K0JuZlR3TkVZWFY2bXJRRFdDZnJqRzR6L2dJcVlhYzhvbWhtc1pFa0FZbkl6dEJjaGl6Mm9nZVo1VXg1bVFibnNzZXU5Zy9aZGRjMkR5eTNMM2VaTW9yODZ1YWNidEZTODcvSjJ2czRaNk9wRGJKMVZtWEtEWGt1WWhzSXNBaWJ3R0tYZFp1TTZNV25GU1FQMmcydm9uMW5HZmJkSS80N3IzL2xm'@; put 'UjJDNjBzZnhpdlIxNlRiY2VQeGwzaThJWXZDWHp5TXR0UkhacEdsdmlHNCtSNTBXYWExV091a2cwRW5TU2h4U3c4b2kwTnphZWRZZWVBZ0lJRGN2Y1p0NU9hekt2RHpnRlBpdEp0aUIyZVhmL25hWmZzR2N1dkRmQXZKL1RuOUticmxQOGpDajQ0cU1SeVJrUzQrMlhJOFlwdVJuL2VIM0xpOUxa'@; put 'K2lXdkVFTWE1UHc5UWFWdlpSK2YvLy93NWZsQWdlbzh1QjlTNzJuKy90UDkzS3BJNHNiZUxwMC84R0ZvZXNHQnE0ZDRqVExkQUdsMStPd05qUElIUEJHWVJiQXBnS21vWWw4QUJ5V1dGamdzQlU0QzUzV1VKV09Ccis5T2JuajlDc2kyWnJGM2lFWTkvVFFzOHZZbnQyM0wvc29PZCt5bXNtc3R2'@; put 'd0dqdzIwdHc5SWI2cHg0S0EyZkNaQkE5aEVLMUJIUnFCaHdMd1BvMUZGQVoxT1o5Z1pxZytGcWZCRk1BZHhneUttTWVSME9PMXUyb0FWOHZ1UWY3aDFMSHBWKzVLQ0h1bFhQWWRhbCt0eitNRVZWelIwOWZXR2FuSjRrdjZRbU82YjY1OVFJU3FQcDBLWUMraE1RZ05paWt1NGpMUmFXYVRKTEE1'@; put 'T3N0VnFwL0tHenRRZkJyL1R5akNtVGNxNElzY1BUcHcvL2RmM0xET1VTZjJQTW5UaFcwNDUvL0NiM3pDc3ZZc2lqTkYwYVAyL1NCdDVGcndCMEZFdUovVkhDVmFoaVFaWVZUcXFHb1dERVQ5RlU5NExEVGVRYlFTZVc2YWxqNTNxV0w2eGIzUmlZZnh3YzhjVmZhUFhwMW9qeTQzQmRsOW9zT3ZV'@; put 'bWRhckprd25zZ2M2SWcxeHA2MWh0SzFsZnlvUkhhMk9sTWM4bGRVZWkyZHVwbTEvaXM2ekJuQTB5ZXdLSGhmSnVYWThrQ0dieU5nUHZwMGZ1TVQ0djBuMXZ5eURhN2NvOCs0dW9JdDdvRDNZdlprS09aaU9zWHBwVHVSd0JCeUsrcVhDaXZzeml0ekN2dHV6eS9INTV1YTUrTXJvYmRQbXNUdG04'@; put 'ZnVsMHgwSG1zQTB3SGRLVjgvZU1jYmxqR0lENmVoWVd1YUxncVNVaFNTWE5HQ3FjMGxqb0JGMUR5YmZrNzUvRXY3Ui9RR0dQci8ySFZMUCtnS3ZRRlBDZUFqNk1sSlpEd0tDbnVFdzFjMFdEeExDVnFTbG1wTUtIZmduK0UzWVgzbnl3WWRQUHZ6Z3lYOVpmdW9MVkZLOFRzenNhNUw0MTM2SWxM'@; put 'N0pwNWc4QTNsbzBFSFhoSVpqcVkyR09hM1piRFlyeFN2TUVybzBzTjd4SjdEd2pxOTk3VG9zU0d2WGYrM0Y2L0NjOU5kWWxQNkFaK0hUSDdESSt5NkF2ajhHZmV0UmVhWlVSM2t2Sjloa2I5ekd6bTdrUG1ITHFxUmZYZi8zM3pvai9lWW9Mc0NmbHA3SFBkS2k5Siswcnlib2E3ZWk2eWsrOHlH'@; put 'dG5IK2ZDMm5ackd6R2FlN21nOEp2d3UrVDNrR0twRlA0ZzJ2L05rSEk0c1NheFBYOStQcTdjVC81N3R2MHZwSkFXUEExL3NablB2TUcrZTdBV2hzd0VGNy8vZm9GL0xjN3hCc0ZzR2YxbCtNRkhtN0VLQXJqaFhQaktmRXdhb3JSMkNnZEQrWEhjNE93VDhGWDlJRUhmdi83SnZMVmdUZlAwKzRU'@; put 'K0pQNEM1eTJIdGNkNmN1NFFLcXpDQ0dNVEtPbHArVW94K002MUdkUDJ2MWgwZi90NFUrT256a3pCdHJuMTkvOEpwMnp0SDRsMmIzK05BeFh4ZnJZSVQ1THV4QUJnWVJNclQwOE5NejN0WXRrc0p1OEFtM2RySzBaV2xKcGY5b0dQaUFmTmUzMmR4MjRkb2g4MmZIbjNLZXJCNXZoRDhRS2ZCRkNO'@; put 'MlljeFZqUXVFRVJXTUZ5cnlqWENqcXRCbnc3QjdoblZRQ3MxUkh0S3ZNOXFRRmZrdFZqNm9ySjlPZ0J1MmNyQ09VcUJxZVlaUE1acDhlRGtDZmtDWG9yWWRpU1FOQnZOd0JTa2NzSldGVUhwbktPckEzc00rWGNDdDkrOWNHeXBmalU4ZlJTeThqdXpzSE9xY0RSL2JaNWMvZG9hcVE3UWF4bkQw'@; put 'a3ZEb1lqZTdPSmlicXlvcGF4dXVGR0taNnM3M2MwMWRURStackhRTjVNZ3g2eWdaZnk3QVdMRVRRUWxsZFpEc1JWbE0xRldFcmtjQnBkSXVnaThGUzlBT1RkREVSTnNnMkJOOW1sOVNxSGZUc0RBb3pxdFdMdWI0Q1pCMC9WWWJjalpQZlp2WjRTbURib21FMmh2REJsQUtzU3dWUGJCNSs3b3JQ'@; put 'eml0NjJwWXBEaHlvWDI5d2pOVFVqMFliaG1wcmhCbUlGRjJIOGh2NVVmQzk1UnZwdExDVzFSS2RUcWFsb2RDcVZtbzV5bW9vQWZVaEFIK1dvTVJNM0FoNUtURERKVW1CeUllY3RsZXpzTGJrdTZTMjlmdE5JOXNiaHBrT2hYbmQzb0dFaUdwMklCbnFLZThPSG04MGpOdzROM1RCU0crb3NyVWhN'@; put 'eHhQVGlVcFBSempDOTQvYUVjMjUvYk1LNnYyamlHUjd3NXdCOWY1Wjh2dTNHWWdScWNqQ2hweElsZjJqZ0lXWEJHVDdKNytsME14NDJnaXpkZjlzSWIrVjdoK1dDVDZQSkN2WnRIK2srVkRGVWxzdjM4VEZ5cXZaemtYWkxwSm4xdnIzeGxQOU40eVB2Nk0vRmNPV3RiczI3eCtOMmJ4T3dyQi9M'@; put 'dGlVVEthRDBJMWpoNjVnd3hCQlE1WnpNNVhuTHhPZEd5eGdkN203ckxRRW1qckJqNkx6RGZCdFV4dGZYanBIbmVpRktlT0ZhWGVuNzVybW9ldUgrczhPanA5c2s0NFo1M3U2NXMyNHlUQ2FHYTBxemdRaUF6ZU1qNzVqSVB1ZS9UMjc4UlhacnE0c3BURXZmRnNrMzRKaDkyYU1SVmludFdLa296'@; put 'RWx1bGxsU0tmVExvR2xWY3lDRTJoQmcrVm9JaWdxVDZZVUhBTWRTSjNWclMvbk04YWduNTJ2aWFLSDZ3Zy9sZHM4Rk1icFVlZjgxdlhYSHh3ZkgyMHZhM0lHOU9WRnJrcWluWkltOE9OVG5aMFREbXVQM3VUM1VEeEcxNmRJSStDeEV0V2hhek9XaWlLaTArWmpzN0tJQkRrSGFrTkhWcWxodUNS'@; put 'cWlNenpES2wySmlKeklGUTh3a3dwSU5vRUJpS3lxZ3FocXJxcTJsQUFScXdNQllNQktpS3hWZVoyN3JWMTRJM0VreUtxczMvUzJIdk5hTmVwVUxoc05ycG5xWEt4dGZkNFI4ZngzdGFsQ3FESC92NjV1WDZpbFJJOXE2Mmh5aEZQeFdodnRqN2VkWEp3OEdSbk1ySkh1bWJ2d01EOC9NQUFQL3Vq'@; put 'aHJDVnhTVlBQbVZqSmhQZkdqZGliQVFtTVl0RmxpaFdzTXc5YnU3c2IzME5iL0lQV2JSRGZnT01Vc0N0UGF2RDc2QmhBU3JoWU5ma1FKcFZGbkw0OXZuNHdkN0dVRS80MEtIaWVkaVc1TDVXNlF1NHVYWFkyK3lWL2dhazJWcTFMT3M3NFB1VDVCL0FqcktnQVQ1dFZ5NG9YVXdweFNyYnFaNk1B'@; put 'K3c1VEEyTlZkWGplV282V0FvTHpDeFNyZDBVcVJiQkNqamc5NWNVKy8zRmljT0h5YjVBY2JFLzRDNE96S3o5a1k2Ly90TDZ1RHgrS1RxU01WcEF0eFppRGNsUnQxWTFGMEZncEtzNW9BUE1lRFNNdWhFQUNJaWRQbTE4Q1RLRlJkRkx6U1V1cHh4SEY3ZkUwV1ZIZ0pySnV0eEVUOGFMQ2tyOHhS'@; put 'V0h4enJ5RTM3elA0MzZNYVBmUXdKcnIzYnVZdnMrQ0F1Z1o0WW10UFFGQTNQU2xKMjNjZzFJNTRRMzdMbVZhenoxQzlodGNIWVgySzhiM3N6UFg3Qlo3Y3dpeE5RWVlpb01YT211NzU3OTlKNURoOWF1eFI3cDM3NC9kUTYyc3dmck9SMml6OEY4Qk5UT3AyR2l3UXc1SUNKUHdLU0trWGpZYjBv'@; put 'QWJYNyt5WHpRWk9qUUlTbytrYkpPb1E5NDIwL2xUeW5HMmlxTVdFeWJNcldMQ2hidGtsN1VDVnF0TmF1aHA3WnNXU0I1NEhmNlZnZHZpVTVYa25zNXowSTFmdVR6VysxK3U5OWhBUG1qb21UZGhnOUpKK2RlK0U3K1pqcDJzQ1BlUE1DK0hUN3NHSXMzejdwdCs5b1VDbTl0R2VwTlNjOHBQNGwy'@; put 'S0Z6ZkhJczFJeFdmV3NHL0hydGdOUlBPcUhRTmR1Wk9hYWs4c3FxNWtOSFVGdjdrVE9oQWRwajhaaWJVaWNxTVpSNXMycTA3ZkxoNFRzMkRuUTNTNDBTYkRjY1UvVE1LYzlvVTl5aDV5N2lINjlKeGo5ZHZ6SUxwTUhUakNCZ0t6SEpvaU82S3dqL1pjQmk1WVFqZXpZRGRFSjlPY0FOQ3NmMm13'@; put 'UGF6TXR2aDZHYmJqMnB5SGJndndQeDVBNHhpeU00MVBaTUttMjFERmN6YnNOTVU5UDJQN0RUcHY4bmo4OXZaYWRRbW1nS2JTRm5YUnBzb3Y2NFNsV0dTVlhRU3MzS3NtMnltRFRDWHNGK3NtMVhRbjJDL2FOY21zQzV2d014TC9WdnRUM0RiOFVsWWx3bjFYRERwcUtjdXI4cktGQ2JZTXR6OFpN'@; put 'YUFVNkhvdkZsSzdZQUxJR1dZbUxFMUpaMEtDYis4M0xQcm1IajRNUDdIdHBuSlB1bWZpUFl3ajdtOGpsK0U4WUxVM25WZ2dwM2dIY093SVB4eWtaZVN6WkdYSUFvRWFnUE0zZzJwUWk5WXNUUzRUcVp4RjBMRjhzdG5HcUt6YzVHbTVvNmxQY2YyeEEvWFJjWUdxcFB1aGtUellQekVqTGs2T05n'@; put 'VnJLaXFzcGIyZEF4TVY1VU54N3hsam1LSHhWclpIaHVhby9ZU3pIR1JmQWpzcFdnbTRzWTZHdVlGcys1V3FrdklBajAwQUNTQVozYUFtM0xNQnJMN3FCRVU1TzZWVmM0ekFvbExEN0NhMG5qUjJWVFdQam8rZnZENjZ5dGRSZVg2RXF0am9oUEhwdDcvL2lucFZZL2ZwT2M1U0s4RFByVk12dGho'@; put 'UUpLVEx5QmFaSTJwY2dmZHlsTlo4T2M5UUM1ZlFNWDdXZXhmWlFaVFJjVm1aQ1VXS2xhYUZTRUR4UEpIRUNrZ1pQQ3c5QklWTW5oQ3pza2hkVVNyNU9Rb2tRekZCclRhbU1kdDU2RVgxL0Y3N3puK1R3dGcrSnpBZDFNRmpjRXFSa0kxdE44YXc3RmVPb1pUdm56TnpWTTNuMTErZE44Tk4rNkRI'@; put 'dCtKYjZGZmEzL0VOMHMzNTJOTk51aWI1WUFaUlEzTko2R2RZd3g5QzBSMUtHQ3oyU2oxZU1PaTN4NU91dE5KMFk3dmU5LzdUM3oxdVpQdlBuZmkyYTgrL3p6V3IzMys4MjlLYjlCK1M5WkhTVDMwYTZYWk1DWTlnU2xUSTRISVhWUGlQRURuN21IRWFVVkZOb2M2TE5pRkJiYUtRaXdlcjNXVisw'@; put 'cDg1dExYTG52Z2s2cy84ZXh1ZWRJMVdtUnpwWWxlT29vL3VuYXhMNFA1V2tCODR1L0JtRHZFZWF5WGp2TWtzRS82Q2I1SGVnMEhwTDBqK05EOGlIVFBQT3UzZW4wdlBrSytDRktyT2hNc1ljWWxhR2s4NVBNU211TUdJTE15UDJNMFlYVlIvVTFEZ0dsUVJpbGdzekJOS0hZWEVxZWJIeFdLbE10'@; put 'RWJONWZqZXNiVXhGY3ZUQ2hiMnQxNGxBb0hNU3VsamI5UFRVRFRiZkY2M3JxNHVmU0E5WDZib083dHZvOURlbUN3blRESGRXMXhZWnVHT2V5OVF2b0NSWTMyamsvRG15SXk0YUhsVncxbW4rNUY2K3lkUUIrOUN6dVEwK3BobndZRDdJdVp1WFRlNFFuYU80MkVSMTFidEJwWVo2QmtxWVpKbWtR'@; put 'RHlLUVA4Z29XQTlzVDIxYml3dW1IZ3BoWjJ1YmZoZGRGQld1MWZ0M0xSdUthNnZ2YUVnWEZxUWIzbE5kNnpaMDY2c0gwdWZZd201TDk5Zm9hZTU1QzY3R3QrRkhyU0l1V0YrWGZva01qeVA4dFBSTGxnM0JjOTluMExlWWJMV3dVeXM2UWFxUW1WSE9jcDNzOUx4b28vSExERXVlYUFpMlRmSkJP'@; put 'WG1nNVV3Sm1GQkt2c0JhUDM1TjhUOHZZSW1NQVM5NEtXWXF5a3RMM0M2SHZhaEFTOHo4ZkFwR25aYlQ3a0hjbDdJY09wNDF6bVBYTkYrY2Jpcm9UbkEvQStBamcyckJQNXlLVG5VY2JtMDUwakhWc052YkcyaHRDL1ZLZC9jME52WUVhN1daUHZQWVZWMWRWNDRWOUhScXE3MmR0U2JwTDB5Umpw'@; put 'c1AyUEdDN1dBYno0RkVaQXhzeVRMVW04bkFUdEZrSWlUU1hHUVJEMnN4QWFFcUVuWWN3dnd6bWxVa2l0eTVSenpwcTh4cUR3WkFzMURqTHVqMHB0SXNlMU1kN05DVlk1cDZSc2JXZmpxVXliU3NaQWF1OHd3V1RNU2JoNTU3Ym02dW9mYWh3WE45bDdmTHAyeTNERDZranMyNlVFdW15WUdSQVkr'@; put 'QWl5a3l0MlJGaHdtWVRXREdMUnRaalFEUGVYTTU3VGFsQnFESVJLc0FXSG1GVTBrb2hTL0c4UGpSZTc3eWxhOGNoYTk3V0RRWER3NW1CMCtjZ0cvNEtBM3BzdjNxSXBQNGF2SWN5OTlKc0NoaW1DYXRBdjJ5d1A2U1ZxQ0l3aFBiWlBEUUFLUGErMGlvUGk5V1ZycGRWWlh1eDlqUEtoZVpwRCs5'@; put 'VHZxTS93UjZyVUZKL0gvdzN4WDVjSjBXRlFtNERyMHF4elhIOFMza3JyY1RFNlY1T0YyNFIzcWUzTlg5ZG1PaWJ0Ri80ZUFIaHNnckRsbHVCOWEvQVg3UG83RFQvZ3o0NGFEcEVMbUpxdFYzVVMzR3d0cnNXQ1BFdEFKV3pCOTZtRXZQTndvSExtdHRYczdnOHJHell6Z1FuMjl0M1p0WXF5SWZY'@; put 'VHNLZlhlaVY5Q1hRSFdaNkptaVNqQVFLakltVk1tMFRTcnNIUW9FU2t2aDZ4WDQ0ZmZEUnpuZXU5NkoxcUZCTVRyRDFtWUJlMFZqTjVCOFZNSk1veEpnM0lPcTFweWtTVVFndEZmelV2VUFPMzBCQzVDQkFHSGR0Qk1NMTluRnlHMFBCQUpVWjFQTXNRUU5GbzVRNVR6U1dwTlhxMXNqSlRHcnM5'@; put 'enY4QUJ0V214VjdjWDZTS2c4MkZCVUVIVTdMSVUybzIwc3plcGpZckRudjJON0h0SFJQWStnN3pFNkRLK1A0SDlsc3NtTFdqUHBTcWZEckNIODZJMGdPbEZHakZ4WWdlWTVnR1IxNTYwcWR0bXRPWnBFYW5IRlUzRVNhYmRPTVZsQnR1Q2tMTUZpbS9PaTh1Sk11bXB6WmhTYk96dExFbTRxOHRG'@; put 'cUhxdUlldEdmb2M4aC9lTUVQL1k1Sm1TM2dUbUdIVHZBbkZWZ3NJZ2UzQUhtOGh4TUFmcm9EakNydWJGVzBMMGNobXlHZVRuWGp3bDljeU1NenhNU1hnTVpaQUZUZnpEVFo2WHloMmw2Y01KQjh0Q3NOTDFtMlFBQ1ViY0FkcVo4eHFQbDFoSno1V3hGTm1odGtZV1NDU1FrVmpKSFVqU1pDS3dD'@; put 'Y0ZHeVNnYUp0TGJuREw2VE5Fdml0M2txeVYxM2tmT0wwb2Z4TWVrakxQZWprK1hxcERESmxOYldDRVFqNmlxQU5NdXhCcGZaZ0c2dG1BaGFtZHpyNmRHc2dFL0NONlE1b1FRUFpma3RPMnVnM1E3QW5EMkVSZzJvQWR0QUd5R3N1ZWx0dDZxazlVQWJXZ2szdkdXelRHUnpDNXJYUjQ1czE1REgv'@; put 'V2tjSVlVYWc3WEFkbDRuVlRVOEJtdkJzbWpZekgzYm52Y204Y3VMZ2NHRzYzb0s5WldiV2RNOWMvZk01b3lseVVpNEw5cXM4VzdrMkdiamtVL01iY3hnUW95bVdMNFBvL0ZxbVEvZXlXZ0txMmh6TTh3eDlQZ09NR2NWR09DRGEzZUFXYzMxczRKT2NwZzhqYTlmcERremJLd0luOC82KzdiMEE2'@; put 'SUNKMVF3eDVCbk04ejZyd0hHeHVZVDRmTlpQNzhGNXQ4QnBvVE5oL2V6c3Y3WmpmTUJmcXFGYjk5bk9RVGxOTHQ4bzNXeG9HZG5EQWFWZVdHeHdJOXlTeG1yOFhOQ3N3TFFOY1o4SElFNVRFbXJFa01BM2txS29QRHgxM255MThEQXI2WjUrdGV6K0psY0NoaHVXTVQrdFVkNEl0aUxpLzhBT0dE'@; put 'NUxVeW14R1daY3U4V1BMR2NEWWFuaEx5M245a2lkemJESE1PeEhXRE9LakN3dDEvZEFlYnlIRXdCZW5JSG1OWGNXQ3ZvdVUzeWkrWk0zWUZmSlE1UUFyb25kQWpINm9KaDRJeHdtdVpzdXZHSHo3MDdjKzYyN3R2T2RiNzczQjNuM3QzSlBtZmVmUTZ4ZWpVbFI0Vld1ZGFqYzdKLzY4SWFVbGRi'@; put 'WGxaaTF0R1ViS1FWUmp6c3FhQjZpdUhwUEc5UXpJSXA5TGplbGRWdE9FRUVnMEo5cE9UaVI0STY5WEZmcGhDWXZUNFFDZG5EZGxaeG9XUnhoOEE5VEtzeVVKTWljcmt4RDQwalh1NkZYVW55MWVUQis1YlNxNUdHSS9NTmpjRGFUVWNqOVVmbUpGUlpoa2U3c3NEaE9ITzZ2NkpNZWlLVEpjVTM5'@; put 'QzNkZjlCWG1WcUozOWdIdk8ydGJGeVJmanp0d3pkVERwZitNSFRkUU1PMFg3cTVudUtlNVdtd2ZXNldhZUhSTGZTeUdlWVkrdkVPTUdjVkdLQ0Z6KzRBczVyclp3Vjlhak9mYzF1WmpkVXVqL1hjeG40MjVlODBaT3FBT3JRYXJGM1dZZm40SzFlRUNackw0bkpZM0VWdWE4aGJKUEtzZ3FRcTJ5'@; put 'bVl5M1phZVdaTHR0T1psdFZNOTByTDlkOGJhRy92bDlaeXNTdmlKVjhEU1RYL2xCSHNkaG91cVFmcXFBQWRBRXBNb01kRStYUlR2S0REY3RpNlRFNXFYTTBCcWw3UFo0ejJnRGZncmZPelk2MWNqRlJVcHBwU2NvMVNpbDZnY2VheGxpT1p6T0htZyswMFczWjNlOHZ3Y0V0N0pObmIwNWpzWFNi'@; put 'bXB1bG9kTHJwV0xwaVgzUFRkR3llNXNuT2RFYWk3WjF4bWpNS3VPWjVBcThBcnZ0QXZ4UFV1NGkyZVM3QUhueEE5ZnlpQW8vRldUWDhDN25uQlFQcTU4L2wrbCtaVUQwWEtuUHdwaHM1bjhKejRVTmdIMFpRRW1Wd042L3BMU3NETEhzOVlJMDRzVkhmakhWR0F5R2lqbnAydWhHNWlIZEhHQk9G'@; put 'eWI4MmJQTjZmcDZQRXdIQ29sV0dxMGlQZEtKZXQxeGdJRXBHZmttMjBHUVdxQmJQSnczUWNac3UyY2FNY3kyeWhkaGtVZ21Nek9hR0tOK01GZzYvWlJkZ1JsUTFOdGJYSTlTWWFleHFhNmxQMWlkaVVjQmNuVDNnRHdRRFFVdk9yRkRTM0xka1lQRHppVTBIdmlCek9uRHV2UEZsZnZxYk9SbjBY'@; put 'dG03ZEVLVm5qSFh2VkFTV0czYmZDSXNmYUEzVExNMmVscjQyWEJMSXRFeU41WlAyNGpYUnhLcWsyTHBEbitiUCtCb3FxbU5zYnlFVHBhWGtFSVBaY3FEV0t0cERCR2RObFZLa0s0RUM2aTRFRGE0QUx4bW5Xd1dCbWg1QUFGalFRY2NwV09zeDByZGVOTEZBWkRDSHF6WWRVRUtDM0EzWFJvNDQ5'@; put 'c0N4d3JnaitUQXRSVDN4aEN6M2hpM0JuUi9vdUZHRXlYd0QrYmlscTJHVzNIMzhhN3RzaWNDZFpzTnR4YkQyT21lTGRrVW5MOTRmZ0RsM3lITzE4dmJQYWQ4L1JIVjg0c0tQQllYMWZEUDVmcFptV0hQMTcvR3p1eG9QOS9nL2QvTzRXbFFMS0o2ZnN6SjRYOEd6ODJzLzIvdy9oL2t6MzhNeisy'@; put 'c2Z3Ni9jaStQTDlHYXFVN3lUVlFHVnRiZWpMMkkxUWJLbHBQRGJqUGlvZXhqcGZRWVR3bmVXemRrbDlKRFh3eWFBSk5WOVdOd2Q4dkx5MnZMYXdLK1VKRG0yeXNxV05HKzdoQTFLVUxjcGlCeThxbU8yOW8vbis0NWt4MDkyOXQyck9kQWIzamZtZkxKcW9hbC9nTVZQUVZ6MWNPeGdYbDY5R0g1'@; put 'MU5LZVc0Wjd6NDRPWGRVMVBqclIyQnNvcmd5bjYzckwxMzYybEkyTzFpOE94OGNqRkUvOFRJL0t5MGt1TC9mbThUM0s4TGViNC9YMGRzL3B2ajJnZW41UmdjZmlGV3I0RjNMUEMvYXJueitYNjM5bG1jdmRiblJFcm11MmdNWGNsZ0h0ckZQT3pCRUxUU0VOa1A4c2tMOTJTUVMrMUU0d2o5QlRW'@; put 'QXJhVllrazZxbHJyajVHQjhkUVhhT0VyY0dncHlRUUtQa0ZyYVg2bHZ3TC9sS290Q1FZTENrTmRjMC9yM3lFT1NsbmpHNVVoV3B5TnBzRGJMWXdRTGxOWUozcEZac05uZ3FxcDl2YWJDWGIyV3pxQTdMdGJEYXYxMXZqclE3YXdyWU5OcHZhWktNV204WnQ1d2FiaXhwc1lRRUVaemc0Y3VQUVpF'@; put 'L1ovaDVmQ0JoNm9yOXNmeThJdTUvVXhLSzdvdjg4RWZYQ0ovekIvWW1oRzBjaVZXT2hoU1N3Y3IxMy9MZHhiUElBTjM4UjJMazlLcjNoWWZ2R3oyam8vczl4dWppSXRubE82ZUpEcXVjWEZYZ3M3bFhEUDVmcloyVTNmODdQSG1nLysrVis3bGFkcS9LY3JBL256MVczVFpmYmVyYTZRN3JjdG9l'@; put 'dzI3K1dNK2ZvSWV6YlBJVzEvczlQWVlYVnJlbHlPZHc4SitNR2NEYUpWREdYbGx4YzVpajYyQmEvaHRzL2QrWHNuNk9EYUx1WURqYWcrM1pvbTdPZHNHR1N5OGJTOVQyQ0YyeGZOL1RTa1drdHdVQjlXSWZKaUI1TWJ0aHFzc0xLZmVpOU0wRFBTbG1kSFkwV0Z4ZVhGcGNHYU96RzRhVkJCeTJQ'@; put 'b2FYOVlWNEt4bFYrSW0waWd0ZWZpSGU0QzlwemRXSEZGZVVsWlJicHpqdnZxbWhOQk10NGlWaUZ1OWhqeFoyc1VFek9POTFEZW9CbjZVMUNUM01HTFBPQTZWV0tpZUNBcWRWSDlJSmVGREhXMThDVW1XVzIzV3V0L0ZybTRScm9XZFFUY1ZXcFpDOEJ4MXF2NTVGQ3QzcUpua3o5VmxoUTNCYTVB'@; put 'ZG9FUDUreDF0YldwbW9iUXdFN0dFMWhyMUVzeTZFbHRZUE41TFFxaUFxcE1saEpEMFZaeVpZazFwV3JPZXArcXlTelVnU0d5L28zSnJQUy9GYUd6WS9sazFwbHYvaHU1Z3VGWkYvbzUxdDhLcDdMU1hsM1FPYmRENnJhbmxYYVlqMTZiSWUyRitXMkJPdm5PSDJ5MmpYV05peTNQYjJ0ei81Yjhn'@; put 'ekFERElZaTlBQkpya0JZSjRXTUFVQ0dEbEdBcFQvemx5TzU3VWdUMHJoeldzWGJCcGkwQ3VuelNHcVZqQVN0R2daTmdna2kxNHY1OURSVXhGK01RVlBDS0xTcDNaSGFDYkZhUk1tMWQxRUVVTWJXeFJlc3NVRzREeWNUaWZuOGFxQmFUelA1dkY0YWowMVlYb2lIL0xMeHpYK0xXbWd5a1VnYUhN'@; put 'MnhiV1pEZWtVOTk5L0tDUDlVcDFUMGIvMmpDb245R090N2Uxclg5K1FWWkdMb2JYa1ltaEg0Zjl0OWh2c3VidHk5dHpSY2JSZC9BMGIwWGQyYUt2WWdnTEFmSkhYeUFIUDk3RTdGZ1l6ZlVXZ2lLMkFPMzZHVExQN0tlT0pDMGdVNVlBeUZmS1dMRE1rZ0RIdFd1WFl6ZUduVlRaV3lvQktQYUpm'@; put 'NFRPM3pKR3FBc1ZoemxVVlRFNUpUeWpWaW95SG1wbUk0aldHOUt4eWhlWEtobEE5ZW1mR1JyMktFQ1phc0IySUFXd0JtZ2xmQnZSUkRlYStScXZUTE5OZ3JiTGo4dTA0TEdPR1NRK21yWUlLS0ZzL1ByeGRDNXFvV2hRT2grdkRFWmZQSG1yMEIxbVlWOXkwSXQyV3RGdnFHeUE1OWZiSDJjTGNJ'@; put 'blc2Z28wcHVOWGdtVW0va2IydVVuZWhzbktiRmF2eWNjRUh3MmQ0U3U0MnNWajlOckhZemI2QVh2WUZXSzBtbzVGYVdXZDllVXRibms5TGFXU0U2NnhUY2x2cFo3VE9rN2NGMnJHUVVzVHZmd0I0d1k4S1VRTnFSZmRrSFBXVlJDOHE1UW9DdlE0RURYSDVVR2VpUnhTQ1hyTnF3UGw2WGxIVUxv'@; put 'RWJyZFh5MCswbGZycnRvWmQ2YllVMllwM095dHVnVFMzQW1ZNUdhWVEyMmhwdFNTVXREWmFHdWhxL3Q2elVhYWVSMm1Lell0clMrNmk0TmV2K0U5SjJjV1ZWVmRnZk1EZ3JxMXovL1pZWnZKTjF2cksyaHBKZ1RhWExWVFg2dHRKNXdaZDZEWWl4aXZFL2oxa2ZYZi9VbHJqMjl3Q21sUEUvOTdl'@; put 'T2Zvekh0T0xyZTlEcndNTU9udWRBc0lQbmdTaFhlZkFjSUs0ekExNlhsNVhMeUNkd2FWb2txWERxNjVSVUxlWmxIV2RQcXVzY2dRTHlrR3dyME56WmRSanJCWFlXN2FXNTYwNEgwUWhlSmpKMHFvMlZUWE5ManFOWTBrSlZSV214MjJVcDJEWXYxcTVNeUsyZTBTSDVqSHFZenF6Q2JUOGM1MVBM'@; put 'bjFXdlZjRXN5Mk1tSFg1OTdZL3lOSUZtYWZuTlUva3pBSkIzeGsxeFNKWmpDbjZ3TmxmSGE5MVN4enQ0K0RCTmNvTCtab0FIUGdTNjBBZTB6bmdBL3l2M21lRjVCZU9OY2ZuNXA5bHpWanZMZEg5VTF2M1dMZndHSElycmhmY0F6SVFNNDBJWE9Nd0ZCWWJYNEQ2ajlBUDlQOHowTkZicGFkclBZ'@; put 'UVl6SWNPYzN3akQ4L2xKTDlCSUFjMzROSnVNQm5DMUJEMVJxcEUzRmZZV29BSm5yckJYVEZFaVNUdEZKK21WR25idFdybjExc1ZGc0FFWGF2Q0k5UFBlaGQ0Znl2VUNYcGFYbk0wVW1JeWlqbXBnZlQ0djNRUWZpK1I2dmx4YWNMN0V6OE4rVXc1YjV1ZWZkTEw3c3pETkM1VEh4OTdKUTJOamh5'@; put 'Ynh3UnJwSmF3TEw0VHhuUFNEbXR5WnlVM0ttUW5nOFJmYjRScDg5bGRrbjUzYVdmZHpXd24yNzJHMnIzRlp0dkhZNmhBOHR4S3JBZzg0ZlNGbld6M01aSEJjbHNHZjMyR3NpN240Z1A0NFVwMlR0T1RPU1k2aXA3YllaZHh2dml2bjR4OWRRTnVkNStEQ3pXY3NjdHVwZlB3QkYxNG01NkdDc0g0'@; put 'Vjl0Nkd5dW01ZmU1MkFUM0pYUzlnb0tYVVNxNFk4OVRLN1dVdUI4c3I1WXE5Skg5Y25FdXVjR0pyM2d6cTQ2cDk3ZmtEOXg4OGRQOFM2WkhFWVhwMGVicVBLL2U1ank4dTNidTBLSm54ZncyY0hSaTRrdDlGQ0hNVy9oMzBPMTFYQzVyS1RMcXhYbWNndEFDWmhRZUFoalJhdldiWmJDQTZuUklL'@; put 'TUlsR1FSVU1TQ2I5Zm9TU0xjbm1wcFEvNFkvWDFVQjNYbnNnRkFnV3dMdzNobEh6TWw2bHRqV2JiRHBaaFF0bFBIN2Flem9ZUE5NenpOS2JlMDRIQXllN0ZUVXVYYVBLYzhiWGJxaXI2V3hLZGZITTU0N0dWRHZUNTBTZC9JeXZwSnBkMXV2SDJkNm1aUHI5NGhhNjREbTNkRytuZVd3dUs5dCtR'@; put 'S2ZIR2YybVpEcTl5T0dsbjlFY1hSbWVQby9tYklqampINVRNdjNldk8xWVp4ajlUblA2dGZHeFdPMHptMmVUUE0rUGJLRjlucXRMNXpuRDUza0V5WFhUbmF4dXVndjlkOFlWajVXWGFYVDZFcXpCeFlWRTBCU0F1YURaUGxjQXpNOGwwUGt1N3ZkcDhkWlRmOXMydVFKdjNXcmJYSUczYXJaanJz'@; put 'QTJEWG11Z0RrWThkUDBISy9WQUY3RkpVTE5vYmRSSGs3YXJyMWltNkN6KzMycmx5b1pQMzVTdHpuMmJEeDB5Ukp5ZWI5WXpuVUhXZ2ZqQ291NldBWFJpdVhBazZXMDRGQzljNks4YzVHTk95ZUt1aVZFS3pCUVBpSzBKY21qZnRQR3ZXV2p5aTI3RGJ2d0ZxM1lFZU4yMjdhMUhkODFVNkMybW0y'@; put 'YUh2eVpTNTBQNExmS0xNY3ZIaHpmTHNFanZoVGVNZDE4MTR4MmM1YUhObHk1Yy82NWlqZlBLcndKZkwyNEEyOWVWSGdUNitzNGI5WUFiOUs3QXFyUUZ6TVdOeGFReXd6S3dFVHZJcFMzRmdBMTdLU0dubnlTRzJpUVQwNHpNdWdKcy9PMkhOaEVhQk1OUFloNU8yMHlOWnZBNVdPYkxhMDBOSllJ'@; put 'Smg1TXRvbzY3SFNicU5mcEZYZllJK3JJMHpzTzhENzcxbjN3T09tOUI1dXk0SHB5MXlDd3ZQNU9sdGZmZ0w2V0thN0JlcUhXU1F4NkJ5YUdYRktmTmtmL1dvMzJWaU9HaVdMRFNWQmNnR0ZhVXlnSW1nVWRyeXprdVh2SWd4UXMxZWZiNkEza3ByZHFsS25kSHA2bEJxSWpxbVlDeFJPVjJ3Mm9u'@; put 'aFVidUFGVE5MS2gyWUdTdHhZZ3VDbmg0L2dXMmsyMDUyc1NBbVhWUlp1ekNKdjFvMmwxbVVLZjJ4aGc5TWZ1cEdBMG1wWnA5SW90Tk9vRkcwWmd0dXdzdDJYSnhCWjdsK2NodE9UeUVJNXVvNGQ0clB5dVhLejg2QWhTNVRDOG5NdHpNS0cvMzVMRHdOcXk4MjBXbHdlWW03Zkxvd0FiN0JQYnRt'@; put 'M1B4L3B4NFc0azM2ZXhoOTJuRWFEbk0wNFFSd1d3cllWQTRzeE5sdE5QOG5IMXZOTUVMUUtCWW4vUXdlOG5ZdGtFbThJUW02N2ZJUGVNM2phdHQrVmlENDRqMThuM2NKRHo3TllOUzZrY2JQQjUzUGVjVkYvS3dlYzZBSE9kQTcvSWoyN2lVdHBTcklkTkVURVcvRmlINlpsTkVYdmlaNUZyNEZF'@; put 'OExBZDd5K1JLRjFwWnNrMTh0MHArVFdPNnVlcVRqU0ZkWTRDV3VJVzlvaXJFdmJVU0pabUw0cEk1RmtSUzE2VWN6cnV2d2JMTkJTcUtrd2g3eGU0S1lmVFl5bk5lOE5nV091SzFLRlJtN21XMElLTHZxUEpjemlwNUx2RDgzVnZhOHJPSGk4clpBeGJua2FydGFpNUhaZ1hkc0lXTzJCMGVqTlk2'@; put 'WkZ0clM1NmJYUDlCYVcyQjIxcnllU052dTZxMEJkLzMyenUwZlU1dVMrT0JIMWExUFp0cnEwZG5kMmg3VVJrWDY5c1kzYkM2V3VwUEY5STRCTTFJcHpVN0xBN0JDbURJQVdxOWV4aFJGNklDZTBDNTdrcFZEbXZJbDhGK2ZrdnRLODBiUDB3dXZzMjdQTnowTG8vUHpLNzJqNC8xa1l0Mzd0Njlm'@; put 'Uis1K2lTQ2JnV2VPeTFYSjhsOXBKT2l2NnR2Ykx4L2RaWmMzTDM3VHJtUEVYd0ZlUTcyVWM3R054S2FqejlpQUJVNXRGMytlQUV5QjRWY05yNGNjbUpPeWNQamxZMk9WR2xweXRGWU1WRkxScW9xVWc2WHk1R3FxR0xqVEtLSFdLd2x4TWE1Wkc3NjVreC9KYnMvSHltUmF3bEdzRU9vWkxVRXph'@; put 'eFhlbThPemFaZjFXSUJPSHcyVndRcXZLMktBdlg5OVRkMWRVVWluWjBSZW9FNi9TSWovUGRJVjRJL2NQdDRqdndlUUxvYldWRXJtMEcwRUJaam9kUXlvbVdWQU94V0dNRHBMSk9FQW4wendhdW1BaTZOWEZVZzM4T3VDakxmMEZIaDdzOEZsaDloVVNHM0hGTG1kN21UZG53N2VRRkc3bUhqcHAz'@; put 'UXM0RlZhVGt3SHRKallaQWVtSk5acWs2QmZsZVZLelNJTU1HTVF4Zm9VSzFNSElpYWZNb1Z5L1NHZEs0eS9iakFWMngxbSt4dWJicG8yc2srMjl5NnRHV0dkTnFzQlFVVlhzTTcrRS85RFh3L3V2Qi9zRm9JRVpYeWlnRXRJR2VJdXJhbjdiWmNEWVZiOUFmbG9naWNQZkNCUWZLSzQ1WVBPZDdK'@; put 'K0s1WCt0bjZrK3RmQXFZS3NCNUsrRjNrRyt1MEFybSt4STJYa2wvZ2dVMVBWVlY0blFjdFdRQXpKeDl2VXVRajZzVjFPOGpIVnhUNWlIclI0d2h0MC9ZWWZ2b3QyeDdEWGFxMnE3bTJLN2gvaTN6a2JaL0x0VjFCWCtmKzdmb2dQYzlRbjRXOCtUdHVQN3o1TzlsK2lBQk1tUG5HUXpMTTB3eUdx'@; put 'R0I0clAzeVhEOEZRQTNieDlwZnlNWGFDOGJRdGptUXZlaTlPK2lHVjNMbjByMEh1TzV0UlA5R1RMampyZStCZjFXcXdSMXpTaHVoL1cyMEVmUnYvbDVwMDQwL2d5NlN6d0xObERGNkdkcGNFTWZweGE3RXkzbHM5b1g4QmZiazlnMDMyRFBiQjM4V2ZaczhDQ3UyQUFaaXZMYU54SEsxYlRBbS9t'@; put 'czJaam05MGFtOEVPaDhReUdUd0lSYW9EaGdZemRJYlJ4YnUrTlVzRzZIYVZXcFB2UDU0VWZJZzBWaFBqODJ6MytHZWRweTg2Umtva3lZWXZGaHZBdldaTm1wTG9qV3hiTzZvRTExOFkrMytuendyNFgrZXhnK2VlbnZYdmpBOGRRTGRQTk9kQjNzUFRneVJYNzQvcytNaHEzQUl3amtRR1Q5ZDVv'@; put 'enFyK1AwZ1hVT0l0K3lmTWM0eGFzTGVSL3ZrU1BkV1pzTk9tTTZqOTVZaSt3Q1NhVHNHUTFGSWthOVY5S1NiMUZRL1pYVDNocmtiWVc1TCtYMHJKdHUyMytZc3FXdHVDQk5JMk9aakxLWDA0Wm5SMmQyYjByazgyTURQVEZ1bUtkelUzYi9oVVZ4Ly9ncjZoVWJmbzlvSUt0YXZxVC84SUtIc2tx'@; put 'djR4RXBmUEszMXY1Sy9vaDhhZjg0Wlg4NTRtRzNCOWh5Zjh4Rmd6V2ZSS1g0TCtqTitZOEFRWnpySzRMdXdGM2dmdDIzMzMzN2pkZnREOXh3Y0ZyV1FHdVFvRVRHRnc0N1JaclAvakIzWi8rOU9DRkord3Z2c3gwd1Mva08zU2phQ0l6V3VZaEduckhnSWxaNlJwUWNPQmJMeHN3TVdKc29yVU91'@; put 'Um9YTTB0TzVSRVErQjVGRFpHNjJocXJMUWpPb05VZUxLREJxOXhGUTJId0ZGbm1TU3JaU2ZLVmxUUmhESkRzOXJLUUtpdHZTZHc2TlBhZUZmZk1JTkVNN3k5WnZtMUVMbWtadU5hTEs2V1hZQ0d0MHZjcmJzcE9zbXQzdTY4ZTdDOHVBQ1hlZTFrN0syZ1o2K292SzdIYitnZG1aWm5sSlE1OFBj'@; put 'ZzUzUk9FMWhEWWM3ZDdYMC92OVdhR0RKZ3lBa2hkcjlWTGhMVTErcFhMWFdpUjcyTFFQMVZpTDlDUzJEWjNQVzI5SzZIbDhDWHVTdmpqM2gydlNwQmo5aTFVeHVPWWZPYncrVndzdjRYcUx2WmNkYzdLbmwvTVBSZXZROXZCbzVXcjFNL3ovZmZLZmlwL2ZsY08vdWd4NVQ2S1BlUmRnQU12aWdN'@; put 'T3FuMDJERGpZN0dNcGlNaDdXSUhOS0hrWDg3alVhSkU5cm5Xa1FnOTN2OVFJa2wydmV6Zm5QckQ1VW4rYnJ3UDg3VStwMXZGQ0RoOEZSM001L09nOHUzTkdvWU9rMVQrbTNCNkRhZDRidk5kdWZhOWRtMEQvRDVEOEVpSUFBQUFBQVFBQUFBRUFBQThDRyt4ZkR6ejFBQjhENkFBQUFBRFR3WjJH'@; put 'QUFBQUFOUytwT3YvUS83b0JIVUR5UUFBQUFnQUFnQUFBQUFBQUhqYVkyQmtZR0ErK2U4S0F3UExvdi9PL3l0WVNobUFJc2lBMFJBQXBmSUdxd0FBQUhqYWRaUS9hSk5SRk1YUHZWOEdSUnlzV0ZGc2F6SFdKa1NhMXRocXdjWTB4VlNUU0Z0cmcwSVhjVkFSc2FDcDR1SlNzUTR1NHVSa0VGMHM2'@; put 'dVJXL3d6aTRLNlRPRWxVV21nb1dBcjE4OXhuSWpHSkNZY2ZlZm5lZS9lZWQ3NG55NWdFUDVLbFdxa2R5TWhyREdrQlFiMklEaStNaUQ3RWJxeGdTQzZobndyTGZlelhjU1NrQ1Vka0NqRlpqNlE4OHhmMEpYb2xqMmIrMTZXajJLWFQxQ1M2Tlk5ZVBZVStQY3Z4UFByYzg1eXJHWTV4SGZLWXJH'@; put 'S3JOOFc5U3RpdXo1SFRPVVIxbGJ5R3RKNm5pdno5RVdtc0lhT3QyTUthSm5RZkJyM1R5SGtlRmVML3MwZzczdVB6ckYydkk2UUxHTEUxQXdmUXB2UFVFMnpVVzZ6ekNvNno1aFd5Uzc2aFIwZjhYektCdUI3R1hwMUJWbmV5bGhtdU5ZYUluRU83M21UdE9ReGpDWWV3NUwvWFRxUlF3ckIzQnlr'@; put 'Ylo1MFJONDl6WkJaWkthRkRibkJlam4wbTBPd05vVVVqN0cwYzIzUWRldVF1T3FVRkY4aXd2TUpCODkzdE9ZMlkxU2d2V0VzYlFqeUx1S3ZyTm9MNGlRRVpjT05SK3JYSGVkVkFnU2JTL0RQdnFvUTEvNFA1Unk1U1g3M05DRmU4cTVVR2tYRTAvNnBsL3RGbm5sbldlZFZBM2p4cHZZejlLL3Iy'@; put 'anY2bHlDTDFSYS95L0N2ZTFjcHlZVFQvcW1YK21jOUc2OWYycktYMWJ2dFhhRG5pdVZpLytxRHN5NWpicHpFdGEzYmVaZEtyejZ6M0U3M3JKbjN5cVBYaE1zZ2NXQTR0QzM5NUJ1MHlpSGJ6MXZxclk4alZFS2t3c0FIUndDYnV5OXhhZHVySUxGdWU2c2g4dTR4VmFPZGpIdjJIOWc2NEhOb1pt'@; put 'bi9sZDhIeVdFdkx1QlNZUGROVHhQR2RQRUVscURmbzF6REg0Q2NyYTlheXp0UHlucklNZU1VLzl3MVdxY2VBeGhIekx2TWVhU3JmS1l2a0l2a0lKL1V0N3dyZVM0RUMzOE1rZ2xSWTUvd2ZMaDhlNS9KY0czeXp5UDRHajVmd3RBQjQya1hDWFVnYWNRQUFjTHV1TTc4dU16dlAyM21mZXA5NW52'@; put 'L3o3a0VpUWlKQ0lxSW5pZUhEaUJneFlzU0lpSWd4eGg1R1JFUVBFU0lSc1ljOURBbUpFU0VqOWhBaklrUmlqSkFoRWhJaU1VYUlqTmpMWVB4K05wdHQ4Wis4N1dPWHJTc0xVZEEyVklUSzBIMzNYdmRaZHdPRzREQThETCtGRCtGYXoyalBVazhKWVpBVVVyUmo5aG43bkgzVm5yY1hlK0hldXNQ'@; put 'dldIQVVIQTBuN2t3NXQ1MGxaOFdGdUlCcnhyWG1PbkRkdWNQdWRmZXB4K3ZSUGZPZURjK0pwNEdpYUJKOWlpNmhPK2d4V2tGYmZjLzdIcjBUM21xLzN2L0daL05sZlhuZm40R3hnWmNERlQvbG4vZVhCMGNHbHdmUE1SaWJ3aGF4SEhZZWdBSmFZQ1d3SGJnSk5IRUtYOENQOFlkZ0lqZ2F6QVpY'@; put 'Z2grQ0Y0UkdKSWtOSWs4VWlET2lRdHdTN1NlanBKZmt5QVE1VG1iSUJYS04zQ1QzeVNiNUdQS0d1RkFpTkI3S2hKWXBtTUlvaVVwU2sxU1d5dEVRamRJRUxkQ0FIcUhUVEpwcE1SMFdZWDBzeFNxc3hhYllLYmJFZm1PdjJScmJZanNjd2sxejExeU5hM0VkSHVGOS9BNi96eC94SmY2S3Z3a3I0'@; put 'WEs0SHI2UFFCRTB3a1JBSkJscFJEb0NJdUJDV0hnbGRFUzNpSXVLYUlrcHNTRjJKRVFhbHJha0ErbXo5Rlc2a21yU2J4bVJjWGxDZmlmdnlvZHlRVDZWTCtVZmNsTnVLMDRGVSthVVc2V3R3cXBYSlZWTlRhcVRhbVpJai9aR2lhZ1FMV3F6Mmd0dFhkdlNjdG9uN1VTNzBMN0h0TmhCckJqN0Vp'@; put 'dkhxckY3SGRKUm5kR0g5QkU5cmEvcU9iMmsvNHFUOFd4OEwxNEhDQUJnREV5RFoyQVJ2QVliSUE4SzRBeGNncCtnK1orQkdJeVJObWFOUGVQSXFCb3RvNVdvSjlxbTIxdzEzNXU3WnRtc21uZm1nd1ZacUVWWTg5YVN0VzV0V3ZtL2FtekFUUUFBQVFBQUFUd0FZZ0FLQUQ4QUJBQUNBQ2dBT1FD'@; put 'TEFBQUFrQUZCQUFNQUFYamFoWkxOVHNKQUZJVlBDeHFJaEtBeExycHFYTGlUdnlnWVhHcmNDR29rbHAwSlNBVmlzZEFXRTEvRk56RHhRZng1QWpjK2cwdVhuZzYzQ0FZbGsyYSttWHZ1dVRPM0EyQU5INGhCaXljQkhQSWJzNFpOcnNhc0k0MXI0UmoyRUFqSFVjU1Q4QktNaWM4eWM3K0VFeWhx'@; put 'aG5BU2hsWVZYc0dPRm5tbVlHa1B3aG1zYTUvQ3EwanBjZUZuYk9nWjRSZms5UzNoVnlSMFMvZ05hZjF5ek84eEdMcURBN2dZNEI0ZWV1aWd5NU9iZU9SWFJCNEZsRWd0UmszcXVrcmprK3VjKzh6eW1YdUxMR3F3bWVjcEp4ZU9xTUxkTm5sRTdUbTVRM0xRcEs3QW5Md2ErN2pBTVJvNEljMXoy'@; put 'WjV4V1Z6SC9GWEo0c3FqcXFkT2FrNVZYbHpONG54RmpVdFYySUZUT3RoVDlacmtNOGJEV0pWeis1OGVoWDBOdUtvZ3gzRTM0K3dxMy83RU5jdVl5M1dVNDB0V2g5R0F1eVAra1VpVDR4elY3S3Q3L3RUTXpiM2pYM3ZSclJ2a0Z0OXk2QkJNT2xhVC9oMnBxTWxSVXJFeXoxWmd2SUpkdnBqbzFa'@; put 'UnhRNTNOQ2dQcHYwMXZuOW1SYXgxRDd2UVk4eGh6dmdIRmZZVmpBQUFBZU5wdGsxZHNIRlVVaHIvZnNYZmROazd2dlZmSFh2ZkVLUzVyeDdGakp5NXg3TVJKeHJ0alovRjZGOGE3Y1d5NkJBSWVRUERDTStVSkVMMEtKSGhBb2xmUmV3ZlJlYVFINzl3SlhpVHV3M3ovR1ozem56UDMzaUVMZDUw'@; put 'YllCNy9zMVNiZnBERkRMTEp3WWVmWFBMSXA0QkNBc3lraUZuTVpnNXpwK3JuczRDRkxHSXhTMWpLTXBhemdwV3NZalZyV01zNjFyT0JqV3hpTTF2WXlqYTJVOHdPU2lnbFNCbmxWRkJKRmRYVXNKTmQxTEtiUGV4bEgzWFUwMEFqSVpwb1pqOHRIS0NWTmc3U1RnZUhPRXduWFhUVHd4RjZPVW9m'@; put 'L1J6ak9BT2M0Q1Nuc0xpZHE3aWFtN21CTzNpZjY3bVdwL21ZTzdtTnUzbWVaN21IUWNMY1NJUVhzWG1PRjNpVmwzaVpWL2lXSWQ3Z05WN25Yb2I1aFp0NG16ZDVpOU44ejQ5Y3h3VkVHV0dVR0hGdUljRkZYSWpER0NtU25HR2M3empMSkJOY3pLVmN3bVBjeXVWY3hoVmN5US84eE9QSzBneGxL'@; put 'MGMrK2ZtTHZ6a25sS3M4NVVzcVVLRUNtcWtpemRKc3plRlhmdE5jemROOExkQkNMZUozM3RGaUxkRlNMZE55cmVCenZ0QktyZEpxcmRGYXJkTjZiZEJHYmVJKzd0ZG1iZEZXYmROMkZXdUhTdmlEUC9tU3IxU3FvTXBVcmdwVnFrclZxdEZPN1ZLdGRtdVA5bW9mVDZoTzlXcFFJMS96alVLOHky'@; put 'ZDh3SWQ4eEtlOHh5ZHFVclAycTBVSDFLbzJIVlM3T25SSWg5V3BMbldyUjBmVXl3TTh5Q004eWtNOHpEWGNwYU04dzVNOHBUNStWcitPNmJnR2RFSW5kVXFXQmhWV1JMYUcvSFdqVnRoSnhQMldvYTl1MExIUDJEN0xoYjh1TVp5STJ5Tit5OURYR0xiU1NSR0R4cWtLSytrUGVSYTJZWDRva2to'@; put 'YTRiQWRUK2JiLzBwL3lMT3lQYXVROGJCZEZEYUhFNk9qbGtrdEhNNEkvQzJlZTlSamkrY1ROU3hzemF3Y3lRaDhiVlk0bGJSOU1ZTTIweTltMEc1ZXhsMFV0bWQ2eERNOTJrMTYzSVcvdzVzaFlSam9PSjJLRDF0T2FqUm1wWktCUkdiazZ6UWRITk9oTTdPRGs5bWgwM1J3RExwTTFaZ0xmeW9l'@; put 'TFNtdERIb3M4M1dicEtTWnBzZWJKbVdZMCtORTQ4TTVxZlF6MFBPZnlWS1prYi9IMjhHVVlVRnZPT3FFVTZORE1mdHN3WGlHN3N2UUU5UGExMjltbkhTUjN6OTkycFBUcDUyZU9GaFc1YklzV09uckhYYXNxV3MxYnRCckhNWmQ1UFZHb3JaamowWEg4c2JQcTNSZGFhaSsybU9OeHdhUGpiNCtZ'@; put 'elRoSXYwMldGSVM5Rmptc2R4amhjZEt3MkJUZGlqbEpOeWdvcWtoeHlxMllzbDh5NTNGU1BmdXAyV1JOZjNaNlRoZ25SL1FKTHJkMDdMQSszMk1OdnVhMW5sVytqUk1jaklhaTdqSnVkYlkxQjVGYkNjdlludnFIN2RsdHlFQUFBQjQybVB3M3NGd0lpaGlJeU5qWCtRR3hwMGNEQndNeVFVYkdk'@; put 'aWROa2t5TW1pQkdKdDVPQmc1SUN3eE5qQ0x3MmtYc3dNREl3TW5rTTNwdElzQnltWm1jTm1vd3RnUkdMSEJvU05pSTNPS3kwWTFFRzhYUndNREk0dERSM0pJQkVoSkpCQnM1dU5nNU5IYXdmaS9kUU5MNzBZbUJwZk5yQ2xzREM0dUFQNGNKV0FBQUFBQUFWaVk5R3dBQUE9PSkgZm9ybWF0KCJ3'@; put 'b2ZmIik7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc3R5bGU6bm9ybWFsfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6TWV0cm9wb2xpcztzcmM6dXJsKGRhdGE6YXBwbGljYXRpb24vZm9udC13b2ZmO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGQwOUdSZ0FCQUFBQUFGYUVBQk1BQUFBQW91QUFBUUFBQUFB'@; put 'QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCR1JsUk5BQUFCcUFBQUFCd0FBQUFjZk5INTVrZEVSVVlBQUFIRUFBQUFUUUFBQUdJSDFRZjhSMUJQVXdBQUFoUUFBQWNZQUFBT2RrRENmcFpIVTFWQ0FBQUpMQUFBQUNBQUFBQWdSSFpNZFU5VEx6SUFBQWxNQUFBQVRRQUFBR0JwRXE4SlkyMWhjQUFB'@; put 'Q1p3QUFBSnNBQUFEbm5kREQ3RmpkblFnQUFBTUNBQUFBREFBQUFBOEVoRUI4V1p3WjIwQUFBdzRBQUFHT2dBQURSWjJaSDEyWjJGemNBQUFFblFBQUFBSUFBQUFDQUFBQUJCbmJIbG1BQUFTZkFBQU9Nd0FBRzhrSGQ3WWwyaGxZV1FBQUV0SUFBQUFOZ0FBQURZTGM0Z1JhR2hsWVFBQVM0QUFB'@; put 'QUFoQUFBQUpBZVJCQ0JvYlhSNEFBQkxwQUFBQW93QUFBVGF1WTQwSjJ4dlkyRUFBRTR3QUFBQ2RBQUFBbnJVKzduMmJXRjRjQUFBVUtRQUFBQWdBQUFBSUFLVUExQnVZVzFsQUFCUXhBQUFBWTRBQUFONk1naUlXbkJ2YzNRQUFGSlVBQUFEb1FBQUJpR1hGajJLY0hKbGNBQUFWZmdBQUFDQkFB'@; put 'QUFqUmxRQWhCM1pXSm1BQUJXZkFBQUFBWUFBQUFHOW5oWW1BQUFBQUVBQUFBQTFGRzFhZ0FBQUFEVHdaMkdBQUFBQU5TK3B2VjQyZzJNUVFxRVFCREVFa2YwTUxQb2Y3eXBML0RvZlhmVi96L0FJZ1JDMFRRQ0xSNmNkRlJralZzbzdIelR2MUQ0QjdtNDA0OERPbG9wTmx2NjQ1U2VYWExUNTFz'@; put 'WHpTYStXM0FGM0FBQUFIamFqVmNOYkpiVkZYN091ZmUrWC9zVmFpbmxSK2dZSVlRaGFUb2dUSlFnR2tZNjB4UlV4bHcxYUxicG5JTWhqREhDTnVjS2MyQVdBcHMvWFNVTFErMTBrZ3FzQ25iV2tZWXdSdHhDWkJMRG9EQUdGYXB4TW9RdEJwVjN6M3ZlRC92V3R0TSs2ZFBUYys5NzMzdk9lZTUz'@; put 'N2djQmtNYzQxRUxtMU5RdFFCRThQWWhqT1A0UktOemlieTYvRHhWTHZyNThNU3FYTEY2eW1MTkJmekthemtqWThiazhobU1NSnBqSFlUenFYRXM2R2kyelZTWGFnSWdQeWVBVmZHS1UrUUlxUG9LZ0p0NUFEcGlKOWZnUXNZeUNjaHVjSnlPbEV5VVl4SjJkalR2aVorUEQ4VEVNOEJPZkczRGtV'@; put 'TC9lTGxUMit2K3QrSkVCVjNoendKR2pBNC9FK3dZWWVUWStIcmNuK0pqL01ILy9rcUR2MitQWDRvM3hSdVoxTERNOWdkbjZIS0dvSmh3K1QzaE1KUUsrUUVTWVR1UndMVkdFR1VReGN6dVRsVnBKQ0Zialo1eTVqZ2pNK0hyNmR4S0NGd25CSHdqRlFjTGpOY0xqR0JGd2lvandCaEhoREJIaExK'@; put 'SERPU0tIOTRsaVZ1OURyaFlUZVNtVE1oUkx1WlNUSzZTQ1BJcVZ6WFB0eVZUSmVENHppUkRiZDdwanRSMDcyN0czSFFmTUlZcFFReFRqUmlLUCtVUUpsdUw3WENHSkpMSklJb3NrWUNNZTQveEdvaGkvd2liT2Z3Sy81ZnhuaUJKc0ozTFlRUlRoOTBRT3JVUVJuaWR5ZUlFb3dpNmlHRzFFTVhZ'@; put 'VGVYUVFlZXdoOHRoTDVQRW5RdkJuUWl3N0VZNFRKZmdua2VaRkxTOXFlZkdXbDJCNUNaWVhiM254bGhjdkkyUUU4M1dsWEVsT2NoUzRhalV6TklFMXJtWnRwN0ttMDVtWkdjeklVaXpEZDdFYzM4TUsxbkkxMXVDbmVKQlpXTWZvdHpPaTUxbkpGMW5CZzZ6Y01WYnNEVmJxTEhmeXZwMnNNcjYz'@; put 'SWpsZitvQ2R3MzJ5bkhFUHByN2FxYnVOOFgvNlVhdU44TytaQVVmZUpDNzA4K1Q1VHpwUGNXZjhyL2dmOFNNOUp5OTcwdUl6OGRaNDYwZi9kV2VmdDJlVUp6alJoSmdtRkY4aEhHNGpQRzRuQWhZU0VSWHhHT2NrYWhCVGc1b2FGQzFFaEcxRVpKVVdxN1JZcGNVcUxWWlhSUmZoY0pwdzZDWWNQ'@; put 'aUFDTGhHUkRKRWhyT3RRR1VvZUpzUElTVVhGS2lveVdrWnpmVVVWcmlCS01JUVlaRW9YVTdxYTBsMUI2Vjhpc2tyM0ZrK1VpU2RuU25jRnBmZG8zRnRVM3FMS1dWU1hsWjVxUEZYM1M4VEF1azZpOWFaWkxVU1lLTmRabkRuVHJ6UDlhaUhtUk1WYWlEelJzbWJpenlyYVdSWnlNbG11NWR1VFQ2'@; put 'OGFSamlmOWJxTmNTMWtKSTJNcEFtUE01b244Q1NlUWpNamVvYVJiT05wYk9OdU83akx2ZHhkRjJ2UXpaMWQ0ZzZHOG0waitKYlJYSEdNNlZsUmFoMmxQUDRKN1hMTXcvVzB4T3pyMllrNm96SGtrOHovSGxrcjYrVmhhWkxOMGl4YlpZZnNrcGRsait5WEEzSklqc2dKT1Mxdnk3dnlubHhTcjNr'@; put 'dDArRmFxZU4wb2xick5KMmhOMmlOMXVsOHJkYzc5VzVkcE10MHBkNnZhL1FoM2FDUDZpYmRvazlyaTdacW0rN1d2ZnFLdnFxdmE2ZWUxRzU5Unkvb1JRY1h1VUd1M0kxMFk5eDROOGxOZGxlN21XNjJ1OUhOY3d2YzdlNXI3aDczSGJmY3JYSVB1QWZkejkwdlhLUDd0WHZTL2M1dGN5KzRsMXlI'@; put 'MitmKzZ2N21EcnZqcnN1OTVmN3QvdXMrOE9xTGZLbXY4S1A4V0QvQlYvbXAvaG8veTgveHRmNW1mNnRmNkwvaDcvWDMrUlgraDc3QnIvWHIvY08reVcvMnpYNnIzK0YzK1pmOUhyL2ZIL0NIL0JGL3dwLzJiL3QzL1h2K1V2QWhIOHJDOEZBWnhvV0pvVHBNQ3pQQ0RhRW0xSVg1b1Q3Y0dlNE9p'@; put 'OEt5c0RMY0g5YUVoOEtHOEdqWUZMYUVwME5MYUExdFlYZllHMTRKcjRiWFEyYzRHYnJETytGQ3VCZ2hpcUpCUEIycmREdTV3WGkyY2ExeFU4SllaOXhxbmpYR2pSbSt4WGlLOFN4alc0MTFTdXo2ekdxVGxKK3BjcFZ4dGZIY2hMSGFlS2Uya3h2TWYxMFA0NVR4eGN4VHpjWlZ4cVhHdDdoRjVC'@; put 'YmpWZjJ6bnN2RVdHditQb3c3ak51TjEvV3czSlhHYnZZUzQvM0dqWDA1emNBQU82azNucVFkbjhUNnkxNjU2dWlQOFZYam5jYXJlNWg1K3pUOGYxWm1ibnQ0VldiUHZleE1UUnZNZjVYNXMvWnN5K0Z2ekw0cmsvbjBMYjFzRzAzcm0vVTNtVDAzdFcxT3FwbTBPbW5VcVQ0TGRzR2Z6R2sxZTZk'@; put 'YmVWbTlCWTExbW4wMHNRczFUWE9TYWp2TlROYmZtTEVQbWQxZ05UcHFPai9WbzBCcXRlUHlpVUJmL3hTekw2YTJ6VWxWbmZXbkoyaFdSalBWbWN5bjlnNnpGMldxWUhuVFN2TTNtejlWV2xYR1RyTmFtc2w4WC91ODJUK3k2RzR5Kys5bVoxZXVqYmNsSzhmUGZheFMyVGZPTFp6dWprL0J2V2Nx'@; put 'UG12M1V2RGVOWkZaU1c2bm5sMjdpbDB3dVdGSG1NS2JXQTdUY0ExN1dOSzVTOW0zcjJOUFR6cjNFTHVqbGx2bkhzcnZWYlhzUTNYRU1OekVQamVjbmU1V2Z2ZXBKeXF0bDMrR1hlOE9kcTJsdkx1TnRkdmJkSGIwelZ4dkN6dmZYT3Q5WDJiM2EyZUgvQ01PNEZ1ODBaM0ZEK3hXMllUekV2QTRP'@; put 'L0ZvdEZoUGJlTitSYTZ3NzJZUkpGNWhLbXpBUGVTMTdIWWxHTWwzaldkRWszRTFkejJidTV5SEJSdzlhTnJ0TWo1dGJHY0dSeko4MVBqSHhzOFpuN0NzalRPN0JGL2tlKzdGdHlVblJWSXNlU21Sd1ZMYWQwZi9BM0lGb2JjQUFRQUFBQW9BSEFBZUFBRkVSa3hVQUFnQUJBQUFBQUQvL3dBQUFB'@; put 'QUFBSGphWTJCbThtV0tZR0JsWUdIcUF0SU1ETjRRbWpHT1FZVFJETWhuWUdlQUF5UW1BME9vZDdnZmd3T0RndW9mWnVuL3hnd016T2NZRFJVWUdDYUQ1SmhZbWRZREtRVUdKZ0M4aVFvckFBQUFlTnExazFsUWpsRWN4bi8vdDMwUktoVDE5dlpwMDBhaUZFWDJwY2krbEt6WnNxL1pHdXNRUTBW'@; put 'U3lKNGtveGtUVTFPMkcrNjROV09NdnMrVlcrNE1IY2RYVERQTXVISm0zblBlYzg2YzU1eDVudDhmY0tIckMwRjBqMVRxbVRqbnJsS3N4eVdNdzQyQmxIQ0xPdTdTU0JQTnROQW1IaElnZ3lSTUJrdWNKRW1xcEV1bVRKVWN5Wk5DS1pJU0k5VjRaYngzaVRLUG02M21FL09MNVc0RldzRldxR1d6'@; put 'b3F4aFZycDEzK1lmK1UwcGZZZkZqUjdhajJuam1maEtmekhGSnJHU0tDbVNKaG1TSmRtU0t3V3lRVFpyN1pmR1c2MTl5R3d4MjgzUGxtRUZXRUZXaUZON3FKWDJTMXQ5VkMvVWMvVlV0YXRXOVVnMXE0ZXFTVFdxQmxXdjZ0UTFWYXRxVkxXcVVwV3FRcFdwTTZwVW5laDgwNW5WbWZUOWs2UGNV'@; put 'ZURJZDhUWUI5cjk3RDUyTDd1YjNlajQydkc1NC9DSGtIZkpYVjc5cCtadWVEdVQ0STliQktQN3ovaUhSdGRKRjF4MWR1NTQ0SWtYM3ZqZ1N5Lzg2RTBmK3VKUEFJSDBvejhEQ0NKWVp6eElweDZLU1poT0pCd2JnNGtna2lpaWlXRUlzY1FSVHdLSkRHVVlTUXdubVJHTUpJVlVScEZHT3FNWlF3'@; put 'YVpqTlhNWkRHZUNVeGtFcE9ad2xTbU1aMFpaSlBEVEdhUnkyem1NSmQ1ekdjQkMxbkVZazFhSHZrc3BZQmxMR2VGZnY4T2RyS2JZZzV4bk5PVVUwWUY1emxISlZWVWM1RWFMbkdGeTlSeWxldmMxQlQ5WlBRMkRacWxlNXFtbjIwVnE3VWQwV3pnYkxjMzYxbWorMTJjK08xVzRWOGN2RUE5bTFu'@; put 'WlkyVXRteVJHajF2WXpqSHNPQ1JjOHhrcFVib0NJcmlqZHg2Z2FaWUVYUS94M1dlS25HSEVzbzI5YkdVZmV6akFRVjFMK3puQ1ViMTFtRkpPY1pMWHVwcDZzVTY4eEZ0ODJDaCttbi9QSDVETnF1aDQybU5nd0FMS2dUQ0RJWU5wUFFNRDAyNG1WZ2FHL3lITTB2K05tWGIvLzhKMGowbncvNWYv'@; put 'ZmlBK0FPWUxEZ3A0MnExV2FYZlRSaFNWdkdVakcxbG9VVXZIVEp5bTBjaWtGSUlCQTBHSzdVSzZPRnNyUVdtbE9FbjNCYnJSZlYvd3IzbHkyblBvTjM1YTd4dlpKb0dFbnZiVUgvVHV6THN6YjV0NVl6S1VJR1BkcndSQ0xOMDFocGFYS0xkNnphZFRGczBFNGJab3J2dVVLa1IvOVJxOVJxTWhO'@; put 'Nng4bm95QURFOHV0Z3pUOEVMWElWT1JDTGNkU2lteEtlaGVuVExUMTFvelpyOVhhVlFvVi9IemxDNEVLOWY5dk14YlRWOVF2WTZwaGNBU1ZHSlVDZ0lSSit4b2syWXcxUjRKbW1QOUhEUHYxWDBCYjVxUm9QNjZIMkpHc0s2ZjBUeWorZEFLZ3lDd3lMU0RRSkpSOTdlQ3dLRzBFdGduVTRqZ1dk'@; put 'YXIrNVNWTHVXa2l6Z0NNa09ITWtyQ0w3RVpaemRjd1JyMjJFbzg0QzlJbFFhbFovTlFlcUlwbWpBUXoyVUxDSExaRCt0V3RCTDRNc2dIZ2haV2ZlZ3NEcTF0MzZHc29oN1BiaG1wSkZNNURLVXJrWEhwUnBUYTJDYXpBUU9VblhXb1J3bDJkY0JyM00wWUc0SjNvSVV3WUVxNHFGM3RWYTJlQWNP'@; put 'cnVMUDVidTc3MU41YTlDZTdtRFpjOEJCM0tDcE5HWEZkZEw0TWkzTkt3b0tUSFM5UkhSa3RKaVlHRGxoT1UxaGxXUGREMjczb2tOSUJ0UWI2MHlpMkpmUEJiTjZoUVJXblVoWGFqQllkR2xJZ0NrR0h2S3U4SEVDNkFRM3lhQVdqUVl3Y0dzWTJJem9sQWhsb3dDNE5lYUZvaG9LR2tEU0hSdFRT'@; put 'bWg5bk5oZURLUnJja3JjZEdsVkx5LzdTYWpKcDVURS9wdWNQcTlnWTl0YjllSGdZQll4Y0dyYjV6T0lrdS9FaC9nemlRK1lrS3BFdTFQMllrNGRvM1NicXkyWm44eExMT3RoSzlMd0VWNEZuQWtSU2cvODF6TzR0MVFFRmpBMWpUQ0piSGhrWFc2WnA2bHFOS1NNMlVwVTFuNGFsS3lvMGdNUFhE'@; put 'OE9oSzBLWS8zTjAxRFNHRE5kdGh2SGhuRTEzYk9zNDBqU08yTVpzaHlaVWJMS2NSSjVaSGxGeG11VmpLczZ3ZkZ6RldaWkhWWnhqYWFtNGgrVVRLdTVsK2FTSysxZytvMlFuNzVRTGtXRXBpbVRlNEF2aTBPd3U1V1JYZVROUjJydVUwMTNsclVSNVRCazBhUCtIK0o1Q2ZNZmdsMEI4TFBPSWor'@; put 'Vnh4TWRTSWo2V1U0aVBaUUh4c1p4R2ZDeWZSbndzWnhBZlM2VkVXUjlUUjhIc2FDZzhkc0hUcGNUVlUzeFdpNG9jbXh6Y3doTzRBRFZ4UUJWbFZKTGNFUi9Kc0RqNnVXNXB6VWs2TVJ0bnpZbUtqMGJHQVQ2N096TVBxMDhxY1ZyNyt4eDRadVZoSTdpZCt4cm5lV1B5RDROL2l4ZGxLVDVwVG5C'@; put 'd3A1QUFlTHkvdzdnVlVjbWgwNnA0cE96US9EOVJjWUlib0o5QlRZekpnaWlLR3Q5ODVQSktzMW1UTmJRS0gwOEVPaXZhd2J4cFRvd2pwU1cwcUVrYUFTMkRybG5RTk9yejdLMW1VUXBSYm1LL3Mzc3BvcGpzUlJuTWdDa281S2F4c096dnBFUmFXRHVwNmZUUndPVkcyb3VlTERWYlZuR0Z2UWZ2'@; put 'WThqTkxIazNVbDY0S1NudFJadFFwN3pJQWc2NWtUMjRKb0piYU8reWltSktXS2dpUGdodEJmdnRZMFFtTFRPRExvRWlaSEd5c2cvdGloMDVvb0oyQXQ5NjBpcnYyMEx0ejNYeUlEQ2JuVzduUVphUm92TmRGZlZxZlZYVzJDaFhyOXhOSHdmVHpyQ3g1aGRGR1U4dWU5K2VGT3hYcHdTNUFrWlhk'@; put 'ci91U2ZIMk85YnRTa2srMnhkMmVlSjFTaFh5WDRBSFErNlU5eUlhUlpHeldLVVJ6NjliZURKRk9TakdSWE1jRi9UU0h1MktWZCtqWGRoMzdhTldYRlpVc2g5bDBGVjAxbTdDTno1ZkNPcEFLZ3BhcENKV2VEcGtQcHVkbXZDeGxMZ3NSZHl6Wk5kRjlCMDhJUjNpdnpqRXRmL3IzSElVM0tMS0Vs'@; put 'MW8xd25KQjIwZksraXRKYnVUaHlwR1orMjhiR2VpSFVrMzZCcUNua2d1T1A1ZTRDNlBGZWtVN3ZQekI4eGZ3WGJtK0JpZEJyNnE2QXpFRXVldGdnU0xLdDdTVHFaZVVIeUVhUW53UmRWQ3N3SjRDY0JrOExKcW1YcW1EcUJubHBsVEFWaGhEb05WNWpCWVl3NkRkYldEcm5jWjZCVWdVNk5YMVk2'@; put 'WnpQbEF5VnpBUEpQUk5lWnBkSjE1R3IzR1BJMXVzRTBQNEhXMnllQU50c2tnWkpzTUl1WlVBVGFZdzZEQkhBYWJ6R0d3cGYxeWdiYTFYNHplMUg0eGVrdjd4ZWh0N1JlamQ3UmZqTjdWZmpGNlQvdkY2SDNrK0Z5M2dCL29FVjBFL0RDQmx3QS80cVRyMFFKR04vR010am0zRXNpY2p6WEhiSE0r'@; put 'd2VMejNWMC8xU085NHJNRThvclBFOGowMjlpblRmZ2lnVXo0TW9GTStBcmNjbmUvci9WSTA3OUpJTk8vVFNEVHY4UEtOdUg3QkRMaGh3UXk0VWR3TDNUMyswbVBOUDNuQkRMOWx3UXkvVmVzYkJOK1N5QVRmazhnRSs2b25iNU1xdk5uMWJXcGQ0dlNVL1hiblhmWStSdGxNN29zQUFBQUFRQUIv'@; put 'LzhBRDNqYXRYMEpkRnpGbFdoVnZlNzNlbE9yOTViVTJscTlTZDJ0MXRKcXRmWitXbXp0cTIxazJSYXlzQzNKMkdCYlpyT3hNZUNRQlFJaEpNNWtnNFNRWXpJaFlKWkFJQ1F6V1NZaHpvSi9mdVlQSndtVFNlQ2ZKSCt5VEQ0aGs4bUFudjZ0cXZkYXJjMDQ4OC9ZVXF2N3ZWdjFxdTUrYjkycVJp'@; put 'WTB2WnpFSHhkOFNFRDV5STBLVVFCVm9SUnFSdTJvRHhYS25xNk90cFowWXpJYUNaWVZGWGpzTnFPT0lGTnRUTyszK3lWMzBoMXdKMU9CVkRJbHNiOFN2Tld1MG12MEw3MERWMUxhZXhXR05VZ25VL2pqeWpkeCt4dWRYZWU3dXM2Zjc2cncrN3U2dXZaMytlODZ2Ny9Ddjk5Ly92eDUvLzc5ZDIz'@; put 'ZGVuNXVhL2tQaEY5MyswTisrTGxqb1dMcjF1QXN2TnZxYit1cTJIK3l5VnN6ZHV6WTQ4ZU9qZFhNKzJ2ODhJTVFRVnVYMzBTdmt3dHNiaUc1QW1HTXBoRkMxa0ZFaURDanc0TGdGWVowT2wyK3pocXkyL1NTTitaTUNnRlBPTlhRbUt6M3VGMWlZUFMra3UyR1JLS2lMRkZkVGk0bzliK3I4WmNs'@; put 'RW1YK0dvU1dsMUVuUG9jZkpoZHNGY2lFa0UyQTExY1JmVzRGdk53T3ovV2hNdFF2YjgwWENkSUxCQk9FRDVpeDBXZ2R0TnJ5QkVreVRGdE14R0N3RCtvd0lmbGtDS0d5MHBKaWFPVXJLaXp3d3ZPZDl1dy9xU1NHcGFRVWtBSnA5cHRPc3Qra3hINGxlcE9RK0VIdlFuUTZlaVo2ZFhTL1ozOTh6'@; put 'ak1QNzg3QWxYblB0ODdFeitESEg5OEZDRDIvNi9GZG40Ti91eDVIZ0pteTVlZElML2t6S2tGQkZFTUpPUmFMK3N1TENyMGVsOTFzTWtoV1JQQ0FIaVBjRC9QQ0JNL0NCTDFvcU5SdUZ3QmRRUkdJbkFwSDBoNXZLb0VCYldtZ3RjY3JoU1B1VXV4R2NOV0szWTdHVkFOY0lMMG5EdTErOTc2K2dj'@; put 'bjUrY1U5dTIrNHVxZG40Tmh4NVZnNEdveS8ybGpUZEdSUmtydHR1NmU2bmQvMDdaZ1lYelMzZDFqRzk3VGF2bEswOHlyc0RPYWZOOWFVS2tmcksvd1IyOU5JajZxVy8xMndrbWVCc2s3QWNnMXFSZDhkZkxKZ2JLY2NNMk85Q1dOUmorZVJpQXhHMGJDQWREbzBRekNsZkI3Z1g1aXhTRVFROG9V'@; put 'aDMrQ1RFV2hTYzlrbUNFQlpPMm5HZ2lYSkt3MzU1T1FHTFFnQldOb01iZHhxYWtvTzE5YVdsN3RjQ05XMjFyWTBOcFRYbENjcXc2NHlWMmxSZ2ROaHQ4RmtyR0dyNUk0NUtESTdjTEllc09peTRnQk80Z0JEWTZCQ2RMczhTYlRtZmdkZXVmZXBvV2gwdUxadU9Cb2Jxc1B2MzZPRTlpd21Fb0Zn'@; put 'ZFNLQTU0WmljTEZ1aU40S0ptb0NBWHB4S2pGYVd6ZVdTSXpCYXpXK2Fta2NmellkaXplbHEyTnBaU0l4V2xjN1ZsUERJQWJUOFZnVHZZVW8zL2lYLzBqZVJiNkV5bEVjTmFJT3ViVTJFUzRyS1M0cU1Ca0ZVZzY4THBBQnl0ZDRCc1RPTTZnSFlXT1lBZWFwcnZiN3F4dXJVLzY0UHhhdkVDVlBU'@; put 'QjhSQXhXY2dYSm5CcmU4aldtdktIa1JuWnFYVDlPUkRrZUFyV0NxcEhoa2FyRnp2cVZ2dExpZ2JyS2hZWHZOMExiNnZxcVM2YnJFOWNvbkVwN0N0cHBvbVNrejJST0w5ZFRsalkvVlRyVjNUd2NyTzhPSmtVVDFjRTN6WUxoMXFIMGd2azgrVGxyaWdjTGEwb0o0b0tKNjZTK3AzV01GemNHNkZv'@; put 'UXdsWEgwTFpCbEMzTEtOcXBCR0hueGtEdElZT0NPRlYwaEJhNXlSM3krQ1BBN2Z2VncwRmRaNlFzZTdrVzBqOGJscS9BWStRcktRK0l6ZVhwY0cyTXFKdTFscy9CS24xdGNQSmdaSHg0ZXorejYrZG16L3pMZXRlM0NrU05QYk90bWJjUFFWdGJhU3RDV1l5R1M1Z2dLVHd3UFQyUU9RZy96MjU0'@; put 'NGN1VEN0cTR4Nk9Qblk2eHRBdS9IKzhqZm9YbVVsaHRtaG5xYXFnQ1hNSWNCQVdNZFJpRFc4eUxXNjhrTThLNUhEL29ISU9lbUp1V091cHFBUHlaUlJvU0JwaHZUb2dUL0F4WGhDUC9ZQ0JUZzd5bWx2QjV2S2ZheXp4b3FSS2tSYnFYcFJ5KzdZTVVTSlNhRmRMdmdVNkFDT2tqZ0NMOGdCbDUw'@; put 'bVVXU1Z4Qnc2WTFHbTA1dkxZaVdXNjJsMVY2clhtYzNpQVp2aFdRM0U5SHN5ck82VEZnVTdDNGg0T0NnQnNsZXJTOXd1d3BxWFpJaEIxb1FzUWxFWTcvRDRrdVU1aHM5ZnJQT2FEU1lISWE4UEpNb212S3NCb2RaTXBoMDFuTFJac2d2VGZnc0RvZkZWYXNyZE9jNWhESVRCVFlhOG5XbWZDSWFq'@; put 'YUxOb3JNYURDWU4zbDJvcTNWWkhCVEhIV2lXRkpJMlpFWmhPWUIwQXRidEFGNEh6WUVGZEFEVUFaNUdnT3RocHNSdG9sUVV3d0ZxRFZQVUtpWko0WmV1K3hMODRLSVhYbGo0OHBkcGY1bmxSZlFMOUVGa1JWNFp4bzk2Tlo0RHdRazZLTStCU0ZUazRIbzhZU21yVHBTSEU5WEpheE8xTmVYbGlm'@; put 'YmF5dTJOdEs4NjlNKzRBL2VCdEJiSWJrUTcya0g1QWthRVlFUTIycG5UNy9iWDRUemxqN2p2RU9PWmRyQ1pQNEhubTZuMXAxZEFDMkxzeFpRN3pNZ1VGSUFyY2kza0lkVTZXcktXRVMvL1p2azUvQjN5SzNpdVhiYlNUcy9DczIvZ0Q2U3FERzg1cTV3L1MzNzE5aVhFN0dYZDhwdmtIdklpcUw4'@; put 'eUZKZXJnQnZaakxuV3dHQ28yUUJzTmpDeVpiYlNBZy9UazJCNllycTFlcENrR2hMQVhGU3dTdUZKaHJ1SGgrK2VuSHpmME5EN0p1dEg0L0hSK3ZxeGVIeXMzckw3TS9QekQrL2UvZkQ4L0dkMkwzWmN2M1hyOWUzdDlMV0Q0WUFTTmcweUx5S2ZYQUNrRkFCZkExeXJZNXlQaCt4T2hqb3Brazdh'@; put 'QXkvZWxQejYvbE9rYkhEbjJhVnh4TnJIWVZKaG1FOEJpc29Sc3dtbUE5eEF5QUJESjFPSDFBR1pSc3dHMmIzQnNFNHFpR1d3cHNXbFNLT3EvL0l4a0tkNlNXN2NVcHZjVmprKzkyRFBkWm4reWZ0eFdwSG12cHZjSHF0cHFhc2RmSGZqTlIxYmJ1NitZWkU5dXhSd0dZVm5WNkdNM0ZaWUFNK3B3'@; put 'SmpBMDJFSUE5U0dnMEUvQUUvV3pRQnp3a0FRMHM5UUplQmw4bCtGS29OQmZ6QWtTWVZBWmFwa2t2WE03a2lwcEtkeDdmQWtGZTMvZUhkOEtMUTMzZDQzMkQ4ODNOSFgxMVEzSGhyWSs4bSs2OXY3V3RxM3l6Y01XVEtwaWFwRVUzV2lCaC9HZGZGb0tsNDFkS0oyUjJQYmhOMjZ2Yk4xZHdQbmcx'@; put 'SjQyUWw0TjRHMnE1YWpGdkEzOElDb2h6bGdCSDduSEtDT21kaDgzWkRaYk00ejU0Rk1PV3gwckNGL0JDZnQxUE1NRkdJQm4xWWV0K0N0NTJabVR2M2szQ3grUVJrL2RBNUlHRkYrek9rVEF4dzF3SE9LS1k0Y29BdnpMRVNBenJFZUFZNTBBS0VEdXk0SVpKb2I5ZFU0QWcrdHd1NE1CaGlPd1BW'@; put 'Uk1WUWhSYWd3U1kxWmJyei93TURVM283Qm9mYVJqaDBtL0x6eVZSSGVMYlIzM1RKaXVYWnFja3REU3E0TjR1c1duNG9tcituZWVtMEx4MEV0akcwQTZPZERFZFFuYjdFQkR1ekFQQVZZSjRTd1hxY2JFRUd4NlBTQ2JoNWxqYXNFWTlOMFJIRXhqREJTSEE3NG9ZdWlZQ2hzQUQ4TnFTT2llb09w'@; put 'YklsTGlRUWZIRm0yOHlUeEl3Yzd1bTdzdi9mZTRYdDJIdC9WSHVpTzFRNGxkT1ZYTnhnNy9LTXRkWVA1QlRmaUx6WHM2K28rMVBhVlR4NThkR1o0cHF5c2VhRTdWS1U4V3RGY251NU14ajlNOFp1RWlRU1kvSlRKeFdCb01KTWVxbmN3ODczQjF3VnZoenFRMkoveXUwRWhQS0E4alArZy9POTdT'@; put 'ZnZpMVVzWHFIOFJCVHgwcW5oSW9SNjUweVVTMEs0RFVzNzBWUzFoZ09saklCRFRFcFdWRkFPVnFjcUdtbXFLaDRweWlvZTRrYXF0alR3TUZUTTUzcFdYdmdmYlpDWFV4L2pYazF1SE04MmRXeGE3dW8vM2REWEpRNzBuQit0Rytoc2IrMFpxMjhkalhSQ3d4TWJiTFRWVHJXMVQzb0xScHVidDhl'@; put 'cnRUYzJqM2dLNHNyTUdQOVFZclV3M1ZzVWFCT1ZTVTd5MHBvaVFvcHBTNmtRUlZBOXpIRnFoZFNuUUYraXRONExBR2dCck9waXNIc1JWVCthQjZRV1lvU0I0Qm5Qc2dVWnJmeG1kWXlnWVlyVDJjRkp6NFFVclREK29jM2FBNWViYUVXajk5K3VvTERQcU4xTXlWMUtDa3hkWFU1bFRYbmtFeU16'@; put 'SVRlZkE3QVd4Z0czd1V0MU5kVFViWGlFUHN2UTh5TEpZRUxKNExSNkhqUmtSVVhVdE5DTkNOakFvRmVwZmZFU3pMTXBkMmp1SXZaaWRKQmFJdmZJUnNrdklEb2k2RlJtZnd2aDVmT3VUeVJqbHd6VGFUa1N5Ry9oUWZFWWs0RHM1VXlGM0huYW44U1hsYi9CQkhKbjkwZHlERDg0enVldEFqNUZD'@; put 'L0NmZ1BBbDFERDVaQm1HQkExRXZWcGpWNGtZN0JzKy9nSEl5amVRUWhCQmtoNnJJaVRBODlSeTE4RlNUVXpWQS8zZmdueW9oOXZ1bmhaTUxNSjQrR0k5WEc0OEE0MGxYNDVUZXJlL0RCMkU4bDVTNkZ4OThjTzVIc3oraTQzRXV2NGxmQWQ1d0l6OXFsMXMwbm5BQyt3dFVtZ1FkRWc3QXlManpS'@; put 'clZpVmtkNVBCNi9wenprRFFhWmJuU3FBaTVGVnJqZXZTcktmV0pvYjBmOWNHZC85UTI5bmZ2VDgrUEh2QnJ1NzlZMVY0WWIrd2FTcmZVN0c3dXZjK3o1UHlzQk1FSHg1ZmNMVzhnalNFWWo2SkxzOXBlWENRYWhHeHNORHF3enRyY1JFVmlZUjFqVkVQZnFzSEVTMURoRVRWUzdpaWJxRXU1RHF1'@; put 'WUN2V0F3Q0RPZ2RPMEdHcFpWMFVnT2lHRXdDb2I1ZDJ5c0I4TFVVVFV0SVAzODVxMGtTWnhFb2lqTnNPYWpFSkFWZEFJVGQ0NTBEdmR0aFZsa3d1RllLQmdPV3lUZk90ZWlnZ1lkV1FYcThkS3doQXRTUGNWdmp0ZFJ6eng3MENnWjNMQWliWjBYNWhhL2RuVCtDL3ViZDlYVnRsdUtSeEtEMDUw'@; put 'SFcycTZuWlo1YTU3Wld1NHJicWlZK3NUMDNCZm05anc0MDNZZzVXbysxdTN2RjNFaUZwSEREZEViRG54aDdzalhqdTE5ZUhyOFdGTXNFbzd0RytzKzNsM2xielAwZFRTTzJvckxLcmUzNy9qQTlya25EdXo1eEo2UzhwS2dIM3NuTXJaWWZheTNxcnFSMnhZbnZMd0tlbGtDQ3h1VEs0MVl4NEo3'@; put 'SFhDMERxd3J0WFVRR1ZBUHg4Q2NYZTZ5Rm9CMWxWZ0lHakZqVXFwOHNlRWVYQVkvZDgrZU9ISHFGTG13TlA1cjdGZitCZEFPVVFkNUgvU2ZENTRQNDFyUVgvQUVFZVJGcnlONjZuYW9DUmdKYzgrWVBxdW8wRzRyTHkzMEYvbTlibHVCdlNCV2JtQ09LY084cHAvOW1GblpHSFk3dFRkamVMeDFU'@; put 'OE5zVzFmVC9venlHWnhNdExZbXZuUXgyZG1adkVndXhFZnI5amVVN0c1cTNGR0xQMUlYQ3RjOXJ2eFRPaFpML3dQVkM5V2dkejhHc2xXQ0d1UTZDT05Sb1Jsc2FSR1lXUkF0Vlg5NVZpV0o0RUlKS2c2SHdqUkpsR1VOajJaSGMrbU9HOC92MjNkKzc4QzdrMVBsVTNVZGgyWDVjRWZkbEg5bi9Y'@; put 'c0dMTE9mblpsNVpMYTFZVnNvMW5WRTdqelNGUTFQcEZvWmJTanV2c1Y4SHplTEpMS29Za0cwaWlxTDJlVXd1eTN1Y0xtZW9raGp6aGdPcVV3WXcvYXhONDQrdVcvZmswZmZRTXQ5UnpPWm8zMTNrZ3M3UDdsdjM0TTdqN1VlN081ZWFGV1NGQWNRbVlMdHVRRHF1RWFPYXpxTktoRGROT2dTYTY2'@; put 'SHlqeC9NMDlEVVgzaVZ2V2IzZS8rQjd4UGVSQy9kK2t0b2lmdDV4ZWZXU1FYRnJtUHBmVnZSRlZ5V09zZmVFM0hldFhjQUxoaFJFYmFNK1V6MXJNOW9QVjdtbmI2eEtMeU91K1UwKzF2Z1c1KzFDbzMyWUJjZHZETnk3QU9tQXc2cGxwUnIwT016VmEwSW5PUndDOXdBdkVDUEFEejIzTk00bm9p'@; put 'cGdMNFhUaFVkMjV3OXRGOSt4NmRIZnB3M1ZUNWdXVG1PbG0rTGhNWkszOE1uMVQrTmRuT1NkbVd6Skt5eUh0YW0vZEhHVjRqY2xEMUpRK0FEMHZuVFBOSitXZ3RQakdkTWZ3bTRaVjg5TFR5dDZkUDQwa3FWamlrL0pSY1VINk5DNkNYZm1qMUxaYkxwSG1JbkZpRWgzRVFpUFJ6WVFSWU85aU9m'@; put 'd0pZRytVazV2cmpBZTU3d2VCbUJHQW9MME85RGVVN1F6cG92dUxxd3lpb3VEMTV1bUs3b3krUzdEelZ1dEJsa2VzbmdqWDlMZmdscGE3bmNCdW43eWgwZFo3TnMxd3VNUnIwQkJ4MFBJQlp4a3pnK1V5bnc4SHRZZEtPazBZY2dOQXhNSG9hVjM5TStSMk9mUHoxNmRNd3VTZnhtUEpENVhaY3Vm'@; put 'OGZlTC9VcVNpRmZ2WFVkMlNEcHIyaHE1R0dPajNTMisxMDBDSGdsYVFkRkZMZzFDTHczZEkzV1h1UUk4RzZNaTVwZzNHNTdOcTRmQkEwQk94bW9NRFk2ZGRlUDNYcTlkZm9tS2J4STREODc5Ry9Ta3J0azN5UjhYS3A3Sk1JV2Rlakk5c2poaUVGV0gvNDBLbFR5am5hWHdsK0hmcDdYU21oY2s1'@; put 'NVdQbnZpSFc1MnRsNy9wcHJ6dS90T0pUSkhPcmd1a2RWT3JPUHpNeDhkbmF4NjBpbmZLU0xjeXpUTzVSZmo3UDhscHRHcXpBS0VGVUIwOVRGU3JJY3Btak5jem55M0ZhM1BWd3Uwa1M1UDZ0NzNJR3NidTdGc2Y0YnU3dHY3SC9pTkM3cEhCM3QvRFM1MExMUTFiWFE4aXU4cTcyaG9mMDFsSXNE'@; put 'Ri9YdDVYcWE3Q1o2Z2VoMW9QUUVDSk96Z1kwdUoydm9kcnNqN25CMU9FSlZNTmh5cnhUSkZXTVlqUzRkU1hzYlYyR0ZLTUdLTFYwRE5VZmI5bXJvVVg3V010VzFKNURGRHk2N050NDJMQWNyczNoNm8ycGtlS3kxZXoyZVRnQ2VyRENXcEZ5YlIrV2F4b3JVZEI0QVIwU05GVVdCTUxHRUlidnRR'@; put 'RHBrOVZNcDk4YjhFWWhON1g3Vi8vS3FjWFVNNDk5ODVxN1RERzI3aHI2Z0RINmFZZTFYdjJKNEcxNHNlSlBqamN0RzJmS2ZTQy81Q3FwRWRYTENDNUZoQVZnc1JISXhSajNESEtOVmlTS2g2aURGR0JWeEhxcENhSk1ncTNRZmkzcFV0dnI5dVphKytWdmJlL3lkN1dOenJabGp2U08zTi9aVUgw'@; put 'Z21PL3QyM254TCs0MWo1dWJHcWVtR1NIR2cwT3FzSHU1b25XbXNxOWtUaWFaQ2xWVXUzOVJreDB5S2pUV294dktTbWtQSmhuODg2YUc2eWpnQThWOEFKQWE5U2hwZVBRWGgzNklxeC8zQUk0OUNlL0IvNVZJMUVZOXg3dHpjeU9VS3VqU0RUQlVYRDNnMEhZYjlkNCtjVG93bkc4WVRwNGJ2M21r'@; put 'WnVXY252bHM1MmJTcnZuNVhFMzYzY3RQT2UwWTRYbDB3MW45bThTbzhTOC9pVmRDYXFzTGtXZ2RjZHE1MWpEUWI3OFBrbjVWZjNLUDg0dTZmL0lUcVhQajlNekd5dmdvUjBwVXllWUsrVEZUdmc3S2dhei9NbExQSmc3WncyUFRVa2xJRkJEOUN3SXdEaGUvNzBDUHYvY3lIM3ZmajAxOTRIQlM1'@; put 'NHNLL3BiK2dPUlNGOEhGQzdFRSt6M1FiNkVhakNGMFRtc3VsZkllNWFYRTRISGFLVnhobEJIdzJJZWxOSi9GamFQbkR6ejczSWJTOGZPN1o1eDdBTzVYUHZma21uc1E3MzN3VCtqU29ldHlBU3VRaWtjcGZWcm1wa2JxRExmVVkyVWhCcytFQzVROGYrdXJYN2xQKzd4bmd3TWVWaXppdGJGTVVM'@; put 'ZTZmMW13K3hlTksyaXNiKzJmVFhnNDdHMm1hcHdEQThDZnhyY3I3UVoyL0c1OVorcWNaL0xQRkdhV0MyLzJCNVZ2eENQaytqOHc4RzBSbXRpdVB6TURPdXYwRFdQZnd3OHJiNVB2YmxuWnNZN2hkL3ZmbDUvQ1BOc2xaQ3VEN21zN2lYVHhsU2YyUVczSGQ2dkhRbEFVYkQ5TUQ2bmkwYkJ0MTVt'@; put 'am1sWTRINVk3SEM4WWlCWDVVOWNNUFk1M3lkajE1Yk52YkZ6aXRhL0NEK011Y0o1OFM5L2ZJSHJBTUxBc0pJNk1aMlJ2VURNcFRJdXB4SnAyVTNCY25QNzc3MEtGZHdEdS8vK1kzNlp5VTVVTmtZdmxGZUdnNTYyT1RIRER0UWdJQ0VMSjk2UXRieHZqek15U0R3K1FWYU90bGJTMll4cThJM2VE'@; put 'QVlJellVOVBlUUdieHhoM2s2NTZQOHZnaUFqSkxpSjNsTTI2WHZZVlkwQldBTVhGQUZGQldTa1E5c0lTb2g0alFCU2dyQjNpOVNHaTRKdWhtYUR4UU9HakFvb2htVkZiMmdmdTBIb1FLSklQVC9Mb3AyYTJsUVhpcUp4Z09PSTJBVytSeEEzSnpUWVJYRFlNYmFSNGtwYTJYNGJ0dnVibDRLcEhl'@; put 'V2QrOHQ2V3Z2NzJyWXlSNi9WN3JxS2xsUzBKdWpoUDd6ZnVVaXgyQlNOVmdYZjFJdk5oYTN4UFowYWkwSlNJdHJwcGdNSzZ1TTVOWnNHY09WSXAreEtkbnlzYzZ3WVNSbmd6NHRBK0Fob0VwZnJ1RU1zbGdOcXRUcUtidzZOVEIxUGs0Vi9uWEFsR1BiMVd5VHcyVS9kcmE0K2FBQUpOelc0c29W'@; put 'c0ZNUVR6c2NrS002Q3gxbGhSNllUWjJ1M05OK2pCQzVjZk9Na2tySzQ3NCtjUHQ3WWQ3bXZlVW5UeFp0cWU1ZlB2MlRubGlRaWIyTGJlT2pKemFVbGM5UVY1VS9xTzZUaG04dXI5L2VycS8vMnJncjByQW1SNTQ1WEl4V09IbU1aam5zakhZSDg4TURkMCswSHdnUE9IdUtJLzJSZUhIbi9GTVJP'@; put 'YmFMQU9uKy9wT0RWUkgrZ3FLcTRmajFjUFZKWVc5VlFuT3YzRVkwMWFWamwrVFRYYUlqd1ZHUXBWb0ZIdU1JQ3k4eUNWYS9nclIxZ0l4anBWWWlwSnpyRVkwQ21pOUxDQWptbnFYUWpOZHR4cG1QZEVjNFlDZEVnMnY0WDZQMTA1eWlFYTJBcTJhZWhqbG12YVVUUURCT29GdzVNV2xMV1B4Mmky'@; put 'blJrWnUzVklieCtMU3cxbWlaV1U4Qm5UekFERmt1WjFRZ21IbXRlbEE3K3JJZ2V6bzFER3IzT1gxd3A4U2IzRlJJVFIxUXpSR3h4ams1TXAxNHZ6VWF4TWxQeEFWN3h6eURQdHZhUjY0dFgvckxmMmppMjNLU2ZOd3VtRTREOXZNM2FtOXBaNnhRUFhXVXlORHQyNGR1bmVtc1J0dmFVc20yNmp1'@; put 'QWtjYkw1RC9BWTg5STV0c1dOUkRuQ2hTS2xJQ0ZTTlIxTStBeDFiQWtoMW9XZ2YwczZ2R3pzZHJDTEl3bm8xZzVDSUlRa1JRVGZQcmJ3STVUS0VBVyt5VEpCOVllT3JkMk9seUg4dTJhZjdXdjl4NDQ4MkRneE55U2FzbllQVGxlMHFJL29DeUYzLzZRR1BuZG85enhHaXFLQUpjUjVlM2t3N0Fk'@; put 'Um1Lb1k5d0huU1VZcjFndzBSY1NSTDcyRVhkNm91cW5pa0hWUWttU0NUek1CbGhSZ0tHNXVxQmtjWEp0R3dXaEdwWW1BY0ZSR3ZBUU11V2x5TlVIaXVQaG9Nd25ySndLQlNrV2hiYlZjWEE0OGQydkpybFVxdFlyZ01VUXVlTmxkVytxeEpEdThwMnA3c090YlVkNmtwZlhUdzJOdGJSUGpiYVFm'@; put 'UktmZGQ4Uzdoc3FyQ2twN1U3bXNnYzdlMDkybEZiTmF5OGI2eWpZM1MwbzJNTTZBc2VPU2xoOGNQUlorMTBLVnNsclJjeDBZTXJNM3BtTFVoV05LdlUyOWFOYnNPZGxZc3M4NkxlQVdybUFRSmN5R2wzQmx3MFJVRlZJUkNVejRrRzdXNllLRDQzV1hkVGUyM0R3TW1UQlZjbGlUMjV1MFg1RXE1'@; put 'TGRYY2xsSmRBb3NMVlhIWm9wdWZiNUdmZ3YrV2pyWHpJbm16Q3ZJQnlrRjMxajMweStLUndDenlJK1p6TFU5UTF5YmZtV1ZnV1hiOG1peTZCTjdHL3FxcWt1S3FxdU9Qa1NiSXRXa3pmRmtkSGx0Nml6MS8renZLSStud2Yyayt0RWhHc29PT3lrcUhQR1lzZ01KYlc3UlVCS3o0ZDQzb0VBQUpp'@; put 'UzJPcmI0SU9ZaGwrbjZYSTYzSGEyZWlrZFRuKzNCeURtQjNwWXFNOTMrUzNla3BPYnV0YUdmTGJiNWtOMHpxeG9vaTRsMTdyMmJHU0c0Z0IzYzFvNWt0R0ZpeHFsTGR6VTBuSGhWZlIzTTVOWSs0Tm9EWUUzZFBzNDZvN1UxUFBPZXhPNXBWaTZsQXhXd2YrODFVdjMvZEEvOG1UUDc4Zmx5cXZ2'@; put 'VHg4QjFpekhYK2k0NkVWR2w4bDFMOXE0OE13VTE5VVRjeW9BekRuNUdwODdKT1d6SnVhK3VKSzhxWWI2QVdxbDg4VCtGdllBWElmUUZjOVYxNUVzQjZyRnNoREZZNSt4aUNKZ2w1dkg5VFJsV1UySmRCSThKbmVGZUV1RWNYQzdNMHBsaTRLb0lvQThEQndzUkhVMGxvdVhzM085YlRTSmtsK01G'@; put 'bDNjMU84UG5OelUzV2RmUEtrYTZpMmNiTEF1YXRGNCs5VXNyTzlSdm1tOXBmb3Q0YmpEWW5xRko5RE41TlJPOGpPT0xXa1dMQ0FYdElzcVpPRmNucXFqZXk1VXNqNGFwMThYbFlJcFRWQ1dOc3JVaW1zejVIQ3BxanlBdEZ2Q1RGZmpmb2RFekN1TmZtWHduZk12M2d1bjMraExzZVpnUUgyR3Uy'@; put 'THhjRHA2SS9GK3FPcXd6RndxcS92OU1BQytCdng0V3J1ZUhDZHNCVjAvQ3lNaC9vY2g1bW5TRXk1UGdmekFFU0IrdFU1M2hyRmtwTjdDRXc3ckhVa2MyQ3UwS2x6LzdWT25VS2VtbGpsMDFIL2FUdjRUM3d1WjFRL21EdFJtUHZCOEVFUVZ2dkIyZWtWNXZnMWc1cHhZazZTZlkzTHRRcm15dDJm'@; put 'MUpXNFAvcWwwYmRYM0o4eFpYTEYrOEZvSzd5Y0lGUzlkVDVyWnNVSmZCWjJaaW5CRGVJZUsvTVIzQm96cjNpeTFEMTREaFFNMHpDT3hxUmJrN2tmejJhMnpaMDhpZjlYMjhLdUFlVXRvdC9QWmFoOCtVMzhBM2hlSmZXUlBmQkFMMFRuNENXekpVQTE1Vk80VWNvbnZpYmxFOTRnNDFPS3ZhV0VL'@; put 'dVp2MzVKSWI5c1ZTdFNsTThQeHVxbm1ocmw0TWpoYzRZKzVvdkdtZ2VUUjNaYXEwSTYya2dLZkw5OFdiSTdYRGxUNVM2YThCWVZ1bTl1V2wxK1JxUitZb2o0WGpIV0JmQWg4cmhvNTdzVWlUVG1EYTNpVzJoUXlUUmN4QUJzUTN1M2w3aUJ6a1p3VjFFY0s4WFUxdTFvVEJjeElGOVVhMDNqQjAx'@; put 'b2lUd3dPM256ampTV2VmSit4eE9uWjNvbTlCKzY3NzREeUgwVVZKaU96Q1NEUFBxTG5lc2FaOVVaVlBRTXFScldlT1hHbFY3dXFHb0NWVUpMckdWZkFGV0RyRVRrOFJHMFdHNVdkK0toNmFkS1VEWERNVzZCYVFObmdmdVVTVlRhNFY2MGhBdDlOcjlVUWFWa1Z6VSswTzFqMDd1VHBIOGNkSC9u'@; put 'UW5UODlEdTdQZS9FdDFGaXpYSTlRQyszWDU1SHNsODhqRlp3OGZIenVoa01ubnpoeTVQb2owT09uOEN6OVhYb0xYNk04dEpMdkFvK1QxNnlaSkIzVzBaUVh6U3BBM3dMSldhUndPQng2bHJ5VUFzNElUU1pKVHZ5UjI4N2M5WTBYM24zVFRYZTk4STNISDhlR3BZY2ZmbHY1TSt0M2VZZzBRYjgy'@; put 'V3Ixak50QWhVMllsYXRlVVVmZlNzZnNFZGZYQjRjeGwxQXdXMkN4RTZRUHQzcUpBV2NMbCtla2RmM1BmYlQ5dHZ1V0wxcnlkem9vRU1TcTM0VHVYWHJtUDhQcEdlSGtkbnJkSnZzbSthYjVKb3ZtbUJIWW9iK0xIc2ZJNzdGRUdwM0Rub1NubDd3K3gzT1h5TG55WXZJRDhxRklPRmJCOElGaHEz'@; put 'T2N2cDNsZ21zdWNWQVVibzFHN2g5cHdtb0pNZzNaSmdiaEZRTklncmlGdUwxdStsS2lvU1RoL05vcXJHMUp4SE51N3pkVGM1TWJEa1RCMk56V2JQaFh0YXpwVEV4Mk8xdDdXM0ZkcEdEWjRJK0c3Sm91czZlcDNoYXM4aG1GT3M3bmw1OURmc2Z6VTVyVjg0RWZNN2R5cDFkVmhpTlYyNGV2WlBB'@; put 'QS9CcFkvc3VVVDFPZkhqRWN4bWxRcjBoQWVwU1huUkhMRnZHRFhJZzJONlRCTUo0SEJaU013QVEvVFZWNHdGMUtFRGowVUdhSkROMjZiamVGNFF3UE1hWGJibE1GVEZYNVhkZHBhTkhsWE9PS0ZlVlQyTmQ5V0MvT3FPZFBVRjVXV2wxRUtSL0I5K0dtN2hQTVFVWDZEakU4aC9MenlHMWF0UVcx'@; put 'aHovSlY2QmRNdithejFUTTZPR3FRbVZQT0VtdE91bTYxMmdGbXppVXZpQVQvSnZtTVdyclFlMS9KZG1MWHFoV1d0dUNYK1RNcWw1OGplaktNQ2xFNXhVcEpjV0dCeCsxMDVGdDAyTUxYeWVDcE85VEVJa2JEUmF6bU1ranIzTGtPcFNYdWxLRGhpQjJpMXlDRTFlQUI0Sy92MjlWK29LVmxmOGV1'@; put 'MnUzbEV4VzE5WUVKNVpQcGVEeE5MSEpQM3ZEUlRPYkljRjVYaHhpdDZBdWJsQmZOa2Q1M2JYZmlsSE43a3RWcDByenBpNmdZZGNzeTBKSVdPaUdKMWs5THVGOFBjUjNHRW1GTE1pd3lveFZQa3NTVEFZaFhwQlhibmFFZ21CYnEzSVhjL2xTYVZaaXUwdmdsbUpiSGtlbWxmeHp0N201ZDZONXlX'@; put 'OG1PdlA1WWZkZVRUODdOcGVvK01YaTI1M0NidXRKMzYrQW5VRTV1MklPYTVVWVhSa1k4QU5HbHhNS1NPUkVUY0puQXVCOHdzVDBOdkM2UDRsTGJzMkF6MDEwTGJEdUlXeXQ2aFY4bTVQanJIM2poaFJmT1BQLzg4L2Y5a21hVGNjL2dsc0dEQitFRkg2SXBaVWFyREJuQzd5TVhXVzFSUGN0Q1Jt'@; put 'aGhMZkF0VzFDWTBRc1VVWGgwZytvaW1xRE1qVDdxYzk3dkN3YUxDa1BCb21lQ0lmYVhETkcvNFlLaWtQWVhlRFdDNm9rUmY5dFdnV002WkJOd0RMMm01a1VIOEwzazNKWGtWR2tkVUFhUEtFK1RjNE5YbWxQMVNvRXZMajZ3Zzd6aXVaUExzSC81WmRKT25nQktCMlNJd05tQ3oyM1VuTjVKTFJk'@; put 'THE3UGxsREN6QkZqemQraUNNbDFYc2ZZZWFtMmU2OFJ0ZTI3ZWc4dnFkN1cwN3FsZktpZDNMOTBFZlRlajc2SHY0TjJBdEZMWmw2TVFDRlVWb3prRnY0MjUySXRHUzB1aTBaTHZSVXRMby9SWHpSY3Z0NE1aTVlQZHVwSE5MZCtGaWM1cEpEd2hJWUJCdHRKOEJEajJBc0c2bzRpdVhRaGtma1di'@; put 'N21VcnJlRHlNUkJnck5zMmcrRjJ1Z0I1bmNGZ2tOcHBpamxlUjE0UlhsV1FTZmZHL0xTcU5WRlVieXNvOFRzTDdYWkhucXU4dTBBZkQ1ZUVFN2E4QnE4alA4OW1jZzJsMlg2ZU9ORGN5bWdlMTFPYXg5SHJmRC9QOGdEK0pkTkxmdFFwZDVRQjU3dGdZRzdxelE0Z1BTSUNMZEdqbUJNMWJjWEth'@; put 'eUV5UnNoZlh1aDEybFdOUllOaWxLdXgxQktpbFRRWTNVS0RHMVFsMXJ5Mk1HdEZveW5YcmkzTlFtd09yTVpIdU1OV1FWZmc3QkxFWWJlanp5UERVd1EvK1htbWFEZUFPUWo2ZUdPWUV4b01sdEJEbThBY3k4TGtvWTl1QW5NOCs2dzU5R0VPUTliQ3ZKenR4d3g4dVFvR2FBQStpL0JIVmx2a1FG'@; put 'dmxianRWalJUbEJvUkJBUm1RamhoMEI0eWdGOFZwY0RQVnBTWTlkNVJZTk9ld09hQnh2cXFiektBb3NWYklrcUwxVFg0M3RndmtrRmJRc293R1A0RGZUN1l0dmZVdFh0bHk1NTNrd3FMeUdONmhQTVpyVWRwWkRWRUtHMlYvRlJiMVVVSWdMQWYxV0lKMXVOZ0JIR3pIUkJBSFN1bm1LYzc5MWJR'@; put 'YVJNQkg0UVhwcmwvSk1USjFyc1pzWU9qMnd0aDlMQmZwZ0VZSjJnaGgzVzFYM0txVWJtbGExVW80OVk3TjVQamFGaUI5QXRtL1VVTytWa0RUQ2luVUVJcUNGUHJkMVBMd2RHNCtWalhGV21GY0U0Tm9oUXN2VGZsM0prNzJXUFZsYXlYVk8vbkFqcldsVkhQUjhFUmRpODYvV29DYlRBYyt2bk4x'@; put 'YVJYd0ZhdEJZbnhlcWNyQ0NjWlhPSWMvMThJY1JJOXRBbk5DZ3dGWk9Mb0p6UEZzUDNQd244R3M4UG55OTJnTkQzdFduSTluK2YzcitnR214bDA1TUFmQnVxK0JXZjR0d0FUWmVPSjhQTXVQcjRNQmE0WGpiRHk4bjdubFIxYVBCMlNxQ2w1K3lXb2FTbENiM0x6YTA1ZzJzUFVKWTQ2cmtaOFBm'@; put 'MHJ5aTluK1JEYzB5d083WTFySkpiQ0FLV25uSmVXMEdNMmRsTUQ0NHgveGdyUyt2amQyOElxMEwrREhzbFZwT0xDSWk1YSt3V3ZUL25ieGFjQUJxN2RoZXFWTzFTdWZXWWNuVmtQQzhGU3YwdmFUNjNUUFdwaUR1R29UbUJNYURORDJLNXZBSE12QzVLSG5Ob0U1bm4zV0hIcDZqUTZqdFdHM1E3'@; put 'eFNBcFpBZkVaRXVEWVdpb0JZUk5MZXRGZnk0by9jZWVmQW5XZUh6OTR4Y01lZHQ1L052aitMMk9LeVZqUGpCUnNVUlhlcDhhMEw2MGhseEZma05ZdDZIUmhhdlREZ1kxZUZuS3NZcnFyNWxnS1dTYUVsQTU1QmNkV1NJemdYdWN0UkhyNkdLT2F1RDhyV2lvcUthRVZWMkJGeHNCMGkyVkp6S1pD'@; put 'dHFxY3hJdko0TWE5ODFWRk9pR0JQa253dmVjMzV2ZGZ1cmp5K001RUVtVDVJM3luNVJRVzRwaWtEa28wckQyWHFsQjgyWjRqMzFwNlp6ODYyMXN6WG5lcWhFbDB6ci94NnVBeGZFd0N4ZnFQclNPZEVwL0pRZ05zNlZpUEM2TnVrOHNDajYrVnBEY3hCOU9OTllFNW9NRmxidHg3bWVMWWZ6WTds'@; put 'eURmM2w5bXoydFJudmJDNm41eDZLMXBIbEpCandCVjZIZFlmRUxHNmZKYmRQQXBtSzkvanl2ZmF2UGF3M3lheDZqSjNNcWZxS3BTdHVqcDFZYVhxU2g1alZWZkhXaGM2dXhaYWJ2cDFSME5EKyt0cVhXS1NmQmRrZnVwWk0vanROSGZsQjQ0b0JhVXZRTUF4cnhWVGUvanlzSWpWbEhXeFdsWTVu'@; put 'd1hNdVQwbG01eEJmOUFmRDdEVnJuWDdLbUk0cFJVNnBUUkxRSk5ldmEzWGRuY2ZiRTBtV1BYdWNLcStzN00rVlZIZDFsSlQwM3FLR0p0MjF0WHRiR29ZTCtRVnZJZHA1ZTVjWTdpcW9UR3VPRG50ZWEzQks0RHJIakR1QkhWUGJYUmRBQnJjazNQOWtnYVBwYkZjK0pleTEvTUdjcTlmelBZL3R6'@; put 'WG51aERNd3B0UGMvbUU2OEo5NENOV293WWtrME9EVDVyb2lrcEZNUkRWQjM2QUc1dElFeFpOOEdEUktCQWtpUU5ncWMwQVU3WXhERFpMNEV5WUpRcG11WUt1YkZmV1ZlbGFNTU1HWUNzUXhvMGhwdWcvUHNVWU1vbkVOR21BbUZDVWlIZ2d6MGlvOThzVCtGYXpSYUJPdzBwZEE1MXg2bkpOTERq'@; put 'YllOQ0t6ZWJjeHBhLy9ubTIvNS9uVVdRMWdzelM1dk1nM2FKa3VPTFdzcnkySVZwcFJ2ZUZ2Mk1YRE1seWVTcVZTSUNqSmFjeXJjMkpoa1N5cmhaNExFNURuMUF3bEovMXV0WnNVUERtYlBsZ3l6bHIxdFpSWXp2TzVzSmY1T3ZzSFlmRDVZZTc5aDVmcVlOcHVycTJmWGRSYUgvTDJzVjM1Zk9E'@; put 'dER5bXBZNnZ3dGRYeDVOVFE5bnltT0tpZUZWbGRjNml2UEk1T2VGMzFRUkQzQTVXZ3U5TWF6OGEwR055U1JEcmRja1FFZlVOaFVDZkFnekJjUjVJR01UR1JGU2pSb2dLUkdEMG8wZ0VEU1F5VmNYaUsxN0pzaGNzbFE5cjlBcFJXSUM3N2ZMQWNzVTZPSGErd2Y0c3VKNnQ1WWVaZTh2eTFMcS8w'@; put 'ckdsdFNqNEt3ZnkxL3UxQlozWFpUYXFUOEdtdFc2dGNmaUdyblhsS2xrOUZHTjZyby9ydjJtMHdYV3EvejZRYy8yU0JvK2w3Ym53RjdQOXpISDl0L3d0dHJaSiszbVo5Lzl1RHQ4TkJHekx1WDdRdytGL0NkZExXZjh2OC80ZjVkZGZoZXRoMWorSG4zdVE1K0hxV2EzTi8yUzFZcnRrcDQwdHAy'@; put 'UVB2bkNZY0I4dnhmQm9DeDMyVmRYQWRJRWNnOFhFWkQ3MzhwU2NWMXpNYThIQ0licEhRbk5Sc3U1SmVNWGx5bDBQd205czc3bGxlUGhrVDh0QzE1N084T1NSc3Q2Qlk1M1Q1YTBsNCtPZDh2aEVKN0UvZFBYMnN3UGROdzMxSHNzTURmYlg5WmNuYXhxaS9iNmx2K3pva3EvYTF0bDlsWVlmVXNM'@; put 'c3lUaTNKeXBkK0xvanhkc0V4K2ZoamE1VGVqMlVjLzJTQm8rbGZibndMMld2cis3L1lyYi91U2x1bHpyUU5sSkkrbGxPMVVmM1RRRGZhM1VGaUtYdmtBNVlmcEp0SUpOQUZ2V2pMRnoyMllyQSs5QXlyUWFhdDhndE5ZQ29PWGNIR2M2UHhrcUxvMVVsZjZENzNYNm9mc0JmcG4ranhhV3hwb1dY'@; put 'dExjd0ptME4xa3R6c0ZsZjF1c2lPaElKRnhYcTlEcXpnYWkrTEwwcXJGemQwSmN0M01pWHpWMDEzTWlYOWZ2OVZmN0swRHY1c2pxdnVtWFN3MXhaQ2RSbFBEeDBabUI0UzlHKzdvb0l2QnZaV3JTdlJ6bFgvSEt3TXRvZiswNWZ6UGNEZnhSL2NFOTkzK21CYU9sSWFEb0pFaHdyRy8xbC9OODhJ'@; put 'TU9QZ2hEWHhYN3ZwdWZIc0xVclN2dWRxMlI0OWZVVkdlYlhMMm53V1JubTF5OW0rMUZsV0YyUG9mM3NVZnU1TjJmTm1kZTVmVHkzVkhHVHVzUDE2ODZiMUIxdXVFQzk4VzIxQkpFdVVQOTNsUjBxd3Z5YXNzTXNUaTZxT0FGYzllWG16VExaUE5VQ2VtQmRqTWQ5d25OWm4zQ2hKN2Z0NFd6K3lv'@; put 'Z2UzS1R0TjdKK28zRlUzWk8zdkUyb2dIaWdBS1N6WFc0cHdwS3VBSXVZREJnZ0RBRVNrem0ySFV2UDloV3dGVlMxSkt1d3NOQlg2QXY2N1hhN3kwK3pMM3FlVkV3SElueTdYcEtqcVQ2TndkK3ZDTmZYdGJ2TEdySzc5N0NuMkZkUVlGTitjK0xFZldWdDlVRWYzejNrODNnS2JEak5OdlNwOVg3'@; put 'YlNDL0lhZ3lsMFF0YzhId2xXS2N2aGhqQ2d3MUNUWUlZRFVhTWpURXNZZkJFTjc4TDVseVYzS2kyUlpNcEhiQzRoWU4wRFFIUGlJVFBVazAwc1JLQXhIcGdGbnl3Smt5K3Zia05wbVJIUEI1UHh4dkRRV2NnR0E2NC9IUVZJb3ViVFFxQ1FZdlpOWFNGYzRxRFNTL0RtM2w5Z2ZEY0xSeUJmOUVL'@; put 'aFRrVzF4WUswK0poaHROUGFnWERhcTdnWXl4T0RLdHg0aS9XeFp1OFBwYks3bFpWZHUvTzVoayt4bUpWMWhZYjBQbE4ybDVTMnhKc0dPVjh5dllZc3JZUnRlM0NPajZOUXh4akppOENUQytEeVJkMmtEOGhJOEE4VC81RWdRQkd6UnVCQkp6SjFzMitDL1JKRVl6cE5kbmtBTUxyZ09iYUtueVlt'@; put 'aFdNQkQwNkFQeHJ5KzcwMWFoT3NGWXdSYlZQZEZOb3RKcnFSRk5EcTF0WUw5dGlGZkFLbkNpcUJkRzV3TlQ5ZHZoOHZyQXZGS0xWQ3VHQXVxUVZXRjlib2hZdm9Od1NrM2QxcktveGVlaWhreDNLdjJ1RkpwMUxmNTlUWi92K3JxYW1wUi9uNmltZVQ4eGs4NGtMYVA4Nk9uUGY3VnpXZDF0UWRk'@; put 'bWFYQ1Eyb1I5czBsYnord1NBZVlybnFFRGVoOW5aR0tDTmlyRUJzMTFPZWxISDkxV3FKMkxRK251SlNTRWdVUk05cG91NE5scVJPTHBMVlBzZjBFU01ERE94VWg0amV1VVdubkh2NGVMRXBZaGNXS1FwZHlZNFRBY3RzSnJqRUlxak03S0RSZ3doVFBRR2NBQkJ0eUM2eWJ3SStLQVNYSGtkalBR'@; put 'QXpWUnJsRldQTjJMbFFzeVBaRllwcElHeU9lTjlHN1VndEhRdUhBN0h3ekZQaFRNY0RJUllqbHRTNStEVlZNcmE2bVhxOXlPMWd2bTFyUlk2cTJJNlhaMXRkU0Z6RUtJdTVTOXFRRlhzdFRwaHNobVl2c1dSVTlRTTRSV2VaWFhORytTaERSdmtvZGY2K1FiVlIyQjdaNW1OaXFvMjZxdnIydko2'@; put 'WTJxakJyaU5XbFRiS3EvVGZiZThMZkJLUHZFamZrWUh3QXMxeUlvU3FBWDltVXU3dHhwTCtqS3NNMEFvcC9OaUl1am9FUzZvejhmdWlCdmNVYTFDekV5WGNRU0RidDZJVnpaaFM1SitCc0pvcXZhMWZiMU9rbk53Mi9vbUppeUtkdDRRclcwbVZ5TmtwT2U4NFBsczA4dkEwL2k3cG9hbXZXdGFh'@; put 'cHBUeWZ4RWZpSldGZkFYRjdtZE5QMWRZTkg4WW5vY0FIZUY5WDlGUlRRdURRV3JRaUZqWVNCVWlJVjNySTRlcWd1WGRjYUxBNVYwL2JyM0NrcWxJZjc2T1RCNGd1a1J2ZzZ3c1B6d3VyV0Nud0JNSmRNalBFWmIrQVJmMDIxYTNvWVUwQVV1dWpPVXJualM0MWNJN3MrZTQ4SUxxelRwOS9qWm5p'@; put 'Wk5MdWhPV0UzZ0ZTYnZ1bE9XMVZLdStodlVoaUI0MXJmWldyOGZIWkxOYnVyMiswSFFxUkVKMEpWak1ZY3BWTzgrUHl1c2pMYWxMTFJaS1ZCZUF6QkZ0Mm1WbHhaQmhKbWZ0MkdKc2xOZGxrMTdjOGMrcjVZTGJLRnpLUEhtbjJ6amsxZ3BHMWdLdzN4S2F2UDArTitXM2xKbnBLN2xvRyt0ck1H'@; put 'QWpqV3R5UWRyTmNUNjdMNXUrN3A5M2JRMFdMLzBGdlEzQ25KNG5wMDNtZUJ5aUgvUC9YKzRIbVB5T2FKZWY0SmZwM3VwbVo5Um8vb1p6blV5eitKNTRWNkFHVlZoUE9nNUR2T2NCc1AzWkwrbzlRUDlmNS81QkRqSEo2RDkzTWxnUmplRzRmc3lTQi93VXg2dHZMV1lUVVpSRHhKSXROM3Bhelo2'@; put 'NTZFOHQ3YlJPeVdsMHJRWTJ5MjVTWjhTQVAvKzFLbkZ4YmNpUnlKNGkvS2ZtYU1kMzlIMmZUU3crdkJCT2M5c2trUnE2UTBJYTFYaVpuaHJVL2QwWnN1elY3WjUrdGduYmJGcmF1cUxibGI3Z3lVdzkrcnpjY1A0eWFHaGsrTjRiNVZ5OFQvRFI4SjRRdmx0RmNxdVdkMmhyVmtCSGwvZkNOZWto'@; put 'UGwwNDZ0aS9UR2czeGNaWGV0VS9Xcmw4SEM5aE5nMWVNRHBSYlR5ckJQWjlURUQrdHdtejdxVXpVTVk5cUdjZGFwTWRwMXFBVDI1emdmazhmbTViQzVoWVJKdHRKNkdyV3ZYdU5TMisxYnlITmlxN2hzQ3hTdlFQYllPb0ZLTG5NNmVPR0VnMlNNbmpIUnJ2VmF2eHlMQ0VtZXh4OFdLZXFscllh'@; put 'SUZMcG96a1MxMGNXUDd5bmJ2SGVyeS9RdXpkQi84TE9sZGVxc3JjMGpPSE03d1JmeXBUMXc5OCttckY1VVUvbDdtc0N6UE56TTdCbU1XZmc3K0JaMVhNOW91ajNzeGpVVDBPcHBlMXdzRHdFTTZ2VUYzd0dJa29xaWxITXlTU2NoSk9pU1RnUUJDeWVaa1UyTXFVQitvaTFWQmQzNW5NQndNNWNH'@; put 'NFZ5ZHBWOHhCanQrZ1czT09qT3BEQ0hrOE85dDVKQnc1S3ZNQzg4elJTUEM2ak9aSUtMZmwxSnZqVzFidGoycXNxMDN6Q3ZUR210b1VjeWwwdVVYb3VKODZGNnB2Y1lMUk5xWHk3OVByK0lMWFAxUGE3dUM1UHpYKzdRVStQY0g0TjZYeTZTc2NYbm1kMWt1cjhQUjZSOVkvUGNINE42WHk3ODBi'@; put 'UHV0MnhyODdPUDhhK2JQWUhuZzJ6a1oxbkErczQzMWVOMDNIZVJVZjUyNXQvM3c3MnovZmdkNldTK3JBR2FrdktSYjBVaEhkZlloMXVNQUtMa2tlSzlyZ2VlZjQ2bm9OU1JKbndQUDFES0tWTk1hNmNvM3FOZVVhNzlpb2RGMk5oM0RxblZxeGRjT05palhXdCtPMUd1WlFkWVNXYWRnTlVuRXNL'@; put 'RzZheWI2Q1F3Skk3Nm5yTjhocGV4ODRlSmx6QTY1ZkZDdldwTFl0czVjN1JrQ3RmMjluOWU4eVhTZW93NksrdnBUb3hKSWlnblRnTGlHZ0Z4SHlWcThUNk5nNmdiWlNxZGF1YkxKT29LTm5hTjEyZVdDNlRyQUdUbDBuME1CRnZ1Y3ZYZ240WmF1Z2wwRXZMYWg5cDRwOC9JTzlveHZoTjNsTitI'@; put 'SmwrdHNtcFRXTEIya3hVbmJadXYwY2VUcWh5UlBJNHVRbThuUkpreWRzS09meUZBUjVvbWM4bEtNWDVId3ZVTVJqQVlxWTZYbVRLa1ZpR2tVbzZzZ3BtZ0JVNjdPTUJzTDhzM1dFaVdjUmZpVnQ1S28xNENwNTFyWFNVVExaWWRqbHFKd0c4MVFhVENBTWZta1RXdEVnbng0WGdHZWQ2Nm5oSzZY'@; put 'blZheXBJdXpNSGwvQjlrTzBzLzBRQ2ZSdHVhQUtHNFNvbXhnTkxreU0yYUpJZlZiTjZIWDZzeVlNQThYR28yQnNBTU4wTjZZZzZLWkZ2aWVUMXo0aVgzWlpzbnFsamNGSWJudW5SbkowWTNoV1dvbjI1elFUS0o3b2VRWUpWTTAyYVhnQlV6VHJvZHVFbzlkdjNQQlNBY0NwZFJ5Y2tsZjJjZ1I4'@; put 'Y2R2YUtzeTBhYXc1ZDN2SFJJRWx4UGlQblNYQ2VEU3Q4dWo2WEVnSitCMEZ6UCtjNVA0bnVXYWRqOHByT0RMWkdvNkZEV3dIejZXZnkrYlN0WndLYi90eXRrWkVxMUhNcmY5Z2JWbHRBTXZiQTh3ZEc5V2dnTjkwMzRadGgxZldBckMxRDZubm9HeGo1NkFFNk5xTkM3UStMUnJPby9zcUJ0UlRw'@; put 'YlF6eDFuT1hRdDIySmEvUUxBZ0VIVHhNNlpvVUxvbWM3SG0xQlR5NlBEZGs3WnN1c0l4ZjBvOVBZVmNZR2VsV0wxcWdzSmY1SDM0V081Uktud2Z6all5QzNGTUNOM0d3M2tybUZRQlltMWRDQU43RGZoV1hTRFpWWndTdmJiRGErUDByNS9mNXlsZmJVVm5UY2JYSFBRN0E2NkF5MCt0MjdwVTc4'@; put 'clduYVE5bXhNbnN5d2l6Yy9keW5NUzUwYW5hemYxYUpFZDBJcWQ4Y0w0c1lYWEMrR3VkWHpFOSs5UW5ibUw4WUtFdnB0VEkzUkNxeEdDNjdldGE4dlhLQzVwYXhSWW1rQTViWTluNjR2bTBBM3IrSWlkd2NKNHJYM1Rla2ErYjRieTJqVDNqNDZnbkxiSHRiWWI1ZzE1MjR0cVc1bzMvR0JPMnhQ'@; put 'WnRodmxwbmpiUzlwenNhR0JuNzFDOXlYVEdEaWY3c2lnRmYxMG54TVpRT3FtSWJLWGV0dyt4dFQ1eUxyUmtXVmlJRDluRy9IVEcrd2RwclgzTjVOTFYzaWVpcGVlcDNKKzRlRFk4TkFvdVhULzZPakdmV1QzZFJGMEZ0anlCblZYbDlwSE9pa0ZNcU5EdzJNSEY4aWxrWkg3MVQ1Nm9ZOXZRSFNy'@; put 'N21nd0VicW5ZWUNHR24wYjFlRG5JVXRJeU81b1VDZk5nb2tueC93dHJvYWlvZ1pYUy9sNGpQVDZ5MXRjWGk5ODhMUG5ES0VYV1Q0bHpKNXoyZnIrdGJzbHRCMFNLeWtPZFQ5R0x3Yjl4dlpqTkxGZTZTWld1aU5oSHFRVVkyRXl1NGxXdUtKZEdibmZXM0I3WjJkMVFwWVQzdkp5cjhmdjk1RGV6'@; put 'Z1Q5bk9oczhudjRSYjdQWUJ2V2cwMnpveFkyZ2hvclRDYWZjZ3o5bW9vKzllUWV3T2trMDRZQ3ZVT25ha2Uyb0VlbjdzeFF6OSt2V0ZHSXA5cEx2TU5jL0VIN1BjN1NPVDRtOEpreVJyY2thY1B2SnkrQlhIZXg1NmJwZmt3ajI5M214cmpQZ0lWZWRpalJKRFdwd01QejJ0RWxSQmpsdXhXQ0li'@; put 'YlpqVDRmMGNQdjJWSGEzQU5VYVNvR3NDVlE2SENiSEI1OXhwQ3NjV3NmNVB6ZHBOMXVzNWg5cFVhNlE4aGlMaTQxM2E3U0pFUFhpZGk1dFVWODU0VWV1TEtQaHFVM09CM1p2U2hlS1JCU041ZmdIY2Y0RHBPLzhkekI1SzlSZVgzNXVlVnZJeXNLc2g0SytibnpxL2U1QmJOOUNhc1BvUDhLejEr'@; put 'V2hJSlZ5akxQVGJJOEpkY3BYRmZlb2VsSzFJMHJOdEdWcjJpNkVuVUR4RVp0RCtJbjM3SHRRZHlTMC9aNHR1MGNibHFuSzNuYmk5bTJjK2hyUEQ1ZGJxRm5WK2F1bjd6OWUrNUx2UDE3MVplSUxEZlROUW1lWjJjd0Y5NytIVjhuZS90M0tnelAxeC9MOXBPSHJ0MGtYLzlTTmwrZk40STJyQ1h0'@; put 'UnUvWnhFNjhrbDNMN2xiajNEcjBNMkxCdmU5ODdqODltN2ozb05aR2FMK0NOb0xsN1RlMU5pMzRBK2hWOGdUd1RUSGptYjYxbXdvNXp6aTExRGhQcm41MzVRc0x5TjJydnJHQXppbUQ3MGUvSUJkZ3h2azA2OGozQ0pMUzdCNUJlQ2IrUG50bUNhcVF5MHFzd091ck5vVUpUTGtGQzRJT2R1TFg2'@; put 'bWZyTngwS0x0OWtXTUdjOTN4OCtJZkFHeEUrUGpiT1A4QTRIZGx4TXBlelZNdnZqcUh6ZUJJL0RsQ2I3TEdpNXd1d1BWWnJ6aGQ0cWowWWJBOEUyTS81WUZ1UXY0TkxIRS90d0RkZlJoOEUya05RWXd2QTZ4OFlEOXZ4endGQW90K1BvN3M3NS90eE1tZ1FudnhiWGxSVmw0LzFWdjcxTlFZc1dy'@; put 'REpMSnB5di9MR21lY1F6R1poeG02MFNicmNiOHBKdlVORDlxMDN2TFZFV3d2cTkrVTBiOWh1ZzIvTVdkY1dvcEhHb1NGWjFyNDVaMmh5NktxSk1YbFFIdGphVTV1cDdXaHEzUEJiZEZ6L2hXL1JLVi96T1pnRFc5NzRWMy9ERGg1a2YraUg0VnJsYzlyMzdYd0szZ0JzOE1xL2VFZDlQMWFUK3lV'@; put 'OEsxL0dnOEhUcjhjUi9HMTZLdEV6ZW94cll4bnNCZHdGSHBtOS8vN1pwWXVlcDUvMTh2M0FBQmZUNEFRR0YwbDdwUWhBUGZKSS83TlBleTUrajltRDM2bm5JOWVnSGZLRUQ2aFdqSFVpb1dVa0dKbnBxZlE2TUhjUWJSOHdZbUxDMkV4M2pHUzNDVmxZRFN0UFBjRnJEVXJFWTlFcXV5TUU0YUhk'@; put 'R2NxRFVITGwyS2NJeEk3Y1dVOTJrSlZjQ0MwdkExUjcvU3d4eW5ZSTFiOW5ZT1RlZWU5WUZ4RzZkeFRPdjNkSTNSV1V1YTRNaThyUDlRUUhsRGRLRjd2bjJKSEtuY2Y3ZWozbVFrOXZ6K0YydGllb3U2bTMwR1AyOUhZTTBlOXN3VVdrRU44SnVrNThodEI5R003c2FlMTMwblBhbVZNRGJvMEFt'@; put 'dGR2OXhOaGFZbis1cHdSeHMrNE1EenJkZWJwU2UxLy9iQ0p0OFkyUEd5QzEySEFjMEMzNDFwMXJlQUpyVDREcm45RHZiNnlSc3V2WDhwZWw0N25YcitvWFVkekIzT3Z2NUs5M24wcTkvcTU3UFdGZWUxc3RHM2tIcFlqVDhDOEl3RW5obmx2WEZZRHMwL21WTlBrNE9FZUZuUlpjNUZ4a2p0ZGYx'@; put 'Snh3bU92WEt5b2NkZGphM0ZENDJ5T0c0aXpQNTB6OXBleU9NaTdqdHREV3JyL05YWk9qMGJ2cEQyd1ZUdHhCOU42T0xpdlgzOWZ2elNLL2gvaUV6ejZBQUVBQUFBQkFBQlZFclQrWHc4ODlRQWZBK2dBQUFBQTA4R2RoZ0FBQUFEVXZxYjEvemIrNHdTS0E4NEFBQUFJQUFJQUFBQUFBQUI0Mm1O'@; put 'Z1pHQmdQdmZ2UEFNRHkrYi9adjl6V0xvWWdDTElnTkVRQUtjTkJyZ0FBQUI0Mm5XVXpXc1RVUlRGejcwekZFRUkyRVJRUW96R1lFeE1xa20xMFdvdGFXcGlCV3ZzUnF4WUYxSVhMbFM2VUVRRmthNUVSVjI0YzFYcDBvVktkM2FoQ0FYOUMwUlF1dENDQ2hWS29TNk01ejR6RXBPYWNEano4ZDY4'@; put 'ZTMvdnpNZ1NUb00vT1VwRnFSUXFNbytTVGlHaEU0aDdSYVQxQ2JaSUIwcHlCVDNVTm5tQUxqMkJneHpmTHhlUmwvWG9rOW42VjMzSjQ5dm8xRlBJOHY0bXZVbWR4UTY5amwwNmltNDlqd3lQQzI0ODUrb3dpdlljK21GWlFkaTd4SG1MQ09zTWF2b01PVjJoMzBDVmRWVDFDODgvb2lvaERHa2M2'@; put 'L1FwanVrQmxMd3pxSGsrbGVIOWU2ZzZmK3pteExsV2tzOGIwaCtJK0VWczFOZll3SGxyOUM2NjVScU9zT1psZWs0V3NGTnI5Vjh5enByS1NPa2RWRFNCN2ZTc2ppQWxFNGpwSkdzZnc0QUk5b3ZVNTdSQUhvS3k5d2dEdkY3V3EyNTh4ZWJJZlRKY3dtYVo1THd4c3F5aDA2dHk3VHdpN0RlaUlY'@; put 'VEpReVFsaVhQMGxMekNIbklmZEd2ZVF0NXFsRG5Xc3B2MzNwR3gxVFhGUFFEMlNkbGR6NUpYZ24yRm5SYi9sWi9rR3NiUDJEVkpRdlczeG8vK2pacjNva2dIN0ZxbG1RWkw0OWNzNDBmT2VwSXlWcXZJZTBHM1hzaXVXZVQyeHBqUlAxTWY5RElLZjltMXluSmhidnlhWmZ5TXM3bjFhMnUydXZW'@; put 'dTZ3ZHVPZUsrV0wvTWN0YnhzSnFhL1hqVHVXWE45cnZoWlBXSjliNG51NzJzSDQ0aCszQVpaQTRzaCs0ODhISEVaQVF4WTJ2OXRibHhaVytCK3lIay9BN1d5ZHhhZHRxY1diWTh0VG56N1RJV3VPMlBNZnFQMnp2Z2NtaDdhUHdhNzRMbHNkVXQ0ekxEN0RXRW4vUlJhcENhNVpoRHZJWjZUL0RN'@; put 'Vm05ajJsaVRkY05iK1BPOTRUT0JhVUQ3a1BjdThOc1JSYS83THF4Rkw5VXYwK1MxN0w0VjhKOGpMY1BZU25GLzY5OWRQanpPNWI2dThxK2c4aHNwWTlmT2VOcEZ3bDFJNG5BQUFQQzFsdCt1TXB0TzkzSCtONmViTzdlNU5VRjZraVBpQ0IvaWlBaUpIbzZJT09RNElxS0hJeVRpa0I0T2taQ0lP'@; put 'RUlpSXVLSUVMbUhrT2doWWtRUElSRVJSL1FnSXRKRHlDRVI5M0p3L0g0UUJHWCsyWWIydTZDdU5FekEzK0VqK0FwdWRmL29QdTl1SVJaRVFKSklEdGxINmowalBjczk1eWJCTkdZNk1iOHhwODBaODZxNWJEWXNsS1Z0NWF6TDFqUHJpMDIwVGRqMmJOZTJocDJ3ajlybjdIbDd4UUU1RW82Q28r'@; put 'WVVuV1BPckhQUFdVTWhsRVBIMFZWMEV6WFFWcStqbCt2ZDZSdnVXK3YzOXMvM1g3cW1YR1ZYZTJCaVlIdmd3aTI2bDl6VlFXNXdZL0FTWTdFWjdBQXpzSTZIODB4N2NwNXJUOHVyZTBlOFM5NVRITVZUK0RwZXhNdjRGZjdxWTMxcnZyeXY3dXY0SFg3S0wvdVQvZy8rTFNKRHJCQjVva1NVaVhQ'@; put 'aWxtZ1NyK1I3TWsxbXlCVXlUNWJJTW5sTlRWT2ZxU3hWb0hhcEN2Vk1wK2s1ZW9GZW9kZnBJbDBLSkFKM2dYcmdHVURBQWJ5QUJUSVlCbnZnR0ZTQkFXN0FJM2hpRXN3SmM4SFVtQWVteFhUWUpYYVYzV0IzMkdPMkd1d0wvZ29hd1p0Z0k5am1MSnlQQTV6QjNYTU43aVZrQ1kySGFxRjY2RGxz'@; put 'Q3J2Q1ZQaUpoM21VZjhjZjhsVyt4ai93TFFFU1hBSXI2TUtzVUJMS3dxbHdLZHdLVGVGUHhCYkJJdUdJRnNtS2lJaUpRSXlLQ1hGTW5CVG54Y1czcVNnVWRVV3A2SUUwTG4yVUZxVnZVa0hhbFk2a00rbEtadVZOK1VDdXlCZHlUYTdMSGNXa2VCVlcwWldrc3FCc0tCV2xHY05pazdGQzdMY0tx'@; put 'N0thVkZQcWpQcEovYXJtMUMzMVVLMnFobnF2TnY3VEVJM1NSclZKcmFqOTFPNjBwdFljZWhocTZ6WjlXYy9wUmQzUWIvUkgvVWwvaVZ2aTd2aFVmRGIrSlo2TjUvOENEQkRNeUFBQkFBQUJQQUJvQUFvQVFRQUVBQUlBS0FBNUFJc0FBQUNUQW1zQUF3QUJlTnFOa3N0T3drQVVodjhXTktER0tE'@; put 'SEdzT3JLR0JPNXFlQnRZZFN3VWRSSWhLMGdGUnJCWWlsR1hmbzJibHo2REY2ZXdJMlA0RFA0ZHppdE4yTElwSjF2NXZ6blB6T25CUkRETzBMUXdsRUFPM3g2ckdHT3F4N3JHRWRUT0lRTjNBcUhzWUpINFNIRThTRThqRmt0SWh4QlJrc0lSeEhYVG9SSHNhVDVQbU1vYVEvQ0U1alN3OEtUaU9r'@; put 'endrK1kxdWVGbjVIU040VmZFTkhid3E4WTBhOTcvQlpDWEwvRE5teTBjUU1IRnVwb3dJV0JlejRacEpCR2xsUmwxS0N1b1RRZGNwRnppMWtkNWw0Z2dRSk01am5LeVdZZmZKVkpsVVhhVXJzMUhIR25qaTY1UW5XYW1TazExbkdNWFpTeFQrcm50UkI0K1U2RFZqUisxU3h4NVZCcnFaTWIzODR3'@; put 'V04wUytaUTZtMHF2S3dkME1UbDcyVFhHS3VSRHhyM1lIdWZhUDMzemV1MXl0WVlreDlVUFoxdjV0Z0xYQkdNMjEzNU9SN0xxakxyYzdmSXIrWm9rWjc5bVM5MzFxMmF5N3ozNzdmM3RaWms3Vlp3cEh6Zm9YVUU2bVZkUmd5T3JZam1lTUkxVnZoZXhIUHhQT1p4VFo2bzZqbnlGZk9CWXhDVnZZ'@; put 'akhpVU5QOEJMaFpoNWNBQUhqYWJaTlhiQnhWRklhLzM3RjMzVFpPNzcxWHgxNzN4Q2t1YThleFl5Y3VjZXpFU2NhN1kyZnhlaGZHdTNGc3VnUUNIa0R3d2pQbENSQzlDaVI0UUtKWDBYc0gwWG1rQisvY0NWNGs3c044L3htZDg1OHo5OTRoQzNlZEcyQWUvN05VbTM2UXhReXl5Y0dIbjF6eXlL'@; put 'ZUFRZ0xNcEloWnpHWU9jNmZxNTdPQWhTeGlNVXRZeWpLV3M0S1ZyR0kxYTFqTE90YXpnWTFzWWpOYjJNbzJ0bFBNRGtvb0pVZ1o1VlJRU1JYVjFMQ1RYZFN5bXozc1pSOTExTk5BSXlHYWFHWS9MUnlnbFRZTzBrNEhoemhNSjExMDA4TVJlamxLSC8wYzR6Z0RuT0FrcDdDNG5hdTRtcHU1Z1R0'@; put 'NG4rdTVscWY1bUR1NWpidDVubWU1aDBIQzNFaUVGN0Y1amhkNGxaZDRtVmY0bGlIZTREVmU1MTZHK1lXYmVKczNlWXZUZk0rUFhNY0ZSQmxobEJoeGJpSEJSVnlJd3hncGtweGhuTzg0eXlRVFhNeWxYTUpqM01ybFhNWVZYTWtQL01Uanl0SU1aU3RIUHZuNWk3ODVKNVNyUE9WTEtsQ2hBcHFw'@; put 'SXMzU2JNM2hWMzdUWE0zVGZDM1FRaTNpZDk3UllpM1JVaTNUY3EzZ2M3N1FTcTNTYXEzUldxM1RlbTNRUm0zaVB1N1habTNSVm0zVGRoVnJoMHI0Z3ovNWtxOVVxcURLVks0S1ZhcEsxYXJSVHUxU3JYWnJqL1pxSDArb1R2VnFVQ05mODQxQ3ZNdG5mTUNIZk1TbnZNY25hbEt6OXF0RkI5U3FO'@; put 'aDFVdXpwMFNJZlZxUzUxcTBkSDFNc0RQTWdqUE1wRFBNdzEzS1dqUE1PVFBLVStmbGEvanVtNEJuUkNKM1ZLbGdZVlZrUzJodngxbzFiWVNjVDlscUd2YnRDeHo5Zyt5NFcvTGpHY2lOc2pmc3ZRMXhpMjBra1JnOGFwQ2l2cEQza1d0bUYrS0pKSVd1R3dIVS9tMi85S2Y4aXpzajJya1BHd1hS'@; put 'UTJoeE9qbzVaSkxSek9DUHd0bm52VVk0dm5FelVzYk0yc0hNa0lmRzFXT0pXMGZUR0ROdE12WnRCdVhzWmRGTFpuZXNRelBkcE5ldHlGdjhPYklXRVk2RGlkaWc5YlRtbzBacVdTZ1VSbTVPczBIUnpUb1RPemc1UFpvZE4wY0F5NlROV1lDMzhxSGkwcHJReDZMUE4xbTZTa21hYkhteVpsbU5Q'@; put 'alJPUERPYW4wTTlEem44bFNtWkcveDl2QmxHRkJiempxaEZPalF6SDdiTUY0aHU3TDBCUFQydGR2WnB4MGtkOC9mZHFUMDZlZG5qaFlWdVd5TEZqcDZ4MTJyS2xyTlc3UWF4ekdYZVQxUnFLMlk0OUZ4L0xHejZ0MFhXbW92dHBqamNjR2o0MitQbU0wNFNMOU5saFNFdlJZNXJIY1k0WEhTc05n'@; put 'VTNZbzVTVGNvS0twSWNjcXRtTEpmTXVkeFVqMzdxZGxrVFg5MmVrNFlKMGYwQ1M2M2RPeXdQdDlqRGI3bXRaNVZ2bzBUSEl5R291NHliblcyTlFlUld3bkwySjc2aCszWmJjaEFBQUFlTnBqOE43QmNDSW9ZaU1qWTEva0JzYWRIQXdjRE1rRkd4blluVFpKTWpKb2dSaWJlVGdZT1NBc01UWXdp'@; put 'OE5wRjdNREF5TURKNURONmJTTEFjcG1abkRacU1MWUVSaXh3YUVqWWlOemlzdEdOUkJ2RjBjREF5T0xRMGR5U0FSSVNTUVFiT2JqWU9UUjJzSDR2M1VEUys5R0pnYVh6YXdwYkF3dUxnRCtIQ1ZnQUFBQUFBRlltUFozQUFBPSkgZm9ybWF0KCJ3b2ZmIik7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQt'@; put 'c3R5bGU6bm9ybWFsfWNsci1tb2RhbHtkaXNwbGF5Om5vbmV9Y2xyLW1vZGFsLm9wZW57ZGlzcGxheTppbmxpbmV9Y2xyLWV4cGFuZGFibGUtYW5pbWF0aW9ue2Rpc3BsYXk6YmxvY2t9Y2xyLXN0YWNrLWJsb2Nre2Rpc3BsYXk6YmxvY2t9Y2xyLXN0YWNrLWhlYWRlcntkaXNwbGF5OmJsb2Nr'@; put 'fWNsci1zdGFjay12aWV3e2Rpc3BsYXk6YmxvY2t9OnJvb3QgW2Nkcy10aGVtZV17LS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZm9udC1mYW1pbHk6dmFyKC0tY2xyLW1ldHJvcG9saXMtZm9udC1mYW1pbHkpOy0tY2RzLWFsaWFzLXV0aWxpdHktZ3JheTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9y'@; put 'LWNvbnN0cnVjdGlvbi02MDApOy0tY2RzLWFsaWFzLW9iamVjdC1jb250YWluZXItYmFja2Ryb3AtYmFja2dyb3VuZDpoc2xhKDAsIDAlLCAxMDAlLCAuNik7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtaG92ZXI6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25z'@; put 'dHJ1Y3Rpb24tNTApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLWFjdGl2ZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0xMDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLXNlbGVjdGVkOnZhcigtLWNkcy1n'@; put 'bG9iYWwtY29sb3ItYmx1ZS03NSk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtc2VsZWN0ZWQtaG92ZXI6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tMTAwKTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1zZWxl'@; put 'Y3RlZC1hY3RpdmU6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tMjAwKTstLWNkcy1nbG9iYWwtYW5pbWF0aW9uLXNrZWxldG9uLWR1cmF0aW9uOjRzOy0tY2RzLWdsb2JhbC1hbmltYXRpb24tZWFzaW5nLWluLW91dDpjdWJpYy1iZXppZXIoLjQyLCAuMDEsIC41OCwgMSk7'@; put 'LS1jZHMtYWxpYXMtb2JqZWN0LXNrZWxldG9uLWxvYWRpbmctZ3JhZGllbnQ6bGluZWFyLWdyYWRpZW50KCA5MGRlZywgdmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kKSAwJSwgdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tMjAwKSAzNSUs'@; put 'IHZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTMwMCkgNjUlLCB2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQpIDEwMCUgKTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tb3V0bGluZTpIaWdobGlnaHQgYXV0byAycHg7LS1jZHMt'@; put 'YWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWluZm8tc2VsZWN0ZWQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTkwMCk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWluZm8tYWN0aXZlOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24taW5mby1jbGljayk7LS1j'@; put 'ZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLXN1Y2Nlc3MtYWN0aXZlOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tc3VjY2Vzcy1jbGljayk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLXdhcm5pbmctYWN0aXZlOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50'@; put 'ZXJhY3Rpb24td2FybmluZy1jbGljayk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWRhbmdlci1hY3RpdmU6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1kYW5nZXItY2xpY2spOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1uZXV0cmFsLWFjdGl2ZTp2'@; put 'YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLW5ldXRyYWwtY2xpY2spOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1pbnZlcnNlLWFjdGl2ZTp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWludmVyc2UtY2xpY2spOy0tY2RzLWFsaWFzLW9iamVjdC1p'@; put 'bnRlcmFjdGlvbi1iYWNrZ3JvdW5kLXNoYWRlOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTEwMCk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtc2hhZGUtaG92ZXI6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tMjAwKTst'@; put 'LWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1zaGFkZS1hY3RpdmU6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tMzAwKTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1zaGFkZS1zZWxlY3RlZDp2YXIoLS1jZHMtZ2xv'@; put 'YmFsLWNvbG9yLXdoaXRlKTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1zaGFkZS1zZWxlY3RlZC1ob3Zlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0yMDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLXNo'@; put 'YWRlLXNlbGVjdGVkLWFjdGl2ZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0zMDApOy0tY2RzLWFsaWFzLW9iamVjdC1jb250YWluZXItYmFja2dyb3VuZC1pbnZlcnNlOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTYwMCk7LS1jZHMtYWxpYXMtb2Jq'@; put 'ZWN0LWNvbnRhaW5lci1iYWNrZ3JvdW5kLWludmVyc2UtdGludDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi04MDApOy0tY2RzLWFsaWFzLW9iamVjdC1jb250YWluZXItYmFja2dyb3VuZC1pbnZlcnNlLXNoYWRlOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0'@; put 'aW9uLTUwMCl9OnJvb3QgW2Nkcy10aGVtZX49ZGFya117LS1jZHMtYWxpYXMtdXRpbGl0eS1ncmF5OnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTMwMCk7LS1jZHMtYWxpYXMtc3RhdHVzLXdhcm5pbmctZGFyazp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLW9jaHJlLTYwMCk7'@; put 'LS1jZHMtYWxpYXMtc3RhdHVzLXdhcm5pbmctdGludDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLW9jaHJlLTkwMCk7LS1jZHMtYWxpYXMtc3RhdHVzLWRhbmdlci10aW50OnZhcigtLWNkcy1nbG9iYWwtY29sb3ItcmVkLTkwMCk7LS1jZHMtYWxpYXMtb2JqZWN0LWNvbnRhaW5lci1iYWNrZHJv'@; put 'cC1iYWNrZ3JvdW5kOnZhcigtLWNkcy1hbGlhcy1vYmplY3Qtb3BhY2l0eS0zMDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLWhvdmVyOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTgwMCk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0'@; put 'aW9uLWJhY2tncm91bmQtYWN0aXZlOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTYwMCk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtc2VsZWN0ZWQ6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTkwMCk7LS1jZHMtYWxpYXMtb2JqZWN0'@; put 'LWludGVyYWN0aW9uLWJhY2tncm91bmQtc2VsZWN0ZWQtYWN0aXZlOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTYwMCk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtc2VsZWN0ZWQtaG92ZXI6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25z'@; put 'dHJ1Y3Rpb24tNzAwKTstLWNkcy1hbGlhcy1vYmplY3Qtc2tlbGV0b24tbG9hZGluZy1ncmFkaWVudDpsaW5lYXItZ3JhZGllbnQoIDkwZGVnLCB2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQpIDAlLCB2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVj'@; put 'dGlvbi01MDApIDM1JSwgdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tNDAwKSA2NSUsIHZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZCkgMTAwJSApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1pbmZvLXNlbGVjdGVkOnZhcigt'@; put 'LWNkcy1nbG9iYWwtY29sb3ItYmx1ZS01MDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLXNoYWRlOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTkwMCk7LS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLWJhY2tncm91bmQtc2hhZGUt'@; put 'aG92ZXI6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tODAwKTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1zaGFkZS1hY3RpdmU6dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tNjAwKTstLWNkcy1hbGlhcy1vYmplY3QtaW50'@; put 'ZXJhY3Rpb24tYmFja2dyb3VuZC1zaGFkZS1zZWxlY3RlZDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtOTAwKTstLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tYmFja2dyb3VuZC1zaGFkZS1zZWxlY3RlZC1ob3Zlcjp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlv'@; put 'bi04MDApOy0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1iYWNrZ3JvdW5kLXNoYWRlLXNlbGVjdGVkLWFjdGl2ZTp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi02MDApOy0tY2RzLWFsaWFzLW9iamVjdC1jb250YWluZXItYmFja2dyb3VuZC1pbnZlcnNlOnZhcigt'@; put 'LWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTIwMCk7LS1jZHMtYWxpYXMtb2JqZWN0LWNvbnRhaW5lci1iYWNrZ3JvdW5kLWludmVyc2UtdGludDp2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0xMDApOy0tY2RzLWFsaWFzLW9iamVjdC1jb250YWluZXItYmFja2dy'@; put 'b3VuZC1pbnZlcnNlLXNoYWRlOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTMwMCl9QGNoYXJzZXQgIlVURi04IjtAZm9udC1mYWNle2ZvbnQtZmFtaWx5OnRleHQtc2VjdXJpdHktZGlzYztzcmM6dXJsKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9ub3Bw'@; put 'YS90ZXh0LXNlY3VyaXR5L21hc3Rlci9kaXN0L3RleHQtc2VjdXJpdHktZGlzYy53b2ZmKX1hcHAtZWRpdG9yIC5jYXJke21hcmdpbi10b3A6MDtib3JkZXI6MH1hcHAtZWRpdG9yIC5idXR0b25CYXJ7cGFkZGluZzoycHggMTBweDthbGlnbi1pdGVtczpjZW50ZXJ9YXBwLWVkaXRvciAudGVz'@; put 'dFJlZHtjb2xvcjojZmZmO2JhY2tncm91bmQ6I2YwMGMhaW1wb3J0YW50fWFwcC1lZGl0b3IgaG90LXRhYmxlIC5maXJzdENvbHVtbkhlYWRlclN0eWxlIGJ1dHRvbi5jaGFuZ2VUeXBle2Rpc3BsYXk6bm9uZX1hcHAtZWRpdG9yIGhvdC10YWJsZSAuaGFuZHNvbnRhYmxlIHRib2R5IHRoLmh0'@; put 'X19oaWdobGlnaHQucHJpbWFyeUtleUhlYWRlclN0eWxlLGFwcC1lZGl0b3IgaG90LXRhYmxlIC5oYW5kc29udGFibGUgdGhlYWQgdGguaHRfX2hpZ2hsaWdodC5wcmltYXJ5S2V5SGVhZGVyU3R5bGV7YmFja2dyb3VuZC1jb2xvcjojMzA2YjAwYjAhaW1wb3J0YW50fWFwcC1lZGl0b3IgaG90'@; put 'LXRhYmxlIC5wcmltYXJ5S2V5SGVhZGVyU3R5bGV7YmFja2dyb3VuZC1jb2xvcjojMzA2YjAwNmUhaW1wb3J0YW50fWFwcC1lZGl0b3IgaG90LXRhYmxlIHRoLnJlYWRvbmx5Q2VsbCBkaXZ7b3BhY2l0eTouNH1hcHAtZWRpdG9yIGhvdC10YWJsZSB0ZC5yZWFkb25seUNlbGx7b3BhY2l0eTou'@; put 'NX1hcHAtZWRpdG9yIC5zdWJtaXQtcmVhc29ue21pbi1oZWlnaHQ6MTIwcHg7bWF4LWhlaWdodDoxMjBweDtoZWlnaHQ6MTIwcHh9YXBwLWVkaXRvciAuaW5mb0JhcnttYXJnaW4tdG9wOjE0cHg7YmFja2dyb3VuZDojNDk1OTY3O2NvbG9yOiNmZmY7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGlu'@; put 'ZzozcHg7Zm9udC1zaXplOjE2cHg7aGVpZ2h0OjMwcHg7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwfWFwcC1lZGl0b3IgLmluZm9CYXIgc3Bhbnt3aWR0aDo4MCV9YXBwLWVkaXRvciAuaW5mb0Jhcjpob3ZlcntoZWlnaHQ6dW5zZXQ7'@; put 'd2hpdGUtc3BhY2U6bm9ybWFsfWFwcC1lZGl0b3IgLmluZm9CYXI6aG92ZXIgc3Bhbnt3aWR0aDp1bnNldH1hcHAtZWRpdG9yIC5wa0hlYWRlcntiYWNrZ3JvdW5kOiM2ODc2ODI7Y29sb3I6I2ZmZjttYXJnaW46LTFweH1hcHAtZWRpdG9yIC5oZWFkZXJCYXJ7YWxpZ24taXRlbXM6Y2VudGVy'@; put 'O2JhY2tncm91bmQ6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1iZy1jb2xvcil9YXBwLWVkaXRvciAuZXJyb3ItaWNvbnt3aWR0aDozMHB4O2hlaWdodDozMHB4O2NvbG9yOnJlZH1hcHAtZWRpdG9yIC5idG5DdHJse2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9YXBwLWVk'@; put 'aXRvciAuY2FyZC1oZWFkZXJ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdHJhbnNwYXJlbnR9YXBwLWVkaXRvciAuaGlkZGVue3Zpc2liaWxpdHk6aGlkZGVufWFwcC1lZGl0b3IgLm15LWRyb3Atem9uZXtib3JkZXI6c29saWQgMXB4IGxpZ2h0Z3JheTtib3JkZXItcmFkaXVzOjEwcHg7YmFj'@; put 'a2dyb3VuZDojZjVmNWY1O2JveC1zaGFkb3c6aW5zZXQgMCAwIDRweCAycHggI2E3YTVhNTJiO2hlaWdodDo1MHZofWFwcC1lZGl0b3IgLm52LWZpbGUtb3Zlcntib3JkZXI6c29saWQgMnB4IGdyZWVufWFwcC1lZGl0b3IgLmZpbGUtZHJvcC10ZXh0e3RleHQtYWxpZ246Y2VudGVyfUBtZWRp'@; put 'YSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXthcHAtZWRpdG9yIC5wcm9ncmVzU3RhdGlje21hcmdpbi10b3A6OXB4IWltcG9ydGFudH1hcHAtZWRpdG9yIC5wcm9ncmVzcyxhcHAtZWRpdG9yIC5wcm9ncmVzcy1zdGF0aWN7d2lkdGg6Y2FsYygxMDAlIC0gMTRweCl9fWFwcC1lZGl0'@; put 'b3IgLmhvdEVkaXRvcntwb3NpdGlvbjpyZWxhdGl2ZX1hcHAtZWRpdG9yIC5leGNlbC1wYXJzaW5ne2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlfWFwcC1lZGl0b3IgLmV4Y2VsLXBhcnNpbmcgLmRldGFpbHN7'@; put 'bWFyZ2luOjA7cG9zaXRpb246YWJzb2x1dGU7dG9wOi00NXB4fWFwcC1lZGl0b3IgLmVkaXQtcmVjb3JkLXNwaW5uZXJ7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQ6I2ZmZjk7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7'@; put 'Ym90dG9tOjA7d2lkdGg6MTAwJTt6LWluZGV4OjUwMH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODBweCl7YXBwLWVkaXRvciAucHJvZ3Jlc1N0YXRpY3ttYXJnaW4tdG9wOjMycHghaW1wb3J0YW50fWFwcC1lZGl0b3IgLmNhcmQtYmxvY2ssYXBwLWVkaXRvciAuY2FyZC1mb290'@; put 'ZXJ7cGFkZGluZzoxMHB4IDAgMH19YXBwLWVkaXRvciAuY29udGVudC1hcmVhe3BhZGRpbmc6MCAuOHJlbSAuOHJlbSFpbXBvcnRhbnQ7cGFkZGluZy10b3A6MH1hcHAtZWRpdG9yIC5kcm9wLWFyZWF7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50'@; put 'OmNlbnRlcjthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O21hcmdpbjoxcHg7Ym9yZGVyOjJweCBkYXNoZWQgI2ZmZjt6LWluZGV4Oi0xfWFwcC1lZGl0b3IgLmRyb3AtYXJlYSBzcGFue2ZvbnQtc2l6ZToyMHB4O21hcmdpbi10b3A6MjBweDtwYWRkaW5nOjEwcHg7YmFja2dyb3VuZDojZGJkYmRi'@; put 'O2JvcmRlci1yYWRpdXM6NXB4O2NvbG9yOiMwMDB9YXBwLWVkaXRvciAjc3VibWl0QnRuLGFwcC1lZGl0b3IgI2NhbmNlbFN1Ym1pdEJ0bnt3aWR0aDoxNTBweH1hcHAtZWRpdG9yIC52aWV3LXRhYmxle2ZvbnQtc2l6ZTppbmhlcml0IWltcG9ydGFudDtjb2xvcjojMWE1N2JiIWltcG9ydGFu'@; put 'dH1AbWVkaWEgKG1heC13aWR0aDogOTkycHgpe2FwcC1lZGl0b3IgLmljb24tY29sbGFwc2UgLnRleHR7ZGlzcGxheTpub25lfX1teS1hcHAgYXBwLXJlcXVlc3RzLW1vZGFse3otaW5kZXg6MTAwMDB9bXktYXBwIGhlYWRlci5hcHAtaGVhZGVye2JhY2tncm91bmQ6IzMxNDM1MSFpbXBvcnRh'@; put 'bnQ7Y29sb3I6I2ZmZn1teS1hcHAgLmxvZ28gaW1nLndpdGhvdXQtdGV4dHt3aWR0aDozMHB4fW15LWFwcCAubG9nbyBpbWcud2l0aC10ZXh0e3dpZHRoOjIxMHB4fW15LWFwcCAuaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2Vye2Rpc3BsYXk6YmxvY2s7YmFja2dyb3VuZDp0cmFuc3BhcmVudDti'@; put 'b3JkZXI6MDttYXJnaW4tbGVmdDoxMHB4fW15LWFwcCAuZGVtby1leHBpcmVkLW5vdGljZXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cG9zaXRpb246Zml4ZWQ7bGVmdDowO3RvcDowO2hlaWdodDoxMDB2aCFpbXBvcnRhbnQ7d2lkdGg6'@; put 'MTAwdnchaW1wb3J0YW50O3otaW5kZXg6MTA1O2JhY2tncm91bmQ6IzIxMjEyMTgwfW15LWFwcCAuZGVtby1leHBpcmVkLW5vdGljZSAuZXhwaXJlZC1kZXRhaWxze2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzozMHB4O3otaW5kZXg6MTEwO2JhY2tn'@; put 'cm91bmQ6IzMxNDM1MX1teS1hcHAgLmRlbW8tZXhwaXJlZC1ub3RpY2UgLmV4cGlyZWQtZGV0YWlscyAuZXhwaXJlZC1ub3RpY2V7Y29sb3I6I2UwZTBlMDtmb250LXNpemU6MTZweH1teS1hcHAgLmRlbW8tZXhwaXJlZC1ub3RpY2UgLmV4cGlyZWQtZGV0YWlscyAuZXhwaXJlZC1ub3RpY2Ug'@; put 'Lm1haWx0b3tjb2xvcjojOGRjNTNlfW15LWFwcCAubWFpbi1jb250YWluZXIgLnVwZGF0ZS1rZXl7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjojZmZmO3BhZGRpbmc6MCAxMHB4O2JhY2tncm91bmQ6IzAwMDAwMDI2fW15LWFwcCAuYWxlcnQtaWNvbi13cmFwcGVye21h'@; put 'cmdpbi10b3A6MCFpbXBvcnRhbnR9bXktYXBwIC5uYXYtdGV4dHttYXJnaW4tcmlnaHQ6MjBweH1teS1hcHAgLnNpZGViYXItdG9nZ2xle2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTAwJTthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZy1sZWZ0OjEwcHh9bXktYXBwIC5zaWRlYmFyLXRvZ2dsZSBj'@; put 'bHItaWNvbntjdXJzb3I6cG9pbnRlcjt3aWR0aDozMHB4O2hlaWdodDozMHB4fW15LWFwcCBoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5kcm9wZG93bntwb3NpdGlvbjp1bnNldH1teS1hcHAgaGVhZGVyIC5uYXYtbGluazpob3Zlcntjb2xvcjojZmFmYWZhfW15LWFwcCBoZWFkZXIgLm5hdi1s'@; put 'aW5rLmFjdGl2ZXtiYWNrZ3JvdW5kOiMxZDJmM2R9bXktYXBwIC5ub3Rme2JhY2tncm91bmQ6IzE2YTU3YTtjb2xvcjojZmZmY2ZjO2ZvbnQtc2l6ZToxMnB4fW15LWFwcCAudG9nZ2xlLXN3aXRjaCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsOmJlZm9yZXtib3JkZXItY29s'@; put 'b3I6IzYxNzE3ZDtiYWNrZ3JvdW5kLWNvbG9yOiM2MTcxN2Q7dHJhbnNpdGlvbjouMTVzIGVhc2UtaW47dHJhbnNpdGlvbi1wcm9wZXJ0eTpib3JkZXItY29sb3IsYmFja2dyb3VuZC1jb2xvcn1teS1hcHAgLm1haW4tY29udGFpbmVye21pbi1oZWlnaHQ6MTAwdmghaW1wb3J0YW50fW15LWFw'@; put 'cCAuY29udGVudC1jb250YWluZXJ7ei1pbmRleDowIWltcG9ydGFudH1teS1hcHAgLm5hdkJhclJlc3B7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YmFja2dyb3VuZDojNDk1YTY3O2NvbG9yOiNmZmZ9bXktYXBwIC5hcHAtbG9hZGluZyAubG9hZGluZy1sb2dve21heC13'@; put 'aWR0aDo0MDBweDt3aWR0aDoxMDAlfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXtteS1hcHAgLm5hdkJhclJlc3B7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O2JhY2tncm91bmQ6IzQ5NWE2Nztjb2xvcjojZmZmfW15LWFwcCAubWFpbi1jb250'@; put 'YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYgLm5hdi1saW5rLG15LWFwcCAubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYgLm5hdi1saW5rLG15LWFwcCAubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiAubmF2'@; put 'LWxpbmssbXktYXBwIC5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2IC5uYXYtbGlua3twYWRkaW5nOjAgLjVyZW0gMCAxcmVtO3dpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7Ym9yZGVyLXJh'@; put 'ZGl1czouMTI1cmVtIDAgMCAuMTI1cmVtO2NvbG9yOiM5NWM4NGJ9bXktYXBwIC5jYXJkLWJsb2NrLG15LWFwcCAuY2FyZC1mb290ZXJ7cGFkZGluZzoxMHB4IDAgMH1teS1hcHAgLm1haW4tY29udGFpbmVyW19uZ2NvbnRlbnQtYzBdIC5jb250ZW50LWNvbnRhaW5lcltfbmdjb250ZW50LWMw'@; put 'XSAuY29udGVudC1hcmVhW19uZ2NvbnRlbnQtYzBde3BhZGRpbmc6MHJlbX19Lmh0SW52YWxpZHtiYWNrZ3JvdW5kOiMwMDAhaW1wb3J0YW50fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KXtoMntmb250LXNpemU6LjdyZW0haW1wb3J0YW50fWgze2ZvbnQtc2l6ZTouN3Jl'@; put 'bX19Lm5hdi1saW5re3BhZGRpbmc6MHJlbSAxcmVtfWJvZHlbY2RzLXRoZW1lPWxpZ2h0XSAuYnRuLXByaW1hcnkgLmJ0bixib2R5W2Nkcy10aGVtZT1saWdodF0gLmJ0bi5idG4tcHJpbWFyeXtib3JkZXItY29sb3I6IzMxNDM1MTtiYWNrZ3JvdW5kLWNvbG9yOiMzMTQzNTE7Y29sb3I6I2Zm'@; put 'Zn1ib2R5W2Nkcy10aGVtZT1kYXJrXSAuYnRuLXByaW1hcnkgLmJ0bixib2R5W2Nkcy10aGVtZT1kYXJrXSAuYnRuLmJ0bi1wcmltYXJ5e2JvcmRlci1jb2xvcjojNWU3MzgyO2JhY2tncm91bmQtY29sb3I6IzVlNzM4Mjtjb2xvcjojZmZmfWJvZHlbY2RzLXRoZW1lPWRhcmtdIC5idG4tcHJp'@; put 'bWFyeSAuYnRuIGNsci1pY29uLGJvZHlbY2RzLXRoZW1lPWRhcmtdIC5idG4tcHJpbWFyeSAuYnRuIGNkcy1pY29uLGJvZHlbY2RzLXRoZW1lPWRhcmtdIC5idG4uYnRuLXByaW1hcnkgY2xyLWljb24sYm9keVtjZHMtdGhlbWU9ZGFya10gLmJ0bi5idG4tcHJpbWFyeSBjZHMtaWNvbntjb2xv'@; put 'cjojZmZmfS5idG4tcHJpbWFyeSAuYnRuOmRpc2FibGVkLC5idG4uYnRuLXByaW1hcnk6ZGlzYWJsZWR7b3BhY2l0eTouNjV9LmJ0bntjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jazstd2Via2l0LWFwcGVhcmFuY2U6bm9uZSFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czouMTI1'@; put 'cmVtO2JvcmRlcjoxcHggc29saWQ7bWluLXdpZHRoOjNyZW07bWF4LXdpZHRoOjE1cmVtO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO292ZXJmbG93OmhpZGRlbjt0ZXh0LWFsaWduOmNlbnRlcjt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dmVydGljYWwtYWxp'@; put 'Z246bWlkZGxlO2xpbmUtaGVpZ2h0OjEuNXJlbTtsZXR0ZXItc3BhY2luZzouMTJlbTtmb250LXNpemU6LjVyZW07Zm9udC13ZWlnaHQ6NTAwO2hlaWdodDoxLjVyZW07cGFkZGluZzowIC41cmVtfS5idG4uYnRuLW91dGxpbmU6aG92ZXJ7Ym9yZGVyLWNvbG9yOiMzMTQzNTE7YmFja2dyb3Vu'@; put 'ZC1jb2xvcjojNDk1YTY3O2NvbG9yOiNmZmZ9Ym9keVtjZHMtdGhlbWU9ZGFya10gLmJ0bi5idG4taWNvbi5idG4tZGltbWVke2NvbG9yOiM3Mjk1YWV9Ym9keVtjZHMtdGhlbWU9bGlnaHRdIC5idG4uYnRuLWljb24uYnRuLWRpbW1lZHtjb2xvcjojMzE0MzUxfWJvZHlbY2RzLXRoZW1lPWxp'@; put 'Z2h0XSAuYnRuLmJ0bi1vdXRsaW5le2JvcmRlci1jb2xvcjojMzE0MzUxO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Y29sb3I6IzMxNDM1MX0uaHRNb2JpbGVFZGl0b3JDb250YWluZXIgLmlucHV0cyB0ZXh0YXJlYXtmb250LXNpemU6MTNwdDtib3JkZXI6MnB4IHNvbGlkICM0ODU5'@; put 'Njc7Ym9yZGVyLXJhZGl1czo0cHg7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7Ym94LXNoYWRvdzpub25lO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjAgMCAwIDE0cHg7cGFkZGluZzo3cHQ7d2lkdGg6MjkwcHh9Lmh0TW9iaWxlRWRpdG9yQ29udGFpbmVyIC5wb3NpdGlvbkNvbnRyb2xze3dp'@; put 'ZHRoOjMzM3B4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjVwdDt0b3A6NTBweDtib3R0b206MDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uaHRNb2JpbGVFZGl0b3JDb250YWluZXIuYWN0aXZle2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEyMHB4O3dpZHRoOjM1MHB4fWJv'@; put 'ZHlbY2RzLXRoZW1lPWxpZ2h0XSAud3RCb3JkZXJ7YmFja2dyb3VuZC1jb2xvcjojNDk1YTY3IWltcG9ydGFudH1ib2R5W2Nkcy10aGVtZT1saWdodF0gLmh0X21hc3RlciB0cjpudGgtb2YtdHlwZShvZGQpPnRke2ZpbHRlcjpicmlnaHRuZXNzKC45Nyl9Ym9keVtjZHMtdGhlbWU9bGlnaHRd'@; put 'IC5odF9tYXN0ZXIgLmh0RGltbWVke2NvbG9yOiMzNzM3MzchaW1wb3J0YW50O2ZpbHRlcjpicmlnaHRuZXNzKDEpIWltcG9ydGFudH1ib2R5W2Nkcy10aGVtZT1kYXJrXSAuaHRfbWFzdGVyIHRyOm50aC1vZi10eXBlKG9kZCk+dGR7ZmlsdGVyOmJyaWdodG5lc3MoMS4yKX1ib2R5W2Nkcy10'@; put 'aGVtZT1kYXJrXSAuaHRfbWFzdGVyOm5vdCguZW1wdHlDb2x1bW5zKX4uaGFuZHNvbnRhYmxlIHRib2R5IHRyIHRoLGJvZHlbY2RzLXRoZW1lPWRhcmtdIC5odF9tYXN0ZXI6bm90KC5lbXB0eUNvbHVtbnMpfi5oYW5kc29udGFibGU6bm90KC5odF9jbG9uZV90b3ApIHRoZWFkIHRyIHRoOmZp'@; put 'cnN0LWNoaWxke2JhY2tncm91bmQtY29sb3I6IzJkNDA0ODtib3JkZXItY29sb3I6IzY5N2M4NX1ib2R5W2Nkcy10aGVtZT1kYXJrXSAuaGFuZHNvbnRhYmxlIHRkLGJvZHlbY2RzLXRoZW1lPWRhcmtdIC5oYW5kc29udGFibGUgdHI6Zmlyc3QtY2hpbGQgdGgsYm9keVtjZHMtdGhlbWU9ZGFy'@; put 'a10gLmhhbmRzb250YWJsZSB0cjpmaXJzdC1jaGlsZCB0ZCxib2R5W2Nkcy10aGVtZT1kYXJrXSAuaGFuZHNvbnRhYmxlIC5oYW5kc29udGFibGUuaHRfY2xvbmVfdG9wIC53dEhpZGVye2JvcmRlci1jb2xvcjojNjk3Yzg1fWJvZHlbY2RzLXRoZW1lPWRhcmtdIC5oYW5kc29udGFibGUgLmNo'@; put 'YW5nZVR5cGV7YmFja2dyb3VuZC1jb2xvcjojM2M1NjYyO2JvcmRlci1jb2xvcjojNjk3Yzg1fWJvZHlbY2RzLXRoZW1lPWRhcmtdIC5oYW5kc29udGFibGVJbnB1dHtiYWNrZ3JvdW5kLWNvbG9yOiM3MDhiOTh9LmhhbmRzb250YWJsZSAuaGFuZHNvbnRhYmxlLmh0X2Nsb25lX3RvcCAud3RI'@; put 'aWRlcntwYWRkaW5nOjAhaW1wb3J0YW50O21hcmdpbjowO2JvcmRlci1ib3R0b206M3B4IHNvbGlkICNkNmQzZDN9Ym9keVtjZHMtdGhlbWU9bGlnaHRdIC5jb250ZW50LWNvbnRhaW5lcntiYWNrZ3JvdW5kOiNmNWY2ZmZ9LmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLC5kYXRhZ3JpZC1o'@; put 'aXN0b3J5IC5kYXRhZ3JpZHtib3JkZXItY29sbGFwc2U6c2VwYXJhdGU7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOi4xMjVyZW07bWFyZ2luOjA7bWFyZ2luLXRvcDoxcmVtO21heC13aWR0aDoxMDAlO3dpZHRoOjEwMCU7cGFkZGluZzoxNXB4IDE1cHggNTBw'@; put 'eH0uZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtZm9vdCwuZGF0YWdyaWQtaGlzdG9yeSAuZGF0YWdyaWQtZm9vdHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7aGVpZ2h0OjEuNXJlbTtwYWRkaW5nOjAgLjVyZW07bGluZS1oZWlnaHQ6Y2FsYygxLjVyZW0gLSAzcHgpO2ZvbnQtc2l6ZTou'@; put 'NDU4MzNyZW07YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci10b3A6MXB4IHNvbGlkICNjY2M7Ym9yZGVyLXJhZGl1czowfS5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1mb290ZXIsLmRhdGFncmlkLWhpc3RvcnkgLmRhdGFncmlkLWZvb3Rlcntwb3NpdGlvbjphYnNvbHV0ZTtyaWdo'@; put 'dDozMHB4O3RvcDoxcHh9LmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkIC5kYXRhZ3JpZC1oZWFkLC5kYXRhZ3JpZC1oaXN0b3J5IC5kYXRhZ3JpZCAuZGF0YWdyaWQtaGVhZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjY30uZHJvcGRvd24tbWVu'@; put 'dXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTAwJTtsZWZ0OjA7bWFyZ2luLXRvcDouMDgzMzMzcmVtO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cGFkZGluZzouNXJlbSAwO2JvcmRlcjoxcHggc29saWQgI2NjYztib3gtc2hhZG93OjAgMXB4IC4xMjVyZW0gIzczNzM3MzQw'@; put 'O21pbi13aWR0aDo1cmVtO21heC13aWR0aDoxNXJlbTtib3JkZXItcmFkaXVzOi4xMjVyZW07dmlzaWJpbGl0eTpoaWRkZW47ei1pbmRleDoxMDAwfS50YWJsZXtib3JkZXItY29sbGFwc2U6c2VwYXJhdGU7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjA7bWFy'@; put 'Z2luOjA7bWFyZ2luLXRvcDoxcmVtO21heC13aWR0aDoxMDAlO3dpZHRoOjEwMCV9LnRhYmxlIHRoe2ZvbnQtc2l6ZTouNDU4MzNyZW07Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi4wM2VtO3ZlcnRpY2FsLWFsaWduOmJvdHRvbTtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjY2Nj'@; put 'O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0ubWFpbi1jb250YWluZXIgLmNvbnRlbnQtY29udGFpbmVye21pbi1oZWlnaHQ6MHB4O3Bvc2l0aW9uOnJlbGF0aXZlfWhvbWUtY29tcG9uZW50IGNsci10cmVlLW5vZGUgYnV0dG9ue3doaXRlLXNwYWNlOm5vd3JhcH1ob21lLWNvbXBvbmVudCAu'@; put 'Y2FyZC1ibG9ja3toZWlnaHQ6MTAwJTtwYWRkaW5nOjB9aG9tZS1jb21wb25lbnQgLm5vLXRhYmxlLXNlbGVjdGVke3Bvc2l0aW9uOnJlbGF0aXZlO2hlaWdodDoxMDAlfWhvbWUtY29tcG9uZW50IC5zcGlubmVyLXdyYXBwZXItZnVsbHBhZ2V7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVu'@; put 'dDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9Y2xyLWljb24uaXMtYmx1ZSxjbHItaWNvbi5pcy1pbmZve2ZpbGw6IzZhOTIzNX1hcHAtc2lkZWJhciAuY2xyLXZlcnRpY2FsLW5hdiAubmF2LWxpbmsuYWN0aXZle2JhY2tncm91bmQtY29sb3I6dHJh'@; put 'bnNwYXJlbnR9YXBwLXNpZGViYXIgY2xyLXZlcnRpY2FsLW5hdnt3aWR0aDoyNzJweDttaW4td2lkdGg6MjcycHg7aGVpZ2h0OjEwMCU7bWF4LXdpZHRoOjM3NXB4O3Bvc2l0aW9uOnJlbGF0aXZlO2JveC1zaGFkb3c6MCAwIDVweCAjMDAwMDAwMWZ9YXBwLXNpZGViYXIgY2xyLXZlcnRpY2Fs'@; put 'LW5hdiAuc3VuLWRyb3Bkb3due21pbi1oZWlnaHQ6MzZweH1hcHAtc2lkZWJhciBjbHItdmVydGljYWwtbmF2IC5uYXYtdHJlZXtoZWlnaHQ6MTAwJTtvdmVyZmxvdy15OmF1dG99YXBwLXNpZGViYXIgY2xyLXZlcnRpY2FsLW5hdi5jbG9zZWR7bWFyZ2luLWxlZnQ6LTI3MnB4fWFwcC1zaWRl'@; put 'YmFyIGNsci12ZXJ0aWNhbC1uYXYgLnJlc2l6ZS1oYW5kbGV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6LTNweDtib3JkZXItcmlnaHQ6NHB4IHNvbGlkICM4MGI0NDE7Y3Vyc29yOmNvbC1yZXNpemU7b3BhY2l0eTowO3RyYW5zaXRpb246YWxsIC4xcyBlYXNlLWlu'@; put 'LW91dH1hcHAtc2lkZWJhciBjbHItdmVydGljYWwtbmF2IC5yZXNpemUtaGFuZGxlOmhvdmVye29wYWNpdHk6LjV9YXBwLXNpZGViYXIgY2xyLXZlcnRpY2FsLW5hdiAucmVzaXplLWhhbmRsZS5yZXNpemluZ3tvcGFjaXR5OjF9YXBwLXNpZGViYXIgY2xyLXZlcnRpY2FsLW5hdi5yZXNpemlu'@; put 'Z3t0cmFuc2l0aW9uOm5vbmUhaW1wb3J0YW50fWFwcC1zaWRlYmFyIC5uYXYtZGl2aWRlcntib3JkZXI6MDtib3JkZXItdG9wOjFweCBzb2xpZCAjZDNkM2QzO21hcmdpbi1ib3R0b206MH1hcHAtc2lkZWJhciAucGFnZS10aXRsZXttYXJnaW46MDtmb250LXNpemU6MThweDt0ZXh0LWFsaWdu'@; put 'OmNlbnRlcn1hcHAtc2lkZWJhciAuemVyby1tYXJnaW57bWFyZ2luOjAhaW1wb3J0YW50fWFwcC1zaWRlYmFyIC51c2VyLW5hdi1idG57cGFkZGluZzowIDJweH1hcHAtc2lkZWJhciAjc2lkZWJhck5hdnt6LWluZGV4OjIwMH1AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpe2FwcC1zaWRlYmFy'@; put 'ICNzaWRlYmFyTmF2e3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO3RvcDowfX1hcHAteGxtYXAgLmNhcmR7bWFyZ2luLXRvcDowO2ZsZXg6MTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufWFwcC14bG1hcCBjbHItdHJlZS1ub2RlIGJ1dHRvbnt3aGl0ZS1zcGFjZTpub3dy'@; put 'YXB9YXBwLXhsbWFwIC5uby10YWJsZS1zZWxlY3RlZHtwb3NpdGlvbjpyZWxhdGl2ZX1hcHAteGxtYXAgLmhlYWRlci1yb3cgLnRpdGxlLWNvbHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfWFwcC14bG1hcCAuaGVhZGVyLXJvdyAub3B0aW9ucy1jb2x7ZGlzcGxheTpmbGV4O2p1'@; put 'c3RpZnktY29udGVudDpmbGV4LWVuZH1hcHAteGxtYXAgLnN3e21hcmdpbjoxcmVtIDByZW0gLjVyZW0gMXJlbX1hcHAteGxtYXAgLnZpZXdlclRpdGxle3RleHQtYWxpZ246Y2VudGVyfWFwcC14bG1hcCAuY2FyZEZsZXh7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXJ9YXBw'@; put 'LXhsbWFwIC5jb250ZW50LWFyZWF7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn1hcHAteGxtYXAgaG90LXRhYmxlIC5wcmltYXJ5S2V5SGVhZGVyU3R5bGV7YmFja2dyb3VuZDojMzA2YjAwNmV9YXBwLXhsbWFwIC5kcm9wLWFyZWF7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDtk'@; put 'aXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW46MXB4O2JvcmRlcjoycHggZGFzaGVkICNmZmY7ei1pbmRleDotMX1hcHAteGxtYXAgLmRyb3AtYXJlYSBzcGFue2ZvbnQtc2l6ZToyMHB4O21hcmdpbi10b3A6MjBweDtjb2xvcjojZmZmfWFwcC1tdWx0aS1kYXRhc2V0'@; put 'IC5uby10YWJsZS1zZWxlY3RlZHtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQ6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1iZy1jb2xvcik7ei1pbmRl'@; put 'eDoxMDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RvcDowfWFwcC1tdWx0aS1kYXRhc2V0IC5oZWFkZXItcm93e3BhZGRpbmc6MTVweCAwO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNkM2QzZDN9YXBwLW11bHRpLWRhdGFzZXQgLmRhdGFzZXQtaW5wdXQtd3JhcHBlcnttYXgtd2lkdGg6NTAw'@; put 'cHg7d2lkdGg6MTAwJX1hcHAtbXVsdGktZGF0YXNldCAuc3VibWl0LXJlYXNvbnttaW4taGVpZ2h0OjcwcHg7bWF4LWhlaWdodDo3MHB4O2hlaWdodDo3MHB4fWFwcC1tdWx0aS1kYXRhc2V0IC5sb2ctd3JhcHBlcnttYXJnaW46MCAxMHB4O2hlaWdodDphdXRvfWFwcC1tdWx0aS1kYXRhc2V0'@; put 'IC5kYXRhc2V0LXNlbGVjdGlvbi1hY3Rpb25ze2JvcmRlci10b3A6MXB4IHNvbGlkICNkM2QzZDN9YXBwLW11bHRpLWRhdGFzZXQgLmxpY2VuY2UtbGltaXQtbm90aWNle2NvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtd2FybmluZy1kYXJrKX1hcHAtbXVsdGktZGF0YXNldCAuc3VibWlz'@; put 'c2lvbi1yZXN1bHRze2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNkM2QzZDN9dGQubm90LW1hdGNoZWR7YmFja2dyb3VuZC1jb2xvcjojZmYwMDAwNTR9YXBwLXN1Ym1pdHRlZCAubm9Cb3JkZXJ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdHJhbnNwYXJlbnQhaW1wb3J0YW50fWFwcC1zdWJt'@; put 'aXR0ZWQgLnRvb2x0aXAudG9vbHRpcC1ib3R0b20tbGVmdD4udG9vbHRpcC1jb250ZW50LGFwcC1zdWJtaXR0ZWQgLnRvb2x0aXAgLnRvb2x0aXAtY29udGVudC50b29sdGlwLWJvdHRvbS1sZWZ0e2JhY2tncm91bmQ6IzMxNDM1MSFpbXBvcnRhbnR9YXBwLXN1Ym1pdHRlZCAudG9vbHRpcC50'@; put 'b29sdGlwLWJvdHRvbS1sZWZ0Pi50b29sdGlwLWNvbnRlbnQ6YmVmb3JlLGFwcC1zdWJtaXR0ZWQgLnRvb2x0aXAgLnRvb2x0aXAtY29udGVudC50b29sdGlwLWJvdHRvbS1sZWZ0OmJlZm9yZXtib3JkZXItcmlnaHQ6LjI1cmVtIHNvbGlkICMzMTQzNTE7Ym9yZGVyLWJvdHRvbTouMjA4MzNy'@; put 'ZW0gc29saWQgIzMxNDM1MX1hcHAtc3VibWl0dGVkIC5uby1zdWJtaXR0ZWQtdGFibGVze2hlaWdodDpjYWxjKDEwMHZoIC0gMjAwcHgpfWFwcC1hcHByb3ZlIC5jb2x1bW4tY2VudGVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjth'@; put 'bGlnbi1pdGVtczpjZW50ZXJ9YXBwLWFwcHJvdmUgLmRhdGFncmlkIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWNvbHVtbi10aXRsZXtvdXRsaW5lOm5vbmUhaW1wb3J0YW50fWFwcC1hcHByb3ZlIC5saW5rc3tmb250LXdlaWdodDo3MDA7Y3Vyc29yOnBvaW50ZXJ9YXBwLWFwcHJvdmUg'@; put 'LnRvb2x0aXAudG9vbHRpcC1ib3R0b20tbGVmdD4udG9vbHRpcC1jb250ZW50LGFwcC1hcHByb3ZlIC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1ib3R0b20tbGVmdHtiYWNrZ3JvdW5kOiMzMTQzNTEhaW1wb3J0YW50fWFwcC1hcHByb3ZlIC50b29sdGlwLnRvb2x0aXAtYm90'@; put 'dG9tLWxlZnQ+LnRvb2x0aXAtY29udGVudDpiZWZvcmUsYXBwLWFwcHJvdmUgLnRvb2x0aXAgLnRvb2x0aXAtY29udGVudC50b29sdGlwLWJvdHRvbS1sZWZ0OmJlZm9yZXtib3JkZXItcmlnaHQ6LjI1cmVtIHNvbGlkICMzMTQzNTE7Ym9yZGVyLWJvdHRvbTouMjA4MzNyZW0gc29saWQgIzMx'@; put 'NDM1MX1hcHAtYXBwcm92ZSAubm9Cb3JkZXJ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdHJhbnNwYXJlbnQhaW1wb3J0YW50fWFwcC1hcHByb3ZlIC5hcHByb3ZhbHMtbGlzdC13cmFwcGVye2hlaWdodDo3MHZoO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXgtZGly'@; put 'ZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXJ9YXBwLWFwcHJvdmUgLm5vYXBwcm92YWxzLWluZm8td3JhcHBlcntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2hlaWdodDpjYWxjKDEwMHZo'@; put 'IC0gMjAwcHgpfWFwcC1oaXN0b3J5IC5yZWplY3RlZHtjb2xvcjojOTIyMDFhO2ZvbnQtd2VpZ2h0OjcwMH1hcHAtaGlzdG9yeSAuYWNjZXB0ZWR7Y29sb3I6IzEwNWMyNjtmb250LXdlaWdodDo3MDB9YXBwLWhpc3RvcnkgLmhzQ2VsbHtkaXNwbGF5OmZsZXghaW1wb3J0YW50O2ZsZXgtZGly'@; put 'ZWN0aW9uOmNvbHVtbiFpbXBvcnRhbnQ7anVzdGlmeS1jb250ZW50OmNlbnRlciFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudDtwYWRkaW5nOjdweH1hcHAtaGlzdG9yeSAuYnRDZWxse2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnQ7anVzdGlmeS1jb250ZW50OmNlbnRlciFp'@; put 'bXBvcnRhbnR9YXBwLWhpc3RvcnkgLnZlckNlbnRlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3dvcmQtYnJlYWs6YnJlYWstYWxsfWFwcC1oaXN0b3J5IC5sb2FkLW1vcmUgaW5wdXR7d2lkdGg6OTBweH1hcHAtaGlzdG9yeSAjbm9EYXRhQ29udGFpbmVye2hlaWdodDpjYWxj'@; put 'KDEwMHZoIC0gMjAwcHgpfWFwcC1oaXN0b3J5IC50YWJsZS1saW5re3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7Zm9udC13ZWlnaHQ6NzAwfWFwcC12aWV3ZXIgLmNhcmR7bWFyZ2luLXRvcDowO2ZsZXg6MTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufWFwcC12aWV3ZXIg'@; put 'Y2xyLXRyZWUtbm9kZSBidXR0b257d2hpdGUtc3BhY2U6bm93cmFwfWFwcC12aWV3ZXIgLnRvZ2dsZS1zd2l0Y2ggaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbDpiZWZvcmV7Ym9yZGVyLWNvbG9yOiMzMTQzNTE7YmFja2dyb3VuZC1jb2xvcjojMzE0MzUxIWltcG9ydGFudDt0'@; put 'cmFuc2l0aW9uOi4xNXMgZWFzZS1pbjt0cmFuc2l0aW9uLXByb3BlcnR5OmJvcmRlci1jb2xvcixiYWNrZ3JvdW5kLWNvbG9yfWFwcC12aWV3ZXIgLmhlYWRlci1yb3cgLnRpdGxlLWNvbHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfWFwcC12aWV3ZXIgLmhlYWRlci1yb3cgLm9w'@; put 'dGlvbnMtY29se2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7YWxpZ24taXRlbXM6Y2VudGVyfWFwcC12aWV3ZXIgLnN3e21hcmdpbjoxcmVtIDByZW0gLjVyZW0gMXJlbX1hcHAtdmlld2VyIC5pbmZvQmFye21hcmdpbi10b3A6MTBweDtiYWNrZ3JvdW5kOiM0OTU5Njc7'@; put 'Y29sb3I6I2ZmZjt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjNweDtmb250LXNpemU6MTZweH1hcHAtdmlld2VyIC5maWx0ZXJTaWRle21hcmdpbi10b3A6MjZweDttYXJnaW4tYm90dG9tOjE5cHh9YXBwLXZpZXdlciAub3B0aW9ucy1kcm9wZG93biBjbHItaWNvbnttYXJnaW4tcmlnaHQ6'@; put 'NXB4fWFwcC12aWV3ZXIgLmRyb3Bkb3duLW1lbnV7d2lkdGg6MTgwcHg7bWFyZ2luLXRvcDotMThweDtwYWRkaW5nOjB9YXBwLXZpZXdlciAuZHJvcGRvd24tbWVudSAuYnRue3dpZHRoOjEwMCU7dGV4dC10cmFuc2Zvcm06bm9uZX1hcHAtdmlld2VyIC5jYXJkRmxleHtkaXNwbGF5OmZsZXg7'@; put 'anVzdGlmeS1jb250ZW50OmNlbnRlcn1hcHAtdmlld2VyIC5ub0RhdGF7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4OjF9YXBwLXZpZXdlciAuZmlsdGVyQnRue2Rpc3BsYXk6ZmxleDtqdXN0'@; put 'aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9YXBwLXZpZXdlciAuZWRpdEJ0bntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9YXBwLXZpZXdlciAuYnRuVmlld3ttYXJnaW46MCFpbXBvcnRhbnR9YXBwLXZpZXdlciAuY29udGVudC1hcmVhe3BhZGRpbmc6LjVyZW0haW1wb3J0'@; put 'YW50O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59YXBwLXZpZXdlciAuZG93bmxvYWQtc2VsZWN0IC5jbHItc2VsZWN0LXdyYXBwZXJ7bWF4LWhlaWdodDp1bnNldCFpbXBvcnRhbnR9YXBwLXZpZXdlciAucmVmcmVzaC10YWJsZXtjdXJzb3I6cG9pbnRlcjttYXJnaW4tbGVm'@; put 'dDo1cHh9YXBwLXZpZXdlciAubGliaW5mb3twYWRkaW5nOjEwcHggMjBweDtvdmVyZmxvdzphdXRvfWFwcC12aWV3ZXIgaG90LXRhYmxle2hlaWdodDpjYWxjKDEwMHZoIC0gMjAwcHgpfWFwcC12aWV3ZXIgaG90LXRhYmxlIC5oYW5kc29udGFibGUgdGJvZHkgdGguaHRfX2hpZ2hsaWdodC5w'@; put 'cmltYXJ5S2V5SGVhZGVyU3R5bGUsYXBwLXZpZXdlciBob3QtdGFibGUgLmhhbmRzb250YWJsZSB0aGVhZCB0aC5odF9faGlnaGxpZ2h0LnByaW1hcnlLZXlIZWFkZXJTdHlsZXtiYWNrZ3JvdW5kLWNvbG9yOiMzMDZiMDBiMCFpbXBvcnRhbnR9YXBwLXZpZXdlciBob3QtdGFibGUgLnByaW1h'@; put 'cnlLZXlIZWFkZXJTdHlsZXtiYWNrZ3JvdW5kLWNvbG9yOiMzMDZiMDA2ZSFpbXBvcnRhbnR9YXBwLXZpZXdlciAubm8tdGFibGUtc2VsZWN0ZWQtaW5mb3tiYWNrZ3JvdW5kOm5vbmU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW59YXBwLXZp'@; put 'ZXdlciAud2ViLXF1ZXJ5e21heC1oZWlnaHQ6MzV2aH1hcHAtdmlld2VyIC53ZWItcXVlcnkgLndlYi1xdWVyeS10ZXh0e21pbi1oZWlnaHQ6MTAwcHg7bWF4LWhlaWdodDoxMDBweDt3aWR0aDoxMDAlIWltcG9ydGFudH1hcHAtdmlld2VyIC53ZWItcXVlcnkgLndlYi1xdWVyeS13cmFwcGVy'@; put 'IC5jbHItY29udHJvbC1jb250YWluZXJ7d2lkdGg6MTAwJX1hcHAtdmlld2VyIC53ZWItcXVlcnkgLndlYi1xdWVyeS13cmFwcGVyIGNsci10ZXh0YXJlYS1jb250YWluZXJ7bWFyZ2luOjAhaW1wb3J0YW50fWFwcC12aWV3ZXIgLndlYi1xdWVyeSAud2ViLXF1ZXJ5LXdyYXBwZXIgLmNsci10'@; put 'ZXh0YXJlYS13cmFwcGVye21hcmdpbjowIWltcG9ydGFudH1hcHAtdmlld2VyIC50YWJsZS1zZWFyY2gtd3JhcHBlcnttYXJnaW4tbGVmdDowfWFwcC12aWV3ZXIgLnRhYmxlLXNlYXJjaC13cmFwcGVyIGZvcm17cGFkZGluZy1sZWZ0OjB9YXBwLXZpZXdlciAudGFibGUtc2VhcmNoLXdyYXBw'@; put 'ZXIgY2xyLWljb257bWFyZ2luLXRvcDo0cHh9YXBwLXZpZXdlciAudGFibGUtc2VhcmNoLXdyYXBwZXIgY2xyLWlucHV0LWNvbnRhaW5lcnttYXJnaW4tdG9wOjB9YXBwLXZpZXdlciAudGFibGUtc2VhcmNoLXdyYXBwZXIgLmNsci1jb250cm9sLWNvbnRhaW5lcnttYXJnaW4tbGVmdDowfUBt'@; put 'ZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXthcHAtdmlld2VyIC5maWx0ZXJCdG57ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXJ9YXBwLXZpZXdlciAuZWRpdEJ0bntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcn19QG1lZGlhIChtaW4td2lk'@; put 'dGg6IDU3NnB4KXthcHAtdmlld2VyIC5yb3d7bWFyZ2luLXJpZ2h0OjByZW07bWFyZ2luLWxlZnQ6MHJlbX19YXBwLWdyb3VwIC5zaWRlYmFyLWhlaWdodHtoZWlnaHQ6MTAwJX1hcHAtZ3JvdXAgLmdyb3VwLWluZm8tdGV4dHtkaXNwbGF5OmlubGluZTtmb250LXNpemU6MjBweH1hcHAtZ3Jv'@; put 'dXAgLmdyb3VwLWluZm97Ym9yZGVyOjFweCBzb2xpZDtib3JkZXItcmFkaXVzOjNweH1hcHAtZ3JvdXAgLmdyb3VwLWluZm8gdGR7dGV4dC1hbGlnbjpjZW50ZXJ9YXBwLWdyb3VwIC5ncm91cC1kYXRhe2JvcmRlcjoxcHggc29saWQ7Ym9yZGVyLXJhZGl1czozcHh9YXBwLWdyb3VwIC5ncm91'@; put 'cC1kYXRhe21pbi1oZWlnaHQ6YXV0b31hcHAtZ3JvdXAgLmdyb3VwLWRhdGEgaDMsYXBwLWdyb3VwIC5ncm91cC1kYXRhIGg1e3RleHQtYWxpZ246Y2VudGVyfWFwcC1ncm91cCAuZ3JvdXAtZGF0YSAubWVtYmVyLXRhYmxle3dpZHRoOjEwMCV9YXBwLWdyb3VwIC5ncm91cC1kYXRhIC5tZW1i'@; put 'ZXItdGFibGUgdGJvZHkgdHI6aG92ZXJ7Y3Vyc29yOnBvaW50ZXJ9YXBwLWdyb3VwIC50YWJsZS1jb250YWluZXJ7b3ZlcmZsb3c6YXV0b31AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7YXBwLWdyb3VwIC5ncm91cC1kYXRhe21pbi1oZWlnaHQ6dW5zZXQhaW1wb3J0YW50'@; put 'fX1ib2R5W2Nkcy10aGVtZT1kYXJrXSBhcHAtZ3JvdXAgLmdyb3VwLWluZm97YmFja2dyb3VuZC1jb2xvcjojMzE0MzUxO2JvcmRlci1jb2xvcjojMzE0MzUxfWJvZHlbY2RzLXRoZW1lPWRhcmtdIGFwcC1ncm91cCAuZ3JvdXAtZGF0YXtiYWNrZ3JvdW5kLWNvbG9yOiMzMTQzNTE7Ym9yZGVy'@; put 'LWNvbG9yOiMzMTQzNTF9Ym9keVtjZHMtdGhlbWU9ZGFya10gYXBwLWdyb3VwIC5tZW1iZXItdGFibGUgdGJvZHkgdHI6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojMjk0MDRifWJvZHlbY2RzLXRoZW1lPWxpZ2h0XSBhcHAtZ3JvdXAgLmdyb3VwLWluZm97YmFja2dyb3VuZC1jb2xvcjojZjlm'@; put 'OWY5O2JvcmRlci1jb2xvcjojYTdhN2E3O2JveC1zaGFkb3c6MCAycHggNXB4ICNkYWQ3ZDd9Ym9keVtjZHMtdGhlbWU9bGlnaHRdIGFwcC1ncm91cCAuZ3JvdXAtZGF0YXtiYWNrZ3JvdW5kLWNvbG9yOiNmOWY5Zjk7Ym9yZGVyLWNvbG9yOiNhN2E3YTc7Ym94LXNoYWRvdzowIDJweCA1cHgg'@; put 'I2RhZDdkN31ib2R5W2Nkcy10aGVtZT1saWdodF0gYXBwLWdyb3VwIC5tZW1iZXItdGFibGUgdGJvZHkgdHI6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZTZlNmU2fWFwcC11c2VyIC5zaWRlYmFyLWhlaWdodHtoZWlnaHQ6MTAwJX1hcHAtdXNlciAudXNlci1pbmZvLXRleHR7ZGlzcGxheTpp'@; put 'bmxpbmU7Zm9udC1zaXplOjIwcHh9YXBwLXVzZXIgLnVzZXItaW5mb3tib3JkZXI6MXB4IHNvbGlkO2JvcmRlci1yYWRpdXM6M3B4fWFwcC11c2VyIC51c2VyLWluZm8gdGR7dGV4dC1hbGlnbjpjZW50ZXJ9YXBwLXVzZXIgLnVzZXItZGF0YXtib3JkZXI6MXB4IHNvbGlkO2JvcmRlci1yYWRp'@; put 'dXM6M3B4fWFwcC11c2VyIC51c2VyLWRhdGF7bWluLWhlaWdodDphdXRvfWFwcC11c2VyIC51c2VyLWRhdGEgaDMsYXBwLXVzZXIgLnVzZXItZGF0YSBoNXt0ZXh0LWFsaWduOmNlbnRlcn1hcHAtdXNlciAudXNlci10YWJsZXt3aWR0aDoxMDAlfWFwcC11c2VyIC51c2VyLXRhYmxlIHRoZWFk'@; put 'e2JhY2tncm91bmQtY29sb3I6I2RhZGFkYX1hcHAtdXNlciAudXNlci10YWJsZSB0Ym9keSB0cjpob3ZlcntjdXJzb3I6cG9pbnRlcn1hcHAtdXNlciAud2lkdGgtNTB7d2lkdGg6NTAlfWFwcC11c2VyIC53aWR0aC0zM3t3aWR0aDozMyV9YXBwLXVzZXIgLnRhYmxlLWNvbnRhaW5lcntvdmVy'@; put 'Zmxvdy15OnNjcm9sbDttYXgtaGVpZ2h0OjUwMHB4fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXthcHAtdXNlciAudXNlci1kYXRhe21pbi1oZWlnaHQ6dW5zZXQhaW1wb3J0YW50fX1ib2R5W2Nkcy10aGVtZT1kYXJrXSBhcHAtdXNlciAudXNlci1pbmZve2JhY2tncm91'@; put 'bmQtY29sb3I6IzMxNDM1MTtib3JkZXItY29sb3I6IzMxNDM1MX1ib2R5W2Nkcy10aGVtZT1kYXJrXSBhcHAtdXNlciAudXNlci1kYXRhe2JhY2tncm91bmQtY29sb3I6IzMxNDM1MTtib3JkZXItY29sb3I6IzMxNDM1MX1ib2R5W2Nkcy10aGVtZT1kYXJrXSBhcHAtdXNlciAudXNlci10YWJs'@; put 'ZSB0Ym9keSB0cjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMyOTQwNGJ9Ym9keVtjZHMtdGhlbWU9bGlnaHRdIGFwcC11c2VyIC51c2VyLWluZm97YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5O2JvcmRlci1jb2xvcjojYTdhN2E3O2JveC1zaGFkb3c6MCAycHggNXB4ICNkYWQ3ZDd9Ym9keVtj'@; put 'ZHMtdGhlbWU9bGlnaHRdIGFwcC11c2VyIC51c2VyLWRhdGF7YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5O2JvcmRlci1jb2xvcjojYTdhN2E3O2JveC1zaGFkb3c6MCAycHggNXB4ICNkYWQ3ZDd9Ym9keVtjZHMtdGhlbWU9bGlnaHRdIGFwcC11c2VyIC51c2VyLXRhYmxlIHRib2R5IHRyOmhv'@; put 'dmVye2JhY2tncm91bmQtY29sb3I6I2U2ZTZlNn1hcHAtcmVxdWVzdHMtbW9kYWx7LS1saW5lLWhlaWdodDogMTZweDstLWxpbmUtdG9wOiAwcHh9YXBwLXJlcXVlc3RzLW1vZGFsIC5sb2ctd3JhcHBlci5zYXNsb2d7cG9zaXRpb246cmVsYXRpdmU7d2hpdGUtc3BhY2U6cHJlO2ZvbnQtZmFt'@; put 'aWx5Om1vbm9zcGFjZX1hcHAtcmVxdWVzdHMtbW9kYWwgLmxvZy13cmFwcGVyLnNhc2xvZyAuaGlnaGxpZ2h0ZWQtbGluZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZjAzfWFwcC1yZXF1ZXN0cy1tb2RhbCAubGluZS1oaWdobGlnaHQtb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7d2lk'@; put 'dGg6MTAwJTtwb2ludGVyLWV2ZW50czpub25lO2FuaW1hdGlvbjpmYWRlT3V0IDNzIGZvcndhcmRzO3otaW5kZXg6MTB9YXBwLXJlcXVlc3RzLW1vZGFsIC50ZW1wLWhlaWdodC1zZXR0ZXJ7aGVpZ2h0OnZhcigtLWxpbmUtaGVpZ2h0KX1hcHAtcmVxdWVzdHMtbW9kYWwgLmxpbmUtcG9zaXRp'@; put 'b24tc2V0dGVye3RvcDp2YXIoLS1saW5lLXRvcCl9YXBwLXJlcXVlc3RzLW1vZGFsIC50ZW1wLWxpbmUtaGVpZ2h0LWNhbGN7cG9zaXRpb246YWJzb2x1dGU7dmlzaWJpbGl0eTpoaWRkZW47aGVpZ2h0OmF1dG99YXBwLXJlcXVlc3RzLW1vZGFsIC5lcnJvci1oaWdobGlnaHR7YmFja2dyb3Vu'@; put 'ZC1jb2xvcjojZjAwM31hcHAtcmVxdWVzdHMtbW9kYWwgLndhcm5pbmctaGlnaGxpZ2h0e2JhY2tncm91bmQtY29sb3I6I2ZmMDN9QGtleWZyYW1lcyBmYWRlT3V0ezAle29wYWNpdHk6MX03MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MH19YXBwLXJlcXVlc3RzLW1vZGFsIC5oaWdobGlnaHRl'@; put 'ZC1saW5le2JhY2tncm91bmQtY29sb3I6IzYxYTIyMDJifWFwcC1yZXF1ZXN0cy1tb2RhbCAuZXJyb3ItbGluZXtjb2xvcjojZTEyMjAwfWFwcC1yZXF1ZXN0cy1tb2RhbCAud2FybmluZy1saW5le2NvbG9yOiNmMmFmMDB9YXBwLXJlcXVlc3RzLW1vZGFsIC5tb2RhbC1oZWFkZXItLWFjY2Vz'@; put 'c2libGV7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2U0ZTRlNDtwYWRkaW5nOjAgMCAuNXJlbTttYXJnaW4tYm90dG9tOjVweH1hcHAtcmVxdWVzdHMtbW9kYWwgLmRyb3Bkb3duLWl0ZW0uc2VsZWN0ZWR7YmFja2dyb3VuZDojZDhlM2U5fWFwcC1yZXF1ZXN0cy1tb2RhbCAubm8tcmVxc3ti'@; put 'b3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4xMDE5NjA3ODQzKTtwYWRkaW5nLXRvcDo1cHg7dGV4dC1hbGlnbjpjZW50ZXJ9LnJlcXVlc3RzLW1vZGFsIC5tb2RhbC1oZWFkZXItLWFjY2Vzc2libGUtLWFjY2Vzc2libGUgLmNsb3NlIGNsci1pY29ue2Rpc3BsYXk6YmxvY2shaW1w'@; put 'b3J0YW50fS5yZXF1ZXN0cy1tb2RhbCAubW9kYWwtY29udGVudHtwYWRkaW5nOjIwcHggMTBweCA1cHh9LndvcmstdGFibGVzLWRyb3Bkb3duIGJ1dHRvbntjb2xvcjp2YXIoLS1jbHItbmF2LWxpbmstY29sb3IsICM4YzhjOGMpIWltcG9ydGFudH0uc3RhY2stdmlld3toZWlnaHQ6YXV0byFp'@; put 'bXBvcnRhbnQ7bWFzay1pbWFnZTpub25lIWltcG9ydGFudDstd2Via2l0LW1hc2staW1hZ2U6bm9uZSFpbXBvcnRhbnR9LmNvbnRlbnQgY2xyLWljb257bWFyZ2luLWJvdHRvbTo1cHh9LmNvbnRlbnQgcHJle3dvcmQtYnJlYWs6YnJlYWstYWxsO3doaXRlLXNwYWNlOnByZS13cmFwO21heC1o'@; put 'ZWlnaHQ6aW5pdGlhbDtvdmVyZmxvdzp2aXNpYmxlO2JvcmRlcjowfS5jb250ZW50IC5zdGFjay1ibG9jay1sYWJlbHt3aWR0aDoxMDAlO3BhZGRpbmctbGVmdDouNnJlbSFpbXBvcnRhbnR9LmNvbnRlbnQgLnN0YWNrLWJsb2NrLWxhYmVsIC5zdGFjay12aWV3LWtleXtkaXNwbGF5Om5vbmUh'@; put 'aW1wb3J0YW50fS5lcnItbGlua3MgLmNsci10cmVlbm9kZS1jaGlsZHJlbnttYXgtaGVpZ2h0OjU1cHg7b3ZlcmZsb3c6YXV0b31hcHAtc3lzdGVtIC5jb250ZW50LWJveHttYXgtd2lkdGg6MTI4OXB4fWFwcC1zeXN0ZW0gLnN5cy1pbmZvPmRpdntmbGV4OjF9YXBwLXN5c3RlbSAuc3lzLWlu'@; put 'Zm8gZGl2Om50aC1jaGlsZCgyKXttYXJnaW46MCAzMHB4fWFwcC1zeXN0ZW0gLmFkbWluLWFjdGlvbixhcHAtc3lzdGVtIC51c2VyLWFjdGlvbntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6NXB4IDEwcHg7Ym9y'@; put 'ZGVyLXJhZGl1czo2cHg7Ym9yZGVyOjFweCBzb2xpZCAjZGVkZWRlO21hcmdpbi1ib3R0b206NXB4fWFwcC1zeXN0ZW0gLmFkbWluLWFjdGlvbiBidXR0b24sYXBwLXN5c3RlbSAudXNlci1hY3Rpb24gYnV0dG9ue21pbi13aWR0aDoxMDJweH1hcHAtc3lzdGVtIC5kYXJre2ZvbnQtd2VpZ2h0'@; put 'OjcwMDttYXJnaW4tbGVmdDo1cHh9QG1lZGlhIChtYXgtd2lkdGg6IDk5M3B4KXthcHAtc3lzdGVtIC5zeXMtaW5mbyBkaXY6bnRoLWNoaWxkKDIpe21hcmdpbjowfWFwcC1zeXN0ZW0gLnN5cy1pbmZvIGRpdnttYXJnaW46MjBweCAwfX1hcHAtcXVlcnkgLmNvbnRlbnR7ZGlzcGxheTpmbGV4'@; put 'fWFwcC1xdWVyeSAuY29udGVudCAuY2xhdXNlcy1jb250YWluZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn1hcHAtcXVlcnkgLmNvbnRlbnQgLmNsYXVzZXMtY29udGFpbmVyIC5jbGF1c2UtbG9naWN7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7Zmxl'@; put 'eC1kaXJlY3Rpb246Y29sdW1uO3BhZGRpbmc6MTVweH1hcHAtcXVlcnkgLmNvbnRlbnQgLmNsYXVzZXMtY29udGFpbmVyIC5jbGF1c2UtcXVlcnl7cGFkZGluZzozMHB4IDAgMjBweCAyMHB4O2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXgtZGlyZWN0aW9uOmNvbHVt'@; put 'bjtwb3NpdGlvbjpyZWxhdGl2ZX1hcHAtcXVlcnkgLmNvbnRlbnQgLmNsYXVzZXMtY29udGFpbmVyIC5jbGF1c2UtcXVlcnk+LmNsci1yb3d7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59YXBwLXF1ZXJ5IC5jb250ZW50IC5jbGF1c2VzLWNvbnRhaW5lciAuY2xhdXNlLXF1ZXJ5Pi5j'@; put 'bHItcm93Om5vdCg6bGFzdC1jaGlsZCl7cGFkZGluZy1ib3R0b206MTVweDttYXJnaW4tYm90dG9tOjE1cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgwLDAsMCwuMTYpfWFwcC1xdWVyeSAuY29udGVudCAuY2xhdXNlcy1jb250YWluZXIgLmNsYXVzZS1xdWVyeSAucmVtb3ZlLWdy'@; put 'b3VwLWNsYXVzZS1idXR0b257cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MTBweDtjb2xvcjpncmF5fWFwcC1xdWVyeSAuY29udGVudCAuY2xhdXNlcy1jb250YWluZXIgLmNsYXVzZS1xdWVyeSAudmFyaWFibGUtY29se2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0'@; put 'O3BhZGRpbmctYm90dG9tOjFweH1hcHAtcXVlcnkgLmNvbnRlbnQgLmNsYXVzZXMtY29udGFpbmVyIC5jbGF1c2UtcXVlcnkgLnZhcmlhYmxlLWNvbCAuZGF0YWxpc3Qtd3JhcHBlcnt3aWR0aDoxMDAlfWFwcC1xdWVyeSAuY29udGVudCAuY2xhdXNlcy1jb250YWluZXIgLmNsYXVzZS1xdWVy'@; put 'eSAudmFyaWFibGUtY29sIC5kYXRhbGlzdC13cmFwcGVyIGlucHV0e3dpZHRoOjEwMCV9YXBwLXF1ZXJ5IC5jb250ZW50IC5jbGF1c2VzLWNvbnRhaW5lciAuY2xhdXNlLXF1ZXJ5IC5vcGVyYXRvci1jb2x7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9YXBwLXF1ZXJ5IC5j'@; put 'b250ZW50IC5jbGF1c2VzLWNvbnRhaW5lciAuY2xhdXNlLXF1ZXJ5IC5vcGVyYXRvci1jb2wgY2xyLXNlbGVjdC1jb250YWluZXJ7aGVpZ2h0OjQ1cHg7bWFyZ2luLXRvcDowO3dpZHRoOjEwMCV9YXBwLXF1ZXJ5IC5jb250ZW50IC5jbGF1c2VzLWNvbnRhaW5lciAuY2xhdXNlLXF1ZXJ5IC52'@; put 'YWx1ZS1jb2x7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7cGFkZGluZy1ib3R0b206MXB4fWFwcC1xdWVyeSAuY29udGVudCAuY2xhdXNlcy1jb250YWluZXIgLmNsYXVzZS1xdWVyeSAudmFsdWUtY29sIC5jaGVja2JveC12YWxze3dpZHRoOjEwMCU7cGFkZGluZzowIDVw'@; put 'eDtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4zKX1hcHAtcXVlcnkgLmNvbnRlbnQgLmNsYXVzZXMtY29udGFpbmVyIC5jbGF1c2UtcXVlcnkgLnZhbHVlLWNvbCAuY2hlY2tib3gtdmFscyBjbHItY2hlY2tib3gtY29udGFpbmVye21hcmdpbi10b3A6MH1hcHAtcXVlcnkg'@; put 'LmNvbnRlbnQgLmNsYXVzZXMtY29udGFpbmVyIC5jbGF1c2UtcXVlcnkgLnZhbHVlLWNvbCAuY2hlY2tib3gtdmFscyBzZWN0aW9ue21heC1oZWlnaHQ6MTIwcHg7b3ZlcmZsb3cteTpzY3JvbGx9YXBwLXF1ZXJ5IC5jb250ZW50IC5jbGF1c2VzLWNvbnRhaW5lciAuY2xhdXNlLXF1ZXJ5IC52'@; put 'YWx1ZS1jb2wgLnNpbmdsZS1maWVsZC12YWxze3dpZHRoOjEwMCV9YXBwLXF1ZXJ5IC5jb250ZW50IC5jbGF1c2VzLWNvbnRhaW5lciAuY2xhdXNlLXF1ZXJ5IC52YWx1ZS1jb2wgLnNpbmdsZS1maWVsZC12YWxzIC5jbHItY29udHJvbC1jb250YWluZXJ7d2lkdGg6MTAwJX1hcHAtcXVlcnkg'@; put 'LmNvbnRlbnQgLmNsYXVzZXMtY29udGFpbmVyIC5jbGF1c2UtcXVlcnkgLnZhbHVlLWNvbCAuc2luZ2xlLWZpZWxkLXZhbHMgLmNsci1jb250cm9sLWNvbnRhaW5lciAuY2xyLWlucHV0LXdyYXBwZXJ7bWF4LXdpZHRoOm5vbmV9YXBwLXF1ZXJ5IC5jb250ZW50IC5jbGF1c2VzLWNvbnRhaW5l'@; put 'ciAuY2xhdXNlLXF1ZXJ5IC52YWx1ZS1jb2wgLnNpbmdsZS1maWVsZC12YWxzIC5jbHItY29udHJvbC1jb250YWluZXIgLmNsci1pbnB1dC13cmFwcGVyIC5jbHItaW5wdXQtZ3JvdXB7d2lkdGg6MTAwJX1hcHAtcXVlcnkgLmNvbnRlbnQgLmNsYXVzZXMtY29udGFpbmVyIC5jbGF1c2UtcXVl'@; put 'cnkgLnZhbHVlLWNvbCAuc2luZ2xlLWZpZWxkLXZhbHM+aW5wdXR7d2lkdGg6MTAwJX1hcHAtcXVlcnkgLmNvbnRlbnQgLmNsYXVzZXMtY29udGFpbmVyIC5jbGF1c2UtcXVlcnkgLnZhbHVlLWNvbCAuc2luZ2xlLWZpZWxkLXZhbHMgaW5wdXRbdHlwZT10aW1lXXt3aWR0aDoxMDAlO3BhZGRp'@; put 'bmctcmlnaHQ6MTdweH1hcHAtcXVlcnkgLmNvbnRlbnQgLmNsYXVzZXMtY29udGFpbmVyIC5jbGF1c2UtcXVlcnkgLnZhbHVlLWNvbCAucmFuZ2UtdmFsc3t3aWR0aDoxMDAlfWFwcC1xdWVyeSAuY29udGVudCAuY2xhdXNlcy1jb250YWluZXIgLmNsYXVzZS1xdWVyeSAudmFsdWUtY29sIC5y'@; put 'YW5nZS12YWxzIC5jbHItY29udHJvbC1jb250YWluZXJ7d2lkdGg6MTAwJX1hcHAtcXVlcnkgLmNvbnRlbnQgLmNsYXVzZXMtY29udGFpbmVyIC5jbGF1c2UtcXVlcnkgLnZhbHVlLWNvbCAucmFuZ2UtdmFscyAuY2xyLWNvbnRyb2wtY29udGFpbmVyIC5jbHItaW5wdXQtd3JhcHBlcnttYXgt'@; put 'd2lkdGg6bm9uZX1hcHAtcXVlcnkgLmNvbnRlbnQgLmNsYXVzZXMtY29udGFpbmVyIC5jbGF1c2UtcXVlcnkgLnZhbHVlLWNvbCAucmFuZ2UtdmFscyAuY2xyLWNvbnRyb2wtY29udGFpbmVyIC5jbHItaW5wdXQtd3JhcHBlciAuY2xyLWlucHV0LWdyb3Vwe3dpZHRoOjEwMCV9YXBwLXF1ZXJ5'@; put 'IC5jb250ZW50IC5jbGF1c2VzLWNvbnRhaW5lciAuY2xhdXNlLXF1ZXJ5IC52YWx1ZS1jb2wgLnJhbmdlLXZhbHMgLmZyb217bWFyZ2luLWJvdHRvbToxMHB4fWFwcC1xdWVyeSAuY29udGVudCAuY2xhdXNlcy1jb250YWluZXIgLmNsYXVzZS1xdWVyeSAudmFsdWUtY29sIC5yYW5nZS12YWxz'@; put 'IC5mcm9tPmlucHV0e3dpZHRoOjEwMCV9YXBwLXF1ZXJ5IC5jb250ZW50IC5jbGF1c2VzLWNvbnRhaW5lciAuY2xhdXNlLXF1ZXJ5IC52YWx1ZS1jb2wgLnJhbmdlLXZhbHMgLmZyb20gaW5wdXRbdHlwZT10aW1lXXt3aWR0aDoxMDAlO3BhZGRpbmctcmlnaHQ6MTdweH1hcHAtcXVlcnkgLmNv'@; put 'bnRlbnQgLmNsYXVzZXMtY29udGFpbmVyIC5jbGF1c2UtcXVlcnkgLnZhbHVlLWNvbCAucmFuZ2UtdmFscyAuZnJvbSxhcHAtcXVlcnkgLmNvbnRlbnQgLmNsYXVzZXMtY29udGFpbmVyIC5jbGF1c2UtcXVlcnkgLnZhbHVlLWNvbCAucmFuZ2UtdmFscyAudG97bWluLXdpZHRoOjEwMHB4fWFw'@; put 'cC1xdWVyeSAuY29udGVudCAuY2xhdXNlcy1jb250YWluZXIgLmNsYXVzZS1xdWVyeSAudmFsdWUtY29sIC5yYW5nZS12YWxzIC5mcm9tPmlucHV0LGFwcC1xdWVyeSAuY29udGVudCAuY2xhdXNlcy1jb250YWluZXIgLmNsYXVzZS1xdWVyeSAudmFsdWUtY29sIC5yYW5nZS12YWxzIC50bz5p'@; put 'bnB1dHt3aWR0aDoxMDAlfWFwcC1xdWVyeSAuY29udGVudCAuY2xhdXNlcy1jb250YWluZXIgLmNsYXVzZS1xdWVyeSAudmFsdWUtY29sIC5yYW5nZS12YWxzIC5mcm9tIGlucHV0W3R5cGU9dGltZV0sYXBwLXF1ZXJ5IC5jb250ZW50IC5jbGF1c2VzLWNvbnRhaW5lciAuY2xhdXNlLXF1ZXJ5'@; put 'IC52YWx1ZS1jb2wgLnJhbmdlLXZhbHMgLnRvIGlucHV0W3R5cGU9dGltZV17d2lkdGg6MTAwJTtwYWRkaW5nLXJpZ2h0OjE3cHh9YXBwLXF1ZXJ5IC5jb250ZW50IC5jbGF1c2VzLWNvbnRhaW5lciAuY2xhdXNlLXF1ZXJ5IC52YWx1ZS1jb2wgLmNvbnRhaW5zLXZhbHN7d2lkdGg6MTAwJX1h'@; put 'cHAtcXVlcnkgLmNvbnRlbnQgLmNsYXVzZXMtY29udGFpbmVyIC5jbGF1c2UtcXVlcnkgLnZhbHVlLWNvbCAuY29udGFpbnMtdmFscyAuY2xyLWNvbnRyb2wtY29udGFpbmVye3dpZHRoOjEwMCV9YXBwLXF1ZXJ5IC5jb250ZW50IC5jbGF1c2VzLWNvbnRhaW5lciAuY2xhdXNlLXF1ZXJ5IC52'@; put 'YWx1ZS1jb2wgLmNvbnRhaW5zLXZhbHMgLmNsci1jb250cm9sLWNvbnRhaW5lciAuY2xyLWlucHV0LXdyYXBwZXJ7bWF4LXdpZHRoOm5vbmV9YXBwLXF1ZXJ5IC5jb250ZW50IC5jbGF1c2VzLWNvbnRhaW5lciAuY2xhdXNlLXF1ZXJ5IC52YWx1ZS1jb2wgLmNvbnRhaW5zLXZhbHMgLmNsci1j'@; put 'b250cm9sLWNvbnRhaW5lciAuY2xyLWlucHV0LXdyYXBwZXIgLmNsci1pbnB1dC1ncm91cHt3aWR0aDoxMDAlfWFwcC1xdWVyeSAuY29udGVudCAuY2xhdXNlcy1jb250YWluZXIgLmNsYXVzZS1xdWVyeSAudmFsdWUtY29sIC5jb250YWlucy12YWxzPmlucHV0e3dpZHRoOjEwMCV9YXBwLXF1'@; put 'ZXJ5IC5jb250ZW50IC5jbGF1c2VzLWNvbnRhaW5lciAuY2xhdXNlLXF1ZXJ5IC52YWx1ZS1jb2wgLmNvbnRhaW5zLXZhbHMgaW5wdXRbdHlwZT10aW1lXXt3aWR0aDoxMDAlO3BhZGRpbmctcmlnaHQ6MTdweH1hcHAtcXVlcnkgLmNvbnRlbnQgLmNsYXVzZXMtY29udGFpbmVyIC5jbGF1c2Ut'@; put 'cXVlcnkgLmNsYXVzZS1idXR0b25ze2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kO2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50ZXJ9YXBwLXF1ZXJ5IC5jb250ZW50IC5jbGF1c2VzLWNvbnRhaW5lciAuY2xhdXNlLXF1ZXJ5IC5jbGF1c2UtYnV0'@; put 'dG9ucyBidXR0b257bWluLXdpZHRoOmF1dG99YXBwLXF1ZXJ5IC5pbnZhbGlkLWNsYXVzZXtib3JkZXItbGVmdDoycHggc29saWQgI2Q5NGIzMX1hcHAtcXVlcnkgLmNsYXVzZS1yb3cgY2xyLWljb257bWFyZ2luOjB9YXBwLXF1ZXJ5IC5jbGF1c2Utcm93OmFmdGVye3Bvc2l0aW9uOnJlbGF0'@; put 'aXZlO2NvbnRlbnQ6IiI7aGVpZ2h0Oi40MTY2N3JlbTt3aWR0aDouNDE2NjdyZW07dG9wOi4yOTE2N3JlbTtyaWdodDouMjVyZW07YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cu'@; put 'dzMub3JnXDIwMjYlMkM5Ljg0JTJDMy4yNGEwLjY4JTJDMC42OCUyQzAlMkMxJTJDMSUyQzElMkMxWiUyMiUyRiUzRSUwQSUzQyUyRnN2ZyUzRSUwQSk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTpjb250YWluO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJn'@; put 'aW46MH1hcHAtcXVlcnkgcHJlW2NsYXNzKj1sYW5ndWFnZS1de3BhZGRpbmc6OHB4O21hcmdpbjowO2JvcmRlci1yYWRpdXM6MXB4O2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjttaW4taGVpZ2h0OjY2cHg7cG9zaXRpb246cmVsYXRpdmV9'@; put 'YXBwLXF1ZXJ5IHByZVtjbGFzcyo9bGFuZ3VhZ2UtXSBzcGFuLnNwaW5uZXJ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDoxMHB4O3RvcDoxMHB4fWFwcC1xdWVyeSBwcmVbY2xhc3MqPWxhbmd1YWdlLV0gY29kZXt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9YXBw'@; put 'LXF1ZXJ5IC5pbnB1dC12YWx7Ym9yZGVyOjBweDtiYWNrZ3JvdW5kOiNmYmY4Zjg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzk5OTk5OX1hcHAtcXVlcnkgY2xyLWRhdGUtY29udGFpbmVye21hcmdpbi10b3A6MnB4IWltcG9ydGFudH1hcHAtcXVlcnkgaW5wdXRbdHlwZT10aW1lXXtib3Jk'@; put 'ZXI6MDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNiM2IzYjN9YXBwLXF1ZXJ5IGlucHV0W3R5cGU9dGltZV06Zm9jdXN7b3V0bGluZTpub25lfWFwcC1xdWVyeSAuaW4tdmFsdWVzLW1vZGFsIC5tb2RhbC1mb290ZXJ7Ym9yZGVyLXRvcDoxcHggc29s'@; put 'aWQgI2Q4ZDhkODttYXJnaW4tdG9wOjEwcHh9YXBwLXF1ZXJ5IC5wcm9ncmVzcyxhcHAtcXVlcnkgLnByb2dyZXNzLXN0YXRpY3tiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O3dpZHRoOjEwMCU7aGVpZ2h0OjRweDt0b3A6M3B4fWJvZHlbY2RzLXRoZW1lPWxpZ2h0XSBhcHAtcXVlcnkg'@; put 'LmNsYXVzZS1sb2dpY3tiYWNrZ3JvdW5kOiNlOWU5ZTl9Ym9keVtjZHMtdGhlbWU9bGlnaHRdIGFwcC1xdWVyeSAuY2xhdXNlLXF1ZXJ5e2JhY2tncm91bmQ6I2ZiZjhmOH1ib2R5W2Nkcy10aGVtZT1kYXJrXSBhcHAtcXVlcnkgLmxpbmUtbnVtYmVyc3tib3JkZXItY29sb3I6Izk4OTc5NyFp'@; put 'bXBvcnRhbnR9Ym9keVtjZHMtdGhlbWU9ZGFya10gYXBwLXF1ZXJ5IC5jbGF1c2UtbG9naWN7YmFja2dyb3VuZDojMTkyYTMwfWJvZHlbY2RzLXRoZW1lPWRhcmtdIGFwcC1xdWVyeSAuY2xhdXNlLXF1ZXJ5e2JhY2tncm91bmQ6IzI2M2U0OH1hcHAtbG9naW4gLnNpZGVCYXJQcm9wc3tiYWNr'@; put 'Z3JvdW5kOiMzMTQzNTEhaW1wb3J0YW50O2NvbG9yOiNlMGUwZTB9YXBwLWxvZ2luIC5zaWRlQmFyUHJvcHMgaDIsYXBwLWxvZ2luIC5zaWRlQmFyUHJvcHMgaDMsYXBwLWxvZ2luIC5zaWRlQmFyUHJvcHMgaDQsYXBwLWxvZ2luIC5zaWRlQmFyUHJvcHMgaDUsYXBwLWxvZ2luIC5zaWRlQmFy'@; put 'UHJvcHMgaW5wdXR7Y29sb3I6I2UwZTBlMH1hcHAtbG9naW4gLnNpZGVCYXJQcm9wcyBidXR0b257Ym9yZGVyLWNvbG9yOndoZWF0IWltcG9ydGFudH1hcHAtbG9naW4gLnNpZGVCYXJQcm9wcyBhe2NvbG9yOiNlMGUwZTB9YXBwLWxvZ2luIC5sb2dpbi1zaWRlYmFyLXdyYXBwZXJ7d2lkdGg6'@; put 'MTAwJTtoZWlnaHQ6MTAwJTtwb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjA7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4OjEwMDAwfWFwcC1sb2dpbiAubG9naW4tc2lkZWJhci13cmFwcGVyPip7cG9pbnRlci1ldmVudHM6YXV0b31hcHAtbG9naW4gLmxvZ2luLXNpZGViYXItd3JhcHBl'@; put 'ciAubG9naW4tc2lkZWJhcnt3aWR0aDo0MDBweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7YmFja2dyb3VuZDojZmZmO2JvcmRlci1yaWdodDoxcHggc29saWQgI2RkZDtwYWRkaW5nOjQwcHg7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNDAwcHgpO3RyYW5zaXRpb246'@; put 'dHJhbnNmb3JtIC4zcyBlYXNlfWFwcC1sb2dpbiAubG9naW4tc2lkZWJhci13cmFwcGVyIC5sb2dpbi1zaWRlYmFyIGZvcm0ubG9naW57ei1pbmRleDoxMDE7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfWFwcC1sb2dpbiAubG9naW4t'@; put 'c2lkZWJhci13cmFwcGVyIC5sb2dpbi1zaWRlYmFyIGZvcm0ubG9naW4gLnRpdGxle2ZvbnQtc2l6ZTozMnB4O2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDozNnB4fWFwcC1sb2dpbiAubG9naW4tc2lkZWJhci13cmFwcGVyIC5sb2dpbi1zaWRlYmFyIGZvcm0ubG9naW4gLnRp'@; put 'dGxlIC53ZWxjb21le21hcmdpbi10b3A6MzZweH1hcHAtbG9naW4gLmxvZ2luLXNpZGViYXItd3JhcHBlciAubG9naW4tc2lkZWJhciBmb3JtLmxvZ2luIC5sb2dpbi1ncm91cHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3BhZGRpbmc6NDhweCAwIDB9YXBwLWxvZ2luIC5s'@; put 'b2dpbi1zaWRlYmFyLXdyYXBwZXIgLmxvZ2luLXNpZGViYXIgZm9ybS5sb2dpbiAubG9naW4tZ3JvdXA+KnttYXJnaW46NnB4IDAgMThweH1hcHAtbG9naW4gLmxvZ2luLXNpZGViYXItd3JhcHBlci5hY3RpdmUgLmxvZ2luLXNpZGViYXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKTt6LWluZGV4'@; put 'OjEwMX1hcHAtbG9naW4gLmxvZ2luLXNpZGViYXItd3JhcHBlci5hY3RpdmUgLm92ZXJsYXl7ZGlzcGxheTpibG9ja31hcHAtbG9naW4gLmxvZ2luLXNpZGViYXItd3JhcHBlciAub3ZlcmxheXtkaXNwbGF5Om5vbmU7cG9zaXRpb246Zml4ZWQ7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dp'@; put 'ZHRoOjEwMCU7YmFja2dyb3VuZDojMjEyMTIxODA7ei1pbmRleDoxMDB9YXBwLWxvZ2luIC5sb2dpbi1sb2dve21heC13aWR0aDoyMDBweH0ubG9naW4tc2lkZWJhci13cmFwcGVyIC5sb2dpbi1ncm91cCAuY2xyLWNvbnRyb2wtY29udGFpbmVyLC5sb2dpbi1zaWRlYmFyLXdyYXBwZXIgLmxv'@; put 'Z2luLWdyb3VwIC5jbHItaW5wdXQtZ3JvdXAsLmxvZ2luLXNpZGViYXItd3JhcHBlciAubG9naW4tZ3JvdXAgLnVzZXJuYW1lLC5sb2dpbi1zaWRlYmFyLXdyYXBwZXIgLmxvZ2luLWdyb3VwIC5wYXNzd29yZHt3aWR0aDoxMDAlfS5sb2dpbi1zaWRlYmFyLXdyYXBwZXIgLmxvZ2luLWdyb3Vw'@; put 'IC5jbHItaW5wdXQtd3JhcHBlciwubG9naW4tc2lkZWJhci13cmFwcGVyIC5sb2dpbi1ncm91cCBidXR0b257bWF4LXdpZHRoOm5vbmV9YXBwLXRlcm1zIDpob3N0e2hlaWdodDoxMDAlO2JhY2tncm91bmQ6I2Y1ZjZmZn1hcHAtdGVybXMgLmNsci1jaGVja2JveC13cmFwcGVyLmRpc2FibGVk'@; put 'e29wYWNpdHk6LjV9YXBwLXRlcm1zIC5jYXJke2hlaWdodDoxMDAlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWFyZ2luLXRvcDowfWFwcC10ZXJtcyAuY2FyZCAuY2FyZC1ibG9ja3tmbGV4OjE7b3ZlcmZsb3c6YXV0b31hcHAtdGVybXMgLmFjY2VwdC1jaGVja2JveHtw'@; put 'YWRkaW5nOjEwcHggMTVweH1hcHAtZGVwbG95IC5jYXJke21hcmdpbi10b3A6MH1hcHAtZGVwbG95IC5idG57bWFyZ2luLXRvcDoxMHB4fWFwcC1kZXBsb3kgLmxvZy13cmFwcGVye3dpZHRoOjEwMCU7YmFja2dyb3VuZDojZjBmMGYwO2JvcmRlcjoxcHggc29saWQgI2M5YzljOTtwYWRkaW5n'@; put 'OjEwcHg7b3ZlcmZsb3c6YXV0bzt3aGl0ZS1zcGFjZTpwcmUtd3JhcH1hcHAtZGVwbG95ICNjb250ZXh0cy1idG57cGFkZGluZzozcHggMCAwO21pbi13aWR0aDozMHB4O21hcmdpbi1sZWZ0OjEwcHg7aGVpZ2h0OjMwcHg7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2Vu'@; put 'dGVyO2FsaWduLWl0ZW1zOmNlbnRlcn1hcHAtZGVwbG95IC52YWxpZGF0aW9uLWJhcntkaXNwbGF5OmZsZXg7bWFyZ2luLXRvcDoyMHB4O2FsaWduLWl0ZW1zOmNlbnRlcn1hcHAtZGVwbG95IC52YWxpZGF0aW9uLWJhciBjbHItaWNvbnttYXJnaW4tcmlnaHQ6NXB4fWFwcC1kZXBsb3kgLmF1'@; put 'dG9kZXBsb3ktc2VjdGlvbntwYWRkaW5nOjAgMTVweH1hcHAtZGVwbG95IC5hdXRvZGVwbG95LXNlY3Rpb24gLmNsci1jaGVja2JveC13cmFwcGVye21hcmdpbjoyMHB4IDB9YXBwLWRlcGxveSAuYXV0b2RlcGxveS1zZWN0aW9uIC5idG4tYXV0b2RlcGxveXtkaXNwbGF5OmJsb2NrO21hcmdp'@; put 'bjoxNXB4IDB9YXBwLWFsZXJ0cyBjbHItYWxlcnRze2Rpc3BsYXk6YmxvY2t9YXBwLW1hbnVhbC1kZXBsb3kgLmNsZWFyLW1lbW9yeS1idXR0b257cmlnaHQ6MTBweDt0b3A6MnB4fWFwcC1saW5lYWdlIC50b2dnbGUtc3dpdGNoIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw6'@; put 'YmVmb3Jle2JvcmRlci1jb2xvcjojMzE0MzUxO2JhY2tncm91bmQtY29sb3I6IzMxNDM1MSFpbXBvcnRhbnQ7dHJhbnNpdGlvbjouMTVzIGVhc2UtaW47dHJhbnNpdGlvbi1wcm9wZXJ0eTpib3JkZXItY29sb3IsYmFja2dyb3VuZC1jb2xvcn1hcHAtbGluZWFnZSAjZ3JhcGh7aGVpZ2h0OmNh'@; put 'bGMoMTAwdmggLSAxOTVweCk7b3ZlcmZsb3c6aGlkZGVuO3RleHQtYWxpZ246Y2VudGVyO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtib3JkZXI6MXB4IHNvbGlkICNlNGU0ZTQ7bWFyZ2luLXRvcDoxMHB4fWFwcC1saW5lYWdlIC5zZWxlY3Rpb24td3JhcHBlcnt3aWR0aDoxMDAlO21heC13'@; put 'aWR0aDo2NzBweH1hcHAtbGluZWFnZSAuY29sdW1uLWFjdGl2ZXtiYWNrZ3JvdW5kOiNkOGUzZTk7Y29sb3I6IzAwMH1hcHAtbGluZWFnZSAuY29udGVudC1hcmVhe3BhZGRpbmc6LjVyZW0haW1wb3J0YW50fWFwcC1saW5lYWdlIC5jb250ZW50LWFyZWEgLmNhcmR7bWluLWhlaWdodDpjYWxj'@; put 'KDEwMHZoIC0gMTIwcHgpfWFwcC1saW5lYWdlIC5jb250ZW50LWFyZWEgLmNhcmQgLmNhcmQtYmxvY2t7cGFkZGluZzouNXJlbSAuMzVyZW0haW1wb3J0YW50fWFwcC1saW5lYWdlIGNsci10cmVlLW5vZGUgYnV0dG9ue3doaXRlLXNwYWNlOm5vd3JhcH1hcHAtbGluZWFnZSAuYnRuLWdyb3Vw'@; put 'LmRpcmVjdGlvbnttYXJnaW4tbGVmdDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTYpfWFwcC1saW5lYWdlIC5ncmFwaC1yZW5kZXItc3Bpbm5lcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi10b3A6'@; put 'MTBweH1hcHAtbGluZWFnZSAuYmlnbGluZWFnZS1yb3d7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcjttYXJnaW4tYm90dG9tOjIwcHh9YXBwLWxpbmVhZ2UgLm1vZGFsLWZvb3RlciBwe21hcmdpbjowfWFwcC1saW5lYWdlIC5s'@; put 'aW5lYWdlLXRpdGxlLXdyYXBwZXJ7bGVmdDoxMnB4fWFwcC1saW5lYWdlIC5tYXgtZGVwdGgtaW5wdXR7d2lkdGg6MTAwJX1AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpe2FwcC1saW5lYWdlIC50b2dnbGUtc3dpdGNoLWNvbnRhaW5lcnttYXJnaW4tYm90dG9tOjIwcHh9fWRjLXRyZWUgY2xy'@; put 'LXRyZWUtbm9kZSBidXR0b257d2hpdGUtc3BhY2U6bm93cmFwfWRjLXRyZWUgY2xyLXRyZWUgLmNsci10cmVlLW5vZGUtY29udGVudC1jb250YWluZXI6Zm9jdXMgLmNsci10cmVlbm9kZS1saW5re2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZhcigtLWNsci10cmVlLWxpbmstaG92'@; put 'ZXItY29sb3IsICNlOGU4ZTgpO3RleHQtZGVjb3JhdGlvbjpub25lfWFwcC1tZXRhZGF0YSAub2JqZWN0cy1jb2x7aGVpZ2h0Ojc1dmg7b3ZlcmZsb3c6c2Nyb2xsO2JvcmRlcjoxcHggc29saWQgI2NjY2NjYztib3JkZXItcmFkaXVzOjRweH1hcHAtbWV0YWRhdGEgLmNvbHMtaGVhZHtib3Jk'@; put 'ZXI6MXB4IHNvbGlkICNjY2NjY2M7cGFkZGluZzoxMHB4O2Rpc3BsYXk6ZmxleH1hcHAtbWV0YWRhdGEgLm9iamVjdC10ZXh0e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO21hcmdpbi1sZWZ0OjEwcHg7ZmxleDoxfWFw'@; put 'cC1tZXRhZGF0YSAucmVwby1kcm9wZG93bnttYXJnaW4tcmlnaHQ6MTVweDttYXJnaW4tbGVmdDoxNXB4O21hcmdpbi1ib3R0b206MTBweH1hcHAtbWV0YWRhdGEgLmNsci1hY2NvcmRpb24tdGl0bGV7d2lkdGg6MTAwJX1hcHAtbWV0YWRhdGEgLmZsb2F0LXJpZ2h0e21hcmdpbjowO2Zsb2F0'@; put 'OnJpZ2h0fWFwcC1tZXRhZGF0YSAuZnVsbC13aWR0aHt3aWR0aDoxMDAlfWFwcC1tZXRhZGF0YSAub2JqZWN0LXVyaXttYXJnaW46NXB4IDAgMH1hcHAtbWV0YWRhdGEgLm9iamVjdC1oZWFkZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2Ut'@; put 'YmV0d2VlbjtwYWRkaW5nLWxlZnQ6M3B4O3BhZGRpbmctcmlnaHQ6M3B4fWFwcC1tZXRhZGF0YSAub2JqZWN0LWhlYWRlcjpob3Zlcntib3JkZXItcmFkaXVzOjNweH1hcHAtbWV0YWRhdGEgLmRhdGFncmlkLWhvc3R7ZGlzcGxheTp1bnNldCFpbXBvcnRhbnR9YXBwLW1ldGFkYXRhIC5jYXJk'@; put 'e21hcmdpbi10b3A6MDtmbGV4OjE7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn1hcHAtbWV0YWRhdGEgLmNvbnRlbnQtYXJlYXtwYWRkaW5nOi41cmVtIWltcG9ydGFudDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufWJvZHlbY2RzLXRoZW1lPWRhcmtdIGFw'@; put 'cC1tZXRhZGF0YSAub2JqZWN0LWhlYWRlcjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiM0MDU1NjB9Ym9keVtjZHMtdGhlbWU9bGlnaHRdIGFwcC1tZXRhZGF0YSAub2JqZWN0cy1jb2x7YmFja2dyb3VuZDojZmZmfWJvZHlbY2RzLXRoZW1lPWxpZ2h0XSBhcHAtbWV0YWRhdGEgLm9iamVjdC1o'@; put 'ZWFkZXI6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZDhlM2U5fWFwcC1saWNlbnNpbmd7aGVpZ2h0OmNhbGMoMTAwJSAtIDk2cHgpO3BhZGRpbmc6MjBweH1hcHAtbGljZW5zaW5nIC5jYXJke21hcmdpbi10b3A6MH1hcHAtbGljZW5zaW5nIC5rZXktZXJyb3J7Zm9udC1zaXplOjE2cHh9YXBw'@; put 'LWxpY2Vuc2luZyAubWlzc2tleXtjb2xvcjojZTc0YzNjfWFwcC1saWNlbnNpbmcgLmxpY2Vuc2Uta2V5LWZvcm0sYXBwLWxpY2Vuc2luZyAuYWN0aXZhdGlvbi1rZXktZm9ybXtwYWRkaW5nOjB9YXBwLWxpY2Vuc2luZyAubGljZW5zZS1rZXktZm9ybSAuY2xyLWNvbnRyb2wtY29udGFpbmVy'@; put 'LGFwcC1saWNlbnNpbmcgLmFjdGl2YXRpb24ta2V5LWZvcm0gLmNsci1jb250cm9sLWNvbnRhaW5lcnt3aWR0aDoxMDAlfWFwcC1saWNlbnNpbmcgLmxpY2Vuc2Uta2V5LWZvcm0gLmNsci1jb250cm9sLWNvbnRhaW5lciB0ZXh0YXJlYSxhcHAtbGljZW5zaW5nIC5hY3RpdmF0aW9uLWtleS1m'@; put 'b3JtIC5jbHItY29udHJvbC1jb250YWluZXIgdGV4dGFyZWF7d2lkdGg6MTAwJTtoZWlnaHQ6MTcwcHg7bWF4LWhlaWdodDoxNzBweDttaW4taGVpZ2h0OjE3MHB4O3Jlc2l6ZTpub25lfWFwcC1saWNlbnNpbmcgLmFwcGx5LWtleXN7aGVpZ2h0OjQwcHh9YXBwLWxpY2Vuc2luZyAuZHJvcC1h'@; put 'cmVhe2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjE1cHg7Ym9yZGVyOjJweCBkYXNoZWQgI2IyYjJiMjtib3JkZXItcmFkaXVzOjRweDtjdXJzb3I6cG9pbnRlcjttYXJnaW46MTBweCAwfWFwcC1saWNlbnNpbmcgY2xyLXRh'@; put 'YnMgYnV0dG9ue2JveC1zaGFkb3c6bm9uZSFpbXBvcnRhbnR9YXBwLXZpZXdib3hlcyAubGljZW5jZS1ub3RpY2V7Zm9udC1zaXplOjE0cHg7ZGlzcGxheTpibG9jaztvcGFjaXR5Oi42fWFwcC12aWV3Ym94ZXMgY2xyLW1vZGFsLnJvb3QtbW9kYWx7ei1pbmRleDoxMzAwfWFwcC12aWV3Ym94'@; put 'ZXMgY2xyLW1vZGFsLnJvb3QtbW9kYWwgLm1vZGFsLWJvZHktd3JhcHBlcntoZWlnaHQ6Y2FsYygxMDAlIC0gNjBweCl9YXBwLXZpZXdib3hlcyBjbHItbW9kYWwucm9vdC1tb2RhbCAubW9kYWwtY29udGVudHtoZWlnaHQ6ODB2aH1hcHAtdmlld2JveGVzIGNsci1tb2RhbC5yb290LW1vZGFs'@; put 'IC5tb2RhbC1ib2R5e21heC1oZWlnaHQ6MTAwJTtoZWlnaHQ6MTAwJX1hcHAtdmlld2JveGVzIGRjLXRyZWV7b3ZlcmZsb3c6YXV0bztmbGV4OjF9YXBwLXZpZXdib3hlcyAudG9vbHRpcC1sb25ne3dvcmQtYnJlYWs6YnJlYWstd29yZH1hcHAtdmlld2JveGVzIC5hZGQtbmV3e3dpZHRoOjUw'@; put 'JTtwYWRkaW5nLXJpZ2h0OjVweH1hcHAtdmlld2JveGVzIC5hZGQtbmV3PnB7bWFyZ2luLWJvdHRvbToxcHh9YXBwLXZpZXdib3hlcyAudmlld2JveC1saW1pdC1ub3RpY2V7b3BhY2l0eTouNztjb2xvcjojZTc0YzNjfWFwcC12aWV3Ym94ZXMgLmN1cnJlbnRseS1vcGVue3dpZHRoOjUwJX1h'@; put 'cHAtdmlld2JveGVzIC5jdXJyZW50bHktb3BlbiAub3Blbi12aWV3Ym94e2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6M3B4IDVweH1hcHAtdmlld2JveGVzIC5jdXJyZW50bHktb3BlbiAub3Blbi12aWV3Ym94LnNlbGVjdGVke2JhY2tncm91bmQ6IzNjODUwMDJlfWFwcC12aWV3Ym94ZXMgLnZp'@; put 'ZXdib3hlcy1jb250YWluZXJ7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6OTk5fWFwcC12aWV3Ym94ZXMgLnZpZXdib3h7bWluLXdpZHRoOjIwMHB4O21pbi1oZWlnaHQ6MjAwcHg7cG9zaXRpb246Zml4ZWQ7bGVmdDowO3RvcDowO3BvaW50ZXIt'@; put 'ZXZlbnRzOmFsbDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6M3B4O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjNweDtib3gtc2hhZG93OjAgMCAxMHB4IC0zcHggIzAwMH1hcHAtdmlld2JveGVzIC52aWV3Ym94LmZvY3VzZWR7ei1p'@; put 'bmRleDoxMTAwO291dGxpbmU6bm9uZX1hcHAtdmlld2JveGVzIC52aWV3Ym94IC5jb250ZW50e2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuMzAxOTYwNzg0Myk7YmFja2dyb3VuZDojZmZmO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7ZmxleDoxO292ZXJmbG93LXg6YXV0b31hcHAtdmll'@; put 'd2JveGVzIC52aWV3Ym94IC5kcmFnLWhhbmRsZXt3aWR0aDoxMDAlO21pbi1oZWlnaHQ6MjBweDtiYWNrZ3JvdW5kLWNvbG9yOiMzYzg1MDA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4O2NvbG9yOiNmZmY7cGFkZGluZzowIDVweDtwb2lu'@; put 'dGVyLWV2ZW50czphbGx9YXBwLXZpZXdib3hlcyAudmlld2JveCAuZHJhZy1oYW5kbGUgLnRhYmxlLXRpdGxle3doaXRlLXNwYWNlOnByZS13cmFwO3dvcmQtYnJlYWs6YnJlYWstYWxsfWFwcC12aWV3Ym94ZXMgLnZpZXdib3ggLmRyYWctaGFuZGxlIC5hY3Rpb25ze2Rpc3BsYXk6ZmxleDtt'@; put 'aW4td2lkdGg6MzVweH1hcHAtdmlld2JveGVzIC52aWV3Ym94IC5kcmFnLWhhbmRsZSAuYWN0aW9ucyBjbHItaWNvbntjdXJzb3I6cG9pbnRlcjttYXJnaW4tbGVmdDo1cHh9YXBwLXZpZXdib3hlcyAudmlld2JveCAuZHJhZy1oYW5kbGUgLmFjdGlvbnMgY2xyLWljb246aG92ZXJ7dHJhbnNm'@; put 'b3JtOnNjYWxlKDEuMyl9YXBwLXZpZXdib3hlcyAudmlld2JveCAuY2xpY2staWNvbntjdXJzb3I6cG9pbnRlcn1hcHAtdmlld2JveGVzIC52aWV3Ym94IC5jbGljay1pY29uOmhvdmVye3RyYW5zZm9ybTpzY2FsZSgxLjMpfWFwcC12aWV3Ym94ZXMgLnZpZXdib3ggLmRyYWdIYW5kbGV7cG9z'@; put 'aXRpb246YWJzb2x1dGV9YXBwLXZpZXdib3hlcyAudmlld2JveCAuZHJhZ0hhbmRsZS5jb3JuZXJ7d2lkdGg6MTVweDtoZWlnaHQ6MTVweDtjdXJzb3I6bndzZS1yZXNpemV9YXBwLXZpZXdib3hlcyAudmlld2JveCAuZHJhZ0hhbmRsZS5yaWdodHt3aWR0aDoycHg7aGVpZ2h0OjEwMCU7Y3Vy'@; put 'c29yOmV3LXJlc2l6ZX1hcHAtdmlld2JveGVzIC52aWV3Ym94IC5kcmFnSGFuZGxlLmJvdHRvbXtoZWlnaHQ6MnB4O3dpZHRoOjEwMCU7Y3Vyc29yOm5zLXJlc2l6ZX1hcHAtdmlld2JveGVzIC5jb2xzLXNlYXJjaHt3aWR0aDoxMDAlO21hcmdpbi10b3A6NXB4O2JvcmRlcjoxcHggc29saWQg'@; put 'cmdiYSgwLDAsMCwuMjc4NDMxMzcyNSk7Ym9yZGVyLXJhZGl1czozcHh9YXBwLXZpZXdib3hlcyAuY29scy1saXN0e2JvcmRlcjpzb2xpZCAxcHggI2NjYzttaW4taGVpZ2h0OjYwcHg7Ym9yZGVyLXJhZGl1czo0cHg7b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6YmxvY2s7d2lkdGg6NDAwcHg7'@; put 'bWF4LXdpZHRoOjEwMCU7bWFyZ2luLXRvcDo1cHh9YXBwLXZpZXdib3hlcyAuY29sLWJveHtwYWRkaW5nOjJweCAxMHB4O2JvcmRlci1ib3R0b206c29saWQgMXB4ICNjY2M7Y29sb3I6IzAwMDAwMGRlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7YWxpZ24taXRlbXM6Y2VudGVy'@; put 'O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjdXJzb3I6bW92ZTtmb250LXNpemU6MTRweH1hcHAtdmlld2JveGVzIC5jb2wtYm94LnNlYXJjaDpmb2N1c3tiYWNrZ3JvdW5kOiMwMDAwMDAxYX1hcHAtdmlld2JveGVzIC5jb2wtYm94LnByaW1h'@; put 'cnlLZXlIZWFkZXJTdHlsZXtiYWNrZ3JvdW5kOiMzMDZiMDAyNH1hcHAtdmlld2JveGVzIC5jZGstZHJhZy1wcmV2aWV3e2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXItcmFkaXVzOjRweDtib3gtc2hhZG93OjAgNXB4IDVweCAtM3B4ICMwMDAzLDAgOHB4IDEwcHggMXB4ICMwMDAwMDAy'@; put 'NCwwIDNweCAxNHB4IDJweCAjMDAwMDAwMWY7ei1pbmRleDoxMzAwIWltcG9ydGFudH1hcHAtdmlld2JveGVzIC5jZGstZHJhZy1wbGFjZWhvbGRlcntvcGFjaXR5OjB9YXBwLXZpZXdib3hlcyAuY2RrLWRyYWctYW5pbWF0aW5ne3RyYW5zaXRpb246dHJhbnNmb3JtIC4yNXMgY3ViaWMtYmV6'@; put 'aWVyKDAsMCwuMiwxKX1hcHAtdmlld2JveGVzIC5jb2wtYm94Omxhc3QtY2hpbGR7Ym9yZGVyOm5vbmV9YXBwLXZpZXdib3hlcyAuY29scy1saXN0LmNkay1kcm9wLWxpc3QtZHJhZ2dpbmcgLmNvbC1ib3g6bm90KC5jZGstZHJhZy1wbGFjZWhvbGRlcil7dHJhbnNpdGlvbjp0cmFuc2Zvcm0g'@; put 'LjI1cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfWFwcC12aWV3Ym94ZXMgLmRpc2FibGVke29wYWNpdHk6LjU7dHJhbnNmb3JtOm5vbmUhaW1wb3J0YW50O3BvaW50ZXItZXZlbnRzOm5vbmV9YXBwLXZpZXdib3hlcyAuZmlsdGVyLWFjdGl2ZXtjb2xvcjojMDA3MmEzfWFwcC12aWV3Ym94ZXMg'@; put 'aG90LXRhYmxlIC5maXJzdENvbHVtbkhlYWRlclN0eWxlIGJ1dHRvbi5jaGFuZ2VUeXBle2Rpc3BsYXk6bm9uZX1hcHAtdmlld2JveGVzIGhvdC10YWJsZSAuaGFuZHNvbnRhYmxlIHRib2R5IHRoLmh0X19oaWdobGlnaHQucHJpbWFyeUtleUhlYWRlclN0eWxlLGFwcC12aWV3Ym94ZXMgaG90'@; put 'LXRhYmxlIC5oYW5kc29udGFibGUgdGhlYWQgdGguaHRfX2hpZ2hsaWdodC5wcmltYXJ5S2V5SGVhZGVyU3R5bGV7YmFja2dyb3VuZDojMzA2YjAwYjB9YXBwLXZpZXdib3hlcyBob3QtdGFibGUgLnByaW1hcnlLZXlIZWFkZXJTdHlsZXtiYWNrZ3JvdW5kOiMzMDZiMDA2ZX1hcHAtdmlld2Jv'@; put 'eGVzIGhvdC10YWJsZSB0aC5yZWFkb25seUNlbGwgZGl2e29wYWNpdHk6LjR9YXBwLXZpZXdib3hlcyBob3QtdGFibGUgdGQucmVhZG9ubHlDZWxse29wYWNpdHk6LjV9Ym9keVtjZHMtdGhlbWU9ZGFya10gYXBwLXZpZXdib3hlcyAuY3VycmVudGx5LW9wZW4gLm9wZW4tdmlld2JveDpob3Zl'@; put 'cntiYWNrZ3JvdW5kOiMzMTRiNTd9Ym9keVtjZHMtdGhlbWU9ZGFya10gYXBwLXZpZXdib3hlcyAuY29scy1saXN0e2JhY2tncm91bmQ6IzMxNGI1Nztjb2xvcjojZmZmO2JvcmRlci1jb2xvcjojODU4NTg1fWJvZHlbY2RzLXRoZW1lPWRhcmtdIGFwcC12aWV3Ym94ZXMgLmNvbC1ib3h7YmFj'@; put 'a2dyb3VuZDojMzE0YjU3O2JvcmRlci1jb2xvcjojODU4NTg1O2NvbG9yOmluaGVyaXR9Ym9keVtjZHMtdGhlbWU9bGlnaHRdIGFwcC12aWV3Ym94ZXMgLmN1cnJlbnRseS1vcGVuIC5vcGVuLXZpZXdib3g6aG92ZXJ7YmFja2dyb3VuZDojZThlOGU4fWJvZHlbY2RzLXRoZW1lPWxpZ2h0XSBh'@; put 'cHAtdmlld2JveGVzIC5jb2xzLWxpc3R7YmFja2dyb3VuZDojZmZmfWJvZHlbY2RzLXRoZW1lPWxpZ2h0XSBhcHAtdmlld2JveGVzIC5jb2wtYm94e2JhY2tncm91bmQ6I2ZmZn1hcHAtYXV0b21hdGljLWRlcGxveSAuZGMtbG9jLWlucHV0LXdyYXBwZXIgaW5wdXR7d2lkdGg6NTAwcHh9YXBw'@; put 'LWF1dG9tYXRpYy1kZXBsb3kgLmF1dG8tZGVwbG95e2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwb3NpdGlvbjpmaXhlZDtpbnNldDowO2JhY2tncm91bmQ6IzAwMDY7ei1pbmRleDoxMDB9YXBwLWF1dG9tYXRpYy1kZXBsb3kgLnNwaW5u'@; put 'ZXItYm94e3dpZHRoOjQwMHB4O3BhZGRpbmc6MjBweDtib3JkZXItcmFkaXVzOjNweDtiYWNrZ3JvdW5kOiNmZmY7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtib3gtc2hhZG93OjFweCAxcHggOHB4'@; put 'ICMwMDAwMDA4Mn1hcHAtYXV0b21hdGljLWRlcGxveSAuc3Bpbm5lci1ib3ggLmJ1dHRvbnN7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3dpZHRoOjEwMCV9YXBwLWF1dG9tYXRpYy1kZXBsb3kgLmRlcGxveS1zdGF0dXMtcm93e2Rpc3BsYXk6ZmxleDthbGln'@; put 'bi1pdGVtczpjZW50ZXI7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fWFwcC1hdXRvbWF0aWMtZGVwbG95IC5kZXBsb3ktc3RhdHVzLXJvdyBwe21hcmdpbjowIDAgMCAxMHB4fWFwcC1hdXRvbWF0aWMtZGVwbG95IC5kZXBsb3ktc3VjY2Vzc3tjb2xvcjojNmVjZjQ0fWFwcC1hdXRvbWF0aWMtZGVw'@; put 'bG95IC5kZXBsb3ktZXJyb3J7Y29sb3I6I2U3NGMzY31hcHAtYXV0b21hdGljLWRlcGxveSAuZGVwbG95LXVuZGV0ZXJtaW5hdGVke2NvbG9yOiNjYWNhY2F9YXBwLWF1dG9tYXRpYy1kZXBsb3kgaHJ7Ym9yZGVyOjA7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgwLDAsMCwuMjcwNTg4'@; put 'MjM1Myl9YXBwLWluZm8tbW9kYWwgLmNsci1hYm9ydC1tb2RhbCAubW9kYWwtdGl0bGUtd3JhcHBlcnt3aWR0aDoxMDAlfWFwcC1pbmZvLW1vZGFsIC5jbHItYWJvcnQtbW9kYWwgLm1vZGFse3otaW5kZXg6MjA1MH1hcHAtaW5mby1tb2RhbCAubW9kYWwtdGl0bGV7cG9zaXRpb246cmVsYXRp'@; put 'dmV9YXBwLWluZm8tbW9kYWwgLnNhc1NlcnZpY2V7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MTBweDttYXJnaW46MH1hcHAtaW5mby1tb2RhbCAubW9kYWwtZm9vdGVye3Bvc2l0aW9uOnJlbGF0aXZlfWFwcC1pbmZvLW1vZGFsIC5zeXN0ZXh0e292ZXJmbG93OmF1dG87bWFyZ2lu'@; put 'LXRvcDoyMHB4O3BhZGRpbmc6MTBweCAwO2JvcmRlci10b3A6MXB4IHNvbGlkICNkY2RjZGN9YXBwLWluZm8tbW9kYWwgLnN5c3RleHQgcHttYXJnaW4tdG9wOjA7d29yZC13cmFwOmJyZWFrLXdvcmR9YXBwLWVkaXQtcmVjb3JkIC5yZWNvcmQtZWRpdC1tb2RhbCAuY29sdW1uLWVudHJ5e2Rp'@; put 'c3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn1hcHAtZWRpdC1yZWNvcmQgLnJlY29yZC1lZGl0LW1vZGFsIC5jb2x1bW4tZW50cnkgLm5hbWUtaW5wdXQtcm93e3dpZHRoOjEwMCU7bWF4LXdpZHRoOjI2MHB4fWFwcC1lZGl0LXJlY29yZCAucmVjb3JkLWVkaXQtbW9k'@; put 'YWwgLmNvbHVtbi1lbnRyeSAubmFtZS1pbnB1dC1yb3cgLmNlbGwtZGVzY3ttYXJnaW4tcmlnaHQ6MzBweDttYXJnaW4tdG9wOjEwcHh9YXBwLWVkaXQtcmVjb3JkIC5yZWNvcmQtZWRpdC1tb2RhbCAuY29sdW1uLWVudHJ5IC5pbnB1dHMtd3JhcHBlcntmbGV4OjE7ZGlzcGxheTpmbGV4O2Fs'@; put 'aWduLWl0ZW1zOmNlbnRlcn1hcHAtZWRpdC1yZWNvcmQgLnJlY29yZC1lZGl0LW1vZGFsIC5jb2x1bW4tZW50cnkgLmlucHV0cy13cmFwcGVyPio6bm90KC5kYXRlLWZpZWxkKTpub3QoY2xyLXNlbGVjdC1jb250YWluZXIpe2ZsZXg6MX1hcHAtZWRpdC1yZWNvcmQgLnJlY29yZC1lZGl0LW1v'@; put 'ZGFsIC5jb2x1bW4tZW50cnkgcHttYXJnaW4tdG9wOjB9YXBwLWVkaXQtcmVjb3JkIC5yZWNvcmQtZWRpdC1tb2RhbCAuY29sdW1uLWVudHJ5IC5jbHItdGV4dGFyZWEtd3JhcHBlcnttYXJnaW4tdG9wOjAhaW1wb3J0YW50fWFwcC1lZGl0LXJlY29yZCAucmVjb3JkLWVkaXQtbW9kYWwgLmNv'@; put 'bHVtbi1lbnRyeSAuY2xyLWZvcm0tY29udHJvbHttYXJnaW4tdG9wOjAhaW1wb3J0YW50fWFwcC1lZGl0LXJlY29yZCAucmVjb3JkLWVkaXQtbW9kYWwgLmNvbHVtbi1lbnRyeSBhcHAtc29mdC1zZWxlY3R7ZGlzcGxheTpibG9jazt3aWR0aDoyMjRweDtib3JkZXI6MXB4IHNvbGlkICM5OTk7'@; put 'Y29sb3I6IzAwMDtwYWRkaW5nOmNhbGMoLjI1cmVtICsgMnB4KSAuNXJlbTtib3JkZXItcmFkaXVzOi4xMjVyZW07Zm9udC1zaXplOi41NDE2NjdyZW07bWFyZ2luLXJpZ2h0OjZweH1hcHAtZWRpdC1yZWNvcmQgLnJlY29yZC1lZGl0LW1vZGFsIC5jb2x1bW4tZW50cnkgYXBwLXNvZnQtc2Vs'@; put 'ZWN0IGlucHV0e3dpZHRoOjEwMCU7Ym9yZGVyOjB9YXBwLWVkaXQtcmVjb3JkIC5yZWNvcmQtZWRpdC1tb2RhbCAuY29sdW1uLWVudHJ5IGFwcC1zb2Z0LXNlbGVjdCBpbnB1dDpmb2N1c3tiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOjAhaW1wb3J0YW50fWFwcC1lZGl0LXJlY29yZCAucmVjb3Jk'@; put 'LWVkaXQtbW9kYWwgLmNvbHVtbi1lbnRyeSBhcHAtc29mdC1zZWxlY3QgaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sYXBwLWVkaXQtcmVjb3JkIC5yZWNvcmQtZWRpdC1tb2RhbCAuY29sdW1uLWVudHJ5IGFwcC1zb2Z0LXNlbGVjdCBpbnB1dDo6LXdlYmtpdC1pbm5lci1zcGlu'@; put 'LWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTttYXJnaW46MH1hcHAtZWRpdC1yZWNvcmQgLnJlY29yZC1lZGl0LW1vZGFsIC5jb2x1bW4tZW50cnk6Zmlyc3QtY2hpbGQgcDpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjB9YXBwLWVkaXQtcmVjb3JkIC5yZWNvcmQtZWRpdC1tb2RhbCAu'@; put 'ZGF0ZS1maWVsZHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9ja31hcHAtZWRpdC1yZWNvcmQgLnJlY29yZC1lZGl0LW1vZGFsIC5kYXRlLWZpZWxkIHRleHRhcmVhe3dpZHRoOjIzMHB4fWFwcC1lZGl0LXJlY29yZCAucmVjb3JkLWVkaXQtbW9kYWwgLmRhdGUtZmllbGQg'@; put 'LmRhdGUtcGlja2Vye3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjRweH1hcHAtZWRpdC1yZWNvcmQgLnJlY29yZC1lZGl0LW1vZGFsIC5kYXRlLWZpZWxkIC5kYXRlLXBpY2tlciAuY2xyLWlucHV0LWdyb3Vwe2JvcmRlcjowIWltcG9ydGFudH1hcHAtZWRpdC1yZWNvcmQgLnJlY29y'@; put 'ZC1lZGl0LW1vZGFsIC5tb2RhbC1ib2R5e3BhZGRpbmctYm90dG9tOjEwcHh9YXBwLWVkaXQtcmVjb3JkIC5yZWNvcmQtZWRpdC1tb2RhbCBjbHItc2VsZWN0LWNvbnRhaW5lcntib3JkZXI6MXB4IHNvbGlkICM5OTk7Y29sb3I6IzAwMDtib3JkZXItcmFkaXVzOi4xMjVyZW07bWFyZ2luLXJp'@; put 'Z2h0OjVweH1hcHAtZWRpdC1yZWNvcmQgLnJlY29yZC1lZGl0LW1vZGFsIGNsci1zZWxlY3QtY29udGFpbmVyIC5jbHItc2VsZWN0LXdyYXBwZXJ7bWF4LWhlaWdodDp1bnNldH1hcHAtZWRpdC1yZWNvcmQgLnJlY29yZC1lZGl0LW1vZGFsIGNsci1zZWxlY3QtY29udGFpbmVyIC5jbHItc2Vs'@; put 'ZWN0LXdyYXBwZXI6YWZ0ZXJ7dG9wOjE1cHh9YXBwLWVkaXQtcmVjb3JkIC5yZWNvcmQtZWRpdC1tb2RhbCBjbHItc2VsZWN0LWNvbnRhaW5lciBzZWxlY3R7aGVpZ2h0OmF1dG87cGFkZGluZzoxMHB4IDIwcHggMTBweCAxMHB4O2JvcmRlcjowIWltcG9ydGFudH1hcHAtZWRpdC1yZWNvcmQg'@; put 'LnJlY29yZC1lZGl0LW1vZGFsIGNsci1zZWxlY3QtY29udGFpbmVyIHNlbGVjdDpmb2N1c3tiYWNrZ3JvdW5kOjAgMCFpbXBvcnRhbnR9YXBwLWVkaXQtcmVjb3JkIC5yZWNvcmQtZWRpdC1tb2RhbCBjbHItc2VsZWN0LWNvbnRhaW5lciBzZWxlY3Q6aG92ZXJ7YmFja2dyb3VuZDp0cmFuc3Bh'@; put 'cmVudH1hcHAtZWRpdC1yZWNvcmQgLnJlY29yZC1lZGl0LW1vZGFsIGNsci1pbnB1dC1jb250YWluZXJ7d2lkdGg6MjI0cHg7Ym9yZGVyOjFweCBzb2xpZCAjOTk5O2NvbG9yOiMwMDA7cGFkZGluZzpjYWxjKC4yNXJlbSArIDJweCkgLjVyZW07Ym9yZGVyLXJhZGl1czouMTI1cmVtO2ZvbnQt'@; put 'c2l6ZTouNTQxNjY3cmVtO21hcmdpbi1yaWdodDo2cHh9YXBwLWVkaXQtcmVjb3JkIC5yZWNvcmQtZWRpdC1tb2RhbCBjbHItaW5wdXQtY29udGFpbmVyIC5jbHItaW5wdXQtZ3JvdXB7d2lkdGg6MTAwJTtib3JkZXI6MH1hcHAtZWRpdC1yZWNvcmQgLnJlY29yZC1lZGl0LW1vZGFsIGNsci1p'@; put 'bnB1dC1jb250YWluZXIgaW5wdXR7d2lkdGg6MTAwJTtib3JkZXI6MH1hcHAtZWRpdC1yZWNvcmQgLnJlY29yZC1lZGl0LW1vZGFsIGNsci1pbnB1dC1jb250YWluZXIgaW5wdXQ6Zm9jdXN7YmFja2dyb3VuZDpub25lO2JvcmRlcjowIWltcG9ydGFudH1hcHAtZWRpdC1yZWNvcmQgLnJlY29y'@; put 'ZC1lZGl0LW1vZGFsIGNsci1pbnB1dC1jb250YWluZXIgaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sYXBwLWVkaXQtcmVjb3JkIC5yZWNvcmQtZWRpdC1tb2RhbCBjbHItaW5wdXQtY29udGFpbmVyIGlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uey13ZWJraXQtYXBw'@; put 'ZWFyYW5jZTpub25lO21hcmdpbjowfWFwcC1lZGl0LXJlY29yZCAucmVjb3JkLWVkaXQtbW9kYWwgY2xyLWlucHV0LWNvbnRhaW5lci5pbnZhbGlkLWRhdGF7Ym9yZGVyLWNvbG9yOnJlZH1hcHAtZWRpdC1yZWNvcmQgLnJlY29yZC1lZGl0LW1vZGFsIC5tb2RhbC1kaWFsb2d7d2lkdGg6ODB2'@; put 'd31hcHAtZWRpdC1yZWNvcmQgLnJlY29yZC1lZGl0LW1vZGFsIC5jbHItY29udHJvbC1jb250YWluZXJ7d2lkdGg6MTAwJX1hcHAtZWRpdC1yZWNvcmQgLnJlY29yZC1lZGl0LW1vZGFsIC5jbHItY29udHJvbC1jb250YWluZXIgdGV4dGFyZWF7d2lkdGg6MTAwJTtyZXNpemU6bm9uZTtib3Jk'@; put 'ZXItY29sb3I6Izk5OX1hcHAtZWRpdC1yZWNvcmQgLnJlY29yZC1lZGl0LW1vZGFsIC5jbHItY29udHJvbC1jb250YWluZXIgdGV4dGFyZWEuaW52YWxpZC1kYXRhe2JvcmRlci1jb2xvcjpyZWQ7b3V0bGluZTowfWFwcC1lZGl0LXJlY29yZCAucmVjb3JkLWVkaXQtbW9kYWwgLmNsci1jb250'@; put 'cm9sLWNvbnRhaW5lciB0ZXh0YXJlYS5ub3QtY2hhcntmb250LWZhbWlseTpMdWNpZGEgQ29uc29sZSxNb25hY28sbW9ub3NwYWNlfWFwcC1lZGl0LXJlY29yZCAucmVjb3JkLWVkaXQtbW9kYWwgLmdlbmVyYXRlLXJlY29yZC11cmx7cmlnaHQ6NDBweDt0b3A6NDBweDtmb250LXNpemU6MTJw'@; put 'eH1hcHAtZWRpdC1yZWNvcmQgLnJlY29yZC1lZGl0LW1vZGFsIC5nZW5lcmF0ZS1yZWNvcmQtdXJsLWJ1dHRvbntyaWdodDoyNXB4O3RvcDo1cHh9YXBwLWVkaXQtcmVjb3JkIC5yZWNvcmQtZWRpdC1tb2RhbCAubW9kYWwtaGVhZGVyLS1hY2Nlc3NpYmxle3BhZGRpbmc6MCAwIDFyZW19YXBw'@; put 'LWVkaXQtcmVjb3JkIC5yZWNvcmQtZWRpdC1tb2RhbCAubW9kYWwtZm9vdGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59YXBwLWVkaXQtcmVjb3JkIC5yZWNvcmQtZWRpdC1tb2RhbCAubW9kYWwtZm9vdGVyIC5hbGVydHtt'@; put 'YXJnaW46MH1hcHAtZWRpdC1yZWNvcmQgLnByZXYtbmV4dHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfWFwcC1lZGl0LXJlY29yZCAucHJldi1uZXh0IHB7bWFyZ2luOjB9YXBwLWVkaXQtcmVjb3JkIC5wcmV2LW5leHQgYnV0dG9ue21hcmdpbjowIDEwcHh9YXBwLWVkaXQtcmVj'@; put 'b3JkIC5mb2N1c2FibGU6Zm9jdXN7Ym94LXNoYWRvdzowIDAgM3B4ICM1YWEyMjB9YXBwLWVkaXQtcmVjb3JkIC5lbnRyeS1pbnB1dC1sZWZ0LW9mZnNldHtsZWZ0Oi0zMHB4fWFwcC1lZGl0LXJlY29yZCAudmFsaWRhdGlvbi1pbmZvLWFsZXJ0e3dpZHRoOjMxMHB4fWFwcC1hdXRvY29tcGxl'@; put 'dGUgLmlucHV0LXZhbHtib3JkZXI6MHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzk5OTk5OX1hcHAtYXV0b2NvbXBsZXRlIGlucHV0e3dpZHRoOjEwMCU7b3V0bGluZTpub25lfWFwcC1hdXRvY29tcGxldGUgaW5wdXQ6Oi13ZWJraXQtY2FsZW5k'@; put 'YXItcGlja2VyLWluZGljYXRvcnttYXJnaW4tdG9wOi01cHh9YXBwLWF1dG9jb21wbGV0ZSAuYXV0b2NvbXBsZXRlLXdyYXBwZXIgLm92ZXJsYXl7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDt6LWluZGV4OjE1MDB9YXBwLWF1dG9jb21wbGV0ZSAuYXV0b2NvbXBsZXRlLXdyYXBwZXIgLmRhdGFs'@; put 'aXN0e3Bvc2l0aW9uOmZpeGVkO2JveC1zaGFkb3c6MCAzcHggMTBweCAtMXB4ICMwMDAwMDAyYjtvdmVyZmxvdzphdXRvO3otaW5kZXg6MjAwMH1hcHAtYXV0b2NvbXBsZXRlIC5hdXRvY29tcGxldGUtd3JhcHBlciAuZGF0YWxpc3Qgb3B0aW9ue3BhZGRpbmc6NXB4IDEwcHg7Y3Vyc29yOnBv'@; put 'aW50ZXJ9YXBwLWF1dG9jb21wbGV0ZSAuYXV0b2NvbXBsZXRlLXdyYXBwZXIgLmRhdGFsaXN0IG9wdGlvbjpob3ZlcntiYWNrZ3JvdW5kOiMwMDAwMDAwZn1hcHAtYXV0b2NvbXBsZXRlIC5hdXRvY29tcGxldGUtd3JhcHBlciAuZGF0YWxpc3Qgb3B0aW9uLmZvY3VzZWR7YmFja2dyb3VuZDoj'@; put 'MDAwMDAwMGZ9YXBwLWF1dG9jb21wbGV0ZSAuYXV0b2NvbXBsZXRlLXdyYXBwZXIgLmxvYWQtbW9yZXt0ZXh0LWFsaWduOmNlbnRlcjtib3JkZXItdG9wOjFweCBzb2xpZCAjZTZlNmU2fWJvZHlbY2RzLXRoZW1lPWRhcmtdIGFwcC1hdXRvY29tcGxldGUgLmRhdGFsaXN0e2JhY2tncm91bmQ6'@; put 'IzIxMzMzYjtib3JkZXI6MXB4IHNvbGlkICM1NzU3NTd9Ym9keVtjZHMtdGhlbWU9ZGFya10gYXBwLWF1dG9jb21wbGV0ZSBpbnB1dHtjb2xvcjojZmZmfWJvZHlbY2RzLXRoZW1lPWRhcmtdIGFwcC1hdXRvY29tcGxldGUgLmRhdGFsaXN0IG9wdGlvbntjb2xvcjojZmZmfWJvZHlbY2RzLXRo'@; put 'ZW1lPWxpZ2h0XSBhcHAtYXV0b2NvbXBsZXRlIC5kYXRhbGlzdHtiYWNrZ3JvdW5kOiNmZmZ9YXBwLWNvbnRhY3QtbGluayAudW5zZXR7Y29sb3I6dW5zZXR9YXBwLWRhdGFzZXQtaW5mbyAubW9kYWwtYm9keSBjbHItdGFic3ttYXgtaGVpZ2h0Ojcwdmh9YXBwLWRhdGFzZXQtaW5mbyAubW9k'@; put 'YWwtYm9keSAudGFiLWNvbnRlbnR7d2lkdGg6MTAwJTtvdmVyZmxvdzphdXRvfWFwcC1kYXRhc2V0LWluZm8gLm1vZGFsLWJvZHkgLnRhYi1jb250ZW50IC5kYXRhZ3JpZC1vdXRlci13cmFwcGVye3dpZHRoOjEwMCV9YXBwLWRhdGFzZXQtaW5mbyBjbHItbW9kYWwgLm1vZGFsLWRpYWxvZ3to'@; put 'ZWlnaHQ6MTAwJX1hcHAtZGF0YXNldC1pbmZvIC5jbGlja2FibGUtcm93e2N1cnNvcjpwb2ludGVyfWFwcC1kYXRhc2V0LWluZm8gLmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jZWxsOmZvY3Vze291dGxpbmU6bm9uZTtvdXRsaW5lLW9mZnNldDowfWFwcC11cGxvYWQtc3RhdGVye2Rpc3Bs'@; put 'YXk6YmxvY2t9YXBwLXVwbG9hZC1zdGF0ZXIgcHttYXJnaW46MDt0ZXh0LWFsaWduOmNlbnRlcn1hcHAtYXBwcm92ZS1kZXRhaWxzIC5sb2FkZXJ7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7aGVpZ2h0Ojc1dmg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXgtZGlyZWN0aW9u'@; put 'OmNvbHVtbn1hcHAtYXBwcm92ZS1kZXRhaWxzIC5tb2RhbExhcmdle3dpZHRoOjUwcmVtIWltcG9ydGFudH1hcHAtYXBwcm92ZS1kZXRhaWxzIC5hZGRlZFJvd3tib3JkZXI6MXB4IHNvbGlkIHJnYmEoOSw3NywxMTcsLjIpO2JvcmRlci1yYWRpdXM6NXB4fWFwcC1hcHByb3ZlLWRldGFpbHMg'@; put 'LmRlbGV0ZWRSb3d7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDcwLDcxLDcwLC4yKTtib3JkZXItcmFkaXVzOjVweH1hcHAtYXBwcm92ZS1kZXRhaWxzIC51cGRhdGVkUm93e2JvcmRlcjoxcHggc29saWQgcmdiYSg5LDExNyw5LC4yKTtib3JkZXItcmFkaXVzOjVweH1hcHAtYXBwcm92ZS1kZXRh'@; put 'aWxzIC5jaHtiYWNrZ3JvdW5kOiMwMDAwMDAxYTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTA0LDEwMCwwLC40KTtib3JkZXItcmFkaXVzOjVweH1hcHAtYXBwcm92ZS1kZXRhaWxzIC5jaDpob3ZlcntiYWNrZ3JvdW5kOiNmYzg3Nzg2Nn1hcHAtYXBwcm92ZS1kZXRhaWxzIC50b29sdGlwIC50'@; put 'b29sdGlwLWNvbnRlbnQudG9vbHRpcC10b3AtcmlnaHQsYXBwLWFwcHJvdmUtZGV0YWlscyAudG9vbHRpcC50b29sdGlwLXRvcC1yaWdodD4udG9vbHRpcC1jb250ZW50LGFwcC1hcHByb3ZlLWRldGFpbHMgLnRvb2x0aXA+LnRvb2x0aXAtY29udGVudHtmb250LXNpemU6LjU0MTY3cmVtO2Zv'@; put 'bnQtd2VpZ2h0OjQwMDtsZXR0ZXItc3BhY2luZzpub3JtYWw7YmFja2dyb3VuZDojMzE0MzUxO2JvcmRlci1yYWRpdXM6LjEyNXJlbTtjb2xvcjojZjBmMWVjO2xpbmUtaGVpZ2h0Oi43NXJlbTttYXJnaW46MDtwYWRkaW5nOi4zNzVyZW0gLjVyZW07d2lkdGg6MjM1cHg7cG9zaXRpb246YWJz'@; put 'b2x1dGU7aW5zZXQ6YXV0byBhdXRvIDEwMCUgMTJweDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7bWFyZ2luLWJvdHRvbTouNjY2NjdyZW19YXBwLWFwcHJvdmUtZGV0YWlscyAudG9vbHRpcCAudG9vbHRpcC1jb250ZW50LnRvb2x0aXAtdG9wLXJpZ2h0OmJlZm9yZSxhcHAtYXBwcm92'@; put 'ZS1kZXRhaWxzIC50b29sdGlwLnRvb2x0aXAtdG9wLXJpZ2h0Pi50b29sdGlwLWNvbnRlbnQ6YmVmb3JlLGFwcC1hcHByb3ZlLWRldGFpbHMgLnRvb2x0aXA+LnRvb2x0aXAtY29udGVudDpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOi0uMzc1cmVtO2xlZnQ6MDt0b3A6YXV0bzty'@; put 'aWdodDphdXRvO2NvbnRlbnQ6IiI7Ym9yZGVyLWxlZnQ6LjI1cmVtIHNvbGlkICMzMTQzNTE7Ym9yZGVyLXRvcDouMjA4MzNyZW0gc29saWQgIzMxNDM1MTtib3JkZXItcmlnaHQ6LjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206LjIwODMzcmVtIHNvbGlkIHRyYW5zcGFy'@; put 'ZW50fWFwcC1hcHByb3ZlLWRldGFpbHMgLnRhYmxle2JvcmRlcjowcHggc29saWR9YXBwLWFwcHJvdmUtZGV0YWlscyAudG9nZ2xlLXN3aXRjaCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsOmJlZm9yZXtib3JkZXItY29sb3I6IzMxNDM1MTtiYWNrZ3JvdW5kLWNvbG9yOiMz'@; put 'MTQzNTEhaW1wb3J0YW50O3RyYW5zaXRpb246LjE1cyBlYXNlLWluO3RyYW5zaXRpb24tcHJvcGVydHk6Ym9yZGVyLWNvbG9yLGJhY2tncm91bmQtY29sb3J9YXBwLWFwcHJvdmUtZGV0YWlscyAudGFibGVDb250e292ZXJmbG93OmF1dG87bWFyZ2luOjE1cHggMTBweCAxMHB4fWFwcC1hcHBy'@; put 'b3ZlLWRldGFpbHMgLnRhYmxlQ29udCB0ZHt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9YXBwLWFwcHJvdmUtZGV0YWlscyAuYXBwcm92YWxJbmZve2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9YXBwLWFwcHJvdmUtZGV0YWlscyAuYXBwcm92YWxCYWNre2Rpc3BsYXk6Zmxl'@; put 'eDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7YXBwLWFwcHJvdmUtZGV0YWlscyAuYXBwcm92YWxJbmZve2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi10b3A6MTVweH1hcHAtYXBwcm92ZS1k'@; put 'ZXRhaWxzIC5hcHByb3ZhbEJhY2t7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luLWJvdHRvbToxNXB4fWFwcC1hcHByb3ZlLWRldGFpbHMgLmNhcmR7bWFyZ2luLXRvcDowcmVtIWltcG9ydGFudDttaW4taGVpZ2h0OmNhbGMoMTAwdmggKyAtMHB4KSFpbXBvcnRh'@; put 'bnR9YXBwLWFwcHJvdmUtZGV0YWlscyAudGFibGUgdGQubGVmdCxhcHAtYXBwcm92ZS1kZXRhaWxzIC50YWJsZSB0aC5sZWZ0e3RleHQtYWxpZ246bGVmdDt3aWR0aDoxNTBweCFpbXBvcnRhbnQ7ZmxleDowfX1hcHAtYXBwcm92ZS1kZXRhaWxzIC50YWJsZSB0ZC5sZWZ0LGFwcC1hcHByb3Zl'@; put 'LWRldGFpbHMgLnRhYmxlIHRoLmxlZnR7dGV4dC1hbGlnbjpsZWZ0O2ZsZXg6MTt3aWR0aDozMDBweCFpbXBvcnRhbnR9YXBwLWFwcHJvdmUtZGV0YWlscyAudG9vbGx7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDojZTZiM2IzO2NvbG9yOiMzMTQzNTE7dG9wOjA7aGVpZ2h0OjM2cHg7'@; put 'd2lkdGg6MTAwJTtsZWZ0OjA7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4fWFwcC1hcHByb3ZlLWRldGFpbHMgI2FjY2VwdEJ0bixhcHAtYXBwcm92ZS1kZXRhaWxzICNyZWplY3RCdG57d2lkdGg6MTc1cHh9YXBwLWFwcHJvdmUtZGV0YWls'@; put 'cyAjcmVqZWN0QnRue2JhY2tncm91bmQtY29sb3I6I2E2MmYxNiFpbXBvcnRhbnR9YXBwLWFwcHJvdmUtZGV0YWlscyAuZm9ybWF0dGVkLXZhbHVlcy10b2dnbGV7bWluLXdpZHRoOjc1cHh9YXBwLWFwcHJvdmUtZGV0YWlscyBjbHItbW9kYWwgLm1vZGFsLWJvZHktd3JhcHBlcntvdmVyZmxv'@; put 'dzphdXRvfWFwcC1hcHByb3ZlLWRldGFpbHMgLnJvd3Mtbm90aWNle2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luLXJpZ2h0OjEwcHg7Y29sb3I6IzZhNmE2YTtmb250LXNpemU6MTVweH1hcHAtYXBwcm92ZS1kZXRhaWxzIC5yb3dzLW5vdGljZSBjbHItaWNvbnttYXJn'@; put 'aW46MH1ib2R5W2Nkcy10aGVtZT1kYXJrXSBhcHAtYXBwcm92ZS1kZXRhaWxzIHRhYmxlIC51cGRhdGVkUm93e2JhY2tncm91bmQ6IzkzOTcxZX1ib2R5W2Nkcy10aGVtZT1kYXJrXSBhcHAtYXBwcm92ZS1kZXRhaWxzIHRhYmxlIC5hZGRlZFJvd3tiYWNrZ3JvdW5kOiM1Njk5NWZ9Ym9keVtj'@; put 'ZHMtdGhlbWU9ZGFya10gYXBwLWFwcHJvdmUtZGV0YWlscyB0YWJsZSAuZGVsZXRlZFJvd3tiYWNrZ3JvdW5kOiM4YTVhNWF9Ym9keVtjZHMtdGhlbWU9bGlnaHRdIGFwcC1hcHByb3ZlLWRldGFpbHMgdGFibGUgLnVwZGF0ZWRSb3d7YmFja2dyb3VuZDojZmFmZGE4fWJvZHlbY2RzLXRoZW1l'@; put 'PWxpZ2h0XSBhcHAtYXBwcm92ZS1kZXRhaWxzIHRhYmxlIC5hZGRlZFJvd3tiYWNrZ3JvdW5kOiM5MmQwOWF9Ym9keVtjZHMtdGhlbWU9bGlnaHRdIGFwcC1hcHByb3ZlLWRldGFpbHMgdGFibGUgLmRlbGV0ZWRSb3d7YmFja2dyb3VuZDojZTZiM2IzfWFwcC12aXlhLWFwaS1leHBsb3JlciAu'@; put 'YXBpLWNvbGxlY3Rpb24tZHJvcGRvd257bWFyZ2luLWxlZnQ6MTVweDttYXJnaW4tcmlnaHQ6MTVweDttYXJnaW4tYm90dG9tOjEwcHh9YXBwLXZpeWEtYXBpLWV4cGxvcmVyIC5qc29uLWFyZWF7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt3aWR0aDoxMDAlO2hlaWdodDox'@; put 'MDAlO292ZXJmbG93OmF1dG99YXBwLXZpeWEtYXBpLWV4cGxvcmVyIC5qc29uLWFyZWEgYXt0ZXh0LWRlY29yYXRpb246bm9uZX1hcHAtdml5YS1hcGktZXhwbG9yZXIgLmpzb24tYXJlYT5uZ3gtanNvbi12aWV3ZXJ7aGVpZ2h0OjEwMCV9YXBwLXZpeWEtYXBpLWV4cGxvcmVyIC5qc29uLWFy'@; put 'ZWE+bmd4LWpzb24tdmlld2VyPi5uZ3gtanNvbi12aWV3ZXJ7b3ZlcmZsb3c6YXV0b31hcHAtdml5YS1hcGktZXhwbG9yZXIgLmpzb24tdG9nZ2xle3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MTBweDttYXJnaW46MH1hcHAtdml5YS1hcGktZXhwbG9yZXIgLmVuZHBvaW50LWJyZWFkY3J1bXN7'@; put 'bWFyZ2luOjAgMCAwIDEwcHh9YXBwLXZpeWEtYXBpLWV4cGxvcmVyIC5xdWVyeS1wYXJhbXMgaW5wdXR7d2lkdGg6NzBweH1hcHAtbG9hZGluZy1pbmRpY2F0b3IgLmxvYWRpbmctaW5kaWNhdG9ye2xpbmUtaGVpZ2h0OjIuNXJlbTtoZWlnaHQ6Mi41cmVtO2Rpc3BsYXk6ZmxleDthbGlnbi1p'@; put 'dGVtczpjZW50ZXI7aGVpZ2h0OjEwMCU7bWFyZ2luLXJpZ2h0OjEwcHh9YXBwLWxvYWRpbmctaW5kaWNhdG9yIC5sb2FkaW5nLWluZGljYXRvciAuc3Bpbm5lcnt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9YXBwLWxvYWRpbmctaW5kaWNhdG9yIC5sb2FkaW5nLWluZGljYXRvciBjbHItc2lnbnBv'@; put 'c3QtY29udGVudHtsaW5lLWhlaWdodDoyNHB4O2NvbG9yOiM1NjU2NTY7Y3Vyc29yOmF1dG99YXBwLWxvYWRpbmctaW5kaWNhdG9yIC5sb2FkaW5nLWluZGljYXRvciBjbHItc2lnbnBvc3QtY29udGVudCBwe21hcmdpbi10b3A6MTBweDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNw'@; put 'YWNlLWJldHdlZW59YXBwLWxvYWRpbmctaW5kaWNhdG9yIC5sb2FkaW5nLWluZGljYXRvciBjbHItc2lnbnBvc3QtY29udGVudCBwOmZpcnN0LWNoaWxke21hcmdpbi10b3A6MH1hcHAtbG9hZGluZy1pbmRpY2F0b3IgLmxvYWRpbmctaW5kaWNhdG9yIGNsci1zaWducG9zdC1jb250ZW50IHA6'@; put 'bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9YXBwLWxvYWRpbmctaW5kaWNhdG9yIC5sb2FkaW5nLWluZGljYXRvciBjbHItc2lnbnBvc3QtY29udGVudCBwIHNwYW57bWFyZ2luLWxlZnQ6MTBweH1hcHAtbG9hZGluZy1pbmRpY2F0b3IgLmxvYWRpbmctaW5kaWNhdG9yIGNsci1zaWducG9z'@; put 'dC1jb250ZW50IHAgc3Bhbi5ydW5uaW5ne2NvbG9yOiNlOWJmMDR9YXBwLWxvYWRpbmctaW5kaWNhdG9yIC5sb2FkaW5nLWluZGljYXRvciBjbHItc2lnbnBvc3QtY29udGVudCBwIHNwYW4uc3VjY2Vzc3tjb2xvcjojNjBiNTE1fWFwcC1sb2FkaW5nLWluZGljYXRvciAubG9hZGluZy1pbmRp'@; put 'Y2F0b3IgY2xyLXNpZ25wb3N0LWNvbnRlbnQgcCBzcGFuLmZhaWx7Y29sb3I6I2M5MjEwMH1hcHAtZXhjZWwtcGFzc3dvcmQtbW9kYWwgLmV4Y2VsLXBhc3N3b3JkLXJvb3QgLm1vZGFse3otaW5kZXg6MTA2MH1hcHAtZXhjZWwtcGFzc3dvcmQtbW9kYWwgLm1vZGFsLWZvb3RlcntkaXNwbGF5'@; put 'OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufWFwcC1leGNlbC1wYXNzd29yZC1tb2RhbCAubW9kYWwtZm9vdGVyIC5idXR0b25ze2Rpc3BsYXk6ZmxleDtnYXA6NXB4fWFwcC1zdGFnZSAucmVqZWN0ZWR7Y29sb3I6IzkyMjAxYTtmb250LXdl'@; put 'aWdodDo3MDB9YXBwLXN0YWdlIC5hY2NlcHRlZHtjb2xvcjojMTA1YzI2O2ZvbnQtd2VpZ2h0OjcwMH1hcHAtc3RhZ2UgLmJhc2VUYWJsZUxpbmt7Y3Vyc29yOnBvaW50ZXI7bWFyZ2luLXRvcDoxMHB4O2NvbG9yOiMwMDdjYmJ9YXBwLXN0YWdlIC5odEZvY3VzQ2F0Y2hlcntwb3NpdGlvbjph'@; put 'YnNvbHV0ZSFpbXBvcnRhbnQ7bGVmdDotOTk5OXB4IWltcG9ydGFudDt3aWR0aDoxcHghaW1wb3J0YW50O2hlaWdodDoxcHghaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnQ7Y2xpcDpyZWN0KDAsMCwwLDApIWltcG9ydGFudDtib3JkZXI6MCFpbXBvcnRhbnQ7bWFyZ2luOi0x'@; put 'cHghaW1wb3J0YW50O3BhZGRpbmc6MCFpbXBvcnRhbnR9YXBwLXN0YWdlIC5odEZvY3VzQ2F0Y2hlcjpmb2N1c3tvdXRsaW5lOm5vbmUhaW1wb3J0YW50fWJvZHlbY2RzLXRoZW1lPWRhcmtdIGFwcC1zdGFnZSAuYmFzZVRhYmxlTGlua3tjb2xvcjojNGVjMGZmfWFwcC1zb2Z0LXNlbGVjdCAu'@; put 'aW5wdXQtdmFse2JvcmRlcjowcHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjOTk5OTk5fWFwcC1zb2Z0LXNlbGVjdCBpbnB1dHt3aWR0aDoxMDAlO291dGxpbmU6bm9uZX1hcHAtc29mdC1zZWxlY3QgaW5wdXQ6Oi13ZWJraXQtY2FsZW5kYXItcGlj'@; put 'a2VyLWluZGljYXRvcnttYXJnaW4tdG9wOi01cHh9YXBwLXNvZnQtc2VsZWN0IGNsci1kYXRlLWNvbnRhaW5lcntwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW4tdG9wOjJweCFpbXBvcnRhbnR9YXBwLXNvZnQtc2VsZWN0IGNsci1kYXRlLWNvbnRhaW5lciAuY2xyLWlucHV0LWdyb3VwLWljb24t'@; put 'YWN0aW9ue3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0Oi01cHh9YXBwLXNvZnQtc2VsZWN0IGNsci1kYXRlLWNvbnRhaW5lciBpbnB1dDo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9ye21hcmdpbi1yaWdodDoyMHB4O21hcmdpbi10b3A6LTVweH1hcHAtc29mdC1zZWxlY3QgbGFi'@; put 'ZWwuc2Vjb25kTGFiZWxBY3RpdmUgc3Bhbjpub3QoLnZhbHVlLXR5cGUtc2VsZWN0ZWQpe3RleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7Y3Vyc29yOnBvaW50ZXI7b3BhY2l0eTouNn1hcHAtc2FzanMtY29uZmlndXJhdG9yIC5jbHItY29udHJvbC1jb250YWluZXJ7d2lkdGg6NTB2d31h'@; put 'cHAtc2FzanMtY29uZmlndXJhdG9yIC5jbHItaW5wdXQtd3JhcHBlcnt3aWR0aDoxMDAlfWFwcC1zYXNqcy1jb25maWd1cmF0b3IgLmNsci1pbnB1dC13cmFwcGVyIGlucHV0e3dpZHRoOjEwMCV9YXBwLXNhc2pzLWNvbmZpZ3VyYXRvciAudGhpblByb2dyZXNze2xlZnQ6MDtyaWdodDowO3dp'@; put 'ZHRoOnVuc2V0O2hlaWdodDoxcHg7bWFyZ2luLXRvcDowIWltcG9ydGFudH1hcHAtc2FzanMtY29uZmlndXJhdG9yIC50aGluUHJvZ3Jlc3M6YWZ0ZXJ7dG9wOjB9YXBwLWhlYWRlci1hY3Rpb25ze2Rpc3BsYXk6Y29udGVudHN9YXBwLWhlYWRlci1hY3Rpb25zIC5jb3B5UmlnaHR7bWFyZ2lu'@; put 'LXRvcDoxMHB4fWFwcC1oZWFkZXItYWN0aW9ucyAuY29weVJpZ2h0IHNwYW57d29yZC1icmVhazpicmVhay13b3JkO3doaXRlLXNwYWNlOnByZS13cmFwO3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpjZW50ZXI7bGluZS1oZWlnaHQ6MS41fWFwcC1oZWFkZXItYWN0aW9ucyAudXNlci1uYXYtdG9n'@; put 'Z2xle3BhZGRpbmc6MCAxMHB4IWltcG9ydGFudDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2hlaWdodDoxMDAlfWFwcC1oZWFkZXItYWN0aW9ucyAuYXBwLW5hdi1kcm9wZG93bntwYWRkaW5nLXJpZ2h0OjE1cHg7bGluZS1oZWlnaHQ6M3JlbTtoZWlnaHQ6M3JlbX1hcHAtaGVh'@; put 'ZGVyLWFjdGlvbnMgLmFwcC1uYXYtZHJvcGRvd24+YnV0dG9uLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojZmFmYWZhO3Bvc2l0aW9uOnJlbGF0aXZlfWFwcC1oZWFkZXItYWN0aW9ucyAuYXBwLW5hdi1kcm9wZG93bj5idXR0b24uZHJvcGRvd24tdG9nZ2xlOmFmdGVye2NvbnRlbnQ6IiI7YmFj'@; put 'a2dyb3VuZC1jb2xvcjojZmFmYWZhO29wYWNpdHk6LjE1O2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7aGVpZ2h0OjQwcHg7dG9wOjEwcHh9YXBwLWhlYWRlci1hY3Rpb25zIC5hcHAtbmF2LWRyb3Bkb3duPmJ1dHRvbi5kcm9wZG93bi10b2dnbGUgLmJhZGdlLmhpZGRlbnt2'@; put 'aXNpYmlsaXR5OmhpZGRlbn1hcHAtaGVhZGVyLWFjdGlvbnMgLmFwcC1uYXYtZHJvcGRvd24gY2xyLWRyb3Bkb3duLW1lbnV7Y29sb3I6IzU2NTY1NjtwYWRkaW5nLWJvdHRvbTowfWFwcC1oZWFkZXItYWN0aW9ucyAuYXBwLW5hdi1kcm9wZG93biBjbHItZHJvcGRvd24tbWVudSAuc2VwYXJh'@; put 'dG9ye21hcmdpbjoxMHB4IDA7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgZ3JheX1hcHAtaGVhZGVyLWFjdGlvbnMgLmFwcC1uYXYtZHJvcGRvd24gY2xyLWRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdzthbGlnbi1pdGVtczpjZW50'@; put 'ZXI7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjQ1cHg7bGluZS1oZWlnaHQ6NDBweH1hcHAtaGVhZGVyLWFjdGlvbnMgLmFwcC1uYXYtZHJvcGRvd24gY2xyLWRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW0gLmJhZGdle3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxNXB4O3JpZ2h0OjI2cHg7'@; put 'bWFyZ2luLXJpZ2h0OjB9YXBwLWhlYWRlci1hY3Rpb25zIC5hcHAtbmF2LWRyb3Bkb3duIGNsci1kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtLmRlYnVnLXN3aXRjaC1pdGVte3BhZGRpbmc6MH1hcHAtaGVhZGVyLWFjdGlvbnMgLmFwcC1uYXYtZHJvcGRvd24gY2xyLWRyb3Bkb3duLW1l'@; put 'bnUgLmRyb3Bkb3duLWl0ZW0gLnRvZ2dsZS1zd2l0Y2h7bWFyZ2luOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfWFwcC1oZWFkZXItYWN0aW9ucyAuYXBwLW5hdi1kcm9wZG93biBjbHItZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbSAuY2xyLWxv'@; put 'Z291dHtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoyMHB4O3RvcDoxNXB4fWFwcC1oZWFkZXItYWN0aW9ucyAuYXBwLW5hdi1kcm9wZG93biBjbHItZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbSAuY2xyLWNvbnRyb2wtY29udGFpbmVye3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9YXBwLWhl'@; put 'YWRlci1hY3Rpb25zIC5hcHAtbmF2LWRyb3Bkb3duIGNsci1kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtIGNsci10b2dnbGUtd3JhcHBlcnt3aWR0aDoxMDAlO21hcmdpbjowO2hlaWdodDoxMDAlO3BhZGRpbmc6MTBweCAyMHB4fWFwcC1oZWFkZXItYWN0aW9ucyAuYXBwLW5hdi1kcm9w'@; put 'ZG93biBjbHItZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbSBpbnB1dHtpbnNldDowO2N1cnNvcjpwb2ludGVyfWFwcC1oZWFkZXItYWN0aW9ucyAuYXBwLW5hdi1kcm9wZG93biBjbHItZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbSAuY2xyLXRvZ2dsZS13cmFwcGVyIGlucHV0W3R5'@; put 'cGU9Y2hlY2tib3hdK2xhYmVsOmFmdGVye3RyYW5zaXRpb246bm9uZSFpbXBvcnRhbnR9YXBwLWhlYWRlci1hY3Rpb25zIC5kZWJ1Zy10b2dnbGUtbGFiZWx7cGFkZGluZy1sZWZ0OjQycHh9QG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KXthcHAtaGVhZGVyLWFjdGlvbnMgLnNpZGVuYXYtY29u'@; put 'dGVudCBhLm5hdi1saW5rLmFjdGl2ZXtjb2xvcjppbmhlcml0O3BhZGRpbmc6MTVweDtiYWNrZ3JvdW5kOiM1NjU2NTZ9fWFwcC1oZWFkZXItYWN0aW9ucyAubmF2LWxpbmsuZC1ibG9jayBzcGFuLmJhZGdle3Bvc2l0aW9uOmFic29sdXRlfWFwcC1oZWFkZXItYWN0aW9ucyAuYXZhdGFyLWlt'@; put 'Z3t3aWR0aDo0MHB4O2hlaWdodDo0MHB4O21hcmdpbi1sZWZ0OjEwcHg7Ym9yZGVyLXJhZGl1czo1MHB4fS5jbHItaW5wdXQtd3JhcHBlci5zbWFsbC1tdCAuY2xyLWZvcm0tY29udHJvbHttYXJnaW4tdG9wOjVweCFpbXBvcnRhbnR9Ym9keVtjZHMtdGhlbWU9ZGFya117c2Nyb2xsYmFyLXdp'@; put 'ZHRoOnRoaW47c2Nyb2xsYmFyLWNvbG9yOiMzYjUyNjggIzI3Mzg0OX1ib2R5W2Nkcy10aGVtZT1kYXJrXTo6LXdlYmtpdC1zY3JvbGxiYXJ7d2lkdGg6MTFweH1ib2R5W2Nkcy10aGVtZT1kYXJrXTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZDojM2I1MjY4fWJvZHlbY2Rz'@; put 'LXRoZW1lPWRhcmtdOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kLWNvbG9yOiMyNzM4NDk7Ym9yZGVyLXJhZGl1czo2cHg7Ym9yZGVyOjNweCBzb2xpZCAjM2I1MjY4fWJvZHlbY2RzLXRoZW1lPWRhcmtdIGNsci1pY29uLmlzLWhpZ2hsaWdodHtmaWxsOiM0ZWMwZmZ9Ym9k'@; put 'eSxodG1se2ZvbnQtd2VpZ2h0OjQwMCFpbXBvcnRhbnQ7cGFkZGluZzowO21hcmdpbjowfWJvZHkuc2hvdWxkLWxvZ2luIGNsci1tb2RhbCxodG1sLnNob3VsZC1sb2dpbiBjbHItbW9kYWx7ZGlzcGxheTpub25lIWltcG9ydGFudH1ib2R5W2Nkcy10aGVtZT1kYXJrXSBidXR0b246Zm9jdXN7'@; put 'b3V0bGluZTpub25lfWJvZHlbY2RzLXRoZW1lPWRhcmtdIGJ1dHRvbjpmb2N1cy12aXNpYmxle291dGxpbmU6MXB4IHNvbGlkIHJnYigyNTUsMjU1LDI1NSl9Ym9keVtjZHMtdGhlbWU9bGlnaHRdIGJ1dHRvbjpmb2N1c3tvdXRsaW5lOm5vbmV9Ym9keVtjZHMtdGhlbWU9bGlnaHRdIGJ1dHRv'@; put 'bjpmb2N1cy12aXNpYmxle291dGxpbmU6MXB4IHNvbGlkIHJnYigwLDAsMCl9LnNlbGVjdC10YWJsZS1pY29uLC5zZWxlY3QtbGlicmFyeS1pY29ue3dpZHRoOjgwcHh9W2Nkcy10ZXh0PWxhYmVsXXtjb2xvcjp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktY29sb3ItMjAwKX1bY2RzLXRl'@; put 'eHQ9bGFiZWxMaW5rXXtsaW5lLWhlaWdodDoxLjghaW1wb3J0YW50fVtjZHMtdGV4dD1jYXB0aW9uX2NsZWFuXXtmb250LXNpemU6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWNhcHRpb24tZm9udC1zaXplKTtmb250LXdlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktY2Fw'@; put 'dGlvbi1mb250LXdlaWdodCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWNhcHRpb24tbGluZS1oZWlnaHQpO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1jYXB0aW9uLWxldHRlci1zcGFjaW5nKX1bY2RzLXRleHQ9Y2FwdGlvbl9j'@; put 'bGVhbl06YWZ0ZXIsW2Nkcy10ZXh0PWNhcHRpb25fY2xlYW5dOmJlZm9yZXtkaXNwbGF5Om5vbmV9Lm1vZGFsIC5tb2RhbC1ib2R5e3BhZGRpbmc6MTVweH0ubW9kYWwgLm1vZGFsLWZvb3RlcntwYWRkaW5nOjAgMTVweCAxNXB4fS5sb2ctd3JhcHBlcnttaW4taGVpZ2h0OjUwcHg7cGFkZGlu'@; put 'ZzoxMHB4O21hcmdpbi10b3A6MTBweDt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtib3JkZXItcmFkaXVzOjNweDtib3JkZXI6MXB4IHNvbGlkICNlMmUyZTI7aGVpZ2h0OjQ4dmg7b3ZlcmZsb3c6YXV0b30uc2xpZGVye3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjMyMHB4O21hcmdpbi1sZWZ0Ojc1'@; put 'cHg7bWFyZ2luLXRvcDo3MHB4O2hlaWdodDo1cHg7b3ZlcmZsb3cteDpoaWRkZW59LmxpbmV7cG9zaXRpb246YWJzb2x1dGU7b3BhY2l0eTouNDtiYWNrZ3JvdW5kOiM3M2Q1NDQ7d2lkdGg6MTUwJTtoZWlnaHQ6NXB4fS5zdWJsaW5le3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQ6Izcz'@; put 'ZDU0NDtoZWlnaHQ6NXB4fS5pbmN7YW5pbWF0aW9uOmluY3JlYXNlIDJzIGluZmluaXRlfS5kZWN7YW5pbWF0aW9uOmRlY3JlYXNlIDJzIC41cyBpbmZpbml0ZX1Aa2V5ZnJhbWVzIGluY3JlYXNlezAle2xlZnQ6LTUlO3dpZHRoOjUlfXRve2xlZnQ6MTMwJTt3aWR0aDoxMDAlfX1Aa2V5ZnJh'@; put 'bWVzIGRlY3JlYXNlezAle2xlZnQ6LTgwJTt3aWR0aDo4MCV9dG97bGVmdDoxMTAlO3dpZHRoOjEwJX19LmFwcC1sb2FkaW5ne2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6MTAwdmg7YmFja2dyb3VuZDojMzE0MzUxO2ZsZXgt'@; put 'ZGlyZWN0aW9uOmNvbHVtbjt6LWluZGV4OjIwMDA7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MH0uc2VsZWN0LW5vbmV7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LmgtYXV0b3toZWlnaHQ6YXV0b30uaC11bnNldC1pe2hlaWdodDp1bnNldCFpbXBvcnRhbnR9Lm1p'@; put 'bi1oLTUwdmh7bWluLWhlaWdodDo1MHZofS5oLTI0dmgsLmgtMjV2aHtoZWlnaHQ6MjV2aH0uaC03MHZoe2hlaWdodDo3MHZofS5oLTgwdmh7aGVpZ2h0Ojgwdmh9LmgtMTAwe2hlaWdodDoxMDAlfS53LTUwdnd7d2lkdGg6NTB2d30udy0xMDB7d2lkdGg6MTAwJX0udy0xMDAtaXt3aWR0aDox'@; put 'MDAlIWltcG9ydGFudH0udy00MHt3aWR0aDo0MCV9Lm1pbi13LTB7bWluLXdpZHRoOjBweH0ubXgtNXttYXJnaW46MCA1cHh9Lm15LTV7bWFyZ2luOjVweCAwfS5teS0xNXttYXJnaW46MTVweCAwfS5teS0xMC1teC1hdXRve21hcmdpbjoxMHB4IGF1dG99Lm0tMHttYXJnaW46MCFpbXBvcnRh'@; put 'bnR9Lm0tMTB7bWFyZ2luOjEwcHh9Lm10LTB7bWFyZ2luLXRvcDowIWltcG9ydGFudH0ubXQtMy1uZWdhdGl2ZXttYXJnaW4tdG9wOi0zcHh9Lm10LTV7bWFyZ2luLXRvcDo1cHh9Lm10LTUtaXttYXJnaW4tdG9wOjVweCFpbXBvcnRhbnR9Lm10LTJ7bWFyZ2luLXRvcDoycHh9Lm10LTItaXtt'@; put 'YXJnaW4tdG9wOjJweCFpbXBvcnRhbnR9Lm10LTEwe21hcmdpbi10b3A6MTBweH0ubXQtMTV7bWFyZ2luLXRvcDoxNXB4fS5tdC0yMHttYXJnaW4tdG9wOjIwcHh9Lm1sLTB7bWFyZ2luLWxlZnQ6MH0ubWwtM3ttYXJnaW4tbGVmdDozcHh9Lm1sLTV7bWFyZ2luLWxlZnQ6NXB4fS5tbC01LWl7'@; put 'bWFyZ2luLWxlZnQ6NXB4IWltcG9ydGFudH0ubWwtMTB7bWFyZ2luLWxlZnQ6MTBweH0ubWwtMTV7bWFyZ2luLWxlZnQ6MTVweH0ubWwtMjB7bWFyZ2luLWxlZnQ6MjBweH0ubWwtMjAtaXttYXJnaW4tbGVmdDoyMHB4IWltcG9ydGFudH0ubXItMHttYXJnaW4tcmlnaHQ6MH0ubXItNXttYXJn'@; put 'aW4tcmlnaHQ6NXB4fS5tci01aXttYXJnaW4tcmlnaHQ6NXB4IWltcG9ydGFudH0ubXItMTB7bWFyZ2luLXJpZ2h0OjEwcHh9Lm1yLTEye21hcmdpbi1yaWdodDoxMnB4fS5tci0yMHttYXJnaW4tcmlnaHQ6MjBweH0ubWItMHttYXJnaW4tYm90dG9tOjB9Lm1iLTBpe21hcmdpbi1ib3R0b206'@; put 'MCFpbXBvcnRhbnR9Lm1iLTV7bWFyZ2luLWJvdHRvbTo1cHh9Lm1iLTEwe21hcmdpbi1ib3R0b206MTBweH0ubWItMTAtaXttYXJnaW4tYm90dG9tOjEwcHghaW1wb3J0YW50fS5tYi0xNXttYXJnaW4tYm90dG9tOjE1cHh9Lm1iLTIwe21hcmdpbi1ib3R0b206MjBweH0ubWItMzB7bWFyZ2lu'@; put 'LWJvdHRvbTozMHB4fS5wLTB7cGFkZGluZzowfS5wLTEwe3BhZGRpbmc6MTBweH0ucGItMHtwYWRkaW5nLWJvdHRvbTowfS5wYi0xMHtwYWRkaW5nLWJvdHRvbToxMHB4fS5weS01e3BhZGRpbmc6NXB4IDB9LnB5LTEwe3BhZGRpbmc6MTBweCAwfS5iYWNrZ3JvdW5kLXRyYW5zcGFyZW50e2Jh'@; put 'Y2tncm91bmQ6dHJhbnNwYXJlbnR9LmJhY2tncm91bmQtdHJhbnNwYXJlbnQtaXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50IWltcG9ydGFudH1ib2R5W2Nkcy10aGVtZT1saWdodF0gLmNvbG9yLWdyYXl7Y29sb3I6IzVhNWE1YX1ib2R5W2Nkcy10aGVtZT1saWdodF0gLmNvbG9yLWRhcmstZ3Jh'@; put 'eXtjb2xvcjojNDk1OTY3fWJvZHlbY2RzLXRoZW1lPWxpZ2h0XSAuY29sb3ItZGFya2VyLWdyYXl7Y29sb3I6IzMxNDM1MX0uY29sb3Itd2hpdGV7Y29sb3I6I2ZmZn0uY29sb3Itd2hpdGUtaXtjb2xvcjojZmZmIWltcG9ydGFudH0uY29sb3ItZ3JlZW57Y29sb3I6IzRiOWU0Yn0uY29sb3It'@; put 'ZGMtZ3JlZW57Y29sb3I6IzgxYjQ0MH0uY29sb3ItcmVke2NvbG9yOiNlNDU0NTR9LmNvbG9yLW9yYW5nZXtjb2xvcjojZTY3ZTIyfS5jb2xvci1ibHVle2NvbG9yOiMzZjhjYzN9LmNvbG9yLXllbGxvd3tjb2xvcjojZjFjNDBmfS5jdXJzb3ItcG9pbnRlcntjdXJzb3I6cG9pbnRlcn0uY3Vy'@; put 'c29yLWRlZnVhbHR7Y3Vyc29yOmRlZmF1bHR9LmN1cnNvci1kZWZhdWx0LWl7Y3Vyc29yOmRlZmF1bHQhaW1wb3J0YW50fS5iYWNrZ3JvdW5kLXRyYW5zcGFyZW50e2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LnBvaW50ZXItZXZlbnRzLW5vbmV7cG9pbnRlci1ldmVudHM6bm9uZX0u'@; put 'd2hpdGVzcGFjZS1ub3dyYXB7d2hpdGUtc3BhY2U6bm93cmFwfS50ZXh0LWNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlcn0uZm9udC1zaXplLTE1e2ZvbnQtc2l6ZToxNXB4fS5mb250LXNpemUtMTh7Zm9udC1zaXplOjE4cHh9LmZvbnQtYm9sZHtmb250LXdlaWdodDo3MDB9LmZvbnQtYm9sZC1p'@; put 'e2ZvbnQtd2VpZ2h0OjcwMCFpbXBvcnRhbnR9LmZvbnQtd2VpZ2h0LTMwMHtmb250LXdlaWdodDozMDB9LmZvbnQtd2VpZ2h0LTcwMHtmb250LXdlaWdodDo3MDB9LndvcmQtYnJlYWt7d29yZC1icmVhazpicmVhay13b3JkfS53b3JkLWJyZWFrLWFsbHt3b3JkLWJyZWFrOmJyZWFrLWFsbH0u'@; put 'cG9zaXRpb24tcmVsYXRpdmV7cG9zaXRpb246cmVsYXRpdmV9LnBvc2l0aW9uLWFic29sdXRle3Bvc2l0aW9uOmFic29sdXRlfS5kLW5vbmV7ZGlzcGxheTpub25lfS5kLWJsb2Nre2Rpc3BsYXk6YmxvY2t9LmQtaW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5kLWZsZXh7ZGlz'@; put 'cGxheTpmbGV4fS5kLWNvbnRlbnRze2Rpc3BsYXk6Y29udGVudHN9LmZsZXgtdW5zZXR7ZmxleDp1bnNldH0uYWxpZ24tc2VsZi1lbmR7YWxpZ24tc2VsZjpmbGV4LWVuZH0uYWxpZ24tc2VsZi1zdGFydHthbGlnbi1zZWxmOmZsZXgtc3RhcnR9LmFsaWduLWl0ZW1zLWNlbnRlcnthbGlnbi1p'@; put 'dGVtczpjZW50ZXJ9Lmp1c3RpZnktY29udGVudC1jZW50ZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uanVzdGlmeS1jb250ZW50LWNlbnRlci1pe2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQtc3RhcnR7anVzdGlmeS1jb250ZW50OmZsZXgtc3Rh'@; put 'cnR9Lmp1c3RpZnktY29udGVudC1lbmR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5qdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0uanVzdGlmeS1jb250ZW50LWFyb3VuZHtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kfS5mbGV4LWNv'@; put 'bHVtbntmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmNsci1nYXAtNXtnYXA6NXB4fS5jbHItZ2FwLTB7Z2FwOjB9Lm92ZXJmbG93LWF1dG97b3ZlcmZsb3c6YXV0b30uei1pbmRleC1oaWdoZXN0e3otaW5kZXg6MTAwMDAwMDB9LnZlcnRpY2FsLWFsaWduLW1pZGRsZXt2ZXJ0aWNhbC1hbGlnbjpt'@; put 'aWRkbGV9Lmljb24tZGMtZmlsbHtmaWxsOiM4MWI0NDB9LmRhdGFncmlkLWN1c3RvbS1mb290ZXIgLmRhdGFncmlkLW91dGVyLXdyYXBwZXIsLnRleHQtYXJlYS1mdWxsLXdpZHRoIC5jbHItY29udHJvbC1jb250YWluZXIsLnRleHQtYXJlYS1mdWxsLXdpZHRoIC5jbHItY29udHJvbC1jb250'@; put 'YWluZXIgdGV4dGFyZWF7d2lkdGg6MTAwJX0udGV4dC1hcmVhLWZ1bGwtd2lkdGggY2xyLXRleHRhcmVhLWNvbnRhaW5lcnttYXJnaW46MCFpbXBvcnRhbnR9LnRleHQtYXJlYS1mdWxsLXdpZHRoIC5jbHItdGV4dGFyZWEtd3JhcHBlcnttYXJnaW46MCFpbXBvcnRhbnR9LnByb2dyZXNTdGF0'@; put 'aWN7bWFyZ2luLXRvcDotNnB4IWltcG9ydGFudDtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7ei1pbmRleDoxMDAwMCFpbXBvcnRhbnR9LnByb2dyZXNzLC5wcm9ncmVzcy1zdGF0aWN7YmFja2dyb3VuZC1jb2xvcjojZjVmNmZlO2JvcmRlci1yYWRpdXM6MDtmb250LXNpemU6aW5oZXJp'@; put 'dDtoZWlnaHQ6NnB4O21hcmdpbjowO21heC1oZWlnaHQ6LjU4MzMzM3JlbTttaW4taGVpZ2h0Oi4xNjY2NjdyZW07b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6YmxvY2s7d2lkdGg6Y2FsYygxMDAlIC0gNjNweCl9LnByb2dyZXNzLmxvb3A6YWZ0ZXJ7YW5pbWF0aW9uOmNsci1wcm9ncmVzcy1s'@; put 'b29wZXIgMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZTtjb250ZW50OiIgIjt0b3A6LjE2NjY2N3JlbTtib3R0b206MDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jaztiYWNrZ3JvdW5kLWNvbG9yOiM2MGI1MTU7d2lkdGg6NzUlfS5iYWRnZS13YXJuaW5ne2NvbG9yOiNm'@; put 'ZmYhaW1wb3J0YW50fS5jb250ZW50LWNvbnRhaW5lciAuY29udGVudC1hcmVhIC5jYXJkLWhlYWRlciBoM3ttYXJnaW4tdG9wOjEwcHh9Lm1vZGFsLWhlYWRlci0tYWNjZXNzaWJsZXtwYWRkaW5nOjE1cHggMTVweCAwfS5tb2RhbC1oZWFkZXItLWFjY2Vzc2libGUgLmNsb3NlIGNsci1pY29u'@; put 'e2Rpc3BsYXk6bm9uZX0uc2hvdy1jbG9zZSAubW9kYWwtaGVhZGVyLS1hY2Nlc3NpYmxlIC5jbG9zZSBjbHItaWNvbntkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTE4cHg7cmlnaHQ6LTEwcHh9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXJ7YmFja2dy'@; put 'b3VuZDojZDk0YjJlO2NvbG9yOiNmZmY7Ym9yZGVyOm5vbmV9LmNhcmQtaGVhZGVye2ZvbnQtd2VpZ2h0OjMwMH0uc2VsZWN0IHNlbGVjdDpmb2N1c3tib3JkZXItYm90dG9tOjFweCBzb2xpZCAjNDk1OTY3O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyx0cmFuc3BhcmVudCA5'@; put 'NSUsIzQ5NWE2NyAwKSBuby1yZXBlYXR9LmNsci10cmVlbm9kZS1jaGlsZHJlbnttYXJnaW4tbGVmdDouMnJlbSFpbXBvcnRhbnR9LnRhYmxlLWFjdGl2ZTpmb2N1c3tiYWNrZ3JvdW5kOiNkOGUzZTl9Y2xyLXNlbGVjdC1jb250YWluZXIgLmNsci1jb250cm9sLWNvbnRhaW5lcixjbHItc2Vs'@; put 'ZWN0LWNvbnRhaW5lciAuY2xyLWNvbnRyb2wtY29udGFpbmVyIC5jbHItc2VsZWN0LXdyYXBwZXIsY2xyLXNlbGVjdC1jb250YWluZXIgc2VsZWN0e3dpZHRoOjEwMCV9dGJvZHl7Zm9udC13ZWlnaHQ6NDAwfWgzLGg0e2NvbG9yOiM1ODU4NTg7Zm9udC13ZWlnaHQ6NDAwO2xldHRlci1zcGFj'@; put 'aW5nOm5vcm1hbDtsaW5lLWhlaWdodDoxcmVtO21hcmdpbi10b3A6MXJlbTttYXJnaW4tYm90dG9tOjB9aDEsaDJ7Y29sb3I6IzU4NTg1ODtmb250LXdlaWdodDo0MDA7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjJyZW07bWFyZ2luLXRvcDoxcmVtO21hcmdpbi1ib3R0b206'@; put 'MH1jbHItaWNvbi5pcy1pbmZve2ZpbGw6IzgwYjQ0MX0uZGF0YWdyaWQtaG9zdCwuZGF0YWdyaWQtb3ZlcmxheS13cmFwcGVye2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWJveCFpbXBvcnRhbnR9LmJ0biAuY2xyLWxvYWRpbmctYnRuLWNvbnRlbnR7anVzdGlmeS1jb250'@; put 'ZW50OmNlbnRlcn0uYnRuLmJ0bi1kYW5nZXIsLmJ0bi5idG4td2FybmluZ3tib3JkZXItY29sb3I6I2VmNGYyZTtiYWNrZ3JvdW5kLWNvbG9yOiNkOTRiMmU7Y29sb3I6I2ZmZn0uYnRuLmJ0bi1zbTpoYXMoY2xyLWljb24pe2xpbmUtaGVpZ2h0OjJ9LmQtbm9uZXtkaXNwbGF5Om5vbmUhaW1w'@; put 'b3J0YW50fS5kLWJsb2Nre2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5jbHItZmxleC0xe2ZsZXg6MX0uY2xyLWZsZXgtY29sdW1ue2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uY2xyLWZsZXgtcm93e2ZsZXgtZGlyZWN0aW9uOnJvd30uYm9yZGVyLTB7Ym9yZGVyOjB9LmJveC1zaGFkb3ctbm9u'@; put 'ZXtib3gtc2hhZG93Om5vbmV9LmJveC1zaGFkb3ctbm9uZS1pe2JveC1zaGFkb3c6bm9uZSFpbXBvcnRhbnR9Lmh0Q3VzdG9tSGlkZGVue2Rpc3BsYXk6bm9uZX1ib2R5W2Nkcy10aGVtZT1kYXJrXSAuaHREYXJre2JhY2tncm91bmQ6Izg4ODtjb2xvcjojZmZmfWJvZHlbY2RzLXRoZW1lPWRh'@; put 'cmtdIC5oYW5kc29udGFibGUgLmh0RGFya3tiYWNrZ3JvdW5kOiMzYzU2NjI7Y29sb3I6I2VlZX1ib2R5W2Nkcy10aGVtZT1kYXJrXSAuaGFuZHNvbnRhYmxlIC5kYXJrVEg6bm90KC5wcmltYXJ5S2V5SGVhZGVyU3R5bGUpe2JhY2tncm91bmQ6IzQ4N2Q5Njtjb2xvcjojZWVlfWJvZHlbY2Rz'@; put 'LXRoZW1lPWRhcmtdIC5oYW5kc29udGFibGUgLmRhcmtUSC5odF9faGlnaGxpZ2h0e2JhY2tncm91bmQ6IzNiNmI4MX0uaGFuZHNvbnRhYmxlIC5odEF1dG9jb21wbGV0ZUFycm93e2NvbG9yOiM4MjgyODJ9LmhhbmRzb250YWJsZS5saXN0Ym94e2JveC1zaGFkb3c6MCA0cHggMjBweCAjMDAw'@; put 'MDAwNzB9LmhhbmRzb250YWJsZSB0ZC5odEludmFsaWQsLmhhbmRzb250YWJsZSB0ZC5kYy1pbnZhbGlkLWNlbGx7YmFja2dyb3VuZDojZTYyNzAwYWQhaW1wb3J0YW50O2JvcmRlcjoxcHggc29saWQgcmVkIWltcG9ydGFudDtjb2xvcjojZmZmIWltcG9ydGFudH0uaGFuZHNvbnRhYmxlIC5u'@; put 'dW1lcmljTGlzdGJveHt0ZXh0LWFsaWduOnJpZ2h0fS5tYXJnaW4tdG9wLTIwe21hcmdpbi10b3A6MjBweH0uaGlkZGVue2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LnVudmlzaWJsZXt2aXNpYmlsaXR5OmhpZGRlbn0ubm8tYm9yZGVyc3tib3JkZXI6MH0uY2FyZC5uby1ib3JkZXJzLC5jYXJk'@; put 'Lm5vLWJvcmRlcnMgLmNhcmQtaGVhZGVyLC5jYXJkLm5vLWJvcmRlcnMgLmNhcmQtYmxvY2ssLmNhcmQubm8tYm9yZGVycyAuY2FyZC1mb290ZXIsLmNhcmQubm8taW5uZXItYm9yZGVycyAuY2FyZC1oZWFkZXIsLmNhcmQubm8taW5uZXItYm9yZGVycyAuY2FyZC1ibG9jaywuY2FyZC5uby1p'@; put 'bm5lci1ib3JkZXJzIC5jYXJkLWZvb3Rlcntib3JkZXI6MDtib3gtc2hhZG93Om5vbmV9QG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KXsuZC1zbS1ub25le2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmQtc20taW5saW5le2Rpc3BsYXk6aW5saW5lIWltcG9ydGFudH0uZC1zbS1pbmxpbmUtYmxv'@; put 'Y2t7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fS5kLXNtLWJsb2Nre2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5kLXNtLXRhYmxle2Rpc3BsYXk6dGFibGUhaW1wb3J0YW50fS5kLXNtLXRhYmxlLWNlbGx7ZGlzcGxheTp0YWJsZS1jZWxsIWltcG9ydGFudH0uZC1zbS1mbGV4e2Rp'@; put 'c3BsYXk6ZmxleCFpbXBvcnRhbnR9LmQtc20taW5saW5lLWZsZXh7ZGlzcGxheTppbmxpbmUtZmxleCFpbXBvcnRhbnR9LmNsci1mbGV4LXNtLWNvbHVtbntmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmNsci1mbGV4LXNtLXJvd3tmbGV4LWRpcmVjdGlvbjpyb3d9LmNsci1nYXAtc20tNXtnYXA6'@; put 'NXB4fS5jbHItZ2FwLXNtLTB7Z2FwOjB9fUBtZWRpYSAobWluLXdpZHRoOiA3NjhweCl7LmQtbWQtbm9uZXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5kLW1kLWlubGluZXtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnR9LmQtbWQtaW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrIWlt'@; put 'cG9ydGFudH0uZC1tZC1ibG9ja3tkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uZC1tZC10YWJsZXtkaXNwbGF5OnRhYmxlIWltcG9ydGFudH0uZC1tZC10YWJsZS1jZWxse2Rpc3BsYXk6dGFibGUtY2VsbCFpbXBvcnRhbnR9LmQtbWQtZmxleHtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5kLW1k'@; put 'LWlubGluZS1mbGV4e2Rpc3BsYXk6aW5saW5lLWZsZXghaW1wb3J0YW50fS5jbHItZmxleC1tZC1jb2x1bW57ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5jbHItZmxleC1tZC1yb3d7ZmxleC1kaXJlY3Rpb246cm93fS5jbHItZ2FwLW1kLTV7Z2FwOjVweH0uY2xyLWdhcC1tZC0we2dhcDowfX1A'@; put 'bWVkaWEgKG1pbi13aWR0aDogOTkycHgpey5kLWxnLW5vbmV7ZGlzcGxheTpub25lIWltcG9ydGFudH0uZC1sZy1pbmxpbmV7ZGlzcGxheTppbmxpbmUhaW1wb3J0YW50fS5kLWxnLWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9LmQtbGctYmxvY2t7ZGlzcGxh'@; put 'eTpibG9jayFpbXBvcnRhbnR9LmQtbGctdGFibGV7ZGlzcGxheTp0YWJsZSFpbXBvcnRhbnR9LmQtbGctdGFibGUtY2VsbHtkaXNwbGF5OnRhYmxlLWNlbGwhaW1wb3J0YW50fS5kLWxnLWZsZXh7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uZC1sZy1pbmxpbmUtZmxleHtkaXNwbGF5OmlubGlu'@; put 'ZS1mbGV4IWltcG9ydGFudH0uY2xyLWZsZXgtbGctY29sdW1ue2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uY2xyLWZsZXgtbGctcm93e2ZsZXgtZGlyZWN0aW9uOnJvd30uY2xyLWdhcC1sZy01e2dhcDo1cHh9LmNsci1nYXAtbGctMHtnYXA6MH19LmRhdGFncmlkLWJvZHl7cGFkZGluZy1ib3R0'@; put 'b206MnJlbSFpbXBvcnRhbnR9LmFib3J0TXNne3doaXRlLXNwYWNlOnByZS13cmFwO2ZvbnQtZmFtaWx5Om1vbm9zcGFjZX0jZ3JhcGggc3Zne2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9Lm5vLXRhYmxlLXNlbGVjdGVke2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXgt'@; put 'ZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDp2YXIoLS1jbHItdmVydGljYWwtbmF2LWJnLWNvbG9yKTt6LWluZGV4OjEwO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7dG9wOjB9LmNvcHlSaWdodHtiYWNrZ3JvdW5kOiM0OTU5'@; put 'NjchaW1wb3J0YW50O2NvbG9yOiNmZmY7ZGlzcGxheTpmbGV4IWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjVweCAwIDRweDt6LWluZGV4OjEwMH0ubmF2LXRyZWU+Y2xyLXRyZWUtbm9kZS5jbHItZXhwYW5kZWR7ZGlzcGxheTpp'@; put 'bmxpbmUtYmxvY2shaW1wb3J0YW50fWNsci10cmVlLW5vZGV7b3ZlcmZsb3cteTp2aXNpYmxlfWNsci10cmVlLW5vZGU6Zm9jdXN7b3V0bGluZTpub25lIWltcG9ydGFudH1jbHItdHJlZS1ub2RlIC5jbHItdHJlZW5vZGUtY2FyZXR7d2lkdGg6YXV0byFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8h'@; put 'aW1wb3J0YW50fWNsci10cmVlLW5vZGUgLmNsci10cmVlbm9kZS1zcGlubmVyLWNvbnRhaW5lcntwYWRkaW5nOjAgOHB4O3dpZHRoOmF1dG87aGVpZ2h0OmF1dG87YWxpZ24taXRlbXM6Y2VudGVyfWNsci10cmVlLW5vZGUgLmNsci10cmVlLW5vZGUtY29udGVudC1jb250YWluZXI6Zm9jdXN7'@; put 'b3V0bGluZTpub25lIWltcG9ydGFudH0uY2xyLXRyZWVub2RlLWNvbnRlbnQgcHt3aGl0ZS1zcGFjZTpub3dyYXB9LnNlYXJjaC1ub2Rle21hcmdpbi1ib3R0b206NXB4fS50cmVlLXNlYXJjaC13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50'@; put 'ZXJ9LnRyZWUtc2VhcmNoLXdyYXBwZXIgY2xyLWlucHV0LWNvbnRhaW5lcnttYXJnaW46MH0udHJlZS1zZWFyY2gtd3JhcHBlciBjbHItaWNvbntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO2JvdHRvbTowO21hcmdpbjowIDAgM3B4O2N1cnNvcjpwb2ludGVyfS5jbHItdHJlZS1ub2Rle292'@; put 'ZXJmbG93OnZpc2libGUhaW1wb3J0YW50fS5jb250ZW50LWNvbnRhaW5lcnt3aWR0aDoxMDAlfUAtbW96LWRvY3VtZW50IHVybC1wcmVmaXgoKXsud3RIb2xkZXJ7d2lkdGg6MTAwJSFpbXBvcnRhbnR9fWlucHV0OjotbXMtY2xlYXJ7ZGlzcGxheTpub25lfUBtZWRpYSBhbGwgYW5kICgtbXMt'@; put 'aGlnaC1jb250cmFzdDogbm9uZSksKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpe2Nsci10cmVlLW5vZGUuY2xyLWV4cGFuZGVke3BhZGRpbmctYm90dG9tOjIwcHg7bWluLWhlaWdodDphdXRvfS5jbHItdHJlZS1ub2Rle21pbi1oZWlnaHQ6MjRweH0uY2xyLXRyZWVub2RlLWNoaWxkcmVu'@; put 'e292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnR9LmNsci10cmVlbm9kZS1jb250ZW50IC5jbHItaWNvbiwuY2xyLXRyZWVub2RlLWNvbnRlbnQgY2xyLWljb257bWluLXdpZHRoOjE2cHg7bWluLWhlaWdodDoxNnB4fS50cmVlLXNlYXJjaC13cmFwcGVyIGNsci1pY29ue2JvdHRvbToycHh9LmNv'@; put 'bnRlbnQtY29udGFpbmVye2hlaWdodDoxMDAlfS5jb250ZW50LWFyZWE+LmNhcmR7bWFyZ2luLWJvdHRvbToyMHB4fS5yZWNvcmQtZWRpdC1tb2RhbCB0ZXh0YXJlYXttaW4taGVpZ2h0OjQycHh9fS5ib3JkZXItYm90dG9tLWRpdmlkZXJ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2QzZDNk'@; put 'M30ubG9hZGluZ1NwaW5uZXJ7aGVpZ2h0Ojcwdmg7ZmxleDoxO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXJ9LmRpc2FibGUtcGFzc3dvcmQtbWFuYWdlcnstd2Via2l0LXRleHQtc2VjdXJpdHk6ZGlz'@; put 'YzstbW96LXRleHQtc2VjdXJpdHk6ZGlzYzt0ZXh0LXNlY3VyaXR5OmRpc2M7Zm9udC1mYW1pbHk6dGV4dC1zZWN1cml0eS1kaXNjfS5yZWxhdGl2ZXtwb3NpdGlvbjpyZWxhdGl2ZX1oci5saWdodHtib3JkZXI6MDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGVkZWRlfS5zcGlubmVye2Jh'@; put 'Y2tncm91bmQ6dXJsKC9TQVNKb2JFeGVjdXRpb24/X0ZJTEU9L1B1YmxpYy9hcHAvZGNwbGFjZWhvbGRlci9zZXJ2aWNlcy93ZWIvaW1hZ2VzL3NwaW5uZXIuMTZmNzYzY2ViYzZiNjRkZi5zdmcpIWltcG9ydGFudH0uY2xyLXNlbGVjdC13cmFwcGVyOmFmdGVye2JhY2tncm91bmQ6dXJsKC9T'@; put 'QVNKb2JFeGVjdXRpb24/X0ZJTEU9L1B1YmxpYy9hcHAvZGNwbGFjZWhvbGRlci9zZXJ2aWNlcy93ZWIvaW1hZ2VzL2NhcmV0LjY1ZjFmYzBhY2JlNGM3ZmYuc3ZnKSFpbXBvcnRhbnR9Ym9keVtjZHMtdGhlbWU9ZGFya10gLnRhYmxlLXNlYXJjaC13cmFwcGVye2JhY2tncm91bmQ6IzIxMzMz'@; put 'Yn0udGFibGUtc2VhcmNoLXdyYXBwZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmfS50YWJsZS1zZWFyY2gtd3JhcHBlciAuaW5wdXQtd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTttaW4td2lkdGg6MTcwcHh9LnRhYmxlLXNlYXJjaC13cmFwcGVyIC5pbnB1dC13cmFwcGVyIGNsci1pY29uLC50'@; put 'YWJsZS1zZWFyY2gtd3JhcHBlciAuaW5wdXQtd3JhcHBlciAuc3Bpbm5lcntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxOXB4O3RvcDowfS50YWJsZS1zZWFyY2gtd3JhcHBlciAuaW5wdXQtd3JhcHBlciBjbHItaWNvbntjdXJzb3I6cG9pbnRlcn0udGFibGUtc2VhcmNoLXdyYXBwZXIgLmlu'@; put 'cHV0LXdyYXBwZXIgW25hbWU9c2VhcmNoLWlucHV0XXtwYWRkaW5nLXJpZ2h0OjI1cHh9LnRhYmxlLXNlYXJjaC13cmFwcGVyIGNsci1pbnB1dC1jb250YWluZXJ7bWFyZ2luLXRvcDotNXB4O21hcmdpbi1yaWdodDowfS50YWJsZS1zZWFyY2gtd3JhcHBlciBjbHItaW5wdXQtY29udGFpbmVy'@; put 'IGxhYmVse2Rpc3BsYXk6bm9uZX0udGFibGUtc2VhcmNoLXdyYXBwZXIgY2xyLWNoZWNrYm94LWNvbnRhaW5lcnttYXJnaW4tdG9wOjB9LnRhYmxlLXNlYXJjaC13cmFwcGVyIGlucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLC50YWJsZS1zZWFyY2gtd3JhcHBlciBpbnB1dDo6LXdl'@; put 'YmtpdC1pbm5lci1zcGluLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTttYXJnaW46MH0udGFibGUtc2VhcmNoLXdyYXBwZXIgaW5wdXRbdHlwZT1udW1iZXJdey1tb3otYXBwZWFyYW5jZTp0ZXh0ZmllbGR9LmRjLWxvY2tlZC1jb250cm9se29wYWNpdHk6LjQ7Y3Vyc29yOm5vdC1h'@; put 'bGxvd2VkIWltcG9ydGFudH0ubGluay1pdHtjdXJzb3I6cG9pbnRlcjt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfQo='; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64,swap=compiled_apploc apploc) filename filecode clear; %let path=services/web/images; %let filename=caret.65f1fc0acbe4c7ff.svg; filename filecode temp lrecl=32767; data _null_; file filecode; put 'PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMiAxMiI+CiAgICA8ZGVmcz4KICAgICAgICA8c3R5bGU+LmNscy0xe2ZpbGw6I2IzYjNiMzt9PC9zdHlsZT4KICAgIDwvZGVmcz4KICAgIDx0aXRsZT5DYXJldDwvdGl0bGU+CiAgICA8cGF0aCBj'@; put 'bGFzcz0iY2xzLTEiIGQ9Ik02LDlMMS4yLDQuMmEwLjY4LDAuNjgsMCwwLDEsMS0xTDYsNy4wOCw5Ljg0LDMuMjRhMC42OCwwLjY4LDAsMSwxLDEsMVoiLz4KPC9zdmc+Cg=='; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64) filename filecode clear; %let filename=caret.svg; filename filecode temp lrecl=32767; data _null_; file filecode; put 'PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMiAxMiI+CiAgICA8ZGVmcz4KICAgICAgICA8c3R5bGU+LmNscy0xe2ZpbGw6I2IzYjNiMzt9PC9zdHlsZT4KICAgIDwvZGVmcz4KICAgIDx0aXRsZT5DYXJldDwvdGl0bGU+CiAgICA8cGF0aCBj'@; put 'bGFzcz0iY2xzLTEiIGQ9Ik02LDlMMS4yLDQuMmEwLjY4LDAuNjgsMCwwLDEsMS0xTDYsNy4wOCw5Ljg0LDMuMjRhMC42OCwwLjY4LDAsMSwxLDEsMVoiLz4KPC9zdmc+Cg=='; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64) filename filecode clear; %let filename=datacontroller.svg; filename filecode temp lrecl=32767; data _null_; file filecode; put 'PHN2ZyB3aWR0aD0iMTY5MCIgaGVpZ2h0PSIyNDAiIHZpZXdCb3g9IjAgMCAxNjkwIDI0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzEwNV83KSI+CjxwYXRoIGQ9Ik0xMjQuOSA1NS4yMDAxQzEyOC4y'@; put 'IDU1LjYwMDEgMTMxLjQgNTUuOTAwMSAxMzQuNyA1Ni4zMDAxQzE0Mi42IDU3LjQwMDEgMTUwLjMgNTguOTAwMSAxNTcuNSA2Mi42MDAxQzE1OS42IDYzLjcwMDEgMTYxLjYgNjQuOTAwMSAxNjMuMSA2Ni44MDAxQzE2NS41IDY5LjYwMDEgMTY1LjQgNzIuNjAwMSAxNjMgNzUuNDAwMUMxNjAu'@; put 'NSA3OC4yMDAxIDE1Ny4zIDc5LjgwMDEgMTUzLjkgODEuMTAwMUMxNDYgODQuMjAwMSAxMzcuNyA4NS42MDAxIDEyOS4zIDg2LjMwMDFDMTE1LjYgODcuNDAwMSAxMDIuMSA4Ni45MDAxIDg4LjcgODMuNzAwMUM4NC4zIDgyLjcwMDEgODAgODEuMzAwMSA3Ni4xIDc5LjEwMDFDNzQuNiA3OC4z'@; put 'MDAxIDczLjIgNzcuMzAwMSA3MS45IDc2LjEwMDFDNjguMyA3Mi42MDAxIDY4LjMgNjguOTAwMSA3MiA2NS42MDAxQzc2IDYyLjAwMDEgODAuOSA2MC4zMDAxIDg1LjkgNTguOTAwMUM5Mi45IDU2LjkwMDEgMTAwIDU1LjkwMDEgMTA3LjIgNTUuNDAwMUMxMDcuOCA1NS40MDAxIDEwOC41IDU1'@; put 'LjYwMDEgMTA5IDU1LjEwMDFDMTE0LjIgNTUuMjAwMSAxMTkuNiA1NS4yMDAxIDEyNC45IDU1LjIwMDFaIiBmaWxsPSIjRTBFMEUwIi8+CjxwYXRoIGQ9Ik02OS4yMDAxIDEzNy4zQzc1LjYwMDEgMTQ1LjUgODQuNzAwMSAxNDguNSA5NC4xMDAxIDE1MC41QzExMi43IDE1NC41IDEzMS4zIDE1'@; put 'NCAxNDkuNCAxNDcuNkMxNTUgMTQ1LjYgMTYwLjIgMTQyLjkgMTYzLjkgMTM3LjlDMTY0LjUgMTM3LjEgMTY0LjggMTM3LjUgMTY1LjEgMTM4LjFDMTY1LjcgMTM5LjQgMTY2IDE0MC43IDE2NiAxNDIuMUMxNjYgMTQ3IDE2NiAxNTIgMTY2IDE1Ni45QzE2NiAxNjAuMSAxNjQuNSAxNjIuNiAx'@; put 'NjIuMyAxNjQuOEMxNTcuNyAxNjkuNCAxNTEuOSAxNzEuOSAxNDUuOCAxNzMuOEMxMzMuNSAxNzcuNiAxMjAuOSAxNzguNCAxMDguMiAxNzcuNUM5OC43MDAxIDE3Ni44IDg5LjUgMTc1IDgwLjggMTcxLjFDNzcuMSAxNjkuNCA3My43MDAxIDE2Ny40IDcxLjAwMDEgMTY0LjNDNjguOTAwMSAx'@; put 'NjEuOSA2Ny44IDE1OS4yIDY3LjggMTU2QzY3LjkgMTUxLjUgNjcuOCAxNDcgNjcuOCAxNDIuNUM2Ny44IDE0MC43IDY4LjEwMDEgMTM5IDY5LjIwMDEgMTM3LjNaIiBmaWxsPSIjOEVDNjNGIi8+CjxwYXRoIGQ9Ik02OS4yOTk5IDEwNi40Qzc0LjU5OTkgMTEzLjUgODEuOTk5OSAxMTYuNSA4'@; put 'OS44OTk5IDExOC42QzEwOC44IDEyMy42IDEyNy43IDEyMy41IDE0Ni40IDExNy45QzE1Mi42IDExNi4xIDE1OC40IDExMy40IDE2Mi45IDEwOC41QzE2My41IDEwNy45IDE2My45IDEwNi41IDE2NC42IDEwNi43QzE2NS42IDEwNyAxNjUuNiAxMDguNCAxNjUuOSAxMDkuNUMxNjYuMyAxMTEu'@; put 'MiAxNjYuMSAxMTIuOSAxNjYuMSAxMTQuNkMxNjYuMSAxMTggMTY2IDEyMS4zIDE2Ni4xIDEyNC43QzE2Ni4zIDEyOC45IDE2NC42IDEzMi4yIDE2MS41IDEzNC45QzE1Ni44IDEzOS4xIDE1MS4xIDE0MS42IDE0NSAxNDMuMkMxMjQuNSAxNDguNyAxMDQuMSAxNDguNiA4My45OTk5IDE0MS42'@; put 'Qzc5LjA5OTkgMTM5LjkgNzQuNTk5OSAxMzcuNSA3MC45OTk5IDEzMy42QzY4Ljc5OTkgMTMxLjIgNjcuNyAxMjguNCA2Ny43IDEyNS4xQzY3LjggMTIwLjcgNjcuNyAxMTYuMiA2Ny43IDExMS44QzY3LjggMTEwIDY4LjA5OTkgMTA4LjIgNjkuMjk5OSAxMDYuNFoiIGZpbGw9IiNFMEUwRTAi'@; put 'Lz4KPHBhdGggZD0iTTY5LjEgNzYuN0M3MC42IDgxLjEgNzQuMiA4My4wOTk5IDc4IDg0Ljg5OTlDODQuOCA4OC4wOTk5IDkyLjEgODkuNiA5OS40IDkwLjVDMTEzLjkgOTIuMyAxMjguNCA5Mi4xIDE0Mi43IDg5LjFDMTQ4LjUgODcuOSAxNTQuMSA4Ni4zIDE1OS4yIDgzLjFDMTYyLjEgODEu'@; put 'MyAxNjMuNiA3OS42IDE2NC42IDc2LjhDMTY1LjYgNzguMiAxNjUuOSA3OS43IDE2NS45IDgxLjJDMTY1LjkgODYuMiAxNjYgOTEuMSAxNjUuOSA5Ni4xQzE2NS44IDEwMC4zIDE2My40IDEwMy4zIDE2MC4zIDEwNS44QzE1NC41IDExMC40IDE0Ny43IDExMi44IDE0MC42IDExNC40QzEyMS44'@; put 'IDExOC41IDEwMy4yIDExOC4yIDg0LjkgMTEyQzgwLjEgMTEwLjQgNzUuNSAxMDguMSA3MS44IDEwNC41QzY5IDEwMS44IDY3LjUgOTguNyA2Ny42IDk0LjdDNjcuNyA5MC40IDY3LjYgODYuMSA2Ny42IDgxLjhDNjcuOCA3OS45IDY4LjEgNzguMyA2OS4xIDc2LjdaIiBmaWxsPSIjOEVDNjNG'@; put 'Ii8+CjxwYXRoIGQ9Ik0xODMuOSAyMTAuOUMyMDAuMiAyMTEuOCAyMDguOSAxOTEuOCAxOTcuMSAxODAuNUMxODQuNyAxNjguNiAxNjQuMyAxNzkuNyAxNjcuNSAxOTYuNUM5My44IDI0My41IC0wLjk5OTk4MSAxNzMuMiAyNiA4Ny44MDAxTDcuODAwMDIgNzUuNjAwMUMtMzMuMSAxODQuMyA5'@; put 'Mi44IDI3Ni4yIDE4My45IDIxMC45Wk0xNzguNyAxODcuNEMxODYuMyAxNzkuNSAxOTguNCAxOTAuNSAxOTEuMyAxOTguOEMxODMuOCAyMDcuNSAxNzAuNiAxOTUuOCAxNzguNyAxODcuNFoiIGZpbGw9IiNFMEUwRTAiLz4KPHBhdGggZD0iTTM1LjIgNTAuNzAwMUM0Ni45IDYxLjkwMDEgNjYu'@; put 'MiA1Mi43MDAxIDY1LjEgMzYuNzAwMUMxMzguNyAtMTAuNyAyMzQgNTkuNTAwMSAyMDcgMTQ1LjJMMjI1LjIgMTU3LjRDMjY0LjkgNTEuODAwMSAxNDQuNCAtNDMuMjk5OSA1MS4yIDIwLjYwMDFDMzMuNyAxNy4wMDAxIDIyLjQgMzguNDAwMSAzNS4yIDUwLjcwMDFaTTUzLjYgNDMuODAwMUM0'@; put 'NS44IDUxLjkwMDEgMzMuNSA0MC4xMDAxIDQxLjMgMzIuMDAwMUM0OS4xIDIzLjkwMDEgNjEuNCAzNS43MDAxIDUzLjYgNDMuODAwMVoiIGZpbGw9IiM4RUM2M0YiLz4KPHBhdGggZD0iTTMyMy41NzUgNDcuODg3NEMzMjMuNTc1IDQ2Ljc5MDEgMzIzLjkxNyA0NS44OTg1IDMyNC42MDMgNDUu'@; put 'MjEyN0MzMjUuNDI2IDQ0LjM4OTcgMzI2LjM4NiA0My45NzgyIDMyNy40ODQgNDMuOTc4MkgzNjkuMDQ0QzM3OC45MiA0My45NzgyIDM4OC4wNDEgNDUuNzYxMyAzOTYuNDA4IDQ5LjMyNzZDNDA0LjkxMyA1Mi44OTM4IDQxMi4yNTEgNTcuOTAwMyA0MTguNDIzIDY0LjM0N0M0MjQuNTk2IDcw'@; put 'LjY1NjUgNDI5LjQ2NSA3OC4yMDA1IDQzMy4wMzEgODYuOTc5QzQzNi41OTcgOTUuNzU3NSA0MzguMzggMTA1LjQyOCA0MzguMzggMTE1Ljk4OUM0MzguMzggMTI2LjU1MSA0MzYuNTk3IDEzNi4yMjEgNDMzLjAzMSAxNDQuOTk5QzQyOS40NjUgMTUzLjc3OCA0MjQuNTk2IDE2MS4zOSA0MTgu'@; put 'NDIzIDE2Ny44MzdDNDEyLjI1MSAxNzQuMTQ2IDQwNC45MTMgMTc5LjA4NCAzOTYuNDA4IDE4Mi42NTFDMzg4LjA0MSAxODYuMjE3IDM3OC45MiAxODggMzY5LjA0NCAxODhIMzI3LjQ4NEMzMjYuMzg2IDE4OCAzMjUuNDI2IDE4Ny42NTcgMzI0LjYwMyAxODYuOTcxQzMyMy45MTcgMTg2LjE0'@; put 'OCAzMjMuNTc1IDE4NS4xODggMzIzLjU3NSAxODQuMDkxVjQ3Ljg4NzRaTTM0OS4yOTMgNjkuMjg0OVYxNjIuNjkzSDM2OS42NjJDMzc1LjgzNCAxNjIuNjkzIDM4MS40NTggMTYxLjUyNyAzODYuNTMzIDE1OS4xOTZDMzkxLjYwOCAxNTYuODY0IDM5NS45MjggMTUzLjY0MSAzOTkuNDk1IDE0'@; put 'OS41MjZDNDAzLjE5OCAxNDUuNDExIDQwNi4wMSAxNDAuNTQxIDQwNy45MyAxMzQuOTE4QzQwOS45ODggMTI5LjE1NyA0MTEuMDE2IDEyMi44NDcgNDExLjAxNiAxMTUuOTg5QzQxMS4wMTYgMTA5LjI2OCA0MDkuOTg4IDEwMy4wMjcgNDA3LjkzIDk3LjI2NjNDNDA2LjAxIDkxLjUwNTQgNDAz'@; put 'LjE5OCA4Ni41Njc1IDM5OS40OTUgODIuNDUyNkMzOTUuOTI4IDc4LjMzNzcgMzkxLjYwOCA3NS4xMTQzIDM4Ni41MzMgNzIuNzgyNkMzODEuNDU4IDcwLjQ1MDggMzc1LjgzNCA2OS4yODQ5IDM2OS42NjIgNjkuMjg0OUgzNDkuMjkzWk01MzEuMDkzIDE3Ny45MThDNTI3LjM4OSAxODAuNjYy'@; put 'IDUyMy4xMzcgMTgzLjEzMSA1MTguMzM3IDE4NS4zMjVDNTEzLjUzNiAxODcuMzgzIDUwOC43MzUgMTg4LjQxMSA1MDMuOTM1IDE4OC40MTFDNDk2LjgwMiAxODguNDExIDQ5MC4yMTggMTg3LjEwOCA0ODQuMTgzIDE4NC41MDJDNDc4LjE0OCAxODEuODk2IDQ3Mi45MzYgMTc4LjI2MSA0Njgu'@; put 'NTQ2IDE3My41OThDNDY0LjI5NCAxNjguOTM0IDQ2MC45MzQgMTYzLjQ0OCA0NTguNDY1IDE1Ny4xMzhDNDU1Ljk5NiAxNTAuODI5IDQ1NC43NjEgMTQzLjk3IDQ1NC43NjEgMTM2LjU2NEM0NTQuNzYxIDEyOS40MzEgNDU2LjA2NCAxMjIuNzc5IDQ1OC42NzEgMTE2LjYwNkM0NjEuMjc3IDEx'@; put 'MC4yOTcgNDY0Ljg0MyAxMDQuODEgNDY5LjM2OSAxMDAuMTQ3QzQ3My44OTYgOTUuMzQ2IDQ3OS4xMDggOTEuNTc0IDQ4NS4wMDYgODguODMwN0M0OTEuMDQxIDg2LjA4NzQgNDk3LjQ4OCA4NC43MTU4IDUwNC4zNDYgODQuNzE1OEM1MDkuMTQ3IDg0LjcxNTggNTEzLjg3OSA4NS44MTMxIDUx'@; put 'OC41NDIgODguMDA3N0M1MjMuMjA2IDkwLjA2NTIgNTI3LjM4OSA5Mi40NjU1IDUzMS4wOTMgOTUuMjA4OFY4OS4wMzY1QzUzMS4wOTMgODcuOTM5MSA1MzEuNDM2IDg3LjA0NzYgNTMyLjEyMiA4Ni4zNjE4QzUzMi45NDUgODUuNTM4OCA1MzMuOTA1IDg1LjEyNzMgNTM1LjAwMiA4NS4xMjcz'@; put 'SDU1MS4wNUM1NTMuNjU2IDg1LjEyNzMgNTU0Ljk1OSA4Ni40MzAzIDU1NC45NTkgODkuMDM2NVYxODQuMDkxQzU1NC45NTkgMTg2LjY5NyA1NTMuNjU2IDE4OCA1NTEuMDUgMTg4SDUzNS4wMDJDNTMzLjkwNSAxODggNTMyLjk0NSAxODcuNjU3IDUzMi4xMjIgMTg2Ljk3MUM1MzEuNDM2IDE4'@; put 'Ni4xNDggNTMxLjA5MyAxODUuMTg4IDUzMS4wOTMgMTg0LjA5MVYxNzcuOTE4Wk00NzkuNjU3IDEzNi41NjRDNDc5LjY1NyAxNDAuMjY3IDQ4MC4zNDIgMTQzLjc2NSA0ODEuNzE0IDE0Ny4wNTdDNDgzLjA4NiAxNTAuMjExIDQ4NC45MzcgMTUzLjAyMyA0ODcuMjY5IDE1NS40OTJDNDg5LjYw'@; put 'MSAxNTcuOTYxIDQ5Mi4yNzYgMTU5Ljk1IDQ5NS4yOTMgMTYxLjQ1OUM0OTguNDQ4IDE2Mi44MyA1MDEuNzQgMTYzLjUxNiA1MDUuMTY5IDE2My41MTZDNTA4Ljg3MiAxNjMuNTE2IDUxMi4yMzMgMTYyLjgzIDUxNS4yNTEgMTYxLjQ1OUM1MTguMjY4IDE1OS45NSA1MjAuODc0IDE1Ny45NjEg'@; put 'NTIzLjA2OSAxNTUuNDkyQzUyNS40MDEgMTUzLjAyMyA1MjcuMTg0IDE1MC4yMTEgNTI4LjQxOCAxNDcuMDU3QzUyOS42NTMgMTQzLjc2NSA1MzAuMjcgMTQwLjI2NyA1MzAuMjcgMTM2LjU2NEM1MzAuMjcgMTMyLjg2IDUyOS42NTMgMTI5LjQzMSA1MjguNDE4IDEyNi4yNzZDNTI3LjE4NCAx'@; put 'MjIuOTg0IDUyNS40MDEgMTIwLjEwNCA1MjMuMDY5IDExNy42MzVDNTIwLjg3NCAxMTUuMTY2IDUxOC4yNjggMTEzLjI0NiA1MTUuMjUxIDExMS44NzRDNTEyLjIzMyAxMTAuMzY1IDUwOC44NzIgMTA5LjYxMSA1MDUuMTY5IDEwOS42MTFDNTAxLjc0IDEwOS42MTEgNDk4LjQ0OCAxMTAuMzY1'@; put 'IDQ5NS4yOTMgMTExLjg3NEM0OTIuMjc2IDExMy4yNDYgNDg5LjYwMSAxMTUuMTY2IDQ4Ny4yNjkgMTE3LjYzNUM0ODQuOTM3IDEyMC4xMDQgNDgzLjA4NiAxMjIuOTg0IDQ4MS43MTQgMTI2LjI3NkM0ODAuMzQyIDEyOS40MzEgNDc5LjY1NyAxMzIuODYgNDc5LjY1NyAxMzYuNTY0Wk01NzQu'@; put 'NDA3IDg5LjAzNjVDNTc0LjQwNyA4Ny45MzkxIDU3NC43NSA4Ny4wNDc2IDU3NS40MzYgODYuMzYxOEM1NzYuMTIyIDg1LjUzODggNTc3LjAxMyA4NS4xMjczIDU3OC4xMTEgODUuMTI3M0g1OTMuMzM2VjU4LjE3NDZDNTkzLjMzNiA1Ny4wNzczIDU5My42NzkgNTYuMTg1OCA1OTQuMzY0IDU1'@; put 'LjQ5OTlDNTk1LjE4NyA1NC42NzcgNTk2LjE0OCA1NC4yNjU1IDU5Ny4yNDUgNTQuMjY1NUg2MTMuMjkzQzYxNS44OTkgNTQuMjY1NSA2MTcuMjAyIDU1LjU2ODUgNjE3LjIwMiA1OC4xNzQ2Vjg1LjEyNzNINjM1LjMwOEM2MzYuNDA1IDg1LjEyNzMgNjM3LjI5NyA4NS41Mzg4IDYzNy45ODIg'@; put 'ODYuMzYxOEM2MzguNjY4IDg3LjA0NzYgNjM5LjAxMSA4Ny45MzkxIDYzOS4wMTEgODkuMDM2NVYxMDQuMjYyQzYzOS4wMTEgMTA1LjM1OSA2MzguNjY4IDEwNi4yNSA2MzcuOTgyIDEwNi45MzZDNjM3LjI5NyAxMDcuNjIyIDYzNi40MDUgMTA3Ljk2NSA2MzUuMzA4IDEwNy45NjVINjE3LjIw'@; put 'MlYxODQuMDkxQzYxNy4yMDIgMTg2LjY5NyA2MTUuODk5IDE4OCA2MTMuMjkzIDE4OEg1OTcuMjQ1QzU5Ni4xNDggMTg4IDU5NS4xODcgMTg3LjY1NyA1OTQuMzY0IDE4Ni45NzFDNTkzLjY3OSAxODYuMTQ4IDU5My4zMzYgMTg1LjE4OCA1OTMuMzM2IDE4NC4wOTFWMTA3Ljk2NUg1NzguMTEx'@; put 'QzU3Ny4wMTMgMTA3Ljk2NSA1NzYuMTIyIDEwNy42MjIgNTc1LjQzNiAxMDYuOTM2QzU3NC43NSAxMDYuMjUgNTc0LjQwNyAxMDUuMzU5IDU3NC40MDcgMTA0LjI2MlY4OS4wMzY1Wk03MjkuNjkzIDE3Ny45MThDNzI1Ljk5IDE4MC42NjIgNzIxLjczOCAxODMuMTMxIDcxNi45MzcgMTg1LjMy'@; put 'NUM3MTIuMTM3IDE4Ny4zODMgNzA3LjMzNiAxODguNDExIDcwMi41MzUgMTg4LjQxMUM2OTUuNDAzIDE4OC40MTEgNjg4LjgxOSAxODcuMTA4IDY4Mi43ODQgMTg0LjUwMkM2NzYuNzQ4IDE4MS44OTYgNjcxLjUzNiAxNzguMjYxIDY2Ny4xNDcgMTczLjU5OEM2NjIuODk1IDE2OC45MzQgNjU5'@; put 'LjUzNCAxNjMuNDQ4IDY1Ny4wNjUgMTU3LjEzOEM2NTQuNTk2IDE1MC44MjkgNjUzLjM2MiAxNDMuOTcgNjUzLjM2MiAxMzYuNTY0QzY1My4zNjIgMTI5LjQzMSA2NTQuNjY1IDEyMi43NzkgNjU3LjI3MSAxMTYuNjA2QzY1OS44NzcgMTEwLjI5NyA2NjMuNDQzIDEwNC44MSA2NjcuOTcgMTAw'@; put 'LjE0N0M2NzIuNDk2IDk1LjM0NiA2NzcuNzA4IDkxLjU3NCA2ODMuNjA3IDg4LjgzMDdDNjg5LjY0MiA4Ni4wODc0IDY5Ni4wODggODQuNzE1OCA3MDIuOTQ3IDg0LjcxNThDNzA3Ljc0NyA4NC43MTU4IDcxMi40NzkgODUuODEzMSA3MTcuMTQzIDg4LjAwNzdDNzIxLjgwNyA5MC4wNjUyIDcy'@; put 'NS45OSA5Mi40NjU1IDcyOS42OTMgOTUuMjA4OFY4OS4wMzY1QzcyOS42OTMgODcuOTM5MSA3MzAuMDM2IDg3LjA0NzYgNzMwLjcyMiA4Ni4zNjE4QzczMS41NDUgODUuNTM4OCA3MzIuNTA1IDg1LjEyNzMgNzMzLjYwMyA4NS4xMjczSDc0OS42NTFDNzUyLjI1NyA4NS4xMjczIDc1My41NiA4'@; put 'Ni40MzAzIDc1My41NiA4OS4wMzY1VjE4NC4wOTFDNzUzLjU2IDE4Ni42OTcgNzUyLjI1NyAxODggNzQ5LjY1MSAxODhINzMzLjYwM0M3MzIuNTA1IDE4OCA3MzEuNTQ1IDE4Ny42NTcgNzMwLjcyMiAxODYuOTcxQzczMC4wMzYgMTg2LjE0OCA3MjkuNjkzIDE4NS4xODggNzI5LjY5MyAxODQu'@; put 'MDkxVjE3Ny45MThaTTY3OC4yNTcgMTM2LjU2NEM2NzguMjU3IDE0MC4yNjcgNjc4Ljk0MyAxNDMuNzY1IDY4MC4zMTUgMTQ3LjA1N0M2ODEuNjg2IDE1MC4yMTEgNjgzLjUzOCAxNTMuMDIzIDY4NS44NyAxNTUuNDkyQzY4OC4yMDEgMTU3Ljk2MSA2OTAuODc2IDE1OS45NSA2OTMuODk0IDE2'@; put 'MS40NTlDNjk3LjA0OSAxNjIuODMgNzAwLjM0IDE2My41MTYgNzAzLjc3IDE2My41MTZDNzA3LjQ3MyAxNjMuNTE2IDcxMC44MzMgMTYyLjgzIDcxMy44NTEgMTYxLjQ1OUM3MTYuODY5IDE1OS45NSA3MTkuNDc1IDE1Ny45NjEgNzIxLjY2OSAxNTUuNDkyQzcyNC4wMDEgMTUzLjAyMyA3MjUu'@; put 'Nzg0IDE1MC4yMTEgNzI3LjAxOSAxNDcuMDU3QzcyOC4yNTMgMTQzLjc2NSA3MjguODcgMTQwLjI2NyA3MjguODcgMTM2LjU2NEM3MjguODcgMTMyLjg2IDcyOC4yNTMgMTI5LjQzMSA3MjcuMDE5IDEyNi4yNzZDNzI1Ljc4NCAxMjIuOTg0IDcyNC4wMDEgMTIwLjEwNCA3MjEuNjY5IDExNy42'@; put 'MzVDNzE5LjQ3NSAxMTUuMTY2IDcxNi44NjkgMTEzLjI0NiA3MTMuODUxIDExMS44NzRDNzEwLjgzMyAxMTAuMzY1IDcwNy40NzMgMTA5LjYxMSA3MDMuNzcgMTA5LjYxMUM3MDAuMzQgMTA5LjYxMSA2OTcuMDQ5IDExMC4zNjUgNjkzLjg5NCAxMTEuODc0QzY5MC44NzYgMTEzLjI0NiA2ODgu'@; put 'MjAxIDExNS4xNjYgNjg1Ljg3IDExNy42MzVDNjgzLjUzOCAxMjAuMTA0IDY4MS42ODYgMTIyLjk4NCA2ODAuMzE1IDEyNi4yNzZDNjc4Ljk0MyAxMjkuNDMxIDY3OC4yNTcgMTMyLjg2IDY3OC4yNTcgMTM2LjU2NFoiIGZpbGw9IiNFMEUwRTAiLz4KPHBhdGggZD0iTTg3My4yMDYgNzQuMjIy'@; put 'OEM4NzIuNjU3IDc1LjA0NTggODcxLjkwMyA3NS41MjU4IDg3MC45NDMgNzUuNjYzQzg2OS45ODIgNzUuODAwMiA4NjkuMDIyIDc1LjU5NDQgODY4LjA2MiA3NS4wNDU4Qzg2NC45MDcgNzMuMTI1NSA4NjEuMTM1IDcxLjQ3OTUgODU2Ljc0NiA3MC4xMDc5Qzg1Mi4zNTcgNjguNzM2MiA4NDcu'@; put 'ODk5IDY4LjExOSA4NDMuMzczIDY4LjI1NjJDODM3LjQ3NSA2OC4yNTYyIDgzMS45ODggNjkuNTU5MiA4MjYuOTEzIDcyLjE2NTNDODIxLjk3NSA3NC42MzQzIDgxNy42NTQgNzguMDYzNCA4MTMuOTUxIDgyLjQ1MjZDODEwLjI0OCA4Ni43MDQ3IDgwNy4zNjcgOTEuNzExMSA4MDUuMzEgOTcu'@; put 'NDcyQzgwMy4yNTIgMTAzLjIzMyA4MDIuMjkyIDEwOS40MDUgODAyLjQyOSAxMTUuOTg5QzgwMi41NjYgMTIyLjg0NyA4MDMuNTk1IDEyOS4yMjUgODA1LjUxNSAxMzUuMTIzQzgwNy41NzMgMTQwLjg4NCA4MTAuMzg1IDE0NS44OTEgODEzLjk1MSAxNTAuMTQzQzgxNy41MTcgMTU0LjM5NSA4'@; put 'MjEuODM4IDE1Ny43NTUgODI2LjkxMyAxNjAuMjI0QzgzMS45ODggMTYyLjU1NiA4MzcuNjggMTYzLjcyMiA4NDMuOTkgMTYzLjcyMkM4NTAuMDI1IDE2My41ODUgODU1LjUxMiAxNjIuNTU2IDg2MC40NSAxNjAuNjM2Qzg2NS41MjUgMTU4LjcxNiA4NzAuNTMxIDE1NS45NzIgODc1LjQ2OSAx'@; put 'NTIuNDA2Qzg3Ni40MjkgMTUxLjcyIDg3Ny40NTggMTUxLjUxNCA4NzguNTU1IDE1MS43ODlDODc5LjY1MiAxNTEuOTI2IDg4MC41NDQgMTUyLjQ3NSA4ODEuMjMgMTUzLjQzNUw4OTEuMTA2IDE2OC4yNDhDODkyLjM0IDE3MC4xNjkgODkxLjk5NyAxNzEuODgzIDg5MC4wNzcgMTczLjM5MkM4'@; put 'ODIuNTMzIDE3OS4xNTMgODc1LjE5NSAxODMuMzM2IDg2OC4wNjIgMTg1Ljk0M0M4NjAuOTMgMTg4LjU0OSA4NTIuOTc0IDE4OS44NTIgODQ0LjE5NiAxODkuODUyQzgzMy42MzQgMTg5Ljk4OSA4MjQuMTAxIDE4OC4zNDMgODE1LjU5NyAxODQuOTE0QzgwNy4yMyAxODEuMzQ4IDgwMC4wMjkg'@; put 'MTc2LjM0MSA3OTMuOTk0IDE2OS44OTRDNzg4LjA5NiAxNjMuMzExIDc4My41MDEgMTU1LjQ5MiA3ODAuMjA5IDE0Ni40MzlDNzc3LjA1NCAxMzcuMzg3IDc3NS40MDggMTI3LjM3NCA3NzUuMjcxIDExNi40MDFDNzc1LjEzNCAxMDcuMDczIDc3Ni41NzQgOTguMDIwNyA3NzkuNTkyIDg5LjI0'@; put 'MjJDNzgyLjc0NiA4MC4zMjY2IDc4Ny4yMDQgNzIuMzcxMSA3OTIuOTY1IDY1LjM3NTdDNzk4LjcyNiA1OC4zODA0IDgwNS43MjEgNTIuNzU2NyA4MTMuOTUxIDQ4LjUwNDZDODIyLjE4MSA0NC4yNTI1IDgzMS40MzkgNDIuMTI2NSA4NDEuNzI3IDQyLjEyNjVDODQ4LjcyMiA0MS45ODkzIDg1'@; put 'NS41OCA0Mi44MTIzIDg2Mi4zMDEgNDQuNTk1NEM4NjkuMTU5IDQ2LjM3ODYgODc1Ljg4IDQ5LjY3MDUgODgyLjQ2NCA1NC40NzEyQzg4My40MjQgNTUuMTU3IDg4My45NzMgNTYuMDQ4NiA4ODQuMTEgNTcuMTQ1OUM4ODQuMjQ3IDU4LjEwNjEgODgzLjk3MyA1OS4wNjYyIDg4My4yODcgNjAu'@; put 'MDI2M0w4NzMuMjA2IDc0LjIyMjhaTTkwNi4yMTIgMTM2LjU2NEM5MDYuMjEyIDEyOS4yOTQgOTA3LjUxNSAxMjIuNTA0IDkxMC4xMjEgMTE2LjE5NUM5MTIuNzI3IDEwOS44ODUgOTE2LjIyNSAxMDQuMzk5IDkyMC42MTQgOTkuNzM1MkM5MjUuMTQgOTUuMDcxNyA5MzAuNDIxIDkxLjQzNjgg'@; put 'OTM2LjQ1NiA4OC44MzA3Qzk0Mi40OTIgODYuMDg3NCA5NDkuMDA3IDg0LjcxNTggOTU2LjAwMiA4NC43MTU4Qzk2Mi45OTggODQuNzE1OCA5NjkuNDQ0IDg2LjA4NzQgOTc1LjM0MiA4OC44MzA3Qzk4MS4zNzcgOTEuNDM2OCA5ODYuNTkgOTUuMDcxNyA5OTAuOTc5IDk5LjczNTJDOTk1LjUw'@; put 'NSAxMDQuMzk5IDk5OS4wMDMgMTA5Ljg4NSAxMDAxLjQ3IDExNi4xOTVDMTAwNC4wOCAxMjIuNTA0IDEwMDUuMzggMTI5LjI5NCAxMDA1LjM4IDEzNi41NjRDMTAwNS4zOCAxNDMuODMzIDEwMDQuMDggMTUwLjYyMyAxMDAxLjQ3IDE1Ni45MzJDOTk5LjAwMyAxNjMuMjQyIDk5NS41MDUgMTY4'@; put 'LjcyOSA5OTAuOTc5IDE3My4zOTJDOTg2LjU5IDE3OC4wNTYgOTgxLjM3NyAxODEuNzU5IDk3NS4zNDIgMTg0LjUwMkM5NjkuMzA3IDE4Ny4xMDggOTYyLjc5MiAxODguNDExIDk1NS43OTYgMTg4LjQxMUM5NDguODAxIDE4OC40MTEgOTQyLjI4NiAxODcuMTA4IDkzNi4yNTEgMTg0LjUwMkM5'@; put 'MzAuMjE1IDE4MS43NTkgOTI0LjkzNSAxNzguMDU2IDkyMC40MDggMTczLjM5MkM5MTYuMDE5IDE2OC43MjkgOTEyLjUyMSAxNjMuMjQyIDkwOS45MTUgMTU2LjkzMkM5MDcuNDQ2IDE1MC42MjMgOTA2LjIxMiAxNDMuODMzIDkwNi4yMTIgMTM2LjU2NFpNOTMxLjEwNyAxMzYuNTY0QzkzMS4x'@; put 'MDcgMTQwLjQwNCA5MzEuNzI0IDE0NC4wMzkgOTMyLjk1OSAxNDcuNDY4QzkzNC4xOTMgMTUwLjc2IDkzNS45MDggMTUzLjY0MSA5MzguMTAyIDE1Ni4xMDlDOTQwLjI5NyAxNTguNTc4IDk0Mi45MDMgMTYwLjU2NyA5NDUuOTIxIDE2Mi4wNzZDOTQ4LjkzOCAxNjMuNDQ4IDk1Mi4yMyAxNjQu'@; put 'MTM0IDk1NS43OTYgMTY0LjEzNEM5NTkuMzYzIDE2NC4xMzQgOTYyLjY1NSAxNjMuNDQ4IDk2NS42NzIgMTYyLjA3NkM5NjguODI3IDE2MC41NjcgOTcxLjUwMiAxNTguNTc4IDk3My42OTYgMTU2LjEwOUM5NzUuODkxIDE1My42NDEgOTc3LjYwNSAxNTAuNzYgOTc4Ljg0IDE0Ny40NjhDOTgw'@; put 'LjA3NCAxNDQuMDM5IDk4MC42OTIgMTQwLjQwNCA5ODAuNjkyIDEzNi41NjRDOTgwLjY5MiAxMzIuNzIzIDk4MC4wNzQgMTI5LjE1NyA5NzguODQgMTI1Ljg2NUM5NzcuNjA1IDEyMi40MzYgOTc1Ljg5MSAxMTkuNDg3IDk3My42OTYgMTE3LjAxOEM5NzEuNTAyIDExNC41NDkgOTY4LjgyNyAx'@; put 'MTIuNjI5IDk2NS42NzIgMTExLjI1N0M5NjIuNjU1IDEwOS43NDggOTU5LjM2MyAxMDguOTk0IDk1NS43OTYgMTA4Ljk5NEM5NTIuMjMgMTA4Ljk5NCA5NDguOTM4IDEwOS43NDggOTQ1LjkyMSAxMTEuMjU3Qzk0Mi45MDMgMTEyLjYyOSA5NDAuMjk3IDExNC41NDkgOTM4LjEwMiAxMTcuMDE4'@; put 'QzkzNS45MDggMTE5LjQ4NyA5MzQuMTkzIDEyMi40MzYgOTMyLjk1OSAxMjUuODY1QzkzMS43MjQgMTI5LjE1NyA5MzEuMTA3IDEzMi43MjMgOTMxLjEwNyAxMzYuNTY0Wk0xMDUwLjkgMTg0LjA5MUMxMDUwLjkgMTg2LjY5NyAxMDQ5LjU5IDE4OCAxMDQ2Ljk5IDE4OEgxMDMwLjk0QzEwMjku'@; put 'ODQgMTg4IDEwMjguODggMTg3LjY1NyAxMDI4LjA2IDE4Ni45NzFDMTAyNy4zNyAxODYuMTQ4IDEwMjcuMDMgMTg1LjE4OCAxMDI3LjAzIDE4NC4wOTFWODkuMDM2NUMxMDI3LjAzIDg3LjkzOTEgMTAyNy4zNyA4Ny4wNDc2IDEwMjguMDYgODYuMzYxOEMxMDI4Ljg4IDg1LjUzODggMTAyOS44'@; put 'NCA4NS4xMjczIDEwMzAuOTQgODUuMTI3M0gxMDQ2Ljk5QzEwNDkuNTkgODUuMTI3MyAxMDUwLjkgODYuNDMwMyAxMDUwLjkgODkuMDM2NVY5Ni42NDlDMTA1NC44OCA5My4zNTcxIDEwNTkuNDcgOTAuNTQ1MyAxMDY0LjY4IDg4LjIxMzVDMTA2OS44OSA4NS44ODE3IDEwNzUuMDQgODQuNzE1'@; put 'OCAxMDgwLjExIDg0LjcxNThDMTA4NC45MSA4NC43MTU4IDEwODkuMzcgODUuNjA3NCAxMDkzLjQ5IDg3LjM5MDVDMTA5Ny42IDg5LjAzNjUgMTEwMS4xIDkxLjQzNjggMTEwMy45OCA5NC41OTE2QzExMDcgOTcuNjA5MiAxMTA5LjMzIDEwMS4xNzUgMTExMC45OCAxMDUuMjlDMTExMi42MiAx'@; put 'MDkuNDA1IDExMTMuNDQgMTEzLjkzMiAxMTEzLjQ0IDExOC44N1YxODQuMDkxQzExMTMuNDQgMTg2LjY5NyAxMTEyLjE0IDE4OCAxMTA5LjUzIDE4OEgxMDkzLjQ5QzEwOTIuMzkgMTg4IDEwOTEuNDMgMTg3LjY1NyAxMDkwLjYxIDE4Ni45NzFDMTA4OS45MiAxODYuMTQ4IDEwODkuNTggMTg1'@; put 'LjE4OCAxMDg5LjU4IDE4NC4wOTFWMTI2LjY4OEMxMDg5LjU4IDEyMS4wNjQgMTA4OC4yNyAxMTYuNzQ0IDEwODUuNjcgMTEzLjcyNkMxMDgzLjA2IDExMC41NzEgMTA3OS4zNiAxMDguOTk0IDEwNzQuNTYgMTA4Ljk5NEMxMDcxLjU0IDEwOC45OTQgMTA2OC41OSAxMDkuNjExIDEwNjUuNzEg'@; put 'MTEwLjg0NUMxMDYyLjk3IDExMS45NDMgMTA2MC41IDExMy41MiAxMDU4LjMgMTE1LjU3OEMxMDU2LjI1IDExNy40OTggMTA1NC41MyAxMTkuODMgMTA1My4xNiAxMjIuNTczQzEwNTEuOTMgMTI1LjMxNiAxMDUxLjMxIDEyOC4xOTcgMTA1MS4zMSAxMzEuMjE0TDEwNTAuOSAxODQuMDkxWk0x'@; put 'MTI3Ljg3IDg5LjAzNjVDMTEyNy44NyA4Ny45MzkxIDExMjguMjEgODcuMDQ3NiAxMTI4LjkgODYuMzYxOEMxMTI5LjU4IDg1LjUzODggMTEzMC40OCA4NS4xMjczIDExMzEuNTcgODUuMTI3M0gxMTQ2LjhWNTguMTc0NkMxMTQ2LjggNTcuMDc3MyAxMTQ3LjE0IDU2LjE4NTggMTE0Ny44MyA1'@; put 'NS40OTk5QzExNDguNjUgNTQuNjc3IDExNDkuNjEgNTQuMjY1NSAxMTUwLjcxIDU0LjI2NTVIMTE2Ni43NkMxMTY5LjM2IDU0LjI2NTUgMTE3MC42NyA1NS41Njg1IDExNzAuNjcgNTguMTc0NlY4NS4xMjczSDExODguNzdDMTE4OS44NyA4NS4xMjczIDExOTAuNzYgODUuNTM4OCAxMTkxLjQ1'@; put 'IDg2LjM2MThDMTE5Mi4xMyA4Ny4wNDc2IDExOTIuNDcgODcuOTM5MSAxMTkyLjQ3IDg5LjAzNjVWMTA0LjI2MkMxMTkyLjQ3IDEwNS4zNTkgMTE5Mi4xMyAxMDYuMjUgMTE5MS40NSAxMDYuOTM2QzExOTAuNzYgMTA3LjYyMiAxMTg5Ljg3IDEwNy45NjUgMTE4OC43NyAxMDcuOTY1SDExNzAu'@; put 'NjdWMTg0LjA5MUMxMTcwLjY3IDE4Ni42OTcgMTE2OS4zNiAxODggMTE2Ni43NiAxODhIMTE1MC43MUMxMTQ5LjYxIDE4OCAxMTQ4LjY1IDE4Ny42NTcgMTE0Ny44MyAxODYuOTcxQzExNDcuMTQgMTg2LjE0OCAxMTQ2LjggMTg1LjE4OCAxMTQ2LjggMTg0LjA5MVYxMDcuOTY1SDExMzEuNTdD'@; put 'MTEzMC40OCAxMDcuOTY1IDExMjkuNTggMTA3LjYyMiAxMTI4LjkgMTA2LjkzNkMxMTI4LjIxIDEwNi4yNSAxMTI3Ljg3IDEwNS4zNTkgMTEyNy44NyAxMDQuMjYyVjg5LjAzNjVaTTEyNzMuMjggMTA4LjE3MUMxMjcyLjg3IDEwOS4yNjggMTI3Mi4xOCAxMTAuMDIyIDEyNzEuMjIgMTEwLjQz'@; put 'NEMxMjcwLjI2IDExMC44NDUgMTI2OS4yMyAxMTAuNzc3IDEyNjguMTQgMTEwLjIyOEMxMjY3LjA0IDEwOS42OCAxMjY1LjY3IDEwOS4yIDEyNjQuMDIgMTA4Ljc4OEMxMjYyLjUxIDEwOC4zNzcgMTI2MC44NyAxMDguMTcxIDEyNTkuMDggMTA4LjE3MUMxMjU2LjA3IDEwOC4xNzEgMTI1My4x'@; put 'OSAxMDguNzg4IDEyNTAuNDQgMTEwLjAyMkMxMjQ3LjcgMTExLjI1NyAxMjQ1LjIzIDExMi45NzIgMTI0My4wNCAxMTUuMTY2QzEyNDAuOTggMTE3LjIyNCAxMjM5LjMzIDExOS42OTMgMTIzOC4xIDEyMi41NzNDMTIzNi44NiAxMjUuMzE2IDEyMzYuMjUgMTI4LjE5NyAxMjM2LjI1IDEzMS4y'@; put 'MTRMMTIzNS44NCAxODQuMDkxQzEyMzUuODQgMTg1LjE4OCAxMjM1LjQ5IDE4Ni4xNDggMTIzNC44MSAxODYuOTcxQzEyMzQuMTIgMTg3LjY1NyAxMjMzLjIzIDE4OCAxMjMyLjEzIDE4OEgxMjE1Ljg4QzEyMTQuNzggMTg4IDEyMTMuODIgMTg3LjY1NyAxMjEzIDE4Ni45NzFDMTIxMi4zMSAx'@; put 'ODYuMTQ4IDEyMTEuOTcgMTg1LjE4OCAxMjExLjk3IDE4NC4wOTFWODkuMDM2NUMxMjExLjk3IDg3LjkzOTEgMTIxMi4zMSA4Ny4wNDc2IDEyMTMgODYuMzYxOEMxMjEzLjgyIDg1LjUzODggMTIxNC43OCA4NS4xMjczIDEyMTUuODggODUuMTI3M0gxMjMyLjEzQzEyMzMuMjMgODUuMTI3MyAx'@; put 'MjM0LjEyIDg1LjUzODggMTIzNC44MSA4Ni4zNjE4QzEyMzUuNDkgODcuMDQ3NiAxMjM1Ljg0IDg3LjkzOTEgMTIzNS44NCA4OS4wMzY1Vjk0LjU5MTZDMTIzOS44MSA5MS43MTExIDEyNDQuMDcgODkuMzc5NCAxMjQ4LjU5IDg3LjU5NjJDMTI1My4xMiA4NS42NzU5IDEyNTcuOTkgODQuNzE1'@; put 'OCAxMjYzLjIgODQuNzE1OEMxMjY4LjU1IDg0LjcxNTggMTI3My4yMSA4NS43NDQ1IDEyNzcuMTkgODcuODAyQzEyNzkuMTEgODkuMDM2NSAxMjc5LjczIDkwLjYxMzggMTI3OS4wNCA5Mi41MzQxTDEyNzMuMjggMTA4LjE3MVpNMTI4NS4zMyAxMzYuNTY0QzEyODUuMzMgMTI5LjI5NCAxMjg2'@; put 'LjYzIDEyMi41MDQgMTI4OS4yNCAxMTYuMTk1QzEyOTEuODUgMTA5Ljg4NSAxMjk1LjM0IDEwNC4zOTkgMTI5OS43MyA5OS43MzUyQzEzMDQuMjYgOTUuMDcxNyAxMzA5LjU0IDkxLjQzNjggMTMxNS41NyA4OC44MzA3QzEzMjEuNjEgODYuMDg3NCAxMzI4LjEyIDg0LjcxNTggMTMzNS4xMiA4'@; put 'NC43MTU4QzEzNDIuMTIgODQuNzE1OCAxMzQ4LjU2IDg2LjA4NzQgMTM1NC40NiA4OC44MzA3QzEzNjAuNSA5MS40MzY4IDEzNjUuNzEgOTUuMDcxNyAxMzcwLjEgOTkuNzM1MkMxMzc0LjYyIDEwNC4zOTkgMTM3OC4xMiAxMDkuODg1IDEzODAuNTkgMTE2LjE5NUMxMzgzLjIgMTIyLjUwNCAx'@; put 'Mzg0LjUgMTI5LjI5NCAxMzg0LjUgMTM2LjU2NEMxMzg0LjUgMTQzLjgzMyAxMzgzLjIgMTUwLjYyMyAxMzgwLjU5IDE1Ni45MzJDMTM3OC4xMiAxNjMuMjQyIDEzNzQuNjIgMTY4LjcyOSAxMzcwLjEgMTczLjM5MkMxMzY1LjcxIDE3OC4wNTYgMTM2MC41IDE4MS43NTkgMTM1NC40NiAxODQu'@; put 'NTAyQzEzNDguNDMgMTg3LjEwOCAxMzQxLjkxIDE4OC40MTEgMTMzNC45MSAxODguNDExQzEzMjcuOTIgMTg4LjQxMSAxMzIxLjQgMTg3LjEwOCAxMzE1LjM3IDE4NC41MDJDMTMwOS4zMyAxODEuNzU5IDEzMDQuMDUgMTc4LjA1NiAxMjk5LjUzIDE3My4zOTJDMTI5NS4xNCAxNjguNzI5IDEy'@; put 'OTEuNjQgMTYzLjI0MiAxMjg5LjAzIDE1Ni45MzJDMTI4Ni41NiAxNTAuNjIzIDEyODUuMzMgMTQzLjgzMyAxMjg1LjMzIDEzNi41NjRaTTEzMTAuMjMgMTM2LjU2NEMxMzEwLjIzIDE0MC40MDQgMTMxMC44NCAxNDQuMDM5IDEzMTIuMDggMTQ3LjQ2OEMxMzEzLjMxIDE1MC43NiAxMzE1LjAz'@; put 'IDE1My42NDEgMTMxNy4yMiAxNTYuMTA5QzEzMTkuNDIgMTU4LjU3OCAxMzIyLjAyIDE2MC41NjcgMTMyNS4wNCAxNjIuMDc2QzEzMjguMDYgMTYzLjQ0OCAxMzMxLjM1IDE2NC4xMzQgMTMzNC45MSAxNjQuMTM0QzEzMzguNDggMTY0LjEzNCAxMzQxLjc3IDE2My40NDggMTM0NC43OSAxNjIu'@; put 'MDc2QzEzNDcuOTUgMTYwLjU2NyAxMzUwLjYyIDE1OC41NzggMTM1Mi44MSAxNTYuMTA5QzEzNTUuMDEgMTUzLjY0MSAxMzU2LjcyIDE1MC43NiAxMzU3Ljk2IDE0Ny40NjhDMTM1OS4xOSAxNDQuMDM5IDEzNTkuODEgMTQwLjQwNCAxMzU5LjgxIDEzNi41NjRDMTM1OS44MSAxMzIuNzIzIDEz'@; put 'NTkuMTkgMTI5LjE1NyAxMzU3Ljk2IDEyNS44NjVDMTM1Ni43MiAxMjIuNDM2IDEzNTUuMDEgMTE5LjQ4NyAxMzUyLjgxIDExNy4wMThDMTM1MC42MiAxMTQuNTQ5IDEzNDcuOTUgMTEyLjYyOSAxMzQ0Ljc5IDExMS4yNTdDMTM0MS43NyAxMDkuNzQ4IDEzMzguNDggMTA4Ljk5NCAxMzM0Ljkx'@; put 'IDEwOC45OTRDMTMzMS4zNSAxMDguOTk0IDEzMjguMDYgMTA5Ljc0OCAxMzI1LjA0IDExMS4yNTdDMTMyMi4wMiAxMTIuNjI5IDEzMTkuNDIgMTE0LjU0OSAxMzE3LjIyIDExNy4wMThDMTMxNS4wMyAxMTkuNDg3IDEzMTMuMzEgMTIyLjQzNiAxMzEyLjA4IDEyNS44NjVDMTMxMC44NCAxMjku'@; put 'MTU3IDEzMTAuMjMgMTMyLjcyMyAxMzEwLjIzIDEzNi41NjRaTTE0MDguMjEgMzcuMzk0NEMxNDA4LjIxIDM2LjI5NyAxNDA4LjU1IDM1LjQwNTUgMTQwOS4yNCAzNC43MTk3QzE0MTAuMDYgMzQuMDMzOCAxNDExLjAyIDMzLjY5MDkgMTQxMi4xMiAzMy42OTA5SDE0MjguMTZDMTQyOS4yNiAz'@; put 'My42OTA5IDE0MzAuMTUgMzQuMDMzOCAxNDMwLjg0IDM0LjcxOTdDMTQzMS42NiAzNS40MDU1IDE0MzIuMDcgMzYuMjk3IDE0MzIuMDcgMzcuMzk0NFYxODQuMDkxQzE0MzIuMDcgMTg2LjY5NyAxNDMwLjc3IDE4OCAxNDI4LjE2IDE4OEgxNDEyLjEyQzE0MTEuMDIgMTg4IDE0MTAuMDYgMTg3'@; put 'LjY1NyAxNDA5LjI0IDE4Ni45NzFDMTQwOC41NSAxODYuMTQ4IDE0MDguMjEgMTg1LjE4OCAxNDA4LjIxIDE4NC4wOTFWMzcuMzk0NFpNMTQ2MyAzNy4zOTQ0QzE0NjMgMzYuMjk3IDE0NjMuMzUgMzUuNDA1NSAxNDY0LjAzIDM0LjcxOTdDMTQ2NC44NSAzNC4wMzM4IDE0NjUuODEgMzMuNjkw'@; put 'OSAxNDY2LjkxIDMzLjY5MDlIMTQ4Mi45NkMxNDg0LjA2IDMzLjY5MDkgMTQ4NC45NSAzNC4wMzM4IDE0ODUuNjMgMzQuNzE5N0MxNDg2LjQ2IDM1LjQwNTUgMTQ4Ni44NyAzNi4yOTcgMTQ4Ni44NyAzNy4zOTQ0VjE4NC4wOTFDMTQ4Ni44NyAxODYuNjk3IDE0ODUuNTcgMTg4IDE0ODIuOTYg'@; put 'MTg4SDE0NjYuOTFDMTQ2NS44MSAxODggMTQ2NC44NSAxODcuNjU3IDE0NjQuMDMgMTg2Ljk3MUMxNDYzLjM1IDE4Ni4xNDggMTQ2MyAxODUuMTg4IDE0NjMgMTg0LjA5MVYzNy4zOTQ0Wk0xNTM3Ljc2IDE0OC4wODVDMTUzOS42OCAxNTIuODg2IDE1NDIuNTYgMTU2Ljc5NSAxNTQ2LjQgMTU5'@; put 'LjgxM0MxNTUwLjM3IDE2Mi44MyAxNTU0LjkgMTY0LjMzOSAxNTU5Ljk4IDE2NC4zMzlDMTU2My42OCAxNjQuMzM5IDE1NjcuMjUgMTYzLjcyMiAxNTcwLjY3IDE2Mi40ODhDMTU3NC4xIDE2MS4yNTMgMTU3Ni45OCAxNTkuNTM5IDE1NzkuMzIgMTU3LjM0NEMxNTgwLjE0IDE1Ni42NTggMTU4'@; put 'MS4wMyAxNTYuMzg0IDE1ODEuOTkgMTU2LjUyMUMxNTgzLjA5IDE1Ni41MjEgMTU4My45OCAxNTYuODY0IDE1ODQuNjcgMTU3LjU1TDE1OTYuMzkgMTY4LjY2QzE1OTcuMDggMTY5LjM0NiAxNTk3LjQyIDE3MC4yMzcgMTU5Ny40MiAxNzEuMzM1QzE1OTcuNDIgMTcyLjI5NSAxNTk3LjA4IDE3'@; put 'My4xMTggMTU5Ni4zOSAxNzMuODA0QzE1OTEuODcgMTc4LjYwNCAxNTg2LjUyIDE4Mi4yMzkgMTU4MC4zNCAxODQuNzA4QzE1NzQuMTcgMTg3LjE3NyAxNTY3LjM4IDE4OC40MTEgMTU1OS45OCAxODguNDExQzE1NTMuMTIgMTg4LjQxMSAxNTQ2Ljc0IDE4Ny4xNzcgMTU0MC44NCAxODQuNzA4'@; put 'QzE1MzUuMDggMTgyLjIzOSAxNTMwLjAxIDE3OC43NDEgMTUyNS42MiAxNzQuMjE1QzE1MjAuODIgMTY5LjQxNCAxNTE3LjExIDE2My43MjIgMTUxNC41MSAxNTcuMTM4QzE1MTEuOSAxNTAuNTU0IDE1MTAuNiAxNDMuNTU5IDE1MTAuNiAxMzYuMTUyQzE1MTAuNiAxMjkuMDIgMTUxMS45IDEy'@; put 'Mi4zNjcgMTUxNC41MSAxMTYuMTk1QzE1MTcuMTEgMTA5Ljg4NSAxNTIwLjYxIDEwNC4zOTkgMTUyNSA5OS43MzUyQzE1MjkuNTMgOTUuMDcxNyAxNTM0LjgxIDkxLjQzNjggMTU0MC44NCA4OC44MzA3QzE1NDYuODggODYuMDg3NCAxNTUzLjMyIDg0LjcxNTggMTU2MC4xOCA4NC43MTU4QzE1'@; put 'NjYuNDkgODQuNzE1OCAxNTcyLjMyIDg1Ljg4MTcgMTU3Ny42NyA4OC4yMTM1QzE1ODMuMTYgOTAuNTQ1MyAxNTg3Ljk2IDkzLjc2ODYgMTU5Mi4wNyA5Ny44ODM1QzE1OTMuODYgOTkuNTI5NSAxNTk1LjU3IDEwMS40NSAxNTk3LjIyIDEwMy42NDRDMTU5OC44NiAxMDUuODM5IDE2MDAuMyAx'@; put 'MDguMzc3IDE2MDEuNTQgMTExLjI1N0MxNjAyLjc3IDExNC4xMzcgMTYwMy43MyAxMTcuNDk4IDE2MDQuNDIgMTIxLjMzOEMxNjA1LjI0IDEyNS4wNDIgMTYwNS42NSAxMjkuMjk0IDE2MDUuNjUgMTM0LjA5NUMxNjA1LjY1IDEzNy4zODcgMTYwNS40NSAxNDAuOTUzIDE2MDUuMDMgMTQ0Ljc5'@; put 'M0MxNjA0Ljc2IDE0Ni45ODggMTYwMy41MyAxNDguMDg1IDE2MDEuMzMgMTQ4LjA4NUgxNTM3Ljc2Wk0xNTU5LjU2IDEwOC43ODhDMTU1My44IDEwOC43ODggMTU0OS4wNyAxMTAuMzY1IDE1NDUuMzcgMTEzLjUyQzE1NDEuNjYgMTE2LjY3NSAxNTM5LjA2IDEyMC41ODQgMTUzNy41NSAxMjUu'@; put 'MjQ4SDE1ODAuNzZDMTU3OS4yNSAxMjAuODU4IDE1NzYuNzEgMTE3LjAxOCAxNTczLjE0IDExMy43MjZDMTU2OS43MSAxMTAuNDM0IDE1NjUuMTkgMTA4Ljc4OCAxNTU5LjU2IDEwOC43ODhaTTE2ODguNTEgMTA4LjE3MUMxNjg4LjEgMTA5LjI2OCAxNjg3LjQxIDExMC4wMjIgMTY4Ni40NSAx'@; put 'MTAuNDM0QzE2ODUuNDkgMTEwLjg0NSAxNjg0LjQ2IDExMC43NzcgMTY4My4zNyAxMTAuMjI4QzE2ODIuMjcgMTA5LjY4IDE2ODAuOSAxMDkuMiAxNjc5LjI1IDEwOC43ODhDMTY3Ny43NCAxMDguMzc3IDE2NzYuMSAxMDguMTcxIDE2NzQuMzEgMTA4LjE3MUMxNjcxLjI5IDEwOC4xNzEgMTY2'@; put 'OC40MSAxMDguNzg4IDE2NjUuNjcgMTEwLjAyMkMxNjYyLjkzIDExMS4yNTcgMTY2MC40NiAxMTIuOTcyIDE2NTguMjYgMTE1LjE2NkMxNjU2LjIxIDExNy4yMjQgMTY1NC41NiAxMTkuNjkzIDE2NTMuMzMgMTIyLjU3M0MxNjUyLjA5IDEyNS4zMTYgMTY1MS40NyAxMjguMTk3IDE2NTEuNDcg'@; put 'MTMxLjIxNEwxNjUxLjA2IDE4NC4wOTFDMTY1MS4wNiAxODUuMTg4IDE2NTAuNzIgMTg2LjE0OCAxNjUwLjAzIDE4Ni45NzFDMTY0OS4zNSAxODcuNjU3IDE2NDguNDYgMTg4IDE2NDcuMzYgMTg4SDE2MzEuMTFDMTYzMC4wMSAxODggMTYyOS4wNSAxODcuNjU3IDE2MjguMjMgMTg2Ljk3MUMx'@; put 'NjI3LjU0IDE4Ni4xNDggMTYyNy4yIDE4NS4xODggMTYyNy4yIDE4NC4wOTFWODkuMDM2NUMxNjI3LjIgODcuOTM5MSAxNjI3LjU0IDg3LjA0NzYgMTYyOC4yMyA4Ni4zNjE4QzE2MjkuMDUgODUuNTM4OCAxNjMwLjAxIDg1LjEyNzMgMTYzMS4xMSA4NS4xMjczSDE2NDcuMzZDMTY0OC40NiA4'@; put 'NS4xMjczIDE2NDkuMzUgODUuNTM4OCAxNjUwLjAzIDg2LjM2MThDMTY1MC43MiA4Ny4wNDc2IDE2NTEuMDYgODcuOTM5MSAxNjUxLjA2IDg5LjAzNjVWOTQuNTkxNkMxNjU1LjA0IDkxLjcxMTEgMTY1OS4yOSA4OS4zNzk0IDE2NjMuODIgODcuNTk2MkMxNjY4LjM1IDg1LjY3NTkgMTY3My4y'@; put 'MiA4NC43MTU4IDE2NzguNDMgODQuNzE1OEMxNjgzLjc4IDg0LjcxNTggMTY4OC40NCA4NS43NDQ1IDE2OTIuNDIgODcuODAyQzE2OTQuMzQgODkuMDM2NSAxNjk0Ljk2IDkwLjYxMzggMTY5NC4yNyA5Mi41MzQxTDE2ODguNTEgMTA4LjE3MVoiIGZpbGw9IiM4RUM2M0YiLz4KPC9nPgo8ZGVm'@; put 'cz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMDVfNyI+CjxyZWN0IHdpZHRoPSIxNjg5IiBoZWlnaHQ9IjI0MCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K'; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64) filename filecode clear; %let filename=dc-logo.svg; filename filecode temp lrecl=32767; data _null_; file filecode; put 'PHN2ZyB3aWR0aD0iNzAiIGhlaWdodD0iNzAiIHZpZXdCb3g9IjAgMCA3MCA3MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzEwMV84KSI+CjxwYXRoIGQ9Ik0zNy41OTkzIDE2LjYyMTJDMzguNTkxNiAx'@; put 'Ni43NDE1IDM5LjU1MzggMTYuODMxNyA0MC41NDYxIDE2Ljk1MTlDNDIuOTIxNiAxNy4yODI3IDQ1LjIzNyAxNy43MzM3IDQ3LjQwMiAxOC44NDYzQzQ4LjAzMzQgMTkuMTc3MSA0OC42MzQ4IDE5LjUzNzkgNDkuMDg1OSAyMC4xMDkyQzQ5LjgwNzUgMjAuOTUxMiA0OS43Nzc0IDIxLjg1MzMg'@; put 'NDkuMDU1OCAyMi42OTUyQzQ4LjMwNCAyMy41MzcxIDQ3LjM0MTggMjQuMDE4MyA0Ni4zMTk1IDI0LjQwOTJDNDMuOTQ0IDI1LjM0MTMgNDEuNDQ4MiAyNS43NjIzIDM4LjkyMjQgMjUuOTcyOEMzNC44MDI5IDI2LjMwMzUgMzAuNzQzNSAyNi4xNTMyIDI2LjcxNDIgMjUuMTkxQzI1LjM5MTEg'@; put 'MjQuODkwMyAyNC4wOTgxIDI0LjQ2OTMgMjIuOTI1NCAyMy44MDc4QzIyLjQ3NDQgMjMuNTY3MiAyMi4wNTM0IDIzLjI2NjUgMjEuNjYyNSAyMi45MDU3QzIwLjU4IDIxLjg1MzMgMjAuNTggMjAuNzQwNyAyMS42OTI2IDE5Ljc0ODRDMjIuODk1NCAxOC42NjU5IDI0LjM2ODggMTguMTU0NyAy'@; put 'NS44NzIyIDE3LjczMzdDMjcuOTc3MSAxNy4xMzI0IDMwLjExMiAxNi44MzE3IDMyLjI3NyAxNi42ODEzQzMyLjQ1NzUgMTYuNjgxMyAzMi42Njc5IDE2Ljc0MTUgMzIuODE4MyAxNi41OTExQzM0LjM4MTkgMTYuNjIxMiAzNi4wMDU2IDE2LjYyMTIgMzcuNTk5MyAxNi42MjEyWiIgZmlsbD0i'@; put 'I0UwRTBFMCIvPgo8cGF0aCBkPSJNMjAuODUwNyA0MS4zMDgyQzIyLjc3NTEgNDMuNzczOCAyNS41MTE1IDQ0LjY3NTkgMjguMzM4IDQ1LjI3NzNDMzMuOTMwOSA0Ni40ODAxIDM5LjUyMzggNDYuMzI5NyA0NC45NjYzIDQ0LjQwNTNDNDYuNjUwMiA0My44MDM5IDQ4LjIxMzggNDIuOTkyIDQ5'@; put 'LjMyNjQgNDEuNDg4NkM0OS41MDY4IDQxLjI0OCA0OS41OTcgNDEuMzY4MyA0OS42ODcyIDQxLjU0ODdDNDkuODY3NyA0MS45Mzk2IDQ5Ljk1NzkgNDIuMzMwNSA0OS45NTc5IDQyLjc1MTVDNDkuOTU3OSA0NC4yMjQ5IDQ5Ljk1NzkgNDUuNzI4NCA0OS45NTc5IDQ3LjIwMThDNDkuOTU3OSA0'@; put 'OC4xNjQgNDkuNTA2OCA0OC45MTU3IDQ4Ljg0NTMgNDkuNTc3MkM0Ny40NjIxIDUwLjk2MDQgNDUuNzE4MSA1MS43MTIyIDQzLjg4MzggNTIuMjgzNUM0MC4xODUzIDUzLjQyNjEgMzYuMzk2NiA1My42NjY3IDMyLjU3NzcgNTMuMzk2MUMyOS43MjEyIDUzLjE4NTYgMjYuOTU0OCA1Mi42NDQz'@; put 'IDI0LjMzODcgNTEuNDcxNkMyMy4yMjYxIDUwLjk2MDQgMjIuMjAzOCA1MC4zNTkxIDIxLjM5MTkgNDkuNDI2OUMyMC43NjA1IDQ4LjcwNTIgMjAuNDI5NyA0Ny44OTM0IDIwLjQyOTcgNDYuOTMxMUMyMC40NTk4IDQ1LjU3OCAyMC40Mjk3IDQ0LjIyNDkgMjAuNDI5NyA0Mi44NzE4QzIwLjQy'@; put 'OTcgNDIuMzMwNSAyMC41MTk5IDQxLjgxOTMgMjAuODUwNyA0MS4zMDgyWiIgZmlsbD0iIzhFQzYzRiIvPgo8cGF0aCBkPSJNMjAuODgwNyAzMi4wMTY3QzIyLjQ3NDQgMzQuMTUxNiAyNC42OTk2IDM1LjA1MzcgMjcuMDc1IDM1LjY4NTJDMzIuNzU4MiAzNy4xODg2IDM4LjQ0MTMgMzcuMTU4'@; put 'NiA0NC4wNjQzIDM1LjQ3NDdDNDUuOTI4NiAzNC45MzM0IDQ3LjY3MjYgMzQuMTIxNiA0OS4wMjU4IDMyLjY0ODJDNDkuMjA2MiAzMi40Njc3IDQ5LjMyNjUgMzIuMDQ2OCA0OS41MzY5IDMyLjEwNjlDNDkuODM3NiAzMi4xOTcxIDQ5LjgzNzYgMzIuNjE4MSA0OS45Mjc4IDMyLjk0ODhDNTAu'@; put 'MDQ4MSAzMy40NiA0OS45ODggMzMuOTcxMiA0OS45ODggMzQuNDgyNEM0OS45ODggMzUuNTA0NyA0OS45NTc5IDM2LjQ5NyA0OS45ODggMzcuNTE5NEM1MC4wNDgxIDM4Ljc4MjMgNDkuNTM2OSAzOS43NzQ2IDQ4LjYwNDggNDAuNTg2NUM0Ny4xOTE1IDQxLjg0OTQgNDUuNDc3NiA0Mi42MDEx'@; put 'IDQzLjY0MzMgNDMuMDgyMkMzNy40NzkxIDQ0LjczNjEgMzEuMzQ0OSA0NC43MDYgMjUuMzAwOSA0Mi42MDExQzIzLjgyNzUgNDIuMDkgMjIuNDc0NCA0MS4zNjgzIDIxLjM5MTkgNDAuMTk1NkMyMC43MzA0IDM5LjQ3MzkgMjAuMzk5NyAzOC42MzIgMjAuMzk5NyAzNy42Mzk3QzIwLjQyOTcg'@; put 'MzYuMzE2NiAyMC4zOTk3IDM0Ljk2MzUgMjAuMzk5NyAzMy42NDA0QzIwLjQyOTcgMzMuMDk5MiAyMC41MTk5IDMyLjU1NzkgMjAuODgwNyAzMi4wMTY3WiIgZmlsbD0iI0UwRTBFMCIvPgo8cGF0aCBkPSJNMjAuODIwNyAyMy4wODYxQzIxLjI3MTcgMjQuNDA5MSAyMi4zNTQyIDI1LjAxMDUg'@; put 'MjMuNDk2OSAyNS41NTE3QzI1LjU0MTYgMjYuNTE0IDI3LjczNjYgMjYuOTY1IDI5LjkzMTcgMjcuMjM1N0MzNC4yOTE4IDI3Ljc3NjkgMzguNjUxOSAyNy43MTY4IDQyLjk1MTggMjYuODE0N0M0NC42OTU4IDI2LjQ1MzkgNDYuMzc5NyAyNS45NzI3IDQ3LjkxMzIgMjUuMDEwNUM0OC43ODUz'@; put 'IDI0LjQ2OTMgNDkuMjM2MyAyMy45NTgxIDQ5LjUzNyAyMy4xMTYxQzQ5LjgzNzcgMjMuNTM3MSA0OS45Mjc5IDIzLjk4ODIgNDkuOTI3OSAyNC40MzkyQzQ5LjkyNzkgMjUuOTQyNyA0OS45NTggMjcuNDE2MSA0OS45Mjc5IDI4LjkxOTVDNDkuODk3OCAzMC4xODI1IDQ5LjE3NjIgMzEuMDg0'@; put 'NSA0OC4yNDQgMzEuODM2M0M0Ni41IDMzLjIxOTUgNDQuNDU1MyAzMy45NDExIDQyLjMyMDMgMzQuNDIyM0MzNi42NjczIDM1LjY1NTEgMzEuMDc0NCAzNS41NjQ5IDI1LjU3MTcgMzMuNzAwNkMyNC4xMjgzIDMzLjIxOTUgMjIuNzQ1MSAzMi41Mjc5IDIxLjYzMjYgMzEuNDQ1NEMyMC43OTA2'@; put 'IDMwLjYzMzUgMjAuMzM5NiAyOS43MDE0IDIwLjM2OTYgMjguNDk4NkMyMC4zOTk3IDI3LjIwNTYgMjAuMzY5NiAyNS45MTI2IDIwLjM2OTYgMjQuNjE5NkMyMC40Mjk4IDI0LjA0ODMgMjAuNTIgMjMuNTY3MiAyMC44MjA3IDIzLjA4NjFaIiBmaWxsPSIjOEVDNjNGIi8+CjxwYXRoIGQ9Ik01'@; put 'NS4zNDAzIDYzLjQzOTNDNjAuMjQxNyA2My43MDk5IDYyLjg1NzcgNTcuNjk2IDU5LjMwOTUgNTQuMjk4MUM1NS41ODA5IDUwLjcxOTkgNDkuNDQ2NyA1NC4wNTc2IDUwLjQwOSA1OS4xMDkzQzI4LjI0NzggNzMuMjQxOSAtMC4yNTgwMzQgNTIuMTAzMSA3Ljg2MDcxIDI2LjQyMzhMMi4zODgw'@; put 'OCAyMi43NTUzQy05LjkxMDMzIDU1LjQ0MDggMjcuOTQ3MSA4My4wNzQ2IDU1LjM0MDMgNjMuNDM5M1pNNTMuNzc2NyA1Ni4zNzI5QzU2LjA2MiA1My45OTc0IDU5LjcwMDQgNTcuMzA1MSA1Ny41NjU1IDU5LjgwMDlDNTUuMzEwMyA2Mi40MTY5IDUxLjM0MTEgNTguODk4OCA1My43NzY3IDU2'@; put 'LjM3MjlaIiBmaWxsPSIjRTBFMEUwIi8+CjxwYXRoIGQ9Ik0xMC42MjcyIDE1LjI2ODFDMTQuMTQ1MyAxOC42MzU4IDE5Ljk0ODcgMTUuODY5NCAxOS42MTc5IDExLjA1ODNDNDEuNzQ5IC0zLjE5NDYxIDcwLjQwNTIgMTcuOTE0MiA2Mi4yODY1IDQzLjY4MzZMNjcuNzU5MSA0Ny4zNTIxQzc5'@; put 'LjY5NjcgMTUuNTk4OCA0My40NjMgLTEyLjk5NzIgMTUuNDM4MyA2LjIxNzE1QzEwLjE3NjEgNS4xMzQ2NSA2Ljc3ODI3IDExLjU2OTUgMTAuNjI3MiAxNS4yNjgxWk0xNi4xNTk5IDEzLjE5MzNDMTMuODE0NSAxNS42Mjg5IDEwLjExNiAxMi4wODA3IDEyLjQ2MTQgOS42NDUwN0MxNC44MDY4'@; put 'IDcuMjA5NDQgMTguNTA1NCAxMC43NTc2IDE2LjE1OTkgMTMuMTkzM1oiIGZpbGw9IiM4RUM2M0YiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMDFfOCI+CjxyZWN0IHdpZHRoPSI3MCIgaGVpZ2h0PSI3MCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8'@; put 'L3N2Zz4K'; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64) filename filecode clear; %let filename=favicon.ico; filename filecode temp lrecl=96132; data _null_; file filecode; put 'iVBORw0KGgoAAAANSUhEUgAAApgAAAJ6CAYAAACMvTJAAAAMFGlDQ1BJQ0MgUHJvZmlsZQAASImVVwdUk8kWnr+kEBJaIAJSQm+CFOnSe0c62AhJgFAiJAQVO7Ko4FpQEQFR0RUQRdcCyKIidmUR7P1hQWVlXSzYUHmTArq+dt49Z/75cufeO9+d3JkzA4CiNSsnJwtVAiCbnyeICvBmJiQmMUmP'@; put 'AAY0AB0YAiUWW5jjFRkZCqCM9X+XdzcAIu6vWopj/ev4fxVlDlfIBgCJhDiFI2RnQ3wYAFydnSPIA4DQBfUGc/NyxHgIYlUBJAgAERfjNClWF+MUKZ4ksYmJ8oHYEwAylcUSpAGgIObNzGenwTgKYo7WfA6PD3E1xO7sdBYH4nsQT8rOngOxIhli05Tv4qT9LWbKeEwWK20cS3ORCNmXJ8zJYs3/'@; put 'P5fjf0t2lmhsDn3YqOmCwChxznDd6jPnhIgxFeJ2fkp4BMQqEJ/ncST2YnwnXRQYK7MfZAt94JoBBgAo4LB8QyDWgpghyoz1kmFblkDiC+3RcF5eUIwMpwjmRMnio/n8rPBQWZyV6dygMVzDFfpFj9mk8vyDIIaVhh4uSI+Jl/JET+fz4sIhVoC4R5gZHSLzfVCQ7hM+ZiMQRYk5G0L8NlXgHyW1'@; put 'wdSzhWN5YVZslmQuWAuYZ156TKDUF0vgChNCxzhwuL5+Ug4Yh8uPlXHDYHV5R8l8i3OyImX2WA03KyBKus7YAWF+9JjvlTxYYNJ1wB5lsIIjZXO9y8mLjJFyw1EQCnyAL2ACEWwpYA7IALzuwZZB+Es64g9YQADSABdYyjRjHvGSET78RoMC8CdEXCAc9/OWjHJBPtR/GddKv5YgVTKaL/HIBE8h'@; put 'zsY1cXfcFQ+FX0/YbHEn3HnMj6k4NivRj+hLDCT6E83GebAh6yzYBID3b3QhsOfC7MRc+GM5fItHeEroJTwiXCf0EW6DOPBEEkVmNZtXKPiBOROEgT4YzV+WXcr32eHGkLU97o27Qf6QO87ANYElPgVm4oV7wNzsofZ7hqJxbt/W8sf5xKy/z0emVzBXsJexSBn/Z3zGrX6M4vPdGnFgH/KjJbYS'@; put 'O4Sdw05iF7B2rAUwsRNYK9aFHRPj8Up4IqmEsdmiJNwyYRzemI11o/WA9ecf5mbJ5hevlzCPOy9PvBl85uTMF/DS0vOYXvA05jKD+GyrSUxbaxsnAMRnu/ToeMOQnNkI4+I3XW4HAM4lUJn2TccyAODoUwDo777pDF7Dcl8HwLEetkiQL9WJj2NAABSgCHeFBtABBsAU5mMLHIAr8AR+IBhEgBiQ'@; put 'CGbBFU8H2ZDzXLAQLAPFoBSsA5tAJdgGdoJ6sA8cBC2gHZwEZ8El0AOug7uwLvrBCzAE3oERBEFICA2hIxqILmKEWCC2iBPijvghoUgUkogkI2kIHxEhC5HlSClShlQiO5AG5FfkKHISuYD0IreRh8gA8hr5hGIoFVVFtVFjdDLqhHqhIWgMOhNNQ3PRArQIXYNWoLXoXrQZPYleQq+jfegLdBgD'@; put 'mDzGwPQwS8wJ88EisCQsFRNgi7ESrByrxZqwNvg/X8X6sEHsI07E6TgTt4S1GYjH4mw8F1+Mr8Yr8Xq8GT+NX8Uf4kP4VwKNoEWwILgQgggJhDTCXEIxoZywm3CEcAbum37COyKRyCCaEB3hvkwkZhAXEFcTtxL3EzuIvcTHxGESiaRBsiC5kSJILFIeqZi0hbSXdIJ0hdRP+kCWJ+uSbcn+5CQy'@; put 'n1xILifvIR8nXyE/I4/IKckZybnIRchx5ObLrZXbJdcmd1muX26EokwxobhRYigZlGWUCkoT5QzlHuWNvLy8vryz/DR5nvxS+Qr5A/Ln5R/Kf6SqUM2pPtQZVBF1DbWO2kG9TX1Do9GMaZ60JFoebQ2tgXaK9oD2QYGuYKUQpMBRWKJQpdCscEXhpaKcopGil+IsxQLFcsVDipcVB5XklIyVfJRY'@; put 'SouVqpSOKt1UGlamK9soRyhnK69W3qN8Qfm5CknFWMVPhaNSpLJT5ZTKYzpGN6D70Nn05fRd9DP0flWiqolqkGqGaqnqPtVu1SE1FbUpanFq89Sq1I6p9TEwhjEjiJHFWMs4yLjB+DRBe4LXBO6EVROaJlyZ8F59orqnOle9RH2/+nX1TxpMDT+NTI31Gi0a9zVxTXPNaZpzNWs0z2gOTlSd6DqR'@; put 'PbFk4sGJd7RQLXOtKK0FWju1urSGtXW0A7RztLdon9Ie1GHoeOpk6GzUOa4zoEvXddfl6W7UPaH7B1ON6cXMYlYwTzOH9LT0AvVEejv0uvVG9E30Y/UL9ffr3zegGDgZpBpsNOg0GDLUNQwzXGjYaHjHSM7IySjdaLPROaP3xibG8cYrjFuMn5uomwSZFJg0mtwzpZl6mOaa1ppeMyOaOZllmm01'@; put '6zFHze3N082rzC9boBYOFjyLrRa9kwiTnCfxJ9VOumlJtfSyzLdstHxoxbAKtSq0arF6OdlwctLk9ZPPTf5qbW+dZb3L+q6Nik2wTaFNm81rW3Nbtm2V7TU7mp2/3RK7VrtXUyymcKfUTLllT7cPs19h32n/xcHRQeDQ5DDgaOiY7FjteNNJ1SnSabXTeWeCs7fzEud2548uDi55Lgdd/nK1dM10'@; put '3eP6fKrJVO7UXVMfu+m7sdx2uPW5M92T3be793noebA8aj0eeRp4cjx3ez7zMvPK8Nrr9dLb2lvgfcT7vY+LzyKfDl/MN8C3xLfbT8Uv1q/S74G/vn+af6P/UIB9wIKAjkBCYEjg+sCbQdpB7KCGoKFgx+BFwadDqCHRIZUhj0LNQwWhbWFoWHDYhrB74Ubh/PCWCBARFLEh4n6kSWRu5G/TiNMi'@; put 'p1VNexplE7Uw6lw0PXp29J7odzHeMWtj7saaxopiO+MU42bENcS9j/eNL4vvS5icsCjhUqJmIi+xNYmUFJe0O2l4ut/0TdP7Z9jPKJ5xY6bJzHkzL8zSnJU169hsxdms2YeSCcnxyXuSP7MiWLWs4ZSglOqUIbYPezP7BceTs5EzwHXjlnGfpbqllqU+T3NL25A2kO6RXp4+yPPhVfJeZQRmbMt4'@; put 'nxmRWZc5mhWftT+bnJ2cfZSvws/kn56jM2fenN4ci5zinL5cl9xNuUOCEMFuISKcKWzNU4XXnC6Rqegn0cN89/yq/A9z4+Yemqc8jz+va775/FXznxX4F/yyAF/AXtC5UG/hsoUPF3kt2rEYWZyyuHOJwZKiJf1LA5bWL6Msy1z2e6F1YVnh2+Xxy9uKtIuWFj3+KeCnxmKFYkHxzRWuK7atxFfy'@; put 'Vnavslu1ZdXXEk7JxVLr0vLSz6vZqy/+bPNzxc+ja1LXdK91WFuzjriOv+7Geo/19WXKZQVljzeEbWjeyNxYsvHtptmbLpRPKd+2mbJZtLmvIrSidYvhlnVbPlemV16v8q7aX61Vvar6/VbO1is1njVN27S3lW77tJ23/daOgB3Ntca15TuJO/N3Pt0Vt+vcL06/NOzW3F26+0sdv66vPqr+dINj'@; put 'Q8MerT1rG9FGUePA3hl7e/b57mttsmzasZ+xv/QAOCA68Mevyb/eOBhysPOQ06Gmw0aHq4/Qj5Q0I83zm4da0lv6WhNbe48GH+1sc2078pvVb3Xteu1Vx9SOrT1OOV50fPREwYnhjpyOwZNpJx93zu68eyrh1LXT0053nwk5c/6s/9lT57zOnTjvdr79gsuFoxedLrZccrjU3GXfdeR3+9+PdDt0'@; put 'N192vNza49zT1ju19/gVjysnr/pePXst6Nql6+HXe2/E3rh1c8bNvlucW89vZ91+dSf/zsjdpfcI90ruK90vf6D1oPYfZv/Y3+fQd+yh78OuR9GP7j5mP37xRPjkc3/RU9rT8me6zxqe2z5vH/Af6Plj+h/9L3JejAwW/6n8Z/VL05eH//L8q2soYaj/leDV6OvVbzTe1L2d8rZzOHL4wbvsdyPv'@; put 'Sz5ofKj/6PTx3Kf4T89G5n4mfa74Yval7WvI13uj2aOjOSwBS3IVwGBDU1MBeF0HAC0R3h16AKAoSN9eEkGk70UJAv8JS99nEnEAoM4TgNilAITCO0oNbEYQU2EvvnrHeALUzm68yUSYamcrjUWFLxjCh9HRN9oAkNoA+CIYHR3ZOjr6ZRckexuAjlzpm08sRHi/324mRt2XRobAD/JPCotuA2JA'@; put 'n4YAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAGdaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA1LjQuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8y'@; put 'Mi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjY2NDwvZXhpZjpQaXhlbFhEaW1lbnNp'@; put 'b24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj42MzQ8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KSHKtHgAAABxpRE9UAAAAAgAAAAAAAAE9AAAAKAAAAT0AAAE9AACKlRxL/UIAAEAASURB'@; put 'VHgB7L0HgNxmeqb5FVChIzuRTTZzzlESRUVSFCUqzIwmjyZnx71zWO96b89h7b31ede+27O9DjOe8eSo0USlURxpGESKYhBzzqFJdrNzqADg3g/FoppUk6zuQlWjUC+kZmXgx/OjUC++GFq25v2OcCEBEiABEiABEiABEiABjwiEKDA9IsnVkAAJkAAJkAAJkAAJuAQoMHkgkAAJkAAJkAAJkAAJ'@; put 'eEqAAtNTnFwZCZAACZAACZAACZAABSaPARIgARIgARIgARIgAU8JUGB6ipMrIwESIAESIAESIAESoMDkMUACJEACJEACJEACJOApAQpMT3FyZSRAAiRAAiRAAiRAAhSYPAZIgARIgARIgARIgAQ8JUCB6SlOrowESIAESIAESIAESIACk8cACZAACZAACZAACZCApwQoMD3FyZWRAAmQAAmQAAmQ'@; put 'AAlQYPIYIAESIAESIAESIAES8JQABaanOLkyEiABEiABEiABEiABCkweAyRAAiRAAiRAAiRAAp4SoMD0FCdXRgIkQAIkQAIkQAIkQIHJY4AESIAESIAESIAESMBTAhSYnuLkykiABEiABEiABEiABCgweQyQAAmQAAmQAAmQAAl4SoAC01OcXBkJkAAJkAAJkAAJkAAFJo8BEiABEiABEiABEiAB'@; put 'TwlQYHqKkysjARIgARIgARIgARKgwOQxQAIkQAIkQAIkQAIk4CkBCkxPcXJlJEACJEACJEACJEACFJg8BkiABAJBwHEcMc2QmGFbwtGQhCM27ockEnMkHBOJRHGL52OVtlRW2VJW5UhZpT7W53G/PCTRCkdC+O+GC162EiL9vY4k4yGJ9+OvRx+HpKcTt90hSeA5Ky6SSuI+3qvvTyUMsZL4DJ6z'@; put 'UrqFm2znhoPgiyRAAiTgbwIUmP6eH46OBEgAOiwCsRgpE4mVO64grKjCfQjDimo8rtDnRaJ4LVrmuILSjAhEo4hpiBhh/BkG/iDp8E9IHLHtNFbbdtw70KaiAhUvZbdgTFgdVog7+r/7l34yvQUR27Lxh1tszMF2kokQBCfEJv5SEKb9EKAJiNI4/vp7DOntdiBUcb/r8nN9+j5DUimIXt0AFxIg'@; put 'ARIoIgIUmEU0WRwqCQSVQCjkSLlaFGFBrKh1ZFSDI1U16fsV+jwEZQRWyDCskZGwIWYEMi6juSAKIeH0H1ckqk7URUXdFb145U76tYL9e3mMeuPeNdJPGHqL/43LAlXHo0N0LAeC0oYYtcVSyyj+etU62mVId4dIT7uBPzwHS2lPZ0iSeN1x0uvUdXAhARIgAb8QoMD0y0xwHCQQeAJqXRRYHW2p'@; put 'qheprrelpt6RStxW1YorLqNwU0diEJBwdeuiVkUHwtG1NEIwXjY8ptVYUHmltSesrek7KkYzQlRFqA2LZjKekr5uQ/p6HAhPU7pbRbouhaSzNS1A1U2fhBv+pu7+oDLkfpEACYw4AQrMEZ8CDoAEgkfAhFtahaRaIkc12lI7xpHqBkuqa+DOhkUyVhZ24yPThkeISFju1PLoCsmRsjYWyzRcNlhe'@; put 'EZ5m2hKq2Ky4Lf39DuJARbph6Wxvgei8gFv86WMVpY59eQXFsr8cJwmQQFESoMAsymnjoEnAHwTUwhhBvGNlLayREJH14yAqxzpSOxqJNDVIoIFFUt3Zqh4zlkiKyDzOnWpHuN3VABxCgpMbD4r7qbiFWE+Izg5HOi4Y0nbelLaLAvEJiydc7bZF0ZnHWeGqSaAkCVBgluS0c6dJYHgEDI2VRGJN'@; put 'TaMjDeNtaWiCoMT9asRLRitMJNVArMAsqRZJ5LjAJElz5PBIe/wpFZwqPDE/IVg89b4FV3tfry29bQ7EpiGtZwy51GxAgGrSEWM7PZ4Bro4ESo4ABWbJTTl3mASyJ2AY6tqGmISQHD0RgnICXN6Imyyv1jJABvQjxCSECvQkxWT2WP3zTgjO8GXRqZbPVMKCGx1WTrjW284ZcvEUROc5uNcvocQS'@; put 'Xev+mTeOhASKgAAFZhFMEodIAoUiYJrpDO6GCbY0TlFBaSMZR7O7w9AfaTe3pdnZapmkcbJQ01K47ailE4LTtXSmIxtgzbSksw1CExbOC8dD0noWVk4kFdmWW6ipcGPjlkiABIqKAAVmUU0XB0sC3hIIwUJZhfjJMRMdaZzqyGgIylGjYaGshB/VdXUjfk/FJF3d3oIvprUNtHIiL70PgrPrkrgu'@; put '9fPHDWk5bbgC1EHNTy4kQAIkkCFAgZkhwVsSKAkC6cLkGj85biqslPirHWMj49uE5QqSEiIhpVXIr9QDKgko3MmhEMBxEtaC9e41iNbptKTjvMgFuNObj4Wk5YyJgvHIVqeFeyhU+V4SCBwBCszATSl3iASuJqBWyuo6WCinODJ+puXGUlbVaXccLVmD0jZaIogWyquh8VH2BNTCibR1vUDRxCHN'@; put 'VG89G5LmI6ach0u9HQlEzFLPHiffSQJBIUCBGZSZ5H6QwAACZlhLBjkybrolTbNsqUctysoaFKeE21sLdWscJWMoBwDjXW8IZGI4VXAiaSgO6+YlZKU3Q2g2HzZh3Uz3aUekpzfb41pIgAR8S4AC07dTw4GRwNAIRNFGsX6CJRNm2tI0A7UoUT6orNx0M73VskQr5dB48t0eEBhg3Uyh/WUnug2p'@; put 'G/2Mis0T6l6H0GSrSw9AcxUk4D8CFJj+mxOOiASyIqBFzmNlIg0oHzRxliXjYamsGYNWi1HUMITrW3ta00qZFUq+qRAEoCU1O91AAXgLsb49bbacg8g8cwCudIhOt8sQxWYhZoLbIIGCEKDALAhmboQEvCNgRhwZo5bKOY4rLGsaL4tKTdDR6uZMrvAONteUNwIG3OgmxKbmlHWh2PuF4yKnDkJs'@; put 'InaztwebpdjMG3uumAQKQYACsxCUuQ0SyJGAgfqUdYipnDQbwnK2dtBBi8YyJOlQVOZIlh/3A4EQxKYmCmlocNclWDaPGXJ6ryHnjpuS6NMRMmbTD/PEMZDAUAhQYA6FFt9LAgUkoIXNq2odCEpLpsyH1XKSjXaMSNWl+7uAs8BNFZpAxrJpIcRDOwqdOWjIyX3oKoRC71aCQrPQ88HtkcBwCVBg'@; put 'DpccP0cCeSDgxlWWizRNs2TyAhtlhWypqjHh9XYQUwnzDssJ5YE6V+lLAtCSrtiEZTMZt6UFpY9O7Ydlc78p7RCejkWx6ct546BI4DIBCkweCiTgAwLqAteC51MX2jJhnpYVciQcNhBTCWnpNvr2wSA5BBIYKQLQkvp9EPzf3+Wg7JHI8V2mnD1sSH+vCk2KzZGaGm6XBK5HgALzemT4PAnkmYBa'@; put 'K8sqHNSpdGTGopQ0ThOpqEIcGuIqLSbr5Jk+V1+sBNxe6UgO0koJHS0O3OchObHHlEvokW7Rqlms08pxB5AABWYAJ5W75G8C2lmnZowjUxdZMnW+JbVjUboF5VtYq9Lf88bR+Y+Aljwy4UKP99pyHiWPju40ELMZln7NQqdV038TxhGVFAEKzJKabu7sSBIIwQ3eiESdOStSMnEmrJfV6SxwWitH'@; put 'cla47UAQ0ILul62a7RccOYEMdHWht51nT/RAzC93oigJUGAW5bRx0MVCwE3agRt84hxbZt1iSeNkR6IxxlYWy/xxnMVHIGPV7O9x5PiekBzZhtqap/RijnGaxTebHHExE6DALObZ49j9S0BLDNU4Mg1u8BnLbNSwRH5CyJBkEgGWLITu33njyAJDQGM1IxFD4nFLLsB9fnir6RZyj/fCeR6i2AzM'@; put 'RHNHfEuAAtO3U8OBFSMBrV1ZN9aWGbfYMm2hJdUNJmIrbbG1xBAXEiCBwhOAlowgA11LfV06J3L4LVOOvRWSng6kpDNOs/DzwS2WDAEKzJKZau5oPglo4s6YyYivvM2SSXNtZIObkoSwZImhfFLnuklgaARc9znEZmeL5cZoHt5uSPsFjdOkRXNoJPluErg5AQrMmzPiO0jgugS0fuW4GZbMXY4W'@; put 'jkjciZWjtV0S9VNYEP26zPgCCYw0AW1NqVbNnk5LTqJT0MHNprSgU5BjU2iO9Nxw+8EhQIEZnLnknhSQgAlhOXGOJXPusKVpqiXhSJjxlQXkz02RgCcEEKcZRZxmX68lZw+FZP8bYTl/3EAtWgpNT/hyJSVNgAKzpKefOz9UAmbYlsnoCz5vhSVjpkBYmhSWQ2XI95OA7whonGYUYS1ICDp7JCQH'@; put 'NoflDLoEUWj6bqY4oCIiQIFZRJPFoY4cgbSwtGXuClvGTnXcLFRN3mFG+MjNCbdMAp4TUKEZMSWVTKEdZVj2bwrJ6QNI1KNF03PUXGHwCVBgBn+OuYc5EDBNWyaiN/j8OwcIS42x5EICJBBcApeFpjZBaD4Wkn2vG3IKQpMWzeBOOffMewIUmN4z5RoDQECTdybOtGT+PbaMmwaLpbZypLAMwMxy'@; put 'F0hgCAQgNMOwaFpWSs4dMmXvJkPOHqbQHAJBvrWECVBglvDkc9ffSUDbOTZNsWXePSlkhdtu8k6KxdHfCYrPkEApEbgsNNV1fvqQIfs3huUckoHYHaiUDgLu61AJUGAOlRjfH0gCBupY1jfZsuDelEyeq+0cEfBPYRnIueZOkcCwCVx2nSeQDHTqQEj2rtfyRrBosrzRsJHyg8ElQIEZ3LnlnmVB'@; put 'QDvGVY+GsLwrJdOWoEB6BepYJtjOMQt0fAsJlC4BnDeiyDrv67FRsF1kz+th6WDB9tI9HrjngxKgwBwUC58MPgFHyqscmYNyQ3NQJL26lgXSgz/n3EMS8JjA5Tqa3SjYfuhNuM5RR7OnHeqTLSg9Bs3VFSMBCsxinDWOOScCkYgjU5elZCEywxuaDLZ0zIkmP0wCJJDpDNR20ZZ9KG10ZFtY+ntD'@; put 'bjkz0iGBUiVAgVmqM1+C+62Z4ePR1nHRKiTyTLPdbo52yilBEtxlEiCBfBAw0ILSRAvKCydt2bXOlFP7kIGeUosmFxIoPQIUmKU35yW3x6GQIzWNtixamZRpC1F2BLFTKY2z5EICJEACeSBgov2kbdtyen9Idr8Wlovoc85EoDyA5ip9TYAC09fTw8HlQsBxHKmoEpm9IiXz7rCkahQTeHLhyc+S'@; put 'AAkMgQAMl9oVqK/PkiNbDdm70ZSuNgMroEVzCBT51iImQIFZxJPHoV+fgBl2ZPI8SxbfZ8no8Yak0JHDsegOvz4xvkICJJAXApcTgdouWrJnvSFHtkckmaDIzAtrrtRXBCgwfTUdHEyuBNQdXj/OlsWrbZk83xIjZCAGiq0dc+XKz5MACeRGQOMz9e/sEZGdvzJZqD03nPx0ERCgwCyCSeIQb05A'@; put '3eFllSJz1R1+J93hNyfGd5AACYwEAY0B10Lth+E2370+LN1tas2kRXMk5oLbzC8BCsz88uXaC0DAzQ5HW8clq1Mybgrd4QVAzk2QAAnkQgChmFHEZ7Zd0GxzuM13hMVKUmTmgpSf9R8BCkz/zQlHlDUBR6rqHJQdSsmspbaYUbjDk3SHZ42PbyQBEhhRAuoy125iJw/Abf5KBG0nQ+I4FJojOinc'@; put 'uGcEKDA9Q8kVFZKAGbZl6mJYLZHEUz/WcF1OwhyeQk4Bt0UCJOARgXAM2eZdlux93ZR9aDuZ6KPI9AgtVzOCBCgwRxA+Nz10Anq1XzPGkqX3Q2AugrUSotJmdvjQQfITJEACviKg3YDCpoHkH1t2vBRmEpCvZoeDGQ4BCszhUONnRoSAiRaPs27RTjwpqalnTcsRmQRulARIIK8EwijSHo/bcvAN'@; put 'Q/agG1BPl8GWk3klzpXniwAFZr7Icr2eEXBLD421ZemDFmpbwmhpO7RaekaXKyIBEvAdgcu1M5vRcnL7iyhpdNTEOY9uc9/NEwd0QwIUmDfEwxe9IKACMYzC52ZYxIg6KMiRPlGqUEyhT6+N7Ekrpd7ud55ATbx/1rIUYi1TSOgJSxLlPbiQAAmQQCkQ0JaTyYQjBzZnrJmaFPTO82QpsOA+Fh8B'@; put 'CszimzMfj9iRylr0/R5tS22j9v9Glne1LVG0aywrg7iEiztk4A/Fz1VLhhBCaaHDTjIBl1CfSH9XSLo6DOlqEem4COGJ1xfcjVjL+bBYYq/ZicfHU8+hkQAJ5IfAZWvmeVgzt72I2Myj6GtOa2Z+WHOtnhKgwPQUZ+mtLFpmy+iJtjTNsGTsFJFRDSh4XoVg9bD23H3bne0meOMf93YAJvdaXPUm'@; put '7hiGxhrph0SSKQslh9DLN3a5E8+1HxywDt4lgaESuMoIdPmBeyzqiq7cuclaBx7PKPR/ZRn4/JUneYcEciOg1sxEwpYDGw3ZtT4i8d5sD9TctstPk8BwCVBgDpdcCX/OMEUap6RkynxbJs52pLpeRAPTNZs7pRndcH3nurg60/0n1zXx80En4P7MwsqjC65R8A9a8qlKTBvK3edV/zn6HyIsbJjG'@; put 'bbQPtS0cs3jBsWEtx3Fr41at5LbWIbzJIaxGeC3w795ie2qZN3S7JuqxYhAGLrBC+J5oOEh6fFilrlPH4W7THVD6q6KPb7I9dyf4DwngGIvgXHv2iCNbnzel5TSOYRy3XEjAjwQoMP04Kz4dU7TclikLLZl9K6yW421YFxETicLmdF37dMICMqy0QIN4U8GoVu6McIQosyAWk8i41RjeOGoHpuIh'@; put '3DrS3yuoJYjQix48j+cSsPYk+/FcHJ9BSEYqhYuhBGJ/ITjVUu4gBsO9LsI67SzCfF2LOwSkKkYznB6bhoBEEGdsRnDBFcNfFBb4Mlj08RetwB/CRGIVCBep1Pvpx5EY4pNjKhqwDl0PVuxqTR2PCmGNDdGteHDRll4T/w0CAW032d9tyVu/NhGfaeJYxpeCCwn4jAAFps8mxI/DiZZZKA9ky5wV'@; put 'ttShqLmNHzsLFqCbWXn8uC8ck38JuJ5qWGhMtQhqhxNXQDoQhRCREId9PRCOiNPt6dA/Q3o7Q9Lbhdjd7hAEZVpAppAwZkNspmMt/Luvhlo8kfgWU6FZrqJTpHwUYpjxV1GTvtX7KkzLIEo1VCQMAeooJFcEqwUWd9L/+3dHObK8EdDviH5XTuwTWDPD0n4RIhPHAxcS8AsBCky/zIQPx6Fuv2mL'@; put 'LVm80paG8WrtUdciz2A+nKqiGlLGZayu5BBEU0ZIxvtTEodY7IFw7LhgSMclke4WU7rbVVymrZBqqfS7ePRqMtRiG47ZUo4kuSokz2kC3Sgk0FXX6WMbVRVgES2DyID1U5lk3P9q7aTL3atZ8P96IugC1H7Rkm0vmHJyH3qaozIHFxLwAwEKTD/Mgu/G4Ej9OFtueTAlk7TuJMZnJyksfTdNRTCg'@; put 'a8WkKp8UEhXUha2WyI6WkLRdCEknqgZ0tqhVEglecYMC6SZzayL+s0ItnhCdtWNQsWEc/hosiE9YPKu1aoOJUAKITjgaUrgwFFg7+Q2+CdQiflljfh3EU+zdZMquX6HtJC7IWM6oiCc0IEOnwAzIRHq1GyHDlnl32LL4viR+wMKIacsiIM2rjXM9RU/AFZSXW95p/VONdezvtaX7kiFtEJGtZwxp'@; put 'P49yVK1wa+NH0GK5FQ/nPO1uV+tmLRoT1EN06m3NaJEKiM4o3OyaAOVgTjR2VWt/UXR6iH+kV4UvXxSxmWeQAPTmLw0kAJm4UKM1c6SnpZS3T4FZyrM/YN/VvlGF2K/lj6ZkxmK1euAZjfHiQgI3IKA/X24smFuWynETbrphheyAiGyBmLx0FsKyGS7ubtNNqLnBqvhSPgjAYhxDfGdVHcJcmhxp'@; put 'QEmxBngnqhs07lNj+C7HVKuVk4IzHzNQ8HVqAlBvpy1bXzLk2A4YCRCXzIUERoIABeZIUPfbNmFpapxky13vs6RhgiZL0Grptynyy3jcn6rLFkoNntQMbo2RbD0bkgsnDdwidhLxk5rRzcWfBExkv1fUWq6Fc8zkdEUIbYxQVmWIaaqrFRZOCk5/Tl6WozLwHdXv5wG4zHfAZd6L5Di6zLOEx7d5'@; put 'RoAC0zOUxbkidWNORj3LOx9LIYsVLkvEx3EhgYEEtCyQCg+9TSEWt6fTkfZzITl33ICoRBzlRRMlgSgoBzIrpvuamF4Jt7paOMdMsWTMZEfqxtjIXtc5h4XTrRnKGM5imlN3rJjXjMt8y7Ome/FHl3nRzWJRD5gCs6inL7fBa5b4zFtTcsejlphRLe9Cl3huRIPxaVcqagZzGDFc+K+/N+VaJZsh'@; put 'KM8fxw/VGS0PRItIMGb7nXuhFk51qY+BV6NpOiycuK2qD0GspJOG1LqpyUNcioOAusy72y2UMorI8d3aGY0Xg8Uxc8U/SgrM4p/DYe2BistZt1ly57tR90UD/xlvOSyOQfmQ/uRkYiltCAi1UraeCsmZo6Y0Hwu55YLQvZNLCRKIlaeThZpm2DJuakrqmxC/WYEsdZg+U3pQMHbT90eFusy1g9Tu'@; put '9cgyfzWM2rIUmb6ftAAMkAIzAJM41F3IWC7veg9+HLR+HmKuuJQegbSoRNwdalFqUldXqy0X4fI+fcB04ym722mlLL2j4sZ7rO0xR9U7Mg6WzfGzYN2cYKM4PDoQIYQilaTYvDG9EX4VhoQIkvGO77Vly7Nh6URlB1TuH+FBcfNBJkCBGeTZHWTfNOZyygJb7v1gUgwUaKblchBIAX7KFZUaUwn3'@; put 't4rKbojKc8cMOX3QkIsn0vXzArz73DVPCaTrcI6basnEOY6MRfxmZQ36sFNsekrZ65VpYfbWs7Zsetp0Q14c9jL3GjHXd5kABWYpHQoQl2MnOXL/J+MoXaLB+7RclsL0uzaKyzGV6v7uaHPkAuIpT+6FqDxJUVkKx0Ah9rGyxpax0yyZNEBsapKQRTd6IfAPaRtmxEAdWlveRPefI1vDaP9LS+aQ'@; put 'APLNWRGgwMwKU/G/SZM1RiFTdM2nU1LXxGzx4p/Rm++BZgebl+tTakzlRZQROr43JM2Iq+zthOLkQgJ5IqDF3sfPdCA2kzJ6CiydVZowph3BkCCUp21ytUMjoDHX2jJr16uGvPVahMk/Q8PHd2dBgAIzC0hBeEsk4sg9H0rI9KUG61wGYUKvsw9qhwjBRWmERRL9trSeFjm535BT6FHc2UpReR1s'@; put 'fDpPBDQkR/unT5pny+R5joxusiVcpt4TaBvNRs/TdrnaLAnghBFBlvnhbSJvPIMLz27GXWdJjm/LggAFZhaQiv0tIdOWBXdZcvu7UMeQrR+LfToHHX/GWmkjYauzzZYz+005tgexVqdZlmRQYHyy4ARMXOSOmaB1d5Myaa4j1Sh9pNnNllo1qTQLPh8DNxhB7/rmo7Zs+ElE2tHSFZepA1/mfRIY'@; put 'FgEKzGFhK6IPwYIwZoIlD34uhStVZowX0czddKjuzwAyQzVZK9HjyPlTgjp3ppsF3oc6lVxIwK8EyqscmTgrJVMWatwm2lmWw6qJJHRaNUduxsJI/ulssWT9T8Ny/miYon/kpiIwW6bADMxUDr4jkZgtqz+eRJYnyojQejk4pCJ7VqWjgSB9/QXoanfkNKyVR3cY0oI2jbZFYVlk01nSwzVwAVyH'@; put 'UkfTITQnzUvJqAaEd+CiyUL3IFo1C39o6MVqsldkMzr/HN1hMvmn8FMQqC1SYAZqOq/eGa13Oef2FHqMj6xr3LW0wRWmrQa1OPOVnrj4BdGOIDZu1bXLgKyr5+/aR2k3eLq8UOsZR47tNOUEMsF72hlbeS0rPi4+AuXVSAqabcm0pZY0TtbYwLTQZCH3ws6lm/yD8/FbSP7ZieQfXrQWln+QtkaB'@; put 'GaTZHLAvmjVejbIhj/xGQirqDHEKXJJIxZDGV2kP6wQsp71d6GHdJRLvgTu3HyIT/0XLbYlWog9ytYi6zGJlKJeB2owpWC8oNtOT6Ypz6EcD2eCJXlvOomblkW2mnD0CS0OcwnLAIc+7ASGgsZpjJ1syY5lmoltSUYMMdD0lqFUzIPvo+93AiScCL8nezSJvPhfmucb3E+bPAVJg+nNech6Vdty4'@; put 'ZU1SlqyBEOlHcFOBFrVShiEq4wjcbzkpcuYQivmi1WBHiymJPtWNKpkGLhCWldodxIbVAnFZs21pQK3OCrSiS+oPCgRnKS5pYQkZDpHe22nLqQMhOYx6dRdP4ce2NJGU4mFQ0vusrQ3rxzkybbElUxdaUtOAbwXc5yx1VKDDQkUm4jKP77Ll9V9EpKdjgPepQEPgZoqbAAVmcc/fdUbvSM0YRx7+'@; put 'Yhw9g2G9VPdznhcVRG7xXojZ0/sMObAFYghFvG1YHoayqFu/fpwtM5ba+FFBTFY9+uZCrMKPPpTVFO17XWEJayXSsdDKzcHJPR0L1XaB1sqinVQOPGcClTXIPl+QkpmwajaMS3tH3OzznNfMFdyMgJthfsyWdU9GkATknqFu9hG+TgIuAQrMAB4Iar1ctiYlS9dI3q2XerpRo6QmnTQfdWT7S2Fp'@; put 'PmbmThXB/zWwas5HeaXpt8KVHkW5HRWaAV2Uo7rBVUZ3XLDlyM6wHNsRkq42D1gGlBl3q/QIxMrh5UAy0Jxb0Ad9CrwlmhCk9TRL4/pzxCZcM8zbmm1Z/yQMB2dwscse5iM2F8W0YQrMYpqtLMaqbqVR9Y489IW4VNZCsOTRxeyKS7hwraQjezaasvs1uLUT3lraQtBX49F+btnaFOKyUCQ+obVM'@; put 'sgBRJG95W1g6cqlZ5Og2Q44ieae3y1uORYKDwySBrAhEoojPnO3I7FuTMm6agXhBB0ITkecBOjdkBaKAbzJxkd+DGrsbfhqRs4fx20KRWUD6xbkpCszinLfrjjoE6+U8ZI7ficzxfMZeqjBy4wO7bdn8VERO7EHrmDwtmrBUhQxTFZmzb0FGvPrdi9yY6fKDxVLFcutZWw4hcefErrD0IQmKCwmQ'@; put 'QHYEwrgAHTsrKfOWO9I0UxNThCWOskM3rHe5ZYz6HNn48wjCdygyhwWxhD5EgRmwydYr+wc/l5CxU/LnUk6LS0O6ECO4Di6TC4i1LMQSiTmy8J6ULL7Pgi7DKIowLvOKsASwtnMQltvVFW5SWBbiAOI2AkvAxClonCs0YdmcEZKwCk26zvMy36EwEq0SjmxGdvmhNzXDnxfFeQEdgJVSYAZgEq/s'@; put 'Ar7nTXAnP/iZZLrTVx7cRa5Aglu865LIaz8KSwuymgu5hCO2zLvDklvWQmSqi6ZIfGLuKRgGyzCslpfOQ1hu1eSdMFzh7iuFRMhtkUBgCajQbJqZkrk4RzRNh9AMo8YuXeeez7dbKxO/L9teNGT3BnT9YYMHzxkHYYUUmEGYxcv7oMk9t61NyKL7EKuYh9JEaZEUkjg6Pbz6A4+SeYbBXy2Zi1al'@; put 'ZMkqxF1pzUyfL1q6yYSw7O2y5ehbpuxFvGp3G2MsfT5tHF4REzAhLLXkmZ4nxkxCTQZciGot4DxccxcxpRyHjgQrFfQ7Xg7JW1qQPcWL5RyJBu7jFJgBmtJYmSUPfTEp9eO1Vpz3p1I9fdhwTb/+c1MOb8tfzGU2UxKrsGXFuyyZdStiTX3aAjPdeQc1QeO2nNwVkj2vh+XSucJafLNhyfeQQFAJ'@; put 'RMscmb4UFs3bbZQ/Q0KihtWoRTOoO1zo/cKPQhgVRHb9GtbMFyIIS6DILPQU+Hl7FJh+np2hjA1lfRon2bIW8ZfaQcfrM6ieNkKwwh14QwUmApxGfEG2fIMjqz8BQT32cku5ER9TegCZLkY2Et5PHxbZs27krL0+QcJhkMCIEiivsmX2cr0gtd2C7W63MDg/KDQ9mBb8OLhdf14X2fJcRFJJikwP'@; put 'qAZiFRSYgZhGzei2ZeGdltz+Hu+zx93TBdwhbRcceenrUent9od7V0MCJs+zZeWH8xdzOpTDw+UEcW+A1cWTtuzeGJaTu7XYPE+4Q+HI95JAvgiMakAMN86TM2DVjKFbmK3dwqgyc8eNU5x2/dm/yZE3nmVrydyBBmMNFJjBmEe4KRy590MJmbbEkJTHLmOVR45hyIYfm3IEGc9+WlxX+buTMusW'@; put 'xJ16vN9D2U+NszTQIrPrki374Qo/iHqWiT5/CPGh7AffSwKlQGDMJEsWrrRkEmppmoj2YSKQN7OuXX8ObxWUMUJN5DjPf95QLd61UGAW79xdNfIyxCQ+8hsJGdWIgHYEs3u1uLY3WOTOHxd58ZuIsUn566QRQmjA2Cm23A9XebgMoy1w6SI3zhLCsr/fkWNvhWT3+jBEpr8YeXUscD0kECQCBs4d'@; put 'k+dbsuDelDSiiYPN+ExPptcVmdsui8x+ngs9gVqkK6HALNKJu3rY6N893pFH0XvcQI0yLwOLXIEJAfX6Tw05uHVkE3uu3ue3H8XKbbnjMe1THCqYFVO5uKU6oDDPHbaRRRlFq0yeTN+eFd4jgeIgEMX5Y/ZtllvaaFQd6gfTbZ7zxKnIPLLNkQ0/o7s8Z5hFvAIKzCKevMzQ1Yo3ZYElqz9uuW0b'@; put 'M8/neqsiyoGA0oLqv/xKFMXA/SmgDJQkmTTHklWPIxazAO3LXHc4Ep60Z7iWHDoM4Z1iiY5cDzd+ngRGlEDNGJQ1WpmSqQttiURRiYP1M3OaD4rMnPAF4sMUmAGYRk12WXhPUpY/Cgueh/Uv01Y6Qw7vcGT9kzHfktIad1V1jqz9VEJqkFGuPwz5WDLZ4cm4yBG4wzU7vJPu8Hyg5jpJYMQITJqL'@; put 'bmGrbGmcorGZ6ba0+TmjjNguFmzDaXe5g8ojYUnQXV4w7n7ZEAWmX2Yih3FoUeHbH0nK/Hu8F5haSXfTz0NyYIs/3eMZbNFyR5aDwdzbvXeTu2ECMN5qEs/FkyHZ/kpIzhz0N48MF96SAAkMnYC6zefekZL5K2wpH4WLVi3STpU5dJD4BEXmsLAF4kMUmAGYxnxlkKuwSsL1++I3TLl4yt+CykQW'@; put '/exbLcRi2ggT8K67jxsmgKDWODLCD2wOyT5kiMd5JR6Abw13gQRuTqBhvCVL70vJxHmGhEIoacQi7TeHNsg7IuUmzp+2bPqF1sn0Z6jVIMPmUzkSoMDMEaAfPq7i6sFPJ9CDFwXHE96IK1dY4Z+eDkH8ZUx6OvUZ/y4hw5GmGYhD/VjKLTviVaKTusW15/mR7SjT9DM/FJj37xxwZCQQRAImQpBm'@; put 'LLPQgjclo+qRbc4koGFNcxiJP26dzKcgMhmzPiyGxfYhCsxim7FBxhuOWvIIWkQ2TEif/AZ5y5CfcuWkFldvRoLPV6OS8HtNMyQ61Y+F0P5sQmKVGL1H5YpcgYn2mEd3hGT9T6JD5sgPkAAJBINAzWhLFt+fkukLQ6ggwd7mQ55VnJbDUVP2rNeOPyhyb9GSOWSGRfYBCswim7DBhhstt+ThL6Bl'@; put 'YlM6Vmiw9wz1ubTAFGk5HYLA1B6zfj8ZaOtIS9Z+JiWV9agF6lGiT8aCeQy9xNc9SYE51OOI7yeBIBHAmUVm3AKhiSLtNag5TGvmEGf3ssjc+Qp6l78chsh0f2mGuBK+vVgIUGAWy0zdYJz5FJitZ0Py3Ff8V2D9nTjSAvOhz6akoo4C8518+AwJkIBXBKrrbVn6QDJtzUR4DmMzh0BWRWbEkG0v'@; put 'iux8LUKROQR0xfZWCsxim7FBxps/gRmSjouOPPuvcJH7PrGFFsxBDg0+RQIkkCcCV6yZqzU2M31Ry0zzLGFDZJpmCH3LDdm7KQyBTktmluSK6m0UmEU1XYMPNl8CU6ty9HVrDGZMutp87iJHDGbDOEce+EweYjA1yectkQ0/8W8t0MGPDD5LAiSQbwJaoP2WB5MyZb6BhECtmwmLZr43GoT1I8Zf'@; put 'az9pjcwj2xGTaVNkBmFaB+4DBeZAGkV6Pxyx5aEvJNx+ul6X6LFwZfnSt01pPubvMkVXssg/jixyExPp0Rk+HYOJ7MctjrzxNGMwi/QrwmGTQF4JaC3iObdrbGZKyqohNFGgndbMmyPXdrsWGrCt+7EpJ/eYbsWOm3+K7ygWAhSYxTJTNxinlim6/xMJmTjHuzJFujm9ngxBrb3xnCN7N/hbXLl1'@; put 'MG9LyZ2PiaQS1g1oDe2ltMA0ZNevUWD9ZZYpGho9vpsESotA42RLbllrSdN0GDJZziiryTfCaI7R68jL3w/LeRgyKMyzwlYUb6LALIppuvEgzbAtd70/JbNvy0MnH/TcPrHbkVe/72/3sHbeWPHuJIqtG5KMeyswbduQN5833CLrN54JvkoCJFDqBMoqHFl8XxIWTUdMXJM62gWo1KHcZP9NJP30'@; put 'tNnyyncj0nIO4VgIS+JS/AQoMIt/DtHC0JFb1iRlyQMQmH0eiiuw0RNjb6fIc/8WlZ52f8Zh6ul7VH06/rKmwdte5GrBTCZM2fjTkBzf4+8wgQAcytwFEggMgelLUrLsAQvnJu1pjrMUVeYN59aMGnLprCO/+m5YOi6hc5LrQ7vhR/iizwlQYPp8grIZnsYfzkKbxHs+6EjKQ+udbjvjJt/8TLpN'@; put 'YjbjKfR7NP5p6iLd/xRin7zduu5/b6/Iq9+NysXT/hTY3u4x10YCJOAVgbqxttz2CFpNzoLItBGX6U2jNa+G57v1hGOmnDtky69+GJH+bp5vfTdBQxwQBeYQgfnx7WplGzvNkgeRQe31VZ8KLMH3XAuuP/81f/aRjVU6svKDCZmEfsGexl9i121kp3deMOSFb0alr8ul4cdDgGMiARLwKYFIzJYl'@; put '91sy73Y77TJnP/MbzlQELSWPbLdlw0+jCHfiOfeGsHz+IgWmzycom+G5LuJaWx75rYSUVyGD0aM2iZlt61fcMQy4iQ05vM1fbmIND5g4x5b7HkcqojvQzKhzv1XhrijPHRZ5+btltD7kjpRrIIGSJTBjqSXLHkxIdQ1a+mopI7rMr3ssqMjc/ZojW55nIfbrQiqCFygwi2CSshmilip68DNJGTfD'@; put '20xy3bar26C22lF0/UXEYvb1+sd1UV5ly6rHUzJ+BrLHk976n1RgOo4m94Rkyy+ZQZ7Nccj3kAAJXJ9Aw3hL7niXJWOm4dzCLPPrg8K5N4wE0zeeDcme11mI/fqg/P0KBaa/5yfr0bmJPmhdtmSNt4k+mQGoyDTwhd+9AVeVz/ojozwctWXeHYhxethGLTVvxaXutwpMK2nKhp8bcmynFtfkQgIk'@; put 'QAK5ESivcuTWB1Poaa4mTC3Mnk6mzG2twft0CIXY1Rv36x+H5cQu1sgsxhmmwCzGWRtkzCHECk6cY8n9n7TcvriDvCXnp1RwpZBEs+7JMIrijqyr3EBi09jplqx+3JJIOU7QiGvyclFB7YBpT1tIXvhWVLpa/WO19XI/uS4SIIHCE9DEzPl3oTA7yhnFyrQwuwY6cbmWgNbI7O9B0s93Y3L+JM7K'@; put 'LF90LSJfP6bA9PX0ZD84BwE9laMcefS34lJZmz5hZf/p7N6poktwVdndgbqYyKpu1XplI7FA+NWORtzlR1NS16SdIPJjvdST2ckDIq99P4pYTHfvR2JvuU0SIIGAEpg8z5LbHk1KTR0MmWrJpMp8x0xr+aL2Zlte/nYU5Ys0jZXn4ndA8ukTFJg+nZjhDEvL9dz5GAr8rvC24PrAsehXOwRvcds5'@; put 'kVd+UHjLnpvQVOPI3R/WuMuQp1njV+0ndtS2UGD9BS3PxPjLgWx4nwRIwDsC9eNtxGUmpXEqXMJsMTkoWC1fdOZAunxRwkc5AIMOlk9eIUCBeQVF8d9RN/mkuSlZrW7yVP72xxWZcF20nhH59RMR6WgplCXTkaoanIzfl5IpKEnkZceed9BS9zgKy7/4rYh0Fmz/3jEKPkECJFACBCqqHVkOkTlt'@; put 'gVox2cd8sCnXzPK9G2wk/kTFStGKORgjvz1Hgem3GclxPLEKWx76XELqx6OjDVqU5WvRr7eB9l7t523Z+POInD+e5yQYCL66RojLxyzXcplPcZnOHg/Jsd0hWfcjf/dgz9f8cr0kQAKFJRCGB2oJkn8WrHDgJWLyzzvo40dHW0puedqQPZuQ9GNRZL6Dkc+eoMD02YTkOhzNJl9wT0pufxQtDvs9'@; put 'bmtzzeD06x0yQxJHp5vtr5hycLOZl1hF3afxsyxZjo4YdY1m3tzimd1TgZlE9vj6Hxlycn+ehXNmo7wlARIoeQIaS6/JP8vWpCQaS2dR589MUHy4NbNcDSevPmHK6f0oX8TYeF9PIgWmr6dn6IPTGMWaelse/iKKro/KT7LPwFG515D40odMQ07stuWtVyJyqdkbl7nuSwVKeiy4OyVz7rQliqtX'@; put 'C7Xj8rm41kts4PzxEILK/dm5KJ/7z3WTAAmMPIGpC1NoMWlJFRI3NfGHyT9vz4lmlne3O27ST1uza+Z4+0Xe8xUBCkxfTYc3g1GL37I1SVmqNTHzbMXMjFi/5uq+6Oly0OZLO/6Y0o4Wi8NZ9Cq+rMKRKYttmb/CkoYmxFuqsPS4Q9FgY1OBaVumbHo6JIe2jmwppsHGx+dIgARKg8DYqZabtFk7'@; put 'BpZMnBMpMt+ed7dn+REk/XwPPct7hvc78/baeC9fBCgw80V2BNebtmI6sGLGC2LFzOxq2poJoYmC7D2djpw7EoJV05ALJw3p6775SSActqWmEYlK82yZutCS+rFoqYazaj5jSTNj19u3rZfIkEcZpmT85mMe+HneJwESIAEvCdQi7vzO9yZk7FT1RjH5ZyBbTfrZ97otm59m0s9ALn66T4Hpp9nw'@; put 'cCxqxVy4MinLHy6cFTMz/IzQDEdM16Xd02FLx0VDLp0LSRcys/s6ULBdswDxv1oqK5EZXoOr9PpxKRk1Wp8Lu20fbY+Lp2fGd71bFZippCGvo3PP0Z20Xl6PE58nARIoHAGtb3zH+xIyeTbiD1Esk5bMy+xxvlZjxuanUEpuM+IxbTzBxVcEKDB9NR3eDqa8yhLtT94wAbGLeShGns1o3a88EoFM'@; put 'xGkauNWAdW3/lWlboaLObQmG522M0RrwWjbr9+o9Og5VvCf2oVPRE7giZoaiV2i5HhIggRwJxModuf3daC+5BP4piswrNPW3I5VAPOZ30pVMKL6voPHFHQpMX0xDfgahdTG1U8R9H0VdTFV0qu64vIOAaktNRuzvFjem5+JpZo6/AxKfIAESGFEC4YgttzyclHnLNXQH53Sez935cDv9nLNQsxiN'@; put 'P+AhY6efET1Mr9o4BeZVOIL3QLv7rHg3Tkp3Ft5VXiw03dhLx0SpJUd2vca6l8UybxwnCZQaAQM9zJfej1qZKx107WWtzMz8azzmke22rPsxvE9J1x2VeYm3I0iAAnME4Rdi05p9WFVrywOfTko9srFHylVeiH0dzjZccYl/zh5Cz3G0vkwmeHIaDkd+hgRIoHAEFt+XlCWrIDKRGCn4n8ZMEc0s'@; put '3/KsyO4NiMdkiFPhDsYbbIkC8wZwgvKSiqix0xCP+cmkGFHtd8vTkc6tKyXhbepsDcmr349I23lmjQflmOd+kEDQCWh94KWrUxBW2FOKTLSWAwa0SH75e2FpPqxF2IN+BPh//ygw/T9HnowwBNfK3Nu1rpqNDG6ejTLiMtlnyIZfaJF4Zo17cqBxJSRAAgUjMHdFSm590JJwGdQUGreVuqbSWszt'@; put 'zZfjMdsQj6nWFS4jRoACc8TQF37DWrrotoeSsmgV4zH1vGPbhux4OSS71kUKPxncIgmQAAl4QGDO7SoyUxIp05Oam87pwVqLdxUaj3l4q8j6n2iZPHqlRnImKTBHkv4IbDuCTMS7PpCSmbeUrshMX9Qasvf1kLz5HFwpaWf5CMwGN0kCJEACuROYudSSWx9NSlk5RabS1MzyTfBM7d9ssj5m7ofX'@; put 'sNdAgTlsdMX7wRiKm9/zwbhMXWRKsg9+lRJaXHEZMuTgmyJbnkGvcS34zoUESIAEipzADIjM2ygy3VkMoeZyot+Wl74ZlYunYcXUOnRcCk6AArPgyEd+g5pZXlntyL0fTMnEBbBklojIzIjLA2868uYzUYrLkT8UOQISIAEPCajIXA6RGaMlU8KwYjYftVGEPSpxxNpzKTwBCszCM/fNFssqtM9t'@; put 'SqYvhciMBzdC3L121fMLYi73bArJjhfRipKWS98chxwICZCAdwRmL08i1t6WSAwpPyWezxkpN2XnKyJbcc63WbrIu4MsyzVRYGYJKqhvi8RsWf4ICrHfYUhS20lqq8YALSouQ2G4S/pCsvNVCMz1iMlhzGWAZpi7QgIkcC2B2Uj8Wb4W2eWlLjLxA6C/Aa+gdNHpAzj301V+7aGS18cUmHnFWxwr'@; put '1+4QC1ehptp9Fgr3hlBLLBgiU13i2v+8sxVXsC+F5fhOtoAsjiOSoyQBEsiVwLw7U3LLAxCZ0dK2ZBooXdRxwZEXvhGWbpYuyvWwGtLnKTCHhCu4b9a+5VPmw5r5rqRUN5iS6i/e5B+9YtWiuyEDMTiHHXkDmeKXmikug3v0cs9IgAQGI7BoJTr+rEZWtVnavcu1dNH+zQ4yyyMoXeT+QgyGi895'@; put 'TIAC02Ogxb06R2pGO67LfMoCwy3IXmxdf9JWS0P6ey3Z97oJl3gY7R8Z4F3cxyVHTwIkMFwCy9YkZNFKXHCjd3nJdrdRTYmfgQ1PhuUoPFmOTZE53ONpKJ+jwBwKrRJ5rxlG158Vliy6NylVdWFJFEECkJ4uNNZS/zt7xJEdr4Tl/HFaLUvkkOVukgAJXIeAeqdueyQl8+/Q0KfSFZka/tVzyZbn'@; put 'vxaTjrb0b8V1kPFpjwhQYHoEMnirgTVzjCOL0et2+gJLzBgyrxP+yzR3hSXiLA0jJK3NNoqnm3JsO7PEg3c8co9IgASGSyAMo8GK9yTRYANrcEpXZKqr/BDK1G34aZhdfoZ7MA3hcxSYQ4BVim/Vq9+maZYsXGlJ0wyRMAKmkz4QmpkEHu01237RQmuwiBzaZkpfN10fpXiccp9JgARuTEArhtzz'@; put 'vqRMXghfsVOiMZn4eTDg2Fr3o4gc22mgXTB/L2581OT2KgVmbvxK5tMqNCfMsmT27ZaMn25LWRWshChrVMiMc/dUAGtlOJyOD209I3J0uylHdyPmsptxliVzMHJHSYAEhkWgrMqWVR+GsQDncG24UYoxma6rvB2u8q/SVT6sg2gIH6LAHAIsvhUEIDRHN9kybYktk+ZYSAoKiQmrppWyxbIQ4+Nx'@; put 'hSO1VGrbL9PUq01HutstaT4CNzhEZfNRCM0khSWPSxIgARLIlsCoBlvuezwpdeP0E6UpMtVVfnCLIxt/Rld5tsfNcN5HgTkcavyMSyBaZsvYqRYsm46MnWbLqDpHohVht7CtWjZtXB6rKMxGdLrWSRWTiKXUP42p1Of6+1LS0x5y+8meOWzKeYjK3i733ZwFEiABEiCBYRAYM9GSe2DJHFWvzTWy'@; put 'OkUPYys+/oj7WyPy6ydMOb4rzALseZoqCsw8gS211ZphW2qRFNQwERbOCZogZEtljQXBaUg0elkwuuLxajKIN0c4kCOWbUsi4UiyV2ClDElHiyGXzhnSciYkXbifiFNUXk2OjwYSMFDzNAwrNy5RUI5FZHRDndy+dKHMnzVDImHt3uSxaX3gxod5Xy+++uNxaWvvlIuX2uVSe4f719HZJV3dvdLb'@; put '1y/JVGqYa+fHSODGBCbMSSEmMyWxKnxncCz67xty4/Hn+mq6ALstL349Kl34zdF4fi7eEqDA9JYn13aFAKyZZSLlVY7EKhGzWRnCYwdJQmqlvPwmCMsEit4m+0TiPSE3QaevN4Qi76GSO9ldwcY7VwhEI2EpLyuTyspyqa6skKqKChlVXSU1+jeqSirdx5VSWV4uFeVlUlYWc+PK9ODR12trRiG0'@; put 'wt+lqvRHTf/S8XC4wEomXdHZB3HZ1dMrnV09V4Rna1uHtLa1u4K0HSK0o6tb+vrj8BLgKo0LCQyDwOzbknLHY9o8N23GLDWRqa7yXevQ6Q3NOCz2Kh/GEXTjj1Bg3pgPXyUBEsgDARVV5RCEVRCOdRCC9bU1Mrq+VhrqavBXi/t1MqqqQioqyt33RSMRicViCJ1IX53orYqyjLjK3Opzum7L0ixZ'@; put 'jS8rrp9MHbsuun96X28z9zP7k0gkICz7pfuyAG3r6JQWWEBbLrXJxdY2aYEIVSGqVlAK0DwcvAFb5a1rE7J4FTzliKMvrm+LBxOhXzdo6xe/G0bXN3WVe7BOruIKAQrMKyh4hwRIwEsCGRFZW1Mto+vqZFxjgzSNHSONcF+Paah3LZGjqiulDMIxIx71MyoWM38qqgaKRy/HV6zrGihC1UKrj/U2'@; put 'I0DjcLurAO3p7RMVn2r5PH+xVc5daHFvVYy2dXTABU/rZ7EeA16O2zRtuftDSZmxBImUSVyYebnyIliXGTXQlMOWl78VlXhfxr1WBAMvgiFSYBbBJHGIJOB3AmWxqGt5HNc4WiY2jXX/xo8bA2FZ67q1K2GJjMAKqWIoIxoHWhn1OS7eEFDGmb+MAM1YfJV5b1+fdHR2w9XeIc0trdJ8oVVOnjmH'@; put '2xbXEtoJ17sm6HEpHQLlFbas/lRSGicjJh4JmqU2+2G4yrc866C1cERsuso9O/ApMD1DyRWRQPAJqHDReMfG0fUyeUKTTJ3YJFMmjod1crTUw9VdVVWJOqXqakq7p1NIUsncp4j0x/Ghc6iCU8Vnxv2uVmIVnl0Qly2weJ5tviAnIDpVeJ7BfbWCJhJJf+wAR5EXAnWNttz/qbhU1cKKV2JJP1q5'@; put 'JN6L2phfj0lbs/rNmfDjxUFGgekFRa6DBAJKQOuPumJyfJPMnj5Fpk+ZKBOaGiEma9z4SBUoKk7UMpZxawcUReB3KyM8M+JTH+sFQndPj7S0tsups81y7NQZOXryNIRnsys6dd65BIfARGSWr/xQSsIxSCyYMUvJkqkJP4e3ObL+J0j4YX1lTw5qCkxPMHIlJBAMAhoPqa7tGRCSc2ZMdW/Hjhnt'@; put 'urnVMqkiUkWH3tIiGYw5v9leqODMiE691Uz3ru4eOXseVs7T52T/4WNy5Php93F/PHGz1fF1nxOYf1dSlj+KQWqinM/H6unw1GgJ4+2vfxCRE3s0iZBWzFz5UmDmSpCfJ4EiJhBBKaAmuLfnzJgmC+bMkOmTJ7iJOFWVle5eqYUqY50s4t3k0D0mkBGc6mbXRa2c5xHLqdbNvYeOysGjJ1yLZzLJ'@; put 'Op4eo8/76mC4lrseS8isFYiXLrGkH+1K13rGkRe/EZG+Hib85HqwUWDmSpCfJ4EiIqDCoHZUtcycOkkWz5sl82ZPlwnjGmGhrHYTQzLWSbVQciGBbAnocaV/auXWpau7G3GcF+UAhObOvQdcwdmK7HUmD2VLdGTfF9Okn4+lZNx0xFKXWNKPusrffF5k12vw2DDhJ6cDkQIzJ3z8MAn4n0AYVqYJ'@; put 'yOxWQblo7iyZOW2SWyZIxQAtlP6fv2Ic4UALpx5jrajRefj4KXkLYvOtvYeQOHQeoRaM3/Tz3NaNtWXNpxNSOQomzRJK+rmS8PNvSPi5oG5yusqHe5xSYA6XHD9HAj4moGWDpk+eKEsXznWF5dRJ49HdZpQbN6lWSv3R50IChSKgrvRM1rq2wjx64rRs27VPtu/e72aqsyVmoWZiaNuZujAl934w'@; put 'JYZGQpRQ0o9aMQ9uEdn4M1OsFF3lQztq3n43BebbLHiPBIqagCbozJo2WW5dPF+WQVhORLZ3BdopDkzMKeod5OADQSDjStcsdY3d1AShzdt3ytad+5AodJEXPz6b5VseTMqS+9DwoJQ6/cBoqVn0L34nLOeOoOwaI4aGdVRSYA4LGz9EAv4gEIGbW62Ty5culOVL5rs1KcvRm1stlGqpZKa3P+aJ'@; put 'oxicQEZs6u0ltLfUBKGNW3a41k3ttc5l5AmEI7bc9/GkTJoFT7lVOkXYw+jwc/awIy9/JyLJOK2YwzkSKTCHQ42fIYERJKCWH+3ZfRsslXctXyrzZk1HT+9KisoRnBNuOncC6kLPlMI6fe68vLF9l6x/Y7scO3lG6ELPnW8ua6hpQDzm5+JSXQOhVULxmNpGcsOThhzcmk5ey4VhKX6WArMUZ537'@; put 'XJQE1Fo5fcoEuXfFrXLHrYtRXmiMux+ZzO+i3CkOmgQGIaBCU/+0beXOvQflVxvfkB1aevCmAABAAElEQVR7DqDbUP8g7+ZThSAwBfGYKy/HY5ZKJ1EjHJL2CyLPfCkKKyaTfYZ6nFFgDpUY308CBSagsZWL5s6UB1beIUsXzHWLnmuxaybqFHgiuLmCE1DXufaw1+P9CLLQX9nwhmx88y25hD7q'@; put 'XApPYPkjSVl4T2nFY2rCz6anRfasixQeeJFvkQKzyCeQww8ugfKyGJJ15snDq+9yywvFIDT1h5Y1KoM759yzwQloWIgKTV1Oo2WlCs3XXn9TzrdcYpzx4Mjy8mwkBlf5JxOoj4ki7CVSHzNkhqS305an/6VM+rpoxRzKgUWBORRafC8JFIBALBqFpXKOvOuBlbJ4/mxR17gKSybsFAA+N+F7Auo6'@; put '13jNc8g4f3n9ZvkVxKYKTV54FWbqRk+w5IFPpSRaoZnWpZH0E4UVc8erIm8+RyvmUI4yCsyh0OJ7SSCPBMJh0+39/dja1XLnbUtEhSaFZR6Bc9VFTWCg0Hz+1Q2u2Gxto+u8EJM6D/3Kby+hfuUh5DYlEf77zJcj0tGSbo9aCM7Fvg0KzGKfQY6/6AmoZXJ0fa08ev+9cIffLXW1NXSFF/2scgcK'@; put 'RSAjNI8cPylPvfCabHhzh/T09hVq8yW5nZDhyH2PJ2XKotLpV65WzL2bHNn402hJzvlwdpoCczjU+BkS8IiAWimXLZwjH3r3Wpk/e4Zbu5LJOx7B5WpKikAU3yX97mzduVd+9PQLbv9ztqPM3yEwCqWLHkQryap6xCWWQOkihAHj+HLkuX+NSus5WjGzObIoMLOhxPeQQB4INNTVymNr75NH7r9H'@; put 'KivKJZFI5GErXCUJlA4BTQZSodmGLPNfvPCq/Oz5X0k8zu9Vvo6AGUstufsDqZKJxYzETDm83ZbXfhjLF9JArZcCM1DTyZ0pBgKaoDAbLR0//eHH3CQetbrQalkMM8cxFguBTN9zzTT/9pNPSfPF1mIZelGNEw5yuefDSZmxVLPKLW1XHuhFrZgw1srzX4vIhRO0Yt5ssikwb0aIr5OAhwQ0kWfV'@; put 'HbfJJz7wLhnXOBrWlbiHa+eqSIAEMgTUmqmlvbR+5pe+9YTsP3xMUriY4+Itgeo6uMo/m5Tqeqy3BFzlasU8tsuSV74DK6YqTi7XJUCBeV00fIEEvCUQi0Vlzd23y+c/9n7R4umaIc6FBEggvwRUZGqf8y9/50nZtHUn207mAfeMZXCVvw+uctgwS8GKCWUJK2ZYmo/Tinmjw4kC80Z0+BoJeERA'@; put 'i6Z/8NEH5MPvWYuL3hBd4h5x5WpIIBsCWqS9vz8uX/nuk/Iq3ObxBC/usuGW7XtUWN77kYRMX2KUhKs8gh7lJ/Y78vI3Y4EX1NkeA4O9jwJzMCp8jgQ8JFBRXiYff/+j8v5H1rhZ4iwI7SFcrooEsiSg5YwS8Bp8+Vs/ktc2UWRmiS3rt2lW+drPJaRyFNzGQS/Ajl1EF1N5/uthOXcknDWjUnsj'@; put 'BWapzTj3t6AEVFx+BFbLjzz2sJslzm48BcXPjZHAVQRUZKol8x++9j26y68i482DOSuScud7oC8R6xp0V3kmFvNlxGKqV4rLOwlQYL6TCZ8hAU8IaI3Lh+67S37jEx9029jRcukJVq6EBHIioO7yVsRk/o9//JocOHJcLNvOaX388NsETBRgX/2JhEyYg+dQMzLIIjOtKRGL+XVTmo/Rivn2UfD2'@; put 'PQrMt1nwHgl4RkDLpGgB9T/+3c+5CT0sQ+QZWq6IBHImoIk/ew8ekb/556/LBfQx5+IdgdETkVX+qYREyrVXOayZ3q3ad2tSK+bRncgo/y6tmINNDgXmYFT4HAnkSGDsmAb5T//uczJ35nSWIsqRJT9OAvkgUF5eLk+i48/3fvqs9Pah0TQXzwgsezApS1c5Ylt2oAUmksk13FR++dWIXDzFjPJr'@; put 'DyAKzGuJ8DEJ5EhAM8Y/gIzxT37w3Yj34g9Xjjj5cRLICwEDWRra5ee//f1XZM+Bw3SVe0g5Vo6En8/HpX4cFBgiEIJuxTy41ZZ1P2J3n2sPIQrMa4nwMQnkQECDvSdPaJK/+KPfltH1dW7WeA6r40dJgATySKCsrEx+jYzyf/za96WrpzePWyq9VU9ZmJKVH7bFgMIMssDUWEwb8abPfDkql5pp'@; put 'xRx4pFNgDqTB+ySQI4EyFFPX/uKf++j7ab3MkSU/TgL5JqAXhFoT8//6/74s+w4dpRXTQ+BaG3PVRxMydVHwa2NGy0zZvcGRTb+Iekiw+FdFgVn8c8g98BGBuppqxF5+Hj3G5zD20kfzwqGQwPUIaCzmD372nDzx1POMxbwepGE+39DkyJrPxKVME36wjqBaMkOoiRnvE3nmX6LS1YYHXFwCFJg8'@; put 'EEjAIwIa0zVz6kS4x39XKivK3dJEHq2aqyEBEsgTgSjKie3ef0j++n99Vdo7u/O0ldJd7S0PJGXJaiT8pILtKlcr5raXHNn2Iq2YmaOdAjNDgrckkCOBCIo43718qfzRb3+GsZc5suTHSaBQBLSkWHtnl/zZ3/yTnDxzDlnBQbWzFYro1dupqHTkQST81DZqsGJwa2MaZkh6Omx56p9i0t9LK6Ye'@; put 'BRSYV38X+IgEhk1AC6u/a8298kUUVo/H48NeDz9IAiRQOAIah5lMpeSvkE2+e/9hSaELDRdvCcy+LSV3vg/p5AEvW6RWzA0/Fdm3KeItwCJdGwVmkU4ch+0/Am6Cz0Or5XOPv48JPv6bHo6IBK5LQK2Y/x2dfd7YsQveBwrM64Ia5gtmxJEHUHy9aTriMAPc4ccMh6TlnC3PfqlMrJRGnZb2QoFZ'@; put '2vPPvfeQQBm6g7z7wZXyeWSQ04LpIViuigTySEAtmPr31//r3+TNnXsoMPPEeuJsC1nlKQmbwXWTK7pw1JCXv2PIiT1sH0mBmacvE1dbegSi6HG86s7b5A9+45OSSCRKDwD3mASKkIAm5/X3x+Wv/kELrh9hqaI8zaHa81Z9NB74skUqME/td+SFb0TdC5c84SyK1VJgFsU0cZDFQMDED9WCOTPk'@; put 'T3//NyUajTBZoBgmjWMseQLqHr/Y2iZ//rf/JGeaL5Q8j3wCGDPJQp9yWDHLkEgV1FwqKGkH4abPfSUqLWdKO9mHAjOf3yauu+QINI6ulz/7g9+UaZMnSjKZLLn95w6TQLERiCG05c0du+X/+fK3pLOLZYryPX93PpaQ2XdgK8ngli1i4fX0UUSBme9vE9dfUgQqysvkU+hB/n70Iu/rQ+VdLiRA'@; put 'Ar4moO0iv/KdJ+WZl9ehqw9DW/I9WTVjbHnoiwkB9sAWXw8ZIenrseVplCzq7SpdKyYFZr6/TVx/SRFQN/nCuTPlT2HF1LqYrKlXUtPPnS0yAmF8R1svtclf/M8vy4nTZ/l9LdD8LX8oKQtXBrv4uloxX/+5yJ6NpVuyiAKzQF8obqZ0CFRXVcjvfPojsvruFSxXVDrTzj0tQgLaJvJHaBH5fbSK'@; put '7O3rL8I9KM4hV9fBivmFuFSMMiSEwvZBDMc0IyG5eNqW576MkkVWaZYsosAszu8nR+1jAgZKnsydNc1N9qmqrMDJhXX1fDxdHFqJEtAWkafPNst/Q4H1U7jlUlgCyx5MytL7gm3F1LqYz3/DlLOHSrNkEQVmYb9T3FqJENCi6+9F0fXPfOS9rIlZInPO3SweApnal//wb9+TdZu3SYIJeQWfvMpa'@; put 'Wx6GFbOyJrhWzEjMlEPbbPn1E7GC8/XDBikw/TALHEMgCdSOqpbf+8LH5a7ly5jwE8gZ5k4VKwFN7PnZcy/Lt3/8NF3jIziJSx9IyLL70KI8oC0kQ8jviSPX8+l/jkh3uzmCpEdm0xSYI8OdWy0BAmolmTCuUf74dz8rM6dNoSWzBOacu+h/Ahp3ueGN7fKPX/++tHV0+n/AAR5hZQ2smF/shxXT'@; put 'DGwsppvs8zSSfdaVXrJPSQnMD73rAdmyY4+cOHMuwF9Z7pqfCGhW+ewZU+SPfuszMh5iky0k/TQ7HEupEVBxuX33Pvm7f/22nG+5VGq778v9dWMxVyEWM6BWTDfZ55TIs/8axT6WVrJPyQjM8WPHyD/+1X+Wvv6EfPvJp+T51zayJIUvTzfBG1QYnULmzZ4uv//FT8j4sRSZwZth7lExEFC3+Ft7'@; put '9ovGXZ670MLzv08mzc0o/3xCKmpQFzOgDX4MeMd/+bWINB8tLTd5yQhMtV5+8RMfcntEa+2z19/cIV//4c/k9Dm2BvPJeSbQw3AtmdOnyP+OmMypkybQkhno2ebO+YmAhqqouNy09S350reekOaLrX4aHscCAssfRl3Me4ObUa5u8r0bHdn482hJzXdJCEztNfs3f/IHKB0z3RWYOsN6wmlta5fv'@; put 'wJr53K82lHxT+pI66vO0sxH0152xJCnHdoYR2P3O7g36Qzd5wjhYMj8pc2dOc49FFmLP02RwtSQAAnru17/nX90Az9XTcqm9Y9BzvXaXKa+25eJJU6xUabkx/XCg1IL/WmSUl5WHAtndxzBD0ttpyy/+MSb9ve/8bfDDHORjDCUhMOfOnCr//f/8A5ffwB90PfGoNXPd5q3yjSd+LufOt+SDMddZ'@; put 'AgQM05GJsyy58wO2rH/ClDOHr+8Kmdg0Vj72vkdk5R23um461sksgQOEu1hwApFIBCFRcbeQ+lMvvubev94glqxOyrRFlrz6g6i0X1CBSZF5PVb5ev6u9yZk1gqsPaA9yrVk0Ws/FDm8vXSSfUpCYH7+8ffKR977yHVLxag1s6X1knznx8/IL3Glq5YmLiQwFAKxCkfu/WBCpi4wZd8blqz/cfSG'@; put 'x9Go6ip5cOUd8oFH1khdbQ2tmUOBzfeSwA0I6Pk7Fou5RdS/8t0fyzYk9aRS1292ECt35IHP9kvT1LDseMWRt16NSDLO34AbIM7LS6MnWbL2UykJwxMUxNY+4aghJ/fa8tK3UBOzRDRG4AWmFrz+u7/8Y5kAq1EqlbruF2OgNfPrP/gZ43SuS4ovXEsghMj0xsmWrPl0SiJRuEK6Q/Lq90y5eOr6'@; put 'VkxdRzhsytwZ0+Tx9z4kSxfMdVd7o2P02u3yMQmQwNUE1GqpHoFNW3fKE2gBefTkmZsm88y9PSnLH4U7PWJLd6sjL34rIh0t6sakyLyabn4fqXdx9ccSMmURuKfswGlM1ZSJhCPP/EtMOltLw00eeIF5y6J58pf/4XdvKC4Hfm20jEXzhYuuNfOldZsGvsT7JDAogUjMkYX3pOSWtTgvxtVSEpKj'@; put 'O0TW/ySKk+TNf6SqqyplzT0r5D1rV0lT4xj3WKXbfFDUfJIEBiWQMRBo68cfP/uSrEedy55eVLi+yVJWKXL/J/pl9ER8a2E4MyKGbPyZATcmYjGTN//u3mT1fHmIBCbOsWTVRy0JG8ETmIrCrYn5FGpiri8NN3ngBea/++zj+OFefV33+GDHv8ZlGqhfqLGZas1kvbTBKPG5DIGySlvu+2hKmmYI'@; put 'fpRs1/uRiBsQmIac2pddD1rtXz5pQpO8a829surO20RFZxLt62zbzmyGtyRAAtcQ0PO09hS/1NYhr76+RZ59ZZ2cbb54U6tlZjWL79N+2BCXhoXPwKuAOLkj20U2/cIcNFEv8zne5oeAiVj2Bz6TkHHTMRm4Vse/gVrCkZCcO+7IL/81lpXxodh3PtACs6qyHO7x/ySNo+tdt8lQJ0utmWebL8Ca'@; put '+bS8suGNoX6c7y8FAjB71DXa8iBOiuXVhjj2ZZsljB8Xz4TkV99DokFX9u6QCC5utDD7u9aslOVLF0hlRQWFZikcR9zHIRFQYanu8O6eXrf80DMvr5MjJ07dMNby2g2MnoALQ7hkK0bhO+uEXDGj2b7tLY689I0oWvtl/729dt18PHwCs29NyR3vx4V6EAuv43fBxm/Ecyi63nr2xiFUwyfon08G'@; put 'WmDeccsi+bM//O0rpYmGg12tmRo0/hqujr/xw1/IxUttw1kNPxNQAiE3e9yW1R9PYA9x9rh8yZ2O4Tbk4JtqDYkM+Wo1Go3Iwjkz5dH775FlCPMoRyIaLZoBPYi4W1kTyLjCu7p75I0du+S5V9bL4WOnJAFr/1AWDWu57/G4NM3UsjiOa710P2+EJNXryAvfjkjrGVwwQnhyKSyBWLm2j0xIbaOq'@; put 'McxNYTef962pm/zN5wUJZcF3kwdaYGrnlEfuv3dI7vHrHV1qzTxx+qzbBUjje7iQgBIwI47Mvg1X3O9xXPf4QCoqMq2UIVtfCsm+jcM7mcSQpDYf9VvXrrpLNJ5Ys89VaDJGcyBp3g8yAb3A1wt9FZda7WPz9l3y8vrNrrBM3iBx83pMVFAufzQpc+9QcZl2jV95r6snHSTpReXUIQjMEmvtd4XD'@; put 'CN9ZtgahC6uhL5GwFTSBaYZD8G7Z8uyXymDNdA+4Eaadv80HVmBWV1W42eNjGobnHh8MuZ7kUjjgX8HJ7Xs/fRaF2jsGexufKyECboLPyqTc8kBIkv1Xl0JxTx34p79fZPPTYTmOAuzDXdR1PnPaJFl91+1yx62LZXR9nRufqVnnA2u7Dnf9/BwJ+I1Axg2ucch6cb9u8zY3eefc+Yti5RCbvOje'@; put 'pCy5X4uwXyMuLwMwIADW/ciU47tZdH2kjgktvP4QCq/HKnARAIUZKJGJ3wS1y/7yKzFUGgl2GEZgBaYX7vHBvlx6Na1B5afOnHM7Q6zfQmvmYJxK5blImQ1xaSGLHPWB3Qzyq/fcFZk4h/ShdNHrPzfl1P7hi0xds7acHNc4Wu5evtT907aTGoumQpNWzavZ81HxERhorezs6pY9Bw7LrzdtRS3L'@; put '/aKPc13m3YlqD2uQpQwXuSB/bjDhYmom+c8NObLNlBQzyXNFPqzP60XzqscTMn0JrMioYTrYPA1rxT75kLrJt73oyLaXgt06MrAC8w/gHn/YI/f4YMdkxpr5MkoZfe+nz7ktyAZ7H58LNoEoijQvfwTuttthwRxEYOreuyIT8dx9+H3c8kxEju3yJri7sqJcFs+b5XYEWjh31lVWTWafB/u4C9re'@; put 'qftbL5QSiYScPnferWP5OnqHHz911vUa5bq/Wqt28aqULFrliBmGsryOuNTtqMDc9DTip7ewVFGu3HP5/CQtWfQxS8xQ8EoWqZu85QxqYn45hjAA9xciF1S+/WwgBab+8P79fx1+9ni2s5WxZh4/dcatm7nxTRQ/5FJSBKIISF/xrhTiMK8vMBWInkJCSCCI9zuy5dmwHNkRfjuxIEdiGavmbUvm'@; put 'y+1LF7lZ6FWVlVdc6BSbOQLmx/NCIJOwo8fnRcRW7oCV8nUUSN8Nq6XWsNTzqxeLdupZtjYps2+FuzWEMJYbiEvdHgWmF9RzX0cYhe8f+kJSGiYgy/8mc5b71gq8Bj20YaV9FuWKWpBMFtQlkALztsXz5S9QXF2TIQqxqDVTg83Vmvn9n/2S1sxCQPfJNrIVmDpc9+cS5xKtkXkAVa/2rotIf583'@; put 'P6IZHBqrOWVik9yK74AmBU2fPFGqUFNTf8TVhU43eoYUbwtNQAXjwLhKTdjZd/g4ROVbsnv/YWnr6HSPUy/HpaWIboWHYfy0ECxFsIRl4WulwPRyBnJb16KVCbl1LdKyApjs42aT/xLZ5L8aXgJobmQL8+lACszf+fRH5L0P3+9J9ni205CxZh5FLTbtab5p285sP8r3FTGBoQjMzG4asGTqD93p'@; put 'QyI70fc4X4HeGbG5ZMEcWTp/jkyfMtHte67HaiZmkwlCmVnhbT4I6LGmF+DuRTgu+NVSue/QMXlz5x5XVLZeakclmixU3xAHZ6B82PRFKVn2kC1V1TBaarmbLDdDgTlE2Hl8+6gGLVkUlzJN9sF2spzCPI7Iu1WbKLp+/pgtz32lDPvlraHBu1HmtqbACcwYEnD+7i//o0wcP879Ec0Nz9A/rXFE'@; put 'ccQRaZvJH8CaqVflXIJLYDgCU2ngd9d1mfd02LL39bAc3prfziFhxLiNbqiTeTOnydKFc2X29CkydkyDVKD8llo3VXDqLQVncI/VQuxZxkqp7m+1Vvb29sq5Cy2umNwOF/jBo8elvbM7r8dZ3ThbFt6bkinz1d0N3+oQO8JQYBbiSMluG3o+uu+jCZmq/ckDVnhdfwOslCNPfykq7Re8icvPjmrh'@; put '3hU4gTl/9nT56//8++4JbKR+LAdaM7/15FPyxvbdhZtRbqmgBIYrMHWQes0aQucQB7XQzp90ZPc6U84eNGHR0Vfyu1SUl8nUieNl7qxpbp1NzUYfXV8rZSjoPtCdPlLfofzuPdfuFYFrBaWGJV1qa5ejJ8+4sZR7Dx51Swz19ce92uR11xOrcGTWLRYS7lJS3aAu8eytlgNXSoE5kMbI35+yICUr'@; put 'P2KLgeDZIFkwlay6yTf+AuFSG4LpJg+cwPzEBx6VT33osYK6x6/3FXStmfGEvPDaRvnhL57HlXvX9d7K54uUQKTMkVsfTMmCuwcvU5TNbumVrLaoS8RD6F0usm+TKRdOGp4lOdxsDCoStID7ZFj9Z02fLLOnTZGpk8ZLQ10N4jer3I9r7KYKT1o5b0Yz2K9nBKW6vNVCqVnfbe0dyPy+ANf3UcRU'@; put 'HpWjJ85IB851+XB9D0YXxlKZNC8lc++0ZNxkvAPfJ0fF5WBvzuI5CswsIBXwLVGUglM3ee1YnBMD1tknHDXk5P50a1LXrVVAroXYVKAEptp9/vbP/73MnTm9YAk+N5ukjDXz8LETbt3MLW/tudlH+HoREUjXwYRL7h7numWKst0dFZpm2EA5IwdFnpEIhDIpl86NTIZheVlMxo8d48Ztzpw62b0d'@; put 'B5e6CtFYLOZ6CCg6s53Z4nxfRkxm3N26Fz09PUhi7HRLCR08clwOHjvpWijbO7pyKn4+HEIGSg81TrNlHoTlxFmOhBHTZqdyt3JRYA5nNvL7mdseTsqiex1P5je/Ix3a2kM4vff3iTzzTzHp7lAFE6wlUAJzEiww/++f/xEKoaP3c7YR3QWaz0yNt2fRO/eJp17wpGhwgYbOzdyAgJcCM7MZTQIK'@; put 'oU5ab7stpw5qPb6wtJ5GweHMG0bgVksh1cOiqaJTrZuanT5p/FjEcY6WqsoKt/mADku/d5nuQmrt5OJ/AiokrxWTOo+9fX2uJbL5QivqUZ6RIydOywk0mGhGTKWWERqpc6y2ehwz2YErPCkT54VEyxDZiGXz6pRPgem/Y7ZxkiUPfDYpEfSpGMnzYD7IRGDF/NX3DTmaQ6e3fIzLi3UGSmA+uuZe'@; put '+b0vfMIX7vHBJidjzTx09IR880e/kG274A/lUtQE8iEwFYhey2rdTG1b19dty2kIzcNbDblwIoxSQ/5ApolDtTXVEJ2NSKobK9MQx6kCtHF0HZ4fJeWI51RXqgqRgcIz89gfe1E6o8iISL3NWCV1LtTN3dvX77q6my+2yqmzzXLyjP6dkwstl6Srp9cNjRhpUobhyNgptsxCjOXEWSJllegknsyu'@; put '9NBQxk6BORRahXmvzv3azyVk7FTIy4DVxNQ4zP2bHVn/k+B19QmUwPyT3/ui3LPiVvR+RvNnHy9qzexH0Pvzl2MzvWiB5uPdDfTQ8iUwB0JzXefoLpLAYX3huCOHUKT9LARn3OMamgO3Odz7Kl40gaihrtYVm01oazmhqdFtbzkG/dNrRlVJGVzs6mbX92bEprrb9T5jPIdHXlnqonGRumQEZOZ5'@; put 'tSr3wSLpCkm4s1U4nm9pdV3dZ5svuI870IqxHzHjflsiMVvGz7JlJhJ4xk8NSaRMs2+9F5aZ/TZhUdryTEj2bcbFHFtFZrCM+O2ilUnUxNT42mC1jtT4+84WR57655gkE8FykwdGYNYgNuzv/usfuz9sxVBMWk/8+iOrcUxf/+HPZMeeAyP+BeYAhk6gEAIzMyrVEBqjaSHQvf2cI0d3m3Jyjykd'@; put 'LSMTp5kZVza3eryXxaJSO6ra/Y5qiaTG0fVuqSTNXq+HxVNd7eUQp2r5VIGUEUeZ5KKMyz1zq4I0yEtm/3UfM8JRb/VPX8u8nrFCqiVSs7XV4qgXrS2oMdlyqc0Vjxdb2+QiHmvyTWd3jy8skjebu+p6W6bMtWTKEktGNxk49vMrLDPjCcdMefM5ZPa+jl7kCf9/tzLjDvpt3Vh09vl8XKLlOBEG'@; put '7KuvrUyf+2oUyZ3BKlcUGIG5fMkC+S9/9Du+Se7J9svuWjPjcXnucmxmF07+XIqHQCEFZoaKXuMaEJp6UurucKT5aMhNCmo+HpaED62amXHf6DaGuOnKigokEVVKHcTmOMR2ahZ7fe0o192uF5DaAlato5qApK73KGreZsTWwHVnrKAZATpQkGaeG/j+wZ4b+PpQ7mdE37WfGSgIM2Ix81zm8cDP'@; put '6Jj1QlnL/miXsP7+hPQn4q4FsqurxxWJrSgHpHV222CRbEPiTXtnp3R190ovPDhxH1oiB+7f9e5HY46MnmzL9IUpWC0dqarViEsk76gr/Hof8vh5V2D+MiR7NxoUmB6zzWV1eiRoHOb4GfCRB9BNvgVdfd4KWFefwAjML3zs/fLh9zzk2/jLG32x9IdGfyw1NpPWzBuR8t9rIyEwMxRcZwoMLOEw'@; put 'LC1wGbZfQJmj/SGUvQhJ+9mwpHwSq5kZby63KsJUhKq4VAtnNdpfVsPiWVUFUYpSSlUQn3rfFaF4PSNEowhH0e9WBIxUlCorXZcmLelt5k+/g3o/I/oGik59buAy8DV9Xh8PFLV6P/Onr6UwESoSUyoY9RaP47ioVGujuqTVbd0HUaiJM92wPnbjtqcHf3Bp62N9Xl+PJ5KucLQCljylZYZqYZ2a'@; put 'NM+SSbNTUjcOc4VwNHWDj4SQoMAceLT76/78u5Ny+yPBc5NruaLThxx54d9w4F9zvvHXDAxtNIEQmJps8D/+5Pdljo/KEw1tGtLvVmumZm4+89Kv5cfPvoQfF9Qv4OJrAmmBaaFM0fDrYHqxg65VE3GayAtC2QtbWs+F5PQ+Q84eNqT9IkoUW1eLJC+26fd1qDDUdpkqKvU2ghRUFZb6PVOxqm54'@; put 'FaDu87hv4P1agSKzpD+f/mzmpG+hm4i6ogfWeFQxmYD40+fSVseUKyRVTCaT6fsqKlVgaiykPqf3rxWqme2Wwi2mREY1WjIB1qjxc2wZPR5JO2gHiOiPglorB2NNgTkYFX88VzvalrVfSCDBCzoMx0qhrNr53ntN6OzvseVpxGH2dAYnLCMQAnPCuEb5n//lPyCmMVr0J233Rw0/egcQm/nNJ34u'@; put 'b+09mO9jm+vPgUAELr0lq5KyZE1Ikv3+MBnqBbDGamoqerzHgtg05MzBkJw7Epa2i5p5W3piM4cp5kc9IqDflfomW5qmOzJ+puVaLcsrTJyzCxNbme1uUGBmS6rw70u7yRNwk2PbASy6/tK3EFe/LzhxmIEQmA+uvEP+/W99xvfZ40P5OqpbT62Z2gHoyadfHMpH+d4CEtAfzcWrUrJ0DSyYPhGY'@; put 'A3dfC/maprp+ITZh2VSBqTGb546giPtZXDX3BudqeeB+8/7IE4CxGDGUSNCZ5EBUWtKI2pVV9WiPF0NNV3i/1Rqst35bKDD9NiNXj2cB3OTLH4X1El6BoFgwdQ+1XNHO1xx549nglCsKhMD8w9/8pKxddXegBKYecGFYMl9EKaO//+p33dgwfY6Lvwj4XWAOpKV2SwNudBWdVkqk+5JaN9EH/Sha'@; put 'U54ypas13a5y4Gd4nwSyJaDHVeUoGzGUtluvcgySdWrHiJRXIeMdFzl2ErGqKiqzXeEIvY8Cc4TAZ7lZtYKv/SyyycuC5Ykx0YnqwklHnv0SOqW5lZCzBOLjtxW9wFS3+N/9xX9EoedxbnyTj1kPeWgaj/S3//w12bRt15A/yw8UhkAxCcyBRNxTM+qvhdWVDh9lf78tXZccaT1jysVTIbdzUOcl'@; put 'uP3jeJ0LCQxCIBKxpbJORMvHjJlkS8MEW0aNTgvKsApKnMDUSjkSiTqDDDfrpygws0Y1Im8Moej6Q59Lyli0CRVEJfn9giVbSOplSiYcNw6z81IwzrtFLzBnTp0kf/Onf+hmgAYpaF5jMc+jq8b/8X//vVuKJNuDlO8rLIFiFZjXUnKtmxCb2jlIY5v6+yzp7RBkpqvgNORSc0g6kKXe14NEjBJM'@; put 'GLqWV6k9Nk0HiRW21DSK1I+33VjKukZHKmsdtGpEghQuVhyrOAXltXNJgXktEf89Xnp/0g1LCpqbPIIarK98PyTH3kLR1wAsRS8w3/3ASvnfPv/xoixPdKPjx0TW67pNW+Vv/+UbN3obXxthAkERmNdi1KvpEESDxm+qjcCCe7OvB3U320XamtPCU0VnF660412oF+iP/KZrd4OPh0HAjDhSUenA'@; put 'GgkX91gISlgoa/Cn1spyFLlWV55mkLkxlBCVmqQTpIUC0/+zOXZKSh74TEq0GkGQDj+Nw9y93pZNT8X8PwlZjLDoBeYf/+5nZfXdKwIXf2mgbMo/ff378sJrr2cxjXzLSBEIqsC8lqdKCoHW1DI/IbVyQlWkIDrjKK3RC4HZAfd6J8ohdeBPYzl7ukIS70bXIQrPa1H65rEBq2SsDFbIOojJBgdi'@; put '0pEaiMpR9RCYNfoa6oWqmMTVhpPCRYbW38T/QfpBH2wyKDAHo+Kv5yJRRx7+YhzxvojvxbkoKMdkJg7zuf+fvesAkKo6u2fq9mVhadKLgKggCAFEaVKEqMRobFEsPxr9TTEaY/1jS6ImakSCYk9ETSxYwQIiUhRQmoICgvTey9Zpb/7zvWUImIXd2ZnZeffufbq8KW/uu/fcO/PO+8r5ns6gI8n+'@; put '1XUW8HH2RmmCKaLLj933ezRv2kS7+EvRwLzzobHYuIXmIrM5FoG6QjArmwD750/4x0FLp1g9o3Svh4KWrcVZVuShm53Ec7cbxXtJPPe6+Jxu9mLGGpW5qRXJUHb5kNlShoDA62WsZEZuFHkFTMKhS1tIZB5JZC6JZQWRpP4nM7tFi0+skTHLpFy1dblwxwOwIZjxoJW+Y08bGUKnXiSXCiSOVRcl'@; put '+b6yYBfjMP38vVQ/DlNpgqlr/KVUFFm6fBXueeTJCqtBdVenOa7WEajLBPNoYNuUkf8cQTxJVSxaM0XKKcj6AeXllEg6IJZOkHSSgPJx7HmAcZ6BUrpgwxWE52jnMa/bxkXGP1rIzAIyKD6dXc9Cdj7lgbjPpUs7u4DPs/leLv8yaYEWFQFexYRISka3JBJC3NwGzEMIGIJ5CApHP2jNcqIDLuJN'@; put 'alQvuSKp6jPtJephLlNfD1Npgnn24H749ejL9Iu/9HjxxqQpeOnNyY7+gpvOAYZgxrcKbIMl/7H1Oe1/SJLYhCTo8TrBKjcspxikXFIp7ISiAPfltHiW0Q1fStIpj4OyLwHCAR7HYyMhciT+CWkSd64OmwzD440yy59/JI9+ksPMbBJJEsUsWiOz+ZdLi2RmHl3ZfD2DsZHiNpQkATevSzaJFFxp'@; put 'JRZhIEnAERZpiGTVq8MQzKoxcsIRObx5GnFNObLzeNMka90JnUpCHyQOc/H0KBZOUV8PU2mCefN1ozC0f1/t4i/FRfXHMU+bKj5J+LKmugkhmKcMDOOUMyusc6k+n+7t2/SQ/0hWslw13EJC+X/sdYtEyWKN6jCJU9gmli6EKe0RJNkM0TIaLHfzMd30tJAG5LVyPqbUUohup3CQf6xiJMdLNSPL'@; put 'kox4WvKoCRqReCe2Lao60YNZ8rYqRXXjoFi3znb3sxmGT9N6K8/lsdQ4j3I8/GNiqNTY9rIapawbL//8GSSG3EsspJe6fhlZFnx8LNZGv7zG432Mg/SQPHp9UkedbUs9UG5CqKOMixQrpC1YLiRdl6tsGhe6IZhpBD/OUw+5IoDmHfghfgl0Wfpiwdy8ysJHz2dU/KbEiYmTDleWYEr9cYm/bNOy'@; put 'uXbxl9t27MKtfx6DomKaaczmaAQqapFbrEUuRMZktNTWZNkU6yDREtIlm9t+zndihFRelAMlN4XMS3JU5B8hZBYJakQIWUTqtHMvx9jvSz3sCqJm8T2JKY0eg2TKRY2foLWRpxViKScUQsm+CMEUUul2W/Zzed8jfeSf/X6MLB68Mh66QNp9kc4c7JP9gP2wXzH/pBoBQzBTjXDy2u/SP4Qew+Sm'@; put 'UB83ufw2lBywMOmJDOUrrSlLMFtSWP3Ru2+GlFTUSf9S5IlmzV2AR556MXnfQtNSyhAwBDNl0Ka04UOe9IMPSPsqyOhhZz10zGGvHevhD62HRzw/+OSI147VmHkvbQgYgpk26OM+cdM2EQweRbkihpJocwNm34O68OFzXmxfz7tShTdlCeaAPj1w269G0w1G35dGm8gTPfvyREyeNkujUek7FEMw'@; put '9Z1bM7K6iYAhmOrMu4SUDL8myJKkZGW8e9OFZEoc5udvA8vnMZ5G4U1ZgnntZefjgrOHaZXgIzFcpWXluPvhJ/D9uo0KL6u603VDMOvOXJuR1g0EDMFUa54HXBxA2y5URtBIrkiS9VYuiGL2RLUTfZQlmA/e8Rt0PbETs0gZua/JJgRz3cbNuOPBsSgr18syq8kU/dcw/FlR/GhECCf0krrdJgbz'@; put 'vwAyLxgEFEPA6/dg/ocuLJ/rsZPCFOt+netu59NC6H22XnGYHhaz2L05iklPZVYk8Ck6q0oSzHp5uXj8/ttQvyCfgfkVwfCK4n9EtyX+8pPZ8/D4c68c8bp54lwE/HTR9D47jI49DcF07iyZnhkEqo+AaIXOm+zGyvkeW22g+p80R6YDgYYtwxh2ZYRqC/q4yEUpIlAaweTxWSzPa0eIpwPahM+p'@; put 'JME8sWM7PHjHjXZyj04JPqY8ZMLrudYbEILZ55wwOvQwBLPWwTcnNAikAAFDMFMAagqbrIjDDDAOk7IMGsVhyjqc+k9KFq2kFIWim5IEU0eB9Vj85f/9dRzWrN+k6HKqe932Z0dxxnkhtGEMUDhoXOR1bwWYEeuGgCGY6s3ogEuCaHMy+61RHKYk+sybBHzzmbqJPkoSzBuvuQzDB52hlcC6ib9U'@; put '70dNemwIpprzZnptEDgaAoZgHg0Z577e5Ywwegyni1wjPUxJ9Fm1MIpZb6ib6KMcwfRQVfmvf7gJndq3ZVk5lvLQZBP3uOhfPvr0BE1GVDeGYRPMn8rds9tYMOvGlJtRao6AIZjqTfBx7cMYfFmElbP0icOURJ+ddGZ+8JSfxR/UjMNUjmAW1q9nJ/jk5eZol+Dz3CsT8d7Umep9u+twjyX+p+95'@; put 'EbTtKqUIjYu8Di8FM3RNEDAEU72JzM5jXfJrA8gpYF1yTeIwJdGnvJgVfcZnoPQA40sV3JQjmCd1bI8H77zRJpc6JfgEgyHc99hTWLZyjYLLqO522ZYpGh7GCb1Zi9zIFNXdhWBGrg0CQjDnvOPG94tNFrkqk0oVTAy5OohmbSm1XvG/Kl0/ej9ptJTQuY+eZ0WfdWpW9FGOYOqY4OOm23/rjp24'@; put '7U9jsL+o+OgLzrzjOAR8GVF0HRhGtzNJMMuNBdNxE2Q6ZBCIEwE3XZOzJ3qwbikJZlhN12ScQ9bicNEjPvmMKKywpVVFn5lvuLBqgZqZ5MoRzBuuvBgjzxqkVQUfIZiLli7D/Y89o1VddS1+taoYhMcfRaeeYfQ517jIq4DKvG0QUAMBcsqZr3qx8TsPrIghmGpMGnB89zBOv4C62Jplki+ZGcWX'@; put 'H6iZ6KMcwdSxgo+XAusTJ0/Fi29Qk8BsSiHgZlB5i44WBl7KilKKBmIrBbjprEEglQiQT4aZOzp9At2SGzy84TcEM5VwJ7PtwuYRnHVVCF41uVilUHj9bmxYbmHahMxK33f6i0oRzLycbIy5/1Y0KmyACOUItNlcbjz61D/x2ZeLtRlSnRmIK4rCJhaGXhWEP4eB2BYDgMxmEDAIKImAy+NCyd4o'@; put 'Ba79OLBbyKUhmKpMpCRcjvhFAPUK+TusSaKPm+tx306WjHwyQ8mqUkoRzLYtm+ORu2+mFIHcWepzIS8pLYMIrK/buEWV77Lp52EIZDGD8czLgmjc0s2YLX1Klx42RPPQIFAnEJAEn62rgRl0kZeXqJm5WycmqpJBCicYdgUTfTryTd7o68AQmOODQAB4/wk/ivaptx6VIpin9+yGu377CwJOxDXZ'@; put 'JEts/aYtuOPBsSgtK9dkVHVrGL5MCz2GRnDSGSbRp27NvBmtbgiIuPXS2cDiaR6qQqh3QddtPuIdT8/hQXTpR36pUaKPWDE/et6DbWvVS/RRimBe+pPhuPLi87RK8PEw/nLO/MV4aNwL8X6XzPEOQUDiMFt3ttDvYgZvGQOmQ2bFdMMgED8C4iKf9ZoH65eZBJ/40Uv/Jzr0CKPvT/VL9Jn5OjPJ'@; put 'FxqCmdIV9rvrRmFI/75alYj0eLx4/b2P8PJb76cUO9N46hAQ10y9BhYGM8C8XqGLmac6OGdSh5dp2SDgRASEXBbtAab904v9eyjYbeIvnThNx+xT41YRDL0yDK9XDxe5DFZqki+eHsXCKeplLyljwRQpn7/e9Vuc0KGdViUiwQSfvz39ImZ/seiYXxzzprMR8GVY1MKMoOsAI7ju7JkyvTMIVI6A'@; put 'jxfyZZ8DC6bSPV5u3OOVo+TsV7Pzo/gxE32y85mexft8HW71JWxj9WILM17LcDb4lfROGYKZn5eLscwgb1C/QKsMcom7/MNfn8CaDSw6ajZlEXDx16xxS1oxR1EmQxQljKtc2bk0Ha+DCDCZwmKEy7SXvdixnu5xy2SPq7gK3O4oho8OoFEr9p6/wToQTEk827HBYk3yTOXGowzBbN3iODx69+9o'@; put '+vZqk0EuCT5bd+zCrX/8G4pKSlX8Pps+H4aAP9tCn7ND6NDDbcpGHoaLeWgQcDoCYiVasySKOW97ESgz1kunz9ex+tf/oiDancLikeGIcoSssnFJkk8RpbMmM5M8oJhlXRmC2bt7F9x98/UIBilorckmcktffbsC9zwyXhvSrMnU1GgYYsVs0pqSRZeH4MvgD5zRxKwRjuZDBoFaRcDNuOkwxdVf'@; put '8WLrGje/t8Z6Wav4J/lk3QeHcMogWi+pla2DBVOkisIh0cIUbVa1apIrQzBHDhuIG666RKsMcjcJ5kfTP8P4Ca8n+StmmksXAiJZdOqQCE6mVIapTZ6uWTDnNQhUHwE79nIukyg+8iFYbshl9ZFz5pHtu1WUjHRZ+tQkFyvmlBc8vAFSK5NcGYJ5/agLcd6IwVoRTJEoeu6ViXhv6kxnflNNr2qA'@; put 'QBT5hYzFvCKEgoZGeL0GAJqPGARqDQG3102rkIXpL/uwb4e4xg3BrDXwU3Sixi0PZpL79Mok//RVMNnHlyLUUtOsMgTznpuvQ+9TT9FKZD1CF+pD457Dgq+XpWZ2TatpQcDWxTw5gv4XhCtcNDr4adKCpDmpQSCFCJBLCp2c/ZYX67/xsAqXIZcpRLvWms6tz0Sfa8qRnVshNKXDz69IFc2fEsXX'@; put '09WSKlKCYEpijyT4tG/TUiuJIikRKRV8Nm7ZVmtfPnOi2kHAli0aEkbXfi6T8FM7kJuzGATiQkASe5bMAr76xFTtiQs4hx/s9Vn48bVBFDQlwdSkJrkQzGVzLcx5Ry2pIiUIZv16+Xjsvt+jQUE9bSSKJIN809btuP2BMSguKXP4V9Z0ryYIZLNG+ek/C6JVJ7mARWrShPmMQcAgkAIEhFyu+9bC'@; put '3Ld9KC02WeMpgDh9TZJUDtWsJrnX78b65VF8MsEQzKQvrNbNKVF07y3wMilGqqbosIlw/JLlK3H3w09qMyYd5iWpY2BWeUFDCwMuCaGwmQfhoCGZScXXNGYQqAECQi63r4tg1kRm5e4St7hxjdcARkd/pO/IIDr0Zhc1qUnu8bqwa4tFqSLRwlRnvSphwTy1S2fcd8sNCIepJaHJJgk+02bNxdjn'@; put '/6XJiMwwKkNApIsatrDQ/8IQ8iXpJ2QU2CvDybxmEKgNBLx+D/ZstTDrDS/2bhODRW2c1ZyjthE4ZVAI3QfrI1UkWeTFey28R6miYJk6UkVKEMxhA07DzdddqVcGOWuQ/+vt9/Hqux/V9nfPnK+WEZDqEo1bR9DvggjyCt3GklnL+JvTGQQEgRi5/OwtD3ZvFnKpjiXIzGB8CBzfPYTTz+fdgyZS'@; put 'RS5qtQbKK8TWi/epE9KhBMH8+U9H4IoLf6IVwXTRRT72uVcw/fMv4/vmmKOVRMAuJdkqgr4kmQWNXIgEjSVTyYk0nVYSAdstznJ7c5gxvne7sVwqOYlxdLpZ+zDOvCwCj0cTqSK5F6LqzPvP+LF7i7FgxrEUqj70N6N/jh8P7q8VwQyFwvjT488wDnNV1QCYI7RAQEhmg+Oi6H9RGPWbMDzIkEwt'@; put '5tUMwsEI8MIs5HLjCgvzJnkZc2m0Lh08W0nrWoPGFoaOLkdGFudbkzAIDzVbP37Rg00rDcFM2kKRhu5lichep3bVSgOzqLgEdz40lpnkO5KKlWnM6QjQXU5LZo/hFpq1ZbUficnU5AfQ6cib/tUtBMSt6GHs2spFUSya4kPJAcrWSN09s2mPQBYVPEZcG0BugVsrqaJP/02x9a/UEVt3vIvcQ1fy'@; put 'o/f8Dse3ba2NBqb8yG3dvhO3PfA4DhQVa/9lNwP8IQKs9tMwiu7UyWzfBRDBfVO3/IcYmecGgZojINYeqd+8ZIYb384RBQd14tZqPmrzyRgCumphzpsUxTefqSO27niCmZuTjTHUwGzcsFArDczvVq+jBfPv2owp9sU2++ojIHfZJ54W5p8Fb4bJMK8+cuZIg8DRERDNwOK9UXw13Y3vF3thRYzV'@; put '8uho6fmOzPiQ/wmgWRu6hyr+V36gIrb+9Ywo5n9oCGbSJrNRYX2bYObm5DAhTI/ECJEomjv/Kzw47vmk4WQaSj8CYm1v0awJ2rZqjhlzFlSrQ76MKFqfFEG3MyOsYe6i1cW4zKsFnDnIIPADBFx0h4tLfOv3Liyc5sbOjW56Bqoml16vB5kZfpSUlhtN4h9gqvLTARcH0LaLC9GIpUUUkhDMFV9E'@; put '8dlbhmAmbV22a9UCD//hJv5w6COy7vX58MG0WRg/4fWk4WQaSj8CebS2//LqS9H1xI544PFn8c1331erU5L8U9jcQrfBEbTsJO5yJgxGTGBmtcAzBxkEiICHVstwuYXl8zx0ibtRVlS9RIiC/Dxcf8WFOOH4tviUih6vT5qKsvKAwVQDBHqfG0LnPvw91URs3cc1vvYbC9NfyVRmdhzvIu92Uif8'@; put '8dZf6SWyTg3MV96ajNfem6LMQjEdPTYCcgN0Conlnb++Bn6/D6vXbcBD417A9l17jv3Bw97NzLHQqVfEdpln5Rlr5mHQmIcGgUoRsBN5pMrJJuDrT1l+d5WXxQyqtlpKYxILf93lP8MIKpR4mBAk1dXGv/gapsycg2AwVOn5zIvqIKCb2LrX58bWtRY+eCZDmWQ1xxPMAX164HZetMvLy9VZ2VX0'@; put 'VFzk41jBZyor+ZhNDwTycrN5sboQg/v1sdeqXKwWLlmGR5+eQNdb9WvNu6nb1riVha5nhtGsHbGhIdNYM/VYI2YUyUVArJahsiizxF1Y9pkXxfuEWFaPXEpPenU7GTdeezmyMyvqO2dkZGD5ytWUj3sWe/cfSG5nTWu1jkCnPmGcdq5YMCNauMilXORuVqGaJOUiFSkS4HiCOXLYANxw1aVaaWBK'@; put '1vDDT/4DXyxeWutfOnPC5CMglpDj27TEPZTTys/LtRO35DVxcn8yex6efmkiQnGWOc3IjuL4U5kA1NdCfn0XPy9M07jNkz97pkXVEHDzQis0cttaF5bMcnPvqbbVMjZWuSEUb8MJHXgXd7BepHxng6EQ7vvbU1ixai3VHfSI+Y+Nua7t23Zl9bQLI3BpUs1HykUe2BXFJJaLDCmiiuB4gjnqgnNw'@; put 'Gf/KyqpvBXL6FykQDOLuh5/EyjXrnd5V079qIJDh97MQQD9ce9kFR2i1ygXL4sXrnQ8/wUtvvh93AoHEZtZrZOFkksy23SIUjBbpFZMEVI0pMYdoiIC4w70kl/sZdbJirgurFnkRKK2+xTIGiZcepNGXnIezBp0BNnnE99LP7/LY517GjLkLEDBu8hhkSu5bdIxgwCVheDWp5uPmYi0psjD5yQyU'@; put 'Fashu+V4gvnLqy7GucMGaUUwi0tKcceDjxuRdSV/tv6702K1vImutt6VFAMQkhlmFuMbk6bUOObW66sQZz/xDAvN20fh8Zn4zP+eBfOKtgjwwuojsSwttrBmCTNp57ntijw1cRN6GSt9+QVn85oykHGXzDI/aL2MYZeZmYm3PpjGGPn3UVqmT1hWbHx1ad+oZQRDrwzDx99PHXw/dj3yAOuRj/Mz'@; put 'HMQQzKSs5VtvuAqDTu+tTQymEI7tO3eTYI7Fnn37k4KRaSS9CDRv2hj33fK/aNKoYaXJaBKPKdaQf7/9Ad7+aHqNOyuSRs07RHBCHwtNGKfpYdC3sWjWGE7zQacjQOuij2s8QJ63aQWwfK4HOze7a6xrGSOXI88aRMslQ1h+QC4FDonDXPj1t3j4qRdNEQynr48q+lef5SKHjQ6wXKSYqas4WIG3'@; put 'uWS59hmDSQvmvp3VU0lI97Acb8G8/5Yb0JPB2IGAHtIRQjA3bN6G2x8YY+6Q0736k3B+uWh16dwBd914LV0xR5fSknkPMdj8dVoyJ07+uNKLW3W748uwKGdkoSMzzpu2isJtiGZ1oTPHqYDAQYtlIGhh80oXvvvCg+3r44+zPHyoonV5+fnnYCQtl+JqrIxcyvHiPhcDwL2PPmk8TIcDqODj3PoW'@; put 'hl8TQHZuRcyu8hyTBJMLFx8+68fOTYZgJrwk5aL88P/dhM4d21M2Iphwe05oQKxZK75fa6r4OGEyktAHv89LC3sv/Gb0ZVWuUZl7SfZ5mfGYk6bOSDiJQCyazWjR7HCqhaZto8jIFHc83UFGQzMJM2uaqG0ERCjdy78A9Sw3r3Tju/nuhImljCGLWeJXXTQSwwaeweQgfj8qsVzGxirXnHAkgj+N'@; put 'eQZLl69K+Dsaa9fsax+B7FxaMK8pR34Djzb1yOXm6KMXvHZiW+0jGv8ZHW3B9FOQXMpEtmrRTJs65EIyFi1dbmcqxj9d5hNOQ0AuXucNPxNXXDiyWmEcMv+lFHKe/PEMWjKn0XWe+I2Tx2ehUXOgffewbdnMLmB8DnOBwhQY1sE15LQ5N/1JLgKSFS4ZsqX7o9hIV/iqhR7s3kKLZVhMNolt9evl'@; put '4xfUuuzbsxuJJSu6HINcxs7k43XnEbrIP/9ycdzqD7E2zD79CPgzoxhOF3lBE1owOe/KWzAJqdfrxscT3Nj4nTf9AFejB44mmLE65EeLbavG+Bx3iGhgzp63AA+Pf9FxfTMdih+B7KxMJg2cg/N/PKTaiWhCMoOhMGbOnW8nE+zdXxT/iSv5hJtZ53mFFlqdGEGbkyw0aFbxg2SsmpWAZV5KLwK0'@; put 'xEhGuFSt2rvTwoZvPFi7xI19u6pX3rE6nZfY6F//z6U4sdPxjF2jFmI1yKW0K3GYT00QwfW5DM1K/AawOn01xyQfAY/HwohfhNDguCgJph732r4MDz55xYV1Sw3BTHjFyN3nY/f+Hg3q17O1BRNu0AENCMGc8unneOKfrzqgN6YLiSKQk52F0Zeeb8sUxSOlJSRTJIwWUYz9pTcnY93GLYl25YjP'@; put '+/xRNG1DsnlSGMd1iCJfrJo0CEWMC/0InMyTWkSA68/jcdNaCQTKLGynjuXapR5sWulBeYn0I3GLZWw0XTt3pFfhXHRq36bSxLvYcZXtJZP8H6+9g/emfIpyQzArg0iJ19zuKM66OojGbcguNXHmSD3yT19zYTUlulTYHG3BbNqoEI/ddyvESmRpInorQeQig/GP195VYX2YPlaBQG5OFq4fddGh'@; put 'Cj5VHH7E2xLvJURz3aYteHniZHz51TdHvJ+MJzwFsvMYo9neQuvOEVYJiiKnHpOR+J8hm8lA2LRRFQLi/pYqJKJ4sG8H6N7zYMO3buzZVvOM8KOdUxLthvY/DRecPQSNGzaokWEiKyuLcdKT8eb7/eqQVQAACklJREFUH5u65EcDWoHX5bdvyNUBNBOCqYkF08vqVQunulgW1afADPCWsfvgnxJ6'@; put 'Z24tmzWlBfMWO7Ovuu4NZ47kP73ysA75y29OYjbx1P+8aB4pi4AQTCkROYQXtZqWM5Wbjn0HiuzEn/c/mR1Xacl4gJM7+uwCSh21i6A5s9AbtSTZzHezri3jNY1lMx4ozbHHQoDrSZIRhFTSM40DuyPYtoakcrkbO9Z5bNkhublK9taEBokLzxmK/n16IjPDXyNyKX0SgvnqOx/aig9GCzPZs1S7'@; put '7Q0eFUCLjjwnq6A5lujEAYkQzK8/BUmmP45Ppe9QRxPMDm1b4S93/da28mhDMEkmnv/Xm3h3yoz0zbo5c9IQSAbBlM54aHkRQfZFS5fh37y4rV63MWl9rKwhqRKUW2DZ7qPmrHjRRMhmfTf7IVpr4krXxKdU2eDNa8lHgHzRS/e3i+tHLJVFrLazbb0bm1eIxJCLLnAhlMknlbGB/KjbSbjkJyNw'@; put 'PK8ZDLZMyOMlLvIXX3+Xv9GfGgtmDGBF9wMvDaL1yew8Ex51IJhy07ZmCTDztQwlZsTRBPNkBmf/+fZfJ/Rj4bRZcPMKPu6Ff+HjWfOc1jXTnxogkCyCKacWq44QzW07dtmC7J/M/iIpWeZVDotkMzsnioYUb2/GSkGN20RQ0BDwM6Bc4kSNK71KBOveAeSKHlopXbzgybotL4ngwE4Xtq0jqfze'@; put 'hV3U6Qva1X1TRyoF9IYNCmxtyyH9ToPUFw9TBizRzcRgJoqgcz7f/6IA2nVlMhlvmHUhmGtJMGcYgpn4Iut+8gm4//e/TMqPRuK9SVIL/DF+7JmXMGvewiQ1aJpJJwLJJJixcdjWTIqyL6Q1U0TZv1u9LvZWyvfiKfDz5rheEwvHtWGiEN3pDZqSgNZjcgbzhKK0bobpbhKXk9nqEALkieL2lnhK'@; put 'qYITCkVQvBfYs9Vtk8rt61gjfIe4xLlIamHz0RPUp0dXnD9iMNq1aZmw1fLwLksW+fP/fgvvT5vNJB89CnwcPr669LjfzwJo300fginfvx0bLXzwdJYS0+hoC2afU7vgDzddX6WAtRJIH+xkhBfmR8b/A/MWLVWp26avR0EgFQRTTiVWIYnN3L13H6ZSLmXKjM+xa8++o/QidS+LKz0730LDFrCz'@; put '0huyvm+9hlFk5njZR8Y1GcKZOvDT2TJ5oodrMGahDAdIKA+4sG8bbOukuL33bmcZx1LpZGqtlD+EoWO71rb27I9Y4U10aEOh0A8PSei5EMzxL76GqbOMTFFCQDrgw6f/JIjje3F98oZdh1tiqUe+b3sU747LdAC6VXfB0QSzX+9Tcedvrq1x8kTVw6/9IyS27YG/P2eLrdf+2c0Zk41AqghmrJ9i'@; put 'zSSTw9oNmyjOPhOfz/8qrSVG3R5qbTaIorA566G3tlDYzEJ+IQlnNqtliIWToZtyExUVC6cOv+ixidB5z+tvzN3NKEqGJEVRXkZCua/CKrlroxs7t7hwYAflhMTtHa1dQhmD/rgmDTGc1XjOPP1HqF9Qz/ZspSI23xDMGOLq7/UkmBYJprFgJrw6B/btidt/dU21BawTPmEtNBAMhvDnsc9iCcuQ'@; put 'mU19BEQH80pW8Rl51qCUrlOpLiJlJpetXE2iOctOBgpwLaV7k8x0qfnboFnUzkovpKhxfkOL9X9JWvwkx5JwIUlDQjjlz2zpReAwy6SQSU4Ps7ojKD0AFO12UTqI8ZMkk/tpnSzex9Km1BlPRcZ3PCA0KqxPUtkLQ/r1QdPGDW3B9Iikp6doMwQzRcCmoVkdCeaebRYmPWEIZsLL6dyhA3DDVZdo'@; put 'ZcGUyhD3/m0865GvSxgf00D6ERCCOepn59ouu3iE1mvS85jbXMSfly5fSbf5HCz6ZjlDSNJPNGPjEbd5JhOG6jVm0hDJZgNaOAv4OKcea6XnuCuqt5DViGtdEojEWmYsnTH0krinkdGOmZREHJJKWTuSrBUoJZlk4ajivR6SSdDl7aE2pcu2VgbL5fzpsU5WNnLRsTyjV3ebWIpknWzJSOKp7FyH'@; put 'v2YI5uFoqP1YO4LJ73HRnijeGmNc5AmvzCt44b7kvBEs16VPoLUEjd/76HgmbqxPGB/TQPoRqE2CGRutkAWxaArR/Pa7VbYigdS3Lym103Zjhzlm76FbPTu/wrJZ0ISkk0lD+SxpmZ3PsnzZJJ5ZjOdkb+08T0M8qz9vBE3WAjkk5YEq9hJOYZFIBmmVDLA6TvEBNy2TJJI7hUhWWClLi2iZtH9S'@; put 'BXXnbVLiUbxX/Xv3QDM+lq02iGUMCUMwY0iov9eNYNozwq/thLsNwUx4dV5+/tn4Of90IZhyMSgpLcVdf3mCpQE3J4yPaSD9CKSDYMZGHSOaYQawr1q7HjPmzMcXi5di526m9zp8q7B0WsirD+QyhrOAiUOSPJRNd3tWLvd5kuQkuoq0wNnedYnrFI97RXyn7Wy3/3H4QBPpnhBHfl4C+2WuxRIp'@; put 'Gdzyori2g4EwiSRd3NSYLGECTvFexknSzX1gF5/TvV28HwiVixtcWnH25vV60LFtawxifGUvJu80LGxgy9PVJrGMIWQIZgwJ9fdaEkxOy4R7DMFMeHVeP+pCnDtsoDZZ5IZgJrwkHNdAOgnm4WCIRVPI19YdO/ElFQpmfbEQq9dvpls0dbFqh58/WY/dZJMZWYzrbGAhpwB2QlEuqw/JX1ZexXte'@; put '/rb6M4SAMsbTdv/y7CSf4nIXd7vtdudLkmh0iIMeepCsntawnQp+KIZGEsWKJzZpFPIozJH/S1ejtEJGKA4dDFh2HKSQyDJaHktJJEuYfFMkfxQzL9vvRlkp3d+2/KM0qtZWkJ+HHl07YwCr73Tu0A45Odl2Vng6SwMbgqnWGjpWb3UkmPLdePm+7GMN2zHvOTqL/LZfXo1+dJMkW4YiXegbgpku'@; put '5FN3XqcQzNgIRdpI6puXlJRiBfUzP/tyERZ/s0IJq2ZsDEfbe9wWvJkuZqxbdpxnZh5Y6lIsnizvl2sxxlNc7i5kZFjw8zi3Nwo3S/b6xBIqBE6EPIWQygliXIxsTnhpbLMpaex5bB978/B97PPc07Z46B2bOMozeUnalsdCfvmogjQKcZQ/un2ZQBMKuEgiKVROklhezOxtksgyurbLikgoiyus'@; put 'k4EyN49hW9Z/ziPNqrpl+P2suNMSfXt2Q8+uJ+I4usE9nBv5nU9FVni8OBmCGS9izj1eN4JpyxTtoEzR340FM+FVd9sNJJh9DMFMGEjTQMoQcBrBjA005j6XC/b2nbuxdMUqzF3wFZYzuexAEZmLphsdwjap9Aqx9FnwMdnSz8fezCh8/E32ZXDPMr4iJu/xR1k5ifGs3FeQUVZSYla820twyAxt'@; put 'PkqSam+yO8jvLBI9SyyGfC4Z8lZIpH1IGENCHGlN5D4UdiMc4D7oIpEkiWR4bDggRNFCJFiRnS1xkHK8fPZQ4/JQw02sza2aH4ceXTrbLvC2rVsgmzW/xcKeDjf4sSA2BPNY6Kj1npYEc7s6MkX/DwAA///r8VITAABAAElEQVTsXQd8FNX2/rZl0xMSSkLovXcBBUSKgNg7dkXF8tRn74o+n/7V'@; put 'J4oFsIMdO4KCFEFA6b33HkpIAklI22z5nzNhNcQkpGyZuXvmR5jd2Zk7937nzsw3p5q6DrrUA50uj919C/r17o6ioiKd9rBq3TKZTMjNy8NTr4zDnv2pVTtY9tYlAlGREbjhigtxybCByM/P12UfLRYLbDYbHHQdHTpyFBu2bMfS1euxbdc+ZGXn6LLPeuqUx/P3LZKvYVkqh4DNakXD+kno2rEN'@; put 'undqh6YNUxAXGwO32w2n04mSuFauxcDsZbfbMX7SZMxeuASFhY7AnFTO4hcEzrrUgVY9TPA4Xfj7KvbLqQLSqMlswvEjbvz0TkRAzlfTk5iEYNYUwsofLwSz8lgZZU8jEMySWFrpoc9/TDaPpKVj07adWLl+M7Zs3430Y8d1+9AvOQb5rF8EIiPC0aRhfXTt0Aad27VGo5QkxMbEaPOKSSWTS70v'@; put 'YWFheOvDz/H74hUodKih3NA75v7q39lXFaJZJyKYLrc6BPMwEcxxQjBrPGdEg1ljCKUBPyNgNIJZEg6vZtPlciE94xh2k1Z93aZt2Eikc//Bw8gvKCy5u3wWBP6BgNlsRp3EWmjVtDE6t2+NNi2aoH69OoiIiADPK/4zAqksOTDW9o/94DMsWLJKexEr+Zt8NhYCqhFMs8WEQzs9mDkx3BCCEA1m'@; put 'AMUkGswAgh2gUxmZYJaEiIkCP1h5yc8vQOrhNGzfvZfM6TvIlL4XR9IzyKzpKnmIfA5RBGKjozTTd8e2LdG2RVM0bZSChFrx4BcWJpRGd2kqJpifE8FcKQTT4HN84PWFaNiaBuH2KKHBtFhN2L0O+P1ruyEko2uC+fg9I9G3ZzfD37C8M0EIphcJddaqEMzSEuGHLBMG1j5l5+QQ4TyKrTt3Y8uO'@; put 'Pdi5dz+Oph9DEZk8ZVEfAZ7jKUl10apZY7Rv3QLNGqeQ1jIBEeHhf/lTGk1LWZHUhGBWhI5xfmMf33NvdCClFfVZIYK5YzWw8DshmDWeiQ/dcQMG9OmlHMF8+tVx2L1PgnxqPEF00ICqBLMktKzdZLLp1VDlnMjFwSNp2LF7P5FOIpx79iMtI1NM6iVBM/Bn1lAmk5mbCWXblqyhbKCZwSPJ7M0v'@; put 'yayhZE2lqosQTDUkazYRwbzFgaSmFN5Drr8qBPlYw8xYPRdYPTvMEELStQbzRorOHXHJeRTJp44vWKHDgefGTNA0QYaYIdLJChEIBYJZGoCShJO1BCeIcGZQgNCeAweJbB7Ajj37cODgERyjCHWViUhpXIz4nSO9E2vFUTBOMmkmG6Bl00ZaYE5iQi1NQ8lj4uAc/guVRQimGpI2W9wYdqsTtRu4'@; put 'QVxTCYJps1uwdAawYX6xO5PeJaVrgnndZcNx3WUXqEUwKe3Fc68LwdT7hVHZ/oUiwSyNDWu1WLvJ0em8sIaL0x8dPpqB/amHsWvfAeyjNWs9s7JPiGm9NIAB+m61WlArNlbTTnKkd/MmDdGI0ghxkA6nD2L58QsDk8lQfjEQghmgCenn01htHgy/vRDxSSYimGr4YIaFWzB3sgm7Vhffa/0MYY2b'@; put '1zXBHHHxMNx45UVKEUwOlPjvm+9jLUXrymJ8BIRgli3DklpO3oOtEGxaT888rkWoc5T6vtRDREIzadsx5FFgkV7zIpY9Qv1uZRyjoyJRKy4WKcl10TC5Hho1SKZ1EmonxFPaoGhwKh5emEjyn0o+lDWVjBDMmiKoj+PDI9wYQgSzVh2zMj6YNjKRz/nCjL0bhGDWeJYN6tsTj9w9UrcJrKszQCfl'@; put '43pl3EdYsXZTdQ6XY3SGgBDMyguEtZys7WRNGa9ZU8YR68ezs8nEnqVFrh+k6PVDaRk4cOgwjmXlaMQzlLVpFaHLGsmoyEjEk/axXp0ELT0Qpwhi/8m6tRO07fw7486LkMmK0Pz7N56f/5swCYtXrBVt+9+wGO5TZCyZyG8rRHS8WRkNJkeRz/7EigPbiq9pvQtF1xrMc87qgcfvuU0pgumBCWPe'@; put 'nYQ/l6/R+9yQ/lUCASGYlQCpgl2YaHq1nbzmPyaeeVTxKic3D8eJZLJ/J6dJOkLazqOUrzPzeJZmgj+Rl48CcjlRlYCaCRu7PQycvDyOkpXXio9BnYQEjUzWq5NI60QkkJYymoJyOKLba+JmDaaXTIpWuILJV85PrMEc894n+HPZGklTVA5GRtgcm1hMMMMjyUROHVYhyMdMlXx+/ciKw3uEYNZ4'@; put 'Dp7ZvTOevn8UHBQYo8piogfo2A+oSsSi5aoMKaTHIQTTP+Jnoukln17iyWdi4sTm9gJKAp9P66ycE5pfJ6+PZ2VrWk/2/8wmczyb5HM1Ekr7ExFl4soWhGCag1mbGGazajlHw4k88vyJJi0jm7TjYqKIRMaRaTuGtI+x2nf2jeR9IohkhlMJQ68WmIkjj4fXPB4hkr6bh2Ii9x2WwWwpIcmNoSML'@; put 'YQsneqkCu2SWTOmWfnk/DBkHhWDWeG717NIBzz54pzJpihgQC5lf3vn4S8yav7jG+EgDwUdACGZwZFCagHrJqJdwMeniYCPO2lBU5NQIJn9mX08Hlf/LLyjQCCoTVS4HWEBklbfzvk4isbzmsAD2mebPbs8/SxxyBLaNyKJ2bpOZ/Bpt8G5j8sg1re20LSLcjgj+TNtY08i/8TZtX/rdTv6QrH3k'@; put 'MXmXkuPwEkghkV50/LsWgulffAPVer0mLgy+wUnXlhoBPmTQoPuRBz+PD0NWuhDMGs+jTu1a4b+P3qOUCYwJ5qTJU/DDjN9qjI80EHwEhGAGXwYV9cBL2pgEekko7+/dXvJzSQLn/exdl3cObpMX77rkZz7We7xXa1p6XXIfrSH5L+gICMEMugh80oGGrV045xonOB+mEgpMMo8X5rkwbUI4co//'@; put '/TLqE7D81IiufTA50e8rT92v3by9N2o/4RCwZi0WKyb/NB1f/kjJrGQxPAJMMDlf68XDBirlK2x4wcgABIFqIlBMMKUWeTXh081hLbq60OcyKgjALiS66VX1O8L+l7nZRDDHhaMgTwhm9ZE8eWRjSq3x+uiHNb8jVQgmm8J+mjkPH375Q43xkQaCjwD7zo0ccQnOG9iP/AILgt8h6YEgIAjUCAFO'@; put '4fQ2uTHN+3OZ5j5Ro8bk4KAh0LZPEXqdR+6X5PKiBMG0mJCV4cbP4+wocgjBrPHESq5XG2Ofe0TzZVKFYLKJfM6CxXjroy9rjI80EHwEoqMicOcNV2FQv95CMIMvDumBIFBjBNh3dsInX2MW3acLKThMFmMi0PXcInTpT0FwFNinAsHkFEUZB4Fp5IPp8RS75uhdMro2kXNSYNZgciSl13dJ74Ce'@; put 'rn9MMBctW42Xx318ul3ldwMgwATzjuuvxOCzzxSCaQB5SRcFgdMhwATzwy++xy+/LdSCxE63v/yuTwTOutiBlj05MkYNDabVZkbqTjd+/dB+is+3PtEv7pWuCSZXnHjjuYeplFmCMoE+HFywZsMWKhf57l8BAHqeINK3ihEQglkxPvKrIGA0BMIp0n/S11M0VyZObyWLMRE4Z0QhGndkgqmGBpPr'@; put 'kO9a78K8L8INIxBdE0zO+zb2+Ueo3Fk9LeebYVCtoKNMMLfv2ovHX3pTS4dSwa7ykwEQEBO5AYQkXRQEqoBAREQEvvjhZ3z/yxwtrVUVDpVddYKAiYziw251oG4TMo5ThjEVTORch3zTYg8WTSku86oTqCvshq4JJnsZjP3Po2jepBHloiuqcCBG+ZHTmaRSObzHXxpLiaDzjNJt6Wc5CMRSFZV7'@; put 'Rl6Dvj27aQnAy9lNNgsCgoBBEGCCOXnKdHwzbZYQTIPIrHQ3w+xEMG8vQHxddcpEMsFcTdkNV86ylR6ubr/rmmAyai89fi86t2+jTDUfJphHMzLx1CvvIC09U7cTQzpWOQRioiM1H0wJ8qkcXrKXIKB3BESDqXcJnb5/UXFEMKkOeVQc5b/lfLSnP0T3ezDBXDwV2PinEEyfCeup+25D317dlQqg'@; put '4GoiTDD37E/1GU7SUHAQ4DRFt15zKYYN6KvUHA0OmnJWQSD4CLAP5kTywZxK6eTEBzP48qhOD5QrE0kgMMGc+6UJu9ZaqwNJUI7RvQbz37ddp+UYzM/PDwpA/jgpl5574c33sX7zdn80L20GEIFIqhF93aXDcfkFQyTRegBxl1MJAv5CwJumaOb8RVr5UH+dR9r1HwIprVwYQFV8LGY1tJeMFKcp'@; put 'mjXJgtTtQjB9NnNuufpiXH3xeWo9vKlu8evvfYKFS1f5DCdpKDgIcF3pi4acg1tGXCoazOCIQM4qCPgUAYvFglfHT8SSleskENOnyAausZbdXDiLq/gokgMTHJDipjrk74ch86Ax6pCztHWvwbxs+CCMojyDKmkwORcm51mbOut3loEsBkbARrLs07MrHr7zJmUC0QwsDum6IFAjBDjLR0FhIZ4f'@; put '8y627txD/IRCkGUxHAJdBjjQZRDFkitSxcdEZSId+S5MHW+cOuQ8aXRPMAf26YlH/zVSKYLJ5SK/+3k2PvmWPHZlMTQCFnogtWnZFM8+cAfsVGJOlYpThhaKdF4QqCYCfG9OPXxEI5iH0tKr2YocFmwE+lxciBY9qZyiIknWzVQmMueYm+qQ2+EoMEaZSJ4DuieYZ3Ruj9EP3aWUdog1mPMXLceY'@; put '9z4N9nUo568hAkwo69VJxHM0RxulJCs1T2sIjRwuCBgOAfa/XLpqHd744HNk55wwXP+lw4QA3ZMH3+hASiv6TGZlFSLI2f/yaKobv5AG06PZy40had0TzJZNG+HVpx/QSiOpoh2Saj7GuDgq28sYiiT/1y3XoP+ZPcQPs7KgyX6CgA4R4Ajyz7//GT9Mn4P8gkId9lC6dDoEbGFunHebA/FJ6qQo'@; put 'soaZsW+TG3M+M04VH5aT7glmct3aeIOq+UTQha9KPXLOhbn3wEGtmo/cxE53u9D/72FhNgzpfxbuvulqSbauf3FJDwWBMhHg+zL7XL7wxntYv2WHMuWJyxyswhuj492UZL0QkdFEMGmcKmgwi6v4uKmKj91QktM9wVSxHrkkWzfUNXLazrI8mzSoj/88cjfiYmPkwXRaxGQHQUB/CISRD/XWnbvx'@; put '0lsfIj3zuP46KD2qFAJ1G7lw7o1OWG1qmMd50Ewwl88A1v5unCTr3G/dE0x2un599ENo1rihUv5tHKk4+rUJ2EZ1yWUxPgJsJueSkWf3FjO58aUpIwhFBMQ8robUm3Z2ot/lbqrg41ZCe8lSYYI5bzKwc7UQTJ/PUtYM9ejcQSnzI/keY8y7n2DRijU+x0saDDwCVsqd17t7Jzxy181aJLkq/sKB'@; put 'R1LOKAgEHgHOfclBPc+9/i527tkv2SACLwKfnVG1FEUMDEeRz/zYgkO7jJNknfutew0md/KBUddj6Dl9lUpVxJHkH335PX6a+TsPURYFEIgn8/hjlFKrc/vWSr0MKSAaGYIgUCECXH/859nztRKRuXnqVI2rcNCK/tj3CkpR1NUMjyIpisgDC04nJVkfH4asdOMkWefpZQiCeeMVF+Lay85XjmBO'@; put '/20B3v30W0Uv89AbFidd70tJ1x8YdYMWkCZazNCbAzJi4yHAWT2YVD5P2svt5LLkpjQ3shgTAbPJg3NHOpDUhGRIOfJVkKSZkqznZrsx9R07CvONkwOTZ5AhCOawAX1w/+03KEUw+aa2ct0m/IciFmVRBwEO8vn3rdfizB5dJGWROmKVkSiMAGsvv5n6Kyb/9Cvy8gsUHqn6Q4uMdmMopSiKSVAn'@; put 'RRHnwEw74MH0CXYizBwXb5zFEARTxWTrTDD37E+VVEXGuVYq1VNvZZ8n770NMdFRElFeKdRkJ0EgOAhw5Piefal46e0PqYJPWnA6IWf1GQKJ9V0YeksRrGE+azLoDdnsFuxc68bvXxkrRREDZwiC2bRRCl575kGwI7ZKZses7Bw88fLbOHTkaNAnsXTAdwiE28Nw0ZBzcPPVl4gvpu9glZYEAZ8i'@; put 'wC/5bA7nYMulq9ajyOn0afvSWOARaNqJIsivUC+CfM1cN1bMFILplxmVEB+Lsc8/ivi4WKU0Qi6XWzORr9u8zS+4SaPBQyAuJhr3UHWffr27K+XaETxE5cyCgG8R4LREP/wyG1/8OF1M476FNmitdR1UhM4DyPfS5VLC/5KB5BRFC74zYdtyY0WQc98NocG0Wi2UC/Nh5XJhmkkj++6n32DG3D9Y'@; put 'FrIohAAnX29Yvx4evfsWbd4WUt5TWQQBQUAfCLDf5bLV6zGWao5nHs/SR6ekFzVGoP8IB5p0oGZIeaNCgA8DYuEURZOsOLjDWBHk3HdDEEzu6OgH70Cvbp2VMjlyEvmfZs7Fh1/+yEOURTEE2B+zXavmeOjOG1EnMQEOh0OxEcpwBAHjIWC327F73wG8Om4i9h08rJTblfGk4bseW60erURkQjIR'@; put 'G2KXKhBMTlFU5OAURXZkZxorgpwlaxiCeecNV+KS8wYpZW5kH6BV6zdr6TF8d5lJS3pCgLXv3Tq0xX0UWc4uHkVFRXrqnvRFEAgpBJhcss/7axMmaVXUuPa4LGogEJdIAT63FSE8kogNDUkFgskJ1rPTPZhGBLPIYawIcp5VhiGYHDRx980jlCKYbEZNPXQEj744VsvDpsZlLqMojQDnx+zZtYPm'@; put 'k8mR5UIySyMk3wUB/yPA5DItPUMzi6/fskMpf37/o6f/MzRs7UL/a12wUAJMFcglI24NMyN1u5uq+ITrXwBl9NAwBJMf0KMfvEs5MyMn+H361XcoZdHBMsQjm1RBgEkml5K8+6arEU11y50SsaqKaGUcBkCAyeVBSkP01kdfYuO2nUIuDSCzqnax09lF6DZEvQCfjYs8WPyTMfMuGYZgNk5Jxmuj'@; put 'HwI/qFVKVQSTmdJkTMIfy1ZX9XqS/Q2GAJvLu3dsh/tuuw5cVlJ8Mg0mQOmuIRHgaPFde/fjzQ+/0OqMi1nckGI8bafPvqoQzTqZKIJcHQ0mR5D/SSEam5fYTjt+Pe5gGIIZEx2ppSriYAkXpSBQZeHcnt9Mm4nPv/9FlSHJOCpAgOV9Vo/OuIVyZNarkygkswKs5CdBoCYIsAsSay5Xk5/7BMrW'@; put 'cYDckZRSTtQEHMWOtdrcOI8q+NRSKMCHRcRVfGZOtFAEufFSFHH/DUMw+Wbx8pP/Roc2LZV6KHOqomWr1uHFtz5kecgSAgiwJrND6xa49ZpL0bxJI20+y4MvBAQvQwwYAvwix0GUs+Yvwmff/aylIuJniCxqIlCrrhtDbimEPYpkrIgDJk9Xx8kI8hwDRpDzTDMMweTO3k+mxaED+ipV45lvevxm'@; put '/ZgE+rCIQ2bhh1+TBvVx/eXnU/qtTppPplsiWkNG/jJQ/yFgs9lQSCnBfp49H19NmYGCQkkP5j+09dFyk44unH2li9ITqWMe5/yXmUc9+GWcnZ4Pxnw5MhTBvHz4YNx+/RVKRZLz5ZlfUIhnKNBn594D+rhapRcBQyAhPg6XDhuA88/tjzB6MEqEecCglxMpiAD7W3Iwz+SfZuDP5WukQo+CMi5r'@; put 'SN2HOdCpH+B2qkMwuQb57vUuzP3CmBHkLCdDEcwzOrfHcw/frZSJXBMCabPe+fhLzFm4tKxrR7YpjkBkRDj5ZXbBiIuHoX5SXTGZKy5vGZ7vEfCaxNnf8vMffsGOPfuV8tX3PWLqtMi6vcE3FyKlOVnH3R5VLORaichVczxYNduYEeQ8wwxFMBsk18WYZx/SHLdV8lnjij5sznnv8+/UuepDcSRU'@; put 'PiIyGrBHeHAsrWpVF7jqT7MmDXHVhUPQm0zmvEgqo1CcRDLmqiLAgTw5J3K1e+jPcxbgWFZ2VZtATIIbucdNcLuNaYqs8oAVOiAixo3htxciKt5MJnJ1CCZrMOd+YSItpjEDfHiKGYpghtvDMPY/jyIlqZ5SD1/2x9uwZTue/d94KqEqlSWMeu8LI2LZY0gREhsAcz+zIje7aiSTx82J2Af17YlL'@; put 'hg2kKPPaWmlUlV6mjCpb6bf+EGCtJf9t3LpTM4nzPdRR5KxyR9v3caLbQDc2Lzdh7TwrigqFZFYZxCAeUL+FCwOvddJcUIdccoCP00n+l+/acbyKyoogiuIfpzYUweTeP/fQXVQVpaNSNck50CfzeBae+L+3cORoxj+EJBv0j4DZ7EG9JnSju8EJm82CPRtclL+MyntV42FlpYdmk4b1cRn5HPfu'@; put '1lHT2EvOTP3PAelhYBDg+yVrLdMzMjF97h+YMXchjmefqNbJG7Zxos9lbkREe5B/woM5E8OQfpie7h4hmdUCNAgHdepPCdbPVSvB+t8lIsOoRGTVFRVBEEOZpzQcwbzl6otx9cXnKRfo4yLfkVfHf4xlqzeUKSjZqG8EwiLc6HVBEVp1N8Pp4DytFmxe5sGK6bZqm93YN5P9ji85byBaNWtC7biV'@; put '0tzrW6LSOz0iEBZGD1yqgrVk5VpM+XUe+Vruo2uienmR4+q4cc7VDsTVI1MeGY6sZJJcORvY8IcVzmq8GOoRL9X7xNadQdc50LAdjdSljgaTS0Tu2+TGnM+MG+DDc89wBLP/mT3w+D23KpWqiAXBpp5vplLCdXJQl8VgCJDvZWKyB+fe5IA9kipJ0MsCmzjcHnJ9WACsmmOj79XTiPANNCE+FoP7'@; put '9cYwStHFQUAcaa5SsQGDSVu6GwQEOPUQL9t27sGUmfOwYu3GGkWIs580V35JbmEq9tuj3IlmqxkZB9zk9xZWLfeWIMAS8qeMiPJg6KgCxNZSy/+SK/gYPcCHJ6fhCGbTRil47ZkHNUKmkm8a+2FyBOTzb7wn1SYMdtu02jxo09uFnsM9J7WXxQNgTulykVznmLDxz5qV+mKCmlS3Ns4lojmQfDTZ'@; put 'P1OIpsEminS3yghwACS/fO/Zn4qZvy/C74uWIyuneuZw78nZV6/XRQ607EYXKOdN9Cbm1r56MO/LMKTuNFPJweq9FHrPI2v/I5DczIVB16vlf8mo2UiDOecLM/ZuMG6AD4/DcAQzItyOt//7OOrWTlRKi8MEIi09A0++/DbSM4+zbGQxCAL2SA/6XlGExm1NpxJM7j+5z7C5bdVvZDJfXPObhZnm'@; put 'SXK9OhQI1EsjmnwdsOlc8mcaZLJINyuFAGss+aV7/8HD+G3hEsz7cznSjx2v8cs32RfQdYgLHfuQTZzs4n+Ry5O94sjdNfM8WPc75aQVM3mlZBXMnTqdTf6XQ9Tyv2TFRFGRGz9PsCM73RJMeGt8bsMRTB7x8w/fhTO6qBXow+MSP0xGwWiLh1KckJnmZgeiEujxRX5AJRdNB8Ik00Ekc45vSCa3'@; put 'z0SzLtUyH3DWGejfuzsaplARXlqYaKqk2dcGJf+FBAL8ks3EkufvvtRDRCqX4ffFK7QXbp/MaWq30wAnugwgbmly/YNcMsgWmxkHd3ow/ysbCvKMG1wRChOG58TgG4rQoDXdcxXKf8n1xzMPE8EcH05KNGNr0Q1JMG+68kJcc+n5ygX6sDno22mz8Ol300Lh/qDEGE0UPZ7cnMw0lCbDxC+bp/JL'@; put 'bYx/k0yQZsSKdQss1fbJLAu0WnGx6EWZFdg/uVWzRoiKitKStYufZlloyTa9IcCaSiaW/HK0ffc+zP1jKRZTEM+xrBzfdZXISEfSdnUeaILFSuSynGxwJirPl5flxsyJrD3iK9fYD3jfAai/liJjPTjvtgIl819uX+XBgm+Mm2DdO1sMSTDP6tEZT99/h1KpilggfKNdv3k7Rr8m+TC9E1Tva4vV'@; put 'jRZdPTjrUhdcZNYob/GSTDf7ZM4in8wlpKkpf/fymqlwu53yxLZp3gRnk0azW8e2mp8mv+Vzwnapc14hdPJjgBFgbaXXvzIrOwfrNm/TzOBrN22tUfBOWcMwUxBex/5OdDqH7rEWijin666M98DiQ+lCdVMqzTmfW5G2x1LtDBBl9UO2+RaBhq1d6H+ti/J1qFMekhHiAJ9FP5mwaVHNXap8i3jV'@; put 'WzMkwUyhSNoxox9COOVC84nppOq4+e2IbHJgf+Llt6ie7lG/nUMa9h0C1jA3OvR1o/sQD/lsnT5diuZfU2imFEaUDmU+JXX2Q44zflFJIK1m907t0Lt7J7Rp0RRxsTHatSJk03eyl5aqjgAH7Hi1lexfuWTlOixasQZ7ySRe3XRDFfXCaiWfy3OL0LY36SLNREQq8VLHOQgXfGulXLZmuA1uoqwI'@; put 'G6P/1p2KWnTq71Gq/jgrzPkZMeNDG9L2Gtv/kueXIQmm1WrB66MfRrPGDdULbqDZNfaDzzB/8UqjX/8h0X+b3Y0ug1zodDb5P1aCYDIoZrNJ863ZtdaDNXMpJUqWpt/0C16sJapfrzbl0+ygEc4WTRsimkzootn0C9zSaBkIMKnkechz7iglR2dt5eIVa7GeKu+cyM0v4wjfbLJTbtqe5zvRvAsH'@; put 'i/8zoKe8s7Af5uKpZmxfaSGrhP+uzfLOL9tPjwAXthhyi4OKW7D/ZQUa6dM3pas9+NnALho/jbejUAEfYEMSTJ4RD4y6HkP691EvHybdiGfO+wPjJn2tq4kvnSkbAVs4lYccWoR2Z5oqTTC5JQ7S8dDfIQooWDXbivRU/7+t2mxWNEiuh64d2qAHJXBv3rgBYmNiNPM5+2uKz2bZMpatVUOAzd9e'@; put 'v0p2zcik6O+tO/dqfpVMKtMzjlFMRrlG6qqdrJy942q7Nc1lk/acl7by5JKbY4K55Gczti0XglkOvEHfXKuuG0NHFiKM8g6TB0T5Lg9B72nVOqAlWN9CFaU+sVftQJ3ubViCef7gs3HvyGuVC/ThmzPnfHvqlXeQm+e/t3udzkfDdUur4HO+C616VF6D6R0kiVozhxyn6qBrfrNhz3qOWg2MxoSt'@; put 'AClJ9dClfSt069AWzZs0REKteC34iIMtmBio5n7ixV3WvkeACaVXU8llTdMzj2Hz9t1YRbl9N2zdoZFKF82pQCz1W7rQdZATtVPoWiqZ57KSJxeCWUmggrhb6zOc6H0xMUt6Mfbvq0pgB8n+lytm0vNgbs3yJge21+WfzbAEs2XTRnj16Qe0B6JqD0IHPeD/QwnXN27dWb7k5BddIFBMMJ1EMKum'@; put 'wfR2numkyWJGYQGwdRkF//xhJdNIYEimtw9c+7x2YjzatWxGwUHtNJ/NOom1wGX5mGiK36YXKVl7EeAXYS+h5G3ZFKiTejgNm7bv0kzg23fto/rgOQF9SbGRP3TrXi6yJrgRGUfc0lm90oFCML1S1u/6bCrx2awjydhFL8L67WaVe8YpimZNsiJ1u/8tWlXuXDUOMCzB5DrNY59/hKqb1FHOtGe1'@; put '2vDlDz/jq59+rYZI5ZBAIlBTguntK/vesH7n8A56e51HEaz7gnODYeIQExWJFvQC16ltK7Rv3RwN69fTTOn8G5NNNqWr9lLnlYOsy0agNKHMy8ujwhCZVAt8PzZs2YEtO3cj9VAanDQ3grEkJLvQ+RwXGrbhSHEK/CiVj7YqfRKCWRW0Ar+vVh7y9kLEUt5hE7laqEIwNf/LEx5MfYdysOYG5/7v'@; put 'a2kalmAyEE/eexv6UUqWggJS/yi0sGZg3aZtkq7IADL1FcHkoWomcyKaudkeqvpjIR8wKxwFgdVmloacTenJ9BLHkegdiGy2ataYqmglIDIyUttVzOmlEVPju9fkzfciXphQHqUKYzuJUG7ZsZt8KvfgwKEjPk8pVFX0wuweNOvGWksX4hIo3oMTbteQcQjBrKoUArt/wzYunHONi4qkqaW9ZP/L'@; put 'A9s9mPUR5b/kh4ECi6EJ5mXDB2HU9Vcq54fJ84r9L5+kdEX7Ug8rMM3UHYIvCSajVGwyJ20mqTMP7TRpSdmP7NbP2yxbDlij2apZE3Ro0wKNqYIQm9O9hNNrTpe8m8aZ86ydZELJkd78mWV3Ijf3Lw0lm7u37dqDg0eOBp1QlkQ1qYkL7fu6kNKyWGvJVbRqyC215oVglkRZf597nU9pp84iWTvV'@; put 'Ipia/+Vsyiwyx/gJ1r2zxtAEsy1pVV5+6n7NXKeayc5MmoP3P/8Ov8xZ4JWVrHWIgK8JpneI/AKrmUxygZ2rKG/mUgtyj+uvdF0x4UzSgoT4emzSsD7qJiYgOjpKIy18XXpJp2rXqFdWRlp7yaRXQ8l9ZwtQ5vEsHEpLx+59qUQm92prNoGzP7jelthE8rXs7USLTh6Ex3Bi9JprLUuOUQhmSTT0'@; put '9Zn9bIfdVoRaSR6loscZZfa//HWiBYd2GD/BunfWGJpgRoTb8eZ/HlXSD5NNU0tXrcOLb33olZWsdYiARjAvoCjy7lWPIq/McLR0RsQrjx/xYAuZzXett1A6JP0RTe9YwsJsqFc7USOazRo1IOLZgPJw1kV8XAyiTprVhXR60fLvmkkkE0rWTPJnxj0/Px9czCGNUgVxvW/2odx74KBW2CEnN0/T'@; put 'Xvq3V9VvPTLGg+bdnGjZ3YXYRHoD46I8NbWHl9EdIZhlgKKTTay1HnorJ74k4ZO62hcaaz0MjZUJuTluTHvHjgIF8l96MTU0weRBPH7PSKrBfIZyfpg8No7CfOKlN3H4KOWxkUWXCIRFUB7MYWSy6VW9KPLKDIrN5mYreRyRf9nh3cCmJfSWu81KmsHKHB3cfZjgcNBQvTqJaNygvkY8G6UkIalO'@; put 'bdSKj0VEePhfSbg5eIjNs/wn2s7KyY3x9f55Tdz8nbXGOSdywWUYj6RnYP/BIxqh5PVh0lTydn+Qs8r1ump7Rca40aQjlWQlX8uEJL4aSGPpI3N4WT0RglkWKvrYxgE+nSkFVQt6ybCRxk/TXuujazXqBftf7t/swexP1ch/6QXD8ATz/EH9cO+t1ynph2kircP4iZMxa8Fir7xkrTMEbOFUJnIw'@; put '+4L5R4NZcrjEGyg1jJmqVwEHd5JGc4mV/DSZePJD1zgLEyA2rdemvJv1k+qgQf0kNKDyr/Xr1aFcnHGIJfM6+3R6A0zKIp6hREC9BJLXjIlXM8kYFBYWIr+gEMezsin35HHNzM3BN4fSjpJWMo1M39na78aZHX/3NCrOgyYdqBJPNzcS6nHcAxMK//vdCcH8WwZ6/dSwjZPK8zqRkMzJ8DmrhV57'@; put 'Wrl+sf/lkp+pfPBCNfJfekdteILJ1Ug4HybfeFV76FjItPXnslV4ZdxEr7xkrTMEmGB2G8z1yCtXi9wX3WeiyfWSnQ4mmiZsW2GmtfGrjjBxioqMQEJ8HFUcqktazkQkE+nkqHXeVkw8I2Cn/Jxcz9q7lNR68j2Av3sXvd4TmCx5Fx43L7z2/nl/Y3LtJZEnKJL7GBHGjGNZWgAOm7bTqPRiJn1n'@; put 'a0dBIU0IBRau0tK0swuNO7gQz6bwABFLL3RCML1I6HsdGU3azMFFaNHVQ1aQk764+u5y2b3jKU5a+V8+CEP6fv0EdJbd2aptNTzBDKPyd2889ygaNUjWzEJVG76+9+aH0DHSTIiZXL9yCgbB9KLBHMVCpvMiCnJI28vBQFbs32pSooatd4zetY3SJcWQZjMuNgbx9JdIms7aCbU04plApva4mGiq'@; put 'sR6paUbt9jCNhPJLJ5uNy3r59JJQ75rPw2S0NCEt/d3bn5IEkbfxd++2kp+95LHkcUwavflEC6nqDRPD/PwCMIHMzsklbWSOdt0zkeTgG/7LIr/JE+QjydrK8vrkPYcR11abB3WbuNG8E0eFU6L0WNLMk1YqGJHCQjCNNYMatXORNpMCf+oZU5vJyoKsdPK/HGeHs0i//vXVmRWGJ5g86H/dfDUu'@; put 'HDJASTM5R5OPm/gVZs0XM3l1Jri/jwkmwfSOzUs02Ucz85AHezZasWeDGdnpat2svOMta82kjgOMIux2RETYERURoRFSJp2sFY0mk3tUZLj2OZyCA8PD7LDbbRoRDSNtKNdp54pGxSZoYu6kU7CSO4LJVBwcU/qcHipB6C196KJqIpxgnMkqE8aiIqdGGjkC2+Eo0ohhHkVq5xGJ5PRjubn5Gplk'@; put 'H8lcCrrJzy/U9udjVSSPpbHzfuexxtYGGrV2olEHN+o0AKw2E1xkBueqA8GyegrB9ErIOOsICgDrOqgIzbu66aXSWL6ZbB7fstSDP35QJz2Rd+YoQTD79eqGJyjpOpuSVFtYA7J8zQYtmjyUHj5GkaMeCKYXK6ZFHAxkMnm0ZO0HdwB7N9hweI856AnbvX3U41ozS5/UQHJiea8Gkgkn/8YE3ruw'@; put 'rxd/dxKpZELJf05nMbnk65MDZ+Q69aJV9poDNeo2pcCd9i4kkdYyKo4NhEQKivzvX1l2j07dKgTzVDyM9I3dKrqR2TwhyQJnoTHqlNvsFvw+2YSda9RJT+SdM0oQTA4WGEvpitiEVtLk5R2k0des6eCk6weoFJss+kJATwTTi4zGh0h5yWTJSdqgY4c9ZDrnKEULfSYzUnCq+Xm7J+sQRMBO2RZq'@; put 'N3ShUVsXkpt6EFObEruzHzGR82BqK8sShRDMslAxzrbIWNJmDihCs+7km0kujXqONOeXVUcBmcfH23HiuFr+lzxjlCCYPJD/PnoPunZsSyYpNRzdeUzehYN9Pv7yB0yZOc+7SdY6QUCPBLMkNEw2zTYKHqEPBfkeZBwksrnFgoM7zMhKM14EesmxyWd9I2CPcCMxxU31wd1IIlIZVxfkisAmcDJ/'@; put 'kwY4WCbw06EmBPN0CBnjd9aQdzuXk7LrV5tppXtz6g43Zn4cbgxQq9hLZQjm5cMH4XZFy0aymW795u0YPWYCaZ9E/VTFOe7X3fVOMEsOnt+WOSiI1/m5bvLXBFIp+vwwpTo6dpi0SYo5mJccu3wODAIRFNlbhzSV9VuRprIxaSrrkC8rkUoPkUq3jkllSXSEYJZEw9ifo0ib2UWLNGfXFv/mT60O'@; put 'Uux/uWw6sG7+31kxqtOOXo9RhmC2aNJQS1fEZExFHyiONH1uzHhs3blXr3MpJPtlJIJZUkAUu0IBLcVks7DAQ9pMN47s4zJlZqQftCA/m/ZmJiqLIFABAmZ6aEcnUIBOIw9SWri0dXQtrh5E2nHKbmAUUllyiEIwS6KhxuemlJ2g60AH4pOscOnFN5Nur8xVZnB6ogPqmcd55ihDMNkhf8zoh9GM'@; put '8mJyChDVFk638t3Ps/HJt1NVG5qhx2NUglkSdKaRHBzE6TI4gvdElgfHDgKHiXCm7aUUGkctcOQL2SyJWSh/DrNT4vPk4rRCyRSsUyuJ0grF0MsKvdyzzy/8WGUnELgLwQwEyoE/Byfu7zLIQXkzi9+d/VkNqjKj49rjmQfd+PldO1km1cz4oQzBZIHeft1luPz8IUqmK+LIVq7Q8diLY7VUJ5WZ'@; put 'wLKP/xFQgWCWREmjkScDhEDaqaJCIpzHgczDZqRRNPpRIp45aRby5xTCWRI3lT9brGTqTiBC2chNuSpJS9mAtJbxQFg4WYuYT5LpW2+BOjWRhxDMmqCn/2ObdXGSNpOS+NelF6IgajPZPL5uoQfLflYvPZF3FihFMLt2aIP/PPIvJTWYLDBO5THm3Un4c/kar/xkHWQEVCOYpeFkGmkizSb7bvIM'@; put '1Agnmc+z0kxITyXfTfrLPEI+nTkSnV4aO6N+t1DS8xgikAn1XahHhDKhvgfxtT2wRxancOJyjW6Daykrko0QzIrQUeO36HjOm+lAsy5cICE4vpmswZz1iQWp29RLT+SdJUoRTK5vPPb5R5BUt46SwTBSOtI7bfWzVp1glkZa01sS4SxOQu6hlzkPCvJIy5lJVaeOmJBxqDhgiJO8F+ZSbkOPaDpL'@; put 'Y6i372GUQiiW/CgTUzxIbOBCYhJpKBPdlLDeqr1c/OVLqdewbx8DKgTTx4DqtDn2f+TE7F0GOlErwNpMdkfKyXRReqJwSlOkpnmcxa4UweQB3XfrtRg+6GwlzeQ8vmzKifn0K+9g/8HD/FWWICMQagSzNNwafaT7o4UTktMbOXmta1rO/FwP+XJyKiQyrx+yaBrP7Ayg8ASlDJFECKVhDNh3WxgR'@; put 'R4qsja9DZDKZfCmJVMbVoWTnsVQJyU6CpHxWXkLJeYRChFOegr8QzFPgUP5LTLwbXSmdUdPOpM2kGR8I30xOrr51uRt/fG9XGl/lCGbvbp3wzAN3KJkPk2eixWLFVz/+gq9++lXpiWmUwYU6wSxLTsVaTpqrFKruJZ1OqtLCpDM/x4wcIprHj5roz4wT6SbkZpnIp7PYn6+s9mRb1RFgGYRFeqim'@; put 'txtxiUQoiUzWqgf67CKCaUJ4JLk9aBk3in0oA/FQrfoognOEEMzg4B7Ms7I2s0U3NzqfQ5HmdSnS3OHfKkC2MDN++9xCZX3VjB73ylI5ghkbE423qKpPAlX3UTFnJKdh2rX3AJ5+9R0J9vHO4iCuhWBWDnyNdNJ/mj/nyfRIXDvdUeBCYR75cJ4gjecxC9VPNyE7kzSeR4E88vUszJP8nBUhzJmk'@; put '7EQkwyn/ZEwtN9X2Jo0k/XFQTjRpZsKjiWhGUI112pG1kRyQw2QyVLWTFWHp/U0IpheJ0FvzNcR5M5uTNpMvEn+8eJnJSpCbQ9Hj4+z00q2ueZxnj3IEkwf14KgbcG7/s1BQUMBflVs42Oe18ROxaOVa5cZmtAEJwayZxDTiSf5IXGnIfJJ4sjahiKI7CylSvZh8msjcToTzGK/NRDxNyMuh30gj'@; put '6ijg1Eqc+7Zm/dDz0VarmyK2vRpJUO1uIo/0IGQzd2QcmbxjSCNJfpQ2ikq1EJDs9soPRibwHv5TGBt/yE0Ipj9QNU6bfP9p1d2FzuSbGZtIwYs+1mayeXz7ag8WfK1u9LhX2koSzL49u+LJ+25HYWGhd5xKrS2U83PZ6vV48a0PtUStSg3OYIMRgukfgWnEk8gSE08T/ceaT20b3fxdFFjkKKIA'@; put 'o0JaEwktIC1nYS4R0BO8JvJJnwv5cz7V+c2jYCN6z3QXAUVURZbJqJuy6gR7sVg84GhtK7lg2aiIhz2SNY2kcYwCIqI8RBpZKwnKL0mfo9ywhpOPZDiRSDKtWdnXlTWSRBw5kTlxSPogRNJXMhWC6Sskjd1OLAW6dSVtZpOOxb6ZnDnBFwtfw3O/NGP3enWjx704KUkwVTeTc07M/IJCPENm8h17'@; put '9ntlKesgICAEMwig0ynZNMz/kccIrTk2hQNUtI9ah1hz52QtHqXUcRK5dDrY1E5rqsHgJKLppHdPRyFpP3k7fS+i7S6NgNJvRRTo4mLNKFei0WgtkTn6TqTW42Zyx6cgOwKd30JKiGLjs4c0sNDIn4nyRtro2WGmtSXMQ8EznOaJCCSRSSsF2dh4bad9iFjy8RZaM2nkVFCsgSxun87ABJLZsLbm'@; put 'UwqJ1ITr5/+EYPoZYEM1z76ZLnQf4iKXE7NmWalJ90PJPM44KUkweWD333Ydhg7oq6yZnCv7TJ05Dx98+QMPV5YgISAEM0jAV/K0XiLKuzN385I3vtFrX0qQUt6n3OUkuWPS99dCTZj5BNzUaRbtMI0rMkktboSTlGufuNHif6dpRX4OBAJCMAOBsrHOEVvbhZ7nFaFRe28J1OJruKqj0Mzjq8g8'@; put '/o365nHGRlmC2bNLB4x+6C5lo8lZe3I0IxNP/N9bSM+kUiuyBAUBJpjdB7vQvi9pwchvUBZBQBAwNgJCMI0tP3/1ni0VrXq5tLyZ0XGWat3vrSfN43tCwDzOclCWYEaE2/EmRZOrmnSdhWcmm9ykb6bgxxlz+assQUCA/eJ60Jtt216mat1wgtBlOaUgIAhUgIAQzArAkZ8oUwNpM4cVoXEHCgA6'@; put 'WdWqMrBo5vFsF6a+E07+4ezbo/6iLMFk0Y26/nJcNvxcZZOuF6cs2o+nKPF6Xr6aEfN6vwQ5MKPXBS6KOhQNpt5lJf0TBCqDgBDMyqAU2vuwNrPNmS50HcB5ZSvnm8m1x7cspeTqP6idXL3kzFCaYHZo3QIvPn4v+cazc3z1fCZKgqXLz2Qqf/ujLzH3z2W67J7qndII5vlOtOohGkzVZS3jCw0E'@; put 'hGCGhpx9Mcr4ui6yYDnRuK2ZggApo8NJ/+qy2uZ5NfsTEw5spai+EFmUJphWSuczZvRDaN6kEYqKKIRUwYVTFq3btA3PjZlAUbPiAxhoEQvBDDTicj5BwL8ICMH0L76qte7VZnYZ6KK0YmVrM7n2+PEMN34ZF07p0ioRFagISEoTTJbR1RcNxS0jLlXWTM5jdNFb0yvvfITlazfyV1kCiIAQzACC'@; put 'LacSBAKAgBDMAICs4Clq1SvWZjZq809tJpvH1/7uxvIZoWMeZxErTzAb1k/StJhhlHROVTM5+2IuX7MBL739UXHePAUvXr0OSQimXiUj/RIEqoeAEMzq4SZHEaEyedD2TCdVAXIjMvqkNvOkwvLXD2xI26927fHSc0B5gskDfo7SFfXs2lHZyj48Rgdlin7xzQ+wbvM2/ipLgBAQghkgoOU0gkCA'@; put 'EBCCGSCgFT5NfD0neg53oSFpMznH7eE9Tkx/P7y4UIPC4y49tJAgmOec2QOP3XOrsknXWahW0tDOX7Qcr737SWkZy3c/IhBGNaB7Dneg9Rll+9748dTStCAgCPgBASGYfgA1BJs0m0mb2ceJHkM8WDXHhPXzQye4xyvukCCYMVGRGEs5MeskJsClaCAMJ14vKHRQsM94bNmxxytfWfsZAZud69W6'@; put '0LGfpCnyM9TSvCAQEASYYC6aYsbO1RatbGhATionURaBhCQXCnJNyMsJjdyXJQUZEgSTBzzqOsqJeb66OTF5jBYqH7lwyQr8b4JoMRmPQCxcW7rdWW70GEa1r6WSTyAgl3MIAn5FgCN+F3xnwd71lEj7ZC16v55QGhcEFEUgZAhm6+aN8fKT95MTLiUVUDQnJo8tv6AQz78+QbSYAbpgLVYPmnZy'@; put 'oe/lLridiuZaDRCWchpBIOgIcECGy4PfvrLh4A5LyPnMBR1/6YBSCIQMweT7xouP34fO7VsrW5+cZ6ZoMQN7fXLUYFITFwbd4ITZSucWjhlYAcjZBAFfImA2wZHrwZxPwpB+mJ4aHn5yyCIICALVQSBkCCaDc+7ZvfHgHTcpHewjWszqXAbVP4a14XGJHgy6yYHYRNKOk/ZDFkFAEDAmAmwezzxC'@; put 'GsxJYcgNQZ85Y0pNeq1XBEKKYMZER2Hs848oHezDE421mH8sXan5YqrqDqCnC8oe6cZZlzrRtIMJTodUU9KTbKQvgkBVELDZLdi+0oMlv1jhyAu9oIyqYCX7CgKnQyCkCCaDMfLqi3HVxecpXdmHx+mg0pj/pbyY6zdv56+y+BEBi82DNj1d6HWhBPr4EWZpWhDwOwKWMDMWUwT59lUU4FMk5nG/'@; put 'Ay4nUBqBkCOYjRsk47VnHoLNZlU22IdnLNcoX0GlIzn5usvtVnoSB3twFFuFhBQXhtzogC2CtB5UulMWQUAQMBgC5H9ZmOsm/0s7MsT/0mDCk+7qEYGQI5gshGfuH4Uze3RRurIPj5NrlL82YSKWrFrPX2XxIwL2SA/6XuZA4/ZmMZP7EWdpWhDwFwJWMo/vWushDaYVhfliHvcXztJu6CAQkgTz'@; put 'jC7tMfrBu1BEZmSVF9Zibtq2E6PHTCAy7VB5qEEfm8XiQeOObvS7oogCfYLeHemAICAIVBUBskTM/9qK/VstlHJMzONVhU/2FwRKIxCSBNNGQTD/e+YBtGjaWHmSSYk/MX7SZMxesKS07OW7jxGIjHVj4DUO1GlsJv8tcUvwMbzSnCDgNwSsYRak7nBj4WQb8nJFe+k3oKXhkEIgJAkmS/j8Qf1w'@; put '763XKR/sYzabsS/1MJ58+S3knMgNqckd6MFarG406+JGn0vccLuEYAYafzmfIFAtBEhZyfrKBd9YsXczaS+lek+1YJSDBIHSCIQswYyNicYbzz2sfMoiFrjVasNn303FN9NmlZa/fPcxAhFRbpx9VRFSWokvpo+hleYEAb8gwKmJdorvpV+wlUZDG4GQJZgs9puuvBDXXHq+8lpMTr6ecSwLz7z6'@; put 'Dg4eORraM97PozebqbJPMzcGjHDCaqdCIBJR7mfEpXlBoPoImCixegFV7vntUxsyDpops4j4XlYfTTlSEDgVgZAmmMn1auP10Q8jMiICbsVT+VhtNsya9yfenvjVqTNAvvkcAZvdg479i9B1oAlFhRLx43OApUFBwBcIEJdkF6Jl083YulzyXvoCUmlDECiJQEgTTAbivpHXYPjg/iGhxSygSPKX'@; put '3voQ6zZvKzkH5LMfEIiIJlP5lU40aC0k0w/wSpOCQI0RsIVbsHWZmwimDQ5JS1RjPKUBQaA0AiFPMFs0aYhXnn4AFnqTVb2sIqctWrtxK14Y+75W6af0ZJDvvkNAS76e7EL/EUVUq5yiyp0S9OM7dKUlQaBmCHDOy8O73FhAaYlysswU5COm8ZohKkcLAv9EIOQJJkPyxL234uzePVBQUPBPhBTb'@; put 'YiIizWmLZs1frNjI9Dcck8WNBi0oAfvlRbBHmig6VSr86E9K0qNQQ8BqM+NYugfzJ1tx7JCFFAuhhoCMVxAIDAJCMAnnTm1b4oVH79E0mKprMTng58jRDDxNAT9HM44FZpaF8FksVg+atHfiTEpdZLFR0I+QzBCeDTL0YCNgIXJ54hhpLr+x4eh+M/nei+Yy2DKR86uLgBBMki2Trucfugs9unRQ'@; put 'vnwkT2ULJZr/Zc4CvPfZt+rObB2NzGLzoHlnJ3qeLyRTR2KRroQYAkwuc7Pc+PMHGw7uJJcoIZchNgNkuIFGQAjmScTP6EzlI4lkql4+kofLhJoDfl586wOs37w90HMuJM/HJLMFkcwzLnBTXlKIuTwkZ4EMOlgIcKWe7AyXRi4P7xFyGSw5yHlDCwEhmCflzUE+/33sHnRu3yY0tJgn65Q///q7'@; put 'yC8oDK1ZH6TRcqWf5p3d6HkB5cgkbYpU+wmSIOS0IYUAJ1LPPOzBoh8sSCOzuOS6DCnxy2CDiIAQzBLg9+7WEc88cCccDkeJrep+tFismPTNFPww/Td1B6mzkZktHrTs7kS3QW6Ex5ikZrnO5CPdUQsBTkV0aJcHi6dYcDxNAnrUkq6MRu8ICMEsISGr1YIXH7sXHdq0DAmSyabyrJwTGP2/8dhz'@; put '4GAJJOSjPxFgc3mDVk50H+ZBfG3A6ZAURv7EW9oOQQTMXCLXjN0bgGU/W8n3koN5JKAnBGeCDDmICAjBLAV+nzO64Mn7bg8JgslDt5JD4OIVa/DK+ElwuaTqTKnp4LevXFIyMcWF7kPdSGkOFHGeTOGZfsNbGg4dBMxU/pErs21facWKmRYUFRDblEUQEAQCjoAQzFKQh5oWk4cvuTFLTYIAfo2O'@; put 'd1NZSSdadKfgH4skZA8g9HIqBRGwhJlReAJY+7sZO1bRZ6nQo6CUZUhGQUAIZhmSCqWIch4+1+NNS8/E6DHjcfDw0TIQkU3+RMAW7kbTjm50PseF2AQqLVlEqkxJ/uxPyKVt1RAwm8gaY0LaXmD1b1SlZze/rIlJXDUxy3iMhYAQzDLkxRHlLzz6L3Tp0DYkIsoZAqvNhoVLVmDMu5/CReYlWQKL'@; put 'AJvMayW50GWACw3aerRUUm6nsMzASkHOZkQEOL+lk17Ktq0wY9NCK7KPc+FHIZdGlKX0WS0EhGCWI89uHdviOcqLGUp+iZqpfCKVkVwgZSTLmRZ+32yPcKNZFxfa9/EgjgKAioqIZLqFaPodeDmB4RAwkdbSQlrLzEMerJ1nwf6tRDQd4m9pOEFKh5VFQAhmOaLlCOvRD9yBXt07h0SNcoaBTeVc'@; put 'PnL0a+ORejitHGRks78RMJkouryeG+37utCknRu2CDL3idnc37BL+0ZBgJSTNtJaFuR5yM8S2LTIhpxjrLEUraVRRCj9DA0EhGBWIOd2rZrhxcfv025bqtco98LApvIlWlT5RDidElXuxSUYa05nVL+5Cx36uFGvKZnNSWOjEc1gdEbOKQjoAAE2h7sp2wWXetz4hw1H9oB8LUVrqQPRSBcEgX8g'@; put 'IATzH5CcuuGRu27GzJmaHAAAQABJREFUwL69QkaLyaM3U5Wfj778HlNnzT8VDPkWFATCIjxo0tGFNj1dqF3fRJVI+KEqfrJBEYacNCgImMkUbqYXrIyDbmxabMXeDRY4CkRjGRRhyEkFgUoiIATzNEA1bpCM/z3zIOxhYVputdPsrsTP7B5wIjcPXEZy++59SozJ6INgDXpUjAdNO7nQsqcbCfWI'@; put 'aBLHFKJpdMlK/ytCgHNaMrnMJo+drStN2LnKgtxsCuGhe5QsgoAgoG8EhGBWQj533nAlLjlvEPLz8yuxtxq7WEiLuXHrTrww9j3k5ReoMSglRuFBRAzQrFNx7syEJB4Umc5ZoymxQEpIWAYBCt4xw2QBso+Sn+VqM3autiCHosPhEWIp80MQMAoCQjArIanaCfF447lHERcbHVJR5Vzl5/tfZlO9'@; put '8qmVQEl2CSQCHmKTkdFAo/YutOjGpnOP9lB2cmojiToPpCjkXL5CgLgjl3fk96TjR4hYrjFhzzoK4DlOG4RY+gplaUcQCBgCQjArCfWVF5yLW6+9PKS0mGyGKipy4vX3P8PilWsriZTsFmgErHY3GrR0o0VXCgZq5kF4uAlOF1FQ+pNFENA7Ahy8xknSucBAxgFg51rysdxoQT5V5JHIcL1LT/on'@; put 'CJSPgBDM8rE55ZeoyAi8Pvph1E+qS9HVzlN+U/kLpy46cjQDz1LqosNp6SoP1fBjs1jdVN/cg+aURzOltQextdikCJqvYj43vHBVGwBrK6k0KsgMXpDjQepOE3atMVMFHqodXihmcNXELeMJTQSEYFZB7sMG9MF9t14XMtV9vNCwqXzZ6vV4ZdxEOIqKvJtlrVMEOI9mVJwbjdpRUFAHJ5FOyhto'@; put '59J5HkrxIlpNnYotJLploqAdK/3xS8+xI8C+TRbs3WTG8aNkGncJsQyJSSCDDBkEhGBWQdSsxXzm/jvQqV2rkCOZFosVX02ZTn8zqoCY7BpsBDiXZr1GLjSmWucpLUirSbXOObErk02P+GoGWzwhcX4mlRb6Y2169nEPDpO2cs96M9UNp1RDoq0MiTkggwxNBIRgVkHubC7mEpJP/fv2kEq+zhCx'@; put 'P2aho4hqlX+CZWs2VAE12VUXCJBWMzIKSGnlQsN2LiQ14mh0Cz3zPaRNoie/kE1diEmVTvxFKulOmZvlwtH9ZuzbbMYhSpCel03aSlGkqyJqGYcgUC4CQjDLhabsH8JsVvzr5hEYOqBvSAX8MBqcuoj9MJ8bMwEHjxwtGyDZqnsETGb2z3Sjfis3GrYmv80GoIh0fuh7RLOpe+nptIOkoORE6Fwb'@; put 'nPOz5ma7SUNpxoHt5Fe5g/LqZvH8op1kEQQEgZBBQAhmNUTdKCUJLz52X8ilLWKo2B9z5bpN5I/5MfILCquBnhyiJwTMFjabE9lsSWUpW7hQpwFpOkmzCdJ4aj6brNkUbZOeRKafvnD0N5m+TRSrwyVMsylPZdpe4OAOC47sNp3UVAqp1I/ApCeCQGAREIJZDbytVgsuGz4YI0dcGnJaTIaLSeZP'@; put 'M+fhgy++l4oa1Zg/ej2ENZvRpNms19iDlJaUW5PIZkw8aaVsxVopTn0kpnS9Si8A/SKuaCFSyZV12JG3MNeJYxScc2SviUilGZmpFhTkcT+EVAZAGnIKQUD3CAjBrKaI4mNjMPrBO9GqeRM4HI5qtmLMw9gfk5VaEyZNxqwFS4w5COl1xQiQBjM8Akio70Jy8+JAobh6QEQUVVgh/uBxUfoj1m6K'@; put '72bFOBr5V5Izm721co3sg13gQm4O56okUrnHqhHLLCKYbon+NrKUpe+CgN8QEIJZTWjNdMPt1a0THvvXLVoL7L8WSguTzByqV/7yOx9pJSVDaeyhOFY2pcfU8mh5Nus1cSGxvhuxtSlQKNKqmdO1uuic3J2vg9C6FNSZDkQoWUNpIg0lX9/OQiKUWR5kHjHj6D6O+jbheJoZhfm0o2gp1ZG7jEQQ'@; put '8BMCQjBrACwH/Nw78lqc2/+skDSVc9DP/oOH8Z833tOSsdcASjnUYAhY2Jye6CENp5v8NilQiEpVxhHhDI8ivzwbabWIaHIlIRcFfIiWU4fC9WonmVCSDyWXYszPd5LfpAnHDpmQTlrK9FQzsohcFhQU/67DUYR8l2z0DLKH2RAVGYnwsDDY6LM3RJ/f85xUia2ALGx5efnII0G6tAsy5GETAAKE'@; put 'gBDMGgLdILkeBfzcg4Ra8SFV4ccLG/tjrli7Aa+OnyRBP15QQnBtJpN6RCyRzLpEOpPcSEj2IJ4+R9E2O5nVuRQgazfZtM7k0y3BQ4GbJV7NJAXkEJ8kBTOVZSTtZP4JD7IzyHfysBkZRCozD1JKoWNmFGkeP6yllEVPCERGhCO5Xh00bVgfjVOStapyibXiEBsTjXA7kUubjYKuLKf4xTtdLi1n'@; put 'M6eYyzmRi6MZx5B6OA17DxzCngMHkXoojdLPhZaLl55kqnpfhGDWUMKsxbtgcD/ceePV9KbPr/qht1jpxjZ9zgK8+9m3xSbS0INARlwGAnRpIDKWTOl1PKhFZDO+jovM6rQt3kWaTjPCqLoQ+/hpxJMt66zxZLWLmNnLQPM0m5gPklmb85lzDkr6qBENFwFamOdEfq4ZJ46xiZs0lEQos2idTd8d'@; put 'eZKT8jTIBvXnlKQ66NS2FTrSX/PGDVA7IR6RpK3U/ODpOuGyxcXXT7F7Cn/m30ou/J3/OI+z94/3O0GEMy0jE1t27Maq9ZuxadtOHMvKKXmofBYEaoSAEMwawVd8MFf4efLe29CVkrAXFoZm6h6z2YJJ30zBjzPm+gBRaUJVBLiMpT2CUiGRZpPJZkxtIqAUuR5di4hnHJnYIz2w2oGwMCs9FAkF'@; put 'IpyauZ3LqdNDkasPMQcNOT/Pk5yBrdmshmRizqZtjWjQJlehm4Jw3CjIp0TmWUBOOnCctJM5FISTfYzzUrJPJTdyKvng5mTRFwJ1EmuhZ5cO6Nm1I1o0aYha8XGanIuoTK/b7dauA1/0mOcOK0hY8+kiTWdaegY2bNmBhUtXYc2mrRS8KmWBfYFzKLchBNMH0ucLtW2Lpnj+4bvpwWjTbgI+aNZQ'@; put 'TTAGRU6XVulnyap1huq7dFYPCHioXjpgJ4IZGcPkk9ZUTz2GSGcEE0+qQsS/hdE+VkqbZAujaHZW19GiEVEioExENULqjWw/SUY1Qso7/vWBv+hgOcn1NNqnMcdi4sg9I2WTRiR5SNqYyHeuyEF/RBId+R7SSBKJzLTgxHHgRCYlMifTdl6OCQW5bP7mFoRIMgpGWfjlqW3LZhjS/0x07dAGdWsn'@; put 'aqSSM5Twb4FYmGyGkR8nE9mde/bhtz+WYQGRzeNZ2VpfAtEHOYdaCAjB9JE8beSLOOKSYbjusgtCMuCHYWTzy5GjGXiNyklu27XXR8hKM4IA0SUKKgqz0194MdEMjy4OKIqIdmvEMyKKfqO/cCagtI+VYh2sNjcsYTwvKfDISuZBzh+vqf0IUeJff1Ew/nCSyBWv6H/vM927Pp0QvI1p7RZ/0f7X'@; put 'iGNx+381xc0T+eWAC05m73KaKFE5iEB6UFRABJL+ColA5hFZzD9Bf2S1zM+hYBtaF1AEtyOfgze49eLznK5r8rt+EeAX887tWmH4oH4aseRgHTZ7s0YxmAsTTSace/enYubvizB74RLNhzOYfZJzGw8BIZg+lBnnxnz2wTvQunnTkMuN6YWRSebOPfvx2nuf4OBhKSfpxUXWgUKATOyUUslMWk6L'@; put '1Wtu98BC5NQWRppPIp62cLdmhrfa6Hfaj9dc4pD3N1PWJYvVreV+5Ie/2UwklROLk2n/L9JZciisPiUNk5MIosftLbdJJmviBy4igW4nkUH6c1EchYO0j07vmrSMHFtRVGAm0zURy0Iz7c8+deyTKsSxJMSqfm7VrDEuHjqA0t11RGREhPbMCJS2srKYchAnm9B37d2Pb6fNwvwlK0PSQldZvGS/'@; put 'UxEQgnkqHjX6xuSqS/vWeOb+UZpJQW83ixoNrgoHm+nNd82GLXjj/c9wPFucxqsAnewqCAgCiiOQQD6VlwwbgHPPPlOLAGeTtN6fFUwyeVm+ZgM++24adu8/qPs+Kz6NDDE8IZg+FhObym+66kJcccHQkDWVs+aHTZELl67EOxO/QkGhpMHw8TST5gQBQcCACPTs0h7XX34hmlFEOJvBOWjHSEsE'@; put 'aVozMo/h66kz8ctvCzQ3DyP1X/oaWASEYPoBb35Dff7hu+gm0jBkTeVMMjnWYua8P/DR5B/J9BdcnyI/iFmaFAQEAUGgUgjEREXi6ouHYSgV5QgnR2H2szTqwr6Z/Dd/8Qp8TPf29EyKNJNFECgDASGYZYBS001cRrJbp7Z46r7bQ9pUziTTRSzzh+mz8cUP02sKqxwvCAgCgoDhEGhCidFvu/Yy'@; put 'dGrXmvx03YbTWpYHOOfj3LZzN97++Cts371PTOblARXC24Vg+kn4xabyi8hUPiRkTeUMLfulchWJz7+fhqmz5vsJbWlWEBAEBAH9IdCzaweMvPoSpFDFNyNrLctD1m63I/PYcYz/5GssXbWeFArGMvmXNy7Z7hsEhGD6BscyW0mIj6WAH4oqb9E0ZBOwMzCsyWQ/zI+/+hGzFiwuEyvZKAgIAoKA'@; put 'SggMpZyWN1x5EeKolKOK5NIrK44053KT73/+nZY7M9gplrz9knXwERCC6UcZsPauU9uWeJqiylmjaTSHbl9Cw1icyM3TyklypQhZBAFBQBBQFYFLKP3QNZcO12qEh8J9n30yWXv5yTc/YdpsDv4Rn3tV53ZVxiUEsypoVWNfq9WCERcNw/VXXBjSpnKGjknm8ewTGEeR5cso3YUsgoAgIAiohsDl'@; put 'wwdT0Y3zEGYLLaUC39/ZWvXBF99j+tw/hGSqNrGrMR4hmNUAraqHRHOt8vu4Vnk7FBQUVPVwpfbnmxBHHY6bNBmr1m9WamwyGEFAEAhtBM6nijw3XXWxRi71ntvSH5Li+zuXbB1P9/d5fy6HUzSZ/oDZMG0KwQyAqPitrkWThnjuobsQEx0V8m92bE5JS8/E2A8+x4atOwIgATmFICAICAL+RaBf'@; put 'r26468arqCpPeEhHVPP93UGBnS+P+wir1m3WCKd/kZfW9YqAEMwASYYvuvMG9MFdN10NI1Ru8Dcs/KZ7mOqWv/3Rl0Iy/Q22tC8ICAJ+RaBdq2Z4cNSNqJNYK6R97b0gc+WfoxmZ+M/r72HPAan648Ul1NZCMAMocbs9DPfecg0GU4mw/Pz8AJ5Zn6cSkqlPuUivBAFBoPII1E1MwKP/uhktmzYW'@; put 'clkCtvDwcGzYvA0vvvWhlAwugUsofRSCGWBp162dgP88fDcapiSHbJWfkpALySyJhnwWBAQBIyHAQZysNDj7zB4wUcdD0e+yInlxMvYfZ8yhFHVT4KCa67KEFgJCMAMsbyZUXdq31oJ+Qj11kRd6L8l8hypCrN+y3btZ1oKAICAI6BqB4QP74pYRl1IaOouQyzIkxfEH/Pfau59g0fI1koi9DIxU'@; put '3iQEMwjS5bdeTmVxM1V4CPWoci/8TDKPUODP2x99QSRTAn+8uMhaEBAE9IlAY7JCPUHZQZLqJAq5rEBE7I+ZevgInnl1nBbcWcGu8pNiCAjBDJJAOdLw4TtvwllndBV/zJMy8EaXc9kxSWEUpIkppxUEBIHTImCloM37br1WM41zffFgLawd5Psm//HCL+q8eE31XEGIk557v2s/BuE/MZUHAXQd'@; put 'nFIIZhCFkJJUF6MfvBP1ac2R5bJAu1FmUG3bdz/9FktXrxdIBAFBQBDQHQK9u3XCv2+7nir12ALeNyaVYWFh2nlzc3ORcSxLyy3M981cDh71gPplR1xsNNjnPyEuFvHxcZqp2ks4A91p7jPnxHxuzARs3Loz6IQ30OMP1fMJwQyi5M100XXr1BZP3Hsb+I04FEqKVQZufhs/np2jVYSQspKVQUz2'@; put 'EQQEgUAhEBFux1P/vh0d2rREILWXrJ1kYpmbl4ct23dr1dA2Uh7hQ2npyMsvu4BHGJmnE2rFUYR7I3Tt0Aad27VGUt3aGsELtFKDo8qXrFyLl9/5WKtdHih5yXmCh4AQzOBhr52Z/TEvO2+Q5igu/ph/C4Nvply7/NNvp2Hm/EV//yCfBAFBQBAIIgID+5yBO2+8OqDVeuykkTxB2so/l63Gr78v'@; put 'ws49+6tVJacWaTP7nNGFUuX1RvMmjTSCHKi64azF5OW/b74vCdiDOH8DeWohmIFEu5xzhVN+TPbnGdi3t/hjlsCISWZ+QSG+mjIdP838vcQv8lEQEAQEgcAjwNrLp/89Cu1aN2dHR793wOtfuYzchb6dNgvbdu2tFrEs3dEoKl88qG9PXDx0IJLr1UFhYWHpXfzyXbSYfoFVt40KwdSJaGonxGul'@; put 'JJs1bhiwi10nQ6+wG0wyi5wuTPn1NyKav4Z8mc0KwZIfBQFBwK8IsPbvnluuRUR4mN/9CNkczlacyT/NwIy5f6LADySQ4wBGjrgEvbp3hpPiAPwdDMRaTK5V/ixFlG/cJr6Yfp2sOmhcCKYOhMBd4AuvXctmmm8P1ytnZ2xZihFgkukmZcHM3//AJ99M1bSago0gIAgIAoFEwEL3oYfvugm9u3Wm'@; put '0/pXe8km8dRDR/DuZ99g7aZt9Dxw+W2o7P9/1UVDtdR57LLl71iAiIgITJs1j3zsf5Dk636Tqj4aFoKpDzloveAb2MC+vXDvyGu0i9zfb5M6Gvppu8IE3ET4LFq+Gu999p2UHjstYrKDICAI+BKBZo0a4On7b0cCRWT7897M5HL3vgMY+8Hnmq8la/wCsZxLfpm3XnMZRaD7VzvLZv9Minh/7KU3'@; put 'ceRoRiCGJucIEgJCMIMEfHmn5eo+119+Pq6++DzxxywFEpNMM92c1m7coqUxSj2cVmoP+SoICAKCgH8QuPLCIRhB92WL2eQ3gllMLlPx+vufEslM9bs2sTRS/Xp1IxeAEVqaI39qMnmcbxKB/u2PpT7xKS09DvmuDwSEYOpDDqf0gh3JOQl7n57dhGSegkzxFyuR8J1792MCJWTfunNvGXvIJkFA'@; put 'EBAEfIcAp/th7WXHtq38FtzDFW/SqJrZa+9OwtYde4JWVvG8AX1w+/VXgNPo+UtTy8E+fyxdqZWQLHRIDmjfzVR9tSQEU1/y+Ks3nCD32QfugAT9/AXJKR+YZPLN+IMvvseSVetO+U2+CAKCgCDgSwSaNUohgnkHmcdj/UK6ioMZnZpZfOmq9RTYGFwf/Fsp8OcSSp/nr1gANpMfy8rGoy+8rpUI'@; put '9qWspC39ICAEUz+yOKUnbA5u3byJFvQTHxvjtwv9lJMa7AvfpHLz8im6fAamzZ7vlxu/wSCR7goCgoAfEBg+qB9uufoS2CgIxh9aPTYZfzN1Jr6ZNrPcpOl+GFa5TXIp46dPJpP3V55M1tj+39sfUvL1dUHT1pYLgPzgEwSEYPoERv80wkE/Z/borJnLmXD60yfGPyPwf6v85u9yufHLbwvw5Y/T'@; put 'JcLc/5DLGQSBkEPg/tuvR/8ze/jFPM7kchOl7HmFKtwczTymG2zbtmiKZ6mUMbts+YNUc33yb6b+qhXTCLbGVjegK9YRIZg6FyinjbhoyDm47drL4XA4/HKh6xyC03ZPizA3mbF8zQa89/m3OJqhn5v0aTsvOwgCgoCuEeCk5Oyu1KpZY5/3k+9dHCM+5t1PNFcff6Yjqk7n77zxSgwfdDZcfjDZ'@; put 'M7Feu3Ernn99AuX4dFSne3KMzhEQgqlzAXH32MH81msuxcXDBkrQTzny4hs1m8x37NmH9ymN0eYdu8vZUzYLAoKAIFB5BBqlJBHBvBOJVNPb1wuTrKXkQ/4GRVRn55zwdfM1bq9Bcl28+Ph9iIuJ9rlyg+/XGZSu6NEX3tCV5rbGoEkDfyEgBPMvKPT9gd+iH7rjRpx1RlchmRWIioN/+KbFCdnn'@; put 'LVpewZ7ykyAgCAgCp0egZ9cOuP/2GxDpY1NxseXFhP9NmEQkM/iBPeUh8a+br8bQAX19rsXk8bvcbjz18ltaNhB/mOHLG5NsDwwCQjADg7NPzlInoRaevO82tKGKPwUFBT5pU8VG+M24kNwJps76nXx8ZmmfVRynjEkQEAT8j8CF5/bHTVddDKvF7FMtHge57KJ0ay+88b6uNXidKDXTMw+MovFb'@; put 'fA42l8N8+Z2PqIDGGgn08Tm6wW9QCGbwZVDpHvAbX+MGyRTdNwrJ9epoPpmVPjjEduTgHyrAiaWr12Hi5Ck4lJYeYgjIcAUBQcAXCNxM5JJJpsXHBJNLJn7/y2x88cMvuogcLw8rDvJ5iczkzRo38HmgKWPwwRff4aeZ8/xaDrO8scl2/yIgBNO/+Pq8dSZOHdq0wBP33IroqEhJX1QBwl6/zL0H'@; put 'DuKjr37E6g1bKthbfhIEBAFB4J8I+COC3Gsef21CcXCP3qOo777pKgwb2M/nZnKOJP/u51mY9PVPQc/9+U/Jy5aaIiAEs6YIBuF4b/qiB0fdCI4y91eesiAMzS+nZL/ME7l5Wo45NptzWiNZBAFBQBA4HQJMBB/71y3o1bXj6Xat0u+sKOCgnudff5eqkh3wqem9Sh2p5M5D+5+Ju2+5Bm6Xq5JH'@; put 'VG431mDOnPcHxk2aDEdRcJPLV67HsldVEBCCWRW0dLQv+xlySa9RVNKL82OKg3TFwuEbOqcDWUjlyT79dpqkMqoYLvlVEBAECAF+gX/qvtvRuX1rcrjx3cL+l3v3H8Tzb7yrVSTzXcv+aalD6xZaqiabzerTE3DJyAWLV2i116VkpE+h1UVjQjB1IYbqdYJvflddOBTXX36B5MisBIQlTeYfk1/m'@; put 'qvWbK3GU7CIICAKhioA9jGuQjyK3pJY+TbLO6Yk2bNmOl976EMezc3QPb0pSXfzfE/chJjrKp31lHJavXo+XKNCnUHJh+hRbPTQmBFMPUqhBH2xk/h1JdWMvHT5Y0hdVEkc2meecyNWizH+cMVeizCuJm+wmCIQaAlwycTRVs/F1knUmVivXbaQURZ/oMv9laTnXrZ2AFx+7B3USE3xqLWMcVq3b'@; put 'hBfefF8IZmnQFfguBFMBIfJb9j0jr8G5Z58lJLOS8mSTOWs0V6zdiE/IZM6BQLIIAoKAIFASAbs9DKMpyXqblk19aiL3Eqv/UQWfLANoMGsnxGsaTH8QzOVrSIP5tmgwS847VT4LwVREkjEUUf7AqBskEXsV5cm+UEeOZuCrKTPw28Ilmp9mFZuQ3QUBQUBRBNhC9PT9t6Mj5YL0pQ8m53/cvH0X'@; put '/jv2fUOYyJPqJGoEs1Z8nE81mJoP5hLywXzvU7IkFSk6i0J3WEIwFZJ9QnwsHqRqPz06dxBNZhXkyiZzThOycMlKfE456aSWeRXAk10FAYURYEvHE/eMpHtqe5+Oku85Bw+n4bkxEwyRo7c55cB84dF7wDkxfblwFPnsBYvw9kdfShS5L4HVSVtCMHUiCF91oy75yDxKaTXaU9SfVPupPKolA4C+'@; put '/HEGFq1YU/mDZU9BQBBQFgEu0duvV3fS3PkuvRkT1/yCQox+bTy279oLt4dzXOh36d2tIx65eyTMvlTj0nA5D+aUGb/hwy9/kDyY+hV/tXsmBLPa0On3wOR6temt+za0bNZYSGYVxcSaBQeZamaTufzrn37FsazsKrYguwsCgoBKCIy67nKtFreF2JUv08GxmfzNDz/H74tWkPZO3+bhay4ehmsu'@; put 'PZ9yCPs2VyVrMCdO/hHfT58jlXxUumhOjkUIpoJC5SE1rJ9ECYJHonmThkIyqyhj1mYy0dxFCZC//PEXLFm1vootyO6CgCCgCgJXnD8YIy4Z7vNa5Ox/OGPuQnDKNC4EodeF74fPUi3ybh3b+bxUJGMwhgKd5v25TGqR63UC1KBfQjBrAJ6eD+WbQtOG9TWS2TAlmVJAFOq5u7rsG5NMdjyf9+dS'@; put 'qgI0S3wzdSkl6ZQg4F8EzjmzB+666Wpwtg5fajD5/nLoyFGMHjOe1un+HUQNWq9fr44W4BMbE12DVv55KD+jGM/nxryL9ZQTlAuGyKIWAkIw1ZLnKaPhC5idsx+5+xZNoykk8xR4KvWFfaX478DBI/h66q+YT1Un9O0tValhyU6CgCBQSQRaNG2Ep/99O+J8TLD49Gwmf4vN5HRf0WsU9aXnDcTN'@; put 'V1/i8zKRfF/lfMSPvTgWqRTwJIt6CAjBVE+mp4yISWbLpg3x+D23ol6d2lrFn1N2kC+VQoBLc7roDXvR8jVaTfO9Bw5V6jjZSRAQBIyLQDSlf7vsvEE4b2BfhFNOTF8vnA9z3aateGXcRF36e3Oi+f9S9Di7Wvlaw8gp4rbt2oOnXn5bC3jyNbbSXvAREIIZfBn4vQdMMts0b0KazJuFZNYQbb4p'@; put 'pqVnYurMeZg5f5HcGGuIpxwuCOgVgTMoNdHVFNzSiu6dbpfLp+bxkmPml9e3KE3PAkqTprdgn6HnnIW7bx7hc+0lj58DfGb9/ifemThZd+MuKR/5XH0EhGBWHztDHamRzBZEMu+6GUl164hPZg2kxw8EKgOETVt3kNl8JlZv2FKD1uRQQUAQ0BMCyeRzePnwQeh/5hla3sciP0d480vr7n2pePGt'@; put 'D3A4TT++mLXiYvDfx+5Fg+R6Ptdesrw5wOftj76gF/XFFJ3u0tMUkL74CAEhmD4C0gjNFJPMpnjozhtRv15dIZk1FBo/GPLyC8gvczl+/HUuJU4+WsMW5XBBQBAIFgJsAh/crzcuGnIO6ifV1UiPr83C5Y2NydZPZBX57LtpyM3LL2+3gG6/44Yrcf7gs+GiIhS+XvhZxOngnnz5LeykbB2+DJ7y'@; put 'dV+lveojIASz+tgZ8ki+sDm6/FFKYdRIostrLEN2VOdoUNY88APitz+W6uYBUePBSQOCQIgg0LVDG1x5wRB0aNtSKwnp9AOpqghKvi9z8OA4MhfrwVTet2dXPHD7DbBYzH4hf/xyvp38L59+dZzcLyuaGAb/TQimwQVYne4Xk8wUPEo+mY0bpkiezOqAWOoYNpubiGxuofrC3/08G8vWbPDLjbnU'@; put 'aeWrICAI1ACBFNJUXkbmcK7UExUZEdQgSH5Rzco5gf+Nn4gNW3cGzWzcjDKPcNR8Yq14v5jGWVzsfzl5ynR88cN0qeBTg/mr90OFYOpdQn7sH2swH77zJs2JPT9fH2YZPw43IE3zmzk76i9ZuQ5TyGy+jcrAySIICAL6QoBzOg45u7dmAq5D5XXZBzBQ5vCKkOC0RVyj/PX3PtXuHZy5IpBLUt3a'@; put 'ePLeW9G0UQOqrON70ziPxautfZa0lxvIj13M44GUcGDPJQQzsHjr7mwNkutqppD2bVpCSKbvxMMPimzSRsylChU/z1mgJVT2XevSkiAgCFQHgTCbVdNWXjz0HDRrXJx6R28BJpy6KPXQEYybNJkSkO8ImCYzqU4i+effhDYtmvqNXLLM+N64eftOqsM+Qczj1ZnEBjpGCKaBhOWvrtatnYB/33Yd'@; put 'undqLyTThyB7/TPT0jMwY96flJJjEY5n5/jwDNKUICAIVAYB1pp169hWy2nZoU0L8i20wN/R4ZXpV3n7MAk7npWtlZFcuHSV39P4cEGO+269Tst36W9c2Dz+3qffYBq9ePtLS1oerrI9sAgIwQws3ro8G5so2N/m3pHX4KwzuiIvT791cXUJ4Gk6xQ8zJpv7KDn7dKo9zFpNjj6XRRAQBPyPAGvk'@; put 'WGPZs2tHSpZuD6qfZVVGyz6ZTjLd/zr3D3z3yxxkHDtelcMrvW+fM7rgtmsvA7sK+Jtc8r2QX7Ife/ENXZfHrDR4smOFCAjBrBCe0PoxNjoKo66/AoPPPlML/BHfGN/Knx8YnD9z/aZtmtl85bpNVB7O4duTSGuCgCCgIcABPJefPxhMoGKiow2Zlo01r2wy37V3P76dNguLVqz1mTYzsVacptEd'@; put 'RlWKbHRvCoSrQGRkJH6cPgcfffWjBPeEwHUqBDMEhFyVIUaE23HzVRfjQsoF5yDyIySzKuhVbl8OBOK6wxu2bMMvcxZizcatPntoVK4HspcgoC4C7EvI+SwH9OlJRSVqa2ZYPQTw1ARxNpmzOZmDYmaQRnPV+s3VtoJwAvVzzjoDwwb0BZNwbjcQ93m24uQXFODJ/3sbu/enBuScNcFcjq05AkIw'@; put 'a46hci3w2+wIKpF21UVDtchKo9+c9Sgg1kywRrOw0IF1m7dppvO1G7cJ0dSjsKRPhkCAfckHEakcROSSiSXftwKhlQsUOHzP8BLNfamHsHzNRo1o7j1wENkncivsRgxZp5pRZPgZXdqhV7dOSKZqbkwqA+kDydrLKTNYezlF7nMVSkudH4VgqiNLn46EfWXOH9QPI0dcojnEB/JG5NOB6LyxkkRz'@; put '/Zbt+HXeH1R6cquYznUuN+mefhDg0o79e3fXtHKskeNF9fsVW0H4Hl1YWIj0zGOaP+Pho+nIPJ5N7k2FGgZ2qkwUHxuDFMoUUp8wYj97NrczNoHGh/vKWTWefPltMDmWJTQQEIIZGnKu1igtZNLoRzfuO6lkWHRUpN8dwKvVSUUOYqJZbDp3YPO2XZj5+59YSWYwvZSNUwRmGYZCCDCZPOesHhqx'@; put 'DIZGTg9Q8n3Dm63C+9lr7ubv/Jk1uUwog6nN5cjxT7+dim+mzaS+SN1xPcydQPRBCGYgUDbwOfjm1ZHSejww6gbUrZ1oSEd5I8HPDwU2nbtcbkq0vAe/LVyCxZS0nSt8yCIICAJAEyp1O6hvL3A5Q458DrSpV2RQNQTYrM9BSs/+bzyOUeolWUIHASGYoSPrao+USQ+XD7v/tuvRslljyZVZbST/'@; put 'v73zfI7qStP4u2NQzhEhDBJCEogcTDAGG9tg43EoxxnP7Hpqy7sftnb/jN2q/bjhw1ZN7Uxt7YTd8YzHM2MccMAYE2whkEgiCOWcc8Sw+z6HObjBwghJ3X3vPc+tajrQ995zfu9t9dPvecPMd7RC84Z6IBqaWgW18L746pR0dPfO/CB8JwkEhABWU0qKlpnkna0b1kqGZkDDIxdNr1xA0IZ1GsaL'@; put 'qmf453//mcaMnhf8PePmDgEKTHdsPeeZ5moQ/d//9eumntyEZgPapZg5H5gH+E4CWDrHhoLtKFNy+ESFegRaPNHa7jsHzv8kgTkSQFWLdatKNHFnm7lHi0fUamTi4RzBRmh3LI2jLNHP//cPLEsUIeZeOg0Fppes4YOxJCclyJs/fFH2PbaTf+gjbC8EyuM2qIWKkXn+2bGT2kquZtblSiI8fJ6O'@; put 'BGZMICMtVbZvXmeSd0qKCiRGf2RBWPJH7YwRRv2NSCiq1rJK//Rv/8ml8ahbIzoDoMCMDndfn3WBipwfaAmjV5/bxwzzKFgScbEmIUhLHNVqbBOWz788fVY6uXweBWvwlPNFANf1siV5snvbJtNRDJnPWGJFggqF5XxRjsxxEEeOH8L/+K8/lcu1jbRfZLB77iwUmJ4ziT8GhJioPTsf0hZjL2uX'@; put 'jETftF/zB92ZjzJ0+RzFl7/4qlIuXq1Te1yb+UH4ThKIIoHEhHiz/L17+yZzn67eS8RWRrqUThQRBOrU+KGASMt/+ekvzI/f65rFzs1NAhSYbtp9XmaNPyRlxcvlH7SH+bIli017yXk5MA9y3wSsVxOdMmrqGk2sZnnlOSYF3TdJ7hAJArhel2h9xh2b18vDWzYYzyWyjRlfGQn64TsHPM740ftf'@; put 'v/mDvPPhIZYkCh9qXxyZAtMXZvL2IFGP7u/eeE22bFjDHuZRNpXNPscwenr75Iz2PT92ssp4NYdHxqI8Op7edQKpmqSzrqxEdm3dJKtLiwTeSiTsQFhy8zcB/O3Bj4Tfaq3LX779HpN6/G3OeRk9Bea8YORBUIj9J68+L89o9x+WD/HG9QAvEf7gT2pP+aaWdm0rV21iNeubWk0vdG+MkqMIOoFY'@; put 'vQaLly+V7dqicMv61bJYf5AijpveyuBYHuISST1/PHhIfs5WkMEx7BxnQoE5R4Dc/RsCyHB+af/j2sP8aUF5EXolvmET7UdYtoJ9RkZHTYmjijMXpOJstbZt62AtwWgbJ4Dnx7W2dPEi7X29Wm9rTB3d+Lg4xlYG0NY2POft9z5Wz+UB/ngNoI1nOyUKzNmS437TElio2YPwUrz5oxclf1Eu4zKn'@; put 'pRS9F+0SOr4UhjTLs1braZZrAeTK85ektaOLYjN6pvH9mSEqES6zcc1K2bZxrRRpc4ZkXRK3rQqZCe57E39rAsgWh31//c778rbWu2QbyG8hcvoFCkynzR+eyUO8oNzI32qG+ca1q0x7SX65hIf1XI4KO+ELAqJzcGhI6nTpHJnolXprae+SKcbFzQWvE/suWABRmWtE5ZZ1ZVJUsERSU1JMWRpk'@; put 'gbMgenAvAyyJoxTRz/7nHa3JWy7MFg+urWc7MwrM2ZLjfvckkJaSLD984WnZ//gjAjHDsiP3RBa1N4SKTSyjN2rM5pnqy3K2ukaFZ4surTNBKGrG8diJEf6CqhEbVpeaskLLl+ZLin7W8SOSotJjxgrDcPCDFB16rtQ2yH/892/kYk0961yGgXMQDkmBGQQrengOsTELtV7mVvmrV56T9NQU4830'@; put '8HA5NCVgl9Gx5DkxOSntunR+8Wq9VOkyek19k3T39tNb4diVgs46JZqos76s1GR/L87NkURN7LMJffRUunFBIJYbtv74yAn51e/fk76BITcmzlnOigAF5qywcaf7IYCi7KXa7u1vfvyyrNK6mZMqWrhkfj8Eo/temyAEMdE/MGgSg85pq8pqFZ0NzW0yNDwS3QHy7PNOICE+TutU5srKFYXqpSw2'@; put 'STpZGemmxiGuAybwzTtyTx8QPzZRkaJOO4f9SksQoXMYl8Q9bTJPDI4C0xNmcGMQGWkp8uOXvi97d++41QLOjZkHZ5Z2KR33KH/Uo97MOk0UunClVi6p4Gxp75TRsfHgTNiRmcTGxkhuVoZ6KZfJ6pIiLSu0TPJyssxSKBBg6RvCkptbBPA5R6xlX/+AfHj4mLz70efqtRw0f7/dIsHZzoYABeZs'@; put 'qHGfWROI0SXzx3XJ/A1dMk/jkvmsOXplR3g2kCiEDV2E+voHpb65VfsPN5iOQk2t7TI4PEqPtVcM9udxwEOZl5NtknJWFhWqhzJf8rT3d3JSkhEP9FJ6zGARHo71WGLF4mj5aTnw8RFpauvg5zjCdvD76Sgw/W5BH44fS+YrCpfKm6+/KGtXlZg+5ozh8qEhpxmyFZyI40QoBL6g2rp65KrGbiJL'@; put 'vUFv3X39MjY+Mc3efCkcBFA6LC012Sx5o3QQPntL8/MkOyNN4ygTbwlKeCkZuhIOC/jjmPBWIhwGn93O7h45Vl6psZZfSqP+SOR14Q8bem2UFJhes4hD40HbuFef2yfPPrnb/GGb0iVXbsEiAMFpb/CKjY6NSa96OVvUG4JMdXg72zp7pKun14hOfpHNzf5IqkvRz9Vi9UYi03u5CkoUPM9SMYkV'@; put 'AwgIbHbJm7znxtvPe0NIhopK1MW9VFsvxyvOyFenz0n/IBN4/GxfL4ydAtMLVnB4DPCubN+8Tt7QNpMP6hfhhC6z8ksvuBcEvtSs4MSXG0TnmIrOAf1y69J4zpa2TmlW8Qnh2dM3IAODwybWM7hEZjczMExNTpTM9DRT3BwFzvH5yc/LEZQHS9UbkjLwWQJj3LhKMDvWft4LnzdsVkziusFj3PC3'@; put 'Fj/2EENddeGS3i7rj71u/v31s8E9NnYKTI8ZxMXh4I/d4twsLWX0vDyydaP5AwcPCzc3CIR++UF0YsPyOmpvDmqGeo8uqXd290q7LrV39fSZ5/0qPPH/ExOTckNFVBA3FDFP0HqDKUk3hWROVros0sSb3KxMyc3OlJzMdI2ZTDRJGBAOEJP43EBIUkwG8YqYfk74/MAzjR8ReGw3++Niauqaad84'@; put 'rPVtkaCDzxKqP9Q2NEurCkoUSw/dz+7PexKYKwEKzLkS5P7zRgCZrHt3bTfF2TPUMwORwc1dAhCbuEE8WeGJL1FcF4jhHFHP59DQiC7lDZsvzl7NdMVjLO2hdBIE6PjklHk/vmS9IkQhHGNUEMSqhzEx4aaATE1JUs9jinokU029WNwjbhLL3YkqMuM1KcfGx1nhYIUknnNzkwCuCfyo+Ojz43Li'@; put 'lJYOun7jz2IRnusbxvs/rj/CEJoyqp8ZfA64kUCkCFBgRoo0zzMjAkgAQtzYT157QTZpm0kbKzajnfkmZwhAcMLrYsUnnkNoWfEFETqpX6ao14iySRMqNEfHx81jPMeXLrLecQ8vKEouTU5eM+0xv1YRaz2B+JK+doc3HefAeRcuXCDf+4ub48DjGL3hCx/38XFxEqcdb+JURCYkxBmRiMxteCQT'@; put '9Tn+Hx1xIDLNvnqPY2Kz8wgVkPRIOnNpz2iiuPZRPqi1o9MUPD9WXsXWrjMixzdFkgAFZiRp81wzJgDPzvef2CUv7n/CxJPRmzljdHyjEsAXsF32s2IUz60n1ApSC8uKOjy3wi70Mf4/dMOxIAjtOUIf4zX7OvbBYysQ7zx26HlDj8/HJHA3AigLhmvq2MlKFZfvm5jlO6/Pu+3L10kgkgQoMCNJ'@; put 'm+e6LwK2A9BfvvKs9j1eSW/mfdHjm+eLQKhYDD0mv9RDafBxJAjEqee7V2OS33r3Izl4+LjxvEfivDwHCcyGAAXmbKhxn4gSSNKex888/oi89MyTJiaN3syI4ufJSIAEokwAHnJ4Lk9WnZNf/O6A1De1slVjlG3C09+bAAXmvRnxHR4gcMub+bJ6M9esNBmTiJPjRgIkQAJBJoBYSzQseOeDQ/Le'@; put 'p0dM3HCQ58u5BYcABWZwbOnETJAosV+9mS+rNzM9LdVkCHOp0gnTc5Ik4BQBeCzhuTx19oL88u0D2g2rmV5Lp64A/0+WAtP/NnRuBt/TAPdCzTR//YX9pkg7ACBbmBsJkAAJ+J0AYn7htUSs5e8/+FQ+OHSUXku/G9XR8VNgOmr4IEwbbfEe2/GQaTe5RLuYIDbTZusGYX6cAwmQgFsEUOYKW3nl'@; put 'OVN+CAXRr2vhfG4k4EcCFJh+tBrHfIsAfu0v0q4mLz3zhOx5eKvWHIw3QvPWG/iABEiABDxOwHotO7Rb1VvvHpRPj37FougetxmHd28CFJj3ZsR3+IAAuqOsLyuRHzz/tKxZWcwkIB/YjEMkARIQ0zN+SkN8Dh8/KW+/94kWT+8yxfbJhgT8ToAC0+8W5PhvI4CSRvse3SEvPLVHcrRnM5bNmQR0'@; put 'GyI+IQES8AABJPBgSbymrkF+/c4HmsxT/a2uUR4YJodAArMmQIE5a3Tc0asE0KUlf1GOvPLsXtm1daO27IvjsrlXjcVxkYBjBOxy+ODQsBz4+HN5V2+DwyOOUeB0XSBAgemClR2d481l81J57bl9Ztkcnkxmmzt6MXDaJOABAjHacx71e8urzstbfzoodY0tTOLxgF04hPAQoMAMD1ce1UME4uNi'@; put 'Zc/OrfLi048Lss0hMq9fv+6hEXIoJEACQSZgl8PrGpvlt9rm8XjFGUHcJTcSCDIBCswgW5dzu0UAy1JZGWny3N5HNUbzYUlNSWZ85i06fEACJBAOAnY5HJ14Dnzyuda0PCb9g0PhOBWPSQKeI0CB6TmTcEDhJICWkwVL8403c+dDG0xB46mpKSYChRM6j00CDhJAsXQkGR4trzQF0xu1puUNDdPh'@; put 'RgKuEKDAdMXSnOdtBBCfuVbLGaF+5vqyUtOSDUKTGwmQAAnMhYAtln7uUo387sBHcqb6isZdMiRnLky5rz8JUGD6024c9TwRiNEyIfBkPv/UY1JaVGg6ATERaJ7g8jAk4BAB2zsc3Xf++OEh+fzLCpmY5I9Why4BTvUOAhSYdwDhUzcJoH7mozu2yLNP7pZlSxazULublwFnTQL3TcAm8KALz4ef'@; put 'HZWDh4/LgJYg4kYCrhOgwHT9CuD8byOQnpoiTzyyTZ7es1Py83JNSRGUFeFGAiRAAqEEUG8XZYcGNGnnM+3CgySe9s4exnOHQuJjpwlQYDptfk5+OgI243yfdgTau3uH5GZnUWhOB4qvkYCDBGxm+MjomCbwnJZ3PzosjS3trGfp4LXAKX83AQrM7+bD/3WYAL5IcjLTZa8KTXg1F+VkU2g6fD1w'@; put '6m4TwN8DeCzHxyfkq8pzRljW1DfJ16yp6/aFwdnflQAF5l3R8D9I4CYBKzSf3L1dnty1nUKTFwYJOETACstJrTJx6swF+ZN6LC9cqWOzBoeuAU51dgQoMGfHjXs5SOAboQmP5lYjNNERiDGaDl4MnHLgCYQKy9NnqzXG8oig9BBLDgXe9JzgPBGgwJwnkDyMOwTwxZOVniZ7VGTCo7lEk4HQ55x1'@; put 'NN25BjjT4BLA5xtF0ie0SDo8lhCW5y9fpbAMrsk5szARoMAME1ge1g0CyDrftW2jaT9Z8GC+ILOUnYHcsD1nGSwCNit8VJN3KtRj+f6nX0h1TS2FZbDMzNlEkAAFZgRh81TBJADvJepoPrxlvXo0d8jKFQWCbh4o2H7jxo1gTpqzIoGAELB1LIeGRzR556wc/Oy4XKptYIxlQOzLaUSPAAVm9Njz'@; put 'zAEkgM5A68qKZf+eXeY+KTHRCE3EanIjARLwDgF03sGtp7dPjlWckU+OnJD6plaWG/KOiTgSnxOgwPS5ATl8bxJY8MADUlTwoInR3L5prWRlZhiPCNtQetNeHJUbBBBfidUF3Le0dcjhExV6OykdXb1cbXDjEuAsI0iAAjOCsHkq9wjgiyw3O1N2b98sj27fIgUPLjYQIDSxtM6NBEgg/AQQXwlh'@; put 'iZWEK3UNcuhouRyvqJL+QbZ0DD99nsFVAhSYrlqe8444gcSEeNm8dpU8pW0oVxYVSEJCApfPI24FntAlAnYZfHhkVM5drJFPvvhSKs9fMhniLnHgXEkgGgQoMKNBned0mkBsbIwKzEL1am6SzevKJCcr03gz6dV0+rLg5OeJAFYNICzhtezo6jaeyiNfnpbahmbGV84TYx6GBGZCgAJzJpT4HhII'@; put 'A4Hv6Rdhji6fb9u4VnY+tEGKC5dKXFwcvZphYM1DBp8AssEhLPFDrb6pRfuEV8mhY+W6DD7EcJTgm58z9CABCkwPGoVDco9AnBZ2XlVcaEodbVm/2ng1QQFdgljqyL3rgTOeGYHQpJ3+gSE5e/GyHD5+UjvuXJUx7RnOjQRIIHoEKDCjx55nJoFvEcCyXmZ6qmzSWM1Htm6UUo3VTE5KMskJEJtM'@; put 'DPoWMr7gIAFbuxL9wesbW8wy+IlTZ6W9q4f1Kx28HjhlbxKgwPSmXTgqEpCFutyHrHMsoW9ZXybLtFMQPJ0QmsiGpdjkReISAfz4whI4tq6eXjl97qIcO1kl1VdqNWlnyiUUnCsJ+IIABaYvzMRBuk4gThODykqKZOvGNbJpzSrJy82+FW/GIu6uXx3Bnb8VlVgKHxwalktX61VUVkrV+cvSp7GV'@; put 'DB8Jru05M/8ToMD0vw05A4cI4Is2JSnRiE0UcF+7qtjEa2LJEMkNFJsOXQwBnarNAsc1PTI6KnWNrVJedU4qqi5Ia2cXe4MH1O6cVvAIUGAGz6ackSME4N1JS0mSNSuLZeuGNbK6dIVkZ6aLFZvw7nAZ3ZGLwefTDBWV45qc09jSJhVnL0jFmQuaEd4mU/rjiRsJkIC/CFBg+steHC0JTEsAYjM9'@; put 'NUU9m8tNbc3VupyODkIxMTEmZpMJQtNi44tRJGCXv3E/Nj4uTS3tJq7y1NlqqW1slskpisoomoenJoE5E6DAnDNCHoAEvEXALqOXriiQDWWluoxeIvmLsiU+Pt7ErLH0kbfs5dJo4F3HDaJyeGREvZOtGk95SSovXDa1KykqXboaONegE6DADLqFOT/nCSTEx0nh0nxZp0JzfVmJLM3PkzT1dkKI'@; put 'MiPd+csjrABwjUFQIvsb8cEoen61vkmqLlySM9VXpLW9S65pVQRuJEACwSNAgRk8m3JGJHBXAviyz8vJMvU1N6wplZLCZZoklGG8mxAAuDF28674+B8zIGC9lLjH0nen1qa8VNtglr+v1DVKT28/WzbOgCPfQgJ+J0CB6XcLcvwkMAcCSYkJUrBksSYIFZlbgdbaRCwnPE4QmlZ0zuEU3DXgBEJj'@; put 'KXG99PYPmCSdcxdrtEZlndQ3t7KrTsCvAU6PBKYjQIE5HRW+RgIOEnhA4+Iy0lJl+bIlJlmoWL2bDy7OlXR9Dd4oKzjp4XTw4giZMq4FKyohKFGfsqW9Uy6rlxJFz6/WN0vfwCC9lCHM+JAEXCRAgemi1TlnEpgBAQjOLC17VKjdhFYVL5cVBUuN4ExNSZZY7SgUKjjxmFvwCCCG0opJ3CNmF4Ky'@; put 'raNLrmgsJQqfI+O7s7uPNViDZ37OiATmRIACc074uDMJuEMAghPicmn+IikuXGo8nVhSz8pIk8SEBJM0hLqbNkudNTj9dW1YMQkhCS8ltomJCeONhIfyakOz1NQ1mWzvnn71UKr3khsJkAAJ3I0ABebdyPB1EiCBexJAhnp2ZoYs1yx1LK0jnjMvN0sLwCdLgopOiBV4NyE6ITjp6bwn0oi84U4x'@; put 'ieeTk5MyNDyifb77pKm1QwVlk/FOtnV0y8jYOG0XEcvwJCQQHAIUmMGxJWdCAlEnAKGSlBhv2lcuW5JnBCc8nrlZmaY0UrK2uUQCEcSm9XZSeIbPbLCHFZM2dhK8xzW7e3h0zIjJ5rYOaWhuM4k5EJMoJfQ1vZPhMwqPTAKOEKDAdMTQnCYJRJNAfFysZKanaomkbI3jXCRL8nLU05ltWlumJCdJ'@; put 'ghaBh/DEFhrbCTGEzd6bJ/znNgJWROLeikg8BjN4JYdHRmVA4yY7u3tNMg4EZasKSTyHx/I642dv48knJEAC80OAAnN+OPIoJEAC90kAIigxId6URUJbS9wW6/I6vJ2LsrM03jNJ63PGSZwmFEE4WdEEAYobBJRdcg+qAMWc7YZwg9AbXrcicnxiUkbHxjRecsh4Jds6u6S9s0c6e3qlW+tODg6N'@; put 'sJ+3Bcl7EiCBiBCgwIwIZp6EBEjgfgjEag/1m+IzWT2faZKtxeCzNZkIZZTS01KMKE1U8QkBivei5zrEV6ggs0IU57VC1N7bsURSmIaODefHeO09/g83+xpex9gQu3rt2jX1RE7JmIpItFccGBzWWpOD0t7VLT19A0ZEwkMJEQmhGck5mQnwHxIgARKYhgAF5jRQ+BIJkIC3CSzU5XQkGOGGzPZU'@; put 'XWZPSU785rHGeiLeEyIV74EXFPvExcbIAwu0daF6RO1ysvUKWvEZej+dWMP/W0FoKVnxaAUi7u178H57g2DEkvS1qWvGo4je2xMqHkc1iQZdbxAXiWVrCEbcQzTi8Yi+Pqr/Pz4xZUSnPS/vSYAESMCrBCgwvWoZjosESGBeCCxcuMCIy9iYhcbTiXsIzjiNC41diNcW3hSqRqQmmQx4/D/EaXJS'@; put 'wm1jwGspKlzhKYQAvKFeRgjJGzf+T8Xh6E2hqGJxSOMecYNAnND3jmu5nyn1REJM4jY5NSVTt0TmlJb8YR3R20DzCQmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQ'@; put 'AAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfs'@; put 'wdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4i+ZHtw4AAADdSURBVAAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAF'@; put 'prfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8J/D97oVzdCcK8fgAAAABJRU5ErkJggg=='; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64) filename filecode clear; %let filename=select-library.png; filename filecode temp lrecl=43680; data _null_; file filecode; put 'iVBORw0KGgoAAAANSUhEUgAAAdsAAAG7CAYAAACLjj9uAAAAAXNSR0IArs4c6QAAIABJREFUeF7snQecVNW9x0+7907dQhNLYmLLS4wmStmOYIslGk0sicanRo0JILALqIltLXRYECtJjGkmKinGhiCwC1soorFEk5iosWEBtszutFvOee8uDM7OzrLT596Z/37ey8rOOf/y/Z+Z39x7T8EIfoAA'@; put 'EAACQAAIAIGsEsBZtQ7GgQAQAAJAAAgAAQRiC4MACAABIAAEgECWCYDYZhkwmAcCQAAIAAEgAGILYwAIAAEgAASAQJYJpC229zVP9Zgxjo4JtMur82vH/yyQ5fjBfJ4IPL6v7rHuL5pyf1+eQgK3RUYg8tkzdfL9foyReKjtB96ran/ZW2QYIF2bEBggtg83X+EIGOIPCvZ8HSOKMSYYIRxp0/8b'@; put '7/u3+aL5GkYYMSq7zVf6Xx7+R+xtsu/X8O2HaiESNmEGmfbPABOp2MtU3ilkknBtIoUxO8QWyGY5p4CpoLqkPV5j3qRpv18Tpqsbql8gMcChEJF/7/2973XzlxBYGOb/EkxoiPted1J+/pVTfhVK2CE0BAI5IDDgHXl/6yXlSO79d8jwjcyBb3ABBIAAEMgoAZm4exzcfcTV1as7M2oYjAGBNAkM'@; put 'ENtVO84ZJTj+d0DvKUvTLnQHAkAACOScgEScPRhrR06v2LAn587BIRA4AIEBYvtA+/ljkMTfDOrdpUANCAABIGA3AhJxdGscHdlQvRaubO1WvAKPd5DYYln8O6B1lRR43pAeEAACBUgAxLYAi1ogKQ0SWyKjt/xaZ/8MY/gBAkAACNiJAIitnapVXLHGEVv8tl/b4y4uDHuz5ULXCGZSsrmbEyIN'@; put 'oYXMmdoCcZ5sf2h/YAKMKC6zhcG1MCWSMhyvvfVQg8O1K4bXI+ySyVXn4f4le2bfyH8n2v+zWcOJ9tjfLt505/2fT+bqB0YU53BWTbGlGjtiat0zXcO1hdeBQC4JDBTbV84fI+nSB77wJ3EFRwjBBSIXC52/SBDSdSUsJE6Exknu1gXE0JGT8K0ZoQPGqTn35pHsNw1/dEw2WWUqO4M5rZkadKay'@; put 'dAihIe6xDFWjRGqR69zTeUOnzM10uo+dFOSpsU8n8H19NWPoz4Z4ddAMOuS4FIgwGUvHIkyfoYTJ8cIDsc1A0cBEVggMElvFcH7SHfowrjMhOHeotHTalBabSEpWmIFRIAAE8kRgUVuNVwj1A5m64s4rAbHNU2HA7bAEkhZb3ucsmfuNdQMuIIb1Ag2AABAAAhkgsHJrRYlfNd5TmDvuigkQ2wxA'@; put 'BhNZIQBimxWsYBQIAIFsENh7ZRv+QKbuoa5se6jGvgjPbLNBH2ymQwDENh160BcIAIGcEth3G/lDmbq88RxLxNGjK+Ev1J/Q0p3TwMAZEBiGAIgtDBEgAARsQwDE1jalgkBjCIDYwpAAAkDANgRAbG1TKggUxBbGABAAAnYlcF/zZE8v8++E28h2rWDxxp3sla3B+5ylMBu5eAcMZA4E8kkgEbGV'@; put 'mXH4tePX9+QzTvANBGIJgNjCmAACQMA2BPaKbWCnTJ1DTpACsbVNOYsqUBDboio3JAsE7E1g7zNbzRTbuHuLmbORQWztXeNCjR7EtlArC3kBgQIkAGJbgEUtkpRAbIuk0JAmECgEAuYOUgFNfHiAK9tumRlfgGe2hVDtwsoBxLaw6gnZAIGCJrBwx7hSFKQfgNgWdJkLMjkQ24IsKyQFBAqTwMId'@; put 'p5aioO+AYqsr4S/CDlKFWX87ZzVIbIk69Hm2QnBY+mPnakPsQMDmBEyxxUHfB9LQE6S6QWxtXuQCDT+pw+NBbAt0FEBaQMAmBEBsbVIoCHMQgQFiu/KlM0crhvMdv7Yn7tncILYwgoAAEMgngeXNk8tUFngfrmzzWQXwnQoBENtUqEEfIAAE8kIAxDYv2MFpBgiA2GYAIpgAAkAgNwQWtNaWE6S+'@; put 'B1e2ueENXjJHII7YOt72a51xd2eB28iZAw+WgAAQSJ4AiG3yzKCHNQiA2FqjDhAFEAACCRBIRGypxo6YWvdMVwLmoAkQyBkBENucoQZHQAAIpEugqaNqhGYY7x7oNjKIbbqUoX82CIDYZoMq2AQCQCArBEBss4IVjOaAAIhtDiCDCyAABDJDAMQ2MxzBSu4JgNjmnjl4BAJAIEUCw4ktI0o30yR4'@; put 'ZpsiX+iWPQKw9Cd7bMEyEAACGSYAYpthoGAuZwRAbHOGGhwBASCQLgEQ23QJQv98EQCxzRd58AsEgEDSBIZb+gO3kZNGCh1yRADENkegwQ0QAALpEwCxTZ8hWMgPARDb/HAHr0AACKRAYLi9keHKNgWo0CUnBEBsc4IZnAABIJAJAiC2maAINvJBAMQ2H9TBJxAAAikRGO48W7iyTQkrdMoBARDb'@; put 'HEAGF0AACGSGAIhtZjiCldwTALHNPXPwCASAQIoE4DZyiuCgW94JgNjmvQQQABAAAokSALFNlBS0sxqBeGL7X7+2xxUvUCE4533OkrnfWOe3WiIQDxAAAoVPAJb+FH6NCzVDENtCrSzkBQQKkEACO0h1MU06Es6zLcDi2zwlEFubFxDCBwLFRMAUW9Uw3pWp0xMvb0YUENtiGhA2yhWe2dqoWBAq'@; put 'ECh2AkubJ4/SWeCdA4mtoahH1J/Q0l3srCB/axEYILardpwzCgnJfGbrhme21ioURAMEgABCKzfXjQ7g8NsgtjAa7EYgabE1JHro9RNbPrZbohAvEAAC9iewYuspB4W13v9IQ95GljsNRTsSrmztX+tCyyCO2LJ3/Fpn3OchQgguU8/Vugg0myCECDPzt65JmBKOdSwG2IuGZb4eD57BiYj+OxN4'@; put 'wL8TAR7tdyg/FEv9/g3tsxjJUDHta3sg3xRzbIi9sUf/94Cchdb/Oo/JMZGcYttEx2ocIL5ILNG/k/UXySvSj+7LI9pOdE5UGrpmRpy+w8UTqVVsvcx/J8phf+w4/rgbLoZEXo/lFMsr0bpH84sen0ONgdj6m7WObWvoQ78XE8ktmTaUDa7//vdGVP0jPA40Xky/aoxzrCKdMF01BNYkIh2v8/Bf'@; put 'GJEd8WJkRO5UmDji2vHre5LJAdoCgWwTGPAmvXfb+SMZQe8EtE7vUI650DUuuGG+jhGO9B9SZLOdQPbs788twy5E1JeJaGzmn9PwaZqK/poSMR35W/Trsa+llWF0PmkZSrGzFYde0t8XU8g9l3mnnE9KHcWAgRz5h+j/MUFJ1BF3aaL5mim2cGWbwnCCLlknEEdsxdsBrask657BARAAAkAgwwRA'@; put 'bDMMFMxljACIbcZQgiEgAATyTcAUW6bJR8E623xXAvzHEhi09Ec2lLcCWteQt5EBIRAAAkDAqgQYUToJNo6ZXrFhj1VjhLiKk8AAsb1v+1ljKVbePNAz2+LEBFkDASBgBwLmphYKU465dvxTu+0QL8RYPAQGiO09L517iFO43vOFP6LFgwAyBQJAoFAImGJLsHE0XNkWSkULJ48BYnt/6yXlsuTa'@; put 'iAzjYC6M/hnH5gxZbE483v8TmdaKzcnIOMw+HqMagSGJOIwxHxGkGHivmajpttF2Y2dWpjSJMeWqiIHzeFO2k0zHgUyH7jl8bEPPBk6UYprzWhNNJRk8SbYdyCCBvIfHmmQEiTVPY7Z5lIPk6pW6z/iFHfq9OhDqvqnD/XHvrc/e2cTmMiHe/2+MCRVIZwGy86Ch+DHiQJI28j2EEUci+nNoYI/I'@; put 'yoiA3vOqgpzfmzZldV9iNYFWQCA3BAa9b3/zymXu3s4Q9o5wCPO3GYZXdfS/OYIjnf2//WqXKA+7he4Mlwpm/KtP/aR0qHCduPyLP6564r+ZTEcIhO9Zc6Y8lM2xh3vEx+/27c9txllrwpn0D7aAQKERWPnsmUpiOR0V0+w//f8233MXHbs6donssCZXbf72wV34g3/J1Bl3nohC3bsJL5kQFMYn'@; put 'pjHzc8e9y69ddNFqI/I54HUehLsUf//73RfepTVOadGHdQwNgECOCST3JTkmOFOYQ1r4gz71k7Kh4lZlqexGWGCe47KCOyBgDwKL2mq8nIffV5g77hd2B/N2hiV2ZP0JT8Bex/YoKUQ5BIE0xfZ0d0grfb9P/bR8KMI4jMvrp8Cm4DACgQAQGExg4fPjSoWC31OYO+7afhcr6eZhfgQs5YHRY3cC'@; put 'aYntkldOd5fqZR/2hYe+jQxia/chAvEDgewRMMUWOfB7Mo0vtk5W2mMIeuT0ir/AUp7slQEs54BAWmL7m1dOd4dAbHNQJnABBAqTwHBXtk5W6jMEPQLEtjDrX0xZZUBsy3f2hT8ecntHuLItpuEEuQKB5AgkILY9hIijYN1sclyhtfUIgNharyYQERAoGgIgtkVT6qJPFMS26IcAAAAC+SOwvHly'@; put 'WZj1vXugZ7ZwZZu/+oDnzBEAsc0cS7AEBIBAkgRAbJMEBs1tSwDE1ralg8CBgP0J7BVb/3sydcXd1MKcjQxXtvavM2QwYBvG5HGYs5HD+siPesM7hzwlCCZIJc8VegCBYiEAYlsslYY8076yBbGFQQQEgECqBBa01pZjFH4XrmxTJQj97EIAxNYulYI4gUABEgCxLcCiQkpxCYDYwsAAAkAgbwSa'@; put 'OqpGqIb+X7iyzVsJwHGOCIDY5gg0uAECQGAwARBbGBXFQgDEtlgqDXkCAQsSGF5svT2EYNhByoK1g5CSIwBimxwvaA0EgEAGCczfNnEkUcU7Q99GBrHNIG4wlUcCaYntfa9f6JFDbCcs/cljBcE1ELAxgUTE1hASnPpj4xpD6HsJpC22Uoh8CAcRwHACAkAgFQKJiC3cRk6FLPSxGgEQW6tVBOIB'@; put 'AkVEYGnzuFE6I2/DbeQiKnqRpgpiW6SFh7SBgBUIJHJlC7eRrVApiCFdAiC26RKE/kAACKRMIJErWxDblPFCRwsRALG1UDEgFCBQbARAbIut4sWbL4ht8dYeMgcCeSewT2zfkqmrJF4wLlbSrQt21PSKv+zJe7AQABBIg0BaYmue+hPSy3fCbOQ0KgBdgUARE9j7zJa/PdTh8SC2RTw4Cix1ENsC'@; put 'KyikAwTsRADE1k7VgljTIQBimw496AsEgEBaBEBs08IHnW1EAMTWRsWKF2pTR5VT455yig2JEnlQPSWuCm3f3xnhg17XVSOtMRAbU7wYBrXBg+PIVBkMQUSsLYOr/X9jMu3/rfO9bUw2kbaRv/W3IxwLxgjWGcdqYM+0KS19mYoP7AwkAGILI6JYCKT1QQvPbPM/TJZvOfm2oNYz08E85fmPprAi'@; put '0IyQ3+s4+JefuqQ5jceuVgsrO2tkA2JrjTpAFNknAGKbfcZZ9XDvtnNWqobvuqw6KWLjpY7DfutV1KsvArHNyigwxRaH+dsKc8Ns5KwQBqNWIQBia5VKpBjHA9u/dXdQ756RYnfoNgyBcvlzD6nI9eNrx/9MA1iZJwBim3mmYNGaBEBsrVmXhKMCsU0YVUoNS5SDf26IkmkgtinhG7YTiO2wiKBB'@; put 'gRAAsbV5Ie9/4byVIa0LbiNnqY5eeewD14x/bGqWzBe9WRDboh8CRQMAxNbmpQaxzW4BPdLoe3444Y9wmz5LmEFsswQWzFqOAIit5UqSXEDDiS1BLIQx1QXi+5a5YGH+RHmJHQMxS2f6/zloOU1yUVquNUYIY4wRFoIzgQznUBG62Ii7fzTxL7Msl0GBBARiWyCFhDSGJQBiOywiazc40DNbc+kK'@; put 'w55zZtduaLZ2FvmLblnb5EpMxJahxbZ8xY8mPlGfvwgL2zOIbWHXF7L7jACIrc1Hw4HEVgjOdcG/ckNt+79snmbWwl/RVvMlTtg/h3LgpGXLf1zx14asBVDkhhMR24CuHtlQvbazyFFB+jYnAGJr8wI+sP28FUG9a+ZQaXCdHztnUusbNk8za+Eva609BlM65JcRh1TaNHXCk7OzFkCRGx5ObB3M'@; put '2x3SNRDbIh8nhZA+iK3Nqzjc0h8d83HXV7W+ZPM0sxY+iG3W0CZkeFixlbxdIU07Cq5sE8IJjSxMAMTWwsVJJLThJkgZQjtubk3H3xOxVYxtFrXVfEk6wG1khZUumzbxyTnFyCYXOYPY5oIy+LACARBbK1QhjRhAbNOAhxBa2jH5fwgS/xjKCohtenyH6w1iOxwheL1QCIDY2rySILbpFXD5lklf'@; put 'FgIP+UwbxDY9vsP1BrEdjhC8XigEQGxtXslV2867x290TR8qDbiNfOACL91c9xXCyOtDXtmS0mXTKuE2crbeJiC22SILdq1GAMTWahVJMp5V2759j9/YM6TYqlz/6o217UOKSZLuCq75kvbJX6VYvAa3kfNTWhDb/HAHr7knAGKbe+YZ9Qhimx7Opo5JxyGEXwWxTY9jqr1BbFMlB/3sRgDE1m4V'@; put 'i4kXxDa9Ai7ZWnc85eQVENv0OKbau6mjakRY194Z6jxbByz9SRUt9LMYARBbixUk2XBAbJMlNrD9stbar2FKXx7KCmxqkR7f4XrDle1whOD1QiEAYmvzSoLYplfA4a5sYbvG9PgO1xvEdjhC8HqhEACxtXklQWzTKyCIbXr80u0Nt5HTJQj97UIAxNYulRoizuHW2cJs5AMXeLjZyC4Gp/5k8y0C'@; put 'YptNumDbSgRAbK1UjRRiAbFNAVpUl6a2mmMRYUNuZwm3kdPjO1xvENvhCMHrhUIAxNbmlRxObGFTi/SubEFss/sGAbHNLl+wbh0CILbWqUVKkQx36g9C4viG6s1DbtqQktMC6jTcbWQQ2+wWG8Q2u3zBunUIgNhapxYpRXL/9nOXh/SeWUN1hvNsD4x1uO0aHVJ509QJT8B5timNzuE7gdgOzwha'@; put 'FAYBEFub1/GBbec0BQ1ffbw0DK5rmJOvw+HxQxd5uCtbOIggu28QENvs8gXr1iEAYmudWqQUyX1bz1ka5r64V14G18Iy9f6vykWLadyzz0OYOuLWXSI61jgT8QKJvGb+jn59qPYpJRPTKdbXgWwyEj+n+H38/X/WeVhwrtRoPPTHoWwr1Lt4WsXTN2QiH7AxmACILYyKYiEAYmvzSt+37axFYcN/'@; put '/VBpECwhgpjNs8xe+BzpiAttSAcycS+YXvnsT7MXQXFb3ie2byvMXRqPBGzXWNzjo5CyB7G1eTVXbjtzoW4E4MorS3WUqGPedRVrb86S+aI3C2Jb9EOgaACA2Nq81CC22S0gJY47Z1auvTW7XorXOoht8da+2DIHsbV5xe/bevbSMO+D2bJZqiPFyu0zq9Y1Zsl80ZsFsS36IVA0AEBsbV7qVdu/'@; put 'c79f3/1jm6dh2fAJke+YVfn8bZYN0OaBgdjavIAQfsIEQGwTRmXNhr986bJHukPvXWLN6OwflUy9S6ZXPD3kBDT7Z5jfDEBs88sfvOeOAIht7lhnxdN9289dGtQ6Z2bFeJEb1Yxgr0PyLquvaplX5Ciylj6IbdbQgmGLEQCxtVhBkg3n8ccvpG+M3iWVKOH+WvrCStx1ssnaLfb2Jk/WXcbH9nn0'@; put 'iy5abRQ7j2zlD2KbLbJg12oEQGytVhGIBwgUEQEQ2yIqdpGnCmJb5AMA0gcC+SQAYptP+uA7lwRAbHNJG3wBASAwgACILQyIYiEAYlsslYY8gYAFCYDYWrAoEFJWCKQttmF95Ee94Z3eoaLDYVxeP6WlOyvRg1EgAARsTQDE1tblg+CTIABimwQsaAoEgEBmCYDYZpYnWLMuARBb69YGIgMCBU8A'@; put 'xLbgSwwJ7iOQdbFVZansxvHre4A4EAACQCCWAIgtjIliIQBiWyyVhjyBgAUJgNhasCgQUlYIgNhmBSsYBQJAIBECILaJUII2hUAAxLYQqgg5AAGbEtgrturbCvOUxkvBIXm7Qpp2VEP12k6bpghhA4F+AiC2MBCAABDIGwEQ27yhB8c5JgBim2Pg4A4IAIHPCIDYwmgoFgIgtsVSacgTCFiQQCJi'@; put 'i0LiyKl1z3RZMHwICQgkTADENmFU0BAIAIFMEwCxzTRRsGdVAiC2Vq0MxAUEioAAiG0RFBlS7CcAYgsDAQgAgbwRALHNG3pwnGMCILY5Bg7ugAAQ+IwAiC2MhmIhAGJbLJWGPIGABQmA2FqwKBBSVgiA2GYFKxgFAkAgEQIgtolQgjaFQADEthCqCDkAAZsSWNBaW45E8J0D7SAFS39sWlwIewAB'@; put 'EFsYEEAACOSNAIht3tCD4xwTALHNMXBwBwSAwGcEQGxhNBQLARDbYqk05AkELEjAfGar6upbMvOUxQvPPIgAbiNbsHAQUtIEQGyTRgYdgAAQyBSBRMQWTv3JFG2wk08CILb5pA++gUCREwCxLfIBUETpg9gWUbEh1cEEVm49s4RpvZTLClENJhyGX/Riod9Q294LvLJPAMQ2+4zBgzUIgNhaow4Q'@; put 'RY4IPNB++hjElK8KjC+gmNb4Qp8ezpHOorYuFQghPsL5hY+ccsm/e4IfvEwRXa0K450ZlWt8OQqzaNyA2BZNqYs+0ayLLQ7j8vopLd1FTxoA5I1AY/NkNkJhxxGqzPaFPj5DorKbEtmRaEA6V4MOWrITY/J7QvD90yY++3GifaHdgQmA2MIIKRYCILbFUukizNMU2TKZnhAwfHdSTGol6nCni0Ei'@; put 'zg8RMn6DdHTvdbXP70zXXrH3B7Et9hFQPPmD2BZPrYsq06U7Jo+iKp2ncf9ljCjOeMlzYWgG1zSBuIEQEv3/hzAmmFKCmUwwNW8vx/3Rufa2g7l/rLDO5mvHv6gVFdwMJgtim0GYYMrSBEBsLV0eCC4VAstbTzmCE+0xjPH42P5CCNGn7Xnfzcr+GtT61hHD8cJNp277JLrd0uZxo8JYP06RPZOJ'@; put 'YBcLJI7BGMd9r0jE/Qw39Btn1qz7eyqxFnsfENtiHwHFkz+IbfHUuigyXdo6uRYT47cYky9EJ8yFoUvE2RxSux8Mcve6xiktfYkAWbVjnBTQvIeGdf+tAolvK9RdGttPM0J+Fy19REP6HQ3VGz9MxC602UsAxBZGQrEQALEtlkoXQZ53d0w5RQjyMMf656LTDWm+lwlVfurylW+ccdaacKoozK0F'@; put 'GeFXqnrgJ06pdFSsHdXw90jY9XNFkhZOr9iwJ1U/xdQPxLaYql3cuYLYFnf9Cyb7pe2TJgW1zt+75ZGHRpIyuKZS6rgHh/hdmZwRv3j75LFM53cZXP8+JZISCzGk9b7mlcfM2FPi7Wg8drVaMJCzkAiIbRaggklLEgCxtWRZIKhkCCzfMvkLYS3wnMycX4r004xwgAvjbnffqNvTuZo9UBxL2iee'@; put 'rBt8oUQdJ8ROpjK4FlZoyTpMjDv2BLSXG6e06MnkVCxtQWyLpdKQJ4gtjAFbEzB3gBJC/7Mh1FOirmjDlEjfa6je9JdcJLe4teqbjCrLEeJHmrOZo30KwTlC9A+c8VvmVmx+Jxfx2MkHiK2dqgWxpkMAxDYdetA3rwSEQLipfVITwmhmZLYwF7pGBLmpobZ1SS6DW/nsmYrfs/smgfRpDlYyItY3'@; put 'RnQXIWRxSA+ugq0gP6OTiNhyLh09veIv8Aw8lwMafGWcQNpiq+ojPvaFP/IMFRnsIJXxmoHBfQTuaTvtEA1rbyAs9s8QFgI90Vu26+LGY9/Iy7PSxc0TxiJKZguMpkrU4YotFuf6fzGhd3K347G5X1vnL/ZigtgW+wgonvxBbIun1gWX6d1bTr1N5+ptkavakO7rZNR5yvU1HS/nO9llrbXH+I3u'@; put '+zzyyFNjYxGCG4bgWyXsmHvohyO2X3TRanNTjaL8AbEtyrIXZdIgtkVZdvsn3dTxjREyZVtUo++YSDaaoTXdUNcx2yrZPf74hfSdQ94/m2JpMcFk/+StSHw6Dwcl4nqaCH7HzJqWotwUY/62iSNJ2PjPgQ6Ph9vIVhnREEc6BEBs06EHffNGYPmWyVcIIR7+TGjD78tCqqif1PpR3oIawvHy5sll'@; put 'OlNvF5hfE2/rSCzIJ5hIi0pD6gNXTmkJWS3+bMZjB7E1vzT5R++SAmNGM9ITLCUyoiaTsC5zt673EM2nvYuQDjPOszlS7G8bxNb+NSy6DMxdnQQ6/OGAuufSSPIC4ftmV7dMtzKMee3jv+okJTcIrl8ab/tHr3zwS0Gts2ns+6WPFsutZSuLbf9Zx5LzK5KQr/Yqoyo6g+8frBp9I7m5lTYWiGIF'@; put 'OZjX71XGfCiE+lpfuGsdIupz145/+j0rj0OILT8EQGzzwx28pkHAPGSAhMULCKP+LRnN7RIxIt+9vm7L02mYzUnXRoGIs73mJCx4E6Py12OdmttKKrRkrUaCNzRMbH49J0Hl0YkVxfbe7eccSxGZRbF8mk/debB5KEUiiMx9t7nQwxJ17qBIukUTPdsaqrcEE+kLbQqfAIht4de44DK8u+O0UzQR'@; put 'WEMwk8zkJOJ4WSBykp0Od29snuxwSoGLQ1rf7V5l9OGxRVKNgE+h7l/qQl4wt2bdpwVXxH0JWUVsV+04xxXS1QqJOqf7QjtPlamzJB3m5hK0gNbziVcZvVx3Satg5nk6NAujL4htYdSxqLJYseXUei60pqikf3vYB2OutOOtV1NsREi9DmMyw8G85YOudDl/n1HncoLpQ3b6MpHogLSC2C7fcvKJ'@; put 'BEkLQ3p39VBnHhtC1wyuBnQeDplHMyKECMVMokR2mM/hhzqO0dzUhGBpi8Ska6dPXFvwdyoSrXsxtgOxLcaq2zzne7Z+49caD/1vJA0h0NTZNZsesHNai9urjwypvgedUukkSgbftlT1wBtO5r3GIfe8UEjn5+ZTbBtfv1Au83WfgYRYypF2dOz4Mbfc1Hn4n5jQjbqubuE88CZj7p2qEQ66VSY0'@; put '6nAgWTvIMPRjFNk7zjDUixiRv0CJNOi2c0jv63TS0lk91ZMeacSN3M5jFWJPjQCIbWrcoFeeCJi3+whyPtGrfnLafrFFxjmzq9ss/7x2OGTm81xl87hTKVWWUcyOjTeJihHpCYTETddVbPgHxv2n3dv6J19ia7L2ttfcbSDjqtgZ4poR6iOYNYeMvntvOemVdYkCNm06Wk88TWalDVyoUyI7m1UV'@; put 'AAAgAElEQVSPOaL7O5n3J9zfd++0BI94TNQ3tLM+ARBb69cIIowi8FDbuV5VxpuCevcJ+8WW46rZtS1bCwVUY/NkprDg/wqhLY13a1k1Ar0Sdq5yCj5/al1bl53zzpfY3rP1zDmq0bcIY0Ki+WlG8In//wbTGKrd/lojRildgZqi6+o4+YsOwpbrInxOtP3+OVRIPC8bnstmTFqzy861g9iTIwBi'@; put 'mxwvaJ1nAqbY6or0vF/bXREJhRN0+pzKTc/nObSMu5+/uW40Fv6ZCJPpCht8aD0S+CNMyJ0UK4/Y9XluPsR2efvJjboI3Rh9PGJQ9+2WsGNqqVN9IlO36c0vTW7ZuLJEPqjRr+06JHqAOGhpW5j3zayv2vhSxgcOGLQkARBbS5YFghqKgHkbmWL3477wR2dH2hhCmzm3pmNloVJb2l59eEDtfNAt'@; put 'jz4NY9K/oUL0T0jzvexio2d2q2qH3TZWyLXYLu845Tydh39DCfVGGPapu9+nhF1z06RX1mZjDK1om/IlHRuPEowHLPXCiP4LCfrd+prn8769aDbyBpsDCYDYwoiwFYGHmyc7VM+In/m1PZdFAidIvm1W9fN32CqRFIJd0Fo5WQh9kUwdJ8bOftWMUEAizieRwHc11NpnfW4uxfbebacc0xvuXacw'@; put '5/6lVn3q7vfccsl5s6u3/C2FkiTcpamj6lCK3Q8aQvtmdCcnK31D4331nRWT1sPEqYRx2rIhiK0ty1bcQd+99bRbDK7uF1cH8z76qdt5eeOxq/Ny0k8uq2Ee5Rf0dl6iGoF5bnnEwbG+da4GJaSswowunFW54ZNcxpaKr1yJrbmu2S1pj1PC9j9DVY1ApyDkez+p2ZbwJKhUcoz0WbL2dLfh7n5E'@; put 'Js5vRdtR9cBup1x6dVfF+qdSfU6cTlzQNzcEQGxzwxm8ZJDAPS+cW6NpPW0Rk2Gt70M3HnNCMU04adwxzuX0k1sZc14fb9ayEOJDIUij7HP+dsZZa8IZxJ9RU7kSW3MtbUjzNSvMvX+zCpWH5t5Yu21pRhMaxtjCHeNKcUh+RCLy/scgZhenVN4Z0rtvqK9q+UUu4wFfuSMAYps71uApQwTu237W'@; put 'WH+46wVG5cNMk+bGAUiwc2bXNj+bIRe2MbO8tfYIv+h9yMXKJscGbR7lF9b9bzho+bSG2g2tVkwqF2Lb1FHlNDhdTQndL3CcG+sNJL59Q217b665LGqr8eqG/16nVLp/rbgZQ1jv6ypxHHz5tIlPP5XrmMBf9gmA2GafMXjIMAHzVqpWGnwUY3FexDRG9A/11RsvybArW5gzD2boCbHTCGKLCWHH'@; put 'xga97yi/ZwzEb5lT3fJPKyWVC7FdufXMSiH0pwyhjjJz14xgH8POc2fXbmrOFwvzJKF3D9l5Bcbogej1uOY+3xJx3H3Yh2NuteOOaPniaQe/ILZ2qBLEOIjA0vbJFxAsVkdecEnl7wlNr/5x9dMfFiuuBa215YgHZgssfuRgJSNjOZhH+SFMFypG6NdWWZ+bbbE1l994JON3hJCLIzy4MDb0qeyb'@; put 'jRY4zvCOluOnUkxud0ql/V8EzB/zQAOFuhtxMNgEm18Uzrs5LbG97/ULPUqIfuQLf+QZCgkO4/L6KS3dhYMMMrECAfNWnEyU1wQy9s8slYiy4LrKdT+1Qnz5jGFRW80hEqa3GUK7nBJZiY3F4Oo7FEm3M5/70Xw/z8222N7TdtohksPbElD39G/HaAqZYQR/cP2kF36VzxpF+17WVlMZ0H1/jp3w'@; put 'hgV5UmD5yobqtZ1WiRXiSJ1AWmL7m1dOd6v6iI9BbFMvAPRMnUBT++SlCPMGhHD/OCaIfcyRGN9QvbFor26jaZpLhQgSyxmRj4/dKclsJxHns9wI3TCjuuX1fG39mG2xXd5+8skq9/9Voo7+CwLOjY8IMY602tF3d246/mQhxG898ogBm1+4pPLHdN47bXrFhj2pv1OgpxUIgNhaoQoQQ0oEFm+f'@; put 'PFaEgy9K1BH1AYU3MeI81647KqUE4gCd+p8NHvrhN83nuRjjY2Kb9i8Vwo4nOSO3zq7Y8Gam/Q9nL+tiu2XyFZzzX0ZmbBPMtjql7kmZ2iVquPySeX3e5nEH6zzY4pVHD6hTWO/7m8JKz4EvkcnQtF5bEFvr1QQiSoLA4s2V1xHKmiKbPJh7zzLCVh38/sjrYILJZyAX7ji1lISC1ziZd7bGg2Nj'@; put 'ETPs8AnEHyQGuvu62ud3JlGCtJpmW2zv3XrG3SoPzjCDNGdnU8QWdVefdItVN5CYt7XiIAd3PI4RmjQArMCvCY4vm13X/EpawKFz3giA2OYNPTjOBAFzZnK4xPdnSthZEXvmczmK6Z3dYXGn3bYvzASTA9lYumPyKKLyOw2uXxm9N3Ckj/k8l2B5gUcpeeTa8U8Fsh1PU0fVCFVX35KZpyyeL4fk'@; put '7eJcOnp6xV9Suo26tK1mEyGsX7h0roawoGfOrWtryXZe6dhfubWipC+s/tkhlZwSbSegdX3slkedDfspp0M3f31BbPPHHjxniMDSzRVfMbB4UqLOI6NNKswzhxHyQC5EI0Op5MzMoraKKRJx3s6FVhnvKDgHK2kJ6b2LfKWjN2ZzZ65siq05E3mky7FdM4L9J0RpPBwQyJh4Y+0Llj/E3ZwAKLj2'@; put 'S5k5L4geFJoe2ClL7svrq1rW52ywgKOMEMi62KqyVHbj+PU9GYkWjACBIQgs6qiaKHT9TzJz9W90EfXzHJbYtPoJG94GeIMJLGmv/hbD8jKO+BF430SzSCvzljzF8p8QN26ZWdP8ZjYmUWVTbJc3Ty7zoV2veZVR/WNCNYJ9MqWHN1RvscXsXnOXMNkvHlaY+4LoCW4hvbdLwq6r5tS2PZGNmsD7'@; put 'JDsEQGyzwxWs5oHAkvbqKg8b85ug0XVUtHsnK/MFjb5FmhG6Jx87BuUBRVIuTVEK08BcQuhsFmepEMVSJ0XSYr/huz/T/LIptnufB6N/yczZv+aYC6NXptphMyq3+ZIClOfGS9qrF1Is3RAdhvnFgRF56pyatt/mOTxwnyABENsEQUEzexBY2lo7LqB3/tGjjP5CdMTmc1yB0DaZOX809t2Sv8Pk'@; put 'qcH1NI/y6wl9usKrjD6DEdkxkB/nmhH6p1sZ03BdxTMZO4oum2Jr7kOs9al/c8sjvmjmYu7OpEieI+1wQEM0e3NG+b9G/+N2tzLypoGCG/C5pRGzrqtc+7A93p3FHWVaYpvIphZwG7m4B1g+sjc/wANq8A8uufT0WP/mB67O1Y2KVHq91bYuzAerWJ/mB/s7h+w8StV9D7rlEYP2Wza4Fg7pfa94'@; put 'pPJZPdWbtqV7So1Zq5CuvuXIwgSpvc9sPa2a0Vtp5mnGrgt+xk/qtlp6glS8cSAEwkvbKk/RRPgxBysZEWnDBTcEN37DMZ6Z6bsOVhiPhRQDiG0hVRNy2U/APFJNIl0zEcJzorfCizQIar7dXmXMQp2jh2GHnsEDxxQqiXRfpPHQ/BLloP27dEVa7r1KLPmdQfC82RPXvZ/q0DNv9aKw/h8H82Zl'@; put 'NvKy9snrMRb9s3r7D6zA5OaGqk0L7fqsc17bCWcig//aKZWNjmbuZGW/MkTfHNj8ItWRmP1+ILbZZwwe8khg5ea60WHCmzBGF8ebddsb/vS/HmXk9R45+IQVNzrII7p+1+YkHUeAXG4Izdy/d8AHvPl6UPftlqjzQdznWTj3G+v8yca7T2z/7WDe8nh90136c++2by5Tjd6GiG2C5I1OufMMO9d6'@; put '0eaqiRjjPzIqfS6aGcG0WaKOS6ZNfPbjZOsA7bNPAMQ2+4zBgwUILNg04WKBjUUK9Xx+8PmvQsjU+3vV0Bsbqtf+xwLhWi6Epo6qQ33hzgc88ugzIxuIRAepGaF/O2nJNWM/KGtL5nn40uZxo1Qq3syW2C7pqJlFBG2K1Nwjj3ozRAK1M05cs8tykJMIaMGmqhM04XvSI++daR35YcjRShm9CAQ3'@; put 'CZg5agpimyPQ4Cb/BMyj6LqD7PtcGHcozB27RKj/mZ5MvL/QmViUzq3R/GeanQgaBSKujuov6kbotw7mrYr1woVhnp/7moOUXZHoTkfZFtvlraccEeDd25ySp/9Unf7lTES6ZFbVhseyQyl3Vhc3TxgrKyXPcqT3ryOO/AiB/05k+i1Y7pa7WiTiCcQ2EUrQpqAI3Nc82RNk+lUCi9soYYNuX4Z0'@; put 'X6dMvQ8jhSycM75ld0Eln4FkGl//iqx0ur6vG+G7Yk+qMc2bz3MZcTwkGfyuGZNaD3gFOextZObp5EI+JtUdpMxafyI+XFPmOKR2b+pCOGjpQ/oefXq+TzzKQCnQgi2VX8CaYa4vPzHankLdrxp66Nszaja+lQk/YCN9AiC26TMECzYlsLi9+kgh+DyCyHnxti6kWPkHEfguEg4/CeeKDi7y/M11'@; put 'oykO34gQvlaiDndsC8GN9xBh87lb/t3cr8V/nrt3NnLYnCAV/5ltmmJrxtTUMeWksN77V4W5S81/q0aw10VHnjOjes0mmw7dAWGb5xhrRvczHnnkgLsNYd3/scxc35ldvbmjEPK0ew4gtnavIMSfNoElrbUVfm3Xg15lzHEYExprkAu+hWF2u1P2bbTzxJq0QQ1hYEHrieNcbOT1quH/VuyXFnMG'@; put 'sFsa1ebXulf2quKZ2APbTaEQIvBWNsXWnJnulIJ/lIjj7EgKGNFWQ+bfLpQ7F+aXFs0Qj0hUOSO6TBiRnYLz7zbUbmrNVv3BbmIEQGwT4wStioDAgs0Tr8ZI3CEz18Gx6ZrPc12sfDXi+u27qqretuqpMfks0+L26tMJJsuxIP+DMSaxsUjEtUY39J/2VNe8GuGXC7E141jWVnOWwPhJgun+L1OE'@; put 'KD+ZWbFukV2XAcXyNW+Z+1loFSXSd6O3dwxqPbsVWnrJnNpNz+dzfBS7bxDbYh8BkP8AAuZVUKmDzmBYWqTx4CA6BtdVSpV7ZIIXwJrGwYPH3HxhSVvVDIdUcr3OQwMOQjdby8TZKzD5hSHCi8ydnHIltk0dVc6wrj+qMNe5n13dkk4h8PcaajauK5S3gTl+FeJfpEiu/mMFIz/79lO+fG5d21OF'@; put 'kqvd8gCxtVvFIN6cEGhqm3IspdIKQ4RPjeeQYvkfHImbe0rKn87mqTg5STYLTpY2Tx6FJe0mXWhXS9TpiXVBhLQbYX67QfE6NdyzPfI8Nbadg3k6KSFfunb8U2lPVGvqmHxUQOtsc0nlB0X8+NXOD71s1Cmzapv/lQUMeTFpzhp3bJ5wHSL4LjmKvWr4fRJx3N5Q3ba8UK7m8wI4RacZEFv2sS+8'@; put 'c9DkiEg8sF1jipWBbnknYJ6Vq5b4LvA6xs7xq7u/HhuQeWvZq4x50q91roBJKIPLZX7oO9snnuikJbNUHro43vrcEnns33rCO78Wfdsz2pIptjrj/5OJdbHmVffi9vHTKHasiL6dzLDjhTAOXD23svXVvA+6DAVg5jq/ddxZQmgPRX+5MJ+hUywtdso9t8L8gwzBTtAMiG2CoKBZ8RIwb0ES5Lwq'@; put 'bPhvlqhj/1VRhEhY9/cokvfXOhULrp/YArv3xBkq5vm5BtcXSMRxAiVMjm1iHhOB8eCPI1NssaZ9+cc16z7NxAg03cxrOf5hh1xy6UDxF68yJF8xo3r93zLhxyo2FrR8fULQ6HukzHno0dExYST9FhMx126HMliFaypxZEBs6Ue+8EeDbhPBlW0q5YA+ViZgbv0YxGojQujyeEtdAlr3J25pxK2U'@; put 'OB6dUbnGVse45YK7uT7X3V12GhZkMSH0K/F8xoquQj17NEGPnVX55CeZinHJ2tPdyB1sxFjUR1/h+tXOj1ys/OqGms1rCuk2610dVYeqwV3PlDkP/Vo0w6Dme8Ell15UX9Xy30yxBTtDEwCxhdEBBJIksHhTxdGESYsxwufEWyqEEHqJc3RzX82mtemeipNkaLZo3j9ZSdNuYlS5nhImHegqV6Gu'@; put 'PZqQMiq2pj8zht5Qz30eZeTl0bewVSOwW6auH9ZXbSqog9nnr584MoA+3TTCdfix0bxVI/ASI95vz6nZ+K4tBo+Ng8y62OIwLq+f0tJtY0YQOhAYRMB8Hlm6dUpVX2jXg25l5FdjG3Bh6DpXN8nU9aOG6hbYbznOGFq0teKwcMj/kEceOegoRLO5eZVLMetm1FExveLZNzM9DPceJ/juFUKg5TJ1'@; put 'evffjTOCfTJ1Lmmo3nRHpn3m015jR9UIovke90ij+k9Bivz4wp++5XGOvXhOZfOL+Yyv0H1nXWwFUz4P+8wW+jAq3vzMU3HcquuH3NB+IlFlTCyJ/ue5zP1LrPMl9ZNaPypeUvEzN/er7vTTOl0Eb1GYu4IRxRnb0iONaNG5eqvfob001E5UqXI1vzQprePPZ0S+hxJp//pq88uSQypZperGrYV0'@; put 'BOOStce7NQdbKDPXj6KfWQdV325Z8lztr259Cu7GpDqaDtwvbbGVQ2xnb3jn/m+Fse6cdNTNqtHVzAUWCOlI54QjpO1vRjDDBIth49jbP7Uf077Z/0B+eAIxIMRQtA0ujP6YCKb99s38DvRDhsjhQLlxoQuTUWqZJ9crkTokYzHRmpk5xtqlFAvDENj8HfsaFyTlsRBriwhdmHGa/0/ZQF+Gvndc'@; put 'mn8XuggbQuv3S6W97bBBuUG4y/xNiDzSLZXcEzA6B9ymi/jrCX/yjlsecYcQ+E9wyPfgUWSKnret9qiA0fOASyqfEnsyk87VkGYEX3PL5dd1h8SLjVNaDvxmS2agmptetNYe4zd6nvLII46J7hrUul50OMvOnz1xc8pn9iYZSk6aL2mbdJHB/atk5tl/jrBmhAKcG8vd/tF3FsK+0TkBmYSTtD7E'@; put '73v9Qo8UIh/2hT8uScInNAUCBUHA3OCCC10TiHMkhCEzd/8H11Aza/cl/TIWeF6Pip6O3bqwIKCkmUT/phjtFWf+/x3kOymRv0Zits/sP+QAy09QxO+cVdue0bWx5jGCQrBHMCYnDUhDoH8ILK4utOVdi9omfNvFRt+rcf+AHdOwIE0uxXfLteNfDKRZTugeRSAtsX2o7Vyv4XR+AGILYwoIDCZw'@; put 'INHVudqqMM9VMyqe/08hzXzN5DhYvLnyalUE73JJZYOWW5lbEDLiWEV1x4o5UzJ3MtPCHaeW4qD/DxKVz4zOxZyp7JZHn9dQvXF7JnPMty1zSZaqBx6JPb0JI/YzSuS5MKs+cxUCsc0cS7AEBOISGEp0heAGxcoDKtPnwfrc+INnefPkMo0Gb2LMMSe2hUDmFg3G+xSRBb7yPb9sPPYNNRNDcNWO'@; put 'ca6ekHI3I9LV0fZUPbCbYuUHhbbl4cK2CcfqRvgvLql8/1pcIYT5DOVZB+eXTa1r68oE12K3kZbYrtx6ZolDKnkfrmyLfRhB/sMRONBVbkDrv2q61SW5f3/t+Kfg1l0MTPPW8sptk47qC/t+7pRKB97iRQiZh9aHNN8rCi2ZOreubdtwtUjkdXPiVk+A/YRSpTH6+XFY7+uhVJl1fU3HrxKxY5c2'@; put 'C1qPKw+ogfZy52Ffjo5ZcL2dY/e352ZoUxG78MhGnGmJ7f2vnl3ONM9/QWyzURqwWYgEhhJdUzAwpi8jTu7AJPR8Q/WWwacgFCKQJHIyt88MebtPE0jcJVFlwAYNphnVCPQy7HiSIL6gobb99SRMD3FHAuGFrRMuR0jcrTD3/nkpmhHsY9g5v1fDSzI9USvdmNPpv7R53CiV8tUOVjI52g7F0lZD'@; put '6JfBErZ06CKUnti2nl3OXO53+sKf9B/KDD9AAAgkRmDoW8tC6FzdrEhlM7orKv8OR/kN5mluSKHq4gpDhG53SqWjY1uYJ9zI1PNL2RCLZkxq3ZVYRYZuNX/T+LM4Uh92SeUDlnYx5LhPR6iglgat3FpRsifQvbrUMXbA2ueg1vsPr1J+wYzKDW+ky7NY+6clto+/fqHc2+uZjwQ7VOehgMG1/dPx'@; put 'zecpGCPOhcHNJyscC47NBwFcCIT2HnWJScySn30LOvi+qHB/W/Mn+mhMbq61OeDSD3Mhh9mL76uqQGb7yL8QwnGX4Jiv7/UjCBeYkwOyEQktFRrK1/DDbaB9My7eH/fev8fw6P/33vzi5zacv4G5D9c68rrge7+skf3+P4uLR/GOtfdZtAf2FLv8I7o1RnE20jXzx8l/gRQC7V3CFTVm9udojmOT'@; put 'O+HmkBYYmaPYHJjmX7kwiPl6/184xsKclcwFNgxz3COM+/9t/t18HWHOkWE6IkTCzpGE0Ckc952IKXXFkjCvnmTi/JmOlEVwCy/+OJm3teIgWcU3C4KvYkQetD7XMNR3EKY3+8s7/5ju89xFbRPH64b6hFMqPTQ6GoPrz0rM8YNC2mN471pc+pBDKrk4OldVD7zHsPvSOXUtbYl+RkC7zwikJbYA'@; put 'EggAgfQILG+tPULF+nyKpQtil7mYlmXqfksYxq17qqoehavc+KwXbppQzTFvUqhrQrzTgyTiWKMb4Z/Oqm55JZ2Z3/PaJ3yda6E1bnnE2AGRcNKuyOKCaQV0CIW5jzXb47jXxbzXROca0vu6FFL2ndm1G5rTG/nF1xvEtvhqDhlbjIB5mdzUVns0pqQJIXx2bHi8f9YyfRlhdGN9Vct6i4VviXAa'@; put 'myczWQqeLmNpGcH0f2KDMrimIsQeVRi5aUZlywepBr2obfyXKHauJZgcPsAGxlslQ/rOdbXP70zVttX6mdtZ/mfsW3co1H1jzP7RPoW6L6+vbnnCajFbOR4QWytXB2IrKgL9h363T7hA17X5Lrn0yNjkdR4OysT1a4H5IjipJf7QmL9t4kgc1mZyIX7slEpHxbYigu5GGN0uwvx3qe7ZPr914jG6'@; put '7n/Wo4waUCOK5W2c8UvqJ2x4u5AG7rxNX/shxnShg3nLI3mZm4s4qffmztLy+xuPXZ2RJVeFxCxeLiC2hV5hyM92BMwj4ISr59L/n9xwR7zzc0O6r1Mh3l9i4lxQSPv2ZrJQi9pqDkHCuEEg4wqZugbtcKfp4f9IVJmPsPpoKjO/mzqqRggh/RFjPCU6blUPviUT75UNtRtaM5lPvm0t6qiaGFK7'@; put 'V3vlMZ8fEIsQf2KG+8czJq1JeyJavnPMtn8Q22wTBvtAIEUCi5orDjOodgfB7EKZOgedGU2x8g+OtJuFCK1JRTBSDMtW3ea3jqvwsPL6sBE4jxJJiQ3eyUo3B7Sulb1lY59K9grN3G3Kw5UHVb3vu9F2Zer+WNX6ZvpqTv5jIT1nn7d53IkSlh5nVBlwRS+E2ECpdGkhTRLLxiAHsc0GVbAJBDJI'@; put 'wDw/lzK2RCD8zejDziMuhBDbERY/7a1qbYYTW+KDX9xa9U1KpGUY4wEHDZitzZ28ZOp+Thf63Pqq9f9IpnTmMiSElZ8Jblwy8Lmmv8fBSq/trqxbXUiCu3hz5YmaCD0ZOytbIq6NQkXfhSvcoUcPiG0y7yxoCwTyRMCcRLWg9YTvCCEWO6XSL8aGYS6vo9Txc86NOxuqN36YpzAt7baxebLDzfSZ'@; put 'DsnboPHAoOMQGVZ6EDLuC3N6dzLLrczarNgy5XaB+C3RACiW/aoevHNuXdsiS4NJMrhlHVUnKKT81yr3H7f/Cx8SwsVGNOuq/7JCmiSWJJoDNgexzSRNsAUEskxg34YO30eI3y4z54DTWkzX5vNcmbh/5pCUpdMrNuzJcji2NL98c93BgpJGQ2iXx7u1zDl/n2ByW0PNpocTTdCc3FbWcfJVBtIe'@; put 'jL7C7d8ZTOD5vTWtjYV012FFa83nVcz/xIg8PpoRQcoOZPDvzKpb/16i7IqlHYhtsVQa8iwoAndtmvA5hNSbJaJcKlGnOzY5guTXMRLzVTf5a6YPXC8EkOaylncOee9kwY0FMnOPi83JPDxewZ61GtJ/0lC9/rVEcu6/+7B5wmyJyvMoYfL+qz7BDUbdt3QFQwW1veOC1glHcK79zimVVkXzYdjx'@; put 'gi7QJQ3Va/+TCLdiaQNiWyyVhjwLkoD5PNenf/zzEuXgiYwog3ZR0oW6yck8c/Z4yl5NdgJQQQKLSco8cKAzIF2uc/8dLqn8IIxx9PZs5n7LPRJ2/tyQybJET2ZauHn8d3WuLnfJ5QM2v5CQc6mGREHNIF+4Y1wp8pOHZcl1fjTasO7/l4OWXllfs2FLMYyjRHIEsU2EErQBAhYnsGjz+IlhI/gr'@; put 'jzJqwKktZtgG18IaV5sdzHMdbCYfv5DmnsBhg16hGcFbHaxkZGyrsN7XRZG8otSlLk3kUPUl7dVf9Yf3PFHiGDtg5q5f71rvoJ5L59Z0fGrxIZVweOaRhL6gdC+lypXRnfrU3R84SMn3r5+0ZVPCxgq4IYhtARcXUisuAuYEIIJ23cSoY7qDecpisw9qPbtc8qjbekL6w41TWkLFRSexbJe2Vx/e'@; put 'G9p9b4njoLPibf0Y0nr/rtCSaxpqWrYNt/WjudtUUPU9U+I4eODmF4g9g3X1ykwckpBYVtlvZW7vKO9WlijMOz367oCq93XLzPm9huq257IfhbU9gNhauz4QHRBImkDj1ooSWdXvkqjjRxQzKdqAOWvZr3V+4JZG3Iax/hiszx2M13ye++6hH345pAfvd0sldbEtDK5rQa1rh1sZNW129ea/HahA'@; put '5uYXfrXvGbc8ojK6XXfwo9fKXYecW0g7gZmTxOTN46+UqHw/JdL+Z9aaEfQzosztrW5dVUiTxJJ9Y4LYJksM2gMBmxBY2loxzqfuub/MeejE2JDNCUAGN7bIxDOjvub5l22SUk7DNO8UyKT3YpX7G0uUg74Q61ztP5nJ9RA2jEX1k1o/Giq4Ba215f7wB8+OcB0+QHBDat/rTlp2bn1dYW3vuKB1'@; put 'whmaEfi5Rx51WISJ+ShDYd57///IqztmVK7x5bSQFnEGYmuRQkAYQCAbBCKCYYjwTW555NGDBcPf45DKH2WGsWBa9cb3hrs1mo0YrW7TfJ4b1ND3VSNwy6ATfxBCAa37E4k4H+SI3f2TurauePksaqvxYkrSxfgAACAASURBVMxXMSx/L/p187mmWy65eHb1lg6rc0gmvsXt1V9HHP2eUWnAHAIh'@; put '+DqMpR8U41pwENtkRhC0BQI2JRCZAIQFuZ0QOuh5rvlsjVHvQwLJi5PZ0MGmOFIKe97mcQczTOcIJK6Rqcsba0Q31LcpkZdKNPTIjMptg67eVj57phL0di6mhE0lmLFI/6DWvUvGjmv8ddueKqTbrEs3V3wlYPj/6FFGDhBcSuTNBjcuKTbBBbFN6W0HnYCAPQks2TTpi5jxJoSQufXj/g/8SDaM'@; put 'OP7JuT73kA9GrLnootXmUffwE0PAZBgW3ebh6nXxGAY130tuVvKjmdWbdsS7U7C4tWImJmxJ9PP0sO7voVhqCNRu+VUhCe6CLZVfCAb3PFfmOORL0RgNrr/gQK7zimm3KRBb+CgBAkVGoH/zhfbxZ5bIB9+m6r5Bz3PNvYI98pinekN7ls2pa2krMjwJpWtOBnK3VZ6NCVsc7/xcc+coiqQ/c67d'@; put 'PLuu7c1Yo/Pbxp+FOP9d9LF1OldDFEt3z67ZfGNCQdik0bJNEz5nEGoeYDDgmbVC3X/ThXbxzMrn/22TVNIKE8Q2LXzQGQjYl8C+25qXCCHmxdv60fzwd7CS3xoM3VY/fu2QE4DsSyD9yM3jEHVn1w0IiRkKc5fGWlSNgI9ix88Upt4Ze2t5cdvEOoMbf1WYZ/85seZsccTFQ706m9o4pUVPP0Jr'@; put 'WGjcMc6F+wJrvPKYSdER9am73y2XDz3juup1/7RGpNmLAsQ2e2zBMhCwBYEl7dVjsKA/EsiYQYk0aEMHmXreMWeXCiSvgvNz45d0wabxJyjMeZ3G1Ysk6hiwfaYQQnjlg17waZ+u6Csd86fonbzu3PTVb0vEdb9MnQdFLJvtGZFX4C7pJzPOWhO2xSBKIEhz3kBIE79j1HlOzC3ltxBml82t2VTQ'@; put 'u02B2CYwSKAJECgGAuazSM7C87Ag5zMiO2JzJpi9KhC+3SU5n7t2/FOBYmCSTI7m7fmFm080D5OfJzHX+HjPc2XqeU7j+k31VWtfithe0F49QVW7HvcqYwYsL+KCP+Zg8rRCOlDCFNy+cPjnDqn0omi2GLH/IoyvrK9a35IMczu1BbG1U7UgViCQAwLLOiadIBGlSefq5Fh35rNILowOiuTbejXc'@; put 'Wki3OjOJdklr1fmEyAsxRoPOzzW4GsKIPWogftMNte07Tb+L26uPZEL6MyLo+Og4VD2w1iGXXF5IB7Objy/Cpb3zKaYNA3P1d8vM/YOG6k1/yWQtrGILxNYqlYA4gICFCPTvonTIB1cHdd/NbnnkoRjhQZ8VEnE9jLBx53UV696xUOiWCWXv89w9N2CErpPjbJ8phPgQYXRnb+nuhxuPfUM1t4pU'@; put '9fBTDsmz/5xYMxku+EYu0UsTPQjBMgAOEIi5vSPahZZ4pZHTo7fFNIxwH2POy2dVNv+l0NZ8g9jaYWRCjEAgxwTua57s8TFdcjDHWJkoD4aNvgETWyLhBHXf7hL54LtIMPDQtCktfTkO0xbuFrXVHEIQ/wlC5IfRR++ZwZszvzUj/B9MyPU31G59sn89tM4eo4SdEZ2cX+38u5O4Lp4zadsbtkg6'@; put 'wSAXt1Z9U+Ohh51SyahIF3NiHsOsya0EGq8d/6KWoCnLNwOxtXyJIEAgkH0C5qH0WHIdjHV8iUydp6p68JiA3ikTRKhEnSXxNuWPRMUFN9fjbndK7plhvefvsN9y/Hot3DShWkPh+Q7qqYw9tN7gahghspoJfFtQVntQ0HjQIXsuiLbEhf5PxPH359S1vZj9EZE7D+as7KDe9zuvPPrz0V4pVn5n'@; put 'CDyzUCblgdjmbkyBJyBgOQKLt08eS3R0BUXk0rDRd7hMnYN2Rko0aI2HA1ig7UwpnX7Yf0v+CZtiDCZn3j51drlOEhzFPbQ+pPv2IIR+rQi2QjDlZoTQD6InWgW0ro8d1PuDObXtaxKtix3aLW6f8PWQau42NXrACUkIoY0Sly8rhM0vQGztMBIhRiCQYQLmrU2BtBu5oV7skErHZNK8agR7HVLp'@; put '7wUjt8P63PhkzdvFvaHgtQLjOS6pbBD/oNb1osxKV7lY6aVho/ekaCtBrXePQj0//PzOg/5aSF9o5neM+x83HvFrQ6gDNlqRqWcD14PXzqjZ+FYmx2mubYHY5po4+AMCeSRw77ZTRmq6qPdrXde65M+ekw28Xdk/41gzN1gIG71dGDGdIGwwqqCw0ScTzCSZukowItT8b4wHT54y7VGsPDSzat3V'@; put 'eUzX8q7NI/hUQ5+LEZ4uUacnNmAHLQmPdh+lvO/bv1Kov4nOw0GB8NJgzZbGQtresf9Oi6Y9RjCtQ1GT8mTmek1F/HsNE9e+bvmiDhEgiK1dKwdxA4EkCSzZWne8P/Dx417l4GPiCWRA6/rEr3W+7iCe+72O8mZfWPF9ZddoYbp548LV4iurL9z/efHG6F1YYf7PEyHOkqn74pDhPy56B6WQ3rvH'@; put '6SyfWD+hsI6PSxJ5ws3vajthvDD4CrdUVpNoJ4Nrqsycd82s3HBnon3s0G5p87hRkmPkbw0RHjBJzC2NfDNs+C6fUbl+qx3yiI0RxNaOVYOYgUASBMznhI7OkukI8dvlmKsn81xbzQhvxgg3obDRFmJef7JrZxubJzOF6V6Mtat0IzTXvOpVqHNZV+XGWwvpqisJ5Ck1Neuk7Hacr/LgwtgNLoYy'@; put 'aN59oJj+zCn3ziikmbvmhD1faHdrieOQcdG564b6jkMq++aMyjW2m5UNYpvS2wI6AQF7EDDXelKvdpvBw+ZWjEp01J3B918rlUbf4jecaxuntIQykZG59aOmB8+h1PX4DbXtvZmwWWw2FrQeV24Y6DqM6QynVDpo+8x4PDAiqyVKflxIu02Zt9g5Z48RQk6Nzplz423GHJfPqlxvq0MyQGyL7Z0M'@; put '+RYNgVU7xkm7/NoKhXqvoYRJkcQ1I+QnWJ7HtN4H6qe83F00QGyW6F2bJnwuZHQu8UgjzjTvFgwbvhAbCZevnFW3/r1h29qkgbneu5v6fuVk3u9Eh9wb3vXfcuWQb8+oXv83m6SCQGztUimIEwgkSeDuradeqevafZggZ6RrSPN9igid89O6Hb9N0hw0zxOBZa21xwQN34NDnZ8bHZYvtPNfZfJh'@; put '35pV2/yvPIWbcbfm7XVP18hpAhkLKZHkiIM+ddd7Hlb+nYba9h0Zd5oFgyC2WYAKJoFAvgksaau5SCD+K0bk/UJLsfyGqgd/MLeubVu+4wP/yROYt+nEi7jQVrjl8rHRM3VjLYW0vjddxHHarLr2grnCNXNc0l73XYzE7wimNJKzwY1XEeanza3p+DR5orntAWKbW97gDQhknUBTx6nHhbWu5xTJ'@; put 'c0jEmWYE35ao8r2G6tbtWQ8AHGSNgHkurBIgNxOMr4u3VOgzEdLeogh/1y5XfYkCW9JePQMjvNRcchbpw4jjibHvlVxg9TXHILaJVhnaAQEbEFjUVuNFQntOos7qSLi6oX6AiXT53JrNG22QAoSYAAHzlCBV6/2FSx4x6GSmSPeQ7utUSOnZs2tbbLlUZigMTe2TViCMZ0ZeN/eXVojrkulVax9P'@; put 'AF3emoDY5g09OAYCmSewcus3Zuk8tDzqCkelWPpRQ82mhzPvDSzmk4C55Mophc5CAt3BiHRcvP2rg5pvt0ceOW1m1XpLC1EyHJe8crqb+3paJOoYH3V1+09K6JRpE5/9OBlbuWwLYptL2uALCGSRwPId3zhYC/k6GJH3H0IeUPc8r4QPOX/uN9b5s+gaTOeZwOL26u8wrCxBiH8xNhS/uucDh1Qy'@; put 'zg7PNRPFuLS1dpwuws/LzFUe6eNk5cs+mfD16xtxI0/UTi7bgdjmkjb4AgJZJLByyzdu0EVoYcQFQfRtgfVv1ldt/kcW3YJpixAw91sOavQ2jMVURmRHJCyKpUe6QvrVmVpLbZF00dKOutsJIrdG4lH14Kdeh+tr0ya2WPLqFsTWKiMH4gACaRBYsfWUg/pCu7e65LL9V7Wc85vm1LbOT8MsdLUh'@; put 'gaaOkw9FwrhVIHENpfJWhsU5hbTZRaQki7ZOPkyova/JzFMW+ZtM3OdNr3z2r1YsG4itFasCMQGBJAk0tU26imOximDSvywirPs/8CqlXy/ED9kk0RRl85XPnqmoJb6TCaEfNFRvfq0QIew9rtD7Z4k4zo7k55VH/+Ka8X+8xor5gthasSoQExBIgoC5U5Qv5FhHCds/M5Vz/Z6+mvZZsDdxEiCh'@; put 'qe0ILGmdPJlS0RwJ3COP/rceDFZMrXumy2rJgNharSIQDxBIksDyzXUHh1HwFZm5R5tdzdNgGJYm19ds2pKkKWgOBGxFYOGOU0tFoOsthXn695DWjFCfh42aOK3qGcvNUwCxtdXQgmCBwGACK7ee8hW/2tMROeLOr3budMueiQ3VWz4EXkCgkAmYt8v18uA2JMTXInliwi6sr9zwR6vlDWJrtYpA'@; put 'PEAgSQJNHafMNHhw8Wf7xuK/1Fe1fAdj1H8WLfwAgUIl8PjjF9LdXwzfG9J6fhTJUZZK7pk+4akZVssZxNZqFYF4gECSBO7ectpjhlAv2nsLWVcxQj+cU9v+6yTNQHMgYEsCyztOnsWFtiyyqUeZ47C1PzjxkQEHz1shMRBbK1QBYgACaRBYsHn8PxXm/pJpQjUCPkKkE6+v6XgrDZPQFQjYhsCK'@; put 'LVMqdK61EUyZGbSEXe/Jkuf4a8ev7rFSEiC2VqoGxAIEUiDwsxcu+HuftuvYvWIb7MWYT7ihdkfBHLGWAhLoUkQE7mk77ZAQCrxDCes/fk/V/d2YlB97Q+3zO62EAcTWStWAWIBAkgRWbj2zBAn+mi5Cn49c2WIsf/mG2nZLfdAkmRY0BwIJE1i149RSzZDeVI3AGLOTQMLcmrRudvVmSx0sD2Kb'@; put 'cEmhIRCwHgHzgyagin8IpB9sRhfW/T0COY/+6aTWXdaLFiICApknYB7IcKh3zKu96idfNq0bXA0z6rikvqr5z5n3lrpFENvU2UFPIJB3AsubJ5fJLu/LYcN3eOTKVuLoq7NPeuH9vAcHAQCBHBBoFI1k1AsvPq/qvpMj7hhx1M+oXLsiB+4TdgFimzAqaAgErEdg+d8ml/GA8TLGJCK2veZxa3Nq'@; put 'Ot61XrQQERDIPAEhEL532xmLNR6cE7HukEoemjrhqasz7y11iyC2qbODnkAg7wQaX79QLvd1bzKEWmkGo/NwUCB69g217fu3sMt7kBAAEMgygbu3nHK5ztWH8L69wZ1SecePJzxRk2W3SZkHsU0KFzQGAtYjsHLr6ct1Hp4ViYwjfsec6tbbrBcpRAQEskNgWdspUwwUeDZytKBLGvnOx32dxzRO'@; put 'adGz4zF5qyC2yTODHkDAUgRWbvvG/4Y034OMyE4zMG4Y22fXtlXCDlKWKhMEk0UCTW1TjtWEf6tEnR7TjUzcPk2RD68/4YnuLLpNyjSIbVK4oDEQsB6BRZsnniew+I1MXV4zurDWt4s6vcdfb9FDtK1HECKyO4FFbTWHCB5+XWbuvWfbCtQnCflL11lorS2Ird1HGcRf9ATMDxoZs1aB0RH9V7ZC'@; put '1wjH5zbUtT1X9HAAQFEQ2Lve3Nihi/DRZsI6V0MKcZ4ys3pjh1UAgNhapRIQBxBIkYC5zpDgPU965BFn9n+pF0L8/1Xusj0VlTc04kaeolnoBgRsRWD+5nEvOZjnBDNo85hJh1Ry7nUVz621ShIgtlapBMQBBNIgsLjtpDouAs9EbiX3qXs+cLhGTYBbyWlAha62InDftrN/ETb6rooErVDvvbsm'@; put 'jp9plS+cILa2Gk4QLBCIT2DVjnGu3rCrhWAyIdKCYmXejMp1t8BEKRg1xUBg+ZbJNwkh7orkOsJ5+NP/7X7vfKvMSAaxLYZRCDkWBYFl7bUNGNNlkWRDum+PRx4xaUblhjeKAgAkWdQEVmw95XhV929lROmflW9wfecoTTryyiktISuAAbG1QhUgBiCQAQIrtp5ykISdm8NG7zERcwSR58JcveiG'@; put '2vbeDLgAE0DAsgSWtdZ+TUdqW2T5T7njc592hd76QkP1lqAVggaxtUIVIAYgkCECTR0n34iQsSBijgvDoITdVl/VMi9DLsAMELAkgRVbKw4KqOobDlYywgzQHPsuufSYqROeedsKAYPYWqEKEAMQyBCBJa+c7qaB8FNIoCkRk4bguyim/9tQ3QJLgTLEGcxYj8Dyv51XVmI4X+tRdx5mRicENwgi'@; put 'dfU1m7ZYIVoQWytUAWIAAhkkcPfW044Oqp3bZebZu8AfIeRXO99xOcecMbtiw5sZdAWmgIBlCJhrbcN69z8pkfuPmzTFVsKu6hnVa7dbIUgQWytUAWIAAhkm0NQ26SoD6fdTIskR0wTR17Hg351Z0/L3DLsDc0Ag7wQebp7sCLlL1gb1nkl7xVYIJyuZM7Xi6aa8B4cQArG1QhUgBiCQYQJL2ydN'@; put 'EsJ4lhLmjjatUO+rWJDLplY++WqGXYI5IJB3AvduP3u5qvftP5SjxHHoYwb/12XXjn9Ry3dwILb5rgD4BwIZIrDy2TMVURaqlZjn0t7wroslqrjimQ7rfe8rjpIzGyY2v54h12AGCFiCwAPbzvlm0PA9FRXMe4y4jptRucaX7wBBbPNdAfAPBDJAYOXWyYcFtNBKjMTpEnUMuJqNmNeMUMDJSj/F'@; put 'mP5V13pX1te1WWKWZgbSBxNAoJ/AkrZJV1GCfxHBUeI4pNMX6jy6oXptZ74RgdjmuwLgHwikSWBp+0kTEDIeIpgeF2vK4FqYEcd7Ahl/MAReXaKw9384br0PdpVKEzp0tySBFe0nTQjxwHqZukoiATqR97AfVz/9Yb4DBrHNdwXAPxBIg0BT+6TT/VrnL93yyEOjzZgiq7CSP2s8cG9v6e4djce+'@; put 'oabhBroCAVsQMO/waIa+A2N6UCRgQtjXZlVuyPscBRBbWwwhCBIIDCawuL36CsNQVyjMXRp51ZyBGTb6PpCQ43p/XcfjjRjBqT8weIqGwP+1d+fxdZTl4sDfbWbOknOSphuUTQGvCAoCaZOcpG3SdKOKChcKondB0UopaZO2FMX7MaJQuiVtCkJBFC4XvbYISIHSLUmzF1IuXBblB1xRsC2U7Ged'@; put 'mfd9f59JOSEcWrKd/Tz5w4+fnJnnfZ7vTHkyc2bet7q1MNene593qrnnhIu2sdySpTOeOJBoBGi2iT4CMD4IjEGgpqXkqhDvf2Dou7TW1SzG6GEbs/9kWf7+zjGEhV1AIKUFpES4tn3+PVyGbvy42bo3L52xsyLRhUGzTfQRgPFBYJQCm1tLF3iNzoccyoRTwrsGzb4uhbhuPOvw1D8uXryDjzIk'@; put 'bA4CaSNQ0zrvdon0/wgX5GAT6/wm/XqlZ0dC50iGZps2pxgUkgkCte1l53cHj+x0qZPPHtJoO6XES2+b/eL2TDCAGkHgswQ2tcz+Acbo/vA2kxznvNiv9M++6YId3kTKQbNNpD6MDQKjENjYUTIJBY3thLDBeY91HuinxPat1UWNdaMIBZuCQNoKVLeWLBTS3EkwZVaRE9TT/hpQ0aVLL/xddyKL'@; put 'hmabSH0YGwRGIbClde5ajoxbw7sIaRoCyeW3FLXeO4owsCkIpLXAuuaiPCTNvQq1DcwNzojtQ405L1yS9/iRRBYOzTaR+jA2CIxQoKap+Gwv7212qrkDk6xbPwYPPnZL8cHF8M7sCBFhs4wQ2NAyfwqSvpcoYQP/Vgwe8CrYWVBZnNgZ06DZZsTpB0WmssD27VfTw2f0VnERvA1jPPBvNmh6X2NU'@; put '++YtRa1vp3JtkDsIRFugpr4kR7HbD+rC/0/h2BjjeRWFDfuiPdZo4kGzHY0WbAsCCRCobi7J06WvTqUOlzW8zv19Gsm6rqKo/pkEpANDgkBSC2zruNwR0P0NApnTP05Urqj0NG5JZOLQbBOpD2ODwAgEatsW/tSUgV+EN+0NHu3QnNkLf5L/PLxLOwI/2CSzBKw7QZ2fMx8MmF3/Fq6cEdvm8oLd'@; put 'CX3XFpptZp2HUG2KCVS3LshVCNpviOBXrdSF5Bwj5ZqVRfV/TLFSIF0QiJvAlra5VVwaPwsP6FQm/veS6Y9/O24JnGAgaLaJ1IexQWAYgZqW0q9JLJ4Ob6Zz/1GVsrxKT1vCJ1aHgwcCySqwuXX21QKhwffOnUruCwibJUvydvoTlTM020TJw7ggMAKB2vb5600RWj14O4xqz5m8/8pKT1tCZ8MZ'@; put 'QeqwCQgkTGBTc0kBpaRNyOOTqdmY67BqGl+5IYFL7UGzTdjpAAODwGcLbHh5vhP3BeoIJTPCW0okf7TS07gN7EAABE4ucE/rgnNNLN7k8vhiV7rp7XGoU6xF5N9LlBs020TJw7ggMIzA+vqSU0K485BTzZ1mbWrNf0yw4+JbZ7b8HfBAAAROLrCt4/JJvlDfSwijgaUnDR70qcReXFHU8FKi3KDZ'@; put 'JkoexgWB4ZptY8ElAhn7wyv7EMTeCIng9DXFLf2ABwIgcHKB39aX2PSs3J0+o3NueCsu5A2rixsfTJQbNNtEycO4IDCMwJ0H8hZRQnco1OawNnUpU59j3g+uuL60IQh4IAACJxeoqi9hkx3OmhD3LgtvxbC6qbxw76pEuUGzTZQ8jAsCwwhsbC66khA2+IqPylxPiQl8cfkXdoUADwRA4LMFatvm'@; put '3qiL0FaCCbW21Iht100Fuxclyg2abaLkYVwQGEZgQ4vneoqV34Q3s7MJv3vfqVxfdcGO4099wA8IgMBJBba0ly4yuP4kwUyxNlKo41W/oXjWFD+VkK9hoNnCyQoCSSqwsanwh4Sqg08eO5SJD2L8txuX5B0ykjRlSAsEkkZgQ4unEEnUQImiWkm51FPe7dd7vlqZoNd/oNkmzakBiYDAJwU2tBRf'@; put 'TzEdvLJ1sOz/OurUvg9XtnCmgMDwAtWtc04T0niTYGK3tg6Z3u4skvvlm4v3Hh5+7+hvAc02+qYQEQSiInBX84zrFKz9J/7oO6cJ2unPdIf0qys9O2BCi6gIQ5B0FrirY2624T36mlOdOPD6j24G+h006+LyorqErJQFzTadzzaoLaUFtrSUfNnP+xs1ljXh+F/m/sMuzX3hsvz9sABBSh9ZSD4e'@; put 'AlUSEVfr7IMYozxrPFPoQRvL+mZ5wd498Rg/cgxotolQhzFBYAQCm9vLpgZCPYc0JWvgL3MphUBCXrJyZvPLI9gdNgGBjBaQEuFtHVc85De6/jUMgSX9eUVRXVUiYKDZJkIdxgSBEQhYt8HsBmnkMnTh4OaYXFNZWD84wfoIwsAmIJCRAlazvfeFy9cHzb7Bd2tt1P3I0vydg803njDQbOOpDWOB'@; put 'wCgEqupLbE7FeIIStnBwN4lqK4sOLB9FGNgUBDJWoLqt5Eec61sGn0jWpuz7waU75iUCBJptItRhTBAYocD6Fs8tDCvrwpvbmbuhlwS+dWvevt4RhoDNQCBjBapbS87Vue9FlTpcFoLf7PmbG02bXj5r17F4o0Czjbc4jAcCoxDY2Fpynmn6W1Vm/+ghKW+3xtxXVHrqD4wiDGwKAhkpsK656IsY'@; put '8ecZ0dwWgFs91R8S3muPTc97pgpXiXiiQLONpzaMBQKjFNjWcanj/f7gnixtUlF4V4rV6uWFe1eOMhRsDgIZJ7ChxTPF4MG/2Jhr4I9V60dIbmrUtVbqaGs8r3Ch2Wbc6QcFp5rA1raFJYYM1Ifz9htdRxzKhAWVnsZXUq0WyBcE4imwffvV9G/TDu+hhM2JHNend75rV3M32UPkwZtKG7yxzgua'@; put 'bayFIT4IjFOgtj3f3eXrbnTbT70oHIoR+z1dLlclzCY1TlzYPe0FNljvqxvHttmZ62JGtIHZpIb+BE1fm5O5V3WHxItVMVxRC5pt2p9qUGA6CGxsLrpMIvkEJYpm1WMthq0xx3UrCuufSof6oAYQiKVA1Wvnq1k9ORcFDd99DjXnksixrFvLIdPf5FZyly8r3PcqxkhGOx9ottEWhXggECOBn+77'@; put 'fFuu48yCwatbrL5uULxw5Yw978ZoSAgLAmklsLG+ZBJS+A8Vqq3k0siNLE6j7k5T6A8KBW2uyNt9JJrFQ7ONpibEAoEYCmxoKsjnyNyjUufAk5XWj5S8KUubsHBJ3k5/DIeG0CCQVgLrmoumEYRuJ5hcjzEhny6O/ZUS/Ivy/H0PResqF5ptWp1CUEw6C1gz4qxvzr9bobalQ+tkxP4IDQSXxuMh'@; put 'j3T2hdoyS8CaOzm7teTCPv2Du13a5MGn/T/+Q1YIU5gvOdmEpcsKnz04Xh1otuMVhP1BII4C1m2wfnT02Wxt6vShw1Kk3a87UeXqi/b44pgODAUCKS9gzdRmU3zfIJLeyah2TmRBBg/5bcz9uOTGL1cU178x1oKh2Y5VDvYDgQQJ1LSVfM7kxnZK2CcaLkH0SYlFRUVhwzsJSg2GBYGUFVjXXOSS'@; put 'wriZy9AKu5IzObKQgNn3YZaaW2swfu+qvIYPR1soNNvRisH2IJAEAlbD7Qkc3pttO/Xcoen49Z43s5SJN/ToorWqtMFMglQhBRBIKYFNB6afYRL6M4LxdylRB57+/+QPeYthdocpvX+o9LSNeG1paLYpdRpAsiDwscDa+kvO1dSsnQjj84a6CGmaWNIHMWG/qPTU/QPMQAAERi+wtiV/PpXs5wTj'@; put '6QRTOjSCtdylS52836d3bzntH5OeW7x4Bx9uBGi2wwnB5yCQxAIbWuZPMXnXkxpzFkam6Te6j7qVU+9Apv8P5bOa4j7xehKzQWogMCKBqvoSZleCi4Qw1mos6/zInaQU3MbcT5jE+Pny6Xte/ayg0GxHRA4bgUDyClS3FtrtbOr2gNn99cgshRQ8aPZ8MMl+9n2G7v/1zcV7DydvJZAZCCSngPVv'@; put 'THB6FSZkLcb4tMgsTTHwENVjCOm3lRc0vHeiKqDZJuexhaxAYMQC9zy/cLrk+DFd+s882U7WbS8hRSu2KVeM5eGOEScDdT3IRAAAH41JREFUG4JAGgtsODDr8338H7/KUibNVKjN+ek/btEbDjVnWdAIvljp2d019HNotml8YkBp6S1wV8fcbLuJ1wSMnqUqdWSfqFrd9PYw6viQIuUPQjG3rZzR'@; put 'CLNNpfdpAdXFWMB6PzeraeZ5Pt55f5Y6sfCEk2JI/GebMuHGpTOeGFwKE5ptjA8MhAeBWAhsbJx5viTiXkrYrE//dc1NjNBfpJS/IUTbDg9JxeIIQEwQQGh9c8E1GNF1BJMzIpuuQpzPkID/2vBkM9Bs4YwBgRQTqG4uylOY+2FD+D/xwIaUUtqYqz1g9PyGI/SHNcUt/SlWGqQLAiknUNt+mZsS'@; put 'tj9k9uUNJi9Rv8q065bl73k6/Dtotil3aCHhTBaoaZtZ5A31bHequdOGOoRM7+s26r6lN+f9vVUXvK5nshHUDgLxFNjaOvcrXrP3gMYcgwvUa9T902MzLl1bhasENNt4Hg0YCwSiILC+saAoJHyfarSmNJ5UOF1aMaspqquURCFlCAECaS9wR8NX/mRXc78RLlRI8Q7Scqavytv5iVmm4Mo27U8F'@; put 'KDAdBNa3eM4JGN11LnXK4BPHOvf3M2Jf79J81UvyDsGqP+lwoKGGlBLY1FxSYEr/XoXas6zEheScYmVphaf+/shCoNmm1KGFZDNRwHrqWPq6ntMU1+Batjr396nYXllZ3PhgJppAzSCQaIGBd28FOUCGzFGuEeeuY/kzvj709jHcRk70kYLxQWAEAtayelsOzl0nhLE6vLk1a40p+G1rZrauG0EI'@; put '2AQEQCAGAhubi9YSwm79uJkSH8ZK2YrCPSdcjg+ubGNwECAkCERLYENbSQk3fX9SqWNwwXiM6dYVBXXLo7WodbRyhTggkCkCtY2XTSYqPqgL3+c/brZ0e4Wn7pqTGUCzzZSzA+pMOYGB21SS7SSYlIWT7wu9/5aTuOevnv38X1OuIEgYBNJE4O62RZUh4d2IMR7oodw0OylBsyuLW16DZpsmBxnK'@; put 'yByBmrbZl5nceIISZWCZL4MHfQqyfbty5oGdmaMAlYJAcglsap5dasrAU+GHoqzsFOpYc3P+rvWflSlc2SbXcYRsQGBAoOq1q9Wcvu4/CmkMLi7Ahfm42xa8dkneIQOYQAAE4i9g3W1ixPV7U4S+GR7detVH5Vkzymft+syVtaDZxv94wYggMKzAxpZZs0wReFqlDpe1sTU7FMaytNLTNDjX6rBB'@; put 'YAMQAIGoCmxunXO1LgIPM6LarcBCcpNhbdkKz/5tww0EzXY4IfgcBBIgsPX5y/7DMP23h4fm0njTp6sXVpU2BBOQDgwJAhkvsP75klMUk+yRiH8ljKFSx06nP7D4+hH8u4Rmm/GnEAAkm8C2jssdAd1/QCBzYK5V61UfhPAvVxY1ViVbrpAPCGSKQHVraTVCoiJcL5bYiwiZXVFY9+JIDKDZjkQJ'@; put 'tgGBOApsbi79IsfmQYzJwLJ5pggFKFGLVnoa/yeOacBQIAACHwnc3TLnLMqymgO89/QwCsHq4z1B45qq0gZzJFDQbEeiBNuAQBwFNrXOuklKuYVgQq1hQ6b3HY2p51d62gJxTAOGAgEQ+EhgS9v8X3EZujEMIkyzkzBaWulpfGWkSNBsRyoF24FAnATu71h8p1d//8fh4bgwn1hd3HJlnIaHYUAA'@; put 'BIYI1LbOvTjAvc0K1RzWr62vdVSadevNBbs2jgYKmu1otGBbEIixgDU9Y237vBe41C+1hjJ40M+w4+qVxfXPxnhoCA8CIBAhYL2CN8nbv13ngcFXfUxpvCk0x/Rb8/b1jgYMmu1otGBbEIixwK+avjYBqeTlIO87wxrq+IIDquezZqaJcUoQHgQyVmBzW9k1XOiP4o++0uHC0BViLx/Jqz6RaNBs'@; put 'M/Y0gsKTUWBbx9zsgC4PCWSe81Gz7VeofTY8HJWMRwtySmeBmvqSHKShRonk4Ks+jNie7HK5r6m6YIc+2tqh2Y5WDLYHgRgKWLeRH37pXx7vCvz9W9YwQgouhbxt9cxmWOEnhu4QGgQiBWrb5pebMrQl/HshzE5G1a+tKKw/4ao+wwlCsx1OCD4HgTgKWM3214eueaBfP/r98LAY0Y0VnrrBJfbi'@; put 'mA4MBQIZKVDTNvdLCtGe07n3zEEAiR7p0/H3RvqqD9xGzshTB4pOJYHa9vnrTREabK42ln3P0hlPLUulGiBXEEhVgSpZRZwtu5+kRL08XINpBo8qijanorDxz2OtC65sxyoH+4FAjAS2tJf9kAtzcK5Vm+Les3T6zgUxGg7CggAIDBGobp0zQ+f9e4euIa1grfLmwj0144GCZjsePdgXBGIgsKW1'@; put 'tCwkAjsZ0QYmO7dR9+tL83deEIOhICQIgECEwNa2+Y8bMnTF4FWtNN600ey88oJdfePBgmY7Hj3YFwRiIFDTVHx2SAYOqSwrxwqvm/6eLM197rL8/Z0xGA5CggAIfCRgveqjc/9DjKg261fWqj5EkhsqixsfHi8SNNvxCsL+IBBlgbs65maTQH87o7bzrNBcGCGGldKKogNtUR4KwoEACHwksK65'@; put 'yKUS1iwRujCMohHXrpsKnl4UDSRottFQhBggEGWBjS0znyCYDLz+M/CD6S/7Cmb9rApXiSgPBeFAAAQQQrXtC1bq3L8uPCc5kqifYm3hcs+e1mgAQbONhiLEAIEoC2xuLVnCpbgXYzzwb5QRewfqwsXli3aFojwUhAOBjBeobl1wbsD8oM3O3JMG/75FdHuFp+6aaOFAs42WJMQBgSgKbG4u+qKP'@; put '+5rsSvZkK6w1uYWKtenlnn2wzF4UnSEUCFTVl7AJGruHI+OHYQ2Th95XmFo6nld9ImWh2cK5BgJJKLB9+9X06Jm995si9L1weobQnwkY2lVVpQ3BJEwZUgKBlBTY3DY/3+D9DfSjh6KsIihWypcX7tsazYKg2UZTE2KBQBQFNjYXfUci+SAlimaFtRaRV6ijuKKw7sUoDgOhQCBjBapeO19VP9Se'@; put 'tinueYN/1HL9DYUiT6WnrSuaMNBso6kJsUAgigK17fluIbJ2CWR6Pr66De3KsRlXLck75I/iUBAKBDJSoKZlzhxd+HYq1DawVq2QpoER+eHKoqaHog0CzTbaohAPBKIosKHF8wOC6H0YE/Lx1W3WdysK9z0exWEgFAhknMDdB8smhri+GyMysHa09aPRrGcdft8/Xx+Dr2qg2WbcKQYFp5JAdWuh'@; put 'XQj2FCFkbjjvgNF7jFHnojXFLR2pVAvkCgLJJLC1fd5yQ4RqEDr+xL+C7ZILlL+i6LkXYpEnNNtYqEJMEIiiwKam4osCon+PQ8mZMhgWo3aT4itumdFwNIpDQSgQyAiBmsaZp/plb4ddmTAtXDAj9j91BYLWA4hmLBCg2cZCFWKCQJQF1rd45mOJngo/LGWF183AQQ2r11XMbP6/KA8H4UAgrQXu'@; put 'aV94a4D7fhmewIJz4xgj6vyKooaXYlU4NNtYyUJcEIiywNrGSx7RmOu7Q8MSRNtMJL63ytPwlygPB+FAIC0FNreV5vv0nqftyvEJLKz5jxmx3bKicN+4VvUZDgua7XBC8DkIJImA9XSyN6Q/NvQ1BSs1r975bo596ne6Zsxsgekck+RgQRpJKVD77GWa33Vsl0qdpeEEdTPwukPFheUFB8e1qs9w'@; put 'BUOzHU4IPgeBJBKwGm7IINspVT+xvq3Bgz5GbNswtt1R6dkd1fcDk6h8SAUExiVQ3Vw2ExGzMRxESiEQxj9Y6Wn8zbgCj2BnaLYjQIJNQCCZBO6pL8nqpj2/cbDsq4fmJaWUAaP3Lac2cXlFYd2uZMoZcgGBRAtUty7IFdy3i1A6I5wLI9qTGtO+syRvZ8zfW4dmm+gzAMYHgTEIWDPfKB/afkAw'@; put 'uUNjzuyhIbgwdEbtBzAS/7GisP7gGMLDLiCQdgKbmmduwISsChcmhNmpMvvXywv2tcejWGi28VCGMUAgRgJ3tl56ntd37NFcx5kXEkzZ0GGsW8uUqI+rSPl5eVHd2zFKAcKCQNILbG6aeyZTWL0uAmcPJivRI306/l6sXvWJRIFmm/SnCSQIAsMLrG2avlDnvm0udfKZkVvrpreHYHU7o+4fw/e5'@; put 'w1vCFuklYC3q0XmWfmuA9/wyXJlhBo+oilYWzVV9hlODZjucEHwOAikisKHFM8VndG91sOxvMKLZItMO6L3/59BylvS6P2isuuB1PUXKgjRBYFwCNW2zLwuZvt+r9PjXLdazDYxoq5YX7q0eV+BR7gzNdpRgsDkIJLvAhgOzPi9o6CGF2GZF5mr9h8arH3s5S8m9cWVxS1y+q0p2L8gvvQXuPrjo'@; put 'KZ37Lg9XyYXxFiXywkpPWyCelUOzjac2jAUCcRIYWDqsy75MCHPNJ6Z5/Gh8U+hBjNAfNKb9tLyg4b04pQXDgEBcBWray64yTP8j7KO1arkwDULoj+Lxqk9kodBs43roYTAQiK9AdWthLhdoFZfGTSp1uiNHD5p9XRgpv2M05xeri/Z8EN/sYDQQiJ1AbePMyZyxOonEl8OjDMx/7HItrrpgR9y/'@; put 'RoFmG7tjDZFBIGkE1rUVfMmGs1eHzN5rGdHskYm5tFP+0qcfrRUO7T9XX7THlzSJQyIgMAYBKRHe3Dpzo0B4BcZ4YHlKJGQfxsrCiqL9bWMIOe5doNmOmxACgEDqCGxsKiomlNVKKS4Kr5E7NHtKtH0cyx+f/rec/1m8eAdPncogUxD4WKC2Zc45CnM0BHj/6eHfEkR+t8JT/51EOUGzTZQ8jAsC'@; put 'CRKw1sjlgnzfpU29zW90nhKZBkYkoFLnw6bsq15e0PhmgtKEYUFgzAK17fPvM0VoSTiAyUPvY0WZv7qg6X/HHHScO0KzHScg7A4CqSpwV8fcbKYbtxGEVp+wBon8hCq/IF1KTfmiXaFUrRPyziyB2ta5F/vNnjqVOXMGr2qxUhnrVX2GU4ZmO5wQfA4CaSxgfbe1sdVzAcOOm00R+HdKmBpZrlOd'@; put '8qpf/3CrRMFH4v26RBrTQ2kxEPhtfYmtz679FxfBfw6H58J8267Y8pfl7++MwZAjDgnNdsRUsCEIpLfAxpZZsxCSGwgmgxO1hyu21vxUaVajQObPVhTsa05vCaguVQW2tJddGzL9vw2/6mPVQST94YqiugcSXRM020QfARgfBJJIwHo/19U7ZT7FZK2QfPCViaFNF0uyExP0s4rCxlcxRjKJ0odU'@; put 'MlhgY0fJJBISexHGXw0zKMT+lCF6r02GOzLQbDP45ITSQeBkAlbTdfa4fyyEXK1QmzNyOylFn8ocWzEyaxJ9ew6OIghYAjVtc2+U0vhVWIMiJUQoLr45f29HMghBs02GowA5gECSCmxuL5saNPu3qcT+zROlaHLjQ4bpzyuLm+5O0hIgrQwQqHmh7GzG2W5DBM8dbLZY++Op72ZfkyyvsEGzzYAT'@; put 'EUoEgfEIWKumvDPt7wv8oa7Nbvu0L5zgKpcr1NHKublmhWd/O9xaHo827DtagSpZRRzNu/7IqO1b4X2tVX0UwuZVFre8Ntp4sdoemm2sZCEuCKSZQFXHpQ5H0HZ50OzelKVOPi2yPFOE/Bipj1HCflLpqftHmpUP5SSpwOaWsukh4W1QqM1hpWjNf6xgddWKovraZEoZmm0yHQ3IBQRSQKCmviRH'@; put 'Z97lXPJyG3PnRqasm4EjCrNVG6r6wK15+3pToCRIMUUFql67Wp3U3/+oLgJXhUsImt7/zeauoptKG7zJVBY022Q6GpALCKSQQHVr4WlevX+rnbkXUaJokan79e43XbapK7pdOfsSMfF7ClFCqmMUqGkrvVJK8cfw7tYrakjKG1YVtzw8xpAx2w2abcxoITAIZIbAXQcKPZSSaoLp9MFJ34eUzoi9'@; put 'wRT6morCuhfg+9zMOCfiUWV164JcJAP7h77qw7D6uCm9302GV30iDaDZxuOsgDFAIM0FqupLmFPVvxYw+u7OUicOTv4eLptL01CIfadEbGVF4XPvpDkHlBcHgdrWuStMZNQMXtUK3s2wtmBF0f4X4jD8qIeAZjtqMtgBBEDgZAK17fnugIErJRKVKrW7Irfj3PjQruTcpwteU+nZ3QWSIDAWgS3t'@; put '877QFzxS5xzyh521qs+09yb9a7K86gNXtmM5srAPCIDAqAQ2HZh1hk92VmvUeZlC7Z+aFCNg9r3t0iYuDxiBxjXFLf2jCg4bZ7zA5tay+wQyh67qcxQryoJEruoz3EGBK9vhhOBzEACBMQusb/GcY4rQvRpxlJ1o/VxfqPNVhzK1/IzDuY3JekUy5uJhx5gIVLfOmaHzvj0qdWZbA0gpBCO21csL'@; put '91bHZMAoBYVmGyVICAMCIHBygXWNhd8ypO9eO8uZijH+xH93TBEKEET/QAX5Se/MsvercJUASxA4kYC1StXaxot32xT3vPDnhjD+n2qo+RWlDT3JrAbNNpmPDuQGAmkksK65yCWlvhwhdItKHZ/6PtdqugiRR20se2V5wa6+NCodSomSQO3BsplBw7+bEdVuheTCCGGEv7+quOXRKA0RszDQbGNG'@; put 'C4FBAAROJHBX8/QLODfW2Zh7UeRVrpRSOtXJL+umd3VXMNRQVdpggiIIWAK17Ze5De6rxxhfEhZhxPbkKX93X5UKX0FAs4XzGARAIO4C1u3ADS1FxQih9YywgsgErCsWhdrrJZK3VRTWvRj3BGHApBOoaS27SUi9Nvzdv+SylxJlXrK+6hMJCM026U4pSAgEMkfAmm/ZFqT/kqVMWq1z3zmRlQvB'@; put 'ezTmepibwXtXFNe/kTkyUOlQAWv1qb7g0eez1Elnhn9PMP3vFYV1304VKWi2qXKkIE8QSGOBDS/Pd6L+wBohQxUKtWdFlmpy/RgjyjpGnQ/A97lpfCKcoDTrLkjtwbkruTA2hD82TP9hhdkXVnoaX0kVDWi2qXKkIE8QyACBtU3Tz7Yz90qDB26gRFEjS87WTvlLd+hozcrCAw/A1I8ZcEIMLAo/'@; put '5xK/0b3bztyTwhUzzJaXF+5PqlV9hjsa0GyHE4LPQQAE4ipQJRFxNhdMx4TVEkxnRA4upeCU2Oq4aa5eObP+5bgmB4PFVaCqvsRmo96nVeYsCw8sBP8rsrEZq/IaPoxrMuMcDJrtOAFhdxAAgdgIDKyfG2DftSu5qw3hPzdyFOv7XIU4fi2wfk9FYQPMtxybw5DQqFta55UFeO8Tn5j6E9MbKwvr'@; put '7ktoYmMYHJrtGNBgFxAAgfgJHF8/138Tl0blidbPtb7PtTFnLTJC28pnNR2LX2YwUiwF7j5YNtFvBJ5mRBl8Wl2lzp1Ov3/x9aUNwViOHYvY0GxjoQoxQQAEoi5Q0zjz1BAO3E2wsogR1RY5QEDvPqxR11a7qdydbAuHRx0jAwJWt5QuFUjfTDBTrHIxwj6KtDnlnt3Pp2L50GxT8ahBziCQwQJ3'@; put 'NE4vCxgfbM6xnfklggmNpFCw41UuzdtJD3uqfNGuUAZTpWzp1lUtF6iJS/NL4SIYsf+pK7/gylSdzhOabcqejpA4CGSugPUQla0p/3JTBu5zKBNOiZSQUgpT6B2a4vzBioL9/5u5UqlXufWqz9bnF67STe+dBFM2UIGUfZTSOcsL6g+lXkXHM4Zmm6pHDvIGARBAd3Vcmh3o7d+sKa5v2ljWhEgS'@; put 'U4T8EuGn7dj+k/KiureBLPkFNjXPLjVlcKdCbQNLM3JhGip13Jrsq/oMJwvNdjgh+BwEQCDpBTa350/1Br13KTRrsUJtjsiEDR706dz/ikPN+WmW6m9bknfIn/RFZWCCtc9epuEJ/PeGDF0RLt9a1UchrsJKz+6uVCaBZpvKRw9yBwEQ+ITAna2XnodNtAYhfIXGjq93OvTHWuhAIvEGRuheVdof'@; put '6zSMD2Cxg+Q5iba2LSwJ8J5nGNEG/mDiwtQp1Zan4qs+karQbJPnPINMQAAEoiSwscVzltforrZT98ITXelaw1hXuypxPE0xXecKmX9OxddJosSVFGFqOhacinT9OYnEheGENJr1rN9mLF590R5fUiQ5jiSg2Y4DD3YFARBIbgFr+kck5BpMyHXqCeZcDmdPEH1bYvSIoOw3ldP3vAdTQcb/uFa3'@; put 'lW5BUpSHR7ZW9dG0rG8sm/FsY/yzif6I0GyjbwoRQQAEkkjAerp17fMzclFQ/6lE6Lt2JXtwjt3INK2l/UwResfO3A8yibf7ZKhrTXFLfxKV85mpbOu4VEFogsPgklGT0n5FJ0qQY8NGpSqoNBnnPOgOrSl+Kqlqqmlb+DkbVVsCZu+0cIGMKDtQl/Iv6fL6FjTbVPlXBHmCAAiMW6Cm/qs5QUYW'@; put 'S4GWKcx+Hv1owoQTBbZuMzOiee1swh6d+/YRotQhhPoSueqQtToS9WGNEFNBBtaoSs5lRPsCRuSrNuY+3eDGNJ17J+tmX5YuQkQiMfjfeOvr6ix1IpcSfTjBfvobhgh1h8y+twSnj9k4f+/7CWzAW9rm3cul/qPwcRCCd2GpzEmnua+h2Y77ny8EAAEQSDUB6wqwL+T6Ijd9twtszj7RNJCRNenc'@; put '3ysl8mVrU17RpdGgUdtugxvHOBPcFpKcaNkhtd8Zur70oVFPJfjb+n+3CaVLkURTuNqnmcLGpGEQQlm2RMY/SYRnEMIulFKc1hN8b6r1/inGmFKsapQo2nj8rT8qnGruMYU46rjQd0rM2xl5v3NJ3iFjPHFHum/twdKL/KH+BpU5c6x9pBRCpVlrluXv2pROt/Oh2Y70jIDtQAAE0lLAem0oYPCv'@; put 'ZSmTvu03ugsUavvUeronK1zngT400Bwcerbt9KMqdbzNkfG+Yfr/RiR52RB6jySoH3MhqEKkkIIhRBWExCSKqWYI/iWHkjNBIvk5hm2nBY3eM3pC/3CZIjgwmQNGhI4mn2gcoJDp7861n9FkysCvHb7A3lg+OFZVX8Im2tTtQ1/14cJ8i9vsebfm7euNRj3JEgOabbIcCcgDBEAg4QLr22d9AZv8'@; put 'KkbUqwwRPJ9gqhBMPzUlZMITPUkC1lWhRFJYyxBKJCUa+P9yYGuMMbb+9/gUl4RghMnx3534R0huutUp9Qb3387YsYOxuNKtaS+7yjSDj1LCBtYutr4zZ0hdVlHc8OtkNR5rXtBsxyoH+4EACKStgDUdJGooUR1KYI6N5SySUi7SuXfaeG/ZRgvMakoKcXQRjI5QqrXrPHCYmwGvIQIfcsTfZcT9'@; put 'jkqFty+k9Q0dU3X4s4lunG5yfiYjyufsWm5xQO8rUqnttJPlZjVujblekdy4Mytk7IzWla61Vu0EGz3EpXl+eGyNZj2zdMYzl6fT7eNwbdBso3X2QxwQAIG0FahuLbRjk+UEcahAY7ZLNOK+pD/0/vkCmW6F2LMoUQauzKL1Y32Pago9YGMuL6XqEYbYC0He9xZC6GVpsne5U+2agLqNI/azzaoL'@; put 'duhjHdd6UrumrdCGOT3VIPhrutFf7lCzP7V2sBXfutKVUh60kewbb/Y8+8pYxwzvt6Vt3o9MEfrV4NW1RP0atS+6qeC55vHGTsb9odkm41GBnEAABJJeYFvHpY5OTu1KCJ/GEf+8JORUjdpzGVJPVZnrLILIWbrpzzFkUDOFQax7uAgjoRG7oSouv5DysJDme7rpPyIx7xZcD5hC9yLMj1JC/mow'@; put 'ckTpyQn6VD0Ur1muqjouddh86ldVpvxbkPdfdaIHx3Qe6Lez7EelKdeumLnv72M5UJuen3+GItB+U4S+EN7fetWnK2BeF69ax5L3ePaBZjsePdgXBEAABE4isH371fRvX+y1aQFKeSBANGbikMmkrhhcIdPMSs+OQDLjbW4qOjMgA9WUqJeFp08cmm/Q9Ha5tMm/lBI/OJrXoSyXI2f0buUydGM4'@; put 'nmEGj6jUvqiiqOGlZDYZT27QbMejB/uCAAiAQJoLbGjxfJkRezUXoTknelgMY/Yywfhn3QHzmZFclVqv+vhC/QeGzl3NkFJR7tm3OZ0podmm89GF2kAABEAgSgJ3NU9fnKNN+7HP6L4Io08/xexUpjweNHo3Lffsaf2sIbe0z3+Mi9A/h7cRUrzjEO5Lls58pjtKqSZlGGi2SXlYICkQAAEQSD6B'@; put 'qtfOV909U2/gUv8FJSw3MsOBp6Spcxsj4vZl+fs7Iz+vaSm7ypC+h4felsaILKnw1N+ffNVGNyNottH1hGggAAIgkPYCNU3FZ+vIvINgcuWJnsRmxPYGFuh2A/U9UelpG/hu+q6OudlKSK/HGF8cBlKw9kSnO/va8TxRnSrY0GxT5UhBniAAAiCQZALVzUV5PaEPfuXSJl8U2XSPvyok2jWSXY4I'@; put 'elsI/dumDN1tTTU5UIZEfUgST2Vx/WtJVlZM0oFmGxNWCAoCIAACmSOwvrloZsjsfcCpTvxiZNVCCm5Xcv6uYtXdb3w4Mfw5Repjyz17r84UJWi2mXKkoU4QAAEQiKGA9X2u2mnfyIhyAyOa/bOGEoJ3U0qKKgob/xzDlJIqNDTbpDockAwIgAAIpK6ANSPVXe0FZxFTriWYXnGy6S0Voq64uWDv'@; put 'ltStdPSZQ7MdvRnsAQIgAAIg8BkC1sQV7007fJ7A5E6CyTeGbqrz4OvI7vKk26o+w50Q0GyHE4LPQQAEQAAExiRgLaGXpfAbhDRvZ1SdTJGiE8wW3Fz4XMOYAqbwTtBsU/jgQeogAAIgkAoCtY0zJyNVu19KkhXktivXFD/Vnwp5RzNHaLbR1IRYIAACIAACIHACAWi2cFqAAAiAAAiAQIwFoNnG'@; put 'GBjCgwAIgAAIgAA0WzgHQAAEQAAEQCDGAtBsYwwM4UEABEAABEAAmi2cAyAAAiAAAiAQYwFotjEGhvAgAAIgAAIg8P8BcbF+IvaVe9EAAAAASUVORK5CYII='; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64) filename filecode clear; %let filename=select-table.png; filename filecode temp lrecl=47784; data _null_; file filecode; put 'iVBORw0KGgoAAAANSUhEUgAAAdsAAAGTCAYAAABgcbg1AAAAAXNSR0IArs4c6QAAIABJREFUeF7sXQecVNXVv+WVmdm+gKBgRY3GLxqlLNsQY4nGoFGDGhOjsVNEqiXFoKJIEdTYiCWxRlEESyAWBNkCKGpMYo0FQRTp26a89+69X+7Mzu7b2ZmdXnb2zC+R3Zl7zzn3f+7b/9xyzsEIXoAAIAAI'@; put 'AAKAACCQVgRwWqWDcEAAEAAEAAFAABBA3ch2ycYrSpqdjKrEgYvaAbK4JuSPJvP6/3Ux3f9vKl4mc3eTZZTELr+ItfVoSwstiOsLhdbk67G9Sl1xyQvg1n2ModjZ5bppwAaVOvz/KsToprMnn4Tqi4ZnpDEnMtZY50QsmMQqK1y74Jij+dPeN3S8oX4I+iKIfbBvLM9FT+ON5p9oczwWnOJ9Duwy'@; put '48EwFltiwTw4/+1z30van4e2wPPgpSZWiO7/mfk8hGjU+8uj798Trw3QHhDIBAIdf8SXNI5zGq7yvzrVku8TTDVKVAUjQjHCGOMAKQuBhP+39pdAnWSNEepGekKIsEQopKT2V6BfZ7PgL+3v2PrHy++ddgYNxn57O3nLbn9ksANy4mVY+xgjjdWPKeq0E0mspS4/3lii0q7b3kb2acdPCG63O4Bd'@; put 'AKcgrl3ADTPILoC09+wJFzkf4p2Ydrvi7Rtve2ybWz341P9R13FiTNpxD37WPu3lgNvHTBBCAcjlmKQfgvPePtcDHgg/90Nt6vrciK4PQ+dzFvwp3ocgMJs6n7Uu6mP1ZWzPSUB06PPck/+6zv1g/y7zyz9e+R/p1/Z574deyDe4fI+zgF6iMeH9zBJt55x71H2t8c4baA8IpBuBjgfxkbfO39+H'@; put 'PJ95rL1aupWCfEAAEAAEUo1AodYfKaR4n0uO+8uOVMsGeYBAsgh0kO3ijecNFcL7kdvcqyYrFPoDAoAAIJBpBCTZEoP0u6zq2d2Z1g36AIFoCHSQ7QPvnXMYstiHbnOPEq0TfA4IAAKAQK4hIMnW8njLJ9T+Hc5tc805YE/nUeRD74w71OLmR0C2MCsAAUCgNyIgybaNsrKpxy7f2xvtB5vzG4GQ'@; put 'bWTfx0C2+e1wGB0gkK8IANnmq2fzY1ydF6TePvsQA/FPgGzzw7EwCkCgryEAZNvXPN67xttBtg9uGHcwI+anPZEt46ZPIG4PN+kI7rFf2O8MeuiIVEggZKF3AZmgte34+4Mwgj93hPtQouo9yWXcMgViZrsT8hTj2EJoAlEncUUl2RoHfmyfw1KOdAcmWNHsoW7hfGFxn0eIQPhJ11e4EKmYxxJO'@; put 'VbzjS3BKZr2b/ZnwuyXwH0ykXyhRI0ZLANlm3XdgQA8IdPzBuf+9nx2ELfTfnshWI/opFmL/kvKIYfBW3ddBvJrbhYVmyEBEpFIW01+9tiRcozGas+RixmhbECf5r0GcWPXKfzlWiY5VpBSVuoY8tcP9+bHhYBIyxhbT3zBFvGp5GZN4mIrV5Y++Thn29uALzd3pJ8OWrCNW/4WzK9axJ+H6HrtG'@; put 'sz34ueHhGKGCgKz2f4KChWEShVFKNO2nnBv3RiJcl1q6wmDGTB9r2okNjRPdx32MCoelCK9idTwD0g9B2T35I3Rgdv/YP7P7Kls4pkJvpLlify6kHtlOqBpRGR4qBK+PpFuSbekXRDn33GfDfPlJhcUgAxBIHAHbme24A4QwP+95G7loyLSql7cmrg56xorAkg/GaYgPeuXrln+NCU+2nCMujpxe'@; put 'W/9prDKhXXwILGo4sZIh31qCadgb+i6t/MGrhi+7Ij6p0DpRBO7ZcGI/g1k7gWwTRRD6ZROBDrK9960z96cYf9ET2apcG3x1zWvfZNPgvqJ78cYr1BKHvvKb5n+dGIlsGWKHX1vd+HlfwSTT47yjfswoga16gikNp7tA7f/IlSOWXpppu/qqPiDbvur5/Bh3XGSLEB0yreoNWNlmwPexkC3G1vem'@; put 'Va37LAPm9EkVd647ocLiZkMksi3UBz1+xbBnft0nwcnCoBc2/rgcIe8uWNlmAXxQmTQCnRek1p89hFH+Zc/byEC2SSMeo4BYyJZwcdjU2vovYhQJzeJEAMg2TsDS3BzINs0Ag/i0ItB5Qapx3GCsmpuAbNOKd8zCJdkWadqKba3/PinSNjK38KEzj1/7ZcxCoWFcCATI1mogmITdRi5S933i8hFP'@; put 'XxiXUGicMAJAtglDBx1zAIEOsn343TP2Mxn5Csg2B7yCEAKyzb4fgGyz7wO7BUC2ueUPsCY+BGy3kc/eVwi+Gcg2PgDT1RrINl3Ixi43Ktlqg568fPgzv4pdIrRMBgEg22TQg77ZRiAusoXbyJlzF5Bt5rCOpCkq2cI2ckadBGSbUbhBWYoRsN1GHjeIYnMLhP6kGOEExQHZJghcCrtFuyAFZ7Yp'@; put 'BDsGUUC2MYAETXIWASDbHHVNLGRrEHPoDZXrN+XoEHq9WQsba0dyIRoh9Cc3XAlkmxt+ACsSQwDINjHc0t7LH/qj6Su/aY2c1ALINr1uWNBw/AiE2Dog2/TiHKt0INtYkYJ2uYiALc72jIGMkq9hGzk33BRLnC2QbXp9BWSbXnzjlQ5kGy9i0D6XEOiMs33/rH2wIbYC2eaGe4Bss++HhfVjhnNs'@; put 'rY+0si3SBj52+fAlF2Xf0r5hAZBt3/Bzvo4SyDZHPQtkm33HANlm3wd2C4Bsc8sfYE18CADZxodXxloD2WYM6oiKgGyz7wMg29zyAViTOAJAtoljl9aeQLZphTcm4QvqaoYhguQ2ctgSe7CNHBOMKWsEK9uUQQmCsoAAkG0WQI9FJZBtLCiltw2QbXrxjVc6kG28iEH7XEKgg2wfeXfcAIOZ30C6'@; put 'xtxwD5Bt9v0QC9ludYrLZx31rJF9a/PfAiDb/PdxPo8QyDZHvRsL2ULVn/Q6LxrZFmoDH/sGyDa9TrBJB7LNGNSgKA0IANmmAdRUiASyTQWKycmIRrbyzBZWtslhHE9vINt40IK2uYYAkG2ueaTdHiDb7Dtm0bra4xgXGyJdkIKVbWZ9BGSbWbxBW2oRALJNLZ4pkxZI16it+AaKx6cM03gFAdnG'@; put 'i1h62wPZphdfkJ5eBGwl9sb2F4J+Cxek0gt4rNJjKUQAZ7axoplYu2hkW6QNeHSrE18BF6QSwzfeXkC28SIG7XMJgVCylbeR1cgG0iHTqt7YmksDyFdbgGyz71kg2+z7wG4BkG1u+QOsiQ8BINv48MpYa0m2xZr6929b/3NyOKVCcA4r2/S6A8g2vfjGK/2+upoyL6W7I/Ur1Pqj0i+Icu65z7J4'@; put 'ZUN7QCDdCADZphvhBOXHQraEi8Om1tZ/kaAK6BYFASDb3JoisLLNLX+ANfEhAGQbH14Zaw1kmzGoIyqKRrZwGzmzPgKyzSzeoC21CADZphbPlEmTZFuoKS9/1/rBKZG2kWFlmzK4wwoCsk0vvvFKB7KNFzFon0sIANnmkjdstgDZZt8x0cgWbiNn1keSbE3WtEWluiucZjizzaw/QFt8CADZxodX'@; put 'xlr7byPr9KVtLR/+GFa2GYO9i6JoZAvbyJn1y8LGynKT8S0qdQDZZhZ60JYCBIBsUwBiOkT4yValL21rA7JNB76xyIyWrhHINhYUU9emnWw3q9RRACvb1OEKkjKDAJBtZnCOW4sk2wKVvri97cNTYWUbN3wp6RCNbGEbOSUwxyxkTl1NGUGmXNkC2caMGjTMFQSAbHPFEyF2+M9sVfLCd20fnQZk'@; put 'mx0nAdlmB/dIWmFlm1v+AGviQyA0N/JWyCAVH4Dpag1kmy5kY5cLZBs7VploCSvbTKAMOtKFAJBtupBNUm6AbPHy79o+/kmklS1kkEoS5CjdgWzTi2+80oFs40UM2ucSAkC2ueQNmy2zVo9RhpZ/74UdQLZZ8xCQbdagD6sYtpFzyx9gTXwIANnGh1fGWkuyPbTf4cu3t35yOqxsMwZ7F0VAttnB'@; put 'PZJWINvc8gdYEx8CQLbx4ZWx1n6yLTts2Xb3pz8Fss0Y7EC22YE6Jq2wjRwTTNAoRxGA4vE56hgg2+w7Bla22feB3QJY2eaWP8Ca+BDoINv73z9rH2wIeRtZiSwC6tnGB2/irSXZHlJ22LKdsLJNHMQkewLZJglgirsD2aYYUBCXUQSAbDMKd+zK/Bekyg5/fof7k7GwjRw7bqlsCWSbSjSTlwVk'@; put 'mzyGICF7CADZZg/7HjX7ybZ06NIdns/OALLNjpOAbLODeyStQLa55Q+wJj4EgGzjwytjrYFsMwZ1REXRyBZyI2fWR0C2mcUbtKUWgQ6yfXD9GQMZJV/DmW1qAU5UGpBtosilrl80si3SBj621Skun3XUs0bqtIIkWNnCHMhHBIBsc9SrsZCtQcyhN1Su35SjQ+j1ZkUj20J90OPfOPhlQLaZcTWs'@; put 'bDODM2hJDwJAtunBNWmpQLZJQ5i0gKj1bIFsk8Y4HgEQZxsPWtA21xDoINt73xo3iGJzC2wj54aL/KE/5UOf29n22ZnhLBKCc1jZptdX0ci2SN33ia0udimsbNPrh6B0INvM4Axa0oMAkG16cE1aaiDO9pBnd7o//xmQbdJwJiQAyDYh2NLWCcg2bdCC4AwgAGSbAZATUSHJ9uDSQ5bs8nx+ViSy'@; put 'FYgdMqO68atE5EOf6Ajc0Tj6WCH4WwTTsIleirRBT2518ktgZRsdy1S0ALJNBYogI1sIANlmC/koev1kW3LwM7u8X5wNZJsdJwHZZgf3SFqBbHPLH2BNfAgA2caHV8ZaS7I9qPTAv+32bPo5kG3GYO+iaF5D1Q8JIm/DyjY7+IdqDZCtsVmlzsJwFhVq/VHpF0Q599xnWW5YDFYAAp0IANnm6GyQ'@; put 'ZHtgyYFP7fFuGgdkmx0nzV9fezRmfCPBihrOArgglVm/ANlmFm/QlloEOsh28caz9xWCb+7pNrLKtcFX17z2TWpNAGnhEAiQ7f5P7PFuPi8S2ZqcH3x9bcNmQDA9CMxvqPo/jPC7kcgW4mzTg3vP28iwss0s6qAtVQjERbZYc+w3dfgr36ZKOciJjIAk2/1Lhjze5N1yfiSyRRY+aPrxa7cAjulB'@; put 'YGF99VEco/cirmy1AY9udeIr4IJUevAPlbpo9ZhSn+LerFFnEWwjZwZz0JI6BDrI9k/vnrGfyshXPa1sgWxTB3w0SbGsbC1qHHjdqA1fR5MFnyeGwIK1td8XlP+TRthGLlT7P3zFiKWXJSYdesWLQIBs2zZr1AVkGy940D7rCHSQ7cPvnrGfGYVsdQXvO3Hkmm1Zt7oPGBDLBSmMrQOmVa3b2gfg'@; put 'yMoQo5Gtk5YvHl+x7KqsGNcHlQLZ9kGn59GQO6v+NI4bjFVzU08rWyDbzHl+8cYrVAe1nukpzhbINr3+8JMt4f+kJPwFKZ0W3TOx4uWr02sFSA8iIC9IYWR81dM2sukkRROPerYVUAMEcg2BuMgWITpkWtUbsJLKgBeXfDBO85qlS3e6P/1pOHWQrjH9Tmgn2/coUbRw2oBs0+8Du4ZYbiO3UVY2'@; put '9djlezNrGWgDBKIjYCtEcPYQRvmXPa9sC46dOHLFP6OLhRbJIrB44y/6l+oDlmxtef+E8GQrOBbqmGk1q+qS1QX9wyOwaMOPfsQs3z8i3kbWBj7WpO6dMPOYV9sAw/QjcMdbp+wvTPcXkeKeZZwtkG36/QAaEkMgLrLdt+ioeoLoToQRoVjjAnFLqsWIYowQQVj+gxFGol0u6W6Vv03Xl79T4GXr'@; put '3963vX1Qkuho2ylHdhYo8LtNFiLtfYOfoYCB/pdApJsdgf7C1sYvV4SDFiPuf18g/2D9P3PBROB3/z+c+xswgREWDAkufw7IE0LI/wsmm8i+8j2pnbQLxEIw4bWafrrLvckRybXl+gH/UTXnJyp2StAxwYpAwmYvlqBggiUSApF2QDDCfn/J//n/L/9DMMWys+wSwJi0YxEQYrdB4tn+RrvdkSef'@; put 'HGg7PAGQbK8gtp3zpdu8CHg07EsgbvNNpz8k9n4/Ci4hbveHH2/5s+DyJb+pMCE448iyuLDkz1z6hSP5m8kopophef5vr2/LsZFGV6wP2uNUyl4XmPsoUUm7ukBCBakOYyx4YADEP4ElthjLH7EgBBGB/S9E/S7wf+b/3f84BeazdF7AT4Hf2ueo9GH3Z6LjHX/D0Gci+DwE5m1QVvfnMej/yF7t'@; put '/CSIe/BZCPrajr8EQ45Ytg08E50+CkriyD9RuPSDQEz+y2RDizHGkeGzuEm5YEV7PJvC5gqXcoBsY/EYtMkWArakFmfuTzH+oueqP9kyE/QCAoAAINAzAkC2MENyGQEg21z2DtgGCAACMSMAZBszVNAwCwjYklqMO0AI83NY2WbBC6ASEAAEkkYAyDZpCEFAGhEAsk0juCAaEAAEMocAkG3msAZN'@; put '8SMAZBs/ZtADEAAEchABINscdAqY1IEAkC1MBkAAEMgLBIBs88KNeTuIuMiWCybDGsKGwkRAKErbeETlrQ9sAwtGLwXeihRPGOwgwyMECkQYwSsVCHQJM8IYExoIu4n84sIyAyE/tmYhoVLhevcoNBVDyTsZgWejp2cCyDbvnJ5XA4rrNjJB6kU+3Po2FVhgRjkjnDFOBCUcMyywxhixsIqDv4ci'@; put 'RU015G+MgSyiYIVbCbMuUwNxpdQMxPYGfw/qDr4faktou2helWMO10aOP/i+IsyOnxkPtGdq5+d+OwUWEqugPPlzwH6OiUooshRCFItyoZaVOYY83OTbemg4vfIP/P/+8MzmzFwqKPNhxjgjCsOW1UG+FhGYklDMw480aEcnbjxpPqAkGG8dkBrExD9eIrD8PbSN3To5l6L5JdLndl9EkxG0K2iL'@; put 'oJRgRnVC1fM4YtdHIlyK9dWM+f5oMW8gX7hCOTM4U7WAz02DY+RASDE4tjQi5L/yfemXAAaB8dmxl/Mgmr3dnqsQnOPtn6n2dv+HezaCz4HdHvn8yGdFCKxoRDlOIPRUJHuheHymPAl6EkEgLrKFeraJQJxYH1mI4ODSoc/t8nx2Zniy5VxgetSMqjUfJ6YBekVDYNG62uMYF+sJpmGLxytEnz95'@; put '1KvXRpMDn6cGgXs2nNjPYNZOINvU4AlSMotAB9k+uD56ukYg28w5J0C2By/Z5fnirEhkyxA7/Nrqxs8zZ1Xf0nRHXc0xgoi3I6VrVIlzwdWj/jGzb6GSvdEubKwsNxnfrFJHQTgrYGWbPd+A5ugIdJDt/TFU/QGyjQ5oqlq0r2yX7vJ8dkYksuUWPnTm8Wu/TJVOkNMVgYWNo3/ABXsnEtnqSsFd'@; put 'E0eumAK4ZQaBQCECcwuQbWbwBi2pRaCDbNuLx8sSe2G3zKRaINvUgt+TNEm2Q8sOf36H+5OxkcjWIObQGyrXb8qcVX1LUzSy1WjxnyZVvDS5b6GSvdEC2WYPe9CcPAK228hn7ysE/wrINnlQUyFBku0hZYct66nEnkDskBnVjV+lQh/I6I7A/PW1R2PGN0Zc2UI924xOm1hK7JV+QZRzz302UAwC'@; put 'XoBADiEAZJtDzrCbIsn20H6HL9/e+snpkVa2QLbpdV7gzBZtjBRuAvVs04t/qHQg28ziDdpSiwCQbWrxTJk0SbaHlR/x4ndtH50WiWxhGzllcIcVBGSbXnzjlQ5kGy9i0D6XEAgl2809FSKAM9vMuW7xxivUIpW+uK3tw1OBbDOHu13TvIaqHxJE3o60stWUknsnjXxxUnas63ta4cy27/k8n0YM'@; put 'ZJuj3pRkW6gpL3/X+sEpQLbZcdIdjaOPFYK/FYlsHUrJvROAbDPmHCDbjEENitKAAJBtGkBNhUhJtsWa+vdvW/9zMpBtKhCNX0Y0snUqxfeNH/nSxPglQ49EEACyTQQ16JMrCNgySI0bRLG5BbaRc8M1/m1kTVuxrfXfJwHZZscn0cjWoZTcP2HkixOyY13f0wpk2/d8nk8jBrLNUW8C2WbfMVHJ'@; put 'Vi19YMKIF8Zn39K+YQGQbd/wc76OEsg2Rz0rybbEoa/8pvlfJ8LKNjtOas+NvCHimS2QbUYdA2SbUbhBWYoRALJNMaCpEgdkmyokE5cTjWydtHTx+IoXrkpcA/SMBwHIjRwPWtA21xCIi2wRokOmVb2xNdcGkY/2LPlgnMbFoBWwss2ed6OTbfni8RXLgGwz5CIg2wwBDWrSggCQbVpgTV5oLGQL'@; put 'hQiSx7knCdHI1qWU/fmqkcuvTK8VID2IAJAtzIXejACQbY56z7+NrGkrvunhNjKQbXqdF5VstfIHrxq+7Ir0WgHSgWxhDuQDAkC2OerFWG4jA9mm13nRbiO7gGzT64AQ6bCyzSjcoCzFCNiKx58xkFHydU9xtnBmm2L0exAXS1ILINv0+iMa2TqV8ofGj1x2eXqtAOmwsoU5kA8IANnmqBeBbLPv'@; put 'GCDb7PvAbgGsbHPLH2BNfAgA2caHV8ZaB8hWefnbHnIjw8o2ve4IkC3bEKmerUvt9/BVI56/LL1WgHRY2cIcyAcEgGxz1Iv+M1udvrSt5cMfhzNRCM6BbNPrvEDVH/xWJLJ1Kv0eGj/yedhGTq8bOqTDyjZDQIOatCAAZJsWWJMX2l5i76VtbUC2yaOZmIRAPVvxNqxsE8Mv1b2AbFONKMjLJAJA'@; put 'tplEOw5dkmwLVPri9h7q2cLKNg5AE2g6f33t0ZjxjUC2CYCXhi5AtmkAFURmDIFQspVVf9TI2iGDVKY8469nq5IXvmv76DTYRs4U6l31LGwc/QMu2DuRt5HhNnImPQNkm0m0QVeqEQCyTTWiKZInydal4uU72j7+CZBtikCNU8zC+uqjOEbvAdnGCVyamgPZpglYEJsRBIBsMwJz/Er828gaWra9'@; put '9ZPTgWzjxy8VPW6vrz6KYvQexUrY3R6Is00FyrHLALKNHStomXsIANnmnk/8FvnJVhHPb3d/+lMg2+w4acHa2u8Lyv8JZJsd/EO1Atnmhh/AisQQALJNDLe095q1eowytOzw53e4PxkLZJt2uMMqmLtu1JGE0fcpCb+ydSnlD141EnIjZ8o7QLaZQhr0pAMBINt0oJoCmX6yLR26dIfnszOAbFMA'@; put 'aAIigGwTAC2NXYBs0wguiE47AkC2aYc4MQVAtonhlspeCxorjxCcyJWtFk4ulNhLJdrRZQXIln2lUmdhuNaFWn9U+gVRzj33WRZdGrQABDKLAJBtZvGOWZsk20PKhz63s+2zM2FlGzNsKW04t776ewShfwHZphTWhIUB2SYMHXTMAQSAbHPACeFM8JNt2dBnd7o/+xmQbXacdEddzeEc839TooZd'@; put '2Tpp+eLxFcuuyo51fU/rnLqaMoKMzbCy7Xu+z4cRA9nmqBf9ZFt6yLM7PZ9HJFuDmENvqFy/KUeH0OvNmvdmxWGY0v9EIluHWvrAhBEvjO/1A+0lAwCy7SWOAjPDIgBkm6MTI3Bme8iSHZ7Pz4q0sgWyTa/z5jVUDcUCfUCJqofTBGSbXvxDpQPZZhZv0JZaBIBsU4tnyqRJsj249JAlu4BsU4Zp'@; put 'vILmvznyYESVj4Bs40UuPe2BbNODK0jNDAJAtpnBOW4tAbI9eMkuzxewso0bvdR0mLNu1EEKwx9TosHKNjWQJiUFyDYp+KBzlhEAss2yAyKp95NtycHP7PJ+cTZsI2fHSQsaqg7kQnysEM0RdhtZKbl/wsgXJ2THur6nFci27/k8n0YMZJuj3gSyzb5j5q6uGIJV8t8eyPbe/pv0ayCuMzO+kmSL'@; put 'kfGVRp1F4TRCnG1m/ABaEkMAyDYx3NLeC7aR0w5xh4L5759SoDdRl6X4NKEoBFsWVzkVFjW/bzHj5UhntrpScNfEkSumZM7Svq2pnWw3a5DUom9PhF46eiDbHHUckG36HDNLzCIDGxv7W0T7vqpovyCIVDf5vh3MhRVS3QcjhWgFGHc8Jl2MUnHBoqsrV0xLn6Ug2Y4AkC3Mh96MAJBtjnovFrIV'@; put 'iB0yo7rxqxwdQs6ZJVewDq9yJEF4SpN326kq1QsjrVojGS+EQEHydaglD/T/Up8E28iZcTVsI2cGZ9CSHgQ6yPb+98/aBxvia7e5J2ztzoB6OmRa1Rtb02MKSLUjAGSbuvmwZMk4um1Ia42F2uZa3DhaIbozWemSdAv1gV9YyHPRxOEv1ycrD/pHRwDINjpG0CJ3EQCyzVHfANmmxjF3rj9xoEDo'@; put 'JsNs/ZVKHQXhpDJuGVyYBhfMFIhzhBDGiGCMqUKxqkfKjSxlCcG/cinlV5q7jDWTf7LSlxqrQUo4BIBsYV70ZgTiIluVa4Ovrnntm9484N5ieyy3kWEbuWdv3t140rEM878IwY4JbSkJ1sfa9jiUwic8vj1rsa69r7jJXspNS7ZlRFWwohRZ1HdMobLPGCZ8Yy1hHBjuZjLjps+plrwqkHXzwK9K'@; put '34Nt5fQ8ZUC26cEVpGYGASDbzOAct5ZAIYKDnt7p/vKccJ2F4BzINjKsi9adeJLg1sMIowPsrSQxqsS5xme1PkQ8npUzf/yvtlids7BxzKEm89wskBgb7kasxX0ehRY8qDIyd1d19bZZeJZcJcMrRQgA2aYISBCTFQSAbLMCe3SlkmwPKjvo6d09kK3J+cHX1zZsji6tb7W4a/3JP6FIeczg7n7B'@; put 'kQshuMHcnyjYcd3M2vqXkkFkwcYx/bHJrzTNthmaUlgaKstkPrdCtD9h7Jw3reqV3cnogr6dCADZwmzozQjERbZwQSpzrvaTbemBf9vt2fRzWNnGjvuC9cefbBqtz+hKYVkn0cpzWDzfYZDZE09Y0xq7tJ5bzq2v3k8j+u1MGBcQTGloa8Nq+8ipFF+2p/KN9bMwglVuksAD2SYJIHTPKgJAtlmF'@; put 'P7LywAWpA5/a5dk0Dsg2NifdWXfSASbyrKFUOTjYw+I+N+Pm7TeMfueW2KTE32pufcUJROBFhGhH45CgXC4sU8H6S4yJm6fXrn4/funQI4gAkC3Mhd6MAJBtjnovcEHqwKd2eYFsY3HRotVjSlWXc4XB3JXB9gZra1Kx64LpNWtXxCIjmTYy/HZBfc3PKFXvQIh3kH1QpiRdgtSlCKM/TKsqLbZ5'@; put 'AAAgAElEQVRa81kyuvpqXyDbvur5/Bh3XGQLt5Ez53Qg2/iwvqvxpMWWMC63ryyFYNOnV9cvjE9Scq3vXl9R7DHFbwUS4zXqKg6VhhHdoSqOuw2L3QfnufFhDWQbH17QOrcQiCuDFJBt5pwHZ7axY333+tOGGFbre4SQ/sFeBCkrzQI6buYxr8Z82zh2jdFb3rZhZD9ikt9hIa5UqcNl7yGQvK7F'@; put 'vlKwfptZqDyVLRujjyK3WgTI1veVRl1QiCC3XAPWxIBAXGQLF6RiQDRFTRZvvEJ1EOPpXd4vI5bY4xY+dObxa79MkcpeK+bet8Yu8FnN04MD8FltTQrVTptZ3bgum4OSW8sL62sO8/K2R5xqcXWoLVwwC2H0jiL0q6+pWrURYySyaW+u617YWFluMGsTkG2uewrsC4dAXGSrENf+k0et/BqgTD8C'@; put 'kmyd1Fqy0/P5z8Jpk3G2DLHDr61u/Dz91uSuhvsbTtmHaIXvtJm7hgStFEjc01K59ppcuQF894rTdKOkdSzByrxw57kyPpdifSm3xI3w5SnyXJNkazL2lQpVf3L3gQTLIiLQQbb3vjVuEMXm5p5yI2u04HuTKlZ8CnimH4G/rB7jUMuPXLa97cNTI5Etwnj49Kq176XfmtzVcO+Gn17rtZpuw5j4'@; put 'Q284t7bpyDUsFzOdSbIQnNxkCvOicDVZiVB2CiJu1i3jiQm19XtyF/XsWCbjm5HP+pZgqoSzIN31bOVOxf31p5eqql7AEHYylfvtoCaxGLG82GG1jv/B3/fCDkV25keua42LbIv0fW8yedsGwRBjwuBCcMEx98vAmGKCBOaYYsyE/z2CSYd8jgPv2YMRWTs63QIUQ1CTMv3yBOvYZpPvhf4eCra0'@; put 'Jx0O4Ah32+4T7bYREfiMCy4E7WzXxdYw/YPYBfs7qKvIQUsW7fR+vn94shXCoRT92RLGiwJhU7aRNhBBbBgFfEMxIXYZnAfw9L8oQkF/hfrMP44wfgu1J+ifoI9C/SX9HBxXt75+vIIzAaEgZhKvAM4MCYGEBJTL8bVjyhnFuu4qdpLia5t8X1cF5QqE751etWZSOvyeKplz6iqGOajraoH4ReFk'@; put 'Fqj9PjKYd7XAbIVg5h7DP7dMRLDAghHCMcIEUyw4IfK9gJ86fSoZQH4elB18RoO/y2fVrjfcc+KfI1HmRk94yPkf6XP7c2Gfe/45jLAgRPqey1oPQm7fCMFMpCJEGTlYYPZYJLnpIFtJsA+v+3GZ0It/SDC9wKmU/rDJ+93BbdYOnTOG5RQlSOMurcwo1vfZLBD/3GLeNwXz/H2X1vodnMen6qnp'@; put '/XI6HrrFG8/eVyZV77nqT+8fcG8ZgUyKTzDtoQJTbxlJcnbK9IqBP8L+v92hf8AFxaozGNpqccOLED/n2poNaQ/1SW5Ugd5z6ytOxogsoFj9QWh8rvzcYqaJMJdfpOzkiG2/Br7odvkYoXjLBqZiLKmU0ZPPw+WmDupOJdkubBzn1LDnSIrJVYiQMa3Gd0Mo0WKuFmUwT7OmuN5xKcVz3KbvHbh5'@; put 'nsoZ0jtlAdn2Tr+B1WEQ0GnhB8jdNiqVWaLSDfSsjcNcDrf6S0u4b3GpZQPD6bPX0E23Pb1ZfirIdvHGsS6DmbWaUjhhj3vzCeG2++PFyG3u3Vag9rvD4L7F19U0tMTbH9rnBwIdZPund8/YT2VkE6xs88OxfXEUClGfmTzq9fN749gXrB7WnynKHwTiF4eLzwXCje7VZMn2rvWnDEMCzfaxluOV'@; put 'CKtYIYSwhOHh3PT5t7f9WwtYIVhVKVZ0SlStB0vXaFS5clLFKrj3Et2dedcilGzlNnLYywd5N3IYUK9HoDsB4SnTqtbc1ZsHtqiu5hC3aH3UQYsqg5e+7OMB0o3s3UTJVsa093PqZyKE7zC558BQDXJbW2CxmSCl3sfa1mJufc4x30QJbvVZVLiQ6vAq7oHYoocV6v0rTOY5lxJlcDj/eazmnU61'@; put 'ZMaQLQOegFKMvflJjd92INv4MYMeOYJAKPFwbp0zo6bh+RwxLykz5jVUnUMEuRljfAQOueAmBQPpdoc3EbKVRFugmvMF4leGrmZN5nUrWFtrIu9fMNJWxroFLI8GnF71VI26rjKstiqVOgrs1spQL00p+QPnzfdNq1rnSWqiQOdegwCQba9xFRgaikA3smVW7Yzahvp8QWphY6XTYugSk3tnOdXi'@; put 'juxYsNIN7+F4yXbJknF02wHNV/uslrn27V/GLUMg9IZA1k3X1WxYn8x8mrd+9GEKx7O5YOeEVobigr2iUP2iKaNWfZeMDujbOxAAsu0dfuqTVsqchh0DxzKODHcJWQklW8HF6ZkoOpBpZ8g0hQQZv8eYjFeI3u1GrB0HSRT+AJowq+HArebA3eVwW5yZHleq9cVDtv7sXg211zNk3Wi/4WxYbXsJ'@; put 'Vq+5tnZdxBCjROyeW1d1Yalz37ltxs597f1dSnmDlzdPmDJq1b8SkQt9eg8CcZGtigseNkXbJ0gG2GLBhJDBtpbhDzYLhGe0x9wG4mv9zRD2x8v5fydcYN4Zeyvfw7a4hWD/UPj8f2fDvPziQ16YhIuBDcT8Be0MdpF2SZuCv3eMIyRGEHfEnYSTHWuKPVnOlCDcoY8iab9//FgQLCjFWEYTEhUT'@; put 'SnXqGOCgJVe1GNs7CqB3HaoQKil4jTHPGxayWoRgjGNuII4shDmX8Yq43R/y54A/Om2VIZuiPUbT7oOOPu1+kp91vNfuq6A/pL+C/gzKCJ0Dof6Rc8L+nt0nQX8E5oycYkhI1Pw2SHukYv+HiDq1ogOKtIGTdns2l3T4E/Ebp1fVpa2UXrYf6wUNVQd6rNZHnUpJDWlP4mG3iSDFawnfrYbl/ZfA'@; put 'FqNIUbhAJibM4DL2XYblYqRiQXSM/JGrCsEyNFsG7WKKBCYEyzhegQnvjCfiBAl7nLQMeu58ZgLPZjAeW/5MOMGcdvbHtudUzvQuNrOuz4/sJ9tLV/vnV/uzT5Di1KnjSB9r+3UkP8RDtgvX/WgsZ+ZThJDCoDyv1bxLxerlM2vfWpYOX8vzeIvwZylWj+v6DNBPKMFnTx616sN06AWZuYFAXGSL'@; put 'Ncd+U4e/8m1umJ7/Vjz49nmPtJjbfhP2i4ZM10jxEdeOWvvf/Eci/AgXv33O023mzvOCn+qKa8HEkStn5jsec9cMPxkr2kKKlaPC1c8lSFnq4+7f3VD79hf5hMV9dTVlHkJ2hYtJluOMlWz9dY+xZyMlyoAgPh6zaYdGCsfOrK3fkE7MbltbO6BIcz1ucu+P7XqcStknHqvpymlVq99Mp36QnT0E'@; put 'QuNsZbrGiLeRCVEGwflC5pz10Mbz/tJsbLs4EtkiCx80/fi1WzJnUW5pWtgwejrCeEHQqmJ90Evu4uZxkw9b6U+Ekc8vuQ06t6HyCs69tzmU4vLQsTJuGjotfNRQjd/OGL5mZz5gIWsW+xT35kixr7GS7cLGMa8hJE4KYmJxs0WGXF1Xsz4jl+vmv39KAW71LCWYdCFcxs0WlTgvmFK16uV88BeM'@; put 'oSsCQLY5PCMeeuf8x5t93/4KyDa8k+6sr/6egdh7wXNMk/l2OEXZUZNHr9yRw25NqWm3bxxWItrQDZjQiVpIgn55SoI5+e5/pxJzplSuujulirMgLEC2bbLEXrc6wbGubBetO+lIw2p5235DWAh807SqNTdlMqdxoO4xflKl+k/tUBbq+7S0+XZOmVq1+pEsQAwq04hAaG7kLT2tbHUF7ztx5Jpt'@; put 'abQHRNsQePjdX/2tybslbJIGWfXHosaB143a0GerMN2+8aQS1ef7AmPiX9nJg16FOs++ZtQrL/S1ibSwsfLQVl/T/YX6gI4VWxADmYjBYG0fOdTyK6ZWvtbQW7GR/kaeps3JkO3Cxh+9jhA7MYgBRqTBp9HTrx/+elOmcZn/ytEFPl3c7dLKL7HrNpi7xUFLxk2pev2VTNsE+tKHQAfZPrj+jIGM'@; put 'kq+BbNMHdryS//LuhUv2eDePi7Syxdg6YFrVuq3xys2n9netO+VVJnwnB8ek0YKX+C4xbvJP8n8rOdSPizcOU3d58ckO7LoTYXxY6OfyprJGClZalF07vRdmMUp2ZXvn+lOPVjCpN1ibv/i8xQ2PQvSzp1Wt+Ue2nolZApGidTW/sph5v0odrqAdMsaXIHX+zNr6WdmyDfSmFoEOsr3//bP2wYbY'@; put '2hPZwgWp1IIfTdqj7168tKfi8UC2CN297uSLLWH8JYhlsWPQd8J0V15e8dKX0fDN18/9pETdN3BkXe5QispCx6lgRzOhdD73isW9acu9nWzlytZPlqGvaGe2d647ZQUXvtOC/VTifNdttYyJNVlFuuaLPH+/Ze0PLlexNk9XCjtv1wvOHbTkVkXBt185/CV3uvSD3MwgAGSbGZwT0vLYe5cu3+n5'@; put '7MxIK9u+vo0scZHF45lC/2Mwd8fNUodScu/2tuYps05YYyUEfJ50mt9QtQ9BZBbGdHzYOcTZZqroc00nfbQ3lIKT8cYYGV8lckHq7ndPG1CE+v97j3dzZ7EHgWdMq15zR664e279yOEm8/3dpZbuE7RJHgFggZebyLoo218KcgWn3moHkG0Oe+7xf1724g73f8dGItu+fhs5iMud6068iwtrcvB3'@; put 'ih07VayfOGHUi30+UYBcNd2+duQJAvM5DqVgZLi5pCuFr3HGbxq4pXB9LufrbU/usVkNuQgWHFNPK9t71p9yssdqfSlYflAI8R1hzmOnjs6tUMbZb/5gNBfsyUJtwBA74TqUoqd9zJoEpfpy+A92FNM6yPaRd8cNMJj5DWwj544zgWxj88W9b40Z1OrzvatSrSM7j0YK3scEnTpx5Aq40Pc/GGet'@; put 'HuMoUs1TOMJzKKHfD0VW1gLWSMEKxNlvp9Ss/iQ25DPbKhmyvXvdKeMt4bsvaDHBSuNeLztx1glrvJkdRXRtMnlJi2/HyyWO/f7P3tpjNr2tKfv8dGb1q9ujS4EWuYYAkG2ueaTdHpkg/ZCyw5btdH/aJTSg89su5ybnB19f27A5R4eQUbMWNv7oei6M2fb8sy6l7Am3pV4xrepZSPbe7g0ZKkS8'@; put '2uUOpXiaxb1dUgfKJgQpuzBBf2Zc3Dut6o2cunyXDNne/9bP/uqx9lzUQbZEnT9l1OvXZnSSxqFsbn31fhSTvxFMRtu7CSHe5YhcNLN6zX/iEAdNcwABINsccEI4EyTZHtrv8OXbWz85PdznMvQHyLYTGVn022O2vMyFOCH4LhfMctCSu3YWuX4766hnjRx1dVbMunP9iQOZZd7EkPHrcPmWObc2'@; put 'YUJvL9TaHr9y+Ds5cTknGbK9e90p71jC15EmkSD11FwPrVnYWFnuY9Zynbpq7ZOk2bvtC5fe75xrqxv/mZXJA0oTQgDINiHY0t8JyDZ+jO+oqzmGY/EiJcoBwd6yFqlLLb7B7eB/7g2XgOIfdXI95q0dcTylzpsFEtXh8i07SNHrBvLMcyp711w5/J1AsfQsvST5mIx9lciZ7QNvn/WJ29x9uDTd'@; put 'ZN42lWo/mlZV91aWhhKzWvkFQyX8MYLVLjtcPrN1K6GOC6+tbliTyWQcMRsODbshAGSbo5MiFrIViB0yo7rxqxwdQlbMmreuthpZ5lKF6p23Tv2W0FUqIlN3VdZ8MAvPkvUN4NWOwN0rTtON4ubTEca3EkyPCAVGfmGh1PkyYvyP02pWf5At4BIl23tXjylsIq1bHGpBqbTdYG3NRC/83rW9JEGP'@; put 'zDbVZpiP6Erh2f6yHO0vWThBVwrGT6usfw4IN1uzMna9QLaxY5XRlkC2icN9x9raEwtdAx9tM3YMtktRifNbxn0PKJTcO6li1a7ENeRnT3mei930dwjjCaEFz+WIMSLfUarfYTHxcDZuxSYa+iP7KYhvolT1p3lkzGpSVcf3elue9/n11fMIpjPshRjkFweVOK+ZVlX3KBBubj+XQLY56h8/2ZYd'@; put 'vny7O/KZLaxsIztvXn11rcGan3Gp5d0uASGENmrUOVmlOzZme2s0F6ffvIaqoR6j6V6XWjImGCpjt9Ni3o8Ltf4zrF389Uxm6kqUbGWaR+Jxf6VQ1Z8wwmSe1gKtaNikXphF69Y3j1mgUdckSjQ96BOZ3tFFy6bs9hlP5eLt6lyc49mwyVaIYGx/Iei3EPqTDTd01xkg28OWbe/hNrJBzKE3VK7f'@; put 'lBsW554V/j/OwnhRU5w1odbJwvQWN9c4ievKydVvfJ571mffornrRh3JTPOvOi0YLgvLhlrkNlveK9RKxu8ddfzbmdiaT5RsFzZWOov0A95p8W07MjgGFevnX1356jPZRzl+CxY21pxqMnOpPb2jlCK4eMxCbBIkv4gf00z0iItsVa4NvrrmtW8yYVhf1wFkm5oZIONLncQ9SxAxIVyaP6/VvLtI'@; put '22+OT2n7a76UoksNcgEpsz74vubYVXARE6Ys5dcvXP1cBy15EjE0a1L1irTeHwiQrU9W/Yk7XeO9G8Zu9LHmYUFsnErJHYRsvaG37mzMqTvuVILUboRbqPZ7TODmyVdmobBCKuddPsoCss1RrwLZptYxc+urizSiPyIQ+3m3VS4Swm3s/tqllM+cXrO2V652UotWd2nyEpW7aPdlQrBbdaWgI39v'@; put 'sGXgEpXjHiTU29J1npsM2T688fyHmoxvLw3aq9OiOuRu/cnEE9a0phu7dMmf82blsZSI5QrVO27fy9pXBKsNXDjPn1b1ck7FSacLh94iF8g2Rz0VC9lyCx868/i1fTbhfryukxVWHHUjLmDImu1Uig8M7c8FZw6l9BnBfLdcXfXqx/HK7wvtb68bdoDbar6nVN+vWxpRWT/XYr7/FjnKp0wYsXJl'@; put 'qvFoJ9tNiZTYu2v9KXMY910ftKnUMXiTz+OpGF+9rFdnY7q9fsRRXqPphWLHvkPteKvE1aAI8avxlf+AY6ZUT8QE5QHZJghcursB2aYP4Vkbh7mcXvXXgrM/aIprv1BNcpWmK8V/xZjPvbriVfgyEwKQ/0tLw4gjBeMP6WrhqO5fWphlWG3vF6r9Lp9c9fp7qfJkMmS76O0TD7G87vcp1QqlPTIp'@; put 'jK4UXDKp4h+Ppsq+bMlZ2Fg5GCP9BYFExza5tAUj/AEl9NzJo1Z9mC3bQG8nAnGRLUJ0SK6lcMtXZwLZpt+zcmtZRcpVjJvXUUXtF6pRJj/QqPNBhavz4a5Cd38EznOLLzV5240FWvmg0BYW93k0WvioMH03Tx1d922yHpVki4T3y3Db2FJ2T4UIAoXa8bsurdSf2EK+CtT+j/t2uC/P5I3qZDGI'@; put '1P/2uuoDkDCWa4rrWHsbjRa8L5hx4dVVr/87XbpBbmwIhJKtLESgRu4KZBsbrMm3ArJNHsNYJcx7s+IwQfFslejnhuujEOcnBKM5ptv7wtQT1uyNVW5faXfb2toBCrb+KBC/OGx8rkDfKIrjLmooD06o/fueRHFJhmylzoWNJxxvce8/FKI55O8GczcV6gPOmDRyxdpEbcqlfrKkomG1vexUS0fY'@; put '7fKaLd8UqCW/vqZq9apcsrev2QJkm6MeX7zxCrVAwc9vd38csRABnNmm1nkL64+vdVt7H3FppYeGSubCMglW/q0QZY6u7H2ht95iTS1indJkKb95DRUVBbT8WkO4zwqnp1Qf8n6LueM+r+X423U1L7bEa4u/eDxt+VJTCv2ZoEJf0YrHL1kyjm4Zsv0NjFBHcn+M6DqdGadPqK1P+EtAvONIZ/u7'@; put '19YO8GH2OKXqj+16MCLfcI4un16zekU69YPsyAgA2ebo7ACyzY5jAreWtUkW902npPvWsixFV6D2W2IS67YpI/6Rk6XosoNcQOvijcPUZsP5UwWpCwTih4SzxamUreKI3bBjxLB34onPTZZspS3zG2pPR4I/T4miBW1TSeEtuzxtN886YY2VTexSpVveSXC51UcURT/PLtNjNu8s0EovnVK5+sVU'@; put '6QI5sSMAZBs7VhltCWSbUbi7KVuwcUx/Byu402e1/BJ3pqPtaOezWvc4lJLHKOELJo9a83V2rc097TJrE/X6rtAV19RwpfwU7GhSqf6UwT2Lrhn12n9jGYEkWw9t/sKhFJWFax9tZSv7yHPmgj1lL1CinBqUQZDahAm96JpRr7wQix29oY0/vpx6F1GqXEYwVYI2y3zKBWr5dIe69ynYncmsJ4Fs'@; put 'M4t3zNr8ZKuhZT2V2INt5JjhTKjhXY0/qjK4dzXBihaOcKVQhegfC85vcWjO5VcOfyknStElNNg0dfKX8mPGHy1uXKhSh/8msP2FEf1OUxx3Gm3uB6Kdh8vczdwtvkyGbKXuRevGHNRm7Gq0p/JsNXZtKdIH/Xhq5esfpQmKjIuVuwx7vcoMjMiNwXNqaYT/tj0puG23z5wH6R0z5xYg28xhHZcm'@; put 'INu44EpL4/nra49GFnsrmB9YyIPJMKtc+cerRB/0ktdqWqyre9+EFUN3d8ytrxjloEVTfax1bLj6uaX64Hfcxt4HsNf9dKREEwGyRV86lMKEV7ZBy+bVVVxDiLrAvupzKCX/NLn3smtGvfpOWiZUloTOqRs5Dgv2Z/tZNxfMdKjFf24zmm6A9I6ZcQyQbWZwjlsLkG3ckKW8w/y1tUcjwt6mRO04'@; put '35NKIpGuPM91KcVPCSxmQ3xueHfMq6s8lSNztkqcP8SY0NBWLrV8tSV8s/hOsSE0JEduI3tp66ZEQn9C9ciMWE2urQ861eILCKYddhBMP6aEXnh1xWsbUz6hsijwtrXDqy3uW1KolXeJK3epZSuYcF81ceSrW7JoXp9QDWSbo24Gss2+Y9qL0b9lv0wTtCoS4crP3eaebcXqgFm+AvoEFKzv7kdJ'@; put 'dN7SljNUpM0TiB0U2kJ+adGJ62VMldm7R1b+O3iJyn9BSmnbnEhu5HCzqf38djbGZBqxEX+bsfubArXsN9Oq176a/VmYOgvmvzn6YA/f+UqhPuAwu1ST+T4qpCVnTKx65bPUaQNJoQgA2ebonJBk61Lx8h1tH/8knIkyAw6c2abXefMaqn6IBZZkGzb2XCUFzxJC93cbu44LXf1Kywim/yGC3mah'@; put '1uXTqtZ50mtt75Mu42YpMq5ngl8ZbrWKEd2hE+c9mJkPjK9+dbskW0Nxb1Gps9vZrxx9LBekQlGSF4kUtPsBh1b8S/uWso+5tzvU4omDN5cvO/fcZ1nvQze8xTL5hdfcubrYMSjkpjj+r44LzpxY+fe8ObPONZ8B2eaaR9rtAbLNvmPmras9jnC+nuDwZIuRdotVgOeqHlbV6t31gFMtOghj0q0U'@; put 'ncmNtS5SNmlX5cgP4gl1yT4CmbFgTl3NIaa1589OtXR0uC82QvAtFKvzKKfPe1DLfxWiu8JZlgjZBuXMr6++FCFxr71+rzyLV4h6a5MPz8mXsCA5XpnfGmN9uUrULtmmvGbT9kLHwJ9PrnilLjOe71tagGxz1N+SbAtVvPw7WNlmzUML6mqGISLWRSJbhejzJ4969VppoIxtLPDpl3HOfqtSx8BQ'@; put 'o+WFFJ0W/oWZ1q1Tal/fnLVB5bDiW9cMPxkTMVujjmPDYV7mOODjPd7NR0QaQjJkK2XOWTv8HJU67iOY7mPX4VTKHm013dfOrH61VxctsI9J1vi1OH7wf2fU59u30DlnpkacF+2urH4Gvhim9mEJIVvyjdvcC+kaU4txQtKAbBOCLaWdFjQcPwIh1mjfXrQrUIjrjsmjVs6wv3fv6jGFbYpnASHa'@; put 'ZfY/YsE2/tWD1n8WwuqTk0etbE6pwXkibEHjmCNMq/kxjRbKovUdf6OCw4t0Xp4s2Ur5i+pOPMQjmt5wKAVdqkK5jb3/LHaUjc23mOpF68b8knP2mH1HRgjBkeD3t1SfNBkIN3UPFZBt6rBMqaQA2ZIXvmv76LRwguHMNqVwhxW2sLF2JBeiISLZUufCyRX/mB6u89z66u8RhG6jRDk79HNZik7B'@; put '2gcCidlTKldB/dwIrpzXUHWOgtQ5CKMuF3oika4kW4GaSpMtnC7jcAlSn2HCGGk3jSDyscXMX82orc+r0KAFDTUXFqgD7vRYu8s7xyuERov+wgWfCl8KU/O3Bsg2NTimXAqQbcohjVvgnXUnVFjErI9EtiouWHR15YppkQTLsNyFDWMq2sydjxTq/Y7sRrqCcyZYg0pdV+ZTMoW4ge6hg7zAVKAZ'@; put 'VzDmuylSTuTgSleSbRtlZVOPXZ50sQiZAUvx+p4nhPzIbl6rsXOLQy//2bWVde+mcpzZlrWw4YQzfaz1L7ri6hLD7FCKnkY+MSGZAhLZHluu6AeyzRVPhNgBZJt9x9y57oQKi0cmW10puGviyBVTolkqCcOleH4tELo53HmuP9SFFv3FomjOdIh3jLDLUFluMH4jRuLScLeRJeE6lCKkUMeRVw5f'@; put '+nE0n8TyuTwS8GniPoTRhfb2XrNlm6o4LptZ3fj3WOT0ljYLGqpGmMz3nK4UHmC3WaHOemyy86DMZHKeBLJNDr+09QayTRu0MQuORrYaLf7TpIqXJscqUK6WkLt5Dsb41+FK0bnN3d8WaANuobjtycmjNsB5bgiwcqdg0brKoV7T95hDLaoMh7vgfLOuFV04ccSKOoyRiNU3kdr5V9aqeSMlyg32'@; put 'NibzuQlRp8ysrnswWR251H9RXc0hzWz36iJtQBfCJUh5jxDtjMmjVkIe8AQdBmSbIHDp7gZkm26Eo8uPRrZOUnzf+FEvTYwuqWuLhY2VP2CczAp3nssFswii/8IIz3HpLVDKLwy4MimGUdx8OsZUfnHpKAYfbBpMisE4nzWtZvUH8fontL2/fGB9xXiB+O32hBoyNEjFrtl7q16/bRZGPFk9udJ/'@; put 'YWPloUIoz2BMjrPb5KBF7wsufgGxuIl5Csg2MdzS3gvINu0QR1UQjWwdaukDE0a8MD6qoDANZJL4Fl9BpdvYdV+h3v+o0CaMWyYTxlqXWjx58qhVHyaiI9/7zH/llAJc4LnC4K2/cyjF/ULHazJPq0KcfyTw2c8AACAASURBVOZIn5ts2I6fcNeOOMtC5gNOtWRAUJescyyPAEwubphW9crufMHc'@; put 'X2GJtKx2qIU/7Lqi93xeqAwYC4Qbv6fjIluVa4Nh3z5+kBPp4U/XqNIXt7d92FEKzC4HbiMngmp8faKRrVMpf2j8yGWXxye1a2t5LuhRzcuZsK4Ld55rWK17VVLwEOFi4dTRdd8moytf+857a8wgjeHbuGAXI9Q9VMhixhcqdczVfOKpSEUOYsVmfsPISsMyn3OqxV1yDCMkVmHNeeHU4a/kjY9k'@; put 'hi+d4ucRImPs+BiWZ7Ouui6dWrnm9Vhxg3YIAdnm6CyQZFuk0he3AdlmzUPRyLZA7f/IlSOWXpoKA2WoEOe+3xNMfhbuApAs5Yc4noMIWQ6hGOERv72x8seIWbepxHlsaHyu3ClwaaVrOOM3DdxSuD6ZFIxz6o4bZjLvC4XagMF2SwjSGpmCz8+nS25z66uLFEwfxxifaR+rz2prcmllF1wz6rUV'@; put 'qZj/fUEGkG2OejkWsjWIOfSGyvWbcnQIvd6saGRbpA149PLhz12cyoEurK8ejqljDuPGCaFJMeSWJUL0HYrobJfe/CqU8uuOvMyMxDgZS4l2O0L84NAWFve5FaQvJ4jcPKVm9SeJ+u62upGHE4SWa9TZJaSLYPVdSsjP86nqk8RUcOVuhNEl9uQXBnM3O9XSSXsqXnsyn86sE50T0foB2UZDKEuf'@; put 'A9lmCXib2mhJLQr1QY9/c9yRF6c6y468AetUPL9g3JjlUIu73AqV5skLQE61bAli1pxdPuOzfMrbmyqv3722doCbmDcIbl6sh6l/SwTdqSj6Imqxh2SRg0T03vLmDw8zrZalpc4hP7D3V6nrPcLJL/PtXPP2N0dcjwj+nWYrBGFxn0dXim/cU1Ry96yjnjUSwbGv9Okg27vfHTdAY8bWntI1wplt'@; put '5qbFkg/GaZbV/4WetpEFYofMqG78KnNW9S1N0ci2SBv05FYnvyRdf2TkFh4ldCLi/DpCaGko+l6rZZdTKXuCK/SOfNq6TOUsk1VudKLcZHDvuHDhVoybnyvUdYfmtR5P5Dx3YWNlucXE05RoJ9m3rg3m+dxJS399TdWrjakcT7Zl3VF//Ale1vSM/ZKYtIlztgQ5lIkzhq/ZmW0bc1U/kG2OegbI'@; put 'NvuOiZYbudgx+Kli3fzNuWn+Rj+voWooQmIOEuinCtGcocioxPkpFmQ+9rqfToQwso90+i2YVz+y1qX0m+yxmsbaK/sENReq/RpazZ33NfvI87NOWOONx6LbNw4r0c3Suzg3L8QYd1R9Uolzq8HarmmpqluWT9us89bVVmtCeY4jPqgrTniNrqBfTBy5Zls8+PWVtkC2OeppINvsO2Zh/ZjhHFvr'@; put 'IqVrLNH3e7rIYV2UbrINIiHPcxXqmm9wb224IgcY4XcQJn9o8vLXYGs5/PxZ2Hj8WYxbswkmR4SWQ2TcMhSivyy4uLG5+viP4jke8Ce/UIz7CKEX2eV6rZY9Gim8rLV67fJ8ItwFddU1hvAsdShFXSokKdixSuXigkS35rP/1KfPAiDb9GGblGRJtobV/4WeQn9gGzkpiKN2jka2xfrgZ4od5q8z'@; put 'RbbSYBmfu9en/4pbvlt0tbDLbVj/dp6wTIdS8rTB2M3NlZVfxEMYUQHJkwYLVo/pLxTrUodaNNXk7m7lEAlSdxGCHjF9xp+mH792SzzDXlBf/VuO+B8UojmC/QhWWi1mzDngm0Fzk7kFHY8dmWh725qRlUWO8sUm93Q5s3YqZXXMbL5wUvUbcMRlcwSQbSZmZQI6JNmaVr/lPVX9AbJNANg4ukSr'@; put 'ZyvJ1l2856LJh630xSE2JU3lSqpYF1fL+rnhznMNq22vQgsf1hibO3l03Y6UKM0zIQsbfzSYYHSLxX2/Clc/V3C2WRB6a6sPPxLPTsEddTW/Zth6QCF61y1/IWY3V639Yz6tcO+oqzkcEbIUY/x/9ukhb2UjC50FtZs7UQGyzdE/IAGyLV/WU/F4CP1Jr/MWras9jnG+PlLx+BJ98NNtxXsuzgbZ'@; put 'dmwtN1Yeagk8nyI6FmNCQxHRaMHnnLGbd1dWPgGr3PDzZX7dqJM4EvMVoh8Trn6uTgpf93HP76ZWvvF2rPmW59QNm0CxuiCUcDXs/MNOr3dBvOfC6Z3pyUlf0Fh5BGfiWYXqXQhXo4Xvc8EvmDxqJWRAQ7akFnAbObkJl+re/gxSGlq2vfWT08PJlhmkgGxTjXpXeXc0jj5WCLYhEtnKC1Luoj2X'@; put 'ZJNsgxbPbzi+ss27fXGxc58uW3qBz4VAiL7nIPpvJoz6x7/Si1rvlD7rg+9rzj3FlzDuu9WhFNvqugbGI3NWO2jJY6Zi/T7WLFG3r/3hmQhrj2vUWdSJihA6Lb631SS/va7mxZbeiVZ3qwPZpsgyhPDx9k85Y18rquMXU0a9Xp8vY010HLCyTRS5NPeTZOui7Lkdns/OiES2sI2cXifMX197NGZ8'@; put 'YySylXG23uLmy3OBbCUSswQihetqT7ZM78Oa6gpznssZ50adQp2XT6ta81l60eud0mX6TLdmTWTc9zt70YHglxZ5iYpSxz2GSm65fvjrTdFGKW+Su307Xyl27Ds02FYIIQzuqVedBWfnU6hMoCQh+ivC4hw7LvJIQ1eLL5ha+cbKaHjl8+dxkS3WHPvF+q0un0HLxNgk2TpV9uzOts+6pEnrfGA5'@; put 'Nzk/+Prahs2ZsKcv6pjfUPV/GOF3I5FtgTrgkW9deHy64mwTxVz+0WtWWmZjRC7pThgIecymnQVq/5s4ok/lU/L8RPEK10+eRbZae+4p0vuf3P1zIQzL+6mmF10+rWJVXTS9t7x59MGG1bqizLn/Efa2Oil43ce9F0+remNrNBm95fNZq8coDsWzWKOOS7oQLnM360rhb6ZWrn6+t4wl1XYC2aYa'@; put '0RTJ869sFb50h/u/YyOtbIFsUwR2BDELG0f/gAv2TiSydWnlD25zKpNyjWyDw7lnw4n9DMu6B2F0fugQueCszdy1tUQdNJvQtmegfm73SSCJo0ixjjKEsVhXnBWhLRg3DbfV9E+HUjrxupqGjT3NxtvW1g5gfO8LBVp5lzq8e73ffliuDT47mdSR6X0K4pe+ZMk4umm/r6cihG6x38o2mbdNU1w3'@; put 'Tq1cvTB+qb2/RwfZ3v/+Wftgg3/dUwYpWNlmzuEBskVLd7g/iUi2sI2cXn9E20Z2KCX3Thj54qT0WpG89LsaTzix1dz7oFMt7pYrWJ5FCiHeVhXHVVNGrYLz3DBwy5vfuuK5wGAtfwwtqi6by5SFKnb+1RDG7OtqGr6J5DFJuG2+LS/2KzhwlL2N12j9QNOKfj6jas3HyXs7NyTIkoRzGyp/gYT1'@; put 'gH13RX7J0xTXXT6HuHHmMa+25Ya1mbEiLrJViGv/yaNWfp0Z0/q2lrv/e5rez3PQi9+1fnhKpJUts/AR1x6/9r99G6n0jT4QZ2s2RlrZynq221ubro4nLCR91vYsWdYnJbo+zWPtvlRTXCHl4RAymLvFoZQ8TjhfOLn6jc+zZWcu65XpMzEWFxtW2+9camm3+Fyf1bpHIY4HsKkunHFC+LSF8185'@; put 'ugC5Cv5KqfZz+1jbjF1bC7SyX06rqnszlzGI17YFDaNHK8TxLBe+juQXQgiOkHhdV7QLJlWs2hWvzN7aPi6ydan9xpm89R1BKUG+QGihhVW/DEp4h6wgGBbu/l6gbaBPtl7UDG+XtIepRATtCrazvxePzQo3RU8BmLpNmEVU7Nen6YgJUxTj0tICvd8jW1v+8/3wZCu4QhxTEBb/wIxxO9bh8I3k'@; put 'i2jjybavotkX7XPGzQ5/yraKICL4nv9nDXd8LkzWnmov4Bmd0rEeq2V+uGxN8vNS5+B6w/BcyxjbYREPZlzOna4et+MXaks426VNoe/bbfQ/c7YxKX6dnS/L9hzqluIfD1YUji2LW5wIrtMinSsTLGFexYSvI7VgUIIkDJUWPEKZuAPq54afXfMbqvZhzLgOYXx5uDNxWT+XEm2BJawnrqtp6Hbj'@; put '+O4Vp+m+kj0LKdYn2DXIs3RdcY2fUd34XLR53Zs+n19XU8GEsUxTnPva7VawusYS9Jy+cm8gLrINbDlxFr+jZehBrr1kkWlpV/di052W2j8P/pzsWHrS568vHMRKUKJ2ZKGJhB7jpk/4x5HaV+q+DdnHm3o7kxl1ONDs4yZY1cPFXdp1ymdC/r/rnLG38EtMHZzdfd35ZUHu3XWdXna98hKsbCsU'@; put 'ohfIcclfQ9p3GE6x8m/O0c20SXtp8k8yn7QjGb9mqu+CtbXfd/PdfypQ+42x50QO6m8z9mws1vpfs+/X/TaEZo6S58FOpW0CQvhWe/1ig7U1q8R5fUvprodnHfVh3lTRWdhY+YNm354Xi/WBB3X5csiMtxxC+WlfSLwSF9lmahKDHkAAEMgcApFIV5byK9b3e8nH9t7vUPbWQ/3c7j6Rq1R30c5T'@; put 'CFZuU4jWJamDbC3r5xKsv4gYv2XG6LpuyR1urx9+GmPscada3C8oXX55w4LciYl547SqdZ7MzYT0apr3ZsVhiuJYijDqEguuEH2jQN4LrhmV30diXW4jq8zY6jH3qumFHKQDAoBALiIQiXQN5m5y0JLHmWLMmz4yvlzBuTjOdNh09/qKYq9JbubI/I1GC4pDdfi354lzseVw3B4an3v7myNGCyxe'@; put '0pXOfjJpDUL4rxibk/KJcBetrd3Xg9r+7lCKjrVj1Grs3FzgHHTy9IpVn6bDP7kgs3Nl23DWPkjlWzzWXi0XDAMbAAFAIDsIRCJdnRZ+6bVaHlaZ+HNf2PZLBP05dccNc+DCySYyxnXLjYwQKtb3e6fZu31Bgb53qX2n4NY3jzlXpQUPKEQtC+qVhOtUSx+iBE29cvhL7kTsycU+d64/cSBj5jMY'@; put 'd802JQT6inN23sza+g25aHeyNnWQ7b1v/WQQQepXQLbJQgr9AYHej0BP57kYkX9igWY79cKV+UQCqfTavIaKUyxm3aJR5zCCaZec1bIyk4odL3Bs3jh4y8BPg+e5c+oqhvmspudCzzUxpi9SrF84edTK5lTamE1ZMga8zdf6mKo4fmK3g2L9aySs866peqMxm/alQ7eNbM/cnyD0GZBtOmAGmYBA'@; put '70QgEun6L4Vh9A7i9KZWE0P93DDuDdS49Z2GMb4FY3pkaP1cGZ9LBPkbU7U/XjdqjT+kclFdzSGC0mUIoaPtImUsNCHk3KmVazb1zpnU3WqZ/GLLkB13YSQm2j/1Wi27VFI4YWbN2iX5MlY5jg6yXbxx3AGMez/2Ws1dy0Ll02hhLIAAIJBSBBi3TF0tfJQb7BYopxYeWnme2+IzpyHEJznVko6L'@; put 'UMHWFjO+RIjOdlvKU7Ia0Jy6EYcIzl9wqIVdLlwpxPEOo9a5U0es+iKlTsyiMJnPW3nzqPt1pfQ3lCgd94UMy9PkUEuv3G9LyXP5UgO4c2X7wbhCl1d/AGEyCCMZdcwRwYpCEVUxIQQJTAIlvGTQACFEYIwwIQh3DWsQQoaucCHjCrgU5P+5M5Yxkl+7hmFkIEQEd4TYdDNJCNZzKI1/jN1fojNs'@; put 'xx/BYy/HxQWPKBMjiU/7xxK99l/8sRo4ACPnXTEhBOP2wI2gI7AI8UUkrIP62uOeutgl38visxdRtYzTSsSuwBixnJb+WK9QGbzDl/4AqsDnsnkgBktI7NsvqwiB5Lyw+0H6gMr/kKA/2r/BRsfQb073lwzIke8G50BAXsD/AnMZIM6FkJNBcIQ5978vAs0xQfJxk591jBPL4cu5wjEm/gdR/kuo'@; put '//32lz9sRVBFzjXGDS9HvCPkRCN6kVMp2adQ22e/7W2f9m/yhU/j6zWbthdo+8zeU1yyOFfTVyYyf1LZ59a1w/ZViToTIzKRErXb3RiDuT/GgvzBU7vh+ZI1Y4oN1feUSrTT7DaYzLdZI/r5U6vfXJdK27Ita97ainMwoU9SotrTDyBC1DudivN3+XBcEf2PQra9APoBAUAgYwg81DiunGraYIHE'@; put 'LynVTvWYzUe4rV1d/gD2ZIwQaCOlzkv3Voz6D9TPDY/U3LXDRxrCXOBSiqtDt5YDMdv0OY7M3xNDa+KK93GF6qfaJRGsbGaMnTe9Zs36jE2MDCiaUzdqDOe+5+xhUFKtTgqeRR73JRNPWNOaATPSpgLINm3QgmBAoPcg8KcNYw+mhFzJmfEzg7u/l4zl/rW24I26ql8yKY9DOZLBSPadV1d5KsZk'@; put 'PiVKt/hcf7IUbj5MSMEcjShzLeE7z67PazXvduDii6fVvvlSsnbkUv85bw4/liHjJZda1qVEJMFqgyzdN2XUqu9yyd54bAGyjQctaAsI5BkCd68/bQjj3ttM7v05xaojWsaseIYvCUOjroeRQf8wefTKHfH07SttZ20c5lJarMkKVa7TlMJS+7jlcYDPbP1PgV52j4uWXd5i7hjelXBbdzvV4svz'@; put 'rWzdbauHHVHo6Pe0JXzH2MfrUEtXM+659OqKV7/sjfMDyLY3eg1sBgSSRODutacNQBr/rdvYc5mmOAsjiTOs1r1MpmlFnBOkcIKpUKiOfFar6r+8gQgJJYlQWbpS8uSATfpF+XLRJUnow3afU1dTRoR5o6o4poQ2kF9a/ld/GPd3HUy3NL/b5WMZRoQQWVSku3+fTxm+5q6vGKJyx1KE0Ej7gBXq'@; put 'eI9x9supla9/lA4/pFMmkG060QXZgEAOInB3449H7vFtebJQ6z803ErWbe7d5rNaP3IpJYtVjlcRXWtr9umi3PO1QOgw/4h2Oz24WPfhZs3ArraCwQgbp1Kq/txgnmN0paAkOGyDeVp0pfzoqZX/yJuQlXS51F+Wbu2IWkzIXSp1/DBWPZKMKXHc6lL33JpvhOsU5X+1hPvELitcpfgDg7VeOqVy'@; put 'da9KfgFkG+uMhnaAQB4gML9h9CzOvdPtye+Dw/IxTx3B5E4ulNU+S2mJt3SgTK7vKFIKFK/vGou7p8oV7/8KHcyaMmrNzfab+XkAY1qHIPMte4p3ne+z2mYXav2HxKJMEq5K9L8y4Z6cT+kdF6we079NfPtakWNQly8fpuX9zKWUjL266tVeUwMYyDaWmQxtAIFejsD8908p0D3oNpN5rw5dzTZ5'@; put 'vv3IpZf/3mM6Vsg4z1QMVf6RtFT3OV7T9WiqZKbCrt4kQ24tC942DWNyta4UduwW9DQGjNQXmGZdNmN4+Hq6vWn8QVtvXV8xULXIEwrRTrLbzzn/XKHKL3vLChfItjfOPrAZEIgDgVliFnE1rHxUIY5f2buZzNOmEsftPs7vvaG2fk8cIqFpBhGYW1+9n8fY9WenWjxGpc6CaKoxIm9iRn+dT0lG'@; put '5EUytZU9qquFZ9nTX7b4tn9VqA84a3rV2vei4ZLtz4Fss+0B0A8IpBEBeQ54z1unX8K5+RATnYXtPWbTdxjR64zR7zw+C8ukGPDKdQRk/VyfaH3QoRRVRrs13uT99jOXs/yM6yrX97qLRJH8MOuD72uFu0vGc4xuV4jWUeu71dj5ta4UnHVdzVsbc9mHQLa57B2wDRBIEoGFDbXnG9z3Z406i2yi'@; put '3uXCvGpGdePbSYqH7hlGwF8/t3jvxabV+sf/b+/M46Oqzj5+lrvMloSEHbVaW1srVqwEkswkmMgmuFYL1drW2triAoEEBKy+bbq4QIAkIChql7eLWql1QUDCkpA9CO5Lbat1X1izzXKXc87bG3rzxoBCktnnmX9aP3PP8/ye77nkN3fmnPO4lazRn5c+qLe/Icuuixb7mt6MssyIpitvyPuOQOLB'@; put '3l2VOGevYkZmLDw/fltAgtlG9LaA4EAgdgQqG3xf1bjZIEuOYbYKzez6J6Xq7MW+phdipwwyD5ZAeaN3BGOhhQKROb1Xf/eNa3LjTSKUHywqqG0YbM54Gr+sIW8uQWQlJVLPsZcycTwhDpGrimdu+f+vcOJINJhtHE0GSAEC4SKwtqbQ00X9z8iSy2fHZJx9LLj5rcWTWhrDlQfixJbA8l05Z2gi'@; put 'cL9Tzijo28rPVtalH/zALQ37VrId71je4LNO31r0//e3qTultGvn5j7zSGxn5djZwWzjcVZAExAYJIGKpsk3C2TeY4exjlAkmF5f4q357SBDw/A4JFBen/fN/zQi+QXF0llHGsZ8+hU02g845IybFnp3bYhD+QOSVL51mttwHNjmkNPy7AAydf2TYDzp5ombPx5Q0AgOArONIFwIDQRiQWBdfX5m'@; put 'F2bPSUQ5zc4fNNsbnJJzWjLtwYwF23jOaS0gSjs87JsyVctNoZ/SV2unvv9dtxgxflFR8mwLKq/LOcdEvFaVXJl2vQ7qufOmnE23xdtcgdnG24yAHiAwSAKrm6f/1BShO+wwBElvc8Smlnpr/zXI0DA8AQisrisYHqLmbYLz62Xq6N4qZPWJJFj5M22Tfxyvv2kOFO2KxvxfEUxvt8ebTDukyO6z'@; put '4q1pAZjtQGcYxgGBOCRwT+MFp3aa7Y2q7OnumiIEZ0yYSxfnN6+IQ7kgKYIEVjXlnUSxa5nOQrMwwnWmw/Gtpdnb2yOYMiahVzVdcJJutr9in9HNuKkTpHxzYX7N5pgI+oykYLbxNBugBQgMksC61otLQ6xzpR0moLe95VJcE0q9zYcGGRqGJyAB66tl10HXBKHQd5bktr6fgCWckOTyeu8zlMrT'@; put '7YvdcuZv50x44kcnNDhKF4HZRgk0pAECkSawqinPiZGzViDW0ynFYMFlSwp2L410bogPBGJJoLJx0iSOUS1CuNvT3PLQfyHckT0njp7kwWxjeYdAbiAQRgJ3tk4cSjT+uiK5h1thGdc1hHH2Lb6mV8KYBkIBgbgjYP1OHUChN5T/LpQyuRZQkPO8Bfk1b8SLWDDbeJkJ0AEEBkmgvKXgHG5oTfb5'@; put 'uX790IcOOe0bt/ia9g0yNAwHAnFNYP2eS1y6abxo8OCXLaHWVjeJKFfNz9v+aLwIB7ONl5kAHUBgkASqmqcuZkJf1hMG06dL83ZeMsiwMBwIxD0B6wzwe/dc+kDIaO/5ndYhpd1708Snb4oX8WC28TIToAMIDILA+j3jZc5OfiLI2mZaYbjgDBF6w6K82gcHERaGAoGEIVDZMmUp58ZdtuDhzi/W'@; put 'mW1vT78uTG0jBwsCzHawBGE8EIgDAla/Wt7Z8cp/Goh3H2Rhcj2kIMe58fSbVRxgAglJTKCycdokjrVddolOacghZJCv3eh7PC5+RgGzTeKbD0pLHQLWWcjO9JNebtPe7zZba3EUQ2T80vzGV1OHAlSaygTWNEwd4xdtryvUlf7fD5xBj5p19k0TNr0VD1zAbONhFkADEBgkgdUtM9Iplv6usY7u'@; put 'tmvWky2j4mu35rW8PcjQMBwIJASBVU3TsyQiXja5NsYSjJGkUypNKc7ZWh8PBYDZxsMsgAYgMEgC6/dMyQga+A0u9JG22QpEvrQkv/HDQYaG4UAgIQhYK5IRkpv8+sFxtmBVSr/u5okbfx8PBYDZxsMsgAYgMEgC1pOtSh2v+41D3Z/qrSdbWdCxJQUNcfEV2iDLg+FA4LgEyl6dpWR2tD/GhHax'@; put 'fXG6MvrX12c/8j/HHRyFC8BsowAZUgCBSBNY1uBLk4n8GkLiZCsX44amSNLX5+fW/TPSuSE+EIgXAlUtU+/8z3qFW209Q92nP3ntuN9dHg/6wGzjYRZAAxAYJIGymkLHUKej0eDB86xQXJgGQerFpb6d1YMMDcOBQMIQqGiefI0Q5p9swVnO017xK4G8m8du6Ip1EWC2sZ4ByA8EwkRgXevF60Ks'@; put '80Y7nISVlcV52xaFKTyEAQJxT2Bl0ySvEKKOYEItsUMcJ30SMIJj5+Y8fjDW4sFsYz0DkB8IhInA2taLfqSxrp5DLDAiL5V4a3oWi4QpDYQBAnFLoKI+/3QNac/b238cNL2LUvkrc7L/9lGsRYPZxnoGID8QCBOB8gbfbILJwxgT0v1VMjeDArtPu8VXHReb+sNUJoQBAp9JYEXN+GEaYX93yhlD'@; put 'rYswokFVdsbFXlswW7hxgUCSELD2GcqYvGaIQPf2Hy6YSTCaXepteDxJSoQygMDnErBW5ROMX9KZ/9Qj/wZMQ6LuixbkVm+LNTow21jPAOQHAmEi8LuaQsd+SauXqJJth1Soa83cnC3FYUoBYYBAXBOw9tp2am0vE0xOtz9wuqWhs2/MeTLmHzjBbOP61gFxQKB/BFY1Tb4QIXOLPSpotH/icI6Y'@; put 'sHBi9Xv9iwRXA4HEJHBv62V/CLK279nq3fKw++dMeGxOrKsBs431DEB+IBBGAtYZyaZDbmVCP8sKK5AQElbL5+dtWxLGNBAKCMQtgarmaWVMaD+3BY50f23HNePumxJrwWC2sZ4ByA8EwkygovH8xQKjnr62JtcCijrkvAUTnnkjzKkgHBCIOwKrm6ZPNFGo1RZGCG1zSu6T5mRvDMRSLJhtLOlD'@; put 'biAQAQLr6vMzkZLZGmIdZ9jhJeKoDZpdly7Jb+yMQEoICQTihkBFc4FPCNJgCxrh/krnoWDg5OLcP3fEUiSYbSzpQ24gECECK5uKbsWI32mHF0IImaq/Ks7d1vP1WoRSQ1ggEFMCFXUFozUUfE2R3EMsIYwbwaHKF776w4mPxHTdAphtTG8LSA4EIkPAaiaPuwKPE0yn2hkoVvxCiCsXeLdvjUxW'@; put 'iAoEYk+goqZwiDtt+PNd+r7/9nY2dCyYd1FB695YqgOzjSV9yA0EIkhg+e7CUUbw8EtOechwO43fOPyuU86avshb+/cIpobQQCBmBKy9tkHj4CsydZ5y5MnW1CmSfaX5tXtiJqr7gA14AQEgkLQEltXnfE+mjj98qkCBXsYIf7/EV/tC0hYOhaUsAWu/ecDp2qhxf/cKZCE4l6lrYXHu1spYQgGz'@; put 'jSV9yA0EIkzA2ncrhP4ExkTtnUqhnhcpkX9yQ/YTz2KMRIRlQHggEFUClc1T7+ZC79nulqaM+OuPszfMiqqIPsnAbGNJuzpOogAAIABJREFUH3IDgQgQsNrtpcvG2YQ4vxMwDv/AIXsyj5UmZHT826WOvHxB7jMvRUAGhAQCMSOwumnG+SYK1NoChOBvd+r0jLKiWjNWosBsY0Ue8gKBCBAob/SO'@; put 'YJzdi5GYJlOn51gpDBbsUojnQ4LpFs3Q1i4+HxrMR2AqIGQMCSxvyJkpEccmW0KaMvqg3vnxaTcX1casry2YbQxvCEgNBMJJYEXj+RM40u+TsNLdQL73y+RaECP6Bsb0Mcz5RhOLt2DPbTjpQ6x4IrB816QzOAnuVagrzdJl3f8SyTi51Lv1UKx0gtnGijzkBQJhIiAEwhUN518c5O2/ccoZPSuP'@; put 'j/yR0UMSdTzMuXZvl6q9Wpa9N6an6ISpZAgDBD6XgHWwS4iS1xHC3R2wGDc0WeCvLChofDdW6MBsY0Ue8gKBMBCwjLa8yXst50aV3TDbCmsdYvGf32vfVqnntsUFzQ+HIRWEAAIJQ2BZgy/NZP6XnHJGz15bB/GMm+etjtmWNzDbhLl9QCgQOJpARUPRFZro+l1vo2Xc0AmWH2IyvnXxxNqPgRsQ'@; put 'SDUCZa/OUkYH+B/8xoFv99SO6a9L83b+T6xYgNnGijzkBQKDJLCq8YJpOmv/iyJ5uo+ls14GC/kl4rxhoa/2T4MMD8OBQEITWLt7ZqVm+ufbRcjEvWle7uaLY1UUmG2syENeIDAIAiuaCs8M6gd3upWs0XYYnQW7kOA/XjppzyODCA1DgUBSEKhsnlzMhVllF5PpOHn3def9OSdWxYHZxoo85AUC'@; put 'AyRw954pGVIo+BQh0iQ7hGb621XivqQ0f1f9AMPCMCCQVARWNRZdhjB/wi4qQx39jinYuDnZG9pjUSiYbSyoQ04gMAgClU0X3MWEuRhjTKww1kpLhsz5S/N3rx9EWBgKBJKKwIqWwnxJ0Houjpxj4ZSGhJDJvnyj9+kPYlEomG0sqENOIDBAApUNRV/tYodqXfKQUXYIxvW/nfrhybNnz97ABhgW'@; put 'hgGBpCNQ8ezk07GJnufCTLeK48I03MqQ826csOmVWBQLZhsL6pATCAyQwJrmC8sMEezpSWuw0FuYqxfCKVADBArDkpZAxfOXD3Ex/IpfP3TSEbNlpoN6Lpub+8zmWBQNZhsL6pATCAyAwIr6/PEa79zklId0b9Q3ua6pkusH83N3wIKoAfCEIclNYP2eS1y6aTQZPDjOqtTaey4Reen8vB3LY1E5'@; put 'mG0sqENOIDAAAqubp91uCu1X9tAu/cBrTpkW3eJ7ad8AwsEQIJDUBNbvGS9z/oUHguaha+1C3XLW+jkTHr8hFoWD2caCOuQEAv0ksK7+okyuiFqd+c+xhloHV0hYuabEV/vXfoaCy4FAyhCobL7gV//5+vh2u+Asxxc3/uC8318aCwBgtrGgDjmBQD8JVLZMudIwgw9RIinWUM3s+pAQx4Ql+Y0f'@; put '9jMUXA4EUoZARfPka4Qwew54yVJPeYUFO7w/yn+qM9oQwGyjTRzyAYEBELhn98X36GbnzfZQUxgPZ6jatXOy9xoDCAdDgEBKEKhsLspBCLdwcWShvkvK2icM9PUbfY9H/acXMNuUuOWgyEQmsH7PlAzNoC2mCJ1p1WG1C+OM/WDp+c8+msh1gXYgEGkCFXUFo3WsvyJTR5aVy9r+QxXHmSUTdrwV'@; put '6dx944PZRps45AMC/SRQ0Vx4mmZ2vaBQd4Y11K8f+sgphp6zqKj2QD9DweVAIKUIrK0p9Phl7WWJKN3df6ztP4rkvqA4Z2vUT1oDs02pWw+KTUQClY2TJunC2CoRxWHpZ9x8lhJ+fqm3OZiI9YBmIBAtAqs3z1Cdw92bOo39k62cQgiuSmk/nZuzaVm0NNh5wGyjTRzyAYF+Eihv9H6XYvmP9jCF'@; put 'ev46N2fTrH6GgcuBQMoRKBNlZOSzz1cEzbZiu3iPMuL3P8necF20YYDZRps45AMC/SRQ1Tz1eib0B+xhEpE3FOdun93PMHA5EEhJAn3//WSoo5t+NP4RX7RhgNlGmzjkAwL9JFDVMmUR40a5PUym7j/My9ncs1G/n+HgciCQUgQqWyZP5dystotOV0a8fX32hi9GGwKYbbSJQz4g0E8Clc2Tf8qF'@; put 'eYc9zCGlPXjTxKd/3M8wcDkQSEkCK+p9+YRKPQuiMh2nfcIDh8+I9l5bMNuUvP2g6EQiUNU8uZQJc6WtWaFpDx3wOK8rG7tBT6Q6QCsQiAUBazW/yYyXKZE8Vn5rRbJE1ZMX5O74JJp6wGyjSRtyAYEBEChv8P0IIbTOPj0qTR65sdMQ3y71boDVyAPgCUNSi0BFTeGQIG1/0yGlH9lryzmThHr6'@; put 'goLt70aTBJhtNGlDLiAwAAIrmgrPNJm/VaGu7r6cmtn1nioNO7fUu/XQAMLBECCQUgRWNeU5kVAaEEbnWYULwTnF0swF3pqt0QQBZhtN2pALCAyAwPLdhaOEFnpZpuowa7hudrXJ2JmzsKDhHwMIB0OAQEoRePTRWfSTL3StNHhgfrfZou5We3fPz93x02iCALONJm3IBQQGQMDq+CMU3KqxzjOs'@; put '4SbXQ5TQWQu9DU8PIBwMAQIpR6CiqXCRQKJnRb9LHva3GyY8dmU0QYDZRpM25AICAyBgNcEOGoGtXJj59nDO2PJFBQ1LBhAOhgCBlCOwoiH3GkLUnu4/QxwntfzwvIfyogkCzDaatCEXEBgggYrmwp8LIcrs4U4pY1fI33F5SVFt2wBDwjAgkDIEKuunfMHA/n9QoqhW0ZrZtS/LNWbsnOyNUTtf'@; put 'HMw2ZW43KDSRCVS1TBsfNDp2KlTtXiSls0CHiw65tNi7bVci1wXagUA0CKxo9J7KOHtepo5MK1+GOiakmV1X35Sz8Ylo5LdygNlGizTkAQKDILCswZfm1/Y/PcQ5epIdRiHO1QeCoYVlRbXmIELDUCCQ9ASsFckBw/+WS84cZRers2CHRx66kuvo3uJJW/ZHGgKYbaQJQ3wgECYCFc1FPs30b1Go'@; put 'M80KGTI7Djllz9SSvPrnwpQCwgCBpCRQVlMouSX9aUrl6X0LDBiHPnJKGStkajxYnNvaESkAYLaRIgtxgUCYCVTUnDvkEO+qzXSeNM4OLRPXAweDwZvg6TbMsCFc0hFY1uD7qma0/a8qeb4uU4erb4EhM7DbLWWWHNb058qKakPhBgBmG26iEA8IRJDAquai2SYL/l4iqtNKYzAtoMqe7y/I3f5Y'@; put 'BNNCaCCQFASEQLiy6fzcgNmxzimnjUMIH+WBQaOzziFnLSjN2/4CxkiEq3Aw23CRhDhAIAoErKPn2sXH29MdI8fb6QiSXpKEuHSub+c7UZAAKYBAwhO4s3XiUKpL18tEni+wGIX7mK5K0w5yod+vSfqqRdm1YVmxDGab8LcNFJBqBJY3F/iYEdysSu7ulcndLy4andhxxY2+6n2pxgPqBQIDJWCt'@; put 'UuYC3Y6Q+K5EFEffOARLbxMk3am5xEO3jKv2DzSPNQ7MdjD0YCwQiBGB5fV590hUubl3eoW6/0h0PP+mgk2HYyQL0gKBhCSwqsE31m+2/9YlZ03A+Oivlk2m7VXl9DnFOdXPDfSrZTDbhLw1QHSqE7h7z/iMYEdXdYZj1ESbhXXmqyp5fm/4A6Vw2EWq3yFQ/0AI3N0wYTbm9A5ZUr/cd7wQgsvU'@; put '+RfMxS/neav/3t/4YLb9JQbXA4E4IXDH9pyRskqelqiS3WO4QgiFurYZXP9hqXfnB3EiFWQAgYQhsLolJz1o4FKM0WJ7IWJv8ToLdqYpQ1czDVX1Z38umG3C3AIgFAgcTWBZg2+MX/9kxxDHSWf2fjdotr/pVob9YEHu9gbgBgSAQP8JLN816Qwi4V8KYV5h95Lu/aGWEvkdgpQ7TdH2p1Jv83F7'@; put 'S4PZ9n8OYAQQiCsCdzXlfZky8YhE1Z4VypZAg4X8quR+lGD+s+Lc2vfjSjSIAQIJQMBqz/fvMe9dJGHldozxhL6SueAsUx29q0Pft6bEW/u5Rz+C2SbAhINEIHA8AtZWBjMU/ItHzprc99qQ2XXIIw//BaWhR2+eWPvx8WLB+0AACHyaQFlNocMta1dwwctk6uhuddn7xbihOaS0pwRGdxTnbH3x'@; put 'WPzAbOGuAgJJQuDuPVMy0oXrzyGj/aK+JVmLpzTTf3iE60sPBFnb+nk51f9OkrKhDCAQNQJrawo9IUVcTTD5lUB8ZN/E1rdJDinjcS6xn5dM2PFW7/fBbKM2TZAICESWwL3PXjyRmWyDLgJf+LxMlCgvOCQyc0721o8iqwiiA4HkJLCqKe/LHaHDD7iUzNxj7c8VAv3dqaSXhgy9tdS79ZBFAcw2'@; put 'Oe8FqCqFCKyrvyjTkMylQfPwjXaTgr7l62ZXm0RdBxXq/JtA4oH5udv+mUKIoFQgEHYCR37P/fAbutm+1q0M7dmCZycyuR7EiP7DrWTOv2nixl1gtmGfAggIBKJHoKJxch7GaC1H5jeO+upYCCFT9V1TmPcLKv/RQ9SDc7I3BqKnDjIBgeQnsH7PeFeX5rkGI/4zhMnJfSt2ShlbjZDxPTDb5L8X'@; put 'oMIkJVDVMnWmg6bf5zcOnNK7ROsTdZoy8pWAceARJ0e/u6mgAU6UStJ7AMqKHwIVe6aPdiPPti79wFhbFRa4y6mkffeGCRufBLONn7kCJUDghAmsaZ56qd9s+4NCXRm9B+lm4DVC5RJHe8au4plbtBMOCBcCASAwKAKrm6ZPDPH2Gomo3e37uGDMIaeXzZ24+dfWf4PZDgovDAYC0SdQ0Vh0kcY7'@; put '/6xQd4/RWvv9OGIbXZLz+rk5Ow5GXxVkBAKpS8DaGuSS/Fsk6iq0KXDB3zZV9dyl2dvbwWxT996AyhOUQFXjtLO7zE+2O+UhPdsOdBbskqjjDqXNXQFPswk6sSA7oQlUtUwv0sz2TfbxjlwwUyaO0vl529f0fKWc0BWCeCCQQgRW7CkcxkKhapmoPYuhrH19hMjzbvE1/C6FUECpQCBuCNzbOG2E'@; put 'gdlOE5k9v9VKxPmkyduv7n2MI3yNHDdTBkKAwGcTEALhe1ovXG7w4CL7KiE4Rwj/cqGv7hfADggAgdgQqGgqukcg3tPuEgsSoJjmF3u3P99bEZhtbOYHsgKBfhFY2TC5yBSdT8rUmWYPlInz/oPB0PyyotpQv4LBxUAACISFQHnjtBEeSdkbZJ09W34k4niiOHfrN/smALMNC3IIAgQiR6D7iDhV'@; put 'bMIITbKzdGr73nHTYTMXTap/LXKZITIQAAKfR2Bt68WLNda5zL7G2uojMPeWeuteBrOFewcIJBiBiqbJlxs88LB9LJzOAh2EyLMW+5qqE6wUkAsEkoZAeeOkCwzm3+CQPFlWUdaiKFVy3zYvZ+vyYxUJT7ZJM/VQSDISWNWU55RJ5lMG90+x6+OCP7HQW38FxkgkY81QExCIdwLWVp8sp/KwybXL'@; put 'ba2Ms39LhnReSVFtG5htvM8g6AMCfQisaio432D6Jpk63NZb1ulQBCmXLcrftQ1gAQEgEBsCVS2TrzKY9keCqWQpYNw0JCLNLfHuuv+zFMGTbWzmCrICgRMiUNU87TYmtO4TaI78ozb+JRnKhM/69HxCQeEiIAAEBkxg5e5pp8icbzO58VU7iEKdG2W6/8o52XsNMNsBo4WBQCA2BH5XU+g4JPPt'@; put 'mGCfrYAIcucCX81tsVEEWYEAEKhsumANR2xuDwmBOglRpy7Iq279PDrwZAv3DhCIUwIV9ZNPZ1jbQwjNtCTqLNCpUMeUUm/97jiVDLKAQFITWN0y4yyZyNuCZvuYXh+A/zLmg2HXzJ69gYHZJvX0Q3HJSmBZo/c6LMS6nlXIRugDQeSv3wpdfJJ1yqGuOCawfs942WQjH9SY//u2TJNpn2DimHKL'@; put 'r/aV40mHJ9vjEYL3gUCMCNy3+5JFfqPtbowJtSRwzjYqHWmz4PzjGE0IpE1pAlVN07xBdniLQl3p3f8eBTMl4lq8IK+64kTAgNmeCCW4BgjEgMDKxvydGNMiOzUV8uXzfdufjIEUSAkEUprA6s0zVGko/WuIdV7c81QrjH96OMk50X7RYLYpfQtB8fFKoHzrNDfxaI0Yo3GWRpNrAUqU/IXeuk+d'@; put 'txqv+kEXEEgmAlWt067Vja71lMjqkada0yCC3liaX/ebE60TzPZEScF1QCCKBKxP0n73vlpV9uRaaRk3dAk7C0t8O5qjKANSAYGUJ1DZMnkk4mIHR6ynq49MnE8ZvP2q3l19jgcKzPZ4hOB9IBAjAmtaZ6wxWKBni4EQ4vaFvro7YiQH0gKBlCRwT/OFpboIrrSLF5y3YSJPL/Xu7NeuADDblLx9'@; put 'oOhEILCmdfqvDRbq2VMrEUdlce7WkkTQDhqBQDIQuKd15lcwwtUa6zrVrocgeYNTOXzN5x1gcazawWyT4Y6AGpKSQEVz4c+FEGV2cW45a/2cCY/fkJTFQlFAIM4IWD2kVzblbySYXmRLM5m+jyLHtIUFNS/2Vy6YbX+JwfVAIEoEVjYWfJcL9qC9KMMjDd8p+w9cdB30r43SDECaVCawumVKbtDo'@; put '3G6fSy6EEDJWSou92ysHwgXMdiDUYAwQiAKB5XUFPoH1apk6XFa6dGXUOwzxcXOyN7RHIT2kAAIpTeCe3TOe1M3ApTYEnYVeV02nd6DnkoPZpvTtBMXHM4EVjd5TTa6/pFB39yZ6gwXbZeoZW+rd+UE86wZtQCDRCVQ2T/62wQK/p0Rx9NQi0A9Lfbt+N9DawGwHSg7GAYEIE1hXn59pSM43mNCH'@; put 'W6msr7Ewki4s9e2EpvERZg/hU5fAPa2ThxqM1Qgkvm5TUGnaZoniWXOyNwYGSgbMdqDkYBwQiAKBquZp1UxoU+1UElFWFuduWxSF1JACCKQkgTXN00p0HlqBMSbdAATqlIkyY17etsbBAAGzHQw9GAsEIkygsmn6XI5Ca+w0CnW/6DfaC5bkN3ZGODWEBwIpR8DqtBXgh1qdcvqwng+4WPnbofQh'@; put 'V5eN3aAPBgiY7WDowVggEGECVY2FZwd5V4NC3RlWKoMFuxx0yPT53uqmCKeG8EAg5QhUtUz5DePGD+3CGTMOSJJjeknezucGCwPMdrAEYTwQiCCBsppCaYQ7408hs+3bPX8AuFmd7sj65mB+P4qgZAgNBBKSgLXVJ2C0b7W7+lhFqJL71psmbF6GMRKDLQrMdrAEYTwQiDCBVQ2TfsQxu5dgSbZS'@; put 'aaa/PUMZNumm3GdeinBqCA8EUobAsvqJ9TJ15vf6UPsvD3b7bvRV7wsHBDDbcFCEGEAgggSsVclcSd+pM/+5PX8IkLllmCZfAQdcRBA8hE4ZAhXNUwpNFnjGPkCGcVOnVJ1fmrfzvnBBALMNF0mIAwQiSKCiuaiUcWMZwVSy0jBuaAp1fX9+3vZHI5gWQgOBpCewum7GcJMGtiKMvmEXK2PX04Zo'@; put 'm92frj7HAwVmezxC8D4QiAMC6/eMd/k1z9MIo55m8n790EcuxfOthd5mWCwVB3MEEhKTwNqWC5eGmP8OjEn3Vh+rqw9CdMbC/NqWcFYEZhtOmhALCESQQHl9fo7OuzY65YzuQy6sF8XSiyY1Llk4se69CKaG0EAgKQks3104Sg8efsElDxlpFyghecMhzfxOWVGtGc6iwWzDSRNiAYEIE6hsmXKl'@; put 'yUKP2F8nW+lMpj+HufytW86v+3eE00N4IJBUBNa0Tl2sm9pd9gEWJtP2SVSZUuqteznchYLZhpsoxAMCESRQ9uosxXn4/T/KRJndOw1Byh5dsKsW+3a+GcH0EBoIJA2BypbJ5wT0thqH5Mmyi5KpY8m8nK3LI1EkmG0kqEJMIBBBAssafGkCmU8rxDGpd5oO/ZO30qVR3y7x1e4Nx77ACJYAoYFA'@; put 'zAncXZ+9U6HunjUQjJtvojT3uFvGVfsjIQ7MNhJUISYQiDCBu/dMyZBCob8SQqf0TmWtUqZEXoeQ49el3q2HIiwDwgOBhCRgHWBhML0JY9ztgVaTD4LpDSXemvsjVRCYbaTIQlwgEGEC5Vunubmz7VFZcs7smypotL/llrKuW+DbWRdhGRAeCCQUgdV1BcOZRLYLhM6xhTto2tZ9Huelgz3/+PNA'@; put 'gNkm1G0CYoHApwms3jxDDbgPlCCCb1Oo09P7XSE4o1ja9p+9DD9b4Nv1LLADAqlOQAiEK5oKKxAW83tYCNyFEZ1W4tvRHEk+YLaRpAuxgUCUCCyvyz3vsPbhg8PdX+zZmG+n7j4NhyhPCEletHBiNWwRitKcQJr4I7B2d+EoJFy7NeY/xVaHkfzoSe9nfmf27A0skorBbCNJF2IDgSgSKHv1LMV5'@; put 'OP1ik4Xu670X15Zgci1AkLyBK3Tp4om1H0dRGqQCAjEnYD3V3rvnkltDRscdPR9EmbEfU2XSIm/t3yMtEMw20oQhPhCIMoHKlpyRXaHQgy5lyMXHSh0yO99Jk4YtIJq+/eai2q4oy4N0QCAmBCqaC6cYTNsoEcVhC5CxWjovr7oiGoLAbKNBGXIAgSgTsD7FVzUWfcUkxv8SRHP6pmfcNIJG2z/S'@; put 'naNK2nJ27CjDiEdZIqQDAlEjsH7PeNlko57QWFfPYsJIb/XpWxyYbdSmGxIBgegTWFtT6OmS/SWMm/MdUvrQo01X12Ti3oIJXnw4x/dmGS4D043+NEHGCBOobJ78bZOH/mi3qfzvVp/rS7w1v41w6p7wYLbRIg15gEAMCdzZOnGobKhLTR78sSq5M/pK0VmgQyGOJxGWby317vwghlIhNRAIK4E1'@; put 'DVPHcCp2MGGcaQdWiXvL/jT35ZHc6gNPtmGdRggGBBKLwN0NE8aqJL3Y4P7vSUR19lU/xHHKv7r0g/cFTfn+JflPdSZWdaAWCHyaQJkoI0Oa66o4YnPtdzAifozR5AV5Na3R5AVPttGkDbmAQJwQWNVUcD5CZJUQ4lz7EPbe0hTqrkPY/J8Dfr0p3N1P4gQByEgBAqsbZ3xJluW6oNk+xi6XYvWx'@; put '+XnV34p2+WC20SYO+YBAnBDoPoHK3XldmjJsccjs6Nl32OsJIOhWsv5imv6Km3KfeSlOZIMMIHBCBKyn2qHNTfcaSPuJPYBzdljG0qT5vtpXTihIGC8Csw0jTAgFBBKRgHXOsqqJn+m88ydyn1OorHo45wcdkms1wubauTk7DiZijaA59QisaZ2a7dfbdijUlW5VL4TgMnUuLs7dujIWNMBsY0Ed'@; put 'cgKBOCRwd4NvrEfKWBQ0266mRFb7SsxQxvyjXf9oHULa/aXe5mAclgCSgEA3gVVNeU6ZZm4wmP8iG4nBjH8Ip2vi0uzt7bHABGYbC+qQEwjEMYGVDecXISyWCyS+QTChfaUqxNNoIm1pW9Bsgd9z43giU1haVeu0axnTft/z9bEwDSLoj0vz6/43VljAbGNFHvICgTgnsKr5/Etk7Fxh8OBX+krl'@; put 'ghkSkbdxwZaW5NW9Av1z43wyU0jePa2ThzKO6pkwv2aXLRPHU/Nyt14WSwxgtrGkD7mBQJwTKH9xmpv4g7eZTJt3rN9zMSJBgukyJuga6J8b55OZIvJWN19YbIpglV0uFiQgMC4q9e7cHUsEYLaxpA+5gUCCEFjW4BuDEL9fIvJMjI403O79MljoY5mqd5d663r+yCVIaSAziQhUtUw9Q8bqjhDr'@; put '7FldT5Hy1/nebbNiXSaYbaxnAPIDgQQhYJ23fHfDhMma3rYu3TnmjL6yrSPwVMndojNtQayfIhIEKcgMIwGrt7OW3vUEJeTCnrACdSJB8krza14NY6oBhQKzHRA2GAQEUpdAWU2hpNLgZQbvqvAow47an2v1z5Ww8jhiZknJpPqPUpcUVB5NAquaLpios67tCnWm2XkV6lw8N+eZ8mjq+KxcYLbx'@; put 'MAugAQgkIIFlDb40wULzEcG3KNTdvZfx0y/sJ5jeGZLx2lhtt0hArCB5AATKagodWU7HIyYP9iyCYpz9W+VpOcWTtuwfQMiwDwGzDTtSCAgEUovA8prCUSFy6D6PnHnM1Z5+/fA/3UpWcUdebTW08kuteyNa1R7p6qP9iWAqWTkZN3QJKTeX5Nc+GC0Nx8sDZns8QvA+EAACxyVg/Z5b3jgxHyO5'@; put 'nBLpGP1zDV2hzjqB+O3zc2t2w1ah4yKFC06QwLr6/EydKg0csbPsIRJ1blTp/ivnZO81TjBMxC8Ds404YkgABFKHwJFFKh2XhcyOCreS1XP4u03A5FqAIvlvskRvLc6tfT91yEClkSJQ1TJ1vsFCK3sOYBG4kxA8NdpdfY5XH5jt8QjB+0AACPSbwF31+ZkE6QsFEvPss2l7B2HcOKSQtLWGoq1e'@; put 'lF17oN8JYAAQQAhVNBee1qUdaHArQ0+ygVhdfQ6H9Kvi7XQzMFu4ZYEAEIgYAWt/rma236dS92SZOlx9EwWNjn+nKyMXBFhnzZL8RuifG7GZSM7Aq5oK70VI3GBXZ5ihjyXsunBhQc2L8VYxmG28zQjoAQJJSKCiPv90Hem/lYhagDEhfUvs0g6+7paH3nzKhyPqZs/ewJIQAZQUZgKVzUU5QaNz'@; put 'qyq5M6zQXHCmUNeSWHX1OV55YLbHIwTvAwEgEDYCyxt839bMjlWf8XtukCD5b5TS2096b/h7YLphw550gcpePUtRDzq3qJLnArs4LsTbbuTIudFXvS8eCwazjcdZAU1AIIkJdP+eK4xbEBbFMnW6+5aqm/42SuTHEE776S1x+ocziacnIUqrapo6WeNdGyWiOI881ZoGxcrcEm/N/fFaAJhtvM4M'@; put '6AICSU7grvqc8RixcooV77H657rkzBd0pi1JCwbrriuqDSU5DijvBAms2FM4jBpouxBinD1EJu5NBj88K577LIPZnuAEw2VAAAhEhkB5o/cCiuVyIfi5x/o9V5XSmgyk3zrm7YxG+Go5MnOQSFHXtMxYZPDA/x/BKEQHEvLFpfk76uO5DjDbeJ4d0AYEUoSAddyeW9ZuSFNHLQkYh0b1LZsgSVel'@; put '9IeDKFBeMmHra3AoRorcGH3KXNZSeLLCjMD4AAALhklEQVQW2t/U+0xuq6sPbpO+WzxzixbPVMBs43l2QBsQSDECa2sKPSFF/I9ArNQ+eq83AoIkTSbOCo0b5dA/N8VuDoRQZfPUn3Kh32FXbjLtE4qk6QsLGuJuq0/f2QGzTb37FSoGAnFPYNmu3K+5HVm3a2bX1Rgf3T830/mFN7u0g2vm5W6G'@; put '/rlxP5vhEVjVMm180Di8Q6Gu7q0+CAlBiVoyP3dbQtwDYLbhuQ8gChAAAmEmYJ23XNU0qQARaS0X7Oy+4a3+uS4la69p+hfMy9vWGOb0EC7OCNxVl12jSu5CW5YQ4l1Vks+bm7PjYJxJPaYcMNtEmCXQCARSmMCqpjwnE+LHHnnELUGz/eS+KAiSdbeS9YhfdNy5YMIzb6QwqqQtfXXr5IKQ4d8q'@; put 'EbV7q4/J9RDFSvFC364HEqVoMNtEmSnQCQRSnMDqlpx0zZAXM6TPV6jT0xcHRiQoEccKoaM18dLDNMWnLCzlW119ggRvx5icZwdUafozEkVXzsneGAhLkigEAbONAmRIAQSAQPgIVLbkjNQN8YBEnZccK6rOAh0Sdi0zHTI0rQ8f9phFsrr6mCy0yt4WhhHxYyHPXOCrrouZqAEkBrMdADQYAgSA'@; put 'QGwJWL/nLqufODNotlVmOEZ/+VhqVOp5nXHjDhrSn7y5qLYrtooh+0AIlDdOG6EQvosJ40x7vEKdG92B0OxEO+gEzHYgdwCMAQJAIC4IdP+ey9iFIRZc51ayjtqfa4nk3HxepWmlI99Lq4dDMeJi2k5YxLrWi5YEzY477adaxoz9MlIvWVBQ03rCQeLkQjDbOJkIkAEEgMDACayoGT+sU3RVOSXP'@; put 'TEXyDOkb6b8LaqpV2fHToCrevmVctX/g2WBkNAgsb/AVcB56qvd8SsSx6FBOXkUZLuPR0BDOHGC24aQJsYAAEIgpgYq6gtFdon2FTByXHmsRlWW6JtdedytDbw+ZgXrooRvT6frc5FXNU/7KhHGlfZHJ2VuyIY0vKapti1/Vn60MzDYRZw00AwEg8LkE7t6V93VMxW1CsJkKdaX1vZhxU8eE/Atj'@; put '6TcKkx4Z+eGQT+Ar5vi5qVa3TMnVzECt3aCCcdOQSHx39TkePTDb4xGC94EAEEhYAlbT+k7WVqlS9wUydRzVzs8qLGR2HFJp2haKXFWyHnodFlPFdrorWyaP5MzcijDq6eqjUs8zGjt0RTx39TkeNTDb4xGC94EAEEh4Aivqcs5iGC3igl2hSu7/Hvf36bKsnqgESW9hgh8mWH5Id+IP4bfd6E/9'@; put 'qqYL1iDE5tqZKZI1KkTRXN+O5uirCV9GMNvwsYRIQAAIxDmBZQ2+MUwEf4YFvkqVPMc0XasELphpMv0dh5z2W0rowwpVP0mUAxTW7xkvK51pNICGS1LaYerXHR5V0ok9NViTu0yZM1WSTIQ+NDLfOp3Hy1foFc0XnuakanPAbOtZWW5t9ZHp/ivnZO814vz2+lx5YLaJPHugHQgAgQERuLN14lBq'@; put '8O9xjn5CifxFiSiOzwrEBWecm++7lMxtIda5iZquVpdLabeMKtoGUCbKyOi9G6llpgeyFCoHmYdil4th7RTM8akYo7EuKeNUk7HTTB4cFTQ73IzrMsLCMtvuv/dCCO6WMzWMSGe6Y9TrGvd/4Nf3v0q5a7OJ2z48+f2T9ViZ7z0tM36j88AP7bng3DyIhDJ9UUHN3gFNdBwNArONo8kAKUAACESf'@; put 'QHldwTkMB39BsDxdIkr32buf97IaIBg89PEQx+iXQ2Zgl0zlzQiZBw3OdM4DHW5FN62nxddmjRX92aJiGelZG17Fh0/PJFrGewR1onQcMGXmUCVFmE7G6TlEoBxKlXOY4Ke0h97NIogqEnWmEUzo8XQf730hOFcl97syce/UTP8mzFhLNBeOrW6dPk43A3t712Jt9SnO3bryeNoT4X0w20SYJdAI'@; put 'BIBAxAlYx0AaJrrao4z+jt848I1j9dP9PBFHjolU/WnqiI8cNO1NnQU/0HnnmxiRF02EOxSBAowbAssSJwxTJoTEEc8iWFYQ5mNV6swiWDqVEPVk3ew8rUPfN5RxXZWp46hzoCMOAyGkM39bmjJyu879a9tDqKGsqNaMVF7rg8aIZ/duCpkdF9o5hODvcI9zbLL8bg5mG6m7B+ICASCQsASWt0w6'@; put 'g3B2pYxd15g8dBZCVlfdo/vqxmOBAgmBRI8ygf77HwYLdlj/X6au9CPvdv/5x9b/YPT5taUpI3aGjM5fReoUrqqWaVeZLPSQzdj69oAiac4C386E6epzvHsBzPZ4hOB9IAAEUpaAdQbzL16bJbsOvzvFpQyfyUxtBkP66fECRDe72hQprR0jtE+W0p43WPAjQ/i7DFM7wDF/28XlN3Widmn5De29'@; put 'Nac35w3RGP8iY9rpquQ+TZU92UH9cJ5Mnad8Vm3Wb70ydT1nCv2XHSG+JVxPulZXH0N2NDNufNXOrVLP5v0e1zfLxm7Q44X1YHWA2Q6WIIwHAkAgZQiU1RRK6So6jQk91yVnTfDIQ70HAm+fihAfap/fG24Y1lOeRJRPKJU/RAjV+fWDb1Ikv0EpfR8Zos3lChwY7Ipi60PF/XvHS22G/GVqSjN1'@; put 'EZjnkNJOPVYtXDAmOGqVZc+NC3KfeWmw9Va1TL2Zcf2eXs/inZSSovm5ib8oqjcbMNvB3ikwHggAgZQlYJnvqeg0qd35XgY32Sk6D54pSdLJEnFmqcQ5XMKOUQLxMRrzp+ksqDJhUowwwRhxmTg1RXL5KZIOcSz2cW7sN5jexkWgyxCsTTD2Eab0X7JKP2nvpIdHp3WyaK1+Xr15hhpKPzhRpWlz'@; put 'TK5fhY+xAItxQ3NKQx5CLPSLub6d7wzkJljTMHUMkmmdwYJfssdLyPHkqPfTr4zViuiB1HEiY8BsT4QSXAMEgAAQ6CcBa9EPqq0lZ40YTvz79hM9LY10HNR6/ubStE4uDR/C1fZTeOZbh+Nmr2vfMlc0XnCqybsqJaJcQjA9atVz0Gjfn66OucPgh+/vzwlPFp+s3c3rTRa63s4pOD+MhFS0sKDm'@; put 'xX7ijvvLwWzjfopAIBAAAkAgtgS6vz6Xja9yTO5ECF3Ud6uRdQgIwfQlgskvnHLHlhN5Al/dMvkszQw+Z59/bFUoU7V0Xk51RWyrjUx2MNvIcIWoQAAIAIGkI2CdTtUeVC73qCOWhMy28X0L7P5qWc56LGR2rO/SSdNnLaKy4ujmsEcNHrq856lWiHc9asbXEuWkrv5OLphtf4nB9UAACACBFCew'@; put 'qinPaXBxreD8Z4rkHN0Xh8GCXQ4p4086xz+/xVe9r+/7lU0XzDK49idKJMV6r3urD5ZvXODdsT5Z0YLZJuvMQl1AAAgAgQgTWN7o/RLnxi8xwpfK1HnU4RsKdb+JEP+VTOUN9hNrRU3hEKTieoH42bY8mbg3iUPiyuKZW7QIS45ZeDDbmKGHxEAACACBxCdg/Z7rlI1sv7ZvXbpjxNkES3LfqgTC'@; put 'zzqJ+0Yqaf8KGeT7TGir7WswIn4kRH6Jr/aFxKfx2RWA2Sbz7EJtQAAIAIEoESh79SzFczhzssb89zjljKMO/rAWUXnU4Z/I2JHern2YZsuSiPpEcW71N6MkM2ZpwGxjhh4SAwEgAASSj8CKmsJhTArdiRC/+lhfLX+qYoE6COUFC3LrB304RryTBLON9xkCfUAACACBBCRQ3ug9myD5Lia0yRJR'@; put 'j+qmZLUuVKlj4bzcbVUJWF6/JYPZ9hsZDAACQAAIAIETJVDRWHguxnSlKfTze+/PNTl7y21I424uqu060ViJfB2YbSLPHmgHAkAACCQAAWtfrV9PX8C4toQSeShFikGwdNm8vC1bEkB+WCSC2YYFIwQBAkAACACB4xFY0zrtizJx/wYh7NJZcFpx7paO441JlvfBbJNlJqEOIAAEgEACELDORB69'@; put 'd68jWU+K+qwp+D9J1vEz+kjcvQAAAABJRU5ErkJggg=='; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64) filename filecode clear; %let filename=spinner.16f763cebc6b64df.svg; filename filecode temp lrecl=32767; data _null_; file filecode; put 'PHN2ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA3MiA3MiI+CiAgICA8ZGVmcz4KICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgIC5jbHMtMSwKICAgICAgICAgICAgLmNscy0yIHsKICAg'@; put 'ICAgICAgICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgICAgICAgICBzdHJva2UtbWl0ZXJsaW1pdDogMTA7CiAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg6IDVweDsKICAgICAgICAgICAgfQogICAgICAgICAgICAuY2xzLTEgewogICAgICAgICAgICAgICAgc3Ryb2tlOiAjMDAwMDAw'@; put 'OwogICAgICAgICAgICAgICAgc3Ryb2tlLW9wYWNpdHk6IDAuMTU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmNscy0yIHsKICAgICAgICAgICAgICAgIHN0cm9rZTogIzAwNzJhMzsKICAgICAgICAgICAgfQogICAgICAgIDwvc3R5bGU+CiAgICA8L2RlZnM+CiAgICA8dGl0bGU+UHJl'@; put 'bG9hZGVyXzcyeDI8L3RpdGxlPgogICAgPGNpcmNsZSBjbGFzcz0iY2xzLTEiIGN4PSIzNiIgY3k9IjM2IiByPSIzMyIvPgogICAgPHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMTQuMyw2MC45QTMzLDMzLDAsMCwxLDM2LDMiPgogICAgPC9wYXRoPgo8L3N2Zz4K'; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64) filename filecode clear; %let filename=spinner.svg; filename filecode temp lrecl=32767; data _null_; file filecode; put 'PHN2ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA3MiA3MiI+CiAgICA8ZGVmcz4KICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgIC5jbHMtMSwKICAgICAgICAgICAgLmNscy0yIHsKICAg'@; put 'ICAgICAgICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgICAgICAgICBzdHJva2UtbWl0ZXJsaW1pdDogMTA7CiAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg6IDVweDsKICAgICAgICAgICAgfQogICAgICAgICAgICAuY2xzLTEgewogICAgICAgICAgICAgICAgc3Ryb2tlOiAjMDAwMDAw'@; put 'OwogICAgICAgICAgICAgICAgc3Ryb2tlLW9wYWNpdHk6IDAuMTU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmNscy0yIHsKICAgICAgICAgICAgICAgIHN0cm9rZTogIzAwNzJhMzsKICAgICAgICAgICAgfQogICAgICAgIDwvc3R5bGU+CiAgICA8L2RlZnM+CiAgICA8dGl0bGU+UHJl'@; put 'bG9hZGVyXzcyeDI8L3RpdGxlPgogICAgPGNpcmNsZSBjbGFzcz0iY2xzLTEiIGN4PSIzNiIgY3k9IjM2IiByPSIzMyIvPgogICAgPHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMTQuMyw2MC45QTMzLDMzLDAsMCwxLDM2LDMiPgogICAgPC9wYXRoPgo8L3N2Zz4K'; run; %mv_createfile(path=&appLoc/&path, name=&filename, inref=filecode, intype=BASE64) filename filecode clear; /* Tell the user where the app was deployed so they can open it */ options notes; data _null_; if symexist('_baseurl') then do; url=symget('_baseurl'); if subpad(url,length(url)-9,9)='SASStudio' then url=substr(url,1,length(url)-11); else url="&systcpiphostname"; end; else url="&systcpiphostname"; url=cats(url,"/SASJobExecution?_FILE=&appLoc/services/"); urlEscaped = tranwrd(trim(url)," ","%20"); putlog "NOTE: SASjs Streaming App Created! Check it out here:" ; putlog "NOTE- ";putlog "NOTE- ";putlog "NOTE- ";putlog "NOTE- "; putlog "NOTE- " urlEscaped +(-1) 'DC.html' ; putlog "NOTE- ";putlog "NOTE- ";putlog "NOTE- ";putlog "NOTE- "; run;